From 4d46fd2e861b56ffb900d23ad7f1764c6790ec43 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 12 Aug 2024 17:56:23 -0400 Subject: [PATCH 01/81] Update build tools Change-Id: I4f349d2215c9cdea947f2e982b1601d022744c98 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70167 Auto-Submit: David Benjamin Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- CMakeLists.txt | 4 ++++ util/bot/DEPS | 12 ++++++------ util/bot/libcxx-config/__config_site | 4 ++-- util/bot/update_clang.py | 4 ++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52fbceb560..ce60e8daff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -508,6 +508,10 @@ if(FIPS_DELOCATE) target_include_directories(bcm_c_generated_asm PRIVATE ${PROJECT_SOURCE_DIR}/include) set_target_properties(bcm_c_generated_asm PROPERTIES COMPILE_OPTIONS "-S") set_target_properties(bcm_c_generated_asm PROPERTIES POSITION_INDEPENDENT_CODE ON) + if(CLANG) + # Clang warns when passing both -c (from CMake) and -S. + set_property(TARGET bcm_c_generated_asm APPEND PROPERTY COMPILE_OPTIONS "-Wno-unused-command-line-argument") + endif() set(TARGET_FLAG "") if(CMAKE_ASM_COMPILER_TARGET) diff --git a/util/bot/DEPS b/util/bot/DEPS index 167cee8dbb..36d05a0483 100644 --- a/util/bot/DEPS +++ b/util/bot/DEPS @@ -26,19 +26,19 @@ vars = { # cipd describe PACKAGE_NAME -version latest # infra/3pp/tools/cmake/linux-amd64 - 'cmake_version': 'version:2@3.29.5.chromium.8', + 'cmake_version': 'version:3@3.30.2.chromium.8', # infra/3pp/tools/go/linux-amd64 - 'go_version': 'version:2@1.22.4', + 'go_version': 'version:3@1.22.6', # infra/3pp/tools/perl/windows-amd64 'perl_version': 'version:2@5.32.1.1', # Update the following from # https://chromium.googlesource.com/chromium/src/+/main/DEPS - 'android_sdk_platform-tools_version': 'HWVsGs2HCKgSVv41FsOcsfJbNcB0UFiNrF6Tc4yRArYC', + 'android_sdk_platform-tools_version': 'WihaseZR6cojZbkzIqwGhpTp92ztaGfqq8njBU8eTXYC', 'libfuzzer_revision': '758bd21f103a501b362b1ca46fa8fcb692eaa303', - 'libcxx_revision': '852bc6746f45add53fec19f3a29280e69e358d44', - 'libcxxabi_revision': '43dd5b4bf62e8593461dce9a95e3d43fdcd0b9f2', - 'ninja_version': 'version:2@1.11.1.chromium.6', + 'libcxx_revision': 'de70eaccdf8b5e1c3b574f6849db6294626a3a13', + 'libcxxabi_revision': 'eb6567388e89d9730c76dee71d68ac82e4a1abf6', + 'ninja_version': 'version:2@1.12.1.chromium.4', # The Android NDK cannot be updated until https://crbug.com/boringssl/454 is fixed. # We rely on an older NDK to test building without NEON instructions as the baseline. diff --git a/util/bot/libcxx-config/__config_site b/util/bot/libcxx-config/__config_site index 9684162f90..0b3c794e8d 100644 --- a/util/bot/libcxx-config/__config_site +++ b/util/bot/libcxx-config/__config_site @@ -4,9 +4,9 @@ #define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS #if defined(__APPLE__) -#define _LIBCPP_PSTL_CPU_BACKEND_LIBDISPATCH +#define _LIBCPP_PSTL_BACKEND_LIBDISPATCH #else -#define _LIBCPP_PSTL_CPU_BACKEND_THREAD +#define _LIBCPP_PSTL_BACKEND_STD_THREAD #endif // We only use our custom libc++ for testing, so enable all checks. diff --git a/util/bot/update_clang.py b/util/bot/update_clang.py index 9c5c52d1e4..c6c6b8f85e 100644 --- a/util/bot/update_clang.py +++ b/util/bot/update_clang.py @@ -29,8 +29,8 @@ # CLANG_REVISION and CLANG_SUB_REVISION determine the build of clang # to use. These should be synced with tools/clang/scripts/update.py in # Chromium. -CLANG_REVISION = 'llvmorg-19-init-10646-g084e2b53' -CLANG_SUB_REVISION = 57 +CLANG_REVISION = 'llvmorg-20-init-1009-g7088a5ed' +CLANG_SUB_REVISION = 10 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION) From f9e0c6c1358a70c42ea99aa4eb58fd053ed54ac9 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Fri, 2 Aug 2024 23:19:44 +0000 Subject: [PATCH 02/81] Use "dtls13" label prefix for DTLS 1.3. Section 5.9 of RFC 9147 changes the TLS 1.3 key schedule for DTLS 1.3 by changing the label prefix from "tls13 " to "dtls13". Bug: 715 Change-Id: Ia3c84d27145a225d27dd5bc082361273ce7e6dbc Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70007 Reviewed-by: Bob Beck Auto-Submit: Nick Harper Commit-Queue: Bob Beck --- ssl/internal.h | 3 +- ssl/test/runner/conn.go | 16 +++---- ssl/test/runner/prf.go | 29 ++++++----- ssl/tls13_client.cc | 3 +- ssl/tls13_enc.cc | 103 +++++++++++++++++++++++++++++----------- ssl/tls13_server.cc | 2 +- 6 files changed, 104 insertions(+), 52 deletions(-) diff --git a/ssl/internal.h b/ssl/internal.h index 62c16d067e..611d887999 100644 --- a/ssl/internal.h +++ b/ssl/internal.h @@ -1440,7 +1440,8 @@ bool tls13_finished_mac(SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len, // tls13_derive_session_psk calculates the PSK for this session based on the // resumption master secret and |nonce|. It returns true on success, and false // on failure. -bool tls13_derive_session_psk(SSL_SESSION *session, Span nonce); +bool tls13_derive_session_psk(SSL_SESSION *session, Span nonce, + bool is_dtls); // tls13_write_psk_binder calculates the PSK binder value over |transcript| and // |msg|, and replaces the last bytes of |msg| with the resulting value. It diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index c94f112bfa..b2a81fb1f4 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -249,7 +249,7 @@ func (hc *halfConn) useTrafficSecret(version uint16, suite *cipherSuite, secret panic("TLS: unknown version") } hc.version = protocolVersion - hc.cipher = deriveTrafficAEAD(version, suite, secret, side) + hc.cipher = deriveTrafficAEAD(version, suite, secret, side, hc.isDTLS) if hc.config.Bugs.NullAllCiphers { hc.cipher = nullCipher{} } @@ -1621,7 +1621,7 @@ func (c *Conn) processTLS13NewSessionTicket(newSessionTicket *newSessionTicketMs vers: c.vers, wireVersion: c.wireVersion, cipherSuite: cipherSuite, - secret: deriveSessionPSK(cipherSuite, c.wireVersion, c.resumptionSecret, newSessionTicket.ticketNonce), + secret: deriveSessionPSK(cipherSuite, c.wireVersion, c.resumptionSecret, newSessionTicket.ticketNonce, c.isDTLS), serverCertificates: c.peerCertificates, sctList: c.sctList, ocspResponse: c.ocspResponse, @@ -1680,7 +1680,7 @@ func (c *Conn) handlePostHandshakeMessage() error { if c.config.Bugs.RejectUnsolicitedKeyUpdate { return errors.New("tls: unexpected KeyUpdate message") } - if err := c.useInTrafficSecret(encryptionApplication, c.in.wireVersion, c.cipherSuite, updateTrafficSecret(c.cipherSuite.hash(), c.wireVersion, c.in.trafficSecret)); err != nil { + if err := c.useInTrafficSecret(encryptionApplication, c.in.wireVersion, c.cipherSuite, updateTrafficSecret(c.cipherSuite.hash(), c.wireVersion, c.in.trafficSecret, c.isDTLS)); err != nil { return err } if keyUpdate.keyUpdateRequest == keyUpdateRequested { @@ -1714,7 +1714,7 @@ func (c *Conn) ReadKeyUpdateACK() error { return errors.New("tls: received invalid KeyUpdate message") } - return c.useInTrafficSecret(encryptionApplication, c.in.wireVersion, c.cipherSuite, updateTrafficSecret(c.cipherSuite.hash(), c.wireVersion, c.in.trafficSecret)) + return c.useInTrafficSecret(encryptionApplication, c.in.wireVersion, c.cipherSuite, updateTrafficSecret(c.cipherSuite.hash(), c.wireVersion, c.in.trafficSecret, c.isDTLS)) } func (c *Conn) Renegotiate() error { @@ -1927,8 +1927,8 @@ func (c *Conn) exportKeyingMaterialTLS13(length int, secret, label, context []by contextHash := hash.New() contextHash.Write(context) exporterContext := hash.New().Sum(nil) - derivedSecret := hkdfExpandLabel(c.cipherSuite.hash(), secret, label, exporterContext, hash.Size()) - return hkdfExpandLabel(c.cipherSuite.hash(), derivedSecret, exporterKeyingLabel, contextHash.Sum(nil), length) + derivedSecret := hkdfExpandLabel(c.cipherSuite.hash(), secret, label, exporterContext, hash.Size(), c.isDTLS) + return hkdfExpandLabel(c.cipherSuite.hash(), derivedSecret, exporterKeyingLabel, contextHash.Sum(nil), length, c.isDTLS) } // ExportKeyingMaterial exports keying material from the current connection @@ -2027,7 +2027,7 @@ func (c *Conn) SendNewSessionTicket(nonce []byte) error { state := sessionState{ vers: c.vers, cipherSuite: c.cipherSuite.id, - secret: deriveSessionPSK(c.cipherSuite, c.wireVersion, c.resumptionSecret, nonce), + secret: deriveSessionPSK(c.cipherSuite, c.wireVersion, c.resumptionSecret, nonce, c.isDTLS), certificates: peerCertificatesRaw, ticketCreationTime: c.config.time(), ticketExpiration: c.config.time().Add(time.Duration(m.ticketLifetime) * time.Second), @@ -2074,7 +2074,7 @@ func (c *Conn) sendKeyUpdateLocked(keyUpdateRequest byte) error { if err := c.flushHandshake(); err != nil { return err } - c.useOutTrafficSecret(encryptionApplication, c.out.wireVersion, c.cipherSuite, updateTrafficSecret(c.cipherSuite.hash(), c.wireVersion, c.out.trafficSecret)) + c.useOutTrafficSecret(encryptionApplication, c.out.wireVersion, c.cipherSuite, updateTrafficSecret(c.cipherSuite.hash(), c.wireVersion, c.out.trafficSecret, c.isDTLS)) return nil } diff --git a/ssl/test/runner/prf.go b/ssl/test/runner/prf.go index 4cdc7c8c0b..3ef23df94d 100644 --- a/ssl/test/runner/prf.go +++ b/ssl/test/runner/prf.go @@ -292,7 +292,7 @@ func (h finishedHash) clientSum(baseKey []byte) []byte { return out } - clientFinishedKey := hkdfExpandLabel(h.suite.hash(), baseKey, finishedLabel, nil, h.hash.Size()) + clientFinishedKey := hkdfExpandLabel(h.suite.hash(), baseKey, finishedLabel, nil, h.hash.Size(), h.isDTLS) finishedHMAC := hmac.New(h.suite.hash().New, clientFinishedKey) finishedHMAC.Write(h.appendContextHashes(nil)) return finishedHMAC.Sum(nil) @@ -307,7 +307,7 @@ func (h finishedHash) serverSum(baseKey []byte) []byte { return out } - serverFinishedKey := hkdfExpandLabel(h.suite.hash(), baseKey, finishedLabel, nil, h.hash.Size()) + serverFinishedKey := hkdfExpandLabel(h.suite.hash(), baseKey, finishedLabel, nil, h.hash.Size(), h.isDTLS) finishedHMAC := hmac.New(h.suite.hash().New, serverFinishedKey) finishedHMAC.Write(h.appendContextHashes(nil)) return finishedHMAC.Sum(nil) @@ -345,17 +345,20 @@ func (h *finishedHash) addEntropy(ikm []byte) { } func (h *finishedHash) nextSecret() { - h.secret = hkdfExpandLabel(h.suite.hash(), h.secret, []byte("derived"), h.suite.hash().New().Sum(nil), h.hash.Size()) + h.secret = hkdfExpandLabel(h.suite.hash(), h.secret, []byte("derived"), h.suite.hash().New().Sum(nil), h.hash.Size(), h.isDTLS) } // hkdfExpandLabel implements TLS 1.3's HKDF-Expand-Label function, as defined // in section 7.1 of RFC 8446. -func hkdfExpandLabel(hash crypto.Hash, secret, label, hashValue []byte, length int) []byte { +func hkdfExpandLabel(hash crypto.Hash, secret, label, hashValue []byte, length int, isDTLS bool) []byte { if len(label) > 255 || len(hashValue) > 255 { panic("hkdfExpandLabel: label or hashValue too long") } versionLabel := []byte("tls13 ") + if isDTLS { + versionLabel = []byte("dtls13") + } hkdfLabel := make([]byte, 3+len(versionLabel)+len(label)+1+len(hashValue)) x := hkdfLabel x[0] = byte(length >> 8) @@ -404,7 +407,7 @@ var ( // deriveSecret implements TLS 1.3's Derive-Secret function, as defined in // section 7.1 of RFC8446. func (h *finishedHash) deriveSecret(label []byte) []byte { - return hkdfExpandLabel(h.suite.hash(), h.secret, label, h.appendContextHashes(nil), h.hash.Size()) + return hkdfExpandLabel(h.suite.hash(), h.secret, label, h.appendContextHashes(nil), h.hash.Size(), h.isDTLS) } // echConfirmation computes the ECH accept confirmation signal, as defined in @@ -414,7 +417,7 @@ func (h *finishedHash) echAcceptConfirmation(clientRandom, label, extraMessages secret := hkdf.Extract(h.suite.hash().New, clientRandom, h.zeroSecret()) hashCopy := copyHash(h.hash, h.suite.hash()) hashCopy.Write(extraMessages) - return hkdfExpandLabel(h.suite.hash(), secret, label, hashCopy.Sum(nil), echAcceptConfirmationLength) + return hkdfExpandLabel(h.suite.hash(), secret, label, hashCopy.Sum(nil), echAcceptConfirmationLength, h.isDTLS) } // The following are context strings for CertificateVerify in TLS 1.3. @@ -452,15 +455,15 @@ var ( // deriveTrafficAEAD derives traffic keys and constructs an AEAD given a traffic // secret. -func deriveTrafficAEAD(version uint16, suite *cipherSuite, secret []byte, side trafficDirection) any { - key := hkdfExpandLabel(suite.hash(), secret, keyTLS13, nil, suite.keyLen) - iv := hkdfExpandLabel(suite.hash(), secret, ivTLS13, nil, suite.ivLen(version)) +func deriveTrafficAEAD(version uint16, suite *cipherSuite, secret []byte, side trafficDirection, isDTLS bool) any { + key := hkdfExpandLabel(suite.hash(), secret, keyTLS13, nil, suite.keyLen, isDTLS) + iv := hkdfExpandLabel(suite.hash(), secret, ivTLS13, nil, suite.ivLen(version), isDTLS) return suite.aead(version, key, iv) } -func updateTrafficSecret(hash crypto.Hash, version uint16, secret []byte) []byte { - return hkdfExpandLabel(hash, secret, applicationTrafficLabel, nil, hash.Size()) +func updateTrafficSecret(hash crypto.Hash, version uint16, secret []byte, isDTLS bool) []byte { + return hkdfExpandLabel(hash, secret, applicationTrafficLabel, nil, hash.Size(), isDTLS) } func computePSKBinder(psk []byte, version uint16, label []byte, cipherSuite *cipherSuite, clientHello, helloRetryRequest, truncatedHello []byte) []byte { @@ -476,7 +479,7 @@ func computePSKBinder(psk []byte, version uint16, label []byte, cipherSuite *cip return finishedHash.clientSum(binderKey) } -func deriveSessionPSK(suite *cipherSuite, version uint16, masterSecret []byte, nonce []byte) []byte { +func deriveSessionPSK(suite *cipherSuite, version uint16, masterSecret []byte, nonce []byte, isDTLS bool) []byte { hash := suite.hash() - return hkdfExpandLabel(hash, masterSecret, resumptionPSKLabel, nonce, hash.Size()) + return hkdfExpandLabel(hash, masterSecret, resumptionPSKLabel, nonce, hash.Size(), isDTLS) } diff --git a/ssl/tls13_client.cc b/ssl/tls13_client.cc index 0862a00e46..95e2e39ccd 100644 --- a/ssl/tls13_client.cc +++ b/ssl/tls13_client.cc @@ -1130,7 +1130,8 @@ UniquePtr tls13_create_session_with_ticket(SSL *ssl, CBS *body) { session->timeout = server_timeout; } - if (!tls13_derive_session_psk(session.get(), ticket_nonce)) { + if (!tls13_derive_session_psk(session.get(), ticket_nonce, + SSL_is_dtls(ssl))) { return nullptr; } diff --git a/ssl/tls13_enc.cc b/ssl/tls13_enc.cc index 3de10f4802..1613a3a158 100644 --- a/ssl/tls13_enc.cc +++ b/ssl/tls13_enc.cc @@ -92,10 +92,50 @@ static Span label_to_span(const char *label) { return MakeConstSpan(label, strlen(label)); } +static bool hkdf_expand_label_with_prefix(Span out, + const EVP_MD *digest, + Span secret, + Span label_prefix, + Span label, + Span hash) { + // This is a copy of CRYPTO_tls13_hkdf_expand_label, but modified to take an + // arbitrary prefix for the label instead of using the hardcoded "tls13 " + // prefix. + CBB cbb, child; + uint8_t *hkdf_label = NULL; + size_t hkdf_label_len; + CBB_zero(&cbb); + if (!CBB_init(&cbb, + 2 + 1 + label_prefix.size() + label.size() + 1 + hash.size()) || + !CBB_add_u16(&cbb, out.size()) || + !CBB_add_u8_length_prefixed(&cbb, &child) || + !CBB_add_bytes(&child, label_prefix.data(), label_prefix.size()) || + !CBB_add_bytes(&child, reinterpret_cast(label.data()), + label.size()) || + !CBB_add_u8_length_prefixed(&cbb, &child) || + !CBB_add_bytes(&child, hash.data(), hash.size()) || + !CBB_finish(&cbb, &hkdf_label, &hkdf_label_len)) { + CBB_cleanup(&cbb); + return false; + } + + const int ret = HKDF_expand(out.data(), out.size(), digest, secret.data(), + secret.size(), hkdf_label, hkdf_label_len); + OPENSSL_free(hkdf_label); + return ret == 1; +} + static bool hkdf_expand_label(Span out, const EVP_MD *digest, Span secret, - Span label, - Span hash) { + Span label, Span hash, + bool is_dtls) { + if (is_dtls) { + static const uint8_t kDTLS13LabelPrefix[] = "dtls13"; + return hkdf_expand_label_with_prefix( + out, digest, secret, + MakeConstSpan(kDTLS13LabelPrefix, sizeof(kDTLS13LabelPrefix) - 1), + label, hash); + } return CRYPTO_tls13_hkdf_expand_label( out.data(), out.size(), digest, secret.data(), secret.size(), reinterpret_cast(label.data()), label.size(), @@ -111,7 +151,8 @@ bool tls13_advance_key_schedule(SSL_HANDSHAKE *hs, Span in) { hs->transcript.Digest(), nullptr) && hkdf_expand_label(hs->secret(), hs->transcript.Digest(), hs->secret(), label_to_span(kTLS13LabelDerived), - MakeConstSpan(derive_context, derive_context_len)) && + MakeConstSpan(derive_context, derive_context_len), + SSL_is_dtls(hs->ssl)) && hkdf_extract_to_secret(hs, hs->transcript, in); } @@ -129,7 +170,8 @@ static bool derive_secret_with_transcript(const SSL_HANDSHAKE *hs, } return hkdf_expand_label(out, transcript.Digest(), hs->secret(), label, - MakeConstSpan(context_hash, context_hash_len)); + MakeConstSpan(context_hash, context_hash_len), + SSL_is_dtls(hs->ssl)); } static bool derive_secret(SSL_HANDSHAKE *hs, Span out, @@ -166,7 +208,7 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level, uint8_t key_buf[EVP_AEAD_MAX_KEY_LENGTH]; auto key = MakeSpan(key_buf, key_len); if (!hkdf_expand_label(key, digest, traffic_secret, label_to_span("key"), - {})) { + {}, SSL_is_dtls(ssl))) { return false; } @@ -174,8 +216,8 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level, size_t iv_len = EVP_AEAD_nonce_length(aead); uint8_t iv_buf[EVP_AEAD_MAX_NONCE_LENGTH]; auto iv = MakeSpan(iv_buf, iv_len); - if (!hkdf_expand_label(iv, digest, traffic_secret, label_to_span("iv"), - {})) { + if (!hkdf_expand_label(iv, digest, traffic_secret, label_to_span("iv"), {}, + SSL_is_dtls(ssl))) { return false; } @@ -297,7 +339,8 @@ bool tls13_rotate_traffic_key(SSL *ssl, enum evp_aead_direction_t direction) { const SSL_SESSION *session = SSL_get_session(ssl); const EVP_MD *digest = ssl_session_get_digest(session); return hkdf_expand_label(secret, digest, secret, - label_to_span(kTLS13LabelApplicationTraffic), {}) && + label_to_span(kTLS13LabelApplicationTraffic), {}, + SSL_is_dtls(ssl)) && tls13_set_traffic_key(ssl, ssl_encryption_application, direction, session, secret); } @@ -323,12 +366,12 @@ static const char kTLS13LabelFinished[] = "finished"; static bool tls13_verify_data(uint8_t *out, size_t *out_len, const EVP_MD *digest, uint16_t version, Span secret, - Span context) { + Span context, bool is_dtls) { uint8_t key_buf[EVP_MAX_MD_SIZE]; auto key = MakeSpan(key_buf, EVP_MD_size(digest)); unsigned len; if (!hkdf_expand_label(key, digest, secret, - label_to_span(kTLS13LabelFinished), {}) || + label_to_span(kTLS13LabelFinished), {}, is_dtls) || HMAC(digest, key.data(), key.size(), context.data(), context.size(), out, &len) == nullptr) { return false; @@ -347,7 +390,8 @@ bool tls13_finished_mac(SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len, if (!hs->transcript.GetHash(context_hash, &context_hash_len) || !tls13_verify_data(out, out_len, hs->transcript.Digest(), hs->ssl->version, traffic_secret, - MakeConstSpan(context_hash, context_hash_len))) { + MakeConstSpan(context_hash, context_hash_len), + SSL_is_dtls(hs->ssl))) { return false; } return true; @@ -355,13 +399,15 @@ bool tls13_finished_mac(SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len, static const char kTLS13LabelResumptionPSK[] = "resumption"; -bool tls13_derive_session_psk(SSL_SESSION *session, Span nonce) { +bool tls13_derive_session_psk(SSL_SESSION *session, Span nonce, + bool is_dtls) { const EVP_MD *digest = ssl_session_get_digest(session); // The session initially stores the resumption_master_secret, which we // override with the PSK. auto session_secret = MakeSpan(session->secret, session->secret_length); return hkdf_expand_label(session_secret, digest, session_secret, - label_to_span(kTLS13LabelResumptionPSK), nonce); + label_to_span(kTLS13LabelResumptionPSK), nonce, + is_dtls); } static const char kTLS13LabelExportKeying[] = "exporter"; @@ -394,9 +440,10 @@ bool tls13_export_keying_material(SSL *ssl, Span out, uint8_t derived_secret_buf[EVP_MAX_MD_SIZE]; auto derived_secret = MakeSpan(derived_secret_buf, EVP_MD_size(digest)); return hkdf_expand_label(derived_secret, digest, secret, label, - export_context) && + export_context, SSL_is_dtls(ssl)) && hkdf_expand_label(out, digest, derived_secret, - label_to_span(kTLS13LabelExportKeying), hash); + label_to_span(kTLS13LabelExportKeying), hash, + SSL_is_dtls(ssl)); } static const char kTLS13LabelPSKBinder[] = "res binder"; @@ -405,7 +452,7 @@ static bool tls13_psk_binder(uint8_t *out, size_t *out_len, const SSL_SESSION *session, const SSLTranscript &transcript, Span client_hello, - size_t binders_len) { + size_t binders_len, bool is_dtls) { const EVP_MD *digest = ssl_session_get_digest(session); // Compute the binder key. @@ -422,10 +469,10 @@ static bool tls13_psk_binder(uint8_t *out, size_t *out_len, nullptr) || !HKDF_extract(early_secret, &early_secret_len, digest, session->secret, session->secret_length, nullptr, 0) || - !hkdf_expand_label(binder_key, digest, - MakeConstSpan(early_secret, early_secret_len), - label_to_span(kTLS13LabelPSKBinder), - MakeConstSpan(binder_context, binder_context_len))) { + !hkdf_expand_label( + binder_key, digest, MakeConstSpan(early_secret, early_secret_len), + label_to_span(kTLS13LabelPSKBinder), + MakeConstSpan(binder_context, binder_context_len), is_dtls)) { return false; } @@ -446,7 +493,7 @@ static bool tls13_psk_binder(uint8_t *out, size_t *out_len, } if (!tls13_verify_data(out, out_len, digest, session->ssl_version, binder_key, - MakeConstSpan(context, context_len))) { + MakeConstSpan(context, context_len), is_dtls)) { return false; } @@ -467,7 +514,7 @@ bool tls13_write_psk_binder(const SSL_HANDSHAKE *hs, uint8_t verify_data[EVP_MAX_MD_SIZE]; size_t verify_data_len; if (!tls13_psk_binder(verify_data, &verify_data_len, ssl->session.get(), - transcript, msg, binders_len) || + transcript, msg, binders_len, SSL_is_dtls(hs->ssl)) || verify_data_len != hash_len) { OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR); return false; @@ -491,7 +538,7 @@ bool tls13_verify_psk_binder(const SSL_HANDSHAKE *hs, // prefix removed. The caller is assumed to have parsed |msg|, extracted // |binders|, and verified the PSK extension is last. if (!tls13_psk_binder(verify_data, &verify_data_len, session, hs->transcript, - msg.raw, 2 + CBS_len(binders)) || + msg.raw, 2 + CBS_len(binders), SSL_is_dtls(hs->ssl)) || // We only consider the first PSK, so compare against the first binder. !CBS_get_u8_length_prefixed(binders, &binder)) { OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR); @@ -556,11 +603,11 @@ bool ssl_ech_accept_confirmation(const SSL_HANDSHAKE *hs, Span out, } assert(out.size() == ECH_CONFIRMATION_SIGNAL_LEN); - return hkdf_expand_label(out, transcript.Digest(), - MakeConstSpan(secret, secret_len), - is_hrr ? label_to_span("hrr ech accept confirmation") - : label_to_span("ech accept confirmation"), - MakeConstSpan(context, context_len)); + return hkdf_expand_label( + out, transcript.Digest(), MakeConstSpan(secret, secret_len), + is_hrr ? label_to_span("hrr ech accept confirmation") + : label_to_span("ech accept confirmation"), + MakeConstSpan(context, context_len), SSL_is_dtls(hs->ssl)); } BSSL_NAMESPACE_END diff --git a/ssl/tls13_server.cc b/ssl/tls13_server.cc index f7804b2616..932c82cb27 100644 --- a/ssl/tls13_server.cc +++ b/ssl/tls13_server.cc @@ -175,7 +175,7 @@ static bool add_new_session_tickets(SSL_HANDSHAKE *hs, bool *out_sent_tickets) { !CBB_add_u8_length_prefixed(&body, &nonce_cbb) || !CBB_add_bytes(&nonce_cbb, nonce, sizeof(nonce)) || !CBB_add_u16_length_prefixed(&body, &ticket) || - !tls13_derive_session_psk(session.get(), nonce) || + !tls13_derive_session_psk(session.get(), nonce, SSL_is_dtls(ssl)) || !ssl_encrypt_ticket(hs, &ticket, session.get()) || !CBB_add_u16_length_prefixed(&body, &extensions)) { return false; From 84845ad316e4326ae47bda8483cce660c1d6c05e Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 12 Aug 2024 12:20:53 -0400 Subject: [PATCH 03/81] Update the bn_div_rem_words comment The comment says something about adding assembly for other ISAs, but it seems most ISAs don't actually have double-wide division instructions. (Despite this, the division-based BN_MONT_CTX_set still seems to beat the Montgomery one on Arm. Less drastically than before https://boringssl-review.googlesource.com/c/boringssl/+/60686, but division still makes things faster.) Also update the bug links post LLVM's GitHub migration. Finding the corresponding GitHub issue is not always trivial. Bug: 358687140 Change-Id: Iafb5118461a2c09c66840a44fbd257320a8d98b4 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70168 Auto-Submit: David Benjamin Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index f524f8939a..ba6b69ea16 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -149,11 +149,11 @@ static inline void bn_div_rem_words(BN_ULONG *quotient_out, BN_ULONG *rem_out, // * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65668 // // Clang bugs: - // * https://llvm.org/bugs/show_bug.cgi?id=6397 - // * https://llvm.org/bugs/show_bug.cgi?id=12418 + // * https://github.com/llvm/llvm-project/issues/6769 + // * https://github.com/llvm/llvm-project/issues/12790 // - // These issues aren't specific to x86 and x86_64, so it might be worthwhile - // to add more assembly language implementations. + // These is specific to x86 and x86_64; Arm and RISC-V do not have double-wide + // division instructions. #if defined(BN_CAN_USE_INLINE_ASM) && defined(OPENSSL_X86) __asm__ volatile("divl %4" : "=a"(*quotient_out), "=d"(*rem_out) From 24bd38f452eb34669d607da4f17e8ca6fc44b30e Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 12 Aug 2024 16:33:17 -0400 Subject: [PATCH 04/81] Move discussion on BN_div's sign to the headers This is part of the public API and should be documented as such. Bug: 358687140 Change-Id: I1d736f39c5cff18f7c8e3ff8207a4b60ee96cd18 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70169 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/bn/div.c | 12 ------------ include/openssl/bn.h | 11 ++++++++--- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index ba6b69ea16..23e1b634f6 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -175,18 +175,6 @@ static inline void bn_div_rem_words(BN_ULONG *quotient_out, BN_ULONG *rem_out, #endif } -// BN_div computes "quotient := numerator / divisor", rounding towards zero, -// and sets up |rem| such that "quotient * divisor + rem = numerator" holds. -// -// Thus: -// -// quotient->neg == numerator->neg ^ divisor->neg -// (unless the result is zero) -// rem->neg == numerator->neg -// (unless the remainder is zero) -// -// If |quotient| or |rem| is NULL, the respective value is not returned. -// // This was specifically designed to contain fewer branches that may leak // sensitive information; see "New Branch Prediction Vulnerabilities in OpenSSL // and Necessary Software Countermeasures" by Onur Acıçmez, Shay Gueron, and diff --git a/include/openssl/bn.h b/include/openssl/bn.h index fb6e96259a..a5bfcd7ea4 100644 --- a/include/openssl/bn.h +++ b/include/openssl/bn.h @@ -424,9 +424,14 @@ OPENSSL_EXPORT int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); // BN_div divides |numerator| by |divisor| and places the result in |quotient| // and the remainder in |rem|. Either of |quotient| or |rem| may be NULL, in -// which case the respective value is not returned. The result is rounded -// towards zero; thus if |numerator| is negative, the remainder will be zero or -// negative. It returns one on success or zero on error. +// which case the respective value is not returned. It returns one on success or +// zero on error. It is an error condition if |divisor| is zero. +// +// The outputs will be such that |quotient| * |divisor| + |rem| = |numerator|, +// with the quotient rounded towards zero. Thus, if |numerator| is negative, +// |rem| will be zero or negative. If |divisor| is negative, the sign of +// |quotient| will be flipped to compensate but otherwise rounding will be as if +// |divisor| were its absolute value. OPENSSL_EXPORT int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, const BIGNUM *divisor, BN_CTX *ctx); From 3529cba4a554fde0ece75a07178c0dd63f73e409 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 9 Aug 2024 16:59:53 -0400 Subject: [PATCH 05/81] Cite where BN_div actually comes from After spending a while trying to divine where all the bounds came from, and coming up with some of the messy proofs for why it works, I found this exact algorithm in Knuth, Volume 2, with... different messy proofs. Sadly, this algorithm seems to just be messy. Cite it as reference rather than trying to repeat it in code. As part of this, update the discussion on branches. That was added in https://boringssl-review.googlesource.com/c/boringssl/+/9105, back when BN_div was used on secret inputs. It no longer is and, back then, the function still wasn't constant-time anyway. We could, in principle, restore the special cases now. But this would be more complicated and diverge from Knuth's formulation, so let's just keep it simple. (Although it might actually be a hair faster. We care about this function to compute R^2 mod n, and the special case would save an extra iteration through the loop. Though I think that optimization could actually be restored with much, much less code than OpenSSL originally did it. Probably not worth the fuss.) Subsequent CLs will clean this code up in reference to Knuth's formulation. Bug: 358687140 Change-Id: I56da99c560b845f1736ab86edc79b8e711890fe3 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70170 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 23e1b634f6..0410fb7969 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -175,23 +175,29 @@ static inline void bn_div_rem_words(BN_ULONG *quotient_out, BN_ULONG *rem_out, #endif } -// This was specifically designed to contain fewer branches that may leak -// sensitive information; see "New Branch Prediction Vulnerabilities in OpenSSL -// and Necessary Software Countermeasures" by Onur Acıçmez, Shay Gueron, and -// Jean-Pierre Seifert. int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, const BIGNUM *divisor, BN_CTX *ctx) { + // This function implements long division, per Knuth, The Art of Computer + // Programming, Volume 2, Chapter 4.3.1, Algorithm D. This algorithm only + // divides non-negative integers, but we round towards zero, so we divide + // absolute values and adjust the signs separately. + // + // Inputs to this function are assumed public and may be leaked by timing and + // cache side channels. Division with secret inputs should use other + // implementation strategies such as Montgomery reduction. + // + // Historically, this function diverged from Knuth's algorithm with some + // shortcuts in some cases. Those have been removed per "New Branch Prediction + // Vulnerabilities in OpenSSL and Necessary Software Countermeasures" by Onur + // Acıçmez, Shay Gueron, and Jean-Pierre Seifert. We continue to omit them for + // simplicity, but this function is no longer used with secret inputs. (We + // implement a variation on "Smooth CRT-RSA" as described in the paper.) int norm_shift, loop; BIGNUM wnum; BN_ULONG *resp, *wnump; BN_ULONG d0, d1; int num_n, div_n; - // This function relies on the historical minimal-width |BIGNUM| invariant. - // It is already not constant-time (constant-time reductions should use - // Montgomery logic), so we shrink all inputs and intermediate values to - // retain the previous behavior. - // Invalid zero-padding would have particularly bad consequences. int numerator_width = bn_minimal_width(numerator); int divisor_width = bn_minimal_width(divisor); From d0e9c0622792696dce3392b76a1cf9b879a4a34e Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Tue, 13 Aug 2024 18:16:05 +0000 Subject: [PATCH 06/81] Fix documentation missed in 82f9853fc7. 82f9853fc7 replaced ssl_seal_align_prefix_len with two functions, tls_seal_align_prefix_len and dtls_seal_align_prefix_len. This change updates documentation that referred to the old ssl_seal_align_prefix_len function to refer to the correct function. Change-Id: Ieb8891eff03efc3d894aa56729ae6e47f4be3288 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70207 Commit-Queue: Bob Beck Reviewed-by: Bob Beck Auto-Submit: Nick Harper --- ssl/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ssl/internal.h b/ssl/internal.h index 611d887999..34f377d82a 100644 --- a/ssl/internal.h +++ b/ssl/internal.h @@ -1028,7 +1028,7 @@ bool ssl_needs_record_splitting(const SSL *ssl); // 1/n-1 record splitting and may write two records concatenated. // // For a large record, the bulk of the ciphertext will begin -// |ssl_seal_align_prefix_len| bytes into out. Aligning |out| appropriately may +// |tls_seal_align_prefix_len| bytes into out. Aligning |out| appropriately may // improve performance. It writes at most |in_len| + |SSL_max_seal_overhead| // bytes to |out|. // From e64610a84d8c164c782582227d8a9976900f8fce Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Tue, 23 Jul 2024 21:20:54 +0000 Subject: [PATCH 07/81] Pass additional parameters to decrypt() in test runner. By having the caller provide the sequence number and the record header length, the decrypt function doesn't need to know anything about the format of the record header. Change-Id: If3389e79d6823c63c884bb9ddb764fa68223e765 Bug: 715 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69948 Commit-Queue: Bob Beck Reviewed-by: Bob Beck --- ssl/test/runner/conn.go | 12 ++---------- ssl/test/runner/dtls.go | 2 +- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index b2a81fb1f4..9cb9fdea6a 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -416,9 +416,7 @@ type cbcMode interface { // success boolean, the number of bytes to skip from the start of the record in // order to get the application payload, the encrypted record type (or 0 // if there is none), and an optional alert value. -func (hc *halfConn) decrypt(b *block) (ok bool, prefixLen int, contentType recordType, alertValue alert) { - recordHeaderLen := hc.recordHeaderLen() - +func (hc *halfConn) decrypt(seq []byte, recordHeaderLen int, b *block) (ok bool, prefixLen int, contentType recordType, alertValue alert) { // pull out payload payload := b.data[recordHeaderLen:] @@ -430,12 +428,6 @@ func (hc *halfConn) decrypt(b *block) (ok bool, prefixLen int, contentType recor paddingGood := byte(255) explicitIVLen := 0 - seq := hc.seq[:] - if hc.isDTLS { - // DTLS sequence numbers are explicit. - seq = b.data[3:11] - } - // decrypt if hc.cipher != nil { switch c := hc.cipher.(type) { @@ -873,7 +865,7 @@ RestartReadRecord: // Process message. b, c.rawInput = c.in.splitBlock(b, recordHeaderLen+n) - ok, off, encTyp, alertValue := c.in.decrypt(b) + ok, off, encTyp, alertValue := c.in.decrypt(c.in.seq[:], recordHeaderLen, b) // Handle skipping over early data. if !ok && c.skipEarlyData { diff --git a/ssl/test/runner/dtls.go b/ssl/test/runner/dtls.go index d407867eee..9be916ae2e 100644 --- a/ssl/test/runner/dtls.go +++ b/ssl/test/runner/dtls.go @@ -101,7 +101,7 @@ func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { b, c.rawInput = c.in.splitBlock(b, recordHeaderLen+n) // Process message. - ok, off, _, alertValue := c.in.decrypt(b) + ok, off, _, alertValue := c.in.decrypt(b.data[3:11], recordHeaderLen, b) if !ok { // A real DTLS implementation would silently ignore bad records, // but we want to notice errors from the implementation under From 41754d58e549d45762f906ba9e0da6ccf28c7b3f Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Tue, 23 Jul 2024 22:30:50 +0000 Subject: [PATCH 08/81] Refactor record header length in test runner. The length of the DTLS record header isn't a constant - update variables and functions to match that reality. Change-Id: Ib6abc3af98a15994c72a22b8fdd8e230e87b966a Bug: 715 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69949 Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- ssl/test/runner/common.go | 11 +++++------ ssl/test/runner/conn.go | 17 ++++++++++++----- ssl/test/runner/dtls.go | 4 ++-- ssl/test/runner/runner.go | 4 ++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/ssl/test/runner/common.go b/ssl/test/runner/common.go index 9260af09e6..89948b3de3 100644 --- a/ssl/test/runner/common.go +++ b/ssl/test/runner/common.go @@ -51,12 +51,11 @@ var allDTLSWireVersions = []uint16{ } const ( - maxPlaintext = 16384 // maximum plaintext payload length - maxCiphertext = 16384 + 2048 // maximum ciphertext payload length - tlsRecordHeaderLen = 5 // record header length - // TODO(nharper): check whether this value needs to be changed for DTLS 1.3 - dtlsRecordHeaderLen = 13 - maxHandshake = 65536 // maximum handshake we support (protocol max is 16 MB) + maxPlaintext = 16384 // maximum plaintext payload length + maxCiphertext = 16384 + 2048 // maximum ciphertext payload length + tlsRecordHeaderLen = 5 // record header length + dtlsMaxRecordHeaderLen = 13 + maxHandshake = 65536 // maximum handshake we support (protocol max is 16 MB) minVersion = VersionSSL30 maxVersion = VersionTLS13 diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index 9cb9fdea6a..434ba1e7f9 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -357,9 +357,16 @@ func (hc *halfConn) updateOutSeq() { copy(hc.outSeq[:], hc.seq[:]) } -func (hc *halfConn) recordHeaderLen() int { +// writeRecordHeaderLen returns the length of the record header that will be +// written. Do not use this for the length of a record header when reading, as +// that can depend on the bytes read. +func (hc *halfConn) writeRecordHeaderLen() int { if hc.isDTLS { - return dtlsRecordHeaderLen + // TODO(nharper): Change this to be the actual record header + // length that will be written. This will depend on version and + // write cipher, as well as configuration or protocol bugs to + // exercise all options of the DTLS 1.3 record header. + return dtlsMaxRecordHeaderLen } return tlsRecordHeaderLen } @@ -564,7 +571,7 @@ func padToBlockSize(payload []byte, blockSize int, config *Config) (prefix, fina // encrypt encrypts and macs the data in b. func (hc *halfConn) encrypt(b *block, explicitIVLen int, typ recordType) (bool, alert) { - recordHeaderLen := hc.recordHeaderLen() + recordHeaderLen := hc.writeRecordHeaderLen() // mac if hc.mac != nil { @@ -782,7 +789,7 @@ RestartReadRecord: return c.dtlsDoReadRecord(want) } - recordHeaderLen := c.in.recordHeaderLen() + recordHeaderLen := tlsRecordHeaderLen if c.rawInput == nil { c.rawInput = c.in.newBlock() @@ -1209,7 +1216,7 @@ func (c *Conn) addTLS13Padding(b *block, recordHeaderLen, recordLen int, typ rec } func (c *Conn) doWriteRecord(typ recordType, data []byte) (n int, err error) { - recordHeaderLen := c.out.recordHeaderLen() + recordHeaderLen := c.out.writeRecordHeaderLen() b := c.out.newBlock() first := true isClientHello := typ == recordTypeHandshake && len(data) > 0 && data[0] == typeClientHello diff --git a/ssl/test/runner/dtls.go b/ssl/test/runner/dtls.go index 9be916ae2e..95e1a9a011 100644 --- a/ssl/test/runner/dtls.go +++ b/ssl/test/runner/dtls.go @@ -24,7 +24,7 @@ import ( ) func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { - recordHeaderLen := dtlsRecordHeaderLen + recordHeaderLen := dtlsMaxRecordHeaderLen if c.rawInput == nil { c.rawInput = c.in.newBlock() @@ -335,7 +335,7 @@ func (c *Conn) dtlsFlushHandshake() error { // if necessary. The caller should call dtlsFlushPacket to flush the current // pending packet afterwards. func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int, err error) { - recordHeaderLen := dtlsRecordHeaderLen + recordHeaderLen := c.out.writeRecordHeaderLen() maxLen := c.config.Bugs.MaxHandshakeRecordLength if maxLen <= 0 { maxLen = 1024 diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go index 623f277e20..dae8a2ac8b 100644 --- a/ssl/test/runner/runner.go +++ b/ssl/test/runner/runner.go @@ -2725,7 +2725,7 @@ read alert 1 0 name: "SplitFragments-Boundary-DTLS", config: Config{ Bugs: ProtocolBugs{ - SplitFragments: dtlsRecordHeaderLen, + SplitFragments: dtlsMaxRecordHeaderLen, }, }, shouldFail: true, @@ -2736,7 +2736,7 @@ read alert 1 0 name: "SplitFragments-Body-DTLS", config: Config{ Bugs: ProtocolBugs{ - SplitFragments: dtlsRecordHeaderLen + 1, + SplitFragments: dtlsMaxRecordHeaderLen + 1, }, }, shouldFail: true, From 5365f84b9865e40c8db8b530be1206ce8189aac2 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 9 Aug 2024 16:52:18 -0400 Subject: [PATCH 09/81] Remove the now impossible BN_R_NOT_INITIALIZED check in BN_div This was just checking the bn_correct_top invariant. But since we got rid of the bn_correct_top invariant and dynamically compute bn_minimal_width anyway, bn_minimal_width will always be computed such that the check succeeds. Bug: 358687140 Change-Id: Idc1abbc46c38d47f319ee5835a5a601a8a3d9c0e Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70171 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/bn/div.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 0410fb7969..06bc4f8a7e 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -198,15 +198,6 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, BN_ULONG d0, d1; int num_n, div_n; - // Invalid zero-padding would have particularly bad consequences. - int numerator_width = bn_minimal_width(numerator); - int divisor_width = bn_minimal_width(divisor); - if ((numerator_width > 0 && numerator->d[numerator_width - 1] == 0) || - (divisor_width > 0 && divisor->d[divisor_width - 1] == 0)) { - OPENSSL_PUT_ERROR(BN, BN_R_NOT_INITIALIZED); - return 0; - } - if (BN_is_zero(divisor)) { OPENSSL_PUT_ERROR(BN, BN_R_DIV_BY_ZERO); return 0; From 9cc6d477425220fa96a7e434338446e593bfc869 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 9 Aug 2024 16:51:32 -0400 Subject: [PATCH 10/81] Comment what "normalize" means in BN_div Also add an assert for the invariant it is maintaining. Bug: 358687140 Change-Id: I3bcb9838198735b6f42e4f732b00e0fc990c5ffd Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70172 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 06bc4f8a7e..1b78dc3848 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -192,12 +192,6 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // Acıçmez, Shay Gueron, and Jean-Pierre Seifert. We continue to omit them for // simplicity, but this function is no longer used with secret inputs. (We // implement a variation on "Smooth CRT-RSA" as described in the paper.) - int norm_shift, loop; - BIGNUM wnum; - BN_ULONG *resp, *wnump; - BN_ULONG d0, d1; - int num_n, div_n; - if (BN_is_zero(divisor)) { OPENSSL_PUT_ERROR(BN, BN_R_DIV_BY_ZERO); return 0; @@ -217,13 +211,19 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, goto err; } - // First we normalise the numbers - norm_shift = BN_BITS2 - (BN_num_bits(divisor) % BN_BITS2); + // First we normalise the numbers such that the divisor's MSB is set. This + // ensures, in Knuth's terminology, that v1 >= b/2, needed for the quotient + // estimation step. + int norm_shift = BN_BITS2 - (BN_num_bits(divisor) % BN_BITS2); if (!BN_lshift(sdiv, divisor, norm_shift)) { goto err; } bn_set_minimal_width(sdiv); sdiv->neg = 0; + + // TODO(crbug.com/358687140): We also shift the numerator up by one extra + // word. This was done for convenience so that |wnump[-2]| below always + // exists, but makes the offsets confusing. Remove it. norm_shift += BN_BITS2; if (!BN_lshift(snum, numerator, norm_shift)) { goto err; @@ -250,25 +250,28 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, snum->width++; } - div_n = sdiv->width; - num_n = snum->width; - loop = num_n - div_n; + int div_n = sdiv->width; + int num_n = snum->width; + int loop = num_n - div_n; // Lets setup a 'window' into snum // This is the part that corresponds to the current // 'area' being divided + BIGNUM wnum; wnum.neg = 0; wnum.d = &(snum->d[loop]); wnum.width = div_n; // only needed when BN_ucmp messes up the values between width and max wnum.dmax = snum->dmax - loop; // so we don't step out of bounds - // Get the top 2 words of sdiv - // div_n=sdiv->width; - d0 = sdiv->d[div_n - 1]; - d1 = (div_n == 1) ? 0 : sdiv->d[div_n - 2]; + // Get the top 2 words of sdiv. + const BN_ULONG d0 = sdiv->d[div_n - 1]; + const BN_ULONG d1 = (div_n == 1) ? 0 : sdiv->d[div_n - 2]; + + // The normalization step ensures that |sdiv|'s MSB is one. + assert(d0 & (((BN_ULONG)1) << (BN_BITS2 - 1))); // pointer to the 'top' of snum - wnump = &(snum->d[num_n - 1]); + BN_ULONG *wnump = &(snum->d[num_n - 1]); // Setup |res|. |numerator| and |res| may alias, so we save |numerator->neg| // for later. @@ -278,7 +281,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, goto err; } res->width = loop - 1; - resp = &(res->d[loop - 1]); + BN_ULONG *resp = &(res->d[loop - 1]); // space for temp if (!bn_wexpand(tmp, div_n + 1)) { From 5615db6c7ba79cf664a74a1401edb9400636cbb1 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 9 Aug 2024 16:55:17 -0400 Subject: [PATCH 11/81] Clean up some BN_div variable declarations Bug: 358687140 Change-Id: Ifbc8bf34a93543c6035bfee29d915818ef2875db Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70173 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 1b78dc3848..3c9c4f53fd 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -297,13 +297,11 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, } for (int i = 0; i < loop - 1; i++, wnump--, resp--) { - BN_ULONG q, l0; // the first part of the loop uses the top two words of snum and sdiv to // calculate a BN_ULONG q such that | wnum - sdiv * q | < sdiv - BN_ULONG n0, n1, rm = 0; - - n0 = wnump[0]; - n1 = wnump[-1]; + BN_ULONG q, rm = 0; + BN_ULONG n0 = wnump[0]; + BN_ULONG n1 = wnump[-1]; if (n0 == d0) { q = BN_MASK2; } else { @@ -344,8 +342,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, #endif // !BN_ULLONG } - l0 = bn_mul_words(tmp->d, sdiv->d, div_n, q); - tmp->d[div_n] = l0; + tmp->d[div_n] = bn_mul_words(tmp->d, sdiv->d, div_n, q); wnum.d--; // ingore top values of the bignums just sub the two // BN_ULONG arrays with bn_sub_words From 1b421be241ea9bd4926137c92197627a5994d801 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sat, 10 Aug 2024 11:52:23 -0400 Subject: [PATCH 12/81] Reverse the loop variable in BN_div and assert pointer invariants Although Knuth iterates the index forwards, it makes more sense for us to do it backwards because he numbers words big-endian and we use little-endian. Ultimately each loop iteration i is about computing res->d[i] in the quotient. Once we do that, we can assert some pointer invariants. Subsequent CLs will remove some of the pointers. The compiler can figure it out and they make it harder to even confirm we stay within bounds. Bug: 358687140 Change-Id: I159489fafb8b071725c0e49a6fea66d6006f5a78 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70174 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/bn/div.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 3c9c4f53fd..097c5ebcee 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -296,7 +296,17 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, resp--; } - for (int i = 0; i < loop - 1; i++, wnump--, resp--) { + // Compute the quotient with a word-by-word long division. Note that Knuth + // indexes words from most to least significant, so our index is reversed. + // Each loop iteration computes res->d[i] of the quotient and updates snum + // with the running remainder. Before each loop iteration, wnum <= sdiv. + for (int i = loop - 2; i >= 0; i--, wnump--, resp--) { + // TODO(crbug.com/358687140): Remove these running pointers. + wnum.d--; + assert(resp == res->d + i); + assert(wnum.d == snum->d + i + 1); + assert(wnump == wnum.d + div_n); + // the first part of the loop uses the top two words of snum and sdiv to // calculate a BN_ULONG q such that | wnum - sdiv * q | < sdiv BN_ULONG q, rm = 0; @@ -305,7 +315,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, if (n0 == d0) { q = BN_MASK2; } else { - // n0 < d0 + assert(n0 < d0); bn_div_rem_words(&q, &rm, n0, n1, d0); #ifdef BN_ULLONG @@ -343,7 +353,6 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, } tmp->d[div_n] = bn_mul_words(tmp->d, sdiv->d, div_n, q); - wnum.d--; // ingore top values of the bignums just sub the two // BN_ULONG arrays with bn_sub_words if (bn_sub_words(wnum.d, wnum.d, tmp->d, div_n + 1)) { From 99c8a7dbde365addddc8da20960ecc4b87dbf9f9 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 9 Aug 2024 17:12:17 -0400 Subject: [PATCH 13/81] Simplify and clarify the snum padding logic in BN_div We can use bn_resize_words, which zeros the extra words and updates the width in one step. Also clarify what this is achieving. It's to establish a bunch of invariants that the loop cares about. Bug: 358687140 Change-Id: Id78e81bc08a1ca506b5d6ef6b01936f860fddd86 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70175 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/bn/div.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 097c5ebcee..36e9658085 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -231,27 +231,17 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, bn_set_minimal_width(snum); snum->neg = 0; - // Since we don't want to have special-case logic for the case where snum is - // larger than sdiv, we pad snum with enough zeroes without changing its - // value. - if (snum->width <= sdiv->width + 1) { - if (!bn_wexpand(snum, sdiv->width + 2)) { - goto err; - } - for (int i = snum->width; i < sdiv->width + 2; i++) { - snum->d[i] = 0; - } - snum->width = sdiv->width + 2; - } else { - if (!bn_wexpand(snum, snum->width + 1)) { - goto err; - } - snum->d[snum->width] = 0; - snum->width++; + // Extend |snum| with zeros to satisfy the long division invariants: + // - |snum|, minus the extra word, must have at least |div_n| + 1 words. + // - |snum|'s most significant word must be zero to guarantee the first loop + // iteration works with a prefix greater than |sdiv|. (This is the extra u0 + // digit in Knuth.) + int div_n = sdiv->width; + int num_n = snum->width <= div_n + 1 ? div_n + 2 : snum->width + 1; + if (!bn_resize_words(snum, num_n)) { + goto err; } - int div_n = sdiv->width; - int num_n = snum->width; int loop = num_n - div_n; // Lets setup a 'window' into snum // This is the part that corresponds to the current From 9eb843a3d084a73db46965e69c60a0073dd25f5f Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sat, 10 Aug 2024 11:55:13 -0400 Subject: [PATCH 14/81] Remove resp variable in BN_div It's much clearer if we just reference res->d[i] directly. Note that the removed res->neg clearing is a no-op because bn_set_minimal_width fills the value in anyway. It was also impossible for res->width to be zero because of the resizing step (see the bn_resize_words call). Even if it were possible for it to be zero, that would mean the loop doesn't run, and the resp pointer was only read outside the loop. So we can treat the function as if it unconditionally decremented resp. Bug: 358687140 Change-Id: I5e2d4ca03fd808cacd4f4647843a7894bf7a2f05 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70176 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/bn/div.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 36e9658085..d05b747917 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -271,29 +271,19 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, goto err; } res->width = loop - 1; - BN_ULONG *resp = &(res->d[loop - 1]); // space for temp if (!bn_wexpand(tmp, div_n + 1)) { goto err; } - // if res->width == 0 then clear the neg value otherwise decrease - // the resp pointer - if (res->width == 0) { - res->neg = 0; - } else { - resp--; - } - // Compute the quotient with a word-by-word long division. Note that Knuth // indexes words from most to least significant, so our index is reversed. // Each loop iteration computes res->d[i] of the quotient and updates snum // with the running remainder. Before each loop iteration, wnum <= sdiv. - for (int i = loop - 2; i >= 0; i--, wnump--, resp--) { + for (int i = loop - 2; i >= 0; i--, wnump--) { // TODO(crbug.com/358687140): Remove these running pointers. wnum.d--; - assert(resp == res->d + i); assert(wnum.d == snum->d + i + 1); assert(wnump == wnum.d + div_n); @@ -359,7 +349,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, } } // store part of the result - *resp = q; + res->d[i] = q; } bn_set_minimal_width(snum); From 08a232f5766a5bd575eab5939578f6aaf5c414d3 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 12 Aug 2024 17:46:08 -0400 Subject: [PATCH 15/81] Size res in BN_div correctly We allocated two more words than were needed. Sizing it more than the width is suspicious and with the confusing pointer indirection removed, it becomes clear that, throughout the entire function, we only ever write to indices 0 through loop-2. That is, it should be sized for loop-1. Bug: 358687140 Change-Id: I9e33ce7d2c4e5b6fae9ec59bdee34b2d3480addc Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70177 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/bn/div.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index d05b747917..a4c0ded927 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -267,7 +267,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // for later. const int numerator_neg = numerator->neg; res->neg = (numerator_neg ^ divisor->neg); - if (!bn_wexpand(res, loop + 1)) { + if (!bn_wexpand(res, loop - 1)) { goto err; } res->width = loop - 1; From c98b28bd5e99a0983de8389435621df1e04d1e62 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 14 Aug 2024 16:40:38 +0000 Subject: [PATCH 16/81] Clear AVX512 feature bits when AVX512 not actually supported According to Intel's documentation, if not all the AVX512 bits in XCR0 are set (meaning that the operating system doesn't fully support AVX512), then no AVX512 feature can be used, even on xmm and ymm registers. Make OPENSSL_cpuid_setup() correctly handle this case by clearing all the AVX512 feature bits when this situation is detected. Change-Id: I2774dbc28bfbac1196e405c0920ba2909e7f0eb3 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68907 Reviewed-by: David Benjamin Reviewed-by: Bob Beck Commit-Queue: Adam Langley Auto-Submit: Eric Biggers --- crypto/cpu_intel.c | 42 +++++++++++++++++++++++++++++++----------- crypto/internal.h | 10 +++++----- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/crypto/cpu_intel.c b/crypto/cpu_intel.c index 347eadca98..3453fa3914 100644 --- a/crypto/cpu_intel.c +++ b/crypto/cpu_intel.c @@ -227,19 +227,39 @@ void OPENSSL_cpuid_setup(void) { ecx &= ~(1u << 28); // AVX ecx &= ~(1u << 12); // FMA ecx &= ~(1u << 11); // AMD XOP - // Clear AVX2 and AVX512* bits. - // - // TODO(davidben): Should bits 17 and 26-28 also be cleared? Upstream - // doesn't clear those. See the comments in - // |CRYPTO_hardware_supports_XSAVE|. - extended_features[0] &= - ~((1u << 5) | (1u << 16) | (1u << 21) | (1u << 30) | (1u << 31)); + extended_features[0] &= ~(1u << 5); // AVX2 } - // See Intel manual, volume 1, section 15.2. + // See Intel manual, volume 1, sections 15.2 ("Detection of AVX-512 Foundation + // Instructions") through 15.4 ("Detection of Intel AVX-512 Instruction Groups + // Operating at 256 and 128-bit Vector Lengths"). if ((xcr0 & 0xe6) != 0xe6) { - // Clear AVX512F. Note we don't touch other AVX512 extensions because they - // can be used with YMM. - extended_features[0] &= ~(1u << 16); + // Without XCR0.111xx11x, no AVX512 feature can be used. This includes ZMM + // registers, masking, SIMD registers 16-31 (even if accessed as YMM or + // XMM), and EVEX-coded instructions (even on YMM or XMM). Even if only + // XCR0.ZMM_Hi256 is missing, it isn't valid to use AVX512 features on + // shorter vectors, since AVX512 ties everything to the availability of + // 512-bit vectors. See the above-mentioned sections of the Intel manual, + // which say that *all* these XCR0 bits must be checked even when just using + // 128-bit or 256-bit vectors, and also volume 2a section 2.7.11 ("#UD + // Equations for EVEX") which says that all EVEX-coded instructions raise an + // undefined-instruction exception if any of these XCR0 bits is zero. + // + // AVX10 fixes this by reorganizing the features that used to be part of + // "AVX512" and allowing them to be used independently of 512-bit support. + // TODO: add AVX10 detection. + extended_features[0] &= ~(1u << 16); // AVX512F + extended_features[0] &= ~(1u << 17); // AVX512DQ + extended_features[0] &= ~(1u << 21); // AVX512IFMA + extended_features[0] &= ~(1u << 26); // AVX512PF + extended_features[0] &= ~(1u << 27); // AVX512ER + extended_features[0] &= ~(1u << 28); // AVX512CD + extended_features[0] &= ~(1u << 30); // AVX512BW + extended_features[0] &= ~(1u << 31); // AVX512VL + extended_features[1] &= ~(1u << 1); // AVX512VBMI + extended_features[1] &= ~(1u << 6); // AVX512VBMI2 + extended_features[1] &= ~(1u << 11); // AVX512VNNI + extended_features[1] &= ~(1u << 12); // AVX512BITALG + extended_features[1] &= ~(1u << 14); // AVX512VPOPCNTDQ } OPENSSL_ia32cap_P[0] = edx; diff --git a/crypto/internal.h b/crypto/internal.h index 89d1e80e91..209c85a34d 100644 --- a/crypto/internal.h +++ b/crypto/internal.h @@ -1390,13 +1390,13 @@ OPENSSL_INLINE int boringssl_fips_break_test(const char *test) { // ECX for CPUID where EAX = 1 // Bit 11 is used to indicate AMD XOP support, not SDBG // Index 2: -// EBX for CPUID where EAX = 7 +// EBX for CPUID where EAX = 7, ECX = 0 // Index 3: -// ECX for CPUID where EAX = 7 +// ECX for CPUID where EAX = 7, ECX = 0 // -// Note: the CPUID bits are pre-adjusted for the OSXSAVE bit and the YMM and XMM -// bits in XCR0, so it is not necessary to check those. (WARNING: See caveats -// in cpu_intel.c.) +// Note: the CPUID bits are pre-adjusted for the OSXSAVE bit and the XMM, YMM, +// and AVX512 bits in XCR0, so it is not necessary to check those. (WARNING: See +// caveats in cpu_intel.c.) // // From C, this symbol should only be accessed with |OPENSSL_get_ia32cap|. extern uint32_t OPENSSL_ia32cap_P[4]; From 942454eaf76539ecc32a537d260d59d44169fac0 Mon Sep 17 00:00:00 2001 From: Jennie Brown Date: Wed, 14 Aug 2024 20:34:25 +0000 Subject: [PATCH 17/81] Add RSA 3072 to bssl SpeedRSA benchmark. Change-Id: Icdd1192a24d3bdc62198ca9243f4bbf9f64f3c29 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70287 Reviewed-by: Adam Langley Commit-Queue: Adam Langley --- tool/const.cc | 153 ++++++++++++++++++++++++++++++++++++++++++++++++ tool/internal.h | 2 + tool/speed.cc | 1 + 3 files changed, 156 insertions(+) diff --git a/tool/const.cc b/tool/const.cc index 0372e4cccc..cc3d34f213 100644 --- a/tool/const.cc +++ b/tool/const.cc @@ -123,6 +123,159 @@ const uint8_t kDERRSAPrivate2048[] = { const size_t kDERRSAPrivate2048Len = sizeof(kDERRSAPrivate2048); +const uint8_t kDERRSAPrivate3072[] = { + 0x30, 0x82, 0x06, 0xe4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x81, 0x00, + 0xbf, 0xde, 0x95, 0x71, 0xdf, 0x66, 0xbd, 0x7c, 0x2e, 0xd3, 0x81, 0x66, + 0xcc, 0xd1, 0x3b, 0xb2, 0x37, 0x31, 0x66, 0x34, 0x29, 0x4f, 0x23, 0x6e, + 0xa6, 0x5b, 0x54, 0x17, 0x15, 0xf8, 0x41, 0xc4, 0xeb, 0xb5, 0x26, 0xbd, + 0x20, 0x33, 0x62, 0x6d, 0x5e, 0x9e, 0xcd, 0x78, 0x7e, 0x78, 0xf9, 0xe6, + 0xea, 0xfe, 0x07, 0xa2, 0x7c, 0x39, 0x13, 0x15, 0x57, 0xb3, 0x3d, 0x67, + 0x3d, 0x84, 0x89, 0x07, 0x7c, 0x14, 0xde, 0xd0, 0xe3, 0x40, 0x1e, 0xe5, + 0xc5, 0x1a, 0xdd, 0x72, 0xe2, 0xd6, 0x66, 0x52, 0x0e, 0x4b, 0xfb, 0x22, + 0x20, 0x4e, 0x72, 0xce, 0x74, 0x4f, 0xbb, 0xbe, 0xb2, 0x22, 0xa6, 0x4c, + 0x3e, 0xf7, 0xcb, 0x0c, 0x6f, 0x81, 0x73, 0xcd, 0x4a, 0x2c, 0x3a, 0xe2, + 0x60, 0xc0, 0xe3, 0x85, 0xb7, 0x29, 0x21, 0x67, 0x58, 0x6f, 0x61, 0x68, + 0x63, 0x7b, 0x02, 0x41, 0xcd, 0xf9, 0x08, 0xfa, 0xa2, 0x3c, 0xaf, 0x33, + 0xed, 0x34, 0x89, 0x64, 0x7c, 0x3d, 0x2e, 0xf7, 0xaa, 0x99, 0x0d, 0xca, + 0xb5, 0x80, 0xa3, 0xee, 0x31, 0x88, 0x68, 0xd5, 0x06, 0x9f, 0x8d, 0x49, + 0x88, 0xa5, 0xee, 0x26, 0x43, 0xad, 0x01, 0x32, 0x1c, 0x5a, 0x66, 0x75, + 0xb0, 0x4e, 0xe2, 0x30, 0x5f, 0x71, 0x0e, 0x80, 0x51, 0x30, 0x91, 0xb1, + 0x8a, 0x22, 0xd7, 0x0d, 0x76, 0xa5, 0xcc, 0x66, 0x16, 0x75, 0x3d, 0x5f, + 0xb3, 0x48, 0x0a, 0x10, 0x4b, 0x7e, 0xcb, 0xca, 0x6c, 0x8b, 0x0f, 0xf9, + 0x7c, 0x63, 0xc0, 0x28, 0x8e, 0x76, 0x2f, 0x01, 0xb1, 0x35, 0x25, 0xab, + 0x88, 0x47, 0x80, 0xc0, 0xf2, 0x53, 0x84, 0xc1, 0x91, 0x7e, 0x2a, 0xcf, + 0xb9, 0x31, 0xa0, 0x75, 0x06, 0x2b, 0xfc, 0x77, 0x0e, 0xd3, 0x5b, 0x28, + 0x79, 0x76, 0xce, 0x76, 0xb3, 0x22, 0xa4, 0x87, 0x76, 0x65, 0x82, 0xe1, + 0xc0, 0x75, 0x0e, 0x46, 0x41, 0xf6, 0x3e, 0xcc, 0x92, 0x20, 0x37, 0xf2, + 0x0a, 0xf0, 0xf7, 0x86, 0xd2, 0x89, 0x2e, 0x88, 0x27, 0xb3, 0x39, 0xb8, + 0x26, 0xd0, 0x11, 0x46, 0x8a, 0x56, 0xea, 0xa5, 0xd8, 0xae, 0x83, 0xd6, + 0x79, 0xb8, 0xb8, 0xbf, 0x8d, 0x8f, 0x05, 0x7a, 0x58, 0x31, 0x8a, 0x7d, + 0xcc, 0x43, 0x3e, 0xa6, 0x39, 0xa3, 0x1d, 0xf6, 0x06, 0x87, 0x9c, 0xc2, + 0xa7, 0xd6, 0x17, 0xcf, 0x89, 0x28, 0x49, 0xa1, 0x43, 0xe0, 0xa4, 0xe0, + 0x64, 0x3d, 0x3c, 0xcb, 0xe2, 0x45, 0x4b, 0x30, 0xb9, 0xb7, 0x9a, 0x13, + 0x7c, 0x7e, 0x75, 0xd6, 0xad, 0x7a, 0xc8, 0x81, 0xcd, 0xf8, 0x96, 0x24, + 0x56, 0x07, 0xb2, 0x4a, 0x3c, 0x14, 0x49, 0xdf, 0xa0, 0x12, 0x2f, 0x02, + 0x19, 0x01, 0x74, 0x46, 0x93, 0x08, 0x5e, 0x68, 0xaf, 0x44, 0x36, 0x0f, + 0x5f, 0x6c, 0xfe, 0x94, 0xb0, 0x11, 0xb4, 0xcb, 0xbb, 0x36, 0xa9, 0x9b, + 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, 0x80, 0x75, 0xe4, 0x01, + 0xd7, 0x31, 0xf9, 0x22, 0xbc, 0x46, 0xd9, 0x56, 0x4d, 0x1f, 0xd3, 0xff, + 0xe6, 0x04, 0xdb, 0xa9, 0x7c, 0xab, 0x55, 0x20, 0xe4, 0x3f, 0xfb, 0x25, + 0xb3, 0xf9, 0x9f, 0xcc, 0x69, 0x7e, 0x9a, 0x93, 0xee, 0xe8, 0xf6, 0x29, + 0xa8, 0x21, 0xd7, 0x59, 0x50, 0x8c, 0x05, 0x31, 0x27, 0x9d, 0x83, 0xf0, + 0x94, 0xf9, 0xd6, 0xe7, 0xce, 0xd9, 0x50, 0x1c, 0x8e, 0x6e, 0xd2, 0x1c, + 0x90, 0x28, 0xc1, 0x7a, 0x16, 0xc7, 0x4b, 0x02, 0xb1, 0x13, 0x66, 0xea, + 0x62, 0x48, 0xd6, 0x8b, 0x90, 0x27, 0x90, 0xb0, 0x01, 0xcb, 0xef, 0xe7, + 0xc2, 0xca, 0xdc, 0xa2, 0xf3, 0x0c, 0xe9, 0x15, 0x5d, 0x0b, 0xe3, 0x9d, + 0x33, 0x4a, 0xe0, 0x33, 0x93, 0x13, 0xdc, 0x11, 0x62, 0x3f, 0x28, 0xc5, + 0xa3, 0xc7, 0x62, 0xd2, 0x4f, 0x79, 0x9b, 0x16, 0x32, 0xd9, 0xcd, 0x1f, + 0x19, 0xe7, 0xc0, 0xf8, 0xaf, 0x67, 0x37, 0xfa, 0x3e, 0xe1, 0xa4, 0xc2, + 0x36, 0xa7, 0xcf, 0xc0, 0x28, 0x14, 0xfe, 0x6d, 0xe6, 0xfb, 0x96, 0xcb, + 0x22, 0xf3, 0xf4, 0x68, 0xd5, 0x5b, 0x78, 0x75, 0x8b, 0x95, 0x16, 0xbf, + 0x39, 0x6b, 0xa3, 0xc5, 0x74, 0x50, 0xcf, 0x8a, 0xdd, 0x0d, 0x33, 0xaa, + 0xef, 0x25, 0xf5, 0x85, 0x7f, 0x7a, 0x63, 0x69, 0x61, 0xb9, 0x0a, 0xa7, + 0x30, 0x72, 0x92, 0x75, 0x00, 0xd5, 0x13, 0xbc, 0x5d, 0x1c, 0x8b, 0xff, + 0xee, 0x77, 0xb3, 0x2c, 0x36, 0x54, 0x56, 0x3c, 0x97, 0x8d, 0x70, 0x21, + 0xa7, 0x76, 0xa6, 0xe2, 0x2e, 0x15, 0xe2, 0x02, 0x7b, 0x32, 0x70, 0xa0, + 0x88, 0x24, 0x14, 0x71, 0x30, 0xb2, 0xfd, 0x67, 0x2b, 0x67, 0x7f, 0x2c, + 0x3a, 0x4a, 0x48, 0xf1, 0x46, 0xc3, 0x28, 0xdd, 0x9e, 0x5c, 0x4c, 0x5d, + 0x5f, 0x51, 0x14, 0x07, 0x96, 0xed, 0xe5, 0x37, 0x97, 0x36, 0xd7, 0x8f, + 0xfd, 0x61, 0x94, 0xdb, 0x75, 0x8e, 0x99, 0xab, 0x2b, 0x18, 0xd5, 0x3b, + 0x84, 0x94, 0x5f, 0xfa, 0x35, 0xd1, 0x08, 0x33, 0x82, 0x38, 0x1a, 0xaa, + 0xdf, 0xf3, 0xd3, 0xa5, 0x6e, 0xc2, 0x22, 0xb6, 0x89, 0xc7, 0x6b, 0x11, + 0xa5, 0xba, 0xc9, 0xdc, 0xeb, 0xd5, 0x8d, 0x91, 0x04, 0xb3, 0x90, 0x7b, + 0xa5, 0x79, 0x40, 0x9c, 0x1e, 0x73, 0x15, 0xfc, 0xd7, 0x2c, 0xfd, 0x5f, + 0xde, 0x06, 0x7d, 0x56, 0x54, 0xfd, 0xf0, 0x1d, 0x72, 0x7c, 0xa9, 0xdd, + 0x5b, 0xad, 0x45, 0xd5, 0xaa, 0xfd, 0xc1, 0x0f, 0x7b, 0x54, 0x0f, 0xf5, + 0x94, 0x3a, 0xb2, 0x9e, 0x36, 0x96, 0xad, 0x5a, 0x22, 0x8b, 0xe5, 0xd7, + 0xee, 0xe6, 0xf3, 0x04, 0x0b, 0x41, 0x3f, 0x32, 0xe7, 0x54, 0x7b, 0x40, + 0x3a, 0x4a, 0x7c, 0xa4, 0x5d, 0x6f, 0xa7, 0xd4, 0x66, 0x02, 0xd5, 0x5b, + 0x53, 0xac, 0xbc, 0x2a, 0x66, 0x9c, 0xf4, 0xb2, 0xe1, 0x02, 0x81, 0xc1, + 0x00, 0xe3, 0x9d, 0xa2, 0x1a, 0x33, 0x60, 0x96, 0xf3, 0xda, 0x5d, 0xe3, + 0x6a, 0x13, 0xd8, 0xf9, 0xb7, 0xd5, 0x92, 0x99, 0x7e, 0x09, 0x1c, 0x67, + 0xb6, 0x17, 0x2d, 0xed, 0x07, 0xce, 0xf9, 0xba, 0xe2, 0xde, 0x09, 0x60, + 0xa4, 0x31, 0x5d, 0x15, 0x5b, 0x07, 0x88, 0xcf, 0x3b, 0x06, 0xc7, 0xfd, + 0x25, 0x1c, 0xc8, 0x40, 0xf8, 0xb7, 0x92, 0x17, 0xe3, 0xac, 0x84, 0xc9, + 0x73, 0x52, 0x2e, 0x68, 0x89, 0x0f, 0x56, 0xff, 0x53, 0xab, 0x63, 0xda, + 0x01, 0x10, 0x18, 0x8a, 0x71, 0x55, 0xa0, 0x7c, 0x72, 0x32, 0x65, 0x25, + 0x36, 0x07, 0x33, 0x7c, 0xd1, 0x01, 0x94, 0x7f, 0x84, 0xd0, 0xb5, 0xed, + 0x01, 0xfe, 0xed, 0x80, 0xa9, 0xdc, 0x36, 0x9a, 0xed, 0x4c, 0x5c, 0x9a, + 0x55, 0xc0, 0xb6, 0xc7, 0xe9, 0xa4, 0xf1, 0x3a, 0x1a, 0x7b, 0x17, 0xbb, + 0xdd, 0xc8, 0xd9, 0xe7, 0xfd, 0x4b, 0xf4, 0x34, 0xae, 0x7c, 0x2a, 0xcb, + 0x49, 0x26, 0x02, 0x50, 0xc3, 0x2c, 0xa1, 0x52, 0x27, 0x22, 0xd5, 0x45, + 0xcd, 0x98, 0x5d, 0xa1, 0x3b, 0xaa, 0x30, 0xb7, 0x54, 0x2b, 0xdb, 0x64, + 0x1a, 0x4d, 0x1a, 0x10, 0x23, 0xd7, 0xf3, 0xd2, 0xf4, 0x7b, 0xb8, 0x50, + 0xd6, 0x77, 0x48, 0xa8, 0xcc, 0x0f, 0xed, 0x35, 0xd7, 0x5c, 0x4e, 0x00, + 0x93, 0x4f, 0x6d, 0x20, 0xe0, 0x11, 0x0a, 0x17, 0x40, 0xc5, 0x44, 0xb5, + 0x9d, 0x02, 0x81, 0xc1, 0x00, 0xd7, 0xcb, 0xca, 0xca, 0x62, 0x0e, 0x91, + 0x57, 0x71, 0xe0, 0x92, 0xfa, 0xb5, 0x5d, 0xf2, 0xd1, 0x4d, 0x4e, 0x89, + 0x26, 0x3a, 0x50, 0xfd, 0x72, 0xe7, 0xdb, 0x7c, 0x04, 0x95, 0x79, 0xa4, + 0xcf, 0xcc, 0x50, 0x21, 0xc5, 0x1b, 0xc9, 0xf0, 0xe3, 0x13, 0x7e, 0x9c, + 0x97, 0xba, 0x55, 0x76, 0xd6, 0x5d, 0x66, 0xe8, 0x26, 0x97, 0x46, 0x3d, + 0x61, 0xdd, 0x95, 0xb9, 0x12, 0x96, 0xc4, 0x88, 0x0e, 0x82, 0xfd, 0xa9, + 0x58, 0x8a, 0xaf, 0x7d, 0x02, 0xee, 0xe4, 0x32, 0xa2, 0x98, 0xfa, 0xcf, + 0x7f, 0x16, 0xce, 0xf4, 0x39, 0x04, 0x0a, 0x50, 0xb2, 0xac, 0xdf, 0x3f, + 0x66, 0x74, 0xed, 0x78, 0xde, 0xeb, 0x36, 0x79, 0x75, 0x8f, 0x45, 0xb3, + 0xac, 0xfe, 0xda, 0x91, 0x30, 0x13, 0xc1, 0x42, 0xbe, 0xfd, 0xae, 0x38, + 0x30, 0x2d, 0xf4, 0x78, 0x10, 0xd3, 0xc4, 0x63, 0x86, 0x02, 0xf2, 0xbf, + 0x76, 0xef, 0xa7, 0x3b, 0x59, 0xe4, 0xb7, 0x35, 0x8a, 0x8f, 0xd7, 0xad, + 0x8e, 0x9d, 0x8b, 0xdc, 0x51, 0xaa, 0xfe, 0x0e, 0xc9, 0x8c, 0x1b, 0xa6, + 0xf9, 0xfa, 0xe3, 0xa4, 0xa0, 0x2f, 0x11, 0xf9, 0x30, 0xd9, 0x8c, 0x71, + 0xf1, 0xff, 0xf2, 0x16, 0xaf, 0x35, 0x60, 0x10, 0xfe, 0x4b, 0xee, 0x3b, + 0x4b, 0xcc, 0xa2, 0x6b, 0x00, 0x94, 0xc5, 0x84, 0x49, 0xd7, 0x82, 0x8c, + 0x35, 0x23, 0xcc, 0x92, 0x97, 0x02, 0x81, 0xc1, 0x00, 0x83, 0x9a, 0x2c, + 0x93, 0x81, 0x89, 0x23, 0x3e, 0x32, 0xcf, 0x7e, 0x21, 0x63, 0x00, 0x5c, + 0xc1, 0xd1, 0x96, 0x45, 0x70, 0xfd, 0xcb, 0x92, 0x9b, 0x51, 0xa3, 0x98, + 0x1c, 0x9f, 0xaa, 0xfc, 0x47, 0x17, 0xa1, 0xcc, 0x62, 0xa2, 0xb7, 0xf3, + 0x15, 0x02, 0xb2, 0x33, 0x3f, 0x29, 0x98, 0x8f, 0xe0, 0xd9, 0x57, 0x5f, + 0x59, 0x6e, 0xa9, 0xe5, 0x6e, 0x19, 0xdd, 0x5c, 0xac, 0x74, 0xa3, 0xa8, + 0x85, 0x36, 0x7d, 0x52, 0x7b, 0x09, 0xe9, 0x5d, 0xae, 0xa7, 0xa3, 0xc8, + 0xc7, 0xe6, 0x7e, 0x37, 0xf5, 0xbe, 0xf5, 0x84, 0x22, 0x4c, 0xdf, 0x94, + 0x17, 0x34, 0x16, 0xab, 0xf4, 0x1a, 0xc8, 0x55, 0x14, 0x86, 0x54, 0xc3, + 0xc3, 0x72, 0x33, 0x90, 0x38, 0x0b, 0xa2, 0xaf, 0x09, 0x4d, 0xb7, 0x60, + 0xb6, 0xd2, 0x4b, 0x37, 0x11, 0x00, 0x82, 0xa4, 0x78, 0x83, 0x1c, 0x9a, + 0x69, 0x75, 0x74, 0xe8, 0xd0, 0xc9, 0xb1, 0xe4, 0x7f, 0x92, 0x9e, 0x5c, + 0x1b, 0xbc, 0xbe, 0x39, 0x45, 0xaf, 0x7a, 0x28, 0x35, 0xcb, 0x16, 0xb7, + 0x96, 0x4b, 0xbc, 0x87, 0x02, 0xff, 0xa8, 0x85, 0xa4, 0x3f, 0x58, 0x06, + 0x64, 0xf3, 0x03, 0x62, 0xc1, 0x40, 0x97, 0x3d, 0x06, 0x03, 0x49, 0xdb, + 0x6e, 0xc0, 0xf6, 0xa1, 0xde, 0xb6, 0xdb, 0xd2, 0xb1, 0x59, 0x86, 0xfb, + 0x2f, 0x12, 0x2b, 0x07, 0x6e, 0xc7, 0xa0, 0x06, 0x71, 0x02, 0x81, 0xc1, + 0x00, 0x91, 0x84, 0x11, 0xe6, 0x71, 0x43, 0x03, 0x8d, 0x24, 0xf4, 0x5c, + 0x08, 0x85, 0x7e, 0xa9, 0xbb, 0xab, 0xd6, 0xb6, 0xb3, 0x39, 0x85, 0xdd, + 0xb2, 0xbb, 0x58, 0x8d, 0x03, 0x86, 0x4c, 0x35, 0xf0, 0x0e, 0x05, 0x47, + 0x10, 0x64, 0x91, 0xc3, 0x47, 0x4c, 0xa1, 0x07, 0x35, 0x65, 0x68, 0x36, + 0x2f, 0x8d, 0x62, 0x54, 0x4f, 0x99, 0x98, 0xba, 0xd1, 0xa0, 0x9b, 0x52, + 0xe6, 0x8f, 0x16, 0x4d, 0xed, 0x03, 0x35, 0xcc, 0x19, 0x31, 0xc3, 0xee, + 0x97, 0xa8, 0xc1, 0xe6, 0xc7, 0x30, 0x43, 0x88, 0xe2, 0x59, 0x5e, 0x0a, + 0xdf, 0xdb, 0xb2, 0x9d, 0x02, 0x2f, 0x82, 0x87, 0x7d, 0x2e, 0x81, 0xe8, + 0x0c, 0xe2, 0x2d, 0xa4, 0xaf, 0xba, 0x82, 0x35, 0x0c, 0x05, 0xfb, 0x1b, + 0x06, 0x81, 0x7b, 0xc3, 0xe7, 0x88, 0xa7, 0x0f, 0xaa, 0xa5, 0x82, 0x81, + 0xe8, 0x4e, 0xf4, 0xd2, 0x6b, 0xce, 0xd7, 0x24, 0x77, 0x2e, 0x59, 0xe5, + 0xb2, 0xd3, 0x81, 0x1b, 0xb0, 0xa9, 0x18, 0xb6, 0x27, 0x42, 0x63, 0xca, + 0x98, 0xa3, 0xa6, 0x98, 0x10, 0x1e, 0xd3, 0x92, 0xc0, 0x65, 0x07, 0x56, + 0xbe, 0xd1, 0x9e, 0xdc, 0x1b, 0xad, 0xc7, 0x80, 0x1a, 0xc1, 0x0d, 0xdd, + 0x70, 0x1e, 0x9c, 0xfe, 0x38, 0x8c, 0xb9, 0x43, 0xf0, 0xf4, 0x37, 0xdd, + 0xd1, 0xd1, 0x80, 0x73, 0x99, 0x5b, 0xa2, 0xe3, 0xaa, 0xfd, 0xcd, 0xf8, + 0x57, 0x02, 0x81, 0xc0, 0x0c, 0xb8, 0x9d, 0x9a, 0xc8, 0xf4, 0x5b, 0xff, + 0x3e, 0x28, 0x31, 0x78, 0x1c, 0x6e, 0x65, 0xdc, 0x6a, 0xae, 0x8c, 0x2e, + 0xec, 0x32, 0x3f, 0x3b, 0xf8, 0x49, 0x43, 0xb4, 0xd8, 0x0d, 0x8d, 0x46, + 0xe4, 0x7d, 0x04, 0xe6, 0xe2, 0xd2, 0x37, 0x79, 0x26, 0x26, 0xc6, 0xd5, + 0x7d, 0xa6, 0xe8, 0xea, 0xfd, 0x6f, 0x07, 0x5d, 0x54, 0xa6, 0x26, 0x6b, + 0xd8, 0x95, 0xdf, 0x38, 0x93, 0x51, 0x22, 0x14, 0x4f, 0x50, 0x01, 0x21, + 0x05, 0x05, 0xbb, 0xd0, 0xd5, 0x4f, 0x3b, 0x1d, 0x52, 0x00, 0xf1, 0xb4, + 0x97, 0x8d, 0x13, 0x74, 0x41, 0x6c, 0xd5, 0x9c, 0xa8, 0x50, 0x35, 0xa7, + 0x2b, 0xad, 0x9b, 0x54, 0x7c, 0x62, 0x74, 0x8d, 0x93, 0x14, 0x25, 0x3a, + 0xf4, 0xc3, 0xe2, 0xb0, 0xb2, 0x77, 0xfd, 0x73, 0x85, 0x2a, 0xa8, 0x46, + 0x8f, 0xa5, 0xee, 0xbc, 0xe1, 0xc6, 0xaa, 0x52, 0x44, 0xde, 0xbe, 0x91, + 0x4b, 0x44, 0x7b, 0x12, 0xb3, 0x17, 0x4e, 0xc4, 0x0b, 0x8b, 0xa8, 0xcd, + 0x01, 0xa9, 0xc9, 0x91, 0x2d, 0xae, 0x66, 0x62, 0xad, 0x06, 0x59, 0x61, + 0x14, 0xf2, 0xc3, 0xde, 0xd1, 0xf9, 0x2c, 0xb8, 0x70, 0x99, 0x36, 0xc8, + 0xc1, 0x87, 0xce, 0x82, 0x37, 0xff, 0x76, 0x30, 0x91, 0xee, 0x40, 0x6f, + 0xd4, 0xaf, 0xd4, 0x2f, 0xdf, 0x51, 0x7c, 0xe1, 0x1b, 0x59, 0xa1, 0x7a, + 0xa4, 0x58, 0x0a, 0x72, +}; + +const size_t kDERRSAPrivate3072Len = sizeof(kDERRSAPrivate3072); + const uint8_t kDERRSAPrivate4096[] = { 0x30, 0x82, 0x09, 0x28, 0x02, 0x01, 0x00, 0x02, 0x82, 0x02, 0x01, 0x00, 0xc3, 0x82, 0x01, 0xda, 0x03, 0xe1, 0x0d, 0x78, 0xf4, 0x86, 0xf1, 0x28, diff --git a/tool/internal.h b/tool/internal.h index 7f3692a5ee..885e0e9cf8 100644 --- a/tool/internal.h +++ b/tool/internal.h @@ -144,6 +144,8 @@ bool Speed(const std::vector &args); // These values are DER encoded, RSA private keys. extern const uint8_t kDERRSAPrivate2048[]; extern const size_t kDERRSAPrivate2048Len; +extern const uint8_t kDERRSAPrivate3072[]; +extern const size_t kDERRSAPrivate3072Len; extern const uint8_t kDERRSAPrivate4096[]; extern const size_t kDERRSAPrivate4096Len; diff --git a/tool/speed.cc b/tool/speed.cc index 4390e1e5d0..ca5125b5af 100644 --- a/tool/speed.cc +++ b/tool/speed.cc @@ -311,6 +311,7 @@ static bool SpeedRSA(const std::string &selected) { const size_t key_len; } kRSAKeys[] = { {"RSA 2048", kDERRSAPrivate2048, kDERRSAPrivate2048Len}, + {"RSA 3072", kDERRSAPrivate3072, kDERRSAPrivate3072Len}, {"RSA 4096", kDERRSAPrivate4096, kDERRSAPrivate4096Len}, }; From 12391e648d3c6f04a718721568cc89208b780654 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 14 Aug 2024 23:54:50 +0000 Subject: [PATCH 18/81] Include in pki/string_util.h This is necessary to avoid the following error when building with MSVC using the latest STL: error C2039: 'string': is not a member of 'std' Change-Id: I4c926f7a020c2e920bcc78667bc04951cdab4cf1 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70272 Reviewed-by: David Benjamin Commit-Queue: David Benjamin --- pki/string_util.h | 1 + 1 file changed, 1 insertion(+) diff --git a/pki/string_util.h b/pki/string_util.h index 27be485944..1dad828c14 100644 --- a/pki/string_util.h +++ b/pki/string_util.h @@ -6,6 +6,7 @@ #define BSSL_PKI_STRING_UTIL_H_ #include +#include #include #include From 1a87f285b5898ab63f54ea7e9a4e521a22078032 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 12 Aug 2024 13:40:07 -0400 Subject: [PATCH 19/81] Comment the core BN_div loop With reference to Knuth. I'm not sure what the comment about overflowing when q = 0 is about. The bounds in "the first part of the loop" imply that we've either computed q+1 or q and the borrow check exactly captures the q+1 case. Moreover, this addition is expected to *always* overflow. It cancels out the underflow from subtracting too many. Bug: 358687140 Change-Id: I24bf8c9c37dcd1145667d7f0e8457c0e63e8783c Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70178 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 88 +++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 26 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index a4c0ded927..5d059e5c47 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -211,9 +211,9 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, goto err; } - // First we normalise the numbers such that the divisor's MSB is set. This - // ensures, in Knuth's terminology, that v1 >= b/2, needed for the quotient - // estimation step. + // Knuth step D1: Normalise the numbers such that the divisor's MSB is set. + // This ensures, in Knuth's terminology, that v1 >= b/2, needed for the + // quotient estimation step. int norm_shift = BN_BITS2 - (BN_num_bits(divisor) % BN_BITS2); if (!BN_lshift(sdiv, divisor, norm_shift)) { goto err; @@ -235,7 +235,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // - |snum|, minus the extra word, must have at least |div_n| + 1 words. // - |snum|'s most significant word must be zero to guarantee the first loop // iteration works with a prefix greater than |sdiv|. (This is the extra u0 - // digit in Knuth.) + // digit in Knuth step D1.) int div_n = sdiv->width; int num_n = snum->width <= div_n + 1 ? div_n + 2 : snum->width + 1; if (!bn_resize_words(snum, num_n)) { @@ -272,32 +272,70 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, } res->width = loop - 1; - // space for temp if (!bn_wexpand(tmp, div_n + 1)) { goto err; } - // Compute the quotient with a word-by-word long division. Note that Knuth - // indexes words from most to least significant, so our index is reversed. - // Each loop iteration computes res->d[i] of the quotient and updates snum - // with the running remainder. Before each loop iteration, wnum <= sdiv. + // Knuth steps D2 through D7: Compute the quotient with a word-by-word long + // division. Note that Knuth indexes words from most to least significant, so + // our index is reversed. Each loop iteration computes res->d[i] of the + // quotient and updates snum with the running remainder. Before each loop + // iteration, wnum <= sdiv. for (int i = loop - 2; i >= 0; i--, wnump--) { // TODO(crbug.com/358687140): Remove these running pointers. wnum.d--; assert(wnum.d == snum->d + i + 1); assert(wnump == wnum.d + div_n); - // the first part of the loop uses the top two words of snum and sdiv to - // calculate a BN_ULONG q such that | wnum - sdiv * q | < sdiv + // Knuth step D3: Compute q', an estimate of q = floor(wnum / sdiv) by + // looking at the top words. We must estimate such that q' = q or + // q' = q + 1. BN_ULONG q, rm = 0; BN_ULONG n0 = wnump[0]; BN_ULONG n1 = wnump[-1]; if (n0 == d0) { + // Estimate q' = b - 1, where b is the base. q = BN_MASK2; + // Knuth also runs the fixup routine in this case, but this would require + // computing rm and is unnecessary. q' is already close enough. That is, + // the true quotient, q is either b - 1 or b - 2. + // + // By the loop invariant, q <= b - 1, so we must show that q >= b - 2. We + // do this by showing wnum / sdiv >= b - 2. Suppose wnum / sdiv < b - 2. + // wnum and sdiv have the same most significant word, so: + // + // wnum >= n0 * b^div_n + // sdiv < (n0 + 1) * b^(d_div - 1) + // + // Thus: + // + // b - 2 > wnum / sdiv + // > (n0 * b^div_n) / (n0 + 1) * b^(div_n - 1) + // = (n0 * b) / (n0 + 1) + // + // (n0 + 1) * (b - 2) > n0 * b + // n0 * b + b - 2 * n0 - 2 > n0 * b + // b - 2 > 2 * n0 + // b/2 - 1 > n0 + // + // This contradicts the normalization condition, so q >= b - 2 and our + // estimate is close enough. } else { + // Estimate q' = floor(n0n1 / d0). Per Theorem B, q' - 2 <= q <= q', which + // is slightly outside of our bounds. assert(n0 < d0); bn_div_rem_words(&q, &rm, n0, n1, d0); + // Fix the estimate by examining one more word and adjusting q' as needed. + // This is the second half of step D3 and is sufficient per exercises 19, + // 20, and 21. Although only one iteration is needed to correct q + 2 to + // q + 1, Knuth uses a loop. A loop will often also correct q + 1 to q, + // saving the slightly more expensive underflow handling below. + // + // TODO(crbug.com/358687140): This assumes div_n is at least 2, otherwise + // there is no wnump[-2] (u_(j+2) in Knuth) term to read. We avoid going + // out of bounds because of the extra word, and t2 will be zero in this + // case, so the loop is a no-op. Still, this is confusing. #ifdef BN_ULLONG BN_ULLONG t2 = (BN_ULLONG)d1 * q; for (;;) { @@ -307,7 +345,9 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, q--; rm += d0; if (rm < d0) { - break; // don't let rm overflow + // If rm overflows, the true value exceeds BN_ULONG and the next + // t2 comparison should exit the loop. + break; } t2 -= d1; } @@ -322,7 +362,9 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, q--; rm += d0; if (rm < d0) { - break; // don't let rm overflow + // If rm overflows, the true value exceeds BN_ULONG and the next + // t2 comparison should exit the loop. + break; } if (t2l < d1) { t2h--; @@ -332,23 +374,17 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, #endif // !BN_ULLONG } + // Knuth step D4 through D6: Now q' = q or q' = q + 1, and + // -sdiv < wnum - sdiv * q < sdiv. If q' = q + 1, the subtraction will + // underflow, and we fix it up below. tmp->d[div_n] = bn_mul_words(tmp->d, sdiv->d, div_n, q); - // ingore top values of the bignums just sub the two - // BN_ULONG arrays with bn_sub_words if (bn_sub_words(wnum.d, wnum.d, tmp->d, div_n + 1)) { - // Note: As we have considered only the leading - // two BN_ULONGs in the calculation of q, sdiv * q - // might be greater than wnum (but then (q-1) * sdiv - // is less or equal than wnum) q--; - if (bn_add_words(wnum.d, wnum.d, sdiv->d, div_n)) { - // we can't have an overflow here (assuming - // that q != 0, but if q == 0 then tmp is - // zero anyway) - (*wnump)++; - } + // The final addition is expected to overflow, canceling the underflow. + wnum.d[div_n] += bn_add_words(wnum.d, wnum.d, sdiv->d, div_n); } - // store part of the result + + // q is now correct, and wnum has been updated to the running remainder. res->d[i] = q; } From bddc709c63adb7877296b42c7f3edeb2ad6b7564 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Thu, 15 Aug 2024 10:12:07 -0700 Subject: [PATCH 20/81] Correct DOS line endings. These files were derived from CAVP, which used DOS line endings. Several environments will automatically convert line endings and this leads to a mismatch if strictly comparing against the offical FIPS source distribution tarballs. Thus convert these files to UNIX line endings, matching the rest of the repository. Change-Id: If0f5835108a6b26bba5de0b6b950a69a4faa1410 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70307 Auto-Submit: Adam Langley Commit-Queue: Adam Langley Commit-Queue: David Benjamin Reviewed-by: David Benjamin --- .../fipsmodule/cmac/cavp_3des_cmac_tests.txt | 4414 +++++++------- .../cmac/cavp_aes128_cmac_tests.txt | 4330 ++++++------- .../cmac/cavp_aes192_cmac_tests.txt | 5414 ++++++++--------- .../cmac/cavp_aes256_cmac_tests.txt | 4330 ++++++------- 4 files changed, 9244 insertions(+), 9244 deletions(-) diff --git a/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt b/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt index 80e1835b5e..12b6d344ef 100644 --- a/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt +++ b/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt @@ -1,2207 +1,2207 @@ -# This file has been modified to remove the 65536-byte long inputs. - -# CAVS 11.0 -# CMACVer information -# Algorithms tested:Alg = TDES KeySize = 3 Mode = Verify -# Generated on Tue Mar 15 08:40:47 2011 - - -Count = 0 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 3bb96170d5df4cce -Key2 = 25d5daa22a982f08 -Key3 = 52f4a110dcdc9e45 -Msg = 00 -Mac = 96 -Result = F (2 - Key or Key2 changed) - -Count = 1 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 9413d38685688f58 -Key2 = dc38b6b3cef125f1 -Key3 = 5b61f4f7a1c46ed6 -Msg = 00 -Mac = fc -Result = F (4 - Key or Key1 changed) - -Count = 2 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 101a2f13fbb69473 -Key2 = 76fb98f24073f4d5 -Key3 = 2ca2706d76d00b67 -Msg = 00 -Mac = 53 -Result = P - -Count = 3 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 2f8a238552c1e367 -Key2 = f8131f1c26ab3289 -Key3 = 83d5b6ba253bea31 -Msg = 00 -Mac = 95 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 4 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = c1bafb5dc7100758 -Key2 = e9ef047a58b5ba89 -Key3 = 76cb4fb55ebcc1c7 -Msg = 00 -Mac = f4 -Result = F (3 - MAC changed) - -Count = 5 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = c82c29f1cb5851b6 -Key2 = 8b5b45dcbf0d8079 -Key3 = e6407057ae34ec0b -Msg = 00 -Mac = 03 -Result = F (2 - Key or Key2 changed) - -Count = 6 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 6b455116f4f883d5 -Key2 = a81a206d25152aab -Key3 = 86dc07b607202abc -Msg = 00 -Mac = 75 -Result = P - -Count = 7 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = c873d5bc4598d0b0 -Key2 = 1c1523cb4f794c8a -Key3 = cedf6797d523dcab -Msg = 00 -Mac = 2e -Result = F (1 - MAC changed - for 0-len msg) - -Count = 8 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 45ce943bd31fe9b5 -Key2 = 677cc47c13c24923 -Key3 = 6b2086f14934838a -Msg = 00 -Mac = 01 -Result = F (4 - Key or Key1 changed) - -Count = 9 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 804f9ef7baf7dfc7 -Key2 = 9bb6494cb60b8c07 -Key3 = 2080fe52e0d3943d -Msg = 00 -Mac = c3 -Result = F (3 - MAC changed) - -Count = 10 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 73c10b833e1043ab -Key2 = 16dcd343645d5207 -Key3 = 6426f7f88c3473c8 -Msg = 00 -Mac = 8b -Result = F (1 - MAC changed - for 0-len msg) - -Count = 11 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 310d54d96bc73452 -Key2 = bae34f158ceafb04 -Key3 = 4651c1b53de3da26 -Msg = 00 -Mac = ce -Result = F (3 - MAC changed) - -Count = 12 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 0e3d49d0e692f20e -Key2 = a9cd384a3b688c0e -Key3 = 584ae5f794f8fe7f -Msg = 00 -Mac = 4b -Result = F (2 - Key or Key2 changed) - -Count = 13 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = b0fda857ea402f0b -Key2 = d567e9f48568f1e0 -Key3 = 0ec2ad452a547a91 -Msg = 00 -Mac = 04 -Result = F (4 - Key or Key1 changed) - -Count = 14 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 1ac1543b1591f270 -Key2 = dcda0e9870b9d949 -Key3 = 68ea9b1c4380ae9e -Msg = 00 -Mac = 43 -Result = P - -Count = 15 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = d0b008aea4454551 -Key2 = 9234a7731ab610b5 -Key3 = 2fb97a8ffbaedae6 -Msg = 00 -Mac = 4c -Result = F (4 - Key or Key1 changed) - -Count = 16 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 04793b0b0e976d0b -Key2 = bf493e58fb73681f -Key3 = 1f54a262d649b985 -Msg = 00 -Mac = 77 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 17 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = 043b759b578ae570 -Key2 = 5e522f19cb9de092 -Key3 = 2af2e90eb6dcc1fd -Msg = 00 -Mac = 77 -Result = F (3 - MAC changed) - -Count = 18 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = e58520088910513d -Key2 = 7c10196e1a310dd5 -Key3 = 5b043b2a1ab97f85 -Msg = 00 -Mac = 1c -Result = P - -Count = 19 -Klen = 3 -Mlen = 0 -Tlen = 1 -Key1 = f27fd0f189452c15 -Key2 = 04681651014916ab -Key3 = 204046aeeffecd15 -Msg = 00 -Mac = 0b -Result = F (2 - Key or Key2 changed) - -Count = 20 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 860864a710ab0475 -Key2 = b9205751bfd91f7f -Key3 = 3bf72abf13d97640 -Msg = 00 -Mac = e890abe6ea126215 -Result = F (3 - MAC changed) - -Count = 21 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = a7a1d57aabf1137c -Key2 = fd0df2e35b8cdf2a -Key3 = b386755bc2ab3d9d -Msg = 00 -Mac = f475587c2101eff2 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 22 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = c2c28a4c7698804c -Key2 = ab25b53783dc0419 -Key3 = ab16341f4cead054 -Msg = 00 -Mac = d335575aa3a4d8af -Result = P - -Count = 23 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 7594a7aed3e986ba -Key2 = 52a280e662d9e9da -Key3 = 7649d3ad6838f2c2 -Msg = 00 -Mac = 0e109f43557f250f -Result = F (4 - Key or Key1 changed) - -Count = 24 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 0798d9ef158cd698 -Key2 = fff4ade09b169762 -Key3 = 5b6e6849ec2c238a -Msg = 00 -Mac = 05af623529b168a9 -Result = F (2 - Key or Key2 changed) - -Count = 25 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 254991cb4af76dc8 -Key2 = 2cf2e915918a025b -Key3 = 2c61bfaee69b2676 -Msg = 00 -Mac = 725ab7a770762894 -Result = F (2 - Key or Key2 changed) - -Count = 26 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 9f68cbbf3bb5b3da -Key2 = 31adb5a46e2cc8e3 -Key3 = f86ed9eaabb625da -Msg = 00 -Mac = 0422d94f874dda7e -Result = F (4 - Key or Key1 changed) - -Count = 27 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 1fd51f70a77ac8e9 -Key2 = 5dd9986e974c08ec -Key3 = fd61ce34a75279f7 -Msg = 00 -Mac = a163a5d269b3cc3e -Result = F (3 - MAC changed) - -Count = 28 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 078c57d6df9ba1d5 -Key2 = 08d94ac1b3d3c183 -Key3 = e90bf4fe7973c2c7 -Msg = 00 -Mac = 9af3f01e20dc7c1e -Result = P - -Count = 29 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 08df322f040e7c01 -Key2 = e92343e69d83eac7 -Key3 = fe94c1ec0da22c1a -Msg = 00 -Mac = 3d88c20a4f828c5b -Result = F (1 - MAC changed - for 0-len msg) - -Count = 30 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = b2ecf41c8692c2b0 -Key2 = 8ff18c1f1f296454 -Key3 = 383dcbc4a28c7629 -Msg = 00 -Mac = 17241dc726fa4c56 -Result = F (4 - Key or Key1 changed) - -Count = 31 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 07d99d58f2ec1fd5 -Key2 = ea46c73bf4b60ed0 -Key3 = f20ec149c831aecb -Msg = 00 -Mac = f6a8a0b536fd97d3 -Result = P - -Count = 32 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 3dfdc19426fbd56d -Key2 = b03b7985b32af857 -Key3 = a807c7b3621ffdda -Msg = 00 -Mac = 3ef9b263ae1df460 -Result = F (2 - Key or Key2 changed) - -Count = 33 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = fbc79bab46b97923 -Key2 = ece6da4c40f1e6e9 -Key3 = eaa76770ef517a40 -Msg = 00 -Mac = b2da3efa7fc64abe -Result = F (1 - MAC changed - for 0-len msg) - -Count = 34 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 5ba4a1d5a80db5ef -Key2 = 7ce6aeb9261cb00b -Key3 = 8a5df23ea445e0c8 -Msg = 00 -Mac = 51b2e75334d90889 -Result = F (3 - MAC changed) - -Count = 35 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = e9c494e001027c86 -Key2 = c4649e58ea251904 -Key3 = 8025343dec34409e -Msg = 00 -Mac = 166123f1c59132a3 -Result = P - -Count = 36 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 6bce61e646452a46 -Key2 = 54ba8a020d0876fb -Key3 = 34ea2f6149bad664 -Msg = 00 -Mac = b0d0f625f06f2a3a -Result = F (3 - MAC changed) - -Count = 37 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 2f38f79bc8e0ea4a -Key2 = d09876f22ca43e10 -Key3 = 3b8fab02299d328c -Msg = 00 -Mac = b26d377a504b8985 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 38 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 51febf790815f1d0 -Key2 = 9152d5e32f6713fb -Key3 = 4a40c2c8fdb9f2b5 -Msg = 00 -Mac = a27978e62026743b -Result = F (4 - Key or Key1 changed) - -Count = 39 -Klen = 3 -Mlen = 0 -Tlen = 8 -Key1 = 10ba8fd6256ee9a4 -Key2 = fa8332a46ead52ab -Key3 = b0e06e1fef04abb5 -Msg = 00 -Mac = e1b0a228c142555c -Result = F (2 - Key or Key2 changed) - -Count = 40 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = f2fbab6734769e9b -Key2 = ab45910e5775ab0d -Key3 = 5bd5ea0db015a89e -Msg = 7efeb7d4d14b3f2b3df4b8a276b18b49 -Mac = 5c -Result = P - -Count = 41 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 5bc776ba64adf4ea -Key2 = 195e04987c62a4f2 -Key3 = c1642fdc1a31705d -Msg = d1fb4f35914404af9df3bf5c368c0e69 -Mac = 4d -Result = F (1 - Message changed) - -Count = 42 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = b67c57f770202c6e -Key2 = e91f4fb361bcae37 -Key3 = ada8d3df4fbcf4b9 -Msg = 9800db878187c87ea05bf92054b0e3e3 -Mac = 8b -Result = F (3 - MAC changed) - -Count = 43 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = ce0bc48002fe7602 -Key2 = e702abe31c7a2313 -Key3 = d61964867f2579da -Msg = 704e4e75be1623b21332c14555bf5edc -Mac = b0 -Result = F (2 - Key or Key2 changed) - -Count = 44 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = ad75e32cc11980f2 -Key2 = d0570429680e9486 -Key3 = c2379207f862dcfd -Msg = 197de855b3962b1fdad687f9c4f1efd6 -Mac = 44 -Result = F (4 - Key or Key1 changed) - -Count = 45 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 9db504803d29f126 -Key2 = 07fe58b3da765bad -Key3 = 6dc489516e9bb5f8 -Msg = 8f296b265fa575d146799f9e39d52965 -Mac = 14 -Result = P - -Count = 46 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 991f0ed04079293d -Key2 = 57077ff1baecd907 -Key3 = dcc7a719c4372967 -Msg = d9cfcc67520c5b2ceeb622c694a8e3fe -Mac = a3 -Result = F (4 - Key or Key1 changed) - -Count = 47 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = eca815d6b0371cf1 -Key2 = 597980cdb6c892df -Key3 = 3dba0ed3ba16ae1c -Msg = a03636db2fdc84722aeb9d98a6ed70d0 -Mac = 78 -Result = F (2 - Key or Key2 changed) - -Count = 48 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = ea80a43d5886dfef -Key2 = 08bf4f76a8893732 -Key3 = 4557a13752d6730d -Msg = 0371a63ad722523ef297d8399b124593 -Mac = be -Result = F (3 - MAC changed) - -Count = 49 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = e9fe73e640808c02 -Key2 = 9be6986446012091 -Key3 = 707023615462a40e -Msg = 83bcb484dca73d49ac234ece3a5d2ad3 -Mac = d6 -Result = F (1 - Message changed) - -Count = 50 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 1fe9800ecb0dd9f1 -Key2 = dbbc6bc72c794c23 -Key3 = 899b08469b6bc8b5 -Msg = 95f4a41c4c64cd7310fba748aa267a14 -Mac = 59 -Result = F (2 - Key or Key2 changed) - -Count = 51 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 34546261a21c1c43 -Key2 = 0449eaeca4f29725 -Key3 = 4cc4e6525186802f -Msg = d204de1e671d3e43670dd67fee114402 -Mac = 6e -Result = F (1 - Message changed) - -Count = 52 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 048aa8701fb5fe26 -Key2 = d56bd53d83e60bd9 -Key3 = 6707d6523ebc32f4 -Msg = f4e9f92fd2c9313fb61a889eaa4ff283 -Mac = d5 -Result = P - -Count = 53 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 6ec19b02976e5ba2 -Key2 = 13540732d997c2b6 -Key3 = 7f4068926183251c -Msg = 963363ab7c82b634974954bd0fe2c307 -Mac = d7 -Result = F (3 - MAC changed) - -Count = 54 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = f4ecea5d32e32c6e -Key2 = 385710cd3eb0fe51 -Key3 = 5d4c8f7ccdf10154 -Msg = a298857dc60ad2f0a8fa878607b50c18 -Mac = 4c -Result = F (4 - Key or Key1 changed) - -Count = 55 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = b31ff49dd970f8e9 -Key2 = 164aefb00efb5461 -Key3 = 981629757f4532dc -Msg = fc3957b2ed0558bce61d478be615b774 -Mac = 90 -Result = P - -Count = 56 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 85384543d3aef157 -Key2 = 57ea916d9b2fd0c8 -Key3 = 1a85830473fbe6c4 -Msg = 87db0d9d69bc0cf69cabeb92570e482b -Mac = 53 -Result = F (4 - Key or Key1 changed) - -Count = 57 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 9bf8fb0b464070f8 -Key2 = 10ea23c7e5a19bcb -Key3 = 408c236e10863e2a -Msg = f9c98cd8a7d27553da946427b8276349 -Mac = 53 -Result = F (2 - Key or Key2 changed) - -Count = 58 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = 91b083e9c8e9803b -Key2 = 76d0341cd54c38e5 -Key3 = 07bca7f44a3e76bc -Msg = 7e5b64dc6bcbae6bb4496fc033947343 -Mac = de -Result = F (3 - MAC changed) - -Count = 59 -Klen = 3 -Mlen = 16 -Tlen = 1 -Key1 = e6795b1ffe8f3e38 -Key2 = 4fdcea8c73c76e75 -Key3 = df0726ae4c079461 -Msg = 5265fb6a796d99a6beec6f71ba267b5d -Mac = e0 -Result = F (1 - Message changed) - -Count = 60 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 375710c76202bff1 -Key2 = 3bb96170d5df4cce -Key3 = 23d5daa22a982f08 -Msg = 52f5a110dddc9f44f8a534eef9df0b22 -Mac = b1b9e11939228900 -Result = P - -Count = 61 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = b59b855dce76adf4 -Key2 = be9bae10fe34fb1c -Key3 = 0d49159bf804a4ea -Msg = 869f3b62ee78bfeb5287168eacf69ccb -Mac = 169a389352793c8b -Result = F (2 - Key or Key2 changed) - -Count = 62 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 615d792a7038fd89 -Key2 = 98ce972f016e75a8 -Key3 = c470255783b32f01 -Msg = e5aed6715aa4291f9c32baf6b8449b53 -Mac = 73ac2da999bfdf5d -Result = F (1 - Message changed) - -Count = 63 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 1fb09443a1074564 -Key2 = 3d1aa82c086eba13 -Key3 = c137d0f4ea54d604 -Msg = 16f02efd285381d7657ca5cd99d9e25b -Mac = 38126d16957893ce -Result = F (3 - MAC changed) - -Count = 64 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 2e5d163461fea761 -Key2 = 9173bf75372fb640 -Key3 = 9e3d1c3dcdbfbc31 -Msg = b10fcb03443302ae929ff95a17b025fa -Mac = b70f2d761ca643c9 -Result = F (4 - Key or Key1 changed) - -Count = 65 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = b9e5861c1c4013d3 -Key2 = d554806efd3801a1 -Key3 = 64d9bc3d646e76dc -Msg = 0e6c9fced82669cffe7b5a6f09dceec8 -Mac = 78ce4635e486635a -Result = F (3 - MAC changed) - -Count = 66 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = ad2376516b974c70 -Key2 = cd3b5870c2312929 -Key3 = 1a731a7feacbf783 -Msg = 88eb7a0379da9d113343dc1fe0f3e6f7 -Mac = 0c949483e7fa7d0c -Result = F (1 - Message changed) - -Count = 67 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 9ada194c100eeacb -Key2 = da23ad9825c194d0 -Key3 = 3ef1f4c438dce031 -Msg = 0f9703a3454c25c0b1053de62b0ffc5b -Mac = c78a4ca3662527e5 -Result = F (4 - Key or Key1 changed) - -Count = 68 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = e375f870f4d55b02 -Key2 = 1b015791e3e337b3 -Key3 = 370dc45b15671c5b -Msg = 5ad9dd3b112ea4cee1654d2dfabab01e -Mac = 22becbbe7bfcade5 -Result = F (2 - Key or Key2 changed) - -Count = 69 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = d61f4aeff4b5f2f8 -Key2 = 0486b53de3ecc297 -Key3 = 807fe92fc2fed376 -Msg = d094cf77a709c0fa5d6b4b7e9e86a2c2 -Mac = 947d024d9d5359a8 -Result = P - -Count = 70 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = c2c28a4c7698804c -Key2 = ab25b53783dc0419 -Key3 = ab16341f4cead054 -Msg = 7295a7aed3e987baef19ad68c33ba5a5 -Mac = 58de82acc10d556f -Result = P - -Count = 71 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = f1ce4992c851e3a8 -Key2 = 835ec1abef97f2c8 -Key3 = 5b92384f20dcc2ad -Msg = 9094935fcd7c389dd17b5b121cddadf9 -Mac = 319c70370c172de3 -Result = F (3 - MAC changed) - -Count = 72 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = c16ebcc1165d6892 -Key2 = 75268c4602f8c8bf -Key3 = dab97f79544cf1cd -Msg = b7ba1c66282cb6092ba601407ff9578a -Mac = d73c26311bd44a32 -Result = F (2 - Key or Key2 changed) - -Count = 73 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = fe4a796720a46dbc -Key2 = 98f45289e9f8b080 -Key3 = e05def5b25520d43 -Msg = 31c9eed491bb0cda9b8c0eb5afa31019 -Mac = 8c2ce22633c62751 -Result = F (1 - Message changed) - -Count = 74 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = eefb40c715c4546d -Key2 = 5b2325c8d9daa48a -Key3 = d5ec4a6bc82a7a62 -Msg = 5a97259dfa081f040d3893da2f231ca3 -Mac = a64113544f509be8 -Result = F (4 - Key or Key1 changed) - -Count = 75 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 0d0851311ca45db0 -Key2 = 3d7c458957c8c408 -Key3 = 98d37c9d51ab2f25 -Msg = 8be16380af3e2dbc6cf678c2e3331335 -Mac = 8817baeaa909e33a -Result = P - -Count = 76 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = b7239438d61cd626 -Key2 = 082c6404cb3897b5 -Key3 = c4c732cdd5e043c2 -Msg = 7120f19169e7cbb913c7d1f0ceb006c0 -Mac = 32841ad7621cc0fc -Result = F (4 - Key or Key1 changed) - -Count = 77 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 73f449ef83df75e9 -Key2 = 5f3d2016bfd0703b -Key3 = 31abc16b58b64af4 -Msg = 83ecbfcff3bc37f1305d83bc0290350c -Mac = 8f8ba8bfc74203fa -Result = F (2 - Key or Key2 changed) - -Count = 78 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = 9b6ea461c7b9abe6 -Key2 = 4a08dcdc5b9e01fe -Key3 = 6b850e9b6ebae9d6 -Msg = c538416fba487fac5c94449d0757f3e9 -Mac = c13f372e9a061db8 -Result = F (3 - MAC changed) - -Count = 79 -Klen = 3 -Mlen = 16 -Tlen = 8 -Key1 = c7aeeacb156dfbfb -Key2 = ba43ef516232a7d3 -Key3 = 2c572aea62808c68 -Msg = a1bc9950759d0df4cffaf29345dfb340 -Mac = d7dad4519b56a1eb -Result = F (1 - Message changed) - -Count = 80 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = cda4d34370234946 -Key2 = c408ea6bec07c78c -Key3 = 19eff7f798fd6808 -Msg = d1fb0b68176269cf9fda18bf13efc054f0c24fd042b9e2ecaf75e86cb60484f6 -Mac = d8 -Result = F (4 - Key or Key1 changed) - -Count = 81 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 02100be5627686a8 -Key2 = 7f0b38ec073e75ef -Key3 = 373b1a64ba5416d9 -Msg = c60be37fb0bda4f46894690b3344643c772fbd2237db348adaa407ca2eae1654 -Mac = fb -Result = F (1 - Message changed) - -Count = 82 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 7597571a6e7c6bc8 -Key2 = c143a2a461626b1a -Key3 = 6b1307d910434cc7 -Msg = 49cb128641f7952dfdf34f338da268b2ef1482557b593ec57f930164264ff83e -Mac = 90 -Result = F (2 - Key or Key2 changed) - -Count = 83 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = ae89ad615201546b -Key2 = ae20765745458fce -Key3 = efd0867fba43dcb0 -Msg = e47d8659c9ad94971adedd6bce744206e1cfb65d042b942d93c4363cc73ec3e3 -Mac = 95 -Result = F (3 - MAC changed) - -Count = 84 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = b65886f13d6e8c4a -Key2 = 0708e0b0730473a8 -Key3 = d04f2a86dc0b9e7a -Msg = b97c12251d91512fe7b3a349a982409c7412f39494d970e77acbe9d3fac3dca7 -Mac = 05 -Result = P - -Count = 85 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 3197a4a26261588a -Key2 = 0dc4a75ec8b99b58 -Key3 = efb93e7620205289 -Msg = 65f4b3a00c1c1ef39445a69b2150b034705410140ff9dad0ce21740271cef04a -Mac = 57 -Result = F (4 - Key or Key1 changed) - -Count = 86 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 62c4a16e946b4313 -Key2 = d09ea80e7fb33449 -Key3 = 164fdc04c2d5f116 -Msg = 898e824fdc89f21779156a9e58564c4b99004b95226c2ebb8aebd0b5365a6c6a -Mac = 93 -Result = F (2 - Key or Key2 changed) - -Count = 87 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 6eeff20d3d5d5223 -Key2 = 258076b313611c1c -Key3 = b013b957f70d9e62 -Msg = 2d7fec1a1e9ee85cf960e5dc4e239619ed85f4b14d32cbd42dfa79f77a27f2cd -Mac = 0a -Result = F (1 - Message changed) - -Count = 88 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 193e23e6fd8aa185 -Key2 = 1910cbdc549da804 -Key3 = 6b769b4923523425 -Msg = bd65798a1d02ab164e2d31b1387e505874779539046820bd429043c617854c36 -Mac = d3 -Result = P - -Count = 89 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 150789ab37ef2ce9 -Key2 = 10cdf45dad9ed9e5 -Key3 = f475fd3e153898fe -Msg = 044dd73a7d1ef37a437c09e9268708c82ebad189dc1e989ab3bd8d7ff75abc23 -Mac = e4 -Result = F (3 - MAC changed) - -Count = 90 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 48d9d08a6bdcc4f8 -Key2 = 1383641c08735d0e -Key3 = 374a89c8cb73a7f4 -Msg = d62fb84f2a2442b52acf817d7f067edca031970bea092c35f29f9a931aa06dd6 -Mac = 26 -Result = F (4 - Key or Key1 changed) - -Count = 91 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 68f4620da8b00201 -Key2 = df1c8362345180d3 -Key3 = 26abda897f89d90d -Msg = 0ac3f7f22d24b64aa584845d3a990bb69e5d2d4650640056c16c17c0b636045f -Mac = f9 -Result = P - -Count = 92 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 1c259df7492361b6 -Key2 = cd4acdb65b3e5b1c -Key3 = 3b01addc2579ef64 -Msg = 607f4730a5ea9dabfbcd8586f680c3021c7ebc858e73354beb975d58713b0eb1 -Mac = fa -Result = F (3 - MAC changed) - -Count = 93 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = f18a9dba9db5dff1 -Key2 = d5987013a4b69e38 -Key3 = dc16e0ce1351e3f4 -Msg = bfe99e184a7d7bf0b4ade8f402f2c49aa4948e74b2d5c905756ba5d32934dbbd -Mac = e4 -Result = F (2 - Key or Key2 changed) - -Count = 94 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 8361bac48afb1091 -Key2 = da85400d107fbf8f -Key3 = 31ec732cc29d7045 -Msg = 3a1ee70d4607325c13bff68e402e0a72742f6a63ae972c6dda74b6b2a3922f0c -Mac = 0e -Result = F (1 - Message changed) - -Count = 95 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = d0df1adf1cf72032 -Key2 = 1504d564ec1aea61 -Key3 = c42fada45d80a43e -Msg = 3a53d9c7ae59e7811699fb0973e43256ed92162267c7ca4b57f5887ad5a24e02 -Mac = 8a -Result = F (2 - Key or Key2 changed) - -Count = 96 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 973bfe5b3be573da -Key2 = 94b3ec7f343e46ab -Key3 = dcaeabc8df405db6 -Msg = c8437dba76591a9031b3aa3b59fec0562d4eac439ca8efca57c3f2022b0ff775 -Mac = 53 -Result = F (3 - MAC changed) - -Count = 97 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = bc89867c43a74640 -Key2 = df347fb319464c80 -Key3 = fd92108a266bcdcd -Msg = 1c9898ede16139560519e808ee9ddaf710a5bab30f54ed98230d1a44c189ea4f -Mac = f6 -Result = F (4 - Key or Key1 changed) - -Count = 98 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = fde925e301897f67 -Key2 = 54b3ab80f815df15 -Key3 = dc58928aa286c8e5 -Msg = b34f898d98a3aa0fa022b1b1d76953a5b3ecc88d60f2c79b59e1b1f636bc0d60 -Mac = 0f -Result = F (1 - Message changed) - -Count = 99 -Klen = 3 -Mlen = 32 -Tlen = 1 -Key1 = 8a704ffe43e951f8 -Key2 = 2346dc8501202a40 -Key3 = d67afed616230113 -Msg = b2b4cb5e90ebf4bd265093b7f5efd4d62dc60e29737aa496e14929724e40c74f -Mac = df -Result = P - -Count = 100 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 8c1f29f440f7f8b5 -Key2 = 5b45fe8f1f688661 -Key3 = ba40f43d9e7cc86b -Msg = 220817144a15a0a654fc1beaabce60270aa72df83591754ee7a5fbb40b7420d7 -Mac = 80ac51c2ef7bd5d7 -Result = P - -Count = 101 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = d66e76d97f94ea16 -Key2 = f15e3ed06dd94598 -Key3 = ae073d1a6e5bc819 -Msg = 233d547ab33790859ab0dbc7a93f3bbebb610bed9acbfbce1fff580e9a1e8ef9 -Mac = 4cb8ce681e4bc7c8 -Result = F (1 - Message changed) - -Count = 102 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 0437836df770e943 -Key2 = c96e2c43bffd5298 -Key3 = 8552fbc16215e0c4 -Msg = 4f87d730bdfc7a7c72525c6b26ee9cae9a219b30d9575fedbd913a07b615a616 -Mac = ea79cbc28f4264db -Result = F (2 - Key or Key2 changed) - -Count = 103 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = d849ba8570b6ef9d -Key2 = f1405732aeb61f92 -Key3 = 73c8e51ff167f857 -Msg = fd03202d0bd109b6e4299c7390c1407cd21ffb110013e6381185dea8f8707de6 -Mac = 71070b17d05dabef -Result = F (4 - Key or Key1 changed) - -Count = 104 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 914cef7ab6d998dc -Key2 = a767abc18cf485e9 -Key3 = a2624ff20b2a408a -Msg = bc5ce4c0bf3ad1a93e5306c9d7dbb620dde8708efe84e78c2200f41a958cdef8 -Mac = 3cf4aaf3d337c9c8 -Result = F (3 - MAC changed) - -Count = 105 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 757f52e626eabce0 -Key2 = 700d91f14554bcb0 -Key3 = 548640d0dfaec2ab -Msg = 22a4cf581584346095783be0982744c6201ff040760f868ab63895058d1edb88 -Mac = b008b1150535ef11 -Result = F (1 - Message changed) - -Count = 106 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = d65d0e58d3133b34 -Key2 = 289e58704994a249 -Key3 = e3df20ae3d585e2f -Msg = 94c8414cbbec52e2d73bb8f02ef687c91432495c0c744666317d02e6d46706d2 -Mac = b1292e1c7074dcfc -Result = F (2 - Key or Key2 changed) - -Count = 107 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = d77a4989f4a17f2a -Key2 = 409d91d51fa4d045 -Key3 = 6bb652ea1526fd4f -Msg = 7a08ce579ae7af8004421cff72715e0b137da81f47d8f84da34c3ed53c32c0f6 -Mac = 8b3cb70477ca7ca8 -Result = F (4 - Key or Key1 changed) - -Count = 108 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = e670c17519d9c2f2 -Key2 = dcc8a132629b462f -Key3 = 58c1d52543ad570d -Msg = a6dbad96ad23ff61479df39b99f0673a09f2a7eaebbd34b95d05c4146fa989f2 -Mac = c470ec40599a0a11 -Result = F (3 - MAC changed) - -Count = 109 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 290d292a15b6268a -Key2 = 2638d9ad83ad1f34 -Key3 = a7d9ba62735dc2d3 -Msg = ef995cbfc49b0ebccdbd37d9f40a431c385d33d4b8234d7f0d6211eaddfb709a -Mac = 67ae62fb8142bd8b -Result = P - -Count = 110 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 4faba73bcd5b5dfe -Key2 = 1c97ea85207a97a7 -Key3 = 19eff116100dc82f -Msg = c48e53c6956432460584c7ee1577c1c38b7fae2ff288199be25bf64081154139 -Mac = d68a4558e95a67e4 -Result = F (2 - Key or Key2 changed) - -Count = 111 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = d37c3dbc2f68baba -Key2 = 918cb5e39237e016 -Key3 = f286b0739d38c4fb -Msg = 2533361761ac80578fa262a50462045e3ec6e4d5d25c6e99a5c4ccf75f5affc0 -Mac = c20f36e67732f864 -Result = P - -Count = 112 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = a0baa71c38d6d064 -Key2 = 8f58ba45cb494ab9 -Key3 = 853decc431f7b3cd -Msg = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fbf11b68519d573a8a -Mac = 4ba956b98a99d7bf -Result = F (4 - Key or Key1 changed) - -Count = 113 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = b69752407c68b6bf -Key2 = 8fceb05201ec4320 -Key3 = 2a755e372373ef26 -Msg = e884d65c87411584a56956d5b27ca9725b473c205b64cff09400671f5ee0473a -Mac = 9f3de5e8cddc374d -Result = F (3 - MAC changed) - -Count = 114 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 8c04e0f27f83b0ec -Key2 = 042cfb6883348fe6 -Key3 = 404f5dfe587ab591 -Msg = 8a34cd562b111fe04fa0bf5e004faedaef99d0bab9344d966c8b3847486e6f40 -Mac = 6c530215fb25015b -Result = F (1 - Message changed) - -Count = 115 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 429401ea49cd97b0 -Key2 = a8f1b6b63101cee0 -Key3 = 20bcd08c5d16e049 -Msg = 591d88123fc9a786b247e8d5ce155f136d6fe4084117c41f2056b67f9e3e1077 -Mac = 6c414640b424cf56 -Result = F (4 - Key or Key1 changed) - -Count = 116 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = c470255783b32f01 -Key2 = e3aed6705ba4291f -Key3 = 7319100e54f432d3 -Msg = 01acc3282fe41b62f95f5dbfb7e7bfef694c5fe34ca87d31abe7e7bbf887b48c -Mac = cd99df4814667454 -Result = F (3 - MAC changed) - -Count = 117 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 73c10b833e1043ab -Key2 = 18dcd343645d5207 -Key3 = 6426f7f88c3473c8 -Msg = 068e4a0b1a62dd64198f1b9ece814c2feeeee50ba814b70d7d42659952991b80 -Mac = 1fc90834b7dd090b -Result = F (2 - Key or Key2 changed) - -Count = 118 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 37eae98ff42afb25 -Key2 = f2231c028c29da9d -Key3 = ef3da8d0c77fbf45 -Msg = f266cec01c5fc08c0bdabc9537bd1aa2df9f2b8ffbe5cc94722a3bca8de529ea -Mac = b3809c8b0eb9dd8d -Result = P - -Count = 119 -Klen = 3 -Mlen = 32 -Tlen = 8 -Key1 = 1358fb67155e0145 -Key2 = d02c54a1206b5d7f -Key3 = 1c04ba46c74a5d49 -Msg = e38b4c3e7a82643beb3192426555ad9c9b2620d677373fc40c9ddbc4cd531347 -Mac = b000e2ea1ef48a8f -Result = F (1 - Message changed) - -Count = 120 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = f6b9a81067255b58 -Key2 = 927cfbc4cdec9285 -Key3 = dcd62345bfe03b92 -Msg = 246b66b10696adc45840 -Mac = b4 -Result = F (4 - Key or Key1 changed) - -Count = 121 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = fea186dc73d3807f -Key2 = b8fec7387a197962 -Key3 = 4c91abe60db64ff1 -Msg = 8ba298364af144a8d5f3 -Mac = a6 -Result = F (2 - Key or Key2 changed) - -Count = 122 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = f264da8607ea439e -Key2 = fdb9daa41fd34958 -Key3 = f85d6b859b9892bf -Msg = 402006f6b18dbd11dcd1 -Mac = 28 -Result = P - -Count = 123 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 191c461adc4f7f4f -Key2 = 75b932e68cb98cfd -Key3 = cb2943857a1c9438 -Msg = 391deef3a9a41394d14a -Mac = 3c -Result = F (3 - MAC changed) - -Count = 124 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = a2c2f713430ece92 -Key2 = df081ae9627a1351 -Key3 = c1ec469ba8c73b67 -Msg = 37a49535684637f67573 -Mac = 40 -Result = F (1 - Message changed) - -Count = 125 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 7b61dac238ba3e83 -Key2 = d05e9ed34fc410ce -Key3 = 98da194c100eeacb -Msg = da22ad9825c195d1e297 -Mac = 43 -Result = F (4 - Key or Key1 changed) - -Count = 126 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 13aec10d13fd37c7 -Key2 = 89198c3bcd38b951 -Key3 = ecf843cdef7397cb -Msg = b7625aa78d2961c0fee6 -Mac = f1 -Result = F (1 - Message changed) - -Count = 127 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = d94a68ec329d914a -Key2 = 394a8acea420e952 -Key3 = ec04c8cb8602aec8 -Msg = e043f30a405c41938914 -Mac = 6f -Result = F (2 - Key or Key2 changed) - -Count = 128 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = d5cb7579582fb6a8 -Key2 = e67f3ba11383d61f -Key3 = da370852e9b9c2a1 -Msg = 7d32f440151a7069fd73 -Mac = b7 -Result = F (3 - MAC changed) - -Count = 129 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 92402f6eb54526b3 -Key2 = 924515d92ad5a1d0 -Key3 = 9ead2adfb025f81a -Msg = fd44d8d0fea5cfdf3321 -Mac = 2f -Result = P - -Count = 130 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = a9daad97ad23fe61 -Key2 = 32e5988a37987a38 -Key3 = 31626d16a780c825 -Msg = d6cf17192f8ad745ab5b -Mac = 8f -Result = F (4 - Key or Key1 changed) - -Count = 131 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 52c457d9d5d5ab94 -Key2 = 9d3875ba6d75fdba -Key3 = 4fb91a863d15ce52 -Msg = 4effbf732e67af7203b3 -Mac = 04 -Result = F (3 - MAC changed) - -Count = 132 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 7304b65492fd0402 -Key2 = 62a4cb7c23708057 -Key3 = f2f7bf13839e01e5 -Msg = a630c0f362eef35b6a58 -Mac = aa -Result = P - -Count = 133 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 51b33425a1349792 -Key2 = dc5b8ca440eae6ad -Key3 = 70adf49dd0a8f119 -Msg = af246a8a810cca5e657b -Mac = 0b -Result = F (1 - Message changed) - -Count = 134 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = f22029ce51619e0d -Key2 = 9d51bcc2089785e0 -Key3 = 689d62621abab3b0 -Msg = a9c9fb632423d367b3eb -Mac = 0c -Result = F (2 - Key or Key2 changed) - -Count = 135 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 1ca226d0dc8c328a -Key2 = f18a9dc176621f51 -Key3 = 3d765d20e03b4cea -Msg = f9d9fb44919e47cdeaf8 -Mac = b0 -Result = F (3 - MAC changed) - -Count = 136 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = f3ce4992c851e3a8 -Key2 = 835ec1abef97f2c8 -Key3 = 5b92384f20dcc2ad -Msg = 9094935fcd7c389dd17b -Mac = 3c -Result = F (4 - Key or Key1 changed) - -Count = 137 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = bfd929cdd9c2089d -Key2 = 8e49988abcfbf458 -Key3 = da73d986894fce4c -Msg = 88018424fdb76c908bd6 -Mac = 94 -Result = F (2 - Key or Key2 changed) - -Count = 138 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = 57bf2ca4e3629797 -Key2 = ef7f675443402546 -Key3 = 6e4f924038f8bc92 -Msg = dd4f0a872f4b7089d697 -Mac = 5b -Result = F (1 - Message changed) - -Count = 139 -Klen = 3 -Mlen = 10 -Tlen = 1 -Key1 = ba86924908df08b3 -Key2 = 26b954ba52df2c98 -Key3 = bf38cb0e89b9f4cd -Msg = a682e6fd64df4b9f4fe8 -Mac = ea -Result = P - -Count = 140 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 52859849a4b6c1d5 -Key2 = 380e73c7aefb0168 -Key3 = c479fef80eb6260d -Msg = ee6857533675b5ed8d43 -Mac = 43fd25f696cb0693 -Result = F (1 - Message changed) - -Count = 141 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 97ae01315d13ec52 -Key2 = c7674cc1ab0bbab3 -Key3 = b68fb99797b33b79 -Msg = ce9127f649bfff849826 -Mac = 2dfe01d9bc07646b -Result = P - -Count = 142 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 2b257032b0d9b0b3 -Key2 = 49f7c10e8a9bcd37 -Key3 = 20f4fb4679106ddc -Msg = b2c62d03902c44253368 -Mac = 14c5ccf5f9433a0f -Result = F (4 - Key or Key1 changed) - -Count = 143 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 0b988c3d380e5b80 -Key2 = b86be99162029b54 -Key3 = e0bc9775838a58ea -Msg = 61ababff3763183c348d -Mac = 28a2de26aa6b4074 -Result = F (2 - Key or Key2 changed) - -Count = 144 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 26e9abbf201fe5b9 -Key2 = 7062a82f800d5183 -Key3 = cd45e654bf5d205e -Msg = 020683e1f0392f4cac54 -Mac = 6f1522d3c8186217 -Result = F (3 - MAC changed) - -Count = 145 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 3443f4016dadcd86 -Key2 = 235dec80323e5838 -Key3 = fd583285e6efbc51 -Msg = e64eeb89828b4297601a -Mac = 5575a40dba5bc4c6 -Result = F (3 - MAC changed) - -Count = 146 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 76c7616785916470 -Key2 = 5b3d1f10e5252fda -Key3 = 75a2d632a46ea18c -Msg = ac7d701597f0ba879055 -Mac = 06b98e161e6a6754 -Result = P - -Count = 147 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = f12367b568a758b5 -Key2 = 7b2f9770924f2c0d -Key3 = 1f8ad9e9b97a088a -Msg = b99de8168e8c13ea4aef -Mac = db534a059f930ee0 -Result = F (2 - Key or Key2 changed) - -Count = 148 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = f1adb67986923d8c -Key2 = 02671957dcf75808 -Key3 = 52732ae970467019 -Msg = f759c3033d4ed34948d7 -Mac = 2d9caabf50999ac6 -Result = F (4 - Key or Key1 changed) - -Count = 149 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 792f9770924f2c0d -Key2 = 1f8ad9e9b97a088a -Key3 = b99de9168f8c13ea -Msg = 8bae64015d62f68565d1 -Mac = a42f89527f5cb219 -Result = F (1 - Message changed) - -Count = 150 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 31ec790d4a8a131c -Key2 = 562c8cdc07e331d3 -Key3 = f4a7467043924c4f -Msg = 1798286c37c1504fc0d7 -Mac = f0d6e2f7edce6349 -Result = F (2 - Key or Key2 changed) - -Count = 151 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = adb692e376a12585 -Key2 = 8c8c4362ea97f810 -Key3 = 528f204c19f21a31 -Msg = 6543e675d34639a7f7eb -Mac = fac96e6804526535 -Result = F (4 - Key or Key1 changed) - -Count = 152 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 62984a64ec7c4a92 -Key2 = feda64dfd9a24f9b -Key3 = cbb04f7a1f26df31 -Msg = adb555fd5f5c6bdd9c4e -Mac = e8dee8714b285a00 -Result = F (3 - MAC changed) - -Count = 153 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = ef0d58b55ddae95d -Key2 = 80e07ca4aebcfd34 -Key3 = bf947ff4ab2904e5 -Msg = 1fe87a2f431f3718665a -Mac = 44a869aee76d79db -Result = P - -Count = 154 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = aef4ceb55e3d37fe -Key2 = bc0bb9d05bad972c -Key3 = e0a29b2c7940ce9b -Msg = 78ad5f3718acf9e8cc7c -Mac = dcc1d44200caf6f7 -Result = F (1 - Message changed) - -Count = 155 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = a4403438f8fb254f -Key2 = bac752cd83a170b5 -Key3 = 6bf71654f1854589 -Msg = 349566b6716e5f831d69 -Mac = 7c08cc43ff4d8e07 -Result = F (1 - Message changed) - -Count = 156 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 2fc7f4c1ce042f73 -Key2 = 8346bf7a80b38640 -Key3 = 2ff74abfc197a732 -Msg = 43a32b8ab9b7ce4bbd1b -Mac = 8000a2612215014a -Result = P - -Count = 157 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = c40ddc9e29ce041a -Key2 = 583d6bc4c1a2abf2 -Key3 = 9b018fd5a4084a64 -Msg = 2286a1eddd80737a724c -Mac = 0ff14761c982f890 -Result = F (3 - MAC changed) - -Count = 158 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = bc327a0bcb2575df -Key2 = 6b9483e6e0755d2a -Key3 = 622cdc5b2916ab89 -Msg = e1be89af98ffd7d9257a -Mac = d6f4c8d96b3e2180 -Result = F (4 - Key or Key1 changed) - -Count = 159 -Klen = 3 -Mlen = 10 -Tlen = 8 -Key1 = 9e517cd616a48ada -Key2 = 6d266192d5387a97 -Key3 = 8a081fda97c86b94 -Msg = 9e9fb0b2b77be6eeaae8 -Mac = ba0b73fbffc0ab0b -Result = F (2 - Key or Key2 changed) - -Count = 160 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = e0b9a826a85efe94 -Key2 = 4f615bce7cc1ba68 -Key3 = 3bb56d3d9816103e -Msg = cfe9ee956cb1f5a60aa6ec79a3e454224b456879 -Mac = 64 -Result = F (3 - MAC changed) - -Count = 161 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 1e08a794a175b69e -Key2 = f7d3ab46aeb9073e -Key3 = 3e7cf8cea19d0891 -Msg = eb4f5b04517ee93e2c900e01948ac81ca56b2b26 -Mac = 79 -Result = F (4 - Key or Key1 changed) - -Count = 162 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 8f26700dc140570b -Key2 = 8325e3a889c823ad -Key3 = 6b048aa73decf83b -Msg = cefb55151933a488e2b3d421dea9720727188106 -Mac = 85 -Result = P - -Count = 163 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 3443f4016dadcd86 -Key2 = 255dec80323e5838 -Key3 = fd583285e6efbc51 -Msg = e64eeb89828b4297601a5b3fcde60075fc2424ae -Mac = c0 -Result = F (2 - Key or Key2 changed) - -Count = 164 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 91a401cbb6460b16 -Key2 = 85438675f15b6e73 -Key3 = b09140318a767038 -Msg = 8c65cde13149d9d54a5bccc17747f1d5f3e807e3 -Mac = 56 -Result = F (1 - Message changed) - -Count = 165 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = b78a16fb9b075d3b -Key2 = dcabbf7a07150261 -Key3 = f7644a01d5dcea46 -Msg = abe2fd996bb6804ed3286c057df9cea6836a2dad -Mac = 09 -Result = F (4 - Key or Key1 changed) - -Count = 166 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = ce8a467534cd679e -Key2 = cb9ee6fb70a42f4f -Key3 = 16c1e5c1459e4ac8 -Msg = 3c56ccfbe92023109983e740d6a53488b813ee87 -Mac = c8 -Result = F (1 - Message changed) - -Count = 167 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 401f0de0efd6dfa8 -Key2 = 16ae7c3bbc6e5b86 -Key3 = 4ffebf790815f1d0 -Msg = 9052d5e22e6712fab88e8dfaa928b6e015ca589c -Mac = 61 -Result = P - -Count = 168 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = d357bf5bef2cfba7 -Key2 = b757d3abf49b4ac2 -Key3 = 16388051da8a04a7 -Msg = b04e8f6d20924be8e4e2c6767f87b74377bdf90c -Mac = 72 -Result = F (2 - Key or Key2 changed) - -Count = 169 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = f8ea68aba1bcd9e6 -Key2 = 4abaa4260d864573 -Key3 = a49840ab737af7b0 -Msg = 1fc99e586f87932445930a300eb28191d9c6215b -Mac = 19 -Result = F (3 - MAC changed) - -Count = 170 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 94ec086d8c0110cd -Key2 = 4ea11f327f70c245 -Key3 = c8d07adf7c7c5eb9 -Msg = 812dbc453a1fda59f73aceea3bc84d2c7a437dfc -Mac = b2 -Result = F (2 - Key or Key2 changed) - -Count = 171 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 9d575d582a9723c1 -Key2 = 294af47a54b051fe -Key3 = 5131bff85bf12608 -Msg = 266e5305b96f497a956ae82b20367ebac0b14215 -Mac = a9 -Result = F (1 - Message changed) - -Count = 172 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 913d800ecd0dc762 -Key2 = 7f6ec476b6b07c15 -Key3 = 973262ab7c83b634 -Msg = 4670a266bebcdf95c62d36cda33d50e6650fcdcd -Mac = 4f -Result = P - -Count = 173 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = b97ffe79d068ece5 -Key2 = 4a75fe2f67dae392 -Key3 = 45a4d9f17a9d70f8 -Msg = b53017500c100dea0511845597214484fc5f7f34 -Mac = 6d -Result = F (3 - MAC changed) - -Count = 174 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 7e1af10bcd86c283 -Key2 = 51cd37540e19021a -Key3 = 988fd3c7250e2a6d -Msg = da1919d4a2a7fcc34c88fb2065e52bf9dbc50731 -Mac = 22 -Result = F (4 - Key or Key1 changed) - -Count = 175 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 8c0dc16eb9c80775 -Key2 = 6eeff20d3d5d5223 -Key3 = 258076b313611c1c -Msg = b212b857f70c9f63d0c9d2ccd253c28d1534631f -Mac = 2e -Result = F (1 - Message changed) - -Count = 176 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 92c29eb0bf3e73a4 -Key2 = c6ecfbe6cd49bf4f -Key3 = ef19d9d06d7a5e7f -Msg = 969304e651ca62039088f8123085ac3263796b67 -Mac = 57 -Result = F (2 - Key or Key2 changed) - -Count = 177 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = a4432f52975e4316 -Key2 = 7f2086da04fddf4f -Key3 = 8302139e79684329 -Msg = 5c9bcd197ea59e1b58b3da707b253491cc5a5ef8 -Mac = ea -Result = P - -Count = 178 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 5ae0b6d6c2855b7a -Key2 = ec675d3e73bfd685 -Key3 = d3406b868fd3ae0e -Msg = 89b9ecfef6f10e81f7956dbc7ca4a335047535a8 -Mac = 70 -Result = F (4 - Key or Key1 changed) - -Count = 179 -Klen = 3 -Mlen = 20 -Tlen = 1 -Key1 = 8f7f85649d5e08a4 -Key2 = ceda75687308e07a -Key3 = 9215c4c19bdc0d46 -Msg = e53101e6eabcda32c13d7b1dd1d88e7c2ca3ddc2 -Mac = 14 -Result = F (3 - MAC changed) - -Count = 180 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 7061b5f46b98d394 -Key2 = 58c2ce3807623475 -Key3 = 0df8e3c432da8a37 -Msg = 1086953d352e94a51a6d4c59a2295e8fff5b311e -Mac = 554d4df88228eba3 -Result = P - -Count = 181 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 347a25a1ec433b52 -Key2 = ec75d97046152c10 -Key3 = 86b937b6ad1ccbf8 -Msg = 4fe6bd43c28143ea5d40919cb5330a7e674f5bd8 -Mac = 3d0d841895fb7c65 -Result = F (1 - Message changed) - -Count = 182 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = b3701aa7da61512c -Key2 = 46dacba40740e3c1 -Key3 = 8f79a4dcadbc315e -Msg = 4612fb4586d7518d0d648894347ae7d49d043f29 -Mac = e5dd4392afbeabe7 -Result = F (3 - MAC changed) - -Count = 183 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = b5b57acb2c7fd6cb -Key2 = 70b02c9d8651c889 -Key3 = 07f485f7b00e45d9 -Msg = 9011231ec382ecaaae57f34de1ac6bbb50741014 -Mac = d34581ad5a3e9e57 -Result = F (2 - Key or Key2 changed) - -Count = 184 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 88985bdfd9852604 -Key2 = f7f829aec8a208b3 -Key3 = d5ba012ce6754554 -Msg = 6cad7f3b9f196839bbc5a7f755c09aa8e17c83d9 -Mac = fc7c93552aa14ca2 -Result = F (4 - Key or Key1 changed) - -Count = 185 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = cd0815194319d552 -Key2 = 346bb634027668d9 -Key3 = c17f2a26257afbad -Msg = e31b3d97ba6ee6f2e18f084215ca0a5ca0d816d7 -Mac = af5772396bb63d20 -Result = F (1 - Message changed) - -Count = 186 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 236e5201dfc1081a -Key2 = c81526bc85c7a2ce -Key3 = ab91d0aee0d68931 -Msg = 1f36b9cbf3d4d4dfcc4ba7fafa7c229f0a9253f4 -Mac = 27586cf856a41e82 -Result = P - -Count = 187 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 2e01198faeb6986e -Key2 = 7cb564801f15bc5d -Key3 = f2d3ef0d4fec61c1 -Msg = 27c8c90c9e46e14b8cbb0b7559bb166d65f58aeb -Mac = eaa7b4a171e449ef -Result = F (4 - Key or Key1 changed) - -Count = 188 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = df575b851331b016 -Key2 = 33ec7326e9ef31e5 -Key3 = 1686c1ec8a3ea16d -Msg = 1e4e01d38ff65d05646d544b52a6df49b897eacc -Mac = 45789bd32147c0ae -Result = F (2 - Key or Key2 changed) - -Count = 189 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 43b68c1f29ef5b94 -Key2 = a7dfa1cbe9ea3df1 -Key3 = 83d3c286e973ada1 -Msg = 0ca9b0f6465db0e101f8c14b2e73859d9c355b0a -Mac = da439a51157ff0d5 -Result = F (3 - MAC changed) - -Count = 190 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = bf91d679268c85ce -Key2 = 46b9f7bf4aa1a2c2 -Key3 = f7fd15fda2cd6408 -Msg = 0c2933e39d7e601ee6f2519eaf01294853664262 -Mac = 455cd46d3b452a55 -Result = F (3 - MAC changed) - -Count = 191 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 0dad9d451f890b38 -Key2 = 3416e3c240a16ee6 -Key3 = 5b80d6aefd4ab5a4 -Msg = b6e1de9abef7525c5dabbdc85746958781d50139 -Mac = 3445a869cca839fb -Result = F (2 - Key or Key2 changed) - -Count = 192 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 96858f8f2ab56df2 -Key2 = 5edc3b04b94ca7cd -Key3 = bf10614ce0491645 -Msg = ec9aa18b3e7da99dcbd7de7617a79130abe3348a -Mac = c744a1392fc656c2 -Result = F (4 - Key or Key1 changed) - -Count = 193 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 46ad6ebad9644a67 -Key2 = da684aa48f23d619 -Key3 = 43a2316b40a46e25 -Msg = cf97c2abe3d0fc89e05538b50147a3f405391219 -Mac = 7ac08967edc5730b -Result = P - -Count = 194 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 68647694efb32023 -Key2 = 0d2938c8fe1a4057 -Key3 = f479f16e7552942f -Msg = 33a9c750bb532d2d37ec86fa851aeb3cad1eaad8 -Mac = 3873ae02210eb5fc -Result = F (1 - Message changed) - -Count = 195 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 58d62fd92af7437f -Key2 = 89dfb51fc807cd6d -Key3 = 024fd04f40d5d0e3 -Msg = cc293c9e1780b401d2e7fceef6f69edcf0f70b86 -Mac = 6574bfceaf04b4e1 -Result = F (1 - Message changed) - -Count = 196 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 4b377f98df0b7598 -Key2 = bf73f4c2cb074001 -Key3 = dc9857f47fe6101f -Msg = 9ba5dbe7a8ecfbedadd7889cd7f1ae073e01ee3b -Mac = aaaeb7223578bbad -Result = F (4 - Key or Key1 changed) - -Count = 197 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = 91c8851934cdecc2 -Key2 = 582562aef1205e32 -Key3 = a12a70eacbad310e -Msg = aa390a0ae33751b0bd8de5723df91d999aa70358 -Mac = 67f76912ed61eaab -Result = P - -Count = 198 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = dcc2bacbea0dcd10 -Key2 = c18ca45ed57f8f97 -Key3 = 5d58157a677f1951 -Msg = a7573e5b7dd7f4ce9e4480f603c14145a27f7c7a -Mac = 2b6af968464ac63f -Result = F (3 - MAC changed) - -Count = 199 -Klen = 3 -Mlen = 20 -Tlen = 8 -Key1 = fe6d49702f044f40 -Key2 = 33321613da401004 -Key3 = 8c3438f74cc2680d -Msg = b15a118b3132c20c31e6c9d09acdee0e15fcc59d -Mac = 9f28413a00da00ab -Result = F (2 - Key or Key2 changed) +# This file has been modified to remove the 65536-byte long inputs. + +# CAVS 11.0 +# CMACVer information +# Algorithms tested:Alg = TDES KeySize = 3 Mode = Verify +# Generated on Tue Mar 15 08:40:47 2011 + + +Count = 0 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 3bb96170d5df4cce +Key2 = 25d5daa22a982f08 +Key3 = 52f4a110dcdc9e45 +Msg = 00 +Mac = 96 +Result = F (2 - Key or Key2 changed) + +Count = 1 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 9413d38685688f58 +Key2 = dc38b6b3cef125f1 +Key3 = 5b61f4f7a1c46ed6 +Msg = 00 +Mac = fc +Result = F (4 - Key or Key1 changed) + +Count = 2 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 101a2f13fbb69473 +Key2 = 76fb98f24073f4d5 +Key3 = 2ca2706d76d00b67 +Msg = 00 +Mac = 53 +Result = P + +Count = 3 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 2f8a238552c1e367 +Key2 = f8131f1c26ab3289 +Key3 = 83d5b6ba253bea31 +Msg = 00 +Mac = 95 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 4 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = c1bafb5dc7100758 +Key2 = e9ef047a58b5ba89 +Key3 = 76cb4fb55ebcc1c7 +Msg = 00 +Mac = f4 +Result = F (3 - MAC changed) + +Count = 5 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = c82c29f1cb5851b6 +Key2 = 8b5b45dcbf0d8079 +Key3 = e6407057ae34ec0b +Msg = 00 +Mac = 03 +Result = F (2 - Key or Key2 changed) + +Count = 6 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 6b455116f4f883d5 +Key2 = a81a206d25152aab +Key3 = 86dc07b607202abc +Msg = 00 +Mac = 75 +Result = P + +Count = 7 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = c873d5bc4598d0b0 +Key2 = 1c1523cb4f794c8a +Key3 = cedf6797d523dcab +Msg = 00 +Mac = 2e +Result = F (1 - MAC changed - for 0-len msg) + +Count = 8 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 45ce943bd31fe9b5 +Key2 = 677cc47c13c24923 +Key3 = 6b2086f14934838a +Msg = 00 +Mac = 01 +Result = F (4 - Key or Key1 changed) + +Count = 9 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 804f9ef7baf7dfc7 +Key2 = 9bb6494cb60b8c07 +Key3 = 2080fe52e0d3943d +Msg = 00 +Mac = c3 +Result = F (3 - MAC changed) + +Count = 10 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 73c10b833e1043ab +Key2 = 16dcd343645d5207 +Key3 = 6426f7f88c3473c8 +Msg = 00 +Mac = 8b +Result = F (1 - MAC changed - for 0-len msg) + +Count = 11 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 310d54d96bc73452 +Key2 = bae34f158ceafb04 +Key3 = 4651c1b53de3da26 +Msg = 00 +Mac = ce +Result = F (3 - MAC changed) + +Count = 12 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 0e3d49d0e692f20e +Key2 = a9cd384a3b688c0e +Key3 = 584ae5f794f8fe7f +Msg = 00 +Mac = 4b +Result = F (2 - Key or Key2 changed) + +Count = 13 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = b0fda857ea402f0b +Key2 = d567e9f48568f1e0 +Key3 = 0ec2ad452a547a91 +Msg = 00 +Mac = 04 +Result = F (4 - Key or Key1 changed) + +Count = 14 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 1ac1543b1591f270 +Key2 = dcda0e9870b9d949 +Key3 = 68ea9b1c4380ae9e +Msg = 00 +Mac = 43 +Result = P + +Count = 15 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = d0b008aea4454551 +Key2 = 9234a7731ab610b5 +Key3 = 2fb97a8ffbaedae6 +Msg = 00 +Mac = 4c +Result = F (4 - Key or Key1 changed) + +Count = 16 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 04793b0b0e976d0b +Key2 = bf493e58fb73681f +Key3 = 1f54a262d649b985 +Msg = 00 +Mac = 77 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 17 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = 043b759b578ae570 +Key2 = 5e522f19cb9de092 +Key3 = 2af2e90eb6dcc1fd +Msg = 00 +Mac = 77 +Result = F (3 - MAC changed) + +Count = 18 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = e58520088910513d +Key2 = 7c10196e1a310dd5 +Key3 = 5b043b2a1ab97f85 +Msg = 00 +Mac = 1c +Result = P + +Count = 19 +Klen = 3 +Mlen = 0 +Tlen = 1 +Key1 = f27fd0f189452c15 +Key2 = 04681651014916ab +Key3 = 204046aeeffecd15 +Msg = 00 +Mac = 0b +Result = F (2 - Key or Key2 changed) + +Count = 20 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 860864a710ab0475 +Key2 = b9205751bfd91f7f +Key3 = 3bf72abf13d97640 +Msg = 00 +Mac = e890abe6ea126215 +Result = F (3 - MAC changed) + +Count = 21 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = a7a1d57aabf1137c +Key2 = fd0df2e35b8cdf2a +Key3 = b386755bc2ab3d9d +Msg = 00 +Mac = f475587c2101eff2 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 22 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = c2c28a4c7698804c +Key2 = ab25b53783dc0419 +Key3 = ab16341f4cead054 +Msg = 00 +Mac = d335575aa3a4d8af +Result = P + +Count = 23 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 7594a7aed3e986ba +Key2 = 52a280e662d9e9da +Key3 = 7649d3ad6838f2c2 +Msg = 00 +Mac = 0e109f43557f250f +Result = F (4 - Key or Key1 changed) + +Count = 24 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 0798d9ef158cd698 +Key2 = fff4ade09b169762 +Key3 = 5b6e6849ec2c238a +Msg = 00 +Mac = 05af623529b168a9 +Result = F (2 - Key or Key2 changed) + +Count = 25 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 254991cb4af76dc8 +Key2 = 2cf2e915918a025b +Key3 = 2c61bfaee69b2676 +Msg = 00 +Mac = 725ab7a770762894 +Result = F (2 - Key or Key2 changed) + +Count = 26 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 9f68cbbf3bb5b3da +Key2 = 31adb5a46e2cc8e3 +Key3 = f86ed9eaabb625da +Msg = 00 +Mac = 0422d94f874dda7e +Result = F (4 - Key or Key1 changed) + +Count = 27 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 1fd51f70a77ac8e9 +Key2 = 5dd9986e974c08ec +Key3 = fd61ce34a75279f7 +Msg = 00 +Mac = a163a5d269b3cc3e +Result = F (3 - MAC changed) + +Count = 28 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 078c57d6df9ba1d5 +Key2 = 08d94ac1b3d3c183 +Key3 = e90bf4fe7973c2c7 +Msg = 00 +Mac = 9af3f01e20dc7c1e +Result = P + +Count = 29 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 08df322f040e7c01 +Key2 = e92343e69d83eac7 +Key3 = fe94c1ec0da22c1a +Msg = 00 +Mac = 3d88c20a4f828c5b +Result = F (1 - MAC changed - for 0-len msg) + +Count = 30 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = b2ecf41c8692c2b0 +Key2 = 8ff18c1f1f296454 +Key3 = 383dcbc4a28c7629 +Msg = 00 +Mac = 17241dc726fa4c56 +Result = F (4 - Key or Key1 changed) + +Count = 31 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 07d99d58f2ec1fd5 +Key2 = ea46c73bf4b60ed0 +Key3 = f20ec149c831aecb +Msg = 00 +Mac = f6a8a0b536fd97d3 +Result = P + +Count = 32 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 3dfdc19426fbd56d +Key2 = b03b7985b32af857 +Key3 = a807c7b3621ffdda +Msg = 00 +Mac = 3ef9b263ae1df460 +Result = F (2 - Key or Key2 changed) + +Count = 33 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = fbc79bab46b97923 +Key2 = ece6da4c40f1e6e9 +Key3 = eaa76770ef517a40 +Msg = 00 +Mac = b2da3efa7fc64abe +Result = F (1 - MAC changed - for 0-len msg) + +Count = 34 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 5ba4a1d5a80db5ef +Key2 = 7ce6aeb9261cb00b +Key3 = 8a5df23ea445e0c8 +Msg = 00 +Mac = 51b2e75334d90889 +Result = F (3 - MAC changed) + +Count = 35 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = e9c494e001027c86 +Key2 = c4649e58ea251904 +Key3 = 8025343dec34409e +Msg = 00 +Mac = 166123f1c59132a3 +Result = P + +Count = 36 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 6bce61e646452a46 +Key2 = 54ba8a020d0876fb +Key3 = 34ea2f6149bad664 +Msg = 00 +Mac = b0d0f625f06f2a3a +Result = F (3 - MAC changed) + +Count = 37 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 2f38f79bc8e0ea4a +Key2 = d09876f22ca43e10 +Key3 = 3b8fab02299d328c +Msg = 00 +Mac = b26d377a504b8985 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 38 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 51febf790815f1d0 +Key2 = 9152d5e32f6713fb +Key3 = 4a40c2c8fdb9f2b5 +Msg = 00 +Mac = a27978e62026743b +Result = F (4 - Key or Key1 changed) + +Count = 39 +Klen = 3 +Mlen = 0 +Tlen = 8 +Key1 = 10ba8fd6256ee9a4 +Key2 = fa8332a46ead52ab +Key3 = b0e06e1fef04abb5 +Msg = 00 +Mac = e1b0a228c142555c +Result = F (2 - Key or Key2 changed) + +Count = 40 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = f2fbab6734769e9b +Key2 = ab45910e5775ab0d +Key3 = 5bd5ea0db015a89e +Msg = 7efeb7d4d14b3f2b3df4b8a276b18b49 +Mac = 5c +Result = P + +Count = 41 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 5bc776ba64adf4ea +Key2 = 195e04987c62a4f2 +Key3 = c1642fdc1a31705d +Msg = d1fb4f35914404af9df3bf5c368c0e69 +Mac = 4d +Result = F (1 - Message changed) + +Count = 42 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = b67c57f770202c6e +Key2 = e91f4fb361bcae37 +Key3 = ada8d3df4fbcf4b9 +Msg = 9800db878187c87ea05bf92054b0e3e3 +Mac = 8b +Result = F (3 - MAC changed) + +Count = 43 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = ce0bc48002fe7602 +Key2 = e702abe31c7a2313 +Key3 = d61964867f2579da +Msg = 704e4e75be1623b21332c14555bf5edc +Mac = b0 +Result = F (2 - Key or Key2 changed) + +Count = 44 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = ad75e32cc11980f2 +Key2 = d0570429680e9486 +Key3 = c2379207f862dcfd +Msg = 197de855b3962b1fdad687f9c4f1efd6 +Mac = 44 +Result = F (4 - Key or Key1 changed) + +Count = 45 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 9db504803d29f126 +Key2 = 07fe58b3da765bad +Key3 = 6dc489516e9bb5f8 +Msg = 8f296b265fa575d146799f9e39d52965 +Mac = 14 +Result = P + +Count = 46 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 991f0ed04079293d +Key2 = 57077ff1baecd907 +Key3 = dcc7a719c4372967 +Msg = d9cfcc67520c5b2ceeb622c694a8e3fe +Mac = a3 +Result = F (4 - Key or Key1 changed) + +Count = 47 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = eca815d6b0371cf1 +Key2 = 597980cdb6c892df +Key3 = 3dba0ed3ba16ae1c +Msg = a03636db2fdc84722aeb9d98a6ed70d0 +Mac = 78 +Result = F (2 - Key or Key2 changed) + +Count = 48 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = ea80a43d5886dfef +Key2 = 08bf4f76a8893732 +Key3 = 4557a13752d6730d +Msg = 0371a63ad722523ef297d8399b124593 +Mac = be +Result = F (3 - MAC changed) + +Count = 49 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = e9fe73e640808c02 +Key2 = 9be6986446012091 +Key3 = 707023615462a40e +Msg = 83bcb484dca73d49ac234ece3a5d2ad3 +Mac = d6 +Result = F (1 - Message changed) + +Count = 50 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 1fe9800ecb0dd9f1 +Key2 = dbbc6bc72c794c23 +Key3 = 899b08469b6bc8b5 +Msg = 95f4a41c4c64cd7310fba748aa267a14 +Mac = 59 +Result = F (2 - Key or Key2 changed) + +Count = 51 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 34546261a21c1c43 +Key2 = 0449eaeca4f29725 +Key3 = 4cc4e6525186802f +Msg = d204de1e671d3e43670dd67fee114402 +Mac = 6e +Result = F (1 - Message changed) + +Count = 52 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 048aa8701fb5fe26 +Key2 = d56bd53d83e60bd9 +Key3 = 6707d6523ebc32f4 +Msg = f4e9f92fd2c9313fb61a889eaa4ff283 +Mac = d5 +Result = P + +Count = 53 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 6ec19b02976e5ba2 +Key2 = 13540732d997c2b6 +Key3 = 7f4068926183251c +Msg = 963363ab7c82b634974954bd0fe2c307 +Mac = d7 +Result = F (3 - MAC changed) + +Count = 54 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = f4ecea5d32e32c6e +Key2 = 385710cd3eb0fe51 +Key3 = 5d4c8f7ccdf10154 +Msg = a298857dc60ad2f0a8fa878607b50c18 +Mac = 4c +Result = F (4 - Key or Key1 changed) + +Count = 55 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = b31ff49dd970f8e9 +Key2 = 164aefb00efb5461 +Key3 = 981629757f4532dc +Msg = fc3957b2ed0558bce61d478be615b774 +Mac = 90 +Result = P + +Count = 56 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 85384543d3aef157 +Key2 = 57ea916d9b2fd0c8 +Key3 = 1a85830473fbe6c4 +Msg = 87db0d9d69bc0cf69cabeb92570e482b +Mac = 53 +Result = F (4 - Key or Key1 changed) + +Count = 57 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 9bf8fb0b464070f8 +Key2 = 10ea23c7e5a19bcb +Key3 = 408c236e10863e2a +Msg = f9c98cd8a7d27553da946427b8276349 +Mac = 53 +Result = F (2 - Key or Key2 changed) + +Count = 58 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = 91b083e9c8e9803b +Key2 = 76d0341cd54c38e5 +Key3 = 07bca7f44a3e76bc +Msg = 7e5b64dc6bcbae6bb4496fc033947343 +Mac = de +Result = F (3 - MAC changed) + +Count = 59 +Klen = 3 +Mlen = 16 +Tlen = 1 +Key1 = e6795b1ffe8f3e38 +Key2 = 4fdcea8c73c76e75 +Key3 = df0726ae4c079461 +Msg = 5265fb6a796d99a6beec6f71ba267b5d +Mac = e0 +Result = F (1 - Message changed) + +Count = 60 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 375710c76202bff1 +Key2 = 3bb96170d5df4cce +Key3 = 23d5daa22a982f08 +Msg = 52f5a110dddc9f44f8a534eef9df0b22 +Mac = b1b9e11939228900 +Result = P + +Count = 61 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = b59b855dce76adf4 +Key2 = be9bae10fe34fb1c +Key3 = 0d49159bf804a4ea +Msg = 869f3b62ee78bfeb5287168eacf69ccb +Mac = 169a389352793c8b +Result = F (2 - Key or Key2 changed) + +Count = 62 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 615d792a7038fd89 +Key2 = 98ce972f016e75a8 +Key3 = c470255783b32f01 +Msg = e5aed6715aa4291f9c32baf6b8449b53 +Mac = 73ac2da999bfdf5d +Result = F (1 - Message changed) + +Count = 63 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 1fb09443a1074564 +Key2 = 3d1aa82c086eba13 +Key3 = c137d0f4ea54d604 +Msg = 16f02efd285381d7657ca5cd99d9e25b +Mac = 38126d16957893ce +Result = F (3 - MAC changed) + +Count = 64 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 2e5d163461fea761 +Key2 = 9173bf75372fb640 +Key3 = 9e3d1c3dcdbfbc31 +Msg = b10fcb03443302ae929ff95a17b025fa +Mac = b70f2d761ca643c9 +Result = F (4 - Key or Key1 changed) + +Count = 65 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = b9e5861c1c4013d3 +Key2 = d554806efd3801a1 +Key3 = 64d9bc3d646e76dc +Msg = 0e6c9fced82669cffe7b5a6f09dceec8 +Mac = 78ce4635e486635a +Result = F (3 - MAC changed) + +Count = 66 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = ad2376516b974c70 +Key2 = cd3b5870c2312929 +Key3 = 1a731a7feacbf783 +Msg = 88eb7a0379da9d113343dc1fe0f3e6f7 +Mac = 0c949483e7fa7d0c +Result = F (1 - Message changed) + +Count = 67 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 9ada194c100eeacb +Key2 = da23ad9825c194d0 +Key3 = 3ef1f4c438dce031 +Msg = 0f9703a3454c25c0b1053de62b0ffc5b +Mac = c78a4ca3662527e5 +Result = F (4 - Key or Key1 changed) + +Count = 68 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = e375f870f4d55b02 +Key2 = 1b015791e3e337b3 +Key3 = 370dc45b15671c5b +Msg = 5ad9dd3b112ea4cee1654d2dfabab01e +Mac = 22becbbe7bfcade5 +Result = F (2 - Key or Key2 changed) + +Count = 69 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = d61f4aeff4b5f2f8 +Key2 = 0486b53de3ecc297 +Key3 = 807fe92fc2fed376 +Msg = d094cf77a709c0fa5d6b4b7e9e86a2c2 +Mac = 947d024d9d5359a8 +Result = P + +Count = 70 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = c2c28a4c7698804c +Key2 = ab25b53783dc0419 +Key3 = ab16341f4cead054 +Msg = 7295a7aed3e987baef19ad68c33ba5a5 +Mac = 58de82acc10d556f +Result = P + +Count = 71 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = f1ce4992c851e3a8 +Key2 = 835ec1abef97f2c8 +Key3 = 5b92384f20dcc2ad +Msg = 9094935fcd7c389dd17b5b121cddadf9 +Mac = 319c70370c172de3 +Result = F (3 - MAC changed) + +Count = 72 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = c16ebcc1165d6892 +Key2 = 75268c4602f8c8bf +Key3 = dab97f79544cf1cd +Msg = b7ba1c66282cb6092ba601407ff9578a +Mac = d73c26311bd44a32 +Result = F (2 - Key or Key2 changed) + +Count = 73 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = fe4a796720a46dbc +Key2 = 98f45289e9f8b080 +Key3 = e05def5b25520d43 +Msg = 31c9eed491bb0cda9b8c0eb5afa31019 +Mac = 8c2ce22633c62751 +Result = F (1 - Message changed) + +Count = 74 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = eefb40c715c4546d +Key2 = 5b2325c8d9daa48a +Key3 = d5ec4a6bc82a7a62 +Msg = 5a97259dfa081f040d3893da2f231ca3 +Mac = a64113544f509be8 +Result = F (4 - Key or Key1 changed) + +Count = 75 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 0d0851311ca45db0 +Key2 = 3d7c458957c8c408 +Key3 = 98d37c9d51ab2f25 +Msg = 8be16380af3e2dbc6cf678c2e3331335 +Mac = 8817baeaa909e33a +Result = P + +Count = 76 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = b7239438d61cd626 +Key2 = 082c6404cb3897b5 +Key3 = c4c732cdd5e043c2 +Msg = 7120f19169e7cbb913c7d1f0ceb006c0 +Mac = 32841ad7621cc0fc +Result = F (4 - Key or Key1 changed) + +Count = 77 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 73f449ef83df75e9 +Key2 = 5f3d2016bfd0703b +Key3 = 31abc16b58b64af4 +Msg = 83ecbfcff3bc37f1305d83bc0290350c +Mac = 8f8ba8bfc74203fa +Result = F (2 - Key or Key2 changed) + +Count = 78 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = 9b6ea461c7b9abe6 +Key2 = 4a08dcdc5b9e01fe +Key3 = 6b850e9b6ebae9d6 +Msg = c538416fba487fac5c94449d0757f3e9 +Mac = c13f372e9a061db8 +Result = F (3 - MAC changed) + +Count = 79 +Klen = 3 +Mlen = 16 +Tlen = 8 +Key1 = c7aeeacb156dfbfb +Key2 = ba43ef516232a7d3 +Key3 = 2c572aea62808c68 +Msg = a1bc9950759d0df4cffaf29345dfb340 +Mac = d7dad4519b56a1eb +Result = F (1 - Message changed) + +Count = 80 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = cda4d34370234946 +Key2 = c408ea6bec07c78c +Key3 = 19eff7f798fd6808 +Msg = d1fb0b68176269cf9fda18bf13efc054f0c24fd042b9e2ecaf75e86cb60484f6 +Mac = d8 +Result = F (4 - Key or Key1 changed) + +Count = 81 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 02100be5627686a8 +Key2 = 7f0b38ec073e75ef +Key3 = 373b1a64ba5416d9 +Msg = c60be37fb0bda4f46894690b3344643c772fbd2237db348adaa407ca2eae1654 +Mac = fb +Result = F (1 - Message changed) + +Count = 82 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 7597571a6e7c6bc8 +Key2 = c143a2a461626b1a +Key3 = 6b1307d910434cc7 +Msg = 49cb128641f7952dfdf34f338da268b2ef1482557b593ec57f930164264ff83e +Mac = 90 +Result = F (2 - Key or Key2 changed) + +Count = 83 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = ae89ad615201546b +Key2 = ae20765745458fce +Key3 = efd0867fba43dcb0 +Msg = e47d8659c9ad94971adedd6bce744206e1cfb65d042b942d93c4363cc73ec3e3 +Mac = 95 +Result = F (3 - MAC changed) + +Count = 84 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = b65886f13d6e8c4a +Key2 = 0708e0b0730473a8 +Key3 = d04f2a86dc0b9e7a +Msg = b97c12251d91512fe7b3a349a982409c7412f39494d970e77acbe9d3fac3dca7 +Mac = 05 +Result = P + +Count = 85 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 3197a4a26261588a +Key2 = 0dc4a75ec8b99b58 +Key3 = efb93e7620205289 +Msg = 65f4b3a00c1c1ef39445a69b2150b034705410140ff9dad0ce21740271cef04a +Mac = 57 +Result = F (4 - Key or Key1 changed) + +Count = 86 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 62c4a16e946b4313 +Key2 = d09ea80e7fb33449 +Key3 = 164fdc04c2d5f116 +Msg = 898e824fdc89f21779156a9e58564c4b99004b95226c2ebb8aebd0b5365a6c6a +Mac = 93 +Result = F (2 - Key or Key2 changed) + +Count = 87 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 6eeff20d3d5d5223 +Key2 = 258076b313611c1c +Key3 = b013b957f70d9e62 +Msg = 2d7fec1a1e9ee85cf960e5dc4e239619ed85f4b14d32cbd42dfa79f77a27f2cd +Mac = 0a +Result = F (1 - Message changed) + +Count = 88 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 193e23e6fd8aa185 +Key2 = 1910cbdc549da804 +Key3 = 6b769b4923523425 +Msg = bd65798a1d02ab164e2d31b1387e505874779539046820bd429043c617854c36 +Mac = d3 +Result = P + +Count = 89 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 150789ab37ef2ce9 +Key2 = 10cdf45dad9ed9e5 +Key3 = f475fd3e153898fe +Msg = 044dd73a7d1ef37a437c09e9268708c82ebad189dc1e989ab3bd8d7ff75abc23 +Mac = e4 +Result = F (3 - MAC changed) + +Count = 90 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 48d9d08a6bdcc4f8 +Key2 = 1383641c08735d0e +Key3 = 374a89c8cb73a7f4 +Msg = d62fb84f2a2442b52acf817d7f067edca031970bea092c35f29f9a931aa06dd6 +Mac = 26 +Result = F (4 - Key or Key1 changed) + +Count = 91 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 68f4620da8b00201 +Key2 = df1c8362345180d3 +Key3 = 26abda897f89d90d +Msg = 0ac3f7f22d24b64aa584845d3a990bb69e5d2d4650640056c16c17c0b636045f +Mac = f9 +Result = P + +Count = 92 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 1c259df7492361b6 +Key2 = cd4acdb65b3e5b1c +Key3 = 3b01addc2579ef64 +Msg = 607f4730a5ea9dabfbcd8586f680c3021c7ebc858e73354beb975d58713b0eb1 +Mac = fa +Result = F (3 - MAC changed) + +Count = 93 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = f18a9dba9db5dff1 +Key2 = d5987013a4b69e38 +Key3 = dc16e0ce1351e3f4 +Msg = bfe99e184a7d7bf0b4ade8f402f2c49aa4948e74b2d5c905756ba5d32934dbbd +Mac = e4 +Result = F (2 - Key or Key2 changed) + +Count = 94 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 8361bac48afb1091 +Key2 = da85400d107fbf8f +Key3 = 31ec732cc29d7045 +Msg = 3a1ee70d4607325c13bff68e402e0a72742f6a63ae972c6dda74b6b2a3922f0c +Mac = 0e +Result = F (1 - Message changed) + +Count = 95 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = d0df1adf1cf72032 +Key2 = 1504d564ec1aea61 +Key3 = c42fada45d80a43e +Msg = 3a53d9c7ae59e7811699fb0973e43256ed92162267c7ca4b57f5887ad5a24e02 +Mac = 8a +Result = F (2 - Key or Key2 changed) + +Count = 96 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 973bfe5b3be573da +Key2 = 94b3ec7f343e46ab +Key3 = dcaeabc8df405db6 +Msg = c8437dba76591a9031b3aa3b59fec0562d4eac439ca8efca57c3f2022b0ff775 +Mac = 53 +Result = F (3 - MAC changed) + +Count = 97 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = bc89867c43a74640 +Key2 = df347fb319464c80 +Key3 = fd92108a266bcdcd +Msg = 1c9898ede16139560519e808ee9ddaf710a5bab30f54ed98230d1a44c189ea4f +Mac = f6 +Result = F (4 - Key or Key1 changed) + +Count = 98 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = fde925e301897f67 +Key2 = 54b3ab80f815df15 +Key3 = dc58928aa286c8e5 +Msg = b34f898d98a3aa0fa022b1b1d76953a5b3ecc88d60f2c79b59e1b1f636bc0d60 +Mac = 0f +Result = F (1 - Message changed) + +Count = 99 +Klen = 3 +Mlen = 32 +Tlen = 1 +Key1 = 8a704ffe43e951f8 +Key2 = 2346dc8501202a40 +Key3 = d67afed616230113 +Msg = b2b4cb5e90ebf4bd265093b7f5efd4d62dc60e29737aa496e14929724e40c74f +Mac = df +Result = P + +Count = 100 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 8c1f29f440f7f8b5 +Key2 = 5b45fe8f1f688661 +Key3 = ba40f43d9e7cc86b +Msg = 220817144a15a0a654fc1beaabce60270aa72df83591754ee7a5fbb40b7420d7 +Mac = 80ac51c2ef7bd5d7 +Result = P + +Count = 101 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = d66e76d97f94ea16 +Key2 = f15e3ed06dd94598 +Key3 = ae073d1a6e5bc819 +Msg = 233d547ab33790859ab0dbc7a93f3bbebb610bed9acbfbce1fff580e9a1e8ef9 +Mac = 4cb8ce681e4bc7c8 +Result = F (1 - Message changed) + +Count = 102 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 0437836df770e943 +Key2 = c96e2c43bffd5298 +Key3 = 8552fbc16215e0c4 +Msg = 4f87d730bdfc7a7c72525c6b26ee9cae9a219b30d9575fedbd913a07b615a616 +Mac = ea79cbc28f4264db +Result = F (2 - Key or Key2 changed) + +Count = 103 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = d849ba8570b6ef9d +Key2 = f1405732aeb61f92 +Key3 = 73c8e51ff167f857 +Msg = fd03202d0bd109b6e4299c7390c1407cd21ffb110013e6381185dea8f8707de6 +Mac = 71070b17d05dabef +Result = F (4 - Key or Key1 changed) + +Count = 104 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 914cef7ab6d998dc +Key2 = a767abc18cf485e9 +Key3 = a2624ff20b2a408a +Msg = bc5ce4c0bf3ad1a93e5306c9d7dbb620dde8708efe84e78c2200f41a958cdef8 +Mac = 3cf4aaf3d337c9c8 +Result = F (3 - MAC changed) + +Count = 105 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 757f52e626eabce0 +Key2 = 700d91f14554bcb0 +Key3 = 548640d0dfaec2ab +Msg = 22a4cf581584346095783be0982744c6201ff040760f868ab63895058d1edb88 +Mac = b008b1150535ef11 +Result = F (1 - Message changed) + +Count = 106 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = d65d0e58d3133b34 +Key2 = 289e58704994a249 +Key3 = e3df20ae3d585e2f +Msg = 94c8414cbbec52e2d73bb8f02ef687c91432495c0c744666317d02e6d46706d2 +Mac = b1292e1c7074dcfc +Result = F (2 - Key or Key2 changed) + +Count = 107 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = d77a4989f4a17f2a +Key2 = 409d91d51fa4d045 +Key3 = 6bb652ea1526fd4f +Msg = 7a08ce579ae7af8004421cff72715e0b137da81f47d8f84da34c3ed53c32c0f6 +Mac = 8b3cb70477ca7ca8 +Result = F (4 - Key or Key1 changed) + +Count = 108 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = e670c17519d9c2f2 +Key2 = dcc8a132629b462f +Key3 = 58c1d52543ad570d +Msg = a6dbad96ad23ff61479df39b99f0673a09f2a7eaebbd34b95d05c4146fa989f2 +Mac = c470ec40599a0a11 +Result = F (3 - MAC changed) + +Count = 109 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 290d292a15b6268a +Key2 = 2638d9ad83ad1f34 +Key3 = a7d9ba62735dc2d3 +Msg = ef995cbfc49b0ebccdbd37d9f40a431c385d33d4b8234d7f0d6211eaddfb709a +Mac = 67ae62fb8142bd8b +Result = P + +Count = 110 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 4faba73bcd5b5dfe +Key2 = 1c97ea85207a97a7 +Key3 = 19eff116100dc82f +Msg = c48e53c6956432460584c7ee1577c1c38b7fae2ff288199be25bf64081154139 +Mac = d68a4558e95a67e4 +Result = F (2 - Key or Key2 changed) + +Count = 111 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = d37c3dbc2f68baba +Key2 = 918cb5e39237e016 +Key3 = f286b0739d38c4fb +Msg = 2533361761ac80578fa262a50462045e3ec6e4d5d25c6e99a5c4ccf75f5affc0 +Mac = c20f36e67732f864 +Result = P + +Count = 112 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = a0baa71c38d6d064 +Key2 = 8f58ba45cb494ab9 +Key3 = 853decc431f7b3cd +Msg = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fbf11b68519d573a8a +Mac = 4ba956b98a99d7bf +Result = F (4 - Key or Key1 changed) + +Count = 113 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = b69752407c68b6bf +Key2 = 8fceb05201ec4320 +Key3 = 2a755e372373ef26 +Msg = e884d65c87411584a56956d5b27ca9725b473c205b64cff09400671f5ee0473a +Mac = 9f3de5e8cddc374d +Result = F (3 - MAC changed) + +Count = 114 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 8c04e0f27f83b0ec +Key2 = 042cfb6883348fe6 +Key3 = 404f5dfe587ab591 +Msg = 8a34cd562b111fe04fa0bf5e004faedaef99d0bab9344d966c8b3847486e6f40 +Mac = 6c530215fb25015b +Result = F (1 - Message changed) + +Count = 115 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 429401ea49cd97b0 +Key2 = a8f1b6b63101cee0 +Key3 = 20bcd08c5d16e049 +Msg = 591d88123fc9a786b247e8d5ce155f136d6fe4084117c41f2056b67f9e3e1077 +Mac = 6c414640b424cf56 +Result = F (4 - Key or Key1 changed) + +Count = 116 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = c470255783b32f01 +Key2 = e3aed6705ba4291f +Key3 = 7319100e54f432d3 +Msg = 01acc3282fe41b62f95f5dbfb7e7bfef694c5fe34ca87d31abe7e7bbf887b48c +Mac = cd99df4814667454 +Result = F (3 - MAC changed) + +Count = 117 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 73c10b833e1043ab +Key2 = 18dcd343645d5207 +Key3 = 6426f7f88c3473c8 +Msg = 068e4a0b1a62dd64198f1b9ece814c2feeeee50ba814b70d7d42659952991b80 +Mac = 1fc90834b7dd090b +Result = F (2 - Key or Key2 changed) + +Count = 118 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 37eae98ff42afb25 +Key2 = f2231c028c29da9d +Key3 = ef3da8d0c77fbf45 +Msg = f266cec01c5fc08c0bdabc9537bd1aa2df9f2b8ffbe5cc94722a3bca8de529ea +Mac = b3809c8b0eb9dd8d +Result = P + +Count = 119 +Klen = 3 +Mlen = 32 +Tlen = 8 +Key1 = 1358fb67155e0145 +Key2 = d02c54a1206b5d7f +Key3 = 1c04ba46c74a5d49 +Msg = e38b4c3e7a82643beb3192426555ad9c9b2620d677373fc40c9ddbc4cd531347 +Mac = b000e2ea1ef48a8f +Result = F (1 - Message changed) + +Count = 120 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = f6b9a81067255b58 +Key2 = 927cfbc4cdec9285 +Key3 = dcd62345bfe03b92 +Msg = 246b66b10696adc45840 +Mac = b4 +Result = F (4 - Key or Key1 changed) + +Count = 121 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = fea186dc73d3807f +Key2 = b8fec7387a197962 +Key3 = 4c91abe60db64ff1 +Msg = 8ba298364af144a8d5f3 +Mac = a6 +Result = F (2 - Key or Key2 changed) + +Count = 122 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = f264da8607ea439e +Key2 = fdb9daa41fd34958 +Key3 = f85d6b859b9892bf +Msg = 402006f6b18dbd11dcd1 +Mac = 28 +Result = P + +Count = 123 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 191c461adc4f7f4f +Key2 = 75b932e68cb98cfd +Key3 = cb2943857a1c9438 +Msg = 391deef3a9a41394d14a +Mac = 3c +Result = F (3 - MAC changed) + +Count = 124 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = a2c2f713430ece92 +Key2 = df081ae9627a1351 +Key3 = c1ec469ba8c73b67 +Msg = 37a49535684637f67573 +Mac = 40 +Result = F (1 - Message changed) + +Count = 125 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 7b61dac238ba3e83 +Key2 = d05e9ed34fc410ce +Key3 = 98da194c100eeacb +Msg = da22ad9825c195d1e297 +Mac = 43 +Result = F (4 - Key or Key1 changed) + +Count = 126 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 13aec10d13fd37c7 +Key2 = 89198c3bcd38b951 +Key3 = ecf843cdef7397cb +Msg = b7625aa78d2961c0fee6 +Mac = f1 +Result = F (1 - Message changed) + +Count = 127 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = d94a68ec329d914a +Key2 = 394a8acea420e952 +Key3 = ec04c8cb8602aec8 +Msg = e043f30a405c41938914 +Mac = 6f +Result = F (2 - Key or Key2 changed) + +Count = 128 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = d5cb7579582fb6a8 +Key2 = e67f3ba11383d61f +Key3 = da370852e9b9c2a1 +Msg = 7d32f440151a7069fd73 +Mac = b7 +Result = F (3 - MAC changed) + +Count = 129 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 92402f6eb54526b3 +Key2 = 924515d92ad5a1d0 +Key3 = 9ead2adfb025f81a +Msg = fd44d8d0fea5cfdf3321 +Mac = 2f +Result = P + +Count = 130 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = a9daad97ad23fe61 +Key2 = 32e5988a37987a38 +Key3 = 31626d16a780c825 +Msg = d6cf17192f8ad745ab5b +Mac = 8f +Result = F (4 - Key or Key1 changed) + +Count = 131 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 52c457d9d5d5ab94 +Key2 = 9d3875ba6d75fdba +Key3 = 4fb91a863d15ce52 +Msg = 4effbf732e67af7203b3 +Mac = 04 +Result = F (3 - MAC changed) + +Count = 132 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 7304b65492fd0402 +Key2 = 62a4cb7c23708057 +Key3 = f2f7bf13839e01e5 +Msg = a630c0f362eef35b6a58 +Mac = aa +Result = P + +Count = 133 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 51b33425a1349792 +Key2 = dc5b8ca440eae6ad +Key3 = 70adf49dd0a8f119 +Msg = af246a8a810cca5e657b +Mac = 0b +Result = F (1 - Message changed) + +Count = 134 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = f22029ce51619e0d +Key2 = 9d51bcc2089785e0 +Key3 = 689d62621abab3b0 +Msg = a9c9fb632423d367b3eb +Mac = 0c +Result = F (2 - Key or Key2 changed) + +Count = 135 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 1ca226d0dc8c328a +Key2 = f18a9dc176621f51 +Key3 = 3d765d20e03b4cea +Msg = f9d9fb44919e47cdeaf8 +Mac = b0 +Result = F (3 - MAC changed) + +Count = 136 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = f3ce4992c851e3a8 +Key2 = 835ec1abef97f2c8 +Key3 = 5b92384f20dcc2ad +Msg = 9094935fcd7c389dd17b +Mac = 3c +Result = F (4 - Key or Key1 changed) + +Count = 137 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = bfd929cdd9c2089d +Key2 = 8e49988abcfbf458 +Key3 = da73d986894fce4c +Msg = 88018424fdb76c908bd6 +Mac = 94 +Result = F (2 - Key or Key2 changed) + +Count = 138 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = 57bf2ca4e3629797 +Key2 = ef7f675443402546 +Key3 = 6e4f924038f8bc92 +Msg = dd4f0a872f4b7089d697 +Mac = 5b +Result = F (1 - Message changed) + +Count = 139 +Klen = 3 +Mlen = 10 +Tlen = 1 +Key1 = ba86924908df08b3 +Key2 = 26b954ba52df2c98 +Key3 = bf38cb0e89b9f4cd +Msg = a682e6fd64df4b9f4fe8 +Mac = ea +Result = P + +Count = 140 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 52859849a4b6c1d5 +Key2 = 380e73c7aefb0168 +Key3 = c479fef80eb6260d +Msg = ee6857533675b5ed8d43 +Mac = 43fd25f696cb0693 +Result = F (1 - Message changed) + +Count = 141 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 97ae01315d13ec52 +Key2 = c7674cc1ab0bbab3 +Key3 = b68fb99797b33b79 +Msg = ce9127f649bfff849826 +Mac = 2dfe01d9bc07646b +Result = P + +Count = 142 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 2b257032b0d9b0b3 +Key2 = 49f7c10e8a9bcd37 +Key3 = 20f4fb4679106ddc +Msg = b2c62d03902c44253368 +Mac = 14c5ccf5f9433a0f +Result = F (4 - Key or Key1 changed) + +Count = 143 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 0b988c3d380e5b80 +Key2 = b86be99162029b54 +Key3 = e0bc9775838a58ea +Msg = 61ababff3763183c348d +Mac = 28a2de26aa6b4074 +Result = F (2 - Key or Key2 changed) + +Count = 144 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 26e9abbf201fe5b9 +Key2 = 7062a82f800d5183 +Key3 = cd45e654bf5d205e +Msg = 020683e1f0392f4cac54 +Mac = 6f1522d3c8186217 +Result = F (3 - MAC changed) + +Count = 145 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 3443f4016dadcd86 +Key2 = 235dec80323e5838 +Key3 = fd583285e6efbc51 +Msg = e64eeb89828b4297601a +Mac = 5575a40dba5bc4c6 +Result = F (3 - MAC changed) + +Count = 146 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 76c7616785916470 +Key2 = 5b3d1f10e5252fda +Key3 = 75a2d632a46ea18c +Msg = ac7d701597f0ba879055 +Mac = 06b98e161e6a6754 +Result = P + +Count = 147 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = f12367b568a758b5 +Key2 = 7b2f9770924f2c0d +Key3 = 1f8ad9e9b97a088a +Msg = b99de8168e8c13ea4aef +Mac = db534a059f930ee0 +Result = F (2 - Key or Key2 changed) + +Count = 148 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = f1adb67986923d8c +Key2 = 02671957dcf75808 +Key3 = 52732ae970467019 +Msg = f759c3033d4ed34948d7 +Mac = 2d9caabf50999ac6 +Result = F (4 - Key or Key1 changed) + +Count = 149 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 792f9770924f2c0d +Key2 = 1f8ad9e9b97a088a +Key3 = b99de9168f8c13ea +Msg = 8bae64015d62f68565d1 +Mac = a42f89527f5cb219 +Result = F (1 - Message changed) + +Count = 150 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 31ec790d4a8a131c +Key2 = 562c8cdc07e331d3 +Key3 = f4a7467043924c4f +Msg = 1798286c37c1504fc0d7 +Mac = f0d6e2f7edce6349 +Result = F (2 - Key or Key2 changed) + +Count = 151 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = adb692e376a12585 +Key2 = 8c8c4362ea97f810 +Key3 = 528f204c19f21a31 +Msg = 6543e675d34639a7f7eb +Mac = fac96e6804526535 +Result = F (4 - Key or Key1 changed) + +Count = 152 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 62984a64ec7c4a92 +Key2 = feda64dfd9a24f9b +Key3 = cbb04f7a1f26df31 +Msg = adb555fd5f5c6bdd9c4e +Mac = e8dee8714b285a00 +Result = F (3 - MAC changed) + +Count = 153 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = ef0d58b55ddae95d +Key2 = 80e07ca4aebcfd34 +Key3 = bf947ff4ab2904e5 +Msg = 1fe87a2f431f3718665a +Mac = 44a869aee76d79db +Result = P + +Count = 154 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = aef4ceb55e3d37fe +Key2 = bc0bb9d05bad972c +Key3 = e0a29b2c7940ce9b +Msg = 78ad5f3718acf9e8cc7c +Mac = dcc1d44200caf6f7 +Result = F (1 - Message changed) + +Count = 155 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = a4403438f8fb254f +Key2 = bac752cd83a170b5 +Key3 = 6bf71654f1854589 +Msg = 349566b6716e5f831d69 +Mac = 7c08cc43ff4d8e07 +Result = F (1 - Message changed) + +Count = 156 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 2fc7f4c1ce042f73 +Key2 = 8346bf7a80b38640 +Key3 = 2ff74abfc197a732 +Msg = 43a32b8ab9b7ce4bbd1b +Mac = 8000a2612215014a +Result = P + +Count = 157 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = c40ddc9e29ce041a +Key2 = 583d6bc4c1a2abf2 +Key3 = 9b018fd5a4084a64 +Msg = 2286a1eddd80737a724c +Mac = 0ff14761c982f890 +Result = F (3 - MAC changed) + +Count = 158 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = bc327a0bcb2575df +Key2 = 6b9483e6e0755d2a +Key3 = 622cdc5b2916ab89 +Msg = e1be89af98ffd7d9257a +Mac = d6f4c8d96b3e2180 +Result = F (4 - Key or Key1 changed) + +Count = 159 +Klen = 3 +Mlen = 10 +Tlen = 8 +Key1 = 9e517cd616a48ada +Key2 = 6d266192d5387a97 +Key3 = 8a081fda97c86b94 +Msg = 9e9fb0b2b77be6eeaae8 +Mac = ba0b73fbffc0ab0b +Result = F (2 - Key or Key2 changed) + +Count = 160 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = e0b9a826a85efe94 +Key2 = 4f615bce7cc1ba68 +Key3 = 3bb56d3d9816103e +Msg = cfe9ee956cb1f5a60aa6ec79a3e454224b456879 +Mac = 64 +Result = F (3 - MAC changed) + +Count = 161 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 1e08a794a175b69e +Key2 = f7d3ab46aeb9073e +Key3 = 3e7cf8cea19d0891 +Msg = eb4f5b04517ee93e2c900e01948ac81ca56b2b26 +Mac = 79 +Result = F (4 - Key or Key1 changed) + +Count = 162 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 8f26700dc140570b +Key2 = 8325e3a889c823ad +Key3 = 6b048aa73decf83b +Msg = cefb55151933a488e2b3d421dea9720727188106 +Mac = 85 +Result = P + +Count = 163 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 3443f4016dadcd86 +Key2 = 255dec80323e5838 +Key3 = fd583285e6efbc51 +Msg = e64eeb89828b4297601a5b3fcde60075fc2424ae +Mac = c0 +Result = F (2 - Key or Key2 changed) + +Count = 164 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 91a401cbb6460b16 +Key2 = 85438675f15b6e73 +Key3 = b09140318a767038 +Msg = 8c65cde13149d9d54a5bccc17747f1d5f3e807e3 +Mac = 56 +Result = F (1 - Message changed) + +Count = 165 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = b78a16fb9b075d3b +Key2 = dcabbf7a07150261 +Key3 = f7644a01d5dcea46 +Msg = abe2fd996bb6804ed3286c057df9cea6836a2dad +Mac = 09 +Result = F (4 - Key or Key1 changed) + +Count = 166 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = ce8a467534cd679e +Key2 = cb9ee6fb70a42f4f +Key3 = 16c1e5c1459e4ac8 +Msg = 3c56ccfbe92023109983e740d6a53488b813ee87 +Mac = c8 +Result = F (1 - Message changed) + +Count = 167 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 401f0de0efd6dfa8 +Key2 = 16ae7c3bbc6e5b86 +Key3 = 4ffebf790815f1d0 +Msg = 9052d5e22e6712fab88e8dfaa928b6e015ca589c +Mac = 61 +Result = P + +Count = 168 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = d357bf5bef2cfba7 +Key2 = b757d3abf49b4ac2 +Key3 = 16388051da8a04a7 +Msg = b04e8f6d20924be8e4e2c6767f87b74377bdf90c +Mac = 72 +Result = F (2 - Key or Key2 changed) + +Count = 169 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = f8ea68aba1bcd9e6 +Key2 = 4abaa4260d864573 +Key3 = a49840ab737af7b0 +Msg = 1fc99e586f87932445930a300eb28191d9c6215b +Mac = 19 +Result = F (3 - MAC changed) + +Count = 170 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 94ec086d8c0110cd +Key2 = 4ea11f327f70c245 +Key3 = c8d07adf7c7c5eb9 +Msg = 812dbc453a1fda59f73aceea3bc84d2c7a437dfc +Mac = b2 +Result = F (2 - Key or Key2 changed) + +Count = 171 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 9d575d582a9723c1 +Key2 = 294af47a54b051fe +Key3 = 5131bff85bf12608 +Msg = 266e5305b96f497a956ae82b20367ebac0b14215 +Mac = a9 +Result = F (1 - Message changed) + +Count = 172 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 913d800ecd0dc762 +Key2 = 7f6ec476b6b07c15 +Key3 = 973262ab7c83b634 +Msg = 4670a266bebcdf95c62d36cda33d50e6650fcdcd +Mac = 4f +Result = P + +Count = 173 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = b97ffe79d068ece5 +Key2 = 4a75fe2f67dae392 +Key3 = 45a4d9f17a9d70f8 +Msg = b53017500c100dea0511845597214484fc5f7f34 +Mac = 6d +Result = F (3 - MAC changed) + +Count = 174 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 7e1af10bcd86c283 +Key2 = 51cd37540e19021a +Key3 = 988fd3c7250e2a6d +Msg = da1919d4a2a7fcc34c88fb2065e52bf9dbc50731 +Mac = 22 +Result = F (4 - Key or Key1 changed) + +Count = 175 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 8c0dc16eb9c80775 +Key2 = 6eeff20d3d5d5223 +Key3 = 258076b313611c1c +Msg = b212b857f70c9f63d0c9d2ccd253c28d1534631f +Mac = 2e +Result = F (1 - Message changed) + +Count = 176 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 92c29eb0bf3e73a4 +Key2 = c6ecfbe6cd49bf4f +Key3 = ef19d9d06d7a5e7f +Msg = 969304e651ca62039088f8123085ac3263796b67 +Mac = 57 +Result = F (2 - Key or Key2 changed) + +Count = 177 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = a4432f52975e4316 +Key2 = 7f2086da04fddf4f +Key3 = 8302139e79684329 +Msg = 5c9bcd197ea59e1b58b3da707b253491cc5a5ef8 +Mac = ea +Result = P + +Count = 178 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 5ae0b6d6c2855b7a +Key2 = ec675d3e73bfd685 +Key3 = d3406b868fd3ae0e +Msg = 89b9ecfef6f10e81f7956dbc7ca4a335047535a8 +Mac = 70 +Result = F (4 - Key or Key1 changed) + +Count = 179 +Klen = 3 +Mlen = 20 +Tlen = 1 +Key1 = 8f7f85649d5e08a4 +Key2 = ceda75687308e07a +Key3 = 9215c4c19bdc0d46 +Msg = e53101e6eabcda32c13d7b1dd1d88e7c2ca3ddc2 +Mac = 14 +Result = F (3 - MAC changed) + +Count = 180 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 7061b5f46b98d394 +Key2 = 58c2ce3807623475 +Key3 = 0df8e3c432da8a37 +Msg = 1086953d352e94a51a6d4c59a2295e8fff5b311e +Mac = 554d4df88228eba3 +Result = P + +Count = 181 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 347a25a1ec433b52 +Key2 = ec75d97046152c10 +Key3 = 86b937b6ad1ccbf8 +Msg = 4fe6bd43c28143ea5d40919cb5330a7e674f5bd8 +Mac = 3d0d841895fb7c65 +Result = F (1 - Message changed) + +Count = 182 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = b3701aa7da61512c +Key2 = 46dacba40740e3c1 +Key3 = 8f79a4dcadbc315e +Msg = 4612fb4586d7518d0d648894347ae7d49d043f29 +Mac = e5dd4392afbeabe7 +Result = F (3 - MAC changed) + +Count = 183 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = b5b57acb2c7fd6cb +Key2 = 70b02c9d8651c889 +Key3 = 07f485f7b00e45d9 +Msg = 9011231ec382ecaaae57f34de1ac6bbb50741014 +Mac = d34581ad5a3e9e57 +Result = F (2 - Key or Key2 changed) + +Count = 184 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 88985bdfd9852604 +Key2 = f7f829aec8a208b3 +Key3 = d5ba012ce6754554 +Msg = 6cad7f3b9f196839bbc5a7f755c09aa8e17c83d9 +Mac = fc7c93552aa14ca2 +Result = F (4 - Key or Key1 changed) + +Count = 185 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = cd0815194319d552 +Key2 = 346bb634027668d9 +Key3 = c17f2a26257afbad +Msg = e31b3d97ba6ee6f2e18f084215ca0a5ca0d816d7 +Mac = af5772396bb63d20 +Result = F (1 - Message changed) + +Count = 186 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 236e5201dfc1081a +Key2 = c81526bc85c7a2ce +Key3 = ab91d0aee0d68931 +Msg = 1f36b9cbf3d4d4dfcc4ba7fafa7c229f0a9253f4 +Mac = 27586cf856a41e82 +Result = P + +Count = 187 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 2e01198faeb6986e +Key2 = 7cb564801f15bc5d +Key3 = f2d3ef0d4fec61c1 +Msg = 27c8c90c9e46e14b8cbb0b7559bb166d65f58aeb +Mac = eaa7b4a171e449ef +Result = F (4 - Key or Key1 changed) + +Count = 188 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = df575b851331b016 +Key2 = 33ec7326e9ef31e5 +Key3 = 1686c1ec8a3ea16d +Msg = 1e4e01d38ff65d05646d544b52a6df49b897eacc +Mac = 45789bd32147c0ae +Result = F (2 - Key or Key2 changed) + +Count = 189 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 43b68c1f29ef5b94 +Key2 = a7dfa1cbe9ea3df1 +Key3 = 83d3c286e973ada1 +Msg = 0ca9b0f6465db0e101f8c14b2e73859d9c355b0a +Mac = da439a51157ff0d5 +Result = F (3 - MAC changed) + +Count = 190 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = bf91d679268c85ce +Key2 = 46b9f7bf4aa1a2c2 +Key3 = f7fd15fda2cd6408 +Msg = 0c2933e39d7e601ee6f2519eaf01294853664262 +Mac = 455cd46d3b452a55 +Result = F (3 - MAC changed) + +Count = 191 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 0dad9d451f890b38 +Key2 = 3416e3c240a16ee6 +Key3 = 5b80d6aefd4ab5a4 +Msg = b6e1de9abef7525c5dabbdc85746958781d50139 +Mac = 3445a869cca839fb +Result = F (2 - Key or Key2 changed) + +Count = 192 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 96858f8f2ab56df2 +Key2 = 5edc3b04b94ca7cd +Key3 = bf10614ce0491645 +Msg = ec9aa18b3e7da99dcbd7de7617a79130abe3348a +Mac = c744a1392fc656c2 +Result = F (4 - Key or Key1 changed) + +Count = 193 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 46ad6ebad9644a67 +Key2 = da684aa48f23d619 +Key3 = 43a2316b40a46e25 +Msg = cf97c2abe3d0fc89e05538b50147a3f405391219 +Mac = 7ac08967edc5730b +Result = P + +Count = 194 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 68647694efb32023 +Key2 = 0d2938c8fe1a4057 +Key3 = f479f16e7552942f +Msg = 33a9c750bb532d2d37ec86fa851aeb3cad1eaad8 +Mac = 3873ae02210eb5fc +Result = F (1 - Message changed) + +Count = 195 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 58d62fd92af7437f +Key2 = 89dfb51fc807cd6d +Key3 = 024fd04f40d5d0e3 +Msg = cc293c9e1780b401d2e7fceef6f69edcf0f70b86 +Mac = 6574bfceaf04b4e1 +Result = F (1 - Message changed) + +Count = 196 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 4b377f98df0b7598 +Key2 = bf73f4c2cb074001 +Key3 = dc9857f47fe6101f +Msg = 9ba5dbe7a8ecfbedadd7889cd7f1ae073e01ee3b +Mac = aaaeb7223578bbad +Result = F (4 - Key or Key1 changed) + +Count = 197 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = 91c8851934cdecc2 +Key2 = 582562aef1205e32 +Key3 = a12a70eacbad310e +Msg = aa390a0ae33751b0bd8de5723df91d999aa70358 +Mac = 67f76912ed61eaab +Result = P + +Count = 198 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = dcc2bacbea0dcd10 +Key2 = c18ca45ed57f8f97 +Key3 = 5d58157a677f1951 +Msg = a7573e5b7dd7f4ce9e4480f603c14145a27f7c7a +Mac = 2b6af968464ac63f +Result = F (3 - MAC changed) + +Count = 199 +Klen = 3 +Mlen = 20 +Tlen = 8 +Key1 = fe6d49702f044f40 +Key2 = 33321613da401004 +Key3 = 8c3438f74cc2680d +Msg = b15a118b3132c20c31e6c9d09acdee0e15fcc59d +Mac = 9f28413a00da00ab +Result = F (2 - Key or Key2 changed) diff --git a/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt b/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt index 434fab4a4b..ffa05c0c56 100644 --- a/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt +++ b/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt @@ -1,2165 +1,2165 @@ -# CAVS 11.0 -# CMACVer information -# Algorithms tested:Alg = AES KeySize = 128 Mode = Verify -# Generated on Tue Mar 15 08:40:37 2011 - - -Count = 0 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 27b5686c79b3d242f96d3892c6135b26 -Msg = 00 -Mac = c98d11822b9b4d7a -Result = F (3 - MAC changed) - -Count = 1 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = b4542a22baa348ee2d11ef62d44cebab -Msg = 00 -Mac = f7a2a3f519fc462f -Result = F (4 - Key or Key1 changed) - -Count = 2 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 7256e344f68b3e7f9dd6e04c5c65135c -Msg = 00 -Mac = d4d7fcc5f979230f -Result = P - -Count = 3 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 7a2116595c5cf6482199d3312498006d -Msg = 00 -Mac = c3c4fa28709060b0 -Result = F (2 - Key or Key2 changed) - -Count = 4 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 0341551d6c7e7c57f678068f0b41d1fe -Msg = 00 -Mac = 821030d4b7889fcf -Result = F (1 - MAC changed - for 0-len msg) - -Count = 5 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = b67ba2aa4e9ea9871c3def87e2dd77f4 -Msg = 00 -Mac = ea896182698ac145 -Result = F (4 - Key or Key1 changed) - -Count = 6 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 0091d39f3478d2c59bf874b96db9ce0f -Msg = 00 -Mac = fb12c5971b0f2f18 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 7 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 46a2e6bd3fd5336abf02eace3cd1e1f6 -Msg = 00 -Mac = 9c6b46ef046ae1d1 -Result = P - -Count = 8 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 4b0fbd5e6f9298e5ced5ebdc60fc18a7 -Msg = 00 -Mac = 221857badcbcd2be -Result = F (2 - Key or Key2 changed) - -Count = 9 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = fb20547da671acd4c6df37f6568a6428 -Msg = 00 -Mac = ba0c9bfd3d9c0c95 -Result = F (3 - MAC changed) - -Count = 10 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = b787def50aaf446bf15c562434844562 -Msg = 00 -Mac = ba60bdae64068330 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 11 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 67d77f50727c7cd5b38e0b175a888c88 -Msg = 00 -Mac = 555923e6b5fbc504 -Result = P - -Count = 12 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 6f552ef7d309bb98597b91cecc21e158 -Msg = 00 -Mac = c2aa402c0443dfbd -Result = F (3 - MAC changed) - -Count = 13 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 411871267919a145532cc401e753ebff -Msg = 00 -Mac = 167a31913228f45f -Result = F (4 - Key or Key1 changed) - -Count = 14 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = abfe32efdf0464cb2eaafca8eac30d9b -Msg = 00 -Mac = 8edbc729b1923e10 -Result = F (2 - Key or Key2 changed) - -Count = 15 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 85504d59a12f3e17edfb0b6337d4a081 -Msg = 00 -Mac = 9045fd77cb26dcb2 -Result = F (2 - Key or Key2 changed) - -Count = 16 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 55f7565826b0e2ccc1368f4de32022de -Msg = 00 -Mac = f82395416a8dc209 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 17 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = 43c8f984390debb0f26c6b9c2df8518c -Msg = 00 -Mac = b5d732086bf8feab -Result = F (4 - Key or Key1 changed) - -Count = 18 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = da288d2014616f16a2abf5923dea49ad -Msg = 00 -Mac = e03b67b53fc7863f -Result = P - -Count = 19 -Klen = 16 -Mlen = 0 -Tlen = 8 -Key = e2f962d076df051c2d291b47a902ea0c -Msg = 00 -Mac = df1456a7edeb4e42 -Result = F (3 - MAC changed) - -Count = 20 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 191b53e0c7d90161e5e2014e9b8aea31 -Msg = 00 -Mac = 1e210cff3c90bd2e2a27a78ef7662f61 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 21 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 54666bdf6db300ee10982d14dac828bc -Msg = 00 -Mac = 9fef67209b8da28049b80efe98f85f13 -Result = F (3 - MAC changed) - -Count = 22 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 9a143c21cc6c9528b9ddd7e4405682e1 -Msg = 00 -Mac = 1c3c3b6d1d86ac5787234f8f6d707acc -Result = F (4 - Key or Key1 changed) - -Count = 23 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 802047ee1309e548ae81e93a17bff9e7 -Msg = 00 -Mac = 1472aecaa0a09e45893a14090ed9a17f -Result = P - -Count = 24 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = ab79ce74c0959aea0fd0b28ea5d0afe2 -Msg = 00 -Mac = fde8a95536cc334f7fc8881a187afc61 -Result = F (2 - Key or Key2 changed) - -Count = 25 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 644ac6fdc1e713ecb7ff1e0bd5729a57 -Msg = 00 -Mac = 95a93bb50703521e6c1a8be1aab6a646 -Result = F (3 - MAC changed) - -Count = 26 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = b4571e56f66a857daffbdc99370ceddd -Msg = 00 -Mac = d2742ea62f1d6513c4eb0e533922f251 -Result = F (2 - Key or Key2 changed) - -Count = 27 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = abff2b097d688293701ff2c49ba48eb3 -Msg = 00 -Mac = 17e724f66d4a9ef5dfc0cf903f8ff04a -Result = F (4 - Key or Key1 changed) - -Count = 28 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 9d45f6d97d1573de3cb3488befaf5b7f -Msg = 00 -Mac = 96ec3cf234d6704483a93885bd67e6dc -Result = P - -Count = 29 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 00d385629e5df815a5300e6635351934 -Msg = 00 -Mac = cb23bb449ac26e2186b02f7428fa022b -Result = F (1 - MAC changed - for 0-len msg) - -Count = 30 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 2f9109e7eea21b2615c81c03182ce603 -Msg = 00 -Mac = 4532211f48124a9eacd795ea4313adaf -Result = F (4 - Key or Key1 changed) - -Count = 31 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 9f3830f5cd40a2396b6093b358cef1e9 -Msg = 00 -Mac = f5ea59ec909a8ec2d8b11f5f276201fd -Result = F (3 - MAC changed) - -Count = 32 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 17378e17c41586b88523a6b6af738dc4 -Msg = 00 -Mac = 40cc8b388be6789aca584659acc7aa06 -Result = P - -Count = 33 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 064e8c88a0a0766186d75867b5ca3acd -Msg = 00 -Mac = b2f94222a68fcf803868b00404ad170f -Result = F (1 - MAC changed - for 0-len msg) - -Count = 34 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 1e39f1cba97dac4e4d4f3bce7fda72e5 -Msg = 00 -Mac = 60763815c1075c31078a9b44fe4b8427 -Result = F (2 - Key or Key2 changed) - -Count = 35 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 06f0e4618e0ea8fa5443b50ea005b672 -Msg = 00 -Mac = 295c6cd08b1d668d9fa85ef851b1e029 -Result = P - -Count = 36 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 648d77b57770b67ecda1ce7951eaaeea -Msg = 00 -Mac = 2f3fbc6edf5827fce440b9a7ff8535b4 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 37 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 6f3938932b5c1280311e892280d8a822 -Msg = 00 -Mac = df02edfb316350c81dbee385d6e1d8e4 -Result = F (3 - MAC changed) - -Count = 38 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = f909903451d1f9f45ffcb93a407ffb50 -Msg = 00 -Mac = d176620722c5327270ef30956d7ac02f -Result = F (2 - Key or Key2 changed) - -Count = 39 -Klen = 16 -Mlen = 0 -Tlen = 16 -Key = 181d92c7df1ebb0924719e066e08b95e -Msg = 00 -Mac = 144f688fa0d29faf787c48cd0765eecd -Result = F (4 - Key or Key1 changed) - -Count = 40 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 0c5b763b1e97b4f4dfc7059e4896ba58 -Msg = a0b3c6944b35f7208dfb40b4c4ba134a14dac928b679950793b3b6751221f178 -Mac = d922ea85b3992a67 -Result = F (3 - MAC changed) - -Count = 41 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 461d7d629778c8b05a688bee4fc01e9f -Msg = 07571a6c9bcb6f97d626796bc74e551d1c45cce38afed761706f6264b7e751d3 -Mac = 794b224a85396a27 -Result = P - -Count = 42 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = b91c6b09bf5a0487a9b5ea2fe0c1f3d2 -Msg = d31fd388e97727ba0a35d34ae05d9980e5974f6b3d86e2d4dd569b70f394a159 -Mac = 2665ff2785bcb606 -Result = F (1 - Message changed) - -Count = 43 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 0737836cf771e842a70f3eeed7206799 -Msg = fce631a9eb130178018ca88cec966ae53ecc83a51d0a73173c8a9af10b4d04d6 -Mac = 1eee822e37dd1e84 -Result = F (2 - Key or Key2 changed) - -Count = 44 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 120132c315bfc9c4fb93023f5d3500d7 -Msg = c2576ed3189eff3205f5e01dd8fe7c64f12dc73c807c22918f607f9e43fcc5ba -Mac = ddca15c8b5a80cb2 -Result = F (4 - Key or Key1 changed) - -Count = 45 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 5363bd7d867a9f9f0592dd9940a791e8 -Msg = f34e86b8803d386573b81045df945df8319a93b613de4c41904c8e1879844cee -Mac = 109dd7c920ebbf41 -Result = F (3 - MAC changed) - -Count = 46 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 3fa1c7cffaa167557b250634e8052fa0 -Msg = 4255f8af18df7237e0abe98421aec9634443561752d893aaffe76380e829ef32 -Mac = 0eceab8d28dd4a2a -Result = F (2 - Key or Key2 changed) - -Count = 47 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 6583a4ff27b6e109046d11b977c8293d -Msg = b63be320f92e01260fba37312224494a2764dfc928287c75dc1cafee7b698d48 -Mac = fa0cced22e896b40 -Result = F (1 - Message changed) - -Count = 48 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 5949378fd3135dd02ee1929014000411 -Msg = 65c16f4e66b10c7c153be7ba2dbe3a6d4eed3b04fec44188edc229747d52f8c8 -Mac = 9ef023345848680b -Result = F (4 - Key or Key1 changed) - -Count = 49 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 0e80fa889b1d96a0d23d236d4d642a27 -Msg = f6f094e46cdb2e45fe49b18aff1427ebdac9710fa7f47f75fc9ec7140613ef3e -Mac = a09774009934c9d4 -Result = P - -Count = 50 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 1f88dfd4f5c52c22b1db47f9f4fb6e2f -Msg = de433ebd1cdabeac46b94cc00d984f172923535ca8fdfeeb860546357dd8e266 -Mac = bb17b3983faee0db -Result = P - -Count = 51 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = ab0ab9e79ee53a6946a31ea807258dbb -Msg = 89ddbb042aa2aea5207b312c9831fb48138aca90626ef7c5ce474d5797ae1b2b -Mac = 72f316d5bfcfcf6f -Result = F (4 - Key or Key1 changed) - -Count = 52 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 1eb19542a0064564e096e5d7d60acaa6 -Msg = ca25504f3f5559aa0e88199ce1551c9240b5c76f55b83bdbf2777cded54ad3af -Mac = d936b1fca0a96aec -Result = F (3 - MAC changed) - -Count = 53 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 33f11aa36d8ab0fc53486839a576b31e -Msg = a58524e37c2504468f77a9c21b0e6d1a6b5e06fa051d5b8025ef97fa69417cf2 -Mac = fd64f7cb283adce1 -Result = F (1 - Message changed) - -Count = 54 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = a7b81d8245129aa451dcb7229de415e5 -Msg = 2b2ec02aba10aee056443cf90585caa2510b3b835454a99f1324567b0dcbe682 -Mac = f4cd48f32c9dc66b -Result = F (2 - Key or Key2 changed) - -Count = 55 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 3c1baf0d915e5aec92bb62babad0ba2c -Msg = f8f2424c2dc0d0f3821af7244038da0832c547be4ff0850b98c04d4d44a716b1 -Mac = e17ea6862129d6b9 -Result = P - -Count = 56 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = 943a49073db6ae94a88844ed895f8fd9 -Msg = 8a15e5be479d3a39a459ca7b50457472cbf44f6a8324ee3d4096e2c3bf1d8190 -Mac = adcce0ea2c8b11d9 -Result = F (1 - Message changed) - -Count = 57 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = ebf8935f53dfb3bd40453c31f627c73e -Msg = 7edddb03d861dc9796f8e069bde434681620f604db436f34b7a6a3beeec925b3 -Mac = e8ea88729d49bea4 -Result = F (4 - Key or Key1 changed) - -Count = 58 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = f18e8feed77d1b80c31483fe69073d56 -Msg = 37c6206e23163c39a13f19de48cc25dc26e6f83cb376e8d2048ad7c141fa503d -Mac = 0d4f5cdb2a49b471 -Result = F (3 - MAC changed) - -Count = 59 -Klen = 16 -Mlen = 32 -Tlen = 8 -Key = b4e41c7bfb8fcaa5236f656185c1496b -Msg = 32758ae47884fcef766dd1fee1a7f55ca6f6691574e2ea097a68cd4072ef2e7d -Mac = bad08badb66c8e5f -Result = F (2 - Key or Key2 changed) - -Count = 60 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 708484fba04972b815256c5dab12d5d4 -Msg = 97751b4893a83cfe6b760e10da795682e9668749c09036f9bfadce9dcbdd85e6 -Mac = fa74b33267c5ffeca75e5e16978bd7b0 -Result = F (1 - Message changed) - -Count = 61 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = d0df1bdf1df6203241722fb9c9c1cf74 -Msg = 0e41361ebfbe4e6580fb5751e58e98de8ee5d9849fe875026fdab15a85804c1d -Mac = de4992c9d33659620cc203848e42a279 -Result = F (3 - MAC changed) - -Count = 62 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 7c0b7db9811f10d00e476c7a0d92f6e0 -Msg = 1ee0ec466d46fd849b40c066b4fbbd22a20a4d80a008ac9af17e4fdfd106785e -Mac = baecdc91e9a1fc3572adf1e4232ae285 -Result = P - -Count = 63 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 7b4c800f5071521119e4cc6deee8729f -Msg = 775946f3014523b6ea37804585cadd35e74e9382ebc1022579fbebe407281b6e -Mac = 2f6697f5d067aecdb3ff5a09d9169b3b -Result = F (2 - Key or Key2 changed) - -Count = 64 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 7618d222630138cc14246e8fddcf98cf -Msg = 432e3575a966958434da38dda3606f1f69adeaca536a7bf66c8b1e451edc3716 -Mac = d7d78aac615ffc1bb32dfea41f2b8771 -Result = F (4 - Key or Key1 changed) - -Count = 65 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = c8804fef18ef263c010c8a205e14516e -Msg = f2d23bc605181e3894f61fa63d61ed4a610123ab7d3531c0b7579a58b74161ba -Mac = bfe5e2c10a5cecccd3de2529f340cf6b -Result = F (1 - Message changed) - -Count = 66 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = f98ac86ecb742c188852980b5150d100 -Msg = 4e6fd4fa7669ce9552154bd796644961b51067dc02303430150aacf671280031 -Mac = 73df5f4d3ab9240d4fb2be775188adc0 -Result = F (3 - MAC changed) - -Count = 67 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 638d7d95ff5f57571261e23ffa081189 -Msg = 5f5bc4e32764bb00085667b7f1b15433f09c1f6fa48689f8f50dcaf5021f2864 -Mac = 96b270629b2bfbf721f1a70eccf9abe0 -Result = P - -Count = 68 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = a5a20d8139472a4cb38993c5711ac2ca -Msg = 73e1e75538f9a63e49a068189e3b0a1a1e65ca5d1295589bdafa3136deaa287c -Mac = 320647d53ccdf2335a9c9a3452c1cee5 -Result = F (2 - Key or Key2 changed) - -Count = 69 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 57656be54860414e8a62223381ca4405 -Msg = 3447e82ecec6c8b6fe1e44ed91f933e4a70c431911eb86eefe222d5ad78193df -Mac = 47c6b5a28d723129648aef418b74daa8 -Result = F (4 - Key or Key1 changed) - -Count = 70 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = e7b665600a2aa413e117c53816cbed34 -Msg = 5e4d49ab796025157add6d42258b9c506d9ce82bdd85c604360db0ff5aa4262c -Mac = e741166cfa2a58003dcae357d7a199b8 -Result = F (2 - Key or Key2 changed) - -Count = 71 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 693cbb46bc8366086ec7cd7776f2c563 -Msg = 5a908ae85ff721ffc5096aeeda5ee83bddcf639e7be68d109394e5253c22dc9b -Mac = 9d56b03ef83082f601a9cc8730b0de42 -Result = F (1 - Message changed) - -Count = 72 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = b4190e3462e07fca26496adcb877724f -Msg = 02097035a312cb02ea7f09fc1accc230a205e4a208e64a8f204291f581a12756 -Mac = eb9604ec71aac0cacb63e0b369ae7664 -Result = F (3 - MAC changed) - -Count = 73 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 4ae06c3b2940819e58eb24122a2988c9 -Msg = a2e7be3314238d7e4f604e134790bb15a87c09356c091b1aacb9f605b67475b5 -Mac = 14b4507ae4b50cfe4989b544bede756c -Result = F (4 - Key or Key1 changed) - -Count = 74 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 8d560de2e310ea69389221ce2e850625 -Msg = 04d9db45e4df19db757b9b95c25be43e822b8372ed148d49ce824a36da2b2f2e -Mac = 647f2874a083e82fa804b6c58c7b5c90 -Result = P - -Count = 75 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 0e1a79c5d734118c19eaba700f5da238 -Msg = 026470d57dad9893dc037b80978bf70c2e552fe46c8fe8c3ebf8338bda984d94 -Mac = b936ff3bb8afb9e42351a2a3ad49d70a -Result = F (1 - Message changed) - -Count = 76 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = c88b1bc0050e19780ab53efbea175634 -Msg = 7207aa8fa87283f1f57019bf1c89645ff8fc36ab1102704e6d577671a9f7e098 -Mac = c1dbd79e31c3b0bb824f16f735ccdfe6 -Result = F (2 - Key or Key2 changed) - -Count = 77 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = d87df10a53eb3ea24c003d2a65e44921 -Msg = fedd5813146a8c2af398d6066956829833b75e44b6e010e4f025ac0fad6f869b -Mac = 9dd7cbb34445bfb351d01e8cdb21d695 -Result = F (4 - Key or Key1 changed) - -Count = 78 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 4d436a4a5c02b22ad49548b97216f277 -Msg = 2d73204f0b2d35806a8227206922ac9c18eff6ebddc73809179d67a702cf3e21 -Mac = d2654d9bd6396075296cbe918d90670f -Result = F (3 - MAC changed) - -Count = 79 -Klen = 16 -Mlen = 32 -Tlen = 16 -Key = 8af7b74e35eb38f4086343bc329ab465 -Msg = ada1fa439c653d0cc88c0d129ba252e86c7d20a3087be93e920bf13d8e6f0391 -Mac = 0fc9b177c874ea909b6beb1db1b802b4 -Result = P - -Count = 80 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 91ce6c87860aa84053f42e1abc16f489 -Msg = 4c287bc16196698d762d5fb428e801975fdaa29026b7b78dba968bfee0f534f27cfec57c6009c55c6261e0dbb14bddf76944d0c0648b910254df6c240e8a1a50 -Mac = c1ce12f51aa823d0 -Result = F (3 - MAC changed) - -Count = 81 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = b7b774e5c9e2f6926660c48b8df52354 -Msg = 937273c7355e7b88a630d15be875234cacaa44e815f31997bf10b52c008cc3bb6d3724aaa0d7da0b391b252923d0eb6119575d346857d89af6af099883af5514 -Mac = ff845eb2d77aa5a7 -Result = F (4 - Key or Key1 changed) - -Count = 82 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = d7572ed0e37261efa02f8c83e695efdc -Msg = 85a327b0c7a31a4116e7fae0c0971e1578ab6fbdf90124b9ecacd0e70c909f51882cdca5a8b6b7e6b46d4660122bc9e1ae3932269f68e594075dbc293a2d4eb1 -Mac = b8b3b7526419e069 -Result = P - -Count = 83 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 259129eb760f8a770410c160e4e13a6b -Msg = 77d9c306aa257379053cf1f2043c388a301dac2a9e2bb89eb8bab6eb3f150fe391b7a3f628be6b4b649c5c108a108f0e0c55a0800b9954251ab07e94450a23d0 -Mac = f9376f11cbec0ec0 -Result = F (2 - Key or Key2 changed) - -Count = 84 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 6ccd61ed20f16ca7a78192f5b6ab5528 -Msg = 9211231ec382ecaaae57f34de1ac6bbb50741014a978160ce59c60491e64f30da0b8aa1442e42bc0f7e31973a0dd8c3c24eebeb7c329072ea7dd0b04bc163254 -Mac = 94c275e6a4675d8a -Result = F (1 - Message changed) - -Count = 85 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 1cdc44c40efc3c0ed6fb84b0c2f78aec -Msg = 818c636772036761af037c23aa8cb63e424f0ba0375b645de2f8f5af23d3ca3b9a5ca3951a6d02075a2c828eee326a2676ed8247164226b0267798632a519bf1 -Mac = 74355397c7a29bb1 -Result = P - -Count = 86 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 2e523e9d8a5532127ec63b220838f11b -Msg = e6d067907610109b8789e1ad00542539991677b9efc97a98d8bfcb50f3e334d0844323207fcb5a47e353e76d49dd573dbd17278dcc287b41dea8126cc7f07ab9 -Mac = 7bd6745c6f73d92e -Result = F (3 - MAC changed) - -Count = 87 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 0eee5bc8994b723a580f67d45ccb194a -Msg = 1dc4fcbc73dab4e73ed9d7606acdcd42b74972460c640fe50f028abdf255d9368fa3bc65b849ac31c8000eb47e5fade40ca167726aa927f2f043133d24ad0613 -Mac = 486721355fff9cbc -Result = F (2 - Key or Key2 changed) - -Count = 88 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 388468d10bf0b770cc125f8b7d359261 -Msg = b9aaadfb3f60e48f1b421a9450129d75af2ce811ab0b1661680e9d5b147c38167ac7252ed40d916ae1e4519c3857d2c9dc2c538a106951b26d16433131438839 -Mac = e13cef9392f4a80b -Result = F (1 - Message changed) - -Count = 89 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = edfe2e15edf0b0c28875651d4becfca5 -Msg = 70b1e2e4cf260b108f5a52d0d8234838ffd6ffe7b4acd78d7d6b95aa6342b598eaf402cb47396358ce61f8b4aa3a65bed0346e0036c3c5323f051f007aa58d0e -Mac = 7b70730219907d18 -Result = F (4 - Key or Key1 changed) - -Count = 90 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 6876df1a77e11165331a5ce2e0e6bea6 -Msg = 34b73ba208bbe1df06da768b0321243815df4ece555974dee2bf5732295f5ea9631939425e13c47681ae2ecb0bb85aa69be38560f5752a9d034222d91ad71044 -Mac = 80e00df873439fe7 -Result = F (1 - Message changed) - -Count = 91 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = e65d5fd5f446b4eab63d56b0a5eb1d29 -Msg = 554395f9b113c0f2a1f155de171d6c0a805c838beb90c3756e8b864dc52517c03d8cb894d1dceae092f0e8784c7775ac664ad7320afd246086b3bc9ef237171c -Mac = c60f8ced2efd52fe -Result = F (3 - MAC changed) - -Count = 92 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 5bdbd06f4df6e15d644f3a635d7bb14f -Msg = 4fcc7c2763a8dd5bfe74e34f512be8042af9ba1c73a944edfb616ad47a8d34cbcf192f3e8be3101bb3709b29c2dec39aee1913e3ac524ccb76ad50c2cc3a3e75 -Mac = af33d5a2746bfa5c -Result = F (4 - Key or Key1 changed) - -Count = 93 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 13bf2f72211cc8e16ac1986a22e19f60 -Msg = 8ee212ed4bd110ca6a91b37bca59e19ba842e3a1b50619bc6b07ec02a09303ca5c66ba56e870d0b627d95fe829431244fe4f9218c862418f14a92bd76b5a3a82 -Mac = 18e8cd5bd42c75ea -Result = P - -Count = 94 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = e9b913c2f0630562eb1c16b3b1ed8409 -Msg = 031105ff01daa66ff95834e47b6f5c683994084d0fcb84c140d1dfa2039a95933efe6a4f91af993d966e2e45677eb1e36159047928a38eeaeb5c9a64ea59f97d -Mac = f00a17da0fb9e6b6 -Result = F (2 - Key or Key2 changed) - -Count = 95 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 6fa5a5991315702cba3beb33867c7bca -Msg = bb0fabffbcc6935ca35755fd4bfbd192b6812cf75c4dc95bc3a175a1501be2065d7f57058cb7a5785a185dfff7e740a5551cf7c17e65051b2c6ef9509360e878 -Mac = dcfd143f86442183 -Result = F (4 - Key or Key1 changed) - -Count = 96 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 3f8c6d21ec05bc439bf82774f1812bd2 -Msg = d726deb8537bcd671ddbaff8fcc6968f951b71aa82dfc802a53aadb2bcc2ef9a35fd90064320798b311d6d32f7dd3cd90bca39d57991eddc36260d23b108aac3 -Mac = 449e20567875d56f -Result = F (3 - MAC changed) - -Count = 97 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 8ed1a4873bb37fafd4f8c2ee417443cf -Msg = 1652c9539bff4b6e9f303f3e6b5d4b9ff7e85aa2a401ee8c2dc7b722dbaf6424f92ab9188882e2483405070e8666204f5a600b46949cdb830fd57433d63a55a1 -Mac = 601eb06acc5a4e0a -Result = P - -Count = 98 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = 83a4669cb9961448cf418cb83a16098b -Msg = 26d97c3e28460d46216da39e043e024ed08e387b1e5fcfd3f962472cf1bac4676b03039b3b93927075ff41c87fe1d4a56bd9fa4784d283942787cdbdd5457f1f -Mac = 01a42494a10691ce -Result = F (1 - Message changed) - -Count = 99 -Klen = 16 -Mlen = 64 -Tlen = 8 -Key = c9e6d0b3dcd8ab50ba5ff31d9c1bd95d -Msg = 0d32c1cd73569ab2b10c67c167875fe22625358ed3469b424c5e052d4e49af2c97dfe1f947c972a08c938b327e01adbc48a7f57a89b49f49fa0fca5b50a57a2e -Mac = 476add8ee51b5e3e -Result = F (2 - Key or Key2 changed) - -Count = 100 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 17281acb525b13653000ab45d86e7010 -Msg = 225750ca982e5b34fc62e277eaaa0f248532abf374933e572b0278566cc7cf980df26abefb493ef57f8477cac0bd19408a22e71f4ded84906996d8e7a846b5c0 -Mac = 0f2aa7f2dffcf7df34c84d101aa9bab5 -Result = P - -Count = 101 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = d3624653ad0ed144667df0e0e355c29e -Msg = 39dd298acc45cb597f0733572677f7102536c0dd86fcfcc44895d29af92a5b6a87c20f1b53087d4c874f4083aad32e877142d20ad87b1d8b7295587bfd235d9f -Mac = 795da5a50f5b7df40317616b5a470c02 -Result = F (3 - MAC changed) - -Count = 102 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 813b3d579664cebe50a8e7050a0b4e65 -Msg = 78ad6517a09b99c1113d175f3129aade4d4a2516ebe054f15bc833d08ffe5e2a2d60c976e1b4b14cf8edd2c72baadb2db8001fd2b8798d39ac5ce27d592f1def -Mac = 20f40553bedb6496233e0b53143b6d10 -Result = F (1 - Message changed) - -Count = 103 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 21095cdbe94afa27d84bcd68276993f3 -Msg = 10525eb2794d03409faeab22a6d4cc4ebc0421daacb0e865b0f94eb387722897c827e31676debec9d49c36837b6bc234a95bc10ddcc7b1e5a0d9a1dca550e93e -Mac = c0b806ce5eaceb51b53b028e6efea9c7 -Result = F (4 - Key or Key1 changed) - -Count = 104 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 6c769a4822523525bb36c02518475549 -Msg = 4af38908fa44b46873535b39f432d9b3e677f6d06d8719af3d15b936afe515fc13d62566481fd0108bd95f6e8dbe32b3c830b1f1127d868273610aa834ccfc70 -Mac = c1934b9c74127cfd515521df330c0333 -Result = F (2 - Key or Key2 changed) - -Count = 105 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 6b454930925ca09d39e1e39a2e78fbfc -Msg = 2bc884394ab7050c14d66fb8901cac109c0126668d918a4419bfcc5d75fb6bc2ba07f6598d06cf8cffd62f3eb29f6a033eac7490d27aa4701f0fb9f9718d1b7f -Mac = db19b8ef218018e5a53abcc39b7c514a -Result = F (1 - Message changed) - -Count = 106 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 5df295be7c44d59c44fead3f1988356f -Msg = 3d7370cc2d61af35bf7b2ba50a143b23bfa0d1eff66c5ace2d8de5a28d17883d708fff7721a2977ee2164b6e34022c22523a0649ff0e40bc8134040fee02a065 -Mac = 81b3181acbc2d6d2960ec57441ff3c40 -Result = P - -Count = 107 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 387fc73be9f019913f2222d98053f95b -Msg = 944daaa76249bd9d3bd517d01b074920b7d4434d1a2618af902e0228c3fca658244d990f8ca42208239c42d4827cf114140cabebc2a72bb3cf9277ef008c1c81 -Mac = 5de79be9ff9c3c9d64f9cce35b188648 -Result = F (4 - Key or Key1 changed) - -Count = 108 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 7424990dee834ad05f4218861ab21eae -Msg = 49fd56dec210e903f6c703332637f9c267eab9333e2701a16c74ce5e0b5a16d9da68b9c5d67bb6770a3c9a90a7e93fdd5759b27bcf3a753fa39ee7545fb60026 -Mac = 38b66049ee8ed81f3f8ce2b45a4001ad -Result = F (2 - Key or Key2 changed) - -Count = 109 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 232407986ad4a8e438990fd04ffa35bf -Msg = 9d88a7970d4c58cecc20ed1811298a5b37297419ca49c74fe216679dafc938a656cb92bafb78efb31f24e71c2d5b5f994f6dfd82862adfd2faeb8c408fd22aab -Mac = 313d46dda3ccb75f497f9069c9478b3a -Result = F (3 - MAC changed) - -Count = 110 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = d9bd6ac153cb0bc4e19e59c45cfe0d6f -Msg = c68094c26c7f017b79f126dc26b3bbcb95f97535ca412da5f7853e15fcb52f042e6492c857c22b26ffca5520eabca20ee2cec2f0b71ea60383ece49232065e0f -Mac = 3b17778955990ae58e03feda7fc43998 -Result = P - -Count = 111 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 857fa35c6f70f637a9a5e6f215c694fd -Msg = a1fc1307757ed91665980e2d3cf9778d8bffc9a84cce6bd5c5a07e47af5c1b409869db8286c49d07dd5083f1826e3ec441ce8cd36c85fef8c55fff889e761286 -Mac = e1ddd63db51d3035adfd309ddc186238 -Result = F (2 - Key or Key2 changed) - -Count = 112 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 501f5c58355d1800f155f272dd09afee -Msg = fd3564848ceb5d8cddfd50732956d18b4af433efc2e2a914ff66aba1de7b9b816d81a936f534f47038dbf1def7c11144b7e99ecec5fee6a478899cbeb6677bfa -Mac = d995f9bae6150996cd9b798fcbc623c2 -Result = F (3 - MAC changed) - -Count = 113 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = c1d636989dfbcb0edc9f014cc82da6b5 -Msg = 20ef1bbf8a719497797f1f1bc4617179ea682a24a92f0831cd215a01473bb8207e13f26dea1a467bde1ed638a51359ccd11210c4d0a2fb70c0374e8984f81f17 -Mac = e4972a59db04f78da1728cab051faa98 -Result = F (4 - Key or Key1 changed) - -Count = 114 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = b4bc5a4d40716fb06a359ef9537726b7 -Msg = 36594fae7b487798d62c2c95ccbf51c984df5ca6343465b2dd147c8b36a34028e53fae61f51b36b28529143cbd3edd0c077158a07bc490a79a06270940f7ed27 -Mac = cfb3fce039ee2bb94b6961ff86688237 -Result = F (1 - Message changed) - -Count = 115 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = dc796e5d9b712c798922eef315cb4728 -Msg = d5755c40f52364343d2613420441afe9da9a5329d3c1e5a123ee49f5eb8ad47253f104f5d9776e08e9a9f74fadd5472326cc7b7c7ce61a1492474bc9de614543 -Mac = 315f0ce76352448bbd8a5012a9907a23 -Result = F (3 - MAC changed) - -Count = 116 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = b82fd283922e730a07f7ddb87484f66f -Msg = 94e47b82b728d639777d5d5843de2a5c364956cb4b21cabdced2529b10b3f4275f307fbc352866d7b094cfd7426ae801aac17ac72335c04adb8d791da69b3c4c -Mac = 86e6a8485b43f1b258eb59688af91fbb -Result = F (1 - Message changed) - -Count = 117 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = f6db7efdfe73dcb4a26b8448842b55e8 -Msg = a1fa1fcd5f095b2768e32cd733365a136a108e7493f212aaef27d86da253beb6154f103099344ee94db6304e41b4e856db0ca7fd7ab462f45a07d697b85cca1f -Mac = f998bba6c5d3efd78af9ef57e7a38f7b -Result = F (2 - Key or Key2 changed) - -Count = 118 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 3c1ba92d096fba134dfb4ef412b2568d -Msg = ba7725d74465f5d92454bff794e0be51c4d0af7d88f729834d57312c528d0a7d15694a7e0bdc334093173f1d2df1fd42e7891c6b192dc5ee527b2ffb92c66d22 -Mac = cfe6022ad29a54627ae7c4f907ef4da1 -Result = P - -Count = 119 -Klen = 16 -Mlen = 64 -Tlen = 16 -Key = 4a92337f017a85b136ba6766444bbe84 -Msg = b0a3a8aa5d4bdfbb4c5c52acdcc60405c379f752b077eed42f2d7777cc0329047b322b9837d5f655ea445b578d9dc7e990a3c6f97cccc6cad7951ee948194e62 -Mac = 153eff3c035db2fdc752ebd22302adae -Result = F (4 - Key or Key1 changed) - -Count = 120 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 305ec69b23e4490e0f8a5241cb9c8c85 -Msg = c641cf589020b94026ae -Mac = 3bc054afa9771970 -Result = F (4 - Key or Key1 changed) - -Count = 121 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 28929286bd1391468ac75f5c03689f74 -Msg = 3813592f268a7a863c3b -Mac = bf1b514d2f899620 -Result = F (3 - MAC changed) - -Count = 122 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 1b3163e2d3a471b9823525abc7543c4c -Msg = cada03e8c967f9732a81 -Mac = 53702fa98e6f9a19 -Result = P - -Count = 123 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = be1ed49e2cb0caf6b6a0940c58453b93 -Msg = 4a348c5ec996f7a97ef0 -Mac = 3358d143dff4adfa -Result = F (1 - Message changed) - -Count = 124 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = f18be18df045ba31b80f3283cee6a681 -Msg = 93006a06d7e6df775b19 -Mac = f3252f061dce32f6 -Result = F (2 - Key or Key2 changed) - -Count = 125 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = b9dafe18a904ba761762ec3fe0e4120b -Msg = 173887316279a47fc699 -Mac = 884f5b21d478d60b -Result = F (4 - Key or Key1 changed) - -Count = 126 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 31fee08df80cc1009e661230e25939fd -Msg = aa54ff7466923b265fb5 -Mac = 03dd2a9616f653a7 -Result = P - -Count = 127 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 65a28d970b2bc7afafb4069c26d264a4 -Msg = 1aa5a3a4e6c5e5394e50 -Mac = e0423589b192caab -Result = F (1 - Message changed) - -Count = 128 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 6dc38e37d1379732df4dd535db88d17a -Msg = 0093c6d94aed50b398ad -Mac = 19b08e65d391c491 -Result = F (3 - MAC changed) - -Count = 129 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = c5329fd99848e1cdcfa406ec09745ae2 -Msg = 6d83d0ad7cc7efd0d2ca -Mac = 8ec2709e1466f8d3 -Result = F (2 - Key or Key2 changed) - -Count = 130 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = e608914a930b9c300b677afcb8689d63 -Msg = 146629e70b37d8b83ee8 -Mac = db78a639bb15c84c -Result = F (2 - Key or Key2 changed) - -Count = 131 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 0a998d3d390f5a80ad398b2070489984 -Msg = a91c1a8d9d268ad153bb -Mac = 5643a8c99b99d944 -Result = P - -Count = 132 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 2b6f78ceace47509a43ceb6b761e7866 -Msg = 3c0a41a78240c9d2fc22 -Mac = 811acef50d6c1913 -Result = F (3 - MAC changed) - -Count = 133 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = ca481f557306f9ce386edd0cfde375a5 -Msg = 9f3488736ef6e2c3a51b -Mac = 57e8a0e5965399c0 -Result = F (1 - Message changed) - -Count = 134 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = c0dd1cfb3add04cd67a8e59be7ac8dcf -Msg = a7c559c82776f429ac31 -Mac = 7e43a2b43d030ff4 -Result = F (4 - Key or Key1 changed) - -Count = 135 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = d3130d9e5ef516b6bf172953a37913a1 -Msg = cbe97e14c3100c9fc564 -Mac = db9f674a2d0e9ed9 -Result = F (1 - Message changed) - -Count = 136 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 9ec8661a880ebfd15fd8b04f2ae09dbd -Msg = eff803e0fc809cc48587 -Mac = febec8d41b6bdc1f -Result = F (2 - Key or Key2 changed) - -Count = 137 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 6c2b091433833a0ed915354dcb70d982 -Msg = 90f1416768fca7dd48d0 -Mac = f6ada24319e502ab -Result = F (3 - MAC changed) - -Count = 138 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = bc79d444dff9d9e722effab07b068cb7 -Msg = 07d5a925b724e2443936 -Mac = f964302c270af24c -Result = P - -Count = 139 -Klen = 16 -Mlen = 10 -Tlen = 8 -Key = 1a15b24ba5d9648358f2c39c9da8512b -Msg = 15b94910853a8f23dfb8 -Mac = 8cdfbc13239e6aa1 -Result = F (4 - Key or Key1 changed) - -Count = 140 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 618fb69c8fb670250c306b3225687d17 -Msg = 7f54845a57d916866eff -Mac = c0d4db73891bb1efa232593407856808 -Result = F (3 - MAC changed) - -Count = 141 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 8000aa080c127cbabfdfa5d9d9728c7b -Msg = e53101e6eabcda32c13d -Mac = 5671badc409d4b170d4c861a0b3e1fec -Result = F (2 - Key or Key2 changed) - -Count = 142 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = b05b5557ab145cec2f00706dbc6a3c23 -Msg = 5e2f601395ec406fcf96 -Mac = d00243508d25804548c4b4b512cb1906 -Result = F (4 - Key or Key1 changed) - -Count = 143 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = e8b13346b61daedc1f9e3b49df8d1cd6 -Msg = 0593365419e0f75b6323 -Mac = 871eb97850a776e7ad498467064484f9 -Result = P - -Count = 144 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = bc498326755503ff25d02805eb351722 -Msg = 9ece4c82fe9d38ef64ac -Mac = b5e88af50d1cff3d2b6d304edf042c43 -Result = F (1 - Message changed) - -Count = 145 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 4d248e73886a0e36b3ce7c6113477f4d -Msg = 8de6fe3b24fd6c202ef0 -Mac = c1a4f6d0ff7330171cfe570e900ce2c8 -Result = F (3 - MAC changed) - -Count = 146 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = b1b9fd78e3f8eaf4e8c91da62b2da534 -Msg = 482ea6f652067e8b791c -Mac = 63c6994c98bda91723f832020fa7d223 -Result = F (2 - Key or Key2 changed) - -Count = 147 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 85e4e63341658144a99fbd17d94e3177 -Msg = 21ff834bec4ec6384522 -Mac = 580c1e549a2ceca4743256a9cc972e84 -Result = P - -Count = 148 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 88b5448372548e6aab1b262630a28a47 -Msg = 36dbbff560ef04ea731b -Mac = 5fd17fd704baaf1ae6b3330ef2989dae -Result = F (1 - Message changed) - -Count = 149 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 8cc76730ca47620d0b437112a2c93fd0 -Msg = c73be9f019913f2222d9 -Mac = 2c73e2b5b84d8f4f3db1fc92831a03bf -Result = F (4 - Key or Key1 changed) - -Count = 150 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 7b657c640f155f1ff461c83cd656614d -Msg = be9c5e77bf1b9dcbd4f1 -Mac = b660ec36c0c0b4d987439505f1bf57e8 -Result = F (3 - MAC changed) - -Count = 151 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = d5044e9f10bd274aad4f7e605bb828f2 -Msg = d0be84df789c98dd125b -Mac = a26e513b09f184caf8d76d76961d1466 -Result = F (1 - Message changed) - -Count = 152 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 24d6d4bdc9fc4cd05b2867e9123acf18 -Msg = 0f9703a3454c25c0b105 -Mac = 41676ddadb7b960e0269c8a59a6d9b91 -Result = F (4 - Key or Key1 changed) - -Count = 153 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 6aa049d06bf66d2e2b65541eaa3730d8 -Msg = c562ab24ae5cdb7654df -Mac = 0d4d1196158fec46bfa754a526ba4a25 -Result = F (2 - Key or Key2 changed) - -Count = 154 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = cf3727509577f1932bd7a92589c11e67 -Msg = 831188efc5d1f6dc9bb8 -Mac = b5d162c885d7d4f6f65f4188d6582240 -Result = P - -Count = 155 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 0bc2fdd890c19882640f8d4188b88b9d -Msg = 296828cbee50f41d19b1 -Mac = e583d77645a603d841eaafa8860bfa91 -Result = F (1 - Message changed) - -Count = 156 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 5bab8051e2520b75673068b9cda93cba -Msg = f16cba03402f9924daa3 -Mac = 97f7eab25dc3ab017a9affc0e400dcc3 -Result = F (2 - Key or Key2 changed) - -Count = 157 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 7ac46e3249ca28e1ef0531d80fd37c12 -Msg = 3e9ddb8121760bffb7c6 -Mac = c6eb13d5087d05b4eba2e74b283b7fe3 -Result = F (4 - Key or Key1 changed) - -Count = 158 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = 40f78f7ad3eede36e13bce222c6a4bc7 -Msg = 4fa8ad212ef73d37d48e -Mac = 3831419e62b51b7ced0d9117e48fabf6 -Result = F (3 - MAC changed) - -Count = 159 -Klen = 16 -Mlen = 10 -Tlen = 16 -Key = a1f82c9924411e98e6f93fa0d07559e2 -Msg = 7d4748147575bc0113ab -Mac = c23dbc58fe22b34f7b007590558a3080 -Result = P - -Count = 160 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 84760f98ec565d281496b1295b25150e -Msg = 9ce942ec81f8226506d48788e3acf49fcab6da22 -Mac = 606c2f459a9ce198 -Result = F (4 - Key or Key1 changed) - -Count = 161 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 3b6dd5169350b230774b02b9b44f06bc -Msg = adb1ad81dac0ebc650d48f7a9329755a83f293d0 -Mac = d7ceaa858508c476 -Result = F (1 - Message changed) - -Count = 162 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = f98d00755bcb45e6822121fe7cb03c8e -Msg = 7064a2491f716f4a2969815e4a281a54690ced9f -Mac = e14634c400b9f561 -Result = F (2 - Key or Key2 changed) - -Count = 163 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 5d27cb435e7724a246f158576fdbac68 -Msg = ee8ed4c12b0cf7c03bf91fba31a6a7b2d64c36c4 -Mac = c10b474c0077a39a -Result = F (3 - MAC changed) - -Count = 164 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 098c12058a0bc5951fc092aba322e1a0 -Msg = a2b76835229017bd0e8167a40ea1e2e18cc5db0a -Mac = 1d44128c3db0f7b9 -Result = P - -Count = 165 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 74f7f6516a17d5386c289756240241ed -Msg = 8eafce9ba466fd53eb87f499d7c76bd486db0e90 -Mac = acd978e0065375b6 -Result = F (3 - MAC changed) - -Count = 166 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 013bba67d26c7e52ae48dda3b67c9c96 -Msg = 48c0d53b85e6fa4928d3e9953afb9b451bc91a48 -Mac = ef41ce0d30baece9 -Result = F (1 - Message changed) - -Count = 167 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 14cea4c46d837c9439b088fba0e9d85d -Msg = 3477384c396a9e9efb3e169722cba779fef240c4 -Mac = 902158426696c229 -Result = P - -Count = 168 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 24f7b08fc2e6af6402243e22ca0626f9 -Msg = 914cf55a3fc739b5f87ac7518cc4171b4499d951 -Mac = b775a3c1dc11d074 -Result = F (4 - Key or Key1 changed) - -Count = 169 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 35b5428d440503773f30748ff843be68 -Msg = a5e5804cfdded4d610d1b05b7313ece84f369ccc -Mac = 6dac0947366be803 -Result = F (2 - Key or Key2 changed) - -Count = 170 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = c8afe4e5b1d019c2efdbeda65d874ba9 -Msg = f739e632436470b5a1db9fa9796ed384c0523f40 -Mac = 04c8aceaa8f8c3a1 -Result = F (4 - Key or Key1 changed) - -Count = 171 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 05a7910edcd7252b37e6d3d080a9ee90 -Msg = 702db7761abb9b5de41a86c8659270570be9d52d -Mac = 889a990539cbc30a -Result = F (1 - Message changed) - -Count = 172 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 4c8b0850eab7b212ad96dc7a032f8855 -Msg = 2de32ff6ca41b4c97424b121b8ad4edb133c00ea -Mac = f5ce7f46d457ec37 -Result = P - -Count = 173 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 687bcb63755f2b5c7daf4a154e8525a8 -Msg = 02778ca34db1cb5df76cb1a7619448f67d63b26d -Mac = 49d48bb0a684c6f2 -Result = F (2 - Key or Key2 changed) - -Count = 174 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = f8c4e562fde4379b08e512b0132766a4 -Msg = 627868b46ba546252f4eaa1c25205ccff72902d7 -Mac = 5459c0ac5bb6701a -Result = F (3 - MAC changed) - -Count = 175 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = dd235b05c15479dfe0326ba206ac784e -Msg = e044ec24ddc0605bca89925a4ebc0234811e2a0b -Mac = 5ed0a03da09555b3 -Result = P - -Count = 176 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 665c2d7d6e69c2ce8f0d06b41038b83c -Msg = 4fcd7541000cfc223fe9da6a030c681d0fb926cf -Mac = 1f022feb38ae6131 -Result = F (4 - Key or Key1 changed) - -Count = 177 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 2efb7cd914a59b6ad63b7d1812f254db -Msg = 67c9fe3e163787705a20f2fc8c468c4f771991fe -Mac = a866d6a31c0b42e6 -Result = F (2 - Key or Key2 changed) - -Count = 178 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = 74f6fd37ccb4b7702bb3a03b7322c0d5 -Msg = 011ecbe98c5cb7734476dedbb852e2474a5ad594 -Mac = 707ec713b9bce5d5 -Result = F (3 - MAC changed) - -Count = 179 -Klen = 16 -Mlen = 20 -Tlen = 8 -Key = e673b3a954a00082cb7516ca9a54d9a1 -Msg = a6fbd41a838bdf0fab3e7b56c27a8c18dc4bf970 -Mac = ad4dfde057b54a27 -Result = F (1 - Message changed) - -Count = 180 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = ce5bf070678cb07e963263b1562ff793 -Msg = 2bd10c4397a19fc79a307116a0847e0aaaefe813 -Mac = 299e5910f128a1f091dfb6b70f6a60ea -Result = F (3 - MAC changed) - -Count = 181 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = bf144c9bb974729aaa1188ceefdf85e1 -Msg = 5e1ef2ad86ceaf5439fe87d2ec9bc41b52e5ba01 -Mac = 58b4a32ae55966e42712721363ac9eda -Result = F (2 - Key or Key2 changed) - -Count = 182 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = a0cd07b684bb9e0e6692e320cec4510c -Msg = 6e1e490a30f0c9e3d3b79f1c36aab742bd67c585 -Mac = 24dd518ffffc1070f13d50d0bca42711 -Result = F (4 - Key or Key1 changed) - -Count = 183 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = e3ceb929b52a6eec02b99b13bf30721b -Msg = d2e8a3e86ae0b9edc7cc3116d929a16f13ee3643 -Mac = 10f3d29e89e4039b85e16438b2b2a470 -Result = P - -Count = 184 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 4073251950e3331d03d67a2399576d28 -Msg = d5dfd0321b26e578fe987456ff061dc1cdaa4161 -Mac = ed2823fb8fcae918064cef6211646e50 -Result = F (1 - Message changed) - -Count = 185 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = b08f47101365111133d974e8f0206507 -Msg = cefe484955fae117649ec158416a7439f29a596b -Mac = 3317717c6c0b138275090ea961c8d58f -Result = F (3 - MAC changed) - -Count = 186 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 166fb8d0e110124c09013e05688605ee -Msg = 24c65f715742da7d06046c783a35b2648180b4f2 -Mac = d27901a86dbf0ed8bde0d69203646b7a -Result = F (1 - Message changed) - -Count = 187 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 20f6f56117758ba47a08dadf93a59056 -Msg = 7514e0f402e73d9c0b0576782011b2e6b2080a6a -Mac = 11cda489b6dc0ab48d111ee6cb26a829 -Result = P - -Count = 188 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 7fa6ef35ad594a09cb74daf27e50a6b3 -Msg = ac0d616ed7dd3c3e86b3507d9f2bdc3a807d490e -Mac = fbad2fc6c9d0e5d21b25445f499eee10 -Result = F (4 - Key or Key1 changed) - -Count = 189 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 815871a8300471dc325f8289d0d37211 -Msg = a8ff31e90556236cb4df078943c1f2528b42a7ce -Mac = 5544c93de980bcf653354ce08aa9dc3b -Result = F (2 - Key or Key2 changed) - -Count = 190 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 06aa3f6fc20f867b42ec234a1bcb8665 -Msg = 25df5cc617e6e68be181694721a2a112a1bfb7c6 -Mac = 2eeb7ab470caea3317a6336f5eee24a6 -Result = F (1 - Message changed) - -Count = 191 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 860f8fdb021b1974d40e3d4bc41fa967 -Msg = 6c982a616510db422cc2f1beb955c3e7a88b6097 -Mac = d2280a55cd0bcd18846b4e30db6322bb -Result = F (4 - Key or Key1 changed) - -Count = 192 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 15105c6285a9015d0edd414d6a806bd7 -Msg = f1cc55636836e67909ed3a581de20630226dd5af -Mac = e9cc5799a630c6f26087c1bd3b6f1791 -Result = F (2 - Key or Key2 changed) - -Count = 193 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = b47aa890b03a8ac0dbc8f96c30fdf7db -Msg = 58b06c99e0d0256cb1c556ec3b48a3bce73450a0 -Mac = 3376cacc247686832736cea7e67e13af -Result = P - -Count = 194 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = dd057368033252d9bb2081a0b1a0229e -Msg = 81de8f50fbe35f7ed95430e74d28666c885b6100 -Mac = faa08c5a3a4ffdce81ca31873197d035 -Result = F (3 - MAC changed) - -Count = 195 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = baf5afafd7d0c8ad42a44e4e0a90fd2c -Msg = cc5a4209a6a60dcf12621e17150b4576b918732e -Mac = 5a43002d9144a1d5e48c2dc8dc167a52 -Result = P - -Count = 196 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = fa6405355bfb5065dc81e764d20277bb -Msg = 5dd1febed8e94d4715e772c3295b48eaf471daee -Mac = 29e96ce5ba930134670b3c68b5c512f3 -Result = F (1 - Message changed) - -Count = 197 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = ad2e3d3af6195e74b3e43296b1f618d3 -Msg = ca776f79b8581014ae58a4d533b60483fd1fbbd0 -Mac = b32ce1f493b126fccb9829d4dbe76382 -Result = F (4 - Key or Key1 changed) - -Count = 198 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 04ae7190f0cabd117d30a359f80b720c -Msg = b885e5e147f967032ab2552829a6e09210c44a45 -Mac = 9386d73a01960ab399bb7d290674b21f -Result = F (3 - MAC changed) - -Count = 199 -Klen = 16 -Mlen = 20 -Tlen = 16 -Key = 51fdc65f6bb0d20a3c08ac1493ddddb2 -Msg = 1f0a56fb615b594d938bb8a27f4b2f5463ee9a61 -Mac = 8506fb1b74806381e2654c8764464d8d -Result = F (2 - Key or Key2 changed) - -Count = 200 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = cfb7e930b838dc3644f6c06f2ad0c8d1 -Msg = 611db4c194dbb54d80a4f4fa731cd9a6a330eaca734d3351f2cfebaba4bd541d86b3e35b4c1fa158edb0d15d610cd359a9c24878117f77f6b284f0363a576e0ef0 -Mac = e9589a711f5d4a5a -Result = F (4 - Key or Key1 changed) - -Count = 201 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = d179dfeead9d765d000462785459b1e2 -Msg = 795ee78ffdf302f3f1f2b31629ae918409cb42979afe3752dd14968d603678520e6b55884b5ebcce416248aa74b3cfe39dfedc2bb5246001503ca4d62cd7826f0a -Mac = f16ea84f554dfb54 -Result = F (2 - Key or Key2 changed) - -Count = 202 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 22b7eb25e688672ab0e17206623094b0 -Msg = d830b16fa236a1dbe60f6db8d7e81a3ddb5f658c9f446e94639cae3699ec2ea6afb4fb152939d58df287271cf4b73c34e66eaf5265a623de47b135522c7aaf9f55 -Mac = 16229efcb7523025 -Result = F (1 - Message changed) - -Count = 203 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = a64fa98b4662d801159f61eefd1c8bc5 -Msg = d5982c462ad40458660cd7b120ce07fce9afe812caedcebdee536ac19b5d561d679dee8ea85d62552c86093a2ac1f8d179dbd4fc006ee4b16ebe6afd2be134498e -Mac = 2f9a2fbcb96461fd -Result = P - -Count = 204 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = e4fb10325d18666c382e6cc2442381e1 -Msg = dc28484ebfd293d62ac759d5754bdf502423e4d419fa79020805134b2ce3dff738c7556c91d810adbad8dd210f041296b73c2185d4646c97fc0a5b69ed49ac8c7c -Mac = 8f771ffe0c8d3445 -Result = F (3 - MAC changed) - -Count = 205 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = fdcd3459061c36c9a0daa0dcab2b967f -Msg = 1cfa3342540d03ec3fcc8378c021443ba3321fbc26dad7c5b859faba004a082a21d6d7a43d2836cc3820d1adbe4c55518714d48fd9346a254f702107da8212f605 -Mac = 6635f9e17949a14e -Result = F (4 - Key or Key1 changed) - -Count = 206 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = fc593384e6eebc508d181fc49ee10e56 -Msg = a6c891c9dd1fcc982c35bc74cfe71651bae424602519672b466d80e160af51eefccc5fcf76467a25bce1a10853a0209d9beffbeb53228fea5f1e77ddc956ade207 -Mac = 7a6fd94e3928d2a0 -Result = F (1 - Message changed) - -Count = 207 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 4e4ff248f591ca27665960d9357a8de1 -Msg = 198d5c9c4aa35d12b62e8c4bf6f3f141e6ebefd8ab396c71f55e32bc82b094cde409547383bcc4c5e5cd2cfd2d616c8ae273e260f2c98e93f7267424b8c2421bf3 -Mac = 9140f91a0cf70762 -Result = F (3 - MAC changed) - -Count = 208 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = f20826990acdf225d9451a3d22f89747 -Msg = 03d340904ace1cd52d4b72a96d96afd77aee68ac3936415005ed0d56f46036915b1e5f2994ad49effe7bf3ee46170642e5a16f2eea804e68fa520fb79529d6c09a -Mac = f30b668f16bfe6c4 -Result = P - -Count = 209 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = c231ea8b75c65de68c49b76e7a3128de -Msg = 5b50879191a6debdb96c0bfaf9086b7dc6e25594416b08d2c75fe16cc347d2e3c7410fe3dc030a6c161ea22f6b80973bc43d42d8558f83b32a1bfa3c03757a4d62 -Mac = 65ba53ef4711e807 -Result = F (2 - Key or Key2 changed) - -Count = 210 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 8ef18639bc8c831dc0b4aeeca25eff4f -Msg = 094c4d9baead7c5acd7dc58f3b4b4f57f1406b4e6af81a034d90cfa94c01760f4cacb4d2c63671d16d9594e1116b0dc2c39319523afac10175b1a485a240f7cf3f -Mac = d84f89e16c3b1633 -Result = P - -Count = 211 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = bab9d79aae4a1b282d8c5aa35d5c0876 -Msg = 02815f53c2be5f7246d4794895b4b15b6c3944819dfd3051b371f6d7d52d9f8ced84fd84095c33ea013c78aa5aa7176d6aa9bacabdafe9bab89cce4d7c183b9c0d -Mac = a01f976031bc8140 -Result = F (1 - Message changed) - -Count = 212 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 42b97f583f64d88358885c66add5d03a -Msg = 187fe16a764c0987a28088f5cfcf55a6b9591b6395d2d41043e09932cbc4b8ae073d08d39da9799b316eef2ed89851a8cfc4dc1c6d3cbed95663e0ecf25403e61d -Mac = 0820b1ca0cd34e5f -Result = F (3 - MAC changed) - -Count = 213 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 4fd555bd3a5253a90b68b5d4d46bd050 -Msg = 1ef253c61ac8ac66734ea80eefc1dc077edd660dc3518b5ecf709f10302925a72a3938e7449f2ae707506a67022dab63113242e9dff0d027aa3d22c8462a558165 -Mac = 3770a6cc988a28eb -Result = F (2 - Key or Key2 changed) - -Count = 214 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = d3a8eb3f9e5fb264ff098d85c28dd763 -Msg = e97a0986bf75e0e821f5adda80778863d9d479bd8ac3e7fe64a053f8016c465d581487278ef6923610a1463bdedcded62aeb22fb210dde9a0949947f8c6a6e7753 -Mac = 4947e6e28dbba216 -Result = F (4 - Key or Key1 changed) - -Count = 215 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 3043857fc40be37fb0bda4f46894690b -Msg = 14874a8b59b0178c5ec89cd7316d909371969c1a1a1bc8a29f78341d39ce085e7e2aad7c350a3e7b691d3929bc4b7b47fef56be9fe7e7520a00abad5308505f8f6 -Mac = 1a8c82e9109a68a5 -Result = F (1 - Message changed) - -Count = 216 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = b325d425c810d22deb3209f29c5c1377 -Msg = e44c4202499440c12109296a35dfb1f669f97e7f415cd251a5e36943e134a548f0f2e841fa3541151b374c04665053382a24b99d731b99f3d411aa22644f66cd07 -Mac = 84faaeb5a9756a27 -Result = P - -Count = 217 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 7cb6a84e99f5573c1eb27c0078f2127b -Msg = d7fa7be9c10252d6e41bc1a08195a344ef77b81785cea6b4ba453d398bf6ffb31d80e0d6a45a4af283676422b5ca94c76bfb4334f61ae0abe884278976a5a3bd21 -Mac = 64fa7f9284c24f14 -Result = F (2 - Key or Key2 changed) - -Count = 218 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 00341fb81209c2abdfe3a9d607b98277 -Msg = 74f6fd37ccb4b7702bb3a03b7322c0d5fcc657cb2c3f1361488d853589d2d6207359b65d62d896ed66f217395000c2fa0d11f956332f2d4bdae55251adfe903b41 -Mac = 4cf05b6e583c70f9 -Result = F (3 - MAC changed) - -Count = 219 -Klen = 16 -Mlen = 65 -Tlen = 8 -Key = 647a5be8a66c83b4b238975388e15d00 -Msg = 0db33eda4188a9165147e24e40f79fee1985eb68d51627287e9c4ec995a77d89b27fb2fa6a6fd3fb7563f3e710b6d20ca145a25f9ac8116d9f628395eb769f75f0 -Mac = e8ef4f3cd7442246 -Result = F (4 - Key or Key1 changed) - -Count = 220 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = c98fc3416457d9eed0fa7ab1dc1b8a6a -Msg = 190ae57ab8bb70464e4a10c112a54c646438301b5662f3536c26d754a02451d1a9c76abd7dbf656115b2a2ac702ec2cadae30cf86e0f0f96da39897d6222889428 -Mac = 1bea94a457b2886e9098bf3ded932a3a -Result = P - -Count = 221 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 87428d5a53f750abdb335f70ee13b5d1 -Msg = 7bb0c2ecfd141e7e93a897b259732b6153af3542eb7289b1a18dc0aefeb4d129c9e0e27d7ef25d3afc9945277e75cb87cc7d1c9cb39e7e6ab2a49bbdf65e1c6d89 -Mac = a854d2da46afb77a787f0606a69cf467 -Result = F (4 - Key or Key1 changed) - -Count = 222 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = c725d9ef0dc6cfca84865cf5cc91d403 -Msg = d3208eb695e84c7a9250378e18be2f231ca3ebe72ba68e3ea4ff7bcf25206b43439bbd497e400dde738507cb542c7d6f961fb8bee99f0c8a6d9daf022368cc78a2 -Mac = 35d57445a5f10fd567595fc668293e95 -Result = F (2 - Key or Key2 changed) - -Count = 223 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 13e3fe7856cd680593a85cda3d6ff873 -Msg = b208e5a1a852caef0795150cf8313ee0cff06e3d28d438c2351484005661cbdcea6d8a3466aef0c6a460da4d7dc902ec99c073d086704112085a76dab0994fcab0 -Mac = efb2bef5aae555463ebbeebe69791459 -Result = F (3 - MAC changed) - -Count = 224 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 9b8112c1fb29fba2c8b0d8f16481b993 -Msg = f54105a04a4a02a1a07e020a6a4f4176e9c92bf40018ccac434988c650550c87625b84bd232d0e5ec20e6f6c46ba061b22a7fe36098bc7bf031ec6d6c1214bdb2d -Mac = 673281bc0effe92adfac4fef49477ee2 -Result = F (1 - Message changed) - -Count = 225 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 82e71e3ad1bc9a12a46e460a05ad9c05 -Msg = 41fb3dd6df78fe267175297e208ac753d50aaabd9edbf5e45385dfb47988b3d966f31be7a6329fd89e2869bc6f7e4bac1e3a0300f193bdc21c03d9629c9fefaa64 -Mac = 36f7df58abb54a053988cae066110ecb -Result = F (3 - MAC changed) - -Count = 226 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = b46e219217ab73c34904e24c6d995b72 -Msg = 887d6576572a3d8f6a1649394248c4d09d15026ffa930c0659508bac4243e7360802af084f363c2bcc4c91a04c6e86f4f8b22615d7915564949ab60b8267cb91dd -Mac = 10c1d8054ac549ad24ae4af2d8de97e2 -Result = F (1 - Message changed) - -Count = 227 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = b66edcc59dc9d8e34bea3baf4bfc0d5e -Msg = 57caadbb1a56cc5b8a5cf9584552e17e7af9542ba13e9c54695e0dc8f24eddb93d5a3678e10c8a80ff4f27b677d40bef5cb5f9b3a659cc4127970cd2c11ebf22d5 -Mac = 0c5864eefc04a6cac4f053ab2f65f851 -Result = P - -Count = 228 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = c607f631d792499ea43586b81fa3e2f2 -Msg = 21ed22abc7bbb62fb2d51d1fb8830ca95b16213f56291af976274934ab0d43805f71d9b906c44973f7d4b59b7a94d35c2220e7405dfcee98499c1c1dc92a89d7d9 -Mac = 4e65b3d58492a0eebb66928a8214498f -Result = F (4 - Key or Key1 changed) - -Count = 229 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = d9e9136339d361949242e4d8a0cd6917 -Msg = 419b9c9b093052577837862900e7de29273eb0678bf6238223b59176c78430b6f382f27bc8d9a95b53f26f1d12e545ccb434fa0a21b84fa7badb5872e208254fbd -Mac = 6c81094aded51ccd4da38d0412e7ca67 -Result = F (2 - Key or Key2 changed) - -Count = 230 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 6f349dd8b69dd41c6f246a1685115772 -Msg = a5a3c8afe5b84e0c3ba4f708a87b596d1b7c8694dbe691d7240e4e4815ad5aa4ca7e5b82c50989d092b96e80aa35e97f99ed79e75cf3b8750d0d263dc208289cb2 -Mac = cbf41299c35e65fa4e2626430f95051e -Result = F (4 - Key or Key1 changed) - -Count = 231 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = c15e4e552c9197184b3eb0a74f5fffe0 -Msg = 7c4699a7d9e2d9f31410f20029676f3c97f5793f6732f95f6d33fd7ecc205d27b8e89eda803316a3cb9951f12111b4a6aeac606b43835a469eede86eebf63e5e8b -Mac = 77e77de5c5600900e5b928d4be3d5f8c -Result = F (1 - Message changed) - -Count = 232 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 2eda9b2c6d7ad95b644a8739580ab4a4 -Msg = beadccddcf392ee56a8913f057da183ab06ec538e581b52c027ff7f63574b32d8bc4116efa1c56f4a4a851695a87f5fc5f7c47b46fe67b0400f2599fc80fe68d7f -Mac = 948e63657b8b6e2d130f6f25369d6160 -Result = F (2 - Key or Key2 changed) - -Count = 233 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 233088b67b741f07859d122a6a406d89 -Msg = 5717ed57ca0b6921f04dcacad34e0f6210c36673dc9f4d92493ff733c6e5f1c2e56805ef622a5f496049ee0ef51a0d41e9d363febb87070be558e8af61e86dc76c -Mac = c778152b00760fcd85bced0f58861d13 -Result = F (3 - MAC changed) - -Count = 234 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = b7471a8b2e50fb319f198a09cdaeb319 -Msg = 385f9fb139dbf88561b7a500b0c7b835fe57e2698c6d9f76de4fae6dcd45c47fd8a0811ebbfba35f43c17aa360f09c767c1cd9b70bb671fa638e852ace97cc73de -Mac = 1a8b81be875a4814e3f988c274784a63 -Result = P - -Count = 235 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = adf072ebb71e3400a2175c96fb0007a3 -Msg = a49840ab727bf6b03015eaca3f15a2bb64fd27b51b27fe7a2e0559c287ac8fdd4294ca990799ff66974624b8a4539dade66cf7f06b35d8dd2f8a36e6ec0bc83533 -Mac = ceac74b3af8750467e3b3c51624d96d1 -Result = F (2 - Key or Key2 changed) - -Count = 236 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = 1b1d471add4e7f4fe197e3a4a44d06ab -Msg = da06bd1405028d93fefa3c037b5ad551879451a28314bae86a7591b359f56e4b4e26e6fb2fe7b1af0f930cc2ae785d113e8b16546d59dbae9f41e7827be1ac89aa -Mac = 16d0021b1f9c00b37fefb60af3358d87 -Result = F (4 - Key or Key1 changed) - -Count = 237 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = af5d4991c189dada2cb552c3c52d599d -Msg = 1bb1e0efa2d6811d2370a039a0c47c59683befbd46c04257f86a468ae25ba03304e865e62afae77a62b3cec7b3556aae0c60475a7bfb02c69f955c7f60cc8dacdd -Mac = d7056fe01f0ed1b20adbe05cbccc544b -Result = F (3 - MAC changed) - -Count = 238 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = d149441e667b245d4640e04c53ca6f51 -Msg = cbb34794bc8bfdf93d3c8d9f87ec1482b516b48b1e8a89b5e3b5df70c423a243384215b4bc69c76c6b18c497cf82088af74839a8c98895869a16294dfc094360d7 -Mac = 64f5e8dce5c3e0f9cc224e306de70b87 -Result = P - -Count = 239 -Klen = 16 -Mlen = 65 -Tlen = 16 -Key = c2f5d4837f9f75fb440c3bccad7c2e69 -Msg = 6a84594c4b3865f047c96038060b5b413db0d4e081c62e405b815ecd9e3be651f8b9075dc8b032eb2f87c1416a5fe4195f51defe75f671f9a92d966ddf18724075 -Mac = df8c8c61e8d604e24c7e3d0115dbe898 -Result = F (1 - Message changed) +# CAVS 11.0 +# CMACVer information +# Algorithms tested:Alg = AES KeySize = 128 Mode = Verify +# Generated on Tue Mar 15 08:40:37 2011 + + +Count = 0 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 27b5686c79b3d242f96d3892c6135b26 +Msg = 00 +Mac = c98d11822b9b4d7a +Result = F (3 - MAC changed) + +Count = 1 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = b4542a22baa348ee2d11ef62d44cebab +Msg = 00 +Mac = f7a2a3f519fc462f +Result = F (4 - Key or Key1 changed) + +Count = 2 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 7256e344f68b3e7f9dd6e04c5c65135c +Msg = 00 +Mac = d4d7fcc5f979230f +Result = P + +Count = 3 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 7a2116595c5cf6482199d3312498006d +Msg = 00 +Mac = c3c4fa28709060b0 +Result = F (2 - Key or Key2 changed) + +Count = 4 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 0341551d6c7e7c57f678068f0b41d1fe +Msg = 00 +Mac = 821030d4b7889fcf +Result = F (1 - MAC changed - for 0-len msg) + +Count = 5 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = b67ba2aa4e9ea9871c3def87e2dd77f4 +Msg = 00 +Mac = ea896182698ac145 +Result = F (4 - Key or Key1 changed) + +Count = 6 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 0091d39f3478d2c59bf874b96db9ce0f +Msg = 00 +Mac = fb12c5971b0f2f18 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 7 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 46a2e6bd3fd5336abf02eace3cd1e1f6 +Msg = 00 +Mac = 9c6b46ef046ae1d1 +Result = P + +Count = 8 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 4b0fbd5e6f9298e5ced5ebdc60fc18a7 +Msg = 00 +Mac = 221857badcbcd2be +Result = F (2 - Key or Key2 changed) + +Count = 9 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = fb20547da671acd4c6df37f6568a6428 +Msg = 00 +Mac = ba0c9bfd3d9c0c95 +Result = F (3 - MAC changed) + +Count = 10 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = b787def50aaf446bf15c562434844562 +Msg = 00 +Mac = ba60bdae64068330 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 11 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 67d77f50727c7cd5b38e0b175a888c88 +Msg = 00 +Mac = 555923e6b5fbc504 +Result = P + +Count = 12 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 6f552ef7d309bb98597b91cecc21e158 +Msg = 00 +Mac = c2aa402c0443dfbd +Result = F (3 - MAC changed) + +Count = 13 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 411871267919a145532cc401e753ebff +Msg = 00 +Mac = 167a31913228f45f +Result = F (4 - Key or Key1 changed) + +Count = 14 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = abfe32efdf0464cb2eaafca8eac30d9b +Msg = 00 +Mac = 8edbc729b1923e10 +Result = F (2 - Key or Key2 changed) + +Count = 15 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 85504d59a12f3e17edfb0b6337d4a081 +Msg = 00 +Mac = 9045fd77cb26dcb2 +Result = F (2 - Key or Key2 changed) + +Count = 16 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 55f7565826b0e2ccc1368f4de32022de +Msg = 00 +Mac = f82395416a8dc209 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 17 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = 43c8f984390debb0f26c6b9c2df8518c +Msg = 00 +Mac = b5d732086bf8feab +Result = F (4 - Key or Key1 changed) + +Count = 18 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = da288d2014616f16a2abf5923dea49ad +Msg = 00 +Mac = e03b67b53fc7863f +Result = P + +Count = 19 +Klen = 16 +Mlen = 0 +Tlen = 8 +Key = e2f962d076df051c2d291b47a902ea0c +Msg = 00 +Mac = df1456a7edeb4e42 +Result = F (3 - MAC changed) + +Count = 20 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 191b53e0c7d90161e5e2014e9b8aea31 +Msg = 00 +Mac = 1e210cff3c90bd2e2a27a78ef7662f61 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 21 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 54666bdf6db300ee10982d14dac828bc +Msg = 00 +Mac = 9fef67209b8da28049b80efe98f85f13 +Result = F (3 - MAC changed) + +Count = 22 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 9a143c21cc6c9528b9ddd7e4405682e1 +Msg = 00 +Mac = 1c3c3b6d1d86ac5787234f8f6d707acc +Result = F (4 - Key or Key1 changed) + +Count = 23 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 802047ee1309e548ae81e93a17bff9e7 +Msg = 00 +Mac = 1472aecaa0a09e45893a14090ed9a17f +Result = P + +Count = 24 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = ab79ce74c0959aea0fd0b28ea5d0afe2 +Msg = 00 +Mac = fde8a95536cc334f7fc8881a187afc61 +Result = F (2 - Key or Key2 changed) + +Count = 25 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 644ac6fdc1e713ecb7ff1e0bd5729a57 +Msg = 00 +Mac = 95a93bb50703521e6c1a8be1aab6a646 +Result = F (3 - MAC changed) + +Count = 26 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = b4571e56f66a857daffbdc99370ceddd +Msg = 00 +Mac = d2742ea62f1d6513c4eb0e533922f251 +Result = F (2 - Key or Key2 changed) + +Count = 27 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = abff2b097d688293701ff2c49ba48eb3 +Msg = 00 +Mac = 17e724f66d4a9ef5dfc0cf903f8ff04a +Result = F (4 - Key or Key1 changed) + +Count = 28 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 9d45f6d97d1573de3cb3488befaf5b7f +Msg = 00 +Mac = 96ec3cf234d6704483a93885bd67e6dc +Result = P + +Count = 29 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 00d385629e5df815a5300e6635351934 +Msg = 00 +Mac = cb23bb449ac26e2186b02f7428fa022b +Result = F (1 - MAC changed - for 0-len msg) + +Count = 30 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 2f9109e7eea21b2615c81c03182ce603 +Msg = 00 +Mac = 4532211f48124a9eacd795ea4313adaf +Result = F (4 - Key or Key1 changed) + +Count = 31 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 9f3830f5cd40a2396b6093b358cef1e9 +Msg = 00 +Mac = f5ea59ec909a8ec2d8b11f5f276201fd +Result = F (3 - MAC changed) + +Count = 32 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 17378e17c41586b88523a6b6af738dc4 +Msg = 00 +Mac = 40cc8b388be6789aca584659acc7aa06 +Result = P + +Count = 33 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 064e8c88a0a0766186d75867b5ca3acd +Msg = 00 +Mac = b2f94222a68fcf803868b00404ad170f +Result = F (1 - MAC changed - for 0-len msg) + +Count = 34 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 1e39f1cba97dac4e4d4f3bce7fda72e5 +Msg = 00 +Mac = 60763815c1075c31078a9b44fe4b8427 +Result = F (2 - Key or Key2 changed) + +Count = 35 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 06f0e4618e0ea8fa5443b50ea005b672 +Msg = 00 +Mac = 295c6cd08b1d668d9fa85ef851b1e029 +Result = P + +Count = 36 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 648d77b57770b67ecda1ce7951eaaeea +Msg = 00 +Mac = 2f3fbc6edf5827fce440b9a7ff8535b4 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 37 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 6f3938932b5c1280311e892280d8a822 +Msg = 00 +Mac = df02edfb316350c81dbee385d6e1d8e4 +Result = F (3 - MAC changed) + +Count = 38 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = f909903451d1f9f45ffcb93a407ffb50 +Msg = 00 +Mac = d176620722c5327270ef30956d7ac02f +Result = F (2 - Key or Key2 changed) + +Count = 39 +Klen = 16 +Mlen = 0 +Tlen = 16 +Key = 181d92c7df1ebb0924719e066e08b95e +Msg = 00 +Mac = 144f688fa0d29faf787c48cd0765eecd +Result = F (4 - Key or Key1 changed) + +Count = 40 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 0c5b763b1e97b4f4dfc7059e4896ba58 +Msg = a0b3c6944b35f7208dfb40b4c4ba134a14dac928b679950793b3b6751221f178 +Mac = d922ea85b3992a67 +Result = F (3 - MAC changed) + +Count = 41 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 461d7d629778c8b05a688bee4fc01e9f +Msg = 07571a6c9bcb6f97d626796bc74e551d1c45cce38afed761706f6264b7e751d3 +Mac = 794b224a85396a27 +Result = P + +Count = 42 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = b91c6b09bf5a0487a9b5ea2fe0c1f3d2 +Msg = d31fd388e97727ba0a35d34ae05d9980e5974f6b3d86e2d4dd569b70f394a159 +Mac = 2665ff2785bcb606 +Result = F (1 - Message changed) + +Count = 43 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 0737836cf771e842a70f3eeed7206799 +Msg = fce631a9eb130178018ca88cec966ae53ecc83a51d0a73173c8a9af10b4d04d6 +Mac = 1eee822e37dd1e84 +Result = F (2 - Key or Key2 changed) + +Count = 44 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 120132c315bfc9c4fb93023f5d3500d7 +Msg = c2576ed3189eff3205f5e01dd8fe7c64f12dc73c807c22918f607f9e43fcc5ba +Mac = ddca15c8b5a80cb2 +Result = F (4 - Key or Key1 changed) + +Count = 45 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 5363bd7d867a9f9f0592dd9940a791e8 +Msg = f34e86b8803d386573b81045df945df8319a93b613de4c41904c8e1879844cee +Mac = 109dd7c920ebbf41 +Result = F (3 - MAC changed) + +Count = 46 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 3fa1c7cffaa167557b250634e8052fa0 +Msg = 4255f8af18df7237e0abe98421aec9634443561752d893aaffe76380e829ef32 +Mac = 0eceab8d28dd4a2a +Result = F (2 - Key or Key2 changed) + +Count = 47 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 6583a4ff27b6e109046d11b977c8293d +Msg = b63be320f92e01260fba37312224494a2764dfc928287c75dc1cafee7b698d48 +Mac = fa0cced22e896b40 +Result = F (1 - Message changed) + +Count = 48 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 5949378fd3135dd02ee1929014000411 +Msg = 65c16f4e66b10c7c153be7ba2dbe3a6d4eed3b04fec44188edc229747d52f8c8 +Mac = 9ef023345848680b +Result = F (4 - Key or Key1 changed) + +Count = 49 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 0e80fa889b1d96a0d23d236d4d642a27 +Msg = f6f094e46cdb2e45fe49b18aff1427ebdac9710fa7f47f75fc9ec7140613ef3e +Mac = a09774009934c9d4 +Result = P + +Count = 50 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 1f88dfd4f5c52c22b1db47f9f4fb6e2f +Msg = de433ebd1cdabeac46b94cc00d984f172923535ca8fdfeeb860546357dd8e266 +Mac = bb17b3983faee0db +Result = P + +Count = 51 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = ab0ab9e79ee53a6946a31ea807258dbb +Msg = 89ddbb042aa2aea5207b312c9831fb48138aca90626ef7c5ce474d5797ae1b2b +Mac = 72f316d5bfcfcf6f +Result = F (4 - Key or Key1 changed) + +Count = 52 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 1eb19542a0064564e096e5d7d60acaa6 +Msg = ca25504f3f5559aa0e88199ce1551c9240b5c76f55b83bdbf2777cded54ad3af +Mac = d936b1fca0a96aec +Result = F (3 - MAC changed) + +Count = 53 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 33f11aa36d8ab0fc53486839a576b31e +Msg = a58524e37c2504468f77a9c21b0e6d1a6b5e06fa051d5b8025ef97fa69417cf2 +Mac = fd64f7cb283adce1 +Result = F (1 - Message changed) + +Count = 54 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = a7b81d8245129aa451dcb7229de415e5 +Msg = 2b2ec02aba10aee056443cf90585caa2510b3b835454a99f1324567b0dcbe682 +Mac = f4cd48f32c9dc66b +Result = F (2 - Key or Key2 changed) + +Count = 55 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 3c1baf0d915e5aec92bb62babad0ba2c +Msg = f8f2424c2dc0d0f3821af7244038da0832c547be4ff0850b98c04d4d44a716b1 +Mac = e17ea6862129d6b9 +Result = P + +Count = 56 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = 943a49073db6ae94a88844ed895f8fd9 +Msg = 8a15e5be479d3a39a459ca7b50457472cbf44f6a8324ee3d4096e2c3bf1d8190 +Mac = adcce0ea2c8b11d9 +Result = F (1 - Message changed) + +Count = 57 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = ebf8935f53dfb3bd40453c31f627c73e +Msg = 7edddb03d861dc9796f8e069bde434681620f604db436f34b7a6a3beeec925b3 +Mac = e8ea88729d49bea4 +Result = F (4 - Key or Key1 changed) + +Count = 58 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = f18e8feed77d1b80c31483fe69073d56 +Msg = 37c6206e23163c39a13f19de48cc25dc26e6f83cb376e8d2048ad7c141fa503d +Mac = 0d4f5cdb2a49b471 +Result = F (3 - MAC changed) + +Count = 59 +Klen = 16 +Mlen = 32 +Tlen = 8 +Key = b4e41c7bfb8fcaa5236f656185c1496b +Msg = 32758ae47884fcef766dd1fee1a7f55ca6f6691574e2ea097a68cd4072ef2e7d +Mac = bad08badb66c8e5f +Result = F (2 - Key or Key2 changed) + +Count = 60 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 708484fba04972b815256c5dab12d5d4 +Msg = 97751b4893a83cfe6b760e10da795682e9668749c09036f9bfadce9dcbdd85e6 +Mac = fa74b33267c5ffeca75e5e16978bd7b0 +Result = F (1 - Message changed) + +Count = 61 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = d0df1bdf1df6203241722fb9c9c1cf74 +Msg = 0e41361ebfbe4e6580fb5751e58e98de8ee5d9849fe875026fdab15a85804c1d +Mac = de4992c9d33659620cc203848e42a279 +Result = F (3 - MAC changed) + +Count = 62 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 7c0b7db9811f10d00e476c7a0d92f6e0 +Msg = 1ee0ec466d46fd849b40c066b4fbbd22a20a4d80a008ac9af17e4fdfd106785e +Mac = baecdc91e9a1fc3572adf1e4232ae285 +Result = P + +Count = 63 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 7b4c800f5071521119e4cc6deee8729f +Msg = 775946f3014523b6ea37804585cadd35e74e9382ebc1022579fbebe407281b6e +Mac = 2f6697f5d067aecdb3ff5a09d9169b3b +Result = F (2 - Key or Key2 changed) + +Count = 64 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 7618d222630138cc14246e8fddcf98cf +Msg = 432e3575a966958434da38dda3606f1f69adeaca536a7bf66c8b1e451edc3716 +Mac = d7d78aac615ffc1bb32dfea41f2b8771 +Result = F (4 - Key or Key1 changed) + +Count = 65 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = c8804fef18ef263c010c8a205e14516e +Msg = f2d23bc605181e3894f61fa63d61ed4a610123ab7d3531c0b7579a58b74161ba +Mac = bfe5e2c10a5cecccd3de2529f340cf6b +Result = F (1 - Message changed) + +Count = 66 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = f98ac86ecb742c188852980b5150d100 +Msg = 4e6fd4fa7669ce9552154bd796644961b51067dc02303430150aacf671280031 +Mac = 73df5f4d3ab9240d4fb2be775188adc0 +Result = F (3 - MAC changed) + +Count = 67 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 638d7d95ff5f57571261e23ffa081189 +Msg = 5f5bc4e32764bb00085667b7f1b15433f09c1f6fa48689f8f50dcaf5021f2864 +Mac = 96b270629b2bfbf721f1a70eccf9abe0 +Result = P + +Count = 68 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = a5a20d8139472a4cb38993c5711ac2ca +Msg = 73e1e75538f9a63e49a068189e3b0a1a1e65ca5d1295589bdafa3136deaa287c +Mac = 320647d53ccdf2335a9c9a3452c1cee5 +Result = F (2 - Key or Key2 changed) + +Count = 69 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 57656be54860414e8a62223381ca4405 +Msg = 3447e82ecec6c8b6fe1e44ed91f933e4a70c431911eb86eefe222d5ad78193df +Mac = 47c6b5a28d723129648aef418b74daa8 +Result = F (4 - Key or Key1 changed) + +Count = 70 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = e7b665600a2aa413e117c53816cbed34 +Msg = 5e4d49ab796025157add6d42258b9c506d9ce82bdd85c604360db0ff5aa4262c +Mac = e741166cfa2a58003dcae357d7a199b8 +Result = F (2 - Key or Key2 changed) + +Count = 71 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 693cbb46bc8366086ec7cd7776f2c563 +Msg = 5a908ae85ff721ffc5096aeeda5ee83bddcf639e7be68d109394e5253c22dc9b +Mac = 9d56b03ef83082f601a9cc8730b0de42 +Result = F (1 - Message changed) + +Count = 72 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = b4190e3462e07fca26496adcb877724f +Msg = 02097035a312cb02ea7f09fc1accc230a205e4a208e64a8f204291f581a12756 +Mac = eb9604ec71aac0cacb63e0b369ae7664 +Result = F (3 - MAC changed) + +Count = 73 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 4ae06c3b2940819e58eb24122a2988c9 +Msg = a2e7be3314238d7e4f604e134790bb15a87c09356c091b1aacb9f605b67475b5 +Mac = 14b4507ae4b50cfe4989b544bede756c +Result = F (4 - Key or Key1 changed) + +Count = 74 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 8d560de2e310ea69389221ce2e850625 +Msg = 04d9db45e4df19db757b9b95c25be43e822b8372ed148d49ce824a36da2b2f2e +Mac = 647f2874a083e82fa804b6c58c7b5c90 +Result = P + +Count = 75 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 0e1a79c5d734118c19eaba700f5da238 +Msg = 026470d57dad9893dc037b80978bf70c2e552fe46c8fe8c3ebf8338bda984d94 +Mac = b936ff3bb8afb9e42351a2a3ad49d70a +Result = F (1 - Message changed) + +Count = 76 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = c88b1bc0050e19780ab53efbea175634 +Msg = 7207aa8fa87283f1f57019bf1c89645ff8fc36ab1102704e6d577671a9f7e098 +Mac = c1dbd79e31c3b0bb824f16f735ccdfe6 +Result = F (2 - Key or Key2 changed) + +Count = 77 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = d87df10a53eb3ea24c003d2a65e44921 +Msg = fedd5813146a8c2af398d6066956829833b75e44b6e010e4f025ac0fad6f869b +Mac = 9dd7cbb34445bfb351d01e8cdb21d695 +Result = F (4 - Key or Key1 changed) + +Count = 78 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 4d436a4a5c02b22ad49548b97216f277 +Msg = 2d73204f0b2d35806a8227206922ac9c18eff6ebddc73809179d67a702cf3e21 +Mac = d2654d9bd6396075296cbe918d90670f +Result = F (3 - MAC changed) + +Count = 79 +Klen = 16 +Mlen = 32 +Tlen = 16 +Key = 8af7b74e35eb38f4086343bc329ab465 +Msg = ada1fa439c653d0cc88c0d129ba252e86c7d20a3087be93e920bf13d8e6f0391 +Mac = 0fc9b177c874ea909b6beb1db1b802b4 +Result = P + +Count = 80 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 91ce6c87860aa84053f42e1abc16f489 +Msg = 4c287bc16196698d762d5fb428e801975fdaa29026b7b78dba968bfee0f534f27cfec57c6009c55c6261e0dbb14bddf76944d0c0648b910254df6c240e8a1a50 +Mac = c1ce12f51aa823d0 +Result = F (3 - MAC changed) + +Count = 81 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = b7b774e5c9e2f6926660c48b8df52354 +Msg = 937273c7355e7b88a630d15be875234cacaa44e815f31997bf10b52c008cc3bb6d3724aaa0d7da0b391b252923d0eb6119575d346857d89af6af099883af5514 +Mac = ff845eb2d77aa5a7 +Result = F (4 - Key or Key1 changed) + +Count = 82 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = d7572ed0e37261efa02f8c83e695efdc +Msg = 85a327b0c7a31a4116e7fae0c0971e1578ab6fbdf90124b9ecacd0e70c909f51882cdca5a8b6b7e6b46d4660122bc9e1ae3932269f68e594075dbc293a2d4eb1 +Mac = b8b3b7526419e069 +Result = P + +Count = 83 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 259129eb760f8a770410c160e4e13a6b +Msg = 77d9c306aa257379053cf1f2043c388a301dac2a9e2bb89eb8bab6eb3f150fe391b7a3f628be6b4b649c5c108a108f0e0c55a0800b9954251ab07e94450a23d0 +Mac = f9376f11cbec0ec0 +Result = F (2 - Key or Key2 changed) + +Count = 84 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 6ccd61ed20f16ca7a78192f5b6ab5528 +Msg = 9211231ec382ecaaae57f34de1ac6bbb50741014a978160ce59c60491e64f30da0b8aa1442e42bc0f7e31973a0dd8c3c24eebeb7c329072ea7dd0b04bc163254 +Mac = 94c275e6a4675d8a +Result = F (1 - Message changed) + +Count = 85 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 1cdc44c40efc3c0ed6fb84b0c2f78aec +Msg = 818c636772036761af037c23aa8cb63e424f0ba0375b645de2f8f5af23d3ca3b9a5ca3951a6d02075a2c828eee326a2676ed8247164226b0267798632a519bf1 +Mac = 74355397c7a29bb1 +Result = P + +Count = 86 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 2e523e9d8a5532127ec63b220838f11b +Msg = e6d067907610109b8789e1ad00542539991677b9efc97a98d8bfcb50f3e334d0844323207fcb5a47e353e76d49dd573dbd17278dcc287b41dea8126cc7f07ab9 +Mac = 7bd6745c6f73d92e +Result = F (3 - MAC changed) + +Count = 87 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 0eee5bc8994b723a580f67d45ccb194a +Msg = 1dc4fcbc73dab4e73ed9d7606acdcd42b74972460c640fe50f028abdf255d9368fa3bc65b849ac31c8000eb47e5fade40ca167726aa927f2f043133d24ad0613 +Mac = 486721355fff9cbc +Result = F (2 - Key or Key2 changed) + +Count = 88 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 388468d10bf0b770cc125f8b7d359261 +Msg = b9aaadfb3f60e48f1b421a9450129d75af2ce811ab0b1661680e9d5b147c38167ac7252ed40d916ae1e4519c3857d2c9dc2c538a106951b26d16433131438839 +Mac = e13cef9392f4a80b +Result = F (1 - Message changed) + +Count = 89 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = edfe2e15edf0b0c28875651d4becfca5 +Msg = 70b1e2e4cf260b108f5a52d0d8234838ffd6ffe7b4acd78d7d6b95aa6342b598eaf402cb47396358ce61f8b4aa3a65bed0346e0036c3c5323f051f007aa58d0e +Mac = 7b70730219907d18 +Result = F (4 - Key or Key1 changed) + +Count = 90 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 6876df1a77e11165331a5ce2e0e6bea6 +Msg = 34b73ba208bbe1df06da768b0321243815df4ece555974dee2bf5732295f5ea9631939425e13c47681ae2ecb0bb85aa69be38560f5752a9d034222d91ad71044 +Mac = 80e00df873439fe7 +Result = F (1 - Message changed) + +Count = 91 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = e65d5fd5f446b4eab63d56b0a5eb1d29 +Msg = 554395f9b113c0f2a1f155de171d6c0a805c838beb90c3756e8b864dc52517c03d8cb894d1dceae092f0e8784c7775ac664ad7320afd246086b3bc9ef237171c +Mac = c60f8ced2efd52fe +Result = F (3 - MAC changed) + +Count = 92 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 5bdbd06f4df6e15d644f3a635d7bb14f +Msg = 4fcc7c2763a8dd5bfe74e34f512be8042af9ba1c73a944edfb616ad47a8d34cbcf192f3e8be3101bb3709b29c2dec39aee1913e3ac524ccb76ad50c2cc3a3e75 +Mac = af33d5a2746bfa5c +Result = F (4 - Key or Key1 changed) + +Count = 93 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 13bf2f72211cc8e16ac1986a22e19f60 +Msg = 8ee212ed4bd110ca6a91b37bca59e19ba842e3a1b50619bc6b07ec02a09303ca5c66ba56e870d0b627d95fe829431244fe4f9218c862418f14a92bd76b5a3a82 +Mac = 18e8cd5bd42c75ea +Result = P + +Count = 94 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = e9b913c2f0630562eb1c16b3b1ed8409 +Msg = 031105ff01daa66ff95834e47b6f5c683994084d0fcb84c140d1dfa2039a95933efe6a4f91af993d966e2e45677eb1e36159047928a38eeaeb5c9a64ea59f97d +Mac = f00a17da0fb9e6b6 +Result = F (2 - Key or Key2 changed) + +Count = 95 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 6fa5a5991315702cba3beb33867c7bca +Msg = bb0fabffbcc6935ca35755fd4bfbd192b6812cf75c4dc95bc3a175a1501be2065d7f57058cb7a5785a185dfff7e740a5551cf7c17e65051b2c6ef9509360e878 +Mac = dcfd143f86442183 +Result = F (4 - Key or Key1 changed) + +Count = 96 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 3f8c6d21ec05bc439bf82774f1812bd2 +Msg = d726deb8537bcd671ddbaff8fcc6968f951b71aa82dfc802a53aadb2bcc2ef9a35fd90064320798b311d6d32f7dd3cd90bca39d57991eddc36260d23b108aac3 +Mac = 449e20567875d56f +Result = F (3 - MAC changed) + +Count = 97 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 8ed1a4873bb37fafd4f8c2ee417443cf +Msg = 1652c9539bff4b6e9f303f3e6b5d4b9ff7e85aa2a401ee8c2dc7b722dbaf6424f92ab9188882e2483405070e8666204f5a600b46949cdb830fd57433d63a55a1 +Mac = 601eb06acc5a4e0a +Result = P + +Count = 98 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = 83a4669cb9961448cf418cb83a16098b +Msg = 26d97c3e28460d46216da39e043e024ed08e387b1e5fcfd3f962472cf1bac4676b03039b3b93927075ff41c87fe1d4a56bd9fa4784d283942787cdbdd5457f1f +Mac = 01a42494a10691ce +Result = F (1 - Message changed) + +Count = 99 +Klen = 16 +Mlen = 64 +Tlen = 8 +Key = c9e6d0b3dcd8ab50ba5ff31d9c1bd95d +Msg = 0d32c1cd73569ab2b10c67c167875fe22625358ed3469b424c5e052d4e49af2c97dfe1f947c972a08c938b327e01adbc48a7f57a89b49f49fa0fca5b50a57a2e +Mac = 476add8ee51b5e3e +Result = F (2 - Key or Key2 changed) + +Count = 100 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 17281acb525b13653000ab45d86e7010 +Msg = 225750ca982e5b34fc62e277eaaa0f248532abf374933e572b0278566cc7cf980df26abefb493ef57f8477cac0bd19408a22e71f4ded84906996d8e7a846b5c0 +Mac = 0f2aa7f2dffcf7df34c84d101aa9bab5 +Result = P + +Count = 101 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = d3624653ad0ed144667df0e0e355c29e +Msg = 39dd298acc45cb597f0733572677f7102536c0dd86fcfcc44895d29af92a5b6a87c20f1b53087d4c874f4083aad32e877142d20ad87b1d8b7295587bfd235d9f +Mac = 795da5a50f5b7df40317616b5a470c02 +Result = F (3 - MAC changed) + +Count = 102 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 813b3d579664cebe50a8e7050a0b4e65 +Msg = 78ad6517a09b99c1113d175f3129aade4d4a2516ebe054f15bc833d08ffe5e2a2d60c976e1b4b14cf8edd2c72baadb2db8001fd2b8798d39ac5ce27d592f1def +Mac = 20f40553bedb6496233e0b53143b6d10 +Result = F (1 - Message changed) + +Count = 103 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 21095cdbe94afa27d84bcd68276993f3 +Msg = 10525eb2794d03409faeab22a6d4cc4ebc0421daacb0e865b0f94eb387722897c827e31676debec9d49c36837b6bc234a95bc10ddcc7b1e5a0d9a1dca550e93e +Mac = c0b806ce5eaceb51b53b028e6efea9c7 +Result = F (4 - Key or Key1 changed) + +Count = 104 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 6c769a4822523525bb36c02518475549 +Msg = 4af38908fa44b46873535b39f432d9b3e677f6d06d8719af3d15b936afe515fc13d62566481fd0108bd95f6e8dbe32b3c830b1f1127d868273610aa834ccfc70 +Mac = c1934b9c74127cfd515521df330c0333 +Result = F (2 - Key or Key2 changed) + +Count = 105 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 6b454930925ca09d39e1e39a2e78fbfc +Msg = 2bc884394ab7050c14d66fb8901cac109c0126668d918a4419bfcc5d75fb6bc2ba07f6598d06cf8cffd62f3eb29f6a033eac7490d27aa4701f0fb9f9718d1b7f +Mac = db19b8ef218018e5a53abcc39b7c514a +Result = F (1 - Message changed) + +Count = 106 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 5df295be7c44d59c44fead3f1988356f +Msg = 3d7370cc2d61af35bf7b2ba50a143b23bfa0d1eff66c5ace2d8de5a28d17883d708fff7721a2977ee2164b6e34022c22523a0649ff0e40bc8134040fee02a065 +Mac = 81b3181acbc2d6d2960ec57441ff3c40 +Result = P + +Count = 107 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 387fc73be9f019913f2222d98053f95b +Msg = 944daaa76249bd9d3bd517d01b074920b7d4434d1a2618af902e0228c3fca658244d990f8ca42208239c42d4827cf114140cabebc2a72bb3cf9277ef008c1c81 +Mac = 5de79be9ff9c3c9d64f9cce35b188648 +Result = F (4 - Key or Key1 changed) + +Count = 108 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 7424990dee834ad05f4218861ab21eae +Msg = 49fd56dec210e903f6c703332637f9c267eab9333e2701a16c74ce5e0b5a16d9da68b9c5d67bb6770a3c9a90a7e93fdd5759b27bcf3a753fa39ee7545fb60026 +Mac = 38b66049ee8ed81f3f8ce2b45a4001ad +Result = F (2 - Key or Key2 changed) + +Count = 109 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 232407986ad4a8e438990fd04ffa35bf +Msg = 9d88a7970d4c58cecc20ed1811298a5b37297419ca49c74fe216679dafc938a656cb92bafb78efb31f24e71c2d5b5f994f6dfd82862adfd2faeb8c408fd22aab +Mac = 313d46dda3ccb75f497f9069c9478b3a +Result = F (3 - MAC changed) + +Count = 110 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = d9bd6ac153cb0bc4e19e59c45cfe0d6f +Msg = c68094c26c7f017b79f126dc26b3bbcb95f97535ca412da5f7853e15fcb52f042e6492c857c22b26ffca5520eabca20ee2cec2f0b71ea60383ece49232065e0f +Mac = 3b17778955990ae58e03feda7fc43998 +Result = P + +Count = 111 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 857fa35c6f70f637a9a5e6f215c694fd +Msg = a1fc1307757ed91665980e2d3cf9778d8bffc9a84cce6bd5c5a07e47af5c1b409869db8286c49d07dd5083f1826e3ec441ce8cd36c85fef8c55fff889e761286 +Mac = e1ddd63db51d3035adfd309ddc186238 +Result = F (2 - Key or Key2 changed) + +Count = 112 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 501f5c58355d1800f155f272dd09afee +Msg = fd3564848ceb5d8cddfd50732956d18b4af433efc2e2a914ff66aba1de7b9b816d81a936f534f47038dbf1def7c11144b7e99ecec5fee6a478899cbeb6677bfa +Mac = d995f9bae6150996cd9b798fcbc623c2 +Result = F (3 - MAC changed) + +Count = 113 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = c1d636989dfbcb0edc9f014cc82da6b5 +Msg = 20ef1bbf8a719497797f1f1bc4617179ea682a24a92f0831cd215a01473bb8207e13f26dea1a467bde1ed638a51359ccd11210c4d0a2fb70c0374e8984f81f17 +Mac = e4972a59db04f78da1728cab051faa98 +Result = F (4 - Key or Key1 changed) + +Count = 114 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = b4bc5a4d40716fb06a359ef9537726b7 +Msg = 36594fae7b487798d62c2c95ccbf51c984df5ca6343465b2dd147c8b36a34028e53fae61f51b36b28529143cbd3edd0c077158a07bc490a79a06270940f7ed27 +Mac = cfb3fce039ee2bb94b6961ff86688237 +Result = F (1 - Message changed) + +Count = 115 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = dc796e5d9b712c798922eef315cb4728 +Msg = d5755c40f52364343d2613420441afe9da9a5329d3c1e5a123ee49f5eb8ad47253f104f5d9776e08e9a9f74fadd5472326cc7b7c7ce61a1492474bc9de614543 +Mac = 315f0ce76352448bbd8a5012a9907a23 +Result = F (3 - MAC changed) + +Count = 116 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = b82fd283922e730a07f7ddb87484f66f +Msg = 94e47b82b728d639777d5d5843de2a5c364956cb4b21cabdced2529b10b3f4275f307fbc352866d7b094cfd7426ae801aac17ac72335c04adb8d791da69b3c4c +Mac = 86e6a8485b43f1b258eb59688af91fbb +Result = F (1 - Message changed) + +Count = 117 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = f6db7efdfe73dcb4a26b8448842b55e8 +Msg = a1fa1fcd5f095b2768e32cd733365a136a108e7493f212aaef27d86da253beb6154f103099344ee94db6304e41b4e856db0ca7fd7ab462f45a07d697b85cca1f +Mac = f998bba6c5d3efd78af9ef57e7a38f7b +Result = F (2 - Key or Key2 changed) + +Count = 118 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 3c1ba92d096fba134dfb4ef412b2568d +Msg = ba7725d74465f5d92454bff794e0be51c4d0af7d88f729834d57312c528d0a7d15694a7e0bdc334093173f1d2df1fd42e7891c6b192dc5ee527b2ffb92c66d22 +Mac = cfe6022ad29a54627ae7c4f907ef4da1 +Result = P + +Count = 119 +Klen = 16 +Mlen = 64 +Tlen = 16 +Key = 4a92337f017a85b136ba6766444bbe84 +Msg = b0a3a8aa5d4bdfbb4c5c52acdcc60405c379f752b077eed42f2d7777cc0329047b322b9837d5f655ea445b578d9dc7e990a3c6f97cccc6cad7951ee948194e62 +Mac = 153eff3c035db2fdc752ebd22302adae +Result = F (4 - Key or Key1 changed) + +Count = 120 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 305ec69b23e4490e0f8a5241cb9c8c85 +Msg = c641cf589020b94026ae +Mac = 3bc054afa9771970 +Result = F (4 - Key or Key1 changed) + +Count = 121 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 28929286bd1391468ac75f5c03689f74 +Msg = 3813592f268a7a863c3b +Mac = bf1b514d2f899620 +Result = F (3 - MAC changed) + +Count = 122 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 1b3163e2d3a471b9823525abc7543c4c +Msg = cada03e8c967f9732a81 +Mac = 53702fa98e6f9a19 +Result = P + +Count = 123 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = be1ed49e2cb0caf6b6a0940c58453b93 +Msg = 4a348c5ec996f7a97ef0 +Mac = 3358d143dff4adfa +Result = F (1 - Message changed) + +Count = 124 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = f18be18df045ba31b80f3283cee6a681 +Msg = 93006a06d7e6df775b19 +Mac = f3252f061dce32f6 +Result = F (2 - Key or Key2 changed) + +Count = 125 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = b9dafe18a904ba761762ec3fe0e4120b +Msg = 173887316279a47fc699 +Mac = 884f5b21d478d60b +Result = F (4 - Key or Key1 changed) + +Count = 126 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 31fee08df80cc1009e661230e25939fd +Msg = aa54ff7466923b265fb5 +Mac = 03dd2a9616f653a7 +Result = P + +Count = 127 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 65a28d970b2bc7afafb4069c26d264a4 +Msg = 1aa5a3a4e6c5e5394e50 +Mac = e0423589b192caab +Result = F (1 - Message changed) + +Count = 128 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 6dc38e37d1379732df4dd535db88d17a +Msg = 0093c6d94aed50b398ad +Mac = 19b08e65d391c491 +Result = F (3 - MAC changed) + +Count = 129 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = c5329fd99848e1cdcfa406ec09745ae2 +Msg = 6d83d0ad7cc7efd0d2ca +Mac = 8ec2709e1466f8d3 +Result = F (2 - Key or Key2 changed) + +Count = 130 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = e608914a930b9c300b677afcb8689d63 +Msg = 146629e70b37d8b83ee8 +Mac = db78a639bb15c84c +Result = F (2 - Key or Key2 changed) + +Count = 131 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 0a998d3d390f5a80ad398b2070489984 +Msg = a91c1a8d9d268ad153bb +Mac = 5643a8c99b99d944 +Result = P + +Count = 132 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 2b6f78ceace47509a43ceb6b761e7866 +Msg = 3c0a41a78240c9d2fc22 +Mac = 811acef50d6c1913 +Result = F (3 - MAC changed) + +Count = 133 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = ca481f557306f9ce386edd0cfde375a5 +Msg = 9f3488736ef6e2c3a51b +Mac = 57e8a0e5965399c0 +Result = F (1 - Message changed) + +Count = 134 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = c0dd1cfb3add04cd67a8e59be7ac8dcf +Msg = a7c559c82776f429ac31 +Mac = 7e43a2b43d030ff4 +Result = F (4 - Key or Key1 changed) + +Count = 135 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = d3130d9e5ef516b6bf172953a37913a1 +Msg = cbe97e14c3100c9fc564 +Mac = db9f674a2d0e9ed9 +Result = F (1 - Message changed) + +Count = 136 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 9ec8661a880ebfd15fd8b04f2ae09dbd +Msg = eff803e0fc809cc48587 +Mac = febec8d41b6bdc1f +Result = F (2 - Key or Key2 changed) + +Count = 137 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 6c2b091433833a0ed915354dcb70d982 +Msg = 90f1416768fca7dd48d0 +Mac = f6ada24319e502ab +Result = F (3 - MAC changed) + +Count = 138 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = bc79d444dff9d9e722effab07b068cb7 +Msg = 07d5a925b724e2443936 +Mac = f964302c270af24c +Result = P + +Count = 139 +Klen = 16 +Mlen = 10 +Tlen = 8 +Key = 1a15b24ba5d9648358f2c39c9da8512b +Msg = 15b94910853a8f23dfb8 +Mac = 8cdfbc13239e6aa1 +Result = F (4 - Key or Key1 changed) + +Count = 140 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 618fb69c8fb670250c306b3225687d17 +Msg = 7f54845a57d916866eff +Mac = c0d4db73891bb1efa232593407856808 +Result = F (3 - MAC changed) + +Count = 141 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 8000aa080c127cbabfdfa5d9d9728c7b +Msg = e53101e6eabcda32c13d +Mac = 5671badc409d4b170d4c861a0b3e1fec +Result = F (2 - Key or Key2 changed) + +Count = 142 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = b05b5557ab145cec2f00706dbc6a3c23 +Msg = 5e2f601395ec406fcf96 +Mac = d00243508d25804548c4b4b512cb1906 +Result = F (4 - Key or Key1 changed) + +Count = 143 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = e8b13346b61daedc1f9e3b49df8d1cd6 +Msg = 0593365419e0f75b6323 +Mac = 871eb97850a776e7ad498467064484f9 +Result = P + +Count = 144 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = bc498326755503ff25d02805eb351722 +Msg = 9ece4c82fe9d38ef64ac +Mac = b5e88af50d1cff3d2b6d304edf042c43 +Result = F (1 - Message changed) + +Count = 145 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 4d248e73886a0e36b3ce7c6113477f4d +Msg = 8de6fe3b24fd6c202ef0 +Mac = c1a4f6d0ff7330171cfe570e900ce2c8 +Result = F (3 - MAC changed) + +Count = 146 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = b1b9fd78e3f8eaf4e8c91da62b2da534 +Msg = 482ea6f652067e8b791c +Mac = 63c6994c98bda91723f832020fa7d223 +Result = F (2 - Key or Key2 changed) + +Count = 147 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 85e4e63341658144a99fbd17d94e3177 +Msg = 21ff834bec4ec6384522 +Mac = 580c1e549a2ceca4743256a9cc972e84 +Result = P + +Count = 148 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 88b5448372548e6aab1b262630a28a47 +Msg = 36dbbff560ef04ea731b +Mac = 5fd17fd704baaf1ae6b3330ef2989dae +Result = F (1 - Message changed) + +Count = 149 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 8cc76730ca47620d0b437112a2c93fd0 +Msg = c73be9f019913f2222d9 +Mac = 2c73e2b5b84d8f4f3db1fc92831a03bf +Result = F (4 - Key or Key1 changed) + +Count = 150 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 7b657c640f155f1ff461c83cd656614d +Msg = be9c5e77bf1b9dcbd4f1 +Mac = b660ec36c0c0b4d987439505f1bf57e8 +Result = F (3 - MAC changed) + +Count = 151 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = d5044e9f10bd274aad4f7e605bb828f2 +Msg = d0be84df789c98dd125b +Mac = a26e513b09f184caf8d76d76961d1466 +Result = F (1 - Message changed) + +Count = 152 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 24d6d4bdc9fc4cd05b2867e9123acf18 +Msg = 0f9703a3454c25c0b105 +Mac = 41676ddadb7b960e0269c8a59a6d9b91 +Result = F (4 - Key or Key1 changed) + +Count = 153 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 6aa049d06bf66d2e2b65541eaa3730d8 +Msg = c562ab24ae5cdb7654df +Mac = 0d4d1196158fec46bfa754a526ba4a25 +Result = F (2 - Key or Key2 changed) + +Count = 154 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = cf3727509577f1932bd7a92589c11e67 +Msg = 831188efc5d1f6dc9bb8 +Mac = b5d162c885d7d4f6f65f4188d6582240 +Result = P + +Count = 155 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 0bc2fdd890c19882640f8d4188b88b9d +Msg = 296828cbee50f41d19b1 +Mac = e583d77645a603d841eaafa8860bfa91 +Result = F (1 - Message changed) + +Count = 156 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 5bab8051e2520b75673068b9cda93cba +Msg = f16cba03402f9924daa3 +Mac = 97f7eab25dc3ab017a9affc0e400dcc3 +Result = F (2 - Key or Key2 changed) + +Count = 157 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 7ac46e3249ca28e1ef0531d80fd37c12 +Msg = 3e9ddb8121760bffb7c6 +Mac = c6eb13d5087d05b4eba2e74b283b7fe3 +Result = F (4 - Key or Key1 changed) + +Count = 158 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = 40f78f7ad3eede36e13bce222c6a4bc7 +Msg = 4fa8ad212ef73d37d48e +Mac = 3831419e62b51b7ced0d9117e48fabf6 +Result = F (3 - MAC changed) + +Count = 159 +Klen = 16 +Mlen = 10 +Tlen = 16 +Key = a1f82c9924411e98e6f93fa0d07559e2 +Msg = 7d4748147575bc0113ab +Mac = c23dbc58fe22b34f7b007590558a3080 +Result = P + +Count = 160 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 84760f98ec565d281496b1295b25150e +Msg = 9ce942ec81f8226506d48788e3acf49fcab6da22 +Mac = 606c2f459a9ce198 +Result = F (4 - Key or Key1 changed) + +Count = 161 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 3b6dd5169350b230774b02b9b44f06bc +Msg = adb1ad81dac0ebc650d48f7a9329755a83f293d0 +Mac = d7ceaa858508c476 +Result = F (1 - Message changed) + +Count = 162 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = f98d00755bcb45e6822121fe7cb03c8e +Msg = 7064a2491f716f4a2969815e4a281a54690ced9f +Mac = e14634c400b9f561 +Result = F (2 - Key or Key2 changed) + +Count = 163 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 5d27cb435e7724a246f158576fdbac68 +Msg = ee8ed4c12b0cf7c03bf91fba31a6a7b2d64c36c4 +Mac = c10b474c0077a39a +Result = F (3 - MAC changed) + +Count = 164 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 098c12058a0bc5951fc092aba322e1a0 +Msg = a2b76835229017bd0e8167a40ea1e2e18cc5db0a +Mac = 1d44128c3db0f7b9 +Result = P + +Count = 165 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 74f7f6516a17d5386c289756240241ed +Msg = 8eafce9ba466fd53eb87f499d7c76bd486db0e90 +Mac = acd978e0065375b6 +Result = F (3 - MAC changed) + +Count = 166 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 013bba67d26c7e52ae48dda3b67c9c96 +Msg = 48c0d53b85e6fa4928d3e9953afb9b451bc91a48 +Mac = ef41ce0d30baece9 +Result = F (1 - Message changed) + +Count = 167 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 14cea4c46d837c9439b088fba0e9d85d +Msg = 3477384c396a9e9efb3e169722cba779fef240c4 +Mac = 902158426696c229 +Result = P + +Count = 168 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 24f7b08fc2e6af6402243e22ca0626f9 +Msg = 914cf55a3fc739b5f87ac7518cc4171b4499d951 +Mac = b775a3c1dc11d074 +Result = F (4 - Key or Key1 changed) + +Count = 169 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 35b5428d440503773f30748ff843be68 +Msg = a5e5804cfdded4d610d1b05b7313ece84f369ccc +Mac = 6dac0947366be803 +Result = F (2 - Key or Key2 changed) + +Count = 170 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = c8afe4e5b1d019c2efdbeda65d874ba9 +Msg = f739e632436470b5a1db9fa9796ed384c0523f40 +Mac = 04c8aceaa8f8c3a1 +Result = F (4 - Key or Key1 changed) + +Count = 171 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 05a7910edcd7252b37e6d3d080a9ee90 +Msg = 702db7761abb9b5de41a86c8659270570be9d52d +Mac = 889a990539cbc30a +Result = F (1 - Message changed) + +Count = 172 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 4c8b0850eab7b212ad96dc7a032f8855 +Msg = 2de32ff6ca41b4c97424b121b8ad4edb133c00ea +Mac = f5ce7f46d457ec37 +Result = P + +Count = 173 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 687bcb63755f2b5c7daf4a154e8525a8 +Msg = 02778ca34db1cb5df76cb1a7619448f67d63b26d +Mac = 49d48bb0a684c6f2 +Result = F (2 - Key or Key2 changed) + +Count = 174 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = f8c4e562fde4379b08e512b0132766a4 +Msg = 627868b46ba546252f4eaa1c25205ccff72902d7 +Mac = 5459c0ac5bb6701a +Result = F (3 - MAC changed) + +Count = 175 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = dd235b05c15479dfe0326ba206ac784e +Msg = e044ec24ddc0605bca89925a4ebc0234811e2a0b +Mac = 5ed0a03da09555b3 +Result = P + +Count = 176 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 665c2d7d6e69c2ce8f0d06b41038b83c +Msg = 4fcd7541000cfc223fe9da6a030c681d0fb926cf +Mac = 1f022feb38ae6131 +Result = F (4 - Key or Key1 changed) + +Count = 177 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 2efb7cd914a59b6ad63b7d1812f254db +Msg = 67c9fe3e163787705a20f2fc8c468c4f771991fe +Mac = a866d6a31c0b42e6 +Result = F (2 - Key or Key2 changed) + +Count = 178 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = 74f6fd37ccb4b7702bb3a03b7322c0d5 +Msg = 011ecbe98c5cb7734476dedbb852e2474a5ad594 +Mac = 707ec713b9bce5d5 +Result = F (3 - MAC changed) + +Count = 179 +Klen = 16 +Mlen = 20 +Tlen = 8 +Key = e673b3a954a00082cb7516ca9a54d9a1 +Msg = a6fbd41a838bdf0fab3e7b56c27a8c18dc4bf970 +Mac = ad4dfde057b54a27 +Result = F (1 - Message changed) + +Count = 180 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = ce5bf070678cb07e963263b1562ff793 +Msg = 2bd10c4397a19fc79a307116a0847e0aaaefe813 +Mac = 299e5910f128a1f091dfb6b70f6a60ea +Result = F (3 - MAC changed) + +Count = 181 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = bf144c9bb974729aaa1188ceefdf85e1 +Msg = 5e1ef2ad86ceaf5439fe87d2ec9bc41b52e5ba01 +Mac = 58b4a32ae55966e42712721363ac9eda +Result = F (2 - Key or Key2 changed) + +Count = 182 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = a0cd07b684bb9e0e6692e320cec4510c +Msg = 6e1e490a30f0c9e3d3b79f1c36aab742bd67c585 +Mac = 24dd518ffffc1070f13d50d0bca42711 +Result = F (4 - Key or Key1 changed) + +Count = 183 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = e3ceb929b52a6eec02b99b13bf30721b +Msg = d2e8a3e86ae0b9edc7cc3116d929a16f13ee3643 +Mac = 10f3d29e89e4039b85e16438b2b2a470 +Result = P + +Count = 184 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 4073251950e3331d03d67a2399576d28 +Msg = d5dfd0321b26e578fe987456ff061dc1cdaa4161 +Mac = ed2823fb8fcae918064cef6211646e50 +Result = F (1 - Message changed) + +Count = 185 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = b08f47101365111133d974e8f0206507 +Msg = cefe484955fae117649ec158416a7439f29a596b +Mac = 3317717c6c0b138275090ea961c8d58f +Result = F (3 - MAC changed) + +Count = 186 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 166fb8d0e110124c09013e05688605ee +Msg = 24c65f715742da7d06046c783a35b2648180b4f2 +Mac = d27901a86dbf0ed8bde0d69203646b7a +Result = F (1 - Message changed) + +Count = 187 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 20f6f56117758ba47a08dadf93a59056 +Msg = 7514e0f402e73d9c0b0576782011b2e6b2080a6a +Mac = 11cda489b6dc0ab48d111ee6cb26a829 +Result = P + +Count = 188 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 7fa6ef35ad594a09cb74daf27e50a6b3 +Msg = ac0d616ed7dd3c3e86b3507d9f2bdc3a807d490e +Mac = fbad2fc6c9d0e5d21b25445f499eee10 +Result = F (4 - Key or Key1 changed) + +Count = 189 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 815871a8300471dc325f8289d0d37211 +Msg = a8ff31e90556236cb4df078943c1f2528b42a7ce +Mac = 5544c93de980bcf653354ce08aa9dc3b +Result = F (2 - Key or Key2 changed) + +Count = 190 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 06aa3f6fc20f867b42ec234a1bcb8665 +Msg = 25df5cc617e6e68be181694721a2a112a1bfb7c6 +Mac = 2eeb7ab470caea3317a6336f5eee24a6 +Result = F (1 - Message changed) + +Count = 191 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 860f8fdb021b1974d40e3d4bc41fa967 +Msg = 6c982a616510db422cc2f1beb955c3e7a88b6097 +Mac = d2280a55cd0bcd18846b4e30db6322bb +Result = F (4 - Key or Key1 changed) + +Count = 192 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 15105c6285a9015d0edd414d6a806bd7 +Msg = f1cc55636836e67909ed3a581de20630226dd5af +Mac = e9cc5799a630c6f26087c1bd3b6f1791 +Result = F (2 - Key or Key2 changed) + +Count = 193 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = b47aa890b03a8ac0dbc8f96c30fdf7db +Msg = 58b06c99e0d0256cb1c556ec3b48a3bce73450a0 +Mac = 3376cacc247686832736cea7e67e13af +Result = P + +Count = 194 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = dd057368033252d9bb2081a0b1a0229e +Msg = 81de8f50fbe35f7ed95430e74d28666c885b6100 +Mac = faa08c5a3a4ffdce81ca31873197d035 +Result = F (3 - MAC changed) + +Count = 195 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = baf5afafd7d0c8ad42a44e4e0a90fd2c +Msg = cc5a4209a6a60dcf12621e17150b4576b918732e +Mac = 5a43002d9144a1d5e48c2dc8dc167a52 +Result = P + +Count = 196 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = fa6405355bfb5065dc81e764d20277bb +Msg = 5dd1febed8e94d4715e772c3295b48eaf471daee +Mac = 29e96ce5ba930134670b3c68b5c512f3 +Result = F (1 - Message changed) + +Count = 197 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = ad2e3d3af6195e74b3e43296b1f618d3 +Msg = ca776f79b8581014ae58a4d533b60483fd1fbbd0 +Mac = b32ce1f493b126fccb9829d4dbe76382 +Result = F (4 - Key or Key1 changed) + +Count = 198 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 04ae7190f0cabd117d30a359f80b720c +Msg = b885e5e147f967032ab2552829a6e09210c44a45 +Mac = 9386d73a01960ab399bb7d290674b21f +Result = F (3 - MAC changed) + +Count = 199 +Klen = 16 +Mlen = 20 +Tlen = 16 +Key = 51fdc65f6bb0d20a3c08ac1493ddddb2 +Msg = 1f0a56fb615b594d938bb8a27f4b2f5463ee9a61 +Mac = 8506fb1b74806381e2654c8764464d8d +Result = F (2 - Key or Key2 changed) + +Count = 200 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = cfb7e930b838dc3644f6c06f2ad0c8d1 +Msg = 611db4c194dbb54d80a4f4fa731cd9a6a330eaca734d3351f2cfebaba4bd541d86b3e35b4c1fa158edb0d15d610cd359a9c24878117f77f6b284f0363a576e0ef0 +Mac = e9589a711f5d4a5a +Result = F (4 - Key or Key1 changed) + +Count = 201 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = d179dfeead9d765d000462785459b1e2 +Msg = 795ee78ffdf302f3f1f2b31629ae918409cb42979afe3752dd14968d603678520e6b55884b5ebcce416248aa74b3cfe39dfedc2bb5246001503ca4d62cd7826f0a +Mac = f16ea84f554dfb54 +Result = F (2 - Key or Key2 changed) + +Count = 202 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 22b7eb25e688672ab0e17206623094b0 +Msg = d830b16fa236a1dbe60f6db8d7e81a3ddb5f658c9f446e94639cae3699ec2ea6afb4fb152939d58df287271cf4b73c34e66eaf5265a623de47b135522c7aaf9f55 +Mac = 16229efcb7523025 +Result = F (1 - Message changed) + +Count = 203 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = a64fa98b4662d801159f61eefd1c8bc5 +Msg = d5982c462ad40458660cd7b120ce07fce9afe812caedcebdee536ac19b5d561d679dee8ea85d62552c86093a2ac1f8d179dbd4fc006ee4b16ebe6afd2be134498e +Mac = 2f9a2fbcb96461fd +Result = P + +Count = 204 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = e4fb10325d18666c382e6cc2442381e1 +Msg = dc28484ebfd293d62ac759d5754bdf502423e4d419fa79020805134b2ce3dff738c7556c91d810adbad8dd210f041296b73c2185d4646c97fc0a5b69ed49ac8c7c +Mac = 8f771ffe0c8d3445 +Result = F (3 - MAC changed) + +Count = 205 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = fdcd3459061c36c9a0daa0dcab2b967f +Msg = 1cfa3342540d03ec3fcc8378c021443ba3321fbc26dad7c5b859faba004a082a21d6d7a43d2836cc3820d1adbe4c55518714d48fd9346a254f702107da8212f605 +Mac = 6635f9e17949a14e +Result = F (4 - Key or Key1 changed) + +Count = 206 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = fc593384e6eebc508d181fc49ee10e56 +Msg = a6c891c9dd1fcc982c35bc74cfe71651bae424602519672b466d80e160af51eefccc5fcf76467a25bce1a10853a0209d9beffbeb53228fea5f1e77ddc956ade207 +Mac = 7a6fd94e3928d2a0 +Result = F (1 - Message changed) + +Count = 207 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 4e4ff248f591ca27665960d9357a8de1 +Msg = 198d5c9c4aa35d12b62e8c4bf6f3f141e6ebefd8ab396c71f55e32bc82b094cde409547383bcc4c5e5cd2cfd2d616c8ae273e260f2c98e93f7267424b8c2421bf3 +Mac = 9140f91a0cf70762 +Result = F (3 - MAC changed) + +Count = 208 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = f20826990acdf225d9451a3d22f89747 +Msg = 03d340904ace1cd52d4b72a96d96afd77aee68ac3936415005ed0d56f46036915b1e5f2994ad49effe7bf3ee46170642e5a16f2eea804e68fa520fb79529d6c09a +Mac = f30b668f16bfe6c4 +Result = P + +Count = 209 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = c231ea8b75c65de68c49b76e7a3128de +Msg = 5b50879191a6debdb96c0bfaf9086b7dc6e25594416b08d2c75fe16cc347d2e3c7410fe3dc030a6c161ea22f6b80973bc43d42d8558f83b32a1bfa3c03757a4d62 +Mac = 65ba53ef4711e807 +Result = F (2 - Key or Key2 changed) + +Count = 210 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 8ef18639bc8c831dc0b4aeeca25eff4f +Msg = 094c4d9baead7c5acd7dc58f3b4b4f57f1406b4e6af81a034d90cfa94c01760f4cacb4d2c63671d16d9594e1116b0dc2c39319523afac10175b1a485a240f7cf3f +Mac = d84f89e16c3b1633 +Result = P + +Count = 211 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = bab9d79aae4a1b282d8c5aa35d5c0876 +Msg = 02815f53c2be5f7246d4794895b4b15b6c3944819dfd3051b371f6d7d52d9f8ced84fd84095c33ea013c78aa5aa7176d6aa9bacabdafe9bab89cce4d7c183b9c0d +Mac = a01f976031bc8140 +Result = F (1 - Message changed) + +Count = 212 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 42b97f583f64d88358885c66add5d03a +Msg = 187fe16a764c0987a28088f5cfcf55a6b9591b6395d2d41043e09932cbc4b8ae073d08d39da9799b316eef2ed89851a8cfc4dc1c6d3cbed95663e0ecf25403e61d +Mac = 0820b1ca0cd34e5f +Result = F (3 - MAC changed) + +Count = 213 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 4fd555bd3a5253a90b68b5d4d46bd050 +Msg = 1ef253c61ac8ac66734ea80eefc1dc077edd660dc3518b5ecf709f10302925a72a3938e7449f2ae707506a67022dab63113242e9dff0d027aa3d22c8462a558165 +Mac = 3770a6cc988a28eb +Result = F (2 - Key or Key2 changed) + +Count = 214 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = d3a8eb3f9e5fb264ff098d85c28dd763 +Msg = e97a0986bf75e0e821f5adda80778863d9d479bd8ac3e7fe64a053f8016c465d581487278ef6923610a1463bdedcded62aeb22fb210dde9a0949947f8c6a6e7753 +Mac = 4947e6e28dbba216 +Result = F (4 - Key or Key1 changed) + +Count = 215 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 3043857fc40be37fb0bda4f46894690b +Msg = 14874a8b59b0178c5ec89cd7316d909371969c1a1a1bc8a29f78341d39ce085e7e2aad7c350a3e7b691d3929bc4b7b47fef56be9fe7e7520a00abad5308505f8f6 +Mac = 1a8c82e9109a68a5 +Result = F (1 - Message changed) + +Count = 216 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = b325d425c810d22deb3209f29c5c1377 +Msg = e44c4202499440c12109296a35dfb1f669f97e7f415cd251a5e36943e134a548f0f2e841fa3541151b374c04665053382a24b99d731b99f3d411aa22644f66cd07 +Mac = 84faaeb5a9756a27 +Result = P + +Count = 217 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 7cb6a84e99f5573c1eb27c0078f2127b +Msg = d7fa7be9c10252d6e41bc1a08195a344ef77b81785cea6b4ba453d398bf6ffb31d80e0d6a45a4af283676422b5ca94c76bfb4334f61ae0abe884278976a5a3bd21 +Mac = 64fa7f9284c24f14 +Result = F (2 - Key or Key2 changed) + +Count = 218 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 00341fb81209c2abdfe3a9d607b98277 +Msg = 74f6fd37ccb4b7702bb3a03b7322c0d5fcc657cb2c3f1361488d853589d2d6207359b65d62d896ed66f217395000c2fa0d11f956332f2d4bdae55251adfe903b41 +Mac = 4cf05b6e583c70f9 +Result = F (3 - MAC changed) + +Count = 219 +Klen = 16 +Mlen = 65 +Tlen = 8 +Key = 647a5be8a66c83b4b238975388e15d00 +Msg = 0db33eda4188a9165147e24e40f79fee1985eb68d51627287e9c4ec995a77d89b27fb2fa6a6fd3fb7563f3e710b6d20ca145a25f9ac8116d9f628395eb769f75f0 +Mac = e8ef4f3cd7442246 +Result = F (4 - Key or Key1 changed) + +Count = 220 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = c98fc3416457d9eed0fa7ab1dc1b8a6a +Msg = 190ae57ab8bb70464e4a10c112a54c646438301b5662f3536c26d754a02451d1a9c76abd7dbf656115b2a2ac702ec2cadae30cf86e0f0f96da39897d6222889428 +Mac = 1bea94a457b2886e9098bf3ded932a3a +Result = P + +Count = 221 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 87428d5a53f750abdb335f70ee13b5d1 +Msg = 7bb0c2ecfd141e7e93a897b259732b6153af3542eb7289b1a18dc0aefeb4d129c9e0e27d7ef25d3afc9945277e75cb87cc7d1c9cb39e7e6ab2a49bbdf65e1c6d89 +Mac = a854d2da46afb77a787f0606a69cf467 +Result = F (4 - Key or Key1 changed) + +Count = 222 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = c725d9ef0dc6cfca84865cf5cc91d403 +Msg = d3208eb695e84c7a9250378e18be2f231ca3ebe72ba68e3ea4ff7bcf25206b43439bbd497e400dde738507cb542c7d6f961fb8bee99f0c8a6d9daf022368cc78a2 +Mac = 35d57445a5f10fd567595fc668293e95 +Result = F (2 - Key or Key2 changed) + +Count = 223 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 13e3fe7856cd680593a85cda3d6ff873 +Msg = b208e5a1a852caef0795150cf8313ee0cff06e3d28d438c2351484005661cbdcea6d8a3466aef0c6a460da4d7dc902ec99c073d086704112085a76dab0994fcab0 +Mac = efb2bef5aae555463ebbeebe69791459 +Result = F (3 - MAC changed) + +Count = 224 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 9b8112c1fb29fba2c8b0d8f16481b993 +Msg = f54105a04a4a02a1a07e020a6a4f4176e9c92bf40018ccac434988c650550c87625b84bd232d0e5ec20e6f6c46ba061b22a7fe36098bc7bf031ec6d6c1214bdb2d +Mac = 673281bc0effe92adfac4fef49477ee2 +Result = F (1 - Message changed) + +Count = 225 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 82e71e3ad1bc9a12a46e460a05ad9c05 +Msg = 41fb3dd6df78fe267175297e208ac753d50aaabd9edbf5e45385dfb47988b3d966f31be7a6329fd89e2869bc6f7e4bac1e3a0300f193bdc21c03d9629c9fefaa64 +Mac = 36f7df58abb54a053988cae066110ecb +Result = F (3 - MAC changed) + +Count = 226 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = b46e219217ab73c34904e24c6d995b72 +Msg = 887d6576572a3d8f6a1649394248c4d09d15026ffa930c0659508bac4243e7360802af084f363c2bcc4c91a04c6e86f4f8b22615d7915564949ab60b8267cb91dd +Mac = 10c1d8054ac549ad24ae4af2d8de97e2 +Result = F (1 - Message changed) + +Count = 227 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = b66edcc59dc9d8e34bea3baf4bfc0d5e +Msg = 57caadbb1a56cc5b8a5cf9584552e17e7af9542ba13e9c54695e0dc8f24eddb93d5a3678e10c8a80ff4f27b677d40bef5cb5f9b3a659cc4127970cd2c11ebf22d5 +Mac = 0c5864eefc04a6cac4f053ab2f65f851 +Result = P + +Count = 228 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = c607f631d792499ea43586b81fa3e2f2 +Msg = 21ed22abc7bbb62fb2d51d1fb8830ca95b16213f56291af976274934ab0d43805f71d9b906c44973f7d4b59b7a94d35c2220e7405dfcee98499c1c1dc92a89d7d9 +Mac = 4e65b3d58492a0eebb66928a8214498f +Result = F (4 - Key or Key1 changed) + +Count = 229 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = d9e9136339d361949242e4d8a0cd6917 +Msg = 419b9c9b093052577837862900e7de29273eb0678bf6238223b59176c78430b6f382f27bc8d9a95b53f26f1d12e545ccb434fa0a21b84fa7badb5872e208254fbd +Mac = 6c81094aded51ccd4da38d0412e7ca67 +Result = F (2 - Key or Key2 changed) + +Count = 230 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 6f349dd8b69dd41c6f246a1685115772 +Msg = a5a3c8afe5b84e0c3ba4f708a87b596d1b7c8694dbe691d7240e4e4815ad5aa4ca7e5b82c50989d092b96e80aa35e97f99ed79e75cf3b8750d0d263dc208289cb2 +Mac = cbf41299c35e65fa4e2626430f95051e +Result = F (4 - Key or Key1 changed) + +Count = 231 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = c15e4e552c9197184b3eb0a74f5fffe0 +Msg = 7c4699a7d9e2d9f31410f20029676f3c97f5793f6732f95f6d33fd7ecc205d27b8e89eda803316a3cb9951f12111b4a6aeac606b43835a469eede86eebf63e5e8b +Mac = 77e77de5c5600900e5b928d4be3d5f8c +Result = F (1 - Message changed) + +Count = 232 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 2eda9b2c6d7ad95b644a8739580ab4a4 +Msg = beadccddcf392ee56a8913f057da183ab06ec538e581b52c027ff7f63574b32d8bc4116efa1c56f4a4a851695a87f5fc5f7c47b46fe67b0400f2599fc80fe68d7f +Mac = 948e63657b8b6e2d130f6f25369d6160 +Result = F (2 - Key or Key2 changed) + +Count = 233 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 233088b67b741f07859d122a6a406d89 +Msg = 5717ed57ca0b6921f04dcacad34e0f6210c36673dc9f4d92493ff733c6e5f1c2e56805ef622a5f496049ee0ef51a0d41e9d363febb87070be558e8af61e86dc76c +Mac = c778152b00760fcd85bced0f58861d13 +Result = F (3 - MAC changed) + +Count = 234 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = b7471a8b2e50fb319f198a09cdaeb319 +Msg = 385f9fb139dbf88561b7a500b0c7b835fe57e2698c6d9f76de4fae6dcd45c47fd8a0811ebbfba35f43c17aa360f09c767c1cd9b70bb671fa638e852ace97cc73de +Mac = 1a8b81be875a4814e3f988c274784a63 +Result = P + +Count = 235 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = adf072ebb71e3400a2175c96fb0007a3 +Msg = a49840ab727bf6b03015eaca3f15a2bb64fd27b51b27fe7a2e0559c287ac8fdd4294ca990799ff66974624b8a4539dade66cf7f06b35d8dd2f8a36e6ec0bc83533 +Mac = ceac74b3af8750467e3b3c51624d96d1 +Result = F (2 - Key or Key2 changed) + +Count = 236 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = 1b1d471add4e7f4fe197e3a4a44d06ab +Msg = da06bd1405028d93fefa3c037b5ad551879451a28314bae86a7591b359f56e4b4e26e6fb2fe7b1af0f930cc2ae785d113e8b16546d59dbae9f41e7827be1ac89aa +Mac = 16d0021b1f9c00b37fefb60af3358d87 +Result = F (4 - Key or Key1 changed) + +Count = 237 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = af5d4991c189dada2cb552c3c52d599d +Msg = 1bb1e0efa2d6811d2370a039a0c47c59683befbd46c04257f86a468ae25ba03304e865e62afae77a62b3cec7b3556aae0c60475a7bfb02c69f955c7f60cc8dacdd +Mac = d7056fe01f0ed1b20adbe05cbccc544b +Result = F (3 - MAC changed) + +Count = 238 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = d149441e667b245d4640e04c53ca6f51 +Msg = cbb34794bc8bfdf93d3c8d9f87ec1482b516b48b1e8a89b5e3b5df70c423a243384215b4bc69c76c6b18c497cf82088af74839a8c98895869a16294dfc094360d7 +Mac = 64f5e8dce5c3e0f9cc224e306de70b87 +Result = P + +Count = 239 +Klen = 16 +Mlen = 65 +Tlen = 16 +Key = c2f5d4837f9f75fb440c3bccad7c2e69 +Msg = 6a84594c4b3865f047c96038060b5b413db0d4e081c62e405b815ecd9e3be651f8b9075dc8b032eb2f87c1416a5fe4195f51defe75f671f9a92d966ddf18724075 +Mac = df8c8c61e8d604e24c7e3d0115dbe898 +Result = F (1 - Message changed) diff --git a/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt b/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt index 8b66499235..ceb2ee38ea 100644 --- a/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt +++ b/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt @@ -1,2707 +1,2707 @@ -# This file has been modified to remove the 65536-byte long inputs. - -# CAVS 11.0 -# CMACVer information -# Algorithms tested:Alg = AES KeySize = 192 Mode = Verify -# Generated on Tue Mar 15 08:40:38 2011 - - -Count = 0 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 771887708683bcb3577fbd0e6c13cad39955eafdc226d17b -Msg = 00 -Mac = a0db9bb6e8891e92 -Result = P - -Count = 1 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 733fd349c56d1086794eb20ed59ddc89b065bb8533b968c6 -Msg = 00 -Mac = c76f82937b457105 -Result = F (2 - Key or Key2 changed) - -Count = 2 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 761d74be5fae170a1bdfa16081b44c1e49972e15ce0818df -Msg = 00 -Mac = c65feb3d5336dffa -Result = F (1 - MAC changed - for 0-len msg) - -Count = 3 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 40f4a2261f154280a311f5b172c7ae34243cf2c59b98d37e -Msg = 00 -Mac = 05d920e78520839e -Result = F (3 - MAC changed) - -Count = 4 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = e27150ee958b998c8a7e8b9324ead937d15580d09d6ffc3a -Msg = 00 -Mac = cf60783b5defbe3f -Result = F (4 - Key or Key1 changed) - -Count = 5 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = d9bf5efb694089b2de533b1a65c12ae96d8c5bd75bd67fa5 -Msg = 00 -Mac = ccde2029fb26c8ff -Result = F (3 - MAC changed) - -Count = 6 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = bcc658b2e53d51ed00c567ded2a124f8d1f85fc72dce5f80 -Msg = 00 -Mac = 35d0d9ccab5b0f41 -Result = F (4 - Key or Key1 changed) - -Count = 7 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = e31fdf3891c9068f621430315fb1daf418c328baf5e6da97 -Msg = 00 -Mac = 8802047c11abcf2a -Result = F (1 - MAC changed - for 0-len msg) - -Count = 8 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 16a10208e91807fc479607cbaa39fa9c7273d89ce403b796 -Msg = 00 -Mac = fcedadeca37381c1 -Result = P - -Count = 9 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 50fec559910391abc23eb7f5eddbc26a1031c0abd0a29ad6 -Msg = 00 -Mac = cdc41e9b491092ce -Result = F (2 - Key or Key2 changed) - -Count = 10 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 6e9e0ae953b1b486ecd6b766d7b961ab79bcdfe2ffe95e94 -Msg = 00 -Mac = 5096b9fc700929c6 -Result = F (2 - Key or Key2 changed) - -Count = 11 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 48043c405ef221c281d1e88246b6e1dda77e072f9d10353d -Msg = 00 -Mac = cab96cfcaad5cc20 -Result = P - -Count = 12 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 10c361934fd6ff77a5051879ff228b08d841660d48b4067e -Msg = 00 -Mac = 167e7227d59d65e1 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 13 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 867ab71470f2dc3f5f11f8bfa7272dfc9c888e8e03323103 -Msg = 00 -Mac = 96d9e7b084448004 -Result = F (4 - Key or Key1 changed) - -Count = 14 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 5b10c228b447968267293ede9131d9345daa18c11d71eff4 -Msg = 00 -Mac = f7055fcd9e8a8fd0 -Result = F (3 - MAC changed) - -Count = 15 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 997b712cd9295dc43cc19b40679f218c27af3e8c638d2e5d -Msg = 00 -Mac = 79a13778151aaaba -Result = F (1 - MAC changed - for 0-len msg) - -Count = 16 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 465b9364b3f06f3c28da12707673fecb4b8071de06b6e0a3 -Msg = 00 -Mac = 945198b568ed3db3 -Result = F (4 - Key or Key1 changed) - -Count = 17 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = d233ef50e0ce1924abd315510464ce22de377026529085ce -Msg = 00 -Mac = 240698cd0183f002 -Result = F (3 - MAC changed) - -Count = 18 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = eb6e828e01930a4b0afc8bda63160942ce32df7b2c38a8c9 -Msg = 00 -Mac = c68fc388f0633ecf -Result = F (2 - Key or Key2 changed) - -Count = 19 -Klen = 24 -Mlen = 0 -Tlen = 8 -Key = 471b8a2e5cb08c21d87e9eb7ecff1d6e6fc2335581769dc4 -Msg = 00 -Mac = ab5e7c91c35a0e91 -Result = P - -Count = 20 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 8b404993b4c3f62a57e4aef272788206c8076acc32cf3a1d -Msg = 00 -Mac = 6a3beff4d1d0e84ea4d4 -Result = F (4 - Key or Key1 changed) - -Count = 21 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 7cccb84fa5c1c795bc05a05ea5bc6497acd2de2d193fba72 -Msg = 00 -Mac = 557b8efe4ca9c4e603f7 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 22 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = f1d434dac8cefca05ba120a34840531bf1542c8fd03b1ff9 -Msg = 00 -Mac = e2c299a2c5159eb777cb -Result = F (2 - Key or Key2 changed) - -Count = 23 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 7fac8beb476b470e13a404ded315db1b15a85c2783eb3017 -Msg = 00 -Mac = 50faaf26afd61c5f616c -Result = F (3 - MAC changed) - -Count = 24 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = f5b4c2a9f096e13ab426dd8654fc7b8ae6a4a8d3daa16b9c -Msg = 00 -Mac = 535cde3d2c32788bf167 -Result = P - -Count = 25 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = f72879cc3446de9a0a43ae1cf08935b8c83f9265b8cb2258 -Msg = 00 -Mac = 4eeea4a1847f2a30010c -Result = F (1 - MAC changed - for 0-len msg) - -Count = 26 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 7021eaab074be980543cc70c809186d93652d7674c10ddd9 -Msg = 00 -Mac = d98c93f4e0228ff68cad -Result = F (3 - MAC changed) - -Count = 27 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 7fd546397a9a0129861fb6815d419a307f90d259d55f3503 -Msg = 00 -Mac = 13597bb97e38f400e686 -Result = F (2 - Key or Key2 changed) - -Count = 28 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 563cfb49f1af034cd38d2112685a52ebce8dca93e84ca10f -Msg = 00 -Mac = 866bc21135b11ea1bc24 -Result = F (4 - Key or Key1 changed) - -Count = 29 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 17e9555b9b4f89cb63f2e90aca95c27ead6a099bc41c4c05 -Msg = 00 -Mac = b04b3bd1719d35e80e2d -Result = P - -Count = 30 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = a65d24bd1ab92d8d294d654423412860e113c976f12ed76b -Msg = 00 -Mac = 83c1c0f3e89f6584bdd1 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 31 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 35555c801a2e7c68cd0c347e0f006be00fcce70fdd8d60ae -Msg = 00 -Mac = 7e3670cab617e79b3f57 -Result = P - -Count = 32 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 138b3db9baca13bc66e893efee2b767ce6a912b172c2cda7 -Msg = 00 -Mac = 4686805681afa38cb7c4 -Result = F (2 - Key or Key2 changed) - -Count = 33 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 1bc05440ee3e34d0f25e90ca1ecbb555d0fb92b311621d17 -Msg = 00 -Mac = 1e9f80432b39f7318433 -Result = F (3 - MAC changed) - -Count = 34 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 5776d94b577ed26820fb13c00ab0e2d1a1c3589bfdc45cbd -Msg = 00 -Mac = 4d5f56d3543abed97233 -Result = F (4 - Key or Key1 changed) - -Count = 35 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 22e493c1f2e27c9be7bb07fc00fdd51089582d139b0a9f68 -Msg = 00 -Mac = efe1c6493542a8412118 -Result = F (4 - Key or Key1 changed) - -Count = 36 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = d52f030107a2becde77331fff0c24cd72ef62c0f46ae3e6b -Msg = 00 -Mac = d1b9c7f13b189cd828c7 -Result = F (2 - Key or Key2 changed) - -Count = 37 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = be31363e5144d9ff49ee67efebeef6d9a97e22f8a3ceb209 -Msg = 00 -Mac = 03228a1a80d5f3d87b56 -Result = F (3 - MAC changed) - -Count = 38 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 6a46492ab7ae5f3dbf16ee7b8876e0b4f0449f3b4f8cd89a -Msg = 00 -Mac = f016af853140edf22d31 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 39 -Klen = 24 -Mlen = 0 -Tlen = 10 -Key = 89ef2284d8245d87f88919d4d2f71a2df05ee21d85b7d689 -Msg = 00 -Mac = acdbd54bfb1f20bb65cf -Result = P - -Count = 40 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = f4e74acdeb91d0f0ab143823102d5baed1ffe168fdb5587a -Msg = 00 -Mac = 9c15bfd3c766f88190e54d395e5387 -Result = F (4 - Key or Key1 changed) - -Count = 41 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = d9aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837f -Msg = 00 -Mac = 4a11b22e871b051ea74db3f763f140 -Result = F (2 - Key or Key2 changed) - -Count = 42 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 13439fb32b1514d48de6002f5d12e19e1ced4caf35042602 -Msg = 00 -Mac = 1412aad5e6b7f0d924700b438e0aaa -Result = F (1 - MAC changed - for 0-len msg) - -Count = 43 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = ffead92a4a5dc1eec6d2e441de9a9e1b7a88c607c9a79079 -Msg = 00 -Mac = 6fb18d51e9a30fe6b7a6f405b3d3b4 -Result = P - -Count = 44 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 176ad1686a81992e042d6497a305038ba0cabf74c6ecd8eb -Msg = 00 -Mac = f676bdc753ffdad36628b1724b967e -Result = F (3 - MAC changed) - -Count = 45 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = acd58261bcb2eb6345af7290b1d216c3016af6697bf5ab88 -Msg = 00 -Mac = a6ae95e5a23b5f5a2dd8c8a520b9a4 -Result = F (2 - Key or Key2 changed) - -Count = 46 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 0b5eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a -Msg = 00 -Mac = a46221058177012b073c6ebc6aff1c -Result = F (4 - Key or Key1 changed) - -Count = 47 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 7bd398d1b9b45f7a024e70e71c1ee7132795fbaa2d63306d -Msg = 00 -Mac = 119bc07d7f3da0be3a87844b425c0d -Result = P - -Count = 48 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 47575b64fd4797cda8d67e9cf115ae850d7998c39d2f8709 -Msg = 00 -Mac = 3f2010bdcb2fd70241475db9381570 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 49 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 68627d802cfc43bb1a987e1ef4401fa84e8a7b2b43759f50 -Msg = 00 -Mac = 1e0e3333ca5790a7e7df0d6d4bf860 -Result = F (3 - MAC changed) - -Count = 50 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 7f16b90a18deec135d32c836063cde963fc4e6daa1555476 -Msg = 00 -Mac = 013e1d0bfc7a7a6c838ac98ce0da2e -Result = F (1 - MAC changed - for 0-len msg) - -Count = 51 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 3c89c59ab30eba6e5be8f69f597adc534cb52e94259780f6 -Msg = 00 -Mac = 7f9f1bdba93d26cc3c1f022244bff6 -Result = P - -Count = 52 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = fdcf28931c91b4b79c8f8332b4eeb3f995eb1ed2fb1e8ab9 -Msg = 00 -Mac = ad7f8852f1bfd65dfbce3bb39db59b -Result = F (4 - Key or Key1 changed) - -Count = 53 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 8f570ddd0963a80abec82caf8883eaddfd63cee9f375fa7a -Msg = 00 -Mac = 82b16380d804b8eef855afb5eb839d -Result = F (2 - Key or Key2 changed) - -Count = 54 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = cc1d70d3050f022442093e3210f5b45f1b610dc0f12fef74 -Msg = 00 -Mac = d1dc61c2ef7e2cd1a4e43dc34c0ba5 -Result = F (3 - MAC changed) - -Count = 55 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = a8a1cf9547543045fa2f00edf79bd85436bc1ae1d746790b -Msg = 00 -Mac = 48fc14782a351553ea453a3ec2538f -Result = F (2 - Key or Key2 changed) - -Count = 56 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = 123ff732cccb535ec7a1c47a6b0ead68df31094d896709a1 -Msg = 00 -Mac = 8f29dcec0a5d026d6fe4dc64cd1d4a -Result = F (4 - Key or Key1 changed) - -Count = 57 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = ed06bd049d772cb6cc5a705faa734e87321dc8f2a4ea366a -Msg = 00 -Mac = e3fcf2590fa9ffe093bbfe8d3d7b0b -Result = F (1 - MAC changed - for 0-len msg) - -Count = 58 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = fa18c0b348aad167b7050c0ef6e7caf0436750873c7e4929 -Msg = 00 -Mac = 630915919b6108770f5c3deaece1af -Result = F (3 - MAC changed) - -Count = 59 -Klen = 24 -Mlen = 0 -Tlen = 15 -Key = f66296bf67b6e91d8ad629c1b260cb5ca1985273925e73fb -Msg = 00 -Mac = 729f983d3b49b2ebf24eb04368a851 -Result = P - -Count = 60 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 2f4a6501d8fe7b65f607757ddff6ed87ae0681b98b53331d -Msg = 2361d2ed837c14b6c231daf0acf2623779e0d952e98e14149308807f79145c30 -Mac = 9a8ad7bb37d79321 -Result = P - -Count = 61 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5d -Msg = 4163b7ad671761a3f27394776970b413e35a2c43ca85560cdd3c9b407bfadb4f -Mac = ab85ac3a4f92ee2c -Result = F (1 - Message changed) - -Count = 62 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 1534e69565cbc541bfde6901bd6e598e41a7a703091c2240 -Msg = 85b78269899a4712eaa9c3de041f5a74766ec27dd5265da8a117c6f277baaa24 -Mac = 6b177203b17cc7c2 -Result = F (3 - MAC changed) - -Count = 63 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = f0302d9a197a285909657d611ce12458b8d24652e91ffe8c -Msg = 3fd6b98961f31c7b7fff0baf1cbb5884a9290ea7b5ee49915efb4b510b6ccd8c -Mac = d2d84fac8ecb665d -Result = F (2 - Key or Key2 changed) - -Count = 64 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 2081442435626f7ce377132c46385510d9febfdd90c3f104 -Msg = c4185eb75fc23adff60d6380006a1c20fa2ff466ffddf67e99a421bfd729188b -Mac = 7373df1900b7a3df -Result = F (4 - Key or Key1 changed) - -Count = 65 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 715fb6fb464513f3650a9d0c3687980ab9caa9876d69dfeb -Msg = d60b3402ad9f5f09375862ae7a370f0c744ffaf5001c80e3fd150730ab848689 -Mac = ba39c81c18821872 -Result = F (1 - Message changed) - -Count = 66 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = a4d9f94e644fbcd97e0d993cb0af507eed259fbcf8fd7083 -Msg = 677acb68500d6cbbf77a3f34f58840f0c16044827641dc43d6767ce98f85dd5c -Mac = b129c1785acf17ba -Result = P - -Count = 67 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 94b911cdc3137a6f7f32651b788eb82975660aea52b2c03b -Msg = 549aa84bb182312dd016e3107f3b1f9c5b6a89b543561a450ccf713c76e66ad5 -Mac = 7b92156f8b36d5eb -Result = F (4 - Key or Key1 changed) - -Count = 68 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = d3fff7b6f08dc4256239fc112890429fa00393e84e9b294f -Msg = 15d1522654bcdce344b5d9753a0a6f31c859d547edf520478a8b5ae41506d5f7 -Mac = 2d778849023fc9e9 -Result = F (2 - Key or Key2 changed) - -Count = 69 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 77bbda69ec034d73e02b06f0af30e2dab60ac80cb7822eb1 -Msg = 1e6ee96598bd014c95e9540f5cadfe6885cd094e04048e81633d1d634f065f09 -Mac = d35f3c169f67b597 -Result = F (3 - MAC changed) - -Count = 70 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 544a757bc50658d7e73b25688e7fef86fb1f9f08ffb33a70 -Msg = e473fe5656713b3b0e4fd12c640e8c542950577f446b01d09cbc41b6393ef81c -Mac = e1dad03ab8d2f432 -Result = F (1 - Message changed) - -Count = 71 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 1bebfde2d5468ba0a3031bde629b11fd4094afcb205393fa -Msg = cf27b30423bd7e40d6b3aeb4b1bc01b40aec081aa00f2e3bc63ff61ac4b684dc -Mac = 617fdf927d0e4e42 -Result = F (2 - Key or Key2 changed) - -Count = 72 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = ab83567833d2f3461b5fbecc0e366694bb5ea00933b2b3e7 -Msg = 58d43b9f1581c590daab1a5c56d6fbcff749e489acc3ed51ee6aeeac0104e6ae -Mac = b29232e882dcb8ef -Result = F (3 - MAC changed) - -Count = 73 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 0e0fece7b6b659b642668e8ba3dca330523e70279155f485 -Msg = d8c35129ca5a84e2e6723332217f0fd2e19fd06eb27d84a93b75276270f97335 -Mac = d7ea4755260630e2 -Result = P - -Count = 74 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = b15763294afa61bc27e0785500ab5739136f51bc78b65562 -Msg = 8e8271b2758964fa71520f26aab6f870fa76ea4aa220475b3b379ec4ef8e80a7 -Mac = 6357fb64482d171c -Result = F (4 - Key or Key1 changed) - -Count = 75 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 6dd6efd6f6caa63b729aa8186e308bc1bda06307c05a2c0a -Msg = d2c9c1300f5a7520614550f9d23dcba6b41be6733426616f32912f155045282c -Mac = a12adaf849719778 -Result = P - -Count = 76 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 35631c844313ac335aa0d590fec472d805521f0905d44ca4 -Msg = 766f9ac761a06f4e006f405f7b3398aecad253f5cb8653e091e17427ff0fc1f9 -Mac = 49090265af87c220 -Result = F (2 - Key or Key2 changed) - -Count = 77 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 35008ef5baf263ae233758ca237dec1a51d67fcd3573094c -Msg = a8f1b7b73100cfe1a03003331d9d55b75fb0d2596ede723fae9240581967ba38 -Mac = af6c2ebe004c6d71 -Result = F (4 - Key or Key1 changed) - -Count = 78 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 6f383f798df8f4b9f0a99206cff82709c367340c7b3b0401 -Msg = 9668a011e5a3a613ddfd149b0e529e9e66665006f98e730400adb4a8226283af -Mac = f97fcc39e240b547 -Result = F (1 - Message changed) - -Count = 79 -Klen = 24 -Mlen = 32 -Tlen = 8 -Key = 9071be7a11dcf7a062d582dd5932f047396fd9eb71982bcd -Msg = a8a6703044010f8301ea33bd9a808ca35838c9f58683ae3925ab67b9e1fe1ccf -Mac = 9065cbc5249ff8b3 -Result = F (3 - MAC changed) - -Count = 80 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 36ad69f192ae4dcab771aeeacf01bbd32609bcbbea8ff9df -Msg = 6e60fac7c027aed4632444a95824e61e2c50aa3ecdaf09ed9cec92cec35adf63 -Mac = b6bf70e67b315c256f41 -Result = F (2 - Key or Key2 changed) - -Count = 81 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 0cbb1d567bce009d1dc5bdb8115607213ed9a516389f728f -Msg = 634efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7 -Mac = 4f0af4ff9a9c9e844fe6 -Result = F (1 - Message changed) - -Count = 82 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = ec65afd2d72bf477c7fdd9fbe3f1694c328088cb5f39d9a2 -Msg = 10d0e88b0db8d515bdff3a791c830b28e4e3ff4fa63f45b31a3f73dfb457bf82 -Mac = 7172095284694f5ccdf5 -Result = F (4 - Key or Key1 changed) - -Count = 83 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = a76b981540ce229e73064af4474a7ca4a042d03a6e6bdcbf -Msg = 740d4b25ca7221d0826057701a6bfd66c50a82f010a57be8c5efa0af0f761764 -Mac = 94b657fb57cb2fd6ed3c -Result = P - -Count = 84 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 36bf85bf63b28093d2dae511990a0bbd75184044b033c66d -Msg = c1fbbae61b81aebacf151f1bccfb1584f3a211fe797996938c03e806392e14c1 -Mac = 71796cf452f61db7f540 -Result = F (3 - MAC changed) - -Count = 85 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 67b79d9ef1a47867c7d21f19f99ed1085f17a9f092fac689 -Msg = d354c54151c9dcdf0d0fd8c51413c2645efafb2bf6b680b25ad76d3825a4c04f -Mac = e324e8d377447b40629f -Result = F (3 - MAC changed) - -Count = 86 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = eafa8699695431ab3cfa1e87ffeae4b822a391653d2e9d78 -Msg = bd647990f7afec76c8f726d1de806ca0cae6f708b5024b514f11c4320913724e -Mac = b0da9d38a1e821ef1f39 -Result = P - -Count = 87 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 1fc4fcbc73dab4e73ed9d7606acdcd42b74972460c640fe5 -Msg = c86553a60da69bec1924788fc3ab985158a2d4788f33c01abead80974d26dd67 -Mac = 992fd0b735b9fa9255c1 -Result = F (4 - Key or Key1 changed) - -Count = 88 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 618041501dfcfdd2b60d71c04d635f6357ad8b0643af77aa -Msg = e7e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f5521e6ca79877613 -Mac = c183b8f21cb2aac7201a -Result = F (1 - Message changed) - -Count = 89 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 53bcc9e9244e2fa1752c61e65aa5c592138447ef9287fdcb -Msg = 92e962f0086591b6f61c2ce5af62480722ba6a640c3f53806c421de438358721 -Mac = 105d286777da3f2a03a5 -Result = F (2 - Key or Key2 changed) - -Count = 90 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 6d2429921f90a22893cb65c4530e56068e9944d0b0f61fa7 -Msg = ea2ad7b7d3f80793391af0328fbb594d79898e1047210628bbc7441e135bfbe3 -Mac = 482a75ec0ecf1ea59f5c -Result = F (3 - MAC changed) - -Count = 91 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 3100d3c70e823fee9a1bf486ec1c56771acae35246535de1 -Msg = 4e6ddae0d805afcd10a055bce584c848d050fb29fe8f1c64b18e1abfe46b6578 -Mac = b0deaf1bb6d0425d1810 -Result = P - -Count = 92 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 79aa6c03dde4bc5949921563264b440ebef71b3298da67b9 -Msg = 879954f977e945cd4db33d20e6749a6832677adbdd9c7e262e4acf632f665f45 -Mac = 9863fe041d191777067d -Result = F (4 - Key or Key1 changed) - -Count = 93 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 85467aa82c22ab019f9243c203b4371c95604dccee5d81ef -Msg = b86edcc59dc9d8e34bea3baf4bfc0d5e117482a48e522c1b02a370e9124b379e -Mac = 54b2f4664eca96639f7a -Result = F (1 - Message changed) - -Count = 94 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = d37e7aa9215cb5c2c2fe81834f200192ada3dd0f4ccb9d69 -Msg = 064f85a23e049529c74c4f8267abbbe685b6a838841a9e304fdf14b835eee396 -Mac = 536701771f51d2ec354f -Result = F (2 - Key or Key2 changed) - -Count = 95 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 72e8c7d74cec3e248fe938a1159d8d969928e6da26b8cf96 -Msg = 58019989445d5ee855e0ffcf84e76f3383ae09cfad74276a3edaf05cbf8d714f -Mac = 182d3bf14cc391aef27b -Result = F (3 - MAC changed) - -Count = 96 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 5f847950d2a5d44137110594d3c0afa995b36422ab36d044 -Msg = 70523bc397417e09d791a4976960e02636ca7144a5681cf7b116daa33eface2d -Mac = 5f0b325fbfaede23de5c -Result = F (4 - Key or Key1 changed) - -Count = 97 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = b01e84220a7d514060a79088b754ac0beacb60e5b3a47020 -Msg = 036137cfed567fc5e234f18d6c2b8c7e9ae0f3fa526d6596e9a9ee7bf1abdf0d -Mac = dbe49af18c1e1bc99b73 -Result = F (2 - Key or Key2 changed) - -Count = 98 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = d90ba47d7c9107b103cf167041dbd7b41d96016d93961917 -Msg = 2d53836a0437ccf27cdfe2bf2ad53f3082100a9f045cebe6b3031d21c9a6c5b6 -Mac = 7252ee3b5eb76abeec9a -Result = F (1 - Message changed) - -Count = 99 -Klen = 24 -Mlen = 32 -Tlen = 10 -Key = 02e5a1306f612bdec098458cff3e691d93f050ba11ba6273 -Msg = 4bef96da992ab9386a3463213773f3ca7164813a15e014ab819f153386fa04a3 -Mac = 5fac9c1a1636b66e2f55 -Result = P - -Count = 100 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 4c99ce359b8b82b67ee990529a10f2ecceadad456925a57d -Msg = 89ed296a3ac03fbfb71422b9211799150b9d766a8116bebd48bd0a5068132dbc -Mac = e0e9583d784f87e0b7dd8fd7494a81 -Result = F (2 - Key or Key2 changed) - -Count = 101 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = f085fb257ab64013b43a59150864a31e76c9ae94913a56ef -Msg = b90ef6b773f250d4dac6fb9e62babad69ab424c96a8c0625987c030a91d27d64 -Mac = 96f1dc9a1c668bb203428181c016ec -Result = P - -Count = 102 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 8109f3208d5cda0f12141e40c85959b72eff1a937dae7f4c -Msg = 49ab30d5c01e91bf113764342cb8ad32e6af945341a9c6a0ee2319a910416fd6 -Mac = d13777a33f9520793eb8cbcec047cd -Result = F (3 - MAC changed) - -Count = 103 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 1eba29062320df7275a51aa090ab489571057e64f0ff6a52 -Msg = 754f03c2e298a699568d10c3e40390e0f8c398283ce1c35dbc4916fe479b87be -Mac = 87dcee48dfaa43e8223a2b338b220f -Result = F (1 - Message changed) - -Count = 104 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = a04b976fa01411bcc9a3863cec91f486944fdca6e8754615 -Msg = abf45f39904a8f5766763fe80fa189ed9c6c15bb1a7a8fa0ae3058c9e5b87c63 -Mac = 577aa39884335a4f66dce2a612515b -Result = F (4 - Key or Key1 changed) - -Count = 105 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = c6f0a3692c9280c48393b0dd763e5d0b90477f34ad69f192 -Msg = 737bab64c8a0fd6a07329bd729d2ec88685cb5404bd13a40e095a61846dbacbc -Mac = d61ad5f6d8aecb7b3fc1ddb1aff64d -Result = F (1 - Message changed) - -Count = 106 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 095eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a -Msg = 47c577d1a7e69828b5c3264738dd334be8d7678ec77bf1ccb5fec3843f85ffa1 -Mac = 4fd309a62435edd9b1ac8861f904c1 -Result = P - -Count = 107 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 2f853c1ddb31694985ea5e47322bfc8567fd7a74a46b0597 -Msg = 5719e671686e87e931c2c0e5842e907bf584d226e040645eaebb896b53a28c7a -Mac = 75ed56da2db0ffa101578118e3f620 -Result = F (3 - MAC changed) - -Count = 108 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 67f5adc0842d7e1a4f8591d678334c95ac83df95c4341c30 -Msg = 6c8aaf2f91ba87b61814ed689331264c7bf98c2223c426a4ebbf7b0db692a8d8 -Mac = b7c591522e9a5a4f3af3aea24121b6 -Result = F (4 - Key or Key1 changed) - -Count = 109 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 8702cfd1ff87a749ceb0a7192f5a872740b7fc600845df4f -Msg = d29b6a2d421abd00a59b756af34bd72a42f5557a2ed40f8a7ea59b2e05ff01d3 -Mac = 33b597665d375c95464af2ad56465c -Result = F (2 - Key or Key2 changed) - -Count = 110 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 64ec1fd6af554485856b7bb3c0ad16fcd9c4ec690914a09f -Msg = 0418a0afc13d6215c7bd68b12a327587eb63c145120ea626fce59c16f7d66717 -Mac = 80a85e77efe4f47d8938dd9c55d67e -Result = F (3 - MAC changed) - -Count = 111 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = f2991112c2cbd3038ae37b772a5090690006009f0c1965dc -Msg = 231d72c9325f8c17aef4efc94855803eb2fc1eea601c84a98e8f7053840f0591 -Mac = 14269c545a0e3d56ac9cb195cb6197 -Result = F (1 - Message changed) - -Count = 112 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 2c6d7fb9e92d98a1dd92e96f6b4013954ce1aaa5de242e6f -Msg = 87ec7423f1ebfc37ee83c85938d58259efd16e3c8e55fb871e9998baa9cac81a -Mac = 782b7ebbada87c3572a3918a03305f -Result = P - -Count = 113 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = d95a1b24964bfea5dd5a65f5a1398c6f9d43b26d98b47816 -Msg = 92f9cf56188322d18cb41d723847e6d419cd163e2be71b78e7b8dbdd099a99b2 -Mac = 2498787836840fe1411a17f153c546 -Result = F (4 - Key or Key1 changed) - -Count = 114 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 62f2490ba0c658848859fcbea8cc6774e24c9de979dd29d0 -Msg = 0822e3e6ba982091d532cd5271fbde25305d1f6e71880f81c618f267a9f122e0 -Mac = ffb6c2a6c73245138ce06e458cf914 -Result = F (2 - Key or Key2 changed) - -Count = 115 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 1841161a3752de1491b2b2f519d8447636e149437478d2ff -Msg = 238e36b73b474de88226d4298121393ac9162f1736040bcd717b6e8db85125ff -Mac = 4d1656a2c8632260aa55a097451fe7 -Result = P - -Count = 116 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = d7d9a5f750078f1a82dffe2c70e6b0016eb42d13e1a8aad1 -Msg = 28a107d22fcd0499e0ea5aceda6dbc288a5f1d9da003c626bfb9a6c27922e9bd -Mac = b67bc2e20c422f9c7c27a84ba0bcfe -Result = F (3 - MAC changed) - -Count = 117 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = dc3ca30782c9c0a7fe8923d4b8d31aaf21e63895f51fb2f1 -Msg = 8716298bc17ed51aa273711873e2c2863e7a5021e46a183e6c6c81f99c02918e -Mac = f41b1896a22db30dac50b6b3e5e2b8 -Result = F (1 - Message changed) - -Count = 118 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = 0b6b36339122610178c4bb72eb558abf15e5ed9ea0077a5c -Msg = 52839f2f0853a30df14ec897a1914c685c1ac21470d00654c8c37663bfb65fa7 -Mac = 665f05a489f8ad0feea290401b4bf2 -Result = F (4 - Key or Key1 changed) - -Count = 119 -Klen = 24 -Mlen = 32 -Tlen = 15 -Key = e200414db0255ca3faa7f6b17a62523f2c75d99f6ae162e0 -Msg = e749041b314f8719e17a8cb26162e2c910b31116dd769083149238d67792f991 -Mac = 713fb4d0c95743ee7da970cac7f771 -Result = F (2 - Key or Key2 changed) - -Count = 120 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = ea77165284ada4599f0bc0a41db787310f53a1588282b866 -Msg = f3a1a6dc2092ae7099bda65f8af32aa19796254a13fd9e0e7319d50402598faad6ccae2a028604db0d44690ba3530bfc8bad062cd96635d9654647c57bb81537 -Mac = 9c7c379b5f8ee87f -Result = F (3 - MAC changed) - -Count = 121 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 18e2baabdcebcd25958eb53d1bd2a95ffb9b51a3c1d92a9f -Msg = 1df7392e915726847822817cb542df6b14df16d7d3d3ea8d615fe9ee651c938a0234bef059d139c350d6b01192cecfe1d821aa0b668e5d4dd8d5ef9a1eb47db5 -Mac = db521506073b8c9e -Result = F (4 - Key or Key1 changed) - -Count = 122 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = d39f12a9c6b63c17f116bc003f4def172943350e29d60258 -Msg = 75225a26d63e91281fb37ace46354f81de99dedfde8b770ea47f08503aea87d8d7b190dda9e150ecd1a2a182b06676da61667a04864ff4374838ee6899d8961b -Mac = 65aa057a01b390ec -Result = P - -Count = 123 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = b2212ca369c611b725eccc3daa58df412787a3475f418d82 -Msg = 3727bac9706f482f55bda86dc052aa6810e2c1137b97fc93a65838a2724a9531199726517b6fed53b24d062eec7c22227ad9379b24da7658c0cf7ecc0368cfc5 -Mac = b869a9e06994fb39 -Result = F (2 - Key or Key2 changed) - -Count = 124 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 25e5fd5c39e684696e71a6f81f843a196dcd030ce2c07afc -Msg = 899b48338d5ec3bb4a681f76ef37b6e25357b50e9578d85204c3753d3b6ebccf908e3de8b02dab01839ddf1a560b1ff33857a17fa4244b96612bbdeaa7d4913c -Mac = cfb0650c7566dc49 -Result = F (1 - Message changed) - -Count = 125 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 49bc9d3bcf3c22daa8cf55c1b59d4bffddc2412d60518e98 -Msg = 980026395d0544975dffaaa2c56db1df5816cd80cde513dc76f6f81d21f15c383c97c7233c9af2423fb28922efed2f69aa47c30de17ae1c5be17acbd0ad6cb8e -Mac = a7ed2a35c89130ad -Result = F (1 - Message changed) - -Count = 126 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = c53f21f1ce3a1792a2de14277eb97664d4c561b3fd4b0e32 -Msg = 66e15206c23751497bc2c8d734aa1136aec08bd4e80fe3408bb3929a84efa749f379c7eb441872929b71872d761e0b448e0126e9fed86eeba611694cd2df4cf5 -Mac = 1b86a912a0ec9f94 -Result = F (2 - Key or Key2 changed) - -Count = 127 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 6286e3e53ffb9bb143fcae724b45f86a23bbd74c42518144 -Msg = 62766e9acd41285eeed9b4007340dbb611699624274ad1179e327076135d907638c60f0c773c4ea8d9b8352027ee78ea4f22198f083d2f5cb920e55b9738c582 -Mac = 3c56ff841dca9662 -Result = F (3 - MAC changed) - -Count = 128 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 9c5d43c1a1269cde199509a1eff67cc83a1759b71c9e7a6e -Msg = d576565a938782fc7e9b095db6213002bf5bbfdcd761fd6d876adb2c7947702b8930a5f71ec332bfbb4ac9b9d13d90c2d808d5459d0dfe5ddeedbe3e14038fd1 -Mac = cc7b2038ead10d8e -Result = P - -Count = 129 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 512a23489b8d6b62b63e9188c0ee5016f20448c082eefe82 -Msg = 1fdbfff7941ba22dd8e1dd13a05a3bd8f2c8096894266536c40a983929d0a6340af5233bbec1477363294519d3f3d9c6d41b20f18f76adb54495d9d43bec5afd -Mac = b81c76829839cd43 -Result = F (4 - Key or Key1 changed) - -Count = 130 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 20d22c3b6ab38c5995e22b341f359be25616b2b8c7269510 -Msg = a1c041d1d4e7cd6a953f2e4837e3e676ed48633a2f15828f5f3551d5ad2a19c838a49caf75529bd5d5f89b3da2c2e9922ad8dc5d20325a7b3fae9dcd305f3731 -Mac = aac4d4f4172e1f05 -Result = P - -Count = 131 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 22e29aa7547e5ed3a64611e04f1d55f7a397c1619669879c -Msg = 773b577b95e29d36fb30779d2ea23e2ffed9e1b46aede42bbe03a904fe22ef8f874298b5f4a6afe63f6ca9522863eb5cdb1c8d4bcd445e43e7302875e6ba3592 -Mac = 16bf98c7a5deff18 -Result = F (2 - Key or Key2 changed) - -Count = 132 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = b320edb777d317af6c933a6530d9f5cb78d2d3104ac02120 -Msg = b31d3f55909bb660628de9eb95b75df776455f2f535f461edcfdf8a0cffdb096d573fedea7400f8374e62e30879a8beb259b3bffb4c3813a235b4c59853400c1 -Mac = a0d9a7da024326ea -Result = F (1 - Message changed) - -Count = 133 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = b9bcd0ae7100f991f4365ba0683b6d461979ffe86d0ecc24 -Msg = 19d0077952eba12a01db1d137050bd7e9102a31242eb38a5cfb3cf51b86c86cab57f6deef8e6eb9eb29c5dcdd852ffd627641013660b31abebd40fab60514159 -Mac = 972119a55b125e0f -Result = F (3 - MAC changed) - -Count = 134 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 00af010f462ad40a38eefb788b648e1cc292cd4bb08ebeff -Msg = 573db0961531873316e87090f79e84f040c8358f8ca78fd9ea1ebeda82c1cff67c2ebbda1da0a1b233c1539cb4c0145da2a4a05431e06dac2c2731d59581a434 -Mac = 92a67a99c128e173 -Result = F (4 - Key or Key1 changed) - -Count = 135 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = e12f98507d6514c3b551d240595346bc9e9b6a987033b3c5 -Msg = 3927bac9706f482f55bda86dc052aa6810e2c1137b97fc93a65838a2724a9531199726517b6fed53b24d062eec7c22227ad9379b24da7658c0cf7ecc0368cfc5 -Mac = ef48edc762db1d47 -Result = F (1 - Message changed) - -Count = 136 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 66fe8076d4e8538e18b84f965255d143f1c7d377e099c1c2 -Msg = b3fe18cbe086955384226c11c62c1dd14e7eabda573450d005b46fd9f9eccaff24dbf5d6d8530b5e25fd9f2a629df5c20a977247cab35255d71d992d85b04c14 -Mac = cb67f0c1819ae458 -Result = F (4 - Key or Key1 changed) - -Count = 137 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 82233a224ed122d7306bd6717a80fa1986964f9db41bd40b -Msg = 65c46382a278490b9825d4f1907f3b9f196e136906067020b6b94ee398cb2f39ed07055dd0b151d974bb8d56ae3bc8b3b31d9054221514bd45d88a5f948ccfb1 -Mac = 27e94d22e8961f92 -Result = F (2 - Key or Key2 changed) - -Count = 138 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = d3e3bd80f45140cfc2f857a913a89f0c7dec86790feda4f9 -Msg = ff26ab66c6a10ef910f5b94589b24a7b6fae8e4396faa552b014603fcb5eee921bcfb81ffae989922debf24a6947ed6b1556c02e524b247c3966a7bc636a4fe9 -Mac = d2d326c999095b39 -Result = P - -Count = 139 -Klen = 24 -Mlen = 64 -Tlen = 8 -Key = 466fa94c2158c1cd84b83fb2f15ccfce804f611ad0fbc4fd -Msg = 5ea068d4f363dc7f1badf97b77ec85412a06dc8d8e3f4364265c7956d4088f014c78fad6c94be720ffb4ce4150da4a3f427f288031e0bdd241dd7daf975acabe -Mac = d6023f6ffd3c788f -Result = F (3 - MAC changed) - -Count = 140 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 6f5a146524457615d81a605b38a5ff03edbc5c426ec7d551 -Msg = 9be3a736e7e72560bea45e9c8ee8bf37c279bf5b2ef16483adcc093208c05ee51a4db04632946ba2b96cdd9d15b33c25cce2eba4ede4f97aac29ebaa4cf6bbd3 -Mac = af8fd676ee05154b82c3 -Result = P - -Count = 141 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = c62e6eb86b8daa37936086dd2c346e3b14be5054cdc2f3a4 -Msg = 559407bb6930d5adbdf19a7e285ba1dee5caa03ef54e3a3fc1b8c86a02f55921de9bf7d553c22d7ad915c6384329d664e70dffaefe22ed9c4e2c233706aafa04 -Mac = e297ad7830c79d387ac2 -Result = F (1 - Message changed) - -Count = 142 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 225557b0faca3d6cbaedec5c39c98f0ba0723f4070f2278c -Msg = eb1383e84d4bfc5a9dad25374055b81eec74316b18f6e001b0623d470c027b7023456000fc61538b663cb7c0e98d77a7fc3ee2277816bacb4d9487c6741e3134 -Mac = f07332a3b01d0e8026ce -Result = F (3 - MAC changed) - -Count = 143 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = c36acf733d310e3b9842b3006aa637ab092faf4a580043b5 -Msg = 1d674eb5d85945a6c7842042adebe549d4fe515501c06c1ba72961ee5bc98d8588afd6fd64893e21220db7ea6a973a420613130dde1d7f6a26677836d65bd0d3 -Mac = d629ef50a784db860de4 -Result = F (2 - Key or Key2 changed) - -Count = 144 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 332e30ab63b197e79b86e4da732bad9250c0a5c9976a6c67 -Msg = fb41304f9f5b0f696ddb0e2f0f57bb091f8a31b5324d3cdf15c3bdf256d3502d06db2df9bea24c7ae08fcd641f199610427f3ecf24b92a7e00aef55aeba71516 -Mac = 983e453f602db30e1f85 -Result = F (4 - Key or Key1 changed) - -Count = 145 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = b311796b0519a45c176f3ff458d4d818668093e82fb871f4 -Msg = ec1a1e9ee85cf960e5dc4e239619ed85f4b14d32cbd42dfa79f77a27f2cd740d08730de2eaeb91d0eacb8c498336e99b9a0c57c4045ef18749251dbfa733b4f4 -Mac = cb2be0fd09f10deac5cc -Result = F (3 - MAC changed) - -Count = 146 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 6311e7f0a7bcc11176fb411fe719d4e0782c8935524776f3 -Msg = 85f647d940a6d1acb6b7851912f807063515631eaabaa019dcfb993e86f408266cace4c24940eda0083d8569364dc1afb816c0e5b95f3bafe7745e5ddfccd6b1 -Mac = 776b9642c47fabd7e9c8 -Result = P - -Count = 147 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 6d120cbf74df2efffe98397ee303ead4e91c5e7839b82885 -Msg = 27ea9ff8359463a7742cd9c9c269ee678f4ab22091fdaf29b9007a92658687cbd71c4166e68c5a1ef30160191f6d926abb28f1da01da9ae8019a520edd576346 -Mac = 5a902959d73ac97ea071 -Result = F (2 - Key or Key2 changed) - -Count = 148 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 8e09d421e09dac1d9d966f02a3a520972c6aed2003d907dc -Msg = cb32cb87ed59ee959c011211ae7cd475c3b5feb21cbafdd0b17796d47dc4d4e61da345b399c2661182485be13dcee33a9eaa8cc4b9742361f4c36f1361381f1a -Mac = 1b2bc5956223b8801456 -Result = F (4 - Key or Key1 changed) - -Count = 149 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 3eeb143d4a3c08ecd9f7df8eba42789b517dfe99e07958ed -Msg = 3292b8548a35fe34136457bcff52b469eafdb1b86b6cc88bed35c4cfba43785c59d6b01c1acb6870ef1e3ccf7dad20b1733f51ab1bc48cdb2fdf7d86eda17a00 -Mac = 3a85ae8fd368cf9846bc -Result = F (1 - Message changed) - -Count = 150 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf6 -Msg = 3cfbc77b8897b6a5613f62f6b1c89b0d68f272c6c19b9e0ec6331ef616702006e64322d3460a57d3a5074c719811cb5dd78900268890da0ac177b40d48773548 -Mac = 325aa552529e66a13904 -Result = P - -Count = 151 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = eac3a1a6eb8efe983c6b37b6c2709f5a8851ab72cb23a66e -Msg = 2801a813dfc3f1c753f4f342a113c09b8e9a7ac16483c31bfd0b746b1db692f805937eec44c16bfbd132154557afb17ed01c1f4c55fe67f0343a6329441fb955 -Mac = 5b0b383c4870af31a9a1 -Result = F (2 - Key or Key2 changed) - -Count = 152 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5d -Msg = 3f63b7ad671761a3f27394776970b413e35a2c43ca85560cdd3c9b407bfadb4f1edd0e6026572ca0d8274bdaa6870749b0a727aa8c5b7e9442100e0c9b057455 -Mac = 0380cb126c63bb48bdb7 -Result = F (3 - MAC changed) - -Count = 153 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = b7b86dff6746145aa7d5bba73ed6a46da5b1200bd3520357 -Msg = 8e7f7e7e3ac2286bef6822ef47f5f73f2ff512e599df17c3723f7a55d4144a367c774de67e7e52ca3760c37484da7a2531d1d590b5380de11c34c3fe447edc0d -Mac = e7aaf6f82894d8825d80 -Result = F (4 - Key or Key1 changed) - -Count = 154 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 70a26d985e6b99bd3a37575f011f2b84ed84bebf99a52760 -Msg = a2cfbcfdcd90e0962f233d7fb70668c8c36cd5e195e2ef5c043268f47187cecffdd36000f96e1f509f00283effa040443b3db15cf73d55c30c65f0fd7cf9c219 -Mac = 96d09f0a799cb52575d0 -Result = F (1 - Message changed) - -Count = 155 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 5d678acdb2e6cc03537411ae2e95da120161ecb6c92d5e23 -Msg = 91dee0cd1d17d9342f4d346cee19f5f42e0c3b0498447ec4043c15bb2ae8fb8a7a02d2da489f28932c05fa4ea9c0760e0cf3052a97ed898edffce3247386b98c -Mac = 4a40b4f63330413918a7 -Result = P - -Count = 156 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 795846f9dbf36415640276642cccf87e3dbdf6519c5b2db8 -Msg = 4fc989f327e1a1cc7b8af618ee6ae6d25f78e2b76b681455336945655f13fd5a639bec3a004a88ad0e2df8547a0d315b8ba15f5269038638df6169d960f5ab5b -Mac = cc5efa5ef19f6cc63f83 -Result = F (4 - Key or Key1 changed) - -Count = 157 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 61eab54142fe7e16787fd2d54829cd3c4bbd793e72f9ef9e -Msg = 13f079b004d1fdf02121564f0a96b057f120899ce920169561d5e3aaeb16bb8e4347c7cf8c86f9acdc25ac26fb5d845a68409c0d9df0e089940fb7a88a76e62e -Mac = 920de91f34eabfc31648 -Result = F (2 - Key or Key2 changed) - -Count = 158 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = b64d00f3a4df754fa4ee6376922fb67ccce0c6209f677397 -Msg = 8003586af34bdd0acae4f5547394245027c2ffcdc9d1335311acc859e9a2a7b817755a601dad14495d32f1ad811a7e751ac07cf18716e1cb193c203e7551aa83 -Mac = 79e8a0ca036d7b0bd2c0 -Result = F (3 - MAC changed) - -Count = 159 -Klen = 24 -Mlen = 64 -Tlen = 10 -Key = 98f4596970e6515b5357f6c6396aac182d126decaddf567d -Msg = 65737b65927aebcf6cefc7ca107fda8447e8bebf1f08a280d53a4b07f8e35904cc48cc08eda3c63a3475924bde1de6acebaa65fec5ee68ca22d3fe722bf33267 -Mac = 05c51c2507108a3f8293 -Result = F (1 - Message changed) - -Count = 160 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = f0409b050346fbd319c8630e4bc9dd6d055355fbb961f018 -Msg = 731db98bd990b2ea19f848fda3519b32bc1d2fcb2f4d42e13f655da8e1dc2af428c185fc01a5d55e20b49d643a254e8675d560301d2ea0c5984ecce39c655de9 -Mac = d37deaceea7ea3b50aeb02636e5095 -Result = F (4 - Key or Key1 changed) - -Count = 161 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = f266cec01c5fc08c0bdabc9537bd1aa2df9f2b8ffbe5cc94 -Msg = e19cbaa489a0f65681c983cfee3a4b699339ccb096df06bc871398be9eb926d84426fd32d5d7fa4aa563a88b41afa822f761560d9897a9747cd85b3dc74b4adb -Mac = 8690d4f8153e56e3ab80c7e918679a -Result = P - -Count = 162 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 6e12c112720ef346bbbe7d1c19483721b1c52c438dad40e3 -Msg = ab8b36f46d1749cde7dd9936df95cdc8e0b359b8963bff4e7bd59599b32408623354a15e29f287a79801866d434a0ee9cdf37f931e53a39509057c7f2b3b413c -Mac = be9e70fdd15f96a8b7457cb727caf6 -Result = F (1 - Message changed) - -Count = 163 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = e9ed05813262fbe769c1104d8ba5c836dbd229a22a681de3 -Msg = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a966e2f3f87f6c2428814446563fa71864d97c8336b0e34bf9466ec95598398cd -Mac = 4b3ac19f4dfa04108283b0e2e3a8e6 -Result = F (3 - MAC changed) - -Count = 164 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 0c84328951c66e0f5341b741d2c2796d3524ef732c69e779 -Msg = 9071c45a99cb987aa79596a2014f54e6fe400a6bbd5de96e156cae87cf69762f1329d481213d213d42191312fd76911d8df4c6ad9304754909058cf477adfbaf -Mac = 1e1003ce7546009a3ba7f59dec236d -Result = F (2 - Key or Key2 changed) - -Count = 165 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 3aa8ec246323db7a3953737928061c79757de2e921c27643 -Msg = 84e9cc9bb7f4fb62ae7396859fcf33da5ca6c80c311eb392107afeddebebe0d662a887879e4014187d2fe8feefb01e6fa0d35819d7cfbf139e99451423b62ee3 -Mac = 4259d5f983a287fbd987e3badafb33 -Result = P - -Count = 166 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 66c07634c94dedb5d4c6f19e7cdeb954692ccf51fa242abc -Msg = 4bbc9d3bcf3c22daa8cf55c1b59d4bffddc2412d60518e986899d6a3e2a781668b0c6b9b4ee0ddbbcd06bd643eb201fe7829699e4dc86e2a1b4876bf9e40494f -Mac = c40f872ea2f1a1b45ab5737c2e4f33 -Result = F (1 - Message changed) - -Count = 167 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 3b9d6b0652836457ec4f701f0dc0e5aed73d16585d61cb1b -Msg = df7b23a4e4456e0152b24853fe0d5de4179974b2b9d4a1cdbefcbc01d8d311b5dda059136176ea698ab82acf20dd490be47130b1235cb48f8a6710473cfc923e -Mac = 602941735206bbe57ce1c2e3b9509d -Result = F (4 - Key or Key1 changed) - -Count = 168 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 7253ef10bbc302f01aecf315f9a4122ba805dc4048c30ac1 -Msg = e12f98507d6514c3b551d240595346bc9e9b6a987033b3c50940442dc385634e2a28292856b97d5a78704388b2b6d0ff2ce7a19c64574deac593b98a7ce98bd8 -Mac = 9e62a5b8851d3a0fcddf06fe116ac2 -Result = F (3 - MAC changed) - -Count = 169 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = d718af395ba3f5f4c6d15c24475ec7f0f74f3238c81d42d7 -Msg = 0c0d3d7ff5d1b707be9648f263b8f013fa439978e959efef57d471cae02dc8e08d9d58d40381169afa039936f1f773c72003c1c5af03018725ab2408236ee4ea -Mac = 75749ed44b76d7ac16c98d8b6bc18f -Result = F (2 - Key or Key2 changed) - -Count = 170 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = ec98ec44f5a86715014783172e667a748f162c5c26a8b34a -Msg = c0947efb86d54644087247f9fd95133a94075faf6250a2cc9f20df5393edbe1a4bdee20e90e877781a370a7f00cf9eee7373fc38acc54aba23b0df3f020356c9 -Mac = d994553290066d778369b54ae06668 -Result = F (4 - Key or Key1 changed) - -Count = 171 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 9fab32caed6e1cb27d2115cc641779127d4aa57db0955bd6 -Msg = 6e3e25db29da2c787bb37755ee770e2402fb8208da23389d36030439a143f971ecc880dfda90a8231ddebd2881981ca968ed45f3763a32ec8d2fe854fc2e4b4b -Mac = 4d3cbf9b68da0c5b49ab3b0913a2b1 -Result = F (3 - MAC changed) - -Count = 172 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = aae24266e5981b2ed14213a29f961cbbf7f02f63a33c987e -Msg = 8244cb416b3d09521ac2fd28c29084ff3d64761d46617b59e8b221de36702c2d3dc62e61375357b702cf8d4dd0f2bf2a1f91777fec0baf2c23e3e6865bae7358 -Mac = ab8e9df7128f4857e0a1c24fbce473 -Result = F (2 - Key or Key2 changed) - -Count = 173 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = b9bec4e88775777ff1eb3df671fe8ac03a693a1c26ea254f -Msg = 8eaed4810702df8caa12fe7e26e7ebbca11aa2de9f3169a8262c0e3c205a708f0071401aa8de09d28a5a6e590ebeb476341880c37bfee1a501229081eb27772d -Mac = 273b0d874010eac97ceda34232f7ee -Result = P - -Count = 174 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 15120ac9468fa30c92ad87e7aba41ef552814e4ecbcb9350 -Msg = e3de6c6119d7db471136285d10b47a450221b16978569190ef6a22b055295603c9c1ed5da3bf96bdb43a5722cf4e2ea087cdf9b23b3093d250d44047be634b3f -Mac = 9a166994de85e5d60b154d49a867f4 -Result = F (1 - Message changed) - -Count = 175 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = f9b9633f12967f1841161a3752de1491b2b2f519d8447636 -Msg = fa14d3656f7f7610f3a629bce14648a593250c6f309c02c6c552bb42984ac58db920dbc7d98f59295f37f3e9b99da55ef074ed65801b390366669b4c7aa1c483 -Mac = 2c9f3650866b97ecc5ed66929f41dd -Result = F (2 - Key or Key2 changed) - -Count = 176 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = e87275bc62ad067b121b83f220d4ee2b4245541283dfadcd -Msg = 6475757f30dd0a96ad64bde5c2605a9d2ca82a7223a9ba4c39b6dd3f86a0f4bd02876d0a32ef8af1071664b603862f4b9de6bfc6e7154b136e7a72e661957bf4 -Mac = d0bd2d3d35a22f37bf113090cebecd -Result = F (1 - Message changed) - -Count = 177 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 8b63d3c794e5ba0e09e5d5a5c56670bc0e289b30171ccfa4 -Msg = 44da1657e4be60d887a097e29d03bdbf5920bb0504e654bd963f58c487951a72e395237a9d32281125ed3a533c543de208c99bd063853abf79ddab4692c3a497 -Mac = 29d04b97ac302fefa80f71ea378e7e -Result = F (3 - MAC changed) - -Count = 178 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = 17039577fa27ef5ac3bf97572d9de5f8eac0aa58ff29b990 -Msg = b0329a0978e5a2d1bc85bdca333e7d0d1e9950217ee9547a84e76d3f49999451bf787288e8d12d40456c8214926c14e9b076032fe315c1633d5d21d85acfb1b8 -Mac = 51b4bc8b479dbd60e5de94ba8b9d0f -Result = F (4 - Key or Key1 changed) - -Count = 179 -Klen = 24 -Mlen = 64 -Tlen = 15 -Key = cf6b5edc515882f8a7954a5d8517b1a85e9559858527d0db -Msg = fde631afc6c042d77b579dab9298862d943be673cea59eab4a0c1b5cfddc2aef42590e6d8786d18a4646d7e338c2b984c50a50adbeff0fd64e7096f02e8385ee -Mac = 5ee3547a06661661c46c3778b0823d -Result = P - -Count = 180 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 7b6f4f158422f33543ca90dd0a76cbb23c0dbef26ee140aa -Msg = 6704dc39a259152d2dc3f08b8799ffecf4e1bc38 -Mac = 5c12ff63244c64bd -Result = F (4 - Key or Key1 changed) - -Count = 181 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 7a381f75058b85680061eeaa0242d3a16a64a5ca50cb61fe -Msg = 18b31ed5ba1c3ac562ff3ef274424b86c0815c26 -Mac = eb8f3d508c9edb8b -Result = P - -Count = 182 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 3662d7b7c93211535c862ef3dc2724c492cc1e53a58f23a3 -Msg = 8ac860504258c134c6835d4cfaabdb316c36d99e -Mac = bc1b870eab5bea9d -Result = F (3 - MAC changed) - -Count = 183 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 9eac76976750b7937b3bbc6986b4c726f0d0a63310db85d7 -Msg = 5de2265292780222349ac793eaa17c5a22902344 -Mac = a69594e569230df0 -Result = F (2 - Key or Key2 changed) - -Count = 184 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = ed1531500f319e09227d6bd181786b3b446f081abff2e697 -Msg = 7a734243e53cee654be988f5c735b19bb11f3389 -Mac = 9f2cc2a8c3d0a34f -Result = F (1 - Message changed) - -Count = 185 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 85d0d04cd3fd2fb34dc18fd55e645f7492d5280657577008 -Msg = df899dd6b99cc28d66604ca92431fa7f442a4927 -Mac = 18fc40b25fb9c138 -Result = F (2 - Key or Key2 changed) - -Count = 186 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 90b0c8b542c91c1b2dfdebb589a7eced6c9b7b43a7729840 -Msg = 38d1a87296529595acce251cb232db8ede65581b -Mac = 077570fd0efa770b -Result = F (4 - Key or Key1 changed) - -Count = 187 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = eceacd807db82378e9bd7c79054878f09dcb5087c2e1c349 -Msg = 09bf4f77a9883733590a3cc7ee97f3c9b70f4db2 -Mac = 58af901fe0fb5d29 -Result = P - -Count = 188 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 16227835305b7586a3106d93da8bd70aa0025df69a0e85dc -Msg = 1a223362dccc99472b2cd1d712ec6dadd60ef972 -Mac = c26f3980d17f6c36 -Result = F (1 - Message changed) - -Count = 189 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = d18cf5dbf5b2094dd6ad85d975449e2dda35b184633235ca -Msg = 7f557e74f53c344daf7495526d1270dfa8fd24ad -Mac = 5b7cf33ec05b1576 -Result = F (3 - MAC changed) - -Count = 190 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = f1681287bc931a0d8f296e13b3584d6efcb6ca76aa90cc02 -Msg = 08c62ff9bd7bcf189f530d5065f8764532d2692f -Mac = d646e2ec15afb14d -Result = F (2 - Key or Key2 changed) - -Count = 191 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 -Msg = ab91d1aa072947d22f0dc322355a022fe7f0747f -Mac = 489068c07931ee9d -Result = F (3 - MAC changed) - -Count = 192 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 0a23972e036d62199ec327b25a3cf4e14c29279c6449d3b8 -Msg = 2df3e80fb6ddc1fcc7615330b24fbaa4981441c8 -Mac = 7842f16a0cc7bd6d -Result = F (1 - Message changed) - -Count = 193 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = becfa1c96686b04153fae144c187f034dac3ee6ed70d867c -Msg = a3a114679ce30c8472149da9bf3a42b1ffb07e66 -Mac = 74fe19b5183ed3a1 -Result = P - -Count = 194 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 866b43c8fe3769ec0aeefd4dd02210488a354d67e82a81d7 -Msg = d9bd6ac153cb0bc4e19e59c45cfe0d6f4c9d20a3 -Mac = a3a2ef83eba2a6f3 -Result = F (4 - Key or Key1 changed) - -Count = 195 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 7e00aa080c127cbabfdfa5d9d9728c7b25358aecd26f5850 -Msg = ce1a38cd75b9e955483ab53fe59649d087ecd1d6 -Mac = 8375c666d09bf259 -Result = F (3 - MAC changed) - -Count = 196 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 4bbf4c9cb6758329b2d5a53c4fbfe2d3df4fb50e57b3699b -Msg = 6429ea2cc8fdaf58100347d21da64375b3ab2058 -Mac = 77e417a60bca9a9d -Result = P - -Count = 197 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 274b394da9402d3eafdf733994ec58ab22d71829a9839957 -Msg = 2b3d7949805afd73234cd327a62951b32c51df2f -Mac = 8f9ce09fee15516d -Result = F (1 - Message changed) - -Count = 198 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = d4140d988448d557454c3434fd77f8597e6420566845e316 -Msg = b53017500c100dea0511845597214484fc5f7f34 -Mac = b9e85ce9178b81c7 -Result = F (2 - Key or Key2 changed) - -Count = 199 -Klen = 24 -Mlen = 20 -Tlen = 8 -Key = 43d0d326c511e3bcf4f52660fc3c706a6a95c0ab550615f6 -Msg = 7c880698ef372304a663f0f02944500393585d42 -Mac = 843f71e93b22f1e4 -Result = F (4 - Key or Key1 changed) - -Count = 200 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 273cc5013785baeb5abc79c8bde73af71085d7018e7be92a -Msg = 086e6e3a21787acf7293446516b5f54da95a2988 -Mac = 658a112d7a9e7a08c024 -Result = F (1 - Message changed) - -Count = 201 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 492bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bc -Msg = f7b577f1396b23c27eb637e53d3d92460270b001 -Mac = f2dffabed6871cca2e41 -Result = F (2 - Key or Key2 changed) - -Count = 202 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 8e7d8a44244daa7df2b340993e32dac50e05d7b2e103be98 -Msg = 2c3c3582e026a3f29ffd21a92a8e1ee70f3a4147 -Mac = 1bb40d091dde1903ac0a -Result = F (3 - MAC changed) - -Count = 203 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = d2069266b0f180cb319e30ded7535bbe52d24be151de4bb5 -Msg = 392d567f0b8045359dedd1591517ded0171fdcda -Mac = c1ca2813ad38fd7f0f58 -Result = P - -Count = 204 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = f35c46bca9236830ff4bb057cd5764f02720ccb03b253937 -Msg = d4586dbdd5655cf659891f5b6015da524548dbbe -Mac = 4b6dcc78f6e0e9b7e35a -Result = F (4 - Key or Key1 changed) - -Count = 205 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 509f1e38591e03a30a7409bc7e18595848253308c15edf40 -Msg = fd2109cac9f42fbb093a8675e5cd962c4c31df2f -Mac = 35387ef3967eed5b579b -Result = F (2 - Key or Key2 changed) - -Count = 206 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 0e9cf0ec43ca3fb7fb9a2b1999ae635d5041bf42f1b0bea1 -Msg = 65960c7fd43891ebdc7bf862b28d4822a8488270 -Mac = 93c33247ca546a8c3fba -Result = P - -Count = 207 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 51597a4c68cd228371e86c179fe04492642ad9b888405067 -Msg = cd8799124d94064f47d7eec59aff543b81ac66f4 -Mac = 0eed36a27b40560b89db -Result = F (4 - Key or Key1 changed) - -Count = 208 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = f9f049328f5db22c41a501088e5759ef4d04db0c4b4f6d3f -Msg = 7bdc26b5b4df58af539d91eb2ea10263a3e58b07 -Mac = 68c45551f1367c989a9d -Result = F (3 - MAC changed) - -Count = 209 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 5343dacb05a29b3119d6f19bdfbcd6674950e710fc70180a -Msg = 057c2d386fb1693b845bef585e76e0fc4971ffb3 -Mac = 372a801d1cd33d1059ba -Result = F (1 - Message changed) - -Count = 210 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 5987fcfe8a1ee76afaef54cb22d8b2a20b116f72bfc7117f -Msg = 8abbdf380c668c6ff34a4f128567bfaf256570db -Mac = 5a8089b3d9f6c72fc858 -Result = F (4 - Key or Key1 changed) - -Count = 211 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 301e0712ce74a1ad02079aeb0ce35edacc33f9a5d907cf70 -Msg = b2d894833daef4070b764361685fc94a780a7292 -Mac = 57a225eca09fb227f79e -Result = F (2 - Key or Key2 changed) - -Count = 212 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 144840494d15b2b31ad63ee05bf579a5e9fb98f534a6309c -Msg = 71bf573cf63b0022d8143780fc2d9c7dbd0505ac -Mac = d1b2baf05cdd5fecd1cb -Result = P - -Count = 213 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = b4bc602dc860108aaff5b3befb948a561ac495a22af9085b -Msg = 3fa85ca50cc4c4817e951b5a95ac006973324c2f -Mac = daa1246b82d2e14e3056 -Result = F (3 - MAC changed) - -Count = 214 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = ff48804c82414ff67f9b917a4d5d062d439454aad8eb4b0f -Msg = 6def37d9b73fed0390f260491f582d2215369811 -Mac = d7712f7d5f0da5dec6b6 -Result = F (1 - Message changed) - -Count = 215 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 0273e421ee670be6322675f26f9014c040a76f0c869698f0 -Msg = d9de46934cb56e58899a31fd14ca64509131dc27 -Mac = b3e79909c16c561eb7ca -Result = F (4 - Key or Key1 changed) - -Count = 216 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 27eb9812d3f7816fb6a1cfe474496e80750b1ed3959ec7f5 -Msg = 776ba7990086731ef7504947be74b3c455bfde5f -Mac = fc0f2dcf4e6fa041830d -Result = F (3 - MAC changed) - -Count = 217 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = c56f710e39deed799ffde6d10e8aebfa2bab5e5e073d78e2 -Msg = f6fe0f16403182d012f8b6e02539c386075b4585 -Mac = 6bcc4c1b06099220e9c0 -Result = F (2 - Key or Key2 changed) - -Count = 218 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 0236ce1fd3ef645a64b4ee7048dd35942e6a09e8099884a8 -Msg = dbf06366f766e2811ecd5d4384d6d08336adc37e -Mac = 1de717c402baf964e817 -Result = P - -Count = 219 -Klen = 24 -Mlen = 20 -Tlen = 10 -Key = 5cf781067bc1ef948e929b7287279c71cae5143631ca57d6 -Msg = a7f3fb7ed1342862247fb4b1993788837cc87041 -Mac = ee867d4c0f910e9d9288 -Result = F (1 - Message changed) - -Count = 220 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 3e19b6f3f3fa3c2551466c9e09f0391350682495426fbb08 -Msg = c7496322ede893ae368884a91f80c3bac3505c0d -Mac = 55b25da032db8f3b4293a4865df77e -Result = F (2 - Key or Key2 changed) - -Count = 221 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 5717ed57ca0b6921f04dcacad34e0f6210c36673dc9f4d92 -Msg = 5e3ed45f07a6b3c225ba73d04d867f9c5b4aa703 -Mac = 1b642dcc4fa08cbd36d109d55a8501 -Result = P - -Count = 222 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 8eca0fb8033e63e24a54a3e63bcf8e4ec331b04ddedfeeff -Msg = e3807f6d8c6471ffe188df67d952a7d67021bf41 -Mac = 9a37eda1e3331bf86d208b2c0338c9 -Result = F (4 - Key or Key1 changed) - -Count = 223 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 633f44dad6995a6af0302692142a47430491ae7b54f8b00c -Msg = 3caa9b8b24097d29bd24b913692acf96cc78b998 -Mac = a6665b3b158f37f587dfa0bde7f300 -Result = F (3 - MAC changed) - -Count = 224 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 14ef8096666ddf28e0ac5f3458b52f3e0c601deae57fffc9 -Msg = 11d5cef384474f33c2d313e6e1050d8c7ae5b019 -Mac = 2643bb3e1c01f406d90104c4437189 -Result = F (1 - Message changed) - -Count = 225 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 0c2e1951eeba1a9b6592202b1b8547f43fd755fbd844a874 -Msg = 9ad62bff38e28f75302b6527c1c107543f798817 -Mac = f42ff7aa728c2d815ac7c701b59627 -Result = F (3 - MAC changed) - -Count = 226 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 1ee2df7aa80e3a131e2aad9c17bcbf546d8b25e5a849db31 -Msg = c4e8594cd09be010b6934157e0557686310e8dbe -Mac = 34496d184bbdc0c9a57916ff64dc3c -Result = F (1 - Message changed) - -Count = 227 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 75650ce366757618af20205b69af7e5d4e82c398c00101e2 -Msg = 42a71eb81ad1c97ac53b88831b2d15f3c57e7cf8 -Mac = 4c03394a98bb43e6197074abe63070 -Result = P - -Count = 228 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 386c659bc45d0a88acd54ef7eeaa3e140e1cafb1b01474a0 -Msg = f4fc5acff75d404849675b813cf7adcaeb8f3d56 -Mac = 5cfb2fc8869304428fc012a14b616e -Result = F (4 - Key or Key1 changed) - -Count = 229 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = ac192759625f4e42d1d1fa73dc0f62199142155615478f88 -Msg = d33f716df06e9047f8d718ab1faa06ec7b773bb7 -Mac = bbf5b7207faa5b004216fa5caf3f93 -Result = F (2 - Key or Key2 changed) - -Count = 230 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = efb497fb9b85d472e7c9d061aff501f7b1e3a311a86cfc69 -Msg = 1fd425560816aa21d6572150d1161cfb3bd61e6b -Mac = 2b7e14864d29437647cc1b27a8a0ad -Result = F (2 - Key or Key2 changed) - -Count = 231 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 344fbbeaf82ede8a401df7cc121ed3da43be9bcadeeb5614 -Msg = 93febc9e16003cc8d6490ba5a6e64dd673a0f887 -Mac = d34ef878392bc226f7ce1519f3bc23 -Result = F (1 - Message changed) - -Count = 232 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 4b6c6b6be3c04985bff49719c4e11be97d7757801dafadc3 -Msg = 754336f8cf27f4bcc7af5207ff02a662232d9a62 -Mac = 5389c533cf43ca0332574802c2ace3 -Result = F (4 - Key or Key1 changed) - -Count = 233 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = fe5ddb0645387cc6535e5b7991e6428c4157a76bb41084fe -Msg = 216d9eb896edc693520f99ac91f34cb54e76d719 -Mac = b43388ba7859f803655d914b60ce90 -Result = P - -Count = 234 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = ed14373671cd8041e00874b5d098ea225eaf9c68bb51cecb -Msg = 0569c6be9ddcfbb82618fdcfcab3dd60c20c49f5 -Mac = c2c11297111a92a484868179c5931d -Result = F (3 - MAC changed) - -Count = 235 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = f2faab6735779e9ac49716e7fcd3faac939366a7249f4f0a -Msg = e7292269b07683acf5bea0b300782749074e2313 -Mac = e10f324c19d79ed83256f15e302699 -Result = F (3 - MAC changed) - -Count = 236 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 2bddd90daa1251a42a0e2fd2858568887f85e6d96d57daff -Msg = 0f8b828c0e59effbdecc30abb6cae0d9af9c7636 -Mac = 1aab0530749ac4c6432157730ee3ee -Result = F (4 - Key or Key1 changed) - -Count = 237 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 586233e492b76ade095e8f5ffc6df4bf6caad2a675953b2b -Msg = 92af89c950d6221473a358dd0f280277bde7ab0c -Mac = 2a79121e68ea6b841e175ab5066388 -Result = F (1 - Message changed) - -Count = 238 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 5aea45c0995e950f333e29f4db82ea4c4c080ff82fe32bd6 -Msg = d9ff1c84bdb03114ebd5f471247a579311f4672b -Mac = dc58e7582cb555ea784036a8ba4b8b -Result = P - -Count = 239 -Klen = 24 -Mlen = 20 -Tlen = 15 -Key = 900c8283c7d50d6da79cc07d3dc7b76c2ef76100fa3ae2df -Msg = 3f8c6d21ec05bc439bf82774f1812bd2dfe0d3c4 -Mac = ec1fa18916f991d7276428b9c93c70 -Result = F (2 - Key or Key2 changed) - -Count = 240 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = abbb803150cd7fdb9f3d571bc749debe72c825e45568aa5e -Msg = bb5fd7f4fb020d38c13df3003a9bb852a86948f406c51624eaf81989b006 -Mac = 799d598f32ebd9cc -Result = F (4 - Key or Key1 changed) - -Count = 241 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 2fa619eed51bccdd2ce63580ebf85467ac9136f79256bf1b -Msg = f92d1a6731f3bdd811fde1ed936de907ebbc4179670857859aafe788b91c -Mac = 6477feb7dd4c818a -Result = F (3 - MAC changed) - -Count = 242 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = d0115f369d0f74073a46e3b9625660847dd7ac7571e40814 -Msg = 97da5d1f669dc60b6c6fe4369e01f3fbb9af30b483b23d885497c684d6ef -Mac = 3d7f0acc627b785b -Result = P - -Count = 243 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 045c4b86eed865cd989f035afe8c257c400c11b1f72548c6 -Msg = 5a6233e492b76ade095e8f5ffc6df4bf6caad2a675953b2bdfa8513df1dd -Mac = b5a44479b0be31ce -Result = F (1 - Message changed) - -Count = 244 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 4a83bf338fc0125ee1966df46d46a0d0b41e51569b3fa957 -Msg = 794a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b4257457 -Mac = b45939cc01918eab -Result = F (2 - Key or Key2 changed) - -Count = 245 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = d9ccd93317441e9d6ccc358f31e7e2ccef8c921b23d74299 -Msg = 48754401bb69bed2cce8689e47210435878c7ce184d911f60d26b4aa5174 -Mac = e0d1b6a530944550 -Result = P - -Count = 246 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 1e50fae752ac3a6e2b1755475e84441947e9f4b1d29546f4 -Msg = 34245df514f6c273d252271a980929e50a7cb0e77b05c7d46092abc30493 -Mac = a0fd99f1405b027e -Result = F (1 - Message changed) - -Count = 247 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 4f98838899bb47fd3b0fd5efcf55403996567a0fbe1abdda -Msg = 0c8cc752ae8d487c621be129326513a5ccb4141e324d21aab399148c1a83 -Mac = 1aef1b7bc7856c6e -Result = F (2 - Key or Key2 changed) - -Count = 248 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = c98a22a667aafab0c94047e03837d51b11490693d5c57ea2 -Msg = e4fb1612e50607457dee8087ec41e57fcd7fc550497eaf1c8b0d47c773d8 -Mac = 2c467fe37fee5342 -Result = F (4 - Key or Key1 changed) - -Count = 249 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = bc6d4c46476ac1ea902be391b8a3f04e102aecead167f0e4 -Msg = 93b3314baf20e28a39e89592012c35adfaa3ee6d3d8e494051ee9944aaf4 -Mac = 7f10757d2d36a55d -Result = F (3 - MAC changed) - -Count = 250 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 5783548205826853ae740d35d6d69ab524c38fdfc5c51eb1 -Msg = 11c90809f9c53d2f77b56af0a42287ac6920e3d2921cceb824d496caf1a7 -Mac = 07630c2fc52a24b2 -Result = F (2 - Key or Key2 changed) - -Count = 251 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 9cac76976750b7937b3bbc6986b4c726f0d0a63310db85d7 -Msg = 5de2265292780222349ac793eaa17c5a22902344063f497aabb9dc038ce2 -Mac = fd092bab159861c0 -Result = F (3 - MAC changed) - -Count = 252 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 616de0b0f868eec923bf9edebbbaa51d3faaa3f86b2a5687 -Msg = 38013d62558647bc21d293830aa3ba80ff3fb84a8e0938754c5213077771 -Mac = b4e782780989dc11 -Result = F (1 - Message changed) - -Count = 253 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 5df77b26f3d34eba49d287addf0a38d20514e2b7e6059935 -Msg = 1930a8b428334df9fa1ac16890f3a6a93fcf9d6855d00b06ff831d8f6a70 -Mac = a8ad975046cd7571 -Result = P - -Count = 254 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = c56f710e39deed799ffde6d10e8aebfa2bab5e5e073d78e2 -Msg = f6fe0f16403182d012f8b6e02539c386075b4585be5b18d6ae1c5f9ebdff -Mac = d0df47dda012655d -Result = F (4 - Key or Key1 changed) - -Count = 255 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = fef8982f7342f1b953658453cd5ea413700eff00f1ee7d6f -Msg = 269b6c1c95bc079398bb31e285a887c1832202d6ec257a2cf62468e29358 -Mac = d2c90040bf66b2a6 -Result = F (4 - Key or Key1 changed) - -Count = 256 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = a34dfa24847c365291ce1b54bcf8d9a75d861e5133cc3a74 -Msg = 105d2b82676bf67ca9575ffd31d7d114e709826fccb6a5c3d3d7e26ff258 -Mac = 5e60278f98b3135c -Result = F (1 - Message changed) - -Count = 257 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 520fe80cc4a3a5ad9c31f7010504923b7a7fd88292a64f98 -Msg = 2e1e0712ce74a1ad02079aeb0ce35edacc33f9a5d907cf70d0548d84ec3c -Mac = daf839ef84f1c81d -Result = F (2 - Key or Key2 changed) - -Count = 258 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = da4775b8f7d654bc4cf2eb75ecf4831411bbc9a960ea2df0 -Msg = bfaccce3a9e66f45e454090ffedc348306dc2807951ce0bf100178612703 -Mac = 3e2eb7f029e687be -Result = F (3 - MAC changed) - -Count = 259 -Klen = 24 -Mlen = 30 -Tlen = 8 -Key = 15e3b3c5794fececd703ac58ccb22a78e15bbd55c579416b -Msg = c6c3457ffcb6e66c085ecb69492deaa704e25aeeabb7b7795fdcc807b325 -Mac = afd75cdc02222e65 -Result = P - -Count = 260 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = e0f2cdfb64bda8f02ab90620fc5a1943c4b536a99f3f8820 -Msg = fd0365ff6061e5f55c0e382f5861aad99c135f9511f33ace4bdcfe48c6e4 -Mac = a1046d4b29fc50ed94a4 -Result = F (1 - Message changed) - -Count = 261 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = c7aafe7d3b419fa4ea06143897054846ac4b25e4744b62ba -Msg = f1baf3be69f69611fcd47256e43830a1b3fd8bd3952eb26ed679eda7a4e0 -Mac = dbc419e1ddd5cfdc63a7 -Result = F (3 - MAC changed) - -Count = 262 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 58c219f2bc8ef2ed7a82cf70e4af4747e36a30809a5a6222 -Msg = 622642aa69b3efe14abe0a1d2ba20f3f76efddf62e6cafe2845c4dfaa501 -Mac = 4e496c3d2d84d11923c2 -Result = F (2 - Key or Key2 changed) - -Count = 263 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = abccee975feb10f635d548a8502f7c8b6adbd2be74117257 -Msg = 4f37a460d180a12789779fc335326c983ad6b18295b47f1715b82b2dc704 -Mac = 41b234e0173770c469b9 -Result = F (4 - Key or Key1 changed) - -Count = 264 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 0218eb619dbbde2e846218339aee4383792856496eb3b85c -Msg = 28d3510a37d5f8481e7f22941c1fb1d6c70686fbad9747a23c9d5f18dfe2 -Mac = 3cede44c942387d91767 -Result = P - -Count = 265 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 88b2514f368d51db283039efcde1891652a77daf68feec43 -Msg = 067a3a0434e92cac02710221fbb6dfcb7ef0264e2994905491317c8c3697 -Mac = 128e652ce0a8f1a6194d -Result = F (1 - Message changed) - -Count = 266 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = f2a78c449621278e9e927fcd50742d042d98d5142380fd3d -Msg = df899dd6b99cc28d66604ca92431fa7f442a4927d03b392e707b548b8ebf -Mac = 2eca3c42b5e5d0f3b9e4 -Result = F (3 - MAC changed) - -Count = 267 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 01fbfbde7dfdd6f0a0c5244cf6c36eece4d6dedd8baa463b -Msg = 485ef613bdab5473763bb269a0d8c7a4bf4850bba072a96f8fc39a31cbd0 -Mac = 333eb331d6a0d46fa279 -Result = P - -Count = 268 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 6ce99c231d2ef0fd48c2375dca93f8bb0df97d4a44e835cf -Msg = 32d71e59634126ac6c6156a80a0dfa0175b29e9f40a3169680b1c15830fc -Mac = 3e90350e115c425ba466 -Result = F (2 - Key or Key2 changed) - -Count = 269 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = f7a93aab5707ca3d2362c5669198e0218493acc3cb7b02d3 -Msg = aeec40ca8964fd6a67d3dc871ebf1bfb72f52907f1d6ad441bf2cadcc6d8 -Mac = 7381d65aa138c86713b5 -Result = F (4 - Key or Key1 changed) - -Count = 270 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 84f39f5207afcfd677a7544579f2b888a1eabdee4e835924 -Msg = b8d21e9c70bf63f04be311d50f84aad7e1bd2b0e517434ab978d68d01c5d -Mac = 4ab61c537f8b15f824cd -Result = F (4 - Key or Key1 changed) - -Count = 271 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = d488bdda400932de56a9f105f0e74ee79c2ed869faaadc31 -Msg = e64949ed85de6359595f286e29014c26daa7759aee56e4194ee958774606 -Mac = 2752bc490802b9dd8686 -Result = F (1 - Message changed) - -Count = 272 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 76ddfb075fce4be8854185c6899a88d06e24854506b31237 -Msg = 9d86ae7d70e839078babf7fd60480a4351690867c6a8af837d9ad465220c -Mac = 2522efecaa1ba11c0260 -Result = F (2 - Key or Key2 changed) - -Count = 273 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 618041501dfcfdd2b60d71c04d635f6357ad8b0643af77aa -Msg = e5e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f5521e6ca7987 -Mac = d958753757a11eacc848 -Result = F (3 - MAC changed) - -Count = 274 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = dff6b9493de80447ee18ea7311fc9b8d74f77ac1ab21ce84 -Msg = d70aef3532bdc5293a3ebb11589ac1f801c9f93ea0d656e1d04068facf9f -Mac = 9a761e0e54767e414cf2 -Result = P - -Count = 275 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = d7780ba2dc5cc584472b64bc9f6246bedb27c70aca22c0a3 -Msg = 14691c1b47ff1547c1d2151913c2d1862d8f54782291ea202caa3d8ef07a -Mac = 78a2bf3a5fc87a14e090 -Result = P - -Count = 276 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 3bc5dba883e2e3b81df06760cc32f11009cf5a5503cbe864 -Msg = 9d043e368b41acb5eebb99197e15adbc3d19175a0bfcc97275e3e5efcfa5 -Mac = f457293acf683c873add -Result = F (3 - MAC changed) - -Count = 277 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 7b3fba25c5ef410ecec62276b105ecc01c325dc2530e8364 -Msg = fda4bede287c57eea4448af5e99d41c7d307d1f202af7f387f874342a29c -Mac = 0cfb78ede5f4c185c33b -Result = F (1 - Message changed) - -Count = 278 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 38efdbbc5645f65414b9cb81d2f9e4f190cf6e6e05eaedbe -Msg = 50422c5e6a0fb8231b3bb6e2f89607019be6ad92a4dae8e0fe3f9e486476 -Mac = 0c1acd8e8527e2663486 -Result = F (4 - Key or Key1 changed) - -Count = 279 -Klen = 24 -Mlen = 30 -Tlen = 10 -Key = 94ea5b0aa6c8b07e379122006042c920077bd61610df6b4b -Msg = 1d52f401f01058356d8c4c630f64c5322caa6063d6365ebf0040ec4ee12e -Mac = 2dec0d3bca617209b07a -Result = F (2 - Key or Key2 changed) - -Count = 280 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 5584994f80640233ac8eb4d2f873e8c997499095250b48b3 -Msg = 91febca4f1ae7e27501400c44ce8681ec90f5a5637c962db142c9284b1d1 -Mac = f0b3135c1748e823aed10c4694fc60 -Result = F (4 - Key or Key1 changed) - -Count = 281 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 57e99653fdcab10135a2ee3bf45c1be69e9ed57bd74dfbad -Msg = 51c88fd98a7d82043a1500fc3d8a66ba7ab7760467c7fd89cfeeb22dd257 -Mac = c588ee1d4f330e51872065c02cae61 -Result = F (1 - Message changed) - -Count = 282 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = f622d736124641bb7d53706bf2a69db2fc31461fb92818be -Msg = f09569906381138cc49e3fc2384c5d33c34abd3d617c487b52ec6ee7b510 -Mac = 610e1c1f9ab35059580061b8662a81 -Result = F (3 - MAC changed) - -Count = 283 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 9662baae49c26e5452f3304ceed3b78326d2020a99a63f69 -Msg = 1d93aca4e2e31f5ebb84fad580fe74f5b6d1d86ab30cd0c8031be4090be1 -Mac = 3c5a4eb51ec58ef3468bb00e7cae8c -Result = P - -Count = 284 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = f2100615431349aba5c4f5a7f358fe7be579f4cb9e8f33d2 -Msg = aaf26bff7ad4116969c15d9206de6c737b7dda87619e3575d9b6b2efd8b0 -Mac = 7396deeb4316fc6d84d3af119656f3 -Result = F (2 - Key or Key2 changed) - -Count = 285 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = a5993acbea8c55d7eb55d60596f83e1d9f2cf636d06240da -Msg = 0bc1fede6a6ed9e1deda82612fbaa6e60f0b2461fd5d131e6a7206f41a07 -Mac = 2f6b0a9f2a972d299bfa5892f8ea83 -Result = F (3 - MAC changed) - -Count = 286 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 775846f9dbf36415640276642cccf87e3dbdf6519c5b2db8 -Msg = 4fc989f327e1a1cc7b8af618ee6ae6d25f78e2b76b681455336945655f13 -Mac = 8b3cf3171912096763a2ebe5ea9e41 -Result = P - -Count = 287 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = b214b16bbac27ccc9773d3c8dd31275da4876c039740ca8d -Msg = 7786a3e30acffd6dde375bd859dd6be2c9221b979d0c66d1d5ed6e00b73f -Mac = 1a73acbf4e9250610b74c727b9c42c -Result = F (2 - Key or Key2 changed) - -Count = 288 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 032b4cfce8a1acd89de5f6f78794e2813bbcdb89959dafec -Msg = 3f0bf0141dd3ace0fabeace61811eac5ec801deb7ffe3b0514d43db90bf0 -Mac = c24066cbc00cb5c28e48141b627411 -Result = F (4 - Key or Key1 changed) - -Count = 289 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = a053255875ed4b5193bd9c5fa4172a1f660ecfd2a394c2a5 -Msg = 14666eb960c6b4f8b6ccc49f79a039b12c02e0972c300f1e9d0a38c0a474 -Mac = abce3abc224772a43c058016bf25bc -Result = F (1 - Message changed) - -Count = 290 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 0ee87b40abaa99f598fba22c3e677a85ca3ec95c3a51aca8 -Msg = 1bff19aacb9c7d0a44a15ce686a2469e3934d086365d36f449484498353d -Mac = 4d565c2e12901845e77ed8b02746ca -Result = F (2 - Key or Key2 changed) - -Count = 291 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 3384f8563cfd0fc8019bacc9b691c9ba4ae6dc8cf4c00629 -Msg = d31e959cf7842db351db407266ddae0b36e37f34270576724083e9989764 -Mac = 96d0dbf51d96b532321da593383964 -Result = P - -Count = 292 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 375904fb9fcafb7f19877b145b0284cef61ac7a3d88f537c -Msg = 441bd4db5e80c7db1b575a19b7bad021a719658a2c818566291d3cdd32fd -Mac = 3b8dac029f6658e44e5f5bb8f8ee40 -Result = F (3 - MAC changed) - -Count = 293 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 3c1ca347a7d3d8db8f704410c493d7a65718cb7bffec2dff -Msg = 555fd02fad4f44484133f9472c050f9da27390fa2a3e48cb0be0d7020171 -Mac = 32be39d874c15a0fffc7111f76bbc4 -Result = F (1 - Message changed) - -Count = 294 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 8bed296a3ac03fbfb71422b9211799150b9d766a8116bebd -Msg = 6df3de543cdb6d1adb6ca7df6b5a4510fc8379a4f2c87497ad1c2b9a69da -Mac = f24ff3218e7905d81c3e99c84bfd26 -Result = F (4 - Key or Key1 changed) - -Count = 295 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 9530bb291d38f6bed10318081dde8fd178f02eb0e8b7d022 -Msg = 5f48624302d1acf7750994d45f0999ecd89a3861cd0268d5a51e672124b1 -Mac = 0afed54c577e550eba7ac94a2d82d8 -Result = F (4 - Key or Key1 changed) - -Count = 296 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = f5400b86ace6e3da5f090befb96fc05d0409bf41fc77b4e0 -Msg = 1c79b055fded54af5ad2f3253f93a090ec003863d9458d3ff718c4c13937 -Mac = 59f94d4b13539a5f0a8672e4599bad -Result = F (2 - Key or Key2 changed) - -Count = 297 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = c033e4a512297caecdbead892b11a9f7007af9a74bcab89e -Msg = 3ce965d58856663d54269af4791ec57ef98227ea387d525769c23ab74674 -Mac = 0dc19e37a255dabb61957f7f89ab06 -Result = F (3 - MAC changed) - -Count = 298 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 2459f951d1255d093b72144b83b05ea3185d5123d1ca864d -Msg = 661c6ff41af91a6d828a4d5d507f8a9130abe91412070950c5fa4c75c8d7 -Mac = ac8e75b4465a52b3a7da3746f9875a -Result = F (1 - Message changed) - -Count = 299 -Klen = 24 -Mlen = 30 -Tlen = 15 -Key = 3b63415210361822e23cccf0faae88cd7642f44cec45fe37 -Msg = d7f78e950d2ab520a6f1e82ec6f206b2e8c71131c85234bd80500527f131 -Mac = 15e59760acd3dd74155d6d3739c189 -Result = P +# This file has been modified to remove the 65536-byte long inputs. + +# CAVS 11.0 +# CMACVer information +# Algorithms tested:Alg = AES KeySize = 192 Mode = Verify +# Generated on Tue Mar 15 08:40:38 2011 + + +Count = 0 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 771887708683bcb3577fbd0e6c13cad39955eafdc226d17b +Msg = 00 +Mac = a0db9bb6e8891e92 +Result = P + +Count = 1 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 733fd349c56d1086794eb20ed59ddc89b065bb8533b968c6 +Msg = 00 +Mac = c76f82937b457105 +Result = F (2 - Key or Key2 changed) + +Count = 2 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 761d74be5fae170a1bdfa16081b44c1e49972e15ce0818df +Msg = 00 +Mac = c65feb3d5336dffa +Result = F (1 - MAC changed - for 0-len msg) + +Count = 3 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 40f4a2261f154280a311f5b172c7ae34243cf2c59b98d37e +Msg = 00 +Mac = 05d920e78520839e +Result = F (3 - MAC changed) + +Count = 4 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = e27150ee958b998c8a7e8b9324ead937d15580d09d6ffc3a +Msg = 00 +Mac = cf60783b5defbe3f +Result = F (4 - Key or Key1 changed) + +Count = 5 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = d9bf5efb694089b2de533b1a65c12ae96d8c5bd75bd67fa5 +Msg = 00 +Mac = ccde2029fb26c8ff +Result = F (3 - MAC changed) + +Count = 6 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = bcc658b2e53d51ed00c567ded2a124f8d1f85fc72dce5f80 +Msg = 00 +Mac = 35d0d9ccab5b0f41 +Result = F (4 - Key or Key1 changed) + +Count = 7 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = e31fdf3891c9068f621430315fb1daf418c328baf5e6da97 +Msg = 00 +Mac = 8802047c11abcf2a +Result = F (1 - MAC changed - for 0-len msg) + +Count = 8 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 16a10208e91807fc479607cbaa39fa9c7273d89ce403b796 +Msg = 00 +Mac = fcedadeca37381c1 +Result = P + +Count = 9 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 50fec559910391abc23eb7f5eddbc26a1031c0abd0a29ad6 +Msg = 00 +Mac = cdc41e9b491092ce +Result = F (2 - Key or Key2 changed) + +Count = 10 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 6e9e0ae953b1b486ecd6b766d7b961ab79bcdfe2ffe95e94 +Msg = 00 +Mac = 5096b9fc700929c6 +Result = F (2 - Key or Key2 changed) + +Count = 11 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 48043c405ef221c281d1e88246b6e1dda77e072f9d10353d +Msg = 00 +Mac = cab96cfcaad5cc20 +Result = P + +Count = 12 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 10c361934fd6ff77a5051879ff228b08d841660d48b4067e +Msg = 00 +Mac = 167e7227d59d65e1 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 13 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 867ab71470f2dc3f5f11f8bfa7272dfc9c888e8e03323103 +Msg = 00 +Mac = 96d9e7b084448004 +Result = F (4 - Key or Key1 changed) + +Count = 14 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 5b10c228b447968267293ede9131d9345daa18c11d71eff4 +Msg = 00 +Mac = f7055fcd9e8a8fd0 +Result = F (3 - MAC changed) + +Count = 15 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 997b712cd9295dc43cc19b40679f218c27af3e8c638d2e5d +Msg = 00 +Mac = 79a13778151aaaba +Result = F (1 - MAC changed - for 0-len msg) + +Count = 16 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 465b9364b3f06f3c28da12707673fecb4b8071de06b6e0a3 +Msg = 00 +Mac = 945198b568ed3db3 +Result = F (4 - Key or Key1 changed) + +Count = 17 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = d233ef50e0ce1924abd315510464ce22de377026529085ce +Msg = 00 +Mac = 240698cd0183f002 +Result = F (3 - MAC changed) + +Count = 18 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = eb6e828e01930a4b0afc8bda63160942ce32df7b2c38a8c9 +Msg = 00 +Mac = c68fc388f0633ecf +Result = F (2 - Key or Key2 changed) + +Count = 19 +Klen = 24 +Mlen = 0 +Tlen = 8 +Key = 471b8a2e5cb08c21d87e9eb7ecff1d6e6fc2335581769dc4 +Msg = 00 +Mac = ab5e7c91c35a0e91 +Result = P + +Count = 20 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 8b404993b4c3f62a57e4aef272788206c8076acc32cf3a1d +Msg = 00 +Mac = 6a3beff4d1d0e84ea4d4 +Result = F (4 - Key or Key1 changed) + +Count = 21 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 7cccb84fa5c1c795bc05a05ea5bc6497acd2de2d193fba72 +Msg = 00 +Mac = 557b8efe4ca9c4e603f7 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 22 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = f1d434dac8cefca05ba120a34840531bf1542c8fd03b1ff9 +Msg = 00 +Mac = e2c299a2c5159eb777cb +Result = F (2 - Key or Key2 changed) + +Count = 23 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 7fac8beb476b470e13a404ded315db1b15a85c2783eb3017 +Msg = 00 +Mac = 50faaf26afd61c5f616c +Result = F (3 - MAC changed) + +Count = 24 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = f5b4c2a9f096e13ab426dd8654fc7b8ae6a4a8d3daa16b9c +Msg = 00 +Mac = 535cde3d2c32788bf167 +Result = P + +Count = 25 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = f72879cc3446de9a0a43ae1cf08935b8c83f9265b8cb2258 +Msg = 00 +Mac = 4eeea4a1847f2a30010c +Result = F (1 - MAC changed - for 0-len msg) + +Count = 26 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 7021eaab074be980543cc70c809186d93652d7674c10ddd9 +Msg = 00 +Mac = d98c93f4e0228ff68cad +Result = F (3 - MAC changed) + +Count = 27 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 7fd546397a9a0129861fb6815d419a307f90d259d55f3503 +Msg = 00 +Mac = 13597bb97e38f400e686 +Result = F (2 - Key or Key2 changed) + +Count = 28 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 563cfb49f1af034cd38d2112685a52ebce8dca93e84ca10f +Msg = 00 +Mac = 866bc21135b11ea1bc24 +Result = F (4 - Key or Key1 changed) + +Count = 29 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 17e9555b9b4f89cb63f2e90aca95c27ead6a099bc41c4c05 +Msg = 00 +Mac = b04b3bd1719d35e80e2d +Result = P + +Count = 30 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = a65d24bd1ab92d8d294d654423412860e113c976f12ed76b +Msg = 00 +Mac = 83c1c0f3e89f6584bdd1 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 31 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 35555c801a2e7c68cd0c347e0f006be00fcce70fdd8d60ae +Msg = 00 +Mac = 7e3670cab617e79b3f57 +Result = P + +Count = 32 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 138b3db9baca13bc66e893efee2b767ce6a912b172c2cda7 +Msg = 00 +Mac = 4686805681afa38cb7c4 +Result = F (2 - Key or Key2 changed) + +Count = 33 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 1bc05440ee3e34d0f25e90ca1ecbb555d0fb92b311621d17 +Msg = 00 +Mac = 1e9f80432b39f7318433 +Result = F (3 - MAC changed) + +Count = 34 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 5776d94b577ed26820fb13c00ab0e2d1a1c3589bfdc45cbd +Msg = 00 +Mac = 4d5f56d3543abed97233 +Result = F (4 - Key or Key1 changed) + +Count = 35 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 22e493c1f2e27c9be7bb07fc00fdd51089582d139b0a9f68 +Msg = 00 +Mac = efe1c6493542a8412118 +Result = F (4 - Key or Key1 changed) + +Count = 36 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = d52f030107a2becde77331fff0c24cd72ef62c0f46ae3e6b +Msg = 00 +Mac = d1b9c7f13b189cd828c7 +Result = F (2 - Key or Key2 changed) + +Count = 37 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = be31363e5144d9ff49ee67efebeef6d9a97e22f8a3ceb209 +Msg = 00 +Mac = 03228a1a80d5f3d87b56 +Result = F (3 - MAC changed) + +Count = 38 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 6a46492ab7ae5f3dbf16ee7b8876e0b4f0449f3b4f8cd89a +Msg = 00 +Mac = f016af853140edf22d31 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 39 +Klen = 24 +Mlen = 0 +Tlen = 10 +Key = 89ef2284d8245d87f88919d4d2f71a2df05ee21d85b7d689 +Msg = 00 +Mac = acdbd54bfb1f20bb65cf +Result = P + +Count = 40 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = f4e74acdeb91d0f0ab143823102d5baed1ffe168fdb5587a +Msg = 00 +Mac = 9c15bfd3c766f88190e54d395e5387 +Result = F (4 - Key or Key1 changed) + +Count = 41 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = d9aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837f +Msg = 00 +Mac = 4a11b22e871b051ea74db3f763f140 +Result = F (2 - Key or Key2 changed) + +Count = 42 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 13439fb32b1514d48de6002f5d12e19e1ced4caf35042602 +Msg = 00 +Mac = 1412aad5e6b7f0d924700b438e0aaa +Result = F (1 - MAC changed - for 0-len msg) + +Count = 43 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = ffead92a4a5dc1eec6d2e441de9a9e1b7a88c607c9a79079 +Msg = 00 +Mac = 6fb18d51e9a30fe6b7a6f405b3d3b4 +Result = P + +Count = 44 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 176ad1686a81992e042d6497a305038ba0cabf74c6ecd8eb +Msg = 00 +Mac = f676bdc753ffdad36628b1724b967e +Result = F (3 - MAC changed) + +Count = 45 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = acd58261bcb2eb6345af7290b1d216c3016af6697bf5ab88 +Msg = 00 +Mac = a6ae95e5a23b5f5a2dd8c8a520b9a4 +Result = F (2 - Key or Key2 changed) + +Count = 46 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 0b5eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a +Msg = 00 +Mac = a46221058177012b073c6ebc6aff1c +Result = F (4 - Key or Key1 changed) + +Count = 47 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 7bd398d1b9b45f7a024e70e71c1ee7132795fbaa2d63306d +Msg = 00 +Mac = 119bc07d7f3da0be3a87844b425c0d +Result = P + +Count = 48 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 47575b64fd4797cda8d67e9cf115ae850d7998c39d2f8709 +Msg = 00 +Mac = 3f2010bdcb2fd70241475db9381570 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 49 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 68627d802cfc43bb1a987e1ef4401fa84e8a7b2b43759f50 +Msg = 00 +Mac = 1e0e3333ca5790a7e7df0d6d4bf860 +Result = F (3 - MAC changed) + +Count = 50 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 7f16b90a18deec135d32c836063cde963fc4e6daa1555476 +Msg = 00 +Mac = 013e1d0bfc7a7a6c838ac98ce0da2e +Result = F (1 - MAC changed - for 0-len msg) + +Count = 51 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 3c89c59ab30eba6e5be8f69f597adc534cb52e94259780f6 +Msg = 00 +Mac = 7f9f1bdba93d26cc3c1f022244bff6 +Result = P + +Count = 52 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = fdcf28931c91b4b79c8f8332b4eeb3f995eb1ed2fb1e8ab9 +Msg = 00 +Mac = ad7f8852f1bfd65dfbce3bb39db59b +Result = F (4 - Key or Key1 changed) + +Count = 53 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 8f570ddd0963a80abec82caf8883eaddfd63cee9f375fa7a +Msg = 00 +Mac = 82b16380d804b8eef855afb5eb839d +Result = F (2 - Key or Key2 changed) + +Count = 54 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = cc1d70d3050f022442093e3210f5b45f1b610dc0f12fef74 +Msg = 00 +Mac = d1dc61c2ef7e2cd1a4e43dc34c0ba5 +Result = F (3 - MAC changed) + +Count = 55 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = a8a1cf9547543045fa2f00edf79bd85436bc1ae1d746790b +Msg = 00 +Mac = 48fc14782a351553ea453a3ec2538f +Result = F (2 - Key or Key2 changed) + +Count = 56 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = 123ff732cccb535ec7a1c47a6b0ead68df31094d896709a1 +Msg = 00 +Mac = 8f29dcec0a5d026d6fe4dc64cd1d4a +Result = F (4 - Key or Key1 changed) + +Count = 57 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = ed06bd049d772cb6cc5a705faa734e87321dc8f2a4ea366a +Msg = 00 +Mac = e3fcf2590fa9ffe093bbfe8d3d7b0b +Result = F (1 - MAC changed - for 0-len msg) + +Count = 58 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = fa18c0b348aad167b7050c0ef6e7caf0436750873c7e4929 +Msg = 00 +Mac = 630915919b6108770f5c3deaece1af +Result = F (3 - MAC changed) + +Count = 59 +Klen = 24 +Mlen = 0 +Tlen = 15 +Key = f66296bf67b6e91d8ad629c1b260cb5ca1985273925e73fb +Msg = 00 +Mac = 729f983d3b49b2ebf24eb04368a851 +Result = P + +Count = 60 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 2f4a6501d8fe7b65f607757ddff6ed87ae0681b98b53331d +Msg = 2361d2ed837c14b6c231daf0acf2623779e0d952e98e14149308807f79145c30 +Mac = 9a8ad7bb37d79321 +Result = P + +Count = 61 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5d +Msg = 4163b7ad671761a3f27394776970b413e35a2c43ca85560cdd3c9b407bfadb4f +Mac = ab85ac3a4f92ee2c +Result = F (1 - Message changed) + +Count = 62 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 1534e69565cbc541bfde6901bd6e598e41a7a703091c2240 +Msg = 85b78269899a4712eaa9c3de041f5a74766ec27dd5265da8a117c6f277baaa24 +Mac = 6b177203b17cc7c2 +Result = F (3 - MAC changed) + +Count = 63 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = f0302d9a197a285909657d611ce12458b8d24652e91ffe8c +Msg = 3fd6b98961f31c7b7fff0baf1cbb5884a9290ea7b5ee49915efb4b510b6ccd8c +Mac = d2d84fac8ecb665d +Result = F (2 - Key or Key2 changed) + +Count = 64 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 2081442435626f7ce377132c46385510d9febfdd90c3f104 +Msg = c4185eb75fc23adff60d6380006a1c20fa2ff466ffddf67e99a421bfd729188b +Mac = 7373df1900b7a3df +Result = F (4 - Key or Key1 changed) + +Count = 65 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 715fb6fb464513f3650a9d0c3687980ab9caa9876d69dfeb +Msg = d60b3402ad9f5f09375862ae7a370f0c744ffaf5001c80e3fd150730ab848689 +Mac = ba39c81c18821872 +Result = F (1 - Message changed) + +Count = 66 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = a4d9f94e644fbcd97e0d993cb0af507eed259fbcf8fd7083 +Msg = 677acb68500d6cbbf77a3f34f58840f0c16044827641dc43d6767ce98f85dd5c +Mac = b129c1785acf17ba +Result = P + +Count = 67 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 94b911cdc3137a6f7f32651b788eb82975660aea52b2c03b +Msg = 549aa84bb182312dd016e3107f3b1f9c5b6a89b543561a450ccf713c76e66ad5 +Mac = 7b92156f8b36d5eb +Result = F (4 - Key or Key1 changed) + +Count = 68 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = d3fff7b6f08dc4256239fc112890429fa00393e84e9b294f +Msg = 15d1522654bcdce344b5d9753a0a6f31c859d547edf520478a8b5ae41506d5f7 +Mac = 2d778849023fc9e9 +Result = F (2 - Key or Key2 changed) + +Count = 69 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 77bbda69ec034d73e02b06f0af30e2dab60ac80cb7822eb1 +Msg = 1e6ee96598bd014c95e9540f5cadfe6885cd094e04048e81633d1d634f065f09 +Mac = d35f3c169f67b597 +Result = F (3 - MAC changed) + +Count = 70 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 544a757bc50658d7e73b25688e7fef86fb1f9f08ffb33a70 +Msg = e473fe5656713b3b0e4fd12c640e8c542950577f446b01d09cbc41b6393ef81c +Mac = e1dad03ab8d2f432 +Result = F (1 - Message changed) + +Count = 71 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 1bebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +Msg = cf27b30423bd7e40d6b3aeb4b1bc01b40aec081aa00f2e3bc63ff61ac4b684dc +Mac = 617fdf927d0e4e42 +Result = F (2 - Key or Key2 changed) + +Count = 72 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = ab83567833d2f3461b5fbecc0e366694bb5ea00933b2b3e7 +Msg = 58d43b9f1581c590daab1a5c56d6fbcff749e489acc3ed51ee6aeeac0104e6ae +Mac = b29232e882dcb8ef +Result = F (3 - MAC changed) + +Count = 73 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 0e0fece7b6b659b642668e8ba3dca330523e70279155f485 +Msg = d8c35129ca5a84e2e6723332217f0fd2e19fd06eb27d84a93b75276270f97335 +Mac = d7ea4755260630e2 +Result = P + +Count = 74 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = b15763294afa61bc27e0785500ab5739136f51bc78b65562 +Msg = 8e8271b2758964fa71520f26aab6f870fa76ea4aa220475b3b379ec4ef8e80a7 +Mac = 6357fb64482d171c +Result = F (4 - Key or Key1 changed) + +Count = 75 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 6dd6efd6f6caa63b729aa8186e308bc1bda06307c05a2c0a +Msg = d2c9c1300f5a7520614550f9d23dcba6b41be6733426616f32912f155045282c +Mac = a12adaf849719778 +Result = P + +Count = 76 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 35631c844313ac335aa0d590fec472d805521f0905d44ca4 +Msg = 766f9ac761a06f4e006f405f7b3398aecad253f5cb8653e091e17427ff0fc1f9 +Mac = 49090265af87c220 +Result = F (2 - Key or Key2 changed) + +Count = 77 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 35008ef5baf263ae233758ca237dec1a51d67fcd3573094c +Msg = a8f1b7b73100cfe1a03003331d9d55b75fb0d2596ede723fae9240581967ba38 +Mac = af6c2ebe004c6d71 +Result = F (4 - Key or Key1 changed) + +Count = 78 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 6f383f798df8f4b9f0a99206cff82709c367340c7b3b0401 +Msg = 9668a011e5a3a613ddfd149b0e529e9e66665006f98e730400adb4a8226283af +Mac = f97fcc39e240b547 +Result = F (1 - Message changed) + +Count = 79 +Klen = 24 +Mlen = 32 +Tlen = 8 +Key = 9071be7a11dcf7a062d582dd5932f047396fd9eb71982bcd +Msg = a8a6703044010f8301ea33bd9a808ca35838c9f58683ae3925ab67b9e1fe1ccf +Mac = 9065cbc5249ff8b3 +Result = F (3 - MAC changed) + +Count = 80 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 36ad69f192ae4dcab771aeeacf01bbd32609bcbbea8ff9df +Msg = 6e60fac7c027aed4632444a95824e61e2c50aa3ecdaf09ed9cec92cec35adf63 +Mac = b6bf70e67b315c256f41 +Result = F (2 - Key or Key2 changed) + +Count = 81 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 0cbb1d567bce009d1dc5bdb8115607213ed9a516389f728f +Msg = 634efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7 +Mac = 4f0af4ff9a9c9e844fe6 +Result = F (1 - Message changed) + +Count = 82 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = ec65afd2d72bf477c7fdd9fbe3f1694c328088cb5f39d9a2 +Msg = 10d0e88b0db8d515bdff3a791c830b28e4e3ff4fa63f45b31a3f73dfb457bf82 +Mac = 7172095284694f5ccdf5 +Result = F (4 - Key or Key1 changed) + +Count = 83 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = a76b981540ce229e73064af4474a7ca4a042d03a6e6bdcbf +Msg = 740d4b25ca7221d0826057701a6bfd66c50a82f010a57be8c5efa0af0f761764 +Mac = 94b657fb57cb2fd6ed3c +Result = P + +Count = 84 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 36bf85bf63b28093d2dae511990a0bbd75184044b033c66d +Msg = c1fbbae61b81aebacf151f1bccfb1584f3a211fe797996938c03e806392e14c1 +Mac = 71796cf452f61db7f540 +Result = F (3 - MAC changed) + +Count = 85 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 67b79d9ef1a47867c7d21f19f99ed1085f17a9f092fac689 +Msg = d354c54151c9dcdf0d0fd8c51413c2645efafb2bf6b680b25ad76d3825a4c04f +Mac = e324e8d377447b40629f +Result = F (3 - MAC changed) + +Count = 86 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = eafa8699695431ab3cfa1e87ffeae4b822a391653d2e9d78 +Msg = bd647990f7afec76c8f726d1de806ca0cae6f708b5024b514f11c4320913724e +Mac = b0da9d38a1e821ef1f39 +Result = P + +Count = 87 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 1fc4fcbc73dab4e73ed9d7606acdcd42b74972460c640fe5 +Msg = c86553a60da69bec1924788fc3ab985158a2d4788f33c01abead80974d26dd67 +Mac = 992fd0b735b9fa9255c1 +Result = F (4 - Key or Key1 changed) + +Count = 88 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 618041501dfcfdd2b60d71c04d635f6357ad8b0643af77aa +Msg = e7e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f5521e6ca79877613 +Mac = c183b8f21cb2aac7201a +Result = F (1 - Message changed) + +Count = 89 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 53bcc9e9244e2fa1752c61e65aa5c592138447ef9287fdcb +Msg = 92e962f0086591b6f61c2ce5af62480722ba6a640c3f53806c421de438358721 +Mac = 105d286777da3f2a03a5 +Result = F (2 - Key or Key2 changed) + +Count = 90 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 6d2429921f90a22893cb65c4530e56068e9944d0b0f61fa7 +Msg = ea2ad7b7d3f80793391af0328fbb594d79898e1047210628bbc7441e135bfbe3 +Mac = 482a75ec0ecf1ea59f5c +Result = F (3 - MAC changed) + +Count = 91 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 3100d3c70e823fee9a1bf486ec1c56771acae35246535de1 +Msg = 4e6ddae0d805afcd10a055bce584c848d050fb29fe8f1c64b18e1abfe46b6578 +Mac = b0deaf1bb6d0425d1810 +Result = P + +Count = 92 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 79aa6c03dde4bc5949921563264b440ebef71b3298da67b9 +Msg = 879954f977e945cd4db33d20e6749a6832677adbdd9c7e262e4acf632f665f45 +Mac = 9863fe041d191777067d +Result = F (4 - Key or Key1 changed) + +Count = 93 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 85467aa82c22ab019f9243c203b4371c95604dccee5d81ef +Msg = b86edcc59dc9d8e34bea3baf4bfc0d5e117482a48e522c1b02a370e9124b379e +Mac = 54b2f4664eca96639f7a +Result = F (1 - Message changed) + +Count = 94 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = d37e7aa9215cb5c2c2fe81834f200192ada3dd0f4ccb9d69 +Msg = 064f85a23e049529c74c4f8267abbbe685b6a838841a9e304fdf14b835eee396 +Mac = 536701771f51d2ec354f +Result = F (2 - Key or Key2 changed) + +Count = 95 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 72e8c7d74cec3e248fe938a1159d8d969928e6da26b8cf96 +Msg = 58019989445d5ee855e0ffcf84e76f3383ae09cfad74276a3edaf05cbf8d714f +Mac = 182d3bf14cc391aef27b +Result = F (3 - MAC changed) + +Count = 96 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 5f847950d2a5d44137110594d3c0afa995b36422ab36d044 +Msg = 70523bc397417e09d791a4976960e02636ca7144a5681cf7b116daa33eface2d +Mac = 5f0b325fbfaede23de5c +Result = F (4 - Key or Key1 changed) + +Count = 97 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = b01e84220a7d514060a79088b754ac0beacb60e5b3a47020 +Msg = 036137cfed567fc5e234f18d6c2b8c7e9ae0f3fa526d6596e9a9ee7bf1abdf0d +Mac = dbe49af18c1e1bc99b73 +Result = F (2 - Key or Key2 changed) + +Count = 98 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = d90ba47d7c9107b103cf167041dbd7b41d96016d93961917 +Msg = 2d53836a0437ccf27cdfe2bf2ad53f3082100a9f045cebe6b3031d21c9a6c5b6 +Mac = 7252ee3b5eb76abeec9a +Result = F (1 - Message changed) + +Count = 99 +Klen = 24 +Mlen = 32 +Tlen = 10 +Key = 02e5a1306f612bdec098458cff3e691d93f050ba11ba6273 +Msg = 4bef96da992ab9386a3463213773f3ca7164813a15e014ab819f153386fa04a3 +Mac = 5fac9c1a1636b66e2f55 +Result = P + +Count = 100 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 4c99ce359b8b82b67ee990529a10f2ecceadad456925a57d +Msg = 89ed296a3ac03fbfb71422b9211799150b9d766a8116bebd48bd0a5068132dbc +Mac = e0e9583d784f87e0b7dd8fd7494a81 +Result = F (2 - Key or Key2 changed) + +Count = 101 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = f085fb257ab64013b43a59150864a31e76c9ae94913a56ef +Msg = b90ef6b773f250d4dac6fb9e62babad69ab424c96a8c0625987c030a91d27d64 +Mac = 96f1dc9a1c668bb203428181c016ec +Result = P + +Count = 102 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 8109f3208d5cda0f12141e40c85959b72eff1a937dae7f4c +Msg = 49ab30d5c01e91bf113764342cb8ad32e6af945341a9c6a0ee2319a910416fd6 +Mac = d13777a33f9520793eb8cbcec047cd +Result = F (3 - MAC changed) + +Count = 103 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 1eba29062320df7275a51aa090ab489571057e64f0ff6a52 +Msg = 754f03c2e298a699568d10c3e40390e0f8c398283ce1c35dbc4916fe479b87be +Mac = 87dcee48dfaa43e8223a2b338b220f +Result = F (1 - Message changed) + +Count = 104 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = a04b976fa01411bcc9a3863cec91f486944fdca6e8754615 +Msg = abf45f39904a8f5766763fe80fa189ed9c6c15bb1a7a8fa0ae3058c9e5b87c63 +Mac = 577aa39884335a4f66dce2a612515b +Result = F (4 - Key or Key1 changed) + +Count = 105 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = c6f0a3692c9280c48393b0dd763e5d0b90477f34ad69f192 +Msg = 737bab64c8a0fd6a07329bd729d2ec88685cb5404bd13a40e095a61846dbacbc +Mac = d61ad5f6d8aecb7b3fc1ddb1aff64d +Result = F (1 - Message changed) + +Count = 106 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 095eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a +Msg = 47c577d1a7e69828b5c3264738dd334be8d7678ec77bf1ccb5fec3843f85ffa1 +Mac = 4fd309a62435edd9b1ac8861f904c1 +Result = P + +Count = 107 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 2f853c1ddb31694985ea5e47322bfc8567fd7a74a46b0597 +Msg = 5719e671686e87e931c2c0e5842e907bf584d226e040645eaebb896b53a28c7a +Mac = 75ed56da2db0ffa101578118e3f620 +Result = F (3 - MAC changed) + +Count = 108 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 67f5adc0842d7e1a4f8591d678334c95ac83df95c4341c30 +Msg = 6c8aaf2f91ba87b61814ed689331264c7bf98c2223c426a4ebbf7b0db692a8d8 +Mac = b7c591522e9a5a4f3af3aea24121b6 +Result = F (4 - Key or Key1 changed) + +Count = 109 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 8702cfd1ff87a749ceb0a7192f5a872740b7fc600845df4f +Msg = d29b6a2d421abd00a59b756af34bd72a42f5557a2ed40f8a7ea59b2e05ff01d3 +Mac = 33b597665d375c95464af2ad56465c +Result = F (2 - Key or Key2 changed) + +Count = 110 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 64ec1fd6af554485856b7bb3c0ad16fcd9c4ec690914a09f +Msg = 0418a0afc13d6215c7bd68b12a327587eb63c145120ea626fce59c16f7d66717 +Mac = 80a85e77efe4f47d8938dd9c55d67e +Result = F (3 - MAC changed) + +Count = 111 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = f2991112c2cbd3038ae37b772a5090690006009f0c1965dc +Msg = 231d72c9325f8c17aef4efc94855803eb2fc1eea601c84a98e8f7053840f0591 +Mac = 14269c545a0e3d56ac9cb195cb6197 +Result = F (1 - Message changed) + +Count = 112 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 2c6d7fb9e92d98a1dd92e96f6b4013954ce1aaa5de242e6f +Msg = 87ec7423f1ebfc37ee83c85938d58259efd16e3c8e55fb871e9998baa9cac81a +Mac = 782b7ebbada87c3572a3918a03305f +Result = P + +Count = 113 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = d95a1b24964bfea5dd5a65f5a1398c6f9d43b26d98b47816 +Msg = 92f9cf56188322d18cb41d723847e6d419cd163e2be71b78e7b8dbdd099a99b2 +Mac = 2498787836840fe1411a17f153c546 +Result = F (4 - Key or Key1 changed) + +Count = 114 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 62f2490ba0c658848859fcbea8cc6774e24c9de979dd29d0 +Msg = 0822e3e6ba982091d532cd5271fbde25305d1f6e71880f81c618f267a9f122e0 +Mac = ffb6c2a6c73245138ce06e458cf914 +Result = F (2 - Key or Key2 changed) + +Count = 115 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 1841161a3752de1491b2b2f519d8447636e149437478d2ff +Msg = 238e36b73b474de88226d4298121393ac9162f1736040bcd717b6e8db85125ff +Mac = 4d1656a2c8632260aa55a097451fe7 +Result = P + +Count = 116 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = d7d9a5f750078f1a82dffe2c70e6b0016eb42d13e1a8aad1 +Msg = 28a107d22fcd0499e0ea5aceda6dbc288a5f1d9da003c626bfb9a6c27922e9bd +Mac = b67bc2e20c422f9c7c27a84ba0bcfe +Result = F (3 - MAC changed) + +Count = 117 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = dc3ca30782c9c0a7fe8923d4b8d31aaf21e63895f51fb2f1 +Msg = 8716298bc17ed51aa273711873e2c2863e7a5021e46a183e6c6c81f99c02918e +Mac = f41b1896a22db30dac50b6b3e5e2b8 +Result = F (1 - Message changed) + +Count = 118 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = 0b6b36339122610178c4bb72eb558abf15e5ed9ea0077a5c +Msg = 52839f2f0853a30df14ec897a1914c685c1ac21470d00654c8c37663bfb65fa7 +Mac = 665f05a489f8ad0feea290401b4bf2 +Result = F (4 - Key or Key1 changed) + +Count = 119 +Klen = 24 +Mlen = 32 +Tlen = 15 +Key = e200414db0255ca3faa7f6b17a62523f2c75d99f6ae162e0 +Msg = e749041b314f8719e17a8cb26162e2c910b31116dd769083149238d67792f991 +Mac = 713fb4d0c95743ee7da970cac7f771 +Result = F (2 - Key or Key2 changed) + +Count = 120 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = ea77165284ada4599f0bc0a41db787310f53a1588282b866 +Msg = f3a1a6dc2092ae7099bda65f8af32aa19796254a13fd9e0e7319d50402598faad6ccae2a028604db0d44690ba3530bfc8bad062cd96635d9654647c57bb81537 +Mac = 9c7c379b5f8ee87f +Result = F (3 - MAC changed) + +Count = 121 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 18e2baabdcebcd25958eb53d1bd2a95ffb9b51a3c1d92a9f +Msg = 1df7392e915726847822817cb542df6b14df16d7d3d3ea8d615fe9ee651c938a0234bef059d139c350d6b01192cecfe1d821aa0b668e5d4dd8d5ef9a1eb47db5 +Mac = db521506073b8c9e +Result = F (4 - Key or Key1 changed) + +Count = 122 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = d39f12a9c6b63c17f116bc003f4def172943350e29d60258 +Msg = 75225a26d63e91281fb37ace46354f81de99dedfde8b770ea47f08503aea87d8d7b190dda9e150ecd1a2a182b06676da61667a04864ff4374838ee6899d8961b +Mac = 65aa057a01b390ec +Result = P + +Count = 123 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = b2212ca369c611b725eccc3daa58df412787a3475f418d82 +Msg = 3727bac9706f482f55bda86dc052aa6810e2c1137b97fc93a65838a2724a9531199726517b6fed53b24d062eec7c22227ad9379b24da7658c0cf7ecc0368cfc5 +Mac = b869a9e06994fb39 +Result = F (2 - Key or Key2 changed) + +Count = 124 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 25e5fd5c39e684696e71a6f81f843a196dcd030ce2c07afc +Msg = 899b48338d5ec3bb4a681f76ef37b6e25357b50e9578d85204c3753d3b6ebccf908e3de8b02dab01839ddf1a560b1ff33857a17fa4244b96612bbdeaa7d4913c +Mac = cfb0650c7566dc49 +Result = F (1 - Message changed) + +Count = 125 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 49bc9d3bcf3c22daa8cf55c1b59d4bffddc2412d60518e98 +Msg = 980026395d0544975dffaaa2c56db1df5816cd80cde513dc76f6f81d21f15c383c97c7233c9af2423fb28922efed2f69aa47c30de17ae1c5be17acbd0ad6cb8e +Mac = a7ed2a35c89130ad +Result = F (1 - Message changed) + +Count = 126 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = c53f21f1ce3a1792a2de14277eb97664d4c561b3fd4b0e32 +Msg = 66e15206c23751497bc2c8d734aa1136aec08bd4e80fe3408bb3929a84efa749f379c7eb441872929b71872d761e0b448e0126e9fed86eeba611694cd2df4cf5 +Mac = 1b86a912a0ec9f94 +Result = F (2 - Key or Key2 changed) + +Count = 127 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 6286e3e53ffb9bb143fcae724b45f86a23bbd74c42518144 +Msg = 62766e9acd41285eeed9b4007340dbb611699624274ad1179e327076135d907638c60f0c773c4ea8d9b8352027ee78ea4f22198f083d2f5cb920e55b9738c582 +Mac = 3c56ff841dca9662 +Result = F (3 - MAC changed) + +Count = 128 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 9c5d43c1a1269cde199509a1eff67cc83a1759b71c9e7a6e +Msg = d576565a938782fc7e9b095db6213002bf5bbfdcd761fd6d876adb2c7947702b8930a5f71ec332bfbb4ac9b9d13d90c2d808d5459d0dfe5ddeedbe3e14038fd1 +Mac = cc7b2038ead10d8e +Result = P + +Count = 129 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 512a23489b8d6b62b63e9188c0ee5016f20448c082eefe82 +Msg = 1fdbfff7941ba22dd8e1dd13a05a3bd8f2c8096894266536c40a983929d0a6340af5233bbec1477363294519d3f3d9c6d41b20f18f76adb54495d9d43bec5afd +Mac = b81c76829839cd43 +Result = F (4 - Key or Key1 changed) + +Count = 130 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 20d22c3b6ab38c5995e22b341f359be25616b2b8c7269510 +Msg = a1c041d1d4e7cd6a953f2e4837e3e676ed48633a2f15828f5f3551d5ad2a19c838a49caf75529bd5d5f89b3da2c2e9922ad8dc5d20325a7b3fae9dcd305f3731 +Mac = aac4d4f4172e1f05 +Result = P + +Count = 131 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 22e29aa7547e5ed3a64611e04f1d55f7a397c1619669879c +Msg = 773b577b95e29d36fb30779d2ea23e2ffed9e1b46aede42bbe03a904fe22ef8f874298b5f4a6afe63f6ca9522863eb5cdb1c8d4bcd445e43e7302875e6ba3592 +Mac = 16bf98c7a5deff18 +Result = F (2 - Key or Key2 changed) + +Count = 132 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = b320edb777d317af6c933a6530d9f5cb78d2d3104ac02120 +Msg = b31d3f55909bb660628de9eb95b75df776455f2f535f461edcfdf8a0cffdb096d573fedea7400f8374e62e30879a8beb259b3bffb4c3813a235b4c59853400c1 +Mac = a0d9a7da024326ea +Result = F (1 - Message changed) + +Count = 133 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = b9bcd0ae7100f991f4365ba0683b6d461979ffe86d0ecc24 +Msg = 19d0077952eba12a01db1d137050bd7e9102a31242eb38a5cfb3cf51b86c86cab57f6deef8e6eb9eb29c5dcdd852ffd627641013660b31abebd40fab60514159 +Mac = 972119a55b125e0f +Result = F (3 - MAC changed) + +Count = 134 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 00af010f462ad40a38eefb788b648e1cc292cd4bb08ebeff +Msg = 573db0961531873316e87090f79e84f040c8358f8ca78fd9ea1ebeda82c1cff67c2ebbda1da0a1b233c1539cb4c0145da2a4a05431e06dac2c2731d59581a434 +Mac = 92a67a99c128e173 +Result = F (4 - Key or Key1 changed) + +Count = 135 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = e12f98507d6514c3b551d240595346bc9e9b6a987033b3c5 +Msg = 3927bac9706f482f55bda86dc052aa6810e2c1137b97fc93a65838a2724a9531199726517b6fed53b24d062eec7c22227ad9379b24da7658c0cf7ecc0368cfc5 +Mac = ef48edc762db1d47 +Result = F (1 - Message changed) + +Count = 136 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 66fe8076d4e8538e18b84f965255d143f1c7d377e099c1c2 +Msg = b3fe18cbe086955384226c11c62c1dd14e7eabda573450d005b46fd9f9eccaff24dbf5d6d8530b5e25fd9f2a629df5c20a977247cab35255d71d992d85b04c14 +Mac = cb67f0c1819ae458 +Result = F (4 - Key or Key1 changed) + +Count = 137 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 82233a224ed122d7306bd6717a80fa1986964f9db41bd40b +Msg = 65c46382a278490b9825d4f1907f3b9f196e136906067020b6b94ee398cb2f39ed07055dd0b151d974bb8d56ae3bc8b3b31d9054221514bd45d88a5f948ccfb1 +Mac = 27e94d22e8961f92 +Result = F (2 - Key or Key2 changed) + +Count = 138 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = d3e3bd80f45140cfc2f857a913a89f0c7dec86790feda4f9 +Msg = ff26ab66c6a10ef910f5b94589b24a7b6fae8e4396faa552b014603fcb5eee921bcfb81ffae989922debf24a6947ed6b1556c02e524b247c3966a7bc636a4fe9 +Mac = d2d326c999095b39 +Result = P + +Count = 139 +Klen = 24 +Mlen = 64 +Tlen = 8 +Key = 466fa94c2158c1cd84b83fb2f15ccfce804f611ad0fbc4fd +Msg = 5ea068d4f363dc7f1badf97b77ec85412a06dc8d8e3f4364265c7956d4088f014c78fad6c94be720ffb4ce4150da4a3f427f288031e0bdd241dd7daf975acabe +Mac = d6023f6ffd3c788f +Result = F (3 - MAC changed) + +Count = 140 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 6f5a146524457615d81a605b38a5ff03edbc5c426ec7d551 +Msg = 9be3a736e7e72560bea45e9c8ee8bf37c279bf5b2ef16483adcc093208c05ee51a4db04632946ba2b96cdd9d15b33c25cce2eba4ede4f97aac29ebaa4cf6bbd3 +Mac = af8fd676ee05154b82c3 +Result = P + +Count = 141 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = c62e6eb86b8daa37936086dd2c346e3b14be5054cdc2f3a4 +Msg = 559407bb6930d5adbdf19a7e285ba1dee5caa03ef54e3a3fc1b8c86a02f55921de9bf7d553c22d7ad915c6384329d664e70dffaefe22ed9c4e2c233706aafa04 +Mac = e297ad7830c79d387ac2 +Result = F (1 - Message changed) + +Count = 142 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 225557b0faca3d6cbaedec5c39c98f0ba0723f4070f2278c +Msg = eb1383e84d4bfc5a9dad25374055b81eec74316b18f6e001b0623d470c027b7023456000fc61538b663cb7c0e98d77a7fc3ee2277816bacb4d9487c6741e3134 +Mac = f07332a3b01d0e8026ce +Result = F (3 - MAC changed) + +Count = 143 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = c36acf733d310e3b9842b3006aa637ab092faf4a580043b5 +Msg = 1d674eb5d85945a6c7842042adebe549d4fe515501c06c1ba72961ee5bc98d8588afd6fd64893e21220db7ea6a973a420613130dde1d7f6a26677836d65bd0d3 +Mac = d629ef50a784db860de4 +Result = F (2 - Key or Key2 changed) + +Count = 144 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 332e30ab63b197e79b86e4da732bad9250c0a5c9976a6c67 +Msg = fb41304f9f5b0f696ddb0e2f0f57bb091f8a31b5324d3cdf15c3bdf256d3502d06db2df9bea24c7ae08fcd641f199610427f3ecf24b92a7e00aef55aeba71516 +Mac = 983e453f602db30e1f85 +Result = F (4 - Key or Key1 changed) + +Count = 145 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = b311796b0519a45c176f3ff458d4d818668093e82fb871f4 +Msg = ec1a1e9ee85cf960e5dc4e239619ed85f4b14d32cbd42dfa79f77a27f2cd740d08730de2eaeb91d0eacb8c498336e99b9a0c57c4045ef18749251dbfa733b4f4 +Mac = cb2be0fd09f10deac5cc +Result = F (3 - MAC changed) + +Count = 146 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 6311e7f0a7bcc11176fb411fe719d4e0782c8935524776f3 +Msg = 85f647d940a6d1acb6b7851912f807063515631eaabaa019dcfb993e86f408266cace4c24940eda0083d8569364dc1afb816c0e5b95f3bafe7745e5ddfccd6b1 +Mac = 776b9642c47fabd7e9c8 +Result = P + +Count = 147 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 6d120cbf74df2efffe98397ee303ead4e91c5e7839b82885 +Msg = 27ea9ff8359463a7742cd9c9c269ee678f4ab22091fdaf29b9007a92658687cbd71c4166e68c5a1ef30160191f6d926abb28f1da01da9ae8019a520edd576346 +Mac = 5a902959d73ac97ea071 +Result = F (2 - Key or Key2 changed) + +Count = 148 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 8e09d421e09dac1d9d966f02a3a520972c6aed2003d907dc +Msg = cb32cb87ed59ee959c011211ae7cd475c3b5feb21cbafdd0b17796d47dc4d4e61da345b399c2661182485be13dcee33a9eaa8cc4b9742361f4c36f1361381f1a +Mac = 1b2bc5956223b8801456 +Result = F (4 - Key or Key1 changed) + +Count = 149 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 3eeb143d4a3c08ecd9f7df8eba42789b517dfe99e07958ed +Msg = 3292b8548a35fe34136457bcff52b469eafdb1b86b6cc88bed35c4cfba43785c59d6b01c1acb6870ef1e3ccf7dad20b1733f51ab1bc48cdb2fdf7d86eda17a00 +Mac = 3a85ae8fd368cf9846bc +Result = F (1 - Message changed) + +Count = 150 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf6 +Msg = 3cfbc77b8897b6a5613f62f6b1c89b0d68f272c6c19b9e0ec6331ef616702006e64322d3460a57d3a5074c719811cb5dd78900268890da0ac177b40d48773548 +Mac = 325aa552529e66a13904 +Result = P + +Count = 151 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = eac3a1a6eb8efe983c6b37b6c2709f5a8851ab72cb23a66e +Msg = 2801a813dfc3f1c753f4f342a113c09b8e9a7ac16483c31bfd0b746b1db692f805937eec44c16bfbd132154557afb17ed01c1f4c55fe67f0343a6329441fb955 +Mac = 5b0b383c4870af31a9a1 +Result = F (2 - Key or Key2 changed) + +Count = 152 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5d +Msg = 3f63b7ad671761a3f27394776970b413e35a2c43ca85560cdd3c9b407bfadb4f1edd0e6026572ca0d8274bdaa6870749b0a727aa8c5b7e9442100e0c9b057455 +Mac = 0380cb126c63bb48bdb7 +Result = F (3 - MAC changed) + +Count = 153 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = b7b86dff6746145aa7d5bba73ed6a46da5b1200bd3520357 +Msg = 8e7f7e7e3ac2286bef6822ef47f5f73f2ff512e599df17c3723f7a55d4144a367c774de67e7e52ca3760c37484da7a2531d1d590b5380de11c34c3fe447edc0d +Mac = e7aaf6f82894d8825d80 +Result = F (4 - Key or Key1 changed) + +Count = 154 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 70a26d985e6b99bd3a37575f011f2b84ed84bebf99a52760 +Msg = a2cfbcfdcd90e0962f233d7fb70668c8c36cd5e195e2ef5c043268f47187cecffdd36000f96e1f509f00283effa040443b3db15cf73d55c30c65f0fd7cf9c219 +Mac = 96d09f0a799cb52575d0 +Result = F (1 - Message changed) + +Count = 155 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 5d678acdb2e6cc03537411ae2e95da120161ecb6c92d5e23 +Msg = 91dee0cd1d17d9342f4d346cee19f5f42e0c3b0498447ec4043c15bb2ae8fb8a7a02d2da489f28932c05fa4ea9c0760e0cf3052a97ed898edffce3247386b98c +Mac = 4a40b4f63330413918a7 +Result = P + +Count = 156 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 795846f9dbf36415640276642cccf87e3dbdf6519c5b2db8 +Msg = 4fc989f327e1a1cc7b8af618ee6ae6d25f78e2b76b681455336945655f13fd5a639bec3a004a88ad0e2df8547a0d315b8ba15f5269038638df6169d960f5ab5b +Mac = cc5efa5ef19f6cc63f83 +Result = F (4 - Key or Key1 changed) + +Count = 157 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 61eab54142fe7e16787fd2d54829cd3c4bbd793e72f9ef9e +Msg = 13f079b004d1fdf02121564f0a96b057f120899ce920169561d5e3aaeb16bb8e4347c7cf8c86f9acdc25ac26fb5d845a68409c0d9df0e089940fb7a88a76e62e +Mac = 920de91f34eabfc31648 +Result = F (2 - Key or Key2 changed) + +Count = 158 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = b64d00f3a4df754fa4ee6376922fb67ccce0c6209f677397 +Msg = 8003586af34bdd0acae4f5547394245027c2ffcdc9d1335311acc859e9a2a7b817755a601dad14495d32f1ad811a7e751ac07cf18716e1cb193c203e7551aa83 +Mac = 79e8a0ca036d7b0bd2c0 +Result = F (3 - MAC changed) + +Count = 159 +Klen = 24 +Mlen = 64 +Tlen = 10 +Key = 98f4596970e6515b5357f6c6396aac182d126decaddf567d +Msg = 65737b65927aebcf6cefc7ca107fda8447e8bebf1f08a280d53a4b07f8e35904cc48cc08eda3c63a3475924bde1de6acebaa65fec5ee68ca22d3fe722bf33267 +Mac = 05c51c2507108a3f8293 +Result = F (1 - Message changed) + +Count = 160 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = f0409b050346fbd319c8630e4bc9dd6d055355fbb961f018 +Msg = 731db98bd990b2ea19f848fda3519b32bc1d2fcb2f4d42e13f655da8e1dc2af428c185fc01a5d55e20b49d643a254e8675d560301d2ea0c5984ecce39c655de9 +Mac = d37deaceea7ea3b50aeb02636e5095 +Result = F (4 - Key or Key1 changed) + +Count = 161 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = f266cec01c5fc08c0bdabc9537bd1aa2df9f2b8ffbe5cc94 +Msg = e19cbaa489a0f65681c983cfee3a4b699339ccb096df06bc871398be9eb926d84426fd32d5d7fa4aa563a88b41afa822f761560d9897a9747cd85b3dc74b4adb +Mac = 8690d4f8153e56e3ab80c7e918679a +Result = P + +Count = 162 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 6e12c112720ef346bbbe7d1c19483721b1c52c438dad40e3 +Msg = ab8b36f46d1749cde7dd9936df95cdc8e0b359b8963bff4e7bd59599b32408623354a15e29f287a79801866d434a0ee9cdf37f931e53a39509057c7f2b3b413c +Mac = be9e70fdd15f96a8b7457cb727caf6 +Result = F (1 - Message changed) + +Count = 163 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = e9ed05813262fbe769c1104d8ba5c836dbd229a22a681de3 +Msg = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a966e2f3f87f6c2428814446563fa71864d97c8336b0e34bf9466ec95598398cd +Mac = 4b3ac19f4dfa04108283b0e2e3a8e6 +Result = F (3 - MAC changed) + +Count = 164 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 0c84328951c66e0f5341b741d2c2796d3524ef732c69e779 +Msg = 9071c45a99cb987aa79596a2014f54e6fe400a6bbd5de96e156cae87cf69762f1329d481213d213d42191312fd76911d8df4c6ad9304754909058cf477adfbaf +Mac = 1e1003ce7546009a3ba7f59dec236d +Result = F (2 - Key or Key2 changed) + +Count = 165 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 3aa8ec246323db7a3953737928061c79757de2e921c27643 +Msg = 84e9cc9bb7f4fb62ae7396859fcf33da5ca6c80c311eb392107afeddebebe0d662a887879e4014187d2fe8feefb01e6fa0d35819d7cfbf139e99451423b62ee3 +Mac = 4259d5f983a287fbd987e3badafb33 +Result = P + +Count = 166 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 66c07634c94dedb5d4c6f19e7cdeb954692ccf51fa242abc +Msg = 4bbc9d3bcf3c22daa8cf55c1b59d4bffddc2412d60518e986899d6a3e2a781668b0c6b9b4ee0ddbbcd06bd643eb201fe7829699e4dc86e2a1b4876bf9e40494f +Mac = c40f872ea2f1a1b45ab5737c2e4f33 +Result = F (1 - Message changed) + +Count = 167 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 3b9d6b0652836457ec4f701f0dc0e5aed73d16585d61cb1b +Msg = df7b23a4e4456e0152b24853fe0d5de4179974b2b9d4a1cdbefcbc01d8d311b5dda059136176ea698ab82acf20dd490be47130b1235cb48f8a6710473cfc923e +Mac = 602941735206bbe57ce1c2e3b9509d +Result = F (4 - Key or Key1 changed) + +Count = 168 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 7253ef10bbc302f01aecf315f9a4122ba805dc4048c30ac1 +Msg = e12f98507d6514c3b551d240595346bc9e9b6a987033b3c50940442dc385634e2a28292856b97d5a78704388b2b6d0ff2ce7a19c64574deac593b98a7ce98bd8 +Mac = 9e62a5b8851d3a0fcddf06fe116ac2 +Result = F (3 - MAC changed) + +Count = 169 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = d718af395ba3f5f4c6d15c24475ec7f0f74f3238c81d42d7 +Msg = 0c0d3d7ff5d1b707be9648f263b8f013fa439978e959efef57d471cae02dc8e08d9d58d40381169afa039936f1f773c72003c1c5af03018725ab2408236ee4ea +Mac = 75749ed44b76d7ac16c98d8b6bc18f +Result = F (2 - Key or Key2 changed) + +Count = 170 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = ec98ec44f5a86715014783172e667a748f162c5c26a8b34a +Msg = c0947efb86d54644087247f9fd95133a94075faf6250a2cc9f20df5393edbe1a4bdee20e90e877781a370a7f00cf9eee7373fc38acc54aba23b0df3f020356c9 +Mac = d994553290066d778369b54ae06668 +Result = F (4 - Key or Key1 changed) + +Count = 171 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 9fab32caed6e1cb27d2115cc641779127d4aa57db0955bd6 +Msg = 6e3e25db29da2c787bb37755ee770e2402fb8208da23389d36030439a143f971ecc880dfda90a8231ddebd2881981ca968ed45f3763a32ec8d2fe854fc2e4b4b +Mac = 4d3cbf9b68da0c5b49ab3b0913a2b1 +Result = F (3 - MAC changed) + +Count = 172 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = aae24266e5981b2ed14213a29f961cbbf7f02f63a33c987e +Msg = 8244cb416b3d09521ac2fd28c29084ff3d64761d46617b59e8b221de36702c2d3dc62e61375357b702cf8d4dd0f2bf2a1f91777fec0baf2c23e3e6865bae7358 +Mac = ab8e9df7128f4857e0a1c24fbce473 +Result = F (2 - Key or Key2 changed) + +Count = 173 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = b9bec4e88775777ff1eb3df671fe8ac03a693a1c26ea254f +Msg = 8eaed4810702df8caa12fe7e26e7ebbca11aa2de9f3169a8262c0e3c205a708f0071401aa8de09d28a5a6e590ebeb476341880c37bfee1a501229081eb27772d +Mac = 273b0d874010eac97ceda34232f7ee +Result = P + +Count = 174 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 15120ac9468fa30c92ad87e7aba41ef552814e4ecbcb9350 +Msg = e3de6c6119d7db471136285d10b47a450221b16978569190ef6a22b055295603c9c1ed5da3bf96bdb43a5722cf4e2ea087cdf9b23b3093d250d44047be634b3f +Mac = 9a166994de85e5d60b154d49a867f4 +Result = F (1 - Message changed) + +Count = 175 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = f9b9633f12967f1841161a3752de1491b2b2f519d8447636 +Msg = fa14d3656f7f7610f3a629bce14648a593250c6f309c02c6c552bb42984ac58db920dbc7d98f59295f37f3e9b99da55ef074ed65801b390366669b4c7aa1c483 +Mac = 2c9f3650866b97ecc5ed66929f41dd +Result = F (2 - Key or Key2 changed) + +Count = 176 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = e87275bc62ad067b121b83f220d4ee2b4245541283dfadcd +Msg = 6475757f30dd0a96ad64bde5c2605a9d2ca82a7223a9ba4c39b6dd3f86a0f4bd02876d0a32ef8af1071664b603862f4b9de6bfc6e7154b136e7a72e661957bf4 +Mac = d0bd2d3d35a22f37bf113090cebecd +Result = F (1 - Message changed) + +Count = 177 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 8b63d3c794e5ba0e09e5d5a5c56670bc0e289b30171ccfa4 +Msg = 44da1657e4be60d887a097e29d03bdbf5920bb0504e654bd963f58c487951a72e395237a9d32281125ed3a533c543de208c99bd063853abf79ddab4692c3a497 +Mac = 29d04b97ac302fefa80f71ea378e7e +Result = F (3 - MAC changed) + +Count = 178 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = 17039577fa27ef5ac3bf97572d9de5f8eac0aa58ff29b990 +Msg = b0329a0978e5a2d1bc85bdca333e7d0d1e9950217ee9547a84e76d3f49999451bf787288e8d12d40456c8214926c14e9b076032fe315c1633d5d21d85acfb1b8 +Mac = 51b4bc8b479dbd60e5de94ba8b9d0f +Result = F (4 - Key or Key1 changed) + +Count = 179 +Klen = 24 +Mlen = 64 +Tlen = 15 +Key = cf6b5edc515882f8a7954a5d8517b1a85e9559858527d0db +Msg = fde631afc6c042d77b579dab9298862d943be673cea59eab4a0c1b5cfddc2aef42590e6d8786d18a4646d7e338c2b984c50a50adbeff0fd64e7096f02e8385ee +Mac = 5ee3547a06661661c46c3778b0823d +Result = P + +Count = 180 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 7b6f4f158422f33543ca90dd0a76cbb23c0dbef26ee140aa +Msg = 6704dc39a259152d2dc3f08b8799ffecf4e1bc38 +Mac = 5c12ff63244c64bd +Result = F (4 - Key or Key1 changed) + +Count = 181 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 7a381f75058b85680061eeaa0242d3a16a64a5ca50cb61fe +Msg = 18b31ed5ba1c3ac562ff3ef274424b86c0815c26 +Mac = eb8f3d508c9edb8b +Result = P + +Count = 182 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 3662d7b7c93211535c862ef3dc2724c492cc1e53a58f23a3 +Msg = 8ac860504258c134c6835d4cfaabdb316c36d99e +Mac = bc1b870eab5bea9d +Result = F (3 - MAC changed) + +Count = 183 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 9eac76976750b7937b3bbc6986b4c726f0d0a63310db85d7 +Msg = 5de2265292780222349ac793eaa17c5a22902344 +Mac = a69594e569230df0 +Result = F (2 - Key or Key2 changed) + +Count = 184 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = ed1531500f319e09227d6bd181786b3b446f081abff2e697 +Msg = 7a734243e53cee654be988f5c735b19bb11f3389 +Mac = 9f2cc2a8c3d0a34f +Result = F (1 - Message changed) + +Count = 185 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 85d0d04cd3fd2fb34dc18fd55e645f7492d5280657577008 +Msg = df899dd6b99cc28d66604ca92431fa7f442a4927 +Mac = 18fc40b25fb9c138 +Result = F (2 - Key or Key2 changed) + +Count = 186 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 90b0c8b542c91c1b2dfdebb589a7eced6c9b7b43a7729840 +Msg = 38d1a87296529595acce251cb232db8ede65581b +Mac = 077570fd0efa770b +Result = F (4 - Key or Key1 changed) + +Count = 187 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = eceacd807db82378e9bd7c79054878f09dcb5087c2e1c349 +Msg = 09bf4f77a9883733590a3cc7ee97f3c9b70f4db2 +Mac = 58af901fe0fb5d29 +Result = P + +Count = 188 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 16227835305b7586a3106d93da8bd70aa0025df69a0e85dc +Msg = 1a223362dccc99472b2cd1d712ec6dadd60ef972 +Mac = c26f3980d17f6c36 +Result = F (1 - Message changed) + +Count = 189 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = d18cf5dbf5b2094dd6ad85d975449e2dda35b184633235ca +Msg = 7f557e74f53c344daf7495526d1270dfa8fd24ad +Mac = 5b7cf33ec05b1576 +Result = F (3 - MAC changed) + +Count = 190 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = f1681287bc931a0d8f296e13b3584d6efcb6ca76aa90cc02 +Msg = 08c62ff9bd7bcf189f530d5065f8764532d2692f +Mac = d646e2ec15afb14d +Result = F (2 - Key or Key2 changed) + +Count = 191 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +Msg = ab91d1aa072947d22f0dc322355a022fe7f0747f +Mac = 489068c07931ee9d +Result = F (3 - MAC changed) + +Count = 192 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 0a23972e036d62199ec327b25a3cf4e14c29279c6449d3b8 +Msg = 2df3e80fb6ddc1fcc7615330b24fbaa4981441c8 +Mac = 7842f16a0cc7bd6d +Result = F (1 - Message changed) + +Count = 193 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = becfa1c96686b04153fae144c187f034dac3ee6ed70d867c +Msg = a3a114679ce30c8472149da9bf3a42b1ffb07e66 +Mac = 74fe19b5183ed3a1 +Result = P + +Count = 194 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 866b43c8fe3769ec0aeefd4dd02210488a354d67e82a81d7 +Msg = d9bd6ac153cb0bc4e19e59c45cfe0d6f4c9d20a3 +Mac = a3a2ef83eba2a6f3 +Result = F (4 - Key or Key1 changed) + +Count = 195 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 7e00aa080c127cbabfdfa5d9d9728c7b25358aecd26f5850 +Msg = ce1a38cd75b9e955483ab53fe59649d087ecd1d6 +Mac = 8375c666d09bf259 +Result = F (3 - MAC changed) + +Count = 196 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 4bbf4c9cb6758329b2d5a53c4fbfe2d3df4fb50e57b3699b +Msg = 6429ea2cc8fdaf58100347d21da64375b3ab2058 +Mac = 77e417a60bca9a9d +Result = P + +Count = 197 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 274b394da9402d3eafdf733994ec58ab22d71829a9839957 +Msg = 2b3d7949805afd73234cd327a62951b32c51df2f +Mac = 8f9ce09fee15516d +Result = F (1 - Message changed) + +Count = 198 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = d4140d988448d557454c3434fd77f8597e6420566845e316 +Msg = b53017500c100dea0511845597214484fc5f7f34 +Mac = b9e85ce9178b81c7 +Result = F (2 - Key or Key2 changed) + +Count = 199 +Klen = 24 +Mlen = 20 +Tlen = 8 +Key = 43d0d326c511e3bcf4f52660fc3c706a6a95c0ab550615f6 +Msg = 7c880698ef372304a663f0f02944500393585d42 +Mac = 843f71e93b22f1e4 +Result = F (4 - Key or Key1 changed) + +Count = 200 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 273cc5013785baeb5abc79c8bde73af71085d7018e7be92a +Msg = 086e6e3a21787acf7293446516b5f54da95a2988 +Mac = 658a112d7a9e7a08c024 +Result = F (1 - Message changed) + +Count = 201 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 492bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bc +Msg = f7b577f1396b23c27eb637e53d3d92460270b001 +Mac = f2dffabed6871cca2e41 +Result = F (2 - Key or Key2 changed) + +Count = 202 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 8e7d8a44244daa7df2b340993e32dac50e05d7b2e103be98 +Msg = 2c3c3582e026a3f29ffd21a92a8e1ee70f3a4147 +Mac = 1bb40d091dde1903ac0a +Result = F (3 - MAC changed) + +Count = 203 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = d2069266b0f180cb319e30ded7535bbe52d24be151de4bb5 +Msg = 392d567f0b8045359dedd1591517ded0171fdcda +Mac = c1ca2813ad38fd7f0f58 +Result = P + +Count = 204 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = f35c46bca9236830ff4bb057cd5764f02720ccb03b253937 +Msg = d4586dbdd5655cf659891f5b6015da524548dbbe +Mac = 4b6dcc78f6e0e9b7e35a +Result = F (4 - Key or Key1 changed) + +Count = 205 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 509f1e38591e03a30a7409bc7e18595848253308c15edf40 +Msg = fd2109cac9f42fbb093a8675e5cd962c4c31df2f +Mac = 35387ef3967eed5b579b +Result = F (2 - Key or Key2 changed) + +Count = 206 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 0e9cf0ec43ca3fb7fb9a2b1999ae635d5041bf42f1b0bea1 +Msg = 65960c7fd43891ebdc7bf862b28d4822a8488270 +Mac = 93c33247ca546a8c3fba +Result = P + +Count = 207 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 51597a4c68cd228371e86c179fe04492642ad9b888405067 +Msg = cd8799124d94064f47d7eec59aff543b81ac66f4 +Mac = 0eed36a27b40560b89db +Result = F (4 - Key or Key1 changed) + +Count = 208 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = f9f049328f5db22c41a501088e5759ef4d04db0c4b4f6d3f +Msg = 7bdc26b5b4df58af539d91eb2ea10263a3e58b07 +Mac = 68c45551f1367c989a9d +Result = F (3 - MAC changed) + +Count = 209 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 5343dacb05a29b3119d6f19bdfbcd6674950e710fc70180a +Msg = 057c2d386fb1693b845bef585e76e0fc4971ffb3 +Mac = 372a801d1cd33d1059ba +Result = F (1 - Message changed) + +Count = 210 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 5987fcfe8a1ee76afaef54cb22d8b2a20b116f72bfc7117f +Msg = 8abbdf380c668c6ff34a4f128567bfaf256570db +Mac = 5a8089b3d9f6c72fc858 +Result = F (4 - Key or Key1 changed) + +Count = 211 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 301e0712ce74a1ad02079aeb0ce35edacc33f9a5d907cf70 +Msg = b2d894833daef4070b764361685fc94a780a7292 +Mac = 57a225eca09fb227f79e +Result = F (2 - Key or Key2 changed) + +Count = 212 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 144840494d15b2b31ad63ee05bf579a5e9fb98f534a6309c +Msg = 71bf573cf63b0022d8143780fc2d9c7dbd0505ac +Mac = d1b2baf05cdd5fecd1cb +Result = P + +Count = 213 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = b4bc602dc860108aaff5b3befb948a561ac495a22af9085b +Msg = 3fa85ca50cc4c4817e951b5a95ac006973324c2f +Mac = daa1246b82d2e14e3056 +Result = F (3 - MAC changed) + +Count = 214 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = ff48804c82414ff67f9b917a4d5d062d439454aad8eb4b0f +Msg = 6def37d9b73fed0390f260491f582d2215369811 +Mac = d7712f7d5f0da5dec6b6 +Result = F (1 - Message changed) + +Count = 215 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 0273e421ee670be6322675f26f9014c040a76f0c869698f0 +Msg = d9de46934cb56e58899a31fd14ca64509131dc27 +Mac = b3e79909c16c561eb7ca +Result = F (4 - Key or Key1 changed) + +Count = 216 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 27eb9812d3f7816fb6a1cfe474496e80750b1ed3959ec7f5 +Msg = 776ba7990086731ef7504947be74b3c455bfde5f +Mac = fc0f2dcf4e6fa041830d +Result = F (3 - MAC changed) + +Count = 217 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = c56f710e39deed799ffde6d10e8aebfa2bab5e5e073d78e2 +Msg = f6fe0f16403182d012f8b6e02539c386075b4585 +Mac = 6bcc4c1b06099220e9c0 +Result = F (2 - Key or Key2 changed) + +Count = 218 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 0236ce1fd3ef645a64b4ee7048dd35942e6a09e8099884a8 +Msg = dbf06366f766e2811ecd5d4384d6d08336adc37e +Mac = 1de717c402baf964e817 +Result = P + +Count = 219 +Klen = 24 +Mlen = 20 +Tlen = 10 +Key = 5cf781067bc1ef948e929b7287279c71cae5143631ca57d6 +Msg = a7f3fb7ed1342862247fb4b1993788837cc87041 +Mac = ee867d4c0f910e9d9288 +Result = F (1 - Message changed) + +Count = 220 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 3e19b6f3f3fa3c2551466c9e09f0391350682495426fbb08 +Msg = c7496322ede893ae368884a91f80c3bac3505c0d +Mac = 55b25da032db8f3b4293a4865df77e +Result = F (2 - Key or Key2 changed) + +Count = 221 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 5717ed57ca0b6921f04dcacad34e0f6210c36673dc9f4d92 +Msg = 5e3ed45f07a6b3c225ba73d04d867f9c5b4aa703 +Mac = 1b642dcc4fa08cbd36d109d55a8501 +Result = P + +Count = 222 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 8eca0fb8033e63e24a54a3e63bcf8e4ec331b04ddedfeeff +Msg = e3807f6d8c6471ffe188df67d952a7d67021bf41 +Mac = 9a37eda1e3331bf86d208b2c0338c9 +Result = F (4 - Key or Key1 changed) + +Count = 223 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 633f44dad6995a6af0302692142a47430491ae7b54f8b00c +Msg = 3caa9b8b24097d29bd24b913692acf96cc78b998 +Mac = a6665b3b158f37f587dfa0bde7f300 +Result = F (3 - MAC changed) + +Count = 224 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 14ef8096666ddf28e0ac5f3458b52f3e0c601deae57fffc9 +Msg = 11d5cef384474f33c2d313e6e1050d8c7ae5b019 +Mac = 2643bb3e1c01f406d90104c4437189 +Result = F (1 - Message changed) + +Count = 225 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 0c2e1951eeba1a9b6592202b1b8547f43fd755fbd844a874 +Msg = 9ad62bff38e28f75302b6527c1c107543f798817 +Mac = f42ff7aa728c2d815ac7c701b59627 +Result = F (3 - MAC changed) + +Count = 226 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 1ee2df7aa80e3a131e2aad9c17bcbf546d8b25e5a849db31 +Msg = c4e8594cd09be010b6934157e0557686310e8dbe +Mac = 34496d184bbdc0c9a57916ff64dc3c +Result = F (1 - Message changed) + +Count = 227 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 75650ce366757618af20205b69af7e5d4e82c398c00101e2 +Msg = 42a71eb81ad1c97ac53b88831b2d15f3c57e7cf8 +Mac = 4c03394a98bb43e6197074abe63070 +Result = P + +Count = 228 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 386c659bc45d0a88acd54ef7eeaa3e140e1cafb1b01474a0 +Msg = f4fc5acff75d404849675b813cf7adcaeb8f3d56 +Mac = 5cfb2fc8869304428fc012a14b616e +Result = F (4 - Key or Key1 changed) + +Count = 229 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = ac192759625f4e42d1d1fa73dc0f62199142155615478f88 +Msg = d33f716df06e9047f8d718ab1faa06ec7b773bb7 +Mac = bbf5b7207faa5b004216fa5caf3f93 +Result = F (2 - Key or Key2 changed) + +Count = 230 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = efb497fb9b85d472e7c9d061aff501f7b1e3a311a86cfc69 +Msg = 1fd425560816aa21d6572150d1161cfb3bd61e6b +Mac = 2b7e14864d29437647cc1b27a8a0ad +Result = F (2 - Key or Key2 changed) + +Count = 231 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 344fbbeaf82ede8a401df7cc121ed3da43be9bcadeeb5614 +Msg = 93febc9e16003cc8d6490ba5a6e64dd673a0f887 +Mac = d34ef878392bc226f7ce1519f3bc23 +Result = F (1 - Message changed) + +Count = 232 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 4b6c6b6be3c04985bff49719c4e11be97d7757801dafadc3 +Msg = 754336f8cf27f4bcc7af5207ff02a662232d9a62 +Mac = 5389c533cf43ca0332574802c2ace3 +Result = F (4 - Key or Key1 changed) + +Count = 233 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = fe5ddb0645387cc6535e5b7991e6428c4157a76bb41084fe +Msg = 216d9eb896edc693520f99ac91f34cb54e76d719 +Mac = b43388ba7859f803655d914b60ce90 +Result = P + +Count = 234 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = ed14373671cd8041e00874b5d098ea225eaf9c68bb51cecb +Msg = 0569c6be9ddcfbb82618fdcfcab3dd60c20c49f5 +Mac = c2c11297111a92a484868179c5931d +Result = F (3 - MAC changed) + +Count = 235 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = f2faab6735779e9ac49716e7fcd3faac939366a7249f4f0a +Msg = e7292269b07683acf5bea0b300782749074e2313 +Mac = e10f324c19d79ed83256f15e302699 +Result = F (3 - MAC changed) + +Count = 236 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 2bddd90daa1251a42a0e2fd2858568887f85e6d96d57daff +Msg = 0f8b828c0e59effbdecc30abb6cae0d9af9c7636 +Mac = 1aab0530749ac4c6432157730ee3ee +Result = F (4 - Key or Key1 changed) + +Count = 237 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 586233e492b76ade095e8f5ffc6df4bf6caad2a675953b2b +Msg = 92af89c950d6221473a358dd0f280277bde7ab0c +Mac = 2a79121e68ea6b841e175ab5066388 +Result = F (1 - Message changed) + +Count = 238 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 5aea45c0995e950f333e29f4db82ea4c4c080ff82fe32bd6 +Msg = d9ff1c84bdb03114ebd5f471247a579311f4672b +Mac = dc58e7582cb555ea784036a8ba4b8b +Result = P + +Count = 239 +Klen = 24 +Mlen = 20 +Tlen = 15 +Key = 900c8283c7d50d6da79cc07d3dc7b76c2ef76100fa3ae2df +Msg = 3f8c6d21ec05bc439bf82774f1812bd2dfe0d3c4 +Mac = ec1fa18916f991d7276428b9c93c70 +Result = F (2 - Key or Key2 changed) + +Count = 240 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = abbb803150cd7fdb9f3d571bc749debe72c825e45568aa5e +Msg = bb5fd7f4fb020d38c13df3003a9bb852a86948f406c51624eaf81989b006 +Mac = 799d598f32ebd9cc +Result = F (4 - Key or Key1 changed) + +Count = 241 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 2fa619eed51bccdd2ce63580ebf85467ac9136f79256bf1b +Msg = f92d1a6731f3bdd811fde1ed936de907ebbc4179670857859aafe788b91c +Mac = 6477feb7dd4c818a +Result = F (3 - MAC changed) + +Count = 242 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = d0115f369d0f74073a46e3b9625660847dd7ac7571e40814 +Msg = 97da5d1f669dc60b6c6fe4369e01f3fbb9af30b483b23d885497c684d6ef +Mac = 3d7f0acc627b785b +Result = P + +Count = 243 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 045c4b86eed865cd989f035afe8c257c400c11b1f72548c6 +Msg = 5a6233e492b76ade095e8f5ffc6df4bf6caad2a675953b2bdfa8513df1dd +Mac = b5a44479b0be31ce +Result = F (1 - Message changed) + +Count = 244 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 4a83bf338fc0125ee1966df46d46a0d0b41e51569b3fa957 +Msg = 794a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b4257457 +Mac = b45939cc01918eab +Result = F (2 - Key or Key2 changed) + +Count = 245 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = d9ccd93317441e9d6ccc358f31e7e2ccef8c921b23d74299 +Msg = 48754401bb69bed2cce8689e47210435878c7ce184d911f60d26b4aa5174 +Mac = e0d1b6a530944550 +Result = P + +Count = 246 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 1e50fae752ac3a6e2b1755475e84441947e9f4b1d29546f4 +Msg = 34245df514f6c273d252271a980929e50a7cb0e77b05c7d46092abc30493 +Mac = a0fd99f1405b027e +Result = F (1 - Message changed) + +Count = 247 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 4f98838899bb47fd3b0fd5efcf55403996567a0fbe1abdda +Msg = 0c8cc752ae8d487c621be129326513a5ccb4141e324d21aab399148c1a83 +Mac = 1aef1b7bc7856c6e +Result = F (2 - Key or Key2 changed) + +Count = 248 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = c98a22a667aafab0c94047e03837d51b11490693d5c57ea2 +Msg = e4fb1612e50607457dee8087ec41e57fcd7fc550497eaf1c8b0d47c773d8 +Mac = 2c467fe37fee5342 +Result = F (4 - Key or Key1 changed) + +Count = 249 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = bc6d4c46476ac1ea902be391b8a3f04e102aecead167f0e4 +Msg = 93b3314baf20e28a39e89592012c35adfaa3ee6d3d8e494051ee9944aaf4 +Mac = 7f10757d2d36a55d +Result = F (3 - MAC changed) + +Count = 250 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 5783548205826853ae740d35d6d69ab524c38fdfc5c51eb1 +Msg = 11c90809f9c53d2f77b56af0a42287ac6920e3d2921cceb824d496caf1a7 +Mac = 07630c2fc52a24b2 +Result = F (2 - Key or Key2 changed) + +Count = 251 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 9cac76976750b7937b3bbc6986b4c726f0d0a63310db85d7 +Msg = 5de2265292780222349ac793eaa17c5a22902344063f497aabb9dc038ce2 +Mac = fd092bab159861c0 +Result = F (3 - MAC changed) + +Count = 252 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 616de0b0f868eec923bf9edebbbaa51d3faaa3f86b2a5687 +Msg = 38013d62558647bc21d293830aa3ba80ff3fb84a8e0938754c5213077771 +Mac = b4e782780989dc11 +Result = F (1 - Message changed) + +Count = 253 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 5df77b26f3d34eba49d287addf0a38d20514e2b7e6059935 +Msg = 1930a8b428334df9fa1ac16890f3a6a93fcf9d6855d00b06ff831d8f6a70 +Mac = a8ad975046cd7571 +Result = P + +Count = 254 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = c56f710e39deed799ffde6d10e8aebfa2bab5e5e073d78e2 +Msg = f6fe0f16403182d012f8b6e02539c386075b4585be5b18d6ae1c5f9ebdff +Mac = d0df47dda012655d +Result = F (4 - Key or Key1 changed) + +Count = 255 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = fef8982f7342f1b953658453cd5ea413700eff00f1ee7d6f +Msg = 269b6c1c95bc079398bb31e285a887c1832202d6ec257a2cf62468e29358 +Mac = d2c90040bf66b2a6 +Result = F (4 - Key or Key1 changed) + +Count = 256 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = a34dfa24847c365291ce1b54bcf8d9a75d861e5133cc3a74 +Msg = 105d2b82676bf67ca9575ffd31d7d114e709826fccb6a5c3d3d7e26ff258 +Mac = 5e60278f98b3135c +Result = F (1 - Message changed) + +Count = 257 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 520fe80cc4a3a5ad9c31f7010504923b7a7fd88292a64f98 +Msg = 2e1e0712ce74a1ad02079aeb0ce35edacc33f9a5d907cf70d0548d84ec3c +Mac = daf839ef84f1c81d +Result = F (2 - Key or Key2 changed) + +Count = 258 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = da4775b8f7d654bc4cf2eb75ecf4831411bbc9a960ea2df0 +Msg = bfaccce3a9e66f45e454090ffedc348306dc2807951ce0bf100178612703 +Mac = 3e2eb7f029e687be +Result = F (3 - MAC changed) + +Count = 259 +Klen = 24 +Mlen = 30 +Tlen = 8 +Key = 15e3b3c5794fececd703ac58ccb22a78e15bbd55c579416b +Msg = c6c3457ffcb6e66c085ecb69492deaa704e25aeeabb7b7795fdcc807b325 +Mac = afd75cdc02222e65 +Result = P + +Count = 260 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = e0f2cdfb64bda8f02ab90620fc5a1943c4b536a99f3f8820 +Msg = fd0365ff6061e5f55c0e382f5861aad99c135f9511f33ace4bdcfe48c6e4 +Mac = a1046d4b29fc50ed94a4 +Result = F (1 - Message changed) + +Count = 261 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = c7aafe7d3b419fa4ea06143897054846ac4b25e4744b62ba +Msg = f1baf3be69f69611fcd47256e43830a1b3fd8bd3952eb26ed679eda7a4e0 +Mac = dbc419e1ddd5cfdc63a7 +Result = F (3 - MAC changed) + +Count = 262 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 58c219f2bc8ef2ed7a82cf70e4af4747e36a30809a5a6222 +Msg = 622642aa69b3efe14abe0a1d2ba20f3f76efddf62e6cafe2845c4dfaa501 +Mac = 4e496c3d2d84d11923c2 +Result = F (2 - Key or Key2 changed) + +Count = 263 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = abccee975feb10f635d548a8502f7c8b6adbd2be74117257 +Msg = 4f37a460d180a12789779fc335326c983ad6b18295b47f1715b82b2dc704 +Mac = 41b234e0173770c469b9 +Result = F (4 - Key or Key1 changed) + +Count = 264 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 0218eb619dbbde2e846218339aee4383792856496eb3b85c +Msg = 28d3510a37d5f8481e7f22941c1fb1d6c70686fbad9747a23c9d5f18dfe2 +Mac = 3cede44c942387d91767 +Result = P + +Count = 265 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 88b2514f368d51db283039efcde1891652a77daf68feec43 +Msg = 067a3a0434e92cac02710221fbb6dfcb7ef0264e2994905491317c8c3697 +Mac = 128e652ce0a8f1a6194d +Result = F (1 - Message changed) + +Count = 266 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = f2a78c449621278e9e927fcd50742d042d98d5142380fd3d +Msg = df899dd6b99cc28d66604ca92431fa7f442a4927d03b392e707b548b8ebf +Mac = 2eca3c42b5e5d0f3b9e4 +Result = F (3 - MAC changed) + +Count = 267 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 01fbfbde7dfdd6f0a0c5244cf6c36eece4d6dedd8baa463b +Msg = 485ef613bdab5473763bb269a0d8c7a4bf4850bba072a96f8fc39a31cbd0 +Mac = 333eb331d6a0d46fa279 +Result = P + +Count = 268 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 6ce99c231d2ef0fd48c2375dca93f8bb0df97d4a44e835cf +Msg = 32d71e59634126ac6c6156a80a0dfa0175b29e9f40a3169680b1c15830fc +Mac = 3e90350e115c425ba466 +Result = F (2 - Key or Key2 changed) + +Count = 269 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = f7a93aab5707ca3d2362c5669198e0218493acc3cb7b02d3 +Msg = aeec40ca8964fd6a67d3dc871ebf1bfb72f52907f1d6ad441bf2cadcc6d8 +Mac = 7381d65aa138c86713b5 +Result = F (4 - Key or Key1 changed) + +Count = 270 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 84f39f5207afcfd677a7544579f2b888a1eabdee4e835924 +Msg = b8d21e9c70bf63f04be311d50f84aad7e1bd2b0e517434ab978d68d01c5d +Mac = 4ab61c537f8b15f824cd +Result = F (4 - Key or Key1 changed) + +Count = 271 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = d488bdda400932de56a9f105f0e74ee79c2ed869faaadc31 +Msg = e64949ed85de6359595f286e29014c26daa7759aee56e4194ee958774606 +Mac = 2752bc490802b9dd8686 +Result = F (1 - Message changed) + +Count = 272 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 76ddfb075fce4be8854185c6899a88d06e24854506b31237 +Msg = 9d86ae7d70e839078babf7fd60480a4351690867c6a8af837d9ad465220c +Mac = 2522efecaa1ba11c0260 +Result = F (2 - Key or Key2 changed) + +Count = 273 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 618041501dfcfdd2b60d71c04d635f6357ad8b0643af77aa +Msg = e5e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f5521e6ca7987 +Mac = d958753757a11eacc848 +Result = F (3 - MAC changed) + +Count = 274 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = dff6b9493de80447ee18ea7311fc9b8d74f77ac1ab21ce84 +Msg = d70aef3532bdc5293a3ebb11589ac1f801c9f93ea0d656e1d04068facf9f +Mac = 9a761e0e54767e414cf2 +Result = P + +Count = 275 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = d7780ba2dc5cc584472b64bc9f6246bedb27c70aca22c0a3 +Msg = 14691c1b47ff1547c1d2151913c2d1862d8f54782291ea202caa3d8ef07a +Mac = 78a2bf3a5fc87a14e090 +Result = P + +Count = 276 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 3bc5dba883e2e3b81df06760cc32f11009cf5a5503cbe864 +Msg = 9d043e368b41acb5eebb99197e15adbc3d19175a0bfcc97275e3e5efcfa5 +Mac = f457293acf683c873add +Result = F (3 - MAC changed) + +Count = 277 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 7b3fba25c5ef410ecec62276b105ecc01c325dc2530e8364 +Msg = fda4bede287c57eea4448af5e99d41c7d307d1f202af7f387f874342a29c +Mac = 0cfb78ede5f4c185c33b +Result = F (1 - Message changed) + +Count = 278 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 38efdbbc5645f65414b9cb81d2f9e4f190cf6e6e05eaedbe +Msg = 50422c5e6a0fb8231b3bb6e2f89607019be6ad92a4dae8e0fe3f9e486476 +Mac = 0c1acd8e8527e2663486 +Result = F (4 - Key or Key1 changed) + +Count = 279 +Klen = 24 +Mlen = 30 +Tlen = 10 +Key = 94ea5b0aa6c8b07e379122006042c920077bd61610df6b4b +Msg = 1d52f401f01058356d8c4c630f64c5322caa6063d6365ebf0040ec4ee12e +Mac = 2dec0d3bca617209b07a +Result = F (2 - Key or Key2 changed) + +Count = 280 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 5584994f80640233ac8eb4d2f873e8c997499095250b48b3 +Msg = 91febca4f1ae7e27501400c44ce8681ec90f5a5637c962db142c9284b1d1 +Mac = f0b3135c1748e823aed10c4694fc60 +Result = F (4 - Key or Key1 changed) + +Count = 281 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 57e99653fdcab10135a2ee3bf45c1be69e9ed57bd74dfbad +Msg = 51c88fd98a7d82043a1500fc3d8a66ba7ab7760467c7fd89cfeeb22dd257 +Mac = c588ee1d4f330e51872065c02cae61 +Result = F (1 - Message changed) + +Count = 282 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = f622d736124641bb7d53706bf2a69db2fc31461fb92818be +Msg = f09569906381138cc49e3fc2384c5d33c34abd3d617c487b52ec6ee7b510 +Mac = 610e1c1f9ab35059580061b8662a81 +Result = F (3 - MAC changed) + +Count = 283 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 9662baae49c26e5452f3304ceed3b78326d2020a99a63f69 +Msg = 1d93aca4e2e31f5ebb84fad580fe74f5b6d1d86ab30cd0c8031be4090be1 +Mac = 3c5a4eb51ec58ef3468bb00e7cae8c +Result = P + +Count = 284 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = f2100615431349aba5c4f5a7f358fe7be579f4cb9e8f33d2 +Msg = aaf26bff7ad4116969c15d9206de6c737b7dda87619e3575d9b6b2efd8b0 +Mac = 7396deeb4316fc6d84d3af119656f3 +Result = F (2 - Key or Key2 changed) + +Count = 285 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = a5993acbea8c55d7eb55d60596f83e1d9f2cf636d06240da +Msg = 0bc1fede6a6ed9e1deda82612fbaa6e60f0b2461fd5d131e6a7206f41a07 +Mac = 2f6b0a9f2a972d299bfa5892f8ea83 +Result = F (3 - MAC changed) + +Count = 286 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 775846f9dbf36415640276642cccf87e3dbdf6519c5b2db8 +Msg = 4fc989f327e1a1cc7b8af618ee6ae6d25f78e2b76b681455336945655f13 +Mac = 8b3cf3171912096763a2ebe5ea9e41 +Result = P + +Count = 287 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = b214b16bbac27ccc9773d3c8dd31275da4876c039740ca8d +Msg = 7786a3e30acffd6dde375bd859dd6be2c9221b979d0c66d1d5ed6e00b73f +Mac = 1a73acbf4e9250610b74c727b9c42c +Result = F (2 - Key or Key2 changed) + +Count = 288 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 032b4cfce8a1acd89de5f6f78794e2813bbcdb89959dafec +Msg = 3f0bf0141dd3ace0fabeace61811eac5ec801deb7ffe3b0514d43db90bf0 +Mac = c24066cbc00cb5c28e48141b627411 +Result = F (4 - Key or Key1 changed) + +Count = 289 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = a053255875ed4b5193bd9c5fa4172a1f660ecfd2a394c2a5 +Msg = 14666eb960c6b4f8b6ccc49f79a039b12c02e0972c300f1e9d0a38c0a474 +Mac = abce3abc224772a43c058016bf25bc +Result = F (1 - Message changed) + +Count = 290 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 0ee87b40abaa99f598fba22c3e677a85ca3ec95c3a51aca8 +Msg = 1bff19aacb9c7d0a44a15ce686a2469e3934d086365d36f449484498353d +Mac = 4d565c2e12901845e77ed8b02746ca +Result = F (2 - Key or Key2 changed) + +Count = 291 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 3384f8563cfd0fc8019bacc9b691c9ba4ae6dc8cf4c00629 +Msg = d31e959cf7842db351db407266ddae0b36e37f34270576724083e9989764 +Mac = 96d0dbf51d96b532321da593383964 +Result = P + +Count = 292 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 375904fb9fcafb7f19877b145b0284cef61ac7a3d88f537c +Msg = 441bd4db5e80c7db1b575a19b7bad021a719658a2c818566291d3cdd32fd +Mac = 3b8dac029f6658e44e5f5bb8f8ee40 +Result = F (3 - MAC changed) + +Count = 293 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 3c1ca347a7d3d8db8f704410c493d7a65718cb7bffec2dff +Msg = 555fd02fad4f44484133f9472c050f9da27390fa2a3e48cb0be0d7020171 +Mac = 32be39d874c15a0fffc7111f76bbc4 +Result = F (1 - Message changed) + +Count = 294 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 8bed296a3ac03fbfb71422b9211799150b9d766a8116bebd +Msg = 6df3de543cdb6d1adb6ca7df6b5a4510fc8379a4f2c87497ad1c2b9a69da +Mac = f24ff3218e7905d81c3e99c84bfd26 +Result = F (4 - Key or Key1 changed) + +Count = 295 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 9530bb291d38f6bed10318081dde8fd178f02eb0e8b7d022 +Msg = 5f48624302d1acf7750994d45f0999ecd89a3861cd0268d5a51e672124b1 +Mac = 0afed54c577e550eba7ac94a2d82d8 +Result = F (4 - Key or Key1 changed) + +Count = 296 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = f5400b86ace6e3da5f090befb96fc05d0409bf41fc77b4e0 +Msg = 1c79b055fded54af5ad2f3253f93a090ec003863d9458d3ff718c4c13937 +Mac = 59f94d4b13539a5f0a8672e4599bad +Result = F (2 - Key or Key2 changed) + +Count = 297 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = c033e4a512297caecdbead892b11a9f7007af9a74bcab89e +Msg = 3ce965d58856663d54269af4791ec57ef98227ea387d525769c23ab74674 +Mac = 0dc19e37a255dabb61957f7f89ab06 +Result = F (3 - MAC changed) + +Count = 298 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 2459f951d1255d093b72144b83b05ea3185d5123d1ca864d +Msg = 661c6ff41af91a6d828a4d5d507f8a9130abe91412070950c5fa4c75c8d7 +Mac = ac8e75b4465a52b3a7da3746f9875a +Result = F (1 - Message changed) + +Count = 299 +Klen = 24 +Mlen = 30 +Tlen = 15 +Key = 3b63415210361822e23cccf0faae88cd7642f44cec45fe37 +Msg = d7f78e950d2ab520a6f1e82ec6f206b2e8c71131c85234bd80500527f131 +Mac = 15e59760acd3dd74155d6d3739c189 +Result = P diff --git a/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt b/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt index 210355049c..eecf5834a7 100644 --- a/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt +++ b/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt @@ -1,2165 +1,2165 @@ -# CAVS 11.0 -# CMACVer information -# Algorithms tested:Alg = AES KeySize = 256 Mode = Verify -# Generated on Tue Mar 15 08:40:45 2011 - - -Count = 0 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 45b74171271e1fdc19f9beadda58010d843af69dc2f4ad003dd74b9b570d5a98 -Msg = 00 -Mac = dc0ee796 -Result = P - -Count = 1 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 2cb4239fffd13762fb5391f5a4760d12d96ea12666a793b4d651e9f4891c22c1 -Msg = 00 -Mac = 2e19d6cf -Result = F (2 - Key or Key2 changed) - -Count = 2 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = d88586da8b605a6fd5a45d316b89fea15e27ff4d92238397718e68b8e00ad605 -Msg = 00 -Mac = 8ad78885 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 3 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 136ffda3359fee8c81e6dac131256f4bffc0d3c3e74f8aaf2f979a0fa5b8ed32 -Msg = 00 -Mac = e430d0da -Result = F (3 - MAC changed) - -Count = 4 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = e1a7867476bee9928b7237ab7a3d502fbe3d2d45b6e4c41aa9f12b79099f019d -Msg = 00 -Mac = b6f00f90 -Result = F (4 - Key or Key1 changed) - -Count = 5 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 5b4d945d55dea22e37821ec396476a4bfb617d2f392ad93afe67bcfda9cd9b72 -Msg = 00 -Mac = 5076ef43 -Result = P - -Count = 6 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 23df62a79fd5866425427d0ccabf05b16590e8452ee22e028b51910926ad314a -Msg = 00 -Mac = 7bd29398 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 7 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = ce9da814595f76a7e52a1222c7c9a6579b3cc2e393ba51580ff6cc9b6ea2ad8a -Msg = 00 -Mac = ce872fd7 -Result = F (3 - MAC changed) - -Count = 8 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 507c4f32246d637fe08e454c638b014438109e1fca31f724d40ac6ec1aa20268 -Msg = 00 -Mac = 282a7ec2 -Result = F (2 - Key or Key2 changed) - -Count = 9 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 537dfe9fc000468dde29800549b1cfaae67ad89d22c8264d7eadcd914ac54ef4 -Msg = 00 -Mac = 7936b7d5 -Result = F (4 - Key or Key1 changed) - -Count = 10 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 1f57959cecbd377374477e33b34979814f260f77867392ed645998f73a3b06ae -Msg = 00 -Mac = b4b63264 -Result = F (3 - MAC changed) - -Count = 11 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 3d272b4a1a1031369aff514e2df98d580f972b5abeacc05cb1288e6e473c0fed -Msg = 00 -Mac = 18b35edb -Result = P - -Count = 12 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 8774d1acf96362215a3d1e51e1a52a980685dec4f3afd2d438c03c00c04a79f9 -Msg = 00 -Mac = 80eb7a84 -Result = F (4 - Key or Key1 changed) - -Count = 13 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = f37155beb5eed8899d9ed4b5fa21b60b40af289f090a355d5bb1aee52957cd99 -Msg = 00 -Mac = 6827f73d -Result = F (1 - MAC changed - for 0-len msg) - -Count = 14 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = fcb52c44379ae8083bdc7b827383df93cb1a7ecc21574730f9fe003b7302de23 -Msg = 00 -Mac = ccad16d9 -Result = F (2 - Key or Key2 changed) - -Count = 15 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 83e231ecf8913ebce00e62b8f00c1abbaad710142fdb912c54664169f7af0e51 -Msg = 00 -Mac = 8e393f56 -Result = P - -Count = 16 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 7d35e77450e2adf8805d5ad67de5835b2c5dccafe8440865c7e7a1501ed53a98 -Msg = 00 -Mac = c6899710 -Result = F (3 - MAC changed) - -Count = 17 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = 87143071241bb65261fe7afcc102416e59b9e46ee0c9007308f0eec10e45f6d6 -Msg = 00 -Mac = a1a4449e -Result = F (2 - Key or Key2 changed) - -Count = 18 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = d30d2d1670553c71ff0264ab861574dd03a103d954226d1b540f18fc47b3fc29 -Msg = 00 -Mac = 217ac763 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 19 -Klen = 32 -Mlen = 0 -Tlen = 4 -Key = d6983226b2c3a431abcceb77c8ec6b9bae80199115b28c5d7c56561e1b12944c -Msg = 00 -Mac = 26c717ce -Result = F (4 - Key or Key1 changed) - -Count = 20 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 0cf53b4aae3e0a209e58385dd32d9cc6163265241332c332af4de4b99b4022fa -Msg = 00 -Mac = 1bfd19f6e1070186 -Result = F (4 - Key or Key1 changed) - -Count = 21 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 5f988f38410d26d293ef32d74eaa81acca82545e767ab59dcc750a09849cebad -Msg = 00 -Mac = 7e52911c0d7987a2 -Result = P - -Count = 22 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = d8fd6e1dfcca8f656705aed7e356a576baf8907c8d10d54c833d62a8a6703624 -Msg = 00 -Mac = 31b478b4b4adaae0 -Result = F (2 - Key or Key2 changed) - -Count = 23 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 49fd56dec210e903f6c703332637f9c267eab9333e2701a16c74ce5e0b5a16d9 -Msg = 00 -Mac = c8be2b36c93684f3 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 24 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = fa282e1f3276a3e0c769f2ba25ce830591e860300cc03ab57abdb14c0374d060 -Msg = 00 -Mac = 27b8111c3d9f14f1 -Result = F (3 - MAC changed) - -Count = 25 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 1c6942e914218135496e0d7910abe67b9f7f29bb09029bb37021865d7543c4f6 -Msg = 00 -Mac = 466b7077bec98b7b -Result = P - -Count = 26 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 08f199a8d7e3ea821dd3106e8947cd2e9d485342b25a64713db2b8a650a49ffd -Msg = 00 -Mac = 796deae0d06b1bf4 -Result = F (3 - MAC changed) - -Count = 27 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = febacddf3448c7464297ae53166793e2ed962de0d0947c5e5e17abe3cc103b07 -Msg = 00 -Mac = 5e2d21aa3351a2a0 -Result = F (2 - Key or Key2 changed) - -Count = 28 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 59b9fb83b6a85f017bde6c0ff3ced955b9f343cc71b680c6b591302f52759412 -Msg = 00 -Mac = 3e5428eca10808b6 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 29 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = f07e6655424125462a96390e02bfee9d89cb271bd9bbf22a9de45f6b7e949343 -Msg = 00 -Mac = eed5aed01096226b -Result = F (4 - Key or Key1 changed) - -Count = 30 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = a04f84bd79406c138d02698f003276d0449120bef4578d78fecabe8e070e1171 -Msg = 00 -Mac = 18553226e5f9788a -Result = F (4 - Key or Key1 changed) - -Count = 31 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 1673a52494e9af02472c1777232aa3813c7c162593eca7112f34b3807009af5e -Msg = 00 -Mac = c5907fff58c68ee7 -Result = P - -Count = 32 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 1e4ffbed2d5a7bcda5e24a66048660629d57567f83307087a846db8246ff332a -Msg = 00 -Mac = 29599bc212927246 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 33 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 8b80c24ab4a3c24ced82ca8c69924553a37a139bfa2541c59e15188ab0fa5a34 -Msg = 00 -Mac = 299746d93b0b4881 -Result = F (3 - MAC changed) - -Count = 34 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = a00ebf59768f6437b48a91923f5effcf31c745b980f79f2edde9ed18dcf2ffa0 -Msg = 00 -Mac = 61950ed83db6bf74 -Result = F (2 - Key or Key2 changed) - -Count = 35 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 319d3f58fd7257901ff364fa68b86b1ba27c11962b2c5be8e33eb95548444322 -Msg = 00 -Mac = 26793e8f8d5eb7c2 -Result = F (1 - MAC changed - for 0-len msg) - -Count = 36 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 015a9d1f2df2c31f14cfbdc0bd68725fe8113a024f2a43312d963207fd6f0d88 -Msg = 00 -Mac = b19fc2680b8b82b7 -Result = F (3 - MAC changed) - -Count = 37 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 003cff344c4e1932ac628440d819eaaafcc3ebe7c525cb7abb7a6716d2b76e05 -Msg = 00 -Mac = 48a98dbf16257142 -Result = F (4 - Key or Key1 changed) - -Count = 38 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = 1a581f36e1816d346f7bcc6df78316aa353111e447fee6f0bd05d562f30626ab -Msg = 00 -Mac = 587155c18ebbf8b8 -Result = P - -Count = 39 -Klen = 32 -Mlen = 0 -Tlen = 8 -Key = ebab54c4a22a16f7d9546bbf682b995a6ce944e949f1920eee058db95ab9c93f -Msg = 00 -Mac = 067927f063adfaac -Result = F (2 - Key or Key2 changed) - -Count = 40 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 58405ef8fb69e88221edc10a92c01cc44255aa7083096adb79bec3a8cec6d050 -Msg = b4aaf9ad1bde60a8d7e7cb16c1cf6b713df17d1507b028973068a95963a5ad5b -Mac = 42ffe65f -Result = P - -Count = 41 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = ca0f404e3389e9527135f53eb58bca7726266b8086d33fb512e8143daad7633a -Msg = 8f2a6b2185f73372ccaeaa7f93d30d1ca80a451ee0e46ccbbaf98c8f3f37aaf1 -Mac = f2b311b4 -Result = F (4 - Key or Key1 changed) - -Count = 42 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 67b896b88f07962e08471634ab7e522144d716a2969bde55a05c3c931f747a8d -Msg = 0218eb619dbbde2e846218339aee4383792856496eb3b85cc43fa81446fedc5d -Mac = 69db1949 -Result = F (3 - MAC changed) - -Count = 43 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 422994df8766f7a6a7ebfa2ca57ed6189d9e9e8455c8715c14f3f407b75dff4a -Msg = 12f0c45d06a138a964fb11b2d450620a2977bcd2952afe371cad6e3d48b009bc -Mac = fc5f1ccc -Result = F (1 - Message changed) - -Count = 44 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 3291be3aecd2e06cd2ee61a14d723450043d450567cbb0bf88ba32972d86dca3 -Msg = 343d5a4ad39acf81adcf24e9807618932abcb3bc076734f179174c77c8cb89e9 -Mac = 3593d615 -Result = F (2 - Key or Key2 changed) - -Count = 45 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = a1885ce431cedbb60f7b3d96a06cbc60a964df156ea4b4191abc5a9f60a0c361 -Msg = eedd0d767a25b24ee25fe747718256af51d7b4bfe900adc069381a71a2dc7aad -Mac = c558f768 -Result = F (4 - Key or Key1 changed) - -Count = 46 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 039188ec58fa55acde53c337fcfd0013f0c6efa55c60ce470112159bcaada11e -Msg = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354 -Mac = 20d3639b -Result = P - -Count = 47 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = f7d946f66e1cc4e5a79dfb5559cbea5a128545eac38e17ee7f3bac9a806faefa -Msg = f250c49f9882f10db247adfdb2112c2589e1011f77c48e0f219dbf85e326f8a5 -Mac = 90b4bfcb -Result = F (1 - Message changed) - -Count = 48 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = a61f586ddbbe0219187f8f446d4b172f5e9bf855d1d5d6592ad8e03eb4d555d6 -Msg = 71c8eb0079559a306e236c49b7ce1b6cfe26c7888733eb7ec07690831a72c0c5 -Mac = 78ce0135 -Result = F (3 - MAC changed) - -Count = 49 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 7774802fd82fe96c05431acd40b49b1160d403c0db09b10f23d0bd0435022edc -Msg = e75b6ca1b87e775b33536979422a1cf743f58c71b1599adb00050972c843cdf2 -Mac = d885703e -Result = F (2 - Key or Key2 changed) - -Count = 50 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = c4261ebb87a76aaa82a00392ee2e2318f0b52d5f2724e374847ad9ea5c8929c1 -Msg = a41bb1f256228302cd0548ae2148ff42774d18c2d6d3e38b36bc4938da13bac3 -Mac = 857d8909 -Result = F (2 - Key or Key2 changed) - -Count = 51 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 6219c19233c1b91d7785fde3b65df3bd2e1d74331ba62e4d365947a77cd243c4 -Msg = 68f17b9f57734784144112c79bf360ee324d37f9a7718137d954b15e796fa9db -Mac = 0e85de57 -Result = F (3 - MAC changed) - -Count = 52 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 7e8cae1374d3a21bf2dd3786754668f17aa63dd5e3654cff9dd18041806d1968 -Msg = 2d335be62ecfed45183f5a04014c1a52afb7b918b9cc1f2be93b15c6e5240537 -Mac = b56ee72c -Result = P - -Count = 53 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = c2425ed20cd28fda67a2bcc0ab342a49d79d6b4eb196266cb0d116fc18895545 -Msg = b5f24c00cd15e377f444ae55e02b335379e7ae14e7c9bd05f0575d8981941553 -Mac = 2e44c573 -Result = F (4 - Key or Key1 changed) - -Count = 54 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 1f7871680bfa59a8a178604dc513b51a3d4c682cc4c421de594512e9dd062ad0 -Msg = fcb43224bf8989e1809d90481ba043328febaf4b6c1c05d18800ed98f4b71c52 -Mac = bee03b92 -Result = F (1 - Message changed) - -Count = 55 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = d8a27558d070214d3f765cf969b2b8f09c0b14ebc492cb2539072b04db9f29fc -Msg = fc69a1f0d0ba8eca9e7c0570cec9c76b511c74b2d8b65928444189675eb42fbc -Mac = fab3b2f6 -Result = F (3 - MAC changed) - -Count = 56 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = 72354b455230b72a6dbfa5cf6c3726d7f8e65ca773f9d469e99d165743657b36 -Msg = aac60835c309d837aacc635931af95702a4784c214283ebbfb43c4e29973560b -Mac = 69519d9e -Result = F (2 - Key or Key2 changed) - -Count = 57 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = ca92b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20 -Msg = a96c4d5c89a364263c97a453308b9360bc0ed868602b9ff54fe13f162ad31ab2 -Mac = c59a1a39 -Result = F (4 - Key or Key1 changed) - -Count = 58 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = aa56f98e03f559eea02ad958e125f2312ff97bc3310079ce437b383f247a9b3f -Msg = 01bf2aa8dc66ca44d16d4567f1adddd4461f78706ff15cf68ad937eb57aa62d5 -Mac = 31171cfc -Result = P - -Count = 59 -Klen = 32 -Mlen = 32 -Tlen = 4 -Key = a0e317b790870e6703e6077dfb8ea327c12e29a17107284cb89d5effddb2d9a1 -Msg = eb4ea6b72dfc6657e835bf82054796183330c02a8db3c5b179abe37fd0a05675 -Mac = 05d54199 -Result = F (1 - Message changed) - -Count = 60 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = e3de27949ff64066131c81bfee172b308f9bb0b31710678ec394837b79434605 -Msg = e41557341e8dae33568524f3f64b23426044c9db3526463ad16786af14f611b2 -Mac = 975ad1d2fcff6a85 -Result = F (1 - Message changed) - -Count = 61 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 492dacdcb4a35fc438a6eaa35e26d2f683a1e85e92df28f213dfe1da6511161a -Msg = 0515ad7b8576258645d37b7ac771745620e2e9e009cd778f34ed77a7dc5c30a6 -Mac = 9f43dba2aad2f539 -Result = F (3 - MAC changed) - -Count = 62 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = d71c50d55850d432cd8c8ff4ea427b3f19cbe14c785a7704202fcbcead0de5a5 -Msg = 7ffbc4a09583029cbb0acb6b13f08a189033da22c2ecf921f01d79ac68a9397b -Mac = 5d00ffc5f8cf1ddd -Result = P - -Count = 63 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 557eb2e709d58915a8bada6433f2e5660247e0cb1588ea84a9d24028090eb396 -Msg = 003132645e3026f6a2b9d0644c16e5e4d1bf8b53a51f0e1b999bd45a67d19341 -Mac = 6f3d9f50d09476ef -Result = F (2 - Key or Key2 changed) - -Count = 64 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 351d779277148ab4474843cc798942cacbe863eb1c1c9338dc25e251c12fda68 -Msg = 34bcdd3d0469c01d0d95a85ca705d887385bfde20596a90b47d902db826dbc8d -Mac = 79ded259f93456bc -Result = F (4 - Key or Key1 changed) - -Count = 65 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = e1c17ce3d3c61468a7652a95128bc0f6c33d9ccc46e7490327f15f645a94040c -Msg = 97829c60ca9a71c23eaf1c4b4fbd72043037ef0cd356b68e0db0d4f0f50cc54d -Mac = a93f0d16499f63ec -Result = F (1 - Message changed) - -Count = 66 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = a9a86a4407b7ecebc89434baa65ef173e88bd2dad9899b717ca578867c2d916f -Msg = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02 -Mac = fe84ce3defe00f67 -Result = F (4 - Key or Key1 changed) - -Count = 67 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = ed14373671cd8041e00874b5d098ea225eaf9c68bb51cecbe8083149bdda062a -Msg = 38106cdc72b1ddd0fe11f23819096dd7479e95ee9730940c28f51e28eca653ed -Mac = 470404ed731640a7 -Result = P - -Count = 68 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354 -Msg = 2eced43c084a86f89f61e7237425137c167aac29e4cac4071afafd3f0c9dee1a -Mac = f67d432e5b6fc5e4 -Result = F (3 - MAC changed) - -Count = 69 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = f250c49f9882f10db247adfdb2112c2589e1011f77c48e0f219dbf85e326f8a5 -Msg = ce61d6d8de1b299c9b063d1e1cb1faf7a616faa7c6673d7f9c0a1ebe7ae285fa -Mac = e1d950593abc14e4 -Result = F (2 - Key or Key2 changed) - -Count = 70 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 001150b2dd572288b6fde466ec2c2a64c75a9d516b7096f7082bec9f52c20ad8 -Msg = 6dc38e37d1379732df4dd535db88d17aa59d7cf9e8d60ae695b4047b90d899f7 -Mac = 2de6700fc1562ad3 -Result = P - -Count = 71 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 68e00d394855b6697da8213a120dc2213b3a8a1e88c9b93f5edef465a809974a -Msg = d21aed2073e8ae9c0560f9dc1adb961d4f959fa12c0384a44c675192bea13477 -Mac = 9594f10d5ce5e616 -Result = F (3 - MAC changed) - -Count = 72 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = be0f6052baf658a3607d999b81401edf7e2afac2b143e1b908c8ea0ff38193d9 -Msg = e502f0b4710bfe517e783c4bbb85055c8471b04e12dd6776f276367fb5d36369 -Mac = d409a879dccca77d -Result = F (1 - Message changed) - -Count = 73 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 7147b3c5ffb2660c45cd8d78a6fd44bdd5ba75349642b32ec88f6688a287297f -Msg = cebe84df789c98dd125bf43cd993e2f089611b98d10be04904e2468d116dd2ab -Mac = 21cfc1e6c1c38df8 -Result = F (4 - Key or Key1 changed) - -Count = 74 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 205e751926038ef940c6599d84a9e1b4737bc826e9fcde544d43f2a10b5de931 -Msg = 86ffd5bd3bd1cae10706a61d247b2257b165f37cb53ff21761077a2295a9111b -Mac = 73d66ea826b84fc0 -Result = F (2 - Key or Key2 changed) - -Count = 75 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 8c8a502eafcfbb813dd1ea907b1660a41fcaa3f905aa93c22320f96ebfaf632a -Msg = 626aed82974ef29a1ba0a6c6fefcbf34ca982e6214835183502f6a24ea2e500f -Mac = ca3d007ecd99be83 -Result = F (3 - MAC changed) - -Count = 76 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 596db502a357e102566291b916b32b8a09e99d3739f5e6543a2cd8fb0c9a1cc2 -Msg = 22bade59214fa4b933cb5e3dc5f096e239af4c2f44f582b095c7fea6b8914bfd -Mac = ff4ec21d89d4762c -Result = P - -Count = 77 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = f51f2fb4b3fd8045b70d34b600a2697cbf7503be0d8cfb5cdc60f9312e3e2695 -Msg = 4d43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c1149 -Mac = 3d615ee77043d8b4 -Result = F (4 - Key or Key1 changed) - -Count = 78 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 80a4b14f951490618ce53d39abd3d786b425d4f76b26a25052d98ebdb7e9e666 -Msg = 0b2a77b0175ffafee40cf83bd19e785dc7ec4319786c49b3e7a741142aea901d -Mac = aedcaa2e26d2f5a7 -Result = F (1 - Message changed) - -Count = 79 -Klen = 32 -Mlen = 32 -Tlen = 8 -Key = 39fb57fadff7cd9e1cfdba154422b71d693d08807d86da46ba63c929417ea549 -Msg = 567c7400f190d06e682b3dac5f751639a9007362b1a2a8b618800fbb9f6c08df -Mac = e29461fe8c6b3767 -Result = F (2 - Key or Key2 changed) - -Count = 80 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 535ed61510eb268100be032b7a258e84bdb32448269d3000a76444ca74b4695c -Msg = f7f28df82f910badc5f4b3860af28cbb6a1c7af3fafa6dae5398d8e0a14165def78be77ee6948f7a4d8a64167271ed0352203082368de1cd874bd3b2e351b281 -Mac = 4a0fd541 -Result = F (1 - Message changed) - -Count = 81 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 713fd349c56d1086794eb20ed59ddc89b065bb8533b968c6dfa60bddd16646fd -Msg = 4f3b91aeaaabfc7d4dd6821549d4eee2ea17f59aa196c67b422be2d46f3a2ec65494464c969b157985a6a30199a72dfb1c0b7be524e16ee9c43fd95e83e19192 -Mac = bd4eab1e -Result = F (3 - MAC changed) - -Count = 82 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 1f89d9ee93294aeaf3503d15a6dbef48708de48897a72b3545b9e3852eb7fe31 -Msg = ea0608b19f47676f0f342cc2742e003a6a74fa2850f41e0cf162235163887a3830dd8b13b45842b3c686ca239bdb9897e646ac9f440713a0d8c5b18532db3db2 -Mac = 8bddd404 -Result = P - -Count = 83 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 2b50dbe8a5ed0c7cb69aa60a38d10cfa4553c73d58c0ce84b26504b0fd55038a -Msg = 2586563b0102f662b5a8f9bfb0c1d107a4c27569d27bc066889213e3e830427ceafaae1ca543aecaca7f34c671fbadd518cc28d9e806bba43b2e220e5cf1aa45 -Mac = 987514d4 -Result = F (2 - Key or Key2 changed) - -Count = 84 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 29a7ed3aa55c7eb7e5bf343ca0efbf8b2062ce67b086255551a8efa0ae16569f -Msg = 2e6f2d21aa133a5061622f08ac64c6b3a3dc8154862033055c27c3a3d9e42dc885d2c9f91bd1d0212f301c3e140b2f5bfdd777be623bd162a6214ba8f60e2e49 -Mac = 1bf45457 -Result = F (4 - Key or Key1 changed) - -Count = 85 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 -Msg = 65916ae3d88ab2add5c0c6910ea993d385cbd35c5077ea0d9db30e53f378abfcbb1e0649fe14204470d4dd53ae16650ec444cb4ef22fed86b0009b57ef71fb5e -Mac = 578f80b2 -Result = F (1 - Message changed) - -Count = 86 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 47e49e5b57fbb834932fa32107697471119f1be3c3a6e71a8c474d4b1596e539 -Msg = b3cec7ad75e2bf6c87029a67365aa83cf797ae2f4d42e720ed4c48ba21ea08ee6aa3609f69a6909fff6222dbb45172d255146e4ce1c59b48a7895936a8646766 -Mac = e6e64597 -Result = F (2 - Key or Key2 changed) - -Count = 87 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = f0b0aaacc25a791c236aed0e9b537fad00a15efa9c89b5068ac52c64639fb1de -Msg = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c5aff71ea4069224cfbdd19ae3f0ecdfa65c27dc3bed721712784a09fdde243c193ab6a0ac2417e8d -Mac = 990bb31e -Result = F (4 - Key or Key1 changed) - -Count = 88 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 14db1ffc1c87117fc72981706c0f90404acc98aabe950839baeb6f0b727bd6d4 -Msg = 3d736aeca5720f5c7bbb16df61f6d785facfa070aaa89c2d9e8af9450d62490ebd6a29c7c8e521e4a00fcca7515439f006c09056cfb7f976a1e6b98b9f799e40 -Mac = a6786e52 -Result = F (3 - MAC changed) - -Count = 89 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = c6f0a3692c9280c48393b0dd763e5d0b90477f34ad69f192ae4dcab771aeeacf -Msg = 8439ff717e1e15161119494d368d7f3812601588265bbefbc6d48e22cc8a51688dd021500cee38fe6ec402f9aeb0762f92b2a73adece96e1c7b24be2aa9924ef -Mac = 70126cfa -Result = P - -Count = 90 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 75225a26d63e91281fb37ace46354f81de99dedfde8b770ea47f08503aea87d8 -Msg = d729d8cd1631aacfe485b1f408a4fb60256e7a8ed6e5b53afc34be7e57f1643b549fa9ba2677779318688ece225cc149babd6259ec37fbb4adc03e8f6dd63f03 -Mac = 5112f762 -Result = P - -Count = 91 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8fa77969539152527e -Msg = 5251a0aadbc92b76705eb053d09b25b5ad38eebabfe1980d143ac90aa81f7723353059824c8d9befa5ded6f5b4973f407c7a1f4aa85d8337d82d34fd3933e9c7 -Mac = 52f7a014 -Result = F (1 - Message changed) - -Count = 92 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 6906d6533fbc33f56e38e6a639798005daa228ebd2fc8f93803d26fef30b8e95 -Msg = 6341370e126097f9721a13c977eb4875cf1286e15c3adfa4e7597e0e13d93b6a8ff66c809067fd5e7f40c358ee170d4ed1657c2deb3015b886e79589678e0452 -Mac = 1b6a021e -Result = F (2 - Key or Key2 changed) - -Count = 93 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = cd9072aeffebbdfcce95b569c34158d0e130ef24dc99e3f98a4dd246949be269 -Msg = f882339f93ff114bfead78044aab1c7fe109dbf1bb2d968ad476403fdd2034cd3168ccfb0cf02f1ff7646ae3875ec349478749edf300b08be7005cc0d6bebc15 -Mac = d16bcdc7 -Result = F (4 - Key or Key1 changed) - -Count = 94 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 3005c0100dff59e5e4b0e3b95abbbc79749dc49ba29a79b1fcf7613ecb6aa9c8 -Msg = 4c2c670f3ac1c4e33a8d43063c8983e20f1ce6a73299fef1e70a42a5882c061b1ebaaa8330ee1181d946541b1d84b8d57df8de1ac9013ade36d2c682b172f8f8 -Mac = e5689100 -Result = F (3 - MAC changed) - -Count = 95 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = f32eefb301356fb1cad6dfa94864542b5f8cd8e98438bdbfbbb431f0c10f12b3 -Msg = dae6db62842a8a25123e50041b701ad17e2f63a0496443c3d905a9f943e6e4e2f3d369b693ddd0372ff11fe496af4b700378fc72fcc9915e7bc864b44c1d4f77 -Mac = 280624c3 -Result = F (2 - Key or Key2 changed) - -Count = 96 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = b0212ca369c611b725eccc3daa58df412787a3475f418d820971af46773382c0 -Msg = 13ca022396285bf7b82a600b560208c54ee14f8496bce684895029027e6451a09f4eeb0af9b889dacfa4b7b934ae30c7d991523e23edd0528048a75bfc525335 -Mac = 8e9759db -Result = F (1 - Message changed) - -Count = 97 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 57a9d1ea216c69c6e360221f8c858a9d356598a8b253e2cf67f1116b5df5927f -Msg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d381082f379b2cae385dd526b189cc10cdebbd33bf3d8db2b449ed49064d30d4b3a359110d -Mac = 41022947 -Result = P - -Count = 98 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 749f2fb720d321757473afc5d3a377a0eaacb425e5591026e3a1bae6a785b921 -Msg = 2e4f5149d67c955c409b63b04d95538808da6202e69a50ed4d3846da52fcbc76c7089a17758d9d94a63efd5ae7054dbc0bf5a28b7381f7e78debd0549bff1e11 -Mac = 67b34b0a -Result = F (3 - MAC changed) - -Count = 99 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = f8ebad761b9e73c77faae3fd9390093fef595e77e6d7f6b35e2dfccbde925c44 -Msg = 18430f34d5b5fddbd228a910cab9c48e1ba2b5f57819eacbde756cc0c993b736a778c8008d37776a2915077af8ecfc76b8cd2ca621e9195bd0b27e31843d2890 -Mac = 7a446398 -Result = F (4 - Key or Key1 changed) - -Count = 100 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 5bb9fb83b6a85f017bde6c0ff3ced955b9f343cc71b680c6b591302f52759412 -Msg = ee7e6655424125462a96390e02bfee9d89cb271bd9bbf22a9de45f6b7e949343def818dfc93d777528f609cd38be0a013b1eef816eb1f9593a850bb7aec5b9a7 -Mac = 5e1fa5b9c9dcd90e -Result = F (4 - Key or Key1 changed) - -Count = 101 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 57a9d1ea216c69c6e360221f8c858a9d356598a8b253e2cf67f1116b5df5927f -Msg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d381082f379b2cae385dd526b189cc10cdebbd33bf3d8db2b449ed49064d30d4b3a359110d -Mac = 430229471a1cf1b5 -Result = F (3 - MAC changed) - -Count = 102 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 749f2fb720d321757473afc5d3a377a0eaacb425e5591026e3a1bae6a785b921 -Msg = 304f5149d67c955c409b63b04d95538808da6202e69a50ed4d3846da52fcbc76c7089a17758d9d94a63efd5ae7054dbc0bf5a28b7381f7e78debd0549bff1e11 -Mac = 65b34b0ace2fc6bc -Result = F (1 - Message changed) - -Count = 103 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = f8ebad761b9e73c77faae3fd9390093fef595e77e6d7f6b35e2dfccbde925c44 -Msg = 18430f34d5b5fddbd228a910cab9c48e1ba2b5f57819eacbde756cc0c993b736a778c8008d37776a2915077af8ecfc76b8cd2ca621e9195bd0b27e31843d2890 -Mac = 7a446398a5c59ec6 -Result = F (2 - Key or Key2 changed) - -Count = 104 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = b228c753292acd5df351000a591bf960d8555c3f6284afe7c6846cbb6c6f5445 -Msg = c66d322247ebf272e6a353f9940b00847cf78e27f2bc0c81a696db411e47c0e9630137d3fa860a71158e23d80b699e8006e52345fb7273b2e084407f19394258 -Mac = 129e40ed97c02ff9 -Result = P - -Count = 105 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 8ea05a5033ab8b009664fa2800c24e217488ce6888cad14774ad75b2696e9470 -Msg = b3f09d990c2f41c8707368bba007803621ecd76540cdb8705435d74f4300eee04710a936f241c034709e625b0dd5dae1f6e86d034426819c365a05f5be420cdf -Mac = 08e5d5b3facd3b01 -Result = P - -Count = 106 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 016b5537198ed152670c5fcfb70ade276de97ce0cb771c5f6f66fcfe1dfd945e -Msg = 7ad591e67c6a3ce3c9f871e328fc4ce3b6e7048e80691da551efdfa4c96b06a3af53bb7a88ecc32869c8f776098df4d71af91393da239c24e50436e04d35a2d9 -Mac = 36df9931a14dca9b -Result = F (2 - Key or Key2 changed) - -Count = 107 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 22d5d4c3a3aa8d2fd5f25c08b83cea60e94058e8235ddd050646b02617f82854 -Msg = e86dd3216500273d0b6150227cf03adc20c8a5fed4a2799fdff759a327657a3ca554b6af16d9dc5cf3db4bf9a474bf1ef1996a06b9fe4794e634ab94a0141d44 -Mac = f0246b4959d2fa89 -Result = F (1 - Message changed) - -Count = 108 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = c892b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20 -Msg = a96c4d5c89a364263c97a453308b9360bc0ed868602b9ff54fe13f162ad31ab20f3fc51bd2346ae68a006afb50e846e8431dbf7bd0eb3c8f30326d26311a2eb8 -Mac = 1d943a8b0c470221 -Result = F (3 - MAC changed) - -Count = 109 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 2c87c0d64806fe303c5e97bccf48360f89374b6119319bfaf8defbe74adf58f1 -Msg = 37c6206e23163c39a13f19de48cc25dc26e6f83cb376e8d2048ad7c141fa503d594bd395f4d36c70aa1e8a5672910f735d4da49884574f833ef54760975b0790 -Mac = 58cb614230d590f4 -Result = F (4 - Key or Key1 changed) - -Count = 110 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 028600eebf6b3eb04d8fac18399965aa8fb5f3954d3a657e188ba17f2e3bfc70 -Msg = 5b80d1cf745b14cb71cbc8dfe0bc7c7358f721c00099b3e250c41c2e1c9455c5ce55ce69f3f31090f9b1a1b7361e27f92d46d1e00d25f37b7b61f0b191385dd4 -Mac = 02587102e6450de1 -Result = P - -Count = 111 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = ea1a626b623e9440e3f6f5c0b8b63b9967374ee82c1957fca5cd195ccfb2840b -Msg = d082b2aad7058c3142021457d47d51d8ebaab62ab452f6039e771a1b0f3bd03355fe0656dfc7b75fade505bb05d689706867e75ec41da5c5ebd43d0844a670b1 -Mac = c874df0a8aa87c5f -Result = F (1 - Message changed) - -Count = 112 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = d1155265fe296f374366dbd11f14466df1ea210cc88b0d1876509347e64815c2 -Msg = 3e3d3a464b2e6030be877f8db4c1c42bd2b8247adcf792ee833675a57f21594ade5be4399cc30ce373f68874f41584b4d7c8992b9082fc892307f645382c9483 -Mac = 6bfdc96378f0c8f2 -Result = F (2 - Key or Key2 changed) - -Count = 113 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 9bcf914f787fd3cf62c6315a12feee358eaacf1f63ac802932b933c86b098a29 -Msg = 02c8b892b13f04d99b875b8aaa32136d19dd6b9c2a10d8871c66993a57ee91e3ebd0568e38348634ee5f5af4391f7da0356a1e7ba8424441f0db61683a002ba6 -Mac = 365da451a2787193 -Result = F (4 - Key or Key1 changed) - -Count = 114 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 35d5df6d714e2ba5b307c4d1908e108bc6fece682a23aa35e2de0e80d4cb3c5b -Msg = 963ef1899cff6e0a6dcd80a27b63c20fdb8e9fa1ee3e14ed40ddb7c6b0dff969d29ba8f89159b82a19ac4240f402cd3b7279cd4c4ff4698c906f81edae8ff070 -Mac = 33995a3d9c470cf4 -Result = F (3 - MAC changed) - -Count = 115 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 511ab5e28b6fda481fa5a0fb3709b249fbf29be56346378a4d3f67e1cd6f09a5 -Msg = e4cbbf14f27490843b0f9a17b4520d4bb2c89726f4c788cae4a3344a1a2198bc222e41907fd16a20ef5f6587f1ee3cb7850b97c633b0e0894e70a6647af53f60 -Mac = 3b4aacb52525b58b -Result = F (2 - Key or Key2 changed) - -Count = 116 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 5e79f14d5f687ce62b82f856695af9f7dd350543ec763de75b593f1859e44c2a -Msg = c0dfcb62fbc3a67ceb792b3428d040ed5e50999296702472b709a44f4c0b9bb1876f6e80866cc4d2d6ee2f0236440e029d18b2f27ea5bff14a24d53337877053 -Mac = af30acca71feba3c -Result = F (4 - Key or Key1 changed) - -Count = 117 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = cf8a477434cc679e52dc3f3f3520eb108239dad5bb363034bf0768c790343e70 -Msg = b891b1ab5a6919e0b99013e40fa7c910e55a480bd043d3d85b0b7d1342d3f777e1d2a6a4eb3ff81f5f71f99bb845217765c0708778f5be17a2294c2d5f369e0f -Mac = dc10e268f5f73bbc -Result = F (1 - Message changed) - -Count = 118 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 67d77f50727c7cd5b38e0b175a888c88687c97f2ccaa3daecc519116a7c5683c -Msg = 02c5c55e7677c84a199d6e534772123c4e5c933622cfa8ef536e74cb3d745b717f53138aae9bfec54a1cb71ff04feb61d2f26aea65f37dae598f7b7fcebb978c -Mac = 885050ec166faef6 -Result = F (3 - MAC changed) - -Count = 119 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 0091d39f3478d2c59bf874b96db9ce0f7e8b85a9b805e07dc96b219819d51663 -Msg = 7207aa8fa87283f1f57019bf1c89645ff8fc36ab1102704e6d577671a9f7e098482573c64ab24fe8007c697020353c411566bccb98b38c7784607045e61405b3 -Mac = 96f639a86a2d698e -Result = P - -Count = 120 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 0e6d99ee5137c8f6b9bb45a961be8a29358a91189cf9974f5bcf20d3b64c3b04 -Msg = 543ef4638f1322131402172d193bd304b34e3745ecedb9db16f35c0f5fa6 -Mac = 33f10660 -Result = F (3 - MAC changed) - -Count = 121 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 82421ddaaa5767a496f2b78f816cd1e1e6699f6e9e6576c34c909ba5f8dc06ba -Msg = 4e2f0f91990b855a00d27fbb2e8db7184cd82909de361b52e7a75b16547d -Mac = 3f5ed151 -Result = F (4 - Key or Key1 changed) - -Count = 122 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 134f20cb62084a98601f0e69d257fd2064beb47248caa79720a71d461ed07ce0 -Msg = c248fa87a6e48cdfafd1e5ac00f95fb1dfda861465747265796654dcff54 -Mac = e7b21645 -Result = P - -Count = 123 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 98505229c1927d13001b53850d0b7d56f49087afc6c2351190cc1b998e4d6883 -Msg = 9bee2e347f763c5c506876bb514b5ba1248abc6b3d17cd4c96537d4ea432 -Mac = 2c212c7d -Result = F (2 - Key or Key2 changed) - -Count = 124 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = cad710b48ea0bce4a897482a535aeeaeabebb42619578a9d1296927301b3bfa6 -Msg = c1db23e776272765a0fee49edcce28ff7702b9ff9b6e31a4c3ed0c497248 -Mac = 7f27420d -Result = F (1 - Message changed) - -Count = 125 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 0bbf4f77a9883733590a3cc7ee97f3c9b70f4db255620e88cd5080badc73684c -Msg = 7ff9ca86f820e4d57995d450611009ffaa726e6fbe4ce1558ca1e775daed -Mac = b2e5a268 -Result = F (2 - Key or Key2 changed) - -Count = 126 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 6efabed650ce05ff22b67768e3bcc88c7746952106ecea92a38707af2b8a64a4 -Msg = 9cbce402511b890c8c9fa215b59c813b3e51b5dce01e776327f145623002 -Mac = 03728e46 -Result = F (4 - Key or Key1 changed) - -Count = 127 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = ca2843847a1c9539917206d344161dc40b379fd45dfa6a73ba6fa14defc40920 -Msg = d9365304c4363fba73feaa69d4cbb343a76eb2d29de6782ebb34d873006b -Mac = a94841ee -Result = F (1 - Message changed) - -Count = 128 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = e5a1108da9cf587bcbdf051e216231bc27f0e6c1e97729b324d23768a89e0e77 -Msg = 536d4b6182a698d456e1fd9d522aab38cf05656f41a5e02cbd5e6f8cb85d -Mac = f52a4ba3 -Result = F (3 - MAC changed) - -Count = 129 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 008ee06bf9b19536190e87820af9cdddb40aac44b0c3b1e50074fc29fe5cdff2 -Msg = c1eb4c800c631d9f387d2e8e431677b7fc8f65235ad0cf9b118d2b0d67c8 -Mac = ba255bd7 -Result = P - -Count = 130 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = ba0bfda3b03c736c121cf9a257db55060b621be5168619ec4182f13ef6a408c4 -Msg = 69be384eb107340d953753e6a860ea2710e662e8953de8eff8f465d086f3 -Mac = 9f650d24 -Result = P - -Count = 131 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 7a88524accb59f1c6307a1719a011eff211df24645086c67710ef539f5d3f29a -Msg = bebe346356681f27bc62f0b838a25268e3b04194b865bf83eef2c8928625 -Mac = b2566e6a -Result = F (3 - MAC changed) - -Count = 132 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 9c956d7bbe2028739d73a2f0a80af5f2f180de923d5571e65bee0b25b5dd890b -Msg = e0d2ea49e3e4a5823efd1b229c705ec3bb5048a7658f10fba2671c5d2cf9 -Mac = 480a14ab -Result = F (4 - Key or Key1 changed) - -Count = 133 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 2090b970a71ce2cf399a0d9e1d3d72c4eb500004abcba1303b24bf9af16707cc -Msg = 0e0ef2cd18533bee01f19870f2fb22176c7e04748db4dcb98f7a65cc9104 -Mac = ddb6f30c -Result = F (2 - Key or Key2 changed) - -Count = 134 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 66921951731e95bbd45c014af5cf623933350dd9a90d1a36465716f8239bf887 -Msg = 0de1e090eb47dd4fca966e5f8fa5616618701164370d8a43fae2eeaf3016 -Mac = b91b3131 -Result = F (1 - Message changed) - -Count = 135 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 43c1142877d9f450e12d7b6db47a85baca7eea7fde595393fb394c1f34369aa4 -Msg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d38108 -Mac = b2de16cc -Result = F (3 - MAC changed) - -Count = 136 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = db4b6206d001af121051cec70195055fc1fd0dc06ccc74549bc440152aded5e7 -Msg = 94394feda0528fcc67124dd1d77f0ec0b911f08c3e01e0c0dbc40c1d57d2 -Mac = 5f72de94 -Result = F (4 - Key or Key1 changed) - -Count = 137 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 4d658be9cfcdb19f79abc78f4d7f986d02b43a03098b37c8ca56ebb331e62d51 -Msg = e28660f57b044a44a19ca40ff7b6469a41523e8d1cef22f4edaba58917ab -Mac = 11fa4d1e -Result = F (2 - Key or Key2 changed) - -Count = 138 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = 70b4cf3883fea8c6cd852a4293c7e5cb0586a6cd71294883b760cdbbfd07aeda -Msg = 4cb9aa069475e54b25e5688a52dd4acd134169c858105f01a0a1b134c72d -Mac = b6b60815 -Result = F (1 - Message changed) - -Count = 139 -Klen = 32 -Mlen = 30 -Tlen = 4 -Key = f75bb63d52c35137448c58383afe47e026d536f67e3afdff87f29b10d3d6d9e0 -Msg = 4259e4fdf10acd8da40accd6354f4baef4859a2f5ebada0d2c5b1b26905f -Mac = 336ee1e8 -Result = P - -Count = 140 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = c938f6bcdeca02939fef931c969a25edcc3daf338d8286016e3c7ee78f9d52c7 -Msg = 47179ddaa9d7ef6b9a53c646325c80db69128c6fc4f92ccd345078383b9e -Mac = 5cbd65df0ca36898 -Result = F (4 - Key or Key1 changed) - -Count = 141 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 9540e4bdd8c7ab99f0b76dd9de24c340a60f7706f680448509d5dc35cb5930da -Msg = 4715a9a66d10b2dc1869d90fcf9b7fa99e91b40abcb8fc356b5853c92024 -Mac = dcbd4dae7cc60d46 -Result = P - -Count = 142 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = d5c396fc1ee960215e57cfeeea1e792fab9334f2c45dd93e74cc47023e6daa4c -Msg = ce188965b4d347a6c36a6fa5a47296b32ff0fa27311266b16b1d56ebdda7 -Mac = 1684fadaea17bc79 -Result = F (1 - Message changed) - -Count = 143 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 897193cbbccbead9957876b8b42a77b404aed32a3f63bb9ab5f08cfe4936f35a -Msg = 87767f13bb4904d0df0d64eb22c9ddb65e81b5739baad86ad5e2c239ffde -Mac = 84ef6f59b770d42a -Result = F (3 - MAC changed) - -Count = 144 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 86aa015253a7114e1770b6a48fdb3ef22e9d5abac25fdc145315c09f4e8b69bd -Msg = 2595cb8d4d6aaa148596e8502ec80a030d82195f9e1d9a26ab0ec0101e67 -Mac = 63e67c44ecc05dab -Result = F (2 - Key or Key2 changed) - -Count = 145 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = a082c12e97bddeb0c74c13aa4ba788f8a127c44fbac6682050271dbf7ad6cbc4 -Msg = 7fc97a698d7b0eed7d7602a5d13e956a538c71c4b45978a47439c05601ea -Mac = 3e1fe077fc7e903b -Result = F (4 - Key or Key1 changed) - -Count = 146 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 18716638a2f6b4fb8dd2849fa9aab80b8dc846ee7e6b3cb0926101a814d8dd8f -Msg = 6593194b9970545c5a910b2b4fcd46f0ddc7aa0bf873f0a339d5958d310c -Mac = c4556a75b754f6c9 -Result = F (3 - MAC changed) - -Count = 147 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 6237aa30f1e3df239c96e7e50b69496da9305951024fb83a6fd01e96f6b2578c -Msg = 0c5b7d1ba68654cd24871964f1b31ef7900dabc025baa02d37b55b35b4c4 -Mac = 22c74fc64489ca5e -Result = P - -Count = 148 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 32f60011bec76a79d2e837c611fad1cad486ee6f2aeeb74f1ea32a7e3899bdaa -Msg = cf772bac3e767534b13efd381119b66f8a99b91aa52c8d3ab5f0a60073c9 -Mac = 08d02ce41d4964b9 -Result = F (1 - Message changed) - -Count = 149 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = cb6cee5ba7b799f16254a17b1870cdb85fe0ef3f42110c138742bd7734f0d504 -Msg = 40d3c65a00d9204b76e013975ffd729b351698105d47448da285a84de281 -Mac = 4cc6718396dbe247 -Result = F (2 - Key or Key2 changed) - -Count = 150 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 9b8cdf91e848eeded2598ccdf084bf591ec2eb668236f555ca61a9d6b49959fd -Msg = 7b3cc6f18a27047f4cdc35404e44eb8e51b1855d4bcd54ccafd1fcfaeef7 -Mac = faf72c383b56a4ef -Result = F (4 - Key or Key1 changed) - -Count = 151 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = e6fdbe9a1efe081bbcfeb25b844734fe60aa6b80a5b5f611982de1a331b88041 -Msg = 59a0f85349c3f378d56c509a0a45a1512b5072474b297f9c1a8c24890016 -Mac = 020354f33df66723 -Result = F (3 - MAC changed) - -Count = 152 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = da360852e8b8c3a1b65af9e8630ee5481aa91dce414166f8f3dacb75b142f12d -Msg = 61d908e9663fb195afc259529fc229b14e87995f8d3591b125fcce816090 -Mac = f8963157ef7c1ba3 -Result = P - -Count = 153 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = c9bf0e7e470d0ffc88593796c4cf9a61c6db81d343305ee06a0f0563bcc618c0 -Msg = 19378e17c41586b88523a6b6af738dc47e63ea64b4b83fa283f1e502add5 -Mac = 550523c0347fbcf1 -Result = F (1 - Message changed) - -Count = 154 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 7129ca274190400720bba27651f1ee0d5aa79116af9929418e198f9928a715b7 -Msg = 891e73a81d7574ce6f73e09e08cbaa0b9db242963f4469cdd2234512c061 -Mac = 9982a14d261a4060 -Result = F (2 - Key or Key2 changed) - -Count = 155 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = dfaa73c82a978548c99c0f1c34e1edc2c4edd42b73613511e4e6648ba364f9df -Msg = 18044ac51ea97341061ae7d5bce017fd5cfb1554a384a75aa3919a74ba59 -Mac = fd3a17e8c51a004f -Result = P - -Count = 156 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 6f0be1905d1b5b607574ad93a1e7b4a536020fc6798acae862253916a0562707 -Msg = 8e502d5af4701025787e5b251121676182a0b26cdf52847f4d56d2ca0983 -Mac = 73d76950066c77d0 -Result = F (3 - MAC changed) - -Count = 157 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = b9fe826b0138de8184a3002d8bb59d228862e4a14f8556f88282d8494d29068c -Msg = c97ca1930b65064b70d12fc46af4d5e220e6009e729a28a13b0f9a11d3ca -Mac = b8bccd70bb90084f -Result = F (1 - Message changed) - -Count = 158 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = 99c8f69fb91b17299461fd8d633bd516dcdb172760695ec476a5775377cdb7a4 -Msg = ef589e3b4ad9a7ba390574a2db5330baea64894f8f881cd67b842dd23393 -Mac = 38e11613e67e0416 -Result = F (4 - Key or Key1 changed) - -Count = 159 -Klen = 32 -Mlen = 30 -Tlen = 8 -Key = a86e8b43a1e81dce7b26420c0409628d145445d1c512e1c3df3270839475c668 -Msg = c71a0d1e20a7dc8e7adea91a408ecf3d512bcb15a6d8fc1435c6a7f915bd -Mac = 101c06c22819404a -Result = F (2 - Key or Key2 changed) - -Count = 160 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 -Msg = d4794f6f563d5f6445450b59c1ff95d24eadc9c02b68eaa5df64edf81475e5cba8d2bfab021a2fc8 -Mac = bf99dc0b -Result = P - -Count = 161 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 551e188cbb7c7d1ff33b4bd5bb6c60da184b18f44d68d5c30704df47d8be6fa2 -Msg = 2b421be47d07dcb12a0706f7490d05024fce8f433079e18ec78f4c8678f5f1551448c9a0fc70e8b9 -Mac = 32aeb3d7 -Result = F (4 - Key or Key1 changed) - -Count = 162 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 000da8307f0e6112f0b8a8b1f927f62e8a9e5aefc0d37995088dd32e867148ac -Msg = b89266f3a33e5b6883206e44f8e8e0cb01275039c304960e8630f0aa011c5c19d769443061a060d9 -Mac = 1b5e30f0 -Result = F (2 - Key or Key2 changed) - -Count = 163 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = f4ae2113ce96435b27369fd4571ae2841a965c8ddbfe61023219eff9abd490e2 -Msg = 433ea4e1923267fe443e1e89d2472834b72ef97323ad6d82f3825ca9e1d06fbff8c232ed4c716ab4 -Mac = 05b3c894 -Result = F (3 - MAC changed) - -Count = 164 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = e7c78ef4c4b959ee00cb1a09d71221a43892ef8ad705edd27ed85d03a377907c -Msg = 4da25d1e7064bc4b4903a77452952885a06ba0712544210d30c0182533182fcac90b71e9f71caf22 -Mac = c15acf48 -Result = F (1 - Message changed) - -Count = 165 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 6f48b3bf240525adcb02985900fa29747e4b1265e5a8899abb0ee51cb0f90367 -Msg = 98bf67b6e342dd94c948e76aabb69e7d091d24fba54ae233e4181404768988963915a2495b42a4eb -Mac = 71bb5873 -Result = F (1 - Message changed) - -Count = 166 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = cb6cee5ba7b799f16254a17b1870cdb85fe0ef3f42110c138742bd7734f0d504 -Msg = 40d3c65a00d9204b76e013975ffd729b351698105d47448da285a84de281bc3307cfd80b39488213 -Mac = 592e54d4 -Result = F (2 - Key or Key2 changed) - -Count = 167 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = bbab624862e268765e9e6a13df55cf7a2267520e4e66042ba0b4905dc554c3d0 -Msg = d43b841f174335f1347834590b0984a2cb35f7a00a0ee993157d2d4f8487489a12ceddd6ac5b69e0 -Mac = 3480805a -Result = F (4 - Key or Key1 changed) - -Count = 168 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 2fc9e8f409cc6c0156ccf9f00686ac7abba6cbe08982a737fa08c70356f54208 -Msg = c1cd63e24e41f69a146b448cee0a2107817c8105732745aed817541eede8ee6809e73ddbd0742d84 -Mac = 91623558 -Result = F (3 - MAC changed) - -Count = 169 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = c49dc812061fa4995aa7c160ed7cdf769dd1ef570d8fc9c7f8552101c5bdb711 -Msg = 74ec6f53d188be3bdb647f37619fa5848076c66d21bac164c381a4517b1dcd2a384a4fc44cab97e9 -Mac = 07471b07 -Result = P - -Count = 170 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 84b6cd1c6618c42ba74e746075dc28700333578131ca6fde6971d2f0c6e31e6a -Msg = dc79743d2360cc52cee202b9bde9abc7c09d9d0311d89c3722da36c7993feb42992e913744d2f74a -Mac = 3acba1e8 -Result = F (2 - Key or Key2 changed) - -Count = 171 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = dd472b0bf50519020a182f122239d161d9659773b4df454eb378fedc250eb490 -Msg = bdf56403d5ff8df4ffca92eb40d54a79b5595abcd67b9e2ffcc5cbc621d7523be75a87a2dc360244 -Mac = 3bb0894f -Result = P - -Count = 172 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 00ebd245e8c0e0b60847da5c8f7a1f33604932b9cd47a845a1a44599645b62ba -Msg = a238e542f1c22621aebbe331e71123ed7f2591e4192180ae378c2c24a31c42d10fcba3a3f82c65e6 -Mac = 1d17d6ab -Result = F (4 - Key or Key1 changed) - -Count = 173 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 2ecddb226ae668315eecf107c344926330b94077e029ac3bb67e6a077ee05361 -Msg = 38ee97f0dc635c7416a024e3af5c95dd1d496db8a5a5c3bcc20b9093ca906dfbcf0b9ebec3b450e4 -Mac = 08834104 -Result = F (3 - MAC changed) - -Count = 174 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 0a2978b5f20d3b5e5ed7ed5a78a093a51d5aa6e728077346f429c27f1c79b635 -Msg = 28313dfdc449628f4e2d6c895381844559067823cebb56cd41493ac0d29d6408e7d78d4a21637b08 -Mac = b2635d7b -Result = F (1 - Message changed) - -Count = 175 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = 7f2286d42b4f9eefed1087f3eb3dc814145be4a110c0e74176f83e7d4068cb7e -Msg = 6c1aa088d1a6086d0e72636744a6840c80ab8223409c61b733f7ef6a4199ed0ccbe96f6c3453866e -Mac = 10bf9789 -Result = F (2 - Key or Key2 changed) - -Count = 176 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = bb0fabffbcc6935ca35755fd4bfbd192b6812cf75c4dc95bc3a175a1501be206 -Msg = 9801da81a6d9861f26900401aeaec89a74e3d5aec0a5d612a11b6bb4e03ac1db322e65afb1fb5afb -Mac = 9ad23631 -Result = P - -Count = 177 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = ed1d11cc4876f58feefc463b52d8d36e69c4c2c9227b32fe356d1e2a1bb88466 -Msg = b16e6c44f429efdc06a892cede56296e12bf185d4b3c6953f7d31b1c3d59bce136d93aa95a3af61f -Mac = 29b26a75 -Result = F (4 - Key or Key1 changed) - -Count = 178 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = a6fd8382447181bd300ec1ef039d3f353446d01fde490509c3ef52a992bf6fe4 -Msg = d41f8fbb6f968dda0c1b2cadbec04a6c72124eb5dc40b8d2b180fd3b17af915b5a374597e036d38d -Mac = 2b343893 -Result = F (3 - MAC changed) - -Count = 179 -Klen = 32 -Mlen = 40 -Tlen = 4 -Key = df0821c9ea6ab329c626d11b4bc1ba7351ca934ece6aae483e3d0bef48601f78 -Msg = 84b9c150a1df00ba29386197d79d29a2ceb42fe6390c9e763169f75fe15c55dbe817f5c7fe80f557 -Mac = 3a5026ef -Result = F (1 - Message changed) - -Count = 180 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 0f1b73e54f4571b2d42aa5ab673f3e99b44f6c37a07a5d4edc7d6b1fba349401 -Msg = 3918467effb5d5dc009aaefce84d8cb4fe8f80eb608f4c678f5d0de02ea11e59078d38b04f10de73 -Mac = 1c207499e0877bb2 -Result = F (1 - Message changed) - -Count = 181 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02 -Msg = b06f6b3f197bae7d8cde9daf38530e25bc51b68f9aa23ec0e95199b14bca96c91f3db15bf8432f71 -Mac = b860013252ae83a4 -Result = P - -Count = 182 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 849d861aa5a37c6389f7bc2fc3b4860fac9d2277fa5e1a1f9415a6aaa5106886 -Msg = 191b53e0c7d90161e5e2014e9b8aea315b4bddf5750aba4be69c944d71896361f210f961ee6b38f9 -Mac = c9dc7e167c2e442b -Result = F (3 - MAC changed) - -Count = 183 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 29dd1ee0ffa12de3a1f2cb8e4e24d2e548794a5e7e372f946bfd733f3c564764 -Msg = 891c806e0700f6df72befe47ff088d917cc30763866810a2fcaa9f38b45953156c860b7303e8b15f -Mac = 2f7355b3994f45d9 -Result = F (4 - Key or Key1 changed) - -Count = 184 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 6cd7349d96feffbcf6e95a96eacbbe8ddab702ef70052b7804f78518589df3f7 -Msg = bbe054fbef86db3ce7ad796e6d0add15455b9cff57fb787610b4e1ba05d5bcaed98564d16157ee70 -Mac = 8a421387c53702d3 -Result = F (2 - Key or Key2 changed) - -Count = 185 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = a32e186c29f6f1852b483a37b50c02defeb2ce81488198bc082c17fd47a741f4 -Msg = e687143dc4d98dcc6a2dfe6ee0f85d565d1f46bb0fafe62a17d01720d6f4ccd86754b0626c9d0af5 -Mac = d44d78445c5ed8de -Result = F (1 - Message changed) - -Count = 186 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 338f8054d58c26c49360c3e87af56523acf6d89d03e56ff2f868002bc3e431ed -Msg = d42b10d3a688c39edf543ae7330466eeb9e3b678ef073967ff83038d40ded1c200c4f03481fc5aff -Mac = b25bf6993f18d503 -Result = F (3 - MAC changed) - -Count = 187 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 96e04382027fffcaf779c984be80da16f8437db0e39a7123d9048ff71954acb7 -Msg = 494c8f931029a4919e2dcbc16512a8bfe275382e7d29c9abb1d14a006caec59ab9b52a3e9ce54ef7 -Mac = 5a94a03591ee9cc7 -Result = P - -Count = 188 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 682f8bc1eafd4d369df384841a88db7b7fb96c9dd9abd6dedc9290a8d8d17d22 -Msg = 87b937b1d36e8a9ab33a1d3eed617030923acaabc7e620dfcb3c388936030fc67f647729c19e040b -Mac = 89347722a73d8bf9 -Result = F (2 - Key or Key2 changed) - -Count = 189 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 954222a9cabaa5a0a91100b158a3aeb655c4473d0b00afe6a7a78e0d278a01a9 -Msg = b9197eb50c8168d16b8a12bd261d553ffcc521d979b26fee820376252e452213d736c21471cf0179 -Mac = e5d175fa24cf0fd6 -Result = F (4 - Key or Key1 changed) - -Count = 190 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 18349be2894d49290339b97f4db28c92b3e112ffac77100abbf9c093935b1a46 -Msg = 4b02fd5a46ac681a42424ac9723911af4e389ac73829f36f60916563e51cb2ec3d7d9b55d674a59f -Mac = 18c98fd13595f857 -Result = P - -Count = 191 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = f1f9fdfa9ae3ba8bc6fcdb2e15ae2c47e6292c2acb091fe03e325f298ffff3bd -Msg = 75965cfbf66b0ba13274fce6537fd7aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837fa06f -Mac = 935e4d4367aef07e -Result = F (4 - Key or Key1 changed) - -Count = 192 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 4652bacedb47faee1be641ebf433157f416b4c7d9e8c7c6f7b17b47e70156993 -Msg = 17e6acda3c05c9549eadad55d8918f4870aec63a18802fa33175cf838fa2b9b17cb43270ff2a1444 -Mac = 7ce4adc343a4498a -Result = F (1 - Message changed) - -Count = 193 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 200e4929c275557d9caab0ba3b0a153dd8010ff8f11ebc1f336dd0249d01dce6 -Msg = bd05d26ebfcb5f6e102e79976fbd038e02da6a64a6be90bb84bd092be5cb8ae447409e94afd89b8b -Mac = 5484fd10e83798c2 -Result = F (2 - Key or Key2 changed) - -Count = 194 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 8c6a6e77534976b4d74a0972742989dbc0f753281a5ff10a862e9048b813b4a9 -Msg = 869c482db2b0825cd09d295749359b99fde85240e5ddaebef642f4d249e096b77af2b59b4e37e452 -Mac = 9e640a86d55be78d -Result = F (3 - MAC changed) - -Count = 195 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = be3db75687360fc31c27752a5f32125cf04f8bbab694339ebcb57ff63fc7ba32 -Msg = 33dfb223c009001a7b3b81916bb094390c42c24a47884fc8a0410f05b2f57b67d8d9046b2ef4a8ea -Mac = c7666f25d2329fb6 -Result = F (3 - MAC changed) - -Count = 196 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 29e7acc4facc2618f242ec9260a8ec36c4c9dabb89bb8092f00855234b0c505a -Msg = 09bf4f77a9883733590a3cc7ee97f3c9b70f4db255620e88cd5080badc73684c8b80393302ca8803 -Mac = 424535e20d082087 -Result = F (4 - Key or Key1 changed) - -Count = 197 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 23f0d00daef3177fbcda6e9953a5a37d5da395204d8af5fb05c74e03f71343da -Msg = 2222135e545f2af53be42d7a463719447e0a6a305fbe8e43e6279a91eb8f3c5db1fdf081bcb77711 -Mac = 52c42541e2e93f3e -Result = P - -Count = 198 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 6746d9a90e0e763679d5469a1bcffcc4f18f35f50c7714d14c7329b76ce7984e -Msg = 68530f15423071410a349872c559669301096c827333adc4df9da477387c89870942d12513b7f475 -Mac = 2bf36912e1139629 -Result = F (2 - Key or Key2 changed) - -Count = 199 -Klen = 32 -Mlen = 40 -Tlen = 8 -Key = 6b1d94bc0c6e45fc905c509ea667853e4b2c5a8848dd914efcef14d95b12247d -Msg = 207b649c46c1963723624d8428d4b64c08cd4091cc055175223d3758f880614149a9cf7f3725c790 -Mac = 34f46b361bddf55c -Result = F (1 - Message changed) - -Count = 200 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 5c77fe134af3fef72fcd16006097dc7dbc45ca10339ae3bc85e0993e4cdcefa1 -Msg = fab52c44379ae8083bdc7b827383df93cb1a7ecc21574730f9fe003b7302de237bed535d40832763e7a2cab5806de91d39aa3f38d167ae3250e48ed1f6ad45b5 -Mac = 03f36c5a -Result = F (3 - MAC changed) - -Count = 201 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 997c6b4b513bbdeaf701867bbe81bdee63de0d0d18c870bcc1e9ff7f627f093e -Msg = 4c23d92665e88a4f6f732de384034d493d5df37b767a8260557de05688e8d60dcd0eba9cb8cc4bceb174dcbd3c0ab5a37db3b6ecfb6a3d90a4f54a9f1117e11e -Mac = 9e798c73 -Result = F (1 - Message changed) - -Count = 202 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 64e390edd97c0af1ba5165900828e0630606f83d4df5240e1b05c307ee9153ff -Msg = 1ae71094fc1b304adfa3378c4efa8fb290526bb314714c9613beca2a709c91f7e3f6aa74561bfc7b8fcd12f910941eea3b593e85ba2fffb31e7420c6c6199868 -Mac = 1977347f -Result = F (4 - Key or Key1 changed) - -Count = 203 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 44e2f6d41e04b75f541e724c6f6325f27d7475b3676fa0247f28b36e58b6fdf5 -Msg = b9ac624288352617e4d375f33953b431cbf8f03f9ecbda9893330ff2d3c59db8705dc3ba4a6ef924309630ac48765b10b1c02ec0669126d76602c95012fa2f77 -Mac = 2cba4713 -Result = F (2 - Key or Key2 changed) - -Count = 204 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 8e0f75b7029d4afc2a86adb4a088b89ef9783965027c1176497ada0fdfd0cd99 -Msg = 21cd3ff946e2b3c1c61932205899502852b1333d1c79a3d4e5b6617996ffba17041e5b746ab967fb1632c7be62cbc2bbe60ecd5eec6ca4482424994f9a662cc6 -Mac = b651d356 -Result = P - -Count = 205 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 35b1106d174acce103ecf5801b03d3c10d579c4ee491ebad25fb6f1f1787e0c8 -Msg = 960026395d0544975dffaaa2c56db1df5816cd80cde513dc76f6f81d21f15c383c97c7233c9af2423fb28922efed2f69aa47c30de17ae1c5be17acbd0ad6cb8e -Mac = 8a8f65a8 -Result = F (3 - MAC changed) - -Count = 206 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 71efa75961dfd60ad533082a8cfe111214eb02573adc4591c5d0e961640a3ab2 -Msg = 6bafbd22b75e21e1fa5444af283e69d53ac2f0412f717a2153f74eb1c195fc5127d240dbc96d2833c9957920a55c505a016a05e4a7ee549bccdbbf1095502e93 -Mac = 88fea081 -Result = F (1 - Message changed) - -Count = 207 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 11752eb8aeffa364c9947092c1612461cc19b6c3a3ddd1817b5e6f7f3745a942 -Msg = 2d9109e7eea21b2615c81c03182ce6033c93783b13d698624392bd2a8a202bd0ffc860f29b31afa2f71c2bb85752c66ce8dbba244671288a4135ffe2e1a0209b -Mac = b5a26c1c -Result = F (2 - Key or Key2 changed) - -Count = 208 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 279a6c226f6a48f3128626012baaa309d99065a59dc0a4c003a6e94d85e61638 -Msg = 9bff96ba07a52d9ea2415283321395cf57cb37c610fad7a482c74de9f5e3d7f520bf73d4a6fc8b5be023d774dd9680b6a7c68139c8a753a80d61c9978a493917 -Mac = 5e281941 -Result = P - -Count = 209 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 0bcdcaa87ddf8bbe6db8411d14bb9064e4a121286cc8a6e97fce1844935f436b -Msg = 3ec0aa8d30d5ed825b77dc7095f421b1e608158797a377ff8bed641bd387832f7c14818cabf9bd5ced6044cdc883ff7296272be693660ab234b2d870ba170131 -Mac = 1da79d07 -Result = F (4 - Key or Key1 changed) - -Count = 210 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 1b41d148e3c202d419ce16385139da196dede5be63987e6940a2bae86d62e567 -Msg = 13ecd70e2d76dd53a19b2e5fc0afe0c0793577ba8948b7d4ef3ab797a07a37927dbb33a18252b96f40e0f73a8d3298d67a6551f5854eb6a51019531a122ff8ae -Mac = 91bd49b2 -Result = F (1 - Message changed) - -Count = 211 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = a1ccc9c992c8a307ad39504854456696f8eafd7c8da0c0c53b3a4485570e985e -Msg = f68b0c3b4556c7f8866b3fa873ed2014418d6421d3f224512e5dae8c2d8dd92175e09508acbcc66ae62d536260cf790671ef66a1bded0343ace4117c1b8d7764 -Mac = b9317feb -Result = P - -Count = 212 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 4d8d0264ae6d8f7a7440dd760e0ded25a3a94cb0491fe81e7b55221ac8ed24f7 -Msg = 5faaf6b8ee8ed5b56bfc1a7f886f9f91a6566ceb99c39462ab675a3ae3be98f68787626fdf77e6243c2e96d1396a8a43417b1f6a51f7e5b0ffaeb889bce02c4b -Mac = 3f610010 -Result = F (2 - Key or Key2 changed) - -Count = 213 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = bcf95051ae2ae84ac32a763d5477ccc4659a9ed3e25de5932939826dc90e2464 -Msg = fce924dd27db3e07837694c34f576c16084e5b0a254ca3af0582bf6026c73b47973ac924b02992490032cae987a887932539d3fa53cdfff711b03bd11ff464bb -Mac = 7b7e89ef -Result = F (3 - MAC changed) - -Count = 214 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 45ce953ad31ee9b53a9c948883bc86f4bbe0f0744085a9943cbad1066cd7b4f3 -Msg = edb1aaa7e8ac37bca99ff8eff5516464aa33fc2bebef8a727d43abf971108bc604aef019c3837aa2f3d429f22fda1f305319a70d99ed77f902663298f855316f -Mac = cbf4addd -Result = F (4 - Key or Key1 changed) - -Count = 215 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = d60841cd71d7227ab56e767817760edba9ce2290f8da504b341ee2c1910b5018 -Msg = 365fea641559759d1e5b5581218486318b1c776de812b1aca6a9ba6b1c6e39c5cb6d5a44e3a474f709b8eac457e74f00a43ecd3d060cc7639696bd03730c70e7 -Mac = 7406f935 -Result = F (4 - Key or Key1 changed) - -Count = 216 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = d172f991eb697ffdefc57349dadbe51066d2744c39041cd55ca75024eead495d -Msg = 6a91da64812b9bb41a026e727b4f77c384813da2948caed5a9846420c86a26b89f46b2fa6975b95d12452ca69bbfb65bc1c48a79d95c5e69ff4ab7316fe468e8 -Mac = 6bd82bcc -Result = F (1 - Message changed) - -Count = 217 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = 3725c7905bfaca415908c617b78f8deeeff286e0c2bba268d0de92c7664238a7 -Msg = fc4bbe329a86089ebe2a2f3320dad55a9bdac1133dd28ddc9ace9ed665885a2341ea9492d4cf4b7e1d0a95f308a9d613407b35b845cf515bbe7f2f35102d78a3 -Mac = c8e11823 -Result = F (3 - MAC changed) - -Count = 218 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = bb3087d1b5b0f6f14a532c3604c82874fb15e97a4b3883dfc50e71ffe5752d40 -Msg = 979a9f96112d1ea95eec2cdfdf48c55114472360aa7de24bb53761013af96b33f02b17ae470fece8aaf649d801b4040b7b5152f58a01e7852f565efc77b5dafe -Mac = 66466425 -Result = P - -Count = 219 -Klen = 32 -Mlen = 64 -Tlen = 4 -Key = eeb983439a03ee6a315ebf941e9368f90bb6845b03b31839d72a1946c17d2f19 -Msg = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024b3651eb227e73bb559e7c0db08b215fd7efe64afcd24fb155989f2f8965d0e181389e6c4b8e244a9 -Mac = 7f77d596 -Result = F (2 - Key or Key2 changed) - -Count = 220 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 6f0353a0ad95df6d3190a251435f62c30ed6b9cc0dd024c3c316565cad83d2e1 -Msg = 83011a83db0524628b55589ba0165523ce7c916465eaf185805b97ec7f00fc01b82a3e356a6bbb44f2f8deb6425239ac8e26d4d94871c5cf4fe7017c649672f4 -Mac = 9e56e4574dd01fe8 -Result = F (4 - Key or Key1 changed) - -Count = 221 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 777a22c5fa2f864a9233587e3e9634172ce25006daacbba97b68e7429c8266a8 -Msg = 1f7d58d65c36142620172fda3197d3c629bc7bc584e1aaa0f8b6dd320588becaccc39ad124b515adeb941de49ac31c851c5172c4e1c322e42e13cb5ab7f8db2f -Mac = 498dafe2807ba34e -Result = P - -Count = 222 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = e17736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b -Msg = 1a6b80d506147c3c02c89f50892bd1f04d34f9f21e8307140df43835d17495c56a13be7a045be5441de01d84ea19d579f76e9ffa0f92376b5b13c0eacd3050c9 -Mac = 52d3fbc6e5821f1d -Result = F (2 - Key or Key2 changed) - -Count = 223 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = f31f2fb4b3fd8045b70d34b600a2697cbf7503be0d8cfb5cdc60f9312e3e2695 -Msg = 4f43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c11494c31e6098e24225eb676094755c6d7e992ec0c8c1e2608e76a72d79d173a4e07 -Mac = 71239a4c38fa04b3 -Result = F (1 - Message changed) - -Count = 224 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 10a678f591b4d87280f42d77a91635575e2e82ef610a7c9105c3a9418f932c24 -Msg = f7b577f1396b23c27eb637e53d3d92460270b001cc612fd3b4d68bcdd09c2d50571ea4350636324cc2428a087e7bd8785f8202791e3c2d2bafe084a1204e34dd -Mac = 5b11c1407904c15e -Result = F (3 - MAC changed) - -Count = 225 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = b8728441226558fa9764824597fe254bf8c2623789541feaf6c007efeb0dd2b1 -Msg = 80a2be15809f12738f305be3a210ba0c933599c4b24b48257c60e8e3aae189dc6ec58ff1f9085a15405b26a3001a2ff5ff7e1932961490676c6d2cda8417979b -Mac = e73ed6c4f81b0ecd -Result = F (3 - MAC changed) - -Count = 226 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 22a877d974cdf4d65bbd77958b2b77fc5ddb33a221aca3ecb6d5ae76596f9db4 -Msg = ce2ce41f76ca7477972d38a3e8fad1122db34ee80c379fa01f884cf648d1670445a8bfab8490563438c21537ac2dbfbcd7bb24a132d6973cc62ba14089adf7e5 -Mac = 0ff91813a56b98dd -Result = F (1 - Message changed) - -Count = 227 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 03fa02c4df99b8295f502e3145e2edd3ff16722b87092e708bc8d126cc1ec894 -Msg = ec9a9babb68e09c38617c9b16e8a2d92e711030bcda4b9e0ab35c4c2392b41692312dde30c91f32cd39cf5fe15ea0deaf3aa04a8157262acee78d7f94204d93a -Mac = e50d9a04f79cf9b4 -Result = F (2 - Key or Key2 changed) - -Count = 228 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 0e12df1bf17e9645c5507bc2069ca4611dc0488c9996231dbcee1c73393b26c4 -Msg = 86814ce4a867f80ce9b618c6aecce37c89851508bbb095c8f7c055f569c47a30f79abe5ec75f12b601298718d6f96ea1c1ebbe7c0cb0b7fb973ec5e6d5c6a713 -Mac = 05338bce9ed8f495 -Result = P - -Count = 229 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 51c88fd98a7d82043a1500fc3d8a66ba7ab7760467c7fd89cfeeb22dd25762a2 -Msg = 0e403cff47adee3ec5bb6b178dabfc7d53b60a04eaad33a2fedd9db705358a4c73ab2d982ddbbdc941f1c701d4cac89e5c56fbbe0f4170029ad25e931713ba63 -Mac = 38c34175627b07e8 -Result = F (4 - Key or Key1 changed) - -Count = 230 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 0feb23c7e4a19bcbd70bd300d76ec9045d696f8c9687f49ec4154400e231d2f0 -Msg = 0330ed97e44e8b15a49f29c72a7997d05d398a9d45dae41a6cc635258beb824362124691e86cb7fea46e4ab85bdf79e4eb30c492770bf6f0c42ea9bde37a0c01 -Mac = 271a7c2e687d84c5 -Result = P - -Count = 231 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 5d649799771f9074d18a2477ccd4d9e136e01451c1eb2e8bb370cb79e0486770 -Msg = d715bc0520dbb86543e76fede49dc6be2cce59d3c0db133ff31efcb63a85514fe080da88fa1e788b9e73feb0503c4142bdc67386ac0bacf9311ecada23ca7be8 -Mac = 42de9f52567b4506 -Result = F (1 - Message changed) - -Count = 232 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 4c96d520d8d5a54eb73f8f558e328d1b3e5ba360161fb8444739a40a97a58a1b -Msg = ee409b050346fbd319c8630e4bc9dd6d055355fbb961f018d3fda0c1eea6f61248f43709737fb18d4efc4faf34a96c2f73ece54200367292692e36870a0c94c5 -Mac = 28610f524d88e727 -Result = F (2 - Key or Key2 changed) - -Count = 233 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = b186b9273d8cd77d68c05ec5389b2f6e2f267fe6cd6e7cb35a3233c0dfe0b1f4 -Msg = 0df3fc6396f851785fca9aa5ffb0cd98bdecf8bbae4c82641efcb34d319e7643ca9c5e22acbde800e0f700a95685c64ccf399173f9123438dc1181b676490cbf -Mac = 8d2f69b44614485a -Result = F (4 - Key or Key1 changed) - -Count = 234 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 1b1374648d93aadb186326e4ca2b82fd37f7234712816fe4feb339a3a16880df -Msg = 9a661677f1e07153e1c9c661c91901757f5b4d9938031f01a802773d6a9863b2a169c44be0d4546c4780e828ef37f3b389f84c1a41473131e9c88bcd530c7334 -Mac = 72838b59593c011c -Result = F (3 - MAC changed) - -Count = 235 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = f70b8a4eee3518bba071af55f25f7b698a5b7dc8865cdaca6d1c7993657acc95 -Msg = 795ee1af7504621aac329f5081912de545fa11174f3979b14f11aa30df813a235b467fd8f3a14734fe5ac9e39105dcb25184673885cd19bc70ee5a53dd4e8149 -Mac = 93542734d6cd43de -Result = P - -Count = 236 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 0c456d199abae4758734f506c4e9ccdb767e4fd156d5a4085726f3938a516d74 -Msg = 78f3bf568f1c3f2866eff8a246a70cf0faee4c3078f3fb27c4bdd53312bf50812bac2280118c0396e610b4110a22406084c18283a30ce7c0e49c769817170df9 -Mac = c4c5be3c94fb7b9c -Result = F (4 - Key or Key1 changed) - -Count = 237 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = 0a8725bd8c8eab9ed52ca47835837b9f00a6c8d834ab17105b01eb4eb30402e7 -Msg = d7867ff428c37836161a534d1d697fba43e86b0096c49b63d50afaf06ec772bda86eba7222796f087c5367d1547642b974d041cb496c5cf7984e8e126c9f741e -Mac = b5d40f8633965c33 -Result = F (3 - MAC changed) - -Count = 238 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = ce9ea80e7fb235486b5f1d0321c68a0e44cd5f15e21f27c402754a2f7c138772 -Msg = c246453f5d0f4957e6418b4d17b748f5c30e7ee672b4af2e4e41e145400be94056f4e94768871849fb44c1ee65378fce32d007e0c7ee5635453d4de6b0c2aa4b -Mac = 33ae4c66895989ee -Result = F (1 - Message changed) - -Count = 239 -Klen = 32 -Mlen = 64 -Tlen = 8 -Key = f26fad377bf7d6b35d8ea2e0621b678dad85826fadd3ee684d9215086b77e555 -Msg = 63539f949990883ac4f3ef9158b382a30254023c301de9fcd3cd4faa638a0ecb241a2573a9555a5c96da2435aa02c73cfc12c10f84b565bfdea9c6274bb8d67c -Mac = 8cda222f03f92913 -Result = F (2 - Key or Key2 changed) +# CAVS 11.0 +# CMACVer information +# Algorithms tested:Alg = AES KeySize = 256 Mode = Verify +# Generated on Tue Mar 15 08:40:45 2011 + + +Count = 0 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 45b74171271e1fdc19f9beadda58010d843af69dc2f4ad003dd74b9b570d5a98 +Msg = 00 +Mac = dc0ee796 +Result = P + +Count = 1 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 2cb4239fffd13762fb5391f5a4760d12d96ea12666a793b4d651e9f4891c22c1 +Msg = 00 +Mac = 2e19d6cf +Result = F (2 - Key or Key2 changed) + +Count = 2 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = d88586da8b605a6fd5a45d316b89fea15e27ff4d92238397718e68b8e00ad605 +Msg = 00 +Mac = 8ad78885 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 3 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 136ffda3359fee8c81e6dac131256f4bffc0d3c3e74f8aaf2f979a0fa5b8ed32 +Msg = 00 +Mac = e430d0da +Result = F (3 - MAC changed) + +Count = 4 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = e1a7867476bee9928b7237ab7a3d502fbe3d2d45b6e4c41aa9f12b79099f019d +Msg = 00 +Mac = b6f00f90 +Result = F (4 - Key or Key1 changed) + +Count = 5 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 5b4d945d55dea22e37821ec396476a4bfb617d2f392ad93afe67bcfda9cd9b72 +Msg = 00 +Mac = 5076ef43 +Result = P + +Count = 6 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 23df62a79fd5866425427d0ccabf05b16590e8452ee22e028b51910926ad314a +Msg = 00 +Mac = 7bd29398 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 7 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = ce9da814595f76a7e52a1222c7c9a6579b3cc2e393ba51580ff6cc9b6ea2ad8a +Msg = 00 +Mac = ce872fd7 +Result = F (3 - MAC changed) + +Count = 8 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 507c4f32246d637fe08e454c638b014438109e1fca31f724d40ac6ec1aa20268 +Msg = 00 +Mac = 282a7ec2 +Result = F (2 - Key or Key2 changed) + +Count = 9 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 537dfe9fc000468dde29800549b1cfaae67ad89d22c8264d7eadcd914ac54ef4 +Msg = 00 +Mac = 7936b7d5 +Result = F (4 - Key or Key1 changed) + +Count = 10 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 1f57959cecbd377374477e33b34979814f260f77867392ed645998f73a3b06ae +Msg = 00 +Mac = b4b63264 +Result = F (3 - MAC changed) + +Count = 11 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 3d272b4a1a1031369aff514e2df98d580f972b5abeacc05cb1288e6e473c0fed +Msg = 00 +Mac = 18b35edb +Result = P + +Count = 12 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 8774d1acf96362215a3d1e51e1a52a980685dec4f3afd2d438c03c00c04a79f9 +Msg = 00 +Mac = 80eb7a84 +Result = F (4 - Key or Key1 changed) + +Count = 13 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = f37155beb5eed8899d9ed4b5fa21b60b40af289f090a355d5bb1aee52957cd99 +Msg = 00 +Mac = 6827f73d +Result = F (1 - MAC changed - for 0-len msg) + +Count = 14 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = fcb52c44379ae8083bdc7b827383df93cb1a7ecc21574730f9fe003b7302de23 +Msg = 00 +Mac = ccad16d9 +Result = F (2 - Key or Key2 changed) + +Count = 15 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 83e231ecf8913ebce00e62b8f00c1abbaad710142fdb912c54664169f7af0e51 +Msg = 00 +Mac = 8e393f56 +Result = P + +Count = 16 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 7d35e77450e2adf8805d5ad67de5835b2c5dccafe8440865c7e7a1501ed53a98 +Msg = 00 +Mac = c6899710 +Result = F (3 - MAC changed) + +Count = 17 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = 87143071241bb65261fe7afcc102416e59b9e46ee0c9007308f0eec10e45f6d6 +Msg = 00 +Mac = a1a4449e +Result = F (2 - Key or Key2 changed) + +Count = 18 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = d30d2d1670553c71ff0264ab861574dd03a103d954226d1b540f18fc47b3fc29 +Msg = 00 +Mac = 217ac763 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 19 +Klen = 32 +Mlen = 0 +Tlen = 4 +Key = d6983226b2c3a431abcceb77c8ec6b9bae80199115b28c5d7c56561e1b12944c +Msg = 00 +Mac = 26c717ce +Result = F (4 - Key or Key1 changed) + +Count = 20 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 0cf53b4aae3e0a209e58385dd32d9cc6163265241332c332af4de4b99b4022fa +Msg = 00 +Mac = 1bfd19f6e1070186 +Result = F (4 - Key or Key1 changed) + +Count = 21 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 5f988f38410d26d293ef32d74eaa81acca82545e767ab59dcc750a09849cebad +Msg = 00 +Mac = 7e52911c0d7987a2 +Result = P + +Count = 22 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = d8fd6e1dfcca8f656705aed7e356a576baf8907c8d10d54c833d62a8a6703624 +Msg = 00 +Mac = 31b478b4b4adaae0 +Result = F (2 - Key or Key2 changed) + +Count = 23 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 49fd56dec210e903f6c703332637f9c267eab9333e2701a16c74ce5e0b5a16d9 +Msg = 00 +Mac = c8be2b36c93684f3 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 24 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = fa282e1f3276a3e0c769f2ba25ce830591e860300cc03ab57abdb14c0374d060 +Msg = 00 +Mac = 27b8111c3d9f14f1 +Result = F (3 - MAC changed) + +Count = 25 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 1c6942e914218135496e0d7910abe67b9f7f29bb09029bb37021865d7543c4f6 +Msg = 00 +Mac = 466b7077bec98b7b +Result = P + +Count = 26 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 08f199a8d7e3ea821dd3106e8947cd2e9d485342b25a64713db2b8a650a49ffd +Msg = 00 +Mac = 796deae0d06b1bf4 +Result = F (3 - MAC changed) + +Count = 27 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = febacddf3448c7464297ae53166793e2ed962de0d0947c5e5e17abe3cc103b07 +Msg = 00 +Mac = 5e2d21aa3351a2a0 +Result = F (2 - Key or Key2 changed) + +Count = 28 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 59b9fb83b6a85f017bde6c0ff3ced955b9f343cc71b680c6b591302f52759412 +Msg = 00 +Mac = 3e5428eca10808b6 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 29 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = f07e6655424125462a96390e02bfee9d89cb271bd9bbf22a9de45f6b7e949343 +Msg = 00 +Mac = eed5aed01096226b +Result = F (4 - Key or Key1 changed) + +Count = 30 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = a04f84bd79406c138d02698f003276d0449120bef4578d78fecabe8e070e1171 +Msg = 00 +Mac = 18553226e5f9788a +Result = F (4 - Key or Key1 changed) + +Count = 31 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 1673a52494e9af02472c1777232aa3813c7c162593eca7112f34b3807009af5e +Msg = 00 +Mac = c5907fff58c68ee7 +Result = P + +Count = 32 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 1e4ffbed2d5a7bcda5e24a66048660629d57567f83307087a846db8246ff332a +Msg = 00 +Mac = 29599bc212927246 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 33 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 8b80c24ab4a3c24ced82ca8c69924553a37a139bfa2541c59e15188ab0fa5a34 +Msg = 00 +Mac = 299746d93b0b4881 +Result = F (3 - MAC changed) + +Count = 34 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = a00ebf59768f6437b48a91923f5effcf31c745b980f79f2edde9ed18dcf2ffa0 +Msg = 00 +Mac = 61950ed83db6bf74 +Result = F (2 - Key or Key2 changed) + +Count = 35 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 319d3f58fd7257901ff364fa68b86b1ba27c11962b2c5be8e33eb95548444322 +Msg = 00 +Mac = 26793e8f8d5eb7c2 +Result = F (1 - MAC changed - for 0-len msg) + +Count = 36 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 015a9d1f2df2c31f14cfbdc0bd68725fe8113a024f2a43312d963207fd6f0d88 +Msg = 00 +Mac = b19fc2680b8b82b7 +Result = F (3 - MAC changed) + +Count = 37 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 003cff344c4e1932ac628440d819eaaafcc3ebe7c525cb7abb7a6716d2b76e05 +Msg = 00 +Mac = 48a98dbf16257142 +Result = F (4 - Key or Key1 changed) + +Count = 38 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = 1a581f36e1816d346f7bcc6df78316aa353111e447fee6f0bd05d562f30626ab +Msg = 00 +Mac = 587155c18ebbf8b8 +Result = P + +Count = 39 +Klen = 32 +Mlen = 0 +Tlen = 8 +Key = ebab54c4a22a16f7d9546bbf682b995a6ce944e949f1920eee058db95ab9c93f +Msg = 00 +Mac = 067927f063adfaac +Result = F (2 - Key or Key2 changed) + +Count = 40 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 58405ef8fb69e88221edc10a92c01cc44255aa7083096adb79bec3a8cec6d050 +Msg = b4aaf9ad1bde60a8d7e7cb16c1cf6b713df17d1507b028973068a95963a5ad5b +Mac = 42ffe65f +Result = P + +Count = 41 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = ca0f404e3389e9527135f53eb58bca7726266b8086d33fb512e8143daad7633a +Msg = 8f2a6b2185f73372ccaeaa7f93d30d1ca80a451ee0e46ccbbaf98c8f3f37aaf1 +Mac = f2b311b4 +Result = F (4 - Key or Key1 changed) + +Count = 42 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 67b896b88f07962e08471634ab7e522144d716a2969bde55a05c3c931f747a8d +Msg = 0218eb619dbbde2e846218339aee4383792856496eb3b85cc43fa81446fedc5d +Mac = 69db1949 +Result = F (3 - MAC changed) + +Count = 43 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 422994df8766f7a6a7ebfa2ca57ed6189d9e9e8455c8715c14f3f407b75dff4a +Msg = 12f0c45d06a138a964fb11b2d450620a2977bcd2952afe371cad6e3d48b009bc +Mac = fc5f1ccc +Result = F (1 - Message changed) + +Count = 44 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 3291be3aecd2e06cd2ee61a14d723450043d450567cbb0bf88ba32972d86dca3 +Msg = 343d5a4ad39acf81adcf24e9807618932abcb3bc076734f179174c77c8cb89e9 +Mac = 3593d615 +Result = F (2 - Key or Key2 changed) + +Count = 45 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = a1885ce431cedbb60f7b3d96a06cbc60a964df156ea4b4191abc5a9f60a0c361 +Msg = eedd0d767a25b24ee25fe747718256af51d7b4bfe900adc069381a71a2dc7aad +Mac = c558f768 +Result = F (4 - Key or Key1 changed) + +Count = 46 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 039188ec58fa55acde53c337fcfd0013f0c6efa55c60ce470112159bcaada11e +Msg = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354 +Mac = 20d3639b +Result = P + +Count = 47 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = f7d946f66e1cc4e5a79dfb5559cbea5a128545eac38e17ee7f3bac9a806faefa +Msg = f250c49f9882f10db247adfdb2112c2589e1011f77c48e0f219dbf85e326f8a5 +Mac = 90b4bfcb +Result = F (1 - Message changed) + +Count = 48 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = a61f586ddbbe0219187f8f446d4b172f5e9bf855d1d5d6592ad8e03eb4d555d6 +Msg = 71c8eb0079559a306e236c49b7ce1b6cfe26c7888733eb7ec07690831a72c0c5 +Mac = 78ce0135 +Result = F (3 - MAC changed) + +Count = 49 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 7774802fd82fe96c05431acd40b49b1160d403c0db09b10f23d0bd0435022edc +Msg = e75b6ca1b87e775b33536979422a1cf743f58c71b1599adb00050972c843cdf2 +Mac = d885703e +Result = F (2 - Key or Key2 changed) + +Count = 50 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = c4261ebb87a76aaa82a00392ee2e2318f0b52d5f2724e374847ad9ea5c8929c1 +Msg = a41bb1f256228302cd0548ae2148ff42774d18c2d6d3e38b36bc4938da13bac3 +Mac = 857d8909 +Result = F (2 - Key or Key2 changed) + +Count = 51 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 6219c19233c1b91d7785fde3b65df3bd2e1d74331ba62e4d365947a77cd243c4 +Msg = 68f17b9f57734784144112c79bf360ee324d37f9a7718137d954b15e796fa9db +Mac = 0e85de57 +Result = F (3 - MAC changed) + +Count = 52 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 7e8cae1374d3a21bf2dd3786754668f17aa63dd5e3654cff9dd18041806d1968 +Msg = 2d335be62ecfed45183f5a04014c1a52afb7b918b9cc1f2be93b15c6e5240537 +Mac = b56ee72c +Result = P + +Count = 53 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = c2425ed20cd28fda67a2bcc0ab342a49d79d6b4eb196266cb0d116fc18895545 +Msg = b5f24c00cd15e377f444ae55e02b335379e7ae14e7c9bd05f0575d8981941553 +Mac = 2e44c573 +Result = F (4 - Key or Key1 changed) + +Count = 54 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 1f7871680bfa59a8a178604dc513b51a3d4c682cc4c421de594512e9dd062ad0 +Msg = fcb43224bf8989e1809d90481ba043328febaf4b6c1c05d18800ed98f4b71c52 +Mac = bee03b92 +Result = F (1 - Message changed) + +Count = 55 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = d8a27558d070214d3f765cf969b2b8f09c0b14ebc492cb2539072b04db9f29fc +Msg = fc69a1f0d0ba8eca9e7c0570cec9c76b511c74b2d8b65928444189675eb42fbc +Mac = fab3b2f6 +Result = F (3 - MAC changed) + +Count = 56 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = 72354b455230b72a6dbfa5cf6c3726d7f8e65ca773f9d469e99d165743657b36 +Msg = aac60835c309d837aacc635931af95702a4784c214283ebbfb43c4e29973560b +Mac = 69519d9e +Result = F (2 - Key or Key2 changed) + +Count = 57 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = ca92b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20 +Msg = a96c4d5c89a364263c97a453308b9360bc0ed868602b9ff54fe13f162ad31ab2 +Mac = c59a1a39 +Result = F (4 - Key or Key1 changed) + +Count = 58 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = aa56f98e03f559eea02ad958e125f2312ff97bc3310079ce437b383f247a9b3f +Msg = 01bf2aa8dc66ca44d16d4567f1adddd4461f78706ff15cf68ad937eb57aa62d5 +Mac = 31171cfc +Result = P + +Count = 59 +Klen = 32 +Mlen = 32 +Tlen = 4 +Key = a0e317b790870e6703e6077dfb8ea327c12e29a17107284cb89d5effddb2d9a1 +Msg = eb4ea6b72dfc6657e835bf82054796183330c02a8db3c5b179abe37fd0a05675 +Mac = 05d54199 +Result = F (1 - Message changed) + +Count = 60 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = e3de27949ff64066131c81bfee172b308f9bb0b31710678ec394837b79434605 +Msg = e41557341e8dae33568524f3f64b23426044c9db3526463ad16786af14f611b2 +Mac = 975ad1d2fcff6a85 +Result = F (1 - Message changed) + +Count = 61 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 492dacdcb4a35fc438a6eaa35e26d2f683a1e85e92df28f213dfe1da6511161a +Msg = 0515ad7b8576258645d37b7ac771745620e2e9e009cd778f34ed77a7dc5c30a6 +Mac = 9f43dba2aad2f539 +Result = F (3 - MAC changed) + +Count = 62 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = d71c50d55850d432cd8c8ff4ea427b3f19cbe14c785a7704202fcbcead0de5a5 +Msg = 7ffbc4a09583029cbb0acb6b13f08a189033da22c2ecf921f01d79ac68a9397b +Mac = 5d00ffc5f8cf1ddd +Result = P + +Count = 63 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 557eb2e709d58915a8bada6433f2e5660247e0cb1588ea84a9d24028090eb396 +Msg = 003132645e3026f6a2b9d0644c16e5e4d1bf8b53a51f0e1b999bd45a67d19341 +Mac = 6f3d9f50d09476ef +Result = F (2 - Key or Key2 changed) + +Count = 64 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 351d779277148ab4474843cc798942cacbe863eb1c1c9338dc25e251c12fda68 +Msg = 34bcdd3d0469c01d0d95a85ca705d887385bfde20596a90b47d902db826dbc8d +Mac = 79ded259f93456bc +Result = F (4 - Key or Key1 changed) + +Count = 65 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = e1c17ce3d3c61468a7652a95128bc0f6c33d9ccc46e7490327f15f645a94040c +Msg = 97829c60ca9a71c23eaf1c4b4fbd72043037ef0cd356b68e0db0d4f0f50cc54d +Mac = a93f0d16499f63ec +Result = F (1 - Message changed) + +Count = 66 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = a9a86a4407b7ecebc89434baa65ef173e88bd2dad9899b717ca578867c2d916f +Msg = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02 +Mac = fe84ce3defe00f67 +Result = F (4 - Key or Key1 changed) + +Count = 67 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = ed14373671cd8041e00874b5d098ea225eaf9c68bb51cecbe8083149bdda062a +Msg = 38106cdc72b1ddd0fe11f23819096dd7479e95ee9730940c28f51e28eca653ed +Mac = 470404ed731640a7 +Result = P + +Count = 68 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 009f47f180e085776be6644aeac0070be64c289f84a7ba3dece7cdc54f0db354 +Msg = 2eced43c084a86f89f61e7237425137c167aac29e4cac4071afafd3f0c9dee1a +Mac = f67d432e5b6fc5e4 +Result = F (3 - MAC changed) + +Count = 69 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = f250c49f9882f10db247adfdb2112c2589e1011f77c48e0f219dbf85e326f8a5 +Msg = ce61d6d8de1b299c9b063d1e1cb1faf7a616faa7c6673d7f9c0a1ebe7ae285fa +Mac = e1d950593abc14e4 +Result = F (2 - Key or Key2 changed) + +Count = 70 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 001150b2dd572288b6fde466ec2c2a64c75a9d516b7096f7082bec9f52c20ad8 +Msg = 6dc38e37d1379732df4dd535db88d17aa59d7cf9e8d60ae695b4047b90d899f7 +Mac = 2de6700fc1562ad3 +Result = P + +Count = 71 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 68e00d394855b6697da8213a120dc2213b3a8a1e88c9b93f5edef465a809974a +Msg = d21aed2073e8ae9c0560f9dc1adb961d4f959fa12c0384a44c675192bea13477 +Mac = 9594f10d5ce5e616 +Result = F (3 - MAC changed) + +Count = 72 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = be0f6052baf658a3607d999b81401edf7e2afac2b143e1b908c8ea0ff38193d9 +Msg = e502f0b4710bfe517e783c4bbb85055c8471b04e12dd6776f276367fb5d36369 +Mac = d409a879dccca77d +Result = F (1 - Message changed) + +Count = 73 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 7147b3c5ffb2660c45cd8d78a6fd44bdd5ba75349642b32ec88f6688a287297f +Msg = cebe84df789c98dd125bf43cd993e2f089611b98d10be04904e2468d116dd2ab +Mac = 21cfc1e6c1c38df8 +Result = F (4 - Key or Key1 changed) + +Count = 74 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 205e751926038ef940c6599d84a9e1b4737bc826e9fcde544d43f2a10b5de931 +Msg = 86ffd5bd3bd1cae10706a61d247b2257b165f37cb53ff21761077a2295a9111b +Mac = 73d66ea826b84fc0 +Result = F (2 - Key or Key2 changed) + +Count = 75 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 8c8a502eafcfbb813dd1ea907b1660a41fcaa3f905aa93c22320f96ebfaf632a +Msg = 626aed82974ef29a1ba0a6c6fefcbf34ca982e6214835183502f6a24ea2e500f +Mac = ca3d007ecd99be83 +Result = F (3 - MAC changed) + +Count = 76 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 596db502a357e102566291b916b32b8a09e99d3739f5e6543a2cd8fb0c9a1cc2 +Msg = 22bade59214fa4b933cb5e3dc5f096e239af4c2f44f582b095c7fea6b8914bfd +Mac = ff4ec21d89d4762c +Result = P + +Count = 77 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = f51f2fb4b3fd8045b70d34b600a2697cbf7503be0d8cfb5cdc60f9312e3e2695 +Msg = 4d43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c1149 +Mac = 3d615ee77043d8b4 +Result = F (4 - Key or Key1 changed) + +Count = 78 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 80a4b14f951490618ce53d39abd3d786b425d4f76b26a25052d98ebdb7e9e666 +Msg = 0b2a77b0175ffafee40cf83bd19e785dc7ec4319786c49b3e7a741142aea901d +Mac = aedcaa2e26d2f5a7 +Result = F (1 - Message changed) + +Count = 79 +Klen = 32 +Mlen = 32 +Tlen = 8 +Key = 39fb57fadff7cd9e1cfdba154422b71d693d08807d86da46ba63c929417ea549 +Msg = 567c7400f190d06e682b3dac5f751639a9007362b1a2a8b618800fbb9f6c08df +Mac = e29461fe8c6b3767 +Result = F (2 - Key or Key2 changed) + +Count = 80 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 535ed61510eb268100be032b7a258e84bdb32448269d3000a76444ca74b4695c +Msg = f7f28df82f910badc5f4b3860af28cbb6a1c7af3fafa6dae5398d8e0a14165def78be77ee6948f7a4d8a64167271ed0352203082368de1cd874bd3b2e351b281 +Mac = 4a0fd541 +Result = F (1 - Message changed) + +Count = 81 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 713fd349c56d1086794eb20ed59ddc89b065bb8533b968c6dfa60bddd16646fd +Msg = 4f3b91aeaaabfc7d4dd6821549d4eee2ea17f59aa196c67b422be2d46f3a2ec65494464c969b157985a6a30199a72dfb1c0b7be524e16ee9c43fd95e83e19192 +Mac = bd4eab1e +Result = F (3 - MAC changed) + +Count = 82 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 1f89d9ee93294aeaf3503d15a6dbef48708de48897a72b3545b9e3852eb7fe31 +Msg = ea0608b19f47676f0f342cc2742e003a6a74fa2850f41e0cf162235163887a3830dd8b13b45842b3c686ca239bdb9897e646ac9f440713a0d8c5b18532db3db2 +Mac = 8bddd404 +Result = P + +Count = 83 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 2b50dbe8a5ed0c7cb69aa60a38d10cfa4553c73d58c0ce84b26504b0fd55038a +Msg = 2586563b0102f662b5a8f9bfb0c1d107a4c27569d27bc066889213e3e830427ceafaae1ca543aecaca7f34c671fbadd518cc28d9e806bba43b2e220e5cf1aa45 +Mac = 987514d4 +Result = F (2 - Key or Key2 changed) + +Count = 84 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 29a7ed3aa55c7eb7e5bf343ca0efbf8b2062ce67b086255551a8efa0ae16569f +Msg = 2e6f2d21aa133a5061622f08ac64c6b3a3dc8154862033055c27c3a3d9e42dc885d2c9f91bd1d0212f301c3e140b2f5bfdd777be623bd162a6214ba8f60e2e49 +Mac = 1bf45457 +Result = F (4 - Key or Key1 changed) + +Count = 85 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Msg = 65916ae3d88ab2add5c0c6910ea993d385cbd35c5077ea0d9db30e53f378abfcbb1e0649fe14204470d4dd53ae16650ec444cb4ef22fed86b0009b57ef71fb5e +Mac = 578f80b2 +Result = F (1 - Message changed) + +Count = 86 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 47e49e5b57fbb834932fa32107697471119f1be3c3a6e71a8c474d4b1596e539 +Msg = b3cec7ad75e2bf6c87029a67365aa83cf797ae2f4d42e720ed4c48ba21ea08ee6aa3609f69a6909fff6222dbb45172d255146e4ce1c59b48a7895936a8646766 +Mac = e6e64597 +Result = F (2 - Key or Key2 changed) + +Count = 87 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = f0b0aaacc25a791c236aed0e9b537fad00a15efa9c89b5068ac52c64639fb1de +Msg = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c5aff71ea4069224cfbdd19ae3f0ecdfa65c27dc3bed721712784a09fdde243c193ab6a0ac2417e8d +Mac = 990bb31e +Result = F (4 - Key or Key1 changed) + +Count = 88 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 14db1ffc1c87117fc72981706c0f90404acc98aabe950839baeb6f0b727bd6d4 +Msg = 3d736aeca5720f5c7bbb16df61f6d785facfa070aaa89c2d9e8af9450d62490ebd6a29c7c8e521e4a00fcca7515439f006c09056cfb7f976a1e6b98b9f799e40 +Mac = a6786e52 +Result = F (3 - MAC changed) + +Count = 89 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = c6f0a3692c9280c48393b0dd763e5d0b90477f34ad69f192ae4dcab771aeeacf +Msg = 8439ff717e1e15161119494d368d7f3812601588265bbefbc6d48e22cc8a51688dd021500cee38fe6ec402f9aeb0762f92b2a73adece96e1c7b24be2aa9924ef +Mac = 70126cfa +Result = P + +Count = 90 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 75225a26d63e91281fb37ace46354f81de99dedfde8b770ea47f08503aea87d8 +Msg = d729d8cd1631aacfe485b1f408a4fb60256e7a8ed6e5b53afc34be7e57f1643b549fa9ba2677779318688ece225cc149babd6259ec37fbb4adc03e8f6dd63f03 +Mac = 5112f762 +Result = P + +Count = 91 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8fa77969539152527e +Msg = 5251a0aadbc92b76705eb053d09b25b5ad38eebabfe1980d143ac90aa81f7723353059824c8d9befa5ded6f5b4973f407c7a1f4aa85d8337d82d34fd3933e9c7 +Mac = 52f7a014 +Result = F (1 - Message changed) + +Count = 92 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 6906d6533fbc33f56e38e6a639798005daa228ebd2fc8f93803d26fef30b8e95 +Msg = 6341370e126097f9721a13c977eb4875cf1286e15c3adfa4e7597e0e13d93b6a8ff66c809067fd5e7f40c358ee170d4ed1657c2deb3015b886e79589678e0452 +Mac = 1b6a021e +Result = F (2 - Key or Key2 changed) + +Count = 93 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = cd9072aeffebbdfcce95b569c34158d0e130ef24dc99e3f98a4dd246949be269 +Msg = f882339f93ff114bfead78044aab1c7fe109dbf1bb2d968ad476403fdd2034cd3168ccfb0cf02f1ff7646ae3875ec349478749edf300b08be7005cc0d6bebc15 +Mac = d16bcdc7 +Result = F (4 - Key or Key1 changed) + +Count = 94 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 3005c0100dff59e5e4b0e3b95abbbc79749dc49ba29a79b1fcf7613ecb6aa9c8 +Msg = 4c2c670f3ac1c4e33a8d43063c8983e20f1ce6a73299fef1e70a42a5882c061b1ebaaa8330ee1181d946541b1d84b8d57df8de1ac9013ade36d2c682b172f8f8 +Mac = e5689100 +Result = F (3 - MAC changed) + +Count = 95 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = f32eefb301356fb1cad6dfa94864542b5f8cd8e98438bdbfbbb431f0c10f12b3 +Msg = dae6db62842a8a25123e50041b701ad17e2f63a0496443c3d905a9f943e6e4e2f3d369b693ddd0372ff11fe496af4b700378fc72fcc9915e7bc864b44c1d4f77 +Mac = 280624c3 +Result = F (2 - Key or Key2 changed) + +Count = 96 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = b0212ca369c611b725eccc3daa58df412787a3475f418d820971af46773382c0 +Msg = 13ca022396285bf7b82a600b560208c54ee14f8496bce684895029027e6451a09f4eeb0af9b889dacfa4b7b934ae30c7d991523e23edd0528048a75bfc525335 +Mac = 8e9759db +Result = F (1 - Message changed) + +Count = 97 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 57a9d1ea216c69c6e360221f8c858a9d356598a8b253e2cf67f1116b5df5927f +Msg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d381082f379b2cae385dd526b189cc10cdebbd33bf3d8db2b449ed49064d30d4b3a359110d +Mac = 41022947 +Result = P + +Count = 98 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 749f2fb720d321757473afc5d3a377a0eaacb425e5591026e3a1bae6a785b921 +Msg = 2e4f5149d67c955c409b63b04d95538808da6202e69a50ed4d3846da52fcbc76c7089a17758d9d94a63efd5ae7054dbc0bf5a28b7381f7e78debd0549bff1e11 +Mac = 67b34b0a +Result = F (3 - MAC changed) + +Count = 99 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = f8ebad761b9e73c77faae3fd9390093fef595e77e6d7f6b35e2dfccbde925c44 +Msg = 18430f34d5b5fddbd228a910cab9c48e1ba2b5f57819eacbde756cc0c993b736a778c8008d37776a2915077af8ecfc76b8cd2ca621e9195bd0b27e31843d2890 +Mac = 7a446398 +Result = F (4 - Key or Key1 changed) + +Count = 100 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 5bb9fb83b6a85f017bde6c0ff3ced955b9f343cc71b680c6b591302f52759412 +Msg = ee7e6655424125462a96390e02bfee9d89cb271bd9bbf22a9de45f6b7e949343def818dfc93d777528f609cd38be0a013b1eef816eb1f9593a850bb7aec5b9a7 +Mac = 5e1fa5b9c9dcd90e +Result = F (4 - Key or Key1 changed) + +Count = 101 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 57a9d1ea216c69c6e360221f8c858a9d356598a8b253e2cf67f1116b5df5927f +Msg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d381082f379b2cae385dd526b189cc10cdebbd33bf3d8db2b449ed49064d30d4b3a359110d +Mac = 430229471a1cf1b5 +Result = F (3 - MAC changed) + +Count = 102 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 749f2fb720d321757473afc5d3a377a0eaacb425e5591026e3a1bae6a785b921 +Msg = 304f5149d67c955c409b63b04d95538808da6202e69a50ed4d3846da52fcbc76c7089a17758d9d94a63efd5ae7054dbc0bf5a28b7381f7e78debd0549bff1e11 +Mac = 65b34b0ace2fc6bc +Result = F (1 - Message changed) + +Count = 103 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = f8ebad761b9e73c77faae3fd9390093fef595e77e6d7f6b35e2dfccbde925c44 +Msg = 18430f34d5b5fddbd228a910cab9c48e1ba2b5f57819eacbde756cc0c993b736a778c8008d37776a2915077af8ecfc76b8cd2ca621e9195bd0b27e31843d2890 +Mac = 7a446398a5c59ec6 +Result = F (2 - Key or Key2 changed) + +Count = 104 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = b228c753292acd5df351000a591bf960d8555c3f6284afe7c6846cbb6c6f5445 +Msg = c66d322247ebf272e6a353f9940b00847cf78e27f2bc0c81a696db411e47c0e9630137d3fa860a71158e23d80b699e8006e52345fb7273b2e084407f19394258 +Mac = 129e40ed97c02ff9 +Result = P + +Count = 105 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 8ea05a5033ab8b009664fa2800c24e217488ce6888cad14774ad75b2696e9470 +Msg = b3f09d990c2f41c8707368bba007803621ecd76540cdb8705435d74f4300eee04710a936f241c034709e625b0dd5dae1f6e86d034426819c365a05f5be420cdf +Mac = 08e5d5b3facd3b01 +Result = P + +Count = 106 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 016b5537198ed152670c5fcfb70ade276de97ce0cb771c5f6f66fcfe1dfd945e +Msg = 7ad591e67c6a3ce3c9f871e328fc4ce3b6e7048e80691da551efdfa4c96b06a3af53bb7a88ecc32869c8f776098df4d71af91393da239c24e50436e04d35a2d9 +Mac = 36df9931a14dca9b +Result = F (2 - Key or Key2 changed) + +Count = 107 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 22d5d4c3a3aa8d2fd5f25c08b83cea60e94058e8235ddd050646b02617f82854 +Msg = e86dd3216500273d0b6150227cf03adc20c8a5fed4a2799fdff759a327657a3ca554b6af16d9dc5cf3db4bf9a474bf1ef1996a06b9fe4794e634ab94a0141d44 +Mac = f0246b4959d2fa89 +Result = F (1 - Message changed) + +Count = 108 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = c892b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20 +Msg = a96c4d5c89a364263c97a453308b9360bc0ed868602b9ff54fe13f162ad31ab20f3fc51bd2346ae68a006afb50e846e8431dbf7bd0eb3c8f30326d26311a2eb8 +Mac = 1d943a8b0c470221 +Result = F (3 - MAC changed) + +Count = 109 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 2c87c0d64806fe303c5e97bccf48360f89374b6119319bfaf8defbe74adf58f1 +Msg = 37c6206e23163c39a13f19de48cc25dc26e6f83cb376e8d2048ad7c141fa503d594bd395f4d36c70aa1e8a5672910f735d4da49884574f833ef54760975b0790 +Mac = 58cb614230d590f4 +Result = F (4 - Key or Key1 changed) + +Count = 110 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 028600eebf6b3eb04d8fac18399965aa8fb5f3954d3a657e188ba17f2e3bfc70 +Msg = 5b80d1cf745b14cb71cbc8dfe0bc7c7358f721c00099b3e250c41c2e1c9455c5ce55ce69f3f31090f9b1a1b7361e27f92d46d1e00d25f37b7b61f0b191385dd4 +Mac = 02587102e6450de1 +Result = P + +Count = 111 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = ea1a626b623e9440e3f6f5c0b8b63b9967374ee82c1957fca5cd195ccfb2840b +Msg = d082b2aad7058c3142021457d47d51d8ebaab62ab452f6039e771a1b0f3bd03355fe0656dfc7b75fade505bb05d689706867e75ec41da5c5ebd43d0844a670b1 +Mac = c874df0a8aa87c5f +Result = F (1 - Message changed) + +Count = 112 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = d1155265fe296f374366dbd11f14466df1ea210cc88b0d1876509347e64815c2 +Msg = 3e3d3a464b2e6030be877f8db4c1c42bd2b8247adcf792ee833675a57f21594ade5be4399cc30ce373f68874f41584b4d7c8992b9082fc892307f645382c9483 +Mac = 6bfdc96378f0c8f2 +Result = F (2 - Key or Key2 changed) + +Count = 113 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 9bcf914f787fd3cf62c6315a12feee358eaacf1f63ac802932b933c86b098a29 +Msg = 02c8b892b13f04d99b875b8aaa32136d19dd6b9c2a10d8871c66993a57ee91e3ebd0568e38348634ee5f5af4391f7da0356a1e7ba8424441f0db61683a002ba6 +Mac = 365da451a2787193 +Result = F (4 - Key or Key1 changed) + +Count = 114 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 35d5df6d714e2ba5b307c4d1908e108bc6fece682a23aa35e2de0e80d4cb3c5b +Msg = 963ef1899cff6e0a6dcd80a27b63c20fdb8e9fa1ee3e14ed40ddb7c6b0dff969d29ba8f89159b82a19ac4240f402cd3b7279cd4c4ff4698c906f81edae8ff070 +Mac = 33995a3d9c470cf4 +Result = F (3 - MAC changed) + +Count = 115 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 511ab5e28b6fda481fa5a0fb3709b249fbf29be56346378a4d3f67e1cd6f09a5 +Msg = e4cbbf14f27490843b0f9a17b4520d4bb2c89726f4c788cae4a3344a1a2198bc222e41907fd16a20ef5f6587f1ee3cb7850b97c633b0e0894e70a6647af53f60 +Mac = 3b4aacb52525b58b +Result = F (2 - Key or Key2 changed) + +Count = 116 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 5e79f14d5f687ce62b82f856695af9f7dd350543ec763de75b593f1859e44c2a +Msg = c0dfcb62fbc3a67ceb792b3428d040ed5e50999296702472b709a44f4c0b9bb1876f6e80866cc4d2d6ee2f0236440e029d18b2f27ea5bff14a24d53337877053 +Mac = af30acca71feba3c +Result = F (4 - Key or Key1 changed) + +Count = 117 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = cf8a477434cc679e52dc3f3f3520eb108239dad5bb363034bf0768c790343e70 +Msg = b891b1ab5a6919e0b99013e40fa7c910e55a480bd043d3d85b0b7d1342d3f777e1d2a6a4eb3ff81f5f71f99bb845217765c0708778f5be17a2294c2d5f369e0f +Mac = dc10e268f5f73bbc +Result = F (1 - Message changed) + +Count = 118 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 67d77f50727c7cd5b38e0b175a888c88687c97f2ccaa3daecc519116a7c5683c +Msg = 02c5c55e7677c84a199d6e534772123c4e5c933622cfa8ef536e74cb3d745b717f53138aae9bfec54a1cb71ff04feb61d2f26aea65f37dae598f7b7fcebb978c +Mac = 885050ec166faef6 +Result = F (3 - MAC changed) + +Count = 119 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 0091d39f3478d2c59bf874b96db9ce0f7e8b85a9b805e07dc96b219819d51663 +Msg = 7207aa8fa87283f1f57019bf1c89645ff8fc36ab1102704e6d577671a9f7e098482573c64ab24fe8007c697020353c411566bccb98b38c7784607045e61405b3 +Mac = 96f639a86a2d698e +Result = P + +Count = 120 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 0e6d99ee5137c8f6b9bb45a961be8a29358a91189cf9974f5bcf20d3b64c3b04 +Msg = 543ef4638f1322131402172d193bd304b34e3745ecedb9db16f35c0f5fa6 +Mac = 33f10660 +Result = F (3 - MAC changed) + +Count = 121 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 82421ddaaa5767a496f2b78f816cd1e1e6699f6e9e6576c34c909ba5f8dc06ba +Msg = 4e2f0f91990b855a00d27fbb2e8db7184cd82909de361b52e7a75b16547d +Mac = 3f5ed151 +Result = F (4 - Key or Key1 changed) + +Count = 122 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 134f20cb62084a98601f0e69d257fd2064beb47248caa79720a71d461ed07ce0 +Msg = c248fa87a6e48cdfafd1e5ac00f95fb1dfda861465747265796654dcff54 +Mac = e7b21645 +Result = P + +Count = 123 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 98505229c1927d13001b53850d0b7d56f49087afc6c2351190cc1b998e4d6883 +Msg = 9bee2e347f763c5c506876bb514b5ba1248abc6b3d17cd4c96537d4ea432 +Mac = 2c212c7d +Result = F (2 - Key or Key2 changed) + +Count = 124 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = cad710b48ea0bce4a897482a535aeeaeabebb42619578a9d1296927301b3bfa6 +Msg = c1db23e776272765a0fee49edcce28ff7702b9ff9b6e31a4c3ed0c497248 +Mac = 7f27420d +Result = F (1 - Message changed) + +Count = 125 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 0bbf4f77a9883733590a3cc7ee97f3c9b70f4db255620e88cd5080badc73684c +Msg = 7ff9ca86f820e4d57995d450611009ffaa726e6fbe4ce1558ca1e775daed +Mac = b2e5a268 +Result = F (2 - Key or Key2 changed) + +Count = 126 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 6efabed650ce05ff22b67768e3bcc88c7746952106ecea92a38707af2b8a64a4 +Msg = 9cbce402511b890c8c9fa215b59c813b3e51b5dce01e776327f145623002 +Mac = 03728e46 +Result = F (4 - Key or Key1 changed) + +Count = 127 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = ca2843847a1c9539917206d344161dc40b379fd45dfa6a73ba6fa14defc40920 +Msg = d9365304c4363fba73feaa69d4cbb343a76eb2d29de6782ebb34d873006b +Mac = a94841ee +Result = F (1 - Message changed) + +Count = 128 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = e5a1108da9cf587bcbdf051e216231bc27f0e6c1e97729b324d23768a89e0e77 +Msg = 536d4b6182a698d456e1fd9d522aab38cf05656f41a5e02cbd5e6f8cb85d +Mac = f52a4ba3 +Result = F (3 - MAC changed) + +Count = 129 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 008ee06bf9b19536190e87820af9cdddb40aac44b0c3b1e50074fc29fe5cdff2 +Msg = c1eb4c800c631d9f387d2e8e431677b7fc8f65235ad0cf9b118d2b0d67c8 +Mac = ba255bd7 +Result = P + +Count = 130 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = ba0bfda3b03c736c121cf9a257db55060b621be5168619ec4182f13ef6a408c4 +Msg = 69be384eb107340d953753e6a860ea2710e662e8953de8eff8f465d086f3 +Mac = 9f650d24 +Result = P + +Count = 131 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 7a88524accb59f1c6307a1719a011eff211df24645086c67710ef539f5d3f29a +Msg = bebe346356681f27bc62f0b838a25268e3b04194b865bf83eef2c8928625 +Mac = b2566e6a +Result = F (3 - MAC changed) + +Count = 132 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 9c956d7bbe2028739d73a2f0a80af5f2f180de923d5571e65bee0b25b5dd890b +Msg = e0d2ea49e3e4a5823efd1b229c705ec3bb5048a7658f10fba2671c5d2cf9 +Mac = 480a14ab +Result = F (4 - Key or Key1 changed) + +Count = 133 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 2090b970a71ce2cf399a0d9e1d3d72c4eb500004abcba1303b24bf9af16707cc +Msg = 0e0ef2cd18533bee01f19870f2fb22176c7e04748db4dcb98f7a65cc9104 +Mac = ddb6f30c +Result = F (2 - Key or Key2 changed) + +Count = 134 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 66921951731e95bbd45c014af5cf623933350dd9a90d1a36465716f8239bf887 +Msg = 0de1e090eb47dd4fca966e5f8fa5616618701164370d8a43fae2eeaf3016 +Mac = b91b3131 +Result = F (1 - Message changed) + +Count = 135 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 43c1142877d9f450e12d7b6db47a85baca7eea7fde595393fb394c1f34369aa4 +Msg = 77772e91be674abb0f496b47dbd632e5616177a0d16a8c11b271c2d38108 +Mac = b2de16cc +Result = F (3 - MAC changed) + +Count = 136 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = db4b6206d001af121051cec70195055fc1fd0dc06ccc74549bc440152aded5e7 +Msg = 94394feda0528fcc67124dd1d77f0ec0b911f08c3e01e0c0dbc40c1d57d2 +Mac = 5f72de94 +Result = F (4 - Key or Key1 changed) + +Count = 137 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 4d658be9cfcdb19f79abc78f4d7f986d02b43a03098b37c8ca56ebb331e62d51 +Msg = e28660f57b044a44a19ca40ff7b6469a41523e8d1cef22f4edaba58917ab +Mac = 11fa4d1e +Result = F (2 - Key or Key2 changed) + +Count = 138 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = 70b4cf3883fea8c6cd852a4293c7e5cb0586a6cd71294883b760cdbbfd07aeda +Msg = 4cb9aa069475e54b25e5688a52dd4acd134169c858105f01a0a1b134c72d +Mac = b6b60815 +Result = F (1 - Message changed) + +Count = 139 +Klen = 32 +Mlen = 30 +Tlen = 4 +Key = f75bb63d52c35137448c58383afe47e026d536f67e3afdff87f29b10d3d6d9e0 +Msg = 4259e4fdf10acd8da40accd6354f4baef4859a2f5ebada0d2c5b1b26905f +Mac = 336ee1e8 +Result = P + +Count = 140 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = c938f6bcdeca02939fef931c969a25edcc3daf338d8286016e3c7ee78f9d52c7 +Msg = 47179ddaa9d7ef6b9a53c646325c80db69128c6fc4f92ccd345078383b9e +Mac = 5cbd65df0ca36898 +Result = F (4 - Key or Key1 changed) + +Count = 141 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 9540e4bdd8c7ab99f0b76dd9de24c340a60f7706f680448509d5dc35cb5930da +Msg = 4715a9a66d10b2dc1869d90fcf9b7fa99e91b40abcb8fc356b5853c92024 +Mac = dcbd4dae7cc60d46 +Result = P + +Count = 142 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = d5c396fc1ee960215e57cfeeea1e792fab9334f2c45dd93e74cc47023e6daa4c +Msg = ce188965b4d347a6c36a6fa5a47296b32ff0fa27311266b16b1d56ebdda7 +Mac = 1684fadaea17bc79 +Result = F (1 - Message changed) + +Count = 143 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 897193cbbccbead9957876b8b42a77b404aed32a3f63bb9ab5f08cfe4936f35a +Msg = 87767f13bb4904d0df0d64eb22c9ddb65e81b5739baad86ad5e2c239ffde +Mac = 84ef6f59b770d42a +Result = F (3 - MAC changed) + +Count = 144 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 86aa015253a7114e1770b6a48fdb3ef22e9d5abac25fdc145315c09f4e8b69bd +Msg = 2595cb8d4d6aaa148596e8502ec80a030d82195f9e1d9a26ab0ec0101e67 +Mac = 63e67c44ecc05dab +Result = F (2 - Key or Key2 changed) + +Count = 145 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = a082c12e97bddeb0c74c13aa4ba788f8a127c44fbac6682050271dbf7ad6cbc4 +Msg = 7fc97a698d7b0eed7d7602a5d13e956a538c71c4b45978a47439c05601ea +Mac = 3e1fe077fc7e903b +Result = F (4 - Key or Key1 changed) + +Count = 146 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 18716638a2f6b4fb8dd2849fa9aab80b8dc846ee7e6b3cb0926101a814d8dd8f +Msg = 6593194b9970545c5a910b2b4fcd46f0ddc7aa0bf873f0a339d5958d310c +Mac = c4556a75b754f6c9 +Result = F (3 - MAC changed) + +Count = 147 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 6237aa30f1e3df239c96e7e50b69496da9305951024fb83a6fd01e96f6b2578c +Msg = 0c5b7d1ba68654cd24871964f1b31ef7900dabc025baa02d37b55b35b4c4 +Mac = 22c74fc64489ca5e +Result = P + +Count = 148 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 32f60011bec76a79d2e837c611fad1cad486ee6f2aeeb74f1ea32a7e3899bdaa +Msg = cf772bac3e767534b13efd381119b66f8a99b91aa52c8d3ab5f0a60073c9 +Mac = 08d02ce41d4964b9 +Result = F (1 - Message changed) + +Count = 149 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = cb6cee5ba7b799f16254a17b1870cdb85fe0ef3f42110c138742bd7734f0d504 +Msg = 40d3c65a00d9204b76e013975ffd729b351698105d47448da285a84de281 +Mac = 4cc6718396dbe247 +Result = F (2 - Key or Key2 changed) + +Count = 150 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 9b8cdf91e848eeded2598ccdf084bf591ec2eb668236f555ca61a9d6b49959fd +Msg = 7b3cc6f18a27047f4cdc35404e44eb8e51b1855d4bcd54ccafd1fcfaeef7 +Mac = faf72c383b56a4ef +Result = F (4 - Key or Key1 changed) + +Count = 151 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = e6fdbe9a1efe081bbcfeb25b844734fe60aa6b80a5b5f611982de1a331b88041 +Msg = 59a0f85349c3f378d56c509a0a45a1512b5072474b297f9c1a8c24890016 +Mac = 020354f33df66723 +Result = F (3 - MAC changed) + +Count = 152 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = da360852e8b8c3a1b65af9e8630ee5481aa91dce414166f8f3dacb75b142f12d +Msg = 61d908e9663fb195afc259529fc229b14e87995f8d3591b125fcce816090 +Mac = f8963157ef7c1ba3 +Result = P + +Count = 153 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = c9bf0e7e470d0ffc88593796c4cf9a61c6db81d343305ee06a0f0563bcc618c0 +Msg = 19378e17c41586b88523a6b6af738dc47e63ea64b4b83fa283f1e502add5 +Mac = 550523c0347fbcf1 +Result = F (1 - Message changed) + +Count = 154 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 7129ca274190400720bba27651f1ee0d5aa79116af9929418e198f9928a715b7 +Msg = 891e73a81d7574ce6f73e09e08cbaa0b9db242963f4469cdd2234512c061 +Mac = 9982a14d261a4060 +Result = F (2 - Key or Key2 changed) + +Count = 155 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = dfaa73c82a978548c99c0f1c34e1edc2c4edd42b73613511e4e6648ba364f9df +Msg = 18044ac51ea97341061ae7d5bce017fd5cfb1554a384a75aa3919a74ba59 +Mac = fd3a17e8c51a004f +Result = P + +Count = 156 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 6f0be1905d1b5b607574ad93a1e7b4a536020fc6798acae862253916a0562707 +Msg = 8e502d5af4701025787e5b251121676182a0b26cdf52847f4d56d2ca0983 +Mac = 73d76950066c77d0 +Result = F (3 - MAC changed) + +Count = 157 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = b9fe826b0138de8184a3002d8bb59d228862e4a14f8556f88282d8494d29068c +Msg = c97ca1930b65064b70d12fc46af4d5e220e6009e729a28a13b0f9a11d3ca +Mac = b8bccd70bb90084f +Result = F (1 - Message changed) + +Count = 158 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = 99c8f69fb91b17299461fd8d633bd516dcdb172760695ec476a5775377cdb7a4 +Msg = ef589e3b4ad9a7ba390574a2db5330baea64894f8f881cd67b842dd23393 +Mac = 38e11613e67e0416 +Result = F (4 - Key or Key1 changed) + +Count = 159 +Klen = 32 +Mlen = 30 +Tlen = 8 +Key = a86e8b43a1e81dce7b26420c0409628d145445d1c512e1c3df3270839475c668 +Msg = c71a0d1e20a7dc8e7adea91a408ecf3d512bcb15a6d8fc1435c6a7f915bd +Mac = 101c06c22819404a +Result = F (2 - Key or Key2 changed) + +Count = 160 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +Msg = d4794f6f563d5f6445450b59c1ff95d24eadc9c02b68eaa5df64edf81475e5cba8d2bfab021a2fc8 +Mac = bf99dc0b +Result = P + +Count = 161 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 551e188cbb7c7d1ff33b4bd5bb6c60da184b18f44d68d5c30704df47d8be6fa2 +Msg = 2b421be47d07dcb12a0706f7490d05024fce8f433079e18ec78f4c8678f5f1551448c9a0fc70e8b9 +Mac = 32aeb3d7 +Result = F (4 - Key or Key1 changed) + +Count = 162 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 000da8307f0e6112f0b8a8b1f927f62e8a9e5aefc0d37995088dd32e867148ac +Msg = b89266f3a33e5b6883206e44f8e8e0cb01275039c304960e8630f0aa011c5c19d769443061a060d9 +Mac = 1b5e30f0 +Result = F (2 - Key or Key2 changed) + +Count = 163 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = f4ae2113ce96435b27369fd4571ae2841a965c8ddbfe61023219eff9abd490e2 +Msg = 433ea4e1923267fe443e1e89d2472834b72ef97323ad6d82f3825ca9e1d06fbff8c232ed4c716ab4 +Mac = 05b3c894 +Result = F (3 - MAC changed) + +Count = 164 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = e7c78ef4c4b959ee00cb1a09d71221a43892ef8ad705edd27ed85d03a377907c +Msg = 4da25d1e7064bc4b4903a77452952885a06ba0712544210d30c0182533182fcac90b71e9f71caf22 +Mac = c15acf48 +Result = F (1 - Message changed) + +Count = 165 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 6f48b3bf240525adcb02985900fa29747e4b1265e5a8899abb0ee51cb0f90367 +Msg = 98bf67b6e342dd94c948e76aabb69e7d091d24fba54ae233e4181404768988963915a2495b42a4eb +Mac = 71bb5873 +Result = F (1 - Message changed) + +Count = 166 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = cb6cee5ba7b799f16254a17b1870cdb85fe0ef3f42110c138742bd7734f0d504 +Msg = 40d3c65a00d9204b76e013975ffd729b351698105d47448da285a84de281bc3307cfd80b39488213 +Mac = 592e54d4 +Result = F (2 - Key or Key2 changed) + +Count = 167 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = bbab624862e268765e9e6a13df55cf7a2267520e4e66042ba0b4905dc554c3d0 +Msg = d43b841f174335f1347834590b0984a2cb35f7a00a0ee993157d2d4f8487489a12ceddd6ac5b69e0 +Mac = 3480805a +Result = F (4 - Key or Key1 changed) + +Count = 168 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 2fc9e8f409cc6c0156ccf9f00686ac7abba6cbe08982a737fa08c70356f54208 +Msg = c1cd63e24e41f69a146b448cee0a2107817c8105732745aed817541eede8ee6809e73ddbd0742d84 +Mac = 91623558 +Result = F (3 - MAC changed) + +Count = 169 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = c49dc812061fa4995aa7c160ed7cdf769dd1ef570d8fc9c7f8552101c5bdb711 +Msg = 74ec6f53d188be3bdb647f37619fa5848076c66d21bac164c381a4517b1dcd2a384a4fc44cab97e9 +Mac = 07471b07 +Result = P + +Count = 170 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 84b6cd1c6618c42ba74e746075dc28700333578131ca6fde6971d2f0c6e31e6a +Msg = dc79743d2360cc52cee202b9bde9abc7c09d9d0311d89c3722da36c7993feb42992e913744d2f74a +Mac = 3acba1e8 +Result = F (2 - Key or Key2 changed) + +Count = 171 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = dd472b0bf50519020a182f122239d161d9659773b4df454eb378fedc250eb490 +Msg = bdf56403d5ff8df4ffca92eb40d54a79b5595abcd67b9e2ffcc5cbc621d7523be75a87a2dc360244 +Mac = 3bb0894f +Result = P + +Count = 172 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 00ebd245e8c0e0b60847da5c8f7a1f33604932b9cd47a845a1a44599645b62ba +Msg = a238e542f1c22621aebbe331e71123ed7f2591e4192180ae378c2c24a31c42d10fcba3a3f82c65e6 +Mac = 1d17d6ab +Result = F (4 - Key or Key1 changed) + +Count = 173 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 2ecddb226ae668315eecf107c344926330b94077e029ac3bb67e6a077ee05361 +Msg = 38ee97f0dc635c7416a024e3af5c95dd1d496db8a5a5c3bcc20b9093ca906dfbcf0b9ebec3b450e4 +Mac = 08834104 +Result = F (3 - MAC changed) + +Count = 174 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 0a2978b5f20d3b5e5ed7ed5a78a093a51d5aa6e728077346f429c27f1c79b635 +Msg = 28313dfdc449628f4e2d6c895381844559067823cebb56cd41493ac0d29d6408e7d78d4a21637b08 +Mac = b2635d7b +Result = F (1 - Message changed) + +Count = 175 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = 7f2286d42b4f9eefed1087f3eb3dc814145be4a110c0e74176f83e7d4068cb7e +Msg = 6c1aa088d1a6086d0e72636744a6840c80ab8223409c61b733f7ef6a4199ed0ccbe96f6c3453866e +Mac = 10bf9789 +Result = F (2 - Key or Key2 changed) + +Count = 176 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = bb0fabffbcc6935ca35755fd4bfbd192b6812cf75c4dc95bc3a175a1501be206 +Msg = 9801da81a6d9861f26900401aeaec89a74e3d5aec0a5d612a11b6bb4e03ac1db322e65afb1fb5afb +Mac = 9ad23631 +Result = P + +Count = 177 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = ed1d11cc4876f58feefc463b52d8d36e69c4c2c9227b32fe356d1e2a1bb88466 +Msg = b16e6c44f429efdc06a892cede56296e12bf185d4b3c6953f7d31b1c3d59bce136d93aa95a3af61f +Mac = 29b26a75 +Result = F (4 - Key or Key1 changed) + +Count = 178 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = a6fd8382447181bd300ec1ef039d3f353446d01fde490509c3ef52a992bf6fe4 +Msg = d41f8fbb6f968dda0c1b2cadbec04a6c72124eb5dc40b8d2b180fd3b17af915b5a374597e036d38d +Mac = 2b343893 +Result = F (3 - MAC changed) + +Count = 179 +Klen = 32 +Mlen = 40 +Tlen = 4 +Key = df0821c9ea6ab329c626d11b4bc1ba7351ca934ece6aae483e3d0bef48601f78 +Msg = 84b9c150a1df00ba29386197d79d29a2ceb42fe6390c9e763169f75fe15c55dbe817f5c7fe80f557 +Mac = 3a5026ef +Result = F (1 - Message changed) + +Count = 180 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 0f1b73e54f4571b2d42aa5ab673f3e99b44f6c37a07a5d4edc7d6b1fba349401 +Msg = 3918467effb5d5dc009aaefce84d8cb4fe8f80eb608f4c678f5d0de02ea11e59078d38b04f10de73 +Mac = 1c207499e0877bb2 +Result = F (1 - Message changed) + +Count = 181 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02 +Msg = b06f6b3f197bae7d8cde9daf38530e25bc51b68f9aa23ec0e95199b14bca96c91f3db15bf8432f71 +Mac = b860013252ae83a4 +Result = P + +Count = 182 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 849d861aa5a37c6389f7bc2fc3b4860fac9d2277fa5e1a1f9415a6aaa5106886 +Msg = 191b53e0c7d90161e5e2014e9b8aea315b4bddf5750aba4be69c944d71896361f210f961ee6b38f9 +Mac = c9dc7e167c2e442b +Result = F (3 - MAC changed) + +Count = 183 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 29dd1ee0ffa12de3a1f2cb8e4e24d2e548794a5e7e372f946bfd733f3c564764 +Msg = 891c806e0700f6df72befe47ff088d917cc30763866810a2fcaa9f38b45953156c860b7303e8b15f +Mac = 2f7355b3994f45d9 +Result = F (4 - Key or Key1 changed) + +Count = 184 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 6cd7349d96feffbcf6e95a96eacbbe8ddab702ef70052b7804f78518589df3f7 +Msg = bbe054fbef86db3ce7ad796e6d0add15455b9cff57fb787610b4e1ba05d5bcaed98564d16157ee70 +Mac = 8a421387c53702d3 +Result = F (2 - Key or Key2 changed) + +Count = 185 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = a32e186c29f6f1852b483a37b50c02defeb2ce81488198bc082c17fd47a741f4 +Msg = e687143dc4d98dcc6a2dfe6ee0f85d565d1f46bb0fafe62a17d01720d6f4ccd86754b0626c9d0af5 +Mac = d44d78445c5ed8de +Result = F (1 - Message changed) + +Count = 186 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 338f8054d58c26c49360c3e87af56523acf6d89d03e56ff2f868002bc3e431ed +Msg = d42b10d3a688c39edf543ae7330466eeb9e3b678ef073967ff83038d40ded1c200c4f03481fc5aff +Mac = b25bf6993f18d503 +Result = F (3 - MAC changed) + +Count = 187 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 96e04382027fffcaf779c984be80da16f8437db0e39a7123d9048ff71954acb7 +Msg = 494c8f931029a4919e2dcbc16512a8bfe275382e7d29c9abb1d14a006caec59ab9b52a3e9ce54ef7 +Mac = 5a94a03591ee9cc7 +Result = P + +Count = 188 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 682f8bc1eafd4d369df384841a88db7b7fb96c9dd9abd6dedc9290a8d8d17d22 +Msg = 87b937b1d36e8a9ab33a1d3eed617030923acaabc7e620dfcb3c388936030fc67f647729c19e040b +Mac = 89347722a73d8bf9 +Result = F (2 - Key or Key2 changed) + +Count = 189 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 954222a9cabaa5a0a91100b158a3aeb655c4473d0b00afe6a7a78e0d278a01a9 +Msg = b9197eb50c8168d16b8a12bd261d553ffcc521d979b26fee820376252e452213d736c21471cf0179 +Mac = e5d175fa24cf0fd6 +Result = F (4 - Key or Key1 changed) + +Count = 190 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 18349be2894d49290339b97f4db28c92b3e112ffac77100abbf9c093935b1a46 +Msg = 4b02fd5a46ac681a42424ac9723911af4e389ac73829f36f60916563e51cb2ec3d7d9b55d674a59f +Mac = 18c98fd13595f857 +Result = P + +Count = 191 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = f1f9fdfa9ae3ba8bc6fcdb2e15ae2c47e6292c2acb091fe03e325f298ffff3bd +Msg = 75965cfbf66b0ba13274fce6537fd7aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837fa06f +Mac = 935e4d4367aef07e +Result = F (4 - Key or Key1 changed) + +Count = 192 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 4652bacedb47faee1be641ebf433157f416b4c7d9e8c7c6f7b17b47e70156993 +Msg = 17e6acda3c05c9549eadad55d8918f4870aec63a18802fa33175cf838fa2b9b17cb43270ff2a1444 +Mac = 7ce4adc343a4498a +Result = F (1 - Message changed) + +Count = 193 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 200e4929c275557d9caab0ba3b0a153dd8010ff8f11ebc1f336dd0249d01dce6 +Msg = bd05d26ebfcb5f6e102e79976fbd038e02da6a64a6be90bb84bd092be5cb8ae447409e94afd89b8b +Mac = 5484fd10e83798c2 +Result = F (2 - Key or Key2 changed) + +Count = 194 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 8c6a6e77534976b4d74a0972742989dbc0f753281a5ff10a862e9048b813b4a9 +Msg = 869c482db2b0825cd09d295749359b99fde85240e5ddaebef642f4d249e096b77af2b59b4e37e452 +Mac = 9e640a86d55be78d +Result = F (3 - MAC changed) + +Count = 195 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = be3db75687360fc31c27752a5f32125cf04f8bbab694339ebcb57ff63fc7ba32 +Msg = 33dfb223c009001a7b3b81916bb094390c42c24a47884fc8a0410f05b2f57b67d8d9046b2ef4a8ea +Mac = c7666f25d2329fb6 +Result = F (3 - MAC changed) + +Count = 196 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 29e7acc4facc2618f242ec9260a8ec36c4c9dabb89bb8092f00855234b0c505a +Msg = 09bf4f77a9883733590a3cc7ee97f3c9b70f4db255620e88cd5080badc73684c8b80393302ca8803 +Mac = 424535e20d082087 +Result = F (4 - Key or Key1 changed) + +Count = 197 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 23f0d00daef3177fbcda6e9953a5a37d5da395204d8af5fb05c74e03f71343da +Msg = 2222135e545f2af53be42d7a463719447e0a6a305fbe8e43e6279a91eb8f3c5db1fdf081bcb77711 +Mac = 52c42541e2e93f3e +Result = P + +Count = 198 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 6746d9a90e0e763679d5469a1bcffcc4f18f35f50c7714d14c7329b76ce7984e +Msg = 68530f15423071410a349872c559669301096c827333adc4df9da477387c89870942d12513b7f475 +Mac = 2bf36912e1139629 +Result = F (2 - Key or Key2 changed) + +Count = 199 +Klen = 32 +Mlen = 40 +Tlen = 8 +Key = 6b1d94bc0c6e45fc905c509ea667853e4b2c5a8848dd914efcef14d95b12247d +Msg = 207b649c46c1963723624d8428d4b64c08cd4091cc055175223d3758f880614149a9cf7f3725c790 +Mac = 34f46b361bddf55c +Result = F (1 - Message changed) + +Count = 200 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 5c77fe134af3fef72fcd16006097dc7dbc45ca10339ae3bc85e0993e4cdcefa1 +Msg = fab52c44379ae8083bdc7b827383df93cb1a7ecc21574730f9fe003b7302de237bed535d40832763e7a2cab5806de91d39aa3f38d167ae3250e48ed1f6ad45b5 +Mac = 03f36c5a +Result = F (3 - MAC changed) + +Count = 201 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 997c6b4b513bbdeaf701867bbe81bdee63de0d0d18c870bcc1e9ff7f627f093e +Msg = 4c23d92665e88a4f6f732de384034d493d5df37b767a8260557de05688e8d60dcd0eba9cb8cc4bceb174dcbd3c0ab5a37db3b6ecfb6a3d90a4f54a9f1117e11e +Mac = 9e798c73 +Result = F (1 - Message changed) + +Count = 202 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 64e390edd97c0af1ba5165900828e0630606f83d4df5240e1b05c307ee9153ff +Msg = 1ae71094fc1b304adfa3378c4efa8fb290526bb314714c9613beca2a709c91f7e3f6aa74561bfc7b8fcd12f910941eea3b593e85ba2fffb31e7420c6c6199868 +Mac = 1977347f +Result = F (4 - Key or Key1 changed) + +Count = 203 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 44e2f6d41e04b75f541e724c6f6325f27d7475b3676fa0247f28b36e58b6fdf5 +Msg = b9ac624288352617e4d375f33953b431cbf8f03f9ecbda9893330ff2d3c59db8705dc3ba4a6ef924309630ac48765b10b1c02ec0669126d76602c95012fa2f77 +Mac = 2cba4713 +Result = F (2 - Key or Key2 changed) + +Count = 204 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 8e0f75b7029d4afc2a86adb4a088b89ef9783965027c1176497ada0fdfd0cd99 +Msg = 21cd3ff946e2b3c1c61932205899502852b1333d1c79a3d4e5b6617996ffba17041e5b746ab967fb1632c7be62cbc2bbe60ecd5eec6ca4482424994f9a662cc6 +Mac = b651d356 +Result = P + +Count = 205 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 35b1106d174acce103ecf5801b03d3c10d579c4ee491ebad25fb6f1f1787e0c8 +Msg = 960026395d0544975dffaaa2c56db1df5816cd80cde513dc76f6f81d21f15c383c97c7233c9af2423fb28922efed2f69aa47c30de17ae1c5be17acbd0ad6cb8e +Mac = 8a8f65a8 +Result = F (3 - MAC changed) + +Count = 206 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 71efa75961dfd60ad533082a8cfe111214eb02573adc4591c5d0e961640a3ab2 +Msg = 6bafbd22b75e21e1fa5444af283e69d53ac2f0412f717a2153f74eb1c195fc5127d240dbc96d2833c9957920a55c505a016a05e4a7ee549bccdbbf1095502e93 +Mac = 88fea081 +Result = F (1 - Message changed) + +Count = 207 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 11752eb8aeffa364c9947092c1612461cc19b6c3a3ddd1817b5e6f7f3745a942 +Msg = 2d9109e7eea21b2615c81c03182ce6033c93783b13d698624392bd2a8a202bd0ffc860f29b31afa2f71c2bb85752c66ce8dbba244671288a4135ffe2e1a0209b +Mac = b5a26c1c +Result = F (2 - Key or Key2 changed) + +Count = 208 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 279a6c226f6a48f3128626012baaa309d99065a59dc0a4c003a6e94d85e61638 +Msg = 9bff96ba07a52d9ea2415283321395cf57cb37c610fad7a482c74de9f5e3d7f520bf73d4a6fc8b5be023d774dd9680b6a7c68139c8a753a80d61c9978a493917 +Mac = 5e281941 +Result = P + +Count = 209 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 0bcdcaa87ddf8bbe6db8411d14bb9064e4a121286cc8a6e97fce1844935f436b +Msg = 3ec0aa8d30d5ed825b77dc7095f421b1e608158797a377ff8bed641bd387832f7c14818cabf9bd5ced6044cdc883ff7296272be693660ab234b2d870ba170131 +Mac = 1da79d07 +Result = F (4 - Key or Key1 changed) + +Count = 210 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 1b41d148e3c202d419ce16385139da196dede5be63987e6940a2bae86d62e567 +Msg = 13ecd70e2d76dd53a19b2e5fc0afe0c0793577ba8948b7d4ef3ab797a07a37927dbb33a18252b96f40e0f73a8d3298d67a6551f5854eb6a51019531a122ff8ae +Mac = 91bd49b2 +Result = F (1 - Message changed) + +Count = 211 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = a1ccc9c992c8a307ad39504854456696f8eafd7c8da0c0c53b3a4485570e985e +Msg = f68b0c3b4556c7f8866b3fa873ed2014418d6421d3f224512e5dae8c2d8dd92175e09508acbcc66ae62d536260cf790671ef66a1bded0343ace4117c1b8d7764 +Mac = b9317feb +Result = P + +Count = 212 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 4d8d0264ae6d8f7a7440dd760e0ded25a3a94cb0491fe81e7b55221ac8ed24f7 +Msg = 5faaf6b8ee8ed5b56bfc1a7f886f9f91a6566ceb99c39462ab675a3ae3be98f68787626fdf77e6243c2e96d1396a8a43417b1f6a51f7e5b0ffaeb889bce02c4b +Mac = 3f610010 +Result = F (2 - Key or Key2 changed) + +Count = 213 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = bcf95051ae2ae84ac32a763d5477ccc4659a9ed3e25de5932939826dc90e2464 +Msg = fce924dd27db3e07837694c34f576c16084e5b0a254ca3af0582bf6026c73b47973ac924b02992490032cae987a887932539d3fa53cdfff711b03bd11ff464bb +Mac = 7b7e89ef +Result = F (3 - MAC changed) + +Count = 214 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 45ce953ad31ee9b53a9c948883bc86f4bbe0f0744085a9943cbad1066cd7b4f3 +Msg = edb1aaa7e8ac37bca99ff8eff5516464aa33fc2bebef8a727d43abf971108bc604aef019c3837aa2f3d429f22fda1f305319a70d99ed77f902663298f855316f +Mac = cbf4addd +Result = F (4 - Key or Key1 changed) + +Count = 215 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = d60841cd71d7227ab56e767817760edba9ce2290f8da504b341ee2c1910b5018 +Msg = 365fea641559759d1e5b5581218486318b1c776de812b1aca6a9ba6b1c6e39c5cb6d5a44e3a474f709b8eac457e74f00a43ecd3d060cc7639696bd03730c70e7 +Mac = 7406f935 +Result = F (4 - Key or Key1 changed) + +Count = 216 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = d172f991eb697ffdefc57349dadbe51066d2744c39041cd55ca75024eead495d +Msg = 6a91da64812b9bb41a026e727b4f77c384813da2948caed5a9846420c86a26b89f46b2fa6975b95d12452ca69bbfb65bc1c48a79d95c5e69ff4ab7316fe468e8 +Mac = 6bd82bcc +Result = F (1 - Message changed) + +Count = 217 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = 3725c7905bfaca415908c617b78f8deeeff286e0c2bba268d0de92c7664238a7 +Msg = fc4bbe329a86089ebe2a2f3320dad55a9bdac1133dd28ddc9ace9ed665885a2341ea9492d4cf4b7e1d0a95f308a9d613407b35b845cf515bbe7f2f35102d78a3 +Mac = c8e11823 +Result = F (3 - MAC changed) + +Count = 218 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = bb3087d1b5b0f6f14a532c3604c82874fb15e97a4b3883dfc50e71ffe5752d40 +Msg = 979a9f96112d1ea95eec2cdfdf48c55114472360aa7de24bb53761013af96b33f02b17ae470fece8aaf649d801b4040b7b5152f58a01e7852f565efc77b5dafe +Mac = 66466425 +Result = P + +Count = 219 +Klen = 32 +Mlen = 64 +Tlen = 4 +Key = eeb983439a03ee6a315ebf941e9368f90bb6845b03b31839d72a1946c17d2f19 +Msg = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024b3651eb227e73bb559e7c0db08b215fd7efe64afcd24fb155989f2f8965d0e181389e6c4b8e244a9 +Mac = 7f77d596 +Result = F (2 - Key or Key2 changed) + +Count = 220 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 6f0353a0ad95df6d3190a251435f62c30ed6b9cc0dd024c3c316565cad83d2e1 +Msg = 83011a83db0524628b55589ba0165523ce7c916465eaf185805b97ec7f00fc01b82a3e356a6bbb44f2f8deb6425239ac8e26d4d94871c5cf4fe7017c649672f4 +Mac = 9e56e4574dd01fe8 +Result = F (4 - Key or Key1 changed) + +Count = 221 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 777a22c5fa2f864a9233587e3e9634172ce25006daacbba97b68e7429c8266a8 +Msg = 1f7d58d65c36142620172fda3197d3c629bc7bc584e1aaa0f8b6dd320588becaccc39ad124b515adeb941de49ac31c851c5172c4e1c322e42e13cb5ab7f8db2f +Mac = 498dafe2807ba34e +Result = P + +Count = 222 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = e17736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b +Msg = 1a6b80d506147c3c02c89f50892bd1f04d34f9f21e8307140df43835d17495c56a13be7a045be5441de01d84ea19d579f76e9ffa0f92376b5b13c0eacd3050c9 +Mac = 52d3fbc6e5821f1d +Result = F (2 - Key or Key2 changed) + +Count = 223 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = f31f2fb4b3fd8045b70d34b600a2697cbf7503be0d8cfb5cdc60f9312e3e2695 +Msg = 4f43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c11494c31e6098e24225eb676094755c6d7e992ec0c8c1e2608e76a72d79d173a4e07 +Mac = 71239a4c38fa04b3 +Result = F (1 - Message changed) + +Count = 224 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 10a678f591b4d87280f42d77a91635575e2e82ef610a7c9105c3a9418f932c24 +Msg = f7b577f1396b23c27eb637e53d3d92460270b001cc612fd3b4d68bcdd09c2d50571ea4350636324cc2428a087e7bd8785f8202791e3c2d2bafe084a1204e34dd +Mac = 5b11c1407904c15e +Result = F (3 - MAC changed) + +Count = 225 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = b8728441226558fa9764824597fe254bf8c2623789541feaf6c007efeb0dd2b1 +Msg = 80a2be15809f12738f305be3a210ba0c933599c4b24b48257c60e8e3aae189dc6ec58ff1f9085a15405b26a3001a2ff5ff7e1932961490676c6d2cda8417979b +Mac = e73ed6c4f81b0ecd +Result = F (3 - MAC changed) + +Count = 226 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 22a877d974cdf4d65bbd77958b2b77fc5ddb33a221aca3ecb6d5ae76596f9db4 +Msg = ce2ce41f76ca7477972d38a3e8fad1122db34ee80c379fa01f884cf648d1670445a8bfab8490563438c21537ac2dbfbcd7bb24a132d6973cc62ba14089adf7e5 +Mac = 0ff91813a56b98dd +Result = F (1 - Message changed) + +Count = 227 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 03fa02c4df99b8295f502e3145e2edd3ff16722b87092e708bc8d126cc1ec894 +Msg = ec9a9babb68e09c38617c9b16e8a2d92e711030bcda4b9e0ab35c4c2392b41692312dde30c91f32cd39cf5fe15ea0deaf3aa04a8157262acee78d7f94204d93a +Mac = e50d9a04f79cf9b4 +Result = F (2 - Key or Key2 changed) + +Count = 228 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 0e12df1bf17e9645c5507bc2069ca4611dc0488c9996231dbcee1c73393b26c4 +Msg = 86814ce4a867f80ce9b618c6aecce37c89851508bbb095c8f7c055f569c47a30f79abe5ec75f12b601298718d6f96ea1c1ebbe7c0cb0b7fb973ec5e6d5c6a713 +Mac = 05338bce9ed8f495 +Result = P + +Count = 229 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 51c88fd98a7d82043a1500fc3d8a66ba7ab7760467c7fd89cfeeb22dd25762a2 +Msg = 0e403cff47adee3ec5bb6b178dabfc7d53b60a04eaad33a2fedd9db705358a4c73ab2d982ddbbdc941f1c701d4cac89e5c56fbbe0f4170029ad25e931713ba63 +Mac = 38c34175627b07e8 +Result = F (4 - Key or Key1 changed) + +Count = 230 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 0feb23c7e4a19bcbd70bd300d76ec9045d696f8c9687f49ec4154400e231d2f0 +Msg = 0330ed97e44e8b15a49f29c72a7997d05d398a9d45dae41a6cc635258beb824362124691e86cb7fea46e4ab85bdf79e4eb30c492770bf6f0c42ea9bde37a0c01 +Mac = 271a7c2e687d84c5 +Result = P + +Count = 231 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 5d649799771f9074d18a2477ccd4d9e136e01451c1eb2e8bb370cb79e0486770 +Msg = d715bc0520dbb86543e76fede49dc6be2cce59d3c0db133ff31efcb63a85514fe080da88fa1e788b9e73feb0503c4142bdc67386ac0bacf9311ecada23ca7be8 +Mac = 42de9f52567b4506 +Result = F (1 - Message changed) + +Count = 232 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 4c96d520d8d5a54eb73f8f558e328d1b3e5ba360161fb8444739a40a97a58a1b +Msg = ee409b050346fbd319c8630e4bc9dd6d055355fbb961f018d3fda0c1eea6f61248f43709737fb18d4efc4faf34a96c2f73ece54200367292692e36870a0c94c5 +Mac = 28610f524d88e727 +Result = F (2 - Key or Key2 changed) + +Count = 233 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = b186b9273d8cd77d68c05ec5389b2f6e2f267fe6cd6e7cb35a3233c0dfe0b1f4 +Msg = 0df3fc6396f851785fca9aa5ffb0cd98bdecf8bbae4c82641efcb34d319e7643ca9c5e22acbde800e0f700a95685c64ccf399173f9123438dc1181b676490cbf +Mac = 8d2f69b44614485a +Result = F (4 - Key or Key1 changed) + +Count = 234 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 1b1374648d93aadb186326e4ca2b82fd37f7234712816fe4feb339a3a16880df +Msg = 9a661677f1e07153e1c9c661c91901757f5b4d9938031f01a802773d6a9863b2a169c44be0d4546c4780e828ef37f3b389f84c1a41473131e9c88bcd530c7334 +Mac = 72838b59593c011c +Result = F (3 - MAC changed) + +Count = 235 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = f70b8a4eee3518bba071af55f25f7b698a5b7dc8865cdaca6d1c7993657acc95 +Msg = 795ee1af7504621aac329f5081912de545fa11174f3979b14f11aa30df813a235b467fd8f3a14734fe5ac9e39105dcb25184673885cd19bc70ee5a53dd4e8149 +Mac = 93542734d6cd43de +Result = P + +Count = 236 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 0c456d199abae4758734f506c4e9ccdb767e4fd156d5a4085726f3938a516d74 +Msg = 78f3bf568f1c3f2866eff8a246a70cf0faee4c3078f3fb27c4bdd53312bf50812bac2280118c0396e610b4110a22406084c18283a30ce7c0e49c769817170df9 +Mac = c4c5be3c94fb7b9c +Result = F (4 - Key or Key1 changed) + +Count = 237 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = 0a8725bd8c8eab9ed52ca47835837b9f00a6c8d834ab17105b01eb4eb30402e7 +Msg = d7867ff428c37836161a534d1d697fba43e86b0096c49b63d50afaf06ec772bda86eba7222796f087c5367d1547642b974d041cb496c5cf7984e8e126c9f741e +Mac = b5d40f8633965c33 +Result = F (3 - MAC changed) + +Count = 238 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = ce9ea80e7fb235486b5f1d0321c68a0e44cd5f15e21f27c402754a2f7c138772 +Msg = c246453f5d0f4957e6418b4d17b748f5c30e7ee672b4af2e4e41e145400be94056f4e94768871849fb44c1ee65378fce32d007e0c7ee5635453d4de6b0c2aa4b +Mac = 33ae4c66895989ee +Result = F (1 - Message changed) + +Count = 239 +Klen = 32 +Mlen = 64 +Tlen = 8 +Key = f26fad377bf7d6b35d8ea2e0621b678dad85826fadd3ee684d9215086b77e555 +Msg = 63539f949990883ac4f3ef9158b382a30254023c301de9fcd3cd4faa638a0ecb241a2573a9555a5c96da2435aa02c73cfc12c10f84b565bfdea9c6274bb8d67c +Mac = 8cda222f03f92913 +Result = F (2 - Key or Key2 changed) From a057e5dc32370d29bf2013afc360df8e4b925c98 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 14 Aug 2024 16:40:39 +0000 Subject: [PATCH 21/81] Add Sapphire Rapids to SDE tests This is needed to cover the 512-bit code path in the new AES-GCM code. Change-Id: I1a0eeb7cd6f330d82577159a1e0055f2ff6ec4ce Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70247 Commit-Queue: David Benjamin Reviewed-by: David Benjamin --- util/all_tests.go | 1 + 1 file changed, 1 insertion(+) diff --git a/util/all_tests.go b/util/all_tests.go index d80cd60985..3b31ded406 100644 --- a/util/all_tests.go +++ b/util/all_tests.go @@ -96,6 +96,7 @@ var sdeCPUs = []string{ "cpx", // Cooper Lake "icx", // Ice Lake server "tgl", // Tiger Lake + "spr", // Sapphire Rapids } var armCPUs = []string{ From b4da52c8915bdf2c8763de64c75339fa1a3d5d71 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 12 Aug 2024 18:06:33 -0400 Subject: [PATCH 22/81] Remove the confusing extra word in BN_div This extra word was allocated so that the fixup portion of quotient estimation could read from wnump[-2] without checking if div_n > 1. This was actually subtle because the value it got back was wrong. It just didn't matter because the loop was a no-op. As a result of all this, all the indices into snum were off, and the remainder needed to be shifted down by one word to compensate. Really, if div_n > 1, we could just call BN_div_word, but the calling conventions are different enough that it didn't seem worth the effort. Bug: 358687140 Change-Id: Id694a33003f51536ee836a5bdb75ff8006b11a51 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70179 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 95 +++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 53 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index 5d059e5c47..f1588c1adc 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -215,29 +215,22 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // This ensures, in Knuth's terminology, that v1 >= b/2, needed for the // quotient estimation step. int norm_shift = BN_BITS2 - (BN_num_bits(divisor) % BN_BITS2); - if (!BN_lshift(sdiv, divisor, norm_shift)) { + if (!BN_lshift(sdiv, divisor, norm_shift) || + !BN_lshift(snum, numerator, norm_shift)) { goto err; } bn_set_minimal_width(sdiv); - sdiv->neg = 0; - - // TODO(crbug.com/358687140): We also shift the numerator up by one extra - // word. This was done for convenience so that |wnump[-2]| below always - // exists, but makes the offsets confusing. Remove it. - norm_shift += BN_BITS2; - if (!BN_lshift(snum, numerator, norm_shift)) { - goto err; - } bn_set_minimal_width(snum); + sdiv->neg = 0; snum->neg = 0; // Extend |snum| with zeros to satisfy the long division invariants: - // - |snum|, minus the extra word, must have at least |div_n| + 1 words. + // - |snum| must have at least |div_n| + 1 words. // - |snum|'s most significant word must be zero to guarantee the first loop // iteration works with a prefix greater than |sdiv|. (This is the extra u0 // digit in Knuth step D1.) int div_n = sdiv->width; - int num_n = snum->width <= div_n + 1 ? div_n + 2 : snum->width + 1; + int num_n = snum->width <= div_n ? div_n + 1 : snum->width + 1; if (!bn_resize_words(snum, num_n)) { goto err; } @@ -267,10 +260,10 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // for later. const int numerator_neg = numerator->neg; res->neg = (numerator_neg ^ divisor->neg); - if (!bn_wexpand(res, loop - 1)) { + if (!bn_wexpand(res, loop)) { goto err; } - res->width = loop - 1; + res->width = loop; if (!bn_wexpand(tmp, div_n + 1)) { goto err; @@ -281,10 +274,10 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // our index is reversed. Each loop iteration computes res->d[i] of the // quotient and updates snum with the running remainder. Before each loop // iteration, wnum <= sdiv. - for (int i = loop - 2; i >= 0; i--, wnump--) { + for (int i = loop - 1; i >= 0; i--, wnump--) { // TODO(crbug.com/358687140): Remove these running pointers. wnum.d--; - assert(wnum.d == snum->d + i + 1); + assert(wnum.d == snum->d + i); assert(wnump == wnum.d + div_n); // Knuth step D3: Compute q', an estimate of q = floor(wnum / sdiv) by @@ -331,47 +324,43 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // 20, and 21. Although only one iteration is needed to correct q + 2 to // q + 1, Knuth uses a loop. A loop will often also correct q + 1 to q, // saving the slightly more expensive underflow handling below. - // - // TODO(crbug.com/358687140): This assumes div_n is at least 2, otherwise - // there is no wnump[-2] (u_(j+2) in Knuth) term to read. We avoid going - // out of bounds because of the extra word, and t2 will be zero in this - // case, so the loop is a no-op. Still, this is confusing. + if (div_n > 1) { #ifdef BN_ULLONG - BN_ULLONG t2 = (BN_ULLONG)d1 * q; - for (;;) { - if (t2 <= ((((BN_ULLONG)rm) << BN_BITS2) | wnump[-2])) { - break; + BN_ULLONG t2 = (BN_ULLONG)d1 * q; + for (;;) { + if (t2 <= ((((BN_ULLONG)rm) << BN_BITS2) | wnump[-2])) { + break; + } + q--; + rm += d0; + if (rm < d0) { + // If rm overflows, the true value exceeds BN_ULONG and the next + // t2 comparison should exit the loop. + break; + } + t2 -= d1; } - q--; - rm += d0; - if (rm < d0) { - // If rm overflows, the true value exceeds BN_ULONG and the next - // t2 comparison should exit the loop. - break; +#else // !BN_ULLONG + BN_ULONG t2l, t2h; + BN_UMULT_LOHI(t2l, t2h, d1, q); + for (;;) { + if (t2h < rm || (t2h == rm && t2l <= wnump[-2])) { + break; + } + q--; + rm += d0; + if (rm < d0) { + // If rm overflows, the true value exceeds BN_ULONG and the next + // t2 comparison should exit the loop. + break; + } + if (t2l < d1) { + t2h--; + } + t2l -= d1; } - t2 -= d1; - } -#else // !BN_ULLONG - BN_ULONG t2l, t2h; - BN_UMULT_LOHI(t2l, t2h, d1, q); - for (;;) { - if (t2h < rm || - (t2h == rm && t2l <= wnump[-2])) { - break; - } - q--; - rm += d0; - if (rm < d0) { - // If rm overflows, the true value exceeds BN_ULONG and the next - // t2 comparison should exit the loop. - break; - } - if (t2l < d1) { - t2h--; - } - t2l -= d1; - } #endif // !BN_ULLONG + } } // Knuth step D4 through D6: Now q' = q or q' = q + 1, and From 06706ea72a3d0afa70a0f8fb626e5349e4c32258 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Wed, 24 Jul 2024 00:55:21 +0000 Subject: [PATCH 23/81] Split off DTLS record header parsing in test runner. The DTLS 1.3 record header is formatted differently than the old record header, but the code to read/process a DTLS record mixes record header parsing with other record processing code. This change provides a clear delineation between processing the record header and processing the record, which will assist in adding support for the DTLS 1.3 record header. Bug: 715 Change-Id: I13a0bb5c184e79b88f064e9ac8ecbc82eb56750a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69950 Commit-Queue: Bob Beck Reviewed-by: Bob Beck --- ssl/test/runner/dtls.go | 77 ++++++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 32 deletions(-) diff --git a/ssl/test/runner/dtls.go b/ssl/test/runner/dtls.go index 95e1a9a011..1893afe152 100644 --- a/ssl/test/runner/dtls.go +++ b/ssl/test/runner/dtls.go @@ -23,29 +23,13 @@ import ( "net" ) -func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { - recordHeaderLen := dtlsMaxRecordHeaderLen - - if c.rawInput == nil { - c.rawInput = c.in.newBlock() - } - b := c.rawInput - - // Read a new packet only if the current one is empty. - var newPacket bool - if len(b.data) == 0 { - // Pick some absurdly large buffer size. - b.resize(maxCiphertext + recordHeaderLen) - n, err := c.conn.Read(c.rawInput.data) - if err != nil { - return 0, nil, err - } - if c.config.Bugs.MaxPacketLength != 0 && n > c.config.Bugs.MaxPacketLength { - return 0, nil, fmt.Errorf("dtls: exceeded maximum packet length") - } - c.rawInput.resize(n) - newPacket = true - } +// readDTLSRecordHeader reads the record header from the block. Based on the +// header it reads, it checks the header's validity and sets appropriate state +// as needed. This function returns the record header, the record type indicated +// in the header (if it contains the type), and the sequence number to use for +// record decryption. +func (c *Conn) readDTLSRecordHeader(b *block) (headerLen int, recordLen int, typ recordType, seq []byte, err error) { + recordHeaderLen := 13 // Read out one record. // @@ -53,9 +37,9 @@ func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { // but this is test code. We should not be tolerant of our // peer sending garbage. if len(b.data) < recordHeaderLen { - return 0, nil, errors.New("dtls: failed to read record header") + return 0, 0, 0, nil, errors.New("dtls: failed to read record header") } - typ := recordType(b.data[0]) + typ = recordType(b.data[0]) vers := uint16(b.data[1])<<8 | uint16(b.data[2]) // Alerts sent near version negotiation do not have a well-defined // record-layer version prior to TLS 1.3. (In TLS 1.3, the record-layer @@ -68,32 +52,61 @@ func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { } if vers != wireVersion { c.sendAlert(alertProtocolVersion) - return 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: received record with version %x when expecting version %x", vers, c.wireVersion)) + return 0, 0, 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: received record with version %x when expecting version %x", vers, c.wireVersion)) } } else { // Pre-version-negotiation alerts may be sent with any version. if expect := c.config.Bugs.ExpectInitialRecordVersion; expect != 0 && vers != expect { c.sendAlert(alertProtocolVersion) - return 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: received record with version %x when expecting version %x", vers, expect)) + return 0, 0, 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: received record with version %x when expecting version %x", vers, expect)) } } } epoch := b.data[3:5] - seq := b.data[5:11] + seq = b.data[5:11] // For test purposes, require the sequence number be monotonically // increasing, so c.in includes the minimum next sequence number. Gaps // may occur if packets failed to be sent out. A real implementation // would maintain a replay window and such. if !bytes.Equal(epoch, c.in.seq[:2]) { c.sendAlert(alertIllegalParameter) - return 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: bad epoch, want %x, got %x", c.in.seq[:2], epoch)) + return 0, 0, 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: bad epoch")) } if bytes.Compare(seq, c.in.seq[2:]) < 0 { c.sendAlert(alertIllegalParameter) - return 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: bad sequence number")) + return 0, 0, 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: bad sequence number")) } copy(c.in.seq[2:], seq) - n := int(b.data[11])<<8 | int(b.data[12]) + recordLen = int(b.data[11])<<8 | int(b.data[12]) + return recordHeaderLen, recordLen, typ, b.data[3:11], nil +} + +func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { + if c.rawInput == nil { + c.rawInput = c.in.newBlock() + } + b := c.rawInput + + // Read a new packet only if the current one is empty. + var newPacket bool + if len(b.data) == 0 { + // Pick some absurdly large buffer size. + b.resize(maxCiphertext + dtlsMaxRecordHeaderLen) + n, err := c.conn.Read(c.rawInput.data) + if err != nil { + return 0, nil, err + } + if c.config.Bugs.MaxPacketLength != 0 && n > c.config.Bugs.MaxPacketLength { + return 0, nil, fmt.Errorf("dtls: exceeded maximum packet length") + } + c.rawInput.resize(n) + newPacket = true + } + + recordHeaderLen, n, typ, seq, err := c.readDTLSRecordHeader(b) + if err != nil { + return 0, nil, err + } if n > maxCiphertext || len(b.data) < recordHeaderLen+n { c.sendAlert(alertRecordOverflow) return 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: oversized record received with length %d", n)) @@ -101,7 +114,7 @@ func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { b, c.rawInput = c.in.splitBlock(b, recordHeaderLen+n) // Process message. - ok, off, _, alertValue := c.in.decrypt(b.data[3:11], recordHeaderLen, b) + ok, off, _, alertValue := c.in.decrypt(seq, recordHeaderLen, b) if !ok { // A real DTLS implementation would silently ignore bad records, // but we want to notice errors from the implementation under From 97e89eba205f3a4afea768c090f05c4236b809a3 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 13 Aug 2024 12:31:44 -0400 Subject: [PATCH 24/81] Remove remaining running pointers in BN_div Expressing everything in terms of i makes it at lot easier to tell what words are being written to where, and convince oneself that everything stays in bounds. I kept a wnum variable in there since it's used so frequently but added a note about the bounds. In a higher-level language, wnum would be a slice of width div_n + 1. Bug: 358687140 Change-Id: Iae39b1915f80008ab5ed91e1e7fc5cd1349e8c1e Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70227 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 45 ++++++++++++++------------------------ 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index f1588c1adc..aa2e2e5b47 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -236,15 +236,6 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, } int loop = num_n - div_n; - // Lets setup a 'window' into snum - // This is the part that corresponds to the current - // 'area' being divided - BIGNUM wnum; - wnum.neg = 0; - wnum.d = &(snum->d[loop]); - wnum.width = div_n; - // only needed when BN_ucmp messes up the values between width and max - wnum.dmax = snum->dmax - loop; // so we don't step out of bounds // Get the top 2 words of sdiv. const BN_ULONG d0 = sdiv->d[div_n - 1]; @@ -253,9 +244,6 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // The normalization step ensures that |sdiv|'s MSB is one. assert(d0 & (((BN_ULONG)1) << (BN_BITS2 - 1))); - // pointer to the 'top' of snum - BN_ULONG *wnump = &(snum->d[num_n - 1]); - // Setup |res|. |numerator| and |res| may alias, so we save |numerator->neg| // for later. const int numerator_neg = numerator->neg; @@ -273,19 +261,19 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // division. Note that Knuth indexes words from most to least significant, so // our index is reversed. Each loop iteration computes res->d[i] of the // quotient and updates snum with the running remainder. Before each loop - // iteration, wnum <= sdiv. - for (int i = loop - 1; i >= 0; i--, wnump--) { - // TODO(crbug.com/358687140): Remove these running pointers. - wnum.d--; - assert(wnum.d == snum->d + i); - assert(wnump == wnum.d + div_n); - - // Knuth step D3: Compute q', an estimate of q = floor(wnum / sdiv) by - // looking at the top words. We must estimate such that q' = q or - // q' = q + 1. + // iteration, the div_n words beginning at snum->d[i+1] must be less than + // snum. + for (int i = loop - 1; i >= 0; i--) { + // The next word of the quotient, q, is floor(wnum / sdiv), where wnum is + // the div_n + 1 words beginning at snum->d[i]. i starts at + // num_n - div_n - 1, so there are at least div_n + 1 words available. + // + // Knuth step D3: Compute q', an estimate of q by looking at the top words + // of wnum and sdiv. We must estimate such that q' = q or q' = q + 1. BN_ULONG q, rm = 0; - BN_ULONG n0 = wnump[0]; - BN_ULONG n1 = wnump[-1]; + BN_ULONG *wnum = snum->d + i; + BN_ULONG n0 = wnum[div_n]; + BN_ULONG n1 = wnum[div_n - 1]; if (n0 == d0) { // Estimate q' = b - 1, where b is the base. q = BN_MASK2; @@ -325,10 +313,11 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // q + 1, Knuth uses a loop. A loop will often also correct q + 1 to q, // saving the slightly more expensive underflow handling below. if (div_n > 1) { + BN_ULONG n2 = wnum[div_n - 2]; #ifdef BN_ULLONG BN_ULLONG t2 = (BN_ULLONG)d1 * q; for (;;) { - if (t2 <= ((((BN_ULLONG)rm) << BN_BITS2) | wnump[-2])) { + if (t2 <= ((((BN_ULLONG)rm) << BN_BITS2) | n2)) { break; } q--; @@ -344,7 +333,7 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, BN_ULONG t2l, t2h; BN_UMULT_LOHI(t2l, t2h, d1, q); for (;;) { - if (t2h < rm || (t2h == rm && t2l <= wnump[-2])) { + if (t2h < rm || (t2h == rm && t2l <= n2)) { break; } q--; @@ -367,10 +356,10 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // -sdiv < wnum - sdiv * q < sdiv. If q' = q + 1, the subtraction will // underflow, and we fix it up below. tmp->d[div_n] = bn_mul_words(tmp->d, sdiv->d, div_n, q); - if (bn_sub_words(wnum.d, wnum.d, tmp->d, div_n + 1)) { + if (bn_sub_words(wnum, wnum, tmp->d, div_n + 1)) { q--; // The final addition is expected to overflow, canceling the underflow. - wnum.d[div_n] += bn_add_words(wnum.d, wnum.d, sdiv->d, div_n); + wnum[div_n] += bn_add_words(wnum, wnum, sdiv->d, div_n); } // q is now correct, and wnum has been updated to the running remainder. From 16f68ed0d16844f15b5cd6408a859cd5ffc80bc4 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 13 Aug 2024 15:57:38 -0400 Subject: [PATCH 25/81] Final cleanup pass in BN_div Tidy up the setup. Also we can simplify all the sign management. If snum and sdiv just preserve the sign bits of numerator and denominator, the remainder will have the correct sign from the start. (The original code called BN_cmp and BN_add in places, which is sensitive to the sign.) Fixed: 358687140 Change-Id: I2d5f952814c9910552330b18462796ffc3fe5dab Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70228 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c | 62 ++++++++++++-------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c index aa2e2e5b47..b321ff59da 100644 --- a/crypto/fipsmodule/bn/div.c +++ b/crypto/fipsmodule/bn/div.c @@ -185,13 +185,6 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, // Inputs to this function are assumed public and may be leaked by timing and // cache side channels. Division with secret inputs should use other // implementation strategies such as Montgomery reduction. - // - // Historically, this function diverged from Knuth's algorithm with some - // shortcuts in some cases. Those have been removed per "New Branch Prediction - // Vulnerabilities in OpenSSL and Necessary Software Countermeasures" by Onur - // Acıçmez, Shay Gueron, and Jean-Pierre Seifert. We continue to omit them for - // simplicity, but this function is no longer used with secret inputs. (We - // implement a variation on "Smooth CRT-RSA" as described in the paper.) if (BN_is_zero(divisor)) { OPENSSL_PUT_ERROR(BN, BN_R_DIV_BY_ZERO); return 0; @@ -201,13 +194,8 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, BIGNUM *tmp = BN_CTX_get(ctx); BIGNUM *snum = BN_CTX_get(ctx); BIGNUM *sdiv = BN_CTX_get(ctx); - BIGNUM *res = NULL; - if (quotient == NULL) { - res = BN_CTX_get(ctx); - } else { - res = quotient; - } - if (sdiv == NULL || res == NULL) { + BIGNUM *res = quotient == NULL ? BN_CTX_get(ctx) : quotient; + if (tmp == NULL || snum == NULL || sdiv == NULL || res == NULL) { goto err; } @@ -219,44 +207,37 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, !BN_lshift(snum, numerator, norm_shift)) { goto err; } + + // This algorithm relies on |sdiv| being minimal width. We do not use this + // function on secret inputs, so leaking this is fine. Also minimize |snum| to + // avoid looping on leading zeros, as we're not trying to be leak-free. bn_set_minimal_width(sdiv); bn_set_minimal_width(snum); - sdiv->neg = 0; - snum->neg = 0; + int div_n = sdiv->width; + const BN_ULONG d0 = sdiv->d[div_n - 1]; + const BN_ULONG d1 = (div_n == 1) ? 0 : sdiv->d[div_n - 2]; + assert(d0 & (((BN_ULONG)1) << (BN_BITS2 - 1))); // Extend |snum| with zeros to satisfy the long division invariants: // - |snum| must have at least |div_n| + 1 words. // - |snum|'s most significant word must be zero to guarantee the first loop // iteration works with a prefix greater than |sdiv|. (This is the extra u0 // digit in Knuth step D1.) - int div_n = sdiv->width; int num_n = snum->width <= div_n ? div_n + 1 : snum->width + 1; if (!bn_resize_words(snum, num_n)) { goto err; } + // Knuth step D2: The quotient's width is the difference between numerator and + // denominator. Also set up its sign and size a temporary for the loop. int loop = num_n - div_n; - - // Get the top 2 words of sdiv. - const BN_ULONG d0 = sdiv->d[div_n - 1]; - const BN_ULONG d1 = (div_n == 1) ? 0 : sdiv->d[div_n - 2]; - - // The normalization step ensures that |sdiv|'s MSB is one. - assert(d0 & (((BN_ULONG)1) << (BN_BITS2 - 1))); - - // Setup |res|. |numerator| and |res| may alias, so we save |numerator->neg| - // for later. - const int numerator_neg = numerator->neg; - res->neg = (numerator_neg ^ divisor->neg); - if (!bn_wexpand(res, loop)) { + res->neg = snum->neg ^ sdiv->neg; + if (!bn_wexpand(res, loop) || // + !bn_wexpand(tmp, div_n + 1)) { goto err; } res->width = loop; - if (!bn_wexpand(tmp, div_n + 1)) { - goto err; - } - // Knuth steps D2 through D7: Compute the quotient with a word-by-word long // division. Note that Knuth indexes words from most to least significant, so // our index is reversed. Each loop iteration computes res->d[i] of the @@ -366,18 +347,15 @@ int BN_div(BIGNUM *quotient, BIGNUM *rem, const BIGNUM *numerator, res->d[i] = q; } + // Trim leading zeros and correct any negative zeros. bn_set_minimal_width(snum); + bn_set_minimal_width(res); - if (rem != NULL) { - if (!BN_rshift(rem, snum, norm_shift)) { - goto err; - } - if (!BN_is_zero(rem)) { - rem->neg = numerator_neg; - } + // Knuth step D8: Unnormalize. snum now contains the remainder. + if (rem != NULL && !BN_rshift(rem, snum, norm_shift)) { + goto err; } - bn_set_minimal_width(res); BN_CTX_end(ctx); return 1; From f64d50dcd59e1758d4472fe2c6f5a717288f2138 Mon Sep 17 00:00:00 2001 From: Aaron Knobloch Date: Mon, 12 Aug 2024 20:08:05 +0000 Subject: [PATCH 26/81] [riscv64] Add qemu-static CIPD dependency for RISC-V checkouts Bug: 342657857 Test: Validated pulling & using Change-Id: I5b6dda58b21cf237e66064a7da2fdc8003fa047b Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70273 Reviewed-by: David Benjamin Commit-Queue: David Benjamin --- .gitignore | 1 + util/bot/DEPS | 29 ++++++++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 15653528b9..08261314a5 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ /util/bot/nasm-win32.exe /util/bot/ninja /util/bot/perl-win32 +/util/bot/qemu-static /util/bot/sde-linux64 /util/bot/sde-linux64.tar.xz /util/bot/sde-win32 diff --git a/util/bot/DEPS b/util/bot/DEPS index 36d05a0483..cb4bc0b4f9 100644 --- a/util/bot/DEPS +++ b/util/bot/DEPS @@ -20,6 +20,7 @@ vars = { 'checkout_sde': False, 'checkout_nasm': False, 'checkout_libcxx': False, + 'checkout_riscv64': False, 'vs_version': '2019', # Run the following command to see the latest builds in CIPD: @@ -43,6 +44,7 @@ vars = { # The Android NDK cannot be updated until https://crbug.com/boringssl/454 is fixed. # We rely on an older NDK to test building without NEON instructions as the baseline. 'android_ndk_revision': 'U0e8L6l52ySjBrUBB82Vdyhsg60vVMqH0ItTW3TRHAQC', + 'qemu_static_version': 'gYNEUqCr-Tu1C_vBu68YFtN31hjjLe61dnI2AtuyEsYC', } deps = { @@ -80,15 +82,6 @@ deps = { 'dep_type': 'cipd', }, - 'boringssl/util/bot/perl-win32': { - 'packages': [{ - 'package': 'infra/3pp/tools/perl/${{platform}}', - 'version': Var('perl_version'), - }], - 'condition': 'host_os == "win"', - 'dep_type': 'cipd', - }, - 'boringssl/util/bot/libFuzzer': { 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' +'@' + Var('libfuzzer_revision'), 'condition': 'checkout_fuzzer', @@ -109,6 +102,24 @@ deps = { 'version': Var('ninja_version'), }], 'dep_type': 'cipd', + }, + + 'boringssl/util/bot/perl-win32': { + 'packages': [{ + 'package': 'infra/3pp/tools/perl/${{platform}}', + 'version': Var('perl_version'), + }], + 'condition': 'host_os == "win"', + 'dep_type': 'cipd', + }, + + 'boringssl/util/bot/qemu-static': { + 'packages': [{ + 'package': 'infra/3pp/tools/qemu_static/linux-amd64', + 'version': Var('qemu_static_version') + }], + 'condition': 'checkout_riscv64', + 'dep_type': 'cipd', } } From 0ba200173353b3f9a3527254eb16903b93170342 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Thu, 1 Aug 2024 12:43:39 -0700 Subject: [PATCH 27/81] Add ML-DSA. This change implements FIPS 204. Change-Id: I0043850767c93cc7235a15c701798fee6e1af1bf Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69987 Reviewed-by: Bob Beck Commit-Queue: Adam Langley Reviewed-by: David Benjamin --- build.json | 6 + crypto/mldsa/internal.h | 67 + crypto/mldsa/mldsa.c | 1690 +++++++++++++++++ crypto/mldsa/mldsa_nist_keygen_tests.txt | 103 + crypto/mldsa/mldsa_nist_siggen_tests.txt | 42 + crypto/mldsa/mldsa_test.cc | 346 ++++ gen/sources.bzl | 8 + gen/sources.cmake | 8 + gen/sources.json | 8 + include/openssl/mldsa.h | 143 ++ .../mldsa_65_standard_sign_test.json | 841 ++++++++ .../mldsa_65_standard_sign_test.txt | 503 +++++ .../mldsa_65_standard_verify_test.json | 1026 ++++++++++ .../mldsa_65_standard_verify_test.txt | 617 ++++++ tool/speed.cc | 147 +- util/convert_wycheproof/convert_wycheproof.go | 1 - util/doc.config | 1 + 17 files changed, 5539 insertions(+), 18 deletions(-) create mode 100644 crypto/mldsa/internal.h create mode 100644 crypto/mldsa/mldsa.c create mode 100644 crypto/mldsa/mldsa_nist_keygen_tests.txt create mode 100644 crypto/mldsa/mldsa_nist_siggen_tests.txt create mode 100644 crypto/mldsa/mldsa_test.cc create mode 100644 include/openssl/mldsa.h create mode 100644 third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.json create mode 100644 third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt create mode 100644 third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.json create mode 100644 third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt diff --git a/build.json b/build.json index 9d0179d00b..9cd0f8521e 100644 --- a/build.json +++ b/build.json @@ -270,6 +270,7 @@ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/mem.c", + "crypto/mldsa/mldsa.c", "crypto/obj/obj.c", "crypto/obj/obj_xref.c", "crypto/pem/pem_all.c", @@ -442,6 +443,7 @@ "include/openssl/md4.h", "include/openssl/md5.h", "include/openssl/mem.h", + "include/openssl/mldsa.h", "include/openssl/nid.h", "include/openssl/obj.h", "include/openssl/obj_mac.h", @@ -520,6 +522,7 @@ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/mldsa/internal.h", "crypto/obj/obj_dat.h", "crypto/pkcs7/internal.h", "crypto/pkcs8/internal.h", @@ -835,6 +838,7 @@ "crypto/lhash/lhash_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", + "crypto/mldsa/mldsa_test.cc", "crypto/pkcs7/pkcs7_test.cc", "crypto/pkcs8/pkcs12_test.cc", "crypto/pkcs8/pkcs8_test.cc", @@ -882,6 +886,8 @@ "crypto/hpke/hpke_test_vectors.txt", "crypto/keccak/keccak_tests.txt", "crypto/kyber/kyber_tests.txt", + "crypto/mldsa/mldsa_nist_keygen_tests.txt", + "crypto/mldsa/mldsa_nist_siggen_tests.txt", "crypto/pkcs8/test/*.p12", "crypto/poly1305/poly1305_tests.txt", "crypto/siphash/siphash_tests.txt", diff --git a/crypto/mldsa/internal.h b/crypto/mldsa/internal.h new file mode 100644 index 0000000000..1c7576169e --- /dev/null +++ b/crypto/mldsa/internal.h @@ -0,0 +1,67 @@ +/* Copyright (c) 2024, Google LLC + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_CRYPTO_MLDSA_INTERNAL_H +#define OPENSSL_HEADER_CRYPTO_MLDSA_INTERNAL_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + + +// MLDSA_SIGNATURE_RANDOMIZER_BYTES is the number of bytes of uniformly +// random entropy necessary to generate a signature in randomized mode. +#define MLDSA_SIGNATURE_RANDOMIZER_BYTES 32 + +// MLDSA65_generate_key_external_entropy generates a public/private key pair +// using the given seed, writes the encoded public key to +// |out_encoded_public_key| and sets |out_private_key| to the private key. +// It returns 1 on success and 0 on failure. +OPENSSL_EXPORT int MLDSA65_generate_key_external_entropy( + uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES], + struct MLDSA65_private_key *out_private_key, + const uint8_t entropy[MLDSA_SEED_BYTES]); + +// MLDSA65_sign_internal signs |msg| using |private_key| and writes the +// signature to |out_encoded_signature|. The |context_prefix| and |context| are +// prefixed to the message, in that order, before signing. The |randomizer| +// value can be set to zero bytes in order to make a deterministic signature, or +// else filled with entropy for the usual |MLDSA_sign| behavior. It returns 1 on +// success and 0 on error. +OPENSSL_EXPORT int MLDSA65_sign_internal( + uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES], + const struct MLDSA65_private_key *private_key, const uint8_t *msg, + size_t msg_len, const uint8_t *context_prefix, size_t context_prefix_len, + const uint8_t *context, size_t context_len, + const uint8_t randomizer[MLDSA_SIGNATURE_RANDOMIZER_BYTES]); + +// MLDSA65_verify_internal verifies that |encoded_signature| is a valid +// signature of |msg| by |public_key|. The |context_prefix| and |context| are +// prefixed to the message before verification, in that order. It returns 1 on +// success and 0 on error. +OPENSSL_EXPORT int MLDSA65_verify_internal( + const struct MLDSA65_public_key *public_key, + const uint8_t encoded_signature[MLDSA65_SIGNATURE_BYTES], + const uint8_t *msg, size_t msg_len, const uint8_t *context_prefix, + size_t context_prefix_len, const uint8_t *context, size_t context_len); + + +#if defined(__cplusplus) +} // extern C +#endif + +#endif // OPENSSL_HEADER_CRYPTO_MLDSA_INTERNAL_H diff --git a/crypto/mldsa/mldsa.c b/crypto/mldsa/mldsa.c new file mode 100644 index 0000000000..f1a85b80e4 --- /dev/null +++ b/crypto/mldsa/mldsa.c @@ -0,0 +1,1690 @@ +/* Copyright (c) 2024, Google LLC + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include + +#include +#include + +#include +#include + +#include "../internal.h" +#include "../keccak/internal.h" +#include "./internal.h" + +#define DEGREE 256 +#define K 6 +#define L 5 +#define ETA 4 +#define TAU 49 +#define BETA 196 +#define OMEGA 55 + +#define RHO_BYTES 32 +#define SIGMA_BYTES 64 +#define K_BYTES 32 +#define TR_BYTES 64 +#define MU_BYTES 64 +#define RHO_PRIME_BYTES 64 +#define LAMBDA_BITS 192 +#define LAMBDA_BYTES (LAMBDA_BITS / 8) + +// 2^23 - 2^13 + 1 +static const uint32_t kPrime = 8380417; +// Inverse of -kPrime modulo 2^32 +static const uint32_t kPrimeNegInverse = 4236238847; +static const int kDroppedBits = 13; +static const uint32_t kHalfPrime = (8380417 - 1) / 2; +static const uint32_t kGamma1 = 1 << 19; +static const uint32_t kGamma2 = (8380417 - 1) / 32; +// 256^-1 mod kPrime, in Montgomery form. +static const uint32_t kInverseDegreeMontgomery = 41978; + +typedef struct scalar { + uint32_t c[DEGREE]; +} scalar; + +typedef struct vectork { + scalar v[K]; +} vectork; + +typedef struct vectorl { + scalar v[L]; +} vectorl; + +typedef struct matrix { + scalar v[K][L]; +} matrix; + +/* Arithmetic */ + +// This bit of Python will be referenced in some of the following comments: +// +// q = 8380417 +// # Inverse of -q modulo 2^32 +// q_neg_inverse = 4236238847 +// # 2^64 modulo q +// montgomery_square = 2365951 +// +// def bitreverse(i): +// ret = 0 +// for n in range(8): +// bit = i & 1 +// ret <<= 1 +// ret |= bit +// i >>= 1 +// return ret +// +// def montgomery_reduce(x): +// a = (x * q_neg_inverse) % 2**32 +// b = x + a * q +// assert b & 0xFFFF_FFFF == 0 +// c = b >> 32 +// assert c < q +// return c +// +// def montgomery_transform(x): +// return montgomery_reduce(x * montgomery_square) + +// kNTTRootsMontgomery = [ +// montgomery_transform(pow(1753, bitreverse(i), q)) for i in range(256) +// ] +static const uint32_t kNTTRootsMontgomery[256] = { + 4193792, 25847, 5771523, 7861508, 237124, 7602457, 7504169, 466468, + 1826347, 2353451, 8021166, 6288512, 3119733, 5495562, 3111497, 2680103, + 2725464, 1024112, 7300517, 3585928, 7830929, 7260833, 2619752, 6271868, + 6262231, 4520680, 6980856, 5102745, 1757237, 8360995, 4010497, 280005, + 2706023, 95776, 3077325, 3530437, 6718724, 4788269, 5842901, 3915439, + 4519302, 5336701, 3574422, 5512770, 3539968, 8079950, 2348700, 7841118, + 6681150, 6736599, 3505694, 4558682, 3507263, 6239768, 6779997, 3699596, + 811944, 531354, 954230, 3881043, 3900724, 5823537, 2071892, 5582638, + 4450022, 6851714, 4702672, 5339162, 6927966, 3475950, 2176455, 6795196, + 7122806, 1939314, 4296819, 7380215, 5190273, 5223087, 4747489, 126922, + 3412210, 7396998, 2147896, 2715295, 5412772, 4686924, 7969390, 5903370, + 7709315, 7151892, 8357436, 7072248, 7998430, 1349076, 1852771, 6949987, + 5037034, 264944, 508951, 3097992, 44288, 7280319, 904516, 3958618, + 4656075, 8371839, 1653064, 5130689, 2389356, 8169440, 759969, 7063561, + 189548, 4827145, 3159746, 6529015, 5971092, 8202977, 1315589, 1341330, + 1285669, 6795489, 7567685, 6940675, 5361315, 4499357, 4751448, 3839961, + 2091667, 3407706, 2316500, 3817976, 5037939, 2244091, 5933984, 4817955, + 266997, 2434439, 7144689, 3513181, 4860065, 4621053, 7183191, 5187039, + 900702, 1859098, 909542, 819034, 495491, 6767243, 8337157, 7857917, + 7725090, 5257975, 2031748, 3207046, 4823422, 7855319, 7611795, 4784579, + 342297, 286988, 5942594, 4108315, 3437287, 5038140, 1735879, 203044, + 2842341, 2691481, 5790267, 1265009, 4055324, 1247620, 2486353, 1595974, + 4613401, 1250494, 2635921, 4832145, 5386378, 1869119, 1903435, 7329447, + 7047359, 1237275, 5062207, 6950192, 7929317, 1312455, 3306115, 6417775, + 7100756, 1917081, 5834105, 7005614, 1500165, 777191, 2235880, 3406031, + 7838005, 5548557, 6709241, 6533464, 5796124, 4656147, 594136, 4603424, + 6366809, 2432395, 2454455, 8215696, 1957272, 3369112, 185531, 7173032, + 5196991, 162844, 1616392, 3014001, 810149, 1652634, 4686184, 6581310, + 5341501, 3523897, 3866901, 269760, 2213111, 7404533, 1717735, 472078, + 7953734, 1723600, 6577327, 1910376, 6712985, 7276084, 8119771, 4546524, + 5441381, 6144432, 7959518, 6094090, 183443, 7403526, 1612842, 4834730, + 7826001, 3919660, 8332111, 7018208, 3937738, 1400424, 7534263, 1976782}; + +// Reduces x mod kPrime in constant time, where 0 <= x < 2*kPrime. +static uint32_t reduce_once(uint32_t x) { + declassify_assert(x < 2 * kPrime); + // return x < kPrime ? x : x - kPrime; + return constant_time_select_int(constant_time_lt_w(x, kPrime), x, x - kPrime); +} + +// Returns the absolute value in constant time. +static uint32_t abs_signed(uint32_t x) { + // return is_positive(x) ? x : -x; + // Note: MSVC doesn't like applying the unary minus operator to unsigned types + // (warning C4146), so we write the negation as a bitwise not plus one + // (assuming two's complement representation). + return constant_time_select_int(constant_time_lt_w(x, 0x80000000), x, 0u - x); +} + +// Returns the absolute value modulo kPrime. +static uint32_t abs_mod_prime(uint32_t x) { + declassify_assert(x < kPrime); + // return x > kHalfPrime ? kPrime - x : x; + return constant_time_select_int(constant_time_lt_w(kHalfPrime, x), kPrime - x, + x); +} + +// Returns the maximum of two values in constant time. +static uint32_t maximum(uint32_t x, uint32_t y) { + // return x < y ? y : x; + return constant_time_select_int(constant_time_lt_w(x, y), y, x); +} + +static uint32_t mod_sub(uint32_t a, uint32_t b) { + declassify_assert(a < kPrime); + declassify_assert(b < kPrime); + return reduce_once(kPrime + a - b); +} + +static void scalar_add(scalar *out, const scalar *lhs, const scalar *rhs) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = reduce_once(lhs->c[i] + rhs->c[i]); + } +} + +static void scalar_sub(scalar *out, const scalar *lhs, const scalar *rhs) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = mod_sub(lhs->c[i], rhs->c[i]); + } +} + +static uint32_t reduce_montgomery(uint64_t x) { + declassify_assert(x <= ((uint64_t)kPrime << 32)); + uint64_t a = (uint32_t)x * kPrimeNegInverse; + uint64_t b = x + a * kPrime; + declassify_assert((b & 0xffffffff) == 0); + uint32_t c = b >> 32; + return reduce_once(c); +} + +// Multiply two scalars in the number theoretically transformed state. +static void scalar_mult(scalar *out, const scalar *lhs, const scalar *rhs) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = reduce_montgomery((uint64_t)lhs->c[i] * (uint64_t)rhs->c[i]); + } +} + +// In place number theoretic transform of a given scalar. +// +// FIPS 204, Algorithm 41 (`NTT`). +static void scalar_ntt(scalar *s) { + // Step: 1, 2, 4, 8, ..., 128 + // Offset: 128, 64, 32, 16, ..., 1 + int offset = DEGREE; + for (int step = 1; step < DEGREE; step <<= 1) { + offset >>= 1; + int k = 0; + for (int i = 0; i < step; i++) { + assert(k == 2 * offset * i); + const uint32_t step_root = kNTTRootsMontgomery[step + i]; + for (int j = k; j < k + offset; j++) { + uint32_t even = s->c[j]; + // |reduce_montgomery| works on values up to kPrime*R and R > 2*kPrime. + // |step_root| < kPrime because it's static data. |s->c[...]| is < + // kPrime by the invariants of that struct. + uint32_t odd = + reduce_montgomery((uint64_t)step_root * (uint64_t)s->c[j + offset]); + s->c[j] = reduce_once(odd + even); + s->c[j + offset] = mod_sub(even, odd); + } + k += 2 * offset; + } + } +} + +// In place inverse number theoretic transform of a given scalar. +// +// FIPS 204, Algorithm 42 (`NTT^-1`). +static void scalar_inverse_ntt(scalar *s) { + // Step: 128, 64, 32, 16, ..., 1 + // Offset: 1, 2, 4, 8, ..., 128 + int step = DEGREE; + for (int offset = 1; offset < DEGREE; offset <<= 1) { + step >>= 1; + int k = 0; + for (int i = 0; i < step; i++) { + assert(k == 2 * offset * i); + const uint32_t step_root = + kPrime - kNTTRootsMontgomery[step + (step - 1 - i)]; + for (int j = k; j < k + offset; j++) { + uint32_t even = s->c[j]; + uint32_t odd = s->c[j + offset]; + s->c[j] = reduce_once(odd + even); + + // |reduce_montgomery| works on values up to kPrime*R and R > 2*kPrime. + // kPrime + even < 2*kPrime because |even| < kPrime, by the invariants + // of that structure. Thus kPrime + even - odd < 2*kPrime because odd >= + // 0, because it's unsigned and less than kPrime. Lastly step_root < + // kPrime, because |kNTTRootsMontgomery| is static data. + s->c[j + offset] = reduce_montgomery((uint64_t)step_root * + (uint64_t)(kPrime + even - odd)); + } + k += 2 * offset; + } + } + for (int i = 0; i < DEGREE; i++) { + s->c[i] = reduce_montgomery((uint64_t)s->c[i] * + (uint64_t)kInverseDegreeMontgomery); + } +} + +static void vectork_zero(vectork *out) { OPENSSL_memset(out, 0, sizeof(*out)); } + +static void vectork_add(vectork *out, const vectork *lhs, const vectork *rhs) { + for (int i = 0; i < K; i++) { + scalar_add(&out->v[i], &lhs->v[i], &rhs->v[i]); + } +} + +static void vectork_sub(vectork *out, const vectork *lhs, const vectork *rhs) { + for (int i = 0; i < K; i++) { + scalar_sub(&out->v[i], &lhs->v[i], &rhs->v[i]); + } +} + +static void vectork_mult_scalar(vectork *out, const vectork *lhs, + const scalar *rhs) { + for (int i = 0; i < K; i++) { + scalar_mult(&out->v[i], &lhs->v[i], rhs); + } +} + +static void vectork_ntt(vectork *a) { + for (int i = 0; i < K; i++) { + scalar_ntt(&a->v[i]); + } +} + +static void vectork_inverse_ntt(vectork *a) { + for (int i = 0; i < K; i++) { + scalar_inverse_ntt(&a->v[i]); + } +} + +static void vectorl_add(vectorl *out, const vectorl *lhs, const vectorl *rhs) { + for (int i = 0; i < L; i++) { + scalar_add(&out->v[i], &lhs->v[i], &rhs->v[i]); + } +} + +static void vectorl_mult_scalar(vectorl *out, const vectorl *lhs, + const scalar *rhs) { + for (int i = 0; i < L; i++) { + scalar_mult(&out->v[i], &lhs->v[i], rhs); + } +} + +static void vectorl_ntt(vectorl *a) { + for (int i = 0; i < L; i++) { + scalar_ntt(&a->v[i]); + } +} + +static void vectorl_inverse_ntt(vectorl *a) { + for (int i = 0; i < L; i++) { + scalar_inverse_ntt(&a->v[i]); + } +} + +static void matrix_mult(vectork *out, const matrix *m, const vectorl *a) { + vectork_zero(out); + for (int i = 0; i < K; i++) { + for (int j = 0; j < L; j++) { + scalar product; + scalar_mult(&product, &m->v[i][j], &a->v[j]); + scalar_add(&out->v[i], &out->v[i], &product); + } + } +} + +/* Rounding & hints */ + +// FIPS 204, Algorithm 35 (`Power2Round`). +static void power2_round(uint32_t *r1, uint32_t *r0, uint32_t r) { + *r1 = r >> kDroppedBits; + *r0 = r - (*r1 << kDroppedBits); + + uint32_t r0_adjusted = mod_sub(*r0, 1 << kDroppedBits); + uint32_t r1_adjusted = *r1 + 1; + + // Mask is set iff r0 > 2^(dropped_bits - 1). + crypto_word_t mask = + constant_time_lt_w((uint32_t)(1 << (kDroppedBits - 1)), *r0); + // r0 = mask ? r0_adjusted : r0 + *r0 = constant_time_select_int(mask, r0_adjusted, *r0); + // r1 = mask ? r1_adjusted : r1 + *r1 = constant_time_select_int(mask, r1_adjusted, *r1); +} + +// Scale back previously rounded value. +static void scale_power2_round(uint32_t *out, uint32_t r1) { + // Pre-condition: 0 <= r1 <= 2^10 - 1 + assert(r1 < (1u << 10)); + + *out = r1 << kDroppedBits; + + // Post-condition: 0 <= out <= 2^23 - 2^13 = kPrime - 1 + assert(*out < kPrime); +} + +// FIPS 204, Algorithm 37 (`HighBits`). +static uint32_t high_bits(uint32_t x) { + // Reference description (given 0 <= x < q): + // + // ``` + // int32_t r0 = x mod+- (2 * kGamma2); + // if (x - r0 == q - 1) { + // return 0; + // } else { + // return (x - r0) / (2 * kGamma2); + // } + // ``` + // + // Below is the formula taken from the reference implementation. + // + // Here, kGamma2 == 2^18 - 2^8 + // This returns ((ceil(x / 2^7) * (2^10 + 1) + 2^21) / 2^22) mod 2^4 + uint32_t r1 = (x + 127) >> 7; + r1 = (r1 * 1025 + (1 << 21)) >> 22; + r1 &= 15; + return r1; +} + +// FIPS 204, Algorithm 36 (`Decompose`). +static void decompose(uint32_t *r1, int32_t *r0, uint32_t r) { + *r1 = high_bits(r); + + *r0 = r; + *r0 -= *r1 * 2 * (int32_t)kGamma2; + *r0 -= (((int32_t)kHalfPrime - *r0) >> 31) & (int32_t)kPrime; +} + +// FIPS 204, Algorithm 38 (`LowBits`). +static int32_t low_bits(uint32_t x) { + uint32_t r1; + int32_t r0; + decompose(&r1, &r0, x); + return r0; +} + +// FIPS 204, Algorithm 39 (`MakeHint`). +// +// In the spec this takes two arguments, z and r, and is called with +// z = -ct0 +// r = w - cs2 + ct0 +// +// It then computes HighBits (algorithm 37) of z and z+r. But z+r is just w - +// cs2, so this takes three arguments and saves an addition. +static int32_t make_hint(uint32_t ct0, uint32_t cs2, uint32_t w) { + uint32_t r_plus_z = mod_sub(w, cs2); + uint32_t r = reduce_once(r_plus_z + ct0); + return high_bits(r) != high_bits(r_plus_z); +} + +// FIPS 204, Algorithm 40 (`UseHint`). +static uint32_t use_hint_vartime(uint32_t h, uint32_t r) { + uint32_t r1; + int32_t r0; + decompose(&r1, &r0, r); + + if (h) { + if (r0 > 0) { + // m = 16, thus |mod m| in the spec turns into |& 15|. + return (r1 + 1) & 15; + } else { + return (r1 - 1) & 15; + } + } + return r1; +} + +static void scalar_power2_round(scalar *s1, scalar *s0, const scalar *s) { + for (int i = 0; i < DEGREE; i++) { + power2_round(&s1->c[i], &s0->c[i], s->c[i]); + } +} + +static void scalar_scale_power2_round(scalar *out, const scalar *in) { + for (int i = 0; i < DEGREE; i++) { + scale_power2_round(&out->c[i], in->c[i]); + } +} + +static void scalar_high_bits(scalar *out, const scalar *in) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = high_bits(in->c[i]); + } +} + +static void scalar_low_bits(scalar *out, const scalar *in) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = low_bits(in->c[i]); + } +} + +static void scalar_max(uint32_t *max, const scalar *s) { + for (int i = 0; i < DEGREE; i++) { + uint32_t abs = abs_mod_prime(s->c[i]); + *max = maximum(*max, abs); + } +} + +static void scalar_max_signed(uint32_t *max, const scalar *s) { + for (int i = 0; i < DEGREE; i++) { + uint32_t abs = abs_signed(s->c[i]); + *max = maximum(*max, abs); + } +} + +static void scalar_make_hint(scalar *out, const scalar *ct0, const scalar *cs2, + const scalar *w) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = make_hint(ct0->c[i], cs2->c[i], w->c[i]); + } +} + +static void scalar_use_hint_vartime(scalar *out, const scalar *h, + const scalar *r) { + for (int i = 0; i < DEGREE; i++) { + out->c[i] = use_hint_vartime(h->c[i], r->c[i]); + } +} + +static void vectork_power2_round(vectork *t1, vectork *t0, const vectork *t) { + for (int i = 0; i < K; i++) { + scalar_power2_round(&t1->v[i], &t0->v[i], &t->v[i]); + } +} + +static void vectork_scale_power2_round(vectork *out, const vectork *in) { + for (int i = 0; i < K; i++) { + scalar_scale_power2_round(&out->v[i], &in->v[i]); + } +} + +static void vectork_high_bits(vectork *out, const vectork *in) { + for (int i = 0; i < K; i++) { + scalar_high_bits(&out->v[i], &in->v[i]); + } +} + +static void vectork_low_bits(vectork *out, const vectork *in) { + for (int i = 0; i < K; i++) { + scalar_low_bits(&out->v[i], &in->v[i]); + } +} + +static uint32_t vectork_max(const vectork *a) { + uint32_t max = 0; + for (int i = 0; i < K; i++) { + scalar_max(&max, &a->v[i]); + } + return max; +} + +static uint32_t vectork_max_signed(const vectork *a) { + uint32_t max = 0; + for (int i = 0; i < K; i++) { + scalar_max_signed(&max, &a->v[i]); + } + return max; +} + +// The input vector contains only zeroes and ones. +static size_t vectork_count_ones(const vectork *a) { + size_t count = 0; + for (int i = 0; i < K; i++) { + for (int j = 0; j < DEGREE; j++) { + count += a->v[i].c[j]; + } + } + return count; +} + +static void vectork_make_hint(vectork *out, const vectork *ct0, + const vectork *cs2, const vectork *w) { + for (int i = 0; i < K; i++) { + scalar_make_hint(&out->v[i], &ct0->v[i], &cs2->v[i], &w->v[i]); + } +} + +static void vectork_use_hint_vartime(vectork *out, const vectork *h, + const vectork *r) { + for (int i = 0; i < K; i++) { + scalar_use_hint_vartime(&out->v[i], &h->v[i], &r->v[i]); + } +} + +static uint32_t vectorl_max(const vectorl *a) { + uint32_t max = 0; + for (int i = 0; i < L; i++) { + scalar_max(&max, &a->v[i]); + } + return max; +} + +/* Bit packing */ + +// FIPS 204, Algorithm 16 (`SimpleBitPack`). Specialized to bitlen(b) = 4. +static void scalar_encode_4(uint8_t out[128], const scalar *s) { + // Every two elements lands on a byte boundary. + static_assert(DEGREE % 2 == 0, "DEGREE must be a multiple of 2"); + for (int i = 0; i < DEGREE / 2; i++) { + uint32_t a = s->c[2 * i]; + uint32_t b = s->c[2 * i + 1]; + declassify_assert(a < 16); + declassify_assert(b < 16); + out[i] = a | (b << 4); + } +} + +// FIPS 204, Algorithm 16 (`SimpleBitPack`). Specialized to bitlen(b) = 10. +static void scalar_encode_10(uint8_t out[320], const scalar *s) { + // Every four elements lands on a byte boundary. + static_assert(DEGREE % 4 == 0, "DEGREE must be a multiple of 4"); + for (int i = 0; i < DEGREE / 4; i++) { + uint32_t a = s->c[4 * i]; + uint32_t b = s->c[4 * i + 1]; + uint32_t c = s->c[4 * i + 2]; + uint32_t d = s->c[4 * i + 3]; + declassify_assert(a < 1024); + declassify_assert(b < 1024); + declassify_assert(c < 1024); + declassify_assert(d < 1024); + out[5 * i] = (uint8_t)a; + out[5 * i + 1] = (uint8_t)((a >> 8) | (b << 2)); + out[5 * i + 2] = (uint8_t)((b >> 6) | (c << 4)); + out[5 * i + 3] = (uint8_t)((c >> 4) | (d << 6)); + out[5 * i + 4] = (uint8_t)(d >> 2); + } +} + +// FIPS 204, Algorithm 17 (`BitPack`). Specialized to bitlen(b) = 4 and b = +// 2^19. +static void scalar_encode_signed_4_eta(uint8_t out[128], const scalar *s) { + // Every two elements lands on a byte boundary. + static_assert(DEGREE % 2 == 0, "DEGREE must be a multiple of 2"); + for (int i = 0; i < DEGREE / 2; i++) { + uint32_t a = mod_sub(ETA, s->c[2 * i]); + uint32_t b = mod_sub(ETA, s->c[2 * i + 1]); + declassify_assert(a < 16); + declassify_assert(b < 16); + out[i] = a | (b << 4); + } +} + +// FIPS 204, Algorithm 17 (`BitPack`). Specialized to bitlen(b) = 13 and b = +// 2^12. +static void scalar_encode_signed_13_12(uint8_t out[416], const scalar *s) { + static const uint32_t kMax = 1u << 12; + // Every two elements lands on a byte boundary. + static_assert(DEGREE % 8 == 0, "DEGREE must be a multiple of 8"); + for (int i = 0; i < DEGREE / 8; i++) { + uint32_t a = mod_sub(kMax, s->c[8 * i]); + uint32_t b = mod_sub(kMax, s->c[8 * i + 1]); + uint32_t c = mod_sub(kMax, s->c[8 * i + 2]); + uint32_t d = mod_sub(kMax, s->c[8 * i + 3]); + uint32_t e = mod_sub(kMax, s->c[8 * i + 4]); + uint32_t f = mod_sub(kMax, s->c[8 * i + 5]); + uint32_t g = mod_sub(kMax, s->c[8 * i + 6]); + uint32_t h = mod_sub(kMax, s->c[8 * i + 7]); + declassify_assert(a < (1u << 13)); + declassify_assert(b < (1u << 13)); + declassify_assert(c < (1u << 13)); + declassify_assert(d < (1u << 13)); + declassify_assert(e < (1u << 13)); + declassify_assert(f < (1u << 13)); + declassify_assert(g < (1u << 13)); + declassify_assert(h < (1u << 13)); + a |= b << 13; + a |= c << 26; + c >>= 6; + c |= d << 7; + c |= e << 20; + e >>= 12; + e |= f << 1; + e |= g << 14; + e |= h << 27; + h >>= 5; + memcpy(&out[13 * i], &a, sizeof(a)); + memcpy(&out[13 * i + 4], &c, sizeof(c)); + memcpy(&out[13 * i + 8], &e, sizeof(e)); + memcpy(&out[13 * i + 12], &h, 1); + } +} + +// FIPS 204, Algorithm 17 (`BitPack`). Specialized to bitlen(b) = 20 and b = +// 2^19. +static void scalar_encode_signed_20_19(uint8_t out[640], const scalar *s) { + static const uint32_t kMax = 1u << 19; + // Every two elements lands on a byte boundary. + static_assert(DEGREE % 4 == 0, "DEGREE must be a multiple of 4"); + for (int i = 0; i < DEGREE / 4; i++) { + uint32_t a = mod_sub(kMax, s->c[4 * i]); + uint32_t b = mod_sub(kMax, s->c[4 * i + 1]); + uint32_t c = mod_sub(kMax, s->c[4 * i + 2]); + uint32_t d = mod_sub(kMax, s->c[4 * i + 3]); + declassify_assert(a < (1u << 20)); + declassify_assert(b < (1u << 20)); + declassify_assert(c < (1u << 20)); + declassify_assert(d < (1u << 20)); + a |= b << 20; + b >>= 12; + b |= c << 8; + b |= d << 28; + d >>= 4; + memcpy(&out[10 * i], &a, sizeof(a)); + memcpy(&out[10 * i + 4], &b, sizeof(b)); + memcpy(&out[10 * i + 8], &d, 2); + } +} + +// FIPS 204, Algorithm 17 (`BitPack`). +static void scalar_encode_signed(uint8_t *out, const scalar *s, int bits, + uint32_t max) { + if (bits == 4) { + assert(max == ETA); + scalar_encode_signed_4_eta(out, s); + } else if (bits == 20) { + assert(max == 1u << 19); + scalar_encode_signed_20_19(out, s); + } else { + assert(bits == 13); + assert(max == 1u << 12); + scalar_encode_signed_13_12(out, s); + } +} + +// FIPS 204, Algorithm 18 (`SimpleBitUnpack`). Specialized for bitlen(b) == 10. +static void scalar_decode_10(scalar *out, const uint8_t in[320]) { + uint32_t v; + static_assert(DEGREE % 4 == 0, "DEGREE must be a multiple of 4"); + for (int i = 0; i < DEGREE / 4; i++) { + OPENSSL_memcpy(&v, &in[5 * i], sizeof(v)); + out->c[4 * i] = v & 0x3ff; + out->c[4 * i + 1] = (v >> 10) & 0x3ff; + out->c[4 * i + 2] = (v >> 20) & 0x3ff; + out->c[4 * i + 3] = (v >> 30) | (((uint32_t)in[5 * i + 4]) << 2); + } +} + +// FIPS 204, Algorithm 19 (`BitUnpack`). Specialized to bitlen(a+b) = 4 and b = +// eta. +static int scalar_decode_signed_4_eta(scalar *out, const uint8_t in[128]) { + uint32_t v; + static_assert(DEGREE % 8 == 0, "DEGREE must be a multiple of 8"); + for (int i = 0; i < DEGREE / 8; i++) { + OPENSSL_memcpy(&v, &in[4 * i], sizeof(v)); + static_assert(ETA == 4, "ETA must be 4"); + // None of the nibbles may be >= 9. So if the MSB of any nibble is set, none + // of the other bits may be set. First, select all the MSBs. + const uint32_t msbs = v & 0x88888888u; + // For each nibble where the MSB is set, form a mask of all the other bits. + const uint32_t mask = (msbs >> 1) | (msbs >> 2) | (msbs >> 3); + // A nibble is only out of range in the case of invalid input, in which case + // it is okay to leak the value. + if (constant_time_declassify_int((mask & v) != 0)) { + return 0; + } + + out->c[i * 8] = mod_sub(ETA, v & 15); + out->c[i * 8 + 1] = mod_sub(ETA, (v >> 4) & 15); + out->c[i * 8 + 2] = mod_sub(ETA, (v >> 8) & 15); + out->c[i * 8 + 3] = mod_sub(ETA, (v >> 12) & 15); + out->c[i * 8 + 4] = mod_sub(ETA, (v >> 16) & 15); + out->c[i * 8 + 5] = mod_sub(ETA, (v >> 20) & 15); + out->c[i * 8 + 6] = mod_sub(ETA, (v >> 24) & 15); + out->c[i * 8 + 7] = mod_sub(ETA, v >> 28); + } + return 1; +} + +// FIPS 204, Algorithm 19 (`BitUnpack`). Specialized to bitlen(a+b) = 13 and b = +// 2^12. +static void scalar_decode_signed_13_12(scalar *out, const uint8_t in[416]) { + static const uint32_t kMax = 1u << 12; + static const uint32_t k13Bits = (1u << 13) - 1; + static const uint32_t k7Bits = (1u << 7) - 1; + + uint32_t a, b, c; + uint8_t d; + static_assert(DEGREE % 8 == 0, "DEGREE must be a multiple of 8"); + for (int i = 0; i < DEGREE / 8; i++) { + OPENSSL_memcpy(&a, &in[13 * i], sizeof(a)); + OPENSSL_memcpy(&b, &in[13 * i + 4], sizeof(b)); + OPENSSL_memcpy(&c, &in[13 * i + 8], sizeof(c)); + d = in[13 * i + 12]; + + // It's not possible for a 13-bit number to be out of range when the max is + // 2^12. + out->c[i * 8] = mod_sub(kMax, a & k13Bits); + out->c[i * 8 + 1] = mod_sub(kMax, (a >> 13) & k13Bits); + out->c[i * 8 + 2] = mod_sub(kMax, (a >> 26) | ((b & k7Bits) << 6)); + out->c[i * 8 + 3] = mod_sub(kMax, (b >> 7) & k13Bits); + out->c[i * 8 + 4] = mod_sub(kMax, (b >> 20) | ((c & 1) << 12)); + out->c[i * 8 + 5] = mod_sub(kMax, (c >> 1) & k13Bits); + out->c[i * 8 + 6] = mod_sub(kMax, (c >> 14) & k13Bits); + out->c[i * 8 + 7] = mod_sub(kMax, (c >> 27) | ((uint32_t)d) << 5); + } +} + +// FIPS 204, Algorithm 19 (`BitUnpack`). Specialized to bitlen(a+b) = 20 and b = +// 2^19. +static void scalar_decode_signed_20_19(scalar *out, const uint8_t in[640]) { + static const uint32_t kMax = 1u << 19; + static const uint32_t k20Bits = (1u << 20) - 1; + + uint32_t a, b; + uint16_t c; + static_assert(DEGREE % 4 == 0, "DEGREE must be a multiple of 4"); + for (int i = 0; i < DEGREE / 4; i++) { + OPENSSL_memcpy(&a, &in[10 * i], sizeof(a)); + OPENSSL_memcpy(&b, &in[10 * i + 4], sizeof(b)); + OPENSSL_memcpy(&c, &in[10 * i + 8], sizeof(c)); + + // It's not possible for a 20-bit number to be out of range when the max is + // 2^19. + out->c[i * 4] = mod_sub(kMax, a & k20Bits); + out->c[i * 4 + 1] = mod_sub(kMax, (a >> 20) | ((b & 0xff) << 12)); + out->c[i * 4 + 2] = mod_sub(kMax, (b >> 8) & k20Bits); + out->c[i * 4 + 3] = mod_sub(kMax, (b >> 28) | ((uint32_t)c) << 4); + } +} + +// FIPS 204, Algorithm 19 (`BitUnpack`). +static int scalar_decode_signed(scalar *out, const uint8_t *in, int bits, + uint32_t max) { + if (bits == 4) { + assert(max == ETA); + return scalar_decode_signed_4_eta(out, in); + } else if (bits == 13) { + assert(max == (1u << 12)); + scalar_decode_signed_13_12(out, in); + return 1; + } else if (bits == 20) { + assert(max == (1u << 19)); + scalar_decode_signed_20_19(out, in); + return 1; + } else { + abort(); + } +} + +/* Expansion functions */ + +// FIPS 204, Algorithm 30 (`RejNTTPoly`). +// +// Rejection samples a Keccak stream to get uniformly distributed elements. This +// is used for matrix expansion and only operates on public inputs. +static void scalar_from_keccak_vartime( + scalar *out, const uint8_t derived_seed[RHO_BYTES + 2]) { + struct BORINGSSL_keccak_st keccak_ctx; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake128); + BORINGSSL_keccak_absorb(&keccak_ctx, derived_seed, RHO_BYTES + 2); + assert(keccak_ctx.squeeze_offset == 0); + assert(keccak_ctx.rate_bytes == 168); + static_assert(168 % 3 == 0, "block and coefficient boundaries do not align"); + + int done = 0; + while (done < DEGREE) { + uint8_t block[168]; + BORINGSSL_keccak_squeeze(&keccak_ctx, block, sizeof(block)); + for (size_t i = 0; i < sizeof(block) && done < DEGREE; i += 3) { + // FIPS 204, Algorithm 14 (`CoeffFromThreeBytes`). + uint32_t value = (uint32_t)block[i] | ((uint32_t)block[i + 1] << 8) | + (((uint32_t)block[i + 2] & 0x7f) << 16); + if (value < kPrime) { + out->c[done++] = value; + } + } + } +} + +// FIPS 204, Algorithm 31 (`RejBoundedPoly`). +static void scalar_uniform_eta_4(scalar *out, + const uint8_t derived_seed[SIGMA_BYTES + 2]) { + static_assert(ETA == 4, "This implementation is specialized for ETA == 4"); + + struct BORINGSSL_keccak_st keccak_ctx; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, derived_seed, SIGMA_BYTES + 2); + assert(keccak_ctx.squeeze_offset == 0); + assert(keccak_ctx.rate_bytes == 136); + + int done = 0; + while (done < DEGREE) { + uint8_t block[136]; + BORINGSSL_keccak_squeeze(&keccak_ctx, block, sizeof(block)); + for (size_t i = 0; i < sizeof(block) && done < DEGREE; ++i) { + uint32_t t0 = block[i] & 0x0F; + uint32_t t1 = block[i] >> 4; + // FIPS 204, Algorithm 15 (`CoefFromHalfByte`). Although both the input + // and output here are secret, it is OK to leak when we rejected a byte. + // Individual bytes of the SHAKE-256 stream are (indistiguishable from) + // independent of each other and the original seed, so leaking information + // about the rejected bytes does not reveal the input or output. + if (constant_time_declassify_int(t0 < 9)) { + out->c[done++] = mod_sub(ETA, t0); + } + if (done < DEGREE && constant_time_declassify_int(t1 < 9)) { + out->c[done++] = mod_sub(ETA, t1); + } + } + } +} + +// FIPS 204, Algorithm 34 (`ExpandMask`), but just a single step. +static void scalar_sample_mask( + scalar *out, const uint8_t derived_seed[RHO_PRIME_BYTES + 2]) { + uint8_t buf[640]; + BORINGSSL_keccak(buf, sizeof(buf), derived_seed, RHO_PRIME_BYTES + 2, + boringssl_shake256); + + scalar_decode_signed_20_19(out, buf); +} + +// FIPS 204, Algorithm 29 (`SampleInBall`). +static void scalar_sample_in_ball_vartime(scalar *out, const uint8_t *seed, + int len) { + assert(len == 2 * LAMBDA_BYTES); + + struct BORINGSSL_keccak_st keccak_ctx; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, seed, len); + assert(keccak_ctx.squeeze_offset == 0); + assert(keccak_ctx.rate_bytes == 136); + + uint8_t block[136]; + BORINGSSL_keccak_squeeze(&keccak_ctx, block, sizeof(block)); + + uint64_t signs = CRYPTO_load_u64_le(block); + int offset = 8; + // SampleInBall implements a Fisher–Yates shuffle, which unavoidably leaks + // where the zeros are by memory access pattern. Although this leak happens + // before bad signatures are rejected, this is safe. See + // https://boringssl-review.googlesource.com/c/boringssl/+/67747/comment/8d8f01ac_70af3f21/ + CONSTTIME_DECLASSIFY(block + offset, sizeof(block) - offset); + + OPENSSL_memset(out, 0, sizeof(*out)); + for (size_t i = DEGREE - TAU; i < DEGREE; i++) { + size_t byte; + for (;;) { + if (offset == 136) { + BORINGSSL_keccak_squeeze(&keccak_ctx, block, sizeof(block)); + // See above. + CONSTTIME_DECLASSIFY(block, sizeof(block)); + offset = 0; + } + + byte = block[offset++]; + if (byte <= i) { + break; + } + } + + out->c[i] = out->c[byte]; + out->c[byte] = mod_sub(1, 2 * (signs & 1)); + signs >>= 1; + } +} + +// FIPS 204, Algorithm 32 (`ExpandA`). +static void matrix_expand(matrix *out, const uint8_t rho[RHO_BYTES]) { + static_assert(K <= 0x100, "K must fit in 8 bits"); + static_assert(L <= 0x100, "L must fit in 8 bits"); + + uint8_t derived_seed[RHO_BYTES + 2]; + OPENSSL_memcpy(derived_seed, rho, RHO_BYTES); + for (int i = 0; i < K; i++) { + for (int j = 0; j < L; j++) { + derived_seed[RHO_BYTES + 1] = (uint8_t)i; + derived_seed[RHO_BYTES] = (uint8_t)j; + scalar_from_keccak_vartime(&out->v[i][j], derived_seed); + } + } +} + +// FIPS 204, Algorithm 33 (`ExpandS`). +static void vector_expand_short(vectorl *s1, vectork *s2, + const uint8_t sigma[SIGMA_BYTES]) { + static_assert(K <= 0x100, "K must fit in 8 bits"); + static_assert(L <= 0x100, "L must fit in 8 bits"); + static_assert(K + L <= 0x100, "K+L must fit in 8 bits"); + + uint8_t derived_seed[SIGMA_BYTES + 2]; + OPENSSL_memcpy(derived_seed, sigma, SIGMA_BYTES); + derived_seed[SIGMA_BYTES] = 0; + derived_seed[SIGMA_BYTES + 1] = 0; + for (int i = 0; i < L; i++) { + scalar_uniform_eta_4(&s1->v[i], derived_seed); + ++derived_seed[SIGMA_BYTES]; + } + for (int i = 0; i < K; i++) { + scalar_uniform_eta_4(&s2->v[i], derived_seed); + ++derived_seed[SIGMA_BYTES]; + } +} + +// FIPS 204, Algorithm 34 (`ExpandMask`). +static void vectorl_expand_mask(vectorl *out, + const uint8_t seed[RHO_PRIME_BYTES], + size_t kappa) { + assert(kappa + L <= 0x10000); + + uint8_t derived_seed[RHO_PRIME_BYTES + 2]; + OPENSSL_memcpy(derived_seed, seed, RHO_PRIME_BYTES); + for (int i = 0; i < L; i++) { + size_t index = kappa + i; + derived_seed[RHO_PRIME_BYTES] = index & 0xFF; + derived_seed[RHO_PRIME_BYTES + 1] = (index >> 8) & 0xFF; + scalar_sample_mask(&out->v[i], derived_seed); + } +} + +/* Encoding */ + +// FIPS 204, Algorithm 16 (`SimpleBitPack`). +// +// Encodes an entire vector into 32*K*|bits| bytes. Note that since 256 (DEGREE) +// is divisible by 8, the individual vector entries will always fill a whole +// number of bytes, so we do not need to worry about bit packing here. +static void vectork_encode(uint8_t *out, const vectork *a, int bits) { + if (bits == 4) { + for (int i = 0; i < K; i++) { + scalar_encode_4(out + i * bits * DEGREE / 8, &a->v[i]); + } + } else { + assert(bits == 10); + for (int i = 0; i < K; i++) { + scalar_encode_10(out + i * bits * DEGREE / 8, &a->v[i]); + } + } +} + +// FIPS 204, Algorithm 18 (`SimpleBitUnpack`). +static void vectork_decode_10(vectork *out, const uint8_t *in) { + for (int i = 0; i < K; i++) { + scalar_decode_10(&out->v[i], in + i * 10 * DEGREE / 8); + } +} + +static void vectork_encode_signed(uint8_t *out, const vectork *a, int bits, + uint32_t max) { + for (int i = 0; i < K; i++) { + scalar_encode_signed(out + i * bits * DEGREE / 8, &a->v[i], bits, max); + } +} + +static int vectork_decode_signed(vectork *out, const uint8_t *in, int bits, + uint32_t max) { + for (int i = 0; i < K; i++) { + if (!scalar_decode_signed(&out->v[i], in + i * bits * DEGREE / 8, bits, + max)) { + return 0; + } + } + return 1; +} + +// FIPS 204, Algorithm 17 (`BitPack`). +// +// Encodes an entire vector into 32*L*|bits| bytes. Note that since 256 (DEGREE) +// is divisible by 8, the individual vector entries will always fill a whole +// number of bytes, so we do not need to worry about bit packing here. +static void vectorl_encode_signed(uint8_t *out, const vectorl *a, int bits, + uint32_t max) { + for (int i = 0; i < L; i++) { + scalar_encode_signed(out + i * bits * DEGREE / 8, &a->v[i], bits, max); + } +} + +static int vectorl_decode_signed(vectorl *out, const uint8_t *in, int bits, + uint32_t max) { + for (int i = 0; i < L; i++) { + if (!scalar_decode_signed(&out->v[i], in + i * bits * DEGREE / 8, bits, + max)) { + return 0; + } + } + return 1; +} + +// FIPS 204, Algorithm 28 (`w1Encode`). +static void w1_encode(uint8_t out[128 * K], const vectork *w1) { + vectork_encode(out, w1, 4); +} + +// FIPS 204, Algorithm 20 (`HintBitPack`). +static void hint_bit_pack(uint8_t out[OMEGA + K], const vectork *h) { + OPENSSL_memset(out, 0, OMEGA + K); + int index = 0; + for (int i = 0; i < K; i++) { + for (int j = 0; j < DEGREE; j++) { + if (h->v[i].c[j]) { + // h must have at most OMEGA non-zero coefficients. + BSSL_CHECK(index < OMEGA); + out[index++] = j; + } + } + out[OMEGA + i] = index; + } +} + +// FIPS 204, Algorithm 21 (`HintBitUnpack`). +static int hint_bit_unpack(vectork *h, const uint8_t in[OMEGA + K]) { + vectork_zero(h); + int index = 0; + for (int i = 0; i < K; i++) { + const int limit = in[OMEGA + i]; + if (limit < index || limit > OMEGA) { + return 0; + } + + int last = -1; + while (index < limit) { + int byte = in[index++]; + if (last >= 0 && byte <= last) { + return 0; + } + last = byte; + static_assert(DEGREE == 256, + "DEGREE must be 256 for this write to be in bounds"); + h->v[i].c[byte] = 1; + } + } + for (; index < OMEGA; index++) { + if (in[index] != 0) { + return 0; + } + } + return 1; +} + +struct public_key { + uint8_t rho[RHO_BYTES]; + vectork t1; + // Pre-cached value(s). + uint8_t public_key_hash[TR_BYTES]; +}; + +struct private_key { + uint8_t rho[RHO_BYTES]; + uint8_t k[K_BYTES]; + uint8_t public_key_hash[TR_BYTES]; + vectorl s1; + vectork s2; + vectork t0; +}; + +struct signature { + uint8_t c_tilde[2 * LAMBDA_BYTES]; + vectorl z; + vectork h; +}; + +// FIPS 204, Algorithm 22 (`pkEncode`). +static int mldsa_marshal_public_key(CBB *out, const struct public_key *pub) { + if (!CBB_add_bytes(out, pub->rho, sizeof(pub->rho))) { + return 0; + } + + uint8_t *vectork_output; + if (!CBB_add_space(out, &vectork_output, 320 * K)) { + return 0; + } + vectork_encode(vectork_output, &pub->t1, 10); + + return 1; +} + +// FIPS 204, Algorithm 23 (`pkDecode`). +static int mldsa_parse_public_key(struct public_key *pub, CBS *in) { + if (!CBS_copy_bytes(in, pub->rho, sizeof(pub->rho))) { + return 0; + } + + CBS t1_bytes; + if (!CBS_get_bytes(in, &t1_bytes, 320 * K)) { + return 0; + } + vectork_decode_10(&pub->t1, CBS_data(&t1_bytes)); + + return 1; +} + +// FIPS 204, Algorithm 24 (`skEncode`). +static int mldsa_marshal_private_key(CBB *out, const struct private_key *priv) { + if (!CBB_add_bytes(out, priv->rho, sizeof(priv->rho)) || + !CBB_add_bytes(out, priv->k, sizeof(priv->k)) || + !CBB_add_bytes(out, priv->public_key_hash, + sizeof(priv->public_key_hash))) { + return 0; + } + + uint8_t *vectorl_output; + if (!CBB_add_space(out, &vectorl_output, 128 * L)) { + return 0; + } + vectorl_encode_signed(vectorl_output, &priv->s1, 4, ETA); + + uint8_t *vectork_output; + if (!CBB_add_space(out, &vectork_output, 128 * K)) { + return 0; + } + vectork_encode_signed(vectork_output, &priv->s2, 4, ETA); + + if (!CBB_add_space(out, &vectork_output, 416 * K)) { + return 0; + } + vectork_encode_signed(vectork_output, &priv->t0, 13, 1 << 12); + + return 1; +} + +// FIPS 204, Algorithm 25 (`skDecode`). +static int mldsa_parse_private_key(struct private_key *priv, CBS *in) { + CBS s1_bytes; + CBS s2_bytes; + CBS t0_bytes; + if (!CBS_copy_bytes(in, priv->rho, sizeof(priv->rho)) || + !CBS_copy_bytes(in, priv->k, sizeof(priv->k)) || + !CBS_copy_bytes(in, priv->public_key_hash, + sizeof(priv->public_key_hash)) || + !CBS_get_bytes(in, &s1_bytes, 128 * L) || + !vectorl_decode_signed(&priv->s1, CBS_data(&s1_bytes), 4, ETA) || + !CBS_get_bytes(in, &s2_bytes, 128 * K) || + !vectork_decode_signed(&priv->s2, CBS_data(&s2_bytes), 4, ETA) || + !CBS_get_bytes(in, &t0_bytes, 416 * K) || + // Note: Decoding 13 bits into (-2^12, 2^12] cannot fail. + !vectork_decode_signed(&priv->t0, CBS_data(&t0_bytes), 13, 1 << 12)) { + return 0; + } + + return 1; +} + +// FIPS 204, Algorithm 26 (`sigEncode`). +static int mldsa_marshal_signature(CBB *out, const struct signature *sign) { + if (!CBB_add_bytes(out, sign->c_tilde, sizeof(sign->c_tilde))) { + return 0; + } + + uint8_t *vectorl_output; + if (!CBB_add_space(out, &vectorl_output, 640 * L)) { + return 0; + } + vectorl_encode_signed(vectorl_output, &sign->z, 20, 1 << 19); + + uint8_t *hint_output; + if (!CBB_add_space(out, &hint_output, OMEGA + K)) { + return 0; + } + hint_bit_pack(hint_output, &sign->h); + + return 1; +} + +// FIPS 204, Algorithm 27 (`sigDecode`). +static int mldsa_parse_signature(struct signature *sign, CBS *in) { + CBS z_bytes; + CBS hint_bytes; + if (!CBS_copy_bytes(in, sign->c_tilde, sizeof(sign->c_tilde)) || + !CBS_get_bytes(in, &z_bytes, 640 * L) || + // Note: Decoding 20 bits into (-2^19, 2^19] cannot fail. + !vectorl_decode_signed(&sign->z, CBS_data(&z_bytes), 20, 1 << 19) || + !CBS_get_bytes(in, &hint_bytes, OMEGA + K) || + !hint_bit_unpack(&sign->h, CBS_data(&hint_bytes))) { + return 0; + }; + + return 1; +} + +static struct private_key *private_key_from_external( + const struct MLDSA65_private_key *external) { + static_assert( + sizeof(struct MLDSA65_private_key) == sizeof(struct private_key), + "Kyber private key size incorrect"); + static_assert( + alignof(struct MLDSA65_private_key) == alignof(struct private_key), + "Kyber private key align incorrect"); + return (struct private_key *)external; +} + +static struct public_key *public_key_from_external( + const struct MLDSA65_public_key *external) { + static_assert(sizeof(struct MLDSA65_public_key) == sizeof(struct public_key), + "mldsa public key size incorrect"); + static_assert( + alignof(struct MLDSA65_public_key) == alignof(struct public_key), + "mldsa public key align incorrect"); + return (struct public_key *)external; +} + +/* API */ + +// Calls |MLDSA_generate_key_external_entropy| with random bytes from +// |RAND_bytes|. Returns 1 on success and 0 on failure. +int MLDSA65_generate_key( + uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES], + uint8_t optional_out_seed[MLDSA_SEED_BYTES], + struct MLDSA65_private_key *out_private_key) { + uint8_t entropy[MLDSA_SEED_BYTES]; + RAND_bytes(entropy, sizeof(entropy)); + if (optional_out_seed) { + memcpy(optional_out_seed, entropy, MLDSA_SEED_BYTES); + } + return MLDSA65_generate_key_external_entropy(out_encoded_public_key, + out_private_key, entropy); +} + +int MLDSA65_private_key_from_seed(struct MLDSA65_private_key *out_private_key, + const uint8_t *seed, size_t seed_len) { + if (seed_len != MLDSA_SEED_BYTES) { + return 0; + } + uint8_t public_key[MLDSA65_PUBLIC_KEY_BYTES]; + return MLDSA65_generate_key_external_entropy(public_key, out_private_key, + seed); +} + +// FIPS 204, Algorithm 6 (`ML-DSA.KeyGen_internal`). Returns 1 on success and 0 +// on failure. +int MLDSA65_generate_key_external_entropy( + uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES], + struct MLDSA65_private_key *out_private_key, + const uint8_t entropy[MLDSA_SEED_BYTES]) { + int ret = 0; + + // Intermediate values, allocated on the heap to allow use when there is a + // limited amount of stack. + struct values_st { + struct public_key pub; + matrix a_ntt; + vectorl s1_ntt; + vectork t; + }; + struct values_st *values = OPENSSL_malloc(sizeof(*values)); + if (values == NULL) { + goto err; + } + + struct private_key *priv = private_key_from_external(out_private_key); + + uint8_t augmented_entropy[MLDSA_SEED_BYTES + 2]; + OPENSSL_memcpy(augmented_entropy, entropy, MLDSA_SEED_BYTES); + // The k and l parameters are appended to the seed. + augmented_entropy[MLDSA_SEED_BYTES] = K; + augmented_entropy[MLDSA_SEED_BYTES + 1] = L; + uint8_t expanded_seed[RHO_BYTES + SIGMA_BYTES + K_BYTES]; + BORINGSSL_keccak(expanded_seed, sizeof(expanded_seed), augmented_entropy, + sizeof(augmented_entropy), boringssl_shake256); + const uint8_t *const rho = expanded_seed; + const uint8_t *const sigma = expanded_seed + RHO_BYTES; + const uint8_t *const k = expanded_seed + RHO_BYTES + SIGMA_BYTES; + // rho is public. + CONSTTIME_DECLASSIFY(rho, RHO_BYTES); + OPENSSL_memcpy(values->pub.rho, rho, sizeof(values->pub.rho)); + OPENSSL_memcpy(priv->rho, rho, sizeof(priv->rho)); + OPENSSL_memcpy(priv->k, k, sizeof(priv->k)); + + matrix_expand(&values->a_ntt, rho); + vector_expand_short(&priv->s1, &priv->s2, sigma); + + OPENSSL_memcpy(&values->s1_ntt, &priv->s1, sizeof(values->s1_ntt)); + vectorl_ntt(&values->s1_ntt); + + matrix_mult(&values->t, &values->a_ntt, &values->s1_ntt); + vectork_inverse_ntt(&values->t); + vectork_add(&values->t, &values->t, &priv->s2); + + vectork_power2_round(&values->pub.t1, &priv->t0, &values->t); + // t1 is public. + CONSTTIME_DECLASSIFY(&values->pub.t1, sizeof(values->pub.t1)); + + CBB cbb; + CBB_init_fixed(&cbb, out_encoded_public_key, MLDSA65_PUBLIC_KEY_BYTES); + if (!mldsa_marshal_public_key(&cbb, &values->pub)) { + goto err; + } + assert(CBB_len(&cbb) == MLDSA65_PUBLIC_KEY_BYTES); + + BORINGSSL_keccak(priv->public_key_hash, sizeof(priv->public_key_hash), + out_encoded_public_key, MLDSA65_PUBLIC_KEY_BYTES, + boringssl_shake256); + + ret = 1; +err: + OPENSSL_free(values); + return ret; +} + +int MLDSA65_public_from_private(struct MLDSA65_public_key *out_public_key, + const struct MLDSA65_private_key *private_key) { + int ret = 0; + + // Intermediate values, allocated on the heap to allow use when there is a + // limited amount of stack. + struct values_st { + matrix a_ntt; + vectorl s1_ntt; + vectork t; + vectork t0; + }; + struct values_st *values = OPENSSL_malloc(sizeof(*values)); + if (values == NULL) { + goto err; + } + + const struct private_key *priv = private_key_from_external(private_key); + struct public_key *pub = public_key_from_external(out_public_key); + + OPENSSL_memcpy(pub->rho, priv->rho, sizeof(pub->rho)); + OPENSSL_memcpy(pub->public_key_hash, priv->public_key_hash, + sizeof(pub->public_key_hash)); + + matrix_expand(&values->a_ntt, priv->rho); + + OPENSSL_memcpy(&values->s1_ntt, &priv->s1, sizeof(values->s1_ntt)); + vectorl_ntt(&values->s1_ntt); + + matrix_mult(&values->t, &values->a_ntt, &values->s1_ntt); + vectork_inverse_ntt(&values->t); + vectork_add(&values->t, &values->t, &priv->s2); + + vectork_power2_round(&pub->t1, &values->t0, &values->t); + + ret = 1; +err: + OPENSSL_free(values); + return ret; +} + +// FIPS 204, Algorithm 7 (`ML-DSA.Sign_internal`). Returns 1 on success and 0 on +// failure. +int MLDSA65_sign_internal( + uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES], + const struct MLDSA65_private_key *private_key, const uint8_t *msg, + size_t msg_len, const uint8_t *context_prefix, size_t context_prefix_len, + const uint8_t *context, size_t context_len, + const uint8_t randomizer[MLDSA_SIGNATURE_RANDOMIZER_BYTES]) { + int ret = 0; + const struct private_key *priv = private_key_from_external(private_key); + + uint8_t mu[MU_BYTES]; + struct BORINGSSL_keccak_st keccak_ctx; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, priv->public_key_hash, + sizeof(priv->public_key_hash)); + BORINGSSL_keccak_absorb(&keccak_ctx, context_prefix, context_prefix_len); + BORINGSSL_keccak_absorb(&keccak_ctx, context, context_len); + BORINGSSL_keccak_absorb(&keccak_ctx, msg, msg_len); + BORINGSSL_keccak_squeeze(&keccak_ctx, mu, MU_BYTES); + + uint8_t rho_prime[RHO_PRIME_BYTES]; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, priv->k, sizeof(priv->k)); + BORINGSSL_keccak_absorb(&keccak_ctx, randomizer, + MLDSA_SIGNATURE_RANDOMIZER_BYTES); + BORINGSSL_keccak_absorb(&keccak_ctx, mu, MU_BYTES); + BORINGSSL_keccak_squeeze(&keccak_ctx, rho_prime, RHO_PRIME_BYTES); + + // Intermediate values, allocated on the heap to allow use when there is a + // limited amount of stack. + struct values_st { + struct signature sign; + vectorl s1_ntt; + vectork s2_ntt; + vectork t0_ntt; + matrix a_ntt; + vectorl y; + vectork w; + vectork w1; + vectorl cs1; + vectork cs2; + }; + struct values_st *values = OPENSSL_malloc(sizeof(*values)); + if (values == NULL) { + goto err; + } + OPENSSL_memcpy(&values->s1_ntt, &priv->s1, sizeof(values->s1_ntt)); + vectorl_ntt(&values->s1_ntt); + + OPENSSL_memcpy(&values->s2_ntt, &priv->s2, sizeof(values->s2_ntt)); + vectork_ntt(&values->s2_ntt); + + OPENSSL_memcpy(&values->t0_ntt, &priv->t0, sizeof(values->t0_ntt)); + vectork_ntt(&values->t0_ntt); + + matrix_expand(&values->a_ntt, priv->rho); + + // kappa must not exceed 2**16/L = 13107. But the probability of it exceeding + // even 1000 iterations is vanishingly small. + for (size_t kappa = 0;; kappa += L) { + vectorl_expand_mask(&values->y, rho_prime, kappa); + + vectorl *y_ntt = &values->cs1; + OPENSSL_memcpy(y_ntt, &values->y, sizeof(*y_ntt)); + vectorl_ntt(y_ntt); + + matrix_mult(&values->w, &values->a_ntt, y_ntt); + vectork_inverse_ntt(&values->w); + + vectork_high_bits(&values->w1, &values->w); + uint8_t w1_encoded[128 * K]; + w1_encode(w1_encoded, &values->w1); + + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, mu, MU_BYTES); + BORINGSSL_keccak_absorb(&keccak_ctx, w1_encoded, 128 * K); + BORINGSSL_keccak_squeeze(&keccak_ctx, values->sign.c_tilde, + 2 * LAMBDA_BYTES); + + scalar c_ntt; + scalar_sample_in_ball_vartime(&c_ntt, values->sign.c_tilde, + sizeof(values->sign.c_tilde)); + scalar_ntt(&c_ntt); + + vectorl_mult_scalar(&values->cs1, &values->s1_ntt, &c_ntt); + vectorl_inverse_ntt(&values->cs1); + vectork_mult_scalar(&values->cs2, &values->s2_ntt, &c_ntt); + vectork_inverse_ntt(&values->cs2); + + vectorl_add(&values->sign.z, &values->y, &values->cs1); + + vectork *r0 = &values->w1; + vectork_sub(r0, &values->w, &values->cs2); + vectork_low_bits(r0, r0); + + // Leaking the fact that a signature was rejected is fine as the next + // attempt at a signature will be (indistinguishable from) independent of + // this one. Note, however, that we additionally leak which of the two + // branches rejected the signature. Section 5.5 of + // https://pq-crystals.org/dilithium/data/dilithium-specification-round3.pdf + // describes this leak as OK. Note we leak less than what is described by + // the paper; we do not reveal which coefficient violated the bound, and we + // hide which of the |z_max| or |r0_max| bound failed. See also + // https://boringssl-review.googlesource.com/c/boringssl/+/67747/comment/2bbab0fa_d241d35a/ + uint32_t z_max = vectorl_max(&values->sign.z); + uint32_t r0_max = vectork_max_signed(r0); + if (constant_time_declassify_w( + constant_time_ge_w(z_max, kGamma1 - BETA) | + constant_time_ge_w(r0_max, kGamma2 - BETA))) { + continue; + } + + vectork *ct0 = &values->w1; + vectork_mult_scalar(ct0, &values->t0_ntt, &c_ntt); + vectork_inverse_ntt(ct0); + vectork_make_hint(&values->sign.h, ct0, &values->cs2, &values->w); + + // See above. + uint32_t ct0_max = vectork_max(ct0); + size_t h_ones = vectork_count_ones(&values->sign.h); + if (constant_time_declassify_w(constant_time_ge_w(ct0_max, kGamma2) | + constant_time_lt_w(OMEGA, h_ones))) { + continue; + } + + // Although computed with the private key, the signature is public. + CONSTTIME_DECLASSIFY(values->sign.c_tilde, sizeof(values->sign.c_tilde)); + CONSTTIME_DECLASSIFY(&values->sign.z, sizeof(values->sign.z)); + CONSTTIME_DECLASSIFY(&values->sign.h, sizeof(values->sign.h)); + + CBB cbb; + CBB_init_fixed(&cbb, out_encoded_signature, MLDSA65_SIGNATURE_BYTES); + if (!mldsa_marshal_signature(&cbb, &values->sign)) { + goto err; + } + + BSSL_CHECK(CBB_len(&cbb) == MLDSA65_SIGNATURE_BYTES); + ret = 1; + break; + } + +err: + OPENSSL_free(values); + return ret; +} + +// mldsa signature in randomized mode, filling the random bytes with +// |RAND_bytes|. Returns 1 on success and 0 on failure. +int MLDSA65_sign(uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES], + const struct MLDSA65_private_key *private_key, + const uint8_t *msg, size_t msg_len, const uint8_t *context, + size_t context_len) { + if (context_len > 255) { + return 0; + } + + uint8_t randomizer[MLDSA_SIGNATURE_RANDOMIZER_BYTES]; + RAND_bytes(randomizer, sizeof(randomizer)); + + const uint8_t context_prefix[2] = {0, context_len}; + return MLDSA65_sign_internal(out_encoded_signature, private_key, msg, msg_len, + context_prefix, sizeof(context_prefix), context, + context_len, randomizer); +} + +// FIPS 204, Algorithm 3 (`ML-DSA.Verify`). +int MLDSA65_verify(const struct MLDSA65_public_key *public_key, + const uint8_t *signature, size_t signature_len, + const uint8_t *msg, size_t msg_len, const uint8_t *context, + size_t context_len) { + if (context_len > 255 || signature_len != MLDSA65_SIGNATURE_BYTES) { + return 0; + } + + const uint8_t context_prefix[2] = {0, context_len}; + return MLDSA65_verify_internal(public_key, signature, msg, msg_len, + context_prefix, sizeof(context_prefix), + context, context_len); +} + +// FIPS 204, Algorithm 8 (`ML-DSA.Verify_internal`). +int MLDSA65_verify_internal( + const struct MLDSA65_public_key *public_key, + const uint8_t encoded_signature[MLDSA65_SIGNATURE_BYTES], + const uint8_t *msg, size_t msg_len, const uint8_t *context_prefix, + size_t context_prefix_len, const uint8_t *context, size_t context_len) { + int ret = 0; + + // Intermediate values, allocated on the heap to allow use when there is a + // limited amount of stack. + struct values_st { + struct signature sign; + matrix a_ntt; + vectorl z_ntt; + vectork az_ntt; + vectork ct1_ntt; + }; + struct values_st *values = OPENSSL_malloc(sizeof(*values)); + if (values == NULL) { + goto err; + } + + const struct public_key *pub = public_key_from_external(public_key); + + CBS cbs; + CBS_init(&cbs, encoded_signature, MLDSA65_SIGNATURE_BYTES); + if (!mldsa_parse_signature(&values->sign, &cbs)) { + goto err; + } + + matrix_expand(&values->a_ntt, pub->rho); + + uint8_t mu[MU_BYTES]; + struct BORINGSSL_keccak_st keccak_ctx; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, pub->public_key_hash, + sizeof(pub->public_key_hash)); + BORINGSSL_keccak_absorb(&keccak_ctx, context_prefix, context_prefix_len); + BORINGSSL_keccak_absorb(&keccak_ctx, context, context_len); + BORINGSSL_keccak_absorb(&keccak_ctx, msg, msg_len); + BORINGSSL_keccak_squeeze(&keccak_ctx, mu, MU_BYTES); + + scalar c_ntt; + scalar_sample_in_ball_vartime(&c_ntt, values->sign.c_tilde, + sizeof(values->sign.c_tilde)); + scalar_ntt(&c_ntt); + + OPENSSL_memcpy(&values->z_ntt, &values->sign.z, sizeof(values->z_ntt)); + vectorl_ntt(&values->z_ntt); + + matrix_mult(&values->az_ntt, &values->a_ntt, &values->z_ntt); + + vectork_scale_power2_round(&values->ct1_ntt, &pub->t1); + vectork_ntt(&values->ct1_ntt); + + vectork_mult_scalar(&values->ct1_ntt, &values->ct1_ntt, &c_ntt); + + vectork *const w1 = &values->az_ntt; + vectork_sub(w1, &values->az_ntt, &values->ct1_ntt); + vectork_inverse_ntt(w1); + + vectork_use_hint_vartime(w1, &values->sign.h, w1); + uint8_t w1_encoded[128 * K]; + w1_encode(w1_encoded, w1); + + uint8_t c_tilde[2 * LAMBDA_BYTES]; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake256); + BORINGSSL_keccak_absorb(&keccak_ctx, mu, MU_BYTES); + BORINGSSL_keccak_absorb(&keccak_ctx, w1_encoded, 128 * K); + BORINGSSL_keccak_squeeze(&keccak_ctx, c_tilde, 2 * LAMBDA_BYTES); + + uint32_t z_max = vectorl_max(&values->sign.z); + if (z_max < kGamma1 - BETA && + OPENSSL_memcmp(c_tilde, values->sign.c_tilde, 2 * LAMBDA_BYTES) == 0) { + ret = 1; + } + +err: + OPENSSL_free(values); + return ret; +} + +/* Serialization of keys. */ + +int MLDSA65_marshal_public_key(CBB *out, + const struct MLDSA65_public_key *public_key) { + return mldsa_marshal_public_key(out, public_key_from_external(public_key)); +} + +int MLDSA65_parse_public_key(struct MLDSA65_public_key *public_key, CBS *in) { + struct public_key *pub = public_key_from_external(public_key); + CBS orig_in = *in; + if (!mldsa_parse_public_key(pub, in) || CBS_len(in) != 0) { + return 0; + } + + // Compute pre-cached values. + BORINGSSL_keccak(pub->public_key_hash, sizeof(pub->public_key_hash), + CBS_data(&orig_in), CBS_len(&orig_in), boringssl_shake256); + return 1; +} + +int MLDSA65_marshal_private_key(CBB *out, + const struct MLDSA65_private_key *private_key) { + return mldsa_marshal_private_key(out, private_key_from_external(private_key)); +} + +int MLDSA65_parse_private_key(struct MLDSA65_private_key *private_key, + CBS *in) { + struct private_key *priv = private_key_from_external(private_key); + return mldsa_parse_private_key(priv, in) && CBS_len(in) == 0; +} diff --git a/crypto/mldsa/mldsa_nist_keygen_tests.txt b/crypto/mldsa/mldsa_nist_keygen_tests.txt new file mode 100644 index 0000000000..fcdd92ff45 --- /dev/null +++ b/crypto/mldsa/mldsa_nist_keygen_tests.txt @@ -0,0 +1,103 @@ +# Taken from NIST's ACVP test vectors at +# https://github.com/usnistgov/ACVP-Server/tree/master/gen-val/json-files/ML-DSA-keyGen-FIPS204 + +seed: 70CEFB9AED5B68E018B079DA8284B9D5CAD5499ED9C265FF73588005D85C225C +pub: D2FD03F3A1B7F635AF9F34D580A98F524C735BD5BA2355DC6E035BD21765580CBB111923F194A7CC8A7BB2EBC5C0E71AA637CC800E6103B850A539B2A39E1B6D713E5DB8314C9AE1F8BF8A38F06AFB9D73B161B0FFE3A4891706AE26D54FFB496DF8DC0F1983509500C9ABBD28E59B3FCDABBDADABD45EC31499378BDE849E7C1F19B7044D67E05106D7136D95380D5605D4465D877557065DF0A75D3C28542F40FEED42EC7E280637B083D988BCA5F6394E02396C4676184FB63318DAFAF5BBDDE00E308FE84019C2340A3F3E1C0865624970711283356AE14BD6B94D1C9AE188DE1A8A2CA824A8EAE2FE6AFB38D83A2D99996AB21FE3E84C0BE6B6DA08879B677374FA7C691B13D40FA9D4CC26B2288D5A8C9A43724381004D61B0D57FF400314C8E30EE796AF10F7EE21BF13D08180465ABC72EDDB080C6A07184E3EEDC47C19AA7F09D1F3309E183A2BD9B0573DDE474A81BA4F78D0C523D0C04F90060FD571A35C037E079C5E210D7390DF568F2E2F03CE44420C82F3FE69EB9B48EE90962D6B0F24440648F71EDB241EE6566FC1A64CABF66BE6FECBCB1387C82A7BC202D9E367998E2A291AF0CD1570677FE8D63A3285A2EA6EB29AF9DC1AEC1C36C4706B12BAA20839692F286A6E0321468F7479345C4D52FBDB2F06725B554B89E2492612681ACEBC6C7BADA9225818DBC35D64C22C48BFF80A730D0716DFAC99DFD5B8992611D0C93EE90BDB260022AFE25D913E06EFFB59CB1F8A60CBFA5AB2F459A16F467E989525E0A37EBE56E833FDE55DB9D1530ADCF45846DF281E47CAA1E0A27EFDE2107D354CEA0F6A454692F04CD838EBDD46E191E5D9C11839A2C3F488A4FC7CD265A7B5D32B08CBDBFAB9D2CCD76222C8EE37DDCBD2AA063ED861473A6454CAEA377850B1A2B9DDBBCB374FAB5B12F351C8E5888872E5CD1F60A4FAE1FF837D192C22BEB41EE6FA392FCDF4550FF46B5CE906D017EF3077DF132300D8BBFA9BB03C75E79E2F04C284AD06A44399649C3E2A2A8D1EFE9B7A4E0C271047AB75908BFF7DF9E30ECA547745BAE23A86FF9A8B58C2538B88B866401076902DC5F0BD761687B49EAFE36D350CBEDFDD36C121CF23786BFCF7E47076496EAB6BBDA774049C2EBABE2DE99C4C24F2DB73684015B373977496760CF9AC23D8B623133DB2DE10D73FA6AD1C6DAC8434F28C6E251CE7293CFF3F3B61EFCB5A435123670F29846A13DF3EE712604461F1BAB8F4EBC836DE058978AE734396A98081B35CC98188A86949C99270D4709854C5B35B17F48A373134C814CC8A0F3E2FA807F2A918530907864778282D75E03A41B2504EED816A417A3AC6BA16080C39B7310192002A728F7F20395009A9E16767CE1971F5DE7D229A50613369E4382045A8E81901F4DBA8102F3D413FE35B326A874F233B719A7137600D35D33AEB6B7259624083AA968730C8F78292AD28F14EEABE660835984FE69EF23DEC8C327C0EB0B882D587E1EC433DA85C9FD1E0A34994DEA240C854452D18C30F496E49EC904B602E0F5062EDCDA03280A53B4313574CC2C0D5471BC9613BDFD6641F5BD127BAB5B5EB3D499A33114048220E819F8EE12CA922C8F17D9C9F51AD5BD6883B10E6AA2483BA49DC547DA7686151344F4E9099B38E430B5226B059832CF03DB48FB02DBA4E61593DC4576360491890E53EC0E6AC73CF32B25D823B38456E286505A541E5AEEE96B1914F5F76687CE2B0160227ABED77993594BCD831366206D75714082F1C46F1F4439AC81A57AF31C81C555307A070FFA94E0479B784BBD88A60CD4C7CFD94E6AFE02F6B21F72AF0DCD6609D40C965C14E5F2389183E53DE930F7DE1D44215CF49144844E8B87F78A7F132AEFE22BE80B4E3A05EE3A68CCF609EF44047402E4493046E6F9C767FF8A75E28B3CE077FDE7E7EED313B5BF7E460127CA8182E9BC794C0DFA730FB920080575A751B5CAEC85A109B4422BA266743F0D032BDA8F1CA6248CDB917530DF1302A5F8C18DC642D52478C98C12A3F16EF2B62B4F59EA1BB58DE7B65B3C7153CE6DA5E4950746F80E087A0E3586D097791BF36DEF865D68591D39D0903773EEA962147F34704138B54DF7924CDD8C333DB5E1A409CCB2B34E2C3C8C7FDD3FD8D012CBF382AAA85E83A12F235A2D147D035B7B28B34B6F57949F322482A7D4D3B15045C420D5ADDC7F0E69B4DC1CBA58B01D872480B06A260D827D891B13C4C5CA50C748DE3C771BE61E9AA170165CB01F4BF5DA27A7791D3AD3F6267B4CB4E61B28FA1708418D932DFC4161880C5D3B17A9663A9061FA8F1804315850FE4E7306C882B38227E867F80872CDC1944D472615EA4900EF7D270B881D4130F56C5CC980D92A47ADA6657EB6F37A385D2D8CC993E1442EB05281853636991E34AADC68954D04E7ADEF76BF880F059B0CBB55D915A4B123E2F1339A073CBFBC409BEFF6400AE096D5AE18EC42CFFAD5B4980FA35BF03413ADB5D7E6876AC355D1C9ED70CA2B973954D12B3CDD76AC6835DB96003ED8C4E288B71FD77DBAA7635720E12AE0A317DE808C664E317F55275791F3245CA4FE5D4D41077FC150A6E403D5A208E46EADBE8F2CFB8AF472F4A0CEAC015219478E6B86C958CF86525B7485C1734C7EF00E90683FFF5DBD0A7D413A855021026A1B32013A4616CBCD3700ACBC705BE3EFBA625C69A025267BCE9D135E3F5B5CC8C43956407E84B6663103E29C242035551AE797F56C6374BE0C798C0CF398F1ED +priv: D2FD03F3A1B7F635AF9F34D580A98F524C735BD5BA2355DC6E035BD21765580CE38D1C14F6467C35A9F380D27DE61F7C75031569EA2EC8260EEE9105261B7FE160C91344B0C6764C204E5B8D424650BEC06B9E2E625AF07E23F4950CA24FB4D6EC2C8B3A717C9311EB87279FE25E311F48B8256501F6463412B50DBC89A869BA2241112648400738730212442544575483725033356258423201621183610245665648356120845260685045655512724747212125402221428117650306426152134325243382121135623332074786223150837084264345645148311486246686743371366726014707721161588558387183806701657870647785600288534846622583548804744012574371077544387121142208887223588746148553716773822822741403577328718380781434875207647401607561060861322146156542670820841073130361028650452612166833552584735354526517106000385777812426804146432667410603554128333725230677821516317300087526584634638808846451112405321011181864782241003855754210468343733880078343787413576232688065864853483551585074460588700772013100875488142084166115605685115808058863018286131417220168171786585310622852822615043142885431780580115045688233663636406515244767064536422686750635413347851217808387655142313887566205174085281417213812608124414575018287101002132557042172427861117005304772132030216744315771455710541665741524024371512055116783678252533566424613702232740007068187175780286801721004275522864253158176308640831143305382735303723568704541157314123164326663562151508210302338172127102314227577283771627506887214187313030150715862866288868603270146172271385381703388681378810486573016523140830756821032312850065081630675766511601417121255564811411328826207476424482324775326081758115637483551478685666681732021367522746683445700666477204722285687124702480702542301257137367536005268153335820613732408717615224260185343116457761761566876606554781033631421832160155580423842031312343625273082812547513544126735001001838574424013036127812626811887435120627127515610222281118141666638208675561240065461127440345858781007852572885722222550840041260836462878467805022820771360751443687864313877737355412700540708286880045383432281006435486766501775761275438162403343453887216614704841431466587845820225457315213203024880801371255432720568652468040616835054533737272220680825508472867422361680075518121784448115645071105815511010471621075861187800527264521743234076486730776364875131638468745363842354661048363385214842038251103357468016433402070353221275733465833387438517503660880258758088316360182132261568741110331413053416726535501334808710264868845271442358803557705484287055888683862521827261177885176773005771117851106563570287401340012653451205467518807033356622620070232687726311133333814170622861514731302546511761580741613737061400548877756777665316726666887643583104875706764700436358605203442736486123721610624208608323540355557300610365342714158662558016531018261135468246132583477050060156021168545303687336418886334252015833423288568177555148481201581385041471835707545554552827313602123268321382587028585344867273428418220883610214161712415748852510260736761266172132360325411011226660161632642605186351585131425384566627833354507646508025434157357825430282384745701567517747803152750000947BCA93C27D584E2C66EAC9C7640C1CA217EEF66DABBCB260B4C34300FA051357820F57392544982FD11057DE233E6D2DD84972A7E47D4DBA99BC30CF8F2AD5A2C0243195ED2730FFA92D227D153095972D4B3447FFAC45A23EB41CBC87CDD1250A8A478B0F7A1D5B39AA2206E48645584FE7BF7A13168F482765E57BB924AC6D9A11369F4A6AFFCD169B7D75129B35D5134A31761BB8355AEEED27E201A06313013E307A01A73AEA7955C0578C8C5E5A1A2D2FA4593FACD904C62040BDB9F329933536BF8D81C4256BAAE8723FD4DC66BB5E7F9CA49031A193ECECBB5DC390EC6D5513C79A052B3FD43612FB7375315D8091F79BAB1318F17854561BC93AE0E5CD6D131E562C8114810C939AE563AA10B47CE4484317F34ABD02D0CCAD58DD29BCF657BBD9254B01CA9726091938ED32054B37DD617240F4434C1A4A8711AA3A399A8A5388330B7059ECCBB6B1B9CF7187ADF10B0C9171D3C0F6E2D460A419247672E3B9FEA2C95910BF2FB6A5D61F257453B07AFB64B0BA2758BCD735751F2D53515E236FE8A5B4393B80BF06DF97BDC6380087E6AA8DDE6E098111A7343FCDD1E903708E637EBF28323CDA6B9405810EDCFB3691149ECF224C50F8DF92A94AA4770A0E91466194BB0E27BF1CABF16ADFD351220033F76F5925557BCF9634E9461359621D80B4BBAD7E2A6E432DC43B126CA42AB88AA88F0A84AF58029C99A0248F0C454071F35B831FED1254D6F4E2720485786215F7C7F0C4ED15FA853CD3AA07259B39240A82135C2923A72B876FABB3F0F2C09613DE39D459A07C14E7BA437D8041491FCEC1433404BAD1DA9EE9471E17CB691B2A353710C9FFA4E5178112027764EB7DE809C3E1F1FA4178A5D4DC9EE27857EFF26B91711FC144D5A775B8B50D5DB939BA3207680C242FC821947F934C8DAEE203563D28606BE624A32901932DAE85712AF6C8016026927E9B8129574BE3CB1E95332B052707AC8AA8F435E88B7E568D4987C6AC0E902B0609A02D91B3F5FD3FD901DDD0DB9873BD7C71ED921D4577A78C4FCC9BF075203D38F5E76E74F277484E057B6189004131B0C9B1A155294D1CD3D5208E266901D7D314FACCE7E2AA584583A11E4D7C21B94A32E508EDDBBD7A65AA86B4FDFA6BC285D4CFF53926C7173FBE1F89CC303234B878C6B8101F58AC8D3E5E1BF5AB6B26297CC97B95954AABDB25BE008A3F47E56487B00D3DEDA890D92C83957FEAC6B8291AF65959E1D1FCA3BD196E9FC9E67E0607094822E5B4191DB96824B9F03F2EF57F5238BA7E1E84ED55B7DFF3D6C2C1273692A9A19272166130DB89FC67DC94DB614E3E82BA3A3512B012D51FB486B5A3150B78E724E2A12DE07D8671FBA2DA7FD5D147208FC3AF653E6520FC40871AF2177E65CBD0EAF304217B367A665F224CAEDFE93006AC1E14BCD67A88D171F3D8F3E358A71926BA3E5C239A531263EC9437BF2A033B8B55B2C0CB6E7E97316E22DF77CAD910D20EECE1C50910A5CC32ADAB09377550F92D5BB1F4C07F4A2822338E2CFF5348DF77CF8EF8E6657DED1E0CE058E3CCFBF39B3F166E303D33C3556C9AC8ECB3DF7C74AB36D0F2794441BA9808827B578FB5C29E494E21539AD3AB2B41BF161D7F69589D4524C54C89B486F75D252F541CC63B9E706D64A1289A2306C595363CB6FBEF0A1B5B17AB5B1794BF27036F64EAF0BD430DD58D80010CCDADA4A5A3A1E41A6FBF129D73779A37AE5C8D6841A9993C51E364E04FAC8E25A4E6872F6C860FA265C1C4426AD9C21D26DA8C278546ADCD831F2B8B26D4E1F670623D95C8362DA662D1FF0AB687503F328DE095810EDE12B49EAD1533519558C1E940B46E4EDB027BE9DA2039B25DCF7357E19E5416AE268C14FB3A8BABCB3D23F70CC9D59681C5D833AC22E653D86E22CE822540755D8D243C15213D076C6B26436DDC07C7E001347B0CB8783DFEFEDF275FEC4792686734007F0FF8540811C2AFE6CA151420532FA5526A1074C3D789F2932DE42E3ACFBF94760F426D96CF033FA49E2F458F9A9C2E71DACFE009DD9C3F3C8AB3282D6F383B981C82D6364F0E4BDB2AF6A95BA61F474150CAD7233F8903DF972DBB0328C0CB9D0CCBEF883D2E6ADD180ECA1B662FC1D2DBBDDB3634219E1EFF38B1E52875356C03EADE942055F483504BBBCB4302A417CF6D328ED793B1A3C0969B7B3418F50AB39F83C5666C90E38356F7F9D494A6DCB63D67C34E3D14A4E15596497926C8568D8EC3DBD9C2E82C385BCFB8D9674863BD4FBF1757DB447BF804AE950147C91FBF9AA17891044CCAA73B45528597462CED751D015EBBA9E2B7CDCBE6DC05AA9EAE0C86848A3475BB1C5744F5903EE4A842A469CC181271F245AD70D02A4837863B296B4ADB4E8D03D82B64AA11DD31CDF21EDF1DFE3276C4DBC877E35B15FB2835EC3A1C453168A38CA8E563CF3E9A00736CD5CFBD2841D10F94AD55799C2927E5461B28BAC5174D0CE3F8F7CD7609FBC8DA0C38CC21695CEDAD12F8D2E64951A8996E510D6D52797C5BA0EB4AFA6BF2CC43DA09DE3179E899BD7188B32A98A499D372F3707CED479B0981CB50C0C0539CF7E3100B720E466652A4F499C2BA3A17F5232268730B962BC572C0DE96E8C9E28F7E3532C2224196AA9E27688DD050D7CB7854FB3C35F9C62EFB10DA84833F29BB1BE5EF3B533638EEF743D8119DDC290BDF08B6F0F9E4E1E13446C53ED69805DA26908A15DF1C48E009EC1253BD5A5898EBB5121CC24904C8B10E24E680E565985076FDA11D13FFDFA4DB28AC9F0AEA2F81FD7ED4DCA8D3B2E3848B4D6046F6E0DE3A4F683F25E0605E84B36F483C404EF899CB3FCCBE8CB2A6F0A7E10B1948CD4F93F181555F661D31D426808BBF9F66FD60D649269CA3FE991B22428C37AD2A08680F747CC0360CCD373DC6A9F43A66470E014E72B3D8C38E020442D8AAB974E6049374145B04CB7F3044AAC1EFDAB2A18BB464D4F2F2D8143974C95EEE856D59EC00288ED43FF5CC8803006C995514A2CC9CA622B61BCD75EC51C202A917105B4A4BED1B80146831DCED07EFD2ED25739F54096911B150D3077CCD731A0361682725D53803F8FCEAA83919291EDB4493EC84CCE1D0F82A679236EAD1002AE8018CAC9FDBD246FF093D803C0DE3326A57907B0DD6B01D081458C75728C600829928890A56AAAFEFCF7423B70A6D86B415B8358DD044ABEE00B9C9795FC8F61A64686DF5F876A8F33061599AE830F7EB4C4BFF875F4A936C403C5D160DE5D33CAEE40FB718DDA4478AC6F51C59C2155254BD77671118411E2609D000306FC9507004A31E8957EA40C2564B83C3ABB71A87C11BD18D7891C449DBBE79B4A4FB048307CE0E812B2C68ECAB77FD1111526AB0817306CEBCB0497C552431CE15E4AB52283F679480D69DDDE1F2579CFDBE0BCA95FC5B2DB0C5CC76A31950F5116AAE5F02D46710E4257A75FDEDF2F47CE37C203E7F24D3C9179713C5D807C296149A75CCB444F0C6F6ABDD2DBB2985FE267482858A1E + +seed: 4B4B71C5A1BC1074F2167A1D68729CDB9E16ABA3651FF02A0A0F4C883CAAC827 +pub: F8D4945A92CE46DD24D751DA02F068482C69B0DBF0501634C4A247E1ECF98B270474C81AA0D8F45C0E8B5D02751E797D101904586782EA09F4E3A567C2BF5146DFBE766BCF8D0E4EF46016C6ED7B167490FD2F8E9C53CB42660331B1B62810D21477F5C9301D6D054FB076E77F35C1942AAE874669E0957A031223861EB563AD723781105567445B5422B179E4828A4306079C4D42B793A1358B05D02D4565E4AFA2D1CD32B6E7A4224D3A86E8AB79E1DC33A11D99411636F939C3AD0D39351CD057FC6BDB32ECA7427CA0842F70B416DB14518796F68C66E3CD04720DA02B32A3430E0E027F48974602EBAAED0F1FB5763A914CD6DB7C4ECDFBE076B0348DA1AE1F67C63EACA5DD8C27AD54900779952239539DFEA22BE70D54661BFD973D1342F71F6A97CE798EFFF852FD789DA56C867C1FD2317C8174CA0E0787DE99F77D264655A36B1D8589B4C4C1743E742C31AD19539CBF8366EC188DD606392D727A53C3BC4111CE2CD330FA0E484F19324AA5FD577DBB055A3BA6F2E964371C0D4B9150E4EB9155DB871B6A3F321DB2B3EB9E679ADCA62EA6F7DB5C4471F470D42D6C161CC1A43870E7BF845CFA696D71629C21D53A4DE22AE73C39837222077ABD8A1AFDFAB6B4DC5A2D68BAF6EC95621BAFE7257071A62F07848180FE4BDC29CE7CAF2911564BE1DB7DA45EE58852D0457456D19979CE66F3821C30539965E4C3A1691DCBB4AD0E7AA133185D2486860D4A5FBD260585241772B5976EB449A72494637DB59CEF54567F7FED5B0ED618C9527C28C38BA362621CCEDA11A00DEBB824D31C7D5B3599077B9FF736C3245F1F3DCCA6D8D74BA96B195B51CDC1C68E29E5EAD59CDADF5A05B924B2A790F80CFD8B8B17AE1FAD36ADFD77B078C5A535A5293696C7259AB0305C589B2986B6A841F21CF8686D6B186EA538C29C7654A6AD74DAEDCE943627BF5D497CD7611DDD900EFEBE11F9E611F416B0694B621D4EE741CF21759C92BA8BFAC90ED9D274A9EED59774CABDE532D7644D048B83CA97BFDAEF30F0B2400A1BB647C7BC9E60F57451915A0B531E29D21C2007AAEC522F4129A7C251D7FFFAB20BCD5B0563ED78814A3B2047A375DD9A919A3E8FAA0EDFF63E0307EC9CD14FAB372E965324CBF541D99EB498CD093B188B1CB79DD6ADACC1C9E306483BE70C1BDDD1F67B0B86DAF8FD905F7BB6239138A73300C58EE30B6D48244803A5FFA9936B0A06B16EEB2A880FF2FBDDA1A0813006C96ED0B6A30B5D10528CF5AFD45BEAA82369BD8254A1A7250048252EEEA523DCEC9FFF069006B2F9A8653103D47ECF79BDAD2572A11871C018646505164837DCF91C2E22CC55B344990BDFF2D50363FE34A19C5CB46CF0C193175248EC50978F2CEE4E83ED2B7BBFDE4471859017D3418CF3D3822BCCEA6B8D30CF11FF008569D9F0BF462CE6D73F8C119E3D3AB30A68D467CC60A907661FA1DD47FF3977847BE38ABADD7D4B4E1B127EAA131BF3B0B1FAFC57165B69A48500753B9DC141B9819CCD9B4CACFBDFE4E05CA5CDFEA912602CFF1EE04FD2914780E713176AB4383F3CEDAF2C0B5E6B640D3B5905EC8EA9630BD3672A18135701E4140627E98F1BDC78B05D9F2224C59AB3951A0653E6729B7B4BB0035FC964C15086FCE0C6AD85155B940C1AA13428F1E6C20FF95661D283F2ABE3D43C072B169D68C740E67E3CD9D44D80BBF1D455204D3B56F06D9CD266A2A928C918F737A9E475BE20F26D97A3C0B7194D6043CABCB8BD14BB4BFA94D13C0D9BDD4E6B062D4685D22F3DD7A2EA64FAB53A0E06E0E425FD487E333AC6669017492AC45FBB9E2313F6BCBC6E484A5965E9412FABAD6A6FD03675CE1C70158B33E17CD18FB44392F06753D565FBAB2D4CB09A85EDC20C9C12276557B03DC41B7042A0D7FCB5D236BEC4B907F6FCFAC62C3A07BD92EA85740F1A501591FB8D930A527FCACA427A61256F6591DC1F3CBAF19CF3F9B5AB5AAEC97A95BD5D9056F5E463BD86EE03D1CD5A14312DCCC3345958DE85488D1DB2C54D3393B8BBF90C1411A9A8B3BCF9A13305FC5AF52818FCC4039D5C8C6ED87D8C01A089982ECB6FEB7AD09A79603ACEED01CF453B4620CD36E73B76B91924D9BE973C8BA8B5B360998A182F9A4FEF5563A0C5505B18110723A268CA4543039979231FB082A639658B9F5468E1BD16F96A158E0F39A160109A7CF244CAD177B2B1F41806279296E7D6622425B75A1320E7E3CEB2DEBD1F739B29A8A3BEF23D5DD2712A82E320450AACD8E9EEE78A7D019AA09E42CD9923702086829308ADF09C0D0A88B58B2F7C4534F75631AF1A5B0B68552F402481F9A96B6A6A0A14E93E2772EC72D286AAF2CC9EC6450E80F42673A2DFD25C0E0D5831DA8ABD631966DC0688C38D602AAFE8BBAB8FF5FB9003BFE2E45A74A1261598AF634F896CD8F4C04C5FAA6442A788121CE8163A085B4E66308FF572CF005E960C8A21A82552AE6DD1ADDFE08CA37B82DFFF782609F03DC16E0B862398C9FA09DFA4D35510F4BA7E77C0233CF923E4792FAD9C5D7A05FA174438537740EC822B2670BF1F244280A5A7080B21CED5646F5077CB39F23555A112FA1E1458BC45C491D5092B763AB7D291B8C07BBEA2E39982CA19DFF6E4EEF17557E8EF101D808FFB6ED73DAECEB77C4CFA2E391CEA50F1A75801C2D34407AAAC4B5138B4632A710A40F39BA7ED36454E0B054E00BAFC027D01303273DD2289E7666D98C3B602CFAD31B7680E6B1572 +priv: F8D4945A92CE46DD24D751DA02F068482C69B0DBF0501634C4A247E1ECF98B27B870452948D3FD91DFABBA184B7778E2223C610196918C5AC471FFE27C45C216906A32E421BA0C8EB43BDE774C8151020BB33E6DD3CCB67E07FF1508A591C40F29C4F4E03C0761DAFAA6C4E4D7515D3D044F7E5D9B6F76C3523F07B86B966BC2050273654131572050232540265501410321121824027783508650550741845227675205140764772006807238701150672363522380823186775485346122741232101846044762034061346508846856004508217531847506553422270003465001318843366570722341256676412710345762503442766148802031700065838665810155802123526425443477780225517686668627385732838374183830578328430875075738806006057215372237255330206645686206532007402436187730431525465867647825811554786647043104375540063472868467521138444506855840850622072745156652883730438734305732524737387063014705036441133615604518408815122131125202504810267182170514218811002085201254838156820201088584847214346753735887361787368723385680274880675716073083468858754024781441460451718621650764072470876430018540463314037653043260254403334013420554376741651526887384367232437772872571236432846113158844048402448026234443446356631655624571084504437148135030305335563616217056075630605830233420552628432373442580105268442188606664005688153573261574404273251112701374300315715427425557365723036707713333154501238558575528577180345582234204444027511078611230842318434676756513328416871728302630727767221615188778420705148760282006015420340813653580172668162025543061257714607056886527838253463775286557467874302385541175163873125403136883123024782644056005776454050450463856458231030266773238561883245373725805362358236861886558048054373517006153723263352805784612747766872528551515675467320836133213785558662842164780507124010780705382731865322261671658563251820625605486727154222632331845371780377110620406316868745534211605053684662067164782272500355338031585232841457166288521403104854878437265654262373837268281560786012704588254043617732675622047062353066104016602755704578677260376636082632526506057173816361868253348168171755151062823522066020418818632307513542804243556317063765822868038468506613448543036820231730106212347485234367884828616827033357121850832050360848747865116708334325478114764064545882530235517784101378158280387668200424153038757453662564868561401622005841426338428326845853813752150205647048731768316114171432031210530176405308626212315625877622410617144857321075301351544462610553051243543667566675865335022131344837646363774338358017020828322812301042686502414653278867536671246033825211786357550517555870412326345585188457210000315518722276643085112001162624655523063655320741885067301234547663482785273242871867433610317833314257358238168035870421442233173234774652833582072540045143452135211450447284405865524301678168533008608553068110010402510031273465112253237686727627477608688360860655175382170833104267041778753258183846702848155552758183213003518102058824468267721170670211086383333614167717873621734000234476376137205763060645015200727731656541667312526120835206388554240354487387761200858280506664805026810157822733523020574251831872646604616365770712618804337567105781AA2BBE68AEE92FFD1BE88D01DD90EBC8D1A9F5DA65FB482FA23E92A0BFFAB2416637956B1A4F7D0E392B910710069FD0E18EB26E6CA741ED0915FC9FCE0C0EBCCA45C7BE24649829B0AC3A43C4CC2E4CCECC827FD3191515DF2A120359341577BAF0BC05F8358D518A57ED3033A73B8230E8B23F627F6145AFB0ED0742146C61A21AA6CE40AC75928F007F39E2696383FA48C75694F106E623B6F41E070D0E985E9D542BA2B5F53A47B00CB6472F9D03C3DBDD1C113B08128105F6FCB281C302C0410C32234E0E9F279AE96F3CEB0B0A490443A8CD46BDE80AEF7B1BF7DF48F98215B2F556D0EB916695417DD643C93AD1D703CB238418C6199F7FB4936CAB6490072A245577FECAFA7507A2ABBF3E2D185D9DCA22CEAA93662168F43ECE8421B7A9A5A2226227F22BB497615426881EB9BAFAEB7E14A177AC6102425791A1511FA9BCF2B3E453CA701D0C8AC45714541A0478353173A6EE57078F1059517910BCCCF0C9842483CC8E5D35166AC13BDD7D9C760819752AC40CC61528F4A93749BF5711216101CB0EC79B6E0BB92D4F9042DA176E6C175EA1B2738B7A6355551AF4C11AEB5BA92ECDF28E521E1730598E480A6EC130C65388FAFAF5BD3F43F566D0206A6CEFFDC01AEFBF52B46BCCABCE80AF453D1CE840B3157D4B1D15DDBF0E864939A5C411B471A9077E5785ED9928EE1C05E0BAE9D4FB8C9B0B7A814A23784B04F63BB5A533AEF4C186217A24302E706AF88D4F9E85B71CE427D19C149E01AC698EBBE6B5CEA2E3A43DF2976CEBEA3C96424D2FDA27DC3DCD7A36990CE7B9547F247039E83194E34B3DCD90D65D3641AD5B90C4114D0441FA46FAC16A9F0691B36B39012F2361EE0B87C23FC454B21205AE0D7E6D9C162061924C2513C369CA744DD2DDCF9C0C314413D4898311080757309D5AAD1A3761A3223B60F66B0E392F821597A011188BF35B25002C298F01D6A5463D3176E1C7FD0FF1A70E112ADF9230E9FCC9C423E310E67C35860A09CC4D3DFC4EC0B16AF467373FAA59D0E326D82B6054382476A1D47CEFD2709EC829E3B29AE0C09E6B41DD540CEC37F0032C949B9298ADE79306E376C6184FBF7440C14D217B1A557886CA79AF8625DCB9142126A70FAD6F813F3A5625F2E138E625D38B399E20AD05D682552180FEEE5C1E370F2B6E6D5720AD313B98BFD466468C727DC1F2F1CD141DC7CCE3592A46FB3C63302932B832F309AE30E6714AB952AB84D76A59306D05E1251171F8C7F8B7B2ABED123D47428741A8583EE5B8E973950B4F5C754DA4679F3A06EB18115C3049DE8E232AFB65747C0AEEAF5716FE5B89AD6ACE90F8CC4E137A8D9C65CC3A98C7FBAED0E7451A8F623890538DA9A7B821D8CD9F49A1AAC810EDDD7EE00AA8CF342F0491A50E617DCD535242D54F0EE8392D1B8BF7D69C81FA335FDF4AE163A1BB7024EE883DBFF9A1CE154F4316D6063DC7283F151C4ECF5A9E8D1C25D0238CAB9A925788FFF6BD68519713694B231A07E826CFB6F3910428E3219116782E07E132228B558CD380591866C028E1F3BD2327BF7C61FCACAC8485EB43213C20922252B2931861E077712CBB5701876BCF66FAF1CF6582D4F4EB87CF82C1B7807A255E73DED3A7FEF23139DE96AE800C2922246A54F3F3A6EBA2C8E8388DBDB41A4131A69280924F6D7C13952ADF9F6131C1D6AE6A3A085F8FD5E4A45C2951A8D65C345CC067B13CA32B1A6C28A6359C48DFC119FF7AE92054169DAC29119508F17FFB0BC925E357AF70B85C214DB0368E1425AC878978C346485CFEEB9935BD94D203E271C2EE9EFFC63C54B6D05C15EAFE0D0D562C458B0C7EB0D84CC123FBC30EAAB78B47F9CB11AD7ACB54221F56998177D85EBC62DEEA042E411707FA78C545445372461BF5D4C9E4B5778BDE3C9DB02F697965D2CD2A10BE66AA9DBEE728B52A9117C53A5A2D90D59F86D8A601436CA41D4A99E3C2E66261E37A3A5B7D4DD21CDD46EB4C62268520FFBBCAA8BF3DE714652CBF83E7E2CD57FEF6ABF8946392A33D984FE1CB1A08FE5DD088F974499B704D94F0646C7977DCD7A75E8012CA35E39CA7EE7AE1C0C27013A32DEE29CD141379DA504CFF6ED8853959840E829170D2D15A265CD9A8BA48718848473090F40C1BF3DD4159267324BF9858400091FCE515D541F6608D395DEE9C5F673375E443F104339F444C4819A630232EA7D413CD8A3556E60D7D20ED42E45CBE335AA1EC684CEBE7B32C5BF4F68F969932961930247E2A9F279F5C587120879F3F61025D6B6DC617C9FCA4AE8034B00C8DFD6797061A36C12979E85F4AA7C9F7E57FAE4AA44DB1AF6306E982A723B6F58E9008B4BCF4A948FB131D08AFEA9B4BD093CE76F8F6366ADF4EBA4E31FC5EE6DF22E1FF1370C81937D29007A9138904F569B95A38C5DE1BF03711C9D41FC0E72744426EC510E600D1231C99C7FCBD91EEAAAAD1EE8A27544D0AE7871B4B881D80DEFE22F3188C250AB8760277BE2295157BE5F33201233B53E2348661384134E6A9BD89E8F85B2F4E217368FC86161F491413C8959DB67AA5D51DED0854FA779AD305E3A6895542CD84DA2E8F4739585F7AF91DFDDCB35F7E8C6F90D1EB810D8ABD36334AA02E84A4CB0DF03961F5AADC0CFD45A7F59678B06204CE0613F040F3DAFCFF3D59C56B655A3D3A0359340A0F91AB9AB1A17621A1A57AF588C31385D44667E9258E5870756AEF7AD2E2B3E3364BAEC218E0D6BE14EA5139FD672755F7942F4BF9E023ACF94B1E15C58298E29B958276F0C4F04631D41D99559E7A7483AA39252647D8600D33A4C8624D9A663AFA8C927808072A4C6A63B92A76F76A79176261D9050E890D52CA68279AF0B09B443C001A4092531BB8E251F7ADCABF4E49DD1616F42528CD67283F2C52479D7DFF2F383AD7EED58C1621E4DAD50AC9C9FA5096ADB9EAE77B19122ACA00D48E967050303C93D90976A3DDD5B3BA4A816CF0019B508DB2E65CC47B187C78432E41DC9BAE328EC529DC3F6C6BE048CA843832EC04348421113A02B60B35CA66132059D4D5EC297E9B92E8AA3130E30DAAD74EE7E021541F0B3FFA72DF618969D18B7C6936242555FFF1161D85C033BBB934894825BE9271EAC5A445363743F81C46315F547995D6925FE76BE6B7145D022AD1A015C0B8101FE30A81D363B2BCD627BF178FF12023F1BD82665393A49BFCC5AA1F1C4FA318736A301D00DD5D015A14640B91E104C814056892DE7C624240C06A3C5AC14E565FE5FC6170BF315913CA6F5BCBABEB9C110803E12D81CCBEF3C48B0DBBEC02F8616227CCEDCE48437D801861964934B149CCF34FDF7D60D29FFB46854CE5F3929AE9B6C051C6825399B9EC10A9BAD1586D2E75DAAC68BA2527B021E3153F419B0AC23A961799F016A37572C91EF790635A1D7B7E7968AA570B5897C6CF03395B5FD2022114BA84DF417F8F105810384BAA41EEF2A5B0C7C3E320237BC67DC36809CEE73AC388FC9A0873B2AB63B638AD364F28B1B7D002EF2CF5C + +seed: FB27DBBB4ED8F4F7D2700283C2B092866694246932EEACEE72DB730EFD172576 +pub: 0FB4B45D59D6BA35576D1F75ECF682E5C901372E65678E959DD61F6652AE3F0533A0BE6A3BEF98F0A550CFCD43CB1CB9ECC3F4F7DB656C9FAE8122A0A88DFA6262F3B11454457167C1DA30042867A37B26AD62D594591BDFDB36B833DC83E4B8109CC2EC0D4126D24B2BEA48781FBFDAD7659F1D8E60987B9722DA54627EB895226B360C61FE3F2A10A69CEFABA3219AFACAFF22FF5BC7B564B01A65BD698AED8A7AB78812EA6960C2B766783ABFB85613B069A7CC173425F701B62238FEA489407ED3F2ABBF538B1184996CC7B9AF15FB5754928F552AF73696B18FEE24038A1E9A11DF0C78ED6814CEF3671D60DC38D483DAA6A6822FB4381FC036C805C8D2B7151BC6A6B12466211C0E1EE663BF4EE737F4D942881E9675FD7D87709B5F473054834599DFA499306B3E727EA6FCB7990E0ADF348321DCBFF6FA886C5846B1D05F5E08C6C4BAE416FBC7ABC1867082834616E3B4757616E9B7E04E2013B534258015E06A114192F48E3C5F0E6A48775EC05F554D69843684FFDA6A2FAB8F2138817596115832AF77A10E43A4FFE98DDE79A9F80C0710E5450B681D620BCE626FD0932B4D9D87BE222B7D0D8FD010172F3C5BC2353F44C08470871E38EB3DCAA19C92D3D028D61662C54EAF7ECA32C0D48F4AE0B2FCB0F517000A8BC96A76648347687815254ED5905A1B4A2ED4E43364B48886FDD5B86F90659AA03B2AD85B54D3E85E3380FA2E050120F555FBE241B86E481E020BD0AC3445CCE71D9F8FF56A7475B073F1F388454B3605EA18A5E183831C948241DA34EA3E1112BC706102854423A4DC16D9D3A79BACE600F8098AA60744E1C7FE18A047BC7646DA4A569E0A8C41D0587053A22209371E4BDF5A7CE8241D97670BD81E7FC61069292BBAE13D8F729B7F5C2ED3E90BCAF55DCDE5B20EF92E1E7A159B6205E7ABF72571F02505526928DB09F65562D628443925E7DED9586393DDEB4E59874077CDD4F7FD4CE68D2CD311DE78B245872AD56078CF3DE1D88FDCF541AF7D6CC69A1C96C2E5763BE310BF77283A820359CDEE43B53B2F004F2FA2F1725BFA6116AB9A8F37FF4011106D1E65C6A3828AF1E92671953C26ACAACBC48031D7E9919DA915B9E5D89556FA82E9498A0BA980892B9B9427B848D095A0BAF3857B6D6969E99CCC337EC6E166B1E1F55237BECDA10256C8D97A38B21986AE06DA7C80A17F84BC448F9539BF3630D7D01E12E80B616F5F98C47170DF5E16450D393CC4542FCA66359D48B1C29D4C997C6FEC087540AB588663F5824A4F09E5871A78E06C18D3A708CBCD7B4A957BB69818D38BE03888BBD62738DEBA58E3A6DB3FFE477A5EE262297F96C26ACF7CC419CB7F3EE8D09E47AC1B134B6AAC3191F7F586B507F58FF9AFD67FCA0C10E7676ECEEC78132EAAD0F8B91588C62658ABDBA03C9FBB0630B2E9603E5A93F9A04A3E07A09FA0B3AC4861D368ADB53E8FCA932F997952AFC5DA4058C48AE6F9B634B624E50D2DB8E3CFA23FE41C2B88C3C588FB22066A0894893D4FCD55FFEA4352F8A27D7714A18309B7997CE71EF16ADA021FC52F3652561A1D6518559C250CF1E35D109B04408C998E457F06F73349CB8BECA963EA4DD65826141A59FE60F1DE7F8D8A67F5873A7696E206E4EEA9FAD9FE00C97A07F7D7DAFF316CF85BC1A465F61A381B2EDB3EB4053B8F134B75DF5C6D133E7CF38AE416D24D4AC66AE61DB1F682A6B42B26A421E7497FADA9A97717D2A9D7B028FACF01CE14F3F834D84264E688BB7C0305EF9EF28D5A0A491B0C4AC763FADC1E260790E0EF2A70E6BC78A6D3A136E0EFA5D86C9C0993F3E91F5AE6DA55BEC8425F1838298F63601B4E9E71AA12C07D2FB6C0CC5661BEC9A0D929FAFD8AEB545B729C7BFF035E67EA7377D2162622018F54F780289FA8BF24F9FC2E85D06DDACEB91D064D4DDD3969FC213AF6292EF7FCBADA5CB3D5D1B5833CAEF100EC657056B69324F2E5C3ADB519120193157505F5A0C1044C0034C03A664CEDC465C79BC2B915B749AD0DC2E88DEB3FD6BFA8EE42631F22938D735186CAF7F273D9C8361851028362F54A9CD50536E31BF835D13DD4435911CF01B1A8E27339033690C35C311760DAB34E391FDDB690156FA47B169043E6D5E1AB721619CA3B8095194B7802A7FDEA8DCAB9F43BCFD1F5893EB4F58EDF1C0B9DDD0BD4615FC1EAEA46C68BB84697DF3787775E4DF560B1A43FBC7A33A3E084ED97E59C000529CDC1F97EB92E9DB331EB207BA478E3457D1648084D267C0603135B8DACAF2C15B42299DA433C0E5225C934DADA9B701751ABACF9FC47D90CEE43A2FA47F6D05D169623B369A7133D0F73922B2EB869E91B5737FC3A2DE03A3A92DA98A253C022B4466DC591772D39E04CB1E4F176C1A282BA15E912E2E5C8D81E00F92A2FB8BBB16D6B7733A785F620BF52557B3C3E87EBF625B4FB0B7B65101053532EA099A1B0264DB218EFC19BA207203089CDA1FC2B32BC416C454A4BB977FC3528E423A3553ABE4C48DCF662BA7F5B7E1B2A4E2DB9A388EBB0E39BC229AF71ECBF2F40727D6CD39C2FCE2464AAADEAECD47BD08FB1FA5B6627D274E3D31C078FFA3C3ED29980941CEEF8853704262B23DFE88780FD9CF259EFEEAB01255F0CD354A473848798CC5C1CDE63AEC6AF2EF078777CB67A4BADE7C3D5F345111FC73261B55E8E257EC5824CC829B5F5EE31D4ED03A16590396E2FC381A7923E81E3F582252EB19A7D61ECFBD72F0C3C16FC79 +priv: 0FB4B45D59D6BA35576D1F75ECF682E5C901372E65678E959DD61F6652AE3F05E8F6C5312F27292980146AED5BD4CDCCCF105C59DC052E9A5604839CFBE13920A93E9DAD0A618E59915ED8D751E04CD99BC661E5EC654FB33C82AD84ECA806453B9145C9335E1A95D987D85954A8DB9BDA8280BA76402E489AFC07D90DF7567C36560273017280466156464484345270285178305711250242618355037451272805831334710075688556205675635811344085746515547468075008004432316642077378448408234860066117021246184447148263433760087826350221845428303755534425555717783464144721524485283480133537526651561143130746043842062162336620037333860708821510700458474260707108783552112553517880140325080003741440347208756274083066034241155117413308076178401187304037688762030146873725228304172627873352187338032728273353058572467830523107526832557771072150587632044015331378888724574122703235400051288424471463017425114740686283126323770788487586151073237435056574117185656340627503508855871406032154132457173517406070365623071357215822006317662446377112741371334240268625017522547202654825346782030134741711776706347452824240741863480127103262631840235133582166006304237018151562258370018144006703338563061314556680178581266374583457127838148005138183311168871835130403368588740370785287432187408630065074371213480444706406001571542517601870046628537585864013505382654286745611688562826411460181216012170130671033666664050228621047288450184107351840765645803278162817607642382073553002556568788426586683475530285773666151835665516303380616363227666858618761871385373345822418160086702271023726638411777186012145217307263853282062146678035810787254502315346844448377284120122775352576074324353408540721484446660113184477760757722801866776724528834717535547588852626733700730625755854828563408352458634703417047181611758852002888110270451664011082677250413015718850326577835815683880356606382152683807252371042722116282841206422056134168747282480661425448572771268256417857244404004266015646767320855751075500451662804257710454343255256810735615778555006233143718626653125262772466865157188155020522535172225206165001848253325225481217513861451643867711572822836715814443656054847322127382261373454384541346144146522301347070057540552088832373200502381445727625633138630426301227580101874474535184582276070136541128502418006160228766041816107568722737402742376833648820075260766071780446008477251682432221347088684304624471851307716637632473404150070457208081263267878825854610503616057514005155454106025132382716413517273075776773481460567806534468274677273732307402176400528254003850741282758634420707000148538120762573172316826678588360778452648825333124015705775726667545085706211188383356315880631315705723620874123576711420723155615800885213201562654580242880636273014718214588481101167063874558732715713124774232421012565602130506631727226611188335482535363622858870107022383508628013502852406025771446035382361661005267412153785415157213823542604756172745743260401151135822128877563768657521545878000334705788040273517532403014046181623871830487143472731360310027464080371511476477842670552846448716276586070267871218265501785588404888023122544554862135404377441518C06B6969446A99968141308658E13180DBDD324D01DF12295072B0689AD24B8D909F5B912FD4484F8715495095E72DA498D11E17C8FA5179C034D020D13333D45F044FE079EBB5CAAB5AE07027DFE0B451C647A7CEF0F2D7A516278D0146904E6BC5F9A019946F64F3A69C8739B47FBF768BDC2D10AE0DFB3EE486115C3D29D0390E9A6F0C66F32D20EC247C23A95324346E87E5064A651255FCC49092B4C7E7C1FF85C6BD646F40ED3A8C0BEC3EEEC4357DD01EA975523E50A5E1F1357B0BF59087F056A70AA4757348F5FAFFF7BC3388DA206D92ABC9A373472E188B55F03A2F5B2243A3C2FF86A3934AD1C63EE4D31EC38B980F22141FE77B29CEDB621B6E7689343BB29699FEBEF26346177BE01999A5A1A916987138E7B84EFD5A8EAB3B995C6E4202354B659A391EE0305DCC82347C50CAFE8C3D25D5BCB25648CC4CCAAAE062FFB75041874FD14302B3189C8EF04500EB3B9E6AB7E021647C79E1FA19BE67D1826D3B96F3E6D49C6EB5859F8EFB241B8E583005536A8235C5358A64E894847194A3EC4CB7BB6D445C66C08AD99D4BE4243FECBB6F340E175CC9373FB62ABF024CD913F03BEC9E8D28F7C8587E1C3A7620A83C3D4C31DDDAEEE9E1C965823A2F143F1F295B4A9665715EB2FC4A82AE0E16ADD7F58986E68A720783D14D0C48E92467B3DECED57A169CE42E9281B180F791C3A9A84D936BB4CBEA671510899F35A4AC0EE2F8547C2685913069FFD11CA7DDA5349D545BD5705BB5FB3E233F11A6A6B21DC638A4410FFB2420B123CF8503FF4FB53A19DD70974D90231B90914F92E52A38B13800C194427204D3AF3DF2436AD50F85DC6EED13BE12870FCB051023505363E848BAF4D01594BC35A9C35DD23A4986ECE378A425EFCE6CC49C65F5D829D4A7AC4AC54C3C4766928315F23400836DA42717ACCF7061CF91BBBE8C47127F5A8DBE151B37FABF6477718B11C3FF2CAE39246CF44520C92411A2D9B365570462F2545364A6CEE318330123FA3389E732BBD135E74C6CDDE764AD713A40F19EEB1315492378130247187C9444D7E5AB0E56BEDD59ECBA7D27AC32618E1DD23D1452664D465B968D86E53DD0D9B50ABCF572BC1A2B072C1FB6A6B2B4DFE7A8261E5D074897EE0ABD4E82C53624CBC3F94879323A4A7DEF36E80E579F824129D379515BD42F67F68D2A0D0D212D102B19D2D1BB4365C0F5DD6F6FA2F32010A9CA755599992C68FC61E4528A68A38F6ED6E70B45E1604221C27060F6336062F6F85A846E9586D8D9950C0517905C23BB99384092E333985D1E8F51F9A1AA6ED855B4288674D02A04E15E8485C086F952B746351755F31BAFD9BB9D0BA02D7D23E0915B8A1C5C2E8372FD6965EDFE496ED5A2859440B1851F2822F1C199C041E863A9D23AC3E03D510507BA8B4FB7ADB6F85D421B0ADE9B3B6606C9571E49EDE3ED93CC85A23E4EDA6D014B9F93E6B38FF145C8B10BCF6D019E8BDAD78B8FC0C70FDA4B21CE9652CAD055EE62C195CB2031847490633F9BB81D1F2B81E9FDE6F8101CC0E633676D5CC8B0431B917AE43248BB2749CF38561F409EA1D509BCEDC177601ACEBD99DDA198F4E4F215AB890CE8CD9AE75384D27EE7C3460DAEB72BD2BA90FDF270FC05C52DA014BF09F1C30DEF071E1750E5F9218F57DEBA0C90192D582B25A63B18F84E4E06C741AE8E125753F5FBF4E5CF08D64F6BC8A155B1BF4A6CF1A252A8F6167833D3895468B438EC98548A3AEDFCF0A3A31CF1E0D4E442B6FC59C86C10287631B134CDC1832D83AC335F04D10306C75C1A45AF63B48BF8EB03F89CA6E0DA78BE299F98891922A977E6EA182A5AE7B544D2666CD0F3CF2387FF3C5E4FAC94C220BF532394269304FC8A57FF17FDDE31B6D233A0EEAFA3614DFCAAC06BD6CBEF6EE74248DFE9C6B7A5A0F284A0CD4EDECAF3DE0B4589D2408F851C2036812C7D46B15F67E8C9713ADCDC1F1B2B82ED7DA48AEF24DF9B400BB32FE89AE95608D7164C377279F779CC1E8FA6D6DDF67A264D112CF7E0733FC450AA97B286EEDB959A57BB82AFA333D1F0CF965087815023B51B1E41D035E29AA99C90CAE7E16B0E7C03E52700CFE574A165460732537C413C701E69700BA941A9386FE8F71FCCEE6D3C10F832439B754B8BDFD49E3052C0AB1DFA70111A4558B86CB6054A4DCE74F81990850ACF6FC778DDF25D395527577D9D0CC34C72029AA9627D3649565F9013F6DD2E586824BA63C18D778F6E9D8AB85682DBDD723315AC9DCC02DE0E8789F64F1DB1A7F011CE71B028BD8DD3D1DB7C2496E67838649DF2CC4E4DDD1F5F3308DFE57DD1A5074C45F0346043BFA4D949AA2CAC83221D27ADA31EBD5A4F458A54D128BC7B20F410BB6C19F1652B84D05D5C173261D701D5EB7053769BA9C62362CFC52FFBBB536B1C21C497732C6894F8FECCF35C513A14EAD53C3A067585C1E021ECC3F023DF543F624DEFED6168C92C43B0858AF64DA72240C0BAED28C53C59340AE604DCE4E4E2B316FAA0B04A39800DEFB5DC91611754B00FC9D028BEB2732568EA481FEBBC3324E21D2C9A3F8990DD20E39806D90FD50F1D19D34CFB18ACEB5B7D8810B57F79753D372D0E7F4E14A6BFD4882A351083FF53DF1505A5973CF63CB015A38CC8F595AC862EC9FBCF3A3F7CAC508E6A48535AE97A56468B874AF26711CF989756757F8D3F31CB1A22E5A06B86AC8CA86D4ACDF5815F52B6E3F34CF728F1C735ECB35DBBF9B0FB14932D3B1816BBA6FB3DE65C1F537C0A36579EEB49F34A82881FCA14C2D6D8F2C7F9D9DAA879C8BC0CD3169489F44303A90434E8FAA1387885286B5F837769DCAD8F8B654C85C6FFFE02ACBB7C2881A7E3A3B2466E3F12EC79138A3FFB47C7758DC2F7A6AD0C76A7BE44604CC264F8CCD1027812AE9B47C94B70C27DF3F208231879B72947F61F98AED252698ABFF431C37170BCDB9D5894FC0F580F7260720C389CEC04D82F5CF60A6D3501554065DA790BEEF3F18A2F05625D0FA18FA51F0FE8D1C0583933FC814006EA9D3C8D94465E5EF36C65F9333B08C63CD0220B98313A465F5B25F406CE4906E74BC44D3F7A98211A0440A8BFF2ACC2F6FDD48DA95A02F110D809A0304A756BF23EEB96E2E72FDCB5DFCEBD2FBBB293736064C39C45209001FA2E4576ECBE80BB7B69B99BBB8DAB7BC45A1D39F8C52EEBDACBAA68650C20424B6D77FB03B39698DDE6B33860A485CD2DFA29EE384B7318E8DB0A8A1BE5BD032F75DAE98C5F3993DA601BC00FD13BDB70460635D4DAB8C59E1A1B74CD5564501214893C915081957EF886A68198AA776C29BE1EB747CAA6F68DA72543A5AB3107F46D6259F932F616F3ABF7414516D59418B14E95BCDB1D5703131CA20BDC8C429532212068437A90E8F992DEBF36CD1412EC24E9029D83C0DD6C6C049F9134F45968BB94C9F8004EED39378FA089241DC3084E253D42A0B9B91C5367E6BE1F1B35C37699ADC1DDF545A1DCAE0F0D002F21A32279DFC1DBE455CF17A7FFFD3EF781E727AC + +seed: 334ADAD056F76D74941FD87E5263E449D97C06D748A82018D0C794154C20A870 +pub: 05F90F8FD12BE86F4F09A59E0A0873933B75A7C33C76BA4CBCE5A2216610D5A228E9CFF23DC094B0D3690EE5B3DC55F243F2FEC1DB1046CEB35578AC48F680F9F9F8E20B4C96C67FEEBA4918C4D7AE555CB82338D92A2F2A97B722F09107FF5DDD88C86007FD3187E8EF195B678F1765644D5FAA99773F0188DAAFD9DA6BA2598D440F2639BF2C0A3729078CA78907C54E332EC2AA6D9E79698BC72D082787D7FF28929CCF6FAC633B2EFDC7DD0B82078DC8CBEE7709512583EB2BDD9177C4691D4AFAB887A739B396B308B7004BE2C7E9D83404D185DAC00168869F5882FF81C9C65FA6AB987C0B356C56F3E8ADC931E780F2255C39E2D40C0D741D4266B1460344737457D5DD07889B30B640BE49615EA8FF6CEFB05A17AB44DB8DEBB3E883E8682158F566561FD4FA8027A04A0153ACC065EEEBDFF09138F621025527079E7FFA9010FD95C8791CA36377B60E2F92383841E15C8A8BA07F2BD34F78D9D2E6825DC476687AA780B642B26A08C33CAB33860DDD1858DF04A94C2405F94EAC54A005AE53B7573CE87860FDF4A59F0E96FD87B451A2A897D8E9EFE4294949E8D663669D8474DD5FD5580A366CE9A282A5357DD7B96A66DF961484072EF21552CBAE892BEE96330FD3A2C55008D71D23A4F0579BCBEBA343C65C3D565B77474C178DF9A97B451A4EEB90041DB4B50BAA022037E1E60D98F4109B9FA51275A7662BABBD7C6F791F54EA56752E20284B56CBB853368A2F54C02778BDFC742E8FD566ECBC97596388F9F823CA2EED4CFCB83084749165B17425A8719F4822CFEB3040EB3C8611E1322799D5247FD27D403C74A80FA0A672FB1CBC62443A222DC7A1E783E5BCBFDEEE18A8D880C65B9E827493C318478A6573533C4C36A6387CE1CB01CA70985B39088AA76F4C13A774DA5B86599DCE9FE1A87D2A48AADE42DC5F1849AB42C8877B5936FF2E53D860B54918B02617FC78CBD03765EA6D9F554C8A6DE18D7AEDCED60BEC084BF93419B7B5FF489457CE976625236CB16C26686C3BBC5BBF2E1D37C69D70976A7A3B332DEA756B3B84FEF984BCE70637FC376A8F4A02EC317D4E67A3F259141AFC2B061D48015294497C276D87459894A80B2C7B9C46D988E6550567EC4F3035E23E1921818D2A4D060552AB0088A27C9A022DB688BE947C231A99F22D6D0B225FFE5CEE23A5E89789F5AE58F4C50603B37A0624A96270B849E867366D8D82E02445773DF5648A15C857C6B04AEB21AB4A04A0552E9F30CC253B2FE7CE0071D3335976BB702B11716420B43AB11639589E5D5A3E7477B95E598208AA46DD30E1606F30DA0C616DE7A3CC31653545894FA958E8DDC026EA1A8A8B807EA45297A04AD11EC7FB3EF4DA1377BC6C36CD3E0BA08FC90B4B80C541BA6A5B7D2D91E299D4AA9D854EA59F45E0D76F8090127E8E834F3A652AF71F18935A58DBDD18E9384EAB5E2E10D78CD57BD4EBCDD45BD2125F2E0896BCE153B5F84437E076145B61C050F3A45C1C311FD8D880F38D65E89C4302FB3DC58C6DC1F58B0C52B73C00A421261AB5B9EB317C79E2F885ED5734F638C8EED36081404A048C26219B04E526FBC1D1A5058685AF88028247D6ACB43FEE3F546CE2BBE4BA456E6868CACC2557C07ACA318E1C8F70AF0C9F55AED0515905E775F5921B3AC8EEB5137182F487ACA7DFEE88E77954A94DE3AD78C518B438915FCED9160A4CACE1D7A005FD60BD34E1B328321C22F58E70741117ABC5F819722742187C9D3DD19BC3B7726DC3E81DA040CEEE823157A14470E9C0A04DFEA594A05DFBD1E256BB1524FCB591786379FCECC7545A875483D4B2E58383DA1807F5222CEE95E21BC52316A886590F55BECB6F2D5F8184330C82BB50427BD6DEC0C5E164ABDCA44F77E80231FABFE8BF02012FD377536BABF6C7638FAD14870C97F1AB0D4273DC9C4BA426169B659278A5BAC8B63E4318A0E85C4B22403F13C9E74B03633FFADD939FBA9EA3D746B37E4BCA503370DC6ECB7EAB6537E16EC64DAA24C1ACDD2F98531C594CE745C70CF3ACAFEFFA1D36CC062D4FAAA76AFE291B8FF281FFD546F500786DA4E05E7ADE2D37CD519BD78819F27ED9B9A950ED2D0129253DA2B7F3F660281C9B0183E5F753FE96D123DBC27FF6F56FA5465B8BC9F48CE4AA4963D17FCFB50FE546164F901B04ABD909B78108ED8C5DDC8BCAEAE0669B740E0F7DCC833FDD91A789603FA9A2EE551A387F944C3A032F231EF0E7CA775905CC5ABC8755886BA211E698211ECD3B04B959BDBF431A454A08558D4CBFF01D177901671831E2A0E9838E7D9D0CDF1C6C8827E97CD341DEDCC53097C9BFBCF0B4347E398E1132C5CD5A505D45F6F5D944073716672A2B0BB6C41C8AD65F843B1738FADC6018B4C8D6D5B2E2E331B8FC41E98A91A0F43DA608F49AC0126561625D21147BB3D5A9120BA264A703D5E37494FD4AB883DCA023A73DF9AFFB4A3930B5ACA133CE57920207D3D1642365EE718C430B51AD7D4FCAA294B1F42D8BDD7F08C5B8FEF631EE7F18904EB84F867B7407F93DA884128EA3E4E1E9144ED351F40FB460FD511AAEF20ECBF20398C701717409289AB22C2518BD464D28D76D9420AF9C9E91734E36F355544A80E50BE0D3A36556620D9D217946CEE219C990807EC0D1F2AC904CF661F6906D58D8A8F500C3D54F1966A8557F8224415F17279FF93489AAC8E8C09BABE490C6F34688EF162133B19B55FABA9E3AE1E2573E51966CA827E3DAD50FF9 +priv: 05F90F8FD12BE86F4F09A59E0A0873933B75A7C33C76BA4CBCE5A2216610D5A2B3B647FE6B2D597C0BB64BF8EC612AFE415BF8C6EE9C1C89BCC07825BB4E0635E279D6F8DC3E90FDE70867F7176F78C7375112D6738CCFA4081C0A267427E6456A9CC1B62D301B2E61490266CFDE8BFA6105E0A538AB1C1D0AB74430B33713623581386483755445243753473438078511606051368073160115738012354521300214633143005060458451614181317625600850828658142078641844516326445870256686653680383537701272643265207087826247876408370160122140768874166087151412676620180320686408856302667266662275523315434588681761074568070028312208584121154004344663581510807865182675883813108000025672850572778605381322036260037871137460676071517771314675682566577436544573460506504832281442435167233455724534277207215216360738167150836460874031736450610842824275257455405400364275587451282130682375546268016543663485208367258707108220164027637784307552716318515481724518532741014070576523654860028123444648726543434463586358076328861862385412143118625642628126672617763635717788356608737358238865854478487075717624743613147755325577155202642662650113374865061032648163018768724404227837151260534245414730837040272670625518524816844173752604713612421427581014835327884216357004103827372624624825607613685321838718783121783201546220877332618523484033418836504550354845557501255723257746365364533724770053004852604007145007653484371135700033413050162143608712741065021721558584332535787122020613285457067071122166270825871245825500252511451404363724313586561623662725341448326850605637645520652710734061103603553721504585707324281583008610265170617622430557127532416631412258328838374307302264678282601782132034871337644843401462742842107215876302171452753735780621218157840378626106652400582488562616865716354530113688531563273150642540215680704544160562010462168227847102043537372863606227863485764564280612335786655251320053243774704426146103767351675004061227771882487418563217101228257228474177206416048740843757752314642706176054186108442840481072688807888245121437337668018848605137653166518641703180318156612602033260572357615555665686231008127660607683820542312302436523202472348222103574847503136060448373050426708734310818546100012558051246608155643310633872255780650310786552541215201745381263325165137452788463576343674204721826037356042184745266584825467165112106006355167510788781105623465658773756883868012110284321513014454716525175616611768137427681534886023486205351442728858581666752868236430175106745042638321062083108321702340453041130612457481178582752050626158025384055005352376672458346427221748425807137606753806442562318172647335860725474830371583802351251766113664310376562367167407343086650862744558342510760512033105786441765808007204600605264376872847174351175438301566013163416683413510128707207468874177221405114514851318225231514632664730885425005816216567873025118726014288180357621523872378502177300555886517581515484033478831137167558052224442144782845268072021678508733840333135173515826820635274207417088856814547057513727206644577603710446785322314856685424538803253760515563520538716116405141054573465220348762101770782046356737660564646108A71710BB56C4A58168EDB0C30F9ABA6528629B1651EC7F3D4FE010447640C0C2463FC2632093713C10EF12918F6716BEC6AC202B2DD43B2637A4BB8EECF09091A92FC1B9F1081128E4DA97706698A51AEC985B77FA207BBE267EA379FCC692A53EFBD31773E886C3637A229EDE8DA0CDD2AE15AE92D780700C84AB8B6EC9C0B337C52BCE50FA59D420FB4246E1E62264C0EAE5D22AAEC278FE76F27EE4F43165E6F28678B613BB2B482E36470569AAEDF12B0F6A1E8D63761668120810A035FD8AF1BEC04BCECE6CDB44A97176F4E1F5A8AFBEA4F4C08B6C42CDC167F933777F012D11BBDC6A6BF83E1C7CAECE6069181B7CD884F482FD02FEA80CC499ECCAA88B46847020E6154B30DD124FCB9ACDCFC1B458B21F2DFBBB4192ACE07E445DBC9024401ECAAA68BBC1FBB615BE93CFBD2CC1C395FDC0F31E7054324F37E00506DFBEAFCADA9EEF08E082F130396A22F0A1B82854B097FA713126BA0309BBDEC3BEEE33042044D9FE6A20D72948E54421739E3B5DF5F07DCDD343EB4947873E77E1D092357781F35E8771714A168897FE3C458D16621462F3D2130D661E83CA346BDE9B68F238B264B5EDBE0EDFCE0FE7AC1F6D51DAFAE7C15FDCE3CF6ABFF710CE4CF52D7340C6C6C5FCBFE3ADEB72987B53CAF3C8462DF45649028E57BD96FD918156A42DF582F2D404004E4B4C589C2214937200B4E8AFEE6FB4A00EB88E4827D39ABB8741FA6B2A65632F76BF3F242FD2455FB6FF3CD06D09B4548BBC0FDF4E3399D5926C62C2C962C708FA6A58A546A1C27D5A4F067F7CD0D6BBD4032493A68C6CFC5D050D779E9F389F8DB5A522FB052D2967DCFC2F99A911AB8F7BABF73944696B334A3F3DFEB250BBF6E79E95ADDA9F8A1678712D752F4A0F2028C6871BEF429D9C6784C7739FA8CFEC41ACDB06496D8F7D013693DCB1000E8B8269A3AD0685D7E611F9D0E268D5C0BEE1DB5E0C103AF2B416C6207E498A4B15A3F6FEF22E1691BA30E296790414C4CD257501DD5AC4236D338E092B32170120ECE4A9699FAB32BA0447B32DD4957684793A77B53B7088545BCE9D2351391C6F68D4F5B7AFE553ABE675C716B66B3733D20C87EB5E334829B0BA1EFAAA6B909F9FC2D24517B38FCA6F0EA0093583C0925B0627C5536CCB9891C801C2B5CBA522A8F8F036D45B4022DF9763186D34D2D137BD4D1D865BB5C49D7F5A73B2DAAC7299723A36C723367083E76D2AFB0B74CF90EB9DBEE3B39D756A69299AE2042F37B087BCEED9CE935FFC25344E5D9EB9337A9EF17637A200567FE6C3E6BAA5A69E8E340726D60AE730CF963CDFD0AD05745A145E9FE92D80546D7AB67602A09B777581A1C8C7DE45A6ABD1DF2AE9F5489059C40EF605661C75B5D526BA9A928B41FFC93C36ACBAFEF9EE13DE5660790E44BE35D8C797EB9831724C86A069BC4153E44CEEA0746B04B9821B24CDA4A98FC7A42C8BA35E7A191B937D4752619CEDCB00D21CFB9AC21F2C933669AB073CF8F3B51B6D5791BC979C7B7BEC9D49CFE66CECC937C5045B21CB6FC234C29FA963328B174C8537D204D79CCF2250CBAA5AF3A8BB1014105178A8B98A4EF49E09BF837452D6D2AEABF589674C893BEE8BBD01EC13417CCC95B7A07C6139B5EA1F069EB7FCA0BF92F3744DBF1E24D469FA24767D2C0E7028CCD6AEE3807A2D3459AE84E9E5516F50CA3C42669F70A61CA3427919E3D3C4F865176FC08C68FDD7A48EFAAF92828C29AF85F050B45F03511BC0BBAF555627A12C53550BBCA665884239D3B68F419214FCE906A47B036F3C5DDB300B1E58A545B71C74733AF367D6DE5519FD56775B84DBC99ABBF3F135FDE98052CAB7B42825C3D76B5D3E0F6BB0C04FF8CF2FB3888F3350C4BA6027254E124D1E9871DE84AC5289A465688C4BD68A2D187D461BBC4535F824CCBA09DBA5B7FE5EBF9F7F97A85E31D5898D13D770DCFD92FA3B7872EC42853760416AAEF34C0CA96763D8B38694827248B062948A42821B841E623089709B55A9A26E7C985CE42B5F1DB99136D057069D582E2AF5AD2A18827C6EE2B5342D2A1DAEAF1FB1E0220B95E850CC04F5806FFC11B304F842683CA1B65A02E76FD0A2320819B27E43E50D7F75F4CC3988C087FCF409DCC6BD92DC9B8C72A67890FDF4919A2A0E4BBF932C7806D25B5E728DE08B26AF413F0D74BC7CAC88FDA1B54B6C4FB584FDA5D7D6A9E2F24C4548BF3F7A3F173845AAD914A3A78BAEA5877841329694A3402600C5183A1E773010F7351FB0E57062D715DAFF483EF5E85965ABD16973DFFA3558ED9B50ADF802C495A223A3A19B82C1CC1AF654C2690E46FB629FB5E13A8DBA83A176338A298057EB7FD674B43446D0BC50070A420AB426A1DDA272148CC2D1253AA827298D6D402CFB1D89652E3993E42D52DDA92F7A171EAE4B652CB65D0F6D55B54D7CC5E2108E6D5C85DAC4D5FD8E05E3CA6A060AA0AF6BBE310F61CD874C16AF5992609909543AED87019D72D07781CC8A42DA9F0D680035A7703309E191A044031480D19B8A6A6CCCFF7AE2AD1804651FAE4A2971C28D03863F5960F31DFE57831653F09A7BBA185FD036DFE22C594D63342588422F1836F965150750C94F27B77085E49DC02E750275F6EE30EDA4A0CC30725884F8B563B9F7DC7F6B3C27F46298F8AED120F634755D1CE1CD2E2E5E3EBAE4BB5BC3527C6DD97DEED0FFB644053EDE8454BD55C3307A12DA90AC6940361C310C081F13BEDCF3EDDE165162E4E20B6E33201E3EB4E7D9307D5AE918F0015158A500E4E3EF914999EF073E34CAE6A1C483B84372E29E600ECD1CB69115119BCED399ACFBD65DC3049BE0377CB27A1670A76B8C162F7167B8ED59EFAE205BDB393374B8AA7D23010D475DA30331F5D63AC67D2E1AF8161CFEA4260ADAF702464837CEA071AED36A217A029F59E7F38BA9E1C1DDCEF91DC436F5F685AA0C2A1BF3F30EAB6B6E2F7D2E4E43ED72FB8782AB5B7DD91657613081D04959FD045AF83330EE67DE3D388B7B20787A5768D1BDD982F5B7615986172387CBB65DC3D6EBB1F08F9E05EA69415383F51BDB25A21ED4F8DABCF3BA769630FE0A421DD644B1971F56709BA1BEC4F69BDF336977122129EA64310792F7A48BBB12CDDAE504A179E3094964A8835B360ECAEEB01A834C383A1E726290BB2031242952FEB5A4C3A02C9106A66905DD6BC931DC245DCC48995BC1BE9F0264148D13A92C16FADEA763BB62DC71454FDF1170DBD696C34C3AED4D20DA0983C7ACFBEC2A87E0C45C2A1CD2445564B400105CCF9964EAA5B64CEE57412B70C0EEE991DC9E868F1BE1C254DD006E814ED5412B5BC7EB5F60D3881A4D36D5DEE5216DB93F2258F42F96E21B58B547FF72F93DD3D5228C2C17771ED77FABCBBAC14D2775C098A1CD66028A0E448BD33DF3189B10D9D7520B0E3ACA333B5F8551A3554CF140D2EEFD6E30CC1E900B5A2906D11CB8CCB35FBCEB3776573E86B9DCCC6B8DAC94959BF1969804CBD7990F664B517995093886D4606BB0 + +seed: 06C016CB8566F5B81F8457F56175AE77DD05C35EB37B687EAE89147DD7ED008D +pub: CD136BA844EF8BD51AEE2DB3103524DBA4AA971E5521D273DBFD2D69F0EF2CC3AF64CA232E59C2E1F4EC56A8C2AA886F2D5266B72B1717E9F83EB353089EBD02636BE7E2629D9128819E0E3B47C28F05AB0F06805BCCA20FE0BF1CA4DD2DABA5B9012D0D828A9F752074C5C40BA640237BF00E137DAB33468B4073B7DFDB9BB3F512E092916F137C77FA23152B1C1C6C0E7204DB7B0D0263401BE8474A54F00B6E8BBC5E596ADDD254FAA848224FA50551433BC786D063368ACD6D412D94B34C5E6067651F0356A30CAECAC274FF0C1A87117F589C41E6C7D62822F0DF036DA4A646406CD44780C0CE6A6C960D7523241861A9AFB5434F3C6A36F8C317FA267D0F1A25C1E4E5B62318D19C7DF5F2AF5A269205B638119D3479C692C611DF51D2D4CA3E68306FA2C8564532AEAB82F5AD8EBB33668028AB8CD97E8859EFAC229199B507995B1F96B3AC5683D00F3B44729A9710084B1069663552F64BCBC1EFF043F53FB1A689C6EC82FF5A0FE1C91978C52140B048B4A656FD535143D9E970172B28AD4B2D41E28EF62618D7C6E7B9504DE18F3F845A3FF291EFFC26564B2FA62E8D73788004E47899925B63712F211E707048BA59A9FBDB2079BA8C0E35CCDCE7009BB57E425C734A9A2430B32647603293D6E769E6BEB0448AF3AD30B6309AFAC2AC80E1BB5285B233A87BEEE427A02D983AA02D6261E92C7771DD297CE29C1597481E4D8B2BEFE04915DCF2A2F2391424BA449BC7F741B2AA0E8653F92B8A03310EE8D79E060212DFBDDE4D17BAD0F78C84F21DDE401B94318748994771D60C0C572C51FCCF8BC6F45F5D5556A827E8AE043127D7F2C948B45CCB5D9BE71AA6B02AF82DC2702BCBA3C8B970B0C6BDE654CEBC291EED77E1691852555E3C01E8F6F28537F1F20A9A175FDF01C333806011955B4DAE11D9EC8DFA9277C77F03172754EED071BE138D240785580F653CA8A21CE95C10152D9F82C1F50FDE555496EF081CA858BF719AB9BD245847EC23B6CD76175F94D26A72BFD150EF152D7D5C975EADC946472F2DD7A8EA557F9A197CD420928593F1A971A95C99FAF383B2786C3453892573F936FD4E58344E3577B062DDE2F58413787759A861AF09E94AD4EA06B37F818893093C76290FF0C96183412F0ABD94217D830BC21827D0F6B18747A8A31812364A8FB9988CD10CAC3BBB2A649C4D5614ABC022143716BA5351ACD138B2A06957F5CE978FEB935933119E2FB0A8965D0EC3C14ADBC82D37904E4AFEEC034CEE4031A3BA4EB3B1FD6033B45B4C35A5D309AC256DD9DDA40963C69BE485653EA7EDEBB8CFA20B422AA14DF1D5D91194490D8905740C8165F911D6A311C5CCD3B6E07CF46F0A9C57DBF4DC4A5382AD40460CEAC5F6EA9CE7C79F8B7064239123A5563D2C33C1C122F5B221CCDACF9D577576213267D6AF351F601B7D4C22B7956F363A42910D90A99CC77D4C858918007FE70865A6256C0A2C82821883627F2FE31798EB532D24317AF4818BDE315B82AE5ACD3E9B468F2AFB40EABEE4E05891D4A09709A409B0DB9A5A80F30906D99E9B67AECCFC8862B3E499B7CF7B77A2E79734B93724FDB0C35983DDDEF4B7476BA43EF8CCDD6E1E09B538E777E71BCF9ECFB6D26ED0846D58D2552BF2525242839D8DB26F82D9C6404695E1AAAD195D3D0F4E6F9795CCA693554DA5EFA82B3C773A04A526D4086CD1AEBBE609D55DD4A0CD49C2D5DBE590EB66B9B061639C524F01CCEAFB110361AE8C9D819220337F38B6512C68DA333CC2325EBD47C0BBACC9BA651D7F60B6E7AF1B8A04D3F64F4FA011EC5A15493A08F823AB7878684D9D6C1B23CCFD136EEE2203F6E7585F97E36E4DBBE652B4184BF6E761475C0AFFFA4A92E0FB139BD8D736AEBC10448FCD535598188B2DDB4D4DBF6D2662F769A9F55412B50D5ABE76339FE3E162FDCF3501AD9182C250AB14AB6ED95666D757BAE8486FC0633193CE3D3A3EC9BC8F29259BA6E8AC0F699037A172CBD5034DF788C3B9114C9A605A1F19D63ABE13DB3F4255BD1C7205E9A352825FF340D794C70FE5A641BDB47573C5C884A575D768F6AC5049083387B348C77BA6D11F506CED5FB296D23899DC35E3C13EB984B1B8874C8A5C333720162E4EEC1A43C77535A885C43DB98BAF15F0F07BF2C74858E3BED6EBEB210EEAFBCB2D771F8815B567DB720ECB17A1C675C1B014C365197D4ED8AD420D10F103D5069C83D0D2E39852AC777E0EDF6681EF4A048B3AD6F4B6134B7150E8B29D1B1B0FB69112E99185E513A7A05E470A5384956E6196B2D8B1018F7C2F876ACDC83763C390DC4A057073EBB972B89FFEF171459652B00DB20F0058FD0CCB8161FB0EDBC881B84ADBA66EC0FC5826A4128F45BB1ED48B5F6D7CC8D8418C43B444F60E7C9D8C2C1F04A3D86516AFFA6E418A4660ACB13390B44E7B17B7C63DAF2460F4C00E9EFCC531F2C1FD31E63336BCE51B89BD1E6B867ABEA8EDDB837D23B3B16FCCA05CDD2924E2A35802F55BD8AFBC8B96C50E55FAC219FBA35DD618F31C81ACFEDA2EEC25350898046106815713BAB9210D2A05A1B478170AFE4B3778E051375D021831371B16402F9BF9E137D55E4FEA29AA18C3AF0760F6C9C647D472EEA663B41FDF52F3832C8CE454E451B6E4DA179DD5DE087ADCE8DE05F2A5D5961ECCD6E362F76329A27AE77210D2330EC2AF69E5898805C8402CC41F2EDD9A2DF411FB8FC7EF0C7B590A1D751223C6D770B8E180635C3A7EE8 +priv: CD136BA844EF8BD51AEE2DB3103524DBA4AA971E5521D273DBFD2D69F0EF2CC396F5787D5293F0AA21C1EF4982D6D92B03578807EE3B173529E67CDBC4592C01FE4C422355C1791E28132FFE128EE7400A82DDE9DC6C4A9A4446552457FC67014618934EC838799C91EC12872C9A7B41B56AE1B4F2D84E0A1C45E63613CF23B8143058026560631877225541240870755028612211601113257620730333171113133326014734054530822257254625481781338656606531637062386428216843125583177381435215743200728750178828264283858572338340174666155423803410245053881552033512106268217163576701115100151420758458254007203647278565678136022872018662578473315183258324430858168453864072542224242317055776525374818573571728183430228822052531150150563757546718458310706857665406856725636865568642212311532331480501803576035710033308324482566338724804414110081242517212343043345322274804530744840017770682328836674404578040172026160252354482574075878623707433412042010420315324686631430437621117246135145667012805637822015676733372011026256612787756404678851224687705061484330880505326284055581054124668286658020382004078761776361161527740048635207170416215413243527764483287008340567823406070005843544321560087377528537112747351413323761711545608265808303065815242428578631040654613162778428574137416806766647656885762514121044168162303486044752838523570078420858537671500835356333734424688301521706686448255386087425664222682810214243348461332478264228721251287155070578654184140476811887216103058536107683826460515064853244078875520430770825153374152041800752886860880705277852311445620558643661375387135831547560175412405304476660057527456133616354524282235243658540065376850627062681617338104541451788220635858838672766573864142370366455786746353087604586187606056712725063187712712448173850448611574436042456606878057101783345634527487132824126777640311332086444211084406665723663416404615362244124732217810466715618067505057624817681836341825188410360207772465666127650130242187521306645231253000028638486005737424660746138014572216528038511631376771854823406270830132667674806184712737536564845562848003181411682763004664515632264310472672641657307765353303431853146262328068560152456358001505514157483485470687546573587047517328521130710682881183360163073041784613833175275612544847536060656800117884142016825672787262425284372054865151236484576661230323038363486585601502573856284167732206132578258425346636431584100337878378274840833177664013564252244411184708104348334304276470112213147701405086214104113215886548778307185000683785205742088186133061432162674560501614305005453476872274532448663370472187828212621133266066680423603181222832354734806782474407505641561545776848377668885033003456617755578432240766407055388340333658406402462202510811201771475150833626185035600871018847510308042575856566110553231327801543061080331388054232227503550601672838252561463072541831582337012688050512015154818313653303778611543867346215811512217107581100031233816616052755553316276881007300046414722210544405685155425152663633145137786125875381612221375311321043307001662685838057425460185646272147556360106708043553528546214161058211015442016678886740618868527873410028761B9B238BADA333C6E82897B4A54AB928D97C4A87932DAEB797FA5D677E173B5BDDB92434B1676FF7B965AB309CA58ACCBF0A6CFAA4B0C0C917677C9414FA1E9230BE5F75CF5C63129C70C2046214904DA3C43B4DFDEC7562261C2856D1F86724673F89D790BB11B55623F5426106D2D5625CEA933459A75DC1A8DAA87D6000330112EEB17537734ADB71B349190A2A70FACB2F42CEDA5681691B6CA9DBA1B48A4AA72C1C7235BECF0170B8CBEA2833B25C064F320D8912FD8B5B30E4ADF2CB9AB32BD6D2A63DF5118B12C37460FF7E8F9D9830C51E36C7E725B1A8E1F52A94985BF1E5BE49DF468D46249F5C9B664A1BE2CA6444F8873A76813078E4DB1F05DFF8A8A66759F94FC117EA2B6415ADE0982B73C9BB8EC1116DAB7670F46518CBB729CC8EDFDF8DDE4E7DCC960F15E4B417F655A5FE1B69A1AF0DAE73EFF122A5E52907932CBA3930322622B00E35766E0D5C55F1B7995F5729C857EB80F2F109C3393F7251D45AF89D038A0F303A4C273A4FC38CAD50D3BADF909C4B8748C760D6688FCBDDEA1A1836FC133EE714874628E4611959291DCD686FB40693D398214B2C5CE4A0C88A2D9E6C1521F4FE425ADC889B8E237E90DB6D4DE8899CFB85EF1B61A31EE0C68F6D59E1CBC52EA02B4FB66C05FAE0B4E78A492B883A15806EC911F58ED3FE072E779DF0251771FCA6354B4972B21F5BEA540875EE1A72D2D8A3A9A1707D6B0F562CE6D045C9D925F88A709BE8C1933AE1EC9603F497A5013B4BA550C024C1DB116783FF1053A6BECA7393E4313F407316571C113004572F4A39346F2A67279218DFBF61BC7C7BD1052A3E38014F926496E5CC895C6412CBAA59771A01B5480027FE3431C6A09BD2DB91F62C35B19F0A92451167516E041F49DB672D99D71E1EC63B59A0BD8414EAFF6C351C4F7FC9B73DFB508C1A3C198F9DBE0155F57E89CA8546845BFD8D4BA6953BD5AC46C7C652911583D2ACD204B24B2A9850D6944A5B89A4FECAEF23387BB845E5ED9630F72E3A54B2DB5E6FB991AA77A4C2714AD041F6B88E5E013651488ACB4F74E327FCC55CA05491E8919701D597D1510C5B47460B9163B736713DF60DB65EFEF3E022C326ABA7D3A48ABF958F630F15EC8ED234BC829D7BB4F1E7F4FF512627713205B6451804E3167FE01B99BA0BADFB77C203046C750216852A4E7EAF44F97E24A5DC16245E738B5BC153B39F040488EDB47609FA698AE5F8F86BAA6B051BE56063C9EC478ACB41FB247A7349B9E8B1AA1B1E8F3351D2849AB1080E75BEB8C68E4CDA3F482C6F8FAB0AB67A916DFD2A98F5F22473D55FE31508A73A14A1035161714FB6D813EF94E25D1AC9F8FBFA3641C45F5AA2083AF05E31A458F8ADBA3A23E9C260D9EB3DD99FF4E6A5AC63A529D0F09BF70C9FC9E4092510655AAC4F6C07BDDB7B6BB4113E66F843C0826BCEADE05C0F06CF3E93959B9F0256E3EC12CD2B5D45527F1A99C2D51AEB9FF19E9B0C4B33EBC7F689127C5074A39D5CF78E7F5433279DC235749EB8A1242CF4534643137796DEE5B74647087282241FD91F01613606517F852ACB9B6E7FFD2B64DB930F7459A47A4FB74EF9280768E7C427129BC6C488459C023B06CCC997FCAB04BFC0A012BBA03FCF13A38C225366B948C8874E5E958AC64E68DF8EF055D071AE59ADF52ED94E2F83EEB207D9630FE28FEE8E78B41B1B46A1673E6EEE92FFD61C9ABF92C5507B183DCC30A239D3998D7BC2ED70E6A2024D18D26191F47EBFFD7B5535A871A9071481725EDA4312C59207B90188146F6F22D0C25DED8F0FBEEC69C2F7438891451C366F1014F4410EA91491B77569EEBB61C9BB500150F42C3586B37C39836D7CAA54CE6CADD9880EDEF79EAAB352131AB1A9A9E61732F74B20B5B438411EC812EBCF717A07CBE0FCC2C5D70BB46A741E0DD7E2B97297310AD0281CFD683565B40D7DB04C47D34ECEF6FF88965B4D858564533E3A6E6744E84BA84B250880FEB8E88E748ADB8B545AA0255FFC70574CE9ACACE6FA948D4307EEA22F4B21711DA0276A64365F00F23A15827D16DD172B33CD1500D59F6A093E787FB38ED23E3AD1F2CC5D2FA18043FBDEE30108D1E9D2BCF53488BCBE02E7979DB238B079E88D90175E922127A7C6CD6B72B87AF752522CE2C0D6E766416CFB97930AAAD9FCE7F6BE37B3BBD1E6D4F6759265974B5AB9F6BCC1BAFE0F3D9810067E2F1ABBDDF421A21A22CDA9AC3123BC479FF33DABFDD5C6F49E139FB05B0B7A5DD024B2725996FB0AF19DB7FB1462B7C551CC2A7DEBE3CFEB95170381A407849D0E0CC9E11089EC05E2E898EB2456044BEF899F24629B311363521208B1EBA36F8A619DE49FC20AC474FACB7AB2318491F72E26C7FB9E0C387DA35DD7869D82134A9C61919C16790ED81F07FDE26C56E5ADC9E0803B260CD0B85391293DEBDA809F61B781C79C252E03EA43026521BC435E47842D24B711CB5F75C6E12E2B10BE53E09EBDB5759291F4887350FF986A16862DEBD9F262C8FBE71E2F106781F8DC94BD7E3F89DE77893B3853146F1FC5265870F713557CE2E514B92AB652BAE9E758F4ADCB8399EF0BACD87231BE1A84FFD58F4B6CCA555EFCE7F70C6E18D1CE8380EEC6DC8D34A41383B97A7B2694E8FBB09AE1EA9976CB1423418A9C13603AA67D167C7DE85481CE58EF553D9C3781A795B6022C1C00B119256547091F4B5A334016DDEA662540AB95882C608BF370513E1D041463AFBA71AA2086EA700061474FDEB1229A50E89BC1294CAA0F892E93C2257925AF7F18F9D28EA8D8419AD1121A6D8097E048C82FBD885EC3EB14E90DC59FB365C30C12C427CC9205E56CC1FE60CB6758E351440F4EDEEFCC35BDF6BCEDF4A4E2C1C68A70ED0FFEAF5A03D4DB22DEDCEE8DA1F7B6B37046EC3279DC9573E128F51BFE42285D8E64CE98836D6C80F470C64048CBDE71C10DA83556803DA4671323739FC4BA80278F2959D1C43E59105C3A398B8DC626FD58377373CEBB033FE1211F05583EE5F4AE3283780C682056BC77C7855AC186C1703B8F5CA6BD50735C1C5369EC4E180BD5430A5E33108E1547914D3C0B7EDB6AD734EB3022355F9327A23BFD535124AEDD1CC9A36BA514E91785B36695795462F5C4BA58660313B1023B075812239A12320787C5C6721304651BA9F269F1E5656A875C8EEA9E782EB912D52EB43F622A6D770F3201CDF2A5C20CE6A1D1945C5A93CC6C65A2A7627E42622B7954625D0CF8EC441C16B04DF7602F52CAD75BEE96403BBBAEA1B102A60D4AA3FCF4D5F8208A30E821EA585A130EA928E74BFCDC435BDE8AE646841BFA7A535FEA5FE89510B96B33C7A3002C442E311A45A1147F705E1E73962DA730CACF5C94A10286EFBD3A7CAB12AC574ACEBB4DF64253F387FBE4036F9330DC3670AF3D5C5E5D39E9D527859CA6CB8CC47833BAC8A07F80CAF9DB40D927CF6B2F88D4F8FE74E0DC4200854045B4E7BEAA849D23A7FAC82CC7DE0FDDABF825B720777A4FC2B4FD7BD65549F156A8AE + +seed: AF5A2ECF442AF8C0371F89C499ABC337021992F221C1D3A66B551DEC917F1B1A +pub: CD40501C8F6E1240FFF9B675CBF9F802F93CA9016083A7702216C49F56FA13802B4AAFE16A2BC444D2F77A328CF9839DA78E4138842050AF64AD2D071B941A5C525C66A5CB33C4061626386EB5BD8586A4A7D3598BCFA9367D58BF650006F07754F6820D7B43B312E6A4B7A3C19E870D34D80372F54BC43EB93BF58AB87ADE1ADDB21F3DBB7CE2C3A6A39A89D3E1EA741A6C74D8ACE6BF37E97578DA064195161D174602AE8EAB65C8DE1D33896F3FA4A3181A5D6E75B5B718D3D8E36F39C54361FDE078E2286759A322BA97AFD217B72517B3F1397CE10960726700173783865AC596B47B6B8BBDB8D6B64D4CF8CB7ACD5C58DA9AD194D15E849D96CC51268C288EAA6133B8567607215778012FE046BAFCD663D2FDB47101C02326A475C2DC8DFBAB87790A11CE0B672F41E102980E7039E07B52267DC7B7F46AA07CDB42B65BF9E7580C16C05E50AD305CB0E4D68EBD4B92980EBC978E67CC115422391489E1C067BDF627F78F512C77DA348BF38BCFB89CA9053317D3C7B3CD1FBFC2793A367D367EF412454863B00C6782EB813A59B0E46F4D653F2711E225807D59D5398A12D57653193B951B25AED9811A983734C5521F068C1DBE1E008088A81C88A7FDE81D8A44A219C987CECF76E1A1849443E17F07C2B56A6CDC36FF4D9F30F4AEA525853532710E21EC5DC16C24D1276C11B36C328A5D4AF570D6C9DC7820258A71E1D5EE4B0548B49AEC9C21CCB5C2FADC7C9BAD23D8DC8B746FFB82CD78E327BEA707968C82FFF2DB878AC9810015A9D88493DD6FEE55A5FB18A35B595D7A4833EDC7114ED47DD87D5CD236533B60D732CF6A24D27ED0B68DC9136B276CEB4FC918A87C1B410CEF13D062763C54735C267694D07E6BA17D66F88CA7A3B082492BA8F4AFFAA66945F7B5AB62BC5777C443DB0E7F84F2E6756087A5634EA81DB361A78409386F569F898FD257C9307C9FCABC5BA0E391A012DA3E65101492A7FA9D5CADA36F0D613C1CA3C1BB57E9F6165C06934EC1859D13A1C3888178087106C6F4F1FC46A10FD4A9F1E5D83165C97B7D1D71A9E09B1D8101058739499342FA5291112409B93953B989FA7E68B733AACF0927EFD4302572052CF508D3FD9AA1EFFE53B4D57B22CA8E9ED9F0C06102F47BA853AD5E4E01501B6E77E31F2010F7813F339F01BD0F43C3F300B15D36AD32CFD7AFE8C786185AC8773E0F30A8CEA310D24B7CD068872FAB88120A24448637182F477AE10473BD3653FE453002CBAE148AF0C6C4DD1034AD15843AD2A83795090B1C738DF100BA32199D0CC01D3FF7844C524973B652156257BEDC07A533C0F1083827B24C3D77DF19F07249C8523F7DD350E75EF3509B99B77ADFF5CDDBBA4FDFF0BC89A3F2AD2C2EE8137B0EF847B4B879EDD39E299CC205E5E79995D80DC8D67EFB93AE3D6318C2FF67F8C31EB39818ABD6B3FA0F2C6D6646E9795D5727458EA5918FFA9A62E7528028403EE1F34213588411E691672DC1989EE929F69FFC1A87EB72219577E24D3F31E8013CACF03F8600490C84CF2348E10D4B1DA72573A9F4AD9156B3FFAF41B104FED8204E64A51353F47904B42DBC4311520E3951A45E2C1373F206D558E0AA127C400CDED08D087734E52FAD8366D786622A62A617A3A6CE792618837C635F60C45608110F191912D3584FF51D84C35340B9B5B3B9C94D6234E17E7B3A0FC76B48B34DB6409B0353B4245E21A15253D03EE89FC1C25DA0AB260ECF9994FA14EE59EE88048C12CEAF3E28D1E0208BC09F4E173FDCF0CB4D985913D093B6A37A3B1AF4989948B979446E89D24B121F4EE30A3BD9611D698B1B4B9F652724BC80B2AAB623727574485377C20E9621F3F5BEABA3943B61D4938238509A327EC910C4C91DDBF0B4A648B1F621DEA766217BD65AD8A628A39F28071B741CB1276620A2C55D975B1C2C56F6E81BB57B284AD1D6985A204478FF3A4E849F5B0FEE7B428C058D1D393C90F436D772FC7B8F9B9DCF2052E275F917E888FCB7E2916D48FC51E93AF143CCF0BE2ABBC05BF10577D769AC2706177D5919F5AF6DE12E99B3D9F09952230B036E3BEF89B20B235B9E250A02D4CDB9D14551ECDD5C5B0669EE409EE6654A9223F24C8A1FC4BE88C993F8BF25D783C79087BC66C00EC0664F33051B18BC2873B997B15A38A2C7E8B904C00170B5E9874DA8F50B76490D0F1649134107BD2ACD3717B5D5474B49BDE361DED36EB52A0132BCF5EDAFC82AD33618B77F3A382BC32624D39A6732522E4CCC05BFEC4B8A0AF5AC143C3A403BD5F14BFA86A71A85EDF5EEFFBD081C99C221355D5A1657A45370C5815ED7799BE3308A774746878309180DA20792943ACD1D30137DB52DC46E39563E1370C4EB09577FF3D58D1DB81DE0C7241DD1AB6254362FDE4850719D5B57B237882CAEFDA260CE190536AEED81503F2D7713D62C8E6DCC668EF5E8EF6DA38BD71C2E0E2B93D66E1406A8930D36376832A1621B1BA35A7CD1F572AE2A795FAB0787ABC98EA6BD6089D9F02EC071205B603F988BCA2E327D70259F08C6D57DB635B740BDEE9DB47658426ACA91A2A40EC65FE7171B1D8053F05883EC08C8484E599B2EF851C330471F78C0A8819154BE4770401B7A309ACEC2C412F3DAB3C89EAE5DB44B9D4AFF661D47AAEF05E63DDC8C4AD2BCD6A7F32C6685D69D97D28DB01EDA78B988B974D275CA566ED69ADDF84F34E5A7CD4E57A95E19E73ACBDCE88C33242A932F2945F2096ED0688D31 +priv: CD40501C8F6E1240FFF9B675CBF9F802F93CA9016083A7702216C49F56FA138013C48B3CEC2477128AA4F1138D64C065E4AE6F90825B8883A318E3C0E57D79608872D8B10C822DAA41CFF163BD1BDBF8F00E9422BAB08E519A346A00559FE33C1937B0006E751D8E89206D6BC60CF86C989CEDC6A650A9D8CDD7A885A5D5959750448826460188004101125111186074620576284254126602486514650254327504054426658404637850147516850678005764401755744635128034716451535421171000447534622142286762007017285656210134675821180311780513280388413616213558436053280311820410525136513060540160781021887535516157262345448444784701867043127643363865707424667300015652134858161472800247384008538765723005036486454028675180110070100585227018422187630788540325626225188813123884672141516606825703365081484622675274186476437010486026151361553084613341471802783747425386776481227074016862284216366468674776440845680570115565427708841053204705545428355530152603721866522350763826432546480520011000217246455705043270634768453003815312660206530127032003278361545060180436455308127725487262482742654007210440273753502818225888755041314584755808333558051776484568406766162183053205233717482617042441680463342553134108652603646478047082474478071810434283471763142724425102083470712525401031116854048436637142716444771867644085821750556353854203622388308758477100636263240477537720385175337344211355475034614513544055425640506651668811324364614815740531827808364780478544043850587041437810503082400163542252323515405157863646838612144458502587220415731546766633753238104428464045120204231781335071761541014428403711427277077374826708330641275013578628428874500743644104623670603744818368054481625408140001614207775166058635432827321472400672317435015252346535680281888151477005612260638815080663703827487130616081186003343810854681567106141615804734621383114175553858354054073406806336125653830065280187374320341007765836446711861021424842660758755784704122132480132102238862510143518701447661211335031546207621450714706100313847443215510114355878185523877811720703570726544284774414545134241257007847220580113313158613736252646822524660278672558356438724635513883380417860673588850524465417657131258443717224832306011153434405086734832734238855846814657087130365072151474425107710001447436647300443625157617824024324281003277361345864124855547568664642638575406011371083735120870107051813268152180133151542028272641804564120630702784343172240455064040414206576102854172281178857284212558163858228783344551685467747877225614622512371447002823523287806683488140720812213887102060221860281611143315388888484862187875060500504384547208612234821708336400356848478172006063423822373324570772060541305847652773286164648028265165301157086073527525123782386608802465083320180637434353766062137470236812473248565115246843013483416800782261353501433487770254236463403451508568564101825531344410267156466015063128101007831428421211188415154723111285433565758007356644774022346717041065367152658860424264228021125381712078461548403462250318848437146704741046774408631383441511034835475844544150855632038827538235253151753601010467407471214815105021732547307206305612530887784636307521185FEF35B7E37D1212C06AD85C4AB401622C11D1DCB7BA0A9F7552B03D3F263D4A66A0986F2EEC297734A9D60561FB3C8129C37A3BA600C75F4365911F47D8DE507165F9C6C79DB19992779F091115BE1569F4237446174C11B193532C716BFD2AB84BAE3852ACEC911DDD3C0895040BFD0587F898B70E09E71E1C8CF9BBE4580F17AB55CCEF554ED6745F46455862B00EAC4F3CA7EB66FBCAE117D94003C1DF2A43CB4BD00A4CBBFD252B0B6956A61893F022F0709000ABF488D366A1FF501C32E1F3EB787728672ACE02A5F6D2A40D734592A8BBCF5EC8111DB6DF677A6D0E01006EB862FF074377799C7560E983FEB4C382F89DEDAF21D5B2A39EAFABDEA4C3693B63D0D1B121886E5C3EDBC109FC0D412A548567CF467EF10830098EFD8A010038236B05DEB89D1D36664FDA3476C5EB93D71BE938250D307E5D9B42DD6EF72188A2FE5B408518DCE4A36EC95C4C1E23E73827DBF9AEFCB93C8B5DF3D281EEB9BBFEC3B29C29AF773433F3DD11ECD5CC94C0E9B58F96315BB12DC9C7F43FD1A148F1F95BF7F10ECDCA26EC30515249869E2C73B976499E14628090203FCDEEBF7ED6B91F6BC99A8B346421E991BC5B2E938D73D04B93413B870DFD517E6DA6EB8A94EAC931B83A68BB40482AD982ABD87DDF0F32EEE6699FBF7679205006B6D103432C9AC032FB18AC75A1AED57F37E28F3188D143340666677A1F9F6F5F7FFBF777D593BBBE243999F24172D2F74305F082DE10517528C0DE33F4DF1D4CE360EBBDC1FE3EFBAAC2E2E573D2AAE42F0535DF07B6A2808A5960A911D6F04B87B15731BF08A394DF18A7E2A9F9738305DAC46C5C0B8054F8B06E9C4F846A0E49B8D194DDACFE9478D0D08074B7C27E5FB13E9A8B6A7AC3C85717E39870825AAA1853DE322A904455A9C42DA9D8D6C0254C943E5978899C6CD910E7FFA2F666DF2864CF0CF668AE1CA8B062ABE1DA95132721921ABE689DA865DD04EBC092BF2AA2FFF57DA38DDE2FD9DF29E48D2049C61D7E506D9E5B0026900B80A9559FC6745A794F5264794EAA738A56829350EA9ADE450C2786CC6D51D74A8F8C8FA724B4458CBD35C71D02FF49E09997D6CF57E3E0B3EA3EDBAD9AA594D69355A501B09873B433997FB9FB03EDF9ACEF14486C491D4543B6D22C20F5B82DCB757AA7CE5A58B6644F45DB334622FAE70D4BB957CF1365BF1DF8457AC1A6116D50179B9F4DE05367B0313463982AA2177F9E66986EC007A6EFBBCBF6A7DBBDA21536246EE27A125C40F42399A56935AB1D52CD64B66D79DBF26AF291EEE29FB7D2FE6B07DFC2768B62756671AFF32BF43AC85A36E62BDE7F8364FFAC0BB74E43B4620C18E308C6694EE8F6656ECF25157BE214C498DD7EEC3CE6C8CDEC15F90DA71BFDAF7E35FF79C10CF28BD2B4E6CC5B006D8892BB49F3A1AF40ED845AF81F7EE9D26D6199DD628F0A1A0965760FE30E6C3B00C3ADD14C6484664D640933ABEEDF8AFD38E4BAC598353ED16CF66ABE9A27156A16743036D0FDADA91563013CB4577F691075FD5827796531D3C3B4219E904C08418F3B05D699550F9B6A42A2274A07D3BB00A1C127869BA20DA27B494904737EA8D06C75C26C74E745680BBF20713CF7DF7F800CB9393A6EA984AB452D8472AA18FB9B77E1EA98E2B949E78E7DD5B136DB996FE57493669A063275131A7C1207E7110E4620569C51B5DA00E6ABFC839F3A301B65F6EE92EA148F631FECCDABB60E6C64A3D1A03AD1FF48F540D0212E6F49C283E19B805040FF74EF6982FAE0FB8BC3B4BC123405EC37DF7A76A7F90522017702DC629A4D4CDC38EEC96B786B7E1C7A8BD559D28CA2782618F771A02D6AE77C64B0340F1205F2AD0AB202AEF7BA2908DEF8FBE78848AAF2A7FF551FA952D0BC58581A9C95C7A2BFAB8DA745DE41A694425BEB6DF3652DEB5325D0A42E5F2795BAEEF5B76261A1DD5C836843B50BFF75F53CBE0094AF351990E3B3AEC21A7EB5341EB652EF5EA8D8E6DB9EA862E1807531ECD0C0BE38A51282B8FC579D8FCBAC82E49691FAD4B45364F280D7BAD3902E745A16A94929870DE881207DBF076691A7AE81A66BA6CED9FB349A466935BB34028EF6C30A03C0E68AB4C39C129FFA85379152013245388984808C56185C779510ED716006F4B014778A5706D4B8D02496EF7C47D3CAF14C980BDD48BE3D37AFE25BE1B6D18E131D88FC1043AECB1CAC973707F61CA8610A107793C796F87F40F67AD15A6B2E84CE6C8E6C58EA2113FFBA3EE77D357322AEEEA80BE8E6B2FD7F52C8689AAEBEC7203C56F6DDDE1B2E29AA4CC6034A9F2DD07DA138B21285F075FE2FFC8329F5E8BE9D82F4762CBB746CC7F327FD21720B74FD3DAC57B8786299F49C6C602C7956ADF6BF661594CC5E90F4DA73AD1305FB1B554DD4DA00AED39BF0EE6FFADB87F427095E10EBB336B7036FA99FFC21CDA513AC77DB20998DCC3156AB73991A158E9136A688B70C85048F09EC38B6691FC708B53B9B6E520AC55A48F7D50F3C863EEEE841D984C75444105937FFD6B3ADB67B48E7342323856C636DE826209FA66411AC5605EC7F7F255FBF88B236AB77B2763F25155265411C74271B5B8A5B835A019CFF0BC55233EF268AAB76B4E9859538E90E818E6F660CDC4AE93906DA2A5E80DF4B1D5E0FF92243BE91418D5E3FDCE6B50D2727948D2559994C2C40A5FC27CDDC97D1EA18194DD3974325E8650DE63DB2977B824D7354F5C90E91A2950E69F4F628535D2C7BC994FA6F175B31B7EDB3CAE4D259BF6477EECEEAD8178D6C67D44D6C4DE1EC3E5C09AE82B40C65E181F0A70F10199322A7CB53FF2BADF4FD53733E5760B2770AC53EC62E25A9B82C3B14DA51F746D6AE4CF7713AE33ADD9ADC97DDE11552AE2D9A75455F97CEEF197DAF5F83DAD6B96E22773E4B0A1EE2C4916E9C07C0931DDBDBB251F3135C979AC8B81BC76AA46BF932EBBEAE2303E35E723B7C90C48B61811B210001564D4B9A58D18C46E58B33D70251699500854BDA27C1F58DF5FF692B138C1E8A42504D83369BEEF19CF466DC78A9FB69FDD283BED6E70E89693A083E577F628C099AE38065D38FC2FA9CE5AF0289AD653A3C4658CD7A65784F9935CA396451990CC56064933D7A52A5A047BF87C551A842F5BFC0D29F21DA27C40771B86C310B7345B5A9E29F99960E795500947958ABC2A22A166AFCF6F60A4564E5B00E3955318AF13E10F79268992D58A73C3C17D739B2B1F3ABEEB1EDC560C2E25C846C31BB644D4E3F24A07E7FB23506DB4D8FBDBFCFF61FEB010A02C004F33B39D99EB602035B190950E5F0AFF31DB5B603B1D578E054AF0CDC324E2D4AC1753EE363AC120BB50B70FCA0E7A9A30569A701C7723CEE90B3E25299D35EC97EE34A8794D730BA79F249D7366BEA5B6AFEC2B3071343198B3077A3290957F89DA865C1013D80A3B1CE9A09B282F989218DF94F15F675A65DAB79840EFE887AC9A15CC16F1C075E6C7941812A77CC8938BC46FD8621DCF20310FEE350EBF4C07DFE758 + +seed: D85D7C2928288CD0B90D7269619F8D8B4EB3541F7E084CDE0E39CEFFECE9AF80 +pub: C105520234769BC75FD0F4ACD281DCB4B43E2406041E50BABC04ECA333DA1B18AF77A88253C8892F6EBFECE56F0433C3E0D5500CB944BDCF554EEFFFCDF172CE264916F22B21D87FF3ECB966F0BA2D34A36C726537ABFBE2EAF279D740B4AFC1D4AF798EE5212C7B6AD63E0B14A10AD15C405F2C159CD98FB38DF453448473CB86634080F983B1309134427B95C48CE4D80933A4E8C20969AE50D31B087C3AF9E2E5F189B5E92221C7A699B2874BA12319FD27F1A96BFCB603752C24B89E02EA863C80E5D5B906F5AD17F8812FC928BFB27C168D87348287C6112BF1C48569C719C20586BD825FC4C8CC214C8B8ACEBE8C305255B078035919D22683A3CFCA6CC1B02EA3327DA2483791EBCAC9F1884CA45F16FC2086169856819AC7F73EE4BF3D1FB334AB587942021FACE990AC71EC9C938AD8F9DA7873BB98C195FA477E6D66815264068B2267800E7036E955DFCA260102D9DD90849A603F2504CC142E3C0FE2744BBF908674370FEF10374554D090C039E78558F178412F65C59336E8D5351AD74D4BEB2E82C1423AB672B58E9D27B3DB4A39CA733BC6F556AD171B5302A9D93A194296AE78F4B3591D85CCFA3E75BDC7D59A080CC9C42004C3DFAA70492F2019213B72837234783A11F1CB88D6A0E35C1CE3D4B8AAD793FB0E16F10B32DB641DF8452583C8059270FAA562A0A94D250304FA03F6C445EC45F6F5EE7E1CA89881108503FE71182466833FD09E6229AC09CF285E86D2F755DDD58E6E0B4250898ABDE89C802B7F1D8960D74FB9912D156B81A4E9C9D3DC052DCA9045E0B666A85AD6F334E4EE090014C3B2D23E902757DBF78FC382AEDC9F2EA122A582CA90907C1BB3987AC70E353FD45A3F819931E53FA1ABB705F2D143065CE7BE38AB8144DFE1248B9B69C2367D377BE5588DACBE8B572540A0E6585EFC801E4B03786AAD9592064459DFCCC3583132DB9A8A500A87684981B121B6635D5DF056539DFB063BAF1B3486A4CF80AF43E828B8C1A1B41C9822475048C91281D206E056BDC06B1B8865ED92FA5286F6BBC00014A4F3F28A2C47A609AA667174BD0EC308876F0043193F68E3067279AE809CAE4DF6029CE44F836AD611B27DC35DA4295F1126903E681F5A97239F08A2594768A91D01374C403243283EA763F4D23C530CC383A6E532D70F9B02C64847394C44285C20591DDC84EA24581DA5D98FB248BFAE3E66E20233893F89D50320E74473A1045E0C2A540F0797456C6C121B3D2F5BB94809C0FEBE8FFAB8D9FEC020ED5979685B9191BF509592F1C1D98D3EAAFB0FC551AEBCD53DAAEF10B997A46C593C0BCB3605F58B8847AA9DCA8A04F3CD980825F8B61055253C4DE89D225F7907D9D0D3E9D5BA1E3AB13C3E3AD89BA579B28F7D11FF0C757DBB8C1653C1C28F39649CB19AD2CAD524FFBC21FBBE58A4CFC367BCA0863175567BFA73A681948C462AA0D7146307988E3903C9971A81BEABBEF66AD382B69EA297B80422B480F0872CC00BAB0FACCBA788941D4374FDFDD56419B6031A1DB23A5A4A7BB0B363366AC5DF5A75A72BD9DD57069074E3AADE3D154ADD4743225564BABE2E68B1E0028392E23A3A4B8E1ADEBF4661F64191DC9F46DA8FCD5B769C06B8349C1C25090A29EA254D9CB9537662D339108D5B8C7D5D2B81524ABDCA3B2C5F18EB38F2751062CB30FAD5886D287E968CE885AC1631380DB84A304C5ABD351F78261E2A4F42A9A175B87752485C984936831A7B8012746FBDDCFBFA2BDC0DB4FCD0B79F7E652E5D402AA7B640EEAF8D607AB02021DBD0920EE6188ACE856EB0298F6C2DDEFC46B4D5A38D4B8AB9EF29065499A0A83D5F319C634E281F54C7519235AEF1DB1963D436E0173CA7A7FAE1B54303067D95D33EA9A25A94A490C55634CF4628061A864FA25E6E22E2E6FD7D733B0D1996C4E47190BBAF6E4578A81B7A1704CFA07951F61D8023AB3F1C5E173785F974D53ACF35B3C66A99634D2DC3A8C404247A51134D41A2161C4A3D0E4251B0579A9FDF7B3A7FED59637BD9F8A68AC98BD5B1009BAF290EF5117D6FAF7C8DD87BFC21FA226A9B0126F35BE6694D507695FDDBC48528C104DFB00662DE32E79E0C132FF9C08FB5EE336C98A93F7115171B6C2B3269E3AF5690241A66645E96799ABB45BA96CA3F558E293681A28066504F3B70943C99A465925906FA7CF3B820988DB0356AEEC8C9132BA78D212A33576524812CE85DCA2817B3364D68670EE07329980CDA3E39D88A8ED2199D55F5558CF7B817739E618D9405BE4B8427A3793D8DDF359F19A9FF09B2E2BEC22CA7DB34F2B22D88DF8CC728F5DFD167294CD22B144788C97CCB5D93361E6B74B072191BDFF77A6FA78F3220A47924A3D04948FFEB146838006F58239496E4EAF29C66ADFCE9724090FACBDE3951C053F42F34F764EC61A1D3A8A113CE2D5209A071BEA934101A571797F5C1C0194B9C1FC3B6599AC9C4790D83F55BC1875347F3607BAFAFC4DF2701DC07B68030A693BE88DF3C0372707318402801BB20CE414795D7F250053D0AC39C75FB68EF64EB419FF859D89A3C86C879CFECE9BAE38941F2307C920F1AE48C3DF72487AAE2BC63FBC20F165DD1C22091392D43EABAE0A6C4FDB3824E48548310526AD7A74E4EE6D73BEEBF13EDB38A59D7232E14A3778DF9DE871596C32F0546A16FBA37C16295B69EE997641791C7F3D5777F09AF55EA3F65314D27785810371470FA5617CF2AE06818318A0277474984 +priv: C105520234769BC75FD0F4ACD281DCB4B43E2406041E50BABC04ECA333DA1B18EF9BC3E4CA859E29C9AE87D9F6ABCAA84A84B20DE0894F37538E4133F557BE79C5075909BBDE7F5D579760FC0E58AB046E437DE6407CFED9CE5DD4D5E29AB04DAA70EB9EBB4D9F8AF32E0F7827F8D21BF738584C05D72BF4849F86A939718E8758445758814405066377236336162422838141762541276638856732360636423606651537874070450512230825442745831855684586351301333083575603024146601761737864228634768611208800655885828450737877205363001110217403351766632673281486707612045613182023667776367266083085712334830625737734852167672546845358411430645183583205065515383430563752021515024067500252010305132523852061423631568837802262668835487215855713274656266553465801348565243281764238745587354847434233833785336228853521530475450885388486887835421722800658106572655224626170632788231534531055663633012723460285353506035756252730815271414513036013604238484541566535734773380388840006280582113173886805271424366177715072681663764401431567346132851240273782202733172167802164088384310178216148840587511022757608251252064470305511284744230376254058476377274278086212488134263172827505611528825772601057638282760062084248067366371506358270582646651731160837361726605566053122200085235782558202084671262280830376814326676177807216075382173587246317674115285874745625236467814027788077336464042438520155042207346565724471747218387263118251375556767004053380182005875423780068363181661642242542646383023783342543587832154174778867365514222838388050642140134550860437148533084783344668707368431437015074670186306765104170870588047846213541524414736145150241215537864250374007845472700883417116237873657100750277242403235832704882353311545437405684075044150771571660005121055388384687305874147352600277663431646864700661301872840663534130204184605151861678802848543043027112104621511332255801120370470314425616558471472110733484223773623516535806637808681554467580118184582804154876801541184062762533732181015884585322680581165844687268617606655544276240638067611886232388527868508066182130307666322465628720528384531681113858304217150642806020144620080026852272610816183175145551704480131107232330465767126775852210875576883641346622737681600741174706303221251408630641587163003138713755442054141327080413822046600263640713611635310468722133311135012064031401143771510032260820885658416866680820730365314128654311255766615845301470057467310803472744450477206372254274621747370402131043815278774511034112778031445315048801015187323248127122555821044371482802710874843188101116516365815731456515676384256760350158471615247286366525363544813275860301445876074135438836883327838320860533654243487313251171802278742026065607171267878685588702652134688634745721733478005842454053488684540346456381110877324404284677613573082782065301706732632677347535583500558363725728148105342685468251370277036362661674818553152823343661441735136803538852043417412770322111347850373120404206488162576682561408525683855506861223536747512321018852123356208573123754682321451266335483743432708612575374514747037003725505244127842514108713422352781075135017606254307364886354437140385584416227381884E738DF38784D80AFE74520CBE851F26E4100D19105EB33B399D0F6165349133CE404E2030F5CAC75974179AFABD7E4D86FDE3830B6B1BE3E413814A2A06DE211380DC4FCA05B008125D64A4443FF3663725BC63345E388CFEDC27F2EE4C8F8085870C29E360B3A695C984A30C63511E479ABA406A782A2EEFFB4B6D787F867C45D1F6EBED522C852AE8FA4A561906B019A62E654DEA793EA955C6DA7ECF03261947EEF8FBA2C47BFD27A3314B46FA227D0D2798CDC22BEFAC39CD11BF0DB030A68A9CB8C33E7890BCA2AF77CFED475871FA7617E98C86A5FF711B1A4F6A68D2D29423AB4A9C7C9844F93E90F3118DD81198708A1AF8017B7B8178EE2117AFE34A2847A97592B9BA517A1A54FE7CF4BA360B62A1DAEA0FA6ACCCC1E588C46129F8F0BE8123C8215DCA2091E8227746F62C7FBD2E0C4EEF88497C185CC912436F45A64724175EEE4FEC4605B792E336E3D457BF1891C79C9737153C9339544D59BE170FC0508D96002A7C70E2A2E826F59EB661EE644F1FDC88469D851A9A5114787EA6C29A3C583A3F15D32FC93E0FD8D725D2257B8151CC001E681A51E05E26BD4FB60E39E2EDC1F6CA39E7E55F8FE1B24CB959B44A55268932E7DC18B5D80E97182AE3E1042BCC32CB57FA5648DD6C8053AF7FB0CD6FBA70BEE596D9141AC92D626FE36186772D75537BD37FF20BF97881DDB831E9B3D1CCFE9BFA5B8E5A52DD3703E5E11459C17DB76DC12BFA716458E1F0245C9B177E341E3FC113AE2B827544BAABBA5DDEFE017CB3098BA6448AD135FB0AF73B42090FBC3968E9802BBBE9C6162BCE1F76CD5516FD323B415ECF937E97CA231A64B7E587E33402947A9D51CFF658FB63B529FAFCE3A6A5CCCD13DBC3A24C08F6ED0D2B218571340C716C4130925D9D0307645633CFC52E6C38FC41215D367F414C5C123B1AA87DEE2D91E5980BE6B2D1FC9F46AABDECD0A7C189803E287CDEED22C683ABF3D4A9E1925B2561BD880CDB1B92E2A1C6AA4C33EA39A06FE4F358B73A87E935713745FB8632CB52DA1E46DC009BED11FBADB6B917026134529A72340B2BFFEC7184B0EE9E5CE7558AF7EED869C884448DC3F7FE694F1529EC766EA9B5E212FA217AB0D6CA1F6F99B4DBC7F62DECACE5FF9F9197EA29CB99D3ACD62AD709ADB2399CAB425AD994DA40CA7BE048BBA952E7E0C9E41EEBED32E0A4DE84DEECFCDCCAC70F270FEA91BD399D24A9E0EA318888C3D059C7230F5E8BCB616EF8D372F34345F478250512E313A828143B4596892F19818DAD08BA3CE4F8A57FB343EE0B7A750FB19F7C598609B6EB01EC54C571A907411D72D5E04EBE8FA14574622764D7B1C087FEC221F1ABA307F8E9316DB1D5E843526657639E60FBB7A8A1707656F1E6FFD50D0A2B6C900462A2A93235151B6D3EB32F75798147D69CB2D55D48C48F68DA83B578A8DCAE89C480520DF326CDE6C92367D373E473FBFFDC81054E8BDC470690B1DF0935A77F004231476FF2D6A47DB802593AF5CD584ECA26AEF41E6D8C94C552481790F6EBD50D48C142F575E3B5CB5B3B9C01EE818BBABDC9324E5E88A842AD90743771E4B542D468F7623EF77BC0F330A71CE2F5F093E3EE3B4F0DFAA56088DDF128AE9953B0A5AA1264DFCAF098E43C77D5A2C4BAEA68CB34507BAB46C516B06F7DD0E9FAEC5BAEF6000FF918E53D15E4D8FE7828720F8608BF2DD2BDDE7062F4ED9DA5C547EE0DC2B1F4B9035E1643D5A9868ED871DF630A007E1AB95B8A2D42ECB35C6059E162B7E2A04CAE5BF1911C1D01508B96413E4DCBA4CA62BEF8AE8613434621EAD3A9C5EA09F170EC59F7E276B669E4E133DB5A3E49EE89C98D3223DDC2FD36C2F14C03D51300991D3EB9AE3E432C6119AE978302BE54052BC4871EEBF247A79EF131E39ADE8020C61BB07D065672FC3CD14F91DF7B3D48340456EA9FC42C3D5C0AAFDD3F04AF870629698E9AD9F5CD9EC8F3086B937A6DEC7619AE58B32295037DA9DEA0DAF9EFD6867DC2E045BB8C38CEA5A9E2F32E1129D29FA3C44590F0D25D84B851760EDBE3EBDF02263B5B1AB4A3556CA3A66483A2D415F261E03CE40620BADA221305CB7E811EAF8FEAB983EF9463F41D23DA60B7D737677F7AAD8831C81BEFAE0088322C9481B841E0268FE919397B2C48BC6D4828B375675EEB0BD41CBE839C9225D92DA70958DF89269316F263100671FCA80218EC06BA6BE4DF202AE0AB204C2E3C06CBD25F160EC690FAAE53D977752713DE3C6140F828AE24E1157BC6F5552E306B08CE3B3445694A7CDFFD491AC58A2DE5C0544369B9BF6FEFD1010633BD19691935BA21E31A2BDE9E11EC2ABD52EE99EF84E792CE7D5756925A58ADCD522932E8C3DF4A7BDC1E6D45F0D32907082DDBBF5FA15D1AB759F6B1E5622592D6F867F0E680672434341A653C9B435551AB55A1990061A8E4FF56700E76FC3FD715FA2CDA54D5DCE687CA17ED530B13F8E100306AB9A5DFD3655C3359BA4C20933632CA2A00004D0B8A6C4167B46949355C1379FA6C34F5D7A2AC4D3C3357C3B1C14D7D7D66B520C80A39CA5494F2B32F9F94063B1F6BB20CBDDDA4BC56F6599C343035492299D28D0889D3D794424C224DFE4BF48D414151662942D8269879DCAEE5E924819985CC88F49F1D9BBA5829579E823F0B95BA75BEE15A828EF9B77AC2D08352477AD23D8EDD2A0BF64F2EE58083B2EBCDEF0DFF4ADC99C2A809786DC4E1E12E6CB6A6BA15589CC627A11C784A944D255B8EA82D48089451FA1DE1E8FDCE437E97F8EBE4D3418CD830705D1B134038D95B8AF89E0B851364C8A75874FB98E1914783556D1A81D767E5A346A7EFF827392A0CA0680A48BAFE20394FE98AB290374776D1CD314127164338C2DC78FF219EF6DB244BB73CFDB3A2272DABA26016A6A82BE03A50E970CAF008326A51976D717C121B22D2196582DDE1CE8F226D53BC95572DE85B5590806AF84589B7D608E6485AE2DF98538074A56D5B15406DC95C08DBBC27FBF6534668D77386EDF9A079F79A6BEA49791E55E53391B2D6A21A394BA1FA6FA9955A500D702624C8A26992CC1454C5118814F959A3BCE54E308353C2252106A4679635A1692E160EB5C5C028EF93538D082D77946DB74C0175FB07CC7D2E98C77E674562DCF316C7FE27DB9B95CDD3AA13857CCD3107CE654EC46B39143A411D4A30AC43CC3203E8C1702CF30FC879D1647C565A0E3F204D87CBD8A3DD7EAE4D3339023B995B85204E8EEE81106B8A51F00C8D8178DAFA786BAF1F4D236784A9C9B3C02976605A820B9615D1BE26E8F43421E49AB558B07B4A05353571CD088B8CDF1F7077209486B9A3176F5C934A5A3EB79D2E60FCB687DF8BE0325681BC48ABA956D006BC0022D6DF92B14456087DB752C4FA8DC5D3A7ED18EC9A5678F43AC498D1BA6C68F1E4BEECAAA3DAD0B6D5BD678474A21CC8CD4E188FD229243D08D7F853F79E4EC4DD73599F826DF9BE380A60A896DC2490918792D76B7A7761452A8C839DEB25B09BB87CA360E + +seed: 62E511A6731C2FA10DFB5F68A538CCDC1BC578C16E7EFFF458A82627438E78F2 +pub: EF51EF72F1C3E29FA159F3AD631E7BCD3C593D3386F4EBA484DAAAAFC94C774D810D2C97E964D54DA11C0B0E1525D2AA06A90B4FCD30ED22106FDC449A3405398F7F7D3C48D5B8CE2BC01AE8080D7530F7B37BDDC656F530C58EF169451340B9E77F1D6524CACF35436605D4BBE69DF7041209DFB7EC91250D5F81E8E18D1668C46163191F96C81A82989633577880AF1E16A4F46A7EDE15AFC9CE8123F8881351422F69B3EB258897CEFF699742871F2C2A9680CF8E9ECF81AF1B5350203C7C6893D02808208092E2976ADB732C9D4F48B919D61580F19EA0DD6BB86DDD200CEE38D631BE40936D869C50D9F2D44537B1C4A6E42407C427B41FA05B65A12386C67C0589E2741D580EEFC484B46AA6C5F7A588722F6F6A61509E92BE36992DA24182D50A4344FDCB8214A1DCE582C1763FE83605B3C05AA678868CBAE21F168E10D585B83A0D815ED9C4E82AF259DE6C0334C6BA3613B4D909FE6425204CB344EEC4370F171173BF4280D817BD3A60D8C6787A0567A28E08B931CEDB65E236AF33EEC1F40D8F5626649A9F7D94AA3A92A735B33BA79F755B7F0D5E85242F71BCBAC7BF03EDC47A7170C62E007F2C0FBF62738A4C2B4D4DA2A3EA1D297EA7F0C2035ED2D73689389C8E2A8016BF17838144983FA4DBDF402380E2DBB34DCEFE65FC0FD8A66439794ECEDFAAA71D767AFFE9D9B5DE20B5F6EBD276B474547537861F4B09BF224CC0244EFFC27F77380E90D9ADCC9F51554566F9C40096E4F922EE4AD9E0AA1E3DB8B1F1067B68CAC4B5BE9EC9B055194D9223F2CDD7C1CF244CF6DAFB0BA08505D009B0D9878B555681E32D47D056139D415366AA5B7DAB20333AECD22E661204F6AC710FD8489E24CF4E665ED1CC4CB6B38A690EB5B44EBA1F664C7F3EF4058A07B903CAF36EB5D53FFECC16D217623984F3AB54696AF2F68B3780260EEBA27FBA1C968B8AF0CDD8E3D53FA9D307CFE3B7885972BB129876CB12FAB77918EAA6D4DE61E4038C3791B9D56FD46C7EC08F2CA37AFE5E88B95A55FAAA3A0A014BA87CAE8ED39BE46D9E3D59D25C48A08AA1120167B6D03E7B829DBE1F53B3C626ABD9D971CB096424D66053DF2252E01A53D6DCE5670A0BDBB79CCE9982EC044E8F2EFDDC47E90AA819FC6D53C63BE6231278F15BF5BB295C775C72E77F26D4E24D8EBC88988C08AB1E4A89D62EA91A1C3C66C102736854B2A04DC4CABB39330960A34122C9620DF3FA99A1326A2B6E56EEE28708E6C1E51DD1B442AC0B78EAB11A887348EE2ABE3F1541FED4B7663FA46B6C17FBE2DEB0D2F0EDBEFED39C07D16495FEAB5FEA1B07ED6FF827BD0D34F2063745755CB0009660A2099D9CEA2DB9AE6B59DB696CFB7082FC585046C03A4861F798638CE6761DE09F4112C52B4DF752A34507469FAF20C302E33AE7E9CCCAC61123AC80E2B7368D68E21B14AC237AE3705A4E039EF57D6A93220C644C74EA59B565BEC30777AC494CA92887B1D460F1D6B0CC153201948076C94847453F9AFB845E56E6D8D5D6D4C80A1D90032246989F06FD556D4FD8268A1221E1825EFF23049724A686C50F9322A2778D85CC368E80402464A578C98810A3BB7C73FD347ACCC742AA20C096CCA8A9AA971225D78F3A5031B828AE7E537BC77B3F956648F29D4198CCEC25D05F2CEB0FF38792B727BC0567FD1820C8FA0D4C15B3935597090E91B961BC2DC4898F184581CDEE606A0A8F23BECCE52192DE1CC9F2047B5D28BBD8082DCD7679C923344697B737BF564A2AA5372BA50D245E80B3CAEB8B615767B7B395240D844711B025398A4C2E35837B5805BC97E4C36E8D8ED45F57FB4CA404F484446304E5A548309FF4F024CDCC27E89D38E1E4E131928DB431D0150FABFB2ED4A928B167D1E296E68AA860EEE76104718B00340872994B369C368410B30D427175184F5242107CE1B8DE0AB862796D637ABAB7BF5E62A4730C8810E3CBE109A6ED835D66F9D5C192632CC1F2CA69F675DEBF82B3F464DE1E5A22EF221A87B6D8412296AABFFC87E86C1EC25BEA15F0B193D5B8D5EE58FDE46EE76DB19F6EFACECDED8DBABB62DC0D7C1B7B4CCCCFC5D6BAEF0369C16959C7EE04AE41283A187D8BB83255CC0081EC18AFFD608002610B168EC1FEA21806835C183BB37853B3F19C5121AE3670648E162048F248BD669EC2E9F90869264B7629DA97F8A48985D59B5E317B5D41DF7BA781564ACE32673E4ED2C267429BFC26C03DAE87BF1AD04E600B8EF12881D00AB2BEBB88BE9B80DB3A59AD91BAF9567D3F02D38A84F01AC9DF8A6E6733499448CE8891A7DE203660F064CC3C3BD9505FA9B0D4471693A72AE18E35F52E218629BD7A92A3811EABC1B3CBC78F36F1209CE73D536E9BA3539AB3D6070F493DEA35C9921BAD86CF5CFF9283CA21260D01B5293A85982CC7B257B007DCB366AB842BB2F827AE1ADDE271A3FB87B801C47F3B350E46F15AA15D76C12637286BE088EADB07A66139FBBF4ED10FE023D758E55C2C8D890097125F4608EAF88B33AB5D72EDD4479059A2813CD074A0E34CDD75D13084BED9E7A006371EA1E797BD57DCC737710DB399FF2D7C40B05577EF13B8FA0A04496276BF54E1E6D1C3F9868DB83F854D22B4CA511348C1C138BB095AF9D9295FA9ACF1E34FC3E153E0DC5E3FE6C26732B91BECE623D0C0A75EE15F3EE55725B544B88BE6D7D29FD77C18E063696AB7DB9C7D9C7728FE418E0CE81BE10AEC7F2650E270B60557CB36A88D18F4 +priv: EF51EF72F1C3E29FA159F3AD631E7BCD3C593D3386F4EBA484DAAAAFC94C774D8543967E2BB6AD85E15A3179E43AB6210B92C397EF2A36304015F31F60DC83520B3E2E2C7B7E3A652EC0B51BBD31658BFAA01BEB6CE0DD16703E8306F1421CABBC2EEFD701D60E5F2072A86796AC63A284748DE25B6786D7576C9591BED5250D1121664437027712683823110134744782325716701825326106281417512402562610760774070343722070662367530147028781502758603157256305388552722426744506877140170222115755788830108151370532112385248757273210600417046550866454217847036112165217026334580616264266850007412410034322610722874412460415117243752444301602835170505851723667537487687808834221236561731042711113664647265734388234256740808277021024657346336844647180827423804866772028353351361670188658044347366350218124262267334435473855537211130380776088281881551766412145021645553875408724137851647668330658315135038267670382522043487733486060561457458043303027081056283277024535724768402670634777386227288035465267040734338784170132363651088253345304861706644881714370321243303456008237433072503686580630655646152582141715035716673665747140801705080317547517185862266481747431722632188065665210410582248202410334706237247575063208513068542270135344480624807537048480257675722323868828523667548614484014178247848124228773143444620546765572057224808221064011331533864761613330733788818550157340764213234637215043534188225246248281740085824730061387131717516063000018352515166156772488565363385310845267712035500857213573868153280775421661767877171368115267572412817754047622165670213137627105670022861852722630553286872248723225586151310467404677764356827417400515120767731720865132638665281483360808157072283037470672371102636515325400318878128348651077203370773663621888364417646737251134728117508742145812273038200087512187114012422063043160048858500181257281883384253120871138472364018411544174868763812527841472624285482785457751546051004821681781406613433481252758641876587085482852562232237523732553411565212412604250652414531618530613526624881737841718756787780272121431872321183822088511353210454732244658312661582133328744116472840474843221621543832313310685346707326357765544520442308307863180375243803077277353233600485441327804771085561221300415863220114516267846385655746223526784608523021285328004700858523753543662754344646814246060073571775452627175168743175130112638655838615286783432204861821730783716411812363468715234157311333307828807358242827006155513883707261038435330521613355045286071466437258168088086533315463186611606788828853586717026080606737676270286022426073737051117462454068011642116863107044530477611414484156003044801451425172355417510241275561626552532775433703464354358238878657601860456477867740546616006031482073282787538313203724131644133801723168488715667283314218312128313170507635704084481126205514816851386454877547178307011008511063001268188821288520661657308875484062782067558134202582486678183064415640006521703113811861612754566427581001647120348066328787758180026152053480046235012435117513720852020136141848740456316226257681303354467224068344155288562637885645005055251476280088665121557083876761876614184437734187175A705DE4CE30DD419A30FBF87F172F493F6346DD3FA5C18C5F5506F4DA575F7E76A12F54D1483FBB94D05AFA2EAB6115DEA5AD6C86943D11B5F914174530AD081E5B99D3630652BC23534C4DCB5774AFD15445075AFF50D97A93C7C83D80AE7DFA051EF731E3DA1960CABCAB92596054E42B6D3AB9D4324F147F3737792EA623A4047091F692A02F11B46C992509087B4BCAF1A3A5B961E52FB08C28331A26A7933BE9F5285A6F49F617B504F31D822F8A7716CDC23B1D3742DCB3C5E039A9DC0C049EDFBB1A615DE470B035A0CC7E15B6F1EB7A92F031541358234E70495C375152ECFFB86F158172A0C63C490CCCE17318386A5EE54319281EE85E53B6FB44DB01412AE8E8172FA3A09A4907B7D8AF2202801CAA448330E8CB0FD28048BF01201ACD838C30FBFDF7D01626574287D93078A0CD752800B761DC4FFD79E997BB1179C67624A0BF3B2441C9E266C78C07E99F788C55A4694005F8505191EA20B3A6C41D2E6AF4ED78B9B48141F498425257E015805244D88AD9F7E7803EEFF88EB2C74D940C7F4F93BB99CB6B582C0940D412787081003CB9BE3F3D2974FB0C5211B8C7746F8C66D0F5DB018BC8B5DBB4C5863C10247083B3701904FD7A498EA1011EC87A31D3F22E3637965DD63F564717C737CB9EAE48B00EF49F3EE4D875712DEAD9634078FCF28FF19C3DCFBCE7CEA5744DBB1BEFC10CD4B01A3E818C244EB1330F7BD35C2F18AF7789A2040C09F040505CB5036630A7F3EDA0962B2D5DC590AFF47D6F1B39C4073F5CBF139D865D531828C8FBF5C0D5A2366AED1610974BA8651D152E2DB71D5FA7BCAEB56B9C0A73C1ADDCD35DA6828FDF652F6E92A1A0307A3F274A9DD3639402774BB62AF2CDA387854450E34589F1DE919852DE1E7FF90C58743E29EA4402E64E30F75C8329A5EF95F66960904B245AAD166BA02D685589930C4128A95612826BD06999A967F9147B18D3E966C3A9071F709671B9CB6847EDE93AE225C70DFBB4623CDC0066DD7D13788CA2EE4ACDCD857B8803C01CB90DBB650B324AB2BDEA62304BEDE414B4422F7610F113EBF9B7E137681F209AD1774EC5D6389EB46C736D1503DFA228B7FDF5E69BEDA7901F61F2024D9699A28E3B3AF085EFF26C17B962D6B340CAA2EA1FA927F273D676667A1A873B60607E7CE4EE1739D334321FFDEA839B9B9DF69D621BF1DBDA580777084614623500E3315A570ABC6722CFBB1E20B32FD410680D87A789648E00A129FAB4BA628C060DA271877425034A52E2DBDE5720A333C3CBAE2AFF7638D3005553CE6C69456E835E23B98EDF88D5037BECAD644EBC0413B77D942A73B47C87A399E18144323CDD51ED50038485D144344F56089ABA4ED70B8DA96A630D71EB80CA91D410764A030AC66BF04CE2A837A345747B1BC355B751A591B95974D2C7065D14C8DB475ABD6061A9FF3FFA4701119DE5075CDFF32DE15150222DD9F6EEEF8197E73FD6EA63C778DC9341FA9F312945DC20E8E24C607512C501921B7740179F2ED8DE976AE0D6F8EE5D821A3668CC9ADA6ABFAE60816BAB6E67DD74AB8D3C271F0BE15C583A561ACA92A7CB63F2BF60C0DEE6DC87ECB3C0C1BD5F16956C8A937646595822DAB1CE09B1E194C77735A50F8AF265C630D20D8612A3080B2FB41EAD3977D177AEF12C2498DF63EDBC91A1BC2929283F7C66ACA5CC4B03D9A410043B8003419E1CC5D09293D526D79304ED589AD6EC522D10CEF80FE742CABC90A82A209EC4B0BDC1E202928BE4A6DEFD6EB37CABF3574DCDF357CAB6AF07B22416E82722C5023E96CB6B518754ABD8DFEF198474A37AFAD1900755BB1DE56249D3C5BE147954670C91C4BD940FEEAF275D87C04D2934BC71214A96BC3502448156F5B4F3DED83ED55149DEF3CF1B39F43BECFA1ECECE545111A996C8B6F46066F759C8F307C7ACAA31A1823F27CFB8A0FBC4E5A11D6AB0A180E78AE4FA0DE073200DF8717D08021B72F1ED67089000F5694E518FE3C286610E0C18CA312883F5BD806CB6EA30F4BAF513FE183FE3109C43BD5BCB42EFA5FA0A5D6FF7EDE6CFF61DA65BCC6EC78BA9A35FC2B05BC4D3255A19C79332F80AB35177352A6DBA730C6071099F3DD56D510A129E6DE2D38AD6895C5B917E22CC6763CEA81E8B2A88172AAADAE3600A911D34A0AAB6DDA0374DC776FF50CAF62801E2DAEFFD58453B27E2A367F24106E35D1625936D31E3C26AEFB9354D70417CF264BD5B394D5DDCDE1F90C20CBEAF24323BDE3078395CFA5D9AA74F1E97BD4628B190F480D717823786C3EA5B6C0F54ADBB0B2DAC9CE7B1CDC6EE67B036F16CAFA4D25F6C74592E535302F8F3FFE3B91476BF588CAB45580CD0EB2C421183805DF21D51BAA4D6607E40469A5509AACC29605F64C1E48D4FF1E91674E52CE9A6D5043380580EE746CECFFA49B6DED160B70B3C62C43A233D6F584E554EA5D791EFDFF310A7F5225E7873B26BC5283495CB1C3C2BF64D868B85D463ECFDD28B6682F2DF7E57840F535D95153F6AFC2BD713228D1E9FE546B9C65D665CB01603C9FA03BCC4F8292C81F7195FB9453BA15980BF464CE57999547175981ADA808847786ED93460A43627BFE051F15F871B38D02C9CA224AF4F90E0EECCD4B2DE7E7AFC950C2F770AC94ECED9C18B05DA5B7067D6A984624F800982F89E6E0385DB626203F958392B16E9A86FEBCBE65231E8F3EF03AC7DEECD07543C8F8BFE409C3CD0EB88CC39223366CBAEB968EADACEEF97C5C7FD24C3BA4D97C898734C767029BDAFB3B11419CEA7E2E4F913B85333990B5B0F794E86342797D8ABF0F4742895A0D93D03E43DC03722FE38858E00976981C555DB0B708B3089D344851CA1CC42C7F9DB437E6F2750F21FB4243557F70A591354621E43712A047CE2F8951483719CE639A50C951E1E7326A7F089D47E0EE2BA28BEA4204D8478237CE7DE9482FFC1A8B7D3A56D4022D159C5099A69DBA88C71DE62275BE5B1707B4567930C6C3AB019585998F5A1F167737265DF9F1677B9AC771AD5A1E3F460394FDC249918C1911668D7464786293AE2D81D41C27EB0242984F922AD5596BE51C31BEBA3B9C474ECA02A440A2B4E9F4767719A92632285D176FACA6D06DAB7EF77B8FA4BA88168A9802912B3B2B3326FD1CE0A1C960CB5A197143F547B657038140C79B7CCF828D81A9C1D4FBC7F03FBDD2F6EDBB163FE0DB9BB9B68ED9389372F0D767FA985C573461A5F246AD3BA30BB6C90BC205C763677CA8871BA4682939F64180AFA9CACADF68EC838B56E6A71A952C8769299C4CF572B205BAE167DF5FC183553C152085B54FD5173BBBEEB615BE96E737C5C1A52FE068C71C433B512C5FFFF769DC2132F94FD7E1F1ED296A061C63F8BDD401B76E602247A109179EBE7F47E7755A21BAAA0F3E5118A3440CFE071B1A3D998423BEF4BBC48E2C172F1BFF8A5FE505016C9270BA787604D29DB56EC0B953DA5AC54FAF7505FA30516A3F060E3894DEB7C5ED8175493DB7E246D87467C2021C + +seed: BC4EF6C46CB18061966CD872D2CB9826B0220173E42F11B451DFF93C0577CDF5 +pub: 172044F0965950FBA5280238696E84E25AC1A1911FCE85C13FEDCBA82879572CA7CF41D9BC636574F8629CED228AE8F626FEF7328FF39DF8079AB8C24840B1241920B4849E57981DDB978AB5B4437EF87198E91E20AAC7278EF115FEADC43E58F9C0F135E7833D289A4F33738FEE0DCEA8B50DB3F0521C1C3C76987A7C82C0AF3C38C59AE1A888B9397258CC71340AD2886D98207ACA566A30605C4E2E545161A9BCE5488870FE6C48C13B0F47E5661A7409A6C5A568988C9814FD2862FC5B1A690841478F579BA587598558C2C07E988614B7D8628FF00798F57CC1440A0C5163156D490F3A3390D4498881BB67A58964B73826446965AA930537B55A701F4F635A67FE975838B59962DCE9E020C77352929FD327D0106CC0160B3AC5F63252F85C151C889D096C942939ED146A04A44C9F2395CAB0F4399E1F603FD0E3E5D4E7FC1DB51343425D8CAD80076FAB19E3DD33A007903D12CAAC1673FCC06C401E8315D9603CEC9D3C7F0FBDB3D00CC2B23E10DF63A9E4B2D3E0CCFEDDC5DA1C2207A7EA9A0B81D4878A7CABA63E494A67466A401D1988270F6DE08608C304EF6316B74B39BA6EF4D5BF3B66E297B275B81DA2DF24FA1129D88785D558C3F79C235C8243F0FEA80018DC6AB8F375EB17A778E349A87C7B5DE5666D17E41154BAD3C5B00E5B07CBF9F46CCF1759FCA574BE7257F1160F65E9695EFF1FF32F92C386489AC19B3322F30214AE8B008E342E21ED559A035299CB6733CC34B2C2732BC3A3A5B5C5E4370CD940FAB60D9110071DFFC23831D984A446FAB028907A71A423E5D22A073F069A2539195F1CFDDAB21E3B163D2A1A3B16C749C181E3E68EA90E1C2E98D64661E0830BE2E2C967C0EDF86FE3E0021C6B217367C8D0F3CD28B8BDADB49329DE289EB3746BA459AD8B783155FF8C151ED791DBB33BC6EBE60E6985D98AB003F613674890E1FB72CF2FBB11EE24C2C3CE6148A152A4B0F44DD890AE262D53B0A5FB18C748BE880B432CBEC5616FC0AB592B9732B69E6A7C4EC149AE75CD286D133E812D94C262E273D7D6053007DE2609A40109EF7759045C601774DF800222897974438D6CE98884FA79C99B205F00C743452710BFF448AE9CF00401C99BB75DA90E7D99877282D1CD6C9165F372ABACFFB6474E94E7C9DFADC925B7D7F14F2AE043A0B8A75124C2152DC45310FE37036874F466E088FD22384C798A486E1878E784DA4C4BD790C972CF118A64F176FE8A8F6E565EE26A293A4593FC80B685AB615CA5BBA86BC046C413D9937D544E9AF7F23C717796416C56401A0E68043F0ADA7F4C6C9E2C257F36580B2A63F9A6D8961EA4DB955739DAA153152B8D6C2DBACC52B24BE9692DEC785509A23C01E1969C1A6E2225CD3B28F93439174C104A24A6258C813E74C46FD95947D8AF64D93461B6AA50136C799C140097C7D8B24EAEB87BA50E73FCC8DFE9447C228DC6438574E21A23BD082146A0E617A439BF81A9118FF3094B8D794C72EC7ACEE9E60C24E151BFCA9D51CE368904AEE0C608DF45FCA8C2C536A4F0F1038F280D06A15CA43FA836DD54F2A2235C1AB14621F8F57F10ED45814249653F1DE0FDADBDAB1E95FB502DBE85D05047E7CAA8C4C6892B421F2678C8868F852A51F0E5BDF82F776DD1FD40DCC4404DB2CF4625597FD5FB69F10806866334853F0B40FCDCF64A02641226BB7BF4F33CF8449CA1921380091F5255DA7968333EBABC8F9A84F6F8C84041AD2FA7EB9C80F95D874A860ED43980D7597E4789F8A69424DA042351EA9D5B19E5C128F8C5DC505AFAE0956D913193D1453EA24FB0D8AB64584718A61B447EFCE208312C475D2074928DB96FEE1BB910D06DD6CC3F474F4335EEE418BECCA71138A3B435787B4CDF209325865676EE3DAE6AADE50AB8A075C4EC28DAFD308F53028A5944272A9D2A6F199F08FAB81689786F08312EE0AF4AF1FCB0AE0B693627C1254AF89BA8C1F2613B1D5D46C0FA308AF2372248797CF2B3AF9CCDFEE69DC21B09BB390D4B2AFA00EE51B83065ED83E4BF1E60C9CD0B79E5C7EEE4390B28144FD2FFBF03FDC97A4AA39361B9EC50A2AE3BF8C931947DE3675849361608E171BAC9772296BB218DE9505544B50D8BADBE77959219A611325A3F6093549362F07C40FEAEF71B25A9A7F928A001B1180BAD6B4C57BEC8822888EF44BE1EEEC17600FFB00305C877379815BFB09CFD4744B4CAF48DB5E4859A476C198B4118B48AFE8176948E837BB8E54289F995C4900B0E8CEC41A6550876BFD950E5E3F346791C4AD110F6D6C728E5E58EE33E47E57848C7DB6CAC53DE450CBB9E1A679D2C74E0FC8A01E0D2D9AAE47855BD6C1864AF95EC834D229809ED6D3096113C199C156A80D10EEFC8FA3B41BBD23E5BE9E618A379160FFD6578D158B9E04790248737A43FC8999D25D549F67E194D992E63E51DE388654C3B5956626443BEACD55F433AA07B010FAFE318B5763BCBA9FDCC17C88945FA5358FB0DB345EDE62FCAC8D70E59E3E326C41944F26E6E9414AE356F7011AF46C21CF051982F56E1269BA3286BA4AB4142253E75FE6F38EF6E43A708D7F12E18CCBFB88B31B2DC2E3604AE8067A29ECC47BA2A7EAEC61C20A286FF7C2ECFBAFB722120992FFD8DE17DDCF8120A77F5AB9BF66E0ADD0AD97444EC43322950FA02D746D4182D649A6407D5ADEE07D215566860364DF3F554F784F30390B1B4D942148525F7F5B253BBEBF71EFC2DA6944BDDE76BFFF42B +priv: 172044F0965950FBA5280238696E84E25AC1A1911FCE85C13FEDCBA82879572C29C756D826F40EBE63389844B3856FD107649DDC3AB99121F9B5F658A25B2BE42D2B0D0AF78FE1A314C90B3A426395967DD3BAE3D5D1029DBDE410038E39BBFAA7E20FE03217656BFA7930D08F4BC65E22EA8FD2054D1CCAEB3071650956921C8818383516546652345845348341062226750117678070784570688375188710570177501547154781433305500441388730375103588405375867617654308866302441600407576855334525682615663181476154841163774257413648636855878347220644304842024115888285246226138068538618624402515488050667520351648113356388605656772231715728008745145588726836117405018742345584424117700018427422172663251250586644286578757304668042003246205338202634818086486123301785675071012243767856118835760130687363568514152268258478147501550424740841243831124168575576778672513600028474115545671848450525620062025268211708511303805861272607274170036384165863223506451565485030532523838221603121287121258746072176713758303632550312407040655188220360357083342722457032075015106782627515768051832500124057822141806717818130204348522116668168451131021286034235335052683755014564880081527078434626244324244510065258144513486042326238540065740028287018174303318278605860268612373017402063473525711430312023244056812545442844100520001864131458455054357850851616055356500742453276075824111777566866705768584830046800321427826811111278128707133771780512815062885416415722083566437861458372806671084678275584322766418754517617566503460016327270648231052836222025133383052468854188306714172464176800512243177780687715053575280724703280270467263745336412286256741502851718788040761600037416853226678306578787264856847665327562026070278647542104163834357747751682268186422832211685401007454675858764182640437071260473443336570828403305146626232784033300107168103446217346137550463081382500454211446123826604371182686275337146882401545335814524011776880487111118424037210424342370242086353287448665040282354413775244701060055434041608100180153521065422144718432411453616532145776130503005125174035851250505745133537151673466754538347058334505557141046336117404485764114821312541582861414507838063640842508474877435530016238621821578103225262201873646007042385113361266433360344375647126042186828638601077581056113382282548525480625002560854472737373661454043588228486646342684336122607353740480842165545624654407006382410124026814128213476402880362710601084361726087002868561358056824863415583231157101337220888846877801156782588770147556680432713113728653328533633450458645337136485473234337704500632556522004715764426011055020800404283451041078541112463436778348678102033630286016710360132806074553635343634681186558240305064843460704424377205042621258166181681515748037366075414103086201016510622332567241352646460736353614088313652185275227160484630482480168165272140537778813161341883025552377040525524854466625216273363852012381002677764353275847134654001617637546856066738302850036854362132481856731425248733072822146707717830226726020857302425511116774864817318644468555074138657504402057020263158005116668616551570538040051435731622821807634486281403783750583701308338531138562104F2255924EC380D004EA05A4303E25E0C1778839405DCF83B74FD2754CF15FDAA6DFA98B2637DCA46E9DADFA726EA4AC153EC7DC0CA42E86F26D03494E5206BD4408DF6E7C499B5919869C447963748E4446F2F0C38AC7DF52BCD04070490846041583216B2D157DE1051B4E55FF75DC6A03BC20895978E3D6FA56F43CC5C7CB645D97C028894A25FD2BA8592BBE355E903162615150CD05416835570F12F5A5C9229AA1A9D7DA3E4D2DA4B3F80979B944A30004EAD2A590228A828C878F5176AC162892F11369811C7A5877771A00C47EDF2473A4C01B760FC2598F505B942C92CE8483CA8A3050D63522B7D669B3BE2C3CB85A3BC7E618935E6B72290E2570F719EFF0FCDA400DB8A7BBCB6BD66BE529B200FFDACA580C0CDE827AE11F2D920D2AB1A55900067A4E3C0464C80F12A7BA1A0F7E8C796BB391995A439EDA1F11ACA434A24BED01DC28CCF448791190EFB864A094D564B3D23005A492D0D2F1D6845472984C8C0822822C9E978F85F9E36E38BCE8FF48E3B485C7D6888BFAD21A453DF01BE666A4BA5AF49A1922BB368EDE947E12D4AE08237912699731F33AAF445C8482DFE2AB567F7B3B256956A800CEA10765BA7F10D5168AE9053C2A341DBB59290437DE92C05A93036857A19207821AD6693DB7552F22229CA392566E4A019BCC21F76AD18EFA19150681B4EEE85D1292AABA0A6792D1514D4A550FAAADE32DA084DBC9AD9384B11D482B10F8FA1858A9E558383D5ECFFD75238DEF0C09C9CBEA14871A310FB813E6792897B5054FA56371DA801EDF8AB1EB122BF4A2F01A1511490A48B8339BA9C6DE477750F5FEB46ABC9E3DADC5C667847030D4A8CB532B89ADABE7F2809AC03C4C88B09313901B6F358B3F9EE0E48428469884974A726EA63B675E51AF76D4ED98F2108CCDE6C639473BB9979AB51DF674D1A65F889B41D9B18DABFB776BCCF4791DBC901A24FD9EBC2FB2C9452589CBB629E681393C019E35F5D6BDCBBCACAC054BA8656DB830F1881FFBCA556B0C6AC73CA5416ABD5AA4816F5BD277DF79D984A06CBE50E4E0AF9B9B150099AFDDBBC907580B09745FD335E006CA7F61934B890BEAF2B94F52F99BEFE94811B2827006042254CD2D8075A0B34FDA4B31E7420DF4D96DB803C0A62FD802952CFD8E1BD3048540D1918E52666E185A21564BFC9CB42AFBA374979B139555A8909DC7BF49C4B4BE6842C3D692C67188C169E10AC30D5C988165C33DFD7DC21269D276F1D3FA22C10C9012A5C8A0C8423C4838A62302094CF3A213C5721087AA6C43E589C3B0FFF04FDF91CAEFD1498FDCEC993ACB4659935D5D90BB5A709704774181FE001EE1E05A9DBA1251115A79173B1C33895EA761F0C5B6DD42BB06E96765D8C242D457A986118FAF8CE1F089EF1CF293518E066410EB04AD8EAFFBD0A59209E2053B7FF0C2E221A6F27CF8F05022BD91B0AAE3C01ED28B41732A4D89CD55F7D491F4E431C40A83752D470AEBB54EF96A630576E8DA05EAF5218F8C09A8D1F3C80A90DC77F15B3B44CCCED6149ECEB7569EB5ADD3873D2A23133BD723F71A2AA7B0D3E2EE1CC75493DC0361477AFD5E6658E9787CF117243CE7C17DD8B4FCAF65B3107AE60CA15A8C5FE7A9745E27EB4674A6B55539B445843A2870AB67BF2AC6F80FDC5B53929447C6C0A4B42DE8BC3CD22783A17B5AB083B4649452913DE9E9B5321E86544BD771ADAD0BBB5417213E3FA62D80E92548A4AA7518E2462B08EB141B98FF44D6B4D7CCB1CEA4552B75AC71C1F4D10CEFB20A6C703559F26899DC2693FB287574455EF767BDAD3D668EA8477B4E5FF4E263C3C7F50151487480D7A6C271412ABB763748E342CAAE563A2B2B421E067B275F709CC452D011B2AF96985275C1CB1945172CD2019388894D7C450D5A1DB83A80771456D9D0CF16FE983086090DDFCECD8BE9F6AE66CA936FBBC0FEEF1F73DD2C19F4ED1F1F2855906A2EE18A100B79F1C3FAC6FBF990982B0139664C08BFCA09277370F2639C5260862AC4C7D03B7F4E48EAB9DF4E9050F67A50FC665B1022B00B0E7635D9462EDF1D602E04808DE10A0C123DC21C4F8BA28A94DC1B1EF5F070F70AD18B6BECC8F9A529903502AA982E974A6D17FA57A52BA878508713E7BBDF882C2FA50FCD0EA27F54E1A5FAC2D4101AB0D6F3FC3251D922AB2E3F90F8D61598EB15C77869B32F96D364B70B609D9630E8EE18D71A4A05A0767DD2632ACE2342F037BCC0D85ABCA48F10E3839A8D727BA55A7ADAAC526F63A60775743E06D61AF9B9C20A3F10DE2B8BCD545C3296274751AEAB66B7A0883CAB9B07D48A24CC567AD135BDFCA30B61C47AE969509F34126EAC2FFA5F2DD08984A23430B7ABE4FB7DCD8A6EDFF1BEC22E7801ACAA855FA5F3DEE21EB1FCBF9204DD2586F6F78F775B26856ECAE89C80EC645372C7B21036591CC20CCC96F92E16E1C36D4A0D80F8ADF3D8BA6D2536FA67A5F9FCFFCF291C29200F9592D3EA56F85ADB431D481F4297085FFDB8F669E523EB96BEF366DE05D2DC8FC0485977FFBD719DC5CBF4BFCB3CD191AF4BAE90696DBF52BB25D164DE472A64C57002D434A1C29BD379D72A4CD86C1380BB8132BAE06620DC219C8E35D0B042CAE54B32358F68554E34D55275CBE89E9526D5285818D5D9907B52AA21F34ADA8C74576C46CF25794CDFE19AB419AC44F3B05D0A40068945F7564B17012499D0602B4A1774002D18E4F7DFCAF3E6CB035776704457632913826B64C71018C4949E7B97C4A31E042CAD3D25AC3B47E540D3D0DC6491BC021FC56328E6300462D8820EF3D9BF7A40FE779218A0CEE30390A183F571CC592FEF2ABDBD47B3A72F1E779815C0787FAD9A4D5F817C20E1CFC2799783F09DCBABC4A4692538F5B8A8F71172A738F947B899FD431B6C82673F78FB88D528649E8FC794A1D3A89E7C3DB3075C2C3AD5CA00539BEB10C4FD6169A05836A3FD524405BACE465D0AAAE4CE9DF3836701CD7914382C27E73CAA08F1B252A4B7EAEC1C861CFB443B28ACC5FFD0058E0E9BA4864979C7EE56A42E0070CD18B74340D92A83DB40276B1AB57F84B6ABFCDCAFE227C08415700B6163B7D57EF45FFD23BC0DCE56F1CA8FB58E52BA415A58B87A46078F44EC0EEC9482E4E032D61512BA21ACEFA846B408856D64A1D868EA98CF4C518EF6D0F9CADF76F13FF1A90EF4B42B49ACC0FB61EBA9D88A51D6F9143C3713C91D623D173EC0BE6DCD11B02B2B7EF08ADCC1C7A78E262441D6D919E3E3AAB0B61C7ACD6C5EF95908FB789D44EB01E505F9709CA1D47C9AFBCD88806038DA554B6CD3CDBF274A8E0292D9B451ABE590D7F7B8B32EBC60848AA5C0528A8DD435498EE46AA7E89F72AEE8D96A590B5FA434FA4159E190C4A668912C80803CADBA8970D57EBB2FA73828F955754F81F2A3B5144F891F886E74D3F2604B0E6A2537F491B786A50EDBC03CC756C89D59C7A29E372AAB728FCD082A872CFF573D0E8D0C6C60BCA9B21627651BFEF05975499BBC05B2 + +seed: 135DF872744277E90019BD1E904DCBED63741D863E82388B61A2B069E509B25A +pub: 60F19C2888D3332957F177B055ED15294B33E36071D56CAFB5318FED1C8C590596037B30546386F06E9FDAB6AE2E88BD93633E9C27EE046CF437994D9FCEA1BCBED601082DA3973209A408440CDEC12AF383AA23DB274E7393884CB7AA4672AFCE26A95511BA62CF43EBFC7945800D79CFEBE0C41FCFB7A7F1B11DBD5D530BA969A56399E76EF1E8244DD225204AA140C71C90400D0E6A99593B346BBE05EAF414AE396F169911754E3A631D9C28644319BD4BA952B7E935AEBBF0AC81326A8FD03EED551623BECFA9637898091FCF12FFDA8CC2636C1699909804FBC6050617F4E0454A45DBEDF647FCFC47F678730DE0FC9B7793B88125DD22DA136105A23FCD1E7B581CC9C8D62204472BC2A8F8690543812A157AB1D3F7C3A8380BF7724ED623B938318CC45D1D8B907C460E1516192BE22678A7B508477EC3FFE1C2F085146CB921012010F82AF16ED8E8A4185D4C77A21C1A6DD6B56E0721CA1F701B92B04C9429C460E04C02E07345D6305205E21DAD975783669E4EC89521FAB64BDB3A31EB76B18C33F81CF39D5AA9BF1B19F819EFCD38AA04EA3DE374A6E155F8457768DCC6B7E14D2700AC4248710D527A60CDA5A2DC3CBD0E74EB82625A1642CB80B7310A230392148A4812CA7A64EC7DC9ACAB74C592A1CEBD7E4DE2B05953B3500AE2586B4357A511340821EAB6C8F2DFE6576487C93C47B4B2B76EE0C96552EB31A5C4415EC909F74C5BA9513A10EA8B54ED292D8D76AA92CC131BE5F3FB10DE22D5480D88499EDF7C3B265B96DD9CD13A8964C6D642A10371D69F6F1948C203AF1E321CE53C48AE77A06E2DE4B4CC942E9563E94B75BF4284E7EBA1BB3850CFC2F1E9AC42D7AFD4BF6D7F99E621EF640AD2BEBA85DB0721CF550AB3E2BB3346B36C9D13E34D7C9FF5FAC1EC257DC2B38122855C5A762CDB08FC3DE4D546F2FAD9B51A3F6D5D11AEC965BF60B834175DC3DE02431B2A82C528689BA90C735DDAD72BD930939EA04E750E33BD3F94F47D4F39A60E0EC2B30BE74CF49CA04B100F470B8AC60BC47522064F540F9A5D0F57D19452C02F0BD526D17E86942DBFEF921D82F343835288974D4DAFF657D0D53A08D1530ED85A50F8683A98D98B402C67FE58879687A39F05192A082C830365D577EF0545D4D1BC183A2EF070D817CA4CB941562B4487B4BDCCABE417567C6C5DFBD09F512E34CF996A3C73A5D2E1ADF8EE94B255ED8EAB9FFC7CC5B1CD8D213474BB1213E47F6F7B040C77517C58CBB8E77F5165C590691971EB4587FA441410BBDA483AE2E92000D2C96869EA239131039B672D125034926D0B31CC481EF36CDECEC45E3258791C520A185249ADC4E1C946A9214FA6D29F264A07FC039737DC0A4B0FAECB74A8B539AD875C9BB2D6EED2DEE6B69CE2E12E1E92F3F0EADA8A64AF5933BEF893C0D9AB0E4A19B18A9EB56F7079D7D730C1695BEAE4821CBB97E3D5752BBEBF6666194695BE5E1FAD0ABFCC280FDFA1FE2BB45F371F642C93EBA3A0D7FA69FCD30AF866B1360A8FF6707C54504EAF05AF44D2F41670033460009A8C7156B24EAFDB2BEF3A2FBA97AB039518EB8950BB8E9D07D5138AF47F43058EFD57AC450E7CAF54C275121BDAC4C2AA70CF6422F7910B01D058CB4806D28C55C69FA3FE7801DBB2C62BFB86D7A0925136C4055FFDEA8F47FE22332F09A580CE44DA4311CF51EA68495D69079A5C9C8FB442E7681A021A32EB88AE12EBD16F91753C54A56435E5F244F0C2CA4103DFF9AEE7E780FB423BF148C9026EC9E649AA80CFC411310C3440B5AB6FA3605867751790EA9A54E053C81970B3CC5CFF5FC000261616524768F7E06034B55053EF0B7B24C52ABA0F4A40C56E7BB72857C893AA25BF97761819A2EC8B9319C8B8F55A8042879795D06971EDB9A63D85D2E5839CB704D66497508A8628AD4A7B8C862F965DACC4D9BE011EEB5C46CDB6A2AC03C6AB7C72DA20889E6EE48B9D6E84E2ECDBCABA5BBB7CEF9DDB7B97286185283809E6D6AEE4189AC17BA586A274E5DA9FDF56C0C86ABBEE67525D27B15E08CB949F8F38FCA263271B5BCF92121269EF692AD7DD182B917E50DEDAB1B8C5A42621DBFC682B2767A4C91E1DE942A660D3D1F4E998FAF32F652C68C09D4C6D278FA8DE215F6EDF6E254AC8E9A8A09DC43E93ADBBF8D9A6D5BDFF52A0F9A57CBF07B2F1C2690B2D4D1B92012A0062CB0D39C5F51E1357A3A9F2B3F063A194BD68D09412DFBEBB39A19E0B6994392F9925D1C7554456D0D633549616D56536B4F6AE1F0C6F2991899DA65BC1B8F2913F05B88ACBBAE77F7BE27302EB04789E605724884525219327477E4BFBC964207408DF867A12C8554216DC7F0EDE2A74F3450F09719965593AB620804F6160D493437BF2647B17AD8E9087FB9ECAC796362B20C47AA45F5F0EE2A3320D844E78AE6DF61597E05B25B4EB804161678C180C70978B5DB16F0532C524FE4644507A178A31D84BC823241390F2906E2A5007D9364CCD5E332E65595488F65CE00C15C33B5A7E0D2AEB23BF53C953858130287B021AF19FD83ACEC0160129166B7CD39305B32029423C9EB7C1C86FBAEB08302E8E98783DDC23DC2C88A916F061A17A436208D565B2F29D31F38881CA031EE00FFDBA53D5F27B1CFBF8959138D3935AA2340CF37F8F1519849A087DA12C3D0E025E33EDC19022911C7F78F49B1D3FEE3F87250E38EAB61B2E607173F880B9534B370ADEB83BF9AFF3CAFD9BEA06878E66DABF +priv: 60F19C2888D3332957F177B055ED15294B33E36071D56CAFB5318FED1C8C59059776BF0982F58C5BF8760131D784CBC59C83506E9C37073A735B862A90A1351FFDF2CBF21F6C592F36C142E7372741317808CED0E64E75242A8CA167DDA0931C12067EE31EC05CB5D76762ACCB588D97F885DA913EDB932FD9EFC597E31C8FE7483732182417476267842312383478154743246465608704018564385702145640032387477480015217732076670716666467833626011865105780352472546415744556138516780087816437287418113876478510168466361118214334241670114075453510780284573135100347550388577701188017176163033247283666855118737431883475501656605683610738528276807102471644770484440320781171351481611644187385155343613247758636820584746160088566426010428203244046441730233448316034754248183573334761217257455360176028465830788381643240768766280464653231063260878410470574307373316874208716171123303817623837725475353711451040420210541882572050248682047242423200011856287765407446474167417575752066354152702022122578670844232737845641088335275415401011387716361864551521567112453813325131754308472287050122011151372646414852012325538044287833806555000572835360174353656765502258874142856141381211338024426087777686324317468856134168305145721077050524706654710068461234873625832256211720256300534682510444126505380610114274108128652105757116102101610027146353055681174423780414631814766604742016505380053811753008368165204378032838721314303164347700288275788623102537480584471452714476335173848668614437618187610552480265653710132536135642551212270583780386871528154403781704407403277421066170314475687213210526636380221070102627478732365161434256612014823302523866118448752603774022243324574346365536516014470447434451828251230234262820774158573160724435457606050617288264125822135802242853578238058441418124730762135158784477176721846631804675433384776456172658806162800784657603315350128042358401711706737852082571514521858816256047683653501611414232632543716484572216533733465564646410787800711631308540481036537622137273362580821460630373846686536351643184220531260100470718632847612280013042337373536221652732260400271713866033384882613587553853154040621820351770001324430483350066467206672766355051513856777165413015284625031416666867715458402036710374272215323506650536575663454041153038824213555822740826103470534308818637830853622438247348816776304148463123075133283488484062036787547713120366474014578455581134567708113412242521388135757240176263555784173124460318616660500408413380503574433416272072522707577581862022240481421307758281540872888122804243684675014071523047532418622155330485380820231333301134246558278003026512810705606767804263084124781578616637246768362221215416245532858754872782888871325412358451314080488111481442478110611135071715543656513067667176448838086323467381317537420507301435855664835265066015501051842518277816662454485756187478822648427083443138015222802362876282417008521324004255156877406860744830428285413554573067703281106187011234434728360065728454415716563261413046158800686358771553030874538582228413307033286145140814246244015884017253404030718260532684216764132301055016015132773621625305843836355723257172476645626154671D230BFB6EDE64D1F4CE65CDFCBA4F8B6167127DAA9CD1A3251479BF6BFD0CBEA010D6D3EECD927DD933C6784BE30834AD1DB0AD5B2E416D86836615051F434DB116D8388EA6DD7F7BCBF7D28A72489CA067DBD3F478010F9E1CE759D5B1AF7A5FAF197533023B7C05E835256D849C1CEBEBF17844F39E36D0ECAC807874050C8456855F01EC40AEAB3884D384E2A12F0EDA8AA841E8E0B1C5BF11E2BB6A29E8444BD802C1F460405AA21E7717EF90739E3F7661BC8F0EF1C66208E66DA244292995889158F64819551F4174038EF3C2D60B98EEB43C53BA96056542A215055432FAFBE0E7A812F0F685E24E66ADD8CF09DAEB92445DC2FBB144176866DDFD663238E81F668AD55B4411AACDC07811BA48163C49056F7B442BE8533D9E3A2B83A057F6A996B6267CBB9433FC85A4DDDA41806DD8E067765C29721E6D5A1BB34A80333C199E00C2E3563F9F77185CD100B4A2FF5F1F97ADE70F1928CF198E1298E35161CDCCA9B9A832F4413B732FCD271FAAFBACBBC9664C43FB4C24206365E7FE7C5E30D12FFFF90A3064BCCD44BC8C59735CB95CE2A91D88C0A635E419FD0BAC0270800109644EEA88C36FD78393B42384CA9B58EF61B3BA9EA7EBE3FCEE044054FC1BD24FA70C71243DA12B338AC7461C39661CA4F2C7E9529AE53937800BEA814BBB2324AD2C05785920AF96834B994FFA29F8674F30E2DC5E502E74296E8B5B731B53DB9AFC4497C2A7856D23E28AE1E78D957BC73E8EFA29AB3664A3FC27F5D9BAD4317EE47EF6CD1B6077236600C2767F7BE560AB260D07C6FE184F7B9D928242D269C655D7B896B859CF410C2C61BD5E6E5C34531EFC22ABD9B02E21887BF37AEC7B4B7B1C7AC9BAFD050CE93E6586916BA766F4AE1EA035B0CEEE4BC362CF87AAF83577427C8F76BF36D631B72ACA5575F48D293F451F66F11FCE6F725C6D2DAD3C7045C2CD74875E122F14B3D988E207FAFC198CEC59FBBCE70C6AB11E686B5775CF08673DDBBD296AC617326D3BD9B1DAEE12896671CB0546A7F6A74ED11456EFF0A74391136A5866F61A5D3FC6498CAA1ABADEB900A0C9C36931A4A25987F25E31E2A72388D84CA70102409168C348AEB13833BAD91281CFF1D4C76A4D2F0747448E8F5525763543E2731C97D506F826232C55C1B85C661F5FC726EF9C2E8667D9FCE4D3386081657629CC1658D3BA4559CC0F0290215BCBA010CFA280B87D23BC79FA094B3CB4A08157A69E3BB41B009DD5354D2EF5C0C617A72853533A24322AC5C85BE8C31C3C8BE7A71065978006D5867A3968DB01AF0165B12A557D3B0BF8B44321F948F367A5E3A5BFC9F190F26FB35527DE4C06EC155607E377789E2203FF48A04F837BBAE45E2E4A4F049E181E2249F59F38B151C3F66765130DCEAD1436BDAAB9A4B813E6B2D418CCEDC699F126321E429CE9837B9D00FD9413AE3EFD9649AD2F58D0BE9A1682D9105769C111886B68EB0DBB6B16AB16C9578D3952D24C03C8E6E43347121FC1510952228FE16CF87EFC1B0E6CD47A01752DF9AC81479C7434EAADB137433256ECD2D9DFF8C49A68E758AC3594A0C06B84A19393935C4F6A894B0E90D7166F2F65734568CB3F837A406A8CAEBF9922E5327D5FA2D2BB98D63EB7359E75FB836F5D392B25D32997DADF301F8154F320DCF941D309C78D09722E17AF06055EC65F2F9DD341BE705134C83BA04DD32064CAA6ED894EDE02B81CB33FD86056B40F303CC4B236EED3BE34D4555C8F51E8BC20866EC97BBD57FB754956A1E52F371E4287886AF8152347589BCE15267BC603E9E707A83D14B0AEBA6E94205BFD62F743CC4D6C401FE1E1CA130872083A039F7D3B52CAC89A56EECF96BB3244C4CAEAB615E2A45814ED80A153EBE5BE67DE0F87EC8D48A404120D2DFE26395AB2FAD1A1194C89A0AAFE42EA15B64AC806AF8BAE70E770E73491E55122303D0F0A258086033E6716E58F18519C13B13E07B4567B8057C06F68C6650BD7225DE1F8AFC79C0159CE5161652A10BED61895AC2495777CB165912C0E24331A21B6F4604E8D6F689E06A1EE856968E419FD01E8E36BD3A071F21F9B4B778859C0C524DEA1E1F8EFF0D92DE8EC7BF8FC5DA396046CE9966C198B0B1968EF2776C43278A0416DC2904167CE9DABDE13D82676A8AA9579564356774AE62F4A7D86B43AEE8EC84B3FD55445F1C84DFFBE038C0D5899AC1BFA5CC258AFA4FEC802737F6CAA0BCDA4143729F233E4AFCA6B243CD21B44906A5EF8F2A45698E91C23B0F3BD7BB03548BBDEFE24900B400F5DF27822C2434471F460DF2118108AC3AD2D7CF5D5D824014546D29D4FC258088B2EE8601729BE1F2C8509446FA37FEA4BA7D057216A14758C88E75D7D72B625C50B18BAED848BC23B28B775007963C010B1710243A455CF3F4F2D90363D4E50339B990C449ED1A26E95F997CEEEAEF283FC98D59C172F0CC9127B564AA488E3B18330EB1F945EE48475FF1968E0C2DAEF0F582EB5D0184A983159A894687674ACCCA811C570B5452492E8C79C21F8373E379C5B189948ADA6099A3465003F8A1A3F8D89565A09189E8A9F86186EB786C4491C728542ACB5B333B0FE345FFBCD9E0069619B04502A06ECBA06D6C3D9BE70025346A4E879C55BF000B9FB374716DD20F41B91BE43059AC0EE454D11BE599FDE39386EB72B6E195365D061DCB06AFF60543117F7742EC0B0402F398FF1E3AA7777400108C2230F266F27D3BC29C547FCD0C57EC098CECBBD10E12CBC26BF290909A62E6D359A823EDFB728E714ED8EA40ED58FEBFE6CE2316D8F294CE3C9EA68F08091659A99B3C12F4249D931ABD465F8BA18205F57C46BEBB5F245D1F9F29C64F3791292A8F9DF9C6473418AE055351962795185DD60555BC277C8A7155172408F0B99B78D43896CF17755FF5200A7DAF16112A93BDAED173A2BD934021C22F25AC6B761FEC2B992BD8E28F1246670472AC2A2A76B2E15F336F211E99912520728FA86C130951A26D456C47D5C51B8322208A0944704A815975DE32074DDEADF567B9346DF1FB066F687354828D5BD41A0E3FD2C38EBBA74010BE647EB75E866CAC2C8289B3A097832EF0B2FED44F6AF239A7556027C41E7CD42B18DDF709E75E94360C0B404060CE057FBCF1B6100E2D9516A91B7F7546305A447C2647F76F588ABD7EF3CD823CB6042B59160B8BB1F14BE18AF1134C8959A84E25C1B5C22D1BAA419D547107791E1CFEFDD112C9488A9A57DDA15FBF312DB3A122F70BCC5BEAEEFC35732070465309D2888B65848DC47464AD50ACBF88DA25384240BF2E3D4FF2EE4B59E85FC47F7127814EA1C014B127B1F09BF09FFAFE7E748EA504B6EFD20180329582ABE04EBE4E20C7C508C32B2DCA0BE8E01E80F21693EBF250E1FE7237BF04C58E5EC60116BE1E6BE90655D5EECDA10D59858A678A7B137F82618A913096D3C479145D361FAF0E926F2D9C87CADF302A950DAA88B4F9CDFA66B1D111C3C9B80259187E78B2C0DC3ED3D6DAADAEDBD1865 + +seed: AEF72BA72607B5D3E49C579752BE9CB9FA67A01B2E8B654EE92177BBA596066E +pub: A5BDF0F8455F85CC9F37DA908E52A9F70DAC2C1473306439E4F3051E897673F5CF4217CB02FC3BBE5E08E9A257D0B22F3CE939D6E809C88560A0847C8A51AD8C6FF596A8708CDA9CE65190FFE3D24B457FB29C88F670803DBDF7042F8A07A2CECF2E8711F639E561B84AA9357A6C403174E942A05919B4533E28BA1F4A9724C1455A82FAD68762CA8EA8EE25A024961D1991B2E4A5587D2F48A61B00B348B059A44A41E44498DBCB2026AB577083A10EC5A527E27047C3ADABDE815555D16CD092ED86C26863145C296C9523DE0286328BCC16FFC27D7A2E5BED590D20B77B51FC2D5646DDCD385F79D03E63AC83B7522F01FD1A9B5A7307B5D6783006E935465DA875DF5D53CE648B0F570F5646E607CA5D226E2FE06451CEF35E687056AABFA25834F69275634D2E223B2814848EBA21EDDD175C895F66EDEB9A59F4D303C873236FDB5C5551DAC07F5693117C93827201B56109C398A490136D67501EEFE48BA2DCC0E0DCA3E7BB099182AEB71A5833A258985035D8B19AFC76B622DAF4F5A441387F069A6CA00F4077D22E666E32A9953B34384B950FF2A9F4759AAFFC066BAB54D6988CFB35636F2568E76ECD41BC6823054C733DCEE6AB65870DE742A4D61AF0FCD5ABD5210C40463FAA984A27C9E731DD994657274E3FCF55C436B8A956FE21203CBCE1EC1BA965A8E43F5580F9AA4DBBDAB65564DBCD86B1B28FE0033CE376049223B08BBBAC9857B5104CECC681A8003C40295B69E0EA73ACD0252DFF155AD4340BB95B9DDB0AFC97F2CCA3FC70052B2FF327CB4FE8AA6BDA893BA30D2BE86B2430F7A99DFE1634B98AB67327D50C366369AFACB1C842FFD41273DB7510E07CCF8C062AEE290095B3ED299EEEBC585C2BF2DCCC9FC3FED5CB80BCF8A6576E67EE732979D3D82D0619AA0F0280CDF50601AB7A6E3E3A0F62F24A704E6252293D0F2C343B2CBB4F3E988B6309A287EB4A3943290B9C82F6EA93768DFE50A8D51313443CE3444E4B99790964B7282C49CB98CE2C28C254B0D508677DC2E2F44DE41EA0428A5EBC125E7CFB3034247BFFEB234DF2910B7DBA0F4DF808C1EDB42E9234A1BE15735F0928F05880EF8FF25E7C03393A2EDEE2828B374AE0BAF1A63D266FEE71DB913FE4B404DE35E28E1584AE938F9578C5B06799DA2EC43803980F77850F4A557892DAFA4708EB4D933510770C40DB4DCB7BA4F8D9138D78A2799662990FBD6142CEE38B7CFE9F7D39ED50B4327FF111ECA523714A06C642AFB2406299362D16472CC49B9D01A6E0A38880B447F3903AEEFBF5A920145143D559E623CCD860432121B5B0161A43D8FB8280AC4E7320A412E36053F78FEB287EF0AF32E1FE5A1C1E9BDB6497E7A4EF9FB4F0A2A9983F40F66C5DB8AD972E422E2098CDA4955812C09E649842636B6CBEB0E29A50260078E3505B1235471DF74E2E737588078D8641AF48C1AC39CF05632F80C99836B0935CC15FD80F3FE9E941E68C3FDDC8DF1CD641722288A20EFCBB09620F0376414F34E380E13CB09B43B105B3A22A4F54518CF28CD644830BCB267D18793542026A1258F8E3EC4920FF798152E054444183CA5621222006AA18DD9E42619BFE90F35634967CBED9DE93722D38D8011A5EFCA178C6314A43F12798F150FA2AA9BC9C2BAEA30008BD61E1BF257144B67A704BD43823B3E06F6E251819CEEB264383CAEB49B1D7180AEB56DCC735A09C0EACB926BB4407F4AD016346BB9F68624087A22F50D5EF91521F3CA8A68906E56761C37A5F001B0B2120CE86D1FDD86A2F795086C1E63300EF953DC5F94264350762780F703F89100653A83F9E80E3327D6886F85A6FB4A68C22C114DD54DA899008347F08C7ED6064DA26DFC8F9250DB0D33263BB5ABC997A949D845AF963F3CD51CF4240B6C2EF3AF3D0BFA3938BB5F48F0562A06CA59B662D726317A8C02AB28395C3EF958E06816CA972792C6FBC051123C1564E65C9FE5E13A8E91621773694FCCFD4692D4D35A27F6E2412B49804CE472672692C636F3DC22A2A6FC050CF9895AF34A33851AC37AC2E7A2E42D401088F119BE6D66BF6AD4B7C9BE4B65937C34137924B5F9B789D93F598C5162C500C09E8EC2E4CCB47CFD919FEE8671239A3159534FFD44711F515286F4C5F043C02B94727832F41862ABAD03EB0A2DAFD8CA9B766AE254B1568B75CB65D8491B488DFFBC6E5DAAB4F6B2910A18B0139AF77F10137026116DB1C75BB206CEA39C2EEE4A760A37187DCFC9A3BFB67A7688190D5B408B8F93404F22BCE4DCB1EB2443EA95A12495F9881E303AB7491056C1BEF4EE4DE242FB2ABA8FFC4210D9290A291549804F308D1F1E79453B8EEF08B7E94F306C9350263C2C3FDF9288E6B77B74308548BCDCAACD999B72998E6F43B037AA19746C92964EC170D8F4C45C9E276CFB38090287A1FEA8C2A3DE69F246F66BD1EE6D99BEF25D817136AFF0518584C04103EB4BAA1B0C13A09F53A5470CA0D3BF811F78524F8BB1059A6AE908959015917EE1D6C458067B0238125ECCC3870465FC8DD6FCE667DAC35C3395F2F99D9412478F69286176F842C12480AC3C1F10E17327FF41A9C9F3CA25B1DF71746E38D495AA39278EDF66784200E41939ACA3A5C6B30133FD34648CBE9E05D7F8203C4ED349F61B06898DFB59472A50C5065FFA3EBDCEA251B37FDDBBB1638B7B7ABC392DEFD6D8C2A623B5F8C6B2AF21837E4DBFA31049262A89C6DFB0DF74D4236C231CAB14926955BD861 +priv: A5BDF0F8455F85CC9F37DA908E52A9F70DAC2C1473306439E4F3051E897673F586D92ED7533389C0202DF540751374583C97B825C4370216AF4AB36DDE304D43D0DACA16C3F5087918EB0AC74D767F421FE3D1FBC7EAA3AACCBD5CB5D09F333CF4B78F53C71C613696DCF9DCAEF19B3C1EE2EFAF0D828521A6CE01FFA7F61A9348527342744071064226038054116606320141710221271257486326667037121338804027786413333762444565247120260711112481538554528818355348570835703121724850217680085831247330511727221071532777537181252433162511266101870334182868555603545033287523215207404240325534605842331807636112112578123748213488427847140378435253062845364733136513038331863665164167881816537665065848863257260565026575136330876105673463618643727206285030703671806436818322112274163527184354571804314504110461483305276281527585556577604221866560252247227633024375431035511576001826578516576032642038878266403868054841663872067833221181722456668288121320355140013335216064378035186542241363324612723361344715333431546685723672037350475440828822807350518723244126165140441743684004218174044766245273324152220377505024108077250427538553813160114380427476282474087652860170448374247256182540047212386666433380053013860147850648461451277375447570165767818683367627182818503143056367684131733603212447465727282433537555073853150367373683784851317615160568487055012186553755658442635833444503161210303854541265435850086145313831714057147057120854520605228538737665130427538038232223511606506354232283180315487066067657113311376130525682787352874263703354678684763224515801735756766354734254556702053117703010838153428847256422882168222781354461343605223116617002218761072342227774472342364510245075075620557536146654153377441306448752117273127761641170377382766582167256065853886542021656228353632167205880115560215680560306250271500428858201477207883872516256244502862366650053734802237606638246801357641266043847685428523576470862427772605087355417711178011230254130776185056386880131707363610348377857813822161177008735870862408816363434033522876874245827032130687514032517084000404550331071880041411855515353347350748833163660475436163376714460516374334807032470377016148566161642212524742565118144158720586251383718220750427038855211255848338323237278850416582248665388024224073714504355652603153613411853445800308877122483607514485078628638685574852023328770115826675755280543602581333212557321868322175661562521048051805784217422803480451341517247206525267651220578854840124507450130330783180120225057375467878261257470561528834570641813282421264533224140164101541355026886165283383701241282521170736675535341222832655883108544384278163414862621416360817830726530353375153418874861316345662582058367316632462543274165056545780126454850320726117724140462523727278438211532634765078536860488641558502057617183425565211328306367418664731407825108631866633714182740052163310713218483574715351876351327521183865501355706182848758085863563015436623450348571177625576370888877313167468486714351112267202247833152524060633413850751063367135630834183838550563386607380546701865460634035501871746162676710175335260356668310562162041187655378322137251758003287138288249A1A4563679824EA12950B80F31653B5EF7BEBC201E938EAE950102A93B46E11F5123313957EBACE11D440BDC9459D1B9CDD345863D81F2FED1C4B534D0F17E0908F1FDE10C037FAFAC1E0FC865B74D15D41E1211EC7AA0EF69F87FD0F8F9CC42B0E0E827570776232D4ED86A84D1F7A2201B2F29B6BEC81A3238DA71A1AC6667AF0A3F35124133C5F3F10D7F5FAEB27DDFE82B59C85D4EE7340F84787D4EA738D16861E4E66238C4873957D0EDDCA68F884B726E10AF47E431DC904EE034F9F491208466EB6168FE6B399E5ED34E118A77DEA15BFD11DE8A531C8C25F4F73F8A35282E32094F291308B6EF60DBF7B54CA3B0F5386AD179DA593BB9C2B7A2461C2B7C1713231A1769F03FC1B2C7C152AF80809453EB6E97C8B4149A04626C93E150EF3DCC298C13A439CDB871893CF3456B9A59FDCDD6E5A873BAE7E5C778C99605EC7B01339D8882DEE88B7DE879BF3AC89910C00F99EF2E8DCFA2EB7D8FA6B5555685EA2B5350BF55633C0AEB1F244C1026E62C82A5685757D3446B756D9ACF6C049A18EC4C9359B4DB246D9B455016821EF4C598BBF834DD6FF82A494531BB5E0A533F225D068A1AC496AE8D28F08DA00DCB8209BD40CBB0CFED32241FFA1C33275A2565D1CC24D3A6BAAB228C2D8764680A105A834B36C18A9D522D0A25EB34FE00B32193DC9F976B0A23CB220A6799E4D596EFD98A71EBE0454E25E93E233191D14A78B5DB29D4CFA2435CE41B13404A2324517F0EFD5B59F714889C66DB5327045DA45C38E3DC4D8AA433E1962F9313AECA58B3122B437F0CA17B09414EFD52EEC5E2F94DE8CA5079CC79F1A11E7F968844F8DA1CCA85D9AF2759A3FD75A9EC44BE6857B403C88E69F1A9A66764CE7F92E622D963E8ADE4BD4973D739FB946ECEDD9BD829D5BCF02FB87E25DECD98C8EC507EB5FCEE4A0AAF62970A6C4F4D66FB4BF7FF735391A27DF24B848E93B4E1CEDC8B77497A8EDB73A3C9AA8B4EBD9443235261C2DCBDF5606DE190C35AD76494DDA71E9DD8EB70DEB2649CB944A60F50F38C4B6EC1E64E12F029D1E0A2D619E4E783BE3AE5A06FC4A355511F177411CBE64395AF69F744773572B5073FC1BEB8797D0508204B3658EF87C62D94EB85E991D2C7A4CD02DF7D64B6587102D4FA321D961AF7116CB37E62CF3B1AD0C3FFD9D9401F175A359D69DB9E86EE9A4255F1574BFBE38A18E94BF0536125045C20921D10CEFF864A3A583C5CFAEDC1151CDBC4C31043A8763AB3714F942DA758D352CB03AD534EBC81764D21285B10E0E0AFC28CFE72A84103444A2D1DD6CE6D7964FCB66242F08B36623800E34510DA71F518C941EB8452C1BD29D0F6A575C7551D2A208CB579F05E9F94AAB26AFE4C7484E86CD05B41BC669B7A1EA0DB9E9F581528D5C29B0A684766E7881E46625AF5D0A37BA1D50BF3F90FE08697B20C7A205362943282350E1747A7B91CD9D0358F2101F5759D81533FF5B83190BFF33443F6C73A0D3CA0BABCB4A7DE4832DD9DCF2A144690F6DAF40431C7F9FE41944E4D168474700C8AF6EE39668FE2ADA2F8B9F015314EB7C230EC3C21229EB886D37F17F9457233C055A7F4504999521EF38CC8B4183088B52CD9A8246107C46108586D8AC5EBACA4072D8639AEA5743086B46553E10A6803BD86B494CE06D7FE6AEA812946D6B939A315F7E200A7DFE2571CAAF009C909FCB75938E421CD542507F50DE26F813B41D10E67E4B5756E8412E272715764C1C097D27434E2D2CCCE49E6A4477CE65008EBB1365865ABD4F709129E7E045368E8DDB80ECB4180EBF5705F53551E2250978C21874FCE6069D4A5A51C2DD54A2D61E189AAC9247DDD58DFAE54EDB816A5895959E1BDE574B0316363658B71CA5A3B859212799DC9D1B1EE75A8163D16263D7024D03F76FFAA106E7CABDA18B5F943F39B420486E45FEA2714914421C79D4315BDADC6FC2A77DA76D2099C28D59D865850152588F33837A06E33323263ADFC75705C1EF5E0E6703999E3DAFB419BA86ED5CE3486D6655D6E320C3D43D98E4FCCD31E28CC2F51B524414562AE41647F16EF6AA763E354952B44AD5E5576BAC79C2DDA9BC2361A08BC24697F6A129CE30999A3453B3ADDA3410DEC30CA11EDF278B47A6E6F92B0C6670E118EF97138C2D6BFAC34B20B11175260994BD93D41FD44B7BBD5EED310B3C13880D095B1A73887288BABA953ED922A46A42450D377DC23495707A35510EA3D0AB741BE55E1107A439F136BC7E1D03B75E733FD6AA3236F379C7825FD5401D1217003C11C422CA7DB8A8AE40CDFFA642F76544CFF87385E7E45FAE6E68347D45A2E32FE15A25DB579642B488C05D3BBF597DE46CE67DB5EED0EC59641ED85281D5E2CAFB15A43744B3B60DBBCEE50990DA608DA0652AAE2EB1CABABB36FE42C414DB0689112A37DF8CBE831B236967497F4FA17AC452B2BD8935211FB423D415FA916058E45CF7AD447F3F19660EA9A069C447D14603B23BE2C6722A581661798A1D9348EE1CBE235243645B20A6F0584621F460D3BAB447520372F041684942C76C7CB510DE9258BCAEFEF8FF3B7C3AAB4D9C4F3FDC9952F1E4B3A232EBBA94FEA8DFE75500FD89221B7339A3C61CF0B44CC36CC17E5339137A5FC7265438D76ADBA37465E9E30E858B5C9B4B162B4769EE7EC9A2D2090B1D5CF77A86FDF7F7AB76B15988703454FF678AFF7E7D221F2A3A5E984739C214BED903A842B4DA9F29E26E820A2D70EF0217C544A930A8C2150FF41D6F1450DF4BA0C81AD2F6AEB54BD5F82612B11DD9717112F424DF4C3F27006B37A51407B133110D0C827640468B287B8D41ABB6693D7A041892DDE1D494CE08ED493C59C68E207A281F953EDD91B978D31F459DDD6BB9AC2CE212C5BF3B15457287E4B95347A1AFB976733BC848A709900A08FCAA732F6558BD818920509933E915EC76CFAB7EE55821C56804FF8322C246CD2D14B66241D0D88F1670124B5E48FC5744E4DF74F5EA51CE9FEE5C5ABD4523D88B98B12E0BEF3EC7CA3AAE48B7C3C311A8840D593F74134CC0D4D6244051AE18C44E5308B3A997711735B438AA4D2409481DA436A84664D64BE7F941DCA6C4DB2724E7F1FED95D4FCAB4960ECCF7A478B6F6AB5C7674E01867D6DCD3BBA6D51747C19B94A4F0039226B658BEE299F23388FB5E7A71493EF7C2016754D020825616B2F4810FC765A67876F979E73DFF831F0ABE6569AFEB611CA67997253730B44979FFBF105F0A06D6FB360BE8877C111D6D0FDB5D2578BD95B34F4408D7D894B8B211FF1F753FF3290E54A9D05C6A5CFBFCBA0C9501FB4441A4B9362B1537C589BB27A17113EF54B068B28FB6F74474D6FC5AE8AA7B66B156FAF6AE9954F52518EBC897172971BCEEFAEADA9B43E4DE8B074EF0D7B47800930D076C6592E859C722960D32355A63DB0ED8138BAF10DB3C235293944153C60F09739DF20B96F76A0171C11B8A704AD44B035EB9366567F9B429AA2DE76FA9C12D285B53EDD61AAA85459EB7951D + +seed: 16759CE55C6741D02EFAFEF5D7521BC0D2B3ADB55088F61F0028656AC970C70E +pub: CF27EDD0B90ECE6104CBC5AB296C0301DAB751FE1C6F0648469E74231A5CB309168B20B154BAF03E312224727FFD0F08E7775B2B9FBFDAA283E0D6DD20B3F8F0EFC52B971F2203B8973D0AFEF578DAD5875142780C13728B3E658F87C1FE077B39C9CD7B7F84F28948250D51D5C3875E58A74DFA7F795C2B0957C6F699127DBD0C2265EC4F9CF0DC6C3D725936B3078ACD64B7C6835D5D21FCB9CADAB91A3DB704958FF70D33C1FF00396FA561A1BC4B4B0D069A71D287FCB1CB90B369C96D88987FD3147ED2838C7C15BE066768C48955F3E1166C62A5E3BD3B66151B0291E3E6438A682606E15C04BA8F56BEBAAB1E7008391765BF0D55C4C9C7E535AE9E01FB3EBC261FAC00B483A77537231C532F453E6B6F1F4D0313612B907005C3DCA1B733CFE377D4D9AB990DABD1B85C3EC423992CF77667D685C318912CDD91BF31350708FE8F401031E57E06878CBD155BF260AB5910757335E98026B22141460CD14CEC795EB5389D025B48C0F2D9C1B19A41D730B508F0C23DF59A93C64A7A2EB32658080F546479955C410399390E2273AB80F87F28AC0892D059E46C338177ADDED57900EB14D554A0F807284CA2B1495E6DAFB461054B0E6E14E7FF9313D1EE9FF83A32DDED566836CCD22B72D6DC6E52A58C7E56ECFAF68133A8B6CFA5F754653EA2F0C5AE9D26C10631B747BB4A452A54BA96F59D339EA45DCBBC0ED32028BF612753AABEE62D59A59D1660F88E6D9E2F1679C7E4196075260D45C9C3058961F0BE3BE6F61D26C30AB6517BECBC07FCC4B06B98E7B5FD9D14EC59E7CF89A4C7E1014BD3D157F0EF8DC37139683F21AB04E9AC8C3525554957294009796B80F0E1C05FBD63B3B1ACEE497DFA493F2559379B3F9A5D94D739BA9AD4214F746F4103F64B0DA83F779D2C404CCDBE4672177956F6600DE124F820E799F69EF86EA372F49780EDEDBD17604606971E8A41BEE1770A85B7DFEA6E6B8B2810E41D8ABB894A506E0880079E093978F11F9FEDEF1CDB4CFC370CA5BA9CE0DE73811CDDB1E7B2BE7840C3378A84ED126CBFC75C209984ABE1360DE2139ACC0363979EE99449B50BEFF8B48AFBAFB27C9458C9A914F3A7607A8E8707B3D2B1615097BB80F07D83BAB83BD863D46020F49BF08F343DAEE8F320AC9424D36BBB91F3D7A8D00579B07BB7C53BC700CF771A420ABF7C656F9CDD5134B2B0C6FB53C8F93BC5C4A475C11AB043C1B0A50FA5B9FA29D5A1E684F50FE9E2E48B8BE54D7DDA7B94EF28274EF5B88C3433D60E027383ABDA44DBD1E0CA737B48AAABE9F98984D30F2DFD50B678741993B8A5B483A2C56E038046B64705E23621BB23870514AF33B36911F97D45DF2D47DB94A4CBFCDA78240C77E9F7B99710E5A59A9EC2F5C89DA2E9C927CB40C58E562CB0AC1971F92A5BC1EB371DA6BD1541662EC4F0F78FF3702CCD723D1B4FC3AFDD757B75BB44A5F4DEDB9A63A15FE399B6E59928CDFB3342AB4AEE2F4DB0DFD48C5969F7409A69DE1CA6939D9121D119AB00B16F934707D83728916086E22F1E09B80A30E3DDA76D1F76DCBF9706B3CD4A3554671D9092E891D14FFD74DF0CB8835951D0233BC1068D6D1BD766E487144DB791DD5A72CDFB5A39F0C5DB47141706925FFF615A2605CE1B63792D35197CB9CA7E518F27E65CB32617BF91A07D5D14C186A4CFB7E36ABDC8C71D4245B2D70F20B6412D478B36E72CBC2E1D44B23AB09C5B89C4725CFA3CE27C79FC2F7451DDF529183FE7C1E230097DD5AEC1F23D3A817ECE30F843BE07FE76DB36FA3447362197E69575719E80588E93E4A57C11FF8AA1D8657E54B1425B6150FFE3BFBEF5BDDD58B867CEBD10DB74B4249A0B650E3AC3A65F828582FFC7332F945E82241CFA3D25D731C01FC7601E2F5874983F2D9E9D5AA781287AE5FB25F8D9BCF73EF5576CC46AFB1076B95382D89875CC30BECC32719098B5BB95FCBD22601930D5A76660B67870F269965F6115E1771D558631002E7388C4761AD4C18DFC07C3B93E7D11257099900A9B6ECA8086970B9CD7F0EA9C1FDF0E37ED7F18F79A81EFC726780F544F4E4F6C49956EF2A70F56152F030BC73C0EE7C57AE991F7E3362115A029FB411CDE0308F2B1ADD50590D7B6110F161BCEC333C5F70A52F6EC186FDE7331A5C2EA232F91C7CAA5308E79E85993FE7FBC06930FF98AA4356170AE3BB262B22C24F3971B3092AE0C4EF033B752B17DB8AF26F660C775EEC805880E12F0F87D5E1965AABFB1D235D5DE332B177427650E0162C7599217184FAADED2CA7946F3033BD6DBD59D9B2758386F463D187D97F2CD436E789415EB50D4A567B623A45B3ED8E1E8E03242E7B85CB501C04BA6244AC3010F7FC8047DF6F46D2B86662CE0C3C6F3AEEAA5D8AB02FBDA8039EE7385C4F139D47F70C5623B2D434A138BD4DCB5B7C40965512CE283CD83B63DD9B1739B19172537C6C50CA6B212117EB2B9F26A94151D473C865E5D860B272872E9113C8399A5A150376CE51EE643918EB0357EB4E785E8BA5FF3259831D63195BF1E21FA81F36D213D7C8BB52B4D9DC17D1C592518B6B97D0BFDC160CCB1C44CC624BECC28B49E294F206073185EB1414A4B80B18B376BC1CA498A9873E76A225DD2E8F8535FC267E40BD627F6ACC8F94B8A70563E55823775C4C58EE180E3AB69E42164E3778E389DC4A4689132CF41BC3816437B97AF05C126D658386DD57159CF61124448FD580F539DDF48FC22B46B103790705A63E0 +priv: CF27EDD0B90ECE6104CBC5AB296C0301DAB751FE1C6F0648469E74231A5CB309D14E7CEDDC2A30311AA8FA8F33273747D84A4F0D8EE7E194564633AA61E52915D5D8E2DBAFDE6D3F5D79C3B28AD634EF193197738F18E4A676CFC57CD89CD0AA6F0E234E1EF9628DAA5784D6E88DD9BD172917508BD299439586A2C69EC9EE37516408456805453875186164354434762851144032503062044733174535345336243074007370072077081545713763660866431727740068416380203118388213565687636452870788087330528072715111223815614114023416424628572273654761365202371732860200885645176752622184560057533370811066568577508011873252658610003344817466632285818231285557473165208431105636756216358276868345764816338628113787615730106550304583831526218881611205302483650721835183030737847070762778474055733402548878760487075428407073405005144801723170186433372802720438860108856746505547118015547131122453566773381342522407281545850801183484018184666083467106168381252845568124004675454602314541338432622742687024545623154163133642142284145826740831864111748641572426058870067085812666034786330234235402238130001884155852477742051765281745785073343582078116414130602308708382046610771844771422553017257116530515834771623210643083653453123174273203072120652165461603377577853268801105230325786774860038401255212558785474148811005612536620386306604704351810446347070743027613512061524183212465467663737220484528055077682744477361738537607035114778361715572673801101334710201843154010635705268423258373218118673778880168467346108724815012616873216832455740487844547741518240111500865103473675713041381803575311157872410255701424078321127582473648431113027582351430662278746751035665641182434584325772861215525770615370625335026857551177161702753358126622760777226647078220754285585438101185067104306615265684566031171156370644844601446724773223546111143485217226474815348070603068162168730827730621315400104575240651321414881564033855112770221780800225157528348444266604837745836675662685500716522842326213800620274755378763818201620041432256675142301443166263778606832838270748825315058517802584084457456813426874047456608883514726678781223637518532315712014762086217806235541401078781766415284331567726815303634475775271858640741021524306284275220610644874785084105424161267563884428838216142316446781311233544824647208842466574102173038377413542118331143367050032021043212425764087110600105282382455268312103048345414288052540078876487667764823025775566311214818185543787576556256857315236518510021215252482803706248475668860228066666672561867742220301027605488000438235713416236536151436128508016780048467212168013085034575086368465731676561760082315388865064664006463851448257676647715152480874332803114601541422802066821101585027654741377572383658717163467081225212357315441278864346071400588203756538864216143433263515106785455401547748303686407408160384157550870668870806518373802647386257117430103643478524250667688677831215028557767150786248416665782857323615017621284673503646038567228556675312835873622053521367101744308644383425387466430243221642874703241566431377885506752554645704356662457447386007618112165350121803204124113324380005611435572303115406311786186209CE53C40AFB0F90429725B870E47031CEA4209326358FDAE2531B5CE92A42C724AD1D1CFF79DB6D07F0215E6ABF1DB5F9303B27CFFC420580A0A8612C08E1F54005EF429BC8378F59DBF6A3FAFEAFA03D9C41EDBBC0DAD976D8E103CBB49A9DD674BAE19E45D44D87BCC9D83E8B6C9D99E4EC4406B744718F49DFBB12932775C82161C63ED883BE33FDC9F724B44F2CC2544CF1851237D53303B82A6C8E2381A7B92345530A7740A6A456DF5245388726AC8C568C075D849EA225C42187D25F435DA2543E3842D46F747400AC1D566CB1763133EAA110B66A72E025082B70845813A7AD6D4D39F017C9E8CB006C11A73C369DA6E1E20B6282ECD8D0553CFDC39621890EE0110F0A0CEC2FD1220C7DFACB8DDE955E336C9536DBDFF7600A64E59B113C28C86CE93B035C75E204F0FDEB7362F598475DA64251CEBD14B95600B39269C6C5FE67462ABF76B26363946B3DE38F6A3A53C261990A5E147CB12D093016342E57CA38E28736ED4F331EE1A75129386DC2A2D8C49FE616BFC5A321B5650FE51B38EA51776D1EEBC454AAA446B1C2EE18C10690AAA7889EF9C2C25FDE8E988EDFB39273A0D180653488C1C541308305ABB2E8C430EB68AFABF503DD082D8EAE81E196781A735D990CC89E024DD22901C5A3C382960D25B076BD38E01FBFE7173997760ADFD97D94C49BBB4848DD24666AFE02AE5D592CFD8354ECDC74C1C3BD713355D733E7BF531031491F869D01037AE0336E979F263D7D1217EE11554B90BFE16A103CECE88C19FC1D9B5987BD0557AC9D09F07B0CE6C01D2FBDBEC726FA5C7712E60F70F1AD4C566733CCCFD650DF6ED846727D7C3D6C8412843ABEC36750D8296776123A10A1FAAD44EE0F19DEACF8C7233C8E456D3964E0DF8603FE8BC04F73A261E1F37EBD5DB516645F4C800186A10FEE9D9271B68A0B27EA99BD19ED87E91519F795C6A1A5F7FE26D0B07D9B618CD7153E8B302FBDD7010A03A58817D00F4B9BB5BF8D9F9FBFC5FFB3FADA79F1FFDA8A028F85FEC0A6B74019EE18CB7AFD4EFCFBB259AA3104545A64B1B6F226A72065E053FDDD950096E8A7FAFF0125B4AA880B78C84D02F00421A72942C7D7E36F3D346B4434703FE26D063DC65BA0A9F15CD05021AEFDB4A5FF916FF20BFEB723F90BE1517D49C16DF4C919E9F46C54A508A9D564CC781C2271DC08086ED0265F60AE93D8BDD7D1A6AAB191F3A91A13D7F513A136385D94C83E770972FF7D4602BFB1A95DFC204CC0024CD5AD7EAD3B5D464EFDEE19A01D57AD19EF3E47BE36CDF2913C145B77A144C9457841F5A855FAEB9470BDC69641EDF4A800F20BF88BC5307DE87C5A0CDB7114ED6F18D7638ECF577A406110B2C343C6404C5A4A1E235C50E48C81F60AE78A351080122107DEB5B3E296919881EF977A12F3D5DB6ADDEC4A89E31DC7FCD81F217E31674072C5E199C43A7BACA72D697A3093766BAB7C2DADC817BB26257D032AF358DFBE2CBCFA8C2B87A530323D9EFF5709C2AC3358657A51C13C0F8B55BF17CCB04A29359380208CE79F80DC384EDE6B501CA27E290E51B02321AC77DABA35F297A552E21AD4231298F58C91E56FEFCA7C66D27BBA45ACDBF7B63DC48BFA63A0753C47822B39D11D60F4734B81E7FC8895E1ADF2B7C4A4574EE9C0F4A829806A4A99841E6F836DBB8D6CB007014005140D2C39DA195E9429A23B889ACC8223104125C68DE0E79CE6886BC06ACE7479CC99B3CDA6F568FD8A02329055EC10DAFA1AE57E09EB6D54A9EE3444B73F38D2E6B8224F7D7B2C80C490C28FAFDB2E22A83BAD4D75658DF39F4372C0B9F1C50D284642C303E5D7F54DFD50B5D097E2F1DF300D7B8706461445438FDF83CE2BE35E17CE5DA9E86A843AA24072F2B20C5377841DCA8A45DEB6ACED51B9C95FBB93B2E4D80274142DD1A20139B7E1DA43748F1DECAB315FECD77F74ABC890E6443917052F428FD8A41FC938343A3DB5D89338F2AF43B84E83D7AF389156F88D06FC97658B37B9A6BFB6238108BAA40E9C6ED8A348E2ED58FAF6EE3D3833E4F0AA517CEC9F7D83F5DDF46F88DBDEA230F761544E1A10E0E69517E47F94D7230C0C60371E2A99897EB97D7BA3D8B6931FBE0B3849265C65F1E2B8BD120645BB724A0EA60C2CBB6FE46287387610F139CF5FCB6B0BBB32A44BA4C3B705903DD54CF0EE1933F4D7257FDC4331D7ADA07FBA0B9179FAF1FE3C8F4F9B654BC6719AB70F9B36799476EF0C4449F1CAEBBAB550F52041F88F0F4F32A0697FCD0A28B73E26A4D8FBDA826A680C37B3006B059363062AA7B04D561D38170B831C47D656AF0EB7BC00E25CC423FE75DD89BF7527BFF04CA793CFAD973706D5ACB8C4362B4ECB3DEAA59E9ACD999137131A1A324FB43D88D9A9670067507FB95FCD80B29E675093145442BB9499428CE0CD635D997924AC4C38C5A21C452E5A399AA1BA6CA0050A0E13CD6C612E9E7282BA21C4DBA82F4C65D6A6E0A5D616AE2608C804D463BE286F73526E70719EA9DCB16790B31A6AB7087DC60DBC370078BD1C56219CD548BFF20163B8568056EC6DDB1EACAC12C873DCEA792BE7B6CFC7D792FD57808FCACC0C32684DE298E6EB382C0CC03D6E6AEFF28EAA92F028757D27C4809614AE4372293CE517CFAFB94D6C49EE963D2B887CE13EE6994E56BF47C7927058D1FF0DE5C7DDE04F6148F8B0694FB6D99DCC4F84417EF371F76638B4BAF8B83CD7810116DA648B202DDD928C91B0DF5E9D4D1D830AFDA050397AC882E315F809374C7FCF31D9D011F367F0AFE7B0D05FD0330C3EBBF0B5003635D007461B155911D26F93CFE7822B509B7149771979FABC066E73B5B959187FD903C4E0960A5C748358F7CD0A86D44F58B53CB53B37C47558E1253440250D0CEDF6E19F9EB8C341DCA787E05E1E7BE7FE2DC244E2B5F915BE5EF2CC789DD77F8816D1D29CDFF437F4D6C76BB0F99D395B66EBAC0F8BC4414260B5AB7AA5C430B330A4B325A725B709DE25BAD74D3A08F6F7F76C76001AA207C54A83EDDC4368A0585EFA3C5439CCF0BDF11F8874FF7A196A1703004714015D28DB1BF8A626CEA8E9439A0919FE802B5CA19F3A4C1BE83F0ED3EBEE4A03A3A438DE157EED40FBD96C379CCFDAB89FA5FBFE123F10D552CBCB3CDC055AC854E52D5198BE1C745A79ACC57660C22105A786C8E1349CCBD5A7A76F115A7DD98F16308661E2AB3842AB455D11BC3D16658CFF8C4E128E36BC8912461F883B29164E984F8808DE92AC0AAB4CC3C8D966B365312A6B525E421780FE0434FACD08E09FC65CC84B8B21E42FA7115BB5A1FE4CF3FF75133BFF1A437BF2087F7E31C7D7C3782BB75419DB512DFFA88297B50C4BB234435A301489A066FBF12A6581F634EA9E219C3805CBB63F9ECF1A47BD4A1E5731CDDB28CF8C0C40F8FFC2CF7290503A22F4B118A7ABDF6E5FC44C6DFAAB37C8E3304A10D601AADA7228029397B58DF0443C155AA2AFCD634E505BE5B1CBA8EAE7373C5A933E429CE58F8C520897A98D6FB3D4A + +seed: 1A1520478204D8CA028FB48EFD49367A562F66452E43B305118C85B4444675A8 +pub: 842770BC8569EF9B4564D078EEB6270114392348DE1AA90FF94B56976D15AB3E1836BE3233AF866B20CC02AAA8D87FCD7FEE1326D80FF94E2DE3A72AE84AF0FD92016765BF45634B405DECC316B73502E31674F8FEE147801679DBE2FAC60774795788B5125266762E8BCB71AB672119CCBED4EE4C5DC5429D98A6A6AA102A79F245752044F2C74992B08329D30A6B51A12A9B5B36CD00DDDFDB5DAEE56EEF87CF31CFB0BFBF4C51F1150DF8209A85231B9F3A22E12F64F27AFACBAA0141207D452C53E0CCDBC6CC09F3B4A2F1264500668971383AE96441FE2C4ED0DCAA91ED7C2452F1826EFEB2421BB1B336C7707B6BF68F8BC603CA56883E437B5075DEDE9B50C094A51C6E47B3D06FB25F5369480AE7BEE9C3D9635D684E563C50329E1D32A6CAB3AA491B53E6D48BEA9C140C14BE3AC917475ED7FDA2593883B6EB71C950651F2A82D16F446B58CAE9709C700C2AB622D824A425785DA8799FBF875CFFBB5F55AF583378D624DF7B21A97A241130C0F18EA8B4921FC70542CE3DB20E6730FDF6629566E2656F84B4C96E6F021270A248E31E9B718B08B47D2C42558793E148FF4548A09A091592F6A57D8D0242A8C2B0EB3EFA26E477D9B530D091EB884B2B720D9DE025D9C0D0E4CE5961CF59C550BF62FCD7BD659A3631159C2F0FF4DB34E64A2C3E13B6D48EF5E420444B95655A0EECCF6A8E898305D6C9C117F4EDB5772415C0A005A1CA40BE58FBA18059BB10E25E2F483E3B58B2C59EA4794A07B493555AD4A555FC253C8019AF81DB432AB4624A59C4004A9BDEE75C91CC41A20401965BABC0C55992F87F538F9ABB80EA4C91CCC954A3E2BFCDFFBE8D22B9754C8535F0F642810B2DD2ED3ECBB2BDEC3243E6D1CE1B489BF6C0BE50B8316D0045FFF424F49961157BF6853E1F902A3B118DD650C529C603E9438463204F7DA7F489CE50F7A77157346AFFE9BE973DCA0AE076B2DF85AADB46DDDB57302F92C28BB77890A0F50B9D74E12AFBE40FB386D08B394AF62AD94C0538AA7A77A7422167604E9AA9CC7C08B443A25F850B093AAE707D883FCCAD208B7D991A9C0465BEFEA4865B6A267427A7F2D02861EDD8BD6E72962EAA6D2578FD45A27036F5E9EB6631EF5ABE2084AAC7AFE8930DF7834F4B13DCCEFAF45A632E7783852CFE5FFFF87ED126155D3EE0D40CA5F2E76E1BF47FA91BC450602584301A7E8B20E78DA1290AA8700BC6F0863053D0558A35DA679286CC974BAD7337FF1B8BD169CDD3C15A17ACC02201D536869C6FB56AD8D3CC0E3BC86816E94A7C07F220D03A12C86B77C13FE2F03F455A5EB3339FC709DB02F89DED1D43967495C75DE8FB8A4F37F458159842FD69C3E1AFF691C3FDBA87027603D5B99B2ECAF26752A115B0AD623CB527A82F6AEEA016F75FA381B2325C7BC4370357C2D53FC27BD2DBB6B81FE1522533016861F1DEB34B78F3F76E12D30F4C674FFD86EF1607309ABB3F015A9E81E4E292F41EF0FDD97E81565C546E4A8A2336408A1E6F7A7BF878F352338E18A428FAC3CFC7DF4F9013678CDBCEB12FDBDA4FAC1144DFD42CFEC6EBD951555698732835B701B6895C0383CE71B07ADF320893C7CF3A50F3D067EB9BFE93F4994388DDD99928EFF959C6C1A78B3474F8311938F6D8E488BB45CC72FECAA84224E5A9D9693FCD8486F78385B81DC192B2126E8729DFA640CEFF389CBD01304801B56B23E3CD64F32982EC8AEAF6D1BF875B97A07CE44F342FD351188E9798E59EAF1BB3F80B710D732992323780EDEF912CD529391ADB9C4C7900A3B5D34CAD48C14C49AC3CE951EA8DB4E944E8DDD5E83BB2EE3444B165C56FB6DA01F5CA9BE7A7D2FF84B085D8939B3B17C6DDB32D117E1B0AFF70C9B6C7FC29264A709A92B216B8C62C29434C876A12F7F44F1D27D58F7A5F7707B6CE80A538D05C40FD23572B9AA2DF9C6C271296E0A6D9078F42BAEF55C62809E8FD044C898873EDD2299216571F832DDB7C5DF718C4270ADBACF6D5EB3C5390418F561A2ECB4CF28E24A082387CC373C3A59CE2FB294E1E547BE587E65D8045A1AD8F58936FB2BB7776CDC4794E40A11DBB22B9EE9FB06AEF118FB9A72A7B710C1AEB4761034BF4AF7042989B600B4EC8D6DCE81184B2D6FC27FD97BA2ECA40EA85FE3006566BE60CE8674CEEB9493323AB6561FEABE98373FD7B45674C8161B16F147001B1A2FF74DC51A0A15AC87F3CE086BA134BC3579FEB31625C07F698533BADD414E9A8CD0DBD21E0678E2ECD7356609FFD4E96ED65C3BB6E917C6911477986665BC9D3BC2FFD480B5624C143E09FFCF5EA8433411DE214990BB6A452391C1586C37D6AFF7941B686D564AEBBAEC3F704E4EF03968999EFE95493368853458A40266CB1B1F1C3E0249D816CFF02C42980A73CAFCD929AA9536D8AF31B5F9AFD0E323C3E174AEBA0EA50F9DB0FC04E270EDC19249D65AF12A09F133A02913388B386AA897A7D4F4BDCD3F90B3282FB48DB6EBBFB21257644DF17C58E57A150E36F78F802CB0F05FCA557D5A77821CC74A0B5D9F76E0D5A9B63AEAFFA3869EF79CF2F2A139CB07E245E9A5AE90037FBCE24CE4B076D4795224C2AA886E423785E0E9B014D4A7FFB688BDA6219DE7CCE223762EBC9A48830A4B935D0F4D9768F84F7247E896015063AAAFC1A613F575458043420E2E5650043D230F06B6A78D093B660A26573A645C1BDC900A01B8CFF95BCF5A2DB23A69A69179681F550E04C324A48BC52E92DA43EE0 +priv: 842770BC8569EF9B4564D078EEB6270114392348DE1AA90FF94B56976D15AB3E71C7A10C110A218599985787FF89F74BC94F14CEED203C92F76B5D67C5B8B6796B86718BE88A979951E9AF1ECC344FB99232411F87888F3FBE77FEFB6626DCF784DB0C7EC04A3261153E64729255E5CE6B894CBB1085A600E4BB0B03317F8886231702201058730723376188778513655812720172542417247143646428467073443314821558505445472081234686830274636170123228128315700625348670708056866251602156687542664438717868470378622443800377346336674542226381071034445030257183710411707658015133175365315628308222508432565388880836567878400317604235388313286765740235347182434457158814480762440746180380258134310686500677042318457626156280488882282674122811574762127248672012054076701118281460302420147013883802514645737522146600613056240136251846755266808132084387728784208687387732824316004177161457846583175562587327431712865534241213236603884536300716533078315626426655820641212230038185751644338668423426326635871105864138063716425330034814786417767388845064650681757471566615121140773133884856204744373720784387445647085255465817762845160020133010878367040062383084562467661733017263525738783274220670582858510453422721212564255311404704722055575627231518700445822334550788684185480667112556485545130470664356488815156248663062318887582478736241505814413368843465478500161842054157741700704620375746677448687646640465602446038662064506232040688488545875504681671327453411777175183001230743263842058632518307126387382745311055143874741412652558685470007145300836667478266765746720400414877053756562543853638554022055767416327752773186204257730441432226483061516523786268418417712485468645471672265731856455178786356443681803602068235327538110083351515556343615860803101225335447663035673464647078555401071381357720555132331165637465300650732644127750530363550200566217756741351568334658823132266106657664531167085175005811475037652261325817387606338288620565380266463665550880676743051820742216586384231472841757814014150130847064753035562530164461378674013218167481421451275114210804288236311323672003873724375163251155154108303660515386682522367768687520216231844201453516302058387034720361772125260457738774237645072531304857314868085873347454730385585338757726430656643873504153136638132646508716410685703137771500478115462036447706678642871630833317150172751226273671655845870784214880067160103258382278756008163457685251154205335015838270738631741007511261313311742713137207824551084847527852768414008530840523524707832357752407838621837744764534808245473201313077736628712454463573282036047606177628356273553851122846857773665077638871445056113471408877065460343677241566065401740402885336200350816455438826025210267242615477370212156817586755010774300244226438052721318725583862702644650137844613448618726312407205277538504854674606264472087585650666470602431007157683533714105566221537353610384157440670683218006615808544110058801184806484305030012037257405731613708843171027163255001108804531421323638770136218052673025686322362266664828487564412206143775215655602403825841434121722386033731087561201120571426628221551541811228681254526288715703202548412644DDC673FE876BF31B6D62AA38B221921675EBFCA9AA50D8C0717D3FF935281266A40B58D839659D70D618AF9961C2F09DFEF7FFFD9DC74FABDCBA2BECC333FEB52599A3F8B570E6DDA5FD6FE6502B04C560A1CD59AE5C67EFED02291FE2A2B190C226EFB19D5871371D5DE58883D163437507226F54E01AA46AD228F395AB023F66A866AE5DA63D9DF0B66314B5223802B27DF610449449A29851565467C348740D53D1ED8E4E0C36A4F422079704C39702CA65AB322A370379733AC070C30BADB277E629CAE8175504EC40F52C12D6C6B2B0CD641158CFF4526973827AD68D7729E26A56DFAFF82831D8EECC3DC1B296E2956C7F7848CD3C70FD67F4AC16405AAAB4D4C78A1FCF2646D7F763D6F295F0D35095C4A3A2E83A86CA83D9E24EA38EE2C8667804AA73D369C5FA0EB148ABD763D5E04E16D7179343FDE380715F87B2F5C1D96CA406D412E0371B9C5662BFAC94821D3FB1246FCB77A7FA9232C9F3972B0484DAF748CE475AC1FB2339686348B6BC674FB7ED3E4E6A6C92A480C839D153BE71AA61B23DC004E22D7D1C6E1BB696565DEA94CD434E458D3580E1847DA39BB228D13822695850C73464EE3E88C9209ACB603F2097504FFE662B0B20B8B27138DD27E0B338A37045A93DA327D7EC4F28BBEC8415CD0A5BE2D0A95C67DE588A539521C11FE14346FD714F4B51F07CB6E7CF466F8B1D979A2362E08F1F49F5621D6AC52917151E61ABADB7E2BFC10A6CC96664CC0335BDAE35DF198CC44ED61B282B69C7A1B3FB71DEE7B3E053B7193170A768601978DD4A8DB92805E3C8778AD770CB7D94098E4EB999C16F4FE59552A3073C194251179A81BF3BDFB6547DA36D70F46FAF467BB216DA5074E8FE7AB595D495A20FC5A0210D6D0D660DA3F716EA06BE4C56CFF576CCC2328EDAA460E37103A7B03ED2A867B1A454A9C667C1D01F132F2348ACD9B8A7C4B18FB1A2C64C2EB54E3EC265C864B922AC2B1AAB30E7125E5F6EC16F37D63C720BB320C40B12A39E4259C9FDA98C37ECEB212714055E0BE07F85E39FC4679B9F7DD1FF402E7E6F97CACB1D2548E8C469C0EB5C25A98693AA70813BBA53B351463FFFD5801AF39E58F8490665D4133EF03FE83ED3B6AAB0E2BECF0BA18A66B6401308FDF1720D03005A94B4C2E319BD76AC95ABABACF9B26EA783A231B444CECBC8C55CE98A038983BE9439158FEACC518CD113C27DE1F901E43BC060D7A32AF33224639DC2A2A0CCC60B31721F44961DD64B81E1EC48852D0CC0A784B23179EF02BFE135790AB578B473F95EBA1679E48679C0EF848DAEEFFDA4C1310F0BC23E4AB154DE62FA80727341622E0E77062F52D4586BDF4AF660D067727EBB7B050FECB835F2C6AB3D2C8D758AA6EC45AC79845C62F92759306FD1D9B97411A1907BE21EF244651A9B22F196E59F21567F9988C8021B85B7C981E60105F725AF1089719F039F6EB31FDE133E783F085CD5683C22EE3E70A5C0593C500CEF37888797874DF0A3DF2440F1F8898253D477CB53431DD42DDD25DB96CD6193AF62C6E3B69EB0C73BC449BD7CED979451937249C05502BD32CE73818794484190D3570D3C3495A46144884E1D0683266EEE8857ABA5853BBB5A0F222815EEF93B2F471D2054727238F19383D29827FF65A093E1EFB0B14141CE90391E8A6CB166F200B6C763DC6FE3E5A1BEEA03DE341277465F89D78FC1399BC92D4EA0D5D62CEBCF1876BF37A137B8229CF0183C835FE9DFA73B7239E6342D0078A247908EAF1252A1065A60CFCEB37492E9F524CC408607EA865B361DA0AD206E2C9D4D4CCDFF50F9F63D3706C9163B1055693EF2D9BDE961BA85994C304047EECA80646FD81F8FD46CC44863457DAA860EFDE929A491989C80E6ADFC794850EEF0A0C01D343974C407DD514CC66050BD439F9053F663C4B4CC486F3F11973C161E532E5D8E9AEE1CEFDE8E5CBE1A80D1D8C436544AEED490A664FD8F91B6FBA3077334637FEA2E549E64281F306178F9E1A8F56ECD758F95F94DC952E38D78F92837B99472A13F677E6B5AF3EF6A6CE2E9AA54C622941CF98F938D79B78355F3AC80CFCD0647C0C1E1DBB4B04F5688E1D5E0F4D30655C85515DFCB1C49EA1DD2D7FD441B7845E60369A9D73FF79DB6C183CE9AF44265B450F076E73D089D8AC083D237CDBA4A715D33F03E8EAD25B4120148B36C63F2296D9DB09D017C946A265CDCAD3263E72DEB0473ECED20E9E3FDE02CD2DEFC2A166978EE2B01E4EC75F1A32E96B24958F1DA8F0A3193F6E0200F4AFD59ED941909EF3D5D041B1D1AA1B1ED79280A82604AAC11F8EA04EB14EB8B0D4A06FAF2FC99D2A5CCBC5A759500CF648A1A67A60F10CC7CD0B6B5A4BCCBC7622D9ECD7FF83E1599343A22085BB4A11DA0446B22C668078D5211F5DE6EAD9272165A631BBA60FCABFEDE47AAEC562970DC24F7946C279BC0E9312DC6B74BFD311E24C18FBD011D59853967DB754B17FF0AF52F6F1B602EB0DF2C2880E47EC87DCA35AA46F7E6604D2BFCBF71166EF6160ED38C70AC14AEB97E39FB97692B118A6E18B692FF6AB91D196A4E718C60C2558CB5CB658AD4E5FFBD90278B3169512B5EB12FCBF21563249699C8F2DF7BEE98264901605C1820E1DAC4D6D626F4C5CC06A05CD6DFCB538B06C0634F5E147F555CC54BA7AF371F70978FA3501F069C481F43933A979822D2A79104C1DEAAA9363A520475E2CCF6321F0F123E3AFCFFEE327A0F59883C17FC1D3EB5FE330AF9E981A3B895A78FB31FABC1091575E189705B0B27B04E05EB9EA6D05A6AA7C6D32436AD27AD9F4096DFC6EBB2E85D4449E308835A4B49349EF96B0AC82CCC6730E1429AF80DD8D5E0B84BF3F841ED609E898F906E1B09753FA0E0A5AF43952C84B400D6EF09F7CFB78C430D6BAB17FFCECCA98DEBC078236FB65944AE95B34CA33D7AB27DBAABF52ECB3123A8278C2142FF7DC357FB491D7BDDCD3CA4284D949D1EFE905F02A01DD44620A9A0112CB78214057F6F0711755814EE3C596EFD7230824BDBAB540445010AD16DDF5FA0EFC4B5D90F2AC2F57CB1F88515A9977724C643737B472619278BC747BCE1877C041FA8BD3027B56D7F4C826B75681BB146E2D42C4E8F205EE779929D74C419B1A309B9B53A2F7100355894CBE365561FF62FE3F0F0E9079B37BFC52E1198DD26471B7A6450AF9FA64DC9A070612C1650C9805D3F7336BEEF26FBE686A9A5314E0EBBE82E5F80C6D596D145B9B3840063A7FBC04D3A2945B483CA721B90CA75DBC79191A1FCDEDDDB499A96A0737556A2B6EF536653632A92FAE2C6106F069FF829F2CCF8FCE667AE7D617C9F245AAA18B60A57103F6AEB0E225971AEBF3D9A5D63866502DB16CCE4326C5B544B604145EE44522988614A6F92AC10FDA5D064413EED3B14CD9D410BA73FD59599C59475201044982DC6617AF7A00010F99614272B18CACF644BE0126C1840ADD2ABC4D20CBF39212379BE93C6AF8B1978E69C41C514FF528B6E3BAEDE9E8817C479EAD + +seed: C2B63699D7C013E2D0C3A6A5D79CB60122B8C8574694975F4D703D75035DDD6D +pub: 919F02200622095E1406B0D36B1A90A3702302AD0637553809B0A3B8FD3B1DCD170667CD085153D0943CD38A3D1DBF3D912FF53FBE702635789C4DAE8F6BC6750483D1554E30AB38AC6C796B7E838B39CEE22570048BA090BDAD7A851C95BBE48A564FEF34D9F72C88BD7223ADD4FFB1577F0A24FD5DE75289710830695932FC0F619A7E0E41B26436E26F277C8C1A6320460444EE13363A353C003B8D4DEC547FB6B5D054382927984E791C9A718566AA78C04C744FC587AD18F55157D269554A5EBC1FE0A876FA2B1ED8BAA686625A99DE374B93B300EA39571116A9F7C82AA6B96CFD98F8891CCD2B7B8854C3EC1145D9A069F0BCF0D34F9DBCDE3DB51B2E87AAFED50E92F8D4DED20C5F7986BC99C0A0780ACA994D56D867A10890BE4A89548BE3E790FE52951AF0860FE66B8665802D9DA9AAF1F32B2E37CB3CA788A11F842C851AD20DBA6EBCD90CD27377FE75D3972A07FBB99CAB3ED4EF317B6A43DF763A70A5F6C23B5C5EE6E0F104EFB6C57B338FACAE6C0C437EFC90D5BA12C0146CA119284686D863B5B35470E620025AD064673C0CEE9839D9E047B78450C4882BBD36FA17E4DDE53AFCCA9527EE9F3B1A5A99C65128EC41F3ECE1B3782C20AB53F2860F472C31D04206AE73E8C9A43AE565DF540CDFAC9B7B267723D324678D11BC421F3D724CD2439762CA45E0E66E06DF3FD2D218CB2B35848806881266E3AF9685FB1487D81B39EA53A90F449693F7D4C942255B3621AF43B46E928E0CCC4052432D1066AFB4D03C6BC118740A2056044896A2C6460D0FEFD7E5C9E19B2426BC4423DE45F9F698BD5A803178AADE9AABF9D3E9A01377C299820C4F61A2341FA1BC5321FF5E80F9D1A99D7475C8B78B851DA80167AB21B815D4EE09FD51A2C7FE400914D2FCB2455AA43B96154B27D6164D0A48AE97F5AF447444A15F0228D31C2655241C98AAC48719EEED2DFE0A766C6E199699DB26CA099BF1943359D8AE608576D33937992A268CF6490755D79C1B6A14F494C2CAD7FA3908F9222C786E4776AB984BB7F77B0C892D806C867EFBDA69FF21BF473223067FF55913BC844C2CA71790428BC00EEE3D60F1ADD02ED9E27C631D3FFC6AB6A0D381DB59A82BD9C0FB751AA0AA3E12399C0B04195A852EA5294C27A31D9080B0565812F829A8E9F4D112E29ACC735152FBE32DB5A47A9B519B01D392BB1DA7C9A856E3CD9B1F9F462F8990C7668F289F7B03FA92F443BF11A4494E18582B0A778548D193810EFFCB0DDBCBE9DD02683B9A9BB231187D5955E04AF986A3448DE0A377887E987F7BAEB025EB273739EB77E88DB7B7855444C6CCF9F6343F30AD4D53D7B2A4923265292DB0D1D0BF85AB199D7A6FE544541B66544CBEBA4518BA5F47A7264FF66CFA2BA8874135B4EB23E094A61A1D3AFC3CE418CA9CF97A4B08C512C6C1B6B50FD6B393C278405AA5091B54F12B576FE0499369E90BA685EA7D5AF915485F5A93A721A342D999C985FC32C6E2D1E43D4CE319A8C907874B807182B5E0F0794338E851B21543ECDE72080FA348FF7CB9855819F905880C9DE0081B149B9D74169D0881C37E89E4874E6D8D665BAC4DEC61D3200F4C7B88CAD336449E0B2FF4E46961685645347280BE9EC144ECFB60441A3249CE8C9444ED17BDA3803F075660AD88296DB499C54C17934DFB76E1B1557D03BB14106960A0F2357832B314478F694EAE1829D53CF696A7200AA667D488C85D4CD25A4669ABB2F69B3CAA7382F99A1A73E75C48994D00CE8A9E844E4A9D74301F8138A765B48980BA5605221C3646867A19A02D3060AED73858BBB4DB5B21FD9C03BC670A61774CD447F55DA763001D56B5121FA9AF4AB04E7CABA5A34FA17A40A696E11C40FCD4C9091A61006D7A0790F0384ABCB8EC3A00C882BFA11058CFF423E43E0645D20F5603D116BB3DDEAC4FC27165D7D5387EA0EAA963BA3FCD28BBDA753053607C9D76BB2977E7E15695A4E922F348522C3DF49D789281BD70A39DB9718AA259997A3A5C9C7BDD7FBDE7078792CE4909CA2EFB7ED0FCBAAE72C48AE021C0952E5EF7E569A2E12DF64974A2C0AF1DCCD4DD9CC1576E1F630CD8F8E60BD5566DE711BC40EEA8358C025984DAFCDE3838FD0348AC1D5D7F4513F20AC862EF322AC22C2E1D6D238631C5048522C1C5464BA55F9FF4C1DC8132CA7C3245D540374ED191CA00CC43BAE8FC824E18D83E481374E43FB19C9EB861F9CCAFB005C009525D5024C47100580D5EC7919DDB28972B0988B4B0B408A75537B424318C0E706BA8A4EDB0A13730D6232FB1A5555AE54760CDDE6E1344476774507E414690DA8443FCCEA1C1EBD5C47A96FE2C1FCB69E7D377E359C43F2571256E7ADB761483F3D814D96C1AE16B242E91BF78AF86F8EC9485B5A1762ACE803C64305C57D0897F4A059778A1E9D6CF18352BACFC47C57ACBB1AE6E04E27E83C0FE3875F5E245F04E983DB085A3710FCA645533B87F8E3ECF3A1A01B8FB88FDA78F4F20CBAC99F71CE4C50A829112DD9A5C27F4191145A514FA8894467704CF58CE847D5212E5A0ABC0C2A54C8CA4416C3B99FD5DDE80FE85276F166E017BA7B73DBC33CA68D681694C93A495FE42A5C463C7F0F920AEA1209A5CBFBE2D1CA7F5C2A00DD79E5C4F511031B5F4503565D5F3A7FA9BE4FE244CAB01E9A3F0D432A58A8FF902C7EC52D6D5956D57DE83642E4CB86299406C408A69EDEFB75C73526CB5DA5DC9C726CAF4A67841E2EE89EE84B2 +priv: 919F02200622095E1406B0D36B1A90A3702302AD0637553809B0A3B8FD3B1DCDD6098D72264E7D6D4D2526269ECD818BFAD40D6E450F1CAED968E46DD015BF860C64F11F1C8B68B0A93E3A587B4A7B668405275BA0E02F7A9B9ED5C2A3A07D58638B2F079D879E4A963A71E48AA6A1AD48A53FB6975BE80A87EDA3DC2C45E3E2535347252511162373444883864234312171761112443113274541262551337205657337562142564641810327758354632066283246026032660562804546204201032100470857008704485318757233871080537100440075887712430860310035716105637805207148726226407183117674134077685281072455240143304525435254517217271628230002881303005708644321451536774560055002568231011653601844825336871747306308225147337254564776486761652475071243277768387525351423682277653676710247471164822022210263745461742764530838303826607831325346722787012407686084857676626567311027633317684127048724810304183188573153261558525367337033801513347178210115184560288328727438522687047476323872420601657314862574234236007814048147752447545347484058034681872780107524724278612143027328675538021258766156243708623415106424264857207356713470438274025516222771841842254336038556352053512561056210538731218660581146781731417410102603685057454531087820334516527768741004147848406586028810822338421580355365452504827026415403608881208676827215416335512862313241750784333244556575172312606561322356524231667412531172858170544156587437378562074674811724802217158383553162701447171412448374380216533350052350232168585430430038546666427434215210776566432862887475236726102445460355684288760664335323010118554183206073738163224141810160528738375535763352866840268340018558752747872223772826467564754525856800736608302314355680585125466035281342871425278510600680607610868737872577318456358351064687712720078162564728847764466144165122526208337786674382106466856735504105256432573426072255878810568204077874201326268870137766250031860247320056725710627478252872153077206662734770617680505174037136271378240535272306826168630171048300027443113217376461110152053250267224762485262338638447582146463383730585507550657233653638216033427160072055538301436882311630532018878501457673434108006610310811853163472486135380248156020871742778818010634356287622737627032567085008145130063600135307373066250323073525614304006334526265375820448468046114113141828615350121800562146785177371376766480605223276434131846634530460107814758043353551835534481112537700631102252224444448644311222281052385284857636008820160843864850064545034076558382755214271046680842130583103778217641677217787005862414285106751001024270630427040075517615787225164836210742813206221343126760806276705656662837772503318234073411728338565231372213525857540671013027723486135138826824336244204230151581264235632588644223333771521856662577177028188663150465003874131033684300235477368611231125344672380206712007222430300558053788063326274337621554730280578778138875722058258442357632740701132645843862338815650446440677274306103004233323287706324404276838811203068132048447336288350384168670840521354057564146760626677354826831558367781860451050315725567188201475818213440704580241507306186380161351432371542176271552136705726572162781943A096ADF0AF810187F7FFBE7E1889300AA1174F9E6D0A86989C07D14BEBA934B88A1C1BF040A0F417BFC476AB1F88F58608609DE882E23EAA30B70720422BB19F8FA49F47AAB5FFAEBC8943FF6D379F0FE8B6F8D3501621A2C550BCCAB4DFDA85773097690AA34B1D5629CC72BAF11DAFC173B3EF79BF07E7F227876BEE79911241664D127C56B89E0CF0F0CE2682616BA0E0712FB4BD025C744812CB0EFCCA37BD57B0CA6E732B2E507921F6B763F398E0418AED1257A75DA7BBA0BC52D3179CC3D35079702DC9E4A96A384D7D6C0056F0EB8B0C5974EDD43EA0ACFBE53C5F7198C4F7DDB2B5D07544BAAED6E8DC14FD14CD723B4E90EE80649EDDB402375DF04111BDACC8BA98775E2806773B311BC4D104801590C17AA20046CDD6F28A44536E6174EED2D0AD4041B5617AA9395712031F1227646AFEABE17C43EEC78154EF0D5E890EC372CF314079E80C6C680529422C82E4E74C8BB35BE3AD04C4FF6045067E3C2E4FC1055E68C8BA0FC55F21DE15F50E46EE5A455865B48A41B44205A01ED6509994BD7FC9A0237323EE302ACEA0152355BD7EBA6350FE80314C9B6D30FEB4B5AF6AC0DF133733C5345A5B2EB5DB77A401F4135EC523F95F13D109B42C4FC3B8C824BD0D11BE7A6B5A74B70E24605914E4AE44FBFF0F14AC56E75A8347DFCED9B1CC22E2F6CFC1A72F444653AF7ABD1170774DE8BCA0F7D8B80390CB8ACA45EF671CC467A674B3C1B212F41F029E492FAEED1749AF0E57F3F513DA2A43DDD5A39DE2396C3EE779507A3E7C99BB1B101260B60354553C8142225AC393F633E1880EF686D3DE4AB903BABCAAA27109949BE89045D4FE4341EF15B833FB0C1DF7B49BDC3C949687305952B4BA446059D168C4218DA3748D88713A49A14467D38C668987B461EAD58934B0FB8ED1B92019E10E511A1A2B302A880570DF72B3903780B281C17DFBA7B9D1448A81219A5212E228B58B9EE6B73A28ABA81006AB7C31BCC56D3E7C9C5E8F1E1FE1D62FB61E1B26121456A909B9516D01230F4B841189FBE50DF83937057F038E4CBE75D347EF024CDBE00BD73F9680A36B7BB26640C49570F6DB11AA917145D14C56091D0585FD6D42DB68B8BB5EBCA9B555364737C8AD68DD72BE29608324E651766B1A6936F8C8B42D902ED712E3EDC6F6B5E5A07D4C2B65033958C4102A0B5A6251C27E2CB6DB3A0F246E0D7AE6EF8BC1027E91B705A674F9690A73CC2D5396726C977E15DAE96859A01F1CF0133138F043403CBBFDF079FEE2C0E345C598258BB03BC9D77DB0C5743D56F702D9031FB3254BEF6A141FC529F09F1FFCE797A5D343FAAB8854DB3B88EA42DFD2AF8F463CBD6F7733A221C528634FF3BCEAC7DADA963FE6BFC671527AE0D117ACF1127580B55E5C4B9FD980528242341283D20BFC220FB3F89B5710AACC60F9353FD31FFCDCFCA6F5B1CC594E9F8FD0F3E9349CEAE2B25955A7B5EFF5606D0E54ABA830B29BB257AD63C94962F167F32C174B3FF9BCD0DB1B97ED070A3C81519F65DA57E526DED042488C0DDC4B4746754564A0022592DA6F25023F086BEA4A9ABF5023BBD53F193C949A455F1EA061A8DA38D93FCF0A41781E46E91CEEB1287A7A9CFBCEB62C38792FBB967268365E9D6469FC18FE2D2E0CA4C5DA62A0FE4B8E58A7AD31F2617E5377EA66768AC3AF8AA6973F36747320CEDDD50B687B314E4345105248F2B9B1B9451C909B7197556225A56030833FEA15F1B9A088450D8DDFDBBF073481F50795F5CB9CA2B8E1BA02A02657718D823EB37499824CB0830FC6368AD6793EA27D171E7F1351AA04D86652E738140B707B17C7548F9800EF75B2640DA5DDDB88D34E9AB788239F37E6E4D5F7BDEDA86A1A35514C022C24107248D15C2B07E1CFCC7C2F239BE83C585F7485DF3D893E99A7D6A8A6C4E58F5F8D049571BD45506C6B64B02BCD3F778A652DBD5745CDF4415C524E29BE7E00AD3AF934366C3E90B7C7E987F6DF87498525206027AB905ED56CAC425C3F89F676B1CDD1E1E44ECA7E0E2868B58A81ED88AF0673DE18E22C2C58B4540D03A51D5740A5AC058DB3BD115A45AD77EB66AAD1AFD01BDF61E7A81946F0B52AE30ACF0FF545A4574F6B8383C041BCDF1B358C2E40AF9A98B31996D5EB214F047355C59DDF6CDC74E1ECC931BA3814E2854AEC822EF6B9F7B22FBA347E340A629CF0E49AD22513BB390F88BEB7993F240D8A0B6DAB823ED3F13A05B392B22712B20332E876D14C51FD09F2158833F9A7DC653605CF7E77AF15BAC2D1FE6455DDC105AB28FEC90B142297984F0398D5D5C6678977850A87CA0977B94D0E8DD2FE094EC00CA615A13E7CA73EE2632EF460BC06F3480E214263F8C3D22AC12153BF2D5670C87DF4548521F1FF527CBF044C01156B3FED897059D5EC24659F50210BA483D0828CE8E4BBF64E06739B04AE712E89439EE16EF5056082C45DCDCFDF008A4CB806749036A05209101FACD435E456A0339862485335B7C0AD0EE13312E18EC8E9FEEEA48B8C2F1BC07FF9911255C0B1A9836DF57B14A8AE166B3624CBC71C4B9F5BA0652C4029CE365AA6EA990B032957B26D02932C2325A3A956051D5BCEF413B0DE3FB94E89797855270D27A2381BA1039942F59A2675E4E645B672FEC30AB3B73F2495C27A47EE3EBC400ABB1CB54FF15F934FE8B791FE3F3A228424222B88D8E676F8158A5F39034417249EF1CF70CB94B7FCCAC8303DC229E6187B2E1B0B04701D9DFBD4ADA26F766EF6A89AD54906A608A973D5F72C189A2BAB4993862FDD7B54E24E8E249E6F0336207B754396D1E508943DA1329BA186A366376F653A0CA2D4092228E1D82B094F7D96CABB71673533F51CECA70263744D54E945FA027F2577343DCDE29ED6B1820AC47BB5BE66A9018A5BA9277598267390B5B63423C6C8D6211F037E841AFFB719B35275826B98DC9A06EB64195376161AAF7E34E1767367F42E25457CF6843A6D5263F62124A7C76B8898A90578FA477883776E799B822D5F595F2F7169B76FA211C48B7A8169AD4C7EBCA7D967A7B48E77DB51D3FAA346753970D50E5DF88A65AD8E319666A553A68F4CB529BE3585400211BBC4496DBE5B0BC75A7C5079FBB3DBB6946D911361D69679AF4BCFC8296928A4D5FE3FE21BF0D0EE246259331BC7C1558FBCFD53741B4680D80AA34F67E1011BCD4B27A7B9C6FA6A90FBD916EECAAA000AB00FFF4A933273EEBBC587AEF3C7B2E172EF16087F6ADEF740FD12C30FF23D2E78D9FD36C74739C86AB3F1258C8C04D66DC611092EB653A7661B28B2785AA6A9A9EEED2E33D857926DE535FF13A6A8750E6013AFEC7A25CB85D35CFE4C39B79E767CB6A0406ED3DB06B5942B9BF364E1A1BB13E69DEB759A0D0FB49830886D5DFAF405741C073FE3D6DD3AFD4D4F8282B6C04C89ABD1BAB8A2E67E1BA0005861A5D06AB2BFC4B674A0985C4145075FA34A69036EB7C23333E986963590BDDC8A849606A173AB3002DFEB4268D26391D55ACB0FD16191AD78 + +seed: 821ACBFE29F941CD0F02D6BDC0112688B212D5C925AC08FAACC248E7510CF88F +pub: FD5109D8F14AB2D879B5147687B0F8B89FF635D61BE11E0F7542BA19D611758B17B5A84B76C1B3E7ED0C4C857A0C27F3DDABA85382A3B84768185346EDB47C3DEF01B18C78A91BF46B2D8BE7DDBEA67AA746CA879FD71BAF265AE6F3A9C977C055C678365FC92BF8AA042D197A5F9BED4FCB58AEA2B65FECDBDD93E2AB456510A65332E08233C0672E9213B7124820567264C5D12A5A996A595440AB364F4AED75B98A77838C8E4E98CB0F53BB9D44115BB69F02957725BC11050CFDF0930F82E45EAC8F709FC805683CD81DAB07A6B6FD3E44EA3251BB67D0EDBC895CC9A3794D240815B8618EE49EAA29D7FBC6013DADBFF2A48837B4084BD6E8A7D522058F5BDC77F378B3F76D483FB4C9D99856843C639B3ED99AE06537630E7ADFCEE1A7D3D9E44E4464F79F9ACFE32C384744DEED50057FE32028C9B2A7B84086EBE6545E619521DFCB6FC02B90F00ED8769497531AA39477C3AF9DC8E2BF9C51FD329ADEDC1725F760FF5E28B5400D917AC413EDA735B58B26FA7E0C6E07749B1A5D087325EDC2F08ED9F9ED5A98E388AF03B44860930904A907A66E00D09CBF98C0921248036F48323EC5A42166BCAF893195DBEAABE232AF704BC64BFB10E43FAB2874602D8641CC997FE3C074924B6CAC536D6536C87AC0F8F658FC3F99DC98CBD835520BB3441B55CCF3CE7F263451CA1B3CBCF45D12C3B889728EB7E401C1C2458528DAF2C40E90101A3B423A4E1B8609E74C60C9B7595CEB8F35FE51AF78122D9C487BD89A03DF414746D0F2009E852A3360AA422D035715E5713F7CE28D7D8DB37C40BD86EF6CD55C0589B6E52CF9C7643ABE4096EE53CD1C1EF65E1F9C7286452191ADDA05F133BFB18378B5D898201F7EF9FD77CF76A4A81B8A732B316CA1C2682BF25C4FF2F500F55FBD60EC6DCB48282984FCA4054E8A3DBF5E0834B312B2C867ECD962F27846FBD1B5FAAD67FB4B17C20BFB0211D96039515F9B0BA6691E8493F122236F9F52325AD5B1E30C3301C0D3F60DA86B77BD81B4823CB636ACB3DD28052A278737D2E5B07B5E9363B2395B51F1210AA53F627F58109B695516E2A8CF756E5FF531DCC0C51F3FC5BB95B28B2EF1676F15C6827A4CB2520C719A90BA2AB409B31E74B99771CEBF87AFF0BFE549BBED6B678ED0B331C154D42FD7F6A7F07B99AB0460FAF7803FCFE336CAD1D3FD5760025DE4C2727D386306EED3B3D5D17D9851A5744EC70B3A0F29A76A180C46D2D49F50E9D8D1046F2BBECA53543A0C3646FD736E39175A2D66E142B0A94927F2A937846A1C44CF00F55CC9B9D62D4F25AF4F87A25B8BC932259823F3CD59F3F09ADAFD033F1802293EE5CDD49E70D8DDE9FDA65C0EA4063D4F5F0810671635885B49C16601F531C7FABDDE3A63611DED6ECF67D621F2CFD48488DA31D0FD102001D44AB947AD5296635C45D853624BAF09A5BA447CFB8C874ED98EAC7B867BA6CC10A4675E6C2F5F54EEDCD52D500DA4E15C338B1E12CAC96B0E52D483A17F9D1F90C4DD385CF00DC0AC12DB97EA1FF33C3DF6DE8BCC81E70C6C153C2BCBFC6001A815D17ECC8C61C24DE9933BECC9C9F18A790564174BAE2599F93E5BB1216FC2674FB34CF153FFA690962BEE4E9080EDD9B49E3EADE139075AAF1A187531F51D05F7BAD888C1E717BC4B368FCB12ABAFEE6B29FE72132ED8173C4FE6F711405381D3E2049A627F4DE50353CE804CE5EEA3F3C94008156E7042BB252CFB13F512B1A5F28A10CC70686B22E9759C4C8A62E021F8366A4173A0D3BCDF8B550EEB9EE396BBE86D0A851B77B2B404658AB1A8B3D69DBAAF61CC7D539FA05193A6F70C2956B0D2B3757157F54AEF2D70DBD8B0D48D70FAD4D88B11465375B7CB6178F3DA79268079DF5110F668168C6E9BD362525EDB99B80F87FFBAD11E8D88935162251F7B4DF2578DE0532551FCC2AA0A23993C6BC289AC0215CF664FEE314BB4C21354F8B69BC920FBF0B8BB2DC499D3E4BF583B9F2EB574A5AB25205FDA5FE123B09A777B10E945F508A22BEF885746B6F4CA38CE73D2B4E843A3CAC214146C71925EFD237E09707B138A252D6396D8E9188BB08ACC33720C7DD7A87613E55C903C436BAB24C9D5B74B7948EEC3C44B337201643E4CAF2FEFF9B6AA4A553D1A6678592C630D11D357348E14A8DA3B6C274464F96AE6554AC76BD4340361E7A599207CB88B7517679CFBA163AEDA592CA982AA4E3E37DB705ED5E26592CF91DC803C4BF9A8B6058CCD426BA80B4BE2FFE8D0B2B5A9BBD1CF149F4EF6BCDAB30F7A4A9FD2F6D0C2C9887EC40B41A33E4AA0FA37FB61E9A1736A78E75B0E5B668F648420FB37885BBDCBBCF7898B77159083BA58918F7F190A7AD04F6F941FD99A09338920E9522D9F41F9C8807FF02C0350D0A91CEB260CC8F4690B2E9D5A6FD3A4032AA09AB96A7B4C02B3AFB62407546B0C584E142C93BF127405A17548FFAA23832887ADEE53B90117163D8D5CCAA96FAB1FAD4DB883688D376B3D582363D9816CC85E16A5BE1167F25883184FC078EAB9A0C09A5172C0F557BC314686F961FAAA93BE14B8C239AD5925B2B9CE7C2D507141C4705671E7105190B54AC4008D8D845435A9F68164E7DEAD5893406DD21898E4F6AB7CC23EDA1D768E427F2349F329FE8A838A03DD7DED95657D82D05F6753B6E3800C2CE345B1D33AC488534171FDD124360ED5EB4B62061D61B89D95EE2D3D9D5F8792FE679ABD0ADDC5B1100A5D56FF8C8393F6698CA302 +priv: FD5109D8F14AB2D879B5147687B0F8B89FF635D61BE11E0F7542BA19D611758B37F4413E6607D0819662237E4F7746006787833B1F0BE10734308C1E564C8FED69592AABE7289459A5882BECBEA41861C798A02A0F36DA0AA1D00BEDE17B87FDE6DE5DB5083B879955B99177B83F46383E2E5048700863247F8B00DDA1432F9475845411106010802403124423006207171123637626358064004744217668563237888426103620752544733884730188200687105834153425720865281708118271854426277451381137237063130331623234106723431860347548763207658577260187146861448155686826455003173682641840333567008330412485633328752625476441625800267213531873672382311441364125312140451047067036187188453426367824516587741606322451571174808077083645343475863427745255815618608637822668140778022078564357408860015574881153222705772820283282645138703666837082845457545642483327554486635104572840030702644546883155868854848727734687116530122331273316185560038723621705252685722207460533380311867184216400552714105740853578622762727822013200126021044283211375323117003650187002088603640345838844504335503120832113026778216041020078002871175114780338718740318457762655342324868368435104511507781314186715333714808404824660120450275541327480357767864878521734380425386623801541346774823118010158808603360723632020412452027121234068688716164441521887108240101786315371520841447607250516005315365686168717574678054651203116875838316668026521024171872707164174688353341467360173172577764432418112331306083318608605402151567381436862124117738672361158226325887710338805385437741854660070530741053300731051058032536663754782277723523405535684511367423724838044746436665367216702401504057760861543160842185113378015224425623321268204241475232123052525186526436170475223506404246556168704551444551388733525384672264531670007310781725425740047878568634613747664237017616081148818153324800302322626514831370370752655505652444514474570366145827603375858080460822137114012511117868251538483208262330710570084046510350650067607452046145226203135104263664202836618344162630317470784727848257402470148421118752145271066152161743850236604061501516023741745433718841304847033226752765102660665216844000747725857377655737286628628855470800115846468544603448604421136682275115820474718124475360816350707076840045427737648741006206344653466760485601222162728263052643450841137207405423267533600508015253620825076388520610231453565801282615681627051432685018612236467086817638250582501884472046848272635753014406331123268541531386173156646817565463500686735817646042771537270561435557563865543005755720030384235037845153625183357188765067524510541785723483746082513261716357675385520117254805854813722260257761547732624410547504153484802545113081035450188274886618452447827427357657813402550236060754048666817727427460350022175101303701227746503115654701150825304136500402467436180731888868347168086754418454456816581305381780810850606827744730528684184014655603763554220413703356318438650383817117084323856267162872086718276068621466341542271674584731366742432452022720723523885440383735736758540137861645710336031513401537787442784487630878114247615133473366832843613332177588724308575184307203156767071BD4D1A723FECDFDE655FF7613698836154D8F6C5B46E3CC037A90876BAFEC493D244CB2B771BCE1BC5AAF7D9F8A75D94A2E9C6746DAA9058ED347D992A707C5D654D696521403D04BFC933DDD819C17A97BB4685A827F2FA843ACB0DE979BD88FF69CE5E62BC74BB3B0917EEF8C603269990CDC67E4AC99A6645412A1C2326FC2D13CB588740F71E9012AC9A07EF086670BD981722F8A7103CB68C33933F6132E78803316C85F6AB3AA8BBEF2A33A19000031CBD73C643E226C156E5CEA88BD3743B3B0FE16452FD7BC84380CAA4DEFD3AC5D38DB01F74B9AEC1E3C368A77B9FC8DF87A1C909A7E10B9369DF94460B8567C38B75267EBE99CB7E07EE626772BF70E721B00050D350BAA16B0AE07FAAAE61716FAE72B10922673534E83950769A5AAAFD95D3DBE428E66C7148508D2CA2914AB6DC20F0BF7AE92FF51577093AA98FD383A5E62791AF20206690BB1231736CD5449ACE93061E2A71FCFB4CE9752188A4A86302C6799B882E44545FE4667023FDEF2C13939B373E2A85030D23DE62FC85F3AB765699E898D3F06794193695BB0495684A4AFAA4C9D63843CED531BC122EBBC3D9983319968FE57D037699C3722545D5AA32FC648CCE93EC746C020607513559820FD9F4178FEAE2620BA278613A0832A3068BB65A445ED00D0623DC6B668983A5FCED6D8BDA41164E8ACCA99DE3CCFF3C4A6D5CBD019F53F6B70C97FDCED46ECB1D6D969B16191DA7FB093A0200AB28055A045AA9B544A543C96AF75EF9950E36B9D661999929DCBC2D697CFC6A3540B56EA3E4F4187B8D892447B63D80B75035D8E594BC8D7D8FB55694DADE5463804985B3718FCB59A946BB3B66D6BB38257D0430E18605399C6F460CD33FD9E4353CE5F7DABAB57EAF388310B828BB008F1F8850626680D2BDF2D1D7FE348B18CCDCB1430A689954CFD60A683438000C1295711F7196F9CD524243813388702248346794DE6AA4CEAE1CAE5E1AE474F4CCA0CE754B8021464522E4A845C1FAD51F775EF7375DB6A21004DDFC8FBCE0DB93DC275494E937424C4C3EE97063650930794917F57BFDA70D2CA74B1BA7235BA947C587B1C9D86AC4CB9C8DDBEF333DC988894FCB2615B3562FE939A5D171257726B6C789ADBA53DDE401D5168418FA6C1CBB65DA20308DF78EF6A719C059EF43A5E01CF6B2EE5259EAC541CBA7B6321E5B592ACC42F6E5278785AACA977E2658145258EAFE96A544A648E709B48EE39646F1B1F1040CAC64ABA7B6A69DE4866832FA041C36252843F20FB4679744D6DBC09C8260A3CEC898ED2D8C33CC790D2D7798824F0A05A1299C4D7F2A4EBE7496956A5C7A033340DE8A044619D48013BE1E4B43213B3689C2267D4541853314E807EA6A1C69485CF57B80A106246F10242E3C96093C960EC0F9C0159A45B9007B7A8141A1834B8B328F44BA0A1FCFF7208B476988686BE639362CB120465D1AA9A6054F596270E5A3088329A91A070A6A9B8D86489DA8AB6FD21F21B163D0DBE579C2DD5F102DFE9FDCBD9EEA6EB32A236360EC67CC685495DF8ECD4E0DA5AD27E9F313E3123828A3A7F54D793B1227214759A72AEB0D64FD2E9A134BAF89ADE482ED7CC5DB0C9593C63219CF38CAADEE0C0D297C9201F7F25680F0EDEAF516A4914B2A4606234528FDB99E5F5C0CD2A881CC1B670EBD170360877E7FA4D884A67EC0E3D6A4D3CDD304C4633A1E6DE168AF86FE586895EA49E390C0A9A92662EAD24E05EFC92C048372EFBD3AF11B87809C0D7EFA38C24C7E082DB4B542468EFCA41F88CC7C999FFE3C6568586C39F3750745F0D3F551620C227109DF9155437A87A04E08A4FEAA648E9288299E47C351E34AA509EB4F772C78E33ED4E36858E4055E7E3AF5A958E96E69E93BD86DFE5DA8D1A3AAF0769DD87558024F2B26C6C6C42224760D12B52832326B7A1F70CCD530B9951CB3B7A499C35043789E79EC68CD8EE1FD56CA5F22A5D54FAB7F0689F1B9584FAB8AAB9842A3A30C8780132F14AAB121CB09F0B4941A882FA8BF4935BCC7F2F698D93FE10F2393FA96B9F957296B24669DDE4B600927BF5A469C0001F0B1D8F1DF0E6B208EAF552D52F15FD1A80B1B4831E65057641FF84E9CB6811980DD38C4B26B11265B4E71CC306DED99E3D48209545DDEA12328A1A99972AE9C849718A2E1D4E356BA7E93409F9BA01BFEB6AE78DA17DF50924E428926A844580DBADB3439D98C6B89818907EBD7B7EB11DCE48478CABE0A49DBE5918BC45DB4B88FC045D1985B918789F9ECC59DB72F2256382841AD1317805DC32E60CE2096562BEEF9482EDB130FED0B00335AF2A8EC79380349E1564C3A382418550623E7A87A7CAAC056EA6B44FBFEE65C93890FA3AECCDCDDD24469D418FEABC03543BEE545F9FD977D77FD44352553D32A365AAB23E0916F18775E3DC4D41163794884596AAE4251F7527725C98483C72786D46EB2A11992B40DD0C69AC7092067B3EB63A179A5C61446FBDCA3B21BB919032B97962B7E218C2DC34409EBBD5BB360F2B212669CD16F45F5AF4EFA777627DA59B6E2AA0EEBCF2DF02D1954B16BC0B5A718BB95C1A905400C5E0EC0F326C8ACAB20DDB69525FEBCDD32067CC74DAEF2E79511F10CABEBB69F11AB14612B38190F8C02C4526ED189793D059CE759D56B00505774AAEA728C79CD8D2588919500EFDCB2CF7F870C999EE2B5CA16CAD7CD92C50DA46274A1946A0D8B3EF4FB6D498339F2C7793267C92B0AA4A73CF40C362416B487A83A9CAF3F7C6772AD70DDCC5A9D1FFF56B5E37B821FC398DCB15E60E1FC0D8E6DD569E315C5B12187FF345D749D66967F3E7EC97117330894138DA444597DF7B5F7A014431C253C8D19F9E8E6D143F406B6E9518F18EB3E3A3B72CEF48F2AA245CFBC1F1219B4508BCA6EFE40F80357A1CF1C9D061955A746318A75969EA691C83B5219A9354E0FD92ED1302314944BF62EB3E75EC9640E2CD6E0A7C955EFCF41DC0F90D25C855FC9F54ECDC4CDB40AA95E7E53F8DD2DD6CC33F2703E8DC4C09C6781DF792E6DD945FE0EA4FA760FE35380236138F6B49C99DD5D6FDED1151D5C461DAF39717916CDE27834BAB0A5E3D5C0C5FDCDAFFC3E372F5335DF494288D5176786CA73DBB2B58FD519B10531A2C9D6D390F7D4EF4D9C4F8D0C6F36B68E3B502E2D0F4C97D027CF8629E2239B3ECCA9547EA8D9E8A357602319CE01B0B76D2F5CC5B4A3A906762554A37F0B8FE5B4DF29D434D98822C9D3CA495A103D1096DD042D6BAD442BE6D7A5882AC7B79C9B588F10CEA4EDA495ADDF22A8A52F49D21ECFE6FEDC77A459368C18819BCB9380A0C115A5280CFEA7136EA7359A78392C27049A55FFF75FD69F70D08E2FDAE617DDF1E43749D9BD0DCE026FC0B8722DB70AD47FB3ADF73C1BDAC24A27A596739F7AB09B92A6005226FF18ABD52AA5131BC9F86C786D87576BD3D8291A471D4F40EF51B214069D7B0096744BD9856C499641140EFEA44192F40ED4CBDF2C562E30881532543471258282 + +seed: 19B20AEC7AED1C129B55D7A5143192A3CF43BB55069017D695581B74006788C5 +pub: C1876C7591D9FE2918AF831763B053D7CED29634CAF7C28E44CA8DDFE79B741612FD62C3049C2B665EE8EF14D040867275020733F0E2673A1AFF38F32C07C4F0792A7BA4777256077FDC933F991ADAE12D5C0C79299769DC28F2445FF043D563DCBCDB9E8F3B238C441CC329E13925A779F9A3B65552EA2793F99A95577745BD8CF86DAD4373B22A7FDCDC1BA31543C649C4B6B7C8E60795AAA4C4A9627D97B5C8A04BE0EECAB50E02F59139751DEE11A401FD23F3A0B47837EA00CC146D668992DD97AFEF17751A01449B0850E3AB1838A512015737199483769E060CFF8B66793CCE1FB3E4EA781C6D09D12231775AD1D98CAA9B1EAFB9390D67D76EA3026113396B8DD311516577ADB15A77CF47C2082B7982B07687C2C88A6BDA5F9E5FD7F2AF932D947DA6FD42A219E297E65486B5187330E4C465DDA55DDBCD1823D7349D9305691C3EDCA07DD547E46AF919C780BB03C670359EBE80CD4FC98DDAF6449677FA7C045CBED1C04BE230690177AC880286407E301219D305DBB3FBEB56B0AE253AF69ECEB2FB19FB66302C828D375328CE26B8EF9FB97BC95B35D9F0294E157A98F50AF78A451AC533529E98196987D2D0E63C6F9857750AB8CE1503814C87FDAA84B0D345C477BD8E87A09DBB0C176573B5369A083C852EF8B49D4F30E6082E619CD0E10A141B161832E94B14D6B0150CF32A8054DFEC80C2500F230D4FCF86236D72C02EDBA3CDFD83B28EB7A282D4CCDFA1E1E5438F54D15704E76C92352FF2F28BB112372E5B532AEE918DCEF2585E3163520A08182CDFE1A3D35F8F4039105AD2BD4400C6F8EBFBCA9FE312F7D95019912E2945890AB754881AD378AD92D00498EEB82113897D555DFB6EA7A49B8D7115DAE705C2C7BE0D5BD7C79A19636884686B9173AC7EC14310D08361BE6ACFC6FDA240A73722B6704CC3D2BC0F0C0C040E44D11E185A21FF149F8AF17D2E056A3C3B5A06FFFB6E8BD3650E538AF954024C4E0B55B23941FF945513A64453A0BA9A4D3DF118C31263A06A3DFA7E258862FB8BD066179117F878662746872C7AB66F2264E4765EBB0DD19CB31F55163D8BD964D3B359A0A79D4695D4E0A1D6106CFF71ACA80FA61841BE0783D3CBDF843C65EF755A7891C0C40C98E6DAD9F565E51FFCDD4E982173903ABFE03BA08BF60E5F14D3C88E00A2D882253D88CE6860EEA90A9E4C2AA2EDC6AB0424493C1A79B5B6A3F73089F4A64D0B2E55B7BA0415A53960B870BBA5799323DD2D00199E2FCBA9547A9C2B823F753408FF143BDDB72B3C1E6696EB3C6C3CA2984453B1916FF4DFD6B3B43477C42CBF433C752D0749FA7D13E53363E6A22D085EBB93AAF260D610EA9694AC2DF8BD0E7DD543FEF57685E381630EE414FFD89269CE6F0D9D1B1E32EB744120325F092596DDF8CCCD53FCA530440EE9000EDC1D9708D0359A2B8C20008639F164A7DEEF0E1F83FAE0C6D06AB8A4E82CA74ED9AB0144A93F681BBB54356567E24D8F8A8C013D1E879F666EC62B94F2617C85CD57323A72FF71AB92E322C339AAE371AE06BB79AAA775C3E52B9480619D6D32335C8BB45EBFD11F8A5C5CA339B69E0F3FCED6A857EF3435732919568F1212DD9D02CE7F3FC1B22ADEEB3BE460D19235DD54C85AD0DB8165F30AA209F34D043A9D9DD186003EB29BA7DFF1ECAFEDD36767A7A389C685C4D3ADA09626C652C7985F237D69C31DB93A8CC116BBAE071DFAF8466908A9975C29D8CDDC236BA5EB447EF045AD83CCFC8FF9663D027A8138C6133A20D9AF2F89B2C183811B8A6868D5701C9466C54C78DEBF571A18DB524A7AE18C935B624446A8B94F25060D695949D7AC47DE11475C427B3BC987CFF890932E8BD341E51D0DD8B178D5C4F40C35B9B2E2F2AE493029C6C63867EFE1D7CB4B02C53C5646A9EEAE87E6FDE7C073BCC7F0A79B4F7E25383185292D735F0DE85B4F3FE9FBFDD21268CCB903640CC081E19BEE7184D3C2338C83E2259E59D8606357F325D5867265A2DE3FC8BD88AD8EB2D4AEA4E89CD08283DBF1E7C5A7E97E3AB43D9A385F162CE3AB3CCAC6F86AF9C45FCF60D997C3A6DCF610DD4C6978A3BD071BE03C0495DB413D5D2ECDFCAB95865F0CF0C732AAA3ED403DD9901B1DBFB603FE933F994F6C0B5A7FA6788AF95F676F20AFA37D7590C31D10AE2B0FA71239499737C004E7436B1539ECD7E442AFC74EE027398AE51D87128BEDC2C2F1E8DA5FC017A748D6D51428853B71B4F8D07A593AB61FDA4C401CEF4AD4A202E957DC207B20E15F5923CABD23E5FDFB19C66EBB92E1A8226F546A3637CF69054CD173614E5B69462BBD53FE82386BBD5AF6B807DB21B6FEC62AC9B6FE7F6D1BD777B2940B43516CDBFBAE26722F6A88552544C656CAC0C1726A3E5EE30BFC1E140D40EBF234BFBF07AE5B3FAD3ACEE3F8A134CAC9B9EC925E8763F21E85A113C6E59F5CCA70EEDDC2540BED7C92817B22D464CF0B13CB824684728E1FD84E497E4D8B1968F9103E5B820D97BDCE02BBE71CE0D6A8C26769ABFE48ED47BFAD693EB992632B6B934B54EC903A5C35CD8845F0E43A0E856BB8ECD9CEB4EB70010BEF602C7EC170BDDEB6A1CE2474E3323EB133BE60E1A23C0AA0A88DAFDB69B4C492981A53EE45F006F687951F13E6399C0D3953F134B5015A62817F8F631F22F029EE3167D9CBDF890CC68818FD12DFFE4BE01B4BB04325C36770E85ACEAB462A919B5A2CBE9F6198F9E3C8D8F253818C5C1B6B3472DF05C8 +priv: C1876C7591D9FE2918AF831763B053D7CED29634CAF7C28E44CA8DDFE79B74160D9539D135C3137993C93CB7E9DB32D97BED2F47CD513927BEAEA3EA4DE8DB3BB6F69EFBE8BC30B741160501F042738BE204496408E7B322B4F8810CE5F0A1B4F5853BD042BDC71BD3F713995F90D2997BE98853A3E0B05ECA0C2CD529C62D1D31142720430162555220261408757487051805486321463505328548138872674635348656038584807581556616567024781108748714006466586518105002840004152155071684402283301625468608582682871478285880112418701887856542813261486851086715532015038018055506582001004343174024123728627110402632383478155035530668058030807805254735026344715438314074570828778555510310503127760081644038768664440013167025735144760220153688771326556654136677416836236681275767825505783518026507108541306761822164356817775213250763580875702357583307542021077861788684686144273011537008501712324033761721553654884040484566604226000214651473588064077132555143158421687651533365271426802716634284747711533266322568582853708027003861221727624188548224553846320154218535004558846614210714725845776845035032840301165860462661558567062356487726862640113066862340546354378052445185333237853473826544553735144445868050241350888774173617075453531720267316818175415433376853422836031112605825812128668124221221813720163332878132662740616835058334581511783268088514555323113603245767313468456805542257754161745144715584644762635222801770257403571224173224101775575421637641653561651523472523353220007246647685422882100323788035807815471744883353670332227331383575023847310756871261578822337587022523242818335102643211010036128440207207414604308060212184302087706651107415366331635141330688886357276684550512668846326170485080755401433066163136305042535141770172143571578534537566273505072131666672802302137400258356111170004050122176802185713363384107338013714068046336638073677671825887712654440634342104756450234366074785063373770138355536602834482336117841811656443744500552574381774725612554820152456181136173480528377444617573837506101566008482616254362626412148541878576272451278865273175261065121480628166312811217332443874218160274773587204140232054516151580731416010517360222140016312345165580552765116138228663835802871501003418662168472077781187768025576001388352286135461575165005568123188068230433318746647171256317558746767878042633203465265747801218226257524465703521066601441767437260017503655584555626781625645828607216813374401208635875826640523026864485803177516421032408802243351517420170357837500517573422583060107563784043772507424567258253886871303426754383234648741138366371401462647365832748247554435886122467742424232347324855363843371303526333082723501448384560734138412613126277377455378767072466561765062756763081555387882428742444264545182347872215788716415115613725675021506301847681043752187440344541180617014583366082216418784124548587567538635417676816656583151701337688684365852214350536148165082118684731162728603020045865388212864485217252720226467655245757761056558883368818036647577235233732437782724674158151572615477036118545377305340788610187136740007740123076210307123022813564872374047362802876653816510510783134134880883380826444C8103AAD8657AA9B63770DC7A193DBFA1E0118E192420247B0444A7F836CA9CDC3A0980662EBFD520D15D923C37ABC4C3FC417AE01F017B157B85CA4AC48B3A5FBF10BD5E1F3BD2CE7E7477F4D47CB502DA2BF1D75FC48CBA9CC78781E33A3076A96F7D482609820FB1A1EA91EA2C423DA8C5E9ECC59F34BB5D58CA360DFCB4E4A10ACB046AC8A0C2F093FEF48DAB309A7645EE2FF18D88CB14737400C44B2EFD12D8C03579A5E0FE1B260F691B9A9D001FAE92D5C04A46D0232751D51B4945B86609AB60D80A9B04F573318062929CDB4EA895013B78D88B6379C1FBA2E729C7BE337DDDC9ED90FDB05595D48E12CC38732E00FB97735476D423EBFCD8B91D7D17D9C9F23FC65EDAE2281BC482EFAC37B48B23B9D1FBE8B8AEC1533844536F1B61BC8AD5C0DB80DF89B3DB99EBAF8014A8050F721123B45A913DD533C8C9A5789F2D6BEBD95CBA04555E36779C2F1D0F562E5C8597970C009A815FBA3F86D76BA778365365BB5D897B67076C9B826EA46578DE54285A6DC36BD9EB85F0B282376CAC0EC1ED7E22B05CF123792CCD02EBA13BC9079C62528075652685B70E291A659B578CFF8EC7858CBF990929A639F20455F3CF14A6E9FC8DAFADC9415B3B20C8B26B5775F66DD90851653B30C382D3FCBF8C823EB5F6FCF70C0357F71EBC54BDE2055615A1A1CFDF3A92888C5831A3AD66B5CB128397210804C3DED05CBEBC4B9F982CD5AC73154EB629E8EAEA4F5239E7A4F6A4628469169FFB74FDD8CD475F395E95C8F6CC451E46AFC3977BBE7EE3D2ACFC1C29C197752863C0ECD61060C90F3837A276DA89A7496435923C2B89786724FAE94EB1F585E8EA4CD6B0B8127B241A889BA2FD60CB8AE279F77BA7EABEC33EDB596D6EDDEDF252800F448C2FE0DEB52C00B2C59DFECDF7761ADAE9FF8B7908A5B441A70B451E136473FAA2310C59733200D238C75AA10FFBF9189580C53EA961A72FCD49EF3F7A7834FB0E0FB5101F0DC77819319223D1BE54CE05321D70BEB5347227EB13C2EF4BCB75DAE62B80BBC3F89FB40D83A0BA7DB94AFC86C469EF7EAF8843C508C465D90F850F85203A978134C4240479EA0E241F805161E7C0B28B2E960EB281270A26FD00B0FCC8942125B0E73474B186BBF1B2A22BA5CA4EE34BDABC5CC9729B25F02AEB9BC4FB18F11053DE96BBE76611B1AA5D3C8D1E256481BE19B03CD3FDFC9BE306F35ADF8B229CA3E2470D65DDC3F3774C453AC9F049D4E81AC955283B8C85B5F52F13A5B9AE74B08BBEEEB7FF9C7DB6F0DC10A8E18B5DE83725FA5B1A6E5A009753C694078CB88E8A2E95DBA4C5AEF8C041B8AADB984F533CEA6B560807CA8FAC3E16000DE18C94D0346BB6B6E01A739685207BADC4C641201C159BB256E56216CCA2DD471F34E97891785CF7E6BEDD14C92FE0160EF1B25DA80FF86739568F006E778AEAC09EBF4FB56D2DC914D549FC91CAE30C1F044AF84F2F814C3BD9EEA0FD43E04FB7C5ADAEEE456414DED08A0270B1C418AA964C31C0D9326618DB93BB2885A7F734DB1CFBD903D5A2ACA03185B3406E015DE23AEF3DF47F4394C6C406D63EDE57EFD3D00555592FF3454608E00D5B04B276D8D52E8533FA59D8DF4DA27AEB1A4D6E54FF340C9AB6F79DF17057517B7E50CAC46E99C2433A3F14CCF5A398AD94C433826D0497DE022529C0731FC5D567A2B63CB8473B1DD8EB40EE86143562E6A549CB58A94FBEC6E75E71ECDB0321D4E5FD2CFB9E8BE3E7B6A9CFB42FC42CF3D8A8FFF70E2E31A9D4DF35D6AA73AAF44A0E9FA0C49F1AD3A624B88DBBB2CE5754850914FE76938D2FA56298E56DBF447BC1DA818B2CBE6DBA78A240A070FC43A9C776562864A6846A4929C94B4F1138ABCD75DA0945C9AE6F1EA9468249DFF202F2E338B9BE3CE4CA099315346ADA893A49B969D26ECB3A05913DA9FFC13327CEB3DF6F0D1CD855282CB64CFBD0F695ECA2D4C24AB18FE07A79F2A129CFCDCEF608835AD2F56001E7B73DB415A132EB72D0E752E08849CF5F663A841D25792E3073A4A2634D9B41C3F9C73464F4694D116EC073C67C507C05FF3EF5FF1441D2396FC4583C8709C89E2EC6CB688B3713934E76B95E8C10CD2F3B9D0F298D2B66380C547D992894DA2554CE583743490A6792FF5490CA64868DFCD95C4D3AE21130DF4B00FC50CEA9AAA2277B76CE9F7CBF8778C30591A81F2FDB4F16C614FAD89600135B8084BC2494A119470C6D622B4B6DD534D086074874202F9772C190C301987A0BADD318C2152697E8397D4EEF55547C672F35985E3F298881BE917043C8B3E9679AEF3A65EA7E641F3805ACDB18E716493B597DADC3021293C234B5F3B548E82250FA5A2872357D961486CB95081829BB567AA3B352B64C0FB4F7072055FD8AAE50F855C9AE69A1850BEEF309A41D1B91A5E181E5020FC73DD5A90AE7271186F470E20D2093F44E128E044E5F7B516D746818B18A8D4E155B0CC322DEC548324B0241F4038C29E6CBA77C80228AC9291D1E5046F7AA321548AECD85847EAB71996E3AAF47738D06010DD373DC12FE362B599EC7B060120AF6435301B6324B7B99771300C7DFD369F7983D1054C1C45D37C8063C73765CC399CDF2C7ACCFF7A3B6F80C0110748BCA149DB1C7503E47CFBA8C4D44A9466D1DC0F3758932BB4F960AD5A67CA4EFE34F5D946220BEB96C787D88F87587D3C09DC4F6DE6CF1A91E463BD48398AECD75ABFDDB9DA29839D78260DB74FCD26D6918600C74C4218096D1BCF7054D7DB853379B88235AC069EEBA3BE170D9D5742E085B468D3ACB79FBA3972E46AD34CF645A979D3AB0E93E1B69F16B4C1225C048F5E5CB06AE5E9D84C59DDD9AFA1BA1291F3E02CB46DEE9B22EE622393E58AD1CD6EC3A9EF39BC5CB2252C17EFEE60F2A139EB84BD7E9131D70CDF35983D81252927FCD3CEAA9A6256CDBD0BB4A310945E7A6EBE10EE50AE002B281797313E621013D1F9E9537A51A9C32D89FD4C830D47E6F87F84B9C600861FB7191A73EBF28F9CCB83D031CCAFAB2EBAF1F4B67B651128CF35F70F8315D03E9AC420B730C7C7EB1C16623B89B89015E59A57EE9E4AA835436725459AB6EC1C3509384E1E44C50B86251EFA538C3050032DC9BED5245CF7708DC6C07382CA7B5664ECE3AA5C357492A1CFB76D49D4CAA23D237BDF1EA3F8EF35D2C893BC45329027AE33D9F63E9845BA7DE22DFE6A7222D1329060C4C8181D92C6B399E71ABA66FFBD4C29CED409B8E083012ABF3A8A1A9CD64F97E972CAFA4CA3861F5F73D891155F7DC9B49FDFCEA857981590E424752F9D80BACB50CE48AC3B8C8F25062DD793AD88B89E94A93A4A38753DCD1EE3FCAE78D680638C0B181A99F08EBA730BC90805E56C9C89BBCD093E1C8D9737FCFA8B1958D1C5E022072A04CEBF6CD3552CB1805A598EE9FF199144A5C4CEE2DFC1D318965DDEEFE9D2668281263143D9C38F4681A72096CD7DA420305ED6D5AC10B021D8CEFA981B0015099F5E5725B8D735455EC2FF2B8ADAF + +seed: 12FB6DF663126191038F413001776E0791E024B1129DB3084A1CDB809404B555 +pub: 8DB98D451A84D7C9FDB7E2BD7628EC0EFE6BA51499BA12BF981EF380195E1D8BB3E4B6E7AC1320C295DD121AE504385663CDEE9BBDC461D9AF9B74A36F30E52598E024FDC912F1D51924E3BA090D5E131218F69A80C44D920AA8B3569B36505F4D50F161A5DEB45E736CF04E61D6AC17948F496BDFCE3E9968861D267CE87D3233D12E0FC6A4DB86895F7D1F436483AC051DEF1E5A4738342B95890C90176FB8EF27029026E333E944A88D08DEE0340580A08DCC4A6ECAB4761279D76CA4DED5AA147D656DAA41EDE66F4C838F0A04E2A7B8E18E4413BECF01CE5415A17B6F39A5B7996A84D4158CB664AC36EB09980FDDD8323B2207384F60A63BAA446C0CA5A8982EDF24DD4DED8F07181000A22F9FED786FD3252749DFE193301414174CA01BDFD362D25985A6CBDB315026F813E3220FE8DC1E35EFE3F07772BA54861933B9CA9F8F68BCECE60F9F28148395C1605890D5F2B3E859EB7EAA3CDC66C58C9782AB8D67BA6EC271F454DD8EF82854D2CE61B5A513AB8FAE77A081D4A5B34CCE0100D31DAAED0852B9E77C904EED16AEA439B46BB2BCF42FD3ADDF320B4F1CA1737B8D7D3F7496C7C77107F2BFF1C907BB145CC2FC7F92CC3A3A4289CFD836AA2B7490393563E2848F0783EE4814BEB9F1FE75B5371BC9944029FF463361F65EB6654B588F9816FAE2083A4614DE3AF064D65A1254B4252C8B02F1919CFA11F7E523F51C99EF17CEFB5EB1F692FCDA240C3A0C504F2527A477A41BB2894AE3F3117E96FE3880D3447E1110FEBEE17CE73F1BA7956F397023E6CE4CFD8D3E1E84868C94C0737ED138FD7EF28A7D6E0A047215A3490A031C2E7085EA975FB16D129B7A70521AA45E9300355B930916D40FAB7E197244CAFDAB36C55CACCDD9EB203F48CBAB6DA41A29D686AA198576BA05F4575145DEBC8322DFBCE5A1D0899913DBE93F96033DDD73E8CFA20D92CC1E9869C217586E78FE30351EB421CCAC154089EDA5E4716E1BB022F264E76385AF044FB2EDD00D351B0FDC49B10ED29510FADEC7D7BCB72EDBE46650198C7B221335B354A7F6623842FAE558380FB0EFEDEAA161D0AC5CEDF64CD3FB1C709DB76C8C046CB5337438A72F283476687D26987B2C6C205F9B39BC2DB90EF13CD5440993F802BFC120F6062F8B62344231A268128B4AA66EB6A30EF98CB94CBD50667D9BE107A04C54631570584FD0132EC1F3AE8F115C54CA0849C05258CE87E6343BECC597087369594D1B847CDE8AB9D7D3EE1911953FEC22A2473064AE8BC3F406D81AED4C546C8E0DEC5327F2CF883DB613D5353837C823C005420E2114468B6B29B862FC6D0946964DE31D2490A14D5022ED160288F1C1B08DC9852FA66FD00138FDFBF6A1297B90152580AB8EB3E7374B627F32233E513FC9329A5062B3B376C5A3BD11E82979A0310E6BAB7A66E6A8CBF829E46C69BA03A9827EE64E0077DA863E7B046EE8521020166108EFE63D089A598E1930748A6446E4E817EC5450A07A01D49C767EBDC711F89B07C63B2140052C42AC2EB6243A4386E4E8FBE98F17F28C3C452AD376A2BF51C5E305904A1357D1F1B12EEE2D782F91DBE7891C7255872F43C697E8FD6CDC923FC866223812C568EEC14530BFFB2987E45F44E0F792B234718307275546DDA727789F918EF4897A6B586F9A614187FA19CB3AA3EAE11FDCF108F69581082882AAF9A85744BBC451263AE2E71A2E9EE1413403444FBC4CF5ED48E73211835DD7F2EB21545F4749CDD8FD83EF61A836AFB24FE46DA4A70E8241E81080D6AFA07CD3BEF47DD96A17E079EBCD81231D0D6496BD46438CB6342B7B7934A42F375A47B64B9CE0C08E21C5050204E576E552002FC90C86E92CD46A8E038A647B3635639DFDECDE6CC2628BAF8680529E9669EB28D02F1DD514943A034374C14A603327DA8F83A196FF531DEB4D642513977742745222F18DE817FE9BD55C4DC0810B56F516B673498F7EBEBC49BFF7C73305932E8F86DD79512EB52767154734816624DA121A925DE9A2CFD9104CD2C67F1CC2ED5413ED2C56AB5634DCA211DDBB333C8EBAFAE42771D9F4BFFED56D4C0B1C6683BFF51D0CC804E1E2F6B288C78CF292E0840D60462130DE3224AE058533B510D70CD9D5ECA048AA7472C5DF3CD8CA66FEE21194798237CFB506EE058319764FBC09F21B46850459CB581AE2417992351339F5F253895CC4251670192824A76F8FB63D926EFB1A070E0CDCFCA3B6D91E4564E085AEE5034A10FA2DF175E0B4EF2AC9BB6CE88DC16BEAB87A5A73350D5B7C964D005FABC58BA0C6CA62A7C127A49B8F01B6EB8AA51D3C102591E7A96029A248E4C65529613F177DF501C88DE3938C378EB4C71BAFB61624C15B8A14AB6C5B0840E0BEF1F6BE9FE4D469AD7189B3FD79B2AF4E9FB2D019F98E57E56D33EE4F32F2D21D8C11FB3190E3DE9DBBE9B5C96044D92E684B16C8A2AC216CBAEF735B2C72690F7692392904CEDE6BF8591833D4007C7732E7C0D70FAB6179D13CA6F77ECF27E689F7A6D4702D9BB293F3DCF7761DC6405CE43E32E73D8BBBC46C9EE7DF606BB4DECA8B197BCFC79D6494793C6DB02BDB2F14C3B81AB1D5F7E5F9E07AFF50B64CF2D82254D8E7658D3909BBC27522AB2B6A31394E925C84B665A4A030D5B1399902C0E31E27733E1761E460095FEE4E811C98A8FF6CBB37A27329B9DF33DF55A22E52DD17DFF78643675E913640FB6EBF88430487D1DA2CDB6148076F0EE6C84393D5 +priv: 8DB98D451A84D7C9FDB7E2BD7628EC0EFE6BA51499BA12BF981EF380195E1D8BBDB2D29E491867090B9E965A697B5E5AE1CF087CE91425ABBE0CE0A5AF62653F1AC1EF5C1FEE6B7F332FF0876353BF37596D0FD0BD5144B2D28DF122762C53B0E688BBABC6FF40CA6B59885C172D7B8B03DF7E9EB847FC64437129BE6491FC9F17844745181084765356218212331443581827422547478716583235137304142402455774301672220067702281740345182635367206821152585408456654052728583200823033372154310824870472281817357366180438076076674475812436718415054614482424484278483046206360807771787771054735117481860335283427845150441828024348673056854648847118566408478657304738565734805614324307071342515464763053856836203744407720261127508640865603645571763504615240651218232156110531767574417578488131402811708672300570030415207614860486716278605250054542784421203140032858080104483743443502057255687503365145364325545780515742727205012463332228222545378481253257774532743251224012706856360000657410838731676482345513625233382538338360685487381801863581234163171801118480454512304805870580353572172486653225874875432158856321508853750572842660701771844633807757246836606614711553870048011642387468317806408144712357547215517244347457800162502560134340120227860884181180845236075730547174351241070547148484732728430350804426817052716534122672621650022564668418360272021232568277144644726668188641422271467488778515871817362810073182218026675237214022420675082370102767463268407376823612174601552176822253665808322107310413688206233547728348046326336582588831571550353146288604673611722768507738570106650282730540010814825386303560441675734048647887803531221650516815166201144723144731234257121763440850075481006600576245770066430232611184655640121061423732475158340280276165264230773851076665813040613203748418653067610885602255487480571513758574384651854415626417420543166747785171622576046385374026360446536560323364081514531124255163224126611340585256771327070023233175712863557000643568748470265527880027314325564436741673163013613563057262677350520653061006868115275687721800851442668541753630261381875745384251303754538638404618280501713206120252623514460810823423805714323631500120804284855515134331476516481847486650288541442660882611657005023631346640283306348184686066537312548854776538144604140728572838456414638133171874875422240152881130760145071162647006611762068256704854336802543356764210411586424602276003305764112061322443824572765215233587274448602602032341352101470571466720431168327107605723515030588630603022537525532211385730001520137417308382054521477265701811070771684871876723563513581351236548745640701728104731485470714068785004725608360521461771588538108418144581302136103731866083078237762606701124574620400076086186400026430204242416313181665824713128874033465213378736357151255754782458148571410206886244328708502561842137167528742821045110640483861757763044035404758481557643071506274125252625457522422851864812233285804123447364523664267670644684325263185521744116250655620038007410050478715435430444716138012661608280614268743443256531360686636133112133285152162217110212444684675883403052787004876652088607383057786732820085417285882C942ADDEFD289558DF68F84C5D3EEABC4272F5977AD513D3A8539D23950C631FB6FEC0A49A32EA5EE0B732A751FFA8281CF1C1D4A278E6F9C87F64D6D7DF0AF6DE3521AF8623512F6E27D4EFE4A716FB72F483FC9811832A56BC22612C7DAA2779EC83276AC46D188158D448FFC8316E526CE5194A2F2AFE14DC009EC89C712C705017E68EA63E9FD3FF5EDDF24AFC4533190A999F2E3909B93B0144CECCE997B32EEF929D73635EEC938BDA1660F58D15E5D9241C6061FA2DC43BC8E282081E324975DDE1B84C32C1031987B8252E1B2D3047EBAF0206691348A5FEDCB7988BA0D967D7FA8610CF7DE3B08A8BB536D2A80C75D74DBDC6DC1383A74B936E5E342E3F425E64660D230779C1BA1AAE18001BFD14EE3EFD849FDD81A561CA83F31531DCD1777AF16A8A7E37280D2C9D7989198AA342F845BE6F3FDC99FF6E4A2CD7E5DEF8D44CF72CFE0FE7A659ECA1816919613B8BF2255B77565CA0E332E18959EF7C4E3912F98BCC325AA4341C079A04C0B62050C9405F4E87C52C829C84AD60CB904B99B45653D5BC9B7CC96B4A8EB2BD62282F2B58A2FCDD4F48031B355B2C5D4D940B3E5EF791277D27E4D9E91EE5C1DD53C5F2C0F77D0CD693B80A97D7AAA4CA942D34879430BB0A5B354B51B3D61B47CB9C53339BA44BA39F617E28BAD34125090052479A275F9C9F787FE355C4B8E965EFA9EC3122CE4ABEF743361422AFB61D4136D5D83EC2476A17682B3E16FBFC14348B2A3618713F78BB39F23843A5FD50906920185AD1692597DF722B6C8EAE0324C615FB051474185ED261C1FEAD15086C88FD18A99226AB93DCE1A11C289B91B6DF0D7466B1AA26880FAD838B520EE9EB1753479FB5E9D17440336302A2E3B12A5602EAE3D561ECF7580B4308852BE844FBD025E598D3E4501DA5F0E4E8059AB05388505374F5EF6BF6D587AD79EDCE255211F91878B4CA75465884C75801995B4F21A2AC32E38DE736FD4D1C9C165F4C5FCC8F9392B768206084F4508ADE4AF5AB87DEA58B42F82AA64B03E32CBB5DEF948A14B6D93881EDFA5890291018F7BA6CC7148398823CD8840075A3335B5E0B1C164750CBC43D852C4D1778F258BCF6898E363E368B4DCB4863DF4667FA505557C35EF6150E74862FFEEF1C42779E870FEF08C55C1B7DFD433CAD4A6AD2DF25A90E840C07D5695AF96120BB6A41D48D4121E05FE703B1F5C8343BE403BF30868B215A36B9E79141409A0AD19E087E39AFAC1102A7D7A2411B4D435E4D731E6CB826F727508B0E7B360BD2AB2A778087FC0D6C2FBBB171EBF7A0CC40DA389836E895A6E0AEBD0BC0101D1E10BD7FF82DFA214631B38688BCF620F7188F33BBDF17CA3FDE11C60D4A68F62C2FAEB9082514944C93E31C69BA1446F4DA0390C250DBD21336667657326246A4CEEAB541803F7810FCC2A9136A186319E8A164D25EFE0CF08D98EEDEDE98BC226826F3AEDF19F5837818514E15960757F5B705FDD106E061BD6777A000169961D5800E5CFB63F81AFE396861CF87271C767DB3F023EA090270D46E4566533590CC29553316C3BA34655CBA17EAF8227C14A87019324D843641D3AA9E08BEFA9CBDFE9E43693E10E3CE2989AD595B1C279B971CB03B02644C8D205AD9AC00E52C9D66042875ED8A8340CE37CE026AF25B8ED1EB503AB1F29EEDCEC95C1053AE4CDEC7987E1AECF5FBB61ABCCD1AB81C38A674067B1D3D1DBB587BE58F0ED4F390F329ECF85EECF686FE7FAF7B065D14AE1AC5805611EBB4E24C609ADD608864FB88339A7C50135BF3B9FD149AABC7B812D9DD9902884ADA215039D1CC6DD687207BA91A9EC8FC2C18C15F2A841E2C7539AFC58C2F998B8D6F683B786F8A0859808150129BE0E57F7FCB39D102BA7346527F6C24DDD21B021835B32E094591087D20E0CA859159E033BD06C7ED6B76D56E49BB8DB788FEF5C3649197DFA25572301076AE65F3CFE0F135B8784614B65C458FF7EC6D386F10B673B5D17E5A2CE710835E5504902484DBF2D4C99B66821F94329F6159DC50B5F9611356F47FF4CA62C0BA7EA6CFF3953F68B3A2C4161D63C74AD4BED2EC2B7B57C81166016141F8684C26B7F7B7A6D136F1DC6669DB16215AEB0664B322E339AD8ADEAEB2631A18E423BD66ADB9DA0D7E29210A82F41EF96654032378DE32083A9DF91D237A69F7895D2AD7EE5695E498D7DA5FCB33ED831361A3AB049D36D605E3FBD7F019651467D06E9D8F14975EAB9E1D30296FAADEFDFC435BE54A23774D2D34284DDE0632AE5BC3EC76CE59675494522AEB4242F296B32D1E8F71B9255D7424CABF83377F94417CB6BE226FE2E42B020EC0132BE43E0D0F0A346A8451AC76122A44A15DD801573C704E0FEB63E9E5C2A7242A1BE0D3BAF8C887C05E032A4E5CF49C462DE9FADF951085420FD67A5E31AD9AB33B8FCE6C22C5E3CFE8B87BD3A13CB921CA861315C7714F96CEBAE615B179A62AEF869E81A3A5A16AA6C5A7EB6A7025BD47D1E734818A539AB8AABB6FD1D14F2D92A22A9977C9DAEA678DAD360EC2B7E8BF72A5EF72556251356937F6F515329887914D81B66FA071C538152D75208B58BD381139F5626F5373A6A319EEC4C79A37F759F27CB2CB76D18CCF5185370D3058C9B9571845554BD64D87D5999CDA335E3F93AEA99588F2BAFBFC9DBA476B06ED3A57D8D913C46FB9734A4B5FF97ACADDF5F6E08C9273F712639633A04C7E7B7CEF00876AD865F2895680A808EBBE6E8AF85EB2FACA81C33E4AE8097A9A003DF4161640CC96506F42227DE85E93177100AC01F05A6E5701FB8841DFA529B35507442480B00088C5C60026AA77DEF2B81EA411C88EA6770C5F849528EAE68F1D83E2462AFCFA372241A988E0738514AEE3F32723EC78EFD8C04ADE28291C309B2217D251C19BDF9E051394414E49AF076CF8A5DF9BE6A4C7825839F1805D3DA89EB2071B9E2486FBEEBF1A5967F1AC58A072901B82DBA4D6090E4A40020590351837EEF6CF6E4CC678F3FAA67BE1E16740E7FDA873BE73C71ADD485001D002CB3DF4FEF3ED277D130BF66D8C4106491448C10B8C402DD50C95CFA53CD8EB375D64E5E7500C66932B33E0A1A1433B8FC80D0EDB37004A2F64A3207512CA591123313DBD5C0C5D99475595F2CAFEE7E9BB138E518E679264D977E2320CFC59F467D889B5B4D3756D532C61BEAE3199EE83D905A440BA311D8F8B7529CC0350BEAFB908BFD7BDD542F6FFA460D2116008F16F0471157C117982506D82E13A703EB53544A8783484526D8251628E1020DADD2F502A5E70FA9E90BDF1CB9899F79B2F24BD5D09DFB876B1845515D947F8DCA2EAA40820556D16BD93382DD3283D98BC11CCE2418C43A35E07AB307766206C0F137254FE736F15821E3AA07EAE299A33C31C896C2569BD39D2A0736ECB396FA4AF9799180C693B342A56D7255659F75022E37D301041297377C228A367A8672D0FAFF459A0DA9C40BFF60ECE85782E991F0682DFA73099A87AE293860B143EC788148 + +seed: 2D6ECBAAE0E5A784B543BE58A0650680AE813A01C7E0C9FE65ECB32A304DD218 +pub: 1C2B6801785DCC358FCBD37F578673850CAD84EFBB28ECD828783DA9EDF6503BFCA2420ACE9FBA45D4F39487658C0AF41E5C876C107B772C7366B70DF124C15DE0029FA1F002EA566AF04441D7C7E33DFAB7936F19F34A73AEAF42026E4A7245D6FBA3C21F26EDD80652442522019A72E586BEF8C655AF4B3E6C6AE8B8678A81AE39E3A4D756AF595E15AA8C4ADEDCC4E5BA4F8EB4AB5BCEFAAAEF15A629FBECF7BDC657910A62E5E02E3FA3F1D7FC4D94EE56F252B53020E325C25129C5C4501FDED83D071C59FE6454AEB1271161DD062D0308D1C515360E3DE60C383074944762EA6464C175F7A9D317CBEB83A8238FBC383F02E299EA185C37F259EB4BBE3A9B26353BCA9A1D877007A48B1BE4ACF21AF2B6D1B27EDD5C3DC2A77A17C6EC0A9988F2DF6EF5087FB15D482439D26CF63256ECEC16BEBC92A65A112C2A277DAB80A0FC49A18873F9F62E48E44BE451C161D5DF260EB14EC62083485CF28AE98FABB0008FEB12B0387AA1BA88E70CA703F8E2DA0F7DE8F08419FCBD0A5C120081E0F57A91857D476DAB4BBF70B3BFB7695B48486F3E8ED074B258B930C092F73D749E2671A9163F631B9EAD06D631BD8325B4DCB40BEDD67D9CCE14963C5D4B2EAD21EBEEBB441936039F99BB12E5629D5959DFA5627335757A6FA6A2482DEF787BFB173BABC595DF3D03477F8CA89B82923799BD5A94329CF9B1B950260CAF3152441B51B576C5CA9213E8AE2B34858BD4BFCC5642FD4A65C1F38F5444BD0FAC0C24E6D9AB20791FD3AE3298CFFA4B1F2C113CCACE75ECF9A83015C83ED7C6B20FA037E83529D8182A16070C6AF08652AC7F4190BCB569A7BA00BAEE9FCA16D9B0485FAFB55F048EACCB80D72B34299C9820C0D3E06EA8B08F844D296C180D7F86AFEA7355BC0B48C58A65C55F7582EBFE9D23FEA305B645F31EB1BC7C158F3D14D74101973FA0975202CCC83CC962B2852A409E6C757427E9309746BEA177FA23FF5DAC5ABCC5F85A8D87861104B41B04AEF79C31C907F9774C06C2A4CF36C2E17829149743455E419E672F744C3A75DF01D6239E4492E643CCCEF324FFDC0E42E531E28D98E9EB41A5906BC6EC0C4B41ED82CA86262F768D89A3C8860C18F1B42356ADC9C1DEC2A311DBA00F7E24688642E75C1325D4F72619535302B520660EB56BBF4E7CC7F35EE8261D3AD2174EF0F5B5AAAF9F664B61AE18C5368F080A9238B6D4F4047836C9D784B95B84BDE8AA165B3FA5E582A2F24AEFC50F1DAB9FBF666E4ECC858599568FBD3CF90EF6F23365951A00F808AD1B8B6EC09084C97268330A5E24F4F8F5C73D5C365A5F88D1287C5E37076BF79D3CA40EED1FAD9DFAC8B7A954CD58BFB24C200704E19844BB47F5CEDB184AF2939341D28229F63EAE74D1AA2D14550474247FA3922D2C24E40A5F3A765B3E41F0126DF8A494F8C8EEF43F05E8AEBB1FC899013BC21B764C33CF4EDE643055DE39AE5394C570646828AD265FCDF37E0CD152DD07ACBA5C28E57BC8D82D871C49C457DC3CECE1758EA883E0E13166E4B82262492136FC221A15B9725647B10663ABF3A3B589A73226D8CDC97B7CA86CEAB4AD973D83F85190CF0F50938C1E11D3796FF3BC839308C3E8D96AE71239CE9C189F7F00DB181A95A5F59D371B3F238F456D736AF7A948D9CDEC9AD6DAAED77E47AAA925D9EA0B0B4007E6FE9078CF127729AD03FA43789F38D7277262502D17580A2586453B1C38A24C7F5C59D96500FF01BF04224A9A868264189DA9CF4F3508B145EF402D217CE991419B68E5A82E00BC46DA3149E392D042E785817A41E33C823F4C6D2551D5EB03E9EA862CD175D58FFD1B5D7BFD1C7AC8C6A505D937A36C89A60702B7F64345D13D82BD29C86302AACD1B1835186C5F3F56B9E44E085106CC96907A332F0FDBEA742A6715BFED95D606C9F05B5F37F8F51BB049BA47DBD5EBB80739817EAF3F09810B00D9702A91077D60A09E7E70562EA84492B9DADFE4B8DC957727FA2296A97D24CA5F065F17DEB081395DCF58033AFC2F424A0CCC3220C477CCD627AB4E1D7104477D799833E2AC49AAE6D055C97D32391F7C138DAA8CA142D33CC035E4FABC57F3D1B0D8F93468D08BA33BE80C820EA5B3445B4E07E584B42DC27DD24FE42DA51B410ADC3D8AD3B8FE21C573858EFC0B6E709F91D86F6360C5B7F1F98A4B7D0F606DB60BE93CEAEE79A2112A93D0D6581A58ABE136FC6A87A6FF3D993020A6E5BBC682BB2175C5E6AC38708BE21A501E515CDF4D87B0D1C57ECF232936A78C525FE54557695ECBFD0B8751BC299F0B8A98979960939A1C88F3553A98A30021D27C72C9B25D274D642D50E0B438A65A68C6A2FFCB3D0E7CEFE9F0F5722E033F7358D7710D18A1BCDB12E4D01E3E8A580EF1A830DA29207ACBC45FD589270A9A82D7E090406C60DF24886E62F3055CF4E9E2D03400475D226228DCFCBF396868B1E79F91ADAAD9542CAFF5FE3483D51FFEF8CB247F2E90F489D0066E40BAD3D00222047BCC934FCBB4084D5D6B0397C93DECFBDD0D22CCB2A04ABA3DDCF8E6BDC4BF271EF1B55F808AB58CFBE7B8D27D334F0CFB0E2A8E3926AF6B584BF746DD8E7106EB4D0272B234A48707A9731159BA9F772D1BB885A8BE43CC527EA6F304D1CC25A41F876D393838C13D3FE8E7B1232DD59C553977D86D2F0634C9061CCCEC779862398D13753F046CBC1C6BBCB2184D3B93EF6307D094600520A13C9A61CF8F24B966F33A4E1D4A63129B +priv: 1C2B6801785DCC358FCBD37F578673850CAD84EFBB28ECD828783DA9EDF6503B2A3D818FA1632E882FB4B102891F36847D725EFB265104C96C6249D614CE2DA2FD15B9A2915A14F0F18067A2EBC07177869430C6A3900FFDAD11EEA8256258954C53CDC5092E082B959CAD36E830534AE598CB9A40805DA6AFE3A33C781B67682304811862666262674883630257466336654176127111610188405651882248835621772103713057301461408544446057187771006674605835060402676635418131476413436003120645277455515485670383644331501872624770716378003605043343662173545134662807012482221028367326430336535664448056113574018581120523841166041143840318651156482606328312581566713531544126481316674737206548863641151137443513805664368650232741372866237083842038500867032145440548358704527308541843850274876810732814453828163568433334252171168355156128245552322375020411688726150257732451832171850113208171275024208763087043620431368784852342633345325381082054768367221670638442265455241150542031786524420340504232434554630307202834160338843770683236510173416158055663006632524311202770074186756864725651225115207874172102767108723215410126544502265753858458031284223785244845208708477813813164616574044334063467141642437824662515130780320530524304615455323331052410022757028285822155463465307887721528548442757207157143662703603322523164328585723017213078884661343736471304300711110210007661410452167826762283616602211111814737670478671581647376618273266215607470650400468274107273140772805621181485466005826678168630861123665356648222147531357331816374484742736281012353528830064601303473326670343601815332320656614136537004121661334847127484167341210426215347444665228633775855605113481362562501604066143748138675085214380117534354518528803214733100542576016451870144542343240477121026665084103270221073287781215258026275727484778353836573535212634148130745855242442608642460711873814258078850618877672413774513172426032072356862074508810306014067080867427757824824028824108174406026218102520624880108734712762825145441131055432206348270026562148550718452404551485343104823587357361075363067777608700730787068538524620734084330357617168267260432467052780270082138751130213247302351083133755083746701327633651771612817385522241687365428627888010160240244451556860642616888021741676615122361567710825223512105410650126041326541401456171026106665284806160355012356447348246653058504148285820087475110160353520303780551734644523605167821608646410237607101761118786078003148446280063422132668120564163088754007557568310505200680472867527162330302442631523115778167707572822871262554364140832017606753138334338852737720140605628627473251125862002613337020675245162661260861007155034720455157108418561023828220700355382181424101273721445815451858423724440784253713785183511880022873741854405034651712631638575532026648282103088505253625664346403781263188161174460770820772032382661577887440223154505470856385852111666161268622021383012686823504876281517266854274311810301526324508130485562286633448201880388745815358336710062432506786440757406072140568841501477456514813456204417571574122527482775515235688833535654757407187843821823872746421510747450775537360482055485647333021465B68C4EC5CBD1447A46D08AAE37528E592C1BABBCC9F5FE65F159E1C54AD88B07A7C424748C63C42101D44A8CBC87510BE76B9F61F3314BEA466B2F7AD9C7831DD8F077ECF863AD498AEC0735DBD6D0A86F2DBE80487C08E0E15D4F7CA9DC09822E3A541D65A07BB3BF9C39AB410EF2C0A2F707985F8DC2A72C9269912A3282D6D0480D37927959BAE33003B5A03A2F82850BD15266F977EDEDFFAABC2B0BC9BA8C550B5D7519806A574BB1402812D52D6133845DF5EC6172352C2FF5D258D3D5858A2EA5EE606A40CB2D76F461980816BF6A536A79D1667AE5422346BDADBE2F6C70FC143AA30F4C154E22E5DCFCD641CE01EEEE50F42AD9BA102FE9D8A186190A495FA807A5CA7552B8827D90FF2FE48F8F195391E358754A3B032D155286A324CA507F16A815706A3A5A1F127E134BC5B5143659E4601212A46651A4C7F8823AF02BE5E3E04F41F47259C66B131850A7D9B0DBD3A415E078625127DE9F1D602DBA207C0720F3F96A44D86D60802ED16271AFEEC041FA8AABF92209A4D9E53B311956E46550E4326A5C50CCA7AEAEB692176DBBA39C51272036B38FF92182A22C4758D1B865C1BBFB342C1F9407BABEE19DBFE046E122E18CF7A25FEC6A28CE4C33C121ECD9316E9AF0016A16BCCC46CF6329D878F48990351829BE43228F200656D57813FFAC51DC487A86F6858FCDC46910024AEACBBA199DDC66963D914E970EBD38F18EFE709BA2691DDC8CC272095302BB2D25657C32BC64915575B173085D920AEDDFC37177B5FE4F38ABCE426EC46E0723E00982FBE5C7E8E5A4F26540E37DC39E022DE7A08F13B3E9F88D05C30C8970899E2C3FB898CFBBA00AB8DF919FA51CDA3E8193F52B8390D7C274C7F5A344EE42312B823DB36BCCAD37C4B213011F0310DC9BA72B851658DDD5741731F21A6CE7F9059872CCB9ED69F732B7410033D8B5ACBD66B33928E3A7D7D5A28E3245E883A2AD84F7C2409AFF0402E982BC95719C10BD187A454DEFC7D3693AC537ADA62BE47D6681667CE11F9AFCBD8031F92085400BC086CB4B61FA363096DF205CAD59F6859667A9BF44888A0BEE5D4B63C4E95AA59F02C2AA9BDD02519E1758ACE89AEF92F32789656E071BCB10767F2727C309107847DE2A0C06360DAABB356C35086E4C95AC668F0F4760F636754879CED6A1D569FB11E5EFA2802E8B1C8C3935F6C5C097B96EA478143C2D2EA5C1E64FE19E03F180B70F4EA91FA327AE0BA6F4C3179570C62C10A7AF043BE2419959F53A31EDBFA1E091029F96EA203BF98E6798D96727DB60909C09A9339FE71CE9E4DA0BE641F0E8E53B43277EBFBD0682459DC028C6F7C042C1CDEAE9DAC9511E6EDE9B4927454EF9BD651B233606B644BC2DA0B29500B0890D64CEA0EEC968146C5E5FE395087BB4884F0206455290BA892B0D929632D098C33C8D6E27022578249C9DC0C207409799801ECABD7CE84729884E8714A19A05B9C7C8E6D203400ADEAFB0CA2669C8241914F85186EA0B50AB4FF646C5D386FCC3F4178EE18BF5AACAF6B1ECF1F5F894ADE5FB8F5EA336BF88548102EB3C897AF6CBDFC7A6F6667E075475359840328BD9131D2D17FEC3A9034D3C7766110EA3118161A42D3B61AB5AADC71352BCD0B5A1DA9CB741F70A6ED9EFB8ABD5229697852AC27C189CCE811A9025BDDDA939167BA717F1C3EADED18D9FA05C2828673AF274488F154B63FFBD853AFA274E182D83D37C97C7090BB9F2DAF9B37862F846C46E55BE02AC19D23AC0760E2B657C0B1B134FFF3C6753F96EE8B2CFF394B0F5B50CB77E8F7614664FB3F0EA8BA85D45582A71F3CAC0DFBEEF6848C63A270DE0D2696AC4FE1EEAA781349B02614DB517807CF4D2B0AC80FFBF0160CACB94F2C700D57E156774D85B52F5245DA4DD8E4FBD2B9DD1B9256FB65D538582CA08C20C289C5AF404349B12E5B3A431F53194E894A45F7AC68FE4A0BA8FECEFF0749ADA4A9B87D52563572F1B0594C62586BF28A821DE955696AC76565861F6F44A167534232C3EDDCD921F5D939284DA288A8233193B231905C76CA822B72FB04C21B4D7011D4DFF88544C1408FFB8159A597E7C4184BF2AB570C9CD7C0B8682EE942B864A52F4B71C6A79121E16C40DA0AB4718FD859598A4F52790835A5D87018339C221DCCB8011796CA373C9DB8EE2926046B0BC01C4CC6BD84E824CAF382EBB9D2BE3F8366100116F0234CB3C53CB418BED8B8A530CFB64832C78E6FCDC31D830E894DA330737C0D14EADA335E7BBA9E270751BBC0D72A137F3496D3F4057428F00C5E8A6782ECAE0E48C3B0D1220F2738AC092793C18FD30478B57BDBD2C4C9462A37B1639163BDAD2D9A11C36467AE1906DFF0F3C5A7134D09168DF7811FB2418C43D576CCC191F0343373CE73432735B178BB122A9A65AE84B27EE42707895C6412A4970628DF736082D11D2022C08C2759BB086547148C885128882C0D716DB047A5821BC1BBEE85E4AB3C5B8B40A5D673CE74357A475D47E96EC40337FA16C6B2FC3F09EE71E7FD4458712112412F6549775D0F66DA948E34BDC30FAA8BE5241D57C48DAE353CA3191AEE310A055850A266E04BB78982D0432D84531B0B20A2B3D238C2EE1556468A193A9A032657226AC726D9757641829615989251393CE0171AB29F94C1D583ADFE35EF8B9859B67364DFD3EDE5DA27CF277680C65C0589CD7F715727017F02F14CD9622468DF17D5697AC895AE8D46CCB1FB0DA103AE57A97F316BD0179B297061F6286C07294C55458144C6AA2E1932388362559F28289B0361EC79A8D81E6C77E7EF0D3327A85ACCAA082862BF5D99DFE89243125A9BD7BB2FBA35DB442E41E1DB8563F54AE40D444974307F410CDE68CA0BA9B923F82D5F181C141F3160A0450F57454FE6DE530F8661D49E1A87883003C5D1B83E0F21004E2648970E3807DF2B865BB961242943733938ADDD5D219B7FBDBAC5ACF5EF250A67A0923E8908C265876E56907F71FF287A6C16F21F61424D72F58CC468D399045F32083A17736A99A263E976E14492A6791E1EAD4D568AC062168A7E85F115CDC302B567E66A6FA7BE6FC6D6F7D4E8751603079A64EF9E46B9EB1DD50D94D0D85CEF2F7BFC58B5BCC193555D4B83D454CFBC2F910FF7D6E22E9A27BAE8A95A229D79C64BBCA7F563DA32246BD8C7B1D5022E0EDCFF163B03E4A3CBF2ED74409FA652D82311A753CFAFF4D9EA50BF7D91212E60B23424C90EDBAE25F0202D71CB566D6C4E5106C6D618B8E49ADD7156561D11963D2A1DD17A7C2C00145FB0AC9673788D8AC7886470719E405BFCE819A7083DE2D841FE616078208EF2AF75B38A20C61573A4094A6826DC2AE481A2E3391260BB9F01075258B7EAE81E2CBE387FFC018EA827BCFBC92CD49ED433DAFCF00CE55812FF8FDB0F566DDA8C6F7942CF7A9E07E2BCEDF02D2AAF40A66D0A55912F32A1F1D5C5071DCB5EB86CFC576791FBB66B5F0D38C9D2F2E31F86965ACFE661A9954F3FA8E9652988D0D2BF72 + +seed: 3199830796190C3968520DAD86A85B677558A22257E43459AC684B68CE336DA7 +pub: 525654293354C2A1B9A2A76C9A4908CF2361EFB2312F8751932347FCB8153A473CF3EA6AEBDEE745DFF2CBE7A31EDC4221052D97347909F0567ABF97ACA00EC5FB1D9044A346866B1D7F99084C55E01687D6482390FF78468628D011FF6435C1A0FA157A895AE77B1745E49EC365F051A461980C4A22715FBDEA55972D41FB6549BC5085E175042CF5554C03D4179095625449D7EA256949E94469DC1E1BC3D5D91F2DCEF107EB8F17EFDA721EC1D1B0F6BDD2DA9F4B628B4D467584A1DC37F33D4BA326A6E783C562548EED4891DDB715072A7105CD1F65D4E5CF147896E3D16AFC221CBE3ABBB3633709A91293DA31A0C351C9974731FC48D72BB69BA69A76F06EF17E3DE3818570809848DA31EDE05D9BA734F898F38058C8726B8E08A22CB0F07482E4E96CD9AF73C9A04A16E3DCAF2DF45DD49EB0AA4B0F263D071141C0AA08CFC61CAFF95AB9AA4D66C20FCEF62F2E4D7A85EC0E4996AB14DB4130BCFED9C9465BC93D8C424D1904A732E5A198D183B7184E0BE2123A135139DBFE7721B5863B30F8A99FBC5221F1863CD22BCC710632B300C8A667C702E091807A3BA8DF2A96A072C991673851B0F30E0570A68BE0D1AAD7910E68C40C240A6F151B559A970A1F10A81A91FEAA8226389C9378B178BDC69A4DE7AEB439007741EEBB06F2C57BBD01D80114659939715C42E7CBABBEC944E40129E4C626A53CB1AEEA0D4C1EF556A9CDD6411010227CCCD4BBFCF634B2B59FC7F51E42AF50339ED2BD88F7D7840CF2A26CB5F64B1CDD1D7671687400219F4291FA480134E3BA5CBC8DDBC463E552F8F92268962D97154BFFD77C061EF9C14D343F49EA0BA241124DD41211E1B75F6C0623CB0822E5FAF8CE10BC07E9AE9441BD50F4AC7D79846FADA78C9793A55BBCDECDD98CE0A669665E33E0A8A142CB338D05CCC9F776A04DF80A95AA00775D52803EF71A57732657EAB19493C212F9EC961EFB24302F32A489624CEBF07F23DD09412045A413C67FA16592C8BAC0C98A5D5476EFCA9B6BFBB38E87D301579F8D8AD6DAF8B2C6B9DD026C19C931C42FF9155DE9D0959F30E04463F264FFC1589A9DBAE3D96E247925892C230A6200D446FDD0010BABC17BE23EB98183ED8E333EE2837B43895E5378D3BE60136696C2CD55DEC42AB817844E77E430964BA68E700B766BF046655954BCB9685929C018B0B3C7747B8CC37F1141AA9A3B190E46578FE93DA3B44BB48F339C861FD4F97BA0B0B4852F839785C542E4151D9944E26A131D5C248EA31C9F41B158F8DA5E025F3AEF3D2A15386BC095FEFB360E4818BD76446D5F0A72FD4954E5329523202D7C05EFAB170D185B2BF0D32BDB32F33A7460DFBC4ABDD929FFA5FA21340A5EA68DFE1DB724E0E9FF2E734FA6A11E5FFD61F086C90ACC6EDADFE8DF68946901C5CCFB5A74CB6B9CE8C490709B0834605FBD161839568FA1413571BC7B350F78F48D23F67122FB629DE30A85C594620B92284766F9F2664C7DD414F2933E0E62C0DA5E48A8C82E34D66C559D9BCA52A06E55E42817F4B5AC06ADBFD3B06433442216E47FBDEDA317C50E2107E8D6592C0BDB963DD4DF016102C8BD78C5134E9E120D0462606EB5E3822D00D235AD9C7A8CF169610C65AAD5480C45E2D9D95C80ADCACBAF5857F86FE4CB5DE389ED1803B05FFE13F724B02FEAD70E900F3AED263624AF0EEF24DDAEF803AABB07EA37366323B6C306E77B81B00B3A5823611C803A62C9287A09035834BEE86ACFDA3EE3A3FC69AE707A74C37CC597AFAFEDDC3490E4F19CF0195217DF1BCD3E24D1BE5787C6A08369EC6867593388E2CC5677A10CE6D9AF6C0FDD970F0D484F041C5A4C2697F92E52DEF895ADB8194A11711F055FB06C5B9137D446AFB847E562A1F5DDFC6F17DB54DC8FCB33C600EC7BD5045F8EED910D2D19D14B422EA6C1F31D3AA272C2D6E4635F38AB155FAB5C8595F5A1ABD240150C1D20DA320A7702A499BB3F51AE6DC74240BFED48D152FD628E7B2854F894718D3B5A94A887B12BFAF7456C418A83356F5D0ECD7EF4955CE1079D4781BA21044E64E71CE375B5AB6977D09957DAAB44CB2B349670B11C3F740E85518124332EB859718719E4C3A7EC3EF474C0F4EAFD0C104C1753396E8DF1090E4E42A4900665BA62434D8F1D3E3DF25569950E401205A3A8649853EB34DD026D35CCA312C5D05842D2744B643728053A93EAA878AF045632C4DA0986AEC5F4E5E0F93DAD38911A8307622A2EE9FBB93EE62B7F2D90B222AB0D23211E71227A2152D6DC2E536EA0F8118464A9C8F9B1D85D6C10BABEA6FDB2262595687ADD404C4C15C4C2189BFB7660C5CBA279EB6FD85A4C5276005C7EC5B3765D299783E926124597132D7EB623D665CEA1DB454578985E785022F680BD1439AAFA60E90694CB720EEDEB301B9E948E424B5D5B4E6D976B6E3BF31029F346024DE71AC2C2B42105FFB6054226FEE8A80C2471C052C3C07D6A4CF749135E03A0B263576F9F19BF7FAD0FA16F39A3A8C4335B0039A197C12465C9C9D6E5D5964186FB6FD7E7EC615F1DA758F207ACAF8B219B256CDC6B5200B64FCB9CAEF6540E2B4D5F382C9D8682B72F3D359650D74E69038527A215221980B30AC3C066F2198F781D1D318B53F0B0EF5A8FDCA5D1B1D6D978CFA7D8681E2BDCE2B0D494A30D7092DF7536B1EAF0ADC98E00D9FC718CE797240CF4E3AE2B8AAA87AF2FAB32922E4A87CD267FA2B6F1CA38F4F5ECBDFF0C879E12 +priv: 525654293354C2A1B9A2A76C9A4908CF2361EFB2312F8751932347FCB8153A47AB123CECA94687F65EC4FD6FC892101A78F01026F29E0135AF71EE700E7C2CBC73CF903B7B4888927C0F819C0CA2EDCBD907067803377984AA4FF3E17734478A57E2B35B766399418F75C7975ACD04F60063F2F0BFCA26E50F070B0A1A195353724566837267013523843061217340448208603377516427785068105543815455713385838378638182068387137202878174761230078700864648646024855062224860686668854027226160574716084705654107343266361631364842553385601555588856047580535034530370012175508353073724842155863748067168114848882320522407062271240544578230102367855236538671440435531266463107672883753384543572436706682450834316033375243560363701823084801423101304218866444185862300771604518682156827233004524227545010242832663758743810826325221807752832476605018480872813137847777000653666127557527716638486160042404864166636102870313548832240045178714184303667865718102217306530807425665255147226317774324026116685410151810861754650667058078686427182806416042711402016888435813707675336867138675385874877012367321122252527373105272488877008643087733704347456662422460586083063645404228215715050611018103186084667757203763065215143246526035450665527055616815808787430678265678120245012578311308256263333860323880466256476062110526427163351471203052665006541664736828465247818142306281443835837182183652107651602852387576021550653670563332605536365174537158126383246523487401623134168384464856206204768217870623261824124585771546525528033177675181171075524844712203858364348868366630338263454740137745641040281333252087128027252246866743284811231073882131764045468851375840422556572064517855348352776346620056667224700385762102065606267611202427345130114347574537103157673262766574536203507836868203424662260332464514814176307376835282323336537583824722072737215563716516622534570868515740510531360567302685310330081808880645123531722346410845162360657713551527237544415554545544676603556376177653716885147033372853404163258617884540527813328211514033674414257460047837602245324068143272035585220146643616441718725600482680403063464864523457642605402244220645225704532847633875702715808568343465273572577521166715627587343885578373673372766332716633554116600462443030006236252146783520750515425417144815346847112732253776133677705301441278410464448741113474825577724608565567664387072414188665482012132181145627744672156457615822101260650685316686216446276142280271565741485500215068572175027842512176043780617184765347663010028034833058116425222513618208124855666167843357777361347708737016118061814685808301052444558752468101207730047385746728811752708526513738756226634713860484428284725564228166015837222131614501433104081222168277767128212721462486143511455718342443083388355003610147772667647654723627762544342374672085384358876058841431863634132804448410306706760647544551074056854262848837436080043515363533205588831716267387132602472322688526176687873184770211636173375004366841185377208728801202224543227412038046055442545283515488671645386881814722167054187675850246200624520546261410308840183184005181485267722758628353566744521701762386445637465210013676767755BF422E848963E128A6250E1EA8CD6994A61AC9A0145EDF10B3F305466E0ED49A068336C98B0567F9FB23C5A87F7ACAF7F22A9CDECE4215215B168AFAB7821266C858A92579D96BA48BC94A120657B5C60BA282A2BCA3349C13C2E56D7BBDA2D0DBB6072FDEA7A1D8FBC9B9D965E9C8DAFB3DD8EBF78BBC57AE218800125A80765173C6C95FB23FFF90C87F7F090758A1DAC96DA7537B8CE57B1E313312CB26799A65E9AAF0387D2CA3DD5E348918B7CA888E0BCCF9136E55EE70903A2DBBCE3476AEF4CF338E7CAC5FE067E23699FAE85A9EFD9E68242949786AB2A2EA82EAF8053E20953A1EF07BB9E22D7847D9BDB6A06A09948038BA5448337264179180AAC89158B68A6CC91507E552AC1DAE3619FD2FA2E0CFA0C2489B3C9AB4FACF1EC5BDFD188BEC71782AA4C3C6B0C6097AE93C7EA5920A832F6536CF5E81D1A222B9B936D5B57BF539014AFB8ED19B076D5C3EC355D06A7B56523273AB4231A4DAC8942D5DDFD58A73F968CCE3A8BDDC5D4F703CAAEBBB910C264EC2079FF75F9417A97502C91DDC2FF5625A3C535C04C8F95FB0B557B6335299DAD717D21A9973433C5B11AF908BF9B88E4B1941EC12E9BCB9F2B2331B7F08B2EB04FC30CD0A99ED2CBBD3DB18E32CB5C160FA885EDF8188FA8716C0FA9232FECFD3EA34330A61465D4E10C25497BBDBEE15070C3EA66E172EADD1DC7686CC32418CC26AF4B2D61259672B51D6E86DEAF4208F6822FDF28D4F3706D92FC66EBFF9E6AFD36D2D18F25292E8175ECACB7465FC04E674ECCE3A62ABECF9C2D1A52171FB411FDCC893C43C6CFA94B1731F21278378EB94ECD9774054F2D6DC682A07980C87F6C37D3C0822FA30334B90DA764856BC84CFE131172E75639935E9FDC42027907FA20363B0A32C7A29588C003DF13DB2AE9C7BD6682B743B7919DE78F8E819376C1D9E64FD1EA0750C335F56E9326E94107DF6E441EC38507755D3C48301B616782A1F4ABDC98BC8585A18C29E80A32DB88EBC3959DDEEB53638F6D58B58888EE0FE37AC86148BE1DEFBBF3E5FF194F9538044036B95639DD219592F0433D695C074CE6E9710FF9C0B1D6891ABF1396B5CF34BDECE6B3F559B1D813CDAA5DF038A949AED51DFF2C2E821C643032FE6DD6A74803E2E2DED13D446BC969AF4A0BB2B973D5CC54E2AEF9896EE166D807B0E41353D6DA28D8F5FC2F3D991CE68AAC6DC75663323080D5688FC6C6DBA56C033896F0581BB8E9F0E9E3AD561490FE9B8702D9FD32B652C7E7B74B74A489B981DCB598B6DC38A7CD69C8F429D1B2B0C827D8AA31860842758AA1720D87B23074DD0B70601FE0C2AB6B72BC4FC836C81EFD49B94AAF378AA828CB90242448101732633D0E68DB2573588809CB76A80066109F6805445F3880A4CF143D02384A5198E84796EB9E3EDEE3C64DE761DAC094B05A4D8981CB54B72C317E4ED791C49159A4E4E8C21F869FCF320F90C0E67B0BC2BA193E29E5018213C1AE8E9D256D8740C5103DCBA8EAB450A6E259B334E3448CEFEFF100D03104F810A7CC5D085FA80F054E4AE67AB242545A818E4EA1F3586945C3A4D242EE5ABE14DB6EA38F50407A88DA116D6D3BAD935A32817B4A24119E9A103FD7E6FD5D5E020EEBBA1390E5151FF456669E4C14EA8E7F343769E7510AA68D624553ABFC6EF2F839AEB4D6D5E1FB57510D3D7A7F0EE969CCB11FB023EF279FAEAEC6CF377B524D206C5BF4E529C315E6F23D9AA4D8229F3AC1A0D77B26F3530C80EB77A55F45AB9FFB9FFA8B8EC28F733BC500BD684D49DA1FF31EDCD20C24231086BEC40E937C2AC1F2D4C9EF4D4274E9F15A6F961820699B40D0DBF4D11149E5696652A75D571C61E8ACB9EA96B5EE185ACFB344C9DE2EAF7F956F0569766EEA44AB42F0A2982F0957F5C70DEB7248F6EE23D322669E2FB3520CE9FC98BF79636F5156D9678BEF7B19F916A8ED1F7EF9D34FF853923CBA360B10086A64BE6BD6B52A90EC48D763C5E00A9BC0822836E594AAD9BF91D0945638B6C6A961DF953F69C4DD75799C7B73CA6864746EC3402BD341CB14EACB6343FBBD244BDFE1EC43BD6A5A0B1D3FE2D896A04FE8419DF95A691020BF61D214E4736EEAF25EC01304E6CC167D8EF969B8E2ED2BA6F5328EF83903C73ADD97CC6CE4BCA6DB63615932D3D0865EF837E335BF54AB3CADFD6EB4A7AB5FB441644AE5748CCE75157F669863CC89930393083D8BBAA83735DE31812E471B9858E267C7E646C3F204250F8D4280494ACB87D82052B0BE33002806912DBF10597CF46D78E8C64E648A0BC8A756D8F09D1927B73385E8E8E960CA2F3679ED81B0461706F4864043D5DF4E5CA59CEF9A484513C86E2FF44C496498EC88C0CC8BBFEC45C9A9E233730C4336A8D4DA876BE797B57635A6CC532DDC701A688AB712C8380CD169FEB3CBCC1004637BCC616B7D300400B6C55B0134FA2D6B96A8AEE0A54FF88895E9A16FFE4EBCD308C7E112E0FD81E64C08239BB95D52EF32266668E4F0F39EFD341B159DE7C8EE179A223D398BA70A07B774C04FF711EC50B94631BE472232731808291AEBFCF6894632B1C1AB119243043AC5D0C054B60883D2083564133FA82F3A46FB59F86334BE0C6E79E201DB85D35432BD1793ED3B28DA8F65C7970DCB9FC6EA0902E9B83C4C8AE86BEFE01D3D5DFBCAB946F017CB2CF63AAF8B65BB26C8D6A5A73C9DAEFF2FD482839916D9D60D3919607CB99A7434574F05FCF15F4F4F03293F3EF2F5C493CF867A4114F134043C5A5CC26F8875B6170C787FDE2247DE3AD7E80610F6CC09F58B66F6DAD4354795D49F994535B4424244F18FC65881F9DDA7900F7066B3CEE542575F13C9B0E3E236E0813F2D7580AAF8F9E564A3AED65DC17F0A6EAF79F4015ACC811F5D2145E51F72A1680957A97D36050028DA3D3FFE4FCFBC223CA4907BDCED64101577E2418821D77EFB9D868FC824D7BE13A28CF1EBA4418BDBBBAEADB54B3E162DEDA47FE29C993488D2B5E41B390BB4895A49717BABDFC798474E852CD8B573E960B44E85A2174FDA806F97A991BF9CFA8260D0EA441A032DD91A24C2AD52F3B8064226B22C73DCCAAD5DAAE55E5FD30FC31A43B022D997E14E71D3DE8A8E1F4027324E22E2A7616FEC4E0ACDEDDC12C04A56B65F0C00A95B8C1DE9B61F7C589D0D8F158E5C9C65439376E5E935CD7B149DC883FC602370D38676571CA764E6E5A2467EF5E775336BCEE1450E0F978BFA4A0B4CF5A72C259FDFB18E54425ED83E6DE7086C5A175729E38DDE3B46E751AF79BDAF0325EDD7CA791F4F760FA7279A7C17CACA8DC172E47362F90097EB36A8CF14DA378670639D239BCDA3A8BAF29B12803CB26891E4B0B24BC61066A490078046F000324E5186C39EFABA39C5EC4AA8E9BE23BBAD6D7ECAF24A5BC0EA0DCDCD90E17EB7B90AE56D12420786F07C8F2EF7944442AD36E2ABCD1E66E694D6B949EC2C5DBE99832271F3A70782CE889A55D93F78BD4F5FD19C580F456E684644DDE65A045D6D64BD99 + +seed: E788F93DB12EB4DB91993C6636C009D06D503D5331125A2AD635354AF49ED3A5 +pub: 370D66BF2921162F6025F1784F8CA45A58E6E72EFB8006078785BC023D8CDAAC29339D545F3F03DB0EFCC2AD356020BF1DB8178B123AB7222FF4041955E4E9338DE146932623EB6517BD73687A51A67623F79A36735AD64D63641D2AD2A040E8CE85DABF03D47DC9A3E98CB8098FB22F84C370D240AE0DDD46369D02ABA059E31DDFD5F56FCFB2CB7066B488C73AF6958DCDEFE66FE5CEB0FCBF298CF576C48F3A1DF542B5343EBC8F2E80CFE4A2D31DE6913EE5962A889DBB22067FB377606CC1AC663787C04BA8C2BBD0273D38D71D18BB7AB435544535A60271B3B2045636DEC30B0727C3C527F00DED0F08D372BC985F3C8FC12E1A46FCE031D8A2B5FC93EDADD15EE8431435A7C6797AA343D33B57AFDAFD870A643D927EA85C01CB43AD709B72F1909DF60499B75B0A29445CDBD1211EDA6666695052E4A80BA3A4B22C33B40BEB3CAB8100017807E5FE4EA49E3FE419EC2A86A39631638C0122728897254A58A4571E31B46583A8E37AEDC5C437E27728B1F14CB7493E5698959B6909FFE54A0293A754E34B335703DA5D99D6B146F4C7118A27AB8E1F9DDA161F03DCA0C6408DA273D5517683E5E1F7B3C2F29AEF73F75F5E60CCEB99AC5327F168A283E590E637D33D6535001492DA965AE977212056569F2456C8F9596DA43989D9162DB32D8B2B989000ED4B3B9F87D1251F5FC9EA71780740761711E74D7EFAB8D007B81E848CD2493117D3DCFC2BEDE8F85592D8265AC04B95282A06EC534E056ED8CBE73DBC07522E1E03E160227CA1AB5CB3F08D7BAA56D03F9B7C12DDC71B69EDE3F6181FE721A75DC0931C11F75D08754BB461F4A2C6CD584AB8419B7BFCB7EF2E39D8A4C1292AE9528FEF05C1F5D6C7F57AD50EF626B32EB916501E6FBB5F9A854095D28F8F6CCDC3C8B0D56D6BEABCF8578FA38FD947445C8A486A8AA17CC5012C64B21709EEDDB0C4D5955FCCC688A9838DEDBB005B7D73FB63480B296F23282D32C01601758632EF62045E9DB865BCBBD026F5E560A8B3A7784EF75B37F03D2A588B53B76DE01553F78477731FC4FA2759CA49D03004A722825118A931E9E0B360B2AD76293F52CB80A0311790CEB79EB2ADEB151052A4B8C220140BDB45699C12824D1416EBD2A1A18A16EA70035E69D2902873423AF69E7A7385F1245BF06D1683CE862441914D77DA427C210311EF8A703CC2BFFDC70FF7BBF310ED56EF30EC8D9125755AF03D2809557C89B32CCBBECB40110E0B786567D8531216EAB5CCB8C96DDCF03A3CD7E0E5D6104239D38B8DEA3131716238B2429CC6E02CE3DC8AF757D852AF7CE141E70A0BE92AE640ACC586FE960A440C4089A515A6979345D087C9A31B7F6594782EB57FACF3ABC51FE40D5CD0328CD90A4C840C058313B97E3C330BE1273C27F4F96BCFC066A3476F7D89B5B1609718A1CB91C3580CD215DD9EAA4A95564F42D6D6909C52759B030BFE18EB47A7B9FD72E1AC05C946C372B01CFA06682B48358F48E0D76F9DA3CDF60BDD53B9A09A641E12CD593B6593A62702A1FC7925447B1D7AADA5C8EA884E1D2A9510BC2337728EF44D66411E112B71B2C203C1F7746F918CF4F29033293BE45AD2B4A7518C3055778FBFBEF015E57777BE7A8F6AD535C0985E174AB4BD96CB78F322C2EADDBAB2CAA52C8989C1F3F03F230EEC98B52AC6A0A2DE8C7EB09D0E1B81834B686DD3D9AC1920EF6D817F429B3C314240487B0C527D4FE754A3E0D42D8167AF4B05283437A76D164731B51894F4C3879CE88645F389DCCF109BAE5ECE09193EA6C35DE193F6C68BE0827E38F4FE434A06E761B8B669B22896B9BF891F2F0A339FA0938CC231C37A223D44FC2E44EA78398F452D32BE8314802971ADCACFA737B2B90CF1B8FD3387D4D774C7BCA754BBE8A06C6425B24A0F08152FCBBD0044063BD419F6286B26CC3104416CD3D34FB06A7494D1FEC445589E56E2FD976E96912F72D377E4BBBFC482803694045EC116F4D5CE28AE3D453100F2F2ECB8057F47D41DA549FEDD18C27D79499CCC62A503F4B91E44EE4471D13B89A3630A4B622151EA3AFE335F19ED80FFF32267A32A2FEF8B49E60C9437B7405A35412292B74D3C38C825DA7D27EFC433167AD46AF0E341E8309CE6A95881DE1C8A67A9373E712E95B1EF948AFE624E66588060CA6A4197335E6BA537520DB6869B6BB114E718519BB72FF3F913074EF5FC9CF8C115104E514B22E37A871C48AED07FF93656FC99C3F1F1BEAF5EE12CD9D86A8FC6EAB7CAE5CDF5BE07699B0E801B9B83947C6D78254DA8E77B82330585EA02B42F87329A76CD09703DD0A24E01B1B63ED00926B4F4E9DF2277256A06EEFB77BB04DE09DD8B19237D40F141304BA7DE9F9EBACEBA0A86B0A73310E138E02F0FA284AD4F47B2F7A4F18F0A166E24025201F5449F1BCBEAB76A18832F27CC5650F9B3AF19C9FBB8EDE9C5561E43FA39503155C865BB9FA2D97FB64E8675CB8540E10480A85AD854AB01C94909C07A4A8DC2122ACFEE00450E5455B7BE692DB87A94CE0F367B3E6E40687E50D427116A9DE98B1FEB0AD0042FED0482CC695EE6ABAF5EBA5FB10DC46820643F4C40226197096714135716F74A10888B2CABBC27EF3D4C4A51E18EFF63771B43C5833B3C7577340D9E729CF730702F2AFF7BA8C0C3812028AA36A112686DAFCDE36D5132D4EE31203623224127DF3E69372C45D7B9E0370A3EFCB9577BE0952AF2E4C2856C0C156858A12AD1E6C54E51E4 +priv: 370D66BF2921162F6025F1784F8CA45A58E6E72EFB8006078785BC023D8CDAACB6D6FB5A7F5B3C55D1B7B4D99FF4A4E464226FEDA9E8C986B4E5F41A37EDB84F87FBD62731259FE7266BF78C8C1622425EF797EFA30EC80432808B12AC45919A2C30DFA9968D2FA70B94C03CE2FE4CB15E52A9B0AFEC74FAA276A5A6C3913558165301232343767500140645258743061342542321447425681352486528374628548377702443573345023511515432272262636387653371116077564331128261673582164376865470573778011771888324265183248748526461364218768355482805103865333082167526282242560783314370341456383857383578161652306885528655175662755151047138555553146534343846644604080124474864542472815033627744112223432243010282717120330873340070542331872402377068660004410221333432814123760781816702355556354318770785856176381340622240247180674627437023487887142122356311528327715685414266201482028121764321760138877428245535571814667284614438305271345087160060677013335670831368663514625548365687250184502508737813417187476721462666327610566282504268562450465824881154630675748446771056374112326181781302812218455007821574286647628015822857841575474420251404400700360143301022535255431143253062813825455084682005502132778411085234725034175400186665763287222312538538408377111638782350433570758668635031106555035670557521681012082802587051366781137117633440736821514153673831736211187582851663268227614710433747764655121055850228627771006367547345372746630418234207825131867834621675040540865400710271240446255678587535712646677663862756162648235733574803251637433612543243468478708540037560522713432554677321560753633540782667588111844775721082267830084100184201347637783057758451023428802706114581247815517568146814871862414358208702618046381513554368158677108340188165884412034464317538338522232138722036733523471141710411066612126271743047838718830351623801480688837684510742872845350422860251052626017351858365885606700612771843631480036820157031348205867520520487765402767737510616772508510833486814641587451664151854305857511507587221816184780048357254801883803628823755313454274573606336453016746307562240318134330413451401315522363547183446584200387332666582654003115726104061523538637014810542557514371810386337213708847727654658851037453520630457682353101720774353267248527376013051436822206685057775611555457025261832548641805611352714453114181682076074007865877368448848734003148417023366531156644485347310062806883886101206088240403774741141888061787233830058632806617875630436082502522148484676107601474733117287574076826454801581084362107263126264670065123516671432478772264052013128365223266326033557830542056876118774244531751804203463628628086531048064586012217077568726234013258648566632205661202682265777756507302764142182572022616275154047553442287404117336235135884581014567433756542883011752430774456756024433362318460726861231472815238026480165521125855780525541506454870715826252784875538606765743657652331856072572662706465271157248031452273677063333062566472476428010820161672272014834502781064534320058730853758777214125800834724680368831480488687653825566260382261818011441503256800555554122412786818455524643670578000882636824433184045576563440255AFA30ABB273C678163F2E011A3AC11D88762AE6242B03E2CFBD09C41F274AFED4E7B529A15CD5D36CECB76A7296FD7EBD5B56C185AEC70357C401FEAE5F89AF063AC7333ECF31BE378348FE5A5022A54F3A202BC48676BB6EA1B284E85D76EA61CF1C09A97584756145D383D3495A2EF5718D2A4DEFC2C8F46AF896B41D399BD324987CFEB50CEFE71170D668EBD607969325C3C342411B647BE4CD2D77653EE3F5F9C0685BE270ED0299EF45E119CE37FAF027EA64B0D54603C59566CA9708087A67B2D43CD438848C4A3A0485FE9F9DB87522F3E552A2C91A18BFE6685D335D48FC9A633301C126D4098310B4B24E1B142377FDFF5B9E55404FE682E8743A36BDE3AE2DF8698E8BA14EA9CB895BE64D9AA061E2ADF95692AE3C28E90A30F65662A33DDDBA2598CF925C5EB9A76D7388BB43108FAA4208565D77EC00ACDF271FF2A3D017CEC9DC5893A655EB6E438714AA9B05AEE119FBF4E18147C2D21357BB68686165ED35550862CDA47A9B374B7F7AA5913A4B502DD3113A85B5A125CED5E88F384A4862A9BFCC42B74F52DD34871C27C03C90F288A43BE6AB6EDB01CAA1E99B311330950E28893D355978FDE12BCC2261CCA37078D4C74ABB70E46F82D5062BCCC4DA6176183B4DCCEBB601D2C8BE0953754652CCE06E599DDC35C3C717BA398882922333D52F70D9021C57EFFAAFC163474707749105460B9061320CF20E7E53686B306C2963FB84DEA297D2B4C4192F1497F369D52460705F25A1C9D1CF428A59020261B100A444FD057F2CA21A5401B178F3795C6D95260673EEC3216A93C128E7B50A6E7C70D2FDAB027D4E192FE36BC45D738CF0A08BA7922FABB19EC4A755C8B22B57C66215C6CCAE9421E93719EDF47929E4999538241D144C68947B5D9CE9D382F797D0C993760F0E42DA8051E8C1709DCD8BCA4534EBAD89C67187E704E22636893E910D10C125A873224BFA48ABA7D753DB4677F2AB120BFA18F8F0493A396128F6426D2A4265FF5B14D0A287834CF4581F6B978C66F306688BA4FCF67FCBA53FF05A6E98F7E288DDCA4A1DFC43A1492F3587D450099693ECD43BAA35DD7AA59513E515C1EAD179C6004D9FBAF3787EED000374BDFF6B72789ED74191B821B595DFAA5D359DA953E26E9B572A040E4CE2172C4B73AD0FD3CC21F2B099B7DC203472BFD8DFD40C8AD841D81A1AE0A7677A666CA8BE53681152E682A18EB6C804F4605630A1429A58C0293B880F455C4342EED532E240D27861D084C14D32469CBC8C62F997C24C8E43D675673C8713CE03F460DE306DD194AF165E021F049541793C97343B1716CA0BF9B5AE4D330985B3EAA44C60F706326208C8BFC2889351656DE62F647AD6B40D6ADDEB7345BFBDCCC14099F34A77D09DBDFD65E2D9CB09F24EF14CAB57AFFA9C5FE48C483F63212821CD2C8C9FA1046594646881D40A66656AD9E0534E3EBDAEBE1DC3FE5A6F96BF5FADA52A7F730411635B3F696448A96EE1C5ED717D13978D6EE381065AA9D3C8A2E3508BA76001427ADEB8E9C706E030AE2C41E64AAB319C767546AFC2DDB7E1E5AC0F51EF6D235C6FCF2401F9DE246C80261E2469F26B8F77973F22460398DACA28FB963AD5FC4715999DA55FB88864E72BEE8415B441521930A00C08577B609CC1240723E565B06541522075446BDFDFA6E21A45CCA5297032F0DB06024B59F347BA50F2787112131ACC9A67F41E81A8F4562BBBDE74381F3142F43759600BA69887F5E80E0488BB1DE61E1169088DDBB188D2464722469C9D9339019FDF3D1421390A156B33F73E23CF9C2E1E8139CDC12172433D7E5B62AB55A88E34BE956CC62AC6E469C4DADDC4A3BEFA5B3D7EF2B061C541A6C8ECCF2137CFD0EF24D0052646492014BF6A604BD3B8E3491497EBC008C68033A48EB54673DD28ABF05137C408EC9051853BCDC392F6AEC82F8EC5CF285B7F8EB7EDA1DD96EDF0B264880232EF5F659EABB78ED48DE3BF7FB439D3B1BC92DCDC1F53EDE8957C8FB244483FEF72CA1F18F458CC5F1B8A15DA992AE5E69C364B59D69E2BDF82B25DD56AF4E34546DD732882E83530952AA7ADD397BB69FB4A5091DE23E60EE3F2FABD5D81370AD1A16DCE0D4660A5488925BBDE4E7F3C989026D8788659EAA0CEAAA8EC16261F255DF7298906D9418B92DBCB4D1471A4BC7C6842321794E3CCF1DD5EB2E3D13A47E5489223BC1A9630AE2B881A160650CBC38E7198494A58FF65F2099B81B44251DEB1D4DA99EC3658366FDCF918919741A4C2A0A91844F4B97F3C135392A9E0D41AE6C189D0D93D4E0F6826D142D2160B9CFE60B7EEB0AA148BBBAA4DA7669C72990F8BEAFBC6ABA9AB11D3083E2C337D3BA6778BF7009F444C122AEF14F6C8C1D800619D22045C88E80FE1E80C505FEBB6670A79802E85E96CBC73E15982DA42BF530FA5500DD321D8BF5EEA7E02B578A16C099ECFB47ACDCBA485436FF5D13009F51E53BE19F457187CE214C7E4D1C4BA0AC68CB54D3471F5B1CA714B5ED52BAA5EF9FE75E9758D1C92BE75B821692BEB24B8025D2BCC2D54F46CE8F0EF4BD81D35BBEE670592184F63C6D87E458F442718C7D5E85BE6F0C1EB0D9EA0238A33040D4D8CB0CB0DEA36931D1D932840893743AA426DF8B9222E80338C15883DF42DE0AA6B837A9BB7ED65F570ECD05DDE4294A4AD23D39588B218ACF34419F3FA581E22B4879093E4B35DD2ED116690A96AF422F10C511C49393FA25B61FAD39A14AA33564EACC82C8F65A5D0227657118527D66F942CBECE1C776E252644B8A97E5A564038E3670C31F3BFE93366BCEB27648A904152FC907E6BE8B6A91103CD55C8000BEBB60545276D595CC738B4A2B1F9E30693FE9D6796DCEE7709FD2458A38856E579347C560F8DE440F2888F38FEE3C905BE51303807F2957932F96A3ADE5CA77E5616A44B510B9686500CD8E97950AFA67680E236A0B5258A13DBF0E096ECD086C74FB5476E2EC7BA929DEFE11DC8F4BFA2DBF21158EF72ABCF0675B29709AB9FCBD2755633BD274AA3D5426EEF9B1F712308E7CAD98CCF4704F1D49CF5E189FFE80B4E17F950A1A4D14FB6CB6B0C0D910BD527F35498A1379C9D034A15AE852BD20395D4302358B3E09ED64724432ACE05DF83C3573D71BC5C168C4CE160ED2B7A79684AE20662651F988AADAE591159A1400FF9B91E13279764CE8C14F293A0346FBD8EC833BB9D6A4DA4260DC221401A4AF80CD8B71420551BA188AD8DE6D9723F49433A7AFB855747530246A4D1128B28A85A6F16B7584D4AED3809F9A2BC0064B5237823FCD1EDDC92C5F24A168AD3CECDA772D8A9740FFA20FF91612B1E13F905B2A81EC4A2C69D088DF89F2F20E59523667109F3664056BDA4A5D70718302E509DA989106B1AD7370C4A9527AA79D2BF8226ED487FB44A5B872DE95581E491B241667C01C4AF5B639BA1B496A2191A23DE453C15F9EEE2EBFC4FCC3D6098E31C9C33BF8908D4A21CBD14302E0F0AEA458DF776D75E929487A623A2FEC1 + +seed: 03D86B249CF84472E3B78B12110E2C09C7428FAB65D362760D0800914696D411 +pub: 8848322A566CA6F4AEB022CC41ACE242F84AFD48EC429FF2A107FDC381DBB63AD301F719FE8E5784BBC4F7952B43182748481EF5F9AC848D277C819E86827DE234CE3D1D90CBCBEF2725971CF3A559CA903896566ED66E4B452A1080B7E825179882563CD73AAB0FE07452DCCAFC27FBDE1A94D750E27C2A67F1B47397C50BF0B53E1C2CDC2DC13B333E9BE0399F271287E4C9BA16FA122C418B7AC8DBD5769CE792A66475ACB94CC55D70BD7CD91A62FAC1E59139EE46072A7F76766AE4A1AC3C52A0C689ECC001849F5F6CE436B29FB5552FA5F3BDBD662A85EF86228EFF2EE4C9B0CC0FE78F8DA5A70231D6594430A70C878DF82AF33F1EC8C979FCC8777E00E77C457300461CB93E9D33ACA87102F0B217D36556D9BA2C2A23A736628357831128B5BA6B649109972B42B15C563B51CADEDE4CF3D9FDE08B456F7A9F2EF28F3A7F18D5F3CF4BBB6BDCCC98F801391D78FF0511A09DC07CCA1A81E63B08C0EB738E1F942387946D3B3BC7A0F658AE2FF83310988BFD4ADEE4129C68DD665D12211211C2D9582F80AC92CE3F943B61C6C45B935D38B27D3C1C2ED6DDA42FE43D5DF6E5F6BBBDA654C35DC259114D288C9359FD41AE8C2233AF33D991BD283310BFC261CA0C45288DACF1319A70E93A221ECA835A6CB1FEA3EF0CD1837C0C20C51C3C8A6E81A2FA638355EE80B61354F50A061EF5DC9E3F3D41B37BB08CD9BDBFE42A0BB909BC24EDC022CA57FDFA2AC70ABBFA851E2A2FC73E72E06DBD0A73CCAA91F399C72879DFB993F17408C9D8E5B60A6E74C61DDE19893512E63DB8CB69AF370A8D0A91EB39334900EBAA892BC6DAE48D97073553B4A479475EC1AFA797345C6743BD395D95A16B2E8D494BFB306B83D67222B09CA917334406EE4A021D318F364405D74AC23859899B6C758762369A63EA6EC3C9236FC91578C6601ED2ED93F0873026E792C010E187C54FA1CFC58BF88939D295539566DC50600B4182D5013C262889AA964FD15ECC00DCFDF57B2F7513A623A405E31811481937FA6D4DEADD7402CF84D050E4FEA37F5B86DFAE2370B1BFC8B9E6DFAB3859A6AD8712558E782E5D5C41206A007D19D20071E925EE25E8F10A9F04B09F03A4E1AA017A7779CB13AC5D67AD0E45F32C216F60897DE2B77B2741920EA73DA07ADA1CB1E3AB5C7FF0841C8B4D3B369DBCD7E5E705DB112D0BBAA7549ABA02AD762460BF2A80D39918B99B5A0D8CF7BEC174C94490C3FA100C19595786AB729C05E0E02538983A145E4DE6CC10936CDF2ADF465401A15492A9C0834D5A61F41099BDD7E92E27CAE2377D44F61E52C5FCC46F58981A1FEBA332B1F19118362EF2D12D12CE80BF017A1AE2753C20A9AE0E8BF4ECC5568D741BC64C3F783CD1397400DDB3DA525A3338F1A725EA5759A4A2B0B4D3B0895EE07D534154FA16D77A3AA3B205A8CF06274957C4190D47FB9108EBDE24ED0CD544086C3ECABCEC0DEBFBC368C0AB67D065ECEE9CD671784DCB4DD769A944E44D9B951AB3F4A890C215C1B9C9B962687A576A0BB15357CB5F250EDBAF7AD5EDC3FCDA793425AD3516AAB5AD9A01F5EB036C1B6DF02EF51516BBA767E1071178CE25D8591BCB5276D59233F91EDEF0E217F39AEEB605F6422EA5D0F47CA2034C4AD449C87DB3C42A5F2DEE9F111455DDD988A7EB4C285711AF467CF8BE4832DEEC585F2CDF7F68DCB3CD25339451283E618A6A3FD8095DB07B8F5B5DF79E8055CC8EC3C2B55E0B23E18CAA12A991086C7C6B87A0713B4268A72A9C3A2DB6B07514C6B7EB0449F20B096F88A754638E55E9ABAD72343C92DCA03FD2C4DF16BB2CBB1963C8B9F48704CAEAA22359468BA67D58FF29E38D783999218888650D6B414A41417D239E6FDFF8E382F107BF4FEB81744E074A51531C38B6DACEE427547E17BFD2C2E4F4596071CAAB4ECB31CE7769F5EDBA651F6CC4380A8A1711E3BB12A3D8A061A11F669246713D29442F0AD39629722ABC838CCB51BF80E9C440C2E2EC88D93076253F56C61816FB725739B4E44427FA7ECBB415B6E5675B6AAF736D592C28308CE432D117F388536C83F90CA8FB66F1DD543AFD147289DA0C8DBA45FBEC3499DB3EE000B26B49B0FEEE4044F231D5AA9C71405FBD754BB43659E3B59980FFAA3E0D78B8E067CDA206D7809D76650E4672EF4DB8C74E6244E82EFA9AC02502E3734FC188F434D3ACD65CB7F9B988B1D69B1FFFB69D88EF2EB1F2B70A2D165B0EC78CAE92447EE5376B0AC4363B98689076123F2DE26DE1928ED2C4182C3180056694CD6C8949A85FF3B1E24EF12614151EFC76D8652F04017ACE8E91D57D059D826CFFB93F3EE6A0405D9A4CDA1BAC97D906A14537F3F4E62DF70739B94442884C0C0694B438083B5009646BFD58B73FDEA8E9C97B18ACBC3693C07CB6C750353F8E8B704B2D01346619ADAC4A9B05FA4A478C7B8F2F6FCDCD6F9766E059E9545BC566E2ACF6961B29BA91BE7C425B1EFCCFD2F8ABB9E3B9FEFBA2A4371F8F9BB20448E9F2BDC6B5B0DD4CBBF04B30A6F819FA271635FA5CCB6F5FC1C3A70E40E31E2FA23A640AAC6B4C56BC07B948710E66284E483A2AC418313126D8E79CE9D31A2B657BC5E5D7260019E101F04CCD200B29DFEC7CF888CCE69C11E70115E36E62D94BFEBF99C2B37427AE66E576A9A7D66CE0BACDAB0836343FFE0C5AD719E503A07952FAA8A08BA3380AAD12C1B16918719B8035109B932C17129B881015F976CB27854279888BB5A7 +priv: 8848322A566CA6F4AEB022CC41ACE242F84AFD48EC429FF2A107FDC381DBB63A8B9205612461E15A894899F582B63CE137E1A2F6449844C6E1AB07FFA975AF9257EEF1899B521DC105390DBE918F8858644D8B4BE502F657606AB402E005A1E646FAB4CCE2A201FACA5D3F8073585D77E8DAEEBBF03327BE684DA62F446FB8BF11333781374634823864042432083342054315306250442250826183726662656836707207736660161824455431866318670240311553240312347115152581385651705245784026155414134588730150508327407213452331305655400268516817024258565182057835868833071380163376245221257278005855363453284531033783707576026861505718742866514771740874438446244726810142022470677257603785402032470565871511738035371647503025642426405205382454702086852403683351111368612567430634780474174484634822170721682005744765345483340267364815826771864626134365402244150866005531353283300630053128674405643208648637486012828554178631542254248251856301082170407214768471150867840383624825684364366438030362238282104043061255215621210686101367563532532562306760522550345502415700162084747110886865313326700027831108836087336210727177214467302222658180777371060148146602645888401352857182336671315855802221313438166008560261203061705863553051286285235608241467031187205708420581371001823637854571517586144832155022232600160485088873722360483602837746658646860177715055875558150641212362263864175584814328466146518265263274857302328063567642227558860841183338043285138556553222668166416277534867861727330746664576480024537803586435081208274002737517430415402722305805887888006778232512782523462685012826525455106007263311385032752711256051815357843176702263215670485563168666680358667680544184345338385515177482431554648487165220470888673712742761144130066376423527701312468340042581563652578411642814866606020050483618642353848611076208376042661087664224038705704184504657206570044150271443252440031002705772661801304248550017226385876682044215363807531016374814725644264133280774048845453460315230256666151016313714182805604006003275203431342570007274782878487383272346602306120123182336428852143161760614620647282877803338426417217267534810317714120637715587447884238722162264175700647268123018833033454700328881216065721525378787614880383841413262040530202264523768288244748401630013064582441506825281343376027562685201588256074212735338587526201851804705483838426483651360202665338765886456254245744670566111870525780254234553032810841267361136718675661103883076155035127073645528165635100567720655217755421301357108034726505744587147310040141010805646522087147007255714057158741217277422625282364731745870783664616160434555775443743502840544863386473378018153247320635606807438754156737641371466713704031817403002217663388070881274501471075834867805472376776326800354057684821603313825840027201144475741126230724105836354806407505613633022136647710632508145086447881758420157178754808160145254472146725788070481561266847405464138405113446032102601304210208730306401431145205104734535487474140772264560342348655301266821517162211403658702262776371234537788132058858823145524452147323040308527184140733703820531813674657553835474053654050304073176263545064447138716350737634B643A171F66CDF58DDC280697C53B4E42A4BEAA9754E6BE2BA3A38995D758B1139FD3553664E16C952BAF99035D4E2D089E48D5AD9CC29E4D2B41B6A413D7807F5321F52B06C51480F368B2EDA86074AEB9E30427BE5CF548FE5042AA154DD0DEE531E37AAF546BDBAED6F7BF1226FD5395449897E9935770991B81D23C884DFB0834B1493781662514C3F1D666185ED811847CF1C0042EAA330F42139C94928BCFD81914E52F29BF32E9EF9276B381D6D17FB6E487CF8CAFC1FA8988394161595DF71D66D504B4AA20B17EC08848D59BC328EDDD2CE0B618790CBC344AE2721DA47092A438AB33B41A490475323593968858B61EF2C0E9FEA7D67243AE69EA6561ED8F586C3EF625B0E560A7F908AC491F6F76D68E73DB4718346F5A3DCE4C3BDEC93C1CE41C1A86DE45AFDF43E73B5A3226367DB267C39D75D80F831033C0932E537A8A8B27B1C82190990B9A949AF6A2B9CF6595D35862BE8BFD084C117494B56CB00C671AA902A6A7179577C0B9C4D615F7E1E2058820A12B131BCB96BE297F14407FCC7F99AEA65F1E4F2557F6B946A55754B594C1DE5758D76B541B568FDAC78F3C6ABC68EDFFF0BE8CCD2DF86E536F1ECFEFF0160459EE05F55BE0BF6CCCEF37DF0AA22A2C01A28A0FBAFC4ABC22A07A2B60907C6523E891F18C264EB0A0589762622F664B7B6B65D9ADA3DE8B1D3A417F88B9A821CE7D5D321FA2A64D4B2017CBA63FD177D5A866D537BA28E1D0A22DA42B471A5D4CA50C9CCF42494FA002A35D4B9B3931DB7B4D30D1C6FAF0FDF7F3980A20D1D5861207FE143222415FDB586A410FED5B40DDD57B5208B804261880E25DE41A4880A19F7F6D49589CE530961FE2E28827621F561515133DC1FB9E2BB61DD7183EF2CBE906E292C0C7D61E04A0D61623C897258F4BBD645B30D2DB836C75481AA3313C12660F8DC1ACC7EE159D6799B587C85992BBBD1A7794068D7980BE486426156A19B9096EA4ABF36E4E8B524D474CA60AE27B9DFF771C64F0AB2844372E6DAA50DF760E5A56F6A0BDFDAF7224B48692CFC811ACE083F19CECFBB9A72C309CAB467DF8B79D2F34860C7C056E8C55514A53975D407B4000119EEF0D0C8EB05524EF006886764580F697C849B8B2D2E4E1DB15992EE072BF4B5252AA1542ED4CC9E714C0EE6A447B838D233355228BF4E427790D8A46132C50D3E340018A9A3999CE187777DB336FAED69D7259AF20E104E9D13F4F89AFE3D60E449C8075001365EA6A5B150706B94828106776831D8335078F1D590F6EABFE3A01C351DA0C8AABF324AEC14BFB0729AF86EEB4C646D293C3F5F3520554540451573A93BB05BB3D70771240652751356A52429A866AEC7396BBA9D71AA078221902DC1ABFF960DA9583C58D4806D65D509BE5743C9D42AC7C8F7611226368A49D60F8E24DE73FC614EEF55D705DBFEC254B6579E207322426687E3B1C5C0A05A869CAFDDE8C4F06E799010DB17FDE4815008E9DDBF7DD9A3C63ED11866DCC739C6C97B2EC58B94900657F3D881BB9761D8F64469C68A5791311ECF13AC0D22877D4D2E6629E5C4D4640DDC30CE904C5FACA5356C72FAC8ABFC421E18642A1A7CEA716D9A4A93E115D749E16C79F29CF637A5A6A17577DA4FA5184FE7AF22A88203B77818B24FB77715DC2B44A59FC2B4EBB58289BC308F8C0B8718C8E40A87A6E6B5133CCFD2D846AC98E02EF3B210FD2E6E1CE8306BCCCB4BD9C345F4BE59E931B8A30E3F9F82549C0084F72CB13D6C645FBE61C81319BF98474B386B7799D561E53771AED22AE04FA425D3F61027FD710D897CC4E6894973146A6FB2E485EA3C127EC6794554B4282F399DE9897E1C70F2886D4A3F487220B00E85572A4E291B99691AEF60E10D4DC1515D3259F8E74144087D4C5EC5B0CCA2812C27E3DF2746C1A015644FC5B21008227B29328109922DC95128E9B646ECB9468374594C748DE019C492BB0B6444743ABD20A08EFAF84892B578FCD389DFE25F0F6BC20AA8993759AC87A0920D7A43B34CC43CD7FCA8A2CE25BC8FA3D246869E3D965D98CEF0F3FC39A5A62239D803B7E311BCFCB9D9C6C484516AC3E65038DAA2806D4D0D4073EA623A60F7F68B66C97511C1E15AD5F72ADBAB64F772C4A3F4E161E0BE0386D7EFC60D497F664400DF69924028764A92A26959F3FCAA30923D3F3D219C91F0831A1F6F02B24931D57D5CA427D8E2C02D4E4E6D4EA3EFEC061CFC72941DEDDCF09FEE339E3A208E286D9E0B8E4F9CB900D9F36C013ADC673DB1F69D6CE170197FBE60EE4E28E9DC66BD1423E80B78A10BD0119BD59C1C2D4EEE1CDBF028BD9D0C459CA885D83ED2BA145CF9CA5917F6F276B4DD4C9DD4E1A0D4545D2C66492B75A42DA066BE5D5B40A28F023F49AC263A45FB430DDE7C55CB78882BD689DE65C36AF223925EB14F26CFFB6CD082CF6AEDA6371DE32C5276D3070F89EC7342E94ADA62DFC11BA4A0B05FB6537F36BBB02630643332F121C93089F26DE6EAA4886E4C1BBE25E2D0660A1DB2582A6F586C1EF875A406143194E2783BA9BCBA4BE28E643887D14A13652CB8ECDBE9E7DA4A73D05C926486AC2518DEC9C82409F20679EF33E48AA0A44BA2FA9FA2B26A8922D5EB846C96B32392C46AB9F7930ED7A0B0D121FF874DDDC303DFC57D278760180B9692579BBE0A079B8AD5A41FAFEF9A8DB95BEC8C5BB0512479D2E810096C729AEE88741F85A308ABA9D5D1AEE42564C1EA76D41BA78AC1B05D5C604D3860EF722D0EBD73FF6DC894F54FDB8E4205BCFD05D199544BFE6AC3136DB83FE2794C5376BDFB6EB1C886A03CB2939F31761B0EF1ED877FF28E5C9F2FBCF7D1DC24079B4790825410F3319C76425CB9E8C385DCC2917AB8A9A743B8BCAED7DCA410563565B553A4D89EC927DCA4A4B8C1085EEEC5C53F5D43F99C1737587276012E5DE24C8C012600907737C487C472117BD48F726CA8D4E876AE35DE494E63D0D844C53CEE75AF13111251E338D057D5A88DC3132126F597DEEC69C149220CACB942B07746200CC72758412FAF7A22C0F73389615BD5FB87590C4F42BB451E48A21BBAAAEB12B427748F4FB02382D105FA962B180D1901307B1F03DB38C8A0AD97A8CF615C0A9C18FA3A6C10E1B7E0A83777A9BA648D25B0051BE791A05BD7CCF713942F17EEE24042B0FF47AAAEC674D0C9876BCD3AC11580DB1245691DBD8DFE791AD40A1860F485933C477ADAFC3EDD030624DB77DA7E01E7F81417E394B3629C687A464DEECB42C1ABE5EF245A717FDA612A85663CD9684A58B3124CEBD1CC5CBA3A2A8A48B168FAC6760375B8A62BA4CD7BB4F177CEC05ADFC9CE35908D78DEBE63E3BAF803F2A0079528BB4B2F782128C0AD576092140C94A980045F998D89350278BB6867806228F8B0A8617A6CAAF54ED3C70337963B986C68EEBDE477790BD316E572D823D2032D065891EF8560BACD14F910D3279501F97342A6120EC2FD8A4F130DF18C0880304697662F66877BD07AD2E79ACB4CFE4F039 + +seed: B9446E8F78C8B7B2ACD335B10F0B8FE1B34007A1D827EB5517710569E060AFC7 +pub: 940F3A043905CD31A66A0B5E776022C026B8CC8C9DF839951EC3038ACEEEF9F203EAEFC937D6D289CDDFBE4D5B104ABAE3BD76989357408C69922BF39217134DF5C806D34574A1AB61ACC99A82F51852F173E0BD61E50552CBF5A8AACF06588470F649ADC715E3C7CBC646E168B4BF0468043679AA7363144CD6F751578BE3EE5F74C96107189ED1759929DC3107C1CA5F14FD14F3CB31503FF08C8E79875FD529AE80A1421C0643DEFAA35D6889FA5B6E018ECAC896447BA6F5095929B4A5CB636B4C9E0875D5B02DE68CE6DD54B24156952E081ADF436F064795C4D099A9C17F5CEFE19B8EE8406F1BF40AEC03A15D243F870E2FA2B0AA54EDFF17D2189D240725354C2A680F3E3F7F937D2190A2076B6437F5DD6983699F2F87CFE04AEEBB22A88132611FE673EAE978F01BBE3959AA3F4E9891EE9CF6D6031436C8CAF9FAAAC52E037BB69BA454C6D1A7F1472D85C66F978A2784C79E792D1B8B0155D85A7FE1F9B049F012690A2362A82F4CD9E913DCB0EBD67D68595B0D17D085AF96BC64F84E069C9CB9572A7864CA1DCAD25AE60F37889D416A8867D4DEBC7D1AF997AD04EEEAB9BEEB027ADED41D0ED3B46FDDA94584C0F787802B7A9192D8AB1547A15BBDA48E7EC65AF00152E4A385F755D6C156B4A5443A145F84268A55437EDE5A732CD7C3B2A6A728EC698E975758A1B65906307991AD8CEDCAF9ECA859DE2A7635EFAE365647B4AED61B28C24BF4662F7FEA3F14B8E373E4F3E4ED51FEDD1D39A2B70460BE3E7D213FC51357C80E292B9649AAF7B464332FAB8595BC1F87BAF2056574AC9C73168E13DB1FBFBF29820EFB08E5CC9465BF31431A96C91364CDEF8A7A53AC440FC40BD990F327DB60E980499B7314CF5A63D95FE20BAF80D001BE16ADE597188CAB8CD217877521E9815F274D8FEDFBF8AE11D36BC42B8F1D2F1C7F4397FF4087B73E00AAF4E9FDA6F9499AA469220B153DAB01512ABCC6F5DAC0C54356ED2ED0A1A260F3F8BA1F67D047CCD333A26C5137BA76DF6A45BDD731366A04BCA2F80F7B011BAEF941E91835EE218AF34357F47A48C6D5B47DCC282BC53B1465D5775FAF773807634A647701BDAF3455E1536FE96CEC471A090D5FA7B737AFB670CB0E2CDB5EFDF5757CB52669AE1907D991A187E87F19DD5F2751CAE3205FDF832B312FB44225B7D9285328011B5E081CD0261E255B4C74A1AA551305CEC1703CFC5CA1E55A3D1E4002410A5935DEA3B3F33EA0B9E17793CE6D171E70D954634DDC50D6B06A499F25AC5959F282E12D8B9C28A00C58371A56A4500B2C507F57BFE85FDE137F82929FB9B813B205F72FEAF23B9457B746E8C70EBA61C80772FA8DCC94AFC0AEB59426043CBFDD6CF69F97DA634D884BEEEAD96F24963E9DCCC71FEAD90938956140AE0C486AD185FED8266C515037A1FDCFA2E211FE52E0E45436215F123D8137DE4A679B19922C9A6C1860BB7430D0950BEEB635C0937EDFC5966D1AEB418C2E52AC41D134B43CB9A4A3305C4C669892F65978006FB56EE2F8A7566F2841BA1FECCBABDC49BB92BA7E06842F6C7B24427923802EABDF84CAF5B3E77DA7F1207F8B0497D17EC1B5E3527AF0539C64277918EAF8FBA7457833CA80AE2A8E001CA9BF08DBDBDC19CDF82F4230B494B07594B8AB32710E794605F93ADB877FCBA8B4BD3A89D907A92F1FA309727754A42EE1DA7EBACFCE46D07181D4B7F7D20028646AB680CF108BFC3A43834BF955483866759C7A34105B4A34F92DF2190BE8E5272D0DAF80E8C5DFE361B66D75A7D8783DB9BDB92DEAB2BC703D13950EC2ACFA686F97AC0E04B1E69E5DF49E54AAFE615A493E96BFBCB008385116FEED54A2B984930886A514521EFECE22F449EBD0F18BFED1970A86E7F4D96EAFD11F135A9BD8320A12AEF389BBA46B0DEFC101C3A90A99F00E6D5CB28298BC35DDB62A1629374353EAA79830BA5B051DBA82FEB251444B3044B432E675792DCC8E464BC40958C2BAB862208486647AA879B8AD7A71F48D63C3BD0B38BAD9EDFFFD1A28FC3221F67B26A2A36A40BDEB3D01E0F4AD90B26C5CC9AD0D80E24D5D354D5AACAFAE1000AD21E4F60D994891621B19214F92657006E01EB4B28B94F804A7BAD9A120226CC03CD634731CCD5D7610218FF40735F7964C6E2E4C119A590786E693820DD75F6BDD58CD6A1B8857645C3C23B52C96694462832ECBFD27FFEEEC6284C4C27B1FD95B7252857BFAAF2E5C34F51A4055DA5C9A2C8E941FDEAFABF87074713DDFD9443AAB31270CEE2801588E7B89F3329F3B9E9F398738FB0EB0F50E337BE42000B5876E84F623C258C4BAD7D1E536528E8BEF4AC6F6869AE9738AD76BCF8FDDDBEE023A5A836020DE542CD56877DC97CD33586A637FC6C1406ED18333A32995E14D79DEFF1E258B7FBE76461680C9F5D7CD79165944EA50C29087F46AC6392C1CB8C3FF9DA336D4787E81C3662C384A603EC6BDE0089A5D48136D08DFAC460ACAA0BFB0770D85ED2F859CF3D2F1E4C82D5C5E8D6F9BD5F1538E21FA15ED28407AECD7E78633734118CC4C5EEEC2E2D01FE75E1B7D9BD0D149B13B57FF5246655ED2259544BEC5D06639BF6180BB8DAADCB49ECF1C0732D530D0817337C4FDEEC4DBB99F0DF41ACCFA48ECA5C5B8E48CEC321C8A1187B3E2018211CAFA625209296D77F6EF6F14DA8388FEB69C11A912619F514DD8BCD5CF0AC64E7FF3C97FDF06B6620D18A0F95FFFF5DA533BFB61DED91BE2DF2B +priv: 940F3A043905CD31A66A0B5E776022C026B8CC8C9DF839951EC3038ACEEEF9F24A60ECA34FC68FC31F37093DD96AA4B9F3D5830C6F16E5218B03461992816F1E6C46ED2183EC938F9BACE6D938995AB55B79D7718E0A65ED1CE086775CC7EC0B9D8ED16CA18D454DFD93287074F1753CF1A106D43832069924E934B69A056D6D176426004013076575326430863137681154388472321482327058660264144318587126616777245665846085207077377620134715340864342265500652186150467601565650873175644064416834227733720173774587668873453654245237887584735816803431317252007518455862453438544280565558788488641766433715102273116838853016286781356764553350815576130623142120288320447330858634146116010314662770062074375774867186530144058337264066324211032656066333521814241564325222500443323140011323440703778825861335111403817102184704327185386633608142215442067221665320752283741503126550045540138523388552553756710758782221066048054785368634370510608715285855830261461583231884206487168348502251624181358250452363431358088283280220684850274887682136732878487628835676427436605335002250861670280661746364663333746081501851137351028871688754020075563164387882072231828620163852404354634175131783368268806428070410450722647813676878073455762434565702154475408122163541077486410856021580604143745384424577785383320062585216722084220844048307024134432474888345716725321201005120225816884018256740445853733442120313688418144003171551700522688612013631552624366072347843226703122460417203012430812021833811420720661868774436374256462732481621436813002757624755522350808162680011825038722214273025248005052317717234810061288158327831563165021287226153061841412807135642600053623232871172234266585054154037728672161210616458710643372418828532614851034330455673523587742236477452251870078026584337870552270745526756623860278447626062284834315340427146171232766872568061730756050724247027148476041120506552842756071205358731326167423273744026237525138835086634357501537604145556133481414804060470432652463216123837200443812665470481367442016456162841127017802443686606775850025538847122687372785518286573566563606242666874533554403325385363656115174748320261462840552772623674410481265030724763256241631486648346756261368748180167401048541280737780881841151540185080052416176233736633170701131856087368601514425225057047273141367358256783768616620301431740016335013544305727222457250283187257250743134642552508353067725664027065305156731547334833675272822335860257083672157731427677103643242465216121111244014577786563871520155270585467046042052457113044834347701052060663740758787647888206363867766446811488063441365214110100556377588423480631304107844013871142521788152386654530207028734623080264311677371668465072078164640706288825415386285222822305247408773601071322560410302142821481811133677651772473201332288815205035613301832085104746827523346476715450002575314316042733172642714440446820038280042757635636678707806871714311068015364432431546245667366443671858840683530203154356038363103684425222575835848370481228786854711047404557132636566284507601070068815183715138065502835833765443038333301854266005471082640210720634670243202468375243858240881712734844607240223EE143A505C81AE49370E4B4215ECC3A31B3D08AB2504AAAD76952654536312F6B2298A20A48791A9236B32BB68004CE49F169A4A91C189FA677AD10A25604A4BCAA38BAA0E572421A79CB1F82E3543A285C5BC6BF25EAB82287027C386D543242119C74576C1126E284DCF1E25717306223CD0AA9F6AD025842709572D1A1A2D656AE4388B6F3F491A0EA231798A70A3A0FE3A7F0C97E74251068D009CD0088B8B9026EC8FB19F181F0838BC4FB5C7196127D97D91108D5C7AE2893C85C32023175DC204D0C000261B382FA078DBB3F0745902A445FD5A32A7CD12AD7AB014F5DF7B9D504FDA8EB8A00DFE5DD832348FDF7A6298AF21A8D9730DDE60964EC8FA10B3140D409278C238A78DEBEAC947E740547530AF8A98C24E6A2474F1BEE79E762D710CE68ADF282FC8110FC099041B5A0CFC307176FB9FA214C3D42A7F2BBBBB27FEDE0EB37C71D84811DC34C83ACE1A41D078B936205CF5B726230109A099B75ABF9152824E04C352A9085BED558C7C894D886DAFB46C3BBCFC2A74AB8B4407E514767D90692F94862B2F7100FE76CB36F52C3BB2C7920A76F642799C213B80A6561A6980D611D2887A0531CBB412DEA4BE23D41F515BB8AE38C77D93BD603F9AE2E55B5F0DC6F4B2E217C98F6F2F03F9952F43BE49E6A7EF8129A265EB342AF271D2B3CEABC86729E962200FAAE9EAA62D04C64ED91E0B3D8F8300A7C24719A9F64AA35804D2B5FAF7F3F617963BB8199B2B842FF5317D43F32B04052CE5F3B7DF5DE8E2FCCD0B183FA767A3779307D8DC95ACD2E36F4A99945E12C0098B2FFBAAB97B08AAAF9B30D2531906506EB5194564C74468385A83D0D4291EFBDBCEE7A3E781DBB81C3F876957DC169C19E376D76F7E4AA0663FB3E332410ACECCB0457E076F25CBB2436A89D5BF25C376392E719B2B49AD2EF20FE5F51595217239E0E3C7D40BA0EA3F3BDAAFE29E283B9A2B93BBEF4977E2574082E8BEA041DE33244DC52D71376FD051BB790DD94899C80466C2216879166FA46766B7D23899916FB8100ABF1A1ADEF0FDBE68DE44774E13E1104432503C0CCF39BE4444E3564A4740A101DD654F76DDEB32C510077186709684EF6EA61B325B8FAB6E039C95D6C19BF09CBCF7F6014E1FE85920AAF974C164D8079E3CA16707BCD5DA704F0A66A48EAB2853225A795DEB51D45632AB38A07F093308545A7EE29FC0309B48A177DCADE869484814652B70073AD0CBDA32D2965E26E2BD2AE66FBD91FC11E9B5D71969953981D020AB89EF3CFC3D902CE078ABF948260035F9583C34F1650E647992A7FC4B3814EBC58723349901171EFC1629C0C2DDD338891C48A19810779C2941ACBEF58361B3A84DFA71D80373DA5358990B65922E17ED7066E4153CB637FB56605684A94284A907C92A2D717243B731FA6F3895E8BE09B7EA23A023C6692E8F2DB4872213EBA4B402D764D2DCA50A3F2AD278F33493E9AB83777F971476A1CBE9F7A448E3E9D9E47D55D8A7F04B1A380ACE616DDEF3625EFDBA9A625B19715D38EAA295185B7199D81700A9BA454A07C912187BC269C7BD8D499E14557BF206A33381996038E27A28D19EA9672574B017799A27582421CAB69B6F187CDE5AF2526266EC10EBAC90E4554143ABA9FA448ABB8CBD380903EB2249E124F2FBD230E6A91342972B3C01F81D7993A5A1BD25C4E0F564CD4597A18E828F536CCEDBF66DC85F343949B1DC2A50D58FFEB67949E596AF43E1E00E13C3BFA84FEC72E364E88509B8F95E0E9C0341F3A3DA99C947BE21DA56DE9ACF630DDBB190CCA9312142640556962599A52FFAE981E3FB372C0A2B99EF2CB3B86CA9AF186939CF277F32D503A5E6554ECD0259C52B348A7E107DE4ECFAA35D86A62F98AA403F911491C1B393F4CE1333D517A731E106E191C66C7ACFC13EDAC66E9E2C5C3AA261FFFC6CE688BD711BC748376E25286923E55322E6483D96DAB4765AE5D91DFB477EF5A5B61FBF78F248A92D03B18A7FC247615405701C08E5147700F41A35CABE1D1A592582A2BF2067653D7C925146776C0BFC84A4EAD67619C0196A0293B94AB5FC30900C25D341E819F443C2BFC9CF7D4C3960C6C7E6C33F656B3B512752A55FEE1DB2B4FD799DF192FEB8B775E141A0B263A24710AA98FD860C18D490C55D9A44A92E1ED5FB9BCA06562F2D1611E35559C2DFEE0AE1DDB8D724A36CD16CF728B2652C92CD8619B96AE1EF21B2D2C692CF02F9BB43FA0E4C87E001A3D6F1B7177EB43028F88FC024005FB095958BB35DBA11E72D800A971B1FEC05548BDEEFA046947449209964328C1B95607AABA6DCCEBAA3B9A4A175760F65990E36F0299604545311179B3A0FA7A3695053EA99B5164A22E1DA59DA3964D76DBF5D46193055CFE1408BA943B86C0B7CDD2CE95EEFFA95EED74EA018D42D891D7ECBE5C8DAA52C04510253F8CCBEFF351274CDA464F51D4762B68E36C783041063128878D9820AADABB2BEC4FFDEAF61685D9C0FD2CA6626F8E3BA66678BBB3B46ED7FD3A9B4EBF623E37D90BB6FBBA31C9823E8D7379EE6A42C4AF6C15D183666195F509F3A23D14ECC4FAA4A35B55D122D4F0BAD9E0DB8DCA918CB2D13E96B5E2EB2AAEEA1788614BEDEB39691B072A094EE22A6DFEE43BA77A46A9F341C9A95640C26E7596CB6F0D0889F75789FC54E31FEDE42BE11D09F6EC514BB5570568D395751CE5D4764AC64F4709C919967AA7E04FEB19CABF739E1B240CFCB302321E3D012A2231D0DC0D1038F84BED48ED94BC06F65A3F437C9D8FB2961E49B292698618F55D06360C8661DDCB990C68D1F47BE15640BF059B7D7EC8317548E20C83961418C38B4EB278C9D86671AF17D2A2E22A2BE605FCE1E496B5B1DC08A0D4E7B956CA5A28116CF83FCE69190B1559DA0C19A40ABF85D5030E0E979C3B8E174B42D0F2709E28EA9579332E47045733C15A63DD2026C6540654C5B481DF921B2C4FA9729B817A3282AEB9568A6AF7DE57D73ABF0A04347A96263C97B575EDA6E1E17B2CAF8B1374FEF9BE11042813B4D64DBED1DCE9D452CC0E17F67D51022B8AF47D32494188868933BF44B956B9660A9103E2AC233F907CDF2ADCA9CA51318148B325BD29AA508D9A6F121CFD6BF37835F9EF9E3D9523F53BE11687A2F19DA1580BB868038A1CB0119585AD8A2AEDF39C8B3B7130FC5FB02EEE22279EC7ED7192B4FB87FE60CD64700CD4CFFDC4ADC518C216DB78C77D8E78E2A8509636B9790AF99616BFC5CF3394EE1E044F4DA0E22D50495B887C6B2A07102828E8CA08323B3071972286022AB78A794E3CE3A31897A2DD60D26C952F51AF92DFED277FB671CDEDA5667887CDCFCE78103037742274A82DC620B37DF769EB2332D95E3AD6E2B38EDA6E9530FA7803BF52A32A1907A880E18E7B5CF7FA751751D24A59CED3C08CF90305FD55F19C6C902BA7AF6F02464C1F84A67FD85F81183866C544F080425FEC22CB6304296E00F41B69F2ADDB5AE7F286D39EDF19DFB02161BD6D5AF66D2D + +seed: 910E96CAE3F7DF10E0686DCAD2D6CF8E0DD9ED69F3661F0799DF91CD6C494986 +pub: EA95D53403E54CAC9521C5635E9F335F75DA4CA76005562E75F666BA598DF28DB7EFFE2546EAB9785D75DA10F4FABF8BC5A3BA57B8510AD8825E296F6D1ACBD0350B05DFB4E58A120B6D001DD51732740BFFE855ADF7B48AE537BB790DEE364A702310323EBE2883609D8219E85AC252EE56FF58C5D6579323EBEF4D3EA265D1E65B446AF2436C3164B0B984DF75B63DAD2D3CECC1F41BB23560ED67842CB76723DFF07717DD3D9516580F94514B1FB3450D88F507F1BF07A3766A6E52C93F972F052BA165BC8D7A06A7C96A0FEF43EBCA6FE4BBB0D236832B70DD54F4BCFD007A09D4E1024817EC0AA397E9A88E4BD740D6588B30B6A994701DD970AAC571E66CD86B3C9B9A524F144D80A96565EA9BF9096721787D5E484A7CFC24FD04D7384455905DF6BC6E3F526481A38648F0EE49335EC0B9C067AA8071E0BD4DF9F23960754CA894342673CEE8A3F5A6C26DBC476C42715E23D222F3F8365F69F2571E777B4AA51126303A1E90AB3F9A445DF08FD853F64ED4A737BDEF71AEE8E54454F8AF5680C0B996F7EB4E3D3F01B95CF449E1301FDD80B4D3D238E7DA61F7BE64E26623EDAFED874581CE54C35C4FC6B302B565A8A1EAB844D086001B74DBCDD14424721BC36828EBF3C3B70A8FA289C11F0B1559988D4993B696E1C6FE6E62C97F4239E305524157540E9F472E979F9640B26FC6F79E69DB22928E76813E46A1B056A938730C1F4C0D5D5C763ED3B78FA56073D2A41C639F4AEEC923FD761844882615AC1EBF3DEC850E33B7D00EBDC62E2BBB0729CC465ACE1C8A50B4B35B4CB6C51CA9016EA38A79B65EBA47A955D41DA2F23460D822BAF79E08658253C019F1E393C0392389E527FA0C446CAA5B93EAF129C5EE2E0FA36D08D763042AF0A9CFB0FCFE6A36DAB0A78EEEE90AD2D5F63F3EEA6357EB073F9F912AF9BE8E04D86F4A34B9D7A351FBDA890AA01EB34DFE519195043B116AF01D47A45E5FFDD73D799CE1B9A5E584DF247B5B4F1128861F43A322AD193D94EE12741817A6324E0E8F747D20B20BD5922B1A1B3BCA25C7F910275DC3A93932CA5B6257E7476EB35DF4DA8B5545A6073D308CA77822A72CD72E2C3E82CF108DCB05F50AB61DFB879BF731AA258877628DF11ECE67758390946519D566AF6BBD45D621E53BFED5D874CF1D22AB489AC8DEB3F8943F9927AEAA68CC4381CC919D25CC10C2F4938496D9C787FE032F956419D8463ED1385A0D1C96D3510CED99AB14E14CA9AAE0FFB645AA8AA0D09C19A4CC4A6F83468148403AA88C2655ACC1C95F93FBC192DEEDD77A7046F97824B1E412FD8E70A71514892FE27B53118E4D3362878DC31EC6343D3595CD0BEE06D9BCCB6E96E8F5DB7CE8A8F31B24F989C4CEA43E55B3D2AB85ADD1907C5543551FDA44AAB69DA22483C2BE0000D3C49D00AB453F30F5E2453F8C02B20A398BCD082B6254FD6B923F1EBE56AF4195A336246EEAE1E92B8AA72FC6E355A0A1FA1A982363BB4C73C6102CA1393267A0A9DDC14CF5AA12F3A070FAA3C1865ADD1080836C2BAEAA598FA3F522133E7213B9BD4CDA65F0B98C377432A28F6FF093B6FB769B4E9777ECCB333A9977BC3C1C2B8D95D2A44CBECD962981948F1667EE8D64DA1989A8266056B632F5F7DA9018F290C98D6B546F98DD220DF299901AF1C0C8A2155230D7D46061BE46795A5982963FF1A6D507E256EDB08DF304E8F9358A32ED22B8BAE3B06154FB5DA7C4C0E448509A0B61CBD6E4E585823890BB1E2B44DDA6A8822C762F6E8BF07529C4F5A7690C24DF96C5586FE5131CE825937A5E5C8D90AD3848919D937EAC19FF862E5E4ED51C7EEEEE626D601CCBBD055F68C03BED53D67EB8B1668E06CF7ACBBBAAFB7855964B6C7BE342E63C9DF5B935338BA29FC651F8E029499B6F8E12971326AB7A0B836ACB9B0C67EC72900AF728C55755596894C8C9E0923799A5B7D0F37372CA168044292A1263CAB005323DB3747CBB1F6C08341320DE056418B32C9BBDD9DCDA8842251ABA76DA423D40DBB390A62F696FD3F1E063BB0ADC562326F2884C0CE745740C1CA4C3824349C175F75BE9C3DDF418894FCA12C0121D428DC9DF635A7DE5D6C1DB6D359A07F02456B01DABCBF49B505243A0E295F3BD03CD70209C2323131D9A300E7C626E8A30013716EE6564E11E349D53404C2001F1B77744839154D52CBF3D1045D71446B4B0E7C4E3ECFF88385C35A0764AAE46296B9EA80197D74DA2BBEB8A430E90AE1C341059663F51B58D756290858B054AD60D0CAD93AEF729824F81B9809D6C0F3E8C15CDB5C79F5361C33CEC09FF86195888F214B7CF69A19E9B3D3A91C09FE6EB43C970A1C6262180B9A0D599629F12A61702F03C0CA5A45F8518DB4481C721155791368CDBF786D1A7CCA77BEFD436F836B5BBD548F079FC87A3509D12179EB3DFF109EB6EEF56D21F70A3982B24C3661DB64310412DEDD44F6AAFC252A2CD4F8DB9BBEF12E0FABA2381C18B5A43C9A16EBDFA9F9C2A4FF5912E46FA2599FD16A318EB62A971A03890C8DA8B9360065D11FD848857568D08E8E5813B159CE3FF0FEA253593625F82B5BA5794C015BE84AABB34409E937C51DD3F6565932561571AECFAE711B61A9AE5CC1D12AEDA3659669A481A433137BD5EC3DB59AAC18004DB0F96E708E06990C35856DC612B24BA27D4D837B3E8196A2536D5E388D8E51C6FB25D54043D0D2DD5FB1F827B451B7846511E5F51B6F48C3EC08FE39A677E2C8E +priv: EA95D53403E54CAC9521C5635E9F335F75DA4CA76005562E75F666BA598DF28D24492CAB5EE1A838CCB870B738CD2BF15845081EC92FE655EDDC3DAABBD70463345E717BF4E9B77E4E42C41EE081FB7609E529306FAD0D010253818BED6F5C36E80F0CF2E1CDFC3644B0FBAAA332C91B8E9BAC48542587DDCE3B89B85AC95B67205358448251106374330761616370840427403060131555776484032685263315404265627140818478237330461730266886678220206757852370307812313186670777525377243410283855032620382282420030862325482173385126618006425080660754150507021155510527010400031730580268480057432412702246646585006018341365521716483413675564656536487671660142316774020375316380713786272377283742823337111220565020523286660270378010320780454435727328225012270684854752384080330327232568564232334624785300247078327824557671535222210477505366750273350760622046230230260051216004274018134720587804852011513328437632380487348538761062461618530322680868132352785267226346453636340478012526081750131434530007670441442545000101046220634032432113214835787158680732862056026304846838602761436702478386234638586703304407840415284465247473208178635703585423748148856167002814048306441188623612783876688861220036258078151885032812826481381533241417755607323112011074124487501132778203584733520654651330088421647830628846050045765114501255050401362864274111122784215666102828748217571715050331524203557710257341457213042182483316853151265470516218556873288758186361667570271538733143722872641133534773365442068318176733601261602087128454576104402730785325228074080124728136803212012176421321531125876743834555426446750774328825708846140833734063225565260787734461625334052344861774220588771408021810607471156332580632280701173562858681586364176474502351131460358610510860814212667307781071767853607451544703521337335512585050362481526644627232206577243115336803784153432761563147764470542241266534771730877768307535531184023433563146435118336554118553322683875347873514134711335415277733516356657622323524047003022507454625047621173572485725784623060878303721555357201478557707263311371545530238434748271222817073038030533437284816784301801712411264351214303745068324677180701387874004318531672172357360350653266358643677401786781602256310774310423523102138875113656455771583275031265507486382852658323110101755161235083527248117325406547684577540263666157667871418616544150267046727347840767160533104681104207400671472835332830774825088686527066365754634711824660710703543823161528234747317210601368642418361673115730670838723373875628051373556788162537260577837888028732672353482401052021665413247585302187633005427258870173180733401656355241728775560065687277881464582763237044678011865760682717142166374624528785211470160157277740506621763080770285055044428134504455441747414021514780758088166611667254100231637072441607706077511335806828544374880608121171511770560080601164106110827266126106183135415882627445120836107122852801612426738230306530455072677400205525856874676132831248508378511646237882435637476882748587424351284047403241180001573406464365334575336777303464222072838174364367877848211517701774258316522054107175211473552828834313110583621807140335000560AA86F8697754821BB4793B67A97B27699FC1124FD3CC779CCE56FD068D0A004D91A5A8BBC7C8517437AD5FA4114658257B24FD6CF7D1E7D4D0394DBCE171425087C232DEC09410FFE82C67427A4D97845CF0922C29BF38D3E6E31E8758A43839569925EB3D9834C352C2D2124EE24F5CF61207FD6BEDCC70E1D665D12BEBC188F3A1E6AE462464BCBF05587BD0B5E960A9D20DB52C7326DD7BEEC6D2B20BF82B9D551475B32A77AA5540D2C15D44C948A2F0EA266F6EF1F619659B0C4ECFE94D45045941FB3E3D4940A0B7412B2152AFD4796104D0CEFE9B5EEDB94ECF11B0F31956E2EC3AA935BEDBBA75AE3878667DF71006587AE20D9310A2E4D32A9ADF94C7995EBB2D72E1EAA238EEF912458918099AC43D157EF4B4480F8C87EF8F8A14B083F85CF46F795EB40EDF4CEF2661566D605CC62AB1BD197CF13596777429D7E7AB5835D736AB302CCFD90E5A0A56342F27496F7FD30064B1CCFAB8C3A052353339DF7D25C05601B8B7BB86D0B43BB4E1851636FF4471C26478460FD4F90230F3882AD8D5770B366B8A2055ABA7045DF54915850B48C4C191DDEBB20F0178B950F711757599C73B31024344EE04EC84E57B818F3C77C939698E895FE92BCFA7B2A8E6F271C39718C9CD91A278EC554A3746ED04063964FF384DE5D9E53D8D018D99F974F022A8820B1AB4F2155FA7CA8D8D454058AA179FE01CF8808B33EA1CE9FA5F57F59EAD79E60F374A5AC959F35A22A336F505061D75497E374DDF66889B6D72D5AD04E73A7BE7DC43EFCEBD248140B0A57E31152EF1AF3E6EB4A203B6292A867ECCDC211DC0D42B67D7FACC9156D159CDDD0CA254D338AD67093232D10E94B5D6DA4492704D9A35501FE279B2B6836978C0520B643323D9E0FE1830B2EEAD1BA1ACBD76DE53C8F4539EA793415E2059582406601BA40A2981EC3B5CC4EC5328F6F636FEC2751870923788D0F8331313B0566C859E01FFE88335DBD0BA67F5A6F73B41BC9E501272C7D2B6DC0047E3C7796B0E716C1D5E2D9601E84876B9A94E91FA7A48883FD3829786162BBAE86B4F6E0B97EC079BEF8C57FD43444D2602D3A9C5DF317C870C34D8B530C92B905A8B192F0CF1CB31F67CFE717775652D3EB6BFD7F3736CC3B956BAC5EEB82B73A29D6BC8FC64375F4CE18A066DD7E8AD4DE9B051DFCD749232AF775A24597BAFB20CF25BD08EDC60D9A5030BDC28E600EFA01701C9F19EB20755F17FF66A3BBCE48CC727F7D0B51FA1652EE2A9B8CCFCBBCFFF80EA6F6CF977A757A1F079CDD91094E4BDE475DF195DDFAC60D47101E459EA750A9B6668F66B7832B1F96EDA29FFEEFBB4F4B988CAB6E0000377B19820B0A12D0650A60DF4606D92372376134D184E5E7F94688AE41C3E7067F191BA295C1CB0F283BDC5BB02D6B77DBDD22B36D7028AB787EC423F026C5615F4BDF04859EB68BB550797756F148ABB10AABFA479271B202AB399A3D5B6B269C3B04B6E6B8282F38155AABF1B5DB61513DE96993C82F7F4528894EFBD76F99ADDCE4CF7C6BE8F73C341EE5BE2E9F6298BE4E1A00D9751D65A5414B760CA2BA96D26A7B2E77884280647BDD9E6ABA0DDDF1E84AB104C34D0FC10DE4D634C18BA991932DD0BAF307BAD274EAE729CE4E642A070A9C0F5B5343816D3DFD78EAC59A8A36CFD5CCFBE250F5F6294FD58587BECE6C9255C2A419B7614A08097AEA3851324C533003874849CAE7606F190090299C473D3C367E2A11D61363C7BE70A0A9E8553E572B926BA73ABA9E149890E61A07088406EFF8A352189F6D68FABDE060E3F3592B9F729D83272D62A02C933A2D425B71D9EC5839E53AEA96CC7761064DC37DD434B6AA283FACF03A5230F54AB0A6FBF7858E1434EB58D989318FC7270E0C76ACF28EA8B6697408668B1F556DE9A53ABDB587E7F8D7816418EFB92AF93E8EFDE2F0843208B604E483E7BA28565E4ECE92A54501639CC754F0D5BF5BCEA727AD2AD5030FCCBADC4BF27A16057B3F948C45924968D9F69F0FC150944E4D541416CC46AAC433325AD2788A944A607E001CCD824C3A1BDB3F5E0F5FA93A864A7C7B0C2F95B99A5E64944F07C4AE95F9EAB462E90487EA2FD02218BED373536E1E92EB7B9F48F6027941A289E2A63CC9CE55083D93514D5EB734F9CDD5045E4A910B824BC105858E6B4B2A964A5303A9593E26824D5956C18B5E7CD5E926DF580043C54B3862DA98CB9D84A68954E96026EB0B9C9CB21C6F04E783E759E49B7FF5E33CBA7B10DBDB4DBD84ADB01D725625B86B60B8819B23ABFB84F8540A953A53E9002896F00636D96928F5D6462DF2F1E5E3BADDD3E7EE5F9BED9ED8E29499AA327083CF6E3C6759F34F61B3BE3EBF6629646B6D7370667A36BC53056B1C045A5D460AA6603DDE5C0E80B864EA6550D2529F9DE9202A8731D21518E489D90B16F89D1C31734CBD18DE5F1F31872593AB9037F3DD87EF3E91877961D075532305BAB20FF22ECFF44DE46CD7E4CC5E19DD5C101AB28487DDC6EC920DB72A30EF983E8F4D009569F2864B35B113D050032CDFBAB343086BA92D2BF00D7CAC698BB5D436070566604D793E945C98420354077FFF14D5D4B7366AE9FFB7B3F6E8B240A82E85853C73FA6165975A4C11108678E1E30B82B5F6346B283C41964FEA6D525D66B46C2BD259137CC02B4EE78532A1B76409F95498655F6A28C4EB4CB280E6F78019D2D5C70BEBF9BE1943FDA6897EC6B56ECF64622B520AC230BF261F60C2E66CCB7BE18A0B16BA0A08B6F8468F2A0797AFC66BE782A6F6684760CB189A287F74996DC6A2EBB0B17FED11641D89819761D3C0E4E13F165BB6AFC6706FB4C9D27AD6ECA1F8F8FB4C919D88ACED483DFF586203904EFC7741ED28771317645FA2FB2507391A663F6E58ADA8E219C9B379F4DF03DC578CD0AFBE62B65BD18943C81B9B7276F47E81351BCA38770A57894B2F54AFC746155111E928A7A65E7B4620C976BAB3BD48401327300680153C2664D303B5365C0F967D39BD92DFB53583ABD16838110DCCA3FA0BAD45F485F686D1003D62C3F7E86D87E908F3CFD77223AF4D4F6EFC817F14EE85617ADD35C630879FD6EA0E20645316C26FB4B9E66AB6FCAF5CEAA95302E3258EEBA216082A033843D592F9D9B655A5509390C63B02E904DC2EFD9C1A4F9B782BC6AF1F7AE315C0E7E25A5A8DFE3FF2745504BEAE8D41EF908C45F3FA6F2E40262C88278E89B02B3C8415C2C8CAA76F687EF30014C2C9ADEE89E46B06383F4FA33E66FC80B7C505972D8164F6B651A4D037A5FB2ADAE708F4FDCEDD202F9D114F4F78BD2507274E87FA4701BAB73390650D02E254729C33DC1378E9C97BFCDB32D2755046E1FD63CC0504B8117F82E7C1CC796DE16126AA3F50A9AF0373A819B01EB63FF834EDB711DE4E877EF2F1D46AA1B7E0EB0DF171AD0FC1F2CD0B6B029CA782FB259C5F860428478DD9E2270A0B9A05260DB661CFBD0E80E75F06020221115BA18B0D6B455040050B23BB87D9DB5F87877E7ED688 + +seed: D0632A6EDAFFE0A71E94E62A5135066E6F7ABF8065774A2596B6BA2F7F138BB8 +pub: CA806CF2D4690C7BB3AC7CC12320888B62C8202262BC7F8766EB6D7A3A067A74348698A5CDE30D2256E33639E45307470DFB674E427A6A441012D80ADE3CF8133B307E29842FFBA09E7D04C123ABDB4CD41F27291E5A6ED55827769503EE1112AC884873EA789644C70B424A6056038E2A0D785EE036DA2DA53B724CC1FEF74831897636ACC26947129B21ABDADAE0D105B07FA4C1CA63651D23355419307E8C44EE19373AFD8CB061F1B1E8406627482A1BA2E2DABE2E5A0CABDAC7D2A7025A8BFDDA46D9ACB02AD4C9466FA203059CD5673C2018923A9304890E3A92DFFE7ED3592CB07E0B23181B20927F96F0E85E4FD59EFFBD51FEF48909E36F153DD128C001B59F164EC759C9D8D07B1DF6252F1B8DA19B9E9019FC5B2164A88A4B4C34DA7A8DB6B96E653750BA8039A34D5699ADD2B5DCF3C191F4C10F4F3F772074B4B726E65E783AA34E3B09079CBE2E68F0F52C647EAC333FDEEC274DC4E123E078D47FD52D01961E2BBBE62A1472311BA4AF5481D92659594812A4A1D841CC35A3CEED21F5D69C7F1C4603CD4E1E94B9FDB5FBE2EBF720D5481FC0A095FB987D2F2B0C5E54E9509B87EFE228A21E547A28AD9784477D275A8959AB2013BD8C8702153FD2B1870F02BEB1D1B25B2CA038AEE8E93A6BC6E5154624C6A734736124C3DF027D3259F5F89C51B18F4C3772795B1E31C7C566FF6F2D8BE4BDBF75F6FA4FB5EE4D9243A73F6D7C6DEC8D4E0E5189D50D0E419FDCFA07F03246B00C9D866E87DDFF61BA2B7FF863B7B120520C67BC5EB4690249EF688065D94AEA220EB3E3A11AD5BA7A29D9F262CC28A2E24668834DD679A87C1A0A3F36F905DCD7829A772B1308FFD56D021E58A81B60BF95276EBF04B1C1D6308559FAD1E80F39627D82DA5B0D23CA64BAEDEE87EFDD8C34BBA8CCEC047843C84AF46C435AEC0B23F9471C73A78456734A715ACE1AF64BD69FF7ACB6129B1C78608D5C64BF7CCCA2F9696ED1C64369007541D7D76DCFFCEB8D2E4F911DEFADBDF740A4048B0006EFDE5A73B73D553505B7286211B85F64C7B9CBBA721652B8473B4086C95FA7D0743EC2F9CC5C887A727DC2C7321BDCCDB028644ED73EAB821BE8F951A26A516779FCD5F68EC495C9EF78660683F08A85A610CFDECFC58CF49A79A3B9E3B5FF9E403BE51C274DAFCDD07E2051B44849C2ACEB79CCBF64BD6741B58FC4B6BCFD23B4496918E9BAC4FD4FEA6EEC1ABAC8757C6A972D3909BD94169DB5EDB540225550B600BD347EB3EFA51A5F6171321A6F1AFD6FA0A7AAEC65A612DBFC300AA4A1921CAC1D77EEAC226CA0F8993D1929F4E0F0E85FA38D436C035F49D85D1A802F4DDA9E4DA98BAC92A0FA7D5C2BCB1EB89F3394226766E4AA513928DC910311B086B19611A58F6A9A2B494E67E22BD10DDB62E6DBD775E7269270E2A0270D60191C8B2C8FC511D6CEEEBEC5ABA95375412E14BDE0906F2007EE4A61EF0E535FB22E6DA4FEB9BABDDF775E0394997574AF4750ACC98DB4C7979B90D9DAA0F35EA877D4D868F828340D1E38C767F413E89DE0645E1E2241A79FAB882DBDF87A04B279703435E3528CED89479D163917C1F990DDBA9B625509EE7B8AC53C38060BDA1EE697A6F237C5AD3E3347A7C6F4450A363F171901165C2DA96393FA31A057B1C1964607D923E5E4C658177D5BC0B05A6CC0DE1BDFFF0F1D0DA1F1C8752D3AFEDA44129507ECB0A8FB52114F5ED6F0CD1BB486AF44A3D74C8F88A2AD42A1B72FDBA3D6BBD2943153B55A9C8A4DFFFBE8E0B0794E60C9B64D7D716C58634F7AEC6D33CF50E604048A2FC28E9C03C7A77511D7EF20482FD11F815852906B0B9F4A40D45FBB972CA67149CADB90F9BD3EA69E42291BB1562464BFE78AA39240CB24B0BBB8D76BCC8057A3697A2B5DC71C8E9AAFCE7EA04A0498B365520621B1CD4B38C5BC3B2CEE7FD7599FB79D67269BDC4E5E2ED33F9C90D6EE42C9829845D7E6D6E861EE870119E99095777327297927A552D2D3D8D850D3E4B63C8934FF69ABAF1A69B408DD2C630B3B7AF05C1F0E22DC7E90C4A31F585FB9D9E4DEB4E9607CB49C47E6D8DCEC439AEBD1EDF4CB0075B1164A3F29C33DC9D0D59ED5763AD8B1646D0F655A00B6918A90A417989F9AA44B5CDD08CF1BE46874218E1247A263E64DC1228B540E70CE9F0FA70EDC4B5D02CDC450AF18F6B586FB850848E09682C5B6ADFB680A6262F90856FEAE11843B277EA039786313A1AE260DB0062AFAE786B61D4A4C3B30B8194379BD44436879EDFD61FFACAA894498CC26E2F7D823F0AE7687ECC67930799DC402BF4F95DB72001F508D7DA37EAAAB0C2C553A53E7587ACC342167F62EA39C37B3E61A5D7AB113CC38F8B7525768A67BEC285F0ABE9BA6A9957C77A45602BF82F1059E55AE9B9FB126D24E3003D4B21C9CEE851527A324A6F48FAF80387D09B59CAB3643925EC74FEC4374EC3E63853E741638EE27D829CE5DC11B8120279EA9605061513C6A69796FE9CB8DCFA0EC70EEEDDD70927703FA4C64BC723B94D358371310ABB486F086ABAADA7B78B1C0C55D88EF497EF7B10071D8AE72E2E28078D04ABF04581FC9D4FEE6AAAC4637E6F9F6F65AAB1BEC7526CC1BE743A0EA8481AA9E069A9CCB7DC1575345305FBBE7338C1D82BC10A1B64E69EEF7EAE67C5819A3B49BA603F7477F19B217AFEC4BC32DADD26255E2F917806ADF9E64F769AF70AE5691B26070A6C65732530D93AE6D1CCBDC77AE37C494B51775 +priv: CA806CF2D4690C7BB3AC7CC12320888B62C8202262BC7F8766EB6D7A3A067A7482939DE8E5383E4A4D7CCA79A9B7B5F621A461B2A1894E53315103F03C391E0A38F615C6BA1E541A423565FC34907D84917BEB652AA4C7C89B35EA83F793FB3869705E5DEDC1D7D34ECBB4D95C1D35DD6B40DE0CECA740A4E31A27A3B9B98B004167782002506841243131365280841862554703104113155456536303543617108241084365386764253004844717327286064008824375547612437003687713635685066644742221774873358808665720400037071175028268662180577204401046247407058352323335075052670824212300407483106303227830177854464331616047542826861670237417840476056071515848278403033816884841214314076440461221508580035331828782618221062670850105785181770543082612856215036712840812726467805080064220170772536041034233473660817847175128245640505226614302508264364233558221033502567126054184687247511388085075262104876576227676324033577673623810188261171678788152746506166666437714701318570634332258550030740802413325435742263763045437462580115223212302255580103400865160557838787133716521241880267285308440147661876354467437784576735016345306611633062308811754584122563375147088373865225564243753521041540308730534446822385070861372114166326555121551770304536258008600364651176054363425836546104588565084542687503166017467336054565181617671174833865845685463658560857723333778762132475402167621010761623608348147038670132886240342442203328236027687753446546143324435782630665465553071476465625052657022353521572181631224342003132015665731086200251034727642342042768724157205803313336582551523358281602585074476178580187227145207635537012102513281730837422237248644518856730446206270316046650705818616665454358454738580353684110371157587563500822416111325582357584873627108128414201573148520755163811133056706316481086737445764287175387115416137177806484511265720218435445723261765302547621018234141462250030101638825222058372031833322338705318630036282520683874156368725686845163013242685832845523211553403620674105511622738815740862134023810117557426767760474585642644381655073854814045378307374382347381682033386078518685732885231765713423524881768718425148633644633286058714086311531058034818681263601377352475382525127272081155327226706655400072010405570087661815758158316283675713547420087156758728037757338135282288202782248501716018427204542088117607023584376282157782581470415233186584826507805762724272460033571412651326634402130004312645872667823075287652008020443487546340027782053437118628753610138356363183678428866266814623572045615003787625306877435726552077775273853857342148168433307612655423471126126802170023576688573236778627018467128804074385508720177344051461510855273367027750453251260135356145844210610652605165255220226672777165242368018647605284032071386241066412541114087584161112462346880726742547517663078120246705222743787525124154100750480507431087464341512207843441744722418777548374068250520572687713551245737701746245167380432348183857040811300514238606167175033186851181631382615450327661753468814784210764752450808523060630255288500182478823571263715802420751310703278612077507052483158216127060610280280340534522742587786314172781347215116342513C16B0A1B5B614ED286BE55E5CC1777A2680709F20FB7C0BE8326186386A4F081761EA493C531A8A89B64AC384C313F63EF47D643A8E614A9D8D00EC276D1FC7D84034EA545B2FD2BDADF7F90D0BF68EC519E47A35F14510BFC78314E51AE02001C503E723A4B6CBDF23A73D7E0150A27CD344520027639033E28C34E7E6413827C4F8213F09BABD184118676D5E1361B056F3CF3D5E0CBDAE14AB817EB1C8C4F9A94B65900259F62B3E099DA04A73CB7A671DD3814FD163472983BC8656C8BCBF2DC6EC110827656B37ADD2B79E3B7FBCA07D40DA224F67A06EED7E57B0226434017DC436754C5A9464C687BDFD74E5EF2ADFA208F44F18A40E36EFFB2271C634F1FEB5DDE90C929EF2106368C73A7672217BD86489E0F17B5EE32A61AF1950DF50E15E3E0DB1293E0D02F9DAA92999AB5BD13EC2AE956BA90C226FD88CBC6BF31FA87B403AD68D166F60B25E539B769ADC1A80918218DF163062A8671F090CF07686490C4AEEB58D396CD41C2111316444FB56200FC8B902A2EDE74F410C30153B8EF03552470F1C00852C564EAF18CA6D5DE6386F2077837388D3EC51894D90C2F86601E4CE8D6A974962189C43AF8C9F682573C794669379FE22EFAD679E4CC797DAAD13E7F41EA7990D62074DF58E69F0F33AD8A1C77EB95FD8253C692E3009239B5664FD4B86ACAF7403591C3FC2AC97FD750F09786A430351079FC257DC7884A45F9B418EEECCAE1D5F63759E3C9D61443EFCCFD751AC19A9959455AF7A49433032F8CC4F5678F65E9D6FA74761B9B9A1252928D760113DBED52CAA13DBD0B1B9D63D7F97C4A71A417BB8C823853236ED58721F903D8F3B8BA4142D9E4D3D95B59756B9A7D5FD0484AE286CCDAF3BD033F9B743F5DB8592253848FDC1E2DAE0FC717D056D8D36FE91B3B15C1165E018BEEFD0A28C43BBBB5D95A82CFC1FA2782F2593DCD3F982143E7AE80F70363AEDF228A7D847B185CDA5AA435BEF32D2E4033C34D3C164F0CDCB98DC36BB52A2C8E12E3E3B3D08DDB265528C7F4743E34CB72CB663EF69E086E6D46002138E35B2130FF2CD40D9854D674F98805B0041123CA280589EB45F066E7048A2A6E612E81AB1FA93BEB0FE673A9092C6F72856B696CCBFB6558A39209C92C800FA0ECE324091B88E67FF414AAADF439322E4DD3D6EA72924E4960FB7A4D9357BE2EC4C3279BB9BBF39AF61F0E390C6DE1F94A4786689C0CBC2E9ABBF3DC6D0D3538BD872B882284231CB76C5AD72560CA2FF6B7BF99639459E2861500A34384862856D6AAA944737ACB263294264209E02501D97FDE1307C45D733C4D35B4EA5EBF63A6CD16A8D0D3294CD4C678AC133BC2B6315E53F4E823F3FC259FA2696AF74E1EDE6C36A5452BC5A339068320123A24D097A379EAB362619070A62033949204024915836AE207E0855C28512DAEC08E70A931C69D96AA565C55B4917CEFA3D16F6505A77CD6DA985B4D2276658A0DC6055F5BB0463C6B8A521AA8F7DF7D9CC08BBA26D85670C888FC2B2DBDBB0D42A1B15067865E0991FB0CFEF9CFB7531769B5B3311845ADF229DD808243927BE8604495F7FEFC90021D1B5CE27D372DD9ACE488C83D99EDA25A84C794FBF626BECFEA5E3B1B360D520264910496C4922A59EFAA779CC9F5491000AB2A5043E18718FBFAC21BD187CCCA87199F63C29BD1F402DC1115F07CF993C9C46AC89F394D96A58F68D9682384AE586BA5E6F575837270B8F00062EE4A072AF52C5915B770C30C372BA591120DC8B0EB63CA29660AB16FC95D8F5F804479786B68D0BE9DC758775921EAA7B1A4DB99DD6FFEF29AF98DCD566210EFB33CF062C2555F0495BC654FC4952AA72E4B5C9793917440D63D5F5C4ECB0F901BCFA5F3309D57ACB366396B88EA9DDF1B9A07F649D5C0ED5B945FA4BEAA1F01A900F5B3FB64FCFA7D087A41CA397895EC045BF595C2B4DCF5488506A3C7EE9C4B588AB0E49FCBC7547EA2A8F867813321658A6240F12A1C2E47B1960BF1BA97FEE40A82B0AA13146BA443A891EAF7E885E82089A5EC21D75760BA5B0197DF5306B3438D3FA2B799C6E171B6D9BE22377704AC307B54A6EC6FD1FC98C57BD4A8B2E5CD5777799E3B86FA8F0D0A683EEE2167BF15C064DB860794D93ED601C425598F5A4D5B354CF0B8367AD742144B1CE70DB908A466F4312FFD7FD55FDF8F820398BAEA18ADF3B14710325B93877EBF94A8F68BD5A57D899D12FFBCD261373D2940D78A940D936F9B2F88599491928A9D54735F676516330E6D3E9F284FE32001BD5A72C0C0B29E2471D77FB31351CBA2D41AB5EC5513C568EE993457BCD6950D259E41E0682763F057D3C2234075C6380D65221E6E475AEEE13CB9DAC1D789B0BE04941985146149F3BAEA4F49053CF915721D53E4969B9E5EDC83342A2328FA0FC758E806C8B9507464E9BEB51379B650F6548F26930B7AEC18FB76FC3CC6E74C21A01D3CB206E2381EB61D9203C3BDA62B8BC2AE048FF6B3484E0EBE49D3689F51061A02D31AE18D0F3090598E4E0DA7079914B8BF4D9826B2ED5CD4FE1DEF48D63ADC7D66FDE0215A74A333F13F743EEF7CF61F6403CF927EEAE489A978F0EF1FE039E1AA74EBDE3434412474F4C9EF6F5A0F1D765624E7C7F5ADCE07434F8744D966B685139258006DB7107F7B0995C923E19A1A778639DA3B596F4ED950B4FDC87057DDD5BE1D59A6E52BB6BB5E3FCEF06ED76171DE35D7342E1143A7FF257CDDB98194934ECF249468FA77339BCE39223C299840D7F9A584A3C9E791399874235B3F1C0551486FAC4BD434A4AE8F04F011A849F2C8343900F0F9BDD9F9F8B80A7E6D9D1B127ACF0A37170415A2146B03BFCFAB50AA890EA64BE874D4A67AF2799FCFBD7772B5FED6CC2E6646845B007545EB24B12F7C5EF5F9B2AB7B4AC774B30E8FFDEBBDA4CD07CEF7023F20EEBEFC5D32D138F7DA6AC5C55D9896F618E274CC0BA43F058917667894F99BD0CA6E25912D6848AB545449D1A86BFDEB77929CC9E21FEFA8315AF65FEC0A4596F95BC3011A9F461A67E65464D36A7F7FAA07C487CFD2FCCEB9DA28745B4A7543C5EF49835914B25493A43DE0DDF4ECADB68EB4DBEB7EFA3DCEE7765D07DF439BB632F9723877DF94BFA7EF26936610F41B07D56026C91933F019C923CF98C255AA95748E99475B77F21F787D3606A3676A215785728734A7446B0A54EAADF962EDFD0C11F31187F84F2629069CDC97F99885A5F0B8A52FAF7B9171B40AC47B14E00D6C708A109F03C7E7130B1747BB5243C73D18BED9F97FB2F2D0449A0A9F4D4348B0291C47F2CE493209A7EFD0487D19A41383FC7C6CC8989F641918078ED90D2154E3CC3D4D0627FC86DEE37196EE9469D5446AC97A1A491E3FECFB656A4A3FB198FEA6D3CAF6C9FC09F79935589FDA995C90AE9D78BFD33954D0F78D322EDCA54E3C4F78F9B99B9C60CEF18C611ABEEBE7892D3CEAF5D6954F7C599BE6F283E9C1F60EA8509D8EA192EFE792E389D2E2F0180B92631226 + +seed: 74C0714236873EE53E7F8F65B1159ACCB1994B4E9D3E8FF194CC87D7116BC0B4 +pub: 10EE0CD7D3E3C3D54FDC1B5367B8EF0DB5A20C92946B3471D8AFF7026C8D7406ACC5943341CC53C189A843AEA7399002EEFA251842F86CE14D00D974B4208734A416A048806AA9BE9D7B5B9EAC0C6CD7A3C163801253DCC0CCDD9AC2B4A663992B9E2B7EF3E2E8B1D93E4B677D1B36E8388A919E5B3A2F90E4EE69CE88735B8B105E98299ED5A9AC192479052030E6C56CF1FB2E5A822B3300950EB73A8FA59918C5468E3EFFA4A410E44FF78750D7B209F0BF48EC6E3062B76690489E1AE93A278D4FF6EF799079A8B42863688BC71154A32818CD76131FC400F2EC7AC3DE5C2954DF90AA3324756C8F31404A9094CFDFE98FF12D1F052C94C68026A214D0825A9E009A53AC5B8AC30777E05254E0C966160397FFFB0436A2CDF4FBE10B373349524AA455BF3A1A90AE05D9EF25843C8E9AEADB5FF113ED03BDAFC1EF32E3EE3F073C0FE0906D4331E2F18EDCD335F094CB3AB30214E3AD3A919BC1470685E514F86AE2008172226495349F4A9E55C3303072497571C1F4A2A28328E7D83E2B392943A5ED46095F55CB28A38BCEA6B801C1328031889A252851093FDF0B888E2E35C0CA28B5D204955BB6A41DF6AB0256B985D59FAA55880379B080DC7C1B856642985198F4B693AFB943B6C9463EC255013265C586371774AEC9E3251817ABAF21580D50A849328A828E5CAB4C9DF78C177FBA51527791437AFBB01B2D7E88824BB7A138AC8741606270EA33EA27AFFF8B3EB0F0732F60A8D179B95A513CDC9A8072C202CF4A5DC2DDFA51BA3BD186F6299C3F7AF805993808F3AF31E43BAFCD1A53A494E0D6B2B230FD9EA2E647614E50694B9FB19A810A83DE294C6BE35D3053CF2B16591E57A76B0D67C97B1BD8AED950BFC5F8526F571C72E6646F2B9FC09C9070E4A761FD82D723FDC96110A3D50D2B58CAF753DE0C8E55F32C80932662A8C17AC9B219456AA9649629CDB604322676C3E3BDA5EABA95F4F0DA031DAB5ADF92D8AD4190EEF2742CF42B26EF53A310C15D792DDB795114505222D05C21AA2567BB52E0C20A7251A672267D3B1F6728F5A0C00E957A534BA80D996379BF00BE4A725F2822643803F1F6780785B0583E0D41A67831E9B664C4E843C8BBBBE525C10FA7A7D5D3F082BC9CE72046EFE9C40EABDDE491C1346395412845B3E94EB9AA0E54381BFAFDB8186D59CF00E9EEECA5C369FF92930B569215FD7733BEA2B7BD8DD511C12EDE27ED5BF1A28080737C73557007890FB77BC5942433E8AF06234BFDCE21FC132C27A754709AA5B8640EB2C24D5F2D3E6DA9B9584317F27FE2BB5F74F95F512CB81BCCB2A0D70333B52415A39129759D6FC97954D0CF9DB5DE9F091784BA15D360B2FCB7F0F43F07FFEC2C3161C5C80C9586BA6323714391FD388A5DAFD74B436CA9455A5A025DD79D8F35632536C1E4B1BF67A3AD009878D1C067635AA9AB6989EAA3B8D788887ED3A968155CABF5BAECC99BA50F5257E9F712DCAD05EA58412B05ED7B484F54C04FE9F235E5E65AEBF23A55F60953F165C0820A9B2FFBFCF3FC6DE3DD30C1A82731705146E8F9D32B61E4AA16279AAEAC2E04957025C3C8D8AF4064924DEFCE4CA07E6F76BC56833A83B3CA4B9AC61527577C1BEF69312FE3C61A09954B0CB6261BB1272A736E66577F3DC268C026898961886EE7822056149C35CF6F96FED8885342D12A22AEC7B669A4700D19DBA1C275FDDA86EECF0393840EA0510F6BB5033C05914CE4B1F44615C12347A45405CD323738C2BE21385DEA60ADE73CA54D52F14203616471E0D0B3C1895BB7013FB7E549347D4F8AD066E20F8AC282B8EA89B83014303D2D9FEDFF90E3FDCE51124F167C9D32235E8126679D8033567FA1E5E41985CC108E5AAAF363BC677F961C30C1C34E7A866243E0FCF79271571BFB713D86F28F61C5AD2999FE7259F15EBC0622607553AF79AF73F01E8CB369CF6716B91F46444E6E5392AAFB8DEDAE015A50DB6C032EE026BB1C33C5D26B7B6656F6EEAF7C099172BDCD632F03BFAFC76F8C2A81EA19BD8981901B4C4304912B0D4CB25A27B3562956FE094422570B08089F1E28D87F46057D4F4ADE163E9045159D0967AD8377792C4FEF17A25F11E36B21DC0347A70D7BC79DAF4BAD4A6A153FD403F601AE7BB3E78B597521633500532B75A046CB78183C5E1EB84E3AA84D09EDEEEA0354B9DB64E9B5634E2AFA4FD66D08028538D1756826CD9D467DF890AE16A9AF40E4399BED757EB5D47B21B16D271E58DBAFDF8A98B669EE8FCD42108C746AA70A050E950828E4FEA76F3ECC3CECECB99CDA5CAB069A66E216CF977C623035346574198B607CD9E4582FD7F4FBE32DA87F7681451252D9440A33BC7021E41280DBF732DD2EF73CE59131F972903EE6E46D61B1E7CED204CB149D8429BF4B05E25E28685B021ACA8BD5F70D8FC737EC696DCF647577CD3ECD2CAD3116D9EBF7177F6AAB6EE5980822E57AFCA971D4057D141F1F55B82BB8F420A064B6E7C71077BBB137C0DED97B2AFA2A4988CD3951D2447DBD3D5079920CF75E569191EE46AB04393617B188EE9F2FE6F0E256C8C95266732007A1CF3F2A388CAEFD375BA4B78FC8CE538FC3E70151E94706A111B8A26F5076C4832D8B6691012081EA71AC204F3E318DFB7590A873E0E70362807693A30B7F251E9F363E494428BCAAD217FB9D035E4195C2D0DAA0B598B426B7EAF237F88965B4A4D674056AE40F5EE78ECE6A862144AB77F48F5B37486075D2 +priv: 10EE0CD7D3E3C3D54FDC1B5367B8EF0DB5A20C92946B3471D8AFF7026C8D7406B9EF82C67AD72D44F22E10F89E426CCFB2811A8E07750EC2935A1F9444FF4131CB48A42D748BF952B8690AD6524023F73316D90AD774123DCC5319ED02F202FBFA1F1D197EFDD905014C177FDAEE49DCBC747225D2FB3CEA3ADB8E2F10F5755F31436765238773811321733542255302236533175246241780115462104128007273467573581348025535202227888706643664845147473688287871520557661451418514328878413038641373366831185718407742631304024076022441684115028005630816212057231680771587242263888473502112263046460617144852151674704418681846542541312625882506057864440533060357780443856681154777055701564087151872280855644718015658280312863677851147420664002785211407513254877075818406464328248013813154001322331624050147360555283035458016011331203524038706005326522546840872070671102851110243378174102083335884817020806875402760403831201100510876353316634888227144764415084733285837346265644801676051255766352818487278123042115281377854803730378374471578305031582424347547435583025488480537442240264682550287888171205276633203648543708665200471783114087658344004102353745875558615862028665386814251361853842784661712201842436134335654038651468851708818528563106713814084732620424444237602114074526706512504115573852618086623748284154003702757757885036608640844880578740408271280183246214564565328110404504021103016366323280028504148533853428165340303521887433431373146283407730451035150720684600438720240345177513074482742355148418025323238586232103826864137218026215613418453320312007670683531321512305778830220658672678877563067006255872600208024500124245128464104281008478520046576600633618564710588403104531170654438824562483140304830274223077451374414444447124376042865584403545752862327612288316107336565543304420625625012177810618312506023087408115701507637225608287258644060687666174638270058500353333121758648835266567510606053434880354021738386588676806063236654101672728166185228385412582015006285747468822340712803265176441520244078283446424774241033356353475612312701617237258760886425214443261704054342328120028688506282815074881887174845040542014534164721023455783006371746652275687272147487705001375251724275752155608832577703522335257124614767107557731356735056633724055282726761568051586048862533873550710632478825084814164307166347670722803851310738410137755085005608733655557485423453372808253002062253267038441144230483053567613201418323534713125770348632334075865343351277534834615026336638362833351283363448556373502072322478778438815815664723328454262752274860247747123500500630273565256443614682104088854483626725222523065686710162472081316104233804041537588555546274842073138881460052176546281423571573185338586307437833408755217507062427213105610460654803111545817106235831580136240252415456220148378568237665852106565412111146242167358174564532174715154103728681582144676477318056841602550434801435838750170373643147742013068813731813005134634107011047674042315218355460415773452841407821547664873708810126218821246161302682282412113460675813240713848158403046611047337524175380380808012270778466665852652317643364873677411852533564414508451220153F0E1707371B65F20CAB5D5EBD4E8E11B4E4F5D822E845589D4DEF994F5257DD296A7A8B7A99B416B8A67923C9C493A9E4D235D76686F0A80C3B1D922147A744D5094C44F262C209CAE25B9424FFC972DC73F836FB02178023FA1C32F80C9738BE0B43A1D592EC849D675B7294D2F44CFE4C1075D945B06C11A2DC643477A1E4AF420C3599D3500CCF5CD9BE91602F3A3DA09678E49E076642697D5AF3BEADB383BF51FF2CB2E2C2B64175524E1F55113A4920AF070BDA6AC714CC7F10DBAA72879B73234B693B2A929FD8637A13A93A8CCDE2C5B3E5003BC9224FE8F0A0480C8BD9D12FF50B4DFBDC0EE6EB93038017377F024B2439A5E1F4C918818F3A775C63B8BD67F4D532C0EFB323CEA9B2F4860619000DF98E5092ED4E55B5D56D658A7F92FE58CA2751A17C91B82043A9167E891015CB90B1AEC900BF74770D7F442D102119F26DB95E31E70E8B3D31604F8D3F3E74E6B0936F5AD20AACCDDD7A70396F0167419BCBA7CE8B32334D2EB0688755838A03713A9C47798E4B1757734021FC6288E516492B37BF2A046E56419A1910564A564D642F14DEF38D81C4B963DAC9D23B3960E549DAD867F4280567033314CDEA6092AFC9D9A42AEA5E551EDFC4AFFD3542671EDC7740CBCAFA2299C3111287115CA755C7F9F14BAD648427A5D8DC9F687262EEA0E594D29B0B9AA6405219400C0FA2B6B8AECABFF90B0906CBC77A22926EDFB96AE021E20F930D307479D1831956EEBB08F4444A63597B3B3B2788C8D05CD519CB40BA1F74D6B8A8F6E71B809393A47522A8AA8220D0B1042CE95A744E81B65BB048B6ABF484F1747923D394BE5DA2C34F0BD81A28A2B0DCD1589EAA9F88F2451EB22B5A4C7906E818E0D8ED383749A87740F9261FB122F3E89DDE0D1CADF056D40D293574C0D8BEF6C7AE7FF2155B5098A2C83960F77E778CA8602F0EB6C019529D01B73EFEBD4F97FC855E4D11B2B8F0C791772A72931A4617535DFBF99F5FDC39CE1964D7D6F42192EE5A2F58685D18062E50AE46DC5C65D3561D4D09615111EEBE6D3ACD0B7E197255CA4BDE22464DA1C05C1601D72954E7AA5412541EEC3F43C3DA5956FB65C3CC0128AEB685C00D8B6C0A4155C1AA505D0C93AACE11BD702CA0E7FFA2B21E840DD71165D5E734738419D8A01549B4D1EC3194C6CC3243D67054C4AE559BE3039ED73BF7E9594051C30E32B31FE7B83577384336BA458201CE23414CB2DDA8E99F660B287B391F023DE4BA97F6FA87F7C2E98DF43DBF31A852EA4AC420DA3597EBECAE663A35949241C987AE63F2E0EE3A051C1F03C402FE17101680E21163886860B9763066EB9E2708865C97D9D2E06C938153BDEAC0C4BD252C5A9EAD82A5B2E757405E2538774E4E17C403C0FA87D92275C995B09345E288179C36815EE2FECCB138F5647275E4F87540A913DC6EF4C280F09549CF05A6FE2040F402C81BCA531D51A3BDCCB5552B48D4162B64F59C65E12B5B2DB7A6ACA488E5BEA8637ED36D5D1A774F8820274FEE0899CDF9BB802BF37311E398F2516DE4D4129B2A7043B39D10E0ABABD0EC17EA263F174CED22937C3DCD184531A79CD1A96F3CDEE3D1156E65623B1723F666FCB1B0DE4C0FE5303C99BCFFB31E583434E09BDD74932C1C77B1BA299087F584CF2C58C573413F84D98E499F89B50CBE9B261B0FE913F2B4C9C79C8177B749617F91ABDB62F1A7EE394FBB5CF355BAFBC6CE1E0CBC2D536C56CA0C72CC618132679DF48CF13C5C769487825F8755F616D62261B68B3BCC9837C5ECD952109FE184FD8AFD3DAAFA61C873E460C4362CBDA2D1A240BB919FD44914DF357D4BFA3943077B3FC3D052C98F325A1D0428E528A4BD88BC1E2B453AB657D514C0C38DAE4E628830881E73CE0FF6EE2D1112692D26DBEC1E66A7ADC56010BD25F9F6A7DEB15C2D9D8EE5CD0AE8FFC88F1175F5FA7380B8D1B81F0A70FCAF97B0DDE29257FA9729F5C423D8B532B3EBCAC59974DC03F487BF29CCC5D7ACD904D656DBCBB79989767A198E0EBEDA8F96840A7AB61ED3DB3C863B742B6A7EF8FE2D3F01530D554578C18E174F8A8C49F0A2B66D246346BD9D8122087714AD87FC884C42714BE251D28FB2CA0AE72AE94B340BB6EE71364F9E6D4A56F302DDF19D068E4ED6ED57D2BC913852902026E41B8AD643899FC77FC4ECF764F66EA6280D71C4B3A4BC8CD08BB218A22F5254B819626E5F809D9334A2F84AF3960B52849B7534705EC80075859CA6565EFBAA5594869242801B602B3A0D25E749439035D8EF7CAF3E24B40C7D4A666F83B0945232C192F60FA1341122C772FF83A9F41CE6EDBDBB4880C2A67F340A3163A28F1450499381B211458CB711723EB29C6470AFABAAD2B0BE532291A17CC537CCB4F8ECB9263A2AE4850C6C51C9F0195A284A90A22BBAA60C111B561D00FC0D3A9E82FD49A932E516DEA0C20E3F48F2D02DCFCDBDBE046384CE410BD650EAF21252484FC22A8E5DC4157AE37C91380F74ADE3170F70515AFD3143394BAA087532C523A2F33DB97AF8DCA20DEDF113633371974E23FD5E16B5FC5CD6A9FBB5201D0B5C55E2FAAC5AF3DF589C1A8F3F30CB4566CCAFC4E1E29618E03E936A1AB09AF052D0ED3D382DA96DDF004D59201AABA01A9809BDF5BEFC65C18FED60F885003827EC4B285C108FC5EC86CC54F400AB14B8424163857C8BDE700BB1351E1C8D9F4CA2CDF4071E5AF5623895C5E027C71B69CD0F50DE48ADE15E59F3FB5159B588F8D707BB6F78E178013D04E0B57F4601D7E473AD99C19A1077D6220AB78EC6A29F79B6F7A100A5B722343246C0F5998D77EB22DB6FDA2C14A143BEAD0BB9153F5B46E02E7527AC77B712B31785EF66DA524BD680097D1E4BF448951968D83817BA6AC22E08F337032944B070E0DE17D58E0CE99A55BC758F43BF743B1E978BBACFFFD698D85C356481CBD10C272DD6EE2DFCA53913AFB41E0B5EACB693ABEB5F10F6D9F4475A73184D208698E7D89D7623466EF4AB8332B753A4419FB459E29B67F392D008A2B64B97FDC17EBD81AF4B54F5ABA6E9B66583267472DDE96F20E5767D25FE0954A2EE9DF8F6D71FE8D31EFC6D0321EFB677C2BCC9EFAC39F517C66660B0D616FF28BED9CEEFFFB72C6222EAB8F8B85788422E0D450C1F8FC81478A6AE1523AB9C5002E0D46D83480D7885C43C990AAEE60B1697CA9153FA1EA89FD1655C5BB7EFBC097F1323B3D9373BE36842BAE4DFD30A215CA0386520B6FE10C18DCACA30E22048775434D95436D37D58BD521F7AB1CA8179744F236AF8DB5C49EFE51E54BAD9D254533D086B31C2752D1BA51AC37478728E22051A70AB190B860049D379A2A605F36BDFEFCDD7349FB8A84A1DDB132AF28F87F17A01D32CA508C1384537C79A6DC538E1C412BFDAC18A556F630DE3858D292A89A0BBFBF179AD4403F746A62D02707AE7F4570CB3A40B065B987A3D92D3D8327B1230DFC0B1263D66EE896A58FEB52E96CB87565C9A1D5185F907FF852BFFAD7ADFAC + diff --git a/crypto/mldsa/mldsa_nist_siggen_tests.txt b/crypto/mldsa/mldsa_nist_siggen_tests.txt new file mode 100644 index 0000000000..83a15da18d --- /dev/null +++ b/crypto/mldsa/mldsa_nist_siggen_tests.txt @@ -0,0 +1,42 @@ +# Generated by the NIST ACVP demo server. + +sk: 9cd9cc60f6b34610741570563f88d692943c5545535218625447749d10f9ff6afaccbd4795ebeb6e5df57e597fb5664d2f770cea30388780881cbc15a327c2bf8925bf168074d8dcc752fe090de06b61f6a0b827ee4f36d890f9dc34043f12ca53bd197be0e46b69bccf6574f21ce5f785c8cff28955dcccaa3679755314105464014018368761140742017040433235881005304481041132317135442575882646007563571180411181458616526101317740167272024777306366863364426181725432835145326157360412873845844637548801728463648307127155857878564035365833624563231720425075770534541383868022201534211637621731138460665457077346550650362377813871207554351224652540248582281355504820250118222455607884310287402855720037767711433275557286627233357467066737148086373664218607436776704753205720852140448127351104063277725084667333376543028106704434311341672558760516176052221610507115785543028746865244232051544843144632725005521437101311206273405455260658702440168428533844385808017243564443875721146641858886202600582222382870286846778251286626212506028486554152460677631636246178204658288284300600422450727348881682882733731315714688255660768001031310516816545236613618121112857450781686613065512387442665667437770365020401071072502353402338527080726522360113703753313277441047641316030170107224238117642067514861843655348363421673015433152375032650808112653215218272385540578633807610813750740812515357425581268712511357656482302008527828108456453841688384121118070537028227084805262528538665755463374084781605103568110887768847737188200545510125734353882181258505618510307112513644222478521241701865020563141157366123143801476164426430127626874532558388736162185068634813730337886032245574342542121120606886772044484346317401862648035531668754417866521342234105062051840673843260301207468367881113763021358467252758431653845244841681423123454547485327480052080512481356850177143601603150581035080272882267681103207280373384682144588602122676815425864037425735741383841886805003265340181604627684726213434628224873705878452807357183373561615863205463188604445228856261723045741465555522541827768628027301547426281761504778477067111678512705563666827543382553158441668826220787468532417445816374610512387878280201744582588870877076612020870016221456054002418310022778358165665240430618103867833453485863057456828650865521457743375244737820714360405182783037838251017383853170148402428012566440678406413826787735323562838275036863873852325168867238708710227245447503320113702347515701855124844377876453164786875405021443116801680521838575855482175620588574684881207385160212735621054465062645352133766131781662870622607358633244218166513526427068421535050478666544644822461532767588278822657833772834458827350527637534853225588706621486883235074125254071723236636308801388427038631254638571474135588758581340378887258105746034601545012072347238852018051676230565404041337502016684485874447354306553310347706858143767332425154056487002844065221471301135406838430040186015638612776455830214242314040186270218424641154120021242580170152362624766013275844574003134504006412600637775204660175538282728540831533014221668715407877754142186435726666045584701027683004747af15e04917cdaa771fb737e301b109a25c2ecc639e22c77e95e63d15b7155efef3880c238811ddab9d13705a574dcf6fc8070bb2633ef631d9fb2778effe548784a6e0e5b19a53d8ce00a6304117147737135bbe739eb8dd9109a291d9ceec2a27f8d4312965c6621a8a0dc581147418005903cb628d9aa33bf724c7fb3cf975b9abfc120287cd303413cfb04ee57b3e617f7fe2d4299f1f2be59ea22a158a5df03fff5156e9a5bd0eeec75e9536f78cd001ebb466f144552063cf453485ffad295ee0796d7d1ba8a93dde33e0b773d903f6298f201c52caec136770a68378ac44cb72547f573191f1ce324cf5999d4410af683e5f13e17698e2d8da9117b0fb944043387cffe24ddc55e08cb53b68b5e1339c8334ab28a7b2156839b1edb35d6158c96e92da3cee6c9ed6355c6eda21a227b17c841704a174548db494fb2ae86b026cc181f19de7aae1e192a4cab5a86ce574244872098d35142a9c4a6e617eb29ed3cb14a9f587b2f03fc7a8405e5dfcf65eab1d5d849e9c4eaab0b2fa008b849d4378fdfe7e106d6385d6f996bc10edb2bd083d25f99d07a3e5e86b28f771285600931e5f8ae5e04e2139271eea24f6f0975a48eecb9bfbcb870efd21707636a0d7b03d8848c309dd33ee5b6380bf69702654919497db4d1634d223829351005e38d5214da2bb3c800e52b807e4f3a2737ae64001b9d51391e6f717442e181b56a01a34df9bdc21778a6c213908e57341c8de2c24537e40b30747f59e5c2a5a569086222da262301519eb1651d2e0ca5672ec5e641099593104de76ca6f8e5d40bee718e0d1b320db7a9739d4254e094066a1ebf8b015c185518918daed09390bf7405d4d3f1f5d2090cf683ce9a053f9ac0bf6c6b30d88d45170c48bab405f863d5c975c75c949aab38a68157e17d283f848eb49de6c5b12d8b0a326e9aee67f359a5f2173ec318284e9226c7eb7177b486006aab2bd57f373a2f633a46d7f7121d9e1c362b226030e0e6f6fae384b6545fecf11efc6075f1ebb376f949590d3185eacde0868fde3e84d1ff8f5d38ee2040d97b1d94185dc513662f8a53cc053f7bd17f54b02d78fbec999f56cbcbd17a5b88c95a39c555acdd5d38bcf50b89c6ad6e8b13f96a792c43453233a82eeffc181b2fbff876757fffbce8fa3488016514ee7aba5d898f39e6353d6b7f88ebffeb6cfe65425b8541f5a9c10dea1189e05b094bfe9aa8d1727b92c3ad1ab89b4354e095daeb5ba45882f2330f024f3190138c774a78a76a011c7e0d9b38d4bb6582be7dd3c6cc3baee48afffd579538fda32f9787caa967d6d9f15948799732c9026475fc02a13456114216da7bca44981f92ca2f00236de125c46bd4303c21a8da025982bf2361deffde7789cebdeb55cfd87300055c9ca83efcba4649c7f0147895088d1c5fc914871beb8985205b1a9cdd2a7af16b2e5f88f7ff26496c89ae5eee29b79a9663acd79434d992102e9a442334161078a23067e76364c451d2d1130d57a6db48e8fcae7abd42e0dceaefdfdd8ff163ebfac78f749d548f8a45210e81434ff46336982be9e9973e6e72971ac4c50b6f7163f9b621664f8c0f3f4c262b431a7e27ac3fb030066a0f0bec1f9d5909c59919deed0b5cb73cd60d55de23fab67d049268d88f0a7418d04b94d7ba535ab83f0381f7a56102e0a8480317eca5fea6e06d41e384978e1970434651f212c21b32dc715410d732169696477edfbe4d2058a12cb7cce3da8652496126b7de7bb318161738af4992324e68967081ee916a129ffe59686762bc89d48b4957b1ac3d340f87e8505e9e5976f9f46b2f43e2c79307a755acf5da90a0dfae4971750cbe4de47798fcb5a51405f4a079ca1289b30832192196e90aa6c5cd59fd11b46fb3120ff28a1fee2c55540ae461b22f1ca83ece467d22462740d9aa8702adf316fcd5393d201d1cd8456ddf77a8070cce9af9783079361d650bdfb5bd36f6cfdf669f393c63f601efdd8b8891f88e75a462de505da284573709da4572ad2f185f968d3ea8cff93cfca38f4e3adedc24ef08bc306fff1f1d243e75305fe2549d36dd1cfc0882567b802bc9b64f2bc451aa83f4b23f8eb71d1ef842e1b96b45b106aed14642998480dbf5eedde1a5a848a9f1c886988532591a3042e3790b86e6fd533cf98c0657b2d9a89a07d354d2dbc69912bbb0952cc731ad4904f9d9c0ea427d2a4063a8be58a07321b954c7a2ca24886bfd628250fcfc1ead71049b7cd090aefb6b80a25f080336180f31439c1291bebbb82bf601b749f572566b5419c94f62dbfbe9a558d125e0081e3c77ffd82c3274df2612d8b1e539259b141491d75228150413076f3f795bb50e95b9cbdc32f787efd52e36b4842a977629e8704c0edc1550308e3ac578244b2c4c38769af903410df1d87a39362eada4b9c767630a49e4af9d79f9177d26b259b77013bed16fd363ee4358b5c53b5657f6c44648e80740c36b167e13f2039acc5e5c6b9886d78d1495988eae865fb600539f2551d02ad1c6ea0ca4679bd47a02b764d2016cab6a91fe0f56b2d43da1674d86c5079c4734a03496f2b46bc790b07bdd4d5394b0e53662100c4a5bb1b62930899db4809243155475d13b975b38f09688337f67c37467672eb6adf74024baae07f94cb7da7e54738653f47febfbb93ad6135fa3b396b622a6d28efa2a03b6c65bae2b5f552bcd6210981cdc3b948d90c20cdc95c5ba11a7c2d83b561d901467c5bdf31962de4c0853eb8825e3266a1cacc3f430e3a2138b6c7be20deef19b0a2e74b65bfc9c0ae9c5a5b1dff378534a622717b28e051f2e221b57bd68ee7c57ea4dcd2164301284cf81fa9ddc9c61c9ef4df5a6a2b9912135c5014cdd9fd31a2cf54e2076037dbdf286e88f1e4799349a240673742ee2b9b83c12448709f8e9e2401279d0dc517d20c778922712e0488626131554b328396927ab8c63102d4db4227954ef466da53abe8dbcc6dd2be901869b423a08a41b3eccdbb643141f4502de7396ae5bd8b370d8cb82da479f9dfed4cfa9d3477a5552dd812212ea0ef25a3c5cf3f41bd4aaf9c5c1db36e7ce18affdb0b6a01cc1c8e474f74f2c85197d5a2a6f869469857e2ebb13a7c3390a85f979d7c578e62829509379bb5e996986c2a6d0cf270b368b19779dc258d0fe774e03e0dd7152e02ba6883c9da037a97906757cc113da375af85ded53beb7aca78b9cbd6e3f47956ccf4ed2ab8a9984ec179b440274c51acca02f7d940efd1db56fc38afd686b89a3a0971711d3eebe66dbdb46ed36ceaf5f6c2f6f3f4ce64dc37035ecaf97f0a43810e35d2fbc82d524940017d7549c9e2e914017de7995654758ef7c8d0a0c8f8ed999900569c4de657d4b532aa0ea7b40ae38481b6d7a88aea81c23fa2bcada8f9e2ba376133c71163faa35cec0f1a5382a357d178941adba3b5151bf817b5a8e46430bdc4d118ae49bd4c01b42c40974166791491814a9889b3463039adae776212ce02fcc944 +message: 627b5e14d5f24378c20c5c936f523d42efbee2641d17f34974 +signature: eee98d7678232076241e8a318a0d06e009300c6a8e21578abe3dd22382795c09ebe6ad2035733725d88245e77b8b7d7d5528d41936e7fe5bf682500c25ad4f88a2409cb0d53e03c8e6dd2307506415855299a49ea28870f447380b15f9d32fd42f8d497bda37ea38c4b79f4d339b5d66ac1727f5fee17291eb67410560fe47792a6e1b6b8d5a3d92b8e24d703dc4695a40e51d8a71e8a2c8ebb1b96734e3c88d5579bc18263510bdec73c8406a23ca63f23d2e782f504767caaadba0c12aa2567d908102c2596d2ac9b60aa342e01c3a7f747a72da95e93635f8b3648d7b4334c2d47bda1f6ae81c5c98f551e690d0d0f701efc2a07dbda20e25882b63cfd7f6b908b3aa95c6fb0f7045ca3094e1e7301d7223bfefeec13bf44d1cc1a72f96661cf3f3cb233a517c5167bb0fc6a076a8d28bcb9ac7cd9e3be6a7b6c2470878ced1905dee2cbe88f5f8114dcad00948717f6784fa80fc11827a4a17b14e5ae3024e0c8f09d06d3c4f0919c961d8936bb057b329ecda48be1d43f631f30b9ee7ebf7297a23807229b0c994e471b236150a17f7fbb5b8f6daa39c38205876f1a3f05e13e5c48a8a6464bc55158aa3ed443df4fa21589ffd9da5464cd9c66488f29c500972434ad9c3b9922c3792318bbedd3c59f5e4f4c4aa04413b149b3be5bc2eec524a28f625db30e8d0e1047ec0f0938fa150d6a3d92776151ed8047eff39274fc703051494d7e7b863f184d6b9e900dfc1928c48496dc903765a2ba4d92990a622f77ccc232de5388e67ebacc40cb0d9d7fe1fd6a56bd03a3c2af5de102487f9fb2351b1b7182f93cd8aada038c8a8ff0524c8a6d54273ea1debac52de77d08e725e48679a0235e240bcdd549cc352de56c8a4099424e3fb4152e4f6aa13867704fea854c1710ed8bc3b7dd165ee85c8f7e8d8c5b396dd571a9e555efa1092420a7bde9a25a75a71d24c8d3e9700e35f14def21da5b482142e8802da80bf90f855ecb6423a21bd97f85be0ffb6703c5af1bbb0cbcb5a2ce159b0cf65df2f398859614b0d2d672f40c9a5eeb3166d4ebcfbfba7f794e3e83b9b58b1b670c82bf0e62cf15761010b4602178240900eaf41dda70193a87e45f5107f5bf1dd12cb14c41cfaaca4b5061374083673fcf80b824198e5f02e95e7e3539f111869ea498b68a6de30d7563d5ce9d3cba8961cb29eacf99fb8334faa6cc1ab6f687ad3cf1ff4eb144c50b72f37670aa0569bdd7c4aeb6563d09bf9d9ea0706ca3b56638ac29016f0977623a3704ba04a0e6d32cd3ce2d92d76c0375118e15b6347ce7fa55af1dd1e95be9cf19579fcb560c287d9c69481ee5ddda5dacf5f974b0345bfb4bd11335f230622b7786c6457a86fd8ccb6b087c0c4ab7d7146fe9ae9de76a8ba9b891fd2acd8795e75645e566db13ff5eedcd7cb819ae089112b592bd7275da3bdae90ec5d04c15af767de1a77ad5924ebb2136530b2f6398727f7ea67680c7ba67e7e6d767ab489cae7ea0aa10240d2646885980a700bafc05d85fd23e2bd06604ff04de54e89c0954d2b349e0d37dd72176d3e664be9135228f046f4a869b27741372a8f9856717e353402152c8c0d9b601dced67b717ff5085015cbd864c7c3cd71af006cbd984ca9718601d548086e67bcc7d31e651efbc6bfa5fd97ba18cfdbc7d9d94f7d6b4747598e15419233796c44e2b70aed38dd9b7c35c071b9beaf5772a6897c53f44a0dd12b29162301ed255ab6542526a13e974c13ffb79312527870c9de6c19256bc394fd4d718cd72287bde9c082e981aa2eca187dc229d288ba240aa6a78e6d03e9e1b6a93560edbfd2c11df550424fda40f082f39b6acbe3b70bba96202d09757deb19ca0195f79b0334549980e98f442a69e6628610ab72c6158f02390c6c5c0099175bb2eac3207a1a7fc211ba0fa383d205e8ba193b4bfd79ec61a5b91184a8c4d1c08238eaddfa5e0d14edd0121fd1a0a1ce2c3ee9ca6ad1f6337faf3e6d3ca904cb53156601db3a952af423aa839522ff20f001d64f5df720b95b2c9545a294957f792782494b7a593ab46ada225ba2357e583d9df234b82ecb735eb9bbe32d50ed81d207b583a64c35c71de23a0728990e285b20be58fe73c421fd812c54dc014be35e964f884a167665711b393d13e4e36b3d09f03fdc87332f379b9a4b13a7adcc569fc277f9c2342f1392026a84b0378d39e082e5adf1549c4112006227463e512c99d8582a0797b12e354053c277c35544add0ac3a33cb98e55638a6672685b390534c755d6389a6060f80b56b47a7308121f4f318315f5632e692a64e5a509f62d176804f16c18e5625b43264cc99a246faa6891e0f86f214704a8ecfe8e99c3cb95b34cf4346556b31cba3790da69d33f0e010e4d2fef200b734fff16848f1859b2a1b76a82518e68d7c95eea0d2b20590f4b0d7f4f5eff2309268796fd244b9ecf8d68282559efcf18154227a9e79dbaefde2b58c4d7a173ef96849a1b4f8d8e242b8ab17b8fd4806218799faacd09f14ec63f1e2f9898ee0575b8902d6841999a01038706a89ad275ac19dc5c361d4908d33d039911cfea3c051d2ff515d241d0865c33fe9ac93f1ee0e344e9d0103c94b699937312891e80ec2056f6e9109ce22df9d0d4f1c7627e22777cca0375158d88b25b3d0388c6518402a206649111eb3e693fe23f337f1801f5f796abed6b4c5d5205aea4f8d6dcc289b1f036a6e635241aa8f02bc992220fb192888226efac4bf45ef1e8d2319c6b24fa63b06b0fa9a5bd91c8eb442c0c3de4b32b82e2f83b632b9a3214bf8ec003c1ac39f128b8ca49f15e6774f13b19efa7c8382c1ae041361736c190dc2b7d1fcb2e7f386654250cd12f1db9e3f64f42e0707c7202c62b838cb1c8afea1f20a27f5c9ec1cc3c74ff0a2813fe5f5de88506a8fee5e12ac673ce52b26b374d79c403bb77919ca147f742f53eb5ea93428aa1bb80df8b43d67f8a0f99676e937cc6d2cd7c7432fd3b94a7a8c12b2dee96b724fcd6f9abf8654d607171dc49723a5ef091a18e6cdebfb4282f160492e24f11435ea45b932e8c6875b4e84f44ceacfe1c83cbeaa2d14e2e6e964c22834cbe75decb45805136d82392591d3a94bd8fb8814375c7a87bfcd7fba8cd1b9062cd2bf2e9c36ca101bd8dc1ae6b2461a184e3d7eae536c4d6008937ff3d9f25d26b6ff16ffa4bc009a57c984046c25baf4b44cf8bdaffcc67d5c7b8dde75fcf58044c334bbb99410b69fd7a71762db9bf044811830e8677159129a40fa6de02ae68f32a0b3f6574bb0c86a5b01f20a74a2cd3d606df6bde18fdafab957f0f17dbe6cc143f0412e39f13b015374c681677dde8b40bf4eaeec601f13892dcfa166ceea894a3e517c30deca53962349359a174fca13fcd54423a2cc0a243d7a5f1ffd6be020f38d0e2d852cb1a17ff9639dc072c321988615e401890624a3cb535d8376aabb8887df9070aefdfc9d4db149d9699b8ed32fb6f9776c61f23b23e514eddb861364e60a49c05ee5f41eabc9d8bc99e0cb5cdfdd87c2f80e998f6b28dedf4ab3145d951ea5c1a653d61cb51b33609c07dd49db97f597f0fa542540a8e439a8e833416085a63f4ce928d2c40c3dbe00918f44f8256b8e6c5b96a1ab206ffbd97bbc0ca10766c44d48748b1412a5f4119d6b8c57de988681d871622b9200d28e960e869158addab0372c7d5327d66a4be62857539fb4c6c1f571db9bed20a21472ad59705f4f5daa9083f2ef4670a976bc49480b96f2aa38afa74f01caef167dc75dad72f34032e21fddd9cf799c6738554ee8dd3bb012a09932003c66b19e153be1fefd58c20d799021e8b529c1bfff2e6463e3d2f8229710d06aa06db5c60d7584d5ba6f06dc5edc214040ad24609c8e385e3f715a768a7fb247bd5506210a81f0fa30baecaf4d4d6a6f1f797c30843467a446bf697c77c3e3f3c96001aff5ff15cff86b89ec916d773b91c115fc95b12d701ebcbaffececb903c74a26fe2765f95ea203e91c9255aada59901043dc7966cfa91a28e675dd5ee20aaa9582a8577920374db7f816c10d0694e49f8cff64b4facd62b793f898d267acf39ae5779f9cc78baad1506531bc179661bb355967cf1273a6499e5f6e2a59da1c181a223fe6dd549da34fa0e5367b53f041db902b8a43b9cb92cb8b5cc3a64f004de3a37b73290ae6a7b2dd233608f0afeb24da88a74af358f9aa4e3c18e409c25b25b73de109d0f170059ac4a58334fba72df84591dcf821a8ba79f6c0e8ab892a32ca0c6a51ffa2d3a353b4292fb2214e691e744f48639bc94c2a9ddf256e6b174a08a1ca4589324a3e802902035b58c0a4931285bb2cb4e483cd8f35f0ea108e2907cd48531a0210a6c2b793c8e070cf29d1cac8968200fe956b223b1d418434fd07fbbabfc8bebb5959c8113cd36fcdaf8d390349c6bc853f6b7c004a8215917950b3b26ddc7807fa136005553030d4d6b3f54d9c09a59a9b49dc19c7e0af972acb3a91e66c5f1ca3bf484dd7295d6dacb63c4428a9a46f8d054264c52bfceba1df29c31dd5f325242858b7b61997b215b5dcf32bfa9f729b172f788fb7d2235fb1df1292a6f28b98a8d6f00937dbf2fd1081a6b5e1ebfa000000000000000000000000000000000000000000000000060a0e13181f + +sk: 259fb3ba52db733c662e2f4ef223ec3848f6715d3fde5aaf465f4add9edbd0dd91c9e36ef6a9ad965f2ae4505833947f2f1a05ee7580c55b683f412a972596d66f7c048b955aef0286cafc9129c2ccdcf4b391d721d30916d7de76afbc7a4f142a8e3f057f60a17197868ccd27e8ac173ee24225c7124a26288e3834fd1a102425102642857314035037635137544862417145784334674523732730173003803174101506658662223670740681475034381242512035220212582441044056280817355342428108075612514754111510241721221842558210557880228132081123787550176804457078341805743070283485077445061217034747445534735813242665656644838665025856281266223208745070772464381062340783503056571417610788863318577510326280871267426255787536364088336266108138154414057501854104841841528358643067470403548541502801737361153886020661275753864567754085636875380883840880008731206157721731152236344786062338107874473378145173000170871601126251721171483007417442180222165380250816541716060547033020481068214103225255254068657803766420462748442010788531353836876158264551162632243178168513350060251713268656108202875180205733513250354601148420555644537440724033878662652668486106580863428757708414107660842150310547643656301063100725565727073124373052718824576426086088772336523311744042423532437055443106680582036673528552508323565677753684321434248220007438304523438062271007300844402115314127217125666208206315475153485488815663438838101888004787743276442086176406783027400526014830547505117416448674242451640587401702183457100711470426345033173867518145204554418742827535527617108013755777505508300610768118420481848506312610284876667480083376514217183724542716858813425615323146068444462335041217703122640028577582714721045300152075630773708415838080022433763461145507154863220528875218352867571405872312728013215781355201725077802871163501087111737316604645018804875158006443582066841241406846818860280080071732471433652234237404187465006583050041333570112162016137117080455414386051577421362014126046832332587864267473750335283274600407826434352363555044167171137053766703828401401675578477813870505224005640000461167062336552383771633271855668638418252445825668147643018115633701371104464505058402232640435180258571034047041446024325837452408818214322660043050248845317104146182060014385317562041028376476410187151762264708708156232236301381681520571250114218267312838378800851853218232373287153156231268817356404553356084251788265177758856341405780430133503208475627878433278062206047031853476111538474764242503720228730786712113173182222106215576364308065235366033653733018682683707311674432282568352112864448848407202622657166163625767186462671717308361648236444462080341088867051254826665151811887406306646007557666676525164640510748726053215203731046651854872230381513058482850755186018280360503310861510287036324887873465282306827125355600726882875386526077236484221848115236156232542588477342664238164257726283751742671850344863381641833855845213660054473053445244378613260562558270617361174613684066811382885253563511064068742852863530432354847806758027578752863766737705137162646660457750536345213162616221812874474336125472050364211786477531864132271541785615517510bcd3a95f464995b662caa78faa83a73686a69d5713be7aa9c2eb3aa3cfabc3983fc472171dbcfe9d3daafec181106617a1b2e4147ebe993203fe00433e39cb34a78898ce3d5b9aa2de6673fdcaa23bdf9dad30049892551fa9a3890e7ddc9907058a75644e596c612d031809966b2f9761d55b4e57d97b539a7a8b0a3de275ef37d1a8e1c2867b6eb58ab02434c16e1bbcb5191ec61bbae71500161fe6d7020337bf3801660e927313d52afff403402ffbfe7205e3426106f92d54676f9bf505c660fa136fb7865588157b420f984fb3c636f357219628f32b6879977261c14eac7d13c0c7bc9f2bb2589aaeaea2909407f0a4cea08ba788a94da4f18ef55b719a6a7676a4c84a3755741c3889ca2adcc2baccd99e0531b9a83bf8898fff699fadd3944c1310132f4ef348a895bc402e5fbaf83fa3cd2b91fd8faf95dbef993f1da573624602786dc7162de1f2610d4e01c31bb9bc147734d64ab851c83de808378003d83b29ef6027af89456cc7b6d1eb45797dc6b3fab80f60b828090130112a8ff4fbbbaf52b422551de640490a033f0834a0e93ed15256578ddf085881882c04ad8ae899297f8466d5116236ddc89c55b31527a429b9d976585c14c39216b2221723236369fad36b4652d2370256d4e88a48425dec3713a76f81e301079ed4c9104c784e85401994943ab65aa2e8412b1f0bac6cd7e80a2c3bcf6ae9ff5218109c4471206c6c927f846e767fa2d772b665fa02f068cb9d333e2eecaed9a1e964a8b4c0abe52fb254f0ecf739f30d8b2f4ab37a2ebd2f34cd4ab8be6e8192a7412beed2e5d0c751c54efed7f303cd705f1a94af653d8f70e0349f9989841fe2d6c4c06c78ce66970cf353baffc0c730c5ce141180daf2800203a7f2ea3971bde551aa974f998a6a914ad98c61220eda44b9880fd4a8cb05534f99cdf9114670cced068da3238d218628ac18fd17de896fa91684f06c9d18c86e732c3fdf0f62adb4e4dcf54ab7c659a49c437401bf00ce4a4321486ba8656aeeaf55eef2a540edbccf2d822d1905343f8c773eaaf49f081b0fd10ec8361d515269cfd46b147165688c591518a17bd9568e877cd24a324e7192b834335fa76a02bbede113415928507bd3adc3e497096452d98e17e4f63c2c79f5e7b97a8673a9e4bc4fc04ecba739ce4ad6aa222ab3109b44e26f9b2e10fbfacd4efe8b6b3f794944c9374357b3e48225ca83ebc7fc1236223ad6517641c23566c2d3c71ec79e68bf48d81f0093505f7f3ab440344f1f2cfb7ab944379bd96ba8f7aa2c1356cb6aa1625e2d6c4a4798079731a558fdd276e3482a093e2bd6469dc0a6a23a21088c64ca4644aa507aa734071fe988b63ffdd72705ae125ce70d7d0ee8621371074163130a07ed5671c229d025e1a8817e9c9d2b7f06d9e21561d0926bc494aeaf2fe026b5dc4b4afde1700e3f2224da2ba209592977003b2ea1f1ae2e40d5e66144d629584c194589f7cea78de9f87111f6e017ccd53b25467d8fd3a1f4551d58feb903ae8bc29e36e88b043c7a45f9bb1d90606e095f67d6b823729f638b28f1d05d7e4c2f0e383f1ea2f4e513c3bcf8bfb2c08ea188ab86e90210e4bbba777a15911dd59379fe0b4863e3e593418a2b696b948da8d3f463e11b3b1f24ab1a4822d14903aa8a0fe1b357705b7ad592a474b114197dfcdbcb489c4cb066f498dc6df1098d7fb9c1c2321dc9dff4c4b2fd3dd89025ac60094e06a2942c6f7af269052c603424a3048906f6d00a108478292c20a5875bbb83ecad16bb4f2e9c0ef2c6a115845a564312116bf0f4fd3d49a7ae0679d9ea062cd11f4d1d27941258b48c1d5b0f9b17d731efd8dd8d709ad845c7a04dd5e31c144dc9d13fc693a2691d988fb3ffb5439013db115c372e6f300e39e2fb0a999554d80b79b30d0c40f26726693061a77950b697dcd63ef12dbb5b3bac50d74fff663cf79e687932a70d0017cefd7fea261e541114247c58b54c7a92953a06a917661c1b4f853dff626379ea5ea47dc879f29d81eba826860680e6fa91bc783d27df31b70af910cea2a40469121beaeda364f43b48dc0dea37200ab0bcc3eab8e43889447288de7d34075e993e979f548057a260e636a7940af13eeb0a2f22cbd67827f255f67d65b6bca6fa230600e6c7b9c0dbe92002fa409cadb6829cb0224f345bfb756d33ced3ced04a2a73ff884b13d86e516a209f343dae57097d8f9c61666ed4dec3430b71513b9fbafc9a0a5f90b2710e1e677752290af0ddd2d50247040b6c179742a1e136a9a885dc6efe9deb2e35a6e06ceac0ee2087e4bacf1c71b5c645fcac283bfcd2c02b325a0ef1445988cac57ca6f7e2a1cc72fc8595ea740ab168d99722a3ac55a2a85a0c9a8e1fdd20abb59b0bf72cefe93167c3529fe1e59d196ec55de3ee47b9f55469ef1c84bb6debd69a4c9fd011c719caa15fade4a55d6a1d1463b3e7f34ebbaf247adee77a6d49239c7c5bf24ca27f46e925285b7b2618503b1b9a1850c8867b0aeb203e32507f72d379ea8bb8aa90ac83438f6894f43b91d74184c2ef3803cd8e1c42dd8c1478ad8ad67649c79b753dff3ccc4f289736eee00ef7ae7cac54272f6ab9b427eb3a0c65b3eef3b4c22148cdaff3107aeb6d541562f20fe528e4623ca5637f94ed9b6b7edda3b17b5a9f852afeda06469839ef50dfe425525a62111fbf42e29969249ba697181a8c5ba9e03251c57f69a87ea06952797593f9ee86b28cca1684a9c4ffe12d7d7bf01fd192c4f59c1292aa207747d730e8a788a5a8c97716ed120dbaaec9ef6b4a0afbd02cf2897cd375354ce07b95c295e19c3bd45425c5233ecfea3266eb504745ae0ea741c658c851b33373013e5c43df2da43ba9b599af81ff70759c4c91e99f5413dae32412d8c37f4a4cd45d41f81f0366983ae90030e1da16a9d0425ecb07438b9aca0e2ba2ed9472a2e1a7aea9ee95b8747116eaaf2191360b9c9139b67a696e46f52a8ad6d797c167234b687227ff4613d4330967557d8c07818bb5af26390e225e9a3cf076ed6250c419eef80a63e63011f63909252520e449a55957652002f8716688554b383e218911b2c6ab033d4a4a2f269a167f893becbc8402266acb68a02fdc07e061e862e9af70047543b67f098c3f8af318740eedf0a98eea487e5b46f4dbfbfe8ef76a7f5fcd42d8f2b13e8b50d70616a276d361fd91a38b759a1b08321e1e704e80c80e2ac5546f9825c03a52c13b8491606d2b198e2cb63e221d301559faacd520e966d2eda9f136e9e83ce83cba2e06b1c9a50e5dc66ef7e0062fefda7d44ad3f9a82842e64cae2e95614fd2c0ed6d6b948b0f4401afd800f42a7bf4e592a3f44840f4309e5fc59c2e392aefc871096ac16c9e8b775149a7a4b923fa601a9e80802c4f32b499c0513c7c1f037087439c1637b3fc4622addb013a0e70e26c0247b7b935b7f2ad524bb3356ad851fdadc681d2de7123f1b089ed8d44977d67e955de8f94cdb0e53480fc776831c +message: baee87d45678d3fafcb47ab672e5a2e197d428b26dc678 +signature: f5d0934eb0b1a6a9da938b927f7b126836660e5b11644bc493bd20b89848a11ac19f7a6570651890d531e3e2e10c151f9acb2079a148b5a36948986ccfe6a1df4029d320d31a5d79922e8b424db0785f73701332c9c688cd040bfde150ab26d1d956988dd3663ee6f1a70e80be7fe82fa1fa712f5611a916e9fe072950aca568d77319dcd268cf031d5150bfe1f9e2420bc13d556ad6ac897f2e4eb656b8a0fe70c21774ffca73e7dfe6b85ba94f315124dac6e8c56a57bcf2b3dccd415b412917300f6acf6ea1319f95cfc984eb1509f58513eec2c8362a6dbf3826dc3bb2a9e1b825fc9201f054261a70b4a0b07e6f648caf91ba137ad0f92868169a5834656679aea37ac24b3de11c27cb2261605c60a252a4c0ea15d76960e041f16f6b41cb474d7499b19120f6ae95d41649ffcf75775cc567e0dfc478325eb755b0aa2c27ed0d790db5e40fc7e0efdc513e545ed3cb6809af17e369e3802933dbb5286df4df55a617e93d57706f73accac41ae2fe93582801439328816a22cb199a106033b165bdbf0d3148d68296ad7b926791fdcffaec3befe0065f63da40479150e70bb5c3280ce259c7a914af1c01dc187993b73ca646c5bd352085d8f40fe09265415013f0c1fd62b429358b2da04b1999896a4caa1b37e358d2b29ef1d2118faef10cd3924af9938d1bb285e3f171f3b80a674b224b7d6c54fefb9516cfa35fbd22e2ab6d094be71808c24c7129c327d7f9d2bc3e5f5a925d1cd816cbe34a3897ea76469992341156344abdd04436784440c8d58308797a9c6563c7989f3495b4a85358fe6d63fb5f3d4e7c9e51dc411a6b027f2197163596956776c72c5079a94a9887049a9fa0dda7e9c81eeeb52e2bfa8b982038977e01dead66cdd0de0386fd44bf31f07a5018996c0348a4f631450188ca79929518e0c3e15d2363e6a83c51db039e49f5ec7d1294537c771508845099b3878c2c2f4c7f12704f935c95b0c0791d4eda7ccdf7c08732dc87a8d906ec106055b516b1c6e1973340fe28dec21cd0ab5b2b85dfc69e011053df7a700a8084894243bb1674e00ec7ada3f364ff57a40f6bfea75f279adfae6cb21f9c0409f1ce40efc03207eed2aa7b67d758a726aa8c7498cde40c97f76a9fe9223183e3e8dc273c43c5f86312ac4f589d3ff5b49782cddbe063f014e0ec990c41ff0460004a75fb8b5b88f0694581c3ad5f1c5201814e3bf0ffdbacd4cf1f96c9063d40b2f9e51031b577a12bb92dc9ac83075762ab3473b13748d4ac6a052095074fef508006d412d1613cf251be973f82be277460352487f24d5746850da55f448cd564d834313174cbb0ba788089f490e50f9f759557798e9244fc4df97c444814631e9b8484aaa655f9859ceadc85c0ff51053bd75db37426801d8aaeebc64774b1c65cf69563643ba7c7ea6afa97a6cf4181c540447af843b3d59d4089f9a3b03abf30afd0e5d62e9756eb06c52748e7644a7250dfc61cfddabaf54ad1f49b5260fb94c5b0f1c63fd3bdd9501cafd656cccefc9d69709431bf92b7ad518f32e02cd38c4faa7dc7feb55e751eb1fc6d1c5f71f6ff2e00f763af54860f46accebcb8412e7d5fe86d124f34e1ec44c83657d84925fdbaf6f331cff50276e06c0fc51503164cf51a19bff3de999b25911cad7c317789fed47006a692a73474d5298fa5694e9b96a077063ff66bc710778f5f507f8c5fe1ebe886cffb931c08fbae7d8918736565e71d6a1c36e2f97c48a0a6249dfc9018996c46abc1a91e3697bd983ad3cddf84dbe527636399b45390b3308671bdac3c47515a46f1e7ae64dba0966a2206808665c8da5e84a68d90047e512cb02577acd1baa609294789f18c37bfe677fe12becc6981b5b7d253bffb0960d4515ddd89ae9724657050d8f87d6355baa4a384305fd7ec42a0d11bcee588782b9fe7abae83db7fff3aa46f3dd2f5bc3619f12e21664515720c5223984d0334fa27d82896d26cbac0bd20ada31556693d7ab41d9b684d3e4a490af5cfdcdebc7ca5ac40416f5000d3aec100c301f9861d692c94f106a3615aec4c259d3e983995c76d1fc675943cfb56433b6216cfb3a5854c887728f78bbb423c6504e33ee2a5c272b3fb0662d02db218e3533efbda30e89b112ab98a7f8d83cbfd990118e0d2d8c4f7931a2828617d95a577c46da621ddbc11a4142247e507936bd51c065db82b861c7be7a26762a5c9e77ff1066d4398f8129befcd1162230911d69fa931f5c50ee754c36b27547fd5a77df2413c2b8f29a8acfcf314ed7437b09b82c9bdb162d6b33d35acbd79dca45a783aaadf16973a4519212e12ec7b435746fe3ddf4e1a41ba72245e2436cc9c26df6d731f7b89d7ac849b1de7f2a92ba96395c80a37bc80797a5179fb022d77e4538bdf02d3646a05fe4935ec894b77acd9cbdc878dfbde44380fe2c5f5e3a2b895f46c619f066c6b74750d6321f64297843e487c43ccadbd69da59dc9832f6eb6742810df877ddd86a284c1a8651d57da677d6f6c773fa9736ee8b39dcd4169b99329294416a5e1960f578365501a3205dc40fd8b1b393807ed7e99317de7243c8ea147bcd2eeb0270d7de157a6fae91dafcf50b016d31a87c8f2b1d1a9fc7d8e82e39d8da5113e04e989c46044aa77c7acee46aa8398848e57170327d07d356876749eb81d2b51b05a948b6f170b39a928a7e876df3d8d81067887aa6616f2008e25c8ec9d55721254a565d4e7bad88c02669061d432039ba81eac457f34a263e5cc34ecdf85ebfee0c81362507de74d750faa24d6818815c647c7f38a3cc5087a6f3267aa3f1ceb85f27600253e65b3076cdfc4db7d1ed22cd3fae25effcd0bfe21e00c01b34f15928cf3defb297e1612087e2ad356cb32bf57cc7756e84e1c87a282890900e115ca28e9fcae35ff515b294526c107daa4d66c437e6a566f3dd7a78a7a7d8d2d626964007cf9996d4291b4f98e6fc1a06381bc691dbf0f395b888eb6a2839f8f7835517f919026df365bcb93afe288d3a399e54f89cda2b74c6c1bb9c815cc94f7f52da6e049b2cc3cab44c036b164b579a30b31d925648b4c5666de21200fdfef5fbd4d9dabc4000a248748f4fc16b2c168571490491d330cc937bd66bc608872677ff2b0f6eb26e5bb974869015af96267508b963e96f9ac3e202749ae5abe4977a46ba773fb6b1d0a4332049c2de28f92357f5286c72c8c2e516bfe194d2676c903e430a62dc1be9486284eff8bafb39911ae347d0201cde3afa47f51ebfddac371f9f20136c1d0a98a2a2f0fa74515c68b4747b82db0a32d1caa3ce0d952b869aff518c361a74756f23750469f0cd52e7ee71c17c62512d79c69f85ccf5ec6e63f99d22efe01555562e2e4270cc32284fc09b7a8ff96c5dd15295542b74395304313e3eeba7abfb4475e42fa87f35b2a22d4b78e3c9c7744adfa88e93a236bd09e9945439a7533965019264115ba8831e8567272e2efd15e2b31238a7aa38cd3a6252b66b002c201e5e0e0d20f232970e6533e81746356e8a4657d30004839a0653ccb6b053872284afefc762c0f9708e4d418055b5fec7f84b220da1daafba79a68ffc14fd416857644b7ae64d5f0d250349b8c90fb23a7e7f9e0b9499026eb9be7682c0f71323bcdc2973b39467d27387ee93b75ac123b10d613791e493bc550d404b446f370bfe246c9ea3d20bbfde3282232543d91e54eae386324f56824de74d89f72b95e3b7d260da810f38c9fe009c045b487df630449593669ac425202cd2c32d835e66ec3252bef929134fb72152f907bbc99756da84e63fad12dab0cb4df6e73eea3554da191b1e50e3d690f1b2a7cc71342caba5c077e66bf2f9a0e4c446b308e098d8caf0a3054a82dbb10e2a6d00ae0bc067db4b5ae4ca1f00c4f8cdc57a0d3d56a2e2595eb8126ad0df4756065e6884e7f11b983ae45194558c032c9b06c4683a74f9646be44deedfcf21699588378752daa76c62cb3424891d3074dd5524dcbd1ddf68b99d925eaa436c45f65e3b27534dca1ebc36a7991eb5ab5a4ddbb8361846b85d35fd253b2c39edb5dc3a64776547e7263d9eec852bbf30945a390afc3be1604db4f5e5e0372b34853630e9c96ef2b62223ad4a9d88f3fea1e11d6bcc821fe7987004401948cd2f78b31b1104f8c63104ed8fff3dcde2d5aebd13f8d58efa0cdf07541888d2454ca0000d04449fa1843b9af65a7d82e4e136897cb55b41e2497e6914fe34d99849cf4dea78b0ec16f33543389db8e5c4398ec8ae26d54d877a370621f2ee7e5b9a8d86247ca1fb5dec54cd017a2ebcae9651f1d257756c3978b252da082e0d68f3b8e70958778235fe2e3587f2995684193d9afe890c5edc79a1f01525a5854f806d1c1dd58b9510b2a066a8ebf18c881a3a726a62f82fc5a9aee1f39e35eee374470a33da0ad930fd77657f5e7c3df53e4cd9256488dcbdfa4bf33af4249d960cadeac0cda69634268d372f51ce38c526abe38becd72278bf1161d34a5ee18c30b569f3aaca45977b7e2e4b64e16b91bed44c140ee5764ecf3463ec86cadcfb0998c3ad1551a5d48af7054d7493a8e4096194d1e9141b1d252a3f464a4f5b798c96d4d9fc445b9295aff2041f4972c5d113516374849fa2a7e7ea000000000000060b1b212731 + +sk: 46f7ee12d1dfd859c99edcd2aa3f788120c803f701c09f0ac6c6006a483f24b1da754c8b6f023f4b54148fbe903e37db10a08599f96f8c4bd88a12ae75ef96be826f43d8fc233dbf369de3894a15bd72950f4a1bd12a438c9468d7df7a784cb28e09c297d8e3e2e06cbf856314f854642128aa48f1d81107664c68002f1ba50771423777768661318652015301701675452862114455332773240712141272658004037486673755466713872721373206385526082588308822844208174688072453847156374652725883312588184847322037118082345284381535072827750620662552658044573714372684730422750822250061416227110411556485254483788175852771738712621540400206858455182417814481826834621808352730504246002115415455165247178656208243708256718505813574783345456844462225042852555577350324615665327383222274504124222026616711536342134430650632386417511674246181263466784636432445703858648457807380165132651763017006355180848338044356202468681278060027101326458580835553466240113212356486357853212024020453037300580101283520580812201253578764554470416780240631408657744833706810023505262061270786148163871108775548683446757563265484721614576034522707800276722378841034284735584580756666461565258510743180813685480225221470132882178730703166671388816006803462573287416370277131253007375473250045031130647035823125685133745752681845357338045218703473070362031642145488016544540452453023823502257025214448656424588430643753604833300874424202332461071425122082142350200401824152537544381237177722217727633546864408411173338583140671235433478064534356480676316082265651756660226003728275535182173332813247361530405648510313032883458440765686853262566147881386565224766820864166864516783653010824205641620713113482037081234878224867168646784881773201313021632477421615438835667618815087848520704526505585865500205604480224226303081361000620145326865572380701721113354304771877436582402131666877451377628321376664361654588507846387766538275421685083567705182437586276316561133318482843637041402810728312642856125725238105801386052508861664687186765734510455727788000561778362754470402736610765373506004558734317664804776844102321703310825842303652775703147637547720466808071868504268885388551533325502405384401005615563218645174380204708446683777176144148365432645423880258774627670044711457176742352567612812085806187382610808748221231283432473333541776208348647728577566661658231253311510461277454382330113644178314751114378018232433483584363547408521680546482008778558800817710548747221562714177851866712163523786574361183304435056041766032322012233501804761662526630583641288647125773053468670476602134552773367506333357874428681430860111213832365766306488856318886587065748465158552817407275663437485871884287731574025534537602104773110222445245103411574771736777031884572153521162063073123176570381783081662443365157412440766167753001431543047783213006503344500306555273751822135005732244457841718622640536058148277713415633448702412014037774185385003241666558205150852814456103475538332701325287660032174125324326513868368284456683830858154604704386624007456517765617237330180155257786621726344432540022127281001880628366681613051545183248500271267634507544421048306221558840168602012e9adf86fd33153553694e7378ba0faf9894885630800c98e0eb731b167e676c112ec523a909d08629531afd98323601cff0d335892adea4dc775a50e6d0d92a5fe423b82aaef5b1e5d84b7b39eeceef9e96545ce8e897413b75230216579265862729a513558be71f696049912f4ba024ee21c69fd082d01831cb9b675a4163c66bd61167bb019342696884cc09bad8cb52f1161a7df6c15227320b67af756f9dff17c315932fc98f045b18bf648ab429007b3524bef508722ce84009976f0b29624f0744dad29da090048c81b0f44fc389ebbd280f785162f414a3c2d40be3d3102e2b13df286f2d1e89d3b42402a4d2a916bf36a31587d83bc94e6ae63063d9caade3a8099265ae300c3167f3caa7d9f9bacd7b6415863997559a5a281fd37fcce36431ca378144e319c4df70fb05ac588c5fab8b21e3c422065b773619f968e4857d552fc23690f43f6fab30262186fb7918ab6d3652b4a53424f98e309a14576720d067497f0eb92037b2f38d32db6edc6d671d6a33bdf0480d2b78546ebbc628d72d7b63f0e37980c508191d7b5e54de39aa6adea00ccc87a95249861cea69f704baed2a4e4ea7db9b50309b1f6a0e81eefe48c99d0f34becaab0877b8a936604efd9696d9ffad9216b5035503e9c244007abafc9c17d066a0a8c2c60a4cf7e2ae53067acf99dc40b28ffa410150e51715192dd298bfc332132df0090fc55dd7e5bf9358791847f05d7c463afb7c808686e5127b8e9a16eebd53017e4de2fc92dd8a9ad98989fdc6892b727289d864426f1f2a2894e7eda91b3c68bcf62767b8c5070c72094f58a0b242352db0bac524dc3f7ba05e05acc8fc2c875aeff94d45c88759212e48e2acb3e304c97af069397a9c6cdcdef5d9cdb038ee435b2b9e8fc36e83e8fe88c945c53f073ef6c11401140a8b873ce39355ccfbf3b3d9f1083b5637c27e3567696b0ee233129365d69f4caab5eba78bf415d5afcb048eda571abfa11b8d2254b7564ab10d54284220790215a7c492be75bc79c97e27f5586944c0470464e7e722ac7942dc35362b62eab38881316e0579318cf98adb5e4a2af01fdb3119261ca20989082dc5fef340074057e7b765e93a8da0090ee49e9fd3165da4d8ddcbd3e73f444bd8fc9fe8c946d2fdadee3f7b6c099dd8df73aca99fb80466278cbf56a327b60499e28e3f911c50a43b4f9582996d2b1c79912943c857ef7ac0b49573851663fd9509e74568d2fa52b7d79e4c36a7b7e8c13958c20c72002b2c84e6cea5fda6d94b934e86af4292349ec1c5b64733f3a38044208fbbda65cf33d50719702283b9399d96dc49a732bfcd8df4b8244668d120f8c2d5545d95b54560154d1dfb8de6665a3258623b6d65d687c354860b72e8b9175ff6478694138e78f11b2dc02456108b30c3cd1269d91537e96705ddb71c9d8e232a671fecd80ed3b831af8d9552e2e87c38a2c4eb029555243263243d480d83a13b7451b04b2b4c51ea4ed28164f274f61c18805d59a2f80a077f4ffbe29c3b9eae32883177e8c32e206c16fe46c22e0007d1810a671041908f54e715b6067fae2b9e34949b6815c79c3658160490eaf8a637651c000b84d6f80556f496209eaed4f8e63a40bd014ff8eb03b66c1a08fa350a730afff81feedf80b2f7b8b790f546f32fa16692c65ab381c7fa84ccd1244e35b424ddf212da5f9e09ecfb6f0262b05829c199869c98d7cb6f4f22f5d1854d79fad38f1c99bf7973e11eb56905b1357cd9bc0bc08c75da4ebbc5212d53ce478fff70cb2d511e223c98c240b01ce1c79177aa5e765578ecf9d35d7009abe75f971f1ddf53e4544d0d8ebda42ec95466b948df34a70309aa10d068776cb5166c7b0fd36cef5c0f375e69f19cc4e547e01104d2e96802876f03bdf5bfb6d0913bdb8d5cab83cdacb6d220d137aa46657b9d42a5f2008118a217ab775a8219ecbef40db1bbcee312e1f8d3e2f0607153d36b57680dbf82c37635e3f34666a9025deb6e8d17ef32019b7aa2d86b612fc064c7586728ab8eeefe685abb50646da0e29a1995213c5a2c74f6a94ea9ac1dccd8aeeeb13f1af1343ae8b196f32d3dae53669a15d9346bfad6804ddab60c1bee16aef5856dfcd87822ce10a545fd315324758a869cbcac513257687fa580d7d4cb6937b92d293d56b82ce80be03018d3fba6fd5863207a8ce9253f75d33f3f7b272bb25497adfacdf0a8e3f5e6f0eac215ad7ededb398d5af59f791876085cb299ab878ec653734898057a83224512116d8ffa8fa4d1e5c0d1eac6b956f59116263662e7c26fe1bc0d9b3eb872887a0c2c7777885046cdae6a3ec6b2bc7ecb73ec50035329b78a2d4d7f6d606c5d91dc72bd0bd33a8e2b8cdb657204125e81a068f72ceb4f176f8c3a40290ce43a640af3bf5e6bee31c4c6fc5674c92102870846bd38bee6e97aa0a4503e61de49056b625debf29169cee544dc6ffcfbca60c2e521501b5b2ebedef2bf2b118d6c216c4dbd26de584e80db78758234fb3aa54ae4cfec49d084239cd081d64e538e2e3c4ff5a9f8c5ff3ef4f4332c545dfd88e8180be8d6fc98b2b4045a85e7cf2e3837319e50fdca9a28cedf7893a29acedaa8e6ad69f2de0be84e924ca3b5d972ac662c70072fd94cc008069a950a4066fa1ca0a9846ce02a09e157082ab27e5fb78617a89b619aeeeabb43c7a3fb9a4e4b7eb67f3be0deb5a2b30363b1c59ce93818c23ffbff52404dac84596159e704938c0275ccda152d6685ecc06bb3cc747f9074f26896dd84fcfa84fb7f3009c5697f62bcc1c6fd7ed1b97dedd71e3b2e63d6aa8bf4e030185591106ca8f557bc22bf38ec63b91d541e902bd5ffc521beee799c1375a4aea0e1003cc4fbc859ab55cbfc99b285fdf57e977e9ec7609719787d946d9d3c6da3b7b1000013bb3ab6e2fc26bdfacc2d752781ca2363538bad2d08c5ab17b0ad9365cf2005e53d304db96af6ddf5dcd2b8f151211eb9c0b6b3b75d1125801acebf96c3659565a8a31a8d1f097a91d3b3b4b26df58d49521d73fc9b480d8531e60ef24752975c1bdaf8789a6c8810cd0c2b8369fe87817b5c52a95db75bd694100bb904ab4794aeae32266ecd9d8857beba2b2d634194ec236bce822d34bf3c261f714eb1299b1bf426be06b93cad09d2dcc52fc2cdedd6d7b37a4ea8265b08b3f3eb9fddb560201b27fd28bed37560bc85d33f86744231c676cb77a23f35cd82f2df227fe13c50cb9674ddd8895e7d815b6e0fb280252c418e34f3d5ff2c2b8815727bde5afdf8aed58c86f9021caaad5970eadd4ebdfadb6e0db25ef19097044ec7c10cd5930e3e4a1f54cebdfaf954daa120e2b21811e06f656237c78b2d658b6233cf44cfa35901291d9749d0623816fece0ab0438c13cfd78192df442267e15a1cb364d8b10260f05fd3ce6f441e45d0b48e3147b4a4628c7adb567a02cf047e761a05cc68bcf8703a95d9ba5c5f4c82bf032bdf26a3b8175406f63d1877a15c3edecb15eb73e86c682 +message: cf16dc59776432c2f98fb53ca01fee3058 +signature: 1e55e8a49a3bd09083d3c3d317761233462bee47285e93bb0614069d0cd61b2a46e915f8005c9b91207dbdd8ae08a8d9febf573c98e06faedbb6b9fc077e4925ec54ce1a788562b8e89a0bcda0b61c654215e8cddadbc23e007710defd0c46abb14ef225c13468f38d0c65ab9b1644f0a748cb7bdfb66812c8abad0754ffddf4c8fd027be6622e403f6f6159aa0ca75a749fd87c92477d2641dc6ee64fe97f295624e90a4e3ed91434df9ddcb8a7d2796772233e02737b2a17a0fb577e859fb422a0387f6d63bd44914d36f8b009fdddebc56c06cbf49747262d1dea9f5044433bd86e47ce00c27207b824786d839b81191f5807768d6e3d0a4ace758189a9012d464d6c5502b89694b95afec6aa94737f04584325b6873545cb0752de540d03c40fd8ea99a919e5306e315b0d18b5902188f5f4df63b154357ff8ea76ac0fc6e060ef8cc88df86cc2e9c8371373feebe05094b1eae6aa84129a34edf16f81bddd63453b548b41efd85c2a87e0cb281beaaa3e6dafa7c2e7921e6dc38396c72d4e7a21dd8bf17910dad21714af926dd40efd0e972f02a8178259b240b682b20fc28c3902c23356206e082f18b4101d6044e544d3518b67421183af4ea261f95558aa1f1eccd45efdc8a56d3acf4e4a6b8d5d877f949abc4df2e2d14e6541d3e00207a4bc2b5db3357c11038423c6740b7d707a83b04e24f4b125b3de4df15f839881b8151f2cd4ebcd905e52ff5de5f9f4c8aa10b3fe1a68f9f05e1f37dceab0d6f76bb489093534c9b9fe7bc5276a22b3caf67b4ea1355ddd60daffa979b59b590618c3992d08c13ef97de5f359feff052c2324ada176b100915c03795fcfe0127e46d71961b37065215ba2b8f851936538d72565ad058f4f5f3c0728058aa51e9dbbeecb8de155007a516d274f9849d7d7e5c220ec6351c9e19ba8be1a05cb0266ef12d83719d7a86c1b577c41a0a3ce751df5c16f3e7779e8d27681be3e2e4543aedf731b5a35cbefc990fd962d609501bd978e9c335f7c8fba07079a638227f77173178ef6fd1dbe0ae537535b02205ec04b13ff7b3b65687ede7b2ec3d274c7d46c4ba1ec278194ec26ce132cbc066ffcd063f8ec9ab508e58f25b526fa142267162fd0d077feb7b089db249801c4e4e0e523b1cb6a1033747365d67ce69fb41d97c0733dd33bf9c31e323679f0ddb83778c5dade4386f18d2e29760c4742e1b2e208e8587cf81ded26be520cf13dcfcf0cf745ead3acc0caaf2a4cf79e94c4fd53509e1a37a8aea43b77ff23cf2bd90dc494d25a62d9397d86f7c4c85a253108e54f9588c0f832def936b2c4c57396dba03b6db231462c5961a93bc368fcfa97326d64d4540a088934cdbc856242b4fea7a6f2e4beb7965d3fc7b9bb25f79961a3a295878acf43805a4cbc6cd31da917f73013e70e53b38ac6a965d186172b8bfaa0f79b575ba99c803def09ec913a49e6de980e4255ce5ff5be4fed9429c7e62d90b66278abee6070fadb3c64de031f9ad33dbbf873ba04b8a5d9e21b9bc8d10d400d9ebed28d6ef200147662ef90da32dc3db3758af6b3eee8450b494a7df7f5379ff22bc66119f7e6a09bf2b7b83e335c3470f8bfcd4ad5ea143a9374badc82fa7e9a2141471dff6b15347f9c8509ca2f179d6be25e495dd63b1a32bf1311ed120d0a876379843cf6aef5241b5451ee3c7526edaeedf7f283fe6e1ee8167e96c9832a897c88e51d039141199b60b12574604eb2a92e05a39fe9339c57331dfe75e19feec1d527846b6ed764e3df4218c09c1f843500d7e871ffe0adcc63cdac367860bed6b09b8e92bb553f0511d07c5bec35fb14e65ec54adb60c700f8f975760f3163114e9351e27dd39f2f742bbf7cdc2b6a7f89abd753d6f0590a675a3505a595930394d4c49776677927fdf34ed5bd7b1204d529046fdcb21a2f4570839abc8cbe11a277e909f00e55d4e8167957aee38a1c104984ac36c935c2fccace097595c40380f339a3e23d8398617358668f4dad58dd7d74577fbbc33339fcd16bef341397775e29af7089a87eb228cbbe491f871d8fa03f2f7d72e01fc9255b8ddd1c0648ade10efe5b5ca59fe04599b930501ffd570605a5c8471634aab4de55875925089dd480000735cf43b8c7f24413f90290a216eaedf8e39a4c421e7afbc80028dac31319fa611155086f2d3b341f5d22f2a4cbf7a319d556d5c26bf9abc8d4295bea10c0ae7369d835cf41da060f23914c8a27994411a3d11897009e601c1529fd88f25c196225dcb1245c884855bed6ef2297396f6657bcc76ab0fc643963a173e77071772242b30de12de4bd03a439725a211eae5b6272043e013e65c265a60355cef66172012adf551d443b65960bbdcf34a5668b529d16790db62cc7093719258a6fa04fddbab46069bc3de5dee7a610bf8672dac9752412d4672346cb184eaa319df93b1af93f2b3dab52a62f6503a935be085b1492ee8f2dc64bca5f85da9762ca74beab63afc68cd33d7d5dbc0219f8760cfbe1381abd17c5cba3a68d24bd35f5e88a8653692d6bcecf693e3d878c068543be024a436963a3d72faf2a8d74f91c77197b607f06f3923b564ea4650c064f51dbff6dc681550126d47b62989283ac6238c704e036da993f146335c18a402442652f9aaa0b9d5683f6ca7c7029ba12542a39123f8e07d5c4308a89b26919a3b3c5ac3e9577cc132e73379195b337fea670675130484358a9e975c39724aa058828cfc54ac9f60ba9b5cbbcf45e377fb9318ed7e4222a6ebb221899f17127c42069d8ae87ac79dbedf3b1af981a9c920dfd3653eef88c08d5acb05112e6496c4862b967ea6483faed1b6e25a137b5adec954546ccca82920fbbe72f9c6641fdcaf6c6c0a81f5b9cb01170110cf6e632e68a68944989b02e5cea47b428979e7d987b8aa655280a742e840a889d6482be00882119ad961a07d2714a0605470acf11e56d32f3fcfbd9089687ef2295d9274b441323bffdb4372fb885e5052870a15158f002ae16b9b2791e68616cf613f78d9ec1ecf8144e89dc18aec9a21b00c4d1f16548805567aa7e90429626ca2aac06dd111c128588099b1c9a136842cb1b95bdfb9a0c36d9d9ff7cb47aafb97bcce69d323ef300f1f5e9fe17391e871093c1aba5054008adb9b8d38f580e6d363bfe50b468e7b99efa4f6d6f49cb3e4b5a6e61c07a5f3db1ecb8e5e6c5cfe36e6c6c94108f8b66192f428a36ea4350230b26a86379085c4fff72b459ba6639d2ba2b309ee061a7e7ca50f1031fec1690967e4594cdc0a3fcae6c551ba55814be6b61390d61965d8015ff6ad6a41f064ed2f6500e69077ea21eafef7168736fd2b9b1847e52dc27aa863467bdf18635a8bc8947cecde2b9467fca440c71f47220791a42a0e3269daec1dc2244aea1e5d13c624ac16dd35e0047d723aa37bc308e1835fe7f8548c3f380b1363a9e1d2f2c38c18cffab20debe064052f48900e1f4db0bd422a842ad7bee0177526e7b19ad83398a9185b62bb3dd19691489ac5069bec65eac800646e49c1cf221d0ddae09859453bab50bc53b79a3ebf03f611423da5bd29d1a0c82fec9cb8bbda1767b442e419b8801862f05dd8eb5d1e0cb30112906fc2c897a079946001b703f619b3fa3846a612f22062d085fe4c13e24b3011d89c4e88ed689879bb7c864f051780986a78e6ad3a7b5fb492fdd72bde302440040b6f2177e4c14191f77e6b1d48f2a86b7eb7dd4ff6053766c1cf2cbbdc5fe94c9336c73ad66fbd60da2e28c2c5b7821165c9ddf5e4e51917cef2f30a7ce9863117aaa38e22ef9dcad87eb3ad067d6722ca0a19d29a202b15e5898cac9843ae4860c8d420cc77805607cfe09da83925f7c9b9c8568fcdb40cd20ddbaa0102416542ba7e3bdcc76890e1c5a665d6a1ad3f8d852a27e2f5224aee2d353d5fda846635979cbeb2e129bc6e38f12775f9742e7f9f75ee414f8e18f69842843400e922a362daf31e6c81237e964cfad654489e5778f2ac4bd5e853674e7cc2a74c8e98b69948b95dc4db95ad2d38c5b4f2e854583c5a36e4eefc8c20f55ecb5254c49e47a18abe125737bb7fb5ce65ce40b176d8d7d7c40c3defa1ea47bfe8eaa790b174939029a89588480261ebeb78da98326106ae5b4d2d3284168037a5e5de386c0d3135997e14a39dbd2ff8e21695139c6a9dad55073d0e6ad8491569311e2c7f427af80a0b86e381a849858abda85b280c46ac7e4c1b9062d95485c36f92e9e0849318bbf60faa858d9242e44b1a685f7d75a25eb3cdfbed60e4e1c13681eb930ac143edf73b496f0f892550caa5807a9ba60fd631f7534c742037cdb5384cb0e2aff302b1455a1ca52a7c797394956b7d11ade07ebd702b008009879b9180cf7d2c2870c6c5d0b867fc5c9a38d8f20ac924d9037aeda3ea2eabf2b85e4418f00d3d783bc5c6403f21e0af1655185d4b40944a2def7f3f385a9e661891a6bdfa6f0ee94e6a842a0601780a174c6429dcfbd09197b2255e97f4e82f7f222fc3cc74d897e1f630b7116e94f1d1e3fedfe9557a4a50593d1e28df5a2f6e9dfa8f2ee79abce0b55588f97b4d7f2fd0f567da0dd1829686c78161725262d97b2bde2e4fd27788384b1c6032655db000000000000000000000000000000090e131e2428 + +sk: a15db57e2704c6a6eab469b0b27eb80c71a72a9fe1d3d615533d1ccc0ea5b88e2109b7e286e9e2985074a7e944ba9c63c711fff7b5973949655d9766f8ca4596650e923de2d7414a282f5e2e98b21b0472baa9eaf15cc972ba816b57254a3b0028a31c0a29044cc765b64d54c7ed6961fcb1e6589136f35ea94c7f8538d522eb1550006735077008476853324604668314460845480253873262428175507865438737500476814421403015727531640843167048002311254583445128631312841342135487512002787870887023085707668262718805148573455278504155434553650151655742781074071460701113375831852144101363541081565435640687681381646325612842074206736056713022877558075333667033056844313084605180435782845845638501735154720820238576437117274182511687532554824854810414207332685727853780767772273351776245222225558526831414277317711110033645512467618037154052042744450264255632221276360348134320848744632021557271544770303070587376117200143534830853178610248331241062480887628847688584612462535408504242368252254272000218888264078774772142002360541763427355080237841746128654216415508005148580035217643011611388436030854246074387574763388758363588761001173514631572445161342338733044447450788534374828107537726766324702767031488865401388571028658243322507524131033170203060122146247208260222720017567100186884311048655510012473481425250135735453620888254348535188154736663844304850334483333378731802012041286262561768665237465700206835284511876067655367320184480285063731720516188167257262640845686238571651171133533774673750382603546343547854436072384562825424872617457312372448255055723366880076033423054083128474873101257463715801420442441610546788038100533543551105881380717327602862533256887054016202507004258841321003710382811847010024862683564407266162026238354025885428722156540180020057526526740144767755064778435062728241016421178054164557074710676136050311540320470173817552336460708514012681780078047841566852561380812637207275675055064821018545644087450082774116042460768022771636324252810532047561108661356825072720208437326801187085043626337636371836846817230082201848072687702057266728168852101178284245748741887230610470524240461703853583485542100035622820282247861086720155782006660171133681452615511380781120842608052230450606683754316521042418005857762352338626060836145464281305120020572033386762213110462557550384302120326338568815710444065134503021437426315502730467834247436665188725447756050234336471251447485101012845630824346151187541222734416620778408736882074133622540372325666206043270668824687726516448363577564042385832675871065585836633147006745476838207608766541270285467410537156810340644121175554140522807310481603418406781281778574675571558550240805376302228324084642550855161617510403344216821472825501825214610413557428176205624730627338284771477646453203515735457760577564343468228631584506145544881661551715853431616157567436556762045562014661342142586802537600382408758475561107176208730147260115480815875475378465728748314427857113145018510711201100642075772064621084550321866181843048223338510564176021028022075824642046050118101154427406225321311130603734818726165267167638826516258274106525087803738132481627823638863673711157228ee2d705eda607d1e4e9d43db69d6c445935e719b5873c12fab2cbbc83e5b07ab0cc5ef4dafefe67a8736553d883fe1df174016bb1530e16ba78e210172a734c5242db937a44ed29374d90f4bdf09c20eb3a6409f64c2750ee6e8b196f50f1dacc544bd74aad68fcd6cf5ad8d203e51ad72b6a52510df51d7307f967860856ab7943898b815739047251c1dd2f37f243689f44a9d188862cb0602e50cd717e48bc2ebae6477b801948635c751af0b88361603956a0ed6689ac8710f748e10c64bf65f87935331fda613504c94e5c8cc767247f16f05f04ebad76c6dca4e37590e71e2b6019d2b23094ae82e54cf66dabb912765841ccbddcbc55075c4fca12b2540a2be9b1cf6e989d71398374e4eb0aeb3e094cdc92722b46884c12f503fd13897a9bd1bfd34c61a8916569d163b7f40d81c8f2f2d76b978dcf0e69baeff098b607764cfaf95ce8b736dfc94dd41f5dda4deb24566bf9e4568c7841075ed2f3d4d71e4470b034bedc6da855bba273316440325555c06a94e9dc340f4f3aa4715bcaae1f87582fe1d29a202c55cfe0f171b29de4e4884036c7f4c9a739928100352272675da45e861cca6f67836405a84a94e79100033894e46bab45815c51cc3d89e22d6fb17c9f646787be12a392bc8f78872a26e673cc1289dfba6b4ca20e264b80c8200cde5fe9128065e83f8a1f870216474f3221c9dfbd18db8e46ac31d385517d73ee82626d875856d3d8a3de0bebab5c7a704218ac0e453745c3ac1aa8c2c5c9b27c27752b493661c539ed8f08dabec339eec1cd80876ea5217ceafd4783a70ac01da5c362730c4ffed51c26b1c7140c00944b708ab78875ca1e10d274e10b2c2a0cacc8d9888246971089dacf46ed079f9887ecc2d795d6662d72c2f94693b6b66c1ebe9e1917263a5cebbb3e94b8649a1ab444092ded0b937794fcacb696b253fb697eceb9b6665907b55c26cff3222f64b73b14a8e7a19aab5a6459f19ebaeee197eed22ccb2191cfc19b1994276056b5d4715ddb859a54d8d98aa884ebf2b964bfa3b29ba11a001975a4e5e5bc82c207f4960d40aab99191268303a911d4c2bc533432e9412fda54376a0875a3f2ef0ca7f3e8d7bc9bcf2a284549649ac3c140544237047d71633e793efc1e160adf5fc47d8211de67a575eb8f3b68cbd0028968d70cb353b65487d13ee1181045c55037a48a79f3c0f647999eceb7c356953b111b2d7ae1e7565cfbfc00a72cbeb6cd8c126d883e61959bf7f9c05ce0b4a02f5e1cda37ea24aa6784403b3f678c86e76cb56651049bcc6d8cd41406ca7b1bfdf29f76f53f9efbdab425cabd3c8cd6835afbcac1b49b8f052653071b780d7b5e994ff78de59e593a4dd29b65c6e49fb3139cc5842b3b3b886cecad51ef9b9ceff791178fdca54926952c7f811614220a37279c84c20f0a09e37ca42be83b5a5f97af595d2548de68d92e1a9f89795f1eae583863adcd1db74aec01265c3e6b0f923302301f8232f9e187996ec26d6effad45ca2a27d05b5975134240bedb05dcc933670254063b1bddb8f7fe4d0448ed53935aa040b8d97c7ecc8162ebc07c8c92f5119281fe2da6ae1829d7d3834bf851b99195c3e788a1e571c65aa66a634bf59802dcc396f77865836b498eb5762635fa1ea6ae78728936bb1886a7d4cb95aca48d3d565f7284bcec0195ab58bf49a4e59244e155a66bc1643f74158561388167104425f04057001590729982f075028922e8ec2fabf2e6d3ff13a220bb3d6f82105051616f46675d2cadbbb20a9ba6015052fd8e88562a466565b5e0b29a88a5faa6d953e01e1ba9fa2583b1e657fd63ce651be93b71b02e27227f9851dfcbf326b387441ea8eb6bb6d45ee2858a484316a1852612f9f3e0f025620e860df19161d7b6b2e852d49f2e0a0b97acdd19eb2825ff8ad6f37ca061e9e261b5f289e388d21507cfbec348e9be50b1c7cd83db7a42c1c59183fe505b4ccdf31e752d8e1526d6b656741a19618ca3bf9a628ce41003528f2345da4975b19acd9979c60f72936bce787cba2271a791d7daecf911dcad0b17c0bc5bbd4983a0090439f0b7dbd3c100a6322d4c521fce7e7b7f9dff212775981961609ec91998fa85f541ffdfd667c7dfa5072e6af45c1693ac13b62d3398f3c5aa4b04e34148fe7689964671250834af4fc528704888e5770b0a1c8d04a49fbabcd4156412bbfdcc0adc06f1d662808ff4e70dd2d3182e2dd47885ea23aa5137ea3af970f156c8078dc7c27cbf2406cc927abb29009e45ae8a1c870bfac8b04edeec6b377c336e2683dbed8390044abd6ca3b92e7b839d47de433da5b24b9b4dcfb0e2d31231ee58ca51f2c6eb70dea92ab11a5c06032ada92d0f7a045e02f5f10a4357904af061bad83521b9c9f3906c62cf68a5e30680f8e5782f901193094653a06fdeeb8da29b13895e60ee033edcfa1a3fa175a0b96fb8a98a2a78df4c8de9716f4a2f286ce4bed75a1f125ba2974f9554b144743dcef9442893df748d950ddc832a23f9fa5ba84ad9f21c2a107eb2fb9c243f85118f00388007ef20561ed47c1c4fc0ae9f7d195efc1db5cb746041e587eaa6f33cb350e4a9596cb595f93da4cfce2d35445f51280469bdf74ac779d00c0f076072b417dd5c8bd0824959657040924bc8ac69accf7ad7a7ca5ad9d4f780abd905b530df1f9530883a366331f8c87f2134302206678b9e14f6672fe65440796d36fbb0bd3eccc91add03ea0bdb347e44fd0bbbd1624600ca911cb6b9f2d39dd787f86cc1470d7285907f134893aa3a1f634292301e16ea1a6911ed8f5bfa0f665d16d2ed066af5d932f2e3c75efe76825ed51f64c4da93399990dca4d97d283482d7adda07ead30037c65cc3e7a3fbdc9efe2506c67fd593118bbc8eedb2e14613604d2a14849ba911abae993523de930ac7d5ea39b7982ce6733adb981a3c081cf8b8dfa394c54918cefcf2627281600d0295159b1af6d36071193b8fff3f7deeadd39c845812ebadbefa4997870a8554ee6249e2164d7430aa0927b6022672f600a2b8f1826159806f1ab6b20e3270b5a284a50be6fe70cc2c0efee40f5993221cfe45d460c32bc98d298135aeadf88cc7e723a309cdbba36640392d35acde3a28d635a44cd1cb802899fdc877ff81c4f8025e8cba504b623fac519b3880ca1aa235644155f7467b0715e9195ccac77ac260b4bf51c2dc2a5bba438deabcd6a8607fd1d7f59e0736ab1613b7bcc2abc88bf7d6f21e057ef8697ab5c03829aeca69380859e05daade1343f4ba5d7ded1e751e92ffa4b9c85c8333fd4018d606ecb5a966c3664f84eaffeaa3270cac5a39b56a791738fde214b90609ae969506ca7e73f3e90f0cdb2f6ca2fca061fa2e6671d347b6bbf3dc99385d1dcc989e80b255eb463c947a14b99e832d90ccd48e47dc3b04eb7210533a81cf95d16331554de21d520a5bdfd68b0d68bd654357b14bfe29a7db235e426d009de1e6b314741856919acd20680e2e220feb4e +message: a71aa68978befb4642795b6b24e55f210d86c956ff46a8252daec44f3200e5ee +signature: 487c9d4840caf2d93dceab67839e0784fe17b31dd2bad76217aeaa4b53aba391677ac5962de7120b1b10f6e0957bacdcefea80b2e9776a7d7becbafbf933f2041e24ea6cd5687e82ea78e58a0a470ddf43cf800a049ded93d4dd0315862d3307b04db13133d0403773cf0a14c395c85a86369d424b84db87b93be2d6bbc6cbfd895f987a1d5e24e3d056bc23cfdc9ddf1a3a9c44b6897b68563f9db61d8aada3543a1c350a7a7a753dbe7b6e48affa9273c0dad0173a3fc9850ca3a4432764c0ffeecac83327fbb40ce9c5062826cd660267ca703c4fbfa63cf524fecbd70ee96e42c686b9b20f9fe254841e11da6ef8125079f9d5ecbf99f52af2d183eb83a322fa83505176afea04a8a6a6939acb6b9b9d048cd5cbe020924c881eb2d321272d4290fb0c10a266d36f5278ff9d543c70c36830db44ffa2394596b6f143422965f796430fb35b8e050bf1b7ce53c7e3504012a38d806d1f499050e11da53af5da770ab648b0e485c45bfe84a068fe3c90527146523158ba9720e7246e640095d58309d6d4c7d3d1e817075987ee6f4a5abb60e2be8a8996a9c27b87849944c09224a23f1c7eb6e23eb3a7c51e0bacb5c2b7d451f60be3521182da61da949317091baecb2589f69b93bb740901e1495a88c1a695c241334bf22c713ddcf72906c5fce5021bd4aa118510625983c739ae3ec576d16028bf1e71f611502391d71fafb0e2af512a68086a15fd4012323b92ace0bc9f8f6bd3857cfb85b02364406004651eff2bc3fa7e516e1f0bf19332292c49921f04537ee7bcfecf364a1ffb7769ecfb50ecec6d2ef50427193d3df6632a52f19ff792c823de7223ba2d58e2a84705ef5d67bbdbd16c3c9be13dd47aebe0eb126689f34bd792b1d4d7ea7596e3868c62c2f40ad3e2b91ae27797797d72cb6a91b3b827e660f8e353c9b35f554ac010430644f440c4e64418a9980f42d0885b8e9ff836cddc5a7b04ed1d0b399f5893cc0dbd475279693f251ba3c9c68f5112f5faf5def3062fb2fa007478a7e74950af47db1c3874ac6b6d21ece4430877582a213536af739bf9a373dd83622f6fc7130b964b443c51fb910ab8d90c0977d1b23395a7cd63a1087650ea8ab5071a8c48149c473cf1e248c50cb5ab9b804ac0ddaacc64306370b4bc1ebb5c11292b4a31daf70410caaf28e77bc4623f6825445a9a3b44c30f535a947fc1223886106f379130e9a566c19781aa981e866541e1955727112262cc98a8827e3f6a4f28a3526f205ff4bffc57ce6fcf7e18a212b0cbb1d21c6b97504688b8a6761842bf419db27236255e6955b6c3ad0d51aa1ad1f865819155e2b4cbfb47e347b14a9009e37286582d6b524877cf3550de54f2bac20c0f5ed4ad7f1fdbb2182dfe36e0c9bef7c887a11318ba30b6b34c59da530c71f86275298c494528d31e3c544de722d1a9e8c9422a98855fc3569897231e0ec31015c2bf3e79664f5bac696f01dce06c035a40d86f0ee65cd37ca9c5e508317426fc184c810ffbcca422970c17800bce20ce2a844bc270ab683e2abccc38d7f640c7cf8e23968a700a9d08c48a37d2cb2c87784e3d49c414a78bf73649076fc8d9d89afb7df211b1f34f6fef9f60f5eedf23aa258578d9969477f0374e0b55aa33b95a91f533243a362f3e83afddacb3b306559e06c2f42bd125d4fbc0cc36af61ad0d4a3b74c0d34035e249ae002d91e9838671a4f569fd2305c7af2d9b993fcd637e65756602106b855c4ecd2f30175ad54d402bfca29db4c22747425bdf8838d730329889182bc6505c712d778b106e6945ca5f1c67b3e5f911f38f1a52298b8fdc05c49bc5d2fc3115d1a3d3dbcc53b22aad7066ef9657b178202bb8ca328d1aa288f7c3058b54aadd366f1d63cd5b7276d555eeea7857e5a06659dc154af00e30706d536e55fc02ea298851d79afcaa580b5601771ebdd716561706736af5494d5a372e146239e97cce8f175e8bc439eb921cd30cc5c886f85f1da2baeaa363335a9df825596259b47f99821c6b2f5badb1f386460eac787ca3604100ede3b301a8c2f91229b3f381860b433a65a5b1e9a2af8a51106ccbab8bab551cde315c02f0f25bab56068e4731e9280cdcf65d2c92bc09ec16a82b93293ca5695306cb6a18c6552cfa5cb1fd66ebbf60d04a2c5e0a383624377cccf7b06574c3d37a4155ba6f629decf59bf2190d5901435e85b0f3b902f73d6c1b39ed0fd5eb00d1e64a89e91beca3e2c58435d5906f77e2dbe4a33b2f896e15cec755b649383ba1e0af0854942b8ba5cae7fcb2ce442028e4d95ba3b49994dbe768681a34fbaa1ecfe12b3c00e314dc1d952196b98681c6a341fc3fc9799a4547a4935b8e485ed9f257a09d3de77199882448fae19aae01d8df2b9a786690382f0113e842248d9c5f0d1d48ed4eb6a7233715648c309fc733d28c01558d34c03f2c7cf488a69582f053770fccd404f117a652d0a2d64946ab3e840eb23312d9d991ae3a8da67edf0befb1270e2dd9bb6223f89dd2cf47c59478a50cf7569a8c117d9372169207811a04f8a44f52a2b2601a8a31874eb99c92c314701d3049f7e4b5061e3e6c659b44868dad0167a53359affa9b8689cdda0389c271e31b05fd388ee78ad99dc533ea5a9542df4f41b0caf492c45a7490ac818c8bb7a7313267df614a92ece98eb248952d3a45635feb3e871631a7ba6c08679730c3d46600d6d189d139a16481a8fdad5330fb94851d57ee8ad944fd71a1781a5f3a9289df68302ee20aff058922312dc1add1e0567b58a1e297afe83f5f3a1e110ecb58d77920913c2ba2c9b061145bfeede1d11ec3238f037f5cdcf2ac68858c7f2d7aed354c930b592e9a1bcfeba4c3cbe025d7fadb9ef557b9423e8b039d79279e22b7c33a6334b9f3013c312c589e55e18078516f28591a8a7ccc6988b17376ab87cbf098a5a0a32456f538e9c4969170386dacc4c0a4f8ba73be95f6a3c20639e22bab217cc6bf363d2c12023eb5053542739fd979c5cf6545468106f7fef791809cdacbd7ffdaefba380b152eb0539df62e956b33a7dcc9ecb68439bd2b8c7270c4bc75699f7d71929a1f0627ababa19442665cff3ebd0654db0cba51913bd49c8195ae82e25ae231a1c6b50e660bb37e8a19ea02b06de470831f58edf5a107cc02c4589390ca9d1c547b7624c3141a737344f91d0158d968a45e594bc1acc93db79e734d5f9d4365cb2f4eb35dd61ed72e2d0e724d935a258c7b70061e8e902011387b92b6a67fefce74d4c79c2900baa5e6951a324f55720c3a1a8d924266d1681d3424343f6541815e23ad948a76f1ca76bd3e57c86b76275f3b04b752ea4f4fcfef729c3b8ef4e1d643efd03cd532528b07f7f0f656ed409cbf5de161ab7a7111cda3a052bb9dbe592371928d9eed08c412059cc829769b5a002a97fc5f8b884ab0ed4911c09360e5fe22645f0f9590b510ec1f8b9a7486aaf2869b3cb94801c09678061e5da3af9e610bc4b4ddd761dbca2fa59a0a2f27540e881965e826b356ba161ae63e95058db746ca23fa28c3b39e55aaf7e7d0cc9a4824c0df4857ba720707741e5088ca8bc0ae6c2eaa5831ca02134ae3acf14fde282847d405aa187c04cd53fc585cc2804523fea92bd52dda0385eb7efdcc14613ddf4bd8bcc128b2630e84020bb77210a7e6021540bcf8a06d4811206b1717f9c3fc6f4586f98439824212836796e706d7c60abc87c71ddeb7c3dc05f24c10fa8e28c3300be2a134c866dc2be66032c9b275828ee67d5244bb92c2012735c692fce9a82e7d500f43f1318d4297345e2818dd2c19a5958e42c747b73ad56b6cba6628cc57181a8045071cfe96220d693ae4b09cd1555f842badf09cd4a50cc9e1556c0744700cf5104e37c5ec49c2d47cdbfbf822c5fdb6146b4c5e7ab7f78aa38e0262c5a679df4e3b254dfc1db54a2411fc98e48c96f5486ba61bfdb18a2e67bc11f70beaf05a3c4f25c22d6ec615569711e2a7cb6d8128d64440388721ad0f0e0ff5b2a9536fa11701ec1cb1ca6e38233bc8e2536e9ebfaaa438e560f583d1f96f1b5efbc3aeb9823ebd73cef63f2b6f3082a7f76538584abbd093a250c9760e949f7738a775fa6c592fb10eb2f3203cc92e071793914e17679492d0452d811eedacf23bd32a03ac717ec0a448273d58744987ac550244e1969d7367422bb2cd2ff8430ea16492f579a5654c843ed87b040fbea6d908280f95695d5edca906342cebe25a53bcc3291c2a5033c55c4b5abb3ab9238813de974b47677267d84d6ae6fb8bbe4f503bf9851f9584fa7f6c76cc18460fae5e6f5e4d34d43ec15b03d37506e56167bd40de7a241b6ecb999523d5a10aa37c7b19c9531d654729c493b6815eb7857e5410649f4ef72cdab628fe2b1acd86752f62e65f7cda006d0933d55ec618ca37cb9c194d98a455966a5f0260ba605e8133890d9dc2537358027cce49d9893d5c1a2c71d2c970ecf77c4b0a7f575faed8b235228b6003ca6f08fc20d00bdbdd5602199f2db6313b419829245e336402ed8f2253b92585adb69fb7169294f6c4760e29a43b7a94638ab11418666a7f888ab2080a11215b71b8dbef78888bafb6c6e8898f3286c1f800000000000000000000000000000000000000000000030b141b1d21 + +sk: fefcfa34713a2252985dc0c4e062e8eec75badfcf83f799b572ddac1f0e4399a055d29ca204b271e49416dbb6e7edd99626e64e14063063dd87c780ea06c78af19d904659937ac8aadff206d9597f69a895602ceb723d5b852cfee428363855966ffe7925661aafdeb471478d3fe6ed4ccd06faf104a59fa20f61a4f9a8e7ef545743846302528012812746602036376867382651008232600723642068087148471216813826437884611180533554865404865334274336742823385054883215500058420750022524285808311188475342227355182870886031814731357850726856301148180832324827272222744554141084806248756320581251652643213137476155462664344512003550777163640373877555780088207188808804744024670044714068002583638832486763341175765884021140656056831825437080341205140070737240660620124737353668086334128661458637348671155811865501534131011347665664771627233773686782545727878666400807835843451187345380233381675402173215027538072482145850106760463502861702300687413203845140162025667280265887864517623517270042628132767206278654734550608815741562107076324576188512520720610854615602738314256711418883277442414621754204501764468647784358327867171252724787340076245040615284720028456332002770223878326275426477811581144251108448604522770062730180185183757872105405137018122360340163146784853287764253100421466363258416214475617620015668275056838283555161355175250106736055602882513672516180535110853450221726486744472477528501048326326622084808502380040045360367655202873775261275388304321821880244025677140637221717552871885802874853743743732554680238518066564817748154485844233236162547417168335643072826016202408250476286384234002438187084168738228830885546826543541628271228476166380478288542542770620703015115758567422161027187853474084087481784127748010337772624012258680434280473080605236504530543336821101560314727643783026714616540287510736528880000217414470278702783724865533805036458001370306724040721508814671460475054551364177301205646355205734801847435178148386203380735068822360701677168444651124576815722828175365227468464307644148057353428183144674873705774365515522558036575638170483773200380767388013117432476552210468824255846610570724163884200527331536886400265673357571652638345245516630800730620774077384137485638563408577224725051505515365403507367242638316746347770768373472536127153475507510073773082547684338356356186116713227685845514233584268114468872372173211832756470146458740338743457460773075640360668111282620365622102270435411212140361566185577433838585068860842427473414462676316240820555801074423353678570140018405642338156267060025530644273306281866538253840586364872614652816046210160612880057823142805532225666824450238612337644731500515276762682427038658134805308136062848826386843638312028483778281823605640605808427007257162138112073551676433003538570007163857434677426501041525381523726112070208802260606321841185422870405058584580382861470864765206803651871801878187582371376265706182571548186635778032045526212525402503715470533606624822445248448087234576270801442750452110520753330857862474310114486531070850447834508414334555358881702141083732008716151866126373775468143054261014011422888088103151061866787734218364706600732362a351599d12b07816a3520c407bf4ef1c877526b78d89f3708fb6bbf849e296b2658cd3a452ab56cc66bf96ee1d3ce8c39a5a5544313006dbdde52159a7c78dcefc21a393c956f88021af17b0066ff64be2676be970f796fbd4cddd9af9b4b8cc4e7c14134421d4f186786599bc671cfa869f8bd0ea74a6319b57ab78ef0cc91fa9d0d5f06cfc3aa2b1dc2e2a7c6bf9d96c41b921d96d5ca51065337105a9121408c8651b78021941c95c371b6f94399a543209f7af6b63b76cc2f2cc3a2b57b245541b0ded1d8b569f7ce92c62d2c08810e0601fbb3452b6d186649b8b511dbd251aba840a5f7a0c8b1fa773b2ea895b4756a3aaa259e768542d60e6d50498e2f0e652a072878e6de48d5c3418a0abf4daa4e775a4df5a29f8086fe122dc2dbc363215a4ea6b4bf1dadfc7d2b5f7e07707c743be9fc9d01c5068ce625db093fc40cb9087c1791ff50f3cb4950b70cb4b370f4e7ff85f83c051d90f73abc3963409077735b76da5d541260c21974d1cee77b9829c79e40768cf64d2f68d9bfdf39d10d2649c14bd8b1c0ce6a95bdfac982735be3d5612ac8e4d5ef8479712dc186726634d778d5f5535c42cabb8679836dad6cc73db00716f731498aee983ee29e93fae76fd8461e32e5cde76585516bef3a4f945fc83a15d55ba93f683dafb7eca8e9d01ea1071fb2fb247f84e65e394c802a2e73243aa95e5d853658f1ea7b64b22104ef5f19153a05d33b40678191555920da523c90ac0417a646a342600d59c7c28918cd8d60ad1da6d108cd7978fbaa4983675c495babd9fe9fe4b7dae8a9adabd45df536310b4c982916928554b4a952e035e1d099bf42c9ae83961c05c3f4b332c18cf66e5aad84b9d91dfe28156746bebaefd361fe4d5ea79e74d59da7a1502d9806bbf1a28a37c5d4f3349d4ae7f5dea34e49f72b82911993ea236c13b6800fe61ff9275c7e4a3034df628c6d88d89e17584f27be69c54c6fb5bc45247e9ebe82fce6c7792f5c51febb76d91134c7ffc4d5a2a5633fca45e41883be1cd153d254968599f8a08e781cae63d869f5a9b77c4d8ea360a647d44361b3d717fdfb0c3070e7a062bb1d3f605e646a6bcd99ad135dd7bba56653641a133eff4aa76f63ded616496d9655c4327f82f5871b4cc025f941541038b7c725ab340cd7d06ca445c9266d45325eaf09282d2b43312a6970c1465269a10d0f72d74fa33c9057b64f9349babaeac6724b6a84dc969fdae87f94acf02be8da571dc664d268a20531ca7160f2f8f896497005000ed2f52a7d986515b983bd5d2d010b3d198d9c15e10895810238ebffb4b163f009211e90bd481d2d020126019c7dabf715c8e0241a342e18a3c5f57e426018bb3a5e4ad60446d2c58b979cfdac7c791ebdf00299159595981a21b6f5a5531f4f874b06932fa6f1070623efe5f22319d889da0d1f9954eabea275829d8293a83ad979544adb5d404c5ec6f7b603220834ac9e45bbb654acab632bee69801825a668b06315530def6fae3fece23fef9087d1ccce5a4351ca1cc29a64e6cde7d564fe508c749eb9ac3752dd32a625a82c3293b76263ca80a1b2f7d79029c353b9b1791b76e9e6fda87833cbb339d9cade710a5e7aadb77b7ba8cba8af7d55acb0d72a275758b503210ac167d989e9c20c15f7a7f53becd28c6b9844480f559183b0ea63b1bceb00a8b36180db78cbd54382272016d63eb67447ef8d6f4870a317def1f894fca4100ee31824614ac88177109e2a2558cfb82aad64027775260fd26aaac5c778ec46109c5bc3e6c822efae750f4c8d6d89e80e863e9db1c9f6392319885593dfd5eaa4bb65c285e61d340e88c41afc5e81ec2ae430233f3f6c635381c98b68a89926ad43d9e06a78d09ce7dd9344e0da7061df9eb35086e553517c9e01c8afabc1bc919a26561046385c90ac6e96c065bbfc259913af41a51dd256d8cead9d935a3f4701cae3b1b7948b22098c2d5e67c5707027ddf5d7ea5dd4aa45bb35e2e625c61ce769ac0616611ebd366063484bbe4b2bd68ac4d1c0e88a07ea98d958c147cd16687f766a80854171744dc3bc59297fa8438ead7ae8b5aae7e4860678e776375e5c9b53ceb3d8c63897a1d9e51b0a117402c81759f169cebb8be35502a00395510c14a059ba0786577b546f744d9022fa1a3d696a0f9daca543b3464032f62dff3d29b38692a6bac84bbfa4deff3b49050e54edfc94fb0d41b09ca77f58b667b7d91192054f64cfda1be9c1b32135b038d791b3145d57150e4ff97d959532385f63f215463c0b9c356ae023a5145e417ad1d51e005cc08d053b76a0e3e42b2b180e40de7c0ab7a6258c0e638af322cac82e892d5c54dc4a350d966011c23c7274e0340ba9b6ece5b25bfb1edecd8ab669fb4b888c4cb1d74cba29b6c305597cc709bfdc457eb0fca6beee738e3bf42afe551ead8225559788b6e018c2cd3ab4bf04ef27e761f3d6b39a9374dac6c955f83155bc898c2e317a821c3dbb71d8655ad18eecbd013c020854bc760d0ff52fd03d5310ecc2a787d33be4a270818798c38bce6293e7b0835f5b32ef11d817b63e953aa01f2e4bb704d8afc00d390a5e0c66c33ea430c58774c745fe0d1bfd94ab6bf6e96d67e93785c187d30e225fe4f0dcb9527da94916402cf7e907eac7d9d2b0aef2075bfceb09d1b64dc6358ded5ac058ffd8bfc2b0315499929f56c597f601608c3a80a6421038366a4bebd36ecc71c0373e72e0d2e51fa73fd8793fc0c26dadff7f446cca707d730cdb7aa3331922a50d6a9fbe341cf4d3d8fe6d17aebbc19d5ac7eec7a62b9637f693c75e2283a6e1c552c029a93e7f09973e1f1d5ad4d0273cf2b797edb53e7c51c35aea6e4137d3ccd1ba0fe8e77ea131c0ad7d8d64fecf83cc6ba7f07219071fce940dd37bde66bcf9c18d81dd8ae97290e617e2fab197c7ee17b273b429ebf303943473966d7250003de66dd9cb139fe1bcd30f50bf7d5a2061084d5fb220250f12e33ac0cdbaac6952472bb29e458c69a0aa1c8a30ab245b01ec0ac65d517821c723ab90ea4e6c17ad08b78ca1f780147b302ed0be155fb739e80249b9672ca3e5589a4c6621ac29cd7cc82a0b477506c1e1c64e9cc150db14953d8ae61756da8d2eff8e949e76e33cdd81ce1964bcc6a1d60d8ce67491165b428dafdb995554ceb60560e81e16c7dcefcd473e292ba5e73e6f83596f1927037bffa7284fbabd42396f195093dea9fa8b01e8285630ad2bab021d9ea018dc18801414da9e210f5f107410a0a9dc011c2ec45c6efa3d1d2028607846e2e6be2a097193378e22c4a6b06a92a93d8e2d7d11e6030db2c8ac596aa1e564941ddf8310e56b8da0cf80daba452cc59689c83accc7a77ef2947c9c5287e325d6fa35ae588d80b21175d893366f69d9c834c485d09f30fa343ebbd950fce1cfd976daecdfa1444ce9c27cd06eb9846243850902a26539f94c7f1f76a60a3c59e4dc56fdb9f828eccd5680ff296703f9b1e09fb141f9e9970e1 +message: 73b615fb606ce2824dc904f9f62b7ccce1dbd7a56d40a24b7540af78 +signature: 119d6b04201800ffae308c96ad7cf8c89ffd5a538121718e6eadc9368d84e5691bdbf8bd498808d220224a31f6bc54c76568c2501fff85d921244c45663abe64e0a21f08e951c2a92cc60708fdb008180084dbf381f76359920e939fbc851d7d1e7374712a24e8ae438ed876c458aebdf7d87798bec7d2db0d85fcdc694f1297bf23a020d8831681c78f093ab34a53e4977d023be7318b1e59f527ae331b204dc8961b0433ca24696ee7d77a46a0ddc05ff54d2c2f9fc1e7cdeb4e01483f003237cdfa2c88094f10892df8680c8bf53366fe5c5aa43e972b286f4eb03b0d2b5f9e23cb8a60656a1a2fc21e901f800fc87074716a353495088b041850cd4e57a334679496fd5022134b2bb16f546a69de28d126f0ee60b2461aa6604106a91b06b3195b09a863a38ac5a82169aa1bf5bf320d139642f01c747346c9d90d4604d4f900feeefc06b1dd4a0ee1a2781c4b1c3d2d7311874c0dab907e22aef30d7ce2a704d1ddc230259edc56a6b33c7d60acccc099988416ce67c04b03750a54e25acc6e0ff874794ee47ce629dbbb0211703dec83f3c07d82779308f52a4aa1c820069c8d07154928165ec077286ff0b29f1d5a4fcb0bc2ef8638562ecda0eb9fc107c94aeecee7fbbfbc58b2b5f56ac01503d9552b56e72c2c6f7c324fbd56a389ff86e8bb1b243a788bcc11d11b72d0f665c50c60df9fb3baceed99b593f4fae15f8edf520bd6677f72f83c119c2e570bdd2ce25d4a1796156b131945e82ec84cfa66866a8633f210e25f7db124cc86e05e51929e77fc6d32b8856338457e01d211d973b2a5d24c18e54121dd85afcc754f100960d8881297d5b534bcfbfbeacf0096cf060e630b6563dc931839d4765ddba8c864bb3a7b412b811ab2c028df00ce00fb83072f37956d29fc372c518bd8ad3f9d57d60551aec72fa96505559e6308f3018649f82695b17089e1a3cf1413cfe11e66cac63d644b7e04c8ea5d400bd95521eab793ea5dc5468f1ac823a5adcd89c241b0b701c27d0ac4f9fb3f990d841cc6d3827f3362ba78d8c82407eaca10f0fd274f84b634c32d62f04a472b74243366b1dcbbc1d4cbc3465d16cdd5942563448f9938854ac9c9a5a8c7ae5fa1964c829a35fce92d5b9d115f389387986828b281fd95aab714a4636a435aff08525f97037c7d0705e5df222a930cb1b4946721a6d4e15f155760d239c54b9832f84619b4f31dfe0975e781eaea10c0ead519e7e3b873cd9f04b03c64a74f232e7feb8b4a47b4481a1a62826ef53fff66b3e2b0b730ddfd86cb378ad1b600672c75a65e3ab79bb824802f709a12928a1d5abc678f2bb7c3772ba853db5901c2cb08ff693815775a74ac4cae5fde9893a60e3308791d32cdce57f5ae1896333c2a2f3be3390c5baa392cdd915bef5d5c7cbdb6d75f37546b805f7f767ba2fd716c62e0b7cbf97159d8f4cc24263b2b887fe30f89e8b7f078bee9aa45611fb6bf10e73522bb7b4572ca59437f9af6b91015826979ff8625510ec12694b3ce551dc233722a1a1a4bab102632d237380014dfcc6e6cad63965888caed71b8d6a8ab067f23a751d7460272d8b45fc990704b2b661d1c1f83764e20115cf8418f73f6675ef16da1e48e2696e57614e795f2092eeb918f7d9d2e6aeea6a080e2383b326afcef6b7303a37983122ce4127589b6cf3bcba21f4a6dd53b5d02e851dfec2de7f1fdf25bd735f9fe0c7fcb77120e8cc66e508765ca7f2e8f6dbe77a3cf3c70ee8d1126ed84748a0a44f8b6c9d3b18f37b1a8acf62c145ce25bca999f47270a418b5ee9d8fdf0e585637c02c4b55c8b6fa14c7b9d36922fe05cfdfac04c48911bbeb3f560c114c37d9f32bbc38edcb863f005ba8ee64b6e504cb9d601ec1573db72b691734edc94a07b13a15888ada3e990cf377da4023cc2b3de19e3ef1fa46690313247765c0e48b29c3c3b83e6c75d2408409d8518ad6adab51d44db9a2b260a4a6afa080b1b7f5b4226b6658323c5613f4e9d9f6f8e95780974eaabe21f45268f5d4a956e159c3cc25b12d5e2056e17994b2c318b20036263d327c93e70f3bb1f825dd7797a8870b140c53fb900f0aa23f88bb6f9fbad852810108795158b76601c61c0d4120c0372e2cb1c7fcfafdc8734b29460c6ff0b0bda1bb2d82710abe44702872c42fe6fc08d744f10daa16f0f933029f09b4f60760fb9918f3d40193dd764e86e8da7dcb8a71f55047458d8471bb2932e722584fe413b03c71059fcf73680d412f67d9b126993faae9c510b9f72dda2a177fa466be636ee242789de5d1a53b244a50762b1947098a5dd1fadea886128bad4c1751a1b069e8bcdb6fc215d664e954323f4da175aaacd743cbe48e0ec3484fc202835e77ad455ea53e591431547adfc52f028840d33cd0f145ede0078fe9862c1aea02f4c321861f5ca6fd5e476eaab0534bb67e08250a18a7bc51411662b6350648704938dd9be67d1c3d6f3c0e3cb798c92518513788db4cf599c6cc9146fa888f0021ce2d6a2b4e22fbb702055911bcf60293ca3f2cb92b789fe5e296af804a958cf0835fbcceb4e8692ab9533f1cdbe88e8449e169c6d970f65d7599cae34fb60559002bf9c77e7f602e79da8994fab7ddc713ad24e3a2711f5613458983707c1078516175628f8f4e13f045a671d6fb82cbcea27470680cc79f5ff8e34aeff48e9e5a3f1ba6eea8b67ce1f857d192d947daef03d436fc10965b8e4f5538c683c4b62ac9e4830711ab8b18fde68384890a12ab7c3b18b49cc38c201249f271abe367c6a96c155a9c7468940d215946b1e31c8caea44ee11d2144a16105c29e71f9dba1632c5318a05df212a2d3f376955ff9c3ae5073bb92a7636e26fcf662f0f65354c6d9f6d3c7273f790a0932e86fafc6ea719a62ecfc728dcb2706cfcf934aa858645b6aebebe500cc2f7652881bdfcfa3b78bc14748b24c9f195a247ec8d7ae778893e994dfdeed72a9b11d0edcf7e06726f356ef3706ccef3746910876511d1e46b43e82e27e4b187832f92149cfab9a3c76770aeccc1ecadd689d6696a7d80d641b029fa23cc74db4b5b4609bc066e6176b25ee3cc7d719be81d43b0f55282c8862cd4075fe97de559f776754d51175d9bdfc57adc68da1f7553a4a8d5e10e1a7f2ae84b8ca40bab88f08bead03685aba27514a5cfad2a3874f9b6db00de4f20aee00704a30bdd752856bcd519e56bdc916cad48eb9a07e7ac9a3c0bc89dbc1816a7afa05ab8294a44db9d8f89d8b7c878bf81c806d191f7663bcca5d9839635b02297b1c0acd54b2f595005e100a107be02bd3d9daefb99b837fa45e778f69f809b9441503ff03516d26c01da2e6822b169d2512ba20ec89a427ddf69d0948379eaf754e7675888080b55a6d303defc40a1ac4a7e0357dde7e56b6bba98fcfab20842fbc6628b4f0235a9b385145b54640fd053e633775852b9643a85da442322e5d27318654033a9f3e5415e63d4584af7cd9a717c9028bef16d88a461c309e3598ac0e33e18142ee2338f4cb4939b757311c6c6d28656c709a963baccf942c49a3c2245e474f9dd680dbd60f3b523c303a25c95fa2930c16932122339bbeef17d9e7e059200b977eb4507d0f95e198720ef07a679f773ee2de7643d811d3180f78fae61107ec88d53149577e2692e324d1c11cbc755fd84180ee41e5e24c079217dc8d3bae4dc592672ff14e0776cf40bbcb6cce6f4fad579caa09508f61883115302ecec1ac609bc88b4acae5f74740e8e9935cbe56a30072500f2027924b74d56879f0cf3988c283847f3c4be71bdeead4e5876b68f2f005c82bd24a4fb19df51ddba6151478da4613ddc0f0864f491331bd727dce532acbda10d43499da212a510d1268a2f0ed7810fcde70cf1d6111944a6f52c3f7c110f0e067d9dd39c79191875d1e1a4421fcb2be9749f298761ee7a63419abd1b3fe30c2cbdd0ca28ec6afd376aeb7af4645b2bbdf39401e97e226a90453826eb8c2bccc9709babe4cc9a43d46fff1c5aa733f1a0cc72902a7ef8fe09afa21a6c172f507fe7202bde281ba063644d7af595c01694562963ba9f2fcaaeafd199181ea18629c0dd986757c94af0ee8d2e98c1bc0b57dc4065219e1a58885c4d9ba05f46cc1977775737846c0acc64ed45ea455a44f89e7c212c82172699457f25a0726ec3396ea281af908454d212c2cda000d8d776d7a2e29ba43b5c2cc9c8fdb843492e240cb0fbf9bf994b3a3d67b3bdd453fab660cb5db3196fc6da1df3d3b7706d75ad2530796a3c7040a5d075ecd6d23f56d6e659d2ea13ae43d5d4751027a6c2873c61689854113ded7136bfb0ac680222d114ac670cd211333c124666d0599a47e03ca6d5938babfbeff0f0e88876b72fd5a03f5a521fa9fc2eee6559a74a45cc58d918a94307e7c0a095f469948736ac77444c62b8a34db037a5bd17a6b6185cfef32cff6ff0c03e4d20dde1d63cb414a344f484bc28a329daf5a62701aa5214510857ff2e7a25b33e9c8e1f5f7403f2438d2cede2433383bed400b789b42f0b4b68c8664fe504c99098420106be90b4dc3275849c19e9113285c637426f73834789999eaabad00d18398ca0b2c3d80d1f223c4cb8cbd0e20d626ae2000000000000000000000000000000000000040910182125 + +sk: 64dbba1ed1b73ddc884e4ee65709c961ff377b04feb9cfa1cef66fdb2120e96660e958c99081ae126d1120ac2cca01269beb41815d2fa5d07334d9f29f1282e9cd7074a37750188c1e00cb3745c22e0fd18982531f6d51bd2cf732aeec49f2b8859eec45a168a78f3bd70873076a6bba0ec2cf6f12573c6a47aea615e6ed5636647186223775608162055517467486547878846487170651442766486713543884528440245056707406583552560416102717617658653024013470280163644346145633081452855107804126666574517820720832641671185500185272375878777534260031611112701073416642203160242472478855160710857070840141103151715464031623608771641556718480260427376875481435472856144054067082626878254126277534727028173854602112411632024626782311661847752226165027656654411264130502810256817216202013578302731773785238550507357060468864368367561168704257273160273033446115123748302672112603420462686860833388753207086160786268310315846285021360161387516748507564612621383042463016868202463758113831151863633714046102741785500720068825678608505564187244452671131766444225213200405012607178073715448631450185236385726183434032276737602521068127854212754838525113250663144127731625708134443402716811468331381573761140764418385610544201158132380355200422836723315221815786875020460482103635462065443716075138178584813312502833012516548305710717602158568354101162242265870571836626645118147460575263715366030443260476062681646151447516200200011118457774580258760877334685282653133251308755846271530035226102588760671003385653368322851184223042548757055017326416135646744244103441643433372188218431074818858036361577302263268340187384318722416728654781314046018411150547160701415224785304256321588588343288757373024720084817445452872762443652237858425348530518876428016855400780435672743385063682424830833167863636470261820768113404216738568838217853387880142403651867148815254222725173086138378078371300561145281527086117787757137233683876012552135225623120763106343577758657354331107317501781423247571658810855345378463632807411223637132200608581044060470652475517028423014462312060427577521878786855281761382768327784027228783786850255370024644068816802224311444755457786244588625476037306556858287714003602412777562741623425120284450583876357778252782585712738266652023146817712803214260580348457640243776702355248637777412336723208215828124004055457634717114507647406257073488825661526710188617242371082000681631522518537106710013471535010321767246368251830860560485032833310110722854085254568102340753215652816617426271106525562604321725853047543316358266458721104458106343468343176754657723077483842153287222377870254025347458435657702280182806604817702744767168056040524162782221461865078356366713127775225100384088166146475586222230846856610031570188676054760640427244814774331178882465226481861635443330628380051463230750560018443432583886874300842636177060028417421254667538618240803838478278230783120015657067630530774031148875300361514024822300647821116333171025623565858483153346766203336371061728006248215770840371148443478843288748034867051426300163528855211218222384736588471153322601072458171345748238678472200154547278518214273028710768337855424762844235886247b658af5af88facfadd7a012739850027eb9007d4527836c489ea5a613f890d1ddc97f615fbf478269911291c4e45a8a075b2917e2a3a1b36396c3a2473866f872066bc62d983df0576521b0cfe879dd4e22e5bdec06a94f4952a9d514c61ee242cdf93c6419122f68b6f27afdc5596d1bd17b171b06d313de72db00adac5c35caeef10a07acb990fa3baa7bc1e2fdc3b2e3c3452937a68b4e08a131cd2ab91ce822044920736bcccffeae6f09818d51861bdf78a3a74b5d67762969c17a82870fcc0640357b0f44697823738eef9e9623bfbd833e34c69a859ec98a6e54d5a121c47f0e888af3ea952282a4ad45ca745845ac7aa1f9579fc655cf86e935127955ce59a8fc6e712b3f32e949002f87423babb28fb6b33ce58ccd2d2fa1adc88170abbbb46be5c0c4436fa750fe8bdfbdff4bc1c4808c074549c998c97c627e31c8a65a633ad41ca76f78fb9d8c001d11c06bed9c025cd2223e22831e27c1860d02a51ce9e74343969dc9cf786567b37ff9d21179f57a382e2eb467b33550015bc584f2194f7cba990131500b3a5aec1fd3c1dddd747082b796df778724335383de5cd74d7d6ff82b9fc2d6d347b5917d5492a9b4a451dbac815a83ab56b08a1898262505f08bb7be9f9ac72d3c6633fc439760e72c863f414d21bb1fa9a49adf12291247457e7788457bb9bb34a0cc443626c51140500082d782256caf8da4ee583768f18338d87bf49642b221c2787073b0fef65e065c5e7e80c7be04666fbd340775b65fcf81ce0d8a08e7430f24a8c677df2ad05b3744a8cd99d7f7e670823b2cdc4d97f070bde4112ecaec79b69edf6f8221c0775cc3adaae1f3003c6dcd042092b4e6c962f54443f87a3752927a79b3fa7c95e0c9d26c229153d0b1822b9807df2e3e5d1f87e459ad811d4a73c9827674cab5eb0e6563c9f55f133d0d57b7b54146c97bf7da559a894392e61a98facf16224acefccebc57ef5eb112523f7342c88ae17197073c145e426ac08eabf1923f86066f6fb5157ba471051497580979d93ff96f6b98330c7608316f7dc6c9d5ab2b7f8b6395e8638d496f6684ec6547d4a657c1e24651617074f36771e2e80175a1d1c623df31fecd0599487d5dc04b4fb648068666f79217e31f626f315e41073d8be64643b0cd5e89ebc4e4d209b2155189dea2260152fcf7e03e1b81ca97a4085a4bf5fedda530b75d8659e4e89ebb873ed2e93cc68cc4c3ff0a06b6e084a043095d141ab0fc082e5e916831d780a1f48143a33afdd3aa6bc636120c7ff8e02b6afc0b7dcf89f40dbdb684c5ceeab02427dada3f8fcc0d6f53d35c097c4a17464ab00f8436c2b0a7f5882d7383e21d24dfa418d0ab5c12fdf5a3ff6a3a22dc20989440c80c9ecf1c3db246f254502eded8e0f3a8064532341dad93a2ec6ac2750676f8e49868fe7b326a43bb88576229fa0c0c0fd7c5d3027b8396f96f5aeab5e502ea49243eea605b6904ea235e249afb2160f3fec53536a3087c907f3299cf63c0e714067bdeae1beb62d4f984382ea4094fefd79d961cad00b677f558daca55ec9f18d32020731ed5dbfdbf002f34d1b4ff2a642604926f0857350d8c76fc1d3428f55feafc1ae11fb2ead18f899c73b74dcffd9dfcc9332dfe290c04322ac922ffdf981d0187b3a3ad98b217b22e471718ef184e632726629ab97493649e94591330738c1d3e2193f69da8bce056ad9da520cbc9e5f926a8357aa005f354984eb2f7a24946df871ca3f91187ab7bff002c18a3e966802bc05959a21f782c00374fae73b39ad733a278b13c5f02f9d74f7144cf230f1389227ebb652e7cafb3663a963c28ab58677eeaa2526e36a9158ba237c4c02ec3740dadd1c37ffb9e6404e44d4f954354369d11e88c6a5b4ad51a38df038ce8883782086a76f117977612d2e49bf1c527ffd6bc1642cc1d2ae1f9f8d690a235ea049fa5533599e624a160e44e99a055f1fbb733840f2efafaac34717e28911e8c438ca882608dbd45e2e523125d10a0c601f4001e167e257552cafc7f74184e4fdb988cbe978437ea4f8670fad864f15d91462809ed00ea4ab89cab6013b89ad84b9d78cd71dfd5776584cf45d3c8aa9922121b6c22ee382516d37cf69a6be5bc7a21f57b290006461594ef8019a879e3364d22250a5a724e155cb26647b13375756b5aeeb2215faade8e51040d30cccd09b1a5752dc92bd7b4badb6c90cae8b8bfdc50b5c450e909b7ca129eb099f23e67345b447ceb70e437394d2c17229a77f75ea68bdd97ad072234831406967c8e335daf55af3d53b0783c35a1694390266c841a97156b26a776283f62dd9b040f80ab55b9714617dc634ae826aa909acce53d5d50912c1f38497f196506bd9baf4c6c8dbaacd83c308c5514e12adadbe722b16262d4d0114504f768ec4a417a8be2f2dd95f4e3ebe07affba462391aeeb2ff915ef1d4c4d72d1a4fd90454b73e01e8e91c160baf007f1429ae887d16ba1e339120a9685dbfb77244c2aa22c8b4b38186be688587c2434ff8eb31047adf8a3e034932e6f2f0c8f1137d2c1a14dd860ffed14f0c47ec1c9584ad4185f697dea4aa33476509354040909e2b1cbe7a8cd8f09b0f8f2f92a265a8395eb3ed21c73b519f14624d725fdbcd1cc4dabfa024df2723ea0301713106c5f60f5c6001598b992e1df5a6032286ad9a85c0709db42e70d3baa77235dbcaae191aa602a17d817bc4e52c57047f3383afac8bfd5588bde8f5ddabdcca739432a68f3322bb2fccdbf93995352d842722b3ae31411453b4ed09f94a111117dd42c48f74fb34e42a0703f047779b5a5513f8f919074b03add5496b43c927111a72d178e860dc9685035ffe71cd1670ca6adbcbbb60692dd78763208e588c9af773eb9f0b38bd0ff9d0bf974294f92265c92d0a9f0b00f90b8b531a8a9ab39578a7caa185cb72ddac77a3dd08cba008e887efa6522a8c82f78ce0439fec2588b8fcb9b8949078a0ea27ff55bb5e85696cdb25f8fb16a826ab5ac74fb2ee239492482e118dff232cae51c296a757a96361c85ca8fb339f204902beb7a00bbc47dd2b09128f92f91fd2cb5a3d0553027b16037a9711521e5dd2ba772b088dc51524fbbc70b1bcf07f01102abb60e3c1cdff1deaf2732d93cb37eddee8a5200f85e0bb68512dc9afee27716bc523d13a8a09d5f2df098e02394e1c8973a7ecac7dd6f106cf3827699c42d916eaf5458b7b780d9c25983adf7ff8d6fc97b5a8b237ef2cca5897cb94ac10ed6a4711dfd6071eb70306988e9dda73e7a5c175219528d5cbef4e7bed0d73b14f96a23562e8610d759d218c1dc032faf105d0abe405726b2440e63e585487339c4b0ee5a7c787c3ab546be00b7ebd0c0fe4ac2b990da4d28f174328b813f692d268c93a9d5d0237d6a5b0db48f6e6eb7687e03e5f82716f0369e1d9f2540a4b2e99ad8156afc82561861af507001a1595930b80724068d4e5d940bb2c88ce977a46d62ce0bd4d514162e54fb10bb8a104539 +message: 31ca9507861c7e957465f59a4b7c439790a2 +signature: 0536f68d5454cdcada986fddc2dd69a93b4218c55a149856b6b9cd37c152004ca961b2bb163baa6e9046d6ec0bc27d8ea7f57607ca6ff5fb4f8e5a5229f7ca9de39baf7a462961bca5e9485ab68ee05bc4fcc3267be77fc21c139c59b5f32cc138011744d245c4f6d90adae221c8060236229e30fa2db6e61fa23c1c0c30b3bff76469477204b42dcba49fce33872f2547b8e91ecbc11b3aebf82fb273ca342c10f16c017a40c64544c5221b8fcdf44eead3e70ed2445147d31f1ddaa834cc6d1f8400c84ea7cf2846ef0bb0884b35108b116a33fe8d8622d8ea63ca8ef700dc5530183e875dc3ab101adab139a587d734b9e27cc467ca1958da0524814eda268b0741cb4efaedea0f25b9473e3cb41be93292ff5297ffb00b31385ce61241bc8e3bb63125f85a823dcf776465918467579f25982522ee9360e925c3a9e2e0125cbf4af6eac5fb1d816d1f88dc2fc7c43985ef1021fc90c290ca28d3635be87aed9788fba995e4e16e0b6939d9e4e73fcaf55e02acef6088191522e99a275289451e1430b7fa83f395f6e0680403b7c81e53a259328c18aa78ddcab216dfbc3fed92d483db47f7118bdaacd654fe14a6296fedd127335e6dfa7247323bf4d0b6c8f1df3701d32538224e77d7b066ab8232ce7e0e9e6b208e3bc77cd8aacfdd09fda1b10ff2be460866b4cd9626ccbb46430f85d5adf808598871b15d654a7e187fbbf5303f5996813a47155456965c0deade7cd8191ff6fb34b78628f71ba398d0d7c1cda8ea91c40eede0361bdcf4abde8536d0b0601290be4eead9ba08b8160f17342093f4598e3990bdb9d1d3aa1aed06927e9eb2495c0d840c4af5233a853f2602779eeea88e088d657b5740f892eb4f9e26f6a9e23190446490329a5564cc470421fc06855c314f2fc6763b3abf584be7dfb75c12eecd2213073a6c5d393a6cac9e3fad199d196fba710cd08eeb57b8fe16d6af859e5b71be83c39fc33cbfc2922c538a656fd7b6848dff93b7a98ac34fb56974d9420c8e7e4a2c81be296734a306c530dd89a29363eef14aae6411804ab4563934c917da4eb4c4685a5141e52e0a7cf59f1e119a0f0d9379a2e6994f0c5e9fb8f6ffd66d463d3bbae47061aa23584ec4d9b9a4cee7925f58b9a4f3f97b35ca16da99169668f556f346068f4f95782f0f094c3ca55f46faa8ac4cb8d9233ca8773bfef110a6cbaeb0fe7cd914ea0c54e1ba8abd33d44ff5760a1351f03ac02f4bdeabe8fceec1ffe81913b7200daf3134a89e4b1fe609ac250b994fddb989d8f382d62dbcb88bbeb926f49930cd2a5ac4ac9f2617a1a9bcc975979618aa4669f86215135f32d7448cfb799fa926a49e8f59e7725a76354a9359e87b54c4a6d68f53b9d535701e736a566a298a6b51e6d5faa6522d92f20ca274f93f8ea82d2237c4fa07611c4d5d980a6dfa9b841bdb7caab30102973cd05a4e809b372bcb4d7e0e4901988b3b808329084c8e0adee1931339925b8d9bfa3b042a7cd520acf1164ee15f5afa0944ead4f10ee898a74712139a0806e169c0c7bf95108be3b28474ab7a34cc977398e3af7ebf62064427f15df9143b60a6ab5604df0706580bda35a6a3658d48a2f3a9c00d62e576bfee993961cab5a4f63efaa2049fd3c7009876495b5b871efb0ba7350aca426634825aa3dc8976587012b2edea96f970ebc2c41c24138f23c2eac1c27b7bc7b621bba35cac3be86e8c414a80a0fbfd9b097bc48e4a97bcd2bf18b28eb20cfbb43bc02b1edac5f851795fac97abcc91565f2848d4b5a8165b58f03270bb6c702c3e9fa799f2474f56cb5548411102f98d08a59e7a447ad6dbd8330c7013255797a4b8a3fd552f5fd48b985f8f70f1fb9a5d074897b82e47e5def25b604081c00fb7197a93851b25a5bf98709762eda9a4d8e2ba13693bc26600994ab4b0a18d913bf76b726c365848a7ab07f6ce67b9298bfba8405d0aa9d0d6de4bbc5379cdd044f8ff6a986bc6daa41d88f2141e134918be406107a96bb762c7e45737c584cdf320c24737adf1b43c815e824a8c16565cd6cd90ee3a884d65602227bc28e3c2dddcdc545d41ac4ad124d5f9691f2c4134b3267a641dcd34568397914fb3ea41d4217e863f086746a4d79e5ef3cb4856bcd87b6882a12c1950b67adca6668b8b123ef914acd938c124eaab53d220d0369757534eba47944c603722718941acd9b9a536339b69d776ddf8325250c4bb0cf73e8700d3b8298952c326f7f67f7333d7c33c521e5913a91e292c8ae4ff18c41bb61aaf1ce65feb42ba6a6ac039b72552c0cdb6b398276dc279193c35068409b54d21fa3738c617f1fcc7ca1f15098142c81aafa6e81c02d58400a21b7f740df76c838e43ee1cddc86b0dea748191441f7e58b17b8dbac74f20ea516fb0dd16e9dd02cc6018d8bb16ca106bf2aa5c56d65df1be5436be1001ba32baae1aaa4643e412a973f0eb2c12df15233711c69576ccda803eb495043b546917bca78aeb85e8fb5f03b146a7b971e4f90f72db9c26be754e5b0cfa06882ff873350126ed4555a05512b3f64cc19986d9b898c6b79136d76a0fb1f116249b942f2b1b1d801802783d73b37c34bc96a078bfe932099754b15731d46f36caa4c73c37fd30286d08e8c9fdaa119449ebe3b11cbb664d3d1b452d85772e9a16391f78d50861bac679eeb1ab0d689e1f877e0a6cd3722f08557a5d31bf1833278474eb0a99d3cd9f2d5bf6df2f1013d303f5ba20ec3398c3dfc0f843888fde40f0afe374de9eed497d64acce7e7510bab1c5c8faa1bbc31e57c822a13bd01a98a79934937a978daaf6d28b47a6db79fac1e4fddeea7c189a24755cb6ac7b1d3ef73296f5e1a0104f520aa339803db7849db48286a909edcf8107889d1c0ff8ab549564f6a7c57d68b40b9097a6aff838b49ad3a8a206973867c731a2a3dc9fdb6b194a48af7df8b8e000704c5aef9a9626352a47b95e714fbc84256e4346978befd2777532b307306a017b34d372c9f873c189b8289b78ccd701383b9712b32d0a2cda216664f71735c87b8beb2e9a49fe1e783bf889bdea60d59791474e1e3ff5593e210e838e0557e8dfa9b23e509eddb1e616d8f15de99a6264b5abe5f4153b70491ac8089e3be2c40d600a703f5b825e7b3adfdb5aad8f29367fbbc0fc66a89f7cd215936c1f2a924a2eceb5b1455c3add73154c7d8ff3704e577d395648d1c00dca3751db5b3770f843369babc6b577696d6460015a89b0a621ee0176d43f5ea8ed0a243ac5d0a4728841b2a80ba49d0cc9bf61592dbad902e9d568626d805a7c6a148f538802e76b82455904d5ef27dd719924786fbc57b27501032c07dc2d680c3769ad3a8a1c6d974669def08103b2a0a01e684609b7de54f30a8a553c0f0320767df91f61f110cb15126d40774f01a6809b36a27f5160c7f83720aedbacbd02cbbbe2279aa7bd1c10f6f87343224eacff4c77644e3214c77091faeb01a2e9faf16a1f539f4d9060438204dff5a3423f5b99b07b3bb8d7dab4e4c7acb96a572ac984f050549d8e939b995747971a215cd95c429e508d342ff7b93c1245dc82450483340d2be8dd7e4fc635851319e3499053889877bffd6ba7cd530d15bd20942626003fdabc1fc90d2390791882efcd5664d3ab33caf958fe2906b0690b049f9ef82989c2f56c55f77e3785669cc5e0799b48cd7f8ce108a76d467b10d9668dad55bdf6bf8480079eed3d986d7890c890bf4acb58247ce98ff9bc5c1f0a5e93b5b14dac52211b46f615adfcd74089d03af9360109a9d8c5242d69294297858428dcc22214cebc300cfb575e5827ee460d4411515ffc17f4414046cb3eacc03151ed093d4489033ca423c560f19a32aa145ca1e045127c5c15a9c9db43674c97be1d3182f0a54ee9cfceec527b64d2b893a00ededd71c6a99fe196694612a9771ab21d29a822f80870bcce89a478f7165d33e050b618c34095e84ff445f12aa15fc0232c203215106f45cbe5f2a5d8293d4584bcd398b060976688a04682af9f868f58a7da659d2fdd5196a6d750077bec9300cf315b7750d940ae7b84a12e942df05feb842f94483699c35fae74c1c01a7fb7bf767ef2ffc2f13b8c701cdf1eecb08fa046527d894b0198add88eccef5eac5e7bdae34bf1e295ea83dbe639a99e982dcd17e388705cb91d1f55021ecc23560f0b49a730be08ca285a93272536130c73f58bb6e1e30830f831cff69fa9377db5a6b2b2a1ac8714f032cf92e89bde5d7cbd6fd6aecc4a49a5616c3d9b552d3945f14fdb09300e8e3052bcfedaa2aab83e72020334bde344bf6e49ec80a95aebfd41bd6123915bef5b312e1af5800bfbf25e314890a53d510004d0e174c0ac3673d1f6ee7bcbc08f9c36a54f682f490a4247a41ec31a6c755fca1d365039e983ff959eb17b553504a3fe3365adb97a7a30af164de4c61409e112b4511aa8f91ccc75652ffa342e20f700171fec5e7e275f0e80f7d25cfc1b223055ee262916677444991387d5ac475d01b3f027737cc4dd6b16d0e970f6737287cc8b0ab0b6b34fc26f1f7640f3fe04e2cdf5e73356599a9bce004978f25079879ad2ed092a3c62979fa5e3e93c79afcb1148768eb9df00000000000000000000000000000000000000000005090f181c22 + +sk: 0e3f9d4ca15c9a5de43b2c7e9e9895928934ee25bbeb2a5cee2f6ebf07040dd4d1b18e398d4c9f6c71a71215fd68a25e157fe5e8bb1aefe55b8145534499baa26f82b2901c8a66fd165aee117c11ad0d09a070754f43a5d756ba18cc7f3fe51bf00cf9d3044d7dca8ce6d73a63cad8e8a6d96fc96f7ef98b9e97c5ecff836ebd680317176578747411707362056364211376807764328885445686675060468273117702634845227030785876066626370807224664111707073717686766034181418640778626100862768007108745075468035572046686702172148761617464637358462863565007162801851446817315067283153251266220647663802405721244748652543803135887140471078622743762253542301383280666001771606055881486538313171106271227541840675474832443063424447406685641101832775635278044773431105232330320612774150547474204643521578704815021164057676704542712273760164376888333045021752755406346534183774604662125546211475053451230712668366713231057676107573344484744288763042346847220425686728885243547447027465142732562861113071701264428504318881643731608653487448582851002050567510873132334835672836575144221662130814207566788426550744325858160451013625514366282002213215816203773153737483173002246106248522032117073354688585306321751618624160417082604047438346785750052828878042180287760717741552546320500863787688158685713866455567083537475514833287647786426256534558165736547465722412540807355866760302756231721686183410405222634814768145818525210130561433201465548803574231100103316334132168178578841357850360802204120683441840487143364101504303053800301430341724408577106247010657451283028078472047105035618838214633483748231050537105627244507624467644256617152842055548747153888525513720824150614083450700148401817460340258501382818227270573545620220582455212534384324862780344213381300060322863040703362872114120464872818538468227438343318014823521254218375146020524262483815863361480732412030738865457404026618410156764274106163373275432708320241746648435730607443464033568506302021075822253327346222038362018768624477117148436102630040763572487365588030302472213512126610452105075334270831104358525660711304440727731412162304644678714583152561576410707443733301107122587115843545017863102030241474630045710202822081305244516513825100183420138511061354636586625722032348743453305276010331426137668627470545138056326481183331235848307740040623207448103106747785411160140788715660637470415716201336772383321410380418586471605548371136850388686384885563452410330147127123307684841272703071721016807823148834710285477312026546874415045621321484203807387731130217004325327000178773063268162165657506735808822476247780060314077436375078760137271508107115487325567711540732188208281417365143030008230877558060175456352048580685436752266410241724526413574618475257168604253746536282507857423041644633314406808208284138335683035828332112657246708870164411784685817073273021001754124364721645827678556215070468207066305052825000480044603250570138810045046558430537742310886812250303386812217171005221405400551802461862373766865164158748787361537688880423730877671710438850475087377666151806867128535837831730177253088587622660263431782411722530332616700828477688874701783265400527820171148e753bf90e1069b4b2c01501f892e48f80e09c4115cb2a8408fcdc2d7a6cc6804fdd9a00c9e5221344affc70974184176f9e1232176d3e2e5c9d1052b912765d7124956a728604b13b2c8215005ac33e872ef47069a1c1991247f42f8f7dc9b9e57081396472d3b50d34d5560124cdb4388a78e6678e3fadd09b7cbddc6113c082f4922f7e2a23a24829f35d0e5fe30b547ba8daa984b2649ada9627c0703e9b93ba85dd7f9b40a975a24d24148e64ed5f75bf3a7d83b9d345c67f797e7edc1fb224c25292b540d02cc108226ba86f2bf5c92c398423eaf41c26b96a1aa90b3bd812040faeb8e2a0a3cee869ed0460806c4332dd6f799a63f4145d0db8e966d41f64bed3310f63e34cb098c979b3b14d1ce1ec71b0336c79dcae75559afd4ebbb5a60b64b486a8f81a4899091ff44d2134dc36acf674d209c65181066894766d80f737d6eded80c4da78eec92ef308469abfe11c8580ddebdeb36b77755c6808d5bd8d39974e108d01c2a665bc88daa9ee57d4aacc436645d4f4d5929e3a5a0ce7c5bcd95c67e66fbb9eba9ffa6e3a96e0df560dd0c98ccef63186efaf8c7f1b681dde8ba2efa1a6e994cb6c1f1a41eb603146d31e5e33fd0515af0069324e5ec28c358226f287644cb4c812a6cd98cd3763b7b1898fdc8c001e68d07cb8f005e3d66878f165b66ba308b6157c4152f9183b2dfbefddda59cdd3cb7faea6bdf2c40ced146737305d8bd318bdd73706df00d59e3c1cd785de80feee5bac9e5c59d871f3c4120cd4022a19bdbcb0acaeaa0e0ecb0940a22abb8085ed0c1ff3aad5b4ca23bbf4310c67ecb3325b468ad37da58ed2678b689b24528a15eb1d5ddbc6a0766ac9fc3aaa7cba7b1b08a96209acfffb73bc979ea9f000c8f4fe0e64388c86aef929fe1c98317251092031907032377b0b37ea768e48bb8a77d7ec251db165ef03e9a68e79b73c6afb9d426eb86cceb23b663dbe338d4dd9ff1a55d528cb8c8efc50d715a150a6c1d731d3fd3c864c3b3bb4ec77fda326a3f5b55a4e2beb1eb18a74559878f27e5ded2fe7cac12c611bab1b8c158ed3f421bc53a0fcacbd4e1e840bcc324966fc98f51e1a31dcc000e75e607dd3ba9363af2cb735ee7cad1d96a319b2a08674c9c3a23f16d9a24ff270c385646b639bd0e792fd26768967a4dd488f5e59f9a6cb40b5e28d2e54587f47ce79d4caa26e9dfaf289a7ec86b050c315b322cb1fb370c445ddf416d101fab7e8626871e67b93be886be7663e24ac2a216e622666c8f6797fc95d413d9b6f15f2e9a98c282384bda32c4ff408ff744fdb098632f0360fe28ddc53f9c3b101bf6e90b7a8b917352f0f596d379b0129433d595bcf3872f9f77f107a61eadcc715fe83db69eb8820c96380a33460b19ca7f4d8c5081d7bb185f2ee2521c7fcd30c01000b8a64af0f273a4e18ce7775723ec995036dc1cdfe592b14ce074615aeb10ffe8a350d55b831448c84d861c89aee571119d5894ebdb6df577bb0b3e465db884f723d306c71897b78bfd1e832da0b9380753f5fd45c7676a7562832b1941056a6c422b48958dad652cd508c3799f018d6390c3a0398f5efd54a59be61196511cae0777d502c3d2e942ebd20dd21a76d162654db1e4952c2e8127a9081cb90211657a4ce4547a1533410fa5538247c575d1110c938ff0e03dfb1c808bd4b7718117633f6da157b7b81f2772c7b5e31174f4702be55949d4b019e7c72a2d96235ccdbea98fed1cec326a560e1c94d02d1c496dbb35342329d631e77bd43ad7c15f60cf6167b0dee52180d34001c8df881a07a38f265702f9751e5b7521df7847b784f050e83c4c507feeb6fdc9f5d7fe7c97d8ca603ac2477b722b6c59c87ebfaae58a88bb7a98ee0064b8df24171d24298d3b14b13d817b976a382041e259cb0cfc0e8cf9b2e8091a79bb0ba6dc66e03b12f07197007fedfca3ac1f087adbf9e9cc431f22427a6c1896ecb63c2150da507964ff97df8327a418c3ce57e48485d9cb63a54218126b76a2fd9afafd0c48dcbb006d8fbe011c7005a7ae458289314ccdd5d8b205b4733a7342aef7c3a281e42eba3d202726346246644e39f2a61b5159e0f1fb926aa3f8ac189d713f268eb45a827f0abfa1acf42039e15827a7107f5437026f77fed8610560ff764606e725061c91d9ab08f62d769cd2c901a41ef3cf8f425948594507c1c30a18d849d8317e1e77588f2d653c317bc426c91f01c710aafc3402e3b26fb702d2278ddb90872fb973622a68b2123f60e8526c345ade28af5f4bdfee2f370b9f2bc8bd027dbfa6b6eba273e8eb8199b950a8c983a6ecb06e4894fb1e4928d7d4452f18462295327f8ce95864ddcdbdee84b90567a48c54206ef5247d93d8b63742df79df0cbc426922ff0085f4a6ec37a135f32137d54b6171c14fb7f88b6bc5cfa506e654c723e82aa84b2340d620b7a4679257e9319234c28d1d166e05d30b03edfc658e587703233a9ca8406247f53f08afce93823def95a2f5a6c3ecaf809e2b0954a90457b172adaad37a5f899c70f639bb10b3eaeae5fb762997c2585b7b2e219aaf1e5e9b17a9a0ffdc47718aa68a4836bb829f88ad1362297f5288c9f0df6427f85a3041a22c7ea23bc704ade12ff7c0c6218c524c4bb99e85044d8ec9308966af83cb35a602c86ced43bb05c8821bf14579ad1fc9fd193e45fc1cca2f3122dc356bbba125e58670dff59044ec2cac8041e5776cc4a9fa6a9df282d1e1a3148a870cf7f933d1b6e00112e94aa74f4e8ff4ddee02f6f8e34217bd189193cddb75c8bd8a7a2e8b9a35edeec3da689ea0ef6238940384633e0ca15e7f2f45cb5d68aff42f66e6a0a2191b7dd95b903168aa5cc2c83e40b9a375b75cebc414140ddcf8635dec199ac07089662e18ba3c9b82d6e6c0c2e95b12e348915fc9c476d3a4f1c31252110a8ecf541ce3507abe8392870d1cb2b22701bd193ab2e87983e2936dd3b4cc8d6ecbcec73e4c9316eb4ff68c4ae34af65fb26c92cfc561a70eb083185b944aff933807787bb0f04c2d57111fead01b9395f277bd356d2134facbff4786b56e0fc464866c2a8299babe5750e0bfa9c478acd8689ca76e1ebced9335131d16e118e1dd0f96eb68989da9e0a8dcc74bde265a7452294330538ac85eb5f99fa8c7b5a13ff7f82d51b851495383c4375f4bfdd01c14b9d9fe91b177b84a67f252155a41707dcb65aedaf5537cc9f860304f0b19836881eb5d6e2df1bfaa213e9f572fb4900078949389367ffec36206b7dade0cbb437f1098ad30b403635489a509660cca8c59191472877cd0f1eef1f291559f8e0165e7df4f36239c12567d9b76eca5ca4f67c6dc65699519d84a1bae1e2ea43c66612e8c694c7bc754341c7dd8da64d9f58d2c209fd2f2942261ad1f67817dfc9c5440b0496972474cfc2d9fa9c51f0a7a192479be0d4632bcfed4b122d30a393c40caf0d1be312d59034af4ce8e764e3d929a6022b4daa1170a212e0dfc648e5fa1b748e2e76b7 +message: 1ce34733e611226f66211dc29dabe8ff7d +signature: 4c0190d92e195b3c941f2b72d5a96248425e82d7cd793abc9177fae6b596696bd66a8032990139358e02503e3dfa72f5cb5515db0f1e093c1c80dc51c55565d7e009e68e2df11f2b4eb9aa8cee56cc5151ddaff0dac34a46926ba6ef4ab1d4a27704ca7a192014b94404ffbe6a29f15b10c70aa354740b5f6b54d4e672665d9644a83559d7f1e4ab1e5f0ab987381207eae8f90f695cb4b71952d7d37e0a084a2f0e4717fb70c71bf82f8fefbb6343928dd2a389554e7622372802986cad94c65baf48a32c5019082088f4e4c9837890c967c6efde0aac9e71f2a35a990bc1a24512a5fffe0eea26a7292576f8990c6d6ea79e3c4d360d390869b5ebe31dfbfde72ac2aca6af73801b7e1ff75df3a69049cb20a11cebbfde83cdd8e1391b94b85f166c2c1de81e63bf7f42aee1d196036f16c914dffe71015f453e892def9a062e5c259c8e3f56b6b116b4d6a891053216fbbe8fbeb4a200fda316fbafe181ac23ea17e5ec33bfc7ea9377bea8cfb41a06df941ecef2bd50af73d9556ad06b01bcc5881d446a9c25a65a54df2fc26150ce245c112113e59cd0c6adb17f77f477629c4fa527d7e0330307c98b868d7460bba4ca5c6bc73137b30ae67bc74194d2a1b0907a72ddb1509c746816603be744d8bc40ab2ab0e240d010df33caf1072773c2be2c303cfad062ea210f4a23c9ff14e263a3d2f1b38b31ef3a8248fcac82b4656a8bfb1be483560399c4698a29d4cbe1a74797fc568998799f91c908add860acc368c16329abdac85297298fc361e98374f2b0beb8e215c7d8a92b168b15f2fdd843917f06111268fefdfe3bb9d714908f1c0a1102ecb5495bd502859d3166cb4df5f135218588b68e82b67ecd70bb0028e3f43192085da16df978ddf6281d8329d79e9b3571df69c7c67e2816a9f48dd6d7f93aca5f01a7c363731e541b5874401bcfcfe7521f4c24b3ea6276500be9515cfc5a0f27fe8e516483598c96293cdcc452cb3d8912adc5e87618aaa420404ad2f0937438cb48b9747130bf894e170da25cd1fc04a26479c3a668abd694eb07bc27866708aa86db1a39b3082993235d02f0b49d35009b6e6327fa174c7bdddf9eaa0b9eef7c6ccfaccc489d432ae9be31e15788098f0017a3b210c2b37f2d187baee8bbc5a88aaad33091e6ade26c1039193e0068257fdb2a9dab9e7637a4b1ddf0088879c15e993a85cc47439c5a1e43c17c859b25c8d9decefbe3fbc3a014a05777db83cf0737e3620ecd699671d0e1112bf089ca39dc70abe8a6c46f0b49d2f5101b0fafb856f9929d3773c58151622b8c74512643bdd607443a9230f5aea1f583c52d726bf1b899e1a9cb4c73b8a7943d9ca4d4934e6f254689c5105436857c3b91a8c20309927c340e87dd7bfd818dc3bc17fb012b72a5628ceb3f4db0551ba4ebdcc2fe67a0e8dba6aa26746ec03b1f694e8408d7813d5cc8a483ee7322d3962d6137c90166817877999cfaea6d7ceb23067280a63ac180743d133a684fc05934edef60b3c826e862029c300733fa8178dbf3f6006d0e999aa7cc420f1a027ab89a14bbf63c92bb6b3669e449ba123dc46276b92585d694e4b8a4a702109e405681df68a12a7c48ed4f2c96cfbe0e689a975d86bb774fbd0bb7d0eff8ea58312df0d29e7c02c874e0c22fd5ebda7bb7712423d770299bd0799068379664a9dbfc0c7f76294339f75fd959680215f27b53e685a1aa7c22f9134fe9111289634d459d9714f436b1f6b62ff560207db6a17e361ebfa4d542fa589ae0e88f8683a00454255dcae16836712f9332634bda2e6f39bee1a387ebc03a5a29a236cd95fe9db30f3605c250716cf04778f2a4cacfd50a4a3c38c4283b1995fb23176df6b68bd355ac617e33b1ddf3c4cda72b87ff7c97c17a5a41e5dab03c405c6a163dedfe815fe365dc88596bc4d8e060f8967fef3f9729451cb8657cd769b510e6fcc8b22e8b410a9c8d8fdb93a46a8488294b7320b876f1202aaf6881fb67e214e55ff2f2de5393209859d75fdf9c50bc60e41ea2fafdb06ad768a6453108bb1192d293447e46dfbb5c25677291591a189d6fc319f8e828b8f532f42da878cf03e9d71a24f9bfa7f7ac9a4b5d87b3d82ed0f29148d452bda9baa6d475d3fb7698cca0809f5865937a4d45a1a859c5a494f5aba4d3617d28d8e1bf64e6061b269051276baddce2950ac69f684d43c05a1f6d13c31ad9097c4e25419b894bca0818c03c620f165ff374c547ba9f0d7906fce732f94c57b818216ec29804bd00c8c15812ab7d2fb352d18c504ca6662a894900d72dfa430459ab0395e820dc906e3e4d4866ea772d4806daed3e099a0caf2c68183655551c7ad6c94f2f2453be7836887fe37686195a0d6aebb6c4a8560fb6a0acd83e59ecfdc6fc992fef253da8424526ef9f1d886b52aa6b56cb4a028b115a2745809acc6e7ddc061d2e631846839af270697f8360f171ab292f02c9b7f83e297c69ebd0911f19318d09ba90848dec3638da71caeaa7cc160aacd349b6835ce79417923ea7b7d4794adf6b217643336c10bb232dc3180b3b309ba334fffcc5491fb8b540bfee11c0a546cc8d23a688a766f584280f7d5cfe7fe464782311db008ba00b037f6de3c1d35bccc3fd6543e213813e1419b9fef7a2becfcebd6bf69ea0c1e749bd5d024594792a5d08a651954f400eb871736d47b84e8e8bc58f1df54569e3edc176faa115c563093b9b656cc67f5d397baf24bb35f749be6f0b1518f17377cfbf808304ac108e4a894a9070b72ab6032e894557cadc39a94d300582df79f2a451e217c978f7a6acd0138c355e34b33a64148a99fb64f3ad76747a27f685ba73aeaa314f7a936b132b9190b2542dfffc451dd49341d93f94757b45fa4ac34678f80f268094165d46d4e52ed8785f0b80b01ba29a8659fc68d4d70512b066700b3bef598bf43583c58fbbadc7f6992571b645a13b9b96e737e3c92c4dd5a17b83d1a49733da257bdaef1629d6158ecabeab7aa88a2e2e0a6292c43c92ee64e320a883fb4a298b36a897ca92493ed63054126506782c491555fc568e08027c89c604e2d80461601667f7e2273a017a32563a38eaf155c8c5fde9b9f421c24d48869e91f13166fc7ebbe7062f035cb10c635f68b3a587bdcdd69c0415cf1f72bbba4894ca8e5d9ea3a1883ca5813bbc777419357c0f2a59b61714073dea261697d8f746b5c2f8ca92df34d774eaa6a7463c8b40ebf898466d0ccede0ff7f45b595a4e23165a0a1600dc5a6f3c601b702a90fb18bc8484e413398fdd0c043afd975612a175c9d72c29214de434e9c425a55204e9a26aefe5bea78f675339fc055ac4cd3f0308986fc54f03abbc5f24ec7bae8bd031e158b08d7fcb2abd4c5de847fd28ed82af2d20cead0f0bcb53aa7872c31d8b6594823e792fa2012ebedb14502b75ed0186cea12ce167eb169bf740021c255b79fce2ff71e91231cf6603669e83c2276d7ff9fba70efe1f0e56b4ca9b85cebcd036b830712b7be350ad3b02fbdd76fa22c225828d643bce228c15825c671773d4eab3278b029b190e1b98ac871d52c24dd63afab353ea0b522d96998eee930aeaf5272e71dee4a80108cc5a63d4674f6b936dc2c46f656cde891fbf4ef5f8f3bbb2424c0ffb5f9442ad7c8fb49c73a9238e46c347a6fbaac00d0e74883453705683e20bb1413c8f7af7450986db1a660d6af0d89cabffa1c276cd9cb51affcd48fce794d30a447d2e98c09cdfffcdf47626d4d3fee97dadedfe606a795af2ecf79c025161143802f3fedcd1dc48476b53129705d4e9626fc4252f90f4e67d9c99eba690384e0861a78087d0a4fcb800cd54b37e6c84fd2ebc71e61675fc6c32f0b4b26425b7676c96047006c6774fa50ab0259373c3434020a985f9daa6f22887135e404b16bcd3be31cd76ce52631f0aa91a546a8481a0ebf92e5fcd23c20ca53acdb65f47e83a3cbe7d831361231d9df0e48b23f324803f1784d6bde7da2f293f517c1921544bcb1522ec511d936f0d3ad2827b519b4253f3dbf656701367e59fc6d7b90d21cf02e1217643e7304ac23ef7df6cebffe3bfb8fa830048da54002c8969f5524de2cd3f1d12e71a201b7c21cac828866edfe9b54b0a88b502fef20d37cfa10aa495bae21000355682b0f916db2c8bec24c8dad6fbc436e6b08b70206a029c6b2c0a0bd13affb72479763f57b7425c01b66a9ca25ea4be9b80f5b81d838dc8972132d9ebd2e5c4829df937fca3b271b70a52dfbe7e9a55e26488b18b48cc4447f2be75202a366620126ec67c2b54661606f5cb8739d30cf583431b4d630fceea5c9eea136d5e4fbd5f1402813944da52df65f599053b0d0e4d44fbd07d9d336fba564e57540f223468264813240aad24e1f09d2c29530e628e2a35bf3128cf8f3143f3c0a388956585749d14d658ae080fe031cb97ba1d6983cdb7dbf12726ab565819f8a7c9325aed9ac9fc2c0b00bde939dc113181216a5e8eff3f1647ed302a52cf523bba4c2702f71f8736a866259650c76e26111b40ee51e12655b5ce78f70c78848354f57a6eb5057c98bd84a6e9fa265d76e9f51a293d42a3bb559ca3afb78c9c9de60a10252a637499de000000000000000000000000000000000000000000000004090f141820 + +sk: 9dd0ec94323c0d51182f169cd13ecd5816737e710f30b0242071c7222e9409d926faff9f4f4928d49dd67dbcd1066fd5d30755209325c3a4d1cfe3a949c02f12b4d7c74c5ac0edd1482c17b43d29b64a48d4ff57475881e149224b8c5402c24a031fd5eb03ee909bc39bd04f88a9d7f8dd9f75ee987830cd2782b8b1fdbfcc1d165022244027772363484773133142435377437260275428566482540852407052547872602605415328123335250386770450770731526134368878252875085028831552718341610188745264747011603678044463473807016106101388535203333151865024674386082700247487548458182877630535148423383434445845416485583722865178102005387213578338174270403063338723551041533307565272835012028886637756877544023872688365366021703725407080424278674226873572788125612812846782854216411226160215338453035072054360306786070114748252252848638433118504131836781210752431123447835477111826548454783542804878133747733782260263721508572218342881347276607718518242050340280410580136214026251326034726025681513615825433362787166008161323503446801787683145876756002127364073406830643073072081535568357224584583302306678268448077727108422324380040854721361555307052036660258340620578803634613083777644115564331045755775777602636410883037665055427770278353755435775507284646166187155024725266142000708130774250251106205203266717110724734534054051147111003111118172461676033648086187023427214326572667534644360327287020811164885237543456744226128554476558326327460377687575186845734430380077118632722464583333204654115865037371835047518404711661038514678886220330112820523626755120351810150826848237302184813315722705563687275036238456682633456643742741840000408806282678375447475673835472123855127088622154573675662618186522371778352012753353640637535626363237121121718774607756853047411883355862725124468806358423435376061281444247156232585185507347550574574883186175742243534866343836013226321358248763655001706022006023035801118588243104841878442440321144362236100563871453101775164883708317356047865821350815413586136621142654342422365146476247868515126220742733667232861120247208616160071374652266334651064132274848313634651222343755740763523316314743368471146421812512236516068461358150603146027842675684405637176182611113810303728788215851024257546045046031701526261875043052513423037772531261103584152010842466150014224280278528133104051003206380344456020563867202837272275843141782730365822636852415304857871752460185611221023654542537007544381542365640332563424647431711064704710346585146024686515482730170204732440336557645420553810854064712120188168862287082201073202880641335545587151115388075568811420435561064051228783427478487788314717018548060731423543663803041382433856336536251018337617866158173120514045367740670258315313380655210002582053778561506814783280252303615387062244473274167251380055054083536265171867873586681813227170282006743548651472875656788327277784465820877611017774653812585186738776068177123621880061083700161353628768115504020481830370225753553638511106762247387543665233264217085453886413382280347216550117750808513028670054005533444205605852652462282544314625121812365743311024627823616168402027573332467770867777322687104824413378426367f01647eb3cd19d795a29e1f4aca8b34442d8bb132226090085cbcf074d463dc654153b52097f63aa654c90a2b8c912f1784f6e81742f0b7f57e6c5192ac3105ee18d1eacde5f390f507557e5ced92fad35c871610e7510f874e4a02f78b90c82a6436ac4f6422446078436f93a285a8d0d819a80c4c5a2df07641198a08243b6b90c82fbba1f1866bbaacc4b76dfdf8263cbfeeae6cd0f9b17306b15b4a72d6ac4158bff7fa6f156679b03f8e12908cd90f54ef45c8c1dda12a0fa88f751d096f9bd378bad31ced18e03b42b33f4001bde78b80ac2f2a89b2e9db8d23f451de3b3d171a1eeed0506df420e6b73e4b6d845d69394a488c67374151cd8b2bb98c79835c4a4de2ccb915c37896d60c4844ca049c7e2f4d3e35d9850040c0e8908c09778bdeb0a712d9f27035cf4979bfe5ae1cab0d158ffec31d0b7652873214471be9d6716b6fa378b3ba2e72ccf4e38c71d3d88c966c763f1ad77fbddbc3f1046ed72fc59b6112d1b972c2a71fe95b8a028930e19d7ce7544e684a1930c67d24d523e073365c35c58c92a849ad660f68a409e57d7fb615a3b9b8104bc5edc2a54b1e1499859242c0f4b4c5712f4140bf06ce6818075f109bd8155d66f8e458916b8d337b139cef737664a15a10a327cd35ddba762b0573fa9f1bae3a4d82a6212e1b501dbc135ee2494693bbf05b120d6714cb03a72e91dc0cbb00a7a41bb0fdf2fa0bd9853978fd324e8bbe18a8564933ddbc1430d524cdf95c54939a9ad5b8256d8742972710039e7ff243f5e09e32cbd42f48c5d7075832c99ca8f79325aeba2cc21808313230792277ca7a0467b7ac5c2b7aa757623a6d6ae5db312cc7d8f2525da5dd67d5ec539b5c74cbd915b2446ebd588d73ebc7ec5716c73e713aea940ca5b9aaff9cfb7b16380721a04fa1cf35a47baa3e899743dd47ae10ca6f950f5e933bfbad6ee7a9c1f95b61adcfc6b32b63906deba23325f701df55dae539a7aed63d24ca0deb7bef2c5963d48f8557fdd23c07873c13064a16c5fd00482d5bd72ef64750b71230355446558ff6b8f7d535310f73bfb8cbcea9cb28dab54ca7715d9697734dc6ca10fdbcebf78034b0688262e315590d7910562f65f0c420b6e488c3cfec3bffd486d5e10c7ad0def6b74e462fce98bb822535af0c20fe964dda225dbcbda1042e31d79fc35b4d83d38aee0a2f6d0c86dadc357184887efd6c4244dcaf7034bcc80daab2cc85e5d132148d3c7b0df78869524d790c3d03f0e9b4b2ed2f58f033d99b11ee34737a77b45b76bf54031efd78772d9b9097943dca25bcc03a2a3019596b24a2b0dc8f0dedd038371e646cead445641c7bcd4f1607859aff3c58b68468ccd8a2164fb1f6b24b88951f4fc745203dfb43abd3a8b9d7941c8ce2ce3dd30a680d1b097e1d7fc022ec9c9b33d51ad57da384df4f25ef5887b17251cb82d22a954d8c6096dfefb294eb284ab1a2aea2cac0236b13f7aea24836495e88383c79eb3454d0d4f962475064c7e2ac19dc2393755734a26d5375e4a5294714d5af7dd23b4dfb9197b4189f325dbdc5aaee592ca7e2e8964e70f928318445456cc26f19ad3c025771750e71cf2215ac2d32ba9defafee20ace4f121cf035259060cd83ffc6ba8bcfdc11eb5eecf79a39a753c7aaafbd9c2c79da173f3a1a214f3e04c822718f3f7f75a2fe701be9f23e133e3ec3f0c3e8f7d6f2ca655e06139039fe83983ab1fe60c2f71ba2b4ac076d898d5dcaa2ebe0b50c5a85e1204985f275daab0a62f43de73af147cec6d1abc0b8083ec48e8f02a63e952b76610e95b02fd97af7bef53827cec97ade1aeba73ce1e732ae6b3c7bb2caac71b2e3fa9c6c1982f5244fba8d62b881ac2055afbf0cf5105adfe2728de8bde98c15684bcf4e0669e4a64a1ff27dc7576021b6933dceee6550aed6a6f5e6f09ebc865d5487ac6baa68851c115b2397ed0f0c93c982d7c18d86c9b4d3472f04899f628407544dda01dc7692010fba529ff8f23f0c94e454e2a044792253525013e2a05b661387761d682bcd8b311886b48af47947d6dba324fa756830061eab1fccc6b88392599db32af0a6c8e8f4b6573184cbb07b390f45dd7668c5ee85e9890e259c1f654781e473a767c60c5c87be0552b9afd127fdd7f9aa1defe30aeb20adaf8fc2947bf56a735c2951ffa3523e2753769dae639078ff58e401a7767d54c2a298833f9ad377b4736510512dbd826cf1dd0bdaa09b19f2a353dac7e25eeb28e5f5257239eea645ca7b4b28b92e456be244df9b8f5ce530bdfad0ee9b635f682825ebd02b46cc8b9b63ea9fb6c8d8ca9ac3e708fcf95232a1603e972cafe440f9d001218b5999f8be19121cd25523eb2a9ac6994406b2a7d86ead149c809604fbd2e9887e37118eb5d81c8f5ab4cf381c58b79893399fb3400841435975c932c2811eb0b884c9ba4fd5bfb2211777b22334db7be30b9fe6776720c6da858a03203960ac13b8fa687087b057a1319d91c6a528cf4c789a1a7e4b18794bba703f689b4eb5610ca2b107c5d0fde0512733110d77a393d3ebf0d72114248f4366be9b8a9cb80c7b587f2934fc3e6869ffdac7883766ef979dbf87688fc05c970249828b566b482cc02dc1b1aaa8b44e934a38401d5f99e1d7f49e368a48a6c203c41a3c0a1ca1e09e4ccce436181852677ed9313e054da81b3957891545fe918943b6caad5230c67c560f815e7b61de229b76d5b5dca964c285bcdcb6774833b02dcf0f998bcd5ae592594c19a89105aee92d272c16688b6401083cbd5bc430e9e10602b1e4ccbcb59fc1c29e7df0d6fe01f2438752296a32af67e75b6aba579706ee355ee112eec8772db0948c7ff15f2898d23f34dc13923df24e78049f8b78fe1585858b26f81d309a4eba4e1ed478bbec86257b83621604e1e4288ec091cf16a08630581dc7065d65eb92dd93ba9d70f2d50c9b5d1f5e407d6f79ce61eeb5c7affd4baff9f0f3ccdf501ddf7cc3a9e6396ebfea6a88639e996edc001083530bda6cb3744d36ae630e174502ff9363dec632ad54f444e28bc947b84420a2e8f284fde5a5f60ee4176d9f38a27912290b3d48a5ca7991ccb43ed92c347ccaa0e2b54556a6f04cca76f904b49c6f95e1c3838390d52afd54a320d339bfdf6dc04008369e22be850b1c5ac62fe9bbd03881b07daadbc33b25e8a127be59e67e4fb1179e0bb19c6046a853e38cdb1bf9d51dc58d7a840449277928e11dc560fa4d3c490d648bf236623d2a4464208a7e67fe18f57846a61e4beab48b8cda254a9702ba02a0ef4e7cb24579e8a188c4fecb1be1d99c848d3e9b524e71c790edc612044b223c690dee56f9611549d9ec4b1528d29cb329dce11489436c85b4d063e50d53659823857db387a9a7f1670afebcedfc04022db2d5520f3f2f1dbffbc246c75be31625f937d0d44815169736f483874006e6c57d3879b177966bad91b00089f2d51f32ed5fdeab6a9e414b992dcaf3de794baa7e27b709a123ac1795c81 +message: 613513ab10a9eccf653fbb44ce75308d024090ff4fad37f64ab7d7a168e9 +signature: fe37fdea70178f47575270116850ee218d43e0439a5fe9d90edffb3d0a7349a4b8c09f4e6b8d33b30b292b6e3cef86988e2cfca9b38101575f5f6d06cc0bd37088ebe4564bc0a24c18422dfba639fa8482baedf81ea13d0315c19b91ec9197b4be0748806d34ac52b8c1a66c5f012dc038e498003032abf7b2fe422b3133ec092fd187c61d6e1dadb84210ef5b08e5777f5f0b0f78d65a93419ca4d638a087ed547f06fdd88496095ef05723cf672a0b867a6ce85dd50573313faba996ae2f32dfbb9cec06bc109b60097322fec0547655eb2732f73aab9cf4b8417bda3248b27263c48f55017cf752f0e534a98797099b5f7f20d7b1bf54c166dde52e3fc18e92e28c5f3b715e3d3bacafac25e34f2cb7dd87395eabd6ce4c79d59c578d85fba343abcf15f7a8c49c9b72a54679835d5aac9d7b0f8a8320f3464bc5586c03c0efff15ab9504f0a3e4b629bcca975fd82154382c78afc5eff1644a623dcc947a5667603fd410a4a156087e747033ea91abfabb872979747db1380dedd296253c883cc0858e6c506df84dd95e08ee4db901c10bd6c3cc46fdc9c767cd04a9814445de1fd1bec60319488f89cda84b418db03e0f750a60c484f61789efdd350ef9b887ba488a93b9eeaba05cc342a74f15752d07a7315735f438ccd35d74700b255b048afef8e4f7b0719c625113651899f1d422bcd8e7e462615484664baf9bf8f28cbaa65c3acfd16f41f15f4ba32353297a82df42b0ab19d0a0425c2eae788e937d59cdd283102d9314297313ba5c3965587d5109614aa8182dca27a634031f787d40563f61ed25203c8f33aae16f57838e859210f646592f62baa1cd61da78b3b21cb3c84116a1133f19029b59c6ad6c808b5f689946072b8c71874cfc6629de154b98cff763b686b290283db270dd8e664eedf7f4c59285947eeb04411ce16256e35c59e3211b16d23640f26a3a737fb7a7dd44e65805b6cb2a58e30f2010f55d7bdab4c020a95526af6ab4365801bcdf3bef48cbf0258e677d9ed82efda34746b08ffcb4d24a6f12073d6901d017df328f754b3cfbf03cd92d254f7f760c95eaa7b73c52b006020b5ac59207e2ed3f9c04d018c7dd221501011eb456d1ac4ae369b98f8c7cfff05a48c92427df3b0324d6d1a3c8cc4b6eb97a196da1d02be3f7e8d1d21a3287a94cd806b4cef97cda0ce3bc7848da5cf9ca5ae258a5d9fb28537a474c54d2f8a818e6dcd25610fd52d020f0cf7880469e5bd9a5ad3297b640c2147cd48ed7dd01caadaf87d04a3d05b631e979d40be89249f846c90ce858dfe790ebda1f475ef8f3f1442e2cc1201ef3aeb967cd72587895955f24e277678c533366ff897424fad60a396e673642894e614d344be20aab7bb2deb4a7c9f4758141b4e8c6ecf914bbef71328f059958bcbf8cf497f63ece1ee8e607523d7557df1fa5b0e33121f13ddc5d44672eaf1c5ffa070a4e4afa7349092910b19cb80e3a9357257b8653f7574a7de1cda7753cba42ab39ed250fbabf03369b0523438f0f7ae1c9bfb0f89ee983819cb9a58a1bf66ef642ef3fa5d8ca355070cc39ae43b6bcecfb2c908118dc9e75795beb448d00af4327de9ad0b6a30e6f241e9cd9670754a94c8822b1e25866047858788e9b47c9be49b200a5b60914d0461e0e9556da48f9a7dac9bf322030e03d066ad4c6fa3a8bbd7f97d6297ea5c626391aa478e3082b73ec18656c0d523618cff7df03cf85292dc86767fc8159566c825ffb68ade394cdd7e00eedbf4a3aee0f970945aa216305aacc58c740449f238406d48e5496f5b59f93da1f4082c3860ca03cbc78f0725d62f70ba26b9223a55ae45036349e7ad77fece18892608ab251b3191d4f47d14730554bacfbdcb5cdc14d2db3faca47d33e29d656b9b8759fb7b9a71498fdf68876d10bf7d864a6dbfb3c897bed1864c6b7e552af38feea740400c3e38004591710ba4174538ed37a3429b7a69575c3d6f41b6c74414202eeb1fd48f67c380ffcdc4fd8877ab9983a912e4474686922cb15c0e4143f9fe1c8aae63795ffd838dd7cbb515e41e6157ea4f1ce3e209cb0c4bd0bed467d1e23dc0139d1157574d5b65670b9c4752d7bf274eec6696177ec2756d609c3a26528b2b4d8d8683f88f9196a639ea83ee871ab52510c0c3b8ca05fce1ac68d7120f7e62a501a2dda9445269e6c2426f971fe152011d0c5584ffdd3c9ebea8865865bd9deb9ed86a45300d46aa296fef711c8be85f6271a4c296d9114fe279012fba3e9d1ac3d405645834e2ccfabb559b32a9834da644f2abcc3f03df6611861528b48c573bdfaadbc1e05193f66f1b52a0adf9c3e2882d154995469eb0b8c6485df035d96c5a53d001f7f0ec2bf72a59c728b771581be4a52da4c5852d35ab822560fd1e9557a76b2c9166f0f69bbbb9505e85fa577f931c354a67aae33b26ea71f37bb3aaa04d2209c98df7eec9bc7a2bf6328563d4feb33f107d80f895eb91bfed9f4d4fb399bc130f0c851c68a6a973c0e4c6dfc1d80f29ec04d3cd8e1212ecd4b0d0c16a0f32a935fcea7c66bde59975ed4c6c3022c009652daba0990c17929ad8114f3e4de9c5243b59c9a7a9569d1fe1fe08e465f83877c232e748c8bb3cc8903c29dbb2dd7741cad8c0be1af7063a3796137ff497382e86b5ddaed6382bd132daa71ada74ee6ac965b60b81bd28069a9f2cec3e7265a803c799338cbda5ff6f1d7dcf9330bc4663ccbf58286067b847d9afa47dff1c4191332023f52c03b034a522d16667bfbf3d2c024d3c2640c6d347e72f1487d0864c2f3ca4b2c27b921da829bd0a559df9baadc2491adf68b9be0dd750f8cb49450ad8feea2d9d28f37bf6ac7efff2ca4fd5b5d39d14560b8ae9d634b3340bd7f43937ee77a2beb72fc34d75aa13e4e7817a8d86b98ce2eb29b5f7667527ccc71f97f0fe67d3d4e8f2d48b7d7bfa1fe97943af90cb9aaf771d81f7a0a80fcaf099e646edfc726c9dd8fff2fb6a5532eab530cb552ef13bd66fd59a57494e5b6d88fabf7106dd01233aafe9ccc855cc5a2ede8738e9ab1d82c41cdff43f66a4c19e47bba47022b3364b6892a74f9267a74f8879d90f728ba25ea8005f46c988e02c045581ebfc606c9cc1da627781f04902f6e38b650b1120b20d8e911b1694d972d6ad1b42d18c0836dac95b2d562e3b3035a05ca4140c990e2de523489f67cd2f412e47284c2124df24b2e7b82bf056a0641247dc8ca88a8077e97cdb55822a084c4bfdd705356f0182080e6cf1ddcab79d28f0dc1cc76f0d565a0336367e6dc6f9ff12dcc7970dd7462abb1ca0ecd2f3d5afc89ba0ac4f279cafdd184f74f41a39f4c6fe582522df40161a7e922e12b28816e9e7a72e52b154ad4561f9a7f2c2b2726c6a244a7af0bb3553460fb936eee7bfef2981a2c00f77fab9c5a4e774e36defc95893b871c51201af7283cb8c9de1550c3019da4717e92912ad5e3af0ca65cbb5b89824fcd8d45ea06863684990654f94bc552feeeaf65554014767b2cab547b00983ba3f9f569945e8dabf84f4a11b0f664a0ea438b6fdb57d47b5a94de6059e40e699aaf2da67a04e3161e574ad4d88df49817dc25b78f4683820a10b40a4865df53a23a32ab484b8d15d74e9c657b4cbf40a69f9d91e3e3b7424188bbbc9913073a436c293a417265f87bc9103d380ef7b2ef46d56063ac399a673415555557c02f3a4bc2fb3331c3ac9fd488351ada38e86bf70328f1f4ca5a9f1aaed912b4a9eaf45404f8d0b494cef26313a3b0012ce6de497e63538df505cc0e9842bdd5a543fc2e8e95fb8381f2391bf4a4c65c69930bb7fe0525e248c80eb2acc17292974b95997525d48cd2321336ed5fac00474056e57d690ca3f5b2885c24637b1c8c6178dc339d94fb30b86edccf3c514136446606b17b201940df738d7e6ead51a925eb1b8d664afda86a5d09dee6ec4dac2e6a142b68dd1a0ce9cff8c694e10fb6f4b1b4eb0f97c8c5e5f1877b0b74420e30857dfa1e48535f1c16e1ab2723a22bbf74d890865d87db20d8466bc249e38a11ce463634fd10241296d0151cea46dd587c1ba9dac7524a16ec76509a4646df9babe3edb7123006d202f2ef7dd1ed7a1e8ca5ff6468a079523273ce3f321b04a2e6971ed5972a120f0ffc6fc8929a2cdeb09e2bb233e4bb1abaf35b42d2077492d582d5b232ad29c9b52195af38413c8dcd3f5abbd6369e088ea58117cfa32b755b1336beae743966db4c0c6be8f11815d747882fbc99fa43712c965f2f60c975345c13b6c72b4f3689c686ac6449663769c27c1371e9a222ee9dd59c6b11f7722cca6f1cdc95e95b02aa583dab0225642f8c6d3fac4004b35499c8d0a229728f520e299f088f8e42dcf673221147c02a34426a575739bb1d7654fe2a2288d5174b1b4d9779435d16a672d14290e2e15390647a64f6fff1ba2089e0db2986721a1d76541bebfc0e5140e03501a7899fbf315a33a2a028e23b95b6beb7679a0138899a882d11859729643979f2c6212a7b3377b1532fb60e77c832584356835be385ce5cccca2d0de4a62293addff3995bd773778f1ac227283138595a8994ff3b889a9caa2729346f79be1e377a83021a355f63bfd0141936444cb7000000000000000000000000000000000000090e14181f25 + +sk: e9f2035989b3b47b9a4d47b7c1414e2f54d32cbc92a9b1c70fe31943e19ef13fdb1bb527e58ff8887604c6126c837f8f6e82483c09bc510b35c8220d575bf85010cc348510e17ddda0be58895851f1774a0d396d90b3e711cb8203e10da7a94050f0250a2c15e38f5a13e44e2255db60355c6216d40a0f7b61728b976a7b482a30678637574326708564001802753625404208138570358730357038007481856602372768707636405878077325156570547550552686608807805528200024258404371604345414115257328520104024774386045423044857050817574724448612663343656386634261200884241334426650746046352432243476362553554236764577813286512654140436463476185038786462156757238801874084083655740767538205300337211832671635714227754613562276522821424853662335274572113467504066736412510474403048111485133600152461167650553727248415306124037506343674576062283570141027772104035481574648102512421824660078674616685663255622458840146611503145841252026614658036812501107426481182100445764037470473655588352803168586668345186236123638426884587446584440413436756681152417616712614727875847368470650260227215011075037857672003888681154137617275474270871026605470337230743654674887236351372852103356554753088156202020536728467282678104268807155336473374868587720088822858377573522534575081467746216175166660428483042517884882533247202181833546744361415617784071735771416000653661645514740522182158152350545762866842612733208448570882264132333528007701082031726221700443768852754676051666454775237311042368727358355067713338618551425022554882826334131264708564126411276411456232817355686433450144382716575704727788637352687286515784246348430037001452775482128611561872828454335162684487026183722148247843801176012742651836727834076156858567645458734787816110121715471811732382044862037452716667462125573053287652615546420455005205026617870142176172264717123435008577708123864550852076231165324586331027382044101245421776273736614001123116025884007134702847186122505047437562281452733045640138880561703761581454366547047630665501506603114851811564283863583561065402365436132677654476063683202653047804341347658050801722151405417068681772362181157521781818505223481752551877364262185687421226500127086043501127477063450131653852845111238584325047562268724077221613872517617406753718085282333312585808187710501784374002305502623737414005065265406077736518401555287558271158026552011221573358070645713483635760183310214514083441858473182388206811226331085487471567581186823144833476125803285836022236544482662808276810008230280856101544022666144215524455022257357022018316108612210560621576618765810737842685484155727006841586741572637860255362187006856417617186657174643571326471187017722583835048512242272545488214807350513858450227085332006342548776258860236674702182072884007350212656567370215611765824241844747602512086264566867530605833607115317740360382064004721582207252578674871127347718058362003424733551576463034550437258172381353865553482561012427678842748173511207347623343503545145564882883762331884717883262126183400784447580020615301645623512455408144603602538580622141837638377124151328146324817134161245242616682578588537501083814561347573620736025721237127542606778446265ac518f38f9e2b53d11f11e76986ef6ef5b9fa798f3e652df12845b1137a34bab8d4616016760c7fbe4bf864078a6e53c5153ca1cc8ab85950d56795ae03c623fc1feb0c0068cbd2f4cebbae7641dd41c0e475d4649d42070189f1b940248bdd96b8b6b4c64be543ee6f994d142d096b4a584e83e7a79a1af8532dfe6a6be3e661b2eaf2d9b750f83d371678ac7b9400a610e5b152b1b66e857de6187cda0e3d021bdb621aee16e30b34944f020fa14be8c6068fd0181ce956cffce78003e3e31400e91ac1f7d4e8b003efd7ba70c7f2ea3d278cdab4be952431fe9c2ab38abd20c3368aa588bd4c1ae2e07b9f90c73a9a7dd36ecd5845560d70dfd6afd00cc817bcb98690ff9215db4b526d53d4d4c1befcb2dd380289cc65fdb57aee1451ba3892ebfec2f8304d89988ce73c5c6fefc8221aea01d778e7ae138e62f6c494b36fc8070b729b044906f1cd19489911862cccd481cdee8eb289fddc743876688e99596f6e19d7b3115b47fb8996c271608b85a5c93fb461e708d0a86b8c395f1fdb1dbb211e634b1a74ed3853f4d237427806a999828b3ab485e355771a06ef08121353cc34bed4d8cc615311dddab6cbbc03fdf06a79a5de66fe489ab0cb15590210a665946694b24f19afb74ffe55130379b887dd02cddaab5f40ef510de3c57caa702be0a509707959b312fc05b65f9226853eb7b61e989573dcdf0d8954b7cb309c7aaa3afe7c0f957993f0437f2305a7aa42037dd8072d462bc793112d611cec212ac84acd9851d3ba29adb9408248cb0ca18f74e9dd6c79bca3a8553f55e1e87b51e56f7285db53f3192119b9373041d0458cea66b3a739258a260f522d6365db6219253ca7d46594ad38a3193bfb66bf0dc29b9596a4c53eaaaeaa7ed9710128aadce01149b8ba97c8b5cf5ee3a4179485ec997557818b21dddbd6eca53c7b8fbf9462af2c7ea07c9163d03372ee1a3e377f8ad87d642b43cc236682e11d913a74590210490db486e80a4844e1f9ec2d39dae374c6582f677de84340ddc98b4ea790e54a39a530c1e8610abbbdbcafa4913ff901764a2434da78264c7b00b277f2241e830e83dcfc58c45b067bebbbf541fd0ab1ad92ab8107be69f8cb45c42a2afb8acd19fd49afcea75ebd3ad33209e428a345f55c95bc4cf50c4cea6703a90b42220528e1f106e389ab27844491db3590c887d727f4f8596d053b5604a694ff6d0f255b78a4cf96740f380982773130c1f335df55e447875c607127d7689e8d2b564d748dbd98fc56af29c57851393bb71dd14bcc421152f6990196a3cbd9cd9f11c6c03ce3747ea0e5e1c5e1c66a8cc17898defbed976339d16e32424e9e61460cbece53e45282b4e8565b87092e5a922315573c3d28f6f2dce33f69c975a4334980bf92bd69711ec7a3cf5f2bd36210b24396be5749a8bc824c0d08f7ac397a0cbbe402aaffe2074d7453f5e1832003f2086b72bc40f2892ef91d7fab7ab602e1e47a8ba750529c05d2beace970bc49b00cea827022c7523987152c456f22bca619d42fb61afcf3646cc2026253d101184e3a2ab2b22cb6ce1fd85caeae7847704f009c3ee513637660db53ff2a5b7c87c3cb65b7562294f80a1d9fc0def6197f3e276a03c10f0122ba10e91540cc829f98aa68d4b48029e481d26cc6b6763143c34d96937f703f916b5515b36299b89bb10cb35d3ab7beffd86cb932904a9a8120001cc89a4f95be705d76eaafca5b27841fef98ca1b82bbe0db2b40039e9bb89f0698b4e0b2d5786993ff36a5f09162ba588b9d9bf2ad80528202e87dcbb3415b9f389618cc06827c115b0fbc3aabb488d4590cbb8a29fa4cb0bd19c39bfa537e10ea33d354ffe7682b13d6c95856e2e8208973327324ce7d506cae6407c5ddfc46c82da064c4776caade3ca8265bc1592e21ed27f8e11bd1e2b276c7eacf6ba8673e85b6b0d7b13b7366dea6c98bd5d8ce336f99d7a101cefe29e94dea131b04cfbe86084edfeba4d77734848df99256ae47422e0371c3e38eafcb317851ff134f59037cc92caa8189905afdc88d5a7310fbd5ed0991c50efd1bb2b499fb69d260ae043f69a5cbe63d15ec404ccbe84834ca2155e42e9345ee75544a526b03b6432de6f1c6719a68a4263fdeb957de8434916887bcbaa2ec3c95a20815318d768ed92ddfe2cbe3e71dffaf1aa9d3db725c1e6900f4700086b593b56ae4ec04298eae9e6ed4f8ec860314be3d9528afe9b71e694502a0567ec40818e61b86eec2f8fdf757cbfda0abd564e104a281e83e12a5fe9a00ff2e7fb434d070e8f473946b894f0ff2892a5d1249e9bc2ba6657e3755613e21311b3dfa93962e08bf5321944130b2c773e012c67127996942e9285a1df1553a14ead5ac7d6359de42118a48617f41d798554f9ed1b6fe92d7d1e7b68e2b7ed689c2e5050a91c110d530bd83c6de9c451de8b024ccef03e9326029c275c1ea0269f08db7bbfeeed180489b813d0928ea93172a491882efe655df8b1ae44420eb40bd52abeb90257ef61ed3ba4e978ef78e24f78c3ead7baafc48561c39550e3028cf4cbd276829276761c7edaa859259ac50fa1baad69eb713d1043ccba2813edb25bce47f066868d918b8741aabfef9af191c22668090f0442f732c15a2bfab898939c35abd9f83150fea05c522d0d1e74a719d0256a45b6aa1e92276d1e11f49ee353b68176fc318b2eab018064822365753c3a948df0a672d15ae0725187db0c1fcdd100badbf32e84b6af3678baa41bb193e5aacc3f87882a5f08c0cf92356bf52b016b942ff1e33ad8085a7fdd01e1e0d83540b7a6018faac846ff36c97a0df2fb96d6ab9dc2ccf9108ae111a0a05461ca4c1518de3adc992584488c3ed0233db30ffe322d43550f4713d28f58a31ef6a39dbe73348007f406ad89f4d36e9947d695a5d5356a3f1052f14059375cffe2350a3c084c38cda3f5cd2ce841179780c56eb820962b5c80ad5d107f718a401ac5f7686d14f307d4e0fd077fc996e516e7fe756b85941dc6b420e8162e7221041dff7e3bafe15a16fbb7ea81cafad63f83945d77c0633166ada6a645a47fb43d6e47026ab3f97cd2da078c8b3ac0752831c930653a9c0a6b1735a6d9265b4d1af67b993e49c8252b02e75943928994229bd5fed51d58221063951d6d6e647eaac37e2fce36a0b0851c8fda3f11878e2f2a1d6c13c856b00ca68d4ca908d1064cd1ea23277b23a4fef73970d82f6c793c0a51752ef43c266551f4675a4861d41ba652f9749d47528d53eb7fcb84c16621f0862a3b0c4ed5f8fb311b1c31007a123728d2889d52638be63d787d244202d9a8aea1895900e24981f4b80d9a1cd0f6601178d20e9e8851fa62d8b5a14c01489f6aefe433fd70364f06fa023b24f3cbbe8a150ace5bac7ec96709891f1dda8f1aac5fa1878a6864565f16ea7d701a03ce3af74a6cc4b9f9f8cd05715b86328e44c18e5ba5366a5da89560a071c600ccdf08597219b661da5f688a50446cd705257f +message: f3025c89bb89d6a80936ae473e11e03ade5e4144ccfcc66861 +signature: 13a2f05173f61b2d23513473ee4d59324485cf7a36eba011430348820619cbf6fb72daba39b718a0eeeb83cd60b69437361809da4b2a13d43fd34702a9ef6ed73228901d77c2b74c00c3097ddc2f0fed3f87ed2dbb15c5a293cfdf0190a93977fd14ef6d1f018e6b3d356c24c0e0f8711258b485faaa8f83238241fa6b6763dad87463708ca9b315cd70e79a75322bbbe90cd392b828e9dd74c3377706edb41b59dd99813f0551e957ab9af6a76548535f1f4b49470025ca31654ee03b419ffe17be633ead449c06fa6ec822d1784f6b80aa81c12f6550d816164f2f1b225f0763645007d5e1ab224d759dc4a420662a41628d4246b2df928d571adfd48784ff5ee32e84141185d636cea66b0db5bc24d021882ad91a413bf34ce93ee75f4998c1b3a6d4617ba26d1956e2264826ac6470699f4d6026bc4b90f7b35dc0752d8d3a0911b0aa2386b3b06950813fa70af257bec08b8874dd2bd849ac1b6b5a36d630b60e955dab23d2904354a7d0a75340316e7d3dcc5ad204ffcef9e3694ebe7ff4cf5bdcb4815d353e633d17a814802d6d679662f9a75818c4e9a45e36339ad53a32fb736f5929ff5c525c9cf86b7a28f4540a5d075270cbbb1a4716fe370e3a549675938ede08ac72eb95ca58df6ed2a82e46310896775cba413299f6e19ba14e1b93552f73849745266d13aa7c3aeb446d45bda65d5c526778f58782aa94f1eb105d3a233f7f528f58150f922dbc174bdf7adff33644f52d11b4e1f8347e3b24dd3bbd176d6f4e9e39e66a7e60a67a065fce41307a49bf4b66f2da7dbe5ae6cec30b1bc7716113de58253ed604aedea33feb6d7c7f141a29423627b30a6fefd483f4f875abdb8861fe651a3df29558c77a56938b9cfec39a957392544c0f2b468abedcc1d3603e9553be106dafef21447af75b6ad65409e360062f7f73ab69ea641d67697e7d4b6b8161fc6491555429dfbbd212a7c6a564718ecf5228b52ab7f98d5259691aa87f92415728bc26a559a5b7549696bea23cb09663854d08a0565b6fe0066772122d78065fbc9e7042f40f4bf019e0698fc0e76478453bc9e0bec42addfd07c5792770db84e3ed50f47928791757fb68ce1cedd780072bacfccdae5d474b0492ff457f134e7844f33db7b2b0c0e0a01d68ff8a840a577175282f416c6949d9991c622e68f4397feaa17b703c726b76aea4c415857ec3a15ced902e97f964ea849007cf5f3b85acd4c4ba5c8fbc6799dcb8aa1de76e7d00a43709fec49531fe7d148e574e89bccf81fe25ea83a28a82e2a020841fbaf59c4e86ae544f4ae442716500a675558a42a5cf52774f5772edfbcff9ecd86f046bcf6e298a0ee8b9e14888d15a1074501f331e5c4176402ec619529e0ba65da1e9ffaad0c1ab159c1049abcb6cf326d1d591a83dd9c68fa71372ffa38942caafeec8acc7d3f93cb2362f705cb79bca1d65e2e674733db9c2143dd150139636e1f19eb2bdb6af6250a6ca8dffc34b9675029e9756aa183bacd604fe7983be1c29b1ecd721e497258146ff16039b449f80e5c49c05d1efb635b28f1f829bd01e9a0472f1656d0de60ade6a059f5e23dcbf6932cfd9bafee55bc5849e570b9aede8eb1d0670399907bbd8f70c98adf4835b746a44c4578d7c15082908ed3f2e3c7fedbf116a91e180abb8a38912e9a3ffaddda2f498045dfa49967e1172cd5ffad88723e5d96daec839461c637c9cbde6f3ae7eaf91048a526a1c4787865a77d975b61275a8e777db5b0c2ad00a64cd093eefa7a0c0c74932b4ae88df564c9b6c7e958b1f20aee9ab3f310d9bcf5ac808545a8c3071dc9811e0f63e1f7043069d3d93c24fe3af4e489275781c345d7b47ec2cbdbf3e97cc7fc7f4946cb61c7c1a7af8bad66a2c575d0a8f338f7cc7d2f7f2934e192d3884069d554cd3893d0ccd412e7a538cff397bc29e557cafff3c39c949e89d9ace1fb968807c930d8e39162075910f8e20f413d70a327dada5bdca9a428854348af5a2728fb74e4e825a403652e76b3ba45f829e1556e27fe00f1a500c8862677b5355e5a4c0fd41f421d9c9a6641634e49a084f19cece1203a9a04eafc5b776940cf0c5bcd4fd1c713112aabd00b06a6260c857c4395f69b772aa89836457f89c004e7d5b608d7369b40ff3e398d107ecab2a7e113878291500053eef6f0abb064fbabfcf87c226a555fee27125c88fd06dda3957f96c2b9bf7078d3b207bef88fccb3ab16e3c0825de1637fe4a5ae4cedeccbb4bb68fd75dc5f4cb90c25799e28674d3599122ad2c60a17d8349270717bf46ec2062ac256b32df90a3a9092e3ca974ccc815897ccb97664f6bf425e7f02dd83aa03d4f560a1094af84bbd1c8afac98e8cc88d8c2db6a639b0a17e66e40ed4d237b7ae250695535f4f9e6a6cf671da516325dbaf6f34f1358ba10b60afb5753f72becce1e95ff1a2d4cc9a52b7bc59c997cdccdea473233179d928fe26f30c7331972a1e2798d1ccd81753e564dff506ebc6557cd15437c0c8d5811dbfd45abf56abf5ffa3c807a3f64c18e620220a27cd71e35738b10c75cb93190770e7b6fce91ec4a85f4771a54edc46c24752a0aac8de6cf5fe87e52c3d84d9052dbb967938e6b00a58fa9216015ba9bcb11546b3eac49d5f66283868088411f9001234f5cfcc5d7be37858bfd2501ab079665d89cf32f56c16ff24457760a4c03ba464600bbfabe5729b37629217de3857bc5be6e707d43e8a1fb97f6d1b57895909d5aeecf7adf7789c239f95317a131a7e72a88bfff0203011a83b8df8755ae93dae2e843e725ddac0813b3b60c024a32fbaf195df03d6c79360a168fcb8349cf16d2d8b78909e837b4305fe800a38415b5af5dffa01ed8234b1246f26ff540006547aebda6610cfc5bdc6f8063efbcf41751f884ed89fd00c7e3ac162e73cbc21b8476e42b4d83564027111c8a51ad76c61670b0989d733956c767a620b1989ffd3c38d409778c9919e912ab3c448cd0d843bc96c27f2e7e7cf3dc477d9dad931ecbdf01f910816f5264fe8f930aae4088aad04075cf3c74b534d91e6bbce53f5c4e6e5267091fbcb02b303a256279df9d0bc3d03031451113ceaaccd470af21be41ba6e7fa7b8fe85d91f17a3bdd74c02cb13ef8ce70a66db17e1ed009b670172ac26050a015f5d3436e6fbf3ffc46eef3a1d8db52ae9450585a92f5f1be01a8e00f37df2d226cd715e647d485a6f536ce4cd09b9424c4e80be782acfe96a177760b2071231cb9d5013e1a1930d29d9bb1423c132e9b11e6eaa77c887ef30e9b8867291e36cc5f1ddc980d4dafff82897a2a027c6f527195c26cef462f9cf38724545983cf95fabcc6d146ada089a6a1050ed3798c5eb0d0561bca525ba413255fe524c5fb1b39a9d01bf23efb8f8af70a1abeaacb204fc96484468f2323e6163df6fa1d6f86147e48079c05f1da7350b77cf49602411a4825a302ecd8d372be8275c04b0a724cb68939e0fbd5e91e703323f6930c993193d69bf3057a51d6d8da254b6828c7dcd105a65334c9dc961fda129ce4763a9ec39627d01b18ab2505f882ddfbef99a8d384353843fecb5234db77ce3b716214961699cf2eb66bde0f20976f2fad352419f6b9da7b8e6e97d47fdf8a1cfc3ffa23073e1f230c808b8ddadf9fcfce76e6732c03289d0281f4377913a63c094b23181a3be5232b64ad4d31c710e0890e3081981dd3f7255e804f1100abcaf4dcacb288d43ecab10e2e658b0e38e8c79dee6e77ab771cc680f22831e1e0d94ee269ac52971cda5c5aed5beb918df967d74e4ad60868bee2f8f35efeb9d67c3d2c0e16c782200d5a74af9fcbfee8dcc93029cdf94bce8889b6b36a237cbeb005664e6bade76452572f8fe46c53896879209adb146736c9aee3ce87c2494d8059eded2444410978988258de6ec69e43953e9327dd207190e2649b4a3f85e8baef0b927876135476ee1a35d06f17b7e572dee4ab68f33b57570701ef21f9001f6d29322a1e00cb704a607b8aafcce14a1177b0eda9bf0cda873c994cfac67b16bf60262f3ecccaafd0df2d0c477d86a15d498f2eb2c4095ca289fce0cf8b19631074a2d3bb1d391feb1fc7145f8c45531595d2b555865b7c840c18dd676edc18b77d1fc52482bd6887f7d9f2473f7ded014f191a4d51f0c54c20d63f7f8fa968816f7df41d6abfa2ca4b672d2ef7dbaf61792db682ac4d2a0f4455d2ce6cd178af41d34c72e4081fb133f7c68b67f8850a271a85824c92c987af2df6d9c8c958cfdef25b69c15c5ce8522d61032045ba9053db4c023450a686b2d91ff1681747d9386909eed7321d7e47eea9c3fa0a72e698cc8ee64b250f89ac77042d9f753f39816a4c74d8104944950f803e4c502adf627db0eda33d5621fdab14cc33d534d486be4f2cb456b2c8d24c8ce03bf34620132666f70abef2a76a6c9a351f5f4cb3c53683af3653b62b896c5ff74268d7d794b59c0a2f166e79a2f3c0906dd5b76b58583e1538f27c59f96564cedc2ac3f89f294566d4e6eb341f96f77372d22408816a7d659c2a1072aa4ba9301c42ed6ea978249e817f0f0914b5c717e8f93fe2e5177b40b1c306580cfd4d5e8036c93ad2c3a4c5797d510162140416290a9b5b7bed3d9e0e600000000000000000000070b14181e2d + +sk: ecc2dc256abc80f7b7bec9df85e7492c5de4a442c182df0f670b0659326425662a0a09d9c69373c23447c2a95305b8ffd5910ef78658d40097177da6239e08138436ac37223f878af8a399b83a107b543766c4d6a3f5aeeb192b853e1ab708e7203395f543b69b5d02d7c718dd92e218c5f8a3d9d3cc71b929e06551851e6ee342336124478440123301411018321332110348334748844655711664412165235816753451506281556716613008421783312458163142781650071340708212626608800035220250758860522127413125881304306348081048332720728553034472686274845064731586114812376266431422488272026062247627108658788822431376207816464704650171463757742145271864834641811032003864514826117653664220156410757442602758205510150655160334237731327300675770158188602332306620631467268625321206822726721084153272288403008553761816628832868346828246771223745600451116657365336064804625425780726781071142874610155221381823858370787562801418565301084674730873261814681014887230237727130565308467174158163173842257258237055738281572314187583237144545263461800373573632120374402878734645455471717576720044806846545804706477017118254437433050075680426470837046778014350683052673035214280225445530476448730070034864512288208034348806310667208650740770311303083184144338241207246875011256810332784302304160505183578784345205842845385433280883770415838825327710303815287583468165425744665743752080682380487307865112041207342303128733403118685165553823657447661104586581514243154665326450711331621267538612730884751637676064161485452541272186601581442010751642855003677612771436040016438070288630016050730366532536462683278654686258718168784312255672067215558557812204474225115544546373137445782316206712607885525038823524835348017544324330610001601811183541762816041306057481602351735434175663281127257518261737486804811745620350683274325564378147582587130200272504754438186210540154123806383664620870028333878021630253742374286851051373021280404310286860053353545754746415800870137103767000204473758380703406450173742236340073217080004063215551666375313184146332200465547187722158161832805712827747783134707816143013006043441524850255703227117336726278020187505872564223761800584858803247718377617024845835567642813027617278624404727216630488150707235611008563784353406406438678662465516726124558766500314887616476324373810818054153223263013680143743182411443028011035608842284403406345206677453017071617071371423515016442366073538018177332045717081583263452287244600531254512855205317523327545605081162800464808657451261114575740680273407732818827326886423525783077538685360068517570027178511131526328553427744884483567626220700753311102755372818704537040107304771842417886008266211152014266685066613645226172774467262723712041064862257144781231886630306537787457203073756411065683801121614847872737423836675283051066085801746875722754158658553200261412424871076442133152538045468176543835712806061386226576820814555028342568260051157038041538207671750073667204742102582847466268846645360152372874370554127576741321342525753233646264303264630564434357515212648785507650247731215770686523622645471176413683042356200856062810245065730535766622841317004015358440767854666802458512002260a9bd922f543617065ae47635054123f2c9e8869ccf1072d6a9fc1564e0285c1725fcf5600e3f36a8f9cd12c31b3ba0491cff1a4e81da2764a26cb2330806a6bd1b2d67a9e5a9630b9914e133e847fde617d7aa62d90067094d62563b58510edb69aa0eaf82065cb4b29e05ea4d6f43a837a12d6b578e7da41f0662cc6df661d5e1359991d70f6d13c26a148f78fe3b805c0b82a84a4a0a6207767d616f89d591899db22cf0ea04ebe2030145fe299c721b88cb8c219656ee5d9fac9d14eef46808312d42affe85f34e3681928c55c0fa4527a319d9769181743c80d75d13521f0c764c4265b112cbc856a562810409e4681884b33917408ca86aff78d55112a5359ac346e8b37dbd64df49c6dc816c53eda61d1fc11bf9e572a9f141a480820bfcad1d66addbced817015f184c73c1054d03ecbb6cbd60fcf455bece77e8f761e6e1526122e83c5a5c554e23b7a16cb2c1dddc2d099a641e768cb24198e4dd9a0e19cf11a0abb2aef4d4f57582245c8a59b6b840fa3492e926151838d8309f4eb1c086594c4b2f1c6edc6f26fa4405400f0c672c1a759de2a1ab4c2267b472d10a8c32f3fca370bd92b2661e89bbc49e5f47943472034bb6d36a9c774e5cc94499c14f512d09559bea271cf330ab89462a104e8943ef23b7d21c84ec4666ca989ffc164739d2af5c06e3375022d88ff9ec687f568735689a17653a7af0356d70902de9ec85de938b4cb0704ab750039c5439183d1085b7e2aadf320498a7b1d822850893f1131f034abf4d88e29057d3e1c3970b773970bb5d7762c5db750b6fdc271825201ac3fb20261d64d2e5ff4547dd68b902d3c2bcf128472c461619ee98ee59c45999373bb354ee080653f00b8ea193a0baf40aa62defd119dbe3523ed281688637322ff32b797322c379fdee7300b10b706a285a67fd3a87561c6f12974768b5205fd372f8041319be1514e1a02a0231698534325d9a77de900999e74220c7f0cc3bb766854488e752021279b6868d968c31d94b156dd2f6ea2ba32420d3c7ef21f627970809185834d775586c96576ba86a223f5e10a6cd34a40ca3a26709e403ed5ce415a13b7011d01af37a9428dcbfbd59797bd990ef3de1763ec0ff9fa30f2270cc8059ad2794748d9792967896c4edc04fa27175cca85cde93928f441d45f7dec888866e8ca07812892fceee28ce284b4ffccf26487a93d719961024806401de54d59b624f743aa05e06c928e3722ba64a8515394d488f4c98401768cfbc47105865e6d07ab24f1db5c07b9b46982469c754ac4a52b0b38760236bdb1b32cf9956bd7c157da73e93350cbd924f97aefa43d141d3fb4a5f86db203829773418acf61a6b2a973c074feecbcc4f56627108380455068433d54fdf66e9a86fbb28e4258af697f9b4148b04469a70d85ea97336b3fef71cf81da5827cfb435d35f6848f907b70b7ea05288019c06885db41f51c2d8e54c682042fd5b5e84fc968f814d01a7f8f2fcba8a240fb0bc3761589ca0196efc77fe6f98fced9dafebd36d20fce577b91355f6b28138a52f9a20caec0705051db56d235c5e854fdcbbcdef3a7dea0e34aa3021e166ecb498c0a30255ab83b0fef8a78f7dfcd87fa2b2876d6a28624fcdebe7be7b092d6ac3da81fb75280a0a527670d90a5399fbbd7ee5c7760c8293050e11697547d3c4ab2edbf9794b8d1f0c49563779a959954b671b6a4928fca4f09f29119fd446fe849bfa9fe5e1c0ffae6eeede017dc0e68ad6af8c3dd21420fb0b1d33c376af2cb92ffc880b7fe85c0bca3cdc556369adc43b17f5bc1233773fac71a7c9e74b98bb84bf39535ec87841cc943f20ad457606bdf99ffc8618efe12124b495ce14d7464d3f3edcbf0a96826aaed4d3c027b4870a9fd2dc02d9b66a673bdb3cd63418b168ba3f25ff43862106918084cd41a8e914f9728712c8d144c2b9592529fbb22cf1adcf7c1aae743cdf992e8b9ecfff79be3d69cf2066c32e6327230467ab8977fec144a8d5a17137dff82a8d945f65c4973d8693444cc635ac01c46d5d1c1f39e16c75199c56d26549ccdd341d156cb1800ef2065fc7f23125d37bd9c1c6ae758f29e122dc18af6cf1b11befeb325369d4b696ff94265bb3341ab37fd0f0c4da49fac6e384884c30fe7cd578bf9c4bc62344537be9394819cc2b8623fad61d448306de76fe271045949aafe46c2056351097d345a92d5d7fdaf3a630a44573bd978ca25797f09911701341069d18fbb9061186e205c4a4ee941e9196f55c4ffd7bb0d00f8f9a3f6d1cf09b2fd5d6f6a7a4165777118b43eae2aa76b60fa2e6624751c9d9c58b91b0910eea916ad4a4cfe9f9635db57ab88ddfd582b2dac6986367b559717c48153e169e35b9e70da0af03e868335fddfb6bd640cb8fd9384cead24dd26ee49e9d13de68082d9a82f606348daf3817a30ef6c556e17f0871cfc6dc2dac41fb692b7318f95530c252108673dabc87698aa659b37bf25912c82c63a310ec7799ac6e387de6fe0c2d83bc204ae9687eef47ee273e2d3b675cce4c1b704fd1128febecba5d474a6d0c4726792cb105db381354a6dcaa2081f979d070fbd28a338e1d1e05bd1fe6edc99d76b6ed87258b4dd7c2d476b06900b0756fdde165c7e87454beee53d7d2ac46af4fe9b8f57eb4ec0bcb653b6c2b8f9545ed741c381a2758ab0dd9fcf629650be7983eab2fc3a16c862f65aee206bbc932d66c150875ddd99006284efb204abc98f8a42cf652ee494404edd0f5e98709c8e13a56789dc9aa2a6793ddf0092f23007735c7fd3972c8468d7c8ba0f385a2bf61d19ab7c33bd82479db47e3c4dfc0f6e25a4817b134fb449c0af029017cc7351e529307cb2b92418c31a18c29ac707b1a3b529a8b94edd2922c2ac81b0e448e35a6dadc41b38ee787beff4eea79534017525e7d85279fbfa7a1e7f13ac2b5fa9a6665f2a450b074744c547f949133be1859160c0f10181cb7c5f564b898eaf58de66e19ece69ecaaa6c45932f18cb53c8be98eb8239daa74fb258da016c19b5554a5182bc9d3fc634a5643cfa6fca60fcbb377ff6a83e81b8f6b269080092478c868f965695dafb0f38a5172538e5ce8b027a0d6b97ceb02e5e6ab4cae29eabbe796c674f64617e3b6783bb2dd6c6b54851d5430ef803d15bf407cd91c364d6ba59efeaf588daba15a70a6bf447e81bc641038d23d3afe3e628f12906cc2c08d7bd29c8aa802d1d3448adcd84793a9f4cb461ff86c28b3b6bb1865dab4ee75f927d50c6cdc57ee2b08763498f3c32b6eb2bc745ee6143dc0f516311705a0538a90ea584c6449969d5967272895be11f0e4541491584b929c87b86a3761ec26018fee3ff61d10d12a43cecdf5dbbb379b715b0eb14130914fd8e897099777e7cc4b56d875de598fb044d91b0b1201701f4ac5d7e46276b397b7cc531e17494a2d2a0298a7dffc5478e52cc771d5cfad9633b04f9a4296fdc438d7bafbf0b1ded63a3e9eef71832bbc91e41f3f42d56d +message: 2a1fdfacf1a0a37463ad6e1d5a43c79d480a +signature: cd4c37bb20cc2769effcd854863a16d15fc7779dfefbaabe3e5068f1469df38a7d1e01cd7b14ee5ed9c635048bb9d9b92a6da69e193bec27dc570290a14f32fba9b17ddac4acb9eb59863d245d3a5b70fb41270fa26c7a4950e6da40fa965bc90e81f80171e05972cc73a537a42bd5f581fd5e5d9056faef15eff4cfe1b1bee95a591606565de6c45eddac199000814bb476f2cbfda86478d2f86db4a835289ac48d801fbb54ea05e38dc61d14070d51989c6fe63ec4b26b0771e0bdb593bf12f50011219939f51800ff489cf75d6fb77739d56525613a8a523b80f55f10b1f9bb4816601ce175d3c735c45dfcef3a7906e9c733f19d8931d8e42b135755b9cbec09b9a75d31a57736c5108b941b071879fb884cb67212e4e7dded77a34a6ac3db43d911cd3efb028e7292c8ebcb31667278c3e78cecd00adbccf59c3e7aa098f5980310c886631b6869ecedf533953383e4230e814f510f0e001654fe7cb82e79fd97019ac18b09ab868f424687fd72e0b0c98f95a55e58f5404b5d80d1e3ede1c9534087fc56799ff6ec8ccde49888f222beda7c67a92b64103c1aeeb029b8c6d074f508f0b2c4561acb6af65f7d2388a435c786784c5fd4a93b0070d2e814bc2629f08547e51ab2030fc5bb9f9d2c9f8ffc559469e61f36489c8ead592369630e1e59cc27b76d2853beb4a3d967352424aa0d9eb483296626365c0a06bde67baf3e4fc3be6af69cf770f73d417b8143f257cb7149ec15e2391ceb1e5b11f7bce2a11d22ac9ca12e4edc3e7e1560a97f0d0e08d3ed5b2df9ebca90d62bbe41b5d377d23227eebb2b22fa592d5c4608592e7081c2d586d64b51ba27324a016fdf0e8fc9aeeb4bf3ef65f1e20937abda7e7c10b7f6da7ef0cd3b2e0551285ef42c8beaed5f01bd4e28eaf821acea857fcbd522614ea0fe21169e2a69a78fa92c1ebedc4622a1f6ec7105c90134a92ff2ed5755a2060fa08f82795ee02c8bdec53237333e0a81c5a0c545b2e24e8662d09c1a64ab70bba0667f3af7b319056798715ca483d64eac2ff1a8f533372e00e87d0a83f25050ed8478ec509ff4f59492ef03fe6e0124bba9cb75f308db99941440dcc1663f45e0994a8427d84340fe684bd82767c2d6a6ae6d1ad23624222bf36c03508c34fce2350bff5a878095963d95c41545f6e26be428b38cdf10155900d3789f2f5f86b26bd4e0c483ea26bbf19cb752ec35ddb35e9dc1f23ba16ba173ddb70a9f40b3f6c13aac83a52e6fd2995df4dddba82f2622a57d360bdd3abae8146d0cc4f62b17dd995758c294bc6b12850b9a6382541075ee308dac2227b4a5963c671ece1744ea93344fba9c29c5d4355231b06f922124144df729b5f7316a347ba081bb0656664941da867750c9ae329fae405d268b03f2859798e3cfbc7adb76a3237976c13259b597493a3e01f39487ddbe4d0685cbcf3908ff11264f2c8620568a2388f3cc979d80cbea6fdb670a2a208dbd5bcda5dc5a4cce1464b9c3edfdba44c165e44152b220d4bcae06dbc23ac2aff8f18779595372a164de1f805b4fd7c02b1e1acfa3a66197a52182248d8727e72a8e237c8874815b568f298276372a1a646d8c8cf317cee60bd3178ee03884d4a55984ca2a9db8f94256b187cc382108938341f04b2839046aaa9e2df3e3956dffed1461f123ddcd2ff6dc7b693f2ac7f08a4517b77d4d329041cd650568b53ef63df5f1aa4f04ae8f9c9cba278252723450a394b1d98672592fb588f23a1e51e14656b4e0b2a7663583784f5c37573e90773b052e39804452323ea299bc8b4fd1a70b31e8603c9ad859f5fe2bb33a304745c7b98a9e32ad8814b08d23d866d4c70258b64704741680f36280b43be9d0623e4d2a87c79ee09259d35287fa29748529ae4422f82e9173452f14cb94fd2bc9f90083df08fba2ce4731e65131747430748f8c21aec99a99c01d351d9fd94ea888f0cbbd7a4602ea398cec77f995933d4518e7c471ac82701113733a7898eb39342ec8a4bee4e40e8726ddd60588200e39a2780cd04666caba5ef689db00df579b21e5ba3aa61253924f83663e590107a9b187215c04ab63958a612b50dbe7caed4255bc0d3f51a7f8445e8bd24fd170b8106b3a573ee0658dff56da16e424487a07dbde422c50336562a90e8e1f30b537ecf88bf5ce04c5e7b3a0336f33fced8aef8f3df94277544712bd218049b48c915aa590f8e49b55417fec3e2edd5e4783b945fde0b5132adc2e478af267ca9adfd8d5d0963ce2bdba6b2f4794d201fbe2cd6417f6156b1ac820acdb7512e16e492ffd3052639838afadf6b383ff5c7f2761d8df64404098d4d7c3fe63df2f7a030aa75ac03049f95b82fb40a68c892deed93e7b4a802732cb0ea90304d0401a246c92e882b330b3a78918a76d0ad237da6802ac53b7ef80cf33f2b1a5d662484760f0514eba1a41155d3d2902c417bac916b39c0ea4bbc8d718bdc54e8a8fc7eaa964a47b1441c1451a0ac0596eb85464491dd20a8482c2c9a36ef8ac95886c2008ad5cfb44c564e497d215b1c442fcf66ef75d16d2afd3f05237b1c3a73a4134f62aade6eeed1bc10ee32734261991fb2ca0436058678b7da292e2de3d2a025a10eda9570b5c723347ac25eb37ea966fa65d8e5114d00c665812bc777cf22a23cf9c9decbaaf95224db2e4823968d37e56d989b68e15a48d4b8d8560951488f20ed855253dcc341f9d5f42f6a89c0aa3f651bee75f51df95d1bf0598adc01f69cc59970782056d8a60716f51335fd43417c9796f84e724771531549c8b72765f5bd87f70a6b282d87a2c1e4bde8d23ded4b81aaf68724140e0e10784d86b1c10880584a78868db3c9f932f367c2b28141eb4af2ba124b31e9b548c47a5f49c80be4e9376834e070eb83031e937eefe16e3f113883c8fa86114c1744d4f6051a25b165d43aca46dad1484df355bed68103c28a8cc87776d534ec65f796540d8cc78f26f8f4413e16031c325ddcd57128cc5ce92bc832514729d2e6589ef6d35a9c9651caef65de9e29414c6619c05021720fcad48c0846859a3ce06d3ed240039321fb35180679272d85b68ae146b7fe2715238863ab8620c9506bcc416083d41465a316174714058dcba18ac19cc7ee84f279b42cf53c31dd4978adf2b430a9174e68429e280f066e88bf26168078495f12389b4d80d14bf286ce6b4651db66b59b1bfd06588346db21b68c00633b67349e9c609e4844122fe727261f16c765c6a42ea3015a79bb60974542b5af0902b82021e4768a6d974386ad87abb4e4f99e6993fef7bc5ff42c12e93cf231523a22eca3bb8533efe60092ec54a4e001912b7ab4093fb961a5d0a6f0450068993357188f75095de36dc173f4465ae784e773cc69acb0b633a5d301202711bb2bc17a1390cbacf3ce8bec159b732188b8cafe49c04a73f020ca423dda4cb7109310f3466f2626bed942c46c45e6116a00beb1a5d5244213ff3b9652a901e40b5d4ebc1b5ef2ae7eca7808565b3c04d66a6b2b384d262b5dbebcd685054a6ef758d0fa4d9d8e82636ed0c50249cc2b2a6645c4f8d17f1883e61ba3a0711720723b21b3466e30613c83c6223c2c7faec600e7935617f8ad287a8f69a0e24fd55bfaa02ca19e83a7766795c541f4e0ffa6d1ac1f304f75c09150facb0ae330fcbcf68520a7adcff76f0c29f605b9ad8f67489718a45af264a763caf0bd1f7b21ae4983ba3b923b02be44d71029cd57df7e414de428694179f239615bad522cb3116a78e58309f5c4e0d15e9659e2652866fa4f0d2e803c6577709277fd0035c169e5cd23f0d6fb9669026b45efd02b678608aa65ee05772aab5a59827cb1476181bae69ef208fbcadd94bbd2827b76a07656a626b37b5b6765bf38ba479d767b0ad661fcc5f5e1c03059c974b83d51b1c356b66bb9bf4b4e1540c41c0a3b9947bdcb776eca40e3c63911f663e696b369904928647b500e16365a65374e39288c463e075ed25c47ab0f265821995571bb8a843b35c6d2ff5147392b9ec04d905dd24af0f39c3f0fd7bdbce9456169388e2ac0cf713c1694cfb7dbdbfeb38692bff7ee5281c6936df2320a9da21480d1ac7fa84830570963aa6fea49399c07959aa6aa245e03490a216e21a27f09dd930c16f56248ac6963640b46b586db49f6cf913fe880ece1063ba89f8cb782d225c2d7432d44c9c311753f19c58e77113e1969bc9be5763c04c8d684c9d93b4ffbf8683573274af0e9fe0f6b9994d40a100ec008c376e8187e1dfefec86d06cbea89cbd9d9ea838c279451bcefe27f3e720cc4022f4deb34e8512a888975e2384955458b3d219d089154f9d356e716463ac85e87124b68a1d880256203dd3d8ff54bb4a127a24d1efdb6262e84ffec1e6c0f75d15cc9fbfc7b3affced3de92970101535e515bf6dce0e620f1f530f08a25c3f25f7b518778e3208f6d607c7d232153c635622b7f1082855fe2c05db91ff86735e29c42704eca2af5e02612f82c0780471a020819af310125175ebb4d293b3831a6ec21cca3b7c8dfd401193a6d03c2532b81e0506e73cca430991b3430e38889fc9ddef1525567174a7b4e611171c39549ab7c5fc364e728de0e8eb495c78a1a6bddc0142466fc4d40000000000000000000000070f181f262c + diff --git a/crypto/mldsa/mldsa_test.cc b/crypto/mldsa/mldsa_test.cc new file mode 100644 index 0000000000..71d1280416 --- /dev/null +++ b/crypto/mldsa/mldsa_test.cc @@ -0,0 +1,346 @@ +/* Copyright (c) 2024, Google LLC + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include + +#include +#include + +#include + +#include +#include +#include + +#include "../test/file_test.h" +#include "../test/test_util.h" +#include "./internal.h" + + +namespace { + +template +std::vector Marshal(int (*marshal_func)(CBB *, const T *), + const T *t) { + bssl::ScopedCBB cbb; + uint8_t *encoded; + size_t encoded_len; + if (!CBB_init(cbb.get(), 1) || // + !marshal_func(cbb.get(), t) || // + !CBB_finish(cbb.get(), &encoded, &encoded_len)) { + abort(); + } + + std::vector ret(encoded, encoded + encoded_len); + OPENSSL_free(encoded); + return ret; +} + +// This test is very slow, so it is disabled by default. +TEST(MLDSATest, DISABLED_BitFlips) { + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + EXPECT_TRUE( + MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + + std::vector encoded_signature(MLDSA65_SIGNATURE_BYTES); + static const uint8_t kMessage[] = {'H', 'e', 'l', 'l', 'o', ' ', + 'w', 'o', 'r', 'l', 'd'}; + EXPECT_TRUE(MLDSA65_sign(encoded_signature.data(), priv.get(), kMessage, + sizeof(kMessage), nullptr, 0)); + + auto pub = std::make_unique(); + CBS cbs = bssl::MakeConstSpan(encoded_public_key); + ASSERT_TRUE(MLDSA65_parse_public_key(pub.get(), &cbs)); + + EXPECT_EQ(MLDSA65_verify(pub.get(), encoded_signature.data(), + encoded_signature.size(), kMessage, sizeof(kMessage), + nullptr, 0), + 1); + + for (size_t i = 0; i < MLDSA65_SIGNATURE_BYTES; i++) { + for (int j = 0; j < 8; j++) { + encoded_signature[i] ^= 1 << j; + EXPECT_EQ(MLDSA65_verify(pub.get(), encoded_signature.data(), + encoded_signature.size(), kMessage, + sizeof(kMessage), nullptr, 0), + 0) + << "Bit flip in signature at byte " << i << " bit " << j + << " didn't cause a verification failure"; + encoded_signature[i] ^= 1 << j; + } + } +} + +TEST(MLDSATest, Basic) { + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + uint8_t seed[MLDSA_SEED_BYTES]; + EXPECT_TRUE( + MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get())); + + std::vector encoded_signature(MLDSA65_SIGNATURE_BYTES); + static const uint8_t kMessage[] = {'H', 'e', 'l', 'l', 'o', ' ', + 'w', 'o', 'r', 'l', 'd'}; + static const uint8_t kContext[] = {'c', 't', 'x'}; + EXPECT_TRUE(MLDSA65_sign(encoded_signature.data(), priv.get(), kMessage, + sizeof(kMessage), kContext, sizeof(kContext))); + + auto pub = std::make_unique(); + CBS cbs = bssl::MakeConstSpan(encoded_public_key); + ASSERT_TRUE(MLDSA65_parse_public_key(pub.get(), &cbs)); + + EXPECT_EQ(MLDSA65_verify(pub.get(), encoded_signature.data(), + encoded_signature.size(), kMessage, sizeof(kMessage), + kContext, sizeof(kContext)), + 1); + + auto priv2 = std::make_unique(); + EXPECT_TRUE(MLDSA65_private_key_from_seed(priv2.get(), seed, sizeof(seed))); + + EXPECT_EQ(Bytes(Marshal(MLDSA65_marshal_private_key, priv.get())), + Bytes(Marshal(MLDSA65_marshal_private_key, priv2.get()))); +} + +TEST(MLDSATest, SignatureIsRandomized) { + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + EXPECT_TRUE( + MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + + auto pub = std::make_unique(); + CBS cbs = bssl::MakeConstSpan(encoded_public_key); + ASSERT_TRUE(MLDSA65_parse_public_key(pub.get(), &cbs)); + + std::vector encoded_signature1(MLDSA65_SIGNATURE_BYTES); + std::vector encoded_signature2(MLDSA65_SIGNATURE_BYTES); + static const uint8_t kMessage[] = {'H', 'e', 'l', 'l', 'o', ' ', + 'w', 'o', 'r', 'l', 'd'}; + EXPECT_TRUE(MLDSA65_sign(encoded_signature1.data(), priv.get(), kMessage, + sizeof(kMessage), nullptr, 0)); + EXPECT_TRUE(MLDSA65_sign(encoded_signature2.data(), priv.get(), kMessage, + sizeof(kMessage), nullptr, 0)); + + EXPECT_NE(Bytes(encoded_signature1), Bytes(encoded_signature2)); + + // Even though the signatures are different, they both verify. + EXPECT_EQ(MLDSA65_verify(pub.get(), encoded_signature1.data(), + encoded_signature1.size(), kMessage, + sizeof(kMessage), nullptr, 0), + 1); + EXPECT_EQ(MLDSA65_verify(pub.get(), encoded_signature2.data(), + encoded_signature2.size(), kMessage, + sizeof(kMessage), nullptr, 0), + 1); +} + +TEST(MLDSATest, PublicFromPrivateIsConsistent) { + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + EXPECT_TRUE( + MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + + auto pub = std::make_unique(); + EXPECT_TRUE(MLDSA65_public_from_private(pub.get(), priv.get())); + + std::vector encoded_public_key2(MLDSA65_PUBLIC_KEY_BYTES); + + CBB cbb; + CBB_init_fixed(&cbb, encoded_public_key2.data(), encoded_public_key2.size()); + ASSERT_TRUE(MLDSA65_marshal_public_key(&cbb, pub.get())); + + EXPECT_EQ(Bytes(encoded_public_key2), Bytes(encoded_public_key)); +} + +TEST(MLDSATest, InvalidPublicKeyEncodingLength) { + // Encode a public key with a trailing 0 at the end. + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES + 1); + auto priv = std::make_unique(); + EXPECT_TRUE( + MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + + // Public key is 1 byte too short. + CBS cbs = bssl::MakeConstSpan(encoded_public_key) + .first(MLDSA65_PUBLIC_KEY_BYTES - 1); + auto parsed_pub = std::make_unique(); + EXPECT_FALSE(MLDSA65_parse_public_key(parsed_pub.get(), &cbs)); + + // Public key has the correct length. + cbs = bssl::MakeConstSpan(encoded_public_key).first(MLDSA65_PUBLIC_KEY_BYTES); + EXPECT_TRUE(MLDSA65_parse_public_key(parsed_pub.get(), &cbs)); + + // Public key is 1 byte too long. + cbs = bssl::MakeConstSpan(encoded_public_key); + EXPECT_FALSE(MLDSA65_parse_public_key(parsed_pub.get(), &cbs)); +} + +TEST(MLDSATest, InvalidPrivateKeyEncodingLength) { + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + EXPECT_TRUE( + MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + + CBB cbb; + std::vector malformed_private_key(MLDSA65_PRIVATE_KEY_BYTES + 1, 0); + CBB_init_fixed(&cbb, malformed_private_key.data(), MLDSA65_PRIVATE_KEY_BYTES); + ASSERT_TRUE(MLDSA65_marshal_private_key(&cbb, priv.get())); + + CBS cbs; + auto parsed_priv = std::make_unique(); + + // Private key is 1 byte too short. + CBS_init(&cbs, malformed_private_key.data(), MLDSA65_PRIVATE_KEY_BYTES - 1); + EXPECT_FALSE(MLDSA65_parse_private_key(parsed_priv.get(), &cbs)); + + // Private key has the correct length. + CBS_init(&cbs, malformed_private_key.data(), MLDSA65_PRIVATE_KEY_BYTES); + EXPECT_TRUE(MLDSA65_parse_private_key(parsed_priv.get(), &cbs)); + + // Private key is 1 byte too long. + CBS_init(&cbs, malformed_private_key.data(), MLDSA65_PRIVATE_KEY_BYTES + 1); + EXPECT_FALSE(MLDSA65_parse_private_key(parsed_priv.get(), &cbs)); +} + +static void MLDSASigGenTest(FileTest *t) { + std::vector private_key_bytes, msg, expected_signature; + ASSERT_TRUE(t->GetBytes(&private_key_bytes, "sk")); + ASSERT_TRUE(t->GetBytes(&msg, "message")); + ASSERT_TRUE(t->GetBytes(&expected_signature, "signature")); + + auto priv = std::make_unique(); + CBS cbs; + CBS_init(&cbs, private_key_bytes.data(), private_key_bytes.size()); + EXPECT_TRUE(MLDSA65_parse_private_key(priv.get(), &cbs)); + + const uint8_t zero_randomizer[MLDSA_SIGNATURE_RANDOMIZER_BYTES] = {0}; + std::vector signature(MLDSA65_SIGNATURE_BYTES); + EXPECT_TRUE(MLDSA65_sign_internal(signature.data(), priv.get(), msg.data(), + msg.size(), nullptr, 0, nullptr, 0, + zero_randomizer)); + + EXPECT_EQ(Bytes(signature), Bytes(expected_signature)); + + auto pub = std::make_unique(); + ASSERT_TRUE(MLDSA65_public_from_private(pub.get(), priv.get())); + EXPECT_TRUE(MLDSA65_verify_internal(pub.get(), signature.data(), msg.data(), + msg.size(), nullptr, 0, nullptr, 0)); +} + +TEST(MLDSATest, SigGenTests) { + FileTestGTest("crypto/mldsa/mldsa_nist_siggen_tests.txt", MLDSASigGenTest); +} + +static void MLDSAKeyGenTest(FileTest *t) { + std::vector seed, expected_public_key, expected_private_key; + ASSERT_TRUE(t->GetBytes(&seed, "seed")); + ASSERT_TRUE(t->GetBytes(&expected_public_key, "pub")); + ASSERT_TRUE(t->GetBytes(&expected_private_key, "priv")); + + std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + ASSERT_TRUE(MLDSA65_generate_key_external_entropy(encoded_public_key.data(), + priv.get(), seed.data())); + + EXPECT_EQ(Bytes(encoded_public_key), Bytes(expected_public_key)); +} + +TEST(MLDSATest, KeyGenTests) { + FileTestGTest("crypto/mldsa/mldsa_nist_keygen_tests.txt", MLDSAKeyGenTest); +} + +static void MLDSAWycheproofSignTest(FileTest *t) { + std::vector private_key_bytes, msg, expected_signature, context; + ASSERT_TRUE(t->GetInstructionBytes(&private_key_bytes, "privateKey")); + ASSERT_TRUE(t->GetBytes(&msg, "msg")); + ASSERT_TRUE(t->GetBytes(&expected_signature, "sig")); + if (t->HasAttribute("ctx")) { + t->GetBytes(&context, "ctx"); + } + std::string result; + ASSERT_TRUE(t->GetAttribute(&result, "result")); + t->IgnoreAttribute("flags"); + + CBS cbs; + CBS_init(&cbs, private_key_bytes.data(), private_key_bytes.size()); + auto priv = std::make_unique(); + const int priv_ok = MLDSA65_parse_private_key(priv.get(), &cbs); + + if (!priv_ok) { + ASSERT_TRUE(result != "valid"); + return; + } + + // Unfortunately we need to reimplement the context length check here because + // we are using the internal function in order to pass in an all-zero + // randomizer. + if (context.size() > 255) { + ASSERT_TRUE(result != "valid"); + return; + } + + const uint8_t zero_randomizer[MLDSA_SIGNATURE_RANDOMIZER_BYTES] = {0}; + std::vector signature(MLDSA65_SIGNATURE_BYTES); + const uint8_t context_prefix[2] = {0, static_cast(context.size())}; + EXPECT_TRUE(MLDSA65_sign_internal( + signature.data(), priv.get(), msg.data(), msg.size(), context_prefix, + sizeof(context_prefix), context.data(), context.size(), zero_randomizer)); + + EXPECT_EQ(Bytes(signature), Bytes(expected_signature)); +} + +TEST(MLDSATest, WycheproofSignTests) { + FileTestGTest( + "third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt", + MLDSAWycheproofSignTest); +} + +static void MLDSAWycheproofVerifyTest(FileTest *t) { + std::vector public_key_bytes, msg, signature, context; + ASSERT_TRUE(t->GetInstructionBytes(&public_key_bytes, "publicKey")); + ASSERT_TRUE(t->GetBytes(&msg, "msg")); + ASSERT_TRUE(t->GetBytes(&signature, "sig")); + if (t->HasAttribute("ctx")) { + t->GetBytes(&context, "ctx"); + } + std::string result, flags; + ASSERT_TRUE(t->GetAttribute(&result, "result")); + ASSERT_TRUE(t->GetAttribute(&flags, "flags")); + + CBS cbs; + CBS_init(&cbs, public_key_bytes.data(), public_key_bytes.size()); + auto pub = std::make_unique(); + const int pub_ok = MLDSA65_parse_public_key(pub.get(), &cbs); + + if (!pub_ok) { + EXPECT_EQ(flags, "IncorrectPublicKeyLength"); + return; + } + + const int sig_ok = + MLDSA65_verify(pub.get(), signature.data(), signature.size(), msg.data(), + msg.size(), context.data(), context.size()); + if (!sig_ok) { + EXPECT_EQ(result, "invalid"); + } else { + EXPECT_EQ(result, "valid"); + } +} + +TEST(MLDSATest, WycheproofVerifyTests) { + FileTestGTest( + "third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt", + MLDSAWycheproofVerifyTest); +} + +} // namespace diff --git a/gen/sources.bzl b/gen/sources.bzl index d8e96ea0ac..f65972fbca 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -369,6 +369,7 @@ crypto_sources = [ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/mem.c", + "crypto/mldsa/mldsa.c", "crypto/obj/obj.c", "crypto/obj/obj_xref.c", "crypto/pem/pem_all.c", @@ -543,6 +544,7 @@ crypto_headers = [ "include/openssl/md4.h", "include/openssl/md5.h", "include/openssl/mem.h", + "include/openssl/mldsa.h", "include/openssl/nid.h", "include/openssl/obj.h", "include/openssl/obj_mac.h", @@ -622,6 +624,7 @@ crypto_internal_headers = [ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/mldsa/internal.h", "crypto/obj/obj_dat.h", "crypto/pkcs7/internal.h", "crypto/pkcs8/internal.h", @@ -727,6 +730,7 @@ crypto_test_sources = [ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/mldsa/mldsa_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", "crypto/pkcs7/pkcs7_test.cc", @@ -816,6 +820,8 @@ crypto_test_data = [ "crypto/hpke/hpke_test_vectors.txt", "crypto/keccak/keccak_tests.txt", "crypto/kyber/kyber_tests.txt", + "crypto/mldsa/mldsa_nist_keygen_tests.txt", + "crypto/mldsa/mldsa_nist_siggen_tests.txt", "crypto/pkcs8/test/bad1.p12", "crypto/pkcs8/test/bad2.p12", "crypto/pkcs8/test/bad3.p12", @@ -950,6 +956,8 @@ crypto_test_data = [ "third_party/wycheproof_testvectors/hmac_sha512_test.txt", "third_party/wycheproof_testvectors/kw_test.txt", "third_party/wycheproof_testvectors/kwp_test.txt", + "third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt", + "third_party/wycheproof_testvectors/mldsa_65_standard_verify_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", diff --git a/gen/sources.cmake b/gen/sources.cmake index 11d97be644..4647360865 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -383,6 +383,7 @@ set( crypto/kyber/kyber.c crypto/lhash/lhash.c crypto/mem.c + crypto/mldsa/mldsa.c crypto/obj/obj.c crypto/obj/obj_xref.c crypto/pem/pem_all.c @@ -559,6 +560,7 @@ set( include/openssl/md4.h include/openssl/md5.h include/openssl/mem.h + include/openssl/mldsa.h include/openssl/nid.h include/openssl/obj.h include/openssl/obj_mac.h @@ -640,6 +642,7 @@ set( crypto/keccak/internal.h crypto/kyber/internal.h crypto/lhash/internal.h + crypto/mldsa/internal.h crypto/obj/obj_dat.h crypto/pkcs7/internal.h crypto/pkcs8/internal.h @@ -751,6 +754,7 @@ set( crypto/keccak/keccak_test.cc crypto/kyber/kyber_test.cc crypto/lhash/lhash_test.cc + crypto/mldsa/mldsa_test.cc crypto/obj/obj_test.cc crypto/pem/pem_test.cc crypto/pkcs7/pkcs7_test.cc @@ -842,6 +846,8 @@ set( crypto/hpke/hpke_test_vectors.txt crypto/keccak/keccak_tests.txt crypto/kyber/kyber_tests.txt + crypto/mldsa/mldsa_nist_keygen_tests.txt + crypto/mldsa/mldsa_nist_siggen_tests.txt crypto/pkcs8/test/bad1.p12 crypto/pkcs8/test/bad2.p12 crypto/pkcs8/test/bad3.p12 @@ -976,6 +982,8 @@ set( third_party/wycheproof_testvectors/hmac_sha512_test.txt third_party/wycheproof_testvectors/kw_test.txt third_party/wycheproof_testvectors/kwp_test.txt + third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt + third_party/wycheproof_testvectors/mldsa_65_standard_verify_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 diff --git a/gen/sources.json b/gen/sources.json index 3bb5ea56fa..1ac7ec21c6 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -353,6 +353,7 @@ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/mem.c", + "crypto/mldsa/mldsa.c", "crypto/obj/obj.c", "crypto/obj/obj_xref.c", "crypto/pem/pem_all.c", @@ -526,6 +527,7 @@ "include/openssl/md4.h", "include/openssl/md5.h", "include/openssl/mem.h", + "include/openssl/mldsa.h", "include/openssl/nid.h", "include/openssl/obj.h", "include/openssl/obj_mac.h", @@ -604,6 +606,7 @@ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/mldsa/internal.h", "crypto/obj/obj_dat.h", "crypto/pkcs7/internal.h", "crypto/pkcs8/internal.h", @@ -708,6 +711,7 @@ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/mldsa/mldsa_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", "crypto/pkcs7/pkcs7_test.cc", @@ -796,6 +800,8 @@ "crypto/hpke/hpke_test_vectors.txt", "crypto/keccak/keccak_tests.txt", "crypto/kyber/kyber_tests.txt", + "crypto/mldsa/mldsa_nist_keygen_tests.txt", + "crypto/mldsa/mldsa_nist_siggen_tests.txt", "crypto/pkcs8/test/bad1.p12", "crypto/pkcs8/test/bad2.p12", "crypto/pkcs8/test/bad3.p12", @@ -930,6 +936,8 @@ "third_party/wycheproof_testvectors/hmac_sha512_test.txt", "third_party/wycheproof_testvectors/kw_test.txt", "third_party/wycheproof_testvectors/kwp_test.txt", + "third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt", + "third_party/wycheproof_testvectors/mldsa_65_standard_verify_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", diff --git a/include/openssl/mldsa.h b/include/openssl/mldsa.h new file mode 100644 index 0000000000..521a15562b --- /dev/null +++ b/include/openssl/mldsa.h @@ -0,0 +1,143 @@ +/* Copyright (c) 2024, Google LLC + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_MLDSA_H_ +#define OPENSSL_HEADER_MLDSA_H_ + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + + +// ML-DSA-65. +// +// This implements the Module-Lattice-Based Digital Signature Standard from +// https://csrc.nist.gov/pubs/fips/204/final + + +// MLDSA65_private_key contains an ML-DSA-65 private key. The contents of this +// object should never leave the address space since the format is unstable. +struct MLDSA65_private_key { + union { + uint8_t bytes[32 + 32 + 64 + 256 * 4 * (5 + 6 + 6)]; + uint32_t alignment; + } opaque; +}; + +// MLDSA65_public_key contains an ML-DSA-65 public key. The contents of this +// object should never leave the address space since the format is unstable. +struct MLDSA65_public_key { + union { + uint8_t bytes[32 + 64 + 256 * 4 * 6]; + uint32_t alignment; + } opaque; +}; + +// MLDSA65_PRIVATE_KEY_BYTES is the number of bytes in an encoded ML-DSA-65 +// private key. +#define MLDSA65_PRIVATE_KEY_BYTES 4032 + +// MLDSA65_PUBLIC_KEY_BYTES is the number of bytes in an encoded ML-DSA-65 +// public key. +#define MLDSA65_PUBLIC_KEY_BYTES 1952 + +// MLDSA65_SIGNATURE_BYTES is the number of bytes in an encoded ML-DSA-65 +// signature. +#define MLDSA65_SIGNATURE_BYTES 3309 + +// MLDSA_SEED_BYTES is the number of bytes in an ML-DSA seed value. +#define MLDSA_SEED_BYTES 32 + +// MLDSA65_generate_key generates a random public/private key pair, writes the +// encoded public key to |out_encoded_public_key|, writes the seed to +// |optional_out_seed| (if not NULL), and sets |out_private_key| to the private +// key. Returns 1 on success and 0 on allocation failure. +OPENSSL_EXPORT int MLDSA65_generate_key( + uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES], + uint8_t optional_out_seed[MLDSA_SEED_BYTES], + struct MLDSA65_private_key *out_private_key); + +// MLDSA65_private_key_from_seed regenerates a private key from a seed value +// that was generated by |MLDSA65_generate_key|. Returns 1 on success and 0 on +// allocation failure or if |seed_len| is incorrect. +OPENSSL_EXPORT int MLDSA65_private_key_from_seed( + struct MLDSA65_private_key *out_private_key, const uint8_t *seed, + size_t seed_len); + +// MLDSA65_public_from_private sets |*out_public_key| to the public key that +// corresponds to |private_key|. Returns 1 on success and 0 on failure. +OPENSSL_EXPORT int MLDSA65_public_from_private( + struct MLDSA65_public_key *out_public_key, + const struct MLDSA65_private_key *private_key); + +// MLDSA65_sign generates a signature for the message |msg| of length +// |msg_len| using |private_key| (following the randomized algorithm), and +// writes the encoded signature to |out_encoded_signature|. The |context| +// argument is also signed over and can be used to include implicit contextual +// information that isn't included in |msg|. The same value of |context| must be +// presented to |MLDSA65_verify| in order for the generated signature to be +// considered valid. |context| and |context_len| may be |NULL| and 0 to use an +// empty context (this is common). Returns 1 on success and 0 on failure. +OPENSSL_EXPORT int MLDSA65_sign( + uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES], + const struct MLDSA65_private_key *private_key, const uint8_t *msg, + size_t msg_len, const uint8_t *context, size_t context_len); + +// MLDSA65_verify verifies that |signature| constitutes a valid +// signature for the message |msg| of length |msg_len| using |public_key|. The +// value of |context| must equal the value that was passed to |MLDSA65_sign| +// when the signature was generated. Returns 1 on success or 0 on error. +OPENSSL_EXPORT int MLDSA65_verify(const struct MLDSA65_public_key *public_key, + const uint8_t *signature, + size_t signature_len, const uint8_t *msg, + size_t msg_len, const uint8_t *context, + size_t context_len); + + +// Serialisation of keys. + +// MLDSA65_marshal_public_key serializes |public_key| to |out| in the standard +// format for ML-DSA-65 public keys. It returns 1 on success or 0 on +// allocation error. +OPENSSL_EXPORT int MLDSA65_marshal_public_key( + CBB *out, const struct MLDSA65_public_key *public_key); + +// MLDSA65_parse_public_key parses a public key, in the format generated by +// |MLDSA65_marshal_public_key|, from |in| and writes the result to +// |out_public_key|. It returns 1 on success or 0 on parse error or if +// there are trailing bytes in |in|. +OPENSSL_EXPORT int MLDSA65_parse_public_key( + struct MLDSA65_public_key *public_key, CBS *in); + +// MLDSA65_marshal_private_key serializes |private_key| to |out| in the +// standard format for ML-DSA-65 private keys. It returns 1 on success or 0 +// on allocation error. +OPENSSL_EXPORT int MLDSA65_marshal_private_key( + CBB *out, const struct MLDSA65_private_key *private_key); + +// MLDSA65_parse_private_key parses a private key, in the format generated by +// |MLDSA65_marshal_private_key|, from |in| and writes the result to +// |out_private_key|. It returns 1 on success or 0 on parse error or if +// there are trailing bytes in |in|. +OPENSSL_EXPORT int MLDSA65_parse_private_key( + struct MLDSA65_private_key *private_key, CBS *in); + + +#if defined(__cplusplus) +} // extern C +#endif + +#endif // OPENSSL_HEADER_MLDSA_H_ diff --git a/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.json b/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.json new file mode 100644 index 0000000000..fe8a3621fc --- /dev/null +++ b/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.json @@ -0,0 +1,841 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaSign are meant for the generation of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop)." + }, + "IncorrectPrivateKeyLength": { + "bugType": "BASIC", + "description": "The private key has an incorrect length." + }, + "InvalidContext": { + "bugType": "BASIC", + "description": "The context is invalid (too long)." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key contains out-of-range value(s)." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + } + }, + "numberOfTests": 67, + "schema": "mldsa_sign_schema.json", + "testGroups": [ + { + "type": "MlDsaSign", + "privateKey": "f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f743fe2130a9185402b9ceee616adcf0aeb1b0adc5b7bd65b8469d9f73abdd491c7659d92d3c6412cab96a2de13921e6e28264326efab5964afee6490ef637e546aa6b61aba997daac4623b0ff33b4bbd1a11b2942500c737263b5a7b599c454d8442073855220447142672283106762324611334160331766716756876656306340247416643645788214401245418430332335014484266482863377264642414206877226544283410340543730247627225170453086122730061663720413006672700563545553308822632620516184200008121626450075764267612441006130131054105366434124552571655324024583437672387040523848872722438820242507702366302474748842265201861837063577540747600354316761325342724414244818807083666356763458818178730038860216678417556380528118134053806822634757706213780383068245037164828641644088712486666263228563278454077257226514241838623545046705775223416234252343326255430503041432773656045076111030080425435056385571604503837242375546781881637734567572558705071178084805270422810171125366178026263016101361657832287864742571181540760851116286862663367644442262567158480021516651834322735675322048815731072442030787610367014103700472855221118750731347147044142277174111214348353566824008064045627684488722675430832058628153456611117540326632627423710448122776364844470152004860248280007708325718482525552264175551177652286873852661125522335557583772044467545176204662306421267463234564162341677110818645117237332101582140278868362167651433830007175820104352222533408675507171265571436206825831530330505138722014332544414101453361865663285823831165654236338452842635115828271801121281582618708170531302365851580567783463004004872080286853401722161683240507540174321162726623307704357168735441623362805550771378557544025577664653883727145477726652161328654636765354441580462755002525303617004457666056523833318532171037664380506224158805461788342412558636736557807030038168058241037440287466117173258168248137753751448321557734277603877752226522005384287417756673375054253360826560561501724117752720403752166506773562110186547571130831846605687668266432088723466508134167088157733748882573483206443607642671007311272002682616013071771238832745526182648607836043640787500384324825714344453303465740312784685175588706426626253688784802024002168480055006521746017031355351420356313376038357500434586744155331653510137233135501164040340443180537652161358720413477471755650162313051181844240248360407773704517351058764775404747121083306411352302550060311617664848461285205032215087833220558462453850275140274158215805155381750850757850271010637641250528012682211173613444785706268032670127024707747567314772632848841668565545456641117066848041360116507056675046470163210801085300085527862576471877326436205146166232414075335513375673166307774724018723351488672332685528233522486007870307457262016571753124063541231514175538351737543321726247362412023101043212535074048080016006886215511021520172701460518406542024738500552450424583471822538241124124282248288348872240758184343246825136527273210452765138144072540628287154522674671801747806751802628540570743817583756538088277258068473227163621044527db3e8a7b37950eaf9af3770bd6b8f8c9572b54256463bebfcfa8920624daa12fccd1c228c4668f688976a5094a00b6e30694ab2e017cdc2d4315a381bbe84ee58340cd6bc6fb225ddc2bf8dc117ce2be59993e5a521f5296126f290d10097bb2b9f171ff3f5de8a5047e76a15594c3caddc7c0caa852b8aff91f435d3f039d3f27963c357691e9c9ee543f32a77691f8b8ad98d711f8191f5c9891f593d8c754b07621a42cd25a2e95c32156a356f7bf71d6a3d1be00c7364741f2eac5d0c5fb3ef93c6339b559c9b2c4f518927fbe1b87d49546d0c9ba801c224a1cca84916aac512fbaef6841f725c72b927b55d920bb9b8df4e89b9b09da7adc24fa3f9834a8a0380bd42f07801e4afac2bc1e852dfe41b0903990289190ddcdcc214a680e0247938a4b54b704bb6f0affe7ce2171ab7e05f8cb96abc352e44e9b9f60f6ceba0ff95703209197657d8228e93dae9a9f478a30700a6cdddb4ad484f963afacb39a3186e94e097fa25ab149c4c438458b24369f62f87159396f37de36fbcdae2acc7b996a90f66c6de64ad905ba6d4508d3c453e7d43ecb7c8692244f3de88c975046189a438f61a1a84e8d0eb11f93dae6c80dee63c2a3ece5b794483d60493a84dfd4d267eaa205ad0b9491e656e267eec42f5d3094982452ca10b420552d684242bb72d651d47e96da49077d73dec8fcbaeda2ace53156bb4d4392e21fe094a2a32d3eb3d4163ab50a8528800464c05cf2db162da56dc13e709844dda7cbae47ef8364c8c3d5fb471f9407bffafef778486c304088801624aa2318433459b4794f4c31ec2cac49d56504602db94a5b882a92b06ba9ea1ac40523fbf4ec1dd473c076d3e397941c821895beeb4b5fd5eef9246ed1ac724a2aeab43c56a6584bffcf4aed0c6629d5a59b719e5d677539c3dd620d861ee7f9c0a5f116a17e4bb3b16a8017e668612c1038b576e39dedaf7d848d02024c0065f1b896ad6594af4477c73544ef51f3e612c80f11150b1f394b9fd899fa6d927535efaafb745133a45442241579e57701399ba23b0ba62a2ef13b5eead46f02d2c5a91fc031e458be09a8b5d53d9843278590bf556e2258b371f14f07cedc213302ecc895e15be2eb0e771e4b1d6d10fffd2ab945dacc52287e8667ecefaf3c959dc5bc18d0d953ce392acaa67e3f457630cf266c7665253c3c04cef5a73aedee0cfd06efc300887d4694dbbb717f2813737d0fae91e434922ea831ae41349e44ed0fe9101309dee68c1337f050e9e16113e8ba47877202b97113b3b876f4333ee620cfe37b69e597162ad40d78f5a7be33ebdb38b9eb84dea68e01de157c7e74f4522836b64d146f719df851b60fe69cea4667daa057bc47a47248fc3073a904239c0f8757cd8aa52e5d837fbc6490a0ffd9a3dfbeed09c24c61e48df0695d8f37f5670aca01a3fbb2a5fd3bd57cf38c453f80f9de428aa0d860b13231c5b2e435905bae792ee21e6104535204f9ab1f90d8c3123e57e2d01b0091ed089b9083438510579190478b86980370bb0170992673394509aea3a64d241b0d5388614282c4172796b00bcb034769bb492c0fdbc88c1a30a040d637a7b9c496f620114546133fed394ab79413268027d5418bd61e6ce3ff18ab83f76ea0a2e5694a48c01931cbd1c4bb02a3515ba3fcedad86e74b2848902089986bca91694dfa712b97c4f2878f287590aca47afb18d1ee6f502b90749f8ca1d796309c5bc96f5899f70fe0b4b5061668e62891b5285546f0dd2176649e5cba2b206953c7b66c57fe2e67c1c6e45682322d82c569c543840722756b7b4c92aa059e59983fcc327833931556346b83d7519b3a6b93691e74af6d26fb61bac9cce2f880d1f194d084171809bef926e99218f664bf18f58585985534281b6008d86f48f8c4044a4e4c89f4f08cee869c6a09b96df42d6435433d247e9e1150ac5b09da7f66d4f2eb0fc7f8f22bf11a0b03c9958f0562030d2c93b1c4a554e86b00f7c2e464aa54fe018bed4578f3ca0ee8644c3537b86da324703e7779fa897fdd4b867f7620e7fad29957f28067524ea180380428995ea333a3f291fdc67f0364cac8683e199a9a85c7caa3cc29db52f84aa0d0d07d5677d74816873e0af727a8555149d41d40a1eeb5944328a23b1be9e55ea81bfe461c86bb1fe3995e9f8dc83a77b06257c6356089bba2bd44e2a7acacf6de34262d22b0f899d0abd705637ad5ed1de2691e498851db106f1bcdada3a2f96908d3774f661fe2e8ec3ec598b936f4dc4d04b80efa4f57f3c55d0ff990b313643a8126aaa14d898e338f5a261ae5bb17b854cb1a87ad626d3b4ee29c567baaf409ad53891f707c148f49ec16f9882db396d1f140ba9e8b0c9a0cddde6592e5e82de0b18dea363e8605ca364aa68ebdc5f3220b810125fc787d339c6a5a68c92cbc64b5d265ce7a03a06a2409a8a18f000691cfbc5b205bcc1926efb589b82a7404d1bedf09e88ad286f7711a6d67ece4bf76fd86556e840d73f353d31b4d1c3dad5e83f72d540c601983cde7171e67b805bdabe3cd6788e30938b0398c1c8cdd5f8f1028f123d2d612611ce15f7637d2d751e59df171a4014efa4e8420bfcdb75b77c63ad1dfde967d4cd44792d1868d6df3c5bb5f1f3617861e24ee6fb58c33e6b82a57b29422dc0c5aafcf0ccf44557ede0e9f7d32be95f4a214524a30d37b85f1783c3e77b7d52e8648afbb9a03435c59d6afc2ed3b6ee434620c0b368ca6337cc7228916c5857d1bef27502014a0798ab099a7d7d9f053175b9e94d4e3736794034bcc92a842edd555dc74e69906a8021430655b3907ff0d5af127c847902c783e5e51bb45a3e4da6bca417774417fe2cd5d8448c5422eb55ebff2a44a378d528ab06419e6ee4ff6608eca6b44b8c71f55faa714bff9727dd3163b090330713d90813375c88b8681d491527f89b87f9433cce8f6dcd83fbf4f00215b3caef344b38ab4bd9bc5e3dcc3624fb60ce34acd7340b14d9ab48df15b1cc839265b791a417f90cd463df719fd69869aafec64df9bf010498e8d6397e1cb696fd68b38ca9ab1faf67b7123ad01781ffce12a3dc2b703cfa73dce16de7c3a09eead7ed6a644f96ae33a4bf179122906c969e99d9d99dc3472de3c48e80be4e9685602b23400bc292ad6f2fd34a2afb87660a010fec11d3ee82c164fb267957b6651d9150cfba16650952f8f8863709bf5644b0e4738c45199824511fae580548c7f655f0bf0bf3102002d80c2b2c3adfdf358f2a38346032120519b31dd906d3e26518b867d1dcb91caa5567976cada346044dc8e7274c0bdc0597556ad059f711868b83b8da5920304d08cdcfd3d5d427287f5b637fb7e2c14253452915fd6c6614f93c3900c6b3469d7bd87e2e5f15629316a7e8d4dc12ac80a89bb8c6ae7238144f82792bd04c2e741beb130c2a5a9caeb09e8f02b1480ad42486d0d8e5229072dc139115493c2c747920ad76391dddfd66feac8744d5662014bce98728b8d", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "empty provided context", + "msg": "48656c6c6f20776f726c64", + "ctx": "", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 3, + "comment": "non-empty context", + "msg": "48656c6c6f20776f726c64", + "ctx": "436f6e74657874", + "sig": "3a1f0e89fa72e489e2c4c1607b0f22ad03513725660d1ed7cc9a6b83580247a101ff45480e4ba49b1feb3bde46952139d3e1d34d7da0124e8ffa05bd19698be57ffbd5c2411f01a0588898cf4af2b3f3e1fd83e8befe03806d91869eb496c8ce989761da7190e036eb2bd14a8f9e195d5ab8a1b2b11dd56a098c1e7ec6d508856aec98b74850e1b934600b8b7d33cea5f79877cb9b1452a2fbf5fe09651c83c2b965aeb496a2a4edacd4f6f39d56cde44c2f99c2f0b548501220f553a1ad14c6d8a970d1cd6dabd4356568621d22c70dbbb21dab61c10876e34fb20d3f012eec956cdc9ed81c98e2810c218dfbe1de709ceec9dc2eb2590d31fe9855f8a1d14849f9df5120bda5a0392fd6cd93e2e8e5f80e6b30f45e9b409f9e251a0ca2aa8ab99394e9190f3c2cbd1bda77b49f9ac887e7ceefc333cbc49d080726cf373753addfd13fd4204f12c07a21fe2ae5d513eff664c0ae4780f4d4f87a807ec63efe098e7d196223276f4564efdd574402c77390d2cd72f4785501f89175f6d38768b6c77838723cfa66d42e3556077039ee8fb363b67c174fb70f78008229263350c14b54fd9361a9cdb29fdc57909c757f96f9f2c13905f44c3e40a16a92b0fe509ae9cc3647afeedb032464b176b6a1afa78df4fd6bb765e37071172bef2b6d045b9a51701d111b60d0a639c0ba034d5c6b4c146d079a340fe53e9cace778a995ceb2d39f302f066097eec6f65f775a5e803f10af031dcb3eecb2bc4939f478c5fdb96e0513d9ea90ee2cd46ba7fd45f88e8c38a23e06fc5b2c624708a5dee0d00bcd976a8f75e35c80caec5531ff4ef8bb735cbe7ffce86290eef23248b19272692b758bba1de7a66c63a58315e48f5b127849c759d185908a730f1f29272003e6491a0b4aa9446da297338e04a60bd5f8413778aa08cc0d146ba76a5ebadc775af2b0b3976acb54de8910417f857499d8395be90d207615dd061317e5385b886281699e484a7f958715dfdf3ec30d5423d94e0d1657a24478967513fc741fce01f848f9fdb8fa407b7cda2f7a0eed64d9795a2bcc9e12c1d09b4d71cdc9dc3fd2ba82251f0a9fe5ff32732d2306900184e4296bf4b5b92c106d72a638c5f6713f49a7099786b32ba7a8081aaf0ca40f9919e0645fb255c8a7f4aa672999ab84a19b9d759ce478b7492b48a83eb9bde46e7c5ea1883d03487ba01c8a9c4c798a765b18b311115d02911dbaa5566190006ba40f5ee86bc22eda4ca3d0e8fee49b1a61c4057d95cf797c30a7e06d1012c1af3622629de1765d3bd928df0cb9cc7e30299c5148f782af4871556a0ec4358019ef6a434ea3e0292e97c714fbdb3ab14837257947eb7adc9c1d682123a016432e1eea5afd039bfbade397a9360b674832d2c55d521820c0cbe68bdfbba6eab8189aeeec781362fb289883d2a2fe87e287b8d940ad6a4136b7b388b38b0913f2fba42dd079cac04a071636b7e5bca67b44860cdd9e5f9cd77f07e524e9491addac1c6a66dedf5a4f814fa54eb9586bfcb1a6d4a1a166b1074d28a9915167ac4cf279e8d22555df57cfba8bde251483d9b2aef08a180ff74edcbc1bc2219f01fef23d77fcdc1d41ebe683ec96a75a4784945335736770f63a5f000da542958558b5ee375c1c16a109d488d8b17daf2450f35e0ae08fecc139bf8d5f51f1d9a1cd738ac3bb1e91a3bcdbf79c6bcc9a09eb11bc97a7062fc4e4e1c2e796241dc42481d3dc89b31d2337e8cf727c43dd393bb738710ef7ff96521dd92be410f295c765a823e1984e63c534d5f040753715edee4c3f0c78cd468eb9322ae8d5aa92b88bb172082cd08148a8d208d21dac81f0cc516d08f9c0b7097d91bf73badf049b62085328e347e20cd6ac26c64be5271f4761a16ce90ec9c58b2b71c998404e1411f1a1c5c6a6fcbf260eb3e325d1f70132b5f41a279b082712005347fc7d8a6a960ac1ffefb33de83cd6bc704eedd8ee937487635b696975a7156473937d7c301579c4e531170a6d109d50185693d9dbea24781f391fdc1baca492f00867d362797392af50da481552b86f323bd297b6a0cdce20287f0ee6119be14905ec55851768ef95d50130965c6877ee8d91e1fe19fdbef7c80ef7f93968a0d717c354f071bc8cde4d69c84a6e876a261e620a0f7c959da0c638b32d58325b13ddc9fbf566e1f411edc9b38a2bd031a7225551c4bc596958b1c22d5ecfabd2c09448417ba8568938a1cd02068d4ae3e0821dc96247ca6b704a0af99acbe5ec66b28b7c461da48743ccf387771a15eaca6392341dc4657d5c4c986b0648e712ec50f22e3d68b272dd9c34b63aec5686daa5a0f9bd259138b6d967cfa368c04c48657b2de2133b4c47147877e080d5588b09ab0b19d947b6554aaf43601b1c7384707f3091331a0583abc41bf448283eaa4bb001a44836de63e66eef64b04d82ad32c4369bdca012df554097e493e77e1b26acd103b564b6e8134012aec9cdc52eea80955a76d1beb2cb87782157adeadf2ae6c6a4b49c031d6769be9b42e6f85c8c5a6d61947f931c321b45dc34822c8523408c77bfe32048719537361fe6a1c9a8f3467cf5529dd597e19285304c716f9144debdfbeeb16ed742fa17440e02cdae4816699faab22cec162054df5d6ceb6394cadadf5d60abfe5c1dbb3790e4a98bcd9a84f6d4aa8e5934d80b40d8da632ce6640ceb070ee6034947a094337c013075c1a1267a95c820b7eb5f2aaaf20736f09502faa043cecc39f2ce7ebc0a14f846e38fbd514b935d2a46dbeb778223f20694985d27273a9be7e1be3c7dc9b8af87c58d35f4cf6559f48d27cc7eb1c050c76d85edd69995ea3b2e54868556758014ea18e18c11db61c56436ca2ac66260635d927a72cd707ff5e533704477bf9f578848196e311369842846588febd3a229d0b4fc04a5848d98ca55c3996e34d2154efe73a63f052da1ceb72bcd844dad8a4a4546cc6f94b2029b4e2c8a65d2b50673668e7abce6f054d50145b744b8103592bcb4804b446e1b7f4910843f5cba5a34e5b17309eb287c39bb98f6c220024e7582367d3e5e83737ef64944437c9d462c94f61c754a887ae4e5f1d2d64497d2b7fe8e885af00e8e8ad2d998b921a654616866e492a32742f319efef91df3f2e3d2697a4a12b107ad94da1d64ee6c67f0e9cf5aadae3eef52a22ebe342199cbcad564cd11685e0678ea3c91bcb67278ae4a6ce5664e39e86c3233cbdaf812516aa824754f6493cd5559848a71275b35f503ac84ccec4fd172b09f9ac40543a54059eed72f77eaa8d56645986ec8767e78c2df76f33e549b561b977fc5daec7436735a46956077b661fd05dfa124fc30165d5a14d9215e75c3134cae2a7a8fa490dad2fa745003c2d74d83ed13db927f4dc5cfd856c758b39915ccfb695c915c3ec5f3257ec38a0ddfa1401c3527ca271c856f2b00fc4f44416f7a387aae1e88ca212d81a6b4ca1e61c1ed2809e41e78ad8fb170ba1e0b138f061fde62eb7cce2eb8ae434b37fd4eb78b85990e7f6d21b32b4cf9dc57fd9b46fdbaaaf25139315a99419cfca963b19c3fc2923c041bf43ccc6147c3f9736a162a20152ee40effd6a3a29523d77dcb14a70b4ab512bfd11980e30bfd77304eec045d50b5923e22def0c83439e4d0326d9a20e53c43797dcbf17014f80ebc2b66fa6045a8b402b7fb182b43bb8ed6d569568732723b0f7807ac79bb676f35221258fb1283bf7c275b2872f2c625b7e1211b381454ce044a3e8a634488ece71e6fc58b84668aa744302b8a061b5674cdad160c2d9ef600385998c9f002fde9c829a6be84fd27b8cdb8f328064210918f28189e0dba18535d978efa8a8157cd5a477db7e3c909a54ae886008a65ebdc3eb3f06b89ca21ac3981d064fa15f01b1ce801a2c515af3298c4fd5979e6a651cec9ca50476773a755f96478397dda65db9fc32b2166dec033bb46fbad0edfd03f3c543e144c15dbdca9b83f2c3f0d5357cab1180472c7264317b319ad50dbd476b8f6545d86e5e399cf6177461141ce2e438db3100a0bdf957266c9758f7039817141bab0b3ea234c317554a1b30081eeaa6ccf3406a2a3e38d0376d2c50ff03e770be90cc3bb1c05ae9ab546e21d5f1cad5a4df5b53684789e534f2983bdf41bf9244d9594e889a2eef8a64789b0e327d3b48a06229ff0e48d669cabd64b7d0aeaeb4990571e275c3026a75106083b32dd1f33511877c7bf78fa415243d59474044bad21c773e39bf48619a7bec8b55b951b79f097cac697860b20c09bacde7a5e8054774db8da54742c32264f62246ad1945be13f1f7c856810e9205fa8dd797fbd4def035107f85ea309c1565f0ee1fc1e312d0bf753aed6a8b7704d8a1b2e88703511e6ec48c17ad33cac96aced306c8c08dbfc12c242d6fa52c4e51faf4cd3b331f57544f371fdfeff6c2d5abd7a38ef1abeef3a003aaa7ad6d4dbca80cde878cee6c46429d86c64c73671093e9567cc807f9f3cd9dc501878051166220c2d90915ef8e5eb46c0c07befd7a63cb38f5e9b4a8f32483d998b67fba733e7888c6297359fd32791beda81f7e8cb5d8ee05124b646db4ebee1e477c86bbbdc8d9f2151d99b8e6f0f23250649faadbe7ed2642505d7c89919bc10000000000000000060e171e262f", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 4, + "comment": "longest context", + "msg": "48656c6c6f20776f726c64", + "ctx": "414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141", + "sig": "88b645448a1c81f55c81631d057b1ca1fa8bb42af19f1c2dd2bf12594f23b86e17e383aefec687503d0077658497fcc508c8f7b9b6ece29777cd6625c4accd38e27cc4822ffb61fef18380362d29ec040773c9a2ce8b6dd7a1dfa233b76774ea41c766915afa7954f5e24f992d1dba4862802bf775d70c422100717a0e4d9ef9e6d217588cc6b9e1199aaa4d89e78ec1c7ba567c645538e4e6cb7cbaed4dc0663ca36fa036ec1d4334249cc6183033459c3035b4b56f0837f15ad908e2d9560b39e13580497ea8d5e8ae5ce71ae876b5b1e1deadc205e8bec65a724eebc1534155c1f81a93fb5bc6d00df71d8eade2905942a4d6234ce72bec2eeec3edfb7da4a6cc67af12c616bc63dbc16ff1467f02fa0c99a4b135b6a71e37222982f91cb466ea920fea4a729ed09d763e4dfb1bad062ace603c65f952e2df88c6ed63fb344d353265f21aa0e5548676c5d4dc24ff7f1ab1aa91ee19e9d0e72599c85f51fbdbd4f7d21a35ca87ceb19cc9d28df071538f34382fe278bc512f534cbc1f747a4497bc5827de2aa7b672bcf44988611c2e8e8ff88ec64e4ea101d47c88672b1794c1af23ae4317b6b5fd2923ebb7c25239d9efd86489fe8177f6f27de7e80833a344c3b907300c73ce9f9cb2a39296c59d70e180f14261a51814ca7c8117e33f800c126df8c92de498ba9a443b480c9f6c23d26e73b0299eae2a1223756132e3999cdcbdd436a9fcd5073c3e6212ca0dd3e734e355567bd26776526c15dd1b2c2d09d8604da0c0cb38dbf5fc4615d9d5a5ad217690308e34f549981656be6b144de153b9a428a314a19549688d57c8bb4543f12424622e1971c3b26772b3e74743d668c9008debf1ddd942ede5206ead676f249b93a324d60bcda8be119a61f9bec64253ceea1fc95ca5235ba41ff8814f83698bc3188ab802f2a6f33b25412a729635b7e530536bb90972750ec905ec1336e613112ced0a3e68427a2888b4135f8eebe4d4a9cb104627ddc182f319bf0586b82a9edbbc17c11abab38f2add065fceb1d419259597e4ba91ec5d15502f3253bbeb75917b2fdab1c8457af97ec864263d8dc501e9ac754f59cde0373efd9b18463a27eff11199afae22711c18172e077a0feb457b08ae8e3bc6614a2603e95eba9eb230dbf48c5173c1893268fad24e31a5bd323d5b224c0a9fa5fce2afd61178390fdce163b4ffa1d8aafb248ddce727070677310cfb36695b8846c4a32a9973c88ba0e17a1c26d62f716858200752970ed6490eff966201c9ed9cf223ce714eac732d52e0f63365c3b2789bf8a09642475407da12fa19394c55919af3a02d31e26f4270d71eeccc5c5373ae35d1fd9a07d500623b1827c4674287083cecb466f584e31ec933bde9c83c57e8a90a141eaf4c456688f8ca1353e64ebc7cce779241df3e34e7353cdd3af446812c4448383efe1613e5f1f6e9c08c0d5971e7ec28874d7865e3bd4cb1fca0f7ca1fc499c718a8ede6f91a8232991ccd78f918ada16271e84c6b8b679a8d5ab5f7a07ebc82b01f58de7a92753a028679ca244a72b13eb5ed2910da55a998c1f427d2403d33862b05292b1c0bec902b51f4efa0264e6295318c6a44befc85e00ca887350ad86ef9fc45a4a01322522f74b7ad63abc6c08da9118319d84c0b2164c9300feb1f2ce80de5a79918bae083397d42a9f415a40f0347d25c82723d62b1fe52d02a90be1cd7cfb5c1732d644db047eb48b50ff38ca74929edda7385cea85a07c798cf773d4d4e29efb70125307582752001d8f3a4ecde8db26964d34f5563a6683d4939d237ff6a68361f0d2e863bdd15c39637e83efb2b75902220434a273b3ccca148267aae092d8a2b0aca3ff1b352cd6b331bb63ea3e69cce2c86174c8b2e0d061a35b067f2fe7d9999e2c1c07f07b1e98246af36403b2a2bdf48c7e4397b3045303dd8e3af1138389b0967fcd146124fcc97fa524e10afb0ddc1294b7543f77d0dbf0bd845b7f9c36dd91222ac30f89d59d3d048949a456b43338cb1ff1b8392b083fb6fd71797cb21ed52b94377c9c69d90111a30612e65aba8e85fcd95fe53b49f18952380c1a9d9347d21e9a00633bb119481d7292ffd25ec5d4dd842ba2c775757f1a5d26025e4156f3db85741bfcf60f5efd580bea6fc617ebeaa78baf88a0db57b13bb5dbabb9cfd6c8a56b635ecbb1fba800a0cb30a6c241096f6df1f04bd44b3b99a93545c6cbe6986e5260384824875a4ea2ec84e6574fb6f08103c4da71c6689cba16cd28e8626233bafb4edb9ea07bd02676351d57261586832ad67b87ad61a59b7e7b8519e85ccde56722a6cd2a7649afd5034f98f1b9c1cfb7d320f491dc90002bca428a88cd063a3b30ef09fcbc5d6a4ecc6887e0b05b4179c0bd4d8f4791c5cc6a801b4c54e6568469b22b52638a5a514e550df53aaa1ae83fc9999658f86ee16661e301626fe77b064bf94b00fea4b8dd0237906fdfc6cc5294e526528675dbead67c7a4de642af3d9311cd8f2ad66002bcbb35668da0b8f2f02feb11b1b89c264cb5a088de45093cb72c4e6d54ecb5f1ba5ceeb2b95c023b412ab52e77338bc3859369fbb6996a35842b578a3d844d1facc6e7ff7bf31959fb16680cec82534792913dc2aace4143f412b09fd09aea82ae48f2d16323a8abae6527967058e62311f3458ec0f999a3ecc087501b40a0bd25f6fa6d126775bf261d0f3c4d428dc78c6b594bda8426342728ae4035e8527e24e01ec3ab9193dd2a72c84524aaa685bd3ace318dab3be7d89eef18a887c772242895ad9d555c444c670f2641c462295ec0620eacf3ba75b8fe914f1be38dfd9d12b501e09f931556c8798e1a40806c67833fbd2fd40227e3854e6af14a7b9b300fdee969e84c76b9a142b23de64c27ccdab63394c6d39e66315ba1a376282e8f7580ed60eddf9ce0724c57aadc7a8ee5b491605ddcd4c4949cfd6cdc0abbaee10238d57b5dff3b38d3607e8780d7bed5f52f524ea06a94ba7e2ed980aa132fce04004670d520215f715e2ffcae2ce336af653a754e53de4ac26feb591e923a6a5cb9aa97e71f52d0f4698f02eeafa894faf56121d380e24d2d82dbd5687e162ac7e93c6d97029660485d5db8c886480c6339df8d7724201a80dc54cb9637767522e50e5ce696ae29a04fb5b4b6740bfda56a9b80b507bada2aca4264f0de6493e6a7f631394838aeea1eddcc9142fe31558b4756f4f2745f31b58c2c1dc1b2550cb5bdea478872ab91393048a908673106690c8afad8096bd928e32c965bdcc3a7cddc9411cc36faff3d9d4e7a5afad0d0c5d3de867b990490edd8497f3a03ecd131e7424d5b0d29543b3cc7ddb6a1522372b11de1649046ce787f6fc8219b0a3bb508f1d6ec2981066dae16fd127df52cb9055a139d7a68f0f4bbca77e7ca8ff6902a4d87a59671da1b867840fa0e07d8e3667253a41525ed18c679c74cc2fb1b7b00ea98090eb6f2a24da3885efcf6fa31c66732614083d114e7a2b0478184bd801fb36e79f670eaffedb9a3b56d7648009c6e4c33da1f9888b54ec108d21c68fdea0bc60af17b6958479f91ca9685d9704553d2126c3cd240deaf5a0aa8bfca0e37899af660fa9fb5aba33ed1a5ea5e388015b6cfcaae014e933969623a66060f5d396d3bd0793ea79bf9189ba24a36c1b79dff7bef60f921f27d2a46874b282d5ab9839722b495fd6b0ff494f3410e0988006f8b4bced46f7d0f41678097c4f8d5b690055d47c37a887e0fdb1ef45d90be23f59d637f27bc13f25750b83c005e68ce669fe15e47f33b4bb989f043fdadaf7c11dd0e652542d5103ae73d41ef574dd82f0a1144508076276023c91adde4b126772ef620b6450bf5b25fd29dbe3a529014b47243328e309ff4245a8aa667408ba5b4255879ba6bfd4f57cfed9219f88c7656838afeb58aba3d86157a4d1385e7a29d4db695702566f424f3b84f9464a1de1e5ead4683b38f672cbcab96b2c23e796107ff5bae2f63418fd3ab622868312cb1aa45911ebe5ad6ceec0d9138f1e10410758f024f1b641dc099e5bcc83fad7d21d503af50f7ee12da5ed1883689d8dd0edebf6085d90380f5b55af179ddab5df7673c24a253bc3d199d41a0e860477eb1055ab7883528c9602ac748dc1de5cb18d191db75f81eea0db9949ac34cc284643b2f84b5b3cb13369a5ae40a4b59a4462783c66df5c84d123fb6e171ec2f7801622b5efd6dddf28dce5ae844db98e07a24295ec20159448e2fcbafac66c004f6f9a1c29ddef7d500d83e783443f192c79205efebf0c104f56c59c59ce7e1906c6c35b78417f1d9faf94aea8e9c77d84f1e021b40423688dad22c209c9615f0f09557ccced493c06f4b1a4bb841adcb50070eee4d40ce61eaadab7294051682318d6fccfde090f447303426949dc93f2aa1b78c70e68e7409969e74aac563748827a232cb8c277a3a71d53d8ad9044e78ee4dacdfd8f31d9def44a9cf36f48f019f7013a2c622d19505236d18b3ac6ec5eec629b801783979f9bad8ee2c363268689c037194bd8cdc3b4db694e443328ea40122235f7809d403910667d99324899ee1b5f8890d65ae93d5a899fa9d5ddf6324a99bcbfc3f1688ae4000000000000000000000000000000000000000000000000000004090b131a1d", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 5, + "comment": "context too long", + "msg": "48656c6c6f20776f726c64", + "ctx": "41414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidContext" + ] + }, + { + "tcId": 6, + "comment": "signature that takes 1 iteration(s)", + "msg": "0700000000000000000000000000000000000000000000000000000000000000", + "sig": "424ac14fd2cf3f7eb28b104a7418909e84eff42d2f6e7c4ed3874838f8580d918a5d229f8ad72a0e093959da15f05e9942fad12ac1fe73c9de377b85a0f9d7203e6f8d3d4e83e5ac52a82b7a77c0096d92d40f2c1b7e194673faeaf16d7bf11342956d14d7bcd45f98ac9003ec86da5a1b2775d0723ba7350b81ecabc464be480d834b3965fd6554d340b9a11add210c6228f29a8932b8b6a00263777039533e1580faca62a7885372fe15b4e441a7595a13966fc05a95926fec9eed7563b1347d2b8d55e15212148e9f7e6e6b3e8dc30c6a1d213f66f574588ddf5d559438b1bfe01e851b15108baa97b64273d2e850b8ad504d2defb158e1ef3d4af5e1cbebfdf8a0e8037ba4def90bfdde7f2eadb3da96becd9e6a95e286e120871217aca6a8756f3ed7a11c2f75e1a82f9ab0234b1cc2c8178ad690e8c2798f1eb8b83178f39d7fdd09f44d7df268e7e062566a4516b1a1ceb97049df4646e8156e678c5f1fe2705b0c261db71a9932b8f41950e326a2200908c4c0bf3681384ae1501f5ddef8ab98133519452c725eb84f36814577108508809015af4d8758c23afea3815a09537477e8f6c7694a81c1d08c822843b9e67d95592eff819f6c2927e403f9962f36364ec2dbfe494049884d61695331e32abe6272d5a44961b8679879a67b142aa40729630d8d24bc69caf17774c6e2b3021b9181a8a498586a0f7d4109c5c82841454785873670dd2f60a4c278a373986333120c1b17b4297620bf72c7fc126205c1b240c6d60399b715579adfd96492e350a4145ede8d075ae544d051f58bb9991575a6ddab224c9c83a39b6fa9b49444fb0d2b8e32464c216e42d02091ff25122f85f9454f6d818034a30e6252cb0d25b572de3ab1c669709e04fbdaeffa26d0fc67d250da0864c71d74f8c08b5ad15cb95a33ca5b03d9573e83b35cc173afd97e88b9ea859861384cf8ee6338bbe5768cdf9c84cabdb8b332aaa7574ba200d496aa1d6be562f59be022d7d9cc63fe6a35100b664694b5bd1f5a610cc3d7a670f45b47befb8cf705339a8a5adec9fbb9f1fc4196fd3ad2a5ec9f3c9bd48e96bd6ac7276bb00705aee192106388f2fef2cd3c7cf00a159459314260dc49d9630d9bdfd0245db95fff41703f3236ed1bce77582dd6de015ed6d8dec0f2f2952fafc0e11479487a21c1cd61f1a9410dc730dfdf01527c6ae4072eb1591fb5f9b6117dabd9458331d9fdf582acde4b9001c6b6c6e048120cf15534db40e7b8f77fdff60b08a0ed6a802095fb76c71062dc34a612fe34f6598529c2028487457530c154d18709381cdb36b4ec697a2b921ec9056c86c5e73dd74b63f1844b1240c703c6f6373018c2daebb7beb55ec0365c76725063a3fd212ba80bc951baee1b58ceab532e58754ea44b0cf815a0624e2a0cf5dea9bfcae56b7ac74e4627a05bd8a2539ea4d25a3aceb003c8e7b750f0e8485eebc84b130a54ce8926b54cbb54b94db057f993ab426fe1a3be7a997782fab08cd704b1628b9d40af916730014d71d71d82bc09a7a17855c314b9febd079e371598103a4fc6923fa47a1979fea54c0bf7542a6e54d5cb92814c824d94753095d2fab232153f204d16aaa6acba4c72ae358eab79a8b51ef06db93cd5acb606ddf4dfbbc031f697486c284ef2627e3e65a5998f746d6ed934cedc1204c72694f6738ef0de7cf25bd147c938f3e7efd6def80c01b690ed200c21f56df02f7f31e90c0f05e61c60e2279b307664f491fac8f3315e48040ed63f6b68cd7821bd9447a8cd9d95aca3b16d721ef8e90d668636ebb4974553f41e7e9b075eee4e83e118fa74f2d7197fa135dc53146e7c194645e4f07412693320117cc3cdb1bca814e0e30fcf5590ce237e0479bf088cb0f68c2dc0b53203c7c007a4bc6361a32e3e153cbef1163eba0a3d7e5e133fb30c6f37b3f92e94abe270e7c3e8c97056bd12a1d588f919d65db51accf624e0a356d6e6e0da3c67dc298746a39b6313bb658e3451a2b1abf7efb6c1e63b83cfaeea9a17ac8f22587254227f5adb2f41f367bb9e4530c7fb93b78cbf60b7619a25f2f7a00aff9d935c294e82102eb0e96da7c3d4c87ccb896a5e5ee3ee13da3d94655a66c0c3d781a67c23bbd53cd7eea563a8d63100144ede22e3af96b69ca18d5d5be5849d27c1db28298d485e2fba3c7f68297c7f883049d73ffbb3a300c5aacc1d8a805205602e410e76fc48adb109cd47624c2822e6dcc0db0a28be5401a79659d19b8bbdf131ce04fd6278130aa2f203b9e0f52134a3dec5a97c4753da3127288ea0969fcee232837ea067e8a34b6dd4e1ecd7f37b8e956d137be78be955854a75d84a339f3e80bebe8d295ec1149bbaf115bfc84e8cce1cf994fe067dbcca2ce1c378180bbceda95444ae535a9ffe1819caac5cf95b86219e95c62581d1110daefeb4830043a7a9552de5a55f250e7f1aa5993f87647c92c27256753d6daf32da18c1cef9bd5ff5a7a8e182d071f1e75d10be89f02c861a0d05257c08c9e12f877a22c8382ec883c592a34722f1138a1e8b5ded41e970b97ba2a69c386f94b508b38a59b464dee983741e61d0096f499f3c552f43ca317ddf073e0450e800585053830681d4a8a8ecd5b86c901285c84278c06b86375a04fa7002b259cd61d5ecca426aa334659284945ea6c5adedb7d40835c6134271d641bdb19cc3617bfdd53618252b4a684a259b82982b0a13cc90ca931c4e90915d2d7a0abdee3f78764b41e3236e2ac21e138c0cbce20740cd17f34eea236720acff25161ecd4c903e33395f51d2c51583407b35a044d54caee2b66dcaba84359218c6803040b19a39c0e4ef570fad7330041e024cd194326891547985b10e505c6e6b1abdaf3fcd63c3f2f08b2d93aad41e83167d969e54b12745b328b5cfb93266afa793bf00c86270ab98e2ab44b2be16b5e522ca280cfb0a9a4f744900f0f44f6126b787274b2a36232c84b563dc3a5879c83c34cc6d644fedc3912b10e9806f944440b00883bb76d51782f928139117c7358cd38a460ff73af4d417278b7bd463da86ba11bc88cff14340a24f675905c7edacb121fd625187b90a3152115b3ce1f49432409fa629384509cf51426948c71e76da8efbde2eeb7d3f3e576f18d4fb61f90d99de2bfea2cec28468368610670890ef26e05bb108dde48095251574c20611ce68890144750c62a9792815a89ffc50ff0d76fa0f708d917f3bd9f840b11085445784d2017e54266c69f3fbef4c8fa82c0723ba58736aa8466a81b00d563dfa074a9a06016ffb04f029bc12c53585183f237d84c343a13b08b484e1625be1b0c661f697ad5097040fed2d3d46c6b1229157729b306694bcdfeb4eece5b5dfa8043a6fcd607e2f82aeda46e88f8d59f2032fa439365bfda8ac7b9e09ed8020c045757d510d5de5dd0b2520b0f74a99d8fe7b1915d82491a270d1a1c554d0c05d14a1419e71dbbe5df225fea5c49b73b84fbf079dbef25ae8861e58ab8bab6ec4ad07dc10072c5627029d4a74700193d12f439a5bdc41a284b92499b3ab0f3973529ea148053da54125c2969603fa55d3dc30170568ac9642aedcdc817b0f4b8d5d31925428afbedd21fc7f1132fc7e85284723b4f26ba1b50bd5fea2d81b12f4451f97331c6af0c82aa9d962ce034df061c32a1113990a9f320291993c9d614c42e2aadb5dc52c58daf8d22bb302e1e64b32e16394cc0c44cf93bcf811e7ad772754b6e9c2dda630449e005a0303996a69f5ad647f98908af4f857af804294d416db784c34d2d5aad7d840e135ecf6b636dd33f4ba29d0f12fe3967260013662d8bc23a34a0f8a5df93e111e8792140487eb04854bfd9bf679e1b38de028ea5fc457cbc8e2706fced55f5363425b0c2c13cbad1ef96d18f11b0fb3749a561504b8fee8cfb4ef9c948e3efaa2de6ca38fb445382af66855f3c0603ab175aca17e1b005deec73b03eb952cefcb3cd5860c40578e8a366da62a431916ee212d9e5740fbfc42f6d0e0951fd2f213a8f6f21984e01832c0dadf56b3de4833b849b7d0c9125d7b9ae5c6f245703d77c0298c9b6abd563529b3f2986ce54462f050d18dfc85a840b1633b2b0373e585f77c106d70ff711d03362af483f7812965405e586d6988318effc81e9fa918ab278e97e0d6d3932e24ac17ba537f568f8b16bdf3d45488cb34f696295f7321b63a76101ec283f0427a533544f752cc9d3c277c59997e01604192746353421884142fa23dcccb3acdac509a5688089ee919230a9e0ec2804254a153f544977a634bb13880f3241daab08d1b73bdd8fe4a187e9b4c3758eba88cdcd9fc104360b2512788f4d31a23c80b78c150af10e1a41dd279e895ae9e66ecaf2bf32786c11573a74cbbb93b82255f9ed190dafce6803f07271889828696f5f8173772a7142ab46899c609136713cf7a3f4c5e9718c84ee8bce8b4b5ba83a09e421c830eafda214c0e0b3dc28d0f1adde9b5fd9fee6a07a328807d0e983cef6383ab94c415dd1e649d9804f571581ae0c7ab2896e86a470a9eab94f2fe9e138e91ac103cd770d27af9648ef83b5254696d72d7174188bafb05114a788d9726c9d7eafb182348618cacbec6224186909c00000000000000000000000000000000000000070c12171f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 7, + "comment": "signature that takes 2 iteration(s)", + "msg": "0f00000000000000000000000000000000000000000000000000000000000000", + "sig": "46b40670bb3da2c35f9649c9cd3fe613e63335a645b948018b3cffc864412f8868192a9d81da08d1e768d0d33d4f7a609dae1e72d4408fe5f5660f7714d7d3725deabd87d32d66d041124a0921a71ea30d8758427cd8978c2014d83746c7c29ca7781125afa4ebe984a11da34692342493df2c8fbcb50c83e56c9afc3df2a5d317add757dfb4439841a8d91d596eefa656f1953e7fdfb63e29a23ca3825a1c04e09f766ca10aa6bd05b9dfd7910db1956f99326766839c4dc0f653f2dd5e3a508fe13c2f0624d3dd0c0f764c164d231cd1f73646e542d7bec86e7ea0336583e86c2811db5e28e18f34122e86a37e1de65f5d7836c35db6079bcddab304ab6cf752dac710004fc24729d760d3d9380270c5d1d777b67ac830dd52c3548bda02f0f7d0331aa6c8414fa7307237456105c3c5f8463aecbfbf4d8c7f7c3b06f940592f12928a7a018595c1972705f8798fc75e2833e95a163ad24f367cfe85545fd0e0992775be5c074ed111cbf001bd536d1ce4a0430d963728a2e25d71c3efe9c385a6841d7f4c6d293a64f83429f064f3584ae0983dfa4f90820dd229f900e41447c07db5dd2a61868438b8f4eabd475da53e8f1c7d1120e366d774bb95839f6b3ada1f704198e06b13760447768753fb449c0d53acc22845a0a4e5b047d008e08e2f65c577026863ed25e1dd7d39cd4f0a7d823f4250474866b80ae3a2d19838cf24a265bee177d20b9fe59f2015092b3362a415f05e91bdf13ccd1bf3fc901a63ef23ef74b41cd74606c687ed6fecc665ee4fdae3a305392f59f9ba7e6c4a890c56c3115a2cc760f3166ba1c4e534a69bbf738c764cb228204799afdedd6660fd4a6b7856a84e714e58247fa068f859796cc4271ae915e62d3ca3fb43bf884fb8cfc39ea89d3042e453953849efcad7852d67471d2004b4ba8937a5c508109a19519fffa989a39a6c68f1ce9268469af6baaa7e0a93362f5b87b0ca24d5151b99bdac16885d335d6bf11c2a574a734999815843121bec25ba9775593ef19f809be5b63f5fb01b29f8f0eee9f1a69f514c0f17e90d40ae9a97f6fbaf5804bd036b6ae7cbc161865580f763d9abea93625096f3730c77cd0242f387fca2fa573f2638887417bd80968e86594e1ff547ef5ef4b9b49b0524ccfdb3701a8de2f7ab2eccce22ba93bbafafcc1359c2e3652b67250ed313d6564ba245200c0107fe749c965ecaebe28c79f24955a436c41b6ebd7f321938f4dbef88e30a34e5b2a3763381d0af8bd0176feabe3d467eb985cf4ab28e465b7896b36d2aabfbbd26931fca9b76e2eb1befe51b45d640ba468488da4093fb2ec7c77ae43c785b6588ebfbf5568c1299eebf0046e28b5f1e897516edbbbe99843e551012daa0157e03d1d41daf987b73ddb361c064917b6b8b4b23c31dbfe01e56960e63cec546e5684b057ae5f904333dc33ae1b0018875cc13f39e11b247db82e43409ecf16051be7e8525c9a90b68cf491830d2c583db07a5bd95ad69af0e4327cdccb9339d96a4aa201ebb86edfbe7176cf63a409872f73107c3f4f068df79ef817efb2f0837e665c7f2fe0a56c4e392d63a1032eaee2894f3bae6df6a70a430b22e9be6e15bef3a9af5545332ea3a62c94d5a6aaa8870c303b3460b3be88fa848fb818a3e1771c329f676941a628acd948b260541ecd1701c6cab3311ed86eaf0950675808ffdadf0b97f98e9da2193258b74d589054014dabe4c501f2e0fd81fab9cba2f9c8f70be8175da44bfcf01ec6ca5ba7f1039b29e27e5bfd67970e5e561c693a1ec2023d53cb1ed32f3614cc132701dbea3ab4d99398f23eac52b3f5c5f46a110d77f0d9c660b432bc57cca8bd38b4b5dcfc619aae56d7cd686f3fd94fe419f8fc54c9ea6611b4f512504ce87216f768abafa48f3825b2f9afca3d419151d1637bda8aff5e2f9a7921421fdac429c66c6a01832c7041f74fc81c47e4172f9d95b200b1a84af4dd9b677670bbf356d590f2fc1aa70ec53ae94331b2ac0f1a8bbc7dd600cb06c76f2f340aa2c8ae102cf9c4ba7126414da52a1d8ce3504ee282a02a9564b149c041694313ea3f11d9e697ce692441b3baa25b308f42eb7f9d03ba3b5638fb96004fd0ef2de66c6a573ce2570e19e75d5c2bea7d5c656c2ad6990cd2d8feaa9eb025d80b6483e6612888ae3a66f646a61cc08534fea6f31447af5535308e81e3dbac05b488fa9dafbfb31b7fc1773fed73556e9caa5864b4871ae4d2d472385ff62a61113ed0f7584220aac571b69373f2618887392f88e4813822009fca474af81a342e1fc7be442079fe882e8bab95b147c1a196eb079c7ef718c194e5d6a5332a63f3f15cfa08453afe796dc433399c75d8e7ea603c17bf1a133fa1407dd76489c9950e501e64d09a7ce59f886b3b80af926443bd3b04e33e97adc795fb4b775c8d6507dfb7aa254d3b994e6412838a03209ed3ae2c15cbf67cf00793c7b7bd4d1e36b56aba5212c0e8c82752da39686254e5357d2eb0ad691be3feffb1b09620c2b0b2181e510b47ec2fc0257acc3b847b90c0704eaaf48742e5a50498fceaa8945180026647a7f474cada887dd657f4003080d5081c1d37d4c2c8a1ba5e8562319d741b01bec47cff4fe1625630051b12accb6c919171073ff9cdf1d138ded6ead47440bb2f99424218156fee650daff3c777168b43548da1b946bdd16dfdd099d83a7c427f97f83bab18acb2650846d39cb41e5283564232fe21394318a2340f3ed2c6c7782d27ebaa780ea81ebbd33841f834756b74d99de6a17280088ec6bdad04144794594ccca8feee1fa09903953df806291667b686c9d5f77d89700b0a29ac9c95ef647d0b4a6ee30b99bbc9392a4769f4197f4289892f926d744d8b62e067edb5af6a6590981261b7a9c3c9f2b69833251916e00ec5710514fdb29ba3c25285001ab2652de3982f7bd960b60ac2fe285525f588167305afd30f059ab723c1105e6c657b5dece838d79d4dbb2c14cc50d123166cc4a4f01d15d7f8d4ce10acef8ab06132cebbc4426762b6616ad9c8d700dc7c53a1bed753569b28f6fb38e2334e50efb6b7de233b93ac1e0b4a71c7cfbb7002d6bd2a7f91d22cd080c182b989c2045fa5719eed2aadb2b409a73ea00ca3e9ae74e7fe61b18e25a8abed293651352d50eb2a341ae24d4549c93102b5bf8d9523da6cb97d6f0fbf4b64d7b65e0ffbbdec1ac74ab2217c464936205760f4d46139bc9066fca14b65f004b9432c723c4091ee0e81f5549200aa99445635c910303e697e0a08847645a98c12aa9eb42fe38265b09fb020ee3f6fb23f2e501c3a8ce5fde7326d2e9aa2e20aa770d810c3c11d86a6ac0296b296f2a1215fd83cb369abffb3d783b9805b0f46d853c73c887038584a30a17c8bef62ed7170841c09416924f67198bb07749cbc12412185f1d5fc4021a504f1c417ed5965a864140364904d33451937d38e14e8452f7d414949e9932e552afe0b33ba1bc63baf2190d8575e90cfeea69f5d0a3182d726cec66595065cf9dc22657cceb7cbd3afec14c84e900071d9d08849bcb1e20ec70c1dd4046f914f80a41afdb3b435b75bc125cfa2e6896b288dfe947f8c3edb82113a6eb6c35bf450191ad5abc514d9eeb6ed6fe5123f7e5caea3de2f19116c85def416ef5dfb47ee08957fbd87920e9fdd418895459b74a2fc62ef11be0943cfa22fbf14cb859de45a4b60deafb70e072889344107d0fe924fc68aa9c13429350eef78caba5352566f8d80b64d016265e264a1b5f00064de79c539b0552dfd3880dd9f77903465c777cc78fd137f199030bfb292383be3caabc1b6bcfcd0dbf4b7ded13b93f91408751808216e55a2ec4d39051cff5784b0db9e4d3c38fb5093bd23b29d82cce55e77710bedea7d9f0ad6a47929faf26f8d50bb2b2f038aba8d970939f4e6fa02c3f6cecc76f3a4298f66a7976b475d787c3d2ed3496a4cd9c47f864451f140be914141546580364a64215504d36cffe6f61a08a4f1940d965f39cb442c6705e932bfdbc29b612a8abb3925c3d9bec1c9630f622b0ffc7d8ec2425022882dddfa46bee778fc94e304e9672cb9931cb4b75edb5514c2d930e0de245f15c4dd422c0fda02f6b104c0b37ea2df5c04f83d9a3f644930eb54e19b7a2a5356359d6370bd4635fc576918be8547b7aba9f11f1dbf10697c8794b06f7ca1316c0e9ece8e51aa3a6d0a77672292ea5fdd50b399175d452f18754e4f3ebc41325982e2ba3162974c30e19fd49bbacf10e3cd96254cb3f43d6ce1115650a0522ac1b14acae1a3231579589062bd63a55b1aad407c0500b420d0840e49e941a5fe6c6cc196ce45d0d16289199cf9a29130f6235a3bf9e8598e2b0213ce87fd676ab5b621a284567172fbe5fcaade672cd55d1f6a5535348472fc836be896c332919fba13652b941a35087b44deecb7121191c548e8a7161b561a6f8f7cb4beae6b7f3d194f420ae758d209abac2f36c144f067a829cbef57304ac7541f7089bbd97821312a4c074be9daf5a000137825e7a406ab564cc16fb7ecfab4babbf00b1f13f8e009481e88f55050d1d2e313e424b4f6687c7973350585b5c66f2fe698a8cc0c1021b53637dabaeb2c7e0f35154babec6f7fc00000000000000000000000c0d151a252c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 8, + "comment": "signature that takes 3 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 9, + "comment": "signature that takes 4 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "70094678fbb346b4b40e967be25e40f3fd6db4e03dbac8ee46c962c4e7f7c4d2f18a7b44df87b89e8d101bcc264c30d32ad4aa54e27bd70a4d7c4717653c19887afbf6f2359957c895ad477f7d9964e1e941092dc4fc8fddbb77157b31462a46e84f57906fea21df705a01c46b01f3212d91011e0798548ba8eccede6f4d9bbd16d787f5862b6e4dc3d7328511b199c32b609cf90599f90e156d2c00a97bae5b801d80479e612ec53fe59d0e5e6d7c2d2cd2a86f1b0d8caa3856bfb437ecb57ad2ba85d21020cd31cee7296909b19a45cd3303247e4e918db4bae21314366dfac729776c17b5852b000f9567018e7d052226b3b28fb5512bfba7c3da3d1cfb0c31c7cfebdbf5a4e5009ef76cb73316f6ab64570d84c39472f85a7f54918e9fb003a293c8d2787ac533b19832524e5956a96722db2d429aa69e15f3bcda7d887796647f913d5d4de4fcac8024c8da8223f62c973169cc21809943114b6766d3179a17c83e58a752468eff1d23f04f05d844d0ed40faa81bed6f1750d8f15ea24b69b403e12213c2291419d04555c15ce8c1645669f7c4f46f4d26ed4cdc4655b6d6c61c18739163c1f6290a5b535601f345e5a1564df056a9519a3125107b7a082a4c34dea36bc7c3d57af69b7bef90e5ee02426b96dc28c8300e1207b7df14c4209ecabac3142b57d059081da49cd4221c1fc4a159a34bcd95149b73d4a9d9d7f25014fc011ace2f814543922e93737ef968e8e20e8983d3793d733e24cda69c6c36436cfb658bd0d1cd7102686e33ea1626a61ff6662a8be36d0032fd6a2893f5386b471028044e5aa38ab71d3d8f43992f7eb196af9057aef710ae149dda63781d269c248a3c257dc21e30c7423d0bf7322e4f87780f284a92930842feb15c3e624d713a4cdfa5fbe9675cc9b1bd36707285ae31038d419643fa959839ebc93cd66ffaaa720ca4c3bb2b109dcc2dc890f19fde05966ad0d648a71e988ab142b6acf0426a19bced43dc0c83a38685ab5f255e00ee0f1d5a7a341df518d5bbd9ddd31aa6b38d129484ff2b93167123913ddf7e11f6b7be7115c07566c4821d12cfc3db5d24591f040608b7b06267048c944b1be8f67607883ac3c645a5746dc107afb8fb4c730929bc6c99b72b701c46602efc3be2dcf7a25c21467a6413778208e58485b3a7ecd688a97aa85f9ae2f0023d551a970c7714b7bd740ca173cf0f787ef7f961e9f97bfa5a59bee561fba83bc19d0945ce0b66883e5288e4099b4809124cea9426e81aaf1fff02d350a2e9876754ebbd6dda2faee542e768d859398db6ba8323bb4c16c0454020e97da1edc2be24ace53a0cdafde1bafb69e8ca06996c132a19ce88f7693391e2fd1e6483a193244f2faf9b1cfae1d511f34348dde860c585ca548bba32c13165cd3044209ce59d10e30a0bdaa68b8187e0fe6361c1ffae271c6ce3edb53e1f9cacbe9623ef5a6dc21ec7ce626b1863eab038bdd2c1290629ad90fb59de197b4f1cb1368a4ecb05bbd0b58f52fd8ee87591c3f4dc08c06ce8664e476043d4e85202a51996f9c0e5ae2c22ba95099fab8447ad3f71aa2aa95fbea73ea99780c8804037584739b3e1d7f9d63335c9eeb7d5a76244ef7afd8cda16c47faab70550ec39d800d51b1c8f85d366d016fc16c51357642d60d21e3f45eda3a7ed0815d7c585096725151d3a82fbfd90b8a609b6f52e0c18e328332cc0de273a5cd4ea3481913379aff1c03ec5de2026321d4bbc4fd13b1f5b4c5bce87a236fad1ed604809ea2378d9f3cea73c45923d9e4eae4e126792825b883f9d46046ad7787bde86b1745127812534955bb6ed28ebed29e65030babeada913b8b605a636f088d90b91d7166f5e914941d4185002b3aa6e38b312d384c24a4312a8cdf22846752a9bebb1655a3fb904b6c0f1224cb2a83887bf218f339d6d86faecf258afd847f73f5a3f80562e65a07a7c9ef1b43fd84b40b55b000e6c3d661e1fea1037e6b80f5478e744e6a6190226f7ba09e2b8bb89c8d720cf36b9c2bfd33dc34c22c1039ffb71e2f4275dc22c3488744c4b7bb7444e5443b211d3ca7f687e7db1023082483e5ca2eaf89a7eb89f993c194c806b331e905da74830bf8219e2ab6dd80620fedb6298c5a772597dc71a274589314632968c82d66a89e9433cdb6465aef8eeb33f0e738276daff510735089100bb9ea86711e5acb9272e7dcfb512ae2c3587f9e199e9a889566323a8e31ff6cc623307e49920ed9b863edcf54bbd740a7e93d2e8ed71ea0c321ade6ef7a068214f73ce8809b0816f4f2da5bc23890b768324f86a29552af095137854319ae2845ce820633457678072748f9dfc53c26c5e57bc1da00a635f2f7f1343b8adfb83bb3c54a78640441ee244b872d6c86699617e6d7cf71eb1cf0b8ca6bbcc89e3f36e0b64dd7b150604b3509974f65f1ad0adabe6dab7634dceaee4586f6628b2dae7f49663a9a25ed5bdc91b874f893d2fa54afdc6174da985fbca021315f10fb16ca6278521c490598c2e9593467b4af9ebeb822339e6feb7914c70ef2a127cf678c90692b1dccdf79c86df0014bd76aef174469bc904918c88d0acf32f5211dbc9ab007522ff85345d41e083ce7e79e14cf16dcb934fdffcf99c8026b546c2bc00fe356cae580623c74a00661d2a18c2364737e0683a1f1dbdb2e3be4a3de06424bfd54b820a30349d930ef2a4103d3586dff198044ca9e59bbe70481a3fcc955952d69b9d01c452990793cf3021f400d2ffc4a97fe248863219d16a457434f3056084306b8094cd11f97e48e6f2d45ae9b3b7047deb2e13c43fa0eb8fc710e82f29633a5d4f065986d66323884fe87cbc66c114026745889c62d254928257e68afe0e52e51e25f337360dd227dba3ccd54f1e99dd4c704c9bd126310e4c72160da70f176de957a340fd481f84c1fca83af372c9fc7f2555baef334614f02068a820cdf2b9b1b440d0b5337f4b4a380e6d95f423ebcebde2b455ff74811ab431b2550fcef6c6c671bae84c910611176e94f0b2815d55e7328804a1ba1b490b7f86020238114a063068decb8b3c4d6ae62f6ef6e8767b934d9cc817fe50470b9f0a6733ad446d12a115e28dbb8b610f01dfb1268625841efa796378fe64293fdcf859f38406dd11e247f41906cd6c6c9cb2afed460268f78b170edbef056fd2db36bb6937ed3bc52bf1fd098af62177ce44723b65ead8ad50df2c0fd89df098dc56cd51d5a74709c5cf1b7a09683817f0c12ef399e83f6a4e8a17126da998f0a224ec2f198ead30c543cf403615f38066e9417ec3f2b865464f8fb1b7ac8c3fc6251aaedf16807ad851b980ad9db62ac0e07d9b856bcf579305d9eb66859e460aa269f0ac69c9e88b014721c906a1f3bc8a1258e04683343f2256fc7c81ce17fcd93395c430cbebd6b0544c11de1eb426927f172a2f51aa78aeceb83aaeffb1b62b66a13b19c0035ba1c41604441fe22ba1bd8b8ea29547599b4e00996b2da1e937de02a58954cd77ab29c68ef2a03321fa2ab299a2018d625de8f65c1baed074ffe2577fa5b0a4005aaf284e7e3bb8d9fc365ae978fd528e0c427d43414b14ad6cc7a28fde2f71d1e7187a3362f89e2067b5839a71df40164c5d5059d9bff06535d317e331961f17bc5800455a96078be095e8ef8face39f58f62f0991ae3d97390da8c69b900cd47d749a75e7b7cfcfe1d4ab3b01eebe0f4a00ae2c7ebbd134e731075b83dd7eb726daa461b7dfb31d3e0f3f9cb15ead0771ec9193bcb899469100dfc378750dd811bd69b8acaf4c646414e5385b8737653eb9773dc9eacb89349e8cab56c3d0fdda5d646c82d2039fafc38b0aaaf77b93d86b7daa2016c0911ee6f46f1044c851176ead85e775ffa9330e904d28bdae0c4820b7a4ad0844765e05f5466d3ba1eb2381284c3ccf0de5c31744acae33720f05b38f7cb099262b94f4b025cda69bec27ed08c49b0e113f510d2c36a39bfb013654fc27f8802f414f9b894d4f9673a6bb03ea26b5d4959bd69c08aeb2eee3a28ecf78c61715751e43d5a5f6d8bc5ea7a70de3571d16ec9b5def79e3b3e0fd61e900d98bb0bcfea8e2c29651d9edd613693dba51b0eff6f8dbcc51b116244f1bf4a14c5ae484fbc5189533dfe011c7e8b75ac8287bccf269f98f2628ee419354b02bbdd9825b10eaeb0dd8d13423ecbab0425c98a1750f3c75738d27202ca4e9b9b760dfbb6fe86914b7cd3876800ea409b65c12dc01e2d81d6a2584332e63be08058566543b064bce5673b7dd9dc4f69c45acc7650291ddc87d4ae9e1723d51701f3fb3c11376019a53ab613b8b7138a83fc76cac853355a1b713f0621f8cdaab631da8a0941c58c0a934cfcaae84cffd95ff7e831cf38185734972942549b74d9c67beded7174e4c76d0ee55148443e785fb73955a582e9a94a14c621d6d6cca5b9f270a84b030202db41000965e0ad66f5175124f211064a2af0c36591f16734641c87af774708b7b7b8226320b34f488050fdae7555e0fffd1c124986ef03d2205b4b809514e5cacd34e7d0dc8727772fce98e0e975c64ec8258e22a94bd2d085a6c808c8fc421346fa7b5e91c8287df545b1b3589a9073877c2cdd70000000000000000000000000000000000000000000000000000070d1113171d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 10, + "comment": "signature that takes 5 iteration(s)", + "msg": "0500000000000000000000000000000000000000000000000000000000000000", + "sig": "604ef7c921fdb209de3a95ad6c032162ffe69ebf86638fb7e5a2a9eb3ba4b68fb7667f6b5555d000e4ba05a2eb6a4d324b04311e4ea01824c1d6cd160802ffa20196ff1b0f0c1789ede25d58bd01930986817524beee3d93b1fdcf85a3479c7086029d04a3ef378a8d4658310ccbb441ecf9a273a50a7d57d2a58087fa0c97c0b31b9abd8246b1e9d46e1dba106e5f1b5682fb9f8c8c7a8a170b4f12fb5b2ffc08514d7f68dc81d9005283abad65299a75421ade87ef90300d9faabf7b9a7ac3eee8abdf8269946b0d3fb4cc674d58ebfd99377bd39f63c54313995ff3ac36e8753637534b8f913311157a149db56217ef758b65afdc3bdd7d2aa59ebc42daf9aa027dc753f051db015a9d8b6793ebf50094dea5f38ca7c2824936f96981fe5c75032921b6817b81776e28d18485777cf6e96ce2a57a9663d30d804a2e07e188b77804eb54aca4ae43f3ba71a3a07264a1a1aaf6edffdbbe37783e11ae3ef0b3e8f5093c1c6566366e65c5bb6711d706cf64b1f579a44fb3a267cf962751d66d46c0208d1705d535debc5f969c519ce415731ff49f93543b56cd2689fd1f94c57b6268afc5135c3a92eb3856156b4918e79bb690b99898cf5a213d63fe0a1d5aa3512282215691baa6c6da5c952f9bfa3d11c4cdb1ebfcde709e5c3347fa6d990e9d2d805d63bda508ea9e3d4e0bf2f5055201936dcdc360900116309970ab4ee0e943248f021e2acfcd4d7f7696dbe33beb7b40d5deaf042ec6cfd50f45d65f94812870c71e3c2b61db121f634cf3fabed0e48f6fdb63e7087d2042a1bac7f2c296bbdd70078303f05a7974e188480d6cc1a777576597afa9429c3c3cfe549fc41887993f883e4d823ba74a79075dfe5a3a26d794768c27436ec5f619e3ad605cab8c894e2242201f4381d7ab1ea3fc346ae17e783e53c95ee2d9bed1942e5f3f9ba65277ac7a0658faadf48272c78a8c9e38d6f21be59b492f4e0c134d965dcedd49b0af638ba010f8e2df94484b97094f63bcf8660add7a05149fb2c2753d06bdc4196e2c18d7ecdf685358ecc03b3d67b496828881a8f00cb16667ee52a969ab67f6e2645da8345d86d5748119cf28401d369270c7aafdb3977de4ff328cb34147e1f37db7778aee3e08a93523cd5ce244c78acca1e2a7b1f6d72b76fc86e7457e9de61e473c605a305fdd5591c16efb499c5e5ba83831d202ac14222b802e8c9941522fb0029b43e9f1cbb6892994382230456e899d60655f9bb29fe10811098a0de73a4ff87da05d0edafc2fd7815fb1d87edc40316ad7ac11474b68b013430c4023924e021706752307788f0309f86548f9deae7736431e98ba50f3d66b3036111dcbd1f28a51c83b1582fe61eab90efdbc9800f2493973d1fcdcddaf29b191094c67cac62dba01ae2c82139e65c29d11b927a3ee0bc93bef952a77c6dcb94c081ae022bd2d70629d630c7db08b0318c915cf123416d6633405703bb670694b4932f716c67ea181f4aa56ddbc781094029837f335205bd4eba0d3fb0e852d4a80e98ea119ac6738af8bfed0bc83ec0cd4b01cb75e1fb73f790f265908bcaf0fc3f3ef3549c149688ba16fcd5033828b2ccd46e22316bcd91e821231111b9869ff2257e996dfb26e9ad93850d6b607a5a5d197bff5620fe753f5b494e21e44d8abd5bee41ae8c81f8f7d0fab317c347e7d00712552610431242870571ec6fe77c1df51f7f78c353ff85660b196ddbe065c6f361a9c05f380eb18b50fbe0a0daa33cbf70d03e9b399e9bf3414e4eeda59ff295a6c5aeb40b2b458e21f43701e625a93a8b047fb221cb3dbd83a86b03ed9de58acd816a58e0dd571edc95d145564fa86564f86aca2c61f49ea4a736984ad58fdb02c0c105843c2327ddc97822d66667b9188a6e371aa5e09110b6d72854d0903d432c51f13b4c61107a7a197602e56b8dd522985af2ca20af824be8d503006913f6537fbe4e288c684bc82144c6123e253e8989c59bbfc83f68a9a8ac0061f2d5d93c253d2ac9328dede266eb44b1f5f9a868ee5052fbb2476e11f9751bda60c8af5f1cfc6e8b9e1bf54ae2ccbdd676e3f5158d174974fb0abccc3b47c1ef353e12600a60005a8732d267e33b0a3ddf7d66e2494e6afa3c135615e4183b3f7be8006a5e2c3ba4f1d948d1b34a320113faf891d93824cd38dce7e0c795ad623877839964555768ab7aa776cb3ea18827a752ee3e7c6b025bfc48b8e8c99512578d2504a51fe29103d93eaf7728652dcf75caf53ec55ae9436a5d41995ea9febfa38c13299f22acea0f59d15cff0a88a4750ad68d2750fb8ac550459e2a954141c5b9382e2de8cb83926f2ce102d4846accde022c502247259918bf44caa8f43c93dafd89bcf727548a9a30e553ca37109d85a6923b42eef083007f258d57b1fce21dbc830618c37257119592b8e8aeda65a98f9cf6f7287a53a8a2c64435c212a1ee90f52ecb9381b56d67592395dd8af5325a09f643504adaee45be117dfb70d92a3ebd78da21529b3d0af76eb71b2f13dc3e2755be1df35dac40c0f9c1f37058c249c44f09a3a2602017e7110760654f7945d5bf653119e78455586a6405993ec923c28909eb7f398aa02f30c1c06b59be51b9fa7645bfdfca98e18793b6e09a89e9e76de835df9a0126cc6ce9973d2bd32029f62e7026df3a03e9fb4ff9ec1b3533eb43440a290df0216b6a78d13d40b094ebfd3797c85514c9f3e57f03d4499ad7e5b0d3f91febdea51738a9c0bedc86df1c80b90864e3710a6c3d328451f3275c04c9702861ff49824d87828bbd5c1e16a7ae950ee2896dff2b82de43a937e31e2de22d81448a682b70c7cc8a71493b08a95ea8a034fcc5cba59b5fb09fd1044b649b192c76a9621fc329baf425c34c30285adf948587bd2757d733a7ae82bb7c71404e9672a40ebd37acde5c0ceca7febf2166e599d8efc1080ea0e9b5efdb3c1a3b54fa24f10c4a706387b7381bf094265a07ad9c85f18cf00d92c66e9257515c131132250c007fe1a39ef05529243797a96370fc51d5db7322e447d834fbf7fa09d136fef12dcd31c3cd5ca35616d92342013f8bc4d895ad00a27a8e641084bd734f1617cbb0f243fa83230393487509c6041f8122c5b0cea200aed694ed603f104ab14b462c722476bf2a95126c9f6bd9242c5ca6a264572700850b33e415742a31cbb85adb1ae6e6380f059441b898d5bed3d64a9d146f3fdcafd788b9f65497d6f547c15b652bf70844848dfc003700c2645381e6070d314b7831b1e429a41754b0ad2fdd71348217f35711c56271a6d7bb4ed15a765d06ce3f970e4568f1ad60af3df6cc2e385fa55686d3633f3c82345bb0c3b539ca8ff2125fcff6bb5a4e3010e68515fa28bc1945a255ce12a391e0e4ec77ffb098cbbc2292696805e8c4c3978d3b4863a6cae10755d2fc016b2a9ec2ffd5c8d3c5ea9b36ee622040e189c2ce167fa90d07164d70dc5e5d3cd9db359dc5b94a4bc7d6619170fae9ec1a82996e0b75b6902ad473255f179edab1b3ad097ed71bcd873850d2e94223c903dce00557f616a48661ae937a402d2a8a5e1f1f6da8641dd423ffa54672bd9adde84ef8798ba5a8c79b56dc2e6ff694fcd63722be9c9146743bb68bf6a8e0d92376848f39f81bc4e061bb8cd63a6d7707985a95b699b37dcd5c0da66ca9b8c7912ab45c435034b3b629d3c898f7d979124707817548810f07658cc72e82af5ee86c28a89bf070a80d2050b251a0dfa75b567e7decc2fae12b50daaf26326f30ff072c1d509eb59c0e523669264966436d2d14bdf2538fcd58495d80c580d6e3343e9bec883033c7c32fcc693eb123383ce7eb2ee5d5b1b09ceaca617346754ff30fa9cbd3e716620bc5219a56111aa5dd6d0de5e3904bf22839b0239ed994dfc7e6fb6c2436a950d1b925fa975f57419ef7d9c3cdcf19cee53044d6db371d1c1c8d0c4eeee9e4b963d197265c42dcff55c5281a742d696292ba462e622429ec0b8dd3f6a8479f7a1fdadfc505d23de0777155fd53e4bba4e2433033c88ec9a8578d9896518db1d1dc30d23c5b82b5db14039cad18389b5dfb6015003ebeeba0e2313045ef1cceaced1bdf0e0721b8fe6a636f983186c7f3c559377e88ed149435bfb8af17e3cd1ee277b0305a1717a0964b0eee875756ae0967c04dfb051933c5fd706ea2ac35cad984553ec63ea554246a2aa10266100ec88619edbdc3cc72b14f2c8a12504336dce5fb00517ec36838a5ab856ce0929414d3962795e0a4ae7dc80031bf5fb732a092109eb3a119765d69f4648e0e690898608176f8233bc010654e01d12844291722a4f195f1cacfbaa5b4ab674cd96efe868c377c577eb25f81e44977c928780d49ec3e52694e2c9e8fc26a8cac64bc927a9cf0dd90f36c11685b172c10ad7d9cf9d0aa4ec26ed6d982c90d7e97123d9cd67cf17198e282934d0621702d22cef8846c2dd4b4c639410f3da93287f4c1929638d1d624be1ad01a8e5364853556ab837a274b61800a723b03373b3da771d0949875ebba692f0baa606d70046c841fa16f191702dfac9a48c8ef9915a0057234b5b6999a9f82b424d6b6ebcf9101c28495575c1cefbfe0517303e414c5b5d8ff70f30649fdeeb021e3d41476f93f300000000000000070e18222830", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 11, + "comment": "signature that takes 6 iteration(s)", + "msg": "2c00000000000000000000000000000000000000000000000000000000000000", + "sig": "55248b18f7b86d8cc873c73d809b0453f5db7b7aa436797c77fa7cd51624c0a8d924808b8166aeeb2cb3c2a013d1529e21e6b8a4a7ed13caf47861f90399a17277953e2505fb1fd03b16b5d1e1e045f2e56f30520d3196c1e54ae84bffd80cb27b3f0d11ec93e3522d4d3f9b66859311d3b448412816745f34f4b07b8e593be1bc747f4eb8e8e20b9addccbc4db5fc155afd4409fd5c8e23399cc55bf67bf9c4614a44f1342aa58f462489764491233edb1bb8c4084fa605d39028e7ee7f8e44dece7f58a28d09665624fa0e0b5495a43b6a623bdcd0fdb6d0567d446dc6949cceaa15cad8f3f3e6ee63de3019f6f5df02bbd7ac5ea6024f4dfbcc7ec4fc9d618b2cbeee7d72cd5837d6263a1df0f6bed8708d66be35e474783d8f39cb08e130d300fcbf0767dbb4c6f8ab12dde570220f1abed2bbb029d80a927c51620d5679e6a4bcd2d34a4906ef8a0b5f7b87082a57b701879a557a989dcd255a2a845f2b7ceabbe05e853c6a36f8b3120b61821cf8e557a4a487e5065be0770ada01fdbc64a607e19b975b3f90835acb28a023955a713c6022a593208cce54a582329e0890ec4fde395d5eda4da6ae5f17578aa1552c84648d7663873a7093745b7550096d5da5b8aa25e9750984f74d6bab5fa9c751bd828f455a4784844cf8db1681b47b05e5f6c60364bc647196134133db8b2d672f290d37e238f562bdf52e35980e8d94910829ff7170bf403a29f210dc42e7ea1e2168c5d04429efd560ba9c11b21e9d8f081503b861e2fd1d832397bf069f699221199b395015b2e79808be26c9fbf6e18280c3796f29a1e0a4be5cc9901c6b31c84fc69abf3bafb07745ae08fd4362875832ee768c378c3e387dac8e06b7578d8752e3ab4ad161f8952354f1569288d9400f28603b0bd7e239ca2de916e2718653673236c1c3f172d67fd9faeca57ff3cddba66f0f589d297b49c311a75ece1daa7230316128f28985210fd2f1725ef5b976ad67dd436902c7fd6134870da02866ed96ec997554a684216ca9574264efd28810f59883f5f73df115024d56871fe24d68b142bf5906fdf3d3839660ba7d26aa6827f47a05c80f1a62254b6cdfeb55de694e723851a3c2ab89aec1e312c7647b1b66acea5ddb7ae62ca71c4bd5592381761fee9d85c38f2f42f54f947bb3d4ee340077fc86cbe19af332c96d67f8ab84a1f0b0f039f5e6b518c9f9eed9edf2a88dded19903a0b78e17353fc5e1485cc722dc9a0b12501374db57b4161a12852a45d160ce3a21a44a8e37cb8dbac3d3a2ae131fadcec0063ce5b777df45b67744609da238f53aff0ff8e1175fb11a22fab7fd016c41f8aa636aa2ab7c4508f445b01852a9944277309f7c77d1f64048dcda6206293f89f914152958c1ceb629d7991589edcf3e40cb7a75090cf48c55f1d16b98fe26b55d31dd860b31e077af05012c8d4a9084647741f6b0e667110e9cac2dd031c1e82deea92569bbc8454f586f415c08c18220428fd25fd0e06517cf89ce7673961396f992a0f395eac5e3ce1b81a77a78db440039ce36670644592d36d43e1f0338d8f54fbc5c97c5166d9914d4837e7d005269529072c6b34fb1e5e8ad177d8e92530395896584aa3b587cfaa74d4effe70578d64c8fb4e4920528ab0bd4bcbadf344a148c1ee0c77f28dc6e605f60093948733fe8caee60766678580ad00d685d932ab692e788f37a54342d0047457cb48efcfd994c47cc57cb4abe7aca0508f3c5551c51d448a111ca477c16a0018d1758599405ea49efa618a164d2220dd714ddf9832d1c7d1830d93e54ebfe9353d5a90f2a255ab1578199c3e379aa4e6acf2ea07aadfe7c8b2b59a7149feda9c35ea80db44225a081a489a9f2ca447e6a577d87fc46931e01e41b67485fa59951192ed7949913243922ae9d2178b24eef6c608113e8ca3972c705485b3008cdcd6fd7bd112c13ab780214c47ce1d7141f00a4c06c6c8f9ac508e01c345a940ae26d374667b1afe9c89fe5d7ead12a5011ab593de9b4f5bfc68498d2e3dc6d1cbc4b16f7c36c30e2f1b5243df73230f4b61ca4f9507c0c2092d7eccbd88d3129db25e76ced278445b7bc91680bcfa73c89c84623cb32e5d9ee335be23af54a54226b1e7a542e75d6cbf16faec7867cdecfebc5483b4b4bf50776f87495d0bf6c596e382c859020556670d70af2272f816b3881aadb663eb91ba95f31dc17ec606d64a55f44c12a54051bc7119fa3af23ccb55ecc9dd0875e8aea1da93e78c77096c9b81c24232a6f64aeb949e65f0527fa9f9d86d24ff1167525c5ef0ac2c6a1cdecbe5c98ecca4958d07c80a5f41b2a645fb78ff17828210ed843f3233913a021a7b5f187db60476fe139b89217a942da48201f3017d704a9e9590800241501fe6526f0e3e05af68c0a4936bf317375d39e19d502cdc938072403516844efffdac2a1758c2ad1ae29cf8578356e666b5f6b60e9198d847aa0c88a903759418bc0ac2eea77802b2a41c514bec3149bebe8fa0339176b8380e5b08fdbc390e726167ba15757842c4c9a8d1a8377811f9ca3906640bb38bd3156dc2676eaa49cf6a4cc90635da341be52dc7a7b3900ea89c697f450b6dfea351cf0b0673ac50c72d7b2ed3cb45b06b856a41c3603bb50dee0ebe272200c6e48a33639bc6369963909c6ac67ada94af7b03dade60927f35b97b27a5251e3819c71372bb6abe636966323f0abc04e26a699c46fd8eaae6f3b4b097cb40eebde51f6df2694f14b7178102ca2448e3389656442febe8ddd6d663710f63a8234fa6dfb6f3a9f9d0f69042b59b58066197ba83536f4aaaeb4d9959af819b40ab43e09e140e883037f5e896a5f747f0b70083c4c720f017a021a12746c72e231ec86d684a99fc85f8cb73dedf83d23f9aa6d27877666670481bdd97d428cc1eda80e4c08ef00353aa4c371c3f938c766da833a76929d9c78b34f540381909affad1cc12667e6a8dcf644b51e968512d80017b876790e58c464d222665502c2d1997f67805232d6e6af2b868a801a9e32404d30c02b1fd8ea671daa7e97ecaf72addcbdcbd2f6be3794ba20d938a8cf15db52ef323ca6b47b644dc93d82508249411b9aecb7ae10fde49fa1b209a2160581d62c10962ad419c2b82d553990b7583106d153a1ee63df2a283484c6a0ceb2cc71919d00990f7bb87df0e6c4274fffd98525bb325b495d860323ce49a2df510c2421904f4bd3afc9a45a9ba84ceec0b8de7f77f14ffca522b424778157bbf0ac8e873f05837daf02b9b158c7853a45f279dc5238d202403378b8ed8fd1c69ed29fa4e5eed31a2b803cf0480425bc7746bf39255810e57bbef7cef25686c0893271c57feffdfef6346552e269f661a6e396ee399ab69641e7ccdc87e1867fafe8a754d77c7c05e49196646b21b06bc955b4ab287a4fe3d0749fb65ac042408513a736e32c382f9c81a6381d03c7af37a54fd3406f278e4b4f58b98f3202d7340933af471c840c0379cb11a3afa691d6f50ce50c20b02623b45123b75e8c26b64a221b5c36f3758050870413efe61e0d8e7f7bf77424b3478240990f9333f0ccae39fd1d782ad05bcd1aa05b0b6d58fad5766d056a4587ebf5e848a8129e07bfeff86ff50547010d4378b9b1f565a67207be7571c8f330f03d5ee6edbe06510918d7e81aa916cd49184098c99959fcab3858e6bbf2ddd62571be3869bc1f3d7e559c657319198ba47885c7da9e350f26b4e25c17d27d55bfc7e6813b6c30cb1f8e59cebc5f044e5d41f59c46c317d7020c57e13cafb8931049caefdc3f296c0363af7f7a89ebe18c0602cc19e8dd4da1bd14f296066183e80c03c806255a5767639c1bfca3037cd7efae6da14cf00b33f64b1021fc0a690a48abf5c6a781560a86d7501f8d0d05aec20881d23efa9d43747e30b262a3c4e3da85283cf5cfd94cf4e485ea56ae0081bbee0a9f41a333ae2aaca92c7dec0a2df94f47587e59fa21f80624a16e6b449194d1279ae5ceea47ab02b465b8da93ff50389aae3de69f5fc8a0eee992ec43e08b55be7dc9684264665dcea7ed4055306a1776f531d2a386e2e839bcc4d6e47640927967dc5c2571ecb8153827c44dc0ea5a60399a4a285798893fc5e9ebf74dd4e42575316bebba6173065e6583bd69d7f9ad0b8b9c6930c1c4198c5407f06008c9d04b1002bfa3868a8f7ed20a1bcdb1bf75a80bfa5cfff2a29b23e3fa963c6d7618c772538d98355d82905a66722824ab3a2859370baa9ddaa4f4ed6e6676528275d993bac69f66b4efeb8806f65cf8491e61879f0dce6bea760e2b3351a24b0fd65857c5aa099954d42ee9975b7c32b831d97fa862fd8278450d8ca34bb65a23758acc6fb96a81a30f1f28f85af5ad8c7d5868ba908da53e8fd0da4eb182a3770b68e2d72576ac7002ff348bedb8eed91f96af6a6a46b99e5e639845b4962fd98cad0112d74a6fe57fabb250e42c136c34a199e1923d2fa1d1e16abf8ec661c4f3eebae21627ac62a8eab8ff872c769f4b8eba495cd16d73b7448cb0a205da2c5e78c85d53cd78bf841cdd8f94cf16666615314fa389de3a5b63a3c05b8b939dde0041496372758fbe006caf4c718690d8849ae5eb000000000000000000000000000000000000000000000000000004091114191d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 12, + "comment": "signature that takes 7 iteration(s)", + "msg": "1200000000000000000000000000000000000000000000000000000000000000", + "sig": "577e0d1047704e02b4ed8653dd7a36c7a469f50314399d9b1e07fdf02a5c8a6071c4f2df79688c1a6d32ae9182279c76311762aebfb94e9410d1a74ff0191784a9d311dc970ffe4b51834e9bd49bd21dbb47817df5991553b6072dc547048d58c7644217ed1671c993d60f9882359842b82f48c619f318ec138842e4049ca3f0592bb06b14ae50ecbcfbc2a6e7c806765d404bbc5db8afa7e4d37f3a8fdcfe9867cbf66d1a971540e04c80e4a2403a0c9e795cc457c0cf1cdd7897843eef8f7e1642b3a9b7f4687763423ed0acb11270fe0bf01c1fdb0077787c591d20f2deb39ba6aaf3f433c3639a6ec43e314d212eaf1cbd4598b0bfb0f4f778f86415ca66122949ce3f101c667eda97f8cf6fac74d92472ef5fda6ebc1383a6d04bbb41b0e89ff80d7f0439b19b1bc570d8e29729b4d1ceb12648ea7ce092ff3311d910bc3495597f40e191ccae4513da4f24d88d211473468de354f1f03be275da7da36bf18233404f9d6f401bc9835544b1307312372a88714435dae593839d8706d74157a81fe8b744fc6a59c1e05f49628f8d39e0585c1ff156ca8101a53d4e48ba22d99ac7aa3f5e84af66140e57dd068ba296a1850581f6156671bfbe983d17e0e16d89511791b5be7350283f1cd100b9bd3ce62b607d00f3ae4174e892b175934c7c885c5c6b2cd3c533fa82fa7256cbd0bf9b53d009196c49d87779b855be3e97b4ef3adf68f02bd3e19ddfd876b55f0565d5600780733bfa95d58754fe7155ac413d67e9d5b5819c66140c15eeb622c0c8c8e15e05c79ef3c030de87a94f5601640f3bfaac0c961d4dc03b9d313097d20b83d27fb9e1b028503a624db1fb862bcdf7996443173ea1dfe544f285c4a029b6eefc5ae70ae3869ee66d220b89f83cd5879d2002866ca765cddfc8e499bc926dfd08cf86888f957f57ad2273e9155aa00ac4b618620953afbecbb4ffc6e93e82b77dfe4f0c6bcbb4e2f849f3fdd70f9644d1d420cfa938ded26dea5fb0052319848456f611f64e5e9a890a0643ca9ab8bf96b0b89864197d75c85620dd76ffdc0525d8872815b92a8369af17dd5bc4fe9519a2903bd8c1e6f844cca5ca2e79fd08d2b66939ad1887e5a651968f93e804e72dfcd6b244a66332e8358c7a39b337c001708dcd088c02c8152816d3ffdbdb323e4c8909e1b1a7fbe3e2dd87c8a985ad008e54153ee21590ae89459bbde19eedf5a23e019cdebad0f9448a72e12533616b76803dc59bef6a5e32e25caaf4034b6e3340398e95a797a484cdbf1433041522cbec6eac497d437a8374e2954c35e7ef105b45f92418b674694180e3abc3903f9a865bf24138ed0f7b5c81a8e49a39f11f3f81109a4fc9b1ddb6dc0d3f9697c4ad3d178b02373a46669fc8b6c7fdfa07e0beebb47b5043bab910190c1b5680a5e49ff786ffe7e0aa243b58c5fec92c148fb48432d20c76c88ac3b4592059eb414e2bb9d50c8db83f8003542a1a58826dd0d91fca351067c13917f817e32a438c02de1d51c3e2817c280f370a96a9145863a7ac1b6a1ed1ab640ae1acd2c72a05928b30ca51276ab0d3858e6e5638f061219af3fc0795a54d7d81c368898314498a6b279ba111c3a79514918adc6675b279a5571a3c7a9b9d79d725e852c2204490230a0270f00e758bd685885518bb15a456ed6344786dbd5c4009f94f04206e87b51d092aed1aee3473f8211a3ba22a5ac092a53831f37f4d15bf0937b9db11336018030469aa296807e6a5ec829c8b3fb741cbf0207692fe30b1530d545a56a48fdb5b3f72a8f158dcfd4808e30ea8fd7e2d6a19669ca7de2d50015c586dc17a37e6835685e691e516e517be2021a81d42f0330e29e8114fd729dc1aacef69e006f87ad74b0944eeba1687a2288607a3ac930c106049bc7a9435d548fc275b1474299c7bcc212a41d9847caf8def2ee7293986c42af986c0cd28ea70e56993876aeb3ad7900e84daf267adaaf5e9df3877aa1267cc99c7c6ddef01867a17019cc013ca1a921a319f1172500ac75cb8a200df0e38c1cce4054f2b0fbc98f76d4c7b61d6ef3a54ac0c42eb2c9ed53426dc2fd289e71f0532a026936629b6eb8657241b77b94d6ae11c54a9bf5c7ed7772e7581ed16607bc090c05269052fbfcd3653a9cc4fe8d0fc0692dbc497344bc73a3e9044a79d7dee977168d1c1e462b03da281e4124deb377be97b286ad5a1e1ca93529676c25c7601fafbc3cad171ba3265690d6ce37b760d053a0e5adfafa070becc84b59c39d401a4b3b84b80c55a9260ae2bb510230c8ac81433f466757affe6c55d6b52c367c37eaf0bbe5134a7ca5f1aafb745fa9025ed419e9360d1649bdf87696033742cdf7a6804cf88ce19c7d0f33482c83e65aedcf0e3da55b395198579a02847899e5778fd5369a88d04eacc1de1ed23028c4de2cbe5121a6c65cf648550ab340dff5b49e51e9543d6711ca1c3d26a744d1949edf649b81b7fffcd663de4532ddd1e7c2837d6b30995029eca9b30c8e2a00dca5a44fd603430daadadae3d4ffa83fbb4c97a373993adc8216638f0203eac09be5ad7f222738907a1c2b793b419c317bc0312723c0e8371cfcec8a13065df31978751df34ff3eccfb5b37315fb66a506083e5813295373c048b182dca86876528209d157a44a739cc9cb99e076d82f51885ead7933100d030a3a7745cf81cc36639e50be9e067b09a2b0015a7b86446256fbc977ba87ef6ee700528e751d5f346d6c24308403107aa05a95cce61c1e3894a1dfd97cbba4f3a130dd491368787593cf353d3eeffa56640a3451cb9eb207c19de0edd3fa886db645e260618326095e8ea93a1092183de833b66cd0379b94ef4a1cdf87581167db387e0ac24b750c47e02c98adda5a834b9b00e88d9a981aa98bb30cd8982afa2cbd7117236e03a23cf13f6ab2f67dcbd580a1171deef889889daaf156e281eb5a3be2ac914841f2c7907228971981ee9567e18748c03ebfe9d4fa67dc2ddaf865e1abe1182ff33601b97c44706a948f2c0bafa57f3ce3819005b5e397eddc9022bbfef2f65f9f29d86add3577a6fd117139a9ffa190b725d60aecc19370343a82f1f0f584896aea7d57fc092b74c0769c94242605b521e1f6a4cd2fbcccbb4a80745d3f431e1a12beb8af87145b9eb4b0ffd9a863e27b18b07fac43bd686bbf08d040c201ca574baf00daafec8f92c8a37e43f3bdc7ea514f2e0367a29642e2e89947a39c479c4ea940fc3771fd57c37f96e759f333f24c3eb1a67e6b202b459107042de9a1b789f9e9e8013cc3f2a89975fbe6c1514ba2572ed81629e0b418d8011659ed339bb37f0909ba8993475a4558027613efa516e575336d735716ceb77dc54678337a9e1d70b87ac85a3b6676447de69d6bae2a0e19048b70e0af8b767165353c1320612671f17430a5233e2fd95237889e4f11e5fa8ef905fbfdbd09db873acd82420e6a5d0bdd6611e5caa0183841804e19da3cec5a21bb75b91a01a47d7ef749af0fdf3b224a2f0d6abef86f850d16a9d7e0df467f28965c485156fe46e611f311bf59ed3f5d690ba6572228893e95e9e370f022b2daa966b31f41005e184e758b9ca396a23f01adf0838f9987433c87f9b0a98b5c208cbb57f66014f66bdbe793922333ea1aed91419f10a90d5f18f983027b901e5f70bbaabfcabebb53ca657c93b0899950b1dc2c02f5f6ec3fe58a4ae5816013bd7b15111b10779b13dbee751427673aa97e00eb9175dd2bab020e1ac9c9dab87806ac164a5d8f86217a15d4e75d13fccaeccc0798fab7551bb9ad89b2c804ba49606ac08adaed603422726a9c7b4c5a30bbda9d46004adb1baf11c4aee456bfb369390e82d504d0c300b18608da25086bbbeeea9baf586182246e6dfd6f15e2f199887756f6a914ba6cdbbf5fd5029f67212c406f1b5b88c36cdeaa982149f787e273e32be8f713535afeb960e302b129521ed3bf2d0a911908e7471527e7a177748149ac35e20e4d4ecdd95c356d84143e4cb6e627a1bac0cd813c00985913a148806bf00bc1da3b6d123da765a2863cb07b208125d640afa03dc3f2025461d228665da2590e3cf692163c5061c811f1f1608614d9ae6301794d9b35dcf0ca31ce7f475b085f14c6edd944cb343c08e5af9e9680f2e20656556cd60c2b4b3b10a66e71d0eefa893a88b7d3e789935173c39d4a5d6918f3b41187001b5cbef0cc6fc2b75b2cbf7b4581d97ab046f1d926fbc9a900e19a5bfea2989d3a63744443637de57a27269036ab9f35205a6577191f2efe1c01caef6f26c697fe06e7fafc6cd7fa533a76cc3ba9a2ba2b07bb2ae7cde729eea9b5460fcc9dbe9e1ed7d024668adb632321b2a649c2b285a19e2c5b1f18102be86f3181c0264d262cc55b2f2d60ccadb6329f19303a012ce1693a474d651a14148a0179855cbf57d149aea3165adb2bc54a53452f4faaa758e7961c80ba00dae2f3bbd08ef95901f4747d6b36561bcbae89364d090ad6fa9fc37287b5c901bf19504bba36f0a814634673918b1141b49578bddffe2b30331db1fcefe1bbca0ae41ce4f1e1cbef7daaa22929300404974c4db0b132f5dd4176eadb0d02e35555c5e5f6282afd1fa494f6c82adb3bad3e5f4fd09222a62bbecf700000000000000000000060b101b262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 13, + "comment": "signature that takes 8 iteration(s)", + "msg": "0900000000000000000000000000000000000000000000000000000000000000", + "sig": "ae6b9da548f432f42eb2f2d6fa196c10500fd99674009ec015f6c5b2e5fa39218f361eac40652d671454bca3ad7e179fe8e44aee00e1731df3d0557e2f6b96ea805a7713d82fdd1ca369c868c10654dc0b38916a1559517334ca20021489c6bffd9942aea8c7ea9354e42d2343c6700422c97b882299909dc15f653e6d69c44bedaa068c129f0743b6dba58e0df1e30c4db0df591f75bef4fa209cd3b12b48a7e3cdee1e7e4c54f719ef10611aa4d2a668fa6f9004252eb8623f309069d73b46198ead952e30b5d2971f57d7c983a098d9f7a25c8117e2601d57cbaf36d0434ea72a11c2214c170e0e0db7431490ed801f850002b2f959eafe961971d8992e4f306745c2b7fd7b12f73ccf6757eab25b87e39b0a2ead28e3ff3096c706305d880df78ee77cbae24791796c05b537531e64e69eb71be60bf60d88c076cf0cb19a6858d435fc333d962a668a979b31a8c96036b516911290d7ec16b6f6fff2dce67fd4ae815e658ebc39b2a35666a7d1fb2444c905bfa913bd77146ccdd33adea9bb35ad871b8c97b9c2a836721f967e62382bd0c62073fe60b2d3eba75734ef612917b1f7ab0cbd34843fb01029b1b0c499e808095a90887a2612411d6cc8f85020f3b903d1231f5ad3cd251d6925c3bb87904186fae16c0421144eb98cbf30403ec02f38199a62c41f175d19eea8e3cd6c25897e773005d5bf931b45e2494c7553903bd64f4bbb316a11fba9a3d2ecb3f8fb6dc28a07241ae8a4c755496a494d6b0b9d4205e35a46e028b72c7af11d6190b23a2c70404624fdac2302c509974520bdfde087f3649a241967c9afcc16970af251b5ab3046cf217312ff0ad54f6f23ba940840a340498a257dbec3ffa44532057fc2e4e12a36dfd88e7ec42a3885a6684568af0b8e821b17abe98f069b27dcc045e8fc2403cf1e764d1adc4aad6547139d107f8b77d89f1aaa2d3be24cf480c9e03019c151c173015cb1db490850fae6be852af08df73ae2b98f763444d28408469ef1104f7816257a27a7cf78708dc1e310bc0f7cde56ba7f32def255064fe81e9d78490ec9479b9acf7328678ca8aa3a8008902a9fbc954d8c1ce50aecc797943d3b1ac681548144cbbad4805773408f2c2455f041e68ef7ed757b504981a38610f678464075e662a156c058e58a6c9fca1c5c352dadaa66041bf074036bc3258df98794dcdc64248a4af53cab90d7873b1bfa2dedaf6eed93a594ead4ef4a1f4e843bfff325aa756942b2851a9a526f812158c591f041a8c5240d19603bff6afb53fe8d6d17a69b5f0752e2e7350cda72baf17d77fd96e1a6c5376c358f61cfe5f484bc401aad80a44a8082305bec47fe643f782cdad0f8c1b46b9e0243a66498942ea5cb749ddac0f14c13dd03cfafa9840cea8f012f68c5787e7a48fafbc8c670a564341dee0331387e3efb7864a56b3982012da04abc3348e46eacc521dc9ec86c6a737421d5e7cdaf957137a427efba3a0837cbfd17919c93108ad6ea479a7b41a294e4ceb8b68585ee6bccdf500a504867094a4a40b20d254ac12ebdc0f9952b20d582dc737c5f7435b6de29c5bb73da4b55ebbfe1bb7e0a4aee4c1af9d1781013e082484665964eb913f2fb8c547096e8a7a0cb6b8600530c4824c0b7b61ce65f1f4c04905aeffd6ef705859b19ffa28e88c65d1080c61e6f14f769900bcc66ead17e7f8a6bbb494efd4141f7e158a5f6924646ff7019ff67c0ed0e178e9dd47f53c6585887afec69c41fb40a23713d889141a0ff48e84778b1e6f1112be5c80a6272d77f514af6bc9dd47bc6d85f0d7cc166c20c2b8255c2fb63c4a9a303396592cf43a8de7aba3ec7a0e45470410d8bcd2a01016a326617bbff7e110b18129a56900515a8d54224467773a7a731f28e9bf5a4bbe640ca5aa012f1b4ab22fe14f121f3a486505d01e27b19a87801efa6fed57a636880dafc40a820c73ea49c2870f34bed3b504c2f61d1a61d073957dc0dbd97b2c68dab42d9e48bfe559643776004d2fe5f7c0c7e7e843628ffb368dbc65d7579a826932bddba17db9de0f3e573916f2e80bfe65f1be24aa0370aa1fb9b84a140c3d6f62fe116a88528aad07d190fdafefa49b10c4bad1ecdd2e6168310c346e0143f57099cc9ac8159e003e95158cef5a518195e8e53682e09bbf1d259dced3aeb19b3ed9089be1bf50ff25080cb7be32e64ea027a54ba01811b9fdad60afedbb7423a2d958b90f1a568c413e50284cba2ed180d3df64a13f210a824dd309871843ba5a5df8dc016092a716bcaa39e59c74961bafcad934fbfa1ac73d8e876afb160c98f7ddd27139b5cd3493cd18e08290e7869e203e7e3c5e2a077219dacb8838d3be44fcde42ea5a3e4f21037f1f0f66ad8b526d723c31b037c4c660171cbac2aafefba2afb0cf667bab8936a9453e6221c71956ec22cd70ad54226be512911597add00b3847347505e4e7a412854463444cb66f71eb359d4258c2fd33c5532e4fff22ede008ab72fee788e4bc10c4dbe9dc3172d6406f6b829903d6268206fd0b10bffdbe1fd62895790dc2f0bbe10ccf084605e3d19d4a86b4b64bfe62d3e7a1f43afcfbbaa5ba55348661d4c416c7219be1de32d038db26b8cd1e947fcde7e3a819e89891df896490996cbf958dbd4bbc5b82bb07ed2b83c96a87348fce5ac03f5e4ffb987c02675a80465ba54add3ae26f67da4a53ee326499a44031defa232cb152a40450ebf9fd2fe39f6c18b27142045bf53e844535339b0ee3e1602e499bc4731e8e536eee46d7565be292d2cac2586c2ac0e139ec733f2b240fdc69dddee8054fd0eebaf8df2d9d36f15179c0d05cc309142ab8d30a75a613053a21c5a4d9e1dbfc7ac0ca37168b999646711a61e29327ef73f462be930228f97e563e6b1db0ad480d3d73f0492131f2dbd94a5b3fbb9d2194adfc1a396e60bc2d27b51289d491428219eecc092f56250debbca32182a31fc7ea67163c9ab89191505be15f3abf1fb397ba6e540cdfb3661693b6eb76b4da66e7d9f887d7b415ed946df1b593e0523b41f20cb1edaafeb53d733ef11e0cc0e2eea5a8d4497c82f1c5a3bfa39e0e9d49b3acf3915fa69e4b9ef7b69a7f0825131e6587d335ca66c23d4e54db4075d61ad0e6171711b94e1b647e62a8b9c63c089b0c2f3bd9addf550df187a1b9d7f122278c697b91091d0bbd8da14d3ce2627e5076556cc54d3084c447aacc82f2f667f96ffcb41fc11f5306d2e096825f257f86d55289cde430b07afcf2f8b8123489ef36e58beb4bb7af07da8bfe6dc9c2bfd0a2855848dd46b70244b7d2023fed10a332ffbfe1402ed48e30ea1b3f45ec88d09473ece65064b4e15e62ef959745ebff674e9ea0f337518814d3e9d7aa1c240677dab91b9c0e41e40cdaa5531799f3d240b7dbe702b84e88688bffc56bcd55c6d3d4f936ebdca448add1c8c84c54cbc7412fe201d76294711cd5349007b027fc52d91acf51359dc68e30bf80162450b2e2334dbfc653636ae67070ae6cb23a8fbdbe8f5df9d5d88cae4d515ae6997b22d2ee3eddf2c7ded6ba7ee30ecebbbf8cea56f0ace385b3b4b533f99cfd7f2930783557629bbbcf03f54b5685ef612f4c15f9cfbc3105355214632718898c829133fe2d69ae468cae0a6215d531f4cc801fffd416ab86c4823c8220059bbdccbb945aa7edb32d8627f1f94299e36448a30e0aedad92bef31c17767783b16c818e2d005621b2a551591249ba28005137d81bdcd637dd98169bb6a849ca57a439e726f5ff61001c949c73b5b2b76c1789e59c64c739a6b10ab7fd3af7be25c45d194dd5a961911dd628ab447999b84863b98f53d6b06733c2144549af2e28d1dffab2c147785eda415caf4e9aceac3a018a97f45c2bdfdf84930ea0ed5e5b5e55e328cb44217d89dc5b8592e9f82d2e9eaa43349bd1b82548efb44adb3cf8992de1ddb0389bd7074b0696ac25828dbe1eaa0a1e46e60dfb6b92db42429c01d7f7829e2732cc0136503d4bea76fb98554e17aea5fdc346c7d457ea65f128ca37846e8fb72de28a05079ae802ecf48195840e2a7aa935d817f0bc8d38c4c283f25f3d8b4a92eb7d48ea676cc5109b5cbd651e047ce44238171be96141fd30968e4d71e3ffe7299ae7ec87192ba819d27ff91781ce58835881c941daf943d675d486f6353e7b067becf2ea8d71d08b2aededd6f1045975c74f8840dedb352255fea9f9220b31b1f677a4f7ca415bfcaf3451b49fc7f3c57267119b36ff60e618a70423808f87c7ba2e511b4bdf37ea80c4024aee17953165127a16e88d1f745db529a048175497421716bda17f4af5f28be9d0a5932628aa6ea433202d6dfcb49941d9108ea1b2cd0b4f5d274f35d52bb44a8703651e0f0cecfc7fe933fa5e0dfde92cfadd2c4e7766fbd3a9f214bbaabe2a27c1ddd16e563b9d7539d7c793d00a52e2aa1ada1be432d41defdf6cb4cd4393266dd3211309f37dee5f31430dda1e9346217d94bab66b41f44a93cbd7bd10c94906fc95a1f533f03db5b4b241c7c388f6fc2cb1d455bb5f46017e07468fa7ccf48e1a6763e8d8330528439501419214353676a96a4d405424892c8cc19346f71ecf1fb0d2a2b348395abcf044d64666989b5fd03233978cef4f80000000000000000000a10171f272e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 14, + "comment": "signature that takes 9 iteration(s)", + "msg": "0a00000000000000000000000000000000000000000000000000000000000000", + "sig": "bc143b5f4bf58441c91faf8a0f173603ffbebdf13ad89694b29fd3b6818b273e3f54ea9cd7dba3d4510ae2c8f14d843348820d2de5708d79984d05f5496af374477027560edb4795d84b2fed1495d55a1d1f42de240136a7596889a5c03a19a7659f39f9dfd9cfb86fc6e96182b262a94b315a627634ce2fa57f3c1c609bd5bbe27b735e13e133e14acdd1e177ba97bc48873a11ad3f5c49c7a7fe1af5fa10e5dc50c89c387a8982fcf562b2f36af26d05e05680f039d422ef9aa86a5a1193ce24bb88b4b7fcd12440873867fb572cc160008902f9163a4c238396ff943c99505a7b73ceef7fce692be774a3bb5e04dc82df86ea15854f526a2619ab59117d5faba3a2c4acaf2d2d8dc1c5a13affc788e561b1b0923ae96b139e4b3bb55e134f6c2d0a5f8f25fd37ce52ded270d318808c6df359185dcf554a7cd8e1b6afca029c5611f314dfea7e008b1640bc57fbe4a0f69aadb51bbc52a94eb20a7e494db577c04c33c570afe493b52ac0d49702256bf1d948b23e0fa01728a0d7699ce65a2ec8f51c94a452a10f2033b5d6de6184e3fdd07df3fba52836ced06955660ebce4906674ae4dcb5d32f33e87e5889bef909126ff24a9b4b7d51455c19424591c1ebd20f608022236f42d06e90d4cc5e98819fb93fc1b53b8f0f374013271b59ad216bee3101e217a15a58b2f59ca2fdf72dd039c76b5995226a198904ba1fdcfe2685074c07aa60748564cea870bc16f13afc6ae17363b625d0d5b95316a0cd3c4b5d9a5578e57f240c6f8e38ce0de11393c7a2f86b35e50fc19933967b7f51c066b98e88235d459c54d4d1a28d7d194964ce1449081affed934c99854f7092e8c7a6b5b6987d50c1e2dfc4c8b69532b9322c7094c56776ef509030539ed74e991db7fb14b5f676aa7306a0e67d38ad8639971471b578b3b40f35b4ed6d4996de86cd634b1f63948c1a68f056516984e417ea2e1815428a14bd153424445d1f32567a0432fb06a33ac65b861c89aa2f2b79fd911c2a79887465f3ee2220620bffe347bd21d57a25f9e6c97fc7f00c4570a26a9f013624af4d3e24e34d42dbe0fa6c8ab7a85cd735489dab9ac23a1e5fedb11f4c5a98646841bef52f894ba45245442febfd60a66af764efdc16925cdf6449543b49bfe34d3d5dd51fa242e9dbd7ce9082169e56217bb8501947c0d8a4b41f12a56ea30a071d2c6cd358ef952b4f18f417f324331c500e7c056a2d47d0e4dec4e892a0b3b3773bf74ef9769e7d42815af6499a7263719da39a88fd74348af4f53385d76ff0caa71c84d5561b9eecb27e74cd20c46104fe2fd0f86fea87f83ed0213c350d0e16c4e6d8c973c0ff0918e14ca27b97b19a3ca0767f0c213613febbccbca507b0a17b2bd2f042b8509f6c8c38c38842c6dd61cc5cb6772b23307cc4c400f4a43d9c644f448d85abd0b2740c0127002c6da081067d29bcfc1ce1aef5a7e375331b5b9c9ccb8ce74c179ffbb3476b102bcea3e33f947bff12f5c1d1f95df11e5c06f123f23083b7ea655d135b804540ba7a12cf4f23a0c28743289c37b6684b5d357f7a0871ba5f10047309cc4dbea769da1dd0c24db4f68de2c811aa3e2b0c36013daf6b801ded4aac4d83572f4e28f3e360b1e4da0ce26cb98e79981231d2ab7b3eaec655c3cc5e746e7d89b7790ac7aa29404d004a8bee6e758ca9759d272ef565878bdce47c3fe89060450525f5914778553f277227c3bd6f970107ce3b03d12821d09bc7850305446d42665244e3121407f8193ea379c322e0e3ccda4f8c24a1a8cba43c25f27fcbedf24c62afce4e143fd76802cf1bec1e2411c740a111498e2e999a54149509ba83b3d3703e576aad701257df6b969e57c58e4c8ae0e5af4ffd347454a0d101ef50146e565f6fec8e4309225c2ee39c4e0e29027eea6f5cde089a56067262bb297880aea34423fcc1ba816b06ee2bf9bd4732691b80dfdacb015bf005a7a74a486b6cf19d5dea2c2621ddd19bd834dfddd97af99002ea1dff190471a6675b61454408795af44266f438d4f94ef8ca8331755fd9ff4a5dcd03e88661b2033ba3e615edb7b061cb6a2196bf41cbfd4061a2580b5df7a4064ed173810e0d35181b5c324476fd99275d2b9384ee0d40c1cd399c2078ce1f5b622b67ab424da06f5e746b1e8cf7ae8b90244b0dd637de6799cc35910b97dd03ba01521dd9a29cb998803fddb4c680308597095f202631323e00fb85fd939494ad59e34077f1af3caf085ac82043de604c9fdf851bfd162ac152e70f1dc5749a6d8ac0f55880117218a8e09e3bd6e2e2c050fadc9352305ea51d9e6cc073cceab1c2369f0279449564bcdd7fd686c57a2123bea9735d89ba4b25614a20609f6bfee14fd03786fa0930b04e7567dbfb51c408842f82e658064a1253027afea7d4d825d1ad60caf8596c641a3cec52874eef424e63e107863abafbd0500fa0e620dc6fd397d42c541536dece5936a556feb4b8563747008496e4a9d5bb1267533c0b9ef60737ba9d4a0f6e7b2016a57311ae854e55b144412f085c647d747e631acaffdf97410c693d089fdf227ab8ae0318636235f189278e0823eb68db6801ac6c606fea32905d000ef30b1489d6f4d0124d10b97b12f4db0726b7374f8a5951cae97cbe1e30209032b9cadac407cb474fdecd6fbab06b5da028e04e0dd77172239f41ce56a3876d4c56bfb5f8ccf5d819302151187674ef477eea1451a6e4d09371358995c552b467bb216e88ecf78c78c6a3ff4c455c7689c3784d4fdd50ae4250110e39ceb0c2a04e04a3abc1a2ae95ad9011bf2364443ec7773a596970b16d7514a0a7c27bbb0f2436bcf27202ef21543ab1eb1314fef197ee50b4bacc3d8f64bb9a32936e20e0c0826d1af1500c11e704d951824fa0a0d44caf8055f5bf06e8e0ef2f0617875b2d44a3fba8006aaaec6abea7f626f90b5fcd1e44bc2401e0a486a8b6c2f96d76117e70186dfdcc10a677de2888758c6af53bda8912374bfa25bb48bc8d8281970b38bbe2c536f39874347c91b3193531c456974e02393d35dd57596f540ed9ebefc87af562cdf653eb41dc5ca999ae1cf0ad9a2ee47c9f641b68fc56e289844f5f17dc94e3acf4987b33bfd36b1844c43fd2f0fe91de2283dbbd0dfc1ed98cc8445c768a1c25835b9d6ced33d5defb877a7592a7182dd29f5275b0ae7de9954fc000daab005d3289c1d183840cac1832b0a13b4dd5e3f0ec39ef60842fee868e44b946809f8a1879c5a6ce3820b1a71aa6fe12fd19a79376c5246878b000b89aa0b010b449a080a901a24fb8ca8a92c5c2d9d52bc27c56505202f7e7964c04fb22bd6a8812c2bb759ca10f52402233ca15329bd9ea9ec76129f884355bb677470155d3a866727ab923316f271724ccacc23328a07b327835cdba5699f6dd4e29d80d45efc6708f8b7b17d20dab0c0c074e595a1c2565cb98a47c589ad761ab30d4b46c97a1a4d52855f8bfdb2fa59b63778c7b6676c0ef5acacb7155a1362dd2ab49caf6d95b676529da71b2bf6601e7fbadabeeb5827f782fcc80f8325142eb172660d2e5854c21876f1c40d93042b1b2b6e0e5cf2ccdb6f2cd7264ed7c106fdbe63fdd2d130dc242f1e71f5f9b7647dc2feaaa6162b6fe0cb3825136ffaad90b67bb67d2917e657bb8a623a5f550270072d95219ace90168bebecffd3733402fad12f31fc9894ac6bcb51ce94bb88ecbd5b66bb8ed88d2260523e21e4f6fd20d8db7df6c2604e0a659503426ec9b167a884f277a9860481afbecb69b2c8ade9c270d5f6d064b4e6c95e63d6a20e06f59ef800d07261906ea6541e77af7128f4fb3e6ec5932a46b1d1e0580d68896d256f29baa055ed91bd177cf1b1ae2f386382ad95c1da7d7949d398b6ded44859b9b4af1a117ca76cda1399a1def5085111d69fedea3fda8947c0ea3fa744755123418f127fb2bf57eb04e9480b1e20bbf9a091cd9830ef6aa6589df921d498a149096b1637ae5222c9481a826f34d5c5e66dcc2a977fbf141814c274fb2c07b6abbb973456354ed4de863c3a74dc1ea7007890129a9ee6ac41c026bbe9faea3ae9b1f1bc38fec4924b805143c0734776eded25925ab85aa943d628f17d5c4cf37e41197d1dacfcc1114eeedfa449fedd5749de33cf83add605c9d0bd3e32ebec64102b706961a40ebd9381128bb2b430748b5b62640a065cc0874d0092a4660bf00978b563257aaa4fd9e210549b5262510e695f5987369588eec3f6d0ee034a68ecb25eac0f0d9764fe27819d4039af013727252808a6c2507e2da48403efdc9fb1b27ab8b1de11a4b372b2311a939f3f08b16c77bdf15f3ec5a4a916a179ea7f64b94ab37bba8b8ad8cdd03b3a4e929f832dc0ddae5ec0bda1975ffa2f5d89c060b77c88ae263c3e5d0a157c3b2102275612cbe3d26a0917b525fcb759b958d3682550da4d9cb46d8787215d374c126db9da46bca02cc4742bc5ad984718477678b3c1201afd2c94245fb4a591593f38caa53b476c9af0784e999a50e62954fd2fb6bf5536c74a7a9877d9e20598977c9d400ad84cba1899f706d65666060f991f3483a2cbf8fd1294a7b5c7dfee0338414b7c7d8f969bb4ccdee8f205172e30c83249787ceb2030375b7588d1f0fd0000000000000000070e1c21262f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 15, + "comment": "signature that takes 10 iteration(s)", + "msg": "0b00000000000000000000000000000000000000000000000000000000000000", + "sig": "d54fc0ae94872d53a8ec295b549a9754c675028a84f54c25695a3acb715e1a3d8ba9778b3ddaad25b8c487d21fdc62b879f43dd429dac7f5c303a485d0cbbe1e9f65e53ca8f722cad42c27392f63cda0cf5569930deb75d02bbdd3f971f6a9ec96aaeaee32be48c9fdb4969667744489b349bf480ea1249cd516ade4d4b581e3c41103b5267ba72b8dfdba0e4621a93edc18b37fedc35878d6f2bd2d0115cd5c2e243ba4aa02b95ffe6d3ef1f12801ff1ec09115d4255e202d957d0b8666b60dc8767b11f11b311d9d1f0c99f67167025ac9a0ed6c77c319a5d261ca5416699bb51c961d3a077c51949091e6cf0d4cd261224b6a88158d78a45730b6a86b4ca31380540d3d04228cd51c00a6671fc0036b657f3b52bea56ab503adbf4fad1e452bd3b1b29f27ba1e24d6f302ea788a7e59435ede2de69ab30e356dbf17bbbfe176c2182f870ad9a8a819f5b85587d229beb13fc6d4034722b72de83c1613fe434dcdd26c0346571cceb396e3389d08e1094fe069219a509e59ea17381575f4ab1b4ac79cb6cc64e5dc5897645631e187cb4f4ebbf1dffb083f7dea6bf6b4991a32dfdddfa43910bb526b84c797495df6176cd7e5ee6f42ebf6bcc28fa9fe396a8f72668d33db7821ab5ce54b7930dc7a90b97b9dd6b12f5d370bde4ad41955c5d7c1871632fa717237d4f39dedaa0cc4ed74900c688ae91571fa717d5c8f70837b8c27b26bb604ad340c98dd5d1878ce286b1fe4451a20a88a4e8902e3a1cf10268d26dc6446f7ec48a84b8bed9641004e1af82b679cf1bc29c7f9126f8aac9688ead72e14c4fb18292ca507c976408603bde8ca2650e3e50043ee112714692f871ad28305122149f098535424e4f278730c0be7c1124890cdd4260dc32d63db460399f9eebd339b73a738b58c0a008c857853f0df76789428213f65107c4359038fcfb366fb8cd74f2d955e6f2b30b3e96c70d9100c781f1d6031e210b541c4eeaf30bbcb16ac3c7b21cf1093fde4999c8fc254eca328dbbff7c5c880beb3e295d2924f7763720d5ffda0cce07e8889e556edf40e681e6894fbfc49413fd5b3ff232ac029579ef7f7cf60bd6ccd48d9f76263e948049a217f12453db900ad213e7f3e4fc409710fee4c92cbaea422e755cf51505730298decb37d805d1d333ed46a84e3c7659f187a344f5090bf338bcc76aadaa1e77f726b2b11880ef162f5d2812890a0dfd7b9a21f294bf18f6b447d1dfd92d009fbf144fbedf86e1cab012ace0a2ab31401c5f8f8aca4dc92c3609fc263cfcf56ef858446d9c66383efed916ca0c0ca351b539a7b4110658ba425d35b4c2cd1e235ff2c1c0840a292f23e34ca7121273ecac5ba01715f4b0d35bffec379da93405994ea997209efb895496eefacdfe9161f7c69afe3cfb9fbb3b68e105edbb0b27b1d0514c47d8886d58dc00c6cc20612630b0acea51396ab086c346c07206888257b9af5ccc06b867ceece53b4ebba63cd4a374503a524672527ff66f570dac73094f90c6dbd8fdca572a9388d243f63521c681ad8ea17ccbdb4b1bb215acdbae279ae5ae1908bae519d7398c7418cd56d0804eba259ac01a11789d538d848b76afaf7b93fce336b5bdee63d23b3cd6c46dec665af77a8c4efaeb9e0ee1576fdf7aef9807b4884f767d6c3e14c99c14c726c686ba8feecfd54c14a5234d7ce4ad7093c673d1251b353edd080e30aae264037c61ba8540640aa38101f73ae91d788a534511314b0cc0b4c52911032bcd286919ec56507fee54032f79cc1e1d6cc6c88d9a06215e9f3ba38d5f7bc91781e8cd863108300db6adebb51a790f7a2ebbd8fb116596716b1c7028c8cd9c1fb1db566c1641dc732d41d75fc7b8b0151d1daa407fbd0aecfc0fc484b1d43f68ec4614a32a38864d4acef274c6ebd8c8a6450a29d4e63503af63db37d22aced927a24dc40870ea3a891045a5a77c906b963980f58c5ed754ba710257fadd4f50cc13825a69e3548be0f5e10f6322137943e44de4a5b3f48d62ac256d7309e942dd1f3f211c3b8e745f79984dd25cb9c6650fd5c7ccc6e222852d8160fc8c97b52bef915407e17c88cce2eb560d359a92092846bde8f36f5b1894a3e69efff64fca4d6c0c3259aeb556370328a3eea80c1b2e61ba1f9ac0c5bb047a4084aa0668103a51ab97381bfa7e6a6b631e71a91d6191c6983d6698efea65cde4a23dedfca7e6b9a329b132c3865308d7ee89bb49de4bedf2f1b09dbbf729c1f0c53409feed48a120d2cdf57301974cb05e78619c848ded1fe6fe493dfcb581d5bda8ff0146508ab2d0caaef2fb1163bdda0f57da71805e6e53c8cc56a33d3bac12250ba331f380f090d8fd9c29c94935a685d6ca3567f140ca4278970ca42eab4c75056700bad477ff9865462dd82f7bf05dd0b4acf59b238a9bc9566997de3e3ffcb1778d7817b7196e3d1e06efb4c6f907006837c8a2e5117931a3921965db84f51390bf48ce8b54d44c6d8af12dbb6d171d50145178822fb457baa2b78246540fd9a348fd3667fafe1c4b983665d2bd676dab43a63821bcdad0896723b7b6c33e78eb9dd7823e48e028197cf494b16ac3fe0ae9978b369ae4f144c7aa3dcb5f2263cd2a29dabb0b14a442d804fadd786870565b40874982fe9a1f1338d1c02e286ceb42ba0461a73bda8e2e1304dbb98974f7dacec8d90d6385cfef3f453dbd098647eca6d33e028fd6c0279a090e36a068871a1ac16e298aabc64d4e7d66f3e6fcf74f56ec909d8aacf8db5d9af2185fdfe2de96ee568f78f94910be75ddcbe9b06dd7dc290e7b7e162bafb6a3cf8b6c90a8b02e417b40b632d7c0875e37ebbfbe21f2b60535b2fa76c3b1cadbfb8d4176dcb13b530e660bb2340f276d3be55ff24b29746070bde345fe7bb8d06b7a4dfb85336acec4bd02c95b8819b81d1611c2a61b31f185d70653011f7affa1f6dadb8ac5e832659e09f71322a60770ab18c3bf2033da08fc6bcea35c4f3d00b36d9beb7e5baeb7dd63ebce5bb46b600be9fb7674fc4788d72f7a98bbcdb23c49dc6d75d7223dba5064cc5426c781ecc73fc08a975039558ff2041278116ba8a477c9da4b4d9a19433de8709eed7c18a2bec23aa6c2b20a6cfe1e36e27bb4f4c2b0fb74baa624d3e61715aa9f0188c45d4405ddfb4d31af661defb888150116639156a92316f1d77df1c3f25055e5ecab769531bdeb1f5e75bfef8e0b521fa6df84ff2d30544867bd556e054a85660b8515c82884c46f8f6bba9e7b1bcd7ff6858d97d219acae3328daf5018eb671965e8bfdcd1660785e0377a72173cb26c6db4394a7565a91e119ea0ed09f549edf01e9bdab543da2b1372f977cf7402735b5646514627c2fad38370e10ba0271390cf987e6fbe28770961cdf51d863899cc6ca6730788815496ce52e80ccb7a8e4a4b26642db8d652cf4db330b92ac6d96e7d357432dcf15fd831fd3ae65c57dac7e4ea822a6f24744c2512127fe386b9caef4a82f75694779a950bc33c2e86d50efe6254345793458b5f3089df8a9b21268c5d4031fbf095afde2d9f5d7f8e79df08ccd2e6c892051ceaebd82fc3047a38e6ea4fd6372d3724af26031b5cf9ad7529f89bc45b68a25d56267dd55cc4b768159919ee83210cb0c2a967fdf9bacbdf8b91a2adea2c51d73712c8dd051f17c6bf74a0d1607ea48cba029811a24101cfbf6c3951e112d39acb3522f3a38066f048a0ad2996f846258a3d136831619f598b408cb6db93d4f2abc1875eafbc778623ae0f9750995372527397f3d427d1a81316b448ad9d82169ea3873a0b06294981a604574256e9408770e2e6cb4c0fe67931f015d6b844bdef6f703ee80b62517fb81f9c81a20daadd9988f912578c5ae932899949256f09a26dbd44eeadf93a708ffff3d6edd1aa55bd7e681564f4b183176561437ae8685be77acc1878ce9da23b280c1b5b46dc34c4bbab39a5969dbda6793248e0e2efcb56ffcffcc40332cc54924f042ec3a5008b1ed0db81bb1d7af47e110243bf388bd75af256be280f3fc9486fd3db45b9769420c159fd593eaf4b507a038760e72e65c766a120c9925c4cc4880518ca1f810b52c326e46dc489f694e6f68b13ffb669ce5a1bb399bc9d25bd5d98c2842e12a0ed9108ba5136b865d819b1c0c8fa020d3096935b78c832abdc1ad1b22bbc80e10843ea4fa9412002133f5a5d825f86803cc699e42521a6249b7a5a8742b9b214e6557c84609b1fed79893ee97fae0172626a9f00ca2d5f7a7314ada0037ccdb73a294db5235edcd6e5ff7752794c358494a9c1bcd35046cccd6e883cfe07a47f42a9e8857bcbb0d89a388a55553d4dd120b3d30d6ba29192f76812a21209984f4d288355eac8a5f9513e28994ad8780b3cac76eff15b5e0f4113d1ec4ccb20392c282e14dd52d370369eba9eafe0175ffafbdbf72cf9b99afb23ed2e9a52a96db144837e0b83d31c35518c0becb701c8b79ab7acfe308262028f00cc9bab4cf905edaecf060c77756a0d56625b52e26ca4f177897abafc4e730d8a2636ad2b065bf32bc17c954f08868c1d8a8a804e5e00b3a0759a174675a1a9c1cfd0fe052d4a537592c9e7edf3f7fa1f253966a6ce104a65696ab3b6bf0c26727576ef4a79aeb00000000000000000000009151b23292d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 16, + "comment": "signature that takes 11 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "b4ecfd11224c059a2731e7232dda71f943490c5d84a218d2cb00a6bf8f96746497b327d54ef0528952171868270aa6cda099a943123ecead4d61138a5a2bb90380865ba0caeb5fe3a4eca46bc8da8dd6c41c5294f3fddd7aa138e1386f8f833c7271838853873a61912813171b0003578a8db71536a98eff4900a138a1848cc45475fcdc2295fa322b21d054791db116b6cb123fba5d51ed4c133985ced556e20590b102a53567c84cf41bc68102164ece90b87744aa46dd6c84c67ef69a87f34093ae127de228416ca5c795ad3c4ba56097119e6085073e736f0dc4cd51c4877d022650f911c7194aee9ff7f13f94c5f73b0886b889ccea790cd13c6f4c52effbad4c4ab89dbfa816b3ee6bc1e84e3b4d948713df5a3baa2ba4a2fb8d9978cba124d214b251a1594f956c5f175d3a5122ea270a085d11f133810f7ac6b07c51b13f02a590f39b50b85c2757eaadbfa802dbba616c1b1077f15644f1e773fbeab05111834df770e31a460d430867f3f0a1e4a77951f54aaa1b04409dc75c6e4e56063a531c30f2e4529f201a641a2a7b682f6d26e9f18067f16b0d619cd7ad06874e4c5ac7f7f508598bcb044486ef50c1b075f8f879e8c7ac93481f4534e6c982ebf9b16f0f83c94504e68ad99c187d2aace43e1c4726817e156e2ae2c6551f9a2285ccd5608c131390058cdf292e6619f7405e68453842d8e12c08d8f0cbee7b25bb4841a9afd520a4a25f92d00fd65852a0f03bcb70c49d2f95cc06f64312fae537bfd4787def2b3c321f576cda847eb14666cfffe2cc61c35139c88a308d54ea4f7500fa1f1b69abbd50e85f6baf0374cdecafecbbed52ab0d9d72ea79931d78d8c86652ebbd30dea1ad90eee7ab63033f4e0efd14622e5e9426adc9fd40847549c304535a5eb562b89b38a2d40d2173bae8cdcf5f3a049c3720db29967c65af8485d12dac3240c803b128fd89eca7f9afe3e994894c4c6112168cc89db5c924de54b346146a917b0427ca196eb5b9668fe698f678f24c4d612092ba8f7bf26475838dc52e2daf146ebd915f896741864b01f7730d02b97b3ad58eb224148c33c016fbbdf1435e3e8b842f2d42d4d427f0543f4294069394c884669a87d9041001413d257e5cd81354926399361196f40852940ca48a4bb74ccf812883eb19a4b404ceaf245b83eebf8f47ac6b0d00237261522c6166438018ad900f6db322d1bf8efd6ef63a0065a1366d93885b2d1c1a13fa37d17419a9f6ff878b720001c1bb16685f8b5932b75d734d3194b9eb39756a7780cce344be03fe5655987d0bea11d0a00e526c7eb479632a4db51d056ad351ad37f51dc14780b4730662b90aaf44ab5f2e305685c641411dd2b400baa21b2b44d723ed7af3ca3758b850675df9ef5bd1707e90ca1c6fd462b6d000668dd625023bbef9a6c244d27557afe307382cfbda0ff068fd228b863164ded33ea50a16872e759302dc44b4f3538a7dcc8bd0f82385a79effa8cf7db60d09bf8a349dce50bad2789cb1829a6624feca1d15505c5f37aa8e3f08ae1ae2ab8274498546b2931c2a823427c2c5200bb74739953a18b9cb96adf21493d4784e08aa0318066ff0b75ab9427b21212be4f09c3413c9c84bd704537c850e30fb12bdd862ccb1dbd1c31373ab9dec930100a07b32d6c6b14afe50e5b5b8fd2d37a90a443e3cd2761e31800cb16e31dcab74c76323a0f462ce7f7320b75ee4c21e0f0306c67a8f69201454c38a466f183431b155080860c641adeca00260567dc73d5065e1acbc055351c2eafc1121697cff2fda1eab331ed6a3908cb10ce16ca8fc6179177e23f9088f17232425b59180542056b8ea61d7ec0e58d8938fd205fa62d7693143d6f0abbc6cb4f41cdbf44dd67f5d7a21d7a0b7536df2a4609f644a7f8d96b861e9e853bb2c9dd828c73146f1e9e20b46a067e48b1f3694cfc44a256b3bd97801d748ec4de0b3f8ba52bc2a8bda92d79618045ee5ceb20b756421dc92747813aa625839b3578732f2ad1d801935718df8d5e83edfc3c23e5a5e15d4684c42d3ebfa42d013aeff74c4ed05f8ef5143409a9e1c1d8f61baf5c9d0e3b072be3aae7ab9c2317f2786d39b108b12d948a0373634e7cbeda1b35fe9ce694a825d6ad5d83743df1e4e4537ef7fedd3b312d56c0754426f23a865dd667e6896a82e6062a1f5b6c8a60d08377d42ec5b43c534e634d9d85f82b913ca10922cd6dbd2c3d7d35ecc98cb37af974a615831846dfe9aacf9f801ca6cbc4290bf5e8d6bb832df0dcbeb93025baa2ebd7f3b4941e617d5437fea49d5f64d78c2e2b422bfad3efbc4bd2572cf6559cfb7001e4886959ece69b5305f0799cbb871b540df18c5c1935ddfbe17c491b9e1e82c2c9a1fee6879617463f60effdaefb51bfe749ee3fc2905a3a9026e087c984276a543cc3f4e7a6948c8d92985d24edde89b36ee6d9b3d7e300936548c34436389f4e7bd055f26a856ef9cc56de2733cde47fbd173a9874b73d0b8ac3a9a09502c2dcc18585810916a4ba6a72bfe94bae53767e55495207c2989d77e0e0f07e707f66a1efdb93c8e149839ce72b31b4e17d616ae0a674cb349c2d9fbb5c72b833e7b7916246c8ce495b3e1d7b199ac085dadfddb2bda88c8529474f245797d7756251344305891b098c711dd6a74d54036b299ae35bee1fe7284c9ec11bd8dea6b8238690bc40648036d56401f26b92584f726de2445030cc9865545447abec4b4e2c0c06681ec5ec0243d845f35dfa8d80127fc2542cc04cff53842e977a3e9420e6f3303f5d1c11d7d09c15fb229d0d432857987d6ee4440be1509321511b8cf88aed7cb27c1d745b672492d183815de62f1d8f69c8581d7e6918f13225f215f313585aa597a3c8876ee67317c0ca184bee5fdcf08ebcbf43d01b0049af2455bad78bc8c28f11252bceec019032e4feae4ed2c5d0670f9c2b6d5ee96055469c25661fbc8c09e1a486013b46cfb0c0eb4774dfb65b8e3688a02cab987923a98e7f75b44261d44c4bea44a0df4ec2b8186079f3557bae7c951009a64cd6bab08410df3f4ec65b58bfb8e31c3659d1f4b3254386d850385eb8cdc19df92f011d86ce13ee526bc524bcb465ef1aeb8f08e809273034be71d95064979ac196d9c53fbac31789ddc3b3eae14d2c1e1730e2f5b38fbc352759c1f573ae742c6cc2b15fe41fe6292f3856c328814f7d70343d3320aa754f162e530e666889fd0187a65c48b42bc2cc87e79d17102cbf66d8564ae5fc71b92ca49b04d1705394ff1e6af4593792d1a6ca5b00e972180857af83d289f6d0aac81e2006eb40a8d790c7dea7e075404e5e28293f4385edac77094f2e2dec38a15b12894787bbef906d12f8bb4657c7e3e2c8767a310277f63cda040bdc68c5340caa2b39b7579873cbd593cd81532e628ebbfdd8794b4fdf82d6c6b20d7f6bf157096a96a5d327a972faa5cab92c442e468cbd6705fc8ee489489cc687777377f87b470a84209e24e18150076a1a462a9572fe037b8a69153d1b7a41b440cdcca5a2d7b4d224bca60c7184828eb519e77f2c98b4567f23251bd3d01d3ecbe70eaead160681053b4a733898d74206bdc25eb6fcec2a65d6a972c680e0aaaa1e8b1e3ff095978213d242c6af612a62dbb58425037cba5209588ccd3c11962ad47a9c4455b98a626f92264a0527a28bda7f47e804ccb393caa2590b957e5fe3527c0d5aa2ae7d931fbdd2ebad07cb69be0d5179eb6c1343b3bd4448cfbca6ffa1597678f0bf6e9d2f81f4d6e3a8a9d8c9686826c86415ca025dcd1fa1a5dcb3ca8df92b2ea76101c484dfb1fc58d35c1386a29e588a6c80538ddd18dc44fe4598627031ed1650789b3d0cc1233775e1d45e97504d33043cb721a6c210d6e4e6b70e4dd9ef000adf591e465e30adf27aaa4d8c255f4523f1dea00e9cf978687870e8b75f05ce4fa8dd6dd692e936dc2d48b410d3b626faf8ab013f7be8910da69ae37d1ad99136c15e0e8f4194942a24ccfd55544ef63e692f1d4e9b621b28fbe8efd22920983167daeca33e0734af9aeb4b77af4cb354cf9489676514198a47d8e6d614a76af5bceac2c32799ce43cc010fd421468f982bea4f56969953766f629e43cb2a0fbf3d095f98257a2b6e3ba76f73415d0d920adf9b21bc102fc53744f661d42a9de6feabe59b2e273733df75be8ac972651818e1a72260bff1098c06c572179f7c5b0c8e5e1c9040baa4dad473f96b71b25d9dc16ae2312683868ea048f85933d844b7f2fb685db40ca89f24231b14249a3872f313c14124ec1e505f14c508ba483e6a4e559c8ec0b3dd7ff0446d14e4fda415ff4031fea1e65de59e5322279112ac4f64664066c4b5bf5a08dc160b6b313496546b679eeb31315500d81504706ae14ba526009a84b7270d9f9ead65398278b6385cc136c69e3e431843439b9a75e8b44678fd38facd65c638a3b1245a78bbbc26b85473a5569c5e6e0d2499d1570203ed563540096bfff6208502b12f107894d767798b5fd5ad7389bf55a6a90733511bf5d6273f570626cbedaf5de00c5f905fc2dce53f0f90d67153492082255889a9ccffc83a1af2d45466e787cd3dbf5f7fc181c2024454c507381babcd8e9152a6590d6f3f5143845565fc9ccd10000000000080b16232a32", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 17, + "comment": "signature that takes 12 iteration(s)", + "msg": "1000000000000000000000000000000000000000000000000000000000000000", + "sig": "5fdae986af0e453c98062fd46d281750ab398c0d9be681f09d8a22793a5fbccaa0982761e89509ed0427f0ec73c8f9b4b905dd1703132646ec472f0908440c2e21e690e58ad56c3c4da022c2459c059e9a97709ff8327785011f0378c8e5c14e3130ebc43b2481b016a23ba76e61c2e0da8bef8b6424eafb1fcbe6c1a984ce767b0dc9c824ca1f9a5e8896734c3bb2e01b02bb18138ec550f343efb45030bbd2d034e859145fcab6cf42d48e8e6fbc3f9626dbfdd42044b86adf6dc6df412f15f51261373eddfa7ae848bfee57878380aae7d75612b0aec5d8e1f4f8809e14bc9b244fa50e5c345decf47c597d3bb0f5f2f0e6bfe3648bf7c4ff841d4861a3faf7cb09bdc97ffa37fe75fbb79784e858f34ecd2caff2ffec7bb53627f63bf4f423a290ac26439b722e859acd4fa61673deb275b50a309c9a1b07c7513d8718eadeead0703e5d4db41618dd23901d1abb77c6a728f5565c911199e056dff8c3c0a8ba7cdd05df179ac37292dd2597e38e17eb2619472cfd4181b2b4aa6bf649757010cc5e67121bdc70454d429a8b42850c1dff199567d700159abd3b485788ee01d71ee7ff163c4557f688fff928c5974f56cbb352ba8b3ad07b7ec3007dcd606b4ab84d42b004cd2204451d40198bbb023bbc9d3891d17080fd7d50e282a715fbe97f787a794d0efaa64db07c373c257b0770fa0fd8011fd15ae4edc1d4fc69187385634a48b7405e6c1a473c5640d5125c80b60fc5e48d86829625195a3fdcf6ed3eaea76a1577845d26244e1dc679fb0386d46851e80b130da1defc0c6797036dcc65ec7e0bb485d1f680cdebef97f2780d20d8d664a90b844e1fbe6e7126d15edfcfd37877f0c07d483287624b38000c5689e77fba19d1be415da83501494b0cfb15962243798f6f415206f77f3105f20e6dd73887e7ce26d06b968f3eca04b6a49ed9c31ae0561cd1418268b8405cac00dac88ba433b98480734bf981c4cd74192fdce032c41ba9836088b9e0acf8dfa97c085cc60ecc75f1f5b91738938c2a19764089ed9d81c315c1d91b7e3b1a6d3beb93893e31ce32f97e8c8b837b26e07b523cd857edaa268ede52e0b44f3e54ab37d45d53079cfc5a58a8c992d683a37e9dada046557adbee8838e10ef464262cb0f59029797b6943b7e6b9e0c7010dac5605d6d581a496780e6e2eac7b07b95abcb6d92acf293cf394140f0fb16302dcf94992438050e84a66c236f21b56a756ed0324977ace2196ff58ae2c8db667b0daa54a2d42a3920d5fb5463cb8d06a2ff730a9f533f7171ff470b8ada56521eeb0b5c150308450c6b3821a071fe079925f62320cadd8da8c180fc8a9daa2c8e17561b21b9fd4e221893ea6553a4e61c1fff9fe8ab25488ad1c0fc3521a4e236df4cf15480df5e2b75d67ae5743fa537fa06575e86117782f912cf14b9c67a461c34632fbef9b1328ac76a8dec3f442541e777241cb9eb39dcc009e87532cad63005e5e93a063a32012fa889b00e9df5a63fc6aa81e1cf8e4d967f8036b59b1341ac3502da9813bcd4401e516b716cc2b5ac04f5e57895e39965a3a022f408d40982b2f9e08324dfcd060130ee5f700946e09254932d85b6a28c7bcd5395936f08ca928325f0273e3c268883366a662ebc9a7f1bcdccd0acb6c454f79d67bad0347d85e5acb01bf3413b6dee73a208a40caa15d6208803e3f9cd708ec17497d7ad77eb3ce50353b5cb2b9ac447ef4d58a9e60837ca7724629f32dd894a3ffc3d1e7adc206b385b82ea0bb478f1ed7f675177787f92f1aecaaa2255ab5b48a4f60d2691ec774d3caf8fe5d5f2056f125d240bb82114cae0ce31e2f0fceed910fac6f7de9de4da88e8149b4b749979d37dfc3112e3ccab549be830aac9ae053d8474e1f248ff0b5e598731dd63cd62ce630b55933859137514e84ff5a4059c0410f564e477a1694ed2eaf3169ee8a9ba5069922129df8a94e4ffa278f4fbaf52a605aa76516938eca5be11142bb83087e6def74264e7e991c763e5191492035f7705bfdb17c22d4933fd2509dbd25840614baccee3bd3bd59a377484b55a09dc517fa298dc7f04a24304dc91002c000ae61bd5b75242c0680988d9e7e5c05f44aff949ea3addbc4fbc26a0ce3ca9f3229a4ebcdb6c754fe95748c2ec479b76e311273c23a1d3d4816de71a9bc26a74153c624cc449f068ebe2cb6cee7bb5e02ea4720a86a00a5e0883f4cc0a6d967596672646d439aef75fc13e0c4e0890ff68fd3a50efe3943548b446c2d2f89a2b16710f22cbaff9b1cb501675902362b0cb5f1ab9d09909952219eb933ca1e1dbf271a0fbe1fe40c928fb5d1fadb935b1fa84cd939310aa1d3c30deb64aa7cf9ffe7301bfe602ad3596e07e87f65e53b23fa5017880e70053f65aa7345b94829ee3db131813bcf76d0acbf69f988e88ca3f49cc4311ad327edd90e2a4b86910880f45c16c9ba8513fc72afdc4f4c272f052575b71e3de70f07161eda29c83bf83aef0fd46f11095cd4fcca33efd8cae8f8c2d0787112723cab9cac9ff9fa02bb45ecbc9879414151751bbbce8cad5c60405150e0819d076b699d9d9fb62505a6c104587302fba8fb17725e80e9732563411e576bba1a503b10ac97a41caddced4fa591ef6980aaebe3505df212201fd0d892d15bc08d6501df3a3263ff810dec62adce7262c07360d1de212b1684b239050a3c87acbc7025294124f86a8f35313a97ea373a701ff4187a7eb44e30c282c4b1c30702b442a606aaf3d5263716ff0fa7be107d0874581703f9ac04b6f8169872e94100ca1b11e44cea2bc63f51cc1822c65d6bafa8c639c8f32b4a60c928fd049282dad586e46cd622fc34f1fa5ff7a67d06a427fa22d05e485394344a1b41e8aca7c624306eb3a6c9ec319bc65d8f878b1badf3a4743ae1b39ae8f1ddba00bfebddd149f5b20836aeabee2c6710aa0b128fffca57783bef39e66db6df7b4a7d7fae067d3d65c63b020105437f448d644f4b0bbaeb0490ec5a337013b4ea5a16f82567ff2588070afdc6d0998ac6a11459ca7a8799dde3ec3411beccad252e897a360e1d4ce9e9e0a82c57c79a24abb99ed5190f27e43144f9fcf076becba38afc9640f9d18bb67f6d4b5652bd5393c8483ee348a2ab3431cc92dce30d0f069312a671fb283aba4e527c72781f59fb7f6d1704a3ff80d49fb53ece26f16a15ce40a5414475732384f8eefb51cd22b34b8e901c43eea8604354522c28031852da10e0acfe6901a3321a275f86f025459ddfe1d90c561bdb132ed4c22209e71728300a7f5ab0c84b7ced352ae3321462bd75f6976849448018db9c2241d2cfe684cb6c3678de2f1dc91a4b4b6c2572831d4b2036aa457476f8f19be70e405e2cce6e4e9b9e82be48e078216747dc6d63359debfd2fee14a0e8bc0de95a381272d3accd94617875e9c08162817d5294549584ebbe8dcb36d94a6cdce34e4f30c52541d425422ea0e2d1c00f9b381d021ecad3892a1541dd81a42a1eb8a7362b5a125651db02f1992efd6f9515f3f1ec66566f91c1876d159c61195383a4c5e4c89555fa026b5b3bcbcd34d8b6b0eb026cfdcb8cebe45884e499f7bd1f40f1e4a2144533f2d57e1eff0584805d5beb7d6ed7fe29e088379d1a7ee70805f0f8133d26156724d4ab6560d15f49053a1c8a8007a8eeab8f6c09265c4a545ddba9eabef6434b191d87570ad3c88485decce9cbf52a11895aeb82dadd9921522f368843fa7e246411cadf0fff4b236641cb516057f102e9875e9363bfbda62c5d40fccc935eadaad4da3723b7ba6cdae6cf88b3d14364b6d30b435627d7781aa1003bfc4c9fd145f6c6e82e58df863488d27e7b219949d554c09124c582591305a80964416a18f70b563a761ab713d4832a1780300c7ff01cc52be01a60ae53affd3cd4a0c19eaf60a077f792378be2d3c958108bc068760e1b920119b311b406a5c59658a9801c612140d9c8b15461701ae2ea1bf16ed9650d0a26b52dc59d927efcf8174a421409877064d17ae3bf17831e4759e3de408c616c9565eeb8cbf83729669fa7afb13e662961db2622136bfbc69f1a80a150a604c38bfde2c8de8eb5addb54825376d4f8b0935b6a1f34d2a82a29c8a725dab50649b796379d61e5382146d399df86de0fa51875baa1dd2b3b1490e34578dc9da393fdf26ebc36ea3c40b760e526e30280e05529ae6e5f9f70a41a6e36da9f9642ea74639a5631a6bb30f17f3403144d9b503d921917628a327a5422f79903a205f7dd33a34e93da5a553949e25c29f952e3b5f8fce39cd625c9d34c79d414f104a69532b4596bf7046c3c6115b4de3dded2bc270eb4963db75db38d73f2fc3719dee8730c12afa6cce1d867d7e949d7fb607e39bd2b09c1e80fce2fd76c41669ca73b9bae914f42a5a5903327059c7bda73ac88cdcde315d5de897fdc188b42ca521ad5d80e1a6a95c729f58e921fe2c258fecbe03858412cf0d4660c6fcb6c5b16be8342c970bb19390b7c393211ccaf35a680e1da855bff9c004b067780522c8f26770559af10a0fefbf887a4035c7456a368e3d9e50ba1423039767bdd6482e61a2e47829192b9131635608a8ba74a4f94959fa462aec7e6000000000000000000000000000000000000000000000005080f161c20", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 18, + "comment": "signature that takes 13 iteration(s)", + "msg": "1500000000000000000000000000000000000000000000000000000000000000", + "sig": "73bc2954da39fd7abb7ef32f531cb8144198e50cb52dc4ebc9dd5ec0edb90ba730716d93157995e37263b1456cf55882131ce6d537f10096dd8500d16166de80f5bda2f94463e8fa18e0b970871e4cdde1ce7d3e154d30643fd4a3740908fd8b1249dd3fc7da0a5ef591de4f308b44daf5018e17278267b56f7df5029a130c736f56283d50f97ea4d817eccc6008be603b19a70f1526e1d3a2b1d97a52402eada5f3c7898eb16fa2438b0e4ba9cd745b1c94f0a5c4d0be6ba5ba9f0186feb4f741260fa0f441f1839d3264150cff7792f5269bb2a82cc360e30a15f61b2568467d9c8d404784996dedbce426c71001748c691cc848e776023cbce13438aa0743b6ed57eb614bfa8fe6b199a53207c45ad762ba80efdfdd31595d7bb0da2d533aa65ab0ec3ced551a0b6ec2cc8a216944e670d7342cfa367542e86edc2086dd14de5c0ef8b38d677379fa986548bfd69e84bd892af28b4028687ad8c94f55ed56b50d611ba6de863c201b16b0b9de779ea393be40a79b6405bcd3f1f8685018c8fa61280289a948831ef7963f3d30f3570855e58873b9f9f02fd344f8362ef65f723fa0c5b8d628264e74cd4fea73ac6105be0713e80d52c5bf55c21c1f502d73ad0afa6144b6bdc227570b85b47143580c736fe4f2b201ec4f4f78efc3d4afb2a4d81c8184fe36011f7fbf197335ce1596a0ab39f8cabc02bc77ffc005665dbfa356b43ce805fe0dd2c24a9e6c363cf707ead215ae245963c5684ba85b55118d6e8e55c040012158645aa0d0004c184f826b7a43a2ce81a3bfc6c4ea5651e8dfd10fbb22b371d03e7dfbb3aa23a9e604d8c452a3e065afc05361062db3acd697e52614baf0afa010b7cce9e2c36d8e41020951154695bb13bcdbfac5eed9bcc8f0701ec5bd6393d83f828d3c85a591bfec897203109c57b87335c48ebe20b8c963ecd0d973c2cce02676fbcc38febf292616b05226c523a4bb6de9222de497caddef9e5bc65fc084e152f299538479f994dc79e19c806f0681ce43fded54c634427ca1f14b691aaa1e7294741ab9f86c15a68cfea5f5afa27e068564353ec51a39dc220ec0636a455604671d2d11e4de86b5d8b766b872563ea6d7a507a5c82a1babc6dee32af466d560cb9c9835febb4aa2d07d7205cec32209df17475eb635861e595b1f4cefbd9540aab01e1db317fd0ab6cf56a03f12688257028dcc7f344a87ab0f16c2ceb3a7c3cfab665c92a4b03a423eb158ad7d3a8958beaa417b4fc71948ece95058b56b9fadc25e9f3acda7020cfe201c1a584fcb2ef38c9b524941472d4651d828b17e7dfd31f022f2430bcadf48414aaeb49c21e52f40d5feb0e9216be4031c35f4b8cc6ade2ef156113fe63827179b0e6f30465111c7749b2e99adbd5e451f121f6832a4121abd9510a752a7a4a9893942d04abf4164346f4fd32a01ab7baeace93f678333c4f27889facecbf4f41ab234fe2b24c0de9cd58ddc969d53b5c7aa6ffe35e58dcbaccdfe9ffafee5b3f1d5222e6187957a6c653751b631f439b691d5f2cf91808f65de831e4f076c37b48fd9f96a09144ecd06510e3093429b37abf729e09e1fdc8dffade760a584cb6ee668a72d4619f421d5ccd663d379e6f143088c143e29f22ae9d0fb993e8447cf44015c36326e0efe6f16c547c3a212d1dfaefe654dffe6b231c5c1d8b3288e4ab38880b324249087822a32eea1ba798d2e7d204ea86a990c7974a37df998bbd7bc99d799458b231b4e45cb37dae19b46a95f597257e75df509b2f3a7d7e524134dc71eaa13ae8d585fa7cd45a6ca91ea96085e0092035ed9ee335fa047f4671d744a7b559b52a738f0d20ce5ca76127ab9d549b869a3eb6b66c57c1d317f68f3f6768a7eefbbc9ac06b4c45a6de768aa3b1cfa9aa19b792c23054ab84917628f94ab3dabef0d6445ebe8a374c4157408f1f84c33163a75b8f4646637dba50dc09846f1faf64589cfd1e5124f6e70770732df2bfd1102197d9a7f45215253cd9d05b7eef329c36a6fee9f3f38050658112b48c22c5561842ca24803b96d58fe1f627c2943ab1d9366d2abcceec4c6e55fb044e5a401d032f04f7ef2e49fb89f67da3a619ffe5702227a7ab06970f5079549dbf6bd4416722788805d4682374c982577b1977680e1d0a6af0e06ffe4103587b41f650a85db8eac9a009dac1f9f7589271f6fadf60c98f669f70989a913123f2ded18b2966abd257590ebae4225cc436cdea6430a3167f9f3f42f5cb135e11cf31b8e2e386ab51b6fddcb0e30aa3f2d8cb12373aeb8a364e3123fff93efe83fa89a44e97ccf4f9b5a107c1968436d8a08647acc88878cb7438b7f5545f59b2cb79e20ab8d4750243c6898859ee1d9d350b686aed01b2a6fceeb62cf9f824b6e76d57cb6f16566c4cac2aa17cdc8b72a2223c2f92bec38b0f481631d0096b2ae449370318bdd66e196537a24f0ea33aab87ac5c94bd0645824778cc329e76d5b38482d126a335573cbc81c895d225c3b724fe901ba5ee9052655ad9c059412d4cc25e00444e860f683558fc0cadcb33800e67c87b93dfe9adeca9aac911391632ffcee4a3ec48dcf03842498f674a6a8f689f058d825e931673d520700e284d3a26f2e5a3c3f2fcfee3d49f09775514b837dc35db8ea09e1db53d548ab580c4049e16327b5b0638a9f6e3513fc393122c9d9156ec532d462788a649f79bebfa626e38e261fb839f560f5276b36e462957674fee0094354dbb6275d09d08489dbe1fba5936d1801acd87dd89ad608d33f28a65d066f642117915b9acb32fc7459e15180e8ccc579ab2234cb64c6f4563f5a696eac76f158575276f773e0138545b904feef9cb44e1a13d3004245a33b476ad3e8170929e5e6adc68a12367d090091f7bca5493f7a448e88eb4f13cffd7f648ce368b092416f3b577e16512bb54dcd06e0bef24ed69396039741d37ff96aa0f3b7dad92fe7c67d32ec3c5d936c410329445c4126e027b1691f9964e39910ab4d1a6ec84fecd2934ea9e0f74f371ea279d50f70afb352064804d30fea26e4ecbea3eb6f96b7b4324913c71a2db4bd4a8f8459408eee1889f8ff15cbe14343403ffbba1d95c8b050f050e3bce3f394ed35bad88ce9e1235b3dfccfa478f730ca162355f1df0bb4d1205c8920b5b090851e9798487e3a858e8ae1bfcdd543209b1f8713fd1a80f6f3c8622c10315c1bf21c42d456667e64b1668f96455cd1281e3d76d3a52149621ec4beb651e245b8bf1f3f3fa770368fc83eae60eceb4f4d5e2b70e09a3015cb3dd2be4b307fb5b02db05a9225b6c21047b422c65ee788ccba14c86564f7fd6889a09a258e03ce3d802d19b33def3d223bd427a7cb4d9fd6814413e290a16bdda7acb39c477cbccbbad8c664aba0c97622e65e04c17cdcf51272eb8cf906ee15cd7ecded36bc66139800a4a7864401fe328f8df0505b1e13bf3bbad8b4a344a292d55a17019393e4f0105be7722837624b84a183ddb9278e9121b2ffcacc08456646653df5d5b88e77f8c61e341a869548ae1b286ad8b85ccb763e3d10da9c05e895fd49ef02ebbb60621dde417678ce965153284053d0fe38da260effb844a62956d02b1ec6e5c8ea661ac8775a95afa1861cec82c396a7ce98e5cef55429e3a4d239092f090ba10daa78811e59e9c094d4bd805ab89b5fefbc6cde6fdcee6f21b19c979e237a273e24d9db1d2a7aa6cb0443b5d8fdede41f5203442e658c6f9e63383407a4d67680b6f486254c597428f613e9478cd2b6e765029fb73ab72add5928752e558506e6ca46a3ae1abd4d2aa5f5d7b6556d07440b09166b0d93d5a939e190df2341415a132bbc0b742d3acae79d507628e1da15ae962ba93db1ab75e1bd6db1e99264e68db450bc6d242fa131b05fb73c050e6996c4c2f2ff95a372f12a9d22cd85eaa538db6e7096b765d730f7a35241935fcbe23508b18f5e61789af328cc00ba9f2eb9e004afb253317ac9b0ca2249f63040ce4ac99905508a6d349df6e96c6e675bd3acb3103c611aaead2046c4499fcdb17783bdddeb3c2c75553d338b877f6da0e9d12452943cf6040988fd036fd76deb09ebd8d24e464cad1b6f8d05ad9eab9f18c15b1d6a1e33437e874beded7ef0ca0e27f15229b6746cab74d77e334db74c013e45199e6b0c33e6da136c2004cdef5754c5b44d67085d9cd732bceb1cf20551fa0f183b1149caf1e39d88d6a5e0eebad539c3ec63ae9b2017d484866cbf6a9f5029e2cecc71954fe11c0fee7b1b36f8d18a0f138e54d45aff4f98aa922170a5d3f81d80121a29e6b2c8605214e6a807071675855099f305c9b0041caa826bbfbb216abf05339cc96cca1b143ec278ad3a1704653fa273d663f09addaa860cea934821e7f6d0d005ef1e8dcb62649907994c682481923300baafcb997150eddc0e3c1ecb6d911f51979e04cce3d1afcc40ad70eb0f3051189bafe36275bc313b5585126acdc44ba14a7cf6864a37a407069a266c252c121475d5132492be2120a43c80112360c847eb128b8b4b569153ef6205b6f24d0b5b641899b7244f0463324167071c91bb0f5f70777c8b92aac9cafa13181dbfc8cafa2485a9b612379bc72ebf2d3b59656980d200000000000000000000000000000000000000000b12161a1c23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 19, + "comment": "signature that takes 14 iteration(s)", + "msg": "8e00000000000000000000000000000000000000000000000000000000000000", + "sig": "f35a6312f8a053655499f4476cecf4324dce61e0e98a6fddfeb391b714201119964d2891579c9ca0cb74b2850623808d9c2bf5cf38bfd051ec4acc1ae827b68383622793527e0eb3fa7be83c1f72b7abdd0073f7ba4244b7740aeb5fb66433847f3c8882811421a86a55833b05c1c2f24949ee29332f5ca5e9fe97daefc85ff6e9636b9d188c2d172c3f9644df60208fb298ac2a08490bb611828f1f5cc93c687b8a6f7441a8995a3cc50e894a11e9fc7f6dbd4d47cb087f7f3942a92ee10899d56a65d27eea66ccedd9a7722bdae4aec8fa6eb0b45be84dbd4c68560fde71d04fca514e10bcd733de9b3f99454b13cea8453e2c9cc5f29c709f2c131c972dfa2f47983d04d997ff217bab57d250da438b13ed640f3ea5017f78a394f2637bc708e0e7db2e5eefb18bb1c68d4ab59643135d08de302f9575548a2239bcc385849e1cec32765748940a011daa3f208da13ff97453e4d08fb668caa1a282530a0ff8e0d9cac67235be0dfc06d0fd5eb0ad56746191a84fd5ed68aebfb3f3d5fc2b3a391cb62958c471cf9533609bd564129aa6479f90c2df8ab3d5bbc51d9ae862eaef0e289c81fe4988ec757170289f5beeaf851888f1bb9b349d6cabebb5dd3d7fcc25c9e4dcca721f0e395918a69496c1e578662e3a42bab10070ce1c01f61cbbcd1ea2fe7dc18c318d649bb663fd7b6022cee490de54d309b0be08121765082bb5b634415cd7d16cd11e69f12d2bb927529554cc6cd2ea48612e93f59ab9fed4aa2a72fb78a7b73c39c7bb1c2bc3574fc7e2c209b64ae2c2e50781ff24ae6761e05e65f670f7d069072b6d73a479969b0ac345a5f1a214929e6b783d542753c9075bfb97dc72af2dd269a0e0a739430b04f0d6988206974d747df8d07abe115d2db2670fd66c2527f288077e49fcf1dc627464a963f031f438861bfbec5e21d973a5d7bb0ab20bc52ca3eea5c9f6fce2339e0a65170f5f7fe8c8d0fccbb1d5b8c5a5f7660d782406e18f75571e43cafd66cce56474b6d933edf42b2f01408d919df23334f5caf47a96b68e845f3b4e4e110e3614cd477ded26f1bf7c92f6ce93291ee809e61d48e824ac80317ce49224b7319d8e4e3c335fa9788f1aac31a3fbde6590c22216ee17d27e387805082dd3259ff68c162339c57404f291a7dbdf12f220575335e189d2c9536f412674e918d4e4d5f1761453d6a080b766db3fa486f961c111b1e661f28f3eacc0cb8e21f34fb143873113ad70331e2a915f0fafe29c0567877a8e947e13e7e7c677af3fb1637805c37877f994ea93cf6e2cac41817140b4721ff48e9a569bd285a821f5aa389f6e5b08dc2be22da23a31610f7f37dbcfef33a3c85b2975727711eb0b54004f5fa0035416018935add492f2cdc00cd367dfe6b4d16829755dd4ba7e5f25151bb9f02b31c05e26fade8b32e7c9569272887c8f32975fecd9c725ad92ee08a819e2f473c800d10c47798e921a69372b6770e664224f4672265d0b659680b0cc83f0724ff727f723d7022b966f67ad5242f312c5aa832deeb9a721957edc71d3cff4b19023462c9114c7341aab6d6f22bfa926128e98cd79c2380fa9844374e67b7317da9478add4579ded5fac480ddca2b9e19c4679447324286d7dee578e7c0b1358f2754c1840843189b45a8c69702f6be6afe95d4739f205638ea9d2059587724807d8f5033e9106791df3e1056b3b9d8972afc72746519f453c3b51a754cac0713d440c094f4b707cb07fbece5eead8a7c82fa6949b6289ee41e1da5b801924c24aa85b30c95c7a074f464c320c836df0da10898c912ba1b3b3bedcb64fa1bfe78477f33f5d5058e306c3ad6bde51908e9ca8dd5f4663185b1ac46cf6ae98059aae95fa0967d775f915256dfb90f80723c59c1d86ec4c700ba795ac0c8dbc87d9616602d7d67bd0b157fa9b1040c40c71e2c2b74d673ef26345c825baf86dc8ae8307651a14a06a341ed4a0d570b77c297c012740b2d678b6963ae1058e7b514da045867c42e04638b9cb361bc35770112492bc457ca1baf1811a8aceb3f622a770bd1958b5312201d9c2b228763e8eb0351a1f6a70bf2b8a746df2a4a354800faf6dd7299d4c70d0c55560f20a71b896553c731cdd65e1a8d83145f8c89fe587a299dabd29050fbfbc7dedad1aa67b96970403983d76406c04eb72dc8a77f4af4dcbd640e82e12628898345216aa350b8ca67136e4271bbd33670554dcec8d3e9e3f05424ef83cd7003454a9647f864ea143438519b0478230b794f7635a960ecd17565e85f2163061ad947bef93399f5f0977dca1bdb4999459f529fd7eb97e426978c10c20d8e6fe9f20aa908a2f734d88e0ad68f804e7698e69d065caac268e73025d269d06775047c028e1030d163730afd474b47f2782bc9d21af573080daeeaab9e39761beb659a0d1727f91ac9e28b1b332130962ade9a5c30376b23f3874e1dd9536d1c4db6dcff16224f1c6a98d4705e74a1a75ffaef200cedd73a79552783bb3757794c30c7ea0bdcb8b504212d7218253f777250369c8a65b321ff719d3918ad54eb1e5fb9dbb5b0a4925200f8edd784d1e5d5ddcfb20ebf6565e1125a8a3c3216ef32a2df02df47d38b90a45edcd940095d8a672bfbe505304cbe438f74437a34cf43ba2f6627c56f3f5b7a818c7dc754424eccf2446b0ddc03bac858ec34c1aa484738bc8bb6078adca3b2898cdd117846666410c490b5e6ead1e1fe3c231bb223a245a817d864a70743dcd3912d7011d70eeeb53ac1c0463359fc87a3cb179c7313cbda432b85374568db7610b97250f56a82cfe6258b4a68ac61e9dc281d5b887db4573b9f7a01503f243403e3e119f149ee95824f8370c64671b2e751b2c211c10c93ebd7fc8847e1d4441b0fd603ac7d8f6dc76e56351a26f8e9894f5370abc816d182d7a5f079827b095152e7886f087a9aaa5498dac8208b53133248f493fda96889a17ed9629a7c4b9e103ab59662a1347e0593779ece0fd00991cc9e83990e8c673573017329616cc03e90353a2eaf89af0b98731b5cbdff28b9e0af4478b631d6fb3748677391c3dcd342a80958b5e3cdd8460f4a3ef7786ae706991569bed078bd2c7a8902b1692a844f704f83477c456499bf6f743a12ef9cb1b560d060c0f864c8d84d3fa0162e1f128e19e16eaf230351d3a40999017cbdfd182037977a3ea8847877a1652abde40eee28bd9890d3e29bf626a1c7c5a7b02405e84be97fc9f3702d65854425c57dd85e7a680bfb16703d0d5c13a76696f15e802f2f0c757caedaf0844618520179d24d3f06273b87c9aa3cdfcf8ad05877387468d937904e2068522309518dca63a51c4063872b0b2089271b96dc1c62aca9423a9323295f2cdbf1d68e7600406abe86d54cdd1918ff3d763245da9a6ba4ac791e613ed73ee50aaa6744a2427aab021e2ef24f953042f6429fc451e39e796f6c7d64b3c40739b007699fed1c057f75d2d4659396d20f09509413eadffe78c75cef3e9eb65a12e332edb9e3b2e8e64795fac153a9f5bc30a7e3d35d65bee29cdda5afd93dcf7f5f42e4a448add1568d199ffb5774c3383cf8719bab694c22e5e3986dac4a679f741da198a228bbf4766fc7622ce5f517bdb900068c0b9b32cf4c563dea50bbe7025fb0e436ea86b0a8c2f58578d48f15eded8d19444906dedc2b766c376e6d0dfc90d761799d02afcaedbe35c9a30b3d302e4463186d9cb1867de8122009d52ff8fa8549451b438a379052ac63770cb04c8a80ab894efe019f414b48bc9460b33fa51978fdefa2f2701a440dfce6a50d92ac7df6b915314f76d7d79636877dda24ce3356ce78de29fe40f2ae4104712be865b17e9156998ae7bbe937556cb05cb155a600d303ef8df20940563b583bad366a0ec1ec023aa685eace86a495e5bd63d83b7d68039d18a83ce1ba5eb78f75242822d06601fc082518f59990e12b486a1d64112a80b80c6b0f4f3d5efb82bacf1b48857d06c305bf6f6eae815a39ca4753280412e340095d53379a0288cc977ba069962241bbcaf288468b9abd23118d3eeadbf706468e41199e57e9839b7c0bc1763d1b6a7a42187723373ddf6c9aa70765b0363dd4d5e70c9a9cb682b672f95dba7e156ac11cb3c526411b856152d124184227c53e45141ed12891d3b071a453b5cacb6bc07daa9404efcdacd33d7381b95ded01a2e54a7bbaab38096c08cdd795378ffbc055093e0602d8cc872f1a0e20e1577b0459953bdbe606a0147462c3e790e093c0110833f10e71226c1717cda055ddd82431ccdd7309648b5799384e4d776ce800ce7822cba4c2ef34045149e619cddd634f45fbfdca78df367d5f8c50392767b972ba01fa69b4907f1a610222943075ee385382652cbd5cae573f7edd8bb7f5f79e80eeb85669791f444ad3d5a9754f1e6520d27f563341ec0646f8395ee03e89b091a7e8bc5265b9f06040cccdca852e1b25cbc31c2a5b65b86d5ee855f00c7561c99cc8a622e8a4e7e2d238db3f48201dfbc381ce1ab55e7d6d0a1c5c5c7de5b095161b90a2696907662e3819aeb5a1198e21b2b760c994549747c9fbbe3152c3e3f56a0b82c2e4464798191d0e5206c9295b0014e606677aacdce3d717fb800000000000000000000000000000000060d161b2327", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 15 iteration(s)", + "msg": "dd00000000000000000000000000000000000000000000000000000000000000", + "sig": "191fc745712fc8a225adb8de855d779eef8cae43fe75418ea2b02611b979d39499c190bd59c31000eea61c0071a6c765f17f03310002524c8d1ba8df6c259405104df0a435658b488a3aa81c82d9ed06ab0886d456d7c021129f278edaf04477e9b27b2eb35d211691b43e36e65c823070a99e89e0000af939be62f1d95e94a168d953ae5d0933a39d223ab02631932d0006240fa5d3ef265519a5cec6bc796f932345f61e0e63dadf53461a1e444aeb7ff96b32cfa9c8ea4896ca5b5c58afa77e43ab34b011e6a93f9bbcb8dd8805ae7351cae0a0ca95756742077be679da919436faf4e386329000916e206545b18011221f25b8bbe71103aab949769d2add6bfb4082cce81a95b66dce001ede20fa6aac7b4c853df8205a432bf5bb0ffd3dae68e4eb195dc408450748143c8f5e6459a80a1f26b1b5b148d5394158425f8442a0d9faaf05a5ed8df9afa8bb97f499a8454615b626098fb3daa4c4ddcaad2709afebb8d6e1eb5bbe923ce5a4c41b3dc1568f4e8634455de6040cd3653ce5f3d63cd54834ffdf87e72e2c51cd2416041abbb51398e1eda1e22ca4e7b4bcd72eedde8581cbfe2b2b821918a338bf02a5771286ec7c992ad7e8c1f46dffbeb101e939f4b918d9a7b86fcf9940c12f0d2577e57f2702a263f177ab0467bfeb3384647c179f88ce508eb0173bfb6af85fb662b0861ee8051fa4c1820266f8aa6bd6f5c6dfdfe31f15a86df16669815df1af36c2c03d10a8364f488dfe3c266d012a69e538292d2799254da27d9ab3dd900185d00ba45110071ce6132fd2fbd6c129977bd68a44bbe3d0d90b70c5c4d7bf3ffa9f50400168b4a2f28c572b020c175562dcc3160df4a71e77854d555cb8d40f7e773e532934dc896078b269b719de189daaa17187e506d7c2cf06d7b7f4d7ebaa1e1b8f01be3e5fb514c4d3c23736b059f7f6b2a071a20debbc7aba923e040673f7d63a6ac223e86a85e665a941b1067f5a5b75d5a2d4622f30f61f813c9790d0bb62cba7c982d34dc6041f57f204df50b9774dc7300834f53f19d303479bd5df42b378dc28bdcbb81f8d2948b2eed172e57bdbc44d688dadbc2e30609e25c4ea4783ce53d4e8ab6ce921d43ec8e9ee82acfde0cb40789a50a9c696e9711e407e0a2383b252fd25f5d2b5456b4e4674a579f1c1c323d3abc7f1c14356c7dabf22d85ed4a9b5e75d40a5c7fb2912f4ec1e8ee6da96f352fe41c41741f312ffcfb079de51437467a4133c274dd539399b40e42d0805143fa8c7fa9743fca370059167f6f3346fc302f5b6dcb060e80b53eacc6bff176c739a6536f6b1bb4168852c68b57b787c330126ad0fb0414433ce263e2e46b27680ad072ac36d653cb95b0f0f6386c9f9db8285c3e06c38de485cc74b4610fb99714029cde977d9951c91803e9a6d864cf42215a4917aa69ead9509ce0086531d32cdc8cea5e0008bcfa709d18d0de3df22f50e87f59b7a512f3579c46de310dfc8cf95a7f940bdf86b8ce744433fdf50b5a9ca6ac87a7a7d1c7a2533c1c09790506f2cf6f8ff395d2122db9021a746411abedf1b991a0bd6071ced9135cf4319a45c564721945fdad887099efdcd1fcae03f4df332e0c7fbcf04fc66a286589ceb75c6a8f4dd2c16f67caedbe476ed4c57797078454fa66bd532494b83c03e2e5eba44b7d1f51d3d4b93b0cfddb290f05a24038871c766a4ac48cd041dc66a731b4ffb851a7648927f368e92ad45a369a4c9093f27476fc6e878ca8a9b0a915d88a3f55c7e712927ff961fde415e0b99bea5241e80c8eebbec3892ee13a4ad4d77deede0244f45f7c2f50949fb6224209de50d33047fdd60cc3610aa562adfd77e11057fc592e83bc2fc698ed156c57bfce86e444203b158948a0fd266f3167e46a061d05f5640fcc6cb7210cc51e8568e589fc950aa20daf7ddb4d46f5779b20d0d46890761132e23757535b37a009f078a09ed3ff17214574518eb1d03feb0a531f2fb59a44c96c27b834ded68470296be1ba9d4b1468d8e3c5daab19c97d388342e3c91ec82f7f9b50373add853b242b9274c8e7d59b4e84826144cdce31cc8a2d42052bc2723d1cfd01425d7cbf0a72bdc64e07e9f50410c0d84e128b4cd71f4c8a318da81567f320151a82d7b78d4369fdb6cb33a9dfc74394fea9b6e1b32bb4f2ba5fbf6bddf8ce0c93cf18debefde8057e0fe2135240021c647b48bb197f3f205621bf34e0bb7477d903d01e0814774e1e3868f30bb090f67dbdb786baebf443ae31e517c3e42f18a1651efeea26131e763cc3190cc444f8d9675445dd52746bad7b80854f9c4a5836167ecc0a4c1aa65a915de8eb20ff6dee1b3005cc2cb5cb94fb12f64bc010cc382b068ac9dc3cb78e8eaad7bfbae4c8527c44083dcccfa2916fc54814b3d6f37033dcd7c8d56efbfc358af36d8c39eb725d09e74be2cd280ad85431017a50a8445306f6a473da9edd363b7111946dcd03e8cc79c030c6819aea4927f1975fb991882ae05421202024f1c9373ddd32d66f30c3933e5c209af4cddc4b485ce2474a7d49e3375867ef0c6ac721a643d578a44f33b0474c7ec0d734d7021fa5a0fded8b3c2cb03d451b4084e5ce0ef62330880e97234dcfcf4bb98902602aac8500bc367675018b840a0f4859c89e37ba7eba8583ddb60e08f2bf0e2cc60fe110d51c07036133c40cd98b8c9e877ed386b87d114449986497aaa3043cd8caa74277b0abaa6efe6b837cb873243c912a708d3e5de41295574d361a6fb39fd90664537ef8a13cc7ea3ff2f42c04c5b9593d6e34f5759f3b8a4d855aaa6372f7554a8ca58526e80ee5d405c265547c6a6de5e534e058aed9bc41f3a34477e093888b1630e6e3d71a79879c7563705d9ab7cbbe296c56efb9071aad4972f3519e096cee67107f47d32cfb3f484d5fcba19206d108ae66c6c62702ab3e0a3bbe70755b97d1ecae411710e84ad22912daf8a86dc1f3835c556b8d6fe83888846ba8b230a5f41ebb2684363220f2b84eb969878e764674b0b8ad64856af7c65513493397562a65d635cfa8290a037112650810d1e94591e69a7bbdd1f31528d866a9033e8e02a08ed36abddaf1cc74076e7e449fb08a90e247a9dfe7070dba8a929098a3ce1843f633466a2634b892d241af0f51ecc0f5effad44f7c7706b25a7e85636a1c67ea858414bb2e71cbb519e53703132206cb79f6ff3db39a90300fca172a283e5ac43f67d8a8bb9efaee9c541fa4086cdcf727ba0820485857118a963f6c2606cac4d292f1e4364d3389b03fb817974a323240bf986d723cb7fcdcd84bc7d4bfb37d3d94cb0818b569e92cb582e8d4a6deea11cbfcb3a93af11b9c59b71b3afe3f96d4e1550d2bcb082c89e8edef437a51c719d2b81d6ee77b5922c9da992afbed3de1ff76b7fca4e5f9e6afb6f175053e4fecfdb4696181cac8d040134b9d2248b9035cb9e2819711983d7797abf2d826a893c9ec78128a551a4f02cf1b9f5a6e1699a2f6abaa499f80709f42c0ec89deb8c828b35142f49fd0ac247e09fc5dc826b20ec840ebc858b8a265561cf9f616862f02f7cce26f22dc285646c1a09f7777179104d1c12c5f6624c3a7639c18c9ca58963f6db0c36697a542451e7a9334fdef9e2853c175d0ca93ee009d408a9dc9e0830b620f1adf11c3b1351b762d8dce5d9bc71c108cd154a879f277e8fb5fac3a6e7e538edf2545e09c2aa3737fab0223ee9ec65ca5d8c11b9e1a21c540d22fb2159f1a0158c6697616df55bddc37a516438b718261e700485e7a3a62e3b0d4e97b41f2b7e834acda632b8e9fda46397dbd75ff3761c9fdc2899499bdd9dd0f1df91b113e90c1765e27432b4e70270e380f6fbe4f8759e8aab00c7ec6137ef8378bd8f512e7217784f87b6692f1837e75825c0718bb8db0c60f82ad883aa51c70e68f4d37a2e5e8655ab792b46e1243cbd112a29573af7733eee36788f6e4d7b966a68a3874d0f6559b441d3bb11a8e1b4e1859ca11005c447e1d7aaa9f6fd6e0f177c1bd0d15d05312524edd18fc2e233698d35a0f8fe70d4fd43e3855cb10f0d9101e37f3d1317c9d7d78a57a15b736f759d8eddcf1ca94e00282db8631f8bf2d2a49535ba858429748df9b8dc592b9545fababe496bed4bb525752cd5e338c6e666f8a3961df74c29b8221d720a1bda05fdf01f92d32b3ed9ce8c3fa70f21ef30132cdc30bd2ec9c5aeb73bf712293c545744734f180b327a08a6b4749273f6d853429dceda4471533952ed47b28f78ccc91ffea3eb0dc56192355f64d36dd001e822cfbac8ce9e2bc98d9a56567d77064e60713a0e7d676b17be0d05cd181d0a9e101560d4d60153ac59acdc5cb8bb3550c27a39b33c399aa54b488272903f97a4e3a9842b30de82a18eadb3cd897d4bc92a23c576d780a83829378e15248c027d1eb76bac3f1f7f0413cb7a5492a9c44a3ee78d42293483983a7d1e90fbbe277411992c034b649c8d63054a02b17d97398a87fbeed698f0e890c479b2468ced6ab23a986ad6c41ac712b137afa93df37fa8080564cbf67bba235914d7a8f832fbacb7f3d5ffe2097f032e32585a76a9aae325a5cb121619344a6466696ecbd11d656d9397b4e2142f35580a22292f3a3d46494db1bbcbcc000000000000000000080b161d212e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 16 iteration(s)", + "msg": "6c00000000000000000000000000000000000000000000000000000000000000", + "sig": "3e41b01c01bf6603b6d0eef00cf02bf550767797e381cb6530affadd09100fc963e864c42e24059a35b54421dee314dd6ec4dff8c13e761061160673d1a94008b1131aaf1cff6cee99fdcc7c79991723d46cbbd3d9e891972c9d5f52f20bbb11c54e5ecbf557332c25c9b54179e6064eed210479dc6446707f5204aeaad9db2f8f21ed5f602965bd137982ab5132d9f24caeae6bbff8ce95a4ed47f63d7d258fe1760d8e8a7e4a12db37d3ad11131605d2be5eedc250feba39574bce461ba88a0ef59cc7ac109b76c83026afe2f2f3656f1ab477af4b49eefd56c9a00ce804427d78a5867ec497f07a5c488762c8883b839a584ef014d91e909724ecf77fefb2fa3c68b548deae9b3efccf3eebf62a5bd76f966f7489a71d85abed7c06bef1400db6f188aa57278a874cdd8613b64334c59416d1b64b121fd2df20bbaad74c8136219086fee3400f6ee37ad03fef16a9bb7579683ff421e046f9cd407b61e9a8aed130c60596de5be4ae7fa50667db07505af533bd199c12128c03a7d740c0ecca1aa7f33dcc60009cff2b6339bfa041fa82032eed9b2021037fcfb00c53c096f608fc19fcfe5fd0625c3bae39d1ed3067f3ac10344eba67441919cfff24c90bab23ba36e2c835ca1059d762108698cfcec610e711513060845c189c507e34a3208fff884c8825c4ab3befe08f36e378503612f926fcb99949d9a2cea0b2fe59542e69f1c8f99603d10c02df15ebc4193ef22cd45303d24ae70d93417e87959e209ae8ae6618d2007c281ea8fa5e73be5ac16aae20f4b037df559835b25a80502543709916bf1f20bcca93497472adf33b43cba42edfacb51d3294b476db006cdb534b0e0659a90a26a9ec68b3b335d461a613e2f03e94aef417983af6707a543ac99cccc341b540886892e209f333d4426f6dc83210d602d357ba70942506bf391c747a86202ffea712e7f0448105cb61310dd1fbf6332ba0d6e27e3ef22cfcaa5834df1b7f5e8eff50b4aa7a3889a0dde43d1b09246aeca8bab043044f7daf2f14a61b7fb71ac24c804c07619f31b94fba83a586a9be34706386683e5e3965ff4c242e524bd4745eecf30db2865db5f217c4f9dfe78584895d4214abb2b7084d7bf64363dda987987e0da8cfed427c20e83bda6550978d35e995368e6638c055a971e7b8460f77bf59021f3d3cc4edf36a44ff18b618d0b854c5c3cd1c8bf1006999c99def36fa878ce03bcb01bc48e1b5cbd975c7afb9d3029317e4df17031d97315027dfce18dfd16ab5012eb0a24876145c0e2262627582884b18619b384ace8fcaf35dbed5a95c38096aa006a94ff6b88fb7d800574feae49a7c9a8b29c36ead729fb194770e5202c5eec7071541090c0315493547da789b15f2fb28ade9354e0b0952c75541245dd0d82e0cd553911f2f844daa2af5e34dfd2f886559b69f038e41dff53cdefba8663cd4c3b270e41ad01cd9c69d84117729d51bf9c0b8249a48a00ee7662fe0f45e3f522b0e97547c6d382c205c47a2711d20cb8a6d18ed6a227c49a2fe261e9cd5427acb8f8b09477791cbb13c161892891aec718a2089181dda7c8f8bf7774ce109d8aa4bbdc6f6451ed2eed41561d7508fdc123fc7018b67585f5f7cee14645dadb2fb1b5d6de80cd5c5900372400164532f1186b02cccf8066dad549b3949714975cb92edf3f98df302ac01e5f7ee254ef0d76f3a5afabf805e81d95afcfd39044ae1fcbedadb35e737a7277dd31f9cb5c68f0306495b5981efaf676da2d28dfba12fd87625e14a6757e3ab313586c68dc8ba7ef1e90c521fd13e980fb973210ac36ff5c223cc258241ed45138b7b8044fb63e8899faa15dad544f77955c9dd39ee11545a10e613f09e01efecd048b9b61c9f89e10acf59c4fe10e17f276c0d72aeac60971673ae1b13ad5d6ec116dd92df3e0d6cd79c71893b812d1ebcb6d2e32d3044dd0815c4aef995486eb6a2262d5ade9f975ba176bb3be9ee4a0bb2b9b0dfcd679f3772db9c7e5219ea538f1bf4036edcc9e52623c9b209e092524d023dd200308217b7ad3df4aa312ee8d503fbdf5bdcc6578f32f4bd292f5e7f0751d6e18f5500ae5013291941f20355003731d764e973c17a7120daa0a790e5362dc13ba377aefdb1e2228ae1e2bce9bbb66661f016fd184973f1b156bb2739bf4aa6cae8b935273f8e821de354a85a21ac92b08b5b384e4889ce5adadec098a2efd960e407f6c1c5cb51776b49cba25454633b0d804dffa9adaa22a62475feca711f510dba1b927452948875c23fe50eb04af36960ea8f322992d48cc136b2cf44c4fbc45e84bfe347a1136e11efdc4ec4125ffc4feb8a7c2a832e29de612ec28ebb59c3d82d45323fc35b1a0136fb18aed7e761fcae68944f6bbd63b5c66621205c525d0c409d7472c263e8e1b556aab713924c44000e347f743ab9768c46cbb654d699bb0892f3461d5a8dab4aed8d1f0816fecd297a09d2ea3d578b74356709c5c019e0c6eb44cb9185b96e78193fe5f3c19437057ea356d8f9af450f5bd9c230fac20efb37341809228116dc5676f43cbb970fa1389dc8bcedcaa0722e8dd0aaf54eade137e8f18d9d7341867fc2799d05681aeead12903857ae7046fb335cc290e5756a2812ec9925ecea01919df31f0b99ba516b74a1f29b17ebf02de6b712a12786b8b280cca0c8c6673ab037db91612d38b48a1a4d3644b0b52a4c3ce262edb5691296d2d53071a14b7227e1892927089a19dffad11f1f1bd0c25e6553541d7483ce277a96bdecac31724784aa9d933d3dcdd3f42ca1929663b5e1102430d9ae33b60421b37381ebfc65c4eb23afdc533170018ff2a3009367e32ab9cf83d806dc6fa796de92476705eb434075206e0e8e1007f94dfec75021906fb1ba90cb1ab90c4e726a03f8b1eb40e0b6cb781b84d44535945a2caa50c0228f1f63509208add3951d6fdce948d316a7ac5422db6e065928bb32d495730ce8c3e78bb7b909035f90c01e4b60bcad19224441d2495636a38904c45b98e38ea5ffe4a4a5dff4ac585a037e129a5809a864fe763e21c3bc35f026bd61cc5bbbbd490465f66dfd719faae6e21836942f9bc56fd728dd5c835943e4289bc83e5eab913385aef4c526f42b9143c3a430b399cd469395c13bdf91f0b61e1352763321e439a15f464df8901e3eed66788d91fca51a81fdb8dab7a0d9b67202b98412f39015bd390496e0b22209353d812b8d4a458c2e5de71ec5c17c9b034d892855fa70f1199a942c3ee4835cc920603d2afe28f51259892a7c610774e4f77fc40739f6bc954dd7f30720054dc4a9df4f302ef6fc3d379c67772cf4a5a6aa6024a2e7b60fb430fdf2a1f1f44ef966f6a731886b8ca6de72dbd72b648af68fe543a7534fa42851c1b498ddac2b6f94a18009fa03b976e5592a818e87322ac344ad4e981b590bb57980fc903bdf0d84a23ebe4eeaa5a658736c7b91a7ea31462a7bef3cec35630cf5dd82344b34463eabe9c37468a8cddc9db577365cfe061bac2aadd6a339c35caa61944bbd76d1c5f605399b9c60897b41ede89d4392c9881d8ef54c5b623438633607c917e5a148f91f69330d2cfc3a07a385fa636b1b176fd2099a8532e517603f461e1291b65e4de6c534d6dfa3a50f9b0cb4358dec901823fd3fcca7a1296118b261f470cbd2e8438a6debfef71787cfe3d9fea869beaaefee5159c7e0e3d98e8a2f4dfda6a42e01504c04660ccf06c249736aab24968c3718037a9b693c3bb09f3b7848fc70c60df838d0080595acffaffbe8184771615896a42664c3aa7a25c7365d696a23644c625bb964b699ac048f78320e064140ded9c3779cb5453326b7ffb66c14193420c46a16537011d8c058e5689b584feab9d82c3387d5cc9035f58b7f9d9cef7fa4bd8fe4118e5c8aebcb1bbcc831ff5cd2430ab3b90393987d7906d03f92374eb3bee8c65ac043b038545da445861860b59f34a28112750eb6449c8daaca5a3a8dceffe8c573ed9278938d6bc47e8a0c0c645040e1610b39744391a9191bcc34e08a31b9abe1ae69ad9f141016fcd1b7d4d5b23bb709b1240b3b7a9a1ddb622ecf276ed63f1a92a184a7cb80adf9dadee15ca87972e530026be137cde18cb59b0232a12ff5cda724b21342108ceb83fa30dc50af8b214e638f0e88fb2e11664f6b14ed6421022661dfeaf0903f732622fcf19375daeee2ec601d3e3749c339ea85ea1f02938f972a0ae2804cca49aff7ffde527d084e0aeaa45fa91660063bbae4fa03c3ebf20d00a8b32f17c4c1a4672f66b8146fab2597620aa8bd9ad43b7bb238c851b3c37e8551f6de1a8fa41dc3082dd0d202b75524cb9685812c9756ca8bb42ed74175a9d6e70d904713b08206b1cce2c822bad661634536f9f51e753602cbe61fa783e3b6f0b84de0ca9b89b8b9ff8432745b45d4f38c660529e8626ad737c76810b97b89602fb9b9a8b8964bd8c79f5439cd1d12aebc7d240041ad00cd244ebf266a3b2a964d6371b3bf6d676f5fd97c1a514c3ac26c0442e891efa56fd67971ecd81b90da6ca20fb2a6e83aae5581d4db5bdd28efa1015066788a90d1dc1d1e253f5a5c64c6df0b0c3b588006cf3352606290cbdaebeeafed0000000000000000000000000000000000000000081116182123", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 17 iteration(s)", + "msg": "2400000000000000000000000000000000000000000000000000000000000000", + "sig": "45f7b98506b52cf17ac1ca661951dc3cae6637b2b532dc3dd3e49db1ee098bcfa20be1b6ef9a4b278589b8e7c4cad32a16c5600901d47f0fc06272628bba29815f237fd0839e079f0fe6739dd45fa3e5a93d7d1311536c1daaa2d14179eaed2a2933d17825f88e034c9be9cf5f5934ee9201e3496a65e4aa7a2fb18cc323cac3a1997cd9e953654fb504f1c9dbfefd35e09aeb6613ab4c06e571a782acff038df56a04e03ddac640909858e543e9ca2015ada794340f3b8187faad2c088e9a18fe7087f8bfdb3a9c234daedacdfbffae1dc67e04e429555d53b42790fa1735e788d930889ef6618b1e58ed5c327ea6723f2c11f1f466a9c145a11447131dee81550ffaccd5663a5a14e25f21abd330f71fd7405dfcfa93d8227b142cffe58d575507da2c19a631b307570e2783dd4d77e73ab2639c6a4364b3a2b1b7c92d93366f81e7042f2fff359b78630f6c3203b1c88ea9bd0fb7c732f3e5753139c8f9103480e77c57a6c8705ea245b47cc0e64e55ed2246d45e93cd638d0104fb43806b329469e2dc4fec7c9527b5090a47bdf0004ca0a6d4c747df14e8eadb88af3951cc2fed195af08657f35ea1eafd6bf53755b4a66153d4f8aa62f1feccf69f92ce4d5338c422e6743c23c51326be0296d80fded7d5b01c54abf10d530ad0f136313b3d19e55c5ab9c584b80e83f5dc99960392359a6fa718b4d1d6be467de44a8e6678d05d0a1261517d4edfea6bf90af2a80a11fd9bdde875fd340aac5880b201e0a935f58489eacd10f9c18597e51ac0604be6a5df0fa83267bbd28827668fe05bdd26fd7cf09a2c8b3f42df35412a68cb3b45679c76e012bcb7475522234d0c50845395c5cc896a336f1e216e8c62a5d65cac474c8e48f0af8d9f160f08208f196c4cc4c9d2dc4e592ef1407ed6da5471b0622d789300259ffb8a4ce75130343ee0215a3f501291efb8ea7a43b0492264157535d79e8edf106f9100573e486915e54219c989c40cfc6bf6f058f4a34f952a9f10fdfedff8bd173be598f2bcedff2ef2216386cd1eb93b9ce9e34179a29569da669b641297b3874f7477b8d08075710c9bd83cc722fd94402929eff0961de5297e803067cdffded15c42f5febd63f61c8f19b24adc1f599454b8d40b5689ffe5aa759517be2d31c45f5024f8fcdacb7fb0147b4a67f2c2e62bed6d99f2ea15f36ca051b29082e64f5272c7628f923738ded2bdc0b58b2f92cc11046055351bd65b3efb9779d3bd0b28a0e2ef1f2e807b5eae196c2bae7b07149012a8d52ffa80644c04a0ea7cf5226b008e7fc40b95fb0951c2bc9416d60d677ce96f86a655b89f504cd047eac6c6d1905358de689b518cf8651227146fdfc8306e574a38ebb39d5db0697c8320cab784e5c0e71f33adbcc5e2d38894e6006207dd97e545f83201bf1033a107c92e6fbb63f7fa9d6d80ab96b2baa89c89182198e1f93102cb9b10a21db60fba15820c1d82244dae2dbea9124bdc44f69931ee97904e15200c91bb525b3dd37837224c5c52659786e53701dfb0ab836e5ab3924beebaead548b67119d63b52ea88def1f28a0492aa047c346e5b37240d52174f609d82a46be480145f6644647d814608d2aa2077e97227bf7265c1e8e41e263abaf76eb4b705b334d7135794e4e633be36c0eadd86c9978cb5dcd34d85f959fca840a837613f35da365530b4a075bbb0de3d5251138390db3e71da1377527fa3cd5b15fca0147f9646b0813a64f5090b5bba0c68e6fc3e328215877e7f1405346624f8ede7eefa90778982fff9ecf84330bff13e6ae837d891535be7e9d52f4c828357aaafb129f7f1472fd0ae17aa73ea80894496d805a8a393e1626b1bbbb8906f3bc1bff8beac84d1b678fc2fe0218c5983787e7f98db793731fe8b5af27c90691d9ce029db1c35fb9c27659bb09e01b22be955c64fa62cb3cea9d396c47a25e3ea80aed271ad3eba5e48a743538a86a9471d82003bc8708ebfc3f2b8433a3ef418da91281e24525266b72b3c975a030dd41d7a3f76b46eb916c951c27c6db83f56338e12f4b8d517f1f39e18a954ffb01a34adfbf8b14ac5166c7ece5d8ca2e236e35a339360366aeb62cf01242ab11d18a95665b7b3c29ed818e65e14cfd1443e8ad67e32343c90272ba9a262653725d1338694c77f12dd1234f735d0fc59b55de9733d6cffec59cc6c4b1027a7633eff36fd547b549f2d54577b4d3e883064e1f96eed8003c44eee8ade5a26d59d657355d17ebef8264fd07f006eedb3a0182bd6cfa708803d5a521a669fbe2ec256dc69e704c31174fae1f5ef3688a6f6a5568b872d7a61251640871327350d6e00818538f60c7627ae84ef6773a0024790a93ba11be699317711ca3710aa8c7f990c1533277d38d117e0a8ce92490758dba144de16a4fbc97c2ed2fd466361cfb07a63fea544a54a1f4b04780171672b8f9987214055d65309f1a41c78befe703501c41520c50afa576371c91d1ea726d4542172d97f38355b7d7cfdde25010468a63ab2cee6fbae270a82f99384d46322e84c883996ccaea15eec01f07f9728cac753cda40ac6954b52c751e375482776788155edce5a23507c4628ecbf715262209ecbd7ba91948ec891571c214798e96ede019b5c726c8447801bbf76d565e7201d95cfd47064caffa3ee0757bddb9ffac0b42f4a804f68591cc7f2e0fdab131a8ffe5a7c776848927bad752f01dcfff7241003e501623ebebf2ba036100f3dc5e28a23d18d276476ea014494c693d9f4484267f1ceecd7e1fd6c75e74b416c795b516cf9f99a26d669bbbc9cb2bff8de6371bd4ea97b35fb8bc684c464d185e3bf40fd26a8323d507c7b31d203aae661add13c6531f7b56635bd6509979de917268bc0b4489f5cfe2bc2d117d5f27c1cb0de2a85c024a555a815eed435b28fdb97debb7fb6631e72ca1fbf2de560a54496b7ea79f72e41edb21eb28e7c910f74c85122240175309be4c419c2a6886803313d30ef93f587b7fb0232c91ae6d12b54406b495362276afa922af02ac6357b04f817b56cefa7a326376b82aa10e35a113c61666e9b9c9206313318b7e1097166568239eb3455478008e42542608923174fcfca8151e0894decc12fcf32ec9a2c12b48dda7a6896db728ae779d856bf2efbc34d7423eb48c87e00f4b4727420cbf4555fe5a46c63505fba5abc590415dbdb842abd728638844934609980c95985e3f127178f0fc463f4180fa74b5a5cdba1039db813e68fc1de1334857b55dc6a6aab0c4c665a9046a4191eaad90bd9b2b112a46e2a4c253d28c175823334d49ba9e07e85634c24dfedb348e592e4c994a01a5fad53964b7af28f431a338af16f28bb22c645d65d6f40150e7f10897be7b8496601551cd5c813057f2e38a5d59f310b5bc1b52216c467d1916df0da345b3e2f0aee80f7079648876cd2cf3127ef3f18acc55f97e026e3760ef91531fdf81e71c0af14e24bd2fc1bd280f1cbf6e82495e31daa5dc2eb9c0d6568e9b980da14c4efd8e80e853bebb34c259762d2e5ffb918bc2f85100f8d60b0e2353f0fc1f7ed6b3ccda17ff778db565d2942898579851409b31c2ebb860397780174ddac7fbc5e558ae04d6d60c3098adec601882ea9902b33fc43a92e16db396e345a995e4487ab2d07354dc65c04dc873cf13e1f189cb19c84627b892ef586a38dd649c02f3f4efa44943387c493b5edf476f8e68444c804b2543d780b4cef1b71e80251b1cd64958ceb48cef6956ca74a590b6623c7181acdefb343ff65ec776ad12594890ba5b77d1d2d37d0a859aa3a0037dd70e1c0af0b686559bc2c619ab8ca3f649c38e6d0f2b5a6458743293ad38ad26541c843bb00c8005407bc74446206af67173f53043d9c95c2696cac7359023fcdd655dcb2d8afe068df092c8bcc3cf18e438c12848ef078383f6126a5f2f9b4620d193d6c8b8b9f1265c827c4a1928e3e523b2e653efa378800943cd3e1cc639ac3821f7fb44f5f01290a144f11d3e26244163e1cf60aa627d7318dc3f42fa9bbc0292d6fa61cf3e04dab98a3e2ed3a1cecbf5f2e08aaac5650343934958f15a2b915f0007c7a251623c93826f2e1a1c5c8aa0879af6dfebca672c616917ed96ba3c4757ef0714fd8b88e0f21af580e094d9381a5a8fe18fd34156627dea4cc154bbd9f2d9eacd1e40747222015fc93671d745488c8848c259c7a2582c0165a1afdbf46c9a75590cb825074fbd410410a94568c444b2b964d331efbaf82771524a6cc0bf84ac2ebd1f1dd0ed8033178e79f24efeb43a0018351b13759035120dae2972f6e314c671e3b918ed9ed89234dc27c17ec9abdd3b2fc64d8e562ebdb7c90902a0931d6480386dd633185e15459ca4471177281d636d6280433d260a51522b251579833e53ee757c9fa2f87ea1fd86af051381d6f20ad947f5981300bc93cf5c44defda770975bc1438b053537665535a9c764f7fb7f03038305f4eca46ecc6faa60247024d12eda7bcc626d924894e2c538dacdebf4fd2b64ee428f8fe30ff104d21b8e1f3897bb86c567a31f153d4e8ff3be2d9a539baad2335762a010b35bdfa1a1b5df981abc8e612314445dddfeff0fe49b0cddc000000000000000000000000000000000000000000000000000000000005090d16181a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 18 iteration(s)", + "msg": "f900000000000000000000000000000000000000000000000000000000000000", + "sig": "6593932b139ae1104d35507504133096297012e45c9865f57a7bd6fe87a6e4a10394f43226ec77841ad10ece333a381c37c91bbd82a63bf87fc8091ed29a4599042715ade54f5c94a6a0e1222816e112b4abf893f0261fa5bb5d774c6c8d35bc1c447e17d3dbc25798803518cf6f6bdccc7e2e77d77cb8e6ef24564a36b5054d91836c7ff1958b6d850d25f762f78b0b55c2850131437ad677b28b8d11d91b16508fb91f250c1c59adc4a2415ca6d20acf50c90808b5a4e88c043caa68a9e6a2ded7dd4f92844c2440589540fdf7e48349ba43bc26c23da748ac9d75f0b188688541de951a9ca4fb918572c96f7d85a040655d459eb3130c03bdd865583a2bcb382819c0b59f80e6369dbbc0f5d5b40010c2490c87acb9b50ec1a998be39694ef591a3653e9364c52137881ce175da1a97326b33a969d035cea68a5ae85e5febfe82cb5ac731f88a0c895896680a9ae8b4e7b3eae3f7a7d4a10f4063374f317a1ba377a01a3433e1242b2f00c0584a094d157c5be1a864b84712889c016e38fe757d02c30d63dc4c5d087f8c78032865ebc87de03747d03bd6bc32eb9880e8b640ab46e630815d11b3e4d88edfa6a3c006b568cc9648d4df218ab91bf1168852d4102f4503061f96bd401491aa76ae8314ef47d7941a767fdfabff79349d089aa5198248cfb2524ca6489ad58fad9ca4fa6d7d1ddce1fa88c3dadb434cd3a1f49168460b36d9987eee09ef17a1a789a457b98098c85311deb3e7f4d7c2a84c1c78c2db3e9823a5b47b9e313458d8023357aec8cb45fd052da9404c731062508ba31db91cb670f474319948538dfb7b811368e4325b24ac77cfe1f852bbb33574f175738f6924aa937aecc41397f8e34d3c75f44d6e81714a98a552a766089b8b2059bfef2f890edc17f9d98df040b3ad9168c285be95ee126ffd3d75658571f75035a0e9fbbbe66ad6a85a80077d21cd19bf9490f3fabd69991d6ba2589e1b9a3b8e64f0b879f3d80119e6715b827dea6bf40c09c02490e60b37e13d09d963a841fa58a4feeed6982295eb6be66def030230079a61494fd7295143c3a99c9fa722e1081853153110206cc59ed26a77f9125eaa98944d26708609594ddfa78c7760a8e9bed82e85cd991b2bc5ef7e2216e0bca4d16017749a1579b54dedcb165152d9324ee63fb7012b2798da17d3700c6d8280c9d7bcbf6ea8467542e92c8a0868ee9d5fd08bd397641b20d7ba15dfd079bae86972020c1ea54a0e641665b9f20dfd7342efeaf45e2c0682fcbc75569db5d8fefe4e1cad4e8865e86ebfa52ebb4c3bb1f9bdeaf2f179980424a62eb40a07196a78069ea6b33f52dd50bc42245517346a846a63bf08bd27d341ebf829807595f12ee0b097b917529cc0c4dfa7715238eae6cf336fea3004416f18546262ba801c8bc255d325524b7259bb747c3f8ba51aad3fd54d98c882c3c4924c3d01c2846690608575ff94e6778200ea316dc7e802f889a255e642c94e43cae57c68ab4f5083d15921e4abdcee8d7c4e9b60e43cd3a234780c0a6173b6b132d2482c7750e5aea328397f6c87898cd2254437a37f3b0e65b3f448f541f8c455476aecb3e5d7494188ac19cbb5f2ec45e246e66202dab148f2d5c0d388ec1dfa17495c9b3d255da2f48211b1ae87b2beac31735fb79561a1986e80651ef0f32bc9181fc911ea32855b5c0cc3a4fd807c5fbae608d683e81b33544a42bf1f89861b4afa5585b25e57e651e5402fee091d6bcb0444ece3e2d907031716c4488b6391c90446da0991eef10d982578b6999beae142cd85aca38e1a6ff07553f3254de236620bdcd17e24e9fdbd1fd7d672799211cfcf4e24184cbdcd3cda0d8d03f3dd76b0e03606c63f8fcfeae5ecfccf4dee0d5158567e86e3a4ce343ddc3c4c3c1449f142774547f25a9538eb80191b239e510ab0d5dda4d1d2e8af018ce177c6877771a7eb5dba26429f7d9772af8baf8220d35b28545d0127b14b524aa5afedaafdd3998e6c3bbedb0b1ac72ad30073560ee23e85432659a3ad60fb95a731b98884cbe826d3205696424886341986e933b97d67ae5c0886979be4c32fdb94aea47b9a3efb2d062806ed25af606e5072bb4352f3903711fa94a97a86c2dc2d32e6ff8dd221fe07e539f22da92a158e8a8df936e38d02d53d1b0fd80b63b6ef40bf826618f962a1d64ff361e546b73d2c7d47a5c0697af49041dac576de3f6918246877cf50504b641a457fa8368caf5eac325e468b07ed722c8833c66a2fc42b1e3f5eb588190deeed2c10524f1b05c6efc9d72a6a1f4833eb58db9a5e11b4704d879d25c998236fb4ce4b2720716c9e66cb339cc2293bacb546260385e2d860d727d952b4bf07618a04b30bead38bc41d2fb7fbd49931e099806a6d255d2cdb7fe62204a0efa2a883c4424bbf875af04d1f7cb2d9cba74946b0022f614c6a162b643a212523e7e7c7165ef5d6400f1664cb37fa555398f988057fd8aa3918ef644fcbed19549db991d5ff2c99cb9f6be56f24aad7d7ee304ed38240a609df19a2b82571b33d9552b59ea540ba909ad64e3f8342e9c2855a3577eb910fb47b7feed8a23458434ee6e0b0cb484b11c63175685a0ce70e4ff7d03c47b7b9d1e18a73588e8546739e6e9c3aa0341f4c121e1c662acd77a614c4d87e84de703710455bbe937b30870d611ab1ec256a98fd884568b8e945b0d88400d87fba756c17311e3210235b3942ca5061fe91b072523720a4d32d174c88cbc65868b5d7d6113b948bed240d39d160dfc6daf8a43a1f6adfde7e71e0d593c82033e9f6b7a4baa0166d8f28c46114c57e364d70f0f122a7b463828cce26c1982f03cac961b42b805820b9af9c8bb2240eecf9daa990d61c42f01ed37ca723d092fecb767fc0ddf905ede494d7b2dabbc593360f569df195ceb1ce3741c08b60f5f5097830535c3049bbdcae2098b058ac9a50e4ce7fcd694d45b20e1e2fd86808d474480e131b17b1aa8ac351fe249708aecffa6a0c7bab3115ebbf8c43bc5382a2a8e2011bf859ad034d14d8d24d56475424c1b50bf85e534dc8b4745e79d6bf098fcdc86a5025284097b0ad564f6ada364837af4df60a30620dba25a3c5d739edcdd490fdf4b7ae7c67be90f6356d9b94963495d9c5c8ca7154b4b2ddbe1ef1c57d8e5e879a064c7c76be3ab86312657c3a971ee1f87735df1a2849018a7d1e4867c9ad9019729c3f43eace4f2916384acb25f5e340a534d6782aa7f348e37fb7e9895b9c4cbe732b4e7db46341f93cc8193407c0b699ebcd9b7e3f80b5612309b5d959a701d92f4fac5b251031db6f39d6339e75368fedeeb3dcb022b6addd77071af1f40504c875d19a5add799a7f0e5079fb39a7d5eb991b5bfc33f517c090b9bef48db0ae16d160f5a81143fdc0a793cc3927ad0ffe7df402169997c4386a6c01853a6c6d21f0607b209b0cddceba91af3757926195750de29ae82172840205bdc57051d7b273ce469fce06bad5f758febdaa498a3399d4e3d807bf62fd57819fee31a18fbf24e501b8990fc25253d6143cee42fcfc898dfe8a414ffca27356102762cbbbccc70158b318e5354801deb17bd202ac11627d6effddb25c172fe13a6a5756ad80b450839086a46dbdbe3570628747d733f4836f6d57c382a96c7aaa9d83c3a4d5b5ac4421599b6311219b733fd9601195dda1abe2fab8bffd26147dc555c8c8fa11e3ae36c3afe9e1cc98670d33804c0a60b2f68f98282c4b705dd9ad3b9270395470c90bc75a1483b946822a1b055852effd2aa8aa93a4d633dfb9022722982de780dad23dd5f2021f3c4c92e048b2e6aac3c6666abc2970a2684bb4d749b3b05539f90a9afab6b6cf5b05188ffdf36941974d5b622bbb85aa7ba3198104cc1111a914ae36291552f40825c0812abce4fc32a9d4e29d40a5320c29eb49905d907343646a638709ff078de5afa9b106359dda4d33da38170a5d2c17d57ed1dee1edaf1cbb019befcd4cfdab6e30ccc146fba1ed86968d7224630118137148c3d4add5e9797ac90bbfdbe1fb9b4f472616083fd8c1d72042af00c1960b4e9e44a820a50ae932975a0d4d64c0c26d61038ccc5132b40dad8ff9400758dac4f41cf7056069430104bb7de19a478b61340002562fe26cd831f6a7e662605d55dc6297b5c2cd248f1ddb5a272dd5851aefc0bc2e79c59a901e18fa9df2e3312a15852fa8deb733529884c7e0e6f4a247e51a2dee34f53323b98b2cf38966ec33c9b8d3697d056a9c505dfdd8cfd1e54733a85e184e46e66d57f726defbaf14bda8b35a1cf9b2a570e61a5ab1128d7b1ad791d0a6e0b79d51b5845a909513277ecb51774a76f02909851f57f4b7ab2ad8d3b3dddd74494a003f1afac6072d9abdc45238e458d639fc827270c37d15b605f2b91ab9f1a8065f5f65c0b4bec40a26f2fcab9dbb4c6c6176c4300e3425c0b4638b8dc0a98c341ffe5fc8e0e8e017f58647285633d0370b919449e1cb03e9e646371f17f85b7f837b9b641a38a3302036285e37997f144752059fe15cd62ca0d503062dcac9763514fd77751514e5a8593130f925012a63711a366dab06374a5e82e6ff0418434f646784c5dc063f558906426f99c9cdd1fafb00000000000000000000000000000000000004080f181c25", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 19 iteration(s)", + "msg": "a401000000000000000000000000000000000000000000000000000000000000", + "sig": "6dc1fa2984d614d5c52207db2528c102886bed81844437049d558dfffbb799f71a9dc992107666cc595a1981b75e49b36fa4a2b5d44a5d7e82a002c5b0fb8f8c811d82d19a84411ccdacdf86912db7dc9d0a8df1784a155c2ef1870d706583e16306106a0d0095aba7483e484c22c246077a743009b664f014d86d6358ef4f415e20d9a0b8ac2911756c72a1ab41c4d333f7376cd23405cfb5509e1885337b2e1f391b9e23517a0869f090db5e89a1f84075bf77b46115052a3cf25b3893a112a454a1b6c23836a84618030ea12f8bdbc2fd7cb2b789925b161f71c2e5300e08b9dfbfeb6e700cb09b9b101d64a4fe8ed2f1e66f7cafcd4985002f827098bab1722411845ba01bd994fe4b3b774096e353891a72414bd37af0df4f63580f5d3e72ff1c916c13bfa6828a44d281fed7ded0916e84f80c2bb41f818dcaef8eced887d7de680cd48d0e499913348d74f6a1e3fa81a10a079901a3db3e7fc6b55899714396204e4b442e156bf34915df34365f771b7c5617c7c521f88c43b03b738c069d96afb5a94b96071a43da76cafa8ba2d8f24f53fcdb7008ed7c73c5de081f9b7d2df75ba160009d05f1edd00aa44b6edac9e4f0f6413c743d925a70b87fbf551af7a3bc46b47814e02d7043e9b92bdaebf9dcd35c0e5a0c49bb53b6309456624e8484285d8e434d7fbc252191f69ca8c44f8eebce2d18159ed202a24b77e6ba9f907b14cd9308da274919f1c93b2ab6a6cd383b9b954d6fd1248aa35fca4eeae628d97d377d703a7bbe976956f5b46c2b884c6261cfb844bc3cb3f3219131e78aa2cfccb4276ab1cbcd42eb3b5a5cac311c340dd35198a42d13742290b0b23c5c8a7619acf12bb41e6ae570ebcc99deb82295882ff7cbef6fcbacd5cb0a0680d654be9b18325e8a11a33daf8ddb1118db078537be93a54c529673c366f89e2d497ec297346337fcf10b2288095f572dd62c1ccc4a830b2edbc6e9ed8905d688ff4333baacf412b8a95ff2de36b37a7d0d230eabebb0d128a1c1d9df3567f27a1beb31b822c4e8b535bb38539b9c93a8611a785d35f8afde56c09dfca722cf0364d99b9d0ca55dbc8f9d21cb69ae8b49791e4e1fa76bd6dc9c28dfaacf12add31cb150757070a39225510372b773459f8c86ccbcedd27015cf6daaa73f6698feb3bdc118b03211b261bd8574b116de124634626386f1a91092270d15c16a5a143bd0a0fbf26cbfd34718173fa19e466c9894d3276bf0c887b09b77a584fe80e0134bccf5c3bba566686c79dce66e554bd9229c74d4c02831f86142932a1dd449fb920ef675af899db8b99e758aeb3b32b0474316db13c9ab2665e651242bdd2b696c6a2f65304ec643808308934f727e3bd4d1e04fa5f52a452dbe966f7eab1ddff16950f211034ef755e1fbfc924f44f1e5b91c38ddc9cf755204c4f5de26b59a253b6c940fecf5db125d5d604a10e4384a0cdcceaa0ea4d4e580753b4acaef25a77b7455dcadf0f5bc10f948027062cbeb5ee2094e01374bad834af4805b98cf21f2b99fecb7b09827fcc295867d083b7696e42c2ffacc5ffb5d26088c468b1da4c967c97bd91bfcc5792cf18b66e5def3ee01e7e251c0796179ee3a38cbcdb656a3c6e4e1a970259b2d2e2dfc25e0b7d7229f5b144c24129d1ebc2e9e64875b298f9c36dcebc1d43e451105b16d20839f7e6fa47ed7076b603b5e17e78f979d01d5245c084e500deb96e6ade4d3fa2837cb400c02943dca4ec02b1367232f5ee56e70d7302195c2b6f9c0a213895030857bf8353c0a0d0275d0216c47f6b0cfb54471c6eb897689a64a5fc2d5b51f6be93b7ee0cf31baff1a5143a274779299a6b903f44f8018c5729cd8617919a13daac169683258a8340014d54f1e9cd82134eaab14c7719eedd6089da30a04e1d873b683316bd64698c81a6ca28ccdfbfcd69edabdc03da3bc84d51d770c806cb53597e8db6cfe2ece1df088f1aa6ba75319ebb27f9208674b19783da8d4d94653ea7a0ad7eeb0ade84db5ac471db947ed77c8b11de5ed23282e75360cb3969cb13597d66d041c3efd7acec993fe14fc6fe536dc5c2a6d0f0a787df072c2559f824ec077059b218541c995a030769896bd619b0e66240ef244c8b3aaf0e3f79abccc4a69387d2cfa3131b45ad4c4817d478cb7cb7264aa8dd46e5ef2d3712e3dfe91e615a321433daee0bbf20afc7051d3a5404dc66f2a02bb8fecdd280718712010115be7131d09737677293c635bca6ad085a8f8c159d772bd52c80dcc62e27db799b81d84e337424a8d8905d53adc68c8a222b6970eb8078d796b64b172965f55ba5c90c0fcb006865d7b1f0745e1458b1ab75c54380b3747da09ee3543a013e0b807158c9afbffecfa5a3acfeb185f3334d3ee923edabff723157c671330ecc64633a90347ddd77be425713b6c0f9b41a9789136c1ab74248afce4f0f569fc181cfc34aacaf3f1a4f7e8e84091a3a0849d87f3b8a7c6ad4afb7d357eaa0a2c915beeee2f1c6860ef3fc5f4cf0bf43c1d596b2c84a89b87d36c2dbd143dcbefe0bee5dfa04b7111895c8e2d9803d57270b347374c7a6e83957145d00e801db52df1fc37bd8e8eafe7a6c5b75a8c8fe32b6b2cf0e33aa6e7c4b559d2687cfd3e89cb9316ba05facd121f0921726adf89cc2094da9fe3f296305d700479a6ee3da724a39ba0f5990691436abb03e6813c4071913cbf3e70c6549589aeae288212d2257077c434f306c611b932c754d022bb3d40d91fe0479a9a250eb4689e118def6cfa516312c4ff022d1619c5aaa535e996af16016e670fc5931fdddd9e5d6105c385239a30e61c8d9dbe1185fa13b375f214965cca489d186a84e5eef189243212eeb570109c544fc8aeb4fd13227055878a15a723b70a27c8c902bd8f1c3f9d8865fb2dcc554f2d9c0e9231e691b1712ef052a9953daa36823151c86c2e1c43def615f4eacb610ff684957f08e58f9b07c633e0c71ce838bb8c742e0ecb301af85b4000b61e3b2f824e6fb283d310c69623c3b78e34e85f2c5a319b3e30649bdf982183702a4b3adef8844d960ca80ee90ac92237cfd5a67475241f0d8fd558df07dfb952fc54219fee76946c2d3cc498dc85b0b04b1d6b121d6210d5c97e1f75bfc1eeb7ca62feedb10f4c0384c771b331b230e951fb15ee5c5d6a2adff8a508cef25c6f7ba717a116b2fa8cd18e75fa5c711e036cd1c609dd5fb6f26c9f135bc214c13691d27c9624f711e6581a36270aa27ab4a2afcf84383170069a8c8eb7d9c8e86d328cb5eb95c81f3b5fd0738ab4f44fb0c71f543e66febcd8f4157ad4235feeec30fd3e4cf9e0967f34015bf5bb12a15fc46ef5d0af50e3ccf810ac4310fce50ea1fda53d52dd14fe8795645032c4976591123b74e263797cbc7e41af7be9b56a2195b4813a1d3438d83e3b4da2421746cd97f92176ed9eeb1ea29cb5a0b1629819bd7e7d40c963e629960607aaf96c2a3e93a9f52a37eab47b8c7611b61d5a1b9fe3d8cddb7acdc04d000286b7d8e09e8ae4e58fef9bf71ff76600bfd9c0a7f40a69d58c76459436959d916e88ad288fb4e82a3586b79fcd67f66b2711dfc0d9d140cc22c0a40f6fe46d09c12caaf56a45a7065663d879e8e6f12aa05e9265b16ce1aa2513aece0ecd83d15133f69a7c91fe0fd44eac29b22658d3eb16bbafd2e11647f0e1f7ce67168f5d3e2b45843defd6a4fd8ba901fb4950edd98a4e41b1bdeb1581c44694804ea07544c2220aef5c3f3d58f7d053815d280a202629dc6a45a931c7d86bc8256575d58cfb1bbadc473455fc22a7fd94b229cdb8ff4f8510c126887593f62040ded2894fb7f53665adb2467951efad062d30adad1c9c5daefaaa5748c614991887cb87b421970b6c061e55bcb2e2ad0dfa3c17e869b43ac272b04fcdf4fe29baedf3bb3ab6ad1a22bac0188ee3712d3db309e57efe5fc9b60c3b4fd2bdf287bbe16e88b3822f45868872a99b78265fc5f2c123e7520411ebb2c65652d01a0e2fea8e7cee2a7f667733e208f20a0ef5c845621cf4c2393f360f0f7a0b32d6b1621cbb8366c89ef90cf20919a6c9f5dff89803a50cd281720bfe75c7cd6e25d12938f43596e5ac23c948bf73b05e4e48b0135d1f3c59e93c140cda00463868dfecc077edad546cb99a54348104dd60886874cd680a38e74f515f3e1612a42bbaae442a80bb3af176a73b24d929825955bf33a1541f62cf4a00b7adfb0c7f20442213bf4a531718c245f8885b306fedbbe723cc33a1dc27c52052c4755ce2a302a412955173941c109f52901528739c58dfae6047d04845294d8ead6f94f06e33e96ed95222b1eca8068570aeae6afb5ee3d5d93302b114a815afa5e5ed4202a9bb3ef0ef373385692645bf4aa5b0192cb2834488ac105aefa23b4fa03fec0319b0565916791b50ac339942cd34e875354c27757f4a4aca0c4f0f2fdbb06869f4ce5e1c8cef81791f2280b42bc2d6884050d431bda7a93d2a0e77e72485bef53c70965e7f5cc599d48b7e00e5bf1f5c9f4ede54e56bbdd4ef28d7ec127c0e9439b09ca7f568e18b234943ad6991d71911e2070942517089d2eaff1f4e6e7dbec1ca498f99b7d4e0edfd191b40555babf8075eb5f2fbfd0000000000000000000000000000000000000910181f2425", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 20 iteration(s)", + "msg": "1305000000000000000000000000000000000000000000000000000000000000", + "sig": "0e0e0793a9f00d1014ac745f73ee18458e19dc0c9a82d62c4f7c5f08cb302f270648d108b2a87a51c5b83e6aa54f4b40531f01bdf4f59315cfb96fe20a21bffe3ccb5aa55050ab5ae428308e9f1a95ce546b09b68d9a3036a04c71ff617dc48b4a3a732b4b688389a8249a7ff14a35d52b6c96cb0a6d049054de0f7ad08669b82f94745cb89798d86fdc0c2375303f5849c8992400889cf61ecbf63bb5343664f6f63854d3518f5a63fa55098b33943fa5642745b0a907c8af07685a18d9af65b121e90e7fd0c0cf62ed87b09eba0f06559ef813649a08a03c0819da5479dee4d170c17c11a119b6d9055151bfda6ec850b70939167b4d4d5bedf4e5aa19c380b3f87b45ca8b71dd9007450213ff67338a2631b83ef73499c4cbcb8ac6210f836e73605eebb09bb911f63f8dac03570c245b1826ea4ffed10e7d6934fe1d2e5358d52f18329259c05b1e570528e7bd160435a826e39781c8d3ce0b933d3ae34c33c09c6a4e535e3f0678c27e4da154ebb05039d3775a3bf948f579e8920b12b2a50430694fbdecb7ae7563631776e7b5aa3d889b3071964417eabd2bbc3fa551e28fd49abed8fe37326770db6168813903a4b1f4a149cdfaf2e49d88925a6ccecb85aeecaeccbeb94aea175fdc4eff8eb6cf0ac7cfa2897c74bf6c1bc5daa283398b86416be811bd6dde7558bdbc5853752f2651369d3b142394fdbafc1f2f8d1139df065fa16df69bdc9acd8497a89f037cc6cb6eae90292c7bc8f1ef5d89a07ad877334c53b80419f864031f78be57a82bd89d523126e9161a1a5d126e52cdc94831d68cb1907545c0c619bfa1b7246aa50355591217018b7227447a7d17b28324fa6c7ffa1f5a119bde3eebd11dbed6bd9d8ad95b4e1d7b4d673fd35cdc96631e1a86dabd6bb7b66ad5985bca8888d5e8e145a5b5f48953bead5702180a99b9402a5658a7e7929344fcbfb574beea901367a3dd8ea90a75b54b08c391d5ea6373ea8bd10cfc563733c4f533f30ba31d3c0e49e4a5e5c91d45d4d638712aa80892a2a0c5922edcfee867e2fbb7f18aa032c774e9cdbfa59b1c27baa14e932f59631afa69caba7855bd3746a12888d5a1e64271242dacb972cc82bdcc64ec4a2c146306f39115d5c824b71c93b5833020985ca099a4e937aa527bda8e69324005462f5f8431d5bb11bca9e4c59e5b14096cea9e40a540546efa18e1364c4f1ee855cc8cc564dce2ab8dd683bd9804b11d02a1f510ac98c120b6ba64cce16b203e53ea3d1bc69bec0d06a17b30639cd9b24fd1598e92890e88f7dd1397445db54ad8df5e136ee60f22ac090f2bd905765e810f54711f01c63564ef90cb01108b2c2bf1a6fb5fb8078d609117e111604a1d927fd24c18354ddc006f286975be3bf1ce5593715a8cc873c820f778e9a428e08fa3db1a5f52fab22ef5d16056092a6b1da23e3c64f205b3490f0460e9aebf80a4fe9acd31e5747431065f575637c8c4cbc5dadc2753b90e69722182a344d3b154bf35da62c1fd0e98921559f7d6010fcea31a79d36bd763cee1b2855dd05b44b36c4301cf6070408f02689bc75ffe264f55cbe06886019797b3ce3206654ad4995628eeec2db47a2bcd5feceb2f3cd3246bf162cfeaaec8abbd63b2e6cc441b908a3301c860a3a15c1b9253cdff625fcb6de85ab78bd802dc5e073a0cdcab0512a076427d7fae7b663d9b81bff8f0192fa7db81dc454f32340e200ba59bae4eab701662ca6453c233be851cde64c0a966ffc6012681dbc407c02073b9890781c8f484c295720eadf934c73e2b412b484ce4bd599a7b8718088c55433ff1a78072188e289ade5861bdcda6d10dc5c40f1c189ad96eb188bb46741e5ab956214046c2db868c8e019ef5a37d90b92fce70ae8e4a5339f612c0b8eb43c61c0c63f3a59edbe6752d05ecdc178a8a90059d6fa7e0da0bbb7984b7cc1ab8045095558ee505b3ddc1b3db2a78494436aa9334f6b3b3896d33e556e8e2b9bf728b5c53c204a964a697da252a73b8c120b363923aef38f993a3db4c24c9a4b1f10f444be9f87677df5ff2c26e419bf9c2f8e53ea2e6f1bbbdf2b6c5090dba385a5cf5652f9929295eaafcaf282826305ec5766fbb03ce153b32d49aa7a66752a772d2091568f1b6afec5e53dc2d5f73eda96834404bfe58fa5aa692f266d0383ddfe12da56a61f93933b6794af38ee9e31c3721c1bd52a6690bfa68948ba8d6577ae6acb3d5adef9091fbb7d4007aa8b96a7d17cd58987525296682fc777111ea979c9f3b893fef381c03319d7c6b9d4d523a0e5b98953830e46f1bafc94aa6c4c323d2a8a76ed1364caab808dd7eec175eb230de35e8d6f4ecd0dcf32ac6b1be9d7d6ac740f458ae7530a64baee19357ce5a3f106841d99935d1606d4ca7edd2d5da69594770eb86827ca9180713ec4df96de4857323333dcc4c3497e089ba6388a39450d251f39a1d2d6c1d6befebb7111189bea14c0ebb75b1c64eadc76d8713ab2290a7402e86c16ec2eca769febb9d8cdffa530eeb75854b08c52f69c1bff47c2f775353484527f2e3f37171d3fb44553cd6dd4d79e81574d01a6d4924d7b2dda910f438eb4c7ec938e5211ff4200305fc3e9659f8d52bcd49d5ef6ff5125d1f8096107ee01633e32f159ef17e1343af03076061b13bb3b25d4422f21b616393cd2d36ddcf96598c1d3f6b4e29258c94ffeb07410d1294c754f25131f68b4018ea155a1c800df5913cbb5c7520c7e33c3adb8e21fbc692b9d4ae00ce6e06df53cd3c13b1d12dff0607c423d41bdd53f4a632a2b80937ea64605e49c9694cb68e3f82fbb164964863c9d58debe663db1ec93382b8149cba27be1c79b2ec53396421a0251f3c4fd3199ea45c944e250d9402128369ff9d7fa48b0dca0c945eeba9b90539f3d4207b00d86687418dea895a4d467fd7e48fd6edade5d06434b9b1b82ebc0110b24bcf0bd4c58f9d7e5121c5863708b0382838423fcd9105e6776dcff3e914c5c425b85b9a1c5ee805d28925f313931a500e5bed7a4be914ea3a1a87e8b798702d45c6961afca988059bd23f04c38a0f4c3e9d59eecf1fb1d07ab1cb41b472b8848e5a149226966d540b095c23b293d982682dcefb8ee426ccabb3a5ffa070e019de02aa3f4fad228420f27a07cef98fe7cbdc676476ace8e45a8be1e282c136189d11df419053eea59288a16e0708b1124535a2a9d42e5ff42d514d05f344d75d26abbc2435c42daecf028c60621061565f6fd5787d74ef09ba4e1dd3f4043f0a6164d82c1c8a56971eb1ca21a966f80f67bfe32c2b3bf34e680a5abb3279c8e7c71130c77337d439fdee9f0589c268bf2b116eed8c6042e3def0986ede75a7ddb046be0cb9c2f5982485fd18bfd4af6649c73724b9c2046de6eab8c12ed5b1c56662b52d45eddfc9441f88d6dab41afa2c351c4779f623a6b3e4f8de8a749de2ba28447994c57566178c29cfe2d927d7be251b9945583e0d62591acd43c664cf8e52a9f96b08bdb914e5cd40aec4d9ee49088be114d7f1c326622262b9437d4ff41ab766fd164cdbb831023e7b8a4c2f215e9d412ead4176445c5661affeda6bfd4ee4d0f39304ecc8db068496674f89d5be493a4e225239c0dfa31b8ffb4a71b71548ccc1cd8adbece95d2cd76e2f951f6862aa265542696a0d78acf0bce2e20cbd1afd6339f33ca27efd6289ace29fecbf43beace6395634e3cf6ae7d207f31058739eb878cea44af09d18d0100c719241948dbb25943f8426d70c76011a6655e47eab980ea419c0baf21bf3c1cd08a6b56a95cc7ecc803bcc6caefde0603267954cf865423437f3af6c3d229382d4e6e4ec8699ac7929dfa22dfacda6846c632c8006c0f1c7bdda56b9acb231a52a532b2c5ec3791b3c3b7c7e507b9d0a271afcd983474ee55e56fe4e7cd8a0bc6e5756f118c513c9049257bb7251038866517c4c00be889772e7d42995686cfbcdd5f343fd3f41ec7162b61006e55eea57837c0739c8bf2fab9d24590edc3622d2b1c472a1c9a5a4dc63a883834a431f976f1fac01254c5c319cb4da867d129f007a4dbeb5626a9f53ce8db7044bb5e1d4f974a0cca9cf955ec1561b8d0afbaa14988f6d14c705adf6c87bd3f7416611867a61fa33368a20bd19f295c40858d9d0946e3da6771c41ca3b23bb97659ad5f5ca6f48342c323889bc3f00fa116b9eee79af395b24eafb213bb3f74d2ba57975564bd14bfbb97bd824f5ab3996bcfe3d3728e6d2fa65aff6ec874aa468d297f4cfd36fa55f7c9e9d8ce610ff1c36aa2c5b596b017495e298df6e199a6746093be6b4ed0737e834fcaafb52d9a0c37a82d4afb0fc19d81d577ad451edce943112aafae8417e29de50541ec0a0cba83ebb61102cb9aaee51886fa5b46f32f43a3a6caf58201d09466577619b369986a3af1d5ebaa1c0fdb699328cbc95879205b3f519cc235026420a163dd96e0829ec098bee25386a90971477cb12c4db6bf7f48f032e631f106441e34450866ac7e547f3cb76a0452d1c305b3cc822942b5ca815bca6adcf267d8afe7763fcc8b70e4c31999edf5bd25d42793dccd212193bd4e808373b3c99b7b81219aeb4d9dbe5ef0c16455573858cb8bc0454a7eaf7172385cde500000000000000000000000000000000050c141d2227", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 21 iteration(s)", + "msg": "8d00000000000000000000000000000000000000000000000000000000000000", + "sig": "bb8a458fc151be6dd575d810ee1dbc1b0a0c0fba3b64d9282b33e80531e9cceebdd7f266d7d810d0e4ed65a2fcf188c79d0f8b72fb7942431510ed1a9a0dc5dc53783911ff8e486ba22a0789a685370bc44dffea387de0bfe7e610b769b3b701f8c544ca3d53df14e0795927558ecda480cd7ba8c0d19cbf954e032b253289c42c657cc18ff7d5ebcfd4ff5163e8a36f585ba1409f1f8f039f87b1ddd18170048a08e4366a19439bccde7bc9d220642eb94896f4a64b1bc3631089f71ed0be13b4a38c092cc5999ca9c4cf4a4bab102f26599f651133f51cb2f1df9f6bb7b9de9b4899a38d26b9c6ecb29efedb2038bb92e2ae3401d97f3ad3e1bca5601b3f897a2ea831e6a046a66c69a7da9c1e256da45ca11d4d63d3d5d9de9470c117a4f62f3774fc9c919a73f06fa9e27c440dd94aa19d52de6e53c5f500821fae286fea255486434930a444ad90a9eefd79bf9e335a995d652c7f335d09f7519354f01dab9c10d292dceded1c0db39591544a4045cc7d3d28e4da6be59760ee7a74e312e482ddac340f6c6f4e09db4df3b53052fdecc96dc7aa6d6bc160b991099f0aa81ac1982188245dd1d8b111186377f2f617647ecbae26f321aff3931188d2df051f3a4296e406790514a33080fddc43ea4418d44e8f3fae0660748ca4ab61aaaa58a6e2fb56b8ed389b44afdd63243bb592e0d531d79e75d396a007da95535df0ae74d9fe6b61f997811e3934150f4ce8aa292a0fa59f66c5141e3bb339eec3587b86be94b765aba9f2362ba607bac1ba18917ab7b15f3e3cc2270109ec0bec9d53fda5c276841d41f29f91db419fe91b7d5a2f04c5322a15f552514ab592ef54b59539fdf2fc66617f5baf1ac054da64f9064b43392d2d14823082151ae5f8ab536467543ed5cac30eea35904b4a737a11f53fdff7a5099e915b1835aa32ae57e0a14a781966d17ffc4b66c62dc4f35fd414ae0a22719241e863b60ba63e82e2b16dba8672fe7ce565007e8ab53687561c8c41dbd736fb8881c5fae17a28cab7c1b2483a2ae932b55e5b154d05b66c3b6db45a7049b5934ee5880471c3a63321b193c642e6ebe89c54f6e60f819dab75c4838eb6ca1ee80416dfba41e7836f3f2361fd4bfacd3102c1f28ec517ca8db5b38ae3f48f502229f2144750d5d93e4c8125168ef9ac066fab91c295d47e04a01d30f1cc7889e9f9911a1ba9b6d44014637217571f2e7bd371775611c00d651dd5fecdf342e8370a303dc7e4e936dccefe0c66a8d12912ce2fac1f99b45a5fba11a942fe927005ae7e9453fef8a926fb6c8c3c90d6ab39bda85dfe50ab95541c71d4aa5debe9b9a10b92f74f24d09341738e83fa7687bb97054f20bbad10ca1ca2f88a2d9f51fe9e940680785181fce68693727c4a39c57a108f37e41d35efc7e8249f60eb05a68c8b14913a85be41ae96e8b28a9f97541643657f13d6823535edf8ddbba95ea0768d98bdd126f9829025b799842e2b58be73022e16cf46b0160bbb93f97e80ca5b7b4c2581c3be3d7bfcd81a2399afac6e6388a9707d7fd7e1b19a56c786344195a89da97108c2b103ee87172be50943de28d95cb76722c070ce96383b4bfc1958162b1a066faa9d880dffb4b6c4a864b0461b085eff9dbdecd2a2643b1390bc3d5f00830e6e43aecfbd3b762ec023f2c684407e9928ffda93df2082231172f42f5b887f49454e1ef973275a865950259afe4d3b9dd5fc1d14f07093248364c37db8bab873070fb4720130095eb7e1afe4899ff806ad9ac19c09387157a560a98d1a68a1f0665087377f5e17477279c094ada07321760177c3261b9042c36c42060b700316a93450cf8dd280a0f3455ac8c1e0de4bc40aa0af63857efc77023077e7f16a805e909dcb2a9e60a43e7d5d22fe30f8f8a8291c79a2c08a8b5c3bc9dac5402e6e3bf87898496511be0483e9e11c69b6356740bf8cdc075f3a38f9d489ef3b7f88d51734c8bce0acf6fb5beb7a3ffded49ddf0bf54d6958f4276421bcfa666c273f3a415ff69ca61b736eed168bb3795f9ce647cbd413b027e520e22ebc1500671bb11f056b3b41865690ffccac3718a597e16b217eac9b4fe268520a5d342f1de7817c3568e6249d9f4f014dea7b90730dd06ae4acab0a5e598fbe72b30fac6355068a74d8b311348210822d6f8409e77806a259fe4eedcb5934d2e09f06f2fe82274c942058861d5449e6eb923ac947d06806a1f812b6e4ae2e0a929aa244779c075d7b4cb9edcc664679b6be833c81d5c688517eff2d10eaab41f93e48b7961cfabb5b9f087f5f9ceba4dd8d1aedadcf5719beaf1ea95398634ba3cdae50ebe9e46928f4a2fd153d38ea9af1cf2e7b832c19712ec57dfb516507dd3b12ae1eb82035c1e3347ab97c7868142c68493756493fa571abe71c635b928935eb50cee1c25a9bd60e88258dc777dbd7f96e751f1bde620940d8659730a4734c77402b7664d5cf6d8c562d64284c637456dbccdef87b25e96c21f9962eeceafe99a9d6199cf846a3798fdd09997ee81cbac964ee68bb34b29d9dda00f251f7e2311bc1b6d4beec8bd4d3035a82285c2288a90a216a355e3d1064943649e5fc46011dd1ed2fb9289997afe982093619a6f72d4a6b6093e1303ee88c74721e4bc7ea6289f437cdbb9ed0a6cffa5d7d918368b986e070c3dccb55b1970457d189f9b59ab8e963e5e8337292d4c71445ca44241f9696d1ce3910804fe7df2dcf5854fb9116f96a1a8652c8a7f2c1ad07b07b1da41a21148bb9b24e8d59dd023e58470a188453c4cd9ca7022520ddc6c53f64a5ba9b3563a7d59ad317745a226f7f0d1af6f71a5e1816c71e12aef1e8a60eb67c4c6371a191a1199424cca295a9ecec99bebdd1d386e955fe0d4b4e7b853100f17e09d5e12c8ff569e67bb7d118759ebfcd8c1e954a6cc351c39393ace4d531b42e8aefcb533020169991231d525bcaffe20615d0adf79f258d7b3f7872e1c39d2ab3c616ce79ad8054f0c55241ce148437818aa8419231d72453dd1fc28790b724fa49dc41e43b838d83d8e6978da66038258008e72e3009ebaea2624af497309d9dfbe809a97a67ffe71e68da7550f12ce66e333a7196f5402dbfc35cf9c021b8150c91b535b76f3f6cf2925e2b5c7dc9318a34184bf1e84b06d8edf792f8a62845c0e4a47e5af5327353256a164b167a895b6617a503de6eaa46f1be6a736b4a5c81eab9a6c7c7e78855b44d9dd673f91307977545341926d8444480a44da1f7a38cc85d266e0b43896db4e8df8f87ca1994160090884d417eced5ceef498f3d86bc482e6787ba9fd9f95fa451a9e49ca51e72453802937b2e1817daab14b6140e1d12d4c2cb07567fcbf4d7deffb0ae80859ff3c3e07f7494e16671ff2c2eeb921c52fe21891ec58042bfbd247d6576da111a7b40d0d68d7a66abfc133b55912df8f85fe06985cf91dfec0c6cefdd646ab64b30abc9f402e39f246ca3b90f9b3c7791443967fc31c15bc38a256661125082ce326d61ba7b9ba49614cc584507cd974baefcdce6564a0332deff73db28129a79b28883878e738551107e255a719aa10f5a71bb8ed70d053c7a0f64ff47ce85239bd8965dde32e87720a5661756d2bb890e0485bd3ae22f4f030a9c76da63fe0d27146f16fb02109dd247a763c74359f0ec63dcfd7146eb747e15be6a7be46b30b1c7e91645926122674a722cd920d925999a9d2bc293627b5395143769c26e544e87eb076124d4bfed589f9a0b5cca4a7f52f16da6cb35e3956cf758d0848a6715ec8c3abed15026d40ba323940f85348c6c7759c5d7fd0c309ae46e75fe76042f2bc3884afb8972f87f3f11bd1815b39869c1ba5f4e35569786839c792c7149fcba176623566d29ab1dc29f3bf2d374f24eee794e2003af92a90b06a5ca67b5ccc7916e9aaff10ff1387b72d72f6edf6b450ec2a47a21311f9b4b0edcd468c43c53b7e6a233ce134512ebc742b9e59f8be7e7605f2df5fed2ed705e679cea3fac404eeaafd03b0345764aa821a40ba383d696be7749c5d35ea43519b789c06f316ccb7fa468f5562f688906442c8dc36d3997e51c14353e6022cc2b882e8296ea274808bb87ae9e62c307c65cbf30ddfb2453497d58075c2c4e6034dd8261032924750fcffcc5fdffade784907d7ef657978136ab2fa29ad20c9c83c3e348a408c5065911fe61e0c439a1d7ef058116934f6497d96dc661f8ba21fc255c021c7b52b6aeb0f1d2d219ae131ab0e0bd01967698b63b859c14b3252a7204da5cdab7bd2f78c6cb639f024c92465635a41d115ea6d042f3722d605e7be2e868909183525ca088719876ffb987afa2f0bc147026e1863c528562619ee551c64380ca2d8c315803a4098f3657d982397be8262f7d34ff4c05f45b6b0eef3d7c13fe542c851509e08b9fcbd9e48d1ec72c790cbdb9dac3fb8c7a57c8a9e2eb14ea840e309579b0d04096ae896ba2f3e45af7939dfa922b96d4b76da3c3b992cb72ed55c2a424f371e020fca507058ca189294a772db81e05f33a50282c689cecdf4c28df5e17bf6cee74be67ab96d7fe26cb1d3a0333145557a9db5e4257b1977bdf7fb41496b74758c94d2f7154d5bdd0e2c4a4c7581e600000000000000000000000000000000000000000007090e171b22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 22 iteration(s)", + "msg": "7d00000000000000000000000000000000000000000000000000000000000000", + "sig": "7b2fab305f92793314f5aea42c8544b5a0af4ceb7fe57f194c66778c320257377aee97acd7b9fba4c8fe18cb462792452d44c507f7840af2c6380d1a25254ab0874ff347626511b93723bf76abb608ebb0fc056b453473b1d2c6d7264f0f2712ead95ee34fd8f620925a36decbf3097ae92f04dc9981e1cb96da9fca9fcbb41b64fbb617a21b17b37661ec5bc538f00a1acc07aa667482daef1055dde874d59b14327dea97ad4f97fb1430972ac82360e9fa070c9b3ec2545037cce1dabe34c274c1894add81507268721c2769f19fe089178b400e55822981c2f8b9f51f96c48d83ac24ff55ed8f5a0645d122f1c17da2bc8da50cf1914d2900b1389ab9f1a00b6253a67bf907641ca5385b49a07ad3ea0b37e458e6caf5b4dacc7c74dcff22ba677f23ffb64e9c1e2edbee99e7c73207d3f288d2285a7c0e14c3b2ddfca88df6934acba9857083a131d50c88d8f8ee8d24304e5610dc53574b8d14198fa008435d33d03c42e377ae3c627190a1c6a1639ddd98ac90b6b6d0bf7a50672000e0d09898f21c705c9a5de142e9be15c0c0f9b06347f61a0ae9741aafce0c418ffc1908c8c20b68be48a6d5c8f5c0762932ab3e73a284ee039123c2b9406751ab6cac8c610b2aaafdfe539dfdc1e800269a0a1fbde3b5bb03cd938dd08160fb8f236724674d016a76d24832f4857bcaf7faa8daee394ea5d97cc12c6de62081050c0d0f46b10a456ddcd12e352f9fc5a9776087fc6d16341e0346eca5cfb3ded070e278146b987ffcc9d56396fa970d22a20491ebafc95ce00f5b6d8ead65868bcb6dd6f31bb2a9d85b7951f9ce8a8f7bd7da2753e54362c8981ee4714afdf398dc258f3f0e485db710f0393c60a301ab97d801c7f268385f5200e6bfbafaa69ccd87fc1eb0c29a2c6f73820d6b5f561ad3659e7b895a9ca7798422a673594ddbdcd17abab2afa6b7f5d5c0236b33b3b8e6129d9a40ed534bd158d436bc3279c769abb3bcf4ad5c4e864f2461915266ad45b7bdd91023a09e1b3b2700d8294472e1b4a40bb1a57844183f80dac369ef701a0bdf2290f3283a681dc432b396451f79853359ba9df78e8a6fe6a1ec4017405efc4a78199e3365854a1c94ae7affec9682d1451d1a219c9b9b17ee6726281c025479e2dd64f835ae15aa2da8c38f4f07b014b0e71e88a60b95999f77aaf33a64cf6bcb1bb93bb151b1762dcabd12201a5a1e7df878b0c1055c2c263bb10952648e1429839fd180c173c6270f7a0c43c7d1c0bcadf81c0400f1d8355b7d0983802878d36ca0dd0c251477c12cef09f764cb261e171c1d8052491e7dd0cbc3c2801a06d7cf6a67d55c3f9633a8a2d74a1bf49905d29c7f574d2a2039f41835dd6f7880f3dae8b60488580975d9b19d1c2d5b64f91f01b22caace58142ada05cf6bee8e6903362c18296195b1177b1aba590e9865d4df042a33930180fb4a99a7e0ec262a38f739c098e9b48f8a6033434bd506e68c46fa0a0e9dcf7562e27b48e450c71e33602200192fa91828ac40854f33ecfe8ebb0aae4ff1dc951c3ee248783650d9e4a56e7d913e5903abc845b970397d8ce6666f410505336e7b906ba63e77470900397451a8528ff8c376a70403a4300f80b5573921f29ff90728286022f6ea62f28e9b6884f1c6e9d07b3d20ac2b281596ba6a2730b9cf447cefcd72bbf8f95ec88d0565e711c286a8c269ae9ceb287ef6e6d00502a8a89c766a8c39d93c3bcb654a07acbf75c7ec12b8c1c494b55f9a41195d3fd5e19bb4d93cbc16ca4f05be0a86a9aa8994d12584be162cc4d71fa629186af1e3d3b74e5c905c8be923dda76b87071e84883da2585f2afa64f0955434a53f0c0cd63761291c88a4271656e3083982e9360e0b76e18f6fea30736cf97f59256b5739faf5e87c51bc76a8fd06b4a8563a11a3f2466249beb3eb8fb8fe8a3d0b9f06484f6fdbffd9aa7919188b626e8310f9d1c83392ead724185c62bd1b2ceab020cd305c4abf081bb3984cb50c1cdf7c59456c96f91016e9ad32c2d47c67218db359248da09fb14feeaf6bb343319633e7869d6103571bb5b587256eaf4551d5aa74860ff266f57e55f8c65a2ad87aa938b7f156f2022b62282a0cd4173dc090c5a74aa5702e50be4495258c509d22ed34d63622b62c0dfe1f53464325280281a95a2c273e17319dec4ccac46f31d953743e03bf22f40b0fff77409072dfe82876d9d45a11dc0f1d64010ef32d57eb60a5288b089ec9d02bfbfca6197eae336363bba37435e1e558178613807da640fddb0ef205d7c91ec186b397bfbfa10d588235013aab3ad21744a5957def19bb7bb7cd4f676b23c7bf87579ae2a5fc8c0cab31d72079a4d0cd69944564252f9603b508f5a83e19f09c704c574066617e8b6fabe690e85d92dcac354a435319a93cc2fdf3010c52e38d6799381e8cc861d69db0ca8defb5f8b1c017dda46ca9302d8cc1d3b1ede0c9dd63349bf6011050c968ca3f3011109314dc9655d1a30f198cc84bf12c812e90939d7f4075e32697dfd2cf6d17589494e775ca982952b61f8b99a84967a431deb64ef7ec9e882cc761c8bc66f7de4006eeb13f9b6ff2d92db458ffeef5b2cced63172c0f4764da145115b615cb6c0388b6e93aea63de74bff64fe40dbaac7769981bb9655de32a881ada616e96cdb74579a0065bce2da90b64a813d57abc8f6543310065cafbbea9512355cb3f058b35bcd357bde9f55fea564a6b14bb341c6c755d4dd5a72ac79d855fe50aff80d683530ee563249d0d65f64debcb24962c61ba05c5f811b9e0f4e5942797c24d2b08a4592d590cb871272f5c1228e9988955ca4f990ab2b138cbd33646772767d4f76e8725377818ff1cf03c01fe64bdf05e61a1798c0cf3b4b69b1df9f756ffea314fadd17a6c6ded6765d59b22e449ba8c78b1f8f7b717de8a4462b02d1bf22f24e821888946f309c7e60115049997f0a98e5f04613acb46b5e231da31c482c25e7eac53f09df009728675e07cc3b33a0b0c6e9199664a00c8236a3a9ec9d6d5aa2e9317da6efc75e03d95d4747d51767485c4ef9fd438b767265093bb8340119f94367b506796bbb6ef67dce782d879a3673c0e8415c6b55c4faa3556c7c823879ebec0694dd0783ab8f5a60ae10d1c3c42e309163bdadd31aea4869a673eaf797138e332df0579567ab7e0d1e72820de3e7068ac2ee207794ed41737dd698f3d9884bf3d8f37981406d856a4ad5a6862df70400fbfb719acbcb0fd6bdf6d7c4ab3aa10bc8d6d7452fb9546845ce1478ec9804b3fc0b64e2a292a2b1e244a3601fab84d082eae74f635aaab4b5c1e6c342a695f6804238887ace79dd8dc63c2266d259eafd2fd876517ed9fab048444a61da824c0c836977a82591e1f7a813b0898863c2566a3651c0570821ee974c4d031ea7df06264d1616d48bf6b2ba17be39cb363843b06c78d112c76cde5cd8495c52019359f4aabfbff771acbb91bf97a5acb1d46d2e721f78695b8a66a145c15bbbafc77e5070305b37e854eb16adec67495c35f44068ffd1ab55fcbced4c146055343dcd7bd366b604ef8775a9985a1bf0575482d162edad96ad645f186bd2bfb266c3b178f01729037d9b7ac8a77c518cb5f316c050edbeb0d90362e21d5dff7be1f8632ae42cd13f9d7071f0ee0ba5a1a50a77b05fe3f089f1ba56ff7746ef35ae7bfb16c2267118e203b75ac19b334200949f8db6dfea57e0599ebd3ab484bf5be07a1d1844aae9d63af81cfdfdf1fff686abd1093d27abdf2e92308ee6e3e15fe197e3a9bc6a9ca889e06cb73cf824363267d45095e8b71f84a9ca49c66ae58713edee540cc357a08a7b855efcbffd95f2b765fc9d7bfae809726c3632915a0af1cd1a01abc864a56539d5fbaa21f7a58f430164e81e65b90f453c15f83fb9236ca8f54fd2c7e50d0258e9a383444247301aa1b42c3215337098ed426bdfdcfb251b8ab08c35fb0570dd08ec68c1896a7ac95ba6da0437954fa029b03aae7c64de3ff3aeffe38ef8b208d9dffc62e32f44bb968518b9a0059cb2ea2e59b0c614b7787d0068ff7fb5bcf59ca605dedba63a34626261e7193e97e7e6c45f3956fb46c10e88a94b8c097cf2016f1c2f76a4db6568e038373a7f959c09ea1223c66a5fe011c241f206e03dcfa03964dca7bef53f1a442591706fceadafdc7fe0b1ce3a54a2e391e51555beb3a290c29bfd2d88f1bee4dce1c6357b4966fed12f61a8af8c90bdad34b8d9bb9d04df6c12b717ba937fff7875cd58ccb01c8573f4341fa3d3648cde127b6a9c4a7b09dfcf50f39bf44d1fd94f5da7d2fb1c2578b9c6ccf19b9920bc76d1b91513bd9088ec1e818898609ea9f5719e4b458b9ba28cd9dd43b0402774dba02f4e1e6e5c71b167caafadd9678932176710a41184ba19702e3c40663735a1811c56ea6817c99f20b5f9595855b46839cc64450acfc71cec14c5d56c2a799ac26569cf58a8d54b0f984828d379869cd8f5eda5d0867199c914402b016decf3e98a2e63948da228f29e6d52a9fad658997c1d3dae404179370ab68075e49868abb5d20fcd4641a83469bc20a288c93abb2ca105b6bcdfe0f122129303850e3f33f6189b2bc89dbe3ef000000000000000000000000000000000000000000000002090e171c20", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 23 iteration(s)", + "msg": "b900000000000000000000000000000000000000000000000000000000000000", + "sig": "c00dbc9431a2e5689d27b5a3f09c62fd6bf48550b9c6424db5c6027bc0b5cc8e9d29f05fb9d8f50a85d2c5d8b7a4f7f36813bddbf7caf8eff67a6c2e148890f9438a5ad85e6f4eaf6173f122dfd160a0ad5cbb091d08130677f196d22c8bb6793d174f71516d42bfdbb18fd9a371286d03ae41c7515adf78b0b9d0279538415f886a7818c6e09117ea092235cf18bcc834cc07de3a639c472d63cc2c42f6178a4c1fc61e5ec1fd5456851d586f37b59ffaf43e3887616136f8ae775063d5e24c137f63023d056ca2bdbc4f9e059a906fecffc72cbd6ff702f06429a66420bec5cf936c4d8f0e2f888c9b5bbe81644be03bfbbded0a1ac71b1e4c2c4df783d6d2621208f88c58dbcd947fb62ab972bc0865dd043528b9fa057c4e7a0f7cfcc2623d46745f4ef63b66aab5ae5999c625fb20da4f40d2112e53122707837501a0db379f262977c853083913030418cbb78a12bc6fb85857f401b7e9671eba59c1d11b55f83fcbcfad880c0d8492e03935341488bc7f1f77daac3972a028adcabc1b3f3ed7ac41a5caf911aaf8c76e0ea75c1f4ddd109a21e47c7a5fa2103dcb5e588c354d80feeb15c3495c9c0303f7d42e2a211dcb9b0600245b35448735877d6fe378b38aa279d81baa922b56693a2cfbde2efc23fdf80a78a8f50e9c587f2d63e29f0631633743664a83ad3a61ce12fcec36858714f399591229f7269023412b7cb3cebe64691d1c63a297859d10d12d221a43e37432da12c9c7965aa21bc82f7047ee6018095f0e832677d83f490b238f00e21251cbbad5a9aeddf11d4d4dcaeff0ff89caf1e8639ef0d26b31535c3fb73fb42a6c4c399882961a51ab5799109f58104abca73d8083c2a4b64ccbb9c1744b53d8c416bc902802abe8d7eb9a39405c91b61234ca7d35735e18e620067404d0226e7410f63c52a5ab4ae58281496d683b84e88055e970462b9d11b75688f8cb3dc47caa0ba1caa5106621bf59078ab30b113b4408d891e63eb7dd1db637607e6fe8b8b835b2205c5b17e7650a26ce59c3ba37a691a8efc35b847239fc7c60f61ffa06d3025855fd8e63f1cabff8d3f76f19ab3ebbae67786de70e9880887642259bc89d4bca52bd243b851b7e229ed4aa7170d24339d2e09ea779189921866a9bb773f09cf832b93c95b8846e2183f8e23b47a92d54af739dd9ff8cdcf13dd9fcf3eba396d3c76569b733aaa543051668cc436b2ff40a366284a0eae55246389268cab3d516b19e0d5184324fab0d0298872fff58af31cecbbf9b7abdc26509792483451da1cf5c53effb81b76b2cf28d0892de1cad6cd4ccf91496d64d31b9e8eea56cece8a99813ec49ff568c32763e3164b638ebae34852f8a827b781ba03f4d42297b5725c97f9a6e82668405f3b0c589ee7073121e07c7c39901e338685a5b1da04a127cc2301d4ca4685777ca9619f3cc3041a68c4d6034cf3d58dae42e61a65339885151f70c12eb9d32baf5d124bc9b47775b612e35965f99ac25b60bfa182b84188eafecf4e761b58be536d8c241a5df7cccf92bfb51a9f796521f6fa8ecaeb8574c28736d2e9a3e05aec22125b8ef6972cf5ea446737931e2b3c3c27dc3c84951fc60c89151082d222008a271888317c7fadcf621c115774038f21f89558111247a81f6f5e075577bca24d798cd66495e4f4eeb405488d0c39ca05e8d31619a5e65bb6b2d5b8e5683532e9475cbb65190a4abc6edf981a4de572ba400e6f200320cbcde65f64fe9cb8bb204faa9ed6cbd505b63aca60ade2ca9c79978bf0d971a8512c11e2f8bb9670984cdf29fc1a08c2e0f60cd4bd0630c0b3b34ab16f98e36e68a72841e34525bb5c7bdaae3c221e6d62c5b495166a9acd5fe878c766179c4ea5d88b3faeeb92bd0ff372de4f0b4f7e9002c097c2ff679c25467499b28912624de5252fa5d48014289e75a73b01021fe0f302e71342d525a53e754c4ae74c700bf187d004ca04c7bcbc956599976f70044fe70d22a0c82a3cc2a4aedb839f3c1a1d0ff61d815fd5cc74ff9c4eb40454ab6a53701913f176df2d57eec4457a98ed417c6e475d4fa068c6efcc2c6fa68bb80dc14d88d42d692e81e3b791955a2a4db7b9e0b2e959f4c4f04157ddf3f6b71f93e2768bbd25e807dd3a73f3db6641b373f1836782fa9da011c16cc5b6ffbd1fff811e23b1a3e0ab162c879369a13161010f5997ebe78fdb5754a34ec51fbadddd1f2afb927434175cb7060801c4ae80d4fbc8f9548381f6bd941e57bb617fa5d78ae28708e054a343b143dde9d5afafddb9181484cbf910d431dac96cf60670753ef1471db18911c4de0f14468376aebe23a37d7a661089e5487d9d3c5115a563f24267ae8fef4acd06105c7f2da0ef1691ae589105a45ca335c408e765395b2a3cfeeb3a3d6479780e38e7b52af3259cce9206f305e7842471c6ef555bf1d3fc6e0afe2b8ab769e2aae1b4b97339c273c051abf2b62ee283935f4253cfd1e855a2d549c3ed591838f423db0aa4ccdad5b14956e01e7afa729bc86a563030097bd6e446c990f83adfa5da4a2d71e42aac0256e8e48957f301a745733a5dcec0f761d7da4f5842c99016ae2d91eba8b29a9fc48ced59a08dcce4efa84acd21583442a24f444ee03c8611dcb108f1e9d8d6cb40330bc324831af3adb7585966f3312762d131ba54e45b2b695804196f3b1bd5a5a633429579cd18fc4dfbefd7c7c53873764d29c32938f25578ae0a7950c29934d9d878623640adfab823aea5b248348ed029d69a41f2762e3bb859fa62cbca757565e56759dd51501feda8f3be5468dea32f51d5503e9641e3bec3b755aa0fd6352a08254c1c95c5b65472717c486ed6e090ebaedd6eb4378e75bd71887f19bbca49ef148f913cbcd0725c5097cbd601e78a8746464e552c08127eeebaff5de1540b37b7b9dad95c74583eee8183504dc4d61d1b30d51e5a7d561173404d97b563693c17083bb3b055effcbf0b40e688ffb37f46d3a291ea0b54cef41f8f49464480b17f7017f7f6e9df2805f81fc056472e69cce7222b827b92c3fb1aef3bcaa6225d1e8c23e0cb173c2c2c936b43e89aa89886371119c3203b7cd3394e7bf29a0fbb64ae19d476f118dee4700a7ee400a73a07a8896a441614e3116f76cd58ae6e8b9bde7ec97ab8776e84c9dff4f41680fc306c026ee5caf39b58c3627477c19f3f39b3e35bd4695ca73d4080a80cda55be5d3dae4eeef8f24057f45b932fb6e58c965512d3bb07fdb87797ed007f675d0e89085d7eb93bda336692cfc211a289fc104a9fadca4b1de6db0e5868930ac571814e175cee5fa8db276ebfb1e51809584da93bfbdb0df3397ac9f4fe47ea2bc772c7de7006112cb218e5cbf402a923baedcfd9e4991a8cc03b860beffc9afdd8bf7265559c5af0f70c4372b1c24eb8d4126debb564780f7286aa17149697e7d9c327ca50babef283c6a991bcf8ac1fc83743a8ab4383cee0768c556c02194b1339f92bd1f1e4919585e74251ecb7defb768021156c7f096dabd1aee777774b5d2537957d1136bb457b7d37dbebd581a1b60c4402f25c273aebc1bcc9d2ac03fe3f93709932b5c95cec947316d8762f59784baa0039a33e8916e16ac727005ea0f1b6eec3601cad5b34bcd6e4c8f3b49fe0b98ae9e081e6d6aedc88dc3073e753a11d0c3a4b64fa0d4204446aeb877cad71f78b61442da7ac3fad1d8f581be0496ebeef0c4625c18f10427983675e57ab7a80e415217133352b5b3819c76d228f79047cea790440810040b878b2a54d18430c43c322f83150ed13ecf3349c158805ba0216b736554859f60d62c0ee8561597f52a51677beca0db358ce367da78bbfc6f1c3a9445c53fd91e0d698b26c7b8a2b4a201842f50e0d21e1539d90877fea7299fc08a831cfdecc45784febfbc462116a7bd12dcecf301a7da2a978f6527e57f1be5b52e833039d9bd00dcb87dcca99dc887ca0410646df7ab7671714e76fee5b78006ec1c7f53b7b5bacdfe0bbca426035067e7e00242a604c568707228ca6d5033c26a9b2dc6336124e329a98e78c1245ebc14efaa499183c7df43b916d47dafdf9126904c8b3559ade438b2062aafd600d3bfc3ee5f3123e50750faf9fe59571740d892371143706befe00ed39bcae1d7ae604a9bce4e889c4b0669e5fe1103ac5a4e615903a5c3d645144de577d4aa9d3a4e5abeebfdc96abfe5a07ff7d68aeab1b3e18c5a118d049e1e0213e2cf9da583d2b9f7108b972d467104599e557bb36a710d0beec84c13cecaaa0f511355ccd351da2192f450035d6df92b955b7e241755abe8ac2face7ca735bf4d034bcb289dd37e7336b382b0de8ab1a02b59ced9ac9f12a38be2a9d3215125ea5aca39b1b47db4756a402d2c5547819d0907cc3245a7ce5b3be4ae2ba86c62374337903c6d77986c496798789498b378227565d7b977b8eefe14351bfcf49d6eb15c3385e8f63cc9fd13eb69c37092781e8c2dc3845f744c1511c25a6ea363d7b3146b5602a07111980d9ab1ac4376d46fe5990e75bdce9de24b9af38bb6c65e6ddd410a1638b5eae14bc596110528a237a9fa7bf1838614e6e7f8ad3070a97cb010b2e30438a9bc1d0d1dfe9011517596cb1000000000000000000000000000000000000000005080d111d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 24 iteration(s)", + "msg": "2606000000000000000000000000000000000000000000000000000000000000", + "sig": "bd1c81add57c6fc6aeae596d5e88a9a40a1f146e21b923909e3c90f10a77c0451e9af75db5309434860e43f437f04063d72c40363967069240efeb1d04aede6738b9b9024b8186041cc5916b8cb0098fb0dde884e093911e4069949d720ca2e9ed86d442ff7e07f985348b569206c6640a9d14d3d89d6529aaf4b51295a6384b3a6e63a046d3e89bff5079d58728780fe8050369a06b397beefb82a6ae7d9f6b5219f993d34655b578454f62fcdb8421b8bdcbdeb43139e4302c44d1ae23334dfe8b51df8feebc24a936bee7b4b647826994da416318abed7004abd7f8b446a32e8229e60f1007b1fed5795a8df27392e7a3a1cf8aae5184065ca28312fc38395f70b9ea8b8cfcf1015b6dd4ea1b2c17b22af14234bf102a06ebb70a35ce2c9d0c8afdae728c169609f61aa09afb14ee9911cf41e6632a031c9342f8448f4f78ab81ea49cb57d18d07feb70d18c16479a03d4cf00b2e5e885113a16a50594901c6daf75f49ff990893370950684a8625ca8e882be5488cff442ba82d9b3b978e6908edaaab70ef89bafcb1327b3ed7277bda85f1b39b70d5f3571d5619ceeecacf60e29a37d9043a3cf41e03a79b4747025fe3ded7ede991939edc8d6e1491ba27e22a493ae6ebc189828ae00a13730dc5653da364a79f0d3fc00c0c5fcdfc7107f235b9781d5ca972eff4dcde7d38c1f30fcbd3e51d79c356dea6694d2ac49ac46850e06b509e51f6816e404b3de241cd3f869c68618709373d54eef4f244288e13a0fe8331a09df7073c9668ce07e83cea9a20ab76083835157e8c75408694a5a012df1b1e1d08343bd06d81f6dec60b2590ad6ce34bb66bdf6ebf0e21b1f2c4acdd25b7b212cde6b2bf826c13216f8f62be455202096de344759a1e66863da69cb0268ded55de9f41e4d75dbc15c43eb7aca6b7f8479da0f25d3116b1bf28ff205f8d25129a01f22ac3976c80eeddcad9e963fbd60743e8976e2175055bd6ae589c3808d41e51e2077d7e2f9a5fcf1ae687d7170b96bbf8d1cb67d146480dd38d6b52f877622f489354e587a4610756246d647eb1dd002253027032180490924c8ee0317bb4d8d7c1ef415a0df37bcbe1201b4d9dbcbfde250a8a89a7695c280a4be8361520869b5d23aeb6e7df2737eb1f28812f5ffb9b1302d5b030182a008ed813d8232347342abeb3ae7f7172d8e85947899714d9a4af587a43bc29fe14d577c37a2606178d342aacd2e9a33e159aac81f29e6500f7f8e1027d3c60c63498bd2e391e4be4caaa6c715c20316eccaeeb2b0f1e0b66809de88890a0d14d251570e409de7b84a4ef7d2e5b489a7ae7378123203ee261c06380b44cd6e256568c990d86f6cdfa444c333ec851932f27be415d6be7d8c1e063a44b62786fc1449815072c111f5b98e8c7d4d994c68cd21d0f07099c7eab7432b7853ba55ae27cbcd48be775b9b5a9d407c939206bedc59708f1efa733ce1b7f3df559b4df5b1bf8c27f8860bd837184cca59480fc7605b9faa4f1680c3389687030b68e343fc56fce77255267ae53357fbefe4f122ec52ae2caa58eeaaebab6cf7dbac4cfce5c95bc7dac91517a85b14c560eb604e5fecafa596fd3e76bcdb83da6b5f239ba8cce4a9e14957a71306e7efdc048b9d949a8cba9877ea329c39ba2034da897e57d4d8f94efd4328b38bd27052b224c7366085a578524b6f42ae9a2d047519e0575b3cf6b10a4578850cb5008446bb32996940d25c7da5300d9561ae96e43ca17614cdbee350e55e4a07be349d5b181ccb3c806a2cc7c1ac165a3dbecbc6656beae26bcd37be4480dd88bbeca8cb2c1d12d4594376d1876f928dfd25559ed402fab01b0a3a3d7eed61a845a31d3f2cb8204b7641d875304dd0b9a84957914fbb3a1d7c15553855f8122dbfa5275b0bcc66e49741bf4f88c37e830f4488b24459076039776f1342e1a5fc0af17d81d96c939e1159ebe04791fd920dfd6eb7d8a74fbda316d70b4d327a5411fbd0e25edf7f9448dc275773c2f05e9ec8f16006c4c8ce51c6c3b9be2f3a78ccf90468154914716162df15f008e64720218a59e69478163473af62c08780390b21638c7c86ff5ed90ba003e9511651601ac7ca5f505686b3101e53c736a213bb56d86438b9707187429d48e3dcece259b4f87eca78cc9720b1139bf27f5deeb6614002e5932d44f2220f22058e5644157e334ffc348d25a2be6859e88b27d365c5a07f86fc0d74b68ffcff73480a14973b701eda3a0d16fb39b86c7d344a51f10d3e4d80fa4a240d66621a436b01e549dca7d6ff595967a41ef9892ee3a316113f5df6379c529aacc5e332f4e108a613c799102f962a9156c2b7d807ec4de42b315a9131338f2aa35f889e385a79db045c042d6b4199ce0d924a859bf182f8897c1aff76c4470077c732147df78ad688c38f39c41c525feac6cc92cb0e58cfdbd24f14ce7d799ab19a57ce7542abe78372143b39b014678b7d02855d7682f2d1cbaa063a5911de020500d7bd4b3e45eca31d992881a3b9d8044d51c4ad2b3db4589c3c6aca5c714d31310e3ecf91950ff12306e52302b05aea52c2253a6caaa21f1c7b0b4be41fc00e4f2b318246785157f77ccdeb1f8e85aac7b97d28db41a6eb5524047565c9975b155d2aca2b98d85fc9d1a4e269adca169d145fa138899a975e13183720ab912051bc9523be26176b910d98fc8e191dbc564ccb1a0767acf1c5f9a92e501f8098199360674727968165293f778f8f87335f4b9fddabf278f65f205179a43cc8fb60047bbc4b26beadab79b35b1f316283b595046aee055d68e7e86b5664fc8b32343f9b488b31aa0649433248e531fe5d570a531613a50c73fa6bd546c861542ef16be17f35ec4fe92d60905b6baa3a0645ac3ee67bc6bd5361def91a6a9786afae9dd11c49928873b7d8efae32772ff1c5b2c065bd9ac18baf76606889dd80ccab7c9f0d3eb773fca1d561d5fd0811faf01dfb1f8c1c13010d23f8c1f467ed5c5577ab6002234c295c622044a306299855588fe45a48e00fb15b314d646d80daaa01d918c7a5cc1c3eed27f12350b58c6fd715fae1c932280dcd1affebe0d09335ba3992bd3d1db2a4b215b123da1a68c75de8e187297c625db9a9a1533a4bfb1ee3c6acb69f2d8149189d35ba80077aba0a1474d164ceddae3e8092c423099a0ce048420b03cadf05e897b8fece53857f0d2fa126b3b9bd80e31cadfc4400546eed633e1d5f0e4759b918eb675849f86931541678aef583b9b2894c905d7a5a0951355d5ce741c61c146f2324a372b87168ea7b380164a9e36bb3e63c3982eafd6f68e122a1263e745fd11dcc623d41c4a1f191cbeec16b2bd23ad9ef5a6067a1065f21a59bbf76a47f35a6ef3601dd6dffa00a96381d037e969ab938a57f21d38979c79480099f621cf8951094bcf4052d9c6b0c45cf35a987f254400b7d43f9ef50677192a9ea867046e5efcc8706aa599f82cf59ac0a67fbe162cdaf2c988addc0d7f934b850cf5739bf65b7053d280a79ec3e7e5bc738c33a883e31484d0003f2dde5fa7e36889f544d126e2e081bffcb41ebef6185e73399a9a336ed07c119cda65fc115290f149802f9fd73a6528d8bb05f0b210fba11ccdfc814d16cd6add066a8ab72471cedb354a4f60ca209153e7b0b1d065f37bc756ad1100ae851c1c998bd36c649f8c5a44ca5958dbffdd88bd925653081e2cffceba6cd4142a4bea47cc8fcca2f5e46534494689d45ff296dfe2b1985896bd71caaedbbb7ec7ceaf6d540c2cbb8c2c37489a5932263ba0597c3ba25a6ab50a5a09af3b9cc6a2a2d4411dd0d3608fd163355cbfec4a6dfc1bc4106b44196a4591af1b6e3a75e7b1f3769ee924984781197b9c2730e9bb1750005a65cc74689e8712c2eb16875c5da03a8bb29852e77c08a16bc23d777c99f628c688a023ab8431db5f3d0f463d90e698e3430bf2be8d02fdc41035b5047c1bfd21c936ae69af73eb258c3907efa308c71d3f8d9ab0d40d45c3888256d9c3a04f26c83eb63a77f290f2b58c6dd4bddc346266f97e55d0f044e7344c37652b8b0fa492dd5445e84988ffb92249fbc69be049c825186a2973631d5dc4d10896983bde511c87e2850318963cb1e239a7eba4c06b6a2e9ee2bebf127f54c487fa3b28636a2ebfa0ebe042adef1fa17913692ec0d1647cfcaf6c90df6f9b141d8fe9cdd8949d80bd9ebb0712bf8dc1466c94c625c9a9736fe4ddf78aa6574de6b1724a7dfc5bdabb99dc22cc3deb93d537dd5d1b75eeeb4505c8f6ec102ba1e694858ae94a66eccdb977432aa02f1b3616141c8c77fe5512ce888262cf2a3f248db8cf5130196f73dfb90dc716b0e21da55ecaae1abd53968a6262a1759724d2e4ace335aca4421b38ba903f501adde8bacfd7e6cb254e15a1aebf1ebbd812176beeaab97f205f570f5c2e96f9327af9c17514b2e62ab07161ba674e46c1dd6d77c070114a90eba94a212e4eb5e6fa62084418afbc0febd8224210444953603af26d21ad0a5ab8812044dc9522cd42605556c501aba406089bedd703ed61fd3df829ec92d5137c4161286ccc43728d99b2b5d2f014161e273238535661a0f1277177a5b2f86d71acb3cbe1eaee4b78d61a6cc400000000000000000000000000000000081319212427", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 25 iteration(s)", + "msg": "4301000000000000000000000000000000000000000000000000000000000000", + "sig": "5986c4549caa794e266a06862811cb2c44d93bb0ce32d7be8957b222eea8a487e8ea7ae835d09779ccfc38f48f7988f828b7b26db80d5e391c6e19ef4e190bec207775b5f0fa2d3872c8412a895d57c490c6da737df3c7f0bb2fd62a676f1a78389efbac474f277c4fa9b08f3dd0a82ed8876e3fd7a3b1614cbd5f0c51538621cf478c27ea39d6542bcb62338015a4098b7aeb69f0131cd15ad80e7e797bc327c8c20139992d49a66a63ab341a17c080db529df3c30aa8d76043cd781b3f6acfe97ec231db5f026a86d5a54bf0028a9c6b9452ee01dbf7ebbc910ea50f8e4480dd393466c8def5943ba822a67e7d5e20eb92243a84774e838924d7adf1e45c65cb85383c653c1864d51663621e3914b1985868f50c7fff42e04d57440d5aecfa221c477b7175ff182d461448e820dcf7b5f04c132a8194fcec3d4d02df24db406a8782aad71d7c27bf81e2cf4d11e23754c01b3dce63417e9d812fe5004c13c97ba3e4674b377c91e54c707f15f0ef9f131e8fc875d52b696fd46500088c3925da2ab487a6869cc8597ce2336f6e3ecc4fa42cce8c24f5783d52166046b19c661f3084601723196a65bcea4930a4814a99bf26c48f84bc810ab6829e82351641f21082b784b46e2115a08e32aaf4dbbdd6b9a5c72107f405c47d0cba1168f80e9842d4e47a0dfdd42e18d500e1bdd573fd4e4a7cc18f44953ea81d94bd1694bec08e67ae218074c1f179063587a65cffea71e385ffdee9a162fbb113d4247822e46f13ebb3462a394323684baf59bfa80cd0a1209759fd39f87a367c19995b92c7ef13216a39d0233ba66487c1ed46d5ffec611f427abda454f5be5e34465481898ecb4912c1a68067c4aaa33f525911d77e28e9d764bc1124a5b889fe928aa090f80e41807756541ecbeb620ab4d507ae30b17a684e2a18af0865f400904321a9f736fa476aa8c5f7edc4ce3d883c197fd38edc4ecfa26ddc86653f13fce2eba247df6cb818ece36df59ba220b7ae5cf6059eb23013a88ec4aad41d4264d2814921c9723fad5aa4393a646ebad0ea1dc277f6f131513bb77987c9275d9efee0f593f4126b490c1157c72d4de8676c748f8ed5b8778e5687e000569802c1273a52209d93b6de376621932e9743857017ef1af4f313a346c956b2a0169d4f3059a7ec5160f5485b8f00e67d04d36294e5f4514251c5001eb8da57398fd085d9564b959d4e2480b94b05bedd937a00fe713f1e894ed76ea0349b79ba0343db1761f23216ce929b20ff49cbb7cb2cf77d1ffd2675125e18270e081b18c86e811881695fc9df5f17842b1fae833dac14e1b10b32fa8e8d83789949aa0c23e46202453d6836511e4731dcfd1817aa02463ce1f175aa3c6955cdbe5c58d970dc0d58385bc27b2f33beb6eb638fc9d8fe285006436992d96948076b35a6dd50f97fddc72fe9342408841a5aab7893183d465694ce956fdea8f7539c4412d80f6726c2d726b23ee6efe01bd520ea514fb751aeac7767b42927ded102acb1cc985f6d371551306126678fd6cb64073683295cd6b84299c3ba36a7acc6810e4732389408919db59b2acf0f71178af017d114d9d543e72f74e0a6042155a34e9eb313106428d15f753f35547216e47500d3dab9877e0d8a8342606c4ab83e421c01389087f7763f7f5ff10c600c2308255701cfd04e63cfc435cd1bf1b24eb8bb8a6812d6b38b7fac21fb67b892e04bbecd2a8433c0d104e950771b2243595be35423833d46a6b28878cc16a033385e6bf6a94a4a6d1d5518d538fcb475af1d1c476401edd05dee0b014d5ce68d95a06c8a30c68d8d33419ab4843478708d938af757da39d45a7b77f79a8f8a2c944bc95779ab747d555094f1b04df45dfac56877377d5483b56ffb1ca69c4dfe07943b41a4d434a7ccfbcb64a374b61af0bb203800a10255b87c715a6366cb1b6b5582135e8703d64235cc714beecba43e4f31cc920c6bf59343d5e78e4235b9acfdd8ce49fb38ad74113a0feeb647f7179a33299b1a4bfa60af1e70ebb070dd07d33aa793e434c9d7aaae98f018e72b1ab8788644c4fef6b0028a39c30da55187e183413fc79ebe18a84561c15469e294900a74494e58339972508086dace548868594071467360f24efec75414ef502e5f389e4411150672b91f62984dda1b4760de4e738c23f95d9d6c56ebcb316e4ea71253368ac460e6a754faa69f2ece3a13c36dcbeaf142ba85cd506e30877baee307ffb945afdb387ed02399ff21aa9746d850c5637a937cbc6c3b03a27142b945c3da9839295a212d644833c0d85984cb5df2f7f139da90d66e6e73f51c9c3ec8ea590fefee063abf28bdcd2def788f25e40a7e25d01c11def224fb2a42b880f725e1cf2f8c08c8e6b3f80c90a6020ded9cffe0742f82d55040eabf0af6af911c336ad92f944480f46adbe8b5db18d6b34a3330bf2c50a2028f707d9bda1fad9ca620db5bf2037415e07d2d6b7c73bb0177f7a1bdfd349b87adbc736bfc7db2613eeaee51d08322f20a0e683af01aeb6c1d9dd9ccded7b9125b8458f052e7998ce4a62612b815f5fdcb8eff33a9c72d6e1b4fb35b01554d6bd287c43b8e4e8cc8465379b85f84176487fe89eb43b7c7042d7c9c1bc0f35c55236df89d0c186edd0cde61869489c0605946a936e90096e7f0614a74265adf8bbab764e968996ff759afb9603c359c195d7f725eb06701a49912401ad296d2240a6467a80a7fe2a440280eec32a300b2438b08f5152376c25550d0dd8e8237742af59c85020b4757afeb91aad5db9bdde9b7031445ef56956963cf27470cf5c914e267d29a70f7ad5b9c76d281e5a284db8a7d6a69b8bd626e47d6edbc7ca0bdb6df8192a230d8be6fb19193add1bd107d395dea7dad6f0901748a0d6ba6bdacfea046187f0b60a2f8b922059ae9565b6a20f99ad9b107c0a287e2d5c2358d7597ea4c029de58b4f13557df2012bd8f71a99d924947672866965ddd930abecfb5e5a4955f561ed9b7b00757fe8c3f219e7955d43f1676d544f678e3dd8f5ad9e36b3ff2b8ee15272924ac8255a53cb9a9e9202765746365181fe5ae49c96dd71f4c3967cc2a8bdb9a58f18ef1b8808e3ea44f076f4ad2dda7b2c78893960e844d3ff18aaf815286e5a5c04850848c3f25c0aa5f87fc0d62d286c0ce82f51c6e69ce0fabc3b862cefb8fa616cc46a1e34b3f893a4ae9b6d4de83c7419748c35df9841099ec8554aa5f7f310eddbde6cbbbf04f76336eb47fe161246ebab18bef7a9e3532c6a9ce0e2dc73579fd6cb1643f6f01c465ee4ba1d7256130b99e0e0f2a16d457d394d4e763ba36c918690ab354155d2fefda366cf756044942712cec0fb1d1941043dff020b16b39dfa77b064b9267de47f5d9fd5da780c173cbc729f17e44ec884a63b0eb3ac2208b725db57b6701391ee8d3bdc94f3a3664b5c6ecd2c166d037c0566473443345953646b9de89ced08dea5e800bc4aa1f8ad5f8aa6da89e9e93c2c31b1cb0ff0c9b7b4d5dc9259b65848949effdf6a1970326381c8ae4d039c372dc92baff73cdf14eeee4812524c85090cfe485ff6ac4e8bb5d96596adfa62138f27cca7befde57494c1166f002eb62d32b5705a7e9642ab4971bfa366f73dc268db53940ac5e1f34dc24b9a8996b527f15c69d9579b77b7b6663f2941f45448572aa5998b62c8f5d495176f6142c327217e1da4cff053c607673f14a912d9344bbf9ad5fa7e623ed769bbff53bf2b5a1c78f79e69fbf53fc99c6e171c90525803751b25ea6c9b7d496e8a7b294c3f2ff2455cd8715071238825ef6cf8684bf29bb490a1e3111fb305f3bc87357e7263e417cc7c10cb685077a1cf6f058b1108021f78a532d7c948a485ba35c50249c79add06a6cedb346792b4c02a480a2bc669954c24fb13fdf4cd6b5071b969677e5bef6e30b69e84b8a69c98de885d1d325526c58dfef5f72fccf7748ae8b024d915e14fa01c35e018b677a44babfd32b9555b749979e61bb4ef464f8010d1f8d457bd9ed6f956a6631ca7bc768b86be99fc5d2cff06d66013eb0b128f2245f6f284faed9b13a6c6e4a14c3e4a742967e598a06a119d84b5e3f8bcca18f28f64c9824967b6280cea61326ffa2b20790069e38265a337447eef2f739365559e96032d3e17349176963d9a05fcadeb86013c5869457a182f4a95f1bb5e4c64b640de8ddedaf516f7d80afc8a08d1bc5c50aed4e0fd32e2e3209958fd814abe06267b879035b05d251fab57c104b3fc4169d090b6830e2a64a221f67ecf08122f91d638d0a53bc211c654ef8162e625d75ed0a0764189312630ec3534d16a33d4e55f95fa5db64675b7ad8a06596faf5a8a47f8308b61cf16aefa2e6107cabd21524711ef971b77a1d4ba8ba1318d041aa7351324895ec6a45dcf5ecd14151d6b00ff611071cd686668ed28a0fb77f4dff6095aa72d7d99792aceedc33eedc40e30260fe127bceeab8a5c1e7edd27d0873fe1fa7017cbd9f3757fc5d92676d5f7e8ef5e85827be2ef8287d47403c68ef0c369ad5caed8bc88089f34f84e69f79309317eb49c2f34c74258c711181a425e93b5c5d7f308103a626d7cfa0f3d6b77a04bac00010819b2292e5f8794c500000000000000000000000000000000000000000a1116181d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 26 iteration(s)", + "msg": "4801000000000000000000000000000000000000000000000000000000000000", + "sig": "3a274d893c34e200720af504ad6cd4b00d7a534b6af57ba65951cfa7025ffa7004d07669533fa01ddffbdd752b84d2b44273aad42294a90bde3252f0c755fca0d12d203522874612dba90d195d5ec83c8bc6630671d7ca2a0ca83c89385937c5d4b1a1392df9a378ba3288427ee327b1643421695aded6f1ce3fb11ad9b4cfc5cd0720c9b012eda021df8039bd2b8d5f4f6f78b7995b0479e515faa6539e2f36646f35b9227fb42e23c6d49f3bf32c4f0d509b6064d5489faee9b5409ca29d73fb0eabc62e23b1dfe784940f7ff0a9560d4d7d278d41c22cdf07be384aad9232a17a59f401f3b768403f5adfa4a3f9b1085f09962f2a9f0e590a2432140fbdf3a416b45c8a5b206671e8121cbdbbd89bb35bc8f900775cc7f9c636883e9a3bd1c3367354138dd98913642b934e6189d1ac221cdd7030833c5da24c70de3ee205b88ee357132417e35509624afd510b73255266b23b735c9292540e4eaef743c6f30d8844b044b527333d2cdf16b37d1f1b81637727b1e7376ddf58287d01da6d000371428cdf431995a7bd02ebd9d59f7d2a1cd33bc33026446f4a02132dcfe734d5f8f993946ea932f1a4648df1fe0d76db2f613b269d908ca87a12a3948d110b6bb2048a1780c8bbf6cc5d5385df362fba179ae42a10ff706a106722b41bc17c56d6eb10130d31b5bcb715fd6ddd7aacb536365c5f5c8b92f29f8f5d65c0c68f382a7df50111707628cae2ccf7913174ef53dec3d6ac7111c1bc40264d8e367c4f42ed57cffd874cd7a5c698fa405ae3121050e302da8ac890ff3aeaf5e388e95023d082e7ec4ce625fa3340c9410499c9e1709cb4058edb31ca1f723626290c8912897f73f8a475a3f06173202c154e33812135ac26adcaa585c72667e3c6f20ceb1ef978815d4907298d1821c7a5fd76489ad83c118b38a9cd9dba5989c5ea00623c964dbaf4b6f072b478fe1b13b8f1ebf4b938ea8b4bcfb868e8aa43211e73439ca50e06d3f5b2d9a2a638ac113ace0d1cfad0cdaea234921cb447be52427c9726f581af29c2046e9a4e60905910de2194a624df7f4285ef058b430d9803bcfa83be0b75836f317eb6ccb2bf32594a3ee2765390aed29070249d1a899fc5836187eb65685867efcd75e84948769d9794686afa30ca9500a636a9a90f12e2e09f2bb5b716a5d970efba2dd317f9e0d5819db99f0d041ccef8f5df8490ec13854eaed2f86232c10dd9b0914814bf4b68679d11d2feca8ad67a3863b73928ca8fc2e4c00adc5ab81ad699c12a592566e3e13b5f814e43be38e32d6973f68e7e5d0cc7479fa5e937c889da2de8763c1abf517aa5fe879159328477617980aca382dbe22831a8ef278591aa3e9e9e87beca16b873724d500b03cdf46eb3be3ade2a3698c1189d376fd79b62f3f491cbc925d04567b735d43f8f622e2e7520ca8b9345bb4e5163be6ccd63d01553a148581e1088eb666bedb6cb0d3cf65abe30100bc530fd1ab6aa111f3780aae419e564c64ce6253741fd9800b84add684500d3ca1becb03832b3471448c1bc0251a7e1ecc84928983863bd2e6ae09a5840e9b9cd74ce6b40e78cd5dfab8755bf36b6146732b599836fc2db9af2688cca570c70dd7c7fd4041b9a4c8ff98c7981b1d09dbd009243459864ff562abc1512f2f844713e3bf883b2710c3595e570bf77d180dc47df51d79d505ec4a9895059d5d3702a93f5433985e1b51078199743508a398b2ff73269d3a566b2dc64cd1421c5a7198d544079ab4906cb35c596739e5d7e1f9c212db2278a1dfd2d1c9628f5b59cecf15b6145779e9de4ce43bcb5cf880355365e192852fcc0c85d39db6c5052633428019a50ef7266ab9793f9e800f1455f1fd77e2f90fb13e84af7ca933a65a07740d6d11506f650755dd8bff8d34bcaca2c2764b23d749c116fb2f2688e5abce0ea28f79c6ee013b904b28698a17c8d012e821504963bbb6af7567b12bad96ecc3df7a69d22cfba305291e7b7bb6466bf179a77b8d2481917eb491ceef67cf84cd63b5bc87b26441108b03c8126813a4f545e23cfc0f285152cd5f2f77b93a000008c2ea142681ab1b9f7b076e61cae8e93bf7759a7f2bda2cfa86b9eba74b77b03b53f13f6fdd96681337616628e06a2bcddc4b4fa4ae12c0171063229f1eeea4f28e2fc26a43bcc7318edc608c99b898212c3b04bf85b33abca45749b87a76e2240b987a63a29d29f01c78fd91f3240d915adf41f2b5d80a848781dc060d0ffa737a0c6cfe5b453cdcb2a50a39d7ccd58565a3b6bdb2823cf9d7ec1a204546eea31a9db531b51214547d66e85e590a663f391b0bfd0c67a2271fa5fa6d419c659b76a7254468e80e78434b786b385c91c6f9fbdfae0b1155b87a708e922a0c82f1f0189e9d953deefce4f139cf6d0a8bfe67cb5f6cd44627750c79f54cd0e1272843b5d08dc1e192686ced88eb3617ade45516159b39c6aa65d197dd4758e3b290c17b9112c04c368ba01dced699d28de4d89395a49ee36e931cd3591d3db6f26fe300309ff6cc1d98e0d7f03f30a3b6b8832b77f31f951d89757f1d789b47a87715718f97089df9540beac7d7b05776e30451944bbe9de43bc7ec69ec984301a251e9adde7e83d5c9df050d063728c6f6bc2c76e8906eaa87ef040729cb00aed35830645c81d1a39a1e77bafa6d4f06b415e586c42b5aea4d8e6c6a2061ba0497f7c93a1df188b2d79abe9b7373d6f0f63bdef5edfe82b37a690fd51f0b044cd3192455979a768450f7679e86ea1756434fbe3fb8003f376d28e666fd4728378b316944cc7899b07a01449d53314532ca8fe04007f2c37a5807a53468a433d62aeb4c138ce3f9f33d3ed548e408e7ae0da25b5180a6773f0037422d7eeeb0b449733be27a6ea43f26d101b74fe47be2babbb8925df95e6de1498069be6d067f232443e11daf9b8ad0566c923f444fc7c6705a3fd8b77fbb2ab13b9a7492297d6a2274e4a3ba46efa965094dd4005b0d9a32510a6ac9c172f705c26dc81b702d47166bb8a930f16f19419dcba6ae187ef91d79fad465485aecf38a801b8866e51ea5ff1d93991c556de9d91867052b03ca4ae4552e6f0873f095209bf8bbcbc64dc90159b105be69d436b7095fea150d7fdeba96746178e6052105b11abe7795504b078eb8a647af1f5ad3d2186282ed2ae7886c40955b93448036412ca7dc49f2e562c5afe8694525711e7f6e49b2515e5a87c480479f514f4bae5119ac3dbcd730ab3c3f2f06d3fd81a0475bb1eafe456dbaea87d2cd880c96d34c348e4650cda3329f6a082cf8db220876cbc410d0afc945b0c059a3cdd28e094fb7de858a3aa75fe3f344fb018a121b26d14b970167ddeb9d1eb3ee53e32f14611c05d6641beaef94921315ca760135961f182d1747ab5f66933945e1147ba4e2dddce4bc0329f22ac00ada5d4d311125831a98561d21331e578ed42d0b894597be1172e7261decbe9ffe0a4420e2a031ad2143524c3ff272eff4646acc7eb60048e99c733c0bb7a0fc957995c8e6656183f0e0e1ae552dcd5fa7c8df4c9ec37180a6f4cac16366639fbe2395257629aba0715ac791be689d8560779014b8348d271aaa91073e5f1fd2bb0be908bb68991dd59443d23dec0dfab6e0b7cc659bc73dcab4f708c48aa53b8433e787f80cc8803eb18d6647fa629dee201e64e04be60d32f5dccaace5e1e2fe6742aa695c06d9839eb30121cf5f145bed70e3f191f26abcee01a6d3de849634a4466bdc57dac8e766b9fa66c57b8412df00d34f586fa9c3322a8847bbc0cdcdbc6eba26a3d88589474bd928aca477fb6a766fe375e224ee54d17297146593adb3677c7713342f05059c53154b67f97a4cb949f5911ea2dbe43adbccfd151ce69061693d51aa86f651d981f8a1221b8faf9fbb9dd923ab5fcb7ccc625a2984d59a644c50cfaebecfe76193f69b4e1b410a607418cf09e268fc4529cc8b809bddf0c594f25248d09cc3547aa87d08b330d4f783bdb17e238a17a481fcc1e1a38676ed2c8849ec96226bc24e085b66fcd15fe0b5923690e80a4cd198ac10c8c07af0688d77ce0125916fec05aacf2e792c73fd887ce36b007a650d4033cd1e3ddc5c74c2f9b68502c307790184ad1b7dd2ae3009b155f95253a480f832435e8472289ea454d3762c6551b07335137872c2feb4b824211b60cdbd077783fa8ee0eb49d506a37d77c4606c42d27d6c477d20d4ed89249ad3455d4fdf53fd4122a82e5114cf246dbff360e4427704a7569c26bb477c82731ed984a52e3368f7aab7df25a32c1932f4981a27d4e82e0b61830b238e97e7e601abed437de4a9a009148e865cfbc75a96b14315b1accfd252e1d661cab2818008e1841a5773fbca270756ccd2166318c553aacf82af9504134de4f3cde8992c14c0fada09364993e7de7fe42f8b54996ecff54e722b25fd51df037d4d3493ded04f6507c1aff93016a49e1e0a6e0da42cb4630a79c5aeaa61ee291ecdba09e1fe36a4039fa456781dafa4defa0ec2bb0b195cc0fbff9054fe4442404d111a7a8fe75f61523dc720347fa80816d1280a03c9415234996d4f41267688892b5031a1e344ad3245086bacbdadcf007185c6d95d9dddf94b900000000000000000000000000000000000000060c121a2224", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "signature that takes 27 iteration(s)", + "msg": "c302000000000000000000000000000000000000000000000000000000000000", + "sig": "2281ce37d3d0d0894dde142b097455d69e4ac08e358f921dd86fe71a294db8b2732912b1de60cecefc89483393815556dcccdb912938f8469aaa536861d8c3d315b8efa1204e9c7022dc44490ae1fd7e2e9d640b6d0ae8a3a3c01d6a5d0594a52229c8a7028c763f688d3f72e3af83d25a01cfd3b6a7fc31e34dfbba78ff78effec007555ebf96b4d9b14eefd1bd19c66360bcb1e5a77092f36e2d749eece8c89050003630fd0c558bcdea939a53e61ce80ee98842cdd8afbd8840356817731fef575cae80b3eb8678d9884ecc66846c625d1f2d617d51f1fc77fe8bffd994a483689f9f5f05132706308448a3342718d487604e5006d46058fd1fe9302410171f93c3293737e8db35aa27bc901cca074ce2e19c4dce9d029c36553cf92a1500612b7badea5cc4e20389eb01b854dd547850976df5e6d9f74a30c7ed51b2debf80e9e379cf2645d6afce7757c449ed673e12780e2cbec4aaf1732e093b255ebf8103bd41be041df5f0a18f13c8f14097e8f998dffeb55269d2c7f882588e942eba0da32a3a5a193f7d18921ea5c82d7751dd939a448c891fe500efa06632faa47309a8734fa2f700659b9db7037320c7c00ac9b68f1f7de71457289e9b8290d6a203c48c21437aef6adde8ab2cc43170e65f1704aff58af037d422d1519bb756beb6f3f4c0ec653865a354658f305a495d34f183b5e17bac2ad98bf5246b440dc86758aa047f02aed76fa5f27935b3bff953871cd3de843688b13514aedee789bc8ed44eacc66d5b8d6afb80890fbef7c6bd87efe597868eeff71b92820f353ef580ab5e57faf63a762581ef91f864c99dc34d7c2c8dce0ec103a61a443e0c6d78cb03788974ba6a2a261b31ba71f3db05c2c39fc8634fdcae6498c46fa37bca4072e1a0b2c67c01a30b89b944e6a7d2298504b1adf2a5cf00d02efb14b2dbdd1839c935a3620e1ab8dc1c2be6fd05a79af94943ef98b64a8c86e47e3903dc84b7ae6e84caa9b79f2996a015ce6a4e3d7274d43fa71526fdc4d9d9d364d05a2f7f732cbffc9f80a4e5268f9eb57206d380cdaf39b2d64a54295dd31a11ef2f2f4828f57ba6af8ab69271060e25a1d987231d6692bcd82247727a211804879219cc981c1ff6cde51bc630b698e767107fdea768ccd0efa2c1e307bcc32a6ae0483f94a0cabe09e01e2edcfd08445870150f2980d23bad7b5187b0a3eef6e6be018a09b67a1cea314e588c0c41ceaf53206859f1712bde6f2e8e7d30209225de2de928e4d42c34344388feea70b1da1da7b0951e0ca7acb239cf95510dbe0c3ac01187661f2ee604f86db26abaf8113358ec1fa976bfdc0917a28837f63a1d87b95bbffd2266fbd2c50cb6b568782049627731865c43d9a5b6f637927044a49bd7c99efebcc7a65e773aa8e846f4c793d4e9c193ecad8701e6cccb7045b81b3788f23b1b523286f2e6e4c570f2b6c99bbf14d5a79a0faa9ee55c60c4e23e06e8eefef6706babc9a2d0dd3b81c2c8056227d798c8a55de8a49af91f9bfcdeb8683a31e576ced44da0efe91d20f4d15b1c14cf148914b6ea366f676a97f60680e3fbecb29e34573da9d100aa525760eefbc96f9864ab360623ec1f41ac55750af455c0f24d463c2f8b249d49ee2fdaaa7f5c54c9650cf1e94de0e56f04ed2e1b0a02488a3d608f31e67919481d53ceacef129e92b3dd56b199ce2b7df00abc793d2ee82694490ed97df05365c6205e3c502ed9b8f712a9862eea823514fdf9d7b2fe4bdb9754f1675c5b453a4c2ca893d584a014615309d346823169f732fb4ca1c1cd84ac527ac560c9fef1a207c9f35a9f898a06601a5b910971a3319f6c29d0b39df7ffe09ef464a9dd924b86b641a0b66432aa964c94b608c8681667df08027ade6b013173956a73a6787c95a13fc753a7d4b2fc91206c864be82382cc1a1d4e4c87e0d1d9a113bbc39f377d3de28f63df010df89af0cc3ecf30546f2435adf22fa43166dc24f01f441d7d97c235c5dece7108e3601f878b1c46c2ffe75363bebcd293caef5c4b0eb88d88c1f340dc8ca4cbe5552d9136ca1e3d5d809cdec4c4150b86e75f02d0189565ed27b41efb8ba982256bb38ddd04e61b3b77405fc5e5cad0b0ad58a009b68cd7014fa45ce704b3fb295d2f52953871a6ee94fefa1967030f2ee1d031f826ea9102d1701136aa5c81641e2a6afef50624785c8c2467e76f0f903be8bbe2656fb92691cde368c3f9a6fa870f50d977b8b5592922a49c0ae14d82fea5af9b2f7176898869feecdc76b6efb0472a0c24c0e9a2a2970d74d8f9dd1568ddb1a9c7a835e33332236e5065d72bf4522d4b18c7b3d14295a5986928d7f74ca8b63dd79f6fd464c5e0cbd98ccddb1318eb9738f32ed2f1c3b4e929e145accf8502b8a4f3b8f20afec1fe4cef9438ddcfa55a505dbccac90914531f82d2aff47976b8ee1e20f127478447896b3fd2c1a35be09ca69ee75f9958e569b3f4951149d32de2918fbbd3d2b5896f50961d35fddf0517f597c8273fde3712c6127d35d640ea580802ab2b5709399df4ba0e2f2a5a06013dc6779373672febf0381a25cd2924ebb597b03a1fa0f22ac14d77a524c7ab5fea1ccfdc1d55f37252121dbb050555508f9d9fdf0ec12153a48b12f67b6c95ad844a199a623dbae872bd052ab47289a3b6ee103aaed7755accf08a38618ef4d4669ca931d0e14bb8e9ce77e54cb61ed64aba5300105a85cd303bcfeaf167663aceb81eba106ea896094060945906bf4dbe038826e1ad58d1ed44796fcc7a464faddf16a588626f658fe21a526988e78eb129dd0bb4b645b2cf85af83722b4385f535155a1a61af0e6cd5d009f37621b3393b67fd29a171204848cd66797dbd3e43c088c473c26f124f7359e09c75e55bac5b43a19542309acc4b0ccf961cec404635799ca8516b11c5ff7a6348dbf0742a1267abcc48235bb95835047c74cdb1d378351f283e07f48945c7807fb7820564ac2c207f3ecc66ba24188dfb22801dda9b75b308593ab2f96e86c4af563a2c355f7e153901529e580edd95b7ac8ab3e1211519f99a91dbec7873b23b18e776a2904af31fff2e8e100b13e777e5b17f8b35903f9c9558499a1f96a8b8c9f1ac5cfa676a194d86ccbf94eb02368b781c301ad6560210bb28b5173da3a447e8a850279e0b65c828dce1c8e7712973f8a08c4159a9e15364be3d2147896b1a1ae214826df8643b4e573f2af8e6302c2551989ec1c8943be72abd2be35c4ee70fcb99baba7ed4ba46016f24d490acd4bc987c2c434b1dbd8b39ad1dd2004fc7a174ea59fa2f2db6bccbfde2d208e6964b128773eb6eb6d1045df96035c250d56381d451c52503b1f66934d87d449179979e4dd50c6274c1bbfac72161627b288029c5eb70997caf11ad6fc3d46814b08aebe28f40dfb9cc85f4056821d9e159ec9c4dcb586fd8c0d8881566669a8a961e7b40e4b83d068fb80c270f42dcbca2df7bd6ce6890e9024de7bde7603432253c14a0d057ad528ca4f548012dafed4b3174d851e4d2e5c6c168c2417003755bc5a8a445f3d38659c715ab6ab977f1cd13fc9c6f39dd2070b1cee3124ffbfcdb98205a1a2b88ae3fb9f245579bcde9143960f0b897a478bdac9a481f1c53c678c64a84b0fa3240177894de0c4ccbc089f14bee70f762e2480ea9438cea2788e134f0ab1080e34f22a4fb2ddc9e7da057bf0c5614a175022f06b5d126938d97d98fec87c0a917e455b78f314ee56de3251692cc3c2d9b243aa149171a62bc7035e90044dfa0a190773fbd4b00fa7e24447dd5d5722369a74326f29d48c589a4f16c92dec9da8586b1d4af66c4bc0da57e2aae07d00f9c35f031be8256b2beda0bbf06fb22f3da317b4cf22d81e88c050de9a31de6da3ddac483c49c8bca2fe25b6eb87649e107dab2c9b061885ab2a4e62debaf453b683665e7c2e8f3fd5d22b1d4b780cdff2a26b31792f646968e726b9f4708418a60f3f57f9551b9cc7cc68bec0866a294edb9978375241345cbb6bf577268a906002f9600b7e845d36ffae2c7de9d018939006302edad2fa860a4f25cb4a90308d57572284f97a7050b8750b2e02c2f8a9ad5377909ad117082570c9a5da5f512503d78c60621d41964bd12f86c89ed9c74f586b50dacdc4e52b039ed6be06c568782d9049bbe992cc867894dda3f3cb593ee9fa376a3121005b562ce8c7940d4d48960bbd95f77299636e4f1bfa4ac40bab82bc4971778faa924b6039008169efaeeb1ce29d9e44813f22d44b18485ee0a216382d0c83b1b59e34b2dceb294f9ca6cc848e018c89291525be0920f827033b5d9857c3b12b6c6e65627c132c1dc2a5da893860f5ccdf9aa2dc2ce09c45d7d1d4ed55c130bf5400ab60683ed1de5db819d42a199788dadc80e328324f6852c6021eaebbda57e276650c4d06ab792ace94f5cb32b92c40ff5403efed4b94e008ba6dae1141ad079791a3570bfc4f6770fab3fa3d04836ff06ff4ca8127c68090c36810610d960d356568cec1e66ffedc01eaf875a49baa5e5be0ec01ef1849704cb09877a2a80c100ebe7a790545e268af2f1d70b1c22375996aeb4b6b9bc325e6f7ff5ff4d6166758b8f9a6378afe0ffd8063e3f505ab7edee00000000000000000000000000000000000b11181d1e26", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "signature that takes 28 iteration(s)", + "msg": "8f07000000000000000000000000000000000000000000000000000000000000", + "sig": "17d5c276a96ec04caa598377bb8110226ddf85feb0dac0f0d3a4bd5ca33fb40d8cd5d752d889fefa66c900bf6e909ac906516c9e813875e758663c7fd2636ad3fc89ccb7757c0eb799010367afa46a17e113b16d546a8f8ecbae132efc625e3bc6054e3c900a174b6d47b3965b3178d3b72b0472f37d172ad579de128e19575fafe7ea64ea116b63fbfb4d5b5fc956bfcb6928b8db0cc7c5a889285237fa7057b3423cc7f7b950f834f7e4a7b168ad00e841ee13d382462df9d5fdde517e759d16e48963f60f117502b74e97f680bcb4ae2c35af009d9bbdacb794edb131715470153a0eead1cfeac73f8c8cd157cccbb17cd1386f65c4fe09097567794e2d7e7eb3c358bd8b2375f8f9d0f32d28bf863599939ff8fab29401d6acadb1b90f2bf1d9bc26221c67e78472c7ca78efb2b4ea49dee8489c01abe9ee962277c34805c024de06414c4ed63370ec5090752a6fd19cc36a50d3f714ad58ee060bf67b6f4f988c35d5cb1155f702311eadc7fe25ec25adf929033679f5d0058a45dcb58e8b4079b374226e26003e5bc5f76eeea6fef86af3ae91f33c8c359e2a297a69a105817c7e67a6a00a4d8aa31fc848d8c4f274b3b5ea34a2817b515a2050ce80bcb0c21bdb81f0515ee05633d94feea1de19534ef33da85e5af0d4fb0e81e4088a981392f96f70dcfdf0d0b9d308c26120e8342f8b6107cd0bf3553554e4deff879ce152425e4eee9860025dc4ba9bb090971903a0db863c043dca4e8fe35e9a6b0bc26129e18b94935fe816fffca11357af56ac6c837f0af36da11e4b43f74a0ff2ed62f18fd5c02c7a064e649031c2d8f22d6dc1a1b94f39d3065447abfd9714462e137bb92b720091477ee1c1c1666f4b92d6a8b61c70d49200c86e8cd9de65b209a262cd0c6e6774810daa62b16054d6e18955e4a92d3015ffffc7584bd5829c040ace9011d5056bc914960ed785b2225aba0eb56346aec0d7bdb1a3c73d1e39c2a395fc874cc56648951a98549a04eb71d30e38a90d7e545fe92c82a7663b10f761eaa01e96edcb799fda895f9fe14c3d0ae4922f34a89908cbe60c107bf9d8055e050d08cdeaefdeca1688a7b26e2ba558650e90b24306e575d046e1f3ee2d9c3cf159bb20d711d26c92c11735a50f40184c97a2dacd02a1acc4abe4ca286e4c599b4d4b5674eac6cdd4e472559d59a13dde5d4feef9bc47d76875790c8036dc29448516be1cd56504e97acbee7cdc5273ed3700aa7f459e1c25efdec86402f181664e764866d8eba3adf852b83cf135ded54d0eca77527870650da0f2851bb4906320808d302feb7e0f9db7b8cac98a62a0cc7cb97e7f8a7ffbfc38a477a201719d70172e59e8ea89c482e61633f9a0a3cf672f6217479958aebeee3e6f06ee8ab9f5e9d0523272c5164f1f94a3711b3e681ed03c177a692819ee56da4059ceb171af119c3976b197f005fe8622e1b4415f358fb34a73215bfbaa53886ad84ff57ccf42b7d57847a26234235ba0b722b89f9963446d67dc719bf8de49f4dedd4c516dbc1e1d74bfdedd36479694a9acee7dcaa7df55f978d38da1d183bc9c0cfb049c9f7da0821be315b6118d3387734922723ba4919fb703cc2446bd4cf30c1825a8bbe7daf08219ac5c1a3f897cfd7f66e77de3d0a0b7b73f1166d770b9f7c0c6d41320994aeb526b6ddd4afa6dd10295dbbc5082dcd35e43ba91dc972f78665043228a14d75cb666e503158bfd4c668a29d358a5b2e03fa1cf5bf15aff4890813e52a2358ac79174273074c118b63cbd1ed85c8c3e9cc7ff5c1c9bc92b848bde3a7bbb74447d430490b6bcb86158120479a02b7ac3ca61a07d76dce2942b1fc09bb33972695c0172a66dd4fbabe80e333dca17aa5806eaad072f4b17300135ac118f943dbe9041d4701b424d1f88b27b8eec8308a5bd153f7949137deee238c833c57bfc12b87bbafac73e1505d0e92e873d53772f29c7c3a2e6ba4e11f825d631a9d1caa3e3f8985ced7f49235bb907c2074fc368b77bc90b6d1e4cb987088518e054f767127361d2faf1d5feb35cf9210a92a4e3ef144bcd45dff7e2c2757d472d1255549db29fdba7616f9f9c0c472c0f4349588f94e77f8f0cab52a50029b93c3f08473f512a27c319d45e9d6b52cfada0adf2dbba6db96b326c3594f16880913cc6c1b3be8f4953d95ae5096f03a4a1224135e2bfd4b5b429fe564405dbc2ddf004f36bf633e977887915a44105ad2652fc17c398fa2e7c0eba0f69fd98baccd64875dbd5f2fc660af49a5b50dc831f41890872722d7cdb906879e03ebcdd321a0e81478276733bc121016df6c9a3d1a574a9dcf6ca489f4c82058ed0002c367c92cf87712348b7c774baacf10c778db313dc5c83b3e0120ee369780827532a52431faf43b03585dccfe97ab204c33fb2b98c9531c95f6be5ec435b0a8aebd7ff4310bfa221be76283e7534679917199f616e0e05a49b382cd26a4baf0cb0e1053fc24bba4dfd2636680f750c9c69fb34481ba0f62d106937ae7959604ad554fb2ffe53fdb926ef5a589cc21e5adaaa7ceff3e2a8ea8606eeaa79a05c6d9fe2cc674eeeae2a13cc716720472b0459e8fba3f0d77d60ff3e48f08479deaa1c098547da855b59fa12338baab82ea960184b72da4adeda15666610164743db8701f2b6da9dedeb2a147cd1e4fa5125e8f72ef40f14c88f73fffedfb6ee327c8e20708dbc0e4eb8b7c969b11ef8ed3b63c55027773b228f08c3dcd2a24feb716bcef64b5d2d34302ad721f6cc236c6694756990addcbc0d6d35a6e9a9445de640ce02ce9f2b081f09774ae09fda994fdea5c63b7aaa37db7268c56e11898856e94768e47c18272285050a1c182979a63a573c17b747c5393b8ab21dd17849a00889c11bfe28c60d1d604fd716202949adf2bf49db903841f4ab64bbd7af3de775f66f219e40a6a61f5c2eef5377a196ad8c7837b4211b531aed7c9969125994d6ede189f872f24dde4b92eb13f027646ede13d35d02c58f5cc094ba76873c817367805e2169011760e22b8dcaa5755180cd99c7e8318ff61bcb7efd3ce0303ba669419937e0e41bb4bfa960d773a5b73282919dc9d70b3427942078e7bf1706a67ba52f047c8795437d28bdef9e78e95b3ed9545177db31920d138454238759cd45e7cdb9c4d6bbab70654e2a65e1056c2ed98d9c601e13a356ffd254231c867b81b0f9ade2affe15ee88744629eb79a5cdc5ee4e485d663bc72cc1faaa61c651cdd2e9632019a747d1b342b1f493a1395b82854f888393f4f75907b2af70defc62e5087f1f4899d30f4a97581f009caf78a29b20cf38eddc1cd80066b1727880bc936be866ee4a14c994790cffdc7dfd977d9af1c3dd23d5371b8dc6c2a3b043e8f92ac954e7839e1b1934ab04b5f51e8c650bdb4357c2309b657ab2b968430b903c363532c8ce386ea00ea8f8cf9614884ad42098a01a4c054853149a5013664f5bc69c3bf9c237eafb9e97629af355855936f56d0d943333dbfd401a89a8d3b0f6ee8a5c7916d887c73088c481ed8963c54517040846fbba24191a1ed20c09f2cb2a0032e1a68e4a922c2e1bfa51ab6e7326490953b7a5a1197597c7adbeed7b43d6329c9969bad56140b6fe5819e5915ebed1ebe120970639467ccb2c7dc5c290ad0693aeb6ba1a27a416b3e21801ee1f239cf179a9258e9c527b5e52103e7ed22f67789a030530a536d90cd8b6e08f389921779ab97fdb4129d07a3792e4e1a64528131c38463e6d576d554f87207406e1587d6cd30caa6a0de6a7f0254e334054cb9f39430ae1b2faf0641908c09f3ec50ed1ca74f3655457c96b1e29287ee075c219c82c9fd2ecfa53117c97fb46f8398dfd351cf035da70345999dd6b0ce4569ad448f6475f343433848e8bf886b45cf4166b63e1347a60a66e05d76b6489c4c1eb621e50ca52f1cc75a9f9304b6d546240b28c986883e2a0be4113f8d615b522ccc40569978572264d277636e82428af59ceb8c2b175b4d3dfb053cda248ee5ab5e44b51d6865271c9aeee589e2b2b68e16f91be8dea83a5144b24f5b410e48877ac7f1a734b45c5934589d2f5d5acab37638fe9a5c52004958be19b731c5d98a3339df150a80e2c6ae6ab1e6669065e9eab2d2b1b4e29edaa919ed1b1462f02b7da4e651fca499f6c114434e1775afd9d1c44c55ddfd5f7936687a8cd6fd2ae67daf6160749d146c5fd1eb7d73f9cbe8ba3d4f50f98da9e221d2d5284c8c258d12966f6faa422c3872021d71018839557d80c7d7bad4929af61bc195b34800c7a3a18a9935cbe648a383f4872e796b87b462fd585d14e8ff432777c798a431b56714e5ea4a44b1f049435d2e80e2d7e378c97f8c289449919eec2cc8f535fccd6f53379acd16b55db0bf7f4f42ddd3228430c3aa89d632e9fd76a9d71512537b3984f56b11618fbee1a79a5aec4256c4bd2d7b0fdbeba2263934dcb4319c850776fcbb0b9e1ddd9da387241b0d7a54eb16147d0be86ac55c35a5a2222827339f73ead716ade758ff346d3f981fc5e90bf2aae42cfdd059ee634467d09214239119ab494c0db85111333507996c4cee61423264662b6e2195a666f71c62d8c9b9fc7ecf6020858eb4998b3c2f000000000000000000000000000000000000910161d2126", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "signature that takes 29 iteration(s)", + "msg": "2001000000000000000000000000000000000000000000000000000000000000", + "sig": "d3ecc39ab0177953c2e5afefd2a75e55e7795e49c87a44706b7b4964bb9f9255f4b24b92e7401e86f5b79be5dfe9280112599526d7421d52c9d9d49626042b94ee4f2ad3295f4767936029b153c5859ad6c119b9f35504ec3fd0e002cdd67764aadec5e38b11d79d458cd290ede3372a41c7434f285fc4ee45599c02c85fa99b5e0b96fca57f07a494c621530be5ed69598c2adf48230caa2129c470052c9047ea0a622b15efa8c9cc5b1e8c6970b99fdd7281273dba1399a319428f79969fc0cf07785f22c6eda6e768ac8230e440c8bb05606a9cabebfd264d1316ffeb9d9574103a70ab3cae8f22e04c3bf97b5bd293ac496eebf9787269e430f4be6a7591ae1fae037f76b14af90046e6ee0edbd2314fa16ac3eb69d69d803492cb5769ec93fc197d2302fdd46391a724dd51c59229246deab0809ba4f1999c0fa2c85e462c4c26138a4a9f299bb25eca43657a7afe4a1e420faf756e3bfb77900da25bcc183bbef7413ead287cc539f03de4f56c2ffbef8312b5909b87977f16dc0e65245d4d1069e46bb7614034ad73acfcafd64226b692dcc03e695bbc78ece5b1a5926a346fe5e8aeb81a3841cfbe010c69c9b06a0b5b81f772f8ee7248572279d37e325e17e81ae2479de6702df4d4c376be417c859921c7bef00f9b22bf1c3f56c36ff9475eff8462102f79c75478697838b384b1c57f842780a9be46d3c4e6f7c38da187945d283049d8c0278f3237660e612f50eb73b389580f740f05382a732b94bc7f3189d6cfd2de2c6fdc6d7d57de3b897df45c44ec7ecf1d4cec370d87f4cde4ff470ec42df2ae0db86f172b146bfcc00b34d4672cd80b06e74c5b302a7e5fa7996d930cf821a22432f40ca9ee7f3b0799c87ee1c20ffee186c15e73d32fc4a3d77853b0c3caf44757369fb5956158315358269b3c93db934ad24e0bee4b323359e97ba982d78873189243a0eb5d7760fd842fa2c04d52f3ea45f99eff1c236d833bbc8ecd88604b7e33f8981fdcf2695069f10d8de32fedb94f58fb438dc9af842698d4651c74383b63e2d8925211e02601b8642d34090449ec8703040ad0e5dcbbdd46db0f9e2f29f590b6688070cb2c868d41d3ec67d7305ae6a0e39d9383df31e30aa8071e481c1133c8420b3e5a3d7a2681f490039717ecf088b219258c4449ac8fed4c40c805ff4b77d7c28d0b5a0c8cd2d19e2370142a4fda7eb0dfc9a84cee9e4c845e8643c8108cce254b716dc4b562fd2535712ff840415212bed1fd2417279ad11b743fe2895598dfa938656b7408e5b1497fafc13fd12b3fade0d40a0820f81c430cc50ad677bebbcdd74ce14682944b9e9024d681759b4793c246ccb7ca40d889015f752f73f66e60c61f5e0f459bacfc2c413b0c4cf63fc2b7bac814ad822ba4caef6d6b7fd216465efd0cc6cb4b1a20fe66157a8853975b1b2c271fcfedc2912d1535972fd00f4d37a5b08619e0abc563ec994cf36f5a89cc5ca6fb244d283599d42c6a21767442282a4d18e39e31604aafbe240e48fa1d7a89191120daf5df393a9b115e9867c336113c45742a90d1d4113c66891ea46871d822d95197f077e8438ddc7eae6c33dc4013562aecde7a0168f81afaa2ddbed3e2cbb4810859c2fd5a3495213b97d6e5aa7d9aaf6ec2118b6ae7c500ff3aa12e5469f2b58fdc9099eaf8ffbac111b49b913622289c81f6a690c4b3470a619ad960bcfcd1582fa9ed07b2b9c839c78f712573306a9ab454d7915315f1514053923dc53f7fd66cc142036e49f0bd58e708862cc263734ec967d5e4054c3be0369565dcab83c9fab99219aaf21a168e72584083fe2f46fc477902b7954dbae30b668db0507f29d4a64ac358d3366abd0b7a9e8ace99f9b0d16316ea74739dd47a010bd6ac51a9142122ab699181728ca1c381a941516066ef624c835ee0df7e4f202c4677417953775d5fb252bf8ba53ac17fe2f1af324a168959f81567da9e73c3bf6bda37d3d53d9b58efa392b9dd81c5827d5fcab7bb4ade73563a26d83c8a535ae23339820c153f0f79b1f9cbe2b16cda032cb7883d3ae368859ebe159c0be2ecb5b11859d27afbfab3df898a7b90efabdd58308ee3f099ece6f7fda1fae5cb6ed55111fd4d6cdd9015218d830162cbf03b5c4cac717de09dad6c0998b501a51cefb76c4b0199c58e2e316127aba37682de5c04dde16343a33e4e5ae3b6295793992467cff5e8e6132ce46e2af6747f60e4e91bcd7a143d1f42c8e9fd12c68221b067e7f8c4b1d0c30234657b7e4d64c2016148b84287258ebd1f1639bb8c517814fd9992fcca0c15633148d7ffc8c8531aa0bf43a23ccdc423878b58f71dc57fd617c185f62a51d57aa938b95a9fd85c4d2c7da5ddfdb83e14231a1800ccf9e755ec4ac01970cd94cb50681137a8f00da4938021120414caa08fe36bf3e32b7e660402cdc663e8cb4a9392e10c764024469f6fcc3b10779f0cf3d7beb160ca7638b949246e679d534316ee8d61dae3b321a37786ede9f94dde73f88d5e49aaa40121d0ee9b16e8e1c56aac332b2bf503816d6e22cf50d798e3fd4bdb003c5f162e61c887a0c3fcaa35140f3d718a220044f4c4c581db8ebb167b42c2c9ddae5ce89458a0ef92d7e741b1fcd295d49698eca399fd98089a0284c33f13e715eb19883c42af2b54995f17a5499340a20f38a109d218cd7bffeced7a1d16f3b2c4636e84d580cb8c1246ddcbaf1e7f5a52c5ea48ee90b46ff64f91b65379fae27d134b5b8e284237f96389ea2a94c2fda31abe211d02907dcffd8ab33f9a4badd34472bfb22c5afc67645f38da26ad169f699f76196f5e33087e15a38ec615ba6547b38a58ef56d81f84dac75528b5e70c88b2099715322771eea2d741c39047f5e460baca9ee95b2a19b2f5bfd988020f918e6b62e9cd405c95c473bc1b6e038ea2a07d997551488490a15e46f58f8d6fd239cd0991b6264e348e9f1c6cec3348eff7466e7e48e91aaeb9c645fc690f0a89bf8048f67a7d67967b42be31b9d53c5c92dcecf1e16c451564a2d9d7a34e3c1c7f17f71eb920aa8cf51cb609a4af0c5b6c44ad4e3ccb8346f7a86589d05be01ec908eae69ebfeee12d7d05c431c7ec7ccaa0498e899aabebca31230919861e881f948f085bd519407be92ce923ad6470853809bc4367d9ace4b0df2f43e208bd98ac18a77d8fba7fb16ed95ca128db6b52c12d33274f9d169d2f559545e40e3ec97c1a779f04ce772329a4fa09768b9681200ef3b999c6778ff606d6d2600c4651da56c6ed88d0b2ee4a1aeb7ec3cf60b3762ebcdd9111027d3bb2bd07dfdb01a9a551a338cdc3b1cf03ca36c36453eb60d66943953bbc2c10594911e6fba766020fa1ef62d7f2e1c59f7e208c1dbbdf4dc27c0a4495d299d8c84671bebe8e8647ec6a8acc6359380dd15c26d1c262371d9dcc0472202da4d8bbb828a48f3345b6939830f39fa3e570ddfd857f47f839af31fa152d97aa18092e685c6741efb93c04a31d91140140b0f34985a4a9ae4d960bb2e151a629247a79aeffb8ae91273f8860dd817c1760120a571da080f2eb41b4743ab714ca418b4645fdfbd755320d7eba610684648b3c9d25c0abc245fdb86397b1eb1ed4ffc280527e20a6cd7751cfe6aa05c836a4bfdda89ef9a98d947d316feae68be99a6e26819255cf1d20b6f5b8c2ed24df630b43d88da5e9dfa82e980f75f8e2e1033aef4831558e93bf89a103daaae10c963b85a0e2cfcdcf0787ee869cabf8c8ad45a9857fc8d6c467439ea0a0bad13b7989805b81c3c69716e74f78d8c45b105e589edd9f3b2df2b94d79caf99431b85c19f29e72e7593c61e93655109a289695bdb38fcbf48031894ac5e04519f101a7982e3c1b3bca79d49e387043255908e55d3e268da93e07c894251be04dc6ce639df29125d69e7bf6ec910e96b85c9608381e8c207ba05c33dd7b45b43bbd1c410983028498bb9d7a35e8df7e4567a6c5b497df1436a9cfbe0476fbdf72f4657593aaa11abef92c0fa8ceef1e47617abad895b32233376254ee97420970ab413ec4bbb5386b26df0dfe7851f0cdb2537c0a4e184b7b3097884c4ba7ebaa5c11fa56059cedec40f3d6cf982496566a6d29fca2b1de8efcd131889472948d020d45ffda51121d247611bb498f788adbc3b43d893eb37774c97956d438f902522ade3c18ac82ad9fba333cabd2368dc4c438d2479de45795413ebe3beb1ba61589287c55a6f5e07281d0160c0be7944b5209836b7c81dd88935c922fe9c9554f5ad6301d12c2fe3be54631c809ecf259924ec99c9dcc3bbe0be8d5f4846aacc352d56e882ef62a9645a46b0bb8dd2d5b4de64839cea783b86205b81ae419eabf66e5f70074f4ca5c12b946578fda9465008219781741e43c2ae047a2f0bfd54e37bdf22eebf5c1f7bc2cb8988c7d6a73cfc78eaec7dda51d6d7f6377f322f07e98243b71cbf2187c318b652feac32654b4476e9c2a5b07eb9aa7dd5593c867190ee9d896d549347b59619649f01ed617a01f35e847e9b29b3a3d503ef8d89039515d2622c6b1c0237da29b3648faa88d43008dbd466381102c31353b46cbe4effc4c7a87093cd0030f1886a6bad636396465789bc4cae7213643508185bfe00000000000000000000000000000000a0d10172028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 35, + "comment": "signature that takes 30 iteration(s)", + "msg": "4901000000000000000000000000000000000000000000000000000000000000", + "sig": "ae24fa5b2e13f7ee71d55906b8d83994bb96da7b88b98568987fa7ffe9a72544552d227e935844c7b1602ad91fa0e40ded2dd5ea2d25321eb4f96be7a9e167718259e901197df2d53efd428411a073346cc9e57a23c687adcf5864b001237d34c0de91cb319ad3cf698f11fd2ccde9a91aaf2891b30f0aeaa24529c84134076b014b410029cff5d4de892bd24affeedb4972670b12eb3ea3b06fd6c91ac1517515c3193bc2953fa5a9bfe173c5da8201da2fbe320d3fd2569520a16342a30da1d78181bef31a5aa53d2b8ec5460584082dc93751ee7ebeec1108cb60f5e7853e49e7db6055df2f7cfe35fce2a2f7de367dccfc980155ff080d2d7035679da1b7a83a4df8f2d0dc105650db1b981a744338c3512ee99abb78d278cc2678add260d9d68db7e2830c35dc8a32124bcd99c72309e47ec19d3d06507ed6eb8f7aca81a9839361a89c81d3f965627582652c97b00251533a3cb6cca24d492308faf7f685929ce463cec39ae77621644e8d1579fb3d208ef0e299d11523e4b631e011317f78c0ebc1bafc8c9b158168466158b1334fc6050a582ec806c8dd882f21ffee4c884dbcc5dab1d69c2efb45e4de6fead2f6f5ec9059e4b76b2356466dee3d8e0f2eae27a2eab778bacccac670e495ddc9a824f506c5a6c2a0a024f74530ef5ada75547d124a580572299c4705a24e263d2f90f1e9121726ec267c47cdaf31fbb0c5f0a4d98230fd3c4dfdb29ba2b6dcd7c12c9197f1520c1fdff81ce570e9b3c7693fa79b7154528e843443fbe1963ed6964a4703242498dda72da2d843e2295dc633b2d6755e4cc5154856b208e02184aec24cf05a00336e4d0ee4f640592c9b24777438eb9ae28b783c43ed5dd500e2eceacd2309c9f7356a4b276dbe89b69614fd749fb4181d5d6ee45d256b48a55c892d4df68f190ecde11b87fa650262048c99b00c3e894eb3587d8905f261e47489938c626fa611bcd6d28fc895bebd72059f912231404a56a238a3062f978ffb925ae0aa03ecf3be140f1bad2e4bddf3127bd8904186832181a00a8cbcf23c0b175544c1e45d9c3923317fe1bfb29d8c04c7f0a08e3f6b37da851ace7e9bd33392fc06fc49d262d1f8b4d80174d43f8b7196aa262bf0f8f25b42e13eb0e827096f2074830464765020a51b074853cb8ee88d229cf91d07a1c02de057564d3ee5125bb443f7b981b429688eee5ffb82c972c14d3b5237fbe4ac5611784223ce00f11fbe4636519f3ddda9893c87dc942eb30660c816444b1dd7228a40b907c9b3f1a46cc166a75dfdedd6c76e38c89cc1537e63cec449c44be2054be2bdb0df0169f7be37788f4cf8f9ec5110029aca9e32f76ffa2b68db9fd0480490f894e93a66bc9870a17c1b9ae0fd477db2197a3da06015ff9cc172f6b297b5c79a4e6943df6384a737f64caea0c5abd7a799ede4dd789bac30d7846b19ed32f9669de319d67e7e4a61bd233ac77e9da19696c9c4a791fdebbccd285dd4fc0bc3af634a9556650e4c730381075050ed834e036b25fa9125d262520dd095b7811c7f4b33c82171ceeaa664227502b0dfd3cead3593b2fe80002754e00c20c65c7454ab8869e014c3a635d9bacd6116b320f487bfac58b1d4620542ce4f9303217b7455a9a0b7f92f93334b2bbcc51928d04c77e2fe376fcce692d7c36d17316f3f85fa43c994a4b672a1ae2ad8555331132b35cfb313daff67aeb9fcfce5dc440bf87062b24f9001b857b735430826fe4bfeef055a7657269c352fce093270f1b1a7241ef8543ace867fb142c2c78c4a1fd9bd094d8810f3c5c93dc9841535aaaa573b50814df0815de79cc1ff7dbd3ae869f193da637ddc5ea4d8fc88555364d612c3c5ea0230df9f75732f8decd035a98d76aafb58b5ba98fd311561aebbb4f161b3b78a6f64000972e57684ee68c9af4f708f5126692ab09c23866bb6cce9130057a99901647de175734d830039f21cae68133e00f7c0c13baf9cc8b7b09281bc2902b4f1e5e17493554fe7a02964a2d020694bbd049250dbbae5f088b6127d2845741a75249e163e8107cad459b68b52818845a04dc373d475f25e236f72f4b8cf883f4a25e857241508469a2c424ebc06450bfa33dcd2c342e0c3d170a06e0c8ac7ef2f5efdbe57ebefe1782eae6a16c9119e767248abdf2a3fb02bc9419c0de7fb8be0b8dc07afc74074d8d44cf6adc0009ba73058602c2833f4d862579e8b6049a42de92cd76da08b3b8b8e442a832b0c89238e1ecd862f629c691c5ce627e0298574bab49373710d096fd06f12c1d131f134bd3c51c48abc06371a8c48ab907aeeef68c14eab063a6d99c9ec8ec6c860b97f43fe0fdfb95b91a4cc0757ab27ea22ee30d2a69704c7526377b66b9b2c139ba52a7b5b03971eddfce00d155a26ecc56093f6834726e86ab6eb460798ad3c6208483c413562b62c57591b44ebc3dc623f01ec7f622de28ce0025df34eb9f669ac95e0c76c0dabc8b084230ba2ef1f11b5db27f34e7755656be244bd72d1816f33992cd8268bc94ff8e9cee4ab0e34083e9ddfc4ee1c5f0e7a5a8a05a0b76863f4b637aacc8d1bbd87892ea844ab3368a176859eb48b2f6d3bd89c9f4276a5cc1924792fe3be2d1031f003107fbdbf737392c0ed2aa950b00e9ceb0bd4bcf2964708e17340e2d314f7cb912b9a4d2d45117030f81d6e3746fba9cf5886c94638f1a53f0ce891f0b88a33538a311a7da219814e450cfff5e76b4b872dc53a88f3441e12df39298d90cd4126987a56c1fcac0ae94457b1dc8d2ede35c5aee0009d28865f90a1a360d435ecf71d6d0f60a978a69e5fc75ee639d15b0338d4a39e12c09870caa4bfa89989ae7c0067d8d2e142d6457ae900218c524c074c9bee39f987f040968a57fbffd0fa7989feea3589d68f0bc281cc4f7dfc02441c631724e480c7fccff312bd4f3c3eebc3966780e2b719905994e7cb66283b313eac6702521a919994a1d1bd9616964388ce9a7f39527728c67c7ea0bab7f85bd13af7c4518f7c58fe963ae6e813880019f7f4d6813c74850385b8f6b9c0370728d248764855fb8281a5e5acab688d39b7f3e246dc111c3b83c187d676402163bfc63370dd1fb3f496e4617e6503f6524d8f6ef509e54893cf70333d6907f5a4f3404fac891bc6daeb12df9dd16713da93982a4d85d26c1b1ecf2f4615008b5177ef6877a980e1caa9e9b1d53db7c4b2547f6cfa4daa908b292d2f87c7780b48b9024487d27ae1172026a3cefdf92b8866dba1736355b972d663c376aae45558156e9ada92c6c7d091a036e78978626a679eeaba0216fa0eeefc1f60887ef9e80107f9fb46e76cd26dc7dea30ef1ba91dfc2fe431f7104df08e99ba84943917904e188ac3079186aa472b1571d3cc4de95a454eeda9b4592b9724c9b4cb768790474a716d47b7c46ef9bc486cf1b3231ba38d3dc58136b1c164aa9f4299ae99b3474cec84016e9b7b57419a6353cde8889a5f48de38bed8dead721c2ef3871accbb94b19c8c0112c4d2e7b2fb1cc92a144065251292119c74a0eecc47dd8b252a44f7668ef100a5b661967bd5e9d2dc386547a2c73005faf300b147b92140460bfb4c29219b411394b9e60e20d89fd02567bf3568938a93e8025e0c1c24db2614293c5ed62b3dc75c9eb6909578afd590aa11ded16ce367769fa3c20cb5e068fc6470819804f220e2008ffb516d27a7857d5e8a8785097701d056756e2141142204e13882ade1d97a0a575fc63152a39c44f2da987b027c2fbaf41745945974c87610cee657f76c9cdb086b9ad84b401739912ca96bbfe3877c17c74a333ff98e52be971300a095c740b5b093edc6ee473b0bdf0599656282becad7e114768236f1a2facdd2d1e085e88d375be393412fc14c646b9528d09def2b9a5ef44cd75d3356bc10f1eb4b5b135bf607d32a0741b7a77b03fe44b4a8f21d2b5190b01dd04961e2b3c599ba6c8e175116af78124b67085d5f075d54f1481728e60aa4a007f7124dbfb03225b880893fd7de61dd8d31953c988d5454f973a84c4bf56f0aeb7511cdf3c24bd715923da359afd11e3f4d92b0a17bd88e8ad22e19d0eca5014d8f16d0ebbd81a0dd75f32f2a7cda47b8fc03563d5cdf5917c2b4dda39490162dcbd37e87d9ad37d75369e02ed8daf73904ab802f9b41495c3cf3e22096921e23e6abc537462ef71cff0f365e2975f3a3a5836e5a09b27d72dc4b30f8c67f33092ef288e5eaa52f62ffdf8fe7130c8dd93f99c530c0323019830220d37fb3f716d62bea22914bf0114eb0d92b9f3a2a8f1764b61b2f89d40f1780c834161e5f41f75a46c338418e5738d23aa2e3dfbf580fa7147a42e6865d13a69eb6b79e0603d1176354367cbdb4adadb398b7239862d54403118ebc5569f0454ddd954a2553820b3cc2349eb234714cc618fcdd6399aa3836228256d418f80e96c26ad07f9035b7cbbe0de919c51cd5c8efa7338483bb4480d21a770200dc0802aac83753f882c8fb555bc01c3bdc09e3d5cc2c10dfb9337ae7ee9868e34cb671a0d4f31da52eaed9f6513b825467de5f2129b79b007524f402e3940556a6c97a5b9e125495173fe0b394a6898c337999ae10683ec151f3cb5e6000000000000000000000000000000000000000000000a0f15191c21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 36, + "comment": "signature that takes 31 iteration(s)", + "msg": "3308000000000000000000000000000000000000000000000000000000000000", + "sig": "5057aec74324b4d5dfa965882d49ba03badaabd76d7e56d1339d35893ad040fe52deb881e999796ac3ebfc749a6004b51ae140a6c0f3105c5b0824fc17d253931e48ead138217bb5fc3776f4695d4a6a34d387856372add58aec8ddd81442af399b0be2c79c2f4ac6fb0daa61bc48c1731cd818c9a421e6e61ba1228e9a66cb5d6e72cfd79dc144ba3a51849814df30c7f9434afb991d8f824d42c7c42a9c055211bd69816862e462ca4897e8661ef3a3147f362e0926fda48deaeb0e7062837c071b6f69b880f389ae55f2e4c80f4ef3bb116490035fde777663eba8a4c7e518b4721988539708bb714b1cd26da8702bce552a3b905113f3edbb6b77dac1427c0166a3fd46ec1c4ec3858c4b529145e1b9f053c1904d35f0a114cf547ceb588d5d8a5dad2880a18689e439603586ad119a04e03ddaa0188e6331dcabcd0dc223c469dc32e041ed18bbd1676c7f05b731b262a0c0a00e86753b20c9dd3d5af52c449b9c462626de5bc59cf018ace4ad9892e924f2c9af15f013710c31832609a819bf99b09b14663a9f4b0078335e81ab50696a65f8c151301cbb16bbdd3397eda0d11e5d56d62265e49a78a34e5e5bd9893fce108da77d7c17b50abd1f91fb9b7368084a8b2820eb7ffced530f7e4c78c20d1408e224ea17a19887f4ded7f7c4fad037a7f566013c082d633c3e62ce76599a294fef294f79334d7aafbb8f8b5bf3b9b58a82bdc0fe49c73f82ff86d87d9ecd2885476f9755e2c270bc01dfc8344828ccc3ceb88423e1d52285e60cc140bbe1b97cc9ea4017540e7078802207e94a037ddfdf0b681b433bfab0930fd1412c1b36ef643df0f3b3b00c05669dd77d37536c3f48a4e7889b365f19d2932e146f7c9702be9aa88f5310ad738a1699aab1f02f7a525f212bec566cc34a10d7c82e543efdad640e00f6a380ec319f1d48d8584ce5cd6cae835d23a099d91f0c42c0d27a14cabe283ba043401ac7dca1e8b42d8a8c37923ada7ce4bcbe0453055cf83a1ce54366a794e95f62e3f6141f3e0fb78eb181138b77c0474a0e300a7765603f35a2523b6618cbd08072ea8323af7a714d4ee6f64cda0ea157d52cae5775f9656aee2db5728369f9a0492428ae02efd457123f4d08d92a29a9d7943ed38b0387dfbec6dbc96732d29caa78ed8765947637c00fcc028d676d8a9981ca97fbb5f252e836e93aa8dd37000d43d047c57009bb88dec672b77d8df3dde4ac85b01773dc00a43c9fdf2cbeddc04ba3798ee18126b0c750c6d40ec0ac076b8dae0d5aa71b3e72a71603c82083267849b263251b86ff5fe1cca0ddc3747a353392a47ab6962c15e005b2578094f9f9a8097243dd15110068f941a11902d3148143cf65ed30fcbc172e7f016d629f60a584d9f4a0c539561714f1df67427331f3c8395f559afb56ecf7c5702fa34e923cf1da8280583fef6ba1570eee03dd7efd9b5add767169ca11a0eb538790afb05694b2719a9daca1bcc31de44d0d5946d1e1565d6a476373b42c9f05e01b9d39a921857ac666d190205744061960b94e59c805b0d840a140bb48817deb68e6654071e7b56696f30a27368c36377ec8be0e4088fd23623158ad7cca215c70b7dceceb220de0509bd3ff530e2e7bc1d3a9358ad13794a5fb2db6c73965915a193417cfb63f3cc53fd48d94d308f27efa2c2c096a14a1495244b437b4563a2eb65c7b906816d205e02a465b350dfb7b88403689c8930d5898f41a4268059b650237f60421607440a16ab8b0b1067fbe9460afd8878742a73914c6986ca5d45dc516665dfa4fa99d733865fea4cea28ebc12d50a4edb7c1b3cb2cd0dcd0fdc6acc6f7972dc6a8ba3b3c13d487c1c1f00883c2c1822fb58c684427b837d457e678a79c0de7e7308481721d9295dde258d2f06159c98e2f70a9be35713ecaa35286042d32e85b760fb79147f11c248790a2f274c09015d43fc33366d7d1ad713e2155600eaa5cabba497044ec99c17afa680f42410b928adaeb876bea66c1520bbce3da46ef8d3ebd6f9bbe40a4b643d1ac5c88cbdd26023b88757b2f6ca78c197ba0caf240050e6483fee64ad3dec7ad61f8f793e5687d9e7ef3bc554e69bb8f6d0ab7a51d3f5778ed262c6d32408d74879614d22963bff3fe484a83ed82a181242214c5a919f8e510064f095ec8882e18ded7dd4c3e76920200cf6079f56887fac3f06cd8c3b70ea053164b912fc6f6ec347b78e6cc3516a89dbe136350ccfc55204ca112b2873359ccb8d30e748f36dc4e9e2ab85d1eb31df27f0297a6c7114915183cb106154c7ed467dcfb0ec709271cb8b64b430139cfe732f9ba697fc5833063039a5d5a2ef59d3173447510e0f59a23be4ebc341356f2205822f0a66d65b7e0416e354d1dda7f75afb864fbbea967461f69c0fb8ea80262f423bdfef3f18c1fbda0c042fd5f4bc7c0b5d2f7618bc2be24ec820d8986a6e7c345f22ef2832797e5aefdcaa07be9f31bdd35d282eaf46d796c29b1e1c34ad11e02f89403ab899c49721be2a5e4a0708abee762150069c2dcee161204cb5bd680d6cfb340680e49f79538b5fab63ee0272fcc33379dc778581eb9b5aa9b72624eb8bb28697d6ad8f16ebb6c29aaae800f9f8063d8885f3f8293c40cddc975c005fdc67a9b79e6bdf7fef1b30e3a0c3ab51cac4ffb15d320acb9a969165fc8d9cc4c9fdff4423b9582c2ba54fd73069f1e59a3ef11f01d57e55825f87346b74cf5afd20b5569a3cfe8182d891612613374053557db3d7a8c421ce649e449f7b0a6ca7ac11459694db5ca15625181aacd2184ac1c090fe583fe7607339bdbd5deff4b4c1b82b0b2832a5368901234a627a63a67a47069b78f45f6c783ce2f782082406216411c942b9f455eb081035b70c54a13f28df53c00de9c433204c61471e021d6a589ed522445007250bc398b16548b58e54b03be61caca4bce6ccb51a9cb4c553f0b099a568ca49d93860ee94de1af05bfadd7985ba8f19443f6594de33670b7711ecc838269cc918d5ec2a5509e27682956c949224c1ffc059c22ab0abfecabae3fe954660b32fd3e3c0bd83ba0e934f78bbeb35c3ee95525aeb4f62b0ebdf70cff985feb0de983ad2a52d03d7de00caa70a7ff535339957bf7bbd09a405ce6ede82455e5ca132bb3fd473db1dd087a047281ea9c27d3c98b18cc99893ce570aacc16e4c8d84eca7197390210469d309982c2e58cfc4c3c41b0c498c02949ee8e5dccb49c1317f014f5af0acf4710631fb3e85cbf126dee44c355fb9cb1e8a0f794a4e63c0841be9ab8948224490044c4e08be105c296182e3ea14e34ad132f1be8ba30468ef364999fcd1f4afe2c424e193de17181989dc2ad074971b19f8bed0657a3e18d7329525e07778ba620d8592a5ca184757e65a28cdcc5ae975ab44f8b0b4ffe6b3e85f1194a64a053e5b5eeac4b87eb848e78b0a9a10c955a37a719160a46d52e237cbf5fcd56814fbd753941a85e20e1ae3f1252682bdbffbed04a11e3ec1d0383a6f5055b2c09dfa16f5b3bd6895a9c4cf31d8c2ea76ec5039f9f8fd1c2becc3a0f69aad095f0a1cbb7800d4b57a7546363cc0a032599c4fdc50223615503b13d7e115b1bf7e3c6bc0a2d4aadd54489327961344ba4c0f933267eba87e0bbc688cbb2aa20bd04cdbafe46d5be7405ce029d53f3c376a3225e4755195c46e25c5a63c953172c1240aa4dcf2629e00e9c6c94005dce93f8810a32df75d3a67314b1126a647bea0b3059ec7f0f4a3b31f83a16b01a31a44eea403ccaa9850622ed3b6e3b41122410a08de696749b728e12e7e106263164ca1006fd3624e48dd9b796e235bcfd240d651a5a6317506b682203fdb124480e135e9791521b61880bfad227292e2052e1660bf342995ef3ab701bc64fd575eb3c3872d8cce94356caa6301ed6091fca973889151580f11c095efe49485771e6008f3e15864f2d5c0ce96e73c432259e12ee4591179ae285457a7bfb598187fea7b08468ee34237e4dd6be18c759fd3d262bf792efc5fd00c2f93ab40ff228fefd3d10d147690bc9fe0f8153cef46624f123954bfc5ec6d91614a7eac99b9628ece91e6f116dae000353a3736339d49e00ffc66a912970d7845d437376a405ec9091893ef9e025cbfd8919cec5e5e9c8ae227fbce880d3563330d32f4cfe43e62cfb8a471eca1faae3a7b1bd40f719668e249bfc2c2b58940f6f73c8985da43b0f6b41d54809913ca8f8a8a60ebe8b09c5e2e089a3c8e1de99f8ce434abb2fb4c2529deef8295f691bc36434b36792d6912e1f4e1b728414e77440b71529bfe5430e4a38b292dd2532d6e614a7da61533062e8ff84382993a8d3764f654e90740101c08e185af2dda68d0d348841041eabfdbc9ac165385b39a03d7ef359ef9c8db393f46c5e8ddb93f9e961478c353085ede0738b09ad0a4f77e094d8e873455be5225ac4a365a0e3a943d308a208da56bfd3d5fcd439b8e73a466dc366e56d4f6e7e963d0d3bba23fb3319f6826dd6dd6a44dbb5895e707a395f646c2e02a6b8432b201211761b6c6021bfe2fef8e3254e7009fac6287be9051b2162c1c3d1db05143245489496e228ea243952790a83849ba7cbdce1e8081456bac5d50000000000000000000000000000000000000000060e10141d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 37, + "comment": "signature that takes 32 iteration(s)", + "msg": "9721000000000000000000000000000000000000000000000000000000000000", + "sig": "4cef6107c57d1e2a3389a755019b029002ffc1fff9d4722f8f92e9ba921dafcb20b0604257cde0e315568622d1a665746b446a8df7d8fcdebc10b02ad687d912a944761e54f05cfc113c064191b759cd8f3d0ffdd523644123542aeaad7645711119b746ad421521296aaffdbfbe3822ea3d715a4a276ca0402803a71cf4ca6c795ba336b5ef3a093167322dbd3167502444027b8b449e12ff1dcc8e9eda0b22da66ad89b01c86de493084488e126873be44c43e4cc7972ea78d524fc556b37717bf768bf0fc7374ae56332d955988ef2d57265e43768ef2ae3ff64a70037cacac2f1af03119efe45014f45e070baba1dc5f73e7733c958a3042c743af9215ae7ba3a6284626b724249033300cbb7092e4513d14a8b19b168fd3d29bf461ccd51ab581c0617b64e46d901724238d9ea556caca19d56d83a2cdb43a0db469839cb1ccd1afc705061d2e15b798569bfcafd135b51e21119ba22f4c69b205751b177354ec3c6547ca89d86a95cf1e0b4139a001cbcc5274f4eb19eee0c6b2ee749e940ac72969845563e3ed21d350f7df7d33d969738643983acb6aea290aa6b79ede572503d57a4267d97d2ca92ef2d17b104093b1242c53ed0d966ce4100fe53d7a36f14ee6335a9b85202baae912d9ed7e3f153a0292708fd3c7922ec2b43e4801243ee4a65b875683f85a071c86df08b2a999e258de58534c29722b912a78f515c353caf170b2e1eedf52910b857aa751114b7f26a3cf9122a814a6ec65f0347511eeef5094e575b0c51a90e27ed8c58b36674323964eb9725c550eff91d8ee79ece3fdec6cf9829a6f2bba5ddf9958f1c3f2932aa2a888d81953e74111cfa6600c10022e3b7a420136731ad638d26afec4d1df60bc255f45811f6686f8c81c8de97d541f4a38b6f495aca0a760f3cadd06d72a6476c02a8f61f92049ea6a5b5caf6294e308dc675b47dbe294ea8ce599856d19dcf0ea61b3f930e3fae682d8a324c0022f4b904b092bcbc0279b146cd63b827a5efeaee969b91b5158a2d0cd41266c94b873ce7e243850257e5abda0e37c4571f0b28a92d043cbe92a220170c6de589d0ed0e75ed1b288dbad8c7069f8bd3e4151c0d5bf90e9ae55e2a2b9e46898a301c0823ec14a201da94e9c0995592770622687f1a477511563dc9cf9500968e12c5b9b9584f179694a68055eb5309a01110fd8076c96cb6d57f0e228e1afd0cc8776978bc426401aa1fac458b8f3e1f2bbec589b653469a6589527e89664dd015497b669351dcea19115f55f0814a4c68f4a3c22dcdaf0d10eab6e884c6000f86ba0d8a453f773a16e2e50e85c69f501f29e1a4d8cd4b183efa68df94b98d47923dd8b2315e953465b0f65f3ad3c1d61e6bbeb34177efb27ce59c356873ec150c5d1883d0eb69c26e24a789aa0450af814faeb6dfc46d3b0309eff2d7c6d479832bfa6f9c34e5d5df4861865e64b5b03e211bccf9f72be75ec32e4140bc81dcb69f4de50d8a24896f749c356418d4270f5161328574f25650da41035a8cada3d9b630e103477977e5bb69382201fe6612b3244452a00a68e9b66b2a532d5abb29c0412f3a76e0d3fc0ba868a237c9ca392216efdd77478c49197e963660d57b96263ac47ef7ce463d715aa098ea2533cfb6bdafd984259f6143fba4f59bfe95653fa3ae232fbfd764a3792748365f5512f945d44b014f0c2b33911b36a60306f087c88afb57cf0dffbb8d80bfae7a44ea3e3ffac7e1bfc614b4a7b345c456d7c52a359bfa4bb5499c044c91bc6ac38f6ac2a39e80aebeced421ebe402782edc887da588be58815c71ae9e8d3b1644383fc15e8bd33b729611a93c40fa832bcd803913f590ce0f3bc8d3cf95a7574cb5f2a2c7368f69421153a310e776390c9535d16be57896f6e0ac8ef8acfb64c67267e246df87f55b50670dd3463e6a9b6aae11679c11dbfd3d6edda9aedf6557653ec89641d336b0b8f594a1f8dc284230200ae677092e9e7a6d129ef63997517c5a1388637eb81b134268a1be1d5dabafb6e9ac897894aae6d1720a1f44aceb2cd9749a13b7df3ffe4e06e23f7f478e6ed7e6563355fd22a52543812ab4201f9d15fb88c5a70926e2d867cfdc8bd6f4971a2b51656be33785a7fd78712e60f7b097aa88b294b1089cf01c8f7b958aed1933c983f7af824f202fbb88951de232ca81c7629bb4281a057fab0de81fc1d46b8ada37956438ee7fd8e13f1938bc237b672e0faf93e22c36bdc7cd192c6b607b43f866c3686cf532eabce500a9931e54bdb4e399b9f0b29301dcbe0eb16638486b7f96b766fb008a7b62f1c57ef8e0f5ab59c10ab055357e9e0111147ae6d1ca03ba503613c04180adffcdbb58cf5ff7ff726744bcc65df37a3f9c847b93e14c9f0dd912dad27d442406871fcda4471e8f21dc55b63b0fc702883467a0969ff3aa2010a72a111062701622f64567ad9f8a4f3e91dab436ba552ef2e42d930a71db205de921b1818ed137615ea39d16d8ad4817eb02e79e05fcff24aefa1a10e60a939c0a8235fc27846dd032f95679f9b987acd81a6f285d7e7664d88db73b2d1ae931d82e38134f2b770cb2f834e247371595f3ff78e420f281676399a293c080c7801447a4be951eca051b1858f99decc572baaadda8c1b67e5cfc9aa4e44abd48d2f3144ef92fd1ffe13dad9ce1d4f127c98119e211ca331496edd7b08bedf3c48d225409c9e66e2cc68b6ba2ee75f2dca3eea8f7af51a4bc99d4875fdc3991b300909433f4b261d36bb150faef340aaab774996ae1c6bfde7ac536fcf1df188f2125325922d0412c0d52a77a5ea47dcb9f898981a8f588440944b36ab2195b1afe613754b0e819a5962b148af4b1068ec9761224864776ccc8a7d54dc866fd2f9462273b745a9f6cb5af6a373c7a2067e42f2bf6219640cd11b04a37488a8ce616aaf23aa84968b59385d443e1a77e25e22ed199f0dba993886ef4a572d34484b965f31f76cd90a363ca95a75d175ae78b83c7f72d039aaa5e560e2ea9d0c9f29259ba6c06d7be2877db31cd9641b5ab67eb400c17e04bbda482e923263e668ffdfa92a84ea7ad18675a1e3bef85f1b9105d9fb496301bb1cd47e40c2efaf3f9fa737506d75342c400e74f1e9e6f8b1f60bbaa37e8b32a84f93efb535fb69b7746883ffde4e966410b048d4ecaa660dde811a0b3ec93fd2411e13f1643f756a4891f15a64785b0ed44a7a18154ee7d1d4cebfb41038cc64e9ff7992c9498a35e521d8e38a01f77f2103dac97504b28dad00bf4704d768ebd1c5bfcd434d6dcdb896fd28184c452420ef9bace73885ec8a87ee8e4da935ea42536e10917960784d436fca233d91b2da3cc121f89c7321d765c2b0e1efa88e9899d2e16c1c2958fc6318702f93c27c2b18ab78f65e70fd856f713088e11985c7a179119736bd14e6fa4a5322867ade8c2777130a67c74d763f508eb706ebe1fa0ca45fa80a8d73415dddc9a94d5d7459643f899e6e6b3f204bc79d7e66aa067ddbc7f70aee71a5772349d9e2086e0faf6e68f44863d7ed4c911cd3b73251f2760fbf0e672b4b933ed64bd6b4e0117db7eeb0cfabcb292232bddccc05aa9141ad70611b88fb4d35c3cb83aee710a84a3a7587122c0d2ff622fd7f663b3521616ed143da185556a005d2ab24f7d6af16acd759b3a188548414941fa2ebcb9047ef1e01840cc33a9c666948921baa8a772fbd582a538d6bea5a8b0408ba7e9db25e6ac1a2b19d5dbe479bfb4407de495d1c7cd818c58cc9ea5ed563b4f6e833f8a08e81c9d3f6a6262230aaf6d7ad0e96c5fe394780666313c10b2db729455d61f4e962b15cd524a38711f4eada4acc78daa59490c3c0c36f76039935b135128d6990fffc19f47b164fad639e6fc65921fbd4e491dc32fe11eff24ec5cd25a321b2af69ac8208fb712335c081d09bb05a587d95a7bf66b97a1f2dd8f5861f0575e0d156f7e1c3d59a0012b3dac27c84590bf8058dd3617437577a333875a2e1f0439038b469334d3f9457333e981ff9dc9273d5383e8f05249eba7b0d60b89eee427a057449802c5deaa90012d4b92e50846ee923c90b36de7f4b51aefc122e744e11b4cac695841c430710a5f261842f078284f68e49203f47f0a1805b13999b3b5a169b0ae792b33785f14a25f1158ac702ef5701aaecc7e8952ed4c7b39a10985cbf3e948084e61380e0cdedcba71a5c7065a864c412f486f510fa6f8c97c9a2946fb031e48e8be985508df9293956e7523b2a0bfbfc5564e082a94ff85e395aba4c3513fc1f55257ffd581fdc7f05dc4f014fd92c450c3422784e6a906cdc1fec67edc40688dcf1f7e77314c914a2a696112dea20296c73b3ba665d9ef39411cba46c2b66aa861f7e4dd05a3135c12801bdd4745d847d8947829fc99df415a2385b7e012dd6a5e53fde708fa552e418023735f830301813a3d7afe2567d3cdfbe790e318c9670e32b6b2d4406f1f1b03c57074add69f594e8ae8b0d7204041c309b2e52b58f82928d6bd4ec655c7df9ad79e8046d3b558decc148e89b02cf1d189a4f18171c948d974e8d14ffc83de76c334d001e3dc7de40bcf4f7fcfd191e447c8d95d80d39424a8598a5ad4f90b7ec2a515c859bbe00000000000000000000000000000000000000050b121a1e24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 38, + "comment": "signature that takes 33 iteration(s)", + "msg": "b504000000000000000000000000000000000000000000000000000000000000", + "sig": "2aa38484627db138769301dfd9a5286975f4869810ad211d9055bee7e25029f41460d92e9b4c68b185d8033d360c0f2a5c9f0004e4d043c368ac22d395422e3d5ba1a4a2f219e38f1b300539a11481d086d93bd4ddfa8531acfeb8d418593c4142f624b881b44d306f0cc355573d25105118d6b9affc066c8910f2889f9fa45a87ef7fb5cb6aa508c4f5ad21d04742c110824a48569a1042a66a4f21723b046461c8c6b382e112c825af25a24bb26d7d874a6715dc338af7e3d4a07c27d5ce243536538ffbe6481e3542a5ac218c536c60ff0954dd5db6551c80abe9d22fd56a1486e6ceccb54ca7993d44ee52444d4876c247014bf459fef5e4b68640e6a20c5bd7ab5e11dd8a1f5527a087b97f57e9935c0ab742f399ba2eb9e7bf255d8d4f7ed820fcf5de363915d23b9d292d7a08e5cf5092516caaccfda5d4cb9ac906d10287bed5a13fc2df0b167e5bcd37768d33665c6adacb8157d9c385cc76fb9ffc53babbe3789a698d8a73fa5e110c1d87aeebfd839e2bff061d37c749c5aeee8bc63441e6ca79e1dc055fd8d789ad729dc475bb94729997e97ff08a1f1708d93612d402a64de159c26175c271d4d77114ed9176c5b9ce4234916e63cc856d9436186b137f7f7aacd7a367af9d28823d46d42add2c2dd975d23d31083424c141207a195b4212ea7bfb6da8eda7f69027552efe7ad4952ba49ac38115d93b4dfc2dbe173eef47934204f50ad850bdaa6fce06b517340b2562e468697fb84074626cb263d03a0b62a7b497ee9462c859b1d7894a543d1e261971751d325819dc071682c8f00f62153bec73cddbd5ec21f6824d4eca53dae13eb9af6c448d8d75c6d676ab18ba64836c3ecc7c20c79836a53379e809d87abc2f04f0413d10176ddb27f72936beb4d14cac5b0e684e6dfaf529b80f9b68121bfac15c8e60cae44292e8a8e0c32ebf066e708aefe5c3aa4fb4bbd7215380cedf0b19fafa11fc37c534f5c3c14cf6d28f9f624008355c1ec110159009690ec648d6ec11fc6de44831c620dec4331c900032bce86eb4ec44725667c15cc78a71f0baedb5ddc251215aa64c527a8dd8b30ed4931047b19b725d9f205a7943614850f9a619a805ba004d272d5206900846259d02c06153a0e2c109741acfb459816a7f8ec101a5e9c38b7ef9b8add48b68f7410db4359ce23cbf62507d584763744e44f95fe2233e76f32d13e660ea5d4b203bb908207ee9c621bebcbef9ad30666fb306e8ff894b2837464d3ce91caa82227d8666a3e2a9e6017f62b1ad65bdc5ec5a4c76f414ed2a15b0da2456694061ffb3296186a0ce18e366e5c5dc8b832e5bc74ff775f4d496802b600b39e5b7b531131709212980f4aef9bdeaadababd7300f75018bb60f48a9fae84f5e694f0ec6c74d3f34a77e358dc7c4f26536eb2f76adefd14e9f8822a85b1b579611975035fab27eb387602a3b4a858b17c8729bec1845b67d0725b38ecec057b0083cac04d4e075d848de5243801417dacc3ed83f89e63ba90dea0e724ba394fcf9226b50b6cb6e6017c0cc0526d7942cf5260efb79aa918c67e9c116c4183eb8068e94f25647923658825763acf820c56deef853bcd33a0c12ffebec84115e17f675b9b25dcfdd6cbf0c0e3a1feeb7c387d059b138665f70fa762a42fa3d9d360d3063b86e43f67e54c1011283238cddbf4d054d9126416b8d4c9116f8635e8cd19c2f202c90ea4470d91bd737b8032d4adcec9c98983f789c97852c2a60221a78b41e3ca75446f2e1912dadbe04b2304291353e32e73e1ee66e698a9395c0c93214a2865661dcca210b6d48972fe80368706e041eafaf9f7a96810e395f72c2ff9aa7e5d5ef845907184f224ba37b4c186c248da8bfe403df87472107da32ec0c0ee10ec6c867341ef62205d879cbb9ded18dc5d978ba96882b5a8ae2df769eec25540a431059a52176cee356a6e3c173c4ae79c3694b1af60ee164408e12ca1131d3475eb5467c7a95f8a794589e13548cd8b11c126244008c9424226929a6086879dd5a4bda4a82f0adc2d03d239fb99034f497851c204dc08961782fa41449ebd588d27b4d7da94cf8019ba42286987bc9d8cf0677ef6c45f0ff79dd41c3895912300b70587f7dd4080a65e81f5d12b0ada473bb597149e667e43804526fed0c9b75ee2f9f09ff32e87040e145ef779c9aba90f13f94c514f6aabe7690d51b6835f3e405a613c8a1e0a657cc259862ccc5a41a514c9ad0baccce1b8142de115994847b98f20ef8fea606a85c770a9d49cb1d37fb701119e6515307b62714d385f3854d5e0b16f3b062afd35586d71b5baed356e14a43e77e0993b8d30084d402bc8f569c5b837cf2c25e6869d2183daaa7553436cf48599cbe24337eaef1b44a8695d5a990241255579c564bff1399258090aad8525e0e5e75f734d15c8331415fe48d776f8d50efdb10aa72252dc43ecc13ca6322fa06d750cc9b817c879a2bd545ebce4b9ef00f2c1cde4d4c7b38a3c865026af1d108f66bb235b07935045d9e86abb228f99b94d82dfa098e680ba7af3e69a2e7ff1f2454f6d8f2165d7a05744e0ee3bcbb320a8b44b9219fb0d81a2127f112eb8d32c20a4e365f2037815781a0eec8d7d87b665bbe3d4c5df6aa798fd3c66d74330c78551d96a237e7125f79f9372b12828c40f7cd9d1ed7039635ed18ca5fa353a878913c9b2cfac7c9d774535cd6320efd7c1e6f2301ae3ebb3aba0d83e46a80a176109078cd101609898f41494da47a366d16848f3aeb61c6663195e1d744e18d284e38e8e303395a3aa6e11e55aac90f011f90a7717febafa8f5be44d033f3f3878877823a10b6e9721afc120f1ec60dca8df125c3c4d052e1afa6a921b66d4e2d00618a2bfba3e7e4fb3c15518ec5bef7589d2368a10af77394236c7061ccffc21ad67af1c9ea74d82a2820b11cca55a156927a677fbf57649b735d2af79ba93f3883f59aa403be37cb84c6b00c4fcd7f28414b665d77f093f4d6c0e7bc5629473ea1c31afe2c1d1a2bdc6459c92d4539d424436113f630059b9d90082ff9b3629e4c13149d6cd92a78a5defc5846f03ceeab92c88a53dcd5f019ac69aefa553ad4b4be71b08fcb7fce4c6dedcf046a09a7d3e1d31ab3afa543026dad8ca9412294004edcd16ae39c18144abdada4acf209a023811f5e60e5357a18c242691f990045652ef63bf86dd8d7f5d05f4f46b4276f580d1170acfec3ecf5426612938e37e65319854a9e0931e0981da00dca67e8fbcde6b94dc54b30dad04f27022aea635983ec8017cf389d482ee6c104c06ef7cf9273a9902c13c4a3f79f88d85088cfcb32396105d62f2308fa419ef1f29283ffe1becde3a2ca28e4b14532cf581d91c311beb4b41a9a9c55ae753e2e28d222d0b36b4c290a6f1b846cee14f03ffa91f3d743fcbf37d5993241ac2efb030e2652622e65be238cfd7e4a0b5e3e40e25e6eb5601120253a08be5eebd20f08af1dea872dc41b305aec03272561f0745aaee1c1b069acc0e61b16f4effccddb0086154ed66b98f15ad58975c4604ddd96e2fdfa674fe53c5d226d376081ae0bd2283f7106558a54e613900a569e799c98e4ec2f024c0d2b15cbc14bc96bfc6094560ec6c4cd9b9f879e3fe74a70c0d3ddba82f055780be7db1ce650cefb313618a2a5336d9b1168fc605518f53708afd062bfeb9a7f66338115e3213e8f4e90864e10b4b3a8eaed966f99240c23a7ad527892b3a25e1a3d656e724b84c46484ed9c0c2624ce62c46646b13003e3eb2c8ac1e1e307f40a3092d96e13463ec1bd75d62b679f4bd1a9e4967323f16c85ed92066b283b12f49fe50423359f7db6c0df64e04568d470c480681e6c6df4fab81d896e13735f3a1a18d26aef3e436c86308a4c184b709a4918670b870502d30d44861d360a88e4bb8a693659208c2c82da46a25dfdfbdc81e7c0a5addcba03d2872b8c24ab2e1761e2ae10a67dbd724fc4652be47650ec912819b70a4d628c4c16f630d24bc5811ae66fc1afa55234d5fb83271d5f8eec99fe398acf3275de23bc002a7652bf60c293e7c04fa6e10795c00e43743050f138b5422d4c09030dd12835a4556ae423406cda8b4936ee4e039324963a1fbe8768798c384f237f7b8d23cdc75aefc035c0ce65fbd9f8eeccf126f37352d9c75a40e157eadadd12b64b582bbaeea63b50b20ec88098e54623bcb373c63eac44a290a7ff8841a417c17bda385992e3f5b952951884273ff45b94067a819efe5cd90c7ddf935c3636ee486c98f67be2eef9ba4cb10c701b308861720f54c3017357e9aaca6bb5fd826cb39b8e0d908171963bd068a589860fcdabd8bae591d4fc6a6cb8bdca9a0380b3c70e49af9819f07100dceee2174331053b4878e41fe06782b5421ff93b7051deb43a61bd5608a881423940222f2cc2bf795721472b2fd714ca7a59373fe0e1c3c9dd5dfb97e345a250f63def1732f19085a5d1f50bd6dd7d26b22bd68aa239450d21d97e85929745896d3adce416c9aa28db0c3bf104a246f70ec5e24a11c3618280cab7bc6faedfca29eeb92c9ce708538f796469966ed1d5eff70e274d5f747bc5dd6d8a99c52035666d80a4bce2fb525b6b7eabce0c1c486e82f50000000000000000000000000000000000050d111a2026", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 39, + "comment": "signature that takes 34 iteration(s)", + "msg": "b502000000000000000000000000000000000000000000000000000000000000", + "sig": "fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 40, + "comment": "signature that takes 37 iteration(s)", + "msg": "d20c000000000000000000000000000000000000000000000000000000000000", + "sig": "1f46df1c64f499ad5738cdecb7cdb03505cb055d9ce542e947092e56ff01ec2969072aceca72c59d51e93f1d7ce7de2540dfc1b0e2031597295ab90a154fa59e625c00ac9badd3eea471f51617673b9a963c8538971984ac28b77af69a6c1b24ba5ad2ed4cb30e9e4393e869af84d39146a2e2c8a31154b72d175f35da837f6089c2080776da166aaaec56563a220aa138e9c21b4d66de9490b8a0df1e80ac8521055bf24866e529943f65052f5be8765e1d340067f0172c33f9c68d10bafaf0b88930fd6579897d94ff21d74b572213b58509a29b396ac1cd0cc00cffd675cc6a11ef51dea3093416c12e994f42f24ade5725903c7886729d240941b45cc4089e66b8f995ca1106fea5ad912bbd3c5e47e1819496930eb044a273eaf6237de39b291a7d1e6192ee01f05d487437858bd1aa182ba2c04c894d5a5165f6336740de417f065360a70dfcbf4f86fa781ff6ee799a31887f37e9f7dedb12b2ee5508b28ea97ffc9cc87a0483c8d9a1334f8b29e3d9acceadc55e140f763a413d5e1c5d7987eb5abf3cb9e68838b2058e2f4df650386707b62b9cdc23733d5e58fd456f500a51746359378506724b87fe07aa24c192f56499becc194e128c9ae5268b22a6a22a5c5ff197881e880a13d52de0e5c6a7ab7dbbdd07d65cfd1806a84abe6455c4542d0f832d42fb3f72b6b26ebe1f4c306ffa6488509c93faeb7204811188223da6e932869703602b834aa1a3b65dff320f540be23ecd843b1e2901965d5805c46c711015a47ab82d0b1d9d12fd9fe8c6be4eaf89df00acb07a3d21fbfca442298f70ea4d2acd8edcb2f9e88c3c02ffb667c3fc0e2b2e778b908c206e35f6f3287a6ef9601f6340e037ad38a5d1aff1bb2e50472234a01164d5e213dcc19657c32174fc89fedb70c8e7e4a4dc613b820f43a57ffa04a9e00546f2918e1381d9bc2e3b19c3f79f74b998bbe4f08e47b79b536e737104af435b96a7912eac3f83b36ad6bf77fd29110dcb1cf6d4a2d422f26af1d77507383aca643095b436eda471cba8d3f97ace49ca048fa5a43ed7eed1de5c9f591d2fe1bf6b99d1978bd87032e27598356352029e5a16d280c07e6e702ff7ba900416a7246f0d0b0ca6f9bdee5686766a6bd63f0298852d26f6b9e6002b5c2a704dc6b82a29accd800b39c46dc534c82659bfd63c82d1f9f291510078a6682cdc1aac22141549c4d9ef2d6a5843b12e376dca96cafb5a359612662946e81ffbb6abbadd985077c9a1fe81dc9d81446ce554effe92f879811932a3f8ef2d2b5619670b9d5b9cc6c547b655e41233a618a3eac821c8a8bc427f913ae319e6339ad537121ecf3b22f153d93331f66f594c8b71157c321a753d0b3aede490db20977019de46a0652f9dfa175da85212599c5726fff321cada571524c6f2003af70dd9fa28c497a7584078a23385b88a08edccabfca847dd45eeffefd30f8f4df276486496b1fbb1b7e6d49921ed0f25aecebbfeaa9062b47b9e2a773e644e2709022f66fac061e012cbcf94324814d07d7aca6fd165f90298b70efc207c0367fd51f1f172df7d96c46c9ffe72c87ca3cb42e6bda26e2352574c6d6341c6058ea7bf9e5614748382c2047504bc97fb4f00ee120c8d17a2802f5807636e754781b325fed89cdbdcb41b279c11f7a0fbcaab32f569f8e98204aa1cc04ae6fd1d70c29f1a3b286fafb5002f46916094c36de8b8b0a6afceb7103da9522e515e0abd3721c7402b12a3cc93e31f81c4714a4d86c3215b8dfd201af03c5dbaf5f41b35525e13402d753fc371b9d46e8d141ee0dc7a04f382ea1ed257579d06cd68a0f675ddc5137e5afe71894483f1c184dda00bb12e62afdcdca6252065224476d28f3ccc362dd443e7412d21d945a20c4ff7f11054031351fa93647709ddc89ec667245d2b0feee0522bea979f3e077ebbf2d6a8fb861de7ec495725374b19bd3bdc0108b526caeda1f946d022651a1b05a71ceb9c3bd1eda12728f58cbbb27af266e019323a3dbd149188bff16f6f154e4ecae0f01504afd8bda993028ed478c7eca673aa1f33af88b5de67f1192c668f4136179cab9696b44173b305e6cfd30dc3f42634524cdfeb2d77bdc8d2f247af73c774f39f1af9745a46c33f0a4714eaf6f7f511f437b2283596e8aa6b55d3bf5a94d210f54b99bc642549da972e94dabd7d58d0ccf33fc53176afac3a0fbb6c653bc2e56351adf0980a14c312c38ec6c9160398cb97657800881c01eadd0c8030d7123f6982201d1eb4277b7d895246fef315e39996064ffb115e3b3dc50cdbcaa6129f6ddb2330c64d57e6fcc2eb83db1a4cfeb73177187dc8323888de1abd7bd8bfad2d184033292c21d3ce851d191535a605e3298c8c88f649b819848ad76d4b2f08ae36797ba54b5f3dccb32c8258a38146b6c86f175a888117d78796d7a90525aceb8f6986e4acec13281915f33a4207e1f4077d586c6b686ef10b2d16618aa841fb817df37968be3099a27de57c44ba8f8e55c0f1e401de53b8578a733e9e81268d462e2321af29aa50f814dbd7bd05856d890008148eee2180b8870ae846e07e48a6660202a6bd35a7391821c550e3810fad442b589ab6b3e0bca5d7858066260776148a778c3b9df8c391b72451df0c87c0c64491b2e5bd4e264575cf047cb82f20f95ce3101d92aed4834b98c8f0e5c81c8e6baf0ab3de870d9207bb64b6b99a395ae2de378f8ad233120a968e091b7e1aa81195284f3e9152cf211b1fa26674307a57390e56cb812e030fc50c9d18687f67226245b70e60ca87e9ccaea0e7d36a5d951a22b374d71a1b89129a0b4067c60317fe9795e4a0b41c4e03c3314ab9437a1670e4bae274c2e93197b2d7af9bf501becc0545707659ea737f9042d7dd711ebe6a801d34b3cd45d7c1275fe8559bd33d9b160744d6107fab7df7f419cceef355f513d30aa82e2249857bd05bf524273d46b9e906f557e02604210e34f1be3213b121994fd3fa86da4c5c43fd4bd213e76387868e7f3b2ade5bac9ada99c54d0e948520da7ebbeacfe48e2a8113d000a9ebe5c14f7dac827393a7ed2a5eb44d8a33cb2c010cacdce5b868f9ad8ee93183fdfa1d05a2febffd902b68bf192682a0b5a418bdb900d86365a25e5c11486ff4a2547fdd7cb24839c3bd6d2fb95ec390416dee8d5b4a1993ceef53a5f5ea77357674c7c0a27f78c483925df6adbb5c49074f5cfa660969cb506abce22c764de475ff9c41e064035c48c088dd6c69f384aa76aa21e2c0e4b38f4405adde76784b0cc331484cd3c954776e63a5808f7f973bd73ae418f8648a02c29a8033214099e4e65ffd33066913bb6fa1d5d360865bdb029896a8a5d5b4ec4ac8953e6aa02326d7da96a9067d968ed2e6cab00ad00eac6a296fb48bd16acbcd1acc02d221325e4124c3f3e69f6b0b825ad513abc0c7fa7899142274e2f8bff11704e45db46adf1c4c93754c73e8eb6267e5f69cc4c24b1a9bf1039a39e8e091d944c2981864e78290a87d9773a43898de581e26fbf0919b8a7bce07365e1df475fe75c3ce9b315b07cff1e3cbaca2b16f41309398eaf299b11253a015dc3f067a91157cd6abde00d7c69e9907f6c1222fed29ff9223f3761d0c4de8bb07ca4637ae5e0fa65f22a61af6dfeca7f007b28e764fd187ab52c158690ff734a8dd5f03f202707f27bd271ca982e5e39ef53c18f4cdee8a6285aa054683974c85b52ddbc3d6083b2d88adac9e2e4bc708f05e70e0f24d5b318757192905cdf1e5211b48ad256abeeed49bc752ca5c69c8c8481094ba4652a0a0d2c824b16048907b29c231e86852a806ff24014fccdbceba284ef0a6814696a2889d64c5e750b132d63f9fcd693a201ade06b92084107c6947efd9be127a8fc4e871cab766cef81aceddcaf89b50ee6f17652ceb878a66ceebceddc72b23d3c1f22de6056e27d56275baeb0c8e782151f843b4a90fa5f7bdbaeb8428620882db8bbb94e267961ad43d9f0649aac0a773e714fb18e5e7b3d2be2ab1b53e65bbe5b22ea43a1c20d56cdce27da15758d83d3b39536341dd59f6a174572c6b182bc20df8cb5739c1eb3cdebb72b8a602ea3b4e025a9a150097bbfa79473d056dbdaf2fc2b587fafac2b58b1bb452b2d62b815a36ae59a5a8902d7c63c125077906b397a4c73c45cffeeb57efd12c7fb76c568ec76f5d1cd0b151d946275b4a94d4908ac6ae08d272ab81acf1a4cc4645f299e8c84e8f0389dc0a625622a6a0f1d9a5080c918d2e1ad2b18ecbf64681d8d2088773c306537f8d2bf2fbee5c372b315213a78ad3506dd4b6a6cefbb939b6e0346ce2996fc6c2600d08760ae3aa1c151cdd5d0039bb071c71a70c0eef8ded0148e0368c79988c53c18dc8aebbadf78d6bb69b660f86a24a3a06f78445e00217e545d8e3323c2292d4ac683efd04a9f8c2c3a383acd7444d7ed39474102b2a436de7094bac40028acd4fc9d100debc4b9d5de7ae508068dbe40a7e71b1de99522252fc9d309f62229a5cfd785cad97b58cb7a5a5f9da5b5a50622f72519d1e6f2183b1cdc25e813e8645f0a541c0a3984cd6d551bf0e293239616769a9e35f94a1a4e8f52c2e5a98edee01020b1012306093e2465e89f60f4a51bcc3f6feff00000000000000000000000000090f151e222a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 41, + "comment": "signature that takes 39 iteration(s)", + "msg": "cb0c000000000000000000000000000000000000000000000000000000000000", + "sig": "6570319fc14d783b583fd81dbacc93c9f25e209c7e2d1db45fcd193534299d97fcf05beb603478f83fdfbe3ec2bf9b808b20c98d8d72b717cd72a5185c448e725023a0563f98943926a79fe5a2a79032e08c393d2c5a05fb93c85b56f13942ac010b90048fde95b3b4fb15741143321473ba593377ffdf7cd22d84a626259ab652002101eb3d86125ffd59fd794d9c5a728d7d4b5cbf1eb65a1d4d8d81483bd3771d53b7598495e12692db46e73a433805fe7fda3baaad3bfc5c0095fee660914c85380a0663f0d6858a065262d2de624c46d94c1604f1f168ddcbd2bf7b771c0a251b9bea65c3526e1f12d677d9fbb2a65bd35050fd2d64c8929ae862b89da6dd0510f5b4da25b9367f0cff726c9b3f0b7db05a1e5613e598bd8ea4306fdb17a7898c5f8f3375a8cca6fd7c1621d1bb870d12fe3be62440172b4cc57f7aa8d15acb44b2ec4152a65a36d098743ff64b8e767a4013b089a9079eaa4989c6982f84f4fefdae1ebd3ed204aef26e367bc7a9ff803f0c11917b0aff5bda98bb4fd7d594d1a6676312827fedb48261521c891252baac6beb46bb7e12952b114c13b1e47b42ccd108f9c9772ced3341cefacca3b7baf0940225cdbb03e4a1c1f0a9805aa6a5e85e6772d7c6feb44a0983f20ef222bc2db11f9a755d5033078bad4a1117c16159cd963b2e7d5ec56918399e7e2bf9a60a1a9f5d095a136aa9fc0cd559c85fb2b5020c4cc03fba4c34147ccdc62d0419c5913515e9b21404d908f2f9298be61437222b3b54d4db7017fcf063c03ec7540b725e5c9d0c3b9a415c7ddfd795ca26eb269c194393b7f6aba85600c2314a2d70865db05ede213e128e63fc9c165d88b4b72c8ac5937127a1635b35a6357d41f16eca42233986be1b9cd2e01c0c584371b2d7a75585b8e2c1fcb0ec296a22f81e2d5abbb57ce4cffbcd0393bf263e2a9bdcab358765b61e5885bae17e58a647fe50cf09cbe6b84461bdca74341db00c592d6ccf7ce5ad746d03b822344fddb152a91c1bf17fcb75c7d0fd60fe208650493d5353cfa211d95dd4d516a5ed6ef5a5f53a83f44d45dcf8cff27f7fcd565acd684d7bcc3910c3ffb2675c52735acf3796400de88048f8d1df93ec618fee34027f2e45f6c96a67e43104eff82d53d7c298d15758d5fd2b466b9a00f7ec438dec6a35d6745265250b46c7fa4c1c3d567d1837debdc1c72d0d7e340b03d3a3151037e9c3137af1b80bf266b8282d02bfee94a01187aebe854659c426f12eefdef522c050d8b514255840f870e0694fb191e918b5ba89df01047b8f4f7fb4142f7942247344ccea2e724fb30e75f824b9b244d13b4ec29b8baea39f494f5b17ce1bc8b3584780ae622686a7934249131ba8165473c9e064c0b59bc0db04d92784976085a389c04fa2fd6b15f49c70a59890af0ca86f05db1128e39b36023700919a89faf4db37d96b29b73e7732b37866b90455322fadf4fca1ff26fe9dde33a1e4645d394f24dc38541f8fd7a21e0c80ba0f7f5081874a677e337c802f5069121d4df8079b9b1143cda5edf2ec1be98f6bc60fb26ac20012ce73b3c56dea37cdd25ff02398be4dbcfd8f681f5253da1fff4b273634c1bb6f3ed991c2728c2aad1d1d1287f394f0f9024fe4d805f4ecf059bdb4786c4125af37e65280fdb8df9206186df5870b48cded097379d3c3f23c0c5920cf0f5b9abd7af7d5966a204be229476b42bec5ca903df94dbbe1e89941ccf36d7aaaf4beae2ec1e4ff5189c4525db0e9f30c11dee8c8673360634d49e59f928df07481754df3b0d4b14e30cb596763f3268d1106fc571705c6b94d7ff3e1be58a68bd1119910775eae6e0edc89ef7e3a4fbbbf71435c9ee55539d45ae764289e673d21dd62e38d1e5ecff6a2d76462454a5f366a017084b9b63ed39379a15d1088c2acbdef377e78bd0850eeb278fa4a90154783d64657ce67ef0bbe4ec673e2aea2cda4695909cda72ef13a8be8fa81558bcefa0373613c74bfbd5abad71b06b98edcd4383ba05dd89261ab86c28b8760e68761e928530fa733c71ec1ad2153ce8651fd5cae23ccfba0ca792ae0285421139b49fd4e1e3f6b7e84c34b0ce9e8ae3cfdba198f325ddad28144bdc8d04beb45d311f960d1e0e730180b4677c01d3023ce79416e94df5782bd27a150a97ddb7b4cbe7feaf30733253d27f6dcde4c50f912fc1b01f899ce1dd3d48152e67aaf1d90731b3d4b578528538c8989f9f76911b3bdc6e36d9894f781a0c4c74edc0a4e102702f66f1c8261a92b38754291726fc8eee9afadcf4a256745884063faca94b2a8b98ae96b0581ef2319ec9ac54619ba66f2412e95d659e7ebe39a909408e5ea7901c5bc27c74709d0621597e9e84ac59befe675c51cd075a25efb4c9351baa7d3d9c983b27ff1595a2bee73952c7c0b6c9fc252c8c7086402ff025c121b92c2425b3428b743496455954d38ece2b3964a9fac4457552388127c012a26bc88bf6866504568ad32a742f87123d61525ebd1f4109324e3b57640052563c9eb9cfbe683b5a325c6e8b028b6b9cef425d895ea902031752a5b7ff96a2af6ee1bd719bb0581a4a4159c0c58bc36e74c7360051934433ffde1b6a49f2c04e93077d8231865b3621e272b29a6f50f7a2d059eb380b4b43c3155d7b4b2b6eac7da5b135ae5b419b5f3dff09f68251bf5fcc3e10168ed331f5f0d1e0fb51e5ac777b2eb4d9a2befcf049be9851f791a6f059414ae3001acee646a07a222884387f1e56445d7852f7db92d40662e91101d5157dcd7ff517d3b864b557316b1dd21706fe16adb337ca7782ed5bb21e970afd9dc16eb36e08b728bba8608b15c30875fcbf6f939d96c7056edf024af12e1583758a005e6187cf7c2e2af1167700129ba74ef20e3afea22cab2ea9a24f90807cd839b884016c8b624d2cf13917cf427bee7548c51d4efbd1fc98b0034921c72645657350d189777cc3bec591fd205721d704de42442d2b8b742f12136af848ae0ed3150bb4987e31a3a544b9f79456a2fca7b149a8f1802781206b57d7ecbbd465c40a1b4a0e6f3a1f25c5ee35855908a46e4dec78dd586c086c04eba75769fdbc3cfae0cf2cd32abdcfe48e2b106b8df9a4b98291de33e648efe6f4355ee437ee7cdc854a3cd47c616eae431d6955cb78548ce93caec1547f2745e32686d930929982fa2bd1a187858511218c7342ad386105ea90887f0919d875685600706ab5bb683e1dc5196d8943ce821a639a7931e175df372b81901af3f08ef4bdcf10a18127efc074d190519a831e8ccaae06a84f641a2f5fab19fdc708e8d63fd66106acb2a720361f9f03a3756542d9a12d3ebb9301c121aa30f757ce4e56a2243cb882f9d7df7c26a52fc8ba8a0af2c1baf6746851a9c2a3e65ee15d456f9395482b5893c7937198415082992b7d7f34a547d77c68cdb77ed32ab1218d409bd71240857b13b0974d045e2c89ccf8e6a62104396e217f793a990d162d41ce4bee49792940496930a20724c9d4949eac997d9c2e5b9dfc47b04f0cb0b694e66f4e9cdc5b121893f79e52d3d61fca23e667da19286537fb2f3a3953947206806782d669ec03c17b1c7bbd09b4bff50d91252707a1a99d7cd1689bc4eba2f985524903b19d791da6fffaaa3d748918ac7653336924c960794bfc06f039580fc1ddad59980d1818c7ce79446f35576b7397caea996e359da3a3b3b7a882608ade4a9cf32380216633da5c5672cb0aed04512b6c784fb4b165ee2b878c502a4a3ce3c8fa48723694106166736b93b5e688961092f1ffbf603e815aab3faf971f9e3281f784ffa3a2dc23a164cdc4e81783d5486b4b6132ecd404744b248df1c32c769329f224674435237cfbb2f9806ccc1ba3c8961b4c34ef2ee69db7f469072a116f842b5399cea43402679db4245512a95107095eb057bb6ff24b6bc418b8c63d7bdac31c6802b29210d3662cd27d57386f1eafccbaf3837e2f8413f66239f2e689e537dc017d005ddcf003bc5c25e6e7b75b9af884e1b164717a14bd10633b4685b6d2ffbe03d5f5574b73daf7eba0a800f8b93af81850bc692b60913e16ae210b552ea00c4175c4514218ce4ca00fc16cc098c5c6aa499a2eda2b39cb80b80f39af8dbed96b9ea9b010990b6524e0133babae543296a6773577e1bea164689993cc2f4f14c63647c4bc9fb70091e09c85aa3d394f445567dfebfcbb2ba19dd37d4c0810cb929dc9ff9d2e5d5320439c7e568cfe1d4a1fec65ce576d9981ac8d45e5c21ee9eb43340b3db7d4de838730742616fb2d95dc2986960f08283207c414d907a044a3c96fe6a83beeb79ceeb9724ca40e2f0f340d8d2c6e64133d619594e73d592a9d24c5b00aa1dc8ce4752c2d86df0cc79e3d81a8a1b1d0cf50d47207d555be63db4f1d87e818082620474b0f8dfd7084941b14e8c99967d2af0552cbfe6cd388665ca8de290bd2593d44e139d24c69c1e09be1048da389f7b32828162ce85f830e4e2aa9f81eeb6e2f3e41fefffd2e611de17dd9f35062039c2b940b809560f9b3a749f0f60a04b06e024d107991ce612d2b0f9eed003b831476d71b7d1f07aa3aff90a353e778e920b519ca5b8ff394183b7cfe4f8fd4e73789cf600000000000000000000000000000000000000070b11171f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 42, + "comment": "signature that takes 43 iteration(s)", + "msg": "fe03000000000000000000000000000000000000000000000000000000000000", + "sig": "bbcda17759a78276b6332f3f95bbde79b676072fbd6fd60a4d43e25ce3cb2c34c4d81dc1a278a99c5d5faf8596b5ad4ff060294922ae3d220e5eae86212332da242a2e77c78db4e06a1d28220e3f4a100022a3b461d263c43d9bc5ce2e3984e192f3f8a5a2e1f25bf7a5e88dac482888fcb8657117a0911dde6c9cff20561460d7378821a073fe7eb2c6328f52c2c74f6448bedd9bee33c9b4bd28ad3410e3af07ce1f9770fae92d8996ea766e27c95fa5b8021c735413e86b277727f467f5786972c3df4e1547a2b921cb265f48a4a0e866eae0a44bbb32be8aca8cee6a6f9bb60069c3e8949a7d6c448f84e05cdd726bcb3224a50b49f6260e2482f45e047c3f49ac318a8ca1d9aa730c807f286303e837e6e8c33079ab12fa20433860caea7b91dc629feebb28ffda66e1e8636b1e4f90488a9dab533f0bd1596ac3d3708cfb2d30a08636e411fcaacd7aeff28d2253b128494d37878e9bef3676843352d01e266068081be7da3abef9603c7d17229e57714c61e512ed4e9b516d496bfd6a58d17be0910b280ef2e0684d94d957f80dfa1cf3a45c1b65f5a0dedd946b09f6d0f5e158f1dc931e4d44639a687924f8de96f1b061132224cead2c5fdde857e6848052c6ab47283db6095fc94b2c392dcdb741ff223febfd0a637f2162e862f4e9647c8f9dcba2e1be425f5308eb1bc507cd10af0df3a559d1e9d9fe91ed0f82b71585a16f8444e2908f166ef8af1152969a73efa663fca2aeed5273e17e84e694373d25265b0214f90a8f6b610e12f73af764183cab7e99f5adb7fef790ebb61574a424e2c40afda048ca5ee38d0e50f000c03aa3da579729f92b71f4e79e6fb386326863a2c48289224a22708e8cf3541467f0456ba6f2009c4937f88dfa15c0ffdbf4aac6d7f677544380b87284e142b71dc4ff51d385bc78752e6cd9cd7a12f54d6e38c7b7622527bae2ddc033ef88e313af84e18aa357c5ad56df9b1cb5ae393521f21ac8f912e5dbac2fd51aa7522ffb927f21b8e28d4bb9a3eb58a7b3e7b63027832d811ff57b1ce25583d2bc70aaf8cf91e6f8ece51433d97fe437127ad7f3b0647ae860d88f9e20dc6e281bac2e8f090911d7d390c6e8547240179871a55e0e73dd1114f0df5e380c56910fed56f674db18914eff380467d3fd01f3deee25bc525a672724d62f73fe7c0ff813c8a3202de503e38ba7c538219a56a44d5719685de991cc996f2b483fb8c0a2c818378ed02c4482ae0239fd494249151ccc433013dc544708b0fe45d98a6e0a6528b88c32892f64acd551a7d0b7bb884f3c7a18e58b8722e7a90b904d21d3004a00b468a5f06f4f141bac688d04f28bddb7f2421f0d2e4db7a9d7be94959dcadc9b1252b1d8547fb14cb81b089cf8c4d99ddac314519bb4c9a19eaa3018e805c642ea1362243caf68b8d4972bbd2f9dbd4f571fbddb00b65688ccdd344a47bf616adfa9b6927f796e08dad32605d97a90acfb70d4b4f9c95285541a820ca6e9e959bbbb1b77e2089f87fd41e824de384c3a59c251b7c571c1d89e40043307d170a4e679cad7ccede16cad15cbab0e56c4005f56fda088434eddb1b4eb04af6d7f8f5120b33fdc19858ece0cf755a57f3a2006750ba15d687a507d4e5215062ec3431f78f168218874bcb785262068e0daedbc750c1908420f87eca0f02fd304a52abb78c0968330a77e587a4e087a0baef408d3691290d2edc5387bfc169f52ade0b387f218dbb7efb9435d93a3a7876aee38e0a49c9c69d9a98197e092ae1faaf6c8ec41804b7da6e62210c4cc673952b95f55b929b1a8ea2b3d08dd5434c2651edc7a41dd031212538635cad974b382b670014a9241a1e2820b2a74998a46ed419900cc1464c2ffa33f4d20823efae2452aba5149e825ef1955572b6671f3ddb3452cfa1928e4e5fe84fe875ba853b3a56618be73b3c530ad3a6f8725883f7e23d136f64ff7cb727f1020b1f4a394719a71238e3d7542a66ac55011caa451a3a5e101c72be22fed87f9a663c5f0b0a4d711502391d1edbe0e90215b00fc08289b72425a0dac72546b539fb9cee77d3f084a39cb8071f504ef52979302836de1bc784b58dcaf8a3bb36981f45820a2cc35a29bb8a6857e7fae2e1632a857db40d1fc5bce39356d6c428cb5b4b8401aee5165be259031acb0af2a7433c41819a1c44e74a311707fc15ba6d4f0997873bc64358a5bb9fd4aa22b1caa9c030136e2b5f5b0a999e7ce009e3713dc032e4fea8f516a3e0ac277a36c29b5e2bf15cb4ff86110676ffcf33e4b7973a3bf248c7f6c02c9f091da8b85380684ff829bca245c3e3e53b67bfa4bcd34f0a598b5ef09bff00123ca0dad69518a765419fd72eff17602717957e3ee3df45a82a573319d6b40dd6beb7051966577d41383d97137eff7db84a2225e98d014f2111357edac272a89a7c50e0184b27d6a6ec611f70051100e9887657cecad1f34867e6d144c360e9eec53bff7b8a8a4ddd9cf254e5c74054bb8eec9359ca1fc91eaae77a9487685a209ea960b43a8cd198107b112deff2391cdc326300e35473a634c96d933009fd172601000c28fd58243469bc7a634c462b7f2147c99de6a6f03524f15fdc7db81357ebeb1eff404fc94f1c6e40912ce2661d8eb9d584f572a6152ff88d764c20ff024ff22f6f13605b3bd380d0e538f2b060ec6afca3fedc244e18f16a032eccf437f38b9db144770aa247e0fe7fe7001aedada4cee551e5e37a38b64e086e442799869b7948493526179807d628867bcc9fc6fff1a8d2a7203a5f0202e00fa2b7a851892bced0e5b2ef90501df3984f1a28746e6584fe944f6436daf003a6ef2613c20982e3ca9191228835ee1102e5fb67d5acf87e300a6de21d7091d6a573167b0a65f2dc79f979f5d1ce55dab07e2cb2567266f8e90ff619b6174110372f43baffe24e3711f114be914c0e01c56756e2460293281cdea5cf3321f789f64fc1f19269471f7373242c63563c7081e70fdf014ac4e11d1648e6eda56bf964599f7f91fa5b85f9c012236f700380a45b12985475ea38f03f1fa5453a782d059bdafa71344bbc2c60eec43d0edfab113d7f8761bf37adeee2ef88a5ab5060f004de5d69cbe2d772a627548a85618899a2f3d56ed971c8ce87acd78feb6476eebfc2f50075e984670a31d45d9a351886fb72cfd889c6c3486a824b0d6829d6db49812095873d9935843fd0433bdf9d4f4ebccfad9fb57fdb7f4bd73b0ceb1373b6e55d564f48f2d5d0036850ee0e04f824f45ccdcbb735dcfc5cd1f38c1238a28119008cfd6d608bc816d1222a01cf368f5871a9c25c3d6b023c235f8e2cc4e32bb365abdb16f5f9959236aeea856c562432129c1547b845ff4f143989e5d699003453bfa694577c9d5b9cbb21886ffd65b3b1d799ea31562264493d4f5f00b4531e132f7f608333382c23024936851e1c4e785f073a3441bca8823f8f56fe8ee7b484d09f98d898300f83974b9e39f56ca4184063901fd34837ae0269939d598131b93e68e982efc2e9f23183194d5b1bd977f886be2f58f7ce51a317adb1c29dc153316f7054cb17df75e455c1bdb3556e008a66954ee1c082e23203d89d8ede425dc355c592681fb20b8dc5d9ba8563da39470c3a86eff22c218f796f9594a0cdd39b7e12d2ebc46e30650756f656241606a62875b89f864c9bb7ec6f22a3086377146a053b373e5e6016a690c5eaca8c923d17e7d49cd2e81a8c2b41fe008b742983b48b973a2e87a03295868dd6ec34ea1cf51c359d5ddc8a0f3b480b443f9aa05ff0b98da9bb79595708b9ccb683e4580d20b933b19dc025f7e8037ca6fa70260a0ce40e354b73304b0840121892d408a19ede4eeaa311166d27e711deb9e4c2f22486d01db58a504caede74e928ce2c39e68fda561cc748cd20dd5930241eb700a177fea79a33f041c72bb5ade325eaa2f7ae60d9a9c65c314ed410a94299f608a9fd3be24f427f682bb27fb32f9bab81dcb492605779267ee0b7195ca1b7c52103692f204fd4cb665f279fb3a4a392022b8736bf5af8480bc5f766834a8e1944c83f41185d2704b6938a5d9d03263e3deae764d5e9882b7b2e4521b379d870d4968eec4099cf9007e6519809ff133b36eb2f728159b36934834990096418c1620dc41e53f3eb8a55c6657687a1db8e5756c2a8250d8ac9d08e5487ff27d75b8efe3351318dd23b791e580f09feb7b13f4d82fb0667fa66c32f6074bddb6843cccb7a6cc7769822dcc0ab6487f54c49d61f2109b47cb2c87c0f6f158298fd22f1b9fa39ce57c1ec04b69f4ca155f8ef86d321fc3bfd52d26b58f9c108c729fa5b5bb3426628610ba05e816f362815b685a14aab96b63cf2ee717aa975ed4d3cc7172e17d97eab68a8e32220a59279e543b2f4894fdcdb792a7da257dd004eea12cac243c7b9b67b0b035b5d9bf5dd54d7e1fcb0a44c7a18cf45c765777c3fdf20bb4fb29adccd24952047234331feb580651282e1a523e96e0d6bc35a50cb42ace95edb1eb7bbdb91e499d3cfb463b61ee61f851bfff32c944f8b1090e7e3fd8d02f05740a840fd6b04e969ea2b6c3f9fb7086267ba3bbdfe3ee414994c30622254253829aa2a5c6d4060c35444e7f8288a5b2b6d6eef8fafc0000000000000000070910141f2f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 43, + "comment": "signature that takes 44 iteration(s)", + "msg": "bc10000000000000000000000000000000000000000000000000000000000000", + "sig": "7886b408e355ac8eed58a28db36fbcbd60e3c9fca1f77e88ab399acdf57fd12c03fed5333307614b530ea3446cfdaac07ce1fd5310cca41e224bba5c0387aaf0091a1ff0727cb4f62bde0cc681d1ff59294df794196d69a377bf46fcd717c44904184f0b697713bfecc4ebed5e119f23deed3de861965ce6c8c7573e45f29f819c5a67f858edd3a223ab300fe97f3a019a9ec43f24058ff10241ffd008164c78acadbe329340da4a98b07ad384d87a9dcb82dc30f341f699e1d6865c00ce0d33533f52f6a3186add7d5c56555ecc7a4198550103c46a60e9987e00588c8720f4bafdc8f52c76785bd7c7ae66954b1f89a3372df91d963cacfccfa384c9dd1f00a381dc16fe205391c60ccc9997f50a05d7ec28a41921001228450ba221c9887c04f6c127a4b979e595d9d48734147d261587144a702ef180e845733abfca6b60c628e2cdfbfe9dc9e5c310cc4a9a79e9fff5c61af2e9b8eb25df72fac662f3b0c4860f5cb30ad2510013428c18cf2fac4fe524a86d600460d73bbdd287e470bc2c3e92df0c132dfde71447583dbb0472c2f6c6b99835d351788ddd09d2209191ba821fdaf237851d2d8698ebdae44709ba44358a49924ed5df96755b30fe5bd467714860e92d5c68c22eff2da7024d53fbffb6f04dfda5e9efd44b529fd708dd6898311e5a9bd73d2acc5518afb2341144fdd63159a2d8c092cbffafe65e43fd29b0e6a3183ba3eb0f4a0f393d4b096a195aae986861e7ec97a70d5553941e23bc96b10ef09397bd938f47d32c6a4efcbdb45c75214ad4f43d1dd73bb4a929b25e5c7fd00b55d16a0fbd2b4cfecd03ba0d94feb86837d404f03a296514cdfaa9dbf424b9c3344a84f2a99efa4d273701c32780a8a0bc568959dec3cb58ad52010253eb1096f752fb3eaf9edd4269cd53195478d6d9ac8229aff4efa1a7b7b924b38d9d5babdb6efd62029d21227e5c49fe344980a900d395a5635d5a5d5e4e60df03e587e5a69e0ae1114d9128e8162d111753456e0e0e9266587873f81ad81c3121eaa4f1937d5b2f3a36680002e81cad221678122a456f0304b36bdadf95de811143b1daaf48df48db876dfece80e7a02590a597d30cb02f43fd0ed854806d8e586785c01633b5e1aff69fccac11eb74dd4d15d4c7785d0e8de88163c8e05c07b2dcbe2ae0a6001e4b696751ee80393036d8d2f825d88ef3d7ce51cb2d24870eaef40d3ef91293457319151efc02403b5ced3ba2cf0eb4c825230e8a8e89f31016ca19d5cf3cd20d2d5b44d9748afaa034f8222d5cf20183783a26728df676ff8f55caa3f17df71149d1d4e9f71d058a3d1d6c2d4e4d2030d31c795c2fcf08832a4a8d1c2b2297ea3081a1b6c5c74e297b576a3b3901b071c6cfedf84e619e7c879034c36c0759282a271dc4c1444c6603fa2225aab788a5ae11aa242ce8dbd3422d4274dfc807812fa1c7d119a6d43a9e35d4af818b3727d165813d65441d2d8b42bde43d56d781f5b9b341bfcac73180d88c933d9e25c9a64cfcf07f3e03f89797156630f953e8380859f37c6c630fb4a95b290fcbd85b9f2e05778aa874a4936e10638d21fe3cfe0176191399ed293cc6230451a163dcc2a525ef130a8d1c2ad93ee87682ba8e061101bcc332794c6ee2673ab298982318a3b68d10dfc46e5ecfda4e1164b35dbd296e4bec9a01df32704b76315ac1c5c660b871f5d0ccf4065d8de4c1ffcc8dee4178bbab66f1b02179e6f73bf19822ca9fb284021afe756259f051c11694814b8b019bdaa9fb261e8dedcafd2d69b19d1f96f1bc82ec77ef51031b96dc65481885763c5e6746ff0bca40d1c375be2b2d4cde654cca8415cb2a83a66d216001d692c4937c138e6e3b1c18c54c02042f8d58033fd49936308d1377e5d88b98b4429afaf5e4af68f4a1f5b2e039cd6b5dd3d04777e65c1b2abaebc20549251188f697d1c7373a62cb7b08d2dd367021bce2b5f4a28e6e93d61733eda231de2b35c9e2c84b8063e9128671a9a27b21ce5b2c6196769c0837fc1f815439bec0536f017f10803f5ca14f1280988679d604e19330f625e3965e66d59bd820cc15a3ff8f28692381e2477453d153f5e139855e6ede385b5b7d72506a3bf53ac3ee843a8dadaa8dab1e2f84fdea598e2c6aa4e3b4ffc58a78b53171952d7d49b05fb6e59ed5ec857747f9b1526a256fc0f048c0c2e239ef8dbdaaf671eb75c56309f56397a3515ef8b696128c08cad511fbc86492e55feecc19a4c854c40d36cf7215d3980b7243107caf3a3d7ef580f2db196e1424d35dbeff8277d8c0b0e749e26735b78e10db19c8274a81b1168f09504d0a2aa90213a72bbb6881064db6b488c8c4bb5620b8c2793e853660adca017e12815b378106a88e59505be0eeb43b03afc211103f2d20174e5ef5772b9e87953f9ba96ca1e69bf79939d6eb75833dfb233d2f7fffe6cd1212ad896105492ee863883382403d0e32124e8a5fb30dd3d5a44c5859c2f7a1ecb017410fc7208145193230273e306622c8cff46393a73807cb210ff8c8e9bdbbf474377758214b4bcf6d2d45ffbc3b7664cb4c7f4d9dfe2fd8d76a2f9a09922d6f5876a09fa45617ce12e0bf0ecac9ccb6041568c0e1da7b023ff02542caca8198844eaee7144d535583bc7628c11b3c02d285ba06445cfc96149af917ff7b23a3a57aa9593d458d10e48c380396debf3d00dad69c5e234ef2dd8f27bde03bb8a214b8d8500e5688e5eb75ff30d6e0ca650b283d726096a46376fcb77a9ebfeec2a1a796193111f491e7c25e4a817aaa8333d4485a73f6646ff228985080376264e290cdeb8abb5e52b5003b6bdad5e941012edc370533c1773e8182f019c140595cc28ee1308c6eca317eeeabf6b8c630274327ce81da763cb7adcc4a625f0c2252d3fa2e2a75cee7d1b457f74760accb952e364e68b300e509ad72b06f64925a410c5ad29a55433b926d1cd6fa754587e1c761035c86f1b0130acf97a82a89b7a9a16981d8c451ef529dfeb7a8b072089fda297efc6f795fe4e91c49a00a5388d19bd553d0dd2db09bb53aaec2f2b1db95d5f3ed9b470d8e8ca43c83e04aae5865f84f590b58e7fb9c86b665bcac31841c31b965622e40f5d2f01bacbd2cfc9a97645bb303968c2bc041074fb9f80ffb6f7c4ae869942a1b8537c5bceac69010991cbfa28eef201b6f31bdeb3acaefc6a5fea55f8aed6ce9160973d621879ccc6d3c96921bbe4e3febc7e9308f0cab473874812051043011b4c1d73476592a5fef111e6e858b88fff4c03b99fb22b49817a7153c2251f4524ebab30968cbc0317cffd227183c3fabc5281df4467cac43f17d1ddc40047d1ae3935e354334ac595f0b756a8d9d712717f7ed6d83c0a58364ac96b294f17a411731b4d46535e20995af972cf729f7a8c222237e4aeb7cf8694d7432c95c7e9125bb03b0da402a24dca423eb97433685e698be8d0555292a3af58a36c5f23ba1cce6854e5cba1bb1d6c989ad55dab142ffaf46a1ce65d73994132962c6c50868bc697b2848f6b9f78ea71ccd9122cb6686775d7f39d3245ed1fef51ab2b9d6c95201169c1200021a315aebf2501460859b32feed4e37709c1d3fd82c495c69981043ae54ba577276e46e155f568b7efa9db1cb204a6b601e4562535ff4edcd884a2ec25d96286f560652c5ac73f12933d9137016f4fc3dc0ced8957523109cc0f97ab47d4d29d577c2618e88c4a4b6302cf01242a6af14aa1bfa3a287a3887885b8d0d276f3b113b1cd601f6e78e5b0a4aa1bdd15a5dac01213f57fac75bd292693bef59a3c1dba65d235c6834568f9a25e0a9c8150199f378ae482ada1adc67af79177d7e8d2c08e743264299bd2e92803256c8f7da050c4b8e097b5b8edfdab9c3d6fc8f6b2077d99f914d6fa20c10b65391be16b6bc0ad69794ee5e6c68b722765b12542ec9d93e6f622eac5a75551c0826f95c69a50e6ba8e7b255e002a6e8db7233cafdff1c0e3106b7126bff22c577874a861d86a1b323eb3936a4cc429e85023984f7940db34bebf39ba32e6242bdd78a9e707ed14e874dd9b93e76cb258b19a129a4b7368e424a56224187a3155349060e8bd0c0f71fe47a003314313a5bc93e774eec2def8a26f48ee2c84860b08e3cd414054792e2cda188d14a7a13ec99dd4641b5ee12592b312192f20ab577b1df34c445ea1d656c9c7ab466344bfbd4be5a4b548bd201031eb3bb49ab4b9c81a76022c413d62836ad9d5355f6b69b9215f9e729e8dd5cb9d9db4b2cda30928886ddb9ff89b48c49c4490abf9dbbd75aa0db55409ee084ecf6c0b604fcb6691e3fd8f54aece7c783e4c623920d52b5aa79ccb6e0335ae1c215c2198c0e65d0399621896009a21b824686114d958bf5211a4c51d0890a376335e50442cea9241ae3f6c50f3cb53088aedb6658254210acc27796bbd7ecde4d12f80db93971907fa13fefa7203e566c63a121a3bbe61c486cb044bd94b8f14d172469160984e5cbf0577d581d4500a9b1a94403de6f9dfcf7c65ecc9f92acc734cc6c0c59c6df459e383b73c265f337a83b0bddc1b0a494a0e67c7fa2455766779ac3080910162627c1101f3d4a545769d6e36fbdd8ecf075c6d9fb300000000000000000000000000000000000000000000000060d161b1f20", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 44, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 45, + "comment": "sample_in_ball requires 76 SHAKE bytes", + "msg": "9e17000000000000000000000000000000000000000000000000000000000000", + "sig": "c900c9555fef3710097fa1a132c5d61623c554c4c837d185b7f3d1671a8926062e094cd3680be899883c036db34e39698133f314f6148dc3aafa088c06dc01009685f1a0ddca3b0311f9f521154c8a692a165c3a488419c4745412cb06392dc6a4d12286627b6eaba2f376a3225ea85f5890df2d03ef9a565ab2f94c99c25d9239bff7ac74e94df677e7282c0dd44c06fc2f26b33cfbf8da05b50fe725ae9de58d6be87628dc41ca774c8ce106428f012f2a806631cb5c763c722e04fc7e44f86fc75b1398a54412af3730a3c60e47d611530b873feba32ba4b34081e02652bc006b9e106ad6ff4b698445e0f0514837f94e4c49f52f42b6d1b655f90254adb8456e903224fc60271f280360a632afb017b5255b6923eb8c8cbfd62d24643e8f100391fd713b27fb7e8adcef58c26ac4953c3a73bb6d12262f78228774e274283f8b810c317d9ec0eafc05c6dfcac42d6bef8f8963d17667f7029182dce0566041612a7c9e6a5a9bfd953caa1e88287a20a83985ee07eae3c5c8aa408667556f7e19d657fe11036a227342358b7e42d5015513ad8ec587a5f19b33ec2e06a146904edb381ab11b1c0b0cada40d89cbcf5d7c9f4e15d8d7cca01ead1a66281d8e5f64ddc1393c2a1270d4a97b405d4d21adb189b8eb44098902eb48b50c5f5d1496bf5d5ed0f74e58b8aceab89a7cfbfff608a8a90d2baacd652115596e72fa1740848b2cb6b5bd8ecee89aec60118f16f4706edc781c6225daa0bc8539d82addbcb8810ce2687f1a171a3aee07516cfd6697c2e5d63629bc43ea3ed4a982bd516f3f448a50dabd95ac314c92f92d468f4f063b1fff69dcbdc3a4d8d21c01deeaaef7b9be41e934a68c144643a99ccceb8e3106ca28e7b0bfb3a9c5e31e33a822573db60e4a520e8f2190361b3387ca038c0210fadfd294bf8c1b302657211a54ff4b159be164680d3eb4c9abc7d6b07c2b81a5085f4759465f95f367005fa33544d56458c2b51bbab862135745a22d994e30692ca39b8fdba968b3766bb627dd6463c54487b81a27cdf9b1daab2a83c6af174f96dc454feea043bc0cca7ff9cffbe6e1ac04ec830a0b4e5d698681c9ce860da61249f3137e7980bde1cd4eb0a545c10f725f26a9e0d4e59987c4d516c28e938290bd88ec1729a553f6c7e52ce9fcc402fffdf1aaf47def0875c8afcb8167a530a94291cf107e095f90d92998f4200fbde7e5ebdb8a3c9282f57c2efe94ccec3b5aaae61afcb7892f0b20c3878e95b53a70f21f327b70555550a4805ac6a706d4bc408f73016b1045e2fe2c2be0195af8c44855e3233f99d5aad848cca7fcc43a0b5a0b37f54fd8d9f24c365011448a85f7fba7a9a7b4aec183bb680198d1626e24948027081d8e91aa6cce10cea8a6314eec2c74787cbb627a09f4ba7a691d963c8c026a2c1abd6a14059ff57493e5bf14c18fe982f7921262c85f80ba72f4dd88eda886ac13e63a8bdd9f72b04a781ea9e4ee2f58a15acbeb2a693a8f61091c02aa0932154817aaaebdcb7471b9d0b4aee6dc34f2ca644b0114b6244579f77e096e121e7143b77443459bd5cd1ddd9623fc5784bf34267bcd78068a0b2225f21ad1935ae44bcfd1a23ab4d012c8ffc9276d4e0abb5f100b6a90ccd7ffc73a44b5169a027b2f92f7a49573c997554e94fd5a4bf54f4cc473e794b60cb3a0b0c5ccfe6263c4f91d77def6ca8c0fbf91e923234c8a2657d91f6ed08e6ee04b3b2a62f29b5f467168d580848912b5c2c05386aa52ff2999d6f7d5b142cb1bb78a70db30d4bdc850d52e0febcbe452966f5a5d6f5fbd28aa498497ab03da0b3b773bb2849a4f1d6ce50ed0d356c3142d33eda4f07907c6205b52cc66d49a5eab02d8fedd50847456702f74466bc54d9d12841e65c0594bf55539c177cae24e9572b1adb5b26310ed4ddc2a14421bcc142ffb3a43acd612df758abfd95042fccd186d3d9c5b0cee0857f37231bc9f8fd80d4db3259465ef11d0679210394713d99bda76d6ccda91d31a287ad749a344050a9ed08f01be70350cc2991dd4dccc04ff78b9c9d339d097ae2d828afb843418c82a707c0eccaf9a3b412fc68d5725a31a064112930a8c6c7350664604606d4d1f817c842ee4ff032f69ecaa0cbd49768d13d06835a07ac388da3bef18115fb096ec01d42966d84795551b9ca8e0d11734161c71713de45b545695b14cf2d883e4cd8524e9da3f26f390dff3a23b605e24e812c561af01ff087c544af8e1b4aadcb4ff5cab5ec1d064cb9d340a8b0273f178bdc8b413ac88cd274b7f0c1bb67f758682e31376632e6cc2cc4c16705eab7b1fdc1127ce985c0caca5818f661994c7a6cede3ba865488811e0cd226def609c0a857cd2fea55daf0e116d18d0d1ab393403ea1393fe4736ecd5f0d31adf6f43eb6be97cf58f8e5bf5b54cd2ac0d2a444e8f5088396fbd587048de2fd1ce1f3dc69e1601d0f723b843cce8cd9e6144562003e5bd448510a3d385aa231c12432ecfcbd58279778b93019f03e78ad39883dbc1907d939c1dbbf5f21a76ded80efce94867de48fb54e64aa0cb93b2931fcbb7cdc45bedee33e1552c624d19b116dacbf4bc874274bb242cf3ed50489d7dda672833f26d7978fc0766c44ee270dc4c70f16705ce3af7eb4d9acd2d135dbbb3cbd8ece1db7aba3e783c853f1b25a30c04fdce0d8382b60df232b3e94d976b66b356827d55046a317dd6ebe6029472dd2733d960dc4b6fd1610d4ce57e45c48ceb482b8af3ff722ec97c9e569fc066edff9be4df60f66e862c06a6e04d7401bb2b7156f8b85747e9c51510d5cc6e0ea37bbef7f8d8124fc857258e91f9e1c182eeff2c4644fa079527721e846ef62bb01ac56d61ce40a2b3ebe75c0b19e716b40a83933e9d4a8a3f31c7245a5cf049be097e7a70921b850978f9f4205d58a9e0360d8421060bf32eb6b46ab7e3378e9c28657c42b14a94e2b658d2f5d3cc3a5e13f50d929204fb4d66230d2075831646fb3775d7dd99755df394c81ef115cbac093c69c735cc07f8917732dfd564d13454f617826b23849a73191b7af7992320ed5ae41b89ec7fd62a3e42bc48dc987ac55f8e552d0e056343b80981c9c2f2fd2d05ea3c8b7be5bb115a686ea99917e8569160a0fac13b7602d46f29190c6f80f69e46c519619d8178b7f79ee1bd6f87afd5beac38a3842f734bcdf6014052ed8769af35ff8a329b50942d1c99134fc0c31bf5a57a26367c0e7d599e5385dbb328d64557d6034122fb8bee15ed62d8de367a1be38f0c62777fd1f27438fabc01b186cc4c045c4c9aca26b64fa1e41bafcf859bd650836826c45622892ff9605b61cdd8ddbf59a4a1bbaaf8f9cda01545f25957c2636668c8e9c2c88dbc129d2633b6dd8152831996bdffc019fefbbb0178a524e4b0e69e1c477bb9007d679725f1ea440fd94ddf2ede8b6f909ff6de1b45603ecf44e63a64d0149599cf49b60db5e21af00b3aa99afa349e96a57cea5763a096d97c17b7cfd6148fdc89470b1873ca1bbaf004eeb665159d57a7a0dd330e560caae5ccf348818984dd5b94ff8d78931624e771f22f0cc18fa54a5068fd9c8123218c4bbd8e8996f128ae39a10118840c63a5d8819d550aef6a11252cdaa0a39936de328c12c5fea5e7f2013b812510e8a75492b5f694f90682dd8176d4fed45b3919ae39f90c2bdc568392c139f85a84940b5e0ea2a79a7b28ac3d5a79e32e545f7b9de9d6994a6fda228030f74288e967d9b60c51fcf047af3b4a86a5163849bec0d2b63b2f89ec5c6f8784341818d2196a7e8c98881aeca2869088e7de9afed497e4535894022eb36fad950e396dd1befe453b14e968b6bd9f810393193e90774eb4131b6ae211641b15f13ed5482b5fc29e68f91046b1a895c3a9464d1e699a30abb85afbe40af3e33a1dc7e95f93294b3712ca8eac40326a32a7f6470f10ec9888708be86c90122df4e3a8da7778ca05a187539064ddf9908d7b6a82d1ff8905dccff610c9765953cd67e3fb4ccfddfe3009fb6f2674bd99228ee3613715897a35849a86bc0a38416540de2b5343c15b1d70d2a73da969ef67d25484bbdb2d9fa7031930065d4487ea212f9fcf7fe9b044d90572f98add754b8f13757651f065b43325eb0cc6a6b72381347f8d56b99876b0cbbd936bb2ac401effb14a5e828a2d74d12fa8aeeed3c64fd15868903920fbd0a4134f24f3f1cea1122c7cf9a5905b70c2162d9436c456d240d509169a67c899b0256d9304c064682a986272d12b9b4562ea4dd581e468b65653d290bbbe6fb42c79f26e2a12792ba8c18bf59f6fab262c2fdcc5e1679b45e8e5e400683b8bce46d4aa7401daa837fbc0f2834d84225fd82f3d35e10f505ddc776a960e3387af22681d85e6a5f3a0318fb133ffddd7603183dbfa4d36fd66e8bb2adbbbd72ccc3f003b0af15f1a03893439b3953670c1a5a9a67aaec332db413c55896f9ad05691ac236ad7a01338152972add9c221a681b7350bb00d365b5b88d04923d118d547ba7bfc74d80e4a54b3b23a9b09c79e9b368ef10d9e7baca7249beeaf1df2a3de73d79a670ebb4d6d708397efff2f303d44464c920631a6bbbec2dadf1321303845585da3b5ea063d436869aaf3fb00000000000000000000000000000006070e162028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 46, + "comment": "z_max below the limit", + "msg": "8700000000000000000000000000000000000000000000000000000000000000", + "sig": "0d671077c3e64cd312a5554e0d6728bb10120a34b3de9a7d85ce41ea84fc1e02695340f707cbdb4dcfb3d6f590978c29426c111719a47a90d0223edb934a716d7dea3804153a75c60d56d0bd4334e2d7ec9bb9db4393eaa9a98b1bc37d9b90df162945841c4815b17fe28090b7305d2e61c3ca0d6f2d7a6e39c60378f043494d541e7f47d70a6813daee881ddc46e8244df4732c82b2d32ce01c0edb0a19a31e63516f0da13228ab4e2aefd5b9d069329af236a971cbf554713cc6484ed052e7826388f5f0a1fd8b2bd1b92421edef80478f457c899edbd251d5efbb77eaa4549f2d923d7fa5ddfc3b559af16a8f690223180ad08fef97e992d5d0e44af54714484359ce1a891bdb019de9ef87b1cc626d0c9a09a2949f15095850e997d42e45774e5ba9bc56bd6e6d19be2ca567b534c155905deec8dba9423469fd25cc807f079dc7bf2be38a350904c4ee3f4d271c90e323fde28b66f91dd47ca7aa74cc3faa9a5f1d314189985b135aa7e6aae41d23a162a8af8e51709b54265b51d9527fcea0c86226cfae391a4b0e18634deae056e8e34ad7902f48b099242e4663e2dbccb9c145dfe0d780590451ee139195ee493c7104792b63260291da3957f1fbfd2e8af9774c22bf224d547b1565759e2437fe48f5a976c2f273316acc789e3ad247266048d19172a16972599f50d4021afbbdc6e4b6f03ab79e5fd4e550f8419b9b2a8ce174c521d48959f83ccb15d8dd55a64b12d5c8d6037382c3a232c89a8b56318f1553c9844b81905d1e00c46733f24a6d5f88b67c0245e206797c1bebd61576b20b179c2ee7092a978a710c74fa32fd648ffb7ddde487309f14866d3466922dbdd6228316519cf1338a0e544de4266fd4d9507216913dd554c4603e74d2b5f8e4f2114059f24bdd3ca44a88d88007fc45d571767616aa45bafd6ef4977bf8459099ad4434b8a214207289bbf59438d0760bc46d555acbf6595a5e5e9ebeb9e175d0b6c3e4b37a99d1e5ab0c07cdfe8145344c9e44fa1ca5d77f28db5246953e4542eaa186ceb249ff12c15f6e59b1b22ad003c974ca59c29e87034d5fce8dd5e03a55bc2c3dc22f3298ba4a0e2c3f85857fbf1d209af66dfa242ba7713b7f0d5b4fcaa73c6e6af62d3676c77474d88c451e19520f0b6783052e70e1f51b5a140b1b1584fac8ebbdb76d0bfe41712a982b82836c40ec4396ec084cbe92a0e925e798a4dc2e91fb6b07bde510e2f4b12731c4a6335e2762b8d65eb1a2ecf0d2a52698794ac293cf4a9c936d6eb21167d923daa11d3c112e3670fcf486bd40baaf37aff16314dc364ff74172f9deb94a70f8ab0ace974d6b22a15415476beb193199e8657ca7e4259e883c8736a975f9de2f7d3a2ad67dfa1169b4b2d83fc2c64799aa36797afb106970ddb63867eb8febcaf43efd467a28212f0f3208a2e9bf8f62dcb849091fc98d634796515e1db40f58d0a30d74a5d1056dd735d30aeb07f63c44614e131a6f0649dd2645560ff7ecdfbfa2700282d3d297054d3ea93657e5a39bbb7f2f1a563fb3f6792482d6afff95b6edf1c38e207d11e453b67996c378c22b8627bf04143d60e7858c07766e976b5e786441dc96ca44c584a32d00e64bc109fe2e0a59d039d73ee82eef1a50d6640c7dbaa4bcf7f232221eaf31c51de48761bc66722ff46a34ab567d562e60322ca9e501f8f4a7dc3eff3d264d59647c0ec9854d0c0c9d8e2d063766870976b4be7a52018cf109113a2b8b295f40a0604d0b31f0ba0cb395396f9ceb29c470d24f6e6d3d3dbc33ee78c2c8f3c47dbf2730bc131c9e1c2f9937dd796f6792b1d5998970b14876080c8e7f9035d63e246ce3e67f60d66e662d3f76e8195dd0d2c219e7115d79283645d0b9a1cf59d1e7e5a5e4163e11d755a2ba7975b983f40d59fba6956c73a79b64fd9f7c975cff311b0e2b8290f51ae2d086c782895878e68dff23bed99e4dbde108b46e5d0b6de55045dc34090282a5cf3e3df31a4e9ad37dce65585a6c72f3ba0e3ee15d8f68cea8356713015a001fef56079a8b4b934765ade73bed70aedb27a08c6f9dd0bef90fa4c7d119810b3e07dac414444df971824104bf43786f9337628322238e8886cf8ee02ec38b2c4ae42edfb0e95d3d354c82da8eadf476d145adf89917f619d32f126033e816f2b53fe8116641998305f48e86062d26cd9720722ab85aea392c804a3e136a00513be362e433eb1a8e9a5904ab3131665941b175c135031d7878c66dac7a010edb12c45e8cbce97837f122b2beb2159052313fe3f51148198b6d3c97851ea3ea26b87e92b7a16abf2c2c8c3a9717bca590ff3cc6d062055f14551e03895c64500eeb25f87e219832cf40f3cefda3d59bed69a39e5b46cf8f3f8a6c300122894954b95b3b8d995504ee81646da4301b6914066b1274f96b21386adae3b2ea22122315c59be277fd309e81995a84881954164ae1a59addb58c9edaadce1793320310e3dc955267341088e398c2d8397bf839833cafcaa94582e152b8ddcbf2c4bd45d17519614bd6de3a08a32e83492c2ae1285d26f667b41deefb6d401e29cb671281e2e06e79cc1ebf470e444da552bf0052db7d087907a06a50b633a6d0461f0ddec6ea2c71df74d85e3a920a77cb43c02f3126880febd1d20794315a4448177a4d2ffac04ab3aa0980a7c413c7baa6f8b097ac662bc104a4fb928e72602adbc4370795434ddf9f48f96a9c6a9227781069e209b826ded8c5239d0609f24b71d31f564dedc6edee96ef862e2a9fd559702a49bc61173023edc0ba2742f1b2278c85887953941d5a58720a2e2120d49bc3e7d6a7f2f00c6a039e137c77db5f7a7c3d43ad2eb0cd564af81a7584ceafd603e0a83823de3a12df635b795dee53cd93145df3bb8497da2b683e7523d859319dd4ff19f2cb01763e0c41574d584f4c5619f52b4b4cc2f2c74925043eea26754d5db6ca5c8b639e79ea8a09c39d1d4c436c0ec849450c1b66e450b3704fb8c9587297064fda4cda8d6be6e10c9a6bd089bbebf8decb1244fad182e6cab87fe3f3edff5c13efab840183db736e701e51f560c1e14827b42d738d37d68ffeca42dcd5466d50841dfdfc6aca437bcdc24884d471bbf20a6921a743c536bf01b2b385fed9a3f3626798cb577bdda634f8c158833e52d121b343dccbc31d3044092ca4cad39e913dfd32bcfee874afd9a02faf07ba7108c05c4beb78c050d5539eebc699fda08b360ea334814caf4fdced62f87c47d36c1fff5d8865992101069fb6679d3f3ac87b7e6e2587214105dc25f76c4a6779a1a9e6022ed9ad59ba3a7b4bcbbd0d63d2bc0674c5fe77fd4fb6a0ebf65b5a73bb87cd5b36dfb71e7a54ce2bf8d9b6a86057536c4a7f0a7c5820828a0280adbf0cfdded491fddcc8804eaf9fc5230d59906dc7a4ce514117f1a9bd0499dc065ac404512b0315a6ef17794bf296d9d371115f60a94015da2f50cb9ce4123b1ec8c0c94213ad8b7018dfa325e182a68602417c95eaf70789d521c9d3124621b36cb022e61f211b29baee96bc013270948a601fa1d3fc66eda9be473b3ec13fd0bcd59b06736e8296053a4758c7e7e1afc5111e1d43dd199aa708d95e548ff21c2d3e4328d43c9637baedb275fd9cda7d1225ef0d40864e6771e53bf5fa836121b4b6e9db6e1021d7bd93e5beef63af89b889ea83429abcae0bd9e1a079bc35e71ca54152c281e1a27921ba4e6b8f7594df32676d4762b82335f1097a92f49a86e5641bf1d77175a9476cd42f90aab18671bcd7c35dda9a1cb5da2f66bb80a5187abf85afb1557e0ca6052c63b6bf9627604823c3b6150eebf657089451bd04981691098092dea8cd5a26a693f0b38f42cdf42f831735869a15dbb3d0c322d85b0ba40017c4cd72e1a60d972a0d8f254e48fa6fc702a555f0f76598d1de2975eff26371fe13a6ee48da8252053ce0396f352191b416ee2f94dc847196def54f311f66896893495f0a013c04c442806c3d4e1f6320039db9bc1d94a51515344249b480087c7e3e937ab3124254c7824a99ca6b03f165d0fbd026a641ecf9e538f3aacf2dc6cfcec150aa7bb45acd5dd9f20e0a1d6ac2a2254a365130fb48f69fec83699413f5ee3e88b678c2b2d1dd316e5f8fdfd5a344c4241719f55e17f2ce1a4658067065efc4a4f970db9f1a52cb0ce7eea901c451ba95d6f2cad66610c33c9e1d63af3310db7e7cb85e3523c79dab34eab84296d7e2f610d23c4c9ace9387dd0d77ac3d37f1a35c78c7c31a7e55a9a4a95139fee0339c2647a56b32864060c43b9aa9b62888f4fbe09053dd5e5d9e71d311911f3ec864bab3f3ffae8c8b790cce1d8d45c3ed020ff01a827e851aa090338602920013e0ce3453104a8abb8e69717b2f7a9c1469bf0c23b79bf38c73231e7eb5537fdb2c677bcf1ccac3c37310738246641f4647721e7a3e165a187ac1400a0ee967ec60dad51eec6da1b858985345da8715284fdd876292493b21208d3d305ab93207c67180d217c22102011f824c7b15c92f2f32d6a39f9d9a17fe2874c84fc4456d39490dad28388e4ef46c602db21ed43054beed2f8ba71fbbc9d03c6dbdeb11327883a7be0c0e1c315d747c7d96a2a5c3d7d8000000000000000000000000000000000000000004070b0f1523", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 47, + "comment": "z_max above the limit", + "msg": "6e01000000000000000000000000000000000000000000000000000000000000", + "sig": "289ccd0e0e58656b8d32556fae8b0a317eefaff794b013ad8a43234658706a2db12585faa83808a733a3a88655a5d7e0201b8bfbbdd3bb545dc306806a26939aa9c93ba58f46ed8d9c37a9f6e0e0afa09f6c3b3f3abeeea3c613d122700fc91e88ffddd965df08430eb37fa28bca6db2886601e075f77bfecc67e415d1ba783a01c4776e9b96fc26a215084828b0921c90c59ef766bebf0210bacb23b7f26b8e572bae202b9131e725e367563c1b36218d63f8a2988dacbc73f4a46f313b97f660057bab41c1ddb99df76df8b22b16754c333ec2f141302bbd2a1e967c50882699860243af42b6ad5f368d245823a71c02a338ce037e337d4d8c5e2c2c7d54436ef786878e1e25304a27058d89e7212f688c50cb701395a5c2f0cb3310c9dd48777f80edb0d2a99a91f0a444296c1b4976b6161a9a43e5ab551b135e0dc66be2f06aafd8c50c109d413215ab4b39d3063e061cbcf57d2af9ff36f89f0c80d483af483673595824ed4c4c71a02ab8c4135a6791889b8e43958a5b509332e84b1380991d79c6397aae3cb3dc522a7da89e925b189a840c2ca9cec4cdfd8bd3831486d2c0d15b1b9bd44684a8aee873806610e9ae0fab2c61e1c0366f981d5a42bbe1d9cd179883f249a7a155b80bdeaa1cd017e9d3e0080ad03a93f09693da8773b1256b22c20a6531a9957ccff0bb44cf0ac3e5b0438949a589755d516fb2b596336c153dcbd5565b6786cbee057a41c10fb762c280e850accdf476392b50cbeb2d8e7f6a6856887e4a2098cd8f4264cdf39972add334a5aab45002058f19c6506069d7acecc184f245a25a1d242cdc41d52f2b3cfe23ba797c4bf87a33cb593963179e5fb08ac5edc5d4521af466cc3c28e6a11ab2f5f8d06d668fed5b09a7f3f6686dca450467c8ce0b8e81ef605ade33349dd1582adcefec138f004df5057b2a54173fc587ebc3de699506d19e61380291fd59e50a8620f1c9c2424f80a48cb1c342534f26f50e52ca4056c315348dadd204467bbb485708007cc2d8477c518047c42a5c7bcf83e763297a2e4e0fbf547b4e3e577c2bca76762b35d3b849966c9a0e9d5cf570bedc0ff1b779148fa125566b67d14b62421761abb1eb04a9fef43c08d9dc793585fd30330d3cb1b4651ede3121e836cf427dc6f93b4dbcd1d3d0b096be780cf6318aa31d23f6353a86da38b34265b277b7710a025e0e91b7133d08f5ded6d74efc88a4f40bd256a6c6f86d4b869e27953a6c1a40d19f76311b48e3be34973e65f17afe1c408062da2e2a8c474c6a3cf32adec928c4adfd9611671f8b04538f7605ce6afe0d7836ecb06913555b730337bb19a222d3a7be5ce8ac44db76a79120ffc7dfa81c07590955587e61828f782e176003dbc8fcc38fffaee982f61e3bb503ffcc44806a23d3e480b4fc5d17c630b2b5855d67e884d6a2ace9e0ce81a7a0d127dfba247bf7b90634f03049d7aebc1419eb4e7b2ba3303dfd3a28fe5d42a73a7e190df163cd241bca717679c819a5bfeb11ff46e06c46c4c9fee4005a466a9e8660e01d050fe1c103d73bf6927e0ebe4c14b314b3d9300362b67ba5f0dc334a334eef48fc248a7604269dbd9dbc0a380af5ef51a91a48689d190d152213a818df7965e4ffb87b3bb7b65fd2ddd35e947789710c898e95b431c0765cff907b61a799d65e2cc99c5696777e703d3d6459a71901c0080c57c636d21fb0c9d1846e356e0e3cc7a6518ac177a61cac9b6ffa8b72cc77bbb86165303813c21c750f2b930c240e4e1a3a5b1801d1c8f4d8e4ed2e205e9b99fea36b0a26e015ebf7dacb547c17a847d495d5d35828683f1432cbbac95d3b5c77b151bddec5fdac911de1f096cde0baec71e5bafd5fa93a4a42185a4f324ad14a7165a38d659155c4afc72e1591689da8f152d2c7836f3ded5e31931b3a31eaeb83362f2f48e04d1951c06916f557289b01ce62592bb97122c110d9b608a181141b78e5ac37171f424041ac9d7c56e6d85fc635279d81bcd9ca023859bd152074b07337cafb0756a2532d2c023e45cb48fafa19030b0b0d79aef3f4576e35ff822e7cd014fb9d298dfa6a7e8dfd4ce2c52ccb88026a620e985a170535425c01695f3b71bc67a9c3bfde4b7035498378c9fae3921a087148cc61ca84953dc6e86e07f6056d9d16f2b4220fbb1b905a1a89ca8325e3d7afa5c18533bd478f47aa69c7d0d1d1f75cbc093cba23c439aacd1911b152107155462ec9ccc893448620ff2d24ac6d4c0d3694de957c53fd21d8f7b83e7cc2ded752b61ddeb1a222fd6b9576e6704d0d1adacfc963cfb5844df234d7eb97754a1c559fe81b4e64907166ccae5f581a4f8b90bc63e478b02a7d6194e3607a1dbce74fe2aec7eb63ecf484ba30399fe1315e59dc2c97f9f6cd188164cae2623da7c83bf96031bf14812612d8bc940cfdce410c7cd5f4668764051b82327822fca43cd49f35db19e1d79765ca4b662c8bf1bbeb180776867021054c3461619bc477c70e6fb36b80feb206a003ed12c3984ecc328d4d476b66a402de1a711d9895700897679a2c6bd8481794ae3da3bf011ba67873757eff29c135085533139b01f3a83a5504bacfe73cdb48acfb08357397c7d612ba4811fbbe51c9a18d50cfc530616622ca8e2f06801473538286ebc46a04c877b72eb8655b4b6c5cc9bac27bf6490c5f593dd020c5d30bb462023381cf1fac19d71e9701c49d539244e5a9922807ebcb11224cf0ebaae37262184c61774df08726981ca49531e417c90e51df7965d0f8508e525bf9cf4c6027d74a11f8141b777da862e50af076572f4c78026c7fd6b565624fe0e2fcf3111b3373f854bad57006f276588c9ad57bda5cb5a0e02e659cd0dbcfdc174a1639e6c9046516d916534cbe5aacc933ac4abe52295c8533a4a1051b5cb4dee48055e7e1d1bcf2154e1ac81a54f1f54fed9b920ffbc2accc896ba0ddeac418a71576aeb9abc0ab3a0bc15e57787ce0fcbc868ff2545a83e27ae616f2fb5939de3b71bc9ec5a2f064a736ea3e4afc1c8b5996f0ded8502c5a16317daeee9ce8320ca4346b5434769ad9b8784898599508e173d7f14d1232a2f84ddb1fcfd8de75bb0d59f8507214df21e89762bebfc4030bf0c9239cd7b6bdc4085f1a71e732a01c0e2024d13e64eb0b582bbe36a214454bbb51eea590ece8d1f81c95891ba8f203ea52c068bda155ea6f992ff1eb276a11c584b5394e562bf6341829fef1936397aefe78264fa7b9b3055c3140cb4635f20b3e4dc809e4e48ab4520253330a35360ed41ea3eecc0ed7c4f77c6d86b507934c8b800a0ef652962d6d4a5d810ed17643e950e3025cff4bdd524c8dc19b9a56e3c79c6d5e106e4e199968660588a063bd3ee369ca6f8c0e7f2034caee4ae4824ec663c4fb485c81df7ea86d7226be80d5e63b3782076a9bcd0f253c3564032f7c82c22050607ec01831f2d5a78f197681365bdedbeb6076037a88aac92733087a110dea7d6103ffe6b8596d70032b903d1e619494797d6e56e133538f80a91d305b07ff4ff718ac8fe0452bb3314f89555d81526a02cf189326861c4248a40866faeabe04cc1a7c88196c6d4fb3fe2af385212a3cff398caf2be65e7576befab7624f1e9f71c285899207c2efd2bfce2ae6ab9fcc6e46c42b028c857a86dcc944739ac4fcdba51b16dea3672149f166ec8e5e6913bc355208e3a73b89480e83890f0e4331aab624ddff3a103fbc4990de6ef8a2a48eeae86d7c6fcb136aaa52860e41a135a50395e12511635dd7dba11281c410173ab8df4408c9a2b51b9c1e0ad9655062957ef4d8f0572afeb829ec443825c082d67866618946f2962f6541c6b5ed1528cb410521e493680e9d937a50ecc0c50784233358a534e8bdb0c922e6a89b179d2299c47c26fd9f3c783514ea19a87b14694211e55ee9e4714bf5808c4da9a9605b12c53148e52014b5983e03eb47755ad4770bd54dd1b071c9ed0c4cf24103973b815d267f3512275e066f39c2c219c475018e0191c5d18457a2f4f224fad67deb3333620fcf48f4b4df62f358960b56387a501e69ace7d6b438af7550d6831d58f0f642630d3ad590c9a588e25610a963ac2577f67ede49878d87a30e69da83c6ee600022f87072b9618137c029ec6292d03b21f54ceac63f740c5a5b938b5c28cbe6720d55bbc43fd9cf915bc199f32911dfcc8642186b06988443e1c557a4713570505ff98b0c516db185da76eafa1aef72732816ff31f1a829798d1a5df2218649013a1463984e585952ef618e31ca2208b162687d7cd723e0b933fa373e3d795355ce1bdf5cbc74e8b2a43b72ea36dfff3cc7e21a4e117829f2f547fa475cd776600967b0c0db0bda413cb905c86eeee28bbb4f1f1dd29bb283a43cd04d2661f069077989a1eb7fbf2c709b304cd9fc3277f86d85b2012270e6fb2d083a814388622548c999938f1d52f3f9f532a9632787bcf8a63c6ddd5e5cef2d19e635579273ecb0b43670f12bf0e93793ff345afc2c49bfced401152f334188310c4fa83f7d3f67b6008e98d1ef9dc383541b466176bc166a0a1928b99443b94c585a5c71727b8096afb4b6dffd293093c8ca0e1028667797cdd4f80a154a5d94b2f662748bacf306345265c2db0000000000000000000e131c23282e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 48, + "comment": "r0_max below the limit", + "msg": "3c00000000000000000000000000000000000000000000000000000000000000", + "sig": "8c5c7a82862de1800a34b8201c791d6c7288225427f7deb02f52748a35a8ac269104927b4913e528717ea107ef8605f9b7ae265f798846a3abf6bbe7bfe0a4d6bef6a1f6b49d40b972a5a1c28d19db196f709b4d962fdc646a7988f80d5af74b29adf34c7a1aac065f639925423d37bdaec428de53efce1db750fc2686af90ccc9e2865497b7cf736829981afc749e85e7e9b5044a92b9ada3740e3fb39251c5bc400379c4ded2615bc3deaafc54e34129b5cd1f4e9612964d353546ee5dcdfba712d985cffec78e74bb2e6c12ab45233ab42f19aa095ea0082063fd0fc8e1023ba1bba2b4816f011c644be94382af44cb7f40c27236ea1e1e6f49ded751927fea168d5a5b2f238360835adabeb4d1b1ce12ccc6c1b8e1e855cfe323d89c34a1a683360ce9189db6a9a93bfa5f70b7238d7f796757d547c31f786c9bf1c91546b325a05034cccd586a6f37879fafc6973fb02a540cf84d1a4f4c3f3ccaea925567b9571bdc116cbb14c884fbe35974980121f7d1e6b0413fc3cdc42dd4fdfa4c33d2eb774b3b188c3a2f2ef07f36489e80027bf5a9e3b607ca45839bbddd9370c9dc98efabe00635622562ce4a12c7c6e2271876f880b8d8a9a63e5c10f349490f982e5215dd94bbb74bca994aae7143c22285c5a15ab950ded53059821a526f6f10fa3feaac97c8b83453b20f314e8cc509fde7f5daba0b2cf4676a9286e1d9ff51f7674decfe2ea54c11a9562b34bc15577cd591088e5abb0e49c152135ab4d496d8f7abbbedc1f332a06d7ba9d9a65ba61b1bf3bf67f9a191c96be2b51d790f8dfa988d9e69a5ff9484967d5fd33b0d7e004a73839a9603dfe2bd2d1f838fea9aa15c9bb2c0f2dec02d17a3041d6e4291bd7d4c00ace00ee1f4a6dbc5e4f76fe39fb4ed231b5df55f7a42b9366396816b5c372975d5fba004a20a7649341859903760ce8fa444945136f9ad67017cc70d3f6c4d8ef7459f1a544dd93d135b888ac4b0f6cee4daf45a436e967f76ec477c8efecad626da1070ff4ab94dda6bf04d19a5391333a2ec6033e780e6b3c9575e9281423489db02201ad6867b3e36e1f462e6b196a2410206a71073f19d707ac63320bade5c6c42e2998c55da602098695db63144da3f9a9f38b53022df84ddf8777a19d678659e44e35f3d8e069adeabe7b79856f8796453f3a413b4ac93d87ddc119d82ff235cad30c561138fda8b0310cefdce08d4fc7794e964df23d5f153a711fb73f694ddbba93cc63902fde5488d318f5359b77ba076337ca43ce59c4a9012ef52d86c34411dbaeb3fb2edb4a70199885d9e04e019c4a406817b96d478acc29f5db9b4cce0da8474bddd09619198d97b3609ac1a3161e75ee485cb6830c307436ee1c48d80290cabe41f3d4b881c4af4b2c2d82f4b6adc9fe6a1532e39b96350f7fe82a23bbd1d9516e1d25f089cc085c5c72b880f0306f73b5ac1fc805b0dc5e80506e06d965f55485fa61fe6e9ef0338e9de6bba5bacc703eee361de69b3264c280d75ed858f736ce9815344c859ec67a95048cb5dc03e328e9d10ebc6d3dffce0765c3fdcf5861c5de3aa7a607bf78334e8d7ba00daaa7ade8f79060b1e57b9d46bd6f448509934debd4e23eae219e04e828d316b77ef5f15041f3945b1a98374d1c47fdfec4e4714cdd7d2391df6670b164805b0a95b2f31d937446a058a8f3a8e968d0da62b8299405fada9e67e001b6e30cc4687120fa759cbb390237cd7acefb0e474dd95d9d790423bb19c390f233e3f8b7739342fb2adfd623d4c780a5d1e702b8efe91e0be39a61a8a93e48a0d730814954a41d472e6395999c828a98d5d9bef23ee7dfbec1c27a79cc8edd035adc5763eae1ede0bf16235b8da7616c4882a6724bfe2f7745dd992accbfe90d1af3e8ce26a9a63701089151f4ca826e59bbcdf40935e6d3b55329d757dd3461ea78f6bb109389b92e41c5d18f811e783779f1dc3a14f0f3e30a15bd7b377c1bcccf621127865f66f64231a4c77a913d2f9f5319028a1d585ed38835df077e0fd0f6101a5b110650992f029bf70b151189acefa1b4584f5d56676c401804a6dcaf7b18d43078089d580eb6632c4757ab77c6c5fe3b28e3a1dd0aff4d00584235b2515971b9644d100f488ec980e1f86188526a37d6343db87f23ec9424c900404a0d4b133df270cccf54338ef5d6e0bd7a2359a0a892829ec8a1bd8f8529a55ceddd1f343ed20e08a0a0b68e3df9b22e1201b1ddd8184e7168e12196f84885d317fa0102753e6dee29a5203d2206fd6eb094b60a58fb3b0a5a59b4cc109e948823781ec9bb364ddbaafb1d553dd4933191b0ad56b7bf3398a4b1269aa329e47646f4e9d97e3aa2fe320efea245db47b63d0c36266c3f7d1c2b51271b06dd995e7bf6abfe861acdaa3534e9c2fc090988276257228c7338209f2cbd77f85b8182150d3287bed5934dec2a6c1d7b2b670716cb35299234fd94070a394868d95c5aa4d92ef9ec6fd05e80747d7d69522cf5d5e4d0dfae512f25d51c0d5a61bb43fcf060eaac8847fc6388377b1f260171ebdc24373a2a177b568f08779ebff6204f2cea49afcd8bb298ceb4f751d69e9bf840b567a1614871d72f5decdc8dc5808c2bdc41c5793e1811b99d3daa9bc4827c69d1dcc4cb55bc8c6366764b96a3114c093892c9e2f1a736f4ed3ef2024360253612747ed4cd3c690b98f65faa23979cb9a65e8122dd30a9c1f2cc3ac1d77783a3014ee64690a62567769cc43252ff23563c3eb4803678edd7a83701412809d343aa4ab428b6a1132b1d559f84063911832be2dfacab5836148ad7ff94ca08afff9835e69f216209aad727ae19ba24b9520bd59ec6b515c328e512e210d6edc9d8d78729bfeae0743e333d731a2b981bf5408239446ba16f37300ebe23bddf746090e4ab57290d2d1eaf1285eb62b968bdec6f5b8bdda4edfbe55cd1d974e2924289366c1f2cc38eadf153cc1666dda976d0fac32285962fb4e5ca87171062aa2a98fd7b447b7271b93abdd28d88020230f973ed7aace2302a321312233927fbcd390ac217a8252a338ffabea7b94051cb03255d04d538e5998c72027251e7f36ade0058eee853461e8e36824055a63d5ddebf3cead8033dd5c8ccea4783675d8deba1cee201dd2154636baaed297786d9b1299b43f058e5649fb01bde625c415656c30bc7c2213d82e83754d43d77b5af9cd2d04642ded3a25cc8da578ccf437aaddb39bf0db269e2e2fbe90723f18b56fc97325d57bb6b8155241baa4a784423fcb50ac5092070a76ef4895209a94f33a4072af0c3c458077be24ddc153449883b3bd6ed3da6e6be85442be7bfd96c0700c46dd79118f67f30d6eeb519323d3057da380fc0cebd9ac6d0299c9ec26f32c04bd8752f710dcdaf2f4ab235f196ad0e54c2f05e825b7d6e1634f3dae1895e4b55fada1eeccf0203d23042111c4043739cbb1b823f6cb7e5ebfa4a8359eb7511dc64ac0efb6a0c6231418e5432123f6a25f4a9f35dadfbdc10f502620e6d76ef9a72f893d76ea7875d909efff9be03400aa8a1e00db7c07cd4fbc844c8b8e86345d49e6e916066d07e06edd980176d4af31d6ab20115b3f20e32f17bc565b2f95f3709d5837fb1f7ec5a0dbc12a8f7d3eb4e7f9f9b6744e4864c343147414b4c104116e63ccb61b5af3f7c5db8b5c05b475cc7f39b888b57298051d029ce9017bde03041abf0c91f32f28a834fa95d60cec9a585c74921f60eba40f13b02de973d9f5499c9b386a5348414d333adce8bf4717d5f31faa4b3e96e91dccf7512980b8cce54ea4be82ad1dbb8373355f45ed6861b08368f9b86f86c35ddee6daa1a336d1c4d2d2658a15bfc76fb462dc0b7c36e97eb16e5eb0773e95581199ed2f7c4c219cc4095d2f8e6ca444d6d4c0754bd39b5494af3d2a01db862cacb1cd2225af884a43e5fa4fe63e5854d3d32f47a8e7af2991d26fff530fe8d57d35ea76a9431a9335fa1f057232f69ad89efdced883e6f8cc23baa485642272c515ddfe4524b3a997e173a22eeb008ba9c16adfa3830980945c758fe92eca8a96b32b274825e2688c11883d138e5d695b10f58f2e2c6931764c91edcdc40d56c72756c1e20494ab26986ebcdb2309060f4eafede1eeababa4d5da8418397a25309d19937dff876ccbe7eff4b58b87a44cddc3c8b1c4f066746036452caa32980e224b53eff0379700a30599aa2372ac4dc081020cb364546484dcbaeb8c3adb6d3ae4a9817dc2d987a690c8eae1863d38d3458f817618edf6416a71b6c30c928d5a6da732c6dffe56d7105141d5941e02bcdd55689892f0e77b9623fb065c17edd799a186f80b686ae5bec88e4f16b05923c1515447ad9c82adca69800a6b372e406b6bf5b5282480823183811a512ef5dfc0b21eb77048091ef023ae281dacdc1ba7d1ed2d9df6811dd5d1c9a1d4f1781b74ff1828a6d410eac1b54a5c251c055ec7f84cf22e3e96cdaefb8a9fb9c6ec823ccf141d2f6dbd1f589c0ec4102f6e91b3f0610cbed643c68824e7159920f52098ae33b5798ab95521f869f2b958691c4a0926ada90bf7c6678f23314479df021214537aa6aab7bb183154b7d8ddfc1431616793bdd541b8d1e1f10124263435606688f200000000000000000000000000050e151c212a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 49, + "comment": "r0_max above the limit", + "msg": "6400000000000000000000000000000000000000000000000000000000000000", + "sig": "44f2fae55e75d4a14261c55d3b8f9d7ce296180728713a3374dc857bae406918542bfc12db9b25fd3d1928c9927b72be345024145c41d3689654b26e1d2d6364395c150047eb8b6ce89daaedb70d8095263514fa5317af3f6c557a0b91bad5e2fb6202f90183d2e1d545f5a09fd2f5cd5550e349e82435d55deec6424abde2e6cda6f794738180260c45999b51f9aa2cab98694b8d0af27441fc4b57289e7ea07b010c53e9a755ccb9016765990942a3d389500cacbec33eed059d412435ddbf46198e3c747b3f41f96dcc879ed3056b20da470062c0e1724112f48aadcbb6ca84e66c4af1418c66ee6115fe736305ac9f177f2fc8eac53d494d24164760e827a45ea20deae2034dfef4f8b552a0b4167e1f6272918221d4610d1278aa7040079672d2d191bbb19b252f84f0cdd46150d7be832db3fc8018aed6087b5e718bbb7b3386266d122ed0f27bc5b746651316620ccae5543f993fd5e1cc62990714e585878fbf20c81bb45edd5cba6de67010ece4135117baac8522ef59ddeac03ddc9abd91b47cefa3beac2496de163c00716956589bf84ff85e0732ed2073d97c5c34a0878c3d329e99a5a5a1be3781fff22646f1bb83ebc311889a56d6def19b8a86fb8553b36a62e13cbba15a507750795119ee309577fa7ec15a69be34a15135095730ae2ffdd72a1cf6a9bb61b221531cbfa0495200ed9f471ed1bcef9cb8bc5117c6d6806bf28dbeaf52bf2a9329119c5c896449c233c4a314076b00616773b87d9e8aa69c135a7d24c51c2acbc6e58df8bb7b6fca5fb14b13c9d0b33acd8e8b439a8e5d5bc31cb5bdb51712d148f935b8728ff46112ba49ea5af30150fa80a8249a2ccfc99f8b7c897d83c428fb15e6cc6e640a697d8fc6672098aec99630250a7b82075296afc00a15507605a5dc0f2b1a0375b263c53c403883f42a0304b99adaf834b1f2599e22125881d87047b8acce7b5728158d178649cd7a16d912177623c637500dc5b4bd13bcda0824fe377086862bae9a41c180ac807896c1371a78326cdfba763946ba608400d930146bf86efa861be282f44bce6e032bf7d98408c3b4a1e96704034ffba07c182fabdf4014ef2ee8ff8ef7e837ad75dc3aafb066d07297a290af9573be900b68db9b6c2746dc0d2b1e5d11f0540d170571ed530caf1033e8a32beffe622e3d082b3bc081b3c30d8e1dd697e9a18432f2514df6f90b9b42cc2c1d321f6f9bfe095ea7229c4d1825c8db8e869b56a40cfcb924304f8eeebde54d615521ebc9753c95e9831556c854fa163990d5015e0370f5d3e5b4ae7c4404c18ee125ea2fda5ac43127ad07567c44c806ee61a79353152c5f46bd98bd2010a53acdc66df92ee6fc0f93e678bf44d5d3c8e9adc305bede02008bde91dcec639554a4dbc4f6625571cb5ec821f2848ed33fceff30d8728880956a1581b5277fd51a61d4e13f7871198b78ab3107701163da8a30b379a05718aa79bb01b528c187fa91466588961f2e58db24a2afbf0226359a4e6c3da0fc8cca4be25f0abae106eaf8e1de7ce9f1b7d24ef25bd41aa98a99610b016f062d89f678142b9c27635cb71e9dad2ec332350f76a2b507c8fed9a17e60e19de2c1875f2b3f4134b903aab8819af224fb7eada88c67875040a07699d95756ba929680191ec8ec3efafc6fedd60ccc1e1300698bf56afaa31c89d16341f3673fe07880e7009e1f5173cf79cf0364f0833a179b5886226bf8f3a6397d8b499e9c020ccfe075fee18769fe9f7765ebb6ee630df990c579580f3910e704c73ad61512a9d47507e8bc61b9a61ac006b751882b20855e6b6ec7c05e303ae533623bc0a8d30f795ae93f057c7e079688b792456deb50dc7ba9da0e141cfc76ad0a902bdb1d032d06fa47a817d43ee784cf0ca4b516806e7631e40bf0671b3bdbcce7e2ed7ecfd994e190c9e500356d60e1c73850cf5b6bcaff9746b3025815bcafae19f20468591b5114d465a47e7e439ec0741eaf533d5ab5c57df0cf745931ca6a4051bba72dccd4160bed42fae52ba39d7ee2d3e2cd20fd299707e2a6228f94a5d32224405a1dbc5f5f0d269a0880cae9f0b7d5c0ddcc01e568a03208dafc9f54e715520ac51eef04d8c4b6fd5ed23dbdc9259029129b1b5707bb197920ce1265bacf2a7a7f81b77a017976c3a51b169eaf6f77fc68ad23e2edc7a07e7d39908704123b2385011d9e6b56eda29a8bee801228e3677241121ca21efab92227475998de40d40fe76412fbdc35449255843e3e6ce620ca0dc91075fbea5e531aeb9db6cb5153c61e7f55681eb46cf49b31b2efecdcdeca7539e8b3da30519640913672164575cb1ce89d2afa22da971c371f602070e2b1c7488f89239918a5f0df2257e8206ce67106d66f308cee488974e56ff840e025140014bc776211d632413152fd55b53749262c477229da729c1e56f885f61d1afefbe11f8e5038a5688835f3842235091f7bd42b908097a8106e4760259ed7464c0dd591ce48e51397bda9f3514b443a138a115eadc2be7f08edb4c9dfc9f1f065430bd9da0849c45dce861bfe839954131fde47e059c5f933a4baf982e0ec435a8230fb3eebc9ecf7ea65d0f376854c331fafadd45b07ebbf3041cf079300a9dee19a5854e147eb9c88300f5580c54d5801af62f9a90bd91da9f52cfa6d01a08ce390a179bfd6a0d3ba8e43408826cc36fabe685e9a1229343e5303b108683a75c9a524eb776336d0687e7e62bd68f4d425bfe7e4db1dcf09fa4938933f78387e48fffd47669233cae1e8bf9d4a2c63444a776595a48b3471a67990257cf7a0417d34f553eaf423f1cc206a9257f1aed004bd205dc1e7f660aeba09dc1f9991062665d38c0e2a4638c2bf61eb459e5e4725a0bbccbddfd66b239b31c62c948a485c8041ea3b6e58a0090bcc010ceaaedf7a2e8cb28cc23c925724f099ca14a33f42ecce7584bdc073e6f79ced17b8c113075f1604f31362893a3b5ec2a4953d77b68281c001fdbc6a853f4fea04c1e73b9bde7bead3aed35ef68e0ad98f902d7a7750b7461ebea8c2b7e9246c49b585107e979dd66c01969c65d34c22ffed12ce733d3543672a59a06854fa81187f3a0b82524686beb3a84c480aaae6af5a43d6c943702e49865935065f972c466e2e33554615f242fa582e04b7a330d84d5352b5a0c1a28c8521eff8baabdff6c35450ed9609fcde9291d0d38d7cc23d662a6261aed3ef34cc281501d9969425a42f050c7e6b0b1f3a549d7ef86cd1a4aac3a233ecc36cfc2a81cd69d951c31290eb73c71582bbacbcb99f3c29fe15d28887349c9aa2496b48ece89d581c697590efdd60351def42770f51f59d55bce58c5d2886d2ccc668237f9230a155be656b2ba71f58ee343317c7f37ce47f5736d99a056ed3e88ba59581b9b219b7e972b96b2e03cbee95fe9a2ef42694bd93e7e9145ebb155b6b9a7590058eea44d1e877254d55d052f9979ec0df8b5b8cfcdc1c858ad12d4495437a5c8247a071997f95e01943207be1ab6069e7925ee2e6e231a2f133177d0a91478c37c19303097971af66759f0eeea69028de913edc1ce9cd38edbd05c3b7cb393ec781ee7263652cdbb3201527501b60b7ca443cab817e829eafbe49c354bba16c1a597703953ec059efc97ca0f1bcf4bb2ba59e5bfbf64b5cef5dd1a7cdcfa40348b5f8979e96371bdcfed5bc9a5036955a40ebba28d1c5d98e592a046320e3ff7e2b72d25db20fb2daae4e580353598ad6673163fa3eb95f5b5561a38fb1ba8fad671795e7f5aaabbeeaefc4a7962475d8b7df0fb93c47aefd46d88a25397f6be11fdc4014389121c20750e80168565771dd932f67866387050d0551664a16b350e4761d6033e4746d7a5cb07b65ad4c13fc7e64a60ab9849ee9980855106c7706253551072105e28ee78b6e19e9f9b25bd39493736a2efb2cfb7416b84b6de23cd559663c2eb8b223f8c764ee4298c75f7f068824c31d4c19cfe9ddf3871f7160c87d9565c5d67e9142f151a33e2f9ea79702c6a7285ff963dfaa68b4129233daeb77e0aa2c1ccc75ff7a35793b2fadf60a9b1b9074f92eba1cff230c461f1bb486b3e9caa0b617abac2d963434ebae2e8ba39b238a167895430f5c6eb86d93d678ed1c472c3f3e9cd58f27f24d124df2371e98fb08442296592d79db40a6f388f85c050e7c434630ba353245692d549166727c31955ed60be469cf60ea09909f92ca87d5e77567036882b11c04f03bdf89d397513adf17146d52802b86797815316c2d21d0b1e95e671fc87e067d2e7871c28257af1fce14533d30dadd947ae2b1b9b78eb56278340cce5ca9a17271e1ff03670d31ea801cb89d6364c0d6b671d190d75c7335ba00497bf43ff1de81ba5faab2dce55f29561d13cd236507a88f942e6feb9e77a552942f6bb53c857f192c126d3f1ac53845f54fab0a3114f6bf3dc6dc251d39174c0f732dd9c5301cbd39a2d7fbabbdfe0a1049532cd378c9ae999700ef370a49206f7f7b208c7fc7318056cbba332b9c73e0165c97fd25f73f156750448c5b361c30e23229f2c325a99fe19df3d884418ba1d1f00708204a778ac9dde7224f687b7d98e3e4e51a244e7ba5c3c4f00a12182c335b60da3188bce200000000000000000000000000040d161e262a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 50, + "comment": "h_ones below the limit", + "msg": "2d05000000000000000000000000000000000000000000000000000000000000", + "sig": "1ca68ce5f7e559793f67c657ac20bb8f3117f28c1ef02b8b828031fe11b146ff61ac67fee066d1a8b9a8d8219909195136ac9afa30909309cd43e54c18f08817c526bb135685d328549f2d0f0d8c73a45606f93e8a17fa3528a1ee64377165c7b98f3fdb6a32fe920c38863d913ed398dbe085a7ac406da7ae2baca87f922a2d5b43601a70d3aee3f182cf87aad2de0e104044dab4fd19e7121ff5cb459595d002f4882753159c7c6421ea7e6f02746f38bc424d92b8c3b353592ca7ea3703d27d58f2df3b23875eb7206b4f983873fb230979083b70ec1e5fd40afb5e3887d05e4eaef8f833339be930c2cff359cc4cdf3fd6e7caa647f3478cc863716f01310a30233bca62a32cedff973c8fdac419fec93342f71e74934799345a6797e85a7c1ccf660fee8ff6402e3c37a70771a26c9ffc9411e745d6962011b003c19e8e267b303ee53079e23979f7b6fb4b5b5a3df866f68421db2bc2eb29fbd6c40d5d73e7570c22b425f5cca416af86f4911766694bcd7d9f55acee1d9ba8f6ac07e2b0d1081948e1436da0af1e622e95e35a2e39065a782e3efa36e0b130b4f22b37ef2670e6b5797826515ca74a9a1ada669cb6d43448baa8a77a9e052e5492fff23ea68698a17cdda1a4cfea63f9c186f35369e57a6f54a161cf569cc75be9347efa9c94a869461ff2648ff1a3c984c67eaf53041edbb4d27c80c9bda409039303052639062dcfe8c7d8066995c49e5629bd0ee47b63b637b14f7ab0964f4adeacd6b139ec3af6530b6147741ece4ce206f9a24d8254af20eb933324b55e911a43cca36704427b8b37b5deecdc0da5d1758de2bf8f6fe639448b45e803df46427adfd6b3bbefc9b9c64deadfb60fd2fe6788f7d65f98aabc960ecbb8f8ed9593ab0a6a2c7d093d74ec17710ee5c98909e529847d7cbe9a69f54628017c0c2222b4ac46134281990b9bd70ba991336de07133ae25701a91306e0dccca6391816917698aa67c39998437325e39ef1f7e8eda0dd330671dd6cca57f3f99c162a54bb23992e44f3b6310de3c8b3d309e203e0e47f05b726d1949cae0abacf838c31fcbf449d7f9d6413bd911c70a823c8940aeb59b7cbb2c64c243a0fb8ead3903ab3186c6390b2678eea04d18a9405c733035ee58f79f85182c520163e7e0b4bfdc03d60034dfaf61644c32bc4cc32beb4fd77419ada027dda3d6f30bb3acf38a8bd4cac6425783b710d5238496331a04b6ad5646d3ee663ea0e50da36b453771976d2e36e0be3d10268459724bbba557505a7e804a088e82e99367508eb5e61919a8ff35eac38903de0529571dea43676e3d2b769f4baf4c1226ed921561817746ad04ea9d30cba41225965f1f29bae6b0bb3e15a59e82e50c0211f22403957d86927bb98fb48ee18260df408ff629730eb5f967bf25af2bf4147be41a5da2421ffea70796b77944479fb15a0890785bad4c0f86603deca9b71b72c6b75879b44f153fdd80412cc8c217ff04f4fb9b8662c9d3474598f806d71ef214784ae54a537c307cc1373161ae471034f70b49b6a574fa6204d7997ffa75a78ab9923850f3fc4419fe365dc4732ac4ba87db246c90466741cab4ff9c3d39cee643e006f35b76ff5cbfaace83482d26dcfb98ed007b97f0b80849ad04e1d422a8c86120d1d90099582703402dc3d8bc192bba4ee993dbfc3b7c567cc6f5e761a5cc0ccfa92fc842a31ee0ce234bcd6888c8ef81e7bbf40956e3855507e2544202e66dbb476faab34c635ff8c873bac2727b5fc4730bbf33c5bdd2f3391181eadf5f54682e13a97f0a06487232da578c89960ad67ff424215020f3fcfa25ec55db2b2d46d3646ffbd9354dd14008512e38e523285e426fcdabd8716883ddfb8db0dfd4c036b51625b26a1469fbf2282b943500a165b6275eac29ea4142afd22d647a4ba6d458a65292a64e21afa38ee30120bd49aa8a0c511f2c202293c717259a07549b12273566f3bbf4aab1ef6c076b0e68fac0d3e777e1f6cca2e75d68fe5a45e5f045b891cda173fd32d54962336e33c25a5c3b03b772403bf8ce296282b779fe439396cf995d3f81eb6b069edf19b57cb1252dd611ffa52eb0023b553b343a028ac241e4e9652f7d73ca9cebd3e3642640ecb9f648fd1cd1f6e7701fef3a551bf60ab3d4f59315cc2b0a9642e5f4e453af47039dc0c95778f2cadc0fa217c3423c2063eaab0922ddc59835a4706136d6e2d0d25f7dd8bbbd7a939e1afa2cc17194430e38b2f983e5e058c9b8baa385ff584846f7862469f5e3c71cbdcbd726ed45b92998b89d83c6d4731bf2f92fcfa454bbe3c7313c9dbbc65708ffa3d9bd8b43df4d088de3c911cecc5cdd415d587310a2c8d3dc10782458c7205419028fef4d2adfc14a55fe7e4507351044820f9d40da5077a93e923f14bb1d12181298c6aa965fd76319052d148a357b8d27b240dcc143fc579889ceb43b8e7db8deea958671b18906c01d5d8962952152eb8245f98229fc2e0477541faa3a57529e2328f27614b7b82abd506d276495522fc21b2f840e34f20cc7d605a986632052ce8e47889667edc1e4d009f9f2f6fc6e4f59ef42dcc97ec813b36c412e31856478e1fbf740ca8933632c62b02d2facea1c5e7936d3cd7971ce35227c5138c5a57e032aab24ae4c6b05ffa7d4df3181fee7b14668f07aec969300c7b0b1216c17de4def301717d4ec65041d4656b96ef7b40fa4c5113c58e265a2c02bd64f7aef278a6f5c57b2eb35fb69dbacc412cf60e06681f892e4fcd7dcb3b6a16d38b7d7b54815ecfa9c1a0bb46138959bc42df552110f5f697de1ace36c45cee32ebc9fe8fe8cd83e29ca331f85898d55fa4bdde5cf438f9bd0ddc711f516fb0e79510243debe71df2a2ac140c19b945841e8ff6baea4ce9dcf038b5a0a19e0cbc90b3c4f3d444813ac7f70b0624bc70a0251675cd9f44b30b38aee30ffedabe5aef29597820cdf2bcbaaf99ee09f9b18fe93268d5c74f44dc77dfc721511f55295e03bcda9956cb74a9bd85cd028ec05b4d064ed35a2ecfd3f674e34cca9f972824b1d7d3a1caea6fd6b51a205fa85de4b44a2f92a45edb712c73a4d10214623e8cdf3b9880cd25ac2dac328c3f54016eb98569ece9dac6f170cd7daaf37d41e6c35d62c3db46a24f2e6f5f237314000d0ef6825a9dc987379d9405547eb27c6d631fab06d5a039d47dd2b1dc63a077b4129f7610458cdad28b849fc68fd5f0c6fbb40fae533a5d8b559355b1db112a5203b321012b126fc6d5181cbf6f3ab8de483824ac07734370701b08b295362eea3073efc3a96ac9a9ee3082ab49afa034accdfced6c16c8d6a7e88b913b38468fc104f0f458a298f0c352b04eb664b1eddd9d76f308a9a29fca3f3fb730f8d1d48db53c23243c8f84c06a91acfb86cb2dcf2b1ef3a0b9b2cb1f4909f48e9f9eff93807bdc21a5a0e1e7ef1fa7bd2f9449eda1bc9b86e8b4efe33221a436a864cb272db8a50ed3696634ae458566e562a1dbbdfb20126c3ecbcf403816fb49adb749f51a76acf93869101c81d8ab1292e4e528ff30e58d4ccb34369cdabf927349fb8ab49ad569eaf0212dcacda9e1ff85493e6852418c647a4697409427becf65fc0710ce9c15ea9d2e799b39674afcbf2097d9fa9f4b10a874435cdcf2137d177d764c21a7ebcc303417a5ed5b94d0a3ae4be16417ff79fe1ae01feefecc5cef9ca7ce8cbe1287178349b33c40b7e7f08ab913844cc223951957043b6feeb1f56015fe5a039ed8d3f07cd55d5981e9f6609f2506dca0426b16c7008f2b25a67aaa3543bb8610354eb214b58b836e74090c7a43a9b47b91fbbc00a1b78400a42a1122dbb21afbe299b619abeceec31b32195ed805dfe64588703d7b12387b55486b39d909ab0690684471564417de34ab2e02da4d3974cfc7e9e38304d220d0a827a3312d085195163fbb712cd0a21cb151165bd98b77978096c1e6f38a73368cf7707083fb107910ed091d659af6a4673f9a155c8a402bf1c07ed416fa18fb66d6ac92d8a4c2d4e422b135f79ead28bbe234f818892b76fba8ed61b186b3b2cd1c773795e91e923c06829fb969926290ae2fe7585534e71c0c58b3bc662d70d537dbf06da794401aa121b4dffa36e574dda73e743c6177cb87bd78d6e0f98b081188d14050ca3f49e330cd1765c467430d197ee509dd8a000168212c683c6c7f075706cdded9c5a9609a6496280c1978d48e845c9693832768c47d9b7d1650e927b694a74ba50f36b924073f71f51b795f7822475d5632b80155264dc892effd97f561c1670d2417d5e33e7d095a8e44d8b0fc57d9ec693d12c277ddf096fa00081b2df89c46b66521295c3428df80915fa7e8f10c0627fab4e5d145e9fb6628bbd7b7cecc4427e73c6b1242fa7cc9df2731ae2fba2f9ef0d11ebb4e718e0a9b8b73b7bd5d257d22bc255ec751d1b381fe080e6c9a3e1204a1123c461796272ddc3b41f8fdd444358323edd11fab1bc5eda2111963ea999d743e6968f158d430fcd9906c5096227b7e5f377d07b2165476faefcb2301c03ea6cde213f7e165913f41fec6753aca94c0f365f60828c9bb9bbccfe030420212e3b5258668ebf1e393c5a7418292d7c819acbd6dcf109233d455a6075001416647a8dcde5f6f8fc0b161b252c37", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 51, + "comment": "h_ones above the limit", + "msg": "9a01000000000000000000000000000000000000000000000000000000000000", + "sig": "4e4f39e0fa77c6d67f49c759b83a72c2289fe57fca50c143c9a831a8114d41edb4bfa0856c62be9f05fe4f3672fe01549277f8b0da08e940f9b7b9d3da74e07fb7cf8a953fcace4239609a492220cd8007966c4e6ca5e8b418663fb1ff486d3ef90333c470699b8abef54c3fd4a25aa34d44ae75c216dd2d3f017082fb01df0d5ca6a85b1181484205722ef118f03372d8dc119739303aca686159911e165a611a678170a5238dc9b5631df11f2bcf3f7e5e8750cb55454f25a8a6e3efaa3fc66c88ad5247397ab153af4bc014895d006307e9a92dbb4e9bf78993980c525f2313d188b0f55718da34e701607d7149eabc05d952c4e12a3516d8e9c1fde6eaca3cace1e76749b156c46f40265870b1ea2fc49d66b600a52beb187675d1b7d6c40445c678974625dbfccf20ca3b65eff29d7fc3033f3af4b2c29494f18515f378ab2f155b392da15dc1f65c7a37ea2bb2b69eb0f8f66a6507025811a2ce5f748ccf667f32b9ebdfa37b3f4a164534de8ca9bedeff425920d38b0514c62068b92024e014283ed633f1820d2851ccc8268a443349903cc70af04ddc4dcce2023b6c0ce625797972883469b38f7754b576595a97910ecb81d97c801be74e7b8e7eb902c42cba946d855cb9dda4c140d4ee37504dbed3ef92ca99572a7857f6383d9ebe3105c90e9cc196d5c259b869a8e8c092432be67cd7b873ea408d455231863c5f34e38fa194686efdb23b79b30b34998f031179fe8dece8e79023cd41f0e92e18fd815d7cdc69dd83d26ca7e850363c3369cfc8706daac31622fb7c419a37d4884edcc10eacf0c4442c2bb47473181d4cbd404ab63bf840676caecbc89cc17ce0d14849a022376ca0548ff552d229c92c05b48c299d258644ea7b6462ef6b5fe965f6129ad9db2e95eaa14e28866d7eca1c90bdc46bc8f0da5868243a0f5a2ff3f08baa067c03719da8a3bc6c1d14a871c7a630dd831911467e1e6f19ccf0a511378319976015d3a3167d2570a49c50fa8d17b1079f092727276a311fe9f0ebc005739d8733727273aa5267021dcdf629321364fcb46836209c54d8266dffb01abd69824245c9a7f6a706e1d5deb23a15330990ba1a8a7032d4efa4de64bbe9ad4bfafee9e23b62faf8ed88093f5459115fc3d2877028fea349285888f84c96a1fa415fd1da7e878496e910cc1037c0a482e65da9209f40ac89e92358374144d0cb729279ad80e28982617f5ade2dcf380be05709c0de1e0191cb873e35d98f7fe09b38fc2430778d44752749414bd554d1b0681e98fdbbf9bf437b9e0473eca06ccd7e0cb4948d9aac13ec245a850b0506c6127830c63a75685e430318365f4ff06dcbfb970626ef2dc27dea0b0a098b2fc5a0ea02fc67eb3a9696ece6c752fee088d8e71be6ebd94aace3c78a9113b8e10167da32230672a2c311f12553ffbab9436de67657725e96dd516c9b561c3b272fe889e8ff2811b44426d26a0c42c24349aa22f85ddc863d32ac91bea62f26afeb350c81439964388bbf21415226b368188e2adce8ecdabbb3e38b1fec29bb55728cd382b3bad0783356c739f343c39afe5a98512b3f1c10058c587c1bb729417c26c18617f96d2de956de1d91cae81e1eee0d2011b5706c3b07580eba78066aa2a812461fc967e04f283113c30f6ced3a237958ad71c9572c8d6ecaeda361171199953fd7bb73fed1588259870adb84744e825dc84613daebd982f4487b464f128c2a7ff49b259c991ce34a013f9374568fee8e357de35dfa5cb43542cdb297d4cd886e0605c3d1fddaba262ced5d1edf566cce3840ba338db4fba236ec926a2134fd127d40e3a84f6b158cc6ce48f238c078a795caa391e793716281c2936397a50cd417cdf9c7fb32b5a8b7690e2ae2768daee33fd33600ab6d1eda8c37bf086bd3c1be7a9a2d79ba6ef635f9321d8d03316a8dc85acb4ed7a39d7cb30a76c04c018fc9c3c4779a8a67e7975c7a45018f9f177575ade5984ff4f7b412a18f1c24402e9bbc5564ef98a920e00d4bcc9e307e854aee1a6a2f421f833da3d27b2e8a9ab7b9f1061faf105d13da2359e9d57f47fbfa56e49b372672de5b460f3c43e9d32a0e3a272fe3efd0dfa4740539be52d4ec7881d9c7915f8cda2b47dd520ab5c5ba8fac6b1888b65d1bf12c976051743d6a506a5d4c550262b23e4995cff4bd6dde88ded5fd49608e791ee74c2c62571daf881ea9e318f96447c0d6d3ebd42a1b4a448e66359db4cd875885f91f7cffbcda373af5c72c67c9e3e8e14b6e0f5d209980d4d9be3884878f7f97aebf74e86426bd8b1c11ee5df701eb47a86877dff6b7df3d343f8a3a24697294f15de1be9c20092ac2c53d2d4e9b8011a2628416ebdae96237fcfc980d69265b03b86e1bb6954ee19e4e7598b068d131510a4e13c38d2c763c32f6a270a50fbfdda0e50b6df49fc85d3b1012b374a1095479a8d330f6c4d46940854daa91d34ef96e33645a444fceee47bc7faa680a2365eabb0c7acbf73bb72364b865e587607e0f4e15162be599703e22f782b15686f32ae096ab178216abdc687310330082a057286235e97f0abfb5b00443acb5db755fde1c4d46a0ce5923d8f7b10b0c4cd66a887c12a02ddcc022e261cc3f6ec65f1d6b6182a19a2c15f412d0a364d01b5eef67f665d42a6087d798aa94581fae60cf86cb9aa90c6b9e63e3269d78eca3f269f382e69a3bf777a420ce56866aa82ca5c4131b34a7c2e4cc8c685368fe8df1ba500fc6f4149ba21311409f517332d54d10337c762e0806d66bbd9426805521dd4fadde9987708f7e5cba96e9afb256f729ac9705c8f9069f77b32f5609d553e1357fabd6afb3439f99ef4d23e1e4e65815ae079bcf0dc408d229fa63b44b50b1075ea4d414caf46654fc462a643b4ed38a037e9fa9cc56e492584a69681bdedb72a48dafea506b19e75724d54cefc666768a7b40c015dc055a8b058167965efdc7122b25807555d3b6e0137bb98b5e16a72f4ba873ebc32c036d2eb9092b64de62dd95526c4900bb64112bb0703783c416be33d3cdbbd441316d48226d63e69471845a7f5bd93ddffbb0bf9385221c3a9d80d89f2a6f6bb233f3d0c604854b86b79b1d4cbe50e76c276b58f25ca31e415e7b2dac266dc3b073f1d6b00d500e54981079d66a1f314653b733c6db19168ebef304e15760ef535b45012fa4ce3eb1ed610a5ceef680f8700c174ea474adbf45410df72ad777c72255b2e77e467453da217345354f3570050c178dba294a95c5bff31c95d24fc757d3ac354cb7d7c6892e8dfd9c0062f3d3071ef316c116511d78becb255d185c81f61c0e29ce521928ce3c83c9530d53c7c6c0535c9b384b090fab020d23c199430889db214a84cac3e06888fcf45f19ec74552e6f45380faad1380b9a7e5413d9c700c70c6ffd003f3b52f624e6b04948ea99b3fb129c2de24b47a91d910f35c24efb9f3d788827b74a566607846015e6148b4c76355b51bcdafafe1e5298ff01879b1e9ebd430681c8c82f194498e78fe3537c99888f11c063997ac36d1a00a38d51bf5a6101a2322f70dab430ea99d14ee833a0859d5bb0da477afe4aa3184e480b14e3f6a362ef3458da1ab5728994ed6c8899dd6e5a9c78b38f370fbc31661e37d402310a9dad865176486144c451aff71715378432604d9194ee88ea6f3b68dfa1b80b0a6c54a2b5cd4c0b4b1ec7152c680483b537313c4b6035cd550d0eca0df04d9a058dec727ad5675285fd1d07a4a7bf36a330ffe620a1b244583bd3b248be735bed76e4f1e47fd1f81d6ff3339be6d9fce2afc4ab2402f3d2a9907c10fe4207ffb0a3ee49a3ec7b3af256aa2d63d69b4dfe69898c858bd8de9ec4285f7de3320c18f669574d6cc9a08cc8ba745af8a5f0086621928a97d6c92103d34c229f6d8b1a36e8e2e86a8dd7ef4b039c1b9546f7ebdd5f179a94146fe3c9c695641bc51db41ff0b074f467bc07578fad564269c65337f6a0b8af6dc0f7640cc42fc8dde6fb7cf677ff7889ddab792fd225ae4c8995dc97afe843831e8d48f419879411f5152cc6e1d9c0624d8b1bd6a4b136d67074606ce5ee30b0136335526eaa352df9fced286530848115509e82a8a4a3d929a5a242415579d97995cdb20c737ce4e63e490860e58855d6574ffdceaeab8fbb6aeee1c73b7371b8d24dfa68c4e29c84a28bf78b2ed283c15248a13efdb4aca13e25f69594660e73dd847c7249d64dc2f1ec51e88c675fa2bd5b77957765e608c3e32dc991a14c68fd7e9bbf17e84b5dea7a2ba9414851a30994483e0e53ac614c72c5b5d0407c6b0dbbddebb4fc0d0c195237f9d2e4a11cd10f464b35dcf9bd90bdab7f1ce583477dbe31b0b5aec91ae86a2e0cde82261665c570f0c055f1391e60669e7e7905fb9bec5f0da2485bca04837e683fda337a302254f80ba295c96af0aa97f673efb3073b581399d76cb234296c9065f363a5e72484b7e93438055ab952fe2e55a23b34acd34957a682ed8f17b0a5778088c39a3dd8489823c8cdf588b73cf7c5010fb36c590c99fcf30cdeaea2f86fb8375aea46b60dacd83acb0b1517589f2c386069a3b6e4f81d445961646b90bfe6e9f6ff3f4653658d1e373b5ad41835848cc7df0000000000000000000000000000050d191e2329", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 52, + "comment": "high_bits called on the edge case", + "msg": "8803000000000000000000000000000000000000000000000000000000000000", + "sig": "93d46453ecb0ad7a3e0288445607fc4fc6704f17b64fecfbfc183de4cad5c86da5b1d6c13fbbd1c1f8a8818dccdd5b075f9470e83cfa231fa5b6036ee49ff80b0fb7655f4b7f84197027c868a4d8fdfffefe3317c336101c4749b465325b45dec08ff915e606e7cfbb5558e95ef29b194752f50d7a5b11a14d131b0c9af6dd154ba49200afb1bae5b9c0ac7fb0297c72281d8462dbc89cd5b0d66256bc942905c9a805fb14b8c4931550ebb70ee04174784cc02fc8e97b5dabe50583d433d11518079803c6d557a13187cd96c8e84e8801c11e2666596f055e788deb0a713862f2daef6e1acb60d83e39003417339b871d27877823493fd360b27336eab688a71d4b0bdea6641b0b0ea1ab65fd4291c380fc76a75dc7ca4e4711af22ab5be96a2e4f301f705ff033e3e8b530bd8194b9cad4f54680eaf9abf0be7af032a2766fc75396894b2f393b1b87af6d1b9730d374a5e48964bf1ec6276e6ba4554e2f6114c04a1489990c7901b28ac94de8c61ab983319374474a2aa8a0e1b5410fb952105a5cc0ec9b9cd7663e532bf787ed992726fef537e3bbe31ba835e0a0ef00398f7d88ac2ed3d59a99f9a6cd49fea68e3a611ed1600f738ee199d3db7ffda3c1873dc9a0b1ba9b8aa224cca56460965a9d6c91d58de6c33f9665df62f4be77d333c4d62b967386fae73830389c71a563ddf7172b68b1faac5fbe64e06b53efcd058d4a960364fd879eccb76a7674a813453cd48868b9fcaa96bcd5dc815ed688f5126557158bb35f2c6a0e4ff4c010a3afb6a4122cd3521c3d9e3c717c79c8062d3fc24d51b122d8a8714f9ffc07d4bd8d0e012d7ea9dbdb2427b0ee12d44367125e63a275d70b4f5ae5d088130358739cc31c3060ddf91c3cc64957c76d451cc028555abd5811fefa5a10633cb0d8aa47a8b6718ec44b1cdb06a35d6ddb332efdabca446dba302e2c7124303343eb42ee3bdecdb894c1768d1680cc98dd628067fb39cb7d67a00784995bf5ea3f8014193c7a371dcc55ba5a3b43d3f2a2228126856ea0d97c90b6081a45491c3c8e20f6dc2ffe331496cabc3619fe86e557228a7dca189e7a3cd04e961616643bdabf6ace94f3d5f1e8429d115b3b8c840245fbf48d0172b214c0386fd320dd1e2580d5f4e6cfa9d4928431633079a90f97258418ebfcdd0aab960239ea2be83b8a057b0548022bd518661b703835e91da0cb568a4101de68d5787e31e285c335e637f83eab3953ba292244286d61e06fcb961e319ac80d5173bcfe7128dad75e2e850085be27356495b28fdb55313d90c4807f6546231fce0cbaf1fc6419ba60695eec63cae97957baca1756630550ca14b56737a52de135eb711c0a1dec9e1811908ecf299198387b741f904967404f7f8ec9f6ebab878caa4b664cb24c53bba4607a7bd6e4c4db5f9c8d712cbab6a506d0902764bb44da35cc0f0663968b3cf5bf92f83724ce08d478a66ac0e430c42ec47ef4de4a46e7d047450e481e4d8468261315c10d5bbd1ee7ac82f0a63a9d4ba54f6e4a367de6b05a560482c8826121ccb90f68037a96c8c30e41f1a96c4d84c021dadf1315c3a6f80e6ef7d26b5e4e87f5436347169d63987c022353a8155670c5be558544ee3ffc3cdb717bbd53edca18e5ee0e5646482ed38f790aeb45bf89a40e819b14d535da8b12025ed710c2f2faedfa716970ee44798de2932946018b6d80715d6f6d7d573b003b576cbe2781ed12984a4171c00d5f12cbf7e73d567cb8d243544cbc5c7921b5a89c0aabcf1339f99671fbe96591f988a06f4bd15feae56429878e40ed8f1e0e90457f1ca21bccefaba6d30709f40508c47d78c72362d5d96a279406f10f975fe70872a4e214eaf3ec9ae5dc3b7bc41e27b72da8f6824c259534216577bf506ad45976e84ad4ed9d5a4f88e3695e2943adf045b91a5edea2410ebed5d2bf10170d3a0c392e72e970c715c0216b97ffc8fdc9089a9fe1e4f4cad9ec4e4e589fe05eb5ace4083805f2cf936bd93b6410138caff44c64be949fb7acc66284bdd8781417976f7be700bef0f78f1398fee069b14e686aa985aebdd058230b7684553f02a1e196ad8661759e45bcd1ab75f8d3ec95602ff03e6b314d8c363cb7c843df92a3a6a355e29a2ca881911b7e01b8e8c40f7395a5207650b0f44bf11b1269b8b0bd4b4c989c98ff0c529e0a3b5391ca25ec366e39fc6da4c474b3ff93938fa064b1a30a6aa56a717d5f5bed2b3cf3d2270819a8100b7fc8e750787acbdf008fcc4a0deaa47a62084c3445c75cd97edd1e4012b0b76b01bc1ca8e5738bf884c6135934304bf625eb8a3ccb29087047a0834943a6bebff481994779c7f6a37fa8140105e849696d922d3e7cce3535e9711422dc217f5e7f2c379d5dc8220a5006b56a87079b1504d6628999ee8158c73d2c101cebf695adb5c3815d9328255c5dc2efb167b36b1820abb79f0eaf4fd84580ff7c3a8b178164f985f42f0dcfb728fd42401a31a2ef2ebd9a26e6832623d7d28d26d162a21c45889253f62a11a2ed59414ff03c27e48aceae70ec4629462842626d7f802371fcd7fc1b97495e861c7391c773fcaa2ed087ae8b84968c573f091ba37097008d6041460986403e8e1d2e44ba3afa5cc88d48780aaceb142512b115d47d7e5f9358678c99d2f481d5740b327555ff41e163bc40b2021d441e5b4ca87b02010a454c6f2c9cd1970cd3846d4c8021ac7028b2e94b3a9af750e76ee37bf4f4ace83b244aaed8c1ba134500357b96f587bc1464cc2052b03634b772920da0cad300ad9de1f53c8b8c373b2e12b552c4410e2836f3161fb1b7c0116eb3fd23fd632fe6dbe2e9999a3994793b713d52c811403c3b9e0f5d9b68b71835e9dac66ab9437b64151115bf3a8af2fe17de721310b459ecabf6790096df03c23a8165cbfb484dc35e0e14ea64a82bc76b888f6bbce7d29741ec435aabec2b9ccea7b61197a895b608d88666c1ab1ec32424bacd2c51b0a248ab18e0192a866c7de1ed43ec7e7eeaf300ea40143af6be9d93bb92bd0ea5d9600f99276de5a23eda8f939ec173a141285b0323551137dba54c2a46fa5decf94158646edc72901fcdf86beba1a8715159f61ce58eaba2fd09afe8b533817086cdfb641f4ec3c079cc27257688d4b1a3dbfe0a0f53e74384e2b89c774ea215ab444a459b5f9ded9019f57aae07c44eaff21c7928ffcc621339badbfa93962630c713072c5efcf52a7f2d09d4f164d0b901d34c37dda11aac6b6a93f30339c786255b1e18ed055121a5b52b1a0afd76ac8d4a3b1e72516a8ccd39cd035c11f676ede7c87d932f1ef99d3b93a79e7edb1923de83498c94db1775e9560753f65a34df282ef215a18662f446e1a80a4a64380cb4991aa5ed8fd1fd24eaed4ec91536229596b765197c10943b4dfa30750728f9b7ec39b798e33572da27e8b2bdc5a596946e99963a1e164085cbce5529183159066411cbf62033b41b2c0f59a4d771b4aa9a82bf781a384a370b73b59c8d64450b8e75ecde8c7eec2ea52351711b88b7e462dd7069c2f3c00a0656cb3cb5cc9338e2dccf2e0698be77c19f85271642b09c41932a0a54f60df6093aa41ba66734f0c91d958f9798169b35697ba42db67d33b9151b3f176fbff73e73b4bcdd9f2b80234e20ca079a0694977e6e150d16dca677f1a195348942827ae2a32a7fbb891df99eb03651ce7168d8f26db3c6d71ce778fc0dfe75010eb80612908730672fd0344d99a85090e78e454cc7edc760cb49b672702d388689819f55a353bd8da92e17daa34097c1cbc4574a243efd2dc908ddab79d7cb33ee1cc7a0c3564ef545d100bb6ada9d26bbd306ec7b543e0bc2477d8a283823b65b6a91ead38867bf83ac3643be995b38897307cfdda549a9732b2c3ca88babb8dc9c3b59b208a596b57bbff42c586b97a0e55ad9025f6c421b19c1ec36b436398c413ae55d064a46e2b97a4d475170666f6bcb7d5bbdcc2a3d28be3e5a41abea942ae836487d7325af729116a3b009b47a1efdaa4142a054bcb672951087891aa3af203f0ed41efc9422753a7b07ecafe4d9022e7c73893621a648d7dda02181809d7a687301d156bd90c3e15e1a746b6ce93fa2bc2d8309b8135a95c0d12700da6eda1bac9ea1663446cba9e8237dd019d7e016ce0600c8f1cb435a8f4f52deb8295ce00a07d3a32456e44bc2128293295e550e816069979fc379da0a44d9116b7e6a1ffebb750f2d7f86a27d6d93cfc739efadab272c77a595f6f74318d14fb4e15ac8ce9fa0f7c72ab7720af4f3da27bff92ba62fd7fd79d96a25c2fab26034e3f331db56add047c8840933b53e06a0607bf3dcfa4fb3227dfc8a33a26ec9fe03ffaa538b6a8ed9a58df01f0b62cebd303f11e24fdd373ba23adb698c6745c41f57cfc465d10aed6b08f171acb42c5bdea41cba6fa8016ec7603591468d310746513a24f77155be87f507e7fe8512f2fc889af9ebb145d5c33137aa7e3dc9e14d3a81c2a5149418782e082745235c62969d19bbb349b550524102aed4c1d66a3a98f8646f6f0c0c506b64748c6747b1c1cbdbe815005a71cef21a1c324797a0e30413292e78bcc5cc548d99a2106b9ea6eaf000000000000000000000000000000000000000000000000000050c1415181e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 53, + "comment": "low_bits called on the edge case", + "msg": "b502000000000000000000000000000000000000000000000000000000000000", + "sig": "fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f743fe2130a9185402b9ceee616adcf0aeb1b0adc5b7bd65b8469d9f73abdd491c7659d92d3c6412cab96a2de13921e6e28264326efab5964afee6490ef637e546aa6b61aba997daac4623b0ff33b4bbd1a11b2942500c737263b5a7b599c454d8442073855220447142672283106762324611334160331766716756876656306340247416643645788214401245418430332335014484266482863377264642414206877226544283410340543730247627225170453086122730061663720413006672700563545553308822632620516184200008121626450075764267612441006130131054105366434124552571655324024583437672387040523848872722438820242507702366302474748842265201861837063577540747600354316761325342724414244818807083666356763458818178730038860216678417556380528118134053806822634757706213780383068245037164828641644088712486666263228563278454077257226514241838623545046705775223416234252343326255430503041432773656045076111030080425435056385571604503837242375546781881637734567572558705071178084805270422810171125366178026263016101361657832287864742571181540760851116286862663367644442262567158480021516651834322735675322048815731072442030787610367014103700472855221118750731347147044142277174111214348353566824008064045627684488722675430832058628153456611117540326632627423710448122776364844470152004860248280007708325718482525552264175551177652286873852661125522335557583772044467545176204662306421267463234564162341677110818645117237332101582140278868362167651433830007175820104352222533408675507171265571436206825831530330505138722014332544414101453361865663285823831165654236338452842635115828271801121281582618708170531302365851580567783463004004872080286853401722161683240507540174321162726623307704357168735441623362805550771378557544025577664653883727145477726652161328654636765354441580462755002525303617004457666056523833318532171037664380506224158805461788342412558636736557807030038168058241037440287466117173258168248137753751448321557734277603877752226522005384287417756673375054253360826560561501724117752720403752166506773562110186547571130831846605687668266432088723466508134167088157733748882573483206443607642671007311272002682616013071771238832745526182648607836043640787500384324825714344453303465740312784685175588706426626253688784802024002168480055006521746017031355351420356313376038357500434586744155331653510137233135501164040340443180537652161358720413477471755650162313051181844240248360407773704517351058764775404747121083306411352302550060311617664848461285205032215087833220558462453850275140274158215805155381750850757850271010637641250528012682211173613444785706268032670127024707747567314772632848841668565545456641117066848041360116507056675046470163210801085300085527862576471877326436205146166232414075335513375673166307774724018723351488672332685528233522486007870307457262016571753124063541231514175538351737543321726247362412023101043212535074048080016006886215511021520172701460518406542024738500552450424583471822538241124124282248288348872240758184343246825136527273210452765138144072540628287154522674671801747806751802628540570743817583756538088277258068473227163621044527db3e8a7b37950eaf9af3770bd6b8f8c9572b54256463bebfcfa8920624daa12fccd1c228c4668f688976a5094a00b6e30694ab2e017cdc2d4315a381bbe84ee58340cd6bc6fb225ddc2bf8dc117ce2be59993e5a521f5296126f290d10097bb2b9f171ff3f5de8a5047e76a15594c3caddc7c0caa852b8aff91f435d3f039d3f27963c357691e9c9ee543f32a77691f8b8ad98d711f8191f5c9891f593d8c754b07621a42cd25a2e95c32156a356f7bf71d6a3d1be00c7364741f2eac5d0c5fb3ef93c6339b559c9b2c4f518927fbe1b87d49546d0c9ba801c224a1cca84916aac512fbaef6841f725c72b927b55d920bb9b8df4e89b9b09da7adc24fa3f9834a8a0380bd42f07801e4afac2bc1e852dfe41b0903990289190ddcdcc214a680e0247938a4b54b704bb6f0affe7ce2171ab7e05f8cb96abc352e44e9b9f60f6ceba0ff95703209197657d8228e93dae9a9f478a30700a6cdddb4ad484f963afacb39a3186e94e097fa25ab149c4c438458b24369f62f87159396f37de36fbcdae2acc7b996a90f66c6de64ad905ba6d4508d3c453e7d43ecb7c8692244f3de88c975046189a438f61a1a84e8d0eb11f93dae6c80dee63c2a3ece5b794483d60493a84dfd4d267eaa205ad0b9491e656e267eec42f5d3094982452ca10b420552d684242bb72d651d47e96da49077d73dec8fcbaeda2ace53156bb4d4392e21fe094a2a32d3eb3d4163ab50a8528800464c05cf2db162da56dc13e709844dda7cbae47ef8364c8c3d5fb471f9407bffafef778486c304088801624aa2318433459b4794f4c31ec2cac49d56504602db94a5b882a92b06ba9ea1ac40523fbf4ec1dd473c076d3e397941c821895beeb4b5fd5eef9246ed1ac724a2aeab43c56a6584bffcf4aed0c6629d5a59b719e5d677539c3dd620d861ee7f9c0a5f116a17e4bb3b16a8017e668612c1038b576e39dedaf7d848d02024c0065f1b896ad6594af4477c73544ef51f3e612c80f11150b1f394b9fd899fa6d927535efaafb745133a45442241579e57701399ba23b0ba62a2ef13b5eead46f02d2c5a91fc031e458be09a8b5d53d9843278590bf556e2258b371f14f07cedc213302ecc895e15be2eb0e771e4b1d6d10fffd2ab945dacc52287e8667ecefaf3c959dc5bc18d0d953ce392acaa67e3f457630cf266c7665253c3c04cef5a73aedee0cfd06efc300887d4694dbbb717f2813737d0fae91e434922ea831ae41349e44ed0fe9101309dee68c1337f050e9e16113e8ba47877202b97113b3b876f4333ee620cfe37b69e597162ad40d78f5a7be33ebdb38b9eb84dea68e01de157c7e74f4522836b64d146f719df851b60fe69cea4667daa057bc47a47248fc3073a904239c0f8757cd8aa52e5d837fbc6490a0ffd9a3dfbeed09c24c61e48df0695d8f37f5670aca01a3fbb2a5fd3bd57cf38c453f80f9de428aa0d860b13231c5b2e435905bae792ee21e6104535204f9ab1f90d8c3123e57e2d01b0091ed089b9083438510579190478b86980370bb0170992673394509aea3a64d241b0d5388614282c4172796b00bcb034769bb492c0fdbc88c1a30a040d637a7b9c496f620114546133fed394ab79413268027d5418bd61e6ce3ff18ab83f76ea0a2e5694a48c01931cbd1c4bb02a3515ba3fcedad86e74b2848902089986bca91694dfa712b97c4f2878f287590aca47afb18d1ee6f502b90749f8ca1d796309c5bc96f5899f70fe0b4b5061668e62891b5285546f0dd2176649e5cba2b206953c7b66c57fe2e67c1c6e45682322d82c569c543840722756b7b4c92aa059e59983fcc327833931556346b83d7519b3a6b93691e74af6d26fb61bac9cce2f880d1f194d084171809bef926e99218f664bf18f58585985534281b6008d86f48f8c4044a4e4c89f4f08cee869c6a09b96df42d6435433d247e9e1150ac5b09da7f66d4f2eb0fc7f8f22bf11a0b03c9958f0562030d2c93b1c4a554e86b00f7c2e464aa54fe018bed4578f3ca0ee8644c3537b86da324703e7779fa897fdd4b867f7620e7fad29957f28067524ea180380428995ea333a3f291fdc67f0364cac8683e199a9a85c7caa3cc29db52f84aa0d0d07d5677d74816873e0af727a8555149d41d40a1eeb5944328a23b1be9e55ea81bfe461c86bb1fe3995e9f8dc83a77b06257c6356089bba2bd44e2a7acacf6de34262d22b0f899d0abd705637ad5ed1de2691e498851db106f1bcdada3a2f96908d3774f661fe2e8ec3ec598b936f4dc4d04b80efa4f57f3c55d0ff990b313643a8126aaa14d898e338f5a261ae5bb17b854cb1a87ad626d3b4ee29c567baaf409ad53891f707c148f49ec16f9882db396d1f140ba9e8b0c9a0cddde6592e5e82de0b18dea363e8605ca364aa68ebdc5f3220b810125fc787d339c6a5a68c92cbc64b5d265ce7a03a06a2409a8a18f000691cfbc5b205bcc1926efb589b82a7404d1bedf09e88ad286f7711a6d67ece4bf76fd86556e840d73f353d31b4d1c3dad5e83f72d540c601983cde7171e67b805bdabe3cd6788e30938b0398c1c8cdd5f8f1028f123d2d612611ce15f7637d2d751e59df171a4014efa4e8420bfcdb75b77c63ad1dfde967d4cd44792d1868d6df3c5bb5f1f3617861e24ee6fb58c33e6b82a57b29422dc0c5aafcf0ccf44557ede0e9f7d32be95f4a214524a30d37b85f1783c3e77b7d52e8648afbb9a03435c59d6afc2ed3b6ee434620c0b368ca6337cc7228916c5857d1bef27502014a0798ab099a7d7d9f053175b9e94d4e3736794034bcc92a842edd555dc74e69906a8021430655b3907ff0d5af127c847902c783e5e51bb45a3e4da6bca417774417fe2cd5d8448c5422eb55ebff2a44a378d528ab06419e6ee4ff6608eca6b44b8c71f55faa714bff9727dd3163b090330713d90813375c88b8681d491527f89b87f9433cce8f6dcd83fbf4f00215b3caef344b38ab4bd9bc5e3dcc3624fb60ce34acd7340b14d9ab48df15b1cc839265b791a417f90cd463df719fd69869aafec64df9bf010498e8d6397e1cb696fd68b38ca9ab1faf67b7123ad01781ffce12a3dc2b703cfa73dce16de7c3a09eead7ed6a644f96ae33a4bf179122906c969e99d9d99dc3472de3c48e80be4e9685602b23400bc292ad6f2fd34a2afb87660a010fec11d3ee82c164fb267957b6651d9150cfba16650952f8f8863709bf5644b0e4738c45199824511fae580548c7f655f0bf0bf3102002d80c2b2c3adfdf358f2a38346032120519b31dd906d3e26518b867d1dcb91caa5567976cada346044dc8e7274c0bdc0597556ad059f711868b83b8da5920304d08cdcfd3d5d427287f5b637fb7e2c14253452915fd6c6614f93c3900c6b3469d7bd87e2e5f15629316a7e8d4dc12ac80a89bb8c6ae7238144f82792bd04c2e741beb130c2a5a9caeb09e8f02b1480ad42486d0d8e5229072dc139115493c2c747920ad76391dddfd66feac8744d5662014bce98728b", + "tests": [ + { + "tcId": 54, + "comment": "short private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f743fe2130a9185402b9ceee616adcf0aeb1b0adc5b7bd65b8469d9f73abdd491c7659d92d3c6412cab96a2de13921e6e28264326efab5964afee6490ef637e546aa6b61aba997daac4623b0ff33b4bbd1a11b2942500c737263b5a7b599c454d8442073855220447142672283106762324611334160331766716756876656306340247416643645788214401245418430332335014484266482863377264642414206877226544283410340543730247627225170453086122730061663720413006672700563545553308822632620516184200008121626450075764267612441006130131054105366434124552571655324024583437672387040523848872722438820242507702366302474748842265201861837063577540747600354316761325342724414244818807083666356763458818178730038860216678417556380528118134053806822634757706213780383068245037164828641644088712486666263228563278454077257226514241838623545046705775223416234252343326255430503041432773656045076111030080425435056385571604503837242375546781881637734567572558705071178084805270422810171125366178026263016101361657832287864742571181540760851116286862663367644442262567158480021516651834322735675322048815731072442030787610367014103700472855221118750731347147044142277174111214348353566824008064045627684488722675430832058628153456611117540326632627423710448122776364844470152004860248280007708325718482525552264175551177652286873852661125522335557583772044467545176204662306421267463234564162341677110818645117237332101582140278868362167651433830007175820104352222533408675507171265571436206825831530330505138722014332544414101453361865663285823831165654236338452842635115828271801121281582618708170531302365851580567783463004004872080286853401722161683240507540174321162726623307704357168735441623362805550771378557544025577664653883727145477726652161328654636765354441580462755002525303617004457666056523833318532171037664380506224158805461788342412558636736557807030038168058241037440287466117173258168248137753751448321557734277603877752226522005384287417756673375054253360826560561501724117752720403752166506773562110186547571130831846605687668266432088723466508134167088157733748882573483206443607642671007311272002682616013071771238832745526182648607836043640787500384324825714344453303465740312784685175588706426626253688784802024002168480055006521746017031355351420356313376038357500434586744155331653510137233135501164040340443180537652161358720413477471755650162313051181844240248360407773704517351058764775404747121083306411352302550060311617664848461285205032215087833220558462453850275140274158215805155381750850757850271010637641250528012682211173613444785706268032670127024707747567314772632848841668565545456641117066848041360116507056675046470163210801085300085527862576471877326436205146166232414075335513375673166307774724018723351488672332685528233522486007870307457262016571753124063541231514175538351737543321726247362412023101043212535074048080016006886215511021520172701460518406542024738500552450424583471822538241124124282248288348872240758184343246825136527273210452765138144072540628287154522674671801747806751802628540570743817583756538088277258068473227163621044527db3e8a7b37950eaf9af3770bd6b8f8c9572b54256463bebfcfa8920624daa12fccd1c228c4668f688976a5094a00b6e30694ab2e017cdc2d4315a381bbe84ee58340cd6bc6fb225ddc2bf8dc117ce2be59993e5a521f5296126f290d10097bb2b9f171ff3f5de8a5047e76a15594c3caddc7c0caa852b8aff91f435d3f039d3f27963c357691e9c9ee543f32a77691f8b8ad98d711f8191f5c9891f593d8c754b07621a42cd25a2e95c32156a356f7bf71d6a3d1be00c7364741f2eac5d0c5fb3ef93c6339b559c9b2c4f518927fbe1b87d49546d0c9ba801c224a1cca84916aac512fbaef6841f725c72b927b55d920bb9b8df4e89b9b09da7adc24fa3f9834a8a0380bd42f07801e4afac2bc1e852dfe41b0903990289190ddcdcc214a680e0247938a4b54b704bb6f0affe7ce2171ab7e05f8cb96abc352e44e9b9f60f6ceba0ff95703209197657d8228e93dae9a9f478a30700a6cdddb4ad484f963afacb39a3186e94e097fa25ab149c4c438458b24369f62f87159396f37de36fbcdae2acc7b996a90f66c6de64ad905ba6d4508d3c453e7d43ecb7c8692244f3de88c975046189a438f61a1a84e8d0eb11f93dae6c80dee63c2a3ece5b794483d60493a84dfd4d267eaa205ad0b9491e656e267eec42f5d3094982452ca10b420552d684242bb72d651d47e96da49077d73dec8fcbaeda2ace53156bb4d4392e21fe094a2a32d3eb3d4163ab50a8528800464c05cf2db162da56dc13e709844dda7cbae47ef8364c8c3d5fb471f9407bffafef778486c304088801624aa2318433459b4794f4c31ec2cac49d56504602db94a5b882a92b06ba9ea1ac40523fbf4ec1dd473c076d3e397941c821895beeb4b5fd5eef9246ed1ac724a2aeab43c56a6584bffcf4aed0c6629d5a59b719e5d677539c3dd620d861ee7f9c0a5f116a17e4bb3b16a8017e668612c1038b576e39dedaf7d848d02024c0065f1b896ad6594af4477c73544ef51f3e612c80f11150b1f394b9fd899fa6d927535efaafb745133a45442241579e57701399ba23b0ba62a2ef13b5eead46f02d2c5a91fc031e458be09a8b5d53d9843278590bf556e2258b371f14f07cedc213302ecc895e15be2eb0e771e4b1d6d10fffd2ab945dacc52287e8667ecefaf3c959dc5bc18d0d953ce392acaa67e3f457630cf266c7665253c3c04cef5a73aedee0cfd06efc300887d4694dbbb717f2813737d0fae91e434922ea831ae41349e44ed0fe9101309dee68c1337f050e9e16113e8ba47877202b97113b3b876f4333ee620cfe37b69e597162ad40d78f5a7be33ebdb38b9eb84dea68e01de157c7e74f4522836b64d146f719df851b60fe69cea4667daa057bc47a47248fc3073a904239c0f8757cd8aa52e5d837fbc6490a0ffd9a3dfbeed09c24c61e48df0695d8f37f5670aca01a3fbb2a5fd3bd57cf38c453f80f9de428aa0d860b13231c5b2e435905bae792ee21e6104535204f9ab1f90d8c3123e57e2d01b0091ed089b9083438510579190478b86980370bb0170992673394509aea3a64d241b0d5388614282c4172796b00bcb034769bb492c0fdbc88c1a30a040d637a7b9c496f620114546133fed394ab79413268027d5418bd61e6ce3ff18ab83f76ea0a2e5694a48c01931cbd1c4bb02a3515ba3fcedad86e74b2848902089986bca91694dfa712b97c4f2878f287590aca47afb18d1ee6f502b90749f8ca1d796309c5bc96f5899f70fe0b4b5061668e62891b5285546f0dd2176649e5cba2b206953c7b66c57fe2e67c1c6e45682322d82c569c543840722756b7b4c92aa059e59983fcc327833931556346b83d7519b3a6b93691e74af6d26fb61bac9cce2f880d1f194d084171809bef926e99218f664bf18f58585985534281b6008d86f48f8c4044a4e4c89f4f08cee869c6a09b96df42d6435433d247e9e1150ac5b09da7f66d4f2eb0fc7f8f22bf11a0b03c9958f0562030d2c93b1c4a554e86b00f7c2e464aa54fe018bed4578f3ca0ee8644c3537b86da324703e7779fa897fdd4b867f7620e7fad29957f28067524ea180380428995ea333a3f291fdc67f0364cac8683e199a9a85c7caa3cc29db52f84aa0d0d07d5677d74816873e0af727a8555149d41d40a1eeb5944328a23b1be9e55ea81bfe461c86bb1fe3995e9f8dc83a77b06257c6356089bba2bd44e2a7acacf6de34262d22b0f899d0abd705637ad5ed1de2691e498851db106f1bcdada3a2f96908d3774f661fe2e8ec3ec598b936f4dc4d04b80efa4f57f3c55d0ff990b313643a8126aaa14d898e338f5a261ae5bb17b854cb1a87ad626d3b4ee29c567baaf409ad53891f707c148f49ec16f9882db396d1f140ba9e8b0c9a0cddde6592e5e82de0b18dea363e8605ca364aa68ebdc5f3220b810125fc787d339c6a5a68c92cbc64b5d265ce7a03a06a2409a8a18f000691cfbc5b205bcc1926efb589b82a7404d1bedf09e88ad286f7711a6d67ece4bf76fd86556e840d73f353d31b4d1c3dad5e83f72d540c601983cde7171e67b805bdabe3cd6788e30938b0398c1c8cdd5f8f1028f123d2d612611ce15f7637d2d751e59df171a4014efa4e8420bfcdb75b77c63ad1dfde967d4cd44792d1868d6df3c5bb5f1f3617861e24ee6fb58c33e6b82a57b29422dc0c5aafcf0ccf44557ede0e9f7d32be95f4a214524a30d37b85f1783c3e77b7d52e8648afbb9a03435c59d6afc2ed3b6ee434620c0b368ca6337cc7228916c5857d1bef27502014a0798ab099a7d7d9f053175b9e94d4e3736794034bcc92a842edd555dc74e69906a8021430655b3907ff0d5af127c847902c783e5e51bb45a3e4da6bca417774417fe2cd5d8448c5422eb55ebff2a44a378d528ab06419e6ee4ff6608eca6b44b8c71f55faa714bff9727dd3163b090330713d90813375c88b8681d491527f89b87f9433cce8f6dcd83fbf4f00215b3caef344b38ab4bd9bc5e3dcc3624fb60ce34acd7340b14d9ab48df15b1cc839265b791a417f90cd463df719fd69869aafec64df9bf010498e8d6397e1cb696fd68b38ca9ab1faf67b7123ad01781ffce12a3dc2b703cfa73dce16de7c3a09eead7ed6a644f96ae33a4bf179122906c969e99d9d99dc3472de3c48e80be4e9685602b23400bc292ad6f2fd34a2afb87660a010fec11d3ee82c164fb267957b6651d9150cfba16650952f8f8863709bf5644b0e4738c45199824511fae580548c7f655f0bf0bf3102002d80c2b2c3adfdf358f2a38346032120519b31dd906d3e26518b867d1dcb91caa5567976cada346044dc8e7274c0bdc0597556ad059f711868b83b8da5920304d08cdcfd3d5d427287f5b637fb7e2c14253452915fd6c6614f93c3900c6b3469d7bd87e2e5f15629316a7e8d4dc12ac80a89bb8c6ae7238144f82792bd04c2e741beb130c2a5a9caeb09e8f02b1480ad42486d0d8e5229072dc139115493c2c747920ad76391dddfd66feac8744d5662014bce98728b8d00", + "tests": [ + { + "tcId": 55, + "comment": "long private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a36401c37f701d3534f2b12bb1cf025d76c2e28cf618c0dfe01eaeb99e89244bd9addfb0ea382be7fd5b84fc7a542da6df8018393c1cb4447cd8a57a2a4010ef668c892162120262656660577537620858306877288262032550153645008243057054217885086730253027718543115827673734834021026655848872507780160307120610653807615026121011654045584742242028050076212304644622036857780160574258268153175682380507728864805110378511663401100281288612604554431023467464318607638564716220174250501806756485253788101817760728110332166223400053388866140755703256378713651266251025143727143862156512628830358881868827351366230442135233067730826283313276701663806868606378477354802251542518664580001676813105243524037547434312857600076111675044534078713415665851221862481576565288714147773755146042124737138577158807552174524665527655475711031167755773405268058885826085172715016873355756131635087773263680176517822621475634868037374581758202262826405358827453764185573441285177646637046482664734215076273628557418472536417670624837714315770036225287425417545552835381262180632774576104156422128657852728607634888226030104476341211350275417301320538568576126854705873358535286252876730066607400671077451488287474673781057376755636736300351584316776077034760530472112026628657855477551476720662364873460023778603037564413774656371300714764330504086315152870325575220164151244123320758775702584254563302118684674181206428565763726336522613252227150246387837431861718613367336681068173381155570303618371877421018621034688423711364265326872170560016737288183135386051588605005575601562300482072351276338850813627300827045360182475734107841807172823405464035682762454727085134112788152668335867881603747747886438728275143456437138372534838423544772560485420373145867133245230318456430385001513766856401740560506632507806758013070578760882087560664118431087766457301152570784374156607668135523235127006508001844765168205625675515522851306463808170330288717426340542061017182525753272483381887050415385621873518551456220162640581837416542202384673046227788087360284411017141668004300724058448772845202481185421185106346558106858851458334352156853014853775434371558770778756562750800618155783837362317541122253861613131105617835532140332273154670126080050054821553732466882528661165754206308744168278778886451752026474481361880682130111255183607483727825030054507078150465157304487813686635646518564474314147540677352760104147038338840886546367137471653273322815730234801515416268273212123372142508026803610111663547542260815761245004581623328122653811435308228387031216118038527465681043658728857732880011211842720148824782314800256806645741246087368061875721027666682312103868210735466403846013883051130172662338686665824445442680428744316636068502645333342510762032110182576265825132061332306783484382753165436032405062768011781085432483762467688218557682520377778334416064410850584515378203731655448168158187085814234183301526115577255068758827451712316307151624186053783455822606128666687000188750627024377333667f9ea90a30bf9214ea584ea87d0dcf45fe8c7d03d54e169a64cbb64533f801d4563e1718d439e86f91e421b90b02f63a4d8bd005575dd0badba5388c48e8e3167d1bd314810fc2c529c220c89ef3d1bb549ef3410719e6ccb2e2c359296f20d9b717704b98ec5861d0b74786be357e3368ec11fd0783034abe1d432ae30fa38ea10775686453b73450bac84f76f2b525e6a9b937bae8a593bb3e1d8fa3f33a55c20864923a2274bf766c405e785113e5efb2d572369148be39e03835a05c904866719106c11eceaeb08eb553cda18be3f685a30223a16b09f4516ff5a3a28aabbcadf48a7ed7916227aa6b04ca899e157fd2fb1219671134ed555b9d8c63cf769d5b2277c43689e215dc1886440d25b0d51e42fe94cb5af18b316f7373251598dbbaa2c828fe8f90c3892b65f159b495c7b11c3a315eb1908df603f7264b41281a6f2c7abe75b76c45b9e9dcd563d0215c022a7870ba9a77c2756cf4b9ac44be1e89b8d58108211a89b33ce610abeeab2603a136a2cec9f4a2e3abf1200baedaa33c5ce3c68004a2c9e49399239fa73ca36f9f7c38aa3f5c774e5ebfd38a416411fbf9d6dc424f1d35cc36aca3ab5e57723ced977a4c36f6f2d52f2cdfbbbb60f8e8cbd875047159b83b997837b4ba6914ee408f5c63ea8168d8386ce4be6d58a52c0dcf7e36ce356d0493e79f13832ccfda167e87339881f22d5c04ef3180abb68bf385fd85a91f2bad501f8c11d18b111967f151e75b645fe6c6e9132ea9ebfb96bc015865dedcc03a80b689dd9884ca2b03b9c3c139765b085764290e77b6f98424677315e92f9fb581cb6322ad0a6104f5b99e646e43f40115dcf43304fa3ac29e4ab019dfb5f95b1d15ac6dc7285a77066ffeb17308e8d630fe0c66d63e7fa641de17c0f18814940e4d46855f421894be71bfb4688c74bde7c96748d412b3dd77f702216847cf997b9a6f25ed951b17c4d4939c30b6e1d703a74201bc7a962900dece72a038d69e0679016aa4d198615f37e484c953e773c2d813e74d73da6f291cb7a079c297f240f779ebd15a53e62cab45c98b2645b956e20549504c1edf3b96fd3e2dd50b69e0d8a6af3e286fd8df55f4623b9c5560a7e93e7341262de6c09f1ee74101f5ab2949254caa89f43a268e86a790941e90ba460fef076e7cfb16f33ec06d5fbe61bb8d407f7a14edc7ef1bb61d9130d51559b484f7214018c97a875e87d76f96879d48486193b94553f6386ee0f0581f0e8d4f894b66f7e859f7857e089a76bcc3c7ccfc1c623c9f552579afad69bd87d050a38b860c4d8a5dd9dbeb9dcf2e2a0a21051dbdd3ee12de710cd6ab69ac26c4d97ddf5c503a7f2358995da75953841630e70ace374e03371cb1987259eb2d9fb19e28c5a46bc0e247103f9ded74fc99171a732dcc9836040389b7db854bad92c95e64d383c53324b32287f7dfd582854d218c261f49fb32aa6338d590abe900bd5f75b9db18624ae6b725bb1567226c85f5cbe59663d46e6cec63e1e11db91fecae53cbba9e45ec3f5b1b7750cddb93c41f86eae0f30d760e07980bc7e25f8c333b9153d510e5c1b92b6468a6ba76202e87c73087660adf1145f99dd5742639e034c63f235375f12a07283e2b0547ae90199eae17333c58f5af5e03e9f2e34d3752e763b618045eca78b845253a31005fb886872b30fb1c3949db436853a55753f8e427227fae92e30c3c6ba8c061da52b63410c880ae255df765742821e0236e7c5b582bf922deb404c5f7961557b150eef668b04baf50c3a2d3e21f7b942d4bf9dae3c25bd81a9ae3a0d76fe1ce0998c310cd936597ae1e178f99df6adb7b46c08a909dc51919d12dc2cde5a7d55ebb442f1f58ea53bf92a92a2e13e9917447ec09da24fc7499c5a140754d443e947338d7723c2e89c620a55650c630e63ef3d732b68b79debfce10db8a52d9f325e2c6df03e9ba4604bf928f01ece3f26ce8bca0e152c33172f065869918fdc70866823809a228993ca4282d05cfc1dc40adb514f68e5645fa7ab51109eaa2a16b60097c83beb377b5366fc564ef77ff33daa536d9bf0bdbc8f4c8eb31f1f241ed65a5ec257d0aaa689b7b7dc2b3145381165ba0e3e13860cfeeffbb295f0be75536d2a9d60ab9ddf9c2759d49de5a518c23f43f8fcdaa0e861e3f1bd0ee0fa8b4993516d111b7da0acac70fcbcbb5edd6944cfcc320f7371545ef4f79732bd215ff8db228bbd801609af01cd2aec750e13d573b6941a0dc41eb11aa9c8cc3f734c28738c7337e13754e3a3d5a378918b308fa305719b89632623daaa38c44d740d22e7f3b943acf23a7d9e416bfe75c865a363cbad9066f2b364cabccd7d25d1d4f05474594c5730918e23f2f7df47f04c5ab2a21830ef70d4340399e46deed555b0f1362fc4200ede6cd6b15c4c951bdfa98f3bc69867d884f44d70d2c8c333dbbde59208d29937603777b2fb97d0a9117202f972cb03d0752ef69fc72a4a63d63b889e83d47a190889ec5a2b543ffe04b0f51e232ebc8cd1c42a8412e1e468d9db1c80d69cd41132dbc1ae272ce5f2a53af70836025eebb061db84d10b5700959e1d79fbbcf94e95b82b7f652d8a785b0c347d0dfc74d78acfcb97352dbb69e8e02b2034d3566bd3088d782b01b980c8da9166caffdb68dc0a4ea0b67187ba124058236ff727a4f15b16361168a3816a9b084114443da01ac1ff83e754047a025f42861ed697a799db164d32748b74a3bc5112e7b14c7a7fba184278a4daf17982ca8b30f6325b69f7d6e9b191b6c54766825fdc50d03218c9a00f89c6bb9e0fbee658a68fb40f60a88cf673303326f92909e23672e8aaba8670d16c498cdac10cb7f1942df44890e4ec29be4ee7d1e8d87d42639239a6cc9cef7c70c0aed3057d9204795b3aacd78699422c69b10e77285a51c0241f37ea3cc251bcf8c2c3478344714a6862e2cfd5a16127f2a14b92788fa6f3d9e64525c8afae9d383c09d286be154a4b9d533fe7cea43e7bff797d7247a8cbf9345f1b25fdcd9567363d23b1d4e49d10a228e5f0fb1c4750b406df731daaeeb5b6a02c795e6d9fff553271031ecbdc2c4849fee22ec26fa2cbc5dcf354e7938824949ffd01d5ac45fc71fa7c75de411d023060e79725cd46e6064b5d27056d45687632952a6cf9ffe773559acaf265c9fb92f7fd348cdd21b0334493e5aa92b1012e2067760b6beee9bd3922a436aa2c218f2eab0992b1a654663befbb0559fdb9d6750121128d5cacc8e8bfd6e99d37cb1944f578cfe516a10c584f5833af9a6f895e77a433b5a7c997bb4aca1d5e8fa5aba5f876c49be22e2a200b0ef206655d3a0d440874d117adb20fbea3c4880682480e6ec0ec0df50b64f1222fe0e80524861bd03fe1990a8a014ffa43fd6cd1c0e046fd7be1eb981f9312fa72e3a3259dbe4e71c66318a6573ae1bcea28a37fd2ea38542078150937a2371efc3aab7a7b75d7ad6902f30c5f36e3c271935e96825261ae9340df4f3d2c36c743d08406a", + "tests": [ + { + "tcId": 56, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364bef2114db20c23e2612e09ff08803f1370dfec0fe7baf7caa0b136307c4c5e28d66131588fd95ef62f045ce5f9fc97fb325a615633cd8b3750e0a59af4ee68b585216212026265666057753762085830687728826203255015364500824305705421788508673025302771854311582767373483402102665584887250778016030712061065380761502612101165404558474224202805007621230464462203685778016057425826815317568238050772886480511037851166340110028128861260455443102346746431860763856471622017425050180675648525378810181776072811033216622340005338886614075570325637871365126625102514372714386215651262883035888186882735136623044213523306773082628331327670166380686860637847735480225154251866458000167681310524352403754743431285760007611167504453407871341566585122186248157656528871414777375514604212473713857715880755217452466552765547571103116775577340526805888582608517271501687335575613163508777326368017651782262147563486803737458175820226282640535882745376418557344128517764663704648266473421507627362855741847253641767062483771431577003622528742541754555283538126218063277457610415642212865785272860763488822603010447634121135027541730132053856857612685470587335853528625287673006660740067107745148828747467378105737675563673630035158431677607703476053047211202662865785547755147672066236487346002377860303756441377465637130071476433050408631515287032557522016415124412332075877570258425456330211868467418120642856576372633652261325222715024638783743186171861336733698106817338115557030361837187742101862103468842371136426532687217056001673728818313538605158860500557560156230048207235127633885081362730082704536018247573410784180717282340546403568276245472708513411278815266833586788160374774788643872827514345643713837253483842354477256048542037314586713324523031845643038500151376685640174056050663250780675801307057876088208756066411843108776645730115257078437415660766813552323512700650800184476516820562567551552285130646380817033028871742634054206101718252575327248338188705041538562187351855145622016264058183741654220238467304622778808736028441101714166800430072405844877284520248118542118510634655810685885145833435215685301485377543437155877077875656275080061815578383736231754112225386161313110561783553214033227315467012608005005482155373246688252866116575420630874416827877888645175202647448136188068213011125518360748372782503005450707815046515730448781368663564651856447431414754067735276010414703833884088654636713747165327332281573023480151541626827321212337214250802680361011166354754226081576124500458162332812265381143530822838703121611803852746568104365872885773288001121184272014882478231480025680664574124608736806187572102766668231210386821073546640384601388305113017266233868666582444544268042874431663606850264533334251076203211018257626582513206133230678348438275316543603240506276801178108543248376246768821855768252037777833441606441085058451537820373165544816815818708581423418330152611557725506875882745171231630715162418605378345582260612866668700018875062702437733366cf5b335379c2528de2db3c7486bee132f92e34b325eb2b474e238581051d098eb8130998a5d0ce7e8ed551a204eb0dec3e53a53025fae317c1d973a27609d5bfc3fdbe6360bd155f107108c4a5971d913a3615b28caa60b7ddc27135a14608d2f43646126402f3f591e175ee4c34f142d7c2332c6ade52ffc31095a5b4e23ed5b63dc4dc9d05496c4bf49b308f526b447e5601d98a3a111c62d349af190cc96275fa4665f1aa379ac393ccab3f5ff0d05ad217bb0a8f69eebc1aedd7dc219668f9742e1e8a2862e620bc60b06ec7700fa9060655a892f183e70f29f6d188d8b1aabc090b8c4ef967d6ea350d65fc02ef4d6f062c3c0421794ec261f42d93d6f12eac55f5803518def6b936c27e1516e547bbed41e86cb23708bd941f0c75d272a1b4c8d09164c99e3330142170c403164419b916f956e80928990ff35b52c5b09f4cb1635d212d912126592f2f73770c759b93bebf89b65d0efcede2d29324c9170a716b93ef99536714b7f5cda111499dbafafd5412efeb291f874f0401f52616fd6eb04ab7d4df4b69322ccdef1a0a5a35cb365d5b0b02d1e5c78a9e1fcf1c02426add4bea769eab6f5ad19358ebe3e6c45603fb5d056ffb4474984b7942ef2c03b3e2b2fd000556ffd1ccfdd874f5628809bd39e396e172b3b1316f77b7e11290a0c584a148ef9575e7de4547a680808a0f09e604b7231e4d627995be092d61141b874fd03da36a8933ce3a1262099097806fe9b9a0fba7b16a0343f3e76e69ae9d91f68963c4b48f9c7bac411600ce4dbf87b295de39bd819dc632fa45e3943810cc231a4b285101797f2b6d4f08ccb33daa67eb92d632eae427c63426664226ded96652d32c9b18c25c421db3b0984aebd8289e248dedc4903297df22783366de4b71cec53c308e394225042017b7f92688204ed6bc8b0c5f34011ae3335079eea47f617563498be1205166bd3a1c7bd8110d9e6503a0dc72fd550de1acf401dcfa212ddb3790bc61f04e4df9fa0112d977779f6dea4333a19749e17bb70ec8a7a18ef4373ef131d89b3f77182fda0c9f98b7a614967a0708938f2288feafd89d19a1f542606874f2eba5a0b7582b5506ec9d907b50dcbe0edf55f32a22ac3a62dc906976ed327d530c67103b5aae417a1d9dbd4538772daec64891b90e913bba087f7b1cfb8dab9a0cb95a19bad82ae6c34102cfb34f783dcb78308509325fcad64d301b59a50f7eb1337b279fd39fbf2062a314d56b1ac8d809997dbc094201a0ba7e46d2c79efef3b2f738c534083edd16c41d2d0fec673c1f15e9c3f996e830ec248f9f27049cb276c59920bf690caa54a8ca5d012a004e1aa12ee181b9df54a2688aeb38a7194b64c4be3adf2392b7ab5fc3de1a29576dc9c70060bbb633d4af5e890c6c6f7567c6cb17cfe14f75d8eaf1a303393b68520d88705b6797a78e991d01735c715d5b93f5231d04b662cd949677385415e210fae274f454cdec9081222cef1defb7818ffd1640d55cfab872718786f26fde1d00ff1192060e5d67769246693eaf49d88f75a9910a83888b40ca630fb3af98d1c1c268dd5e16f7b8e501bfb2fab98129e09439eb3fe7a6356c1c1c3019568a0dd341125536d8006a23003f1557fa1cbede1a78c046bb91b00e3f350019b7995864734c0dbdeca44de7afc847102e270d880b6ea6d01e5903228e7c7ce66ca0e1d94b6cccab8dc3c90ca168ab8a131cd9160b515382f9a667b54365cefd27006f0edb52b8dfc61237cec28e31e3e8aa8e2a1882c13d3910ef0fe61511ff5d230eff4bb990ed7f471cb5351e88d780d74686097c1c32eb8e918fb07242aafbd52f3c584a7f669fbb6d71e01ae12d5f21824bb5fd1e4812d7cb93519f62fb9bb3d7dc2eed33bc85107edb0618fb01bc38ff89f3de70d39a602b2b21413bbb55f1541eb9d4b6a997e10eff77c759e5565353dfbaedc2942053ab72c64c9bcdf22cc3f99d5130fb4b55eada0fe8b69368af8d83282f3bd2a9686b18d0682184b48ee0a0a76b1464a31b37acf8dde3a295a3ab293907fb4dd5a6703c765926e23fc58bedd769d427c1b73e0a6e5d9f21a5df54292187b9d32a2ead8b9f91540efb7e98a390f76c1ef40e9fdf9253193d5318e1092d104a7312ccad9e2fd5c9c5214ea4626d429c389dfc931333181b931e5ea723e34034a0282174ff89130533c1e6284a99f6a01e376cbb79a136cbae3bcba43fdf94616ac206a4deb4ede69a2c126854cf9a7dd351c5290951893ce6bddd3a97faa51f0807693ffaa6ab7c7a1af39883d78b8600651d2709f9c01c73d62750d7d8729fc5b410fecfa3147cd06e8a8e453929e22a1b4e6c3b5909bdb605d1b52a107812f37b0ad7f875162c403600f19f6c9181977d2e1670e7364b8184c5c61508f5c6903925bffe36b605300584e251383c859a72908260ca1a78f611364a80fad6387aa3b71ecfe175a2bb9eb8c4c801eea2a82d90f4a5483e0abe46f541042dcd4157e94e2865993b9fc45f257cffbcfa6228fee327463adab4299143e6b175065cb93cbc21b2ba4efe06dcba5477d4de623b221b435ed0d5100526393e0cd1d1c6b200277ce8f7f020f79e5119f85643d4089217db311d76ed9bb3576b6ac21f118af5c9c5bdeb9487014b5fcef89a14b5f85c3e9416a5d333e7a501199c55f388b157bb89adda91a5bc39d212b3526af5c5e7115c2419d6a92db81b5c8811b16fbb66ff09f52879b4f96aa412d768a53fc11d9651844f5e7ce16bef00da7c2d8a1ec61fa3daffeed9b4d0ec314cace4f38ca12911e9c71f63f4ecb877bed1b95ddc57872ea136d786414038834d9d00929f9c40f0e74273e2fd55d331f1b61370d8a0ef0dd212525158fcd4e0b7e6d8c3f1b367cd6395337c751d35e8d528908d7f92cb7baf384577e9902eba8b2d1c50c440dc18135e6ceaf16093e810725437c8c118c2ea9d09bed3f71a38c95f7baa0822b25f662d0709783ed0e725bdb9ccf936bf66c4a660ee6ef5f9c1a0e0227582a1a304070b286806ba772c8f1fce8ec5eb7a8735e8d15b8261d8852ec913816cfd739475d1412fef0e5a85756385a9626fee1f4927aa227ac930db6ade1da75b6752c1191ed766fe9cee652c0d34f96a5cd596b96da30a841177307d32cf375066c0f56478a3cd87653d13c010793f6912abba2c2bd53c547fb5992ea521f4c59dfe955545aec832833e6a4b51f745b1d6677947bb6492e991a2ba411d74a5e67faac65d8e9f451374987d21f17fe15f99856173760ec4692d52bb1bd51fbeb29302bc09009279272bec9141aa2444ad020ffa416fa35943c423c00261d54770074f78dfd640cade82f9e7280b9c4ec3f8bcbc63a2286b5ede8e21a06b1c251b525d1f41febc0dce86225b0edd6de59d768df541127649759de213d1a84dd0b03eec32006758b069c1e0a21121a15c706263fb3e53d6f37d04c77e35c9fd70541b2d5ad0dcc826c143fcd1076319108007a9dab1d6be5e0ecd59d609058132", + "tests": [ + { + "tcId": 57, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "66239a16589a522a029a216a75a70a5b1c9c49b6432bff6e4be262d4d999c01d31cec062b9c60b50f394bbeb12d4763ab04d83d9ab3f08e33d37d554cff24048575979ac2e6e7f0514f9a35fa2a883f233fac4b86f1550758ae699cca65f1bd67ece689da47fc9ee9e85d38155f966c03799bb6cfb84e4f62033ef8be2242e7932408022154728203603167521238242353364230840231131005254160344120788857083660860677307328184661267666638880601862538013373717055743172244673222581744564318645268487647648744822181107657700224575058853430771435823763877204630043265416834412157258870070332654331552302568213762268637262867008801821217084532357413540276337416828454777738754614726243574836313011182650413353050340242281384784566827854542526708350663711276625634421783811600336624151588868527246666012701436600340457047714352287518358571324270854251487282433310441753721750336723603720741180674308741406271041706774642452275121276685488818706526802600446656727025650583587812710015638545032327123705888272323147565061337882278550370743027354311135731014805044711236501621412707177440355768371288852635175864013440875037468752876438868432811223511663656780802653611607083240013215610452127068088060675150203475632008021387162747204736830560226033878614000065603182607244627143832225054130633711381122227321416540407136366115730268703071054615715285784184260275660140373786245186018507127737863223013380368820420547741151728723556632131861616740726478661656061566425273445110884547058755872508267723373620280066057624120653788300651603066073865635224244352484606318773605547653728672606008270280735276453780660462317043586002558612567726451130817027005772250815402608374422173285628866288705502645225267320446537653037432846821705650000888813488727065835054656446100872703377120640112743320520611624042610131475885253707086280775714682262477350351765727761323766008758054845403022151314375385205876518704600321776235338834203703661125152435414454240824321336435061782411135353261425058277118344681204575500448378710553438445763504753681020215853063765112814402068831838572270273472221081135086734024067405853377738152308522703205660667452305688786601478430207157830322875031328526785111875001542476182130575450684154613326102174218604106371166783063113673272658570654485204457148261083126527761167424676528131352748632671657666381722472664166454051211324457616882352830512881345322674872414588207352835233551845170272083026635525818643630725625451844187047563466481002253406521472308546874428684758306145451321385854605053765560054787253885833180508167712352167808017137331368544008218685688678200312887258641115002164116588525433272838003582612448378074275306760485141756323744845668324835178162334444741456668210120456736301032046030511685448186102876873542041333388827130288246107660284711662262573311777184721168240586672600736406742733355000733415126854125710813870837667808140286733422622017000211343467075654811231140760847446551763153337342602402005247263367334757842664276583448212857670355080261066438777426633471027657733213460243307014534503654548465421747073103725061336286000543752136483384831425230660187866011065508630556384411877541187044c420186bcbb9bbce24b3b334a4db01dd8644cf8297d8faf526901b4abfb8a2a3a2dbb6a3d8f4776620e46c411299b1f4873c257800105c73dba020921c3775423713d08781bb1e28f17815b096babdf9d73b0f008250efe0a98ca1cad2d21702573b64d6ac94c7c5097349b2aed93420552b64d0db872c9c3daf37d8a203d285022e1261016207c8b3d00e9ed61309bc474de79d3b539e4809f9fc7fc5ee0972723d98e3ca426657e882d182b86939669267cfbd6891eca5eb7739cb2494c8dcaee745d241dedffbc9d4b98a4b4e3c9f49884dc963812addfae226371ef047f59d95d4aef899b992203d5d7724b19638472c34a197ebe03a27d160f123e47cc79da559dce52783decaf3f1490fc30e8263525b474e835f80ecb7ba3c5943222b4ee0e973d5291d8aac57eac7a66e51721335d3907fa7df9e7e7da52e1d006527a7177e4e1a925e7013557489b7332c2836e39fb3431b9d5f1ceb7e52a3fb2acc10dd0d9e98cff6dda9a84c634c9698e22da9f71a9c676956dbe6e74ee97d8a0428a3358a2748af79501ba5043b85e1845f0fa760781a456a75e6d66767ec0c184274fd1bd9a7ef0bc4bfbe29e48f15ab39622e849e534be2bbda0fb4f9f0a4154bd45bc73f065b898e4d0568f26f68d37b9fa40cbfc02ff27afe30f3855ce7605e7c0a9f7e77e364ecc6224c5597ceeed5a419f8221d46225a7785a83d3fedefbe1a232edde5f8960c74ea92c801c8f6ac9962a7e7ac0bd23efc9deb4dc32c5ad46dcdea36fdb952a82503a3d76769a5f725dc8d2386862c766e51dcc1391cf06fcd4b6978bf6624f2238c3b5b9a5f1edf85867d638503081982a6ef6cae373fc8ecdd3d3533cd5489844798d3642285b6f7eb4aea52f78ae27ada40ca3841510e08b651aa3feb9b501702796885696935eca99b55cd44511fb7bfbca18acb075dc0a0b9e0e38ae950eba2a7341b928572cb5fe0d1acc3f2ab6438db5b6133b52b579eceeba54decfb35b83ed721aae6a723e9e5163dfb506cd5e729365cf8ef19c706af7f3c925c9967dd490621fc9a1947c8ee4a14c88bdd77768dedfe546898a4714c4f739092ddcf57f78583deb844f00b13ad052412a2a631f6be48081627631b307daf576ec47eb53f9dfcac6826d214d8b0f38aa5bee277f1f320458d6447fa7ce0d81e0b0bd2662416e1e6a2eecb5ce68a2c91516ccc48c95a7078ec713348e5e84dbc0af4f0a6dcefc0dbcdbc93ee9a2e29c6150f1504edde47ca74ac7d8d415b03592fc0c564c4c1f457b20afb16701d5850532d59f8065943ec5309418a387e8f0acb30aa219d0135f2fe2cc3ac67311a93548012f4d072f2d215b78717bdf049011bf7350aa2d42885b9e1f374a00a988e6220a32cf699a5541642116e58cba9cf00f9c9314554451bdcd04456ca3ce447aeba755276085c42d4d39834b7ce1e411e7f6a84fd374dce1c1febe0647980ed79a4b99e20d285f564ed7f55fd325ada484302a58deb42b874a0caa2ead4dd8d89aa1c81e098905b12d8bb517d28131e7db30aba26ee724d4c102e7a2c253778edcd04afa44a4858484e5acf971a173c6d12dead4ae6c198d5c13fde26893f8c992a3bd1959cb7330442ae56570f9f1ce4fe44bb228dba1ea609c0e2eeeff0f6ab5dc99a79a4c3280160aebca68795106715facbaa3b5c7277c49902074ce52d414c6a210b961ea823e90118ef6f6ec5394cb0a0470fdc759b8465ffd4475771df69eb4ef8df61d02cf3829c0eed9a41dd25f4158611f591f8f7b803b8da6f1faf6100a39ccd683a4aacc4235b2831830ccca9af797dc033f9ae0a10d37b750244fc6c8885b1182148a938bf904dd535d0e15cbd647fd83273035d40b823451c5581539aecd05ff9df528ede8cafd2b5e59a7dac9e6a1cb0e434378fac8fb4a086f52e5c2285983faed929fe841c49a73c8f1da18317a0f9843f0cdd2fe451f28458e1db2d04f08a6d5ade68c63fe68b48f3d34b44ff4d7ae4a4de8a869f439bb511301d02a4929b480612de5f0f69e1d151dd5c845a1a2d080d67ac1b902529600eb7849e77f7dabbd078235b79f4dd6db77bcb75fdf29660bc8c16a4dbd9f609f96e9beb397e3635c604947517599abd47599b1ec95359de45cf039c02fc47c2ca9ace91e42f28b2abd6f02d1332403228a4dac1992febec22cc1afdb77e452a231a7ddb1b09407366081894ee2ae3be1fb14f9f82ef87b8e956831a52ce818e83f77c8f6f100221c6b3bce70d6f813ccdca43a51ba7dd91def8d6a96bf5095dfae7b394bbcd89402ec353aaeaf2ef423bb4ba904c89029d1af9417fa594f6855f465aff28c6d777709a8a120ae09d4ef426fc9ce2d13ce09b192e9e199610b5466dad8c82798c70b62c4eaf1ec5a049825c674e3ad9bebad29ba00e69eadca562b4b5715e2698287d2bba5aa92d0458df530bb9d8ce705a3371c5d5d880faa9d83d227316009a1043d7a9757056d720e8f0c139a4bc48c027f9137a1c0d3fff417318e33ec7c86343a955883f20f4f6bdb8f46b7b551f87b3993c04fcc6ad851a333fb0462892312328be0300be5f581a7d098b1a2cc1dd6d9ff898eab301c9ae2dbed850bd7d44019a161b574e3db71a37d06ddb2edb9977666ddcd34945f493ae5dc5836847ff9a787033e2160fe2ae417d90664279913bbd4156ed5fa47d70dac2e28b6cf079ecc4b1d2f76175c2a1cce7228dfcde7b75954135ce3793664280b3a3d68a3312a24968d5b46cd1f6d65380e902ca730d752d174cca9279c76db46fb7ed0b1ad323581324356164e88692c78111311c4032c43b6ba466ef63a6d41fcdefc24b189ceeb92048f2c5e5b206ebff385b7139d55dc1786159f92d09b466ca15e4e94048e22f919300c7127de01ec95d75d4d57dd1cea6fb7d804a9aabd7c40d4dca9c8e2dbaab96f39fe7de5f37a1c6830f384f58e6feb4533d46548522bfb3a21c64b42dcd11d9dd763a8a3d3cb111080e2bce67a06bfd9b741bafc380c29e91000c41c78355eb18a47c3d1a08d96e39ff3edb5ca7fc2a9e6b723b5c307ed2ba03b5284e31bf7fd457aa9e836eb5898f9aa82342cdf6a41d93a3664258b227ae25aef560e09e944d8afae81055c2301ee271136937b1f277b7dd878a2ec9c9b3f2c417a09954b9c12144ebff38fd67416c5a6854986002ff94c40afe858e12ed490a246a96b0363729b08da4e5af2f00b0d47a17ccee46991713fd9b09ce2fabde796128dd115deaa8d4174950c3ac228056d609336aa80fb53a28da927ec3b2ec194912b283e22ff70a5a0c527a1b5b3c203e04868b186ad9269ed4638f9123e4415534410e78e5c46a41feb215eef167117c204e4c76d020822f33f61ff6a7a91b544b30c4021d42ae7be8e3fd15678c9467dd336b86f24105d3d8a2ec1c76d009c8ae85be0e179bd17cafc930f8109f00ba0d7da7e50bd23b7dbd1bf9fdb87d5b0941b1e34af8274ba7c74e871062b6209ce820dfe70ec6a6d373e4bf7387566d", + "tests": [ + { + "tcId": 58, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 59, + "comment": "expand_a requires 150 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "e5824f0943ad27a943fe7b1d52b8a42f689fedd9c6b8df15a4d9a6484b06c9ccb4260dd40421adc330ecae5aa86fd8ed07c64a4903e6cb7fc1b4430759eb7f08a23b9b392a35a7817c43ea040690a2ba94bcad04be05132c7155e16fdd7d3ae96af2975463450f3b5f4c5c671914ce075a3ed6eb9d669cba93d0c7152e6373d451012815258774802104818782032181222576110521372058845308173772760420548716607536151376324557213333320701143807124234027545467765418585561717106604145250036868846674617220101203538835574378688882612050484617285663033361651535522756311478713444875812020762661563706776873503358153427214746435060281783627378658740724533560027763043823701568230442858284685805884466407024528223701488288403860405178848857062181260033548467183643180238866388770480515787745237658463668810313300337815668561582430451566678454832064558021127141758760165276170285342520372530261026137120353108485711306236358680724750770322341778007017220011815023320811340032543285500252364331381780803675717316281121746072038313618276133562372568824204448650813102122018147735054273110074766438864023073853035407723571450356068521147441856506184266043481201428012345627750231542661547343634888641840123782424672326541737703827342735283850341734244083825134768877671555212058115626177037543077055707520322084114412451538635812786042776323362773486100062013562256858716773468017638567435020345888566385304270368342657731083162623256021420564778813447786577344326274634778624737477770003408881580313508628038204831801677805308246075757672020044670155282082108254760180081533442680483812420248330816540871242422282510047233125106843517454883476106030514858707328106202714420116344002163383705815080084864810478317101855175063487011314744438218270062001541548383531636644745465620521667827673304162854773628882278436815736344402468761111613623871223626323865573113057668751875051465662141685372220684087435713022442845156563625332614265834643341467081861431274480243783355808774268150803341126823122835751221866401323626116840603048774354426586880407350801871768353452384365871466736877372608505067357244522452772553183243775610742655510145221276201880137332235881040242852254842422002411737185100802763224434760276460423710704761242257371274067400223611230782152081027588542408670476357531348740475413127810203225531363412764242337750350173134268075738452014862572850581786376630317813714473601611273228312028488531166030868464303711217355615287856305732164238488161878357547553263243435110860353606057084038724613605028025848603345568873032411303164237185267041565817400712103460304211230816851002145563020836871024328312316010363282055514523574120777717734748437742632702830311583303624402381684532214300781457014177534883678877730856140683647670662843446801884547600405422222120661186262112614272656737246704238338011438426876273706208073031800277416668884738515700452768551267207043053748178455125050277115166564471838446324582510438240714187482806776016174500007300810585327550010780642271335316272404746617421171204347582182412887873472305235308361845780026168403105754147238756635505075036437515102733383017761447680861870406871422873075655657063733314f9f8efbe9792f57bebeedc85431c414854353f4d58d067b001fea0217a44d2e932047507d0323786274544eb8d5e4193066bd2c72d618e17962355ee1cd81109df26107daaa03f7da48bcd43408ded528e1dab4a28ce5b5264293784dd6490eef07be4e28063350906400d6254fe0f9e3c66549fa2728afd1b5e0386567450c5d1914aeea01024237db89fe746a9e317620cd38eed41aab5f701bec916baf97860ea93b3a2502a756567d65b45f67ede699d9b2c3759b66595efaa8a9fb6f63b833e0eb1e6fdc01f362a754301a4c0f3606789185db0972b40b4fe715d9da8719e3695b6cb22599d35aa8964877f30d8eb88320cc897dca1ccb9f905233df81f07a81e74fabecc5636a567dc17ed89a0cec013f8bce3d5e8f5471913e8b8732dd74def638a9e1b16102aa31f1f7266743d07610c9a9c533dfc6f12ab70d9c2d5315933283152cf23dd17d0f96c4ab926a389f6574ccdd0ec8c2c08b049e4bacb068b08ac8126f1028a4c3ccbf4a35f10c9a57cf8be2048b567bffba8c5b80b1035984da19d4ad19640eeeae659872716c9f7cbaa89342c20883744c28e4d56ca306f2b9debed64c5743965708e646c95b09fa1e9b06dbb4a5be1ab1c837e828011eb51995a2105f59177c92bcdfed577f77c6a59f02f6dc5d3d7625a958e09384b4633221c524a58bbd3ddf134e8e4efa36dc9956a8429a021725e12393726ba35d7ad0825ca2c30ee6fbd1537428cbc31b250fb30111e2c4c81cd9d2796b4bd018ecc9335a85f50c620c694a51c408007f6a6aadcc7f43ab905e5ab00c782c35a0dae30602c6d34869468347e462a896a35b768e39c1fc3209225d4b162c3e42879919a71d1c2833b1549f555ac7ddc246c0a88ed5b52b6793d2dc9697018d4c54dbfde90d436c01b33d8a066315592a324a962447fd4e90a8e00ff69a819c5d0b41c954f6a41e5483aecffaf697b05312f3556596fdd5378df17200a39da32491db60882160ef97ce8410a9e93a5a1a26b1effcdbe78647e510503deb01f4bd6a8c16f922884341ebe74ad349f9541a58ed9af994ffab99a21d5ef869135f58a5fbcbdb7cdd0f23b65adfeb80cb3f73a76fa24ba1cb49e72c402e229deb40ce06cec72cd868200f2aa1087f97364f4642b8eeeb803a0d954c0faa98275ecb2959e56ef06f34a78aecdc1d28d996d859bbb3e74f6dd8534b3e2cfbbfa8243153e3c34288e6a81b8733f3de28f4602288cc44661f16ea50ceab3a856768f2d8f01f3bc937b815b28111c3e3e9b25fc40334f77b6f792fbf376c8fa07dafe49ce34f860edda2466cfdeba5c924a9e338bc3241e4ed5186a6d5c20ab6e138ade20e36dd704fd4ef552addfbff8548c6fcb37bff1a704df1196c411fdd023e7884b35d650baa32fb0a1c3f07b16cb131989748dc5bad23c97dc7ef2f55009bc14de1ae5ced75347c565f870d35dbfcf59e6d951b6097d644b4692d5b50b3ae1c1c6e912c4279860c4449420770aab6e3da9c0873c086cb97eefbb563f76ed441ce6439e3d87791d124a27c39f0ed0d2c6a8bfc5a03c86729e8ab52ce5b9572efce4b1cb4d581ebf5c4158ec8fb053e5e409d40f35abb914cc96ead3ffcb4180fbe86b3ffd6aa0f828def3b68c60e8e2d4c2631296089cb619a00cea98c81b2583a0e7e92c3055a9b9b0f699e7ddafafc8ddb078ee65b8492e343ab382cdae6581180b39a057b77bbba9f44ec740934a7d446d147623dc1f2f2ab27f1374147cbd765db2c2adddae0bf850ab31b5d1133ec4d6774f05fbfd6f766f6b12b1f201866474ca80fe46bf6e7e3122f302271f57ca2f14570cb8d0662592723d319fd7352719fa336ac7d8782e59230030f22c30d56a7fb1b361643111c862fbb5bc852a5ef811f7e8f3227e4807edb6276732c4348e39067e5df837828392c24bf36fd4dc1036cc8b06fcfebb0d4e73f2d4e89b1e32fea207ee01697e4ee62a02ac655b67c97487c36d4c2ca654c248be72ab71a65fb12f08fc71000e6d0e650cac3a1bcf07b204ba8f357029866760acbdf5b42ee5690d39b3b2c1e7c1a2bbc7dbb70fce180ab62fd62aff6309325f6069a534fba987ab2e039a0050472d5924f268007f0bdff48bdbde8725398c01b7587c0e082213a4c30a9fc8398b8af32ea30a89fe6bd436a795729f8a1c3389837785b0b46f7e21a4376ad6e7fa8d2016a79fe195cc544a4bd3661d49c7213b7b0832e53d2c0e3aaa8b33e2aa0076a4e107adaebfe64c04ce84fce23c0926364b2d1cfcdffb16539c9f8667086cdbb23e28588b9ab32b69bd989baf33707151b85db559a1baef3ea8bf0cbc20053afd6a1ec63cfa2217799ae0ff2099914fe4d3e2cf05797ab870acabd02bce7b93685246784f8ebf1065eefca1336e83fea5f2f0c58b3ea0aa2e5e46ee852a5ad6bfcb37447a386d2ed84e696c61ccf3eb373801c91f49973ef5c935b41a236c85537faa40716d68ae85e5362391d8ae2b10a5151272427551830c9a66c4f0958952d85e43f3fba2c746bdcd6dff7c9f8c0c732286d3922b2984152c83698767df04d4465b019c52e4d4568044e82a6d9d20e00ede010426ba3588b2b7e5c1d45ac48151743c6f274fe5888e12ad42faf7b796b04bc9918b751226d89f8ee430ee6feceeabe2bbc428cf2f9923269ae8a6c2c6a207105074f9cbff53cd307325bab0351963e49e1d6c6ff2bebde85c70e2569af5eec09db157c561210c07c94d291d137132fbaf3da1225ebad7bc7ea02420676a76b0d63227ec5e3ef5162391ef6ecad28012f5b89ddf96a8bb53315fbacfd408d99b1d927e1bf4cedefd8f6ea85c89eaefeb5ee387e842b7951cf2935d195556f2ab48756e8a77b0cd2f376d4f4b8a2afa724b56bc15aa60053d1e3df77f1ccfa4771b753fdc448d646e313b09dd3fe31f8fe15cbed8f8ab84b75389257494bea82cce6b9f41ebf0b9eaa8e9e5461e6b3a24d346c188d6b087949b9c526c98f2f314ce9fc0aeab8a0686b58625342635474ed54e52c73585dc06f360f1f27e61494e00001cba5da933316676d096b55a5c089388f05d404302a76f8ef124df24b243cfc911fac002794af0d32c698fc7cb58804444a3e7b4c6cbd608ff1de58649f0f62e28e9dd4c23eefcf97fff133a7ded92027ced2fb296535ba930b4048da555747b7535373980008183b5c37d6d47fe174573a015e91f94ac4d84ca237b6f85952065dc30eacbcb3da5db071ee2c0bab09d2ecd30a5b7af7dc1ce099973c2c36024a9bd0c1d2b4761b4fad24db8aa65710ccd09438bddfc50507644afbd0a1cda31c997cbadc9f4eb1b65c3ee7898377fc9411ef4c5091988801f09c17e20db8dcd47fc71f52d84d8285359f17584c1c3cee0bc7eec378c22ed7bc7275bb560fd74d076cfb7ee0de5d3a5deea24c1f4abf7ec4ed3acff17b6cd7486cf0f0875d064ce2def61a81167a1682b729b7c1e1202e91702138cd9b4311c19e30894d37da3d88b80d25c87b716bd87c5998ab1d1", + "tests": [ + { + "tcId": 60, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "ade7527bcb0a6ffe2a2cf114e9d49d1907ef13a2eb3973f643043ac1dc03f88dceeb4217afee1203f3fdac54a13b6c44516c812e4818750e40612256faa649cca43f8a9aa4995b79af4ffa93c4478a0fb4b112deec6a100baa0c6270a00922c6fb38102ecc10df9ba0ab82c2aec27d546d8743d40ce9593e1c067c863b4732eb256be88f9329a2a105d7f4f9f8980a7bbc1fd2b8aa50c3cb8b15bd4d58ad2cd9182f6550d786d600da563537ba5afc711077afcf5f2ad27bcc885548def9c1865175aaf059dce6d3a623e3d40b1ce011e5440679a7567d0ebadb76b28fd9976f8245d2cc6b5b11789a5fd234136d8898f38fa54ab8587561c469c0cc60b03ddef90725bec23e7478942df433c1faeddbed06794d8e7e983a622b8602d245c7245e9b380301321488f904a99ee31dfa6c0c2418282954a2a8dd115d599f7d52a6a04d4f91b79d4aee5c9af7387faa55a37610355fbcc266050ea6912b81776746ec3c531c36bfe326d1976047ee7ace40e88e660bd25c69892cbc26da809cbd0b806808e19931e1d50a448f1f62b08269ce7d6ff3274cb88f6ed76dfe397307211924a23cc655474b174e8112be1b5ddd7f9639f4d22dbdf6ea48ac79767e605a733c2b4cffe2fd776fc7e16df770f6d69b527799f0e484862e298b8b82b3a811d5fa347bc9def3909ffb0cbede310f0ebfe1f89c1aa09301cfbfd3ecdea8e015df52bada77ae6eb3e4f1ef4b0b7197ac7b3348cdc6f27f95f6aee2827d954127c181945ebe05e564147a71a9abdebbffba31ac4db2d8dc7b630f48c3e2b2ee984f3518381b4db2129ecd17df588e27f5a4436b1314d4e9f3c50a10849db95e899a76bc9af091a61b1d0dd35ad75f33d33eaa1bcc1f3144320a7525cff7d4ecb2fafc8d4f6fa59ec642b847281e6e44ec3adcc67e4b10d01bec2d20fadd2d446aa9621937d51fd0cbd3e56a71eab9ab742f5db52510b0816916aa1efe1f16e97052abc39ec48e3ad2f0876eb9492f9249b20143cc62285488ed5d966292141157195c8a9d7b8082809aa0efa78279824f64c6221534fe517d18ccfd2a85482e716a043e582e8e95f03536026e98b49d6db3f78576b8f91a5107ef4f4a788a9b36d97e4baab8f9a32292a74099af38d79f45383664a41c0894044fcdbfff9677bfca7fb2b405d492a8534540e5310367a5192dd482359777e1419fb29a5ceb06d0ecee0723ea2f54dc9969e343876beb41ff8cb40a40664112852bb95c5a40c96afa5751a77a958c461a6d0e9a645f6577d624fc74f31a312ff6d2c8e3f5c7bcefd0d71e2950bdd5da7a5bc7ddae856f9d30ea9784d68293911421433f3fe963f70883ad6fa692b1aa6f01060340fadc0980c07111b0c829bf7d551d8557b7e211ac05c9657d1903078cb59f22be709db3fd9ac7bd37ece1e88f6cfd7b56af127e9e2ff57c46b9e27d2dae1a484845d873c8467be6c0c7bd1ac5bf860f2771fc2767b53d0132aa6c70990813238ecc663e4eaed069554fc35d91b8e826a239f87638e13a3ce82ee87f1283c2f64ee7d715fbaf03481df6754750212f941d159553296a11c3e5e99b23442a6052a1d13b433f74b04aa18cf5100fd2ffbd66088ec58c1d5799427d6787f7fa732d665de840bfceba5b78b6ceb6a42b5916cf8be83eaf5fbda9a4c92d3b3bde73321c1ebe7783a2f8c043647a8f59a2079f9e99466eb426dd9110c0ec36081019aba4d2421ba45d1f83ca4bd7c44b319557134ac8b973949e1b399b89f722d7e189deee7e3a738e760b1c097a7768af06d0f22de67bda64ad171dd8743cf72006d5fcc4f0862f4f5d8929bfe80ac40b0d82aecde6547ccc37f7c0427262acb1dc7af40147336af8b075df1cced5b01fc423906fe0416b89c07ffe69e9cec79a3221cd60726fe3e7a921779ed24453bbc286280ef05fe39557b1b529ee10ca0a3e54c7f03abacf589541eb02fb1d4e83db8da5fece911f19f1b8644fdc470c4d7995aa4858e462b288d61ae8f81b9cd39257e593467252cc77d77718eb705d332fd6e4d61c761da7aee85667f39e601f7b14dd7fcdc4a70e6aab78c7e429b9ad43fe959221eeb53a220899e3f632cc50db8632be08385bb79466e63ce406826ed24d5daa9dfd91ef0650086e8f67ec03e11e57ce0df35a87e36363731d5e6a129c974574c28c032492fc2fe450ff6df857aa2d34f88d740026c5dc69866e1818c6ffeca589da202db3243652d092f670b173b66e845ff249e0b69237cf6d73a8d7b6e3cb3c604dc9c1f08c543a3d532373c482a08b957fd77b78779742f7f180bdc41510a5c469afba4d656ef633540c4d55f3a08de2bb3aa13dbf72454bfa02cc15f900c9909983bcb89f465bc7eb9a9aba456c588cf0ac9689a313ca4891de90921eaec7a6ed5ac7271434772234d889382b32c6cfdfcb2aa6c4d76104ecfc3bb71945f54a707cd4851c7f502680c9f74a2ff6475c10728e843e6668f95f7f25b3b63eafa8586518819cddc9f13d7d721f00e4843ff9d6b00878b024a9368028bedcedb0f8ba9f75ba837bdf23c93d4a3257de45ba05995996821c862cd3c360bd39ef1c05ef3d64f3597688dafac2418f40bf97be693099854a05ab906a94640a395e1aec6abe7a91996896276b58a1fd55d8d2645ba1901f4514bb8af173e5e95bcb4b635ec2445e4b6205f711ab0cfbc3f8fbf8bfec533f746fd7acedf11b4a66f371a02f42d1f8f7c36a4bf5f100cfc665361a1d4e3b6cf3f1b51ce6df7543fc026d7015fb973f8921384fb921b219b7d59916168eb0d8db1150201941ebb608a9a34ac99df89371971f3921873041df22274e23ba378dbb14a1d67b865101fed96dd037492b7b73f0c8f2155f6b07de6dee4365065f71f9af7cfa7904e9ef5b6a417bb19c0edf5a58d90ac15d536df091e1e735ce641c7977e83455f0d4bfbce191f71c139a02ad09da5a71669a845986e5cd81903bc2fcf87667a77511271a22e400ee8518348357e594d94c0b9c80b738464393eb314c8eb9cacd422ad674b6bb3e86488850663a4ce9b996124515acb2b941db207ab42b2178e88838aefbe786d031e10409d0dde8a46e1f10afa41952adb8eca07f1785b7682ec2eaecf58cc5d2d6d8e41c86bb6190c316798b5f7bfcda275c61c3e65da4caa99dded9552e677bc97e9804878077af17b23430c7de12bd6f6ce103d8c79bbc761b94a0e98560c442370fae8b13e73fed4c6332d74ae4fadaf025ba3a3e3b91ca42be7ca07c84adf1c18e9d844c2256b2afe65354c55e7ac3bbc4c3700381ecf945bd57b4fd85cefde464cef8fd7ede5e16d83f770a20db982ff5632631d1251b00d443b0a8449dcbddc5bcc0b2a531a1487383b0782e3c42298c30202ff5f0cd0120cf8379a7629ee913c7d6feef0b230801c1eecf65a41fdf10297a9d11d9af6d275b2546246313ea3146f62e842b98cfa63f635673f76fdfa974f1c4b9a9f7180f5fd821c5cbc06ecae488f47b1a16d6300b556ffa37d22a039e884bac33031682e30a4f37ed4a20929070f68678cfa7ddf07e85af564281e4661ea8f6f5e7adf61d0faac9fdfeb743f46321d715bf5c1a0d3dbd73f6b694d0d54733f0777e10277b5166655baae53d50bb6ff5dfdd6a8314be5511c82eef8714aa3b6f9e0001085a980f7f9b4d7a647a0255b985706e7f2a40124a61dd8cc75b23957d377be6fb791e9b2eed408cba754ad47543a788a1c86d513d13e805c0c516d0d2d7d7227a84d3fc7dbbb12b346b4f14cfcb1b46c562fa08d5ef181de0232792171a29682d12fe7aa49d3056b475df44311dbe4bb05f6d139eaa69d63754e82ee1fa8fb2c943589952fb05dc8a3566c5fc6ffbb135badf57ebc8c97c90ed22ab381960a54d9c4815744c144e270180d09c1afd13db0aa5dd2849c8ab710a5deda647a1f2ea7488ad56baddddc131711b0eabc2a954a551d4e488c339afd7b50d0fac25eb3f3b1d0a81db4678202954886a2863e50232a5e8eb82ce53c72f0566841ca10c724621cd1322b80b776091e31868bccc5785254adaa93c3dde4bffe7e3fbc520fcde4247e2dda42dccedd33be150140a1d669ca760d2cf52222f042a518a0486dfe716d76dfd363573eb2d012dee8b23cad281c6f85f013cb16a8543433ad75afec14d50585ca6077e6a44b2ecbb7c70d19dd42114c5f5391c193b5fa492848e48760f3e858a2f3521fa0c8ccee73d4d7a051b7bac09d8e91f8355f591f8555f1b93dfc673e61cebc9a7bf1327baaac3fea44ce49e958820e593695b06574feb493fea7bcd7464747ae2f16c0648ed9f285d72e82e5c178a1de77f918681a5161333e5612167fc70c585da49d32cee28ef9905efade611117a76279fc791416ad88c723f289d116917e1a9931cb3f8b8b0bcce64cab7006a793340c369b9011700e352b358fdc9798e2c7c67d4891a1d900c9d84aa435481c62d2919f360b4fbab4e2424dc11bcafe70fa94926bd07f9ffeb3d3b8411d9d87193d04f39142db168d435ec83bd3c3d0f8da76694c6c770eff8fd9588a369e3e299b37e221bb48d382ea44cacd11021597fabb4cb050a1b9baacd7e8c99f96674d3192b565f010e27747b9cc1d8dafb000000000000000000000000000000000000000000070d11141822", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "622db4b1c15f5f5ee55e9911432b2a58caa5bd242a6f38a9e2d9cac83db4a399fc94ca5d6fff34ca2c1eb264a8be077fd7e48d4bb44b949da6b62cd97b788d2bb153a3a828fa3efff0d53812c84162457cec551bee54a4895245cc4364ac4823d46beac7a135c4c5caf8ceeae6d23d5566d5e13aab6a5d08b79e7376e7b5de3a08321152654664101634844151418486040318702077383314580613541362112311736244144036484110654530465000146107100564774678380202161885863125418726547760562870582781538258462410447121724352818616366527871141247024801205466712365713408752234680842058064884801783175570286407561031278867203542882383865870723050782312376326678705880502887818702814010741507614880263720502812860575462700680844510622802276671823287332662371580363433471725201642785025385155682130432827440816706532778488068583030887744652505232175081748322425634732662742362872164865521440287076416434780563358728380115876741352704836054534067857332346416620115082555311286554334006025434381052645514412538731846713122038303108167628626102157538734505638132373378323187330267034882757103320311238103124662504824033670656706621575181402172325844225422218253243002741770227864737235557543748825228263335667764166481504512530501513258873788812217847213415422232272712654175681614638213678765835184341476413172407788071117602887320867583812177226375510225488208581216335247624760640580038342253458485378871532420710208340256107348162532143354713554234454511804610886215246240423674341220722807268272574714854157737020573203736506008755485130353327367465663547336304871243875306517114168842627870754471801003805308312083088752583312446001277851027374582156531817586485000250215800708127627211505068347023526110837737511036238283245575662712387584066475661261847675650363887551237323761660716130272031483003378853700342154720335263160870854185286341388833332280625578758806215173128683088001246834752215572378405357710488183827388231330078345677625301488213657710771365474204550530478244381427747514184788504556881553154457275613682204221782566517410352634135622538312413588762072478647710573808231323470571682384724726318417303544318047044210485122008625078017014582468036753831818202880561508455812420133735306841500146564303348357702311777081400234537050086442006710511822581061557641802027172678601117704852670042122642532515057788558632775468781844800027367367800748615875717287224516564015307171001250218682511605542587522181356125680258482676447374450235015418756406768875243576777648477245884874244245418882656314337562348704424171513334852845861380540416300364586756573412732761616135653118277434708784222444700477483165374640426703086004756364532878886822828328712557340376334043487250868461212504670456468383710861761564515751840580532871448510566162802475667801534271150022580467056776043115617168333670862584252151753117541667107434163087436547257872074774262066168880573186462164028557747373346670327518823453168616336801501207442086328014346253643632106487403363037284858500543184643373716138360652372642337328651817705728585226415888745377507760017241628540267408730063075340605061675502707848603662745220370573105644783770300713661715527706362531002143f752f440f8f64f17a6eb31783165c2bbd65b3c6201404e1682bb5d14df702e01935806a69ac8dadce911f8b7c0a97f657cb4f48481a9b5a1b7539ab40dc42ac45366e97503a78208a9125cdb5329fdbe79da89f1646ca2ffb85e35259452c09ed9e4ee6bd8ad6fd73ac51756bace3b612166819aaebb16acd2aeca3da41a953027b8abf0914ccd739e56dea03bf52a57af587401b9f37c577e426c6ba9f87b26a7161c209880270ac01de7a7d7eb272280b89b877c1d11bc207015e23c404f4ed1385ce3f47daa9ed82398069e6022d939d3a52c03894010bec08a3860bb6647fe895eac0b4881da6c50a906d92adaeae9a49d7b1b90d4b7ded0e9100aefea8b88ca84628310cfffeb907bfa3108b5a2cd2328beacb5ee6df693acc1ecb47ad9b2e6edac8d2ca06423a77f2d6b2f318b798fa77544d6aa11e4b71541cd251dd47db6a069908ec5d400d3f32e7c45366af18d05442d6e9285f27a9f1930281e899415f112f62fdc82f9f919330bd01f34ad4402b862208d0c6e84a09c5a14c79a1c43976aeafcde7c9eeb96bb661642816eba09293ff8586e8d8f04a8677c59d2368d9654dd488b005ddfb97128e0b937610e996d2528f92566d9e272e8b6a0f38d1d3ee2186c1896676229e3dbbc30cf5f1fa40ccdc3f7972ef4ec6a8534b82310af9ae21116eacf14939cf211a25d307a4511a635f04ed2c320b638fe706a367a8eeb8472d2e9061bfbd008b05348bfe30882b8affb4b291a69913da0a82afc5da831ad9565321ce8a8a3a9f60eb2b303cacd960254d245630d04d24fb451f21e57ca5ad1842744e0693448735ad64a7efac548e9a82b497a92112623b0163897d79fb35db66c7c20dbeb4556fed79bf7c44984c7d9c0dd042c6a5da3c71107be4bf15c147658e13bbc6591bbe4a578122e1594563aececfe1e68d36bfe10db96a28d12ad83d96344533d757a8359dfc56f4844768d5c6c44229a72e74ed1812429719fc42a2cf91b4cf04687c0a8f0d9357633732416ab19f57c2c3da93a94ae4f49823cc74171e20d6ca2f2c1f03560836c79965e70e3749485078bdbfb2d133965dc609ee360cbce2d702a0ccce01d98a8b472116a123d75801de284553f6bf7393bcca84f113ca41b5fb403d86af5ec5cb5eafba3320782e80e2fffbfd3ef2333bf615a28f26df1c31d8319b36b28cc955d8309a611786ab3c8ca76899a79f42aaa1dcfad54efec7b827e7650a66bd9136cbe991bd195da7306274fb202a6ade4a46d68ceec54e4c67a082614374e990254339c9619bf55cbd9b244018cd307ff0d3c875e474e18178c99c8ef09d1e1817c8303fe897a4dc95083800978c9f0963ac58fba8cdc2638144a369e42ac00ba55e0193dbfe5bb614022373fcfa219ba9667ea123db95f95c065bc74b2f244e70448b9bdac4d2531ddc022d5b1bcdd7c7dbd8b5d49db7021b46991e5b03c0bea10f16b77a3904731b8be51c18d4e2188db04333b256ec989471594e7037a964aaf6d5606b9239f31f4231b5fcd3c2d293749a38f077642a877fb51bbbe4ae9a91afd81639c990508fb1efa2b5d89fa9cb4f77c7dceb7c3be1141f385e120cee045436ce16a46bb2bf006e380331ab3362be12367ee52aec3c46a52d021a2e845827f85d7e5e77e2110bcc59b950e31e02ea8334e77d2912cd16b36b2c5d90adebd50330a4d384143189e781999cb9083b416d17b4606684fd9aa1e9bb3dc07057789472114b2f74c64c6ab035b2f33eae9fda8ecb6ee0c8983e4494d8c4e75a9008dd37a0baae7196e27501fe7c69f6301e7668782af8ee6032b6fd29db4fdafe4620324f9085a241c4db87698c271159de2633603fa38ad842029cc15b7db35f399ff59523d9fbc277e836a499e59d9094526ba02fc6ff22dea61f0a389fd0308dd575092edcdc0e289d37ecc5d4ffe24aae42906fa48beeec41c38f728c23a302b1eb7376224b5db129b99485aed5a8a6aca7b50340dcb1413a3716ff28ca6998055e2e49b0e2fdf7843c98d75b768e294fe45c988df13a7ac87685228cc6f19356b67cc982ca4a4f5ae95432bef5f960a95aebb9368ec5db0e4fbaed484b6455cde520c9a078605b6962c89d46ce78e449c1e9a027cb0387f9ce7e05e6e1b326bbb4715cc4815c3808131c05eda191960a4a2b05717fddc3e27943dc63f27a5080cd10ad10d85a69af5b9b57d99e6a709f0238c500bb2f4cdbcd608120996d6f847fdd480f5392f94e5c48e558e8c8b041cd24a57ba3f8deaff334e5ef525636a154e9bda59040e7564ff69d5b3b402bc3334b8b38eefe9a7337198e5e9fc66ecc44bff0cec7b19cf60208ee7d435e730526eaf23c801d30a3d1643b95eb594f8212d3ff4bae7798799323e3198bfe16829e8fe18fcb25670d0b17d906b7ba76247bb63f311d1da6de449589ec087378f65be84f473237ac488434f43a4437688ce76bfca835efc7795abdd95986c06e1fa657a4507dc54025712f7f871eb63d1e31ccb0a321724350bc5894bbde84fdb4cbfa1c48cd5ca85b2451f5ae3c0ed0029dda5816009dc3a16113c6a6938fc11afea12edde0b2c40c43e703a2a56cc68018a0ea4837b9299fbf6ef192ff25648ef43ff256e9e648f89a8542b3c96dd228c98a0135c3ae7f932728c06fc332d3d8bbf5f3412fbc0c3fbc9994852b6563a779fbe0ccec57ff699729ac7337141c770931311483828231ac3325e61773c216e991d5bfde3e18556663ea29bcb090f635619dd6ba46fd379de5250cc402709f3ca4eb819f763d3a4f34b27031feaddac62da81024714e86e9d3c9d2c9d0376c937b07da53811153cf8e163fed589e57780e17b0b04f5a7299d5cf95c962445499e396bd55da8d77dbf7f4e14f36d5c5fb9dd4d4aa59aae5de006dfa25678d1a2892893fac464b1d1adff65de61b3cbb02991829bcbc4bb6d6ea4902b0eaa86260fc673a248f514c00d5074aadecdcfa7f5af1a311004a786cd0f8b17b803bda2fba72f5462328a1b256a767a819e49a4723df19fae33a0e7918ae270f836d01d3cd0af1509bbd293f2072707187318c41d489471faa9930ad83ea60f0b5a2dc325147355a85bf88ef102666726fce670d9d5c85ccd15e5194016005a99576e00561e8945d4ba3a7bdebaf9d7f6ca67292f3979129b402d1bab4d1c786be3b45e8efa9864636ee6b9675fc979fa2e0e6f3d77cec074b9f325d2bba5d2f7e4592708e5bcf95aff655dff90adfc4556404ad92cdc952b96a52fc9ecb64fd209ffcb22744b75d42f6e6118d09b0860c279f306b584e58612a58e396c0fe75d0f50eaa5d18cd9621663c4d1162ce71a528d0eee887b648d28e46c4815c4aba7fcfadb6c2d84554c40bdd7835faf7939ab407f30a17846180631168af13fc59865cfc65ac0cd1afd6edb50c364c319962594ae073ab1974cd3afd15cf059f669c60e7d13fb1cd98bbf44e0841b2ac47114605c00229872ec46a594d047e689c63efe0713dd138f9f4b12ce9", + "tests": [ + { + "tcId": 61, + "comment": "expand_a requires 23103 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "8f46c68b4cdf1ec20f57a26aede6e7fa768ffe1caf2ad14dddb070af1bffcdf53e996a4c5f009b21400f21a51b90ec6d5dba942d359af0a5feebc18315dc85dd4b5b7f4bf0c1298a6b38472cb7adeedbba5367a7bb86776f2405c665f2d1c77ec94f9ed7ed3f0e025c46b158ff66fb62fe7220ffd466da07b099f4e32b7be99b39bfce7cb526f0c1aef67b63c04e21fb93c0fd44d3cbd1edf4c437af20e917d7859be5398fad2ac8bf6c422a3674c2924d01ecaca88bde6b02a92d4ca31f559075a78a011f1ff334f8d33ee27ca9a27202bb1d045c15607202fea700f737cc5db44efa4448f469c07c5c690eb5d244dd7279fdd7a5cee75c2234d176c9a1aeb337803a432c563443610a646335e1a08e26baa26cd52d836e1c3309211b071d552ab3daeb0e8bc42fbb4d5877fb3814da62306313474d5e86ed9808dcc6f0c302b2f9811fc18eda56d9e3c44fc01940510fd2ed83b85300b69170290bd07596f79fad3ede82a6b8b47f31dd7e8a04705dcaa44caa717bcfa288d2662b2ba98d3aaf930a9aaa59389e5d153a4d5692dd92c5189136ee81934b81b7da6ab8c4c1d0b80efd312be2344153cb03395eec9c808a7be202ff4f51ff0021fe30c9f7be4d1f0e53b24f67c06d057810d9a072c5394b49f500a0523e8d1fd2c3e0a4441b3132ee116858d78a9b4c7987dde46e10ef202c2a5b793a3c4fce39d776cc52c6fdbe582a3fd9a09f9916d14750341e3d5fca75b2466b5e6ad5d5b577f154907ce98b5b1e6060e0e307ea899b3911e4978070cb76728c82e91a1334d61d9939a601501fcbf75d6dac20ea9bd32cb2ced147a4a51df0ddefddea0116264bdf9abb8074a6cafa2a6ebe4a6cc48eb0a9d9cc55f14d7f2e526ca6109ab213270303a0ca3b1490a6bd056358c0e741093db14fc01cf6807d8cc5596b217e61319c72aaa18dde047c3a04b4147ca127bba41218e1ed529f534d71c442149197a5ab715e427ac79f8758e37f623b73ef6a2b55207aa7ade98ef5a4f6989bf4330cfae3e3651444d5b71001dd5aae4432980b555bbb931c0fd9f5abd1af22a4a1d2e2d117d3b8f63474dca28f96049b30548ddab448872f4dfbfec63555292a0f90d54b80c5e3dd8c5c785c3e4d00c643bc8511fbb9aa716caa06b14041f9c4bedd6c6d339220a4724079e504454dffc5c9d299c773e14da80ee3d99824b6ebd93aa71d4201492c04bf2056fbb430acc0d1d425006e5b232b22d5fb1484f25181198e81e4b24fede7c0c498d55f451f2777ccf24778493ae2e0f81b1077cceaf0c0d012c96ae8b1ac5bc3a3f8aa1f361b5beeef3acbd95b7a971021a9aad77a82e059cfcc6d0bcd799121b729f12d2cc8274496bf854bdbfd8e932942e39f5b7906b6a96f4effa903c0bce837160694b2a97ec89c1b0f7f35d16a8995f831b1e5162649e711b71252822ae131a5cc23e7be487be8b1f3b5ba359216e7273adec9bccf6c15a1a3f4c96476b90f11cf94b6d04ff59e6bb19be14f35bf395d7faf85cff288842546efd8ce42b5a29a6fa620581b8dcc51dc2610cd08cccd4f141595daca8cef416cad7907248c58d9327e3d9556bc6be6119bb983cb1faa2b492456b075c7e5aae4e311b61821f51f3c3ed0749852c3788ccd3441beb9ee6cfeecdfdad4d7d4461702e2e1cb6916ae9a9ec096b7775ca6cbb13604419acd40f4b35c7429b8700c8c0a7f6243f5cfa3aa739b713974ef74f84788452ddf5be5d078cd80a2290fd9992ebcb136bc8978372b622bbaecfff00c1c6907ca231aa1441f36697bb29ee93d5a5bc951e9a7893e4202d3cb5dd6324d7db70976ad7666da4e94941862962d3af783ab2bd173c536f999f5627cb7cb7ecda596e65dad4de7668a976b0ce6698bbba26461d78ef1bdc0267c761b708435441ba21dcac62ac6cb1db54499fbe2b441f927b993649c110c00a947be9381f3235861460ffaaaf0b353ce002b81a957e39291fc4f65fdd791281a30f4ca32c297f2c6fb8327454751866239cf4772bdf79368dd99d28c61c7209aaa13297e0fa958ab9a2623c80e779c0745c10f42e792dbcc18099a27a99e9f8a0d389e191609aaf3ad9c3a6661cd7611bb778f706b74a834aa662e70bffad896846faf86a052e6372aae1058bb9dc96b1bd9111b5b1eb47e3badb26f7396642764f3144a7e9f5a903d67f1ec74e8806fc48e354ff37a138a47b3b4c8813d7a7992aba5310a439a1d90848487020c0983b48c5ee97ec658eef7bc93b030b57f16961ec655fef8408a9132ef76016e21dbbde30251501a701b9310ef387ad88c2281a7634b381c10050c50a43d9529c923a81d9b3929727e2b499fd9738d75cfb239c6ea3e94b5951c708d18102ff06aad9d20a219cd867a4c8e7e8e1ef7c84f67217c148f44b422714a381d33f72755ef056f53098cc8fd9877cd6742b2f77b4f2dba9ac9045c17515858baaf3e34f4d74a6e96e8d4fe661211674a68e0912b7c0b4b80811ca60c4518350b3f54df34db7f69de214dae9e14abcaa01c5f28ffff384b438f46547009a8f7e55511e60f2850f75bd337f0045ee00c51a51e655719ea4da79e9a60eb2397008701becdc5a83619c7f90667ee024c44ad392cabc6d7799fa59c8f6125b85284aa48cc7537ec0ef17e83deeb1c99477ebfcb3d51df7443aa692f7319933297a1de00dd310a055611efe998e1281ba0a448521fa0c63df5e7082de1ffc0534f85901fb320211f46f439f13314800826ee72f68c76fe82e45d2f19d9722d017ed44eb14a8a9864c79f29c1082054badbd6249fe8f93f8e9fc65bb3cd1af8aafbbf56964074d782564adb1c25ed8b08f8430bc16836176422fba4e7ff1684a61d881c020d4e659429b48f9f3e64f16d24021d6f89add4c75d237fa9043d32cc27784b7c08844826178b9dddf6fb823aeef3e8fd5aafe581c393c2dfd041f8148aee08a974d5318c746c22d9e4179eb56abdc72db1c6118fff4d9d8d6cb446ee19a07b7fab8df403880aee09dca1cda2a39ec10d5a78457e3aa3cff48468170094ad22d30a2d44428cfe7467a4ec539871cefcd548c3062480b2ed2b6e7a6bd6110aeef4166cd0b45dda83aea875b3ba10a9b3aaa9726f3c782751e85550d144231853037544f39d5dd039234cb42fa88fc0e5f1e0b66f068fd90523ed6e1741679035a7e8419da10a7604b13858ec59be5e5ed7d298e29bee15eb9d66e91ea004d80c261b09474d3f32b7e6bf321fa980786bdc374134e9a5b64c4549cff6d0f073a9675a27a118dc12d5b745da2b3d6615280802756895b6efef4c3dae82e30b3c275b1d34aa55c9f650acf2b727c7e1ce304e1f966dc549a785952135073c3dcb9216885a7460fafdcf7b5fba53789268a8a21005a877962eac88805d7e1286cbb26e34351c1ecfd808a9ebecd2893108fcda6a39eabc133d7fb015ab978ee2ce4f6c6f132e11eb24a82e4e43759ad1ba10dbddcb758a54cb1cc9ecd955bc7f43cb6144423ba5d62d6296c89b1992751dcfd37523b647ac22f468b37120ccc461fe4bc817796e835d0f47a351e2c18769a25c988c7dab905001c8de47aef0e75c7d5b1c299db472600112f656d3740c31ca5017f4624803ee5baeb4ad4974a04be45067e747e2071c66f1a2e607dd11810c78b48fd7249398b8b5ec18e494811e68502872a0a9862d8d9f66122533f0e4893956aac7d98c3f2fb04ea93d8a0f7ddacd0072ec18b54bd814a8ded374d26d69bd7d277422746fb8371828a8e8ff398b5230a2fec8f1ac7a750fc2c6eb6c9341a5bedf7248c796f5b87d9f3449e0f0b3a32d8e283812e98154cf002a02a744f247a20cea768d283ff113466f4775e1170b7395571873b84d5a7e1f7c06a657ed9a09a8789fbebc4fe651735cd5e42a08a5adddaf9827c33078a933b74bfc83a3d2e9ac0386693a6b5eb623a223df33d5c10df6ee4a1616160bedbff3710726f7b21d11dbc7a8a59c52a57e1dc17f914fc3c6d21bb1740faaf09ce4dfc887970cb66be3c9e154e7e554a744793b704593e40550987d60a589970f9756f7e6e4d7fee9cf673f0bd40b9899de4d8ce43c14c1a0def773cdc33dd81147a10fe6557f09e0a863e369d7374ff934563f84ebcd75267822b71acf5354efaf5d35d6299fa186ae28f6092069483b19db0396e008761203a1fa92d8e7a844ed237f3ed30c8c56cbd48a29815d02acbe917fcf2212a69f543a132204a48e8c692f78f039cdc63fa17ac2688c6d4ad716bb56671876e5f2a9036e9be1e2ca1405957e428928aa938bb96a9985d9a32b94b955acc5d4314300b10057d5ea099c65f0e0098fe5edf08b8cd43e93961c5ab94cee68f25a2b17adb7234e88a9dc79ff8b72c9ee205d457c321514b7fd87f482c0e8fe0b6294996527300a64d964d02438351caac5aeab1ee5c5be5bb38b605f974802579e0d34af06a3d5b4a0156aaa1da8e35d694bd4be6908974f5f9af626d16efb52b01d5a81487b669c23dadd71461144ac251e359e6f3ecb9475b2f89b837d1c434d590618c961cad556e5f98110fdf019e813a6bf20925167ee010144597fe8f87bb1dd1b888d8fa5fa032123455c7da5abbd2633527eadcae5f4041835738d00000000000000000000000000000000000006090f182025", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "2828f4f44461a839e748b07acc053c9b0241f7b1425f9c742019c17078ffa03688e7623353690fdab2cb87ce197dcf078d8c3285ac28826b8e024df19134b857a41ee479e13b64596245f1d58b57c40b7500ff832bf828cb5525caa537d807f38c4522d4c15918ad6627fe2e28409fe61942214ad41f64ab275d25f1bad534cc33588238826183882674732632566580362001448330284227167781002135128664786646058668460720881260571120274237802246556735450743141503401342278143552058137581632173108630352324427685411488467336235784548748840848714121654657105666125730637215637355362235260265675603050413273482875838263831520270432587200287454674233525303667165816365023610712620222384650310107713081828344015076022454623877358617562131355870716747185267555043327607816883862320447818875278716282735017014760046611014257202861554665684550474340510720344200602751124754303126318240457427278365383551773258420642165715502880376007823708733536524360051857033365182723348451876326385407282131855143547135841160730870274613323175166682544705656238812056766716082221047241480804203635202402024401885637337501564460471224482247815583668473644062704543044085757107576561781257378174321153031115822077122380211756282252654766432667145584058228444606105161477848088411650126643741334115786160741370578766426400234668652030304657730420006701100620441486311437237348665250700173248065651616655804508333787503443056461041343804657334575466138341774818438886606858631461853374382630671784527825623572182273488704561128760880474346020284418765241356432260256000824480212210526615810685015033616550262527247123472782555323033532153205483308228486026143726232537738677480717176610617345770342210381831644628463238762420373747208211346782337016760343417774340517287065706481358307548684283322711187312868650437621427120508820234277442328585451337433508454307227383728603052248625360578821882305532707545738015255151413477165328780368788450286537221681331117310352635025332534252415716671503580355350753035641855038000774585815638213226727231402786460586660263622366040501632588637848407083583212541418401378031165653005260004321008177850013110352246342736752314155503577761026040151413104787031601186536771725358830263175312850836616142633738883021155545780378627041786337673234268841745585357327281381160456062778083681251122328844060508573145184181668642227607048575204242151615626274643062750504854836856137664066046718615807703037707318381885201774005268155232112877777710243683374374644575352713167734077116757445308422055476565046505821174812720141167450640570488577638125578480577727265705261300872616023422647537582741861676702506703246401531231604404016632740613325255254331504212011543683514438548222171228181871043326652013751352773665404733404351644271407273837006017351774542781511044801125142248634280644242803576474052611541473136280161182337803745406105041225364682640626381802758210542018576722441141348677320476135744248617117162542754450758256156337264551036772310557470503777366045180842517246314275714880444075446737027264775674543701886656254244054637361020587107178844177428163848676502463507413772205684767425333364412627374538427326825431706705351e5db3fafcdc953640c6c5fcc86eb60e9194987d9c853ee93176ef286c6776ac3da432eff02d1e0008a787e2135a06e24645ce5430d569e1bebfab2447845e526cb1c5f7d61042b57d7c7da8f7c29eba8947175b42817b63fb3585554444f0a2f39183cdccde2678654163b54b8fae10ff6ac9c6a590b7564d2f3fb5aabb9ee38f1795d749b0b4d603ac5c713477767d043bfe695cdf979bdedf9e8b7acf4ecca6aff7172aeb00c20129698985370e4c00918c465c70104685519feb73c6cd978905ce934af0fca96839f0e028e3b3c5fd3229456f20cc3a8b5e18ff8db5b0cebaa652fe17286fab0399a5b5c1495fbb69983372060adf3da98d891ba11ddda151429cdd377d89f8b7ec05f55819e15aa0e2fd3fc5abed1d0f8bcb73fe2499e34b7ae7d06893c28122841217fbc9f1cc8d621e3fad841a11cbe3f8207bb77ca533ada4f2d8c2b7543422c07f0d76d20fa7d6c571377601ee37e94ffcbe38a91e35b1a4943d000947adb9cb59dc6e94c0266b2826b53183ae1a8d462c591b3b14e69a4c61c284503fe4d8ac6b9b3c08a7a8c5bab31f91438062d88f39cdfecbc072d32d76fb8f73d51ab1e3bd46e5f2d75552d46b50d26ed5b24561426926fd91496e7bcad76df949ba2c3f6018267a581cd8e0d2bebeff15bd73d3377aa75b8d172cc0f19953e276267798b4e6a644044ca4c7ee48af3a5ec8513a67842b0cea6ee54f9d3a0f260208bb1764c0d307050410963fc08d3459485a9671e0516176dc3150514bb7c85198acfc251566c1960b04bf4e2ed0a5bb6a865c37fc72024a21dce74466911a33991d2e9f32851300eef0c324133afdf9590f5b062db06631007ec24644ba6717a0a8f45723fc0130602c36e04ba1d733df9755ba132ab146ee4bd56a87a27308c8c80e74f9102a051d4f705e4e36f62f0f38e14f9d44675c51e0cf21c3b5fdf007de1159f6df675d180bc0b1f3e74f38fbb96c4eb9dac622fbb53a2b8e20e090d65b3c90a6d26e2bde59bf65355ff43b7d77fe2c27091d5368fbbc170b87c75a1d58e9d81b3a1ad05b2fddf465af1a05ba6a96217cd3853cdcfde64a5d455fc8f539ed2a159810c327a056f74ab7845675fca3100cf7595317ae4ca4a6f94ccbf34f03fe98ff773342d24734c11fd5f9ff2a39e594d6dae7e72282949ae5bf7a43789d711c3d6d16e1da9337976a533971abd1363b25afa794be61d8db808019788527a98b8ee7e4d8b77d01e4c4b509cd5af528e1a9281ac57572668b84d9b1d38f7e40740e944d87bd6f4862cd0b09ea0b88f998942aeb97b69451056b2fde38ec500fb2fcdd9fafb06b04a50cf455dbddf2c0d0359db99f3a735313088df2298f4f394f539f0ec8f63a026bed2ea0d1d74cccaf40bd4631f211064849fbca97a0b00cfed9391bb0f22db7a00e0a59524d9218da8024f6995efb915677d2df7e9d07b0906e7eeb01373020edc00ad2d47391eabaad6f329106660639427ae44a57232e1d69b6bd3475d1c119c7cdb4b99a181a91a737fd96109a3553b065a76d3e82701a1a25693311f65e58a3b0923908c6f20c5dc28aae66d72b28be73b4f605a3b28df2c6dfd14fb9428d091679f70fef6a037ec82aa824646f98df44f793cb750d7bf1f2fd86993a7c1b19280624ffa07e8c5bdd3284ca254b6f7fefdf033b0c24f585ea6313a459e258a9b2c322e71b7dfc525d048ee43e3fc06ab79557776810ac733f9d5b75e876d3d870a6a3a653cd11066b404876cbb801f77a16c86db81a141adf8e056d4e1f203ebf232ba7d8d4238521da1c24e89aa1949f9c516274bd5021a4b9e66e6f8d0e73c092256674a43a3eb0a0de882beb2fd62d05c957a4a5289ca7ae2f9d077546359afbf0add1a05972844a341ff07d08970899293880cbbfdc64d790adb7456ac519f85059d28b31a322aabe2d08072af85b3bdb8fb1cbf4b5aa4681b90b9c73a9f44592ba5c43bdd67f4bac799d7b28f382d7357bdb0dbe1d0221b8d8019feb2b397cb6b4c15e8e2ce2f8add6041b14ee6749d3bb20c1e86e2a838a6d1b1a0ea9806719652811c6edcc4bf269536824756c9d4ca6af593f8dacc7a0bf753751939bc8f0a718c578bf34ad1ad4068423b72591783aab63b8f55270aae396004a5ef80e8dafa29367a74264e514ac27d7d5db636e02474385beefae2dd3ca4f3d6dc4f6bb33d6c4ac9131badde3cadd425235daa7c8ad2c62bc8f99eb73595b4ab244a614b251957798ab7a812e0b4e73ce2c94853e1489e0b34aba182f8e3d50b59108675ce2da8b9f346d2891ec23ebb4c22b97bb8d7a46a6d7379750c6b268fc338ef4959ac553c9628109d4475956c54401077d2aaefa98734a841d69ee8157a45ee474cbf3c61186d1e1f513537468eba5724cb60de199b924f6c5f92ecb0e11c994104e62905b91872e1158b7fa896c773f129700b4624237342624d011f4e7f9dbd322e87901eb602021addd8188afe432b83924f5c179c8d42bee2f7f15ec0a356f356a9c1da999758acf5b1e8c2428d68e197853498a43ee66faef74fdfbb1fe8758faec2c4a78a134335b50a9cfbc4055304e6acb8045489e9e9524f14768cc096792276607ecd5592a2b0b905211a2c0a597805e80131c42ffbf6bc248b377cf1224c25a7458161d947e0dd1c9a6401c9ba2a7d6c927a15b587470fe6888b0397d31b8e59b23317379b631a986c44c02f9f06922cc5697f840fdf17ac0ea6eee0bcdbd4e013ed2ae2bd0bc2423a806834e84c34e386e431632cae09c2a4a01564341eee35d3bba24547efc6de220dd262f837ab404ac23e0a05f32a97ace701345bdebe8c351e1b330dfc0e26e4db6c223cb9ed0b7df3af861f14062a6e8e58c8cca6cc9cac84a0d8438f7f813ea06f9d7c0b672274445446e689e64f883327fcbec426242b82b02f2d44b150dd91c1d2b07d5a47781b940939835cf7420477ada41fe7198d0aae0eba59eb9f90e035b8b7e0ae14523cbf7541ff257598752103bbf2eaa2e098326a6614933255aa0b5ab84f61e7a0ffeb792a0dbdcd4cee6ca9c85f67bd34a79b36c4509f648ef5928273f11cef4a16601f2283b12ec25653c51ed32e01b926d83f605c91ce1a69b3c7fb85d75ea496322b5624a0512ebbf5b327cffa8674b5fc06c7bbde0287d0a353d0d0d2b69075c173139037c3e8e9a928ce55dcdd4c0906be9b8409b875924addf9db6803633d2004020d65e53658b2bc48e83dd913e16eb5882112b4127ded1899318eef54841860e88c89dc2c8b0a8e74aa403b7f46138f96b6cd610b5fcb6b73c3882d9d2cb4568f0f35918dd57ba613659ee2ab48ae2c25f32958bd12202ec588047308d97744e0eec59ef60c9d7fe918c93882e2259409025983b018bba4dfee30325295638eec7e178ece8c44813fa7d17c845f744b0007393cf782405c0fd371af406f2a08637535ad0103d1a94e77f71838c9874bbee1e44d5d5dad92686b7ae0b008db57d17f8d328dd9d6b3d0e8a868328a", + "tests": [ + { + "tcId": 62, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 3 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 63, + "comment": "expand_s requires 23 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "fc9fbcbb96f54d5f1b2b71d060404538ee428f6785040c54adb8716adde1cb1f59dfd0a63e4fb3a95a9808fcebfb0c84b8b20a411f7285b8b3850b476c11204979d2799d6df4d8e5a7f2825bf6f3bd43386b274b67ee02cd75fc58cd0f2869cbac2aae84ff1b6b96914c77c2a9af5e8b2de072ed58dc2d33a38f6def5d07c68508435720201472080486071072225140154071406254246516651644268626534267402601257852003158236200232582071543662312237040405853815203555734167802445884807873584503853670635575061818055516733108507232777886116706058511715246252550725432815730282078355815683114252413586732752162360410645402744424624407028213337413210170373433816565071783778775524274680845814310304548827431510608668520448544883823327770572536234204024206486130860738263876452775532207565721450181018116734424873612637567171014376183855618762131245563161366232037671431465064683652082822573285627303186888831445535020311442428456081052323357460340418335358020447334887718686818184636475450505412200571476184434114013213167725068785002752436460617768027063782832086723461107827867878688160363216684300372433546351307615013714587680110027064787236474207315482553206723485332126471851236576246623032675367413767707366114046478877511162750463324471211057212500355750767063144358723340583780458617174404553813805457662814376026037463510142583632311153720868307176216376164614376284230585566118475404738550285368874043362841026311768344621867578515787736320756254386323728867710842544570740605283076325161664825127006078046314008355853430520731806651553577515031800888841205375748668225636887228332180537325175346015403824663581785672347425833278600507275576012745781650013084384228407507468318362701641860861721863755125037303240834858553575220152075020141476552431611646053457776103115101865706624241137547781305461343873462458034245345350768418470617683382570266101416160153326654827146171377528485064428282532214536068201712076370548031754836844356473785750656855403146554162108176065604437156448626132100318376706247323720684557115374033677170104046767157687268145008615682777102165746635563467532524213428354278306657624125485873424166240703003366405207051231482318423755402800244064075014070108512534745008050004304556256137771460588624803630453854554208220445260705886612083087203715857402113002552233525280244763481776207384025380023486067265540702403464341657345128723768680162566627727848287647450212585216114436350005320135156434628175283555007318010777107326163766782215465107412785452684518227565036851554036002028012151718237555428721118171724034160851302152050312422355036674818516043227213762626175716422512816320581870720366327370830578120836578680563608328370883448412133448336331465744621150007221704656341417484625520010254735235668864502105407806046803205272137525161814747750325022313460374385727735713472552327418350573247276642845385082856612562227805257657823816034507272141248205087048471643374171700473423242560483802450553672383224143305535872887522758226885401262152000755363277131022363601036708228216328346463220718342733478606016744481174286524323265131358307688215362854386713231266720320486616682686662687125760301700002634758aad61e3a9af4488a1c123cd3f0ab07be3b1adb710e99bf0f1c5fbae27884d5455e9ffdf33e444d3610af63fafcd6b7412a274d212dc67efc4e4e94805843f321744407954036604829fdaf08b87bb0d77ba4c9cf2df75e5c4fd5c6445a6281cc788eca2d1b9afcdc6fcf6988c980126223dda4283eda30238053d87a7467f60a5c60112f411986bf579bad19ca41295e98816422ff6381b00216762190830843fc81b605d161b761c64a3f735cf92c706addfde1d7dc7ccf0aaa00a697f436168a6d8de1e0eb8bd86b833b093adaa2f676a7cedcb89360ecdfd7560cf2475cd1e982da65566b25ac928c299ab14c93332dd08de88ce2917d983184d3360e13f712ba782f573f5117d1032961df0c0a60205e44d0c6c996512adbf86a93158e325bc2609de320d02ff17947a9eebef51a1bd242338edb519392a8e89559a63c01f933d82c74891d79bc9263f9d6d5ee7f4fcedce7e7137db170b07869950db7172d5b80b38b38beac9310b464f46fdc6dfdf24fd55d1497a98bed459c17035917b3f2fdd31509edb428b38645e0350a495a43f8802bde65b3f720d5d810e3d72653c73803d3a55efe475c676b521b2940afebaebce98fefc9a493b04a6ac12105eb0d5c727372db84af97acc181b4f0d393d3272b34c58213090c73ac1d9cfee89e6fce1f058f52aeb729ee15220b4dcdc1fb17b647f8bc0482a92c40f920c39675240944b9eceed082d64ae9b5cc6273a0392c84993c7d44047ca9562eac9f61ebb1c50ab1d30fef37b8755a05903e33ed5432e3927e02badc0393707d0356754b4e0b14664bd7861c9d2fb62e3a2e3171def78affe828a389be7e943eb3f3da29eaddc35630160d3a9af39fa4af34e9da27a7c99a5a64d89a05b6d1344c02a77bb22cb32ac931bc4128d24d3aecd8505f9849fd2706071e89daa80760abafce4ec4bad99874106738d6e6e717d3956cf11debe186113f2bd70aad78a82b1e06afd8f6f72d374b4755201731e0d2232086613460b0f28141c7ca561b1767c189c17ac0a5ca80b8a28bd06513cda588b1d2be8bf3ede8f6e0ff1341abe28e6559378b0fe8bc509e1b5f54486d4292cd48f95ab48926fb5e86791a4e532a3bddcdfea580eebe27b6cfe88f658acf9552c53574190dff488366b1cf080f27f009e23c56ff21e367b8f44c654420f158876fd43e3edb658416bc3a761cdf9c6d9319470013d17e3c7c51cc44dcae9b3ff0f95a699177c385eb3f683c7b54843bcc9e5efc4e9c42b9f096d92b37fe42b998db75baf729138ffcba70c0d1c7ad5d8de4b48c24bc2173052618263df7bc49eb67840a09e44dac1869d9cfb6d3d224390e217122a1fb33ac2ab7aeb874a7ab7521dff67f74fc472fda9ca88f95a957bd3863f83bcf85a0222ac5d8523886532d855d67f9fd316a3ef6a0ec9a18d993cce32f724297d360791d0431e62806a570b1df029ca40a5ae4ce0a86761c0348a6f3aa95f12f6be9148f4ff0d40b33a46609d4bbfe2432abad1cf2cad4e3462ae874a7ad32f0aeb4faa462231ad7b684be29968fe3149187783ec8956c9984df90190099441a7cfdcc07aaf75e69a4c11010b4656f9eba1fd32c7ede56fb69a4e82177bc4bd68f5c0576e396710f2be0450fe16f0f7afd8fcc6a1993e3b4686117c0474b9ddb49685f511db6078f0f2d8f3f33a08acf3f46c1112ac7a83010ada065dd5adb5741001dd1fc1c46312af0712de15546d6cce9808aef18a903adb4867884b978361ab2f58795392a5819627c4c1a5379db0fae158bd75880b0d7b9568405f67895dc5a229ded60b539d36c7b8779def39cdfc58f84e62f7d2e1108b82fcb7d23b4b84b712b7e88d47e94237da6a33b8ad88866f069d75f2bf9336fb684dafcfa5ca32404c7d13bd4f340276d059fe123a46ae143cb34b4941c589dbeb02e346e8026cd4c574bdcae3c1b85b5acfc68b792db68daca370e690026877a8c8370ceeade1e81141a3e9f5b85841d56e947e98da824cb8c660e494862e356fefa79968f4614bccade94c1bcef544a6da8bc9a0d49eb9bbe7c39a6f1f7128cc3bb082d21f39ac8f60f004957d045ab1261c2e7cccdf8cb46c3d2ad31740af381e96245de666381d198f4079c09a7368a514efdfc7a11b09dc533c57dcfe2c83aa362a617d8fb9f3169ec0917b55e369573021437fd94cc68426c59819ace012c041592fd070788c1b660c8b0da6a3aca83f95c9e8d5cddf9f425ed8ea5392734d93027f1e62f523bad5b7193268e136bdf0dcc2dbc2c823a01e64e45d6be028886c96a54074fb16fb6aea760bafb29b5e85794d0a6b86a75a9d5236b785f37c4f4f6fcc2b505a1d875c21ede14630e46553bc1459890938ab547f20d8f1e044c75d6360d0057e8288cba81bd1b400c935516413cd04f3a169178540a5d1ddf67a4adf78185d04d85792b988f7aa1c1fe66c9030bae0ab89dca01c300c1abd45c7cec9cd62219a4c7952e82d5c45b7eff1a3ea13d7114ca78733ef08a00c6157761cafb7188ef5310cb1566a4898af6fe53b4733ba02799563e7e0303197856d94f7644f935d84d6615b930d9decbaa4bfeaae695387a84226db09ed5ff23b935f89bc49ef37932a007acfaf7325be7a70112929df5820a8c81036a4ad5e453dfc03dfe1c1cf804d44e5c0c6d67aef6f4dc975c8ea842d4254d4c806bcf8547eec3e9ad1b5075db87bd79e71fed823b527ff7becebc5ae5bf7532a69b5a906e8e678271ab3a555fd0d52fbb170c8970ef4a1c668761d7911b98fce2e97712d20fdeaebf5b0befb3563a94af42800ce3e3da427d50a7e0e8085df3f3e76c304f57a58126ea865dce9f176634ed25fef31a7c7bc2cb15a4a267e689e1ec3ac4f3483640f9deb1458ca166b6b6d78c55a3e9f092bf9a429460644bf95ab0dbf3a244a228a5253b0d08cde29d2a0b4059604b5a4dd380766d6b3d633f5de76488807346ba9e0d92fc1b1d2927897d03a811ad5e4e05235694e442553b88be0646e8a4dd554f4ac3fbe3c66913057db8442f0cba10d2fc89bfbfdc07ca3aec700f9820fe5619d4481c62100add7c8ebcb53c27840d50dbf6b65994812fcdc3d4b58fc3073ad67a414ae47bbf5a3669cf18b44b967f9642d2512065249febe1e79946120ff1f6a2b4d403b64fd58e0730e4565ccc468d2b8ebe52366808e213f6c7add184484d4d4fae28d87c16c3e2fdb04076c7bc44ec90ba1acf4f2493a6dcc87fceceda13056295379d942492e6130ed694e257fe1cccbbc9a789593313c3ebcd91bda3ebbdb1aea5e50d6092306409c14fffa956daf30dc3824739c33af521e68a116239847b3f30eadd9cb72f0656bb2e4767bfaf04c26d78973340e9fa53e59ddb1b2ff8a70ac3b5e0a749c5a7133a7e273f50fa3ea22207826ade4962957c083202fd53b093783091df0b05d6ff4e893c6499c2affca9e7dedc8f56239a71fe84224eac01bf2d90b331106b781aac1d05e2c7cefcfe86e143d2d8ef0d5f0d9c", + "tests": [ + { + "tcId": 64, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 277 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "447024ffde9346a213b39475099459ebb1de800e2879512a7f6747cdcaefe85abb973bf9e25a460bd9ee2ad1bd70a820d8f172e54eb46c78e95f860001323f6617d9408d2e1d25ba6826f19ff9c010fdbebb0c002c2038a178a78f652f567ecb5170f26601eae1bbd555aa8fdda21ba1dcb9e351620350e347397b96f2d29645f10b3d8945d636e58308d85205739acd6b94d671a3cd14678ad953218a6b5cb7b3222c2db794e0cc468ef45358505ace711352899851c324c12767e5a50e5288af2eb3c9402114e06e0ff0051e9aa0ca2c72e6fb479c074c04b2123e6d6f9e62d4374e0fb2c3b6662332c391f630dfe44c4fdb7dac95ca3aff5a427f3d7814bef76f897bf0a7cfd2bd36d9d49f87b870a06bc9dacaab0b129b6158dea464fea551ba4c5431237a189860fe228ec8840b5eb358a68f1d9ae9dcf90dcad2a8603bb7fabb4e387ba963b08e1dd41e02a10842b579bec2a2d431fb9595b4331f46c9b0db975832272ead202dba9be105039328936c939985d1137e2d90d55d4e6787ae2837ab48f0562da0e0e58c8075b4eb5dc9dfc97635bac8866cc5f13f984869a550a100f13f3f56a38b8a350fa4fd06207c1d32eb667fc6811c33db6cc428f620dde08c42dc2efe736aefbe59c167da7793f2bfbc6cd3aaed52d3757e8d7e44c63ae8f0852d73b5ba5569214c9c1980d3852a0b88d0248175f53e9d11ffe19a1ff5ff7e44f8a5c1074731c69198de1be50b7155b49b9875bbb7473983ceb447b2b50ba230f69155d7ac4e46a4e80762c39a97fd023d4ed38f7c425902b7f747a11d7797e2f4cab63d27ac2bcacb17d08ced68b7cc5d91c69bb8f80f17d9875119a741bec5757f66042ecd2e00847c0390170ac2bdadc769cb501ec8aa38c859441d98e5bb9fccc43eba593d928209245e6de8f336cc0e2680c6a73e5df0f554301cf852fa3dd3e7d5f720320d6b079cf2211feb3b2956a0de3f59bce94148dc91e9b0288445763117cd180f7ad089f223eecbcfb06746aa2796dab2e620459919cb4faeb7d4c0d85779f776593d6fb0877041d43ee10435cba6c7baa9931e4c4dc56898a36983312cf85a1a999bcc02cb26d091b3c5a23fd4061a09b44659f6d68b87b68d3e6c18876f9f8f8edb42210ffce4e4c6a4a01584ee1b43709473130166ce9d9890eabebea8c81d532c34a166dc9dc30f1d4c0546de34990cca8a5dc6269853d69f366056f23fbaf72be1fd469fee612fa9a75feb97c079c5c04fce08f89e8087249a77e3b0d73728e95749f7497313631ad95620f3eb3c4ccbf4cc64e6113c4044541e843832a32ad7e699a75947f8ab7e48cc65a060d62972b86df8a2fb0b4bb966193545c86f201c5be342dfb361dcf2bbd9f3a22a6ec498da9d9e14770f9b7f642314bc6f66954bba2b0c621be2b20140eb6a0f536c6178fbf631ae39cf1c66d01c35763141b689e6851d578b31083f2153ae37101bda7d5a1a428582fcc19b310fdbac1cecbbc3ecaec93d73083f9f9c0f972ce0e65cdf5db90c623405863a18a497fe23bb57ad71f64ba9fbde1e462ac28e0d7597742b2eec39741d11c406ae56248c3644f3ac44fea88050fb4d0af09b65ce58cf276b37731d21840f34a9bfcdbb5322d905d88476f89aaac0c3f6ecc7957747a8343dfd8981dcf34057746dcf440aa098e5d41b5c61ce15a72380b7c8a39c982c052cc1766364fe7eb94a49441014deb484afec1692738d50762aa0ebddeafceb7b9f6cb2d384f049a104a584dc274040f4ea030345f7f887758d10864d8c4b27abddd214be79c79b69084d71897ffbdaa0dbf5cec90f22ec07d4ac7ba12ae6ddb130ea34f774c2736267cb13178abdedddad0e0f889b920b3c4b3008ce7b18d4ff36e196b1e7d8dd043b58495e6b7dbfe22d03ec72dcbb250ebde631f43c556ab8b8465b3d76ea1cf571e6726d39866fca46a0b515f0d8479a028517f9021d757ef84fd8a8464311c7462262c82503dcbea392f88f19dafece39ca11b11ee3649840dea7054fb02770a7a46c15c162a05a6a2b5ea904f2ecb78be936e0cc54327564d6097510977807a48e1b446b5076176cd8be717380f4f02f30b5f2d2c0596f45d3c064ca4763e649c9396319eb09d37d3627d3ec6ea58df23cebcec0c9bb68861d0e2fb56e075f2aee9bb1aea052ab2c05ae746f80bab8d953f40cf18afce5f331b334b7531e472d942bc07e02c67135944efb5aa7e39e4344d365d719776494ec43cf3f64d208db184bc4f1239eca1b744055c12d4519905c66017a7a8f6d47b3f0a725222bdfde1c1d605d04cf93ef3733a7b9a5a54a0de03c66866bbfd24329a565c0092856e637a832275f6ce6113656a71c1f1ef90058afe1a376aa00be83e050169b7f9e94451dd6f493fe5caf02d6e5cf1d41c5e7539d2d70ca2ac35b966ff9f66b07401f25b259000d14f9e0aedd734b74fdda9b187bfd99a7c1d241e40f87027567316a3cbc08bb70ade50e75e349e7f3d023a021c46e84b2d44dcd04e6a9c2a5ae4ff79abc2805a5f71684b8bb661421008f45d9dbb86387beb93b07583d0cd4f4946e5c16d4b62154abb7dde8b771e22798be9c39103b5319442ae8f49d5e42ca2f90026ae62848811fc38f2c930f0b266b445c7828e3d8fe4cff57b79d168e51beeaf15c693518204f5931648702f81afb1841ea2479c8acb2f42236fdbb0a99cfe83cd3cc58ad94908d61ce8b953e433599e9a086d5655508c79dc26662950697348790bd0905d4bf616ce4f411c2f76e4f91c6159c6bb317d90356c23dcd001a43ec94bd8d808b07ddf94b93b3191cd3fcd8529197f7aec255c2a25bde0968cf689263e0a5cb19be444f36ca797376b013b244f510191bdc007ac33f3f8e73bad30638679bdfe3adaeef93ee24df4fba7c405b5be5ec54cb375a5b9eb19473e981fd08b6f7408fd00e6cf2971f63d4d4d4b9ed066318efd0523250e0f70562c1f2f5c7c7317f999c74680b811baba2d84153f7ca6d1c7d0deb5ed31da60f477754725725b860a64448cfb8dd8c107613ce6671b956e6fd769ed556f8bf8310dc2f167f621de8421dc13edc84cb9c05eaaad7d9d51a5d7b194f8c3c7082e9d53c5c7a88e1c072c468a835445505c990379d34a2231407a1035c81a0a546ee27b1b3e7908d4921bc70721911a2c0f5ac25ea8a81b2509d40f2c727a9f1d7f91a4378fbc21145320f1b9ecbe54283e1237a5b90b44c9f49edbbc9f8ec73af7e6e7ad0604b3fd84191a24b3efb2d07db8bdf05b742a65e7405ef50e47fcc92d4029f7f7be4c5e7f1b3f85d1b9a5cf8c14228318ecbc648fa7ae37b3bd3d3c33bed9bed46bcd47ce89650dae8cc2c5e2965d59006b24beba14e70b1174cc4f828f11188bf0c21d552f1e5fbb022e84549b05b3f1c2936014c1c3163269abab98508a5c3a4b0d282c6b91aafd64866d01bd8715473fedcaa36ca1f1c6bdb6caf82753d49a4395b3423fd33b96313ecf41d728a5a57fdb8d01c3be7fd831149a0e0dbcd323ae4af4d062079e0c4039a7d9cd25fe20f033e5ecfa0d34e6920bbc1e88398aede6a28439e700e8844d79967451a3771d4b26eb5d012a49a5f817651c1d752163ac517541ca39025aa428f38dbf3cec4d648cfd3922bb2cd2eb8e18ffa2adfdee5b9314a82800447ad55873b14d820192cb62bfde5699b680f2b0ff07e2fe9862128c17a8d2827d5aa73023c573cfe37d372b39c13b414b1435c7a4951cfab1d8c74115711bce198053ae6a3d24ad64600e9c1f50915babdb52dfee9264142b108312222d198810898bab5e09dd09a9a27b62b6e7d7917708e7829903fa5ea835de5725a83d034aaf7321f48afdcba299086d4b20075e0537bf6cedc0b50a1e2babee1090e22e234279d658a75142ccac00c6bacc16704f1654382681498908bd55c4919e841323f4ac8888f1514f4dc9be789c604458de0ced5143c5b1c5d3a64246a68b5c3620a5869eed93bfa07ecc2711bfed1d8d3e927aa16edeff32df5ec23a53e4cd0aeb9b83cd9e67ca15be9333960147c96bb33e7ba5c9816a34b93347273c49d14423566556caae62a2e5d138498ab7d45f5681df334e885933ed2f45c1f726b4f0e231526147f9a892e78a9442aebab81060032dded67709cb278c054d5339d29025abd25b68f32b5742c9e4e313c40293a32f897e96a9422ef349d13a70f5993221fd921d85d2e55c0517cc0d241119a9b248af27cfd6eb37f6d9551bcc7d7db3f53824dbe2acd6f1c261cbfbb346ebc42a17060a01c6cb89c95f048bbc62cdcfcbc33177f5020583552c4093b278179ac176a20451d4968ef4582854ad21f2ef78c79cd5ada9cf2fa29cbd63dd4259901f5327ed3cb92f792e12965352a2a5190387e7d47eaec012daa03b3599ff4713ec6c90d84fae59f45c99825c4b9d54e1b714ae0d13fa452da84b95c7ceaeec30e11ebf55dfe3fde91afcf54673390f35b5f4d57288750bc6e203fbd939b7d3aeb04af68abc9f454132920a95c45bd7fcb35ac27d1db2ba58d1a4dc425ed4a5d315cf63321d9e7a96757b29bb5a448b79b2a85883335458098a8b41f3bb7c42930343a636e8d9dd148bdc22d6283afeeff0817287e84c50000000000000000000000000000000000000000070b14171d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "01c8783994aeca990b8c00ec3a55a898e3eb84efdba12db8f3acecf8ad5ab9e067b9cc21a7eb780521372d627200d56af2c590dbb49957876141cdd25b0973058ea7ca3a9577089fe7ac72abee0baba7e8744f9f859b2f93021b918fe28b1ba749b6e70755cc27cbf1d62a9c389bb07dbda12b9e7071deaeb88cc0c272f6ddb663321476001085384743437266058258623670366178656636858266080222504653735777708371875154744754513374847184285867618687622673436331277726344463674415474663327460631874565276646277645547833531124331674560837683650034506316253675614808105574215860160027778222064804254123621257156714807614317086784014763847678865736853011685043087165343146430673787075264762723126015145304378451554382618176761737261238801454636673302003635530180021634805108672320126866202632485356546234515650638841026782032587611788772563217008608563670246261137361866580427724122011651752304105587374821754610655876436376716830733337786467184476745751882420318227232242213023670476883536363113844286685326141370028813184384271158257814288460232324362750245323727821082214285863602626227855778311267882762638188817084053244006331312804582806783087261713563311076641473566415044148843857857845608112450282111062715057107416147237870520580026042347185423104825226885256542016225888002703127131175052048540015246220704385146038652703620471878676038706510680666811042845518750657234816204127218267307624388131377066652712657787832570081114771747464137325823112714006510016028276871472385306861712201708202575707212164510223353681413452672580387487363247377162163762460566877487376728582653585125462101742166267405131188542741581384720811051025744007537120852802802255840243238242374276182852473576601326075454806215573635151851148714256254827447873347528046062538420016233343323023547571652166142234342063554474443083754134728420887484260771174673024801132187413252455006567471022215517140124221055481565033352440403386213513215767578124853318563323386468560085238542223826700826360650802331740420534855741465645044842121303213840327234435517242432474484358377454103113241130433477373416275533874385663772635375086845531474357823408762411431135804157332843703050606712147853637458837104430635177781363161443334618486312600543427085837360515222884471058224685650653772581225403202005444113784411306862703464503713851742720670628670172288557105641155647166854886628754072621772110753533424243264442607288085348381863360586205765257568338380276724885550488567032076280648006717556588608501771530660554354048421832786148830755317623732520274662866786412524210004816231055254050251061315855802548351666314486331811347371043380158857068635118844228157744554212148706000117180757163041822011370257108103710385616171847426372546743102523062137246121041184242405551224618507545817774238682376540702082137716141805246521806063637114065814742237817541033357746258053321837021826745383517636317126634258470120587163043317176435503184415504616601201548417177784416336661788328255064621472184243421673510474726161687571024383687487004875642347664134735737343633821026004863107010733312810171206102674167344832157086351226744143188116283727681365436358278313673577608241c0ccc91395602f9c9d3fd4ac7cca52f8dc71cb288c5af5f05f74de26819489c9ad236f241b24229dfd8b815b3d84d5752d36c2bceb55e0385345b83abd82fb83d54f919953e84b4d0fb9883e9ce523118b175ff0e7a9d9b0906ccb5cee27a4189183f0d14d082a65ed1bf54a9d3983e85a7f664133be3b16556dd3c54c9a4337af80454d4d9e0c6810896a3f01e02ab3a00a87560a8a53f464cf5adff796c3d0a709fe365b72cb798e2e7a9ed5e4d8e09eb63b06a3ca94d8a6f8d0851be8560ad375a1f23620fa29be3b4891ed4820a18194b030a05397cd494a00ffd7bbd80e9b55169d6a64074f6ee95f8a24d968b1cde3ccc2818c15c742aa701febb1593922d5bc6cf855aaf9d1ad0892e85fde7d3feb22042515b82b44ef1a5f7975fcdccd1974b186e3c145270f496bfcf96b659f98f5099f6332e5f5f9dabe241e9d7c2907228addb2f10bd475aa375fef09d513b554d3ed76eeef8152c53bd66a470ab7d772f107adb09fe65c592e877cc99b843adec1744b9906aaa8ee21d564811a6304021e4a316aa6093f91e622d03c145a58d8cbcf7ccc3c8af547c3a819e9f0c9929ac387dc60bc06630ebaf753256747fe4d68fbf25a49655b378d94b6ae165eaf69afc2e13b48af859a634c556b9cac08fe790a654dd806d4c07122449087c3975b65e85d65d9e6203f2f53cafa7d7629a3b0f85ba4248b33e49465a77fb3c46aa42bffe9fc01e930fede49f38d124fd28f263ea3d88781ee963f81c99d6efe6ece931d556344b9e30e26067c1dd9276644ceb24f9c129d470fb2e6b472aad086098907dde3c74ad50eaddf6a3cd41982345b12387ede1b65486b9d376cdeb94c464e0f33911e75612b349f181e448436aee08d4caf85a9ed8d45421ccc0d7b64554b1fbc973c69305564e80c562907ae7cba86c8a67e56a051c3bd9f219939de29625d2330c1a3273c174fd31590b07058a1ca585fc4464808297cddf8416f869339724670a6ef64df873e9e7b831721089e19ca81d8fbaaa6aab29fcd7b582d093731358f4db8d4b1afe3484d504b7bb081624261cf537fd2ac380a35dae2675ca0b369a771b1b34086dbe594762d18c6b5063b48fb540f7316b39854e7ae6ed9c310e9b2f76df40310f558814668f80951123135451b1f7f078e9218013bb034d5da69a110c7bfbb2b4d1844f899dfdd56f6eb33cafe1f3ae9f0517a25631ac589acfcb1c17f3ffc78116dd3f3fad540a38f3830256626558908caa474ef9afb9fa2702acc1578064ee332127aa94a4c42985a0cc4a13edc07ce64791fe822657b42f970d3def3f7cfe93a55f027f1260a8c1e384a9f29f02bbf8f7c54192c03f434df195a1dc12574fb625ae521c4c9c8ff8c33696696d6bd0775c4cea7e97a95632b23bcf01bb3ba9637fd4007f90cce0319c96245ac6fa8877fd3d5dad2d205b16bec2b961b027b02acb7a48caeac6728949651c3ca2364c45f52bfbd1034f5e49646ccd3cdde64768d5b629d2e3e8a92726251f351107e1f27e65723c3f575b628a7568580bdf535631a9817d4b7a85158eabd0e9b05e6cedf95eb13bc3c1b5b9b110bd892104ac043d99129321b646563e92e7f71ea161e110bc9a1789acb1661ca4b348306ffe9887538eaa705a67acdc119ec8ff0e5fd8f2f5f3d2895132ab98098ab5b81def1792bbcfe7b7fdd2969ca7fd6c4f9b03b4e0576eec2220141684e9fa8d08d76ee6ef7c87986989844ef65112799ff3b77d0817f24e9ebecefd0fc7933a7a62f4e51e7abc4e18e1d7edf6c4fbc1db40099e58f0cda1380400c86796ab759baad8968469263936ee6f743ff70fe30f4b837fdfd97b67715217fd44a8b6167a9bf6f9c75a0d2f18b5bf05d3640d2b69a5688cf37667541373ff40fff63b283d9b1325547f515635a18f3c520d69f20b6b43f13f71049b52a5aed9f01c132fcaf8e89b3499c2ce094c8853fd104abfc75ba61accb90cc20f9952b29ef22a1d37c61c4a9e7ccb8e191441e329ccbe9b957759aaad200c2056509b30427b584d44cd8017d33a5e489d728e8d46e1ba2548c9ac9babf9e8e84bfc4d328530af88b69437cd29b6dadd80bfca18c1476810bd006bebfd6244091050871e01f7ac3265cd431692108b08fbeef64b681abbb001856ea3dcf90c6fc7f6a12c306d6a3fdcdf9a078f5b0be6ad2ebb7c1ba8b0ae661fa96cfe525245c578bf5df4f6d08c03aa5e1e7ac2ee3df7695d2c588e0a0faeb8d40001c8238951d4d7c54c5003646e4f9ea5267472cbc5e5f6295045be341aef5d000982e8d8f2ecfbb51aeb4b3f968d71538ed870109de1240cc1039a85932e57a877c2020f860113b2d93d8968bdea1a80b0c3e287bed8e507031844547965ee9b6f8ffb8b0fc175771ff9cf4185b87fb8e70a1e1dfe1c166aa11d724b032c78fc8dc8ac90ab6cdcbe0e086f3a4c7a3867934f67e7f5a313cd5429918e5f612e30cef1054a2684f8f43cce784ae4e649223c99dc26b80c5339718e70a8d96a37eff6a0f9f42ff4fc9d79ea471fa43f2c3965dcc3cde278f948b64c7b22b5df7d0d263411490c2a4594f4547fb92152b9ae25bf3896d3922f5f9a07b0836155621a95d7f249a5f81115c2f8a00355c3c17d942fe56ab8a10ad62ca0606942ece02a82e0ecd280ae110b81e1416afd8ebb9d52aeca7be510439e111c9823b4e22ec365af0b8b728330c2d9f2165ea951276036a231b36db923e92c2db22d7942a9c0c284f2c065373e1816e81c0a6d46070a1af9c42180273a9dfcf749e11e1bc80c411fd1956d0c349ed6d19576083709b8995ec04e4b1322c9f3d98cac84c29dfb1567a078930d4f7e60b544fbe759277b3b9df71961ac8967fdcf7b395aa6bd7f35b50fb551e59e8ff0a7d93953544a36406a88ee6fad7ff9b7f7c7eb216728003445bd7bf8af2c8c0488442e6cf35a141ed9d3fb4a667dcce49767f37e3b60c8559a7a964b053cec816ed751af5e0d83b8b6c598b3f7bef3ffd721dca4cd979bdc13e398e13901bf766f5f54014c6b9df77c15290ee5a0df1a11f911960e2cbe821533870af14cff6d9db63783e56995e68dfe696acfebfe8ff135d91d19681048e0c91f55a7e11bb35df24258d4783145cd52968baee36f02e7266b0766bef03b8f223a2d128a4f8ee773078ca6247cf07dcdc78efbdd9c99caacba5c8004cc6940cd1ef1369450df4fcd5157ba44c3cfb95ce6fad4689b117df9c5e2d64e371c00bac2e0fef00da16158b30848a0bc76257752463cb4dffc2aef0b30402756f370cbf197ab5f121307778982e7bd884268f32f1178dc811dd3a8535e711497bcdd6ae58aa12717e85a7c380982bf21f5ebbfaf337ffd11d41f3e02f642afe74441863e1691baccbc9554281ffaa7373799bde86cac556f137b25ffa7782471b91feb4e46cf1c89b1728285f31d796e1251322a07bb313ac5fb66bc379359cba9d444a59a66ac4554c0f0040ac702173ecd6341664daf6c1628a78c371cb85fdc8f7", + "tests": [ + { + "tcId": 65, + "comment": "expand_s requires 2649 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "a6d86189aa75e8618ba96982c40f35622405b0d0b2f6621b7d7eed57d03eae4c03f3b9ea48a6f4f8d272487b4da8ab4055dc26925aa8d5636537dacb2042028ebccc9613411756918f9b699242445b23c1169a8bb525e1d4277e90a9ce3f68075aa9bf3634bda8b7e6a763df2f614d8fd9ed73ad5936b08fc63cbc60f4625626fc5f5afe853829098a13f8267aa6a76a9abddc1f4da58023b6be547d1e37ee4a220bf109233bdd4402c04a5119314c2747481966d106c333434b03fd1c4c37d47e459785cb50e4a37c0293bc20428a51faa666452a3f60f88ead932b74a45feb3193bf10d323364cf807ec7193f038770e0936bbe1d96fc758cdbde7fa7fd5b8b58d2ed25064500132edf8c8a0238f0ea7b55da8cc089b4ec03cce9e78af2e710b503b5ffcb95e564caf089aacadba9653ad780b52b6f0af8d44cd8aaa5ef8713851e691392b9998e8083131a9139b6939a90a372cda707cdab2423e72ceb12e1138ffd125d4ce5c2c69b601ac6b97eb77b30b51b64cef96e75f267cec817dad9a96a05fe91301dd58586a37c74f914104f5a8cfddb386a93c237c35b5f616a7615d58ebbfa71c3551685368c04497a3946fef065fc39c37a656ae2b6689563fab0c321a7c2b92c60eae122345145694c65ef7aea65a2a4060997465c0bbff4a71d811cfbf93edb022e50c99fd92394380559e78a5db34b513c37566148aa40443e31d18e977bc35b1260343b8e32f6d4ada3e60d084fd6adf097a20ea75abc810d8adb436eb5e3bcaca06b1d0852e9301d7d961571529a777cca4429cfba1e8c325aaf6bf24f6c8b8123a77843f8080abd9bf441d717aebd483f1cf18e102b042cb2e58a0bec238cec8b5cdbe61fea4f9c6bfcfc0bc022ee5f50c7f5b36065703f2cec29a73795f0682940126b994ee873be25ae55d430b7a671a9835a7f6fedf4964a09bd1058a5151747e27430be0ccaadf8d2f4d3e6aee2e699cf06052f77d0f9c503215a6b2004ad69acdc8747ed63d5869d8cf3bc9911630f64cf233c932ac71a098a982012ec7e25dbfc042004d8f530b9d9e24853725e679b6b751cd7bf80b25e4734f41971938df86e2eb70dfa80a2aa3e31ce9393737c14afd5f7470790f380bb8410aba8152e51d070e71a84cfed8192bd9d3ab2ecfc627fafa891e93bdd5d0224f67d857ec37ad2d5b3ec6f9711081b3bfdae4d05c0b36c70f35b3df8b174ee7fe08c4929e9c5702ffa20081ba7eaa9dcd8187938c93efee081b8854ec3983f9aac3a1fede31da432086af172a6f78776a37a61dc1ffd8e5cf2f1dd3420d8a1dacce8f44a2faf76e892bbc4d3ad744f745a7b5ace2e1943bd70d8f366fd200b15431e20f73074aa1827d59dcd3714c36d10f4b5e0b22e2e1794983e53d21b94fecdc73dcdc048df6796b4b38aaa4414fdbaaa656bc63aaea5c11c3a7c11f8cad30f678547820487959b9eccd27e96b7ade1294875ca071956196da01a9802309e27252840649ab35a3b344b178aedb82c6e3741f1049904427a6d57c977c41c42622642ff393c7aa178918d21bc414d58c81ca8953aa680f2cc5fe7188038cf1f4a0b6fb257e1c414275b9a74caed761b83989934953a19baf98a9575c35e52441487f0b7d5645215159fcb3b7b6b193892886024c508771cbc4b3f120810c7d126b14922d6f386e25309bfb4c1494f6eb4c9572e40856150f00cee661e67e210d24a147ad19565bda14c8de45a5edc77a4865e2b90fcdfbb5003fd90d7a758cf408a96b05b6237b0728e41d5847ba118fd8d42c4843b3864e3bf07c0b7136414836ff9ae6564340d4ce226b1b608b53ffeded5c14e91aa39f869b602355f5754c9c30958cbf426d1df86a498276f130e5b0e3c1862c440ce6e41ed1d8acdcd0f305a66769590244d672d34aa4b72d023332f5788649550039975e467f196cb35a276b6fcc394043ea6924ed262a3572bd354b3685d98e87ce4a5038f3961e89764359c5a507df56c18b030eda095ef6b3568ef010f57949d3633f397a7a04c319090bebec19f521325f0d8b7353a210d462e5a3e70d768c1e8037f57b51b1bf667018e354a14b6cba7d41a23d85d1f2e0473302dd840a085fbb0ad85b19d3e569346a9407329e24817e8a374156f87d2b6b5319f5861addcabd1356e712fe3757ed9230169e51c0f3234118d20f477314514e5aeec9fbeb0ddb58404df022acba911ccc5e727475a36dc9709875303807add451004afbdb4ba7e3ce36bea2ab5c10dc71fb0daebd762a93067a465297c83d5f49b12eb2c1884d430b24c3866c900b5ef882b0b819eae3a5eaf8290f86afadcb24e100fca7538672b9a7c2ff654789319070a363fb6de40fd79e7d2d35afb5adabce11df381c70c0cfb9369af2caf58871e2c48020ea23e7d39195c1d7792651077d8daf2627c0576facf26b7819f92d01cd2375432740cc3eccf93e67803b86802f176b8dbccaadd98327ff492e5a6ecf2234ccd6fab3cbc279b5ceef49cb4d93008dbd9429bcdcb1110db7fcc828ee02f66b7da8cc80d2d6c5f4fe98d8e64930c7c4d5dc20715ed88a6aced33e9b275a8b8289566d67b4f9d0364931f0462a253efd5c1e6db9e7f79a999b5f60819110898d07cf59e6c0cb39cc252705ccbd381c7260a23804060af41d1a0c57d4e684bbca270c608b435082ee5137701f433f3e99ccb3aae30a4451ca36f0a7319160d6abe4974435845ef133e3711ce15b46e5cac0b37cc62a4ded418e648deaf27019d6ff0b821bf8c0eb0d84b531ee8d98f14f4b7dccf6eb550a525746c8eef4f1d234318dbbd2969af3012d44768dd40d2421756e076bc3fc70783de3732de15bd68464f20a7980a58eaf6784fbfcdb8306e10fcdee3aea4e9f9dfc08549b9915b0df736c337e0f918913756e97e7029bd00f5f6d946de70235cf5ac260bb39eec3f71ae8dc19c7bf54fe03c6f894cbab5867bfdcf2568ab8defa4a15bca7421901f907b726970192ac2294b5a90bbd0fcfc2185e819fb0917c4e83dc6088377dab0a080e036c401a3de501764b718990c8514af6994024c9328d0068802e63866dbf911ef1fcc05a4b831df906c2efac9bb79df60a34def5bfdc6eee7425f1bbb21619648c8f4b01d8f047debe8b1b08b1ac090bf83d4363909886b40b4f3b0f1ecd486bbf7339a4a04466cc01ef7c5fe2ed61ad912b3f447b300bcab8849917c05f8c3b8be383d7f46909b2fa0ec95dc1f77e293cea49806a581719e983e90e9fdd8097cdb92788bece98aebd951d666c22e6fe06444048d674e7f8258b22b38695843b044213e0b78b22cfce0dfae13954900338c66e216103255e49691f3f36dab6aacc9d83ea5f93cb544509e0d75c92bc7637374aeb8a0211ff989e493d893feabac80644ea092301f07ca1a1febcf0276d00ea8627aa19ac3d1b5a374abab473b13b79c202dd555fde622fdee1ad6856988c59d000b4e96e1782f42ddee2f949ba17285a7ca4bc78654ad66068d7a2f4bda254748b2685966a9da2e8ea39bf7cd8b05651c6ffd7b61cb29bccc28b7bc072a6a2e76b1005ff5adcbef1394dd4ebe4a9e47dacdaad90943aeff3336180437964085e28ff94837871179745607d11d71f4f2a04441e981b7b4d3c9f85475c2e1e89eaf8b8b2ca3ea3bcc5aade6cb406b73290fecf015d36c5e244d3bfab75c7dfab47b751917158fe333321b495478eeab4ce2cd91173ce2bae318fc3d6906f10aa86c0abd975ba889e958e9fb4fc6acc846bf7196f4a42be5dd51c4d7b5f80303b0b64e35908d7cee503749bdd67d3ff633169dd4bcf39617de8067855a4e0acb680e2879795960931d3102011ae6242423abce1ee4012f7efbe556c68371c75b857c5635297f3ba7b7e5d6f030f13f9177303501ec67315198e7bda9f3434bccc060dd433f1dc4246f491ff255752d8cb103e278d5f35546502cfe85321a6fed500749fbb51316175f062080a20d3f52da159b448df61599f5754ca046dae3a14e9e03525acd9a1fe964c8caa9feb3ada82320d2fd4bae1525830c0a3eb91cb454f9dfa43c6534dfaf6a7e1d2b19d527d4f403863518f63246889614972e0bbfb126ea0b509f0c78278ca1911797fd5da6c00c8b6b212a511ea9bfe7c45fb742a109fa40f375490c0b5e98aedcec7076e1ecfa567ec3575cbc0892460c52e94d9121c4a9219049b7325f300f04182373a0f476f91a18b4ded3ace3d001900f9316d92be485b5dbefb54fc2b6ecc79609c03b149bcf2558ff915f49bbc691b45c3983fbe61b09cbe7f17bd4365e7461ff2388720fbd74ae451f61f73f8c8b51afe87e8684508f7d64ba03f2abaff47a30ee51f32e25b9d07371f578df432fdd95504d64be891762adaef094318e64a5dd86eb81decae2c30c8fdf3ddfced1a6f1a3671b6687765f9fd93cf66c52b8986c5ac3f78a8048d969fe78d057f8779a450c4c7cf554ca935c9f7ad781dc3f50ee6ab1afc087f35e02889a8cc70a333edd334688c70e85e5e33d7509ac4cd6e854791cbdfade909fedc5614190cff9b7b4f62951fb40fda1cf62ae77d00cfd450db333f4c669eea1877afb5babce2f70733396777b2cfd1e10304272a373e67698c40475d6a8dcdec141f999eb0e3e6eb0000000000000000060e1720272f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "b41031e429023d8b0bde433401da448cee6c25c6ce0d570f91fea2e8e0003b8d74fbdcd92e10a4c402dfc69e0f9a8606306c3bcfbbe54ec85e67a2dacb256ab7fef57d4f9dca6821dea0018711b3356eb35b26aa04e4e24258a425143a41461a9072917c2379147a0f5eddb581b2c2cc8c5ddb0988fbdcff9d1c08c54fcd8d6308187180323332756114621031072627086111387668451517673476308050226401431411002078314320423167445105586472837160068503711651538612002474738156771546158213203634075076627856673551174036874814672276057816182646567057838472217266464286788175223883547355604825160203284740031876124021606828645257287557536283685447586264235741522524203562786368760756626425648646301601424461344720655563085148701581538725563116434750016583787202244706671656673360543022472348386355555216740876053423145207220215288173773673254851848843544367733877367684487546272360147888585062266725530267303827303330722865600064858167053545155847718656562817220613665676265531417768538725827652265147840676841185282152102433418210682713282074058278783774832155473821247506618216626566867772460343644300857213703782575258360453511208113564123347842732384425714052332685838235276140847553510686853588183647620142084011575461180651773710873788051162231133551203282062663434133720131214726826358244448642423066650700046703701165582687044848075445244378345475630155306748508628514414573817131227848117084130108806520477762153526077440526152061718677170211587781767386357087370373546246868176348642114171346466802285776887407548463043571252705273448318775685804388232083342344318526671208685586657233167087274604642575167281425403628454588035142888023158866486354451766232612253807626146002020687740653227166855384628658488552172473352822758416218056646564887688525016571324618580506235085356136623061587126233634144808168776666835652146220745411051087080675254553611328562201757380152442582026728077460687662702730163323344587228282266180028705510081833570608060460561814416388310480718684566834250182344024141512131824564345764225113366886020557736555015867254537141460332463400038080232260884007748535462375132555608478026286674331012254577082372650150743346620632153142461751843512725203645573416203086678847823547075440341236307636683765155035855388325230212466688650848266447774187762550543165086481685166114275844214757615002211585172252045422351822350485640638787260675244484488533545681306107455850048827064173728530377256055386482335626160385474622143280244166215544816121532246616727547420711254521611663025850838555761055745283275766360537451722384665566043524462602412465142360362618885705481810822765762370758274210003446007848633018138621678428488637668412478162585226721120871703455314018886714200087410810471111736637502733516078034784482313173143201720463014387511766151684721818776150764721201276223766122234542135551203814112802641134277113538458182831151888280720407357067600528185433068807774800015204222346136551664505410340801162768715705860206114026018454151640360351626715224114084513438212270103416885145676887226254837585228402210556431316580770507816355161352215424028137545704455312621082860656805056687321652606651264631473767742691d0f2e9df43be04028c83c8ae866dbf43b6a7f2721bb8615814c673837a4d2f4b3d3d10220bb399bb3f4ee10d2ce1ea47c159b728839cbcbada46bc65336ceae50a5ada6171fc8dec6d491ac82a5a08a6ad76568e6c8ebfa06c251f4bf9458c665d0a493f10b5fb9bedc9cba828e9eab11ab0d06677bfd1d7c97304fecd25675f43d556085f6c217da1a638227d05fe3917df0b23b2a2d46a77dca2c7f7f5efdb9fb56443485e15a3525f2b07ccbdf79ca56bd57bd1966eb183469f70199ffdf3be28c1f4ecdb5441a43d6f69312ff7527a4d615aa9fbda8cec198fe551d4dd5be279689ef3a23e8aa37626d82645d7bf60ef38571aeb82d535f97a948e8f44ac7c0c049d0edee6ddd2db826433318ecd7139c79064dd47c6926d9582bd5f786452696362d5cfc282770a355a535190b8605789af94f27ba3aea9081cd9fe01c688393dd00b6c2c187c91cf661bfda0b7845b2f371f0d0d4856c0794cc67edfcff61e6de306725b05f4c0074de49ba33d551d383372d94756cd105b5ccc332b7c6ef979c325383d7d1c58dd6192b14dde5fd99d8bab007a80821400afd1c3534841c88dbda4b0ef8b99bac3befc2ab7b6350b1a018379c526759712817c86f81bb879cfa949d03172d48930f8061e92be0d9cde261af539d9cee6cd619db718fd182690879a3c7d6629f4cf0c789d7188209f8126bfd0e962f58312019116b39b213199ba6f59885cf07ffd43aeaf58bf1eba74c0dde3a448ec5baa425818bdb0291abfa875bab8916a20a038ac798d5b501e1f1a63dc3ce8feda655098d5d8d7809b30f360fefcc4e0044ca327939b3badccf0a0e4e176121680e995364c33a170627d1d53fc32fecd3f0465dd491c452682aaa681ccc5b1d4aea385aff99a9ea0942148e11fac22b42ab4e4db44057f641fd8d29a98dd1ee48892bd205048c2d4c498d693e24649d92300f627bd66b107e2f96848b22d475066e493cf8f29ef2d573d5b34cc39ef5235ddc64d0449e93204a0989a3e19d548cd2d91ed9abf424c907399cb7a3137a864a9fb9da11928f56ac1a1b2cfd5629225d2956e770e5b909d55c3ef626f8ea4074973f8215538d5a9962cd7e7731bec405cabca2015d81a0afe6023975c53a265e985e4151f76f88c56a54fc0201445d6b9ac320268d68a570501973ba985f40cb552d15f89a4e7dc27e1a8bb821adb7a3777f8c809fd8a65e2d9f74e6fd0f852febc06c0daac57da1ca921e258c265bef9351473527414b1ee0e2927bba531ffe1ccbe9d182724e7f53713ad62d1308f5a81fd5176f038a5466204040d4eebedbb1fdea6c43b97058c9d54c8a69d76d6ac78e5acfd722ee04e9ab92dacc52df554aac42476314fc8e2f4f1220045b1baf619346b83c7179f5d2390cc7cf3e7d3d2425598413df5c53b858e396b3f624bb0054427c7bda7eb856cd884c130e56d41c31a9a27648d5c069fe20c72a2b8bbc85bf4992c9fff59ebe900c2d56be65e708b2d901e61c3b98f30994af579ff300e35851425a7d1ca3fdbd4099d1b1e8d1668c623111b917ad791e61eaf2248f7247315f59b13584105e29abab6029672dfa35bc00aab1b220f816796f3e1aaa457c897689b65328f4cfafc9cf7f2521954b5b965515b132340c37ff842b81b80ffa1b8cc503b260e032b9a982071e30a9c57797b6fff48d1cdd6453594eafd8dd0630408c61a1d15cf1ad4d4ac7fbe9e45dc0278b5912f9e69c3cc107f788f2d4d0c3bdf9d403cfc61eec18d56772e00e7c5de9f32ecbe5912324ec78e6d69004b75700776e24395737d18373d9e4fd1c1c00aa3f0c457fd745aba8803db533b2b6351453cdc686e4932a7f741fac51efae11a0c59ddc6d7dd792077c7ffb7491256a00a2fee5c0fbebfc59bd1ea227667afbab3919c953c9472785ffd4cf47b3d7da0f7f6c54f9b91cc227467dcf56440a2578e6fcb40478fcb9fdce30ba99e3e44130e96bea69fec0f4acdda029f20d46430c950872f2adcacd0cfdec153b3ab0b5249b4969a2a598f29783f40a6cda4a3d6ac5944e055a8b7f0d24bcdf94ebf44c401ccb7e9771c03cc0a8140d633daf2ea7db8f8bc6eec0d4596ab8b0f67bea39766f630d9fb96b26e123d5f195a5f4cbf1a2a1f4a40819413fe4cc30c39e85c0aeadb3a12324bec0fbcf4286ac13485b2abff0454d08e996b22a0f03403cb3f5c63dfb8bdbfcbc6e965899bba2c2c6e0b32140c9f8bcc0ebade8ce0ed55c7735d3a134f5b1c03dc0e51370d2ea2b74c09340e6d788e0c92d28978718725d48482248cd5d9fc2fc5ddde9e692974322355d0237aeeedbddc9939cf8c04de6e2cdef6bd074768d73e3d363c3cce748fa54cdd1ce809dd7cc6c8d523f94a8c2af39c7d2e648581f6cab89d60f4953b23aa3c2ec48898c62d1c00df5bf376a54bb8a3e5fb6681f0053f5220bae37a89dd25c0657829a34aa3d4208bc055525debf8451f04e179a271379e79f9fc092b282b3cacea863961c2a9584c0d7f5f8c222f3dd305a38f8928826169a6b9c9e1612063049eabbf3613641e9b6741dc7608732053ce4e49ea5c3404254d83a96db1505aa3717cae23d14d57a0cbe6d21d6b3f1c838011ac5449bdc687d9cae147930ca299bb8bde55e1af6ee63dfbe75f6995befbcc6085c3c797cf87d1bf3285ab67f354e5402152c25e98caa6fde3cd8123500c9a37dc2dc26c40d81a1762671a59c1dc2f9eb12045ab2acdcd2365a559b7934c26416156bc1c758170fdd4cabb1fc2c3dff093f4f9fe0ab33479f3945653fb0f30bc1d736e3104b54c3ed2213f8c608f077445e094d6f56f683fa361befff74f825edcb4694aa698d4c16d522a879d915b84b84e41804129d0e34bd0dd66bd86323d9089e2d18807be5ef946a146a5da0143b0d4f45027967af7165abf19d451e3bea099d6c7489fe754d347811d7eeed06a5cceded556e25156795b6a99c34937ce94f60cd3f13f1d32ad079ba33808a40f66bcf4722648f5b1bfbf9340571a6ea21c4540099e2de3b79f0a51eef10cf60b19d91ccb54dfa05190acdec0e23255164ca3592ce3eab4d8ea58f69258c5d3053dbf949e7a4f8229ec3fd44d07a0179718b7898bfb8a755d688638ca344b736dc359ffbb0ce169a7076d21916e7dbacbedf8007392f4b6d3084997d39a265ad0f56d5fc3e6e275d278e7fec6097b1c1ba7f351aec704fbce599da7d2220cf1aca547a8254f9770fc1cccd747d691711c5d0470873584e378b4ac9d85986115b149ceaa3936e66dd4290220cd469ebb7ff0bfbf420f47a8ddbb3e11d102fcb417bdd2b1f6106f364889f363c588642eda3c11cf25476e72c889842458ce265379ef361b367e321b7ddf07f6c044f42b754a03b6918d75068864573a7f11eada4c99a9e8780f0aa35bea894a410351419aea02ef35eb96ff9f56856fb3c5217d18dfe1b13c348051ee35cad2a40071921bbc5dbec7180368311f251e75d7abfad41c2bf03b9bed7d847755cd1a6f9bd", + "tests": [ + { + "tcId": 66, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 67, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt b/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt new file mode 100644 index 0000000000..6597ead597 --- /dev/null +++ b/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt @@ -0,0 +1,503 @@ +# Imported from Wycheproof's mldsa_65_standard_sign_test.json. +# This file is generated by convert_wycheproof.go. Do not edit by hand. +# +# Algorithm: ML-DSA +# Generator version: 1 + +[privateKey = f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f743fe2130a9185402b9ceee616adcf0aeb1b0adc5b7bd65b8469d9f73abdd491c7659d92d3c6412cab96a2de13921e6e28264326efab5964afee6490ef637e546aa6b61aba997daac4623b0ff33b4bbd1a11b2942500c737263b5a7b599c454d8442073855220447142672283106762324611334160331766716756876656306340247416643645788214401245418430332335014484266482863377264642414206877226544283410340543730247627225170453086122730061663720413006672700563545553308822632620516184200008121626450075764267612441006130131054105366434124552571655324024583437672387040523848872722438820242507702366302474748842265201861837063577540747600354316761325342724414244818807083666356763458818178730038860216678417556380528118134053806822634757706213780383068245037164828641644088712486666263228563278454077257226514241838623545046705775223416234252343326255430503041432773656045076111030080425435056385571604503837242375546781881637734567572558705071178084805270422810171125366178026263016101361657832287864742571181540760851116286862663367644442262567158480021516651834322735675322048815731072442030787610367014103700472855221118750731347147044142277174111214348353566824008064045627684488722675430832058628153456611117540326632627423710448122776364844470152004860248280007708325718482525552264175551177652286873852661125522335557583772044467545176204662306421267463234564162341677110818645117237332101582140278868362167651433830007175820104352222533408675507171265571436206825831530330505138722014332544414101453361865663285823831165654236338452842635115828271801121281582618708170531302365851580567783463004004872080286853401722161683240507540174321162726623307704357168735441623362805550771378557544025577664653883727145477726652161328654636765354441580462755002525303617004457666056523833318532171037664380506224158805461788342412558636736557807030038168058241037440287466117173258168248137753751448321557734277603877752226522005384287417756673375054253360826560561501724117752720403752166506773562110186547571130831846605687668266432088723466508134167088157733748882573483206443607642671007311272002682616013071771238832745526182648607836043640787500384324825714344453303465740312784685175588706426626253688784802024002168480055006521746017031355351420356313376038357500434586744155331653510137233135501164040340443180537652161358720413477471755650162313051181844240248360407773704517351058764775404747121083306411352302550060311617664848461285205032215087833220558462453850275140274158215805155381750850757850271010637641250528012682211173613444785706268032670127024707747567314772632848841668565545456641117066848041360116507056675046470163210801085300085527862576471877326436205146166232414075335513375673166307774724018723351488672332685528233522486007870307457262016571753124063541231514175538351737543321726247362412023101043212535074048080016006886215511021520172701460518406542024738500552450424583471822538241124124282248288348872240758184343246825136527273210452765138144072540628287154522674671801747806751802628540570743817583756538088277258068473227163621044527db3e8a7b37950eaf9af3770bd6b8f8c9572b54256463bebfcfa8920624daa12fccd1c228c4668f688976a5094a00b6e30694ab2e017cdc2d4315a381bbe84ee58340cd6bc6fb225ddc2bf8dc117ce2be59993e5a521f5296126f290d10097bb2b9f171ff3f5de8a5047e76a15594c3caddc7c0caa852b8aff91f435d3f039d3f27963c357691e9c9ee543f32a77691f8b8ad98d711f8191f5c9891f593d8c754b07621a42cd25a2e95c32156a356f7bf71d6a3d1be00c7364741f2eac5d0c5fb3ef93c6339b559c9b2c4f518927fbe1b87d49546d0c9ba801c224a1cca84916aac512fbaef6841f725c72b927b55d920bb9b8df4e89b9b09da7adc24fa3f9834a8a0380bd42f07801e4afac2bc1e852dfe41b0903990289190ddcdcc214a680e0247938a4b54b704bb6f0affe7ce2171ab7e05f8cb96abc352e44e9b9f60f6ceba0ff95703209197657d8228e93dae9a9f478a30700a6cdddb4ad484f963afacb39a3186e94e097fa25ab149c4c438458b24369f62f87159396f37de36fbcdae2acc7b996a90f66c6de64ad905ba6d4508d3c453e7d43ecb7c8692244f3de88c975046189a438f61a1a84e8d0eb11f93dae6c80dee63c2a3ece5b794483d60493a84dfd4d267eaa205ad0b9491e656e267eec42f5d3094982452ca10b420552d684242bb72d651d47e96da49077d73dec8fcbaeda2ace53156bb4d4392e21fe094a2a32d3eb3d4163ab50a8528800464c05cf2db162da56dc13e709844dda7cbae47ef8364c8c3d5fb471f9407bffafef778486c304088801624aa2318433459b4794f4c31ec2cac49d56504602db94a5b882a92b06ba9ea1ac40523fbf4ec1dd473c076d3e397941c821895beeb4b5fd5eef9246ed1ac724a2aeab43c56a6584bffcf4aed0c6629d5a59b719e5d677539c3dd620d861ee7f9c0a5f116a17e4bb3b16a8017e668612c1038b576e39dedaf7d848d02024c0065f1b896ad6594af4477c73544ef51f3e612c80f11150b1f394b9fd899fa6d927535efaafb745133a45442241579e57701399ba23b0ba62a2ef13b5eead46f02d2c5a91fc031e458be09a8b5d53d9843278590bf556e2258b371f14f07cedc213302ecc895e15be2eb0e771e4b1d6d10fffd2ab945dacc52287e8667ecefaf3c959dc5bc18d0d953ce392acaa67e3f457630cf266c7665253c3c04cef5a73aedee0cfd06efc300887d4694dbbb717f2813737d0fae91e434922ea831ae41349e44ed0fe9101309dee68c1337f050e9e16113e8ba47877202b97113b3b876f4333ee620cfe37b69e597162ad40d78f5a7be33ebdb38b9eb84dea68e01de157c7e74f4522836b64d146f719df851b60fe69cea4667daa057bc47a47248fc3073a904239c0f8757cd8aa52e5d837fbc6490a0ffd9a3dfbeed09c24c61e48df0695d8f37f5670aca01a3fbb2a5fd3bd57cf38c453f80f9de428aa0d860b13231c5b2e435905bae792ee21e6104535204f9ab1f90d8c3123e57e2d01b0091ed089b9083438510579190478b86980370bb0170992673394509aea3a64d241b0d5388614282c4172796b00bcb034769bb492c0fdbc88c1a30a040d637a7b9c496f620114546133fed394ab79413268027d5418bd61e6ce3ff18ab83f76ea0a2e5694a48c01931cbd1c4bb02a3515ba3fcedad86e74b2848902089986bca91694dfa712b97c4f2878f287590aca47afb18d1ee6f502b90749f8ca1d796309c5bc96f5899f70fe0b4b5061668e62891b5285546f0dd2176649e5cba2b206953c7b66c57fe2e67c1c6e45682322d82c569c543840722756b7b4c92aa059e59983fcc327833931556346b83d7519b3a6b93691e74af6d26fb61bac9cce2f880d1f194d084171809bef926e99218f664bf18f58585985534281b6008d86f48f8c4044a4e4c89f4f08cee869c6a09b96df42d6435433d247e9e1150ac5b09da7f66d4f2eb0fc7f8f22bf11a0b03c9958f0562030d2c93b1c4a554e86b00f7c2e464aa54fe018bed4578f3ca0ee8644c3537b86da324703e7779fa897fdd4b867f7620e7fad29957f28067524ea180380428995ea333a3f291fdc67f0364cac8683e199a9a85c7caa3cc29db52f84aa0d0d07d5677d74816873e0af727a8555149d41d40a1eeb5944328a23b1be9e55ea81bfe461c86bb1fe3995e9f8dc83a77b06257c6356089bba2bd44e2a7acacf6de34262d22b0f899d0abd705637ad5ed1de2691e498851db106f1bcdada3a2f96908d3774f661fe2e8ec3ec598b936f4dc4d04b80efa4f57f3c55d0ff990b313643a8126aaa14d898e338f5a261ae5bb17b854cb1a87ad626d3b4ee29c567baaf409ad53891f707c148f49ec16f9882db396d1f140ba9e8b0c9a0cddde6592e5e82de0b18dea363e8605ca364aa68ebdc5f3220b810125fc787d339c6a5a68c92cbc64b5d265ce7a03a06a2409a8a18f000691cfbc5b205bcc1926efb589b82a7404d1bedf09e88ad286f7711a6d67ece4bf76fd86556e840d73f353d31b4d1c3dad5e83f72d540c601983cde7171e67b805bdabe3cd6788e30938b0398c1c8cdd5f8f1028f123d2d612611ce15f7637d2d751e59df171a4014efa4e8420bfcdb75b77c63ad1dfde967d4cd44792d1868d6df3c5bb5f1f3617861e24ee6fb58c33e6b82a57b29422dc0c5aafcf0ccf44557ede0e9f7d32be95f4a214524a30d37b85f1783c3e77b7d52e8648afbb9a03435c59d6afc2ed3b6ee434620c0b368ca6337cc7228916c5857d1bef27502014a0798ab099a7d7d9f053175b9e94d4e3736794034bcc92a842edd555dc74e69906a8021430655b3907ff0d5af127c847902c783e5e51bb45a3e4da6bca417774417fe2cd5d8448c5422eb55ebff2a44a378d528ab06419e6ee4ff6608eca6b44b8c71f55faa714bff9727dd3163b090330713d90813375c88b8681d491527f89b87f9433cce8f6dcd83fbf4f00215b3caef344b38ab4bd9bc5e3dcc3624fb60ce34acd7340b14d9ab48df15b1cc839265b791a417f90cd463df719fd69869aafec64df9bf010498e8d6397e1cb696fd68b38ca9ab1faf67b7123ad01781ffce12a3dc2b703cfa73dce16de7c3a09eead7ed6a644f96ae33a4bf179122906c969e99d9d99dc3472de3c48e80be4e9685602b23400bc292ad6f2fd34a2afb87660a010fec11d3ee82c164fb267957b6651d9150cfba16650952f8f8863709bf5644b0e4738c45199824511fae580548c7f655f0bf0bf3102002d80c2b2c3adfdf358f2a38346032120519b31dd906d3e26518b867d1dcb91caa5567976cada346044dc8e7274c0bdc0597556ad059f711868b83b8da5920304d08cdcfd3d5d427287f5b637fb7e2c14253452915fd6c6614f93c3900c6b3469d7bd87e2e5f15629316a7e8d4dc12ac80a89bb8c6ae7238144f82792bd04c2e741beb130c2a5a9caeb09e8f02b1480ad42486d0d8e5229072dc139115493c2c747920ad76391dddfd66feac8744d5662014bce98728b8d] + +# tcId = 1 +# baseline +msg = 48656c6c6f20776f726c64 +result = valid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ValidSignature + +# tcId = 2 +# empty provided context +ctx = +msg = 48656c6c6f20776f726c64 +result = valid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ValidSignature + +# tcId = 3 +# non-empty context +ctx = 436f6e74657874 +msg = 48656c6c6f20776f726c64 +result = valid +sig = 3a1f0e89fa72e489e2c4c1607b0f22ad03513725660d1ed7cc9a6b83580247a101ff45480e4ba49b1feb3bde46952139d3e1d34d7da0124e8ffa05bd19698be57ffbd5c2411f01a0588898cf4af2b3f3e1fd83e8befe03806d91869eb496c8ce989761da7190e036eb2bd14a8f9e195d5ab8a1b2b11dd56a098c1e7ec6d508856aec98b74850e1b934600b8b7d33cea5f79877cb9b1452a2fbf5fe09651c83c2b965aeb496a2a4edacd4f6f39d56cde44c2f99c2f0b548501220f553a1ad14c6d8a970d1cd6dabd4356568621d22c70dbbb21dab61c10876e34fb20d3f012eec956cdc9ed81c98e2810c218dfbe1de709ceec9dc2eb2590d31fe9855f8a1d14849f9df5120bda5a0392fd6cd93e2e8e5f80e6b30f45e9b409f9e251a0ca2aa8ab99394e9190f3c2cbd1bda77b49f9ac887e7ceefc333cbc49d080726cf373753addfd13fd4204f12c07a21fe2ae5d513eff664c0ae4780f4d4f87a807ec63efe098e7d196223276f4564efdd574402c77390d2cd72f4785501f89175f6d38768b6c77838723cfa66d42e3556077039ee8fb363b67c174fb70f78008229263350c14b54fd9361a9cdb29fdc57909c757f96f9f2c13905f44c3e40a16a92b0fe509ae9cc3647afeedb032464b176b6a1afa78df4fd6bb765e37071172bef2b6d045b9a51701d111b60d0a639c0ba034d5c6b4c146d079a340fe53e9cace778a995ceb2d39f302f066097eec6f65f775a5e803f10af031dcb3eecb2bc4939f478c5fdb96e0513d9ea90ee2cd46ba7fd45f88e8c38a23e06fc5b2c624708a5dee0d00bcd976a8f75e35c80caec5531ff4ef8bb735cbe7ffce86290eef23248b19272692b758bba1de7a66c63a58315e48f5b127849c759d185908a730f1f29272003e6491a0b4aa9446da297338e04a60bd5f8413778aa08cc0d146ba76a5ebadc775af2b0b3976acb54de8910417f857499d8395be90d207615dd061317e5385b886281699e484a7f958715dfdf3ec30d5423d94e0d1657a24478967513fc741fce01f848f9fdb8fa407b7cda2f7a0eed64d9795a2bcc9e12c1d09b4d71cdc9dc3fd2ba82251f0a9fe5ff32732d2306900184e4296bf4b5b92c106d72a638c5f6713f49a7099786b32ba7a8081aaf0ca40f9919e0645fb255c8a7f4aa672999ab84a19b9d759ce478b7492b48a83eb9bde46e7c5ea1883d03487ba01c8a9c4c798a765b18b311115d02911dbaa5566190006ba40f5ee86bc22eda4ca3d0e8fee49b1a61c4057d95cf797c30a7e06d1012c1af3622629de1765d3bd928df0cb9cc7e30299c5148f782af4871556a0ec4358019ef6a434ea3e0292e97c714fbdb3ab14837257947eb7adc9c1d682123a016432e1eea5afd039bfbade397a9360b674832d2c55d521820c0cbe68bdfbba6eab8189aeeec781362fb289883d2a2fe87e287b8d940ad6a4136b7b388b38b0913f2fba42dd079cac04a071636b7e5bca67b44860cdd9e5f9cd77f07e524e9491addac1c6a66dedf5a4f814fa54eb9586bfcb1a6d4a1a166b1074d28a9915167ac4cf279e8d22555df57cfba8bde251483d9b2aef08a180ff74edcbc1bc2219f01fef23d77fcdc1d41ebe683ec96a75a4784945335736770f63a5f000da542958558b5ee375c1c16a109d488d8b17daf2450f35e0ae08fecc139bf8d5f51f1d9a1cd738ac3bb1e91a3bcdbf79c6bcc9a09eb11bc97a7062fc4e4e1c2e796241dc42481d3dc89b31d2337e8cf727c43dd393bb738710ef7ff96521dd92be410f295c765a823e1984e63c534d5f040753715edee4c3f0c78cd468eb9322ae8d5aa92b88bb172082cd08148a8d208d21dac81f0cc516d08f9c0b7097d91bf73badf049b62085328e347e20cd6ac26c64be5271f4761a16ce90ec9c58b2b71c998404e1411f1a1c5c6a6fcbf260eb3e325d1f70132b5f41a279b082712005347fc7d8a6a960ac1ffefb33de83cd6bc704eedd8ee937487635b696975a7156473937d7c301579c4e531170a6d109d50185693d9dbea24781f391fdc1baca492f00867d362797392af50da481552b86f323bd297b6a0cdce20287f0ee6119be14905ec55851768ef95d50130965c6877ee8d91e1fe19fdbef7c80ef7f93968a0d717c354f071bc8cde4d69c84a6e876a261e620a0f7c959da0c638b32d58325b13ddc9fbf566e1f411edc9b38a2bd031a7225551c4bc596958b1c22d5ecfabd2c09448417ba8568938a1cd02068d4ae3e0821dc96247ca6b704a0af99acbe5ec66b28b7c461da48743ccf387771a15eaca6392341dc4657d5c4c986b0648e712ec50f22e3d68b272dd9c34b63aec5686daa5a0f9bd259138b6d967cfa368c04c48657b2de2133b4c47147877e080d5588b09ab0b19d947b6554aaf43601b1c7384707f3091331a0583abc41bf448283eaa4bb001a44836de63e66eef64b04d82ad32c4369bdca012df554097e493e77e1b26acd103b564b6e8134012aec9cdc52eea80955a76d1beb2cb87782157adeadf2ae6c6a4b49c031d6769be9b42e6f85c8c5a6d61947f931c321b45dc34822c8523408c77bfe32048719537361fe6a1c9a8f3467cf5529dd597e19285304c716f9144debdfbeeb16ed742fa17440e02cdae4816699faab22cec162054df5d6ceb6394cadadf5d60abfe5c1dbb3790e4a98bcd9a84f6d4aa8e5934d80b40d8da632ce6640ceb070ee6034947a094337c013075c1a1267a95c820b7eb5f2aaaf20736f09502faa043cecc39f2ce7ebc0a14f846e38fbd514b935d2a46dbeb778223f20694985d27273a9be7e1be3c7dc9b8af87c58d35f4cf6559f48d27cc7eb1c050c76d85edd69995ea3b2e54868556758014ea18e18c11db61c56436ca2ac66260635d927a72cd707ff5e533704477bf9f578848196e311369842846588febd3a229d0b4fc04a5848d98ca55c3996e34d2154efe73a63f052da1ceb72bcd844dad8a4a4546cc6f94b2029b4e2c8a65d2b50673668e7abce6f054d50145b744b8103592bcb4804b446e1b7f4910843f5cba5a34e5b17309eb287c39bb98f6c220024e7582367d3e5e83737ef64944437c9d462c94f61c754a887ae4e5f1d2d64497d2b7fe8e885af00e8e8ad2d998b921a654616866e492a32742f319efef91df3f2e3d2697a4a12b107ad94da1d64ee6c67f0e9cf5aadae3eef52a22ebe342199cbcad564cd11685e0678ea3c91bcb67278ae4a6ce5664e39e86c3233cbdaf812516aa824754f6493cd5559848a71275b35f503ac84ccec4fd172b09f9ac40543a54059eed72f77eaa8d56645986ec8767e78c2df76f33e549b561b977fc5daec7436735a46956077b661fd05dfa124fc30165d5a14d9215e75c3134cae2a7a8fa490dad2fa745003c2d74d83ed13db927f4dc5cfd856c758b39915ccfb695c915c3ec5f3257ec38a0ddfa1401c3527ca271c856f2b00fc4f44416f7a387aae1e88ca212d81a6b4ca1e61c1ed2809e41e78ad8fb170ba1e0b138f061fde62eb7cce2eb8ae434b37fd4eb78b85990e7f6d21b32b4cf9dc57fd9b46fdbaaaf25139315a99419cfca963b19c3fc2923c041bf43ccc6147c3f9736a162a20152ee40effd6a3a29523d77dcb14a70b4ab512bfd11980e30bfd77304eec045d50b5923e22def0c83439e4d0326d9a20e53c43797dcbf17014f80ebc2b66fa6045a8b402b7fb182b43bb8ed6d569568732723b0f7807ac79bb676f35221258fb1283bf7c275b2872f2c625b7e1211b381454ce044a3e8a634488ece71e6fc58b84668aa744302b8a061b5674cdad160c2d9ef600385998c9f002fde9c829a6be84fd27b8cdb8f328064210918f28189e0dba18535d978efa8a8157cd5a477db7e3c909a54ae886008a65ebdc3eb3f06b89ca21ac3981d064fa15f01b1ce801a2c515af3298c4fd5979e6a651cec9ca50476773a755f96478397dda65db9fc32b2166dec033bb46fbad0edfd03f3c543e144c15dbdca9b83f2c3f0d5357cab1180472c7264317b319ad50dbd476b8f6545d86e5e399cf6177461141ce2e438db3100a0bdf957266c9758f7039817141bab0b3ea234c317554a1b30081eeaa6ccf3406a2a3e38d0376d2c50ff03e770be90cc3bb1c05ae9ab546e21d5f1cad5a4df5b53684789e534f2983bdf41bf9244d9594e889a2eef8a64789b0e327d3b48a06229ff0e48d669cabd64b7d0aeaeb4990571e275c3026a75106083b32dd1f33511877c7bf78fa415243d59474044bad21c773e39bf48619a7bec8b55b951b79f097cac697860b20c09bacde7a5e8054774db8da54742c32264f62246ad1945be13f1f7c856810e9205fa8dd797fbd4def035107f85ea309c1565f0ee1fc1e312d0bf753aed6a8b7704d8a1b2e88703511e6ec48c17ad33cac96aced306c8c08dbfc12c242d6fa52c4e51faf4cd3b331f57544f371fdfeff6c2d5abd7a38ef1abeef3a003aaa7ad6d4dbca80cde878cee6c46429d86c64c73671093e9567cc807f9f3cd9dc501878051166220c2d90915ef8e5eb46c0c07befd7a63cb38f5e9b4a8f32483d998b67fba733e7888c6297359fd32791beda81f7e8cb5d8ee05124b646db4ebee1e477c86bbbdc8d9f2151d99b8e6f0f23250649faadbe7ed2642505d7c89919bc10000000000000000060e171e262f +flags = ValidSignature + +# tcId = 4 +# longest context +ctx = 414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141 +msg = 48656c6c6f20776f726c64 +result = valid +sig = 88b645448a1c81f55c81631d057b1ca1fa8bb42af19f1c2dd2bf12594f23b86e17e383aefec687503d0077658497fcc508c8f7b9b6ece29777cd6625c4accd38e27cc4822ffb61fef18380362d29ec040773c9a2ce8b6dd7a1dfa233b76774ea41c766915afa7954f5e24f992d1dba4862802bf775d70c422100717a0e4d9ef9e6d217588cc6b9e1199aaa4d89e78ec1c7ba567c645538e4e6cb7cbaed4dc0663ca36fa036ec1d4334249cc6183033459c3035b4b56f0837f15ad908e2d9560b39e13580497ea8d5e8ae5ce71ae876b5b1e1deadc205e8bec65a724eebc1534155c1f81a93fb5bc6d00df71d8eade2905942a4d6234ce72bec2eeec3edfb7da4a6cc67af12c616bc63dbc16ff1467f02fa0c99a4b135b6a71e37222982f91cb466ea920fea4a729ed09d763e4dfb1bad062ace603c65f952e2df88c6ed63fb344d353265f21aa0e5548676c5d4dc24ff7f1ab1aa91ee19e9d0e72599c85f51fbdbd4f7d21a35ca87ceb19cc9d28df071538f34382fe278bc512f534cbc1f747a4497bc5827de2aa7b672bcf44988611c2e8e8ff88ec64e4ea101d47c88672b1794c1af23ae4317b6b5fd2923ebb7c25239d9efd86489fe8177f6f27de7e80833a344c3b907300c73ce9f9cb2a39296c59d70e180f14261a51814ca7c8117e33f800c126df8c92de498ba9a443b480c9f6c23d26e73b0299eae2a1223756132e3999cdcbdd436a9fcd5073c3e6212ca0dd3e734e355567bd26776526c15dd1b2c2d09d8604da0c0cb38dbf5fc4615d9d5a5ad217690308e34f549981656be6b144de153b9a428a314a19549688d57c8bb4543f12424622e1971c3b26772b3e74743d668c9008debf1ddd942ede5206ead676f249b93a324d60bcda8be119a61f9bec64253ceea1fc95ca5235ba41ff8814f83698bc3188ab802f2a6f33b25412a729635b7e530536bb90972750ec905ec1336e613112ced0a3e68427a2888b4135f8eebe4d4a9cb104627ddc182f319bf0586b82a9edbbc17c11abab38f2add065fceb1d419259597e4ba91ec5d15502f3253bbeb75917b2fdab1c8457af97ec864263d8dc501e9ac754f59cde0373efd9b18463a27eff11199afae22711c18172e077a0feb457b08ae8e3bc6614a2603e95eba9eb230dbf48c5173c1893268fad24e31a5bd323d5b224c0a9fa5fce2afd61178390fdce163b4ffa1d8aafb248ddce727070677310cfb36695b8846c4a32a9973c88ba0e17a1c26d62f716858200752970ed6490eff966201c9ed9cf223ce714eac732d52e0f63365c3b2789bf8a09642475407da12fa19394c55919af3a02d31e26f4270d71eeccc5c5373ae35d1fd9a07d500623b1827c4674287083cecb466f584e31ec933bde9c83c57e8a90a141eaf4c456688f8ca1353e64ebc7cce779241df3e34e7353cdd3af446812c4448383efe1613e5f1f6e9c08c0d5971e7ec28874d7865e3bd4cb1fca0f7ca1fc499c718a8ede6f91a8232991ccd78f918ada16271e84c6b8b679a8d5ab5f7a07ebc82b01f58de7a92753a028679ca244a72b13eb5ed2910da55a998c1f427d2403d33862b05292b1c0bec902b51f4efa0264e6295318c6a44befc85e00ca887350ad86ef9fc45a4a01322522f74b7ad63abc6c08da9118319d84c0b2164c9300feb1f2ce80de5a79918bae083397d42a9f415a40f0347d25c82723d62b1fe52d02a90be1cd7cfb5c1732d644db047eb48b50ff38ca74929edda7385cea85a07c798cf773d4d4e29efb70125307582752001d8f3a4ecde8db26964d34f5563a6683d4939d237ff6a68361f0d2e863bdd15c39637e83efb2b75902220434a273b3ccca148267aae092d8a2b0aca3ff1b352cd6b331bb63ea3e69cce2c86174c8b2e0d061a35b067f2fe7d9999e2c1c07f07b1e98246af36403b2a2bdf48c7e4397b3045303dd8e3af1138389b0967fcd146124fcc97fa524e10afb0ddc1294b7543f77d0dbf0bd845b7f9c36dd91222ac30f89d59d3d048949a456b43338cb1ff1b8392b083fb6fd71797cb21ed52b94377c9c69d90111a30612e65aba8e85fcd95fe53b49f18952380c1a9d9347d21e9a00633bb119481d7292ffd25ec5d4dd842ba2c775757f1a5d26025e4156f3db85741bfcf60f5efd580bea6fc617ebeaa78baf88a0db57b13bb5dbabb9cfd6c8a56b635ecbb1fba800a0cb30a6c241096f6df1f04bd44b3b99a93545c6cbe6986e5260384824875a4ea2ec84e6574fb6f08103c4da71c6689cba16cd28e8626233bafb4edb9ea07bd02676351d57261586832ad67b87ad61a59b7e7b8519e85ccde56722a6cd2a7649afd5034f98f1b9c1cfb7d320f491dc90002bca428a88cd063a3b30ef09fcbc5d6a4ecc6887e0b05b4179c0bd4d8f4791c5cc6a801b4c54e6568469b22b52638a5a514e550df53aaa1ae83fc9999658f86ee16661e301626fe77b064bf94b00fea4b8dd0237906fdfc6cc5294e526528675dbead67c7a4de642af3d9311cd8f2ad66002bcbb35668da0b8f2f02feb11b1b89c264cb5a088de45093cb72c4e6d54ecb5f1ba5ceeb2b95c023b412ab52e77338bc3859369fbb6996a35842b578a3d844d1facc6e7ff7bf31959fb16680cec82534792913dc2aace4143f412b09fd09aea82ae48f2d16323a8abae6527967058e62311f3458ec0f999a3ecc087501b40a0bd25f6fa6d126775bf261d0f3c4d428dc78c6b594bda8426342728ae4035e8527e24e01ec3ab9193dd2a72c84524aaa685bd3ace318dab3be7d89eef18a887c772242895ad9d555c444c670f2641c462295ec0620eacf3ba75b8fe914f1be38dfd9d12b501e09f931556c8798e1a40806c67833fbd2fd40227e3854e6af14a7b9b300fdee969e84c76b9a142b23de64c27ccdab63394c6d39e66315ba1a376282e8f7580ed60eddf9ce0724c57aadc7a8ee5b491605ddcd4c4949cfd6cdc0abbaee10238d57b5dff3b38d3607e8780d7bed5f52f524ea06a94ba7e2ed980aa132fce04004670d520215f715e2ffcae2ce336af653a754e53de4ac26feb591e923a6a5cb9aa97e71f52d0f4698f02eeafa894faf56121d380e24d2d82dbd5687e162ac7e93c6d97029660485d5db8c886480c6339df8d7724201a80dc54cb9637767522e50e5ce696ae29a04fb5b4b6740bfda56a9b80b507bada2aca4264f0de6493e6a7f631394838aeea1eddcc9142fe31558b4756f4f2745f31b58c2c1dc1b2550cb5bdea478872ab91393048a908673106690c8afad8096bd928e32c965bdcc3a7cddc9411cc36faff3d9d4e7a5afad0d0c5d3de867b990490edd8497f3a03ecd131e7424d5b0d29543b3cc7ddb6a1522372b11de1649046ce787f6fc8219b0a3bb508f1d6ec2981066dae16fd127df52cb9055a139d7a68f0f4bbca77e7ca8ff6902a4d87a59671da1b867840fa0e07d8e3667253a41525ed18c679c74cc2fb1b7b00ea98090eb6f2a24da3885efcf6fa31c66732614083d114e7a2b0478184bd801fb36e79f670eaffedb9a3b56d7648009c6e4c33da1f9888b54ec108d21c68fdea0bc60af17b6958479f91ca9685d9704553d2126c3cd240deaf5a0aa8bfca0e37899af660fa9fb5aba33ed1a5ea5e388015b6cfcaae014e933969623a66060f5d396d3bd0793ea79bf9189ba24a36c1b79dff7bef60f921f27d2a46874b282d5ab9839722b495fd6b0ff494f3410e0988006f8b4bced46f7d0f41678097c4f8d5b690055d47c37a887e0fdb1ef45d90be23f59d637f27bc13f25750b83c005e68ce669fe15e47f33b4bb989f043fdadaf7c11dd0e652542d5103ae73d41ef574dd82f0a1144508076276023c91adde4b126772ef620b6450bf5b25fd29dbe3a529014b47243328e309ff4245a8aa667408ba5b4255879ba6bfd4f57cfed9219f88c7656838afeb58aba3d86157a4d1385e7a29d4db695702566f424f3b84f9464a1de1e5ead4683b38f672cbcab96b2c23e796107ff5bae2f63418fd3ab622868312cb1aa45911ebe5ad6ceec0d9138f1e10410758f024f1b641dc099e5bcc83fad7d21d503af50f7ee12da5ed1883689d8dd0edebf6085d90380f5b55af179ddab5df7673c24a253bc3d199d41a0e860477eb1055ab7883528c9602ac748dc1de5cb18d191db75f81eea0db9949ac34cc284643b2f84b5b3cb13369a5ae40a4b59a4462783c66df5c84d123fb6e171ec2f7801622b5efd6dddf28dce5ae844db98e07a24295ec20159448e2fcbafac66c004f6f9a1c29ddef7d500d83e783443f192c79205efebf0c104f56c59c59ce7e1906c6c35b78417f1d9faf94aea8e9c77d84f1e021b40423688dad22c209c9615f0f09557ccced493c06f4b1a4bb841adcb50070eee4d40ce61eaadab7294051682318d6fccfde090f447303426949dc93f2aa1b78c70e68e7409969e74aac563748827a232cb8c277a3a71d53d8ad9044e78ee4dacdfd8f31d9def44a9cf36f48f019f7013a2c622d19505236d18b3ac6ec5eec629b801783979f9bad8ee2c363268689c037194bd8cdc3b4db694e443328ea40122235f7809d403910667d99324899ee1b5f8890d65ae93d5a899fa9d5ddf6324a99bcbfc3f1688ae4000000000000000000000000000000000000000000000000000004090b131a1d +flags = ValidSignature + +# tcId = 5 +# context too long +ctx = 41414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141 +msg = 48656c6c6f20776f726c64 +result = invalid +sig = +flags = InvalidContext + +# tcId = 6 +# signature that takes 1 iteration(s) +msg = 0700000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 424ac14fd2cf3f7eb28b104a7418909e84eff42d2f6e7c4ed3874838f8580d918a5d229f8ad72a0e093959da15f05e9942fad12ac1fe73c9de377b85a0f9d7203e6f8d3d4e83e5ac52a82b7a77c0096d92d40f2c1b7e194673faeaf16d7bf11342956d14d7bcd45f98ac9003ec86da5a1b2775d0723ba7350b81ecabc464be480d834b3965fd6554d340b9a11add210c6228f29a8932b8b6a00263777039533e1580faca62a7885372fe15b4e441a7595a13966fc05a95926fec9eed7563b1347d2b8d55e15212148e9f7e6e6b3e8dc30c6a1d213f66f574588ddf5d559438b1bfe01e851b15108baa97b64273d2e850b8ad504d2defb158e1ef3d4af5e1cbebfdf8a0e8037ba4def90bfdde7f2eadb3da96becd9e6a95e286e120871217aca6a8756f3ed7a11c2f75e1a82f9ab0234b1cc2c8178ad690e8c2798f1eb8b83178f39d7fdd09f44d7df268e7e062566a4516b1a1ceb97049df4646e8156e678c5f1fe2705b0c261db71a9932b8f41950e326a2200908c4c0bf3681384ae1501f5ddef8ab98133519452c725eb84f36814577108508809015af4d8758c23afea3815a09537477e8f6c7694a81c1d08c822843b9e67d95592eff819f6c2927e403f9962f36364ec2dbfe494049884d61695331e32abe6272d5a44961b8679879a67b142aa40729630d8d24bc69caf17774c6e2b3021b9181a8a498586a0f7d4109c5c82841454785873670dd2f60a4c278a373986333120c1b17b4297620bf72c7fc126205c1b240c6d60399b715579adfd96492e350a4145ede8d075ae544d051f58bb9991575a6ddab224c9c83a39b6fa9b49444fb0d2b8e32464c216e42d02091ff25122f85f9454f6d818034a30e6252cb0d25b572de3ab1c669709e04fbdaeffa26d0fc67d250da0864c71d74f8c08b5ad15cb95a33ca5b03d9573e83b35cc173afd97e88b9ea859861384cf8ee6338bbe5768cdf9c84cabdb8b332aaa7574ba200d496aa1d6be562f59be022d7d9cc63fe6a35100b664694b5bd1f5a610cc3d7a670f45b47befb8cf705339a8a5adec9fbb9f1fc4196fd3ad2a5ec9f3c9bd48e96bd6ac7276bb00705aee192106388f2fef2cd3c7cf00a159459314260dc49d9630d9bdfd0245db95fff41703f3236ed1bce77582dd6de015ed6d8dec0f2f2952fafc0e11479487a21c1cd61f1a9410dc730dfdf01527c6ae4072eb1591fb5f9b6117dabd9458331d9fdf582acde4b9001c6b6c6e048120cf15534db40e7b8f77fdff60b08a0ed6a802095fb76c71062dc34a612fe34f6598529c2028487457530c154d18709381cdb36b4ec697a2b921ec9056c86c5e73dd74b63f1844b1240c703c6f6373018c2daebb7beb55ec0365c76725063a3fd212ba80bc951baee1b58ceab532e58754ea44b0cf815a0624e2a0cf5dea9bfcae56b7ac74e4627a05bd8a2539ea4d25a3aceb003c8e7b750f0e8485eebc84b130a54ce8926b54cbb54b94db057f993ab426fe1a3be7a997782fab08cd704b1628b9d40af916730014d71d71d82bc09a7a17855c314b9febd079e371598103a4fc6923fa47a1979fea54c0bf7542a6e54d5cb92814c824d94753095d2fab232153f204d16aaa6acba4c72ae358eab79a8b51ef06db93cd5acb606ddf4dfbbc031f697486c284ef2627e3e65a5998f746d6ed934cedc1204c72694f6738ef0de7cf25bd147c938f3e7efd6def80c01b690ed200c21f56df02f7f31e90c0f05e61c60e2279b307664f491fac8f3315e48040ed63f6b68cd7821bd9447a8cd9d95aca3b16d721ef8e90d668636ebb4974553f41e7e9b075eee4e83e118fa74f2d7197fa135dc53146e7c194645e4f07412693320117cc3cdb1bca814e0e30fcf5590ce237e0479bf088cb0f68c2dc0b53203c7c007a4bc6361a32e3e153cbef1163eba0a3d7e5e133fb30c6f37b3f92e94abe270e7c3e8c97056bd12a1d588f919d65db51accf624e0a356d6e6e0da3c67dc298746a39b6313bb658e3451a2b1abf7efb6c1e63b83cfaeea9a17ac8f22587254227f5adb2f41f367bb9e4530c7fb93b78cbf60b7619a25f2f7a00aff9d935c294e82102eb0e96da7c3d4c87ccb896a5e5ee3ee13da3d94655a66c0c3d781a67c23bbd53cd7eea563a8d63100144ede22e3af96b69ca18d5d5be5849d27c1db28298d485e2fba3c7f68297c7f883049d73ffbb3a300c5aacc1d8a805205602e410e76fc48adb109cd47624c2822e6dcc0db0a28be5401a79659d19b8bbdf131ce04fd6278130aa2f203b9e0f52134a3dec5a97c4753da3127288ea0969fcee232837ea067e8a34b6dd4e1ecd7f37b8e956d137be78be955854a75d84a339f3e80bebe8d295ec1149bbaf115bfc84e8cce1cf994fe067dbcca2ce1c378180bbceda95444ae535a9ffe1819caac5cf95b86219e95c62581d1110daefeb4830043a7a9552de5a55f250e7f1aa5993f87647c92c27256753d6daf32da18c1cef9bd5ff5a7a8e182d071f1e75d10be89f02c861a0d05257c08c9e12f877a22c8382ec883c592a34722f1138a1e8b5ded41e970b97ba2a69c386f94b508b38a59b464dee983741e61d0096f499f3c552f43ca317ddf073e0450e800585053830681d4a8a8ecd5b86c901285c84278c06b86375a04fa7002b259cd61d5ecca426aa334659284945ea6c5adedb7d40835c6134271d641bdb19cc3617bfdd53618252b4a684a259b82982b0a13cc90ca931c4e90915d2d7a0abdee3f78764b41e3236e2ac21e138c0cbce20740cd17f34eea236720acff25161ecd4c903e33395f51d2c51583407b35a044d54caee2b66dcaba84359218c6803040b19a39c0e4ef570fad7330041e024cd194326891547985b10e505c6e6b1abdaf3fcd63c3f2f08b2d93aad41e83167d969e54b12745b328b5cfb93266afa793bf00c86270ab98e2ab44b2be16b5e522ca280cfb0a9a4f744900f0f44f6126b787274b2a36232c84b563dc3a5879c83c34cc6d644fedc3912b10e9806f944440b00883bb76d51782f928139117c7358cd38a460ff73af4d417278b7bd463da86ba11bc88cff14340a24f675905c7edacb121fd625187b90a3152115b3ce1f49432409fa629384509cf51426948c71e76da8efbde2eeb7d3f3e576f18d4fb61f90d99de2bfea2cec28468368610670890ef26e05bb108dde48095251574c20611ce68890144750c62a9792815a89ffc50ff0d76fa0f708d917f3bd9f840b11085445784d2017e54266c69f3fbef4c8fa82c0723ba58736aa8466a81b00d563dfa074a9a06016ffb04f029bc12c53585183f237d84c343a13b08b484e1625be1b0c661f697ad5097040fed2d3d46c6b1229157729b306694bcdfeb4eece5b5dfa8043a6fcd607e2f82aeda46e88f8d59f2032fa439365bfda8ac7b9e09ed8020c045757d510d5de5dd0b2520b0f74a99d8fe7b1915d82491a270d1a1c554d0c05d14a1419e71dbbe5df225fea5c49b73b84fbf079dbef25ae8861e58ab8bab6ec4ad07dc10072c5627029d4a74700193d12f439a5bdc41a284b92499b3ab0f3973529ea148053da54125c2969603fa55d3dc30170568ac9642aedcdc817b0f4b8d5d31925428afbedd21fc7f1132fc7e85284723b4f26ba1b50bd5fea2d81b12f4451f97331c6af0c82aa9d962ce034df061c32a1113990a9f320291993c9d614c42e2aadb5dc52c58daf8d22bb302e1e64b32e16394cc0c44cf93bcf811e7ad772754b6e9c2dda630449e005a0303996a69f5ad647f98908af4f857af804294d416db784c34d2d5aad7d840e135ecf6b636dd33f4ba29d0f12fe3967260013662d8bc23a34a0f8a5df93e111e8792140487eb04854bfd9bf679e1b38de028ea5fc457cbc8e2706fced55f5363425b0c2c13cbad1ef96d18f11b0fb3749a561504b8fee8cfb4ef9c948e3efaa2de6ca38fb445382af66855f3c0603ab175aca17e1b005deec73b03eb952cefcb3cd5860c40578e8a366da62a431916ee212d9e5740fbfc42f6d0e0951fd2f213a8f6f21984e01832c0dadf56b3de4833b849b7d0c9125d7b9ae5c6f245703d77c0298c9b6abd563529b3f2986ce54462f050d18dfc85a840b1633b2b0373e585f77c106d70ff711d03362af483f7812965405e586d6988318effc81e9fa918ab278e97e0d6d3932e24ac17ba537f568f8b16bdf3d45488cb34f696295f7321b63a76101ec283f0427a533544f752cc9d3c277c59997e01604192746353421884142fa23dcccb3acdac509a5688089ee919230a9e0ec2804254a153f544977a634bb13880f3241daab08d1b73bdd8fe4a187e9b4c3758eba88cdcd9fc104360b2512788f4d31a23c80b78c150af10e1a41dd279e895ae9e66ecaf2bf32786c11573a74cbbb93b82255f9ed190dafce6803f07271889828696f5f8173772a7142ab46899c609136713cf7a3f4c5e9718c84ee8bce8b4b5ba83a09e421c830eafda214c0e0b3dc28d0f1adde9b5fd9fee6a07a328807d0e983cef6383ab94c415dd1e649d9804f571581ae0c7ab2896e86a470a9eab94f2fe9e138e91ac103cd770d27af9648ef83b5254696d72d7174188bafb05114a788d9726c9d7eafb182348618cacbec6224186909c00000000000000000000000000000000000000070c12171f24 +flags = ValidSignature,ManySteps + +# tcId = 7 +# signature that takes 2 iteration(s) +msg = 0f00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 46b40670bb3da2c35f9649c9cd3fe613e63335a645b948018b3cffc864412f8868192a9d81da08d1e768d0d33d4f7a609dae1e72d4408fe5f5660f7714d7d3725deabd87d32d66d041124a0921a71ea30d8758427cd8978c2014d83746c7c29ca7781125afa4ebe984a11da34692342493df2c8fbcb50c83e56c9afc3df2a5d317add757dfb4439841a8d91d596eefa656f1953e7fdfb63e29a23ca3825a1c04e09f766ca10aa6bd05b9dfd7910db1956f99326766839c4dc0f653f2dd5e3a508fe13c2f0624d3dd0c0f764c164d231cd1f73646e542d7bec86e7ea0336583e86c2811db5e28e18f34122e86a37e1de65f5d7836c35db6079bcddab304ab6cf752dac710004fc24729d760d3d9380270c5d1d777b67ac830dd52c3548bda02f0f7d0331aa6c8414fa7307237456105c3c5f8463aecbfbf4d8c7f7c3b06f940592f12928a7a018595c1972705f8798fc75e2833e95a163ad24f367cfe85545fd0e0992775be5c074ed111cbf001bd536d1ce4a0430d963728a2e25d71c3efe9c385a6841d7f4c6d293a64f83429f064f3584ae0983dfa4f90820dd229f900e41447c07db5dd2a61868438b8f4eabd475da53e8f1c7d1120e366d774bb95839f6b3ada1f704198e06b13760447768753fb449c0d53acc22845a0a4e5b047d008e08e2f65c577026863ed25e1dd7d39cd4f0a7d823f4250474866b80ae3a2d19838cf24a265bee177d20b9fe59f2015092b3362a415f05e91bdf13ccd1bf3fc901a63ef23ef74b41cd74606c687ed6fecc665ee4fdae3a305392f59f9ba7e6c4a890c56c3115a2cc760f3166ba1c4e534a69bbf738c764cb228204799afdedd6660fd4a6b7856a84e714e58247fa068f859796cc4271ae915e62d3ca3fb43bf884fb8cfc39ea89d3042e453953849efcad7852d67471d2004b4ba8937a5c508109a19519fffa989a39a6c68f1ce9268469af6baaa7e0a93362f5b87b0ca24d5151b99bdac16885d335d6bf11c2a574a734999815843121bec25ba9775593ef19f809be5b63f5fb01b29f8f0eee9f1a69f514c0f17e90d40ae9a97f6fbaf5804bd036b6ae7cbc161865580f763d9abea93625096f3730c77cd0242f387fca2fa573f2638887417bd80968e86594e1ff547ef5ef4b9b49b0524ccfdb3701a8de2f7ab2eccce22ba93bbafafcc1359c2e3652b67250ed313d6564ba245200c0107fe749c965ecaebe28c79f24955a436c41b6ebd7f321938f4dbef88e30a34e5b2a3763381d0af8bd0176feabe3d467eb985cf4ab28e465b7896b36d2aabfbbd26931fca9b76e2eb1befe51b45d640ba468488da4093fb2ec7c77ae43c785b6588ebfbf5568c1299eebf0046e28b5f1e897516edbbbe99843e551012daa0157e03d1d41daf987b73ddb361c064917b6b8b4b23c31dbfe01e56960e63cec546e5684b057ae5f904333dc33ae1b0018875cc13f39e11b247db82e43409ecf16051be7e8525c9a90b68cf491830d2c583db07a5bd95ad69af0e4327cdccb9339d96a4aa201ebb86edfbe7176cf63a409872f73107c3f4f068df79ef817efb2f0837e665c7f2fe0a56c4e392d63a1032eaee2894f3bae6df6a70a430b22e9be6e15bef3a9af5545332ea3a62c94d5a6aaa8870c303b3460b3be88fa848fb818a3e1771c329f676941a628acd948b260541ecd1701c6cab3311ed86eaf0950675808ffdadf0b97f98e9da2193258b74d589054014dabe4c501f2e0fd81fab9cba2f9c8f70be8175da44bfcf01ec6ca5ba7f1039b29e27e5bfd67970e5e561c693a1ec2023d53cb1ed32f3614cc132701dbea3ab4d99398f23eac52b3f5c5f46a110d77f0d9c660b432bc57cca8bd38b4b5dcfc619aae56d7cd686f3fd94fe419f8fc54c9ea6611b4f512504ce87216f768abafa48f3825b2f9afca3d419151d1637bda8aff5e2f9a7921421fdac429c66c6a01832c7041f74fc81c47e4172f9d95b200b1a84af4dd9b677670bbf356d590f2fc1aa70ec53ae94331b2ac0f1a8bbc7dd600cb06c76f2f340aa2c8ae102cf9c4ba7126414da52a1d8ce3504ee282a02a9564b149c041694313ea3f11d9e697ce692441b3baa25b308f42eb7f9d03ba3b5638fb96004fd0ef2de66c6a573ce2570e19e75d5c2bea7d5c656c2ad6990cd2d8feaa9eb025d80b6483e6612888ae3a66f646a61cc08534fea6f31447af5535308e81e3dbac05b488fa9dafbfb31b7fc1773fed73556e9caa5864b4871ae4d2d472385ff62a61113ed0f7584220aac571b69373f2618887392f88e4813822009fca474af81a342e1fc7be442079fe882e8bab95b147c1a196eb079c7ef718c194e5d6a5332a63f3f15cfa08453afe796dc433399c75d8e7ea603c17bf1a133fa1407dd76489c9950e501e64d09a7ce59f886b3b80af926443bd3b04e33e97adc795fb4b775c8d6507dfb7aa254d3b994e6412838a03209ed3ae2c15cbf67cf00793c7b7bd4d1e36b56aba5212c0e8c82752da39686254e5357d2eb0ad691be3feffb1b09620c2b0b2181e510b47ec2fc0257acc3b847b90c0704eaaf48742e5a50498fceaa8945180026647a7f474cada887dd657f4003080d5081c1d37d4c2c8a1ba5e8562319d741b01bec47cff4fe1625630051b12accb6c919171073ff9cdf1d138ded6ead47440bb2f99424218156fee650daff3c777168b43548da1b946bdd16dfdd099d83a7c427f97f83bab18acb2650846d39cb41e5283564232fe21394318a2340f3ed2c6c7782d27ebaa780ea81ebbd33841f834756b74d99de6a17280088ec6bdad04144794594ccca8feee1fa09903953df806291667b686c9d5f77d89700b0a29ac9c95ef647d0b4a6ee30b99bbc9392a4769f4197f4289892f926d744d8b62e067edb5af6a6590981261b7a9c3c9f2b69833251916e00ec5710514fdb29ba3c25285001ab2652de3982f7bd960b60ac2fe285525f588167305afd30f059ab723c1105e6c657b5dece838d79d4dbb2c14cc50d123166cc4a4f01d15d7f8d4ce10acef8ab06132cebbc4426762b6616ad9c8d700dc7c53a1bed753569b28f6fb38e2334e50efb6b7de233b93ac1e0b4a71c7cfbb7002d6bd2a7f91d22cd080c182b989c2045fa5719eed2aadb2b409a73ea00ca3e9ae74e7fe61b18e25a8abed293651352d50eb2a341ae24d4549c93102b5bf8d9523da6cb97d6f0fbf4b64d7b65e0ffbbdec1ac74ab2217c464936205760f4d46139bc9066fca14b65f004b9432c723c4091ee0e81f5549200aa99445635c910303e697e0a08847645a98c12aa9eb42fe38265b09fb020ee3f6fb23f2e501c3a8ce5fde7326d2e9aa2e20aa770d810c3c11d86a6ac0296b296f2a1215fd83cb369abffb3d783b9805b0f46d853c73c887038584a30a17c8bef62ed7170841c09416924f67198bb07749cbc12412185f1d5fc4021a504f1c417ed5965a864140364904d33451937d38e14e8452f7d414949e9932e552afe0b33ba1bc63baf2190d8575e90cfeea69f5d0a3182d726cec66595065cf9dc22657cceb7cbd3afec14c84e900071d9d08849bcb1e20ec70c1dd4046f914f80a41afdb3b435b75bc125cfa2e6896b288dfe947f8c3edb82113a6eb6c35bf450191ad5abc514d9eeb6ed6fe5123f7e5caea3de2f19116c85def416ef5dfb47ee08957fbd87920e9fdd418895459b74a2fc62ef11be0943cfa22fbf14cb859de45a4b60deafb70e072889344107d0fe924fc68aa9c13429350eef78caba5352566f8d80b64d016265e264a1b5f00064de79c539b0552dfd3880dd9f77903465c777cc78fd137f199030bfb292383be3caabc1b6bcfcd0dbf4b7ded13b93f91408751808216e55a2ec4d39051cff5784b0db9e4d3c38fb5093bd23b29d82cce55e77710bedea7d9f0ad6a47929faf26f8d50bb2b2f038aba8d970939f4e6fa02c3f6cecc76f3a4298f66a7976b475d787c3d2ed3496a4cd9c47f864451f140be914141546580364a64215504d36cffe6f61a08a4f1940d965f39cb442c6705e932bfdbc29b612a8abb3925c3d9bec1c9630f622b0ffc7d8ec2425022882dddfa46bee778fc94e304e9672cb9931cb4b75edb5514c2d930e0de245f15c4dd422c0fda02f6b104c0b37ea2df5c04f83d9a3f644930eb54e19b7a2a5356359d6370bd4635fc576918be8547b7aba9f11f1dbf10697c8794b06f7ca1316c0e9ece8e51aa3a6d0a77672292ea5fdd50b399175d452f18754e4f3ebc41325982e2ba3162974c30e19fd49bbacf10e3cd96254cb3f43d6ce1115650a0522ac1b14acae1a3231579589062bd63a55b1aad407c0500b420d0840e49e941a5fe6c6cc196ce45d0d16289199cf9a29130f6235a3bf9e8598e2b0213ce87fd676ab5b621a284567172fbe5fcaade672cd55d1f6a5535348472fc836be896c332919fba13652b941a35087b44deecb7121191c548e8a7161b561a6f8f7cb4beae6b7f3d194f420ae758d209abac2f36c144f067a829cbef57304ac7541f7089bbd97821312a4c074be9daf5a000137825e7a406ab564cc16fb7ecfab4babbf00b1f13f8e009481e88f55050d1d2e313e424b4f6687c7973350585b5c66f2fe698a8cc0c1021b53637dabaeb2c7e0f35154babec6f7fc00000000000000000000000c0d151a252c +flags = ValidSignature,ManySteps + +# tcId = 8 +# signature that takes 3 iteration(s) +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920 +flags = ValidSignature,ManySteps + +# tcId = 9 +# signature that takes 4 iteration(s) +msg = 0800000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 70094678fbb346b4b40e967be25e40f3fd6db4e03dbac8ee46c962c4e7f7c4d2f18a7b44df87b89e8d101bcc264c30d32ad4aa54e27bd70a4d7c4717653c19887afbf6f2359957c895ad477f7d9964e1e941092dc4fc8fddbb77157b31462a46e84f57906fea21df705a01c46b01f3212d91011e0798548ba8eccede6f4d9bbd16d787f5862b6e4dc3d7328511b199c32b609cf90599f90e156d2c00a97bae5b801d80479e612ec53fe59d0e5e6d7c2d2cd2a86f1b0d8caa3856bfb437ecb57ad2ba85d21020cd31cee7296909b19a45cd3303247e4e918db4bae21314366dfac729776c17b5852b000f9567018e7d052226b3b28fb5512bfba7c3da3d1cfb0c31c7cfebdbf5a4e5009ef76cb73316f6ab64570d84c39472f85a7f54918e9fb003a293c8d2787ac533b19832524e5956a96722db2d429aa69e15f3bcda7d887796647f913d5d4de4fcac8024c8da8223f62c973169cc21809943114b6766d3179a17c83e58a752468eff1d23f04f05d844d0ed40faa81bed6f1750d8f15ea24b69b403e12213c2291419d04555c15ce8c1645669f7c4f46f4d26ed4cdc4655b6d6c61c18739163c1f6290a5b535601f345e5a1564df056a9519a3125107b7a082a4c34dea36bc7c3d57af69b7bef90e5ee02426b96dc28c8300e1207b7df14c4209ecabac3142b57d059081da49cd4221c1fc4a159a34bcd95149b73d4a9d9d7f25014fc011ace2f814543922e93737ef968e8e20e8983d3793d733e24cda69c6c36436cfb658bd0d1cd7102686e33ea1626a61ff6662a8be36d0032fd6a2893f5386b471028044e5aa38ab71d3d8f43992f7eb196af9057aef710ae149dda63781d269c248a3c257dc21e30c7423d0bf7322e4f87780f284a92930842feb15c3e624d713a4cdfa5fbe9675cc9b1bd36707285ae31038d419643fa959839ebc93cd66ffaaa720ca4c3bb2b109dcc2dc890f19fde05966ad0d648a71e988ab142b6acf0426a19bced43dc0c83a38685ab5f255e00ee0f1d5a7a341df518d5bbd9ddd31aa6b38d129484ff2b93167123913ddf7e11f6b7be7115c07566c4821d12cfc3db5d24591f040608b7b06267048c944b1be8f67607883ac3c645a5746dc107afb8fb4c730929bc6c99b72b701c46602efc3be2dcf7a25c21467a6413778208e58485b3a7ecd688a97aa85f9ae2f0023d551a970c7714b7bd740ca173cf0f787ef7f961e9f97bfa5a59bee561fba83bc19d0945ce0b66883e5288e4099b4809124cea9426e81aaf1fff02d350a2e9876754ebbd6dda2faee542e768d859398db6ba8323bb4c16c0454020e97da1edc2be24ace53a0cdafde1bafb69e8ca06996c132a19ce88f7693391e2fd1e6483a193244f2faf9b1cfae1d511f34348dde860c585ca548bba32c13165cd3044209ce59d10e30a0bdaa68b8187e0fe6361c1ffae271c6ce3edb53e1f9cacbe9623ef5a6dc21ec7ce626b1863eab038bdd2c1290629ad90fb59de197b4f1cb1368a4ecb05bbd0b58f52fd8ee87591c3f4dc08c06ce8664e476043d4e85202a51996f9c0e5ae2c22ba95099fab8447ad3f71aa2aa95fbea73ea99780c8804037584739b3e1d7f9d63335c9eeb7d5a76244ef7afd8cda16c47faab70550ec39d800d51b1c8f85d366d016fc16c51357642d60d21e3f45eda3a7ed0815d7c585096725151d3a82fbfd90b8a609b6f52e0c18e328332cc0de273a5cd4ea3481913379aff1c03ec5de2026321d4bbc4fd13b1f5b4c5bce87a236fad1ed604809ea2378d9f3cea73c45923d9e4eae4e126792825b883f9d46046ad7787bde86b1745127812534955bb6ed28ebed29e65030babeada913b8b605a636f088d90b91d7166f5e914941d4185002b3aa6e38b312d384c24a4312a8cdf22846752a9bebb1655a3fb904b6c0f1224cb2a83887bf218f339d6d86faecf258afd847f73f5a3f80562e65a07a7c9ef1b43fd84b40b55b000e6c3d661e1fea1037e6b80f5478e744e6a6190226f7ba09e2b8bb89c8d720cf36b9c2bfd33dc34c22c1039ffb71e2f4275dc22c3488744c4b7bb7444e5443b211d3ca7f687e7db1023082483e5ca2eaf89a7eb89f993c194c806b331e905da74830bf8219e2ab6dd80620fedb6298c5a772597dc71a274589314632968c82d66a89e9433cdb6465aef8eeb33f0e738276daff510735089100bb9ea86711e5acb9272e7dcfb512ae2c3587f9e199e9a889566323a8e31ff6cc623307e49920ed9b863edcf54bbd740a7e93d2e8ed71ea0c321ade6ef7a068214f73ce8809b0816f4f2da5bc23890b768324f86a29552af095137854319ae2845ce820633457678072748f9dfc53c26c5e57bc1da00a635f2f7f1343b8adfb83bb3c54a78640441ee244b872d6c86699617e6d7cf71eb1cf0b8ca6bbcc89e3f36e0b64dd7b150604b3509974f65f1ad0adabe6dab7634dceaee4586f6628b2dae7f49663a9a25ed5bdc91b874f893d2fa54afdc6174da985fbca021315f10fb16ca6278521c490598c2e9593467b4af9ebeb822339e6feb7914c70ef2a127cf678c90692b1dccdf79c86df0014bd76aef174469bc904918c88d0acf32f5211dbc9ab007522ff85345d41e083ce7e79e14cf16dcb934fdffcf99c8026b546c2bc00fe356cae580623c74a00661d2a18c2364737e0683a1f1dbdb2e3be4a3de06424bfd54b820a30349d930ef2a4103d3586dff198044ca9e59bbe70481a3fcc955952d69b9d01c452990793cf3021f400d2ffc4a97fe248863219d16a457434f3056084306b8094cd11f97e48e6f2d45ae9b3b7047deb2e13c43fa0eb8fc710e82f29633a5d4f065986d66323884fe87cbc66c114026745889c62d254928257e68afe0e52e51e25f337360dd227dba3ccd54f1e99dd4c704c9bd126310e4c72160da70f176de957a340fd481f84c1fca83af372c9fc7f2555baef334614f02068a820cdf2b9b1b440d0b5337f4b4a380e6d95f423ebcebde2b455ff74811ab431b2550fcef6c6c671bae84c910611176e94f0b2815d55e7328804a1ba1b490b7f86020238114a063068decb8b3c4d6ae62f6ef6e8767b934d9cc817fe50470b9f0a6733ad446d12a115e28dbb8b610f01dfb1268625841efa796378fe64293fdcf859f38406dd11e247f41906cd6c6c9cb2afed460268f78b170edbef056fd2db36bb6937ed3bc52bf1fd098af62177ce44723b65ead8ad50df2c0fd89df098dc56cd51d5a74709c5cf1b7a09683817f0c12ef399e83f6a4e8a17126da998f0a224ec2f198ead30c543cf403615f38066e9417ec3f2b865464f8fb1b7ac8c3fc6251aaedf16807ad851b980ad9db62ac0e07d9b856bcf579305d9eb66859e460aa269f0ac69c9e88b014721c906a1f3bc8a1258e04683343f2256fc7c81ce17fcd93395c430cbebd6b0544c11de1eb426927f172a2f51aa78aeceb83aaeffb1b62b66a13b19c0035ba1c41604441fe22ba1bd8b8ea29547599b4e00996b2da1e937de02a58954cd77ab29c68ef2a03321fa2ab299a2018d625de8f65c1baed074ffe2577fa5b0a4005aaf284e7e3bb8d9fc365ae978fd528e0c427d43414b14ad6cc7a28fde2f71d1e7187a3362f89e2067b5839a71df40164c5d5059d9bff06535d317e331961f17bc5800455a96078be095e8ef8face39f58f62f0991ae3d97390da8c69b900cd47d749a75e7b7cfcfe1d4ab3b01eebe0f4a00ae2c7ebbd134e731075b83dd7eb726daa461b7dfb31d3e0f3f9cb15ead0771ec9193bcb899469100dfc378750dd811bd69b8acaf4c646414e5385b8737653eb9773dc9eacb89349e8cab56c3d0fdda5d646c82d2039fafc38b0aaaf77b93d86b7daa2016c0911ee6f46f1044c851176ead85e775ffa9330e904d28bdae0c4820b7a4ad0844765e05f5466d3ba1eb2381284c3ccf0de5c31744acae33720f05b38f7cb099262b94f4b025cda69bec27ed08c49b0e113f510d2c36a39bfb013654fc27f8802f414f9b894d4f9673a6bb03ea26b5d4959bd69c08aeb2eee3a28ecf78c61715751e43d5a5f6d8bc5ea7a70de3571d16ec9b5def79e3b3e0fd61e900d98bb0bcfea8e2c29651d9edd613693dba51b0eff6f8dbcc51b116244f1bf4a14c5ae484fbc5189533dfe011c7e8b75ac8287bccf269f98f2628ee419354b02bbdd9825b10eaeb0dd8d13423ecbab0425c98a1750f3c75738d27202ca4e9b9b760dfbb6fe86914b7cd3876800ea409b65c12dc01e2d81d6a2584332e63be08058566543b064bce5673b7dd9dc4f69c45acc7650291ddc87d4ae9e1723d51701f3fb3c11376019a53ab613b8b7138a83fc76cac853355a1b713f0621f8cdaab631da8a0941c58c0a934cfcaae84cffd95ff7e831cf38185734972942549b74d9c67beded7174e4c76d0ee55148443e785fb73955a582e9a94a14c621d6d6cca5b9f270a84b030202db41000965e0ad66f5175124f211064a2af0c36591f16734641c87af774708b7b7b8226320b34f488050fdae7555e0fffd1c124986ef03d2205b4b809514e5cacd34e7d0dc8727772fce98e0e975c64ec8258e22a94bd2d085a6c808c8fc421346fa7b5e91c8287df545b1b3589a9073877c2cdd70000000000000000000000000000000000000000000000000000070d1113171d +flags = ValidSignature,ManySteps + +# tcId = 10 +# signature that takes 5 iteration(s) +msg = 0500000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 604ef7c921fdb209de3a95ad6c032162ffe69ebf86638fb7e5a2a9eb3ba4b68fb7667f6b5555d000e4ba05a2eb6a4d324b04311e4ea01824c1d6cd160802ffa20196ff1b0f0c1789ede25d58bd01930986817524beee3d93b1fdcf85a3479c7086029d04a3ef378a8d4658310ccbb441ecf9a273a50a7d57d2a58087fa0c97c0b31b9abd8246b1e9d46e1dba106e5f1b5682fb9f8c8c7a8a170b4f12fb5b2ffc08514d7f68dc81d9005283abad65299a75421ade87ef90300d9faabf7b9a7ac3eee8abdf8269946b0d3fb4cc674d58ebfd99377bd39f63c54313995ff3ac36e8753637534b8f913311157a149db56217ef758b65afdc3bdd7d2aa59ebc42daf9aa027dc753f051db015a9d8b6793ebf50094dea5f38ca7c2824936f96981fe5c75032921b6817b81776e28d18485777cf6e96ce2a57a9663d30d804a2e07e188b77804eb54aca4ae43f3ba71a3a07264a1a1aaf6edffdbbe37783e11ae3ef0b3e8f5093c1c6566366e65c5bb6711d706cf64b1f579a44fb3a267cf962751d66d46c0208d1705d535debc5f969c519ce415731ff49f93543b56cd2689fd1f94c57b6268afc5135c3a92eb3856156b4918e79bb690b99898cf5a213d63fe0a1d5aa3512282215691baa6c6da5c952f9bfa3d11c4cdb1ebfcde709e5c3347fa6d990e9d2d805d63bda508ea9e3d4e0bf2f5055201936dcdc360900116309970ab4ee0e943248f021e2acfcd4d7f7696dbe33beb7b40d5deaf042ec6cfd50f45d65f94812870c71e3c2b61db121f634cf3fabed0e48f6fdb63e7087d2042a1bac7f2c296bbdd70078303f05a7974e188480d6cc1a777576597afa9429c3c3cfe549fc41887993f883e4d823ba74a79075dfe5a3a26d794768c27436ec5f619e3ad605cab8c894e2242201f4381d7ab1ea3fc346ae17e783e53c95ee2d9bed1942e5f3f9ba65277ac7a0658faadf48272c78a8c9e38d6f21be59b492f4e0c134d965dcedd49b0af638ba010f8e2df94484b97094f63bcf8660add7a05149fb2c2753d06bdc4196e2c18d7ecdf685358ecc03b3d67b496828881a8f00cb16667ee52a969ab67f6e2645da8345d86d5748119cf28401d369270c7aafdb3977de4ff328cb34147e1f37db7778aee3e08a93523cd5ce244c78acca1e2a7b1f6d72b76fc86e7457e9de61e473c605a305fdd5591c16efb499c5e5ba83831d202ac14222b802e8c9941522fb0029b43e9f1cbb6892994382230456e899d60655f9bb29fe10811098a0de73a4ff87da05d0edafc2fd7815fb1d87edc40316ad7ac11474b68b013430c4023924e021706752307788f0309f86548f9deae7736431e98ba50f3d66b3036111dcbd1f28a51c83b1582fe61eab90efdbc9800f2493973d1fcdcddaf29b191094c67cac62dba01ae2c82139e65c29d11b927a3ee0bc93bef952a77c6dcb94c081ae022bd2d70629d630c7db08b0318c915cf123416d6633405703bb670694b4932f716c67ea181f4aa56ddbc781094029837f335205bd4eba0d3fb0e852d4a80e98ea119ac6738af8bfed0bc83ec0cd4b01cb75e1fb73f790f265908bcaf0fc3f3ef3549c149688ba16fcd5033828b2ccd46e22316bcd91e821231111b9869ff2257e996dfb26e9ad93850d6b607a5a5d197bff5620fe753f5b494e21e44d8abd5bee41ae8c81f8f7d0fab317c347e7d00712552610431242870571ec6fe77c1df51f7f78c353ff85660b196ddbe065c6f361a9c05f380eb18b50fbe0a0daa33cbf70d03e9b399e9bf3414e4eeda59ff295a6c5aeb40b2b458e21f43701e625a93a8b047fb221cb3dbd83a86b03ed9de58acd816a58e0dd571edc95d145564fa86564f86aca2c61f49ea4a736984ad58fdb02c0c105843c2327ddc97822d66667b9188a6e371aa5e09110b6d72854d0903d432c51f13b4c61107a7a197602e56b8dd522985af2ca20af824be8d503006913f6537fbe4e288c684bc82144c6123e253e8989c59bbfc83f68a9a8ac0061f2d5d93c253d2ac9328dede266eb44b1f5f9a868ee5052fbb2476e11f9751bda60c8af5f1cfc6e8b9e1bf54ae2ccbdd676e3f5158d174974fb0abccc3b47c1ef353e12600a60005a8732d267e33b0a3ddf7d66e2494e6afa3c135615e4183b3f7be8006a5e2c3ba4f1d948d1b34a320113faf891d93824cd38dce7e0c795ad623877839964555768ab7aa776cb3ea18827a752ee3e7c6b025bfc48b8e8c99512578d2504a51fe29103d93eaf7728652dcf75caf53ec55ae9436a5d41995ea9febfa38c13299f22acea0f59d15cff0a88a4750ad68d2750fb8ac550459e2a954141c5b9382e2de8cb83926f2ce102d4846accde022c502247259918bf44caa8f43c93dafd89bcf727548a9a30e553ca37109d85a6923b42eef083007f258d57b1fce21dbc830618c37257119592b8e8aeda65a98f9cf6f7287a53a8a2c64435c212a1ee90f52ecb9381b56d67592395dd8af5325a09f643504adaee45be117dfb70d92a3ebd78da21529b3d0af76eb71b2f13dc3e2755be1df35dac40c0f9c1f37058c249c44f09a3a2602017e7110760654f7945d5bf653119e78455586a6405993ec923c28909eb7f398aa02f30c1c06b59be51b9fa7645bfdfca98e18793b6e09a89e9e76de835df9a0126cc6ce9973d2bd32029f62e7026df3a03e9fb4ff9ec1b3533eb43440a290df0216b6a78d13d40b094ebfd3797c85514c9f3e57f03d4499ad7e5b0d3f91febdea51738a9c0bedc86df1c80b90864e3710a6c3d328451f3275c04c9702861ff49824d87828bbd5c1e16a7ae950ee2896dff2b82de43a937e31e2de22d81448a682b70c7cc8a71493b08a95ea8a034fcc5cba59b5fb09fd1044b649b192c76a9621fc329baf425c34c30285adf948587bd2757d733a7ae82bb7c71404e9672a40ebd37acde5c0ceca7febf2166e599d8efc1080ea0e9b5efdb3c1a3b54fa24f10c4a706387b7381bf094265a07ad9c85f18cf00d92c66e9257515c131132250c007fe1a39ef05529243797a96370fc51d5db7322e447d834fbf7fa09d136fef12dcd31c3cd5ca35616d92342013f8bc4d895ad00a27a8e641084bd734f1617cbb0f243fa83230393487509c6041f8122c5b0cea200aed694ed603f104ab14b462c722476bf2a95126c9f6bd9242c5ca6a264572700850b33e415742a31cbb85adb1ae6e6380f059441b898d5bed3d64a9d146f3fdcafd788b9f65497d6f547c15b652bf70844848dfc003700c2645381e6070d314b7831b1e429a41754b0ad2fdd71348217f35711c56271a6d7bb4ed15a765d06ce3f970e4568f1ad60af3df6cc2e385fa55686d3633f3c82345bb0c3b539ca8ff2125fcff6bb5a4e3010e68515fa28bc1945a255ce12a391e0e4ec77ffb098cbbc2292696805e8c4c3978d3b4863a6cae10755d2fc016b2a9ec2ffd5c8d3c5ea9b36ee622040e189c2ce167fa90d07164d70dc5e5d3cd9db359dc5b94a4bc7d6619170fae9ec1a82996e0b75b6902ad473255f179edab1b3ad097ed71bcd873850d2e94223c903dce00557f616a48661ae937a402d2a8a5e1f1f6da8641dd423ffa54672bd9adde84ef8798ba5a8c79b56dc2e6ff694fcd63722be9c9146743bb68bf6a8e0d92376848f39f81bc4e061bb8cd63a6d7707985a95b699b37dcd5c0da66ca9b8c7912ab45c435034b3b629d3c898f7d979124707817548810f07658cc72e82af5ee86c28a89bf070a80d2050b251a0dfa75b567e7decc2fae12b50daaf26326f30ff072c1d509eb59c0e523669264966436d2d14bdf2538fcd58495d80c580d6e3343e9bec883033c7c32fcc693eb123383ce7eb2ee5d5b1b09ceaca617346754ff30fa9cbd3e716620bc5219a56111aa5dd6d0de5e3904bf22839b0239ed994dfc7e6fb6c2436a950d1b925fa975f57419ef7d9c3cdcf19cee53044d6db371d1c1c8d0c4eeee9e4b963d197265c42dcff55c5281a742d696292ba462e622429ec0b8dd3f6a8479f7a1fdadfc505d23de0777155fd53e4bba4e2433033c88ec9a8578d9896518db1d1dc30d23c5b82b5db14039cad18389b5dfb6015003ebeeba0e2313045ef1cceaced1bdf0e0721b8fe6a636f983186c7f3c559377e88ed149435bfb8af17e3cd1ee277b0305a1717a0964b0eee875756ae0967c04dfb051933c5fd706ea2ac35cad984553ec63ea554246a2aa10266100ec88619edbdc3cc72b14f2c8a12504336dce5fb00517ec36838a5ab856ce0929414d3962795e0a4ae7dc80031bf5fb732a092109eb3a119765d69f4648e0e690898608176f8233bc010654e01d12844291722a4f195f1cacfbaa5b4ab674cd96efe868c377c577eb25f81e44977c928780d49ec3e52694e2c9e8fc26a8cac64bc927a9cf0dd90f36c11685b172c10ad7d9cf9d0aa4ec26ed6d982c90d7e97123d9cd67cf17198e282934d0621702d22cef8846c2dd4b4c639410f3da93287f4c1929638d1d624be1ad01a8e5364853556ab837a274b61800a723b03373b3da771d0949875ebba692f0baa606d70046c841fa16f191702dfac9a48c8ef9915a0057234b5b6999a9f82b424d6b6ebcf9101c28495575c1cefbfe0517303e414c5b5d8ff70f30649fdeeb021e3d41476f93f300000000000000070e18222830 +flags = ValidSignature,ManySteps + +# tcId = 11 +# signature that takes 6 iteration(s) +msg = 2c00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 55248b18f7b86d8cc873c73d809b0453f5db7b7aa436797c77fa7cd51624c0a8d924808b8166aeeb2cb3c2a013d1529e21e6b8a4a7ed13caf47861f90399a17277953e2505fb1fd03b16b5d1e1e045f2e56f30520d3196c1e54ae84bffd80cb27b3f0d11ec93e3522d4d3f9b66859311d3b448412816745f34f4b07b8e593be1bc747f4eb8e8e20b9addccbc4db5fc155afd4409fd5c8e23399cc55bf67bf9c4614a44f1342aa58f462489764491233edb1bb8c4084fa605d39028e7ee7f8e44dece7f58a28d09665624fa0e0b5495a43b6a623bdcd0fdb6d0567d446dc6949cceaa15cad8f3f3e6ee63de3019f6f5df02bbd7ac5ea6024f4dfbcc7ec4fc9d618b2cbeee7d72cd5837d6263a1df0f6bed8708d66be35e474783d8f39cb08e130d300fcbf0767dbb4c6f8ab12dde570220f1abed2bbb029d80a927c51620d5679e6a4bcd2d34a4906ef8a0b5f7b87082a57b701879a557a989dcd255a2a845f2b7ceabbe05e853c6a36f8b3120b61821cf8e557a4a487e5065be0770ada01fdbc64a607e19b975b3f90835acb28a023955a713c6022a593208cce54a582329e0890ec4fde395d5eda4da6ae5f17578aa1552c84648d7663873a7093745b7550096d5da5b8aa25e9750984f74d6bab5fa9c751bd828f455a4784844cf8db1681b47b05e5f6c60364bc647196134133db8b2d672f290d37e238f562bdf52e35980e8d94910829ff7170bf403a29f210dc42e7ea1e2168c5d04429efd560ba9c11b21e9d8f081503b861e2fd1d832397bf069f699221199b395015b2e79808be26c9fbf6e18280c3796f29a1e0a4be5cc9901c6b31c84fc69abf3bafb07745ae08fd4362875832ee768c378c3e387dac8e06b7578d8752e3ab4ad161f8952354f1569288d9400f28603b0bd7e239ca2de916e2718653673236c1c3f172d67fd9faeca57ff3cddba66f0f589d297b49c311a75ece1daa7230316128f28985210fd2f1725ef5b976ad67dd436902c7fd6134870da02866ed96ec997554a684216ca9574264efd28810f59883f5f73df115024d56871fe24d68b142bf5906fdf3d3839660ba7d26aa6827f47a05c80f1a62254b6cdfeb55de694e723851a3c2ab89aec1e312c7647b1b66acea5ddb7ae62ca71c4bd5592381761fee9d85c38f2f42f54f947bb3d4ee340077fc86cbe19af332c96d67f8ab84a1f0b0f039f5e6b518c9f9eed9edf2a88dded19903a0b78e17353fc5e1485cc722dc9a0b12501374db57b4161a12852a45d160ce3a21a44a8e37cb8dbac3d3a2ae131fadcec0063ce5b777df45b67744609da238f53aff0ff8e1175fb11a22fab7fd016c41f8aa636aa2ab7c4508f445b01852a9944277309f7c77d1f64048dcda6206293f89f914152958c1ceb629d7991589edcf3e40cb7a75090cf48c55f1d16b98fe26b55d31dd860b31e077af05012c8d4a9084647741f6b0e667110e9cac2dd031c1e82deea92569bbc8454f586f415c08c18220428fd25fd0e06517cf89ce7673961396f992a0f395eac5e3ce1b81a77a78db440039ce36670644592d36d43e1f0338d8f54fbc5c97c5166d9914d4837e7d005269529072c6b34fb1e5e8ad177d8e92530395896584aa3b587cfaa74d4effe70578d64c8fb4e4920528ab0bd4bcbadf344a148c1ee0c77f28dc6e605f60093948733fe8caee60766678580ad00d685d932ab692e788f37a54342d0047457cb48efcfd994c47cc57cb4abe7aca0508f3c5551c51d448a111ca477c16a0018d1758599405ea49efa618a164d2220dd714ddf9832d1c7d1830d93e54ebfe9353d5a90f2a255ab1578199c3e379aa4e6acf2ea07aadfe7c8b2b59a7149feda9c35ea80db44225a081a489a9f2ca447e6a577d87fc46931e01e41b67485fa59951192ed7949913243922ae9d2178b24eef6c608113e8ca3972c705485b3008cdcd6fd7bd112c13ab780214c47ce1d7141f00a4c06c6c8f9ac508e01c345a940ae26d374667b1afe9c89fe5d7ead12a5011ab593de9b4f5bfc68498d2e3dc6d1cbc4b16f7c36c30e2f1b5243df73230f4b61ca4f9507c0c2092d7eccbd88d3129db25e76ced278445b7bc91680bcfa73c89c84623cb32e5d9ee335be23af54a54226b1e7a542e75d6cbf16faec7867cdecfebc5483b4b4bf50776f87495d0bf6c596e382c859020556670d70af2272f816b3881aadb663eb91ba95f31dc17ec606d64a55f44c12a54051bc7119fa3af23ccb55ecc9dd0875e8aea1da93e78c77096c9b81c24232a6f64aeb949e65f0527fa9f9d86d24ff1167525c5ef0ac2c6a1cdecbe5c98ecca4958d07c80a5f41b2a645fb78ff17828210ed843f3233913a021a7b5f187db60476fe139b89217a942da48201f3017d704a9e9590800241501fe6526f0e3e05af68c0a4936bf317375d39e19d502cdc938072403516844efffdac2a1758c2ad1ae29cf8578356e666b5f6b60e9198d847aa0c88a903759418bc0ac2eea77802b2a41c514bec3149bebe8fa0339176b8380e5b08fdbc390e726167ba15757842c4c9a8d1a8377811f9ca3906640bb38bd3156dc2676eaa49cf6a4cc90635da341be52dc7a7b3900ea89c697f450b6dfea351cf0b0673ac50c72d7b2ed3cb45b06b856a41c3603bb50dee0ebe272200c6e48a33639bc6369963909c6ac67ada94af7b03dade60927f35b97b27a5251e3819c71372bb6abe636966323f0abc04e26a699c46fd8eaae6f3b4b097cb40eebde51f6df2694f14b7178102ca2448e3389656442febe8ddd6d663710f63a8234fa6dfb6f3a9f9d0f69042b59b58066197ba83536f4aaaeb4d9959af819b40ab43e09e140e883037f5e896a5f747f0b70083c4c720f017a021a12746c72e231ec86d684a99fc85f8cb73dedf83d23f9aa6d27877666670481bdd97d428cc1eda80e4c08ef00353aa4c371c3f938c766da833a76929d9c78b34f540381909affad1cc12667e6a8dcf644b51e968512d80017b876790e58c464d222665502c2d1997f67805232d6e6af2b868a801a9e32404d30c02b1fd8ea671daa7e97ecaf72addcbdcbd2f6be3794ba20d938a8cf15db52ef323ca6b47b644dc93d82508249411b9aecb7ae10fde49fa1b209a2160581d62c10962ad419c2b82d553990b7583106d153a1ee63df2a283484c6a0ceb2cc71919d00990f7bb87df0e6c4274fffd98525bb325b495d860323ce49a2df510c2421904f4bd3afc9a45a9ba84ceec0b8de7f77f14ffca522b424778157bbf0ac8e873f05837daf02b9b158c7853a45f279dc5238d202403378b8ed8fd1c69ed29fa4e5eed31a2b803cf0480425bc7746bf39255810e57bbef7cef25686c0893271c57feffdfef6346552e269f661a6e396ee399ab69641e7ccdc87e1867fafe8a754d77c7c05e49196646b21b06bc955b4ab287a4fe3d0749fb65ac042408513a736e32c382f9c81a6381d03c7af37a54fd3406f278e4b4f58b98f3202d7340933af471c840c0379cb11a3afa691d6f50ce50c20b02623b45123b75e8c26b64a221b5c36f3758050870413efe61e0d8e7f7bf77424b3478240990f9333f0ccae39fd1d782ad05bcd1aa05b0b6d58fad5766d056a4587ebf5e848a8129e07bfeff86ff50547010d4378b9b1f565a67207be7571c8f330f03d5ee6edbe06510918d7e81aa916cd49184098c99959fcab3858e6bbf2ddd62571be3869bc1f3d7e559c657319198ba47885c7da9e350f26b4e25c17d27d55bfc7e6813b6c30cb1f8e59cebc5f044e5d41f59c46c317d7020c57e13cafb8931049caefdc3f296c0363af7f7a89ebe18c0602cc19e8dd4da1bd14f296066183e80c03c806255a5767639c1bfca3037cd7efae6da14cf00b33f64b1021fc0a690a48abf5c6a781560a86d7501f8d0d05aec20881d23efa9d43747e30b262a3c4e3da85283cf5cfd94cf4e485ea56ae0081bbee0a9f41a333ae2aaca92c7dec0a2df94f47587e59fa21f80624a16e6b449194d1279ae5ceea47ab02b465b8da93ff50389aae3de69f5fc8a0eee992ec43e08b55be7dc9684264665dcea7ed4055306a1776f531d2a386e2e839bcc4d6e47640927967dc5c2571ecb8153827c44dc0ea5a60399a4a285798893fc5e9ebf74dd4e42575316bebba6173065e6583bd69d7f9ad0b8b9c6930c1c4198c5407f06008c9d04b1002bfa3868a8f7ed20a1bcdb1bf75a80bfa5cfff2a29b23e3fa963c6d7618c772538d98355d82905a66722824ab3a2859370baa9ddaa4f4ed6e6676528275d993bac69f66b4efeb8806f65cf8491e61879f0dce6bea760e2b3351a24b0fd65857c5aa099954d42ee9975b7c32b831d97fa862fd8278450d8ca34bb65a23758acc6fb96a81a30f1f28f85af5ad8c7d5868ba908da53e8fd0da4eb182a3770b68e2d72576ac7002ff348bedb8eed91f96af6a6a46b99e5e639845b4962fd98cad0112d74a6fe57fabb250e42c136c34a199e1923d2fa1d1e16abf8ec661c4f3eebae21627ac62a8eab8ff872c769f4b8eba495cd16d73b7448cb0a205da2c5e78c85d53cd78bf841cdd8f94cf16666615314fa389de3a5b63a3c05b8b939dde0041496372758fbe006caf4c718690d8849ae5eb000000000000000000000000000000000000000000000000000004091114191d +flags = ValidSignature,ManySteps + +# tcId = 12 +# signature that takes 7 iteration(s) +msg = 1200000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 577e0d1047704e02b4ed8653dd7a36c7a469f50314399d9b1e07fdf02a5c8a6071c4f2df79688c1a6d32ae9182279c76311762aebfb94e9410d1a74ff0191784a9d311dc970ffe4b51834e9bd49bd21dbb47817df5991553b6072dc547048d58c7644217ed1671c993d60f9882359842b82f48c619f318ec138842e4049ca3f0592bb06b14ae50ecbcfbc2a6e7c806765d404bbc5db8afa7e4d37f3a8fdcfe9867cbf66d1a971540e04c80e4a2403a0c9e795cc457c0cf1cdd7897843eef8f7e1642b3a9b7f4687763423ed0acb11270fe0bf01c1fdb0077787c591d20f2deb39ba6aaf3f433c3639a6ec43e314d212eaf1cbd4598b0bfb0f4f778f86415ca66122949ce3f101c667eda97f8cf6fac74d92472ef5fda6ebc1383a6d04bbb41b0e89ff80d7f0439b19b1bc570d8e29729b4d1ceb12648ea7ce092ff3311d910bc3495597f40e191ccae4513da4f24d88d211473468de354f1f03be275da7da36bf18233404f9d6f401bc9835544b1307312372a88714435dae593839d8706d74157a81fe8b744fc6a59c1e05f49628f8d39e0585c1ff156ca8101a53d4e48ba22d99ac7aa3f5e84af66140e57dd068ba296a1850581f6156671bfbe983d17e0e16d89511791b5be7350283f1cd100b9bd3ce62b607d00f3ae4174e892b175934c7c885c5c6b2cd3c533fa82fa7256cbd0bf9b53d009196c49d87779b855be3e97b4ef3adf68f02bd3e19ddfd876b55f0565d5600780733bfa95d58754fe7155ac413d67e9d5b5819c66140c15eeb622c0c8c8e15e05c79ef3c030de87a94f5601640f3bfaac0c961d4dc03b9d313097d20b83d27fb9e1b028503a624db1fb862bcdf7996443173ea1dfe544f285c4a029b6eefc5ae70ae3869ee66d220b89f83cd5879d2002866ca765cddfc8e499bc926dfd08cf86888f957f57ad2273e9155aa00ac4b618620953afbecbb4ffc6e93e82b77dfe4f0c6bcbb4e2f849f3fdd70f9644d1d420cfa938ded26dea5fb0052319848456f611f64e5e9a890a0643ca9ab8bf96b0b89864197d75c85620dd76ffdc0525d8872815b92a8369af17dd5bc4fe9519a2903bd8c1e6f844cca5ca2e79fd08d2b66939ad1887e5a651968f93e804e72dfcd6b244a66332e8358c7a39b337c001708dcd088c02c8152816d3ffdbdb323e4c8909e1b1a7fbe3e2dd87c8a985ad008e54153ee21590ae89459bbde19eedf5a23e019cdebad0f9448a72e12533616b76803dc59bef6a5e32e25caaf4034b6e3340398e95a797a484cdbf1433041522cbec6eac497d437a8374e2954c35e7ef105b45f92418b674694180e3abc3903f9a865bf24138ed0f7b5c81a8e49a39f11f3f81109a4fc9b1ddb6dc0d3f9697c4ad3d178b02373a46669fc8b6c7fdfa07e0beebb47b5043bab910190c1b5680a5e49ff786ffe7e0aa243b58c5fec92c148fb48432d20c76c88ac3b4592059eb414e2bb9d50c8db83f8003542a1a58826dd0d91fca351067c13917f817e32a438c02de1d51c3e2817c280f370a96a9145863a7ac1b6a1ed1ab640ae1acd2c72a05928b30ca51276ab0d3858e6e5638f061219af3fc0795a54d7d81c368898314498a6b279ba111c3a79514918adc6675b279a5571a3c7a9b9d79d725e852c2204490230a0270f00e758bd685885518bb15a456ed6344786dbd5c4009f94f04206e87b51d092aed1aee3473f8211a3ba22a5ac092a53831f37f4d15bf0937b9db11336018030469aa296807e6a5ec829c8b3fb741cbf0207692fe30b1530d545a56a48fdb5b3f72a8f158dcfd4808e30ea8fd7e2d6a19669ca7de2d50015c586dc17a37e6835685e691e516e517be2021a81d42f0330e29e8114fd729dc1aacef69e006f87ad74b0944eeba1687a2288607a3ac930c106049bc7a9435d548fc275b1474299c7bcc212a41d9847caf8def2ee7293986c42af986c0cd28ea70e56993876aeb3ad7900e84daf267adaaf5e9df3877aa1267cc99c7c6ddef01867a17019cc013ca1a921a319f1172500ac75cb8a200df0e38c1cce4054f2b0fbc98f76d4c7b61d6ef3a54ac0c42eb2c9ed53426dc2fd289e71f0532a026936629b6eb8657241b77b94d6ae11c54a9bf5c7ed7772e7581ed16607bc090c05269052fbfcd3653a9cc4fe8d0fc0692dbc497344bc73a3e9044a79d7dee977168d1c1e462b03da281e4124deb377be97b286ad5a1e1ca93529676c25c7601fafbc3cad171ba3265690d6ce37b760d053a0e5adfafa070becc84b59c39d401a4b3b84b80c55a9260ae2bb510230c8ac81433f466757affe6c55d6b52c367c37eaf0bbe5134a7ca5f1aafb745fa9025ed419e9360d1649bdf87696033742cdf7a6804cf88ce19c7d0f33482c83e65aedcf0e3da55b395198579a02847899e5778fd5369a88d04eacc1de1ed23028c4de2cbe5121a6c65cf648550ab340dff5b49e51e9543d6711ca1c3d26a744d1949edf649b81b7fffcd663de4532ddd1e7c2837d6b30995029eca9b30c8e2a00dca5a44fd603430daadadae3d4ffa83fbb4c97a373993adc8216638f0203eac09be5ad7f222738907a1c2b793b419c317bc0312723c0e8371cfcec8a13065df31978751df34ff3eccfb5b37315fb66a506083e5813295373c048b182dca86876528209d157a44a739cc9cb99e076d82f51885ead7933100d030a3a7745cf81cc36639e50be9e067b09a2b0015a7b86446256fbc977ba87ef6ee700528e751d5f346d6c24308403107aa05a95cce61c1e3894a1dfd97cbba4f3a130dd491368787593cf353d3eeffa56640a3451cb9eb207c19de0edd3fa886db645e260618326095e8ea93a1092183de833b66cd0379b94ef4a1cdf87581167db387e0ac24b750c47e02c98adda5a834b9b00e88d9a981aa98bb30cd8982afa2cbd7117236e03a23cf13f6ab2f67dcbd580a1171deef889889daaf156e281eb5a3be2ac914841f2c7907228971981ee9567e18748c03ebfe9d4fa67dc2ddaf865e1abe1182ff33601b97c44706a948f2c0bafa57f3ce3819005b5e397eddc9022bbfef2f65f9f29d86add3577a6fd117139a9ffa190b725d60aecc19370343a82f1f0f584896aea7d57fc092b74c0769c94242605b521e1f6a4cd2fbcccbb4a80745d3f431e1a12beb8af87145b9eb4b0ffd9a863e27b18b07fac43bd686bbf08d040c201ca574baf00daafec8f92c8a37e43f3bdc7ea514f2e0367a29642e2e89947a39c479c4ea940fc3771fd57c37f96e759f333f24c3eb1a67e6b202b459107042de9a1b789f9e9e8013cc3f2a89975fbe6c1514ba2572ed81629e0b418d8011659ed339bb37f0909ba8993475a4558027613efa516e575336d735716ceb77dc54678337a9e1d70b87ac85a3b6676447de69d6bae2a0e19048b70e0af8b767165353c1320612671f17430a5233e2fd95237889e4f11e5fa8ef905fbfdbd09db873acd82420e6a5d0bdd6611e5caa0183841804e19da3cec5a21bb75b91a01a47d7ef749af0fdf3b224a2f0d6abef86f850d16a9d7e0df467f28965c485156fe46e611f311bf59ed3f5d690ba6572228893e95e9e370f022b2daa966b31f41005e184e758b9ca396a23f01adf0838f9987433c87f9b0a98b5c208cbb57f66014f66bdbe793922333ea1aed91419f10a90d5f18f983027b901e5f70bbaabfcabebb53ca657c93b0899950b1dc2c02f5f6ec3fe58a4ae5816013bd7b15111b10779b13dbee751427673aa97e00eb9175dd2bab020e1ac9c9dab87806ac164a5d8f86217a15d4e75d13fccaeccc0798fab7551bb9ad89b2c804ba49606ac08adaed603422726a9c7b4c5a30bbda9d46004adb1baf11c4aee456bfb369390e82d504d0c300b18608da25086bbbeeea9baf586182246e6dfd6f15e2f199887756f6a914ba6cdbbf5fd5029f67212c406f1b5b88c36cdeaa982149f787e273e32be8f713535afeb960e302b129521ed3bf2d0a911908e7471527e7a177748149ac35e20e4d4ecdd95c356d84143e4cb6e627a1bac0cd813c00985913a148806bf00bc1da3b6d123da765a2863cb07b208125d640afa03dc3f2025461d228665da2590e3cf692163c5061c811f1f1608614d9ae6301794d9b35dcf0ca31ce7f475b085f14c6edd944cb343c08e5af9e9680f2e20656556cd60c2b4b3b10a66e71d0eefa893a88b7d3e789935173c39d4a5d6918f3b41187001b5cbef0cc6fc2b75b2cbf7b4581d97ab046f1d926fbc9a900e19a5bfea2989d3a63744443637de57a27269036ab9f35205a6577191f2efe1c01caef6f26c697fe06e7fafc6cd7fa533a76cc3ba9a2ba2b07bb2ae7cde729eea9b5460fcc9dbe9e1ed7d024668adb632321b2a649c2b285a19e2c5b1f18102be86f3181c0264d262cc55b2f2d60ccadb6329f19303a012ce1693a474d651a14148a0179855cbf57d149aea3165adb2bc54a53452f4faaa758e7961c80ba00dae2f3bbd08ef95901f4747d6b36561bcbae89364d090ad6fa9fc37287b5c901bf19504bba36f0a814634673918b1141b49578bddffe2b30331db1fcefe1bbca0ae41ce4f1e1cbef7daaa22929300404974c4db0b132f5dd4176eadb0d02e35555c5e5f6282afd1fa494f6c82adb3bad3e5f4fd09222a62bbecf700000000000000000000060b101b262d +flags = ValidSignature,ManySteps + +# tcId = 13 +# signature that takes 8 iteration(s) +msg = 0900000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = ae6b9da548f432f42eb2f2d6fa196c10500fd99674009ec015f6c5b2e5fa39218f361eac40652d671454bca3ad7e179fe8e44aee00e1731df3d0557e2f6b96ea805a7713d82fdd1ca369c868c10654dc0b38916a1559517334ca20021489c6bffd9942aea8c7ea9354e42d2343c6700422c97b882299909dc15f653e6d69c44bedaa068c129f0743b6dba58e0df1e30c4db0df591f75bef4fa209cd3b12b48a7e3cdee1e7e4c54f719ef10611aa4d2a668fa6f9004252eb8623f309069d73b46198ead952e30b5d2971f57d7c983a098d9f7a25c8117e2601d57cbaf36d0434ea72a11c2214c170e0e0db7431490ed801f850002b2f959eafe961971d8992e4f306745c2b7fd7b12f73ccf6757eab25b87e39b0a2ead28e3ff3096c706305d880df78ee77cbae24791796c05b537531e64e69eb71be60bf60d88c076cf0cb19a6858d435fc333d962a668a979b31a8c96036b516911290d7ec16b6f6fff2dce67fd4ae815e658ebc39b2a35666a7d1fb2444c905bfa913bd77146ccdd33adea9bb35ad871b8c97b9c2a836721f967e62382bd0c62073fe60b2d3eba75734ef612917b1f7ab0cbd34843fb01029b1b0c499e808095a90887a2612411d6cc8f85020f3b903d1231f5ad3cd251d6925c3bb87904186fae16c0421144eb98cbf30403ec02f38199a62c41f175d19eea8e3cd6c25897e773005d5bf931b45e2494c7553903bd64f4bbb316a11fba9a3d2ecb3f8fb6dc28a07241ae8a4c755496a494d6b0b9d4205e35a46e028b72c7af11d6190b23a2c70404624fdac2302c509974520bdfde087f3649a241967c9afcc16970af251b5ab3046cf217312ff0ad54f6f23ba940840a340498a257dbec3ffa44532057fc2e4e12a36dfd88e7ec42a3885a6684568af0b8e821b17abe98f069b27dcc045e8fc2403cf1e764d1adc4aad6547139d107f8b77d89f1aaa2d3be24cf480c9e03019c151c173015cb1db490850fae6be852af08df73ae2b98f763444d28408469ef1104f7816257a27a7cf78708dc1e310bc0f7cde56ba7f32def255064fe81e9d78490ec9479b9acf7328678ca8aa3a8008902a9fbc954d8c1ce50aecc797943d3b1ac681548144cbbad4805773408f2c2455f041e68ef7ed757b504981a38610f678464075e662a156c058e58a6c9fca1c5c352dadaa66041bf074036bc3258df98794dcdc64248a4af53cab90d7873b1bfa2dedaf6eed93a594ead4ef4a1f4e843bfff325aa756942b2851a9a526f812158c591f041a8c5240d19603bff6afb53fe8d6d17a69b5f0752e2e7350cda72baf17d77fd96e1a6c5376c358f61cfe5f484bc401aad80a44a8082305bec47fe643f782cdad0f8c1b46b9e0243a66498942ea5cb749ddac0f14c13dd03cfafa9840cea8f012f68c5787e7a48fafbc8c670a564341dee0331387e3efb7864a56b3982012da04abc3348e46eacc521dc9ec86c6a737421d5e7cdaf957137a427efba3a0837cbfd17919c93108ad6ea479a7b41a294e4ceb8b68585ee6bccdf500a504867094a4a40b20d254ac12ebdc0f9952b20d582dc737c5f7435b6de29c5bb73da4b55ebbfe1bb7e0a4aee4c1af9d1781013e082484665964eb913f2fb8c547096e8a7a0cb6b8600530c4824c0b7b61ce65f1f4c04905aeffd6ef705859b19ffa28e88c65d1080c61e6f14f769900bcc66ead17e7f8a6bbb494efd4141f7e158a5f6924646ff7019ff67c0ed0e178e9dd47f53c6585887afec69c41fb40a23713d889141a0ff48e84778b1e6f1112be5c80a6272d77f514af6bc9dd47bc6d85f0d7cc166c20c2b8255c2fb63c4a9a303396592cf43a8de7aba3ec7a0e45470410d8bcd2a01016a326617bbff7e110b18129a56900515a8d54224467773a7a731f28e9bf5a4bbe640ca5aa012f1b4ab22fe14f121f3a486505d01e27b19a87801efa6fed57a636880dafc40a820c73ea49c2870f34bed3b504c2f61d1a61d073957dc0dbd97b2c68dab42d9e48bfe559643776004d2fe5f7c0c7e7e843628ffb368dbc65d7579a826932bddba17db9de0f3e573916f2e80bfe65f1be24aa0370aa1fb9b84a140c3d6f62fe116a88528aad07d190fdafefa49b10c4bad1ecdd2e6168310c346e0143f57099cc9ac8159e003e95158cef5a518195e8e53682e09bbf1d259dced3aeb19b3ed9089be1bf50ff25080cb7be32e64ea027a54ba01811b9fdad60afedbb7423a2d958b90f1a568c413e50284cba2ed180d3df64a13f210a824dd309871843ba5a5df8dc016092a716bcaa39e59c74961bafcad934fbfa1ac73d8e876afb160c98f7ddd27139b5cd3493cd18e08290e7869e203e7e3c5e2a077219dacb8838d3be44fcde42ea5a3e4f21037f1f0f66ad8b526d723c31b037c4c660171cbac2aafefba2afb0cf667bab8936a9453e6221c71956ec22cd70ad54226be512911597add00b3847347505e4e7a412854463444cb66f71eb359d4258c2fd33c5532e4fff22ede008ab72fee788e4bc10c4dbe9dc3172d6406f6b829903d6268206fd0b10bffdbe1fd62895790dc2f0bbe10ccf084605e3d19d4a86b4b64bfe62d3e7a1f43afcfbbaa5ba55348661d4c416c7219be1de32d038db26b8cd1e947fcde7e3a819e89891df896490996cbf958dbd4bbc5b82bb07ed2b83c96a87348fce5ac03f5e4ffb987c02675a80465ba54add3ae26f67da4a53ee326499a44031defa232cb152a40450ebf9fd2fe39f6c18b27142045bf53e844535339b0ee3e1602e499bc4731e8e536eee46d7565be292d2cac2586c2ac0e139ec733f2b240fdc69dddee8054fd0eebaf8df2d9d36f15179c0d05cc309142ab8d30a75a613053a21c5a4d9e1dbfc7ac0ca37168b999646711a61e29327ef73f462be930228f97e563e6b1db0ad480d3d73f0492131f2dbd94a5b3fbb9d2194adfc1a396e60bc2d27b51289d491428219eecc092f56250debbca32182a31fc7ea67163c9ab89191505be15f3abf1fb397ba6e540cdfb3661693b6eb76b4da66e7d9f887d7b415ed946df1b593e0523b41f20cb1edaafeb53d733ef11e0cc0e2eea5a8d4497c82f1c5a3bfa39e0e9d49b3acf3915fa69e4b9ef7b69a7f0825131e6587d335ca66c23d4e54db4075d61ad0e6171711b94e1b647e62a8b9c63c089b0c2f3bd9addf550df187a1b9d7f122278c697b91091d0bbd8da14d3ce2627e5076556cc54d3084c447aacc82f2f667f96ffcb41fc11f5306d2e096825f257f86d55289cde430b07afcf2f8b8123489ef36e58beb4bb7af07da8bfe6dc9c2bfd0a2855848dd46b70244b7d2023fed10a332ffbfe1402ed48e30ea1b3f45ec88d09473ece65064b4e15e62ef959745ebff674e9ea0f337518814d3e9d7aa1c240677dab91b9c0e41e40cdaa5531799f3d240b7dbe702b84e88688bffc56bcd55c6d3d4f936ebdca448add1c8c84c54cbc7412fe201d76294711cd5349007b027fc52d91acf51359dc68e30bf80162450b2e2334dbfc653636ae67070ae6cb23a8fbdbe8f5df9d5d88cae4d515ae6997b22d2ee3eddf2c7ded6ba7ee30ecebbbf8cea56f0ace385b3b4b533f99cfd7f2930783557629bbbcf03f54b5685ef612f4c15f9cfbc3105355214632718898c829133fe2d69ae468cae0a6215d531f4cc801fffd416ab86c4823c8220059bbdccbb945aa7edb32d8627f1f94299e36448a30e0aedad92bef31c17767783b16c818e2d005621b2a551591249ba28005137d81bdcd637dd98169bb6a849ca57a439e726f5ff61001c949c73b5b2b76c1789e59c64c739a6b10ab7fd3af7be25c45d194dd5a961911dd628ab447999b84863b98f53d6b06733c2144549af2e28d1dffab2c147785eda415caf4e9aceac3a018a97f45c2bdfdf84930ea0ed5e5b5e55e328cb44217d89dc5b8592e9f82d2e9eaa43349bd1b82548efb44adb3cf8992de1ddb0389bd7074b0696ac25828dbe1eaa0a1e46e60dfb6b92db42429c01d7f7829e2732cc0136503d4bea76fb98554e17aea5fdc346c7d457ea65f128ca37846e8fb72de28a05079ae802ecf48195840e2a7aa935d817f0bc8d38c4c283f25f3d8b4a92eb7d48ea676cc5109b5cbd651e047ce44238171be96141fd30968e4d71e3ffe7299ae7ec87192ba819d27ff91781ce58835881c941daf943d675d486f6353e7b067becf2ea8d71d08b2aededd6f1045975c74f8840dedb352255fea9f9220b31b1f677a4f7ca415bfcaf3451b49fc7f3c57267119b36ff60e618a70423808f87c7ba2e511b4bdf37ea80c4024aee17953165127a16e88d1f745db529a048175497421716bda17f4af5f28be9d0a5932628aa6ea433202d6dfcb49941d9108ea1b2cd0b4f5d274f35d52bb44a8703651e0f0cecfc7fe933fa5e0dfde92cfadd2c4e7766fbd3a9f214bbaabe2a27c1ddd16e563b9d7539d7c793d00a52e2aa1ada1be432d41defdf6cb4cd4393266dd3211309f37dee5f31430dda1e9346217d94bab66b41f44a93cbd7bd10c94906fc95a1f533f03db5b4b241c7c388f6fc2cb1d455bb5f46017e07468fa7ccf48e1a6763e8d8330528439501419214353676a96a4d405424892c8cc19346f71ecf1fb0d2a2b348395abcf044d64666989b5fd03233978cef4f80000000000000000000a10171f272e +flags = ValidSignature,ManySteps + +# tcId = 14 +# signature that takes 9 iteration(s) +msg = 0a00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bc143b5f4bf58441c91faf8a0f173603ffbebdf13ad89694b29fd3b6818b273e3f54ea9cd7dba3d4510ae2c8f14d843348820d2de5708d79984d05f5496af374477027560edb4795d84b2fed1495d55a1d1f42de240136a7596889a5c03a19a7659f39f9dfd9cfb86fc6e96182b262a94b315a627634ce2fa57f3c1c609bd5bbe27b735e13e133e14acdd1e177ba97bc48873a11ad3f5c49c7a7fe1af5fa10e5dc50c89c387a8982fcf562b2f36af26d05e05680f039d422ef9aa86a5a1193ce24bb88b4b7fcd12440873867fb572cc160008902f9163a4c238396ff943c99505a7b73ceef7fce692be774a3bb5e04dc82df86ea15854f526a2619ab59117d5faba3a2c4acaf2d2d8dc1c5a13affc788e561b1b0923ae96b139e4b3bb55e134f6c2d0a5f8f25fd37ce52ded270d318808c6df359185dcf554a7cd8e1b6afca029c5611f314dfea7e008b1640bc57fbe4a0f69aadb51bbc52a94eb20a7e494db577c04c33c570afe493b52ac0d49702256bf1d948b23e0fa01728a0d7699ce65a2ec8f51c94a452a10f2033b5d6de6184e3fdd07df3fba52836ced06955660ebce4906674ae4dcb5d32f33e87e5889bef909126ff24a9b4b7d51455c19424591c1ebd20f608022236f42d06e90d4cc5e98819fb93fc1b53b8f0f374013271b59ad216bee3101e217a15a58b2f59ca2fdf72dd039c76b5995226a198904ba1fdcfe2685074c07aa60748564cea870bc16f13afc6ae17363b625d0d5b95316a0cd3c4b5d9a5578e57f240c6f8e38ce0de11393c7a2f86b35e50fc19933967b7f51c066b98e88235d459c54d4d1a28d7d194964ce1449081affed934c99854f7092e8c7a6b5b6987d50c1e2dfc4c8b69532b9322c7094c56776ef509030539ed74e991db7fb14b5f676aa7306a0e67d38ad8639971471b578b3b40f35b4ed6d4996de86cd634b1f63948c1a68f056516984e417ea2e1815428a14bd153424445d1f32567a0432fb06a33ac65b861c89aa2f2b79fd911c2a79887465f3ee2220620bffe347bd21d57a25f9e6c97fc7f00c4570a26a9f013624af4d3e24e34d42dbe0fa6c8ab7a85cd735489dab9ac23a1e5fedb11f4c5a98646841bef52f894ba45245442febfd60a66af764efdc16925cdf6449543b49bfe34d3d5dd51fa242e9dbd7ce9082169e56217bb8501947c0d8a4b41f12a56ea30a071d2c6cd358ef952b4f18f417f324331c500e7c056a2d47d0e4dec4e892a0b3b3773bf74ef9769e7d42815af6499a7263719da39a88fd74348af4f53385d76ff0caa71c84d5561b9eecb27e74cd20c46104fe2fd0f86fea87f83ed0213c350d0e16c4e6d8c973c0ff0918e14ca27b97b19a3ca0767f0c213613febbccbca507b0a17b2bd2f042b8509f6c8c38c38842c6dd61cc5cb6772b23307cc4c400f4a43d9c644f448d85abd0b2740c0127002c6da081067d29bcfc1ce1aef5a7e375331b5b9c9ccb8ce74c179ffbb3476b102bcea3e33f947bff12f5c1d1f95df11e5c06f123f23083b7ea655d135b804540ba7a12cf4f23a0c28743289c37b6684b5d357f7a0871ba5f10047309cc4dbea769da1dd0c24db4f68de2c811aa3e2b0c36013daf6b801ded4aac4d83572f4e28f3e360b1e4da0ce26cb98e79981231d2ab7b3eaec655c3cc5e746e7d89b7790ac7aa29404d004a8bee6e758ca9759d272ef565878bdce47c3fe89060450525f5914778553f277227c3bd6f970107ce3b03d12821d09bc7850305446d42665244e3121407f8193ea379c322e0e3ccda4f8c24a1a8cba43c25f27fcbedf24c62afce4e143fd76802cf1bec1e2411c740a111498e2e999a54149509ba83b3d3703e576aad701257df6b969e57c58e4c8ae0e5af4ffd347454a0d101ef50146e565f6fec8e4309225c2ee39c4e0e29027eea6f5cde089a56067262bb297880aea34423fcc1ba816b06ee2bf9bd4732691b80dfdacb015bf005a7a74a486b6cf19d5dea2c2621ddd19bd834dfddd97af99002ea1dff190471a6675b61454408795af44266f438d4f94ef8ca8331755fd9ff4a5dcd03e88661b2033ba3e615edb7b061cb6a2196bf41cbfd4061a2580b5df7a4064ed173810e0d35181b5c324476fd99275d2b9384ee0d40c1cd399c2078ce1f5b622b67ab424da06f5e746b1e8cf7ae8b90244b0dd637de6799cc35910b97dd03ba01521dd9a29cb998803fddb4c680308597095f202631323e00fb85fd939494ad59e34077f1af3caf085ac82043de604c9fdf851bfd162ac152e70f1dc5749a6d8ac0f55880117218a8e09e3bd6e2e2c050fadc9352305ea51d9e6cc073cceab1c2369f0279449564bcdd7fd686c57a2123bea9735d89ba4b25614a20609f6bfee14fd03786fa0930b04e7567dbfb51c408842f82e658064a1253027afea7d4d825d1ad60caf8596c641a3cec52874eef424e63e107863abafbd0500fa0e620dc6fd397d42c541536dece5936a556feb4b8563747008496e4a9d5bb1267533c0b9ef60737ba9d4a0f6e7b2016a57311ae854e55b144412f085c647d747e631acaffdf97410c693d089fdf227ab8ae0318636235f189278e0823eb68db6801ac6c606fea32905d000ef30b1489d6f4d0124d10b97b12f4db0726b7374f8a5951cae97cbe1e30209032b9cadac407cb474fdecd6fbab06b5da028e04e0dd77172239f41ce56a3876d4c56bfb5f8ccf5d819302151187674ef477eea1451a6e4d09371358995c552b467bb216e88ecf78c78c6a3ff4c455c7689c3784d4fdd50ae4250110e39ceb0c2a04e04a3abc1a2ae95ad9011bf2364443ec7773a596970b16d7514a0a7c27bbb0f2436bcf27202ef21543ab1eb1314fef197ee50b4bacc3d8f64bb9a32936e20e0c0826d1af1500c11e704d951824fa0a0d44caf8055f5bf06e8e0ef2f0617875b2d44a3fba8006aaaec6abea7f626f90b5fcd1e44bc2401e0a486a8b6c2f96d76117e70186dfdcc10a677de2888758c6af53bda8912374bfa25bb48bc8d8281970b38bbe2c536f39874347c91b3193531c456974e02393d35dd57596f540ed9ebefc87af562cdf653eb41dc5ca999ae1cf0ad9a2ee47c9f641b68fc56e289844f5f17dc94e3acf4987b33bfd36b1844c43fd2f0fe91de2283dbbd0dfc1ed98cc8445c768a1c25835b9d6ced33d5defb877a7592a7182dd29f5275b0ae7de9954fc000daab005d3289c1d183840cac1832b0a13b4dd5e3f0ec39ef60842fee868e44b946809f8a1879c5a6ce3820b1a71aa6fe12fd19a79376c5246878b000b89aa0b010b449a080a901a24fb8ca8a92c5c2d9d52bc27c56505202f7e7964c04fb22bd6a8812c2bb759ca10f52402233ca15329bd9ea9ec76129f884355bb677470155d3a866727ab923316f271724ccacc23328a07b327835cdba5699f6dd4e29d80d45efc6708f8b7b17d20dab0c0c074e595a1c2565cb98a47c589ad761ab30d4b46c97a1a4d52855f8bfdb2fa59b63778c7b6676c0ef5acacb7155a1362dd2ab49caf6d95b676529da71b2bf6601e7fbadabeeb5827f782fcc80f8325142eb172660d2e5854c21876f1c40d93042b1b2b6e0e5cf2ccdb6f2cd7264ed7c106fdbe63fdd2d130dc242f1e71f5f9b7647dc2feaaa6162b6fe0cb3825136ffaad90b67bb67d2917e657bb8a623a5f550270072d95219ace90168bebecffd3733402fad12f31fc9894ac6bcb51ce94bb88ecbd5b66bb8ed88d2260523e21e4f6fd20d8db7df6c2604e0a659503426ec9b167a884f277a9860481afbecb69b2c8ade9c270d5f6d064b4e6c95e63d6a20e06f59ef800d07261906ea6541e77af7128f4fb3e6ec5932a46b1d1e0580d68896d256f29baa055ed91bd177cf1b1ae2f386382ad95c1da7d7949d398b6ded44859b9b4af1a117ca76cda1399a1def5085111d69fedea3fda8947c0ea3fa744755123418f127fb2bf57eb04e9480b1e20bbf9a091cd9830ef6aa6589df921d498a149096b1637ae5222c9481a826f34d5c5e66dcc2a977fbf141814c274fb2c07b6abbb973456354ed4de863c3a74dc1ea7007890129a9ee6ac41c026bbe9faea3ae9b1f1bc38fec4924b805143c0734776eded25925ab85aa943d628f17d5c4cf37e41197d1dacfcc1114eeedfa449fedd5749de33cf83add605c9d0bd3e32ebec64102b706961a40ebd9381128bb2b430748b5b62640a065cc0874d0092a4660bf00978b563257aaa4fd9e210549b5262510e695f5987369588eec3f6d0ee034a68ecb25eac0f0d9764fe27819d4039af013727252808a6c2507e2da48403efdc9fb1b27ab8b1de11a4b372b2311a939f3f08b16c77bdf15f3ec5a4a916a179ea7f64b94ab37bba8b8ad8cdd03b3a4e929f832dc0ddae5ec0bda1975ffa2f5d89c060b77c88ae263c3e5d0a157c3b2102275612cbe3d26a0917b525fcb759b958d3682550da4d9cb46d8787215d374c126db9da46bca02cc4742bc5ad984718477678b3c1201afd2c94245fb4a591593f38caa53b476c9af0784e999a50e62954fd2fb6bf5536c74a7a9877d9e20598977c9d400ad84cba1899f706d65666060f991f3483a2cbf8fd1294a7b5c7dfee0338414b7c7d8f969bb4ccdee8f205172e30c83249787ceb2030375b7588d1f0fd0000000000000000070e1c21262f +flags = ValidSignature,ManySteps + +# tcId = 15 +# signature that takes 10 iteration(s) +msg = 0b00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = d54fc0ae94872d53a8ec295b549a9754c675028a84f54c25695a3acb715e1a3d8ba9778b3ddaad25b8c487d21fdc62b879f43dd429dac7f5c303a485d0cbbe1e9f65e53ca8f722cad42c27392f63cda0cf5569930deb75d02bbdd3f971f6a9ec96aaeaee32be48c9fdb4969667744489b349bf480ea1249cd516ade4d4b581e3c41103b5267ba72b8dfdba0e4621a93edc18b37fedc35878d6f2bd2d0115cd5c2e243ba4aa02b95ffe6d3ef1f12801ff1ec09115d4255e202d957d0b8666b60dc8767b11f11b311d9d1f0c99f67167025ac9a0ed6c77c319a5d261ca5416699bb51c961d3a077c51949091e6cf0d4cd261224b6a88158d78a45730b6a86b4ca31380540d3d04228cd51c00a6671fc0036b657f3b52bea56ab503adbf4fad1e452bd3b1b29f27ba1e24d6f302ea788a7e59435ede2de69ab30e356dbf17bbbfe176c2182f870ad9a8a819f5b85587d229beb13fc6d4034722b72de83c1613fe434dcdd26c0346571cceb396e3389d08e1094fe069219a509e59ea17381575f4ab1b4ac79cb6cc64e5dc5897645631e187cb4f4ebbf1dffb083f7dea6bf6b4991a32dfdddfa43910bb526b84c797495df6176cd7e5ee6f42ebf6bcc28fa9fe396a8f72668d33db7821ab5ce54b7930dc7a90b97b9dd6b12f5d370bde4ad41955c5d7c1871632fa717237d4f39dedaa0cc4ed74900c688ae91571fa717d5c8f70837b8c27b26bb604ad340c98dd5d1878ce286b1fe4451a20a88a4e8902e3a1cf10268d26dc6446f7ec48a84b8bed9641004e1af82b679cf1bc29c7f9126f8aac9688ead72e14c4fb18292ca507c976408603bde8ca2650e3e50043ee112714692f871ad28305122149f098535424e4f278730c0be7c1124890cdd4260dc32d63db460399f9eebd339b73a738b58c0a008c857853f0df76789428213f65107c4359038fcfb366fb8cd74f2d955e6f2b30b3e96c70d9100c781f1d6031e210b541c4eeaf30bbcb16ac3c7b21cf1093fde4999c8fc254eca328dbbff7c5c880beb3e295d2924f7763720d5ffda0cce07e8889e556edf40e681e6894fbfc49413fd5b3ff232ac029579ef7f7cf60bd6ccd48d9f76263e948049a217f12453db900ad213e7f3e4fc409710fee4c92cbaea422e755cf51505730298decb37d805d1d333ed46a84e3c7659f187a344f5090bf338bcc76aadaa1e77f726b2b11880ef162f5d2812890a0dfd7b9a21f294bf18f6b447d1dfd92d009fbf144fbedf86e1cab012ace0a2ab31401c5f8f8aca4dc92c3609fc263cfcf56ef858446d9c66383efed916ca0c0ca351b539a7b4110658ba425d35b4c2cd1e235ff2c1c0840a292f23e34ca7121273ecac5ba01715f4b0d35bffec379da93405994ea997209efb895496eefacdfe9161f7c69afe3cfb9fbb3b68e105edbb0b27b1d0514c47d8886d58dc00c6cc20612630b0acea51396ab086c346c07206888257b9af5ccc06b867ceece53b4ebba63cd4a374503a524672527ff66f570dac73094f90c6dbd8fdca572a9388d243f63521c681ad8ea17ccbdb4b1bb215acdbae279ae5ae1908bae519d7398c7418cd56d0804eba259ac01a11789d538d848b76afaf7b93fce336b5bdee63d23b3cd6c46dec665af77a8c4efaeb9e0ee1576fdf7aef9807b4884f767d6c3e14c99c14c726c686ba8feecfd54c14a5234d7ce4ad7093c673d1251b353edd080e30aae264037c61ba8540640aa38101f73ae91d788a534511314b0cc0b4c52911032bcd286919ec56507fee54032f79cc1e1d6cc6c88d9a06215e9f3ba38d5f7bc91781e8cd863108300db6adebb51a790f7a2ebbd8fb116596716b1c7028c8cd9c1fb1db566c1641dc732d41d75fc7b8b0151d1daa407fbd0aecfc0fc484b1d43f68ec4614a32a38864d4acef274c6ebd8c8a6450a29d4e63503af63db37d22aced927a24dc40870ea3a891045a5a77c906b963980f58c5ed754ba710257fadd4f50cc13825a69e3548be0f5e10f6322137943e44de4a5b3f48d62ac256d7309e942dd1f3f211c3b8e745f79984dd25cb9c6650fd5c7ccc6e222852d8160fc8c97b52bef915407e17c88cce2eb560d359a92092846bde8f36f5b1894a3e69efff64fca4d6c0c3259aeb556370328a3eea80c1b2e61ba1f9ac0c5bb047a4084aa0668103a51ab97381bfa7e6a6b631e71a91d6191c6983d6698efea65cde4a23dedfca7e6b9a329b132c3865308d7ee89bb49de4bedf2f1b09dbbf729c1f0c53409feed48a120d2cdf57301974cb05e78619c848ded1fe6fe493dfcb581d5bda8ff0146508ab2d0caaef2fb1163bdda0f57da71805e6e53c8cc56a33d3bac12250ba331f380f090d8fd9c29c94935a685d6ca3567f140ca4278970ca42eab4c75056700bad477ff9865462dd82f7bf05dd0b4acf59b238a9bc9566997de3e3ffcb1778d7817b7196e3d1e06efb4c6f907006837c8a2e5117931a3921965db84f51390bf48ce8b54d44c6d8af12dbb6d171d50145178822fb457baa2b78246540fd9a348fd3667fafe1c4b983665d2bd676dab43a63821bcdad0896723b7b6c33e78eb9dd7823e48e028197cf494b16ac3fe0ae9978b369ae4f144c7aa3dcb5f2263cd2a29dabb0b14a442d804fadd786870565b40874982fe9a1f1338d1c02e286ceb42ba0461a73bda8e2e1304dbb98974f7dacec8d90d6385cfef3f453dbd098647eca6d33e028fd6c0279a090e36a068871a1ac16e298aabc64d4e7d66f3e6fcf74f56ec909d8aacf8db5d9af2185fdfe2de96ee568f78f94910be75ddcbe9b06dd7dc290e7b7e162bafb6a3cf8b6c90a8b02e417b40b632d7c0875e37ebbfbe21f2b60535b2fa76c3b1cadbfb8d4176dcb13b530e660bb2340f276d3be55ff24b29746070bde345fe7bb8d06b7a4dfb85336acec4bd02c95b8819b81d1611c2a61b31f185d70653011f7affa1f6dadb8ac5e832659e09f71322a60770ab18c3bf2033da08fc6bcea35c4f3d00b36d9beb7e5baeb7dd63ebce5bb46b600be9fb7674fc4788d72f7a98bbcdb23c49dc6d75d7223dba5064cc5426c781ecc73fc08a975039558ff2041278116ba8a477c9da4b4d9a19433de8709eed7c18a2bec23aa6c2b20a6cfe1e36e27bb4f4c2b0fb74baa624d3e61715aa9f0188c45d4405ddfb4d31af661defb888150116639156a92316f1d77df1c3f25055e5ecab769531bdeb1f5e75bfef8e0b521fa6df84ff2d30544867bd556e054a85660b8515c82884c46f8f6bba9e7b1bcd7ff6858d97d219acae3328daf5018eb671965e8bfdcd1660785e0377a72173cb26c6db4394a7565a91e119ea0ed09f549edf01e9bdab543da2b1372f977cf7402735b5646514627c2fad38370e10ba0271390cf987e6fbe28770961cdf51d863899cc6ca6730788815496ce52e80ccb7a8e4a4b26642db8d652cf4db330b92ac6d96e7d357432dcf15fd831fd3ae65c57dac7e4ea822a6f24744c2512127fe386b9caef4a82f75694779a950bc33c2e86d50efe6254345793458b5f3089df8a9b21268c5d4031fbf095afde2d9f5d7f8e79df08ccd2e6c892051ceaebd82fc3047a38e6ea4fd6372d3724af26031b5cf9ad7529f89bc45b68a25d56267dd55cc4b768159919ee83210cb0c2a967fdf9bacbdf8b91a2adea2c51d73712c8dd051f17c6bf74a0d1607ea48cba029811a24101cfbf6c3951e112d39acb3522f3a38066f048a0ad2996f846258a3d136831619f598b408cb6db93d4f2abc1875eafbc778623ae0f9750995372527397f3d427d1a81316b448ad9d82169ea3873a0b06294981a604574256e9408770e2e6cb4c0fe67931f015d6b844bdef6f703ee80b62517fb81f9c81a20daadd9988f912578c5ae932899949256f09a26dbd44eeadf93a708ffff3d6edd1aa55bd7e681564f4b183176561437ae8685be77acc1878ce9da23b280c1b5b46dc34c4bbab39a5969dbda6793248e0e2efcb56ffcffcc40332cc54924f042ec3a5008b1ed0db81bb1d7af47e110243bf388bd75af256be280f3fc9486fd3db45b9769420c159fd593eaf4b507a038760e72e65c766a120c9925c4cc4880518ca1f810b52c326e46dc489f694e6f68b13ffb669ce5a1bb399bc9d25bd5d98c2842e12a0ed9108ba5136b865d819b1c0c8fa020d3096935b78c832abdc1ad1b22bbc80e10843ea4fa9412002133f5a5d825f86803cc699e42521a6249b7a5a8742b9b214e6557c84609b1fed79893ee97fae0172626a9f00ca2d5f7a7314ada0037ccdb73a294db5235edcd6e5ff7752794c358494a9c1bcd35046cccd6e883cfe07a47f42a9e8857bcbb0d89a388a55553d4dd120b3d30d6ba29192f76812a21209984f4d288355eac8a5f9513e28994ad8780b3cac76eff15b5e0f4113d1ec4ccb20392c282e14dd52d370369eba9eafe0175ffafbdbf72cf9b99afb23ed2e9a52a96db144837e0b83d31c35518c0becb701c8b79ab7acfe308262028f00cc9bab4cf905edaecf060c77756a0d56625b52e26ca4f177897abafc4e730d8a2636ad2b065bf32bc17c954f08868c1d8a8a804e5e00b3a0759a174675a1a9c1cfd0fe052d4a537592c9e7edf3f7fa1f253966a6ce104a65696ab3b6bf0c26727576ef4a79aeb00000000000000000000009151b23292d +flags = ValidSignature,ManySteps + +# tcId = 16 +# signature that takes 11 iteration(s) +msg = 0200000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = b4ecfd11224c059a2731e7232dda71f943490c5d84a218d2cb00a6bf8f96746497b327d54ef0528952171868270aa6cda099a943123ecead4d61138a5a2bb90380865ba0caeb5fe3a4eca46bc8da8dd6c41c5294f3fddd7aa138e1386f8f833c7271838853873a61912813171b0003578a8db71536a98eff4900a138a1848cc45475fcdc2295fa322b21d054791db116b6cb123fba5d51ed4c133985ced556e20590b102a53567c84cf41bc68102164ece90b87744aa46dd6c84c67ef69a87f34093ae127de228416ca5c795ad3c4ba56097119e6085073e736f0dc4cd51c4877d022650f911c7194aee9ff7f13f94c5f73b0886b889ccea790cd13c6f4c52effbad4c4ab89dbfa816b3ee6bc1e84e3b4d948713df5a3baa2ba4a2fb8d9978cba124d214b251a1594f956c5f175d3a5122ea270a085d11f133810f7ac6b07c51b13f02a590f39b50b85c2757eaadbfa802dbba616c1b1077f15644f1e773fbeab05111834df770e31a460d430867f3f0a1e4a77951f54aaa1b04409dc75c6e4e56063a531c30f2e4529f201a641a2a7b682f6d26e9f18067f16b0d619cd7ad06874e4c5ac7f7f508598bcb044486ef50c1b075f8f879e8c7ac93481f4534e6c982ebf9b16f0f83c94504e68ad99c187d2aace43e1c4726817e156e2ae2c6551f9a2285ccd5608c131390058cdf292e6619f7405e68453842d8e12c08d8f0cbee7b25bb4841a9afd520a4a25f92d00fd65852a0f03bcb70c49d2f95cc06f64312fae537bfd4787def2b3c321f576cda847eb14666cfffe2cc61c35139c88a308d54ea4f7500fa1f1b69abbd50e85f6baf0374cdecafecbbed52ab0d9d72ea79931d78d8c86652ebbd30dea1ad90eee7ab63033f4e0efd14622e5e9426adc9fd40847549c304535a5eb562b89b38a2d40d2173bae8cdcf5f3a049c3720db29967c65af8485d12dac3240c803b128fd89eca7f9afe3e994894c4c6112168cc89db5c924de54b346146a917b0427ca196eb5b9668fe698f678f24c4d612092ba8f7bf26475838dc52e2daf146ebd915f896741864b01f7730d02b97b3ad58eb224148c33c016fbbdf1435e3e8b842f2d42d4d427f0543f4294069394c884669a87d9041001413d257e5cd81354926399361196f40852940ca48a4bb74ccf812883eb19a4b404ceaf245b83eebf8f47ac6b0d00237261522c6166438018ad900f6db322d1bf8efd6ef63a0065a1366d93885b2d1c1a13fa37d17419a9f6ff878b720001c1bb16685f8b5932b75d734d3194b9eb39756a7780cce344be03fe5655987d0bea11d0a00e526c7eb479632a4db51d056ad351ad37f51dc14780b4730662b90aaf44ab5f2e305685c641411dd2b400baa21b2b44d723ed7af3ca3758b850675df9ef5bd1707e90ca1c6fd462b6d000668dd625023bbef9a6c244d27557afe307382cfbda0ff068fd228b863164ded33ea50a16872e759302dc44b4f3538a7dcc8bd0f82385a79effa8cf7db60d09bf8a349dce50bad2789cb1829a6624feca1d15505c5f37aa8e3f08ae1ae2ab8274498546b2931c2a823427c2c5200bb74739953a18b9cb96adf21493d4784e08aa0318066ff0b75ab9427b21212be4f09c3413c9c84bd704537c850e30fb12bdd862ccb1dbd1c31373ab9dec930100a07b32d6c6b14afe50e5b5b8fd2d37a90a443e3cd2761e31800cb16e31dcab74c76323a0f462ce7f7320b75ee4c21e0f0306c67a8f69201454c38a466f183431b155080860c641adeca00260567dc73d5065e1acbc055351c2eafc1121697cff2fda1eab331ed6a3908cb10ce16ca8fc6179177e23f9088f17232425b59180542056b8ea61d7ec0e58d8938fd205fa62d7693143d6f0abbc6cb4f41cdbf44dd67f5d7a21d7a0b7536df2a4609f644a7f8d96b861e9e853bb2c9dd828c73146f1e9e20b46a067e48b1f3694cfc44a256b3bd97801d748ec4de0b3f8ba52bc2a8bda92d79618045ee5ceb20b756421dc92747813aa625839b3578732f2ad1d801935718df8d5e83edfc3c23e5a5e15d4684c42d3ebfa42d013aeff74c4ed05f8ef5143409a9e1c1d8f61baf5c9d0e3b072be3aae7ab9c2317f2786d39b108b12d948a0373634e7cbeda1b35fe9ce694a825d6ad5d83743df1e4e4537ef7fedd3b312d56c0754426f23a865dd667e6896a82e6062a1f5b6c8a60d08377d42ec5b43c534e634d9d85f82b913ca10922cd6dbd2c3d7d35ecc98cb37af974a615831846dfe9aacf9f801ca6cbc4290bf5e8d6bb832df0dcbeb93025baa2ebd7f3b4941e617d5437fea49d5f64d78c2e2b422bfad3efbc4bd2572cf6559cfb7001e4886959ece69b5305f0799cbb871b540df18c5c1935ddfbe17c491b9e1e82c2c9a1fee6879617463f60effdaefb51bfe749ee3fc2905a3a9026e087c984276a543cc3f4e7a6948c8d92985d24edde89b36ee6d9b3d7e300936548c34436389f4e7bd055f26a856ef9cc56de2733cde47fbd173a9874b73d0b8ac3a9a09502c2dcc18585810916a4ba6a72bfe94bae53767e55495207c2989d77e0e0f07e707f66a1efdb93c8e149839ce72b31b4e17d616ae0a674cb349c2d9fbb5c72b833e7b7916246c8ce495b3e1d7b199ac085dadfddb2bda88c8529474f245797d7756251344305891b098c711dd6a74d54036b299ae35bee1fe7284c9ec11bd8dea6b8238690bc40648036d56401f26b92584f726de2445030cc9865545447abec4b4e2c0c06681ec5ec0243d845f35dfa8d80127fc2542cc04cff53842e977a3e9420e6f3303f5d1c11d7d09c15fb229d0d432857987d6ee4440be1509321511b8cf88aed7cb27c1d745b672492d183815de62f1d8f69c8581d7e6918f13225f215f313585aa597a3c8876ee67317c0ca184bee5fdcf08ebcbf43d01b0049af2455bad78bc8c28f11252bceec019032e4feae4ed2c5d0670f9c2b6d5ee96055469c25661fbc8c09e1a486013b46cfb0c0eb4774dfb65b8e3688a02cab987923a98e7f75b44261d44c4bea44a0df4ec2b8186079f3557bae7c951009a64cd6bab08410df3f4ec65b58bfb8e31c3659d1f4b3254386d850385eb8cdc19df92f011d86ce13ee526bc524bcb465ef1aeb8f08e809273034be71d95064979ac196d9c53fbac31789ddc3b3eae14d2c1e1730e2f5b38fbc352759c1f573ae742c6cc2b15fe41fe6292f3856c328814f7d70343d3320aa754f162e530e666889fd0187a65c48b42bc2cc87e79d17102cbf66d8564ae5fc71b92ca49b04d1705394ff1e6af4593792d1a6ca5b00e972180857af83d289f6d0aac81e2006eb40a8d790c7dea7e075404e5e28293f4385edac77094f2e2dec38a15b12894787bbef906d12f8bb4657c7e3e2c8767a310277f63cda040bdc68c5340caa2b39b7579873cbd593cd81532e628ebbfdd8794b4fdf82d6c6b20d7f6bf157096a96a5d327a972faa5cab92c442e468cbd6705fc8ee489489cc687777377f87b470a84209e24e18150076a1a462a9572fe037b8a69153d1b7a41b440cdcca5a2d7b4d224bca60c7184828eb519e77f2c98b4567f23251bd3d01d3ecbe70eaead160681053b4a733898d74206bdc25eb6fcec2a65d6a972c680e0aaaa1e8b1e3ff095978213d242c6af612a62dbb58425037cba5209588ccd3c11962ad47a9c4455b98a626f92264a0527a28bda7f47e804ccb393caa2590b957e5fe3527c0d5aa2ae7d931fbdd2ebad07cb69be0d5179eb6c1343b3bd4448cfbca6ffa1597678f0bf6e9d2f81f4d6e3a8a9d8c9686826c86415ca025dcd1fa1a5dcb3ca8df92b2ea76101c484dfb1fc58d35c1386a29e588a6c80538ddd18dc44fe4598627031ed1650789b3d0cc1233775e1d45e97504d33043cb721a6c210d6e4e6b70e4dd9ef000adf591e465e30adf27aaa4d8c255f4523f1dea00e9cf978687870e8b75f05ce4fa8dd6dd692e936dc2d48b410d3b626faf8ab013f7be8910da69ae37d1ad99136c15e0e8f4194942a24ccfd55544ef63e692f1d4e9b621b28fbe8efd22920983167daeca33e0734af9aeb4b77af4cb354cf9489676514198a47d8e6d614a76af5bceac2c32799ce43cc010fd421468f982bea4f56969953766f629e43cb2a0fbf3d095f98257a2b6e3ba76f73415d0d920adf9b21bc102fc53744f661d42a9de6feabe59b2e273733df75be8ac972651818e1a72260bff1098c06c572179f7c5b0c8e5e1c9040baa4dad473f96b71b25d9dc16ae2312683868ea048f85933d844b7f2fb685db40ca89f24231b14249a3872f313c14124ec1e505f14c508ba483e6a4e559c8ec0b3dd7ff0446d14e4fda415ff4031fea1e65de59e5322279112ac4f64664066c4b5bf5a08dc160b6b313496546b679eeb31315500d81504706ae14ba526009a84b7270d9f9ead65398278b6385cc136c69e3e431843439b9a75e8b44678fd38facd65c638a3b1245a78bbbc26b85473a5569c5e6e0d2499d1570203ed563540096bfff6208502b12f107894d767798b5fd5ad7389bf55a6a90733511bf5d6273f570626cbedaf5de00c5f905fc2dce53f0f90d67153492082255889a9ccffc83a1af2d45466e787cd3dbf5f7fc181c2024454c507381babcd8e9152a6590d6f3f5143845565fc9ccd10000000000080b16232a32 +flags = ValidSignature,ManySteps + +# tcId = 17 +# signature that takes 12 iteration(s) +msg = 1000000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 5fdae986af0e453c98062fd46d281750ab398c0d9be681f09d8a22793a5fbccaa0982761e89509ed0427f0ec73c8f9b4b905dd1703132646ec472f0908440c2e21e690e58ad56c3c4da022c2459c059e9a97709ff8327785011f0378c8e5c14e3130ebc43b2481b016a23ba76e61c2e0da8bef8b6424eafb1fcbe6c1a984ce767b0dc9c824ca1f9a5e8896734c3bb2e01b02bb18138ec550f343efb45030bbd2d034e859145fcab6cf42d48e8e6fbc3f9626dbfdd42044b86adf6dc6df412f15f51261373eddfa7ae848bfee57878380aae7d75612b0aec5d8e1f4f8809e14bc9b244fa50e5c345decf47c597d3bb0f5f2f0e6bfe3648bf7c4ff841d4861a3faf7cb09bdc97ffa37fe75fbb79784e858f34ecd2caff2ffec7bb53627f63bf4f423a290ac26439b722e859acd4fa61673deb275b50a309c9a1b07c7513d8718eadeead0703e5d4db41618dd23901d1abb77c6a728f5565c911199e056dff8c3c0a8ba7cdd05df179ac37292dd2597e38e17eb2619472cfd4181b2b4aa6bf649757010cc5e67121bdc70454d429a8b42850c1dff199567d700159abd3b485788ee01d71ee7ff163c4557f688fff928c5974f56cbb352ba8b3ad07b7ec3007dcd606b4ab84d42b004cd2204451d40198bbb023bbc9d3891d17080fd7d50e282a715fbe97f787a794d0efaa64db07c373c257b0770fa0fd8011fd15ae4edc1d4fc69187385634a48b7405e6c1a473c5640d5125c80b60fc5e48d86829625195a3fdcf6ed3eaea76a1577845d26244e1dc679fb0386d46851e80b130da1defc0c6797036dcc65ec7e0bb485d1f680cdebef97f2780d20d8d664a90b844e1fbe6e7126d15edfcfd37877f0c07d483287624b38000c5689e77fba19d1be415da83501494b0cfb15962243798f6f415206f77f3105f20e6dd73887e7ce26d06b968f3eca04b6a49ed9c31ae0561cd1418268b8405cac00dac88ba433b98480734bf981c4cd74192fdce032c41ba9836088b9e0acf8dfa97c085cc60ecc75f1f5b91738938c2a19764089ed9d81c315c1d91b7e3b1a6d3beb93893e31ce32f97e8c8b837b26e07b523cd857edaa268ede52e0b44f3e54ab37d45d53079cfc5a58a8c992d683a37e9dada046557adbee8838e10ef464262cb0f59029797b6943b7e6b9e0c7010dac5605d6d581a496780e6e2eac7b07b95abcb6d92acf293cf394140f0fb16302dcf94992438050e84a66c236f21b56a756ed0324977ace2196ff58ae2c8db667b0daa54a2d42a3920d5fb5463cb8d06a2ff730a9f533f7171ff470b8ada56521eeb0b5c150308450c6b3821a071fe079925f62320cadd8da8c180fc8a9daa2c8e17561b21b9fd4e221893ea6553a4e61c1fff9fe8ab25488ad1c0fc3521a4e236df4cf15480df5e2b75d67ae5743fa537fa06575e86117782f912cf14b9c67a461c34632fbef9b1328ac76a8dec3f442541e777241cb9eb39dcc009e87532cad63005e5e93a063a32012fa889b00e9df5a63fc6aa81e1cf8e4d967f8036b59b1341ac3502da9813bcd4401e516b716cc2b5ac04f5e57895e39965a3a022f408d40982b2f9e08324dfcd060130ee5f700946e09254932d85b6a28c7bcd5395936f08ca928325f0273e3c268883366a662ebc9a7f1bcdccd0acb6c454f79d67bad0347d85e5acb01bf3413b6dee73a208a40caa15d6208803e3f9cd708ec17497d7ad77eb3ce50353b5cb2b9ac447ef4d58a9e60837ca7724629f32dd894a3ffc3d1e7adc206b385b82ea0bb478f1ed7f675177787f92f1aecaaa2255ab5b48a4f60d2691ec774d3caf8fe5d5f2056f125d240bb82114cae0ce31e2f0fceed910fac6f7de9de4da88e8149b4b749979d37dfc3112e3ccab549be830aac9ae053d8474e1f248ff0b5e598731dd63cd62ce630b55933859137514e84ff5a4059c0410f564e477a1694ed2eaf3169ee8a9ba5069922129df8a94e4ffa278f4fbaf52a605aa76516938eca5be11142bb83087e6def74264e7e991c763e5191492035f7705bfdb17c22d4933fd2509dbd25840614baccee3bd3bd59a377484b55a09dc517fa298dc7f04a24304dc91002c000ae61bd5b75242c0680988d9e7e5c05f44aff949ea3addbc4fbc26a0ce3ca9f3229a4ebcdb6c754fe95748c2ec479b76e311273c23a1d3d4816de71a9bc26a74153c624cc449f068ebe2cb6cee7bb5e02ea4720a86a00a5e0883f4cc0a6d967596672646d439aef75fc13e0c4e0890ff68fd3a50efe3943548b446c2d2f89a2b16710f22cbaff9b1cb501675902362b0cb5f1ab9d09909952219eb933ca1e1dbf271a0fbe1fe40c928fb5d1fadb935b1fa84cd939310aa1d3c30deb64aa7cf9ffe7301bfe602ad3596e07e87f65e53b23fa5017880e70053f65aa7345b94829ee3db131813bcf76d0acbf69f988e88ca3f49cc4311ad327edd90e2a4b86910880f45c16c9ba8513fc72afdc4f4c272f052575b71e3de70f07161eda29c83bf83aef0fd46f11095cd4fcca33efd8cae8f8c2d0787112723cab9cac9ff9fa02bb45ecbc9879414151751bbbce8cad5c60405150e0819d076b699d9d9fb62505a6c104587302fba8fb17725e80e9732563411e576bba1a503b10ac97a41caddced4fa591ef6980aaebe3505df212201fd0d892d15bc08d6501df3a3263ff810dec62adce7262c07360d1de212b1684b239050a3c87acbc7025294124f86a8f35313a97ea373a701ff4187a7eb44e30c282c4b1c30702b442a606aaf3d5263716ff0fa7be107d0874581703f9ac04b6f8169872e94100ca1b11e44cea2bc63f51cc1822c65d6bafa8c639c8f32b4a60c928fd049282dad586e46cd622fc34f1fa5ff7a67d06a427fa22d05e485394344a1b41e8aca7c624306eb3a6c9ec319bc65d8f878b1badf3a4743ae1b39ae8f1ddba00bfebddd149f5b20836aeabee2c6710aa0b128fffca57783bef39e66db6df7b4a7d7fae067d3d65c63b020105437f448d644f4b0bbaeb0490ec5a337013b4ea5a16f82567ff2588070afdc6d0998ac6a11459ca7a8799dde3ec3411beccad252e897a360e1d4ce9e9e0a82c57c79a24abb99ed5190f27e43144f9fcf076becba38afc9640f9d18bb67f6d4b5652bd5393c8483ee348a2ab3431cc92dce30d0f069312a671fb283aba4e527c72781f59fb7f6d1704a3ff80d49fb53ece26f16a15ce40a5414475732384f8eefb51cd22b34b8e901c43eea8604354522c28031852da10e0acfe6901a3321a275f86f025459ddfe1d90c561bdb132ed4c22209e71728300a7f5ab0c84b7ced352ae3321462bd75f6976849448018db9c2241d2cfe684cb6c3678de2f1dc91a4b4b6c2572831d4b2036aa457476f8f19be70e405e2cce6e4e9b9e82be48e078216747dc6d63359debfd2fee14a0e8bc0de95a381272d3accd94617875e9c08162817d5294549584ebbe8dcb36d94a6cdce34e4f30c52541d425422ea0e2d1c00f9b381d021ecad3892a1541dd81a42a1eb8a7362b5a125651db02f1992efd6f9515f3f1ec66566f91c1876d159c61195383a4c5e4c89555fa026b5b3bcbcd34d8b6b0eb026cfdcb8cebe45884e499f7bd1f40f1e4a2144533f2d57e1eff0584805d5beb7d6ed7fe29e088379d1a7ee70805f0f8133d26156724d4ab6560d15f49053a1c8a8007a8eeab8f6c09265c4a545ddba9eabef6434b191d87570ad3c88485decce9cbf52a11895aeb82dadd9921522f368843fa7e246411cadf0fff4b236641cb516057f102e9875e9363bfbda62c5d40fccc935eadaad4da3723b7ba6cdae6cf88b3d14364b6d30b435627d7781aa1003bfc4c9fd145f6c6e82e58df863488d27e7b219949d554c09124c582591305a80964416a18f70b563a761ab713d4832a1780300c7ff01cc52be01a60ae53affd3cd4a0c19eaf60a077f792378be2d3c958108bc068760e1b920119b311b406a5c59658a9801c612140d9c8b15461701ae2ea1bf16ed9650d0a26b52dc59d927efcf8174a421409877064d17ae3bf17831e4759e3de408c616c9565eeb8cbf83729669fa7afb13e662961db2622136bfbc69f1a80a150a604c38bfde2c8de8eb5addb54825376d4f8b0935b6a1f34d2a82a29c8a725dab50649b796379d61e5382146d399df86de0fa51875baa1dd2b3b1490e34578dc9da393fdf26ebc36ea3c40b760e526e30280e05529ae6e5f9f70a41a6e36da9f9642ea74639a5631a6bb30f17f3403144d9b503d921917628a327a5422f79903a205f7dd33a34e93da5a553949e25c29f952e3b5f8fce39cd625c9d34c79d414f104a69532b4596bf7046c3c6115b4de3dded2bc270eb4963db75db38d73f2fc3719dee8730c12afa6cce1d867d7e949d7fb607e39bd2b09c1e80fce2fd76c41669ca73b9bae914f42a5a5903327059c7bda73ac88cdcde315d5de897fdc188b42ca521ad5d80e1a6a95c729f58e921fe2c258fecbe03858412cf0d4660c6fcb6c5b16be8342c970bb19390b7c393211ccaf35a680e1da855bff9c004b067780522c8f26770559af10a0fefbf887a4035c7456a368e3d9e50ba1423039767bdd6482e61a2e47829192b9131635608a8ba74a4f94959fa462aec7e6000000000000000000000000000000000000000000000005080f161c20 +flags = ValidSignature,ManySteps + +# tcId = 18 +# signature that takes 13 iteration(s) +msg = 1500000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 73bc2954da39fd7abb7ef32f531cb8144198e50cb52dc4ebc9dd5ec0edb90ba730716d93157995e37263b1456cf55882131ce6d537f10096dd8500d16166de80f5bda2f94463e8fa18e0b970871e4cdde1ce7d3e154d30643fd4a3740908fd8b1249dd3fc7da0a5ef591de4f308b44daf5018e17278267b56f7df5029a130c736f56283d50f97ea4d817eccc6008be603b19a70f1526e1d3a2b1d97a52402eada5f3c7898eb16fa2438b0e4ba9cd745b1c94f0a5c4d0be6ba5ba9f0186feb4f741260fa0f441f1839d3264150cff7792f5269bb2a82cc360e30a15f61b2568467d9c8d404784996dedbce426c71001748c691cc848e776023cbce13438aa0743b6ed57eb614bfa8fe6b199a53207c45ad762ba80efdfdd31595d7bb0da2d533aa65ab0ec3ced551a0b6ec2cc8a216944e670d7342cfa367542e86edc2086dd14de5c0ef8b38d677379fa986548bfd69e84bd892af28b4028687ad8c94f55ed56b50d611ba6de863c201b16b0b9de779ea393be40a79b6405bcd3f1f8685018c8fa61280289a948831ef7963f3d30f3570855e58873b9f9f02fd344f8362ef65f723fa0c5b8d628264e74cd4fea73ac6105be0713e80d52c5bf55c21c1f502d73ad0afa6144b6bdc227570b85b47143580c736fe4f2b201ec4f4f78efc3d4afb2a4d81c8184fe36011f7fbf197335ce1596a0ab39f8cabc02bc77ffc005665dbfa356b43ce805fe0dd2c24a9e6c363cf707ead215ae245963c5684ba85b55118d6e8e55c040012158645aa0d0004c184f826b7a43a2ce81a3bfc6c4ea5651e8dfd10fbb22b371d03e7dfbb3aa23a9e604d8c452a3e065afc05361062db3acd697e52614baf0afa010b7cce9e2c36d8e41020951154695bb13bcdbfac5eed9bcc8f0701ec5bd6393d83f828d3c85a591bfec897203109c57b87335c48ebe20b8c963ecd0d973c2cce02676fbcc38febf292616b05226c523a4bb6de9222de497caddef9e5bc65fc084e152f299538479f994dc79e19c806f0681ce43fded54c634427ca1f14b691aaa1e7294741ab9f86c15a68cfea5f5afa27e068564353ec51a39dc220ec0636a455604671d2d11e4de86b5d8b766b872563ea6d7a507a5c82a1babc6dee32af466d560cb9c9835febb4aa2d07d7205cec32209df17475eb635861e595b1f4cefbd9540aab01e1db317fd0ab6cf56a03f12688257028dcc7f344a87ab0f16c2ceb3a7c3cfab665c92a4b03a423eb158ad7d3a8958beaa417b4fc71948ece95058b56b9fadc25e9f3acda7020cfe201c1a584fcb2ef38c9b524941472d4651d828b17e7dfd31f022f2430bcadf48414aaeb49c21e52f40d5feb0e9216be4031c35f4b8cc6ade2ef156113fe63827179b0e6f30465111c7749b2e99adbd5e451f121f6832a4121abd9510a752a7a4a9893942d04abf4164346f4fd32a01ab7baeace93f678333c4f27889facecbf4f41ab234fe2b24c0de9cd58ddc969d53b5c7aa6ffe35e58dcbaccdfe9ffafee5b3f1d5222e6187957a6c653751b631f439b691d5f2cf91808f65de831e4f076c37b48fd9f96a09144ecd06510e3093429b37abf729e09e1fdc8dffade760a584cb6ee668a72d4619f421d5ccd663d379e6f143088c143e29f22ae9d0fb993e8447cf44015c36326e0efe6f16c547c3a212d1dfaefe654dffe6b231c5c1d8b3288e4ab38880b324249087822a32eea1ba798d2e7d204ea86a990c7974a37df998bbd7bc99d799458b231b4e45cb37dae19b46a95f597257e75df509b2f3a7d7e524134dc71eaa13ae8d585fa7cd45a6ca91ea96085e0092035ed9ee335fa047f4671d744a7b559b52a738f0d20ce5ca76127ab9d549b869a3eb6b66c57c1d317f68f3f6768a7eefbbc9ac06b4c45a6de768aa3b1cfa9aa19b792c23054ab84917628f94ab3dabef0d6445ebe8a374c4157408f1f84c33163a75b8f4646637dba50dc09846f1faf64589cfd1e5124f6e70770732df2bfd1102197d9a7f45215253cd9d05b7eef329c36a6fee9f3f38050658112b48c22c5561842ca24803b96d58fe1f627c2943ab1d9366d2abcceec4c6e55fb044e5a401d032f04f7ef2e49fb89f67da3a619ffe5702227a7ab06970f5079549dbf6bd4416722788805d4682374c982577b1977680e1d0a6af0e06ffe4103587b41f650a85db8eac9a009dac1f9f7589271f6fadf60c98f669f70989a913123f2ded18b2966abd257590ebae4225cc436cdea6430a3167f9f3f42f5cb135e11cf31b8e2e386ab51b6fddcb0e30aa3f2d8cb12373aeb8a364e3123fff93efe83fa89a44e97ccf4f9b5a107c1968436d8a08647acc88878cb7438b7f5545f59b2cb79e20ab8d4750243c6898859ee1d9d350b686aed01b2a6fceeb62cf9f824b6e76d57cb6f16566c4cac2aa17cdc8b72a2223c2f92bec38b0f481631d0096b2ae449370318bdd66e196537a24f0ea33aab87ac5c94bd0645824778cc329e76d5b38482d126a335573cbc81c895d225c3b724fe901ba5ee9052655ad9c059412d4cc25e00444e860f683558fc0cadcb33800e67c87b93dfe9adeca9aac911391632ffcee4a3ec48dcf03842498f674a6a8f689f058d825e931673d520700e284d3a26f2e5a3c3f2fcfee3d49f09775514b837dc35db8ea09e1db53d548ab580c4049e16327b5b0638a9f6e3513fc393122c9d9156ec532d462788a649f79bebfa626e38e261fb839f560f5276b36e462957674fee0094354dbb6275d09d08489dbe1fba5936d1801acd87dd89ad608d33f28a65d066f642117915b9acb32fc7459e15180e8ccc579ab2234cb64c6f4563f5a696eac76f158575276f773e0138545b904feef9cb44e1a13d3004245a33b476ad3e8170929e5e6adc68a12367d090091f7bca5493f7a448e88eb4f13cffd7f648ce368b092416f3b577e16512bb54dcd06e0bef24ed69396039741d37ff96aa0f3b7dad92fe7c67d32ec3c5d936c410329445c4126e027b1691f9964e39910ab4d1a6ec84fecd2934ea9e0f74f371ea279d50f70afb352064804d30fea26e4ecbea3eb6f96b7b4324913c71a2db4bd4a8f8459408eee1889f8ff15cbe14343403ffbba1d95c8b050f050e3bce3f394ed35bad88ce9e1235b3dfccfa478f730ca162355f1df0bb4d1205c8920b5b090851e9798487e3a858e8ae1bfcdd543209b1f8713fd1a80f6f3c8622c10315c1bf21c42d456667e64b1668f96455cd1281e3d76d3a52149621ec4beb651e245b8bf1f3f3fa770368fc83eae60eceb4f4d5e2b70e09a3015cb3dd2be4b307fb5b02db05a9225b6c21047b422c65ee788ccba14c86564f7fd6889a09a258e03ce3d802d19b33def3d223bd427a7cb4d9fd6814413e290a16bdda7acb39c477cbccbbad8c664aba0c97622e65e04c17cdcf51272eb8cf906ee15cd7ecded36bc66139800a4a7864401fe328f8df0505b1e13bf3bbad8b4a344a292d55a17019393e4f0105be7722837624b84a183ddb9278e9121b2ffcacc08456646653df5d5b88e77f8c61e341a869548ae1b286ad8b85ccb763e3d10da9c05e895fd49ef02ebbb60621dde417678ce965153284053d0fe38da260effb844a62956d02b1ec6e5c8ea661ac8775a95afa1861cec82c396a7ce98e5cef55429e3a4d239092f090ba10daa78811e59e9c094d4bd805ab89b5fefbc6cde6fdcee6f21b19c979e237a273e24d9db1d2a7aa6cb0443b5d8fdede41f5203442e658c6f9e63383407a4d67680b6f486254c597428f613e9478cd2b6e765029fb73ab72add5928752e558506e6ca46a3ae1abd4d2aa5f5d7b6556d07440b09166b0d93d5a939e190df2341415a132bbc0b742d3acae79d507628e1da15ae962ba93db1ab75e1bd6db1e99264e68db450bc6d242fa131b05fb73c050e6996c4c2f2ff95a372f12a9d22cd85eaa538db6e7096b765d730f7a35241935fcbe23508b18f5e61789af328cc00ba9f2eb9e004afb253317ac9b0ca2249f63040ce4ac99905508a6d349df6e96c6e675bd3acb3103c611aaead2046c4499fcdb17783bdddeb3c2c75553d338b877f6da0e9d12452943cf6040988fd036fd76deb09ebd8d24e464cad1b6f8d05ad9eab9f18c15b1d6a1e33437e874beded7ef0ca0e27f15229b6746cab74d77e334db74c013e45199e6b0c33e6da136c2004cdef5754c5b44d67085d9cd732bceb1cf20551fa0f183b1149caf1e39d88d6a5e0eebad539c3ec63ae9b2017d484866cbf6a9f5029e2cecc71954fe11c0fee7b1b36f8d18a0f138e54d45aff4f98aa922170a5d3f81d80121a29e6b2c8605214e6a807071675855099f305c9b0041caa826bbfbb216abf05339cc96cca1b143ec278ad3a1704653fa273d663f09addaa860cea934821e7f6d0d005ef1e8dcb62649907994c682481923300baafcb997150eddc0e3c1ecb6d911f51979e04cce3d1afcc40ad70eb0f3051189bafe36275bc313b5585126acdc44ba14a7cf6864a37a407069a266c252c121475d5132492be2120a43c80112360c847eb128b8b4b569153ef6205b6f24d0b5b641899b7244f0463324167071c91bb0f5f70777c8b92aac9cafa13181dbfc8cafa2485a9b612379bc72ebf2d3b59656980d200000000000000000000000000000000000000000b12161a1c23 +flags = ValidSignature,ManySteps + +# tcId = 19 +# signature that takes 14 iteration(s) +msg = 8e00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = f35a6312f8a053655499f4476cecf4324dce61e0e98a6fddfeb391b714201119964d2891579c9ca0cb74b2850623808d9c2bf5cf38bfd051ec4acc1ae827b68383622793527e0eb3fa7be83c1f72b7abdd0073f7ba4244b7740aeb5fb66433847f3c8882811421a86a55833b05c1c2f24949ee29332f5ca5e9fe97daefc85ff6e9636b9d188c2d172c3f9644df60208fb298ac2a08490bb611828f1f5cc93c687b8a6f7441a8995a3cc50e894a11e9fc7f6dbd4d47cb087f7f3942a92ee10899d56a65d27eea66ccedd9a7722bdae4aec8fa6eb0b45be84dbd4c68560fde71d04fca514e10bcd733de9b3f99454b13cea8453e2c9cc5f29c709f2c131c972dfa2f47983d04d997ff217bab57d250da438b13ed640f3ea5017f78a394f2637bc708e0e7db2e5eefb18bb1c68d4ab59643135d08de302f9575548a2239bcc385849e1cec32765748940a011daa3f208da13ff97453e4d08fb668caa1a282530a0ff8e0d9cac67235be0dfc06d0fd5eb0ad56746191a84fd5ed68aebfb3f3d5fc2b3a391cb62958c471cf9533609bd564129aa6479f90c2df8ab3d5bbc51d9ae862eaef0e289c81fe4988ec757170289f5beeaf851888f1bb9b349d6cabebb5dd3d7fcc25c9e4dcca721f0e395918a69496c1e578662e3a42bab10070ce1c01f61cbbcd1ea2fe7dc18c318d649bb663fd7b6022cee490de54d309b0be08121765082bb5b634415cd7d16cd11e69f12d2bb927529554cc6cd2ea48612e93f59ab9fed4aa2a72fb78a7b73c39c7bb1c2bc3574fc7e2c209b64ae2c2e50781ff24ae6761e05e65f670f7d069072b6d73a479969b0ac345a5f1a214929e6b783d542753c9075bfb97dc72af2dd269a0e0a739430b04f0d6988206974d747df8d07abe115d2db2670fd66c2527f288077e49fcf1dc627464a963f031f438861bfbec5e21d973a5d7bb0ab20bc52ca3eea5c9f6fce2339e0a65170f5f7fe8c8d0fccbb1d5b8c5a5f7660d782406e18f75571e43cafd66cce56474b6d933edf42b2f01408d919df23334f5caf47a96b68e845f3b4e4e110e3614cd477ded26f1bf7c92f6ce93291ee809e61d48e824ac80317ce49224b7319d8e4e3c335fa9788f1aac31a3fbde6590c22216ee17d27e387805082dd3259ff68c162339c57404f291a7dbdf12f220575335e189d2c9536f412674e918d4e4d5f1761453d6a080b766db3fa486f961c111b1e661f28f3eacc0cb8e21f34fb143873113ad70331e2a915f0fafe29c0567877a8e947e13e7e7c677af3fb1637805c37877f994ea93cf6e2cac41817140b4721ff48e9a569bd285a821f5aa389f6e5b08dc2be22da23a31610f7f37dbcfef33a3c85b2975727711eb0b54004f5fa0035416018935add492f2cdc00cd367dfe6b4d16829755dd4ba7e5f25151bb9f02b31c05e26fade8b32e7c9569272887c8f32975fecd9c725ad92ee08a819e2f473c800d10c47798e921a69372b6770e664224f4672265d0b659680b0cc83f0724ff727f723d7022b966f67ad5242f312c5aa832deeb9a721957edc71d3cff4b19023462c9114c7341aab6d6f22bfa926128e98cd79c2380fa9844374e67b7317da9478add4579ded5fac480ddca2b9e19c4679447324286d7dee578e7c0b1358f2754c1840843189b45a8c69702f6be6afe95d4739f205638ea9d2059587724807d8f5033e9106791df3e1056b3b9d8972afc72746519f453c3b51a754cac0713d440c094f4b707cb07fbece5eead8a7c82fa6949b6289ee41e1da5b801924c24aa85b30c95c7a074f464c320c836df0da10898c912ba1b3b3bedcb64fa1bfe78477f33f5d5058e306c3ad6bde51908e9ca8dd5f4663185b1ac46cf6ae98059aae95fa0967d775f915256dfb90f80723c59c1d86ec4c700ba795ac0c8dbc87d9616602d7d67bd0b157fa9b1040c40c71e2c2b74d673ef26345c825baf86dc8ae8307651a14a06a341ed4a0d570b77c297c012740b2d678b6963ae1058e7b514da045867c42e04638b9cb361bc35770112492bc457ca1baf1811a8aceb3f622a770bd1958b5312201d9c2b228763e8eb0351a1f6a70bf2b8a746df2a4a354800faf6dd7299d4c70d0c55560f20a71b896553c731cdd65e1a8d83145f8c89fe587a299dabd29050fbfbc7dedad1aa67b96970403983d76406c04eb72dc8a77f4af4dcbd640e82e12628898345216aa350b8ca67136e4271bbd33670554dcec8d3e9e3f05424ef83cd7003454a9647f864ea143438519b0478230b794f7635a960ecd17565e85f2163061ad947bef93399f5f0977dca1bdb4999459f529fd7eb97e426978c10c20d8e6fe9f20aa908a2f734d88e0ad68f804e7698e69d065caac268e73025d269d06775047c028e1030d163730afd474b47f2782bc9d21af573080daeeaab9e39761beb659a0d1727f91ac9e28b1b332130962ade9a5c30376b23f3874e1dd9536d1c4db6dcff16224f1c6a98d4705e74a1a75ffaef200cedd73a79552783bb3757794c30c7ea0bdcb8b504212d7218253f777250369c8a65b321ff719d3918ad54eb1e5fb9dbb5b0a4925200f8edd784d1e5d5ddcfb20ebf6565e1125a8a3c3216ef32a2df02df47d38b90a45edcd940095d8a672bfbe505304cbe438f74437a34cf43ba2f6627c56f3f5b7a818c7dc754424eccf2446b0ddc03bac858ec34c1aa484738bc8bb6078adca3b2898cdd117846666410c490b5e6ead1e1fe3c231bb223a245a817d864a70743dcd3912d7011d70eeeb53ac1c0463359fc87a3cb179c7313cbda432b85374568db7610b97250f56a82cfe6258b4a68ac61e9dc281d5b887db4573b9f7a01503f243403e3e119f149ee95824f8370c64671b2e751b2c211c10c93ebd7fc8847e1d4441b0fd603ac7d8f6dc76e56351a26f8e9894f5370abc816d182d7a5f079827b095152e7886f087a9aaa5498dac8208b53133248f493fda96889a17ed9629a7c4b9e103ab59662a1347e0593779ece0fd00991cc9e83990e8c673573017329616cc03e90353a2eaf89af0b98731b5cbdff28b9e0af4478b631d6fb3748677391c3dcd342a80958b5e3cdd8460f4a3ef7786ae706991569bed078bd2c7a8902b1692a844f704f83477c456499bf6f743a12ef9cb1b560d060c0f864c8d84d3fa0162e1f128e19e16eaf230351d3a40999017cbdfd182037977a3ea8847877a1652abde40eee28bd9890d3e29bf626a1c7c5a7b02405e84be97fc9f3702d65854425c57dd85e7a680bfb16703d0d5c13a76696f15e802f2f0c757caedaf0844618520179d24d3f06273b87c9aa3cdfcf8ad05877387468d937904e2068522309518dca63a51c4063872b0b2089271b96dc1c62aca9423a9323295f2cdbf1d68e7600406abe86d54cdd1918ff3d763245da9a6ba4ac791e613ed73ee50aaa6744a2427aab021e2ef24f953042f6429fc451e39e796f6c7d64b3c40739b007699fed1c057f75d2d4659396d20f09509413eadffe78c75cef3e9eb65a12e332edb9e3b2e8e64795fac153a9f5bc30a7e3d35d65bee29cdda5afd93dcf7f5f42e4a448add1568d199ffb5774c3383cf8719bab694c22e5e3986dac4a679f741da198a228bbf4766fc7622ce5f517bdb900068c0b9b32cf4c563dea50bbe7025fb0e436ea86b0a8c2f58578d48f15eded8d19444906dedc2b766c376e6d0dfc90d761799d02afcaedbe35c9a30b3d302e4463186d9cb1867de8122009d52ff8fa8549451b438a379052ac63770cb04c8a80ab894efe019f414b48bc9460b33fa51978fdefa2f2701a440dfce6a50d92ac7df6b915314f76d7d79636877dda24ce3356ce78de29fe40f2ae4104712be865b17e9156998ae7bbe937556cb05cb155a600d303ef8df20940563b583bad366a0ec1ec023aa685eace86a495e5bd63d83b7d68039d18a83ce1ba5eb78f75242822d06601fc082518f59990e12b486a1d64112a80b80c6b0f4f3d5efb82bacf1b48857d06c305bf6f6eae815a39ca4753280412e340095d53379a0288cc977ba069962241bbcaf288468b9abd23118d3eeadbf706468e41199e57e9839b7c0bc1763d1b6a7a42187723373ddf6c9aa70765b0363dd4d5e70c9a9cb682b672f95dba7e156ac11cb3c526411b856152d124184227c53e45141ed12891d3b071a453b5cacb6bc07daa9404efcdacd33d7381b95ded01a2e54a7bbaab38096c08cdd795378ffbc055093e0602d8cc872f1a0e20e1577b0459953bdbe606a0147462c3e790e093c0110833f10e71226c1717cda055ddd82431ccdd7309648b5799384e4d776ce800ce7822cba4c2ef34045149e619cddd634f45fbfdca78df367d5f8c50392767b972ba01fa69b4907f1a610222943075ee385382652cbd5cae573f7edd8bb7f5f79e80eeb85669791f444ad3d5a9754f1e6520d27f563341ec0646f8395ee03e89b091a7e8bc5265b9f06040cccdca852e1b25cbc31c2a5b65b86d5ee855f00c7561c99cc8a622e8a4e7e2d238db3f48201dfbc381ce1ab55e7d6d0a1c5c5c7de5b095161b90a2696907662e3819aeb5a1198e21b2b760c994549747c9fbbe3152c3e3f56a0b82c2e4464798191d0e5206c9295b0014e606677aacdce3d717fb800000000000000000000000000000000060d161b2327 +flags = ValidSignature,ManySteps + +# tcId = 20 +# signature that takes 15 iteration(s) +msg = dd00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 191fc745712fc8a225adb8de855d779eef8cae43fe75418ea2b02611b979d39499c190bd59c31000eea61c0071a6c765f17f03310002524c8d1ba8df6c259405104df0a435658b488a3aa81c82d9ed06ab0886d456d7c021129f278edaf04477e9b27b2eb35d211691b43e36e65c823070a99e89e0000af939be62f1d95e94a168d953ae5d0933a39d223ab02631932d0006240fa5d3ef265519a5cec6bc796f932345f61e0e63dadf53461a1e444aeb7ff96b32cfa9c8ea4896ca5b5c58afa77e43ab34b011e6a93f9bbcb8dd8805ae7351cae0a0ca95756742077be679da919436faf4e386329000916e206545b18011221f25b8bbe71103aab949769d2add6bfb4082cce81a95b66dce001ede20fa6aac7b4c853df8205a432bf5bb0ffd3dae68e4eb195dc408450748143c8f5e6459a80a1f26b1b5b148d5394158425f8442a0d9faaf05a5ed8df9afa8bb97f499a8454615b626098fb3daa4c4ddcaad2709afebb8d6e1eb5bbe923ce5a4c41b3dc1568f4e8634455de6040cd3653ce5f3d63cd54834ffdf87e72e2c51cd2416041abbb51398e1eda1e22ca4e7b4bcd72eedde8581cbfe2b2b821918a338bf02a5771286ec7c992ad7e8c1f46dffbeb101e939f4b918d9a7b86fcf9940c12f0d2577e57f2702a263f177ab0467bfeb3384647c179f88ce508eb0173bfb6af85fb662b0861ee8051fa4c1820266f8aa6bd6f5c6dfdfe31f15a86df16669815df1af36c2c03d10a8364f488dfe3c266d012a69e538292d2799254da27d9ab3dd900185d00ba45110071ce6132fd2fbd6c129977bd68a44bbe3d0d90b70c5c4d7bf3ffa9f50400168b4a2f28c572b020c175562dcc3160df4a71e77854d555cb8d40f7e773e532934dc896078b269b719de189daaa17187e506d7c2cf06d7b7f4d7ebaa1e1b8f01be3e5fb514c4d3c23736b059f7f6b2a071a20debbc7aba923e040673f7d63a6ac223e86a85e665a941b1067f5a5b75d5a2d4622f30f61f813c9790d0bb62cba7c982d34dc6041f57f204df50b9774dc7300834f53f19d303479bd5df42b378dc28bdcbb81f8d2948b2eed172e57bdbc44d688dadbc2e30609e25c4ea4783ce53d4e8ab6ce921d43ec8e9ee82acfde0cb40789a50a9c696e9711e407e0a2383b252fd25f5d2b5456b4e4674a579f1c1c323d3abc7f1c14356c7dabf22d85ed4a9b5e75d40a5c7fb2912f4ec1e8ee6da96f352fe41c41741f312ffcfb079de51437467a4133c274dd539399b40e42d0805143fa8c7fa9743fca370059167f6f3346fc302f5b6dcb060e80b53eacc6bff176c739a6536f6b1bb4168852c68b57b787c330126ad0fb0414433ce263e2e46b27680ad072ac36d653cb95b0f0f6386c9f9db8285c3e06c38de485cc74b4610fb99714029cde977d9951c91803e9a6d864cf42215a4917aa69ead9509ce0086531d32cdc8cea5e0008bcfa709d18d0de3df22f50e87f59b7a512f3579c46de310dfc8cf95a7f940bdf86b8ce744433fdf50b5a9ca6ac87a7a7d1c7a2533c1c09790506f2cf6f8ff395d2122db9021a746411abedf1b991a0bd6071ced9135cf4319a45c564721945fdad887099efdcd1fcae03f4df332e0c7fbcf04fc66a286589ceb75c6a8f4dd2c16f67caedbe476ed4c57797078454fa66bd532494b83c03e2e5eba44b7d1f51d3d4b93b0cfddb290f05a24038871c766a4ac48cd041dc66a731b4ffb851a7648927f368e92ad45a369a4c9093f27476fc6e878ca8a9b0a915d88a3f55c7e712927ff961fde415e0b99bea5241e80c8eebbec3892ee13a4ad4d77deede0244f45f7c2f50949fb6224209de50d33047fdd60cc3610aa562adfd77e11057fc592e83bc2fc698ed156c57bfce86e444203b158948a0fd266f3167e46a061d05f5640fcc6cb7210cc51e8568e589fc950aa20daf7ddb4d46f5779b20d0d46890761132e23757535b37a009f078a09ed3ff17214574518eb1d03feb0a531f2fb59a44c96c27b834ded68470296be1ba9d4b1468d8e3c5daab19c97d388342e3c91ec82f7f9b50373add853b242b9274c8e7d59b4e84826144cdce31cc8a2d42052bc2723d1cfd01425d7cbf0a72bdc64e07e9f50410c0d84e128b4cd71f4c8a318da81567f320151a82d7b78d4369fdb6cb33a9dfc74394fea9b6e1b32bb4f2ba5fbf6bddf8ce0c93cf18debefde8057e0fe2135240021c647b48bb197f3f205621bf34e0bb7477d903d01e0814774e1e3868f30bb090f67dbdb786baebf443ae31e517c3e42f18a1651efeea26131e763cc3190cc444f8d9675445dd52746bad7b80854f9c4a5836167ecc0a4c1aa65a915de8eb20ff6dee1b3005cc2cb5cb94fb12f64bc010cc382b068ac9dc3cb78e8eaad7bfbae4c8527c44083dcccfa2916fc54814b3d6f37033dcd7c8d56efbfc358af36d8c39eb725d09e74be2cd280ad85431017a50a8445306f6a473da9edd363b7111946dcd03e8cc79c030c6819aea4927f1975fb991882ae05421202024f1c9373ddd32d66f30c3933e5c209af4cddc4b485ce2474a7d49e3375867ef0c6ac721a643d578a44f33b0474c7ec0d734d7021fa5a0fded8b3c2cb03d451b4084e5ce0ef62330880e97234dcfcf4bb98902602aac8500bc367675018b840a0f4859c89e37ba7eba8583ddb60e08f2bf0e2cc60fe110d51c07036133c40cd98b8c9e877ed386b87d114449986497aaa3043cd8caa74277b0abaa6efe6b837cb873243c912a708d3e5de41295574d361a6fb39fd90664537ef8a13cc7ea3ff2f42c04c5b9593d6e34f5759f3b8a4d855aaa6372f7554a8ca58526e80ee5d405c265547c6a6de5e534e058aed9bc41f3a34477e093888b1630e6e3d71a79879c7563705d9ab7cbbe296c56efb9071aad4972f3519e096cee67107f47d32cfb3f484d5fcba19206d108ae66c6c62702ab3e0a3bbe70755b97d1ecae411710e84ad22912daf8a86dc1f3835c556b8d6fe83888846ba8b230a5f41ebb2684363220f2b84eb969878e764674b0b8ad64856af7c65513493397562a65d635cfa8290a037112650810d1e94591e69a7bbdd1f31528d866a9033e8e02a08ed36abddaf1cc74076e7e449fb08a90e247a9dfe7070dba8a929098a3ce1843f633466a2634b892d241af0f51ecc0f5effad44f7c7706b25a7e85636a1c67ea858414bb2e71cbb519e53703132206cb79f6ff3db39a90300fca172a283e5ac43f67d8a8bb9efaee9c541fa4086cdcf727ba0820485857118a963f6c2606cac4d292f1e4364d3389b03fb817974a323240bf986d723cb7fcdcd84bc7d4bfb37d3d94cb0818b569e92cb582e8d4a6deea11cbfcb3a93af11b9c59b71b3afe3f96d4e1550d2bcb082c89e8edef437a51c719d2b81d6ee77b5922c9da992afbed3de1ff76b7fca4e5f9e6afb6f175053e4fecfdb4696181cac8d040134b9d2248b9035cb9e2819711983d7797abf2d826a893c9ec78128a551a4f02cf1b9f5a6e1699a2f6abaa499f80709f42c0ec89deb8c828b35142f49fd0ac247e09fc5dc826b20ec840ebc858b8a265561cf9f616862f02f7cce26f22dc285646c1a09f7777179104d1c12c5f6624c3a7639c18c9ca58963f6db0c36697a542451e7a9334fdef9e2853c175d0ca93ee009d408a9dc9e0830b620f1adf11c3b1351b762d8dce5d9bc71c108cd154a879f277e8fb5fac3a6e7e538edf2545e09c2aa3737fab0223ee9ec65ca5d8c11b9e1a21c540d22fb2159f1a0158c6697616df55bddc37a516438b718261e700485e7a3a62e3b0d4e97b41f2b7e834acda632b8e9fda46397dbd75ff3761c9fdc2899499bdd9dd0f1df91b113e90c1765e27432b4e70270e380f6fbe4f8759e8aab00c7ec6137ef8378bd8f512e7217784f87b6692f1837e75825c0718bb8db0c60f82ad883aa51c70e68f4d37a2e5e8655ab792b46e1243cbd112a29573af7733eee36788f6e4d7b966a68a3874d0f6559b441d3bb11a8e1b4e1859ca11005c447e1d7aaa9f6fd6e0f177c1bd0d15d05312524edd18fc2e233698d35a0f8fe70d4fd43e3855cb10f0d9101e37f3d1317c9d7d78a57a15b736f759d8eddcf1ca94e00282db8631f8bf2d2a49535ba858429748df9b8dc592b9545fababe496bed4bb525752cd5e338c6e666f8a3961df74c29b8221d720a1bda05fdf01f92d32b3ed9ce8c3fa70f21ef30132cdc30bd2ec9c5aeb73bf712293c545744734f180b327a08a6b4749273f6d853429dceda4471533952ed47b28f78ccc91ffea3eb0dc56192355f64d36dd001e822cfbac8ce9e2bc98d9a56567d77064e60713a0e7d676b17be0d05cd181d0a9e101560d4d60153ac59acdc5cb8bb3550c27a39b33c399aa54b488272903f97a4e3a9842b30de82a18eadb3cd897d4bc92a23c576d780a83829378e15248c027d1eb76bac3f1f7f0413cb7a5492a9c44a3ee78d42293483983a7d1e90fbbe277411992c034b649c8d63054a02b17d97398a87fbeed698f0e890c479b2468ced6ab23a986ad6c41ac712b137afa93df37fa8080564cbf67bba235914d7a8f832fbacb7f3d5ffe2097f032e32585a76a9aae325a5cb121619344a6466696ecbd11d656d9397b4e2142f35580a22292f3a3d46494db1bbcbcc000000000000000000080b161d212e +flags = ValidSignature,ManySteps + +# tcId = 21 +# signature that takes 16 iteration(s) +msg = 6c00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 3e41b01c01bf6603b6d0eef00cf02bf550767797e381cb6530affadd09100fc963e864c42e24059a35b54421dee314dd6ec4dff8c13e761061160673d1a94008b1131aaf1cff6cee99fdcc7c79991723d46cbbd3d9e891972c9d5f52f20bbb11c54e5ecbf557332c25c9b54179e6064eed210479dc6446707f5204aeaad9db2f8f21ed5f602965bd137982ab5132d9f24caeae6bbff8ce95a4ed47f63d7d258fe1760d8e8a7e4a12db37d3ad11131605d2be5eedc250feba39574bce461ba88a0ef59cc7ac109b76c83026afe2f2f3656f1ab477af4b49eefd56c9a00ce804427d78a5867ec497f07a5c488762c8883b839a584ef014d91e909724ecf77fefb2fa3c68b548deae9b3efccf3eebf62a5bd76f966f7489a71d85abed7c06bef1400db6f188aa57278a874cdd8613b64334c59416d1b64b121fd2df20bbaad74c8136219086fee3400f6ee37ad03fef16a9bb7579683ff421e046f9cd407b61e9a8aed130c60596de5be4ae7fa50667db07505af533bd199c12128c03a7d740c0ecca1aa7f33dcc60009cff2b6339bfa041fa82032eed9b2021037fcfb00c53c096f608fc19fcfe5fd0625c3bae39d1ed3067f3ac10344eba67441919cfff24c90bab23ba36e2c835ca1059d762108698cfcec610e711513060845c189c507e34a3208fff884c8825c4ab3befe08f36e378503612f926fcb99949d9a2cea0b2fe59542e69f1c8f99603d10c02df15ebc4193ef22cd45303d24ae70d93417e87959e209ae8ae6618d2007c281ea8fa5e73be5ac16aae20f4b037df559835b25a80502543709916bf1f20bcca93497472adf33b43cba42edfacb51d3294b476db006cdb534b0e0659a90a26a9ec68b3b335d461a613e2f03e94aef417983af6707a543ac99cccc341b540886892e209f333d4426f6dc83210d602d357ba70942506bf391c747a86202ffea712e7f0448105cb61310dd1fbf6332ba0d6e27e3ef22cfcaa5834df1b7f5e8eff50b4aa7a3889a0dde43d1b09246aeca8bab043044f7daf2f14a61b7fb71ac24c804c07619f31b94fba83a586a9be34706386683e5e3965ff4c242e524bd4745eecf30db2865db5f217c4f9dfe78584895d4214abb2b7084d7bf64363dda987987e0da8cfed427c20e83bda6550978d35e995368e6638c055a971e7b8460f77bf59021f3d3cc4edf36a44ff18b618d0b854c5c3cd1c8bf1006999c99def36fa878ce03bcb01bc48e1b5cbd975c7afb9d3029317e4df17031d97315027dfce18dfd16ab5012eb0a24876145c0e2262627582884b18619b384ace8fcaf35dbed5a95c38096aa006a94ff6b88fb7d800574feae49a7c9a8b29c36ead729fb194770e5202c5eec7071541090c0315493547da789b15f2fb28ade9354e0b0952c75541245dd0d82e0cd553911f2f844daa2af5e34dfd2f886559b69f038e41dff53cdefba8663cd4c3b270e41ad01cd9c69d84117729d51bf9c0b8249a48a00ee7662fe0f45e3f522b0e97547c6d382c205c47a2711d20cb8a6d18ed6a227c49a2fe261e9cd5427acb8f8b09477791cbb13c161892891aec718a2089181dda7c8f8bf7774ce109d8aa4bbdc6f6451ed2eed41561d7508fdc123fc7018b67585f5f7cee14645dadb2fb1b5d6de80cd5c5900372400164532f1186b02cccf8066dad549b3949714975cb92edf3f98df302ac01e5f7ee254ef0d76f3a5afabf805e81d95afcfd39044ae1fcbedadb35e737a7277dd31f9cb5c68f0306495b5981efaf676da2d28dfba12fd87625e14a6757e3ab313586c68dc8ba7ef1e90c521fd13e980fb973210ac36ff5c223cc258241ed45138b7b8044fb63e8899faa15dad544f77955c9dd39ee11545a10e613f09e01efecd048b9b61c9f89e10acf59c4fe10e17f276c0d72aeac60971673ae1b13ad5d6ec116dd92df3e0d6cd79c71893b812d1ebcb6d2e32d3044dd0815c4aef995486eb6a2262d5ade9f975ba176bb3be9ee4a0bb2b9b0dfcd679f3772db9c7e5219ea538f1bf4036edcc9e52623c9b209e092524d023dd200308217b7ad3df4aa312ee8d503fbdf5bdcc6578f32f4bd292f5e7f0751d6e18f5500ae5013291941f20355003731d764e973c17a7120daa0a790e5362dc13ba377aefdb1e2228ae1e2bce9bbb66661f016fd184973f1b156bb2739bf4aa6cae8b935273f8e821de354a85a21ac92b08b5b384e4889ce5adadec098a2efd960e407f6c1c5cb51776b49cba25454633b0d804dffa9adaa22a62475feca711f510dba1b927452948875c23fe50eb04af36960ea8f322992d48cc136b2cf44c4fbc45e84bfe347a1136e11efdc4ec4125ffc4feb8a7c2a832e29de612ec28ebb59c3d82d45323fc35b1a0136fb18aed7e761fcae68944f6bbd63b5c66621205c525d0c409d7472c263e8e1b556aab713924c44000e347f743ab9768c46cbb654d699bb0892f3461d5a8dab4aed8d1f0816fecd297a09d2ea3d578b74356709c5c019e0c6eb44cb9185b96e78193fe5f3c19437057ea356d8f9af450f5bd9c230fac20efb37341809228116dc5676f43cbb970fa1389dc8bcedcaa0722e8dd0aaf54eade137e8f18d9d7341867fc2799d05681aeead12903857ae7046fb335cc290e5756a2812ec9925ecea01919df31f0b99ba516b74a1f29b17ebf02de6b712a12786b8b280cca0c8c6673ab037db91612d38b48a1a4d3644b0b52a4c3ce262edb5691296d2d53071a14b7227e1892927089a19dffad11f1f1bd0c25e6553541d7483ce277a96bdecac31724784aa9d933d3dcdd3f42ca1929663b5e1102430d9ae33b60421b37381ebfc65c4eb23afdc533170018ff2a3009367e32ab9cf83d806dc6fa796de92476705eb434075206e0e8e1007f94dfec75021906fb1ba90cb1ab90c4e726a03f8b1eb40e0b6cb781b84d44535945a2caa50c0228f1f63509208add3951d6fdce948d316a7ac5422db6e065928bb32d495730ce8c3e78bb7b909035f90c01e4b60bcad19224441d2495636a38904c45b98e38ea5ffe4a4a5dff4ac585a037e129a5809a864fe763e21c3bc35f026bd61cc5bbbbd490465f66dfd719faae6e21836942f9bc56fd728dd5c835943e4289bc83e5eab913385aef4c526f42b9143c3a430b399cd469395c13bdf91f0b61e1352763321e439a15f464df8901e3eed66788d91fca51a81fdb8dab7a0d9b67202b98412f39015bd390496e0b22209353d812b8d4a458c2e5de71ec5c17c9b034d892855fa70f1199a942c3ee4835cc920603d2afe28f51259892a7c610774e4f77fc40739f6bc954dd7f30720054dc4a9df4f302ef6fc3d379c67772cf4a5a6aa6024a2e7b60fb430fdf2a1f1f44ef966f6a731886b8ca6de72dbd72b648af68fe543a7534fa42851c1b498ddac2b6f94a18009fa03b976e5592a818e87322ac344ad4e981b590bb57980fc903bdf0d84a23ebe4eeaa5a658736c7b91a7ea31462a7bef3cec35630cf5dd82344b34463eabe9c37468a8cddc9db577365cfe061bac2aadd6a339c35caa61944bbd76d1c5f605399b9c60897b41ede89d4392c9881d8ef54c5b623438633607c917e5a148f91f69330d2cfc3a07a385fa636b1b176fd2099a8532e517603f461e1291b65e4de6c534d6dfa3a50f9b0cb4358dec901823fd3fcca7a1296118b261f470cbd2e8438a6debfef71787cfe3d9fea869beaaefee5159c7e0e3d98e8a2f4dfda6a42e01504c04660ccf06c249736aab24968c3718037a9b693c3bb09f3b7848fc70c60df838d0080595acffaffbe8184771615896a42664c3aa7a25c7365d696a23644c625bb964b699ac048f78320e064140ded9c3779cb5453326b7ffb66c14193420c46a16537011d8c058e5689b584feab9d82c3387d5cc9035f58b7f9d9cef7fa4bd8fe4118e5c8aebcb1bbcc831ff5cd2430ab3b90393987d7906d03f92374eb3bee8c65ac043b038545da445861860b59f34a28112750eb6449c8daaca5a3a8dceffe8c573ed9278938d6bc47e8a0c0c645040e1610b39744391a9191bcc34e08a31b9abe1ae69ad9f141016fcd1b7d4d5b23bb709b1240b3b7a9a1ddb622ecf276ed63f1a92a184a7cb80adf9dadee15ca87972e530026be137cde18cb59b0232a12ff5cda724b21342108ceb83fa30dc50af8b214e638f0e88fb2e11664f6b14ed6421022661dfeaf0903f732622fcf19375daeee2ec601d3e3749c339ea85ea1f02938f972a0ae2804cca49aff7ffde527d084e0aeaa45fa91660063bbae4fa03c3ebf20d00a8b32f17c4c1a4672f66b8146fab2597620aa8bd9ad43b7bb238c851b3c37e8551f6de1a8fa41dc3082dd0d202b75524cb9685812c9756ca8bb42ed74175a9d6e70d904713b08206b1cce2c822bad661634536f9f51e753602cbe61fa783e3b6f0b84de0ca9b89b8b9ff8432745b45d4f38c660529e8626ad737c76810b97b89602fb9b9a8b8964bd8c79f5439cd1d12aebc7d240041ad00cd244ebf266a3b2a964d6371b3bf6d676f5fd97c1a514c3ac26c0442e891efa56fd67971ecd81b90da6ca20fb2a6e83aae5581d4db5bdd28efa1015066788a90d1dc1d1e253f5a5c64c6df0b0c3b588006cf3352606290cbdaebeeafed0000000000000000000000000000000000000000081116182123 +flags = ValidSignature,ManySteps + +# tcId = 22 +# signature that takes 17 iteration(s) +msg = 2400000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 45f7b98506b52cf17ac1ca661951dc3cae6637b2b532dc3dd3e49db1ee098bcfa20be1b6ef9a4b278589b8e7c4cad32a16c5600901d47f0fc06272628bba29815f237fd0839e079f0fe6739dd45fa3e5a93d7d1311536c1daaa2d14179eaed2a2933d17825f88e034c9be9cf5f5934ee9201e3496a65e4aa7a2fb18cc323cac3a1997cd9e953654fb504f1c9dbfefd35e09aeb6613ab4c06e571a782acff038df56a04e03ddac640909858e543e9ca2015ada794340f3b8187faad2c088e9a18fe7087f8bfdb3a9c234daedacdfbffae1dc67e04e429555d53b42790fa1735e788d930889ef6618b1e58ed5c327ea6723f2c11f1f466a9c145a11447131dee81550ffaccd5663a5a14e25f21abd330f71fd7405dfcfa93d8227b142cffe58d575507da2c19a631b307570e2783dd4d77e73ab2639c6a4364b3a2b1b7c92d93366f81e7042f2fff359b78630f6c3203b1c88ea9bd0fb7c732f3e5753139c8f9103480e77c57a6c8705ea245b47cc0e64e55ed2246d45e93cd638d0104fb43806b329469e2dc4fec7c9527b5090a47bdf0004ca0a6d4c747df14e8eadb88af3951cc2fed195af08657f35ea1eafd6bf53755b4a66153d4f8aa62f1feccf69f92ce4d5338c422e6743c23c51326be0296d80fded7d5b01c54abf10d530ad0f136313b3d19e55c5ab9c584b80e83f5dc99960392359a6fa718b4d1d6be467de44a8e6678d05d0a1261517d4edfea6bf90af2a80a11fd9bdde875fd340aac5880b201e0a935f58489eacd10f9c18597e51ac0604be6a5df0fa83267bbd28827668fe05bdd26fd7cf09a2c8b3f42df35412a68cb3b45679c76e012bcb7475522234d0c50845395c5cc896a336f1e216e8c62a5d65cac474c8e48f0af8d9f160f08208f196c4cc4c9d2dc4e592ef1407ed6da5471b0622d789300259ffb8a4ce75130343ee0215a3f501291efb8ea7a43b0492264157535d79e8edf106f9100573e486915e54219c989c40cfc6bf6f058f4a34f952a9f10fdfedff8bd173be598f2bcedff2ef2216386cd1eb93b9ce9e34179a29569da669b641297b3874f7477b8d08075710c9bd83cc722fd94402929eff0961de5297e803067cdffded15c42f5febd63f61c8f19b24adc1f599454b8d40b5689ffe5aa759517be2d31c45f5024f8fcdacb7fb0147b4a67f2c2e62bed6d99f2ea15f36ca051b29082e64f5272c7628f923738ded2bdc0b58b2f92cc11046055351bd65b3efb9779d3bd0b28a0e2ef1f2e807b5eae196c2bae7b07149012a8d52ffa80644c04a0ea7cf5226b008e7fc40b95fb0951c2bc9416d60d677ce96f86a655b89f504cd047eac6c6d1905358de689b518cf8651227146fdfc8306e574a38ebb39d5db0697c8320cab784e5c0e71f33adbcc5e2d38894e6006207dd97e545f83201bf1033a107c92e6fbb63f7fa9d6d80ab96b2baa89c89182198e1f93102cb9b10a21db60fba15820c1d82244dae2dbea9124bdc44f69931ee97904e15200c91bb525b3dd37837224c5c52659786e53701dfb0ab836e5ab3924beebaead548b67119d63b52ea88def1f28a0492aa047c346e5b37240d52174f609d82a46be480145f6644647d814608d2aa2077e97227bf7265c1e8e41e263abaf76eb4b705b334d7135794e4e633be36c0eadd86c9978cb5dcd34d85f959fca840a837613f35da365530b4a075bbb0de3d5251138390db3e71da1377527fa3cd5b15fca0147f9646b0813a64f5090b5bba0c68e6fc3e328215877e7f1405346624f8ede7eefa90778982fff9ecf84330bff13e6ae837d891535be7e9d52f4c828357aaafb129f7f1472fd0ae17aa73ea80894496d805a8a393e1626b1bbbb8906f3bc1bff8beac84d1b678fc2fe0218c5983787e7f98db793731fe8b5af27c90691d9ce029db1c35fb9c27659bb09e01b22be955c64fa62cb3cea9d396c47a25e3ea80aed271ad3eba5e48a743538a86a9471d82003bc8708ebfc3f2b8433a3ef418da91281e24525266b72b3c975a030dd41d7a3f76b46eb916c951c27c6db83f56338e12f4b8d517f1f39e18a954ffb01a34adfbf8b14ac5166c7ece5d8ca2e236e35a339360366aeb62cf01242ab11d18a95665b7b3c29ed818e65e14cfd1443e8ad67e32343c90272ba9a262653725d1338694c77f12dd1234f735d0fc59b55de9733d6cffec59cc6c4b1027a7633eff36fd547b549f2d54577b4d3e883064e1f96eed8003c44eee8ade5a26d59d657355d17ebef8264fd07f006eedb3a0182bd6cfa708803d5a521a669fbe2ec256dc69e704c31174fae1f5ef3688a6f6a5568b872d7a61251640871327350d6e00818538f60c7627ae84ef6773a0024790a93ba11be699317711ca3710aa8c7f990c1533277d38d117e0a8ce92490758dba144de16a4fbc97c2ed2fd466361cfb07a63fea544a54a1f4b04780171672b8f9987214055d65309f1a41c78befe703501c41520c50afa576371c91d1ea726d4542172d97f38355b7d7cfdde25010468a63ab2cee6fbae270a82f99384d46322e84c883996ccaea15eec01f07f9728cac753cda40ac6954b52c751e375482776788155edce5a23507c4628ecbf715262209ecbd7ba91948ec891571c214798e96ede019b5c726c8447801bbf76d565e7201d95cfd47064caffa3ee0757bddb9ffac0b42f4a804f68591cc7f2e0fdab131a8ffe5a7c776848927bad752f01dcfff7241003e501623ebebf2ba036100f3dc5e28a23d18d276476ea014494c693d9f4484267f1ceecd7e1fd6c75e74b416c795b516cf9f99a26d669bbbc9cb2bff8de6371bd4ea97b35fb8bc684c464d185e3bf40fd26a8323d507c7b31d203aae661add13c6531f7b56635bd6509979de917268bc0b4489f5cfe2bc2d117d5f27c1cb0de2a85c024a555a815eed435b28fdb97debb7fb6631e72ca1fbf2de560a54496b7ea79f72e41edb21eb28e7c910f74c85122240175309be4c419c2a6886803313d30ef93f587b7fb0232c91ae6d12b54406b495362276afa922af02ac6357b04f817b56cefa7a326376b82aa10e35a113c61666e9b9c9206313318b7e1097166568239eb3455478008e42542608923174fcfca8151e0894decc12fcf32ec9a2c12b48dda7a6896db728ae779d856bf2efbc34d7423eb48c87e00f4b4727420cbf4555fe5a46c63505fba5abc590415dbdb842abd728638844934609980c95985e3f127178f0fc463f4180fa74b5a5cdba1039db813e68fc1de1334857b55dc6a6aab0c4c665a9046a4191eaad90bd9b2b112a46e2a4c253d28c175823334d49ba9e07e85634c24dfedb348e592e4c994a01a5fad53964b7af28f431a338af16f28bb22c645d65d6f40150e7f10897be7b8496601551cd5c813057f2e38a5d59f310b5bc1b52216c467d1916df0da345b3e2f0aee80f7079648876cd2cf3127ef3f18acc55f97e026e3760ef91531fdf81e71c0af14e24bd2fc1bd280f1cbf6e82495e31daa5dc2eb9c0d6568e9b980da14c4efd8e80e853bebb34c259762d2e5ffb918bc2f85100f8d60b0e2353f0fc1f7ed6b3ccda17ff778db565d2942898579851409b31c2ebb860397780174ddac7fbc5e558ae04d6d60c3098adec601882ea9902b33fc43a92e16db396e345a995e4487ab2d07354dc65c04dc873cf13e1f189cb19c84627b892ef586a38dd649c02f3f4efa44943387c493b5edf476f8e68444c804b2543d780b4cef1b71e80251b1cd64958ceb48cef6956ca74a590b6623c7181acdefb343ff65ec776ad12594890ba5b77d1d2d37d0a859aa3a0037dd70e1c0af0b686559bc2c619ab8ca3f649c38e6d0f2b5a6458743293ad38ad26541c843bb00c8005407bc74446206af67173f53043d9c95c2696cac7359023fcdd655dcb2d8afe068df092c8bcc3cf18e438c12848ef078383f6126a5f2f9b4620d193d6c8b8b9f1265c827c4a1928e3e523b2e653efa378800943cd3e1cc639ac3821f7fb44f5f01290a144f11d3e26244163e1cf60aa627d7318dc3f42fa9bbc0292d6fa61cf3e04dab98a3e2ed3a1cecbf5f2e08aaac5650343934958f15a2b915f0007c7a251623c93826f2e1a1c5c8aa0879af6dfebca672c616917ed96ba3c4757ef0714fd8b88e0f21af580e094d9381a5a8fe18fd34156627dea4cc154bbd9f2d9eacd1e40747222015fc93671d745488c8848c259c7a2582c0165a1afdbf46c9a75590cb825074fbd410410a94568c444b2b964d331efbaf82771524a6cc0bf84ac2ebd1f1dd0ed8033178e79f24efeb43a0018351b13759035120dae2972f6e314c671e3b918ed9ed89234dc27c17ec9abdd3b2fc64d8e562ebdb7c90902a0931d6480386dd633185e15459ca4471177281d636d6280433d260a51522b251579833e53ee757c9fa2f87ea1fd86af051381d6f20ad947f5981300bc93cf5c44defda770975bc1438b053537665535a9c764f7fb7f03038305f4eca46ecc6faa60247024d12eda7bcc626d924894e2c538dacdebf4fd2b64ee428f8fe30ff104d21b8e1f3897bb86c567a31f153d4e8ff3be2d9a539baad2335762a010b35bdfa1a1b5df981abc8e612314445dddfeff0fe49b0cddc000000000000000000000000000000000000000000000000000000000005090d16181a +flags = ValidSignature,ManySteps + +# tcId = 23 +# signature that takes 18 iteration(s) +msg = f900000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 6593932b139ae1104d35507504133096297012e45c9865f57a7bd6fe87a6e4a10394f43226ec77841ad10ece333a381c37c91bbd82a63bf87fc8091ed29a4599042715ade54f5c94a6a0e1222816e112b4abf893f0261fa5bb5d774c6c8d35bc1c447e17d3dbc25798803518cf6f6bdccc7e2e77d77cb8e6ef24564a36b5054d91836c7ff1958b6d850d25f762f78b0b55c2850131437ad677b28b8d11d91b16508fb91f250c1c59adc4a2415ca6d20acf50c90808b5a4e88c043caa68a9e6a2ded7dd4f92844c2440589540fdf7e48349ba43bc26c23da748ac9d75f0b188688541de951a9ca4fb918572c96f7d85a040655d459eb3130c03bdd865583a2bcb382819c0b59f80e6369dbbc0f5d5b40010c2490c87acb9b50ec1a998be39694ef591a3653e9364c52137881ce175da1a97326b33a969d035cea68a5ae85e5febfe82cb5ac731f88a0c895896680a9ae8b4e7b3eae3f7a7d4a10f4063374f317a1ba377a01a3433e1242b2f00c0584a094d157c5be1a864b84712889c016e38fe757d02c30d63dc4c5d087f8c78032865ebc87de03747d03bd6bc32eb9880e8b640ab46e630815d11b3e4d88edfa6a3c006b568cc9648d4df218ab91bf1168852d4102f4503061f96bd401491aa76ae8314ef47d7941a767fdfabff79349d089aa5198248cfb2524ca6489ad58fad9ca4fa6d7d1ddce1fa88c3dadb434cd3a1f49168460b36d9987eee09ef17a1a789a457b98098c85311deb3e7f4d7c2a84c1c78c2db3e9823a5b47b9e313458d8023357aec8cb45fd052da9404c731062508ba31db91cb670f474319948538dfb7b811368e4325b24ac77cfe1f852bbb33574f175738f6924aa937aecc41397f8e34d3c75f44d6e81714a98a552a766089b8b2059bfef2f890edc17f9d98df040b3ad9168c285be95ee126ffd3d75658571f75035a0e9fbbbe66ad6a85a80077d21cd19bf9490f3fabd69991d6ba2589e1b9a3b8e64f0b879f3d80119e6715b827dea6bf40c09c02490e60b37e13d09d963a841fa58a4feeed6982295eb6be66def030230079a61494fd7295143c3a99c9fa722e1081853153110206cc59ed26a77f9125eaa98944d26708609594ddfa78c7760a8e9bed82e85cd991b2bc5ef7e2216e0bca4d16017749a1579b54dedcb165152d9324ee63fb7012b2798da17d3700c6d8280c9d7bcbf6ea8467542e92c8a0868ee9d5fd08bd397641b20d7ba15dfd079bae86972020c1ea54a0e641665b9f20dfd7342efeaf45e2c0682fcbc75569db5d8fefe4e1cad4e8865e86ebfa52ebb4c3bb1f9bdeaf2f179980424a62eb40a07196a78069ea6b33f52dd50bc42245517346a846a63bf08bd27d341ebf829807595f12ee0b097b917529cc0c4dfa7715238eae6cf336fea3004416f18546262ba801c8bc255d325524b7259bb747c3f8ba51aad3fd54d98c882c3c4924c3d01c2846690608575ff94e6778200ea316dc7e802f889a255e642c94e43cae57c68ab4f5083d15921e4abdcee8d7c4e9b60e43cd3a234780c0a6173b6b132d2482c7750e5aea328397f6c87898cd2254437a37f3b0e65b3f448f541f8c455476aecb3e5d7494188ac19cbb5f2ec45e246e66202dab148f2d5c0d388ec1dfa17495c9b3d255da2f48211b1ae87b2beac31735fb79561a1986e80651ef0f32bc9181fc911ea32855b5c0cc3a4fd807c5fbae608d683e81b33544a42bf1f89861b4afa5585b25e57e651e5402fee091d6bcb0444ece3e2d907031716c4488b6391c90446da0991eef10d982578b6999beae142cd85aca38e1a6ff07553f3254de236620bdcd17e24e9fdbd1fd7d672799211cfcf4e24184cbdcd3cda0d8d03f3dd76b0e03606c63f8fcfeae5ecfccf4dee0d5158567e86e3a4ce343ddc3c4c3c1449f142774547f25a9538eb80191b239e510ab0d5dda4d1d2e8af018ce177c6877771a7eb5dba26429f7d9772af8baf8220d35b28545d0127b14b524aa5afedaafdd3998e6c3bbedb0b1ac72ad30073560ee23e85432659a3ad60fb95a731b98884cbe826d3205696424886341986e933b97d67ae5c0886979be4c32fdb94aea47b9a3efb2d062806ed25af606e5072bb4352f3903711fa94a97a86c2dc2d32e6ff8dd221fe07e539f22da92a158e8a8df936e38d02d53d1b0fd80b63b6ef40bf826618f962a1d64ff361e546b73d2c7d47a5c0697af49041dac576de3f6918246877cf50504b641a457fa8368caf5eac325e468b07ed722c8833c66a2fc42b1e3f5eb588190deeed2c10524f1b05c6efc9d72a6a1f4833eb58db9a5e11b4704d879d25c998236fb4ce4b2720716c9e66cb339cc2293bacb546260385e2d860d727d952b4bf07618a04b30bead38bc41d2fb7fbd49931e099806a6d255d2cdb7fe62204a0efa2a883c4424bbf875af04d1f7cb2d9cba74946b0022f614c6a162b643a212523e7e7c7165ef5d6400f1664cb37fa555398f988057fd8aa3918ef644fcbed19549db991d5ff2c99cb9f6be56f24aad7d7ee304ed38240a609df19a2b82571b33d9552b59ea540ba909ad64e3f8342e9c2855a3577eb910fb47b7feed8a23458434ee6e0b0cb484b11c63175685a0ce70e4ff7d03c47b7b9d1e18a73588e8546739e6e9c3aa0341f4c121e1c662acd77a614c4d87e84de703710455bbe937b30870d611ab1ec256a98fd884568b8e945b0d88400d87fba756c17311e3210235b3942ca5061fe91b072523720a4d32d174c88cbc65868b5d7d6113b948bed240d39d160dfc6daf8a43a1f6adfde7e71e0d593c82033e9f6b7a4baa0166d8f28c46114c57e364d70f0f122a7b463828cce26c1982f03cac961b42b805820b9af9c8bb2240eecf9daa990d61c42f01ed37ca723d092fecb767fc0ddf905ede494d7b2dabbc593360f569df195ceb1ce3741c08b60f5f5097830535c3049bbdcae2098b058ac9a50e4ce7fcd694d45b20e1e2fd86808d474480e131b17b1aa8ac351fe249708aecffa6a0c7bab3115ebbf8c43bc5382a2a8e2011bf859ad034d14d8d24d56475424c1b50bf85e534dc8b4745e79d6bf098fcdc86a5025284097b0ad564f6ada364837af4df60a30620dba25a3c5d739edcdd490fdf4b7ae7c67be90f6356d9b94963495d9c5c8ca7154b4b2ddbe1ef1c57d8e5e879a064c7c76be3ab86312657c3a971ee1f87735df1a2849018a7d1e4867c9ad9019729c3f43eace4f2916384acb25f5e340a534d6782aa7f348e37fb7e9895b9c4cbe732b4e7db46341f93cc8193407c0b699ebcd9b7e3f80b5612309b5d959a701d92f4fac5b251031db6f39d6339e75368fedeeb3dcb022b6addd77071af1f40504c875d19a5add799a7f0e5079fb39a7d5eb991b5bfc33f517c090b9bef48db0ae16d160f5a81143fdc0a793cc3927ad0ffe7df402169997c4386a6c01853a6c6d21f0607b209b0cddceba91af3757926195750de29ae82172840205bdc57051d7b273ce469fce06bad5f758febdaa498a3399d4e3d807bf62fd57819fee31a18fbf24e501b8990fc25253d6143cee42fcfc898dfe8a414ffca27356102762cbbbccc70158b318e5354801deb17bd202ac11627d6effddb25c172fe13a6a5756ad80b450839086a46dbdbe3570628747d733f4836f6d57c382a96c7aaa9d83c3a4d5b5ac4421599b6311219b733fd9601195dda1abe2fab8bffd26147dc555c8c8fa11e3ae36c3afe9e1cc98670d33804c0a60b2f68f98282c4b705dd9ad3b9270395470c90bc75a1483b946822a1b055852effd2aa8aa93a4d633dfb9022722982de780dad23dd5f2021f3c4c92e048b2e6aac3c6666abc2970a2684bb4d749b3b05539f90a9afab6b6cf5b05188ffdf36941974d5b622bbb85aa7ba3198104cc1111a914ae36291552f40825c0812abce4fc32a9d4e29d40a5320c29eb49905d907343646a638709ff078de5afa9b106359dda4d33da38170a5d2c17d57ed1dee1edaf1cbb019befcd4cfdab6e30ccc146fba1ed86968d7224630118137148c3d4add5e9797ac90bbfdbe1fb9b4f472616083fd8c1d72042af00c1960b4e9e44a820a50ae932975a0d4d64c0c26d61038ccc5132b40dad8ff9400758dac4f41cf7056069430104bb7de19a478b61340002562fe26cd831f6a7e662605d55dc6297b5c2cd248f1ddb5a272dd5851aefc0bc2e79c59a901e18fa9df2e3312a15852fa8deb733529884c7e0e6f4a247e51a2dee34f53323b98b2cf38966ec33c9b8d3697d056a9c505dfdd8cfd1e54733a85e184e46e66d57f726defbaf14bda8b35a1cf9b2a570e61a5ab1128d7b1ad791d0a6e0b79d51b5845a909513277ecb51774a76f02909851f57f4b7ab2ad8d3b3dddd74494a003f1afac6072d9abdc45238e458d639fc827270c37d15b605f2b91ab9f1a8065f5f65c0b4bec40a26f2fcab9dbb4c6c6176c4300e3425c0b4638b8dc0a98c341ffe5fc8e0e8e017f58647285633d0370b919449e1cb03e9e646371f17f85b7f837b9b641a38a3302036285e37997f144752059fe15cd62ca0d503062dcac9763514fd77751514e5a8593130f925012a63711a366dab06374a5e82e6ff0418434f646784c5dc063f558906426f99c9cdd1fafb00000000000000000000000000000000000004080f181c25 +flags = ValidSignature,ManySteps + +# tcId = 24 +# signature that takes 19 iteration(s) +msg = a401000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 6dc1fa2984d614d5c52207db2528c102886bed81844437049d558dfffbb799f71a9dc992107666cc595a1981b75e49b36fa4a2b5d44a5d7e82a002c5b0fb8f8c811d82d19a84411ccdacdf86912db7dc9d0a8df1784a155c2ef1870d706583e16306106a0d0095aba7483e484c22c246077a743009b664f014d86d6358ef4f415e20d9a0b8ac2911756c72a1ab41c4d333f7376cd23405cfb5509e1885337b2e1f391b9e23517a0869f090db5e89a1f84075bf77b46115052a3cf25b3893a112a454a1b6c23836a84618030ea12f8bdbc2fd7cb2b789925b161f71c2e5300e08b9dfbfeb6e700cb09b9b101d64a4fe8ed2f1e66f7cafcd4985002f827098bab1722411845ba01bd994fe4b3b774096e353891a72414bd37af0df4f63580f5d3e72ff1c916c13bfa6828a44d281fed7ded0916e84f80c2bb41f818dcaef8eced887d7de680cd48d0e499913348d74f6a1e3fa81a10a079901a3db3e7fc6b55899714396204e4b442e156bf34915df34365f771b7c5617c7c521f88c43b03b738c069d96afb5a94b96071a43da76cafa8ba2d8f24f53fcdb7008ed7c73c5de081f9b7d2df75ba160009d05f1edd00aa44b6edac9e4f0f6413c743d925a70b87fbf551af7a3bc46b47814e02d7043e9b92bdaebf9dcd35c0e5a0c49bb53b6309456624e8484285d8e434d7fbc252191f69ca8c44f8eebce2d18159ed202a24b77e6ba9f907b14cd9308da274919f1c93b2ab6a6cd383b9b954d6fd1248aa35fca4eeae628d97d377d703a7bbe976956f5b46c2b884c6261cfb844bc3cb3f3219131e78aa2cfccb4276ab1cbcd42eb3b5a5cac311c340dd35198a42d13742290b0b23c5c8a7619acf12bb41e6ae570ebcc99deb82295882ff7cbef6fcbacd5cb0a0680d654be9b18325e8a11a33daf8ddb1118db078537be93a54c529673c366f89e2d497ec297346337fcf10b2288095f572dd62c1ccc4a830b2edbc6e9ed8905d688ff4333baacf412b8a95ff2de36b37a7d0d230eabebb0d128a1c1d9df3567f27a1beb31b822c4e8b535bb38539b9c93a8611a785d35f8afde56c09dfca722cf0364d99b9d0ca55dbc8f9d21cb69ae8b49791e4e1fa76bd6dc9c28dfaacf12add31cb150757070a39225510372b773459f8c86ccbcedd27015cf6daaa73f6698feb3bdc118b03211b261bd8574b116de124634626386f1a91092270d15c16a5a143bd0a0fbf26cbfd34718173fa19e466c9894d3276bf0c887b09b77a584fe80e0134bccf5c3bba566686c79dce66e554bd9229c74d4c02831f86142932a1dd449fb920ef675af899db8b99e758aeb3b32b0474316db13c9ab2665e651242bdd2b696c6a2f65304ec643808308934f727e3bd4d1e04fa5f52a452dbe966f7eab1ddff16950f211034ef755e1fbfc924f44f1e5b91c38ddc9cf755204c4f5de26b59a253b6c940fecf5db125d5d604a10e4384a0cdcceaa0ea4d4e580753b4acaef25a77b7455dcadf0f5bc10f948027062cbeb5ee2094e01374bad834af4805b98cf21f2b99fecb7b09827fcc295867d083b7696e42c2ffacc5ffb5d26088c468b1da4c967c97bd91bfcc5792cf18b66e5def3ee01e7e251c0796179ee3a38cbcdb656a3c6e4e1a970259b2d2e2dfc25e0b7d7229f5b144c24129d1ebc2e9e64875b298f9c36dcebc1d43e451105b16d20839f7e6fa47ed7076b603b5e17e78f979d01d5245c084e500deb96e6ade4d3fa2837cb400c02943dca4ec02b1367232f5ee56e70d7302195c2b6f9c0a213895030857bf8353c0a0d0275d0216c47f6b0cfb54471c6eb897689a64a5fc2d5b51f6be93b7ee0cf31baff1a5143a274779299a6b903f44f8018c5729cd8617919a13daac169683258a8340014d54f1e9cd82134eaab14c7719eedd6089da30a04e1d873b683316bd64698c81a6ca28ccdfbfcd69edabdc03da3bc84d51d770c806cb53597e8db6cfe2ece1df088f1aa6ba75319ebb27f9208674b19783da8d4d94653ea7a0ad7eeb0ade84db5ac471db947ed77c8b11de5ed23282e75360cb3969cb13597d66d041c3efd7acec993fe14fc6fe536dc5c2a6d0f0a787df072c2559f824ec077059b218541c995a030769896bd619b0e66240ef244c8b3aaf0e3f79abccc4a69387d2cfa3131b45ad4c4817d478cb7cb7264aa8dd46e5ef2d3712e3dfe91e615a321433daee0bbf20afc7051d3a5404dc66f2a02bb8fecdd280718712010115be7131d09737677293c635bca6ad085a8f8c159d772bd52c80dcc62e27db799b81d84e337424a8d8905d53adc68c8a222b6970eb8078d796b64b172965f55ba5c90c0fcb006865d7b1f0745e1458b1ab75c54380b3747da09ee3543a013e0b807158c9afbffecfa5a3acfeb185f3334d3ee923edabff723157c671330ecc64633a90347ddd77be425713b6c0f9b41a9789136c1ab74248afce4f0f569fc181cfc34aacaf3f1a4f7e8e84091a3a0849d87f3b8a7c6ad4afb7d357eaa0a2c915beeee2f1c6860ef3fc5f4cf0bf43c1d596b2c84a89b87d36c2dbd143dcbefe0bee5dfa04b7111895c8e2d9803d57270b347374c7a6e83957145d00e801db52df1fc37bd8e8eafe7a6c5b75a8c8fe32b6b2cf0e33aa6e7c4b559d2687cfd3e89cb9316ba05facd121f0921726adf89cc2094da9fe3f296305d700479a6ee3da724a39ba0f5990691436abb03e6813c4071913cbf3e70c6549589aeae288212d2257077c434f306c611b932c754d022bb3d40d91fe0479a9a250eb4689e118def6cfa516312c4ff022d1619c5aaa535e996af16016e670fc5931fdddd9e5d6105c385239a30e61c8d9dbe1185fa13b375f214965cca489d186a84e5eef189243212eeb570109c544fc8aeb4fd13227055878a15a723b70a27c8c902bd8f1c3f9d8865fb2dcc554f2d9c0e9231e691b1712ef052a9953daa36823151c86c2e1c43def615f4eacb610ff684957f08e58f9b07c633e0c71ce838bb8c742e0ecb301af85b4000b61e3b2f824e6fb283d310c69623c3b78e34e85f2c5a319b3e30649bdf982183702a4b3adef8844d960ca80ee90ac92237cfd5a67475241f0d8fd558df07dfb952fc54219fee76946c2d3cc498dc85b0b04b1d6b121d6210d5c97e1f75bfc1eeb7ca62feedb10f4c0384c771b331b230e951fb15ee5c5d6a2adff8a508cef25c6f7ba717a116b2fa8cd18e75fa5c711e036cd1c609dd5fb6f26c9f135bc214c13691d27c9624f711e6581a36270aa27ab4a2afcf84383170069a8c8eb7d9c8e86d328cb5eb95c81f3b5fd0738ab4f44fb0c71f543e66febcd8f4157ad4235feeec30fd3e4cf9e0967f34015bf5bb12a15fc46ef5d0af50e3ccf810ac4310fce50ea1fda53d52dd14fe8795645032c4976591123b74e263797cbc7e41af7be9b56a2195b4813a1d3438d83e3b4da2421746cd97f92176ed9eeb1ea29cb5a0b1629819bd7e7d40c963e629960607aaf96c2a3e93a9f52a37eab47b8c7611b61d5a1b9fe3d8cddb7acdc04d000286b7d8e09e8ae4e58fef9bf71ff76600bfd9c0a7f40a69d58c76459436959d916e88ad288fb4e82a3586b79fcd67f66b2711dfc0d9d140cc22c0a40f6fe46d09c12caaf56a45a7065663d879e8e6f12aa05e9265b16ce1aa2513aece0ecd83d15133f69a7c91fe0fd44eac29b22658d3eb16bbafd2e11647f0e1f7ce67168f5d3e2b45843defd6a4fd8ba901fb4950edd98a4e41b1bdeb1581c44694804ea07544c2220aef5c3f3d58f7d053815d280a202629dc6a45a931c7d86bc8256575d58cfb1bbadc473455fc22a7fd94b229cdb8ff4f8510c126887593f62040ded2894fb7f53665adb2467951efad062d30adad1c9c5daefaaa5748c614991887cb87b421970b6c061e55bcb2e2ad0dfa3c17e869b43ac272b04fcdf4fe29baedf3bb3ab6ad1a22bac0188ee3712d3db309e57efe5fc9b60c3b4fd2bdf287bbe16e88b3822f45868872a99b78265fc5f2c123e7520411ebb2c65652d01a0e2fea8e7cee2a7f667733e208f20a0ef5c845621cf4c2393f360f0f7a0b32d6b1621cbb8366c89ef90cf20919a6c9f5dff89803a50cd281720bfe75c7cd6e25d12938f43596e5ac23c948bf73b05e4e48b0135d1f3c59e93c140cda00463868dfecc077edad546cb99a54348104dd60886874cd680a38e74f515f3e1612a42bbaae442a80bb3af176a73b24d929825955bf33a1541f62cf4a00b7adfb0c7f20442213bf4a531718c245f8885b306fedbbe723cc33a1dc27c52052c4755ce2a302a412955173941c109f52901528739c58dfae6047d04845294d8ead6f94f06e33e96ed95222b1eca8068570aeae6afb5ee3d5d93302b114a815afa5e5ed4202a9bb3ef0ef373385692645bf4aa5b0192cb2834488ac105aefa23b4fa03fec0319b0565916791b50ac339942cd34e875354c27757f4a4aca0c4f0f2fdbb06869f4ce5e1c8cef81791f2280b42bc2d6884050d431bda7a93d2a0e77e72485bef53c70965e7f5cc599d48b7e00e5bf1f5c9f4ede54e56bbdd4ef28d7ec127c0e9439b09ca7f568e18b234943ad6991d71911e2070942517089d2eaff1f4e6e7dbec1ca498f99b7d4e0edfd191b40555babf8075eb5f2fbfd0000000000000000000000000000000000000910181f2425 +flags = ValidSignature,ManySteps + +# tcId = 25 +# signature that takes 20 iteration(s) +msg = 1305000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0e0e0793a9f00d1014ac745f73ee18458e19dc0c9a82d62c4f7c5f08cb302f270648d108b2a87a51c5b83e6aa54f4b40531f01bdf4f59315cfb96fe20a21bffe3ccb5aa55050ab5ae428308e9f1a95ce546b09b68d9a3036a04c71ff617dc48b4a3a732b4b688389a8249a7ff14a35d52b6c96cb0a6d049054de0f7ad08669b82f94745cb89798d86fdc0c2375303f5849c8992400889cf61ecbf63bb5343664f6f63854d3518f5a63fa55098b33943fa5642745b0a907c8af07685a18d9af65b121e90e7fd0c0cf62ed87b09eba0f06559ef813649a08a03c0819da5479dee4d170c17c11a119b6d9055151bfda6ec850b70939167b4d4d5bedf4e5aa19c380b3f87b45ca8b71dd9007450213ff67338a2631b83ef73499c4cbcb8ac6210f836e73605eebb09bb911f63f8dac03570c245b1826ea4ffed10e7d6934fe1d2e5358d52f18329259c05b1e570528e7bd160435a826e39781c8d3ce0b933d3ae34c33c09c6a4e535e3f0678c27e4da154ebb05039d3775a3bf948f579e8920b12b2a50430694fbdecb7ae7563631776e7b5aa3d889b3071964417eabd2bbc3fa551e28fd49abed8fe37326770db6168813903a4b1f4a149cdfaf2e49d88925a6ccecb85aeecaeccbeb94aea175fdc4eff8eb6cf0ac7cfa2897c74bf6c1bc5daa283398b86416be811bd6dde7558bdbc5853752f2651369d3b142394fdbafc1f2f8d1139df065fa16df69bdc9acd8497a89f037cc6cb6eae90292c7bc8f1ef5d89a07ad877334c53b80419f864031f78be57a82bd89d523126e9161a1a5d126e52cdc94831d68cb1907545c0c619bfa1b7246aa50355591217018b7227447a7d17b28324fa6c7ffa1f5a119bde3eebd11dbed6bd9d8ad95b4e1d7b4d673fd35cdc96631e1a86dabd6bb7b66ad5985bca8888d5e8e145a5b5f48953bead5702180a99b9402a5658a7e7929344fcbfb574beea901367a3dd8ea90a75b54b08c391d5ea6373ea8bd10cfc563733c4f533f30ba31d3c0e49e4a5e5c91d45d4d638712aa80892a2a0c5922edcfee867e2fbb7f18aa032c774e9cdbfa59b1c27baa14e932f59631afa69caba7855bd3746a12888d5a1e64271242dacb972cc82bdcc64ec4a2c146306f39115d5c824b71c93b5833020985ca099a4e937aa527bda8e69324005462f5f8431d5bb11bca9e4c59e5b14096cea9e40a540546efa18e1364c4f1ee855cc8cc564dce2ab8dd683bd9804b11d02a1f510ac98c120b6ba64cce16b203e53ea3d1bc69bec0d06a17b30639cd9b24fd1598e92890e88f7dd1397445db54ad8df5e136ee60f22ac090f2bd905765e810f54711f01c63564ef90cb01108b2c2bf1a6fb5fb8078d609117e111604a1d927fd24c18354ddc006f286975be3bf1ce5593715a8cc873c820f778e9a428e08fa3db1a5f52fab22ef5d16056092a6b1da23e3c64f205b3490f0460e9aebf80a4fe9acd31e5747431065f575637c8c4cbc5dadc2753b90e69722182a344d3b154bf35da62c1fd0e98921559f7d6010fcea31a79d36bd763cee1b2855dd05b44b36c4301cf6070408f02689bc75ffe264f55cbe06886019797b3ce3206654ad4995628eeec2db47a2bcd5feceb2f3cd3246bf162cfeaaec8abbd63b2e6cc441b908a3301c860a3a15c1b9253cdff625fcb6de85ab78bd802dc5e073a0cdcab0512a076427d7fae7b663d9b81bff8f0192fa7db81dc454f32340e200ba59bae4eab701662ca6453c233be851cde64c0a966ffc6012681dbc407c02073b9890781c8f484c295720eadf934c73e2b412b484ce4bd599a7b8718088c55433ff1a78072188e289ade5861bdcda6d10dc5c40f1c189ad96eb188bb46741e5ab956214046c2db868c8e019ef5a37d90b92fce70ae8e4a5339f612c0b8eb43c61c0c63f3a59edbe6752d05ecdc178a8a90059d6fa7e0da0bbb7984b7cc1ab8045095558ee505b3ddc1b3db2a78494436aa9334f6b3b3896d33e556e8e2b9bf728b5c53c204a964a697da252a73b8c120b363923aef38f993a3db4c24c9a4b1f10f444be9f87677df5ff2c26e419bf9c2f8e53ea2e6f1bbbdf2b6c5090dba385a5cf5652f9929295eaafcaf282826305ec5766fbb03ce153b32d49aa7a66752a772d2091568f1b6afec5e53dc2d5f73eda96834404bfe58fa5aa692f266d0383ddfe12da56a61f93933b6794af38ee9e31c3721c1bd52a6690bfa68948ba8d6577ae6acb3d5adef9091fbb7d4007aa8b96a7d17cd58987525296682fc777111ea979c9f3b893fef381c03319d7c6b9d4d523a0e5b98953830e46f1bafc94aa6c4c323d2a8a76ed1364caab808dd7eec175eb230de35e8d6f4ecd0dcf32ac6b1be9d7d6ac740f458ae7530a64baee19357ce5a3f106841d99935d1606d4ca7edd2d5da69594770eb86827ca9180713ec4df96de4857323333dcc4c3497e089ba6388a39450d251f39a1d2d6c1d6befebb7111189bea14c0ebb75b1c64eadc76d8713ab2290a7402e86c16ec2eca769febb9d8cdffa530eeb75854b08c52f69c1bff47c2f775353484527f2e3f37171d3fb44553cd6dd4d79e81574d01a6d4924d7b2dda910f438eb4c7ec938e5211ff4200305fc3e9659f8d52bcd49d5ef6ff5125d1f8096107ee01633e32f159ef17e1343af03076061b13bb3b25d4422f21b616393cd2d36ddcf96598c1d3f6b4e29258c94ffeb07410d1294c754f25131f68b4018ea155a1c800df5913cbb5c7520c7e33c3adb8e21fbc692b9d4ae00ce6e06df53cd3c13b1d12dff0607c423d41bdd53f4a632a2b80937ea64605e49c9694cb68e3f82fbb164964863c9d58debe663db1ec93382b8149cba27be1c79b2ec53396421a0251f3c4fd3199ea45c944e250d9402128369ff9d7fa48b0dca0c945eeba9b90539f3d4207b00d86687418dea895a4d467fd7e48fd6edade5d06434b9b1b82ebc0110b24bcf0bd4c58f9d7e5121c5863708b0382838423fcd9105e6776dcff3e914c5c425b85b9a1c5ee805d28925f313931a500e5bed7a4be914ea3a1a87e8b798702d45c6961afca988059bd23f04c38a0f4c3e9d59eecf1fb1d07ab1cb41b472b8848e5a149226966d540b095c23b293d982682dcefb8ee426ccabb3a5ffa070e019de02aa3f4fad228420f27a07cef98fe7cbdc676476ace8e45a8be1e282c136189d11df419053eea59288a16e0708b1124535a2a9d42e5ff42d514d05f344d75d26abbc2435c42daecf028c60621061565f6fd5787d74ef09ba4e1dd3f4043f0a6164d82c1c8a56971eb1ca21a966f80f67bfe32c2b3bf34e680a5abb3279c8e7c71130c77337d439fdee9f0589c268bf2b116eed8c6042e3def0986ede75a7ddb046be0cb9c2f5982485fd18bfd4af6649c73724b9c2046de6eab8c12ed5b1c56662b52d45eddfc9441f88d6dab41afa2c351c4779f623a6b3e4f8de8a749de2ba28447994c57566178c29cfe2d927d7be251b9945583e0d62591acd43c664cf8e52a9f96b08bdb914e5cd40aec4d9ee49088be114d7f1c326622262b9437d4ff41ab766fd164cdbb831023e7b8a4c2f215e9d412ead4176445c5661affeda6bfd4ee4d0f39304ecc8db068496674f89d5be493a4e225239c0dfa31b8ffb4a71b71548ccc1cd8adbece95d2cd76e2f951f6862aa265542696a0d78acf0bce2e20cbd1afd6339f33ca27efd6289ace29fecbf43beace6395634e3cf6ae7d207f31058739eb878cea44af09d18d0100c719241948dbb25943f8426d70c76011a6655e47eab980ea419c0baf21bf3c1cd08a6b56a95cc7ecc803bcc6caefde0603267954cf865423437f3af6c3d229382d4e6e4ec8699ac7929dfa22dfacda6846c632c8006c0f1c7bdda56b9acb231a52a532b2c5ec3791b3c3b7c7e507b9d0a271afcd983474ee55e56fe4e7cd8a0bc6e5756f118c513c9049257bb7251038866517c4c00be889772e7d42995686cfbcdd5f343fd3f41ec7162b61006e55eea57837c0739c8bf2fab9d24590edc3622d2b1c472a1c9a5a4dc63a883834a431f976f1fac01254c5c319cb4da867d129f007a4dbeb5626a9f53ce8db7044bb5e1d4f974a0cca9cf955ec1561b8d0afbaa14988f6d14c705adf6c87bd3f7416611867a61fa33368a20bd19f295c40858d9d0946e3da6771c41ca3b23bb97659ad5f5ca6f48342c323889bc3f00fa116b9eee79af395b24eafb213bb3f74d2ba57975564bd14bfbb97bd824f5ab3996bcfe3d3728e6d2fa65aff6ec874aa468d297f4cfd36fa55f7c9e9d8ce610ff1c36aa2c5b596b017495e298df6e199a6746093be6b4ed0737e834fcaafb52d9a0c37a82d4afb0fc19d81d577ad451edce943112aafae8417e29de50541ec0a0cba83ebb61102cb9aaee51886fa5b46f32f43a3a6caf58201d09466577619b369986a3af1d5ebaa1c0fdb699328cbc95879205b3f519cc235026420a163dd96e0829ec098bee25386a90971477cb12c4db6bf7f48f032e631f106441e34450866ac7e547f3cb76a0452d1c305b3cc822942b5ca815bca6adcf267d8afe7763fcc8b70e4c31999edf5bd25d42793dccd212193bd4e808373b3c99b7b81219aeb4d9dbe5ef0c16455573858cb8bc0454a7eaf7172385cde500000000000000000000000000000000050c141d2227 +flags = ValidSignature,ManySteps + +# tcId = 26 +# signature that takes 21 iteration(s) +msg = 8d00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bb8a458fc151be6dd575d810ee1dbc1b0a0c0fba3b64d9282b33e80531e9cceebdd7f266d7d810d0e4ed65a2fcf188c79d0f8b72fb7942431510ed1a9a0dc5dc53783911ff8e486ba22a0789a685370bc44dffea387de0bfe7e610b769b3b701f8c544ca3d53df14e0795927558ecda480cd7ba8c0d19cbf954e032b253289c42c657cc18ff7d5ebcfd4ff5163e8a36f585ba1409f1f8f039f87b1ddd18170048a08e4366a19439bccde7bc9d220642eb94896f4a64b1bc3631089f71ed0be13b4a38c092cc5999ca9c4cf4a4bab102f26599f651133f51cb2f1df9f6bb7b9de9b4899a38d26b9c6ecb29efedb2038bb92e2ae3401d97f3ad3e1bca5601b3f897a2ea831e6a046a66c69a7da9c1e256da45ca11d4d63d3d5d9de9470c117a4f62f3774fc9c919a73f06fa9e27c440dd94aa19d52de6e53c5f500821fae286fea255486434930a444ad90a9eefd79bf9e335a995d652c7f335d09f7519354f01dab9c10d292dceded1c0db39591544a4045cc7d3d28e4da6be59760ee7a74e312e482ddac340f6c6f4e09db4df3b53052fdecc96dc7aa6d6bc160b991099f0aa81ac1982188245dd1d8b111186377f2f617647ecbae26f321aff3931188d2df051f3a4296e406790514a33080fddc43ea4418d44e8f3fae0660748ca4ab61aaaa58a6e2fb56b8ed389b44afdd63243bb592e0d531d79e75d396a007da95535df0ae74d9fe6b61f997811e3934150f4ce8aa292a0fa59f66c5141e3bb339eec3587b86be94b765aba9f2362ba607bac1ba18917ab7b15f3e3cc2270109ec0bec9d53fda5c276841d41f29f91db419fe91b7d5a2f04c5322a15f552514ab592ef54b59539fdf2fc66617f5baf1ac054da64f9064b43392d2d14823082151ae5f8ab536467543ed5cac30eea35904b4a737a11f53fdff7a5099e915b1835aa32ae57e0a14a781966d17ffc4b66c62dc4f35fd414ae0a22719241e863b60ba63e82e2b16dba8672fe7ce565007e8ab53687561c8c41dbd736fb8881c5fae17a28cab7c1b2483a2ae932b55e5b154d05b66c3b6db45a7049b5934ee5880471c3a63321b193c642e6ebe89c54f6e60f819dab75c4838eb6ca1ee80416dfba41e7836f3f2361fd4bfacd3102c1f28ec517ca8db5b38ae3f48f502229f2144750d5d93e4c8125168ef9ac066fab91c295d47e04a01d30f1cc7889e9f9911a1ba9b6d44014637217571f2e7bd371775611c00d651dd5fecdf342e8370a303dc7e4e936dccefe0c66a8d12912ce2fac1f99b45a5fba11a942fe927005ae7e9453fef8a926fb6c8c3c90d6ab39bda85dfe50ab95541c71d4aa5debe9b9a10b92f74f24d09341738e83fa7687bb97054f20bbad10ca1ca2f88a2d9f51fe9e940680785181fce68693727c4a39c57a108f37e41d35efc7e8249f60eb05a68c8b14913a85be41ae96e8b28a9f97541643657f13d6823535edf8ddbba95ea0768d98bdd126f9829025b799842e2b58be73022e16cf46b0160bbb93f97e80ca5b7b4c2581c3be3d7bfcd81a2399afac6e6388a9707d7fd7e1b19a56c786344195a89da97108c2b103ee87172be50943de28d95cb76722c070ce96383b4bfc1958162b1a066faa9d880dffb4b6c4a864b0461b085eff9dbdecd2a2643b1390bc3d5f00830e6e43aecfbd3b762ec023f2c684407e9928ffda93df2082231172f42f5b887f49454e1ef973275a865950259afe4d3b9dd5fc1d14f07093248364c37db8bab873070fb4720130095eb7e1afe4899ff806ad9ac19c09387157a560a98d1a68a1f0665087377f5e17477279c094ada07321760177c3261b9042c36c42060b700316a93450cf8dd280a0f3455ac8c1e0de4bc40aa0af63857efc77023077e7f16a805e909dcb2a9e60a43e7d5d22fe30f8f8a8291c79a2c08a8b5c3bc9dac5402e6e3bf87898496511be0483e9e11c69b6356740bf8cdc075f3a38f9d489ef3b7f88d51734c8bce0acf6fb5beb7a3ffded49ddf0bf54d6958f4276421bcfa666c273f3a415ff69ca61b736eed168bb3795f9ce647cbd413b027e520e22ebc1500671bb11f056b3b41865690ffccac3718a597e16b217eac9b4fe268520a5d342f1de7817c3568e6249d9f4f014dea7b90730dd06ae4acab0a5e598fbe72b30fac6355068a74d8b311348210822d6f8409e77806a259fe4eedcb5934d2e09f06f2fe82274c942058861d5449e6eb923ac947d06806a1f812b6e4ae2e0a929aa244779c075d7b4cb9edcc664679b6be833c81d5c688517eff2d10eaab41f93e48b7961cfabb5b9f087f5f9ceba4dd8d1aedadcf5719beaf1ea95398634ba3cdae50ebe9e46928f4a2fd153d38ea9af1cf2e7b832c19712ec57dfb516507dd3b12ae1eb82035c1e3347ab97c7868142c68493756493fa571abe71c635b928935eb50cee1c25a9bd60e88258dc777dbd7f96e751f1bde620940d8659730a4734c77402b7664d5cf6d8c562d64284c637456dbccdef87b25e96c21f9962eeceafe99a9d6199cf846a3798fdd09997ee81cbac964ee68bb34b29d9dda00f251f7e2311bc1b6d4beec8bd4d3035a82285c2288a90a216a355e3d1064943649e5fc46011dd1ed2fb9289997afe982093619a6f72d4a6b6093e1303ee88c74721e4bc7ea6289f437cdbb9ed0a6cffa5d7d918368b986e070c3dccb55b1970457d189f9b59ab8e963e5e8337292d4c71445ca44241f9696d1ce3910804fe7df2dcf5854fb9116f96a1a8652c8a7f2c1ad07b07b1da41a21148bb9b24e8d59dd023e58470a188453c4cd9ca7022520ddc6c53f64a5ba9b3563a7d59ad317745a226f7f0d1af6f71a5e1816c71e12aef1e8a60eb67c4c6371a191a1199424cca295a9ecec99bebdd1d386e955fe0d4b4e7b853100f17e09d5e12c8ff569e67bb7d118759ebfcd8c1e954a6cc351c39393ace4d531b42e8aefcb533020169991231d525bcaffe20615d0adf79f258d7b3f7872e1c39d2ab3c616ce79ad8054f0c55241ce148437818aa8419231d72453dd1fc28790b724fa49dc41e43b838d83d8e6978da66038258008e72e3009ebaea2624af497309d9dfbe809a97a67ffe71e68da7550f12ce66e333a7196f5402dbfc35cf9c021b8150c91b535b76f3f6cf2925e2b5c7dc9318a34184bf1e84b06d8edf792f8a62845c0e4a47e5af5327353256a164b167a895b6617a503de6eaa46f1be6a736b4a5c81eab9a6c7c7e78855b44d9dd673f91307977545341926d8444480a44da1f7a38cc85d266e0b43896db4e8df8f87ca1994160090884d417eced5ceef498f3d86bc482e6787ba9fd9f95fa451a9e49ca51e72453802937b2e1817daab14b6140e1d12d4c2cb07567fcbf4d7deffb0ae80859ff3c3e07f7494e16671ff2c2eeb921c52fe21891ec58042bfbd247d6576da111a7b40d0d68d7a66abfc133b55912df8f85fe06985cf91dfec0c6cefdd646ab64b30abc9f402e39f246ca3b90f9b3c7791443967fc31c15bc38a256661125082ce326d61ba7b9ba49614cc584507cd974baefcdce6564a0332deff73db28129a79b28883878e738551107e255a719aa10f5a71bb8ed70d053c7a0f64ff47ce85239bd8965dde32e87720a5661756d2bb890e0485bd3ae22f4f030a9c76da63fe0d27146f16fb02109dd247a763c74359f0ec63dcfd7146eb747e15be6a7be46b30b1c7e91645926122674a722cd920d925999a9d2bc293627b5395143769c26e544e87eb076124d4bfed589f9a0b5cca4a7f52f16da6cb35e3956cf758d0848a6715ec8c3abed15026d40ba323940f85348c6c7759c5d7fd0c309ae46e75fe76042f2bc3884afb8972f87f3f11bd1815b39869c1ba5f4e35569786839c792c7149fcba176623566d29ab1dc29f3bf2d374f24eee794e2003af92a90b06a5ca67b5ccc7916e9aaff10ff1387b72d72f6edf6b450ec2a47a21311f9b4b0edcd468c43c53b7e6a233ce134512ebc742b9e59f8be7e7605f2df5fed2ed705e679cea3fac404eeaafd03b0345764aa821a40ba383d696be7749c5d35ea43519b789c06f316ccb7fa468f5562f688906442c8dc36d3997e51c14353e6022cc2b882e8296ea274808bb87ae9e62c307c65cbf30ddfb2453497d58075c2c4e6034dd8261032924750fcffcc5fdffade784907d7ef657978136ab2fa29ad20c9c83c3e348a408c5065911fe61e0c439a1d7ef058116934f6497d96dc661f8ba21fc255c021c7b52b6aeb0f1d2d219ae131ab0e0bd01967698b63b859c14b3252a7204da5cdab7bd2f78c6cb639f024c92465635a41d115ea6d042f3722d605e7be2e868909183525ca088719876ffb987afa2f0bc147026e1863c528562619ee551c64380ca2d8c315803a4098f3657d982397be8262f7d34ff4c05f45b6b0eef3d7c13fe542c851509e08b9fcbd9e48d1ec72c790cbdb9dac3fb8c7a57c8a9e2eb14ea840e309579b0d04096ae896ba2f3e45af7939dfa922b96d4b76da3c3b992cb72ed55c2a424f371e020fca507058ca189294a772db81e05f33a50282c689cecdf4c28df5e17bf6cee74be67ab96d7fe26cb1d3a0333145557a9db5e4257b1977bdf7fb41496b74758c94d2f7154d5bdd0e2c4a4c7581e600000000000000000000000000000000000000000007090e171b22 +flags = ValidSignature,ManySteps + +# tcId = 27 +# signature that takes 22 iteration(s) +msg = 7d00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 7b2fab305f92793314f5aea42c8544b5a0af4ceb7fe57f194c66778c320257377aee97acd7b9fba4c8fe18cb462792452d44c507f7840af2c6380d1a25254ab0874ff347626511b93723bf76abb608ebb0fc056b453473b1d2c6d7264f0f2712ead95ee34fd8f620925a36decbf3097ae92f04dc9981e1cb96da9fca9fcbb41b64fbb617a21b17b37661ec5bc538f00a1acc07aa667482daef1055dde874d59b14327dea97ad4f97fb1430972ac82360e9fa070c9b3ec2545037cce1dabe34c274c1894add81507268721c2769f19fe089178b400e55822981c2f8b9f51f96c48d83ac24ff55ed8f5a0645d122f1c17da2bc8da50cf1914d2900b1389ab9f1a00b6253a67bf907641ca5385b49a07ad3ea0b37e458e6caf5b4dacc7c74dcff22ba677f23ffb64e9c1e2edbee99e7c73207d3f288d2285a7c0e14c3b2ddfca88df6934acba9857083a131d50c88d8f8ee8d24304e5610dc53574b8d14198fa008435d33d03c42e377ae3c627190a1c6a1639ddd98ac90b6b6d0bf7a50672000e0d09898f21c705c9a5de142e9be15c0c0f9b06347f61a0ae9741aafce0c418ffc1908c8c20b68be48a6d5c8f5c0762932ab3e73a284ee039123c2b9406751ab6cac8c610b2aaafdfe539dfdc1e800269a0a1fbde3b5bb03cd938dd08160fb8f236724674d016a76d24832f4857bcaf7faa8daee394ea5d97cc12c6de62081050c0d0f46b10a456ddcd12e352f9fc5a9776087fc6d16341e0346eca5cfb3ded070e278146b987ffcc9d56396fa970d22a20491ebafc95ce00f5b6d8ead65868bcb6dd6f31bb2a9d85b7951f9ce8a8f7bd7da2753e54362c8981ee4714afdf398dc258f3f0e485db710f0393c60a301ab97d801c7f268385f5200e6bfbafaa69ccd87fc1eb0c29a2c6f73820d6b5f561ad3659e7b895a9ca7798422a673594ddbdcd17abab2afa6b7f5d5c0236b33b3b8e6129d9a40ed534bd158d436bc3279c769abb3bcf4ad5c4e864f2461915266ad45b7bdd91023a09e1b3b2700d8294472e1b4a40bb1a57844183f80dac369ef701a0bdf2290f3283a681dc432b396451f79853359ba9df78e8a6fe6a1ec4017405efc4a78199e3365854a1c94ae7affec9682d1451d1a219c9b9b17ee6726281c025479e2dd64f835ae15aa2da8c38f4f07b014b0e71e88a60b95999f77aaf33a64cf6bcb1bb93bb151b1762dcabd12201a5a1e7df878b0c1055c2c263bb10952648e1429839fd180c173c6270f7a0c43c7d1c0bcadf81c0400f1d8355b7d0983802878d36ca0dd0c251477c12cef09f764cb261e171c1d8052491e7dd0cbc3c2801a06d7cf6a67d55c3f9633a8a2d74a1bf49905d29c7f574d2a2039f41835dd6f7880f3dae8b60488580975d9b19d1c2d5b64f91f01b22caace58142ada05cf6bee8e6903362c18296195b1177b1aba590e9865d4df042a33930180fb4a99a7e0ec262a38f739c098e9b48f8a6033434bd506e68c46fa0a0e9dcf7562e27b48e450c71e33602200192fa91828ac40854f33ecfe8ebb0aae4ff1dc951c3ee248783650d9e4a56e7d913e5903abc845b970397d8ce6666f410505336e7b906ba63e77470900397451a8528ff8c376a70403a4300f80b5573921f29ff90728286022f6ea62f28e9b6884f1c6e9d07b3d20ac2b281596ba6a2730b9cf447cefcd72bbf8f95ec88d0565e711c286a8c269ae9ceb287ef6e6d00502a8a89c766a8c39d93c3bcb654a07acbf75c7ec12b8c1c494b55f9a41195d3fd5e19bb4d93cbc16ca4f05be0a86a9aa8994d12584be162cc4d71fa629186af1e3d3b74e5c905c8be923dda76b87071e84883da2585f2afa64f0955434a53f0c0cd63761291c88a4271656e3083982e9360e0b76e18f6fea30736cf97f59256b5739faf5e87c51bc76a8fd06b4a8563a11a3f2466249beb3eb8fb8fe8a3d0b9f06484f6fdbffd9aa7919188b626e8310f9d1c83392ead724185c62bd1b2ceab020cd305c4abf081bb3984cb50c1cdf7c59456c96f91016e9ad32c2d47c67218db359248da09fb14feeaf6bb343319633e7869d6103571bb5b587256eaf4551d5aa74860ff266f57e55f8c65a2ad87aa938b7f156f2022b62282a0cd4173dc090c5a74aa5702e50be4495258c509d22ed34d63622b62c0dfe1f53464325280281a95a2c273e17319dec4ccac46f31d953743e03bf22f40b0fff77409072dfe82876d9d45a11dc0f1d64010ef32d57eb60a5288b089ec9d02bfbfca6197eae336363bba37435e1e558178613807da640fddb0ef205d7c91ec186b397bfbfa10d588235013aab3ad21744a5957def19bb7bb7cd4f676b23c7bf87579ae2a5fc8c0cab31d72079a4d0cd69944564252f9603b508f5a83e19f09c704c574066617e8b6fabe690e85d92dcac354a435319a93cc2fdf3010c52e38d6799381e8cc861d69db0ca8defb5f8b1c017dda46ca9302d8cc1d3b1ede0c9dd63349bf6011050c968ca3f3011109314dc9655d1a30f198cc84bf12c812e90939d7f4075e32697dfd2cf6d17589494e775ca982952b61f8b99a84967a431deb64ef7ec9e882cc761c8bc66f7de4006eeb13f9b6ff2d92db458ffeef5b2cced63172c0f4764da145115b615cb6c0388b6e93aea63de74bff64fe40dbaac7769981bb9655de32a881ada616e96cdb74579a0065bce2da90b64a813d57abc8f6543310065cafbbea9512355cb3f058b35bcd357bde9f55fea564a6b14bb341c6c755d4dd5a72ac79d855fe50aff80d683530ee563249d0d65f64debcb24962c61ba05c5f811b9e0f4e5942797c24d2b08a4592d590cb871272f5c1228e9988955ca4f990ab2b138cbd33646772767d4f76e8725377818ff1cf03c01fe64bdf05e61a1798c0cf3b4b69b1df9f756ffea314fadd17a6c6ded6765d59b22e449ba8c78b1f8f7b717de8a4462b02d1bf22f24e821888946f309c7e60115049997f0a98e5f04613acb46b5e231da31c482c25e7eac53f09df009728675e07cc3b33a0b0c6e9199664a00c8236a3a9ec9d6d5aa2e9317da6efc75e03d95d4747d51767485c4ef9fd438b767265093bb8340119f94367b506796bbb6ef67dce782d879a3673c0e8415c6b55c4faa3556c7c823879ebec0694dd0783ab8f5a60ae10d1c3c42e309163bdadd31aea4869a673eaf797138e332df0579567ab7e0d1e72820de3e7068ac2ee207794ed41737dd698f3d9884bf3d8f37981406d856a4ad5a6862df70400fbfb719acbcb0fd6bdf6d7c4ab3aa10bc8d6d7452fb9546845ce1478ec9804b3fc0b64e2a292a2b1e244a3601fab84d082eae74f635aaab4b5c1e6c342a695f6804238887ace79dd8dc63c2266d259eafd2fd876517ed9fab048444a61da824c0c836977a82591e1f7a813b0898863c2566a3651c0570821ee974c4d031ea7df06264d1616d48bf6b2ba17be39cb363843b06c78d112c76cde5cd8495c52019359f4aabfbff771acbb91bf97a5acb1d46d2e721f78695b8a66a145c15bbbafc77e5070305b37e854eb16adec67495c35f44068ffd1ab55fcbced4c146055343dcd7bd366b604ef8775a9985a1bf0575482d162edad96ad645f186bd2bfb266c3b178f01729037d9b7ac8a77c518cb5f316c050edbeb0d90362e21d5dff7be1f8632ae42cd13f9d7071f0ee0ba5a1a50a77b05fe3f089f1ba56ff7746ef35ae7bfb16c2267118e203b75ac19b334200949f8db6dfea57e0599ebd3ab484bf5be07a1d1844aae9d63af81cfdfdf1fff686abd1093d27abdf2e92308ee6e3e15fe197e3a9bc6a9ca889e06cb73cf824363267d45095e8b71f84a9ca49c66ae58713edee540cc357a08a7b855efcbffd95f2b765fc9d7bfae809726c3632915a0af1cd1a01abc864a56539d5fbaa21f7a58f430164e81e65b90f453c15f83fb9236ca8f54fd2c7e50d0258e9a383444247301aa1b42c3215337098ed426bdfdcfb251b8ab08c35fb0570dd08ec68c1896a7ac95ba6da0437954fa029b03aae7c64de3ff3aeffe38ef8b208d9dffc62e32f44bb968518b9a0059cb2ea2e59b0c614b7787d0068ff7fb5bcf59ca605dedba63a34626261e7193e97e7e6c45f3956fb46c10e88a94b8c097cf2016f1c2f76a4db6568e038373a7f959c09ea1223c66a5fe011c241f206e03dcfa03964dca7bef53f1a442591706fceadafdc7fe0b1ce3a54a2e391e51555beb3a290c29bfd2d88f1bee4dce1c6357b4966fed12f61a8af8c90bdad34b8d9bb9d04df6c12b717ba937fff7875cd58ccb01c8573f4341fa3d3648cde127b6a9c4a7b09dfcf50f39bf44d1fd94f5da7d2fb1c2578b9c6ccf19b9920bc76d1b91513bd9088ec1e818898609ea9f5719e4b458b9ba28cd9dd43b0402774dba02f4e1e6e5c71b167caafadd9678932176710a41184ba19702e3c40663735a1811c56ea6817c99f20b5f9595855b46839cc64450acfc71cec14c5d56c2a799ac26569cf58a8d54b0f984828d379869cd8f5eda5d0867199c914402b016decf3e98a2e63948da228f29e6d52a9fad658997c1d3dae404179370ab68075e49868abb5d20fcd4641a83469bc20a288c93abb2ca105b6bcdfe0f122129303850e3f33f6189b2bc89dbe3ef000000000000000000000000000000000000000000000002090e171c20 +flags = ValidSignature,ManySteps + +# tcId = 28 +# signature that takes 23 iteration(s) +msg = b900000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = c00dbc9431a2e5689d27b5a3f09c62fd6bf48550b9c6424db5c6027bc0b5cc8e9d29f05fb9d8f50a85d2c5d8b7a4f7f36813bddbf7caf8eff67a6c2e148890f9438a5ad85e6f4eaf6173f122dfd160a0ad5cbb091d08130677f196d22c8bb6793d174f71516d42bfdbb18fd9a371286d03ae41c7515adf78b0b9d0279538415f886a7818c6e09117ea092235cf18bcc834cc07de3a639c472d63cc2c42f6178a4c1fc61e5ec1fd5456851d586f37b59ffaf43e3887616136f8ae775063d5e24c137f63023d056ca2bdbc4f9e059a906fecffc72cbd6ff702f06429a66420bec5cf936c4d8f0e2f888c9b5bbe81644be03bfbbded0a1ac71b1e4c2c4df783d6d2621208f88c58dbcd947fb62ab972bc0865dd043528b9fa057c4e7a0f7cfcc2623d46745f4ef63b66aab5ae5999c625fb20da4f40d2112e53122707837501a0db379f262977c853083913030418cbb78a12bc6fb85857f401b7e9671eba59c1d11b55f83fcbcfad880c0d8492e03935341488bc7f1f77daac3972a028adcabc1b3f3ed7ac41a5caf911aaf8c76e0ea75c1f4ddd109a21e47c7a5fa2103dcb5e588c354d80feeb15c3495c9c0303f7d42e2a211dcb9b0600245b35448735877d6fe378b38aa279d81baa922b56693a2cfbde2efc23fdf80a78a8f50e9c587f2d63e29f0631633743664a83ad3a61ce12fcec36858714f399591229f7269023412b7cb3cebe64691d1c63a297859d10d12d221a43e37432da12c9c7965aa21bc82f7047ee6018095f0e832677d83f490b238f00e21251cbbad5a9aeddf11d4d4dcaeff0ff89caf1e8639ef0d26b31535c3fb73fb42a6c4c399882961a51ab5799109f58104abca73d8083c2a4b64ccbb9c1744b53d8c416bc902802abe8d7eb9a39405c91b61234ca7d35735e18e620067404d0226e7410f63c52a5ab4ae58281496d683b84e88055e970462b9d11b75688f8cb3dc47caa0ba1caa5106621bf59078ab30b113b4408d891e63eb7dd1db637607e6fe8b8b835b2205c5b17e7650a26ce59c3ba37a691a8efc35b847239fc7c60f61ffa06d3025855fd8e63f1cabff8d3f76f19ab3ebbae67786de70e9880887642259bc89d4bca52bd243b851b7e229ed4aa7170d24339d2e09ea779189921866a9bb773f09cf832b93c95b8846e2183f8e23b47a92d54af739dd9ff8cdcf13dd9fcf3eba396d3c76569b733aaa543051668cc436b2ff40a366284a0eae55246389268cab3d516b19e0d5184324fab0d0298872fff58af31cecbbf9b7abdc26509792483451da1cf5c53effb81b76b2cf28d0892de1cad6cd4ccf91496d64d31b9e8eea56cece8a99813ec49ff568c32763e3164b638ebae34852f8a827b781ba03f4d42297b5725c97f9a6e82668405f3b0c589ee7073121e07c7c39901e338685a5b1da04a127cc2301d4ca4685777ca9619f3cc3041a68c4d6034cf3d58dae42e61a65339885151f70c12eb9d32baf5d124bc9b47775b612e35965f99ac25b60bfa182b84188eafecf4e761b58be536d8c241a5df7cccf92bfb51a9f796521f6fa8ecaeb8574c28736d2e9a3e05aec22125b8ef6972cf5ea446737931e2b3c3c27dc3c84951fc60c89151082d222008a271888317c7fadcf621c115774038f21f89558111247a81f6f5e075577bca24d798cd66495e4f4eeb405488d0c39ca05e8d31619a5e65bb6b2d5b8e5683532e9475cbb65190a4abc6edf981a4de572ba400e6f200320cbcde65f64fe9cb8bb204faa9ed6cbd505b63aca60ade2ca9c79978bf0d971a8512c11e2f8bb9670984cdf29fc1a08c2e0f60cd4bd0630c0b3b34ab16f98e36e68a72841e34525bb5c7bdaae3c221e6d62c5b495166a9acd5fe878c766179c4ea5d88b3faeeb92bd0ff372de4f0b4f7e9002c097c2ff679c25467499b28912624de5252fa5d48014289e75a73b01021fe0f302e71342d525a53e754c4ae74c700bf187d004ca04c7bcbc956599976f70044fe70d22a0c82a3cc2a4aedb839f3c1a1d0ff61d815fd5cc74ff9c4eb40454ab6a53701913f176df2d57eec4457a98ed417c6e475d4fa068c6efcc2c6fa68bb80dc14d88d42d692e81e3b791955a2a4db7b9e0b2e959f4c4f04157ddf3f6b71f93e2768bbd25e807dd3a73f3db6641b373f1836782fa9da011c16cc5b6ffbd1fff811e23b1a3e0ab162c879369a13161010f5997ebe78fdb5754a34ec51fbadddd1f2afb927434175cb7060801c4ae80d4fbc8f9548381f6bd941e57bb617fa5d78ae28708e054a343b143dde9d5afafddb9181484cbf910d431dac96cf60670753ef1471db18911c4de0f14468376aebe23a37d7a661089e5487d9d3c5115a563f24267ae8fef4acd06105c7f2da0ef1691ae589105a45ca335c408e765395b2a3cfeeb3a3d6479780e38e7b52af3259cce9206f305e7842471c6ef555bf1d3fc6e0afe2b8ab769e2aae1b4b97339c273c051abf2b62ee283935f4253cfd1e855a2d549c3ed591838f423db0aa4ccdad5b14956e01e7afa729bc86a563030097bd6e446c990f83adfa5da4a2d71e42aac0256e8e48957f301a745733a5dcec0f761d7da4f5842c99016ae2d91eba8b29a9fc48ced59a08dcce4efa84acd21583442a24f444ee03c8611dcb108f1e9d8d6cb40330bc324831af3adb7585966f3312762d131ba54e45b2b695804196f3b1bd5a5a633429579cd18fc4dfbefd7c7c53873764d29c32938f25578ae0a7950c29934d9d878623640adfab823aea5b248348ed029d69a41f2762e3bb859fa62cbca757565e56759dd51501feda8f3be5468dea32f51d5503e9641e3bec3b755aa0fd6352a08254c1c95c5b65472717c486ed6e090ebaedd6eb4378e75bd71887f19bbca49ef148f913cbcd0725c5097cbd601e78a8746464e552c08127eeebaff5de1540b37b7b9dad95c74583eee8183504dc4d61d1b30d51e5a7d561173404d97b563693c17083bb3b055effcbf0b40e688ffb37f46d3a291ea0b54cef41f8f49464480b17f7017f7f6e9df2805f81fc056472e69cce7222b827b92c3fb1aef3bcaa6225d1e8c23e0cb173c2c2c936b43e89aa89886371119c3203b7cd3394e7bf29a0fbb64ae19d476f118dee4700a7ee400a73a07a8896a441614e3116f76cd58ae6e8b9bde7ec97ab8776e84c9dff4f41680fc306c026ee5caf39b58c3627477c19f3f39b3e35bd4695ca73d4080a80cda55be5d3dae4eeef8f24057f45b932fb6e58c965512d3bb07fdb87797ed007f675d0e89085d7eb93bda336692cfc211a289fc104a9fadca4b1de6db0e5868930ac571814e175cee5fa8db276ebfb1e51809584da93bfbdb0df3397ac9f4fe47ea2bc772c7de7006112cb218e5cbf402a923baedcfd9e4991a8cc03b860beffc9afdd8bf7265559c5af0f70c4372b1c24eb8d4126debb564780f7286aa17149697e7d9c327ca50babef283c6a991bcf8ac1fc83743a8ab4383cee0768c556c02194b1339f92bd1f1e4919585e74251ecb7defb768021156c7f096dabd1aee777774b5d2537957d1136bb457b7d37dbebd581a1b60c4402f25c273aebc1bcc9d2ac03fe3f93709932b5c95cec947316d8762f59784baa0039a33e8916e16ac727005ea0f1b6eec3601cad5b34bcd6e4c8f3b49fe0b98ae9e081e6d6aedc88dc3073e753a11d0c3a4b64fa0d4204446aeb877cad71f78b61442da7ac3fad1d8f581be0496ebeef0c4625c18f10427983675e57ab7a80e415217133352b5b3819c76d228f79047cea790440810040b878b2a54d18430c43c322f83150ed13ecf3349c158805ba0216b736554859f60d62c0ee8561597f52a51677beca0db358ce367da78bbfc6f1c3a9445c53fd91e0d698b26c7b8a2b4a201842f50e0d21e1539d90877fea7299fc08a831cfdecc45784febfbc462116a7bd12dcecf301a7da2a978f6527e57f1be5b52e833039d9bd00dcb87dcca99dc887ca0410646df7ab7671714e76fee5b78006ec1c7f53b7b5bacdfe0bbca426035067e7e00242a604c568707228ca6d5033c26a9b2dc6336124e329a98e78c1245ebc14efaa499183c7df43b916d47dafdf9126904c8b3559ade438b2062aafd600d3bfc3ee5f3123e50750faf9fe59571740d892371143706befe00ed39bcae1d7ae604a9bce4e889c4b0669e5fe1103ac5a4e615903a5c3d645144de577d4aa9d3a4e5abeebfdc96abfe5a07ff7d68aeab1b3e18c5a118d049e1e0213e2cf9da583d2b9f7108b972d467104599e557bb36a710d0beec84c13cecaaa0f511355ccd351da2192f450035d6df92b955b7e241755abe8ac2face7ca735bf4d034bcb289dd37e7336b382b0de8ab1a02b59ced9ac9f12a38be2a9d3215125ea5aca39b1b47db4756a402d2c5547819d0907cc3245a7ce5b3be4ae2ba86c62374337903c6d77986c496798789498b378227565d7b977b8eefe14351bfcf49d6eb15c3385e8f63cc9fd13eb69c37092781e8c2dc3845f744c1511c25a6ea363d7b3146b5602a07111980d9ab1ac4376d46fe5990e75bdce9de24b9af38bb6c65e6ddd410a1638b5eae14bc596110528a237a9fa7bf1838614e6e7f8ad3070a97cb010b2e30438a9bc1d0d1dfe9011517596cb1000000000000000000000000000000000000000005080d111d23 +flags = ValidSignature,ManySteps + +# tcId = 29 +# signature that takes 24 iteration(s) +msg = 2606000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bd1c81add57c6fc6aeae596d5e88a9a40a1f146e21b923909e3c90f10a77c0451e9af75db5309434860e43f437f04063d72c40363967069240efeb1d04aede6738b9b9024b8186041cc5916b8cb0098fb0dde884e093911e4069949d720ca2e9ed86d442ff7e07f985348b569206c6640a9d14d3d89d6529aaf4b51295a6384b3a6e63a046d3e89bff5079d58728780fe8050369a06b397beefb82a6ae7d9f6b5219f993d34655b578454f62fcdb8421b8bdcbdeb43139e4302c44d1ae23334dfe8b51df8feebc24a936bee7b4b647826994da416318abed7004abd7f8b446a32e8229e60f1007b1fed5795a8df27392e7a3a1cf8aae5184065ca28312fc38395f70b9ea8b8cfcf1015b6dd4ea1b2c17b22af14234bf102a06ebb70a35ce2c9d0c8afdae728c169609f61aa09afb14ee9911cf41e6632a031c9342f8448f4f78ab81ea49cb57d18d07feb70d18c16479a03d4cf00b2e5e885113a16a50594901c6daf75f49ff990893370950684a8625ca8e882be5488cff442ba82d9b3b978e6908edaaab70ef89bafcb1327b3ed7277bda85f1b39b70d5f3571d5619ceeecacf60e29a37d9043a3cf41e03a79b4747025fe3ded7ede991939edc8d6e1491ba27e22a493ae6ebc189828ae00a13730dc5653da364a79f0d3fc00c0c5fcdfc7107f235b9781d5ca972eff4dcde7d38c1f30fcbd3e51d79c356dea6694d2ac49ac46850e06b509e51f6816e404b3de241cd3f869c68618709373d54eef4f244288e13a0fe8331a09df7073c9668ce07e83cea9a20ab76083835157e8c75408694a5a012df1b1e1d08343bd06d81f6dec60b2590ad6ce34bb66bdf6ebf0e21b1f2c4acdd25b7b212cde6b2bf826c13216f8f62be455202096de344759a1e66863da69cb0268ded55de9f41e4d75dbc15c43eb7aca6b7f8479da0f25d3116b1bf28ff205f8d25129a01f22ac3976c80eeddcad9e963fbd60743e8976e2175055bd6ae589c3808d41e51e2077d7e2f9a5fcf1ae687d7170b96bbf8d1cb67d146480dd38d6b52f877622f489354e587a4610756246d647eb1dd002253027032180490924c8ee0317bb4d8d7c1ef415a0df37bcbe1201b4d9dbcbfde250a8a89a7695c280a4be8361520869b5d23aeb6e7df2737eb1f28812f5ffb9b1302d5b030182a008ed813d8232347342abeb3ae7f7172d8e85947899714d9a4af587a43bc29fe14d577c37a2606178d342aacd2e9a33e159aac81f29e6500f7f8e1027d3c60c63498bd2e391e4be4caaa6c715c20316eccaeeb2b0f1e0b66809de88890a0d14d251570e409de7b84a4ef7d2e5b489a7ae7378123203ee261c06380b44cd6e256568c990d86f6cdfa444c333ec851932f27be415d6be7d8c1e063a44b62786fc1449815072c111f5b98e8c7d4d994c68cd21d0f07099c7eab7432b7853ba55ae27cbcd48be775b9b5a9d407c939206bedc59708f1efa733ce1b7f3df559b4df5b1bf8c27f8860bd837184cca59480fc7605b9faa4f1680c3389687030b68e343fc56fce77255267ae53357fbefe4f122ec52ae2caa58eeaaebab6cf7dbac4cfce5c95bc7dac91517a85b14c560eb604e5fecafa596fd3e76bcdb83da6b5f239ba8cce4a9e14957a71306e7efdc048b9d949a8cba9877ea329c39ba2034da897e57d4d8f94efd4328b38bd27052b224c7366085a578524b6f42ae9a2d047519e0575b3cf6b10a4578850cb5008446bb32996940d25c7da5300d9561ae96e43ca17614cdbee350e55e4a07be349d5b181ccb3c806a2cc7c1ac165a3dbecbc6656beae26bcd37be4480dd88bbeca8cb2c1d12d4594376d1876f928dfd25559ed402fab01b0a3a3d7eed61a845a31d3f2cb8204b7641d875304dd0b9a84957914fbb3a1d7c15553855f8122dbfa5275b0bcc66e49741bf4f88c37e830f4488b24459076039776f1342e1a5fc0af17d81d96c939e1159ebe04791fd920dfd6eb7d8a74fbda316d70b4d327a5411fbd0e25edf7f9448dc275773c2f05e9ec8f16006c4c8ce51c6c3b9be2f3a78ccf90468154914716162df15f008e64720218a59e69478163473af62c08780390b21638c7c86ff5ed90ba003e9511651601ac7ca5f505686b3101e53c736a213bb56d86438b9707187429d48e3dcece259b4f87eca78cc9720b1139bf27f5deeb6614002e5932d44f2220f22058e5644157e334ffc348d25a2be6859e88b27d365c5a07f86fc0d74b68ffcff73480a14973b701eda3a0d16fb39b86c7d344a51f10d3e4d80fa4a240d66621a436b01e549dca7d6ff595967a41ef9892ee3a316113f5df6379c529aacc5e332f4e108a613c799102f962a9156c2b7d807ec4de42b315a9131338f2aa35f889e385a79db045c042d6b4199ce0d924a859bf182f8897c1aff76c4470077c732147df78ad688c38f39c41c525feac6cc92cb0e58cfdbd24f14ce7d799ab19a57ce7542abe78372143b39b014678b7d02855d7682f2d1cbaa063a5911de020500d7bd4b3e45eca31d992881a3b9d8044d51c4ad2b3db4589c3c6aca5c714d31310e3ecf91950ff12306e52302b05aea52c2253a6caaa21f1c7b0b4be41fc00e4f2b318246785157f77ccdeb1f8e85aac7b97d28db41a6eb5524047565c9975b155d2aca2b98d85fc9d1a4e269adca169d145fa138899a975e13183720ab912051bc9523be26176b910d98fc8e191dbc564ccb1a0767acf1c5f9a92e501f8098199360674727968165293f778f8f87335f4b9fddabf278f65f205179a43cc8fb60047bbc4b26beadab79b35b1f316283b595046aee055d68e7e86b5664fc8b32343f9b488b31aa0649433248e531fe5d570a531613a50c73fa6bd546c861542ef16be17f35ec4fe92d60905b6baa3a0645ac3ee67bc6bd5361def91a6a9786afae9dd11c49928873b7d8efae32772ff1c5b2c065bd9ac18baf76606889dd80ccab7c9f0d3eb773fca1d561d5fd0811faf01dfb1f8c1c13010d23f8c1f467ed5c5577ab6002234c295c622044a306299855588fe45a48e00fb15b314d646d80daaa01d918c7a5cc1c3eed27f12350b58c6fd715fae1c932280dcd1affebe0d09335ba3992bd3d1db2a4b215b123da1a68c75de8e187297c625db9a9a1533a4bfb1ee3c6acb69f2d8149189d35ba80077aba0a1474d164ceddae3e8092c423099a0ce048420b03cadf05e897b8fece53857f0d2fa126b3b9bd80e31cadfc4400546eed633e1d5f0e4759b918eb675849f86931541678aef583b9b2894c905d7a5a0951355d5ce741c61c146f2324a372b87168ea7b380164a9e36bb3e63c3982eafd6f68e122a1263e745fd11dcc623d41c4a1f191cbeec16b2bd23ad9ef5a6067a1065f21a59bbf76a47f35a6ef3601dd6dffa00a96381d037e969ab938a57f21d38979c79480099f621cf8951094bcf4052d9c6b0c45cf35a987f254400b7d43f9ef50677192a9ea867046e5efcc8706aa599f82cf59ac0a67fbe162cdaf2c988addc0d7f934b850cf5739bf65b7053d280a79ec3e7e5bc738c33a883e31484d0003f2dde5fa7e36889f544d126e2e081bffcb41ebef6185e73399a9a336ed07c119cda65fc115290f149802f9fd73a6528d8bb05f0b210fba11ccdfc814d16cd6add066a8ab72471cedb354a4f60ca209153e7b0b1d065f37bc756ad1100ae851c1c998bd36c649f8c5a44ca5958dbffdd88bd925653081e2cffceba6cd4142a4bea47cc8fcca2f5e46534494689d45ff296dfe2b1985896bd71caaedbbb7ec7ceaf6d540c2cbb8c2c37489a5932263ba0597c3ba25a6ab50a5a09af3b9cc6a2a2d4411dd0d3608fd163355cbfec4a6dfc1bc4106b44196a4591af1b6e3a75e7b1f3769ee924984781197b9c2730e9bb1750005a65cc74689e8712c2eb16875c5da03a8bb29852e77c08a16bc23d777c99f628c688a023ab8431db5f3d0f463d90e698e3430bf2be8d02fdc41035b5047c1bfd21c936ae69af73eb258c3907efa308c71d3f8d9ab0d40d45c3888256d9c3a04f26c83eb63a77f290f2b58c6dd4bddc346266f97e55d0f044e7344c37652b8b0fa492dd5445e84988ffb92249fbc69be049c825186a2973631d5dc4d10896983bde511c87e2850318963cb1e239a7eba4c06b6a2e9ee2bebf127f54c487fa3b28636a2ebfa0ebe042adef1fa17913692ec0d1647cfcaf6c90df6f9b141d8fe9cdd8949d80bd9ebb0712bf8dc1466c94c625c9a9736fe4ddf78aa6574de6b1724a7dfc5bdabb99dc22cc3deb93d537dd5d1b75eeeb4505c8f6ec102ba1e694858ae94a66eccdb977432aa02f1b3616141c8c77fe5512ce888262cf2a3f248db8cf5130196f73dfb90dc716b0e21da55ecaae1abd53968a6262a1759724d2e4ace335aca4421b38ba903f501adde8bacfd7e6cb254e15a1aebf1ebbd812176beeaab97f205f570f5c2e96f9327af9c17514b2e62ab07161ba674e46c1dd6d77c070114a90eba94a212e4eb5e6fa62084418afbc0febd8224210444953603af26d21ad0a5ab8812044dc9522cd42605556c501aba406089bedd703ed61fd3df829ec92d5137c4161286ccc43728d99b2b5d2f014161e273238535661a0f1277177a5b2f86d71acb3cbe1eaee4b78d61a6cc400000000000000000000000000000000081319212427 +flags = ValidSignature,ManySteps + +# tcId = 30 +# signature that takes 25 iteration(s) +msg = 4301000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 5986c4549caa794e266a06862811cb2c44d93bb0ce32d7be8957b222eea8a487e8ea7ae835d09779ccfc38f48f7988f828b7b26db80d5e391c6e19ef4e190bec207775b5f0fa2d3872c8412a895d57c490c6da737df3c7f0bb2fd62a676f1a78389efbac474f277c4fa9b08f3dd0a82ed8876e3fd7a3b1614cbd5f0c51538621cf478c27ea39d6542bcb62338015a4098b7aeb69f0131cd15ad80e7e797bc327c8c20139992d49a66a63ab341a17c080db529df3c30aa8d76043cd781b3f6acfe97ec231db5f026a86d5a54bf0028a9c6b9452ee01dbf7ebbc910ea50f8e4480dd393466c8def5943ba822a67e7d5e20eb92243a84774e838924d7adf1e45c65cb85383c653c1864d51663621e3914b1985868f50c7fff42e04d57440d5aecfa221c477b7175ff182d461448e820dcf7b5f04c132a8194fcec3d4d02df24db406a8782aad71d7c27bf81e2cf4d11e23754c01b3dce63417e9d812fe5004c13c97ba3e4674b377c91e54c707f15f0ef9f131e8fc875d52b696fd46500088c3925da2ab487a6869cc8597ce2336f6e3ecc4fa42cce8c24f5783d52166046b19c661f3084601723196a65bcea4930a4814a99bf26c48f84bc810ab6829e82351641f21082b784b46e2115a08e32aaf4dbbdd6b9a5c72107f405c47d0cba1168f80e9842d4e47a0dfdd42e18d500e1bdd573fd4e4a7cc18f44953ea81d94bd1694bec08e67ae218074c1f179063587a65cffea71e385ffdee9a162fbb113d4247822e46f13ebb3462a394323684baf59bfa80cd0a1209759fd39f87a367c19995b92c7ef13216a39d0233ba66487c1ed46d5ffec611f427abda454f5be5e34465481898ecb4912c1a68067c4aaa33f525911d77e28e9d764bc1124a5b889fe928aa090f80e41807756541ecbeb620ab4d507ae30b17a684e2a18af0865f400904321a9f736fa476aa8c5f7edc4ce3d883c197fd38edc4ecfa26ddc86653f13fce2eba247df6cb818ece36df59ba220b7ae5cf6059eb23013a88ec4aad41d4264d2814921c9723fad5aa4393a646ebad0ea1dc277f6f131513bb77987c9275d9efee0f593f4126b490c1157c72d4de8676c748f8ed5b8778e5687e000569802c1273a52209d93b6de376621932e9743857017ef1af4f313a346c956b2a0169d4f3059a7ec5160f5485b8f00e67d04d36294e5f4514251c5001eb8da57398fd085d9564b959d4e2480b94b05bedd937a00fe713f1e894ed76ea0349b79ba0343db1761f23216ce929b20ff49cbb7cb2cf77d1ffd2675125e18270e081b18c86e811881695fc9df5f17842b1fae833dac14e1b10b32fa8e8d83789949aa0c23e46202453d6836511e4731dcfd1817aa02463ce1f175aa3c6955cdbe5c58d970dc0d58385bc27b2f33beb6eb638fc9d8fe285006436992d96948076b35a6dd50f97fddc72fe9342408841a5aab7893183d465694ce956fdea8f7539c4412d80f6726c2d726b23ee6efe01bd520ea514fb751aeac7767b42927ded102acb1cc985f6d371551306126678fd6cb64073683295cd6b84299c3ba36a7acc6810e4732389408919db59b2acf0f71178af017d114d9d543e72f74e0a6042155a34e9eb313106428d15f753f35547216e47500d3dab9877e0d8a8342606c4ab83e421c01389087f7763f7f5ff10c600c2308255701cfd04e63cfc435cd1bf1b24eb8bb8a6812d6b38b7fac21fb67b892e04bbecd2a8433c0d104e950771b2243595be35423833d46a6b28878cc16a033385e6bf6a94a4a6d1d5518d538fcb475af1d1c476401edd05dee0b014d5ce68d95a06c8a30c68d8d33419ab4843478708d938af757da39d45a7b77f79a8f8a2c944bc95779ab747d555094f1b04df45dfac56877377d5483b56ffb1ca69c4dfe07943b41a4d434a7ccfbcb64a374b61af0bb203800a10255b87c715a6366cb1b6b5582135e8703d64235cc714beecba43e4f31cc920c6bf59343d5e78e4235b9acfdd8ce49fb38ad74113a0feeb647f7179a33299b1a4bfa60af1e70ebb070dd07d33aa793e434c9d7aaae98f018e72b1ab8788644c4fef6b0028a39c30da55187e183413fc79ebe18a84561c15469e294900a74494e58339972508086dace548868594071467360f24efec75414ef502e5f389e4411150672b91f62984dda1b4760de4e738c23f95d9d6c56ebcb316e4ea71253368ac460e6a754faa69f2ece3a13c36dcbeaf142ba85cd506e30877baee307ffb945afdb387ed02399ff21aa9746d850c5637a937cbc6c3b03a27142b945c3da9839295a212d644833c0d85984cb5df2f7f139da90d66e6e73f51c9c3ec8ea590fefee063abf28bdcd2def788f25e40a7e25d01c11def224fb2a42b880f725e1cf2f8c08c8e6b3f80c90a6020ded9cffe0742f82d55040eabf0af6af911c336ad92f944480f46adbe8b5db18d6b34a3330bf2c50a2028f707d9bda1fad9ca620db5bf2037415e07d2d6b7c73bb0177f7a1bdfd349b87adbc736bfc7db2613eeaee51d08322f20a0e683af01aeb6c1d9dd9ccded7b9125b8458f052e7998ce4a62612b815f5fdcb8eff33a9c72d6e1b4fb35b01554d6bd287c43b8e4e8cc8465379b85f84176487fe89eb43b7c7042d7c9c1bc0f35c55236df89d0c186edd0cde61869489c0605946a936e90096e7f0614a74265adf8bbab764e968996ff759afb9603c359c195d7f725eb06701a49912401ad296d2240a6467a80a7fe2a440280eec32a300b2438b08f5152376c25550d0dd8e8237742af59c85020b4757afeb91aad5db9bdde9b7031445ef56956963cf27470cf5c914e267d29a70f7ad5b9c76d281e5a284db8a7d6a69b8bd626e47d6edbc7ca0bdb6df8192a230d8be6fb19193add1bd107d395dea7dad6f0901748a0d6ba6bdacfea046187f0b60a2f8b922059ae9565b6a20f99ad9b107c0a287e2d5c2358d7597ea4c029de58b4f13557df2012bd8f71a99d924947672866965ddd930abecfb5e5a4955f561ed9b7b00757fe8c3f219e7955d43f1676d544f678e3dd8f5ad9e36b3ff2b8ee15272924ac8255a53cb9a9e9202765746365181fe5ae49c96dd71f4c3967cc2a8bdb9a58f18ef1b8808e3ea44f076f4ad2dda7b2c78893960e844d3ff18aaf815286e5a5c04850848c3f25c0aa5f87fc0d62d286c0ce82f51c6e69ce0fabc3b862cefb8fa616cc46a1e34b3f893a4ae9b6d4de83c7419748c35df9841099ec8554aa5f7f310eddbde6cbbbf04f76336eb47fe161246ebab18bef7a9e3532c6a9ce0e2dc73579fd6cb1643f6f01c465ee4ba1d7256130b99e0e0f2a16d457d394d4e763ba36c918690ab354155d2fefda366cf756044942712cec0fb1d1941043dff020b16b39dfa77b064b9267de47f5d9fd5da780c173cbc729f17e44ec884a63b0eb3ac2208b725db57b6701391ee8d3bdc94f3a3664b5c6ecd2c166d037c0566473443345953646b9de89ced08dea5e800bc4aa1f8ad5f8aa6da89e9e93c2c31b1cb0ff0c9b7b4d5dc9259b65848949effdf6a1970326381c8ae4d039c372dc92baff73cdf14eeee4812524c85090cfe485ff6ac4e8bb5d96596adfa62138f27cca7befde57494c1166f002eb62d32b5705a7e9642ab4971bfa366f73dc268db53940ac5e1f34dc24b9a8996b527f15c69d9579b77b7b6663f2941f45448572aa5998b62c8f5d495176f6142c327217e1da4cff053c607673f14a912d9344bbf9ad5fa7e623ed769bbff53bf2b5a1c78f79e69fbf53fc99c6e171c90525803751b25ea6c9b7d496e8a7b294c3f2ff2455cd8715071238825ef6cf8684bf29bb490a1e3111fb305f3bc87357e7263e417cc7c10cb685077a1cf6f058b1108021f78a532d7c948a485ba35c50249c79add06a6cedb346792b4c02a480a2bc669954c24fb13fdf4cd6b5071b969677e5bef6e30b69e84b8a69c98de885d1d325526c58dfef5f72fccf7748ae8b024d915e14fa01c35e018b677a44babfd32b9555b749979e61bb4ef464f8010d1f8d457bd9ed6f956a6631ca7bc768b86be99fc5d2cff06d66013eb0b128f2245f6f284faed9b13a6c6e4a14c3e4a742967e598a06a119d84b5e3f8bcca18f28f64c9824967b6280cea61326ffa2b20790069e38265a337447eef2f739365559e96032d3e17349176963d9a05fcadeb86013c5869457a182f4a95f1bb5e4c64b640de8ddedaf516f7d80afc8a08d1bc5c50aed4e0fd32e2e3209958fd814abe06267b879035b05d251fab57c104b3fc4169d090b6830e2a64a221f67ecf08122f91d638d0a53bc211c654ef8162e625d75ed0a0764189312630ec3534d16a33d4e55f95fa5db64675b7ad8a06596faf5a8a47f8308b61cf16aefa2e6107cabd21524711ef971b77a1d4ba8ba1318d041aa7351324895ec6a45dcf5ecd14151d6b00ff611071cd686668ed28a0fb77f4dff6095aa72d7d99792aceedc33eedc40e30260fe127bceeab8a5c1e7edd27d0873fe1fa7017cbd9f3757fc5d92676d5f7e8ef5e85827be2ef8287d47403c68ef0c369ad5caed8bc88089f34f84e69f79309317eb49c2f34c74258c711181a425e93b5c5d7f308103a626d7cfa0f3d6b77a04bac00010819b2292e5f8794c500000000000000000000000000000000000000000a1116181d23 +flags = ValidSignature,ManySteps + +# tcId = 31 +# signature that takes 26 iteration(s) +msg = 4801000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 3a274d893c34e200720af504ad6cd4b00d7a534b6af57ba65951cfa7025ffa7004d07669533fa01ddffbdd752b84d2b44273aad42294a90bde3252f0c755fca0d12d203522874612dba90d195d5ec83c8bc6630671d7ca2a0ca83c89385937c5d4b1a1392df9a378ba3288427ee327b1643421695aded6f1ce3fb11ad9b4cfc5cd0720c9b012eda021df8039bd2b8d5f4f6f78b7995b0479e515faa6539e2f36646f35b9227fb42e23c6d49f3bf32c4f0d509b6064d5489faee9b5409ca29d73fb0eabc62e23b1dfe784940f7ff0a9560d4d7d278d41c22cdf07be384aad9232a17a59f401f3b768403f5adfa4a3f9b1085f09962f2a9f0e590a2432140fbdf3a416b45c8a5b206671e8121cbdbbd89bb35bc8f900775cc7f9c636883e9a3bd1c3367354138dd98913642b934e6189d1ac221cdd7030833c5da24c70de3ee205b88ee357132417e35509624afd510b73255266b23b735c9292540e4eaef743c6f30d8844b044b527333d2cdf16b37d1f1b81637727b1e7376ddf58287d01da6d000371428cdf431995a7bd02ebd9d59f7d2a1cd33bc33026446f4a02132dcfe734d5f8f993946ea932f1a4648df1fe0d76db2f613b269d908ca87a12a3948d110b6bb2048a1780c8bbf6cc5d5385df362fba179ae42a10ff706a106722b41bc17c56d6eb10130d31b5bcb715fd6ddd7aacb536365c5f5c8b92f29f8f5d65c0c68f382a7df50111707628cae2ccf7913174ef53dec3d6ac7111c1bc40264d8e367c4f42ed57cffd874cd7a5c698fa405ae3121050e302da8ac890ff3aeaf5e388e95023d082e7ec4ce625fa3340c9410499c9e1709cb4058edb31ca1f723626290c8912897f73f8a475a3f06173202c154e33812135ac26adcaa585c72667e3c6f20ceb1ef978815d4907298d1821c7a5fd76489ad83c118b38a9cd9dba5989c5ea00623c964dbaf4b6f072b478fe1b13b8f1ebf4b938ea8b4bcfb868e8aa43211e73439ca50e06d3f5b2d9a2a638ac113ace0d1cfad0cdaea234921cb447be52427c9726f581af29c2046e9a4e60905910de2194a624df7f4285ef058b430d9803bcfa83be0b75836f317eb6ccb2bf32594a3ee2765390aed29070249d1a899fc5836187eb65685867efcd75e84948769d9794686afa30ca9500a636a9a90f12e2e09f2bb5b716a5d970efba2dd317f9e0d5819db99f0d041ccef8f5df8490ec13854eaed2f86232c10dd9b0914814bf4b68679d11d2feca8ad67a3863b73928ca8fc2e4c00adc5ab81ad699c12a592566e3e13b5f814e43be38e32d6973f68e7e5d0cc7479fa5e937c889da2de8763c1abf517aa5fe879159328477617980aca382dbe22831a8ef278591aa3e9e9e87beca16b873724d500b03cdf46eb3be3ade2a3698c1189d376fd79b62f3f491cbc925d04567b735d43f8f622e2e7520ca8b9345bb4e5163be6ccd63d01553a148581e1088eb666bedb6cb0d3cf65abe30100bc530fd1ab6aa111f3780aae419e564c64ce6253741fd9800b84add684500d3ca1becb03832b3471448c1bc0251a7e1ecc84928983863bd2e6ae09a5840e9b9cd74ce6b40e78cd5dfab8755bf36b6146732b599836fc2db9af2688cca570c70dd7c7fd4041b9a4c8ff98c7981b1d09dbd009243459864ff562abc1512f2f844713e3bf883b2710c3595e570bf77d180dc47df51d79d505ec4a9895059d5d3702a93f5433985e1b51078199743508a398b2ff73269d3a566b2dc64cd1421c5a7198d544079ab4906cb35c596739e5d7e1f9c212db2278a1dfd2d1c9628f5b59cecf15b6145779e9de4ce43bcb5cf880355365e192852fcc0c85d39db6c5052633428019a50ef7266ab9793f9e800f1455f1fd77e2f90fb13e84af7ca933a65a07740d6d11506f650755dd8bff8d34bcaca2c2764b23d749c116fb2f2688e5abce0ea28f79c6ee013b904b28698a17c8d012e821504963bbb6af7567b12bad96ecc3df7a69d22cfba305291e7b7bb6466bf179a77b8d2481917eb491ceef67cf84cd63b5bc87b26441108b03c8126813a4f545e23cfc0f285152cd5f2f77b93a000008c2ea142681ab1b9f7b076e61cae8e93bf7759a7f2bda2cfa86b9eba74b77b03b53f13f6fdd96681337616628e06a2bcddc4b4fa4ae12c0171063229f1eeea4f28e2fc26a43bcc7318edc608c99b898212c3b04bf85b33abca45749b87a76e2240b987a63a29d29f01c78fd91f3240d915adf41f2b5d80a848781dc060d0ffa737a0c6cfe5b453cdcb2a50a39d7ccd58565a3b6bdb2823cf9d7ec1a204546eea31a9db531b51214547d66e85e590a663f391b0bfd0c67a2271fa5fa6d419c659b76a7254468e80e78434b786b385c91c6f9fbdfae0b1155b87a708e922a0c82f1f0189e9d953deefce4f139cf6d0a8bfe67cb5f6cd44627750c79f54cd0e1272843b5d08dc1e192686ced88eb3617ade45516159b39c6aa65d197dd4758e3b290c17b9112c04c368ba01dced699d28de4d89395a49ee36e931cd3591d3db6f26fe300309ff6cc1d98e0d7f03f30a3b6b8832b77f31f951d89757f1d789b47a87715718f97089df9540beac7d7b05776e30451944bbe9de43bc7ec69ec984301a251e9adde7e83d5c9df050d063728c6f6bc2c76e8906eaa87ef040729cb00aed35830645c81d1a39a1e77bafa6d4f06b415e586c42b5aea4d8e6c6a2061ba0497f7c93a1df188b2d79abe9b7373d6f0f63bdef5edfe82b37a690fd51f0b044cd3192455979a768450f7679e86ea1756434fbe3fb8003f376d28e666fd4728378b316944cc7899b07a01449d53314532ca8fe04007f2c37a5807a53468a433d62aeb4c138ce3f9f33d3ed548e408e7ae0da25b5180a6773f0037422d7eeeb0b449733be27a6ea43f26d101b74fe47be2babbb8925df95e6de1498069be6d067f232443e11daf9b8ad0566c923f444fc7c6705a3fd8b77fbb2ab13b9a7492297d6a2274e4a3ba46efa965094dd4005b0d9a32510a6ac9c172f705c26dc81b702d47166bb8a930f16f19419dcba6ae187ef91d79fad465485aecf38a801b8866e51ea5ff1d93991c556de9d91867052b03ca4ae4552e6f0873f095209bf8bbcbc64dc90159b105be69d436b7095fea150d7fdeba96746178e6052105b11abe7795504b078eb8a647af1f5ad3d2186282ed2ae7886c40955b93448036412ca7dc49f2e562c5afe8694525711e7f6e49b2515e5a87c480479f514f4bae5119ac3dbcd730ab3c3f2f06d3fd81a0475bb1eafe456dbaea87d2cd880c96d34c348e4650cda3329f6a082cf8db220876cbc410d0afc945b0c059a3cdd28e094fb7de858a3aa75fe3f344fb018a121b26d14b970167ddeb9d1eb3ee53e32f14611c05d6641beaef94921315ca760135961f182d1747ab5f66933945e1147ba4e2dddce4bc0329f22ac00ada5d4d311125831a98561d21331e578ed42d0b894597be1172e7261decbe9ffe0a4420e2a031ad2143524c3ff272eff4646acc7eb60048e99c733c0bb7a0fc957995c8e6656183f0e0e1ae552dcd5fa7c8df4c9ec37180a6f4cac16366639fbe2395257629aba0715ac791be689d8560779014b8348d271aaa91073e5f1fd2bb0be908bb68991dd59443d23dec0dfab6e0b7cc659bc73dcab4f708c48aa53b8433e787f80cc8803eb18d6647fa629dee201e64e04be60d32f5dccaace5e1e2fe6742aa695c06d9839eb30121cf5f145bed70e3f191f26abcee01a6d3de849634a4466bdc57dac8e766b9fa66c57b8412df00d34f586fa9c3322a8847bbc0cdcdbc6eba26a3d88589474bd928aca477fb6a766fe375e224ee54d17297146593adb3677c7713342f05059c53154b67f97a4cb949f5911ea2dbe43adbccfd151ce69061693d51aa86f651d981f8a1221b8faf9fbb9dd923ab5fcb7ccc625a2984d59a644c50cfaebecfe76193f69b4e1b410a607418cf09e268fc4529cc8b809bddf0c594f25248d09cc3547aa87d08b330d4f783bdb17e238a17a481fcc1e1a38676ed2c8849ec96226bc24e085b66fcd15fe0b5923690e80a4cd198ac10c8c07af0688d77ce0125916fec05aacf2e792c73fd887ce36b007a650d4033cd1e3ddc5c74c2f9b68502c307790184ad1b7dd2ae3009b155f95253a480f832435e8472289ea454d3762c6551b07335137872c2feb4b824211b60cdbd077783fa8ee0eb49d506a37d77c4606c42d27d6c477d20d4ed89249ad3455d4fdf53fd4122a82e5114cf246dbff360e4427704a7569c26bb477c82731ed984a52e3368f7aab7df25a32c1932f4981a27d4e82e0b61830b238e97e7e601abed437de4a9a009148e865cfbc75a96b14315b1accfd252e1d661cab2818008e1841a5773fbca270756ccd2166318c553aacf82af9504134de4f3cde8992c14c0fada09364993e7de7fe42f8b54996ecff54e722b25fd51df037d4d3493ded04f6507c1aff93016a49e1e0a6e0da42cb4630a79c5aeaa61ee291ecdba09e1fe36a4039fa456781dafa4defa0ec2bb0b195cc0fbff9054fe4442404d111a7a8fe75f61523dc720347fa80816d1280a03c9415234996d4f41267688892b5031a1e344ad3245086bacbdadcf007185c6d95d9dddf94b900000000000000000000000000000000000000060c121a2224 +flags = ValidSignature,ManySteps + +# tcId = 32 +# signature that takes 27 iteration(s) +msg = c302000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 2281ce37d3d0d0894dde142b097455d69e4ac08e358f921dd86fe71a294db8b2732912b1de60cecefc89483393815556dcccdb912938f8469aaa536861d8c3d315b8efa1204e9c7022dc44490ae1fd7e2e9d640b6d0ae8a3a3c01d6a5d0594a52229c8a7028c763f688d3f72e3af83d25a01cfd3b6a7fc31e34dfbba78ff78effec007555ebf96b4d9b14eefd1bd19c66360bcb1e5a77092f36e2d749eece8c89050003630fd0c558bcdea939a53e61ce80ee98842cdd8afbd8840356817731fef575cae80b3eb8678d9884ecc66846c625d1f2d617d51f1fc77fe8bffd994a483689f9f5f05132706308448a3342718d487604e5006d46058fd1fe9302410171f93c3293737e8db35aa27bc901cca074ce2e19c4dce9d029c36553cf92a1500612b7badea5cc4e20389eb01b854dd547850976df5e6d9f74a30c7ed51b2debf80e9e379cf2645d6afce7757c449ed673e12780e2cbec4aaf1732e093b255ebf8103bd41be041df5f0a18f13c8f14097e8f998dffeb55269d2c7f882588e942eba0da32a3a5a193f7d18921ea5c82d7751dd939a448c891fe500efa06632faa47309a8734fa2f700659b9db7037320c7c00ac9b68f1f7de71457289e9b8290d6a203c48c21437aef6adde8ab2cc43170e65f1704aff58af037d422d1519bb756beb6f3f4c0ec653865a354658f305a495d34f183b5e17bac2ad98bf5246b440dc86758aa047f02aed76fa5f27935b3bff953871cd3de843688b13514aedee789bc8ed44eacc66d5b8d6afb80890fbef7c6bd87efe597868eeff71b92820f353ef580ab5e57faf63a762581ef91f864c99dc34d7c2c8dce0ec103a61a443e0c6d78cb03788974ba6a2a261b31ba71f3db05c2c39fc8634fdcae6498c46fa37bca4072e1a0b2c67c01a30b89b944e6a7d2298504b1adf2a5cf00d02efb14b2dbdd1839c935a3620e1ab8dc1c2be6fd05a79af94943ef98b64a8c86e47e3903dc84b7ae6e84caa9b79f2996a015ce6a4e3d7274d43fa71526fdc4d9d9d364d05a2f7f732cbffc9f80a4e5268f9eb57206d380cdaf39b2d64a54295dd31a11ef2f2f4828f57ba6af8ab69271060e25a1d987231d6692bcd82247727a211804879219cc981c1ff6cde51bc630b698e767107fdea768ccd0efa2c1e307bcc32a6ae0483f94a0cabe09e01e2edcfd08445870150f2980d23bad7b5187b0a3eef6e6be018a09b67a1cea314e588c0c41ceaf53206859f1712bde6f2e8e7d30209225de2de928e4d42c34344388feea70b1da1da7b0951e0ca7acb239cf95510dbe0c3ac01187661f2ee604f86db26abaf8113358ec1fa976bfdc0917a28837f63a1d87b95bbffd2266fbd2c50cb6b568782049627731865c43d9a5b6f637927044a49bd7c99efebcc7a65e773aa8e846f4c793d4e9c193ecad8701e6cccb7045b81b3788f23b1b523286f2e6e4c570f2b6c99bbf14d5a79a0faa9ee55c60c4e23e06e8eefef6706babc9a2d0dd3b81c2c8056227d798c8a55de8a49af91f9bfcdeb8683a31e576ced44da0efe91d20f4d15b1c14cf148914b6ea366f676a97f60680e3fbecb29e34573da9d100aa525760eefbc96f9864ab360623ec1f41ac55750af455c0f24d463c2f8b249d49ee2fdaaa7f5c54c9650cf1e94de0e56f04ed2e1b0a02488a3d608f31e67919481d53ceacef129e92b3dd56b199ce2b7df00abc793d2ee82694490ed97df05365c6205e3c502ed9b8f712a9862eea823514fdf9d7b2fe4bdb9754f1675c5b453a4c2ca893d584a014615309d346823169f732fb4ca1c1cd84ac527ac560c9fef1a207c9f35a9f898a06601a5b910971a3319f6c29d0b39df7ffe09ef464a9dd924b86b641a0b66432aa964c94b608c8681667df08027ade6b013173956a73a6787c95a13fc753a7d4b2fc91206c864be82382cc1a1d4e4c87e0d1d9a113bbc39f377d3de28f63df010df89af0cc3ecf30546f2435adf22fa43166dc24f01f441d7d97c235c5dece7108e3601f878b1c46c2ffe75363bebcd293caef5c4b0eb88d88c1f340dc8ca4cbe5552d9136ca1e3d5d809cdec4c4150b86e75f02d0189565ed27b41efb8ba982256bb38ddd04e61b3b77405fc5e5cad0b0ad58a009b68cd7014fa45ce704b3fb295d2f52953871a6ee94fefa1967030f2ee1d031f826ea9102d1701136aa5c81641e2a6afef50624785c8c2467e76f0f903be8bbe2656fb92691cde368c3f9a6fa870f50d977b8b5592922a49c0ae14d82fea5af9b2f7176898869feecdc76b6efb0472a0c24c0e9a2a2970d74d8f9dd1568ddb1a9c7a835e33332236e5065d72bf4522d4b18c7b3d14295a5986928d7f74ca8b63dd79f6fd464c5e0cbd98ccddb1318eb9738f32ed2f1c3b4e929e145accf8502b8a4f3b8f20afec1fe4cef9438ddcfa55a505dbccac90914531f82d2aff47976b8ee1e20f127478447896b3fd2c1a35be09ca69ee75f9958e569b3f4951149d32de2918fbbd3d2b5896f50961d35fddf0517f597c8273fde3712c6127d35d640ea580802ab2b5709399df4ba0e2f2a5a06013dc6779373672febf0381a25cd2924ebb597b03a1fa0f22ac14d77a524c7ab5fea1ccfdc1d55f37252121dbb050555508f9d9fdf0ec12153a48b12f67b6c95ad844a199a623dbae872bd052ab47289a3b6ee103aaed7755accf08a38618ef4d4669ca931d0e14bb8e9ce77e54cb61ed64aba5300105a85cd303bcfeaf167663aceb81eba106ea896094060945906bf4dbe038826e1ad58d1ed44796fcc7a464faddf16a588626f658fe21a526988e78eb129dd0bb4b645b2cf85af83722b4385f535155a1a61af0e6cd5d009f37621b3393b67fd29a171204848cd66797dbd3e43c088c473c26f124f7359e09c75e55bac5b43a19542309acc4b0ccf961cec404635799ca8516b11c5ff7a6348dbf0742a1267abcc48235bb95835047c74cdb1d378351f283e07f48945c7807fb7820564ac2c207f3ecc66ba24188dfb22801dda9b75b308593ab2f96e86c4af563a2c355f7e153901529e580edd95b7ac8ab3e1211519f99a91dbec7873b23b18e776a2904af31fff2e8e100b13e777e5b17f8b35903f9c9558499a1f96a8b8c9f1ac5cfa676a194d86ccbf94eb02368b781c301ad6560210bb28b5173da3a447e8a850279e0b65c828dce1c8e7712973f8a08c4159a9e15364be3d2147896b1a1ae214826df8643b4e573f2af8e6302c2551989ec1c8943be72abd2be35c4ee70fcb99baba7ed4ba46016f24d490acd4bc987c2c434b1dbd8b39ad1dd2004fc7a174ea59fa2f2db6bccbfde2d208e6964b128773eb6eb6d1045df96035c250d56381d451c52503b1f66934d87d449179979e4dd50c6274c1bbfac72161627b288029c5eb70997caf11ad6fc3d46814b08aebe28f40dfb9cc85f4056821d9e159ec9c4dcb586fd8c0d8881566669a8a961e7b40e4b83d068fb80c270f42dcbca2df7bd6ce6890e9024de7bde7603432253c14a0d057ad528ca4f548012dafed4b3174d851e4d2e5c6c168c2417003755bc5a8a445f3d38659c715ab6ab977f1cd13fc9c6f39dd2070b1cee3124ffbfcdb98205a1a2b88ae3fb9f245579bcde9143960f0b897a478bdac9a481f1c53c678c64a84b0fa3240177894de0c4ccbc089f14bee70f762e2480ea9438cea2788e134f0ab1080e34f22a4fb2ddc9e7da057bf0c5614a175022f06b5d126938d97d98fec87c0a917e455b78f314ee56de3251692cc3c2d9b243aa149171a62bc7035e90044dfa0a190773fbd4b00fa7e24447dd5d5722369a74326f29d48c589a4f16c92dec9da8586b1d4af66c4bc0da57e2aae07d00f9c35f031be8256b2beda0bbf06fb22f3da317b4cf22d81e88c050de9a31de6da3ddac483c49c8bca2fe25b6eb87649e107dab2c9b061885ab2a4e62debaf453b683665e7c2e8f3fd5d22b1d4b780cdff2a26b31792f646968e726b9f4708418a60f3f57f9551b9cc7cc68bec0866a294edb9978375241345cbb6bf577268a906002f9600b7e845d36ffae2c7de9d018939006302edad2fa860a4f25cb4a90308d57572284f97a7050b8750b2e02c2f8a9ad5377909ad117082570c9a5da5f512503d78c60621d41964bd12f86c89ed9c74f586b50dacdc4e52b039ed6be06c568782d9049bbe992cc867894dda3f3cb593ee9fa376a3121005b562ce8c7940d4d48960bbd95f77299636e4f1bfa4ac40bab82bc4971778faa924b6039008169efaeeb1ce29d9e44813f22d44b18485ee0a216382d0c83b1b59e34b2dceb294f9ca6cc848e018c89291525be0920f827033b5d9857c3b12b6c6e65627c132c1dc2a5da893860f5ccdf9aa2dc2ce09c45d7d1d4ed55c130bf5400ab60683ed1de5db819d42a199788dadc80e328324f6852c6021eaebbda57e276650c4d06ab792ace94f5cb32b92c40ff5403efed4b94e008ba6dae1141ad079791a3570bfc4f6770fab3fa3d04836ff06ff4ca8127c68090c36810610d960d356568cec1e66ffedc01eaf875a49baa5e5be0ec01ef1849704cb09877a2a80c100ebe7a790545e268af2f1d70b1c22375996aeb4b6b9bc325e6f7ff5ff4d6166758b8f9a6378afe0ffd8063e3f505ab7edee00000000000000000000000000000000000b11181d1e26 +flags = ValidSignature,ManySteps + +# tcId = 33 +# signature that takes 28 iteration(s) +msg = 8f07000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 17d5c276a96ec04caa598377bb8110226ddf85feb0dac0f0d3a4bd5ca33fb40d8cd5d752d889fefa66c900bf6e909ac906516c9e813875e758663c7fd2636ad3fc89ccb7757c0eb799010367afa46a17e113b16d546a8f8ecbae132efc625e3bc6054e3c900a174b6d47b3965b3178d3b72b0472f37d172ad579de128e19575fafe7ea64ea116b63fbfb4d5b5fc956bfcb6928b8db0cc7c5a889285237fa7057b3423cc7f7b950f834f7e4a7b168ad00e841ee13d382462df9d5fdde517e759d16e48963f60f117502b74e97f680bcb4ae2c35af009d9bbdacb794edb131715470153a0eead1cfeac73f8c8cd157cccbb17cd1386f65c4fe09097567794e2d7e7eb3c358bd8b2375f8f9d0f32d28bf863599939ff8fab29401d6acadb1b90f2bf1d9bc26221c67e78472c7ca78efb2b4ea49dee8489c01abe9ee962277c34805c024de06414c4ed63370ec5090752a6fd19cc36a50d3f714ad58ee060bf67b6f4f988c35d5cb1155f702311eadc7fe25ec25adf929033679f5d0058a45dcb58e8b4079b374226e26003e5bc5f76eeea6fef86af3ae91f33c8c359e2a297a69a105817c7e67a6a00a4d8aa31fc848d8c4f274b3b5ea34a2817b515a2050ce80bcb0c21bdb81f0515ee05633d94feea1de19534ef33da85e5af0d4fb0e81e4088a981392f96f70dcfdf0d0b9d308c26120e8342f8b6107cd0bf3553554e4deff879ce152425e4eee9860025dc4ba9bb090971903a0db863c043dca4e8fe35e9a6b0bc26129e18b94935fe816fffca11357af56ac6c837f0af36da11e4b43f74a0ff2ed62f18fd5c02c7a064e649031c2d8f22d6dc1a1b94f39d3065447abfd9714462e137bb92b720091477ee1c1c1666f4b92d6a8b61c70d49200c86e8cd9de65b209a262cd0c6e6774810daa62b16054d6e18955e4a92d3015ffffc7584bd5829c040ace9011d5056bc914960ed785b2225aba0eb56346aec0d7bdb1a3c73d1e39c2a395fc874cc56648951a98549a04eb71d30e38a90d7e545fe92c82a7663b10f761eaa01e96edcb799fda895f9fe14c3d0ae4922f34a89908cbe60c107bf9d8055e050d08cdeaefdeca1688a7b26e2ba558650e90b24306e575d046e1f3ee2d9c3cf159bb20d711d26c92c11735a50f40184c97a2dacd02a1acc4abe4ca286e4c599b4d4b5674eac6cdd4e472559d59a13dde5d4feef9bc47d76875790c8036dc29448516be1cd56504e97acbee7cdc5273ed3700aa7f459e1c25efdec86402f181664e764866d8eba3adf852b83cf135ded54d0eca77527870650da0f2851bb4906320808d302feb7e0f9db7b8cac98a62a0cc7cb97e7f8a7ffbfc38a477a201719d70172e59e8ea89c482e61633f9a0a3cf672f6217479958aebeee3e6f06ee8ab9f5e9d0523272c5164f1f94a3711b3e681ed03c177a692819ee56da4059ceb171af119c3976b197f005fe8622e1b4415f358fb34a73215bfbaa53886ad84ff57ccf42b7d57847a26234235ba0b722b89f9963446d67dc719bf8de49f4dedd4c516dbc1e1d74bfdedd36479694a9acee7dcaa7df55f978d38da1d183bc9c0cfb049c9f7da0821be315b6118d3387734922723ba4919fb703cc2446bd4cf30c1825a8bbe7daf08219ac5c1a3f897cfd7f66e77de3d0a0b7b73f1166d770b9f7c0c6d41320994aeb526b6ddd4afa6dd10295dbbc5082dcd35e43ba91dc972f78665043228a14d75cb666e503158bfd4c668a29d358a5b2e03fa1cf5bf15aff4890813e52a2358ac79174273074c118b63cbd1ed85c8c3e9cc7ff5c1c9bc92b848bde3a7bbb74447d430490b6bcb86158120479a02b7ac3ca61a07d76dce2942b1fc09bb33972695c0172a66dd4fbabe80e333dca17aa5806eaad072f4b17300135ac118f943dbe9041d4701b424d1f88b27b8eec8308a5bd153f7949137deee238c833c57bfc12b87bbafac73e1505d0e92e873d53772f29c7c3a2e6ba4e11f825d631a9d1caa3e3f8985ced7f49235bb907c2074fc368b77bc90b6d1e4cb987088518e054f767127361d2faf1d5feb35cf9210a92a4e3ef144bcd45dff7e2c2757d472d1255549db29fdba7616f9f9c0c472c0f4349588f94e77f8f0cab52a50029b93c3f08473f512a27c319d45e9d6b52cfada0adf2dbba6db96b326c3594f16880913cc6c1b3be8f4953d95ae5096f03a4a1224135e2bfd4b5b429fe564405dbc2ddf004f36bf633e977887915a44105ad2652fc17c398fa2e7c0eba0f69fd98baccd64875dbd5f2fc660af49a5b50dc831f41890872722d7cdb906879e03ebcdd321a0e81478276733bc121016df6c9a3d1a574a9dcf6ca489f4c82058ed0002c367c92cf87712348b7c774baacf10c778db313dc5c83b3e0120ee369780827532a52431faf43b03585dccfe97ab204c33fb2b98c9531c95f6be5ec435b0a8aebd7ff4310bfa221be76283e7534679917199f616e0e05a49b382cd26a4baf0cb0e1053fc24bba4dfd2636680f750c9c69fb34481ba0f62d106937ae7959604ad554fb2ffe53fdb926ef5a589cc21e5adaaa7ceff3e2a8ea8606eeaa79a05c6d9fe2cc674eeeae2a13cc716720472b0459e8fba3f0d77d60ff3e48f08479deaa1c098547da855b59fa12338baab82ea960184b72da4adeda15666610164743db8701f2b6da9dedeb2a147cd1e4fa5125e8f72ef40f14c88f73fffedfb6ee327c8e20708dbc0e4eb8b7c969b11ef8ed3b63c55027773b228f08c3dcd2a24feb716bcef64b5d2d34302ad721f6cc236c6694756990addcbc0d6d35a6e9a9445de640ce02ce9f2b081f09774ae09fda994fdea5c63b7aaa37db7268c56e11898856e94768e47c18272285050a1c182979a63a573c17b747c5393b8ab21dd17849a00889c11bfe28c60d1d604fd716202949adf2bf49db903841f4ab64bbd7af3de775f66f219e40a6a61f5c2eef5377a196ad8c7837b4211b531aed7c9969125994d6ede189f872f24dde4b92eb13f027646ede13d35d02c58f5cc094ba76873c817367805e2169011760e22b8dcaa5755180cd99c7e8318ff61bcb7efd3ce0303ba669419937e0e41bb4bfa960d773a5b73282919dc9d70b3427942078e7bf1706a67ba52f047c8795437d28bdef9e78e95b3ed9545177db31920d138454238759cd45e7cdb9c4d6bbab70654e2a65e1056c2ed98d9c601e13a356ffd254231c867b81b0f9ade2affe15ee88744629eb79a5cdc5ee4e485d663bc72cc1faaa61c651cdd2e9632019a747d1b342b1f493a1395b82854f888393f4f75907b2af70defc62e5087f1f4899d30f4a97581f009caf78a29b20cf38eddc1cd80066b1727880bc936be866ee4a14c994790cffdc7dfd977d9af1c3dd23d5371b8dc6c2a3b043e8f92ac954e7839e1b1934ab04b5f51e8c650bdb4357c2309b657ab2b968430b903c363532c8ce386ea00ea8f8cf9614884ad42098a01a4c054853149a5013664f5bc69c3bf9c237eafb9e97629af355855936f56d0d943333dbfd401a89a8d3b0f6ee8a5c7916d887c73088c481ed8963c54517040846fbba24191a1ed20c09f2cb2a0032e1a68e4a922c2e1bfa51ab6e7326490953b7a5a1197597c7adbeed7b43d6329c9969bad56140b6fe5819e5915ebed1ebe120970639467ccb2c7dc5c290ad0693aeb6ba1a27a416b3e21801ee1f239cf179a9258e9c527b5e52103e7ed22f67789a030530a536d90cd8b6e08f389921779ab97fdb4129d07a3792e4e1a64528131c38463e6d576d554f87207406e1587d6cd30caa6a0de6a7f0254e334054cb9f39430ae1b2faf0641908c09f3ec50ed1ca74f3655457c96b1e29287ee075c219c82c9fd2ecfa53117c97fb46f8398dfd351cf035da70345999dd6b0ce4569ad448f6475f343433848e8bf886b45cf4166b63e1347a60a66e05d76b6489c4c1eb621e50ca52f1cc75a9f9304b6d546240b28c986883e2a0be4113f8d615b522ccc40569978572264d277636e82428af59ceb8c2b175b4d3dfb053cda248ee5ab5e44b51d6865271c9aeee589e2b2b68e16f91be8dea83a5144b24f5b410e48877ac7f1a734b45c5934589d2f5d5acab37638fe9a5c52004958be19b731c5d98a3339df150a80e2c6ae6ab1e6669065e9eab2d2b1b4e29edaa919ed1b1462f02b7da4e651fca499f6c114434e1775afd9d1c44c55ddfd5f7936687a8cd6fd2ae67daf6160749d146c5fd1eb7d73f9cbe8ba3d4f50f98da9e221d2d5284c8c258d12966f6faa422c3872021d71018839557d80c7d7bad4929af61bc195b34800c7a3a18a9935cbe648a383f4872e796b87b462fd585d14e8ff432777c798a431b56714e5ea4a44b1f049435d2e80e2d7e378c97f8c289449919eec2cc8f535fccd6f53379acd16b55db0bf7f4f42ddd3228430c3aa89d632e9fd76a9d71512537b3984f56b11618fbee1a79a5aec4256c4bd2d7b0fdbeba2263934dcb4319c850776fcbb0b9e1ddd9da387241b0d7a54eb16147d0be86ac55c35a5a2222827339f73ead716ade758ff346d3f981fc5e90bf2aae42cfdd059ee634467d09214239119ab494c0db85111333507996c4cee61423264662b6e2195a666f71c62d8c9b9fc7ecf6020858eb4998b3c2f000000000000000000000000000000000000910161d2126 +flags = ValidSignature,ManySteps + +# tcId = 34 +# signature that takes 29 iteration(s) +msg = 2001000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = d3ecc39ab0177953c2e5afefd2a75e55e7795e49c87a44706b7b4964bb9f9255f4b24b92e7401e86f5b79be5dfe9280112599526d7421d52c9d9d49626042b94ee4f2ad3295f4767936029b153c5859ad6c119b9f35504ec3fd0e002cdd67764aadec5e38b11d79d458cd290ede3372a41c7434f285fc4ee45599c02c85fa99b5e0b96fca57f07a494c621530be5ed69598c2adf48230caa2129c470052c9047ea0a622b15efa8c9cc5b1e8c6970b99fdd7281273dba1399a319428f79969fc0cf07785f22c6eda6e768ac8230e440c8bb05606a9cabebfd264d1316ffeb9d9574103a70ab3cae8f22e04c3bf97b5bd293ac496eebf9787269e430f4be6a7591ae1fae037f76b14af90046e6ee0edbd2314fa16ac3eb69d69d803492cb5769ec93fc197d2302fdd46391a724dd51c59229246deab0809ba4f1999c0fa2c85e462c4c26138a4a9f299bb25eca43657a7afe4a1e420faf756e3bfb77900da25bcc183bbef7413ead287cc539f03de4f56c2ffbef8312b5909b87977f16dc0e65245d4d1069e46bb7614034ad73acfcafd64226b692dcc03e695bbc78ece5b1a5926a346fe5e8aeb81a3841cfbe010c69c9b06a0b5b81f772f8ee7248572279d37e325e17e81ae2479de6702df4d4c376be417c859921c7bef00f9b22bf1c3f56c36ff9475eff8462102f79c75478697838b384b1c57f842780a9be46d3c4e6f7c38da187945d283049d8c0278f3237660e612f50eb73b389580f740f05382a732b94bc7f3189d6cfd2de2c6fdc6d7d57de3b897df45c44ec7ecf1d4cec370d87f4cde4ff470ec42df2ae0db86f172b146bfcc00b34d4672cd80b06e74c5b302a7e5fa7996d930cf821a22432f40ca9ee7f3b0799c87ee1c20ffee186c15e73d32fc4a3d77853b0c3caf44757369fb5956158315358269b3c93db934ad24e0bee4b323359e97ba982d78873189243a0eb5d7760fd842fa2c04d52f3ea45f99eff1c236d833bbc8ecd88604b7e33f8981fdcf2695069f10d8de32fedb94f58fb438dc9af842698d4651c74383b63e2d8925211e02601b8642d34090449ec8703040ad0e5dcbbdd46db0f9e2f29f590b6688070cb2c868d41d3ec67d7305ae6a0e39d9383df31e30aa8071e481c1133c8420b3e5a3d7a2681f490039717ecf088b219258c4449ac8fed4c40c805ff4b77d7c28d0b5a0c8cd2d19e2370142a4fda7eb0dfc9a84cee9e4c845e8643c8108cce254b716dc4b562fd2535712ff840415212bed1fd2417279ad11b743fe2895598dfa938656b7408e5b1497fafc13fd12b3fade0d40a0820f81c430cc50ad677bebbcdd74ce14682944b9e9024d681759b4793c246ccb7ca40d889015f752f73f66e60c61f5e0f459bacfc2c413b0c4cf63fc2b7bac814ad822ba4caef6d6b7fd216465efd0cc6cb4b1a20fe66157a8853975b1b2c271fcfedc2912d1535972fd00f4d37a5b08619e0abc563ec994cf36f5a89cc5ca6fb244d283599d42c6a21767442282a4d18e39e31604aafbe240e48fa1d7a89191120daf5df393a9b115e9867c336113c45742a90d1d4113c66891ea46871d822d95197f077e8438ddc7eae6c33dc4013562aecde7a0168f81afaa2ddbed3e2cbb4810859c2fd5a3495213b97d6e5aa7d9aaf6ec2118b6ae7c500ff3aa12e5469f2b58fdc9099eaf8ffbac111b49b913622289c81f6a690c4b3470a619ad960bcfcd1582fa9ed07b2b9c839c78f712573306a9ab454d7915315f1514053923dc53f7fd66cc142036e49f0bd58e708862cc263734ec967d5e4054c3be0369565dcab83c9fab99219aaf21a168e72584083fe2f46fc477902b7954dbae30b668db0507f29d4a64ac358d3366abd0b7a9e8ace99f9b0d16316ea74739dd47a010bd6ac51a9142122ab699181728ca1c381a941516066ef624c835ee0df7e4f202c4677417953775d5fb252bf8ba53ac17fe2f1af324a168959f81567da9e73c3bf6bda37d3d53d9b58efa392b9dd81c5827d5fcab7bb4ade73563a26d83c8a535ae23339820c153f0f79b1f9cbe2b16cda032cb7883d3ae368859ebe159c0be2ecb5b11859d27afbfab3df898a7b90efabdd58308ee3f099ece6f7fda1fae5cb6ed55111fd4d6cdd9015218d830162cbf03b5c4cac717de09dad6c0998b501a51cefb76c4b0199c58e2e316127aba37682de5c04dde16343a33e4e5ae3b6295793992467cff5e8e6132ce46e2af6747f60e4e91bcd7a143d1f42c8e9fd12c68221b067e7f8c4b1d0c30234657b7e4d64c2016148b84287258ebd1f1639bb8c517814fd9992fcca0c15633148d7ffc8c8531aa0bf43a23ccdc423878b58f71dc57fd617c185f62a51d57aa938b95a9fd85c4d2c7da5ddfdb83e14231a1800ccf9e755ec4ac01970cd94cb50681137a8f00da4938021120414caa08fe36bf3e32b7e660402cdc663e8cb4a9392e10c764024469f6fcc3b10779f0cf3d7beb160ca7638b949246e679d534316ee8d61dae3b321a37786ede9f94dde73f88d5e49aaa40121d0ee9b16e8e1c56aac332b2bf503816d6e22cf50d798e3fd4bdb003c5f162e61c887a0c3fcaa35140f3d718a220044f4c4c581db8ebb167b42c2c9ddae5ce89458a0ef92d7e741b1fcd295d49698eca399fd98089a0284c33f13e715eb19883c42af2b54995f17a5499340a20f38a109d218cd7bffeced7a1d16f3b2c4636e84d580cb8c1246ddcbaf1e7f5a52c5ea48ee90b46ff64f91b65379fae27d134b5b8e284237f96389ea2a94c2fda31abe211d02907dcffd8ab33f9a4badd34472bfb22c5afc67645f38da26ad169f699f76196f5e33087e15a38ec615ba6547b38a58ef56d81f84dac75528b5e70c88b2099715322771eea2d741c39047f5e460baca9ee95b2a19b2f5bfd988020f918e6b62e9cd405c95c473bc1b6e038ea2a07d997551488490a15e46f58f8d6fd239cd0991b6264e348e9f1c6cec3348eff7466e7e48e91aaeb9c645fc690f0a89bf8048f67a7d67967b42be31b9d53c5c92dcecf1e16c451564a2d9d7a34e3c1c7f17f71eb920aa8cf51cb609a4af0c5b6c44ad4e3ccb8346f7a86589d05be01ec908eae69ebfeee12d7d05c431c7ec7ccaa0498e899aabebca31230919861e881f948f085bd519407be92ce923ad6470853809bc4367d9ace4b0df2f43e208bd98ac18a77d8fba7fb16ed95ca128db6b52c12d33274f9d169d2f559545e40e3ec97c1a779f04ce772329a4fa09768b9681200ef3b999c6778ff606d6d2600c4651da56c6ed88d0b2ee4a1aeb7ec3cf60b3762ebcdd9111027d3bb2bd07dfdb01a9a551a338cdc3b1cf03ca36c36453eb60d66943953bbc2c10594911e6fba766020fa1ef62d7f2e1c59f7e208c1dbbdf4dc27c0a4495d299d8c84671bebe8e8647ec6a8acc6359380dd15c26d1c262371d9dcc0472202da4d8bbb828a48f3345b6939830f39fa3e570ddfd857f47f839af31fa152d97aa18092e685c6741efb93c04a31d91140140b0f34985a4a9ae4d960bb2e151a629247a79aeffb8ae91273f8860dd817c1760120a571da080f2eb41b4743ab714ca418b4645fdfbd755320d7eba610684648b3c9d25c0abc245fdb86397b1eb1ed4ffc280527e20a6cd7751cfe6aa05c836a4bfdda89ef9a98d947d316feae68be99a6e26819255cf1d20b6f5b8c2ed24df630b43d88da5e9dfa82e980f75f8e2e1033aef4831558e93bf89a103daaae10c963b85a0e2cfcdcf0787ee869cabf8c8ad45a9857fc8d6c467439ea0a0bad13b7989805b81c3c69716e74f78d8c45b105e589edd9f3b2df2b94d79caf99431b85c19f29e72e7593c61e93655109a289695bdb38fcbf48031894ac5e04519f101a7982e3c1b3bca79d49e387043255908e55d3e268da93e07c894251be04dc6ce639df29125d69e7bf6ec910e96b85c9608381e8c207ba05c33dd7b45b43bbd1c410983028498bb9d7a35e8df7e4567a6c5b497df1436a9cfbe0476fbdf72f4657593aaa11abef92c0fa8ceef1e47617abad895b32233376254ee97420970ab413ec4bbb5386b26df0dfe7851f0cdb2537c0a4e184b7b3097884c4ba7ebaa5c11fa56059cedec40f3d6cf982496566a6d29fca2b1de8efcd131889472948d020d45ffda51121d247611bb498f788adbc3b43d893eb37774c97956d438f902522ade3c18ac82ad9fba333cabd2368dc4c438d2479de45795413ebe3beb1ba61589287c55a6f5e07281d0160c0be7944b5209836b7c81dd88935c922fe9c9554f5ad6301d12c2fe3be54631c809ecf259924ec99c9dcc3bbe0be8d5f4846aacc352d56e882ef62a9645a46b0bb8dd2d5b4de64839cea783b86205b81ae419eabf66e5f70074f4ca5c12b946578fda9465008219781741e43c2ae047a2f0bfd54e37bdf22eebf5c1f7bc2cb8988c7d6a73cfc78eaec7dda51d6d7f6377f322f07e98243b71cbf2187c318b652feac32654b4476e9c2a5b07eb9aa7dd5593c867190ee9d896d549347b59619649f01ed617a01f35e847e9b29b3a3d503ef8d89039515d2622c6b1c0237da29b3648faa88d43008dbd466381102c31353b46cbe4effc4c7a87093cd0030f1886a6bad636396465789bc4cae7213643508185bfe00000000000000000000000000000000a0d10172028 +flags = ValidSignature,ManySteps + +# tcId = 35 +# signature that takes 30 iteration(s) +msg = 4901000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = ae24fa5b2e13f7ee71d55906b8d83994bb96da7b88b98568987fa7ffe9a72544552d227e935844c7b1602ad91fa0e40ded2dd5ea2d25321eb4f96be7a9e167718259e901197df2d53efd428411a073346cc9e57a23c687adcf5864b001237d34c0de91cb319ad3cf698f11fd2ccde9a91aaf2891b30f0aeaa24529c84134076b014b410029cff5d4de892bd24affeedb4972670b12eb3ea3b06fd6c91ac1517515c3193bc2953fa5a9bfe173c5da8201da2fbe320d3fd2569520a16342a30da1d78181bef31a5aa53d2b8ec5460584082dc93751ee7ebeec1108cb60f5e7853e49e7db6055df2f7cfe35fce2a2f7de367dccfc980155ff080d2d7035679da1b7a83a4df8f2d0dc105650db1b981a744338c3512ee99abb78d278cc2678add260d9d68db7e2830c35dc8a32124bcd99c72309e47ec19d3d06507ed6eb8f7aca81a9839361a89c81d3f965627582652c97b00251533a3cb6cca24d492308faf7f685929ce463cec39ae77621644e8d1579fb3d208ef0e299d11523e4b631e011317f78c0ebc1bafc8c9b158168466158b1334fc6050a582ec806c8dd882f21ffee4c884dbcc5dab1d69c2efb45e4de6fead2f6f5ec9059e4b76b2356466dee3d8e0f2eae27a2eab778bacccac670e495ddc9a824f506c5a6c2a0a024f74530ef5ada75547d124a580572299c4705a24e263d2f90f1e9121726ec267c47cdaf31fbb0c5f0a4d98230fd3c4dfdb29ba2b6dcd7c12c9197f1520c1fdff81ce570e9b3c7693fa79b7154528e843443fbe1963ed6964a4703242498dda72da2d843e2295dc633b2d6755e4cc5154856b208e02184aec24cf05a00336e4d0ee4f640592c9b24777438eb9ae28b783c43ed5dd500e2eceacd2309c9f7356a4b276dbe89b69614fd749fb4181d5d6ee45d256b48a55c892d4df68f190ecde11b87fa650262048c99b00c3e894eb3587d8905f261e47489938c626fa611bcd6d28fc895bebd72059f912231404a56a238a3062f978ffb925ae0aa03ecf3be140f1bad2e4bddf3127bd8904186832181a00a8cbcf23c0b175544c1e45d9c3923317fe1bfb29d8c04c7f0a08e3f6b37da851ace7e9bd33392fc06fc49d262d1f8b4d80174d43f8b7196aa262bf0f8f25b42e13eb0e827096f2074830464765020a51b074853cb8ee88d229cf91d07a1c02de057564d3ee5125bb443f7b981b429688eee5ffb82c972c14d3b5237fbe4ac5611784223ce00f11fbe4636519f3ddda9893c87dc942eb30660c816444b1dd7228a40b907c9b3f1a46cc166a75dfdedd6c76e38c89cc1537e63cec449c44be2054be2bdb0df0169f7be37788f4cf8f9ec5110029aca9e32f76ffa2b68db9fd0480490f894e93a66bc9870a17c1b9ae0fd477db2197a3da06015ff9cc172f6b297b5c79a4e6943df6384a737f64caea0c5abd7a799ede4dd789bac30d7846b19ed32f9669de319d67e7e4a61bd233ac77e9da19696c9c4a791fdebbccd285dd4fc0bc3af634a9556650e4c730381075050ed834e036b25fa9125d262520dd095b7811c7f4b33c82171ceeaa664227502b0dfd3cead3593b2fe80002754e00c20c65c7454ab8869e014c3a635d9bacd6116b320f487bfac58b1d4620542ce4f9303217b7455a9a0b7f92f93334b2bbcc51928d04c77e2fe376fcce692d7c36d17316f3f85fa43c994a4b672a1ae2ad8555331132b35cfb313daff67aeb9fcfce5dc440bf87062b24f9001b857b735430826fe4bfeef055a7657269c352fce093270f1b1a7241ef8543ace867fb142c2c78c4a1fd9bd094d8810f3c5c93dc9841535aaaa573b50814df0815de79cc1ff7dbd3ae869f193da637ddc5ea4d8fc88555364d612c3c5ea0230df9f75732f8decd035a98d76aafb58b5ba98fd311561aebbb4f161b3b78a6f64000972e57684ee68c9af4f708f5126692ab09c23866bb6cce9130057a99901647de175734d830039f21cae68133e00f7c0c13baf9cc8b7b09281bc2902b4f1e5e17493554fe7a02964a2d020694bbd049250dbbae5f088b6127d2845741a75249e163e8107cad459b68b52818845a04dc373d475f25e236f72f4b8cf883f4a25e857241508469a2c424ebc06450bfa33dcd2c342e0c3d170a06e0c8ac7ef2f5efdbe57ebefe1782eae6a16c9119e767248abdf2a3fb02bc9419c0de7fb8be0b8dc07afc74074d8d44cf6adc0009ba73058602c2833f4d862579e8b6049a42de92cd76da08b3b8b8e442a832b0c89238e1ecd862f629c691c5ce627e0298574bab49373710d096fd06f12c1d131f134bd3c51c48abc06371a8c48ab907aeeef68c14eab063a6d99c9ec8ec6c860b97f43fe0fdfb95b91a4cc0757ab27ea22ee30d2a69704c7526377b66b9b2c139ba52a7b5b03971eddfce00d155a26ecc56093f6834726e86ab6eb460798ad3c6208483c413562b62c57591b44ebc3dc623f01ec7f622de28ce0025df34eb9f669ac95e0c76c0dabc8b084230ba2ef1f11b5db27f34e7755656be244bd72d1816f33992cd8268bc94ff8e9cee4ab0e34083e9ddfc4ee1c5f0e7a5a8a05a0b76863f4b637aacc8d1bbd87892ea844ab3368a176859eb48b2f6d3bd89c9f4276a5cc1924792fe3be2d1031f003107fbdbf737392c0ed2aa950b00e9ceb0bd4bcf2964708e17340e2d314f7cb912b9a4d2d45117030f81d6e3746fba9cf5886c94638f1a53f0ce891f0b88a33538a311a7da219814e450cfff5e76b4b872dc53a88f3441e12df39298d90cd4126987a56c1fcac0ae94457b1dc8d2ede35c5aee0009d28865f90a1a360d435ecf71d6d0f60a978a69e5fc75ee639d15b0338d4a39e12c09870caa4bfa89989ae7c0067d8d2e142d6457ae900218c524c074c9bee39f987f040968a57fbffd0fa7989feea3589d68f0bc281cc4f7dfc02441c631724e480c7fccff312bd4f3c3eebc3966780e2b719905994e7cb66283b313eac6702521a919994a1d1bd9616964388ce9a7f39527728c67c7ea0bab7f85bd13af7c4518f7c58fe963ae6e813880019f7f4d6813c74850385b8f6b9c0370728d248764855fb8281a5e5acab688d39b7f3e246dc111c3b83c187d676402163bfc63370dd1fb3f496e4617e6503f6524d8f6ef509e54893cf70333d6907f5a4f3404fac891bc6daeb12df9dd16713da93982a4d85d26c1b1ecf2f4615008b5177ef6877a980e1caa9e9b1d53db7c4b2547f6cfa4daa908b292d2f87c7780b48b9024487d27ae1172026a3cefdf92b8866dba1736355b972d663c376aae45558156e9ada92c6c7d091a036e78978626a679eeaba0216fa0eeefc1f60887ef9e80107f9fb46e76cd26dc7dea30ef1ba91dfc2fe431f7104df08e99ba84943917904e188ac3079186aa472b1571d3cc4de95a454eeda9b4592b9724c9b4cb768790474a716d47b7c46ef9bc486cf1b3231ba38d3dc58136b1c164aa9f4299ae99b3474cec84016e9b7b57419a6353cde8889a5f48de38bed8dead721c2ef3871accbb94b19c8c0112c4d2e7b2fb1cc92a144065251292119c74a0eecc47dd8b252a44f7668ef100a5b661967bd5e9d2dc386547a2c73005faf300b147b92140460bfb4c29219b411394b9e60e20d89fd02567bf3568938a93e8025e0c1c24db2614293c5ed62b3dc75c9eb6909578afd590aa11ded16ce367769fa3c20cb5e068fc6470819804f220e2008ffb516d27a7857d5e8a8785097701d056756e2141142204e13882ade1d97a0a575fc63152a39c44f2da987b027c2fbaf41745945974c87610cee657f76c9cdb086b9ad84b401739912ca96bbfe3877c17c74a333ff98e52be971300a095c740b5b093edc6ee473b0bdf0599656282becad7e114768236f1a2facdd2d1e085e88d375be393412fc14c646b9528d09def2b9a5ef44cd75d3356bc10f1eb4b5b135bf607d32a0741b7a77b03fe44b4a8f21d2b5190b01dd04961e2b3c599ba6c8e175116af78124b67085d5f075d54f1481728e60aa4a007f7124dbfb03225b880893fd7de61dd8d31953c988d5454f973a84c4bf56f0aeb7511cdf3c24bd715923da359afd11e3f4d92b0a17bd88e8ad22e19d0eca5014d8f16d0ebbd81a0dd75f32f2a7cda47b8fc03563d5cdf5917c2b4dda39490162dcbd37e87d9ad37d75369e02ed8daf73904ab802f9b41495c3cf3e22096921e23e6abc537462ef71cff0f365e2975f3a3a5836e5a09b27d72dc4b30f8c67f33092ef288e5eaa52f62ffdf8fe7130c8dd93f99c530c0323019830220d37fb3f716d62bea22914bf0114eb0d92b9f3a2a8f1764b61b2f89d40f1780c834161e5f41f75a46c338418e5738d23aa2e3dfbf580fa7147a42e6865d13a69eb6b79e0603d1176354367cbdb4adadb398b7239862d54403118ebc5569f0454ddd954a2553820b3cc2349eb234714cc618fcdd6399aa3836228256d418f80e96c26ad07f9035b7cbbe0de919c51cd5c8efa7338483bb4480d21a770200dc0802aac83753f882c8fb555bc01c3bdc09e3d5cc2c10dfb9337ae7ee9868e34cb671a0d4f31da52eaed9f6513b825467de5f2129b79b007524f402e3940556a6c97a5b9e125495173fe0b394a6898c337999ae10683ec151f3cb5e6000000000000000000000000000000000000000000000a0f15191c21 +flags = ValidSignature,ManySteps + +# tcId = 36 +# signature that takes 31 iteration(s) +msg = 3308000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 5057aec74324b4d5dfa965882d49ba03badaabd76d7e56d1339d35893ad040fe52deb881e999796ac3ebfc749a6004b51ae140a6c0f3105c5b0824fc17d253931e48ead138217bb5fc3776f4695d4a6a34d387856372add58aec8ddd81442af399b0be2c79c2f4ac6fb0daa61bc48c1731cd818c9a421e6e61ba1228e9a66cb5d6e72cfd79dc144ba3a51849814df30c7f9434afb991d8f824d42c7c42a9c055211bd69816862e462ca4897e8661ef3a3147f362e0926fda48deaeb0e7062837c071b6f69b880f389ae55f2e4c80f4ef3bb116490035fde777663eba8a4c7e518b4721988539708bb714b1cd26da8702bce552a3b905113f3edbb6b77dac1427c0166a3fd46ec1c4ec3858c4b529145e1b9f053c1904d35f0a114cf547ceb588d5d8a5dad2880a18689e439603586ad119a04e03ddaa0188e6331dcabcd0dc223c469dc32e041ed18bbd1676c7f05b731b262a0c0a00e86753b20c9dd3d5af52c449b9c462626de5bc59cf018ace4ad9892e924f2c9af15f013710c31832609a819bf99b09b14663a9f4b0078335e81ab50696a65f8c151301cbb16bbdd3397eda0d11e5d56d62265e49a78a34e5e5bd9893fce108da77d7c17b50abd1f91fb9b7368084a8b2820eb7ffced530f7e4c78c20d1408e224ea17a19887f4ded7f7c4fad037a7f566013c082d633c3e62ce76599a294fef294f79334d7aafbb8f8b5bf3b9b58a82bdc0fe49c73f82ff86d87d9ecd2885476f9755e2c270bc01dfc8344828ccc3ceb88423e1d52285e60cc140bbe1b97cc9ea4017540e7078802207e94a037ddfdf0b681b433bfab0930fd1412c1b36ef643df0f3b3b00c05669dd77d37536c3f48a4e7889b365f19d2932e146f7c9702be9aa88f5310ad738a1699aab1f02f7a525f212bec566cc34a10d7c82e543efdad640e00f6a380ec319f1d48d8584ce5cd6cae835d23a099d91f0c42c0d27a14cabe283ba043401ac7dca1e8b42d8a8c37923ada7ce4bcbe0453055cf83a1ce54366a794e95f62e3f6141f3e0fb78eb181138b77c0474a0e300a7765603f35a2523b6618cbd08072ea8323af7a714d4ee6f64cda0ea157d52cae5775f9656aee2db5728369f9a0492428ae02efd457123f4d08d92a29a9d7943ed38b0387dfbec6dbc96732d29caa78ed8765947637c00fcc028d676d8a9981ca97fbb5f252e836e93aa8dd37000d43d047c57009bb88dec672b77d8df3dde4ac85b01773dc00a43c9fdf2cbeddc04ba3798ee18126b0c750c6d40ec0ac076b8dae0d5aa71b3e72a71603c82083267849b263251b86ff5fe1cca0ddc3747a353392a47ab6962c15e005b2578094f9f9a8097243dd15110068f941a11902d3148143cf65ed30fcbc172e7f016d629f60a584d9f4a0c539561714f1df67427331f3c8395f559afb56ecf7c5702fa34e923cf1da8280583fef6ba1570eee03dd7efd9b5add767169ca11a0eb538790afb05694b2719a9daca1bcc31de44d0d5946d1e1565d6a476373b42c9f05e01b9d39a921857ac666d190205744061960b94e59c805b0d840a140bb48817deb68e6654071e7b56696f30a27368c36377ec8be0e4088fd23623158ad7cca215c70b7dceceb220de0509bd3ff530e2e7bc1d3a9358ad13794a5fb2db6c73965915a193417cfb63f3cc53fd48d94d308f27efa2c2c096a14a1495244b437b4563a2eb65c7b906816d205e02a465b350dfb7b88403689c8930d5898f41a4268059b650237f60421607440a16ab8b0b1067fbe9460afd8878742a73914c6986ca5d45dc516665dfa4fa99d733865fea4cea28ebc12d50a4edb7c1b3cb2cd0dcd0fdc6acc6f7972dc6a8ba3b3c13d487c1c1f00883c2c1822fb58c684427b837d457e678a79c0de7e7308481721d9295dde258d2f06159c98e2f70a9be35713ecaa35286042d32e85b760fb79147f11c248790a2f274c09015d43fc33366d7d1ad713e2155600eaa5cabba497044ec99c17afa680f42410b928adaeb876bea66c1520bbce3da46ef8d3ebd6f9bbe40a4b643d1ac5c88cbdd26023b88757b2f6ca78c197ba0caf240050e6483fee64ad3dec7ad61f8f793e5687d9e7ef3bc554e69bb8f6d0ab7a51d3f5778ed262c6d32408d74879614d22963bff3fe484a83ed82a181242214c5a919f8e510064f095ec8882e18ded7dd4c3e76920200cf6079f56887fac3f06cd8c3b70ea053164b912fc6f6ec347b78e6cc3516a89dbe136350ccfc55204ca112b2873359ccb8d30e748f36dc4e9e2ab85d1eb31df27f0297a6c7114915183cb106154c7ed467dcfb0ec709271cb8b64b430139cfe732f9ba697fc5833063039a5d5a2ef59d3173447510e0f59a23be4ebc341356f2205822f0a66d65b7e0416e354d1dda7f75afb864fbbea967461f69c0fb8ea80262f423bdfef3f18c1fbda0c042fd5f4bc7c0b5d2f7618bc2be24ec820d8986a6e7c345f22ef2832797e5aefdcaa07be9f31bdd35d282eaf46d796c29b1e1c34ad11e02f89403ab899c49721be2a5e4a0708abee762150069c2dcee161204cb5bd680d6cfb340680e49f79538b5fab63ee0272fcc33379dc778581eb9b5aa9b72624eb8bb28697d6ad8f16ebb6c29aaae800f9f8063d8885f3f8293c40cddc975c005fdc67a9b79e6bdf7fef1b30e3a0c3ab51cac4ffb15d320acb9a969165fc8d9cc4c9fdff4423b9582c2ba54fd73069f1e59a3ef11f01d57e55825f87346b74cf5afd20b5569a3cfe8182d891612613374053557db3d7a8c421ce649e449f7b0a6ca7ac11459694db5ca15625181aacd2184ac1c090fe583fe7607339bdbd5deff4b4c1b82b0b2832a5368901234a627a63a67a47069b78f45f6c783ce2f782082406216411c942b9f455eb081035b70c54a13f28df53c00de9c433204c61471e021d6a589ed522445007250bc398b16548b58e54b03be61caca4bce6ccb51a9cb4c553f0b099a568ca49d93860ee94de1af05bfadd7985ba8f19443f6594de33670b7711ecc838269cc918d5ec2a5509e27682956c949224c1ffc059c22ab0abfecabae3fe954660b32fd3e3c0bd83ba0e934f78bbeb35c3ee95525aeb4f62b0ebdf70cff985feb0de983ad2a52d03d7de00caa70a7ff535339957bf7bbd09a405ce6ede82455e5ca132bb3fd473db1dd087a047281ea9c27d3c98b18cc99893ce570aacc16e4c8d84eca7197390210469d309982c2e58cfc4c3c41b0c498c02949ee8e5dccb49c1317f014f5af0acf4710631fb3e85cbf126dee44c355fb9cb1e8a0f794a4e63c0841be9ab8948224490044c4e08be105c296182e3ea14e34ad132f1be8ba30468ef364999fcd1f4afe2c424e193de17181989dc2ad074971b19f8bed0657a3e18d7329525e07778ba620d8592a5ca184757e65a28cdcc5ae975ab44f8b0b4ffe6b3e85f1194a64a053e5b5eeac4b87eb848e78b0a9a10c955a37a719160a46d52e237cbf5fcd56814fbd753941a85e20e1ae3f1252682bdbffbed04a11e3ec1d0383a6f5055b2c09dfa16f5b3bd6895a9c4cf31d8c2ea76ec5039f9f8fd1c2becc3a0f69aad095f0a1cbb7800d4b57a7546363cc0a032599c4fdc50223615503b13d7e115b1bf7e3c6bc0a2d4aadd54489327961344ba4c0f933267eba87e0bbc688cbb2aa20bd04cdbafe46d5be7405ce029d53f3c376a3225e4755195c46e25c5a63c953172c1240aa4dcf2629e00e9c6c94005dce93f8810a32df75d3a67314b1126a647bea0b3059ec7f0f4a3b31f83a16b01a31a44eea403ccaa9850622ed3b6e3b41122410a08de696749b728e12e7e106263164ca1006fd3624e48dd9b796e235bcfd240d651a5a6317506b682203fdb124480e135e9791521b61880bfad227292e2052e1660bf342995ef3ab701bc64fd575eb3c3872d8cce94356caa6301ed6091fca973889151580f11c095efe49485771e6008f3e15864f2d5c0ce96e73c432259e12ee4591179ae285457a7bfb598187fea7b08468ee34237e4dd6be18c759fd3d262bf792efc5fd00c2f93ab40ff228fefd3d10d147690bc9fe0f8153cef46624f123954bfc5ec6d91614a7eac99b9628ece91e6f116dae000353a3736339d49e00ffc66a912970d7845d437376a405ec9091893ef9e025cbfd8919cec5e5e9c8ae227fbce880d3563330d32f4cfe43e62cfb8a471eca1faae3a7b1bd40f719668e249bfc2c2b58940f6f73c8985da43b0f6b41d54809913ca8f8a8a60ebe8b09c5e2e089a3c8e1de99f8ce434abb2fb4c2529deef8295f691bc36434b36792d6912e1f4e1b728414e77440b71529bfe5430e4a38b292dd2532d6e614a7da61533062e8ff84382993a8d3764f654e90740101c08e185af2dda68d0d348841041eabfdbc9ac165385b39a03d7ef359ef9c8db393f46c5e8ddb93f9e961478c353085ede0738b09ad0a4f77e094d8e873455be5225ac4a365a0e3a943d308a208da56bfd3d5fcd439b8e73a466dc366e56d4f6e7e963d0d3bba23fb3319f6826dd6dd6a44dbb5895e707a395f646c2e02a6b8432b201211761b6c6021bfe2fef8e3254e7009fac6287be9051b2162c1c3d1db05143245489496e228ea243952790a83849ba7cbdce1e8081456bac5d50000000000000000000000000000000000000000060e10141d23 +flags = ValidSignature,ManySteps + +# tcId = 37 +# signature that takes 32 iteration(s) +msg = 9721000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 4cef6107c57d1e2a3389a755019b029002ffc1fff9d4722f8f92e9ba921dafcb20b0604257cde0e315568622d1a665746b446a8df7d8fcdebc10b02ad687d912a944761e54f05cfc113c064191b759cd8f3d0ffdd523644123542aeaad7645711119b746ad421521296aaffdbfbe3822ea3d715a4a276ca0402803a71cf4ca6c795ba336b5ef3a093167322dbd3167502444027b8b449e12ff1dcc8e9eda0b22da66ad89b01c86de493084488e126873be44c43e4cc7972ea78d524fc556b37717bf768bf0fc7374ae56332d955988ef2d57265e43768ef2ae3ff64a70037cacac2f1af03119efe45014f45e070baba1dc5f73e7733c958a3042c743af9215ae7ba3a6284626b724249033300cbb7092e4513d14a8b19b168fd3d29bf461ccd51ab581c0617b64e46d901724238d9ea556caca19d56d83a2cdb43a0db469839cb1ccd1afc705061d2e15b798569bfcafd135b51e21119ba22f4c69b205751b177354ec3c6547ca89d86a95cf1e0b4139a001cbcc5274f4eb19eee0c6b2ee749e940ac72969845563e3ed21d350f7df7d33d969738643983acb6aea290aa6b79ede572503d57a4267d97d2ca92ef2d17b104093b1242c53ed0d966ce4100fe53d7a36f14ee6335a9b85202baae912d9ed7e3f153a0292708fd3c7922ec2b43e4801243ee4a65b875683f85a071c86df08b2a999e258de58534c29722b912a78f515c353caf170b2e1eedf52910b857aa751114b7f26a3cf9122a814a6ec65f0347511eeef5094e575b0c51a90e27ed8c58b36674323964eb9725c550eff91d8ee79ece3fdec6cf9829a6f2bba5ddf9958f1c3f2932aa2a888d81953e74111cfa6600c10022e3b7a420136731ad638d26afec4d1df60bc255f45811f6686f8c81c8de97d541f4a38b6f495aca0a760f3cadd06d72a6476c02a8f61f92049ea6a5b5caf6294e308dc675b47dbe294ea8ce599856d19dcf0ea61b3f930e3fae682d8a324c0022f4b904b092bcbc0279b146cd63b827a5efeaee969b91b5158a2d0cd41266c94b873ce7e243850257e5abda0e37c4571f0b28a92d043cbe92a220170c6de589d0ed0e75ed1b288dbad8c7069f8bd3e4151c0d5bf90e9ae55e2a2b9e46898a301c0823ec14a201da94e9c0995592770622687f1a477511563dc9cf9500968e12c5b9b9584f179694a68055eb5309a01110fd8076c96cb6d57f0e228e1afd0cc8776978bc426401aa1fac458b8f3e1f2bbec589b653469a6589527e89664dd015497b669351dcea19115f55f0814a4c68f4a3c22dcdaf0d10eab6e884c6000f86ba0d8a453f773a16e2e50e85c69f501f29e1a4d8cd4b183efa68df94b98d47923dd8b2315e953465b0f65f3ad3c1d61e6bbeb34177efb27ce59c356873ec150c5d1883d0eb69c26e24a789aa0450af814faeb6dfc46d3b0309eff2d7c6d479832bfa6f9c34e5d5df4861865e64b5b03e211bccf9f72be75ec32e4140bc81dcb69f4de50d8a24896f749c356418d4270f5161328574f25650da41035a8cada3d9b630e103477977e5bb69382201fe6612b3244452a00a68e9b66b2a532d5abb29c0412f3a76e0d3fc0ba868a237c9ca392216efdd77478c49197e963660d57b96263ac47ef7ce463d715aa098ea2533cfb6bdafd984259f6143fba4f59bfe95653fa3ae232fbfd764a3792748365f5512f945d44b014f0c2b33911b36a60306f087c88afb57cf0dffbb8d80bfae7a44ea3e3ffac7e1bfc614b4a7b345c456d7c52a359bfa4bb5499c044c91bc6ac38f6ac2a39e80aebeced421ebe402782edc887da588be58815c71ae9e8d3b1644383fc15e8bd33b729611a93c40fa832bcd803913f590ce0f3bc8d3cf95a7574cb5f2a2c7368f69421153a310e776390c9535d16be57896f6e0ac8ef8acfb64c67267e246df87f55b50670dd3463e6a9b6aae11679c11dbfd3d6edda9aedf6557653ec89641d336b0b8f594a1f8dc284230200ae677092e9e7a6d129ef63997517c5a1388637eb81b134268a1be1d5dabafb6e9ac897894aae6d1720a1f44aceb2cd9749a13b7df3ffe4e06e23f7f478e6ed7e6563355fd22a52543812ab4201f9d15fb88c5a70926e2d867cfdc8bd6f4971a2b51656be33785a7fd78712e60f7b097aa88b294b1089cf01c8f7b958aed1933c983f7af824f202fbb88951de232ca81c7629bb4281a057fab0de81fc1d46b8ada37956438ee7fd8e13f1938bc237b672e0faf93e22c36bdc7cd192c6b607b43f866c3686cf532eabce500a9931e54bdb4e399b9f0b29301dcbe0eb16638486b7f96b766fb008a7b62f1c57ef8e0f5ab59c10ab055357e9e0111147ae6d1ca03ba503613c04180adffcdbb58cf5ff7ff726744bcc65df37a3f9c847b93e14c9f0dd912dad27d442406871fcda4471e8f21dc55b63b0fc702883467a0969ff3aa2010a72a111062701622f64567ad9f8a4f3e91dab436ba552ef2e42d930a71db205de921b1818ed137615ea39d16d8ad4817eb02e79e05fcff24aefa1a10e60a939c0a8235fc27846dd032f95679f9b987acd81a6f285d7e7664d88db73b2d1ae931d82e38134f2b770cb2f834e247371595f3ff78e420f281676399a293c080c7801447a4be951eca051b1858f99decc572baaadda8c1b67e5cfc9aa4e44abd48d2f3144ef92fd1ffe13dad9ce1d4f127c98119e211ca331496edd7b08bedf3c48d225409c9e66e2cc68b6ba2ee75f2dca3eea8f7af51a4bc99d4875fdc3991b300909433f4b261d36bb150faef340aaab774996ae1c6bfde7ac536fcf1df188f2125325922d0412c0d52a77a5ea47dcb9f898981a8f588440944b36ab2195b1afe613754b0e819a5962b148af4b1068ec9761224864776ccc8a7d54dc866fd2f9462273b745a9f6cb5af6a373c7a2067e42f2bf6219640cd11b04a37488a8ce616aaf23aa84968b59385d443e1a77e25e22ed199f0dba993886ef4a572d34484b965f31f76cd90a363ca95a75d175ae78b83c7f72d039aaa5e560e2ea9d0c9f29259ba6c06d7be2877db31cd9641b5ab67eb400c17e04bbda482e923263e668ffdfa92a84ea7ad18675a1e3bef85f1b9105d9fb496301bb1cd47e40c2efaf3f9fa737506d75342c400e74f1e9e6f8b1f60bbaa37e8b32a84f93efb535fb69b7746883ffde4e966410b048d4ecaa660dde811a0b3ec93fd2411e13f1643f756a4891f15a64785b0ed44a7a18154ee7d1d4cebfb41038cc64e9ff7992c9498a35e521d8e38a01f77f2103dac97504b28dad00bf4704d768ebd1c5bfcd434d6dcdb896fd28184c452420ef9bace73885ec8a87ee8e4da935ea42536e10917960784d436fca233d91b2da3cc121f89c7321d765c2b0e1efa88e9899d2e16c1c2958fc6318702f93c27c2b18ab78f65e70fd856f713088e11985c7a179119736bd14e6fa4a5322867ade8c2777130a67c74d763f508eb706ebe1fa0ca45fa80a8d73415dddc9a94d5d7459643f899e6e6b3f204bc79d7e66aa067ddbc7f70aee71a5772349d9e2086e0faf6e68f44863d7ed4c911cd3b73251f2760fbf0e672b4b933ed64bd6b4e0117db7eeb0cfabcb292232bddccc05aa9141ad70611b88fb4d35c3cb83aee710a84a3a7587122c0d2ff622fd7f663b3521616ed143da185556a005d2ab24f7d6af16acd759b3a188548414941fa2ebcb9047ef1e01840cc33a9c666948921baa8a772fbd582a538d6bea5a8b0408ba7e9db25e6ac1a2b19d5dbe479bfb4407de495d1c7cd818c58cc9ea5ed563b4f6e833f8a08e81c9d3f6a6262230aaf6d7ad0e96c5fe394780666313c10b2db729455d61f4e962b15cd524a38711f4eada4acc78daa59490c3c0c36f76039935b135128d6990fffc19f47b164fad639e6fc65921fbd4e491dc32fe11eff24ec5cd25a321b2af69ac8208fb712335c081d09bb05a587d95a7bf66b97a1f2dd8f5861f0575e0d156f7e1c3d59a0012b3dac27c84590bf8058dd3617437577a333875a2e1f0439038b469334d3f9457333e981ff9dc9273d5383e8f05249eba7b0d60b89eee427a057449802c5deaa90012d4b92e50846ee923c90b36de7f4b51aefc122e744e11b4cac695841c430710a5f261842f078284f68e49203f47f0a1805b13999b3b5a169b0ae792b33785f14a25f1158ac702ef5701aaecc7e8952ed4c7b39a10985cbf3e948084e61380e0cdedcba71a5c7065a864c412f486f510fa6f8c97c9a2946fb031e48e8be985508df9293956e7523b2a0bfbfc5564e082a94ff85e395aba4c3513fc1f55257ffd581fdc7f05dc4f014fd92c450c3422784e6a906cdc1fec67edc40688dcf1f7e77314c914a2a696112dea20296c73b3ba665d9ef39411cba46c2b66aa861f7e4dd05a3135c12801bdd4745d847d8947829fc99df415a2385b7e012dd6a5e53fde708fa552e418023735f830301813a3d7afe2567d3cdfbe790e318c9670e32b6b2d4406f1f1b03c57074add69f594e8ae8b0d7204041c309b2e52b58f82928d6bd4ec655c7df9ad79e8046d3b558decc148e89b02cf1d189a4f18171c948d974e8d14ffc83de76c334d001e3dc7de40bcf4f7fcfd191e447c8d95d80d39424a8598a5ad4f90b7ec2a515c859bbe00000000000000000000000000000000000000050b121a1e24 +flags = ValidSignature,ManySteps + +# tcId = 38 +# signature that takes 33 iteration(s) +msg = b504000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 2aa38484627db138769301dfd9a5286975f4869810ad211d9055bee7e25029f41460d92e9b4c68b185d8033d360c0f2a5c9f0004e4d043c368ac22d395422e3d5ba1a4a2f219e38f1b300539a11481d086d93bd4ddfa8531acfeb8d418593c4142f624b881b44d306f0cc355573d25105118d6b9affc066c8910f2889f9fa45a87ef7fb5cb6aa508c4f5ad21d04742c110824a48569a1042a66a4f21723b046461c8c6b382e112c825af25a24bb26d7d874a6715dc338af7e3d4a07c27d5ce243536538ffbe6481e3542a5ac218c536c60ff0954dd5db6551c80abe9d22fd56a1486e6ceccb54ca7993d44ee52444d4876c247014bf459fef5e4b68640e6a20c5bd7ab5e11dd8a1f5527a087b97f57e9935c0ab742f399ba2eb9e7bf255d8d4f7ed820fcf5de363915d23b9d292d7a08e5cf5092516caaccfda5d4cb9ac906d10287bed5a13fc2df0b167e5bcd37768d33665c6adacb8157d9c385cc76fb9ffc53babbe3789a698d8a73fa5e110c1d87aeebfd839e2bff061d37c749c5aeee8bc63441e6ca79e1dc055fd8d789ad729dc475bb94729997e97ff08a1f1708d93612d402a64de159c26175c271d4d77114ed9176c5b9ce4234916e63cc856d9436186b137f7f7aacd7a367af9d28823d46d42add2c2dd975d23d31083424c141207a195b4212ea7bfb6da8eda7f69027552efe7ad4952ba49ac38115d93b4dfc2dbe173eef47934204f50ad850bdaa6fce06b517340b2562e468697fb84074626cb263d03a0b62a7b497ee9462c859b1d7894a543d1e261971751d325819dc071682c8f00f62153bec73cddbd5ec21f6824d4eca53dae13eb9af6c448d8d75c6d676ab18ba64836c3ecc7c20c79836a53379e809d87abc2f04f0413d10176ddb27f72936beb4d14cac5b0e684e6dfaf529b80f9b68121bfac15c8e60cae44292e8a8e0c32ebf066e708aefe5c3aa4fb4bbd7215380cedf0b19fafa11fc37c534f5c3c14cf6d28f9f624008355c1ec110159009690ec648d6ec11fc6de44831c620dec4331c900032bce86eb4ec44725667c15cc78a71f0baedb5ddc251215aa64c527a8dd8b30ed4931047b19b725d9f205a7943614850f9a619a805ba004d272d5206900846259d02c06153a0e2c109741acfb459816a7f8ec101a5e9c38b7ef9b8add48b68f7410db4359ce23cbf62507d584763744e44f95fe2233e76f32d13e660ea5d4b203bb908207ee9c621bebcbef9ad30666fb306e8ff894b2837464d3ce91caa82227d8666a3e2a9e6017f62b1ad65bdc5ec5a4c76f414ed2a15b0da2456694061ffb3296186a0ce18e366e5c5dc8b832e5bc74ff775f4d496802b600b39e5b7b531131709212980f4aef9bdeaadababd7300f75018bb60f48a9fae84f5e694f0ec6c74d3f34a77e358dc7c4f26536eb2f76adefd14e9f8822a85b1b579611975035fab27eb387602a3b4a858b17c8729bec1845b67d0725b38ecec057b0083cac04d4e075d848de5243801417dacc3ed83f89e63ba90dea0e724ba394fcf9226b50b6cb6e6017c0cc0526d7942cf5260efb79aa918c67e9c116c4183eb8068e94f25647923658825763acf820c56deef853bcd33a0c12ffebec84115e17f675b9b25dcfdd6cbf0c0e3a1feeb7c387d059b138665f70fa762a42fa3d9d360d3063b86e43f67e54c1011283238cddbf4d054d9126416b8d4c9116f8635e8cd19c2f202c90ea4470d91bd737b8032d4adcec9c98983f789c97852c2a60221a78b41e3ca75446f2e1912dadbe04b2304291353e32e73e1ee66e698a9395c0c93214a2865661dcca210b6d48972fe80368706e041eafaf9f7a96810e395f72c2ff9aa7e5d5ef845907184f224ba37b4c186c248da8bfe403df87472107da32ec0c0ee10ec6c867341ef62205d879cbb9ded18dc5d978ba96882b5a8ae2df769eec25540a431059a52176cee356a6e3c173c4ae79c3694b1af60ee164408e12ca1131d3475eb5467c7a95f8a794589e13548cd8b11c126244008c9424226929a6086879dd5a4bda4a82f0adc2d03d239fb99034f497851c204dc08961782fa41449ebd588d27b4d7da94cf8019ba42286987bc9d8cf0677ef6c45f0ff79dd41c3895912300b70587f7dd4080a65e81f5d12b0ada473bb597149e667e43804526fed0c9b75ee2f9f09ff32e87040e145ef779c9aba90f13f94c514f6aabe7690d51b6835f3e405a613c8a1e0a657cc259862ccc5a41a514c9ad0baccce1b8142de115994847b98f20ef8fea606a85c770a9d49cb1d37fb701119e6515307b62714d385f3854d5e0b16f3b062afd35586d71b5baed356e14a43e77e0993b8d30084d402bc8f569c5b837cf2c25e6869d2183daaa7553436cf48599cbe24337eaef1b44a8695d5a990241255579c564bff1399258090aad8525e0e5e75f734d15c8331415fe48d776f8d50efdb10aa72252dc43ecc13ca6322fa06d750cc9b817c879a2bd545ebce4b9ef00f2c1cde4d4c7b38a3c865026af1d108f66bb235b07935045d9e86abb228f99b94d82dfa098e680ba7af3e69a2e7ff1f2454f6d8f2165d7a05744e0ee3bcbb320a8b44b9219fb0d81a2127f112eb8d32c20a4e365f2037815781a0eec8d7d87b665bbe3d4c5df6aa798fd3c66d74330c78551d96a237e7125f79f9372b12828c40f7cd9d1ed7039635ed18ca5fa353a878913c9b2cfac7c9d774535cd6320efd7c1e6f2301ae3ebb3aba0d83e46a80a176109078cd101609898f41494da47a366d16848f3aeb61c6663195e1d744e18d284e38e8e303395a3aa6e11e55aac90f011f90a7717febafa8f5be44d033f3f3878877823a10b6e9721afc120f1ec60dca8df125c3c4d052e1afa6a921b66d4e2d00618a2bfba3e7e4fb3c15518ec5bef7589d2368a10af77394236c7061ccffc21ad67af1c9ea74d82a2820b11cca55a156927a677fbf57649b735d2af79ba93f3883f59aa403be37cb84c6b00c4fcd7f28414b665d77f093f4d6c0e7bc5629473ea1c31afe2c1d1a2bdc6459c92d4539d424436113f630059b9d90082ff9b3629e4c13149d6cd92a78a5defc5846f03ceeab92c88a53dcd5f019ac69aefa553ad4b4be71b08fcb7fce4c6dedcf046a09a7d3e1d31ab3afa543026dad8ca9412294004edcd16ae39c18144abdada4acf209a023811f5e60e5357a18c242691f990045652ef63bf86dd8d7f5d05f4f46b4276f580d1170acfec3ecf5426612938e37e65319854a9e0931e0981da00dca67e8fbcde6b94dc54b30dad04f27022aea635983ec8017cf389d482ee6c104c06ef7cf9273a9902c13c4a3f79f88d85088cfcb32396105d62f2308fa419ef1f29283ffe1becde3a2ca28e4b14532cf581d91c311beb4b41a9a9c55ae753e2e28d222d0b36b4c290a6f1b846cee14f03ffa91f3d743fcbf37d5993241ac2efb030e2652622e65be238cfd7e4a0b5e3e40e25e6eb5601120253a08be5eebd20f08af1dea872dc41b305aec03272561f0745aaee1c1b069acc0e61b16f4effccddb0086154ed66b98f15ad58975c4604ddd96e2fdfa674fe53c5d226d376081ae0bd2283f7106558a54e613900a569e799c98e4ec2f024c0d2b15cbc14bc96bfc6094560ec6c4cd9b9f879e3fe74a70c0d3ddba82f055780be7db1ce650cefb313618a2a5336d9b1168fc605518f53708afd062bfeb9a7f66338115e3213e8f4e90864e10b4b3a8eaed966f99240c23a7ad527892b3a25e1a3d656e724b84c46484ed9c0c2624ce62c46646b13003e3eb2c8ac1e1e307f40a3092d96e13463ec1bd75d62b679f4bd1a9e4967323f16c85ed92066b283b12f49fe50423359f7db6c0df64e04568d470c480681e6c6df4fab81d896e13735f3a1a18d26aef3e436c86308a4c184b709a4918670b870502d30d44861d360a88e4bb8a693659208c2c82da46a25dfdfbdc81e7c0a5addcba03d2872b8c24ab2e1761e2ae10a67dbd724fc4652be47650ec912819b70a4d628c4c16f630d24bc5811ae66fc1afa55234d5fb83271d5f8eec99fe398acf3275de23bc002a7652bf60c293e7c04fa6e10795c00e43743050f138b5422d4c09030dd12835a4556ae423406cda8b4936ee4e039324963a1fbe8768798c384f237f7b8d23cdc75aefc035c0ce65fbd9f8eeccf126f37352d9c75a40e157eadadd12b64b582bbaeea63b50b20ec88098e54623bcb373c63eac44a290a7ff8841a417c17bda385992e3f5b952951884273ff45b94067a819efe5cd90c7ddf935c3636ee486c98f67be2eef9ba4cb10c701b308861720f54c3017357e9aaca6bb5fd826cb39b8e0d908171963bd068a589860fcdabd8bae591d4fc6a6cb8bdca9a0380b3c70e49af9819f07100dceee2174331053b4878e41fe06782b5421ff93b7051deb43a61bd5608a881423940222f2cc2bf795721472b2fd714ca7a59373fe0e1c3c9dd5dfb97e345a250f63def1732f19085a5d1f50bd6dd7d26b22bd68aa239450d21d97e85929745896d3adce416c9aa28db0c3bf104a246f70ec5e24a11c3618280cab7bc6faedfca29eeb92c9ce708538f796469966ed1d5eff70e274d5f747bc5dd6d8a99c52035666d80a4bce2fb525b6b7eabce0c1c486e82f50000000000000000000000000000000000050d111a2026 +flags = ValidSignature,ManySteps + +# tcId = 39 +# signature that takes 34 iteration(s) +msg = b502000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a +flags = ValidSignature,ManySteps + +# tcId = 40 +# signature that takes 37 iteration(s) +msg = d20c000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 1f46df1c64f499ad5738cdecb7cdb03505cb055d9ce542e947092e56ff01ec2969072aceca72c59d51e93f1d7ce7de2540dfc1b0e2031597295ab90a154fa59e625c00ac9badd3eea471f51617673b9a963c8538971984ac28b77af69a6c1b24ba5ad2ed4cb30e9e4393e869af84d39146a2e2c8a31154b72d175f35da837f6089c2080776da166aaaec56563a220aa138e9c21b4d66de9490b8a0df1e80ac8521055bf24866e529943f65052f5be8765e1d340067f0172c33f9c68d10bafaf0b88930fd6579897d94ff21d74b572213b58509a29b396ac1cd0cc00cffd675cc6a11ef51dea3093416c12e994f42f24ade5725903c7886729d240941b45cc4089e66b8f995ca1106fea5ad912bbd3c5e47e1819496930eb044a273eaf6237de39b291a7d1e6192ee01f05d487437858bd1aa182ba2c04c894d5a5165f6336740de417f065360a70dfcbf4f86fa781ff6ee799a31887f37e9f7dedb12b2ee5508b28ea97ffc9cc87a0483c8d9a1334f8b29e3d9acceadc55e140f763a413d5e1c5d7987eb5abf3cb9e68838b2058e2f4df650386707b62b9cdc23733d5e58fd456f500a51746359378506724b87fe07aa24c192f56499becc194e128c9ae5268b22a6a22a5c5ff197881e880a13d52de0e5c6a7ab7dbbdd07d65cfd1806a84abe6455c4542d0f832d42fb3f72b6b26ebe1f4c306ffa6488509c93faeb7204811188223da6e932869703602b834aa1a3b65dff320f540be23ecd843b1e2901965d5805c46c711015a47ab82d0b1d9d12fd9fe8c6be4eaf89df00acb07a3d21fbfca442298f70ea4d2acd8edcb2f9e88c3c02ffb667c3fc0e2b2e778b908c206e35f6f3287a6ef9601f6340e037ad38a5d1aff1bb2e50472234a01164d5e213dcc19657c32174fc89fedb70c8e7e4a4dc613b820f43a57ffa04a9e00546f2918e1381d9bc2e3b19c3f79f74b998bbe4f08e47b79b536e737104af435b96a7912eac3f83b36ad6bf77fd29110dcb1cf6d4a2d422f26af1d77507383aca643095b436eda471cba8d3f97ace49ca048fa5a43ed7eed1de5c9f591d2fe1bf6b99d1978bd87032e27598356352029e5a16d280c07e6e702ff7ba900416a7246f0d0b0ca6f9bdee5686766a6bd63f0298852d26f6b9e6002b5c2a704dc6b82a29accd800b39c46dc534c82659bfd63c82d1f9f291510078a6682cdc1aac22141549c4d9ef2d6a5843b12e376dca96cafb5a359612662946e81ffbb6abbadd985077c9a1fe81dc9d81446ce554effe92f879811932a3f8ef2d2b5619670b9d5b9cc6c547b655e41233a618a3eac821c8a8bc427f913ae319e6339ad537121ecf3b22f153d93331f66f594c8b71157c321a753d0b3aede490db20977019de46a0652f9dfa175da85212599c5726fff321cada571524c6f2003af70dd9fa28c497a7584078a23385b88a08edccabfca847dd45eeffefd30f8f4df276486496b1fbb1b7e6d49921ed0f25aecebbfeaa9062b47b9e2a773e644e2709022f66fac061e012cbcf94324814d07d7aca6fd165f90298b70efc207c0367fd51f1f172df7d96c46c9ffe72c87ca3cb42e6bda26e2352574c6d6341c6058ea7bf9e5614748382c2047504bc97fb4f00ee120c8d17a2802f5807636e754781b325fed89cdbdcb41b279c11f7a0fbcaab32f569f8e98204aa1cc04ae6fd1d70c29f1a3b286fafb5002f46916094c36de8b8b0a6afceb7103da9522e515e0abd3721c7402b12a3cc93e31f81c4714a4d86c3215b8dfd201af03c5dbaf5f41b35525e13402d753fc371b9d46e8d141ee0dc7a04f382ea1ed257579d06cd68a0f675ddc5137e5afe71894483f1c184dda00bb12e62afdcdca6252065224476d28f3ccc362dd443e7412d21d945a20c4ff7f11054031351fa93647709ddc89ec667245d2b0feee0522bea979f3e077ebbf2d6a8fb861de7ec495725374b19bd3bdc0108b526caeda1f946d022651a1b05a71ceb9c3bd1eda12728f58cbbb27af266e019323a3dbd149188bff16f6f154e4ecae0f01504afd8bda993028ed478c7eca673aa1f33af88b5de67f1192c668f4136179cab9696b44173b305e6cfd30dc3f42634524cdfeb2d77bdc8d2f247af73c774f39f1af9745a46c33f0a4714eaf6f7f511f437b2283596e8aa6b55d3bf5a94d210f54b99bc642549da972e94dabd7d58d0ccf33fc53176afac3a0fbb6c653bc2e56351adf0980a14c312c38ec6c9160398cb97657800881c01eadd0c8030d7123f6982201d1eb4277b7d895246fef315e39996064ffb115e3b3dc50cdbcaa6129f6ddb2330c64d57e6fcc2eb83db1a4cfeb73177187dc8323888de1abd7bd8bfad2d184033292c21d3ce851d191535a605e3298c8c88f649b819848ad76d4b2f08ae36797ba54b5f3dccb32c8258a38146b6c86f175a888117d78796d7a90525aceb8f6986e4acec13281915f33a4207e1f4077d586c6b686ef10b2d16618aa841fb817df37968be3099a27de57c44ba8f8e55c0f1e401de53b8578a733e9e81268d462e2321af29aa50f814dbd7bd05856d890008148eee2180b8870ae846e07e48a6660202a6bd35a7391821c550e3810fad442b589ab6b3e0bca5d7858066260776148a778c3b9df8c391b72451df0c87c0c64491b2e5bd4e264575cf047cb82f20f95ce3101d92aed4834b98c8f0e5c81c8e6baf0ab3de870d9207bb64b6b99a395ae2de378f8ad233120a968e091b7e1aa81195284f3e9152cf211b1fa26674307a57390e56cb812e030fc50c9d18687f67226245b70e60ca87e9ccaea0e7d36a5d951a22b374d71a1b89129a0b4067c60317fe9795e4a0b41c4e03c3314ab9437a1670e4bae274c2e93197b2d7af9bf501becc0545707659ea737f9042d7dd711ebe6a801d34b3cd45d7c1275fe8559bd33d9b160744d6107fab7df7f419cceef355f513d30aa82e2249857bd05bf524273d46b9e906f557e02604210e34f1be3213b121994fd3fa86da4c5c43fd4bd213e76387868e7f3b2ade5bac9ada99c54d0e948520da7ebbeacfe48e2a8113d000a9ebe5c14f7dac827393a7ed2a5eb44d8a33cb2c010cacdce5b868f9ad8ee93183fdfa1d05a2febffd902b68bf192682a0b5a418bdb900d86365a25e5c11486ff4a2547fdd7cb24839c3bd6d2fb95ec390416dee8d5b4a1993ceef53a5f5ea77357674c7c0a27f78c483925df6adbb5c49074f5cfa660969cb506abce22c764de475ff9c41e064035c48c088dd6c69f384aa76aa21e2c0e4b38f4405adde76784b0cc331484cd3c954776e63a5808f7f973bd73ae418f8648a02c29a8033214099e4e65ffd33066913bb6fa1d5d360865bdb029896a8a5d5b4ec4ac8953e6aa02326d7da96a9067d968ed2e6cab00ad00eac6a296fb48bd16acbcd1acc02d221325e4124c3f3e69f6b0b825ad513abc0c7fa7899142274e2f8bff11704e45db46adf1c4c93754c73e8eb6267e5f69cc4c24b1a9bf1039a39e8e091d944c2981864e78290a87d9773a43898de581e26fbf0919b8a7bce07365e1df475fe75c3ce9b315b07cff1e3cbaca2b16f41309398eaf299b11253a015dc3f067a91157cd6abde00d7c69e9907f6c1222fed29ff9223f3761d0c4de8bb07ca4637ae5e0fa65f22a61af6dfeca7f007b28e764fd187ab52c158690ff734a8dd5f03f202707f27bd271ca982e5e39ef53c18f4cdee8a6285aa054683974c85b52ddbc3d6083b2d88adac9e2e4bc708f05e70e0f24d5b318757192905cdf1e5211b48ad256abeeed49bc752ca5c69c8c8481094ba4652a0a0d2c824b16048907b29c231e86852a806ff24014fccdbceba284ef0a6814696a2889d64c5e750b132d63f9fcd693a201ade06b92084107c6947efd9be127a8fc4e871cab766cef81aceddcaf89b50ee6f17652ceb878a66ceebceddc72b23d3c1f22de6056e27d56275baeb0c8e782151f843b4a90fa5f7bdbaeb8428620882db8bbb94e267961ad43d9f0649aac0a773e714fb18e5e7b3d2be2ab1b53e65bbe5b22ea43a1c20d56cdce27da15758d83d3b39536341dd59f6a174572c6b182bc20df8cb5739c1eb3cdebb72b8a602ea3b4e025a9a150097bbfa79473d056dbdaf2fc2b587fafac2b58b1bb452b2d62b815a36ae59a5a8902d7c63c125077906b397a4c73c45cffeeb57efd12c7fb76c568ec76f5d1cd0b151d946275b4a94d4908ac6ae08d272ab81acf1a4cc4645f299e8c84e8f0389dc0a625622a6a0f1d9a5080c918d2e1ad2b18ecbf64681d8d2088773c306537f8d2bf2fbee5c372b315213a78ad3506dd4b6a6cefbb939b6e0346ce2996fc6c2600d08760ae3aa1c151cdd5d0039bb071c71a70c0eef8ded0148e0368c79988c53c18dc8aebbadf78d6bb69b660f86a24a3a06f78445e00217e545d8e3323c2292d4ac683efd04a9f8c2c3a383acd7444d7ed39474102b2a436de7094bac40028acd4fc9d100debc4b9d5de7ae508068dbe40a7e71b1de99522252fc9d309f62229a5cfd785cad97b58cb7a5a5f9da5b5a50622f72519d1e6f2183b1cdc25e813e8645f0a541c0a3984cd6d551bf0e293239616769a9e35f94a1a4e8f52c2e5a98edee01020b1012306093e2465e89f60f4a51bcc3f6feff00000000000000000000000000090f151e222a +flags = ValidSignature,ManySteps + +# tcId = 41 +# signature that takes 39 iteration(s) +msg = cb0c000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 6570319fc14d783b583fd81dbacc93c9f25e209c7e2d1db45fcd193534299d97fcf05beb603478f83fdfbe3ec2bf9b808b20c98d8d72b717cd72a5185c448e725023a0563f98943926a79fe5a2a79032e08c393d2c5a05fb93c85b56f13942ac010b90048fde95b3b4fb15741143321473ba593377ffdf7cd22d84a626259ab652002101eb3d86125ffd59fd794d9c5a728d7d4b5cbf1eb65a1d4d8d81483bd3771d53b7598495e12692db46e73a433805fe7fda3baaad3bfc5c0095fee660914c85380a0663f0d6858a065262d2de624c46d94c1604f1f168ddcbd2bf7b771c0a251b9bea65c3526e1f12d677d9fbb2a65bd35050fd2d64c8929ae862b89da6dd0510f5b4da25b9367f0cff726c9b3f0b7db05a1e5613e598bd8ea4306fdb17a7898c5f8f3375a8cca6fd7c1621d1bb870d12fe3be62440172b4cc57f7aa8d15acb44b2ec4152a65a36d098743ff64b8e767a4013b089a9079eaa4989c6982f84f4fefdae1ebd3ed204aef26e367bc7a9ff803f0c11917b0aff5bda98bb4fd7d594d1a6676312827fedb48261521c891252baac6beb46bb7e12952b114c13b1e47b42ccd108f9c9772ced3341cefacca3b7baf0940225cdbb03e4a1c1f0a9805aa6a5e85e6772d7c6feb44a0983f20ef222bc2db11f9a755d5033078bad4a1117c16159cd963b2e7d5ec56918399e7e2bf9a60a1a9f5d095a136aa9fc0cd559c85fb2b5020c4cc03fba4c34147ccdc62d0419c5913515e9b21404d908f2f9298be61437222b3b54d4db7017fcf063c03ec7540b725e5c9d0c3b9a415c7ddfd795ca26eb269c194393b7f6aba85600c2314a2d70865db05ede213e128e63fc9c165d88b4b72c8ac5937127a1635b35a6357d41f16eca42233986be1b9cd2e01c0c584371b2d7a75585b8e2c1fcb0ec296a22f81e2d5abbb57ce4cffbcd0393bf263e2a9bdcab358765b61e5885bae17e58a647fe50cf09cbe6b84461bdca74341db00c592d6ccf7ce5ad746d03b822344fddb152a91c1bf17fcb75c7d0fd60fe208650493d5353cfa211d95dd4d516a5ed6ef5a5f53a83f44d45dcf8cff27f7fcd565acd684d7bcc3910c3ffb2675c52735acf3796400de88048f8d1df93ec618fee34027f2e45f6c96a67e43104eff82d53d7c298d15758d5fd2b466b9a00f7ec438dec6a35d6745265250b46c7fa4c1c3d567d1837debdc1c72d0d7e340b03d3a3151037e9c3137af1b80bf266b8282d02bfee94a01187aebe854659c426f12eefdef522c050d8b514255840f870e0694fb191e918b5ba89df01047b8f4f7fb4142f7942247344ccea2e724fb30e75f824b9b244d13b4ec29b8baea39f494f5b17ce1bc8b3584780ae622686a7934249131ba8165473c9e064c0b59bc0db04d92784976085a389c04fa2fd6b15f49c70a59890af0ca86f05db1128e39b36023700919a89faf4db37d96b29b73e7732b37866b90455322fadf4fca1ff26fe9dde33a1e4645d394f24dc38541f8fd7a21e0c80ba0f7f5081874a677e337c802f5069121d4df8079b9b1143cda5edf2ec1be98f6bc60fb26ac20012ce73b3c56dea37cdd25ff02398be4dbcfd8f681f5253da1fff4b273634c1bb6f3ed991c2728c2aad1d1d1287f394f0f9024fe4d805f4ecf059bdb4786c4125af37e65280fdb8df9206186df5870b48cded097379d3c3f23c0c5920cf0f5b9abd7af7d5966a204be229476b42bec5ca903df94dbbe1e89941ccf36d7aaaf4beae2ec1e4ff5189c4525db0e9f30c11dee8c8673360634d49e59f928df07481754df3b0d4b14e30cb596763f3268d1106fc571705c6b94d7ff3e1be58a68bd1119910775eae6e0edc89ef7e3a4fbbbf71435c9ee55539d45ae764289e673d21dd62e38d1e5ecff6a2d76462454a5f366a017084b9b63ed39379a15d1088c2acbdef377e78bd0850eeb278fa4a90154783d64657ce67ef0bbe4ec673e2aea2cda4695909cda72ef13a8be8fa81558bcefa0373613c74bfbd5abad71b06b98edcd4383ba05dd89261ab86c28b8760e68761e928530fa733c71ec1ad2153ce8651fd5cae23ccfba0ca792ae0285421139b49fd4e1e3f6b7e84c34b0ce9e8ae3cfdba198f325ddad28144bdc8d04beb45d311f960d1e0e730180b4677c01d3023ce79416e94df5782bd27a150a97ddb7b4cbe7feaf30733253d27f6dcde4c50f912fc1b01f899ce1dd3d48152e67aaf1d90731b3d4b578528538c8989f9f76911b3bdc6e36d9894f781a0c4c74edc0a4e102702f66f1c8261a92b38754291726fc8eee9afadcf4a256745884063faca94b2a8b98ae96b0581ef2319ec9ac54619ba66f2412e95d659e7ebe39a909408e5ea7901c5bc27c74709d0621597e9e84ac59befe675c51cd075a25efb4c9351baa7d3d9c983b27ff1595a2bee73952c7c0b6c9fc252c8c7086402ff025c121b92c2425b3428b743496455954d38ece2b3964a9fac4457552388127c012a26bc88bf6866504568ad32a742f87123d61525ebd1f4109324e3b57640052563c9eb9cfbe683b5a325c6e8b028b6b9cef425d895ea902031752a5b7ff96a2af6ee1bd719bb0581a4a4159c0c58bc36e74c7360051934433ffde1b6a49f2c04e93077d8231865b3621e272b29a6f50f7a2d059eb380b4b43c3155d7b4b2b6eac7da5b135ae5b419b5f3dff09f68251bf5fcc3e10168ed331f5f0d1e0fb51e5ac777b2eb4d9a2befcf049be9851f791a6f059414ae3001acee646a07a222884387f1e56445d7852f7db92d40662e91101d5157dcd7ff517d3b864b557316b1dd21706fe16adb337ca7782ed5bb21e970afd9dc16eb36e08b728bba8608b15c30875fcbf6f939d96c7056edf024af12e1583758a005e6187cf7c2e2af1167700129ba74ef20e3afea22cab2ea9a24f90807cd839b884016c8b624d2cf13917cf427bee7548c51d4efbd1fc98b0034921c72645657350d189777cc3bec591fd205721d704de42442d2b8b742f12136af848ae0ed3150bb4987e31a3a544b9f79456a2fca7b149a8f1802781206b57d7ecbbd465c40a1b4a0e6f3a1f25c5ee35855908a46e4dec78dd586c086c04eba75769fdbc3cfae0cf2cd32abdcfe48e2b106b8df9a4b98291de33e648efe6f4355ee437ee7cdc854a3cd47c616eae431d6955cb78548ce93caec1547f2745e32686d930929982fa2bd1a187858511218c7342ad386105ea90887f0919d875685600706ab5bb683e1dc5196d8943ce821a639a7931e175df372b81901af3f08ef4bdcf10a18127efc074d190519a831e8ccaae06a84f641a2f5fab19fdc708e8d63fd66106acb2a720361f9f03a3756542d9a12d3ebb9301c121aa30f757ce4e56a2243cb882f9d7df7c26a52fc8ba8a0af2c1baf6746851a9c2a3e65ee15d456f9395482b5893c7937198415082992b7d7f34a547d77c68cdb77ed32ab1218d409bd71240857b13b0974d045e2c89ccf8e6a62104396e217f793a990d162d41ce4bee49792940496930a20724c9d4949eac997d9c2e5b9dfc47b04f0cb0b694e66f4e9cdc5b121893f79e52d3d61fca23e667da19286537fb2f3a3953947206806782d669ec03c17b1c7bbd09b4bff50d91252707a1a99d7cd1689bc4eba2f985524903b19d791da6fffaaa3d748918ac7653336924c960794bfc06f039580fc1ddad59980d1818c7ce79446f35576b7397caea996e359da3a3b3b7a882608ade4a9cf32380216633da5c5672cb0aed04512b6c784fb4b165ee2b878c502a4a3ce3c8fa48723694106166736b93b5e688961092f1ffbf603e815aab3faf971f9e3281f784ffa3a2dc23a164cdc4e81783d5486b4b6132ecd404744b248df1c32c769329f224674435237cfbb2f9806ccc1ba3c8961b4c34ef2ee69db7f469072a116f842b5399cea43402679db4245512a95107095eb057bb6ff24b6bc418b8c63d7bdac31c6802b29210d3662cd27d57386f1eafccbaf3837e2f8413f66239f2e689e537dc017d005ddcf003bc5c25e6e7b75b9af884e1b164717a14bd10633b4685b6d2ffbe03d5f5574b73daf7eba0a800f8b93af81850bc692b60913e16ae210b552ea00c4175c4514218ce4ca00fc16cc098c5c6aa499a2eda2b39cb80b80f39af8dbed96b9ea9b010990b6524e0133babae543296a6773577e1bea164689993cc2f4f14c63647c4bc9fb70091e09c85aa3d394f445567dfebfcbb2ba19dd37d4c0810cb929dc9ff9d2e5d5320439c7e568cfe1d4a1fec65ce576d9981ac8d45e5c21ee9eb43340b3db7d4de838730742616fb2d95dc2986960f08283207c414d907a044a3c96fe6a83beeb79ceeb9724ca40e2f0f340d8d2c6e64133d619594e73d592a9d24c5b00aa1dc8ce4752c2d86df0cc79e3d81a8a1b1d0cf50d47207d555be63db4f1d87e818082620474b0f8dfd7084941b14e8c99967d2af0552cbfe6cd388665ca8de290bd2593d44e139d24c69c1e09be1048da389f7b32828162ce85f830e4e2aa9f81eeb6e2f3e41fefffd2e611de17dd9f35062039c2b940b809560f9b3a749f0f60a04b06e024d107991ce612d2b0f9eed003b831476d71b7d1f07aa3aff90a353e778e920b519ca5b8ff394183b7cfe4f8fd4e73789cf600000000000000000000000000000000000000070b11171f24 +flags = ValidSignature,ManySteps + +# tcId = 42 +# signature that takes 43 iteration(s) +msg = fe03000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bbcda17759a78276b6332f3f95bbde79b676072fbd6fd60a4d43e25ce3cb2c34c4d81dc1a278a99c5d5faf8596b5ad4ff060294922ae3d220e5eae86212332da242a2e77c78db4e06a1d28220e3f4a100022a3b461d263c43d9bc5ce2e3984e192f3f8a5a2e1f25bf7a5e88dac482888fcb8657117a0911dde6c9cff20561460d7378821a073fe7eb2c6328f52c2c74f6448bedd9bee33c9b4bd28ad3410e3af07ce1f9770fae92d8996ea766e27c95fa5b8021c735413e86b277727f467f5786972c3df4e1547a2b921cb265f48a4a0e866eae0a44bbb32be8aca8cee6a6f9bb60069c3e8949a7d6c448f84e05cdd726bcb3224a50b49f6260e2482f45e047c3f49ac318a8ca1d9aa730c807f286303e837e6e8c33079ab12fa20433860caea7b91dc629feebb28ffda66e1e8636b1e4f90488a9dab533f0bd1596ac3d3708cfb2d30a08636e411fcaacd7aeff28d2253b128494d37878e9bef3676843352d01e266068081be7da3abef9603c7d17229e57714c61e512ed4e9b516d496bfd6a58d17be0910b280ef2e0684d94d957f80dfa1cf3a45c1b65f5a0dedd946b09f6d0f5e158f1dc931e4d44639a687924f8de96f1b061132224cead2c5fdde857e6848052c6ab47283db6095fc94b2c392dcdb741ff223febfd0a637f2162e862f4e9647c8f9dcba2e1be425f5308eb1bc507cd10af0df3a559d1e9d9fe91ed0f82b71585a16f8444e2908f166ef8af1152969a73efa663fca2aeed5273e17e84e694373d25265b0214f90a8f6b610e12f73af764183cab7e99f5adb7fef790ebb61574a424e2c40afda048ca5ee38d0e50f000c03aa3da579729f92b71f4e79e6fb386326863a2c48289224a22708e8cf3541467f0456ba6f2009c4937f88dfa15c0ffdbf4aac6d7f677544380b87284e142b71dc4ff51d385bc78752e6cd9cd7a12f54d6e38c7b7622527bae2ddc033ef88e313af84e18aa357c5ad56df9b1cb5ae393521f21ac8f912e5dbac2fd51aa7522ffb927f21b8e28d4bb9a3eb58a7b3e7b63027832d811ff57b1ce25583d2bc70aaf8cf91e6f8ece51433d97fe437127ad7f3b0647ae860d88f9e20dc6e281bac2e8f090911d7d390c6e8547240179871a55e0e73dd1114f0df5e380c56910fed56f674db18914eff380467d3fd01f3deee25bc525a672724d62f73fe7c0ff813c8a3202de503e38ba7c538219a56a44d5719685de991cc996f2b483fb8c0a2c818378ed02c4482ae0239fd494249151ccc433013dc544708b0fe45d98a6e0a6528b88c32892f64acd551a7d0b7bb884f3c7a18e58b8722e7a90b904d21d3004a00b468a5f06f4f141bac688d04f28bddb7f2421f0d2e4db7a9d7be94959dcadc9b1252b1d8547fb14cb81b089cf8c4d99ddac314519bb4c9a19eaa3018e805c642ea1362243caf68b8d4972bbd2f9dbd4f571fbddb00b65688ccdd344a47bf616adfa9b6927f796e08dad32605d97a90acfb70d4b4f9c95285541a820ca6e9e959bbbb1b77e2089f87fd41e824de384c3a59c251b7c571c1d89e40043307d170a4e679cad7ccede16cad15cbab0e56c4005f56fda088434eddb1b4eb04af6d7f8f5120b33fdc19858ece0cf755a57f3a2006750ba15d687a507d4e5215062ec3431f78f168218874bcb785262068e0daedbc750c1908420f87eca0f02fd304a52abb78c0968330a77e587a4e087a0baef408d3691290d2edc5387bfc169f52ade0b387f218dbb7efb9435d93a3a7876aee38e0a49c9c69d9a98197e092ae1faaf6c8ec41804b7da6e62210c4cc673952b95f55b929b1a8ea2b3d08dd5434c2651edc7a41dd031212538635cad974b382b670014a9241a1e2820b2a74998a46ed419900cc1464c2ffa33f4d20823efae2452aba5149e825ef1955572b6671f3ddb3452cfa1928e4e5fe84fe875ba853b3a56618be73b3c530ad3a6f8725883f7e23d136f64ff7cb727f1020b1f4a394719a71238e3d7542a66ac55011caa451a3a5e101c72be22fed87f9a663c5f0b0a4d711502391d1edbe0e90215b00fc08289b72425a0dac72546b539fb9cee77d3f084a39cb8071f504ef52979302836de1bc784b58dcaf8a3bb36981f45820a2cc35a29bb8a6857e7fae2e1632a857db40d1fc5bce39356d6c428cb5b4b8401aee5165be259031acb0af2a7433c41819a1c44e74a311707fc15ba6d4f0997873bc64358a5bb9fd4aa22b1caa9c030136e2b5f5b0a999e7ce009e3713dc032e4fea8f516a3e0ac277a36c29b5e2bf15cb4ff86110676ffcf33e4b7973a3bf248c7f6c02c9f091da8b85380684ff829bca245c3e3e53b67bfa4bcd34f0a598b5ef09bff00123ca0dad69518a765419fd72eff17602717957e3ee3df45a82a573319d6b40dd6beb7051966577d41383d97137eff7db84a2225e98d014f2111357edac272a89a7c50e0184b27d6a6ec611f70051100e9887657cecad1f34867e6d144c360e9eec53bff7b8a8a4ddd9cf254e5c74054bb8eec9359ca1fc91eaae77a9487685a209ea960b43a8cd198107b112deff2391cdc326300e35473a634c96d933009fd172601000c28fd58243469bc7a634c462b7f2147c99de6a6f03524f15fdc7db81357ebeb1eff404fc94f1c6e40912ce2661d8eb9d584f572a6152ff88d764c20ff024ff22f6f13605b3bd380d0e538f2b060ec6afca3fedc244e18f16a032eccf437f38b9db144770aa247e0fe7fe7001aedada4cee551e5e37a38b64e086e442799869b7948493526179807d628867bcc9fc6fff1a8d2a7203a5f0202e00fa2b7a851892bced0e5b2ef90501df3984f1a28746e6584fe944f6436daf003a6ef2613c20982e3ca9191228835ee1102e5fb67d5acf87e300a6de21d7091d6a573167b0a65f2dc79f979f5d1ce55dab07e2cb2567266f8e90ff619b6174110372f43baffe24e3711f114be914c0e01c56756e2460293281cdea5cf3321f789f64fc1f19269471f7373242c63563c7081e70fdf014ac4e11d1648e6eda56bf964599f7f91fa5b85f9c012236f700380a45b12985475ea38f03f1fa5453a782d059bdafa71344bbc2c60eec43d0edfab113d7f8761bf37adeee2ef88a5ab5060f004de5d69cbe2d772a627548a85618899a2f3d56ed971c8ce87acd78feb6476eebfc2f50075e984670a31d45d9a351886fb72cfd889c6c3486a824b0d6829d6db49812095873d9935843fd0433bdf9d4f4ebccfad9fb57fdb7f4bd73b0ceb1373b6e55d564f48f2d5d0036850ee0e04f824f45ccdcbb735dcfc5cd1f38c1238a28119008cfd6d608bc816d1222a01cf368f5871a9c25c3d6b023c235f8e2cc4e32bb365abdb16f5f9959236aeea856c562432129c1547b845ff4f143989e5d699003453bfa694577c9d5b9cbb21886ffd65b3b1d799ea31562264493d4f5f00b4531e132f7f608333382c23024936851e1c4e785f073a3441bca8823f8f56fe8ee7b484d09f98d898300f83974b9e39f56ca4184063901fd34837ae0269939d598131b93e68e982efc2e9f23183194d5b1bd977f886be2f58f7ce51a317adb1c29dc153316f7054cb17df75e455c1bdb3556e008a66954ee1c082e23203d89d8ede425dc355c592681fb20b8dc5d9ba8563da39470c3a86eff22c218f796f9594a0cdd39b7e12d2ebc46e30650756f656241606a62875b89f864c9bb7ec6f22a3086377146a053b373e5e6016a690c5eaca8c923d17e7d49cd2e81a8c2b41fe008b742983b48b973a2e87a03295868dd6ec34ea1cf51c359d5ddc8a0f3b480b443f9aa05ff0b98da9bb79595708b9ccb683e4580d20b933b19dc025f7e8037ca6fa70260a0ce40e354b73304b0840121892d408a19ede4eeaa311166d27e711deb9e4c2f22486d01db58a504caede74e928ce2c39e68fda561cc748cd20dd5930241eb700a177fea79a33f041c72bb5ade325eaa2f7ae60d9a9c65c314ed410a94299f608a9fd3be24f427f682bb27fb32f9bab81dcb492605779267ee0b7195ca1b7c52103692f204fd4cb665f279fb3a4a392022b8736bf5af8480bc5f766834a8e1944c83f41185d2704b6938a5d9d03263e3deae764d5e9882b7b2e4521b379d870d4968eec4099cf9007e6519809ff133b36eb2f728159b36934834990096418c1620dc41e53f3eb8a55c6657687a1db8e5756c2a8250d8ac9d08e5487ff27d75b8efe3351318dd23b791e580f09feb7b13f4d82fb0667fa66c32f6074bddb6843cccb7a6cc7769822dcc0ab6487f54c49d61f2109b47cb2c87c0f6f158298fd22f1b9fa39ce57c1ec04b69f4ca155f8ef86d321fc3bfd52d26b58f9c108c729fa5b5bb3426628610ba05e816f362815b685a14aab96b63cf2ee717aa975ed4d3cc7172e17d97eab68a8e32220a59279e543b2f4894fdcdb792a7da257dd004eea12cac243c7b9b67b0b035b5d9bf5dd54d7e1fcb0a44c7a18cf45c765777c3fdf20bb4fb29adccd24952047234331feb580651282e1a523e96e0d6bc35a50cb42ace95edb1eb7bbdb91e499d3cfb463b61ee61f851bfff32c944f8b1090e7e3fd8d02f05740a840fd6b04e969ea2b6c3f9fb7086267ba3bbdfe3ee414994c30622254253829aa2a5c6d4060c35444e7f8288a5b2b6d6eef8fafc0000000000000000070910141f2f +flags = ValidSignature,ManySteps + +# tcId = 43 +# signature that takes 44 iteration(s) +msg = bc10000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 7886b408e355ac8eed58a28db36fbcbd60e3c9fca1f77e88ab399acdf57fd12c03fed5333307614b530ea3446cfdaac07ce1fd5310cca41e224bba5c0387aaf0091a1ff0727cb4f62bde0cc681d1ff59294df794196d69a377bf46fcd717c44904184f0b697713bfecc4ebed5e119f23deed3de861965ce6c8c7573e45f29f819c5a67f858edd3a223ab300fe97f3a019a9ec43f24058ff10241ffd008164c78acadbe329340da4a98b07ad384d87a9dcb82dc30f341f699e1d6865c00ce0d33533f52f6a3186add7d5c56555ecc7a4198550103c46a60e9987e00588c8720f4bafdc8f52c76785bd7c7ae66954b1f89a3372df91d963cacfccfa384c9dd1f00a381dc16fe205391c60ccc9997f50a05d7ec28a41921001228450ba221c9887c04f6c127a4b979e595d9d48734147d261587144a702ef180e845733abfca6b60c628e2cdfbfe9dc9e5c310cc4a9a79e9fff5c61af2e9b8eb25df72fac662f3b0c4860f5cb30ad2510013428c18cf2fac4fe524a86d600460d73bbdd287e470bc2c3e92df0c132dfde71447583dbb0472c2f6c6b99835d351788ddd09d2209191ba821fdaf237851d2d8698ebdae44709ba44358a49924ed5df96755b30fe5bd467714860e92d5c68c22eff2da7024d53fbffb6f04dfda5e9efd44b529fd708dd6898311e5a9bd73d2acc5518afb2341144fdd63159a2d8c092cbffafe65e43fd29b0e6a3183ba3eb0f4a0f393d4b096a195aae986861e7ec97a70d5553941e23bc96b10ef09397bd938f47d32c6a4efcbdb45c75214ad4f43d1dd73bb4a929b25e5c7fd00b55d16a0fbd2b4cfecd03ba0d94feb86837d404f03a296514cdfaa9dbf424b9c3344a84f2a99efa4d273701c32780a8a0bc568959dec3cb58ad52010253eb1096f752fb3eaf9edd4269cd53195478d6d9ac8229aff4efa1a7b7b924b38d9d5babdb6efd62029d21227e5c49fe344980a900d395a5635d5a5d5e4e60df03e587e5a69e0ae1114d9128e8162d111753456e0e0e9266587873f81ad81c3121eaa4f1937d5b2f3a36680002e81cad221678122a456f0304b36bdadf95de811143b1daaf48df48db876dfece80e7a02590a597d30cb02f43fd0ed854806d8e586785c01633b5e1aff69fccac11eb74dd4d15d4c7785d0e8de88163c8e05c07b2dcbe2ae0a6001e4b696751ee80393036d8d2f825d88ef3d7ce51cb2d24870eaef40d3ef91293457319151efc02403b5ced3ba2cf0eb4c825230e8a8e89f31016ca19d5cf3cd20d2d5b44d9748afaa034f8222d5cf20183783a26728df676ff8f55caa3f17df71149d1d4e9f71d058a3d1d6c2d4e4d2030d31c795c2fcf08832a4a8d1c2b2297ea3081a1b6c5c74e297b576a3b3901b071c6cfedf84e619e7c879034c36c0759282a271dc4c1444c6603fa2225aab788a5ae11aa242ce8dbd3422d4274dfc807812fa1c7d119a6d43a9e35d4af818b3727d165813d65441d2d8b42bde43d56d781f5b9b341bfcac73180d88c933d9e25c9a64cfcf07f3e03f89797156630f953e8380859f37c6c630fb4a95b290fcbd85b9f2e05778aa874a4936e10638d21fe3cfe0176191399ed293cc6230451a163dcc2a525ef130a8d1c2ad93ee87682ba8e061101bcc332794c6ee2673ab298982318a3b68d10dfc46e5ecfda4e1164b35dbd296e4bec9a01df32704b76315ac1c5c660b871f5d0ccf4065d8de4c1ffcc8dee4178bbab66f1b02179e6f73bf19822ca9fb284021afe756259f051c11694814b8b019bdaa9fb261e8dedcafd2d69b19d1f96f1bc82ec77ef51031b96dc65481885763c5e6746ff0bca40d1c375be2b2d4cde654cca8415cb2a83a66d216001d692c4937c138e6e3b1c18c54c02042f8d58033fd49936308d1377e5d88b98b4429afaf5e4af68f4a1f5b2e039cd6b5dd3d04777e65c1b2abaebc20549251188f697d1c7373a62cb7b08d2dd367021bce2b5f4a28e6e93d61733eda231de2b35c9e2c84b8063e9128671a9a27b21ce5b2c6196769c0837fc1f815439bec0536f017f10803f5ca14f1280988679d604e19330f625e3965e66d59bd820cc15a3ff8f28692381e2477453d153f5e139855e6ede385b5b7d72506a3bf53ac3ee843a8dadaa8dab1e2f84fdea598e2c6aa4e3b4ffc58a78b53171952d7d49b05fb6e59ed5ec857747f9b1526a256fc0f048c0c2e239ef8dbdaaf671eb75c56309f56397a3515ef8b696128c08cad511fbc86492e55feecc19a4c854c40d36cf7215d3980b7243107caf3a3d7ef580f2db196e1424d35dbeff8277d8c0b0e749e26735b78e10db19c8274a81b1168f09504d0a2aa90213a72bbb6881064db6b488c8c4bb5620b8c2793e853660adca017e12815b378106a88e59505be0eeb43b03afc211103f2d20174e5ef5772b9e87953f9ba96ca1e69bf79939d6eb75833dfb233d2f7fffe6cd1212ad896105492ee863883382403d0e32124e8a5fb30dd3d5a44c5859c2f7a1ecb017410fc7208145193230273e306622c8cff46393a73807cb210ff8c8e9bdbbf474377758214b4bcf6d2d45ffbc3b7664cb4c7f4d9dfe2fd8d76a2f9a09922d6f5876a09fa45617ce12e0bf0ecac9ccb6041568c0e1da7b023ff02542caca8198844eaee7144d535583bc7628c11b3c02d285ba06445cfc96149af917ff7b23a3a57aa9593d458d10e48c380396debf3d00dad69c5e234ef2dd8f27bde03bb8a214b8d8500e5688e5eb75ff30d6e0ca650b283d726096a46376fcb77a9ebfeec2a1a796193111f491e7c25e4a817aaa8333d4485a73f6646ff228985080376264e290cdeb8abb5e52b5003b6bdad5e941012edc370533c1773e8182f019c140595cc28ee1308c6eca317eeeabf6b8c630274327ce81da763cb7adcc4a625f0c2252d3fa2e2a75cee7d1b457f74760accb952e364e68b300e509ad72b06f64925a410c5ad29a55433b926d1cd6fa754587e1c761035c86f1b0130acf97a82a89b7a9a16981d8c451ef529dfeb7a8b072089fda297efc6f795fe4e91c49a00a5388d19bd553d0dd2db09bb53aaec2f2b1db95d5f3ed9b470d8e8ca43c83e04aae5865f84f590b58e7fb9c86b665bcac31841c31b965622e40f5d2f01bacbd2cfc9a97645bb303968c2bc041074fb9f80ffb6f7c4ae869942a1b8537c5bceac69010991cbfa28eef201b6f31bdeb3acaefc6a5fea55f8aed6ce9160973d621879ccc6d3c96921bbe4e3febc7e9308f0cab473874812051043011b4c1d73476592a5fef111e6e858b88fff4c03b99fb22b49817a7153c2251f4524ebab30968cbc0317cffd227183c3fabc5281df4467cac43f17d1ddc40047d1ae3935e354334ac595f0b756a8d9d712717f7ed6d83c0a58364ac96b294f17a411731b4d46535e20995af972cf729f7a8c222237e4aeb7cf8694d7432c95c7e9125bb03b0da402a24dca423eb97433685e698be8d0555292a3af58a36c5f23ba1cce6854e5cba1bb1d6c989ad55dab142ffaf46a1ce65d73994132962c6c50868bc697b2848f6b9f78ea71ccd9122cb6686775d7f39d3245ed1fef51ab2b9d6c95201169c1200021a315aebf2501460859b32feed4e37709c1d3fd82c495c69981043ae54ba577276e46e155f568b7efa9db1cb204a6b601e4562535ff4edcd884a2ec25d96286f560652c5ac73f12933d9137016f4fc3dc0ced8957523109cc0f97ab47d4d29d577c2618e88c4a4b6302cf01242a6af14aa1bfa3a287a3887885b8d0d276f3b113b1cd601f6e78e5b0a4aa1bdd15a5dac01213f57fac75bd292693bef59a3c1dba65d235c6834568f9a25e0a9c8150199f378ae482ada1adc67af79177d7e8d2c08e743264299bd2e92803256c8f7da050c4b8e097b5b8edfdab9c3d6fc8f6b2077d99f914d6fa20c10b65391be16b6bc0ad69794ee5e6c68b722765b12542ec9d93e6f622eac5a75551c0826f95c69a50e6ba8e7b255e002a6e8db7233cafdff1c0e3106b7126bff22c577874a861d86a1b323eb3936a4cc429e85023984f7940db34bebf39ba32e6242bdd78a9e707ed14e874dd9b93e76cb258b19a129a4b7368e424a56224187a3155349060e8bd0c0f71fe47a003314313a5bc93e774eec2def8a26f48ee2c84860b08e3cd414054792e2cda188d14a7a13ec99dd4641b5ee12592b312192f20ab577b1df34c445ea1d656c9c7ab466344bfbd4be5a4b548bd201031eb3bb49ab4b9c81a76022c413d62836ad9d5355f6b69b9215f9e729e8dd5cb9d9db4b2cda30928886ddb9ff89b48c49c4490abf9dbbd75aa0db55409ee084ecf6c0b604fcb6691e3fd8f54aece7c783e4c623920d52b5aa79ccb6e0335ae1c215c2198c0e65d0399621896009a21b824686114d958bf5211a4c51d0890a376335e50442cea9241ae3f6c50f3cb53088aedb6658254210acc27796bbd7ecde4d12f80db93971907fa13fefa7203e566c63a121a3bbe61c486cb044bd94b8f14d172469160984e5cbf0577d581d4500a9b1a94403de6f9dfcf7c65ecc9f92acc734cc6c0c59c6df459e383b73c265f337a83b0bddc1b0a494a0e67c7fa2455766779ac3080910162627c1101f3d4a545769d6e36fbdd8ecf075c6d9fb300000000000000000000000000000000000000000000000060d161b1f20 +flags = ValidSignature,ManySteps + +# tcId = 44 +# sample_in_ball requires 1 SHAKE blocks +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920 +flags = ValidSignature,ManySteps + +# tcId = 45 +# sample_in_ball requires 76 SHAKE bytes +msg = 9e17000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = c900c9555fef3710097fa1a132c5d61623c554c4c837d185b7f3d1671a8926062e094cd3680be899883c036db34e39698133f314f6148dc3aafa088c06dc01009685f1a0ddca3b0311f9f521154c8a692a165c3a488419c4745412cb06392dc6a4d12286627b6eaba2f376a3225ea85f5890df2d03ef9a565ab2f94c99c25d9239bff7ac74e94df677e7282c0dd44c06fc2f26b33cfbf8da05b50fe725ae9de58d6be87628dc41ca774c8ce106428f012f2a806631cb5c763c722e04fc7e44f86fc75b1398a54412af3730a3c60e47d611530b873feba32ba4b34081e02652bc006b9e106ad6ff4b698445e0f0514837f94e4c49f52f42b6d1b655f90254adb8456e903224fc60271f280360a632afb017b5255b6923eb8c8cbfd62d24643e8f100391fd713b27fb7e8adcef58c26ac4953c3a73bb6d12262f78228774e274283f8b810c317d9ec0eafc05c6dfcac42d6bef8f8963d17667f7029182dce0566041612a7c9e6a5a9bfd953caa1e88287a20a83985ee07eae3c5c8aa408667556f7e19d657fe11036a227342358b7e42d5015513ad8ec587a5f19b33ec2e06a146904edb381ab11b1c0b0cada40d89cbcf5d7c9f4e15d8d7cca01ead1a66281d8e5f64ddc1393c2a1270d4a97b405d4d21adb189b8eb44098902eb48b50c5f5d1496bf5d5ed0f74e58b8aceab89a7cfbfff608a8a90d2baacd652115596e72fa1740848b2cb6b5bd8ecee89aec60118f16f4706edc781c6225daa0bc8539d82addbcb8810ce2687f1a171a3aee07516cfd6697c2e5d63629bc43ea3ed4a982bd516f3f448a50dabd95ac314c92f92d468f4f063b1fff69dcbdc3a4d8d21c01deeaaef7b9be41e934a68c144643a99ccceb8e3106ca28e7b0bfb3a9c5e31e33a822573db60e4a520e8f2190361b3387ca038c0210fadfd294bf8c1b302657211a54ff4b159be164680d3eb4c9abc7d6b07c2b81a5085f4759465f95f367005fa33544d56458c2b51bbab862135745a22d994e30692ca39b8fdba968b3766bb627dd6463c54487b81a27cdf9b1daab2a83c6af174f96dc454feea043bc0cca7ff9cffbe6e1ac04ec830a0b4e5d698681c9ce860da61249f3137e7980bde1cd4eb0a545c10f725f26a9e0d4e59987c4d516c28e938290bd88ec1729a553f6c7e52ce9fcc402fffdf1aaf47def0875c8afcb8167a530a94291cf107e095f90d92998f4200fbde7e5ebdb8a3c9282f57c2efe94ccec3b5aaae61afcb7892f0b20c3878e95b53a70f21f327b70555550a4805ac6a706d4bc408f73016b1045e2fe2c2be0195af8c44855e3233f99d5aad848cca7fcc43a0b5a0b37f54fd8d9f24c365011448a85f7fba7a9a7b4aec183bb680198d1626e24948027081d8e91aa6cce10cea8a6314eec2c74787cbb627a09f4ba7a691d963c8c026a2c1abd6a14059ff57493e5bf14c18fe982f7921262c85f80ba72f4dd88eda886ac13e63a8bdd9f72b04a781ea9e4ee2f58a15acbeb2a693a8f61091c02aa0932154817aaaebdcb7471b9d0b4aee6dc34f2ca644b0114b6244579f77e096e121e7143b77443459bd5cd1ddd9623fc5784bf34267bcd78068a0b2225f21ad1935ae44bcfd1a23ab4d012c8ffc9276d4e0abb5f100b6a90ccd7ffc73a44b5169a027b2f92f7a49573c997554e94fd5a4bf54f4cc473e794b60cb3a0b0c5ccfe6263c4f91d77def6ca8c0fbf91e923234c8a2657d91f6ed08e6ee04b3b2a62f29b5f467168d580848912b5c2c05386aa52ff2999d6f7d5b142cb1bb78a70db30d4bdc850d52e0febcbe452966f5a5d6f5fbd28aa498497ab03da0b3b773bb2849a4f1d6ce50ed0d356c3142d33eda4f07907c6205b52cc66d49a5eab02d8fedd50847456702f74466bc54d9d12841e65c0594bf55539c177cae24e9572b1adb5b26310ed4ddc2a14421bcc142ffb3a43acd612df758abfd95042fccd186d3d9c5b0cee0857f37231bc9f8fd80d4db3259465ef11d0679210394713d99bda76d6ccda91d31a287ad749a344050a9ed08f01be70350cc2991dd4dccc04ff78b9c9d339d097ae2d828afb843418c82a707c0eccaf9a3b412fc68d5725a31a064112930a8c6c7350664604606d4d1f817c842ee4ff032f69ecaa0cbd49768d13d06835a07ac388da3bef18115fb096ec01d42966d84795551b9ca8e0d11734161c71713de45b545695b14cf2d883e4cd8524e9da3f26f390dff3a23b605e24e812c561af01ff087c544af8e1b4aadcb4ff5cab5ec1d064cb9d340a8b0273f178bdc8b413ac88cd274b7f0c1bb67f758682e31376632e6cc2cc4c16705eab7b1fdc1127ce985c0caca5818f661994c7a6cede3ba865488811e0cd226def609c0a857cd2fea55daf0e116d18d0d1ab393403ea1393fe4736ecd5f0d31adf6f43eb6be97cf58f8e5bf5b54cd2ac0d2a444e8f5088396fbd587048de2fd1ce1f3dc69e1601d0f723b843cce8cd9e6144562003e5bd448510a3d385aa231c12432ecfcbd58279778b93019f03e78ad39883dbc1907d939c1dbbf5f21a76ded80efce94867de48fb54e64aa0cb93b2931fcbb7cdc45bedee33e1552c624d19b116dacbf4bc874274bb242cf3ed50489d7dda672833f26d7978fc0766c44ee270dc4c70f16705ce3af7eb4d9acd2d135dbbb3cbd8ece1db7aba3e783c853f1b25a30c04fdce0d8382b60df232b3e94d976b66b356827d55046a317dd6ebe6029472dd2733d960dc4b6fd1610d4ce57e45c48ceb482b8af3ff722ec97c9e569fc066edff9be4df60f66e862c06a6e04d7401bb2b7156f8b85747e9c51510d5cc6e0ea37bbef7f8d8124fc857258e91f9e1c182eeff2c4644fa079527721e846ef62bb01ac56d61ce40a2b3ebe75c0b19e716b40a83933e9d4a8a3f31c7245a5cf049be097e7a70921b850978f9f4205d58a9e0360d8421060bf32eb6b46ab7e3378e9c28657c42b14a94e2b658d2f5d3cc3a5e13f50d929204fb4d66230d2075831646fb3775d7dd99755df394c81ef115cbac093c69c735cc07f8917732dfd564d13454f617826b23849a73191b7af7992320ed5ae41b89ec7fd62a3e42bc48dc987ac55f8e552d0e056343b80981c9c2f2fd2d05ea3c8b7be5bb115a686ea99917e8569160a0fac13b7602d46f29190c6f80f69e46c519619d8178b7f79ee1bd6f87afd5beac38a3842f734bcdf6014052ed8769af35ff8a329b50942d1c99134fc0c31bf5a57a26367c0e7d599e5385dbb328d64557d6034122fb8bee15ed62d8de367a1be38f0c62777fd1f27438fabc01b186cc4c045c4c9aca26b64fa1e41bafcf859bd650836826c45622892ff9605b61cdd8ddbf59a4a1bbaaf8f9cda01545f25957c2636668c8e9c2c88dbc129d2633b6dd8152831996bdffc019fefbbb0178a524e4b0e69e1c477bb9007d679725f1ea440fd94ddf2ede8b6f909ff6de1b45603ecf44e63a64d0149599cf49b60db5e21af00b3aa99afa349e96a57cea5763a096d97c17b7cfd6148fdc89470b1873ca1bbaf004eeb665159d57a7a0dd330e560caae5ccf348818984dd5b94ff8d78931624e771f22f0cc18fa54a5068fd9c8123218c4bbd8e8996f128ae39a10118840c63a5d8819d550aef6a11252cdaa0a39936de328c12c5fea5e7f2013b812510e8a75492b5f694f90682dd8176d4fed45b3919ae39f90c2bdc568392c139f85a84940b5e0ea2a79a7b28ac3d5a79e32e545f7b9de9d6994a6fda228030f74288e967d9b60c51fcf047af3b4a86a5163849bec0d2b63b2f89ec5c6f8784341818d2196a7e8c98881aeca2869088e7de9afed497e4535894022eb36fad950e396dd1befe453b14e968b6bd9f810393193e90774eb4131b6ae211641b15f13ed5482b5fc29e68f91046b1a895c3a9464d1e699a30abb85afbe40af3e33a1dc7e95f93294b3712ca8eac40326a32a7f6470f10ec9888708be86c90122df4e3a8da7778ca05a187539064ddf9908d7b6a82d1ff8905dccff610c9765953cd67e3fb4ccfddfe3009fb6f2674bd99228ee3613715897a35849a86bc0a38416540de2b5343c15b1d70d2a73da969ef67d25484bbdb2d9fa7031930065d4487ea212f9fcf7fe9b044d90572f98add754b8f13757651f065b43325eb0cc6a6b72381347f8d56b99876b0cbbd936bb2ac401effb14a5e828a2d74d12fa8aeeed3c64fd15868903920fbd0a4134f24f3f1cea1122c7cf9a5905b70c2162d9436c456d240d509169a67c899b0256d9304c064682a986272d12b9b4562ea4dd581e468b65653d290bbbe6fb42c79f26e2a12792ba8c18bf59f6fab262c2fdcc5e1679b45e8e5e400683b8bce46d4aa7401daa837fbc0f2834d84225fd82f3d35e10f505ddc776a960e3387af22681d85e6a5f3a0318fb133ffddd7603183dbfa4d36fd66e8bb2adbbbd72ccc3f003b0af15f1a03893439b3953670c1a5a9a67aaec332db413c55896f9ad05691ac236ad7a01338152972add9c221a681b7350bb00d365b5b88d04923d118d547ba7bfc74d80e4a54b3b23a9b09c79e9b368ef10d9e7baca7249beeaf1df2a3de73d79a670ebb4d6d708397efff2f303d44464c920631a6bbbec2dadf1321303845585da3b5ea063d436869aaf3fb00000000000000000000000000000006070e162028 +flags = ValidSignature,ManySteps + +# tcId = 46 +# z_max below the limit +msg = 8700000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0d671077c3e64cd312a5554e0d6728bb10120a34b3de9a7d85ce41ea84fc1e02695340f707cbdb4dcfb3d6f590978c29426c111719a47a90d0223edb934a716d7dea3804153a75c60d56d0bd4334e2d7ec9bb9db4393eaa9a98b1bc37d9b90df162945841c4815b17fe28090b7305d2e61c3ca0d6f2d7a6e39c60378f043494d541e7f47d70a6813daee881ddc46e8244df4732c82b2d32ce01c0edb0a19a31e63516f0da13228ab4e2aefd5b9d069329af236a971cbf554713cc6484ed052e7826388f5f0a1fd8b2bd1b92421edef80478f457c899edbd251d5efbb77eaa4549f2d923d7fa5ddfc3b559af16a8f690223180ad08fef97e992d5d0e44af54714484359ce1a891bdb019de9ef87b1cc626d0c9a09a2949f15095850e997d42e45774e5ba9bc56bd6e6d19be2ca567b534c155905deec8dba9423469fd25cc807f079dc7bf2be38a350904c4ee3f4d271c90e323fde28b66f91dd47ca7aa74cc3faa9a5f1d314189985b135aa7e6aae41d23a162a8af8e51709b54265b51d9527fcea0c86226cfae391a4b0e18634deae056e8e34ad7902f48b099242e4663e2dbccb9c145dfe0d780590451ee139195ee493c7104792b63260291da3957f1fbfd2e8af9774c22bf224d547b1565759e2437fe48f5a976c2f273316acc789e3ad247266048d19172a16972599f50d4021afbbdc6e4b6f03ab79e5fd4e550f8419b9b2a8ce174c521d48959f83ccb15d8dd55a64b12d5c8d6037382c3a232c89a8b56318f1553c9844b81905d1e00c46733f24a6d5f88b67c0245e206797c1bebd61576b20b179c2ee7092a978a710c74fa32fd648ffb7ddde487309f14866d3466922dbdd6228316519cf1338a0e544de4266fd4d9507216913dd554c4603e74d2b5f8e4f2114059f24bdd3ca44a88d88007fc45d571767616aa45bafd6ef4977bf8459099ad4434b8a214207289bbf59438d0760bc46d555acbf6595a5e5e9ebeb9e175d0b6c3e4b37a99d1e5ab0c07cdfe8145344c9e44fa1ca5d77f28db5246953e4542eaa186ceb249ff12c15f6e59b1b22ad003c974ca59c29e87034d5fce8dd5e03a55bc2c3dc22f3298ba4a0e2c3f85857fbf1d209af66dfa242ba7713b7f0d5b4fcaa73c6e6af62d3676c77474d88c451e19520f0b6783052e70e1f51b5a140b1b1584fac8ebbdb76d0bfe41712a982b82836c40ec4396ec084cbe92a0e925e798a4dc2e91fb6b07bde510e2f4b12731c4a6335e2762b8d65eb1a2ecf0d2a52698794ac293cf4a9c936d6eb21167d923daa11d3c112e3670fcf486bd40baaf37aff16314dc364ff74172f9deb94a70f8ab0ace974d6b22a15415476beb193199e8657ca7e4259e883c8736a975f9de2f7d3a2ad67dfa1169b4b2d83fc2c64799aa36797afb106970ddb63867eb8febcaf43efd467a28212f0f3208a2e9bf8f62dcb849091fc98d634796515e1db40f58d0a30d74a5d1056dd735d30aeb07f63c44614e131a6f0649dd2645560ff7ecdfbfa2700282d3d297054d3ea93657e5a39bbb7f2f1a563fb3f6792482d6afff95b6edf1c38e207d11e453b67996c378c22b8627bf04143d60e7858c07766e976b5e786441dc96ca44c584a32d00e64bc109fe2e0a59d039d73ee82eef1a50d6640c7dbaa4bcf7f232221eaf31c51de48761bc66722ff46a34ab567d562e60322ca9e501f8f4a7dc3eff3d264d59647c0ec9854d0c0c9d8e2d063766870976b4be7a52018cf109113a2b8b295f40a0604d0b31f0ba0cb395396f9ceb29c470d24f6e6d3d3dbc33ee78c2c8f3c47dbf2730bc131c9e1c2f9937dd796f6792b1d5998970b14876080c8e7f9035d63e246ce3e67f60d66e662d3f76e8195dd0d2c219e7115d79283645d0b9a1cf59d1e7e5a5e4163e11d755a2ba7975b983f40d59fba6956c73a79b64fd9f7c975cff311b0e2b8290f51ae2d086c782895878e68dff23bed99e4dbde108b46e5d0b6de55045dc34090282a5cf3e3df31a4e9ad37dce65585a6c72f3ba0e3ee15d8f68cea8356713015a001fef56079a8b4b934765ade73bed70aedb27a08c6f9dd0bef90fa4c7d119810b3e07dac414444df971824104bf43786f9337628322238e8886cf8ee02ec38b2c4ae42edfb0e95d3d354c82da8eadf476d145adf89917f619d32f126033e816f2b53fe8116641998305f48e86062d26cd9720722ab85aea392c804a3e136a00513be362e433eb1a8e9a5904ab3131665941b175c135031d7878c66dac7a010edb12c45e8cbce97837f122b2beb2159052313fe3f51148198b6d3c97851ea3ea26b87e92b7a16abf2c2c8c3a9717bca590ff3cc6d062055f14551e03895c64500eeb25f87e219832cf40f3cefda3d59bed69a39e5b46cf8f3f8a6c300122894954b95b3b8d995504ee81646da4301b6914066b1274f96b21386adae3b2ea22122315c59be277fd309e81995a84881954164ae1a59addb58c9edaadce1793320310e3dc955267341088e398c2d8397bf839833cafcaa94582e152b8ddcbf2c4bd45d17519614bd6de3a08a32e83492c2ae1285d26f667b41deefb6d401e29cb671281e2e06e79cc1ebf470e444da552bf0052db7d087907a06a50b633a6d0461f0ddec6ea2c71df74d85e3a920a77cb43c02f3126880febd1d20794315a4448177a4d2ffac04ab3aa0980a7c413c7baa6f8b097ac662bc104a4fb928e72602adbc4370795434ddf9f48f96a9c6a9227781069e209b826ded8c5239d0609f24b71d31f564dedc6edee96ef862e2a9fd559702a49bc61173023edc0ba2742f1b2278c85887953941d5a58720a2e2120d49bc3e7d6a7f2f00c6a039e137c77db5f7a7c3d43ad2eb0cd564af81a7584ceafd603e0a83823de3a12df635b795dee53cd93145df3bb8497da2b683e7523d859319dd4ff19f2cb01763e0c41574d584f4c5619f52b4b4cc2f2c74925043eea26754d5db6ca5c8b639e79ea8a09c39d1d4c436c0ec849450c1b66e450b3704fb8c9587297064fda4cda8d6be6e10c9a6bd089bbebf8decb1244fad182e6cab87fe3f3edff5c13efab840183db736e701e51f560c1e14827b42d738d37d68ffeca42dcd5466d50841dfdfc6aca437bcdc24884d471bbf20a6921a743c536bf01b2b385fed9a3f3626798cb577bdda634f8c158833e52d121b343dccbc31d3044092ca4cad39e913dfd32bcfee874afd9a02faf07ba7108c05c4beb78c050d5539eebc699fda08b360ea334814caf4fdced62f87c47d36c1fff5d8865992101069fb6679d3f3ac87b7e6e2587214105dc25f76c4a6779a1a9e6022ed9ad59ba3a7b4bcbbd0d63d2bc0674c5fe77fd4fb6a0ebf65b5a73bb87cd5b36dfb71e7a54ce2bf8d9b6a86057536c4a7f0a7c5820828a0280adbf0cfdded491fddcc8804eaf9fc5230d59906dc7a4ce514117f1a9bd0499dc065ac404512b0315a6ef17794bf296d9d371115f60a94015da2f50cb9ce4123b1ec8c0c94213ad8b7018dfa325e182a68602417c95eaf70789d521c9d3124621b36cb022e61f211b29baee96bc013270948a601fa1d3fc66eda9be473b3ec13fd0bcd59b06736e8296053a4758c7e7e1afc5111e1d43dd199aa708d95e548ff21c2d3e4328d43c9637baedb275fd9cda7d1225ef0d40864e6771e53bf5fa836121b4b6e9db6e1021d7bd93e5beef63af89b889ea83429abcae0bd9e1a079bc35e71ca54152c281e1a27921ba4e6b8f7594df32676d4762b82335f1097a92f49a86e5641bf1d77175a9476cd42f90aab18671bcd7c35dda9a1cb5da2f66bb80a5187abf85afb1557e0ca6052c63b6bf9627604823c3b6150eebf657089451bd04981691098092dea8cd5a26a693f0b38f42cdf42f831735869a15dbb3d0c322d85b0ba40017c4cd72e1a60d972a0d8f254e48fa6fc702a555f0f76598d1de2975eff26371fe13a6ee48da8252053ce0396f352191b416ee2f94dc847196def54f311f66896893495f0a013c04c442806c3d4e1f6320039db9bc1d94a51515344249b480087c7e3e937ab3124254c7824a99ca6b03f165d0fbd026a641ecf9e538f3aacf2dc6cfcec150aa7bb45acd5dd9f20e0a1d6ac2a2254a365130fb48f69fec83699413f5ee3e88b678c2b2d1dd316e5f8fdfd5a344c4241719f55e17f2ce1a4658067065efc4a4f970db9f1a52cb0ce7eea901c451ba95d6f2cad66610c33c9e1d63af3310db7e7cb85e3523c79dab34eab84296d7e2f610d23c4c9ace9387dd0d77ac3d37f1a35c78c7c31a7e55a9a4a95139fee0339c2647a56b32864060c43b9aa9b62888f4fbe09053dd5e5d9e71d311911f3ec864bab3f3ffae8c8b790cce1d8d45c3ed020ff01a827e851aa090338602920013e0ce3453104a8abb8e69717b2f7a9c1469bf0c23b79bf38c73231e7eb5537fdb2c677bcf1ccac3c37310738246641f4647721e7a3e165a187ac1400a0ee967ec60dad51eec6da1b858985345da8715284fdd876292493b21208d3d305ab93207c67180d217c22102011f824c7b15c92f2f32d6a39f9d9a17fe2874c84fc4456d39490dad28388e4ef46c602db21ed43054beed2f8ba71fbbc9d03c6dbdeb11327883a7be0c0e1c315d747c7d96a2a5c3d7d8000000000000000000000000000000000000000004070b0f1523 +flags = ValidSignature,BoundaryCondition + +# tcId = 47 +# z_max above the limit +msg = 6e01000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 289ccd0e0e58656b8d32556fae8b0a317eefaff794b013ad8a43234658706a2db12585faa83808a733a3a88655a5d7e0201b8bfbbdd3bb545dc306806a26939aa9c93ba58f46ed8d9c37a9f6e0e0afa09f6c3b3f3abeeea3c613d122700fc91e88ffddd965df08430eb37fa28bca6db2886601e075f77bfecc67e415d1ba783a01c4776e9b96fc26a215084828b0921c90c59ef766bebf0210bacb23b7f26b8e572bae202b9131e725e367563c1b36218d63f8a2988dacbc73f4a46f313b97f660057bab41c1ddb99df76df8b22b16754c333ec2f141302bbd2a1e967c50882699860243af42b6ad5f368d245823a71c02a338ce037e337d4d8c5e2c2c7d54436ef786878e1e25304a27058d89e7212f688c50cb701395a5c2f0cb3310c9dd48777f80edb0d2a99a91f0a444296c1b4976b6161a9a43e5ab551b135e0dc66be2f06aafd8c50c109d413215ab4b39d3063e061cbcf57d2af9ff36f89f0c80d483af483673595824ed4c4c71a02ab8c4135a6791889b8e43958a5b509332e84b1380991d79c6397aae3cb3dc522a7da89e925b189a840c2ca9cec4cdfd8bd3831486d2c0d15b1b9bd44684a8aee873806610e9ae0fab2c61e1c0366f981d5a42bbe1d9cd179883f249a7a155b80bdeaa1cd017e9d3e0080ad03a93f09693da8773b1256b22c20a6531a9957ccff0bb44cf0ac3e5b0438949a589755d516fb2b596336c153dcbd5565b6786cbee057a41c10fb762c280e850accdf476392b50cbeb2d8e7f6a6856887e4a2098cd8f4264cdf39972add334a5aab45002058f19c6506069d7acecc184f245a25a1d242cdc41d52f2b3cfe23ba797c4bf87a33cb593963179e5fb08ac5edc5d4521af466cc3c28e6a11ab2f5f8d06d668fed5b09a7f3f6686dca450467c8ce0b8e81ef605ade33349dd1582adcefec138f004df5057b2a54173fc587ebc3de699506d19e61380291fd59e50a8620f1c9c2424f80a48cb1c342534f26f50e52ca4056c315348dadd204467bbb485708007cc2d8477c518047c42a5c7bcf83e763297a2e4e0fbf547b4e3e577c2bca76762b35d3b849966c9a0e9d5cf570bedc0ff1b779148fa125566b67d14b62421761abb1eb04a9fef43c08d9dc793585fd30330d3cb1b4651ede3121e836cf427dc6f93b4dbcd1d3d0b096be780cf6318aa31d23f6353a86da38b34265b277b7710a025e0e91b7133d08f5ded6d74efc88a4f40bd256a6c6f86d4b869e27953a6c1a40d19f76311b48e3be34973e65f17afe1c408062da2e2a8c474c6a3cf32adec928c4adfd9611671f8b04538f7605ce6afe0d7836ecb06913555b730337bb19a222d3a7be5ce8ac44db76a79120ffc7dfa81c07590955587e61828f782e176003dbc8fcc38fffaee982f61e3bb503ffcc44806a23d3e480b4fc5d17c630b2b5855d67e884d6a2ace9e0ce81a7a0d127dfba247bf7b90634f03049d7aebc1419eb4e7b2ba3303dfd3a28fe5d42a73a7e190df163cd241bca717679c819a5bfeb11ff46e06c46c4c9fee4005a466a9e8660e01d050fe1c103d73bf6927e0ebe4c14b314b3d9300362b67ba5f0dc334a334eef48fc248a7604269dbd9dbc0a380af5ef51a91a48689d190d152213a818df7965e4ffb87b3bb7b65fd2ddd35e947789710c898e95b431c0765cff907b61a799d65e2cc99c5696777e703d3d6459a71901c0080c57c636d21fb0c9d1846e356e0e3cc7a6518ac177a61cac9b6ffa8b72cc77bbb86165303813c21c750f2b930c240e4e1a3a5b1801d1c8f4d8e4ed2e205e9b99fea36b0a26e015ebf7dacb547c17a847d495d5d35828683f1432cbbac95d3b5c77b151bddec5fdac911de1f096cde0baec71e5bafd5fa93a4a42185a4f324ad14a7165a38d659155c4afc72e1591689da8f152d2c7836f3ded5e31931b3a31eaeb83362f2f48e04d1951c06916f557289b01ce62592bb97122c110d9b608a181141b78e5ac37171f424041ac9d7c56e6d85fc635279d81bcd9ca023859bd152074b07337cafb0756a2532d2c023e45cb48fafa19030b0b0d79aef3f4576e35ff822e7cd014fb9d298dfa6a7e8dfd4ce2c52ccb88026a620e985a170535425c01695f3b71bc67a9c3bfde4b7035498378c9fae3921a087148cc61ca84953dc6e86e07f6056d9d16f2b4220fbb1b905a1a89ca8325e3d7afa5c18533bd478f47aa69c7d0d1d1f75cbc093cba23c439aacd1911b152107155462ec9ccc893448620ff2d24ac6d4c0d3694de957c53fd21d8f7b83e7cc2ded752b61ddeb1a222fd6b9576e6704d0d1adacfc963cfb5844df234d7eb97754a1c559fe81b4e64907166ccae5f581a4f8b90bc63e478b02a7d6194e3607a1dbce74fe2aec7eb63ecf484ba30399fe1315e59dc2c97f9f6cd188164cae2623da7c83bf96031bf14812612d8bc940cfdce410c7cd5f4668764051b82327822fca43cd49f35db19e1d79765ca4b662c8bf1bbeb180776867021054c3461619bc477c70e6fb36b80feb206a003ed12c3984ecc328d4d476b66a402de1a711d9895700897679a2c6bd8481794ae3da3bf011ba67873757eff29c135085533139b01f3a83a5504bacfe73cdb48acfb08357397c7d612ba4811fbbe51c9a18d50cfc530616622ca8e2f06801473538286ebc46a04c877b72eb8655b4b6c5cc9bac27bf6490c5f593dd020c5d30bb462023381cf1fac19d71e9701c49d539244e5a9922807ebcb11224cf0ebaae37262184c61774df08726981ca49531e417c90e51df7965d0f8508e525bf9cf4c6027d74a11f8141b777da862e50af076572f4c78026c7fd6b565624fe0e2fcf3111b3373f854bad57006f276588c9ad57bda5cb5a0e02e659cd0dbcfdc174a1639e6c9046516d916534cbe5aacc933ac4abe52295c8533a4a1051b5cb4dee48055e7e1d1bcf2154e1ac81a54f1f54fed9b920ffbc2accc896ba0ddeac418a71576aeb9abc0ab3a0bc15e57787ce0fcbc868ff2545a83e27ae616f2fb5939de3b71bc9ec5a2f064a736ea3e4afc1c8b5996f0ded8502c5a16317daeee9ce8320ca4346b5434769ad9b8784898599508e173d7f14d1232a2f84ddb1fcfd8de75bb0d59f8507214df21e89762bebfc4030bf0c9239cd7b6bdc4085f1a71e732a01c0e2024d13e64eb0b582bbe36a214454bbb51eea590ece8d1f81c95891ba8f203ea52c068bda155ea6f992ff1eb276a11c584b5394e562bf6341829fef1936397aefe78264fa7b9b3055c3140cb4635f20b3e4dc809e4e48ab4520253330a35360ed41ea3eecc0ed7c4f77c6d86b507934c8b800a0ef652962d6d4a5d810ed17643e950e3025cff4bdd524c8dc19b9a56e3c79c6d5e106e4e199968660588a063bd3ee369ca6f8c0e7f2034caee4ae4824ec663c4fb485c81df7ea86d7226be80d5e63b3782076a9bcd0f253c3564032f7c82c22050607ec01831f2d5a78f197681365bdedbeb6076037a88aac92733087a110dea7d6103ffe6b8596d70032b903d1e619494797d6e56e133538f80a91d305b07ff4ff718ac8fe0452bb3314f89555d81526a02cf189326861c4248a40866faeabe04cc1a7c88196c6d4fb3fe2af385212a3cff398caf2be65e7576befab7624f1e9f71c285899207c2efd2bfce2ae6ab9fcc6e46c42b028c857a86dcc944739ac4fcdba51b16dea3672149f166ec8e5e6913bc355208e3a73b89480e83890f0e4331aab624ddff3a103fbc4990de6ef8a2a48eeae86d7c6fcb136aaa52860e41a135a50395e12511635dd7dba11281c410173ab8df4408c9a2b51b9c1e0ad9655062957ef4d8f0572afeb829ec443825c082d67866618946f2962f6541c6b5ed1528cb410521e493680e9d937a50ecc0c50784233358a534e8bdb0c922e6a89b179d2299c47c26fd9f3c783514ea19a87b14694211e55ee9e4714bf5808c4da9a9605b12c53148e52014b5983e03eb47755ad4770bd54dd1b071c9ed0c4cf24103973b815d267f3512275e066f39c2c219c475018e0191c5d18457a2f4f224fad67deb3333620fcf48f4b4df62f358960b56387a501e69ace7d6b438af7550d6831d58f0f642630d3ad590c9a588e25610a963ac2577f67ede49878d87a30e69da83c6ee600022f87072b9618137c029ec6292d03b21f54ceac63f740c5a5b938b5c28cbe6720d55bbc43fd9cf915bc199f32911dfcc8642186b06988443e1c557a4713570505ff98b0c516db185da76eafa1aef72732816ff31f1a829798d1a5df2218649013a1463984e585952ef618e31ca2208b162687d7cd723e0b933fa373e3d795355ce1bdf5cbc74e8b2a43b72ea36dfff3cc7e21a4e117829f2f547fa475cd776600967b0c0db0bda413cb905c86eeee28bbb4f1f1dd29bb283a43cd04d2661f069077989a1eb7fbf2c709b304cd9fc3277f86d85b2012270e6fb2d083a814388622548c999938f1d52f3f9f532a9632787bcf8a63c6ddd5e5cef2d19e635579273ecb0b43670f12bf0e93793ff345afc2c49bfced401152f334188310c4fa83f7d3f67b6008e98d1ef9dc383541b466176bc166a0a1928b99443b94c585a5c71727b8096afb4b6dffd293093c8ca0e1028667797cdd4f80a154a5d94b2f662748bacf306345265c2db0000000000000000000e131c23282e +flags = ValidSignature,BoundaryCondition + +# tcId = 48 +# r0_max below the limit +msg = 3c00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 8c5c7a82862de1800a34b8201c791d6c7288225427f7deb02f52748a35a8ac269104927b4913e528717ea107ef8605f9b7ae265f798846a3abf6bbe7bfe0a4d6bef6a1f6b49d40b972a5a1c28d19db196f709b4d962fdc646a7988f80d5af74b29adf34c7a1aac065f639925423d37bdaec428de53efce1db750fc2686af90ccc9e2865497b7cf736829981afc749e85e7e9b5044a92b9ada3740e3fb39251c5bc400379c4ded2615bc3deaafc54e34129b5cd1f4e9612964d353546ee5dcdfba712d985cffec78e74bb2e6c12ab45233ab42f19aa095ea0082063fd0fc8e1023ba1bba2b4816f011c644be94382af44cb7f40c27236ea1e1e6f49ded751927fea168d5a5b2f238360835adabeb4d1b1ce12ccc6c1b8e1e855cfe323d89c34a1a683360ce9189db6a9a93bfa5f70b7238d7f796757d547c31f786c9bf1c91546b325a05034cccd586a6f37879fafc6973fb02a540cf84d1a4f4c3f3ccaea925567b9571bdc116cbb14c884fbe35974980121f7d1e6b0413fc3cdc42dd4fdfa4c33d2eb774b3b188c3a2f2ef07f36489e80027bf5a9e3b607ca45839bbddd9370c9dc98efabe00635622562ce4a12c7c6e2271876f880b8d8a9a63e5c10f349490f982e5215dd94bbb74bca994aae7143c22285c5a15ab950ded53059821a526f6f10fa3feaac97c8b83453b20f314e8cc509fde7f5daba0b2cf4676a9286e1d9ff51f7674decfe2ea54c11a9562b34bc15577cd591088e5abb0e49c152135ab4d496d8f7abbbedc1f332a06d7ba9d9a65ba61b1bf3bf67f9a191c96be2b51d790f8dfa988d9e69a5ff9484967d5fd33b0d7e004a73839a9603dfe2bd2d1f838fea9aa15c9bb2c0f2dec02d17a3041d6e4291bd7d4c00ace00ee1f4a6dbc5e4f76fe39fb4ed231b5df55f7a42b9366396816b5c372975d5fba004a20a7649341859903760ce8fa444945136f9ad67017cc70d3f6c4d8ef7459f1a544dd93d135b888ac4b0f6cee4daf45a436e967f76ec477c8efecad626da1070ff4ab94dda6bf04d19a5391333a2ec6033e780e6b3c9575e9281423489db02201ad6867b3e36e1f462e6b196a2410206a71073f19d707ac63320bade5c6c42e2998c55da602098695db63144da3f9a9f38b53022df84ddf8777a19d678659e44e35f3d8e069adeabe7b79856f8796453f3a413b4ac93d87ddc119d82ff235cad30c561138fda8b0310cefdce08d4fc7794e964df23d5f153a711fb73f694ddbba93cc63902fde5488d318f5359b77ba076337ca43ce59c4a9012ef52d86c34411dbaeb3fb2edb4a70199885d9e04e019c4a406817b96d478acc29f5db9b4cce0da8474bddd09619198d97b3609ac1a3161e75ee485cb6830c307436ee1c48d80290cabe41f3d4b881c4af4b2c2d82f4b6adc9fe6a1532e39b96350f7fe82a23bbd1d9516e1d25f089cc085c5c72b880f0306f73b5ac1fc805b0dc5e80506e06d965f55485fa61fe6e9ef0338e9de6bba5bacc703eee361de69b3264c280d75ed858f736ce9815344c859ec67a95048cb5dc03e328e9d10ebc6d3dffce0765c3fdcf5861c5de3aa7a607bf78334e8d7ba00daaa7ade8f79060b1e57b9d46bd6f448509934debd4e23eae219e04e828d316b77ef5f15041f3945b1a98374d1c47fdfec4e4714cdd7d2391df6670b164805b0a95b2f31d937446a058a8f3a8e968d0da62b8299405fada9e67e001b6e30cc4687120fa759cbb390237cd7acefb0e474dd95d9d790423bb19c390f233e3f8b7739342fb2adfd623d4c780a5d1e702b8efe91e0be39a61a8a93e48a0d730814954a41d472e6395999c828a98d5d9bef23ee7dfbec1c27a79cc8edd035adc5763eae1ede0bf16235b8da7616c4882a6724bfe2f7745dd992accbfe90d1af3e8ce26a9a63701089151f4ca826e59bbcdf40935e6d3b55329d757dd3461ea78f6bb109389b92e41c5d18f811e783779f1dc3a14f0f3e30a15bd7b377c1bcccf621127865f66f64231a4c77a913d2f9f5319028a1d585ed38835df077e0fd0f6101a5b110650992f029bf70b151189acefa1b4584f5d56676c401804a6dcaf7b18d43078089d580eb6632c4757ab77c6c5fe3b28e3a1dd0aff4d00584235b2515971b9644d100f488ec980e1f86188526a37d6343db87f23ec9424c900404a0d4b133df270cccf54338ef5d6e0bd7a2359a0a892829ec8a1bd8f8529a55ceddd1f343ed20e08a0a0b68e3df9b22e1201b1ddd8184e7168e12196f84885d317fa0102753e6dee29a5203d2206fd6eb094b60a58fb3b0a5a59b4cc109e948823781ec9bb364ddbaafb1d553dd4933191b0ad56b7bf3398a4b1269aa329e47646f4e9d97e3aa2fe320efea245db47b63d0c36266c3f7d1c2b51271b06dd995e7bf6abfe861acdaa3534e9c2fc090988276257228c7338209f2cbd77f85b8182150d3287bed5934dec2a6c1d7b2b670716cb35299234fd94070a394868d95c5aa4d92ef9ec6fd05e80747d7d69522cf5d5e4d0dfae512f25d51c0d5a61bb43fcf060eaac8847fc6388377b1f260171ebdc24373a2a177b568f08779ebff6204f2cea49afcd8bb298ceb4f751d69e9bf840b567a1614871d72f5decdc8dc5808c2bdc41c5793e1811b99d3daa9bc4827c69d1dcc4cb55bc8c6366764b96a3114c093892c9e2f1a736f4ed3ef2024360253612747ed4cd3c690b98f65faa23979cb9a65e8122dd30a9c1f2cc3ac1d77783a3014ee64690a62567769cc43252ff23563c3eb4803678edd7a83701412809d343aa4ab428b6a1132b1d559f84063911832be2dfacab5836148ad7ff94ca08afff9835e69f216209aad727ae19ba24b9520bd59ec6b515c328e512e210d6edc9d8d78729bfeae0743e333d731a2b981bf5408239446ba16f37300ebe23bddf746090e4ab57290d2d1eaf1285eb62b968bdec6f5b8bdda4edfbe55cd1d974e2924289366c1f2cc38eadf153cc1666dda976d0fac32285962fb4e5ca87171062aa2a98fd7b447b7271b93abdd28d88020230f973ed7aace2302a321312233927fbcd390ac217a8252a338ffabea7b94051cb03255d04d538e5998c72027251e7f36ade0058eee853461e8e36824055a63d5ddebf3cead8033dd5c8ccea4783675d8deba1cee201dd2154636baaed297786d9b1299b43f058e5649fb01bde625c415656c30bc7c2213d82e83754d43d77b5af9cd2d04642ded3a25cc8da578ccf437aaddb39bf0db269e2e2fbe90723f18b56fc97325d57bb6b8155241baa4a784423fcb50ac5092070a76ef4895209a94f33a4072af0c3c458077be24ddc153449883b3bd6ed3da6e6be85442be7bfd96c0700c46dd79118f67f30d6eeb519323d3057da380fc0cebd9ac6d0299c9ec26f32c04bd8752f710dcdaf2f4ab235f196ad0e54c2f05e825b7d6e1634f3dae1895e4b55fada1eeccf0203d23042111c4043739cbb1b823f6cb7e5ebfa4a8359eb7511dc64ac0efb6a0c6231418e5432123f6a25f4a9f35dadfbdc10f502620e6d76ef9a72f893d76ea7875d909efff9be03400aa8a1e00db7c07cd4fbc844c8b8e86345d49e6e916066d07e06edd980176d4af31d6ab20115b3f20e32f17bc565b2f95f3709d5837fb1f7ec5a0dbc12a8f7d3eb4e7f9f9b6744e4864c343147414b4c104116e63ccb61b5af3f7c5db8b5c05b475cc7f39b888b57298051d029ce9017bde03041abf0c91f32f28a834fa95d60cec9a585c74921f60eba40f13b02de973d9f5499c9b386a5348414d333adce8bf4717d5f31faa4b3e96e91dccf7512980b8cce54ea4be82ad1dbb8373355f45ed6861b08368f9b86f86c35ddee6daa1a336d1c4d2d2658a15bfc76fb462dc0b7c36e97eb16e5eb0773e95581199ed2f7c4c219cc4095d2f8e6ca444d6d4c0754bd39b5494af3d2a01db862cacb1cd2225af884a43e5fa4fe63e5854d3d32f47a8e7af2991d26fff530fe8d57d35ea76a9431a9335fa1f057232f69ad89efdced883e6f8cc23baa485642272c515ddfe4524b3a997e173a22eeb008ba9c16adfa3830980945c758fe92eca8a96b32b274825e2688c11883d138e5d695b10f58f2e2c6931764c91edcdc40d56c72756c1e20494ab26986ebcdb2309060f4eafede1eeababa4d5da8418397a25309d19937dff876ccbe7eff4b58b87a44cddc3c8b1c4f066746036452caa32980e224b53eff0379700a30599aa2372ac4dc081020cb364546484dcbaeb8c3adb6d3ae4a9817dc2d987a690c8eae1863d38d3458f817618edf6416a71b6c30c928d5a6da732c6dffe56d7105141d5941e02bcdd55689892f0e77b9623fb065c17edd799a186f80b686ae5bec88e4f16b05923c1515447ad9c82adca69800a6b372e406b6bf5b5282480823183811a512ef5dfc0b21eb77048091ef023ae281dacdc1ba7d1ed2d9df6811dd5d1c9a1d4f1781b74ff1828a6d410eac1b54a5c251c055ec7f84cf22e3e96cdaefb8a9fb9c6ec823ccf141d2f6dbd1f589c0ec4102f6e91b3f0610cbed643c68824e7159920f52098ae33b5798ab95521f869f2b958691c4a0926ada90bf7c6678f23314479df021214537aa6aab7bb183154b7d8ddfc1431616793bdd541b8d1e1f10124263435606688f200000000000000000000000000050e151c212a +flags = ValidSignature,BoundaryCondition + +# tcId = 49 +# r0_max above the limit +msg = 6400000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 44f2fae55e75d4a14261c55d3b8f9d7ce296180728713a3374dc857bae406918542bfc12db9b25fd3d1928c9927b72be345024145c41d3689654b26e1d2d6364395c150047eb8b6ce89daaedb70d8095263514fa5317af3f6c557a0b91bad5e2fb6202f90183d2e1d545f5a09fd2f5cd5550e349e82435d55deec6424abde2e6cda6f794738180260c45999b51f9aa2cab98694b8d0af27441fc4b57289e7ea07b010c53e9a755ccb9016765990942a3d389500cacbec33eed059d412435ddbf46198e3c747b3f41f96dcc879ed3056b20da470062c0e1724112f48aadcbb6ca84e66c4af1418c66ee6115fe736305ac9f177f2fc8eac53d494d24164760e827a45ea20deae2034dfef4f8b552a0b4167e1f6272918221d4610d1278aa7040079672d2d191bbb19b252f84f0cdd46150d7be832db3fc8018aed6087b5e718bbb7b3386266d122ed0f27bc5b746651316620ccae5543f993fd5e1cc62990714e585878fbf20c81bb45edd5cba6de67010ece4135117baac8522ef59ddeac03ddc9abd91b47cefa3beac2496de163c00716956589bf84ff85e0732ed2073d97c5c34a0878c3d329e99a5a5a1be3781fff22646f1bb83ebc311889a56d6def19b8a86fb8553b36a62e13cbba15a507750795119ee309577fa7ec15a69be34a15135095730ae2ffdd72a1cf6a9bb61b221531cbfa0495200ed9f471ed1bcef9cb8bc5117c6d6806bf28dbeaf52bf2a9329119c5c896449c233c4a314076b00616773b87d9e8aa69c135a7d24c51c2acbc6e58df8bb7b6fca5fb14b13c9d0b33acd8e8b439a8e5d5bc31cb5bdb51712d148f935b8728ff46112ba49ea5af30150fa80a8249a2ccfc99f8b7c897d83c428fb15e6cc6e640a697d8fc6672098aec99630250a7b82075296afc00a15507605a5dc0f2b1a0375b263c53c403883f42a0304b99adaf834b1f2599e22125881d87047b8acce7b5728158d178649cd7a16d912177623c637500dc5b4bd13bcda0824fe377086862bae9a41c180ac807896c1371a78326cdfba763946ba608400d930146bf86efa861be282f44bce6e032bf7d98408c3b4a1e96704034ffba07c182fabdf4014ef2ee8ff8ef7e837ad75dc3aafb066d07297a290af9573be900b68db9b6c2746dc0d2b1e5d11f0540d170571ed530caf1033e8a32beffe622e3d082b3bc081b3c30d8e1dd697e9a18432f2514df6f90b9b42cc2c1d321f6f9bfe095ea7229c4d1825c8db8e869b56a40cfcb924304f8eeebde54d615521ebc9753c95e9831556c854fa163990d5015e0370f5d3e5b4ae7c4404c18ee125ea2fda5ac43127ad07567c44c806ee61a79353152c5f46bd98bd2010a53acdc66df92ee6fc0f93e678bf44d5d3c8e9adc305bede02008bde91dcec639554a4dbc4f6625571cb5ec821f2848ed33fceff30d8728880956a1581b5277fd51a61d4e13f7871198b78ab3107701163da8a30b379a05718aa79bb01b528c187fa91466588961f2e58db24a2afbf0226359a4e6c3da0fc8cca4be25f0abae106eaf8e1de7ce9f1b7d24ef25bd41aa98a99610b016f062d89f678142b9c27635cb71e9dad2ec332350f76a2b507c8fed9a17e60e19de2c1875f2b3f4134b903aab8819af224fb7eada88c67875040a07699d95756ba929680191ec8ec3efafc6fedd60ccc1e1300698bf56afaa31c89d16341f3673fe07880e7009e1f5173cf79cf0364f0833a179b5886226bf8f3a6397d8b499e9c020ccfe075fee18769fe9f7765ebb6ee630df990c579580f3910e704c73ad61512a9d47507e8bc61b9a61ac006b751882b20855e6b6ec7c05e303ae533623bc0a8d30f795ae93f057c7e079688b792456deb50dc7ba9da0e141cfc76ad0a902bdb1d032d06fa47a817d43ee784cf0ca4b516806e7631e40bf0671b3bdbcce7e2ed7ecfd994e190c9e500356d60e1c73850cf5b6bcaff9746b3025815bcafae19f20468591b5114d465a47e7e439ec0741eaf533d5ab5c57df0cf745931ca6a4051bba72dccd4160bed42fae52ba39d7ee2d3e2cd20fd299707e2a6228f94a5d32224405a1dbc5f5f0d269a0880cae9f0b7d5c0ddcc01e568a03208dafc9f54e715520ac51eef04d8c4b6fd5ed23dbdc9259029129b1b5707bb197920ce1265bacf2a7a7f81b77a017976c3a51b169eaf6f77fc68ad23e2edc7a07e7d39908704123b2385011d9e6b56eda29a8bee801228e3677241121ca21efab92227475998de40d40fe76412fbdc35449255843e3e6ce620ca0dc91075fbea5e531aeb9db6cb5153c61e7f55681eb46cf49b31b2efecdcdeca7539e8b3da30519640913672164575cb1ce89d2afa22da971c371f602070e2b1c7488f89239918a5f0df2257e8206ce67106d66f308cee488974e56ff840e025140014bc776211d632413152fd55b53749262c477229da729c1e56f885f61d1afefbe11f8e5038a5688835f3842235091f7bd42b908097a8106e4760259ed7464c0dd591ce48e51397bda9f3514b443a138a115eadc2be7f08edb4c9dfc9f1f065430bd9da0849c45dce861bfe839954131fde47e059c5f933a4baf982e0ec435a8230fb3eebc9ecf7ea65d0f376854c331fafadd45b07ebbf3041cf079300a9dee19a5854e147eb9c88300f5580c54d5801af62f9a90bd91da9f52cfa6d01a08ce390a179bfd6a0d3ba8e43408826cc36fabe685e9a1229343e5303b108683a75c9a524eb776336d0687e7e62bd68f4d425bfe7e4db1dcf09fa4938933f78387e48fffd47669233cae1e8bf9d4a2c63444a776595a48b3471a67990257cf7a0417d34f553eaf423f1cc206a9257f1aed004bd205dc1e7f660aeba09dc1f9991062665d38c0e2a4638c2bf61eb459e5e4725a0bbccbddfd66b239b31c62c948a485c8041ea3b6e58a0090bcc010ceaaedf7a2e8cb28cc23c925724f099ca14a33f42ecce7584bdc073e6f79ced17b8c113075f1604f31362893a3b5ec2a4953d77b68281c001fdbc6a853f4fea04c1e73b9bde7bead3aed35ef68e0ad98f902d7a7750b7461ebea8c2b7e9246c49b585107e979dd66c01969c65d34c22ffed12ce733d3543672a59a06854fa81187f3a0b82524686beb3a84c480aaae6af5a43d6c943702e49865935065f972c466e2e33554615f242fa582e04b7a330d84d5352b5a0c1a28c8521eff8baabdff6c35450ed9609fcde9291d0d38d7cc23d662a6261aed3ef34cc281501d9969425a42f050c7e6b0b1f3a549d7ef86cd1a4aac3a233ecc36cfc2a81cd69d951c31290eb73c71582bbacbcb99f3c29fe15d28887349c9aa2496b48ece89d581c697590efdd60351def42770f51f59d55bce58c5d2886d2ccc668237f9230a155be656b2ba71f58ee343317c7f37ce47f5736d99a056ed3e88ba59581b9b219b7e972b96b2e03cbee95fe9a2ef42694bd93e7e9145ebb155b6b9a7590058eea44d1e877254d55d052f9979ec0df8b5b8cfcdc1c858ad12d4495437a5c8247a071997f95e01943207be1ab6069e7925ee2e6e231a2f133177d0a91478c37c19303097971af66759f0eeea69028de913edc1ce9cd38edbd05c3b7cb393ec781ee7263652cdbb3201527501b60b7ca443cab817e829eafbe49c354bba16c1a597703953ec059efc97ca0f1bcf4bb2ba59e5bfbf64b5cef5dd1a7cdcfa40348b5f8979e96371bdcfed5bc9a5036955a40ebba28d1c5d98e592a046320e3ff7e2b72d25db20fb2daae4e580353598ad6673163fa3eb95f5b5561a38fb1ba8fad671795e7f5aaabbeeaefc4a7962475d8b7df0fb93c47aefd46d88a25397f6be11fdc4014389121c20750e80168565771dd932f67866387050d0551664a16b350e4761d6033e4746d7a5cb07b65ad4c13fc7e64a60ab9849ee9980855106c7706253551072105e28ee78b6e19e9f9b25bd39493736a2efb2cfb7416b84b6de23cd559663c2eb8b223f8c764ee4298c75f7f068824c31d4c19cfe9ddf3871f7160c87d9565c5d67e9142f151a33e2f9ea79702c6a7285ff963dfaa68b4129233daeb77e0aa2c1ccc75ff7a35793b2fadf60a9b1b9074f92eba1cff230c461f1bb486b3e9caa0b617abac2d963434ebae2e8ba39b238a167895430f5c6eb86d93d678ed1c472c3f3e9cd58f27f24d124df2371e98fb08442296592d79db40a6f388f85c050e7c434630ba353245692d549166727c31955ed60be469cf60ea09909f92ca87d5e77567036882b11c04f03bdf89d397513adf17146d52802b86797815316c2d21d0b1e95e671fc87e067d2e7871c28257af1fce14533d30dadd947ae2b1b9b78eb56278340cce5ca9a17271e1ff03670d31ea801cb89d6364c0d6b671d190d75c7335ba00497bf43ff1de81ba5faab2dce55f29561d13cd236507a88f942e6feb9e77a552942f6bb53c857f192c126d3f1ac53845f54fab0a3114f6bf3dc6dc251d39174c0f732dd9c5301cbd39a2d7fbabbdfe0a1049532cd378c9ae999700ef370a49206f7f7b208c7fc7318056cbba332b9c73e0165c97fd25f73f156750448c5b361c30e23229f2c325a99fe19df3d884418ba1d1f00708204a778ac9dde7224f687b7d98e3e4e51a244e7ba5c3c4f00a12182c335b60da3188bce200000000000000000000000000040d161e262a +flags = ValidSignature,BoundaryCondition + +# tcId = 50 +# h_ones below the limit +msg = 2d05000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 1ca68ce5f7e559793f67c657ac20bb8f3117f28c1ef02b8b828031fe11b146ff61ac67fee066d1a8b9a8d8219909195136ac9afa30909309cd43e54c18f08817c526bb135685d328549f2d0f0d8c73a45606f93e8a17fa3528a1ee64377165c7b98f3fdb6a32fe920c38863d913ed398dbe085a7ac406da7ae2baca87f922a2d5b43601a70d3aee3f182cf87aad2de0e104044dab4fd19e7121ff5cb459595d002f4882753159c7c6421ea7e6f02746f38bc424d92b8c3b353592ca7ea3703d27d58f2df3b23875eb7206b4f983873fb230979083b70ec1e5fd40afb5e3887d05e4eaef8f833339be930c2cff359cc4cdf3fd6e7caa647f3478cc863716f01310a30233bca62a32cedff973c8fdac419fec93342f71e74934799345a6797e85a7c1ccf660fee8ff6402e3c37a70771a26c9ffc9411e745d6962011b003c19e8e267b303ee53079e23979f7b6fb4b5b5a3df866f68421db2bc2eb29fbd6c40d5d73e7570c22b425f5cca416af86f4911766694bcd7d9f55acee1d9ba8f6ac07e2b0d1081948e1436da0af1e622e95e35a2e39065a782e3efa36e0b130b4f22b37ef2670e6b5797826515ca74a9a1ada669cb6d43448baa8a77a9e052e5492fff23ea68698a17cdda1a4cfea63f9c186f35369e57a6f54a161cf569cc75be9347efa9c94a869461ff2648ff1a3c984c67eaf53041edbb4d27c80c9bda409039303052639062dcfe8c7d8066995c49e5629bd0ee47b63b637b14f7ab0964f4adeacd6b139ec3af6530b6147741ece4ce206f9a24d8254af20eb933324b55e911a43cca36704427b8b37b5deecdc0da5d1758de2bf8f6fe639448b45e803df46427adfd6b3bbefc9b9c64deadfb60fd2fe6788f7d65f98aabc960ecbb8f8ed9593ab0a6a2c7d093d74ec17710ee5c98909e529847d7cbe9a69f54628017c0c2222b4ac46134281990b9bd70ba991336de07133ae25701a91306e0dccca6391816917698aa67c39998437325e39ef1f7e8eda0dd330671dd6cca57f3f99c162a54bb23992e44f3b6310de3c8b3d309e203e0e47f05b726d1949cae0abacf838c31fcbf449d7f9d6413bd911c70a823c8940aeb59b7cbb2c64c243a0fb8ead3903ab3186c6390b2678eea04d18a9405c733035ee58f79f85182c520163e7e0b4bfdc03d60034dfaf61644c32bc4cc32beb4fd77419ada027dda3d6f30bb3acf38a8bd4cac6425783b710d5238496331a04b6ad5646d3ee663ea0e50da36b453771976d2e36e0be3d10268459724bbba557505a7e804a088e82e99367508eb5e61919a8ff35eac38903de0529571dea43676e3d2b769f4baf4c1226ed921561817746ad04ea9d30cba41225965f1f29bae6b0bb3e15a59e82e50c0211f22403957d86927bb98fb48ee18260df408ff629730eb5f967bf25af2bf4147be41a5da2421ffea70796b77944479fb15a0890785bad4c0f86603deca9b71b72c6b75879b44f153fdd80412cc8c217ff04f4fb9b8662c9d3474598f806d71ef214784ae54a537c307cc1373161ae471034f70b49b6a574fa6204d7997ffa75a78ab9923850f3fc4419fe365dc4732ac4ba87db246c90466741cab4ff9c3d39cee643e006f35b76ff5cbfaace83482d26dcfb98ed007b97f0b80849ad04e1d422a8c86120d1d90099582703402dc3d8bc192bba4ee993dbfc3b7c567cc6f5e761a5cc0ccfa92fc842a31ee0ce234bcd6888c8ef81e7bbf40956e3855507e2544202e66dbb476faab34c635ff8c873bac2727b5fc4730bbf33c5bdd2f3391181eadf5f54682e13a97f0a06487232da578c89960ad67ff424215020f3fcfa25ec55db2b2d46d3646ffbd9354dd14008512e38e523285e426fcdabd8716883ddfb8db0dfd4c036b51625b26a1469fbf2282b943500a165b6275eac29ea4142afd22d647a4ba6d458a65292a64e21afa38ee30120bd49aa8a0c511f2c202293c717259a07549b12273566f3bbf4aab1ef6c076b0e68fac0d3e777e1f6cca2e75d68fe5a45e5f045b891cda173fd32d54962336e33c25a5c3b03b772403bf8ce296282b779fe439396cf995d3f81eb6b069edf19b57cb1252dd611ffa52eb0023b553b343a028ac241e4e9652f7d73ca9cebd3e3642640ecb9f648fd1cd1f6e7701fef3a551bf60ab3d4f59315cc2b0a9642e5f4e453af47039dc0c95778f2cadc0fa217c3423c2063eaab0922ddc59835a4706136d6e2d0d25f7dd8bbbd7a939e1afa2cc17194430e38b2f983e5e058c9b8baa385ff584846f7862469f5e3c71cbdcbd726ed45b92998b89d83c6d4731bf2f92fcfa454bbe3c7313c9dbbc65708ffa3d9bd8b43df4d088de3c911cecc5cdd415d587310a2c8d3dc10782458c7205419028fef4d2adfc14a55fe7e4507351044820f9d40da5077a93e923f14bb1d12181298c6aa965fd76319052d148a357b8d27b240dcc143fc579889ceb43b8e7db8deea958671b18906c01d5d8962952152eb8245f98229fc2e0477541faa3a57529e2328f27614b7b82abd506d276495522fc21b2f840e34f20cc7d605a986632052ce8e47889667edc1e4d009f9f2f6fc6e4f59ef42dcc97ec813b36c412e31856478e1fbf740ca8933632c62b02d2facea1c5e7936d3cd7971ce35227c5138c5a57e032aab24ae4c6b05ffa7d4df3181fee7b14668f07aec969300c7b0b1216c17de4def301717d4ec65041d4656b96ef7b40fa4c5113c58e265a2c02bd64f7aef278a6f5c57b2eb35fb69dbacc412cf60e06681f892e4fcd7dcb3b6a16d38b7d7b54815ecfa9c1a0bb46138959bc42df552110f5f697de1ace36c45cee32ebc9fe8fe8cd83e29ca331f85898d55fa4bdde5cf438f9bd0ddc711f516fb0e79510243debe71df2a2ac140c19b945841e8ff6baea4ce9dcf038b5a0a19e0cbc90b3c4f3d444813ac7f70b0624bc70a0251675cd9f44b30b38aee30ffedabe5aef29597820cdf2bcbaaf99ee09f9b18fe93268d5c74f44dc77dfc721511f55295e03bcda9956cb74a9bd85cd028ec05b4d064ed35a2ecfd3f674e34cca9f972824b1d7d3a1caea6fd6b51a205fa85de4b44a2f92a45edb712c73a4d10214623e8cdf3b9880cd25ac2dac328c3f54016eb98569ece9dac6f170cd7daaf37d41e6c35d62c3db46a24f2e6f5f237314000d0ef6825a9dc987379d9405547eb27c6d631fab06d5a039d47dd2b1dc63a077b4129f7610458cdad28b849fc68fd5f0c6fbb40fae533a5d8b559355b1db112a5203b321012b126fc6d5181cbf6f3ab8de483824ac07734370701b08b295362eea3073efc3a96ac9a9ee3082ab49afa034accdfced6c16c8d6a7e88b913b38468fc104f0f458a298f0c352b04eb664b1eddd9d76f308a9a29fca3f3fb730f8d1d48db53c23243c8f84c06a91acfb86cb2dcf2b1ef3a0b9b2cb1f4909f48e9f9eff93807bdc21a5a0e1e7ef1fa7bd2f9449eda1bc9b86e8b4efe33221a436a864cb272db8a50ed3696634ae458566e562a1dbbdfb20126c3ecbcf403816fb49adb749f51a76acf93869101c81d8ab1292e4e528ff30e58d4ccb34369cdabf927349fb8ab49ad569eaf0212dcacda9e1ff85493e6852418c647a4697409427becf65fc0710ce9c15ea9d2e799b39674afcbf2097d9fa9f4b10a874435cdcf2137d177d764c21a7ebcc303417a5ed5b94d0a3ae4be16417ff79fe1ae01feefecc5cef9ca7ce8cbe1287178349b33c40b7e7f08ab913844cc223951957043b6feeb1f56015fe5a039ed8d3f07cd55d5981e9f6609f2506dca0426b16c7008f2b25a67aaa3543bb8610354eb214b58b836e74090c7a43a9b47b91fbbc00a1b78400a42a1122dbb21afbe299b619abeceec31b32195ed805dfe64588703d7b12387b55486b39d909ab0690684471564417de34ab2e02da4d3974cfc7e9e38304d220d0a827a3312d085195163fbb712cd0a21cb151165bd98b77978096c1e6f38a73368cf7707083fb107910ed091d659af6a4673f9a155c8a402bf1c07ed416fa18fb66d6ac92d8a4c2d4e422b135f79ead28bbe234f818892b76fba8ed61b186b3b2cd1c773795e91e923c06829fb969926290ae2fe7585534e71c0c58b3bc662d70d537dbf06da794401aa121b4dffa36e574dda73e743c6177cb87bd78d6e0f98b081188d14050ca3f49e330cd1765c467430d197ee509dd8a000168212c683c6c7f075706cdded9c5a9609a6496280c1978d48e845c9693832768c47d9b7d1650e927b694a74ba50f36b924073f71f51b795f7822475d5632b80155264dc892effd97f561c1670d2417d5e33e7d095a8e44d8b0fc57d9ec693d12c277ddf096fa00081b2df89c46b66521295c3428df80915fa7e8f10c0627fab4e5d145e9fb6628bbd7b7cecc4427e73c6b1242fa7cc9df2731ae2fba2f9ef0d11ebb4e718e0a9b8b73b7bd5d257d22bc255ec751d1b381fe080e6c9a3e1204a1123c461796272ddc3b41f8fdd444358323edd11fab1bc5eda2111963ea999d743e6968f158d430fcd9906c5096227b7e5f377d07b2165476faefcb2301c03ea6cde213f7e165913f41fec6753aca94c0f365f60828c9bb9bbccfe030420212e3b5258668ebf1e393c5a7418292d7c819acbd6dcf109233d455a6075001416647a8dcde5f6f8fc0b161b252c37 +flags = ValidSignature,BoundaryCondition + +# tcId = 51 +# h_ones above the limit +msg = 9a01000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 4e4f39e0fa77c6d67f49c759b83a72c2289fe57fca50c143c9a831a8114d41edb4bfa0856c62be9f05fe4f3672fe01549277f8b0da08e940f9b7b9d3da74e07fb7cf8a953fcace4239609a492220cd8007966c4e6ca5e8b418663fb1ff486d3ef90333c470699b8abef54c3fd4a25aa34d44ae75c216dd2d3f017082fb01df0d5ca6a85b1181484205722ef118f03372d8dc119739303aca686159911e165a611a678170a5238dc9b5631df11f2bcf3f7e5e8750cb55454f25a8a6e3efaa3fc66c88ad5247397ab153af4bc014895d006307e9a92dbb4e9bf78993980c525f2313d188b0f55718da34e701607d7149eabc05d952c4e12a3516d8e9c1fde6eaca3cace1e76749b156c46f40265870b1ea2fc49d66b600a52beb187675d1b7d6c40445c678974625dbfccf20ca3b65eff29d7fc3033f3af4b2c29494f18515f378ab2f155b392da15dc1f65c7a37ea2bb2b69eb0f8f66a6507025811a2ce5f748ccf667f32b9ebdfa37b3f4a164534de8ca9bedeff425920d38b0514c62068b92024e014283ed633f1820d2851ccc8268a443349903cc70af04ddc4dcce2023b6c0ce625797972883469b38f7754b576595a97910ecb81d97c801be74e7b8e7eb902c42cba946d855cb9dda4c140d4ee37504dbed3ef92ca99572a7857f6383d9ebe3105c90e9cc196d5c259b869a8e8c092432be67cd7b873ea408d455231863c5f34e38fa194686efdb23b79b30b34998f031179fe8dece8e79023cd41f0e92e18fd815d7cdc69dd83d26ca7e850363c3369cfc8706daac31622fb7c419a37d4884edcc10eacf0c4442c2bb47473181d4cbd404ab63bf840676caecbc89cc17ce0d14849a022376ca0548ff552d229c92c05b48c299d258644ea7b6462ef6b5fe965f6129ad9db2e95eaa14e28866d7eca1c90bdc46bc8f0da5868243a0f5a2ff3f08baa067c03719da8a3bc6c1d14a871c7a630dd831911467e1e6f19ccf0a511378319976015d3a3167d2570a49c50fa8d17b1079f092727276a311fe9f0ebc005739d8733727273aa5267021dcdf629321364fcb46836209c54d8266dffb01abd69824245c9a7f6a706e1d5deb23a15330990ba1a8a7032d4efa4de64bbe9ad4bfafee9e23b62faf8ed88093f5459115fc3d2877028fea349285888f84c96a1fa415fd1da7e878496e910cc1037c0a482e65da9209f40ac89e92358374144d0cb729279ad80e28982617f5ade2dcf380be05709c0de1e0191cb873e35d98f7fe09b38fc2430778d44752749414bd554d1b0681e98fdbbf9bf437b9e0473eca06ccd7e0cb4948d9aac13ec245a850b0506c6127830c63a75685e430318365f4ff06dcbfb970626ef2dc27dea0b0a098b2fc5a0ea02fc67eb3a9696ece6c752fee088d8e71be6ebd94aace3c78a9113b8e10167da32230672a2c311f12553ffbab9436de67657725e96dd516c9b561c3b272fe889e8ff2811b44426d26a0c42c24349aa22f85ddc863d32ac91bea62f26afeb350c81439964388bbf21415226b368188e2adce8ecdabbb3e38b1fec29bb55728cd382b3bad0783356c739f343c39afe5a98512b3f1c10058c587c1bb729417c26c18617f96d2de956de1d91cae81e1eee0d2011b5706c3b07580eba78066aa2a812461fc967e04f283113c30f6ced3a237958ad71c9572c8d6ecaeda361171199953fd7bb73fed1588259870adb84744e825dc84613daebd982f4487b464f128c2a7ff49b259c991ce34a013f9374568fee8e357de35dfa5cb43542cdb297d4cd886e0605c3d1fddaba262ced5d1edf566cce3840ba338db4fba236ec926a2134fd127d40e3a84f6b158cc6ce48f238c078a795caa391e793716281c2936397a50cd417cdf9c7fb32b5a8b7690e2ae2768daee33fd33600ab6d1eda8c37bf086bd3c1be7a9a2d79ba6ef635f9321d8d03316a8dc85acb4ed7a39d7cb30a76c04c018fc9c3c4779a8a67e7975c7a45018f9f177575ade5984ff4f7b412a18f1c24402e9bbc5564ef98a920e00d4bcc9e307e854aee1a6a2f421f833da3d27b2e8a9ab7b9f1061faf105d13da2359e9d57f47fbfa56e49b372672de5b460f3c43e9d32a0e3a272fe3efd0dfa4740539be52d4ec7881d9c7915f8cda2b47dd520ab5c5ba8fac6b1888b65d1bf12c976051743d6a506a5d4c550262b23e4995cff4bd6dde88ded5fd49608e791ee74c2c62571daf881ea9e318f96447c0d6d3ebd42a1b4a448e66359db4cd875885f91f7cffbcda373af5c72c67c9e3e8e14b6e0f5d209980d4d9be3884878f7f97aebf74e86426bd8b1c11ee5df701eb47a86877dff6b7df3d343f8a3a24697294f15de1be9c20092ac2c53d2d4e9b8011a2628416ebdae96237fcfc980d69265b03b86e1bb6954ee19e4e7598b068d131510a4e13c38d2c763c32f6a270a50fbfdda0e50b6df49fc85d3b1012b374a1095479a8d330f6c4d46940854daa91d34ef96e33645a444fceee47bc7faa680a2365eabb0c7acbf73bb72364b865e587607e0f4e15162be599703e22f782b15686f32ae096ab178216abdc687310330082a057286235e97f0abfb5b00443acb5db755fde1c4d46a0ce5923d8f7b10b0c4cd66a887c12a02ddcc022e261cc3f6ec65f1d6b6182a19a2c15f412d0a364d01b5eef67f665d42a6087d798aa94581fae60cf86cb9aa90c6b9e63e3269d78eca3f269f382e69a3bf777a420ce56866aa82ca5c4131b34a7c2e4cc8c685368fe8df1ba500fc6f4149ba21311409f517332d54d10337c762e0806d66bbd9426805521dd4fadde9987708f7e5cba96e9afb256f729ac9705c8f9069f77b32f5609d553e1357fabd6afb3439f99ef4d23e1e4e65815ae079bcf0dc408d229fa63b44b50b1075ea4d414caf46654fc462a643b4ed38a037e9fa9cc56e492584a69681bdedb72a48dafea506b19e75724d54cefc666768a7b40c015dc055a8b058167965efdc7122b25807555d3b6e0137bb98b5e16a72f4ba873ebc32c036d2eb9092b64de62dd95526c4900bb64112bb0703783c416be33d3cdbbd441316d48226d63e69471845a7f5bd93ddffbb0bf9385221c3a9d80d89f2a6f6bb233f3d0c604854b86b79b1d4cbe50e76c276b58f25ca31e415e7b2dac266dc3b073f1d6b00d500e54981079d66a1f314653b733c6db19168ebef304e15760ef535b45012fa4ce3eb1ed610a5ceef680f8700c174ea474adbf45410df72ad777c72255b2e77e467453da217345354f3570050c178dba294a95c5bff31c95d24fc757d3ac354cb7d7c6892e8dfd9c0062f3d3071ef316c116511d78becb255d185c81f61c0e29ce521928ce3c83c9530d53c7c6c0535c9b384b090fab020d23c199430889db214a84cac3e06888fcf45f19ec74552e6f45380faad1380b9a7e5413d9c700c70c6ffd003f3b52f624e6b04948ea99b3fb129c2de24b47a91d910f35c24efb9f3d788827b74a566607846015e6148b4c76355b51bcdafafe1e5298ff01879b1e9ebd430681c8c82f194498e78fe3537c99888f11c063997ac36d1a00a38d51bf5a6101a2322f70dab430ea99d14ee833a0859d5bb0da477afe4aa3184e480b14e3f6a362ef3458da1ab5728994ed6c8899dd6e5a9c78b38f370fbc31661e37d402310a9dad865176486144c451aff71715378432604d9194ee88ea6f3b68dfa1b80b0a6c54a2b5cd4c0b4b1ec7152c680483b537313c4b6035cd550d0eca0df04d9a058dec727ad5675285fd1d07a4a7bf36a330ffe620a1b244583bd3b248be735bed76e4f1e47fd1f81d6ff3339be6d9fce2afc4ab2402f3d2a9907c10fe4207ffb0a3ee49a3ec7b3af256aa2d63d69b4dfe69898c858bd8de9ec4285f7de3320c18f669574d6cc9a08cc8ba745af8a5f0086621928a97d6c92103d34c229f6d8b1a36e8e2e86a8dd7ef4b039c1b9546f7ebdd5f179a94146fe3c9c695641bc51db41ff0b074f467bc07578fad564269c65337f6a0b8af6dc0f7640cc42fc8dde6fb7cf677ff7889ddab792fd225ae4c8995dc97afe843831e8d48f419879411f5152cc6e1d9c0624d8b1bd6a4b136d67074606ce5ee30b0136335526eaa352df9fced286530848115509e82a8a4a3d929a5a242415579d97995cdb20c737ce4e63e490860e58855d6574ffdceaeab8fbb6aeee1c73b7371b8d24dfa68c4e29c84a28bf78b2ed283c15248a13efdb4aca13e25f69594660e73dd847c7249d64dc2f1ec51e88c675fa2bd5b77957765e608c3e32dc991a14c68fd7e9bbf17e84b5dea7a2ba9414851a30994483e0e53ac614c72c5b5d0407c6b0dbbddebb4fc0d0c195237f9d2e4a11cd10f464b35dcf9bd90bdab7f1ce583477dbe31b0b5aec91ae86a2e0cde82261665c570f0c055f1391e60669e7e7905fb9bec5f0da2485bca04837e683fda337a302254f80ba295c96af0aa97f673efb3073b581399d76cb234296c9065f363a5e72484b7e93438055ab952fe2e55a23b34acd34957a682ed8f17b0a5778088c39a3dd8489823c8cdf588b73cf7c5010fb36c590c99fcf30cdeaea2f86fb8375aea46b60dacd83acb0b1517589f2c386069a3b6e4f81d445961646b90bfe6e9f6ff3f4653658d1e373b5ad41835848cc7df0000000000000000000000000000050d191e2329 +flags = ValidSignature,BoundaryCondition + +# tcId = 52 +# high_bits called on the edge case +msg = 8803000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 93d46453ecb0ad7a3e0288445607fc4fc6704f17b64fecfbfc183de4cad5c86da5b1d6c13fbbd1c1f8a8818dccdd5b075f9470e83cfa231fa5b6036ee49ff80b0fb7655f4b7f84197027c868a4d8fdfffefe3317c336101c4749b465325b45dec08ff915e606e7cfbb5558e95ef29b194752f50d7a5b11a14d131b0c9af6dd154ba49200afb1bae5b9c0ac7fb0297c72281d8462dbc89cd5b0d66256bc942905c9a805fb14b8c4931550ebb70ee04174784cc02fc8e97b5dabe50583d433d11518079803c6d557a13187cd96c8e84e8801c11e2666596f055e788deb0a713862f2daef6e1acb60d83e39003417339b871d27877823493fd360b27336eab688a71d4b0bdea6641b0b0ea1ab65fd4291c380fc76a75dc7ca4e4711af22ab5be96a2e4f301f705ff033e3e8b530bd8194b9cad4f54680eaf9abf0be7af032a2766fc75396894b2f393b1b87af6d1b9730d374a5e48964bf1ec6276e6ba4554e2f6114c04a1489990c7901b28ac94de8c61ab983319374474a2aa8a0e1b5410fb952105a5cc0ec9b9cd7663e532bf787ed992726fef537e3bbe31ba835e0a0ef00398f7d88ac2ed3d59a99f9a6cd49fea68e3a611ed1600f738ee199d3db7ffda3c1873dc9a0b1ba9b8aa224cca56460965a9d6c91d58de6c33f9665df62f4be77d333c4d62b967386fae73830389c71a563ddf7172b68b1faac5fbe64e06b53efcd058d4a960364fd879eccb76a7674a813453cd48868b9fcaa96bcd5dc815ed688f5126557158bb35f2c6a0e4ff4c010a3afb6a4122cd3521c3d9e3c717c79c8062d3fc24d51b122d8a8714f9ffc07d4bd8d0e012d7ea9dbdb2427b0ee12d44367125e63a275d70b4f5ae5d088130358739cc31c3060ddf91c3cc64957c76d451cc028555abd5811fefa5a10633cb0d8aa47a8b6718ec44b1cdb06a35d6ddb332efdabca446dba302e2c7124303343eb42ee3bdecdb894c1768d1680cc98dd628067fb39cb7d67a00784995bf5ea3f8014193c7a371dcc55ba5a3b43d3f2a2228126856ea0d97c90b6081a45491c3c8e20f6dc2ffe331496cabc3619fe86e557228a7dca189e7a3cd04e961616643bdabf6ace94f3d5f1e8429d115b3b8c840245fbf48d0172b214c0386fd320dd1e2580d5f4e6cfa9d4928431633079a90f97258418ebfcdd0aab960239ea2be83b8a057b0548022bd518661b703835e91da0cb568a4101de68d5787e31e285c335e637f83eab3953ba292244286d61e06fcb961e319ac80d5173bcfe7128dad75e2e850085be27356495b28fdb55313d90c4807f6546231fce0cbaf1fc6419ba60695eec63cae97957baca1756630550ca14b56737a52de135eb711c0a1dec9e1811908ecf299198387b741f904967404f7f8ec9f6ebab878caa4b664cb24c53bba4607a7bd6e4c4db5f9c8d712cbab6a506d0902764bb44da35cc0f0663968b3cf5bf92f83724ce08d478a66ac0e430c42ec47ef4de4a46e7d047450e481e4d8468261315c10d5bbd1ee7ac82f0a63a9d4ba54f6e4a367de6b05a560482c8826121ccb90f68037a96c8c30e41f1a96c4d84c021dadf1315c3a6f80e6ef7d26b5e4e87f5436347169d63987c022353a8155670c5be558544ee3ffc3cdb717bbd53edca18e5ee0e5646482ed38f790aeb45bf89a40e819b14d535da8b12025ed710c2f2faedfa716970ee44798de2932946018b6d80715d6f6d7d573b003b576cbe2781ed12984a4171c00d5f12cbf7e73d567cb8d243544cbc5c7921b5a89c0aabcf1339f99671fbe96591f988a06f4bd15feae56429878e40ed8f1e0e90457f1ca21bccefaba6d30709f40508c47d78c72362d5d96a279406f10f975fe70872a4e214eaf3ec9ae5dc3b7bc41e27b72da8f6824c259534216577bf506ad45976e84ad4ed9d5a4f88e3695e2943adf045b91a5edea2410ebed5d2bf10170d3a0c392e72e970c715c0216b97ffc8fdc9089a9fe1e4f4cad9ec4e4e589fe05eb5ace4083805f2cf936bd93b6410138caff44c64be949fb7acc66284bdd8781417976f7be700bef0f78f1398fee069b14e686aa985aebdd058230b7684553f02a1e196ad8661759e45bcd1ab75f8d3ec95602ff03e6b314d8c363cb7c843df92a3a6a355e29a2ca881911b7e01b8e8c40f7395a5207650b0f44bf11b1269b8b0bd4b4c989c98ff0c529e0a3b5391ca25ec366e39fc6da4c474b3ff93938fa064b1a30a6aa56a717d5f5bed2b3cf3d2270819a8100b7fc8e750787acbdf008fcc4a0deaa47a62084c3445c75cd97edd1e4012b0b76b01bc1ca8e5738bf884c6135934304bf625eb8a3ccb29087047a0834943a6bebff481994779c7f6a37fa8140105e849696d922d3e7cce3535e9711422dc217f5e7f2c379d5dc8220a5006b56a87079b1504d6628999ee8158c73d2c101cebf695adb5c3815d9328255c5dc2efb167b36b1820abb79f0eaf4fd84580ff7c3a8b178164f985f42f0dcfb728fd42401a31a2ef2ebd9a26e6832623d7d28d26d162a21c45889253f62a11a2ed59414ff03c27e48aceae70ec4629462842626d7f802371fcd7fc1b97495e861c7391c773fcaa2ed087ae8b84968c573f091ba37097008d6041460986403e8e1d2e44ba3afa5cc88d48780aaceb142512b115d47d7e5f9358678c99d2f481d5740b327555ff41e163bc40b2021d441e5b4ca87b02010a454c6f2c9cd1970cd3846d4c8021ac7028b2e94b3a9af750e76ee37bf4f4ace83b244aaed8c1ba134500357b96f587bc1464cc2052b03634b772920da0cad300ad9de1f53c8b8c373b2e12b552c4410e2836f3161fb1b7c0116eb3fd23fd632fe6dbe2e9999a3994793b713d52c811403c3b9e0f5d9b68b71835e9dac66ab9437b64151115bf3a8af2fe17de721310b459ecabf6790096df03c23a8165cbfb484dc35e0e14ea64a82bc76b888f6bbce7d29741ec435aabec2b9ccea7b61197a895b608d88666c1ab1ec32424bacd2c51b0a248ab18e0192a866c7de1ed43ec7e7eeaf300ea40143af6be9d93bb92bd0ea5d9600f99276de5a23eda8f939ec173a141285b0323551137dba54c2a46fa5decf94158646edc72901fcdf86beba1a8715159f61ce58eaba2fd09afe8b533817086cdfb641f4ec3c079cc27257688d4b1a3dbfe0a0f53e74384e2b89c774ea215ab444a459b5f9ded9019f57aae07c44eaff21c7928ffcc621339badbfa93962630c713072c5efcf52a7f2d09d4f164d0b901d34c37dda11aac6b6a93f30339c786255b1e18ed055121a5b52b1a0afd76ac8d4a3b1e72516a8ccd39cd035c11f676ede7c87d932f1ef99d3b93a79e7edb1923de83498c94db1775e9560753f65a34df282ef215a18662f446e1a80a4a64380cb4991aa5ed8fd1fd24eaed4ec91536229596b765197c10943b4dfa30750728f9b7ec39b798e33572da27e8b2bdc5a596946e99963a1e164085cbce5529183159066411cbf62033b41b2c0f59a4d771b4aa9a82bf781a384a370b73b59c8d64450b8e75ecde8c7eec2ea52351711b88b7e462dd7069c2f3c00a0656cb3cb5cc9338e2dccf2e0698be77c19f85271642b09c41932a0a54f60df6093aa41ba66734f0c91d958f9798169b35697ba42db67d33b9151b3f176fbff73e73b4bcdd9f2b80234e20ca079a0694977e6e150d16dca677f1a195348942827ae2a32a7fbb891df99eb03651ce7168d8f26db3c6d71ce778fc0dfe75010eb80612908730672fd0344d99a85090e78e454cc7edc760cb49b672702d388689819f55a353bd8da92e17daa34097c1cbc4574a243efd2dc908ddab79d7cb33ee1cc7a0c3564ef545d100bb6ada9d26bbd306ec7b543e0bc2477d8a283823b65b6a91ead38867bf83ac3643be995b38897307cfdda549a9732b2c3ca88babb8dc9c3b59b208a596b57bbff42c586b97a0e55ad9025f6c421b19c1ec36b436398c413ae55d064a46e2b97a4d475170666f6bcb7d5bbdcc2a3d28be3e5a41abea942ae836487d7325af729116a3b009b47a1efdaa4142a054bcb672951087891aa3af203f0ed41efc9422753a7b07ecafe4d9022e7c73893621a648d7dda02181809d7a687301d156bd90c3e15e1a746b6ce93fa2bc2d8309b8135a95c0d12700da6eda1bac9ea1663446cba9e8237dd019d7e016ce0600c8f1cb435a8f4f52deb8295ce00a07d3a32456e44bc2128293295e550e816069979fc379da0a44d9116b7e6a1ffebb750f2d7f86a27d6d93cfc739efadab272c77a595f6f74318d14fb4e15ac8ce9fa0f7c72ab7720af4f3da27bff92ba62fd7fd79d96a25c2fab26034e3f331db56add047c8840933b53e06a0607bf3dcfa4fb3227dfc8a33a26ec9fe03ffaa538b6a8ed9a58df01f0b62cebd303f11e24fdd373ba23adb698c6745c41f57cfc465d10aed6b08f171acb42c5bdea41cba6fa8016ec7603591468d310746513a24f77155be87f507e7fe8512f2fc889af9ebb145d5c33137aa7e3dc9e14d3a81c2a5149418782e082745235c62969d19bbb349b550524102aed4c1d66a3a98f8646f6f0c0c506b64748c6747b1c1cbdbe815005a71cef21a1c324797a0e30413292e78bcc5cc548d99a2106b9ea6eaf000000000000000000000000000000000000000000000000000050c1415181e +flags = ValidSignature,BoundaryCondition + +# tcId = 53 +# low_bits called on the edge case +msg = b502000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a +flags = ValidSignature,BoundaryCondition + +[privateKey = f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f743fe2130a9185402b9ceee616adcf0aeb1b0adc5b7bd65b8469d9f73abdd491c7659d92d3c6412cab96a2de13921e6e28264326efab5964afee6490ef637e546aa6b61aba997daac4623b0ff33b4bbd1a11b2942500c737263b5a7b599c454d8442073855220447142672283106762324611334160331766716756876656306340247416643645788214401245418430332335014484266482863377264642414206877226544283410340543730247627225170453086122730061663720413006672700563545553308822632620516184200008121626450075764267612441006130131054105366434124552571655324024583437672387040523848872722438820242507702366302474748842265201861837063577540747600354316761325342724414244818807083666356763458818178730038860216678417556380528118134053806822634757706213780383068245037164828641644088712486666263228563278454077257226514241838623545046705775223416234252343326255430503041432773656045076111030080425435056385571604503837242375546781881637734567572558705071178084805270422810171125366178026263016101361657832287864742571181540760851116286862663367644442262567158480021516651834322735675322048815731072442030787610367014103700472855221118750731347147044142277174111214348353566824008064045627684488722675430832058628153456611117540326632627423710448122776364844470152004860248280007708325718482525552264175551177652286873852661125522335557583772044467545176204662306421267463234564162341677110818645117237332101582140278868362167651433830007175820104352222533408675507171265571436206825831530330505138722014332544414101453361865663285823831165654236338452842635115828271801121281582618708170531302365851580567783463004004872080286853401722161683240507540174321162726623307704357168735441623362805550771378557544025577664653883727145477726652161328654636765354441580462755002525303617004457666056523833318532171037664380506224158805461788342412558636736557807030038168058241037440287466117173258168248137753751448321557734277603877752226522005384287417756673375054253360826560561501724117752720403752166506773562110186547571130831846605687668266432088723466508134167088157733748882573483206443607642671007311272002682616013071771238832745526182648607836043640787500384324825714344453303465740312784685175588706426626253688784802024002168480055006521746017031355351420356313376038357500434586744155331653510137233135501164040340443180537652161358720413477471755650162313051181844240248360407773704517351058764775404747121083306411352302550060311617664848461285205032215087833220558462453850275140274158215805155381750850757850271010637641250528012682211173613444785706268032670127024707747567314772632848841668565545456641117066848041360116507056675046470163210801085300085527862576471877326436205146166232414075335513375673166307774724018723351488672332685528233522486007870307457262016571753124063541231514175538351737543321726247362412023101043212535074048080016006886215511021520172701460518406542024738500552450424583471822538241124124282248288348872240758184343246825136527273210452765138144072540628287154522674671801747806751802628540570743817583756538088277258068473227163621044527db3e8a7b37950eaf9af3770bd6b8f8c9572b54256463bebfcfa8920624daa12fccd1c228c4668f688976a5094a00b6e30694ab2e017cdc2d4315a381bbe84ee58340cd6bc6fb225ddc2bf8dc117ce2be59993e5a521f5296126f290d10097bb2b9f171ff3f5de8a5047e76a15594c3caddc7c0caa852b8aff91f435d3f039d3f27963c357691e9c9ee543f32a77691f8b8ad98d711f8191f5c9891f593d8c754b07621a42cd25a2e95c32156a356f7bf71d6a3d1be00c7364741f2eac5d0c5fb3ef93c6339b559c9b2c4f518927fbe1b87d49546d0c9ba801c224a1cca84916aac512fbaef6841f725c72b927b55d920bb9b8df4e89b9b09da7adc24fa3f9834a8a0380bd42f07801e4afac2bc1e852dfe41b0903990289190ddcdcc214a680e0247938a4b54b704bb6f0affe7ce2171ab7e05f8cb96abc352e44e9b9f60f6ceba0ff95703209197657d8228e93dae9a9f478a30700a6cdddb4ad484f963afacb39a3186e94e097fa25ab149c4c438458b24369f62f87159396f37de36fbcdae2acc7b996a90f66c6de64ad905ba6d4508d3c453e7d43ecb7c8692244f3de88c975046189a438f61a1a84e8d0eb11f93dae6c80dee63c2a3ece5b794483d60493a84dfd4d267eaa205ad0b9491e656e267eec42f5d3094982452ca10b420552d684242bb72d651d47e96da49077d73dec8fcbaeda2ace53156bb4d4392e21fe094a2a32d3eb3d4163ab50a8528800464c05cf2db162da56dc13e709844dda7cbae47ef8364c8c3d5fb471f9407bffafef778486c304088801624aa2318433459b4794f4c31ec2cac49d56504602db94a5b882a92b06ba9ea1ac40523fbf4ec1dd473c076d3e397941c821895beeb4b5fd5eef9246ed1ac724a2aeab43c56a6584bffcf4aed0c6629d5a59b719e5d677539c3dd620d861ee7f9c0a5f116a17e4bb3b16a8017e668612c1038b576e39dedaf7d848d02024c0065f1b896ad6594af4477c73544ef51f3e612c80f11150b1f394b9fd899fa6d927535efaafb745133a45442241579e57701399ba23b0ba62a2ef13b5eead46f02d2c5a91fc031e458be09a8b5d53d9843278590bf556e2258b371f14f07cedc213302ecc895e15be2eb0e771e4b1d6d10fffd2ab945dacc52287e8667ecefaf3c959dc5bc18d0d953ce392acaa67e3f457630cf266c7665253c3c04cef5a73aedee0cfd06efc300887d4694dbbb717f2813737d0fae91e434922ea831ae41349e44ed0fe9101309dee68c1337f050e9e16113e8ba47877202b97113b3b876f4333ee620cfe37b69e597162ad40d78f5a7be33ebdb38b9eb84dea68e01de157c7e74f4522836b64d146f719df851b60fe69cea4667daa057bc47a47248fc3073a904239c0f8757cd8aa52e5d837fbc6490a0ffd9a3dfbeed09c24c61e48df0695d8f37f5670aca01a3fbb2a5fd3bd57cf38c453f80f9de428aa0d860b13231c5b2e435905bae792ee21e6104535204f9ab1f90d8c3123e57e2d01b0091ed089b9083438510579190478b86980370bb0170992673394509aea3a64d241b0d5388614282c4172796b00bcb034769bb492c0fdbc88c1a30a040d637a7b9c496f620114546133fed394ab79413268027d5418bd61e6ce3ff18ab83f76ea0a2e5694a48c01931cbd1c4bb02a3515ba3fcedad86e74b2848902089986bca91694dfa712b97c4f2878f287590aca47afb18d1ee6f502b90749f8ca1d796309c5bc96f5899f70fe0b4b5061668e62891b5285546f0dd2176649e5cba2b206953c7b66c57fe2e67c1c6e45682322d82c569c543840722756b7b4c92aa059e59983fcc327833931556346b83d7519b3a6b93691e74af6d26fb61bac9cce2f880d1f194d084171809bef926e99218f664bf18f58585985534281b6008d86f48f8c4044a4e4c89f4f08cee869c6a09b96df42d6435433d247e9e1150ac5b09da7f66d4f2eb0fc7f8f22bf11a0b03c9958f0562030d2c93b1c4a554e86b00f7c2e464aa54fe018bed4578f3ca0ee8644c3537b86da324703e7779fa897fdd4b867f7620e7fad29957f28067524ea180380428995ea333a3f291fdc67f0364cac8683e199a9a85c7caa3cc29db52f84aa0d0d07d5677d74816873e0af727a8555149d41d40a1eeb5944328a23b1be9e55ea81bfe461c86bb1fe3995e9f8dc83a77b06257c6356089bba2bd44e2a7acacf6de34262d22b0f899d0abd705637ad5ed1de2691e498851db106f1bcdada3a2f96908d3774f661fe2e8ec3ec598b936f4dc4d04b80efa4f57f3c55d0ff990b313643a8126aaa14d898e338f5a261ae5bb17b854cb1a87ad626d3b4ee29c567baaf409ad53891f707c148f49ec16f9882db396d1f140ba9e8b0c9a0cddde6592e5e82de0b18dea363e8605ca364aa68ebdc5f3220b810125fc787d339c6a5a68c92cbc64b5d265ce7a03a06a2409a8a18f000691cfbc5b205bcc1926efb589b82a7404d1bedf09e88ad286f7711a6d67ece4bf76fd86556e840d73f353d31b4d1c3dad5e83f72d540c601983cde7171e67b805bdabe3cd6788e30938b0398c1c8cdd5f8f1028f123d2d612611ce15f7637d2d751e59df171a4014efa4e8420bfcdb75b77c63ad1dfde967d4cd44792d1868d6df3c5bb5f1f3617861e24ee6fb58c33e6b82a57b29422dc0c5aafcf0ccf44557ede0e9f7d32be95f4a214524a30d37b85f1783c3e77b7d52e8648afbb9a03435c59d6afc2ed3b6ee434620c0b368ca6337cc7228916c5857d1bef27502014a0798ab099a7d7d9f053175b9e94d4e3736794034bcc92a842edd555dc74e69906a8021430655b3907ff0d5af127c847902c783e5e51bb45a3e4da6bca417774417fe2cd5d8448c5422eb55ebff2a44a378d528ab06419e6ee4ff6608eca6b44b8c71f55faa714bff9727dd3163b090330713d90813375c88b8681d491527f89b87f9433cce8f6dcd83fbf4f00215b3caef344b38ab4bd9bc5e3dcc3624fb60ce34acd7340b14d9ab48df15b1cc839265b791a417f90cd463df719fd69869aafec64df9bf010498e8d6397e1cb696fd68b38ca9ab1faf67b7123ad01781ffce12a3dc2b703cfa73dce16de7c3a09eead7ed6a644f96ae33a4bf179122906c969e99d9d99dc3472de3c48e80be4e9685602b23400bc292ad6f2fd34a2afb87660a010fec11d3ee82c164fb267957b6651d9150cfba16650952f8f8863709bf5644b0e4738c45199824511fae580548c7f655f0bf0bf3102002d80c2b2c3adfdf358f2a38346032120519b31dd906d3e26518b867d1dcb91caa5567976cada346044dc8e7274c0bdc0597556ad059f711868b83b8da5920304d08cdcfd3d5d427287f5b637fb7e2c14253452915fd6c6614f93c3900c6b3469d7bd87e2e5f15629316a7e8d4dc12ac80a89bb8c6ae7238144f82792bd04c2e741beb130c2a5a9caeb09e8f02b1480ad42486d0d8e5229072dc139115493c2c747920ad76391dddfd66feac8744d5662014bce98728b] + +# tcId = 54 +# short private key +msg = 48656c6c6f20776f726c64 +result = invalid +sig = +flags = IncorrectPrivateKeyLength + +[privateKey = f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f743fe2130a9185402b9ceee616adcf0aeb1b0adc5b7bd65b8469d9f73abdd491c7659d92d3c6412cab96a2de13921e6e28264326efab5964afee6490ef637e546aa6b61aba997daac4623b0ff33b4bbd1a11b2942500c737263b5a7b599c454d8442073855220447142672283106762324611334160331766716756876656306340247416643645788214401245418430332335014484266482863377264642414206877226544283410340543730247627225170453086122730061663720413006672700563545553308822632620516184200008121626450075764267612441006130131054105366434124552571655324024583437672387040523848872722438820242507702366302474748842265201861837063577540747600354316761325342724414244818807083666356763458818178730038860216678417556380528118134053806822634757706213780383068245037164828641644088712486666263228563278454077257226514241838623545046705775223416234252343326255430503041432773656045076111030080425435056385571604503837242375546781881637734567572558705071178084805270422810171125366178026263016101361657832287864742571181540760851116286862663367644442262567158480021516651834322735675322048815731072442030787610367014103700472855221118750731347147044142277174111214348353566824008064045627684488722675430832058628153456611117540326632627423710448122776364844470152004860248280007708325718482525552264175551177652286873852661125522335557583772044467545176204662306421267463234564162341677110818645117237332101582140278868362167651433830007175820104352222533408675507171265571436206825831530330505138722014332544414101453361865663285823831165654236338452842635115828271801121281582618708170531302365851580567783463004004872080286853401722161683240507540174321162726623307704357168735441623362805550771378557544025577664653883727145477726652161328654636765354441580462755002525303617004457666056523833318532171037664380506224158805461788342412558636736557807030038168058241037440287466117173258168248137753751448321557734277603877752226522005384287417756673375054253360826560561501724117752720403752166506773562110186547571130831846605687668266432088723466508134167088157733748882573483206443607642671007311272002682616013071771238832745526182648607836043640787500384324825714344453303465740312784685175588706426626253688784802024002168480055006521746017031355351420356313376038357500434586744155331653510137233135501164040340443180537652161358720413477471755650162313051181844240248360407773704517351058764775404747121083306411352302550060311617664848461285205032215087833220558462453850275140274158215805155381750850757850271010637641250528012682211173613444785706268032670127024707747567314772632848841668565545456641117066848041360116507056675046470163210801085300085527862576471877326436205146166232414075335513375673166307774724018723351488672332685528233522486007870307457262016571753124063541231514175538351737543321726247362412023101043212535074048080016006886215511021520172701460518406542024738500552450424583471822538241124124282248288348872240758184343246825136527273210452765138144072540628287154522674671801747806751802628540570743817583756538088277258068473227163621044527db3e8a7b37950eaf9af3770bd6b8f8c9572b54256463bebfcfa8920624daa12fccd1c228c4668f688976a5094a00b6e30694ab2e017cdc2d4315a381bbe84ee58340cd6bc6fb225ddc2bf8dc117ce2be59993e5a521f5296126f290d10097bb2b9f171ff3f5de8a5047e76a15594c3caddc7c0caa852b8aff91f435d3f039d3f27963c357691e9c9ee543f32a77691f8b8ad98d711f8191f5c9891f593d8c754b07621a42cd25a2e95c32156a356f7bf71d6a3d1be00c7364741f2eac5d0c5fb3ef93c6339b559c9b2c4f518927fbe1b87d49546d0c9ba801c224a1cca84916aac512fbaef6841f725c72b927b55d920bb9b8df4e89b9b09da7adc24fa3f9834a8a0380bd42f07801e4afac2bc1e852dfe41b0903990289190ddcdcc214a680e0247938a4b54b704bb6f0affe7ce2171ab7e05f8cb96abc352e44e9b9f60f6ceba0ff95703209197657d8228e93dae9a9f478a30700a6cdddb4ad484f963afacb39a3186e94e097fa25ab149c4c438458b24369f62f87159396f37de36fbcdae2acc7b996a90f66c6de64ad905ba6d4508d3c453e7d43ecb7c8692244f3de88c975046189a438f61a1a84e8d0eb11f93dae6c80dee63c2a3ece5b794483d60493a84dfd4d267eaa205ad0b9491e656e267eec42f5d3094982452ca10b420552d684242bb72d651d47e96da49077d73dec8fcbaeda2ace53156bb4d4392e21fe094a2a32d3eb3d4163ab50a8528800464c05cf2db162da56dc13e709844dda7cbae47ef8364c8c3d5fb471f9407bffafef778486c304088801624aa2318433459b4794f4c31ec2cac49d56504602db94a5b882a92b06ba9ea1ac40523fbf4ec1dd473c076d3e397941c821895beeb4b5fd5eef9246ed1ac724a2aeab43c56a6584bffcf4aed0c6629d5a59b719e5d677539c3dd620d861ee7f9c0a5f116a17e4bb3b16a8017e668612c1038b576e39dedaf7d848d02024c0065f1b896ad6594af4477c73544ef51f3e612c80f11150b1f394b9fd899fa6d927535efaafb745133a45442241579e57701399ba23b0ba62a2ef13b5eead46f02d2c5a91fc031e458be09a8b5d53d9843278590bf556e2258b371f14f07cedc213302ecc895e15be2eb0e771e4b1d6d10fffd2ab945dacc52287e8667ecefaf3c959dc5bc18d0d953ce392acaa67e3f457630cf266c7665253c3c04cef5a73aedee0cfd06efc300887d4694dbbb717f2813737d0fae91e434922ea831ae41349e44ed0fe9101309dee68c1337f050e9e16113e8ba47877202b97113b3b876f4333ee620cfe37b69e597162ad40d78f5a7be33ebdb38b9eb84dea68e01de157c7e74f4522836b64d146f719df851b60fe69cea4667daa057bc47a47248fc3073a904239c0f8757cd8aa52e5d837fbc6490a0ffd9a3dfbeed09c24c61e48df0695d8f37f5670aca01a3fbb2a5fd3bd57cf38c453f80f9de428aa0d860b13231c5b2e435905bae792ee21e6104535204f9ab1f90d8c3123e57e2d01b0091ed089b9083438510579190478b86980370bb0170992673394509aea3a64d241b0d5388614282c4172796b00bcb034769bb492c0fdbc88c1a30a040d637a7b9c496f620114546133fed394ab79413268027d5418bd61e6ce3ff18ab83f76ea0a2e5694a48c01931cbd1c4bb02a3515ba3fcedad86e74b2848902089986bca91694dfa712b97c4f2878f287590aca47afb18d1ee6f502b90749f8ca1d796309c5bc96f5899f70fe0b4b5061668e62891b5285546f0dd2176649e5cba2b206953c7b66c57fe2e67c1c6e45682322d82c569c543840722756b7b4c92aa059e59983fcc327833931556346b83d7519b3a6b93691e74af6d26fb61bac9cce2f880d1f194d084171809bef926e99218f664bf18f58585985534281b6008d86f48f8c4044a4e4c89f4f08cee869c6a09b96df42d6435433d247e9e1150ac5b09da7f66d4f2eb0fc7f8f22bf11a0b03c9958f0562030d2c93b1c4a554e86b00f7c2e464aa54fe018bed4578f3ca0ee8644c3537b86da324703e7779fa897fdd4b867f7620e7fad29957f28067524ea180380428995ea333a3f291fdc67f0364cac8683e199a9a85c7caa3cc29db52f84aa0d0d07d5677d74816873e0af727a8555149d41d40a1eeb5944328a23b1be9e55ea81bfe461c86bb1fe3995e9f8dc83a77b06257c6356089bba2bd44e2a7acacf6de34262d22b0f899d0abd705637ad5ed1de2691e498851db106f1bcdada3a2f96908d3774f661fe2e8ec3ec598b936f4dc4d04b80efa4f57f3c55d0ff990b313643a8126aaa14d898e338f5a261ae5bb17b854cb1a87ad626d3b4ee29c567baaf409ad53891f707c148f49ec16f9882db396d1f140ba9e8b0c9a0cddde6592e5e82de0b18dea363e8605ca364aa68ebdc5f3220b810125fc787d339c6a5a68c92cbc64b5d265ce7a03a06a2409a8a18f000691cfbc5b205bcc1926efb589b82a7404d1bedf09e88ad286f7711a6d67ece4bf76fd86556e840d73f353d31b4d1c3dad5e83f72d540c601983cde7171e67b805bdabe3cd6788e30938b0398c1c8cdd5f8f1028f123d2d612611ce15f7637d2d751e59df171a4014efa4e8420bfcdb75b77c63ad1dfde967d4cd44792d1868d6df3c5bb5f1f3617861e24ee6fb58c33e6b82a57b29422dc0c5aafcf0ccf44557ede0e9f7d32be95f4a214524a30d37b85f1783c3e77b7d52e8648afbb9a03435c59d6afc2ed3b6ee434620c0b368ca6337cc7228916c5857d1bef27502014a0798ab099a7d7d9f053175b9e94d4e3736794034bcc92a842edd555dc74e69906a8021430655b3907ff0d5af127c847902c783e5e51bb45a3e4da6bca417774417fe2cd5d8448c5422eb55ebff2a44a378d528ab06419e6ee4ff6608eca6b44b8c71f55faa714bff9727dd3163b090330713d90813375c88b8681d491527f89b87f9433cce8f6dcd83fbf4f00215b3caef344b38ab4bd9bc5e3dcc3624fb60ce34acd7340b14d9ab48df15b1cc839265b791a417f90cd463df719fd69869aafec64df9bf010498e8d6397e1cb696fd68b38ca9ab1faf67b7123ad01781ffce12a3dc2b703cfa73dce16de7c3a09eead7ed6a644f96ae33a4bf179122906c969e99d9d99dc3472de3c48e80be4e9685602b23400bc292ad6f2fd34a2afb87660a010fec11d3ee82c164fb267957b6651d9150cfba16650952f8f8863709bf5644b0e4738c45199824511fae580548c7f655f0bf0bf3102002d80c2b2c3adfdf358f2a38346032120519b31dd906d3e26518b867d1dcb91caa5567976cada346044dc8e7274c0bdc0597556ad059f711868b83b8da5920304d08cdcfd3d5d427287f5b637fb7e2c14253452915fd6c6614f93c3900c6b3469d7bd87e2e5f15629316a7e8d4dc12ac80a89bb8c6ae7238144f82792bd04c2e741beb130c2a5a9caeb09e8f02b1480ad42486d0d8e5229072dc139115493c2c747920ad76391dddfd66feac8744d5662014bce98728b8d00] + +# tcId = 55 +# long private key +msg = 48656c6c6f20776f726c64 +result = invalid +sig = +flags = IncorrectPrivateKeyLength + +[privateKey = 5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a36401c37f701d3534f2b12bb1cf025d76c2e28cf618c0dfe01eaeb99e89244bd9addfb0ea382be7fd5b84fc7a542da6df8018393c1cb4447cd8a57a2a4010ef668c892162120262656660577537620858306877288262032550153645008243057054217885086730253027718543115827673734834021026655848872507780160307120610653807615026121011654045584742242028050076212304644622036857780160574258268153175682380507728864805110378511663401100281288612604554431023467464318607638564716220174250501806756485253788101817760728110332166223400053388866140755703256378713651266251025143727143862156512628830358881868827351366230442135233067730826283313276701663806868606378477354802251542518664580001676813105243524037547434312857600076111675044534078713415665851221862481576565288714147773755146042124737138577158807552174524665527655475711031167755773405268058885826085172715016873355756131635087773263680176517822621475634868037374581758202262826405358827453764185573441285177646637046482664734215076273628557418472536417670624837714315770036225287425417545552835381262180632774576104156422128657852728607634888226030104476341211350275417301320538568576126854705873358535286252876730066607400671077451488287474673781057376755636736300351584316776077034760530472112026628657855477551476720662364873460023778603037564413774656371300714764330504086315152870325575220164151244123320758775702584254563302118684674181206428565763726336522613252227150246387837431861718613367336681068173381155570303618371877421018621034688423711364265326872170560016737288183135386051588605005575601562300482072351276338850813627300827045360182475734107841807172823405464035682762454727085134112788152668335867881603747747886438728275143456437138372534838423544772560485420373145867133245230318456430385001513766856401740560506632507806758013070578760882087560664118431087766457301152570784374156607668135523235127006508001844765168205625675515522851306463808170330288717426340542061017182525753272483381887050415385621873518551456220162640581837416542202384673046227788087360284411017141668004300724058448772845202481185421185106346558106858851458334352156853014853775434371558770778756562750800618155783837362317541122253861613131105617835532140332273154670126080050054821553732466882528661165754206308744168278778886451752026474481361880682130111255183607483727825030054507078150465157304487813686635646518564474314147540677352760104147038338840886546367137471653273322815730234801515416268273212123372142508026803610111663547542260815761245004581623328122653811435308228387031216118038527465681043658728857732880011211842720148824782314800256806645741246087368061875721027666682312103868210735466403846013883051130172662338686665824445442680428744316636068502645333342510762032110182576265825132061332306783484382753165436032405062768011781085432483762467688218557682520377778334416064410850584515378203731655448168158187085814234183301526115577255068758827451712316307151624186053783455822606128666687000188750627024377333667f9ea90a30bf9214ea584ea87d0dcf45fe8c7d03d54e169a64cbb64533f801d4563e1718d439e86f91e421b90b02f63a4d8bd005575dd0badba5388c48e8e3167d1bd314810fc2c529c220c89ef3d1bb549ef3410719e6ccb2e2c359296f20d9b717704b98ec5861d0b74786be357e3368ec11fd0783034abe1d432ae30fa38ea10775686453b73450bac84f76f2b525e6a9b937bae8a593bb3e1d8fa3f33a55c20864923a2274bf766c405e785113e5efb2d572369148be39e03835a05c904866719106c11eceaeb08eb553cda18be3f685a30223a16b09f4516ff5a3a28aabbcadf48a7ed7916227aa6b04ca899e157fd2fb1219671134ed555b9d8c63cf769d5b2277c43689e215dc1886440d25b0d51e42fe94cb5af18b316f7373251598dbbaa2c828fe8f90c3892b65f159b495c7b11c3a315eb1908df603f7264b41281a6f2c7abe75b76c45b9e9dcd563d0215c022a7870ba9a77c2756cf4b9ac44be1e89b8d58108211a89b33ce610abeeab2603a136a2cec9f4a2e3abf1200baedaa33c5ce3c68004a2c9e49399239fa73ca36f9f7c38aa3f5c774e5ebfd38a416411fbf9d6dc424f1d35cc36aca3ab5e57723ced977a4c36f6f2d52f2cdfbbbb60f8e8cbd875047159b83b997837b4ba6914ee408f5c63ea8168d8386ce4be6d58a52c0dcf7e36ce356d0493e79f13832ccfda167e87339881f22d5c04ef3180abb68bf385fd85a91f2bad501f8c11d18b111967f151e75b645fe6c6e9132ea9ebfb96bc015865dedcc03a80b689dd9884ca2b03b9c3c139765b085764290e77b6f98424677315e92f9fb581cb6322ad0a6104f5b99e646e43f40115dcf43304fa3ac29e4ab019dfb5f95b1d15ac6dc7285a77066ffeb17308e8d630fe0c66d63e7fa641de17c0f18814940e4d46855f421894be71bfb4688c74bde7c96748d412b3dd77f702216847cf997b9a6f25ed951b17c4d4939c30b6e1d703a74201bc7a962900dece72a038d69e0679016aa4d198615f37e484c953e773c2d813e74d73da6f291cb7a079c297f240f779ebd15a53e62cab45c98b2645b956e20549504c1edf3b96fd3e2dd50b69e0d8a6af3e286fd8df55f4623b9c5560a7e93e7341262de6c09f1ee74101f5ab2949254caa89f43a268e86a790941e90ba460fef076e7cfb16f33ec06d5fbe61bb8d407f7a14edc7ef1bb61d9130d51559b484f7214018c97a875e87d76f96879d48486193b94553f6386ee0f0581f0e8d4f894b66f7e859f7857e089a76bcc3c7ccfc1c623c9f552579afad69bd87d050a38b860c4d8a5dd9dbeb9dcf2e2a0a21051dbdd3ee12de710cd6ab69ac26c4d97ddf5c503a7f2358995da75953841630e70ace374e03371cb1987259eb2d9fb19e28c5a46bc0e247103f9ded74fc99171a732dcc9836040389b7db854bad92c95e64d383c53324b32287f7dfd582854d218c261f49fb32aa6338d590abe900bd5f75b9db18624ae6b725bb1567226c85f5cbe59663d46e6cec63e1e11db91fecae53cbba9e45ec3f5b1b7750cddb93c41f86eae0f30d760e07980bc7e25f8c333b9153d510e5c1b92b6468a6ba76202e87c73087660adf1145f99dd5742639e034c63f235375f12a07283e2b0547ae90199eae17333c58f5af5e03e9f2e34d3752e763b618045eca78b845253a31005fb886872b30fb1c3949db436853a55753f8e427227fae92e30c3c6ba8c061da52b63410c880ae255df765742821e0236e7c5b582bf922deb404c5f7961557b150eef668b04baf50c3a2d3e21f7b942d4bf9dae3c25bd81a9ae3a0d76fe1ce0998c310cd936597ae1e178f99df6adb7b46c08a909dc51919d12dc2cde5a7d55ebb442f1f58ea53bf92a92a2e13e9917447ec09da24fc7499c5a140754d443e947338d7723c2e89c620a55650c630e63ef3d732b68b79debfce10db8a52d9f325e2c6df03e9ba4604bf928f01ece3f26ce8bca0e152c33172f065869918fdc70866823809a228993ca4282d05cfc1dc40adb514f68e5645fa7ab51109eaa2a16b60097c83beb377b5366fc564ef77ff33daa536d9bf0bdbc8f4c8eb31f1f241ed65a5ec257d0aaa689b7b7dc2b3145381165ba0e3e13860cfeeffbb295f0be75536d2a9d60ab9ddf9c2759d49de5a518c23f43f8fcdaa0e861e3f1bd0ee0fa8b4993516d111b7da0acac70fcbcbb5edd6944cfcc320f7371545ef4f79732bd215ff8db228bbd801609af01cd2aec750e13d573b6941a0dc41eb11aa9c8cc3f734c28738c7337e13754e3a3d5a378918b308fa305719b89632623daaa38c44d740d22e7f3b943acf23a7d9e416bfe75c865a363cbad9066f2b364cabccd7d25d1d4f05474594c5730918e23f2f7df47f04c5ab2a21830ef70d4340399e46deed555b0f1362fc4200ede6cd6b15c4c951bdfa98f3bc69867d884f44d70d2c8c333dbbde59208d29937603777b2fb97d0a9117202f972cb03d0752ef69fc72a4a63d63b889e83d47a190889ec5a2b543ffe04b0f51e232ebc8cd1c42a8412e1e468d9db1c80d69cd41132dbc1ae272ce5f2a53af70836025eebb061db84d10b5700959e1d79fbbcf94e95b82b7f652d8a785b0c347d0dfc74d78acfcb97352dbb69e8e02b2034d3566bd3088d782b01b980c8da9166caffdb68dc0a4ea0b67187ba124058236ff727a4f15b16361168a3816a9b084114443da01ac1ff83e754047a025f42861ed697a799db164d32748b74a3bc5112e7b14c7a7fba184278a4daf17982ca8b30f6325b69f7d6e9b191b6c54766825fdc50d03218c9a00f89c6bb9e0fbee658a68fb40f60a88cf673303326f92909e23672e8aaba8670d16c498cdac10cb7f1942df44890e4ec29be4ee7d1e8d87d42639239a6cc9cef7c70c0aed3057d9204795b3aacd78699422c69b10e77285a51c0241f37ea3cc251bcf8c2c3478344714a6862e2cfd5a16127f2a14b92788fa6f3d9e64525c8afae9d383c09d286be154a4b9d533fe7cea43e7bff797d7247a8cbf9345f1b25fdcd9567363d23b1d4e49d10a228e5f0fb1c4750b406df731daaeeb5b6a02c795e6d9fff553271031ecbdc2c4849fee22ec26fa2cbc5dcf354e7938824949ffd01d5ac45fc71fa7c75de411d023060e79725cd46e6064b5d27056d45687632952a6cf9ffe773559acaf265c9fb92f7fd348cdd21b0334493e5aa92b1012e2067760b6beee9bd3922a436aa2c218f2eab0992b1a654663befbb0559fdb9d6750121128d5cacc8e8bfd6e99d37cb1944f578cfe516a10c584f5833af9a6f895e77a433b5a7c997bb4aca1d5e8fa5aba5f876c49be22e2a200b0ef206655d3a0d440874d117adb20fbea3c4880682480e6ec0ec0df50b64f1222fe0e80524861bd03fe1990a8a014ffa43fd6cd1c0e046fd7be1eb981f9312fa72e3a3259dbe4e71c66318a6573ae1bcea28a37fd2ea38542078150937a2371efc3aab7a7b75d7ad6902f30c5f36e3c271935e96825261ae9340df4f3d2c36c743d08406a] + +# tcId = 56 +# private key with s1 vector out of range +msg = 48656c6c6f20776f726c64 +result = invalid +sig = +flags = InvalidPrivateKey + +[privateKey = 5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364bef2114db20c23e2612e09ff08803f1370dfec0fe7baf7caa0b136307c4c5e28d66131588fd95ef62f045ce5f9fc97fb325a615633cd8b3750e0a59af4ee68b585216212026265666057753762085830687728826203255015364500824305705421788508673025302771854311582767373483402102665584887250778016030712061065380761502612101165404558474224202805007621230464462203685778016057425826815317568238050772886480511037851166340110028128861260455443102346746431860763856471622017425050180675648525378810181776072811033216622340005338886614075570325637871365126625102514372714386215651262883035888186882735136623044213523306773082628331327670166380686860637847735480225154251866458000167681310524352403754743431285760007611167504453407871341566585122186248157656528871414777375514604212473713857715880755217452466552765547571103116775577340526805888582608517271501687335575613163508777326368017651782262147563486803737458175820226282640535882745376418557344128517764663704648266473421507627362855741847253641767062483771431577003622528742541754555283538126218063277457610415642212865785272860763488822603010447634121135027541730132053856857612685470587335853528625287673006660740067107745148828747467378105737675563673630035158431677607703476053047211202662865785547755147672066236487346002377860303756441377465637130071476433050408631515287032557522016415124412332075877570258425456330211868467418120642856576372633652261325222715024638783743186171861336733698106817338115557030361837187742101862103468842371136426532687217056001673728818313538605158860500557560156230048207235127633885081362730082704536018247573410784180717282340546403568276245472708513411278815266833586788160374774788643872827514345643713837253483842354477256048542037314586713324523031845643038500151376685640174056050663250780675801307057876088208756066411843108776645730115257078437415660766813552323512700650800184476516820562567551552285130646380817033028871742634054206101718252575327248338188705041538562187351855145622016264058183741654220238467304622778808736028441101714166800430072405844877284520248118542118510634655810685885145833435215685301485377543437155877077875656275080061815578383736231754112225386161313110561783553214033227315467012608005005482155373246688252866116575420630874416827877888645175202647448136188068213011125518360748372782503005450707815046515730448781368663564651856447431414754067735276010414703833884088654636713747165327332281573023480151541626827321212337214250802680361011166354754226081576124500458162332812265381143530822838703121611803852746568104365872885773288001121184272014882478231480025680664574124608736806187572102766668231210386821073546640384601388305113017266233868666582444544268042874431663606850264533334251076203211018257626582513206133230678348438275316543603240506276801178108543248376246768821855768252037777833441606441085058451537820373165544816815818708581423418330152611557725506875882745171231630715162418605378345582260612866668700018875062702437733366cf5b335379c2528de2db3c7486bee132f92e34b325eb2b474e238581051d098eb8130998a5d0ce7e8ed551a204eb0dec3e53a53025fae317c1d973a27609d5bfc3fdbe6360bd155f107108c4a5971d913a3615b28caa60b7ddc27135a14608d2f43646126402f3f591e175ee4c34f142d7c2332c6ade52ffc31095a5b4e23ed5b63dc4dc9d05496c4bf49b308f526b447e5601d98a3a111c62d349af190cc96275fa4665f1aa379ac393ccab3f5ff0d05ad217bb0a8f69eebc1aedd7dc219668f9742e1e8a2862e620bc60b06ec7700fa9060655a892f183e70f29f6d188d8b1aabc090b8c4ef967d6ea350d65fc02ef4d6f062c3c0421794ec261f42d93d6f12eac55f5803518def6b936c27e1516e547bbed41e86cb23708bd941f0c75d272a1b4c8d09164c99e3330142170c403164419b916f956e80928990ff35b52c5b09f4cb1635d212d912126592f2f73770c759b93bebf89b65d0efcede2d29324c9170a716b93ef99536714b7f5cda111499dbafafd5412efeb291f874f0401f52616fd6eb04ab7d4df4b69322ccdef1a0a5a35cb365d5b0b02d1e5c78a9e1fcf1c02426add4bea769eab6f5ad19358ebe3e6c45603fb5d056ffb4474984b7942ef2c03b3e2b2fd000556ffd1ccfdd874f5628809bd39e396e172b3b1316f77b7e11290a0c584a148ef9575e7de4547a680808a0f09e604b7231e4d627995be092d61141b874fd03da36a8933ce3a1262099097806fe9b9a0fba7b16a0343f3e76e69ae9d91f68963c4b48f9c7bac411600ce4dbf87b295de39bd819dc632fa45e3943810cc231a4b285101797f2b6d4f08ccb33daa67eb92d632eae427c63426664226ded96652d32c9b18c25c421db3b0984aebd8289e248dedc4903297df22783366de4b71cec53c308e394225042017b7f92688204ed6bc8b0c5f34011ae3335079eea47f617563498be1205166bd3a1c7bd8110d9e6503a0dc72fd550de1acf401dcfa212ddb3790bc61f04e4df9fa0112d977779f6dea4333a19749e17bb70ec8a7a18ef4373ef131d89b3f77182fda0c9f98b7a614967a0708938f2288feafd89d19a1f542606874f2eba5a0b7582b5506ec9d907b50dcbe0edf55f32a22ac3a62dc906976ed327d530c67103b5aae417a1d9dbd4538772daec64891b90e913bba087f7b1cfb8dab9a0cb95a19bad82ae6c34102cfb34f783dcb78308509325fcad64d301b59a50f7eb1337b279fd39fbf2062a314d56b1ac8d809997dbc094201a0ba7e46d2c79efef3b2f738c534083edd16c41d2d0fec673c1f15e9c3f996e830ec248f9f27049cb276c59920bf690caa54a8ca5d012a004e1aa12ee181b9df54a2688aeb38a7194b64c4be3adf2392b7ab5fc3de1a29576dc9c70060bbb633d4af5e890c6c6f7567c6cb17cfe14f75d8eaf1a303393b68520d88705b6797a78e991d01735c715d5b93f5231d04b662cd949677385415e210fae274f454cdec9081222cef1defb7818ffd1640d55cfab872718786f26fde1d00ff1192060e5d67769246693eaf49d88f75a9910a83888b40ca630fb3af98d1c1c268dd5e16f7b8e501bfb2fab98129e09439eb3fe7a6356c1c1c3019568a0dd341125536d8006a23003f1557fa1cbede1a78c046bb91b00e3f350019b7995864734c0dbdeca44de7afc847102e270d880b6ea6d01e5903228e7c7ce66ca0e1d94b6cccab8dc3c90ca168ab8a131cd9160b515382f9a667b54365cefd27006f0edb52b8dfc61237cec28e31e3e8aa8e2a1882c13d3910ef0fe61511ff5d230eff4bb990ed7f471cb5351e88d780d74686097c1c32eb8e918fb07242aafbd52f3c584a7f669fbb6d71e01ae12d5f21824bb5fd1e4812d7cb93519f62fb9bb3d7dc2eed33bc85107edb0618fb01bc38ff89f3de70d39a602b2b21413bbb55f1541eb9d4b6a997e10eff77c759e5565353dfbaedc2942053ab72c64c9bcdf22cc3f99d5130fb4b55eada0fe8b69368af8d83282f3bd2a9686b18d0682184b48ee0a0a76b1464a31b37acf8dde3a295a3ab293907fb4dd5a6703c765926e23fc58bedd769d427c1b73e0a6e5d9f21a5df54292187b9d32a2ead8b9f91540efb7e98a390f76c1ef40e9fdf9253193d5318e1092d104a7312ccad9e2fd5c9c5214ea4626d429c389dfc931333181b931e5ea723e34034a0282174ff89130533c1e6284a99f6a01e376cbb79a136cbae3bcba43fdf94616ac206a4deb4ede69a2c126854cf9a7dd351c5290951893ce6bddd3a97faa51f0807693ffaa6ab7c7a1af39883d78b8600651d2709f9c01c73d62750d7d8729fc5b410fecfa3147cd06e8a8e453929e22a1b4e6c3b5909bdb605d1b52a107812f37b0ad7f875162c403600f19f6c9181977d2e1670e7364b8184c5c61508f5c6903925bffe36b605300584e251383c859a72908260ca1a78f611364a80fad6387aa3b71ecfe175a2bb9eb8c4c801eea2a82d90f4a5483e0abe46f541042dcd4157e94e2865993b9fc45f257cffbcfa6228fee327463adab4299143e6b175065cb93cbc21b2ba4efe06dcba5477d4de623b221b435ed0d5100526393e0cd1d1c6b200277ce8f7f020f79e5119f85643d4089217db311d76ed9bb3576b6ac21f118af5c9c5bdeb9487014b5fcef89a14b5f85c3e9416a5d333e7a501199c55f388b157bb89adda91a5bc39d212b3526af5c5e7115c2419d6a92db81b5c8811b16fbb66ff09f52879b4f96aa412d768a53fc11d9651844f5e7ce16bef00da7c2d8a1ec61fa3daffeed9b4d0ec314cace4f38ca12911e9c71f63f4ecb877bed1b95ddc57872ea136d786414038834d9d00929f9c40f0e74273e2fd55d331f1b61370d8a0ef0dd212525158fcd4e0b7e6d8c3f1b367cd6395337c751d35e8d528908d7f92cb7baf384577e9902eba8b2d1c50c440dc18135e6ceaf16093e810725437c8c118c2ea9d09bed3f71a38c95f7baa0822b25f662d0709783ed0e725bdb9ccf936bf66c4a660ee6ef5f9c1a0e0227582a1a304070b286806ba772c8f1fce8ec5eb7a8735e8d15b8261d8852ec913816cfd739475d1412fef0e5a85756385a9626fee1f4927aa227ac930db6ade1da75b6752c1191ed766fe9cee652c0d34f96a5cd596b96da30a841177307d32cf375066c0f56478a3cd87653d13c010793f6912abba2c2bd53c547fb5992ea521f4c59dfe955545aec832833e6a4b51f745b1d6677947bb6492e991a2ba411d74a5e67faac65d8e9f451374987d21f17fe15f99856173760ec4692d52bb1bd51fbeb29302bc09009279272bec9141aa2444ad020ffa416fa35943c423c00261d54770074f78dfd640cade82f9e7280b9c4ec3f8bcbc63a2286b5ede8e21a06b1c251b525d1f41febc0dce86225b0edd6de59d768df541127649759de213d1a84dd0b03eec32006758b069c1e0a21121a15c706263fb3e53d6f37d04c77e35c9fd70541b2d5ad0dcc826c143fcd1076319108007a9dab1d6be5e0ecd59d609058132] + +# tcId = 57 +# private key with s2 vector out of range +msg = 48656c6c6f20776f726c64 +result = invalid +sig = +flags = InvalidPrivateKey + +[privateKey = 66239a16589a522a029a216a75a70a5b1c9c49b6432bff6e4be262d4d999c01d31cec062b9c60b50f394bbeb12d4763ab04d83d9ab3f08e33d37d554cff24048575979ac2e6e7f0514f9a35fa2a883f233fac4b86f1550758ae699cca65f1bd67ece689da47fc9ee9e85d38155f966c03799bb6cfb84e4f62033ef8be2242e7932408022154728203603167521238242353364230840231131005254160344120788857083660860677307328184661267666638880601862538013373717055743172244673222581744564318645268487647648744822181107657700224575058853430771435823763877204630043265416834412157258870070332654331552302568213762268637262867008801821217084532357413540276337416828454777738754614726243574836313011182650413353050340242281384784566827854542526708350663711276625634421783811600336624151588868527246666012701436600340457047714352287518358571324270854251487282433310441753721750336723603720741180674308741406271041706774642452275121276685488818706526802600446656727025650583587812710015638545032327123705888272323147565061337882278550370743027354311135731014805044711236501621412707177440355768371288852635175864013440875037468752876438868432811223511663656780802653611607083240013215610452127068088060675150203475632008021387162747204736830560226033878614000065603182607244627143832225054130633711381122227321416540407136366115730268703071054615715285784184260275660140373786245186018507127737863223013380368820420547741151728723556632131861616740726478661656061566425273445110884547058755872508267723373620280066057624120653788300651603066073865635224244352484606318773605547653728672606008270280735276453780660462317043586002558612567726451130817027005772250815402608374422173285628866288705502645225267320446537653037432846821705650000888813488727065835054656446100872703377120640112743320520611624042610131475885253707086280775714682262477350351765727761323766008758054845403022151314375385205876518704600321776235338834203703661125152435414454240824321336435061782411135353261425058277118344681204575500448378710553438445763504753681020215853063765112814402068831838572270273472221081135086734024067405853377738152308522703205660667452305688786601478430207157830322875031328526785111875001542476182130575450684154613326102174218604106371166783063113673272658570654485204457148261083126527761167424676528131352748632671657666381722472664166454051211324457616882352830512881345322674872414588207352835233551845170272083026635525818643630725625451844187047563466481002253406521472308546874428684758306145451321385854605053765560054787253885833180508167712352167808017137331368544008218685688678200312887258641115002164116588525433272838003582612448378074275306760485141756323744845668324835178162334444741456668210120456736301032046030511685448186102876873542041333388827130288246107660284711662262573311777184721168240586672600736406742733355000733415126854125710813870837667808140286733422622017000211343467075654811231140760847446551763153337342602402005247263367334757842664276583448212857670355080261066438777426633471027657733213460243307014534503654548465421747073103725061336286000543752136483384831425230660187866011065508630556384411877541187044c420186bcbb9bbce24b3b334a4db01dd8644cf8297d8faf526901b4abfb8a2a3a2dbb6a3d8f4776620e46c411299b1f4873c257800105c73dba020921c3775423713d08781bb1e28f17815b096babdf9d73b0f008250efe0a98ca1cad2d21702573b64d6ac94c7c5097349b2aed93420552b64d0db872c9c3daf37d8a203d285022e1261016207c8b3d00e9ed61309bc474de79d3b539e4809f9fc7fc5ee0972723d98e3ca426657e882d182b86939669267cfbd6891eca5eb7739cb2494c8dcaee745d241dedffbc9d4b98a4b4e3c9f49884dc963812addfae226371ef047f59d95d4aef899b992203d5d7724b19638472c34a197ebe03a27d160f123e47cc79da559dce52783decaf3f1490fc30e8263525b474e835f80ecb7ba3c5943222b4ee0e973d5291d8aac57eac7a66e51721335d3907fa7df9e7e7da52e1d006527a7177e4e1a925e7013557489b7332c2836e39fb3431b9d5f1ceb7e52a3fb2acc10dd0d9e98cff6dda9a84c634c9698e22da9f71a9c676956dbe6e74ee97d8a0428a3358a2748af79501ba5043b85e1845f0fa760781a456a75e6d66767ec0c184274fd1bd9a7ef0bc4bfbe29e48f15ab39622e849e534be2bbda0fb4f9f0a4154bd45bc73f065b898e4d0568f26f68d37b9fa40cbfc02ff27afe30f3855ce7605e7c0a9f7e77e364ecc6224c5597ceeed5a419f8221d46225a7785a83d3fedefbe1a232edde5f8960c74ea92c801c8f6ac9962a7e7ac0bd23efc9deb4dc32c5ad46dcdea36fdb952a82503a3d76769a5f725dc8d2386862c766e51dcc1391cf06fcd4b6978bf6624f2238c3b5b9a5f1edf85867d638503081982a6ef6cae373fc8ecdd3d3533cd5489844798d3642285b6f7eb4aea52f78ae27ada40ca3841510e08b651aa3feb9b501702796885696935eca99b55cd44511fb7bfbca18acb075dc0a0b9e0e38ae950eba2a7341b928572cb5fe0d1acc3f2ab6438db5b6133b52b579eceeba54decfb35b83ed721aae6a723e9e5163dfb506cd5e729365cf8ef19c706af7f3c925c9967dd490621fc9a1947c8ee4a14c88bdd77768dedfe546898a4714c4f739092ddcf57f78583deb844f00b13ad052412a2a631f6be48081627631b307daf576ec47eb53f9dfcac6826d214d8b0f38aa5bee277f1f320458d6447fa7ce0d81e0b0bd2662416e1e6a2eecb5ce68a2c91516ccc48c95a7078ec713348e5e84dbc0af4f0a6dcefc0dbcdbc93ee9a2e29c6150f1504edde47ca74ac7d8d415b03592fc0c564c4c1f457b20afb16701d5850532d59f8065943ec5309418a387e8f0acb30aa219d0135f2fe2cc3ac67311a93548012f4d072f2d215b78717bdf049011bf7350aa2d42885b9e1f374a00a988e6220a32cf699a5541642116e58cba9cf00f9c9314554451bdcd04456ca3ce447aeba755276085c42d4d39834b7ce1e411e7f6a84fd374dce1c1febe0647980ed79a4b99e20d285f564ed7f55fd325ada484302a58deb42b874a0caa2ead4dd8d89aa1c81e098905b12d8bb517d28131e7db30aba26ee724d4c102e7a2c253778edcd04afa44a4858484e5acf971a173c6d12dead4ae6c198d5c13fde26893f8c992a3bd1959cb7330442ae56570f9f1ce4fe44bb228dba1ea609c0e2eeeff0f6ab5dc99a79a4c3280160aebca68795106715facbaa3b5c7277c49902074ce52d414c6a210b961ea823e90118ef6f6ec5394cb0a0470fdc759b8465ffd4475771df69eb4ef8df61d02cf3829c0eed9a41dd25f4158611f591f8f7b803b8da6f1faf6100a39ccd683a4aacc4235b2831830ccca9af797dc033f9ae0a10d37b750244fc6c8885b1182148a938bf904dd535d0e15cbd647fd83273035d40b823451c5581539aecd05ff9df528ede8cafd2b5e59a7dac9e6a1cb0e434378fac8fb4a086f52e5c2285983faed929fe841c49a73c8f1da18317a0f9843f0cdd2fe451f28458e1db2d04f08a6d5ade68c63fe68b48f3d34b44ff4d7ae4a4de8a869f439bb511301d02a4929b480612de5f0f69e1d151dd5c845a1a2d080d67ac1b902529600eb7849e77f7dabbd078235b79f4dd6db77bcb75fdf29660bc8c16a4dbd9f609f96e9beb397e3635c604947517599abd47599b1ec95359de45cf039c02fc47c2ca9ace91e42f28b2abd6f02d1332403228a4dac1992febec22cc1afdb77e452a231a7ddb1b09407366081894ee2ae3be1fb14f9f82ef87b8e956831a52ce818e83f77c8f6f100221c6b3bce70d6f813ccdca43a51ba7dd91def8d6a96bf5095dfae7b394bbcd89402ec353aaeaf2ef423bb4ba904c89029d1af9417fa594f6855f465aff28c6d777709a8a120ae09d4ef426fc9ce2d13ce09b192e9e199610b5466dad8c82798c70b62c4eaf1ec5a049825c674e3ad9bebad29ba00e69eadca562b4b5715e2698287d2bba5aa92d0458df530bb9d8ce705a3371c5d5d880faa9d83d227316009a1043d7a9757056d720e8f0c139a4bc48c027f9137a1c0d3fff417318e33ec7c86343a955883f20f4f6bdb8f46b7b551f87b3993c04fcc6ad851a333fb0462892312328be0300be5f581a7d098b1a2cc1dd6d9ff898eab301c9ae2dbed850bd7d44019a161b574e3db71a37d06ddb2edb9977666ddcd34945f493ae5dc5836847ff9a787033e2160fe2ae417d90664279913bbd4156ed5fa47d70dac2e28b6cf079ecc4b1d2f76175c2a1cce7228dfcde7b75954135ce3793664280b3a3d68a3312a24968d5b46cd1f6d65380e902ca730d752d174cca9279c76db46fb7ed0b1ad323581324356164e88692c78111311c4032c43b6ba466ef63a6d41fcdefc24b189ceeb92048f2c5e5b206ebff385b7139d55dc1786159f92d09b466ca15e4e94048e22f919300c7127de01ec95d75d4d57dd1cea6fb7d804a9aabd7c40d4dca9c8e2dbaab96f39fe7de5f37a1c6830f384f58e6feb4533d46548522bfb3a21c64b42dcd11d9dd763a8a3d3cb111080e2bce67a06bfd9b741bafc380c29e91000c41c78355eb18a47c3d1a08d96e39ff3edb5ca7fc2a9e6b723b5c307ed2ba03b5284e31bf7fd457aa9e836eb5898f9aa82342cdf6a41d93a3664258b227ae25aef560e09e944d8afae81055c2301ee271136937b1f277b7dd878a2ec9c9b3f2c417a09954b9c12144ebff38fd67416c5a6854986002ff94c40afe858e12ed490a246a96b0363729b08da4e5af2f00b0d47a17ccee46991713fd9b09ce2fabde796128dd115deaa8d4174950c3ac228056d609336aa80fb53a28da927ec3b2ec194912b283e22ff70a5a0c527a1b5b3c203e04868b186ad9269ed4638f9123e4415534410e78e5c46a41feb215eef167117c204e4c76d020822f33f61ff6a7a91b544b30c4021d42ae7be8e3fd15678c9467dd336b86f24105d3d8a2ec1c76d009c8ae85be0e179bd17cafc930f8109f00ba0d7da7e50bd23b7dbd1bf9fdb87d5b0941b1e34af8274ba7c74e871062b6209ce820dfe70ec6a6d373e4bf7387566d] + +# tcId = 58 +# rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e +flags = ValidSignature,ManySteps + +# tcId = 59 +# expand_a requires 150 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e +flags = ValidSignature,ManySteps + +[privateKey = e5824f0943ad27a943fe7b1d52b8a42f689fedd9c6b8df15a4d9a6484b06c9ccb4260dd40421adc330ecae5aa86fd8ed07c64a4903e6cb7fc1b4430759eb7f08a23b9b392a35a7817c43ea040690a2ba94bcad04be05132c7155e16fdd7d3ae96af2975463450f3b5f4c5c671914ce075a3ed6eb9d669cba93d0c7152e6373d451012815258774802104818782032181222576110521372058845308173772760420548716607536151376324557213333320701143807124234027545467765418585561717106604145250036868846674617220101203538835574378688882612050484617285663033361651535522756311478713444875812020762661563706776873503358153427214746435060281783627378658740724533560027763043823701568230442858284685805884466407024528223701488288403860405178848857062181260033548467183643180238866388770480515787745237658463668810313300337815668561582430451566678454832064558021127141758760165276170285342520372530261026137120353108485711306236358680724750770322341778007017220011815023320811340032543285500252364331381780803675717316281121746072038313618276133562372568824204448650813102122018147735054273110074766438864023073853035407723571450356068521147441856506184266043481201428012345627750231542661547343634888641840123782424672326541737703827342735283850341734244083825134768877671555212058115626177037543077055707520322084114412451538635812786042776323362773486100062013562256858716773468017638567435020345888566385304270368342657731083162623256021420564778813447786577344326274634778624737477770003408881580313508628038204831801677805308246075757672020044670155282082108254760180081533442680483812420248330816540871242422282510047233125106843517454883476106030514858707328106202714420116344002163383705815080084864810478317101855175063487011314744438218270062001541548383531636644745465620521667827673304162854773628882278436815736344402468761111613623871223626323865573113057668751875051465662141685372220684087435713022442845156563625332614265834643341467081861431274480243783355808774268150803341126823122835751221866401323626116840603048774354426586880407350801871768353452384365871466736877372608505067357244522452772553183243775610742655510145221276201880137332235881040242852254842422002411737185100802763224434760276460423710704761242257371274067400223611230782152081027588542408670476357531348740475413127810203225531363412764242337750350173134268075738452014862572850581786376630317813714473601611273228312028488531166030868464303711217355615287856305732164238488161878357547553263243435110860353606057084038724613605028025848603345568873032411303164237185267041565817400712103460304211230816851002145563020836871024328312316010363282055514523574120777717734748437742632702830311583303624402381684532214300781457014177534883678877730856140683647670662843446801884547600405422222120661186262112614272656737246704238338011438426876273706208073031800277416668884738515700452768551267207043053748178455125050277115166564471838446324582510438240714187482806776016174500007300810585327550010780642271335316272404746617421171204347582182412887873472305235308361845780026168403105754147238756635505075036437515102733383017761447680861870406871422873075655657063733314f9f8efbe9792f57bebeedc85431c414854353f4d58d067b001fea0217a44d2e932047507d0323786274544eb8d5e4193066bd2c72d618e17962355ee1cd81109df26107daaa03f7da48bcd43408ded528e1dab4a28ce5b5264293784dd6490eef07be4e28063350906400d6254fe0f9e3c66549fa2728afd1b5e0386567450c5d1914aeea01024237db89fe746a9e317620cd38eed41aab5f701bec916baf97860ea93b3a2502a756567d65b45f67ede699d9b2c3759b66595efaa8a9fb6f63b833e0eb1e6fdc01f362a754301a4c0f3606789185db0972b40b4fe715d9da8719e3695b6cb22599d35aa8964877f30d8eb88320cc897dca1ccb9f905233df81f07a81e74fabecc5636a567dc17ed89a0cec013f8bce3d5e8f5471913e8b8732dd74def638a9e1b16102aa31f1f7266743d07610c9a9c533dfc6f12ab70d9c2d5315933283152cf23dd17d0f96c4ab926a389f6574ccdd0ec8c2c08b049e4bacb068b08ac8126f1028a4c3ccbf4a35f10c9a57cf8be2048b567bffba8c5b80b1035984da19d4ad19640eeeae659872716c9f7cbaa89342c20883744c28e4d56ca306f2b9debed64c5743965708e646c95b09fa1e9b06dbb4a5be1ab1c837e828011eb51995a2105f59177c92bcdfed577f77c6a59f02f6dc5d3d7625a958e09384b4633221c524a58bbd3ddf134e8e4efa36dc9956a8429a021725e12393726ba35d7ad0825ca2c30ee6fbd1537428cbc31b250fb30111e2c4c81cd9d2796b4bd018ecc9335a85f50c620c694a51c408007f6a6aadcc7f43ab905e5ab00c782c35a0dae30602c6d34869468347e462a896a35b768e39c1fc3209225d4b162c3e42879919a71d1c2833b1549f555ac7ddc246c0a88ed5b52b6793d2dc9697018d4c54dbfde90d436c01b33d8a066315592a324a962447fd4e90a8e00ff69a819c5d0b41c954f6a41e5483aecffaf697b05312f3556596fdd5378df17200a39da32491db60882160ef97ce8410a9e93a5a1a26b1effcdbe78647e510503deb01f4bd6a8c16f922884341ebe74ad349f9541a58ed9af994ffab99a21d5ef869135f58a5fbcbdb7cdd0f23b65adfeb80cb3f73a76fa24ba1cb49e72c402e229deb40ce06cec72cd868200f2aa1087f97364f4642b8eeeb803a0d954c0faa98275ecb2959e56ef06f34a78aecdc1d28d996d859bbb3e74f6dd8534b3e2cfbbfa8243153e3c34288e6a81b8733f3de28f4602288cc44661f16ea50ceab3a856768f2d8f01f3bc937b815b28111c3e3e9b25fc40334f77b6f792fbf376c8fa07dafe49ce34f860edda2466cfdeba5c924a9e338bc3241e4ed5186a6d5c20ab6e138ade20e36dd704fd4ef552addfbff8548c6fcb37bff1a704df1196c411fdd023e7884b35d650baa32fb0a1c3f07b16cb131989748dc5bad23c97dc7ef2f55009bc14de1ae5ced75347c565f870d35dbfcf59e6d951b6097d644b4692d5b50b3ae1c1c6e912c4279860c4449420770aab6e3da9c0873c086cb97eefbb563f76ed441ce6439e3d87791d124a27c39f0ed0d2c6a8bfc5a03c86729e8ab52ce5b9572efce4b1cb4d581ebf5c4158ec8fb053e5e409d40f35abb914cc96ead3ffcb4180fbe86b3ffd6aa0f828def3b68c60e8e2d4c2631296089cb619a00cea98c81b2583a0e7e92c3055a9b9b0f699e7ddafafc8ddb078ee65b8492e343ab382cdae6581180b39a057b77bbba9f44ec740934a7d446d147623dc1f2f2ab27f1374147cbd765db2c2adddae0bf850ab31b5d1133ec4d6774f05fbfd6f766f6b12b1f201866474ca80fe46bf6e7e3122f302271f57ca2f14570cb8d0662592723d319fd7352719fa336ac7d8782e59230030f22c30d56a7fb1b361643111c862fbb5bc852a5ef811f7e8f3227e4807edb6276732c4348e39067e5df837828392c24bf36fd4dc1036cc8b06fcfebb0d4e73f2d4e89b1e32fea207ee01697e4ee62a02ac655b67c97487c36d4c2ca654c248be72ab71a65fb12f08fc71000e6d0e650cac3a1bcf07b204ba8f357029866760acbdf5b42ee5690d39b3b2c1e7c1a2bbc7dbb70fce180ab62fd62aff6309325f6069a534fba987ab2e039a0050472d5924f268007f0bdff48bdbde8725398c01b7587c0e082213a4c30a9fc8398b8af32ea30a89fe6bd436a795729f8a1c3389837785b0b46f7e21a4376ad6e7fa8d2016a79fe195cc544a4bd3661d49c7213b7b0832e53d2c0e3aaa8b33e2aa0076a4e107adaebfe64c04ce84fce23c0926364b2d1cfcdffb16539c9f8667086cdbb23e28588b9ab32b69bd989baf33707151b85db559a1baef3ea8bf0cbc20053afd6a1ec63cfa2217799ae0ff2099914fe4d3e2cf05797ab870acabd02bce7b93685246784f8ebf1065eefca1336e83fea5f2f0c58b3ea0aa2e5e46ee852a5ad6bfcb37447a386d2ed84e696c61ccf3eb373801c91f49973ef5c935b41a236c85537faa40716d68ae85e5362391d8ae2b10a5151272427551830c9a66c4f0958952d85e43f3fba2c746bdcd6dff7c9f8c0c732286d3922b2984152c83698767df04d4465b019c52e4d4568044e82a6d9d20e00ede010426ba3588b2b7e5c1d45ac48151743c6f274fe5888e12ad42faf7b796b04bc9918b751226d89f8ee430ee6feceeabe2bbc428cf2f9923269ae8a6c2c6a207105074f9cbff53cd307325bab0351963e49e1d6c6ff2bebde85c70e2569af5eec09db157c561210c07c94d291d137132fbaf3da1225ebad7bc7ea02420676a76b0d63227ec5e3ef5162391ef6ecad28012f5b89ddf96a8bb53315fbacfd408d99b1d927e1bf4cedefd8f6ea85c89eaefeb5ee387e842b7951cf2935d195556f2ab48756e8a77b0cd2f376d4f4b8a2afa724b56bc15aa60053d1e3df77f1ccfa4771b753fdc448d646e313b09dd3fe31f8fe15cbed8f8ab84b75389257494bea82cce6b9f41ebf0b9eaa8e9e5461e6b3a24d346c188d6b087949b9c526c98f2f314ce9fc0aeab8a0686b58625342635474ed54e52c73585dc06f360f1f27e61494e00001cba5da933316676d096b55a5c089388f05d404302a76f8ef124df24b243cfc911fac002794af0d32c698fc7cb58804444a3e7b4c6cbd608ff1de58649f0f62e28e9dd4c23eefcf97fff133a7ded92027ced2fb296535ba930b4048da555747b7535373980008183b5c37d6d47fe174573a015e91f94ac4d84ca237b6f85952065dc30eacbcb3da5db071ee2c0bab09d2ecd30a5b7af7dc1ce099973c2c36024a9bd0c1d2b4761b4fad24db8aa65710ccd09438bddfc50507644afbd0a1cda31c997cbadc9f4eb1b65c3ee7898377fc9411ef4c5091988801f09c17e20db8dcd47fc71f52d84d8285359f17584c1c3cee0bc7eec378c22ed7bc7275bb560fd74d076cfb7ee0de5d3a5deea24c1f4abf7ec4ed3acff17b6cd7486cf0f0875d064ce2def61a81167a1682b729b7c1e1202e91702138cd9b4311c19e30894d37da3d88b80d25c87b716bd87c5998ab1d1] + +# tcId = 60 +# rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = ade7527bcb0a6ffe2a2cf114e9d49d1907ef13a2eb3973f643043ac1dc03f88dceeb4217afee1203f3fdac54a13b6c44516c812e4818750e40612256faa649cca43f8a9aa4995b79af4ffa93c4478a0fb4b112deec6a100baa0c6270a00922c6fb38102ecc10df9ba0ab82c2aec27d546d8743d40ce9593e1c067c863b4732eb256be88f9329a2a105d7f4f9f8980a7bbc1fd2b8aa50c3cb8b15bd4d58ad2cd9182f6550d786d600da563537ba5afc711077afcf5f2ad27bcc885548def9c1865175aaf059dce6d3a623e3d40b1ce011e5440679a7567d0ebadb76b28fd9976f8245d2cc6b5b11789a5fd234136d8898f38fa54ab8587561c469c0cc60b03ddef90725bec23e7478942df433c1faeddbed06794d8e7e983a622b8602d245c7245e9b380301321488f904a99ee31dfa6c0c2418282954a2a8dd115d599f7d52a6a04d4f91b79d4aee5c9af7387faa55a37610355fbcc266050ea6912b81776746ec3c531c36bfe326d1976047ee7ace40e88e660bd25c69892cbc26da809cbd0b806808e19931e1d50a448f1f62b08269ce7d6ff3274cb88f6ed76dfe397307211924a23cc655474b174e8112be1b5ddd7f9639f4d22dbdf6ea48ac79767e605a733c2b4cffe2fd776fc7e16df770f6d69b527799f0e484862e298b8b82b3a811d5fa347bc9def3909ffb0cbede310f0ebfe1f89c1aa09301cfbfd3ecdea8e015df52bada77ae6eb3e4f1ef4b0b7197ac7b3348cdc6f27f95f6aee2827d954127c181945ebe05e564147a71a9abdebbffba31ac4db2d8dc7b630f48c3e2b2ee984f3518381b4db2129ecd17df588e27f5a4436b1314d4e9f3c50a10849db95e899a76bc9af091a61b1d0dd35ad75f33d33eaa1bcc1f3144320a7525cff7d4ecb2fafc8d4f6fa59ec642b847281e6e44ec3adcc67e4b10d01bec2d20fadd2d446aa9621937d51fd0cbd3e56a71eab9ab742f5db52510b0816916aa1efe1f16e97052abc39ec48e3ad2f0876eb9492f9249b20143cc62285488ed5d966292141157195c8a9d7b8082809aa0efa78279824f64c6221534fe517d18ccfd2a85482e716a043e582e8e95f03536026e98b49d6db3f78576b8f91a5107ef4f4a788a9b36d97e4baab8f9a32292a74099af38d79f45383664a41c0894044fcdbfff9677bfca7fb2b405d492a8534540e5310367a5192dd482359777e1419fb29a5ceb06d0ecee0723ea2f54dc9969e343876beb41ff8cb40a40664112852bb95c5a40c96afa5751a77a958c461a6d0e9a645f6577d624fc74f31a312ff6d2c8e3f5c7bcefd0d71e2950bdd5da7a5bc7ddae856f9d30ea9784d68293911421433f3fe963f70883ad6fa692b1aa6f01060340fadc0980c07111b0c829bf7d551d8557b7e211ac05c9657d1903078cb59f22be709db3fd9ac7bd37ece1e88f6cfd7b56af127e9e2ff57c46b9e27d2dae1a484845d873c8467be6c0c7bd1ac5bf860f2771fc2767b53d0132aa6c70990813238ecc663e4eaed069554fc35d91b8e826a239f87638e13a3ce82ee87f1283c2f64ee7d715fbaf03481df6754750212f941d159553296a11c3e5e99b23442a6052a1d13b433f74b04aa18cf5100fd2ffbd66088ec58c1d5799427d6787f7fa732d665de840bfceba5b78b6ceb6a42b5916cf8be83eaf5fbda9a4c92d3b3bde73321c1ebe7783a2f8c043647a8f59a2079f9e99466eb426dd9110c0ec36081019aba4d2421ba45d1f83ca4bd7c44b319557134ac8b973949e1b399b89f722d7e189deee7e3a738e760b1c097a7768af06d0f22de67bda64ad171dd8743cf72006d5fcc4f0862f4f5d8929bfe80ac40b0d82aecde6547ccc37f7c0427262acb1dc7af40147336af8b075df1cced5b01fc423906fe0416b89c07ffe69e9cec79a3221cd60726fe3e7a921779ed24453bbc286280ef05fe39557b1b529ee10ca0a3e54c7f03abacf589541eb02fb1d4e83db8da5fece911f19f1b8644fdc470c4d7995aa4858e462b288d61ae8f81b9cd39257e593467252cc77d77718eb705d332fd6e4d61c761da7aee85667f39e601f7b14dd7fcdc4a70e6aab78c7e429b9ad43fe959221eeb53a220899e3f632cc50db8632be08385bb79466e63ce406826ed24d5daa9dfd91ef0650086e8f67ec03e11e57ce0df35a87e36363731d5e6a129c974574c28c032492fc2fe450ff6df857aa2d34f88d740026c5dc69866e1818c6ffeca589da202db3243652d092f670b173b66e845ff249e0b69237cf6d73a8d7b6e3cb3c604dc9c1f08c543a3d532373c482a08b957fd77b78779742f7f180bdc41510a5c469afba4d656ef633540c4d55f3a08de2bb3aa13dbf72454bfa02cc15f900c9909983bcb89f465bc7eb9a9aba456c588cf0ac9689a313ca4891de90921eaec7a6ed5ac7271434772234d889382b32c6cfdfcb2aa6c4d76104ecfc3bb71945f54a707cd4851c7f502680c9f74a2ff6475c10728e843e6668f95f7f25b3b63eafa8586518819cddc9f13d7d721f00e4843ff9d6b00878b024a9368028bedcedb0f8ba9f75ba837bdf23c93d4a3257de45ba05995996821c862cd3c360bd39ef1c05ef3d64f3597688dafac2418f40bf97be693099854a05ab906a94640a395e1aec6abe7a91996896276b58a1fd55d8d2645ba1901f4514bb8af173e5e95bcb4b635ec2445e4b6205f711ab0cfbc3f8fbf8bfec533f746fd7acedf11b4a66f371a02f42d1f8f7c36a4bf5f100cfc665361a1d4e3b6cf3f1b51ce6df7543fc026d7015fb973f8921384fb921b219b7d59916168eb0d8db1150201941ebb608a9a34ac99df89371971f3921873041df22274e23ba378dbb14a1d67b865101fed96dd037492b7b73f0c8f2155f6b07de6dee4365065f71f9af7cfa7904e9ef5b6a417bb19c0edf5a58d90ac15d536df091e1e735ce641c7977e83455f0d4bfbce191f71c139a02ad09da5a71669a845986e5cd81903bc2fcf87667a77511271a22e400ee8518348357e594d94c0b9c80b738464393eb314c8eb9cacd422ad674b6bb3e86488850663a4ce9b996124515acb2b941db207ab42b2178e88838aefbe786d031e10409d0dde8a46e1f10afa41952adb8eca07f1785b7682ec2eaecf58cc5d2d6d8e41c86bb6190c316798b5f7bfcda275c61c3e65da4caa99dded9552e677bc97e9804878077af17b23430c7de12bd6f6ce103d8c79bbc761b94a0e98560c442370fae8b13e73fed4c6332d74ae4fadaf025ba3a3e3b91ca42be7ca07c84adf1c18e9d844c2256b2afe65354c55e7ac3bbc4c3700381ecf945bd57b4fd85cefde464cef8fd7ede5e16d83f770a20db982ff5632631d1251b00d443b0a8449dcbddc5bcc0b2a531a1487383b0782e3c42298c30202ff5f0cd0120cf8379a7629ee913c7d6feef0b230801c1eecf65a41fdf10297a9d11d9af6d275b2546246313ea3146f62e842b98cfa63f635673f76fdfa974f1c4b9a9f7180f5fd821c5cbc06ecae488f47b1a16d6300b556ffa37d22a039e884bac33031682e30a4f37ed4a20929070f68678cfa7ddf07e85af564281e4661ea8f6f5e7adf61d0faac9fdfeb743f46321d715bf5c1a0d3dbd73f6b694d0d54733f0777e10277b5166655baae53d50bb6ff5dfdd6a8314be5511c82eef8714aa3b6f9e0001085a980f7f9b4d7a647a0255b985706e7f2a40124a61dd8cc75b23957d377be6fb791e9b2eed408cba754ad47543a788a1c86d513d13e805c0c516d0d2d7d7227a84d3fc7dbbb12b346b4f14cfcb1b46c562fa08d5ef181de0232792171a29682d12fe7aa49d3056b475df44311dbe4bb05f6d139eaa69d63754e82ee1fa8fb2c943589952fb05dc8a3566c5fc6ffbb135badf57ebc8c97c90ed22ab381960a54d9c4815744c144e270180d09c1afd13db0aa5dd2849c8ab710a5deda647a1f2ea7488ad56baddddc131711b0eabc2a954a551d4e488c339afd7b50d0fac25eb3f3b1d0a81db4678202954886a2863e50232a5e8eb82ce53c72f0566841ca10c724621cd1322b80b776091e31868bccc5785254adaa93c3dde4bffe7e3fbc520fcde4247e2dda42dccedd33be150140a1d669ca760d2cf52222f042a518a0486dfe716d76dfd363573eb2d012dee8b23cad281c6f85f013cb16a8543433ad75afec14d50585ca6077e6a44b2ecbb7c70d19dd42114c5f5391c193b5fa492848e48760f3e858a2f3521fa0c8ccee73d4d7a051b7bac09d8e91f8355f591f8555f1b93dfc673e61cebc9a7bf1327baaac3fea44ce49e958820e593695b06574feb493fea7bcd7464747ae2f16c0648ed9f285d72e82e5c178a1de77f918681a5161333e5612167fc70c585da49d32cee28ef9905efade611117a76279fc791416ad88c723f289d116917e1a9931cb3f8b8b0bcce64cab7006a793340c369b9011700e352b358fdc9798e2c7c67d4891a1d900c9d84aa435481c62d2919f360b4fbab4e2424dc11bcafe70fa94926bd07f9ffeb3d3b8411d9d87193d04f39142db168d435ec83bd3c3d0f8da76694c6c770eff8fd9588a369e3e299b37e221bb48d382ea44cacd11021597fabb4cb050a1b9baacd7e8c99f96674d3192b565f010e27747b9cc1d8dafb000000000000000000000000000000000000000000070d11141822 +flags = ValidSignature,ManySteps + +[privateKey = 622db4b1c15f5f5ee55e9911432b2a58caa5bd242a6f38a9e2d9cac83db4a399fc94ca5d6fff34ca2c1eb264a8be077fd7e48d4bb44b949da6b62cd97b788d2bb153a3a828fa3efff0d53812c84162457cec551bee54a4895245cc4364ac4823d46beac7a135c4c5caf8ceeae6d23d5566d5e13aab6a5d08b79e7376e7b5de3a08321152654664101634844151418486040318702077383314580613541362112311736244144036484110654530465000146107100564774678380202161885863125418726547760562870582781538258462410447121724352818616366527871141247024801205466712365713408752234680842058064884801783175570286407561031278867203542882383865870723050782312376326678705880502887818702814010741507614880263720502812860575462700680844510622802276671823287332662371580363433471725201642785025385155682130432827440816706532778488068583030887744652505232175081748322425634732662742362872164865521440287076416434780563358728380115876741352704836054534067857332346416620115082555311286554334006025434381052645514412538731846713122038303108167628626102157538734505638132373378323187330267034882757103320311238103124662504824033670656706621575181402172325844225422218253243002741770227864737235557543748825228263335667764166481504512530501513258873788812217847213415422232272712654175681614638213678765835184341476413172407788071117602887320867583812177226375510225488208581216335247624760640580038342253458485378871532420710208340256107348162532143354713554234454511804610886215246240423674341220722807268272574714854157737020573203736506008755485130353327367465663547336304871243875306517114168842627870754471801003805308312083088752583312446001277851027374582156531817586485000250215800708127627211505068347023526110837737511036238283245575662712387584066475661261847675650363887551237323761660716130272031483003378853700342154720335263160870854185286341388833332280625578758806215173128683088001246834752215572378405357710488183827388231330078345677625301488213657710771365474204550530478244381427747514184788504556881553154457275613682204221782566517410352634135622538312413588762072478647710573808231323470571682384724726318417303544318047044210485122008625078017014582468036753831818202880561508455812420133735306841500146564303348357702311777081400234537050086442006710511822581061557641802027172678601117704852670042122642532515057788558632775468781844800027367367800748615875717287224516564015307171001250218682511605542587522181356125680258482676447374450235015418756406768875243576777648477245884874244245418882656314337562348704424171513334852845861380540416300364586756573412732761616135653118277434708784222444700477483165374640426703086004756364532878886822828328712557340376334043487250868461212504670456468383710861761564515751840580532871448510566162802475667801534271150022580467056776043115617168333670862584252151753117541667107434163087436547257872074774262066168880573186462164028557747373346670327518823453168616336801501207442086328014346253643632106487403363037284858500543184643373716138360652372642337328651817705728585226415888745377507760017241628540267408730063075340605061675502707848603662745220370573105644783770300713661715527706362531002143f752f440f8f64f17a6eb31783165c2bbd65b3c6201404e1682bb5d14df702e01935806a69ac8dadce911f8b7c0a97f657cb4f48481a9b5a1b7539ab40dc42ac45366e97503a78208a9125cdb5329fdbe79da89f1646ca2ffb85e35259452c09ed9e4ee6bd8ad6fd73ac51756bace3b612166819aaebb16acd2aeca3da41a953027b8abf0914ccd739e56dea03bf52a57af587401b9f37c577e426c6ba9f87b26a7161c209880270ac01de7a7d7eb272280b89b877c1d11bc207015e23c404f4ed1385ce3f47daa9ed82398069e6022d939d3a52c03894010bec08a3860bb6647fe895eac0b4881da6c50a906d92adaeae9a49d7b1b90d4b7ded0e9100aefea8b88ca84628310cfffeb907bfa3108b5a2cd2328beacb5ee6df693acc1ecb47ad9b2e6edac8d2ca06423a77f2d6b2f318b798fa77544d6aa11e4b71541cd251dd47db6a069908ec5d400d3f32e7c45366af18d05442d6e9285f27a9f1930281e899415f112f62fdc82f9f919330bd01f34ad4402b862208d0c6e84a09c5a14c79a1c43976aeafcde7c9eeb96bb661642816eba09293ff8586e8d8f04a8677c59d2368d9654dd488b005ddfb97128e0b937610e996d2528f92566d9e272e8b6a0f38d1d3ee2186c1896676229e3dbbc30cf5f1fa40ccdc3f7972ef4ec6a8534b82310af9ae21116eacf14939cf211a25d307a4511a635f04ed2c320b638fe706a367a8eeb8472d2e9061bfbd008b05348bfe30882b8affb4b291a69913da0a82afc5da831ad9565321ce8a8a3a9f60eb2b303cacd960254d245630d04d24fb451f21e57ca5ad1842744e0693448735ad64a7efac548e9a82b497a92112623b0163897d79fb35db66c7c20dbeb4556fed79bf7c44984c7d9c0dd042c6a5da3c71107be4bf15c147658e13bbc6591bbe4a578122e1594563aececfe1e68d36bfe10db96a28d12ad83d96344533d757a8359dfc56f4844768d5c6c44229a72e74ed1812429719fc42a2cf91b4cf04687c0a8f0d9357633732416ab19f57c2c3da93a94ae4f49823cc74171e20d6ca2f2c1f03560836c79965e70e3749485078bdbfb2d133965dc609ee360cbce2d702a0ccce01d98a8b472116a123d75801de284553f6bf7393bcca84f113ca41b5fb403d86af5ec5cb5eafba3320782e80e2fffbfd3ef2333bf615a28f26df1c31d8319b36b28cc955d8309a611786ab3c8ca76899a79f42aaa1dcfad54efec7b827e7650a66bd9136cbe991bd195da7306274fb202a6ade4a46d68ceec54e4c67a082614374e990254339c9619bf55cbd9b244018cd307ff0d3c875e474e18178c99c8ef09d1e1817c8303fe897a4dc95083800978c9f0963ac58fba8cdc2638144a369e42ac00ba55e0193dbfe5bb614022373fcfa219ba9667ea123db95f95c065bc74b2f244e70448b9bdac4d2531ddc022d5b1bcdd7c7dbd8b5d49db7021b46991e5b03c0bea10f16b77a3904731b8be51c18d4e2188db04333b256ec989471594e7037a964aaf6d5606b9239f31f4231b5fcd3c2d293749a38f077642a877fb51bbbe4ae9a91afd81639c990508fb1efa2b5d89fa9cb4f77c7dceb7c3be1141f385e120cee045436ce16a46bb2bf006e380331ab3362be12367ee52aec3c46a52d021a2e845827f85d7e5e77e2110bcc59b950e31e02ea8334e77d2912cd16b36b2c5d90adebd50330a4d384143189e781999cb9083b416d17b4606684fd9aa1e9bb3dc07057789472114b2f74c64c6ab035b2f33eae9fda8ecb6ee0c8983e4494d8c4e75a9008dd37a0baae7196e27501fe7c69f6301e7668782af8ee6032b6fd29db4fdafe4620324f9085a241c4db87698c271159de2633603fa38ad842029cc15b7db35f399ff59523d9fbc277e836a499e59d9094526ba02fc6ff22dea61f0a389fd0308dd575092edcdc0e289d37ecc5d4ffe24aae42906fa48beeec41c38f728c23a302b1eb7376224b5db129b99485aed5a8a6aca7b50340dcb1413a3716ff28ca6998055e2e49b0e2fdf7843c98d75b768e294fe45c988df13a7ac87685228cc6f19356b67cc982ca4a4f5ae95432bef5f960a95aebb9368ec5db0e4fbaed484b6455cde520c9a078605b6962c89d46ce78e449c1e9a027cb0387f9ce7e05e6e1b326bbb4715cc4815c3808131c05eda191960a4a2b05717fddc3e27943dc63f27a5080cd10ad10d85a69af5b9b57d99e6a709f0238c500bb2f4cdbcd608120996d6f847fdd480f5392f94e5c48e558e8c8b041cd24a57ba3f8deaff334e5ef525636a154e9bda59040e7564ff69d5b3b402bc3334b8b38eefe9a7337198e5e9fc66ecc44bff0cec7b19cf60208ee7d435e730526eaf23c801d30a3d1643b95eb594f8212d3ff4bae7798799323e3198bfe16829e8fe18fcb25670d0b17d906b7ba76247bb63f311d1da6de449589ec087378f65be84f473237ac488434f43a4437688ce76bfca835efc7795abdd95986c06e1fa657a4507dc54025712f7f871eb63d1e31ccb0a321724350bc5894bbde84fdb4cbfa1c48cd5ca85b2451f5ae3c0ed0029dda5816009dc3a16113c6a6938fc11afea12edde0b2c40c43e703a2a56cc68018a0ea4837b9299fbf6ef192ff25648ef43ff256e9e648f89a8542b3c96dd228c98a0135c3ae7f932728c06fc332d3d8bbf5f3412fbc0c3fbc9994852b6563a779fbe0ccec57ff699729ac7337141c770931311483828231ac3325e61773c216e991d5bfde3e18556663ea29bcb090f635619dd6ba46fd379de5250cc402709f3ca4eb819f763d3a4f34b27031feaddac62da81024714e86e9d3c9d2c9d0376c937b07da53811153cf8e163fed589e57780e17b0b04f5a7299d5cf95c962445499e396bd55da8d77dbf7f4e14f36d5c5fb9dd4d4aa59aae5de006dfa25678d1a2892893fac464b1d1adff65de61b3cbb02991829bcbc4bb6d6ea4902b0eaa86260fc673a248f514c00d5074aadecdcfa7f5af1a311004a786cd0f8b17b803bda2fba72f5462328a1b256a767a819e49a4723df19fae33a0e7918ae270f836d01d3cd0af1509bbd293f2072707187318c41d489471faa9930ad83ea60f0b5a2dc325147355a85bf88ef102666726fce670d9d5c85ccd15e5194016005a99576e00561e8945d4ba3a7bdebaf9d7f6ca67292f3979129b402d1bab4d1c786be3b45e8efa9864636ee6b9675fc979fa2e0e6f3d77cec074b9f325d2bba5d2f7e4592708e5bcf95aff655dff90adfc4556404ad92cdc952b96a52fc9ecb64fd209ffcb22744b75d42f6e6118d09b0860c279f306b584e58612a58e396c0fe75d0f50eaa5d18cd9621663c4d1162ce71a528d0eee887b648d28e46c4815c4aba7fcfadb6c2d84554c40bdd7835faf7939ab407f30a17846180631168af13fc59865cfc65ac0cd1afd6edb50c364c319962594ae073ab1974cd3afd15cf059f669c60e7d13fb1cd98bbf44e0841b2ac47114605c00229872ec46a594d047e689c63efe0713dd138f9f4b12ce9] + +# tcId = 61 +# expand_a requires 23103 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = 8f46c68b4cdf1ec20f57a26aede6e7fa768ffe1caf2ad14dddb070af1bffcdf53e996a4c5f009b21400f21a51b90ec6d5dba942d359af0a5feebc18315dc85dd4b5b7f4bf0c1298a6b38472cb7adeedbba5367a7bb86776f2405c665f2d1c77ec94f9ed7ed3f0e025c46b158ff66fb62fe7220ffd466da07b099f4e32b7be99b39bfce7cb526f0c1aef67b63c04e21fb93c0fd44d3cbd1edf4c437af20e917d7859be5398fad2ac8bf6c422a3674c2924d01ecaca88bde6b02a92d4ca31f559075a78a011f1ff334f8d33ee27ca9a27202bb1d045c15607202fea700f737cc5db44efa4448f469c07c5c690eb5d244dd7279fdd7a5cee75c2234d176c9a1aeb337803a432c563443610a646335e1a08e26baa26cd52d836e1c3309211b071d552ab3daeb0e8bc42fbb4d5877fb3814da62306313474d5e86ed9808dcc6f0c302b2f9811fc18eda56d9e3c44fc01940510fd2ed83b85300b69170290bd07596f79fad3ede82a6b8b47f31dd7e8a04705dcaa44caa717bcfa288d2662b2ba98d3aaf930a9aaa59389e5d153a4d5692dd92c5189136ee81934b81b7da6ab8c4c1d0b80efd312be2344153cb03395eec9c808a7be202ff4f51ff0021fe30c9f7be4d1f0e53b24f67c06d057810d9a072c5394b49f500a0523e8d1fd2c3e0a4441b3132ee116858d78a9b4c7987dde46e10ef202c2a5b793a3c4fce39d776cc52c6fdbe582a3fd9a09f9916d14750341e3d5fca75b2466b5e6ad5d5b577f154907ce98b5b1e6060e0e307ea899b3911e4978070cb76728c82e91a1334d61d9939a601501fcbf75d6dac20ea9bd32cb2ced147a4a51df0ddefddea0116264bdf9abb8074a6cafa2a6ebe4a6cc48eb0a9d9cc55f14d7f2e526ca6109ab213270303a0ca3b1490a6bd056358c0e741093db14fc01cf6807d8cc5596b217e61319c72aaa18dde047c3a04b4147ca127bba41218e1ed529f534d71c442149197a5ab715e427ac79f8758e37f623b73ef6a2b55207aa7ade98ef5a4f6989bf4330cfae3e3651444d5b71001dd5aae4432980b555bbb931c0fd9f5abd1af22a4a1d2e2d117d3b8f63474dca28f96049b30548ddab448872f4dfbfec63555292a0f90d54b80c5e3dd8c5c785c3e4d00c643bc8511fbb9aa716caa06b14041f9c4bedd6c6d339220a4724079e504454dffc5c9d299c773e14da80ee3d99824b6ebd93aa71d4201492c04bf2056fbb430acc0d1d425006e5b232b22d5fb1484f25181198e81e4b24fede7c0c498d55f451f2777ccf24778493ae2e0f81b1077cceaf0c0d012c96ae8b1ac5bc3a3f8aa1f361b5beeef3acbd95b7a971021a9aad77a82e059cfcc6d0bcd799121b729f12d2cc8274496bf854bdbfd8e932942e39f5b7906b6a96f4effa903c0bce837160694b2a97ec89c1b0f7f35d16a8995f831b1e5162649e711b71252822ae131a5cc23e7be487be8b1f3b5ba359216e7273adec9bccf6c15a1a3f4c96476b90f11cf94b6d04ff59e6bb19be14f35bf395d7faf85cff288842546efd8ce42b5a29a6fa620581b8dcc51dc2610cd08cccd4f141595daca8cef416cad7907248c58d9327e3d9556bc6be6119bb983cb1faa2b492456b075c7e5aae4e311b61821f51f3c3ed0749852c3788ccd3441beb9ee6cfeecdfdad4d7d4461702e2e1cb6916ae9a9ec096b7775ca6cbb13604419acd40f4b35c7429b8700c8c0a7f6243f5cfa3aa739b713974ef74f84788452ddf5be5d078cd80a2290fd9992ebcb136bc8978372b622bbaecfff00c1c6907ca231aa1441f36697bb29ee93d5a5bc951e9a7893e4202d3cb5dd6324d7db70976ad7666da4e94941862962d3af783ab2bd173c536f999f5627cb7cb7ecda596e65dad4de7668a976b0ce6698bbba26461d78ef1bdc0267c761b708435441ba21dcac62ac6cb1db54499fbe2b441f927b993649c110c00a947be9381f3235861460ffaaaf0b353ce002b81a957e39291fc4f65fdd791281a30f4ca32c297f2c6fb8327454751866239cf4772bdf79368dd99d28c61c7209aaa13297e0fa958ab9a2623c80e779c0745c10f42e792dbcc18099a27a99e9f8a0d389e191609aaf3ad9c3a6661cd7611bb778f706b74a834aa662e70bffad896846faf86a052e6372aae1058bb9dc96b1bd9111b5b1eb47e3badb26f7396642764f3144a7e9f5a903d67f1ec74e8806fc48e354ff37a138a47b3b4c8813d7a7992aba5310a439a1d90848487020c0983b48c5ee97ec658eef7bc93b030b57f16961ec655fef8408a9132ef76016e21dbbde30251501a701b9310ef387ad88c2281a7634b381c10050c50a43d9529c923a81d9b3929727e2b499fd9738d75cfb239c6ea3e94b5951c708d18102ff06aad9d20a219cd867a4c8e7e8e1ef7c84f67217c148f44b422714a381d33f72755ef056f53098cc8fd9877cd6742b2f77b4f2dba9ac9045c17515858baaf3e34f4d74a6e96e8d4fe661211674a68e0912b7c0b4b80811ca60c4518350b3f54df34db7f69de214dae9e14abcaa01c5f28ffff384b438f46547009a8f7e55511e60f2850f75bd337f0045ee00c51a51e655719ea4da79e9a60eb2397008701becdc5a83619c7f90667ee024c44ad392cabc6d7799fa59c8f6125b85284aa48cc7537ec0ef17e83deeb1c99477ebfcb3d51df7443aa692f7319933297a1de00dd310a055611efe998e1281ba0a448521fa0c63df5e7082de1ffc0534f85901fb320211f46f439f13314800826ee72f68c76fe82e45d2f19d9722d017ed44eb14a8a9864c79f29c1082054badbd6249fe8f93f8e9fc65bb3cd1af8aafbbf56964074d782564adb1c25ed8b08f8430bc16836176422fba4e7ff1684a61d881c020d4e659429b48f9f3e64f16d24021d6f89add4c75d237fa9043d32cc27784b7c08844826178b9dddf6fb823aeef3e8fd5aafe581c393c2dfd041f8148aee08a974d5318c746c22d9e4179eb56abdc72db1c6118fff4d9d8d6cb446ee19a07b7fab8df403880aee09dca1cda2a39ec10d5a78457e3aa3cff48468170094ad22d30a2d44428cfe7467a4ec539871cefcd548c3062480b2ed2b6e7a6bd6110aeef4166cd0b45dda83aea875b3ba10a9b3aaa9726f3c782751e85550d144231853037544f39d5dd039234cb42fa88fc0e5f1e0b66f068fd90523ed6e1741679035a7e8419da10a7604b13858ec59be5e5ed7d298e29bee15eb9d66e91ea004d80c261b09474d3f32b7e6bf321fa980786bdc374134e9a5b64c4549cff6d0f073a9675a27a118dc12d5b745da2b3d6615280802756895b6efef4c3dae82e30b3c275b1d34aa55c9f650acf2b727c7e1ce304e1f966dc549a785952135073c3dcb9216885a7460fafdcf7b5fba53789268a8a21005a877962eac88805d7e1286cbb26e34351c1ecfd808a9ebecd2893108fcda6a39eabc133d7fb015ab978ee2ce4f6c6f132e11eb24a82e4e43759ad1ba10dbddcb758a54cb1cc9ecd955bc7f43cb6144423ba5d62d6296c89b1992751dcfd37523b647ac22f468b37120ccc461fe4bc817796e835d0f47a351e2c18769a25c988c7dab905001c8de47aef0e75c7d5b1c299db472600112f656d3740c31ca5017f4624803ee5baeb4ad4974a04be45067e747e2071c66f1a2e607dd11810c78b48fd7249398b8b5ec18e494811e68502872a0a9862d8d9f66122533f0e4893956aac7d98c3f2fb04ea93d8a0f7ddacd0072ec18b54bd814a8ded374d26d69bd7d277422746fb8371828a8e8ff398b5230a2fec8f1ac7a750fc2c6eb6c9341a5bedf7248c796f5b87d9f3449e0f0b3a32d8e283812e98154cf002a02a744f247a20cea768d283ff113466f4775e1170b7395571873b84d5a7e1f7c06a657ed9a09a8789fbebc4fe651735cd5e42a08a5adddaf9827c33078a933b74bfc83a3d2e9ac0386693a6b5eb623a223df33d5c10df6ee4a1616160bedbff3710726f7b21d11dbc7a8a59c52a57e1dc17f914fc3c6d21bb1740faaf09ce4dfc887970cb66be3c9e154e7e554a744793b704593e40550987d60a589970f9756f7e6e4d7fee9cf673f0bd40b9899de4d8ce43c14c1a0def773cdc33dd81147a10fe6557f09e0a863e369d7374ff934563f84ebcd75267822b71acf5354efaf5d35d6299fa186ae28f6092069483b19db0396e008761203a1fa92d8e7a844ed237f3ed30c8c56cbd48a29815d02acbe917fcf2212a69f543a132204a48e8c692f78f039cdc63fa17ac2688c6d4ad716bb56671876e5f2a9036e9be1e2ca1405957e428928aa938bb96a9985d9a32b94b955acc5d4314300b10057d5ea099c65f0e0098fe5edf08b8cd43e93961c5ab94cee68f25a2b17adb7234e88a9dc79ff8b72c9ee205d457c321514b7fd87f482c0e8fe0b6294996527300a64d964d02438351caac5aeab1ee5c5be5bb38b605f974802579e0d34af06a3d5b4a0156aaa1da8e35d694bd4be6908974f5f9af626d16efb52b01d5a81487b669c23dadd71461144ac251e359e6f3ecb9475b2f89b837d1c434d590618c961cad556e5f98110fdf019e813a6bf20925167ee010144597fe8f87bb1dd1b888d8fa5fa032123455c7da5abbd2633527eadcae5f4041835738d00000000000000000000000000000000000006090f182025 +flags = ValidSignature,ManySteps + +[privateKey = 2828f4f44461a839e748b07acc053c9b0241f7b1425f9c742019c17078ffa03688e7623353690fdab2cb87ce197dcf078d8c3285ac28826b8e024df19134b857a41ee479e13b64596245f1d58b57c40b7500ff832bf828cb5525caa537d807f38c4522d4c15918ad6627fe2e28409fe61942214ad41f64ab275d25f1bad534cc33588238826183882674732632566580362001448330284227167781002135128664786646058668460720881260571120274237802246556735450743141503401342278143552058137581632173108630352324427685411488467336235784548748840848714121654657105666125730637215637355362235260265675603050413273482875838263831520270432587200287454674233525303667165816365023610712620222384650310107713081828344015076022454623877358617562131355870716747185267555043327607816883862320447818875278716282735017014760046611014257202861554665684550474340510720344200602751124754303126318240457427278365383551773258420642165715502880376007823708733536524360051857033365182723348451876326385407282131855143547135841160730870274613323175166682544705656238812056766716082221047241480804203635202402024401885637337501564460471224482247815583668473644062704543044085757107576561781257378174321153031115822077122380211756282252654766432667145584058228444606105161477848088411650126643741334115786160741370578766426400234668652030304657730420006701100620441486311437237348665250700173248065651616655804508333787503443056461041343804657334575466138341774818438886606858631461853374382630671784527825623572182273488704561128760880474346020284418765241356432260256000824480212210526615810685015033616550262527247123472782555323033532153205483308228486026143726232537738677480717176610617345770342210381831644628463238762420373747208211346782337016760343417774340517287065706481358307548684283322711187312868650437621427120508820234277442328585451337433508454307227383728603052248625360578821882305532707545738015255151413477165328780368788450286537221681331117310352635025332534252415716671503580355350753035641855038000774585815638213226727231402786460586660263622366040501632588637848407083583212541418401378031165653005260004321008177850013110352246342736752314155503577761026040151413104787031601186536771725358830263175312850836616142633738883021155545780378627041786337673234268841745585357327281381160456062778083681251122328844060508573145184181668642227607048575204242151615626274643062750504854836856137664066046718615807703037707318381885201774005268155232112877777710243683374374644575352713167734077116757445308422055476565046505821174812720141167450640570488577638125578480577727265705261300872616023422647537582741861676702506703246401531231604404016632740613325255254331504212011543683514438548222171228181871043326652013751352773665404733404351644271407273837006017351774542781511044801125142248634280644242803576474052611541473136280161182337803745406105041225364682640626381802758210542018576722441141348677320476135744248617117162542754450758256156337264551036772310557470503777366045180842517246314275714880444075446737027264775674543701886656254244054637361020587107178844177428163848676502463507413772205684767425333364412627374538427326825431706705351e5db3fafcdc953640c6c5fcc86eb60e9194987d9c853ee93176ef286c6776ac3da432eff02d1e0008a787e2135a06e24645ce5430d569e1bebfab2447845e526cb1c5f7d61042b57d7c7da8f7c29eba8947175b42817b63fb3585554444f0a2f39183cdccde2678654163b54b8fae10ff6ac9c6a590b7564d2f3fb5aabb9ee38f1795d749b0b4d603ac5c713477767d043bfe695cdf979bdedf9e8b7acf4ecca6aff7172aeb00c20129698985370e4c00918c465c70104685519feb73c6cd978905ce934af0fca96839f0e028e3b3c5fd3229456f20cc3a8b5e18ff8db5b0cebaa652fe17286fab0399a5b5c1495fbb69983372060adf3da98d891ba11ddda151429cdd377d89f8b7ec05f55819e15aa0e2fd3fc5abed1d0f8bcb73fe2499e34b7ae7d06893c28122841217fbc9f1cc8d621e3fad841a11cbe3f8207bb77ca533ada4f2d8c2b7543422c07f0d76d20fa7d6c571377601ee37e94ffcbe38a91e35b1a4943d000947adb9cb59dc6e94c0266b2826b53183ae1a8d462c591b3b14e69a4c61c284503fe4d8ac6b9b3c08a7a8c5bab31f91438062d88f39cdfecbc072d32d76fb8f73d51ab1e3bd46e5f2d75552d46b50d26ed5b24561426926fd91496e7bcad76df949ba2c3f6018267a581cd8e0d2bebeff15bd73d3377aa75b8d172cc0f19953e276267798b4e6a644044ca4c7ee48af3a5ec8513a67842b0cea6ee54f9d3a0f260208bb1764c0d307050410963fc08d3459485a9671e0516176dc3150514bb7c85198acfc251566c1960b04bf4e2ed0a5bb6a865c37fc72024a21dce74466911a33991d2e9f32851300eef0c324133afdf9590f5b062db06631007ec24644ba6717a0a8f45723fc0130602c36e04ba1d733df9755ba132ab146ee4bd56a87a27308c8c80e74f9102a051d4f705e4e36f62f0f38e14f9d44675c51e0cf21c3b5fdf007de1159f6df675d180bc0b1f3e74f38fbb96c4eb9dac622fbb53a2b8e20e090d65b3c90a6d26e2bde59bf65355ff43b7d77fe2c27091d5368fbbc170b87c75a1d58e9d81b3a1ad05b2fddf465af1a05ba6a96217cd3853cdcfde64a5d455fc8f539ed2a159810c327a056f74ab7845675fca3100cf7595317ae4ca4a6f94ccbf34f03fe98ff773342d24734c11fd5f9ff2a39e594d6dae7e72282949ae5bf7a43789d711c3d6d16e1da9337976a533971abd1363b25afa794be61d8db808019788527a98b8ee7e4d8b77d01e4c4b509cd5af528e1a9281ac57572668b84d9b1d38f7e40740e944d87bd6f4862cd0b09ea0b88f998942aeb97b69451056b2fde38ec500fb2fcdd9fafb06b04a50cf455dbddf2c0d0359db99f3a735313088df2298f4f394f539f0ec8f63a026bed2ea0d1d74cccaf40bd4631f211064849fbca97a0b00cfed9391bb0f22db7a00e0a59524d9218da8024f6995efb915677d2df7e9d07b0906e7eeb01373020edc00ad2d47391eabaad6f329106660639427ae44a57232e1d69b6bd3475d1c119c7cdb4b99a181a91a737fd96109a3553b065a76d3e82701a1a25693311f65e58a3b0923908c6f20c5dc28aae66d72b28be73b4f605a3b28df2c6dfd14fb9428d091679f70fef6a037ec82aa824646f98df44f793cb750d7bf1f2fd86993a7c1b19280624ffa07e8c5bdd3284ca254b6f7fefdf033b0c24f585ea6313a459e258a9b2c322e71b7dfc525d048ee43e3fc06ab79557776810ac733f9d5b75e876d3d870a6a3a653cd11066b404876cbb801f77a16c86db81a141adf8e056d4e1f203ebf232ba7d8d4238521da1c24e89aa1949f9c516274bd5021a4b9e66e6f8d0e73c092256674a43a3eb0a0de882beb2fd62d05c957a4a5289ca7ae2f9d077546359afbf0add1a05972844a341ff07d08970899293880cbbfdc64d790adb7456ac519f85059d28b31a322aabe2d08072af85b3bdb8fb1cbf4b5aa4681b90b9c73a9f44592ba5c43bdd67f4bac799d7b28f382d7357bdb0dbe1d0221b8d8019feb2b397cb6b4c15e8e2ce2f8add6041b14ee6749d3bb20c1e86e2a838a6d1b1a0ea9806719652811c6edcc4bf269536824756c9d4ca6af593f8dacc7a0bf753751939bc8f0a718c578bf34ad1ad4068423b72591783aab63b8f55270aae396004a5ef80e8dafa29367a74264e514ac27d7d5db636e02474385beefae2dd3ca4f3d6dc4f6bb33d6c4ac9131badde3cadd425235daa7c8ad2c62bc8f99eb73595b4ab244a614b251957798ab7a812e0b4e73ce2c94853e1489e0b34aba182f8e3d50b59108675ce2da8b9f346d2891ec23ebb4c22b97bb8d7a46a6d7379750c6b268fc338ef4959ac553c9628109d4475956c54401077d2aaefa98734a841d69ee8157a45ee474cbf3c61186d1e1f513537468eba5724cb60de199b924f6c5f92ecb0e11c994104e62905b91872e1158b7fa896c773f129700b4624237342624d011f4e7f9dbd322e87901eb602021addd8188afe432b83924f5c179c8d42bee2f7f15ec0a356f356a9c1da999758acf5b1e8c2428d68e197853498a43ee66faef74fdfbb1fe8758faec2c4a78a134335b50a9cfbc4055304e6acb8045489e9e9524f14768cc096792276607ecd5592a2b0b905211a2c0a597805e80131c42ffbf6bc248b377cf1224c25a7458161d947e0dd1c9a6401c9ba2a7d6c927a15b587470fe6888b0397d31b8e59b23317379b631a986c44c02f9f06922cc5697f840fdf17ac0ea6eee0bcdbd4e013ed2ae2bd0bc2423a806834e84c34e386e431632cae09c2a4a01564341eee35d3bba24547efc6de220dd262f837ab404ac23e0a05f32a97ace701345bdebe8c351e1b330dfc0e26e4db6c223cb9ed0b7df3af861f14062a6e8e58c8cca6cc9cac84a0d8438f7f813ea06f9d7c0b672274445446e689e64f883327fcbec426242b82b02f2d44b150dd91c1d2b07d5a47781b940939835cf7420477ada41fe7198d0aae0eba59eb9f90e035b8b7e0ae14523cbf7541ff257598752103bbf2eaa2e098326a6614933255aa0b5ab84f61e7a0ffeb792a0dbdcd4cee6ca9c85f67bd34a79b36c4509f648ef5928273f11cef4a16601f2283b12ec25653c51ed32e01b926d83f605c91ce1a69b3c7fb85d75ea496322b5624a0512ebbf5b327cffa8674b5fc06c7bbde0287d0a353d0d0d2b69075c173139037c3e8e9a928ce55dcdd4c0906be9b8409b875924addf9db6803633d2004020d65e53658b2bc48e83dd913e16eb5882112b4127ded1899318eef54841860e88c89dc2c8b0a8e74aa403b7f46138f96b6cd610b5fcb6b73c3882d9d2cb4568f0f35918dd57ba613659ee2ab48ae2c25f32958bd12202ec588047308d97744e0eec59ef60c9d7fe918c93882e2259409025983b018bba4dfee30325295638eec7e178ece8c44813fa7d17c845f744b0007393cf782405c0fd371af406f2a08637535ad0103d1a94e77f71838c9874bbee1e44d5d5dad92686b7ae0b008db57d17f8d328dd9d6b3d0e8a868328a] + +# tcId = 62 +# rej_bounded_poly (sample_uniform_eta) requires 3 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = 45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24 +flags = ValidSignature,ManySteps + +# tcId = 63 +# expand_s requires 23 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = 45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24 +flags = ValidSignature,ManySteps + +[privateKey = fc9fbcbb96f54d5f1b2b71d060404538ee428f6785040c54adb8716adde1cb1f59dfd0a63e4fb3a95a9808fcebfb0c84b8b20a411f7285b8b3850b476c11204979d2799d6df4d8e5a7f2825bf6f3bd43386b274b67ee02cd75fc58cd0f2869cbac2aae84ff1b6b96914c77c2a9af5e8b2de072ed58dc2d33a38f6def5d07c68508435720201472080486071072225140154071406254246516651644268626534267402601257852003158236200232582071543662312237040405853815203555734167802445884807873584503853670635575061818055516733108507232777886116706058511715246252550725432815730282078355815683114252413586732752162360410645402744424624407028213337413210170373433816565071783778775524274680845814310304548827431510608668520448544883823327770572536234204024206486130860738263876452775532207565721450181018116734424873612637567171014376183855618762131245563161366232037671431465064683652082822573285627303186888831445535020311442428456081052323357460340418335358020447334887718686818184636475450505412200571476184434114013213167725068785002752436460617768027063782832086723461107827867878688160363216684300372433546351307615013714587680110027064787236474207315482553206723485332126471851236576246623032675367413767707366114046478877511162750463324471211057212500355750767063144358723340583780458617174404553813805457662814376026037463510142583632311153720868307176216376164614376284230585566118475404738550285368874043362841026311768344621867578515787736320756254386323728867710842544570740605283076325161664825127006078046314008355853430520731806651553577515031800888841205375748668225636887228332180537325175346015403824663581785672347425833278600507275576012745781650013084384228407507468318362701641860861721863755125037303240834858553575220152075020141476552431611646053457776103115101865706624241137547781305461343873462458034245345350768418470617683382570266101416160153326654827146171377528485064428282532214536068201712076370548031754836844356473785750656855403146554162108176065604437156448626132100318376706247323720684557115374033677170104046767157687268145008615682777102165746635563467532524213428354278306657624125485873424166240703003366405207051231482318423755402800244064075014070108512534745008050004304556256137771460588624803630453854554208220445260705886612083087203715857402113002552233525280244763481776207384025380023486067265540702403464341657345128723768680162566627727848287647450212585216114436350005320135156434628175283555007318010777107326163766782215465107412785452684518227565036851554036002028012151718237555428721118171724034160851302152050312422355036674818516043227213762626175716422512816320581870720366327370830578120836578680563608328370883448412133448336331465744621150007221704656341417484625520010254735235668864502105407806046803205272137525161814747750325022313460374385727735713472552327418350573247276642845385082856612562227805257657823816034507272141248205087048471643374171700473423242560483802450553672383224143305535872887522758226885401262152000755363277131022363601036708228216328346463220718342733478606016744481174286524323265131358307688215362854386713231266720320486616682686662687125760301700002634758aad61e3a9af4488a1c123cd3f0ab07be3b1adb710e99bf0f1c5fbae27884d5455e9ffdf33e444d3610af63fafcd6b7412a274d212dc67efc4e4e94805843f321744407954036604829fdaf08b87bb0d77ba4c9cf2df75e5c4fd5c6445a6281cc788eca2d1b9afcdc6fcf6988c980126223dda4283eda30238053d87a7467f60a5c60112f411986bf579bad19ca41295e98816422ff6381b00216762190830843fc81b605d161b761c64a3f735cf92c706addfde1d7dc7ccf0aaa00a697f436168a6d8de1e0eb8bd86b833b093adaa2f676a7cedcb89360ecdfd7560cf2475cd1e982da65566b25ac928c299ab14c93332dd08de88ce2917d983184d3360e13f712ba782f573f5117d1032961df0c0a60205e44d0c6c996512adbf86a93158e325bc2609de320d02ff17947a9eebef51a1bd242338edb519392a8e89559a63c01f933d82c74891d79bc9263f9d6d5ee7f4fcedce7e7137db170b07869950db7172d5b80b38b38beac9310b464f46fdc6dfdf24fd55d1497a98bed459c17035917b3f2fdd31509edb428b38645e0350a495a43f8802bde65b3f720d5d810e3d72653c73803d3a55efe475c676b521b2940afebaebce98fefc9a493b04a6ac12105eb0d5c727372db84af97acc181b4f0d393d3272b34c58213090c73ac1d9cfee89e6fce1f058f52aeb729ee15220b4dcdc1fb17b647f8bc0482a92c40f920c39675240944b9eceed082d64ae9b5cc6273a0392c84993c7d44047ca9562eac9f61ebb1c50ab1d30fef37b8755a05903e33ed5432e3927e02badc0393707d0356754b4e0b14664bd7861c9d2fb62e3a2e3171def78affe828a389be7e943eb3f3da29eaddc35630160d3a9af39fa4af34e9da27a7c99a5a64d89a05b6d1344c02a77bb22cb32ac931bc4128d24d3aecd8505f9849fd2706071e89daa80760abafce4ec4bad99874106738d6e6e717d3956cf11debe186113f2bd70aad78a82b1e06afd8f6f72d374b4755201731e0d2232086613460b0f28141c7ca561b1767c189c17ac0a5ca80b8a28bd06513cda588b1d2be8bf3ede8f6e0ff1341abe28e6559378b0fe8bc509e1b5f54486d4292cd48f95ab48926fb5e86791a4e532a3bddcdfea580eebe27b6cfe88f658acf9552c53574190dff488366b1cf080f27f009e23c56ff21e367b8f44c654420f158876fd43e3edb658416bc3a761cdf9c6d9319470013d17e3c7c51cc44dcae9b3ff0f95a699177c385eb3f683c7b54843bcc9e5efc4e9c42b9f096d92b37fe42b998db75baf729138ffcba70c0d1c7ad5d8de4b48c24bc2173052618263df7bc49eb67840a09e44dac1869d9cfb6d3d224390e217122a1fb33ac2ab7aeb874a7ab7521dff67f74fc472fda9ca88f95a957bd3863f83bcf85a0222ac5d8523886532d855d67f9fd316a3ef6a0ec9a18d993cce32f724297d360791d0431e62806a570b1df029ca40a5ae4ce0a86761c0348a6f3aa95f12f6be9148f4ff0d40b33a46609d4bbfe2432abad1cf2cad4e3462ae874a7ad32f0aeb4faa462231ad7b684be29968fe3149187783ec8956c9984df90190099441a7cfdcc07aaf75e69a4c11010b4656f9eba1fd32c7ede56fb69a4e82177bc4bd68f5c0576e396710f2be0450fe16f0f7afd8fcc6a1993e3b4686117c0474b9ddb49685f511db6078f0f2d8f3f33a08acf3f46c1112ac7a83010ada065dd5adb5741001dd1fc1c46312af0712de15546d6cce9808aef18a903adb4867884b978361ab2f58795392a5819627c4c1a5379db0fae158bd75880b0d7b9568405f67895dc5a229ded60b539d36c7b8779def39cdfc58f84e62f7d2e1108b82fcb7d23b4b84b712b7e88d47e94237da6a33b8ad88866f069d75f2bf9336fb684dafcfa5ca32404c7d13bd4f340276d059fe123a46ae143cb34b4941c589dbeb02e346e8026cd4c574bdcae3c1b85b5acfc68b792db68daca370e690026877a8c8370ceeade1e81141a3e9f5b85841d56e947e98da824cb8c660e494862e356fefa79968f4614bccade94c1bcef544a6da8bc9a0d49eb9bbe7c39a6f1f7128cc3bb082d21f39ac8f60f004957d045ab1261c2e7cccdf8cb46c3d2ad31740af381e96245de666381d198f4079c09a7368a514efdfc7a11b09dc533c57dcfe2c83aa362a617d8fb9f3169ec0917b55e369573021437fd94cc68426c59819ace012c041592fd070788c1b660c8b0da6a3aca83f95c9e8d5cddf9f425ed8ea5392734d93027f1e62f523bad5b7193268e136bdf0dcc2dbc2c823a01e64e45d6be028886c96a54074fb16fb6aea760bafb29b5e85794d0a6b86a75a9d5236b785f37c4f4f6fcc2b505a1d875c21ede14630e46553bc1459890938ab547f20d8f1e044c75d6360d0057e8288cba81bd1b400c935516413cd04f3a169178540a5d1ddf67a4adf78185d04d85792b988f7aa1c1fe66c9030bae0ab89dca01c300c1abd45c7cec9cd62219a4c7952e82d5c45b7eff1a3ea13d7114ca78733ef08a00c6157761cafb7188ef5310cb1566a4898af6fe53b4733ba02799563e7e0303197856d94f7644f935d84d6615b930d9decbaa4bfeaae695387a84226db09ed5ff23b935f89bc49ef37932a007acfaf7325be7a70112929df5820a8c81036a4ad5e453dfc03dfe1c1cf804d44e5c0c6d67aef6f4dc975c8ea842d4254d4c806bcf8547eec3e9ad1b5075db87bd79e71fed823b527ff7becebc5ae5bf7532a69b5a906e8e678271ab3a555fd0d52fbb170c8970ef4a1c668761d7911b98fce2e97712d20fdeaebf5b0befb3563a94af42800ce3e3da427d50a7e0e8085df3f3e76c304f57a58126ea865dce9f176634ed25fef31a7c7bc2cb15a4a267e689e1ec3ac4f3483640f9deb1458ca166b6b6d78c55a3e9f092bf9a429460644bf95ab0dbf3a244a228a5253b0d08cde29d2a0b4059604b5a4dd380766d6b3d633f5de76488807346ba9e0d92fc1b1d2927897d03a811ad5e4e05235694e442553b88be0646e8a4dd554f4ac3fbe3c66913057db8442f0cba10d2fc89bfbfdc07ca3aec700f9820fe5619d4481c62100add7c8ebcb53c27840d50dbf6b65994812fcdc3d4b58fc3073ad67a414ae47bbf5a3669cf18b44b967f9642d2512065249febe1e79946120ff1f6a2b4d403b64fd58e0730e4565ccc468d2b8ebe52366808e213f6c7add184484d4d4fae28d87c16c3e2fdb04076c7bc44ec90ba1acf4f2493a6dcc87fceceda13056295379d942492e6130ed694e257fe1cccbbc9a789593313c3ebcd91bda3ebbdb1aea5e50d6092306409c14fffa956daf30dc3824739c33af521e68a116239847b3f30eadd9cb72f0656bb2e4767bfaf04c26d78973340e9fa53e59ddb1b2ff8a70ac3b5e0a749c5a7133a7e273f50fa3ea22207826ade4962957c083202fd53b093783091df0b05d6ff4e893c6499c2affca9e7dedc8f56239a71fe84224eac01bf2d90b331106b781aac1d05e2c7cefcfe86e143d2d8ef0d5f0d9c] + +# tcId = 64 +# rej_bounded_poly (sample_uniform_eta) requires 277 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = 447024ffde9346a213b39475099459ebb1de800e2879512a7f6747cdcaefe85abb973bf9e25a460bd9ee2ad1bd70a820d8f172e54eb46c78e95f860001323f6617d9408d2e1d25ba6826f19ff9c010fdbebb0c002c2038a178a78f652f567ecb5170f26601eae1bbd555aa8fdda21ba1dcb9e351620350e347397b96f2d29645f10b3d8945d636e58308d85205739acd6b94d671a3cd14678ad953218a6b5cb7b3222c2db794e0cc468ef45358505ace711352899851c324c12767e5a50e5288af2eb3c9402114e06e0ff0051e9aa0ca2c72e6fb479c074c04b2123e6d6f9e62d4374e0fb2c3b6662332c391f630dfe44c4fdb7dac95ca3aff5a427f3d7814bef76f897bf0a7cfd2bd36d9d49f87b870a06bc9dacaab0b129b6158dea464fea551ba4c5431237a189860fe228ec8840b5eb358a68f1d9ae9dcf90dcad2a8603bb7fabb4e387ba963b08e1dd41e02a10842b579bec2a2d431fb9595b4331f46c9b0db975832272ead202dba9be105039328936c939985d1137e2d90d55d4e6787ae2837ab48f0562da0e0e58c8075b4eb5dc9dfc97635bac8866cc5f13f984869a550a100f13f3f56a38b8a350fa4fd06207c1d32eb667fc6811c33db6cc428f620dde08c42dc2efe736aefbe59c167da7793f2bfbc6cd3aaed52d3757e8d7e44c63ae8f0852d73b5ba5569214c9c1980d3852a0b88d0248175f53e9d11ffe19a1ff5ff7e44f8a5c1074731c69198de1be50b7155b49b9875bbb7473983ceb447b2b50ba230f69155d7ac4e46a4e80762c39a97fd023d4ed38f7c425902b7f747a11d7797e2f4cab63d27ac2bcacb17d08ced68b7cc5d91c69bb8f80f17d9875119a741bec5757f66042ecd2e00847c0390170ac2bdadc769cb501ec8aa38c859441d98e5bb9fccc43eba593d928209245e6de8f336cc0e2680c6a73e5df0f554301cf852fa3dd3e7d5f720320d6b079cf2211feb3b2956a0de3f59bce94148dc91e9b0288445763117cd180f7ad089f223eecbcfb06746aa2796dab2e620459919cb4faeb7d4c0d85779f776593d6fb0877041d43ee10435cba6c7baa9931e4c4dc56898a36983312cf85a1a999bcc02cb26d091b3c5a23fd4061a09b44659f6d68b87b68d3e6c18876f9f8f8edb42210ffce4e4c6a4a01584ee1b43709473130166ce9d9890eabebea8c81d532c34a166dc9dc30f1d4c0546de34990cca8a5dc6269853d69f366056f23fbaf72be1fd469fee612fa9a75feb97c079c5c04fce08f89e8087249a77e3b0d73728e95749f7497313631ad95620f3eb3c4ccbf4cc64e6113c4044541e843832a32ad7e699a75947f8ab7e48cc65a060d62972b86df8a2fb0b4bb966193545c86f201c5be342dfb361dcf2bbd9f3a22a6ec498da9d9e14770f9b7f642314bc6f66954bba2b0c621be2b20140eb6a0f536c6178fbf631ae39cf1c66d01c35763141b689e6851d578b31083f2153ae37101bda7d5a1a428582fcc19b310fdbac1cecbbc3ecaec93d73083f9f9c0f972ce0e65cdf5db90c623405863a18a497fe23bb57ad71f64ba9fbde1e462ac28e0d7597742b2eec39741d11c406ae56248c3644f3ac44fea88050fb4d0af09b65ce58cf276b37731d21840f34a9bfcdbb5322d905d88476f89aaac0c3f6ecc7957747a8343dfd8981dcf34057746dcf440aa098e5d41b5c61ce15a72380b7c8a39c982c052cc1766364fe7eb94a49441014deb484afec1692738d50762aa0ebddeafceb7b9f6cb2d384f049a104a584dc274040f4ea030345f7f887758d10864d8c4b27abddd214be79c79b69084d71897ffbdaa0dbf5cec90f22ec07d4ac7ba12ae6ddb130ea34f774c2736267cb13178abdedddad0e0f889b920b3c4b3008ce7b18d4ff36e196b1e7d8dd043b58495e6b7dbfe22d03ec72dcbb250ebde631f43c556ab8b8465b3d76ea1cf571e6726d39866fca46a0b515f0d8479a028517f9021d757ef84fd8a8464311c7462262c82503dcbea392f88f19dafece39ca11b11ee3649840dea7054fb02770a7a46c15c162a05a6a2b5ea904f2ecb78be936e0cc54327564d6097510977807a48e1b446b5076176cd8be717380f4f02f30b5f2d2c0596f45d3c064ca4763e649c9396319eb09d37d3627d3ec6ea58df23cebcec0c9bb68861d0e2fb56e075f2aee9bb1aea052ab2c05ae746f80bab8d953f40cf18afce5f331b334b7531e472d942bc07e02c67135944efb5aa7e39e4344d365d719776494ec43cf3f64d208db184bc4f1239eca1b744055c12d4519905c66017a7a8f6d47b3f0a725222bdfde1c1d605d04cf93ef3733a7b9a5a54a0de03c66866bbfd24329a565c0092856e637a832275f6ce6113656a71c1f1ef90058afe1a376aa00be83e050169b7f9e94451dd6f493fe5caf02d6e5cf1d41c5e7539d2d70ca2ac35b966ff9f66b07401f25b259000d14f9e0aedd734b74fdda9b187bfd99a7c1d241e40f87027567316a3cbc08bb70ade50e75e349e7f3d023a021c46e84b2d44dcd04e6a9c2a5ae4ff79abc2805a5f71684b8bb661421008f45d9dbb86387beb93b07583d0cd4f4946e5c16d4b62154abb7dde8b771e22798be9c39103b5319442ae8f49d5e42ca2f90026ae62848811fc38f2c930f0b266b445c7828e3d8fe4cff57b79d168e51beeaf15c693518204f5931648702f81afb1841ea2479c8acb2f42236fdbb0a99cfe83cd3cc58ad94908d61ce8b953e433599e9a086d5655508c79dc26662950697348790bd0905d4bf616ce4f411c2f76e4f91c6159c6bb317d90356c23dcd001a43ec94bd8d808b07ddf94b93b3191cd3fcd8529197f7aec255c2a25bde0968cf689263e0a5cb19be444f36ca797376b013b244f510191bdc007ac33f3f8e73bad30638679bdfe3adaeef93ee24df4fba7c405b5be5ec54cb375a5b9eb19473e981fd08b6f7408fd00e6cf2971f63d4d4d4b9ed066318efd0523250e0f70562c1f2f5c7c7317f999c74680b811baba2d84153f7ca6d1c7d0deb5ed31da60f477754725725b860a64448cfb8dd8c107613ce6671b956e6fd769ed556f8bf8310dc2f167f621de8421dc13edc84cb9c05eaaad7d9d51a5d7b194f8c3c7082e9d53c5c7a88e1c072c468a835445505c990379d34a2231407a1035c81a0a546ee27b1b3e7908d4921bc70721911a2c0f5ac25ea8a81b2509d40f2c727a9f1d7f91a4378fbc21145320f1b9ecbe54283e1237a5b90b44c9f49edbbc9f8ec73af7e6e7ad0604b3fd84191a24b3efb2d07db8bdf05b742a65e7405ef50e47fcc92d4029f7f7be4c5e7f1b3f85d1b9a5cf8c14228318ecbc648fa7ae37b3bd3d3c33bed9bed46bcd47ce89650dae8cc2c5e2965d59006b24beba14e70b1174cc4f828f11188bf0c21d552f1e5fbb022e84549b05b3f1c2936014c1c3163269abab98508a5c3a4b0d282c6b91aafd64866d01bd8715473fedcaa36ca1f1c6bdb6caf82753d49a4395b3423fd33b96313ecf41d728a5a57fdb8d01c3be7fd831149a0e0dbcd323ae4af4d062079e0c4039a7d9cd25fe20f033e5ecfa0d34e6920bbc1e88398aede6a28439e700e8844d79967451a3771d4b26eb5d012a49a5f817651c1d752163ac517541ca39025aa428f38dbf3cec4d648cfd3922bb2cd2eb8e18ffa2adfdee5b9314a82800447ad55873b14d820192cb62bfde5699b680f2b0ff07e2fe9862128c17a8d2827d5aa73023c573cfe37d372b39c13b414b1435c7a4951cfab1d8c74115711bce198053ae6a3d24ad64600e9c1f50915babdb52dfee9264142b108312222d198810898bab5e09dd09a9a27b62b6e7d7917708e7829903fa5ea835de5725a83d034aaf7321f48afdcba299086d4b20075e0537bf6cedc0b50a1e2babee1090e22e234279d658a75142ccac00c6bacc16704f1654382681498908bd55c4919e841323f4ac8888f1514f4dc9be789c604458de0ced5143c5b1c5d3a64246a68b5c3620a5869eed93bfa07ecc2711bfed1d8d3e927aa16edeff32df5ec23a53e4cd0aeb9b83cd9e67ca15be9333960147c96bb33e7ba5c9816a34b93347273c49d14423566556caae62a2e5d138498ab7d45f5681df334e885933ed2f45c1f726b4f0e231526147f9a892e78a9442aebab81060032dded67709cb278c054d5339d29025abd25b68f32b5742c9e4e313c40293a32f897e96a9422ef349d13a70f5993221fd921d85d2e55c0517cc0d241119a9b248af27cfd6eb37f6d9551bcc7d7db3f53824dbe2acd6f1c261cbfbb346ebc42a17060a01c6cb89c95f048bbc62cdcfcbc33177f5020583552c4093b278179ac176a20451d4968ef4582854ad21f2ef78c79cd5ada9cf2fa29cbd63dd4259901f5327ed3cb92f792e12965352a2a5190387e7d47eaec012daa03b3599ff4713ec6c90d84fae59f45c99825c4b9d54e1b714ae0d13fa452da84b95c7ceaeec30e11ebf55dfe3fde91afcf54673390f35b5f4d57288750bc6e203fbd939b7d3aeb04af68abc9f454132920a95c45bd7fcb35ac27d1db2ba58d1a4dc425ed4a5d315cf63321d9e7a96757b29bb5a448b79b2a85883335458098a8b41f3bb7c42930343a636e8d9dd148bdc22d6283afeeff0817287e84c50000000000000000000000000000000000000000070b14171d23 +flags = ValidSignature,ManySteps + +[privateKey = 01c8783994aeca990b8c00ec3a55a898e3eb84efdba12db8f3acecf8ad5ab9e067b9cc21a7eb780521372d627200d56af2c590dbb49957876141cdd25b0973058ea7ca3a9577089fe7ac72abee0baba7e8744f9f859b2f93021b918fe28b1ba749b6e70755cc27cbf1d62a9c389bb07dbda12b9e7071deaeb88cc0c272f6ddb663321476001085384743437266058258623670366178656636858266080222504653735777708371875154744754513374847184285867618687622673436331277726344463674415474663327460631874565276646277645547833531124331674560837683650034506316253675614808105574215860160027778222064804254123621257156714807614317086784014763847678865736853011685043087165343146430673787075264762723126015145304378451554382618176761737261238801454636673302003635530180021634805108672320126866202632485356546234515650638841026782032587611788772563217008608563670246261137361866580427724122011651752304105587374821754610655876436376716830733337786467184476745751882420318227232242213023670476883536363113844286685326141370028813184384271158257814288460232324362750245323727821082214285863602626227855778311267882762638188817084053244006331312804582806783087261713563311076641473566415044148843857857845608112450282111062715057107416147237870520580026042347185423104825226885256542016225888002703127131175052048540015246220704385146038652703620471878676038706510680666811042845518750657234816204127218267307624388131377066652712657787832570081114771747464137325823112714006510016028276871472385306861712201708202575707212164510223353681413452672580387487363247377162163762460566877487376728582653585125462101742166267405131188542741581384720811051025744007537120852802802255840243238242374276182852473576601326075454806215573635151851148714256254827447873347528046062538420016233343323023547571652166142234342063554474443083754134728420887484260771174673024801132187413252455006567471022215517140124221055481565033352440403386213513215767578124853318563323386468560085238542223826700826360650802331740420534855741465645044842121303213840327234435517242432474484358377454103113241130433477373416275533874385663772635375086845531474357823408762411431135804157332843703050606712147853637458837104430635177781363161443334618486312600543427085837360515222884471058224685650653772581225403202005444113784411306862703464503713851742720670628670172288557105641155647166854886628754072621772110753533424243264442607288085348381863360586205765257568338380276724885550488567032076280648006717556588608501771530660554354048421832786148830755317623732520274662866786412524210004816231055254050251061315855802548351666314486331811347371043380158857068635118844228157744554212148706000117180757163041822011370257108103710385616171847426372546743102523062137246121041184242405551224618507545817774238682376540702082137716141805246521806063637114065814742237817541033357746258053321837021826745383517636317126634258470120587163043317176435503184415504616601201548417177784416336661788328255064621472184243421673510474726161687571024383687487004875642347664134735737343633821026004863107010733312810171206102674167344832157086351226744143188116283727681365436358278313673577608241c0ccc91395602f9c9d3fd4ac7cca52f8dc71cb288c5af5f05f74de26819489c9ad236f241b24229dfd8b815b3d84d5752d36c2bceb55e0385345b83abd82fb83d54f919953e84b4d0fb9883e9ce523118b175ff0e7a9d9b0906ccb5cee27a4189183f0d14d082a65ed1bf54a9d3983e85a7f664133be3b16556dd3c54c9a4337af80454d4d9e0c6810896a3f01e02ab3a00a87560a8a53f464cf5adff796c3d0a709fe365b72cb798e2e7a9ed5e4d8e09eb63b06a3ca94d8a6f8d0851be8560ad375a1f23620fa29be3b4891ed4820a18194b030a05397cd494a00ffd7bbd80e9b55169d6a64074f6ee95f8a24d968b1cde3ccc2818c15c742aa701febb1593922d5bc6cf855aaf9d1ad0892e85fde7d3feb22042515b82b44ef1a5f7975fcdccd1974b186e3c145270f496bfcf96b659f98f5099f6332e5f5f9dabe241e9d7c2907228addb2f10bd475aa375fef09d513b554d3ed76eeef8152c53bd66a470ab7d772f107adb09fe65c592e877cc99b843adec1744b9906aaa8ee21d564811a6304021e4a316aa6093f91e622d03c145a58d8cbcf7ccc3c8af547c3a819e9f0c9929ac387dc60bc06630ebaf753256747fe4d68fbf25a49655b378d94b6ae165eaf69afc2e13b48af859a634c556b9cac08fe790a654dd806d4c07122449087c3975b65e85d65d9e6203f2f53cafa7d7629a3b0f85ba4248b33e49465a77fb3c46aa42bffe9fc01e930fede49f38d124fd28f263ea3d88781ee963f81c99d6efe6ece931d556344b9e30e26067c1dd9276644ceb24f9c129d470fb2e6b472aad086098907dde3c74ad50eaddf6a3cd41982345b12387ede1b65486b9d376cdeb94c464e0f33911e75612b349f181e448436aee08d4caf85a9ed8d45421ccc0d7b64554b1fbc973c69305564e80c562907ae7cba86c8a67e56a051c3bd9f219939de29625d2330c1a3273c174fd31590b07058a1ca585fc4464808297cddf8416f869339724670a6ef64df873e9e7b831721089e19ca81d8fbaaa6aab29fcd7b582d093731358f4db8d4b1afe3484d504b7bb081624261cf537fd2ac380a35dae2675ca0b369a771b1b34086dbe594762d18c6b5063b48fb540f7316b39854e7ae6ed9c310e9b2f76df40310f558814668f80951123135451b1f7f078e9218013bb034d5da69a110c7bfbb2b4d1844f899dfdd56f6eb33cafe1f3ae9f0517a25631ac589acfcb1c17f3ffc78116dd3f3fad540a38f3830256626558908caa474ef9afb9fa2702acc1578064ee332127aa94a4c42985a0cc4a13edc07ce64791fe822657b42f970d3def3f7cfe93a55f027f1260a8c1e384a9f29f02bbf8f7c54192c03f434df195a1dc12574fb625ae521c4c9c8ff8c33696696d6bd0775c4cea7e97a95632b23bcf01bb3ba9637fd4007f90cce0319c96245ac6fa8877fd3d5dad2d205b16bec2b961b027b02acb7a48caeac6728949651c3ca2364c45f52bfbd1034f5e49646ccd3cdde64768d5b629d2e3e8a92726251f351107e1f27e65723c3f575b628a7568580bdf535631a9817d4b7a85158eabd0e9b05e6cedf95eb13bc3c1b5b9b110bd892104ac043d99129321b646563e92e7f71ea161e110bc9a1789acb1661ca4b348306ffe9887538eaa705a67acdc119ec8ff0e5fd8f2f5f3d2895132ab98098ab5b81def1792bbcfe7b7fdd2969ca7fd6c4f9b03b4e0576eec2220141684e9fa8d08d76ee6ef7c87986989844ef65112799ff3b77d0817f24e9ebecefd0fc7933a7a62f4e51e7abc4e18e1d7edf6c4fbc1db40099e58f0cda1380400c86796ab759baad8968469263936ee6f743ff70fe30f4b837fdfd97b67715217fd44a8b6167a9bf6f9c75a0d2f18b5bf05d3640d2b69a5688cf37667541373ff40fff63b283d9b1325547f515635a18f3c520d69f20b6b43f13f71049b52a5aed9f01c132fcaf8e89b3499c2ce094c8853fd104abfc75ba61accb90cc20f9952b29ef22a1d37c61c4a9e7ccb8e191441e329ccbe9b957759aaad200c2056509b30427b584d44cd8017d33a5e489d728e8d46e1ba2548c9ac9babf9e8e84bfc4d328530af88b69437cd29b6dadd80bfca18c1476810bd006bebfd6244091050871e01f7ac3265cd431692108b08fbeef64b681abbb001856ea3dcf90c6fc7f6a12c306d6a3fdcdf9a078f5b0be6ad2ebb7c1ba8b0ae661fa96cfe525245c578bf5df4f6d08c03aa5e1e7ac2ee3df7695d2c588e0a0faeb8d40001c8238951d4d7c54c5003646e4f9ea5267472cbc5e5f6295045be341aef5d000982e8d8f2ecfbb51aeb4b3f968d71538ed870109de1240cc1039a85932e57a877c2020f860113b2d93d8968bdea1a80b0c3e287bed8e507031844547965ee9b6f8ffb8b0fc175771ff9cf4185b87fb8e70a1e1dfe1c166aa11d724b032c78fc8dc8ac90ab6cdcbe0e086f3a4c7a3867934f67e7f5a313cd5429918e5f612e30cef1054a2684f8f43cce784ae4e649223c99dc26b80c5339718e70a8d96a37eff6a0f9f42ff4fc9d79ea471fa43f2c3965dcc3cde278f948b64c7b22b5df7d0d263411490c2a4594f4547fb92152b9ae25bf3896d3922f5f9a07b0836155621a95d7f249a5f81115c2f8a00355c3c17d942fe56ab8a10ad62ca0606942ece02a82e0ecd280ae110b81e1416afd8ebb9d52aeca7be510439e111c9823b4e22ec365af0b8b728330c2d9f2165ea951276036a231b36db923e92c2db22d7942a9c0c284f2c065373e1816e81c0a6d46070a1af9c42180273a9dfcf749e11e1bc80c411fd1956d0c349ed6d19576083709b8995ec04e4b1322c9f3d98cac84c29dfb1567a078930d4f7e60b544fbe759277b3b9df71961ac8967fdcf7b395aa6bd7f35b50fb551e59e8ff0a7d93953544a36406a88ee6fad7ff9b7f7c7eb216728003445bd7bf8af2c8c0488442e6cf35a141ed9d3fb4a667dcce49767f37e3b60c8559a7a964b053cec816ed751af5e0d83b8b6c598b3f7bef3ffd721dca4cd979bdc13e398e13901bf766f5f54014c6b9df77c15290ee5a0df1a11f911960e2cbe821533870af14cff6d9db63783e56995e68dfe696acfebfe8ff135d91d19681048e0c91f55a7e11bb35df24258d4783145cd52968baee36f02e7266b0766bef03b8f223a2d128a4f8ee773078ca6247cf07dcdc78efbdd9c99caacba5c8004cc6940cd1ef1369450df4fcd5157ba44c3cfb95ce6fad4689b117df9c5e2d64e371c00bac2e0fef00da16158b30848a0bc76257752463cb4dffc2aef0b30402756f370cbf197ab5f121307778982e7bd884268f32f1178dc811dd3a8535e711497bcdd6ae58aa12717e85a7c380982bf21f5ebbfaf337ffd11d41f3e02f642afe74441863e1691baccbc9554281ffaa7373799bde86cac556f137b25ffa7782471b91feb4e46cf1c89b1728285f31d796e1251322a07bb313ac5fb66bc379359cba9d444a59a66ac4554c0f0040ac702173ecd6341664daf6c1628a78c371cb85fdc8f7] + +# tcId = 65 +# expand_s requires 2649 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = a6d86189aa75e8618ba96982c40f35622405b0d0b2f6621b7d7eed57d03eae4c03f3b9ea48a6f4f8d272487b4da8ab4055dc26925aa8d5636537dacb2042028ebccc9613411756918f9b699242445b23c1169a8bb525e1d4277e90a9ce3f68075aa9bf3634bda8b7e6a763df2f614d8fd9ed73ad5936b08fc63cbc60f4625626fc5f5afe853829098a13f8267aa6a76a9abddc1f4da58023b6be547d1e37ee4a220bf109233bdd4402c04a5119314c2747481966d106c333434b03fd1c4c37d47e459785cb50e4a37c0293bc20428a51faa666452a3f60f88ead932b74a45feb3193bf10d323364cf807ec7193f038770e0936bbe1d96fc758cdbde7fa7fd5b8b58d2ed25064500132edf8c8a0238f0ea7b55da8cc089b4ec03cce9e78af2e710b503b5ffcb95e564caf089aacadba9653ad780b52b6f0af8d44cd8aaa5ef8713851e691392b9998e8083131a9139b6939a90a372cda707cdab2423e72ceb12e1138ffd125d4ce5c2c69b601ac6b97eb77b30b51b64cef96e75f267cec817dad9a96a05fe91301dd58586a37c74f914104f5a8cfddb386a93c237c35b5f616a7615d58ebbfa71c3551685368c04497a3946fef065fc39c37a656ae2b6689563fab0c321a7c2b92c60eae122345145694c65ef7aea65a2a4060997465c0bbff4a71d811cfbf93edb022e50c99fd92394380559e78a5db34b513c37566148aa40443e31d18e977bc35b1260343b8e32f6d4ada3e60d084fd6adf097a20ea75abc810d8adb436eb5e3bcaca06b1d0852e9301d7d961571529a777cca4429cfba1e8c325aaf6bf24f6c8b8123a77843f8080abd9bf441d717aebd483f1cf18e102b042cb2e58a0bec238cec8b5cdbe61fea4f9c6bfcfc0bc022ee5f50c7f5b36065703f2cec29a73795f0682940126b994ee873be25ae55d430b7a671a9835a7f6fedf4964a09bd1058a5151747e27430be0ccaadf8d2f4d3e6aee2e699cf06052f77d0f9c503215a6b2004ad69acdc8747ed63d5869d8cf3bc9911630f64cf233c932ac71a098a982012ec7e25dbfc042004d8f530b9d9e24853725e679b6b751cd7bf80b25e4734f41971938df86e2eb70dfa80a2aa3e31ce9393737c14afd5f7470790f380bb8410aba8152e51d070e71a84cfed8192bd9d3ab2ecfc627fafa891e93bdd5d0224f67d857ec37ad2d5b3ec6f9711081b3bfdae4d05c0b36c70f35b3df8b174ee7fe08c4929e9c5702ffa20081ba7eaa9dcd8187938c93efee081b8854ec3983f9aac3a1fede31da432086af172a6f78776a37a61dc1ffd8e5cf2f1dd3420d8a1dacce8f44a2faf76e892bbc4d3ad744f745a7b5ace2e1943bd70d8f366fd200b15431e20f73074aa1827d59dcd3714c36d10f4b5e0b22e2e1794983e53d21b94fecdc73dcdc048df6796b4b38aaa4414fdbaaa656bc63aaea5c11c3a7c11f8cad30f678547820487959b9eccd27e96b7ade1294875ca071956196da01a9802309e27252840649ab35a3b344b178aedb82c6e3741f1049904427a6d57c977c41c42622642ff393c7aa178918d21bc414d58c81ca8953aa680f2cc5fe7188038cf1f4a0b6fb257e1c414275b9a74caed761b83989934953a19baf98a9575c35e52441487f0b7d5645215159fcb3b7b6b193892886024c508771cbc4b3f120810c7d126b14922d6f386e25309bfb4c1494f6eb4c9572e40856150f00cee661e67e210d24a147ad19565bda14c8de45a5edc77a4865e2b90fcdfbb5003fd90d7a758cf408a96b05b6237b0728e41d5847ba118fd8d42c4843b3864e3bf07c0b7136414836ff9ae6564340d4ce226b1b608b53ffeded5c14e91aa39f869b602355f5754c9c30958cbf426d1df86a498276f130e5b0e3c1862c440ce6e41ed1d8acdcd0f305a66769590244d672d34aa4b72d023332f5788649550039975e467f196cb35a276b6fcc394043ea6924ed262a3572bd354b3685d98e87ce4a5038f3961e89764359c5a507df56c18b030eda095ef6b3568ef010f57949d3633f397a7a04c319090bebec19f521325f0d8b7353a210d462e5a3e70d768c1e8037f57b51b1bf667018e354a14b6cba7d41a23d85d1f2e0473302dd840a085fbb0ad85b19d3e569346a9407329e24817e8a374156f87d2b6b5319f5861addcabd1356e712fe3757ed9230169e51c0f3234118d20f477314514e5aeec9fbeb0ddb58404df022acba911ccc5e727475a36dc9709875303807add451004afbdb4ba7e3ce36bea2ab5c10dc71fb0daebd762a93067a465297c83d5f49b12eb2c1884d430b24c3866c900b5ef882b0b819eae3a5eaf8290f86afadcb24e100fca7538672b9a7c2ff654789319070a363fb6de40fd79e7d2d35afb5adabce11df381c70c0cfb9369af2caf58871e2c48020ea23e7d39195c1d7792651077d8daf2627c0576facf26b7819f92d01cd2375432740cc3eccf93e67803b86802f176b8dbccaadd98327ff492e5a6ecf2234ccd6fab3cbc279b5ceef49cb4d93008dbd9429bcdcb1110db7fcc828ee02f66b7da8cc80d2d6c5f4fe98d8e64930c7c4d5dc20715ed88a6aced33e9b275a8b8289566d67b4f9d0364931f0462a253efd5c1e6db9e7f79a999b5f60819110898d07cf59e6c0cb39cc252705ccbd381c7260a23804060af41d1a0c57d4e684bbca270c608b435082ee5137701f433f3e99ccb3aae30a4451ca36f0a7319160d6abe4974435845ef133e3711ce15b46e5cac0b37cc62a4ded418e648deaf27019d6ff0b821bf8c0eb0d84b531ee8d98f14f4b7dccf6eb550a525746c8eef4f1d234318dbbd2969af3012d44768dd40d2421756e076bc3fc70783de3732de15bd68464f20a7980a58eaf6784fbfcdb8306e10fcdee3aea4e9f9dfc08549b9915b0df736c337e0f918913756e97e7029bd00f5f6d946de70235cf5ac260bb39eec3f71ae8dc19c7bf54fe03c6f894cbab5867bfdcf2568ab8defa4a15bca7421901f907b726970192ac2294b5a90bbd0fcfc2185e819fb0917c4e83dc6088377dab0a080e036c401a3de501764b718990c8514af6994024c9328d0068802e63866dbf911ef1fcc05a4b831df906c2efac9bb79df60a34def5bfdc6eee7425f1bbb21619648c8f4b01d8f047debe8b1b08b1ac090bf83d4363909886b40b4f3b0f1ecd486bbf7339a4a04466cc01ef7c5fe2ed61ad912b3f447b300bcab8849917c05f8c3b8be383d7f46909b2fa0ec95dc1f77e293cea49806a581719e983e90e9fdd8097cdb92788bece98aebd951d666c22e6fe06444048d674e7f8258b22b38695843b044213e0b78b22cfce0dfae13954900338c66e216103255e49691f3f36dab6aacc9d83ea5f93cb544509e0d75c92bc7637374aeb8a0211ff989e493d893feabac80644ea092301f07ca1a1febcf0276d00ea8627aa19ac3d1b5a374abab473b13b79c202dd555fde622fdee1ad6856988c59d000b4e96e1782f42ddee2f949ba17285a7ca4bc78654ad66068d7a2f4bda254748b2685966a9da2e8ea39bf7cd8b05651c6ffd7b61cb29bccc28b7bc072a6a2e76b1005ff5adcbef1394dd4ebe4a9e47dacdaad90943aeff3336180437964085e28ff94837871179745607d11d71f4f2a04441e981b7b4d3c9f85475c2e1e89eaf8b8b2ca3ea3bcc5aade6cb406b73290fecf015d36c5e244d3bfab75c7dfab47b751917158fe333321b495478eeab4ce2cd91173ce2bae318fc3d6906f10aa86c0abd975ba889e958e9fb4fc6acc846bf7196f4a42be5dd51c4d7b5f80303b0b64e35908d7cee503749bdd67d3ff633169dd4bcf39617de8067855a4e0acb680e2879795960931d3102011ae6242423abce1ee4012f7efbe556c68371c75b857c5635297f3ba7b7e5d6f030f13f9177303501ec67315198e7bda9f3434bccc060dd433f1dc4246f491ff255752d8cb103e278d5f35546502cfe85321a6fed500749fbb51316175f062080a20d3f52da159b448df61599f5754ca046dae3a14e9e03525acd9a1fe964c8caa9feb3ada82320d2fd4bae1525830c0a3eb91cb454f9dfa43c6534dfaf6a7e1d2b19d527d4f403863518f63246889614972e0bbfb126ea0b509f0c78278ca1911797fd5da6c00c8b6b212a511ea9bfe7c45fb742a109fa40f375490c0b5e98aedcec7076e1ecfa567ec3575cbc0892460c52e94d9121c4a9219049b7325f300f04182373a0f476f91a18b4ded3ace3d001900f9316d92be485b5dbefb54fc2b6ecc79609c03b149bcf2558ff915f49bbc691b45c3983fbe61b09cbe7f17bd4365e7461ff2388720fbd74ae451f61f73f8c8b51afe87e8684508f7d64ba03f2abaff47a30ee51f32e25b9d07371f578df432fdd95504d64be891762adaef094318e64a5dd86eb81decae2c30c8fdf3ddfced1a6f1a3671b6687765f9fd93cf66c52b8986c5ac3f78a8048d969fe78d057f8779a450c4c7cf554ca935c9f7ad781dc3f50ee6ab1afc087f35e02889a8cc70a333edd334688c70e85e5e33d7509ac4cd6e854791cbdfade909fedc5614190cff9b7b4f62951fb40fda1cf62ae77d00cfd450db333f4c669eea1877afb5babce2f70733396777b2cfd1e10304272a373e67698c40475d6a8dcdec141f999eb0e3e6eb0000000000000000060e1720272f +flags = ValidSignature,ManySteps + +[privateKey = b41031e429023d8b0bde433401da448cee6c25c6ce0d570f91fea2e8e0003b8d74fbdcd92e10a4c402dfc69e0f9a8606306c3bcfbbe54ec85e67a2dacb256ab7fef57d4f9dca6821dea0018711b3356eb35b26aa04e4e24258a425143a41461a9072917c2379147a0f5eddb581b2c2cc8c5ddb0988fbdcff9d1c08c54fcd8d6308187180323332756114621031072627086111387668451517673476308050226401431411002078314320423167445105586472837160068503711651538612002474738156771546158213203634075076627856673551174036874814672276057816182646567057838472217266464286788175223883547355604825160203284740031876124021606828645257287557536283685447586264235741522524203562786368760756626425648646301601424461344720655563085148701581538725563116434750016583787202244706671656673360543022472348386355555216740876053423145207220215288173773673254851848843544367733877367684487546272360147888585062266725530267303827303330722865600064858167053545155847718656562817220613665676265531417768538725827652265147840676841185282152102433418210682713282074058278783774832155473821247506618216626566867772460343644300857213703782575258360453511208113564123347842732384425714052332685838235276140847553510686853588183647620142084011575461180651773710873788051162231133551203282062663434133720131214726826358244448642423066650700046703701165582687044848075445244378345475630155306748508628514414573817131227848117084130108806520477762153526077440526152061718677170211587781767386357087370373546246868176348642114171346466802285776887407548463043571252705273448318775685804388232083342344318526671208685586657233167087274604642575167281425403628454588035142888023158866486354451766232612253807626146002020687740653227166855384628658488552172473352822758416218056646564887688525016571324618580506235085356136623061587126233634144808168776666835652146220745411051087080675254553611328562201757380152442582026728077460687662702730163323344587228282266180028705510081833570608060460561814416388310480718684566834250182344024141512131824564345764225113366886020557736555015867254537141460332463400038080232260884007748535462375132555608478026286674331012254577082372650150743346620632153142461751843512725203645573416203086678847823547075440341236307636683765155035855388325230212466688650848266447774187762550543165086481685166114275844214757615002211585172252045422351822350485640638787260675244484488533545681306107455850048827064173728530377256055386482335626160385474622143280244166215544816121532246616727547420711254521611663025850838555761055745283275766360537451722384665566043524462602412465142360362618885705481810822765762370758274210003446007848633018138621678428488637668412478162585226721120871703455314018886714200087410810471111736637502733516078034784482313173143201720463014387511766151684721818776150764721201276223766122234542135551203814112802641134277113538458182831151888280720407357067600528185433068807774800015204222346136551664505410340801162768715705860206114026018454151640360351626715224114084513438212270103416885145676887226254837585228402210556431316580770507816355161352215424028137545704455312621082860656805056687321652606651264631473767742691d0f2e9df43be04028c83c8ae866dbf43b6a7f2721bb8615814c673837a4d2f4b3d3d10220bb399bb3f4ee10d2ce1ea47c159b728839cbcbada46bc65336ceae50a5ada6171fc8dec6d491ac82a5a08a6ad76568e6c8ebfa06c251f4bf9458c665d0a493f10b5fb9bedc9cba828e9eab11ab0d06677bfd1d7c97304fecd25675f43d556085f6c217da1a638227d05fe3917df0b23b2a2d46a77dca2c7f7f5efdb9fb56443485e15a3525f2b07ccbdf79ca56bd57bd1966eb183469f70199ffdf3be28c1f4ecdb5441a43d6f69312ff7527a4d615aa9fbda8cec198fe551d4dd5be279689ef3a23e8aa37626d82645d7bf60ef38571aeb82d535f97a948e8f44ac7c0c049d0edee6ddd2db826433318ecd7139c79064dd47c6926d9582bd5f786452696362d5cfc282770a355a535190b8605789af94f27ba3aea9081cd9fe01c688393dd00b6c2c187c91cf661bfda0b7845b2f371f0d0d4856c0794cc67edfcff61e6de306725b05f4c0074de49ba33d551d383372d94756cd105b5ccc332b7c6ef979c325383d7d1c58dd6192b14dde5fd99d8bab007a80821400afd1c3534841c88dbda4b0ef8b99bac3befc2ab7b6350b1a018379c526759712817c86f81bb879cfa949d03172d48930f8061e92be0d9cde261af539d9cee6cd619db718fd182690879a3c7d6629f4cf0c789d7188209f8126bfd0e962f58312019116b39b213199ba6f59885cf07ffd43aeaf58bf1eba74c0dde3a448ec5baa425818bdb0291abfa875bab8916a20a038ac798d5b501e1f1a63dc3ce8feda655098d5d8d7809b30f360fefcc4e0044ca327939b3badccf0a0e4e176121680e995364c33a170627d1d53fc32fecd3f0465dd491c452682aaa681ccc5b1d4aea385aff99a9ea0942148e11fac22b42ab4e4db44057f641fd8d29a98dd1ee48892bd205048c2d4c498d693e24649d92300f627bd66b107e2f96848b22d475066e493cf8f29ef2d573d5b34cc39ef5235ddc64d0449e93204a0989a3e19d548cd2d91ed9abf424c907399cb7a3137a864a9fb9da11928f56ac1a1b2cfd5629225d2956e770e5b909d55c3ef626f8ea4074973f8215538d5a9962cd7e7731bec405cabca2015d81a0afe6023975c53a265e985e4151f76f88c56a54fc0201445d6b9ac320268d68a570501973ba985f40cb552d15f89a4e7dc27e1a8bb821adb7a3777f8c809fd8a65e2d9f74e6fd0f852febc06c0daac57da1ca921e258c265bef9351473527414b1ee0e2927bba531ffe1ccbe9d182724e7f53713ad62d1308f5a81fd5176f038a5466204040d4eebedbb1fdea6c43b97058c9d54c8a69d76d6ac78e5acfd722ee04e9ab92dacc52df554aac42476314fc8e2f4f1220045b1baf619346b83c7179f5d2390cc7cf3e7d3d2425598413df5c53b858e396b3f624bb0054427c7bda7eb856cd884c130e56d41c31a9a27648d5c069fe20c72a2b8bbc85bf4992c9fff59ebe900c2d56be65e708b2d901e61c3b98f30994af579ff300e35851425a7d1ca3fdbd4099d1b1e8d1668c623111b917ad791e61eaf2248f7247315f59b13584105e29abab6029672dfa35bc00aab1b220f816796f3e1aaa457c897689b65328f4cfafc9cf7f2521954b5b965515b132340c37ff842b81b80ffa1b8cc503b260e032b9a982071e30a9c57797b6fff48d1cdd6453594eafd8dd0630408c61a1d15cf1ad4d4ac7fbe9e45dc0278b5912f9e69c3cc107f788f2d4d0c3bdf9d403cfc61eec18d56772e00e7c5de9f32ecbe5912324ec78e6d69004b75700776e24395737d18373d9e4fd1c1c00aa3f0c457fd745aba8803db533b2b6351453cdc686e4932a7f741fac51efae11a0c59ddc6d7dd792077c7ffb7491256a00a2fee5c0fbebfc59bd1ea227667afbab3919c953c9472785ffd4cf47b3d7da0f7f6c54f9b91cc227467dcf56440a2578e6fcb40478fcb9fdce30ba99e3e44130e96bea69fec0f4acdda029f20d46430c950872f2adcacd0cfdec153b3ab0b5249b4969a2a598f29783f40a6cda4a3d6ac5944e055a8b7f0d24bcdf94ebf44c401ccb7e9771c03cc0a8140d633daf2ea7db8f8bc6eec0d4596ab8b0f67bea39766f630d9fb96b26e123d5f195a5f4cbf1a2a1f4a40819413fe4cc30c39e85c0aeadb3a12324bec0fbcf4286ac13485b2abff0454d08e996b22a0f03403cb3f5c63dfb8bdbfcbc6e965899bba2c2c6e0b32140c9f8bcc0ebade8ce0ed55c7735d3a134f5b1c03dc0e51370d2ea2b74c09340e6d788e0c92d28978718725d48482248cd5d9fc2fc5ddde9e692974322355d0237aeeedbddc9939cf8c04de6e2cdef6bd074768d73e3d363c3cce748fa54cdd1ce809dd7cc6c8d523f94a8c2af39c7d2e648581f6cab89d60f4953b23aa3c2ec48898c62d1c00df5bf376a54bb8a3e5fb6681f0053f5220bae37a89dd25c0657829a34aa3d4208bc055525debf8451f04e179a271379e79f9fc092b282b3cacea863961c2a9584c0d7f5f8c222f3dd305a38f8928826169a6b9c9e1612063049eabbf3613641e9b6741dc7608732053ce4e49ea5c3404254d83a96db1505aa3717cae23d14d57a0cbe6d21d6b3f1c838011ac5449bdc687d9cae147930ca299bb8bde55e1af6ee63dfbe75f6995befbcc6085c3c797cf87d1bf3285ab67f354e5402152c25e98caa6fde3cd8123500c9a37dc2dc26c40d81a1762671a59c1dc2f9eb12045ab2acdcd2365a559b7934c26416156bc1c758170fdd4cabb1fc2c3dff093f4f9fe0ab33479f3945653fb0f30bc1d736e3104b54c3ed2213f8c608f077445e094d6f56f683fa361befff74f825edcb4694aa698d4c16d522a879d915b84b84e41804129d0e34bd0dd66bd86323d9089e2d18807be5ef946a146a5da0143b0d4f45027967af7165abf19d451e3bea099d6c7489fe754d347811d7eeed06a5cceded556e25156795b6a99c34937ce94f60cd3f13f1d32ad079ba33808a40f66bcf4722648f5b1bfbf9340571a6ea21c4540099e2de3b79f0a51eef10cf60b19d91ccb54dfa05190acdec0e23255164ca3592ce3eab4d8ea58f69258c5d3053dbf949e7a4f8229ec3fd44d07a0179718b7898bfb8a755d688638ca344b736dc359ffbb0ce169a7076d21916e7dbacbedf8007392f4b6d3084997d39a265ad0f56d5fc3e6e275d278e7fec6097b1c1ba7f351aec704fbce599da7d2220cf1aca547a8254f9770fc1cccd747d691711c5d0470873584e378b4ac9d85986115b149ceaa3936e66dd4290220cd469ebb7ff0bfbf420f47a8ddbb3e11d102fcb417bdd2b1f6106f364889f363c588642eda3c11cf25476e72c889842458ce265379ef361b367e321b7ddf07f6c044f42b754a03b6918d75068864573a7f11eada4c99a9e8780f0aa35bea894a410351419aea02ef35eb96ff9f56856fb3c5217d18dfe1b13c348051ee35cad2a40071921bbc5dbec7180368311f251e75d7abfad41c2bf03b9bed7d847755cd1a6f9bd] + +# tcId = 66 +# power_2_round returns a remainder of 4096 +msg = 48656c6c6f20776f726c64 +result = valid +sig = b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329 +flags = ValidSignature,BoundaryCondition + +# tcId = 67 +# power_2_round returns a remainder of -4095 +msg = 48656c6c6f20776f726c64 +result = valid +sig = b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329 +flags = ValidSignature,BoundaryCondition + diff --git a/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.json b/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.json new file mode 100644 index 0000000000..49dc77a91a --- /dev/null +++ b/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.json @@ -0,0 +1,1026 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaVerify are meant for the verification of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop). The verification algorithm may not notice." + }, + "IncorrectPublicKeyLength": { + "bugType": "BASIC", + "description": "The public key has an incorrect length." + }, + "IncorrectSignatureLength": { + "bugType": "BASIC", + "description": "The signature has an incorrect length." + }, + "InvalidContext": { + "bugType": "BASIC", + "description": "The context is invalid (too long)." + }, + "InvalidHintsEncoding": { + "bugType": "BASIC", + "description": "The encoding of hints in the signature is invalid (e.g. non-canonical order)." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key is invalid, but the verifier does not know that." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop). The verification algorithm may not notice." + }, + "ModifiedSignature": { + "bugType": "BASIC", + "description": "The test vector contains an invalid signature, generated by modifying a valid signature (e.g. flipping a bit)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + }, + "ZeroPublicKey": { + "bugType": "EDGE_CASE", + "description": "The public key contains a zero vector. This makes it trivial to forge signatures, but that's none of the verification algorithm's business." + } + }, + "numberOfTests": 83, + "schema": "mldsa_verify_schema.json", + "testGroups": [ + { + "type": "MlDsaVerify", + "publicKey": "f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f74d9cf676aedd1067c91a5dd5d4edc46f868a93ffec9f44e254e44f682a153aeadf228e8db7c5fcfed30cc3408e261ab896876bee56660d2a7c1d7eac20c5754255206a178f7156295065ce7876f90c48f44bc37f3a00e32eefd3a4bb1e298fe283d106eaef92a33a594253a2a0790976a1d04636f8672d28c06c852ea8bb43b84bff512996e7616963d5b9a2906466a152c7ea9be178be35405683b44367af85d2daad87630c1e21ba5490154f0141780f5ed0407cb0b975dd56d5930f9b26413b843b83f3693304b0038bd3e4bb398868060ea18c9c67099376470a50deb052e4056743fbcdf0341b192663bd1c21ba3b3d5666e0d0e29c4e1ed0759ab0bd9d1d355011b94e0ff0c049b03ddb7138640667144fcacd7265f55a07e5387f1abd30c037cf14d436aa855f827049215440d8007f61460500d943f57ffb6bfee6fedd2fcec52882d7d8da1aab29e892c8beac3df3234b4a7d2eca3a45c6623c52bbdd07c1c94314b706988a52029f8f8b06e874b741d72926652c78c6ace2cfd8864eadb2e4b39cafe6e03e4edbafa2747db9bc42f92af8b031e3e380846b1bfd15ade88c285d6a6fffe91eafc8b17de6cbc68575f323cc09fc20e49e8efd76f9568bec486b78df4245428d8d0d5f53873e11de65fda4c770b521a8c67f5c51d48cc26358954514447881fd9a42e5891dac7e1db5249d7861b322111e5fb929bee9ff5e9d5a2667ba93e63fc03040d2e82648f89e89dec1d1d2dfb9efeceb7940f7dcbebeb5a239cc1c54d8f7d52cba220d0634e15df46a58280bc5a48840bd39274cfde150f9ad9a40f6398d715350925f0e0501944409f32331a362bdaaafb3d8ce71c964332d6afb7e684f99951246d88081c86744ae68133f22c53a4b5ae258f230a98491d2d43a79a6d0f4d54a3b62013965ac7c82d0507125a38a0277f81cbc1d46cef2a131c6f51b88ec0baae0c82a6a0e72831cb06f9116cff5111d597e01057d32805a008f52c9aec3311139bfb35982789ff83bdd0c31e9f1080e8ed8eb99fde66bafb29e3357389fe3785b60c78e229ef073e1b65e34d848bd4d8a4f251551e2d38d2546afbc205d3c6dab34d2b962b1afb44f1d22fc10c6744fcd6b636afd3cb414b16c2e0d708fe9f51ff19120bde693b028b6d1e6dbe37b4b8b3bc7c6f7a842701603869d3ded572500f085502efc8d3cc62b30e5cdbcb5e86d9c0d42973bf755df539cc0aea58f9148386db67bd2bf70cd12ccd96d5c66fb271416b772465228dc44b079178f9b766370b66a79b871faca246ca6f8f63be9f0668297ac446cad5cf4a83318b1b00ecbd283f0eecee60a9a37a27abdbdbe382e307970002837dfc0bd3934ebd008918fd4bd383c02c9d37f694996e989a49075767ebc4a2981ef5275455e026cb0bd70946cdd1fadaf251381d324f9efbb860d1b280c29685bab97d010676273b45cca12ac3966aae342c84e2357eccf252577743b8787967b40b07ef2d3d9e6c1a3bcb059cba0fdb7f0d4f815c242b8e14acd3375e608e9230ba3cf8718f43882a3e1e661a2bbe81830d34741f33473e263b3790abe67acf29f5df44865b2ffbc96975fd62738a64112deda5a2534fb0a23b3b3024df986391badf9041c593c313a7ca1e1fcffcb65b07b9a99337b4a4acf616cbe1553eb9541f38aa6247342905995233a28172ca13396b2a9662970120f82b92a213f43de7a232ccca3268265c9ce042d50915430a6c455f32277da42f9962fb9163b623231ebc080fa7b8e9f9021fcf85b98f9c483e4d2226b9326a5bcb2e7449ef029ae142d3a0f0c28bd4f7e9c51a12e1336f24dfacbc3f808a8f7dd683027bc948763b808fb0037394b8b41bc9b2ec7887e67584e03d11b15ca203b2bcb43f8881638c4e4eee7f846d09c7f89b7739df22b2c3acc235032ba8f7ae27b5b9d25733143e80a4cdde6770719c1e66ec2ce683612233e88fafff84c0745a98aa1254c8219c6c556348c2b5d1beeb61532d6bf7bde153271dc647460beb65fe0055b33fd6480dcbb9d7d471952cfa5be260c39721a8c5c89b9e966ae2dc9036451ec9f2c49433b2225e13f23e20c2bfba81a7b3a555883449238f7d48213e9f10ce19e76f1bdcfc73ee5524bd7d8be0a4b46784e238233c04fb99383ec7726f9717e1179dd14fba9ad6c2ebd1699f0ab0e57e6cad23875b029e89cfda06f51266ecd2eed4edafb51e82f2a506d57ba74da611774ca5fa2fff4a976519de425885e7d09219cf815b1767d4fc5a72c18918991a285086a6a766614a4d245387da50f28dd778fb33ab88c0918feba3768c55bb1f07aec33cfeed33d6faa4d34fd7227b365533c1e67dbc89f0b20195cf1cbd480d333ade1c9bb28308085b72ced430268c1492a27050c43668adc9cf8b8509447cfcd3c8f8d8eb554f704101786aa9ebca86991d250776a37a1f56fbf7d08e591f978da49c3870625879f70e2418aec5cba32fa8c346fa9038baebc35ad0068a4d03537aee14c2e71570a87490377fa8dd66f995aa044a522f0c7025a7ab2dd5ad30a64268dc112b7f9fa156df64d631f55f1d6edc55cec570a9c7372e29e02c8d4867bae249431dcf6ed2794a0183f0f7501201feca4a81d334c642fc8d38e9a90fa77429665e09e214797dfa455ff47c4f219d3a2cb0176bc2236455123c1c5da714ad29d580fb194f87173a18dc", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "empty provided context", + "msg": "48656c6c6f20776f726c64", + "ctx": "", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 3, + "comment": "non-empty context", + "msg": "48656c6c6f20776f726c64", + "ctx": "436f6e74657874", + "sig": "3a1f0e89fa72e489e2c4c1607b0f22ad03513725660d1ed7cc9a6b83580247a101ff45480e4ba49b1feb3bde46952139d3e1d34d7da0124e8ffa05bd19698be57ffbd5c2411f01a0588898cf4af2b3f3e1fd83e8befe03806d91869eb496c8ce989761da7190e036eb2bd14a8f9e195d5ab8a1b2b11dd56a098c1e7ec6d508856aec98b74850e1b934600b8b7d33cea5f79877cb9b1452a2fbf5fe09651c83c2b965aeb496a2a4edacd4f6f39d56cde44c2f99c2f0b548501220f553a1ad14c6d8a970d1cd6dabd4356568621d22c70dbbb21dab61c10876e34fb20d3f012eec956cdc9ed81c98e2810c218dfbe1de709ceec9dc2eb2590d31fe9855f8a1d14849f9df5120bda5a0392fd6cd93e2e8e5f80e6b30f45e9b409f9e251a0ca2aa8ab99394e9190f3c2cbd1bda77b49f9ac887e7ceefc333cbc49d080726cf373753addfd13fd4204f12c07a21fe2ae5d513eff664c0ae4780f4d4f87a807ec63efe098e7d196223276f4564efdd574402c77390d2cd72f4785501f89175f6d38768b6c77838723cfa66d42e3556077039ee8fb363b67c174fb70f78008229263350c14b54fd9361a9cdb29fdc57909c757f96f9f2c13905f44c3e40a16a92b0fe509ae9cc3647afeedb032464b176b6a1afa78df4fd6bb765e37071172bef2b6d045b9a51701d111b60d0a639c0ba034d5c6b4c146d079a340fe53e9cace778a995ceb2d39f302f066097eec6f65f775a5e803f10af031dcb3eecb2bc4939f478c5fdb96e0513d9ea90ee2cd46ba7fd45f88e8c38a23e06fc5b2c624708a5dee0d00bcd976a8f75e35c80caec5531ff4ef8bb735cbe7ffce86290eef23248b19272692b758bba1de7a66c63a58315e48f5b127849c759d185908a730f1f29272003e6491a0b4aa9446da297338e04a60bd5f8413778aa08cc0d146ba76a5ebadc775af2b0b3976acb54de8910417f857499d8395be90d207615dd061317e5385b886281699e484a7f958715dfdf3ec30d5423d94e0d1657a24478967513fc741fce01f848f9fdb8fa407b7cda2f7a0eed64d9795a2bcc9e12c1d09b4d71cdc9dc3fd2ba82251f0a9fe5ff32732d2306900184e4296bf4b5b92c106d72a638c5f6713f49a7099786b32ba7a8081aaf0ca40f9919e0645fb255c8a7f4aa672999ab84a19b9d759ce478b7492b48a83eb9bde46e7c5ea1883d03487ba01c8a9c4c798a765b18b311115d02911dbaa5566190006ba40f5ee86bc22eda4ca3d0e8fee49b1a61c4057d95cf797c30a7e06d1012c1af3622629de1765d3bd928df0cb9cc7e30299c5148f782af4871556a0ec4358019ef6a434ea3e0292e97c714fbdb3ab14837257947eb7adc9c1d682123a016432e1eea5afd039bfbade397a9360b674832d2c55d521820c0cbe68bdfbba6eab8189aeeec781362fb289883d2a2fe87e287b8d940ad6a4136b7b388b38b0913f2fba42dd079cac04a071636b7e5bca67b44860cdd9e5f9cd77f07e524e9491addac1c6a66dedf5a4f814fa54eb9586bfcb1a6d4a1a166b1074d28a9915167ac4cf279e8d22555df57cfba8bde251483d9b2aef08a180ff74edcbc1bc2219f01fef23d77fcdc1d41ebe683ec96a75a4784945335736770f63a5f000da542958558b5ee375c1c16a109d488d8b17daf2450f35e0ae08fecc139bf8d5f51f1d9a1cd738ac3bb1e91a3bcdbf79c6bcc9a09eb11bc97a7062fc4e4e1c2e796241dc42481d3dc89b31d2337e8cf727c43dd393bb738710ef7ff96521dd92be410f295c765a823e1984e63c534d5f040753715edee4c3f0c78cd468eb9322ae8d5aa92b88bb172082cd08148a8d208d21dac81f0cc516d08f9c0b7097d91bf73badf049b62085328e347e20cd6ac26c64be5271f4761a16ce90ec9c58b2b71c998404e1411f1a1c5c6a6fcbf260eb3e325d1f70132b5f41a279b082712005347fc7d8a6a960ac1ffefb33de83cd6bc704eedd8ee937487635b696975a7156473937d7c301579c4e531170a6d109d50185693d9dbea24781f391fdc1baca492f00867d362797392af50da481552b86f323bd297b6a0cdce20287f0ee6119be14905ec55851768ef95d50130965c6877ee8d91e1fe19fdbef7c80ef7f93968a0d717c354f071bc8cde4d69c84a6e876a261e620a0f7c959da0c638b32d58325b13ddc9fbf566e1f411edc9b38a2bd031a7225551c4bc596958b1c22d5ecfabd2c09448417ba8568938a1cd02068d4ae3e0821dc96247ca6b704a0af99acbe5ec66b28b7c461da48743ccf387771a15eaca6392341dc4657d5c4c986b0648e712ec50f22e3d68b272dd9c34b63aec5686daa5a0f9bd259138b6d967cfa368c04c48657b2de2133b4c47147877e080d5588b09ab0b19d947b6554aaf43601b1c7384707f3091331a0583abc41bf448283eaa4bb001a44836de63e66eef64b04d82ad32c4369bdca012df554097e493e77e1b26acd103b564b6e8134012aec9cdc52eea80955a76d1beb2cb87782157adeadf2ae6c6a4b49c031d6769be9b42e6f85c8c5a6d61947f931c321b45dc34822c8523408c77bfe32048719537361fe6a1c9a8f3467cf5529dd597e19285304c716f9144debdfbeeb16ed742fa17440e02cdae4816699faab22cec162054df5d6ceb6394cadadf5d60abfe5c1dbb3790e4a98bcd9a84f6d4aa8e5934d80b40d8da632ce6640ceb070ee6034947a094337c013075c1a1267a95c820b7eb5f2aaaf20736f09502faa043cecc39f2ce7ebc0a14f846e38fbd514b935d2a46dbeb778223f20694985d27273a9be7e1be3c7dc9b8af87c58d35f4cf6559f48d27cc7eb1c050c76d85edd69995ea3b2e54868556758014ea18e18c11db61c56436ca2ac66260635d927a72cd707ff5e533704477bf9f578848196e311369842846588febd3a229d0b4fc04a5848d98ca55c3996e34d2154efe73a63f052da1ceb72bcd844dad8a4a4546cc6f94b2029b4e2c8a65d2b50673668e7abce6f054d50145b744b8103592bcb4804b446e1b7f4910843f5cba5a34e5b17309eb287c39bb98f6c220024e7582367d3e5e83737ef64944437c9d462c94f61c754a887ae4e5f1d2d64497d2b7fe8e885af00e8e8ad2d998b921a654616866e492a32742f319efef91df3f2e3d2697a4a12b107ad94da1d64ee6c67f0e9cf5aadae3eef52a22ebe342199cbcad564cd11685e0678ea3c91bcb67278ae4a6ce5664e39e86c3233cbdaf812516aa824754f6493cd5559848a71275b35f503ac84ccec4fd172b09f9ac40543a54059eed72f77eaa8d56645986ec8767e78c2df76f33e549b561b977fc5daec7436735a46956077b661fd05dfa124fc30165d5a14d9215e75c3134cae2a7a8fa490dad2fa745003c2d74d83ed13db927f4dc5cfd856c758b39915ccfb695c915c3ec5f3257ec38a0ddfa1401c3527ca271c856f2b00fc4f44416f7a387aae1e88ca212d81a6b4ca1e61c1ed2809e41e78ad8fb170ba1e0b138f061fde62eb7cce2eb8ae434b37fd4eb78b85990e7f6d21b32b4cf9dc57fd9b46fdbaaaf25139315a99419cfca963b19c3fc2923c041bf43ccc6147c3f9736a162a20152ee40effd6a3a29523d77dcb14a70b4ab512bfd11980e30bfd77304eec045d50b5923e22def0c83439e4d0326d9a20e53c43797dcbf17014f80ebc2b66fa6045a8b402b7fb182b43bb8ed6d569568732723b0f7807ac79bb676f35221258fb1283bf7c275b2872f2c625b7e1211b381454ce044a3e8a634488ece71e6fc58b84668aa744302b8a061b5674cdad160c2d9ef600385998c9f002fde9c829a6be84fd27b8cdb8f328064210918f28189e0dba18535d978efa8a8157cd5a477db7e3c909a54ae886008a65ebdc3eb3f06b89ca21ac3981d064fa15f01b1ce801a2c515af3298c4fd5979e6a651cec9ca50476773a755f96478397dda65db9fc32b2166dec033bb46fbad0edfd03f3c543e144c15dbdca9b83f2c3f0d5357cab1180472c7264317b319ad50dbd476b8f6545d86e5e399cf6177461141ce2e438db3100a0bdf957266c9758f7039817141bab0b3ea234c317554a1b30081eeaa6ccf3406a2a3e38d0376d2c50ff03e770be90cc3bb1c05ae9ab546e21d5f1cad5a4df5b53684789e534f2983bdf41bf9244d9594e889a2eef8a64789b0e327d3b48a06229ff0e48d669cabd64b7d0aeaeb4990571e275c3026a75106083b32dd1f33511877c7bf78fa415243d59474044bad21c773e39bf48619a7bec8b55b951b79f097cac697860b20c09bacde7a5e8054774db8da54742c32264f62246ad1945be13f1f7c856810e9205fa8dd797fbd4def035107f85ea309c1565f0ee1fc1e312d0bf753aed6a8b7704d8a1b2e88703511e6ec48c17ad33cac96aced306c8c08dbfc12c242d6fa52c4e51faf4cd3b331f57544f371fdfeff6c2d5abd7a38ef1abeef3a003aaa7ad6d4dbca80cde878cee6c46429d86c64c73671093e9567cc807f9f3cd9dc501878051166220c2d90915ef8e5eb46c0c07befd7a63cb38f5e9b4a8f32483d998b67fba733e7888c6297359fd32791beda81f7e8cb5d8ee05124b646db4ebee1e477c86bbbdc8d9f2151d99b8e6f0f23250649faadbe7ed2642505d7c89919bc10000000000000000060e171e262f", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 4, + "comment": "longest context", + "msg": "48656c6c6f20776f726c64", + "ctx": "414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141", + "sig": "88b645448a1c81f55c81631d057b1ca1fa8bb42af19f1c2dd2bf12594f23b86e17e383aefec687503d0077658497fcc508c8f7b9b6ece29777cd6625c4accd38e27cc4822ffb61fef18380362d29ec040773c9a2ce8b6dd7a1dfa233b76774ea41c766915afa7954f5e24f992d1dba4862802bf775d70c422100717a0e4d9ef9e6d217588cc6b9e1199aaa4d89e78ec1c7ba567c645538e4e6cb7cbaed4dc0663ca36fa036ec1d4334249cc6183033459c3035b4b56f0837f15ad908e2d9560b39e13580497ea8d5e8ae5ce71ae876b5b1e1deadc205e8bec65a724eebc1534155c1f81a93fb5bc6d00df71d8eade2905942a4d6234ce72bec2eeec3edfb7da4a6cc67af12c616bc63dbc16ff1467f02fa0c99a4b135b6a71e37222982f91cb466ea920fea4a729ed09d763e4dfb1bad062ace603c65f952e2df88c6ed63fb344d353265f21aa0e5548676c5d4dc24ff7f1ab1aa91ee19e9d0e72599c85f51fbdbd4f7d21a35ca87ceb19cc9d28df071538f34382fe278bc512f534cbc1f747a4497bc5827de2aa7b672bcf44988611c2e8e8ff88ec64e4ea101d47c88672b1794c1af23ae4317b6b5fd2923ebb7c25239d9efd86489fe8177f6f27de7e80833a344c3b907300c73ce9f9cb2a39296c59d70e180f14261a51814ca7c8117e33f800c126df8c92de498ba9a443b480c9f6c23d26e73b0299eae2a1223756132e3999cdcbdd436a9fcd5073c3e6212ca0dd3e734e355567bd26776526c15dd1b2c2d09d8604da0c0cb38dbf5fc4615d9d5a5ad217690308e34f549981656be6b144de153b9a428a314a19549688d57c8bb4543f12424622e1971c3b26772b3e74743d668c9008debf1ddd942ede5206ead676f249b93a324d60bcda8be119a61f9bec64253ceea1fc95ca5235ba41ff8814f83698bc3188ab802f2a6f33b25412a729635b7e530536bb90972750ec905ec1336e613112ced0a3e68427a2888b4135f8eebe4d4a9cb104627ddc182f319bf0586b82a9edbbc17c11abab38f2add065fceb1d419259597e4ba91ec5d15502f3253bbeb75917b2fdab1c8457af97ec864263d8dc501e9ac754f59cde0373efd9b18463a27eff11199afae22711c18172e077a0feb457b08ae8e3bc6614a2603e95eba9eb230dbf48c5173c1893268fad24e31a5bd323d5b224c0a9fa5fce2afd61178390fdce163b4ffa1d8aafb248ddce727070677310cfb36695b8846c4a32a9973c88ba0e17a1c26d62f716858200752970ed6490eff966201c9ed9cf223ce714eac732d52e0f63365c3b2789bf8a09642475407da12fa19394c55919af3a02d31e26f4270d71eeccc5c5373ae35d1fd9a07d500623b1827c4674287083cecb466f584e31ec933bde9c83c57e8a90a141eaf4c456688f8ca1353e64ebc7cce779241df3e34e7353cdd3af446812c4448383efe1613e5f1f6e9c08c0d5971e7ec28874d7865e3bd4cb1fca0f7ca1fc499c718a8ede6f91a8232991ccd78f918ada16271e84c6b8b679a8d5ab5f7a07ebc82b01f58de7a92753a028679ca244a72b13eb5ed2910da55a998c1f427d2403d33862b05292b1c0bec902b51f4efa0264e6295318c6a44befc85e00ca887350ad86ef9fc45a4a01322522f74b7ad63abc6c08da9118319d84c0b2164c9300feb1f2ce80de5a79918bae083397d42a9f415a40f0347d25c82723d62b1fe52d02a90be1cd7cfb5c1732d644db047eb48b50ff38ca74929edda7385cea85a07c798cf773d4d4e29efb70125307582752001d8f3a4ecde8db26964d34f5563a6683d4939d237ff6a68361f0d2e863bdd15c39637e83efb2b75902220434a273b3ccca148267aae092d8a2b0aca3ff1b352cd6b331bb63ea3e69cce2c86174c8b2e0d061a35b067f2fe7d9999e2c1c07f07b1e98246af36403b2a2bdf48c7e4397b3045303dd8e3af1138389b0967fcd146124fcc97fa524e10afb0ddc1294b7543f77d0dbf0bd845b7f9c36dd91222ac30f89d59d3d048949a456b43338cb1ff1b8392b083fb6fd71797cb21ed52b94377c9c69d90111a30612e65aba8e85fcd95fe53b49f18952380c1a9d9347d21e9a00633bb119481d7292ffd25ec5d4dd842ba2c775757f1a5d26025e4156f3db85741bfcf60f5efd580bea6fc617ebeaa78baf88a0db57b13bb5dbabb9cfd6c8a56b635ecbb1fba800a0cb30a6c241096f6df1f04bd44b3b99a93545c6cbe6986e5260384824875a4ea2ec84e6574fb6f08103c4da71c6689cba16cd28e8626233bafb4edb9ea07bd02676351d57261586832ad67b87ad61a59b7e7b8519e85ccde56722a6cd2a7649afd5034f98f1b9c1cfb7d320f491dc90002bca428a88cd063a3b30ef09fcbc5d6a4ecc6887e0b05b4179c0bd4d8f4791c5cc6a801b4c54e6568469b22b52638a5a514e550df53aaa1ae83fc9999658f86ee16661e301626fe77b064bf94b00fea4b8dd0237906fdfc6cc5294e526528675dbead67c7a4de642af3d9311cd8f2ad66002bcbb35668da0b8f2f02feb11b1b89c264cb5a088de45093cb72c4e6d54ecb5f1ba5ceeb2b95c023b412ab52e77338bc3859369fbb6996a35842b578a3d844d1facc6e7ff7bf31959fb16680cec82534792913dc2aace4143f412b09fd09aea82ae48f2d16323a8abae6527967058e62311f3458ec0f999a3ecc087501b40a0bd25f6fa6d126775bf261d0f3c4d428dc78c6b594bda8426342728ae4035e8527e24e01ec3ab9193dd2a72c84524aaa685bd3ace318dab3be7d89eef18a887c772242895ad9d555c444c670f2641c462295ec0620eacf3ba75b8fe914f1be38dfd9d12b501e09f931556c8798e1a40806c67833fbd2fd40227e3854e6af14a7b9b300fdee969e84c76b9a142b23de64c27ccdab63394c6d39e66315ba1a376282e8f7580ed60eddf9ce0724c57aadc7a8ee5b491605ddcd4c4949cfd6cdc0abbaee10238d57b5dff3b38d3607e8780d7bed5f52f524ea06a94ba7e2ed980aa132fce04004670d520215f715e2ffcae2ce336af653a754e53de4ac26feb591e923a6a5cb9aa97e71f52d0f4698f02eeafa894faf56121d380e24d2d82dbd5687e162ac7e93c6d97029660485d5db8c886480c6339df8d7724201a80dc54cb9637767522e50e5ce696ae29a04fb5b4b6740bfda56a9b80b507bada2aca4264f0de6493e6a7f631394838aeea1eddcc9142fe31558b4756f4f2745f31b58c2c1dc1b2550cb5bdea478872ab91393048a908673106690c8afad8096bd928e32c965bdcc3a7cddc9411cc36faff3d9d4e7a5afad0d0c5d3de867b990490edd8497f3a03ecd131e7424d5b0d29543b3cc7ddb6a1522372b11de1649046ce787f6fc8219b0a3bb508f1d6ec2981066dae16fd127df52cb9055a139d7a68f0f4bbca77e7ca8ff6902a4d87a59671da1b867840fa0e07d8e3667253a41525ed18c679c74cc2fb1b7b00ea98090eb6f2a24da3885efcf6fa31c66732614083d114e7a2b0478184bd801fb36e79f670eaffedb9a3b56d7648009c6e4c33da1f9888b54ec108d21c68fdea0bc60af17b6958479f91ca9685d9704553d2126c3cd240deaf5a0aa8bfca0e37899af660fa9fb5aba33ed1a5ea5e388015b6cfcaae014e933969623a66060f5d396d3bd0793ea79bf9189ba24a36c1b79dff7bef60f921f27d2a46874b282d5ab9839722b495fd6b0ff494f3410e0988006f8b4bced46f7d0f41678097c4f8d5b690055d47c37a887e0fdb1ef45d90be23f59d637f27bc13f25750b83c005e68ce669fe15e47f33b4bb989f043fdadaf7c11dd0e652542d5103ae73d41ef574dd82f0a1144508076276023c91adde4b126772ef620b6450bf5b25fd29dbe3a529014b47243328e309ff4245a8aa667408ba5b4255879ba6bfd4f57cfed9219f88c7656838afeb58aba3d86157a4d1385e7a29d4db695702566f424f3b84f9464a1de1e5ead4683b38f672cbcab96b2c23e796107ff5bae2f63418fd3ab622868312cb1aa45911ebe5ad6ceec0d9138f1e10410758f024f1b641dc099e5bcc83fad7d21d503af50f7ee12da5ed1883689d8dd0edebf6085d90380f5b55af179ddab5df7673c24a253bc3d199d41a0e860477eb1055ab7883528c9602ac748dc1de5cb18d191db75f81eea0db9949ac34cc284643b2f84b5b3cb13369a5ae40a4b59a4462783c66df5c84d123fb6e171ec2f7801622b5efd6dddf28dce5ae844db98e07a24295ec20159448e2fcbafac66c004f6f9a1c29ddef7d500d83e783443f192c79205efebf0c104f56c59c59ce7e1906c6c35b78417f1d9faf94aea8e9c77d84f1e021b40423688dad22c209c9615f0f09557ccced493c06f4b1a4bb841adcb50070eee4d40ce61eaadab7294051682318d6fccfde090f447303426949dc93f2aa1b78c70e68e7409969e74aac563748827a232cb8c277a3a71d53d8ad9044e78ee4dacdfd8f31d9def44a9cf36f48f019f7013a2c622d19505236d18b3ac6ec5eec629b801783979f9bad8ee2c363268689c037194bd8cdc3b4db694e443328ea40122235f7809d403910667d99324899ee1b5f8890d65ae93d5a899fa9d5ddf6324a99bcbfc3f1688ae4000000000000000000000000000000000000000000000000000004090b131a1d", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 5, + "comment": "context too long", + "msg": "48656c6c6f20776f726c64", + "ctx": "41414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141", + "sig": "d75d495e0aff760275e801ab0c6ed1ac7f180c51b112122fc0fcf303a999261efd3473bb1e46c7298a2d49b2b11934301145799e58cd91cb24f052e90b7bdc1cf590b6736abe772f211d8deef50fafab63033bd04411534c233de584ea1bb0a73d6cda890c1f0206891d55e9b1aa3352c0365dc56449356732e74b599ce33724ffef2a97897ada2a37cfe178a3ee47f8002fd2e02873afd935890f1e31043a7d17aea570285b94024c7fd8ab135e515799e1b2816d4131e3c5a5e1199eeee82f292cdf3a1c290838db1c46baaa2dc75c379342016b06ef1768cd30989bf5297ebd57adb6d6e0b4edbc685a2258ad3393c555bedf933c566f0f848960ab6c2036b7a1eb971a4519898e2b25d8a9fe0aaba7620e580d1c1a6cd6826b70c155b4135831986126613c2a78cc4ca93d900b56f77db9c7214d46420ebe9be0995f9615a73f74b66a4ad1d5570e07f2f9a690750852426f1ed0e61c3c7467ef8af0301b4e4caf01b7eb96f8ffdae739cae1ccbb39631520709e70494c36f9e15610eee5b479eaca35028c1f7ae1da78e4e9bb03dc8f228687f414c4d3ef427fc25ce44c1a06a8437e12974478d84bc566f752a0ea08101ae60c49facda27481d52038fefe5eba5db3dab643bcd7b00b8f9237937bba76df5adb3139a605bf52ef93c2e9a56631b0f86e7be961e0b1e42e8ea4401be99af9b45b01104f5b879b81ce07ac4732eb5c937e7a017c430eefd4cc8baeaf57eab48042f3fbb2a290628873702a9196cc8fa793466e8d381f28f5c050deaeaced44889520af258b897e5427c3deb74760e9557fbaaa80d721f21792a5e8c97e536ad3319f58d2f1089a82e35aa77101aa8e8e8b249a608cffb921987e16dfb2a34ba8590f0c9c2a6c879c59fce2ddf8b2d9747136a81749698b7ba4f5d56f12718dd7c9e296fd2fc52a0a33c9bc7fa5632cbb8c73bf0f4ef427c28aa7e57ad5c069d4b68095c539b1f16623aedaa1f30d43897380cbd1d8b9f6699a38c7dbea893457937aca16aacab67db5bb60195dfa1c0cf02e3d368854ce2191b59b05c6005a1fa09b275966035ff68e91f3c820d8f3473748557904206ab6af36a343ef93e3e121f9490e8770f0b2a703b932b16d4ea19629b7c2b26bf2ca7a07ec6fea8cfd4db85d185d39731b0f3df6cb07d152cd960640facf1c3856cf5b47937644ff9ae17f2037bc7b2a31619273d012afa35b331f78cfb50d23efeab8525be11e313cfd9ce731696a558cce05a68fff8c55bd103af1b6b1b13c8bfe9bfb9d0e86da12b5d9d5385829490a89bdf4e4cbae80be22ffb624ef729917d849c572c44e35ec5cd8354d770bffa5b031ee1f2a76b077b241767f384092a21b016b5687752f23199f0a09e5fd701090fa9c289ea50d26bd3a8676f49b29ba54785b3d20431cfeb519ccbbc0141266a77e7d5bf4bf3299497c8b1d1b40c2f00cfcb29c3a99876a43076a89a13cc58b5af1d72f87e1171d2b6ec9fe4fd318e95590cee63f1a2a6a2090ba3eea95061222db4c8b7cbffc10b450bdae10c0f82fc6861cbd24b9e4d18e4a477f7491586ae23f7ff10e1963a874e0ec97779cb33b4d3262c504cc59bf2c518b7a6de0744297fdbafd8be05bcda2b2e8fc98808594e2a204bb72aa9a425c493ec3433ef5af84208c7c47105a7ba7b936f189a64002a0bf07aaa16b449f79b32e7bf238fe72ab2bdb3e3b2a64c6f325e8486318c50bd905d23afd2988cc92ec26078b2fe9e6fdc5e27fca279c5ad535a70e66b5a55efffa1583b8011b084bbb9b028d2154f2aeac02ca66ec8fba4cec93feea0291e0017c8ec14e49c0cc2e5eac9276f64ffff107dfdda08baa8aa43df97c6adb792e7b781d2edf79763b9656794f0910fc0c17c45cad7f7173401da1f7fb9697b571fa6bb23fb687b71dffd21092e78966ff61fd385f0a236c93aa2d550305e183eca91d284f161d5d2a18824e7148c2c615e939fc4299e84b686e3577f16e8489ec0cd1ed80e8edceef398d007957b571d6e1680e641fa1cda305f993b92ee77f5dfa2e2b4bacecebaee0085c1c87762554c76c5db6d9515647ed615b42366c05d77bd0c7cc37da56a52374f1c4a01ffdbb50a05956f5a5c9082b1de4bf9e7abc3bf8f6bbf983a49108ece5f68ad07b3f309757e26e9bee76ea44223210422ad192f1d1102cbdd0047f07146be860860c28fbf5aa9b401b96cedb9097d9c95fa71524a5827fd562d600655e7ad3e4c592c67faf8a71dae5094e4beb188197ea635cb8d9b25f91f5df2e192b55d991dfcb7d696129e956e13e5518cb7f126b5d0cc9e87c5ed00c2a15eb0d343f283f658001f1addef1043ec46885099278477de6d329506659fe29f7d192feb93a39d3dc8d06913d4b7b621c300d8c01efbc37740d15d6c8f2087c2db3a2f6dff819e8b2af5f5ec52718c970df9e5694e7390cbf7999d5c739845f2ca98d5a4789887f0a6648134c518172ff62b6e85852dedf351d3c5a2727c7e0a9460d595df70961730ebd283519668cedd430621b9af7e04a54058dd6c04770262a75455f7c5f477a4f339ab6d4293a02eee565e3c7ac464db588a64d0bfe1e1b9f3f1977ddeb57e20449153da8881db0565a37be1506f551b8d0490353b799dcdf3003c4ee378dc16d76592310135c3879c2d05e69ba1f9aeb58c6187945617691e5872a0f322506408d5434818cde200e60fb6f40aaea77b94e4c30ee295e8e49b26ddc69c54b5f12bae4186b2e7e886585f0cd14b6475fb37a217ae79f87ae3303d67968f3ce82a40c6590b6cb7a6f764c1f6f69642f67459fa1f53f04eb73142351f0249f4970d3828ed7cc6f7cbd74fdcff388b98ca3a9747d1b70de11694a5e8fe1bb81f37445c6b53933b47a1102818ce623f914be67f51da77f8d666d6d77162aa323c5673749bbb01555d3d204de2c4053989348fd2cf61e185ec8a453d91b09d08a10ef3762a630c53adec121af51958cedba5f82b8b0ea755e74197a61a09c7350547767c2ece07dca5737a97b885bb1dfcc9030838acb4c356224af7672ef9cc0435b404be37f74ed3f042d00f05be35781e977abbbd46e594831c07b3ee45c0e170f2040e543743503262a59c9880c1603c79f316587cde475d6236279a194986db710216f1169a6c7b42e987a9ed7b4fb4212b8bb25bee469ec96d0af41a2e794ab54ba72326069cacf2f5e49b2eeba2ed0177c2ac71816d9f6e2c893fb54369d901e6716d2d04fea85c809cdd9d2fc4cdca6ebcb10d810f764f1792f4a557652da371a3ad6f039d14bd9f5235c8b9c5b5a48333c798ec000fe44ad6c9e7c9e5f57d406e5e8ee8154574b7c76a2f7521947c54a67ec44807622aad566df4d463b3bc0ddafd0fc017f1392cdcfee32e96ea8cdc42cb6e4587cc72d03ac789070c210a1278abcf286e23225ebbdb5bdf917938047e9ec980434ea6566d3aea655ca8a1ea9651d2f0c30169c29cb73a975bf69510e1b6ef8db72e3bb7892e2991488627f716fb7b5ff194757de8a2479a4497f6da76a421b988534b78f8571b4d7c3a2493c2b7b8b02a07eb43fb2fb1d203b02bab2125e7ce41db5b1ce0bc2c7f0706837715223ddb0dd2ba58a98db96e79fa28b1ca14be60058b2ff7b15ae2cdfd38f1d63b77ecd0de4c6e0342b6535724231e797bb717111dc0f0714c40e786a55a2dadaf853bc3cfa324063147802dc2a3bd6a881d3072fb8addf1f8607a7b4d4dc8386c40593ee6e5651c90786077128c9f6ea10aff3fff1e524b3ac1ae1cfb2cc6f659f70c718a821b25e31d7393eb5f5b95c06f0958770cd1b3ca5a6b882aa5c3bc0e300560426c4194b00e4dff3d300c8a47f6c5139bade447b1357eee0164414d75379ea6f696bf15e7a47c31cb47fa4b5608eb0593ce58b61199955e243a8b12cf26e21e05390c2a61b562de5d70f0113f1adc3f3a4d2de7fd5994f6360a3566128104a886e27b349671087c348a101e6f6ed673699962c96f699fbd3aa37a95517a6c99d83c69c16aab974d144b3dae33c9fb850b20ed6153a212ab940d63fb546154a0a377ac16eaa58e97e1a1a5bb4c9e845ed098755bed89abe251e8898f3aa9fe22ecf8b780f32e741b59e4c56a6db067aae97db9cedefb39fe580af8f218bb13bebd51ccdff133fda9d696bffef58f0a46013a31ec1a75918ab5d8e9cbd6a79421ebaea74007240a6ee379f1fedd904e8af829a2dc92ced035f60e8831c73bd1070ad4d5068ec3b2d58069adc6166231ccde5a49a779340c52032cc9434fa479270216037807f37ad0875bcc509ff183c9c518ac22ab527e01eb5dfeeca74c78a400d1ebd2e0fdc1ec19acce8e53352b8ce154e2f671e930cffa1a3a388739f73824eb085ad54aac583dc0d2624e07da1e0c32f61dcb83e632d260fe9c453cb957ee54d1437b1c1c1c6f919916146fd4c91d7ce0e25ee7209fce21c7a6f77abb91dbe9c6d9e3993897965f1cc2fac0e4acb768eaafdaec0c1b1f6e16517be4a7b946f422e61896eb4a368297dd222b8a2f0ef0f80a9cdf168e5e13ef7eb974bc73768655352271e4c38eca8ac5210a4724e5ea0c0e18aa2cd101f216872cadefb05133062c9ee39567a868dacb2c1c43e4e5d6aadf4000000000000000000000000000000000000050810161f25", + "result": "invalid", + "flags": [ + "InvalidContext" + ] + }, + { + "tcId": 6, + "comment": "short signature", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f930000000000000000000000000510131821", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 7, + "comment": "long signature", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b00", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 8, + "comment": "signature with a bit flip in c_tilde", + "msg": "48656c6c6f20776f726c64", + "sig": "68da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 9, + "comment": "signature with a bit flip in z[0]", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b279c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 10, + "comment": "signature with a bit flip in z[1]", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5794e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 11, + "comment": "signature with a bit flip in z[2]", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55013efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 12, + "comment": "signature with a bit flip in z[3]", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c076547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 13, + "comment": "signature with a bit flip in z[4]", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d602331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 14, + "comment": "signature with a bit flip in hints", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3d3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 15, + "comment": "signature with a bit flip in the last byte", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 16, + "comment": "signature with hints in reverse order", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0abd6d4acfc7967937e7e080f8f3935d47342219fbd3a27e1913f2eecc972e2c11000000000000000000000000000000000000000000000003080b131920", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 17, + "comment": "signature with too many hints (causing a buffer overflow)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b1319ff", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 18, + "comment": "signature with non-zero padding in hints", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef22a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03080b131920", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 19, + "comment": "signature with a repeated hint", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef20000000000000000000000000000000000000000000004090c141a21", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 20, + "comment": "signature with omega+1 hints (causing a buffer overflow)", + "msg": "c806000000000000000000000000000000000000000000000000000000000000", + "sig": "cbb10acfc660a8f47b48c09a8ad95ebdf7d5699a417096887ddd70508e82d3a49a69ee8c0a2aaa6d89ac126675f6c955ba4b8f234ffbd6fc0bdfa6bb95cafceb72c1b047fbedbbb192a571cac9398e9c19909852709697bc3def2d3583aa7874d032d6b1d36d681535833ce378a7be08b43998c887cbde0b6a8ab0948a5506d59f604ec85ae84bf72eb1d36769c5f2eca3b38ea6917edd02d28840f0cab3f110b027cd877f92e59b0328163587e4606707b39f16e5140a7156193ead8076d084aeec93268cef5b9ee0756e0069d0e9fadad1b1ef71bb49ecd95da70d3411ab40931c0c30a2c4a3a8d87de2040ac64df2202b2533c4be396f9e0e9d383f3573982cf7e05b67cf6f53d15454f48aa1825b22ad9dc9ef1ce6db827bd0059295c2409d1e5b75fe6387c795bfe22f6528825570dfd8d58fdd90e609e59de312e7ad90e1dfb1b302c90d1c71c4a5b5c0034a0c8b8a18de6fee029ccba1bffbebdf3ff82d99ccc329982a8f04f0cf7857c0826a6c7a9505da3c705f7c8913ffb099269d8e3eb679685f22450fcc969de7e743af0280d40c2861743d56bb92c992b566df7a29c375d836b38a8a6e3f89102735e51f4c65861bde29b6d692375e9e5344ec26d32ab5d1247225e7ffefc6226093289d0c6a8655d9ed7eb5a845bc6b4782d4cec07961ced24be1b829f57a05eb93b18adb5a18aa5d72cecd2c6592614868a845b6cbff9b876e544c5208b3097efadd383ce2ad971c252d67c6a9f2ed3faffbf845164de52bd195c2b2d3df673cf6d9b2690aa7e4050cfe404da6faec1fafaeb4b9064169af0d46bb30b55c80b655f0d6472ded24c802af74d014a14dad2fd88941747ee0097de87d85191584d8c4b051aec8653373ae2a1c2cc16c354a709118633f1367838e491b11213531bb0c3bf6170825cdd94d44ef09de2bfba62c7373b479d64bb45141e130c9de3b0f794b40bdf3bdc0f6fbfa17cecf021586a914422e83f06debd5d02ad2bd64263abe226d43c247f42f36d2d47ed550dca03ab844048a0c96e725c249527c60b866063b9b6b4a1a51f7ced09ca394dd01b784a30ec3477bdadfea46f34d376603c4da1f07a80bac5ae436baab3592ea9f9f3b6bcefa27dab57584505dc661c24a89612d29012d3dc9432191eabe5a30ebfab94ed93fef419759ef42462edd662d3c8137d13c530b489340892a4cec72783f0c7c788a24d43c331b3a63d75951e4fd84ac251df2dd183569fc031498c0ee826debbec605ec230fc1e49eab7ebeea6767181cc3b47f1dc7dddd058c51ffe0f87e6648a5bdbca0c0686daf6bafe5d158eb7de470adf4228c24ea70d8946573117bc19c8f25f851edbdf4fb1d69500501f9ec5f1c488c781ca8041a8767dfd9275b8dda148c468104b8ac60fffae510b4b0d31c9699d8d58eb441b3d6702d153b0702d81b41cdcc1e8943d0d5147c737e85af4f014bfb2908488372ba716129d63aa66ac8c02f91d48603763fb05053abb58e299d1cc9f01bfa7222c4bb37f6c69ac41743763a0b1b416227dad58f6f292ad13b7b42987f1d95921f997bd3aabc6158fecffdb3ec953b77f37effbc754cd16c22915dea3b800692e7975d4fcfec46c4e213e53128876495bdd1e5fa1a55e21a31d9704c9b08a43fec1193bc8ad23d3047060eacb17ea591a49aba6535c1caac0bb98d73ac36d19d84e6e42a8e85601f6376d1c7e65eb0505d7948b439fe34f4abb99c4e759427bcd100521263c181297c131f22d948555ebb2b229c81e7a00bcdc3633fb9d4e7b478f92f369e3a3a9db10cbc76be2e7a2932aa610002f128145ccb01716f1aaf5bf0959c4dab108353185dfc4e77d4aaf3f4e0c69caa0a1de7a2ca9edcbaf390861c486992c3bb02aa1c9b5c6a6a22c4e49f50d5e771adab52d693e8c2bf9af298ebf64400ab408c365f1a5beda25f8e1d2d6b708c63f5f1f667061ffb735960016dc393dbe7fec2a7b46dc4911bd46b06e222f530bf997b1e31db8aacd7f80a267549c6ae8b600eee5fbbe2c764634dba1d473ce148af811a7ef2b2a42b975ff5de88819230a59b5d903296597cea937affbf552b80f845c2a388a08bd4a4002efbf48ff70dca76c101d0b74b95b758b9521d98b8974f889eec2c3d79d9ccf6ca262f736de6e3ca93a551b8d2c5fb8b73e944bd05e62503cbe7cda823547d7446a8a4616becefbc8e558a4de3d62ba91486bf4033d4491642790be60ddca75eb5a68fb36b0c6ad4e70364b077ab8fe7b305caf7c70061aa8b466020845363257badc2da8861cccc504aa0bee7c48f9ba403350d4d46529b08e41d30af6f69b7fdb6fbec8ab6ea3e4eb0dd8c7e3a77de8ab47610e7ebebd9f5015bc7b7876c5fa0b891a0fe4015827012f10260943c08f389aa67891f0af67d5e71742bd852dd1160a9df66da04827cbdf3de6a1eb8e4e24bd2b1dc680a1073807795a2e9ebea30cee0bf6479494b7f5211e233f2844a663a00155ed9482943132d9fa0c966cda5f1f64eb96e456053342027d14eb3c70062c0db2094d693fec31d06241d886b9dd9ff13584a47a7b843757a75a6e28aab82caeb3ef256c70a17a6180dd890a8e6f4c6b96711daf9f799b113d87f6bcbd56baee9dda09f6f67fc1b1e1e64fcba8497b20339540cbf7ced0e21a554c35e257ab64cf4761d12dfb457dd9bf2f5ae9701d87c8d5c367b047f378556708645684ef9e58eadb8ee3e4b97a86292bd9ad8acef3a3a9aaf0f2039be4640a953b2cd8b19fd5d469cc1328443c4c0ac481f98997f359fd561e11ed2f03f123302c8ef74c60839025e11997f82988dc3448ece0640473a1738551a4f7e68afc84c45cd92583950da4a8b5a043fac1dfb1343b0a1f706a1e5e8492467bbd1924fc3d430978bea871ef59062cd29e2ad44becc9caad78b5dc3c49e38b8b26de0d957e8e73699e5d2f5281108aa37f03b12d5bd50d904f0caf4f4dcc74adcac837ee04dd21f199fc42ab39fe6229002ac48dc4a60fc35eaa653c30bd275b4ab7d32a5e4d09533e7a3dc0e826d8c812ebadde3ec7eb3987c17ef2fb00fc1b6ac82d650f56646e9a11ab2e097e0697954f252a7a9a390559b79ec5d38da9e5b0b6f027c158643837a1d4ec93b50ba3de8296e022463c6424ab47561950e8122637dc682ddabc523780323049b1ff5949394844856b95e06307ef3362b8481ac2ede882a2e91299433d18513038cf205ffe1687e8fb011dd40864b602602fcb8391d81e05f6bfe5f09bc5055b2696f32a771321b30cb79fd0b66a2cb0a5208c4797eefbd81e27a67a6a0bb39c309a71557c78441d76b3fe7ac00956c184e9646984ffb2751f61f72382842ad62a032b8de6e2317cc2f2d193ef498a133badef5b1869d85edd1f94a4f458cf21f0b80c3f2ecde7ca19a0fc7c7f7a8986bd023a02a61ec667c0c709b1f89ea5ec07785d72a1f2169a1b5b1522d8292ef30a677662080c91fa774f28ee40aaee0f8afea96bc7d858eef054b93f3deb604c5f9929b1a5092f68a67462ae7fc60c11cf29ca950df68d4060edae6fe254160525fe2466a9b97144e8401b230560ff5b3ae53322905c8d7794d2d4d63ce55eca3c1ca0dc97df11fff1adae8d065e3943bc8b1a20ed1493569c8f730b1adf11001a3cc9cf23d5919a4725069fc58eb1f46415a57f668a2d5a584ee41dcf1423869922f78e7292a846c3bc2fb81ce36da0526967590aa548a5a291f5eb69e67391b0e257bed22095999a70b2d8c6d39f23551bb25c94584da70150dd01e1d3d5bf26809059d713368f7ff0fc3c8657c3c98871b27ef04a958e8d8ce255d831c28e8d7a72b74adb806df346cd6342ac6b4de114c08acf7b9167505aab8d6b5742c0539252ffc531046998990c727f9d914f9426bb024af1e32bac4ba5d1072e50adfdb49feaf9472f82f74459a660963e857ca46db64d945d19d6a3f667dbcb253c28ff5e79ad9ac6c9e11012db47663bf69e1be7e1f829920144d0e8bebf9557333bf94d8707b98165a2fcc7dce2460c5bb5966d57e535b234536c430b540c32bc6473f7b5994d4cc40633fe5f3ca0e6ac7d1e65c55bc15bbf643a97a346e6abb500e439a014af2592298572cd408c14050656933d4b9c74d45864ad3d48bfd0c7be151c82dd7543690e09a4c450059d703461192ee3e9823dfc6a047493302256df5e5f59b820614547ea328e78250730ea608191685ae747d323a9c60b2c470a724d1fea2f789263a8683873bb81ee692fd1c26110118bcb69cb7880437f251fa8338e4378e34434edce0defb0f0049b44572402e71dad5f56b63f774aa435ef79883339fbcdf52bb6a9463f4fefdb94d3e151552792403f6997c160727023a9ded4bb38dd34b4a54a373ca403720be4703d9fc3d1fb1b7883f58cf0d875871e6be474631ccf3e209d3d4beb5a6ae2815559b706bf583fec48ee1c0e95e66054bd7ac2479d1d773dc4e36e526ed70ebb02e74d1726fc9b5167c4496eddb822edef41994e84ae1172c1abe3b31c800c1baa04c71b4074634be600166026e1bedb081d3a632641a9e77766e579c3236741b3d4448576498c6c8f20439657eed16767a8b8d929ba3abb9c3d0181e2e3d4e606a7ba0050d1f262e67a7d0e4181f85a0b5b7bfc3c7e4fcfd080d19222b37", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 1 iteration(s)", + "msg": "0700000000000000000000000000000000000000000000000000000000000000", + "sig": "424ac14fd2cf3f7eb28b104a7418909e84eff42d2f6e7c4ed3874838f8580d918a5d229f8ad72a0e093959da15f05e9942fad12ac1fe73c9de377b85a0f9d7203e6f8d3d4e83e5ac52a82b7a77c0096d92d40f2c1b7e194673faeaf16d7bf11342956d14d7bcd45f98ac9003ec86da5a1b2775d0723ba7350b81ecabc464be480d834b3965fd6554d340b9a11add210c6228f29a8932b8b6a00263777039533e1580faca62a7885372fe15b4e441a7595a13966fc05a95926fec9eed7563b1347d2b8d55e15212148e9f7e6e6b3e8dc30c6a1d213f66f574588ddf5d559438b1bfe01e851b15108baa97b64273d2e850b8ad504d2defb158e1ef3d4af5e1cbebfdf8a0e8037ba4def90bfdde7f2eadb3da96becd9e6a95e286e120871217aca6a8756f3ed7a11c2f75e1a82f9ab0234b1cc2c8178ad690e8c2798f1eb8b83178f39d7fdd09f44d7df268e7e062566a4516b1a1ceb97049df4646e8156e678c5f1fe2705b0c261db71a9932b8f41950e326a2200908c4c0bf3681384ae1501f5ddef8ab98133519452c725eb84f36814577108508809015af4d8758c23afea3815a09537477e8f6c7694a81c1d08c822843b9e67d95592eff819f6c2927e403f9962f36364ec2dbfe494049884d61695331e32abe6272d5a44961b8679879a67b142aa40729630d8d24bc69caf17774c6e2b3021b9181a8a498586a0f7d4109c5c82841454785873670dd2f60a4c278a373986333120c1b17b4297620bf72c7fc126205c1b240c6d60399b715579adfd96492e350a4145ede8d075ae544d051f58bb9991575a6ddab224c9c83a39b6fa9b49444fb0d2b8e32464c216e42d02091ff25122f85f9454f6d818034a30e6252cb0d25b572de3ab1c669709e04fbdaeffa26d0fc67d250da0864c71d74f8c08b5ad15cb95a33ca5b03d9573e83b35cc173afd97e88b9ea859861384cf8ee6338bbe5768cdf9c84cabdb8b332aaa7574ba200d496aa1d6be562f59be022d7d9cc63fe6a35100b664694b5bd1f5a610cc3d7a670f45b47befb8cf705339a8a5adec9fbb9f1fc4196fd3ad2a5ec9f3c9bd48e96bd6ac7276bb00705aee192106388f2fef2cd3c7cf00a159459314260dc49d9630d9bdfd0245db95fff41703f3236ed1bce77582dd6de015ed6d8dec0f2f2952fafc0e11479487a21c1cd61f1a9410dc730dfdf01527c6ae4072eb1591fb5f9b6117dabd9458331d9fdf582acde4b9001c6b6c6e048120cf15534db40e7b8f77fdff60b08a0ed6a802095fb76c71062dc34a612fe34f6598529c2028487457530c154d18709381cdb36b4ec697a2b921ec9056c86c5e73dd74b63f1844b1240c703c6f6373018c2daebb7beb55ec0365c76725063a3fd212ba80bc951baee1b58ceab532e58754ea44b0cf815a0624e2a0cf5dea9bfcae56b7ac74e4627a05bd8a2539ea4d25a3aceb003c8e7b750f0e8485eebc84b130a54ce8926b54cbb54b94db057f993ab426fe1a3be7a997782fab08cd704b1628b9d40af916730014d71d71d82bc09a7a17855c314b9febd079e371598103a4fc6923fa47a1979fea54c0bf7542a6e54d5cb92814c824d94753095d2fab232153f204d16aaa6acba4c72ae358eab79a8b51ef06db93cd5acb606ddf4dfbbc031f697486c284ef2627e3e65a5998f746d6ed934cedc1204c72694f6738ef0de7cf25bd147c938f3e7efd6def80c01b690ed200c21f56df02f7f31e90c0f05e61c60e2279b307664f491fac8f3315e48040ed63f6b68cd7821bd9447a8cd9d95aca3b16d721ef8e90d668636ebb4974553f41e7e9b075eee4e83e118fa74f2d7197fa135dc53146e7c194645e4f07412693320117cc3cdb1bca814e0e30fcf5590ce237e0479bf088cb0f68c2dc0b53203c7c007a4bc6361a32e3e153cbef1163eba0a3d7e5e133fb30c6f37b3f92e94abe270e7c3e8c97056bd12a1d588f919d65db51accf624e0a356d6e6e0da3c67dc298746a39b6313bb658e3451a2b1abf7efb6c1e63b83cfaeea9a17ac8f22587254227f5adb2f41f367bb9e4530c7fb93b78cbf60b7619a25f2f7a00aff9d935c294e82102eb0e96da7c3d4c87ccb896a5e5ee3ee13da3d94655a66c0c3d781a67c23bbd53cd7eea563a8d63100144ede22e3af96b69ca18d5d5be5849d27c1db28298d485e2fba3c7f68297c7f883049d73ffbb3a300c5aacc1d8a805205602e410e76fc48adb109cd47624c2822e6dcc0db0a28be5401a79659d19b8bbdf131ce04fd6278130aa2f203b9e0f52134a3dec5a97c4753da3127288ea0969fcee232837ea067e8a34b6dd4e1ecd7f37b8e956d137be78be955854a75d84a339f3e80bebe8d295ec1149bbaf115bfc84e8cce1cf994fe067dbcca2ce1c378180bbceda95444ae535a9ffe1819caac5cf95b86219e95c62581d1110daefeb4830043a7a9552de5a55f250e7f1aa5993f87647c92c27256753d6daf32da18c1cef9bd5ff5a7a8e182d071f1e75d10be89f02c861a0d05257c08c9e12f877a22c8382ec883c592a34722f1138a1e8b5ded41e970b97ba2a69c386f94b508b38a59b464dee983741e61d0096f499f3c552f43ca317ddf073e0450e800585053830681d4a8a8ecd5b86c901285c84278c06b86375a04fa7002b259cd61d5ecca426aa334659284945ea6c5adedb7d40835c6134271d641bdb19cc3617bfdd53618252b4a684a259b82982b0a13cc90ca931c4e90915d2d7a0abdee3f78764b41e3236e2ac21e138c0cbce20740cd17f34eea236720acff25161ecd4c903e33395f51d2c51583407b35a044d54caee2b66dcaba84359218c6803040b19a39c0e4ef570fad7330041e024cd194326891547985b10e505c6e6b1abdaf3fcd63c3f2f08b2d93aad41e83167d969e54b12745b328b5cfb93266afa793bf00c86270ab98e2ab44b2be16b5e522ca280cfb0a9a4f744900f0f44f6126b787274b2a36232c84b563dc3a5879c83c34cc6d644fedc3912b10e9806f944440b00883bb76d51782f928139117c7358cd38a460ff73af4d417278b7bd463da86ba11bc88cff14340a24f675905c7edacb121fd625187b90a3152115b3ce1f49432409fa629384509cf51426948c71e76da8efbde2eeb7d3f3e576f18d4fb61f90d99de2bfea2cec28468368610670890ef26e05bb108dde48095251574c20611ce68890144750c62a9792815a89ffc50ff0d76fa0f708d917f3bd9f840b11085445784d2017e54266c69f3fbef4c8fa82c0723ba58736aa8466a81b00d563dfa074a9a06016ffb04f029bc12c53585183f237d84c343a13b08b484e1625be1b0c661f697ad5097040fed2d3d46c6b1229157729b306694bcdfeb4eece5b5dfa8043a6fcd607e2f82aeda46e88f8d59f2032fa439365bfda8ac7b9e09ed8020c045757d510d5de5dd0b2520b0f74a99d8fe7b1915d82491a270d1a1c554d0c05d14a1419e71dbbe5df225fea5c49b73b84fbf079dbef25ae8861e58ab8bab6ec4ad07dc10072c5627029d4a74700193d12f439a5bdc41a284b92499b3ab0f3973529ea148053da54125c2969603fa55d3dc30170568ac9642aedcdc817b0f4b8d5d31925428afbedd21fc7f1132fc7e85284723b4f26ba1b50bd5fea2d81b12f4451f97331c6af0c82aa9d962ce034df061c32a1113990a9f320291993c9d614c42e2aadb5dc52c58daf8d22bb302e1e64b32e16394cc0c44cf93bcf811e7ad772754b6e9c2dda630449e005a0303996a69f5ad647f98908af4f857af804294d416db784c34d2d5aad7d840e135ecf6b636dd33f4ba29d0f12fe3967260013662d8bc23a34a0f8a5df93e111e8792140487eb04854bfd9bf679e1b38de028ea5fc457cbc8e2706fced55f5363425b0c2c13cbad1ef96d18f11b0fb3749a561504b8fee8cfb4ef9c948e3efaa2de6ca38fb445382af66855f3c0603ab175aca17e1b005deec73b03eb952cefcb3cd5860c40578e8a366da62a431916ee212d9e5740fbfc42f6d0e0951fd2f213a8f6f21984e01832c0dadf56b3de4833b849b7d0c9125d7b9ae5c6f245703d77c0298c9b6abd563529b3f2986ce54462f050d18dfc85a840b1633b2b0373e585f77c106d70ff711d03362af483f7812965405e586d6988318effc81e9fa918ab278e97e0d6d3932e24ac17ba537f568f8b16bdf3d45488cb34f696295f7321b63a76101ec283f0427a533544f752cc9d3c277c59997e01604192746353421884142fa23dcccb3acdac509a5688089ee919230a9e0ec2804254a153f544977a634bb13880f3241daab08d1b73bdd8fe4a187e9b4c3758eba88cdcd9fc104360b2512788f4d31a23c80b78c150af10e1a41dd279e895ae9e66ecaf2bf32786c11573a74cbbb93b82255f9ed190dafce6803f07271889828696f5f8173772a7142ab46899c609136713cf7a3f4c5e9718c84ee8bce8b4b5ba83a09e421c830eafda214c0e0b3dc28d0f1adde9b5fd9fee6a07a328807d0e983cef6383ab94c415dd1e649d9804f571581ae0c7ab2896e86a470a9eab94f2fe9e138e91ac103cd770d27af9648ef83b5254696d72d7174188bafb05114a788d9726c9d7eafb182348618cacbec6224186909c00000000000000000000000000000000000000070c12171f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 2 iteration(s)", + "msg": "0f00000000000000000000000000000000000000000000000000000000000000", + "sig": "46b40670bb3da2c35f9649c9cd3fe613e63335a645b948018b3cffc864412f8868192a9d81da08d1e768d0d33d4f7a609dae1e72d4408fe5f5660f7714d7d3725deabd87d32d66d041124a0921a71ea30d8758427cd8978c2014d83746c7c29ca7781125afa4ebe984a11da34692342493df2c8fbcb50c83e56c9afc3df2a5d317add757dfb4439841a8d91d596eefa656f1953e7fdfb63e29a23ca3825a1c04e09f766ca10aa6bd05b9dfd7910db1956f99326766839c4dc0f653f2dd5e3a508fe13c2f0624d3dd0c0f764c164d231cd1f73646e542d7bec86e7ea0336583e86c2811db5e28e18f34122e86a37e1de65f5d7836c35db6079bcddab304ab6cf752dac710004fc24729d760d3d9380270c5d1d777b67ac830dd52c3548bda02f0f7d0331aa6c8414fa7307237456105c3c5f8463aecbfbf4d8c7f7c3b06f940592f12928a7a018595c1972705f8798fc75e2833e95a163ad24f367cfe85545fd0e0992775be5c074ed111cbf001bd536d1ce4a0430d963728a2e25d71c3efe9c385a6841d7f4c6d293a64f83429f064f3584ae0983dfa4f90820dd229f900e41447c07db5dd2a61868438b8f4eabd475da53e8f1c7d1120e366d774bb95839f6b3ada1f704198e06b13760447768753fb449c0d53acc22845a0a4e5b047d008e08e2f65c577026863ed25e1dd7d39cd4f0a7d823f4250474866b80ae3a2d19838cf24a265bee177d20b9fe59f2015092b3362a415f05e91bdf13ccd1bf3fc901a63ef23ef74b41cd74606c687ed6fecc665ee4fdae3a305392f59f9ba7e6c4a890c56c3115a2cc760f3166ba1c4e534a69bbf738c764cb228204799afdedd6660fd4a6b7856a84e714e58247fa068f859796cc4271ae915e62d3ca3fb43bf884fb8cfc39ea89d3042e453953849efcad7852d67471d2004b4ba8937a5c508109a19519fffa989a39a6c68f1ce9268469af6baaa7e0a93362f5b87b0ca24d5151b99bdac16885d335d6bf11c2a574a734999815843121bec25ba9775593ef19f809be5b63f5fb01b29f8f0eee9f1a69f514c0f17e90d40ae9a97f6fbaf5804bd036b6ae7cbc161865580f763d9abea93625096f3730c77cd0242f387fca2fa573f2638887417bd80968e86594e1ff547ef5ef4b9b49b0524ccfdb3701a8de2f7ab2eccce22ba93bbafafcc1359c2e3652b67250ed313d6564ba245200c0107fe749c965ecaebe28c79f24955a436c41b6ebd7f321938f4dbef88e30a34e5b2a3763381d0af8bd0176feabe3d467eb985cf4ab28e465b7896b36d2aabfbbd26931fca9b76e2eb1befe51b45d640ba468488da4093fb2ec7c77ae43c785b6588ebfbf5568c1299eebf0046e28b5f1e897516edbbbe99843e551012daa0157e03d1d41daf987b73ddb361c064917b6b8b4b23c31dbfe01e56960e63cec546e5684b057ae5f904333dc33ae1b0018875cc13f39e11b247db82e43409ecf16051be7e8525c9a90b68cf491830d2c583db07a5bd95ad69af0e4327cdccb9339d96a4aa201ebb86edfbe7176cf63a409872f73107c3f4f068df79ef817efb2f0837e665c7f2fe0a56c4e392d63a1032eaee2894f3bae6df6a70a430b22e9be6e15bef3a9af5545332ea3a62c94d5a6aaa8870c303b3460b3be88fa848fb818a3e1771c329f676941a628acd948b260541ecd1701c6cab3311ed86eaf0950675808ffdadf0b97f98e9da2193258b74d589054014dabe4c501f2e0fd81fab9cba2f9c8f70be8175da44bfcf01ec6ca5ba7f1039b29e27e5bfd67970e5e561c693a1ec2023d53cb1ed32f3614cc132701dbea3ab4d99398f23eac52b3f5c5f46a110d77f0d9c660b432bc57cca8bd38b4b5dcfc619aae56d7cd686f3fd94fe419f8fc54c9ea6611b4f512504ce87216f768abafa48f3825b2f9afca3d419151d1637bda8aff5e2f9a7921421fdac429c66c6a01832c7041f74fc81c47e4172f9d95b200b1a84af4dd9b677670bbf356d590f2fc1aa70ec53ae94331b2ac0f1a8bbc7dd600cb06c76f2f340aa2c8ae102cf9c4ba7126414da52a1d8ce3504ee282a02a9564b149c041694313ea3f11d9e697ce692441b3baa25b308f42eb7f9d03ba3b5638fb96004fd0ef2de66c6a573ce2570e19e75d5c2bea7d5c656c2ad6990cd2d8feaa9eb025d80b6483e6612888ae3a66f646a61cc08534fea6f31447af5535308e81e3dbac05b488fa9dafbfb31b7fc1773fed73556e9caa5864b4871ae4d2d472385ff62a61113ed0f7584220aac571b69373f2618887392f88e4813822009fca474af81a342e1fc7be442079fe882e8bab95b147c1a196eb079c7ef718c194e5d6a5332a63f3f15cfa08453afe796dc433399c75d8e7ea603c17bf1a133fa1407dd76489c9950e501e64d09a7ce59f886b3b80af926443bd3b04e33e97adc795fb4b775c8d6507dfb7aa254d3b994e6412838a03209ed3ae2c15cbf67cf00793c7b7bd4d1e36b56aba5212c0e8c82752da39686254e5357d2eb0ad691be3feffb1b09620c2b0b2181e510b47ec2fc0257acc3b847b90c0704eaaf48742e5a50498fceaa8945180026647a7f474cada887dd657f4003080d5081c1d37d4c2c8a1ba5e8562319d741b01bec47cff4fe1625630051b12accb6c919171073ff9cdf1d138ded6ead47440bb2f99424218156fee650daff3c777168b43548da1b946bdd16dfdd099d83a7c427f97f83bab18acb2650846d39cb41e5283564232fe21394318a2340f3ed2c6c7782d27ebaa780ea81ebbd33841f834756b74d99de6a17280088ec6bdad04144794594ccca8feee1fa09903953df806291667b686c9d5f77d89700b0a29ac9c95ef647d0b4a6ee30b99bbc9392a4769f4197f4289892f926d744d8b62e067edb5af6a6590981261b7a9c3c9f2b69833251916e00ec5710514fdb29ba3c25285001ab2652de3982f7bd960b60ac2fe285525f588167305afd30f059ab723c1105e6c657b5dece838d79d4dbb2c14cc50d123166cc4a4f01d15d7f8d4ce10acef8ab06132cebbc4426762b6616ad9c8d700dc7c53a1bed753569b28f6fb38e2334e50efb6b7de233b93ac1e0b4a71c7cfbb7002d6bd2a7f91d22cd080c182b989c2045fa5719eed2aadb2b409a73ea00ca3e9ae74e7fe61b18e25a8abed293651352d50eb2a341ae24d4549c93102b5bf8d9523da6cb97d6f0fbf4b64d7b65e0ffbbdec1ac74ab2217c464936205760f4d46139bc9066fca14b65f004b9432c723c4091ee0e81f5549200aa99445635c910303e697e0a08847645a98c12aa9eb42fe38265b09fb020ee3f6fb23f2e501c3a8ce5fde7326d2e9aa2e20aa770d810c3c11d86a6ac0296b296f2a1215fd83cb369abffb3d783b9805b0f46d853c73c887038584a30a17c8bef62ed7170841c09416924f67198bb07749cbc12412185f1d5fc4021a504f1c417ed5965a864140364904d33451937d38e14e8452f7d414949e9932e552afe0b33ba1bc63baf2190d8575e90cfeea69f5d0a3182d726cec66595065cf9dc22657cceb7cbd3afec14c84e900071d9d08849bcb1e20ec70c1dd4046f914f80a41afdb3b435b75bc125cfa2e6896b288dfe947f8c3edb82113a6eb6c35bf450191ad5abc514d9eeb6ed6fe5123f7e5caea3de2f19116c85def416ef5dfb47ee08957fbd87920e9fdd418895459b74a2fc62ef11be0943cfa22fbf14cb859de45a4b60deafb70e072889344107d0fe924fc68aa9c13429350eef78caba5352566f8d80b64d016265e264a1b5f00064de79c539b0552dfd3880dd9f77903465c777cc78fd137f199030bfb292383be3caabc1b6bcfcd0dbf4b7ded13b93f91408751808216e55a2ec4d39051cff5784b0db9e4d3c38fb5093bd23b29d82cce55e77710bedea7d9f0ad6a47929faf26f8d50bb2b2f038aba8d970939f4e6fa02c3f6cecc76f3a4298f66a7976b475d787c3d2ed3496a4cd9c47f864451f140be914141546580364a64215504d36cffe6f61a08a4f1940d965f39cb442c6705e932bfdbc29b612a8abb3925c3d9bec1c9630f622b0ffc7d8ec2425022882dddfa46bee778fc94e304e9672cb9931cb4b75edb5514c2d930e0de245f15c4dd422c0fda02f6b104c0b37ea2df5c04f83d9a3f644930eb54e19b7a2a5356359d6370bd4635fc576918be8547b7aba9f11f1dbf10697c8794b06f7ca1316c0e9ece8e51aa3a6d0a77672292ea5fdd50b399175d452f18754e4f3ebc41325982e2ba3162974c30e19fd49bbacf10e3cd96254cb3f43d6ce1115650a0522ac1b14acae1a3231579589062bd63a55b1aad407c0500b420d0840e49e941a5fe6c6cc196ce45d0d16289199cf9a29130f6235a3bf9e8598e2b0213ce87fd676ab5b621a284567172fbe5fcaade672cd55d1f6a5535348472fc836be896c332919fba13652b941a35087b44deecb7121191c548e8a7161b561a6f8f7cb4beae6b7f3d194f420ae758d209abac2f36c144f067a829cbef57304ac7541f7089bbd97821312a4c074be9daf5a000137825e7a406ab564cc16fb7ecfab4babbf00b1f13f8e009481e88f55050d1d2e313e424b4f6687c7973350585b5c66f2fe698a8cc0c1021b53637dabaeb2c7e0f35154babec6f7fc00000000000000000000000c0d151a252c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 3 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 4 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "70094678fbb346b4b40e967be25e40f3fd6db4e03dbac8ee46c962c4e7f7c4d2f18a7b44df87b89e8d101bcc264c30d32ad4aa54e27bd70a4d7c4717653c19887afbf6f2359957c895ad477f7d9964e1e941092dc4fc8fddbb77157b31462a46e84f57906fea21df705a01c46b01f3212d91011e0798548ba8eccede6f4d9bbd16d787f5862b6e4dc3d7328511b199c32b609cf90599f90e156d2c00a97bae5b801d80479e612ec53fe59d0e5e6d7c2d2cd2a86f1b0d8caa3856bfb437ecb57ad2ba85d21020cd31cee7296909b19a45cd3303247e4e918db4bae21314366dfac729776c17b5852b000f9567018e7d052226b3b28fb5512bfba7c3da3d1cfb0c31c7cfebdbf5a4e5009ef76cb73316f6ab64570d84c39472f85a7f54918e9fb003a293c8d2787ac533b19832524e5956a96722db2d429aa69e15f3bcda7d887796647f913d5d4de4fcac8024c8da8223f62c973169cc21809943114b6766d3179a17c83e58a752468eff1d23f04f05d844d0ed40faa81bed6f1750d8f15ea24b69b403e12213c2291419d04555c15ce8c1645669f7c4f46f4d26ed4cdc4655b6d6c61c18739163c1f6290a5b535601f345e5a1564df056a9519a3125107b7a082a4c34dea36bc7c3d57af69b7bef90e5ee02426b96dc28c8300e1207b7df14c4209ecabac3142b57d059081da49cd4221c1fc4a159a34bcd95149b73d4a9d9d7f25014fc011ace2f814543922e93737ef968e8e20e8983d3793d733e24cda69c6c36436cfb658bd0d1cd7102686e33ea1626a61ff6662a8be36d0032fd6a2893f5386b471028044e5aa38ab71d3d8f43992f7eb196af9057aef710ae149dda63781d269c248a3c257dc21e30c7423d0bf7322e4f87780f284a92930842feb15c3e624d713a4cdfa5fbe9675cc9b1bd36707285ae31038d419643fa959839ebc93cd66ffaaa720ca4c3bb2b109dcc2dc890f19fde05966ad0d648a71e988ab142b6acf0426a19bced43dc0c83a38685ab5f255e00ee0f1d5a7a341df518d5bbd9ddd31aa6b38d129484ff2b93167123913ddf7e11f6b7be7115c07566c4821d12cfc3db5d24591f040608b7b06267048c944b1be8f67607883ac3c645a5746dc107afb8fb4c730929bc6c99b72b701c46602efc3be2dcf7a25c21467a6413778208e58485b3a7ecd688a97aa85f9ae2f0023d551a970c7714b7bd740ca173cf0f787ef7f961e9f97bfa5a59bee561fba83bc19d0945ce0b66883e5288e4099b4809124cea9426e81aaf1fff02d350a2e9876754ebbd6dda2faee542e768d859398db6ba8323bb4c16c0454020e97da1edc2be24ace53a0cdafde1bafb69e8ca06996c132a19ce88f7693391e2fd1e6483a193244f2faf9b1cfae1d511f34348dde860c585ca548bba32c13165cd3044209ce59d10e30a0bdaa68b8187e0fe6361c1ffae271c6ce3edb53e1f9cacbe9623ef5a6dc21ec7ce626b1863eab038bdd2c1290629ad90fb59de197b4f1cb1368a4ecb05bbd0b58f52fd8ee87591c3f4dc08c06ce8664e476043d4e85202a51996f9c0e5ae2c22ba95099fab8447ad3f71aa2aa95fbea73ea99780c8804037584739b3e1d7f9d63335c9eeb7d5a76244ef7afd8cda16c47faab70550ec39d800d51b1c8f85d366d016fc16c51357642d60d21e3f45eda3a7ed0815d7c585096725151d3a82fbfd90b8a609b6f52e0c18e328332cc0de273a5cd4ea3481913379aff1c03ec5de2026321d4bbc4fd13b1f5b4c5bce87a236fad1ed604809ea2378d9f3cea73c45923d9e4eae4e126792825b883f9d46046ad7787bde86b1745127812534955bb6ed28ebed29e65030babeada913b8b605a636f088d90b91d7166f5e914941d4185002b3aa6e38b312d384c24a4312a8cdf22846752a9bebb1655a3fb904b6c0f1224cb2a83887bf218f339d6d86faecf258afd847f73f5a3f80562e65a07a7c9ef1b43fd84b40b55b000e6c3d661e1fea1037e6b80f5478e744e6a6190226f7ba09e2b8bb89c8d720cf36b9c2bfd33dc34c22c1039ffb71e2f4275dc22c3488744c4b7bb7444e5443b211d3ca7f687e7db1023082483e5ca2eaf89a7eb89f993c194c806b331e905da74830bf8219e2ab6dd80620fedb6298c5a772597dc71a274589314632968c82d66a89e9433cdb6465aef8eeb33f0e738276daff510735089100bb9ea86711e5acb9272e7dcfb512ae2c3587f9e199e9a889566323a8e31ff6cc623307e49920ed9b863edcf54bbd740a7e93d2e8ed71ea0c321ade6ef7a068214f73ce8809b0816f4f2da5bc23890b768324f86a29552af095137854319ae2845ce820633457678072748f9dfc53c26c5e57bc1da00a635f2f7f1343b8adfb83bb3c54a78640441ee244b872d6c86699617e6d7cf71eb1cf0b8ca6bbcc89e3f36e0b64dd7b150604b3509974f65f1ad0adabe6dab7634dceaee4586f6628b2dae7f49663a9a25ed5bdc91b874f893d2fa54afdc6174da985fbca021315f10fb16ca6278521c490598c2e9593467b4af9ebeb822339e6feb7914c70ef2a127cf678c90692b1dccdf79c86df0014bd76aef174469bc904918c88d0acf32f5211dbc9ab007522ff85345d41e083ce7e79e14cf16dcb934fdffcf99c8026b546c2bc00fe356cae580623c74a00661d2a18c2364737e0683a1f1dbdb2e3be4a3de06424bfd54b820a30349d930ef2a4103d3586dff198044ca9e59bbe70481a3fcc955952d69b9d01c452990793cf3021f400d2ffc4a97fe248863219d16a457434f3056084306b8094cd11f97e48e6f2d45ae9b3b7047deb2e13c43fa0eb8fc710e82f29633a5d4f065986d66323884fe87cbc66c114026745889c62d254928257e68afe0e52e51e25f337360dd227dba3ccd54f1e99dd4c704c9bd126310e4c72160da70f176de957a340fd481f84c1fca83af372c9fc7f2555baef334614f02068a820cdf2b9b1b440d0b5337f4b4a380e6d95f423ebcebde2b455ff74811ab431b2550fcef6c6c671bae84c910611176e94f0b2815d55e7328804a1ba1b490b7f86020238114a063068decb8b3c4d6ae62f6ef6e8767b934d9cc817fe50470b9f0a6733ad446d12a115e28dbb8b610f01dfb1268625841efa796378fe64293fdcf859f38406dd11e247f41906cd6c6c9cb2afed460268f78b170edbef056fd2db36bb6937ed3bc52bf1fd098af62177ce44723b65ead8ad50df2c0fd89df098dc56cd51d5a74709c5cf1b7a09683817f0c12ef399e83f6a4e8a17126da998f0a224ec2f198ead30c543cf403615f38066e9417ec3f2b865464f8fb1b7ac8c3fc6251aaedf16807ad851b980ad9db62ac0e07d9b856bcf579305d9eb66859e460aa269f0ac69c9e88b014721c906a1f3bc8a1258e04683343f2256fc7c81ce17fcd93395c430cbebd6b0544c11de1eb426927f172a2f51aa78aeceb83aaeffb1b62b66a13b19c0035ba1c41604441fe22ba1bd8b8ea29547599b4e00996b2da1e937de02a58954cd77ab29c68ef2a03321fa2ab299a2018d625de8f65c1baed074ffe2577fa5b0a4005aaf284e7e3bb8d9fc365ae978fd528e0c427d43414b14ad6cc7a28fde2f71d1e7187a3362f89e2067b5839a71df40164c5d5059d9bff06535d317e331961f17bc5800455a96078be095e8ef8face39f58f62f0991ae3d97390da8c69b900cd47d749a75e7b7cfcfe1d4ab3b01eebe0f4a00ae2c7ebbd134e731075b83dd7eb726daa461b7dfb31d3e0f3f9cb15ead0771ec9193bcb899469100dfc378750dd811bd69b8acaf4c646414e5385b8737653eb9773dc9eacb89349e8cab56c3d0fdda5d646c82d2039fafc38b0aaaf77b93d86b7daa2016c0911ee6f46f1044c851176ead85e775ffa9330e904d28bdae0c4820b7a4ad0844765e05f5466d3ba1eb2381284c3ccf0de5c31744acae33720f05b38f7cb099262b94f4b025cda69bec27ed08c49b0e113f510d2c36a39bfb013654fc27f8802f414f9b894d4f9673a6bb03ea26b5d4959bd69c08aeb2eee3a28ecf78c61715751e43d5a5f6d8bc5ea7a70de3571d16ec9b5def79e3b3e0fd61e900d98bb0bcfea8e2c29651d9edd613693dba51b0eff6f8dbcc51b116244f1bf4a14c5ae484fbc5189533dfe011c7e8b75ac8287bccf269f98f2628ee419354b02bbdd9825b10eaeb0dd8d13423ecbab0425c98a1750f3c75738d27202ca4e9b9b760dfbb6fe86914b7cd3876800ea409b65c12dc01e2d81d6a2584332e63be08058566543b064bce5673b7dd9dc4f69c45acc7650291ddc87d4ae9e1723d51701f3fb3c11376019a53ab613b8b7138a83fc76cac853355a1b713f0621f8cdaab631da8a0941c58c0a934cfcaae84cffd95ff7e831cf38185734972942549b74d9c67beded7174e4c76d0ee55148443e785fb73955a582e9a94a14c621d6d6cca5b9f270a84b030202db41000965e0ad66f5175124f211064a2af0c36591f16734641c87af774708b7b7b8226320b34f488050fdae7555e0fffd1c124986ef03d2205b4b809514e5cacd34e7d0dc8727772fce98e0e975c64ec8258e22a94bd2d085a6c808c8fc421346fa7b5e91c8287df545b1b3589a9073877c2cdd70000000000000000000000000000000000000000000000000000070d1113171d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 5 iteration(s)", + "msg": "0500000000000000000000000000000000000000000000000000000000000000", + "sig": "604ef7c921fdb209de3a95ad6c032162ffe69ebf86638fb7e5a2a9eb3ba4b68fb7667f6b5555d000e4ba05a2eb6a4d324b04311e4ea01824c1d6cd160802ffa20196ff1b0f0c1789ede25d58bd01930986817524beee3d93b1fdcf85a3479c7086029d04a3ef378a8d4658310ccbb441ecf9a273a50a7d57d2a58087fa0c97c0b31b9abd8246b1e9d46e1dba106e5f1b5682fb9f8c8c7a8a170b4f12fb5b2ffc08514d7f68dc81d9005283abad65299a75421ade87ef90300d9faabf7b9a7ac3eee8abdf8269946b0d3fb4cc674d58ebfd99377bd39f63c54313995ff3ac36e8753637534b8f913311157a149db56217ef758b65afdc3bdd7d2aa59ebc42daf9aa027dc753f051db015a9d8b6793ebf50094dea5f38ca7c2824936f96981fe5c75032921b6817b81776e28d18485777cf6e96ce2a57a9663d30d804a2e07e188b77804eb54aca4ae43f3ba71a3a07264a1a1aaf6edffdbbe37783e11ae3ef0b3e8f5093c1c6566366e65c5bb6711d706cf64b1f579a44fb3a267cf962751d66d46c0208d1705d535debc5f969c519ce415731ff49f93543b56cd2689fd1f94c57b6268afc5135c3a92eb3856156b4918e79bb690b99898cf5a213d63fe0a1d5aa3512282215691baa6c6da5c952f9bfa3d11c4cdb1ebfcde709e5c3347fa6d990e9d2d805d63bda508ea9e3d4e0bf2f5055201936dcdc360900116309970ab4ee0e943248f021e2acfcd4d7f7696dbe33beb7b40d5deaf042ec6cfd50f45d65f94812870c71e3c2b61db121f634cf3fabed0e48f6fdb63e7087d2042a1bac7f2c296bbdd70078303f05a7974e188480d6cc1a777576597afa9429c3c3cfe549fc41887993f883e4d823ba74a79075dfe5a3a26d794768c27436ec5f619e3ad605cab8c894e2242201f4381d7ab1ea3fc346ae17e783e53c95ee2d9bed1942e5f3f9ba65277ac7a0658faadf48272c78a8c9e38d6f21be59b492f4e0c134d965dcedd49b0af638ba010f8e2df94484b97094f63bcf8660add7a05149fb2c2753d06bdc4196e2c18d7ecdf685358ecc03b3d67b496828881a8f00cb16667ee52a969ab67f6e2645da8345d86d5748119cf28401d369270c7aafdb3977de4ff328cb34147e1f37db7778aee3e08a93523cd5ce244c78acca1e2a7b1f6d72b76fc86e7457e9de61e473c605a305fdd5591c16efb499c5e5ba83831d202ac14222b802e8c9941522fb0029b43e9f1cbb6892994382230456e899d60655f9bb29fe10811098a0de73a4ff87da05d0edafc2fd7815fb1d87edc40316ad7ac11474b68b013430c4023924e021706752307788f0309f86548f9deae7736431e98ba50f3d66b3036111dcbd1f28a51c83b1582fe61eab90efdbc9800f2493973d1fcdcddaf29b191094c67cac62dba01ae2c82139e65c29d11b927a3ee0bc93bef952a77c6dcb94c081ae022bd2d70629d630c7db08b0318c915cf123416d6633405703bb670694b4932f716c67ea181f4aa56ddbc781094029837f335205bd4eba0d3fb0e852d4a80e98ea119ac6738af8bfed0bc83ec0cd4b01cb75e1fb73f790f265908bcaf0fc3f3ef3549c149688ba16fcd5033828b2ccd46e22316bcd91e821231111b9869ff2257e996dfb26e9ad93850d6b607a5a5d197bff5620fe753f5b494e21e44d8abd5bee41ae8c81f8f7d0fab317c347e7d00712552610431242870571ec6fe77c1df51f7f78c353ff85660b196ddbe065c6f361a9c05f380eb18b50fbe0a0daa33cbf70d03e9b399e9bf3414e4eeda59ff295a6c5aeb40b2b458e21f43701e625a93a8b047fb221cb3dbd83a86b03ed9de58acd816a58e0dd571edc95d145564fa86564f86aca2c61f49ea4a736984ad58fdb02c0c105843c2327ddc97822d66667b9188a6e371aa5e09110b6d72854d0903d432c51f13b4c61107a7a197602e56b8dd522985af2ca20af824be8d503006913f6537fbe4e288c684bc82144c6123e253e8989c59bbfc83f68a9a8ac0061f2d5d93c253d2ac9328dede266eb44b1f5f9a868ee5052fbb2476e11f9751bda60c8af5f1cfc6e8b9e1bf54ae2ccbdd676e3f5158d174974fb0abccc3b47c1ef353e12600a60005a8732d267e33b0a3ddf7d66e2494e6afa3c135615e4183b3f7be8006a5e2c3ba4f1d948d1b34a320113faf891d93824cd38dce7e0c795ad623877839964555768ab7aa776cb3ea18827a752ee3e7c6b025bfc48b8e8c99512578d2504a51fe29103d93eaf7728652dcf75caf53ec55ae9436a5d41995ea9febfa38c13299f22acea0f59d15cff0a88a4750ad68d2750fb8ac550459e2a954141c5b9382e2de8cb83926f2ce102d4846accde022c502247259918bf44caa8f43c93dafd89bcf727548a9a30e553ca37109d85a6923b42eef083007f258d57b1fce21dbc830618c37257119592b8e8aeda65a98f9cf6f7287a53a8a2c64435c212a1ee90f52ecb9381b56d67592395dd8af5325a09f643504adaee45be117dfb70d92a3ebd78da21529b3d0af76eb71b2f13dc3e2755be1df35dac40c0f9c1f37058c249c44f09a3a2602017e7110760654f7945d5bf653119e78455586a6405993ec923c28909eb7f398aa02f30c1c06b59be51b9fa7645bfdfca98e18793b6e09a89e9e76de835df9a0126cc6ce9973d2bd32029f62e7026df3a03e9fb4ff9ec1b3533eb43440a290df0216b6a78d13d40b094ebfd3797c85514c9f3e57f03d4499ad7e5b0d3f91febdea51738a9c0bedc86df1c80b90864e3710a6c3d328451f3275c04c9702861ff49824d87828bbd5c1e16a7ae950ee2896dff2b82de43a937e31e2de22d81448a682b70c7cc8a71493b08a95ea8a034fcc5cba59b5fb09fd1044b649b192c76a9621fc329baf425c34c30285adf948587bd2757d733a7ae82bb7c71404e9672a40ebd37acde5c0ceca7febf2166e599d8efc1080ea0e9b5efdb3c1a3b54fa24f10c4a706387b7381bf094265a07ad9c85f18cf00d92c66e9257515c131132250c007fe1a39ef05529243797a96370fc51d5db7322e447d834fbf7fa09d136fef12dcd31c3cd5ca35616d92342013f8bc4d895ad00a27a8e641084bd734f1617cbb0f243fa83230393487509c6041f8122c5b0cea200aed694ed603f104ab14b462c722476bf2a95126c9f6bd9242c5ca6a264572700850b33e415742a31cbb85adb1ae6e6380f059441b898d5bed3d64a9d146f3fdcafd788b9f65497d6f547c15b652bf70844848dfc003700c2645381e6070d314b7831b1e429a41754b0ad2fdd71348217f35711c56271a6d7bb4ed15a765d06ce3f970e4568f1ad60af3df6cc2e385fa55686d3633f3c82345bb0c3b539ca8ff2125fcff6bb5a4e3010e68515fa28bc1945a255ce12a391e0e4ec77ffb098cbbc2292696805e8c4c3978d3b4863a6cae10755d2fc016b2a9ec2ffd5c8d3c5ea9b36ee622040e189c2ce167fa90d07164d70dc5e5d3cd9db359dc5b94a4bc7d6619170fae9ec1a82996e0b75b6902ad473255f179edab1b3ad097ed71bcd873850d2e94223c903dce00557f616a48661ae937a402d2a8a5e1f1f6da8641dd423ffa54672bd9adde84ef8798ba5a8c79b56dc2e6ff694fcd63722be9c9146743bb68bf6a8e0d92376848f39f81bc4e061bb8cd63a6d7707985a95b699b37dcd5c0da66ca9b8c7912ab45c435034b3b629d3c898f7d979124707817548810f07658cc72e82af5ee86c28a89bf070a80d2050b251a0dfa75b567e7decc2fae12b50daaf26326f30ff072c1d509eb59c0e523669264966436d2d14bdf2538fcd58495d80c580d6e3343e9bec883033c7c32fcc693eb123383ce7eb2ee5d5b1b09ceaca617346754ff30fa9cbd3e716620bc5219a56111aa5dd6d0de5e3904bf22839b0239ed994dfc7e6fb6c2436a950d1b925fa975f57419ef7d9c3cdcf19cee53044d6db371d1c1c8d0c4eeee9e4b963d197265c42dcff55c5281a742d696292ba462e622429ec0b8dd3f6a8479f7a1fdadfc505d23de0777155fd53e4bba4e2433033c88ec9a8578d9896518db1d1dc30d23c5b82b5db14039cad18389b5dfb6015003ebeeba0e2313045ef1cceaced1bdf0e0721b8fe6a636f983186c7f3c559377e88ed149435bfb8af17e3cd1ee277b0305a1717a0964b0eee875756ae0967c04dfb051933c5fd706ea2ac35cad984553ec63ea554246a2aa10266100ec88619edbdc3cc72b14f2c8a12504336dce5fb00517ec36838a5ab856ce0929414d3962795e0a4ae7dc80031bf5fb732a092109eb3a119765d69f4648e0e690898608176f8233bc010654e01d12844291722a4f195f1cacfbaa5b4ab674cd96efe868c377c577eb25f81e44977c928780d49ec3e52694e2c9e8fc26a8cac64bc927a9cf0dd90f36c11685b172c10ad7d9cf9d0aa4ec26ed6d982c90d7e97123d9cd67cf17198e282934d0621702d22cef8846c2dd4b4c639410f3da93287f4c1929638d1d624be1ad01a8e5364853556ab837a274b61800a723b03373b3da771d0949875ebba692f0baa606d70046c841fa16f191702dfac9a48c8ef9915a0057234b5b6999a9f82b424d6b6ebcf9101c28495575c1cefbfe0517303e414c5b5d8ff70f30649fdeeb021e3d41476f93f300000000000000070e18222830", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 6 iteration(s)", + "msg": "2c00000000000000000000000000000000000000000000000000000000000000", + "sig": "55248b18f7b86d8cc873c73d809b0453f5db7b7aa436797c77fa7cd51624c0a8d924808b8166aeeb2cb3c2a013d1529e21e6b8a4a7ed13caf47861f90399a17277953e2505fb1fd03b16b5d1e1e045f2e56f30520d3196c1e54ae84bffd80cb27b3f0d11ec93e3522d4d3f9b66859311d3b448412816745f34f4b07b8e593be1bc747f4eb8e8e20b9addccbc4db5fc155afd4409fd5c8e23399cc55bf67bf9c4614a44f1342aa58f462489764491233edb1bb8c4084fa605d39028e7ee7f8e44dece7f58a28d09665624fa0e0b5495a43b6a623bdcd0fdb6d0567d446dc6949cceaa15cad8f3f3e6ee63de3019f6f5df02bbd7ac5ea6024f4dfbcc7ec4fc9d618b2cbeee7d72cd5837d6263a1df0f6bed8708d66be35e474783d8f39cb08e130d300fcbf0767dbb4c6f8ab12dde570220f1abed2bbb029d80a927c51620d5679e6a4bcd2d34a4906ef8a0b5f7b87082a57b701879a557a989dcd255a2a845f2b7ceabbe05e853c6a36f8b3120b61821cf8e557a4a487e5065be0770ada01fdbc64a607e19b975b3f90835acb28a023955a713c6022a593208cce54a582329e0890ec4fde395d5eda4da6ae5f17578aa1552c84648d7663873a7093745b7550096d5da5b8aa25e9750984f74d6bab5fa9c751bd828f455a4784844cf8db1681b47b05e5f6c60364bc647196134133db8b2d672f290d37e238f562bdf52e35980e8d94910829ff7170bf403a29f210dc42e7ea1e2168c5d04429efd560ba9c11b21e9d8f081503b861e2fd1d832397bf069f699221199b395015b2e79808be26c9fbf6e18280c3796f29a1e0a4be5cc9901c6b31c84fc69abf3bafb07745ae08fd4362875832ee768c378c3e387dac8e06b7578d8752e3ab4ad161f8952354f1569288d9400f28603b0bd7e239ca2de916e2718653673236c1c3f172d67fd9faeca57ff3cddba66f0f589d297b49c311a75ece1daa7230316128f28985210fd2f1725ef5b976ad67dd436902c7fd6134870da02866ed96ec997554a684216ca9574264efd28810f59883f5f73df115024d56871fe24d68b142bf5906fdf3d3839660ba7d26aa6827f47a05c80f1a62254b6cdfeb55de694e723851a3c2ab89aec1e312c7647b1b66acea5ddb7ae62ca71c4bd5592381761fee9d85c38f2f42f54f947bb3d4ee340077fc86cbe19af332c96d67f8ab84a1f0b0f039f5e6b518c9f9eed9edf2a88dded19903a0b78e17353fc5e1485cc722dc9a0b12501374db57b4161a12852a45d160ce3a21a44a8e37cb8dbac3d3a2ae131fadcec0063ce5b777df45b67744609da238f53aff0ff8e1175fb11a22fab7fd016c41f8aa636aa2ab7c4508f445b01852a9944277309f7c77d1f64048dcda6206293f89f914152958c1ceb629d7991589edcf3e40cb7a75090cf48c55f1d16b98fe26b55d31dd860b31e077af05012c8d4a9084647741f6b0e667110e9cac2dd031c1e82deea92569bbc8454f586f415c08c18220428fd25fd0e06517cf89ce7673961396f992a0f395eac5e3ce1b81a77a78db440039ce36670644592d36d43e1f0338d8f54fbc5c97c5166d9914d4837e7d005269529072c6b34fb1e5e8ad177d8e92530395896584aa3b587cfaa74d4effe70578d64c8fb4e4920528ab0bd4bcbadf344a148c1ee0c77f28dc6e605f60093948733fe8caee60766678580ad00d685d932ab692e788f37a54342d0047457cb48efcfd994c47cc57cb4abe7aca0508f3c5551c51d448a111ca477c16a0018d1758599405ea49efa618a164d2220dd714ddf9832d1c7d1830d93e54ebfe9353d5a90f2a255ab1578199c3e379aa4e6acf2ea07aadfe7c8b2b59a7149feda9c35ea80db44225a081a489a9f2ca447e6a577d87fc46931e01e41b67485fa59951192ed7949913243922ae9d2178b24eef6c608113e8ca3972c705485b3008cdcd6fd7bd112c13ab780214c47ce1d7141f00a4c06c6c8f9ac508e01c345a940ae26d374667b1afe9c89fe5d7ead12a5011ab593de9b4f5bfc68498d2e3dc6d1cbc4b16f7c36c30e2f1b5243df73230f4b61ca4f9507c0c2092d7eccbd88d3129db25e76ced278445b7bc91680bcfa73c89c84623cb32e5d9ee335be23af54a54226b1e7a542e75d6cbf16faec7867cdecfebc5483b4b4bf50776f87495d0bf6c596e382c859020556670d70af2272f816b3881aadb663eb91ba95f31dc17ec606d64a55f44c12a54051bc7119fa3af23ccb55ecc9dd0875e8aea1da93e78c77096c9b81c24232a6f64aeb949e65f0527fa9f9d86d24ff1167525c5ef0ac2c6a1cdecbe5c98ecca4958d07c80a5f41b2a645fb78ff17828210ed843f3233913a021a7b5f187db60476fe139b89217a942da48201f3017d704a9e9590800241501fe6526f0e3e05af68c0a4936bf317375d39e19d502cdc938072403516844efffdac2a1758c2ad1ae29cf8578356e666b5f6b60e9198d847aa0c88a903759418bc0ac2eea77802b2a41c514bec3149bebe8fa0339176b8380e5b08fdbc390e726167ba15757842c4c9a8d1a8377811f9ca3906640bb38bd3156dc2676eaa49cf6a4cc90635da341be52dc7a7b3900ea89c697f450b6dfea351cf0b0673ac50c72d7b2ed3cb45b06b856a41c3603bb50dee0ebe272200c6e48a33639bc6369963909c6ac67ada94af7b03dade60927f35b97b27a5251e3819c71372bb6abe636966323f0abc04e26a699c46fd8eaae6f3b4b097cb40eebde51f6df2694f14b7178102ca2448e3389656442febe8ddd6d663710f63a8234fa6dfb6f3a9f9d0f69042b59b58066197ba83536f4aaaeb4d9959af819b40ab43e09e140e883037f5e896a5f747f0b70083c4c720f017a021a12746c72e231ec86d684a99fc85f8cb73dedf83d23f9aa6d27877666670481bdd97d428cc1eda80e4c08ef00353aa4c371c3f938c766da833a76929d9c78b34f540381909affad1cc12667e6a8dcf644b51e968512d80017b876790e58c464d222665502c2d1997f67805232d6e6af2b868a801a9e32404d30c02b1fd8ea671daa7e97ecaf72addcbdcbd2f6be3794ba20d938a8cf15db52ef323ca6b47b644dc93d82508249411b9aecb7ae10fde49fa1b209a2160581d62c10962ad419c2b82d553990b7583106d153a1ee63df2a283484c6a0ceb2cc71919d00990f7bb87df0e6c4274fffd98525bb325b495d860323ce49a2df510c2421904f4bd3afc9a45a9ba84ceec0b8de7f77f14ffca522b424778157bbf0ac8e873f05837daf02b9b158c7853a45f279dc5238d202403378b8ed8fd1c69ed29fa4e5eed31a2b803cf0480425bc7746bf39255810e57bbef7cef25686c0893271c57feffdfef6346552e269f661a6e396ee399ab69641e7ccdc87e1867fafe8a754d77c7c05e49196646b21b06bc955b4ab287a4fe3d0749fb65ac042408513a736e32c382f9c81a6381d03c7af37a54fd3406f278e4b4f58b98f3202d7340933af471c840c0379cb11a3afa691d6f50ce50c20b02623b45123b75e8c26b64a221b5c36f3758050870413efe61e0d8e7f7bf77424b3478240990f9333f0ccae39fd1d782ad05bcd1aa05b0b6d58fad5766d056a4587ebf5e848a8129e07bfeff86ff50547010d4378b9b1f565a67207be7571c8f330f03d5ee6edbe06510918d7e81aa916cd49184098c99959fcab3858e6bbf2ddd62571be3869bc1f3d7e559c657319198ba47885c7da9e350f26b4e25c17d27d55bfc7e6813b6c30cb1f8e59cebc5f044e5d41f59c46c317d7020c57e13cafb8931049caefdc3f296c0363af7f7a89ebe18c0602cc19e8dd4da1bd14f296066183e80c03c806255a5767639c1bfca3037cd7efae6da14cf00b33f64b1021fc0a690a48abf5c6a781560a86d7501f8d0d05aec20881d23efa9d43747e30b262a3c4e3da85283cf5cfd94cf4e485ea56ae0081bbee0a9f41a333ae2aaca92c7dec0a2df94f47587e59fa21f80624a16e6b449194d1279ae5ceea47ab02b465b8da93ff50389aae3de69f5fc8a0eee992ec43e08b55be7dc9684264665dcea7ed4055306a1776f531d2a386e2e839bcc4d6e47640927967dc5c2571ecb8153827c44dc0ea5a60399a4a285798893fc5e9ebf74dd4e42575316bebba6173065e6583bd69d7f9ad0b8b9c6930c1c4198c5407f06008c9d04b1002bfa3868a8f7ed20a1bcdb1bf75a80bfa5cfff2a29b23e3fa963c6d7618c772538d98355d82905a66722824ab3a2859370baa9ddaa4f4ed6e6676528275d993bac69f66b4efeb8806f65cf8491e61879f0dce6bea760e2b3351a24b0fd65857c5aa099954d42ee9975b7c32b831d97fa862fd8278450d8ca34bb65a23758acc6fb96a81a30f1f28f85af5ad8c7d5868ba908da53e8fd0da4eb182a3770b68e2d72576ac7002ff348bedb8eed91f96af6a6a46b99e5e639845b4962fd98cad0112d74a6fe57fabb250e42c136c34a199e1923d2fa1d1e16abf8ec661c4f3eebae21627ac62a8eab8ff872c769f4b8eba495cd16d73b7448cb0a205da2c5e78c85d53cd78bf841cdd8f94cf16666615314fa389de3a5b63a3c05b8b939dde0041496372758fbe006caf4c718690d8849ae5eb000000000000000000000000000000000000000000000000000004091114191d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 7 iteration(s)", + "msg": "1200000000000000000000000000000000000000000000000000000000000000", + "sig": "577e0d1047704e02b4ed8653dd7a36c7a469f50314399d9b1e07fdf02a5c8a6071c4f2df79688c1a6d32ae9182279c76311762aebfb94e9410d1a74ff0191784a9d311dc970ffe4b51834e9bd49bd21dbb47817df5991553b6072dc547048d58c7644217ed1671c993d60f9882359842b82f48c619f318ec138842e4049ca3f0592bb06b14ae50ecbcfbc2a6e7c806765d404bbc5db8afa7e4d37f3a8fdcfe9867cbf66d1a971540e04c80e4a2403a0c9e795cc457c0cf1cdd7897843eef8f7e1642b3a9b7f4687763423ed0acb11270fe0bf01c1fdb0077787c591d20f2deb39ba6aaf3f433c3639a6ec43e314d212eaf1cbd4598b0bfb0f4f778f86415ca66122949ce3f101c667eda97f8cf6fac74d92472ef5fda6ebc1383a6d04bbb41b0e89ff80d7f0439b19b1bc570d8e29729b4d1ceb12648ea7ce092ff3311d910bc3495597f40e191ccae4513da4f24d88d211473468de354f1f03be275da7da36bf18233404f9d6f401bc9835544b1307312372a88714435dae593839d8706d74157a81fe8b744fc6a59c1e05f49628f8d39e0585c1ff156ca8101a53d4e48ba22d99ac7aa3f5e84af66140e57dd068ba296a1850581f6156671bfbe983d17e0e16d89511791b5be7350283f1cd100b9bd3ce62b607d00f3ae4174e892b175934c7c885c5c6b2cd3c533fa82fa7256cbd0bf9b53d009196c49d87779b855be3e97b4ef3adf68f02bd3e19ddfd876b55f0565d5600780733bfa95d58754fe7155ac413d67e9d5b5819c66140c15eeb622c0c8c8e15e05c79ef3c030de87a94f5601640f3bfaac0c961d4dc03b9d313097d20b83d27fb9e1b028503a624db1fb862bcdf7996443173ea1dfe544f285c4a029b6eefc5ae70ae3869ee66d220b89f83cd5879d2002866ca765cddfc8e499bc926dfd08cf86888f957f57ad2273e9155aa00ac4b618620953afbecbb4ffc6e93e82b77dfe4f0c6bcbb4e2f849f3fdd70f9644d1d420cfa938ded26dea5fb0052319848456f611f64e5e9a890a0643ca9ab8bf96b0b89864197d75c85620dd76ffdc0525d8872815b92a8369af17dd5bc4fe9519a2903bd8c1e6f844cca5ca2e79fd08d2b66939ad1887e5a651968f93e804e72dfcd6b244a66332e8358c7a39b337c001708dcd088c02c8152816d3ffdbdb323e4c8909e1b1a7fbe3e2dd87c8a985ad008e54153ee21590ae89459bbde19eedf5a23e019cdebad0f9448a72e12533616b76803dc59bef6a5e32e25caaf4034b6e3340398e95a797a484cdbf1433041522cbec6eac497d437a8374e2954c35e7ef105b45f92418b674694180e3abc3903f9a865bf24138ed0f7b5c81a8e49a39f11f3f81109a4fc9b1ddb6dc0d3f9697c4ad3d178b02373a46669fc8b6c7fdfa07e0beebb47b5043bab910190c1b5680a5e49ff786ffe7e0aa243b58c5fec92c148fb48432d20c76c88ac3b4592059eb414e2bb9d50c8db83f8003542a1a58826dd0d91fca351067c13917f817e32a438c02de1d51c3e2817c280f370a96a9145863a7ac1b6a1ed1ab640ae1acd2c72a05928b30ca51276ab0d3858e6e5638f061219af3fc0795a54d7d81c368898314498a6b279ba111c3a79514918adc6675b279a5571a3c7a9b9d79d725e852c2204490230a0270f00e758bd685885518bb15a456ed6344786dbd5c4009f94f04206e87b51d092aed1aee3473f8211a3ba22a5ac092a53831f37f4d15bf0937b9db11336018030469aa296807e6a5ec829c8b3fb741cbf0207692fe30b1530d545a56a48fdb5b3f72a8f158dcfd4808e30ea8fd7e2d6a19669ca7de2d50015c586dc17a37e6835685e691e516e517be2021a81d42f0330e29e8114fd729dc1aacef69e006f87ad74b0944eeba1687a2288607a3ac930c106049bc7a9435d548fc275b1474299c7bcc212a41d9847caf8def2ee7293986c42af986c0cd28ea70e56993876aeb3ad7900e84daf267adaaf5e9df3877aa1267cc99c7c6ddef01867a17019cc013ca1a921a319f1172500ac75cb8a200df0e38c1cce4054f2b0fbc98f76d4c7b61d6ef3a54ac0c42eb2c9ed53426dc2fd289e71f0532a026936629b6eb8657241b77b94d6ae11c54a9bf5c7ed7772e7581ed16607bc090c05269052fbfcd3653a9cc4fe8d0fc0692dbc497344bc73a3e9044a79d7dee977168d1c1e462b03da281e4124deb377be97b286ad5a1e1ca93529676c25c7601fafbc3cad171ba3265690d6ce37b760d053a0e5adfafa070becc84b59c39d401a4b3b84b80c55a9260ae2bb510230c8ac81433f466757affe6c55d6b52c367c37eaf0bbe5134a7ca5f1aafb745fa9025ed419e9360d1649bdf87696033742cdf7a6804cf88ce19c7d0f33482c83e65aedcf0e3da55b395198579a02847899e5778fd5369a88d04eacc1de1ed23028c4de2cbe5121a6c65cf648550ab340dff5b49e51e9543d6711ca1c3d26a744d1949edf649b81b7fffcd663de4532ddd1e7c2837d6b30995029eca9b30c8e2a00dca5a44fd603430daadadae3d4ffa83fbb4c97a373993adc8216638f0203eac09be5ad7f222738907a1c2b793b419c317bc0312723c0e8371cfcec8a13065df31978751df34ff3eccfb5b37315fb66a506083e5813295373c048b182dca86876528209d157a44a739cc9cb99e076d82f51885ead7933100d030a3a7745cf81cc36639e50be9e067b09a2b0015a7b86446256fbc977ba87ef6ee700528e751d5f346d6c24308403107aa05a95cce61c1e3894a1dfd97cbba4f3a130dd491368787593cf353d3eeffa56640a3451cb9eb207c19de0edd3fa886db645e260618326095e8ea93a1092183de833b66cd0379b94ef4a1cdf87581167db387e0ac24b750c47e02c98adda5a834b9b00e88d9a981aa98bb30cd8982afa2cbd7117236e03a23cf13f6ab2f67dcbd580a1171deef889889daaf156e281eb5a3be2ac914841f2c7907228971981ee9567e18748c03ebfe9d4fa67dc2ddaf865e1abe1182ff33601b97c44706a948f2c0bafa57f3ce3819005b5e397eddc9022bbfef2f65f9f29d86add3577a6fd117139a9ffa190b725d60aecc19370343a82f1f0f584896aea7d57fc092b74c0769c94242605b521e1f6a4cd2fbcccbb4a80745d3f431e1a12beb8af87145b9eb4b0ffd9a863e27b18b07fac43bd686bbf08d040c201ca574baf00daafec8f92c8a37e43f3bdc7ea514f2e0367a29642e2e89947a39c479c4ea940fc3771fd57c37f96e759f333f24c3eb1a67e6b202b459107042de9a1b789f9e9e8013cc3f2a89975fbe6c1514ba2572ed81629e0b418d8011659ed339bb37f0909ba8993475a4558027613efa516e575336d735716ceb77dc54678337a9e1d70b87ac85a3b6676447de69d6bae2a0e19048b70e0af8b767165353c1320612671f17430a5233e2fd95237889e4f11e5fa8ef905fbfdbd09db873acd82420e6a5d0bdd6611e5caa0183841804e19da3cec5a21bb75b91a01a47d7ef749af0fdf3b224a2f0d6abef86f850d16a9d7e0df467f28965c485156fe46e611f311bf59ed3f5d690ba6572228893e95e9e370f022b2daa966b31f41005e184e758b9ca396a23f01adf0838f9987433c87f9b0a98b5c208cbb57f66014f66bdbe793922333ea1aed91419f10a90d5f18f983027b901e5f70bbaabfcabebb53ca657c93b0899950b1dc2c02f5f6ec3fe58a4ae5816013bd7b15111b10779b13dbee751427673aa97e00eb9175dd2bab020e1ac9c9dab87806ac164a5d8f86217a15d4e75d13fccaeccc0798fab7551bb9ad89b2c804ba49606ac08adaed603422726a9c7b4c5a30bbda9d46004adb1baf11c4aee456bfb369390e82d504d0c300b18608da25086bbbeeea9baf586182246e6dfd6f15e2f199887756f6a914ba6cdbbf5fd5029f67212c406f1b5b88c36cdeaa982149f787e273e32be8f713535afeb960e302b129521ed3bf2d0a911908e7471527e7a177748149ac35e20e4d4ecdd95c356d84143e4cb6e627a1bac0cd813c00985913a148806bf00bc1da3b6d123da765a2863cb07b208125d640afa03dc3f2025461d228665da2590e3cf692163c5061c811f1f1608614d9ae6301794d9b35dcf0ca31ce7f475b085f14c6edd944cb343c08e5af9e9680f2e20656556cd60c2b4b3b10a66e71d0eefa893a88b7d3e789935173c39d4a5d6918f3b41187001b5cbef0cc6fc2b75b2cbf7b4581d97ab046f1d926fbc9a900e19a5bfea2989d3a63744443637de57a27269036ab9f35205a6577191f2efe1c01caef6f26c697fe06e7fafc6cd7fa533a76cc3ba9a2ba2b07bb2ae7cde729eea9b5460fcc9dbe9e1ed7d024668adb632321b2a649c2b285a19e2c5b1f18102be86f3181c0264d262cc55b2f2d60ccadb6329f19303a012ce1693a474d651a14148a0179855cbf57d149aea3165adb2bc54a53452f4faaa758e7961c80ba00dae2f3bbd08ef95901f4747d6b36561bcbae89364d090ad6fa9fc37287b5c901bf19504bba36f0a814634673918b1141b49578bddffe2b30331db1fcefe1bbca0ae41ce4f1e1cbef7daaa22929300404974c4db0b132f5dd4176eadb0d02e35555c5e5f6282afd1fa494f6c82adb3bad3e5f4fd09222a62bbecf700000000000000000000060b101b262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 8 iteration(s)", + "msg": "0900000000000000000000000000000000000000000000000000000000000000", + "sig": "ae6b9da548f432f42eb2f2d6fa196c10500fd99674009ec015f6c5b2e5fa39218f361eac40652d671454bca3ad7e179fe8e44aee00e1731df3d0557e2f6b96ea805a7713d82fdd1ca369c868c10654dc0b38916a1559517334ca20021489c6bffd9942aea8c7ea9354e42d2343c6700422c97b882299909dc15f653e6d69c44bedaa068c129f0743b6dba58e0df1e30c4db0df591f75bef4fa209cd3b12b48a7e3cdee1e7e4c54f719ef10611aa4d2a668fa6f9004252eb8623f309069d73b46198ead952e30b5d2971f57d7c983a098d9f7a25c8117e2601d57cbaf36d0434ea72a11c2214c170e0e0db7431490ed801f850002b2f959eafe961971d8992e4f306745c2b7fd7b12f73ccf6757eab25b87e39b0a2ead28e3ff3096c706305d880df78ee77cbae24791796c05b537531e64e69eb71be60bf60d88c076cf0cb19a6858d435fc333d962a668a979b31a8c96036b516911290d7ec16b6f6fff2dce67fd4ae815e658ebc39b2a35666a7d1fb2444c905bfa913bd77146ccdd33adea9bb35ad871b8c97b9c2a836721f967e62382bd0c62073fe60b2d3eba75734ef612917b1f7ab0cbd34843fb01029b1b0c499e808095a90887a2612411d6cc8f85020f3b903d1231f5ad3cd251d6925c3bb87904186fae16c0421144eb98cbf30403ec02f38199a62c41f175d19eea8e3cd6c25897e773005d5bf931b45e2494c7553903bd64f4bbb316a11fba9a3d2ecb3f8fb6dc28a07241ae8a4c755496a494d6b0b9d4205e35a46e028b72c7af11d6190b23a2c70404624fdac2302c509974520bdfde087f3649a241967c9afcc16970af251b5ab3046cf217312ff0ad54f6f23ba940840a340498a257dbec3ffa44532057fc2e4e12a36dfd88e7ec42a3885a6684568af0b8e821b17abe98f069b27dcc045e8fc2403cf1e764d1adc4aad6547139d107f8b77d89f1aaa2d3be24cf480c9e03019c151c173015cb1db490850fae6be852af08df73ae2b98f763444d28408469ef1104f7816257a27a7cf78708dc1e310bc0f7cde56ba7f32def255064fe81e9d78490ec9479b9acf7328678ca8aa3a8008902a9fbc954d8c1ce50aecc797943d3b1ac681548144cbbad4805773408f2c2455f041e68ef7ed757b504981a38610f678464075e662a156c058e58a6c9fca1c5c352dadaa66041bf074036bc3258df98794dcdc64248a4af53cab90d7873b1bfa2dedaf6eed93a594ead4ef4a1f4e843bfff325aa756942b2851a9a526f812158c591f041a8c5240d19603bff6afb53fe8d6d17a69b5f0752e2e7350cda72baf17d77fd96e1a6c5376c358f61cfe5f484bc401aad80a44a8082305bec47fe643f782cdad0f8c1b46b9e0243a66498942ea5cb749ddac0f14c13dd03cfafa9840cea8f012f68c5787e7a48fafbc8c670a564341dee0331387e3efb7864a56b3982012da04abc3348e46eacc521dc9ec86c6a737421d5e7cdaf957137a427efba3a0837cbfd17919c93108ad6ea479a7b41a294e4ceb8b68585ee6bccdf500a504867094a4a40b20d254ac12ebdc0f9952b20d582dc737c5f7435b6de29c5bb73da4b55ebbfe1bb7e0a4aee4c1af9d1781013e082484665964eb913f2fb8c547096e8a7a0cb6b8600530c4824c0b7b61ce65f1f4c04905aeffd6ef705859b19ffa28e88c65d1080c61e6f14f769900bcc66ead17e7f8a6bbb494efd4141f7e158a5f6924646ff7019ff67c0ed0e178e9dd47f53c6585887afec69c41fb40a23713d889141a0ff48e84778b1e6f1112be5c80a6272d77f514af6bc9dd47bc6d85f0d7cc166c20c2b8255c2fb63c4a9a303396592cf43a8de7aba3ec7a0e45470410d8bcd2a01016a326617bbff7e110b18129a56900515a8d54224467773a7a731f28e9bf5a4bbe640ca5aa012f1b4ab22fe14f121f3a486505d01e27b19a87801efa6fed57a636880dafc40a820c73ea49c2870f34bed3b504c2f61d1a61d073957dc0dbd97b2c68dab42d9e48bfe559643776004d2fe5f7c0c7e7e843628ffb368dbc65d7579a826932bddba17db9de0f3e573916f2e80bfe65f1be24aa0370aa1fb9b84a140c3d6f62fe116a88528aad07d190fdafefa49b10c4bad1ecdd2e6168310c346e0143f57099cc9ac8159e003e95158cef5a518195e8e53682e09bbf1d259dced3aeb19b3ed9089be1bf50ff25080cb7be32e64ea027a54ba01811b9fdad60afedbb7423a2d958b90f1a568c413e50284cba2ed180d3df64a13f210a824dd309871843ba5a5df8dc016092a716bcaa39e59c74961bafcad934fbfa1ac73d8e876afb160c98f7ddd27139b5cd3493cd18e08290e7869e203e7e3c5e2a077219dacb8838d3be44fcde42ea5a3e4f21037f1f0f66ad8b526d723c31b037c4c660171cbac2aafefba2afb0cf667bab8936a9453e6221c71956ec22cd70ad54226be512911597add00b3847347505e4e7a412854463444cb66f71eb359d4258c2fd33c5532e4fff22ede008ab72fee788e4bc10c4dbe9dc3172d6406f6b829903d6268206fd0b10bffdbe1fd62895790dc2f0bbe10ccf084605e3d19d4a86b4b64bfe62d3e7a1f43afcfbbaa5ba55348661d4c416c7219be1de32d038db26b8cd1e947fcde7e3a819e89891df896490996cbf958dbd4bbc5b82bb07ed2b83c96a87348fce5ac03f5e4ffb987c02675a80465ba54add3ae26f67da4a53ee326499a44031defa232cb152a40450ebf9fd2fe39f6c18b27142045bf53e844535339b0ee3e1602e499bc4731e8e536eee46d7565be292d2cac2586c2ac0e139ec733f2b240fdc69dddee8054fd0eebaf8df2d9d36f15179c0d05cc309142ab8d30a75a613053a21c5a4d9e1dbfc7ac0ca37168b999646711a61e29327ef73f462be930228f97e563e6b1db0ad480d3d73f0492131f2dbd94a5b3fbb9d2194adfc1a396e60bc2d27b51289d491428219eecc092f56250debbca32182a31fc7ea67163c9ab89191505be15f3abf1fb397ba6e540cdfb3661693b6eb76b4da66e7d9f887d7b415ed946df1b593e0523b41f20cb1edaafeb53d733ef11e0cc0e2eea5a8d4497c82f1c5a3bfa39e0e9d49b3acf3915fa69e4b9ef7b69a7f0825131e6587d335ca66c23d4e54db4075d61ad0e6171711b94e1b647e62a8b9c63c089b0c2f3bd9addf550df187a1b9d7f122278c697b91091d0bbd8da14d3ce2627e5076556cc54d3084c447aacc82f2f667f96ffcb41fc11f5306d2e096825f257f86d55289cde430b07afcf2f8b8123489ef36e58beb4bb7af07da8bfe6dc9c2bfd0a2855848dd46b70244b7d2023fed10a332ffbfe1402ed48e30ea1b3f45ec88d09473ece65064b4e15e62ef959745ebff674e9ea0f337518814d3e9d7aa1c240677dab91b9c0e41e40cdaa5531799f3d240b7dbe702b84e88688bffc56bcd55c6d3d4f936ebdca448add1c8c84c54cbc7412fe201d76294711cd5349007b027fc52d91acf51359dc68e30bf80162450b2e2334dbfc653636ae67070ae6cb23a8fbdbe8f5df9d5d88cae4d515ae6997b22d2ee3eddf2c7ded6ba7ee30ecebbbf8cea56f0ace385b3b4b533f99cfd7f2930783557629bbbcf03f54b5685ef612f4c15f9cfbc3105355214632718898c829133fe2d69ae468cae0a6215d531f4cc801fffd416ab86c4823c8220059bbdccbb945aa7edb32d8627f1f94299e36448a30e0aedad92bef31c17767783b16c818e2d005621b2a551591249ba28005137d81bdcd637dd98169bb6a849ca57a439e726f5ff61001c949c73b5b2b76c1789e59c64c739a6b10ab7fd3af7be25c45d194dd5a961911dd628ab447999b84863b98f53d6b06733c2144549af2e28d1dffab2c147785eda415caf4e9aceac3a018a97f45c2bdfdf84930ea0ed5e5b5e55e328cb44217d89dc5b8592e9f82d2e9eaa43349bd1b82548efb44adb3cf8992de1ddb0389bd7074b0696ac25828dbe1eaa0a1e46e60dfb6b92db42429c01d7f7829e2732cc0136503d4bea76fb98554e17aea5fdc346c7d457ea65f128ca37846e8fb72de28a05079ae802ecf48195840e2a7aa935d817f0bc8d38c4c283f25f3d8b4a92eb7d48ea676cc5109b5cbd651e047ce44238171be96141fd30968e4d71e3ffe7299ae7ec87192ba819d27ff91781ce58835881c941daf943d675d486f6353e7b067becf2ea8d71d08b2aededd6f1045975c74f8840dedb352255fea9f9220b31b1f677a4f7ca415bfcaf3451b49fc7f3c57267119b36ff60e618a70423808f87c7ba2e511b4bdf37ea80c4024aee17953165127a16e88d1f745db529a048175497421716bda17f4af5f28be9d0a5932628aa6ea433202d6dfcb49941d9108ea1b2cd0b4f5d274f35d52bb44a8703651e0f0cecfc7fe933fa5e0dfde92cfadd2c4e7766fbd3a9f214bbaabe2a27c1ddd16e563b9d7539d7c793d00a52e2aa1ada1be432d41defdf6cb4cd4393266dd3211309f37dee5f31430dda1e9346217d94bab66b41f44a93cbd7bd10c94906fc95a1f533f03db5b4b241c7c388f6fc2cb1d455bb5f46017e07468fa7ccf48e1a6763e8d8330528439501419214353676a96a4d405424892c8cc19346f71ecf1fb0d2a2b348395abcf044d64666989b5fd03233978cef4f80000000000000000000a10171f272e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 9 iteration(s)", + "msg": "0a00000000000000000000000000000000000000000000000000000000000000", + "sig": "bc143b5f4bf58441c91faf8a0f173603ffbebdf13ad89694b29fd3b6818b273e3f54ea9cd7dba3d4510ae2c8f14d843348820d2de5708d79984d05f5496af374477027560edb4795d84b2fed1495d55a1d1f42de240136a7596889a5c03a19a7659f39f9dfd9cfb86fc6e96182b262a94b315a627634ce2fa57f3c1c609bd5bbe27b735e13e133e14acdd1e177ba97bc48873a11ad3f5c49c7a7fe1af5fa10e5dc50c89c387a8982fcf562b2f36af26d05e05680f039d422ef9aa86a5a1193ce24bb88b4b7fcd12440873867fb572cc160008902f9163a4c238396ff943c99505a7b73ceef7fce692be774a3bb5e04dc82df86ea15854f526a2619ab59117d5faba3a2c4acaf2d2d8dc1c5a13affc788e561b1b0923ae96b139e4b3bb55e134f6c2d0a5f8f25fd37ce52ded270d318808c6df359185dcf554a7cd8e1b6afca029c5611f314dfea7e008b1640bc57fbe4a0f69aadb51bbc52a94eb20a7e494db577c04c33c570afe493b52ac0d49702256bf1d948b23e0fa01728a0d7699ce65a2ec8f51c94a452a10f2033b5d6de6184e3fdd07df3fba52836ced06955660ebce4906674ae4dcb5d32f33e87e5889bef909126ff24a9b4b7d51455c19424591c1ebd20f608022236f42d06e90d4cc5e98819fb93fc1b53b8f0f374013271b59ad216bee3101e217a15a58b2f59ca2fdf72dd039c76b5995226a198904ba1fdcfe2685074c07aa60748564cea870bc16f13afc6ae17363b625d0d5b95316a0cd3c4b5d9a5578e57f240c6f8e38ce0de11393c7a2f86b35e50fc19933967b7f51c066b98e88235d459c54d4d1a28d7d194964ce1449081affed934c99854f7092e8c7a6b5b6987d50c1e2dfc4c8b69532b9322c7094c56776ef509030539ed74e991db7fb14b5f676aa7306a0e67d38ad8639971471b578b3b40f35b4ed6d4996de86cd634b1f63948c1a68f056516984e417ea2e1815428a14bd153424445d1f32567a0432fb06a33ac65b861c89aa2f2b79fd911c2a79887465f3ee2220620bffe347bd21d57a25f9e6c97fc7f00c4570a26a9f013624af4d3e24e34d42dbe0fa6c8ab7a85cd735489dab9ac23a1e5fedb11f4c5a98646841bef52f894ba45245442febfd60a66af764efdc16925cdf6449543b49bfe34d3d5dd51fa242e9dbd7ce9082169e56217bb8501947c0d8a4b41f12a56ea30a071d2c6cd358ef952b4f18f417f324331c500e7c056a2d47d0e4dec4e892a0b3b3773bf74ef9769e7d42815af6499a7263719da39a88fd74348af4f53385d76ff0caa71c84d5561b9eecb27e74cd20c46104fe2fd0f86fea87f83ed0213c350d0e16c4e6d8c973c0ff0918e14ca27b97b19a3ca0767f0c213613febbccbca507b0a17b2bd2f042b8509f6c8c38c38842c6dd61cc5cb6772b23307cc4c400f4a43d9c644f448d85abd0b2740c0127002c6da081067d29bcfc1ce1aef5a7e375331b5b9c9ccb8ce74c179ffbb3476b102bcea3e33f947bff12f5c1d1f95df11e5c06f123f23083b7ea655d135b804540ba7a12cf4f23a0c28743289c37b6684b5d357f7a0871ba5f10047309cc4dbea769da1dd0c24db4f68de2c811aa3e2b0c36013daf6b801ded4aac4d83572f4e28f3e360b1e4da0ce26cb98e79981231d2ab7b3eaec655c3cc5e746e7d89b7790ac7aa29404d004a8bee6e758ca9759d272ef565878bdce47c3fe89060450525f5914778553f277227c3bd6f970107ce3b03d12821d09bc7850305446d42665244e3121407f8193ea379c322e0e3ccda4f8c24a1a8cba43c25f27fcbedf24c62afce4e143fd76802cf1bec1e2411c740a111498e2e999a54149509ba83b3d3703e576aad701257df6b969e57c58e4c8ae0e5af4ffd347454a0d101ef50146e565f6fec8e4309225c2ee39c4e0e29027eea6f5cde089a56067262bb297880aea34423fcc1ba816b06ee2bf9bd4732691b80dfdacb015bf005a7a74a486b6cf19d5dea2c2621ddd19bd834dfddd97af99002ea1dff190471a6675b61454408795af44266f438d4f94ef8ca8331755fd9ff4a5dcd03e88661b2033ba3e615edb7b061cb6a2196bf41cbfd4061a2580b5df7a4064ed173810e0d35181b5c324476fd99275d2b9384ee0d40c1cd399c2078ce1f5b622b67ab424da06f5e746b1e8cf7ae8b90244b0dd637de6799cc35910b97dd03ba01521dd9a29cb998803fddb4c680308597095f202631323e00fb85fd939494ad59e34077f1af3caf085ac82043de604c9fdf851bfd162ac152e70f1dc5749a6d8ac0f55880117218a8e09e3bd6e2e2c050fadc9352305ea51d9e6cc073cceab1c2369f0279449564bcdd7fd686c57a2123bea9735d89ba4b25614a20609f6bfee14fd03786fa0930b04e7567dbfb51c408842f82e658064a1253027afea7d4d825d1ad60caf8596c641a3cec52874eef424e63e107863abafbd0500fa0e620dc6fd397d42c541536dece5936a556feb4b8563747008496e4a9d5bb1267533c0b9ef60737ba9d4a0f6e7b2016a57311ae854e55b144412f085c647d747e631acaffdf97410c693d089fdf227ab8ae0318636235f189278e0823eb68db6801ac6c606fea32905d000ef30b1489d6f4d0124d10b97b12f4db0726b7374f8a5951cae97cbe1e30209032b9cadac407cb474fdecd6fbab06b5da028e04e0dd77172239f41ce56a3876d4c56bfb5f8ccf5d819302151187674ef477eea1451a6e4d09371358995c552b467bb216e88ecf78c78c6a3ff4c455c7689c3784d4fdd50ae4250110e39ceb0c2a04e04a3abc1a2ae95ad9011bf2364443ec7773a596970b16d7514a0a7c27bbb0f2436bcf27202ef21543ab1eb1314fef197ee50b4bacc3d8f64bb9a32936e20e0c0826d1af1500c11e704d951824fa0a0d44caf8055f5bf06e8e0ef2f0617875b2d44a3fba8006aaaec6abea7f626f90b5fcd1e44bc2401e0a486a8b6c2f96d76117e70186dfdcc10a677de2888758c6af53bda8912374bfa25bb48bc8d8281970b38bbe2c536f39874347c91b3193531c456974e02393d35dd57596f540ed9ebefc87af562cdf653eb41dc5ca999ae1cf0ad9a2ee47c9f641b68fc56e289844f5f17dc94e3acf4987b33bfd36b1844c43fd2f0fe91de2283dbbd0dfc1ed98cc8445c768a1c25835b9d6ced33d5defb877a7592a7182dd29f5275b0ae7de9954fc000daab005d3289c1d183840cac1832b0a13b4dd5e3f0ec39ef60842fee868e44b946809f8a1879c5a6ce3820b1a71aa6fe12fd19a79376c5246878b000b89aa0b010b449a080a901a24fb8ca8a92c5c2d9d52bc27c56505202f7e7964c04fb22bd6a8812c2bb759ca10f52402233ca15329bd9ea9ec76129f884355bb677470155d3a866727ab923316f271724ccacc23328a07b327835cdba5699f6dd4e29d80d45efc6708f8b7b17d20dab0c0c074e595a1c2565cb98a47c589ad761ab30d4b46c97a1a4d52855f8bfdb2fa59b63778c7b6676c0ef5acacb7155a1362dd2ab49caf6d95b676529da71b2bf6601e7fbadabeeb5827f782fcc80f8325142eb172660d2e5854c21876f1c40d93042b1b2b6e0e5cf2ccdb6f2cd7264ed7c106fdbe63fdd2d130dc242f1e71f5f9b7647dc2feaaa6162b6fe0cb3825136ffaad90b67bb67d2917e657bb8a623a5f550270072d95219ace90168bebecffd3733402fad12f31fc9894ac6bcb51ce94bb88ecbd5b66bb8ed88d2260523e21e4f6fd20d8db7df6c2604e0a659503426ec9b167a884f277a9860481afbecb69b2c8ade9c270d5f6d064b4e6c95e63d6a20e06f59ef800d07261906ea6541e77af7128f4fb3e6ec5932a46b1d1e0580d68896d256f29baa055ed91bd177cf1b1ae2f386382ad95c1da7d7949d398b6ded44859b9b4af1a117ca76cda1399a1def5085111d69fedea3fda8947c0ea3fa744755123418f127fb2bf57eb04e9480b1e20bbf9a091cd9830ef6aa6589df921d498a149096b1637ae5222c9481a826f34d5c5e66dcc2a977fbf141814c274fb2c07b6abbb973456354ed4de863c3a74dc1ea7007890129a9ee6ac41c026bbe9faea3ae9b1f1bc38fec4924b805143c0734776eded25925ab85aa943d628f17d5c4cf37e41197d1dacfcc1114eeedfa449fedd5749de33cf83add605c9d0bd3e32ebec64102b706961a40ebd9381128bb2b430748b5b62640a065cc0874d0092a4660bf00978b563257aaa4fd9e210549b5262510e695f5987369588eec3f6d0ee034a68ecb25eac0f0d9764fe27819d4039af013727252808a6c2507e2da48403efdc9fb1b27ab8b1de11a4b372b2311a939f3f08b16c77bdf15f3ec5a4a916a179ea7f64b94ab37bba8b8ad8cdd03b3a4e929f832dc0ddae5ec0bda1975ffa2f5d89c060b77c88ae263c3e5d0a157c3b2102275612cbe3d26a0917b525fcb759b958d3682550da4d9cb46d8787215d374c126db9da46bca02cc4742bc5ad984718477678b3c1201afd2c94245fb4a591593f38caa53b476c9af0784e999a50e62954fd2fb6bf5536c74a7a9877d9e20598977c9d400ad84cba1899f706d65666060f991f3483a2cbf8fd1294a7b5c7dfee0338414b7c7d8f969bb4ccdee8f205172e30c83249787ceb2030375b7588d1f0fd0000000000000000070e1c21262f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 10 iteration(s)", + "msg": "0b00000000000000000000000000000000000000000000000000000000000000", + "sig": "d54fc0ae94872d53a8ec295b549a9754c675028a84f54c25695a3acb715e1a3d8ba9778b3ddaad25b8c487d21fdc62b879f43dd429dac7f5c303a485d0cbbe1e9f65e53ca8f722cad42c27392f63cda0cf5569930deb75d02bbdd3f971f6a9ec96aaeaee32be48c9fdb4969667744489b349bf480ea1249cd516ade4d4b581e3c41103b5267ba72b8dfdba0e4621a93edc18b37fedc35878d6f2bd2d0115cd5c2e243ba4aa02b95ffe6d3ef1f12801ff1ec09115d4255e202d957d0b8666b60dc8767b11f11b311d9d1f0c99f67167025ac9a0ed6c77c319a5d261ca5416699bb51c961d3a077c51949091e6cf0d4cd261224b6a88158d78a45730b6a86b4ca31380540d3d04228cd51c00a6671fc0036b657f3b52bea56ab503adbf4fad1e452bd3b1b29f27ba1e24d6f302ea788a7e59435ede2de69ab30e356dbf17bbbfe176c2182f870ad9a8a819f5b85587d229beb13fc6d4034722b72de83c1613fe434dcdd26c0346571cceb396e3389d08e1094fe069219a509e59ea17381575f4ab1b4ac79cb6cc64e5dc5897645631e187cb4f4ebbf1dffb083f7dea6bf6b4991a32dfdddfa43910bb526b84c797495df6176cd7e5ee6f42ebf6bcc28fa9fe396a8f72668d33db7821ab5ce54b7930dc7a90b97b9dd6b12f5d370bde4ad41955c5d7c1871632fa717237d4f39dedaa0cc4ed74900c688ae91571fa717d5c8f70837b8c27b26bb604ad340c98dd5d1878ce286b1fe4451a20a88a4e8902e3a1cf10268d26dc6446f7ec48a84b8bed9641004e1af82b679cf1bc29c7f9126f8aac9688ead72e14c4fb18292ca507c976408603bde8ca2650e3e50043ee112714692f871ad28305122149f098535424e4f278730c0be7c1124890cdd4260dc32d63db460399f9eebd339b73a738b58c0a008c857853f0df76789428213f65107c4359038fcfb366fb8cd74f2d955e6f2b30b3e96c70d9100c781f1d6031e210b541c4eeaf30bbcb16ac3c7b21cf1093fde4999c8fc254eca328dbbff7c5c880beb3e295d2924f7763720d5ffda0cce07e8889e556edf40e681e6894fbfc49413fd5b3ff232ac029579ef7f7cf60bd6ccd48d9f76263e948049a217f12453db900ad213e7f3e4fc409710fee4c92cbaea422e755cf51505730298decb37d805d1d333ed46a84e3c7659f187a344f5090bf338bcc76aadaa1e77f726b2b11880ef162f5d2812890a0dfd7b9a21f294bf18f6b447d1dfd92d009fbf144fbedf86e1cab012ace0a2ab31401c5f8f8aca4dc92c3609fc263cfcf56ef858446d9c66383efed916ca0c0ca351b539a7b4110658ba425d35b4c2cd1e235ff2c1c0840a292f23e34ca7121273ecac5ba01715f4b0d35bffec379da93405994ea997209efb895496eefacdfe9161f7c69afe3cfb9fbb3b68e105edbb0b27b1d0514c47d8886d58dc00c6cc20612630b0acea51396ab086c346c07206888257b9af5ccc06b867ceece53b4ebba63cd4a374503a524672527ff66f570dac73094f90c6dbd8fdca572a9388d243f63521c681ad8ea17ccbdb4b1bb215acdbae279ae5ae1908bae519d7398c7418cd56d0804eba259ac01a11789d538d848b76afaf7b93fce336b5bdee63d23b3cd6c46dec665af77a8c4efaeb9e0ee1576fdf7aef9807b4884f767d6c3e14c99c14c726c686ba8feecfd54c14a5234d7ce4ad7093c673d1251b353edd080e30aae264037c61ba8540640aa38101f73ae91d788a534511314b0cc0b4c52911032bcd286919ec56507fee54032f79cc1e1d6cc6c88d9a06215e9f3ba38d5f7bc91781e8cd863108300db6adebb51a790f7a2ebbd8fb116596716b1c7028c8cd9c1fb1db566c1641dc732d41d75fc7b8b0151d1daa407fbd0aecfc0fc484b1d43f68ec4614a32a38864d4acef274c6ebd8c8a6450a29d4e63503af63db37d22aced927a24dc40870ea3a891045a5a77c906b963980f58c5ed754ba710257fadd4f50cc13825a69e3548be0f5e10f6322137943e44de4a5b3f48d62ac256d7309e942dd1f3f211c3b8e745f79984dd25cb9c6650fd5c7ccc6e222852d8160fc8c97b52bef915407e17c88cce2eb560d359a92092846bde8f36f5b1894a3e69efff64fca4d6c0c3259aeb556370328a3eea80c1b2e61ba1f9ac0c5bb047a4084aa0668103a51ab97381bfa7e6a6b631e71a91d6191c6983d6698efea65cde4a23dedfca7e6b9a329b132c3865308d7ee89bb49de4bedf2f1b09dbbf729c1f0c53409feed48a120d2cdf57301974cb05e78619c848ded1fe6fe493dfcb581d5bda8ff0146508ab2d0caaef2fb1163bdda0f57da71805e6e53c8cc56a33d3bac12250ba331f380f090d8fd9c29c94935a685d6ca3567f140ca4278970ca42eab4c75056700bad477ff9865462dd82f7bf05dd0b4acf59b238a9bc9566997de3e3ffcb1778d7817b7196e3d1e06efb4c6f907006837c8a2e5117931a3921965db84f51390bf48ce8b54d44c6d8af12dbb6d171d50145178822fb457baa2b78246540fd9a348fd3667fafe1c4b983665d2bd676dab43a63821bcdad0896723b7b6c33e78eb9dd7823e48e028197cf494b16ac3fe0ae9978b369ae4f144c7aa3dcb5f2263cd2a29dabb0b14a442d804fadd786870565b40874982fe9a1f1338d1c02e286ceb42ba0461a73bda8e2e1304dbb98974f7dacec8d90d6385cfef3f453dbd098647eca6d33e028fd6c0279a090e36a068871a1ac16e298aabc64d4e7d66f3e6fcf74f56ec909d8aacf8db5d9af2185fdfe2de96ee568f78f94910be75ddcbe9b06dd7dc290e7b7e162bafb6a3cf8b6c90a8b02e417b40b632d7c0875e37ebbfbe21f2b60535b2fa76c3b1cadbfb8d4176dcb13b530e660bb2340f276d3be55ff24b29746070bde345fe7bb8d06b7a4dfb85336acec4bd02c95b8819b81d1611c2a61b31f185d70653011f7affa1f6dadb8ac5e832659e09f71322a60770ab18c3bf2033da08fc6bcea35c4f3d00b36d9beb7e5baeb7dd63ebce5bb46b600be9fb7674fc4788d72f7a98bbcdb23c49dc6d75d7223dba5064cc5426c781ecc73fc08a975039558ff2041278116ba8a477c9da4b4d9a19433de8709eed7c18a2bec23aa6c2b20a6cfe1e36e27bb4f4c2b0fb74baa624d3e61715aa9f0188c45d4405ddfb4d31af661defb888150116639156a92316f1d77df1c3f25055e5ecab769531bdeb1f5e75bfef8e0b521fa6df84ff2d30544867bd556e054a85660b8515c82884c46f8f6bba9e7b1bcd7ff6858d97d219acae3328daf5018eb671965e8bfdcd1660785e0377a72173cb26c6db4394a7565a91e119ea0ed09f549edf01e9bdab543da2b1372f977cf7402735b5646514627c2fad38370e10ba0271390cf987e6fbe28770961cdf51d863899cc6ca6730788815496ce52e80ccb7a8e4a4b26642db8d652cf4db330b92ac6d96e7d357432dcf15fd831fd3ae65c57dac7e4ea822a6f24744c2512127fe386b9caef4a82f75694779a950bc33c2e86d50efe6254345793458b5f3089df8a9b21268c5d4031fbf095afde2d9f5d7f8e79df08ccd2e6c892051ceaebd82fc3047a38e6ea4fd6372d3724af26031b5cf9ad7529f89bc45b68a25d56267dd55cc4b768159919ee83210cb0c2a967fdf9bacbdf8b91a2adea2c51d73712c8dd051f17c6bf74a0d1607ea48cba029811a24101cfbf6c3951e112d39acb3522f3a38066f048a0ad2996f846258a3d136831619f598b408cb6db93d4f2abc1875eafbc778623ae0f9750995372527397f3d427d1a81316b448ad9d82169ea3873a0b06294981a604574256e9408770e2e6cb4c0fe67931f015d6b844bdef6f703ee80b62517fb81f9c81a20daadd9988f912578c5ae932899949256f09a26dbd44eeadf93a708ffff3d6edd1aa55bd7e681564f4b183176561437ae8685be77acc1878ce9da23b280c1b5b46dc34c4bbab39a5969dbda6793248e0e2efcb56ffcffcc40332cc54924f042ec3a5008b1ed0db81bb1d7af47e110243bf388bd75af256be280f3fc9486fd3db45b9769420c159fd593eaf4b507a038760e72e65c766a120c9925c4cc4880518ca1f810b52c326e46dc489f694e6f68b13ffb669ce5a1bb399bc9d25bd5d98c2842e12a0ed9108ba5136b865d819b1c0c8fa020d3096935b78c832abdc1ad1b22bbc80e10843ea4fa9412002133f5a5d825f86803cc699e42521a6249b7a5a8742b9b214e6557c84609b1fed79893ee97fae0172626a9f00ca2d5f7a7314ada0037ccdb73a294db5235edcd6e5ff7752794c358494a9c1bcd35046cccd6e883cfe07a47f42a9e8857bcbb0d89a388a55553d4dd120b3d30d6ba29192f76812a21209984f4d288355eac8a5f9513e28994ad8780b3cac76eff15b5e0f4113d1ec4ccb20392c282e14dd52d370369eba9eafe0175ffafbdbf72cf9b99afb23ed2e9a52a96db144837e0b83d31c35518c0becb701c8b79ab7acfe308262028f00cc9bab4cf905edaecf060c77756a0d56625b52e26ca4f177897abafc4e730d8a2636ad2b065bf32bc17c954f08868c1d8a8a804e5e00b3a0759a174675a1a9c1cfd0fe052d4a537592c9e7edf3f7fa1f253966a6ce104a65696ab3b6bf0c26727576ef4a79aeb00000000000000000000009151b23292d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 11 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "b4ecfd11224c059a2731e7232dda71f943490c5d84a218d2cb00a6bf8f96746497b327d54ef0528952171868270aa6cda099a943123ecead4d61138a5a2bb90380865ba0caeb5fe3a4eca46bc8da8dd6c41c5294f3fddd7aa138e1386f8f833c7271838853873a61912813171b0003578a8db71536a98eff4900a138a1848cc45475fcdc2295fa322b21d054791db116b6cb123fba5d51ed4c133985ced556e20590b102a53567c84cf41bc68102164ece90b87744aa46dd6c84c67ef69a87f34093ae127de228416ca5c795ad3c4ba56097119e6085073e736f0dc4cd51c4877d022650f911c7194aee9ff7f13f94c5f73b0886b889ccea790cd13c6f4c52effbad4c4ab89dbfa816b3ee6bc1e84e3b4d948713df5a3baa2ba4a2fb8d9978cba124d214b251a1594f956c5f175d3a5122ea270a085d11f133810f7ac6b07c51b13f02a590f39b50b85c2757eaadbfa802dbba616c1b1077f15644f1e773fbeab05111834df770e31a460d430867f3f0a1e4a77951f54aaa1b04409dc75c6e4e56063a531c30f2e4529f201a641a2a7b682f6d26e9f18067f16b0d619cd7ad06874e4c5ac7f7f508598bcb044486ef50c1b075f8f879e8c7ac93481f4534e6c982ebf9b16f0f83c94504e68ad99c187d2aace43e1c4726817e156e2ae2c6551f9a2285ccd5608c131390058cdf292e6619f7405e68453842d8e12c08d8f0cbee7b25bb4841a9afd520a4a25f92d00fd65852a0f03bcb70c49d2f95cc06f64312fae537bfd4787def2b3c321f576cda847eb14666cfffe2cc61c35139c88a308d54ea4f7500fa1f1b69abbd50e85f6baf0374cdecafecbbed52ab0d9d72ea79931d78d8c86652ebbd30dea1ad90eee7ab63033f4e0efd14622e5e9426adc9fd40847549c304535a5eb562b89b38a2d40d2173bae8cdcf5f3a049c3720db29967c65af8485d12dac3240c803b128fd89eca7f9afe3e994894c4c6112168cc89db5c924de54b346146a917b0427ca196eb5b9668fe698f678f24c4d612092ba8f7bf26475838dc52e2daf146ebd915f896741864b01f7730d02b97b3ad58eb224148c33c016fbbdf1435e3e8b842f2d42d4d427f0543f4294069394c884669a87d9041001413d257e5cd81354926399361196f40852940ca48a4bb74ccf812883eb19a4b404ceaf245b83eebf8f47ac6b0d00237261522c6166438018ad900f6db322d1bf8efd6ef63a0065a1366d93885b2d1c1a13fa37d17419a9f6ff878b720001c1bb16685f8b5932b75d734d3194b9eb39756a7780cce344be03fe5655987d0bea11d0a00e526c7eb479632a4db51d056ad351ad37f51dc14780b4730662b90aaf44ab5f2e305685c641411dd2b400baa21b2b44d723ed7af3ca3758b850675df9ef5bd1707e90ca1c6fd462b6d000668dd625023bbef9a6c244d27557afe307382cfbda0ff068fd228b863164ded33ea50a16872e759302dc44b4f3538a7dcc8bd0f82385a79effa8cf7db60d09bf8a349dce50bad2789cb1829a6624feca1d15505c5f37aa8e3f08ae1ae2ab8274498546b2931c2a823427c2c5200bb74739953a18b9cb96adf21493d4784e08aa0318066ff0b75ab9427b21212be4f09c3413c9c84bd704537c850e30fb12bdd862ccb1dbd1c31373ab9dec930100a07b32d6c6b14afe50e5b5b8fd2d37a90a443e3cd2761e31800cb16e31dcab74c76323a0f462ce7f7320b75ee4c21e0f0306c67a8f69201454c38a466f183431b155080860c641adeca00260567dc73d5065e1acbc055351c2eafc1121697cff2fda1eab331ed6a3908cb10ce16ca8fc6179177e23f9088f17232425b59180542056b8ea61d7ec0e58d8938fd205fa62d7693143d6f0abbc6cb4f41cdbf44dd67f5d7a21d7a0b7536df2a4609f644a7f8d96b861e9e853bb2c9dd828c73146f1e9e20b46a067e48b1f3694cfc44a256b3bd97801d748ec4de0b3f8ba52bc2a8bda92d79618045ee5ceb20b756421dc92747813aa625839b3578732f2ad1d801935718df8d5e83edfc3c23e5a5e15d4684c42d3ebfa42d013aeff74c4ed05f8ef5143409a9e1c1d8f61baf5c9d0e3b072be3aae7ab9c2317f2786d39b108b12d948a0373634e7cbeda1b35fe9ce694a825d6ad5d83743df1e4e4537ef7fedd3b312d56c0754426f23a865dd667e6896a82e6062a1f5b6c8a60d08377d42ec5b43c534e634d9d85f82b913ca10922cd6dbd2c3d7d35ecc98cb37af974a615831846dfe9aacf9f801ca6cbc4290bf5e8d6bb832df0dcbeb93025baa2ebd7f3b4941e617d5437fea49d5f64d78c2e2b422bfad3efbc4bd2572cf6559cfb7001e4886959ece69b5305f0799cbb871b540df18c5c1935ddfbe17c491b9e1e82c2c9a1fee6879617463f60effdaefb51bfe749ee3fc2905a3a9026e087c984276a543cc3f4e7a6948c8d92985d24edde89b36ee6d9b3d7e300936548c34436389f4e7bd055f26a856ef9cc56de2733cde47fbd173a9874b73d0b8ac3a9a09502c2dcc18585810916a4ba6a72bfe94bae53767e55495207c2989d77e0e0f07e707f66a1efdb93c8e149839ce72b31b4e17d616ae0a674cb349c2d9fbb5c72b833e7b7916246c8ce495b3e1d7b199ac085dadfddb2bda88c8529474f245797d7756251344305891b098c711dd6a74d54036b299ae35bee1fe7284c9ec11bd8dea6b8238690bc40648036d56401f26b92584f726de2445030cc9865545447abec4b4e2c0c06681ec5ec0243d845f35dfa8d80127fc2542cc04cff53842e977a3e9420e6f3303f5d1c11d7d09c15fb229d0d432857987d6ee4440be1509321511b8cf88aed7cb27c1d745b672492d183815de62f1d8f69c8581d7e6918f13225f215f313585aa597a3c8876ee67317c0ca184bee5fdcf08ebcbf43d01b0049af2455bad78bc8c28f11252bceec019032e4feae4ed2c5d0670f9c2b6d5ee96055469c25661fbc8c09e1a486013b46cfb0c0eb4774dfb65b8e3688a02cab987923a98e7f75b44261d44c4bea44a0df4ec2b8186079f3557bae7c951009a64cd6bab08410df3f4ec65b58bfb8e31c3659d1f4b3254386d850385eb8cdc19df92f011d86ce13ee526bc524bcb465ef1aeb8f08e809273034be71d95064979ac196d9c53fbac31789ddc3b3eae14d2c1e1730e2f5b38fbc352759c1f573ae742c6cc2b15fe41fe6292f3856c328814f7d70343d3320aa754f162e530e666889fd0187a65c48b42bc2cc87e79d17102cbf66d8564ae5fc71b92ca49b04d1705394ff1e6af4593792d1a6ca5b00e972180857af83d289f6d0aac81e2006eb40a8d790c7dea7e075404e5e28293f4385edac77094f2e2dec38a15b12894787bbef906d12f8bb4657c7e3e2c8767a310277f63cda040bdc68c5340caa2b39b7579873cbd593cd81532e628ebbfdd8794b4fdf82d6c6b20d7f6bf157096a96a5d327a972faa5cab92c442e468cbd6705fc8ee489489cc687777377f87b470a84209e24e18150076a1a462a9572fe037b8a69153d1b7a41b440cdcca5a2d7b4d224bca60c7184828eb519e77f2c98b4567f23251bd3d01d3ecbe70eaead160681053b4a733898d74206bdc25eb6fcec2a65d6a972c680e0aaaa1e8b1e3ff095978213d242c6af612a62dbb58425037cba5209588ccd3c11962ad47a9c4455b98a626f92264a0527a28bda7f47e804ccb393caa2590b957e5fe3527c0d5aa2ae7d931fbdd2ebad07cb69be0d5179eb6c1343b3bd4448cfbca6ffa1597678f0bf6e9d2f81f4d6e3a8a9d8c9686826c86415ca025dcd1fa1a5dcb3ca8df92b2ea76101c484dfb1fc58d35c1386a29e588a6c80538ddd18dc44fe4598627031ed1650789b3d0cc1233775e1d45e97504d33043cb721a6c210d6e4e6b70e4dd9ef000adf591e465e30adf27aaa4d8c255f4523f1dea00e9cf978687870e8b75f05ce4fa8dd6dd692e936dc2d48b410d3b626faf8ab013f7be8910da69ae37d1ad99136c15e0e8f4194942a24ccfd55544ef63e692f1d4e9b621b28fbe8efd22920983167daeca33e0734af9aeb4b77af4cb354cf9489676514198a47d8e6d614a76af5bceac2c32799ce43cc010fd421468f982bea4f56969953766f629e43cb2a0fbf3d095f98257a2b6e3ba76f73415d0d920adf9b21bc102fc53744f661d42a9de6feabe59b2e273733df75be8ac972651818e1a72260bff1098c06c572179f7c5b0c8e5e1c9040baa4dad473f96b71b25d9dc16ae2312683868ea048f85933d844b7f2fb685db40ca89f24231b14249a3872f313c14124ec1e505f14c508ba483e6a4e559c8ec0b3dd7ff0446d14e4fda415ff4031fea1e65de59e5322279112ac4f64664066c4b5bf5a08dc160b6b313496546b679eeb31315500d81504706ae14ba526009a84b7270d9f9ead65398278b6385cc136c69e3e431843439b9a75e8b44678fd38facd65c638a3b1245a78bbbc26b85473a5569c5e6e0d2499d1570203ed563540096bfff6208502b12f107894d767798b5fd5ad7389bf55a6a90733511bf5d6273f570626cbedaf5de00c5f905fc2dce53f0f90d67153492082255889a9ccffc83a1af2d45466e787cd3dbf5f7fc181c2024454c507381babcd8e9152a6590d6f3f5143845565fc9ccd10000000000080b16232a32", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "signature that takes 12 iteration(s)", + "msg": "1000000000000000000000000000000000000000000000000000000000000000", + "sig": "5fdae986af0e453c98062fd46d281750ab398c0d9be681f09d8a22793a5fbccaa0982761e89509ed0427f0ec73c8f9b4b905dd1703132646ec472f0908440c2e21e690e58ad56c3c4da022c2459c059e9a97709ff8327785011f0378c8e5c14e3130ebc43b2481b016a23ba76e61c2e0da8bef8b6424eafb1fcbe6c1a984ce767b0dc9c824ca1f9a5e8896734c3bb2e01b02bb18138ec550f343efb45030bbd2d034e859145fcab6cf42d48e8e6fbc3f9626dbfdd42044b86adf6dc6df412f15f51261373eddfa7ae848bfee57878380aae7d75612b0aec5d8e1f4f8809e14bc9b244fa50e5c345decf47c597d3bb0f5f2f0e6bfe3648bf7c4ff841d4861a3faf7cb09bdc97ffa37fe75fbb79784e858f34ecd2caff2ffec7bb53627f63bf4f423a290ac26439b722e859acd4fa61673deb275b50a309c9a1b07c7513d8718eadeead0703e5d4db41618dd23901d1abb77c6a728f5565c911199e056dff8c3c0a8ba7cdd05df179ac37292dd2597e38e17eb2619472cfd4181b2b4aa6bf649757010cc5e67121bdc70454d429a8b42850c1dff199567d700159abd3b485788ee01d71ee7ff163c4557f688fff928c5974f56cbb352ba8b3ad07b7ec3007dcd606b4ab84d42b004cd2204451d40198bbb023bbc9d3891d17080fd7d50e282a715fbe97f787a794d0efaa64db07c373c257b0770fa0fd8011fd15ae4edc1d4fc69187385634a48b7405e6c1a473c5640d5125c80b60fc5e48d86829625195a3fdcf6ed3eaea76a1577845d26244e1dc679fb0386d46851e80b130da1defc0c6797036dcc65ec7e0bb485d1f680cdebef97f2780d20d8d664a90b844e1fbe6e7126d15edfcfd37877f0c07d483287624b38000c5689e77fba19d1be415da83501494b0cfb15962243798f6f415206f77f3105f20e6dd73887e7ce26d06b968f3eca04b6a49ed9c31ae0561cd1418268b8405cac00dac88ba433b98480734bf981c4cd74192fdce032c41ba9836088b9e0acf8dfa97c085cc60ecc75f1f5b91738938c2a19764089ed9d81c315c1d91b7e3b1a6d3beb93893e31ce32f97e8c8b837b26e07b523cd857edaa268ede52e0b44f3e54ab37d45d53079cfc5a58a8c992d683a37e9dada046557adbee8838e10ef464262cb0f59029797b6943b7e6b9e0c7010dac5605d6d581a496780e6e2eac7b07b95abcb6d92acf293cf394140f0fb16302dcf94992438050e84a66c236f21b56a756ed0324977ace2196ff58ae2c8db667b0daa54a2d42a3920d5fb5463cb8d06a2ff730a9f533f7171ff470b8ada56521eeb0b5c150308450c6b3821a071fe079925f62320cadd8da8c180fc8a9daa2c8e17561b21b9fd4e221893ea6553a4e61c1fff9fe8ab25488ad1c0fc3521a4e236df4cf15480df5e2b75d67ae5743fa537fa06575e86117782f912cf14b9c67a461c34632fbef9b1328ac76a8dec3f442541e777241cb9eb39dcc009e87532cad63005e5e93a063a32012fa889b00e9df5a63fc6aa81e1cf8e4d967f8036b59b1341ac3502da9813bcd4401e516b716cc2b5ac04f5e57895e39965a3a022f408d40982b2f9e08324dfcd060130ee5f700946e09254932d85b6a28c7bcd5395936f08ca928325f0273e3c268883366a662ebc9a7f1bcdccd0acb6c454f79d67bad0347d85e5acb01bf3413b6dee73a208a40caa15d6208803e3f9cd708ec17497d7ad77eb3ce50353b5cb2b9ac447ef4d58a9e60837ca7724629f32dd894a3ffc3d1e7adc206b385b82ea0bb478f1ed7f675177787f92f1aecaaa2255ab5b48a4f60d2691ec774d3caf8fe5d5f2056f125d240bb82114cae0ce31e2f0fceed910fac6f7de9de4da88e8149b4b749979d37dfc3112e3ccab549be830aac9ae053d8474e1f248ff0b5e598731dd63cd62ce630b55933859137514e84ff5a4059c0410f564e477a1694ed2eaf3169ee8a9ba5069922129df8a94e4ffa278f4fbaf52a605aa76516938eca5be11142bb83087e6def74264e7e991c763e5191492035f7705bfdb17c22d4933fd2509dbd25840614baccee3bd3bd59a377484b55a09dc517fa298dc7f04a24304dc91002c000ae61bd5b75242c0680988d9e7e5c05f44aff949ea3addbc4fbc26a0ce3ca9f3229a4ebcdb6c754fe95748c2ec479b76e311273c23a1d3d4816de71a9bc26a74153c624cc449f068ebe2cb6cee7bb5e02ea4720a86a00a5e0883f4cc0a6d967596672646d439aef75fc13e0c4e0890ff68fd3a50efe3943548b446c2d2f89a2b16710f22cbaff9b1cb501675902362b0cb5f1ab9d09909952219eb933ca1e1dbf271a0fbe1fe40c928fb5d1fadb935b1fa84cd939310aa1d3c30deb64aa7cf9ffe7301bfe602ad3596e07e87f65e53b23fa5017880e70053f65aa7345b94829ee3db131813bcf76d0acbf69f988e88ca3f49cc4311ad327edd90e2a4b86910880f45c16c9ba8513fc72afdc4f4c272f052575b71e3de70f07161eda29c83bf83aef0fd46f11095cd4fcca33efd8cae8f8c2d0787112723cab9cac9ff9fa02bb45ecbc9879414151751bbbce8cad5c60405150e0819d076b699d9d9fb62505a6c104587302fba8fb17725e80e9732563411e576bba1a503b10ac97a41caddced4fa591ef6980aaebe3505df212201fd0d892d15bc08d6501df3a3263ff810dec62adce7262c07360d1de212b1684b239050a3c87acbc7025294124f86a8f35313a97ea373a701ff4187a7eb44e30c282c4b1c30702b442a606aaf3d5263716ff0fa7be107d0874581703f9ac04b6f8169872e94100ca1b11e44cea2bc63f51cc1822c65d6bafa8c639c8f32b4a60c928fd049282dad586e46cd622fc34f1fa5ff7a67d06a427fa22d05e485394344a1b41e8aca7c624306eb3a6c9ec319bc65d8f878b1badf3a4743ae1b39ae8f1ddba00bfebddd149f5b20836aeabee2c6710aa0b128fffca57783bef39e66db6df7b4a7d7fae067d3d65c63b020105437f448d644f4b0bbaeb0490ec5a337013b4ea5a16f82567ff2588070afdc6d0998ac6a11459ca7a8799dde3ec3411beccad252e897a360e1d4ce9e9e0a82c57c79a24abb99ed5190f27e43144f9fcf076becba38afc9640f9d18bb67f6d4b5652bd5393c8483ee348a2ab3431cc92dce30d0f069312a671fb283aba4e527c72781f59fb7f6d1704a3ff80d49fb53ece26f16a15ce40a5414475732384f8eefb51cd22b34b8e901c43eea8604354522c28031852da10e0acfe6901a3321a275f86f025459ddfe1d90c561bdb132ed4c22209e71728300a7f5ab0c84b7ced352ae3321462bd75f6976849448018db9c2241d2cfe684cb6c3678de2f1dc91a4b4b6c2572831d4b2036aa457476f8f19be70e405e2cce6e4e9b9e82be48e078216747dc6d63359debfd2fee14a0e8bc0de95a381272d3accd94617875e9c08162817d5294549584ebbe8dcb36d94a6cdce34e4f30c52541d425422ea0e2d1c00f9b381d021ecad3892a1541dd81a42a1eb8a7362b5a125651db02f1992efd6f9515f3f1ec66566f91c1876d159c61195383a4c5e4c89555fa026b5b3bcbcd34d8b6b0eb026cfdcb8cebe45884e499f7bd1f40f1e4a2144533f2d57e1eff0584805d5beb7d6ed7fe29e088379d1a7ee70805f0f8133d26156724d4ab6560d15f49053a1c8a8007a8eeab8f6c09265c4a545ddba9eabef6434b191d87570ad3c88485decce9cbf52a11895aeb82dadd9921522f368843fa7e246411cadf0fff4b236641cb516057f102e9875e9363bfbda62c5d40fccc935eadaad4da3723b7ba6cdae6cf88b3d14364b6d30b435627d7781aa1003bfc4c9fd145f6c6e82e58df863488d27e7b219949d554c09124c582591305a80964416a18f70b563a761ab713d4832a1780300c7ff01cc52be01a60ae53affd3cd4a0c19eaf60a077f792378be2d3c958108bc068760e1b920119b311b406a5c59658a9801c612140d9c8b15461701ae2ea1bf16ed9650d0a26b52dc59d927efcf8174a421409877064d17ae3bf17831e4759e3de408c616c9565eeb8cbf83729669fa7afb13e662961db2622136bfbc69f1a80a150a604c38bfde2c8de8eb5addb54825376d4f8b0935b6a1f34d2a82a29c8a725dab50649b796379d61e5382146d399df86de0fa51875baa1dd2b3b1490e34578dc9da393fdf26ebc36ea3c40b760e526e30280e05529ae6e5f9f70a41a6e36da9f9642ea74639a5631a6bb30f17f3403144d9b503d921917628a327a5422f79903a205f7dd33a34e93da5a553949e25c29f952e3b5f8fce39cd625c9d34c79d414f104a69532b4596bf7046c3c6115b4de3dded2bc270eb4963db75db38d73f2fc3719dee8730c12afa6cce1d867d7e949d7fb607e39bd2b09c1e80fce2fd76c41669ca73b9bae914f42a5a5903327059c7bda73ac88cdcde315d5de897fdc188b42ca521ad5d80e1a6a95c729f58e921fe2c258fecbe03858412cf0d4660c6fcb6c5b16be8342c970bb19390b7c393211ccaf35a680e1da855bff9c004b067780522c8f26770559af10a0fefbf887a4035c7456a368e3d9e50ba1423039767bdd6482e61a2e47829192b9131635608a8ba74a4f94959fa462aec7e6000000000000000000000000000000000000000000000005080f161c20", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "signature that takes 13 iteration(s)", + "msg": "1500000000000000000000000000000000000000000000000000000000000000", + "sig": "73bc2954da39fd7abb7ef32f531cb8144198e50cb52dc4ebc9dd5ec0edb90ba730716d93157995e37263b1456cf55882131ce6d537f10096dd8500d16166de80f5bda2f94463e8fa18e0b970871e4cdde1ce7d3e154d30643fd4a3740908fd8b1249dd3fc7da0a5ef591de4f308b44daf5018e17278267b56f7df5029a130c736f56283d50f97ea4d817eccc6008be603b19a70f1526e1d3a2b1d97a52402eada5f3c7898eb16fa2438b0e4ba9cd745b1c94f0a5c4d0be6ba5ba9f0186feb4f741260fa0f441f1839d3264150cff7792f5269bb2a82cc360e30a15f61b2568467d9c8d404784996dedbce426c71001748c691cc848e776023cbce13438aa0743b6ed57eb614bfa8fe6b199a53207c45ad762ba80efdfdd31595d7bb0da2d533aa65ab0ec3ced551a0b6ec2cc8a216944e670d7342cfa367542e86edc2086dd14de5c0ef8b38d677379fa986548bfd69e84bd892af28b4028687ad8c94f55ed56b50d611ba6de863c201b16b0b9de779ea393be40a79b6405bcd3f1f8685018c8fa61280289a948831ef7963f3d30f3570855e58873b9f9f02fd344f8362ef65f723fa0c5b8d628264e74cd4fea73ac6105be0713e80d52c5bf55c21c1f502d73ad0afa6144b6bdc227570b85b47143580c736fe4f2b201ec4f4f78efc3d4afb2a4d81c8184fe36011f7fbf197335ce1596a0ab39f8cabc02bc77ffc005665dbfa356b43ce805fe0dd2c24a9e6c363cf707ead215ae245963c5684ba85b55118d6e8e55c040012158645aa0d0004c184f826b7a43a2ce81a3bfc6c4ea5651e8dfd10fbb22b371d03e7dfbb3aa23a9e604d8c452a3e065afc05361062db3acd697e52614baf0afa010b7cce9e2c36d8e41020951154695bb13bcdbfac5eed9bcc8f0701ec5bd6393d83f828d3c85a591bfec897203109c57b87335c48ebe20b8c963ecd0d973c2cce02676fbcc38febf292616b05226c523a4bb6de9222de497caddef9e5bc65fc084e152f299538479f994dc79e19c806f0681ce43fded54c634427ca1f14b691aaa1e7294741ab9f86c15a68cfea5f5afa27e068564353ec51a39dc220ec0636a455604671d2d11e4de86b5d8b766b872563ea6d7a507a5c82a1babc6dee32af466d560cb9c9835febb4aa2d07d7205cec32209df17475eb635861e595b1f4cefbd9540aab01e1db317fd0ab6cf56a03f12688257028dcc7f344a87ab0f16c2ceb3a7c3cfab665c92a4b03a423eb158ad7d3a8958beaa417b4fc71948ece95058b56b9fadc25e9f3acda7020cfe201c1a584fcb2ef38c9b524941472d4651d828b17e7dfd31f022f2430bcadf48414aaeb49c21e52f40d5feb0e9216be4031c35f4b8cc6ade2ef156113fe63827179b0e6f30465111c7749b2e99adbd5e451f121f6832a4121abd9510a752a7a4a9893942d04abf4164346f4fd32a01ab7baeace93f678333c4f27889facecbf4f41ab234fe2b24c0de9cd58ddc969d53b5c7aa6ffe35e58dcbaccdfe9ffafee5b3f1d5222e6187957a6c653751b631f439b691d5f2cf91808f65de831e4f076c37b48fd9f96a09144ecd06510e3093429b37abf729e09e1fdc8dffade760a584cb6ee668a72d4619f421d5ccd663d379e6f143088c143e29f22ae9d0fb993e8447cf44015c36326e0efe6f16c547c3a212d1dfaefe654dffe6b231c5c1d8b3288e4ab38880b324249087822a32eea1ba798d2e7d204ea86a990c7974a37df998bbd7bc99d799458b231b4e45cb37dae19b46a95f597257e75df509b2f3a7d7e524134dc71eaa13ae8d585fa7cd45a6ca91ea96085e0092035ed9ee335fa047f4671d744a7b559b52a738f0d20ce5ca76127ab9d549b869a3eb6b66c57c1d317f68f3f6768a7eefbbc9ac06b4c45a6de768aa3b1cfa9aa19b792c23054ab84917628f94ab3dabef0d6445ebe8a374c4157408f1f84c33163a75b8f4646637dba50dc09846f1faf64589cfd1e5124f6e70770732df2bfd1102197d9a7f45215253cd9d05b7eef329c36a6fee9f3f38050658112b48c22c5561842ca24803b96d58fe1f627c2943ab1d9366d2abcceec4c6e55fb044e5a401d032f04f7ef2e49fb89f67da3a619ffe5702227a7ab06970f5079549dbf6bd4416722788805d4682374c982577b1977680e1d0a6af0e06ffe4103587b41f650a85db8eac9a009dac1f9f7589271f6fadf60c98f669f70989a913123f2ded18b2966abd257590ebae4225cc436cdea6430a3167f9f3f42f5cb135e11cf31b8e2e386ab51b6fddcb0e30aa3f2d8cb12373aeb8a364e3123fff93efe83fa89a44e97ccf4f9b5a107c1968436d8a08647acc88878cb7438b7f5545f59b2cb79e20ab8d4750243c6898859ee1d9d350b686aed01b2a6fceeb62cf9f824b6e76d57cb6f16566c4cac2aa17cdc8b72a2223c2f92bec38b0f481631d0096b2ae449370318bdd66e196537a24f0ea33aab87ac5c94bd0645824778cc329e76d5b38482d126a335573cbc81c895d225c3b724fe901ba5ee9052655ad9c059412d4cc25e00444e860f683558fc0cadcb33800e67c87b93dfe9adeca9aac911391632ffcee4a3ec48dcf03842498f674a6a8f689f058d825e931673d520700e284d3a26f2e5a3c3f2fcfee3d49f09775514b837dc35db8ea09e1db53d548ab580c4049e16327b5b0638a9f6e3513fc393122c9d9156ec532d462788a649f79bebfa626e38e261fb839f560f5276b36e462957674fee0094354dbb6275d09d08489dbe1fba5936d1801acd87dd89ad608d33f28a65d066f642117915b9acb32fc7459e15180e8ccc579ab2234cb64c6f4563f5a696eac76f158575276f773e0138545b904feef9cb44e1a13d3004245a33b476ad3e8170929e5e6adc68a12367d090091f7bca5493f7a448e88eb4f13cffd7f648ce368b092416f3b577e16512bb54dcd06e0bef24ed69396039741d37ff96aa0f3b7dad92fe7c67d32ec3c5d936c410329445c4126e027b1691f9964e39910ab4d1a6ec84fecd2934ea9e0f74f371ea279d50f70afb352064804d30fea26e4ecbea3eb6f96b7b4324913c71a2db4bd4a8f8459408eee1889f8ff15cbe14343403ffbba1d95c8b050f050e3bce3f394ed35bad88ce9e1235b3dfccfa478f730ca162355f1df0bb4d1205c8920b5b090851e9798487e3a858e8ae1bfcdd543209b1f8713fd1a80f6f3c8622c10315c1bf21c42d456667e64b1668f96455cd1281e3d76d3a52149621ec4beb651e245b8bf1f3f3fa770368fc83eae60eceb4f4d5e2b70e09a3015cb3dd2be4b307fb5b02db05a9225b6c21047b422c65ee788ccba14c86564f7fd6889a09a258e03ce3d802d19b33def3d223bd427a7cb4d9fd6814413e290a16bdda7acb39c477cbccbbad8c664aba0c97622e65e04c17cdcf51272eb8cf906ee15cd7ecded36bc66139800a4a7864401fe328f8df0505b1e13bf3bbad8b4a344a292d55a17019393e4f0105be7722837624b84a183ddb9278e9121b2ffcacc08456646653df5d5b88e77f8c61e341a869548ae1b286ad8b85ccb763e3d10da9c05e895fd49ef02ebbb60621dde417678ce965153284053d0fe38da260effb844a62956d02b1ec6e5c8ea661ac8775a95afa1861cec82c396a7ce98e5cef55429e3a4d239092f090ba10daa78811e59e9c094d4bd805ab89b5fefbc6cde6fdcee6f21b19c979e237a273e24d9db1d2a7aa6cb0443b5d8fdede41f5203442e658c6f9e63383407a4d67680b6f486254c597428f613e9478cd2b6e765029fb73ab72add5928752e558506e6ca46a3ae1abd4d2aa5f5d7b6556d07440b09166b0d93d5a939e190df2341415a132bbc0b742d3acae79d507628e1da15ae962ba93db1ab75e1bd6db1e99264e68db450bc6d242fa131b05fb73c050e6996c4c2f2ff95a372f12a9d22cd85eaa538db6e7096b765d730f7a35241935fcbe23508b18f5e61789af328cc00ba9f2eb9e004afb253317ac9b0ca2249f63040ce4ac99905508a6d349df6e96c6e675bd3acb3103c611aaead2046c4499fcdb17783bdddeb3c2c75553d338b877f6da0e9d12452943cf6040988fd036fd76deb09ebd8d24e464cad1b6f8d05ad9eab9f18c15b1d6a1e33437e874beded7ef0ca0e27f15229b6746cab74d77e334db74c013e45199e6b0c33e6da136c2004cdef5754c5b44d67085d9cd732bceb1cf20551fa0f183b1149caf1e39d88d6a5e0eebad539c3ec63ae9b2017d484866cbf6a9f5029e2cecc71954fe11c0fee7b1b36f8d18a0f138e54d45aff4f98aa922170a5d3f81d80121a29e6b2c8605214e6a807071675855099f305c9b0041caa826bbfbb216abf05339cc96cca1b143ec278ad3a1704653fa273d663f09addaa860cea934821e7f6d0d005ef1e8dcb62649907994c682481923300baafcb997150eddc0e3c1ecb6d911f51979e04cce3d1afcc40ad70eb0f3051189bafe36275bc313b5585126acdc44ba14a7cf6864a37a407069a266c252c121475d5132492be2120a43c80112360c847eb128b8b4b569153ef6205b6f24d0b5b641899b7244f0463324167071c91bb0f5f70777c8b92aac9cafa13181dbfc8cafa2485a9b612379bc72ebf2d3b59656980d200000000000000000000000000000000000000000b12161a1c23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "signature that takes 14 iteration(s)", + "msg": "8e00000000000000000000000000000000000000000000000000000000000000", + "sig": "f35a6312f8a053655499f4476cecf4324dce61e0e98a6fddfeb391b714201119964d2891579c9ca0cb74b2850623808d9c2bf5cf38bfd051ec4acc1ae827b68383622793527e0eb3fa7be83c1f72b7abdd0073f7ba4244b7740aeb5fb66433847f3c8882811421a86a55833b05c1c2f24949ee29332f5ca5e9fe97daefc85ff6e9636b9d188c2d172c3f9644df60208fb298ac2a08490bb611828f1f5cc93c687b8a6f7441a8995a3cc50e894a11e9fc7f6dbd4d47cb087f7f3942a92ee10899d56a65d27eea66ccedd9a7722bdae4aec8fa6eb0b45be84dbd4c68560fde71d04fca514e10bcd733de9b3f99454b13cea8453e2c9cc5f29c709f2c131c972dfa2f47983d04d997ff217bab57d250da438b13ed640f3ea5017f78a394f2637bc708e0e7db2e5eefb18bb1c68d4ab59643135d08de302f9575548a2239bcc385849e1cec32765748940a011daa3f208da13ff97453e4d08fb668caa1a282530a0ff8e0d9cac67235be0dfc06d0fd5eb0ad56746191a84fd5ed68aebfb3f3d5fc2b3a391cb62958c471cf9533609bd564129aa6479f90c2df8ab3d5bbc51d9ae862eaef0e289c81fe4988ec757170289f5beeaf851888f1bb9b349d6cabebb5dd3d7fcc25c9e4dcca721f0e395918a69496c1e578662e3a42bab10070ce1c01f61cbbcd1ea2fe7dc18c318d649bb663fd7b6022cee490de54d309b0be08121765082bb5b634415cd7d16cd11e69f12d2bb927529554cc6cd2ea48612e93f59ab9fed4aa2a72fb78a7b73c39c7bb1c2bc3574fc7e2c209b64ae2c2e50781ff24ae6761e05e65f670f7d069072b6d73a479969b0ac345a5f1a214929e6b783d542753c9075bfb97dc72af2dd269a0e0a739430b04f0d6988206974d747df8d07abe115d2db2670fd66c2527f288077e49fcf1dc627464a963f031f438861bfbec5e21d973a5d7bb0ab20bc52ca3eea5c9f6fce2339e0a65170f5f7fe8c8d0fccbb1d5b8c5a5f7660d782406e18f75571e43cafd66cce56474b6d933edf42b2f01408d919df23334f5caf47a96b68e845f3b4e4e110e3614cd477ded26f1bf7c92f6ce93291ee809e61d48e824ac80317ce49224b7319d8e4e3c335fa9788f1aac31a3fbde6590c22216ee17d27e387805082dd3259ff68c162339c57404f291a7dbdf12f220575335e189d2c9536f412674e918d4e4d5f1761453d6a080b766db3fa486f961c111b1e661f28f3eacc0cb8e21f34fb143873113ad70331e2a915f0fafe29c0567877a8e947e13e7e7c677af3fb1637805c37877f994ea93cf6e2cac41817140b4721ff48e9a569bd285a821f5aa389f6e5b08dc2be22da23a31610f7f37dbcfef33a3c85b2975727711eb0b54004f5fa0035416018935add492f2cdc00cd367dfe6b4d16829755dd4ba7e5f25151bb9f02b31c05e26fade8b32e7c9569272887c8f32975fecd9c725ad92ee08a819e2f473c800d10c47798e921a69372b6770e664224f4672265d0b659680b0cc83f0724ff727f723d7022b966f67ad5242f312c5aa832deeb9a721957edc71d3cff4b19023462c9114c7341aab6d6f22bfa926128e98cd79c2380fa9844374e67b7317da9478add4579ded5fac480ddca2b9e19c4679447324286d7dee578e7c0b1358f2754c1840843189b45a8c69702f6be6afe95d4739f205638ea9d2059587724807d8f5033e9106791df3e1056b3b9d8972afc72746519f453c3b51a754cac0713d440c094f4b707cb07fbece5eead8a7c82fa6949b6289ee41e1da5b801924c24aa85b30c95c7a074f464c320c836df0da10898c912ba1b3b3bedcb64fa1bfe78477f33f5d5058e306c3ad6bde51908e9ca8dd5f4663185b1ac46cf6ae98059aae95fa0967d775f915256dfb90f80723c59c1d86ec4c700ba795ac0c8dbc87d9616602d7d67bd0b157fa9b1040c40c71e2c2b74d673ef26345c825baf86dc8ae8307651a14a06a341ed4a0d570b77c297c012740b2d678b6963ae1058e7b514da045867c42e04638b9cb361bc35770112492bc457ca1baf1811a8aceb3f622a770bd1958b5312201d9c2b228763e8eb0351a1f6a70bf2b8a746df2a4a354800faf6dd7299d4c70d0c55560f20a71b896553c731cdd65e1a8d83145f8c89fe587a299dabd29050fbfbc7dedad1aa67b96970403983d76406c04eb72dc8a77f4af4dcbd640e82e12628898345216aa350b8ca67136e4271bbd33670554dcec8d3e9e3f05424ef83cd7003454a9647f864ea143438519b0478230b794f7635a960ecd17565e85f2163061ad947bef93399f5f0977dca1bdb4999459f529fd7eb97e426978c10c20d8e6fe9f20aa908a2f734d88e0ad68f804e7698e69d065caac268e73025d269d06775047c028e1030d163730afd474b47f2782bc9d21af573080daeeaab9e39761beb659a0d1727f91ac9e28b1b332130962ade9a5c30376b23f3874e1dd9536d1c4db6dcff16224f1c6a98d4705e74a1a75ffaef200cedd73a79552783bb3757794c30c7ea0bdcb8b504212d7218253f777250369c8a65b321ff719d3918ad54eb1e5fb9dbb5b0a4925200f8edd784d1e5d5ddcfb20ebf6565e1125a8a3c3216ef32a2df02df47d38b90a45edcd940095d8a672bfbe505304cbe438f74437a34cf43ba2f6627c56f3f5b7a818c7dc754424eccf2446b0ddc03bac858ec34c1aa484738bc8bb6078adca3b2898cdd117846666410c490b5e6ead1e1fe3c231bb223a245a817d864a70743dcd3912d7011d70eeeb53ac1c0463359fc87a3cb179c7313cbda432b85374568db7610b97250f56a82cfe6258b4a68ac61e9dc281d5b887db4573b9f7a01503f243403e3e119f149ee95824f8370c64671b2e751b2c211c10c93ebd7fc8847e1d4441b0fd603ac7d8f6dc76e56351a26f8e9894f5370abc816d182d7a5f079827b095152e7886f087a9aaa5498dac8208b53133248f493fda96889a17ed9629a7c4b9e103ab59662a1347e0593779ece0fd00991cc9e83990e8c673573017329616cc03e90353a2eaf89af0b98731b5cbdff28b9e0af4478b631d6fb3748677391c3dcd342a80958b5e3cdd8460f4a3ef7786ae706991569bed078bd2c7a8902b1692a844f704f83477c456499bf6f743a12ef9cb1b560d060c0f864c8d84d3fa0162e1f128e19e16eaf230351d3a40999017cbdfd182037977a3ea8847877a1652abde40eee28bd9890d3e29bf626a1c7c5a7b02405e84be97fc9f3702d65854425c57dd85e7a680bfb16703d0d5c13a76696f15e802f2f0c757caedaf0844618520179d24d3f06273b87c9aa3cdfcf8ad05877387468d937904e2068522309518dca63a51c4063872b0b2089271b96dc1c62aca9423a9323295f2cdbf1d68e7600406abe86d54cdd1918ff3d763245da9a6ba4ac791e613ed73ee50aaa6744a2427aab021e2ef24f953042f6429fc451e39e796f6c7d64b3c40739b007699fed1c057f75d2d4659396d20f09509413eadffe78c75cef3e9eb65a12e332edb9e3b2e8e64795fac153a9f5bc30a7e3d35d65bee29cdda5afd93dcf7f5f42e4a448add1568d199ffb5774c3383cf8719bab694c22e5e3986dac4a679f741da198a228bbf4766fc7622ce5f517bdb900068c0b9b32cf4c563dea50bbe7025fb0e436ea86b0a8c2f58578d48f15eded8d19444906dedc2b766c376e6d0dfc90d761799d02afcaedbe35c9a30b3d302e4463186d9cb1867de8122009d52ff8fa8549451b438a379052ac63770cb04c8a80ab894efe019f414b48bc9460b33fa51978fdefa2f2701a440dfce6a50d92ac7df6b915314f76d7d79636877dda24ce3356ce78de29fe40f2ae4104712be865b17e9156998ae7bbe937556cb05cb155a600d303ef8df20940563b583bad366a0ec1ec023aa685eace86a495e5bd63d83b7d68039d18a83ce1ba5eb78f75242822d06601fc082518f59990e12b486a1d64112a80b80c6b0f4f3d5efb82bacf1b48857d06c305bf6f6eae815a39ca4753280412e340095d53379a0288cc977ba069962241bbcaf288468b9abd23118d3eeadbf706468e41199e57e9839b7c0bc1763d1b6a7a42187723373ddf6c9aa70765b0363dd4d5e70c9a9cb682b672f95dba7e156ac11cb3c526411b856152d124184227c53e45141ed12891d3b071a453b5cacb6bc07daa9404efcdacd33d7381b95ded01a2e54a7bbaab38096c08cdd795378ffbc055093e0602d8cc872f1a0e20e1577b0459953bdbe606a0147462c3e790e093c0110833f10e71226c1717cda055ddd82431ccdd7309648b5799384e4d776ce800ce7822cba4c2ef34045149e619cddd634f45fbfdca78df367d5f8c50392767b972ba01fa69b4907f1a610222943075ee385382652cbd5cae573f7edd8bb7f5f79e80eeb85669791f444ad3d5a9754f1e6520d27f563341ec0646f8395ee03e89b091a7e8bc5265b9f06040cccdca852e1b25cbc31c2a5b65b86d5ee855f00c7561c99cc8a622e8a4e7e2d238db3f48201dfbc381ce1ab55e7d6d0a1c5c5c7de5b095161b90a2696907662e3819aeb5a1198e21b2b760c994549747c9fbbe3152c3e3f56a0b82c2e4464798191d0e5206c9295b0014e606677aacdce3d717fb800000000000000000000000000000000060d161b2327", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 35, + "comment": "signature that takes 15 iteration(s)", + "msg": "dd00000000000000000000000000000000000000000000000000000000000000", + "sig": "191fc745712fc8a225adb8de855d779eef8cae43fe75418ea2b02611b979d39499c190bd59c31000eea61c0071a6c765f17f03310002524c8d1ba8df6c259405104df0a435658b488a3aa81c82d9ed06ab0886d456d7c021129f278edaf04477e9b27b2eb35d211691b43e36e65c823070a99e89e0000af939be62f1d95e94a168d953ae5d0933a39d223ab02631932d0006240fa5d3ef265519a5cec6bc796f932345f61e0e63dadf53461a1e444aeb7ff96b32cfa9c8ea4896ca5b5c58afa77e43ab34b011e6a93f9bbcb8dd8805ae7351cae0a0ca95756742077be679da919436faf4e386329000916e206545b18011221f25b8bbe71103aab949769d2add6bfb4082cce81a95b66dce001ede20fa6aac7b4c853df8205a432bf5bb0ffd3dae68e4eb195dc408450748143c8f5e6459a80a1f26b1b5b148d5394158425f8442a0d9faaf05a5ed8df9afa8bb97f499a8454615b626098fb3daa4c4ddcaad2709afebb8d6e1eb5bbe923ce5a4c41b3dc1568f4e8634455de6040cd3653ce5f3d63cd54834ffdf87e72e2c51cd2416041abbb51398e1eda1e22ca4e7b4bcd72eedde8581cbfe2b2b821918a338bf02a5771286ec7c992ad7e8c1f46dffbeb101e939f4b918d9a7b86fcf9940c12f0d2577e57f2702a263f177ab0467bfeb3384647c179f88ce508eb0173bfb6af85fb662b0861ee8051fa4c1820266f8aa6bd6f5c6dfdfe31f15a86df16669815df1af36c2c03d10a8364f488dfe3c266d012a69e538292d2799254da27d9ab3dd900185d00ba45110071ce6132fd2fbd6c129977bd68a44bbe3d0d90b70c5c4d7bf3ffa9f50400168b4a2f28c572b020c175562dcc3160df4a71e77854d555cb8d40f7e773e532934dc896078b269b719de189daaa17187e506d7c2cf06d7b7f4d7ebaa1e1b8f01be3e5fb514c4d3c23736b059f7f6b2a071a20debbc7aba923e040673f7d63a6ac223e86a85e665a941b1067f5a5b75d5a2d4622f30f61f813c9790d0bb62cba7c982d34dc6041f57f204df50b9774dc7300834f53f19d303479bd5df42b378dc28bdcbb81f8d2948b2eed172e57bdbc44d688dadbc2e30609e25c4ea4783ce53d4e8ab6ce921d43ec8e9ee82acfde0cb40789a50a9c696e9711e407e0a2383b252fd25f5d2b5456b4e4674a579f1c1c323d3abc7f1c14356c7dabf22d85ed4a9b5e75d40a5c7fb2912f4ec1e8ee6da96f352fe41c41741f312ffcfb079de51437467a4133c274dd539399b40e42d0805143fa8c7fa9743fca370059167f6f3346fc302f5b6dcb060e80b53eacc6bff176c739a6536f6b1bb4168852c68b57b787c330126ad0fb0414433ce263e2e46b27680ad072ac36d653cb95b0f0f6386c9f9db8285c3e06c38de485cc74b4610fb99714029cde977d9951c91803e9a6d864cf42215a4917aa69ead9509ce0086531d32cdc8cea5e0008bcfa709d18d0de3df22f50e87f59b7a512f3579c46de310dfc8cf95a7f940bdf86b8ce744433fdf50b5a9ca6ac87a7a7d1c7a2533c1c09790506f2cf6f8ff395d2122db9021a746411abedf1b991a0bd6071ced9135cf4319a45c564721945fdad887099efdcd1fcae03f4df332e0c7fbcf04fc66a286589ceb75c6a8f4dd2c16f67caedbe476ed4c57797078454fa66bd532494b83c03e2e5eba44b7d1f51d3d4b93b0cfddb290f05a24038871c766a4ac48cd041dc66a731b4ffb851a7648927f368e92ad45a369a4c9093f27476fc6e878ca8a9b0a915d88a3f55c7e712927ff961fde415e0b99bea5241e80c8eebbec3892ee13a4ad4d77deede0244f45f7c2f50949fb6224209de50d33047fdd60cc3610aa562adfd77e11057fc592e83bc2fc698ed156c57bfce86e444203b158948a0fd266f3167e46a061d05f5640fcc6cb7210cc51e8568e589fc950aa20daf7ddb4d46f5779b20d0d46890761132e23757535b37a009f078a09ed3ff17214574518eb1d03feb0a531f2fb59a44c96c27b834ded68470296be1ba9d4b1468d8e3c5daab19c97d388342e3c91ec82f7f9b50373add853b242b9274c8e7d59b4e84826144cdce31cc8a2d42052bc2723d1cfd01425d7cbf0a72bdc64e07e9f50410c0d84e128b4cd71f4c8a318da81567f320151a82d7b78d4369fdb6cb33a9dfc74394fea9b6e1b32bb4f2ba5fbf6bddf8ce0c93cf18debefde8057e0fe2135240021c647b48bb197f3f205621bf34e0bb7477d903d01e0814774e1e3868f30bb090f67dbdb786baebf443ae31e517c3e42f18a1651efeea26131e763cc3190cc444f8d9675445dd52746bad7b80854f9c4a5836167ecc0a4c1aa65a915de8eb20ff6dee1b3005cc2cb5cb94fb12f64bc010cc382b068ac9dc3cb78e8eaad7bfbae4c8527c44083dcccfa2916fc54814b3d6f37033dcd7c8d56efbfc358af36d8c39eb725d09e74be2cd280ad85431017a50a8445306f6a473da9edd363b7111946dcd03e8cc79c030c6819aea4927f1975fb991882ae05421202024f1c9373ddd32d66f30c3933e5c209af4cddc4b485ce2474a7d49e3375867ef0c6ac721a643d578a44f33b0474c7ec0d734d7021fa5a0fded8b3c2cb03d451b4084e5ce0ef62330880e97234dcfcf4bb98902602aac8500bc367675018b840a0f4859c89e37ba7eba8583ddb60e08f2bf0e2cc60fe110d51c07036133c40cd98b8c9e877ed386b87d114449986497aaa3043cd8caa74277b0abaa6efe6b837cb873243c912a708d3e5de41295574d361a6fb39fd90664537ef8a13cc7ea3ff2f42c04c5b9593d6e34f5759f3b8a4d855aaa6372f7554a8ca58526e80ee5d405c265547c6a6de5e534e058aed9bc41f3a34477e093888b1630e6e3d71a79879c7563705d9ab7cbbe296c56efb9071aad4972f3519e096cee67107f47d32cfb3f484d5fcba19206d108ae66c6c62702ab3e0a3bbe70755b97d1ecae411710e84ad22912daf8a86dc1f3835c556b8d6fe83888846ba8b230a5f41ebb2684363220f2b84eb969878e764674b0b8ad64856af7c65513493397562a65d635cfa8290a037112650810d1e94591e69a7bbdd1f31528d866a9033e8e02a08ed36abddaf1cc74076e7e449fb08a90e247a9dfe7070dba8a929098a3ce1843f633466a2634b892d241af0f51ecc0f5effad44f7c7706b25a7e85636a1c67ea858414bb2e71cbb519e53703132206cb79f6ff3db39a90300fca172a283e5ac43f67d8a8bb9efaee9c541fa4086cdcf727ba0820485857118a963f6c2606cac4d292f1e4364d3389b03fb817974a323240bf986d723cb7fcdcd84bc7d4bfb37d3d94cb0818b569e92cb582e8d4a6deea11cbfcb3a93af11b9c59b71b3afe3f96d4e1550d2bcb082c89e8edef437a51c719d2b81d6ee77b5922c9da992afbed3de1ff76b7fca4e5f9e6afb6f175053e4fecfdb4696181cac8d040134b9d2248b9035cb9e2819711983d7797abf2d826a893c9ec78128a551a4f02cf1b9f5a6e1699a2f6abaa499f80709f42c0ec89deb8c828b35142f49fd0ac247e09fc5dc826b20ec840ebc858b8a265561cf9f616862f02f7cce26f22dc285646c1a09f7777179104d1c12c5f6624c3a7639c18c9ca58963f6db0c36697a542451e7a9334fdef9e2853c175d0ca93ee009d408a9dc9e0830b620f1adf11c3b1351b762d8dce5d9bc71c108cd154a879f277e8fb5fac3a6e7e538edf2545e09c2aa3737fab0223ee9ec65ca5d8c11b9e1a21c540d22fb2159f1a0158c6697616df55bddc37a516438b718261e700485e7a3a62e3b0d4e97b41f2b7e834acda632b8e9fda46397dbd75ff3761c9fdc2899499bdd9dd0f1df91b113e90c1765e27432b4e70270e380f6fbe4f8759e8aab00c7ec6137ef8378bd8f512e7217784f87b6692f1837e75825c0718bb8db0c60f82ad883aa51c70e68f4d37a2e5e8655ab792b46e1243cbd112a29573af7733eee36788f6e4d7b966a68a3874d0f6559b441d3bb11a8e1b4e1859ca11005c447e1d7aaa9f6fd6e0f177c1bd0d15d05312524edd18fc2e233698d35a0f8fe70d4fd43e3855cb10f0d9101e37f3d1317c9d7d78a57a15b736f759d8eddcf1ca94e00282db8631f8bf2d2a49535ba858429748df9b8dc592b9545fababe496bed4bb525752cd5e338c6e666f8a3961df74c29b8221d720a1bda05fdf01f92d32b3ed9ce8c3fa70f21ef30132cdc30bd2ec9c5aeb73bf712293c545744734f180b327a08a6b4749273f6d853429dceda4471533952ed47b28f78ccc91ffea3eb0dc56192355f64d36dd001e822cfbac8ce9e2bc98d9a56567d77064e60713a0e7d676b17be0d05cd181d0a9e101560d4d60153ac59acdc5cb8bb3550c27a39b33c399aa54b488272903f97a4e3a9842b30de82a18eadb3cd897d4bc92a23c576d780a83829378e15248c027d1eb76bac3f1f7f0413cb7a5492a9c44a3ee78d42293483983a7d1e90fbbe277411992c034b649c8d63054a02b17d97398a87fbeed698f0e890c479b2468ced6ab23a986ad6c41ac712b137afa93df37fa8080564cbf67bba235914d7a8f832fbacb7f3d5ffe2097f032e32585a76a9aae325a5cb121619344a6466696ecbd11d656d9397b4e2142f35580a22292f3a3d46494db1bbcbcc000000000000000000080b161d212e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 36, + "comment": "signature that takes 16 iteration(s)", + "msg": "6c00000000000000000000000000000000000000000000000000000000000000", + "sig": "3e41b01c01bf6603b6d0eef00cf02bf550767797e381cb6530affadd09100fc963e864c42e24059a35b54421dee314dd6ec4dff8c13e761061160673d1a94008b1131aaf1cff6cee99fdcc7c79991723d46cbbd3d9e891972c9d5f52f20bbb11c54e5ecbf557332c25c9b54179e6064eed210479dc6446707f5204aeaad9db2f8f21ed5f602965bd137982ab5132d9f24caeae6bbff8ce95a4ed47f63d7d258fe1760d8e8a7e4a12db37d3ad11131605d2be5eedc250feba39574bce461ba88a0ef59cc7ac109b76c83026afe2f2f3656f1ab477af4b49eefd56c9a00ce804427d78a5867ec497f07a5c488762c8883b839a584ef014d91e909724ecf77fefb2fa3c68b548deae9b3efccf3eebf62a5bd76f966f7489a71d85abed7c06bef1400db6f188aa57278a874cdd8613b64334c59416d1b64b121fd2df20bbaad74c8136219086fee3400f6ee37ad03fef16a9bb7579683ff421e046f9cd407b61e9a8aed130c60596de5be4ae7fa50667db07505af533bd199c12128c03a7d740c0ecca1aa7f33dcc60009cff2b6339bfa041fa82032eed9b2021037fcfb00c53c096f608fc19fcfe5fd0625c3bae39d1ed3067f3ac10344eba67441919cfff24c90bab23ba36e2c835ca1059d762108698cfcec610e711513060845c189c507e34a3208fff884c8825c4ab3befe08f36e378503612f926fcb99949d9a2cea0b2fe59542e69f1c8f99603d10c02df15ebc4193ef22cd45303d24ae70d93417e87959e209ae8ae6618d2007c281ea8fa5e73be5ac16aae20f4b037df559835b25a80502543709916bf1f20bcca93497472adf33b43cba42edfacb51d3294b476db006cdb534b0e0659a90a26a9ec68b3b335d461a613e2f03e94aef417983af6707a543ac99cccc341b540886892e209f333d4426f6dc83210d602d357ba70942506bf391c747a86202ffea712e7f0448105cb61310dd1fbf6332ba0d6e27e3ef22cfcaa5834df1b7f5e8eff50b4aa7a3889a0dde43d1b09246aeca8bab043044f7daf2f14a61b7fb71ac24c804c07619f31b94fba83a586a9be34706386683e5e3965ff4c242e524bd4745eecf30db2865db5f217c4f9dfe78584895d4214abb2b7084d7bf64363dda987987e0da8cfed427c20e83bda6550978d35e995368e6638c055a971e7b8460f77bf59021f3d3cc4edf36a44ff18b618d0b854c5c3cd1c8bf1006999c99def36fa878ce03bcb01bc48e1b5cbd975c7afb9d3029317e4df17031d97315027dfce18dfd16ab5012eb0a24876145c0e2262627582884b18619b384ace8fcaf35dbed5a95c38096aa006a94ff6b88fb7d800574feae49a7c9a8b29c36ead729fb194770e5202c5eec7071541090c0315493547da789b15f2fb28ade9354e0b0952c75541245dd0d82e0cd553911f2f844daa2af5e34dfd2f886559b69f038e41dff53cdefba8663cd4c3b270e41ad01cd9c69d84117729d51bf9c0b8249a48a00ee7662fe0f45e3f522b0e97547c6d382c205c47a2711d20cb8a6d18ed6a227c49a2fe261e9cd5427acb8f8b09477791cbb13c161892891aec718a2089181dda7c8f8bf7774ce109d8aa4bbdc6f6451ed2eed41561d7508fdc123fc7018b67585f5f7cee14645dadb2fb1b5d6de80cd5c5900372400164532f1186b02cccf8066dad549b3949714975cb92edf3f98df302ac01e5f7ee254ef0d76f3a5afabf805e81d95afcfd39044ae1fcbedadb35e737a7277dd31f9cb5c68f0306495b5981efaf676da2d28dfba12fd87625e14a6757e3ab313586c68dc8ba7ef1e90c521fd13e980fb973210ac36ff5c223cc258241ed45138b7b8044fb63e8899faa15dad544f77955c9dd39ee11545a10e613f09e01efecd048b9b61c9f89e10acf59c4fe10e17f276c0d72aeac60971673ae1b13ad5d6ec116dd92df3e0d6cd79c71893b812d1ebcb6d2e32d3044dd0815c4aef995486eb6a2262d5ade9f975ba176bb3be9ee4a0bb2b9b0dfcd679f3772db9c7e5219ea538f1bf4036edcc9e52623c9b209e092524d023dd200308217b7ad3df4aa312ee8d503fbdf5bdcc6578f32f4bd292f5e7f0751d6e18f5500ae5013291941f20355003731d764e973c17a7120daa0a790e5362dc13ba377aefdb1e2228ae1e2bce9bbb66661f016fd184973f1b156bb2739bf4aa6cae8b935273f8e821de354a85a21ac92b08b5b384e4889ce5adadec098a2efd960e407f6c1c5cb51776b49cba25454633b0d804dffa9adaa22a62475feca711f510dba1b927452948875c23fe50eb04af36960ea8f322992d48cc136b2cf44c4fbc45e84bfe347a1136e11efdc4ec4125ffc4feb8a7c2a832e29de612ec28ebb59c3d82d45323fc35b1a0136fb18aed7e761fcae68944f6bbd63b5c66621205c525d0c409d7472c263e8e1b556aab713924c44000e347f743ab9768c46cbb654d699bb0892f3461d5a8dab4aed8d1f0816fecd297a09d2ea3d578b74356709c5c019e0c6eb44cb9185b96e78193fe5f3c19437057ea356d8f9af450f5bd9c230fac20efb37341809228116dc5676f43cbb970fa1389dc8bcedcaa0722e8dd0aaf54eade137e8f18d9d7341867fc2799d05681aeead12903857ae7046fb335cc290e5756a2812ec9925ecea01919df31f0b99ba516b74a1f29b17ebf02de6b712a12786b8b280cca0c8c6673ab037db91612d38b48a1a4d3644b0b52a4c3ce262edb5691296d2d53071a14b7227e1892927089a19dffad11f1f1bd0c25e6553541d7483ce277a96bdecac31724784aa9d933d3dcdd3f42ca1929663b5e1102430d9ae33b60421b37381ebfc65c4eb23afdc533170018ff2a3009367e32ab9cf83d806dc6fa796de92476705eb434075206e0e8e1007f94dfec75021906fb1ba90cb1ab90c4e726a03f8b1eb40e0b6cb781b84d44535945a2caa50c0228f1f63509208add3951d6fdce948d316a7ac5422db6e065928bb32d495730ce8c3e78bb7b909035f90c01e4b60bcad19224441d2495636a38904c45b98e38ea5ffe4a4a5dff4ac585a037e129a5809a864fe763e21c3bc35f026bd61cc5bbbbd490465f66dfd719faae6e21836942f9bc56fd728dd5c835943e4289bc83e5eab913385aef4c526f42b9143c3a430b399cd469395c13bdf91f0b61e1352763321e439a15f464df8901e3eed66788d91fca51a81fdb8dab7a0d9b67202b98412f39015bd390496e0b22209353d812b8d4a458c2e5de71ec5c17c9b034d892855fa70f1199a942c3ee4835cc920603d2afe28f51259892a7c610774e4f77fc40739f6bc954dd7f30720054dc4a9df4f302ef6fc3d379c67772cf4a5a6aa6024a2e7b60fb430fdf2a1f1f44ef966f6a731886b8ca6de72dbd72b648af68fe543a7534fa42851c1b498ddac2b6f94a18009fa03b976e5592a818e87322ac344ad4e981b590bb57980fc903bdf0d84a23ebe4eeaa5a658736c7b91a7ea31462a7bef3cec35630cf5dd82344b34463eabe9c37468a8cddc9db577365cfe061bac2aadd6a339c35caa61944bbd76d1c5f605399b9c60897b41ede89d4392c9881d8ef54c5b623438633607c917e5a148f91f69330d2cfc3a07a385fa636b1b176fd2099a8532e517603f461e1291b65e4de6c534d6dfa3a50f9b0cb4358dec901823fd3fcca7a1296118b261f470cbd2e8438a6debfef71787cfe3d9fea869beaaefee5159c7e0e3d98e8a2f4dfda6a42e01504c04660ccf06c249736aab24968c3718037a9b693c3bb09f3b7848fc70c60df838d0080595acffaffbe8184771615896a42664c3aa7a25c7365d696a23644c625bb964b699ac048f78320e064140ded9c3779cb5453326b7ffb66c14193420c46a16537011d8c058e5689b584feab9d82c3387d5cc9035f58b7f9d9cef7fa4bd8fe4118e5c8aebcb1bbcc831ff5cd2430ab3b90393987d7906d03f92374eb3bee8c65ac043b038545da445861860b59f34a28112750eb6449c8daaca5a3a8dceffe8c573ed9278938d6bc47e8a0c0c645040e1610b39744391a9191bcc34e08a31b9abe1ae69ad9f141016fcd1b7d4d5b23bb709b1240b3b7a9a1ddb622ecf276ed63f1a92a184a7cb80adf9dadee15ca87972e530026be137cde18cb59b0232a12ff5cda724b21342108ceb83fa30dc50af8b214e638f0e88fb2e11664f6b14ed6421022661dfeaf0903f732622fcf19375daeee2ec601d3e3749c339ea85ea1f02938f972a0ae2804cca49aff7ffde527d084e0aeaa45fa91660063bbae4fa03c3ebf20d00a8b32f17c4c1a4672f66b8146fab2597620aa8bd9ad43b7bb238c851b3c37e8551f6de1a8fa41dc3082dd0d202b75524cb9685812c9756ca8bb42ed74175a9d6e70d904713b08206b1cce2c822bad661634536f9f51e753602cbe61fa783e3b6f0b84de0ca9b89b8b9ff8432745b45d4f38c660529e8626ad737c76810b97b89602fb9b9a8b8964bd8c79f5439cd1d12aebc7d240041ad00cd244ebf266a3b2a964d6371b3bf6d676f5fd97c1a514c3ac26c0442e891efa56fd67971ecd81b90da6ca20fb2a6e83aae5581d4db5bdd28efa1015066788a90d1dc1d1e253f5a5c64c6df0b0c3b588006cf3352606290cbdaebeeafed0000000000000000000000000000000000000000081116182123", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 37, + "comment": "signature that takes 17 iteration(s)", + "msg": "2400000000000000000000000000000000000000000000000000000000000000", + "sig": "45f7b98506b52cf17ac1ca661951dc3cae6637b2b532dc3dd3e49db1ee098bcfa20be1b6ef9a4b278589b8e7c4cad32a16c5600901d47f0fc06272628bba29815f237fd0839e079f0fe6739dd45fa3e5a93d7d1311536c1daaa2d14179eaed2a2933d17825f88e034c9be9cf5f5934ee9201e3496a65e4aa7a2fb18cc323cac3a1997cd9e953654fb504f1c9dbfefd35e09aeb6613ab4c06e571a782acff038df56a04e03ddac640909858e543e9ca2015ada794340f3b8187faad2c088e9a18fe7087f8bfdb3a9c234daedacdfbffae1dc67e04e429555d53b42790fa1735e788d930889ef6618b1e58ed5c327ea6723f2c11f1f466a9c145a11447131dee81550ffaccd5663a5a14e25f21abd330f71fd7405dfcfa93d8227b142cffe58d575507da2c19a631b307570e2783dd4d77e73ab2639c6a4364b3a2b1b7c92d93366f81e7042f2fff359b78630f6c3203b1c88ea9bd0fb7c732f3e5753139c8f9103480e77c57a6c8705ea245b47cc0e64e55ed2246d45e93cd638d0104fb43806b329469e2dc4fec7c9527b5090a47bdf0004ca0a6d4c747df14e8eadb88af3951cc2fed195af08657f35ea1eafd6bf53755b4a66153d4f8aa62f1feccf69f92ce4d5338c422e6743c23c51326be0296d80fded7d5b01c54abf10d530ad0f136313b3d19e55c5ab9c584b80e83f5dc99960392359a6fa718b4d1d6be467de44a8e6678d05d0a1261517d4edfea6bf90af2a80a11fd9bdde875fd340aac5880b201e0a935f58489eacd10f9c18597e51ac0604be6a5df0fa83267bbd28827668fe05bdd26fd7cf09a2c8b3f42df35412a68cb3b45679c76e012bcb7475522234d0c50845395c5cc896a336f1e216e8c62a5d65cac474c8e48f0af8d9f160f08208f196c4cc4c9d2dc4e592ef1407ed6da5471b0622d789300259ffb8a4ce75130343ee0215a3f501291efb8ea7a43b0492264157535d79e8edf106f9100573e486915e54219c989c40cfc6bf6f058f4a34f952a9f10fdfedff8bd173be598f2bcedff2ef2216386cd1eb93b9ce9e34179a29569da669b641297b3874f7477b8d08075710c9bd83cc722fd94402929eff0961de5297e803067cdffded15c42f5febd63f61c8f19b24adc1f599454b8d40b5689ffe5aa759517be2d31c45f5024f8fcdacb7fb0147b4a67f2c2e62bed6d99f2ea15f36ca051b29082e64f5272c7628f923738ded2bdc0b58b2f92cc11046055351bd65b3efb9779d3bd0b28a0e2ef1f2e807b5eae196c2bae7b07149012a8d52ffa80644c04a0ea7cf5226b008e7fc40b95fb0951c2bc9416d60d677ce96f86a655b89f504cd047eac6c6d1905358de689b518cf8651227146fdfc8306e574a38ebb39d5db0697c8320cab784e5c0e71f33adbcc5e2d38894e6006207dd97e545f83201bf1033a107c92e6fbb63f7fa9d6d80ab96b2baa89c89182198e1f93102cb9b10a21db60fba15820c1d82244dae2dbea9124bdc44f69931ee97904e15200c91bb525b3dd37837224c5c52659786e53701dfb0ab836e5ab3924beebaead548b67119d63b52ea88def1f28a0492aa047c346e5b37240d52174f609d82a46be480145f6644647d814608d2aa2077e97227bf7265c1e8e41e263abaf76eb4b705b334d7135794e4e633be36c0eadd86c9978cb5dcd34d85f959fca840a837613f35da365530b4a075bbb0de3d5251138390db3e71da1377527fa3cd5b15fca0147f9646b0813a64f5090b5bba0c68e6fc3e328215877e7f1405346624f8ede7eefa90778982fff9ecf84330bff13e6ae837d891535be7e9d52f4c828357aaafb129f7f1472fd0ae17aa73ea80894496d805a8a393e1626b1bbbb8906f3bc1bff8beac84d1b678fc2fe0218c5983787e7f98db793731fe8b5af27c90691d9ce029db1c35fb9c27659bb09e01b22be955c64fa62cb3cea9d396c47a25e3ea80aed271ad3eba5e48a743538a86a9471d82003bc8708ebfc3f2b8433a3ef418da91281e24525266b72b3c975a030dd41d7a3f76b46eb916c951c27c6db83f56338e12f4b8d517f1f39e18a954ffb01a34adfbf8b14ac5166c7ece5d8ca2e236e35a339360366aeb62cf01242ab11d18a95665b7b3c29ed818e65e14cfd1443e8ad67e32343c90272ba9a262653725d1338694c77f12dd1234f735d0fc59b55de9733d6cffec59cc6c4b1027a7633eff36fd547b549f2d54577b4d3e883064e1f96eed8003c44eee8ade5a26d59d657355d17ebef8264fd07f006eedb3a0182bd6cfa708803d5a521a669fbe2ec256dc69e704c31174fae1f5ef3688a6f6a5568b872d7a61251640871327350d6e00818538f60c7627ae84ef6773a0024790a93ba11be699317711ca3710aa8c7f990c1533277d38d117e0a8ce92490758dba144de16a4fbc97c2ed2fd466361cfb07a63fea544a54a1f4b04780171672b8f9987214055d65309f1a41c78befe703501c41520c50afa576371c91d1ea726d4542172d97f38355b7d7cfdde25010468a63ab2cee6fbae270a82f99384d46322e84c883996ccaea15eec01f07f9728cac753cda40ac6954b52c751e375482776788155edce5a23507c4628ecbf715262209ecbd7ba91948ec891571c214798e96ede019b5c726c8447801bbf76d565e7201d95cfd47064caffa3ee0757bddb9ffac0b42f4a804f68591cc7f2e0fdab131a8ffe5a7c776848927bad752f01dcfff7241003e501623ebebf2ba036100f3dc5e28a23d18d276476ea014494c693d9f4484267f1ceecd7e1fd6c75e74b416c795b516cf9f99a26d669bbbc9cb2bff8de6371bd4ea97b35fb8bc684c464d185e3bf40fd26a8323d507c7b31d203aae661add13c6531f7b56635bd6509979de917268bc0b4489f5cfe2bc2d117d5f27c1cb0de2a85c024a555a815eed435b28fdb97debb7fb6631e72ca1fbf2de560a54496b7ea79f72e41edb21eb28e7c910f74c85122240175309be4c419c2a6886803313d30ef93f587b7fb0232c91ae6d12b54406b495362276afa922af02ac6357b04f817b56cefa7a326376b82aa10e35a113c61666e9b9c9206313318b7e1097166568239eb3455478008e42542608923174fcfca8151e0894decc12fcf32ec9a2c12b48dda7a6896db728ae779d856bf2efbc34d7423eb48c87e00f4b4727420cbf4555fe5a46c63505fba5abc590415dbdb842abd728638844934609980c95985e3f127178f0fc463f4180fa74b5a5cdba1039db813e68fc1de1334857b55dc6a6aab0c4c665a9046a4191eaad90bd9b2b112a46e2a4c253d28c175823334d49ba9e07e85634c24dfedb348e592e4c994a01a5fad53964b7af28f431a338af16f28bb22c645d65d6f40150e7f10897be7b8496601551cd5c813057f2e38a5d59f310b5bc1b52216c467d1916df0da345b3e2f0aee80f7079648876cd2cf3127ef3f18acc55f97e026e3760ef91531fdf81e71c0af14e24bd2fc1bd280f1cbf6e82495e31daa5dc2eb9c0d6568e9b980da14c4efd8e80e853bebb34c259762d2e5ffb918bc2f85100f8d60b0e2353f0fc1f7ed6b3ccda17ff778db565d2942898579851409b31c2ebb860397780174ddac7fbc5e558ae04d6d60c3098adec601882ea9902b33fc43a92e16db396e345a995e4487ab2d07354dc65c04dc873cf13e1f189cb19c84627b892ef586a38dd649c02f3f4efa44943387c493b5edf476f8e68444c804b2543d780b4cef1b71e80251b1cd64958ceb48cef6956ca74a590b6623c7181acdefb343ff65ec776ad12594890ba5b77d1d2d37d0a859aa3a0037dd70e1c0af0b686559bc2c619ab8ca3f649c38e6d0f2b5a6458743293ad38ad26541c843bb00c8005407bc74446206af67173f53043d9c95c2696cac7359023fcdd655dcb2d8afe068df092c8bcc3cf18e438c12848ef078383f6126a5f2f9b4620d193d6c8b8b9f1265c827c4a1928e3e523b2e653efa378800943cd3e1cc639ac3821f7fb44f5f01290a144f11d3e26244163e1cf60aa627d7318dc3f42fa9bbc0292d6fa61cf3e04dab98a3e2ed3a1cecbf5f2e08aaac5650343934958f15a2b915f0007c7a251623c93826f2e1a1c5c8aa0879af6dfebca672c616917ed96ba3c4757ef0714fd8b88e0f21af580e094d9381a5a8fe18fd34156627dea4cc154bbd9f2d9eacd1e40747222015fc93671d745488c8848c259c7a2582c0165a1afdbf46c9a75590cb825074fbd410410a94568c444b2b964d331efbaf82771524a6cc0bf84ac2ebd1f1dd0ed8033178e79f24efeb43a0018351b13759035120dae2972f6e314c671e3b918ed9ed89234dc27c17ec9abdd3b2fc64d8e562ebdb7c90902a0931d6480386dd633185e15459ca4471177281d636d6280433d260a51522b251579833e53ee757c9fa2f87ea1fd86af051381d6f20ad947f5981300bc93cf5c44defda770975bc1438b053537665535a9c764f7fb7f03038305f4eca46ecc6faa60247024d12eda7bcc626d924894e2c538dacdebf4fd2b64ee428f8fe30ff104d21b8e1f3897bb86c567a31f153d4e8ff3be2d9a539baad2335762a010b35bdfa1a1b5df981abc8e612314445dddfeff0fe49b0cddc000000000000000000000000000000000000000000000000000000000005090d16181a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 38, + "comment": "signature that takes 18 iteration(s)", + "msg": "f900000000000000000000000000000000000000000000000000000000000000", + "sig": "6593932b139ae1104d35507504133096297012e45c9865f57a7bd6fe87a6e4a10394f43226ec77841ad10ece333a381c37c91bbd82a63bf87fc8091ed29a4599042715ade54f5c94a6a0e1222816e112b4abf893f0261fa5bb5d774c6c8d35bc1c447e17d3dbc25798803518cf6f6bdccc7e2e77d77cb8e6ef24564a36b5054d91836c7ff1958b6d850d25f762f78b0b55c2850131437ad677b28b8d11d91b16508fb91f250c1c59adc4a2415ca6d20acf50c90808b5a4e88c043caa68a9e6a2ded7dd4f92844c2440589540fdf7e48349ba43bc26c23da748ac9d75f0b188688541de951a9ca4fb918572c96f7d85a040655d459eb3130c03bdd865583a2bcb382819c0b59f80e6369dbbc0f5d5b40010c2490c87acb9b50ec1a998be39694ef591a3653e9364c52137881ce175da1a97326b33a969d035cea68a5ae85e5febfe82cb5ac731f88a0c895896680a9ae8b4e7b3eae3f7a7d4a10f4063374f317a1ba377a01a3433e1242b2f00c0584a094d157c5be1a864b84712889c016e38fe757d02c30d63dc4c5d087f8c78032865ebc87de03747d03bd6bc32eb9880e8b640ab46e630815d11b3e4d88edfa6a3c006b568cc9648d4df218ab91bf1168852d4102f4503061f96bd401491aa76ae8314ef47d7941a767fdfabff79349d089aa5198248cfb2524ca6489ad58fad9ca4fa6d7d1ddce1fa88c3dadb434cd3a1f49168460b36d9987eee09ef17a1a789a457b98098c85311deb3e7f4d7c2a84c1c78c2db3e9823a5b47b9e313458d8023357aec8cb45fd052da9404c731062508ba31db91cb670f474319948538dfb7b811368e4325b24ac77cfe1f852bbb33574f175738f6924aa937aecc41397f8e34d3c75f44d6e81714a98a552a766089b8b2059bfef2f890edc17f9d98df040b3ad9168c285be95ee126ffd3d75658571f75035a0e9fbbbe66ad6a85a80077d21cd19bf9490f3fabd69991d6ba2589e1b9a3b8e64f0b879f3d80119e6715b827dea6bf40c09c02490e60b37e13d09d963a841fa58a4feeed6982295eb6be66def030230079a61494fd7295143c3a99c9fa722e1081853153110206cc59ed26a77f9125eaa98944d26708609594ddfa78c7760a8e9bed82e85cd991b2bc5ef7e2216e0bca4d16017749a1579b54dedcb165152d9324ee63fb7012b2798da17d3700c6d8280c9d7bcbf6ea8467542e92c8a0868ee9d5fd08bd397641b20d7ba15dfd079bae86972020c1ea54a0e641665b9f20dfd7342efeaf45e2c0682fcbc75569db5d8fefe4e1cad4e8865e86ebfa52ebb4c3bb1f9bdeaf2f179980424a62eb40a07196a78069ea6b33f52dd50bc42245517346a846a63bf08bd27d341ebf829807595f12ee0b097b917529cc0c4dfa7715238eae6cf336fea3004416f18546262ba801c8bc255d325524b7259bb747c3f8ba51aad3fd54d98c882c3c4924c3d01c2846690608575ff94e6778200ea316dc7e802f889a255e642c94e43cae57c68ab4f5083d15921e4abdcee8d7c4e9b60e43cd3a234780c0a6173b6b132d2482c7750e5aea328397f6c87898cd2254437a37f3b0e65b3f448f541f8c455476aecb3e5d7494188ac19cbb5f2ec45e246e66202dab148f2d5c0d388ec1dfa17495c9b3d255da2f48211b1ae87b2beac31735fb79561a1986e80651ef0f32bc9181fc911ea32855b5c0cc3a4fd807c5fbae608d683e81b33544a42bf1f89861b4afa5585b25e57e651e5402fee091d6bcb0444ece3e2d907031716c4488b6391c90446da0991eef10d982578b6999beae142cd85aca38e1a6ff07553f3254de236620bdcd17e24e9fdbd1fd7d672799211cfcf4e24184cbdcd3cda0d8d03f3dd76b0e03606c63f8fcfeae5ecfccf4dee0d5158567e86e3a4ce343ddc3c4c3c1449f142774547f25a9538eb80191b239e510ab0d5dda4d1d2e8af018ce177c6877771a7eb5dba26429f7d9772af8baf8220d35b28545d0127b14b524aa5afedaafdd3998e6c3bbedb0b1ac72ad30073560ee23e85432659a3ad60fb95a731b98884cbe826d3205696424886341986e933b97d67ae5c0886979be4c32fdb94aea47b9a3efb2d062806ed25af606e5072bb4352f3903711fa94a97a86c2dc2d32e6ff8dd221fe07e539f22da92a158e8a8df936e38d02d53d1b0fd80b63b6ef40bf826618f962a1d64ff361e546b73d2c7d47a5c0697af49041dac576de3f6918246877cf50504b641a457fa8368caf5eac325e468b07ed722c8833c66a2fc42b1e3f5eb588190deeed2c10524f1b05c6efc9d72a6a1f4833eb58db9a5e11b4704d879d25c998236fb4ce4b2720716c9e66cb339cc2293bacb546260385e2d860d727d952b4bf07618a04b30bead38bc41d2fb7fbd49931e099806a6d255d2cdb7fe62204a0efa2a883c4424bbf875af04d1f7cb2d9cba74946b0022f614c6a162b643a212523e7e7c7165ef5d6400f1664cb37fa555398f988057fd8aa3918ef644fcbed19549db991d5ff2c99cb9f6be56f24aad7d7ee304ed38240a609df19a2b82571b33d9552b59ea540ba909ad64e3f8342e9c2855a3577eb910fb47b7feed8a23458434ee6e0b0cb484b11c63175685a0ce70e4ff7d03c47b7b9d1e18a73588e8546739e6e9c3aa0341f4c121e1c662acd77a614c4d87e84de703710455bbe937b30870d611ab1ec256a98fd884568b8e945b0d88400d87fba756c17311e3210235b3942ca5061fe91b072523720a4d32d174c88cbc65868b5d7d6113b948bed240d39d160dfc6daf8a43a1f6adfde7e71e0d593c82033e9f6b7a4baa0166d8f28c46114c57e364d70f0f122a7b463828cce26c1982f03cac961b42b805820b9af9c8bb2240eecf9daa990d61c42f01ed37ca723d092fecb767fc0ddf905ede494d7b2dabbc593360f569df195ceb1ce3741c08b60f5f5097830535c3049bbdcae2098b058ac9a50e4ce7fcd694d45b20e1e2fd86808d474480e131b17b1aa8ac351fe249708aecffa6a0c7bab3115ebbf8c43bc5382a2a8e2011bf859ad034d14d8d24d56475424c1b50bf85e534dc8b4745e79d6bf098fcdc86a5025284097b0ad564f6ada364837af4df60a30620dba25a3c5d739edcdd490fdf4b7ae7c67be90f6356d9b94963495d9c5c8ca7154b4b2ddbe1ef1c57d8e5e879a064c7c76be3ab86312657c3a971ee1f87735df1a2849018a7d1e4867c9ad9019729c3f43eace4f2916384acb25f5e340a534d6782aa7f348e37fb7e9895b9c4cbe732b4e7db46341f93cc8193407c0b699ebcd9b7e3f80b5612309b5d959a701d92f4fac5b251031db6f39d6339e75368fedeeb3dcb022b6addd77071af1f40504c875d19a5add799a7f0e5079fb39a7d5eb991b5bfc33f517c090b9bef48db0ae16d160f5a81143fdc0a793cc3927ad0ffe7df402169997c4386a6c01853a6c6d21f0607b209b0cddceba91af3757926195750de29ae82172840205bdc57051d7b273ce469fce06bad5f758febdaa498a3399d4e3d807bf62fd57819fee31a18fbf24e501b8990fc25253d6143cee42fcfc898dfe8a414ffca27356102762cbbbccc70158b318e5354801deb17bd202ac11627d6effddb25c172fe13a6a5756ad80b450839086a46dbdbe3570628747d733f4836f6d57c382a96c7aaa9d83c3a4d5b5ac4421599b6311219b733fd9601195dda1abe2fab8bffd26147dc555c8c8fa11e3ae36c3afe9e1cc98670d33804c0a60b2f68f98282c4b705dd9ad3b9270395470c90bc75a1483b946822a1b055852effd2aa8aa93a4d633dfb9022722982de780dad23dd5f2021f3c4c92e048b2e6aac3c6666abc2970a2684bb4d749b3b05539f90a9afab6b6cf5b05188ffdf36941974d5b622bbb85aa7ba3198104cc1111a914ae36291552f40825c0812abce4fc32a9d4e29d40a5320c29eb49905d907343646a638709ff078de5afa9b106359dda4d33da38170a5d2c17d57ed1dee1edaf1cbb019befcd4cfdab6e30ccc146fba1ed86968d7224630118137148c3d4add5e9797ac90bbfdbe1fb9b4f472616083fd8c1d72042af00c1960b4e9e44a820a50ae932975a0d4d64c0c26d61038ccc5132b40dad8ff9400758dac4f41cf7056069430104bb7de19a478b61340002562fe26cd831f6a7e662605d55dc6297b5c2cd248f1ddb5a272dd5851aefc0bc2e79c59a901e18fa9df2e3312a15852fa8deb733529884c7e0e6f4a247e51a2dee34f53323b98b2cf38966ec33c9b8d3697d056a9c505dfdd8cfd1e54733a85e184e46e66d57f726defbaf14bda8b35a1cf9b2a570e61a5ab1128d7b1ad791d0a6e0b79d51b5845a909513277ecb51774a76f02909851f57f4b7ab2ad8d3b3dddd74494a003f1afac6072d9abdc45238e458d639fc827270c37d15b605f2b91ab9f1a8065f5f65c0b4bec40a26f2fcab9dbb4c6c6176c4300e3425c0b4638b8dc0a98c341ffe5fc8e0e8e017f58647285633d0370b919449e1cb03e9e646371f17f85b7f837b9b641a38a3302036285e37997f144752059fe15cd62ca0d503062dcac9763514fd77751514e5a8593130f925012a63711a366dab06374a5e82e6ff0418434f646784c5dc063f558906426f99c9cdd1fafb00000000000000000000000000000000000004080f181c25", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 39, + "comment": "signature that takes 19 iteration(s)", + "msg": "a401000000000000000000000000000000000000000000000000000000000000", + "sig": "6dc1fa2984d614d5c52207db2528c102886bed81844437049d558dfffbb799f71a9dc992107666cc595a1981b75e49b36fa4a2b5d44a5d7e82a002c5b0fb8f8c811d82d19a84411ccdacdf86912db7dc9d0a8df1784a155c2ef1870d706583e16306106a0d0095aba7483e484c22c246077a743009b664f014d86d6358ef4f415e20d9a0b8ac2911756c72a1ab41c4d333f7376cd23405cfb5509e1885337b2e1f391b9e23517a0869f090db5e89a1f84075bf77b46115052a3cf25b3893a112a454a1b6c23836a84618030ea12f8bdbc2fd7cb2b789925b161f71c2e5300e08b9dfbfeb6e700cb09b9b101d64a4fe8ed2f1e66f7cafcd4985002f827098bab1722411845ba01bd994fe4b3b774096e353891a72414bd37af0df4f63580f5d3e72ff1c916c13bfa6828a44d281fed7ded0916e84f80c2bb41f818dcaef8eced887d7de680cd48d0e499913348d74f6a1e3fa81a10a079901a3db3e7fc6b55899714396204e4b442e156bf34915df34365f771b7c5617c7c521f88c43b03b738c069d96afb5a94b96071a43da76cafa8ba2d8f24f53fcdb7008ed7c73c5de081f9b7d2df75ba160009d05f1edd00aa44b6edac9e4f0f6413c743d925a70b87fbf551af7a3bc46b47814e02d7043e9b92bdaebf9dcd35c0e5a0c49bb53b6309456624e8484285d8e434d7fbc252191f69ca8c44f8eebce2d18159ed202a24b77e6ba9f907b14cd9308da274919f1c93b2ab6a6cd383b9b954d6fd1248aa35fca4eeae628d97d377d703a7bbe976956f5b46c2b884c6261cfb844bc3cb3f3219131e78aa2cfccb4276ab1cbcd42eb3b5a5cac311c340dd35198a42d13742290b0b23c5c8a7619acf12bb41e6ae570ebcc99deb82295882ff7cbef6fcbacd5cb0a0680d654be9b18325e8a11a33daf8ddb1118db078537be93a54c529673c366f89e2d497ec297346337fcf10b2288095f572dd62c1ccc4a830b2edbc6e9ed8905d688ff4333baacf412b8a95ff2de36b37a7d0d230eabebb0d128a1c1d9df3567f27a1beb31b822c4e8b535bb38539b9c93a8611a785d35f8afde56c09dfca722cf0364d99b9d0ca55dbc8f9d21cb69ae8b49791e4e1fa76bd6dc9c28dfaacf12add31cb150757070a39225510372b773459f8c86ccbcedd27015cf6daaa73f6698feb3bdc118b03211b261bd8574b116de124634626386f1a91092270d15c16a5a143bd0a0fbf26cbfd34718173fa19e466c9894d3276bf0c887b09b77a584fe80e0134bccf5c3bba566686c79dce66e554bd9229c74d4c02831f86142932a1dd449fb920ef675af899db8b99e758aeb3b32b0474316db13c9ab2665e651242bdd2b696c6a2f65304ec643808308934f727e3bd4d1e04fa5f52a452dbe966f7eab1ddff16950f211034ef755e1fbfc924f44f1e5b91c38ddc9cf755204c4f5de26b59a253b6c940fecf5db125d5d604a10e4384a0cdcceaa0ea4d4e580753b4acaef25a77b7455dcadf0f5bc10f948027062cbeb5ee2094e01374bad834af4805b98cf21f2b99fecb7b09827fcc295867d083b7696e42c2ffacc5ffb5d26088c468b1da4c967c97bd91bfcc5792cf18b66e5def3ee01e7e251c0796179ee3a38cbcdb656a3c6e4e1a970259b2d2e2dfc25e0b7d7229f5b144c24129d1ebc2e9e64875b298f9c36dcebc1d43e451105b16d20839f7e6fa47ed7076b603b5e17e78f979d01d5245c084e500deb96e6ade4d3fa2837cb400c02943dca4ec02b1367232f5ee56e70d7302195c2b6f9c0a213895030857bf8353c0a0d0275d0216c47f6b0cfb54471c6eb897689a64a5fc2d5b51f6be93b7ee0cf31baff1a5143a274779299a6b903f44f8018c5729cd8617919a13daac169683258a8340014d54f1e9cd82134eaab14c7719eedd6089da30a04e1d873b683316bd64698c81a6ca28ccdfbfcd69edabdc03da3bc84d51d770c806cb53597e8db6cfe2ece1df088f1aa6ba75319ebb27f9208674b19783da8d4d94653ea7a0ad7eeb0ade84db5ac471db947ed77c8b11de5ed23282e75360cb3969cb13597d66d041c3efd7acec993fe14fc6fe536dc5c2a6d0f0a787df072c2559f824ec077059b218541c995a030769896bd619b0e66240ef244c8b3aaf0e3f79abccc4a69387d2cfa3131b45ad4c4817d478cb7cb7264aa8dd46e5ef2d3712e3dfe91e615a321433daee0bbf20afc7051d3a5404dc66f2a02bb8fecdd280718712010115be7131d09737677293c635bca6ad085a8f8c159d772bd52c80dcc62e27db799b81d84e337424a8d8905d53adc68c8a222b6970eb8078d796b64b172965f55ba5c90c0fcb006865d7b1f0745e1458b1ab75c54380b3747da09ee3543a013e0b807158c9afbffecfa5a3acfeb185f3334d3ee923edabff723157c671330ecc64633a90347ddd77be425713b6c0f9b41a9789136c1ab74248afce4f0f569fc181cfc34aacaf3f1a4f7e8e84091a3a0849d87f3b8a7c6ad4afb7d357eaa0a2c915beeee2f1c6860ef3fc5f4cf0bf43c1d596b2c84a89b87d36c2dbd143dcbefe0bee5dfa04b7111895c8e2d9803d57270b347374c7a6e83957145d00e801db52df1fc37bd8e8eafe7a6c5b75a8c8fe32b6b2cf0e33aa6e7c4b559d2687cfd3e89cb9316ba05facd121f0921726adf89cc2094da9fe3f296305d700479a6ee3da724a39ba0f5990691436abb03e6813c4071913cbf3e70c6549589aeae288212d2257077c434f306c611b932c754d022bb3d40d91fe0479a9a250eb4689e118def6cfa516312c4ff022d1619c5aaa535e996af16016e670fc5931fdddd9e5d6105c385239a30e61c8d9dbe1185fa13b375f214965cca489d186a84e5eef189243212eeb570109c544fc8aeb4fd13227055878a15a723b70a27c8c902bd8f1c3f9d8865fb2dcc554f2d9c0e9231e691b1712ef052a9953daa36823151c86c2e1c43def615f4eacb610ff684957f08e58f9b07c633e0c71ce838bb8c742e0ecb301af85b4000b61e3b2f824e6fb283d310c69623c3b78e34e85f2c5a319b3e30649bdf982183702a4b3adef8844d960ca80ee90ac92237cfd5a67475241f0d8fd558df07dfb952fc54219fee76946c2d3cc498dc85b0b04b1d6b121d6210d5c97e1f75bfc1eeb7ca62feedb10f4c0384c771b331b230e951fb15ee5c5d6a2adff8a508cef25c6f7ba717a116b2fa8cd18e75fa5c711e036cd1c609dd5fb6f26c9f135bc214c13691d27c9624f711e6581a36270aa27ab4a2afcf84383170069a8c8eb7d9c8e86d328cb5eb95c81f3b5fd0738ab4f44fb0c71f543e66febcd8f4157ad4235feeec30fd3e4cf9e0967f34015bf5bb12a15fc46ef5d0af50e3ccf810ac4310fce50ea1fda53d52dd14fe8795645032c4976591123b74e263797cbc7e41af7be9b56a2195b4813a1d3438d83e3b4da2421746cd97f92176ed9eeb1ea29cb5a0b1629819bd7e7d40c963e629960607aaf96c2a3e93a9f52a37eab47b8c7611b61d5a1b9fe3d8cddb7acdc04d000286b7d8e09e8ae4e58fef9bf71ff76600bfd9c0a7f40a69d58c76459436959d916e88ad288fb4e82a3586b79fcd67f66b2711dfc0d9d140cc22c0a40f6fe46d09c12caaf56a45a7065663d879e8e6f12aa05e9265b16ce1aa2513aece0ecd83d15133f69a7c91fe0fd44eac29b22658d3eb16bbafd2e11647f0e1f7ce67168f5d3e2b45843defd6a4fd8ba901fb4950edd98a4e41b1bdeb1581c44694804ea07544c2220aef5c3f3d58f7d053815d280a202629dc6a45a931c7d86bc8256575d58cfb1bbadc473455fc22a7fd94b229cdb8ff4f8510c126887593f62040ded2894fb7f53665adb2467951efad062d30adad1c9c5daefaaa5748c614991887cb87b421970b6c061e55bcb2e2ad0dfa3c17e869b43ac272b04fcdf4fe29baedf3bb3ab6ad1a22bac0188ee3712d3db309e57efe5fc9b60c3b4fd2bdf287bbe16e88b3822f45868872a99b78265fc5f2c123e7520411ebb2c65652d01a0e2fea8e7cee2a7f667733e208f20a0ef5c845621cf4c2393f360f0f7a0b32d6b1621cbb8366c89ef90cf20919a6c9f5dff89803a50cd281720bfe75c7cd6e25d12938f43596e5ac23c948bf73b05e4e48b0135d1f3c59e93c140cda00463868dfecc077edad546cb99a54348104dd60886874cd680a38e74f515f3e1612a42bbaae442a80bb3af176a73b24d929825955bf33a1541f62cf4a00b7adfb0c7f20442213bf4a531718c245f8885b306fedbbe723cc33a1dc27c52052c4755ce2a302a412955173941c109f52901528739c58dfae6047d04845294d8ead6f94f06e33e96ed95222b1eca8068570aeae6afb5ee3d5d93302b114a815afa5e5ed4202a9bb3ef0ef373385692645bf4aa5b0192cb2834488ac105aefa23b4fa03fec0319b0565916791b50ac339942cd34e875354c27757f4a4aca0c4f0f2fdbb06869f4ce5e1c8cef81791f2280b42bc2d6884050d431bda7a93d2a0e77e72485bef53c70965e7f5cc599d48b7e00e5bf1f5c9f4ede54e56bbdd4ef28d7ec127c0e9439b09ca7f568e18b234943ad6991d71911e2070942517089d2eaff1f4e6e7dbec1ca498f99b7d4e0edfd191b40555babf8075eb5f2fbfd0000000000000000000000000000000000000910181f2425", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 40, + "comment": "signature that takes 20 iteration(s)", + "msg": "1305000000000000000000000000000000000000000000000000000000000000", + "sig": "0e0e0793a9f00d1014ac745f73ee18458e19dc0c9a82d62c4f7c5f08cb302f270648d108b2a87a51c5b83e6aa54f4b40531f01bdf4f59315cfb96fe20a21bffe3ccb5aa55050ab5ae428308e9f1a95ce546b09b68d9a3036a04c71ff617dc48b4a3a732b4b688389a8249a7ff14a35d52b6c96cb0a6d049054de0f7ad08669b82f94745cb89798d86fdc0c2375303f5849c8992400889cf61ecbf63bb5343664f6f63854d3518f5a63fa55098b33943fa5642745b0a907c8af07685a18d9af65b121e90e7fd0c0cf62ed87b09eba0f06559ef813649a08a03c0819da5479dee4d170c17c11a119b6d9055151bfda6ec850b70939167b4d4d5bedf4e5aa19c380b3f87b45ca8b71dd9007450213ff67338a2631b83ef73499c4cbcb8ac6210f836e73605eebb09bb911f63f8dac03570c245b1826ea4ffed10e7d6934fe1d2e5358d52f18329259c05b1e570528e7bd160435a826e39781c8d3ce0b933d3ae34c33c09c6a4e535e3f0678c27e4da154ebb05039d3775a3bf948f579e8920b12b2a50430694fbdecb7ae7563631776e7b5aa3d889b3071964417eabd2bbc3fa551e28fd49abed8fe37326770db6168813903a4b1f4a149cdfaf2e49d88925a6ccecb85aeecaeccbeb94aea175fdc4eff8eb6cf0ac7cfa2897c74bf6c1bc5daa283398b86416be811bd6dde7558bdbc5853752f2651369d3b142394fdbafc1f2f8d1139df065fa16df69bdc9acd8497a89f037cc6cb6eae90292c7bc8f1ef5d89a07ad877334c53b80419f864031f78be57a82bd89d523126e9161a1a5d126e52cdc94831d68cb1907545c0c619bfa1b7246aa50355591217018b7227447a7d17b28324fa6c7ffa1f5a119bde3eebd11dbed6bd9d8ad95b4e1d7b4d673fd35cdc96631e1a86dabd6bb7b66ad5985bca8888d5e8e145a5b5f48953bead5702180a99b9402a5658a7e7929344fcbfb574beea901367a3dd8ea90a75b54b08c391d5ea6373ea8bd10cfc563733c4f533f30ba31d3c0e49e4a5e5c91d45d4d638712aa80892a2a0c5922edcfee867e2fbb7f18aa032c774e9cdbfa59b1c27baa14e932f59631afa69caba7855bd3746a12888d5a1e64271242dacb972cc82bdcc64ec4a2c146306f39115d5c824b71c93b5833020985ca099a4e937aa527bda8e69324005462f5f8431d5bb11bca9e4c59e5b14096cea9e40a540546efa18e1364c4f1ee855cc8cc564dce2ab8dd683bd9804b11d02a1f510ac98c120b6ba64cce16b203e53ea3d1bc69bec0d06a17b30639cd9b24fd1598e92890e88f7dd1397445db54ad8df5e136ee60f22ac090f2bd905765e810f54711f01c63564ef90cb01108b2c2bf1a6fb5fb8078d609117e111604a1d927fd24c18354ddc006f286975be3bf1ce5593715a8cc873c820f778e9a428e08fa3db1a5f52fab22ef5d16056092a6b1da23e3c64f205b3490f0460e9aebf80a4fe9acd31e5747431065f575637c8c4cbc5dadc2753b90e69722182a344d3b154bf35da62c1fd0e98921559f7d6010fcea31a79d36bd763cee1b2855dd05b44b36c4301cf6070408f02689bc75ffe264f55cbe06886019797b3ce3206654ad4995628eeec2db47a2bcd5feceb2f3cd3246bf162cfeaaec8abbd63b2e6cc441b908a3301c860a3a15c1b9253cdff625fcb6de85ab78bd802dc5e073a0cdcab0512a076427d7fae7b663d9b81bff8f0192fa7db81dc454f32340e200ba59bae4eab701662ca6453c233be851cde64c0a966ffc6012681dbc407c02073b9890781c8f484c295720eadf934c73e2b412b484ce4bd599a7b8718088c55433ff1a78072188e289ade5861bdcda6d10dc5c40f1c189ad96eb188bb46741e5ab956214046c2db868c8e019ef5a37d90b92fce70ae8e4a5339f612c0b8eb43c61c0c63f3a59edbe6752d05ecdc178a8a90059d6fa7e0da0bbb7984b7cc1ab8045095558ee505b3ddc1b3db2a78494436aa9334f6b3b3896d33e556e8e2b9bf728b5c53c204a964a697da252a73b8c120b363923aef38f993a3db4c24c9a4b1f10f444be9f87677df5ff2c26e419bf9c2f8e53ea2e6f1bbbdf2b6c5090dba385a5cf5652f9929295eaafcaf282826305ec5766fbb03ce153b32d49aa7a66752a772d2091568f1b6afec5e53dc2d5f73eda96834404bfe58fa5aa692f266d0383ddfe12da56a61f93933b6794af38ee9e31c3721c1bd52a6690bfa68948ba8d6577ae6acb3d5adef9091fbb7d4007aa8b96a7d17cd58987525296682fc777111ea979c9f3b893fef381c03319d7c6b9d4d523a0e5b98953830e46f1bafc94aa6c4c323d2a8a76ed1364caab808dd7eec175eb230de35e8d6f4ecd0dcf32ac6b1be9d7d6ac740f458ae7530a64baee19357ce5a3f106841d99935d1606d4ca7edd2d5da69594770eb86827ca9180713ec4df96de4857323333dcc4c3497e089ba6388a39450d251f39a1d2d6c1d6befebb7111189bea14c0ebb75b1c64eadc76d8713ab2290a7402e86c16ec2eca769febb9d8cdffa530eeb75854b08c52f69c1bff47c2f775353484527f2e3f37171d3fb44553cd6dd4d79e81574d01a6d4924d7b2dda910f438eb4c7ec938e5211ff4200305fc3e9659f8d52bcd49d5ef6ff5125d1f8096107ee01633e32f159ef17e1343af03076061b13bb3b25d4422f21b616393cd2d36ddcf96598c1d3f6b4e29258c94ffeb07410d1294c754f25131f68b4018ea155a1c800df5913cbb5c7520c7e33c3adb8e21fbc692b9d4ae00ce6e06df53cd3c13b1d12dff0607c423d41bdd53f4a632a2b80937ea64605e49c9694cb68e3f82fbb164964863c9d58debe663db1ec93382b8149cba27be1c79b2ec53396421a0251f3c4fd3199ea45c944e250d9402128369ff9d7fa48b0dca0c945eeba9b90539f3d4207b00d86687418dea895a4d467fd7e48fd6edade5d06434b9b1b82ebc0110b24bcf0bd4c58f9d7e5121c5863708b0382838423fcd9105e6776dcff3e914c5c425b85b9a1c5ee805d28925f313931a500e5bed7a4be914ea3a1a87e8b798702d45c6961afca988059bd23f04c38a0f4c3e9d59eecf1fb1d07ab1cb41b472b8848e5a149226966d540b095c23b293d982682dcefb8ee426ccabb3a5ffa070e019de02aa3f4fad228420f27a07cef98fe7cbdc676476ace8e45a8be1e282c136189d11df419053eea59288a16e0708b1124535a2a9d42e5ff42d514d05f344d75d26abbc2435c42daecf028c60621061565f6fd5787d74ef09ba4e1dd3f4043f0a6164d82c1c8a56971eb1ca21a966f80f67bfe32c2b3bf34e680a5abb3279c8e7c71130c77337d439fdee9f0589c268bf2b116eed8c6042e3def0986ede75a7ddb046be0cb9c2f5982485fd18bfd4af6649c73724b9c2046de6eab8c12ed5b1c56662b52d45eddfc9441f88d6dab41afa2c351c4779f623a6b3e4f8de8a749de2ba28447994c57566178c29cfe2d927d7be251b9945583e0d62591acd43c664cf8e52a9f96b08bdb914e5cd40aec4d9ee49088be114d7f1c326622262b9437d4ff41ab766fd164cdbb831023e7b8a4c2f215e9d412ead4176445c5661affeda6bfd4ee4d0f39304ecc8db068496674f89d5be493a4e225239c0dfa31b8ffb4a71b71548ccc1cd8adbece95d2cd76e2f951f6862aa265542696a0d78acf0bce2e20cbd1afd6339f33ca27efd6289ace29fecbf43beace6395634e3cf6ae7d207f31058739eb878cea44af09d18d0100c719241948dbb25943f8426d70c76011a6655e47eab980ea419c0baf21bf3c1cd08a6b56a95cc7ecc803bcc6caefde0603267954cf865423437f3af6c3d229382d4e6e4ec8699ac7929dfa22dfacda6846c632c8006c0f1c7bdda56b9acb231a52a532b2c5ec3791b3c3b7c7e507b9d0a271afcd983474ee55e56fe4e7cd8a0bc6e5756f118c513c9049257bb7251038866517c4c00be889772e7d42995686cfbcdd5f343fd3f41ec7162b61006e55eea57837c0739c8bf2fab9d24590edc3622d2b1c472a1c9a5a4dc63a883834a431f976f1fac01254c5c319cb4da867d129f007a4dbeb5626a9f53ce8db7044bb5e1d4f974a0cca9cf955ec1561b8d0afbaa14988f6d14c705adf6c87bd3f7416611867a61fa33368a20bd19f295c40858d9d0946e3da6771c41ca3b23bb97659ad5f5ca6f48342c323889bc3f00fa116b9eee79af395b24eafb213bb3f74d2ba57975564bd14bfbb97bd824f5ab3996bcfe3d3728e6d2fa65aff6ec874aa468d297f4cfd36fa55f7c9e9d8ce610ff1c36aa2c5b596b017495e298df6e199a6746093be6b4ed0737e834fcaafb52d9a0c37a82d4afb0fc19d81d577ad451edce943112aafae8417e29de50541ec0a0cba83ebb61102cb9aaee51886fa5b46f32f43a3a6caf58201d09466577619b369986a3af1d5ebaa1c0fdb699328cbc95879205b3f519cc235026420a163dd96e0829ec098bee25386a90971477cb12c4db6bf7f48f032e631f106441e34450866ac7e547f3cb76a0452d1c305b3cc822942b5ca815bca6adcf267d8afe7763fcc8b70e4c31999edf5bd25d42793dccd212193bd4e808373b3c99b7b81219aeb4d9dbe5ef0c16455573858cb8bc0454a7eaf7172385cde500000000000000000000000000000000050c141d2227", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 41, + "comment": "signature that takes 21 iteration(s)", + "msg": "8d00000000000000000000000000000000000000000000000000000000000000", + "sig": "bb8a458fc151be6dd575d810ee1dbc1b0a0c0fba3b64d9282b33e80531e9cceebdd7f266d7d810d0e4ed65a2fcf188c79d0f8b72fb7942431510ed1a9a0dc5dc53783911ff8e486ba22a0789a685370bc44dffea387de0bfe7e610b769b3b701f8c544ca3d53df14e0795927558ecda480cd7ba8c0d19cbf954e032b253289c42c657cc18ff7d5ebcfd4ff5163e8a36f585ba1409f1f8f039f87b1ddd18170048a08e4366a19439bccde7bc9d220642eb94896f4a64b1bc3631089f71ed0be13b4a38c092cc5999ca9c4cf4a4bab102f26599f651133f51cb2f1df9f6bb7b9de9b4899a38d26b9c6ecb29efedb2038bb92e2ae3401d97f3ad3e1bca5601b3f897a2ea831e6a046a66c69a7da9c1e256da45ca11d4d63d3d5d9de9470c117a4f62f3774fc9c919a73f06fa9e27c440dd94aa19d52de6e53c5f500821fae286fea255486434930a444ad90a9eefd79bf9e335a995d652c7f335d09f7519354f01dab9c10d292dceded1c0db39591544a4045cc7d3d28e4da6be59760ee7a74e312e482ddac340f6c6f4e09db4df3b53052fdecc96dc7aa6d6bc160b991099f0aa81ac1982188245dd1d8b111186377f2f617647ecbae26f321aff3931188d2df051f3a4296e406790514a33080fddc43ea4418d44e8f3fae0660748ca4ab61aaaa58a6e2fb56b8ed389b44afdd63243bb592e0d531d79e75d396a007da95535df0ae74d9fe6b61f997811e3934150f4ce8aa292a0fa59f66c5141e3bb339eec3587b86be94b765aba9f2362ba607bac1ba18917ab7b15f3e3cc2270109ec0bec9d53fda5c276841d41f29f91db419fe91b7d5a2f04c5322a15f552514ab592ef54b59539fdf2fc66617f5baf1ac054da64f9064b43392d2d14823082151ae5f8ab536467543ed5cac30eea35904b4a737a11f53fdff7a5099e915b1835aa32ae57e0a14a781966d17ffc4b66c62dc4f35fd414ae0a22719241e863b60ba63e82e2b16dba8672fe7ce565007e8ab53687561c8c41dbd736fb8881c5fae17a28cab7c1b2483a2ae932b55e5b154d05b66c3b6db45a7049b5934ee5880471c3a63321b193c642e6ebe89c54f6e60f819dab75c4838eb6ca1ee80416dfba41e7836f3f2361fd4bfacd3102c1f28ec517ca8db5b38ae3f48f502229f2144750d5d93e4c8125168ef9ac066fab91c295d47e04a01d30f1cc7889e9f9911a1ba9b6d44014637217571f2e7bd371775611c00d651dd5fecdf342e8370a303dc7e4e936dccefe0c66a8d12912ce2fac1f99b45a5fba11a942fe927005ae7e9453fef8a926fb6c8c3c90d6ab39bda85dfe50ab95541c71d4aa5debe9b9a10b92f74f24d09341738e83fa7687bb97054f20bbad10ca1ca2f88a2d9f51fe9e940680785181fce68693727c4a39c57a108f37e41d35efc7e8249f60eb05a68c8b14913a85be41ae96e8b28a9f97541643657f13d6823535edf8ddbba95ea0768d98bdd126f9829025b799842e2b58be73022e16cf46b0160bbb93f97e80ca5b7b4c2581c3be3d7bfcd81a2399afac6e6388a9707d7fd7e1b19a56c786344195a89da97108c2b103ee87172be50943de28d95cb76722c070ce96383b4bfc1958162b1a066faa9d880dffb4b6c4a864b0461b085eff9dbdecd2a2643b1390bc3d5f00830e6e43aecfbd3b762ec023f2c684407e9928ffda93df2082231172f42f5b887f49454e1ef973275a865950259afe4d3b9dd5fc1d14f07093248364c37db8bab873070fb4720130095eb7e1afe4899ff806ad9ac19c09387157a560a98d1a68a1f0665087377f5e17477279c094ada07321760177c3261b9042c36c42060b700316a93450cf8dd280a0f3455ac8c1e0de4bc40aa0af63857efc77023077e7f16a805e909dcb2a9e60a43e7d5d22fe30f8f8a8291c79a2c08a8b5c3bc9dac5402e6e3bf87898496511be0483e9e11c69b6356740bf8cdc075f3a38f9d489ef3b7f88d51734c8bce0acf6fb5beb7a3ffded49ddf0bf54d6958f4276421bcfa666c273f3a415ff69ca61b736eed168bb3795f9ce647cbd413b027e520e22ebc1500671bb11f056b3b41865690ffccac3718a597e16b217eac9b4fe268520a5d342f1de7817c3568e6249d9f4f014dea7b90730dd06ae4acab0a5e598fbe72b30fac6355068a74d8b311348210822d6f8409e77806a259fe4eedcb5934d2e09f06f2fe82274c942058861d5449e6eb923ac947d06806a1f812b6e4ae2e0a929aa244779c075d7b4cb9edcc664679b6be833c81d5c688517eff2d10eaab41f93e48b7961cfabb5b9f087f5f9ceba4dd8d1aedadcf5719beaf1ea95398634ba3cdae50ebe9e46928f4a2fd153d38ea9af1cf2e7b832c19712ec57dfb516507dd3b12ae1eb82035c1e3347ab97c7868142c68493756493fa571abe71c635b928935eb50cee1c25a9bd60e88258dc777dbd7f96e751f1bde620940d8659730a4734c77402b7664d5cf6d8c562d64284c637456dbccdef87b25e96c21f9962eeceafe99a9d6199cf846a3798fdd09997ee81cbac964ee68bb34b29d9dda00f251f7e2311bc1b6d4beec8bd4d3035a82285c2288a90a216a355e3d1064943649e5fc46011dd1ed2fb9289997afe982093619a6f72d4a6b6093e1303ee88c74721e4bc7ea6289f437cdbb9ed0a6cffa5d7d918368b986e070c3dccb55b1970457d189f9b59ab8e963e5e8337292d4c71445ca44241f9696d1ce3910804fe7df2dcf5854fb9116f96a1a8652c8a7f2c1ad07b07b1da41a21148bb9b24e8d59dd023e58470a188453c4cd9ca7022520ddc6c53f64a5ba9b3563a7d59ad317745a226f7f0d1af6f71a5e1816c71e12aef1e8a60eb67c4c6371a191a1199424cca295a9ecec99bebdd1d386e955fe0d4b4e7b853100f17e09d5e12c8ff569e67bb7d118759ebfcd8c1e954a6cc351c39393ace4d531b42e8aefcb533020169991231d525bcaffe20615d0adf79f258d7b3f7872e1c39d2ab3c616ce79ad8054f0c55241ce148437818aa8419231d72453dd1fc28790b724fa49dc41e43b838d83d8e6978da66038258008e72e3009ebaea2624af497309d9dfbe809a97a67ffe71e68da7550f12ce66e333a7196f5402dbfc35cf9c021b8150c91b535b76f3f6cf2925e2b5c7dc9318a34184bf1e84b06d8edf792f8a62845c0e4a47e5af5327353256a164b167a895b6617a503de6eaa46f1be6a736b4a5c81eab9a6c7c7e78855b44d9dd673f91307977545341926d8444480a44da1f7a38cc85d266e0b43896db4e8df8f87ca1994160090884d417eced5ceef498f3d86bc482e6787ba9fd9f95fa451a9e49ca51e72453802937b2e1817daab14b6140e1d12d4c2cb07567fcbf4d7deffb0ae80859ff3c3e07f7494e16671ff2c2eeb921c52fe21891ec58042bfbd247d6576da111a7b40d0d68d7a66abfc133b55912df8f85fe06985cf91dfec0c6cefdd646ab64b30abc9f402e39f246ca3b90f9b3c7791443967fc31c15bc38a256661125082ce326d61ba7b9ba49614cc584507cd974baefcdce6564a0332deff73db28129a79b28883878e738551107e255a719aa10f5a71bb8ed70d053c7a0f64ff47ce85239bd8965dde32e87720a5661756d2bb890e0485bd3ae22f4f030a9c76da63fe0d27146f16fb02109dd247a763c74359f0ec63dcfd7146eb747e15be6a7be46b30b1c7e91645926122674a722cd920d925999a9d2bc293627b5395143769c26e544e87eb076124d4bfed589f9a0b5cca4a7f52f16da6cb35e3956cf758d0848a6715ec8c3abed15026d40ba323940f85348c6c7759c5d7fd0c309ae46e75fe76042f2bc3884afb8972f87f3f11bd1815b39869c1ba5f4e35569786839c792c7149fcba176623566d29ab1dc29f3bf2d374f24eee794e2003af92a90b06a5ca67b5ccc7916e9aaff10ff1387b72d72f6edf6b450ec2a47a21311f9b4b0edcd468c43c53b7e6a233ce134512ebc742b9e59f8be7e7605f2df5fed2ed705e679cea3fac404eeaafd03b0345764aa821a40ba383d696be7749c5d35ea43519b789c06f316ccb7fa468f5562f688906442c8dc36d3997e51c14353e6022cc2b882e8296ea274808bb87ae9e62c307c65cbf30ddfb2453497d58075c2c4e6034dd8261032924750fcffcc5fdffade784907d7ef657978136ab2fa29ad20c9c83c3e348a408c5065911fe61e0c439a1d7ef058116934f6497d96dc661f8ba21fc255c021c7b52b6aeb0f1d2d219ae131ab0e0bd01967698b63b859c14b3252a7204da5cdab7bd2f78c6cb639f024c92465635a41d115ea6d042f3722d605e7be2e868909183525ca088719876ffb987afa2f0bc147026e1863c528562619ee551c64380ca2d8c315803a4098f3657d982397be8262f7d34ff4c05f45b6b0eef3d7c13fe542c851509e08b9fcbd9e48d1ec72c790cbdb9dac3fb8c7a57c8a9e2eb14ea840e309579b0d04096ae896ba2f3e45af7939dfa922b96d4b76da3c3b992cb72ed55c2a424f371e020fca507058ca189294a772db81e05f33a50282c689cecdf4c28df5e17bf6cee74be67ab96d7fe26cb1d3a0333145557a9db5e4257b1977bdf7fb41496b74758c94d2f7154d5bdd0e2c4a4c7581e600000000000000000000000000000000000000000007090e171b22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 42, + "comment": "signature that takes 22 iteration(s)", + "msg": "7d00000000000000000000000000000000000000000000000000000000000000", + "sig": "7b2fab305f92793314f5aea42c8544b5a0af4ceb7fe57f194c66778c320257377aee97acd7b9fba4c8fe18cb462792452d44c507f7840af2c6380d1a25254ab0874ff347626511b93723bf76abb608ebb0fc056b453473b1d2c6d7264f0f2712ead95ee34fd8f620925a36decbf3097ae92f04dc9981e1cb96da9fca9fcbb41b64fbb617a21b17b37661ec5bc538f00a1acc07aa667482daef1055dde874d59b14327dea97ad4f97fb1430972ac82360e9fa070c9b3ec2545037cce1dabe34c274c1894add81507268721c2769f19fe089178b400e55822981c2f8b9f51f96c48d83ac24ff55ed8f5a0645d122f1c17da2bc8da50cf1914d2900b1389ab9f1a00b6253a67bf907641ca5385b49a07ad3ea0b37e458e6caf5b4dacc7c74dcff22ba677f23ffb64e9c1e2edbee99e7c73207d3f288d2285a7c0e14c3b2ddfca88df6934acba9857083a131d50c88d8f8ee8d24304e5610dc53574b8d14198fa008435d33d03c42e377ae3c627190a1c6a1639ddd98ac90b6b6d0bf7a50672000e0d09898f21c705c9a5de142e9be15c0c0f9b06347f61a0ae9741aafce0c418ffc1908c8c20b68be48a6d5c8f5c0762932ab3e73a284ee039123c2b9406751ab6cac8c610b2aaafdfe539dfdc1e800269a0a1fbde3b5bb03cd938dd08160fb8f236724674d016a76d24832f4857bcaf7faa8daee394ea5d97cc12c6de62081050c0d0f46b10a456ddcd12e352f9fc5a9776087fc6d16341e0346eca5cfb3ded070e278146b987ffcc9d56396fa970d22a20491ebafc95ce00f5b6d8ead65868bcb6dd6f31bb2a9d85b7951f9ce8a8f7bd7da2753e54362c8981ee4714afdf398dc258f3f0e485db710f0393c60a301ab97d801c7f268385f5200e6bfbafaa69ccd87fc1eb0c29a2c6f73820d6b5f561ad3659e7b895a9ca7798422a673594ddbdcd17abab2afa6b7f5d5c0236b33b3b8e6129d9a40ed534bd158d436bc3279c769abb3bcf4ad5c4e864f2461915266ad45b7bdd91023a09e1b3b2700d8294472e1b4a40bb1a57844183f80dac369ef701a0bdf2290f3283a681dc432b396451f79853359ba9df78e8a6fe6a1ec4017405efc4a78199e3365854a1c94ae7affec9682d1451d1a219c9b9b17ee6726281c025479e2dd64f835ae15aa2da8c38f4f07b014b0e71e88a60b95999f77aaf33a64cf6bcb1bb93bb151b1762dcabd12201a5a1e7df878b0c1055c2c263bb10952648e1429839fd180c173c6270f7a0c43c7d1c0bcadf81c0400f1d8355b7d0983802878d36ca0dd0c251477c12cef09f764cb261e171c1d8052491e7dd0cbc3c2801a06d7cf6a67d55c3f9633a8a2d74a1bf49905d29c7f574d2a2039f41835dd6f7880f3dae8b60488580975d9b19d1c2d5b64f91f01b22caace58142ada05cf6bee8e6903362c18296195b1177b1aba590e9865d4df042a33930180fb4a99a7e0ec262a38f739c098e9b48f8a6033434bd506e68c46fa0a0e9dcf7562e27b48e450c71e33602200192fa91828ac40854f33ecfe8ebb0aae4ff1dc951c3ee248783650d9e4a56e7d913e5903abc845b970397d8ce6666f410505336e7b906ba63e77470900397451a8528ff8c376a70403a4300f80b5573921f29ff90728286022f6ea62f28e9b6884f1c6e9d07b3d20ac2b281596ba6a2730b9cf447cefcd72bbf8f95ec88d0565e711c286a8c269ae9ceb287ef6e6d00502a8a89c766a8c39d93c3bcb654a07acbf75c7ec12b8c1c494b55f9a41195d3fd5e19bb4d93cbc16ca4f05be0a86a9aa8994d12584be162cc4d71fa629186af1e3d3b74e5c905c8be923dda76b87071e84883da2585f2afa64f0955434a53f0c0cd63761291c88a4271656e3083982e9360e0b76e18f6fea30736cf97f59256b5739faf5e87c51bc76a8fd06b4a8563a11a3f2466249beb3eb8fb8fe8a3d0b9f06484f6fdbffd9aa7919188b626e8310f9d1c83392ead724185c62bd1b2ceab020cd305c4abf081bb3984cb50c1cdf7c59456c96f91016e9ad32c2d47c67218db359248da09fb14feeaf6bb343319633e7869d6103571bb5b587256eaf4551d5aa74860ff266f57e55f8c65a2ad87aa938b7f156f2022b62282a0cd4173dc090c5a74aa5702e50be4495258c509d22ed34d63622b62c0dfe1f53464325280281a95a2c273e17319dec4ccac46f31d953743e03bf22f40b0fff77409072dfe82876d9d45a11dc0f1d64010ef32d57eb60a5288b089ec9d02bfbfca6197eae336363bba37435e1e558178613807da640fddb0ef205d7c91ec186b397bfbfa10d588235013aab3ad21744a5957def19bb7bb7cd4f676b23c7bf87579ae2a5fc8c0cab31d72079a4d0cd69944564252f9603b508f5a83e19f09c704c574066617e8b6fabe690e85d92dcac354a435319a93cc2fdf3010c52e38d6799381e8cc861d69db0ca8defb5f8b1c017dda46ca9302d8cc1d3b1ede0c9dd63349bf6011050c968ca3f3011109314dc9655d1a30f198cc84bf12c812e90939d7f4075e32697dfd2cf6d17589494e775ca982952b61f8b99a84967a431deb64ef7ec9e882cc761c8bc66f7de4006eeb13f9b6ff2d92db458ffeef5b2cced63172c0f4764da145115b615cb6c0388b6e93aea63de74bff64fe40dbaac7769981bb9655de32a881ada616e96cdb74579a0065bce2da90b64a813d57abc8f6543310065cafbbea9512355cb3f058b35bcd357bde9f55fea564a6b14bb341c6c755d4dd5a72ac79d855fe50aff80d683530ee563249d0d65f64debcb24962c61ba05c5f811b9e0f4e5942797c24d2b08a4592d590cb871272f5c1228e9988955ca4f990ab2b138cbd33646772767d4f76e8725377818ff1cf03c01fe64bdf05e61a1798c0cf3b4b69b1df9f756ffea314fadd17a6c6ded6765d59b22e449ba8c78b1f8f7b717de8a4462b02d1bf22f24e821888946f309c7e60115049997f0a98e5f04613acb46b5e231da31c482c25e7eac53f09df009728675e07cc3b33a0b0c6e9199664a00c8236a3a9ec9d6d5aa2e9317da6efc75e03d95d4747d51767485c4ef9fd438b767265093bb8340119f94367b506796bbb6ef67dce782d879a3673c0e8415c6b55c4faa3556c7c823879ebec0694dd0783ab8f5a60ae10d1c3c42e309163bdadd31aea4869a673eaf797138e332df0579567ab7e0d1e72820de3e7068ac2ee207794ed41737dd698f3d9884bf3d8f37981406d856a4ad5a6862df70400fbfb719acbcb0fd6bdf6d7c4ab3aa10bc8d6d7452fb9546845ce1478ec9804b3fc0b64e2a292a2b1e244a3601fab84d082eae74f635aaab4b5c1e6c342a695f6804238887ace79dd8dc63c2266d259eafd2fd876517ed9fab048444a61da824c0c836977a82591e1f7a813b0898863c2566a3651c0570821ee974c4d031ea7df06264d1616d48bf6b2ba17be39cb363843b06c78d112c76cde5cd8495c52019359f4aabfbff771acbb91bf97a5acb1d46d2e721f78695b8a66a145c15bbbafc77e5070305b37e854eb16adec67495c35f44068ffd1ab55fcbced4c146055343dcd7bd366b604ef8775a9985a1bf0575482d162edad96ad645f186bd2bfb266c3b178f01729037d9b7ac8a77c518cb5f316c050edbeb0d90362e21d5dff7be1f8632ae42cd13f9d7071f0ee0ba5a1a50a77b05fe3f089f1ba56ff7746ef35ae7bfb16c2267118e203b75ac19b334200949f8db6dfea57e0599ebd3ab484bf5be07a1d1844aae9d63af81cfdfdf1fff686abd1093d27abdf2e92308ee6e3e15fe197e3a9bc6a9ca889e06cb73cf824363267d45095e8b71f84a9ca49c66ae58713edee540cc357a08a7b855efcbffd95f2b765fc9d7bfae809726c3632915a0af1cd1a01abc864a56539d5fbaa21f7a58f430164e81e65b90f453c15f83fb9236ca8f54fd2c7e50d0258e9a383444247301aa1b42c3215337098ed426bdfdcfb251b8ab08c35fb0570dd08ec68c1896a7ac95ba6da0437954fa029b03aae7c64de3ff3aeffe38ef8b208d9dffc62e32f44bb968518b9a0059cb2ea2e59b0c614b7787d0068ff7fb5bcf59ca605dedba63a34626261e7193e97e7e6c45f3956fb46c10e88a94b8c097cf2016f1c2f76a4db6568e038373a7f959c09ea1223c66a5fe011c241f206e03dcfa03964dca7bef53f1a442591706fceadafdc7fe0b1ce3a54a2e391e51555beb3a290c29bfd2d88f1bee4dce1c6357b4966fed12f61a8af8c90bdad34b8d9bb9d04df6c12b717ba937fff7875cd58ccb01c8573f4341fa3d3648cde127b6a9c4a7b09dfcf50f39bf44d1fd94f5da7d2fb1c2578b9c6ccf19b9920bc76d1b91513bd9088ec1e818898609ea9f5719e4b458b9ba28cd9dd43b0402774dba02f4e1e6e5c71b167caafadd9678932176710a41184ba19702e3c40663735a1811c56ea6817c99f20b5f9595855b46839cc64450acfc71cec14c5d56c2a799ac26569cf58a8d54b0f984828d379869cd8f5eda5d0867199c914402b016decf3e98a2e63948da228f29e6d52a9fad658997c1d3dae404179370ab68075e49868abb5d20fcd4641a83469bc20a288c93abb2ca105b6bcdfe0f122129303850e3f33f6189b2bc89dbe3ef000000000000000000000000000000000000000000000002090e171c20", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 43, + "comment": "signature that takes 23 iteration(s)", + "msg": "b900000000000000000000000000000000000000000000000000000000000000", + "sig": "c00dbc9431a2e5689d27b5a3f09c62fd6bf48550b9c6424db5c6027bc0b5cc8e9d29f05fb9d8f50a85d2c5d8b7a4f7f36813bddbf7caf8eff67a6c2e148890f9438a5ad85e6f4eaf6173f122dfd160a0ad5cbb091d08130677f196d22c8bb6793d174f71516d42bfdbb18fd9a371286d03ae41c7515adf78b0b9d0279538415f886a7818c6e09117ea092235cf18bcc834cc07de3a639c472d63cc2c42f6178a4c1fc61e5ec1fd5456851d586f37b59ffaf43e3887616136f8ae775063d5e24c137f63023d056ca2bdbc4f9e059a906fecffc72cbd6ff702f06429a66420bec5cf936c4d8f0e2f888c9b5bbe81644be03bfbbded0a1ac71b1e4c2c4df783d6d2621208f88c58dbcd947fb62ab972bc0865dd043528b9fa057c4e7a0f7cfcc2623d46745f4ef63b66aab5ae5999c625fb20da4f40d2112e53122707837501a0db379f262977c853083913030418cbb78a12bc6fb85857f401b7e9671eba59c1d11b55f83fcbcfad880c0d8492e03935341488bc7f1f77daac3972a028adcabc1b3f3ed7ac41a5caf911aaf8c76e0ea75c1f4ddd109a21e47c7a5fa2103dcb5e588c354d80feeb15c3495c9c0303f7d42e2a211dcb9b0600245b35448735877d6fe378b38aa279d81baa922b56693a2cfbde2efc23fdf80a78a8f50e9c587f2d63e29f0631633743664a83ad3a61ce12fcec36858714f399591229f7269023412b7cb3cebe64691d1c63a297859d10d12d221a43e37432da12c9c7965aa21bc82f7047ee6018095f0e832677d83f490b238f00e21251cbbad5a9aeddf11d4d4dcaeff0ff89caf1e8639ef0d26b31535c3fb73fb42a6c4c399882961a51ab5799109f58104abca73d8083c2a4b64ccbb9c1744b53d8c416bc902802abe8d7eb9a39405c91b61234ca7d35735e18e620067404d0226e7410f63c52a5ab4ae58281496d683b84e88055e970462b9d11b75688f8cb3dc47caa0ba1caa5106621bf59078ab30b113b4408d891e63eb7dd1db637607e6fe8b8b835b2205c5b17e7650a26ce59c3ba37a691a8efc35b847239fc7c60f61ffa06d3025855fd8e63f1cabff8d3f76f19ab3ebbae67786de70e9880887642259bc89d4bca52bd243b851b7e229ed4aa7170d24339d2e09ea779189921866a9bb773f09cf832b93c95b8846e2183f8e23b47a92d54af739dd9ff8cdcf13dd9fcf3eba396d3c76569b733aaa543051668cc436b2ff40a366284a0eae55246389268cab3d516b19e0d5184324fab0d0298872fff58af31cecbbf9b7abdc26509792483451da1cf5c53effb81b76b2cf28d0892de1cad6cd4ccf91496d64d31b9e8eea56cece8a99813ec49ff568c32763e3164b638ebae34852f8a827b781ba03f4d42297b5725c97f9a6e82668405f3b0c589ee7073121e07c7c39901e338685a5b1da04a127cc2301d4ca4685777ca9619f3cc3041a68c4d6034cf3d58dae42e61a65339885151f70c12eb9d32baf5d124bc9b47775b612e35965f99ac25b60bfa182b84188eafecf4e761b58be536d8c241a5df7cccf92bfb51a9f796521f6fa8ecaeb8574c28736d2e9a3e05aec22125b8ef6972cf5ea446737931e2b3c3c27dc3c84951fc60c89151082d222008a271888317c7fadcf621c115774038f21f89558111247a81f6f5e075577bca24d798cd66495e4f4eeb405488d0c39ca05e8d31619a5e65bb6b2d5b8e5683532e9475cbb65190a4abc6edf981a4de572ba400e6f200320cbcde65f64fe9cb8bb204faa9ed6cbd505b63aca60ade2ca9c79978bf0d971a8512c11e2f8bb9670984cdf29fc1a08c2e0f60cd4bd0630c0b3b34ab16f98e36e68a72841e34525bb5c7bdaae3c221e6d62c5b495166a9acd5fe878c766179c4ea5d88b3faeeb92bd0ff372de4f0b4f7e9002c097c2ff679c25467499b28912624de5252fa5d48014289e75a73b01021fe0f302e71342d525a53e754c4ae74c700bf187d004ca04c7bcbc956599976f70044fe70d22a0c82a3cc2a4aedb839f3c1a1d0ff61d815fd5cc74ff9c4eb40454ab6a53701913f176df2d57eec4457a98ed417c6e475d4fa068c6efcc2c6fa68bb80dc14d88d42d692e81e3b791955a2a4db7b9e0b2e959f4c4f04157ddf3f6b71f93e2768bbd25e807dd3a73f3db6641b373f1836782fa9da011c16cc5b6ffbd1fff811e23b1a3e0ab162c879369a13161010f5997ebe78fdb5754a34ec51fbadddd1f2afb927434175cb7060801c4ae80d4fbc8f9548381f6bd941e57bb617fa5d78ae28708e054a343b143dde9d5afafddb9181484cbf910d431dac96cf60670753ef1471db18911c4de0f14468376aebe23a37d7a661089e5487d9d3c5115a563f24267ae8fef4acd06105c7f2da0ef1691ae589105a45ca335c408e765395b2a3cfeeb3a3d6479780e38e7b52af3259cce9206f305e7842471c6ef555bf1d3fc6e0afe2b8ab769e2aae1b4b97339c273c051abf2b62ee283935f4253cfd1e855a2d549c3ed591838f423db0aa4ccdad5b14956e01e7afa729bc86a563030097bd6e446c990f83adfa5da4a2d71e42aac0256e8e48957f301a745733a5dcec0f761d7da4f5842c99016ae2d91eba8b29a9fc48ced59a08dcce4efa84acd21583442a24f444ee03c8611dcb108f1e9d8d6cb40330bc324831af3adb7585966f3312762d131ba54e45b2b695804196f3b1bd5a5a633429579cd18fc4dfbefd7c7c53873764d29c32938f25578ae0a7950c29934d9d878623640adfab823aea5b248348ed029d69a41f2762e3bb859fa62cbca757565e56759dd51501feda8f3be5468dea32f51d5503e9641e3bec3b755aa0fd6352a08254c1c95c5b65472717c486ed6e090ebaedd6eb4378e75bd71887f19bbca49ef148f913cbcd0725c5097cbd601e78a8746464e552c08127eeebaff5de1540b37b7b9dad95c74583eee8183504dc4d61d1b30d51e5a7d561173404d97b563693c17083bb3b055effcbf0b40e688ffb37f46d3a291ea0b54cef41f8f49464480b17f7017f7f6e9df2805f81fc056472e69cce7222b827b92c3fb1aef3bcaa6225d1e8c23e0cb173c2c2c936b43e89aa89886371119c3203b7cd3394e7bf29a0fbb64ae19d476f118dee4700a7ee400a73a07a8896a441614e3116f76cd58ae6e8b9bde7ec97ab8776e84c9dff4f41680fc306c026ee5caf39b58c3627477c19f3f39b3e35bd4695ca73d4080a80cda55be5d3dae4eeef8f24057f45b932fb6e58c965512d3bb07fdb87797ed007f675d0e89085d7eb93bda336692cfc211a289fc104a9fadca4b1de6db0e5868930ac571814e175cee5fa8db276ebfb1e51809584da93bfbdb0df3397ac9f4fe47ea2bc772c7de7006112cb218e5cbf402a923baedcfd9e4991a8cc03b860beffc9afdd8bf7265559c5af0f70c4372b1c24eb8d4126debb564780f7286aa17149697e7d9c327ca50babef283c6a991bcf8ac1fc83743a8ab4383cee0768c556c02194b1339f92bd1f1e4919585e74251ecb7defb768021156c7f096dabd1aee777774b5d2537957d1136bb457b7d37dbebd581a1b60c4402f25c273aebc1bcc9d2ac03fe3f93709932b5c95cec947316d8762f59784baa0039a33e8916e16ac727005ea0f1b6eec3601cad5b34bcd6e4c8f3b49fe0b98ae9e081e6d6aedc88dc3073e753a11d0c3a4b64fa0d4204446aeb877cad71f78b61442da7ac3fad1d8f581be0496ebeef0c4625c18f10427983675e57ab7a80e415217133352b5b3819c76d228f79047cea790440810040b878b2a54d18430c43c322f83150ed13ecf3349c158805ba0216b736554859f60d62c0ee8561597f52a51677beca0db358ce367da78bbfc6f1c3a9445c53fd91e0d698b26c7b8a2b4a201842f50e0d21e1539d90877fea7299fc08a831cfdecc45784febfbc462116a7bd12dcecf301a7da2a978f6527e57f1be5b52e833039d9bd00dcb87dcca99dc887ca0410646df7ab7671714e76fee5b78006ec1c7f53b7b5bacdfe0bbca426035067e7e00242a604c568707228ca6d5033c26a9b2dc6336124e329a98e78c1245ebc14efaa499183c7df43b916d47dafdf9126904c8b3559ade438b2062aafd600d3bfc3ee5f3123e50750faf9fe59571740d892371143706befe00ed39bcae1d7ae604a9bce4e889c4b0669e5fe1103ac5a4e615903a5c3d645144de577d4aa9d3a4e5abeebfdc96abfe5a07ff7d68aeab1b3e18c5a118d049e1e0213e2cf9da583d2b9f7108b972d467104599e557bb36a710d0beec84c13cecaaa0f511355ccd351da2192f450035d6df92b955b7e241755abe8ac2face7ca735bf4d034bcb289dd37e7336b382b0de8ab1a02b59ced9ac9f12a38be2a9d3215125ea5aca39b1b47db4756a402d2c5547819d0907cc3245a7ce5b3be4ae2ba86c62374337903c6d77986c496798789498b378227565d7b977b8eefe14351bfcf49d6eb15c3385e8f63cc9fd13eb69c37092781e8c2dc3845f744c1511c25a6ea363d7b3146b5602a07111980d9ab1ac4376d46fe5990e75bdce9de24b9af38bb6c65e6ddd410a1638b5eae14bc596110528a237a9fa7bf1838614e6e7f8ad3070a97cb010b2e30438a9bc1d0d1dfe9011517596cb1000000000000000000000000000000000000000005080d111d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 44, + "comment": "signature that takes 24 iteration(s)", + "msg": "2606000000000000000000000000000000000000000000000000000000000000", + "sig": "bd1c81add57c6fc6aeae596d5e88a9a40a1f146e21b923909e3c90f10a77c0451e9af75db5309434860e43f437f04063d72c40363967069240efeb1d04aede6738b9b9024b8186041cc5916b8cb0098fb0dde884e093911e4069949d720ca2e9ed86d442ff7e07f985348b569206c6640a9d14d3d89d6529aaf4b51295a6384b3a6e63a046d3e89bff5079d58728780fe8050369a06b397beefb82a6ae7d9f6b5219f993d34655b578454f62fcdb8421b8bdcbdeb43139e4302c44d1ae23334dfe8b51df8feebc24a936bee7b4b647826994da416318abed7004abd7f8b446a32e8229e60f1007b1fed5795a8df27392e7a3a1cf8aae5184065ca28312fc38395f70b9ea8b8cfcf1015b6dd4ea1b2c17b22af14234bf102a06ebb70a35ce2c9d0c8afdae728c169609f61aa09afb14ee9911cf41e6632a031c9342f8448f4f78ab81ea49cb57d18d07feb70d18c16479a03d4cf00b2e5e885113a16a50594901c6daf75f49ff990893370950684a8625ca8e882be5488cff442ba82d9b3b978e6908edaaab70ef89bafcb1327b3ed7277bda85f1b39b70d5f3571d5619ceeecacf60e29a37d9043a3cf41e03a79b4747025fe3ded7ede991939edc8d6e1491ba27e22a493ae6ebc189828ae00a13730dc5653da364a79f0d3fc00c0c5fcdfc7107f235b9781d5ca972eff4dcde7d38c1f30fcbd3e51d79c356dea6694d2ac49ac46850e06b509e51f6816e404b3de241cd3f869c68618709373d54eef4f244288e13a0fe8331a09df7073c9668ce07e83cea9a20ab76083835157e8c75408694a5a012df1b1e1d08343bd06d81f6dec60b2590ad6ce34bb66bdf6ebf0e21b1f2c4acdd25b7b212cde6b2bf826c13216f8f62be455202096de344759a1e66863da69cb0268ded55de9f41e4d75dbc15c43eb7aca6b7f8479da0f25d3116b1bf28ff205f8d25129a01f22ac3976c80eeddcad9e963fbd60743e8976e2175055bd6ae589c3808d41e51e2077d7e2f9a5fcf1ae687d7170b96bbf8d1cb67d146480dd38d6b52f877622f489354e587a4610756246d647eb1dd002253027032180490924c8ee0317bb4d8d7c1ef415a0df37bcbe1201b4d9dbcbfde250a8a89a7695c280a4be8361520869b5d23aeb6e7df2737eb1f28812f5ffb9b1302d5b030182a008ed813d8232347342abeb3ae7f7172d8e85947899714d9a4af587a43bc29fe14d577c37a2606178d342aacd2e9a33e159aac81f29e6500f7f8e1027d3c60c63498bd2e391e4be4caaa6c715c20316eccaeeb2b0f1e0b66809de88890a0d14d251570e409de7b84a4ef7d2e5b489a7ae7378123203ee261c06380b44cd6e256568c990d86f6cdfa444c333ec851932f27be415d6be7d8c1e063a44b62786fc1449815072c111f5b98e8c7d4d994c68cd21d0f07099c7eab7432b7853ba55ae27cbcd48be775b9b5a9d407c939206bedc59708f1efa733ce1b7f3df559b4df5b1bf8c27f8860bd837184cca59480fc7605b9faa4f1680c3389687030b68e343fc56fce77255267ae53357fbefe4f122ec52ae2caa58eeaaebab6cf7dbac4cfce5c95bc7dac91517a85b14c560eb604e5fecafa596fd3e76bcdb83da6b5f239ba8cce4a9e14957a71306e7efdc048b9d949a8cba9877ea329c39ba2034da897e57d4d8f94efd4328b38bd27052b224c7366085a578524b6f42ae9a2d047519e0575b3cf6b10a4578850cb5008446bb32996940d25c7da5300d9561ae96e43ca17614cdbee350e55e4a07be349d5b181ccb3c806a2cc7c1ac165a3dbecbc6656beae26bcd37be4480dd88bbeca8cb2c1d12d4594376d1876f928dfd25559ed402fab01b0a3a3d7eed61a845a31d3f2cb8204b7641d875304dd0b9a84957914fbb3a1d7c15553855f8122dbfa5275b0bcc66e49741bf4f88c37e830f4488b24459076039776f1342e1a5fc0af17d81d96c939e1159ebe04791fd920dfd6eb7d8a74fbda316d70b4d327a5411fbd0e25edf7f9448dc275773c2f05e9ec8f16006c4c8ce51c6c3b9be2f3a78ccf90468154914716162df15f008e64720218a59e69478163473af62c08780390b21638c7c86ff5ed90ba003e9511651601ac7ca5f505686b3101e53c736a213bb56d86438b9707187429d48e3dcece259b4f87eca78cc9720b1139bf27f5deeb6614002e5932d44f2220f22058e5644157e334ffc348d25a2be6859e88b27d365c5a07f86fc0d74b68ffcff73480a14973b701eda3a0d16fb39b86c7d344a51f10d3e4d80fa4a240d66621a436b01e549dca7d6ff595967a41ef9892ee3a316113f5df6379c529aacc5e332f4e108a613c799102f962a9156c2b7d807ec4de42b315a9131338f2aa35f889e385a79db045c042d6b4199ce0d924a859bf182f8897c1aff76c4470077c732147df78ad688c38f39c41c525feac6cc92cb0e58cfdbd24f14ce7d799ab19a57ce7542abe78372143b39b014678b7d02855d7682f2d1cbaa063a5911de020500d7bd4b3e45eca31d992881a3b9d8044d51c4ad2b3db4589c3c6aca5c714d31310e3ecf91950ff12306e52302b05aea52c2253a6caaa21f1c7b0b4be41fc00e4f2b318246785157f77ccdeb1f8e85aac7b97d28db41a6eb5524047565c9975b155d2aca2b98d85fc9d1a4e269adca169d145fa138899a975e13183720ab912051bc9523be26176b910d98fc8e191dbc564ccb1a0767acf1c5f9a92e501f8098199360674727968165293f778f8f87335f4b9fddabf278f65f205179a43cc8fb60047bbc4b26beadab79b35b1f316283b595046aee055d68e7e86b5664fc8b32343f9b488b31aa0649433248e531fe5d570a531613a50c73fa6bd546c861542ef16be17f35ec4fe92d60905b6baa3a0645ac3ee67bc6bd5361def91a6a9786afae9dd11c49928873b7d8efae32772ff1c5b2c065bd9ac18baf76606889dd80ccab7c9f0d3eb773fca1d561d5fd0811faf01dfb1f8c1c13010d23f8c1f467ed5c5577ab6002234c295c622044a306299855588fe45a48e00fb15b314d646d80daaa01d918c7a5cc1c3eed27f12350b58c6fd715fae1c932280dcd1affebe0d09335ba3992bd3d1db2a4b215b123da1a68c75de8e187297c625db9a9a1533a4bfb1ee3c6acb69f2d8149189d35ba80077aba0a1474d164ceddae3e8092c423099a0ce048420b03cadf05e897b8fece53857f0d2fa126b3b9bd80e31cadfc4400546eed633e1d5f0e4759b918eb675849f86931541678aef583b9b2894c905d7a5a0951355d5ce741c61c146f2324a372b87168ea7b380164a9e36bb3e63c3982eafd6f68e122a1263e745fd11dcc623d41c4a1f191cbeec16b2bd23ad9ef5a6067a1065f21a59bbf76a47f35a6ef3601dd6dffa00a96381d037e969ab938a57f21d38979c79480099f621cf8951094bcf4052d9c6b0c45cf35a987f254400b7d43f9ef50677192a9ea867046e5efcc8706aa599f82cf59ac0a67fbe162cdaf2c988addc0d7f934b850cf5739bf65b7053d280a79ec3e7e5bc738c33a883e31484d0003f2dde5fa7e36889f544d126e2e081bffcb41ebef6185e73399a9a336ed07c119cda65fc115290f149802f9fd73a6528d8bb05f0b210fba11ccdfc814d16cd6add066a8ab72471cedb354a4f60ca209153e7b0b1d065f37bc756ad1100ae851c1c998bd36c649f8c5a44ca5958dbffdd88bd925653081e2cffceba6cd4142a4bea47cc8fcca2f5e46534494689d45ff296dfe2b1985896bd71caaedbbb7ec7ceaf6d540c2cbb8c2c37489a5932263ba0597c3ba25a6ab50a5a09af3b9cc6a2a2d4411dd0d3608fd163355cbfec4a6dfc1bc4106b44196a4591af1b6e3a75e7b1f3769ee924984781197b9c2730e9bb1750005a65cc74689e8712c2eb16875c5da03a8bb29852e77c08a16bc23d777c99f628c688a023ab8431db5f3d0f463d90e698e3430bf2be8d02fdc41035b5047c1bfd21c936ae69af73eb258c3907efa308c71d3f8d9ab0d40d45c3888256d9c3a04f26c83eb63a77f290f2b58c6dd4bddc346266f97e55d0f044e7344c37652b8b0fa492dd5445e84988ffb92249fbc69be049c825186a2973631d5dc4d10896983bde511c87e2850318963cb1e239a7eba4c06b6a2e9ee2bebf127f54c487fa3b28636a2ebfa0ebe042adef1fa17913692ec0d1647cfcaf6c90df6f9b141d8fe9cdd8949d80bd9ebb0712bf8dc1466c94c625c9a9736fe4ddf78aa6574de6b1724a7dfc5bdabb99dc22cc3deb93d537dd5d1b75eeeb4505c8f6ec102ba1e694858ae94a66eccdb977432aa02f1b3616141c8c77fe5512ce888262cf2a3f248db8cf5130196f73dfb90dc716b0e21da55ecaae1abd53968a6262a1759724d2e4ace335aca4421b38ba903f501adde8bacfd7e6cb254e15a1aebf1ebbd812176beeaab97f205f570f5c2e96f9327af9c17514b2e62ab07161ba674e46c1dd6d77c070114a90eba94a212e4eb5e6fa62084418afbc0febd8224210444953603af26d21ad0a5ab8812044dc9522cd42605556c501aba406089bedd703ed61fd3df829ec92d5137c4161286ccc43728d99b2b5d2f014161e273238535661a0f1277177a5b2f86d71acb3cbe1eaee4b78d61a6cc400000000000000000000000000000000081319212427", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 45, + "comment": "signature that takes 25 iteration(s)", + "msg": "4301000000000000000000000000000000000000000000000000000000000000", + "sig": "5986c4549caa794e266a06862811cb2c44d93bb0ce32d7be8957b222eea8a487e8ea7ae835d09779ccfc38f48f7988f828b7b26db80d5e391c6e19ef4e190bec207775b5f0fa2d3872c8412a895d57c490c6da737df3c7f0bb2fd62a676f1a78389efbac474f277c4fa9b08f3dd0a82ed8876e3fd7a3b1614cbd5f0c51538621cf478c27ea39d6542bcb62338015a4098b7aeb69f0131cd15ad80e7e797bc327c8c20139992d49a66a63ab341a17c080db529df3c30aa8d76043cd781b3f6acfe97ec231db5f026a86d5a54bf0028a9c6b9452ee01dbf7ebbc910ea50f8e4480dd393466c8def5943ba822a67e7d5e20eb92243a84774e838924d7adf1e45c65cb85383c653c1864d51663621e3914b1985868f50c7fff42e04d57440d5aecfa221c477b7175ff182d461448e820dcf7b5f04c132a8194fcec3d4d02df24db406a8782aad71d7c27bf81e2cf4d11e23754c01b3dce63417e9d812fe5004c13c97ba3e4674b377c91e54c707f15f0ef9f131e8fc875d52b696fd46500088c3925da2ab487a6869cc8597ce2336f6e3ecc4fa42cce8c24f5783d52166046b19c661f3084601723196a65bcea4930a4814a99bf26c48f84bc810ab6829e82351641f21082b784b46e2115a08e32aaf4dbbdd6b9a5c72107f405c47d0cba1168f80e9842d4e47a0dfdd42e18d500e1bdd573fd4e4a7cc18f44953ea81d94bd1694bec08e67ae218074c1f179063587a65cffea71e385ffdee9a162fbb113d4247822e46f13ebb3462a394323684baf59bfa80cd0a1209759fd39f87a367c19995b92c7ef13216a39d0233ba66487c1ed46d5ffec611f427abda454f5be5e34465481898ecb4912c1a68067c4aaa33f525911d77e28e9d764bc1124a5b889fe928aa090f80e41807756541ecbeb620ab4d507ae30b17a684e2a18af0865f400904321a9f736fa476aa8c5f7edc4ce3d883c197fd38edc4ecfa26ddc86653f13fce2eba247df6cb818ece36df59ba220b7ae5cf6059eb23013a88ec4aad41d4264d2814921c9723fad5aa4393a646ebad0ea1dc277f6f131513bb77987c9275d9efee0f593f4126b490c1157c72d4de8676c748f8ed5b8778e5687e000569802c1273a52209d93b6de376621932e9743857017ef1af4f313a346c956b2a0169d4f3059a7ec5160f5485b8f00e67d04d36294e5f4514251c5001eb8da57398fd085d9564b959d4e2480b94b05bedd937a00fe713f1e894ed76ea0349b79ba0343db1761f23216ce929b20ff49cbb7cb2cf77d1ffd2675125e18270e081b18c86e811881695fc9df5f17842b1fae833dac14e1b10b32fa8e8d83789949aa0c23e46202453d6836511e4731dcfd1817aa02463ce1f175aa3c6955cdbe5c58d970dc0d58385bc27b2f33beb6eb638fc9d8fe285006436992d96948076b35a6dd50f97fddc72fe9342408841a5aab7893183d465694ce956fdea8f7539c4412d80f6726c2d726b23ee6efe01bd520ea514fb751aeac7767b42927ded102acb1cc985f6d371551306126678fd6cb64073683295cd6b84299c3ba36a7acc6810e4732389408919db59b2acf0f71178af017d114d9d543e72f74e0a6042155a34e9eb313106428d15f753f35547216e47500d3dab9877e0d8a8342606c4ab83e421c01389087f7763f7f5ff10c600c2308255701cfd04e63cfc435cd1bf1b24eb8bb8a6812d6b38b7fac21fb67b892e04bbecd2a8433c0d104e950771b2243595be35423833d46a6b28878cc16a033385e6bf6a94a4a6d1d5518d538fcb475af1d1c476401edd05dee0b014d5ce68d95a06c8a30c68d8d33419ab4843478708d938af757da39d45a7b77f79a8f8a2c944bc95779ab747d555094f1b04df45dfac56877377d5483b56ffb1ca69c4dfe07943b41a4d434a7ccfbcb64a374b61af0bb203800a10255b87c715a6366cb1b6b5582135e8703d64235cc714beecba43e4f31cc920c6bf59343d5e78e4235b9acfdd8ce49fb38ad74113a0feeb647f7179a33299b1a4bfa60af1e70ebb070dd07d33aa793e434c9d7aaae98f018e72b1ab8788644c4fef6b0028a39c30da55187e183413fc79ebe18a84561c15469e294900a74494e58339972508086dace548868594071467360f24efec75414ef502e5f389e4411150672b91f62984dda1b4760de4e738c23f95d9d6c56ebcb316e4ea71253368ac460e6a754faa69f2ece3a13c36dcbeaf142ba85cd506e30877baee307ffb945afdb387ed02399ff21aa9746d850c5637a937cbc6c3b03a27142b945c3da9839295a212d644833c0d85984cb5df2f7f139da90d66e6e73f51c9c3ec8ea590fefee063abf28bdcd2def788f25e40a7e25d01c11def224fb2a42b880f725e1cf2f8c08c8e6b3f80c90a6020ded9cffe0742f82d55040eabf0af6af911c336ad92f944480f46adbe8b5db18d6b34a3330bf2c50a2028f707d9bda1fad9ca620db5bf2037415e07d2d6b7c73bb0177f7a1bdfd349b87adbc736bfc7db2613eeaee51d08322f20a0e683af01aeb6c1d9dd9ccded7b9125b8458f052e7998ce4a62612b815f5fdcb8eff33a9c72d6e1b4fb35b01554d6bd287c43b8e4e8cc8465379b85f84176487fe89eb43b7c7042d7c9c1bc0f35c55236df89d0c186edd0cde61869489c0605946a936e90096e7f0614a74265adf8bbab764e968996ff759afb9603c359c195d7f725eb06701a49912401ad296d2240a6467a80a7fe2a440280eec32a300b2438b08f5152376c25550d0dd8e8237742af59c85020b4757afeb91aad5db9bdde9b7031445ef56956963cf27470cf5c914e267d29a70f7ad5b9c76d281e5a284db8a7d6a69b8bd626e47d6edbc7ca0bdb6df8192a230d8be6fb19193add1bd107d395dea7dad6f0901748a0d6ba6bdacfea046187f0b60a2f8b922059ae9565b6a20f99ad9b107c0a287e2d5c2358d7597ea4c029de58b4f13557df2012bd8f71a99d924947672866965ddd930abecfb5e5a4955f561ed9b7b00757fe8c3f219e7955d43f1676d544f678e3dd8f5ad9e36b3ff2b8ee15272924ac8255a53cb9a9e9202765746365181fe5ae49c96dd71f4c3967cc2a8bdb9a58f18ef1b8808e3ea44f076f4ad2dda7b2c78893960e844d3ff18aaf815286e5a5c04850848c3f25c0aa5f87fc0d62d286c0ce82f51c6e69ce0fabc3b862cefb8fa616cc46a1e34b3f893a4ae9b6d4de83c7419748c35df9841099ec8554aa5f7f310eddbde6cbbbf04f76336eb47fe161246ebab18bef7a9e3532c6a9ce0e2dc73579fd6cb1643f6f01c465ee4ba1d7256130b99e0e0f2a16d457d394d4e763ba36c918690ab354155d2fefda366cf756044942712cec0fb1d1941043dff020b16b39dfa77b064b9267de47f5d9fd5da780c173cbc729f17e44ec884a63b0eb3ac2208b725db57b6701391ee8d3bdc94f3a3664b5c6ecd2c166d037c0566473443345953646b9de89ced08dea5e800bc4aa1f8ad5f8aa6da89e9e93c2c31b1cb0ff0c9b7b4d5dc9259b65848949effdf6a1970326381c8ae4d039c372dc92baff73cdf14eeee4812524c85090cfe485ff6ac4e8bb5d96596adfa62138f27cca7befde57494c1166f002eb62d32b5705a7e9642ab4971bfa366f73dc268db53940ac5e1f34dc24b9a8996b527f15c69d9579b77b7b6663f2941f45448572aa5998b62c8f5d495176f6142c327217e1da4cff053c607673f14a912d9344bbf9ad5fa7e623ed769bbff53bf2b5a1c78f79e69fbf53fc99c6e171c90525803751b25ea6c9b7d496e8a7b294c3f2ff2455cd8715071238825ef6cf8684bf29bb490a1e3111fb305f3bc87357e7263e417cc7c10cb685077a1cf6f058b1108021f78a532d7c948a485ba35c50249c79add06a6cedb346792b4c02a480a2bc669954c24fb13fdf4cd6b5071b969677e5bef6e30b69e84b8a69c98de885d1d325526c58dfef5f72fccf7748ae8b024d915e14fa01c35e018b677a44babfd32b9555b749979e61bb4ef464f8010d1f8d457bd9ed6f956a6631ca7bc768b86be99fc5d2cff06d66013eb0b128f2245f6f284faed9b13a6c6e4a14c3e4a742967e598a06a119d84b5e3f8bcca18f28f64c9824967b6280cea61326ffa2b20790069e38265a337447eef2f739365559e96032d3e17349176963d9a05fcadeb86013c5869457a182f4a95f1bb5e4c64b640de8ddedaf516f7d80afc8a08d1bc5c50aed4e0fd32e2e3209958fd814abe06267b879035b05d251fab57c104b3fc4169d090b6830e2a64a221f67ecf08122f91d638d0a53bc211c654ef8162e625d75ed0a0764189312630ec3534d16a33d4e55f95fa5db64675b7ad8a06596faf5a8a47f8308b61cf16aefa2e6107cabd21524711ef971b77a1d4ba8ba1318d041aa7351324895ec6a45dcf5ecd14151d6b00ff611071cd686668ed28a0fb77f4dff6095aa72d7d99792aceedc33eedc40e30260fe127bceeab8a5c1e7edd27d0873fe1fa7017cbd9f3757fc5d92676d5f7e8ef5e85827be2ef8287d47403c68ef0c369ad5caed8bc88089f34f84e69f79309317eb49c2f34c74258c711181a425e93b5c5d7f308103a626d7cfa0f3d6b77a04bac00010819b2292e5f8794c500000000000000000000000000000000000000000a1116181d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 46, + "comment": "signature that takes 26 iteration(s)", + "msg": "4801000000000000000000000000000000000000000000000000000000000000", + "sig": "3a274d893c34e200720af504ad6cd4b00d7a534b6af57ba65951cfa7025ffa7004d07669533fa01ddffbdd752b84d2b44273aad42294a90bde3252f0c755fca0d12d203522874612dba90d195d5ec83c8bc6630671d7ca2a0ca83c89385937c5d4b1a1392df9a378ba3288427ee327b1643421695aded6f1ce3fb11ad9b4cfc5cd0720c9b012eda021df8039bd2b8d5f4f6f78b7995b0479e515faa6539e2f36646f35b9227fb42e23c6d49f3bf32c4f0d509b6064d5489faee9b5409ca29d73fb0eabc62e23b1dfe784940f7ff0a9560d4d7d278d41c22cdf07be384aad9232a17a59f401f3b768403f5adfa4a3f9b1085f09962f2a9f0e590a2432140fbdf3a416b45c8a5b206671e8121cbdbbd89bb35bc8f900775cc7f9c636883e9a3bd1c3367354138dd98913642b934e6189d1ac221cdd7030833c5da24c70de3ee205b88ee357132417e35509624afd510b73255266b23b735c9292540e4eaef743c6f30d8844b044b527333d2cdf16b37d1f1b81637727b1e7376ddf58287d01da6d000371428cdf431995a7bd02ebd9d59f7d2a1cd33bc33026446f4a02132dcfe734d5f8f993946ea932f1a4648df1fe0d76db2f613b269d908ca87a12a3948d110b6bb2048a1780c8bbf6cc5d5385df362fba179ae42a10ff706a106722b41bc17c56d6eb10130d31b5bcb715fd6ddd7aacb536365c5f5c8b92f29f8f5d65c0c68f382a7df50111707628cae2ccf7913174ef53dec3d6ac7111c1bc40264d8e367c4f42ed57cffd874cd7a5c698fa405ae3121050e302da8ac890ff3aeaf5e388e95023d082e7ec4ce625fa3340c9410499c9e1709cb4058edb31ca1f723626290c8912897f73f8a475a3f06173202c154e33812135ac26adcaa585c72667e3c6f20ceb1ef978815d4907298d1821c7a5fd76489ad83c118b38a9cd9dba5989c5ea00623c964dbaf4b6f072b478fe1b13b8f1ebf4b938ea8b4bcfb868e8aa43211e73439ca50e06d3f5b2d9a2a638ac113ace0d1cfad0cdaea234921cb447be52427c9726f581af29c2046e9a4e60905910de2194a624df7f4285ef058b430d9803bcfa83be0b75836f317eb6ccb2bf32594a3ee2765390aed29070249d1a899fc5836187eb65685867efcd75e84948769d9794686afa30ca9500a636a9a90f12e2e09f2bb5b716a5d970efba2dd317f9e0d5819db99f0d041ccef8f5df8490ec13854eaed2f86232c10dd9b0914814bf4b68679d11d2feca8ad67a3863b73928ca8fc2e4c00adc5ab81ad699c12a592566e3e13b5f814e43be38e32d6973f68e7e5d0cc7479fa5e937c889da2de8763c1abf517aa5fe879159328477617980aca382dbe22831a8ef278591aa3e9e9e87beca16b873724d500b03cdf46eb3be3ade2a3698c1189d376fd79b62f3f491cbc925d04567b735d43f8f622e2e7520ca8b9345bb4e5163be6ccd63d01553a148581e1088eb666bedb6cb0d3cf65abe30100bc530fd1ab6aa111f3780aae419e564c64ce6253741fd9800b84add684500d3ca1becb03832b3471448c1bc0251a7e1ecc84928983863bd2e6ae09a5840e9b9cd74ce6b40e78cd5dfab8755bf36b6146732b599836fc2db9af2688cca570c70dd7c7fd4041b9a4c8ff98c7981b1d09dbd009243459864ff562abc1512f2f844713e3bf883b2710c3595e570bf77d180dc47df51d79d505ec4a9895059d5d3702a93f5433985e1b51078199743508a398b2ff73269d3a566b2dc64cd1421c5a7198d544079ab4906cb35c596739e5d7e1f9c212db2278a1dfd2d1c9628f5b59cecf15b6145779e9de4ce43bcb5cf880355365e192852fcc0c85d39db6c5052633428019a50ef7266ab9793f9e800f1455f1fd77e2f90fb13e84af7ca933a65a07740d6d11506f650755dd8bff8d34bcaca2c2764b23d749c116fb2f2688e5abce0ea28f79c6ee013b904b28698a17c8d012e821504963bbb6af7567b12bad96ecc3df7a69d22cfba305291e7b7bb6466bf179a77b8d2481917eb491ceef67cf84cd63b5bc87b26441108b03c8126813a4f545e23cfc0f285152cd5f2f77b93a000008c2ea142681ab1b9f7b076e61cae8e93bf7759a7f2bda2cfa86b9eba74b77b03b53f13f6fdd96681337616628e06a2bcddc4b4fa4ae12c0171063229f1eeea4f28e2fc26a43bcc7318edc608c99b898212c3b04bf85b33abca45749b87a76e2240b987a63a29d29f01c78fd91f3240d915adf41f2b5d80a848781dc060d0ffa737a0c6cfe5b453cdcb2a50a39d7ccd58565a3b6bdb2823cf9d7ec1a204546eea31a9db531b51214547d66e85e590a663f391b0bfd0c67a2271fa5fa6d419c659b76a7254468e80e78434b786b385c91c6f9fbdfae0b1155b87a708e922a0c82f1f0189e9d953deefce4f139cf6d0a8bfe67cb5f6cd44627750c79f54cd0e1272843b5d08dc1e192686ced88eb3617ade45516159b39c6aa65d197dd4758e3b290c17b9112c04c368ba01dced699d28de4d89395a49ee36e931cd3591d3db6f26fe300309ff6cc1d98e0d7f03f30a3b6b8832b77f31f951d89757f1d789b47a87715718f97089df9540beac7d7b05776e30451944bbe9de43bc7ec69ec984301a251e9adde7e83d5c9df050d063728c6f6bc2c76e8906eaa87ef040729cb00aed35830645c81d1a39a1e77bafa6d4f06b415e586c42b5aea4d8e6c6a2061ba0497f7c93a1df188b2d79abe9b7373d6f0f63bdef5edfe82b37a690fd51f0b044cd3192455979a768450f7679e86ea1756434fbe3fb8003f376d28e666fd4728378b316944cc7899b07a01449d53314532ca8fe04007f2c37a5807a53468a433d62aeb4c138ce3f9f33d3ed548e408e7ae0da25b5180a6773f0037422d7eeeb0b449733be27a6ea43f26d101b74fe47be2babbb8925df95e6de1498069be6d067f232443e11daf9b8ad0566c923f444fc7c6705a3fd8b77fbb2ab13b9a7492297d6a2274e4a3ba46efa965094dd4005b0d9a32510a6ac9c172f705c26dc81b702d47166bb8a930f16f19419dcba6ae187ef91d79fad465485aecf38a801b8866e51ea5ff1d93991c556de9d91867052b03ca4ae4552e6f0873f095209bf8bbcbc64dc90159b105be69d436b7095fea150d7fdeba96746178e6052105b11abe7795504b078eb8a647af1f5ad3d2186282ed2ae7886c40955b93448036412ca7dc49f2e562c5afe8694525711e7f6e49b2515e5a87c480479f514f4bae5119ac3dbcd730ab3c3f2f06d3fd81a0475bb1eafe456dbaea87d2cd880c96d34c348e4650cda3329f6a082cf8db220876cbc410d0afc945b0c059a3cdd28e094fb7de858a3aa75fe3f344fb018a121b26d14b970167ddeb9d1eb3ee53e32f14611c05d6641beaef94921315ca760135961f182d1747ab5f66933945e1147ba4e2dddce4bc0329f22ac00ada5d4d311125831a98561d21331e578ed42d0b894597be1172e7261decbe9ffe0a4420e2a031ad2143524c3ff272eff4646acc7eb60048e99c733c0bb7a0fc957995c8e6656183f0e0e1ae552dcd5fa7c8df4c9ec37180a6f4cac16366639fbe2395257629aba0715ac791be689d8560779014b8348d271aaa91073e5f1fd2bb0be908bb68991dd59443d23dec0dfab6e0b7cc659bc73dcab4f708c48aa53b8433e787f80cc8803eb18d6647fa629dee201e64e04be60d32f5dccaace5e1e2fe6742aa695c06d9839eb30121cf5f145bed70e3f191f26abcee01a6d3de849634a4466bdc57dac8e766b9fa66c57b8412df00d34f586fa9c3322a8847bbc0cdcdbc6eba26a3d88589474bd928aca477fb6a766fe375e224ee54d17297146593adb3677c7713342f05059c53154b67f97a4cb949f5911ea2dbe43adbccfd151ce69061693d51aa86f651d981f8a1221b8faf9fbb9dd923ab5fcb7ccc625a2984d59a644c50cfaebecfe76193f69b4e1b410a607418cf09e268fc4529cc8b809bddf0c594f25248d09cc3547aa87d08b330d4f783bdb17e238a17a481fcc1e1a38676ed2c8849ec96226bc24e085b66fcd15fe0b5923690e80a4cd198ac10c8c07af0688d77ce0125916fec05aacf2e792c73fd887ce36b007a650d4033cd1e3ddc5c74c2f9b68502c307790184ad1b7dd2ae3009b155f95253a480f832435e8472289ea454d3762c6551b07335137872c2feb4b824211b60cdbd077783fa8ee0eb49d506a37d77c4606c42d27d6c477d20d4ed89249ad3455d4fdf53fd4122a82e5114cf246dbff360e4427704a7569c26bb477c82731ed984a52e3368f7aab7df25a32c1932f4981a27d4e82e0b61830b238e97e7e601abed437de4a9a009148e865cfbc75a96b14315b1accfd252e1d661cab2818008e1841a5773fbca270756ccd2166318c553aacf82af9504134de4f3cde8992c14c0fada09364993e7de7fe42f8b54996ecff54e722b25fd51df037d4d3493ded04f6507c1aff93016a49e1e0a6e0da42cb4630a79c5aeaa61ee291ecdba09e1fe36a4039fa456781dafa4defa0ec2bb0b195cc0fbff9054fe4442404d111a7a8fe75f61523dc720347fa80816d1280a03c9415234996d4f41267688892b5031a1e344ad3245086bacbdadcf007185c6d95d9dddf94b900000000000000000000000000000000000000060c121a2224", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 47, + "comment": "signature that takes 27 iteration(s)", + "msg": "c302000000000000000000000000000000000000000000000000000000000000", + "sig": "2281ce37d3d0d0894dde142b097455d69e4ac08e358f921dd86fe71a294db8b2732912b1de60cecefc89483393815556dcccdb912938f8469aaa536861d8c3d315b8efa1204e9c7022dc44490ae1fd7e2e9d640b6d0ae8a3a3c01d6a5d0594a52229c8a7028c763f688d3f72e3af83d25a01cfd3b6a7fc31e34dfbba78ff78effec007555ebf96b4d9b14eefd1bd19c66360bcb1e5a77092f36e2d749eece8c89050003630fd0c558bcdea939a53e61ce80ee98842cdd8afbd8840356817731fef575cae80b3eb8678d9884ecc66846c625d1f2d617d51f1fc77fe8bffd994a483689f9f5f05132706308448a3342718d487604e5006d46058fd1fe9302410171f93c3293737e8db35aa27bc901cca074ce2e19c4dce9d029c36553cf92a1500612b7badea5cc4e20389eb01b854dd547850976df5e6d9f74a30c7ed51b2debf80e9e379cf2645d6afce7757c449ed673e12780e2cbec4aaf1732e093b255ebf8103bd41be041df5f0a18f13c8f14097e8f998dffeb55269d2c7f882588e942eba0da32a3a5a193f7d18921ea5c82d7751dd939a448c891fe500efa06632faa47309a8734fa2f700659b9db7037320c7c00ac9b68f1f7de71457289e9b8290d6a203c48c21437aef6adde8ab2cc43170e65f1704aff58af037d422d1519bb756beb6f3f4c0ec653865a354658f305a495d34f183b5e17bac2ad98bf5246b440dc86758aa047f02aed76fa5f27935b3bff953871cd3de843688b13514aedee789bc8ed44eacc66d5b8d6afb80890fbef7c6bd87efe597868eeff71b92820f353ef580ab5e57faf63a762581ef91f864c99dc34d7c2c8dce0ec103a61a443e0c6d78cb03788974ba6a2a261b31ba71f3db05c2c39fc8634fdcae6498c46fa37bca4072e1a0b2c67c01a30b89b944e6a7d2298504b1adf2a5cf00d02efb14b2dbdd1839c935a3620e1ab8dc1c2be6fd05a79af94943ef98b64a8c86e47e3903dc84b7ae6e84caa9b79f2996a015ce6a4e3d7274d43fa71526fdc4d9d9d364d05a2f7f732cbffc9f80a4e5268f9eb57206d380cdaf39b2d64a54295dd31a11ef2f2f4828f57ba6af8ab69271060e25a1d987231d6692bcd82247727a211804879219cc981c1ff6cde51bc630b698e767107fdea768ccd0efa2c1e307bcc32a6ae0483f94a0cabe09e01e2edcfd08445870150f2980d23bad7b5187b0a3eef6e6be018a09b67a1cea314e588c0c41ceaf53206859f1712bde6f2e8e7d30209225de2de928e4d42c34344388feea70b1da1da7b0951e0ca7acb239cf95510dbe0c3ac01187661f2ee604f86db26abaf8113358ec1fa976bfdc0917a28837f63a1d87b95bbffd2266fbd2c50cb6b568782049627731865c43d9a5b6f637927044a49bd7c99efebcc7a65e773aa8e846f4c793d4e9c193ecad8701e6cccb7045b81b3788f23b1b523286f2e6e4c570f2b6c99bbf14d5a79a0faa9ee55c60c4e23e06e8eefef6706babc9a2d0dd3b81c2c8056227d798c8a55de8a49af91f9bfcdeb8683a31e576ced44da0efe91d20f4d15b1c14cf148914b6ea366f676a97f60680e3fbecb29e34573da9d100aa525760eefbc96f9864ab360623ec1f41ac55750af455c0f24d463c2f8b249d49ee2fdaaa7f5c54c9650cf1e94de0e56f04ed2e1b0a02488a3d608f31e67919481d53ceacef129e92b3dd56b199ce2b7df00abc793d2ee82694490ed97df05365c6205e3c502ed9b8f712a9862eea823514fdf9d7b2fe4bdb9754f1675c5b453a4c2ca893d584a014615309d346823169f732fb4ca1c1cd84ac527ac560c9fef1a207c9f35a9f898a06601a5b910971a3319f6c29d0b39df7ffe09ef464a9dd924b86b641a0b66432aa964c94b608c8681667df08027ade6b013173956a73a6787c95a13fc753a7d4b2fc91206c864be82382cc1a1d4e4c87e0d1d9a113bbc39f377d3de28f63df010df89af0cc3ecf30546f2435adf22fa43166dc24f01f441d7d97c235c5dece7108e3601f878b1c46c2ffe75363bebcd293caef5c4b0eb88d88c1f340dc8ca4cbe5552d9136ca1e3d5d809cdec4c4150b86e75f02d0189565ed27b41efb8ba982256bb38ddd04e61b3b77405fc5e5cad0b0ad58a009b68cd7014fa45ce704b3fb295d2f52953871a6ee94fefa1967030f2ee1d031f826ea9102d1701136aa5c81641e2a6afef50624785c8c2467e76f0f903be8bbe2656fb92691cde368c3f9a6fa870f50d977b8b5592922a49c0ae14d82fea5af9b2f7176898869feecdc76b6efb0472a0c24c0e9a2a2970d74d8f9dd1568ddb1a9c7a835e33332236e5065d72bf4522d4b18c7b3d14295a5986928d7f74ca8b63dd79f6fd464c5e0cbd98ccddb1318eb9738f32ed2f1c3b4e929e145accf8502b8a4f3b8f20afec1fe4cef9438ddcfa55a505dbccac90914531f82d2aff47976b8ee1e20f127478447896b3fd2c1a35be09ca69ee75f9958e569b3f4951149d32de2918fbbd3d2b5896f50961d35fddf0517f597c8273fde3712c6127d35d640ea580802ab2b5709399df4ba0e2f2a5a06013dc6779373672febf0381a25cd2924ebb597b03a1fa0f22ac14d77a524c7ab5fea1ccfdc1d55f37252121dbb050555508f9d9fdf0ec12153a48b12f67b6c95ad844a199a623dbae872bd052ab47289a3b6ee103aaed7755accf08a38618ef4d4669ca931d0e14bb8e9ce77e54cb61ed64aba5300105a85cd303bcfeaf167663aceb81eba106ea896094060945906bf4dbe038826e1ad58d1ed44796fcc7a464faddf16a588626f658fe21a526988e78eb129dd0bb4b645b2cf85af83722b4385f535155a1a61af0e6cd5d009f37621b3393b67fd29a171204848cd66797dbd3e43c088c473c26f124f7359e09c75e55bac5b43a19542309acc4b0ccf961cec404635799ca8516b11c5ff7a6348dbf0742a1267abcc48235bb95835047c74cdb1d378351f283e07f48945c7807fb7820564ac2c207f3ecc66ba24188dfb22801dda9b75b308593ab2f96e86c4af563a2c355f7e153901529e580edd95b7ac8ab3e1211519f99a91dbec7873b23b18e776a2904af31fff2e8e100b13e777e5b17f8b35903f9c9558499a1f96a8b8c9f1ac5cfa676a194d86ccbf94eb02368b781c301ad6560210bb28b5173da3a447e8a850279e0b65c828dce1c8e7712973f8a08c4159a9e15364be3d2147896b1a1ae214826df8643b4e573f2af8e6302c2551989ec1c8943be72abd2be35c4ee70fcb99baba7ed4ba46016f24d490acd4bc987c2c434b1dbd8b39ad1dd2004fc7a174ea59fa2f2db6bccbfde2d208e6964b128773eb6eb6d1045df96035c250d56381d451c52503b1f66934d87d449179979e4dd50c6274c1bbfac72161627b288029c5eb70997caf11ad6fc3d46814b08aebe28f40dfb9cc85f4056821d9e159ec9c4dcb586fd8c0d8881566669a8a961e7b40e4b83d068fb80c270f42dcbca2df7bd6ce6890e9024de7bde7603432253c14a0d057ad528ca4f548012dafed4b3174d851e4d2e5c6c168c2417003755bc5a8a445f3d38659c715ab6ab977f1cd13fc9c6f39dd2070b1cee3124ffbfcdb98205a1a2b88ae3fb9f245579bcde9143960f0b897a478bdac9a481f1c53c678c64a84b0fa3240177894de0c4ccbc089f14bee70f762e2480ea9438cea2788e134f0ab1080e34f22a4fb2ddc9e7da057bf0c5614a175022f06b5d126938d97d98fec87c0a917e455b78f314ee56de3251692cc3c2d9b243aa149171a62bc7035e90044dfa0a190773fbd4b00fa7e24447dd5d5722369a74326f29d48c589a4f16c92dec9da8586b1d4af66c4bc0da57e2aae07d00f9c35f031be8256b2beda0bbf06fb22f3da317b4cf22d81e88c050de9a31de6da3ddac483c49c8bca2fe25b6eb87649e107dab2c9b061885ab2a4e62debaf453b683665e7c2e8f3fd5d22b1d4b780cdff2a26b31792f646968e726b9f4708418a60f3f57f9551b9cc7cc68bec0866a294edb9978375241345cbb6bf577268a906002f9600b7e845d36ffae2c7de9d018939006302edad2fa860a4f25cb4a90308d57572284f97a7050b8750b2e02c2f8a9ad5377909ad117082570c9a5da5f512503d78c60621d41964bd12f86c89ed9c74f586b50dacdc4e52b039ed6be06c568782d9049bbe992cc867894dda3f3cb593ee9fa376a3121005b562ce8c7940d4d48960bbd95f77299636e4f1bfa4ac40bab82bc4971778faa924b6039008169efaeeb1ce29d9e44813f22d44b18485ee0a216382d0c83b1b59e34b2dceb294f9ca6cc848e018c89291525be0920f827033b5d9857c3b12b6c6e65627c132c1dc2a5da893860f5ccdf9aa2dc2ce09c45d7d1d4ed55c130bf5400ab60683ed1de5db819d42a199788dadc80e328324f6852c6021eaebbda57e276650c4d06ab792ace94f5cb32b92c40ff5403efed4b94e008ba6dae1141ad079791a3570bfc4f6770fab3fa3d04836ff06ff4ca8127c68090c36810610d960d356568cec1e66ffedc01eaf875a49baa5e5be0ec01ef1849704cb09877a2a80c100ebe7a790545e268af2f1d70b1c22375996aeb4b6b9bc325e6f7ff5ff4d6166758b8f9a6378afe0ffd8063e3f505ab7edee00000000000000000000000000000000000b11181d1e26", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 48, + "comment": "signature that takes 28 iteration(s)", + "msg": "8f07000000000000000000000000000000000000000000000000000000000000", + "sig": "17d5c276a96ec04caa598377bb8110226ddf85feb0dac0f0d3a4bd5ca33fb40d8cd5d752d889fefa66c900bf6e909ac906516c9e813875e758663c7fd2636ad3fc89ccb7757c0eb799010367afa46a17e113b16d546a8f8ecbae132efc625e3bc6054e3c900a174b6d47b3965b3178d3b72b0472f37d172ad579de128e19575fafe7ea64ea116b63fbfb4d5b5fc956bfcb6928b8db0cc7c5a889285237fa7057b3423cc7f7b950f834f7e4a7b168ad00e841ee13d382462df9d5fdde517e759d16e48963f60f117502b74e97f680bcb4ae2c35af009d9bbdacb794edb131715470153a0eead1cfeac73f8c8cd157cccbb17cd1386f65c4fe09097567794e2d7e7eb3c358bd8b2375f8f9d0f32d28bf863599939ff8fab29401d6acadb1b90f2bf1d9bc26221c67e78472c7ca78efb2b4ea49dee8489c01abe9ee962277c34805c024de06414c4ed63370ec5090752a6fd19cc36a50d3f714ad58ee060bf67b6f4f988c35d5cb1155f702311eadc7fe25ec25adf929033679f5d0058a45dcb58e8b4079b374226e26003e5bc5f76eeea6fef86af3ae91f33c8c359e2a297a69a105817c7e67a6a00a4d8aa31fc848d8c4f274b3b5ea34a2817b515a2050ce80bcb0c21bdb81f0515ee05633d94feea1de19534ef33da85e5af0d4fb0e81e4088a981392f96f70dcfdf0d0b9d308c26120e8342f8b6107cd0bf3553554e4deff879ce152425e4eee9860025dc4ba9bb090971903a0db863c043dca4e8fe35e9a6b0bc26129e18b94935fe816fffca11357af56ac6c837f0af36da11e4b43f74a0ff2ed62f18fd5c02c7a064e649031c2d8f22d6dc1a1b94f39d3065447abfd9714462e137bb92b720091477ee1c1c1666f4b92d6a8b61c70d49200c86e8cd9de65b209a262cd0c6e6774810daa62b16054d6e18955e4a92d3015ffffc7584bd5829c040ace9011d5056bc914960ed785b2225aba0eb56346aec0d7bdb1a3c73d1e39c2a395fc874cc56648951a98549a04eb71d30e38a90d7e545fe92c82a7663b10f761eaa01e96edcb799fda895f9fe14c3d0ae4922f34a89908cbe60c107bf9d8055e050d08cdeaefdeca1688a7b26e2ba558650e90b24306e575d046e1f3ee2d9c3cf159bb20d711d26c92c11735a50f40184c97a2dacd02a1acc4abe4ca286e4c599b4d4b5674eac6cdd4e472559d59a13dde5d4feef9bc47d76875790c8036dc29448516be1cd56504e97acbee7cdc5273ed3700aa7f459e1c25efdec86402f181664e764866d8eba3adf852b83cf135ded54d0eca77527870650da0f2851bb4906320808d302feb7e0f9db7b8cac98a62a0cc7cb97e7f8a7ffbfc38a477a201719d70172e59e8ea89c482e61633f9a0a3cf672f6217479958aebeee3e6f06ee8ab9f5e9d0523272c5164f1f94a3711b3e681ed03c177a692819ee56da4059ceb171af119c3976b197f005fe8622e1b4415f358fb34a73215bfbaa53886ad84ff57ccf42b7d57847a26234235ba0b722b89f9963446d67dc719bf8de49f4dedd4c516dbc1e1d74bfdedd36479694a9acee7dcaa7df55f978d38da1d183bc9c0cfb049c9f7da0821be315b6118d3387734922723ba4919fb703cc2446bd4cf30c1825a8bbe7daf08219ac5c1a3f897cfd7f66e77de3d0a0b7b73f1166d770b9f7c0c6d41320994aeb526b6ddd4afa6dd10295dbbc5082dcd35e43ba91dc972f78665043228a14d75cb666e503158bfd4c668a29d358a5b2e03fa1cf5bf15aff4890813e52a2358ac79174273074c118b63cbd1ed85c8c3e9cc7ff5c1c9bc92b848bde3a7bbb74447d430490b6bcb86158120479a02b7ac3ca61a07d76dce2942b1fc09bb33972695c0172a66dd4fbabe80e333dca17aa5806eaad072f4b17300135ac118f943dbe9041d4701b424d1f88b27b8eec8308a5bd153f7949137deee238c833c57bfc12b87bbafac73e1505d0e92e873d53772f29c7c3a2e6ba4e11f825d631a9d1caa3e3f8985ced7f49235bb907c2074fc368b77bc90b6d1e4cb987088518e054f767127361d2faf1d5feb35cf9210a92a4e3ef144bcd45dff7e2c2757d472d1255549db29fdba7616f9f9c0c472c0f4349588f94e77f8f0cab52a50029b93c3f08473f512a27c319d45e9d6b52cfada0adf2dbba6db96b326c3594f16880913cc6c1b3be8f4953d95ae5096f03a4a1224135e2bfd4b5b429fe564405dbc2ddf004f36bf633e977887915a44105ad2652fc17c398fa2e7c0eba0f69fd98baccd64875dbd5f2fc660af49a5b50dc831f41890872722d7cdb906879e03ebcdd321a0e81478276733bc121016df6c9a3d1a574a9dcf6ca489f4c82058ed0002c367c92cf87712348b7c774baacf10c778db313dc5c83b3e0120ee369780827532a52431faf43b03585dccfe97ab204c33fb2b98c9531c95f6be5ec435b0a8aebd7ff4310bfa221be76283e7534679917199f616e0e05a49b382cd26a4baf0cb0e1053fc24bba4dfd2636680f750c9c69fb34481ba0f62d106937ae7959604ad554fb2ffe53fdb926ef5a589cc21e5adaaa7ceff3e2a8ea8606eeaa79a05c6d9fe2cc674eeeae2a13cc716720472b0459e8fba3f0d77d60ff3e48f08479deaa1c098547da855b59fa12338baab82ea960184b72da4adeda15666610164743db8701f2b6da9dedeb2a147cd1e4fa5125e8f72ef40f14c88f73fffedfb6ee327c8e20708dbc0e4eb8b7c969b11ef8ed3b63c55027773b228f08c3dcd2a24feb716bcef64b5d2d34302ad721f6cc236c6694756990addcbc0d6d35a6e9a9445de640ce02ce9f2b081f09774ae09fda994fdea5c63b7aaa37db7268c56e11898856e94768e47c18272285050a1c182979a63a573c17b747c5393b8ab21dd17849a00889c11bfe28c60d1d604fd716202949adf2bf49db903841f4ab64bbd7af3de775f66f219e40a6a61f5c2eef5377a196ad8c7837b4211b531aed7c9969125994d6ede189f872f24dde4b92eb13f027646ede13d35d02c58f5cc094ba76873c817367805e2169011760e22b8dcaa5755180cd99c7e8318ff61bcb7efd3ce0303ba669419937e0e41bb4bfa960d773a5b73282919dc9d70b3427942078e7bf1706a67ba52f047c8795437d28bdef9e78e95b3ed9545177db31920d138454238759cd45e7cdb9c4d6bbab70654e2a65e1056c2ed98d9c601e13a356ffd254231c867b81b0f9ade2affe15ee88744629eb79a5cdc5ee4e485d663bc72cc1faaa61c651cdd2e9632019a747d1b342b1f493a1395b82854f888393f4f75907b2af70defc62e5087f1f4899d30f4a97581f009caf78a29b20cf38eddc1cd80066b1727880bc936be866ee4a14c994790cffdc7dfd977d9af1c3dd23d5371b8dc6c2a3b043e8f92ac954e7839e1b1934ab04b5f51e8c650bdb4357c2309b657ab2b968430b903c363532c8ce386ea00ea8f8cf9614884ad42098a01a4c054853149a5013664f5bc69c3bf9c237eafb9e97629af355855936f56d0d943333dbfd401a89a8d3b0f6ee8a5c7916d887c73088c481ed8963c54517040846fbba24191a1ed20c09f2cb2a0032e1a68e4a922c2e1bfa51ab6e7326490953b7a5a1197597c7adbeed7b43d6329c9969bad56140b6fe5819e5915ebed1ebe120970639467ccb2c7dc5c290ad0693aeb6ba1a27a416b3e21801ee1f239cf179a9258e9c527b5e52103e7ed22f67789a030530a536d90cd8b6e08f389921779ab97fdb4129d07a3792e4e1a64528131c38463e6d576d554f87207406e1587d6cd30caa6a0de6a7f0254e334054cb9f39430ae1b2faf0641908c09f3ec50ed1ca74f3655457c96b1e29287ee075c219c82c9fd2ecfa53117c97fb46f8398dfd351cf035da70345999dd6b0ce4569ad448f6475f343433848e8bf886b45cf4166b63e1347a60a66e05d76b6489c4c1eb621e50ca52f1cc75a9f9304b6d546240b28c986883e2a0be4113f8d615b522ccc40569978572264d277636e82428af59ceb8c2b175b4d3dfb053cda248ee5ab5e44b51d6865271c9aeee589e2b2b68e16f91be8dea83a5144b24f5b410e48877ac7f1a734b45c5934589d2f5d5acab37638fe9a5c52004958be19b731c5d98a3339df150a80e2c6ae6ab1e6669065e9eab2d2b1b4e29edaa919ed1b1462f02b7da4e651fca499f6c114434e1775afd9d1c44c55ddfd5f7936687a8cd6fd2ae67daf6160749d146c5fd1eb7d73f9cbe8ba3d4f50f98da9e221d2d5284c8c258d12966f6faa422c3872021d71018839557d80c7d7bad4929af61bc195b34800c7a3a18a9935cbe648a383f4872e796b87b462fd585d14e8ff432777c798a431b56714e5ea4a44b1f049435d2e80e2d7e378c97f8c289449919eec2cc8f535fccd6f53379acd16b55db0bf7f4f42ddd3228430c3aa89d632e9fd76a9d71512537b3984f56b11618fbee1a79a5aec4256c4bd2d7b0fdbeba2263934dcb4319c850776fcbb0b9e1ddd9da387241b0d7a54eb16147d0be86ac55c35a5a2222827339f73ead716ade758ff346d3f981fc5e90bf2aae42cfdd059ee634467d09214239119ab494c0db85111333507996c4cee61423264662b6e2195a666f71c62d8c9b9fc7ecf6020858eb4998b3c2f000000000000000000000000000000000000910161d2126", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 49, + "comment": "signature that takes 29 iteration(s)", + "msg": "2001000000000000000000000000000000000000000000000000000000000000", + "sig": "d3ecc39ab0177953c2e5afefd2a75e55e7795e49c87a44706b7b4964bb9f9255f4b24b92e7401e86f5b79be5dfe9280112599526d7421d52c9d9d49626042b94ee4f2ad3295f4767936029b153c5859ad6c119b9f35504ec3fd0e002cdd67764aadec5e38b11d79d458cd290ede3372a41c7434f285fc4ee45599c02c85fa99b5e0b96fca57f07a494c621530be5ed69598c2adf48230caa2129c470052c9047ea0a622b15efa8c9cc5b1e8c6970b99fdd7281273dba1399a319428f79969fc0cf07785f22c6eda6e768ac8230e440c8bb05606a9cabebfd264d1316ffeb9d9574103a70ab3cae8f22e04c3bf97b5bd293ac496eebf9787269e430f4be6a7591ae1fae037f76b14af90046e6ee0edbd2314fa16ac3eb69d69d803492cb5769ec93fc197d2302fdd46391a724dd51c59229246deab0809ba4f1999c0fa2c85e462c4c26138a4a9f299bb25eca43657a7afe4a1e420faf756e3bfb77900da25bcc183bbef7413ead287cc539f03de4f56c2ffbef8312b5909b87977f16dc0e65245d4d1069e46bb7614034ad73acfcafd64226b692dcc03e695bbc78ece5b1a5926a346fe5e8aeb81a3841cfbe010c69c9b06a0b5b81f772f8ee7248572279d37e325e17e81ae2479de6702df4d4c376be417c859921c7bef00f9b22bf1c3f56c36ff9475eff8462102f79c75478697838b384b1c57f842780a9be46d3c4e6f7c38da187945d283049d8c0278f3237660e612f50eb73b389580f740f05382a732b94bc7f3189d6cfd2de2c6fdc6d7d57de3b897df45c44ec7ecf1d4cec370d87f4cde4ff470ec42df2ae0db86f172b146bfcc00b34d4672cd80b06e74c5b302a7e5fa7996d930cf821a22432f40ca9ee7f3b0799c87ee1c20ffee186c15e73d32fc4a3d77853b0c3caf44757369fb5956158315358269b3c93db934ad24e0bee4b323359e97ba982d78873189243a0eb5d7760fd842fa2c04d52f3ea45f99eff1c236d833bbc8ecd88604b7e33f8981fdcf2695069f10d8de32fedb94f58fb438dc9af842698d4651c74383b63e2d8925211e02601b8642d34090449ec8703040ad0e5dcbbdd46db0f9e2f29f590b6688070cb2c868d41d3ec67d7305ae6a0e39d9383df31e30aa8071e481c1133c8420b3e5a3d7a2681f490039717ecf088b219258c4449ac8fed4c40c805ff4b77d7c28d0b5a0c8cd2d19e2370142a4fda7eb0dfc9a84cee9e4c845e8643c8108cce254b716dc4b562fd2535712ff840415212bed1fd2417279ad11b743fe2895598dfa938656b7408e5b1497fafc13fd12b3fade0d40a0820f81c430cc50ad677bebbcdd74ce14682944b9e9024d681759b4793c246ccb7ca40d889015f752f73f66e60c61f5e0f459bacfc2c413b0c4cf63fc2b7bac814ad822ba4caef6d6b7fd216465efd0cc6cb4b1a20fe66157a8853975b1b2c271fcfedc2912d1535972fd00f4d37a5b08619e0abc563ec994cf36f5a89cc5ca6fb244d283599d42c6a21767442282a4d18e39e31604aafbe240e48fa1d7a89191120daf5df393a9b115e9867c336113c45742a90d1d4113c66891ea46871d822d95197f077e8438ddc7eae6c33dc4013562aecde7a0168f81afaa2ddbed3e2cbb4810859c2fd5a3495213b97d6e5aa7d9aaf6ec2118b6ae7c500ff3aa12e5469f2b58fdc9099eaf8ffbac111b49b913622289c81f6a690c4b3470a619ad960bcfcd1582fa9ed07b2b9c839c78f712573306a9ab454d7915315f1514053923dc53f7fd66cc142036e49f0bd58e708862cc263734ec967d5e4054c3be0369565dcab83c9fab99219aaf21a168e72584083fe2f46fc477902b7954dbae30b668db0507f29d4a64ac358d3366abd0b7a9e8ace99f9b0d16316ea74739dd47a010bd6ac51a9142122ab699181728ca1c381a941516066ef624c835ee0df7e4f202c4677417953775d5fb252bf8ba53ac17fe2f1af324a168959f81567da9e73c3bf6bda37d3d53d9b58efa392b9dd81c5827d5fcab7bb4ade73563a26d83c8a535ae23339820c153f0f79b1f9cbe2b16cda032cb7883d3ae368859ebe159c0be2ecb5b11859d27afbfab3df898a7b90efabdd58308ee3f099ece6f7fda1fae5cb6ed55111fd4d6cdd9015218d830162cbf03b5c4cac717de09dad6c0998b501a51cefb76c4b0199c58e2e316127aba37682de5c04dde16343a33e4e5ae3b6295793992467cff5e8e6132ce46e2af6747f60e4e91bcd7a143d1f42c8e9fd12c68221b067e7f8c4b1d0c30234657b7e4d64c2016148b84287258ebd1f1639bb8c517814fd9992fcca0c15633148d7ffc8c8531aa0bf43a23ccdc423878b58f71dc57fd617c185f62a51d57aa938b95a9fd85c4d2c7da5ddfdb83e14231a1800ccf9e755ec4ac01970cd94cb50681137a8f00da4938021120414caa08fe36bf3e32b7e660402cdc663e8cb4a9392e10c764024469f6fcc3b10779f0cf3d7beb160ca7638b949246e679d534316ee8d61dae3b321a37786ede9f94dde73f88d5e49aaa40121d0ee9b16e8e1c56aac332b2bf503816d6e22cf50d798e3fd4bdb003c5f162e61c887a0c3fcaa35140f3d718a220044f4c4c581db8ebb167b42c2c9ddae5ce89458a0ef92d7e741b1fcd295d49698eca399fd98089a0284c33f13e715eb19883c42af2b54995f17a5499340a20f38a109d218cd7bffeced7a1d16f3b2c4636e84d580cb8c1246ddcbaf1e7f5a52c5ea48ee90b46ff64f91b65379fae27d134b5b8e284237f96389ea2a94c2fda31abe211d02907dcffd8ab33f9a4badd34472bfb22c5afc67645f38da26ad169f699f76196f5e33087e15a38ec615ba6547b38a58ef56d81f84dac75528b5e70c88b2099715322771eea2d741c39047f5e460baca9ee95b2a19b2f5bfd988020f918e6b62e9cd405c95c473bc1b6e038ea2a07d997551488490a15e46f58f8d6fd239cd0991b6264e348e9f1c6cec3348eff7466e7e48e91aaeb9c645fc690f0a89bf8048f67a7d67967b42be31b9d53c5c92dcecf1e16c451564a2d9d7a34e3c1c7f17f71eb920aa8cf51cb609a4af0c5b6c44ad4e3ccb8346f7a86589d05be01ec908eae69ebfeee12d7d05c431c7ec7ccaa0498e899aabebca31230919861e881f948f085bd519407be92ce923ad6470853809bc4367d9ace4b0df2f43e208bd98ac18a77d8fba7fb16ed95ca128db6b52c12d33274f9d169d2f559545e40e3ec97c1a779f04ce772329a4fa09768b9681200ef3b999c6778ff606d6d2600c4651da56c6ed88d0b2ee4a1aeb7ec3cf60b3762ebcdd9111027d3bb2bd07dfdb01a9a551a338cdc3b1cf03ca36c36453eb60d66943953bbc2c10594911e6fba766020fa1ef62d7f2e1c59f7e208c1dbbdf4dc27c0a4495d299d8c84671bebe8e8647ec6a8acc6359380dd15c26d1c262371d9dcc0472202da4d8bbb828a48f3345b6939830f39fa3e570ddfd857f47f839af31fa152d97aa18092e685c6741efb93c04a31d91140140b0f34985a4a9ae4d960bb2e151a629247a79aeffb8ae91273f8860dd817c1760120a571da080f2eb41b4743ab714ca418b4645fdfbd755320d7eba610684648b3c9d25c0abc245fdb86397b1eb1ed4ffc280527e20a6cd7751cfe6aa05c836a4bfdda89ef9a98d947d316feae68be99a6e26819255cf1d20b6f5b8c2ed24df630b43d88da5e9dfa82e980f75f8e2e1033aef4831558e93bf89a103daaae10c963b85a0e2cfcdcf0787ee869cabf8c8ad45a9857fc8d6c467439ea0a0bad13b7989805b81c3c69716e74f78d8c45b105e589edd9f3b2df2b94d79caf99431b85c19f29e72e7593c61e93655109a289695bdb38fcbf48031894ac5e04519f101a7982e3c1b3bca79d49e387043255908e55d3e268da93e07c894251be04dc6ce639df29125d69e7bf6ec910e96b85c9608381e8c207ba05c33dd7b45b43bbd1c410983028498bb9d7a35e8df7e4567a6c5b497df1436a9cfbe0476fbdf72f4657593aaa11abef92c0fa8ceef1e47617abad895b32233376254ee97420970ab413ec4bbb5386b26df0dfe7851f0cdb2537c0a4e184b7b3097884c4ba7ebaa5c11fa56059cedec40f3d6cf982496566a6d29fca2b1de8efcd131889472948d020d45ffda51121d247611bb498f788adbc3b43d893eb37774c97956d438f902522ade3c18ac82ad9fba333cabd2368dc4c438d2479de45795413ebe3beb1ba61589287c55a6f5e07281d0160c0be7944b5209836b7c81dd88935c922fe9c9554f5ad6301d12c2fe3be54631c809ecf259924ec99c9dcc3bbe0be8d5f4846aacc352d56e882ef62a9645a46b0bb8dd2d5b4de64839cea783b86205b81ae419eabf66e5f70074f4ca5c12b946578fda9465008219781741e43c2ae047a2f0bfd54e37bdf22eebf5c1f7bc2cb8988c7d6a73cfc78eaec7dda51d6d7f6377f322f07e98243b71cbf2187c318b652feac32654b4476e9c2a5b07eb9aa7dd5593c867190ee9d896d549347b59619649f01ed617a01f35e847e9b29b3a3d503ef8d89039515d2622c6b1c0237da29b3648faa88d43008dbd466381102c31353b46cbe4effc4c7a87093cd0030f1886a6bad636396465789bc4cae7213643508185bfe00000000000000000000000000000000a0d10172028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 50, + "comment": "signature that takes 30 iteration(s)", + "msg": "4901000000000000000000000000000000000000000000000000000000000000", + "sig": "ae24fa5b2e13f7ee71d55906b8d83994bb96da7b88b98568987fa7ffe9a72544552d227e935844c7b1602ad91fa0e40ded2dd5ea2d25321eb4f96be7a9e167718259e901197df2d53efd428411a073346cc9e57a23c687adcf5864b001237d34c0de91cb319ad3cf698f11fd2ccde9a91aaf2891b30f0aeaa24529c84134076b014b410029cff5d4de892bd24affeedb4972670b12eb3ea3b06fd6c91ac1517515c3193bc2953fa5a9bfe173c5da8201da2fbe320d3fd2569520a16342a30da1d78181bef31a5aa53d2b8ec5460584082dc93751ee7ebeec1108cb60f5e7853e49e7db6055df2f7cfe35fce2a2f7de367dccfc980155ff080d2d7035679da1b7a83a4df8f2d0dc105650db1b981a744338c3512ee99abb78d278cc2678add260d9d68db7e2830c35dc8a32124bcd99c72309e47ec19d3d06507ed6eb8f7aca81a9839361a89c81d3f965627582652c97b00251533a3cb6cca24d492308faf7f685929ce463cec39ae77621644e8d1579fb3d208ef0e299d11523e4b631e011317f78c0ebc1bafc8c9b158168466158b1334fc6050a582ec806c8dd882f21ffee4c884dbcc5dab1d69c2efb45e4de6fead2f6f5ec9059e4b76b2356466dee3d8e0f2eae27a2eab778bacccac670e495ddc9a824f506c5a6c2a0a024f74530ef5ada75547d124a580572299c4705a24e263d2f90f1e9121726ec267c47cdaf31fbb0c5f0a4d98230fd3c4dfdb29ba2b6dcd7c12c9197f1520c1fdff81ce570e9b3c7693fa79b7154528e843443fbe1963ed6964a4703242498dda72da2d843e2295dc633b2d6755e4cc5154856b208e02184aec24cf05a00336e4d0ee4f640592c9b24777438eb9ae28b783c43ed5dd500e2eceacd2309c9f7356a4b276dbe89b69614fd749fb4181d5d6ee45d256b48a55c892d4df68f190ecde11b87fa650262048c99b00c3e894eb3587d8905f261e47489938c626fa611bcd6d28fc895bebd72059f912231404a56a238a3062f978ffb925ae0aa03ecf3be140f1bad2e4bddf3127bd8904186832181a00a8cbcf23c0b175544c1e45d9c3923317fe1bfb29d8c04c7f0a08e3f6b37da851ace7e9bd33392fc06fc49d262d1f8b4d80174d43f8b7196aa262bf0f8f25b42e13eb0e827096f2074830464765020a51b074853cb8ee88d229cf91d07a1c02de057564d3ee5125bb443f7b981b429688eee5ffb82c972c14d3b5237fbe4ac5611784223ce00f11fbe4636519f3ddda9893c87dc942eb30660c816444b1dd7228a40b907c9b3f1a46cc166a75dfdedd6c76e38c89cc1537e63cec449c44be2054be2bdb0df0169f7be37788f4cf8f9ec5110029aca9e32f76ffa2b68db9fd0480490f894e93a66bc9870a17c1b9ae0fd477db2197a3da06015ff9cc172f6b297b5c79a4e6943df6384a737f64caea0c5abd7a799ede4dd789bac30d7846b19ed32f9669de319d67e7e4a61bd233ac77e9da19696c9c4a791fdebbccd285dd4fc0bc3af634a9556650e4c730381075050ed834e036b25fa9125d262520dd095b7811c7f4b33c82171ceeaa664227502b0dfd3cead3593b2fe80002754e00c20c65c7454ab8869e014c3a635d9bacd6116b320f487bfac58b1d4620542ce4f9303217b7455a9a0b7f92f93334b2bbcc51928d04c77e2fe376fcce692d7c36d17316f3f85fa43c994a4b672a1ae2ad8555331132b35cfb313daff67aeb9fcfce5dc440bf87062b24f9001b857b735430826fe4bfeef055a7657269c352fce093270f1b1a7241ef8543ace867fb142c2c78c4a1fd9bd094d8810f3c5c93dc9841535aaaa573b50814df0815de79cc1ff7dbd3ae869f193da637ddc5ea4d8fc88555364d612c3c5ea0230df9f75732f8decd035a98d76aafb58b5ba98fd311561aebbb4f161b3b78a6f64000972e57684ee68c9af4f708f5126692ab09c23866bb6cce9130057a99901647de175734d830039f21cae68133e00f7c0c13baf9cc8b7b09281bc2902b4f1e5e17493554fe7a02964a2d020694bbd049250dbbae5f088b6127d2845741a75249e163e8107cad459b68b52818845a04dc373d475f25e236f72f4b8cf883f4a25e857241508469a2c424ebc06450bfa33dcd2c342e0c3d170a06e0c8ac7ef2f5efdbe57ebefe1782eae6a16c9119e767248abdf2a3fb02bc9419c0de7fb8be0b8dc07afc74074d8d44cf6adc0009ba73058602c2833f4d862579e8b6049a42de92cd76da08b3b8b8e442a832b0c89238e1ecd862f629c691c5ce627e0298574bab49373710d096fd06f12c1d131f134bd3c51c48abc06371a8c48ab907aeeef68c14eab063a6d99c9ec8ec6c860b97f43fe0fdfb95b91a4cc0757ab27ea22ee30d2a69704c7526377b66b9b2c139ba52a7b5b03971eddfce00d155a26ecc56093f6834726e86ab6eb460798ad3c6208483c413562b62c57591b44ebc3dc623f01ec7f622de28ce0025df34eb9f669ac95e0c76c0dabc8b084230ba2ef1f11b5db27f34e7755656be244bd72d1816f33992cd8268bc94ff8e9cee4ab0e34083e9ddfc4ee1c5f0e7a5a8a05a0b76863f4b637aacc8d1bbd87892ea844ab3368a176859eb48b2f6d3bd89c9f4276a5cc1924792fe3be2d1031f003107fbdbf737392c0ed2aa950b00e9ceb0bd4bcf2964708e17340e2d314f7cb912b9a4d2d45117030f81d6e3746fba9cf5886c94638f1a53f0ce891f0b88a33538a311a7da219814e450cfff5e76b4b872dc53a88f3441e12df39298d90cd4126987a56c1fcac0ae94457b1dc8d2ede35c5aee0009d28865f90a1a360d435ecf71d6d0f60a978a69e5fc75ee639d15b0338d4a39e12c09870caa4bfa89989ae7c0067d8d2e142d6457ae900218c524c074c9bee39f987f040968a57fbffd0fa7989feea3589d68f0bc281cc4f7dfc02441c631724e480c7fccff312bd4f3c3eebc3966780e2b719905994e7cb66283b313eac6702521a919994a1d1bd9616964388ce9a7f39527728c67c7ea0bab7f85bd13af7c4518f7c58fe963ae6e813880019f7f4d6813c74850385b8f6b9c0370728d248764855fb8281a5e5acab688d39b7f3e246dc111c3b83c187d676402163bfc63370dd1fb3f496e4617e6503f6524d8f6ef509e54893cf70333d6907f5a4f3404fac891bc6daeb12df9dd16713da93982a4d85d26c1b1ecf2f4615008b5177ef6877a980e1caa9e9b1d53db7c4b2547f6cfa4daa908b292d2f87c7780b48b9024487d27ae1172026a3cefdf92b8866dba1736355b972d663c376aae45558156e9ada92c6c7d091a036e78978626a679eeaba0216fa0eeefc1f60887ef9e80107f9fb46e76cd26dc7dea30ef1ba91dfc2fe431f7104df08e99ba84943917904e188ac3079186aa472b1571d3cc4de95a454eeda9b4592b9724c9b4cb768790474a716d47b7c46ef9bc486cf1b3231ba38d3dc58136b1c164aa9f4299ae99b3474cec84016e9b7b57419a6353cde8889a5f48de38bed8dead721c2ef3871accbb94b19c8c0112c4d2e7b2fb1cc92a144065251292119c74a0eecc47dd8b252a44f7668ef100a5b661967bd5e9d2dc386547a2c73005faf300b147b92140460bfb4c29219b411394b9e60e20d89fd02567bf3568938a93e8025e0c1c24db2614293c5ed62b3dc75c9eb6909578afd590aa11ded16ce367769fa3c20cb5e068fc6470819804f220e2008ffb516d27a7857d5e8a8785097701d056756e2141142204e13882ade1d97a0a575fc63152a39c44f2da987b027c2fbaf41745945974c87610cee657f76c9cdb086b9ad84b401739912ca96bbfe3877c17c74a333ff98e52be971300a095c740b5b093edc6ee473b0bdf0599656282becad7e114768236f1a2facdd2d1e085e88d375be393412fc14c646b9528d09def2b9a5ef44cd75d3356bc10f1eb4b5b135bf607d32a0741b7a77b03fe44b4a8f21d2b5190b01dd04961e2b3c599ba6c8e175116af78124b67085d5f075d54f1481728e60aa4a007f7124dbfb03225b880893fd7de61dd8d31953c988d5454f973a84c4bf56f0aeb7511cdf3c24bd715923da359afd11e3f4d92b0a17bd88e8ad22e19d0eca5014d8f16d0ebbd81a0dd75f32f2a7cda47b8fc03563d5cdf5917c2b4dda39490162dcbd37e87d9ad37d75369e02ed8daf73904ab802f9b41495c3cf3e22096921e23e6abc537462ef71cff0f365e2975f3a3a5836e5a09b27d72dc4b30f8c67f33092ef288e5eaa52f62ffdf8fe7130c8dd93f99c530c0323019830220d37fb3f716d62bea22914bf0114eb0d92b9f3a2a8f1764b61b2f89d40f1780c834161e5f41f75a46c338418e5738d23aa2e3dfbf580fa7147a42e6865d13a69eb6b79e0603d1176354367cbdb4adadb398b7239862d54403118ebc5569f0454ddd954a2553820b3cc2349eb234714cc618fcdd6399aa3836228256d418f80e96c26ad07f9035b7cbbe0de919c51cd5c8efa7338483bb4480d21a770200dc0802aac83753f882c8fb555bc01c3bdc09e3d5cc2c10dfb9337ae7ee9868e34cb671a0d4f31da52eaed9f6513b825467de5f2129b79b007524f402e3940556a6c97a5b9e125495173fe0b394a6898c337999ae10683ec151f3cb5e6000000000000000000000000000000000000000000000a0f15191c21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 51, + "comment": "signature that takes 31 iteration(s)", + "msg": "3308000000000000000000000000000000000000000000000000000000000000", + "sig": "5057aec74324b4d5dfa965882d49ba03badaabd76d7e56d1339d35893ad040fe52deb881e999796ac3ebfc749a6004b51ae140a6c0f3105c5b0824fc17d253931e48ead138217bb5fc3776f4695d4a6a34d387856372add58aec8ddd81442af399b0be2c79c2f4ac6fb0daa61bc48c1731cd818c9a421e6e61ba1228e9a66cb5d6e72cfd79dc144ba3a51849814df30c7f9434afb991d8f824d42c7c42a9c055211bd69816862e462ca4897e8661ef3a3147f362e0926fda48deaeb0e7062837c071b6f69b880f389ae55f2e4c80f4ef3bb116490035fde777663eba8a4c7e518b4721988539708bb714b1cd26da8702bce552a3b905113f3edbb6b77dac1427c0166a3fd46ec1c4ec3858c4b529145e1b9f053c1904d35f0a114cf547ceb588d5d8a5dad2880a18689e439603586ad119a04e03ddaa0188e6331dcabcd0dc223c469dc32e041ed18bbd1676c7f05b731b262a0c0a00e86753b20c9dd3d5af52c449b9c462626de5bc59cf018ace4ad9892e924f2c9af15f013710c31832609a819bf99b09b14663a9f4b0078335e81ab50696a65f8c151301cbb16bbdd3397eda0d11e5d56d62265e49a78a34e5e5bd9893fce108da77d7c17b50abd1f91fb9b7368084a8b2820eb7ffced530f7e4c78c20d1408e224ea17a19887f4ded7f7c4fad037a7f566013c082d633c3e62ce76599a294fef294f79334d7aafbb8f8b5bf3b9b58a82bdc0fe49c73f82ff86d87d9ecd2885476f9755e2c270bc01dfc8344828ccc3ceb88423e1d52285e60cc140bbe1b97cc9ea4017540e7078802207e94a037ddfdf0b681b433bfab0930fd1412c1b36ef643df0f3b3b00c05669dd77d37536c3f48a4e7889b365f19d2932e146f7c9702be9aa88f5310ad738a1699aab1f02f7a525f212bec566cc34a10d7c82e543efdad640e00f6a380ec319f1d48d8584ce5cd6cae835d23a099d91f0c42c0d27a14cabe283ba043401ac7dca1e8b42d8a8c37923ada7ce4bcbe0453055cf83a1ce54366a794e95f62e3f6141f3e0fb78eb181138b77c0474a0e300a7765603f35a2523b6618cbd08072ea8323af7a714d4ee6f64cda0ea157d52cae5775f9656aee2db5728369f9a0492428ae02efd457123f4d08d92a29a9d7943ed38b0387dfbec6dbc96732d29caa78ed8765947637c00fcc028d676d8a9981ca97fbb5f252e836e93aa8dd37000d43d047c57009bb88dec672b77d8df3dde4ac85b01773dc00a43c9fdf2cbeddc04ba3798ee18126b0c750c6d40ec0ac076b8dae0d5aa71b3e72a71603c82083267849b263251b86ff5fe1cca0ddc3747a353392a47ab6962c15e005b2578094f9f9a8097243dd15110068f941a11902d3148143cf65ed30fcbc172e7f016d629f60a584d9f4a0c539561714f1df67427331f3c8395f559afb56ecf7c5702fa34e923cf1da8280583fef6ba1570eee03dd7efd9b5add767169ca11a0eb538790afb05694b2719a9daca1bcc31de44d0d5946d1e1565d6a476373b42c9f05e01b9d39a921857ac666d190205744061960b94e59c805b0d840a140bb48817deb68e6654071e7b56696f30a27368c36377ec8be0e4088fd23623158ad7cca215c70b7dceceb220de0509bd3ff530e2e7bc1d3a9358ad13794a5fb2db6c73965915a193417cfb63f3cc53fd48d94d308f27efa2c2c096a14a1495244b437b4563a2eb65c7b906816d205e02a465b350dfb7b88403689c8930d5898f41a4268059b650237f60421607440a16ab8b0b1067fbe9460afd8878742a73914c6986ca5d45dc516665dfa4fa99d733865fea4cea28ebc12d50a4edb7c1b3cb2cd0dcd0fdc6acc6f7972dc6a8ba3b3c13d487c1c1f00883c2c1822fb58c684427b837d457e678a79c0de7e7308481721d9295dde258d2f06159c98e2f70a9be35713ecaa35286042d32e85b760fb79147f11c248790a2f274c09015d43fc33366d7d1ad713e2155600eaa5cabba497044ec99c17afa680f42410b928adaeb876bea66c1520bbce3da46ef8d3ebd6f9bbe40a4b643d1ac5c88cbdd26023b88757b2f6ca78c197ba0caf240050e6483fee64ad3dec7ad61f8f793e5687d9e7ef3bc554e69bb8f6d0ab7a51d3f5778ed262c6d32408d74879614d22963bff3fe484a83ed82a181242214c5a919f8e510064f095ec8882e18ded7dd4c3e76920200cf6079f56887fac3f06cd8c3b70ea053164b912fc6f6ec347b78e6cc3516a89dbe136350ccfc55204ca112b2873359ccb8d30e748f36dc4e9e2ab85d1eb31df27f0297a6c7114915183cb106154c7ed467dcfb0ec709271cb8b64b430139cfe732f9ba697fc5833063039a5d5a2ef59d3173447510e0f59a23be4ebc341356f2205822f0a66d65b7e0416e354d1dda7f75afb864fbbea967461f69c0fb8ea80262f423bdfef3f18c1fbda0c042fd5f4bc7c0b5d2f7618bc2be24ec820d8986a6e7c345f22ef2832797e5aefdcaa07be9f31bdd35d282eaf46d796c29b1e1c34ad11e02f89403ab899c49721be2a5e4a0708abee762150069c2dcee161204cb5bd680d6cfb340680e49f79538b5fab63ee0272fcc33379dc778581eb9b5aa9b72624eb8bb28697d6ad8f16ebb6c29aaae800f9f8063d8885f3f8293c40cddc975c005fdc67a9b79e6bdf7fef1b30e3a0c3ab51cac4ffb15d320acb9a969165fc8d9cc4c9fdff4423b9582c2ba54fd73069f1e59a3ef11f01d57e55825f87346b74cf5afd20b5569a3cfe8182d891612613374053557db3d7a8c421ce649e449f7b0a6ca7ac11459694db5ca15625181aacd2184ac1c090fe583fe7607339bdbd5deff4b4c1b82b0b2832a5368901234a627a63a67a47069b78f45f6c783ce2f782082406216411c942b9f455eb081035b70c54a13f28df53c00de9c433204c61471e021d6a589ed522445007250bc398b16548b58e54b03be61caca4bce6ccb51a9cb4c553f0b099a568ca49d93860ee94de1af05bfadd7985ba8f19443f6594de33670b7711ecc838269cc918d5ec2a5509e27682956c949224c1ffc059c22ab0abfecabae3fe954660b32fd3e3c0bd83ba0e934f78bbeb35c3ee95525aeb4f62b0ebdf70cff985feb0de983ad2a52d03d7de00caa70a7ff535339957bf7bbd09a405ce6ede82455e5ca132bb3fd473db1dd087a047281ea9c27d3c98b18cc99893ce570aacc16e4c8d84eca7197390210469d309982c2e58cfc4c3c41b0c498c02949ee8e5dccb49c1317f014f5af0acf4710631fb3e85cbf126dee44c355fb9cb1e8a0f794a4e63c0841be9ab8948224490044c4e08be105c296182e3ea14e34ad132f1be8ba30468ef364999fcd1f4afe2c424e193de17181989dc2ad074971b19f8bed0657a3e18d7329525e07778ba620d8592a5ca184757e65a28cdcc5ae975ab44f8b0b4ffe6b3e85f1194a64a053e5b5eeac4b87eb848e78b0a9a10c955a37a719160a46d52e237cbf5fcd56814fbd753941a85e20e1ae3f1252682bdbffbed04a11e3ec1d0383a6f5055b2c09dfa16f5b3bd6895a9c4cf31d8c2ea76ec5039f9f8fd1c2becc3a0f69aad095f0a1cbb7800d4b57a7546363cc0a032599c4fdc50223615503b13d7e115b1bf7e3c6bc0a2d4aadd54489327961344ba4c0f933267eba87e0bbc688cbb2aa20bd04cdbafe46d5be7405ce029d53f3c376a3225e4755195c46e25c5a63c953172c1240aa4dcf2629e00e9c6c94005dce93f8810a32df75d3a67314b1126a647bea0b3059ec7f0f4a3b31f83a16b01a31a44eea403ccaa9850622ed3b6e3b41122410a08de696749b728e12e7e106263164ca1006fd3624e48dd9b796e235bcfd240d651a5a6317506b682203fdb124480e135e9791521b61880bfad227292e2052e1660bf342995ef3ab701bc64fd575eb3c3872d8cce94356caa6301ed6091fca973889151580f11c095efe49485771e6008f3e15864f2d5c0ce96e73c432259e12ee4591179ae285457a7bfb598187fea7b08468ee34237e4dd6be18c759fd3d262bf792efc5fd00c2f93ab40ff228fefd3d10d147690bc9fe0f8153cef46624f123954bfc5ec6d91614a7eac99b9628ece91e6f116dae000353a3736339d49e00ffc66a912970d7845d437376a405ec9091893ef9e025cbfd8919cec5e5e9c8ae227fbce880d3563330d32f4cfe43e62cfb8a471eca1faae3a7b1bd40f719668e249bfc2c2b58940f6f73c8985da43b0f6b41d54809913ca8f8a8a60ebe8b09c5e2e089a3c8e1de99f8ce434abb2fb4c2529deef8295f691bc36434b36792d6912e1f4e1b728414e77440b71529bfe5430e4a38b292dd2532d6e614a7da61533062e8ff84382993a8d3764f654e90740101c08e185af2dda68d0d348841041eabfdbc9ac165385b39a03d7ef359ef9c8db393f46c5e8ddb93f9e961478c353085ede0738b09ad0a4f77e094d8e873455be5225ac4a365a0e3a943d308a208da56bfd3d5fcd439b8e73a466dc366e56d4f6e7e963d0d3bba23fb3319f6826dd6dd6a44dbb5895e707a395f646c2e02a6b8432b201211761b6c6021bfe2fef8e3254e7009fac6287be9051b2162c1c3d1db05143245489496e228ea243952790a83849ba7cbdce1e8081456bac5d50000000000000000000000000000000000000000060e10141d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 52, + "comment": "signature that takes 32 iteration(s)", + "msg": "9721000000000000000000000000000000000000000000000000000000000000", + "sig": "4cef6107c57d1e2a3389a755019b029002ffc1fff9d4722f8f92e9ba921dafcb20b0604257cde0e315568622d1a665746b446a8df7d8fcdebc10b02ad687d912a944761e54f05cfc113c064191b759cd8f3d0ffdd523644123542aeaad7645711119b746ad421521296aaffdbfbe3822ea3d715a4a276ca0402803a71cf4ca6c795ba336b5ef3a093167322dbd3167502444027b8b449e12ff1dcc8e9eda0b22da66ad89b01c86de493084488e126873be44c43e4cc7972ea78d524fc556b37717bf768bf0fc7374ae56332d955988ef2d57265e43768ef2ae3ff64a70037cacac2f1af03119efe45014f45e070baba1dc5f73e7733c958a3042c743af9215ae7ba3a6284626b724249033300cbb7092e4513d14a8b19b168fd3d29bf461ccd51ab581c0617b64e46d901724238d9ea556caca19d56d83a2cdb43a0db469839cb1ccd1afc705061d2e15b798569bfcafd135b51e21119ba22f4c69b205751b177354ec3c6547ca89d86a95cf1e0b4139a001cbcc5274f4eb19eee0c6b2ee749e940ac72969845563e3ed21d350f7df7d33d969738643983acb6aea290aa6b79ede572503d57a4267d97d2ca92ef2d17b104093b1242c53ed0d966ce4100fe53d7a36f14ee6335a9b85202baae912d9ed7e3f153a0292708fd3c7922ec2b43e4801243ee4a65b875683f85a071c86df08b2a999e258de58534c29722b912a78f515c353caf170b2e1eedf52910b857aa751114b7f26a3cf9122a814a6ec65f0347511eeef5094e575b0c51a90e27ed8c58b36674323964eb9725c550eff91d8ee79ece3fdec6cf9829a6f2bba5ddf9958f1c3f2932aa2a888d81953e74111cfa6600c10022e3b7a420136731ad638d26afec4d1df60bc255f45811f6686f8c81c8de97d541f4a38b6f495aca0a760f3cadd06d72a6476c02a8f61f92049ea6a5b5caf6294e308dc675b47dbe294ea8ce599856d19dcf0ea61b3f930e3fae682d8a324c0022f4b904b092bcbc0279b146cd63b827a5efeaee969b91b5158a2d0cd41266c94b873ce7e243850257e5abda0e37c4571f0b28a92d043cbe92a220170c6de589d0ed0e75ed1b288dbad8c7069f8bd3e4151c0d5bf90e9ae55e2a2b9e46898a301c0823ec14a201da94e9c0995592770622687f1a477511563dc9cf9500968e12c5b9b9584f179694a68055eb5309a01110fd8076c96cb6d57f0e228e1afd0cc8776978bc426401aa1fac458b8f3e1f2bbec589b653469a6589527e89664dd015497b669351dcea19115f55f0814a4c68f4a3c22dcdaf0d10eab6e884c6000f86ba0d8a453f773a16e2e50e85c69f501f29e1a4d8cd4b183efa68df94b98d47923dd8b2315e953465b0f65f3ad3c1d61e6bbeb34177efb27ce59c356873ec150c5d1883d0eb69c26e24a789aa0450af814faeb6dfc46d3b0309eff2d7c6d479832bfa6f9c34e5d5df4861865e64b5b03e211bccf9f72be75ec32e4140bc81dcb69f4de50d8a24896f749c356418d4270f5161328574f25650da41035a8cada3d9b630e103477977e5bb69382201fe6612b3244452a00a68e9b66b2a532d5abb29c0412f3a76e0d3fc0ba868a237c9ca392216efdd77478c49197e963660d57b96263ac47ef7ce463d715aa098ea2533cfb6bdafd984259f6143fba4f59bfe95653fa3ae232fbfd764a3792748365f5512f945d44b014f0c2b33911b36a60306f087c88afb57cf0dffbb8d80bfae7a44ea3e3ffac7e1bfc614b4a7b345c456d7c52a359bfa4bb5499c044c91bc6ac38f6ac2a39e80aebeced421ebe402782edc887da588be58815c71ae9e8d3b1644383fc15e8bd33b729611a93c40fa832bcd803913f590ce0f3bc8d3cf95a7574cb5f2a2c7368f69421153a310e776390c9535d16be57896f6e0ac8ef8acfb64c67267e246df87f55b50670dd3463e6a9b6aae11679c11dbfd3d6edda9aedf6557653ec89641d336b0b8f594a1f8dc284230200ae677092e9e7a6d129ef63997517c5a1388637eb81b134268a1be1d5dabafb6e9ac897894aae6d1720a1f44aceb2cd9749a13b7df3ffe4e06e23f7f478e6ed7e6563355fd22a52543812ab4201f9d15fb88c5a70926e2d867cfdc8bd6f4971a2b51656be33785a7fd78712e60f7b097aa88b294b1089cf01c8f7b958aed1933c983f7af824f202fbb88951de232ca81c7629bb4281a057fab0de81fc1d46b8ada37956438ee7fd8e13f1938bc237b672e0faf93e22c36bdc7cd192c6b607b43f866c3686cf532eabce500a9931e54bdb4e399b9f0b29301dcbe0eb16638486b7f96b766fb008a7b62f1c57ef8e0f5ab59c10ab055357e9e0111147ae6d1ca03ba503613c04180adffcdbb58cf5ff7ff726744bcc65df37a3f9c847b93e14c9f0dd912dad27d442406871fcda4471e8f21dc55b63b0fc702883467a0969ff3aa2010a72a111062701622f64567ad9f8a4f3e91dab436ba552ef2e42d930a71db205de921b1818ed137615ea39d16d8ad4817eb02e79e05fcff24aefa1a10e60a939c0a8235fc27846dd032f95679f9b987acd81a6f285d7e7664d88db73b2d1ae931d82e38134f2b770cb2f834e247371595f3ff78e420f281676399a293c080c7801447a4be951eca051b1858f99decc572baaadda8c1b67e5cfc9aa4e44abd48d2f3144ef92fd1ffe13dad9ce1d4f127c98119e211ca331496edd7b08bedf3c48d225409c9e66e2cc68b6ba2ee75f2dca3eea8f7af51a4bc99d4875fdc3991b300909433f4b261d36bb150faef340aaab774996ae1c6bfde7ac536fcf1df188f2125325922d0412c0d52a77a5ea47dcb9f898981a8f588440944b36ab2195b1afe613754b0e819a5962b148af4b1068ec9761224864776ccc8a7d54dc866fd2f9462273b745a9f6cb5af6a373c7a2067e42f2bf6219640cd11b04a37488a8ce616aaf23aa84968b59385d443e1a77e25e22ed199f0dba993886ef4a572d34484b965f31f76cd90a363ca95a75d175ae78b83c7f72d039aaa5e560e2ea9d0c9f29259ba6c06d7be2877db31cd9641b5ab67eb400c17e04bbda482e923263e668ffdfa92a84ea7ad18675a1e3bef85f1b9105d9fb496301bb1cd47e40c2efaf3f9fa737506d75342c400e74f1e9e6f8b1f60bbaa37e8b32a84f93efb535fb69b7746883ffde4e966410b048d4ecaa660dde811a0b3ec93fd2411e13f1643f756a4891f15a64785b0ed44a7a18154ee7d1d4cebfb41038cc64e9ff7992c9498a35e521d8e38a01f77f2103dac97504b28dad00bf4704d768ebd1c5bfcd434d6dcdb896fd28184c452420ef9bace73885ec8a87ee8e4da935ea42536e10917960784d436fca233d91b2da3cc121f89c7321d765c2b0e1efa88e9899d2e16c1c2958fc6318702f93c27c2b18ab78f65e70fd856f713088e11985c7a179119736bd14e6fa4a5322867ade8c2777130a67c74d763f508eb706ebe1fa0ca45fa80a8d73415dddc9a94d5d7459643f899e6e6b3f204bc79d7e66aa067ddbc7f70aee71a5772349d9e2086e0faf6e68f44863d7ed4c911cd3b73251f2760fbf0e672b4b933ed64bd6b4e0117db7eeb0cfabcb292232bddccc05aa9141ad70611b88fb4d35c3cb83aee710a84a3a7587122c0d2ff622fd7f663b3521616ed143da185556a005d2ab24f7d6af16acd759b3a188548414941fa2ebcb9047ef1e01840cc33a9c666948921baa8a772fbd582a538d6bea5a8b0408ba7e9db25e6ac1a2b19d5dbe479bfb4407de495d1c7cd818c58cc9ea5ed563b4f6e833f8a08e81c9d3f6a6262230aaf6d7ad0e96c5fe394780666313c10b2db729455d61f4e962b15cd524a38711f4eada4acc78daa59490c3c0c36f76039935b135128d6990fffc19f47b164fad639e6fc65921fbd4e491dc32fe11eff24ec5cd25a321b2af69ac8208fb712335c081d09bb05a587d95a7bf66b97a1f2dd8f5861f0575e0d156f7e1c3d59a0012b3dac27c84590bf8058dd3617437577a333875a2e1f0439038b469334d3f9457333e981ff9dc9273d5383e8f05249eba7b0d60b89eee427a057449802c5deaa90012d4b92e50846ee923c90b36de7f4b51aefc122e744e11b4cac695841c430710a5f261842f078284f68e49203f47f0a1805b13999b3b5a169b0ae792b33785f14a25f1158ac702ef5701aaecc7e8952ed4c7b39a10985cbf3e948084e61380e0cdedcba71a5c7065a864c412f486f510fa6f8c97c9a2946fb031e48e8be985508df9293956e7523b2a0bfbfc5564e082a94ff85e395aba4c3513fc1f55257ffd581fdc7f05dc4f014fd92c450c3422784e6a906cdc1fec67edc40688dcf1f7e77314c914a2a696112dea20296c73b3ba665d9ef39411cba46c2b66aa861f7e4dd05a3135c12801bdd4745d847d8947829fc99df415a2385b7e012dd6a5e53fde708fa552e418023735f830301813a3d7afe2567d3cdfbe790e318c9670e32b6b2d4406f1f1b03c57074add69f594e8ae8b0d7204041c309b2e52b58f82928d6bd4ec655c7df9ad79e8046d3b558decc148e89b02cf1d189a4f18171c948d974e8d14ffc83de76c334d001e3dc7de40bcf4f7fcfd191e447c8d95d80d39424a8598a5ad4f90b7ec2a515c859bbe00000000000000000000000000000000000000050b121a1e24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 53, + "comment": "signature that takes 33 iteration(s)", + "msg": "b504000000000000000000000000000000000000000000000000000000000000", + "sig": "2aa38484627db138769301dfd9a5286975f4869810ad211d9055bee7e25029f41460d92e9b4c68b185d8033d360c0f2a5c9f0004e4d043c368ac22d395422e3d5ba1a4a2f219e38f1b300539a11481d086d93bd4ddfa8531acfeb8d418593c4142f624b881b44d306f0cc355573d25105118d6b9affc066c8910f2889f9fa45a87ef7fb5cb6aa508c4f5ad21d04742c110824a48569a1042a66a4f21723b046461c8c6b382e112c825af25a24bb26d7d874a6715dc338af7e3d4a07c27d5ce243536538ffbe6481e3542a5ac218c536c60ff0954dd5db6551c80abe9d22fd56a1486e6ceccb54ca7993d44ee52444d4876c247014bf459fef5e4b68640e6a20c5bd7ab5e11dd8a1f5527a087b97f57e9935c0ab742f399ba2eb9e7bf255d8d4f7ed820fcf5de363915d23b9d292d7a08e5cf5092516caaccfda5d4cb9ac906d10287bed5a13fc2df0b167e5bcd37768d33665c6adacb8157d9c385cc76fb9ffc53babbe3789a698d8a73fa5e110c1d87aeebfd839e2bff061d37c749c5aeee8bc63441e6ca79e1dc055fd8d789ad729dc475bb94729997e97ff08a1f1708d93612d402a64de159c26175c271d4d77114ed9176c5b9ce4234916e63cc856d9436186b137f7f7aacd7a367af9d28823d46d42add2c2dd975d23d31083424c141207a195b4212ea7bfb6da8eda7f69027552efe7ad4952ba49ac38115d93b4dfc2dbe173eef47934204f50ad850bdaa6fce06b517340b2562e468697fb84074626cb263d03a0b62a7b497ee9462c859b1d7894a543d1e261971751d325819dc071682c8f00f62153bec73cddbd5ec21f6824d4eca53dae13eb9af6c448d8d75c6d676ab18ba64836c3ecc7c20c79836a53379e809d87abc2f04f0413d10176ddb27f72936beb4d14cac5b0e684e6dfaf529b80f9b68121bfac15c8e60cae44292e8a8e0c32ebf066e708aefe5c3aa4fb4bbd7215380cedf0b19fafa11fc37c534f5c3c14cf6d28f9f624008355c1ec110159009690ec648d6ec11fc6de44831c620dec4331c900032bce86eb4ec44725667c15cc78a71f0baedb5ddc251215aa64c527a8dd8b30ed4931047b19b725d9f205a7943614850f9a619a805ba004d272d5206900846259d02c06153a0e2c109741acfb459816a7f8ec101a5e9c38b7ef9b8add48b68f7410db4359ce23cbf62507d584763744e44f95fe2233e76f32d13e660ea5d4b203bb908207ee9c621bebcbef9ad30666fb306e8ff894b2837464d3ce91caa82227d8666a3e2a9e6017f62b1ad65bdc5ec5a4c76f414ed2a15b0da2456694061ffb3296186a0ce18e366e5c5dc8b832e5bc74ff775f4d496802b600b39e5b7b531131709212980f4aef9bdeaadababd7300f75018bb60f48a9fae84f5e694f0ec6c74d3f34a77e358dc7c4f26536eb2f76adefd14e9f8822a85b1b579611975035fab27eb387602a3b4a858b17c8729bec1845b67d0725b38ecec057b0083cac04d4e075d848de5243801417dacc3ed83f89e63ba90dea0e724ba394fcf9226b50b6cb6e6017c0cc0526d7942cf5260efb79aa918c67e9c116c4183eb8068e94f25647923658825763acf820c56deef853bcd33a0c12ffebec84115e17f675b9b25dcfdd6cbf0c0e3a1feeb7c387d059b138665f70fa762a42fa3d9d360d3063b86e43f67e54c1011283238cddbf4d054d9126416b8d4c9116f8635e8cd19c2f202c90ea4470d91bd737b8032d4adcec9c98983f789c97852c2a60221a78b41e3ca75446f2e1912dadbe04b2304291353e32e73e1ee66e698a9395c0c93214a2865661dcca210b6d48972fe80368706e041eafaf9f7a96810e395f72c2ff9aa7e5d5ef845907184f224ba37b4c186c248da8bfe403df87472107da32ec0c0ee10ec6c867341ef62205d879cbb9ded18dc5d978ba96882b5a8ae2df769eec25540a431059a52176cee356a6e3c173c4ae79c3694b1af60ee164408e12ca1131d3475eb5467c7a95f8a794589e13548cd8b11c126244008c9424226929a6086879dd5a4bda4a82f0adc2d03d239fb99034f497851c204dc08961782fa41449ebd588d27b4d7da94cf8019ba42286987bc9d8cf0677ef6c45f0ff79dd41c3895912300b70587f7dd4080a65e81f5d12b0ada473bb597149e667e43804526fed0c9b75ee2f9f09ff32e87040e145ef779c9aba90f13f94c514f6aabe7690d51b6835f3e405a613c8a1e0a657cc259862ccc5a41a514c9ad0baccce1b8142de115994847b98f20ef8fea606a85c770a9d49cb1d37fb701119e6515307b62714d385f3854d5e0b16f3b062afd35586d71b5baed356e14a43e77e0993b8d30084d402bc8f569c5b837cf2c25e6869d2183daaa7553436cf48599cbe24337eaef1b44a8695d5a990241255579c564bff1399258090aad8525e0e5e75f734d15c8331415fe48d776f8d50efdb10aa72252dc43ecc13ca6322fa06d750cc9b817c879a2bd545ebce4b9ef00f2c1cde4d4c7b38a3c865026af1d108f66bb235b07935045d9e86abb228f99b94d82dfa098e680ba7af3e69a2e7ff1f2454f6d8f2165d7a05744e0ee3bcbb320a8b44b9219fb0d81a2127f112eb8d32c20a4e365f2037815781a0eec8d7d87b665bbe3d4c5df6aa798fd3c66d74330c78551d96a237e7125f79f9372b12828c40f7cd9d1ed7039635ed18ca5fa353a878913c9b2cfac7c9d774535cd6320efd7c1e6f2301ae3ebb3aba0d83e46a80a176109078cd101609898f41494da47a366d16848f3aeb61c6663195e1d744e18d284e38e8e303395a3aa6e11e55aac90f011f90a7717febafa8f5be44d033f3f3878877823a10b6e9721afc120f1ec60dca8df125c3c4d052e1afa6a921b66d4e2d00618a2bfba3e7e4fb3c15518ec5bef7589d2368a10af77394236c7061ccffc21ad67af1c9ea74d82a2820b11cca55a156927a677fbf57649b735d2af79ba93f3883f59aa403be37cb84c6b00c4fcd7f28414b665d77f093f4d6c0e7bc5629473ea1c31afe2c1d1a2bdc6459c92d4539d424436113f630059b9d90082ff9b3629e4c13149d6cd92a78a5defc5846f03ceeab92c88a53dcd5f019ac69aefa553ad4b4be71b08fcb7fce4c6dedcf046a09a7d3e1d31ab3afa543026dad8ca9412294004edcd16ae39c18144abdada4acf209a023811f5e60e5357a18c242691f990045652ef63bf86dd8d7f5d05f4f46b4276f580d1170acfec3ecf5426612938e37e65319854a9e0931e0981da00dca67e8fbcde6b94dc54b30dad04f27022aea635983ec8017cf389d482ee6c104c06ef7cf9273a9902c13c4a3f79f88d85088cfcb32396105d62f2308fa419ef1f29283ffe1becde3a2ca28e4b14532cf581d91c311beb4b41a9a9c55ae753e2e28d222d0b36b4c290a6f1b846cee14f03ffa91f3d743fcbf37d5993241ac2efb030e2652622e65be238cfd7e4a0b5e3e40e25e6eb5601120253a08be5eebd20f08af1dea872dc41b305aec03272561f0745aaee1c1b069acc0e61b16f4effccddb0086154ed66b98f15ad58975c4604ddd96e2fdfa674fe53c5d226d376081ae0bd2283f7106558a54e613900a569e799c98e4ec2f024c0d2b15cbc14bc96bfc6094560ec6c4cd9b9f879e3fe74a70c0d3ddba82f055780be7db1ce650cefb313618a2a5336d9b1168fc605518f53708afd062bfeb9a7f66338115e3213e8f4e90864e10b4b3a8eaed966f99240c23a7ad527892b3a25e1a3d656e724b84c46484ed9c0c2624ce62c46646b13003e3eb2c8ac1e1e307f40a3092d96e13463ec1bd75d62b679f4bd1a9e4967323f16c85ed92066b283b12f49fe50423359f7db6c0df64e04568d470c480681e6c6df4fab81d896e13735f3a1a18d26aef3e436c86308a4c184b709a4918670b870502d30d44861d360a88e4bb8a693659208c2c82da46a25dfdfbdc81e7c0a5addcba03d2872b8c24ab2e1761e2ae10a67dbd724fc4652be47650ec912819b70a4d628c4c16f630d24bc5811ae66fc1afa55234d5fb83271d5f8eec99fe398acf3275de23bc002a7652bf60c293e7c04fa6e10795c00e43743050f138b5422d4c09030dd12835a4556ae423406cda8b4936ee4e039324963a1fbe8768798c384f237f7b8d23cdc75aefc035c0ce65fbd9f8eeccf126f37352d9c75a40e157eadadd12b64b582bbaeea63b50b20ec88098e54623bcb373c63eac44a290a7ff8841a417c17bda385992e3f5b952951884273ff45b94067a819efe5cd90c7ddf935c3636ee486c98f67be2eef9ba4cb10c701b308861720f54c3017357e9aaca6bb5fd826cb39b8e0d908171963bd068a589860fcdabd8bae591d4fc6a6cb8bdca9a0380b3c70e49af9819f07100dceee2174331053b4878e41fe06782b5421ff93b7051deb43a61bd5608a881423940222f2cc2bf795721472b2fd714ca7a59373fe0e1c3c9dd5dfb97e345a250f63def1732f19085a5d1f50bd6dd7d26b22bd68aa239450d21d97e85929745896d3adce416c9aa28db0c3bf104a246f70ec5e24a11c3618280cab7bc6faedfca29eeb92c9ce708538f796469966ed1d5eff70e274d5f747bc5dd6d8a99c52035666d80a4bce2fb525b6b7eabce0c1c486e82f50000000000000000000000000000000000050d111a2026", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 54, + "comment": "signature that takes 34 iteration(s)", + "msg": "b502000000000000000000000000000000000000000000000000000000000000", + "sig": "fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 55, + "comment": "signature that takes 37 iteration(s)", + "msg": "d20c000000000000000000000000000000000000000000000000000000000000", + "sig": "1f46df1c64f499ad5738cdecb7cdb03505cb055d9ce542e947092e56ff01ec2969072aceca72c59d51e93f1d7ce7de2540dfc1b0e2031597295ab90a154fa59e625c00ac9badd3eea471f51617673b9a963c8538971984ac28b77af69a6c1b24ba5ad2ed4cb30e9e4393e869af84d39146a2e2c8a31154b72d175f35da837f6089c2080776da166aaaec56563a220aa138e9c21b4d66de9490b8a0df1e80ac8521055bf24866e529943f65052f5be8765e1d340067f0172c33f9c68d10bafaf0b88930fd6579897d94ff21d74b572213b58509a29b396ac1cd0cc00cffd675cc6a11ef51dea3093416c12e994f42f24ade5725903c7886729d240941b45cc4089e66b8f995ca1106fea5ad912bbd3c5e47e1819496930eb044a273eaf6237de39b291a7d1e6192ee01f05d487437858bd1aa182ba2c04c894d5a5165f6336740de417f065360a70dfcbf4f86fa781ff6ee799a31887f37e9f7dedb12b2ee5508b28ea97ffc9cc87a0483c8d9a1334f8b29e3d9acceadc55e140f763a413d5e1c5d7987eb5abf3cb9e68838b2058e2f4df650386707b62b9cdc23733d5e58fd456f500a51746359378506724b87fe07aa24c192f56499becc194e128c9ae5268b22a6a22a5c5ff197881e880a13d52de0e5c6a7ab7dbbdd07d65cfd1806a84abe6455c4542d0f832d42fb3f72b6b26ebe1f4c306ffa6488509c93faeb7204811188223da6e932869703602b834aa1a3b65dff320f540be23ecd843b1e2901965d5805c46c711015a47ab82d0b1d9d12fd9fe8c6be4eaf89df00acb07a3d21fbfca442298f70ea4d2acd8edcb2f9e88c3c02ffb667c3fc0e2b2e778b908c206e35f6f3287a6ef9601f6340e037ad38a5d1aff1bb2e50472234a01164d5e213dcc19657c32174fc89fedb70c8e7e4a4dc613b820f43a57ffa04a9e00546f2918e1381d9bc2e3b19c3f79f74b998bbe4f08e47b79b536e737104af435b96a7912eac3f83b36ad6bf77fd29110dcb1cf6d4a2d422f26af1d77507383aca643095b436eda471cba8d3f97ace49ca048fa5a43ed7eed1de5c9f591d2fe1bf6b99d1978bd87032e27598356352029e5a16d280c07e6e702ff7ba900416a7246f0d0b0ca6f9bdee5686766a6bd63f0298852d26f6b9e6002b5c2a704dc6b82a29accd800b39c46dc534c82659bfd63c82d1f9f291510078a6682cdc1aac22141549c4d9ef2d6a5843b12e376dca96cafb5a359612662946e81ffbb6abbadd985077c9a1fe81dc9d81446ce554effe92f879811932a3f8ef2d2b5619670b9d5b9cc6c547b655e41233a618a3eac821c8a8bc427f913ae319e6339ad537121ecf3b22f153d93331f66f594c8b71157c321a753d0b3aede490db20977019de46a0652f9dfa175da85212599c5726fff321cada571524c6f2003af70dd9fa28c497a7584078a23385b88a08edccabfca847dd45eeffefd30f8f4df276486496b1fbb1b7e6d49921ed0f25aecebbfeaa9062b47b9e2a773e644e2709022f66fac061e012cbcf94324814d07d7aca6fd165f90298b70efc207c0367fd51f1f172df7d96c46c9ffe72c87ca3cb42e6bda26e2352574c6d6341c6058ea7bf9e5614748382c2047504bc97fb4f00ee120c8d17a2802f5807636e754781b325fed89cdbdcb41b279c11f7a0fbcaab32f569f8e98204aa1cc04ae6fd1d70c29f1a3b286fafb5002f46916094c36de8b8b0a6afceb7103da9522e515e0abd3721c7402b12a3cc93e31f81c4714a4d86c3215b8dfd201af03c5dbaf5f41b35525e13402d753fc371b9d46e8d141ee0dc7a04f382ea1ed257579d06cd68a0f675ddc5137e5afe71894483f1c184dda00bb12e62afdcdca6252065224476d28f3ccc362dd443e7412d21d945a20c4ff7f11054031351fa93647709ddc89ec667245d2b0feee0522bea979f3e077ebbf2d6a8fb861de7ec495725374b19bd3bdc0108b526caeda1f946d022651a1b05a71ceb9c3bd1eda12728f58cbbb27af266e019323a3dbd149188bff16f6f154e4ecae0f01504afd8bda993028ed478c7eca673aa1f33af88b5de67f1192c668f4136179cab9696b44173b305e6cfd30dc3f42634524cdfeb2d77bdc8d2f247af73c774f39f1af9745a46c33f0a4714eaf6f7f511f437b2283596e8aa6b55d3bf5a94d210f54b99bc642549da972e94dabd7d58d0ccf33fc53176afac3a0fbb6c653bc2e56351adf0980a14c312c38ec6c9160398cb97657800881c01eadd0c8030d7123f6982201d1eb4277b7d895246fef315e39996064ffb115e3b3dc50cdbcaa6129f6ddb2330c64d57e6fcc2eb83db1a4cfeb73177187dc8323888de1abd7bd8bfad2d184033292c21d3ce851d191535a605e3298c8c88f649b819848ad76d4b2f08ae36797ba54b5f3dccb32c8258a38146b6c86f175a888117d78796d7a90525aceb8f6986e4acec13281915f33a4207e1f4077d586c6b686ef10b2d16618aa841fb817df37968be3099a27de57c44ba8f8e55c0f1e401de53b8578a733e9e81268d462e2321af29aa50f814dbd7bd05856d890008148eee2180b8870ae846e07e48a6660202a6bd35a7391821c550e3810fad442b589ab6b3e0bca5d7858066260776148a778c3b9df8c391b72451df0c87c0c64491b2e5bd4e264575cf047cb82f20f95ce3101d92aed4834b98c8f0e5c81c8e6baf0ab3de870d9207bb64b6b99a395ae2de378f8ad233120a968e091b7e1aa81195284f3e9152cf211b1fa26674307a57390e56cb812e030fc50c9d18687f67226245b70e60ca87e9ccaea0e7d36a5d951a22b374d71a1b89129a0b4067c60317fe9795e4a0b41c4e03c3314ab9437a1670e4bae274c2e93197b2d7af9bf501becc0545707659ea737f9042d7dd711ebe6a801d34b3cd45d7c1275fe8559bd33d9b160744d6107fab7df7f419cceef355f513d30aa82e2249857bd05bf524273d46b9e906f557e02604210e34f1be3213b121994fd3fa86da4c5c43fd4bd213e76387868e7f3b2ade5bac9ada99c54d0e948520da7ebbeacfe48e2a8113d000a9ebe5c14f7dac827393a7ed2a5eb44d8a33cb2c010cacdce5b868f9ad8ee93183fdfa1d05a2febffd902b68bf192682a0b5a418bdb900d86365a25e5c11486ff4a2547fdd7cb24839c3bd6d2fb95ec390416dee8d5b4a1993ceef53a5f5ea77357674c7c0a27f78c483925df6adbb5c49074f5cfa660969cb506abce22c764de475ff9c41e064035c48c088dd6c69f384aa76aa21e2c0e4b38f4405adde76784b0cc331484cd3c954776e63a5808f7f973bd73ae418f8648a02c29a8033214099e4e65ffd33066913bb6fa1d5d360865bdb029896a8a5d5b4ec4ac8953e6aa02326d7da96a9067d968ed2e6cab00ad00eac6a296fb48bd16acbcd1acc02d221325e4124c3f3e69f6b0b825ad513abc0c7fa7899142274e2f8bff11704e45db46adf1c4c93754c73e8eb6267e5f69cc4c24b1a9bf1039a39e8e091d944c2981864e78290a87d9773a43898de581e26fbf0919b8a7bce07365e1df475fe75c3ce9b315b07cff1e3cbaca2b16f41309398eaf299b11253a015dc3f067a91157cd6abde00d7c69e9907f6c1222fed29ff9223f3761d0c4de8bb07ca4637ae5e0fa65f22a61af6dfeca7f007b28e764fd187ab52c158690ff734a8dd5f03f202707f27bd271ca982e5e39ef53c18f4cdee8a6285aa054683974c85b52ddbc3d6083b2d88adac9e2e4bc708f05e70e0f24d5b318757192905cdf1e5211b48ad256abeeed49bc752ca5c69c8c8481094ba4652a0a0d2c824b16048907b29c231e86852a806ff24014fccdbceba284ef0a6814696a2889d64c5e750b132d63f9fcd693a201ade06b92084107c6947efd9be127a8fc4e871cab766cef81aceddcaf89b50ee6f17652ceb878a66ceebceddc72b23d3c1f22de6056e27d56275baeb0c8e782151f843b4a90fa5f7bdbaeb8428620882db8bbb94e267961ad43d9f0649aac0a773e714fb18e5e7b3d2be2ab1b53e65bbe5b22ea43a1c20d56cdce27da15758d83d3b39536341dd59f6a174572c6b182bc20df8cb5739c1eb3cdebb72b8a602ea3b4e025a9a150097bbfa79473d056dbdaf2fc2b587fafac2b58b1bb452b2d62b815a36ae59a5a8902d7c63c125077906b397a4c73c45cffeeb57efd12c7fb76c568ec76f5d1cd0b151d946275b4a94d4908ac6ae08d272ab81acf1a4cc4645f299e8c84e8f0389dc0a625622a6a0f1d9a5080c918d2e1ad2b18ecbf64681d8d2088773c306537f8d2bf2fbee5c372b315213a78ad3506dd4b6a6cefbb939b6e0346ce2996fc6c2600d08760ae3aa1c151cdd5d0039bb071c71a70c0eef8ded0148e0368c79988c53c18dc8aebbadf78d6bb69b660f86a24a3a06f78445e00217e545d8e3323c2292d4ac683efd04a9f8c2c3a383acd7444d7ed39474102b2a436de7094bac40028acd4fc9d100debc4b9d5de7ae508068dbe40a7e71b1de99522252fc9d309f62229a5cfd785cad97b58cb7a5a5f9da5b5a50622f72519d1e6f2183b1cdc25e813e8645f0a541c0a3984cd6d551bf0e293239616769a9e35f94a1a4e8f52c2e5a98edee01020b1012306093e2465e89f60f4a51bcc3f6feff00000000000000000000000000090f151e222a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 56, + "comment": "signature that takes 39 iteration(s)", + "msg": "cb0c000000000000000000000000000000000000000000000000000000000000", + "sig": "6570319fc14d783b583fd81dbacc93c9f25e209c7e2d1db45fcd193534299d97fcf05beb603478f83fdfbe3ec2bf9b808b20c98d8d72b717cd72a5185c448e725023a0563f98943926a79fe5a2a79032e08c393d2c5a05fb93c85b56f13942ac010b90048fde95b3b4fb15741143321473ba593377ffdf7cd22d84a626259ab652002101eb3d86125ffd59fd794d9c5a728d7d4b5cbf1eb65a1d4d8d81483bd3771d53b7598495e12692db46e73a433805fe7fda3baaad3bfc5c0095fee660914c85380a0663f0d6858a065262d2de624c46d94c1604f1f168ddcbd2bf7b771c0a251b9bea65c3526e1f12d677d9fbb2a65bd35050fd2d64c8929ae862b89da6dd0510f5b4da25b9367f0cff726c9b3f0b7db05a1e5613e598bd8ea4306fdb17a7898c5f8f3375a8cca6fd7c1621d1bb870d12fe3be62440172b4cc57f7aa8d15acb44b2ec4152a65a36d098743ff64b8e767a4013b089a9079eaa4989c6982f84f4fefdae1ebd3ed204aef26e367bc7a9ff803f0c11917b0aff5bda98bb4fd7d594d1a6676312827fedb48261521c891252baac6beb46bb7e12952b114c13b1e47b42ccd108f9c9772ced3341cefacca3b7baf0940225cdbb03e4a1c1f0a9805aa6a5e85e6772d7c6feb44a0983f20ef222bc2db11f9a755d5033078bad4a1117c16159cd963b2e7d5ec56918399e7e2bf9a60a1a9f5d095a136aa9fc0cd559c85fb2b5020c4cc03fba4c34147ccdc62d0419c5913515e9b21404d908f2f9298be61437222b3b54d4db7017fcf063c03ec7540b725e5c9d0c3b9a415c7ddfd795ca26eb269c194393b7f6aba85600c2314a2d70865db05ede213e128e63fc9c165d88b4b72c8ac5937127a1635b35a6357d41f16eca42233986be1b9cd2e01c0c584371b2d7a75585b8e2c1fcb0ec296a22f81e2d5abbb57ce4cffbcd0393bf263e2a9bdcab358765b61e5885bae17e58a647fe50cf09cbe6b84461bdca74341db00c592d6ccf7ce5ad746d03b822344fddb152a91c1bf17fcb75c7d0fd60fe208650493d5353cfa211d95dd4d516a5ed6ef5a5f53a83f44d45dcf8cff27f7fcd565acd684d7bcc3910c3ffb2675c52735acf3796400de88048f8d1df93ec618fee34027f2e45f6c96a67e43104eff82d53d7c298d15758d5fd2b466b9a00f7ec438dec6a35d6745265250b46c7fa4c1c3d567d1837debdc1c72d0d7e340b03d3a3151037e9c3137af1b80bf266b8282d02bfee94a01187aebe854659c426f12eefdef522c050d8b514255840f870e0694fb191e918b5ba89df01047b8f4f7fb4142f7942247344ccea2e724fb30e75f824b9b244d13b4ec29b8baea39f494f5b17ce1bc8b3584780ae622686a7934249131ba8165473c9e064c0b59bc0db04d92784976085a389c04fa2fd6b15f49c70a59890af0ca86f05db1128e39b36023700919a89faf4db37d96b29b73e7732b37866b90455322fadf4fca1ff26fe9dde33a1e4645d394f24dc38541f8fd7a21e0c80ba0f7f5081874a677e337c802f5069121d4df8079b9b1143cda5edf2ec1be98f6bc60fb26ac20012ce73b3c56dea37cdd25ff02398be4dbcfd8f681f5253da1fff4b273634c1bb6f3ed991c2728c2aad1d1d1287f394f0f9024fe4d805f4ecf059bdb4786c4125af37e65280fdb8df9206186df5870b48cded097379d3c3f23c0c5920cf0f5b9abd7af7d5966a204be229476b42bec5ca903df94dbbe1e89941ccf36d7aaaf4beae2ec1e4ff5189c4525db0e9f30c11dee8c8673360634d49e59f928df07481754df3b0d4b14e30cb596763f3268d1106fc571705c6b94d7ff3e1be58a68bd1119910775eae6e0edc89ef7e3a4fbbbf71435c9ee55539d45ae764289e673d21dd62e38d1e5ecff6a2d76462454a5f366a017084b9b63ed39379a15d1088c2acbdef377e78bd0850eeb278fa4a90154783d64657ce67ef0bbe4ec673e2aea2cda4695909cda72ef13a8be8fa81558bcefa0373613c74bfbd5abad71b06b98edcd4383ba05dd89261ab86c28b8760e68761e928530fa733c71ec1ad2153ce8651fd5cae23ccfba0ca792ae0285421139b49fd4e1e3f6b7e84c34b0ce9e8ae3cfdba198f325ddad28144bdc8d04beb45d311f960d1e0e730180b4677c01d3023ce79416e94df5782bd27a150a97ddb7b4cbe7feaf30733253d27f6dcde4c50f912fc1b01f899ce1dd3d48152e67aaf1d90731b3d4b578528538c8989f9f76911b3bdc6e36d9894f781a0c4c74edc0a4e102702f66f1c8261a92b38754291726fc8eee9afadcf4a256745884063faca94b2a8b98ae96b0581ef2319ec9ac54619ba66f2412e95d659e7ebe39a909408e5ea7901c5bc27c74709d0621597e9e84ac59befe675c51cd075a25efb4c9351baa7d3d9c983b27ff1595a2bee73952c7c0b6c9fc252c8c7086402ff025c121b92c2425b3428b743496455954d38ece2b3964a9fac4457552388127c012a26bc88bf6866504568ad32a742f87123d61525ebd1f4109324e3b57640052563c9eb9cfbe683b5a325c6e8b028b6b9cef425d895ea902031752a5b7ff96a2af6ee1bd719bb0581a4a4159c0c58bc36e74c7360051934433ffde1b6a49f2c04e93077d8231865b3621e272b29a6f50f7a2d059eb380b4b43c3155d7b4b2b6eac7da5b135ae5b419b5f3dff09f68251bf5fcc3e10168ed331f5f0d1e0fb51e5ac777b2eb4d9a2befcf049be9851f791a6f059414ae3001acee646a07a222884387f1e56445d7852f7db92d40662e91101d5157dcd7ff517d3b864b557316b1dd21706fe16adb337ca7782ed5bb21e970afd9dc16eb36e08b728bba8608b15c30875fcbf6f939d96c7056edf024af12e1583758a005e6187cf7c2e2af1167700129ba74ef20e3afea22cab2ea9a24f90807cd839b884016c8b624d2cf13917cf427bee7548c51d4efbd1fc98b0034921c72645657350d189777cc3bec591fd205721d704de42442d2b8b742f12136af848ae0ed3150bb4987e31a3a544b9f79456a2fca7b149a8f1802781206b57d7ecbbd465c40a1b4a0e6f3a1f25c5ee35855908a46e4dec78dd586c086c04eba75769fdbc3cfae0cf2cd32abdcfe48e2b106b8df9a4b98291de33e648efe6f4355ee437ee7cdc854a3cd47c616eae431d6955cb78548ce93caec1547f2745e32686d930929982fa2bd1a187858511218c7342ad386105ea90887f0919d875685600706ab5bb683e1dc5196d8943ce821a639a7931e175df372b81901af3f08ef4bdcf10a18127efc074d190519a831e8ccaae06a84f641a2f5fab19fdc708e8d63fd66106acb2a720361f9f03a3756542d9a12d3ebb9301c121aa30f757ce4e56a2243cb882f9d7df7c26a52fc8ba8a0af2c1baf6746851a9c2a3e65ee15d456f9395482b5893c7937198415082992b7d7f34a547d77c68cdb77ed32ab1218d409bd71240857b13b0974d045e2c89ccf8e6a62104396e217f793a990d162d41ce4bee49792940496930a20724c9d4949eac997d9c2e5b9dfc47b04f0cb0b694e66f4e9cdc5b121893f79e52d3d61fca23e667da19286537fb2f3a3953947206806782d669ec03c17b1c7bbd09b4bff50d91252707a1a99d7cd1689bc4eba2f985524903b19d791da6fffaaa3d748918ac7653336924c960794bfc06f039580fc1ddad59980d1818c7ce79446f35576b7397caea996e359da3a3b3b7a882608ade4a9cf32380216633da5c5672cb0aed04512b6c784fb4b165ee2b878c502a4a3ce3c8fa48723694106166736b93b5e688961092f1ffbf603e815aab3faf971f9e3281f784ffa3a2dc23a164cdc4e81783d5486b4b6132ecd404744b248df1c32c769329f224674435237cfbb2f9806ccc1ba3c8961b4c34ef2ee69db7f469072a116f842b5399cea43402679db4245512a95107095eb057bb6ff24b6bc418b8c63d7bdac31c6802b29210d3662cd27d57386f1eafccbaf3837e2f8413f66239f2e689e537dc017d005ddcf003bc5c25e6e7b75b9af884e1b164717a14bd10633b4685b6d2ffbe03d5f5574b73daf7eba0a800f8b93af81850bc692b60913e16ae210b552ea00c4175c4514218ce4ca00fc16cc098c5c6aa499a2eda2b39cb80b80f39af8dbed96b9ea9b010990b6524e0133babae543296a6773577e1bea164689993cc2f4f14c63647c4bc9fb70091e09c85aa3d394f445567dfebfcbb2ba19dd37d4c0810cb929dc9ff9d2e5d5320439c7e568cfe1d4a1fec65ce576d9981ac8d45e5c21ee9eb43340b3db7d4de838730742616fb2d95dc2986960f08283207c414d907a044a3c96fe6a83beeb79ceeb9724ca40e2f0f340d8d2c6e64133d619594e73d592a9d24c5b00aa1dc8ce4752c2d86df0cc79e3d81a8a1b1d0cf50d47207d555be63db4f1d87e818082620474b0f8dfd7084941b14e8c99967d2af0552cbfe6cd388665ca8de290bd2593d44e139d24c69c1e09be1048da389f7b32828162ce85f830e4e2aa9f81eeb6e2f3e41fefffd2e611de17dd9f35062039c2b940b809560f9b3a749f0f60a04b06e024d107991ce612d2b0f9eed003b831476d71b7d1f07aa3aff90a353e778e920b519ca5b8ff394183b7cfe4f8fd4e73789cf600000000000000000000000000000000000000070b11171f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 57, + "comment": "signature that takes 43 iteration(s)", + "msg": "fe03000000000000000000000000000000000000000000000000000000000000", + "sig": "bbcda17759a78276b6332f3f95bbde79b676072fbd6fd60a4d43e25ce3cb2c34c4d81dc1a278a99c5d5faf8596b5ad4ff060294922ae3d220e5eae86212332da242a2e77c78db4e06a1d28220e3f4a100022a3b461d263c43d9bc5ce2e3984e192f3f8a5a2e1f25bf7a5e88dac482888fcb8657117a0911dde6c9cff20561460d7378821a073fe7eb2c6328f52c2c74f6448bedd9bee33c9b4bd28ad3410e3af07ce1f9770fae92d8996ea766e27c95fa5b8021c735413e86b277727f467f5786972c3df4e1547a2b921cb265f48a4a0e866eae0a44bbb32be8aca8cee6a6f9bb60069c3e8949a7d6c448f84e05cdd726bcb3224a50b49f6260e2482f45e047c3f49ac318a8ca1d9aa730c807f286303e837e6e8c33079ab12fa20433860caea7b91dc629feebb28ffda66e1e8636b1e4f90488a9dab533f0bd1596ac3d3708cfb2d30a08636e411fcaacd7aeff28d2253b128494d37878e9bef3676843352d01e266068081be7da3abef9603c7d17229e57714c61e512ed4e9b516d496bfd6a58d17be0910b280ef2e0684d94d957f80dfa1cf3a45c1b65f5a0dedd946b09f6d0f5e158f1dc931e4d44639a687924f8de96f1b061132224cead2c5fdde857e6848052c6ab47283db6095fc94b2c392dcdb741ff223febfd0a637f2162e862f4e9647c8f9dcba2e1be425f5308eb1bc507cd10af0df3a559d1e9d9fe91ed0f82b71585a16f8444e2908f166ef8af1152969a73efa663fca2aeed5273e17e84e694373d25265b0214f90a8f6b610e12f73af764183cab7e99f5adb7fef790ebb61574a424e2c40afda048ca5ee38d0e50f000c03aa3da579729f92b71f4e79e6fb386326863a2c48289224a22708e8cf3541467f0456ba6f2009c4937f88dfa15c0ffdbf4aac6d7f677544380b87284e142b71dc4ff51d385bc78752e6cd9cd7a12f54d6e38c7b7622527bae2ddc033ef88e313af84e18aa357c5ad56df9b1cb5ae393521f21ac8f912e5dbac2fd51aa7522ffb927f21b8e28d4bb9a3eb58a7b3e7b63027832d811ff57b1ce25583d2bc70aaf8cf91e6f8ece51433d97fe437127ad7f3b0647ae860d88f9e20dc6e281bac2e8f090911d7d390c6e8547240179871a55e0e73dd1114f0df5e380c56910fed56f674db18914eff380467d3fd01f3deee25bc525a672724d62f73fe7c0ff813c8a3202de503e38ba7c538219a56a44d5719685de991cc996f2b483fb8c0a2c818378ed02c4482ae0239fd494249151ccc433013dc544708b0fe45d98a6e0a6528b88c32892f64acd551a7d0b7bb884f3c7a18e58b8722e7a90b904d21d3004a00b468a5f06f4f141bac688d04f28bddb7f2421f0d2e4db7a9d7be94959dcadc9b1252b1d8547fb14cb81b089cf8c4d99ddac314519bb4c9a19eaa3018e805c642ea1362243caf68b8d4972bbd2f9dbd4f571fbddb00b65688ccdd344a47bf616adfa9b6927f796e08dad32605d97a90acfb70d4b4f9c95285541a820ca6e9e959bbbb1b77e2089f87fd41e824de384c3a59c251b7c571c1d89e40043307d170a4e679cad7ccede16cad15cbab0e56c4005f56fda088434eddb1b4eb04af6d7f8f5120b33fdc19858ece0cf755a57f3a2006750ba15d687a507d4e5215062ec3431f78f168218874bcb785262068e0daedbc750c1908420f87eca0f02fd304a52abb78c0968330a77e587a4e087a0baef408d3691290d2edc5387bfc169f52ade0b387f218dbb7efb9435d93a3a7876aee38e0a49c9c69d9a98197e092ae1faaf6c8ec41804b7da6e62210c4cc673952b95f55b929b1a8ea2b3d08dd5434c2651edc7a41dd031212538635cad974b382b670014a9241a1e2820b2a74998a46ed419900cc1464c2ffa33f4d20823efae2452aba5149e825ef1955572b6671f3ddb3452cfa1928e4e5fe84fe875ba853b3a56618be73b3c530ad3a6f8725883f7e23d136f64ff7cb727f1020b1f4a394719a71238e3d7542a66ac55011caa451a3a5e101c72be22fed87f9a663c5f0b0a4d711502391d1edbe0e90215b00fc08289b72425a0dac72546b539fb9cee77d3f084a39cb8071f504ef52979302836de1bc784b58dcaf8a3bb36981f45820a2cc35a29bb8a6857e7fae2e1632a857db40d1fc5bce39356d6c428cb5b4b8401aee5165be259031acb0af2a7433c41819a1c44e74a311707fc15ba6d4f0997873bc64358a5bb9fd4aa22b1caa9c030136e2b5f5b0a999e7ce009e3713dc032e4fea8f516a3e0ac277a36c29b5e2bf15cb4ff86110676ffcf33e4b7973a3bf248c7f6c02c9f091da8b85380684ff829bca245c3e3e53b67bfa4bcd34f0a598b5ef09bff00123ca0dad69518a765419fd72eff17602717957e3ee3df45a82a573319d6b40dd6beb7051966577d41383d97137eff7db84a2225e98d014f2111357edac272a89a7c50e0184b27d6a6ec611f70051100e9887657cecad1f34867e6d144c360e9eec53bff7b8a8a4ddd9cf254e5c74054bb8eec9359ca1fc91eaae77a9487685a209ea960b43a8cd198107b112deff2391cdc326300e35473a634c96d933009fd172601000c28fd58243469bc7a634c462b7f2147c99de6a6f03524f15fdc7db81357ebeb1eff404fc94f1c6e40912ce2661d8eb9d584f572a6152ff88d764c20ff024ff22f6f13605b3bd380d0e538f2b060ec6afca3fedc244e18f16a032eccf437f38b9db144770aa247e0fe7fe7001aedada4cee551e5e37a38b64e086e442799869b7948493526179807d628867bcc9fc6fff1a8d2a7203a5f0202e00fa2b7a851892bced0e5b2ef90501df3984f1a28746e6584fe944f6436daf003a6ef2613c20982e3ca9191228835ee1102e5fb67d5acf87e300a6de21d7091d6a573167b0a65f2dc79f979f5d1ce55dab07e2cb2567266f8e90ff619b6174110372f43baffe24e3711f114be914c0e01c56756e2460293281cdea5cf3321f789f64fc1f19269471f7373242c63563c7081e70fdf014ac4e11d1648e6eda56bf964599f7f91fa5b85f9c012236f700380a45b12985475ea38f03f1fa5453a782d059bdafa71344bbc2c60eec43d0edfab113d7f8761bf37adeee2ef88a5ab5060f004de5d69cbe2d772a627548a85618899a2f3d56ed971c8ce87acd78feb6476eebfc2f50075e984670a31d45d9a351886fb72cfd889c6c3486a824b0d6829d6db49812095873d9935843fd0433bdf9d4f4ebccfad9fb57fdb7f4bd73b0ceb1373b6e55d564f48f2d5d0036850ee0e04f824f45ccdcbb735dcfc5cd1f38c1238a28119008cfd6d608bc816d1222a01cf368f5871a9c25c3d6b023c235f8e2cc4e32bb365abdb16f5f9959236aeea856c562432129c1547b845ff4f143989e5d699003453bfa694577c9d5b9cbb21886ffd65b3b1d799ea31562264493d4f5f00b4531e132f7f608333382c23024936851e1c4e785f073a3441bca8823f8f56fe8ee7b484d09f98d898300f83974b9e39f56ca4184063901fd34837ae0269939d598131b93e68e982efc2e9f23183194d5b1bd977f886be2f58f7ce51a317adb1c29dc153316f7054cb17df75e455c1bdb3556e008a66954ee1c082e23203d89d8ede425dc355c592681fb20b8dc5d9ba8563da39470c3a86eff22c218f796f9594a0cdd39b7e12d2ebc46e30650756f656241606a62875b89f864c9bb7ec6f22a3086377146a053b373e5e6016a690c5eaca8c923d17e7d49cd2e81a8c2b41fe008b742983b48b973a2e87a03295868dd6ec34ea1cf51c359d5ddc8a0f3b480b443f9aa05ff0b98da9bb79595708b9ccb683e4580d20b933b19dc025f7e8037ca6fa70260a0ce40e354b73304b0840121892d408a19ede4eeaa311166d27e711deb9e4c2f22486d01db58a504caede74e928ce2c39e68fda561cc748cd20dd5930241eb700a177fea79a33f041c72bb5ade325eaa2f7ae60d9a9c65c314ed410a94299f608a9fd3be24f427f682bb27fb32f9bab81dcb492605779267ee0b7195ca1b7c52103692f204fd4cb665f279fb3a4a392022b8736bf5af8480bc5f766834a8e1944c83f41185d2704b6938a5d9d03263e3deae764d5e9882b7b2e4521b379d870d4968eec4099cf9007e6519809ff133b36eb2f728159b36934834990096418c1620dc41e53f3eb8a55c6657687a1db8e5756c2a8250d8ac9d08e5487ff27d75b8efe3351318dd23b791e580f09feb7b13f4d82fb0667fa66c32f6074bddb6843cccb7a6cc7769822dcc0ab6487f54c49d61f2109b47cb2c87c0f6f158298fd22f1b9fa39ce57c1ec04b69f4ca155f8ef86d321fc3bfd52d26b58f9c108c729fa5b5bb3426628610ba05e816f362815b685a14aab96b63cf2ee717aa975ed4d3cc7172e17d97eab68a8e32220a59279e543b2f4894fdcdb792a7da257dd004eea12cac243c7b9b67b0b035b5d9bf5dd54d7e1fcb0a44c7a18cf45c765777c3fdf20bb4fb29adccd24952047234331feb580651282e1a523e96e0d6bc35a50cb42ace95edb1eb7bbdb91e499d3cfb463b61ee61f851bfff32c944f8b1090e7e3fd8d02f05740a840fd6b04e969ea2b6c3f9fb7086267ba3bbdfe3ee414994c30622254253829aa2a5c6d4060c35444e7f8288a5b2b6d6eef8fafc0000000000000000070910141f2f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 58, + "comment": "signature that takes 44 iteration(s)", + "msg": "bc10000000000000000000000000000000000000000000000000000000000000", + "sig": "7886b408e355ac8eed58a28db36fbcbd60e3c9fca1f77e88ab399acdf57fd12c03fed5333307614b530ea3446cfdaac07ce1fd5310cca41e224bba5c0387aaf0091a1ff0727cb4f62bde0cc681d1ff59294df794196d69a377bf46fcd717c44904184f0b697713bfecc4ebed5e119f23deed3de861965ce6c8c7573e45f29f819c5a67f858edd3a223ab300fe97f3a019a9ec43f24058ff10241ffd008164c78acadbe329340da4a98b07ad384d87a9dcb82dc30f341f699e1d6865c00ce0d33533f52f6a3186add7d5c56555ecc7a4198550103c46a60e9987e00588c8720f4bafdc8f52c76785bd7c7ae66954b1f89a3372df91d963cacfccfa384c9dd1f00a381dc16fe205391c60ccc9997f50a05d7ec28a41921001228450ba221c9887c04f6c127a4b979e595d9d48734147d261587144a702ef180e845733abfca6b60c628e2cdfbfe9dc9e5c310cc4a9a79e9fff5c61af2e9b8eb25df72fac662f3b0c4860f5cb30ad2510013428c18cf2fac4fe524a86d600460d73bbdd287e470bc2c3e92df0c132dfde71447583dbb0472c2f6c6b99835d351788ddd09d2209191ba821fdaf237851d2d8698ebdae44709ba44358a49924ed5df96755b30fe5bd467714860e92d5c68c22eff2da7024d53fbffb6f04dfda5e9efd44b529fd708dd6898311e5a9bd73d2acc5518afb2341144fdd63159a2d8c092cbffafe65e43fd29b0e6a3183ba3eb0f4a0f393d4b096a195aae986861e7ec97a70d5553941e23bc96b10ef09397bd938f47d32c6a4efcbdb45c75214ad4f43d1dd73bb4a929b25e5c7fd00b55d16a0fbd2b4cfecd03ba0d94feb86837d404f03a296514cdfaa9dbf424b9c3344a84f2a99efa4d273701c32780a8a0bc568959dec3cb58ad52010253eb1096f752fb3eaf9edd4269cd53195478d6d9ac8229aff4efa1a7b7b924b38d9d5babdb6efd62029d21227e5c49fe344980a900d395a5635d5a5d5e4e60df03e587e5a69e0ae1114d9128e8162d111753456e0e0e9266587873f81ad81c3121eaa4f1937d5b2f3a36680002e81cad221678122a456f0304b36bdadf95de811143b1daaf48df48db876dfece80e7a02590a597d30cb02f43fd0ed854806d8e586785c01633b5e1aff69fccac11eb74dd4d15d4c7785d0e8de88163c8e05c07b2dcbe2ae0a6001e4b696751ee80393036d8d2f825d88ef3d7ce51cb2d24870eaef40d3ef91293457319151efc02403b5ced3ba2cf0eb4c825230e8a8e89f31016ca19d5cf3cd20d2d5b44d9748afaa034f8222d5cf20183783a26728df676ff8f55caa3f17df71149d1d4e9f71d058a3d1d6c2d4e4d2030d31c795c2fcf08832a4a8d1c2b2297ea3081a1b6c5c74e297b576a3b3901b071c6cfedf84e619e7c879034c36c0759282a271dc4c1444c6603fa2225aab788a5ae11aa242ce8dbd3422d4274dfc807812fa1c7d119a6d43a9e35d4af818b3727d165813d65441d2d8b42bde43d56d781f5b9b341bfcac73180d88c933d9e25c9a64cfcf07f3e03f89797156630f953e8380859f37c6c630fb4a95b290fcbd85b9f2e05778aa874a4936e10638d21fe3cfe0176191399ed293cc6230451a163dcc2a525ef130a8d1c2ad93ee87682ba8e061101bcc332794c6ee2673ab298982318a3b68d10dfc46e5ecfda4e1164b35dbd296e4bec9a01df32704b76315ac1c5c660b871f5d0ccf4065d8de4c1ffcc8dee4178bbab66f1b02179e6f73bf19822ca9fb284021afe756259f051c11694814b8b019bdaa9fb261e8dedcafd2d69b19d1f96f1bc82ec77ef51031b96dc65481885763c5e6746ff0bca40d1c375be2b2d4cde654cca8415cb2a83a66d216001d692c4937c138e6e3b1c18c54c02042f8d58033fd49936308d1377e5d88b98b4429afaf5e4af68f4a1f5b2e039cd6b5dd3d04777e65c1b2abaebc20549251188f697d1c7373a62cb7b08d2dd367021bce2b5f4a28e6e93d61733eda231de2b35c9e2c84b8063e9128671a9a27b21ce5b2c6196769c0837fc1f815439bec0536f017f10803f5ca14f1280988679d604e19330f625e3965e66d59bd820cc15a3ff8f28692381e2477453d153f5e139855e6ede385b5b7d72506a3bf53ac3ee843a8dadaa8dab1e2f84fdea598e2c6aa4e3b4ffc58a78b53171952d7d49b05fb6e59ed5ec857747f9b1526a256fc0f048c0c2e239ef8dbdaaf671eb75c56309f56397a3515ef8b696128c08cad511fbc86492e55feecc19a4c854c40d36cf7215d3980b7243107caf3a3d7ef580f2db196e1424d35dbeff8277d8c0b0e749e26735b78e10db19c8274a81b1168f09504d0a2aa90213a72bbb6881064db6b488c8c4bb5620b8c2793e853660adca017e12815b378106a88e59505be0eeb43b03afc211103f2d20174e5ef5772b9e87953f9ba96ca1e69bf79939d6eb75833dfb233d2f7fffe6cd1212ad896105492ee863883382403d0e32124e8a5fb30dd3d5a44c5859c2f7a1ecb017410fc7208145193230273e306622c8cff46393a73807cb210ff8c8e9bdbbf474377758214b4bcf6d2d45ffbc3b7664cb4c7f4d9dfe2fd8d76a2f9a09922d6f5876a09fa45617ce12e0bf0ecac9ccb6041568c0e1da7b023ff02542caca8198844eaee7144d535583bc7628c11b3c02d285ba06445cfc96149af917ff7b23a3a57aa9593d458d10e48c380396debf3d00dad69c5e234ef2dd8f27bde03bb8a214b8d8500e5688e5eb75ff30d6e0ca650b283d726096a46376fcb77a9ebfeec2a1a796193111f491e7c25e4a817aaa8333d4485a73f6646ff228985080376264e290cdeb8abb5e52b5003b6bdad5e941012edc370533c1773e8182f019c140595cc28ee1308c6eca317eeeabf6b8c630274327ce81da763cb7adcc4a625f0c2252d3fa2e2a75cee7d1b457f74760accb952e364e68b300e509ad72b06f64925a410c5ad29a55433b926d1cd6fa754587e1c761035c86f1b0130acf97a82a89b7a9a16981d8c451ef529dfeb7a8b072089fda297efc6f795fe4e91c49a00a5388d19bd553d0dd2db09bb53aaec2f2b1db95d5f3ed9b470d8e8ca43c83e04aae5865f84f590b58e7fb9c86b665bcac31841c31b965622e40f5d2f01bacbd2cfc9a97645bb303968c2bc041074fb9f80ffb6f7c4ae869942a1b8537c5bceac69010991cbfa28eef201b6f31bdeb3acaefc6a5fea55f8aed6ce9160973d621879ccc6d3c96921bbe4e3febc7e9308f0cab473874812051043011b4c1d73476592a5fef111e6e858b88fff4c03b99fb22b49817a7153c2251f4524ebab30968cbc0317cffd227183c3fabc5281df4467cac43f17d1ddc40047d1ae3935e354334ac595f0b756a8d9d712717f7ed6d83c0a58364ac96b294f17a411731b4d46535e20995af972cf729f7a8c222237e4aeb7cf8694d7432c95c7e9125bb03b0da402a24dca423eb97433685e698be8d0555292a3af58a36c5f23ba1cce6854e5cba1bb1d6c989ad55dab142ffaf46a1ce65d73994132962c6c50868bc697b2848f6b9f78ea71ccd9122cb6686775d7f39d3245ed1fef51ab2b9d6c95201169c1200021a315aebf2501460859b32feed4e37709c1d3fd82c495c69981043ae54ba577276e46e155f568b7efa9db1cb204a6b601e4562535ff4edcd884a2ec25d96286f560652c5ac73f12933d9137016f4fc3dc0ced8957523109cc0f97ab47d4d29d577c2618e88c4a4b6302cf01242a6af14aa1bfa3a287a3887885b8d0d276f3b113b1cd601f6e78e5b0a4aa1bdd15a5dac01213f57fac75bd292693bef59a3c1dba65d235c6834568f9a25e0a9c8150199f378ae482ada1adc67af79177d7e8d2c08e743264299bd2e92803256c8f7da050c4b8e097b5b8edfdab9c3d6fc8f6b2077d99f914d6fa20c10b65391be16b6bc0ad69794ee5e6c68b722765b12542ec9d93e6f622eac5a75551c0826f95c69a50e6ba8e7b255e002a6e8db7233cafdff1c0e3106b7126bff22c577874a861d86a1b323eb3936a4cc429e85023984f7940db34bebf39ba32e6242bdd78a9e707ed14e874dd9b93e76cb258b19a129a4b7368e424a56224187a3155349060e8bd0c0f71fe47a003314313a5bc93e774eec2def8a26f48ee2c84860b08e3cd414054792e2cda188d14a7a13ec99dd4641b5ee12592b312192f20ab577b1df34c445ea1d656c9c7ab466344bfbd4be5a4b548bd201031eb3bb49ab4b9c81a76022c413d62836ad9d5355f6b69b9215f9e729e8dd5cb9d9db4b2cda30928886ddb9ff89b48c49c4490abf9dbbd75aa0db55409ee084ecf6c0b604fcb6691e3fd8f54aece7c783e4c623920d52b5aa79ccb6e0335ae1c215c2198c0e65d0399621896009a21b824686114d958bf5211a4c51d0890a376335e50442cea9241ae3f6c50f3cb53088aedb6658254210acc27796bbd7ecde4d12f80db93971907fa13fefa7203e566c63a121a3bbe61c486cb044bd94b8f14d172469160984e5cbf0577d581d4500a9b1a94403de6f9dfcf7c65ecc9f92acc734cc6c0c59c6df459e383b73c265f337a83b0bddc1b0a494a0e67c7fa2455766779ac3080910162627c1101f3d4a545769d6e36fbdd8ecf075c6d9fb300000000000000000000000000000000000000000000000060d161b1f20", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 59, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 60, + "comment": "sample_in_ball requires 76 SHAKE bytes", + "msg": "9e17000000000000000000000000000000000000000000000000000000000000", + "sig": "c900c9555fef3710097fa1a132c5d61623c554c4c837d185b7f3d1671a8926062e094cd3680be899883c036db34e39698133f314f6148dc3aafa088c06dc01009685f1a0ddca3b0311f9f521154c8a692a165c3a488419c4745412cb06392dc6a4d12286627b6eaba2f376a3225ea85f5890df2d03ef9a565ab2f94c99c25d9239bff7ac74e94df677e7282c0dd44c06fc2f26b33cfbf8da05b50fe725ae9de58d6be87628dc41ca774c8ce106428f012f2a806631cb5c763c722e04fc7e44f86fc75b1398a54412af3730a3c60e47d611530b873feba32ba4b34081e02652bc006b9e106ad6ff4b698445e0f0514837f94e4c49f52f42b6d1b655f90254adb8456e903224fc60271f280360a632afb017b5255b6923eb8c8cbfd62d24643e8f100391fd713b27fb7e8adcef58c26ac4953c3a73bb6d12262f78228774e274283f8b810c317d9ec0eafc05c6dfcac42d6bef8f8963d17667f7029182dce0566041612a7c9e6a5a9bfd953caa1e88287a20a83985ee07eae3c5c8aa408667556f7e19d657fe11036a227342358b7e42d5015513ad8ec587a5f19b33ec2e06a146904edb381ab11b1c0b0cada40d89cbcf5d7c9f4e15d8d7cca01ead1a66281d8e5f64ddc1393c2a1270d4a97b405d4d21adb189b8eb44098902eb48b50c5f5d1496bf5d5ed0f74e58b8aceab89a7cfbfff608a8a90d2baacd652115596e72fa1740848b2cb6b5bd8ecee89aec60118f16f4706edc781c6225daa0bc8539d82addbcb8810ce2687f1a171a3aee07516cfd6697c2e5d63629bc43ea3ed4a982bd516f3f448a50dabd95ac314c92f92d468f4f063b1fff69dcbdc3a4d8d21c01deeaaef7b9be41e934a68c144643a99ccceb8e3106ca28e7b0bfb3a9c5e31e33a822573db60e4a520e8f2190361b3387ca038c0210fadfd294bf8c1b302657211a54ff4b159be164680d3eb4c9abc7d6b07c2b81a5085f4759465f95f367005fa33544d56458c2b51bbab862135745a22d994e30692ca39b8fdba968b3766bb627dd6463c54487b81a27cdf9b1daab2a83c6af174f96dc454feea043bc0cca7ff9cffbe6e1ac04ec830a0b4e5d698681c9ce860da61249f3137e7980bde1cd4eb0a545c10f725f26a9e0d4e59987c4d516c28e938290bd88ec1729a553f6c7e52ce9fcc402fffdf1aaf47def0875c8afcb8167a530a94291cf107e095f90d92998f4200fbde7e5ebdb8a3c9282f57c2efe94ccec3b5aaae61afcb7892f0b20c3878e95b53a70f21f327b70555550a4805ac6a706d4bc408f73016b1045e2fe2c2be0195af8c44855e3233f99d5aad848cca7fcc43a0b5a0b37f54fd8d9f24c365011448a85f7fba7a9a7b4aec183bb680198d1626e24948027081d8e91aa6cce10cea8a6314eec2c74787cbb627a09f4ba7a691d963c8c026a2c1abd6a14059ff57493e5bf14c18fe982f7921262c85f80ba72f4dd88eda886ac13e63a8bdd9f72b04a781ea9e4ee2f58a15acbeb2a693a8f61091c02aa0932154817aaaebdcb7471b9d0b4aee6dc34f2ca644b0114b6244579f77e096e121e7143b77443459bd5cd1ddd9623fc5784bf34267bcd78068a0b2225f21ad1935ae44bcfd1a23ab4d012c8ffc9276d4e0abb5f100b6a90ccd7ffc73a44b5169a027b2f92f7a49573c997554e94fd5a4bf54f4cc473e794b60cb3a0b0c5ccfe6263c4f91d77def6ca8c0fbf91e923234c8a2657d91f6ed08e6ee04b3b2a62f29b5f467168d580848912b5c2c05386aa52ff2999d6f7d5b142cb1bb78a70db30d4bdc850d52e0febcbe452966f5a5d6f5fbd28aa498497ab03da0b3b773bb2849a4f1d6ce50ed0d356c3142d33eda4f07907c6205b52cc66d49a5eab02d8fedd50847456702f74466bc54d9d12841e65c0594bf55539c177cae24e9572b1adb5b26310ed4ddc2a14421bcc142ffb3a43acd612df758abfd95042fccd186d3d9c5b0cee0857f37231bc9f8fd80d4db3259465ef11d0679210394713d99bda76d6ccda91d31a287ad749a344050a9ed08f01be70350cc2991dd4dccc04ff78b9c9d339d097ae2d828afb843418c82a707c0eccaf9a3b412fc68d5725a31a064112930a8c6c7350664604606d4d1f817c842ee4ff032f69ecaa0cbd49768d13d06835a07ac388da3bef18115fb096ec01d42966d84795551b9ca8e0d11734161c71713de45b545695b14cf2d883e4cd8524e9da3f26f390dff3a23b605e24e812c561af01ff087c544af8e1b4aadcb4ff5cab5ec1d064cb9d340a8b0273f178bdc8b413ac88cd274b7f0c1bb67f758682e31376632e6cc2cc4c16705eab7b1fdc1127ce985c0caca5818f661994c7a6cede3ba865488811e0cd226def609c0a857cd2fea55daf0e116d18d0d1ab393403ea1393fe4736ecd5f0d31adf6f43eb6be97cf58f8e5bf5b54cd2ac0d2a444e8f5088396fbd587048de2fd1ce1f3dc69e1601d0f723b843cce8cd9e6144562003e5bd448510a3d385aa231c12432ecfcbd58279778b93019f03e78ad39883dbc1907d939c1dbbf5f21a76ded80efce94867de48fb54e64aa0cb93b2931fcbb7cdc45bedee33e1552c624d19b116dacbf4bc874274bb242cf3ed50489d7dda672833f26d7978fc0766c44ee270dc4c70f16705ce3af7eb4d9acd2d135dbbb3cbd8ece1db7aba3e783c853f1b25a30c04fdce0d8382b60df232b3e94d976b66b356827d55046a317dd6ebe6029472dd2733d960dc4b6fd1610d4ce57e45c48ceb482b8af3ff722ec97c9e569fc066edff9be4df60f66e862c06a6e04d7401bb2b7156f8b85747e9c51510d5cc6e0ea37bbef7f8d8124fc857258e91f9e1c182eeff2c4644fa079527721e846ef62bb01ac56d61ce40a2b3ebe75c0b19e716b40a83933e9d4a8a3f31c7245a5cf049be097e7a70921b850978f9f4205d58a9e0360d8421060bf32eb6b46ab7e3378e9c28657c42b14a94e2b658d2f5d3cc3a5e13f50d929204fb4d66230d2075831646fb3775d7dd99755df394c81ef115cbac093c69c735cc07f8917732dfd564d13454f617826b23849a73191b7af7992320ed5ae41b89ec7fd62a3e42bc48dc987ac55f8e552d0e056343b80981c9c2f2fd2d05ea3c8b7be5bb115a686ea99917e8569160a0fac13b7602d46f29190c6f80f69e46c519619d8178b7f79ee1bd6f87afd5beac38a3842f734bcdf6014052ed8769af35ff8a329b50942d1c99134fc0c31bf5a57a26367c0e7d599e5385dbb328d64557d6034122fb8bee15ed62d8de367a1be38f0c62777fd1f27438fabc01b186cc4c045c4c9aca26b64fa1e41bafcf859bd650836826c45622892ff9605b61cdd8ddbf59a4a1bbaaf8f9cda01545f25957c2636668c8e9c2c88dbc129d2633b6dd8152831996bdffc019fefbbb0178a524e4b0e69e1c477bb9007d679725f1ea440fd94ddf2ede8b6f909ff6de1b45603ecf44e63a64d0149599cf49b60db5e21af00b3aa99afa349e96a57cea5763a096d97c17b7cfd6148fdc89470b1873ca1bbaf004eeb665159d57a7a0dd330e560caae5ccf348818984dd5b94ff8d78931624e771f22f0cc18fa54a5068fd9c8123218c4bbd8e8996f128ae39a10118840c63a5d8819d550aef6a11252cdaa0a39936de328c12c5fea5e7f2013b812510e8a75492b5f694f90682dd8176d4fed45b3919ae39f90c2bdc568392c139f85a84940b5e0ea2a79a7b28ac3d5a79e32e545f7b9de9d6994a6fda228030f74288e967d9b60c51fcf047af3b4a86a5163849bec0d2b63b2f89ec5c6f8784341818d2196a7e8c98881aeca2869088e7de9afed497e4535894022eb36fad950e396dd1befe453b14e968b6bd9f810393193e90774eb4131b6ae211641b15f13ed5482b5fc29e68f91046b1a895c3a9464d1e699a30abb85afbe40af3e33a1dc7e95f93294b3712ca8eac40326a32a7f6470f10ec9888708be86c90122df4e3a8da7778ca05a187539064ddf9908d7b6a82d1ff8905dccff610c9765953cd67e3fb4ccfddfe3009fb6f2674bd99228ee3613715897a35849a86bc0a38416540de2b5343c15b1d70d2a73da969ef67d25484bbdb2d9fa7031930065d4487ea212f9fcf7fe9b044d90572f98add754b8f13757651f065b43325eb0cc6a6b72381347f8d56b99876b0cbbd936bb2ac401effb14a5e828a2d74d12fa8aeeed3c64fd15868903920fbd0a4134f24f3f1cea1122c7cf9a5905b70c2162d9436c456d240d509169a67c899b0256d9304c064682a986272d12b9b4562ea4dd581e468b65653d290bbbe6fb42c79f26e2a12792ba8c18bf59f6fab262c2fdcc5e1679b45e8e5e400683b8bce46d4aa7401daa837fbc0f2834d84225fd82f3d35e10f505ddc776a960e3387af22681d85e6a5f3a0318fb133ffddd7603183dbfa4d36fd66e8bb2adbbbd72ccc3f003b0af15f1a03893439b3953670c1a5a9a67aaec332db413c55896f9ad05691ac236ad7a01338152972add9c221a681b7350bb00d365b5b88d04923d118d547ba7bfc74d80e4a54b3b23a9b09c79e9b368ef10d9e7baca7249beeaf1df2a3de73d79a670ebb4d6d708397efff2f303d44464c920631a6bbbec2dadf1321303845585da3b5ea063d436869aaf3fb00000000000000000000000000000006070e162028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 61, + "comment": "z_max below the limit", + "msg": "8700000000000000000000000000000000000000000000000000000000000000", + "sig": "0d671077c3e64cd312a5554e0d6728bb10120a34b3de9a7d85ce41ea84fc1e02695340f707cbdb4dcfb3d6f590978c29426c111719a47a90d0223edb934a716d7dea3804153a75c60d56d0bd4334e2d7ec9bb9db4393eaa9a98b1bc37d9b90df162945841c4815b17fe28090b7305d2e61c3ca0d6f2d7a6e39c60378f043494d541e7f47d70a6813daee881ddc46e8244df4732c82b2d32ce01c0edb0a19a31e63516f0da13228ab4e2aefd5b9d069329af236a971cbf554713cc6484ed052e7826388f5f0a1fd8b2bd1b92421edef80478f457c899edbd251d5efbb77eaa4549f2d923d7fa5ddfc3b559af16a8f690223180ad08fef97e992d5d0e44af54714484359ce1a891bdb019de9ef87b1cc626d0c9a09a2949f15095850e997d42e45774e5ba9bc56bd6e6d19be2ca567b534c155905deec8dba9423469fd25cc807f079dc7bf2be38a350904c4ee3f4d271c90e323fde28b66f91dd47ca7aa74cc3faa9a5f1d314189985b135aa7e6aae41d23a162a8af8e51709b54265b51d9527fcea0c86226cfae391a4b0e18634deae056e8e34ad7902f48b099242e4663e2dbccb9c145dfe0d780590451ee139195ee493c7104792b63260291da3957f1fbfd2e8af9774c22bf224d547b1565759e2437fe48f5a976c2f273316acc789e3ad247266048d19172a16972599f50d4021afbbdc6e4b6f03ab79e5fd4e550f8419b9b2a8ce174c521d48959f83ccb15d8dd55a64b12d5c8d6037382c3a232c89a8b56318f1553c9844b81905d1e00c46733f24a6d5f88b67c0245e206797c1bebd61576b20b179c2ee7092a978a710c74fa32fd648ffb7ddde487309f14866d3466922dbdd6228316519cf1338a0e544de4266fd4d9507216913dd554c4603e74d2b5f8e4f2114059f24bdd3ca44a88d88007fc45d571767616aa45bafd6ef4977bf8459099ad4434b8a214207289bbf59438d0760bc46d555acbf6595a5e5e9ebeb9e175d0b6c3e4b37a99d1e5ab0c07cdfe8145344c9e44fa1ca5d77f28db5246953e4542eaa186ceb249ff12c15f6e59b1b22ad003c974ca59c29e87034d5fce8dd5e03a55bc2c3dc22f3298ba4a0e2c3f85857fbf1d209af66dfa242ba7713b7f0d5b4fcaa73c6e6af62d3676c77474d88c451e19520f0b6783052e70e1f51b5a140b1b1584fac8ebbdb76d0bfe41712a982b82836c40ec4396ec084cbe92a0e925e798a4dc2e91fb6b07bde510e2f4b12731c4a6335e2762b8d65eb1a2ecf0d2a52698794ac293cf4a9c936d6eb21167d923daa11d3c112e3670fcf486bd40baaf37aff16314dc364ff74172f9deb94a70f8ab0ace974d6b22a15415476beb193199e8657ca7e4259e883c8736a975f9de2f7d3a2ad67dfa1169b4b2d83fc2c64799aa36797afb106970ddb63867eb8febcaf43efd467a28212f0f3208a2e9bf8f62dcb849091fc98d634796515e1db40f58d0a30d74a5d1056dd735d30aeb07f63c44614e131a6f0649dd2645560ff7ecdfbfa2700282d3d297054d3ea93657e5a39bbb7f2f1a563fb3f6792482d6afff95b6edf1c38e207d11e453b67996c378c22b8627bf04143d60e7858c07766e976b5e786441dc96ca44c584a32d00e64bc109fe2e0a59d039d73ee82eef1a50d6640c7dbaa4bcf7f232221eaf31c51de48761bc66722ff46a34ab567d562e60322ca9e501f8f4a7dc3eff3d264d59647c0ec9854d0c0c9d8e2d063766870976b4be7a52018cf109113a2b8b295f40a0604d0b31f0ba0cb395396f9ceb29c470d24f6e6d3d3dbc33ee78c2c8f3c47dbf2730bc131c9e1c2f9937dd796f6792b1d5998970b14876080c8e7f9035d63e246ce3e67f60d66e662d3f76e8195dd0d2c219e7115d79283645d0b9a1cf59d1e7e5a5e4163e11d755a2ba7975b983f40d59fba6956c73a79b64fd9f7c975cff311b0e2b8290f51ae2d086c782895878e68dff23bed99e4dbde108b46e5d0b6de55045dc34090282a5cf3e3df31a4e9ad37dce65585a6c72f3ba0e3ee15d8f68cea8356713015a001fef56079a8b4b934765ade73bed70aedb27a08c6f9dd0bef90fa4c7d119810b3e07dac414444df971824104bf43786f9337628322238e8886cf8ee02ec38b2c4ae42edfb0e95d3d354c82da8eadf476d145adf89917f619d32f126033e816f2b53fe8116641998305f48e86062d26cd9720722ab85aea392c804a3e136a00513be362e433eb1a8e9a5904ab3131665941b175c135031d7878c66dac7a010edb12c45e8cbce97837f122b2beb2159052313fe3f51148198b6d3c97851ea3ea26b87e92b7a16abf2c2c8c3a9717bca590ff3cc6d062055f14551e03895c64500eeb25f87e219832cf40f3cefda3d59bed69a39e5b46cf8f3f8a6c300122894954b95b3b8d995504ee81646da4301b6914066b1274f96b21386adae3b2ea22122315c59be277fd309e81995a84881954164ae1a59addb58c9edaadce1793320310e3dc955267341088e398c2d8397bf839833cafcaa94582e152b8ddcbf2c4bd45d17519614bd6de3a08a32e83492c2ae1285d26f667b41deefb6d401e29cb671281e2e06e79cc1ebf470e444da552bf0052db7d087907a06a50b633a6d0461f0ddec6ea2c71df74d85e3a920a77cb43c02f3126880febd1d20794315a4448177a4d2ffac04ab3aa0980a7c413c7baa6f8b097ac662bc104a4fb928e72602adbc4370795434ddf9f48f96a9c6a9227781069e209b826ded8c5239d0609f24b71d31f564dedc6edee96ef862e2a9fd559702a49bc61173023edc0ba2742f1b2278c85887953941d5a58720a2e2120d49bc3e7d6a7f2f00c6a039e137c77db5f7a7c3d43ad2eb0cd564af81a7584ceafd603e0a83823de3a12df635b795dee53cd93145df3bb8497da2b683e7523d859319dd4ff19f2cb01763e0c41574d584f4c5619f52b4b4cc2f2c74925043eea26754d5db6ca5c8b639e79ea8a09c39d1d4c436c0ec849450c1b66e450b3704fb8c9587297064fda4cda8d6be6e10c9a6bd089bbebf8decb1244fad182e6cab87fe3f3edff5c13efab840183db736e701e51f560c1e14827b42d738d37d68ffeca42dcd5466d50841dfdfc6aca437bcdc24884d471bbf20a6921a743c536bf01b2b385fed9a3f3626798cb577bdda634f8c158833e52d121b343dccbc31d3044092ca4cad39e913dfd32bcfee874afd9a02faf07ba7108c05c4beb78c050d5539eebc699fda08b360ea334814caf4fdced62f87c47d36c1fff5d8865992101069fb6679d3f3ac87b7e6e2587214105dc25f76c4a6779a1a9e6022ed9ad59ba3a7b4bcbbd0d63d2bc0674c5fe77fd4fb6a0ebf65b5a73bb87cd5b36dfb71e7a54ce2bf8d9b6a86057536c4a7f0a7c5820828a0280adbf0cfdded491fddcc8804eaf9fc5230d59906dc7a4ce514117f1a9bd0499dc065ac404512b0315a6ef17794bf296d9d371115f60a94015da2f50cb9ce4123b1ec8c0c94213ad8b7018dfa325e182a68602417c95eaf70789d521c9d3124621b36cb022e61f211b29baee96bc013270948a601fa1d3fc66eda9be473b3ec13fd0bcd59b06736e8296053a4758c7e7e1afc5111e1d43dd199aa708d95e548ff21c2d3e4328d43c9637baedb275fd9cda7d1225ef0d40864e6771e53bf5fa836121b4b6e9db6e1021d7bd93e5beef63af89b889ea83429abcae0bd9e1a079bc35e71ca54152c281e1a27921ba4e6b8f7594df32676d4762b82335f1097a92f49a86e5641bf1d77175a9476cd42f90aab18671bcd7c35dda9a1cb5da2f66bb80a5187abf85afb1557e0ca6052c63b6bf9627604823c3b6150eebf657089451bd04981691098092dea8cd5a26a693f0b38f42cdf42f831735869a15dbb3d0c322d85b0ba40017c4cd72e1a60d972a0d8f254e48fa6fc702a555f0f76598d1de2975eff26371fe13a6ee48da8252053ce0396f352191b416ee2f94dc847196def54f311f66896893495f0a013c04c442806c3d4e1f6320039db9bc1d94a51515344249b480087c7e3e937ab3124254c7824a99ca6b03f165d0fbd026a641ecf9e538f3aacf2dc6cfcec150aa7bb45acd5dd9f20e0a1d6ac2a2254a365130fb48f69fec83699413f5ee3e88b678c2b2d1dd316e5f8fdfd5a344c4241719f55e17f2ce1a4658067065efc4a4f970db9f1a52cb0ce7eea901c451ba95d6f2cad66610c33c9e1d63af3310db7e7cb85e3523c79dab34eab84296d7e2f610d23c4c9ace9387dd0d77ac3d37f1a35c78c7c31a7e55a9a4a95139fee0339c2647a56b32864060c43b9aa9b62888f4fbe09053dd5e5d9e71d311911f3ec864bab3f3ffae8c8b790cce1d8d45c3ed020ff01a827e851aa090338602920013e0ce3453104a8abb8e69717b2f7a9c1469bf0c23b79bf38c73231e7eb5537fdb2c677bcf1ccac3c37310738246641f4647721e7a3e165a187ac1400a0ee967ec60dad51eec6da1b858985345da8715284fdd876292493b21208d3d305ab93207c67180d217c22102011f824c7b15c92f2f32d6a39f9d9a17fe2874c84fc4456d39490dad28388e4ef46c602db21ed43054beed2f8ba71fbbc9d03c6dbdeb11327883a7be0c0e1c315d747c7d96a2a5c3d7d8000000000000000000000000000000000000000004070b0f1523", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 62, + "comment": "z_max above the limit", + "msg": "6e01000000000000000000000000000000000000000000000000000000000000", + "sig": "289ccd0e0e58656b8d32556fae8b0a317eefaff794b013ad8a43234658706a2db12585faa83808a733a3a88655a5d7e0201b8bfbbdd3bb545dc306806a26939aa9c93ba58f46ed8d9c37a9f6e0e0afa09f6c3b3f3abeeea3c613d122700fc91e88ffddd965df08430eb37fa28bca6db2886601e075f77bfecc67e415d1ba783a01c4776e9b96fc26a215084828b0921c90c59ef766bebf0210bacb23b7f26b8e572bae202b9131e725e367563c1b36218d63f8a2988dacbc73f4a46f313b97f660057bab41c1ddb99df76df8b22b16754c333ec2f141302bbd2a1e967c50882699860243af42b6ad5f368d245823a71c02a338ce037e337d4d8c5e2c2c7d54436ef786878e1e25304a27058d89e7212f688c50cb701395a5c2f0cb3310c9dd48777f80edb0d2a99a91f0a444296c1b4976b6161a9a43e5ab551b135e0dc66be2f06aafd8c50c109d413215ab4b39d3063e061cbcf57d2af9ff36f89f0c80d483af483673595824ed4c4c71a02ab8c4135a6791889b8e43958a5b509332e84b1380991d79c6397aae3cb3dc522a7da89e925b189a840c2ca9cec4cdfd8bd3831486d2c0d15b1b9bd44684a8aee873806610e9ae0fab2c61e1c0366f981d5a42bbe1d9cd179883f249a7a155b80bdeaa1cd017e9d3e0080ad03a93f09693da8773b1256b22c20a6531a9957ccff0bb44cf0ac3e5b0438949a589755d516fb2b596336c153dcbd5565b6786cbee057a41c10fb762c280e850accdf476392b50cbeb2d8e7f6a6856887e4a2098cd8f4264cdf39972add334a5aab45002058f19c6506069d7acecc184f245a25a1d242cdc41d52f2b3cfe23ba797c4bf87a33cb593963179e5fb08ac5edc5d4521af466cc3c28e6a11ab2f5f8d06d668fed5b09a7f3f6686dca450467c8ce0b8e81ef605ade33349dd1582adcefec138f004df5057b2a54173fc587ebc3de699506d19e61380291fd59e50a8620f1c9c2424f80a48cb1c342534f26f50e52ca4056c315348dadd204467bbb485708007cc2d8477c518047c42a5c7bcf83e763297a2e4e0fbf547b4e3e577c2bca76762b35d3b849966c9a0e9d5cf570bedc0ff1b779148fa125566b67d14b62421761abb1eb04a9fef43c08d9dc793585fd30330d3cb1b4651ede3121e836cf427dc6f93b4dbcd1d3d0b096be780cf6318aa31d23f6353a86da38b34265b277b7710a025e0e91b7133d08f5ded6d74efc88a4f40bd256a6c6f86d4b869e27953a6c1a40d19f76311b48e3be34973e65f17afe1c408062da2e2a8c474c6a3cf32adec928c4adfd9611671f8b04538f7605ce6afe0d7836ecb06913555b730337bb19a222d3a7be5ce8ac44db76a79120ffc7dfa81c07590955587e61828f782e176003dbc8fcc38fffaee982f61e3bb503ffcc44806a23d3e480b4fc5d17c630b2b5855d67e884d6a2ace9e0ce81a7a0d127dfba247bf7b90634f03049d7aebc1419eb4e7b2ba3303dfd3a28fe5d42a73a7e190df163cd241bca717679c819a5bfeb11ff46e06c46c4c9fee4005a466a9e8660e01d050fe1c103d73bf6927e0ebe4c14b314b3d9300362b67ba5f0dc334a334eef48fc248a7604269dbd9dbc0a380af5ef51a91a48689d190d152213a818df7965e4ffb87b3bb7b65fd2ddd35e947789710c898e95b431c0765cff907b61a799d65e2cc99c5696777e703d3d6459a71901c0080c57c636d21fb0c9d1846e356e0e3cc7a6518ac177a61cac9b6ffa8b72cc77bbb86165303813c21c750f2b930c240e4e1a3a5b1801d1c8f4d8e4ed2e205e9b99fea36b0a26e015ebf7dacb547c17a847d495d5d35828683f1432cbbac95d3b5c77b151bddec5fdac911de1f096cde0baec71e5bafd5fa93a4a42185a4f324ad14a7165a38d659155c4afc72e1591689da8f152d2c7836f3ded5e31931b3a31eaeb83362f2f48e04d1951c06916f557289b01ce62592bb97122c110d9b608a181141b78e5ac37171f424041ac9d7c56e6d85fc635279d81bcd9ca023859bd152074b07337cafb0756a2532d2c023e45cb48fafa19030b0b0d79aef3f4576e35ff822e7cd014fb9d298dfa6a7e8dfd4ce2c52ccb88026a620e985a170535425c01695f3b71bc67a9c3bfde4b7035498378c9fae3921a087148cc61ca84953dc6e86e07f6056d9d16f2b4220fbb1b905a1a89ca8325e3d7afa5c18533bd478f47aa69c7d0d1d1f75cbc093cba23c439aacd1911b152107155462ec9ccc893448620ff2d24ac6d4c0d3694de957c53fd21d8f7b83e7cc2ded752b61ddeb1a222fd6b9576e6704d0d1adacfc963cfb5844df234d7eb97754a1c559fe81b4e64907166ccae5f581a4f8b90bc63e478b02a7d6194e3607a1dbce74fe2aec7eb63ecf484ba30399fe1315e59dc2c97f9f6cd188164cae2623da7c83bf96031bf14812612d8bc940cfdce410c7cd5f4668764051b82327822fca43cd49f35db19e1d79765ca4b662c8bf1bbeb180776867021054c3461619bc477c70e6fb36b80feb206a003ed12c3984ecc328d4d476b66a402de1a711d9895700897679a2c6bd8481794ae3da3bf011ba67873757eff29c135085533139b01f3a83a5504bacfe73cdb48acfb08357397c7d612ba4811fbbe51c9a18d50cfc530616622ca8e2f06801473538286ebc46a04c877b72eb8655b4b6c5cc9bac27bf6490c5f593dd020c5d30bb462023381cf1fac19d71e9701c49d539244e5a9922807ebcb11224cf0ebaae37262184c61774df08726981ca49531e417c90e51df7965d0f8508e525bf9cf4c6027d74a11f8141b777da862e50af076572f4c78026c7fd6b565624fe0e2fcf3111b3373f854bad57006f276588c9ad57bda5cb5a0e02e659cd0dbcfdc174a1639e6c9046516d916534cbe5aacc933ac4abe52295c8533a4a1051b5cb4dee48055e7e1d1bcf2154e1ac81a54f1f54fed9b920ffbc2accc896ba0ddeac418a71576aeb9abc0ab3a0bc15e57787ce0fcbc868ff2545a83e27ae616f2fb5939de3b71bc9ec5a2f064a736ea3e4afc1c8b5996f0ded8502c5a16317daeee9ce8320ca4346b5434769ad9b8784898599508e173d7f14d1232a2f84ddb1fcfd8de75bb0d59f8507214df21e89762bebfc4030bf0c9239cd7b6bdc4085f1a71e732a01c0e2024d13e64eb0b582bbe36a214454bbb51eea590ece8d1f81c95891ba8f203ea52c068bda155ea6f992ff1eb276a11c584b5394e562bf6341829fef1936397aefe78264fa7b9b3055c3140cb4635f20b3e4dc809e4e48ab4520253330a35360ed41ea3eecc0ed7c4f77c6d86b507934c8b800a0ef652962d6d4a5d810ed17643e950e3025cff4bdd524c8dc19b9a56e3c79c6d5e106e4e199968660588a063bd3ee369ca6f8c0e7f2034caee4ae4824ec663c4fb485c81df7ea86d7226be80d5e63b3782076a9bcd0f253c3564032f7c82c22050607ec01831f2d5a78f197681365bdedbeb6076037a88aac92733087a110dea7d6103ffe6b8596d70032b903d1e619494797d6e56e133538f80a91d305b07ff4ff718ac8fe0452bb3314f89555d81526a02cf189326861c4248a40866faeabe04cc1a7c88196c6d4fb3fe2af385212a3cff398caf2be65e7576befab7624f1e9f71c285899207c2efd2bfce2ae6ab9fcc6e46c42b028c857a86dcc944739ac4fcdba51b16dea3672149f166ec8e5e6913bc355208e3a73b89480e83890f0e4331aab624ddff3a103fbc4990de6ef8a2a48eeae86d7c6fcb136aaa52860e41a135a50395e12511635dd7dba11281c410173ab8df4408c9a2b51b9c1e0ad9655062957ef4d8f0572afeb829ec443825c082d67866618946f2962f6541c6b5ed1528cb410521e493680e9d937a50ecc0c50784233358a534e8bdb0c922e6a89b179d2299c47c26fd9f3c783514ea19a87b14694211e55ee9e4714bf5808c4da9a9605b12c53148e52014b5983e03eb47755ad4770bd54dd1b071c9ed0c4cf24103973b815d267f3512275e066f39c2c219c475018e0191c5d18457a2f4f224fad67deb3333620fcf48f4b4df62f358960b56387a501e69ace7d6b438af7550d6831d58f0f642630d3ad590c9a588e25610a963ac2577f67ede49878d87a30e69da83c6ee600022f87072b9618137c029ec6292d03b21f54ceac63f740c5a5b938b5c28cbe6720d55bbc43fd9cf915bc199f32911dfcc8642186b06988443e1c557a4713570505ff98b0c516db185da76eafa1aef72732816ff31f1a829798d1a5df2218649013a1463984e585952ef618e31ca2208b162687d7cd723e0b933fa373e3d795355ce1bdf5cbc74e8b2a43b72ea36dfff3cc7e21a4e117829f2f547fa475cd776600967b0c0db0bda413cb905c86eeee28bbb4f1f1dd29bb283a43cd04d2661f069077989a1eb7fbf2c709b304cd9fc3277f86d85b2012270e6fb2d083a814388622548c999938f1d52f3f9f532a9632787bcf8a63c6ddd5e5cef2d19e635579273ecb0b43670f12bf0e93793ff345afc2c49bfced401152f334188310c4fa83f7d3f67b6008e98d1ef9dc383541b466176bc166a0a1928b99443b94c585a5c71727b8096afb4b6dffd293093c8ca0e1028667797cdd4f80a154a5d94b2f662748bacf306345265c2db0000000000000000000e131c23282e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 63, + "comment": "r0_max below the limit", + "msg": "3c00000000000000000000000000000000000000000000000000000000000000", + "sig": "8c5c7a82862de1800a34b8201c791d6c7288225427f7deb02f52748a35a8ac269104927b4913e528717ea107ef8605f9b7ae265f798846a3abf6bbe7bfe0a4d6bef6a1f6b49d40b972a5a1c28d19db196f709b4d962fdc646a7988f80d5af74b29adf34c7a1aac065f639925423d37bdaec428de53efce1db750fc2686af90ccc9e2865497b7cf736829981afc749e85e7e9b5044a92b9ada3740e3fb39251c5bc400379c4ded2615bc3deaafc54e34129b5cd1f4e9612964d353546ee5dcdfba712d985cffec78e74bb2e6c12ab45233ab42f19aa095ea0082063fd0fc8e1023ba1bba2b4816f011c644be94382af44cb7f40c27236ea1e1e6f49ded751927fea168d5a5b2f238360835adabeb4d1b1ce12ccc6c1b8e1e855cfe323d89c34a1a683360ce9189db6a9a93bfa5f70b7238d7f796757d547c31f786c9bf1c91546b325a05034cccd586a6f37879fafc6973fb02a540cf84d1a4f4c3f3ccaea925567b9571bdc116cbb14c884fbe35974980121f7d1e6b0413fc3cdc42dd4fdfa4c33d2eb774b3b188c3a2f2ef07f36489e80027bf5a9e3b607ca45839bbddd9370c9dc98efabe00635622562ce4a12c7c6e2271876f880b8d8a9a63e5c10f349490f982e5215dd94bbb74bca994aae7143c22285c5a15ab950ded53059821a526f6f10fa3feaac97c8b83453b20f314e8cc509fde7f5daba0b2cf4676a9286e1d9ff51f7674decfe2ea54c11a9562b34bc15577cd591088e5abb0e49c152135ab4d496d8f7abbbedc1f332a06d7ba9d9a65ba61b1bf3bf67f9a191c96be2b51d790f8dfa988d9e69a5ff9484967d5fd33b0d7e004a73839a9603dfe2bd2d1f838fea9aa15c9bb2c0f2dec02d17a3041d6e4291bd7d4c00ace00ee1f4a6dbc5e4f76fe39fb4ed231b5df55f7a42b9366396816b5c372975d5fba004a20a7649341859903760ce8fa444945136f9ad67017cc70d3f6c4d8ef7459f1a544dd93d135b888ac4b0f6cee4daf45a436e967f76ec477c8efecad626da1070ff4ab94dda6bf04d19a5391333a2ec6033e780e6b3c9575e9281423489db02201ad6867b3e36e1f462e6b196a2410206a71073f19d707ac63320bade5c6c42e2998c55da602098695db63144da3f9a9f38b53022df84ddf8777a19d678659e44e35f3d8e069adeabe7b79856f8796453f3a413b4ac93d87ddc119d82ff235cad30c561138fda8b0310cefdce08d4fc7794e964df23d5f153a711fb73f694ddbba93cc63902fde5488d318f5359b77ba076337ca43ce59c4a9012ef52d86c34411dbaeb3fb2edb4a70199885d9e04e019c4a406817b96d478acc29f5db9b4cce0da8474bddd09619198d97b3609ac1a3161e75ee485cb6830c307436ee1c48d80290cabe41f3d4b881c4af4b2c2d82f4b6adc9fe6a1532e39b96350f7fe82a23bbd1d9516e1d25f089cc085c5c72b880f0306f73b5ac1fc805b0dc5e80506e06d965f55485fa61fe6e9ef0338e9de6bba5bacc703eee361de69b3264c280d75ed858f736ce9815344c859ec67a95048cb5dc03e328e9d10ebc6d3dffce0765c3fdcf5861c5de3aa7a607bf78334e8d7ba00daaa7ade8f79060b1e57b9d46bd6f448509934debd4e23eae219e04e828d316b77ef5f15041f3945b1a98374d1c47fdfec4e4714cdd7d2391df6670b164805b0a95b2f31d937446a058a8f3a8e968d0da62b8299405fada9e67e001b6e30cc4687120fa759cbb390237cd7acefb0e474dd95d9d790423bb19c390f233e3f8b7739342fb2adfd623d4c780a5d1e702b8efe91e0be39a61a8a93e48a0d730814954a41d472e6395999c828a98d5d9bef23ee7dfbec1c27a79cc8edd035adc5763eae1ede0bf16235b8da7616c4882a6724bfe2f7745dd992accbfe90d1af3e8ce26a9a63701089151f4ca826e59bbcdf40935e6d3b55329d757dd3461ea78f6bb109389b92e41c5d18f811e783779f1dc3a14f0f3e30a15bd7b377c1bcccf621127865f66f64231a4c77a913d2f9f5319028a1d585ed38835df077e0fd0f6101a5b110650992f029bf70b151189acefa1b4584f5d56676c401804a6dcaf7b18d43078089d580eb6632c4757ab77c6c5fe3b28e3a1dd0aff4d00584235b2515971b9644d100f488ec980e1f86188526a37d6343db87f23ec9424c900404a0d4b133df270cccf54338ef5d6e0bd7a2359a0a892829ec8a1bd8f8529a55ceddd1f343ed20e08a0a0b68e3df9b22e1201b1ddd8184e7168e12196f84885d317fa0102753e6dee29a5203d2206fd6eb094b60a58fb3b0a5a59b4cc109e948823781ec9bb364ddbaafb1d553dd4933191b0ad56b7bf3398a4b1269aa329e47646f4e9d97e3aa2fe320efea245db47b63d0c36266c3f7d1c2b51271b06dd995e7bf6abfe861acdaa3534e9c2fc090988276257228c7338209f2cbd77f85b8182150d3287bed5934dec2a6c1d7b2b670716cb35299234fd94070a394868d95c5aa4d92ef9ec6fd05e80747d7d69522cf5d5e4d0dfae512f25d51c0d5a61bb43fcf060eaac8847fc6388377b1f260171ebdc24373a2a177b568f08779ebff6204f2cea49afcd8bb298ceb4f751d69e9bf840b567a1614871d72f5decdc8dc5808c2bdc41c5793e1811b99d3daa9bc4827c69d1dcc4cb55bc8c6366764b96a3114c093892c9e2f1a736f4ed3ef2024360253612747ed4cd3c690b98f65faa23979cb9a65e8122dd30a9c1f2cc3ac1d77783a3014ee64690a62567769cc43252ff23563c3eb4803678edd7a83701412809d343aa4ab428b6a1132b1d559f84063911832be2dfacab5836148ad7ff94ca08afff9835e69f216209aad727ae19ba24b9520bd59ec6b515c328e512e210d6edc9d8d78729bfeae0743e333d731a2b981bf5408239446ba16f37300ebe23bddf746090e4ab57290d2d1eaf1285eb62b968bdec6f5b8bdda4edfbe55cd1d974e2924289366c1f2cc38eadf153cc1666dda976d0fac32285962fb4e5ca87171062aa2a98fd7b447b7271b93abdd28d88020230f973ed7aace2302a321312233927fbcd390ac217a8252a338ffabea7b94051cb03255d04d538e5998c72027251e7f36ade0058eee853461e8e36824055a63d5ddebf3cead8033dd5c8ccea4783675d8deba1cee201dd2154636baaed297786d9b1299b43f058e5649fb01bde625c415656c30bc7c2213d82e83754d43d77b5af9cd2d04642ded3a25cc8da578ccf437aaddb39bf0db269e2e2fbe90723f18b56fc97325d57bb6b8155241baa4a784423fcb50ac5092070a76ef4895209a94f33a4072af0c3c458077be24ddc153449883b3bd6ed3da6e6be85442be7bfd96c0700c46dd79118f67f30d6eeb519323d3057da380fc0cebd9ac6d0299c9ec26f32c04bd8752f710dcdaf2f4ab235f196ad0e54c2f05e825b7d6e1634f3dae1895e4b55fada1eeccf0203d23042111c4043739cbb1b823f6cb7e5ebfa4a8359eb7511dc64ac0efb6a0c6231418e5432123f6a25f4a9f35dadfbdc10f502620e6d76ef9a72f893d76ea7875d909efff9be03400aa8a1e00db7c07cd4fbc844c8b8e86345d49e6e916066d07e06edd980176d4af31d6ab20115b3f20e32f17bc565b2f95f3709d5837fb1f7ec5a0dbc12a8f7d3eb4e7f9f9b6744e4864c343147414b4c104116e63ccb61b5af3f7c5db8b5c05b475cc7f39b888b57298051d029ce9017bde03041abf0c91f32f28a834fa95d60cec9a585c74921f60eba40f13b02de973d9f5499c9b386a5348414d333adce8bf4717d5f31faa4b3e96e91dccf7512980b8cce54ea4be82ad1dbb8373355f45ed6861b08368f9b86f86c35ddee6daa1a336d1c4d2d2658a15bfc76fb462dc0b7c36e97eb16e5eb0773e95581199ed2f7c4c219cc4095d2f8e6ca444d6d4c0754bd39b5494af3d2a01db862cacb1cd2225af884a43e5fa4fe63e5854d3d32f47a8e7af2991d26fff530fe8d57d35ea76a9431a9335fa1f057232f69ad89efdced883e6f8cc23baa485642272c515ddfe4524b3a997e173a22eeb008ba9c16adfa3830980945c758fe92eca8a96b32b274825e2688c11883d138e5d695b10f58f2e2c6931764c91edcdc40d56c72756c1e20494ab26986ebcdb2309060f4eafede1eeababa4d5da8418397a25309d19937dff876ccbe7eff4b58b87a44cddc3c8b1c4f066746036452caa32980e224b53eff0379700a30599aa2372ac4dc081020cb364546484dcbaeb8c3adb6d3ae4a9817dc2d987a690c8eae1863d38d3458f817618edf6416a71b6c30c928d5a6da732c6dffe56d7105141d5941e02bcdd55689892f0e77b9623fb065c17edd799a186f80b686ae5bec88e4f16b05923c1515447ad9c82adca69800a6b372e406b6bf5b5282480823183811a512ef5dfc0b21eb77048091ef023ae281dacdc1ba7d1ed2d9df6811dd5d1c9a1d4f1781b74ff1828a6d410eac1b54a5c251c055ec7f84cf22e3e96cdaefb8a9fb9c6ec823ccf141d2f6dbd1f589c0ec4102f6e91b3f0610cbed643c68824e7159920f52098ae33b5798ab95521f869f2b958691c4a0926ada90bf7c6678f23314479df021214537aa6aab7bb183154b7d8ddfc1431616793bdd541b8d1e1f10124263435606688f200000000000000000000000000050e151c212a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 64, + "comment": "r0_max above the limit", + "msg": "6400000000000000000000000000000000000000000000000000000000000000", + "sig": "44f2fae55e75d4a14261c55d3b8f9d7ce296180728713a3374dc857bae406918542bfc12db9b25fd3d1928c9927b72be345024145c41d3689654b26e1d2d6364395c150047eb8b6ce89daaedb70d8095263514fa5317af3f6c557a0b91bad5e2fb6202f90183d2e1d545f5a09fd2f5cd5550e349e82435d55deec6424abde2e6cda6f794738180260c45999b51f9aa2cab98694b8d0af27441fc4b57289e7ea07b010c53e9a755ccb9016765990942a3d389500cacbec33eed059d412435ddbf46198e3c747b3f41f96dcc879ed3056b20da470062c0e1724112f48aadcbb6ca84e66c4af1418c66ee6115fe736305ac9f177f2fc8eac53d494d24164760e827a45ea20deae2034dfef4f8b552a0b4167e1f6272918221d4610d1278aa7040079672d2d191bbb19b252f84f0cdd46150d7be832db3fc8018aed6087b5e718bbb7b3386266d122ed0f27bc5b746651316620ccae5543f993fd5e1cc62990714e585878fbf20c81bb45edd5cba6de67010ece4135117baac8522ef59ddeac03ddc9abd91b47cefa3beac2496de163c00716956589bf84ff85e0732ed2073d97c5c34a0878c3d329e99a5a5a1be3781fff22646f1bb83ebc311889a56d6def19b8a86fb8553b36a62e13cbba15a507750795119ee309577fa7ec15a69be34a15135095730ae2ffdd72a1cf6a9bb61b221531cbfa0495200ed9f471ed1bcef9cb8bc5117c6d6806bf28dbeaf52bf2a9329119c5c896449c233c4a314076b00616773b87d9e8aa69c135a7d24c51c2acbc6e58df8bb7b6fca5fb14b13c9d0b33acd8e8b439a8e5d5bc31cb5bdb51712d148f935b8728ff46112ba49ea5af30150fa80a8249a2ccfc99f8b7c897d83c428fb15e6cc6e640a697d8fc6672098aec99630250a7b82075296afc00a15507605a5dc0f2b1a0375b263c53c403883f42a0304b99adaf834b1f2599e22125881d87047b8acce7b5728158d178649cd7a16d912177623c637500dc5b4bd13bcda0824fe377086862bae9a41c180ac807896c1371a78326cdfba763946ba608400d930146bf86efa861be282f44bce6e032bf7d98408c3b4a1e96704034ffba07c182fabdf4014ef2ee8ff8ef7e837ad75dc3aafb066d07297a290af9573be900b68db9b6c2746dc0d2b1e5d11f0540d170571ed530caf1033e8a32beffe622e3d082b3bc081b3c30d8e1dd697e9a18432f2514df6f90b9b42cc2c1d321f6f9bfe095ea7229c4d1825c8db8e869b56a40cfcb924304f8eeebde54d615521ebc9753c95e9831556c854fa163990d5015e0370f5d3e5b4ae7c4404c18ee125ea2fda5ac43127ad07567c44c806ee61a79353152c5f46bd98bd2010a53acdc66df92ee6fc0f93e678bf44d5d3c8e9adc305bede02008bde91dcec639554a4dbc4f6625571cb5ec821f2848ed33fceff30d8728880956a1581b5277fd51a61d4e13f7871198b78ab3107701163da8a30b379a05718aa79bb01b528c187fa91466588961f2e58db24a2afbf0226359a4e6c3da0fc8cca4be25f0abae106eaf8e1de7ce9f1b7d24ef25bd41aa98a99610b016f062d89f678142b9c27635cb71e9dad2ec332350f76a2b507c8fed9a17e60e19de2c1875f2b3f4134b903aab8819af224fb7eada88c67875040a07699d95756ba929680191ec8ec3efafc6fedd60ccc1e1300698bf56afaa31c89d16341f3673fe07880e7009e1f5173cf79cf0364f0833a179b5886226bf8f3a6397d8b499e9c020ccfe075fee18769fe9f7765ebb6ee630df990c579580f3910e704c73ad61512a9d47507e8bc61b9a61ac006b751882b20855e6b6ec7c05e303ae533623bc0a8d30f795ae93f057c7e079688b792456deb50dc7ba9da0e141cfc76ad0a902bdb1d032d06fa47a817d43ee784cf0ca4b516806e7631e40bf0671b3bdbcce7e2ed7ecfd994e190c9e500356d60e1c73850cf5b6bcaff9746b3025815bcafae19f20468591b5114d465a47e7e439ec0741eaf533d5ab5c57df0cf745931ca6a4051bba72dccd4160bed42fae52ba39d7ee2d3e2cd20fd299707e2a6228f94a5d32224405a1dbc5f5f0d269a0880cae9f0b7d5c0ddcc01e568a03208dafc9f54e715520ac51eef04d8c4b6fd5ed23dbdc9259029129b1b5707bb197920ce1265bacf2a7a7f81b77a017976c3a51b169eaf6f77fc68ad23e2edc7a07e7d39908704123b2385011d9e6b56eda29a8bee801228e3677241121ca21efab92227475998de40d40fe76412fbdc35449255843e3e6ce620ca0dc91075fbea5e531aeb9db6cb5153c61e7f55681eb46cf49b31b2efecdcdeca7539e8b3da30519640913672164575cb1ce89d2afa22da971c371f602070e2b1c7488f89239918a5f0df2257e8206ce67106d66f308cee488974e56ff840e025140014bc776211d632413152fd55b53749262c477229da729c1e56f885f61d1afefbe11f8e5038a5688835f3842235091f7bd42b908097a8106e4760259ed7464c0dd591ce48e51397bda9f3514b443a138a115eadc2be7f08edb4c9dfc9f1f065430bd9da0849c45dce861bfe839954131fde47e059c5f933a4baf982e0ec435a8230fb3eebc9ecf7ea65d0f376854c331fafadd45b07ebbf3041cf079300a9dee19a5854e147eb9c88300f5580c54d5801af62f9a90bd91da9f52cfa6d01a08ce390a179bfd6a0d3ba8e43408826cc36fabe685e9a1229343e5303b108683a75c9a524eb776336d0687e7e62bd68f4d425bfe7e4db1dcf09fa4938933f78387e48fffd47669233cae1e8bf9d4a2c63444a776595a48b3471a67990257cf7a0417d34f553eaf423f1cc206a9257f1aed004bd205dc1e7f660aeba09dc1f9991062665d38c0e2a4638c2bf61eb459e5e4725a0bbccbddfd66b239b31c62c948a485c8041ea3b6e58a0090bcc010ceaaedf7a2e8cb28cc23c925724f099ca14a33f42ecce7584bdc073e6f79ced17b8c113075f1604f31362893a3b5ec2a4953d77b68281c001fdbc6a853f4fea04c1e73b9bde7bead3aed35ef68e0ad98f902d7a7750b7461ebea8c2b7e9246c49b585107e979dd66c01969c65d34c22ffed12ce733d3543672a59a06854fa81187f3a0b82524686beb3a84c480aaae6af5a43d6c943702e49865935065f972c466e2e33554615f242fa582e04b7a330d84d5352b5a0c1a28c8521eff8baabdff6c35450ed9609fcde9291d0d38d7cc23d662a6261aed3ef34cc281501d9969425a42f050c7e6b0b1f3a549d7ef86cd1a4aac3a233ecc36cfc2a81cd69d951c31290eb73c71582bbacbcb99f3c29fe15d28887349c9aa2496b48ece89d581c697590efdd60351def42770f51f59d55bce58c5d2886d2ccc668237f9230a155be656b2ba71f58ee343317c7f37ce47f5736d99a056ed3e88ba59581b9b219b7e972b96b2e03cbee95fe9a2ef42694bd93e7e9145ebb155b6b9a7590058eea44d1e877254d55d052f9979ec0df8b5b8cfcdc1c858ad12d4495437a5c8247a071997f95e01943207be1ab6069e7925ee2e6e231a2f133177d0a91478c37c19303097971af66759f0eeea69028de913edc1ce9cd38edbd05c3b7cb393ec781ee7263652cdbb3201527501b60b7ca443cab817e829eafbe49c354bba16c1a597703953ec059efc97ca0f1bcf4bb2ba59e5bfbf64b5cef5dd1a7cdcfa40348b5f8979e96371bdcfed5bc9a5036955a40ebba28d1c5d98e592a046320e3ff7e2b72d25db20fb2daae4e580353598ad6673163fa3eb95f5b5561a38fb1ba8fad671795e7f5aaabbeeaefc4a7962475d8b7df0fb93c47aefd46d88a25397f6be11fdc4014389121c20750e80168565771dd932f67866387050d0551664a16b350e4761d6033e4746d7a5cb07b65ad4c13fc7e64a60ab9849ee9980855106c7706253551072105e28ee78b6e19e9f9b25bd39493736a2efb2cfb7416b84b6de23cd559663c2eb8b223f8c764ee4298c75f7f068824c31d4c19cfe9ddf3871f7160c87d9565c5d67e9142f151a33e2f9ea79702c6a7285ff963dfaa68b4129233daeb77e0aa2c1ccc75ff7a35793b2fadf60a9b1b9074f92eba1cff230c461f1bb486b3e9caa0b617abac2d963434ebae2e8ba39b238a167895430f5c6eb86d93d678ed1c472c3f3e9cd58f27f24d124df2371e98fb08442296592d79db40a6f388f85c050e7c434630ba353245692d549166727c31955ed60be469cf60ea09909f92ca87d5e77567036882b11c04f03bdf89d397513adf17146d52802b86797815316c2d21d0b1e95e671fc87e067d2e7871c28257af1fce14533d30dadd947ae2b1b9b78eb56278340cce5ca9a17271e1ff03670d31ea801cb89d6364c0d6b671d190d75c7335ba00497bf43ff1de81ba5faab2dce55f29561d13cd236507a88f942e6feb9e77a552942f6bb53c857f192c126d3f1ac53845f54fab0a3114f6bf3dc6dc251d39174c0f732dd9c5301cbd39a2d7fbabbdfe0a1049532cd378c9ae999700ef370a49206f7f7b208c7fc7318056cbba332b9c73e0165c97fd25f73f156750448c5b361c30e23229f2c325a99fe19df3d884418ba1d1f00708204a778ac9dde7224f687b7d98e3e4e51a244e7ba5c3c4f00a12182c335b60da3188bce200000000000000000000000000040d161e262a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 65, + "comment": "h_ones below the limit", + "msg": "2d05000000000000000000000000000000000000000000000000000000000000", + "sig": "1ca68ce5f7e559793f67c657ac20bb8f3117f28c1ef02b8b828031fe11b146ff61ac67fee066d1a8b9a8d8219909195136ac9afa30909309cd43e54c18f08817c526bb135685d328549f2d0f0d8c73a45606f93e8a17fa3528a1ee64377165c7b98f3fdb6a32fe920c38863d913ed398dbe085a7ac406da7ae2baca87f922a2d5b43601a70d3aee3f182cf87aad2de0e104044dab4fd19e7121ff5cb459595d002f4882753159c7c6421ea7e6f02746f38bc424d92b8c3b353592ca7ea3703d27d58f2df3b23875eb7206b4f983873fb230979083b70ec1e5fd40afb5e3887d05e4eaef8f833339be930c2cff359cc4cdf3fd6e7caa647f3478cc863716f01310a30233bca62a32cedff973c8fdac419fec93342f71e74934799345a6797e85a7c1ccf660fee8ff6402e3c37a70771a26c9ffc9411e745d6962011b003c19e8e267b303ee53079e23979f7b6fb4b5b5a3df866f68421db2bc2eb29fbd6c40d5d73e7570c22b425f5cca416af86f4911766694bcd7d9f55acee1d9ba8f6ac07e2b0d1081948e1436da0af1e622e95e35a2e39065a782e3efa36e0b130b4f22b37ef2670e6b5797826515ca74a9a1ada669cb6d43448baa8a77a9e052e5492fff23ea68698a17cdda1a4cfea63f9c186f35369e57a6f54a161cf569cc75be9347efa9c94a869461ff2648ff1a3c984c67eaf53041edbb4d27c80c9bda409039303052639062dcfe8c7d8066995c49e5629bd0ee47b63b637b14f7ab0964f4adeacd6b139ec3af6530b6147741ece4ce206f9a24d8254af20eb933324b55e911a43cca36704427b8b37b5deecdc0da5d1758de2bf8f6fe639448b45e803df46427adfd6b3bbefc9b9c64deadfb60fd2fe6788f7d65f98aabc960ecbb8f8ed9593ab0a6a2c7d093d74ec17710ee5c98909e529847d7cbe9a69f54628017c0c2222b4ac46134281990b9bd70ba991336de07133ae25701a91306e0dccca6391816917698aa67c39998437325e39ef1f7e8eda0dd330671dd6cca57f3f99c162a54bb23992e44f3b6310de3c8b3d309e203e0e47f05b726d1949cae0abacf838c31fcbf449d7f9d6413bd911c70a823c8940aeb59b7cbb2c64c243a0fb8ead3903ab3186c6390b2678eea04d18a9405c733035ee58f79f85182c520163e7e0b4bfdc03d60034dfaf61644c32bc4cc32beb4fd77419ada027dda3d6f30bb3acf38a8bd4cac6425783b710d5238496331a04b6ad5646d3ee663ea0e50da36b453771976d2e36e0be3d10268459724bbba557505a7e804a088e82e99367508eb5e61919a8ff35eac38903de0529571dea43676e3d2b769f4baf4c1226ed921561817746ad04ea9d30cba41225965f1f29bae6b0bb3e15a59e82e50c0211f22403957d86927bb98fb48ee18260df408ff629730eb5f967bf25af2bf4147be41a5da2421ffea70796b77944479fb15a0890785bad4c0f86603deca9b71b72c6b75879b44f153fdd80412cc8c217ff04f4fb9b8662c9d3474598f806d71ef214784ae54a537c307cc1373161ae471034f70b49b6a574fa6204d7997ffa75a78ab9923850f3fc4419fe365dc4732ac4ba87db246c90466741cab4ff9c3d39cee643e006f35b76ff5cbfaace83482d26dcfb98ed007b97f0b80849ad04e1d422a8c86120d1d90099582703402dc3d8bc192bba4ee993dbfc3b7c567cc6f5e761a5cc0ccfa92fc842a31ee0ce234bcd6888c8ef81e7bbf40956e3855507e2544202e66dbb476faab34c635ff8c873bac2727b5fc4730bbf33c5bdd2f3391181eadf5f54682e13a97f0a06487232da578c89960ad67ff424215020f3fcfa25ec55db2b2d46d3646ffbd9354dd14008512e38e523285e426fcdabd8716883ddfb8db0dfd4c036b51625b26a1469fbf2282b943500a165b6275eac29ea4142afd22d647a4ba6d458a65292a64e21afa38ee30120bd49aa8a0c511f2c202293c717259a07549b12273566f3bbf4aab1ef6c076b0e68fac0d3e777e1f6cca2e75d68fe5a45e5f045b891cda173fd32d54962336e33c25a5c3b03b772403bf8ce296282b779fe439396cf995d3f81eb6b069edf19b57cb1252dd611ffa52eb0023b553b343a028ac241e4e9652f7d73ca9cebd3e3642640ecb9f648fd1cd1f6e7701fef3a551bf60ab3d4f59315cc2b0a9642e5f4e453af47039dc0c95778f2cadc0fa217c3423c2063eaab0922ddc59835a4706136d6e2d0d25f7dd8bbbd7a939e1afa2cc17194430e38b2f983e5e058c9b8baa385ff584846f7862469f5e3c71cbdcbd726ed45b92998b89d83c6d4731bf2f92fcfa454bbe3c7313c9dbbc65708ffa3d9bd8b43df4d088de3c911cecc5cdd415d587310a2c8d3dc10782458c7205419028fef4d2adfc14a55fe7e4507351044820f9d40da5077a93e923f14bb1d12181298c6aa965fd76319052d148a357b8d27b240dcc143fc579889ceb43b8e7db8deea958671b18906c01d5d8962952152eb8245f98229fc2e0477541faa3a57529e2328f27614b7b82abd506d276495522fc21b2f840e34f20cc7d605a986632052ce8e47889667edc1e4d009f9f2f6fc6e4f59ef42dcc97ec813b36c412e31856478e1fbf740ca8933632c62b02d2facea1c5e7936d3cd7971ce35227c5138c5a57e032aab24ae4c6b05ffa7d4df3181fee7b14668f07aec969300c7b0b1216c17de4def301717d4ec65041d4656b96ef7b40fa4c5113c58e265a2c02bd64f7aef278a6f5c57b2eb35fb69dbacc412cf60e06681f892e4fcd7dcb3b6a16d38b7d7b54815ecfa9c1a0bb46138959bc42df552110f5f697de1ace36c45cee32ebc9fe8fe8cd83e29ca331f85898d55fa4bdde5cf438f9bd0ddc711f516fb0e79510243debe71df2a2ac140c19b945841e8ff6baea4ce9dcf038b5a0a19e0cbc90b3c4f3d444813ac7f70b0624bc70a0251675cd9f44b30b38aee30ffedabe5aef29597820cdf2bcbaaf99ee09f9b18fe93268d5c74f44dc77dfc721511f55295e03bcda9956cb74a9bd85cd028ec05b4d064ed35a2ecfd3f674e34cca9f972824b1d7d3a1caea6fd6b51a205fa85de4b44a2f92a45edb712c73a4d10214623e8cdf3b9880cd25ac2dac328c3f54016eb98569ece9dac6f170cd7daaf37d41e6c35d62c3db46a24f2e6f5f237314000d0ef6825a9dc987379d9405547eb27c6d631fab06d5a039d47dd2b1dc63a077b4129f7610458cdad28b849fc68fd5f0c6fbb40fae533a5d8b559355b1db112a5203b321012b126fc6d5181cbf6f3ab8de483824ac07734370701b08b295362eea3073efc3a96ac9a9ee3082ab49afa034accdfced6c16c8d6a7e88b913b38468fc104f0f458a298f0c352b04eb664b1eddd9d76f308a9a29fca3f3fb730f8d1d48db53c23243c8f84c06a91acfb86cb2dcf2b1ef3a0b9b2cb1f4909f48e9f9eff93807bdc21a5a0e1e7ef1fa7bd2f9449eda1bc9b86e8b4efe33221a436a864cb272db8a50ed3696634ae458566e562a1dbbdfb20126c3ecbcf403816fb49adb749f51a76acf93869101c81d8ab1292e4e528ff30e58d4ccb34369cdabf927349fb8ab49ad569eaf0212dcacda9e1ff85493e6852418c647a4697409427becf65fc0710ce9c15ea9d2e799b39674afcbf2097d9fa9f4b10a874435cdcf2137d177d764c21a7ebcc303417a5ed5b94d0a3ae4be16417ff79fe1ae01feefecc5cef9ca7ce8cbe1287178349b33c40b7e7f08ab913844cc223951957043b6feeb1f56015fe5a039ed8d3f07cd55d5981e9f6609f2506dca0426b16c7008f2b25a67aaa3543bb8610354eb214b58b836e74090c7a43a9b47b91fbbc00a1b78400a42a1122dbb21afbe299b619abeceec31b32195ed805dfe64588703d7b12387b55486b39d909ab0690684471564417de34ab2e02da4d3974cfc7e9e38304d220d0a827a3312d085195163fbb712cd0a21cb151165bd98b77978096c1e6f38a73368cf7707083fb107910ed091d659af6a4673f9a155c8a402bf1c07ed416fa18fb66d6ac92d8a4c2d4e422b135f79ead28bbe234f818892b76fba8ed61b186b3b2cd1c773795e91e923c06829fb969926290ae2fe7585534e71c0c58b3bc662d70d537dbf06da794401aa121b4dffa36e574dda73e743c6177cb87bd78d6e0f98b081188d14050ca3f49e330cd1765c467430d197ee509dd8a000168212c683c6c7f075706cdded9c5a9609a6496280c1978d48e845c9693832768c47d9b7d1650e927b694a74ba50f36b924073f71f51b795f7822475d5632b80155264dc892effd97f561c1670d2417d5e33e7d095a8e44d8b0fc57d9ec693d12c277ddf096fa00081b2df89c46b66521295c3428df80915fa7e8f10c0627fab4e5d145e9fb6628bbd7b7cecc4427e73c6b1242fa7cc9df2731ae2fba2f9ef0d11ebb4e718e0a9b8b73b7bd5d257d22bc255ec751d1b381fe080e6c9a3e1204a1123c461796272ddc3b41f8fdd444358323edd11fab1bc5eda2111963ea999d743e6968f158d430fcd9906c5096227b7e5f377d07b2165476faefcb2301c03ea6cde213f7e165913f41fec6753aca94c0f365f60828c9bb9bbccfe030420212e3b5258668ebf1e393c5a7418292d7c819acbd6dcf109233d455a6075001416647a8dcde5f6f8fc0b161b252c37", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 66, + "comment": "h_ones above the limit", + "msg": "9a01000000000000000000000000000000000000000000000000000000000000", + "sig": "4e4f39e0fa77c6d67f49c759b83a72c2289fe57fca50c143c9a831a8114d41edb4bfa0856c62be9f05fe4f3672fe01549277f8b0da08e940f9b7b9d3da74e07fb7cf8a953fcace4239609a492220cd8007966c4e6ca5e8b418663fb1ff486d3ef90333c470699b8abef54c3fd4a25aa34d44ae75c216dd2d3f017082fb01df0d5ca6a85b1181484205722ef118f03372d8dc119739303aca686159911e165a611a678170a5238dc9b5631df11f2bcf3f7e5e8750cb55454f25a8a6e3efaa3fc66c88ad5247397ab153af4bc014895d006307e9a92dbb4e9bf78993980c525f2313d188b0f55718da34e701607d7149eabc05d952c4e12a3516d8e9c1fde6eaca3cace1e76749b156c46f40265870b1ea2fc49d66b600a52beb187675d1b7d6c40445c678974625dbfccf20ca3b65eff29d7fc3033f3af4b2c29494f18515f378ab2f155b392da15dc1f65c7a37ea2bb2b69eb0f8f66a6507025811a2ce5f748ccf667f32b9ebdfa37b3f4a164534de8ca9bedeff425920d38b0514c62068b92024e014283ed633f1820d2851ccc8268a443349903cc70af04ddc4dcce2023b6c0ce625797972883469b38f7754b576595a97910ecb81d97c801be74e7b8e7eb902c42cba946d855cb9dda4c140d4ee37504dbed3ef92ca99572a7857f6383d9ebe3105c90e9cc196d5c259b869a8e8c092432be67cd7b873ea408d455231863c5f34e38fa194686efdb23b79b30b34998f031179fe8dece8e79023cd41f0e92e18fd815d7cdc69dd83d26ca7e850363c3369cfc8706daac31622fb7c419a37d4884edcc10eacf0c4442c2bb47473181d4cbd404ab63bf840676caecbc89cc17ce0d14849a022376ca0548ff552d229c92c05b48c299d258644ea7b6462ef6b5fe965f6129ad9db2e95eaa14e28866d7eca1c90bdc46bc8f0da5868243a0f5a2ff3f08baa067c03719da8a3bc6c1d14a871c7a630dd831911467e1e6f19ccf0a511378319976015d3a3167d2570a49c50fa8d17b1079f092727276a311fe9f0ebc005739d8733727273aa5267021dcdf629321364fcb46836209c54d8266dffb01abd69824245c9a7f6a706e1d5deb23a15330990ba1a8a7032d4efa4de64bbe9ad4bfafee9e23b62faf8ed88093f5459115fc3d2877028fea349285888f84c96a1fa415fd1da7e878496e910cc1037c0a482e65da9209f40ac89e92358374144d0cb729279ad80e28982617f5ade2dcf380be05709c0de1e0191cb873e35d98f7fe09b38fc2430778d44752749414bd554d1b0681e98fdbbf9bf437b9e0473eca06ccd7e0cb4948d9aac13ec245a850b0506c6127830c63a75685e430318365f4ff06dcbfb970626ef2dc27dea0b0a098b2fc5a0ea02fc67eb3a9696ece6c752fee088d8e71be6ebd94aace3c78a9113b8e10167da32230672a2c311f12553ffbab9436de67657725e96dd516c9b561c3b272fe889e8ff2811b44426d26a0c42c24349aa22f85ddc863d32ac91bea62f26afeb350c81439964388bbf21415226b368188e2adce8ecdabbb3e38b1fec29bb55728cd382b3bad0783356c739f343c39afe5a98512b3f1c10058c587c1bb729417c26c18617f96d2de956de1d91cae81e1eee0d2011b5706c3b07580eba78066aa2a812461fc967e04f283113c30f6ced3a237958ad71c9572c8d6ecaeda361171199953fd7bb73fed1588259870adb84744e825dc84613daebd982f4487b464f128c2a7ff49b259c991ce34a013f9374568fee8e357de35dfa5cb43542cdb297d4cd886e0605c3d1fddaba262ced5d1edf566cce3840ba338db4fba236ec926a2134fd127d40e3a84f6b158cc6ce48f238c078a795caa391e793716281c2936397a50cd417cdf9c7fb32b5a8b7690e2ae2768daee33fd33600ab6d1eda8c37bf086bd3c1be7a9a2d79ba6ef635f9321d8d03316a8dc85acb4ed7a39d7cb30a76c04c018fc9c3c4779a8a67e7975c7a45018f9f177575ade5984ff4f7b412a18f1c24402e9bbc5564ef98a920e00d4bcc9e307e854aee1a6a2f421f833da3d27b2e8a9ab7b9f1061faf105d13da2359e9d57f47fbfa56e49b372672de5b460f3c43e9d32a0e3a272fe3efd0dfa4740539be52d4ec7881d9c7915f8cda2b47dd520ab5c5ba8fac6b1888b65d1bf12c976051743d6a506a5d4c550262b23e4995cff4bd6dde88ded5fd49608e791ee74c2c62571daf881ea9e318f96447c0d6d3ebd42a1b4a448e66359db4cd875885f91f7cffbcda373af5c72c67c9e3e8e14b6e0f5d209980d4d9be3884878f7f97aebf74e86426bd8b1c11ee5df701eb47a86877dff6b7df3d343f8a3a24697294f15de1be9c20092ac2c53d2d4e9b8011a2628416ebdae96237fcfc980d69265b03b86e1bb6954ee19e4e7598b068d131510a4e13c38d2c763c32f6a270a50fbfdda0e50b6df49fc85d3b1012b374a1095479a8d330f6c4d46940854daa91d34ef96e33645a444fceee47bc7faa680a2365eabb0c7acbf73bb72364b865e587607e0f4e15162be599703e22f782b15686f32ae096ab178216abdc687310330082a057286235e97f0abfb5b00443acb5db755fde1c4d46a0ce5923d8f7b10b0c4cd66a887c12a02ddcc022e261cc3f6ec65f1d6b6182a19a2c15f412d0a364d01b5eef67f665d42a6087d798aa94581fae60cf86cb9aa90c6b9e63e3269d78eca3f269f382e69a3bf777a420ce56866aa82ca5c4131b34a7c2e4cc8c685368fe8df1ba500fc6f4149ba21311409f517332d54d10337c762e0806d66bbd9426805521dd4fadde9987708f7e5cba96e9afb256f729ac9705c8f9069f77b32f5609d553e1357fabd6afb3439f99ef4d23e1e4e65815ae079bcf0dc408d229fa63b44b50b1075ea4d414caf46654fc462a643b4ed38a037e9fa9cc56e492584a69681bdedb72a48dafea506b19e75724d54cefc666768a7b40c015dc055a8b058167965efdc7122b25807555d3b6e0137bb98b5e16a72f4ba873ebc32c036d2eb9092b64de62dd95526c4900bb64112bb0703783c416be33d3cdbbd441316d48226d63e69471845a7f5bd93ddffbb0bf9385221c3a9d80d89f2a6f6bb233f3d0c604854b86b79b1d4cbe50e76c276b58f25ca31e415e7b2dac266dc3b073f1d6b00d500e54981079d66a1f314653b733c6db19168ebef304e15760ef535b45012fa4ce3eb1ed610a5ceef680f8700c174ea474adbf45410df72ad777c72255b2e77e467453da217345354f3570050c178dba294a95c5bff31c95d24fc757d3ac354cb7d7c6892e8dfd9c0062f3d3071ef316c116511d78becb255d185c81f61c0e29ce521928ce3c83c9530d53c7c6c0535c9b384b090fab020d23c199430889db214a84cac3e06888fcf45f19ec74552e6f45380faad1380b9a7e5413d9c700c70c6ffd003f3b52f624e6b04948ea99b3fb129c2de24b47a91d910f35c24efb9f3d788827b74a566607846015e6148b4c76355b51bcdafafe1e5298ff01879b1e9ebd430681c8c82f194498e78fe3537c99888f11c063997ac36d1a00a38d51bf5a6101a2322f70dab430ea99d14ee833a0859d5bb0da477afe4aa3184e480b14e3f6a362ef3458da1ab5728994ed6c8899dd6e5a9c78b38f370fbc31661e37d402310a9dad865176486144c451aff71715378432604d9194ee88ea6f3b68dfa1b80b0a6c54a2b5cd4c0b4b1ec7152c680483b537313c4b6035cd550d0eca0df04d9a058dec727ad5675285fd1d07a4a7bf36a330ffe620a1b244583bd3b248be735bed76e4f1e47fd1f81d6ff3339be6d9fce2afc4ab2402f3d2a9907c10fe4207ffb0a3ee49a3ec7b3af256aa2d63d69b4dfe69898c858bd8de9ec4285f7de3320c18f669574d6cc9a08cc8ba745af8a5f0086621928a97d6c92103d34c229f6d8b1a36e8e2e86a8dd7ef4b039c1b9546f7ebdd5f179a94146fe3c9c695641bc51db41ff0b074f467bc07578fad564269c65337f6a0b8af6dc0f7640cc42fc8dde6fb7cf677ff7889ddab792fd225ae4c8995dc97afe843831e8d48f419879411f5152cc6e1d9c0624d8b1bd6a4b136d67074606ce5ee30b0136335526eaa352df9fced286530848115509e82a8a4a3d929a5a242415579d97995cdb20c737ce4e63e490860e58855d6574ffdceaeab8fbb6aeee1c73b7371b8d24dfa68c4e29c84a28bf78b2ed283c15248a13efdb4aca13e25f69594660e73dd847c7249d64dc2f1ec51e88c675fa2bd5b77957765e608c3e32dc991a14c68fd7e9bbf17e84b5dea7a2ba9414851a30994483e0e53ac614c72c5b5d0407c6b0dbbddebb4fc0d0c195237f9d2e4a11cd10f464b35dcf9bd90bdab7f1ce583477dbe31b0b5aec91ae86a2e0cde82261665c570f0c055f1391e60669e7e7905fb9bec5f0da2485bca04837e683fda337a302254f80ba295c96af0aa97f673efb3073b581399d76cb234296c9065f363a5e72484b7e93438055ab952fe2e55a23b34acd34957a682ed8f17b0a5778088c39a3dd8489823c8cdf588b73cf7c5010fb36c590c99fcf30cdeaea2f86fb8375aea46b60dacd83acb0b1517589f2c386069a3b6e4f81d445961646b90bfe6e9f6ff3f4653658d1e373b5ad41835848cc7df0000000000000000000000000000050d191e2329", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 67, + "comment": "high_bits called on the edge case", + "msg": "8803000000000000000000000000000000000000000000000000000000000000", + "sig": "93d46453ecb0ad7a3e0288445607fc4fc6704f17b64fecfbfc183de4cad5c86da5b1d6c13fbbd1c1f8a8818dccdd5b075f9470e83cfa231fa5b6036ee49ff80b0fb7655f4b7f84197027c868a4d8fdfffefe3317c336101c4749b465325b45dec08ff915e606e7cfbb5558e95ef29b194752f50d7a5b11a14d131b0c9af6dd154ba49200afb1bae5b9c0ac7fb0297c72281d8462dbc89cd5b0d66256bc942905c9a805fb14b8c4931550ebb70ee04174784cc02fc8e97b5dabe50583d433d11518079803c6d557a13187cd96c8e84e8801c11e2666596f055e788deb0a713862f2daef6e1acb60d83e39003417339b871d27877823493fd360b27336eab688a71d4b0bdea6641b0b0ea1ab65fd4291c380fc76a75dc7ca4e4711af22ab5be96a2e4f301f705ff033e3e8b530bd8194b9cad4f54680eaf9abf0be7af032a2766fc75396894b2f393b1b87af6d1b9730d374a5e48964bf1ec6276e6ba4554e2f6114c04a1489990c7901b28ac94de8c61ab983319374474a2aa8a0e1b5410fb952105a5cc0ec9b9cd7663e532bf787ed992726fef537e3bbe31ba835e0a0ef00398f7d88ac2ed3d59a99f9a6cd49fea68e3a611ed1600f738ee199d3db7ffda3c1873dc9a0b1ba9b8aa224cca56460965a9d6c91d58de6c33f9665df62f4be77d333c4d62b967386fae73830389c71a563ddf7172b68b1faac5fbe64e06b53efcd058d4a960364fd879eccb76a7674a813453cd48868b9fcaa96bcd5dc815ed688f5126557158bb35f2c6a0e4ff4c010a3afb6a4122cd3521c3d9e3c717c79c8062d3fc24d51b122d8a8714f9ffc07d4bd8d0e012d7ea9dbdb2427b0ee12d44367125e63a275d70b4f5ae5d088130358739cc31c3060ddf91c3cc64957c76d451cc028555abd5811fefa5a10633cb0d8aa47a8b6718ec44b1cdb06a35d6ddb332efdabca446dba302e2c7124303343eb42ee3bdecdb894c1768d1680cc98dd628067fb39cb7d67a00784995bf5ea3f8014193c7a371dcc55ba5a3b43d3f2a2228126856ea0d97c90b6081a45491c3c8e20f6dc2ffe331496cabc3619fe86e557228a7dca189e7a3cd04e961616643bdabf6ace94f3d5f1e8429d115b3b8c840245fbf48d0172b214c0386fd320dd1e2580d5f4e6cfa9d4928431633079a90f97258418ebfcdd0aab960239ea2be83b8a057b0548022bd518661b703835e91da0cb568a4101de68d5787e31e285c335e637f83eab3953ba292244286d61e06fcb961e319ac80d5173bcfe7128dad75e2e850085be27356495b28fdb55313d90c4807f6546231fce0cbaf1fc6419ba60695eec63cae97957baca1756630550ca14b56737a52de135eb711c0a1dec9e1811908ecf299198387b741f904967404f7f8ec9f6ebab878caa4b664cb24c53bba4607a7bd6e4c4db5f9c8d712cbab6a506d0902764bb44da35cc0f0663968b3cf5bf92f83724ce08d478a66ac0e430c42ec47ef4de4a46e7d047450e481e4d8468261315c10d5bbd1ee7ac82f0a63a9d4ba54f6e4a367de6b05a560482c8826121ccb90f68037a96c8c30e41f1a96c4d84c021dadf1315c3a6f80e6ef7d26b5e4e87f5436347169d63987c022353a8155670c5be558544ee3ffc3cdb717bbd53edca18e5ee0e5646482ed38f790aeb45bf89a40e819b14d535da8b12025ed710c2f2faedfa716970ee44798de2932946018b6d80715d6f6d7d573b003b576cbe2781ed12984a4171c00d5f12cbf7e73d567cb8d243544cbc5c7921b5a89c0aabcf1339f99671fbe96591f988a06f4bd15feae56429878e40ed8f1e0e90457f1ca21bccefaba6d30709f40508c47d78c72362d5d96a279406f10f975fe70872a4e214eaf3ec9ae5dc3b7bc41e27b72da8f6824c259534216577bf506ad45976e84ad4ed9d5a4f88e3695e2943adf045b91a5edea2410ebed5d2bf10170d3a0c392e72e970c715c0216b97ffc8fdc9089a9fe1e4f4cad9ec4e4e589fe05eb5ace4083805f2cf936bd93b6410138caff44c64be949fb7acc66284bdd8781417976f7be700bef0f78f1398fee069b14e686aa985aebdd058230b7684553f02a1e196ad8661759e45bcd1ab75f8d3ec95602ff03e6b314d8c363cb7c843df92a3a6a355e29a2ca881911b7e01b8e8c40f7395a5207650b0f44bf11b1269b8b0bd4b4c989c98ff0c529e0a3b5391ca25ec366e39fc6da4c474b3ff93938fa064b1a30a6aa56a717d5f5bed2b3cf3d2270819a8100b7fc8e750787acbdf008fcc4a0deaa47a62084c3445c75cd97edd1e4012b0b76b01bc1ca8e5738bf884c6135934304bf625eb8a3ccb29087047a0834943a6bebff481994779c7f6a37fa8140105e849696d922d3e7cce3535e9711422dc217f5e7f2c379d5dc8220a5006b56a87079b1504d6628999ee8158c73d2c101cebf695adb5c3815d9328255c5dc2efb167b36b1820abb79f0eaf4fd84580ff7c3a8b178164f985f42f0dcfb728fd42401a31a2ef2ebd9a26e6832623d7d28d26d162a21c45889253f62a11a2ed59414ff03c27e48aceae70ec4629462842626d7f802371fcd7fc1b97495e861c7391c773fcaa2ed087ae8b84968c573f091ba37097008d6041460986403e8e1d2e44ba3afa5cc88d48780aaceb142512b115d47d7e5f9358678c99d2f481d5740b327555ff41e163bc40b2021d441e5b4ca87b02010a454c6f2c9cd1970cd3846d4c8021ac7028b2e94b3a9af750e76ee37bf4f4ace83b244aaed8c1ba134500357b96f587bc1464cc2052b03634b772920da0cad300ad9de1f53c8b8c373b2e12b552c4410e2836f3161fb1b7c0116eb3fd23fd632fe6dbe2e9999a3994793b713d52c811403c3b9e0f5d9b68b71835e9dac66ab9437b64151115bf3a8af2fe17de721310b459ecabf6790096df03c23a8165cbfb484dc35e0e14ea64a82bc76b888f6bbce7d29741ec435aabec2b9ccea7b61197a895b608d88666c1ab1ec32424bacd2c51b0a248ab18e0192a866c7de1ed43ec7e7eeaf300ea40143af6be9d93bb92bd0ea5d9600f99276de5a23eda8f939ec173a141285b0323551137dba54c2a46fa5decf94158646edc72901fcdf86beba1a8715159f61ce58eaba2fd09afe8b533817086cdfb641f4ec3c079cc27257688d4b1a3dbfe0a0f53e74384e2b89c774ea215ab444a459b5f9ded9019f57aae07c44eaff21c7928ffcc621339badbfa93962630c713072c5efcf52a7f2d09d4f164d0b901d34c37dda11aac6b6a93f30339c786255b1e18ed055121a5b52b1a0afd76ac8d4a3b1e72516a8ccd39cd035c11f676ede7c87d932f1ef99d3b93a79e7edb1923de83498c94db1775e9560753f65a34df282ef215a18662f446e1a80a4a64380cb4991aa5ed8fd1fd24eaed4ec91536229596b765197c10943b4dfa30750728f9b7ec39b798e33572da27e8b2bdc5a596946e99963a1e164085cbce5529183159066411cbf62033b41b2c0f59a4d771b4aa9a82bf781a384a370b73b59c8d64450b8e75ecde8c7eec2ea52351711b88b7e462dd7069c2f3c00a0656cb3cb5cc9338e2dccf2e0698be77c19f85271642b09c41932a0a54f60df6093aa41ba66734f0c91d958f9798169b35697ba42db67d33b9151b3f176fbff73e73b4bcdd9f2b80234e20ca079a0694977e6e150d16dca677f1a195348942827ae2a32a7fbb891df99eb03651ce7168d8f26db3c6d71ce778fc0dfe75010eb80612908730672fd0344d99a85090e78e454cc7edc760cb49b672702d388689819f55a353bd8da92e17daa34097c1cbc4574a243efd2dc908ddab79d7cb33ee1cc7a0c3564ef545d100bb6ada9d26bbd306ec7b543e0bc2477d8a283823b65b6a91ead38867bf83ac3643be995b38897307cfdda549a9732b2c3ca88babb8dc9c3b59b208a596b57bbff42c586b97a0e55ad9025f6c421b19c1ec36b436398c413ae55d064a46e2b97a4d475170666f6bcb7d5bbdcc2a3d28be3e5a41abea942ae836487d7325af729116a3b009b47a1efdaa4142a054bcb672951087891aa3af203f0ed41efc9422753a7b07ecafe4d9022e7c73893621a648d7dda02181809d7a687301d156bd90c3e15e1a746b6ce93fa2bc2d8309b8135a95c0d12700da6eda1bac9ea1663446cba9e8237dd019d7e016ce0600c8f1cb435a8f4f52deb8295ce00a07d3a32456e44bc2128293295e550e816069979fc379da0a44d9116b7e6a1ffebb750f2d7f86a27d6d93cfc739efadab272c77a595f6f74318d14fb4e15ac8ce9fa0f7c72ab7720af4f3da27bff92ba62fd7fd79d96a25c2fab26034e3f331db56add047c8840933b53e06a0607bf3dcfa4fb3227dfc8a33a26ec9fe03ffaa538b6a8ed9a58df01f0b62cebd303f11e24fdd373ba23adb698c6745c41f57cfc465d10aed6b08f171acb42c5bdea41cba6fa8016ec7603591468d310746513a24f77155be87f507e7fe8512f2fc889af9ebb145d5c33137aa7e3dc9e14d3a81c2a5149418782e082745235c62969d19bbb349b550524102aed4c1d66a3a98f8646f6f0c0c506b64748c6747b1c1cbdbe815005a71cef21a1c324797a0e30413292e78bcc5cc548d99a2106b9ea6eaf000000000000000000000000000000000000000000000000000050c1415181e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 68, + "comment": "low_bits called on the edge case", + "msg": "b502000000000000000000000000000000000000000000000000000000000000", + "sig": "fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f74d9cf676aedd1067c91a5dd5d4edc46f868a93ffec9f44e254e44f682a153aeadf228e8db7c5fcfed30cc3408e261ab896876bee56660d2a7c1d7eac20c5754255206a178f7156295065ce7876f90c48f44bc37f3a00e32eefd3a4bb1e298fe283d106eaef92a33a594253a2a0790976a1d04636f8672d28c06c852ea8bb43b84bff512996e7616963d5b9a2906466a152c7ea9be178be35405683b44367af85d2daad87630c1e21ba5490154f0141780f5ed0407cb0b975dd56d5930f9b26413b843b83f3693304b0038bd3e4bb398868060ea18c9c67099376470a50deb052e4056743fbcdf0341b192663bd1c21ba3b3d5666e0d0e29c4e1ed0759ab0bd9d1d355011b94e0ff0c049b03ddb7138640667144fcacd7265f55a07e5387f1abd30c037cf14d436aa855f827049215440d8007f61460500d943f57ffb6bfee6fedd2fcec52882d7d8da1aab29e892c8beac3df3234b4a7d2eca3a45c6623c52bbdd07c1c94314b706988a52029f8f8b06e874b741d72926652c78c6ace2cfd8864eadb2e4b39cafe6e03e4edbafa2747db9bc42f92af8b031e3e380846b1bfd15ade88c285d6a6fffe91eafc8b17de6cbc68575f323cc09fc20e49e8efd76f9568bec486b78df4245428d8d0d5f53873e11de65fda4c770b521a8c67f5c51d48cc26358954514447881fd9a42e5891dac7e1db5249d7861b322111e5fb929bee9ff5e9d5a2667ba93e63fc03040d2e82648f89e89dec1d1d2dfb9efeceb7940f7dcbebeb5a239cc1c54d8f7d52cba220d0634e15df46a58280bc5a48840bd39274cfde150f9ad9a40f6398d715350925f0e0501944409f32331a362bdaaafb3d8ce71c964332d6afb7e684f99951246d88081c86744ae68133f22c53a4b5ae258f230a98491d2d43a79a6d0f4d54a3b62013965ac7c82d0507125a38a0277f81cbc1d46cef2a131c6f51b88ec0baae0c82a6a0e72831cb06f9116cff5111d597e01057d32805a008f52c9aec3311139bfb35982789ff83bdd0c31e9f1080e8ed8eb99fde66bafb29e3357389fe3785b60c78e229ef073e1b65e34d848bd4d8a4f251551e2d38d2546afbc205d3c6dab34d2b962b1afb44f1d22fc10c6744fcd6b636afd3cb414b16c2e0d708fe9f51ff19120bde693b028b6d1e6dbe37b4b8b3bc7c6f7a842701603869d3ded572500f085502efc8d3cc62b30e5cdbcb5e86d9c0d42973bf755df539cc0aea58f9148386db67bd2bf70cd12ccd96d5c66fb271416b772465228dc44b079178f9b766370b66a79b871faca246ca6f8f63be9f0668297ac446cad5cf4a83318b1b00ecbd283f0eecee60a9a37a27abdbdbe382e307970002837dfc0bd3934ebd008918fd4bd383c02c9d37f694996e989a49075767ebc4a2981ef5275455e026cb0bd70946cdd1fadaf251381d324f9efbb860d1b280c29685bab97d010676273b45cca12ac3966aae342c84e2357eccf252577743b8787967b40b07ef2d3d9e6c1a3bcb059cba0fdb7f0d4f815c242b8e14acd3375e608e9230ba3cf8718f43882a3e1e661a2bbe81830d34741f33473e263b3790abe67acf29f5df44865b2ffbc96975fd62738a64112deda5a2534fb0a23b3b3024df986391badf9041c593c313a7ca1e1fcffcb65b07b9a99337b4a4acf616cbe1553eb9541f38aa6247342905995233a28172ca13396b2a9662970120f82b92a213f43de7a232ccca3268265c9ce042d50915430a6c455f32277da42f9962fb9163b623231ebc080fa7b8e9f9021fcf85b98f9c483e4d2226b9326a5bcb2e7449ef029ae142d3a0f0c28bd4f7e9c51a12e1336f24dfacbc3f808a8f7dd683027bc948763b808fb0037394b8b41bc9b2ec7887e67584e03d11b15ca203b2bcb43f8881638c4e4eee7f846d09c7f89b7739df22b2c3acc235032ba8f7ae27b5b9d25733143e80a4cdde6770719c1e66ec2ce683612233e88fafff84c0745a98aa1254c8219c6c556348c2b5d1beeb61532d6bf7bde153271dc647460beb65fe0055b33fd6480dcbb9d7d471952cfa5be260c39721a8c5c89b9e966ae2dc9036451ec9f2c49433b2225e13f23e20c2bfba81a7b3a555883449238f7d48213e9f10ce19e76f1bdcfc73ee5524bd7d8be0a4b46784e238233c04fb99383ec7726f9717e1179dd14fba9ad6c2ebd1699f0ab0e57e6cad23875b029e89cfda06f51266ecd2eed4edafb51e82f2a506d57ba74da611774ca5fa2fff4a976519de425885e7d09219cf815b1767d4fc5a72c18918991a285086a6a766614a4d245387da50f28dd778fb33ab88c0918feba3768c55bb1f07aec33cfeed33d6faa4d34fd7227b365533c1e67dbc89f0b20195cf1cbd480d333ade1c9bb28308085b72ced430268c1492a27050c43668adc9cf8b8509447cfcd3c8f8d8eb554f704101786aa9ebca86991d250776a37a1f56fbf7d08e591f978da49c3870625879f70e2418aec5cba32fa8c346fa9038baebc35ad0068a4d03537aee14c2e71570a87490377fa8dd66f995aa044a522f0c7025a7ab2dd5ad30a64268dc112b7f9fa156df64d631f55f1d6edc55cec570a9c7372e29e02c8d4867bae249431dcf6ed2794a0183f0f7501201feca4a81d334c642fc8d38e9a90fa77429665e09e214797dfa455ff47c4f219d3a2cb0176bc2236455123c1c5da714ad29d580fb194f87173a18", + "tests": [ + { + "tcId": 69, + "comment": "short public key", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f74d9cf676aedd1067c91a5dd5d4edc46f868a93ffec9f44e254e44f682a153aeadf228e8db7c5fcfed30cc3408e261ab896876bee56660d2a7c1d7eac20c5754255206a178f7156295065ce7876f90c48f44bc37f3a00e32eefd3a4bb1e298fe283d106eaef92a33a594253a2a0790976a1d04636f8672d28c06c852ea8bb43b84bff512996e7616963d5b9a2906466a152c7ea9be178be35405683b44367af85d2daad87630c1e21ba5490154f0141780f5ed0407cb0b975dd56d5930f9b26413b843b83f3693304b0038bd3e4bb398868060ea18c9c67099376470a50deb052e4056743fbcdf0341b192663bd1c21ba3b3d5666e0d0e29c4e1ed0759ab0bd9d1d355011b94e0ff0c049b03ddb7138640667144fcacd7265f55a07e5387f1abd30c037cf14d436aa855f827049215440d8007f61460500d943f57ffb6bfee6fedd2fcec52882d7d8da1aab29e892c8beac3df3234b4a7d2eca3a45c6623c52bbdd07c1c94314b706988a52029f8f8b06e874b741d72926652c78c6ace2cfd8864eadb2e4b39cafe6e03e4edbafa2747db9bc42f92af8b031e3e380846b1bfd15ade88c285d6a6fffe91eafc8b17de6cbc68575f323cc09fc20e49e8efd76f9568bec486b78df4245428d8d0d5f53873e11de65fda4c770b521a8c67f5c51d48cc26358954514447881fd9a42e5891dac7e1db5249d7861b322111e5fb929bee9ff5e9d5a2667ba93e63fc03040d2e82648f89e89dec1d1d2dfb9efeceb7940f7dcbebeb5a239cc1c54d8f7d52cba220d0634e15df46a58280bc5a48840bd39274cfde150f9ad9a40f6398d715350925f0e0501944409f32331a362bdaaafb3d8ce71c964332d6afb7e684f99951246d88081c86744ae68133f22c53a4b5ae258f230a98491d2d43a79a6d0f4d54a3b62013965ac7c82d0507125a38a0277f81cbc1d46cef2a131c6f51b88ec0baae0c82a6a0e72831cb06f9116cff5111d597e01057d32805a008f52c9aec3311139bfb35982789ff83bdd0c31e9f1080e8ed8eb99fde66bafb29e3357389fe3785b60c78e229ef073e1b65e34d848bd4d8a4f251551e2d38d2546afbc205d3c6dab34d2b962b1afb44f1d22fc10c6744fcd6b636afd3cb414b16c2e0d708fe9f51ff19120bde693b028b6d1e6dbe37b4b8b3bc7c6f7a842701603869d3ded572500f085502efc8d3cc62b30e5cdbcb5e86d9c0d42973bf755df539cc0aea58f9148386db67bd2bf70cd12ccd96d5c66fb271416b772465228dc44b079178f9b766370b66a79b871faca246ca6f8f63be9f0668297ac446cad5cf4a83318b1b00ecbd283f0eecee60a9a37a27abdbdbe382e307970002837dfc0bd3934ebd008918fd4bd383c02c9d37f694996e989a49075767ebc4a2981ef5275455e026cb0bd70946cdd1fadaf251381d324f9efbb860d1b280c29685bab97d010676273b45cca12ac3966aae342c84e2357eccf252577743b8787967b40b07ef2d3d9e6c1a3bcb059cba0fdb7f0d4f815c242b8e14acd3375e608e9230ba3cf8718f43882a3e1e661a2bbe81830d34741f33473e263b3790abe67acf29f5df44865b2ffbc96975fd62738a64112deda5a2534fb0a23b3b3024df986391badf9041c593c313a7ca1e1fcffcb65b07b9a99337b4a4acf616cbe1553eb9541f38aa6247342905995233a28172ca13396b2a9662970120f82b92a213f43de7a232ccca3268265c9ce042d50915430a6c455f32277da42f9962fb9163b623231ebc080fa7b8e9f9021fcf85b98f9c483e4d2226b9326a5bcb2e7449ef029ae142d3a0f0c28bd4f7e9c51a12e1336f24dfacbc3f808a8f7dd683027bc948763b808fb0037394b8b41bc9b2ec7887e67584e03d11b15ca203b2bcb43f8881638c4e4eee7f846d09c7f89b7739df22b2c3acc235032ba8f7ae27b5b9d25733143e80a4cdde6770719c1e66ec2ce683612233e88fafff84c0745a98aa1254c8219c6c556348c2b5d1beeb61532d6bf7bde153271dc647460beb65fe0055b33fd6480dcbb9d7d471952cfa5be260c39721a8c5c89b9e966ae2dc9036451ec9f2c49433b2225e13f23e20c2bfba81a7b3a555883449238f7d48213e9f10ce19e76f1bdcfc73ee5524bd7d8be0a4b46784e238233c04fb99383ec7726f9717e1179dd14fba9ad6c2ebd1699f0ab0e57e6cad23875b029e89cfda06f51266ecd2eed4edafb51e82f2a506d57ba74da611774ca5fa2fff4a976519de425885e7d09219cf815b1767d4fc5a72c18918991a285086a6a766614a4d245387da50f28dd778fb33ab88c0918feba3768c55bb1f07aec33cfeed33d6faa4d34fd7227b365533c1e67dbc89f0b20195cf1cbd480d333ade1c9bb28308085b72ced430268c1492a27050c43668adc9cf8b8509447cfcd3c8f8d8eb554f704101786aa9ebca86991d250776a37a1f56fbf7d08e591f978da49c3870625879f70e2418aec5cba32fa8c346fa9038baebc35ad0068a4d03537aee14c2e71570a87490377fa8dd66f995aa044a522f0c7025a7ab2dd5ad30a64268dc112b7f9fa156df64d631f55f1d6edc55cec570a9c7372e29e02c8d4867bae249431dcf6ed2794a0183f0f7501201feca4a81d334c642fc8d38e9a90fa77429665e09e214797dfa455ff47c4f219d3a2cb0176bc2236455123c1c5da714ad29d580fb194f87173a18dc00", + "tests": [ + { + "tcId": 70, + "comment": "long public key", + "msg": "48656c6c6f20776f726c64", + "sig": "69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27cd931f803c2103d181ee5228549e4f2bb5cb4bfcffcca966f1ede24a9958ad53842a15db226adf91810a689f440ef71184a2c6b4f40e5f133bde58fe9331defa1aabb9819abdf9cbac8cc564ecb89d648cb5d66a09453da4dba410784fbc41db6216e19856de2bed90f6c30f3975a9b7bb47c2cb63e0b3df09331dbfbbc23c15a45844ece88226fda9071185fabc073a8e832e7a940877972734ca3bc6bd66bcc84a61b683a3e59c9453bb1ae493ea1f0988c30e05dbd65e8824e73d7b335465e119f7b5cb640725121565c5610f7470ab86fdcc18bb005eab35929df14652a9771a496ec4d44ab84688f9481bdbbf79614e8c4fc611e1086bf2d4c798174039dd9686aa9f43e4cbaf94f9ec0533465d327e758f99637600455f5a51e9cf4220e8cada21dc8a5c650cfb00d964c49575306862c7fa4128e6c65503f93cd3d2c079b7ce193da9c9577cd7deeda0f66c087180ecb7d561309cc1a2a9e9da2093ff5cf1f8bc15f1d1d91f6462eae7a9122234e660b1739b7db3043b09a1bfe0af241eb0249efd1f3255d7bda8749bc0fa6c193b52cb8b1d3e1b4eed21d7d7bd6f024c680aadadacf51b5f0bccb09735594f176242cc95fa4f61ce884b73f0878dbed24062e219ffef82a912435b55f954e58728c79be21cec1bd74b0bd80f5fd0a5cc418c8c936f2be63bcdd3902a0a4bbde4325478fd58bfae7b5dd977139fb7dda993adc68dad65208bef03fb2a20f18ae37344a2a858dfb47b2db4c24488650d19f4aaabb43fa8b98f1bee7a4d7fc38363bc9711d63c691feabcf95336c67e2ccca3f927641ab8d9b97f709e96553ec1a4948503b4783054c9d827756bf7cb8cb74b1dd5077330b2c2ca7460de521a591bbb8dad8575278e62b9129add32f30165caf72c05788773cfd4d7fc6042a72df403c396d496b17893a9694e0a067bb4d625e409ad5f0e818a81f314694e6c3eb63f0c7f468511462497eb40fa7a09d0d60e5d4bca7904de88a3b9b3df40fd4854142302481fa7458d59dbc295db173e1bec6e7c9fc6f1c46a4c469b63b286defbd30e1af010ae36c9cb50ba5e201d7fc5cc5386eaefca0d81c22f49a7ad8ecc272141e58e90d6e88c228c9c0d3c0947e13daffd477a055f4777761d060fe2505c8de34ccc96a3147619d424650d6230840c3bdb1a86db1d0969e1f5db8b98a8a328c9c2ffc0c90732845ac67efd45e29d7f5335637683a019c67b323e0ecb627333568a6611cd193eed5d12eff8528ed26a37fe8f0ea7ed3b65f434d69d4aec0b1f4a2ce9d44fc111d9e5a6c99f346379beea4ba3b5223eab08dda2841086d6974e1c638b82d5fea7bc85c0eb697c76265d147637e919725bc00ecbc66163a8c589d07d26a61c781eeb47189b993d5fc31876242c79b2943a4aad36933d576c21ad62596941fc9bd4fddf223f646858a726d489a0d89ac38f609092660fcb9bba8b00bfece9a1c2fd7d5cfcb3ed46b75a7d5f5f89694c76ef76443e37d0cf4e1bc34f18d8faacfae991f2d10e06cf46ca7fb40ebc4f849b1c6c7d9f33ccdbe9171c59b48b6be2c18923bbf33ad0101ed73af20150885dffc2f7607b1039d4a020a597acb7ebdff1b591ef32c213d8b5c67c593e91e6c123f82bd3f55c5fac30ed7c01bbd137adf7a1dd49c4338235da356eb6f4a4138626a832d2bdf590a15a98258dc283bde285d12c1bb96e4c664c720f8b04a21f70b70c6dda30402b8995df99f72d987b7725ab4426dd9a04473c7079aada56547e9b275626744ef69c2f867752e0a9fd18dc6ddbc6be74bc42e23235e8d12a66de855046c6dfcd4e89b34dcd0d1eb1b0836b74431e8c7154b14f6077dc6baf602f86afbdc0dbe1c1faf81efd83b7361ffa9d46449b2a10a040b1857cddd5f274de67559006fab88536365f63ff9109994d395baba2410e613548528311ba3b300b20ea1b29a333ae40c6e77f30d2e0b2cbc47ffd849028189489c580aba2f2bb9add957a4b3257e3740e81515930419b28aa91df5ffac928857830e20a3ae970ddfc8b277f656d117cef643dea29ad1479c1d9d5f5296011aa5cee51dd4440a770306a561927b52fad013801252a9714706e3d7aa198119467bd5f0f4fc1a76a5a727b0dab83de31b4581858be975072809cb1f7e56bba1dde4af1122b5a28162bf29fab7d4a864352af1699f3456f4d7bd72752d477ef16fe44bca379259f6562fdb8821e8bed4772b3870397474929f5354c360b06741a9e2ff7f62e3765a1ac1eb69507ca0682282562744650769798b91b92f7b7b6e251c1d590aeb4c69154f262d3bbbf32653cc1ee51274ef7137d87c5d71a7cb4db570b1fc0f98627aa025a3cae57756ffeb5e2ca0dfc2cebee981e395166470ec1feb9705a78ccaaee282d3ba43073f9f4aa8026b581c2555f2a77467e0f4d9d25ed02d59e1e2d6968442bb737ead64e377cadc229dc70303d5d0e30bcc620dd22736f4674444b54ce16658058419bbbdd2b75937df077b2bb131ec9cacecb6720b97aff8907785d50d48d6896c54b262fc114d34421d3e210e4a393a357011eecb39a877fb2b65da40638be4cc434a35b3b215e3fb673a302656c96a49d6d007c1708fcda4c2d1e1699969835d8427c1b34b14660c2549df232246d729bd75327458895df9395f06d6c8f817f9b6ff38c48df0c0378c035cdc3a3cc9a8df239597359", + "tests": [ + { + "tcId": 71, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "643624d994e78995f463e4fef0589a691f9eeabada4672ab948204776e6f973053461e5e5d506bc427aa31aae371805f0b558002cfab1174da48fa457204d4be9e7c4a5cef4f2a3d12ca5baa45ab91020a01455b1426fd3651f8d82ad270929fd2ee597b313a663c553f283089c1d4a068bc8f1a72f518f2ae5e0e33531da37eeb83810adf0f407ef09df510319c8dd3efedf52e59dcaea158792a58420b373acc2247e4710b2e7e3d17faf81333afcb5608a0cc5803fab5ee1533fd63724cd1782aecfca3b090dc61907ec71220f20758f1edccf7eec6ba904ab241b151302b1cac2c0aa87dbe8290320604afe1fee787e5db72dce3813720da68758541d2d2e98db1719b4470a7a8924b91fa590701fc3f9b74b56d608aab2749a270a3361a6b7e514f3520b35cd7b973a759aa8626431305dcad6926a8d835ae9ced34557773c90f293ad98cf0894c23039c0b3dbad65b626cb8b7534c89e8a60355d135a35fff6d00d6ce34ffb846fe02bdefc7d9c2dea6148eff121a964d1eba401d2e32fbd68c3eeac48a9c13700693c1b6ace46fcccf3f467b7d2eacb49b62778ca28df4857918aae2c0e38199394a7b4cf0c19dc10c6a5e4807245f057d50471ca585eb8369fc463123d5daee37ffd2bdf33e01fa5220c92e205fecb89cccd17492d62c0665580084c4197517ffde7799b3646a405ad243bb40ef1b11baf105f33245ab4e8844e792dd69c67119cf865d158eb90836bbd86cf336b33b62ffea13bbce0403e444d4bedc25d65b9e32ab3982fd9b8a2417c8bd76ce284df061b4db54e840f28035e1b7bf94e42a2cb097ba8a0d4eea197596ba6e8ea78613a23044c07ab602d6cba7978a120deaa6aa6de89dcac525b8ce47279138e21255a9f46a4b97888093ed9c7a6849bf6ff7ce6192b381557ef3e44f809e724ddfa502ac7c9e6154424ccfd60d8cbd2c43eb811d042a7e504ba8a426091319754327e45decd1278889e206a9002e4a45d54fa40e512c216c09d9348337b1ff64dbcf03d974bc1f15f036768e93c6281b14d1e8198f85fd812d421766d19bba569f335955a058b35a557157e82a1a3062e76686397c26279860417c2441852653b3b9304db38acda6814d12a6dc88b307d0d055e68f6ca2bb094e9aa22f2ce792da36ef0cbe0d04e7d8c76bd49fdb4a0faea798632f0c28349ff707956b40fd7944a09d18e2636b1e2bb9d8411fc450547775d218002cd7514e871d76adae54242c0f62423142fcd88f7e82572b38393357458cb36a8f6a2a0daab1b593f4b806e79c315144d4c526c7ca44c3876054bdbe81d9ea50ffdcc55b4e8b73e44b7c01c378183b1a638deeeae46003abc4db3a55fe04bbcee3366dd61b8461d286844c8468b8260d501307537f8484988c8cf8f167d85b288e89f21ba0e0b4fafdf94ac58227c3fa5a921f751afe981c5fe48e26fe780adffd6c4ffbe6609d0a822040e90a3d5ee047dd5cf86b2a80f117c9316f32535bbba7977969b07034d61db21ab76b87953d96d0c015347e797b68f5f912c6af0d2ac0a7662d1d1ec5e3a0bd0257730f2729c142e4eb98f4bc6ce4873420222c01020cbda19865ec27577aa9febd400854fc13eaa514284f8a5a5e8e3e3d1a3dd41990b58e1eecb7c2d09d502c23bed2025e06fee4bfdb05d7c73cc4e447aea9a98d90dfe72325daedbd989fe96f27c8ed3d10af771c12d84e488cc52788eb68adbfe35259135c12afe96f4a97d0e30bce518f25ab8e1f5296d7998406799bddd01dffd05247f2a6f565b1609a15f9cd3d1feda69e4842379ae3b0d705d88c0f47613c10825a145f5d8da8e527b3a4ce3caf9dc3b3559b7955923288443f31b164ac6058ab228ed19d73ab2dc870497969648071d78838ac13aaf43e50a6a5a83eeda8df974a56ec134ac37a805d3939b55a3211f89e0a0f963498cb6bb44f9f897a9c7b686a05f813c06416c923be169e7ac2fa2d12633142d2d5f52d8655fa76e1d7dcc63b1fbe97ddd65b886ce3850480521d36f8f308f5a4eff5ad242374304d238dbedc8b13f2ef5ef6bba9c818733be44f023d27f79dbfa76a0eb4e20304de0c7a1f38f705ff6d5a9e6a1076d0d3cc9f83516bdfd9dcf5537597139a26301d643f700ffe4834f4f449b5909862e25b60baf5941fcd9e264d9243e38aa813149e752e167a305b7eeb24caf0784baeac299f23578f2af1d85caf05fe088f98e1504cfe3f551e1ee47a3fbe30cbafa7ff7c141a186e43a1a52589a92f7584dc1fe45174a1b225466ba847cfbb47d55d9c5fe7a16f4106c4deade55d6c63f7b3ca58172d79b849874cf5e2c7f325effb2e4a632bcfd56a06b038cfd46a96949768a1d684a3ff660f2f8d252fb3e1a6fbefe7a7b765fdda9287b595061a5afec72e27d054849e0c905f8178b82b7e7028b2c9061b2c0a9a8d1137fa8bb0b5a823c5c88201efc49855fc2a96a49035b59d17233eff0f6b574933da9a6d4d179e7da108b82c3e527b492a0c3545f945ff495d9ce71fa5fe9b7b44cbbfceffd7948eb7f3c14b5047357572f9c7a39c8490f79448fbeb7f9e50f0b38b064a19230e1a94ec7aceaa1012d721a7fa9d940647f801c584f3a5cd4c2c3f65f647e9db9ae3db508565af32aea6800731873a33775034acf26b6dbc8c449a360a79d10d2186ffab29ff5d2937bf0f1c2efdb70327ee1ff901f54316ea08898310fbb8a94e6a8fccfafbf73394a782419b2838a2ecd53f16ebde96d70b1fd3255ee14586a63f5aa5f42b56b5e771ac6b2701238380b5427bd98a9bde7383e72eb34b257edaa669ae35a01f022cf0a96967e90ef23c72f2ec3e5cec48d120298d5a2ea259133806c5c7c2a53dcc6aa2c102c0ab3845a5785d63de6e58d240fabdd813155047dd55b3e0a8e0315eb427a83a4b754ca5a53b235b38df8acf537b1f67d52aa5d33e7f57ebbb89f524f30245362bd90f12c2e6110d19dd20864f9095e544b0be72c70d4d1053c7ae48e4fe5c4f651c18ecf5e51d68e2da2da6bbbf33fb1aa3942ed616deda75a03f8bc4128342fa1f4f07cdc6fb9c62e3a12bee90ffe5163153eae878ff1d35db72f7c74bc6f85701b4886a546d435e5fe10c7c1be65769ac5b2bc7f0aaec6e81957cbde411d18d7a0ff834d107507790856c148e564875c2bfad46fc9ee3b948636169b85f132e4434e994262ce124636507cf03bac88ae261da6443ab1f92ececeaedd41f9a418ade3b4a33d0d44af62b80b461007cb5d31e7ab254a8ad9de7a10b0894d2d47f94fb579bd775ee2b3b4fae126bb5af0a645eb80afae8631eeb06822a54bed367aebba0d29e8efbecfd9722ea55ba9ace571b0df38376c79deede6ed64aa5febbfcf865d4b2db00b1481235bf3730745405d4982ad27353eb00a506ac11c5dbefb7ab1b86aa99b451d81672990a8a5edef63aa9d1f124026e45cf6fb38bc4053bc7fd0de1ff8ec88f3fb8891e784560f9af15f64cee69a79aee5f180f498a0cb6a69eea5565eb97cbc64089403e45cf2c031af3d442774f048c9ff04e3a84693b20915bafdce5fb7a0156c5b58d157b8f8e68d70aa1d0cac1f78ec91c8f32bfcb25cc36001ef5d4bf18701e624a1e370a7ee2ef4bb5675a7ab4c6d148e6dd662364ed7f54fd2a4acb54568ff957f385290a6a34d3f80ca3f876b345da99ffa98effd361f20782111801320b1909ee32ad849c653255ed418ff721be631bf3af40c01ac90c0f92578fe22c8bb201db26dcb62f02b916d3a294ba4a4c272f26e2996649e6e7275a664e0810561e5b25e27abc703a591c9fb2038d4293da0163849b505c39b3d6b4862dbc393bc9c7420badfd530182a2b96260e75bdfa43b6423d2443b0ff036c468c5cb2ddc7db532d11541a5f6f132e98b0ce08097839aa192afe99f19e261a796ed8c123a02a0b26ba2963bd42c555876fef5800e0f08ae33539eca9d997e450ba040399971fdc18c7340ba6f691e6722475e71e92dc6490a3420a879e702a69cef3a3b5d49a6dfd4d7ece7b9368a169e9125e1eae1cb1cad85c3d8c70e264d2fe890f40af05805f3f3feff60858b155847a8cde0b5c8b3f40d8b22c3ee77c66f02fe55a67536a463418d393818f6cba0cb19ce36a42f37253d9d801f34a010a3a20f1113a1e7bc108c2fee2c97d03661bdff5b74402a35fe563d16fdf66dd4bd741381e7dc810224668bdfc480e62d25836dbd41b7ccc1ab56325b2a8c216246368369c228a42b7cc1c2baf4c021dba8ae8e4cd212f21b6b74d3279e2b444bc2ee6951995b9b069a78cd9136288a51d56f2406024d144f1acfb4828aa6e848ff0bba1eaa73a4a820e616320543299d165a7d4de422da83878ca1726d0b588a0096de21d895536cf13fe5714ded541399389d61471c03588c75d9f8928b1d379dee9153ab0fe431cce09a37d93a4d4008ee7da908bfe3a229130d96fb98be4c5b30abbdae2a162182d3215a8cd6f1ddd2741fa1ce51185d415d17686aace306027430d89ad80a18534a614142d6fa355e73001eb8938922ea54f57cb5d5449d076974a80c99e79a5b196e2a9b635a9271255f6c7f818bfa1c323d4a99f9acc4dbe4eaf412196ed7f70e42586370cccdd9fd0b1830499ec0c6000000000000000000000000000000070d13182128", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27af2b332e1a44672f757802793a43b7e9f1927fdf4b89b7a4ad975ecf8bdaea48583cafbaf30c7ee6f668c225ddc25ba1d394d920f435173ea8453bc83bac373e3b6429f48a01c7deffc3ee5a986648a40dfcb31662f46f3a07d22ce9d486a0be0e822c1c75ea58965b9167ee08c9e6b07e80be89b257be37a57d5385a8bbf5e4439bf3aa80c17874a9f37d7a62eb0baeee9893be6e0fc223c31834baebedbd9611225d25542d78fb659b6f41ff3182d94b3e471f8c837f82a42fcab82ab6254a67632edf81f6feb720dbcdaf92c92a05f68db7fd074349cc54b84865326e3dc45e40645c95b41908aa66d38dafdbc4ec559cf0f86c5bfe7c2a84e8e56ac5bf97e88456f7995d77c8d114120a9c7dcd3758c182f8382f8f0ab8cabd451f71c72daf985ea2f64d85b561dd294c2f96abd8f351f2821fa920ebc8fe576aa4a9253cc23ce45e3fb4695f181ddeaa2ad12e96fb0c658e12f12cbbb4c244efe0b40b09c0c8dffdaff6f47a8c1f4ddcdf4c5e62eb68bdf66a63eff871a31fb1fe3cc67db129dcc8daeed2ad3e80ef54e600bf7494752d890e7183fe7f22f9ddd790d25a46621820b79203d584aec35ad52dc7fad76a9a7c69b276b7fc66ac7b873db7beb6d1c2f6bc8ddf11b9cab1b8e8b321ecd33bc4fa548f99cf116379ad7a7b20672f2e7cb6432cc2d792221ddb59ef4f62bdace3bf3269888085f703cf0358235d22f3d2f5b19ebbb5692a39282aefae8015e39425678f982eb31755804d4f1e698491ff7cc94157055a2276f8a9576022cbfa45982214f356dc4b5eb3741e12c3f6361d9f8334f175503deb9c03eb40c6db999056538c750c99a2f55d39cfd104f5c9e77c462b127007e5e24775726a9f7c841838eede9f90f62e35a68dab88147448581bf09cdcf927afb10c054c56f4cebc4b18a4e01427e0427d1525a3857d969c5823920a1b56436e8bb484d4f0e96e17f71db9da6d1317dd6a6029c4b6ed21fbef7552581d56d786facdff8f5a225c7593cdc9bb42c722f47ecde0967dc0a8f1a5c99ce711f8399f7a45489a80e55b982caaac1e2728b84674eb27c76c2f0b67bfd4e1c88dbb26e090b9f3e19954d7b32cc33bd331996dfac4187d76b75ae71e359c93bc1a848943ee06c933f757afbc1d68d63c8e1ddaaf100069f6160ed97b3ab56a36985a45ae43ff8504e2720ea0d203766a63dde7d9fb45e7854657f7a30705bb09f9591aaa991ae8df24c31463c83dd00d02ce3493b92e3f4595bb0765fac637a5132f83e29d50aeb53b2ec911d0562c9ff4972342eed56e85f06e7ddabc08b4eff380f96b56cb09731ac82398e1df085deb8083b61bb52a8d473417c1d3ae2be90de8435a062783477302d2fa8ed939dbee525fb5804de60ad4abfdf4d02ad41453536cac2c9d5bdc3786628d3fe45d42fdea409443df330e5fd0f4858b6cda8c0a63d7b1217e5dc771bda256a823bb30720e3dcf2252959489a638089bb89aa24d688143a6b1a76172e7f0d5dbca3d033a369cc2af5f3ce0ac4ddf2255a80c23e2d467a96ad105de238cd3ae03ce1151aae6888f3dc54fe3dc07307a05ed4b0844363f0af2168f64d7feae7059ee1dcf5a10098f402f401cdad049fc4a81e1c9527c973bf32c8b7721d1b88f87297da77395debde40f1ae549eb56b2cf6ac15a7b2399ab5d96692a82239cd5a2d6d469a64b3a3154b2ae81e9a42189efb498ee86441dd039e38ac1204a286cd6d08a2218ea2e77e6379b40b81bdc19489a828905701b5e19d2ad82b7e885310007161a86a21e43fc70012b5f2c684a2cf546d9f623e593faab383cbf5879a871802ae4c9d4879bb28c5785b2d6cd3a83c8600befce72c187d48f5a879d9d9e57b3c55916b097f04ffca9aef8e3e4574bfc7db6a505021a800fd79a856550978a899dab650389f55c0654641890d0dea6c8ec177216cedbd29395a126a66c376d432d20d0bd00b1d7c1091f85af2dab7d4e60204beacc90a3d523b0be21fefa5f4e892130379c2f947889a28a2eb2dc8cc2b7d0090d41db53e9279b54e1243ce17089f946d112a5ffe1ce7dbcd4e849b6b7bce239b256005d46f7f1a2e2af1a048cf4218881e015b6cf4c7f6440f5fc61197f79749da80dc9ca03e2bb23afbe8e3656036cea31ff18ff07368a4df0b053c2d4bbb3b929bbf42cae74c88004b93493a42ae204b156fbf785eff086b5fad30570e88dcded140f016ce113f4c8907ccc0387f3eb4958953d8cacebf890666f3cb312a2e87555d93132fa88c1fb685c96b4a45ecbd3d274909ccb1f5bdd2d392a733de7cf1c87c3a8ea4ce905141116b2037c7f5adb387cf618deed6ad796711ceada04ff33d7930186582756d7b1c418ef02ae7399b431b38198c131b7a747407e2d4f08dc19f8a863e808ad6078caee2c8a1554d0f582eccf4ba0ae43afeb9cc62e2a5909ca81ba28ece723e141a7ae3317afacb3d0b61d9f199b05cfda42b750834c5f57098be4476fe2bb690481e7cf509e5e94d929b256c6df712a5125a12ddddb68e9b11dc0523cfefe2fc431185b96c5ddccd8ebef1361e2e01d812da62781e29c934eb89d59ec45adcd208ba6cc4735c59711452de1f1869861e7c10f626ba3b0872e7024b370eac3373223129dc44546ba9354d094bf745bb0e3ecea28a26cf1d3750f23276cd4954a08c05464eaed3e5610e5b4e4cb9380", + "tests": [ + { + "tcId": 72, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "e38e198c1f8a94a183a90afeb416b870426ba739bce98da1e72efd600f13d38e2c0a51c6560fe6c1ac2fe2de032390fb1eb990978269ed755018ec478bf862632bea446cc6226d0bd018488fa7f8531b4c72f94c90915deb640eecdf9ff8114c8e3710b08c41314b2f81ef952eed4a3a2c6cfe9f42169af472e93a8722273706a3ce8c620be45ad9398dba3d666c998d263e35c6aae43e00835630397597f3cd22bcc6bebb56033a267105443f4fa0faa82b5637cf19035e97731e0259a2812f7432da8ecb2a8b2872b0ad5705f5f663a47f5351fee175e42e3bdde05a8d778bac9d17e80c647f667df6486e42b3bd64acf37d6c0c071c3766fcb0859310bdde26ffe2900b5bae5cca83281feac3a754ea92d6de02159ccb6b809e3cb1a9cbfc63356ed339581484d8e42cb350e0d7b13cbf0e2830e6a9dd0f45285cdee709a5ba20903c5a1faa4b765e9bdad09a96867b909e6db4fccaf6437c0d70173e84a92b729c926790e2d8ae3316f4ab4b41e326188fbcd10cf60d7a5f59734eaccd3e831dec33edbf66a43975f94d03f67bb0a7503d9342b61c1b658a0bfe65526347a1565d69d7dce2e9b633f1216112599985e714e27e6003473ad6559c2338d60ec04ca22d748fbc07b4bcb880ebf488e6c0be5d21d0d83373772123ba8d73a6cf9533a80827789d3b83353e521ac1177d0d8417eba2b98136762655a8f5a2c9d4e0dd54befe06905b1ffbb1dc1f7bbb5056c388a2fc0cc0550ab5e772a4c99ccec57ba217a89b437741db46c5c08468639d8b9cec4f9a9c4e4ed109509d8e8ac45d27f3c2c2e7dd1640c7be4a431cd250ca2756b319341286699e4483c9860d88dffc38dc212928c9e73c4f0c682dd95e436cef28aa861e8f6179d92534d998fb17eb5664d02c66ad680a7c12ba3988cbe8cd601392e8c243192463c8ab93fa68e9f5872debb3c6dcb0cb91c4bb2fea01750b3e8b055761515aa74d3116115eea65748adfcb8f3ce66ca66ca81327954a95a04fc9416604b6c9a2f9ad794e0885f1d5424ca10b3d7d8b28c5211eec82bb5d4d3bd1bbb82555c7d0faec1f78c4ba885f0228542caa5e8f9d692839dcb96cc7a0608a38db772c4522966d028c55b06011a411f3cf1de98825eccae3019f66299961774fa65e54ec685d2347f698b99672870df8d15b1894c174da61c7b09ddd8ee971eeb21f7b685fbbad1d2dddcb553d8814abb34edd4e769a1185473b4d5aa425b212ea744c34c99e7f6a23875256a6a166d4a193acf20a303e76b555b4038f30724a427daf695198425ae541bc2cce403206a58a5b01286403d5534eba27c21961d92d169c1489285beed2b46fcc0ea8d96008ee5b4e31e4df2700ecde20a0fbd18c5866860b2a408028f1b0366899a863c797a19d630d3dc1aaedf4a72c6604fb1520e2c1f4bd990406a3cd66f6685e8a5d5514f02427c9f48be799eb6e60d88a5747baade73c6c29890ac1c2cce1c706b9446963b54e170e45d764d7c2079e5ec91dae31619fb9c7660c818c748e68cb77c96606830d941efbbfd3acf111517b0c4d4a9badf954c58c0669bdf8cbf4a7aebdd95eba7c56681e8111552e2e5622bbd3b4df3f0d79a9f23b92f96aef4926b3660e8407b14899468ecea5d7bacc410a1a04e9e4636bbbb2d1e4b5f4e690b12acc453f28418a4d76daa8eddaee29494b4d1fd80ca86575cdebb6c4817d16174cced964e6ed4c00d40cbdaa1ff86592eb870ee11339f691f01d7f5d0d2dec6eb064cd374d30a97a3f34fa4d9884c002c642791c27074c02cfb631eaf412c4a3401d5a4c011aec0f13ade4e42fb1c54ff0a453e2a3d912183f9bccec6a3a9d5b3ed150a5d4b1f864b685deffc941c1af2b252f27b01c831879dc660fed23365a8f538e8ea45342ba34831ac11156748706b1291481e796382ea02212b32b0db62b17674571f25db552f16f32d8a41ccd069ae067bb6380836258d8ca84725a874cb600920d76b75bcc462fb3dbcea102b5686ad7344da070967ba2251e7d3eb6f6fa1f0300d8f639484743d5c3bafe5a553978e183b89f6b7fd097eb53febcf2bc0281bd2c32e347adf2429372d5d7cec86d3f122a33655603cb8a50a93401ef9f3bba4ff6c809a93e2d49ac15de8a54d2fa7cf6659dc48f832769957c31716077a8b1605e644ab207479184719e0e46227a523fc1414e97a1b1c041be55bebbaf0b220426d36006939cfc33836f4d8e0532ff21ca001d5980798d2175b7fafd7f80395d525caf52fd90d908acf7dc45ba9855456627c860c579ea74c28d4e67d8d64b93fe4ffb1b8764808ea4bcac269efff956dec080668a4472cd4a524ccd4009912ce69d3b005495df3298c112d76acb9a2171b020f7c245cce59b5ad9bca40a90f3c417d6a7f47b5138896735e5866336d665f0322e2d5b6110a2c49b8457895751899f912a33eeb79b1f3359f0fa0c8e9f7bf7b08d870524b28099ddb60bac8ee821372f3799f2a7eafa964c3cac3e74ad7a3a46f6508321b5da2abfd791748a7a1c4ec3868cb1af91cec7c4858b532c7777b73a3a5711b2880e182079b487b1590e2f9119b2a19af7ab8560bc3f89418eb3eb2982dc2512106ea7ef78967675c1bfb937e019936c82603c2ba920b533a483f85a468f7c38e6b52654e0d10ec4750ad1d554e642ed53f530a1d6d89d984a5fb02a504a8ea5610582342595895fedb2514bab4b568da19c35c0bf422f0d40d59693ea245f7a05b282ab6636280f3001c5fb45ebb10f9e031b16113f6ac3f65c732c38d134693b2484a33480a7eb671dd6d7df47cd3739381c8349d3beafb551ad903ea22f0c0047d8356bced4e1dd8def0fd4c51da4e498f4efacdcbbe691ff1f68b3b0787284004641a643325c765a82c68c73c458d58c0cc23690e9aae2320b2b1d5045dc62b32ee1277cf27ba578109bdcfd8bef283eab6814c07414e118dc23ffb1164f8487ebe34fbd8fa27f9f6f7424797db403910631c12d18901c1ef32f3ae522682475c6e864713a4d3ecf7c492ea1abda9b138a994249a371ebcc48b5dfe9ceb2ec44d8472565f1f4a5474c869cf5ce5741d207473d56105b1e589c3cab583d89447a5c2465d6121f01818731793a876539e5fb8cd90ccccfb63d15eff0e214cd223ec54a6b9b28beedab721aee3f02ce64bb3ba4590290bc299b462d77e14683c611adbfbce2eb855c102c196481c73637df400731f765d525932b8f976c275a6a03fb4861d06540817fde3faca07909e038d2e45a76af526fa014a8764c702986c495d409e6f11842c0b7f22f3145cb5ba56e5bca6ed6cbfdd9d79a894606b982747159c7396794b111adc9f73c16a7b1287494d4756fc52d71e39d2dc87c9d698b0a262b69ee3d189125e664d303dc9280277c062eda6bd6b57841400e806e642ec7dfba6d9968f16dbe8cfa1af146e29aac96fe4bf1840f0dab6d371ae922d88a9b204b528f31e79f5d1e7ed67e36778ce5c2643129260b937a09ca245144fe10faf3392ec6835bce469afad03eb6804a95642d421a1963b34bbcb604cb494ca58c5b52c11e6c1a2930da061d779e10e80b88fa40f683a40d865725e4ae7ef4b3045fd3459e077e34cac939f345558d927ccd2338f8f037c6a5000dfddefefee24f3f0de6715c0d85385447a70d2aef6772f26e23f158f9af0131e6a2f967a5d0a54604b1769eee4390984a4ffac0172f592df4b04200535751135a732b7e6ff373057953014d35381e86e9678274630df9ed86e0b8ec93f1240305318fe889b35e0508214a6ba9e2e2f2c9b142932da60fb7929269bc3498c159e323638b9ec7fcf2ec09213535a1250fd49895f5a63c3d22b851239f5094aaadaf58e88ca8de975a1bae861439a6cb3dfe67e615fc1781a11327335fef08a79082794daf5cca4e9fca3bd60899800854b01c31de872f625bedc4f1b6d659584181b1da46b2fba689e622e255f05ca9a619a4fea28dbff3aa9a5dd84cbacf6ab630b855aea6ec6e9dbf95a4815ffba677af4ce6b418a4030b68607d5edb7e470faab648156cc2c152b21a381469473e3c0b174a7eefdd8eb4a47061b883123325dccdb54d8b50412a286e940224069810181be94b3b2ccbd40aabdef6aeee34bdf7c7009ca614cbce081a0810e42ac8082ea6f618fef92a302f5f54a93e261fdac80852add599c4b87aace0dbbac0585a04812f2dbf0185d9c06b24db40888ffc5ab02175debf3c4883fb8010de69a2424280fdf64008ab7639973933945a32dfe185823d78c4ebc78e12d2cf656fccb603825d81feb35e9246a5ed678fd2ce6dcc12c7f89a7004f32f4a3470e040bfda9f6498ce518f8901261521847b64e3350d0a5fdce53e38cf889f79322698c826b489c4836b383c5a06ebda047b57454b3c1fd446ee37d7ffc2be3b4b290210aecf24a3f15d7c94d29009d79b0a66bf620dfa6c84070ff04da280c244fec671c6af6b8dd969e772d056ab8e9496334baba49550a991613873f6e1bebb432ac0787c744634c1ee060121ccc8d35543b289298579c4f2a6239139f74e8349634f85a03068e4b01b6d8891bccce4f80c0d3c404547539bbabdc1f81b21242c4a5557bdc4092a0121304adeea0609141ada0000000000000000000000000008141d1f252a", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "tests": [ + { + "tcId": 73, + "comment": "public key with t1 component set to zero", + "msg": "48656c6c6f20776f726c64", + "sig": "0a4133248382bb1fe24046be1eb9fade39090c9428222eeb9ac835c76ce6baa4c40121b2778514c711ac2981d174a16b000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "ValidSignature", + "ZeroPublicKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "66239a16589a522a029a216a75a70a5b1c9c49b6432bff6e4be262d4d999c01da4eab195cc9eaee7ae840f2917dbcc0218e6439d2d4198bb0db2b0e73fb40bd1d9daf16a524c0311c9669874b0a175d8b10d5564f1af8007a1b852d1576231e77b19b7efa5cf2fc8d3869bba336b205d6a3ad7a65fba36962ef7ee3aa290efb35760bf9fbd58894c0b51bc447c503245cd5e62b0690eef1b17486080a2e5d7f354225abcd11d8e8165f7bdea98cdc9fd887193eee058913255982ab3a22ba1db732e0645bcd3588a8b3c18bd929771e5d9022c383caa1b998eeb5bc36c01936237d703e283caeed671c8151f6de810be4d22daa25a862ac16a622c4347ec92c03d6f12587cf5d660cecda689b0ee75f391aacc270946a36242837961723a99e279e12a04a331a0511b021be538dee6088288b69494292b7756bb8b50cd14fb583b64dc1b5ece98f6389ef07eea028bfe0250320c12a8e24a4afd83df9a178ad3176aeba108fb3b102313a03c9a75e1cf3f7ea6094c2fc7480415672d4c36826435ffb2332307847f1a408685decfa42ba62c9adbbc995aab75ef5a45adba5ea611783b7e9d70002fc1ab1882184fbea63d55ea407243a4db96d696ba1cc5c5699d87bb2e123f9505a030137329ecaa5ffc08f6c258fc6656f2b63dcf7282bcbba58fd11f3cab395c488a429a019c486242dadeefc6352df77aff70dbf02551945c3f93c76740e63f63aac39a26c55341d14e8dcf3c48be7f2abfc5a0fa7d15561b992794b9ed008962b1d9b163a04045c5f6d070194ebfcc770eece4705aff255cf58ccf8b648a56aebb125ae5c4eed5e3cf06604b1f66fa4fc758975ff7a731450ab17d3dee55986dd26448a6ac61374e6ce22d0f7c7e40c2d6b9bc67507b6bb673671d853fe22ab26f555cf3b27c255fe0796922751777764753576abd8f244711020b4a576b620ae433b79b87d9ee6616f91f2b4a88366c78e6ced025d2417db695e120d11baa8883eb3f8207a8d66b61fa34199cbed90dfc640241470deb788ab80b3e4a8383bb13ea34d7fbdd0ef516aa5f8426d20b166b1b05d56e2da1554bcc196225481bacada7564ff59f16291eb0810056e2bab1e544379c2ec7f7af958aa7b815ddd2d254a066b4e35bdd4bf5608f9d3eb54b1660156936248e71915879a3e3df88a373d43f7595ad166bf9e84b6a05531b70d891234154c7e3725ba363816532b270595df2463b1b2a67eb0f95c1f6a5434fd8595a3062b9ac92a6352780c7d078fb045831bd057dd49772e4b3db9806139be864f6bb8d189b2ca06255db60d8c07e424a740dd30ed77c177f526d82cfddafa05ee5cf9cbe3fb275589eff005b52005f63da6dd6b1d39335f202af6d058b5caebf29782a22549814c1921ec1ca21805faca60e434b0876754249caa34b21903f874df5e4548ad8d4bbb0bb2f05ef377b1c8b294af53c7bc696353a850ec5c33c9460872bfec382ac0392b9928bddeba48d24819a500a4750d49c8eeb9e546154b5b8262ea59f7cad16478243659b246740ae61c96e4c2e0213eabf5019040ee9369428f833fe4163d54ed3cbdc5fd32304c890c34dcff1d8c3b9b66c40a13a3c21ac0ca1e69b68361a0564743f9f32c252ca370e56860a154e4033e5fcf63a6cd1ca64deef46164286eb788f87d9ee59c6899ab7aca62e3698639464abbd9ada4023b87f45f1ee05ea2d5fb72713e9aaa91df5c483f54cd19eed9408b94c544af3f3758a6be0933ee3c24edc1427cdd15995cb32b8ec89e032ee949952e6ed7e941c9943e0dd486faf28414a0795eb502797d8a7cf6ca3f051eaaa5d7fb20e86a72bd44a97af6dcb41e37ce33813f0c8f17a6e4d2e2ea506811083ad9a93aac235d7fae01ecea29747bb94552ed1bd581e86cee23c4b7e60b59b09be4b3856116d7f5f605d648147371117e1baba9150baebd49c624afc9a64dab54fb0adcdf7d6d84e64b82942b114a78d824850d6b8719a4b90f41db28b51f351d7059549b0427c83e629ea838cc141f88cf041744749c41cea2bfab0b72b68c355bfad32bf426515b1f675f08b23f8dfe09f103272de8f00c16741163eaf1e0beaf3c3b02b3f729d4fb94aedfaff3c0cad893877cdd0480e61e390ac74fda52f2370ee95092cf24bf71ab46b7f5200b1708e5119779f3aa68ac163ef7999d9a33bf627d15f5fe18166551ea2a5aaca0655869f02ca1cbfeab17e3a2c0b34abe0092f154975fe890418ac191ee6dcbf72e489ab861393220a528b77cbd0de2599efb5b622475142d223fe4a3c5ca68b003766f84b8a3cfcdad05802d287ac4b4d4274c2aef41eb38bbd2f2e5ae9a65d138da3ae32b2dfb33f836b9220db288902dacdc1af9f65f85d9f6a8836132c258475f2511b19a299094f03b5abf4fc02b489efbd4877298d521be2dcea7141f291647ed63f0927710ab816d60b8d72002e95b5d77c0a5c10c346962d06396cc521ada3b3550bc3b3d4cad602da0ad801246d91d33237283d3e50f0d52912b99d9de026be4e84bff5560b9bbe615ae567a378e34c922c12f38d8fbd335ef64944597e591cc3b95b7dbf106646d45926dddf46026d3b4de890f093f03abc77a0ce697cb64562a676d93710d144dee2aa22ee7f6c7cea94b78e61f2c228644d9af00200afecca9ff44c4cccc5dd6f90445deed048edacc3565bda5f3aa1177189f83bc9fcb8346a20d39a90def25525e1468b25a59161108108220a2f6e25", + "tests": [ + { + "tcId": 74, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 75, + "comment": "expand_a requires 150 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "e5824f0943ad27a943fe7b1d52b8a42f689fedd9c6b8df15a4d9a6484b06c9cc61aca2fcdb02f00a5700846190e54a4b2fdf5226bc6a14fcefcea7345f2d8b797802fd6fb47c7e77f8207ae53bbb21c7523e9f0e445219047cd2bc563a69e20ea9d8be7a1c3a410efd030c3949e91f186b6e1ee9f42030eccfb492a75369ba21355c4daaedfd6b8d0ea6d515801dac1ce8dc51db63f51981944b886ce97c65b8e8bf351051ada80894dd1ce6a7c2254aacf85f6bfedb89c9f2f455a844635dbcd02b95c7d1e461cad965262649e9fd6cc45c78b4709fc8099db6d77dc42077ce56a0a1f95edb138000078c5b9b61b99a946f043b69f55d4690f5c296d9e38d861b0c21af896ddca3ac874251583d8510448f070ec9df88ac62ccd0885e7a84b421353e46368b4c80ef97f498bbe1ab0ca9c1569b7864640076911fc43c3c9ba8032f3bb167e4a14ef1ca3c56d1fcb4fac92766d428cfa34f4508cac2a1a9e54e478eed6524fb13da3f4a46ed7da67e1264b6b496cd0a6954229e948b8254af6651d6ccdde15c7116f23e67082395f434a9bbc194823063f0dd36a557e1e7618027abba2058a7bcd026d172d80906a733711403af0d849f7331b35cb412559e3ab63fdf5e0e38f40d2548783db596d2d6898f1d70957ed079bfa03511537059eb70d75ff181c5de64dbc9acd3ba1e952f32e78404bfdc3ab3e7be1bf1ec1806be8e18529962dcf0935bc2a31627c0447b890eb38ac39743f276ebd972e091a0c288eb2c60db2ada783a461013170583d79580c3ce852f22e61be682a3fa8fd44c7907754a9c5c1e76d89e9c56517506689e4bed3dd1b8e8b67f4d7aec8eab7a6a1b9a7c88ef7a7e7b0e9b6b7cb6d2d9ab204493decf4a286f33414008e0b1b3d5d94ff4f2974e20dc06e6dff7994161df5f1de03fec7cd5659a8493db03ecb8eaff067a41179f85486ebfcaac722de4f970e6d755fb7e58a999bee25c6e5219390ae1d8e4eaa5330be6a896c6f7c1354c27f35ab93f0de784075637d0ab3f1fdcdf6777a54784eaf3b2e59588a854a3702cdb6d38200ee3fd4792d406051c977ea8f6e9f13bf6d3fac051b0f609f6626bb47e3d4d0ba2b21448488a0acba0ea2a7c5d46071b69b1090090e58c26754eecdfc6402acd5cdc07c455caa08a3ee3ba7415d40ae5224f95758d46b8d8c250c998bb0688cd00ff96fb93ffb49d4416213a160fa5a302e02f13e55eb2b26d2825977a21b5ec9a845598c1f8810a0f3f4692e00df09f2784c82f336c441672f38652b83ab18d5910e6939b972b21c091ac09d188218705813cd3c974035fe6b2802c9fda09e5f538ededc53d718d64ed43f9a07801052750a10b1c6125d0453ba7a4c02bea74a7d72c29acb1b84058678035c086691b4785b7230154c29590faac95aca0da04e5a7e6bd065aa650d463191a84ed6ad33076e09d2856c0e6dd82e0e5a162a415e154ad94b482c5da2ec88a2496f6be342f4420e33e05d8fd2d550db9b7a4c10c49d955c6425212f1942cb860f20f70f96c44c8c446fd15d670502d819005a5e8abc71583669efc8e3e60f3f9170d6ebde92042462148f400edbeaa447826c9930867eccae05f0d9e713eeadcaa287e1ad04502f8058178c94864899586c56ca12f49d5d880b3d6326b7bc9da30384fe38c43ab4a270eeb0a8824ec9541e5eb27243b747e08473ff5aa46beb4faa55bc5276ae49cd287d082dfc7cf991e5d66f4eb2c0942072930e2f0be76ccc6a149ce4edb0749b74e8e3f95c2dccacce6fda670ef9a0e98ce0e0b7f34039b74c28d435a0596858585200739dcf004fe4821e18ae722a057ac7c6362dbed968da53ac645d971dc37ee23639ffc302ef99ceb1cf12561626aa52168499e68928c569572af18b3f436ebbf60cc2c889d24569de91f1ed268b96fd19a07ed179183bc7d96fe8ef2bd04f2e4b81cc47d9404770830cc68bfbd98d9ca3e4f57caf256331cb188f0497c8ad1bc4420d1934dd923f5837555a6e1b41a8603a4f353f5fe149a3c0fab6c9a3a895cd489234f7ca9fa44567998d9ef63c206f3398badc47c9d9773e96bf59f976b32e0d46c12bb70abecfb67b30e714fe043dad6b5d52bbfe1b48c16325a808f8978ffce281d777885f31f45a9283bfdf1d467a1144c453a29eeb404ad4d5692eb9303de5cb3fca5d7bfc2342aba01d5f37b0c8782c5f01ec88d6f8d2d30850229d6c777adfac00972cfe32b55bc5fac95494e6549f59bc94c61456cb8501f391fcbe8308cb8a0874cfdfe645effcde0dbfd34f0f05f4dcb81c4216b5995d4164ebf7f8d071dd997d4bdc333c0c5889b82df1ed89e0951ebdd60eb3d17cc27895bf8c4e166a77501c85cddcc764c43dedd423aeff2b5dc848ef14636d99280dae32bb9fd1df67802ad55c9af75200c92d35418a925359e20624e8e0f1e93d6d239977248bd2f4a2f11d677d69f318f6b2e8da397b49ffc4501a10cfc841b6366377ad4fa7d084a039518d5ca598c892c98d6e58446770df0eb2ac7834d4b113a74f7271db891d08e38633209b4671c620bdc4ec0e37aa521cc16b3b230ea6310e5765ae46aace07ecd31ae99892e2d1047c30643f608371b08634241d6ef7f7c6b0783c898d3764634944b0d8ad448ad0b1e407ceda319bc364a811691129d3e893106cc570cd64e17c861181a70fdec15ff038079f3825b8a5e919761e42c02c2f5ccbe6bbccb981aa5ab1e2a2124ad36cc8370416b", + "tests": [ + { + "tcId": 76, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "ade7527bcb0a6ffe2a2cf114e9d49d1907ef13a2eb3973f643043ac1dc03f88dceeb4217afee1203f3fdac54a13b6c44516c812e4818750e40612256faa649cca43f8a9aa4995b79af4ffa93c4478a0fb4b112deec6a100baa0c6270a00922c6fb38102ecc10df9ba0ab82c2aec27d546d8743d40ce9593e1c067c863b4732eb256be88f9329a2a105d7f4f9f8980a7bbc1fd2b8aa50c3cb8b15bd4d58ad2cd9182f6550d786d600da563537ba5afc711077afcf5f2ad27bcc885548def9c1865175aaf059dce6d3a623e3d40b1ce011e5440679a7567d0ebadb76b28fd9976f8245d2cc6b5b11789a5fd234136d8898f38fa54ab8587561c469c0cc60b03ddef90725bec23e7478942df433c1faeddbed06794d8e7e983a622b8602d245c7245e9b380301321488f904a99ee31dfa6c0c2418282954a2a8dd115d599f7d52a6a04d4f91b79d4aee5c9af7387faa55a37610355fbcc266050ea6912b81776746ec3c531c36bfe326d1976047ee7ace40e88e660bd25c69892cbc26da809cbd0b806808e19931e1d50a448f1f62b08269ce7d6ff3274cb88f6ed76dfe397307211924a23cc655474b174e8112be1b5ddd7f9639f4d22dbdf6ea48ac79767e605a733c2b4cffe2fd776fc7e16df770f6d69b527799f0e484862e298b8b82b3a811d5fa347bc9def3909ffb0cbede310f0ebfe1f89c1aa09301cfbfd3ecdea8e015df52bada77ae6eb3e4f1ef4b0b7197ac7b3348cdc6f27f95f6aee2827d954127c181945ebe05e564147a71a9abdebbffba31ac4db2d8dc7b630f48c3e2b2ee984f3518381b4db2129ecd17df588e27f5a4436b1314d4e9f3c50a10849db95e899a76bc9af091a61b1d0dd35ad75f33d33eaa1bcc1f3144320a7525cff7d4ecb2fafc8d4f6fa59ec642b847281e6e44ec3adcc67e4b10d01bec2d20fadd2d446aa9621937d51fd0cbd3e56a71eab9ab742f5db52510b0816916aa1efe1f16e97052abc39ec48e3ad2f0876eb9492f9249b20143cc62285488ed5d966292141157195c8a9d7b8082809aa0efa78279824f64c6221534fe517d18ccfd2a85482e716a043e582e8e95f03536026e98b49d6db3f78576b8f91a5107ef4f4a788a9b36d97e4baab8f9a32292a74099af38d79f45383664a41c0894044fcdbfff9677bfca7fb2b405d492a8534540e5310367a5192dd482359777e1419fb29a5ceb06d0ecee0723ea2f54dc9969e343876beb41ff8cb40a40664112852bb95c5a40c96afa5751a77a958c461a6d0e9a645f6577d624fc74f31a312ff6d2c8e3f5c7bcefd0d71e2950bdd5da7a5bc7ddae856f9d30ea9784d68293911421433f3fe963f70883ad6fa692b1aa6f01060340fadc0980c07111b0c829bf7d551d8557b7e211ac05c9657d1903078cb59f22be709db3fd9ac7bd37ece1e88f6cfd7b56af127e9e2ff57c46b9e27d2dae1a484845d873c8467be6c0c7bd1ac5bf860f2771fc2767b53d0132aa6c70990813238ecc663e4eaed069554fc35d91b8e826a239f87638e13a3ce82ee87f1283c2f64ee7d715fbaf03481df6754750212f941d159553296a11c3e5e99b23442a6052a1d13b433f74b04aa18cf5100fd2ffbd66088ec58c1d5799427d6787f7fa732d665de840bfceba5b78b6ceb6a42b5916cf8be83eaf5fbda9a4c92d3b3bde73321c1ebe7783a2f8c043647a8f59a2079f9e99466eb426dd9110c0ec36081019aba4d2421ba45d1f83ca4bd7c44b319557134ac8b973949e1b399b89f722d7e189deee7e3a738e760b1c097a7768af06d0f22de67bda64ad171dd8743cf72006d5fcc4f0862f4f5d8929bfe80ac40b0d82aecde6547ccc37f7c0427262acb1dc7af40147336af8b075df1cced5b01fc423906fe0416b89c07ffe69e9cec79a3221cd60726fe3e7a921779ed24453bbc286280ef05fe39557b1b529ee10ca0a3e54c7f03abacf589541eb02fb1d4e83db8da5fece911f19f1b8644fdc470c4d7995aa4858e462b288d61ae8f81b9cd39257e593467252cc77d77718eb705d332fd6e4d61c761da7aee85667f39e601f7b14dd7fcdc4a70e6aab78c7e429b9ad43fe959221eeb53a220899e3f632cc50db8632be08385bb79466e63ce406826ed24d5daa9dfd91ef0650086e8f67ec03e11e57ce0df35a87e36363731d5e6a129c974574c28c032492fc2fe450ff6df857aa2d34f88d740026c5dc69866e1818c6ffeca589da202db3243652d092f670b173b66e845ff249e0b69237cf6d73a8d7b6e3cb3c604dc9c1f08c543a3d532373c482a08b957fd77b78779742f7f180bdc41510a5c469afba4d656ef633540c4d55f3a08de2bb3aa13dbf72454bfa02cc15f900c9909983bcb89f465bc7eb9a9aba456c588cf0ac9689a313ca4891de90921eaec7a6ed5ac7271434772234d889382b32c6cfdfcb2aa6c4d76104ecfc3bb71945f54a707cd4851c7f502680c9f74a2ff6475c10728e843e6668f95f7f25b3b63eafa8586518819cddc9f13d7d721f00e4843ff9d6b00878b024a9368028bedcedb0f8ba9f75ba837bdf23c93d4a3257de45ba05995996821c862cd3c360bd39ef1c05ef3d64f3597688dafac2418f40bf97be693099854a05ab906a94640a395e1aec6abe7a91996896276b58a1fd55d8d2645ba1901f4514bb8af173e5e95bcb4b635ec2445e4b6205f711ab0cfbc3f8fbf8bfec533f746fd7acedf11b4a66f371a02f42d1f8f7c36a4bf5f100cfc665361a1d4e3b6cf3f1b51ce6df7543fc026d7015fb973f8921384fb921b219b7d59916168eb0d8db1150201941ebb608a9a34ac99df89371971f3921873041df22274e23ba378dbb14a1d67b865101fed96dd037492b7b73f0c8f2155f6b07de6dee4365065f71f9af7cfa7904e9ef5b6a417bb19c0edf5a58d90ac15d536df091e1e735ce641c7977e83455f0d4bfbce191f71c139a02ad09da5a71669a845986e5cd81903bc2fcf87667a77511271a22e400ee8518348357e594d94c0b9c80b738464393eb314c8eb9cacd422ad674b6bb3e86488850663a4ce9b996124515acb2b941db207ab42b2178e88838aefbe786d031e10409d0dde8a46e1f10afa41952adb8eca07f1785b7682ec2eaecf58cc5d2d6d8e41c86bb6190c316798b5f7bfcda275c61c3e65da4caa99dded9552e677bc97e9804878077af17b23430c7de12bd6f6ce103d8c79bbc761b94a0e98560c442370fae8b13e73fed4c6332d74ae4fadaf025ba3a3e3b91ca42be7ca07c84adf1c18e9d844c2256b2afe65354c55e7ac3bbc4c3700381ecf945bd57b4fd85cefde464cef8fd7ede5e16d83f770a20db982ff5632631d1251b00d443b0a8449dcbddc5bcc0b2a531a1487383b0782e3c42298c30202ff5f0cd0120cf8379a7629ee913c7d6feef0b230801c1eecf65a41fdf10297a9d11d9af6d275b2546246313ea3146f62e842b98cfa63f635673f76fdfa974f1c4b9a9f7180f5fd821c5cbc06ecae488f47b1a16d6300b556ffa37d22a039e884bac33031682e30a4f37ed4a20929070f68678cfa7ddf07e85af564281e4661ea8f6f5e7adf61d0faac9fdfeb743f46321d715bf5c1a0d3dbd73f6b694d0d54733f0777e10277b5166655baae53d50bb6ff5dfdd6a8314be5511c82eef8714aa3b6f9e0001085a980f7f9b4d7a647a0255b985706e7f2a40124a61dd8cc75b23957d377be6fb791e9b2eed408cba754ad47543a788a1c86d513d13e805c0c516d0d2d7d7227a84d3fc7dbbb12b346b4f14cfcb1b46c562fa08d5ef181de0232792171a29682d12fe7aa49d3056b475df44311dbe4bb05f6d139eaa69d63754e82ee1fa8fb2c943589952fb05dc8a3566c5fc6ffbb135badf57ebc8c97c90ed22ab381960a54d9c4815744c144e270180d09c1afd13db0aa5dd2849c8ab710a5deda647a1f2ea7488ad56baddddc131711b0eabc2a954a551d4e488c339afd7b50d0fac25eb3f3b1d0a81db4678202954886a2863e50232a5e8eb82ce53c72f0566841ca10c724621cd1322b80b776091e31868bccc5785254adaa93c3dde4bffe7e3fbc520fcde4247e2dda42dccedd33be150140a1d669ca760d2cf52222f042a518a0486dfe716d76dfd363573eb2d012dee8b23cad281c6f85f013cb16a8543433ad75afec14d50585ca6077e6a44b2ecbb7c70d19dd42114c5f5391c193b5fa492848e48760f3e858a2f3521fa0c8ccee73d4d7a051b7bac09d8e91f8355f591f8555f1b93dfc673e61cebc9a7bf1327baaac3fea44ce49e958820e593695b06574feb493fea7bcd7464747ae2f16c0648ed9f285d72e82e5c178a1de77f918681a5161333e5612167fc70c585da49d32cee28ef9905efade611117a76279fc791416ad88c723f289d116917e1a9931cb3f8b8b0bcce64cab7006a793340c369b9011700e352b358fdc9798e2c7c67d4891a1d900c9d84aa435481c62d2919f360b4fbab4e2424dc11bcafe70fa94926bd07f9ffeb3d3b8411d9d87193d04f39142db168d435ec83bd3c3d0f8da76694c6c770eff8fd9588a369e3e299b37e221bb48d382ea44cacd11021597fabb4cb050a1b9baacd7e8c99f96674d3192b565f010e27747b9cc1d8dafb000000000000000000000000000000000000000000070d11141822", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "622db4b1c15f5f5ee55e9911432b2a58caa5bd242a6f38a9e2d9cac83db4a3991aef762a57ef2951187e5b0c03c0fad65f5b3ac69243a5833816f00795d125c5ab25129464d3a77dd145b957a5420f9e8bfcb6d639b4e5a46a101fb96473d2e2bd9d9c479141958fa8d52a3e63d3ea668b9268ae24e291a494caa1eda447426cf391fcc84d076c2df829b2bfb5fe7fb2182460684f94340ad41e7b7f5660a5c6d9f6e38adfe7086c45fef3dd5e66f7d7e032236774c52f8c06f3008b183d979d06fc966e34f526ff8efd86d7dffec406f880471cd5af32134fcaac7cd8caa23cec42e589c7e859db26aea52a732bb48d066280677442b640889cbefb4a6865500d44785ab33c8e74eb82d13e05a87897c022ac9614a41f04e4d8a4c2b22216cfc10fc3b8b91d63fa1b74ce44983a04c9fea3e77897c1e3d1fd08a2fde8e68cfc31d57f7f156da2d33062a61fc96db4cc7a7cbf27b91bd93a56347a672f0f68bf44b9a8ba6e249e383644a2487784b5915d64849b2f4644d195dea5c2fc999a8eda3cf68b750960cde5056750a3fdcaae514747a4bcc88fa4e1abf63d5da5975800e97510fe450715c03d5029d544cf9d41c59a05ae9157cba73c9f02ed8296dc1bcf8de8d0f992b0e043e1b0eb83beb0418bfefc26de68867a35b409be773dc51033da3aa784fef4121006296c208c137d0ffc48d3ce9e9e6a19c48b390d4c6ddab012eb919e5630a273ae6ad1c9faaf9e83e93da948e1691084df45e239afaed3f1d9731fec22a91ab9e5bb364f000c171bbb6ae088382fb1adcfc354e94393ea0db44db1e30acbe52a49db521a8ac79c16b7559d608f02ddd8ee514d9e2ccf0740c19e6107acb72657002979af90c2d1d0f44bbd862050405b7c9afd5b154c68a5653c3a984f4d14d06cfdc2043a2226e5f1d8bcbfdbea856dcebf7aa3759c38b1367dce410044a57058360dbd279169dbc1d5e8b7940a857968bfe0c7a5db696a23806070a69bdab657d3217b96cda7cec1a274629bd2f4c88858dbb0446df2cd895ec57521becd5177c826ad0f1ad54ccdc5c3a63456a7cb39fc7017df70390f55c96502b66ea69d7c568546b24532f862db89a0c3be684b8a3b0ca52ddef8482ec7282919dfd326deca6a4a466dce14c629dcfed5a50118e870ac6a807edb4deb08a253fa7bfb968814e02f820cf785b927db5a00d04dc51b4ec9af2448d9651d8ebbfcfac601bc1d0ce4cdd91be785461cbf8590aa1fc8fe9994eee45ac506b5e87d693fbbec2b0f09144118bf2bf38d7e996b6d40a51b8585322e2b31e386ab45c03ff843a04ba987fe5ad426dfd291019100f84ee42b399b0d93ce8d6d1f6b0c0eba3cf3a9f8206aca86e50ed517f07246517d6d434e5918e96b1b0cc9506ac9cd8fc12b9afcd49c9289a0b28376134a4ccf9aa89086cc2a4997729ac99a8157eec6f1e1264d60ef4a0c07bfbb945e6d7a514366a036dc28d1b934a8aef657319a9f199a14bfb4e452b990825fb95987c0046855d6ea7314218dd4837fd23652cb6494a5a989ca5f297daa01132775bf3e6a08a717a2f17638082e499e6cd859ef564949e15900701fb83f8afe9f9f2cc9a6b9e5eb363651c052edc02e973b4ad4a4a51faee71d3142a67fdf20dd7b77344d0dfa04643a6a921f03436dac9b245fa6065f2b23e7d3f0b1f9acd61ef6d68d939802ba0d63cbbf3d7d8c9d68dc40ae395fefafe624e76f51051fd01b53bb881b99929d09e7bd718c6750e179c3e72cc53e5cf820c1c8b0ca8459dd103deae592ee59b1fd40c408bbf5aaf3f9daba04441cfe039b7c03e52a582ad8970862e14a00c9a637be2078b8550079ddcbf14858d98e69ce375f1d40866c2c3d5abee04b06330bc764b958a0e85981afab11ba6cd8cd4b3cfa319444013daaf0ed9bccd64ac258357622e9b21e17a06d863ae9950fbf8d6118eb4371e04194b746a9efb5e1a3313f63f7d4b9b06893ac53754bb6fe323e12ef760c05c3c4fe3a03db518ba03447f89982f3f57a51a556edde0e578ced15f28779d3cee4950b0da6ad35bf4fdded4f22f0c409956ddae098553414ba2faabc4fe3cd550abe9d4b9f8d04468787a2ca50b47ca67b43eab5557a6652fc722c8790ceb93e5d494872843976fd5593d2030a3979d508228271f4870c9cd517e69bc2cd4624a3ed7d4959061a3e26319cf5bf9f4645cabdee1f8f03966937614b7a94ab7ca28ddd15f1a267d1a4caaac5e2a4b0079092e8ce9507f524044537c520b84ce0eba7af9b1c3a056209fe16ac15ea4e3c1a3837f08ce2b86c135a4a1ff78665ad76df0f0da877761fa107e86a23ccc08ef5239a365dbe1ae3e33ce531523d188438296bad2fffa43491d8c164404ca5a22e01cd2d2828d89b0e3333997f7166bc4643468cbd392546a0f015454b8cbe5a82bc92fe168c05124e809aaff0bc946295b8a12e25d2899a95e4fd57733eb0ac67c552aa370cfd7c2703aba864544f651f0f4ac9d0bc48bb169ace6435df0a9859d59f5ffec4f0226291ccb1baea61dfb2f7e14777aa6901b6591bd15fd7f6ee70be9fae2892bf8bdcafe7656289c3403f6b29bc3bf9a977f562034cce76505d750de6502103098f893c5a0e56409b4117795b85d784bae1a00c00c39f5ae9f4f5dd9332dcb293ea2e95f2456b1f3e47d65c00418b24af7ea8f250af298a58248e01a504f355affc3c65edec93a8eed6945033aae1db204dc0a9fa46924ec4c891bcb3", + "tests": [ + { + "tcId": 77, + "comment": "expand_a requires 23103 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "8f46c68b4cdf1ec20f57a26aede6e7fa768ffe1caf2ad14dddb070af1bffcdf53e996a4c5f009b21400f21a51b90ec6d5dba942d359af0a5feebc18315dc85dd4b5b7f4bf0c1298a6b38472cb7adeedbba5367a7bb86776f2405c665f2d1c77ec94f9ed7ed3f0e025c46b158ff66fb62fe7220ffd466da07b099f4e32b7be99b39bfce7cb526f0c1aef67b63c04e21fb93c0fd44d3cbd1edf4c437af20e917d7859be5398fad2ac8bf6c422a3674c2924d01ecaca88bde6b02a92d4ca31f559075a78a011f1ff334f8d33ee27ca9a27202bb1d045c15607202fea700f737cc5db44efa4448f469c07c5c690eb5d244dd7279fdd7a5cee75c2234d176c9a1aeb337803a432c563443610a646335e1a08e26baa26cd52d836e1c3309211b071d552ab3daeb0e8bc42fbb4d5877fb3814da62306313474d5e86ed9808dcc6f0c302b2f9811fc18eda56d9e3c44fc01940510fd2ed83b85300b69170290bd07596f79fad3ede82a6b8b47f31dd7e8a04705dcaa44caa717bcfa288d2662b2ba98d3aaf930a9aaa59389e5d153a4d5692dd92c5189136ee81934b81b7da6ab8c4c1d0b80efd312be2344153cb03395eec9c808a7be202ff4f51ff0021fe30c9f7be4d1f0e53b24f67c06d057810d9a072c5394b49f500a0523e8d1fd2c3e0a4441b3132ee116858d78a9b4c7987dde46e10ef202c2a5b793a3c4fce39d776cc52c6fdbe582a3fd9a09f9916d14750341e3d5fca75b2466b5e6ad5d5b577f154907ce98b5b1e6060e0e307ea899b3911e4978070cb76728c82e91a1334d61d9939a601501fcbf75d6dac20ea9bd32cb2ced147a4a51df0ddefddea0116264bdf9abb8074a6cafa2a6ebe4a6cc48eb0a9d9cc55f14d7f2e526ca6109ab213270303a0ca3b1490a6bd056358c0e741093db14fc01cf6807d8cc5596b217e61319c72aaa18dde047c3a04b4147ca127bba41218e1ed529f534d71c442149197a5ab715e427ac79f8758e37f623b73ef6a2b55207aa7ade98ef5a4f6989bf4330cfae3e3651444d5b71001dd5aae4432980b555bbb931c0fd9f5abd1af22a4a1d2e2d117d3b8f63474dca28f96049b30548ddab448872f4dfbfec63555292a0f90d54b80c5e3dd8c5c785c3e4d00c643bc8511fbb9aa716caa06b14041f9c4bedd6c6d339220a4724079e504454dffc5c9d299c773e14da80ee3d99824b6ebd93aa71d4201492c04bf2056fbb430acc0d1d425006e5b232b22d5fb1484f25181198e81e4b24fede7c0c498d55f451f2777ccf24778493ae2e0f81b1077cceaf0c0d012c96ae8b1ac5bc3a3f8aa1f361b5beeef3acbd95b7a971021a9aad77a82e059cfcc6d0bcd799121b729f12d2cc8274496bf854bdbfd8e932942e39f5b7906b6a96f4effa903c0bce837160694b2a97ec89c1b0f7f35d16a8995f831b1e5162649e711b71252822ae131a5cc23e7be487be8b1f3b5ba359216e7273adec9bccf6c15a1a3f4c96476b90f11cf94b6d04ff59e6bb19be14f35bf395d7faf85cff288842546efd8ce42b5a29a6fa620581b8dcc51dc2610cd08cccd4f141595daca8cef416cad7907248c58d9327e3d9556bc6be6119bb983cb1faa2b492456b075c7e5aae4e311b61821f51f3c3ed0749852c3788ccd3441beb9ee6cfeecdfdad4d7d4461702e2e1cb6916ae9a9ec096b7775ca6cbb13604419acd40f4b35c7429b8700c8c0a7f6243f5cfa3aa739b713974ef74f84788452ddf5be5d078cd80a2290fd9992ebcb136bc8978372b622bbaecfff00c1c6907ca231aa1441f36697bb29ee93d5a5bc951e9a7893e4202d3cb5dd6324d7db70976ad7666da4e94941862962d3af783ab2bd173c536f999f5627cb7cb7ecda596e65dad4de7668a976b0ce6698bbba26461d78ef1bdc0267c761b708435441ba21dcac62ac6cb1db54499fbe2b441f927b993649c110c00a947be9381f3235861460ffaaaf0b353ce002b81a957e39291fc4f65fdd791281a30f4ca32c297f2c6fb8327454751866239cf4772bdf79368dd99d28c61c7209aaa13297e0fa958ab9a2623c80e779c0745c10f42e792dbcc18099a27a99e9f8a0d389e191609aaf3ad9c3a6661cd7611bb778f706b74a834aa662e70bffad896846faf86a052e6372aae1058bb9dc96b1bd9111b5b1eb47e3badb26f7396642764f3144a7e9f5a903d67f1ec74e8806fc48e354ff37a138a47b3b4c8813d7a7992aba5310a439a1d90848487020c0983b48c5ee97ec658eef7bc93b030b57f16961ec655fef8408a9132ef76016e21dbbde30251501a701b9310ef387ad88c2281a7634b381c10050c50a43d9529c923a81d9b3929727e2b499fd9738d75cfb239c6ea3e94b5951c708d18102ff06aad9d20a219cd867a4c8e7e8e1ef7c84f67217c148f44b422714a381d33f72755ef056f53098cc8fd9877cd6742b2f77b4f2dba9ac9045c17515858baaf3e34f4d74a6e96e8d4fe661211674a68e0912b7c0b4b80811ca60c4518350b3f54df34db7f69de214dae9e14abcaa01c5f28ffff384b438f46547009a8f7e55511e60f2850f75bd337f0045ee00c51a51e655719ea4da79e9a60eb2397008701becdc5a83619c7f90667ee024c44ad392cabc6d7799fa59c8f6125b85284aa48cc7537ec0ef17e83deeb1c99477ebfcb3d51df7443aa692f7319933297a1de00dd310a055611efe998e1281ba0a448521fa0c63df5e7082de1ffc0534f85901fb320211f46f439f13314800826ee72f68c76fe82e45d2f19d9722d017ed44eb14a8a9864c79f29c1082054badbd6249fe8f93f8e9fc65bb3cd1af8aafbbf56964074d782564adb1c25ed8b08f8430bc16836176422fba4e7ff1684a61d881c020d4e659429b48f9f3e64f16d24021d6f89add4c75d237fa9043d32cc27784b7c08844826178b9dddf6fb823aeef3e8fd5aafe581c393c2dfd041f8148aee08a974d5318c746c22d9e4179eb56abdc72db1c6118fff4d9d8d6cb446ee19a07b7fab8df403880aee09dca1cda2a39ec10d5a78457e3aa3cff48468170094ad22d30a2d44428cfe7467a4ec539871cefcd548c3062480b2ed2b6e7a6bd6110aeef4166cd0b45dda83aea875b3ba10a9b3aaa9726f3c782751e85550d144231853037544f39d5dd039234cb42fa88fc0e5f1e0b66f068fd90523ed6e1741679035a7e8419da10a7604b13858ec59be5e5ed7d298e29bee15eb9d66e91ea004d80c261b09474d3f32b7e6bf321fa980786bdc374134e9a5b64c4549cff6d0f073a9675a27a118dc12d5b745da2b3d6615280802756895b6efef4c3dae82e30b3c275b1d34aa55c9f650acf2b727c7e1ce304e1f966dc549a785952135073c3dcb9216885a7460fafdcf7b5fba53789268a8a21005a877962eac88805d7e1286cbb26e34351c1ecfd808a9ebecd2893108fcda6a39eabc133d7fb015ab978ee2ce4f6c6f132e11eb24a82e4e43759ad1ba10dbddcb758a54cb1cc9ecd955bc7f43cb6144423ba5d62d6296c89b1992751dcfd37523b647ac22f468b37120ccc461fe4bc817796e835d0f47a351e2c18769a25c988c7dab905001c8de47aef0e75c7d5b1c299db472600112f656d3740c31ca5017f4624803ee5baeb4ad4974a04be45067e747e2071c66f1a2e607dd11810c78b48fd7249398b8b5ec18e494811e68502872a0a9862d8d9f66122533f0e4893956aac7d98c3f2fb04ea93d8a0f7ddacd0072ec18b54bd814a8ded374d26d69bd7d277422746fb8371828a8e8ff398b5230a2fec8f1ac7a750fc2c6eb6c9341a5bedf7248c796f5b87d9f3449e0f0b3a32d8e283812e98154cf002a02a744f247a20cea768d283ff113466f4775e1170b7395571873b84d5a7e1f7c06a657ed9a09a8789fbebc4fe651735cd5e42a08a5adddaf9827c33078a933b74bfc83a3d2e9ac0386693a6b5eb623a223df33d5c10df6ee4a1616160bedbff3710726f7b21d11dbc7a8a59c52a57e1dc17f914fc3c6d21bb1740faaf09ce4dfc887970cb66be3c9e154e7e554a744793b704593e40550987d60a589970f9756f7e6e4d7fee9cf673f0bd40b9899de4d8ce43c14c1a0def773cdc33dd81147a10fe6557f09e0a863e369d7374ff934563f84ebcd75267822b71acf5354efaf5d35d6299fa186ae28f6092069483b19db0396e008761203a1fa92d8e7a844ed237f3ed30c8c56cbd48a29815d02acbe917fcf2212a69f543a132204a48e8c692f78f039cdc63fa17ac2688c6d4ad716bb56671876e5f2a9036e9be1e2ca1405957e428928aa938bb96a9985d9a32b94b955acc5d4314300b10057d5ea099c65f0e0098fe5edf08b8cd43e93961c5ab94cee68f25a2b17adb7234e88a9dc79ff8b72c9ee205d457c321514b7fd87f482c0e8fe0b6294996527300a64d964d02438351caac5aeab1ee5c5be5bb38b605f974802579e0d34af06a3d5b4a0156aaa1da8e35d694bd4be6908974f5f9af626d16efb52b01d5a81487b669c23dadd71461144ac251e359e6f3ecb9475b2f89b837d1c434d590618c961cad556e5f98110fdf019e813a6bf20925167ee010144597fe8f87bb1dd1b888d8fa5fa032123455c7da5abbd2633527eadcae5f4041835738d00000000000000000000000000000000000006090f182025", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2828f4f44461a839e748b07acc053c9b0241f7b1425f9c742019c17078ffa036e967faa39da0636d9399bb909039818275a62ca07ff9bccb028accb7ba906e18c9135147fb27858bd224a228c306543bc21092a59881cd6653318f824e59cb7708d34271b38ef517d9a9ae6d37f07bfbecdc05ad59da3247ba2e8587a3b09feeee4fc630c81973cbf455e60a7b2e521350c3e4044b0ae5eca91f1ea9d9f17018021153c5e7ca6b9f9ccba19e093527bf8e1acfeffbac125bdc314267372bd0f2c2fb064e990f367815fa5bc21f98c715c8dc86d36ae7efba6d75f9f5e332df3c6127ac5263647536f6646996f27930318f4db8da6484c9cfa366080d0ea01f019f5b0da25794bea98744ec505d02ee671d6a9e311ebb91b51e1ce1c59bf70714a0b7fb7e25cc0b6e86d661346b6921a96de4fe1de9b788e18791f6e9597f577145ae7c9b39b8c10643edce55bd8db7baa631a0ce1e52b1c67c34761b4d045da421538e1efb7e9249da2590dd52f05102691dd529a3ada382ba255730e3f594104e9e2f9bd9a0d012f446905d6eed766ac4cb3094e5c40b5e2e12eaacb433a1f4593b74a0e8c5033c6846c7ac866d756d27e07b4f771d2d3f45dca0cd9fc1f50b24c50181dfa64530162e4513a1dc0d3fa73fbdc5a9f2a73a032f59122dc818f064224f4687ad32d27357d6f0b3c392eddb2d25de43bae084da96bb985e5521452f056ac139b81167285164ab462aa2c31a3224903f72be0cad6f1de86150c651a2319cc132e55b1517015522689b7fbebe00ebb9bbf494680ef954c97349f87dc4b3a67de92da831f6b2072e294b0d5191be06feb54e36b9c7f8fde964754498174096ab1bbca6dade876c8166e670196f507e6127d9c7ee4d5195bca2940c27375d41197552eba03ac9a2ed59facd73a322f7d701f95433519543a0701c2be58e5505632e63fd831cb92309dd23bf9757ffef9bd618cf90eb184e11c51e139a9ecae0e009927eb64881519b035c81370d602fba3eb43f5c8a031cf093b634e28028c97b5d7ea962564639d247eaeb8d4f5deab4b587b87b8337f7b9dc980db721b7d20e25043eb856147a429ee22655ebfc3b54b4d7d957b567047065de5ea915f3259b0cbcb4e46dc4036d9d4ed8506f0ce2ff7be09f0eb37e6b1f3743eef7bef637c2619ec5e75c232b4dfb9a4a860f7f808cf0b0fb3d0981a800ce83a26282e02bda97c360e7b084c727d6b5ee5aa87a938fb6f714ffd0762790e8333991d057765f4b9cbf26f5b8c2ea993f6517e807749f342cd1623da8003975235fd54517fcad9fa2f345d1193bd35132d82a33a43b344a1e1a302a96b318ba0b28f21c99c940a20cf2bc3dd7d4d8df7e3fc47ca751be64ebc05703229b7e74551f5e57617ff0dd8ad6c2024ad182e9998a3dc67a6ed0bade4872c066c54ee822cbb305238547ff4de783375b6d560d3c1bf818ea5c208cbc6a8d8cf77eac9a8b6e80af4c434d0fb2f42083c75b1fe0d609be047d182b637ee37c74fef271a815a08174cd070ff39c660473b054c1b9fdac90c318a6e5b1ca8918980e347eb077b3595813a12bd1b4c9c6f8d902375078b5ab0fa33d8152789e86150f0df469b4808b2fbbc9f18e4434b9b91b61bb4fdc39ef06630934a4bfc2b175f065f94231bdd95c419453fe4fbbc9d7dbb909895d04d2f2d1e2c2f3529a900e4b347060a0fc469134e1eeb78d56dcac2964f9d32aa74231747583f4f3782391c828bc35d3928c7a694085ed63f7c83792ef85be85ba88fd6e6fed04640584def57fe1e9c8ca247c5e53e984bb2df9de8ee4a72a5d05d5db46f261315b195503e8cbbe45a9f97836997af252212aba12e5da4a7fea8e29115a0e4f05bbfed93730709ff43f378100059f28e6dde2f4b210890e5c25404b1c5410a8c32c9ab626dbecbf90cdeaa7b76248d477125f9a73a9b41fceb547675d4ac3f9aa98027fc9666f0267cb13a8199ad802595f53d4f49b18e31b1c35d2a3cae174c46d9810995ec4952739e14dc3ba4724261d17e24f6f25301d271ab952e0db0692b5dcf2875132debad65898026ca7323097cde7ec8338934bdcdba4d8d9e1cdf1399d01e6967263c78df1df84c8fdec5bae81c01de78f02977beaf958d80dab2fe1a9d70f6de7318e99cad4cfec15acdcf06570e98589c7d072c52673edafb33140f4c6ce3adae1f226e606ec0c3dd7341942cc1925e6f0c5c0f9ab40c27e5b3b69fecdb723908a5617cec70d5057e6f7516a39d747f5eb197b903758ab2947f777a34f7d6f7d0e6cb6da17069795204c90e9aaab93ce22a9c3166a7900b86dbae141fbfa876a454e530fcd1faa182e962a3d9b671b07c18c46f222b98058b96a143f188b2114a44a7b9c41c817e1539dbdc4626d5e88853f33cb8e0920db5e14d2d776bf8649a71a935e50c62c237c004face4d1ad054b831bc4a07d3aaa92ab77e5eff1a2f9776bf57287970b9ed9f1c1bba3a033837f8e0ef58b57ab3c2849187b65f2c84d299731cde4d01cf91c9c53f45dd909377f400dc9a490fafac0410724388fb8f3621d794fccd268971bd46954c51122ac725e9924339bf3f6e5bbc9a200d110adccd91942dec6ec0c4012aad5aafaa9a7df777b1d975c37a7971e7cca1948e1d16b86f8d0f4945b4fc7409694813c5dd0f6890250b6904738a5404af68e5d35d4fe7059d5c48a8b906548c94fcf76568bd562f4ea06e10bbf349142dde245bc8bdd8673e5ac", + "tests": [ + { + "tcId": 78, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 3 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 79, + "comment": "expand_s requires 23 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "fc9fbcbb96f54d5f1b2b71d060404538ee428f6785040c54adb8716adde1cb1fd35a18e25a3dcdcfcb36f67bbd5398dbd1e41d43e2da3d92f35a894168c5829e0e9e9ec957c6e64c0e2c90bb10402b80c16860a20e5c0f5cfb31e98fb965d79c6dbb5a92a76e0cd2e8e5bf89bd8431075d87d944f70d1d60ef39eeacb38950c3f3ea9c9e036beb99453beb674ef399472d2602b40d2681474a0f86f9322008f7ba074306c65888fb75076f2588cc828e03f4a20c6a86190705bb16d1b01f33fda71defb96cca68128d87ad616507e67f9abf5e1f4b893e6223cf9643e9bce85a60253ade53ce2f6483594507fb27bba13867cd5afeb36dea5d2d847e0d1de2c8a21465e435b427b9a21094844e4f9e386b8da5b7abbf642cad70380c2daa355a2ab183afa6412597a0d85a3b310ec11a2055a56771f6dabb00371f3a29d3a282ac8b1ee1e46fd31ccc98943d93f95c1f7b0b41c49b8c00bb229fd5c468fe47724e5c44cd90cac417c70c260cda880ce774aef25749616b941f4d3b394e58b752235e0824962d7d003457828a1d5c1549d3c496cbfe90950b780b12de7b976866edf29521f993fe3e93b189cb86551693e8016cd0147a4b6af60196779f4a916afebe71898308ba45712c593ace59eb006254a01eb76d48b9fd653e662b32435b8b5e71cdf77768b9c42f5a75f959f59a03fed130ab2c24eb34b0d41ced62726c7ab160a588007bae6e170c558908db0cab61933bfa840031cd131ac541a3484079ae77a8d4a4eefc8b72f952c0fb22352751507d311844439b9287272dc73b7b836ed85147f40871d05b9904c32389afaf94b84643c5449dc04f9a82f276fd50cfceff05e2f1dcba87d3ebfda747cf04e46da976f5864de1ea500a4ab58e7027977982fa46be9c8e565e5376733b706b01447a8bd2d80b766804e663a4f6cf58e4377346420eca7e757f6b28dbbe8e05f251ad58c61350d283de73be982d7c60250e4203a44e97849f6921238870f772459421cf223439dbaf21bae645d04b572e0884a6c8248b780a1df734b600e1ed6723d15d145b1476d11b36a337bcfe14e85354eb275d43bdfc62c242e2498f2263416d9de4fa7bad8512f14cd1cc964c9471094514ce7077d2dd2c45195dec402fbf49c63f9abcacb2e8eac10bcbb7b2312397f4ea03f70b390490592fc2b41464c48ca6dcc333be960178534b099aadf9bafcea4a5b74e1cb2aba6c13a57d05a4f2ab3002294565e02014254fb3b6f3ede1b2cf9315185e7c07dc82c74656d87121612b456b03c5eb93f1a81d8ec0eae7630937a2476af4b35fd07e61469881a2f7c0a1d56d299ee54455444a431a93e8e368553b7063c695076891e7532f29ee20de04ae37891dd3343e7445586dbba4c31a8723e1ac02c786c5e74171884217bc517838facccfde8453c62f719887425cf35068b126f5d389f394203cd377273e984bc4e9aa5b747bdbaf7e4b7607b77b0ec95e931d3e7661e98086a6e9975b72703034523884201cd6aa668eed0513bbabc6c3bd044c32fcd4aafa319041d07f7991bce70c3fb7a43dacaf7b5b58e624d36dc545d0a198ad8f03bea8363f61bc639186c497a857a85521647d856b64209bdf9311fb5d16ebdb9522345561c8f526bf106c107bc6f97fb93c98c3e5dd239ddbf8e736e936a2df93a863457889caa12cc64489b7561a469b9208873f766b57844f60aae913a27233bad42b5bde93c0544d9b52b3b45a90ce5aa67021bb1f8d35b67626ccbea718a42b3a5fa867ce53218bd48509087c67bb3e452b7e4e3aafafe7f1588fb653cf045a4ea5114806f5108fbe3410956adb1348761e6c5ce8f58b276ced2d721bfacae09c67f41ed9f00749f8a63aa9c367669980f2415cad8983691e69fb588ddda462d0109f9cc1984d4153b4fa46e5174d14bdca951a464d54dedb27912cb27b74bb65ee3a11854dca6542749a7222e589f4ea53bb8c07a84c3271bcb371d4005d04bc825868652df8defcaed9f9015e4c1d953af10992fc73951064c5f37e02baf73531b0eb5c1e2a7e6f379eb60ed2609e601abf163214e328a9f75ef17b308bc6263dd2884a5a8c607be1266bfacbc26114d75a610805b1be34b0887182859a54f6fa4b06c4275959e6b6b5a4385be6104b61fff2169226e389a18e1ad8ff1ed4eb1c99f35f4c198fe777bfe475759b4bb82f54c47218c5bdf61d506dae4b84fa4ee0f64f2c7ada1f39617acafe3649e960d1804228fde6267a6708363bc10e97fbdfcdffd883f8a231ec15263608ca462440a882a488266d35a4f878f55e07b6ca0f994a0a1f16b743bc9e5f473de80586fc18f09f0a13deb00c73a23e818b3e9241878dfac1f814bfe3b934fd0ae8be49caf16320fc729bc7d8c584d192a884eeb2ef3ad079cfb8626fcf1024758158951c6dcd607ecd7a15658e2154610085f1e5cdf61704c120b72d9c6db247fd04581264f6d14109581ba6994dbb46437de09164bec86b384ef16648649cd650714f6e7c6151783af7c4db4246683116e435a6e3c4031f21c7aa66984fb64b8d9af6e32b2e4cef4ec8ed9568df38c067076e3f4536bd37b4c66f11a426e9d76cfe29ccfab367ffcef2264b0e0fd3513b862db235304924f2cd8d07b2690771c778cf21d3b6d4e74541d390040a8582434c55a6d8e6af99c67096455b5b17cf5e902cd9928f96e7d14d4221a2617297858249b9b7235b28847f7c843d69263eeac9c6612f", + "tests": [ + { + "tcId": 80, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 277 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "447024ffde9346a213b39475099459ebb1de800e2879512a7f6747cdcaefe85abb973bf9e25a460bd9ee2ad1bd70a820d8f172e54eb46c78e95f860001323f6617d9408d2e1d25ba6826f19ff9c010fdbebb0c002c2038a178a78f652f567ecb5170f26601eae1bbd555aa8fdda21ba1dcb9e351620350e347397b96f2d29645f10b3d8945d636e58308d85205739acd6b94d671a3cd14678ad953218a6b5cb7b3222c2db794e0cc468ef45358505ace711352899851c324c12767e5a50e5288af2eb3c9402114e06e0ff0051e9aa0ca2c72e6fb479c074c04b2123e6d6f9e62d4374e0fb2c3b6662332c391f630dfe44c4fdb7dac95ca3aff5a427f3d7814bef76f897bf0a7cfd2bd36d9d49f87b870a06bc9dacaab0b129b6158dea464fea551ba4c5431237a189860fe228ec8840b5eb358a68f1d9ae9dcf90dcad2a8603bb7fabb4e387ba963b08e1dd41e02a10842b579bec2a2d431fb9595b4331f46c9b0db975832272ead202dba9be105039328936c939985d1137e2d90d55d4e6787ae2837ab48f0562da0e0e58c8075b4eb5dc9dfc97635bac8866cc5f13f984869a550a100f13f3f56a38b8a350fa4fd06207c1d32eb667fc6811c33db6cc428f620dde08c42dc2efe736aefbe59c167da7793f2bfbc6cd3aaed52d3757e8d7e44c63ae8f0852d73b5ba5569214c9c1980d3852a0b88d0248175f53e9d11ffe19a1ff5ff7e44f8a5c1074731c69198de1be50b7155b49b9875bbb7473983ceb447b2b50ba230f69155d7ac4e46a4e80762c39a97fd023d4ed38f7c425902b7f747a11d7797e2f4cab63d27ac2bcacb17d08ced68b7cc5d91c69bb8f80f17d9875119a741bec5757f66042ecd2e00847c0390170ac2bdadc769cb501ec8aa38c859441d98e5bb9fccc43eba593d928209245e6de8f336cc0e2680c6a73e5df0f554301cf852fa3dd3e7d5f720320d6b079cf2211feb3b2956a0de3f59bce94148dc91e9b0288445763117cd180f7ad089f223eecbcfb06746aa2796dab2e620459919cb4faeb7d4c0d85779f776593d6fb0877041d43ee10435cba6c7baa9931e4c4dc56898a36983312cf85a1a999bcc02cb26d091b3c5a23fd4061a09b44659f6d68b87b68d3e6c18876f9f8f8edb42210ffce4e4c6a4a01584ee1b43709473130166ce9d9890eabebea8c81d532c34a166dc9dc30f1d4c0546de34990cca8a5dc6269853d69f366056f23fbaf72be1fd469fee612fa9a75feb97c079c5c04fce08f89e8087249a77e3b0d73728e95749f7497313631ad95620f3eb3c4ccbf4cc64e6113c4044541e843832a32ad7e699a75947f8ab7e48cc65a060d62972b86df8a2fb0b4bb966193545c86f201c5be342dfb361dcf2bbd9f3a22a6ec498da9d9e14770f9b7f642314bc6f66954bba2b0c621be2b20140eb6a0f536c6178fbf631ae39cf1c66d01c35763141b689e6851d578b31083f2153ae37101bda7d5a1a428582fcc19b310fdbac1cecbbc3ecaec93d73083f9f9c0f972ce0e65cdf5db90c623405863a18a497fe23bb57ad71f64ba9fbde1e462ac28e0d7597742b2eec39741d11c406ae56248c3644f3ac44fea88050fb4d0af09b65ce58cf276b37731d21840f34a9bfcdbb5322d905d88476f89aaac0c3f6ecc7957747a8343dfd8981dcf34057746dcf440aa098e5d41b5c61ce15a72380b7c8a39c982c052cc1766364fe7eb94a49441014deb484afec1692738d50762aa0ebddeafceb7b9f6cb2d384f049a104a584dc274040f4ea030345f7f887758d10864d8c4b27abddd214be79c79b69084d71897ffbdaa0dbf5cec90f22ec07d4ac7ba12ae6ddb130ea34f774c2736267cb13178abdedddad0e0f889b920b3c4b3008ce7b18d4ff36e196b1e7d8dd043b58495e6b7dbfe22d03ec72dcbb250ebde631f43c556ab8b8465b3d76ea1cf571e6726d39866fca46a0b515f0d8479a028517f9021d757ef84fd8a8464311c7462262c82503dcbea392f88f19dafece39ca11b11ee3649840dea7054fb02770a7a46c15c162a05a6a2b5ea904f2ecb78be936e0cc54327564d6097510977807a48e1b446b5076176cd8be717380f4f02f30b5f2d2c0596f45d3c064ca4763e649c9396319eb09d37d3627d3ec6ea58df23cebcec0c9bb68861d0e2fb56e075f2aee9bb1aea052ab2c05ae746f80bab8d953f40cf18afce5f331b334b7531e472d942bc07e02c67135944efb5aa7e39e4344d365d719776494ec43cf3f64d208db184bc4f1239eca1b744055c12d4519905c66017a7a8f6d47b3f0a725222bdfde1c1d605d04cf93ef3733a7b9a5a54a0de03c66866bbfd24329a565c0092856e637a832275f6ce6113656a71c1f1ef90058afe1a376aa00be83e050169b7f9e94451dd6f493fe5caf02d6e5cf1d41c5e7539d2d70ca2ac35b966ff9f66b07401f25b259000d14f9e0aedd734b74fdda9b187bfd99a7c1d241e40f87027567316a3cbc08bb70ade50e75e349e7f3d023a021c46e84b2d44dcd04e6a9c2a5ae4ff79abc2805a5f71684b8bb661421008f45d9dbb86387beb93b07583d0cd4f4946e5c16d4b62154abb7dde8b771e22798be9c39103b5319442ae8f49d5e42ca2f90026ae62848811fc38f2c930f0b266b445c7828e3d8fe4cff57b79d168e51beeaf15c693518204f5931648702f81afb1841ea2479c8acb2f42236fdbb0a99cfe83cd3cc58ad94908d61ce8b953e433599e9a086d5655508c79dc26662950697348790bd0905d4bf616ce4f411c2f76e4f91c6159c6bb317d90356c23dcd001a43ec94bd8d808b07ddf94b93b3191cd3fcd8529197f7aec255c2a25bde0968cf689263e0a5cb19be444f36ca797376b013b244f510191bdc007ac33f3f8e73bad30638679bdfe3adaeef93ee24df4fba7c405b5be5ec54cb375a5b9eb19473e981fd08b6f7408fd00e6cf2971f63d4d4d4b9ed066318efd0523250e0f70562c1f2f5c7c7317f999c74680b811baba2d84153f7ca6d1c7d0deb5ed31da60f477754725725b860a64448cfb8dd8c107613ce6671b956e6fd769ed556f8bf8310dc2f167f621de8421dc13edc84cb9c05eaaad7d9d51a5d7b194f8c3c7082e9d53c5c7a88e1c072c468a835445505c990379d34a2231407a1035c81a0a546ee27b1b3e7908d4921bc70721911a2c0f5ac25ea8a81b2509d40f2c727a9f1d7f91a4378fbc21145320f1b9ecbe54283e1237a5b90b44c9f49edbbc9f8ec73af7e6e7ad0604b3fd84191a24b3efb2d07db8bdf05b742a65e7405ef50e47fcc92d4029f7f7be4c5e7f1b3f85d1b9a5cf8c14228318ecbc648fa7ae37b3bd3d3c33bed9bed46bcd47ce89650dae8cc2c5e2965d59006b24beba14e70b1174cc4f828f11188bf0c21d552f1e5fbb022e84549b05b3f1c2936014c1c3163269abab98508a5c3a4b0d282c6b91aafd64866d01bd8715473fedcaa36ca1f1c6bdb6caf82753d49a4395b3423fd33b96313ecf41d728a5a57fdb8d01c3be7fd831149a0e0dbcd323ae4af4d062079e0c4039a7d9cd25fe20f033e5ecfa0d34e6920bbc1e88398aede6a28439e700e8844d79967451a3771d4b26eb5d012a49a5f817651c1d752163ac517541ca39025aa428f38dbf3cec4d648cfd3922bb2cd2eb8e18ffa2adfdee5b9314a82800447ad55873b14d820192cb62bfde5699b680f2b0ff07e2fe9862128c17a8d2827d5aa73023c573cfe37d372b39c13b414b1435c7a4951cfab1d8c74115711bce198053ae6a3d24ad64600e9c1f50915babdb52dfee9264142b108312222d198810898bab5e09dd09a9a27b62b6e7d7917708e7829903fa5ea835de5725a83d034aaf7321f48afdcba299086d4b20075e0537bf6cedc0b50a1e2babee1090e22e234279d658a75142ccac00c6bacc16704f1654382681498908bd55c4919e841323f4ac8888f1514f4dc9be789c604458de0ced5143c5b1c5d3a64246a68b5c3620a5869eed93bfa07ecc2711bfed1d8d3e927aa16edeff32df5ec23a53e4cd0aeb9b83cd9e67ca15be9333960147c96bb33e7ba5c9816a34b93347273c49d14423566556caae62a2e5d138498ab7d45f5681df334e885933ed2f45c1f726b4f0e231526147f9a892e78a9442aebab81060032dded67709cb278c054d5339d29025abd25b68f32b5742c9e4e313c40293a32f897e96a9422ef349d13a70f5993221fd921d85d2e55c0517cc0d241119a9b248af27cfd6eb37f6d9551bcc7d7db3f53824dbe2acd6f1c261cbfbb346ebc42a17060a01c6cb89c95f048bbc62cdcfcbc33177f5020583552c4093b278179ac176a20451d4968ef4582854ad21f2ef78c79cd5ada9cf2fa29cbd63dd4259901f5327ed3cb92f792e12965352a2a5190387e7d47eaec012daa03b3599ff4713ec6c90d84fae59f45c99825c4b9d54e1b714ae0d13fa452da84b95c7ceaeec30e11ebf55dfe3fde91afcf54673390f35b5f4d57288750bc6e203fbd939b7d3aeb04af68abc9f454132920a95c45bd7fcb35ac27d1db2ba58d1a4dc425ed4a5d315cf63321d9e7a96757b29bb5a448b79b2a85883335458098a8b41f3bb7c42930343a636e8d9dd148bdc22d6283afeeff0817287e84c50000000000000000000000000000000000000000070b14171d23", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "01c8783994aeca990b8c00ec3a55a898e3eb84efdba12db8f3acecf8ad5ab9e0aa86001124ea2b7ef3d568073ca547a5cf5b551acba08ab5e2d9a184106de7ed3ebc9a6b537c42bf577587df3eb7cc755be7c9cab128cbbd9abfa664069c4429ae879de03a15d2d7ec1e00b13961a76824115806c6406f9c4596b74e24529d0dbc66b368489523adcc643c76fee32242a8ea269bfd7ec7b8cc104a870cedfc83daea902b43f6073fa53541b3bea8f41f5b6eb60f53ab2fc2d4f3538a23c076eaed8f57aa86029a186c1ba082fc402708200ea69140b57b94085e9f6e40a9c2d712e9bf4be24b2ee1e61532531d5b9506b463056f63be7a4547fd95ba897950d42fba84e590ff51644ad54ed9d3e20aeab446183b3d728caa6dd3e13c0ff26b11b2396f4eed6bd2b1ba1fce40f9496688c127f2653e83de66db465815f79d4a84d6ddc8d0e9ba6235a7bf4a1eef348b654aa2c77038dce7c67e9fdcfbe6494be1540acac2a0a10d7d9cbade59533c893e2221d061b014620fdff18e34551c706299d0a6aab620dd5ec42d2ab09b42bf026ffdc49d7a624e7cba6180e22cfdad5ca927e9ac5277dc2d341142b793b46f44ff8b24c934b582dd35e63d072e014be1c5c3bf94f44b1e96cdd2489230d7b0b01be94d74964f85a14b2c008873b2f2c142cadd3ca6f7253842f9398f0b0f3b8611b3957aa4e5d8097278c30772d327b937db17937dd79759c2834666c185fbfe2fac4412bd3b3c6f95e3c1ae476389a1b6a350f3121ac642a66363b3630ce5c0d6804f54348b05e9a501bff54ff27fdbad36bed90ff689123dd1f90163f483f3ffbcd7380dc368d631b98a43d0153b4e1ef895cbcaa375b81705d2d8e8152e1daefb0448581b7e458edf90fd4dc58274f2393771928de20916c0ee00628bf51b6b1485cc75433b7756a07364746a4c2a38e21dca103f2784ffd5328ae1575f7359447b27c4f380f74d934a7c9a5e2dd0b382d84ad5e60b4d26e0e35c6827aa3663ff89550e99731857513e455e1eba734c0feeaa50aaa543bcb935fcb23f327927d86df7ae19cb179b4cc60f5a7e62c16eea7bc92a383cfdb4c80b837de045475cd837d9e3d1c0921c446bdb364b18ab4df186cc966eb551632f96e04e31835a8e7a08f14674b61bf3b45167a4f3eff00b2b754777ec52b55487fba51083734b3ee1124a179503225a6855dc213d74c12a644b472d434af24dded4789e3958d0c9e9043f8eaed5dc0f30a9a7afaf62587f800f828816f411f220df65e436572aabe887ace1328cd6146fb789ae6cbd050cc4f5611b0b533b55267d4cb3a3f79ebc13b4e97a6279eefce101e5acd0672665865ee211e99365f9363ec9e871e029a9a78512501cc5613388cf51109e7f9293609afc883dd9cd570d3facf8b57c7131eacd6cdaa130a9eb2559687eeaafcd5cbaa752b3b794377602e7e2dd7e450361596715ebd12e1608ece781f08a7917b15801cb3c5cf5b345c4b816988819e360badf36e5d52d8cd66a43a980b952d490c48501817434696b9ca061b27db5952ba249fa618017b7606e8a24b531232071e513ff20c2e05fca6c0c3e42f410c8098e02347dbb6fe2061e65359a187df76be1400837c0793aa0f9c0d1df64275a9df16a50b7d519f8b51ddb93a2ef0d82a616f7b4e69a6fd58ba72df593b3634764ffa7bd935032f00d49383c410d69b087d17070521d4ff49aa57cc46fa23c5edd21ad1425a1356740ca98821c065266dee6b41187b193316b1df0dfc0aa8ebb3e276c5cc357ec3420aa61ad588b01226ed7c653578dd42ae2be5b4cd36aa28bfc9afb1e51cf874605068ffffbabe15767fdc673b975eff3c92461b1b4aaaf3ccad8b3fc9e387ab904a8e572241923d27780bdaf3ce6cf8437ee66be074d512b3626970893d3df678653a220cd059bfdeffad46b375ce5f908c398542f15b0b63dfdb0f53934d7a8fb10a6bbd93962e1151c9736f03fd336d361605d688127f021cd9afe3f8da90af9b1e8c9e7879a7c30aac69294141099d1d503c2a5133f8b0bab47407693d7cd86aefc34d94743fee73738e7cdbd144ef9792f90ccc75ade1a9352ee7dca62e0358779105547a636cdd73709804e21bcc56c81190b786da338e398138e2dc52484298859bc7638d661fdd06e460cc47e7a533d76befc2ddd3728f402a0b5c7082f6a1f60e96e454aa11f178a1739f6ea30b7f6cd7969617ac7a42240f299f985a59db2a1036079e97b626947588c4719ffe3263b02e31c2f0d43f5acee913bd730611dd4b6146d16db5baba98de460c21f9c5edfe5e93c47f9840551f55b9e08864f68fdea344e43f83d7d7274232591257948d11087d2828c7bc4f585c8064418608fb3a004233b2e5b097ac2b60481339ce0f14ef5cc7a21d23a6465f01507639ce13bf12ecb2636850784728a89ecd9b6b31222c9e0249246abd1820e5c734b7467db4d10fbcea65bec7f48fa058a5c1fb2dcc76fc480d2e5aed0aeeadb238487de0296efa2052083942c79d2b10308ca123724765c7f0d34cda9c0f724504dd0b765a6bc844b1a457662313d5758419384d12c6390b32bc708fa67ca46425fa2a8ad1e3980a55af646ba6eadf4a9959dd206e61183908e70af65b63ef8da29a9d98e1c9ab5214fa4785590134a1e4df5fedbc81179557e8b8eb9332c0a5716e04411aa2cff283c18c55f8e81c59119c05b87fc7e4ebdb2be4b07f0d7856f595a5a7e0848d7fd", + "tests": [ + { + "tcId": 81, + "comment": "expand_s requires 2649 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "a6d86189aa75e8618ba96982c40f35622405b0d0b2f6621b7d7eed57d03eae4c03f3b9ea48a6f4f8d272487b4da8ab4055dc26925aa8d5636537dacb2042028ebccc9613411756918f9b699242445b23c1169a8bb525e1d4277e90a9ce3f68075aa9bf3634bda8b7e6a763df2f614d8fd9ed73ad5936b08fc63cbc60f4625626fc5f5afe853829098a13f8267aa6a76a9abddc1f4da58023b6be547d1e37ee4a220bf109233bdd4402c04a5119314c2747481966d106c333434b03fd1c4c37d47e459785cb50e4a37c0293bc20428a51faa666452a3f60f88ead932b74a45feb3193bf10d323364cf807ec7193f038770e0936bbe1d96fc758cdbde7fa7fd5b8b58d2ed25064500132edf8c8a0238f0ea7b55da8cc089b4ec03cce9e78af2e710b503b5ffcb95e564caf089aacadba9653ad780b52b6f0af8d44cd8aaa5ef8713851e691392b9998e8083131a9139b6939a90a372cda707cdab2423e72ceb12e1138ffd125d4ce5c2c69b601ac6b97eb77b30b51b64cef96e75f267cec817dad9a96a05fe91301dd58586a37c74f914104f5a8cfddb386a93c237c35b5f616a7615d58ebbfa71c3551685368c04497a3946fef065fc39c37a656ae2b6689563fab0c321a7c2b92c60eae122345145694c65ef7aea65a2a4060997465c0bbff4a71d811cfbf93edb022e50c99fd92394380559e78a5db34b513c37566148aa40443e31d18e977bc35b1260343b8e32f6d4ada3e60d084fd6adf097a20ea75abc810d8adb436eb5e3bcaca06b1d0852e9301d7d961571529a777cca4429cfba1e8c325aaf6bf24f6c8b8123a77843f8080abd9bf441d717aebd483f1cf18e102b042cb2e58a0bec238cec8b5cdbe61fea4f9c6bfcfc0bc022ee5f50c7f5b36065703f2cec29a73795f0682940126b994ee873be25ae55d430b7a671a9835a7f6fedf4964a09bd1058a5151747e27430be0ccaadf8d2f4d3e6aee2e699cf06052f77d0f9c503215a6b2004ad69acdc8747ed63d5869d8cf3bc9911630f64cf233c932ac71a098a982012ec7e25dbfc042004d8f530b9d9e24853725e679b6b751cd7bf80b25e4734f41971938df86e2eb70dfa80a2aa3e31ce9393737c14afd5f7470790f380bb8410aba8152e51d070e71a84cfed8192bd9d3ab2ecfc627fafa891e93bdd5d0224f67d857ec37ad2d5b3ec6f9711081b3bfdae4d05c0b36c70f35b3df8b174ee7fe08c4929e9c5702ffa20081ba7eaa9dcd8187938c93efee081b8854ec3983f9aac3a1fede31da432086af172a6f78776a37a61dc1ffd8e5cf2f1dd3420d8a1dacce8f44a2faf76e892bbc4d3ad744f745a7b5ace2e1943bd70d8f366fd200b15431e20f73074aa1827d59dcd3714c36d10f4b5e0b22e2e1794983e53d21b94fecdc73dcdc048df6796b4b38aaa4414fdbaaa656bc63aaea5c11c3a7c11f8cad30f678547820487959b9eccd27e96b7ade1294875ca071956196da01a9802309e27252840649ab35a3b344b178aedb82c6e3741f1049904427a6d57c977c41c42622642ff393c7aa178918d21bc414d58c81ca8953aa680f2cc5fe7188038cf1f4a0b6fb257e1c414275b9a74caed761b83989934953a19baf98a9575c35e52441487f0b7d5645215159fcb3b7b6b193892886024c508771cbc4b3f120810c7d126b14922d6f386e25309bfb4c1494f6eb4c9572e40856150f00cee661e67e210d24a147ad19565bda14c8de45a5edc77a4865e2b90fcdfbb5003fd90d7a758cf408a96b05b6237b0728e41d5847ba118fd8d42c4843b3864e3bf07c0b7136414836ff9ae6564340d4ce226b1b608b53ffeded5c14e91aa39f869b602355f5754c9c30958cbf426d1df86a498276f130e5b0e3c1862c440ce6e41ed1d8acdcd0f305a66769590244d672d34aa4b72d023332f5788649550039975e467f196cb35a276b6fcc394043ea6924ed262a3572bd354b3685d98e87ce4a5038f3961e89764359c5a507df56c18b030eda095ef6b3568ef010f57949d3633f397a7a04c319090bebec19f521325f0d8b7353a210d462e5a3e70d768c1e8037f57b51b1bf667018e354a14b6cba7d41a23d85d1f2e0473302dd840a085fbb0ad85b19d3e569346a9407329e24817e8a374156f87d2b6b5319f5861addcabd1356e712fe3757ed9230169e51c0f3234118d20f477314514e5aeec9fbeb0ddb58404df022acba911ccc5e727475a36dc9709875303807add451004afbdb4ba7e3ce36bea2ab5c10dc71fb0daebd762a93067a465297c83d5f49b12eb2c1884d430b24c3866c900b5ef882b0b819eae3a5eaf8290f86afadcb24e100fca7538672b9a7c2ff654789319070a363fb6de40fd79e7d2d35afb5adabce11df381c70c0cfb9369af2caf58871e2c48020ea23e7d39195c1d7792651077d8daf2627c0576facf26b7819f92d01cd2375432740cc3eccf93e67803b86802f176b8dbccaadd98327ff492e5a6ecf2234ccd6fab3cbc279b5ceef49cb4d93008dbd9429bcdcb1110db7fcc828ee02f66b7da8cc80d2d6c5f4fe98d8e64930c7c4d5dc20715ed88a6aced33e9b275a8b8289566d67b4f9d0364931f0462a253efd5c1e6db9e7f79a999b5f60819110898d07cf59e6c0cb39cc252705ccbd381c7260a23804060af41d1a0c57d4e684bbca270c608b435082ee5137701f433f3e99ccb3aae30a4451ca36f0a7319160d6abe4974435845ef133e3711ce15b46e5cac0b37cc62a4ded418e648deaf27019d6ff0b821bf8c0eb0d84b531ee8d98f14f4b7dccf6eb550a525746c8eef4f1d234318dbbd2969af3012d44768dd40d2421756e076bc3fc70783de3732de15bd68464f20a7980a58eaf6784fbfcdb8306e10fcdee3aea4e9f9dfc08549b9915b0df736c337e0f918913756e97e7029bd00f5f6d946de70235cf5ac260bb39eec3f71ae8dc19c7bf54fe03c6f894cbab5867bfdcf2568ab8defa4a15bca7421901f907b726970192ac2294b5a90bbd0fcfc2185e819fb0917c4e83dc6088377dab0a080e036c401a3de501764b718990c8514af6994024c9328d0068802e63866dbf911ef1fcc05a4b831df906c2efac9bb79df60a34def5bfdc6eee7425f1bbb21619648c8f4b01d8f047debe8b1b08b1ac090bf83d4363909886b40b4f3b0f1ecd486bbf7339a4a04466cc01ef7c5fe2ed61ad912b3f447b300bcab8849917c05f8c3b8be383d7f46909b2fa0ec95dc1f77e293cea49806a581719e983e90e9fdd8097cdb92788bece98aebd951d666c22e6fe06444048d674e7f8258b22b38695843b044213e0b78b22cfce0dfae13954900338c66e216103255e49691f3f36dab6aacc9d83ea5f93cb544509e0d75c92bc7637374aeb8a0211ff989e493d893feabac80644ea092301f07ca1a1febcf0276d00ea8627aa19ac3d1b5a374abab473b13b79c202dd555fde622fdee1ad6856988c59d000b4e96e1782f42ddee2f949ba17285a7ca4bc78654ad66068d7a2f4bda254748b2685966a9da2e8ea39bf7cd8b05651c6ffd7b61cb29bccc28b7bc072a6a2e76b1005ff5adcbef1394dd4ebe4a9e47dacdaad90943aeff3336180437964085e28ff94837871179745607d11d71f4f2a04441e981b7b4d3c9f85475c2e1e89eaf8b8b2ca3ea3bcc5aade6cb406b73290fecf015d36c5e244d3bfab75c7dfab47b751917158fe333321b495478eeab4ce2cd91173ce2bae318fc3d6906f10aa86c0abd975ba889e958e9fb4fc6acc846bf7196f4a42be5dd51c4d7b5f80303b0b64e35908d7cee503749bdd67d3ff633169dd4bcf39617de8067855a4e0acb680e2879795960931d3102011ae6242423abce1ee4012f7efbe556c68371c75b857c5635297f3ba7b7e5d6f030f13f9177303501ec67315198e7bda9f3434bccc060dd433f1dc4246f491ff255752d8cb103e278d5f35546502cfe85321a6fed500749fbb51316175f062080a20d3f52da159b448df61599f5754ca046dae3a14e9e03525acd9a1fe964c8caa9feb3ada82320d2fd4bae1525830c0a3eb91cb454f9dfa43c6534dfaf6a7e1d2b19d527d4f403863518f63246889614972e0bbfb126ea0b509f0c78278ca1911797fd5da6c00c8b6b212a511ea9bfe7c45fb742a109fa40f375490c0b5e98aedcec7076e1ecfa567ec3575cbc0892460c52e94d9121c4a9219049b7325f300f04182373a0f476f91a18b4ded3ace3d001900f9316d92be485b5dbefb54fc2b6ecc79609c03b149bcf2558ff915f49bbc691b45c3983fbe61b09cbe7f17bd4365e7461ff2388720fbd74ae451f61f73f8c8b51afe87e8684508f7d64ba03f2abaff47a30ee51f32e25b9d07371f578df432fdd95504d64be891762adaef094318e64a5dd86eb81decae2c30c8fdf3ddfced1a6f1a3671b6687765f9fd93cf66c52b8986c5ac3f78a8048d969fe78d057f8779a450c4c7cf554ca935c9f7ad781dc3f50ee6ab1afc087f35e02889a8cc70a333edd334688c70e85e5e33d7509ac4cd6e854791cbdfade909fedc5614190cff9b7b4f62951fb40fda1cf62ae77d00cfd450db333f4c669eea1877afb5babce2f70733396777b2cfd1e10304272a373e67698c40475d6a8dcdec141f999eb0e3e6eb0000000000000000060e1720272f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "b41031e429023d8b0bde433401da448cee6c25c6ce0d570f91fea2e8e0003b8d8b3efecb56b34a3ade96b17d8b98ed28c6563f381cea1da2898be8a0dd4a3c7f187ee288d37f0fbaf512d127001c713d64dc036b1791e239d9f8494629b6276d0ac1e56ee7644e0bf860f098728ca4f225b500e6975a548c52d422d3d1e4f1939268060ddf304515490e90660f848d839e219866252b107664c3481aafc8afc83ae2d43f448aa51d5765ecbc910f241bdb815a4e11bb84309c947eafd69fd80b2f9cc66afa06ef67a9fbbb1fb4658e3f02babca2d96a4d93582442db9a245e1d979404a4963ee0f70ac7cadab852cfbdcc58ab0617fea49dce099a430f835f70240396aa39eabac3ec22e3ed79d724a77d37e40b8161ad8fc85c930e76d714c12b1e636a00897ea7a76f18a4df312cf7a0861bee298d6412ac5a694ac34473151728cba9d3026879332a23d2562e8eebd9324e062444696f78e70e876a8c197b95c82bf11a8588a831d684d8602cca58c4d8030fa904cd71ac066486afe9d3635f41611247715d29854ba1181c3ad312a7a28bfb01796bcd016c2f75d73fba343c8617b534175e06e4d9d2186a5e9d4348fd942f885fb569956a4f0e59ba57bb02f7cf56d67c0bd0db375bc95e58a23389cd5293694ed4d5d3fb3faefa4dc4a2e59df6db2fcb8535c37e1b4cae7e8cd0fa0d02a1b7875fa324da4c9e9f5dd25b56b313373dc7c23f1efb257a08d829c3bd1c80519756707869b2bc6fbad96beee610238142f8c73ca7667106c31d88f223b47a459baf382e45d347973c6279e62a77f8df2b489e1432684b0230ece5f2ba6c7e2ab70cf620436632f3a516e2f269995fdd4a36345a201d7ba22887d7c24c5c9cb8184c516ee4d97dfb4437a5ae8ef8062464d8badd958ad779877b4b1642505e3406b2cdbcca77c33d10905501d556c6561f4b64d5ac2ae015d32c650f427593e25b34dc334ce4de1a641c5544186ce6e852e9c9bbac76dca582de782e1c53b1dcc446fdc8fc1c141903ceecb37880fd6d5bb08a481a2315f5d39956529139d5250aaada5122d39dc5bb6d0f96e17f01d9e992ef9b220f08427ee83cf32c69058a5f24a0aa320d18923ed91661f5f74600f332e121fa51b628c086233cd9953a1428d4d8f41531a7233327f05ef347722294c31362995ecbe2caa069b869e9f232867fed5ec9ab09bd474c9ba1fd1362ae742f8f9984ae50eff7086d32e8407a8aba62df7817d694054d8d063bb6ad34b85d2e9c87d90f4338f5b92886b4a0ebf90954bcd4a7f561af87c966aabe3cbc955891c405355b77d8ab9b9ea0b149ed17266743e138ef94cb1cc823bd714ed75cad9498cf2375cb869af424abc95b05234fe24a832ab6829799312b9370d51b293e4c3e3bede66eb763672b51e0d567dcf9d05c5a3db7ea6f04f309a10f148292c33bffb8910bb67ef3324c085517b6d364116dab5f957ffe1866364a0b73a75ca5f82af7fcee26f7349d7c11a3424171b58948778e2dc03af2ee4b5194c777e337fc5a4b650558a2fd980fde30becb2dbeaebdd845b9e7fe98213889def8c4ba33c3a98acd2e0f9c6da0d9df4d53e06e597c1fb5cecd29bc0fd34446d48145a32633c74193333711d54e27db38fb6ae6cf0644822be6f6ba0dc7a41f7691dd8e3a7fe3c92ee4a7b682b0ae11c137fa1ac96d466cf491afaae57998e16a739de679d1d27f795f3852f402e8742ccd6d77d104598df9e9772ff775cc422c2508708e971481235e6b32d0308bb203e46f6c883b1736e17311855b61bdc7f776ae37bea27ce9dfd8b421531d556bbe953a703c4ca0c998aea7541be8b49c158b414415072bde726de24460a3b6da8bf23f9491e41b498ecb1ec07ffe587ae9a16d852eee18a6259d8f69ab7aa5875850d469f471173253eb72a81d546f31dea76544171cb4d0c6eb636b6acb2d1c9036339519fbabe0dd036b0fa69d0c207cfb59c3c3ad3ffdb9a8d6d353796515e5b606b4d07a8aeded5767c6be8c6035cba13cd948a0466cae07c8cac13898461b6eebda444b7b3a64ae1185e27fcc59ded90d8c0b9188b9538783ee0b0d6f90bcc753a12f33ad1e96b24585994f7b7291b4a2f1b240553d4c9e8d8e6fc4c354d85f2928b3551c20c97ba23a053f04fc11c72a4db576e76a7be027552b7903e9568608811258396d3f286dc307c4c05a546655ea08e8200e4d6002374043559b768021aa6e036144df0ea32e1f3f2a158fd2655d6afce1b3721353e5977d59e61718c95e026e3d9069b97e146340247fd7dd7c71cc6d83d2668fc36740098859ba5941c548541c776f5cc38ac3840292e4d17879ced0f72d892c297d15afa4d1da9edc7e58b1c44302b504cc8b926442c03f900cf683a7286b844bfb35cca31ebfa2721082cbfeecc681888afd938a2314cc4f667d7d5a7dc5df04b6071f108f97550d5afc29b304191aa5077183a970f099cd6c59120ae1f95a9cce12a59bedde1e499a20cf42d69e86430d18474621d0e4e4edb1b71d991cde47e6509ff8d1bd2f86440374213a28487afa099b69cb78f357e9a64dfab99d5e7ec01499d077095edc842fb32e185b83bf1bc30f9b47c48c835a729d1fba5ac37fa941fba7d05667a787a5cecea0b8b47986e897060b7a8b93aa5920f1e7e14c5085d9d2215dd6b9c2cba0ea4f999fa35d425bebc3a150c7296b208ee0353f7d23e14f09b2e5c05128e08c97f56d79dd1c0dba1fa32f", + "tests": [ + { + "tcId": 82, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 83, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt b/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt new file mode 100644 index 0000000000..e529cd5263 --- /dev/null +++ b/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt @@ -0,0 +1,617 @@ +# Imported from Wycheproof's mldsa_65_standard_verify_test.json. +# This file is generated by convert_wycheproof.go. Do not edit by hand. +# +# Algorithm: ML-DSA +# Generator version: 1 + +[publicKey = f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f74d9cf676aedd1067c91a5dd5d4edc46f868a93ffec9f44e254e44f682a153aeadf228e8db7c5fcfed30cc3408e261ab896876bee56660d2a7c1d7eac20c5754255206a178f7156295065ce7876f90c48f44bc37f3a00e32eefd3a4bb1e298fe283d106eaef92a33a594253a2a0790976a1d04636f8672d28c06c852ea8bb43b84bff512996e7616963d5b9a2906466a152c7ea9be178be35405683b44367af85d2daad87630c1e21ba5490154f0141780f5ed0407cb0b975dd56d5930f9b26413b843b83f3693304b0038bd3e4bb398868060ea18c9c67099376470a50deb052e4056743fbcdf0341b192663bd1c21ba3b3d5666e0d0e29c4e1ed0759ab0bd9d1d355011b94e0ff0c049b03ddb7138640667144fcacd7265f55a07e5387f1abd30c037cf14d436aa855f827049215440d8007f61460500d943f57ffb6bfee6fedd2fcec52882d7d8da1aab29e892c8beac3df3234b4a7d2eca3a45c6623c52bbdd07c1c94314b706988a52029f8f8b06e874b741d72926652c78c6ace2cfd8864eadb2e4b39cafe6e03e4edbafa2747db9bc42f92af8b031e3e380846b1bfd15ade88c285d6a6fffe91eafc8b17de6cbc68575f323cc09fc20e49e8efd76f9568bec486b78df4245428d8d0d5f53873e11de65fda4c770b521a8c67f5c51d48cc26358954514447881fd9a42e5891dac7e1db5249d7861b322111e5fb929bee9ff5e9d5a2667ba93e63fc03040d2e82648f89e89dec1d1d2dfb9efeceb7940f7dcbebeb5a239cc1c54d8f7d52cba220d0634e15df46a58280bc5a48840bd39274cfde150f9ad9a40f6398d715350925f0e0501944409f32331a362bdaaafb3d8ce71c964332d6afb7e684f99951246d88081c86744ae68133f22c53a4b5ae258f230a98491d2d43a79a6d0f4d54a3b62013965ac7c82d0507125a38a0277f81cbc1d46cef2a131c6f51b88ec0baae0c82a6a0e72831cb06f9116cff5111d597e01057d32805a008f52c9aec3311139bfb35982789ff83bdd0c31e9f1080e8ed8eb99fde66bafb29e3357389fe3785b60c78e229ef073e1b65e34d848bd4d8a4f251551e2d38d2546afbc205d3c6dab34d2b962b1afb44f1d22fc10c6744fcd6b636afd3cb414b16c2e0d708fe9f51ff19120bde693b028b6d1e6dbe37b4b8b3bc7c6f7a842701603869d3ded572500f085502efc8d3cc62b30e5cdbcb5e86d9c0d42973bf755df539cc0aea58f9148386db67bd2bf70cd12ccd96d5c66fb271416b772465228dc44b079178f9b766370b66a79b871faca246ca6f8f63be9f0668297ac446cad5cf4a83318b1b00ecbd283f0eecee60a9a37a27abdbdbe382e307970002837dfc0bd3934ebd008918fd4bd383c02c9d37f694996e989a49075767ebc4a2981ef5275455e026cb0bd70946cdd1fadaf251381d324f9efbb860d1b280c29685bab97d010676273b45cca12ac3966aae342c84e2357eccf252577743b8787967b40b07ef2d3d9e6c1a3bcb059cba0fdb7f0d4f815c242b8e14acd3375e608e9230ba3cf8718f43882a3e1e661a2bbe81830d34741f33473e263b3790abe67acf29f5df44865b2ffbc96975fd62738a64112deda5a2534fb0a23b3b3024df986391badf9041c593c313a7ca1e1fcffcb65b07b9a99337b4a4acf616cbe1553eb9541f38aa6247342905995233a28172ca13396b2a9662970120f82b92a213f43de7a232ccca3268265c9ce042d50915430a6c455f32277da42f9962fb9163b623231ebc080fa7b8e9f9021fcf85b98f9c483e4d2226b9326a5bcb2e7449ef029ae142d3a0f0c28bd4f7e9c51a12e1336f24dfacbc3f808a8f7dd683027bc948763b808fb0037394b8b41bc9b2ec7887e67584e03d11b15ca203b2bcb43f8881638c4e4eee7f846d09c7f89b7739df22b2c3acc235032ba8f7ae27b5b9d25733143e80a4cdde6770719c1e66ec2ce683612233e88fafff84c0745a98aa1254c8219c6c556348c2b5d1beeb61532d6bf7bde153271dc647460beb65fe0055b33fd6480dcbb9d7d471952cfa5be260c39721a8c5c89b9e966ae2dc9036451ec9f2c49433b2225e13f23e20c2bfba81a7b3a555883449238f7d48213e9f10ce19e76f1bdcfc73ee5524bd7d8be0a4b46784e238233c04fb99383ec7726f9717e1179dd14fba9ad6c2ebd1699f0ab0e57e6cad23875b029e89cfda06f51266ecd2eed4edafb51e82f2a506d57ba74da611774ca5fa2fff4a976519de425885e7d09219cf815b1767d4fc5a72c18918991a285086a6a766614a4d245387da50f28dd778fb33ab88c0918feba3768c55bb1f07aec33cfeed33d6faa4d34fd7227b365533c1e67dbc89f0b20195cf1cbd480d333ade1c9bb28308085b72ced430268c1492a27050c43668adc9cf8b8509447cfcd3c8f8d8eb554f704101786aa9ebca86991d250776a37a1f56fbf7d08e591f978da49c3870625879f70e2418aec5cba32fa8c346fa9038baebc35ad0068a4d03537aee14c2e71570a87490377fa8dd66f995aa044a522f0c7025a7ab2dd5ad30a64268dc112b7f9fa156df64d631f55f1d6edc55cec570a9c7372e29e02c8d4867bae249431dcf6ed2794a0183f0f7501201feca4a81d334c642fc8d38e9a90fa77429665e09e214797dfa455ff47c4f219d3a2cb0176bc2236455123c1c5da714ad29d580fb194f87173a18dc] + +# tcId = 1 +# baseline +msg = 48656c6c6f20776f726c64 +result = valid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ValidSignature + +# tcId = 2 +# empty provided context +ctx = +msg = 48656c6c6f20776f726c64 +result = valid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ValidSignature + +# tcId = 3 +# non-empty context +ctx = 436f6e74657874 +msg = 48656c6c6f20776f726c64 +result = valid +sig = 3a1f0e89fa72e489e2c4c1607b0f22ad03513725660d1ed7cc9a6b83580247a101ff45480e4ba49b1feb3bde46952139d3e1d34d7da0124e8ffa05bd19698be57ffbd5c2411f01a0588898cf4af2b3f3e1fd83e8befe03806d91869eb496c8ce989761da7190e036eb2bd14a8f9e195d5ab8a1b2b11dd56a098c1e7ec6d508856aec98b74850e1b934600b8b7d33cea5f79877cb9b1452a2fbf5fe09651c83c2b965aeb496a2a4edacd4f6f39d56cde44c2f99c2f0b548501220f553a1ad14c6d8a970d1cd6dabd4356568621d22c70dbbb21dab61c10876e34fb20d3f012eec956cdc9ed81c98e2810c218dfbe1de709ceec9dc2eb2590d31fe9855f8a1d14849f9df5120bda5a0392fd6cd93e2e8e5f80e6b30f45e9b409f9e251a0ca2aa8ab99394e9190f3c2cbd1bda77b49f9ac887e7ceefc333cbc49d080726cf373753addfd13fd4204f12c07a21fe2ae5d513eff664c0ae4780f4d4f87a807ec63efe098e7d196223276f4564efdd574402c77390d2cd72f4785501f89175f6d38768b6c77838723cfa66d42e3556077039ee8fb363b67c174fb70f78008229263350c14b54fd9361a9cdb29fdc57909c757f96f9f2c13905f44c3e40a16a92b0fe509ae9cc3647afeedb032464b176b6a1afa78df4fd6bb765e37071172bef2b6d045b9a51701d111b60d0a639c0ba034d5c6b4c146d079a340fe53e9cace778a995ceb2d39f302f066097eec6f65f775a5e803f10af031dcb3eecb2bc4939f478c5fdb96e0513d9ea90ee2cd46ba7fd45f88e8c38a23e06fc5b2c624708a5dee0d00bcd976a8f75e35c80caec5531ff4ef8bb735cbe7ffce86290eef23248b19272692b758bba1de7a66c63a58315e48f5b127849c759d185908a730f1f29272003e6491a0b4aa9446da297338e04a60bd5f8413778aa08cc0d146ba76a5ebadc775af2b0b3976acb54de8910417f857499d8395be90d207615dd061317e5385b886281699e484a7f958715dfdf3ec30d5423d94e0d1657a24478967513fc741fce01f848f9fdb8fa407b7cda2f7a0eed64d9795a2bcc9e12c1d09b4d71cdc9dc3fd2ba82251f0a9fe5ff32732d2306900184e4296bf4b5b92c106d72a638c5f6713f49a7099786b32ba7a8081aaf0ca40f9919e0645fb255c8a7f4aa672999ab84a19b9d759ce478b7492b48a83eb9bde46e7c5ea1883d03487ba01c8a9c4c798a765b18b311115d02911dbaa5566190006ba40f5ee86bc22eda4ca3d0e8fee49b1a61c4057d95cf797c30a7e06d1012c1af3622629de1765d3bd928df0cb9cc7e30299c5148f782af4871556a0ec4358019ef6a434ea3e0292e97c714fbdb3ab14837257947eb7adc9c1d682123a016432e1eea5afd039bfbade397a9360b674832d2c55d521820c0cbe68bdfbba6eab8189aeeec781362fb289883d2a2fe87e287b8d940ad6a4136b7b388b38b0913f2fba42dd079cac04a071636b7e5bca67b44860cdd9e5f9cd77f07e524e9491addac1c6a66dedf5a4f814fa54eb9586bfcb1a6d4a1a166b1074d28a9915167ac4cf279e8d22555df57cfba8bde251483d9b2aef08a180ff74edcbc1bc2219f01fef23d77fcdc1d41ebe683ec96a75a4784945335736770f63a5f000da542958558b5ee375c1c16a109d488d8b17daf2450f35e0ae08fecc139bf8d5f51f1d9a1cd738ac3bb1e91a3bcdbf79c6bcc9a09eb11bc97a7062fc4e4e1c2e796241dc42481d3dc89b31d2337e8cf727c43dd393bb738710ef7ff96521dd92be410f295c765a823e1984e63c534d5f040753715edee4c3f0c78cd468eb9322ae8d5aa92b88bb172082cd08148a8d208d21dac81f0cc516d08f9c0b7097d91bf73badf049b62085328e347e20cd6ac26c64be5271f4761a16ce90ec9c58b2b71c998404e1411f1a1c5c6a6fcbf260eb3e325d1f70132b5f41a279b082712005347fc7d8a6a960ac1ffefb33de83cd6bc704eedd8ee937487635b696975a7156473937d7c301579c4e531170a6d109d50185693d9dbea24781f391fdc1baca492f00867d362797392af50da481552b86f323bd297b6a0cdce20287f0ee6119be14905ec55851768ef95d50130965c6877ee8d91e1fe19fdbef7c80ef7f93968a0d717c354f071bc8cde4d69c84a6e876a261e620a0f7c959da0c638b32d58325b13ddc9fbf566e1f411edc9b38a2bd031a7225551c4bc596958b1c22d5ecfabd2c09448417ba8568938a1cd02068d4ae3e0821dc96247ca6b704a0af99acbe5ec66b28b7c461da48743ccf387771a15eaca6392341dc4657d5c4c986b0648e712ec50f22e3d68b272dd9c34b63aec5686daa5a0f9bd259138b6d967cfa368c04c48657b2de2133b4c47147877e080d5588b09ab0b19d947b6554aaf43601b1c7384707f3091331a0583abc41bf448283eaa4bb001a44836de63e66eef64b04d82ad32c4369bdca012df554097e493e77e1b26acd103b564b6e8134012aec9cdc52eea80955a76d1beb2cb87782157adeadf2ae6c6a4b49c031d6769be9b42e6f85c8c5a6d61947f931c321b45dc34822c8523408c77bfe32048719537361fe6a1c9a8f3467cf5529dd597e19285304c716f9144debdfbeeb16ed742fa17440e02cdae4816699faab22cec162054df5d6ceb6394cadadf5d60abfe5c1dbb3790e4a98bcd9a84f6d4aa8e5934d80b40d8da632ce6640ceb070ee6034947a094337c013075c1a1267a95c820b7eb5f2aaaf20736f09502faa043cecc39f2ce7ebc0a14f846e38fbd514b935d2a46dbeb778223f20694985d27273a9be7e1be3c7dc9b8af87c58d35f4cf6559f48d27cc7eb1c050c76d85edd69995ea3b2e54868556758014ea18e18c11db61c56436ca2ac66260635d927a72cd707ff5e533704477bf9f578848196e311369842846588febd3a229d0b4fc04a5848d98ca55c3996e34d2154efe73a63f052da1ceb72bcd844dad8a4a4546cc6f94b2029b4e2c8a65d2b50673668e7abce6f054d50145b744b8103592bcb4804b446e1b7f4910843f5cba5a34e5b17309eb287c39bb98f6c220024e7582367d3e5e83737ef64944437c9d462c94f61c754a887ae4e5f1d2d64497d2b7fe8e885af00e8e8ad2d998b921a654616866e492a32742f319efef91df3f2e3d2697a4a12b107ad94da1d64ee6c67f0e9cf5aadae3eef52a22ebe342199cbcad564cd11685e0678ea3c91bcb67278ae4a6ce5664e39e86c3233cbdaf812516aa824754f6493cd5559848a71275b35f503ac84ccec4fd172b09f9ac40543a54059eed72f77eaa8d56645986ec8767e78c2df76f33e549b561b977fc5daec7436735a46956077b661fd05dfa124fc30165d5a14d9215e75c3134cae2a7a8fa490dad2fa745003c2d74d83ed13db927f4dc5cfd856c758b39915ccfb695c915c3ec5f3257ec38a0ddfa1401c3527ca271c856f2b00fc4f44416f7a387aae1e88ca212d81a6b4ca1e61c1ed2809e41e78ad8fb170ba1e0b138f061fde62eb7cce2eb8ae434b37fd4eb78b85990e7f6d21b32b4cf9dc57fd9b46fdbaaaf25139315a99419cfca963b19c3fc2923c041bf43ccc6147c3f9736a162a20152ee40effd6a3a29523d77dcb14a70b4ab512bfd11980e30bfd77304eec045d50b5923e22def0c83439e4d0326d9a20e53c43797dcbf17014f80ebc2b66fa6045a8b402b7fb182b43bb8ed6d569568732723b0f7807ac79bb676f35221258fb1283bf7c275b2872f2c625b7e1211b381454ce044a3e8a634488ece71e6fc58b84668aa744302b8a061b5674cdad160c2d9ef600385998c9f002fde9c829a6be84fd27b8cdb8f328064210918f28189e0dba18535d978efa8a8157cd5a477db7e3c909a54ae886008a65ebdc3eb3f06b89ca21ac3981d064fa15f01b1ce801a2c515af3298c4fd5979e6a651cec9ca50476773a755f96478397dda65db9fc32b2166dec033bb46fbad0edfd03f3c543e144c15dbdca9b83f2c3f0d5357cab1180472c7264317b319ad50dbd476b8f6545d86e5e399cf6177461141ce2e438db3100a0bdf957266c9758f7039817141bab0b3ea234c317554a1b30081eeaa6ccf3406a2a3e38d0376d2c50ff03e770be90cc3bb1c05ae9ab546e21d5f1cad5a4df5b53684789e534f2983bdf41bf9244d9594e889a2eef8a64789b0e327d3b48a06229ff0e48d669cabd64b7d0aeaeb4990571e275c3026a75106083b32dd1f33511877c7bf78fa415243d59474044bad21c773e39bf48619a7bec8b55b951b79f097cac697860b20c09bacde7a5e8054774db8da54742c32264f62246ad1945be13f1f7c856810e9205fa8dd797fbd4def035107f85ea309c1565f0ee1fc1e312d0bf753aed6a8b7704d8a1b2e88703511e6ec48c17ad33cac96aced306c8c08dbfc12c242d6fa52c4e51faf4cd3b331f57544f371fdfeff6c2d5abd7a38ef1abeef3a003aaa7ad6d4dbca80cde878cee6c46429d86c64c73671093e9567cc807f9f3cd9dc501878051166220c2d90915ef8e5eb46c0c07befd7a63cb38f5e9b4a8f32483d998b67fba733e7888c6297359fd32791beda81f7e8cb5d8ee05124b646db4ebee1e477c86bbbdc8d9f2151d99b8e6f0f23250649faadbe7ed2642505d7c89919bc10000000000000000060e171e262f +flags = ValidSignature + +# tcId = 4 +# longest context +ctx = 414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141 +msg = 48656c6c6f20776f726c64 +result = valid +sig = 88b645448a1c81f55c81631d057b1ca1fa8bb42af19f1c2dd2bf12594f23b86e17e383aefec687503d0077658497fcc508c8f7b9b6ece29777cd6625c4accd38e27cc4822ffb61fef18380362d29ec040773c9a2ce8b6dd7a1dfa233b76774ea41c766915afa7954f5e24f992d1dba4862802bf775d70c422100717a0e4d9ef9e6d217588cc6b9e1199aaa4d89e78ec1c7ba567c645538e4e6cb7cbaed4dc0663ca36fa036ec1d4334249cc6183033459c3035b4b56f0837f15ad908e2d9560b39e13580497ea8d5e8ae5ce71ae876b5b1e1deadc205e8bec65a724eebc1534155c1f81a93fb5bc6d00df71d8eade2905942a4d6234ce72bec2eeec3edfb7da4a6cc67af12c616bc63dbc16ff1467f02fa0c99a4b135b6a71e37222982f91cb466ea920fea4a729ed09d763e4dfb1bad062ace603c65f952e2df88c6ed63fb344d353265f21aa0e5548676c5d4dc24ff7f1ab1aa91ee19e9d0e72599c85f51fbdbd4f7d21a35ca87ceb19cc9d28df071538f34382fe278bc512f534cbc1f747a4497bc5827de2aa7b672bcf44988611c2e8e8ff88ec64e4ea101d47c88672b1794c1af23ae4317b6b5fd2923ebb7c25239d9efd86489fe8177f6f27de7e80833a344c3b907300c73ce9f9cb2a39296c59d70e180f14261a51814ca7c8117e33f800c126df8c92de498ba9a443b480c9f6c23d26e73b0299eae2a1223756132e3999cdcbdd436a9fcd5073c3e6212ca0dd3e734e355567bd26776526c15dd1b2c2d09d8604da0c0cb38dbf5fc4615d9d5a5ad217690308e34f549981656be6b144de153b9a428a314a19549688d57c8bb4543f12424622e1971c3b26772b3e74743d668c9008debf1ddd942ede5206ead676f249b93a324d60bcda8be119a61f9bec64253ceea1fc95ca5235ba41ff8814f83698bc3188ab802f2a6f33b25412a729635b7e530536bb90972750ec905ec1336e613112ced0a3e68427a2888b4135f8eebe4d4a9cb104627ddc182f319bf0586b82a9edbbc17c11abab38f2add065fceb1d419259597e4ba91ec5d15502f3253bbeb75917b2fdab1c8457af97ec864263d8dc501e9ac754f59cde0373efd9b18463a27eff11199afae22711c18172e077a0feb457b08ae8e3bc6614a2603e95eba9eb230dbf48c5173c1893268fad24e31a5bd323d5b224c0a9fa5fce2afd61178390fdce163b4ffa1d8aafb248ddce727070677310cfb36695b8846c4a32a9973c88ba0e17a1c26d62f716858200752970ed6490eff966201c9ed9cf223ce714eac732d52e0f63365c3b2789bf8a09642475407da12fa19394c55919af3a02d31e26f4270d71eeccc5c5373ae35d1fd9a07d500623b1827c4674287083cecb466f584e31ec933bde9c83c57e8a90a141eaf4c456688f8ca1353e64ebc7cce779241df3e34e7353cdd3af446812c4448383efe1613e5f1f6e9c08c0d5971e7ec28874d7865e3bd4cb1fca0f7ca1fc499c718a8ede6f91a8232991ccd78f918ada16271e84c6b8b679a8d5ab5f7a07ebc82b01f58de7a92753a028679ca244a72b13eb5ed2910da55a998c1f427d2403d33862b05292b1c0bec902b51f4efa0264e6295318c6a44befc85e00ca887350ad86ef9fc45a4a01322522f74b7ad63abc6c08da9118319d84c0b2164c9300feb1f2ce80de5a79918bae083397d42a9f415a40f0347d25c82723d62b1fe52d02a90be1cd7cfb5c1732d644db047eb48b50ff38ca74929edda7385cea85a07c798cf773d4d4e29efb70125307582752001d8f3a4ecde8db26964d34f5563a6683d4939d237ff6a68361f0d2e863bdd15c39637e83efb2b75902220434a273b3ccca148267aae092d8a2b0aca3ff1b352cd6b331bb63ea3e69cce2c86174c8b2e0d061a35b067f2fe7d9999e2c1c07f07b1e98246af36403b2a2bdf48c7e4397b3045303dd8e3af1138389b0967fcd146124fcc97fa524e10afb0ddc1294b7543f77d0dbf0bd845b7f9c36dd91222ac30f89d59d3d048949a456b43338cb1ff1b8392b083fb6fd71797cb21ed52b94377c9c69d90111a30612e65aba8e85fcd95fe53b49f18952380c1a9d9347d21e9a00633bb119481d7292ffd25ec5d4dd842ba2c775757f1a5d26025e4156f3db85741bfcf60f5efd580bea6fc617ebeaa78baf88a0db57b13bb5dbabb9cfd6c8a56b635ecbb1fba800a0cb30a6c241096f6df1f04bd44b3b99a93545c6cbe6986e5260384824875a4ea2ec84e6574fb6f08103c4da71c6689cba16cd28e8626233bafb4edb9ea07bd02676351d57261586832ad67b87ad61a59b7e7b8519e85ccde56722a6cd2a7649afd5034f98f1b9c1cfb7d320f491dc90002bca428a88cd063a3b30ef09fcbc5d6a4ecc6887e0b05b4179c0bd4d8f4791c5cc6a801b4c54e6568469b22b52638a5a514e550df53aaa1ae83fc9999658f86ee16661e301626fe77b064bf94b00fea4b8dd0237906fdfc6cc5294e526528675dbead67c7a4de642af3d9311cd8f2ad66002bcbb35668da0b8f2f02feb11b1b89c264cb5a088de45093cb72c4e6d54ecb5f1ba5ceeb2b95c023b412ab52e77338bc3859369fbb6996a35842b578a3d844d1facc6e7ff7bf31959fb16680cec82534792913dc2aace4143f412b09fd09aea82ae48f2d16323a8abae6527967058e62311f3458ec0f999a3ecc087501b40a0bd25f6fa6d126775bf261d0f3c4d428dc78c6b594bda8426342728ae4035e8527e24e01ec3ab9193dd2a72c84524aaa685bd3ace318dab3be7d89eef18a887c772242895ad9d555c444c670f2641c462295ec0620eacf3ba75b8fe914f1be38dfd9d12b501e09f931556c8798e1a40806c67833fbd2fd40227e3854e6af14a7b9b300fdee969e84c76b9a142b23de64c27ccdab63394c6d39e66315ba1a376282e8f7580ed60eddf9ce0724c57aadc7a8ee5b491605ddcd4c4949cfd6cdc0abbaee10238d57b5dff3b38d3607e8780d7bed5f52f524ea06a94ba7e2ed980aa132fce04004670d520215f715e2ffcae2ce336af653a754e53de4ac26feb591e923a6a5cb9aa97e71f52d0f4698f02eeafa894faf56121d380e24d2d82dbd5687e162ac7e93c6d97029660485d5db8c886480c6339df8d7724201a80dc54cb9637767522e50e5ce696ae29a04fb5b4b6740bfda56a9b80b507bada2aca4264f0de6493e6a7f631394838aeea1eddcc9142fe31558b4756f4f2745f31b58c2c1dc1b2550cb5bdea478872ab91393048a908673106690c8afad8096bd928e32c965bdcc3a7cddc9411cc36faff3d9d4e7a5afad0d0c5d3de867b990490edd8497f3a03ecd131e7424d5b0d29543b3cc7ddb6a1522372b11de1649046ce787f6fc8219b0a3bb508f1d6ec2981066dae16fd127df52cb9055a139d7a68f0f4bbca77e7ca8ff6902a4d87a59671da1b867840fa0e07d8e3667253a41525ed18c679c74cc2fb1b7b00ea98090eb6f2a24da3885efcf6fa31c66732614083d114e7a2b0478184bd801fb36e79f670eaffedb9a3b56d7648009c6e4c33da1f9888b54ec108d21c68fdea0bc60af17b6958479f91ca9685d9704553d2126c3cd240deaf5a0aa8bfca0e37899af660fa9fb5aba33ed1a5ea5e388015b6cfcaae014e933969623a66060f5d396d3bd0793ea79bf9189ba24a36c1b79dff7bef60f921f27d2a46874b282d5ab9839722b495fd6b0ff494f3410e0988006f8b4bced46f7d0f41678097c4f8d5b690055d47c37a887e0fdb1ef45d90be23f59d637f27bc13f25750b83c005e68ce669fe15e47f33b4bb989f043fdadaf7c11dd0e652542d5103ae73d41ef574dd82f0a1144508076276023c91adde4b126772ef620b6450bf5b25fd29dbe3a529014b47243328e309ff4245a8aa667408ba5b4255879ba6bfd4f57cfed9219f88c7656838afeb58aba3d86157a4d1385e7a29d4db695702566f424f3b84f9464a1de1e5ead4683b38f672cbcab96b2c23e796107ff5bae2f63418fd3ab622868312cb1aa45911ebe5ad6ceec0d9138f1e10410758f024f1b641dc099e5bcc83fad7d21d503af50f7ee12da5ed1883689d8dd0edebf6085d90380f5b55af179ddab5df7673c24a253bc3d199d41a0e860477eb1055ab7883528c9602ac748dc1de5cb18d191db75f81eea0db9949ac34cc284643b2f84b5b3cb13369a5ae40a4b59a4462783c66df5c84d123fb6e171ec2f7801622b5efd6dddf28dce5ae844db98e07a24295ec20159448e2fcbafac66c004f6f9a1c29ddef7d500d83e783443f192c79205efebf0c104f56c59c59ce7e1906c6c35b78417f1d9faf94aea8e9c77d84f1e021b40423688dad22c209c9615f0f09557ccced493c06f4b1a4bb841adcb50070eee4d40ce61eaadab7294051682318d6fccfde090f447303426949dc93f2aa1b78c70e68e7409969e74aac563748827a232cb8c277a3a71d53d8ad9044e78ee4dacdfd8f31d9def44a9cf36f48f019f7013a2c622d19505236d18b3ac6ec5eec629b801783979f9bad8ee2c363268689c037194bd8cdc3b4db694e443328ea40122235f7809d403910667d99324899ee1b5f8890d65ae93d5a899fa9d5ddf6324a99bcbfc3f1688ae4000000000000000000000000000000000000000000000000000004090b131a1d +flags = ValidSignature + +# tcId = 5 +# context too long +ctx = 41414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141 +msg = 48656c6c6f20776f726c64 +result = invalid +sig = d75d495e0aff760275e801ab0c6ed1ac7f180c51b112122fc0fcf303a999261efd3473bb1e46c7298a2d49b2b11934301145799e58cd91cb24f052e90b7bdc1cf590b6736abe772f211d8deef50fafab63033bd04411534c233de584ea1bb0a73d6cda890c1f0206891d55e9b1aa3352c0365dc56449356732e74b599ce33724ffef2a97897ada2a37cfe178a3ee47f8002fd2e02873afd935890f1e31043a7d17aea570285b94024c7fd8ab135e515799e1b2816d4131e3c5a5e1199eeee82f292cdf3a1c290838db1c46baaa2dc75c379342016b06ef1768cd30989bf5297ebd57adb6d6e0b4edbc685a2258ad3393c555bedf933c566f0f848960ab6c2036b7a1eb971a4519898e2b25d8a9fe0aaba7620e580d1c1a6cd6826b70c155b4135831986126613c2a78cc4ca93d900b56f77db9c7214d46420ebe9be0995f9615a73f74b66a4ad1d5570e07f2f9a690750852426f1ed0e61c3c7467ef8af0301b4e4caf01b7eb96f8ffdae739cae1ccbb39631520709e70494c36f9e15610eee5b479eaca35028c1f7ae1da78e4e9bb03dc8f228687f414c4d3ef427fc25ce44c1a06a8437e12974478d84bc566f752a0ea08101ae60c49facda27481d52038fefe5eba5db3dab643bcd7b00b8f9237937bba76df5adb3139a605bf52ef93c2e9a56631b0f86e7be961e0b1e42e8ea4401be99af9b45b01104f5b879b81ce07ac4732eb5c937e7a017c430eefd4cc8baeaf57eab48042f3fbb2a290628873702a9196cc8fa793466e8d381f28f5c050deaeaced44889520af258b897e5427c3deb74760e9557fbaaa80d721f21792a5e8c97e536ad3319f58d2f1089a82e35aa77101aa8e8e8b249a608cffb921987e16dfb2a34ba8590f0c9c2a6c879c59fce2ddf8b2d9747136a81749698b7ba4f5d56f12718dd7c9e296fd2fc52a0a33c9bc7fa5632cbb8c73bf0f4ef427c28aa7e57ad5c069d4b68095c539b1f16623aedaa1f30d43897380cbd1d8b9f6699a38c7dbea893457937aca16aacab67db5bb60195dfa1c0cf02e3d368854ce2191b59b05c6005a1fa09b275966035ff68e91f3c820d8f3473748557904206ab6af36a343ef93e3e121f9490e8770f0b2a703b932b16d4ea19629b7c2b26bf2ca7a07ec6fea8cfd4db85d185d39731b0f3df6cb07d152cd960640facf1c3856cf5b47937644ff9ae17f2037bc7b2a31619273d012afa35b331f78cfb50d23efeab8525be11e313cfd9ce731696a558cce05a68fff8c55bd103af1b6b1b13c8bfe9bfb9d0e86da12b5d9d5385829490a89bdf4e4cbae80be22ffb624ef729917d849c572c44e35ec5cd8354d770bffa5b031ee1f2a76b077b241767f384092a21b016b5687752f23199f0a09e5fd701090fa9c289ea50d26bd3a8676f49b29ba54785b3d20431cfeb519ccbbc0141266a77e7d5bf4bf3299497c8b1d1b40c2f00cfcb29c3a99876a43076a89a13cc58b5af1d72f87e1171d2b6ec9fe4fd318e95590cee63f1a2a6a2090ba3eea95061222db4c8b7cbffc10b450bdae10c0f82fc6861cbd24b9e4d18e4a477f7491586ae23f7ff10e1963a874e0ec97779cb33b4d3262c504cc59bf2c518b7a6de0744297fdbafd8be05bcda2b2e8fc98808594e2a204bb72aa9a425c493ec3433ef5af84208c7c47105a7ba7b936f189a64002a0bf07aaa16b449f79b32e7bf238fe72ab2bdb3e3b2a64c6f325e8486318c50bd905d23afd2988cc92ec26078b2fe9e6fdc5e27fca279c5ad535a70e66b5a55efffa1583b8011b084bbb9b028d2154f2aeac02ca66ec8fba4cec93feea0291e0017c8ec14e49c0cc2e5eac9276f64ffff107dfdda08baa8aa43df97c6adb792e7b781d2edf79763b9656794f0910fc0c17c45cad7f7173401da1f7fb9697b571fa6bb23fb687b71dffd21092e78966ff61fd385f0a236c93aa2d550305e183eca91d284f161d5d2a18824e7148c2c615e939fc4299e84b686e3577f16e8489ec0cd1ed80e8edceef398d007957b571d6e1680e641fa1cda305f993b92ee77f5dfa2e2b4bacecebaee0085c1c87762554c76c5db6d9515647ed615b42366c05d77bd0c7cc37da56a52374f1c4a01ffdbb50a05956f5a5c9082b1de4bf9e7abc3bf8f6bbf983a49108ece5f68ad07b3f309757e26e9bee76ea44223210422ad192f1d1102cbdd0047f07146be860860c28fbf5aa9b401b96cedb9097d9c95fa71524a5827fd562d600655e7ad3e4c592c67faf8a71dae5094e4beb188197ea635cb8d9b25f91f5df2e192b55d991dfcb7d696129e956e13e5518cb7f126b5d0cc9e87c5ed00c2a15eb0d343f283f658001f1addef1043ec46885099278477de6d329506659fe29f7d192feb93a39d3dc8d06913d4b7b621c300d8c01efbc37740d15d6c8f2087c2db3a2f6dff819e8b2af5f5ec52718c970df9e5694e7390cbf7999d5c739845f2ca98d5a4789887f0a6648134c518172ff62b6e85852dedf351d3c5a2727c7e0a9460d595df70961730ebd283519668cedd430621b9af7e04a54058dd6c04770262a75455f7c5f477a4f339ab6d4293a02eee565e3c7ac464db588a64d0bfe1e1b9f3f1977ddeb57e20449153da8881db0565a37be1506f551b8d0490353b799dcdf3003c4ee378dc16d76592310135c3879c2d05e69ba1f9aeb58c6187945617691e5872a0f322506408d5434818cde200e60fb6f40aaea77b94e4c30ee295e8e49b26ddc69c54b5f12bae4186b2e7e886585f0cd14b6475fb37a217ae79f87ae3303d67968f3ce82a40c6590b6cb7a6f764c1f6f69642f67459fa1f53f04eb73142351f0249f4970d3828ed7cc6f7cbd74fdcff388b98ca3a9747d1b70de11694a5e8fe1bb81f37445c6b53933b47a1102818ce623f914be67f51da77f8d666d6d77162aa323c5673749bbb01555d3d204de2c4053989348fd2cf61e185ec8a453d91b09d08a10ef3762a630c53adec121af51958cedba5f82b8b0ea755e74197a61a09c7350547767c2ece07dca5737a97b885bb1dfcc9030838acb4c356224af7672ef9cc0435b404be37f74ed3f042d00f05be35781e977abbbd46e594831c07b3ee45c0e170f2040e543743503262a59c9880c1603c79f316587cde475d6236279a194986db710216f1169a6c7b42e987a9ed7b4fb4212b8bb25bee469ec96d0af41a2e794ab54ba72326069cacf2f5e49b2eeba2ed0177c2ac71816d9f6e2c893fb54369d901e6716d2d04fea85c809cdd9d2fc4cdca6ebcb10d810f764f1792f4a557652da371a3ad6f039d14bd9f5235c8b9c5b5a48333c798ec000fe44ad6c9e7c9e5f57d406e5e8ee8154574b7c76a2f7521947c54a67ec44807622aad566df4d463b3bc0ddafd0fc017f1392cdcfee32e96ea8cdc42cb6e4587cc72d03ac789070c210a1278abcf286e23225ebbdb5bdf917938047e9ec980434ea6566d3aea655ca8a1ea9651d2f0c30169c29cb73a975bf69510e1b6ef8db72e3bb7892e2991488627f716fb7b5ff194757de8a2479a4497f6da76a421b988534b78f8571b4d7c3a2493c2b7b8b02a07eb43fb2fb1d203b02bab2125e7ce41db5b1ce0bc2c7f0706837715223ddb0dd2ba58a98db96e79fa28b1ca14be60058b2ff7b15ae2cdfd38f1d63b77ecd0de4c6e0342b6535724231e797bb717111dc0f0714c40e786a55a2dadaf853bc3cfa324063147802dc2a3bd6a881d3072fb8addf1f8607a7b4d4dc8386c40593ee6e5651c90786077128c9f6ea10aff3fff1e524b3ac1ae1cfb2cc6f659f70c718a821b25e31d7393eb5f5b95c06f0958770cd1b3ca5a6b882aa5c3bc0e300560426c4194b00e4dff3d300c8a47f6c5139bade447b1357eee0164414d75379ea6f696bf15e7a47c31cb47fa4b5608eb0593ce58b61199955e243a8b12cf26e21e05390c2a61b562de5d70f0113f1adc3f3a4d2de7fd5994f6360a3566128104a886e27b349671087c348a101e6f6ed673699962c96f699fbd3aa37a95517a6c99d83c69c16aab974d144b3dae33c9fb850b20ed6153a212ab940d63fb546154a0a377ac16eaa58e97e1a1a5bb4c9e845ed098755bed89abe251e8898f3aa9fe22ecf8b780f32e741b59e4c56a6db067aae97db9cedefb39fe580af8f218bb13bebd51ccdff133fda9d696bffef58f0a46013a31ec1a75918ab5d8e9cbd6a79421ebaea74007240a6ee379f1fedd904e8af829a2dc92ced035f60e8831c73bd1070ad4d5068ec3b2d58069adc6166231ccde5a49a779340c52032cc9434fa479270216037807f37ad0875bcc509ff183c9c518ac22ab527e01eb5dfeeca74c78a400d1ebd2e0fdc1ec19acce8e53352b8ce154e2f671e930cffa1a3a388739f73824eb085ad54aac583dc0d2624e07da1e0c32f61dcb83e632d260fe9c453cb957ee54d1437b1c1c1c6f919916146fd4c91d7ce0e25ee7209fce21c7a6f77abb91dbe9c6d9e3993897965f1cc2fac0e4acb768eaafdaec0c1b1f6e16517be4a7b946f422e61896eb4a368297dd222b8a2f0ef0f80a9cdf168e5e13ef7eb974bc73768655352271e4c38eca8ac5210a4724e5ea0c0e18aa2cd101f216872cadefb05133062c9ee39567a868dacb2c1c43e4e5d6aadf4000000000000000000000000000000000000050810161f25 +flags = InvalidContext + +# tcId = 6 +# short signature +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f930000000000000000000000000510131821 +flags = IncorrectSignatureLength + +# tcId = 7 +# long signature +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b00 +flags = IncorrectSignatureLength + +# tcId = 8 +# signature with a bit flip in c_tilde +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 68da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 9 +# signature with a bit flip in z[0] +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b279c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 10 +# signature with a bit flip in z[1] +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5794e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 11 +# signature with a bit flip in z[2] +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55013efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 12 +# signature with a bit flip in z[3] +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c076547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 13 +# signature with a bit flip in z[4] +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d602331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 14 +# signature with a bit flip in hints +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3d3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = ModifiedSignature + +# tcId = 15 +# signature with a bit flip in the last byte +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212a +flags = ModifiedSignature + +# tcId = 16 +# signature with hints in reverse order +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = invalid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0abd6d4acfc7967937e7e080f8f3935d47342219fbd3a27e1913f2eecc972e2c11000000000000000000000000000000000000000000000003080b131920 +flags = InvalidHintsEncoding + +# tcId = 17 +# signature with too many hints (causing a buffer overflow) +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = invalid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b1319ff +flags = InvalidHintsEncoding + +# tcId = 18 +# signature with non-zero padding in hints +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = invalid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef22a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03080b131920 +flags = InvalidHintsEncoding + +# tcId = 19 +# signature with a repeated hint +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = invalid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef20000000000000000000000000000000000000000000004090c141a21 +flags = InvalidHintsEncoding + +# tcId = 20 +# signature with omega+1 hints (causing a buffer overflow) +msg = c806000000000000000000000000000000000000000000000000000000000000 +result = invalid +sig = cbb10acfc660a8f47b48c09a8ad95ebdf7d5699a417096887ddd70508e82d3a49a69ee8c0a2aaa6d89ac126675f6c955ba4b8f234ffbd6fc0bdfa6bb95cafceb72c1b047fbedbbb192a571cac9398e9c19909852709697bc3def2d3583aa7874d032d6b1d36d681535833ce378a7be08b43998c887cbde0b6a8ab0948a5506d59f604ec85ae84bf72eb1d36769c5f2eca3b38ea6917edd02d28840f0cab3f110b027cd877f92e59b0328163587e4606707b39f16e5140a7156193ead8076d084aeec93268cef5b9ee0756e0069d0e9fadad1b1ef71bb49ecd95da70d3411ab40931c0c30a2c4a3a8d87de2040ac64df2202b2533c4be396f9e0e9d383f3573982cf7e05b67cf6f53d15454f48aa1825b22ad9dc9ef1ce6db827bd0059295c2409d1e5b75fe6387c795bfe22f6528825570dfd8d58fdd90e609e59de312e7ad90e1dfb1b302c90d1c71c4a5b5c0034a0c8b8a18de6fee029ccba1bffbebdf3ff82d99ccc329982a8f04f0cf7857c0826a6c7a9505da3c705f7c8913ffb099269d8e3eb679685f22450fcc969de7e743af0280d40c2861743d56bb92c992b566df7a29c375d836b38a8a6e3f89102735e51f4c65861bde29b6d692375e9e5344ec26d32ab5d1247225e7ffefc6226093289d0c6a8655d9ed7eb5a845bc6b4782d4cec07961ced24be1b829f57a05eb93b18adb5a18aa5d72cecd2c6592614868a845b6cbff9b876e544c5208b3097efadd383ce2ad971c252d67c6a9f2ed3faffbf845164de52bd195c2b2d3df673cf6d9b2690aa7e4050cfe404da6faec1fafaeb4b9064169af0d46bb30b55c80b655f0d6472ded24c802af74d014a14dad2fd88941747ee0097de87d85191584d8c4b051aec8653373ae2a1c2cc16c354a709118633f1367838e491b11213531bb0c3bf6170825cdd94d44ef09de2bfba62c7373b479d64bb45141e130c9de3b0f794b40bdf3bdc0f6fbfa17cecf021586a914422e83f06debd5d02ad2bd64263abe226d43c247f42f36d2d47ed550dca03ab844048a0c96e725c249527c60b866063b9b6b4a1a51f7ced09ca394dd01b784a30ec3477bdadfea46f34d376603c4da1f07a80bac5ae436baab3592ea9f9f3b6bcefa27dab57584505dc661c24a89612d29012d3dc9432191eabe5a30ebfab94ed93fef419759ef42462edd662d3c8137d13c530b489340892a4cec72783f0c7c788a24d43c331b3a63d75951e4fd84ac251df2dd183569fc031498c0ee826debbec605ec230fc1e49eab7ebeea6767181cc3b47f1dc7dddd058c51ffe0f87e6648a5bdbca0c0686daf6bafe5d158eb7de470adf4228c24ea70d8946573117bc19c8f25f851edbdf4fb1d69500501f9ec5f1c488c781ca8041a8767dfd9275b8dda148c468104b8ac60fffae510b4b0d31c9699d8d58eb441b3d6702d153b0702d81b41cdcc1e8943d0d5147c737e85af4f014bfb2908488372ba716129d63aa66ac8c02f91d48603763fb05053abb58e299d1cc9f01bfa7222c4bb37f6c69ac41743763a0b1b416227dad58f6f292ad13b7b42987f1d95921f997bd3aabc6158fecffdb3ec953b77f37effbc754cd16c22915dea3b800692e7975d4fcfec46c4e213e53128876495bdd1e5fa1a55e21a31d9704c9b08a43fec1193bc8ad23d3047060eacb17ea591a49aba6535c1caac0bb98d73ac36d19d84e6e42a8e85601f6376d1c7e65eb0505d7948b439fe34f4abb99c4e759427bcd100521263c181297c131f22d948555ebb2b229c81e7a00bcdc3633fb9d4e7b478f92f369e3a3a9db10cbc76be2e7a2932aa610002f128145ccb01716f1aaf5bf0959c4dab108353185dfc4e77d4aaf3f4e0c69caa0a1de7a2ca9edcbaf390861c486992c3bb02aa1c9b5c6a6a22c4e49f50d5e771adab52d693e8c2bf9af298ebf64400ab408c365f1a5beda25f8e1d2d6b708c63f5f1f667061ffb735960016dc393dbe7fec2a7b46dc4911bd46b06e222f530bf997b1e31db8aacd7f80a267549c6ae8b600eee5fbbe2c764634dba1d473ce148af811a7ef2b2a42b975ff5de88819230a59b5d903296597cea937affbf552b80f845c2a388a08bd4a4002efbf48ff70dca76c101d0b74b95b758b9521d98b8974f889eec2c3d79d9ccf6ca262f736de6e3ca93a551b8d2c5fb8b73e944bd05e62503cbe7cda823547d7446a8a4616becefbc8e558a4de3d62ba91486bf4033d4491642790be60ddca75eb5a68fb36b0c6ad4e70364b077ab8fe7b305caf7c70061aa8b466020845363257badc2da8861cccc504aa0bee7c48f9ba403350d4d46529b08e41d30af6f69b7fdb6fbec8ab6ea3e4eb0dd8c7e3a77de8ab47610e7ebebd9f5015bc7b7876c5fa0b891a0fe4015827012f10260943c08f389aa67891f0af67d5e71742bd852dd1160a9df66da04827cbdf3de6a1eb8e4e24bd2b1dc680a1073807795a2e9ebea30cee0bf6479494b7f5211e233f2844a663a00155ed9482943132d9fa0c966cda5f1f64eb96e456053342027d14eb3c70062c0db2094d693fec31d06241d886b9dd9ff13584a47a7b843757a75a6e28aab82caeb3ef256c70a17a6180dd890a8e6f4c6b96711daf9f799b113d87f6bcbd56baee9dda09f6f67fc1b1e1e64fcba8497b20339540cbf7ced0e21a554c35e257ab64cf4761d12dfb457dd9bf2f5ae9701d87c8d5c367b047f378556708645684ef9e58eadb8ee3e4b97a86292bd9ad8acef3a3a9aaf0f2039be4640a953b2cd8b19fd5d469cc1328443c4c0ac481f98997f359fd561e11ed2f03f123302c8ef74c60839025e11997f82988dc3448ece0640473a1738551a4f7e68afc84c45cd92583950da4a8b5a043fac1dfb1343b0a1f706a1e5e8492467bbd1924fc3d430978bea871ef59062cd29e2ad44becc9caad78b5dc3c49e38b8b26de0d957e8e73699e5d2f5281108aa37f03b12d5bd50d904f0caf4f4dcc74adcac837ee04dd21f199fc42ab39fe6229002ac48dc4a60fc35eaa653c30bd275b4ab7d32a5e4d09533e7a3dc0e826d8c812ebadde3ec7eb3987c17ef2fb00fc1b6ac82d650f56646e9a11ab2e097e0697954f252a7a9a390559b79ec5d38da9e5b0b6f027c158643837a1d4ec93b50ba3de8296e022463c6424ab47561950e8122637dc682ddabc523780323049b1ff5949394844856b95e06307ef3362b8481ac2ede882a2e91299433d18513038cf205ffe1687e8fb011dd40864b602602fcb8391d81e05f6bfe5f09bc5055b2696f32a771321b30cb79fd0b66a2cb0a5208c4797eefbd81e27a67a6a0bb39c309a71557c78441d76b3fe7ac00956c184e9646984ffb2751f61f72382842ad62a032b8de6e2317cc2f2d193ef498a133badef5b1869d85edd1f94a4f458cf21f0b80c3f2ecde7ca19a0fc7c7f7a8986bd023a02a61ec667c0c709b1f89ea5ec07785d72a1f2169a1b5b1522d8292ef30a677662080c91fa774f28ee40aaee0f8afea96bc7d858eef054b93f3deb604c5f9929b1a5092f68a67462ae7fc60c11cf29ca950df68d4060edae6fe254160525fe2466a9b97144e8401b230560ff5b3ae53322905c8d7794d2d4d63ce55eca3c1ca0dc97df11fff1adae8d065e3943bc8b1a20ed1493569c8f730b1adf11001a3cc9cf23d5919a4725069fc58eb1f46415a57f668a2d5a584ee41dcf1423869922f78e7292a846c3bc2fb81ce36da0526967590aa548a5a291f5eb69e67391b0e257bed22095999a70b2d8c6d39f23551bb25c94584da70150dd01e1d3d5bf26809059d713368f7ff0fc3c8657c3c98871b27ef04a958e8d8ce255d831c28e8d7a72b74adb806df346cd6342ac6b4de114c08acf7b9167505aab8d6b5742c0539252ffc531046998990c727f9d914f9426bb024af1e32bac4ba5d1072e50adfdb49feaf9472f82f74459a660963e857ca46db64d945d19d6a3f667dbcb253c28ff5e79ad9ac6c9e11012db47663bf69e1be7e1f829920144d0e8bebf9557333bf94d8707b98165a2fcc7dce2460c5bb5966d57e535b234536c430b540c32bc6473f7b5994d4cc40633fe5f3ca0e6ac7d1e65c55bc15bbf643a97a346e6abb500e439a014af2592298572cd408c14050656933d4b9c74d45864ad3d48bfd0c7be151c82dd7543690e09a4c450059d703461192ee3e9823dfc6a047493302256df5e5f59b820614547ea328e78250730ea608191685ae747d323a9c60b2c470a724d1fea2f789263a8683873bb81ee692fd1c26110118bcb69cb7880437f251fa8338e4378e34434edce0defb0f0049b44572402e71dad5f56b63f774aa435ef79883339fbcdf52bb6a9463f4fefdb94d3e151552792403f6997c160727023a9ded4bb38dd34b4a54a373ca403720be4703d9fc3d1fb1b7883f58cf0d875871e6be474631ccf3e209d3d4beb5a6ae2815559b706bf583fec48ee1c0e95e66054bd7ac2479d1d773dc4e36e526ed70ebb02e74d1726fc9b5167c4496eddb822edef41994e84ae1172c1abe3b31c800c1baa04c71b4074634be600166026e1bedb081d3a632641a9e77766e579c3236741b3d4448576498c6c8f20439657eed16767a8b8d929ba3abb9c3d0181e2e3d4e606a7ba0050d1f262e67a7d0e4181f85a0b5b7bfc3c7e4fcfd080d19222b37 +flags = InvalidHintsEncoding + +# tcId = 21 +# signature that takes 1 iteration(s) +msg = 0700000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 424ac14fd2cf3f7eb28b104a7418909e84eff42d2f6e7c4ed3874838f8580d918a5d229f8ad72a0e093959da15f05e9942fad12ac1fe73c9de377b85a0f9d7203e6f8d3d4e83e5ac52a82b7a77c0096d92d40f2c1b7e194673faeaf16d7bf11342956d14d7bcd45f98ac9003ec86da5a1b2775d0723ba7350b81ecabc464be480d834b3965fd6554d340b9a11add210c6228f29a8932b8b6a00263777039533e1580faca62a7885372fe15b4e441a7595a13966fc05a95926fec9eed7563b1347d2b8d55e15212148e9f7e6e6b3e8dc30c6a1d213f66f574588ddf5d559438b1bfe01e851b15108baa97b64273d2e850b8ad504d2defb158e1ef3d4af5e1cbebfdf8a0e8037ba4def90bfdde7f2eadb3da96becd9e6a95e286e120871217aca6a8756f3ed7a11c2f75e1a82f9ab0234b1cc2c8178ad690e8c2798f1eb8b83178f39d7fdd09f44d7df268e7e062566a4516b1a1ceb97049df4646e8156e678c5f1fe2705b0c261db71a9932b8f41950e326a2200908c4c0bf3681384ae1501f5ddef8ab98133519452c725eb84f36814577108508809015af4d8758c23afea3815a09537477e8f6c7694a81c1d08c822843b9e67d95592eff819f6c2927e403f9962f36364ec2dbfe494049884d61695331e32abe6272d5a44961b8679879a67b142aa40729630d8d24bc69caf17774c6e2b3021b9181a8a498586a0f7d4109c5c82841454785873670dd2f60a4c278a373986333120c1b17b4297620bf72c7fc126205c1b240c6d60399b715579adfd96492e350a4145ede8d075ae544d051f58bb9991575a6ddab224c9c83a39b6fa9b49444fb0d2b8e32464c216e42d02091ff25122f85f9454f6d818034a30e6252cb0d25b572de3ab1c669709e04fbdaeffa26d0fc67d250da0864c71d74f8c08b5ad15cb95a33ca5b03d9573e83b35cc173afd97e88b9ea859861384cf8ee6338bbe5768cdf9c84cabdb8b332aaa7574ba200d496aa1d6be562f59be022d7d9cc63fe6a35100b664694b5bd1f5a610cc3d7a670f45b47befb8cf705339a8a5adec9fbb9f1fc4196fd3ad2a5ec9f3c9bd48e96bd6ac7276bb00705aee192106388f2fef2cd3c7cf00a159459314260dc49d9630d9bdfd0245db95fff41703f3236ed1bce77582dd6de015ed6d8dec0f2f2952fafc0e11479487a21c1cd61f1a9410dc730dfdf01527c6ae4072eb1591fb5f9b6117dabd9458331d9fdf582acde4b9001c6b6c6e048120cf15534db40e7b8f77fdff60b08a0ed6a802095fb76c71062dc34a612fe34f6598529c2028487457530c154d18709381cdb36b4ec697a2b921ec9056c86c5e73dd74b63f1844b1240c703c6f6373018c2daebb7beb55ec0365c76725063a3fd212ba80bc951baee1b58ceab532e58754ea44b0cf815a0624e2a0cf5dea9bfcae56b7ac74e4627a05bd8a2539ea4d25a3aceb003c8e7b750f0e8485eebc84b130a54ce8926b54cbb54b94db057f993ab426fe1a3be7a997782fab08cd704b1628b9d40af916730014d71d71d82bc09a7a17855c314b9febd079e371598103a4fc6923fa47a1979fea54c0bf7542a6e54d5cb92814c824d94753095d2fab232153f204d16aaa6acba4c72ae358eab79a8b51ef06db93cd5acb606ddf4dfbbc031f697486c284ef2627e3e65a5998f746d6ed934cedc1204c72694f6738ef0de7cf25bd147c938f3e7efd6def80c01b690ed200c21f56df02f7f31e90c0f05e61c60e2279b307664f491fac8f3315e48040ed63f6b68cd7821bd9447a8cd9d95aca3b16d721ef8e90d668636ebb4974553f41e7e9b075eee4e83e118fa74f2d7197fa135dc53146e7c194645e4f07412693320117cc3cdb1bca814e0e30fcf5590ce237e0479bf088cb0f68c2dc0b53203c7c007a4bc6361a32e3e153cbef1163eba0a3d7e5e133fb30c6f37b3f92e94abe270e7c3e8c97056bd12a1d588f919d65db51accf624e0a356d6e6e0da3c67dc298746a39b6313bb658e3451a2b1abf7efb6c1e63b83cfaeea9a17ac8f22587254227f5adb2f41f367bb9e4530c7fb93b78cbf60b7619a25f2f7a00aff9d935c294e82102eb0e96da7c3d4c87ccb896a5e5ee3ee13da3d94655a66c0c3d781a67c23bbd53cd7eea563a8d63100144ede22e3af96b69ca18d5d5be5849d27c1db28298d485e2fba3c7f68297c7f883049d73ffbb3a300c5aacc1d8a805205602e410e76fc48adb109cd47624c2822e6dcc0db0a28be5401a79659d19b8bbdf131ce04fd6278130aa2f203b9e0f52134a3dec5a97c4753da3127288ea0969fcee232837ea067e8a34b6dd4e1ecd7f37b8e956d137be78be955854a75d84a339f3e80bebe8d295ec1149bbaf115bfc84e8cce1cf994fe067dbcca2ce1c378180bbceda95444ae535a9ffe1819caac5cf95b86219e95c62581d1110daefeb4830043a7a9552de5a55f250e7f1aa5993f87647c92c27256753d6daf32da18c1cef9bd5ff5a7a8e182d071f1e75d10be89f02c861a0d05257c08c9e12f877a22c8382ec883c592a34722f1138a1e8b5ded41e970b97ba2a69c386f94b508b38a59b464dee983741e61d0096f499f3c552f43ca317ddf073e0450e800585053830681d4a8a8ecd5b86c901285c84278c06b86375a04fa7002b259cd61d5ecca426aa334659284945ea6c5adedb7d40835c6134271d641bdb19cc3617bfdd53618252b4a684a259b82982b0a13cc90ca931c4e90915d2d7a0abdee3f78764b41e3236e2ac21e138c0cbce20740cd17f34eea236720acff25161ecd4c903e33395f51d2c51583407b35a044d54caee2b66dcaba84359218c6803040b19a39c0e4ef570fad7330041e024cd194326891547985b10e505c6e6b1abdaf3fcd63c3f2f08b2d93aad41e83167d969e54b12745b328b5cfb93266afa793bf00c86270ab98e2ab44b2be16b5e522ca280cfb0a9a4f744900f0f44f6126b787274b2a36232c84b563dc3a5879c83c34cc6d644fedc3912b10e9806f944440b00883bb76d51782f928139117c7358cd38a460ff73af4d417278b7bd463da86ba11bc88cff14340a24f675905c7edacb121fd625187b90a3152115b3ce1f49432409fa629384509cf51426948c71e76da8efbde2eeb7d3f3e576f18d4fb61f90d99de2bfea2cec28468368610670890ef26e05bb108dde48095251574c20611ce68890144750c62a9792815a89ffc50ff0d76fa0f708d917f3bd9f840b11085445784d2017e54266c69f3fbef4c8fa82c0723ba58736aa8466a81b00d563dfa074a9a06016ffb04f029bc12c53585183f237d84c343a13b08b484e1625be1b0c661f697ad5097040fed2d3d46c6b1229157729b306694bcdfeb4eece5b5dfa8043a6fcd607e2f82aeda46e88f8d59f2032fa439365bfda8ac7b9e09ed8020c045757d510d5de5dd0b2520b0f74a99d8fe7b1915d82491a270d1a1c554d0c05d14a1419e71dbbe5df225fea5c49b73b84fbf079dbef25ae8861e58ab8bab6ec4ad07dc10072c5627029d4a74700193d12f439a5bdc41a284b92499b3ab0f3973529ea148053da54125c2969603fa55d3dc30170568ac9642aedcdc817b0f4b8d5d31925428afbedd21fc7f1132fc7e85284723b4f26ba1b50bd5fea2d81b12f4451f97331c6af0c82aa9d962ce034df061c32a1113990a9f320291993c9d614c42e2aadb5dc52c58daf8d22bb302e1e64b32e16394cc0c44cf93bcf811e7ad772754b6e9c2dda630449e005a0303996a69f5ad647f98908af4f857af804294d416db784c34d2d5aad7d840e135ecf6b636dd33f4ba29d0f12fe3967260013662d8bc23a34a0f8a5df93e111e8792140487eb04854bfd9bf679e1b38de028ea5fc457cbc8e2706fced55f5363425b0c2c13cbad1ef96d18f11b0fb3749a561504b8fee8cfb4ef9c948e3efaa2de6ca38fb445382af66855f3c0603ab175aca17e1b005deec73b03eb952cefcb3cd5860c40578e8a366da62a431916ee212d9e5740fbfc42f6d0e0951fd2f213a8f6f21984e01832c0dadf56b3de4833b849b7d0c9125d7b9ae5c6f245703d77c0298c9b6abd563529b3f2986ce54462f050d18dfc85a840b1633b2b0373e585f77c106d70ff711d03362af483f7812965405e586d6988318effc81e9fa918ab278e97e0d6d3932e24ac17ba537f568f8b16bdf3d45488cb34f696295f7321b63a76101ec283f0427a533544f752cc9d3c277c59997e01604192746353421884142fa23dcccb3acdac509a5688089ee919230a9e0ec2804254a153f544977a634bb13880f3241daab08d1b73bdd8fe4a187e9b4c3758eba88cdcd9fc104360b2512788f4d31a23c80b78c150af10e1a41dd279e895ae9e66ecaf2bf32786c11573a74cbbb93b82255f9ed190dafce6803f07271889828696f5f8173772a7142ab46899c609136713cf7a3f4c5e9718c84ee8bce8b4b5ba83a09e421c830eafda214c0e0b3dc28d0f1adde9b5fd9fee6a07a328807d0e983cef6383ab94c415dd1e649d9804f571581ae0c7ab2896e86a470a9eab94f2fe9e138e91ac103cd770d27af9648ef83b5254696d72d7174188bafb05114a788d9726c9d7eafb182348618cacbec6224186909c00000000000000000000000000000000000000070c12171f24 +flags = ValidSignature,ManySteps + +# tcId = 22 +# signature that takes 2 iteration(s) +msg = 0f00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 46b40670bb3da2c35f9649c9cd3fe613e63335a645b948018b3cffc864412f8868192a9d81da08d1e768d0d33d4f7a609dae1e72d4408fe5f5660f7714d7d3725deabd87d32d66d041124a0921a71ea30d8758427cd8978c2014d83746c7c29ca7781125afa4ebe984a11da34692342493df2c8fbcb50c83e56c9afc3df2a5d317add757dfb4439841a8d91d596eefa656f1953e7fdfb63e29a23ca3825a1c04e09f766ca10aa6bd05b9dfd7910db1956f99326766839c4dc0f653f2dd5e3a508fe13c2f0624d3dd0c0f764c164d231cd1f73646e542d7bec86e7ea0336583e86c2811db5e28e18f34122e86a37e1de65f5d7836c35db6079bcddab304ab6cf752dac710004fc24729d760d3d9380270c5d1d777b67ac830dd52c3548bda02f0f7d0331aa6c8414fa7307237456105c3c5f8463aecbfbf4d8c7f7c3b06f940592f12928a7a018595c1972705f8798fc75e2833e95a163ad24f367cfe85545fd0e0992775be5c074ed111cbf001bd536d1ce4a0430d963728a2e25d71c3efe9c385a6841d7f4c6d293a64f83429f064f3584ae0983dfa4f90820dd229f900e41447c07db5dd2a61868438b8f4eabd475da53e8f1c7d1120e366d774bb95839f6b3ada1f704198e06b13760447768753fb449c0d53acc22845a0a4e5b047d008e08e2f65c577026863ed25e1dd7d39cd4f0a7d823f4250474866b80ae3a2d19838cf24a265bee177d20b9fe59f2015092b3362a415f05e91bdf13ccd1bf3fc901a63ef23ef74b41cd74606c687ed6fecc665ee4fdae3a305392f59f9ba7e6c4a890c56c3115a2cc760f3166ba1c4e534a69bbf738c764cb228204799afdedd6660fd4a6b7856a84e714e58247fa068f859796cc4271ae915e62d3ca3fb43bf884fb8cfc39ea89d3042e453953849efcad7852d67471d2004b4ba8937a5c508109a19519fffa989a39a6c68f1ce9268469af6baaa7e0a93362f5b87b0ca24d5151b99bdac16885d335d6bf11c2a574a734999815843121bec25ba9775593ef19f809be5b63f5fb01b29f8f0eee9f1a69f514c0f17e90d40ae9a97f6fbaf5804bd036b6ae7cbc161865580f763d9abea93625096f3730c77cd0242f387fca2fa573f2638887417bd80968e86594e1ff547ef5ef4b9b49b0524ccfdb3701a8de2f7ab2eccce22ba93bbafafcc1359c2e3652b67250ed313d6564ba245200c0107fe749c965ecaebe28c79f24955a436c41b6ebd7f321938f4dbef88e30a34e5b2a3763381d0af8bd0176feabe3d467eb985cf4ab28e465b7896b36d2aabfbbd26931fca9b76e2eb1befe51b45d640ba468488da4093fb2ec7c77ae43c785b6588ebfbf5568c1299eebf0046e28b5f1e897516edbbbe99843e551012daa0157e03d1d41daf987b73ddb361c064917b6b8b4b23c31dbfe01e56960e63cec546e5684b057ae5f904333dc33ae1b0018875cc13f39e11b247db82e43409ecf16051be7e8525c9a90b68cf491830d2c583db07a5bd95ad69af0e4327cdccb9339d96a4aa201ebb86edfbe7176cf63a409872f73107c3f4f068df79ef817efb2f0837e665c7f2fe0a56c4e392d63a1032eaee2894f3bae6df6a70a430b22e9be6e15bef3a9af5545332ea3a62c94d5a6aaa8870c303b3460b3be88fa848fb818a3e1771c329f676941a628acd948b260541ecd1701c6cab3311ed86eaf0950675808ffdadf0b97f98e9da2193258b74d589054014dabe4c501f2e0fd81fab9cba2f9c8f70be8175da44bfcf01ec6ca5ba7f1039b29e27e5bfd67970e5e561c693a1ec2023d53cb1ed32f3614cc132701dbea3ab4d99398f23eac52b3f5c5f46a110d77f0d9c660b432bc57cca8bd38b4b5dcfc619aae56d7cd686f3fd94fe419f8fc54c9ea6611b4f512504ce87216f768abafa48f3825b2f9afca3d419151d1637bda8aff5e2f9a7921421fdac429c66c6a01832c7041f74fc81c47e4172f9d95b200b1a84af4dd9b677670bbf356d590f2fc1aa70ec53ae94331b2ac0f1a8bbc7dd600cb06c76f2f340aa2c8ae102cf9c4ba7126414da52a1d8ce3504ee282a02a9564b149c041694313ea3f11d9e697ce692441b3baa25b308f42eb7f9d03ba3b5638fb96004fd0ef2de66c6a573ce2570e19e75d5c2bea7d5c656c2ad6990cd2d8feaa9eb025d80b6483e6612888ae3a66f646a61cc08534fea6f31447af5535308e81e3dbac05b488fa9dafbfb31b7fc1773fed73556e9caa5864b4871ae4d2d472385ff62a61113ed0f7584220aac571b69373f2618887392f88e4813822009fca474af81a342e1fc7be442079fe882e8bab95b147c1a196eb079c7ef718c194e5d6a5332a63f3f15cfa08453afe796dc433399c75d8e7ea603c17bf1a133fa1407dd76489c9950e501e64d09a7ce59f886b3b80af926443bd3b04e33e97adc795fb4b775c8d6507dfb7aa254d3b994e6412838a03209ed3ae2c15cbf67cf00793c7b7bd4d1e36b56aba5212c0e8c82752da39686254e5357d2eb0ad691be3feffb1b09620c2b0b2181e510b47ec2fc0257acc3b847b90c0704eaaf48742e5a50498fceaa8945180026647a7f474cada887dd657f4003080d5081c1d37d4c2c8a1ba5e8562319d741b01bec47cff4fe1625630051b12accb6c919171073ff9cdf1d138ded6ead47440bb2f99424218156fee650daff3c777168b43548da1b946bdd16dfdd099d83a7c427f97f83bab18acb2650846d39cb41e5283564232fe21394318a2340f3ed2c6c7782d27ebaa780ea81ebbd33841f834756b74d99de6a17280088ec6bdad04144794594ccca8feee1fa09903953df806291667b686c9d5f77d89700b0a29ac9c95ef647d0b4a6ee30b99bbc9392a4769f4197f4289892f926d744d8b62e067edb5af6a6590981261b7a9c3c9f2b69833251916e00ec5710514fdb29ba3c25285001ab2652de3982f7bd960b60ac2fe285525f588167305afd30f059ab723c1105e6c657b5dece838d79d4dbb2c14cc50d123166cc4a4f01d15d7f8d4ce10acef8ab06132cebbc4426762b6616ad9c8d700dc7c53a1bed753569b28f6fb38e2334e50efb6b7de233b93ac1e0b4a71c7cfbb7002d6bd2a7f91d22cd080c182b989c2045fa5719eed2aadb2b409a73ea00ca3e9ae74e7fe61b18e25a8abed293651352d50eb2a341ae24d4549c93102b5bf8d9523da6cb97d6f0fbf4b64d7b65e0ffbbdec1ac74ab2217c464936205760f4d46139bc9066fca14b65f004b9432c723c4091ee0e81f5549200aa99445635c910303e697e0a08847645a98c12aa9eb42fe38265b09fb020ee3f6fb23f2e501c3a8ce5fde7326d2e9aa2e20aa770d810c3c11d86a6ac0296b296f2a1215fd83cb369abffb3d783b9805b0f46d853c73c887038584a30a17c8bef62ed7170841c09416924f67198bb07749cbc12412185f1d5fc4021a504f1c417ed5965a864140364904d33451937d38e14e8452f7d414949e9932e552afe0b33ba1bc63baf2190d8575e90cfeea69f5d0a3182d726cec66595065cf9dc22657cceb7cbd3afec14c84e900071d9d08849bcb1e20ec70c1dd4046f914f80a41afdb3b435b75bc125cfa2e6896b288dfe947f8c3edb82113a6eb6c35bf450191ad5abc514d9eeb6ed6fe5123f7e5caea3de2f19116c85def416ef5dfb47ee08957fbd87920e9fdd418895459b74a2fc62ef11be0943cfa22fbf14cb859de45a4b60deafb70e072889344107d0fe924fc68aa9c13429350eef78caba5352566f8d80b64d016265e264a1b5f00064de79c539b0552dfd3880dd9f77903465c777cc78fd137f199030bfb292383be3caabc1b6bcfcd0dbf4b7ded13b93f91408751808216e55a2ec4d39051cff5784b0db9e4d3c38fb5093bd23b29d82cce55e77710bedea7d9f0ad6a47929faf26f8d50bb2b2f038aba8d970939f4e6fa02c3f6cecc76f3a4298f66a7976b475d787c3d2ed3496a4cd9c47f864451f140be914141546580364a64215504d36cffe6f61a08a4f1940d965f39cb442c6705e932bfdbc29b612a8abb3925c3d9bec1c9630f622b0ffc7d8ec2425022882dddfa46bee778fc94e304e9672cb9931cb4b75edb5514c2d930e0de245f15c4dd422c0fda02f6b104c0b37ea2df5c04f83d9a3f644930eb54e19b7a2a5356359d6370bd4635fc576918be8547b7aba9f11f1dbf10697c8794b06f7ca1316c0e9ece8e51aa3a6d0a77672292ea5fdd50b399175d452f18754e4f3ebc41325982e2ba3162974c30e19fd49bbacf10e3cd96254cb3f43d6ce1115650a0522ac1b14acae1a3231579589062bd63a55b1aad407c0500b420d0840e49e941a5fe6c6cc196ce45d0d16289199cf9a29130f6235a3bf9e8598e2b0213ce87fd676ab5b621a284567172fbe5fcaade672cd55d1f6a5535348472fc836be896c332919fba13652b941a35087b44deecb7121191c548e8a7161b561a6f8f7cb4beae6b7f3d194f420ae758d209abac2f36c144f067a829cbef57304ac7541f7089bbd97821312a4c074be9daf5a000137825e7a406ab564cc16fb7ecfab4babbf00b1f13f8e009481e88f55050d1d2e313e424b4f6687c7973350585b5c66f2fe698a8cc0c1021b53637dabaeb2c7e0f35154babec6f7fc00000000000000000000000c0d151a252c +flags = ValidSignature,ManySteps + +# tcId = 23 +# signature that takes 3 iteration(s) +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920 +flags = ValidSignature,ManySteps + +# tcId = 24 +# signature that takes 4 iteration(s) +msg = 0800000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 70094678fbb346b4b40e967be25e40f3fd6db4e03dbac8ee46c962c4e7f7c4d2f18a7b44df87b89e8d101bcc264c30d32ad4aa54e27bd70a4d7c4717653c19887afbf6f2359957c895ad477f7d9964e1e941092dc4fc8fddbb77157b31462a46e84f57906fea21df705a01c46b01f3212d91011e0798548ba8eccede6f4d9bbd16d787f5862b6e4dc3d7328511b199c32b609cf90599f90e156d2c00a97bae5b801d80479e612ec53fe59d0e5e6d7c2d2cd2a86f1b0d8caa3856bfb437ecb57ad2ba85d21020cd31cee7296909b19a45cd3303247e4e918db4bae21314366dfac729776c17b5852b000f9567018e7d052226b3b28fb5512bfba7c3da3d1cfb0c31c7cfebdbf5a4e5009ef76cb73316f6ab64570d84c39472f85a7f54918e9fb003a293c8d2787ac533b19832524e5956a96722db2d429aa69e15f3bcda7d887796647f913d5d4de4fcac8024c8da8223f62c973169cc21809943114b6766d3179a17c83e58a752468eff1d23f04f05d844d0ed40faa81bed6f1750d8f15ea24b69b403e12213c2291419d04555c15ce8c1645669f7c4f46f4d26ed4cdc4655b6d6c61c18739163c1f6290a5b535601f345e5a1564df056a9519a3125107b7a082a4c34dea36bc7c3d57af69b7bef90e5ee02426b96dc28c8300e1207b7df14c4209ecabac3142b57d059081da49cd4221c1fc4a159a34bcd95149b73d4a9d9d7f25014fc011ace2f814543922e93737ef968e8e20e8983d3793d733e24cda69c6c36436cfb658bd0d1cd7102686e33ea1626a61ff6662a8be36d0032fd6a2893f5386b471028044e5aa38ab71d3d8f43992f7eb196af9057aef710ae149dda63781d269c248a3c257dc21e30c7423d0bf7322e4f87780f284a92930842feb15c3e624d713a4cdfa5fbe9675cc9b1bd36707285ae31038d419643fa959839ebc93cd66ffaaa720ca4c3bb2b109dcc2dc890f19fde05966ad0d648a71e988ab142b6acf0426a19bced43dc0c83a38685ab5f255e00ee0f1d5a7a341df518d5bbd9ddd31aa6b38d129484ff2b93167123913ddf7e11f6b7be7115c07566c4821d12cfc3db5d24591f040608b7b06267048c944b1be8f67607883ac3c645a5746dc107afb8fb4c730929bc6c99b72b701c46602efc3be2dcf7a25c21467a6413778208e58485b3a7ecd688a97aa85f9ae2f0023d551a970c7714b7bd740ca173cf0f787ef7f961e9f97bfa5a59bee561fba83bc19d0945ce0b66883e5288e4099b4809124cea9426e81aaf1fff02d350a2e9876754ebbd6dda2faee542e768d859398db6ba8323bb4c16c0454020e97da1edc2be24ace53a0cdafde1bafb69e8ca06996c132a19ce88f7693391e2fd1e6483a193244f2faf9b1cfae1d511f34348dde860c585ca548bba32c13165cd3044209ce59d10e30a0bdaa68b8187e0fe6361c1ffae271c6ce3edb53e1f9cacbe9623ef5a6dc21ec7ce626b1863eab038bdd2c1290629ad90fb59de197b4f1cb1368a4ecb05bbd0b58f52fd8ee87591c3f4dc08c06ce8664e476043d4e85202a51996f9c0e5ae2c22ba95099fab8447ad3f71aa2aa95fbea73ea99780c8804037584739b3e1d7f9d63335c9eeb7d5a76244ef7afd8cda16c47faab70550ec39d800d51b1c8f85d366d016fc16c51357642d60d21e3f45eda3a7ed0815d7c585096725151d3a82fbfd90b8a609b6f52e0c18e328332cc0de273a5cd4ea3481913379aff1c03ec5de2026321d4bbc4fd13b1f5b4c5bce87a236fad1ed604809ea2378d9f3cea73c45923d9e4eae4e126792825b883f9d46046ad7787bde86b1745127812534955bb6ed28ebed29e65030babeada913b8b605a636f088d90b91d7166f5e914941d4185002b3aa6e38b312d384c24a4312a8cdf22846752a9bebb1655a3fb904b6c0f1224cb2a83887bf218f339d6d86faecf258afd847f73f5a3f80562e65a07a7c9ef1b43fd84b40b55b000e6c3d661e1fea1037e6b80f5478e744e6a6190226f7ba09e2b8bb89c8d720cf36b9c2bfd33dc34c22c1039ffb71e2f4275dc22c3488744c4b7bb7444e5443b211d3ca7f687e7db1023082483e5ca2eaf89a7eb89f993c194c806b331e905da74830bf8219e2ab6dd80620fedb6298c5a772597dc71a274589314632968c82d66a89e9433cdb6465aef8eeb33f0e738276daff510735089100bb9ea86711e5acb9272e7dcfb512ae2c3587f9e199e9a889566323a8e31ff6cc623307e49920ed9b863edcf54bbd740a7e93d2e8ed71ea0c321ade6ef7a068214f73ce8809b0816f4f2da5bc23890b768324f86a29552af095137854319ae2845ce820633457678072748f9dfc53c26c5e57bc1da00a635f2f7f1343b8adfb83bb3c54a78640441ee244b872d6c86699617e6d7cf71eb1cf0b8ca6bbcc89e3f36e0b64dd7b150604b3509974f65f1ad0adabe6dab7634dceaee4586f6628b2dae7f49663a9a25ed5bdc91b874f893d2fa54afdc6174da985fbca021315f10fb16ca6278521c490598c2e9593467b4af9ebeb822339e6feb7914c70ef2a127cf678c90692b1dccdf79c86df0014bd76aef174469bc904918c88d0acf32f5211dbc9ab007522ff85345d41e083ce7e79e14cf16dcb934fdffcf99c8026b546c2bc00fe356cae580623c74a00661d2a18c2364737e0683a1f1dbdb2e3be4a3de06424bfd54b820a30349d930ef2a4103d3586dff198044ca9e59bbe70481a3fcc955952d69b9d01c452990793cf3021f400d2ffc4a97fe248863219d16a457434f3056084306b8094cd11f97e48e6f2d45ae9b3b7047deb2e13c43fa0eb8fc710e82f29633a5d4f065986d66323884fe87cbc66c114026745889c62d254928257e68afe0e52e51e25f337360dd227dba3ccd54f1e99dd4c704c9bd126310e4c72160da70f176de957a340fd481f84c1fca83af372c9fc7f2555baef334614f02068a820cdf2b9b1b440d0b5337f4b4a380e6d95f423ebcebde2b455ff74811ab431b2550fcef6c6c671bae84c910611176e94f0b2815d55e7328804a1ba1b490b7f86020238114a063068decb8b3c4d6ae62f6ef6e8767b934d9cc817fe50470b9f0a6733ad446d12a115e28dbb8b610f01dfb1268625841efa796378fe64293fdcf859f38406dd11e247f41906cd6c6c9cb2afed460268f78b170edbef056fd2db36bb6937ed3bc52bf1fd098af62177ce44723b65ead8ad50df2c0fd89df098dc56cd51d5a74709c5cf1b7a09683817f0c12ef399e83f6a4e8a17126da998f0a224ec2f198ead30c543cf403615f38066e9417ec3f2b865464f8fb1b7ac8c3fc6251aaedf16807ad851b980ad9db62ac0e07d9b856bcf579305d9eb66859e460aa269f0ac69c9e88b014721c906a1f3bc8a1258e04683343f2256fc7c81ce17fcd93395c430cbebd6b0544c11de1eb426927f172a2f51aa78aeceb83aaeffb1b62b66a13b19c0035ba1c41604441fe22ba1bd8b8ea29547599b4e00996b2da1e937de02a58954cd77ab29c68ef2a03321fa2ab299a2018d625de8f65c1baed074ffe2577fa5b0a4005aaf284e7e3bb8d9fc365ae978fd528e0c427d43414b14ad6cc7a28fde2f71d1e7187a3362f89e2067b5839a71df40164c5d5059d9bff06535d317e331961f17bc5800455a96078be095e8ef8face39f58f62f0991ae3d97390da8c69b900cd47d749a75e7b7cfcfe1d4ab3b01eebe0f4a00ae2c7ebbd134e731075b83dd7eb726daa461b7dfb31d3e0f3f9cb15ead0771ec9193bcb899469100dfc378750dd811bd69b8acaf4c646414e5385b8737653eb9773dc9eacb89349e8cab56c3d0fdda5d646c82d2039fafc38b0aaaf77b93d86b7daa2016c0911ee6f46f1044c851176ead85e775ffa9330e904d28bdae0c4820b7a4ad0844765e05f5466d3ba1eb2381284c3ccf0de5c31744acae33720f05b38f7cb099262b94f4b025cda69bec27ed08c49b0e113f510d2c36a39bfb013654fc27f8802f414f9b894d4f9673a6bb03ea26b5d4959bd69c08aeb2eee3a28ecf78c61715751e43d5a5f6d8bc5ea7a70de3571d16ec9b5def79e3b3e0fd61e900d98bb0bcfea8e2c29651d9edd613693dba51b0eff6f8dbcc51b116244f1bf4a14c5ae484fbc5189533dfe011c7e8b75ac8287bccf269f98f2628ee419354b02bbdd9825b10eaeb0dd8d13423ecbab0425c98a1750f3c75738d27202ca4e9b9b760dfbb6fe86914b7cd3876800ea409b65c12dc01e2d81d6a2584332e63be08058566543b064bce5673b7dd9dc4f69c45acc7650291ddc87d4ae9e1723d51701f3fb3c11376019a53ab613b8b7138a83fc76cac853355a1b713f0621f8cdaab631da8a0941c58c0a934cfcaae84cffd95ff7e831cf38185734972942549b74d9c67beded7174e4c76d0ee55148443e785fb73955a582e9a94a14c621d6d6cca5b9f270a84b030202db41000965e0ad66f5175124f211064a2af0c36591f16734641c87af774708b7b7b8226320b34f488050fdae7555e0fffd1c124986ef03d2205b4b809514e5cacd34e7d0dc8727772fce98e0e975c64ec8258e22a94bd2d085a6c808c8fc421346fa7b5e91c8287df545b1b3589a9073877c2cdd70000000000000000000000000000000000000000000000000000070d1113171d +flags = ValidSignature,ManySteps + +# tcId = 25 +# signature that takes 5 iteration(s) +msg = 0500000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 604ef7c921fdb209de3a95ad6c032162ffe69ebf86638fb7e5a2a9eb3ba4b68fb7667f6b5555d000e4ba05a2eb6a4d324b04311e4ea01824c1d6cd160802ffa20196ff1b0f0c1789ede25d58bd01930986817524beee3d93b1fdcf85a3479c7086029d04a3ef378a8d4658310ccbb441ecf9a273a50a7d57d2a58087fa0c97c0b31b9abd8246b1e9d46e1dba106e5f1b5682fb9f8c8c7a8a170b4f12fb5b2ffc08514d7f68dc81d9005283abad65299a75421ade87ef90300d9faabf7b9a7ac3eee8abdf8269946b0d3fb4cc674d58ebfd99377bd39f63c54313995ff3ac36e8753637534b8f913311157a149db56217ef758b65afdc3bdd7d2aa59ebc42daf9aa027dc753f051db015a9d8b6793ebf50094dea5f38ca7c2824936f96981fe5c75032921b6817b81776e28d18485777cf6e96ce2a57a9663d30d804a2e07e188b77804eb54aca4ae43f3ba71a3a07264a1a1aaf6edffdbbe37783e11ae3ef0b3e8f5093c1c6566366e65c5bb6711d706cf64b1f579a44fb3a267cf962751d66d46c0208d1705d535debc5f969c519ce415731ff49f93543b56cd2689fd1f94c57b6268afc5135c3a92eb3856156b4918e79bb690b99898cf5a213d63fe0a1d5aa3512282215691baa6c6da5c952f9bfa3d11c4cdb1ebfcde709e5c3347fa6d990e9d2d805d63bda508ea9e3d4e0bf2f5055201936dcdc360900116309970ab4ee0e943248f021e2acfcd4d7f7696dbe33beb7b40d5deaf042ec6cfd50f45d65f94812870c71e3c2b61db121f634cf3fabed0e48f6fdb63e7087d2042a1bac7f2c296bbdd70078303f05a7974e188480d6cc1a777576597afa9429c3c3cfe549fc41887993f883e4d823ba74a79075dfe5a3a26d794768c27436ec5f619e3ad605cab8c894e2242201f4381d7ab1ea3fc346ae17e783e53c95ee2d9bed1942e5f3f9ba65277ac7a0658faadf48272c78a8c9e38d6f21be59b492f4e0c134d965dcedd49b0af638ba010f8e2df94484b97094f63bcf8660add7a05149fb2c2753d06bdc4196e2c18d7ecdf685358ecc03b3d67b496828881a8f00cb16667ee52a969ab67f6e2645da8345d86d5748119cf28401d369270c7aafdb3977de4ff328cb34147e1f37db7778aee3e08a93523cd5ce244c78acca1e2a7b1f6d72b76fc86e7457e9de61e473c605a305fdd5591c16efb499c5e5ba83831d202ac14222b802e8c9941522fb0029b43e9f1cbb6892994382230456e899d60655f9bb29fe10811098a0de73a4ff87da05d0edafc2fd7815fb1d87edc40316ad7ac11474b68b013430c4023924e021706752307788f0309f86548f9deae7736431e98ba50f3d66b3036111dcbd1f28a51c83b1582fe61eab90efdbc9800f2493973d1fcdcddaf29b191094c67cac62dba01ae2c82139e65c29d11b927a3ee0bc93bef952a77c6dcb94c081ae022bd2d70629d630c7db08b0318c915cf123416d6633405703bb670694b4932f716c67ea181f4aa56ddbc781094029837f335205bd4eba0d3fb0e852d4a80e98ea119ac6738af8bfed0bc83ec0cd4b01cb75e1fb73f790f265908bcaf0fc3f3ef3549c149688ba16fcd5033828b2ccd46e22316bcd91e821231111b9869ff2257e996dfb26e9ad93850d6b607a5a5d197bff5620fe753f5b494e21e44d8abd5bee41ae8c81f8f7d0fab317c347e7d00712552610431242870571ec6fe77c1df51f7f78c353ff85660b196ddbe065c6f361a9c05f380eb18b50fbe0a0daa33cbf70d03e9b399e9bf3414e4eeda59ff295a6c5aeb40b2b458e21f43701e625a93a8b047fb221cb3dbd83a86b03ed9de58acd816a58e0dd571edc95d145564fa86564f86aca2c61f49ea4a736984ad58fdb02c0c105843c2327ddc97822d66667b9188a6e371aa5e09110b6d72854d0903d432c51f13b4c61107a7a197602e56b8dd522985af2ca20af824be8d503006913f6537fbe4e288c684bc82144c6123e253e8989c59bbfc83f68a9a8ac0061f2d5d93c253d2ac9328dede266eb44b1f5f9a868ee5052fbb2476e11f9751bda60c8af5f1cfc6e8b9e1bf54ae2ccbdd676e3f5158d174974fb0abccc3b47c1ef353e12600a60005a8732d267e33b0a3ddf7d66e2494e6afa3c135615e4183b3f7be8006a5e2c3ba4f1d948d1b34a320113faf891d93824cd38dce7e0c795ad623877839964555768ab7aa776cb3ea18827a752ee3e7c6b025bfc48b8e8c99512578d2504a51fe29103d93eaf7728652dcf75caf53ec55ae9436a5d41995ea9febfa38c13299f22acea0f59d15cff0a88a4750ad68d2750fb8ac550459e2a954141c5b9382e2de8cb83926f2ce102d4846accde022c502247259918bf44caa8f43c93dafd89bcf727548a9a30e553ca37109d85a6923b42eef083007f258d57b1fce21dbc830618c37257119592b8e8aeda65a98f9cf6f7287a53a8a2c64435c212a1ee90f52ecb9381b56d67592395dd8af5325a09f643504adaee45be117dfb70d92a3ebd78da21529b3d0af76eb71b2f13dc3e2755be1df35dac40c0f9c1f37058c249c44f09a3a2602017e7110760654f7945d5bf653119e78455586a6405993ec923c28909eb7f398aa02f30c1c06b59be51b9fa7645bfdfca98e18793b6e09a89e9e76de835df9a0126cc6ce9973d2bd32029f62e7026df3a03e9fb4ff9ec1b3533eb43440a290df0216b6a78d13d40b094ebfd3797c85514c9f3e57f03d4499ad7e5b0d3f91febdea51738a9c0bedc86df1c80b90864e3710a6c3d328451f3275c04c9702861ff49824d87828bbd5c1e16a7ae950ee2896dff2b82de43a937e31e2de22d81448a682b70c7cc8a71493b08a95ea8a034fcc5cba59b5fb09fd1044b649b192c76a9621fc329baf425c34c30285adf948587bd2757d733a7ae82bb7c71404e9672a40ebd37acde5c0ceca7febf2166e599d8efc1080ea0e9b5efdb3c1a3b54fa24f10c4a706387b7381bf094265a07ad9c85f18cf00d92c66e9257515c131132250c007fe1a39ef05529243797a96370fc51d5db7322e447d834fbf7fa09d136fef12dcd31c3cd5ca35616d92342013f8bc4d895ad00a27a8e641084bd734f1617cbb0f243fa83230393487509c6041f8122c5b0cea200aed694ed603f104ab14b462c722476bf2a95126c9f6bd9242c5ca6a264572700850b33e415742a31cbb85adb1ae6e6380f059441b898d5bed3d64a9d146f3fdcafd788b9f65497d6f547c15b652bf70844848dfc003700c2645381e6070d314b7831b1e429a41754b0ad2fdd71348217f35711c56271a6d7bb4ed15a765d06ce3f970e4568f1ad60af3df6cc2e385fa55686d3633f3c82345bb0c3b539ca8ff2125fcff6bb5a4e3010e68515fa28bc1945a255ce12a391e0e4ec77ffb098cbbc2292696805e8c4c3978d3b4863a6cae10755d2fc016b2a9ec2ffd5c8d3c5ea9b36ee622040e189c2ce167fa90d07164d70dc5e5d3cd9db359dc5b94a4bc7d6619170fae9ec1a82996e0b75b6902ad473255f179edab1b3ad097ed71bcd873850d2e94223c903dce00557f616a48661ae937a402d2a8a5e1f1f6da8641dd423ffa54672bd9adde84ef8798ba5a8c79b56dc2e6ff694fcd63722be9c9146743bb68bf6a8e0d92376848f39f81bc4e061bb8cd63a6d7707985a95b699b37dcd5c0da66ca9b8c7912ab45c435034b3b629d3c898f7d979124707817548810f07658cc72e82af5ee86c28a89bf070a80d2050b251a0dfa75b567e7decc2fae12b50daaf26326f30ff072c1d509eb59c0e523669264966436d2d14bdf2538fcd58495d80c580d6e3343e9bec883033c7c32fcc693eb123383ce7eb2ee5d5b1b09ceaca617346754ff30fa9cbd3e716620bc5219a56111aa5dd6d0de5e3904bf22839b0239ed994dfc7e6fb6c2436a950d1b925fa975f57419ef7d9c3cdcf19cee53044d6db371d1c1c8d0c4eeee9e4b963d197265c42dcff55c5281a742d696292ba462e622429ec0b8dd3f6a8479f7a1fdadfc505d23de0777155fd53e4bba4e2433033c88ec9a8578d9896518db1d1dc30d23c5b82b5db14039cad18389b5dfb6015003ebeeba0e2313045ef1cceaced1bdf0e0721b8fe6a636f983186c7f3c559377e88ed149435bfb8af17e3cd1ee277b0305a1717a0964b0eee875756ae0967c04dfb051933c5fd706ea2ac35cad984553ec63ea554246a2aa10266100ec88619edbdc3cc72b14f2c8a12504336dce5fb00517ec36838a5ab856ce0929414d3962795e0a4ae7dc80031bf5fb732a092109eb3a119765d69f4648e0e690898608176f8233bc010654e01d12844291722a4f195f1cacfbaa5b4ab674cd96efe868c377c577eb25f81e44977c928780d49ec3e52694e2c9e8fc26a8cac64bc927a9cf0dd90f36c11685b172c10ad7d9cf9d0aa4ec26ed6d982c90d7e97123d9cd67cf17198e282934d0621702d22cef8846c2dd4b4c639410f3da93287f4c1929638d1d624be1ad01a8e5364853556ab837a274b61800a723b03373b3da771d0949875ebba692f0baa606d70046c841fa16f191702dfac9a48c8ef9915a0057234b5b6999a9f82b424d6b6ebcf9101c28495575c1cefbfe0517303e414c5b5d8ff70f30649fdeeb021e3d41476f93f300000000000000070e18222830 +flags = ValidSignature,ManySteps + +# tcId = 26 +# signature that takes 6 iteration(s) +msg = 2c00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 55248b18f7b86d8cc873c73d809b0453f5db7b7aa436797c77fa7cd51624c0a8d924808b8166aeeb2cb3c2a013d1529e21e6b8a4a7ed13caf47861f90399a17277953e2505fb1fd03b16b5d1e1e045f2e56f30520d3196c1e54ae84bffd80cb27b3f0d11ec93e3522d4d3f9b66859311d3b448412816745f34f4b07b8e593be1bc747f4eb8e8e20b9addccbc4db5fc155afd4409fd5c8e23399cc55bf67bf9c4614a44f1342aa58f462489764491233edb1bb8c4084fa605d39028e7ee7f8e44dece7f58a28d09665624fa0e0b5495a43b6a623bdcd0fdb6d0567d446dc6949cceaa15cad8f3f3e6ee63de3019f6f5df02bbd7ac5ea6024f4dfbcc7ec4fc9d618b2cbeee7d72cd5837d6263a1df0f6bed8708d66be35e474783d8f39cb08e130d300fcbf0767dbb4c6f8ab12dde570220f1abed2bbb029d80a927c51620d5679e6a4bcd2d34a4906ef8a0b5f7b87082a57b701879a557a989dcd255a2a845f2b7ceabbe05e853c6a36f8b3120b61821cf8e557a4a487e5065be0770ada01fdbc64a607e19b975b3f90835acb28a023955a713c6022a593208cce54a582329e0890ec4fde395d5eda4da6ae5f17578aa1552c84648d7663873a7093745b7550096d5da5b8aa25e9750984f74d6bab5fa9c751bd828f455a4784844cf8db1681b47b05e5f6c60364bc647196134133db8b2d672f290d37e238f562bdf52e35980e8d94910829ff7170bf403a29f210dc42e7ea1e2168c5d04429efd560ba9c11b21e9d8f081503b861e2fd1d832397bf069f699221199b395015b2e79808be26c9fbf6e18280c3796f29a1e0a4be5cc9901c6b31c84fc69abf3bafb07745ae08fd4362875832ee768c378c3e387dac8e06b7578d8752e3ab4ad161f8952354f1569288d9400f28603b0bd7e239ca2de916e2718653673236c1c3f172d67fd9faeca57ff3cddba66f0f589d297b49c311a75ece1daa7230316128f28985210fd2f1725ef5b976ad67dd436902c7fd6134870da02866ed96ec997554a684216ca9574264efd28810f59883f5f73df115024d56871fe24d68b142bf5906fdf3d3839660ba7d26aa6827f47a05c80f1a62254b6cdfeb55de694e723851a3c2ab89aec1e312c7647b1b66acea5ddb7ae62ca71c4bd5592381761fee9d85c38f2f42f54f947bb3d4ee340077fc86cbe19af332c96d67f8ab84a1f0b0f039f5e6b518c9f9eed9edf2a88dded19903a0b78e17353fc5e1485cc722dc9a0b12501374db57b4161a12852a45d160ce3a21a44a8e37cb8dbac3d3a2ae131fadcec0063ce5b777df45b67744609da238f53aff0ff8e1175fb11a22fab7fd016c41f8aa636aa2ab7c4508f445b01852a9944277309f7c77d1f64048dcda6206293f89f914152958c1ceb629d7991589edcf3e40cb7a75090cf48c55f1d16b98fe26b55d31dd860b31e077af05012c8d4a9084647741f6b0e667110e9cac2dd031c1e82deea92569bbc8454f586f415c08c18220428fd25fd0e06517cf89ce7673961396f992a0f395eac5e3ce1b81a77a78db440039ce36670644592d36d43e1f0338d8f54fbc5c97c5166d9914d4837e7d005269529072c6b34fb1e5e8ad177d8e92530395896584aa3b587cfaa74d4effe70578d64c8fb4e4920528ab0bd4bcbadf344a148c1ee0c77f28dc6e605f60093948733fe8caee60766678580ad00d685d932ab692e788f37a54342d0047457cb48efcfd994c47cc57cb4abe7aca0508f3c5551c51d448a111ca477c16a0018d1758599405ea49efa618a164d2220dd714ddf9832d1c7d1830d93e54ebfe9353d5a90f2a255ab1578199c3e379aa4e6acf2ea07aadfe7c8b2b59a7149feda9c35ea80db44225a081a489a9f2ca447e6a577d87fc46931e01e41b67485fa59951192ed7949913243922ae9d2178b24eef6c608113e8ca3972c705485b3008cdcd6fd7bd112c13ab780214c47ce1d7141f00a4c06c6c8f9ac508e01c345a940ae26d374667b1afe9c89fe5d7ead12a5011ab593de9b4f5bfc68498d2e3dc6d1cbc4b16f7c36c30e2f1b5243df73230f4b61ca4f9507c0c2092d7eccbd88d3129db25e76ced278445b7bc91680bcfa73c89c84623cb32e5d9ee335be23af54a54226b1e7a542e75d6cbf16faec7867cdecfebc5483b4b4bf50776f87495d0bf6c596e382c859020556670d70af2272f816b3881aadb663eb91ba95f31dc17ec606d64a55f44c12a54051bc7119fa3af23ccb55ecc9dd0875e8aea1da93e78c77096c9b81c24232a6f64aeb949e65f0527fa9f9d86d24ff1167525c5ef0ac2c6a1cdecbe5c98ecca4958d07c80a5f41b2a645fb78ff17828210ed843f3233913a021a7b5f187db60476fe139b89217a942da48201f3017d704a9e9590800241501fe6526f0e3e05af68c0a4936bf317375d39e19d502cdc938072403516844efffdac2a1758c2ad1ae29cf8578356e666b5f6b60e9198d847aa0c88a903759418bc0ac2eea77802b2a41c514bec3149bebe8fa0339176b8380e5b08fdbc390e726167ba15757842c4c9a8d1a8377811f9ca3906640bb38bd3156dc2676eaa49cf6a4cc90635da341be52dc7a7b3900ea89c697f450b6dfea351cf0b0673ac50c72d7b2ed3cb45b06b856a41c3603bb50dee0ebe272200c6e48a33639bc6369963909c6ac67ada94af7b03dade60927f35b97b27a5251e3819c71372bb6abe636966323f0abc04e26a699c46fd8eaae6f3b4b097cb40eebde51f6df2694f14b7178102ca2448e3389656442febe8ddd6d663710f63a8234fa6dfb6f3a9f9d0f69042b59b58066197ba83536f4aaaeb4d9959af819b40ab43e09e140e883037f5e896a5f747f0b70083c4c720f017a021a12746c72e231ec86d684a99fc85f8cb73dedf83d23f9aa6d27877666670481bdd97d428cc1eda80e4c08ef00353aa4c371c3f938c766da833a76929d9c78b34f540381909affad1cc12667e6a8dcf644b51e968512d80017b876790e58c464d222665502c2d1997f67805232d6e6af2b868a801a9e32404d30c02b1fd8ea671daa7e97ecaf72addcbdcbd2f6be3794ba20d938a8cf15db52ef323ca6b47b644dc93d82508249411b9aecb7ae10fde49fa1b209a2160581d62c10962ad419c2b82d553990b7583106d153a1ee63df2a283484c6a0ceb2cc71919d00990f7bb87df0e6c4274fffd98525bb325b495d860323ce49a2df510c2421904f4bd3afc9a45a9ba84ceec0b8de7f77f14ffca522b424778157bbf0ac8e873f05837daf02b9b158c7853a45f279dc5238d202403378b8ed8fd1c69ed29fa4e5eed31a2b803cf0480425bc7746bf39255810e57bbef7cef25686c0893271c57feffdfef6346552e269f661a6e396ee399ab69641e7ccdc87e1867fafe8a754d77c7c05e49196646b21b06bc955b4ab287a4fe3d0749fb65ac042408513a736e32c382f9c81a6381d03c7af37a54fd3406f278e4b4f58b98f3202d7340933af471c840c0379cb11a3afa691d6f50ce50c20b02623b45123b75e8c26b64a221b5c36f3758050870413efe61e0d8e7f7bf77424b3478240990f9333f0ccae39fd1d782ad05bcd1aa05b0b6d58fad5766d056a4587ebf5e848a8129e07bfeff86ff50547010d4378b9b1f565a67207be7571c8f330f03d5ee6edbe06510918d7e81aa916cd49184098c99959fcab3858e6bbf2ddd62571be3869bc1f3d7e559c657319198ba47885c7da9e350f26b4e25c17d27d55bfc7e6813b6c30cb1f8e59cebc5f044e5d41f59c46c317d7020c57e13cafb8931049caefdc3f296c0363af7f7a89ebe18c0602cc19e8dd4da1bd14f296066183e80c03c806255a5767639c1bfca3037cd7efae6da14cf00b33f64b1021fc0a690a48abf5c6a781560a86d7501f8d0d05aec20881d23efa9d43747e30b262a3c4e3da85283cf5cfd94cf4e485ea56ae0081bbee0a9f41a333ae2aaca92c7dec0a2df94f47587e59fa21f80624a16e6b449194d1279ae5ceea47ab02b465b8da93ff50389aae3de69f5fc8a0eee992ec43e08b55be7dc9684264665dcea7ed4055306a1776f531d2a386e2e839bcc4d6e47640927967dc5c2571ecb8153827c44dc0ea5a60399a4a285798893fc5e9ebf74dd4e42575316bebba6173065e6583bd69d7f9ad0b8b9c6930c1c4198c5407f06008c9d04b1002bfa3868a8f7ed20a1bcdb1bf75a80bfa5cfff2a29b23e3fa963c6d7618c772538d98355d82905a66722824ab3a2859370baa9ddaa4f4ed6e6676528275d993bac69f66b4efeb8806f65cf8491e61879f0dce6bea760e2b3351a24b0fd65857c5aa099954d42ee9975b7c32b831d97fa862fd8278450d8ca34bb65a23758acc6fb96a81a30f1f28f85af5ad8c7d5868ba908da53e8fd0da4eb182a3770b68e2d72576ac7002ff348bedb8eed91f96af6a6a46b99e5e639845b4962fd98cad0112d74a6fe57fabb250e42c136c34a199e1923d2fa1d1e16abf8ec661c4f3eebae21627ac62a8eab8ff872c769f4b8eba495cd16d73b7448cb0a205da2c5e78c85d53cd78bf841cdd8f94cf16666615314fa389de3a5b63a3c05b8b939dde0041496372758fbe006caf4c718690d8849ae5eb000000000000000000000000000000000000000000000000000004091114191d +flags = ValidSignature,ManySteps + +# tcId = 27 +# signature that takes 7 iteration(s) +msg = 1200000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 577e0d1047704e02b4ed8653dd7a36c7a469f50314399d9b1e07fdf02a5c8a6071c4f2df79688c1a6d32ae9182279c76311762aebfb94e9410d1a74ff0191784a9d311dc970ffe4b51834e9bd49bd21dbb47817df5991553b6072dc547048d58c7644217ed1671c993d60f9882359842b82f48c619f318ec138842e4049ca3f0592bb06b14ae50ecbcfbc2a6e7c806765d404bbc5db8afa7e4d37f3a8fdcfe9867cbf66d1a971540e04c80e4a2403a0c9e795cc457c0cf1cdd7897843eef8f7e1642b3a9b7f4687763423ed0acb11270fe0bf01c1fdb0077787c591d20f2deb39ba6aaf3f433c3639a6ec43e314d212eaf1cbd4598b0bfb0f4f778f86415ca66122949ce3f101c667eda97f8cf6fac74d92472ef5fda6ebc1383a6d04bbb41b0e89ff80d7f0439b19b1bc570d8e29729b4d1ceb12648ea7ce092ff3311d910bc3495597f40e191ccae4513da4f24d88d211473468de354f1f03be275da7da36bf18233404f9d6f401bc9835544b1307312372a88714435dae593839d8706d74157a81fe8b744fc6a59c1e05f49628f8d39e0585c1ff156ca8101a53d4e48ba22d99ac7aa3f5e84af66140e57dd068ba296a1850581f6156671bfbe983d17e0e16d89511791b5be7350283f1cd100b9bd3ce62b607d00f3ae4174e892b175934c7c885c5c6b2cd3c533fa82fa7256cbd0bf9b53d009196c49d87779b855be3e97b4ef3adf68f02bd3e19ddfd876b55f0565d5600780733bfa95d58754fe7155ac413d67e9d5b5819c66140c15eeb622c0c8c8e15e05c79ef3c030de87a94f5601640f3bfaac0c961d4dc03b9d313097d20b83d27fb9e1b028503a624db1fb862bcdf7996443173ea1dfe544f285c4a029b6eefc5ae70ae3869ee66d220b89f83cd5879d2002866ca765cddfc8e499bc926dfd08cf86888f957f57ad2273e9155aa00ac4b618620953afbecbb4ffc6e93e82b77dfe4f0c6bcbb4e2f849f3fdd70f9644d1d420cfa938ded26dea5fb0052319848456f611f64e5e9a890a0643ca9ab8bf96b0b89864197d75c85620dd76ffdc0525d8872815b92a8369af17dd5bc4fe9519a2903bd8c1e6f844cca5ca2e79fd08d2b66939ad1887e5a651968f93e804e72dfcd6b244a66332e8358c7a39b337c001708dcd088c02c8152816d3ffdbdb323e4c8909e1b1a7fbe3e2dd87c8a985ad008e54153ee21590ae89459bbde19eedf5a23e019cdebad0f9448a72e12533616b76803dc59bef6a5e32e25caaf4034b6e3340398e95a797a484cdbf1433041522cbec6eac497d437a8374e2954c35e7ef105b45f92418b674694180e3abc3903f9a865bf24138ed0f7b5c81a8e49a39f11f3f81109a4fc9b1ddb6dc0d3f9697c4ad3d178b02373a46669fc8b6c7fdfa07e0beebb47b5043bab910190c1b5680a5e49ff786ffe7e0aa243b58c5fec92c148fb48432d20c76c88ac3b4592059eb414e2bb9d50c8db83f8003542a1a58826dd0d91fca351067c13917f817e32a438c02de1d51c3e2817c280f370a96a9145863a7ac1b6a1ed1ab640ae1acd2c72a05928b30ca51276ab0d3858e6e5638f061219af3fc0795a54d7d81c368898314498a6b279ba111c3a79514918adc6675b279a5571a3c7a9b9d79d725e852c2204490230a0270f00e758bd685885518bb15a456ed6344786dbd5c4009f94f04206e87b51d092aed1aee3473f8211a3ba22a5ac092a53831f37f4d15bf0937b9db11336018030469aa296807e6a5ec829c8b3fb741cbf0207692fe30b1530d545a56a48fdb5b3f72a8f158dcfd4808e30ea8fd7e2d6a19669ca7de2d50015c586dc17a37e6835685e691e516e517be2021a81d42f0330e29e8114fd729dc1aacef69e006f87ad74b0944eeba1687a2288607a3ac930c106049bc7a9435d548fc275b1474299c7bcc212a41d9847caf8def2ee7293986c42af986c0cd28ea70e56993876aeb3ad7900e84daf267adaaf5e9df3877aa1267cc99c7c6ddef01867a17019cc013ca1a921a319f1172500ac75cb8a200df0e38c1cce4054f2b0fbc98f76d4c7b61d6ef3a54ac0c42eb2c9ed53426dc2fd289e71f0532a026936629b6eb8657241b77b94d6ae11c54a9bf5c7ed7772e7581ed16607bc090c05269052fbfcd3653a9cc4fe8d0fc0692dbc497344bc73a3e9044a79d7dee977168d1c1e462b03da281e4124deb377be97b286ad5a1e1ca93529676c25c7601fafbc3cad171ba3265690d6ce37b760d053a0e5adfafa070becc84b59c39d401a4b3b84b80c55a9260ae2bb510230c8ac81433f466757affe6c55d6b52c367c37eaf0bbe5134a7ca5f1aafb745fa9025ed419e9360d1649bdf87696033742cdf7a6804cf88ce19c7d0f33482c83e65aedcf0e3da55b395198579a02847899e5778fd5369a88d04eacc1de1ed23028c4de2cbe5121a6c65cf648550ab340dff5b49e51e9543d6711ca1c3d26a744d1949edf649b81b7fffcd663de4532ddd1e7c2837d6b30995029eca9b30c8e2a00dca5a44fd603430daadadae3d4ffa83fbb4c97a373993adc8216638f0203eac09be5ad7f222738907a1c2b793b419c317bc0312723c0e8371cfcec8a13065df31978751df34ff3eccfb5b37315fb66a506083e5813295373c048b182dca86876528209d157a44a739cc9cb99e076d82f51885ead7933100d030a3a7745cf81cc36639e50be9e067b09a2b0015a7b86446256fbc977ba87ef6ee700528e751d5f346d6c24308403107aa05a95cce61c1e3894a1dfd97cbba4f3a130dd491368787593cf353d3eeffa56640a3451cb9eb207c19de0edd3fa886db645e260618326095e8ea93a1092183de833b66cd0379b94ef4a1cdf87581167db387e0ac24b750c47e02c98adda5a834b9b00e88d9a981aa98bb30cd8982afa2cbd7117236e03a23cf13f6ab2f67dcbd580a1171deef889889daaf156e281eb5a3be2ac914841f2c7907228971981ee9567e18748c03ebfe9d4fa67dc2ddaf865e1abe1182ff33601b97c44706a948f2c0bafa57f3ce3819005b5e397eddc9022bbfef2f65f9f29d86add3577a6fd117139a9ffa190b725d60aecc19370343a82f1f0f584896aea7d57fc092b74c0769c94242605b521e1f6a4cd2fbcccbb4a80745d3f431e1a12beb8af87145b9eb4b0ffd9a863e27b18b07fac43bd686bbf08d040c201ca574baf00daafec8f92c8a37e43f3bdc7ea514f2e0367a29642e2e89947a39c479c4ea940fc3771fd57c37f96e759f333f24c3eb1a67e6b202b459107042de9a1b789f9e9e8013cc3f2a89975fbe6c1514ba2572ed81629e0b418d8011659ed339bb37f0909ba8993475a4558027613efa516e575336d735716ceb77dc54678337a9e1d70b87ac85a3b6676447de69d6bae2a0e19048b70e0af8b767165353c1320612671f17430a5233e2fd95237889e4f11e5fa8ef905fbfdbd09db873acd82420e6a5d0bdd6611e5caa0183841804e19da3cec5a21bb75b91a01a47d7ef749af0fdf3b224a2f0d6abef86f850d16a9d7e0df467f28965c485156fe46e611f311bf59ed3f5d690ba6572228893e95e9e370f022b2daa966b31f41005e184e758b9ca396a23f01adf0838f9987433c87f9b0a98b5c208cbb57f66014f66bdbe793922333ea1aed91419f10a90d5f18f983027b901e5f70bbaabfcabebb53ca657c93b0899950b1dc2c02f5f6ec3fe58a4ae5816013bd7b15111b10779b13dbee751427673aa97e00eb9175dd2bab020e1ac9c9dab87806ac164a5d8f86217a15d4e75d13fccaeccc0798fab7551bb9ad89b2c804ba49606ac08adaed603422726a9c7b4c5a30bbda9d46004adb1baf11c4aee456bfb369390e82d504d0c300b18608da25086bbbeeea9baf586182246e6dfd6f15e2f199887756f6a914ba6cdbbf5fd5029f67212c406f1b5b88c36cdeaa982149f787e273e32be8f713535afeb960e302b129521ed3bf2d0a911908e7471527e7a177748149ac35e20e4d4ecdd95c356d84143e4cb6e627a1bac0cd813c00985913a148806bf00bc1da3b6d123da765a2863cb07b208125d640afa03dc3f2025461d228665da2590e3cf692163c5061c811f1f1608614d9ae6301794d9b35dcf0ca31ce7f475b085f14c6edd944cb343c08e5af9e9680f2e20656556cd60c2b4b3b10a66e71d0eefa893a88b7d3e789935173c39d4a5d6918f3b41187001b5cbef0cc6fc2b75b2cbf7b4581d97ab046f1d926fbc9a900e19a5bfea2989d3a63744443637de57a27269036ab9f35205a6577191f2efe1c01caef6f26c697fe06e7fafc6cd7fa533a76cc3ba9a2ba2b07bb2ae7cde729eea9b5460fcc9dbe9e1ed7d024668adb632321b2a649c2b285a19e2c5b1f18102be86f3181c0264d262cc55b2f2d60ccadb6329f19303a012ce1693a474d651a14148a0179855cbf57d149aea3165adb2bc54a53452f4faaa758e7961c80ba00dae2f3bbd08ef95901f4747d6b36561bcbae89364d090ad6fa9fc37287b5c901bf19504bba36f0a814634673918b1141b49578bddffe2b30331db1fcefe1bbca0ae41ce4f1e1cbef7daaa22929300404974c4db0b132f5dd4176eadb0d02e35555c5e5f6282afd1fa494f6c82adb3bad3e5f4fd09222a62bbecf700000000000000000000060b101b262d +flags = ValidSignature,ManySteps + +# tcId = 28 +# signature that takes 8 iteration(s) +msg = 0900000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = ae6b9da548f432f42eb2f2d6fa196c10500fd99674009ec015f6c5b2e5fa39218f361eac40652d671454bca3ad7e179fe8e44aee00e1731df3d0557e2f6b96ea805a7713d82fdd1ca369c868c10654dc0b38916a1559517334ca20021489c6bffd9942aea8c7ea9354e42d2343c6700422c97b882299909dc15f653e6d69c44bedaa068c129f0743b6dba58e0df1e30c4db0df591f75bef4fa209cd3b12b48a7e3cdee1e7e4c54f719ef10611aa4d2a668fa6f9004252eb8623f309069d73b46198ead952e30b5d2971f57d7c983a098d9f7a25c8117e2601d57cbaf36d0434ea72a11c2214c170e0e0db7431490ed801f850002b2f959eafe961971d8992e4f306745c2b7fd7b12f73ccf6757eab25b87e39b0a2ead28e3ff3096c706305d880df78ee77cbae24791796c05b537531e64e69eb71be60bf60d88c076cf0cb19a6858d435fc333d962a668a979b31a8c96036b516911290d7ec16b6f6fff2dce67fd4ae815e658ebc39b2a35666a7d1fb2444c905bfa913bd77146ccdd33adea9bb35ad871b8c97b9c2a836721f967e62382bd0c62073fe60b2d3eba75734ef612917b1f7ab0cbd34843fb01029b1b0c499e808095a90887a2612411d6cc8f85020f3b903d1231f5ad3cd251d6925c3bb87904186fae16c0421144eb98cbf30403ec02f38199a62c41f175d19eea8e3cd6c25897e773005d5bf931b45e2494c7553903bd64f4bbb316a11fba9a3d2ecb3f8fb6dc28a07241ae8a4c755496a494d6b0b9d4205e35a46e028b72c7af11d6190b23a2c70404624fdac2302c509974520bdfde087f3649a241967c9afcc16970af251b5ab3046cf217312ff0ad54f6f23ba940840a340498a257dbec3ffa44532057fc2e4e12a36dfd88e7ec42a3885a6684568af0b8e821b17abe98f069b27dcc045e8fc2403cf1e764d1adc4aad6547139d107f8b77d89f1aaa2d3be24cf480c9e03019c151c173015cb1db490850fae6be852af08df73ae2b98f763444d28408469ef1104f7816257a27a7cf78708dc1e310bc0f7cde56ba7f32def255064fe81e9d78490ec9479b9acf7328678ca8aa3a8008902a9fbc954d8c1ce50aecc797943d3b1ac681548144cbbad4805773408f2c2455f041e68ef7ed757b504981a38610f678464075e662a156c058e58a6c9fca1c5c352dadaa66041bf074036bc3258df98794dcdc64248a4af53cab90d7873b1bfa2dedaf6eed93a594ead4ef4a1f4e843bfff325aa756942b2851a9a526f812158c591f041a8c5240d19603bff6afb53fe8d6d17a69b5f0752e2e7350cda72baf17d77fd96e1a6c5376c358f61cfe5f484bc401aad80a44a8082305bec47fe643f782cdad0f8c1b46b9e0243a66498942ea5cb749ddac0f14c13dd03cfafa9840cea8f012f68c5787e7a48fafbc8c670a564341dee0331387e3efb7864a56b3982012da04abc3348e46eacc521dc9ec86c6a737421d5e7cdaf957137a427efba3a0837cbfd17919c93108ad6ea479a7b41a294e4ceb8b68585ee6bccdf500a504867094a4a40b20d254ac12ebdc0f9952b20d582dc737c5f7435b6de29c5bb73da4b55ebbfe1bb7e0a4aee4c1af9d1781013e082484665964eb913f2fb8c547096e8a7a0cb6b8600530c4824c0b7b61ce65f1f4c04905aeffd6ef705859b19ffa28e88c65d1080c61e6f14f769900bcc66ead17e7f8a6bbb494efd4141f7e158a5f6924646ff7019ff67c0ed0e178e9dd47f53c6585887afec69c41fb40a23713d889141a0ff48e84778b1e6f1112be5c80a6272d77f514af6bc9dd47bc6d85f0d7cc166c20c2b8255c2fb63c4a9a303396592cf43a8de7aba3ec7a0e45470410d8bcd2a01016a326617bbff7e110b18129a56900515a8d54224467773a7a731f28e9bf5a4bbe640ca5aa012f1b4ab22fe14f121f3a486505d01e27b19a87801efa6fed57a636880dafc40a820c73ea49c2870f34bed3b504c2f61d1a61d073957dc0dbd97b2c68dab42d9e48bfe559643776004d2fe5f7c0c7e7e843628ffb368dbc65d7579a826932bddba17db9de0f3e573916f2e80bfe65f1be24aa0370aa1fb9b84a140c3d6f62fe116a88528aad07d190fdafefa49b10c4bad1ecdd2e6168310c346e0143f57099cc9ac8159e003e95158cef5a518195e8e53682e09bbf1d259dced3aeb19b3ed9089be1bf50ff25080cb7be32e64ea027a54ba01811b9fdad60afedbb7423a2d958b90f1a568c413e50284cba2ed180d3df64a13f210a824dd309871843ba5a5df8dc016092a716bcaa39e59c74961bafcad934fbfa1ac73d8e876afb160c98f7ddd27139b5cd3493cd18e08290e7869e203e7e3c5e2a077219dacb8838d3be44fcde42ea5a3e4f21037f1f0f66ad8b526d723c31b037c4c660171cbac2aafefba2afb0cf667bab8936a9453e6221c71956ec22cd70ad54226be512911597add00b3847347505e4e7a412854463444cb66f71eb359d4258c2fd33c5532e4fff22ede008ab72fee788e4bc10c4dbe9dc3172d6406f6b829903d6268206fd0b10bffdbe1fd62895790dc2f0bbe10ccf084605e3d19d4a86b4b64bfe62d3e7a1f43afcfbbaa5ba55348661d4c416c7219be1de32d038db26b8cd1e947fcde7e3a819e89891df896490996cbf958dbd4bbc5b82bb07ed2b83c96a87348fce5ac03f5e4ffb987c02675a80465ba54add3ae26f67da4a53ee326499a44031defa232cb152a40450ebf9fd2fe39f6c18b27142045bf53e844535339b0ee3e1602e499bc4731e8e536eee46d7565be292d2cac2586c2ac0e139ec733f2b240fdc69dddee8054fd0eebaf8df2d9d36f15179c0d05cc309142ab8d30a75a613053a21c5a4d9e1dbfc7ac0ca37168b999646711a61e29327ef73f462be930228f97e563e6b1db0ad480d3d73f0492131f2dbd94a5b3fbb9d2194adfc1a396e60bc2d27b51289d491428219eecc092f56250debbca32182a31fc7ea67163c9ab89191505be15f3abf1fb397ba6e540cdfb3661693b6eb76b4da66e7d9f887d7b415ed946df1b593e0523b41f20cb1edaafeb53d733ef11e0cc0e2eea5a8d4497c82f1c5a3bfa39e0e9d49b3acf3915fa69e4b9ef7b69a7f0825131e6587d335ca66c23d4e54db4075d61ad0e6171711b94e1b647e62a8b9c63c089b0c2f3bd9addf550df187a1b9d7f122278c697b91091d0bbd8da14d3ce2627e5076556cc54d3084c447aacc82f2f667f96ffcb41fc11f5306d2e096825f257f86d55289cde430b07afcf2f8b8123489ef36e58beb4bb7af07da8bfe6dc9c2bfd0a2855848dd46b70244b7d2023fed10a332ffbfe1402ed48e30ea1b3f45ec88d09473ece65064b4e15e62ef959745ebff674e9ea0f337518814d3e9d7aa1c240677dab91b9c0e41e40cdaa5531799f3d240b7dbe702b84e88688bffc56bcd55c6d3d4f936ebdca448add1c8c84c54cbc7412fe201d76294711cd5349007b027fc52d91acf51359dc68e30bf80162450b2e2334dbfc653636ae67070ae6cb23a8fbdbe8f5df9d5d88cae4d515ae6997b22d2ee3eddf2c7ded6ba7ee30ecebbbf8cea56f0ace385b3b4b533f99cfd7f2930783557629bbbcf03f54b5685ef612f4c15f9cfbc3105355214632718898c829133fe2d69ae468cae0a6215d531f4cc801fffd416ab86c4823c8220059bbdccbb945aa7edb32d8627f1f94299e36448a30e0aedad92bef31c17767783b16c818e2d005621b2a551591249ba28005137d81bdcd637dd98169bb6a849ca57a439e726f5ff61001c949c73b5b2b76c1789e59c64c739a6b10ab7fd3af7be25c45d194dd5a961911dd628ab447999b84863b98f53d6b06733c2144549af2e28d1dffab2c147785eda415caf4e9aceac3a018a97f45c2bdfdf84930ea0ed5e5b5e55e328cb44217d89dc5b8592e9f82d2e9eaa43349bd1b82548efb44adb3cf8992de1ddb0389bd7074b0696ac25828dbe1eaa0a1e46e60dfb6b92db42429c01d7f7829e2732cc0136503d4bea76fb98554e17aea5fdc346c7d457ea65f128ca37846e8fb72de28a05079ae802ecf48195840e2a7aa935d817f0bc8d38c4c283f25f3d8b4a92eb7d48ea676cc5109b5cbd651e047ce44238171be96141fd30968e4d71e3ffe7299ae7ec87192ba819d27ff91781ce58835881c941daf943d675d486f6353e7b067becf2ea8d71d08b2aededd6f1045975c74f8840dedb352255fea9f9220b31b1f677a4f7ca415bfcaf3451b49fc7f3c57267119b36ff60e618a70423808f87c7ba2e511b4bdf37ea80c4024aee17953165127a16e88d1f745db529a048175497421716bda17f4af5f28be9d0a5932628aa6ea433202d6dfcb49941d9108ea1b2cd0b4f5d274f35d52bb44a8703651e0f0cecfc7fe933fa5e0dfde92cfadd2c4e7766fbd3a9f214bbaabe2a27c1ddd16e563b9d7539d7c793d00a52e2aa1ada1be432d41defdf6cb4cd4393266dd3211309f37dee5f31430dda1e9346217d94bab66b41f44a93cbd7bd10c94906fc95a1f533f03db5b4b241c7c388f6fc2cb1d455bb5f46017e07468fa7ccf48e1a6763e8d8330528439501419214353676a96a4d405424892c8cc19346f71ecf1fb0d2a2b348395abcf044d64666989b5fd03233978cef4f80000000000000000000a10171f272e +flags = ValidSignature,ManySteps + +# tcId = 29 +# signature that takes 9 iteration(s) +msg = 0a00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bc143b5f4bf58441c91faf8a0f173603ffbebdf13ad89694b29fd3b6818b273e3f54ea9cd7dba3d4510ae2c8f14d843348820d2de5708d79984d05f5496af374477027560edb4795d84b2fed1495d55a1d1f42de240136a7596889a5c03a19a7659f39f9dfd9cfb86fc6e96182b262a94b315a627634ce2fa57f3c1c609bd5bbe27b735e13e133e14acdd1e177ba97bc48873a11ad3f5c49c7a7fe1af5fa10e5dc50c89c387a8982fcf562b2f36af26d05e05680f039d422ef9aa86a5a1193ce24bb88b4b7fcd12440873867fb572cc160008902f9163a4c238396ff943c99505a7b73ceef7fce692be774a3bb5e04dc82df86ea15854f526a2619ab59117d5faba3a2c4acaf2d2d8dc1c5a13affc788e561b1b0923ae96b139e4b3bb55e134f6c2d0a5f8f25fd37ce52ded270d318808c6df359185dcf554a7cd8e1b6afca029c5611f314dfea7e008b1640bc57fbe4a0f69aadb51bbc52a94eb20a7e494db577c04c33c570afe493b52ac0d49702256bf1d948b23e0fa01728a0d7699ce65a2ec8f51c94a452a10f2033b5d6de6184e3fdd07df3fba52836ced06955660ebce4906674ae4dcb5d32f33e87e5889bef909126ff24a9b4b7d51455c19424591c1ebd20f608022236f42d06e90d4cc5e98819fb93fc1b53b8f0f374013271b59ad216bee3101e217a15a58b2f59ca2fdf72dd039c76b5995226a198904ba1fdcfe2685074c07aa60748564cea870bc16f13afc6ae17363b625d0d5b95316a0cd3c4b5d9a5578e57f240c6f8e38ce0de11393c7a2f86b35e50fc19933967b7f51c066b98e88235d459c54d4d1a28d7d194964ce1449081affed934c99854f7092e8c7a6b5b6987d50c1e2dfc4c8b69532b9322c7094c56776ef509030539ed74e991db7fb14b5f676aa7306a0e67d38ad8639971471b578b3b40f35b4ed6d4996de86cd634b1f63948c1a68f056516984e417ea2e1815428a14bd153424445d1f32567a0432fb06a33ac65b861c89aa2f2b79fd911c2a79887465f3ee2220620bffe347bd21d57a25f9e6c97fc7f00c4570a26a9f013624af4d3e24e34d42dbe0fa6c8ab7a85cd735489dab9ac23a1e5fedb11f4c5a98646841bef52f894ba45245442febfd60a66af764efdc16925cdf6449543b49bfe34d3d5dd51fa242e9dbd7ce9082169e56217bb8501947c0d8a4b41f12a56ea30a071d2c6cd358ef952b4f18f417f324331c500e7c056a2d47d0e4dec4e892a0b3b3773bf74ef9769e7d42815af6499a7263719da39a88fd74348af4f53385d76ff0caa71c84d5561b9eecb27e74cd20c46104fe2fd0f86fea87f83ed0213c350d0e16c4e6d8c973c0ff0918e14ca27b97b19a3ca0767f0c213613febbccbca507b0a17b2bd2f042b8509f6c8c38c38842c6dd61cc5cb6772b23307cc4c400f4a43d9c644f448d85abd0b2740c0127002c6da081067d29bcfc1ce1aef5a7e375331b5b9c9ccb8ce74c179ffbb3476b102bcea3e33f947bff12f5c1d1f95df11e5c06f123f23083b7ea655d135b804540ba7a12cf4f23a0c28743289c37b6684b5d357f7a0871ba5f10047309cc4dbea769da1dd0c24db4f68de2c811aa3e2b0c36013daf6b801ded4aac4d83572f4e28f3e360b1e4da0ce26cb98e79981231d2ab7b3eaec655c3cc5e746e7d89b7790ac7aa29404d004a8bee6e758ca9759d272ef565878bdce47c3fe89060450525f5914778553f277227c3bd6f970107ce3b03d12821d09bc7850305446d42665244e3121407f8193ea379c322e0e3ccda4f8c24a1a8cba43c25f27fcbedf24c62afce4e143fd76802cf1bec1e2411c740a111498e2e999a54149509ba83b3d3703e576aad701257df6b969e57c58e4c8ae0e5af4ffd347454a0d101ef50146e565f6fec8e4309225c2ee39c4e0e29027eea6f5cde089a56067262bb297880aea34423fcc1ba816b06ee2bf9bd4732691b80dfdacb015bf005a7a74a486b6cf19d5dea2c2621ddd19bd834dfddd97af99002ea1dff190471a6675b61454408795af44266f438d4f94ef8ca8331755fd9ff4a5dcd03e88661b2033ba3e615edb7b061cb6a2196bf41cbfd4061a2580b5df7a4064ed173810e0d35181b5c324476fd99275d2b9384ee0d40c1cd399c2078ce1f5b622b67ab424da06f5e746b1e8cf7ae8b90244b0dd637de6799cc35910b97dd03ba01521dd9a29cb998803fddb4c680308597095f202631323e00fb85fd939494ad59e34077f1af3caf085ac82043de604c9fdf851bfd162ac152e70f1dc5749a6d8ac0f55880117218a8e09e3bd6e2e2c050fadc9352305ea51d9e6cc073cceab1c2369f0279449564bcdd7fd686c57a2123bea9735d89ba4b25614a20609f6bfee14fd03786fa0930b04e7567dbfb51c408842f82e658064a1253027afea7d4d825d1ad60caf8596c641a3cec52874eef424e63e107863abafbd0500fa0e620dc6fd397d42c541536dece5936a556feb4b8563747008496e4a9d5bb1267533c0b9ef60737ba9d4a0f6e7b2016a57311ae854e55b144412f085c647d747e631acaffdf97410c693d089fdf227ab8ae0318636235f189278e0823eb68db6801ac6c606fea32905d000ef30b1489d6f4d0124d10b97b12f4db0726b7374f8a5951cae97cbe1e30209032b9cadac407cb474fdecd6fbab06b5da028e04e0dd77172239f41ce56a3876d4c56bfb5f8ccf5d819302151187674ef477eea1451a6e4d09371358995c552b467bb216e88ecf78c78c6a3ff4c455c7689c3784d4fdd50ae4250110e39ceb0c2a04e04a3abc1a2ae95ad9011bf2364443ec7773a596970b16d7514a0a7c27bbb0f2436bcf27202ef21543ab1eb1314fef197ee50b4bacc3d8f64bb9a32936e20e0c0826d1af1500c11e704d951824fa0a0d44caf8055f5bf06e8e0ef2f0617875b2d44a3fba8006aaaec6abea7f626f90b5fcd1e44bc2401e0a486a8b6c2f96d76117e70186dfdcc10a677de2888758c6af53bda8912374bfa25bb48bc8d8281970b38bbe2c536f39874347c91b3193531c456974e02393d35dd57596f540ed9ebefc87af562cdf653eb41dc5ca999ae1cf0ad9a2ee47c9f641b68fc56e289844f5f17dc94e3acf4987b33bfd36b1844c43fd2f0fe91de2283dbbd0dfc1ed98cc8445c768a1c25835b9d6ced33d5defb877a7592a7182dd29f5275b0ae7de9954fc000daab005d3289c1d183840cac1832b0a13b4dd5e3f0ec39ef60842fee868e44b946809f8a1879c5a6ce3820b1a71aa6fe12fd19a79376c5246878b000b89aa0b010b449a080a901a24fb8ca8a92c5c2d9d52bc27c56505202f7e7964c04fb22bd6a8812c2bb759ca10f52402233ca15329bd9ea9ec76129f884355bb677470155d3a866727ab923316f271724ccacc23328a07b327835cdba5699f6dd4e29d80d45efc6708f8b7b17d20dab0c0c074e595a1c2565cb98a47c589ad761ab30d4b46c97a1a4d52855f8bfdb2fa59b63778c7b6676c0ef5acacb7155a1362dd2ab49caf6d95b676529da71b2bf6601e7fbadabeeb5827f782fcc80f8325142eb172660d2e5854c21876f1c40d93042b1b2b6e0e5cf2ccdb6f2cd7264ed7c106fdbe63fdd2d130dc242f1e71f5f9b7647dc2feaaa6162b6fe0cb3825136ffaad90b67bb67d2917e657bb8a623a5f550270072d95219ace90168bebecffd3733402fad12f31fc9894ac6bcb51ce94bb88ecbd5b66bb8ed88d2260523e21e4f6fd20d8db7df6c2604e0a659503426ec9b167a884f277a9860481afbecb69b2c8ade9c270d5f6d064b4e6c95e63d6a20e06f59ef800d07261906ea6541e77af7128f4fb3e6ec5932a46b1d1e0580d68896d256f29baa055ed91bd177cf1b1ae2f386382ad95c1da7d7949d398b6ded44859b9b4af1a117ca76cda1399a1def5085111d69fedea3fda8947c0ea3fa744755123418f127fb2bf57eb04e9480b1e20bbf9a091cd9830ef6aa6589df921d498a149096b1637ae5222c9481a826f34d5c5e66dcc2a977fbf141814c274fb2c07b6abbb973456354ed4de863c3a74dc1ea7007890129a9ee6ac41c026bbe9faea3ae9b1f1bc38fec4924b805143c0734776eded25925ab85aa943d628f17d5c4cf37e41197d1dacfcc1114eeedfa449fedd5749de33cf83add605c9d0bd3e32ebec64102b706961a40ebd9381128bb2b430748b5b62640a065cc0874d0092a4660bf00978b563257aaa4fd9e210549b5262510e695f5987369588eec3f6d0ee034a68ecb25eac0f0d9764fe27819d4039af013727252808a6c2507e2da48403efdc9fb1b27ab8b1de11a4b372b2311a939f3f08b16c77bdf15f3ec5a4a916a179ea7f64b94ab37bba8b8ad8cdd03b3a4e929f832dc0ddae5ec0bda1975ffa2f5d89c060b77c88ae263c3e5d0a157c3b2102275612cbe3d26a0917b525fcb759b958d3682550da4d9cb46d8787215d374c126db9da46bca02cc4742bc5ad984718477678b3c1201afd2c94245fb4a591593f38caa53b476c9af0784e999a50e62954fd2fb6bf5536c74a7a9877d9e20598977c9d400ad84cba1899f706d65666060f991f3483a2cbf8fd1294a7b5c7dfee0338414b7c7d8f969bb4ccdee8f205172e30c83249787ceb2030375b7588d1f0fd0000000000000000070e1c21262f +flags = ValidSignature,ManySteps + +# tcId = 30 +# signature that takes 10 iteration(s) +msg = 0b00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = d54fc0ae94872d53a8ec295b549a9754c675028a84f54c25695a3acb715e1a3d8ba9778b3ddaad25b8c487d21fdc62b879f43dd429dac7f5c303a485d0cbbe1e9f65e53ca8f722cad42c27392f63cda0cf5569930deb75d02bbdd3f971f6a9ec96aaeaee32be48c9fdb4969667744489b349bf480ea1249cd516ade4d4b581e3c41103b5267ba72b8dfdba0e4621a93edc18b37fedc35878d6f2bd2d0115cd5c2e243ba4aa02b95ffe6d3ef1f12801ff1ec09115d4255e202d957d0b8666b60dc8767b11f11b311d9d1f0c99f67167025ac9a0ed6c77c319a5d261ca5416699bb51c961d3a077c51949091e6cf0d4cd261224b6a88158d78a45730b6a86b4ca31380540d3d04228cd51c00a6671fc0036b657f3b52bea56ab503adbf4fad1e452bd3b1b29f27ba1e24d6f302ea788a7e59435ede2de69ab30e356dbf17bbbfe176c2182f870ad9a8a819f5b85587d229beb13fc6d4034722b72de83c1613fe434dcdd26c0346571cceb396e3389d08e1094fe069219a509e59ea17381575f4ab1b4ac79cb6cc64e5dc5897645631e187cb4f4ebbf1dffb083f7dea6bf6b4991a32dfdddfa43910bb526b84c797495df6176cd7e5ee6f42ebf6bcc28fa9fe396a8f72668d33db7821ab5ce54b7930dc7a90b97b9dd6b12f5d370bde4ad41955c5d7c1871632fa717237d4f39dedaa0cc4ed74900c688ae91571fa717d5c8f70837b8c27b26bb604ad340c98dd5d1878ce286b1fe4451a20a88a4e8902e3a1cf10268d26dc6446f7ec48a84b8bed9641004e1af82b679cf1bc29c7f9126f8aac9688ead72e14c4fb18292ca507c976408603bde8ca2650e3e50043ee112714692f871ad28305122149f098535424e4f278730c0be7c1124890cdd4260dc32d63db460399f9eebd339b73a738b58c0a008c857853f0df76789428213f65107c4359038fcfb366fb8cd74f2d955e6f2b30b3e96c70d9100c781f1d6031e210b541c4eeaf30bbcb16ac3c7b21cf1093fde4999c8fc254eca328dbbff7c5c880beb3e295d2924f7763720d5ffda0cce07e8889e556edf40e681e6894fbfc49413fd5b3ff232ac029579ef7f7cf60bd6ccd48d9f76263e948049a217f12453db900ad213e7f3e4fc409710fee4c92cbaea422e755cf51505730298decb37d805d1d333ed46a84e3c7659f187a344f5090bf338bcc76aadaa1e77f726b2b11880ef162f5d2812890a0dfd7b9a21f294bf18f6b447d1dfd92d009fbf144fbedf86e1cab012ace0a2ab31401c5f8f8aca4dc92c3609fc263cfcf56ef858446d9c66383efed916ca0c0ca351b539a7b4110658ba425d35b4c2cd1e235ff2c1c0840a292f23e34ca7121273ecac5ba01715f4b0d35bffec379da93405994ea997209efb895496eefacdfe9161f7c69afe3cfb9fbb3b68e105edbb0b27b1d0514c47d8886d58dc00c6cc20612630b0acea51396ab086c346c07206888257b9af5ccc06b867ceece53b4ebba63cd4a374503a524672527ff66f570dac73094f90c6dbd8fdca572a9388d243f63521c681ad8ea17ccbdb4b1bb215acdbae279ae5ae1908bae519d7398c7418cd56d0804eba259ac01a11789d538d848b76afaf7b93fce336b5bdee63d23b3cd6c46dec665af77a8c4efaeb9e0ee1576fdf7aef9807b4884f767d6c3e14c99c14c726c686ba8feecfd54c14a5234d7ce4ad7093c673d1251b353edd080e30aae264037c61ba8540640aa38101f73ae91d788a534511314b0cc0b4c52911032bcd286919ec56507fee54032f79cc1e1d6cc6c88d9a06215e9f3ba38d5f7bc91781e8cd863108300db6adebb51a790f7a2ebbd8fb116596716b1c7028c8cd9c1fb1db566c1641dc732d41d75fc7b8b0151d1daa407fbd0aecfc0fc484b1d43f68ec4614a32a38864d4acef274c6ebd8c8a6450a29d4e63503af63db37d22aced927a24dc40870ea3a891045a5a77c906b963980f58c5ed754ba710257fadd4f50cc13825a69e3548be0f5e10f6322137943e44de4a5b3f48d62ac256d7309e942dd1f3f211c3b8e745f79984dd25cb9c6650fd5c7ccc6e222852d8160fc8c97b52bef915407e17c88cce2eb560d359a92092846bde8f36f5b1894a3e69efff64fca4d6c0c3259aeb556370328a3eea80c1b2e61ba1f9ac0c5bb047a4084aa0668103a51ab97381bfa7e6a6b631e71a91d6191c6983d6698efea65cde4a23dedfca7e6b9a329b132c3865308d7ee89bb49de4bedf2f1b09dbbf729c1f0c53409feed48a120d2cdf57301974cb05e78619c848ded1fe6fe493dfcb581d5bda8ff0146508ab2d0caaef2fb1163bdda0f57da71805e6e53c8cc56a33d3bac12250ba331f380f090d8fd9c29c94935a685d6ca3567f140ca4278970ca42eab4c75056700bad477ff9865462dd82f7bf05dd0b4acf59b238a9bc9566997de3e3ffcb1778d7817b7196e3d1e06efb4c6f907006837c8a2e5117931a3921965db84f51390bf48ce8b54d44c6d8af12dbb6d171d50145178822fb457baa2b78246540fd9a348fd3667fafe1c4b983665d2bd676dab43a63821bcdad0896723b7b6c33e78eb9dd7823e48e028197cf494b16ac3fe0ae9978b369ae4f144c7aa3dcb5f2263cd2a29dabb0b14a442d804fadd786870565b40874982fe9a1f1338d1c02e286ceb42ba0461a73bda8e2e1304dbb98974f7dacec8d90d6385cfef3f453dbd098647eca6d33e028fd6c0279a090e36a068871a1ac16e298aabc64d4e7d66f3e6fcf74f56ec909d8aacf8db5d9af2185fdfe2de96ee568f78f94910be75ddcbe9b06dd7dc290e7b7e162bafb6a3cf8b6c90a8b02e417b40b632d7c0875e37ebbfbe21f2b60535b2fa76c3b1cadbfb8d4176dcb13b530e660bb2340f276d3be55ff24b29746070bde345fe7bb8d06b7a4dfb85336acec4bd02c95b8819b81d1611c2a61b31f185d70653011f7affa1f6dadb8ac5e832659e09f71322a60770ab18c3bf2033da08fc6bcea35c4f3d00b36d9beb7e5baeb7dd63ebce5bb46b600be9fb7674fc4788d72f7a98bbcdb23c49dc6d75d7223dba5064cc5426c781ecc73fc08a975039558ff2041278116ba8a477c9da4b4d9a19433de8709eed7c18a2bec23aa6c2b20a6cfe1e36e27bb4f4c2b0fb74baa624d3e61715aa9f0188c45d4405ddfb4d31af661defb888150116639156a92316f1d77df1c3f25055e5ecab769531bdeb1f5e75bfef8e0b521fa6df84ff2d30544867bd556e054a85660b8515c82884c46f8f6bba9e7b1bcd7ff6858d97d219acae3328daf5018eb671965e8bfdcd1660785e0377a72173cb26c6db4394a7565a91e119ea0ed09f549edf01e9bdab543da2b1372f977cf7402735b5646514627c2fad38370e10ba0271390cf987e6fbe28770961cdf51d863899cc6ca6730788815496ce52e80ccb7a8e4a4b26642db8d652cf4db330b92ac6d96e7d357432dcf15fd831fd3ae65c57dac7e4ea822a6f24744c2512127fe386b9caef4a82f75694779a950bc33c2e86d50efe6254345793458b5f3089df8a9b21268c5d4031fbf095afde2d9f5d7f8e79df08ccd2e6c892051ceaebd82fc3047a38e6ea4fd6372d3724af26031b5cf9ad7529f89bc45b68a25d56267dd55cc4b768159919ee83210cb0c2a967fdf9bacbdf8b91a2adea2c51d73712c8dd051f17c6bf74a0d1607ea48cba029811a24101cfbf6c3951e112d39acb3522f3a38066f048a0ad2996f846258a3d136831619f598b408cb6db93d4f2abc1875eafbc778623ae0f9750995372527397f3d427d1a81316b448ad9d82169ea3873a0b06294981a604574256e9408770e2e6cb4c0fe67931f015d6b844bdef6f703ee80b62517fb81f9c81a20daadd9988f912578c5ae932899949256f09a26dbd44eeadf93a708ffff3d6edd1aa55bd7e681564f4b183176561437ae8685be77acc1878ce9da23b280c1b5b46dc34c4bbab39a5969dbda6793248e0e2efcb56ffcffcc40332cc54924f042ec3a5008b1ed0db81bb1d7af47e110243bf388bd75af256be280f3fc9486fd3db45b9769420c159fd593eaf4b507a038760e72e65c766a120c9925c4cc4880518ca1f810b52c326e46dc489f694e6f68b13ffb669ce5a1bb399bc9d25bd5d98c2842e12a0ed9108ba5136b865d819b1c0c8fa020d3096935b78c832abdc1ad1b22bbc80e10843ea4fa9412002133f5a5d825f86803cc699e42521a6249b7a5a8742b9b214e6557c84609b1fed79893ee97fae0172626a9f00ca2d5f7a7314ada0037ccdb73a294db5235edcd6e5ff7752794c358494a9c1bcd35046cccd6e883cfe07a47f42a9e8857bcbb0d89a388a55553d4dd120b3d30d6ba29192f76812a21209984f4d288355eac8a5f9513e28994ad8780b3cac76eff15b5e0f4113d1ec4ccb20392c282e14dd52d370369eba9eafe0175ffafbdbf72cf9b99afb23ed2e9a52a96db144837e0b83d31c35518c0becb701c8b79ab7acfe308262028f00cc9bab4cf905edaecf060c77756a0d56625b52e26ca4f177897abafc4e730d8a2636ad2b065bf32bc17c954f08868c1d8a8a804e5e00b3a0759a174675a1a9c1cfd0fe052d4a537592c9e7edf3f7fa1f253966a6ce104a65696ab3b6bf0c26727576ef4a79aeb00000000000000000000009151b23292d +flags = ValidSignature,ManySteps + +# tcId = 31 +# signature that takes 11 iteration(s) +msg = 0200000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = b4ecfd11224c059a2731e7232dda71f943490c5d84a218d2cb00a6bf8f96746497b327d54ef0528952171868270aa6cda099a943123ecead4d61138a5a2bb90380865ba0caeb5fe3a4eca46bc8da8dd6c41c5294f3fddd7aa138e1386f8f833c7271838853873a61912813171b0003578a8db71536a98eff4900a138a1848cc45475fcdc2295fa322b21d054791db116b6cb123fba5d51ed4c133985ced556e20590b102a53567c84cf41bc68102164ece90b87744aa46dd6c84c67ef69a87f34093ae127de228416ca5c795ad3c4ba56097119e6085073e736f0dc4cd51c4877d022650f911c7194aee9ff7f13f94c5f73b0886b889ccea790cd13c6f4c52effbad4c4ab89dbfa816b3ee6bc1e84e3b4d948713df5a3baa2ba4a2fb8d9978cba124d214b251a1594f956c5f175d3a5122ea270a085d11f133810f7ac6b07c51b13f02a590f39b50b85c2757eaadbfa802dbba616c1b1077f15644f1e773fbeab05111834df770e31a460d430867f3f0a1e4a77951f54aaa1b04409dc75c6e4e56063a531c30f2e4529f201a641a2a7b682f6d26e9f18067f16b0d619cd7ad06874e4c5ac7f7f508598bcb044486ef50c1b075f8f879e8c7ac93481f4534e6c982ebf9b16f0f83c94504e68ad99c187d2aace43e1c4726817e156e2ae2c6551f9a2285ccd5608c131390058cdf292e6619f7405e68453842d8e12c08d8f0cbee7b25bb4841a9afd520a4a25f92d00fd65852a0f03bcb70c49d2f95cc06f64312fae537bfd4787def2b3c321f576cda847eb14666cfffe2cc61c35139c88a308d54ea4f7500fa1f1b69abbd50e85f6baf0374cdecafecbbed52ab0d9d72ea79931d78d8c86652ebbd30dea1ad90eee7ab63033f4e0efd14622e5e9426adc9fd40847549c304535a5eb562b89b38a2d40d2173bae8cdcf5f3a049c3720db29967c65af8485d12dac3240c803b128fd89eca7f9afe3e994894c4c6112168cc89db5c924de54b346146a917b0427ca196eb5b9668fe698f678f24c4d612092ba8f7bf26475838dc52e2daf146ebd915f896741864b01f7730d02b97b3ad58eb224148c33c016fbbdf1435e3e8b842f2d42d4d427f0543f4294069394c884669a87d9041001413d257e5cd81354926399361196f40852940ca48a4bb74ccf812883eb19a4b404ceaf245b83eebf8f47ac6b0d00237261522c6166438018ad900f6db322d1bf8efd6ef63a0065a1366d93885b2d1c1a13fa37d17419a9f6ff878b720001c1bb16685f8b5932b75d734d3194b9eb39756a7780cce344be03fe5655987d0bea11d0a00e526c7eb479632a4db51d056ad351ad37f51dc14780b4730662b90aaf44ab5f2e305685c641411dd2b400baa21b2b44d723ed7af3ca3758b850675df9ef5bd1707e90ca1c6fd462b6d000668dd625023bbef9a6c244d27557afe307382cfbda0ff068fd228b863164ded33ea50a16872e759302dc44b4f3538a7dcc8bd0f82385a79effa8cf7db60d09bf8a349dce50bad2789cb1829a6624feca1d15505c5f37aa8e3f08ae1ae2ab8274498546b2931c2a823427c2c5200bb74739953a18b9cb96adf21493d4784e08aa0318066ff0b75ab9427b21212be4f09c3413c9c84bd704537c850e30fb12bdd862ccb1dbd1c31373ab9dec930100a07b32d6c6b14afe50e5b5b8fd2d37a90a443e3cd2761e31800cb16e31dcab74c76323a0f462ce7f7320b75ee4c21e0f0306c67a8f69201454c38a466f183431b155080860c641adeca00260567dc73d5065e1acbc055351c2eafc1121697cff2fda1eab331ed6a3908cb10ce16ca8fc6179177e23f9088f17232425b59180542056b8ea61d7ec0e58d8938fd205fa62d7693143d6f0abbc6cb4f41cdbf44dd67f5d7a21d7a0b7536df2a4609f644a7f8d96b861e9e853bb2c9dd828c73146f1e9e20b46a067e48b1f3694cfc44a256b3bd97801d748ec4de0b3f8ba52bc2a8bda92d79618045ee5ceb20b756421dc92747813aa625839b3578732f2ad1d801935718df8d5e83edfc3c23e5a5e15d4684c42d3ebfa42d013aeff74c4ed05f8ef5143409a9e1c1d8f61baf5c9d0e3b072be3aae7ab9c2317f2786d39b108b12d948a0373634e7cbeda1b35fe9ce694a825d6ad5d83743df1e4e4537ef7fedd3b312d56c0754426f23a865dd667e6896a82e6062a1f5b6c8a60d08377d42ec5b43c534e634d9d85f82b913ca10922cd6dbd2c3d7d35ecc98cb37af974a615831846dfe9aacf9f801ca6cbc4290bf5e8d6bb832df0dcbeb93025baa2ebd7f3b4941e617d5437fea49d5f64d78c2e2b422bfad3efbc4bd2572cf6559cfb7001e4886959ece69b5305f0799cbb871b540df18c5c1935ddfbe17c491b9e1e82c2c9a1fee6879617463f60effdaefb51bfe749ee3fc2905a3a9026e087c984276a543cc3f4e7a6948c8d92985d24edde89b36ee6d9b3d7e300936548c34436389f4e7bd055f26a856ef9cc56de2733cde47fbd173a9874b73d0b8ac3a9a09502c2dcc18585810916a4ba6a72bfe94bae53767e55495207c2989d77e0e0f07e707f66a1efdb93c8e149839ce72b31b4e17d616ae0a674cb349c2d9fbb5c72b833e7b7916246c8ce495b3e1d7b199ac085dadfddb2bda88c8529474f245797d7756251344305891b098c711dd6a74d54036b299ae35bee1fe7284c9ec11bd8dea6b8238690bc40648036d56401f26b92584f726de2445030cc9865545447abec4b4e2c0c06681ec5ec0243d845f35dfa8d80127fc2542cc04cff53842e977a3e9420e6f3303f5d1c11d7d09c15fb229d0d432857987d6ee4440be1509321511b8cf88aed7cb27c1d745b672492d183815de62f1d8f69c8581d7e6918f13225f215f313585aa597a3c8876ee67317c0ca184bee5fdcf08ebcbf43d01b0049af2455bad78bc8c28f11252bceec019032e4feae4ed2c5d0670f9c2b6d5ee96055469c25661fbc8c09e1a486013b46cfb0c0eb4774dfb65b8e3688a02cab987923a98e7f75b44261d44c4bea44a0df4ec2b8186079f3557bae7c951009a64cd6bab08410df3f4ec65b58bfb8e31c3659d1f4b3254386d850385eb8cdc19df92f011d86ce13ee526bc524bcb465ef1aeb8f08e809273034be71d95064979ac196d9c53fbac31789ddc3b3eae14d2c1e1730e2f5b38fbc352759c1f573ae742c6cc2b15fe41fe6292f3856c328814f7d70343d3320aa754f162e530e666889fd0187a65c48b42bc2cc87e79d17102cbf66d8564ae5fc71b92ca49b04d1705394ff1e6af4593792d1a6ca5b00e972180857af83d289f6d0aac81e2006eb40a8d790c7dea7e075404e5e28293f4385edac77094f2e2dec38a15b12894787bbef906d12f8bb4657c7e3e2c8767a310277f63cda040bdc68c5340caa2b39b7579873cbd593cd81532e628ebbfdd8794b4fdf82d6c6b20d7f6bf157096a96a5d327a972faa5cab92c442e468cbd6705fc8ee489489cc687777377f87b470a84209e24e18150076a1a462a9572fe037b8a69153d1b7a41b440cdcca5a2d7b4d224bca60c7184828eb519e77f2c98b4567f23251bd3d01d3ecbe70eaead160681053b4a733898d74206bdc25eb6fcec2a65d6a972c680e0aaaa1e8b1e3ff095978213d242c6af612a62dbb58425037cba5209588ccd3c11962ad47a9c4455b98a626f92264a0527a28bda7f47e804ccb393caa2590b957e5fe3527c0d5aa2ae7d931fbdd2ebad07cb69be0d5179eb6c1343b3bd4448cfbca6ffa1597678f0bf6e9d2f81f4d6e3a8a9d8c9686826c86415ca025dcd1fa1a5dcb3ca8df92b2ea76101c484dfb1fc58d35c1386a29e588a6c80538ddd18dc44fe4598627031ed1650789b3d0cc1233775e1d45e97504d33043cb721a6c210d6e4e6b70e4dd9ef000adf591e465e30adf27aaa4d8c255f4523f1dea00e9cf978687870e8b75f05ce4fa8dd6dd692e936dc2d48b410d3b626faf8ab013f7be8910da69ae37d1ad99136c15e0e8f4194942a24ccfd55544ef63e692f1d4e9b621b28fbe8efd22920983167daeca33e0734af9aeb4b77af4cb354cf9489676514198a47d8e6d614a76af5bceac2c32799ce43cc010fd421468f982bea4f56969953766f629e43cb2a0fbf3d095f98257a2b6e3ba76f73415d0d920adf9b21bc102fc53744f661d42a9de6feabe59b2e273733df75be8ac972651818e1a72260bff1098c06c572179f7c5b0c8e5e1c9040baa4dad473f96b71b25d9dc16ae2312683868ea048f85933d844b7f2fb685db40ca89f24231b14249a3872f313c14124ec1e505f14c508ba483e6a4e559c8ec0b3dd7ff0446d14e4fda415ff4031fea1e65de59e5322279112ac4f64664066c4b5bf5a08dc160b6b313496546b679eeb31315500d81504706ae14ba526009a84b7270d9f9ead65398278b6385cc136c69e3e431843439b9a75e8b44678fd38facd65c638a3b1245a78bbbc26b85473a5569c5e6e0d2499d1570203ed563540096bfff6208502b12f107894d767798b5fd5ad7389bf55a6a90733511bf5d6273f570626cbedaf5de00c5f905fc2dce53f0f90d67153492082255889a9ccffc83a1af2d45466e787cd3dbf5f7fc181c2024454c507381babcd8e9152a6590d6f3f5143845565fc9ccd10000000000080b16232a32 +flags = ValidSignature,ManySteps + +# tcId = 32 +# signature that takes 12 iteration(s) +msg = 1000000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 5fdae986af0e453c98062fd46d281750ab398c0d9be681f09d8a22793a5fbccaa0982761e89509ed0427f0ec73c8f9b4b905dd1703132646ec472f0908440c2e21e690e58ad56c3c4da022c2459c059e9a97709ff8327785011f0378c8e5c14e3130ebc43b2481b016a23ba76e61c2e0da8bef8b6424eafb1fcbe6c1a984ce767b0dc9c824ca1f9a5e8896734c3bb2e01b02bb18138ec550f343efb45030bbd2d034e859145fcab6cf42d48e8e6fbc3f9626dbfdd42044b86adf6dc6df412f15f51261373eddfa7ae848bfee57878380aae7d75612b0aec5d8e1f4f8809e14bc9b244fa50e5c345decf47c597d3bb0f5f2f0e6bfe3648bf7c4ff841d4861a3faf7cb09bdc97ffa37fe75fbb79784e858f34ecd2caff2ffec7bb53627f63bf4f423a290ac26439b722e859acd4fa61673deb275b50a309c9a1b07c7513d8718eadeead0703e5d4db41618dd23901d1abb77c6a728f5565c911199e056dff8c3c0a8ba7cdd05df179ac37292dd2597e38e17eb2619472cfd4181b2b4aa6bf649757010cc5e67121bdc70454d429a8b42850c1dff199567d700159abd3b485788ee01d71ee7ff163c4557f688fff928c5974f56cbb352ba8b3ad07b7ec3007dcd606b4ab84d42b004cd2204451d40198bbb023bbc9d3891d17080fd7d50e282a715fbe97f787a794d0efaa64db07c373c257b0770fa0fd8011fd15ae4edc1d4fc69187385634a48b7405e6c1a473c5640d5125c80b60fc5e48d86829625195a3fdcf6ed3eaea76a1577845d26244e1dc679fb0386d46851e80b130da1defc0c6797036dcc65ec7e0bb485d1f680cdebef97f2780d20d8d664a90b844e1fbe6e7126d15edfcfd37877f0c07d483287624b38000c5689e77fba19d1be415da83501494b0cfb15962243798f6f415206f77f3105f20e6dd73887e7ce26d06b968f3eca04b6a49ed9c31ae0561cd1418268b8405cac00dac88ba433b98480734bf981c4cd74192fdce032c41ba9836088b9e0acf8dfa97c085cc60ecc75f1f5b91738938c2a19764089ed9d81c315c1d91b7e3b1a6d3beb93893e31ce32f97e8c8b837b26e07b523cd857edaa268ede52e0b44f3e54ab37d45d53079cfc5a58a8c992d683a37e9dada046557adbee8838e10ef464262cb0f59029797b6943b7e6b9e0c7010dac5605d6d581a496780e6e2eac7b07b95abcb6d92acf293cf394140f0fb16302dcf94992438050e84a66c236f21b56a756ed0324977ace2196ff58ae2c8db667b0daa54a2d42a3920d5fb5463cb8d06a2ff730a9f533f7171ff470b8ada56521eeb0b5c150308450c6b3821a071fe079925f62320cadd8da8c180fc8a9daa2c8e17561b21b9fd4e221893ea6553a4e61c1fff9fe8ab25488ad1c0fc3521a4e236df4cf15480df5e2b75d67ae5743fa537fa06575e86117782f912cf14b9c67a461c34632fbef9b1328ac76a8dec3f442541e777241cb9eb39dcc009e87532cad63005e5e93a063a32012fa889b00e9df5a63fc6aa81e1cf8e4d967f8036b59b1341ac3502da9813bcd4401e516b716cc2b5ac04f5e57895e39965a3a022f408d40982b2f9e08324dfcd060130ee5f700946e09254932d85b6a28c7bcd5395936f08ca928325f0273e3c268883366a662ebc9a7f1bcdccd0acb6c454f79d67bad0347d85e5acb01bf3413b6dee73a208a40caa15d6208803e3f9cd708ec17497d7ad77eb3ce50353b5cb2b9ac447ef4d58a9e60837ca7724629f32dd894a3ffc3d1e7adc206b385b82ea0bb478f1ed7f675177787f92f1aecaaa2255ab5b48a4f60d2691ec774d3caf8fe5d5f2056f125d240bb82114cae0ce31e2f0fceed910fac6f7de9de4da88e8149b4b749979d37dfc3112e3ccab549be830aac9ae053d8474e1f248ff0b5e598731dd63cd62ce630b55933859137514e84ff5a4059c0410f564e477a1694ed2eaf3169ee8a9ba5069922129df8a94e4ffa278f4fbaf52a605aa76516938eca5be11142bb83087e6def74264e7e991c763e5191492035f7705bfdb17c22d4933fd2509dbd25840614baccee3bd3bd59a377484b55a09dc517fa298dc7f04a24304dc91002c000ae61bd5b75242c0680988d9e7e5c05f44aff949ea3addbc4fbc26a0ce3ca9f3229a4ebcdb6c754fe95748c2ec479b76e311273c23a1d3d4816de71a9bc26a74153c624cc449f068ebe2cb6cee7bb5e02ea4720a86a00a5e0883f4cc0a6d967596672646d439aef75fc13e0c4e0890ff68fd3a50efe3943548b446c2d2f89a2b16710f22cbaff9b1cb501675902362b0cb5f1ab9d09909952219eb933ca1e1dbf271a0fbe1fe40c928fb5d1fadb935b1fa84cd939310aa1d3c30deb64aa7cf9ffe7301bfe602ad3596e07e87f65e53b23fa5017880e70053f65aa7345b94829ee3db131813bcf76d0acbf69f988e88ca3f49cc4311ad327edd90e2a4b86910880f45c16c9ba8513fc72afdc4f4c272f052575b71e3de70f07161eda29c83bf83aef0fd46f11095cd4fcca33efd8cae8f8c2d0787112723cab9cac9ff9fa02bb45ecbc9879414151751bbbce8cad5c60405150e0819d076b699d9d9fb62505a6c104587302fba8fb17725e80e9732563411e576bba1a503b10ac97a41caddced4fa591ef6980aaebe3505df212201fd0d892d15bc08d6501df3a3263ff810dec62adce7262c07360d1de212b1684b239050a3c87acbc7025294124f86a8f35313a97ea373a701ff4187a7eb44e30c282c4b1c30702b442a606aaf3d5263716ff0fa7be107d0874581703f9ac04b6f8169872e94100ca1b11e44cea2bc63f51cc1822c65d6bafa8c639c8f32b4a60c928fd049282dad586e46cd622fc34f1fa5ff7a67d06a427fa22d05e485394344a1b41e8aca7c624306eb3a6c9ec319bc65d8f878b1badf3a4743ae1b39ae8f1ddba00bfebddd149f5b20836aeabee2c6710aa0b128fffca57783bef39e66db6df7b4a7d7fae067d3d65c63b020105437f448d644f4b0bbaeb0490ec5a337013b4ea5a16f82567ff2588070afdc6d0998ac6a11459ca7a8799dde3ec3411beccad252e897a360e1d4ce9e9e0a82c57c79a24abb99ed5190f27e43144f9fcf076becba38afc9640f9d18bb67f6d4b5652bd5393c8483ee348a2ab3431cc92dce30d0f069312a671fb283aba4e527c72781f59fb7f6d1704a3ff80d49fb53ece26f16a15ce40a5414475732384f8eefb51cd22b34b8e901c43eea8604354522c28031852da10e0acfe6901a3321a275f86f025459ddfe1d90c561bdb132ed4c22209e71728300a7f5ab0c84b7ced352ae3321462bd75f6976849448018db9c2241d2cfe684cb6c3678de2f1dc91a4b4b6c2572831d4b2036aa457476f8f19be70e405e2cce6e4e9b9e82be48e078216747dc6d63359debfd2fee14a0e8bc0de95a381272d3accd94617875e9c08162817d5294549584ebbe8dcb36d94a6cdce34e4f30c52541d425422ea0e2d1c00f9b381d021ecad3892a1541dd81a42a1eb8a7362b5a125651db02f1992efd6f9515f3f1ec66566f91c1876d159c61195383a4c5e4c89555fa026b5b3bcbcd34d8b6b0eb026cfdcb8cebe45884e499f7bd1f40f1e4a2144533f2d57e1eff0584805d5beb7d6ed7fe29e088379d1a7ee70805f0f8133d26156724d4ab6560d15f49053a1c8a8007a8eeab8f6c09265c4a545ddba9eabef6434b191d87570ad3c88485decce9cbf52a11895aeb82dadd9921522f368843fa7e246411cadf0fff4b236641cb516057f102e9875e9363bfbda62c5d40fccc935eadaad4da3723b7ba6cdae6cf88b3d14364b6d30b435627d7781aa1003bfc4c9fd145f6c6e82e58df863488d27e7b219949d554c09124c582591305a80964416a18f70b563a761ab713d4832a1780300c7ff01cc52be01a60ae53affd3cd4a0c19eaf60a077f792378be2d3c958108bc068760e1b920119b311b406a5c59658a9801c612140d9c8b15461701ae2ea1bf16ed9650d0a26b52dc59d927efcf8174a421409877064d17ae3bf17831e4759e3de408c616c9565eeb8cbf83729669fa7afb13e662961db2622136bfbc69f1a80a150a604c38bfde2c8de8eb5addb54825376d4f8b0935b6a1f34d2a82a29c8a725dab50649b796379d61e5382146d399df86de0fa51875baa1dd2b3b1490e34578dc9da393fdf26ebc36ea3c40b760e526e30280e05529ae6e5f9f70a41a6e36da9f9642ea74639a5631a6bb30f17f3403144d9b503d921917628a327a5422f79903a205f7dd33a34e93da5a553949e25c29f952e3b5f8fce39cd625c9d34c79d414f104a69532b4596bf7046c3c6115b4de3dded2bc270eb4963db75db38d73f2fc3719dee8730c12afa6cce1d867d7e949d7fb607e39bd2b09c1e80fce2fd76c41669ca73b9bae914f42a5a5903327059c7bda73ac88cdcde315d5de897fdc188b42ca521ad5d80e1a6a95c729f58e921fe2c258fecbe03858412cf0d4660c6fcb6c5b16be8342c970bb19390b7c393211ccaf35a680e1da855bff9c004b067780522c8f26770559af10a0fefbf887a4035c7456a368e3d9e50ba1423039767bdd6482e61a2e47829192b9131635608a8ba74a4f94959fa462aec7e6000000000000000000000000000000000000000000000005080f161c20 +flags = ValidSignature,ManySteps + +# tcId = 33 +# signature that takes 13 iteration(s) +msg = 1500000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 73bc2954da39fd7abb7ef32f531cb8144198e50cb52dc4ebc9dd5ec0edb90ba730716d93157995e37263b1456cf55882131ce6d537f10096dd8500d16166de80f5bda2f94463e8fa18e0b970871e4cdde1ce7d3e154d30643fd4a3740908fd8b1249dd3fc7da0a5ef591de4f308b44daf5018e17278267b56f7df5029a130c736f56283d50f97ea4d817eccc6008be603b19a70f1526e1d3a2b1d97a52402eada5f3c7898eb16fa2438b0e4ba9cd745b1c94f0a5c4d0be6ba5ba9f0186feb4f741260fa0f441f1839d3264150cff7792f5269bb2a82cc360e30a15f61b2568467d9c8d404784996dedbce426c71001748c691cc848e776023cbce13438aa0743b6ed57eb614bfa8fe6b199a53207c45ad762ba80efdfdd31595d7bb0da2d533aa65ab0ec3ced551a0b6ec2cc8a216944e670d7342cfa367542e86edc2086dd14de5c0ef8b38d677379fa986548bfd69e84bd892af28b4028687ad8c94f55ed56b50d611ba6de863c201b16b0b9de779ea393be40a79b6405bcd3f1f8685018c8fa61280289a948831ef7963f3d30f3570855e58873b9f9f02fd344f8362ef65f723fa0c5b8d628264e74cd4fea73ac6105be0713e80d52c5bf55c21c1f502d73ad0afa6144b6bdc227570b85b47143580c736fe4f2b201ec4f4f78efc3d4afb2a4d81c8184fe36011f7fbf197335ce1596a0ab39f8cabc02bc77ffc005665dbfa356b43ce805fe0dd2c24a9e6c363cf707ead215ae245963c5684ba85b55118d6e8e55c040012158645aa0d0004c184f826b7a43a2ce81a3bfc6c4ea5651e8dfd10fbb22b371d03e7dfbb3aa23a9e604d8c452a3e065afc05361062db3acd697e52614baf0afa010b7cce9e2c36d8e41020951154695bb13bcdbfac5eed9bcc8f0701ec5bd6393d83f828d3c85a591bfec897203109c57b87335c48ebe20b8c963ecd0d973c2cce02676fbcc38febf292616b05226c523a4bb6de9222de497caddef9e5bc65fc084e152f299538479f994dc79e19c806f0681ce43fded54c634427ca1f14b691aaa1e7294741ab9f86c15a68cfea5f5afa27e068564353ec51a39dc220ec0636a455604671d2d11e4de86b5d8b766b872563ea6d7a507a5c82a1babc6dee32af466d560cb9c9835febb4aa2d07d7205cec32209df17475eb635861e595b1f4cefbd9540aab01e1db317fd0ab6cf56a03f12688257028dcc7f344a87ab0f16c2ceb3a7c3cfab665c92a4b03a423eb158ad7d3a8958beaa417b4fc71948ece95058b56b9fadc25e9f3acda7020cfe201c1a584fcb2ef38c9b524941472d4651d828b17e7dfd31f022f2430bcadf48414aaeb49c21e52f40d5feb0e9216be4031c35f4b8cc6ade2ef156113fe63827179b0e6f30465111c7749b2e99adbd5e451f121f6832a4121abd9510a752a7a4a9893942d04abf4164346f4fd32a01ab7baeace93f678333c4f27889facecbf4f41ab234fe2b24c0de9cd58ddc969d53b5c7aa6ffe35e58dcbaccdfe9ffafee5b3f1d5222e6187957a6c653751b631f439b691d5f2cf91808f65de831e4f076c37b48fd9f96a09144ecd06510e3093429b37abf729e09e1fdc8dffade760a584cb6ee668a72d4619f421d5ccd663d379e6f143088c143e29f22ae9d0fb993e8447cf44015c36326e0efe6f16c547c3a212d1dfaefe654dffe6b231c5c1d8b3288e4ab38880b324249087822a32eea1ba798d2e7d204ea86a990c7974a37df998bbd7bc99d799458b231b4e45cb37dae19b46a95f597257e75df509b2f3a7d7e524134dc71eaa13ae8d585fa7cd45a6ca91ea96085e0092035ed9ee335fa047f4671d744a7b559b52a738f0d20ce5ca76127ab9d549b869a3eb6b66c57c1d317f68f3f6768a7eefbbc9ac06b4c45a6de768aa3b1cfa9aa19b792c23054ab84917628f94ab3dabef0d6445ebe8a374c4157408f1f84c33163a75b8f4646637dba50dc09846f1faf64589cfd1e5124f6e70770732df2bfd1102197d9a7f45215253cd9d05b7eef329c36a6fee9f3f38050658112b48c22c5561842ca24803b96d58fe1f627c2943ab1d9366d2abcceec4c6e55fb044e5a401d032f04f7ef2e49fb89f67da3a619ffe5702227a7ab06970f5079549dbf6bd4416722788805d4682374c982577b1977680e1d0a6af0e06ffe4103587b41f650a85db8eac9a009dac1f9f7589271f6fadf60c98f669f70989a913123f2ded18b2966abd257590ebae4225cc436cdea6430a3167f9f3f42f5cb135e11cf31b8e2e386ab51b6fddcb0e30aa3f2d8cb12373aeb8a364e3123fff93efe83fa89a44e97ccf4f9b5a107c1968436d8a08647acc88878cb7438b7f5545f59b2cb79e20ab8d4750243c6898859ee1d9d350b686aed01b2a6fceeb62cf9f824b6e76d57cb6f16566c4cac2aa17cdc8b72a2223c2f92bec38b0f481631d0096b2ae449370318bdd66e196537a24f0ea33aab87ac5c94bd0645824778cc329e76d5b38482d126a335573cbc81c895d225c3b724fe901ba5ee9052655ad9c059412d4cc25e00444e860f683558fc0cadcb33800e67c87b93dfe9adeca9aac911391632ffcee4a3ec48dcf03842498f674a6a8f689f058d825e931673d520700e284d3a26f2e5a3c3f2fcfee3d49f09775514b837dc35db8ea09e1db53d548ab580c4049e16327b5b0638a9f6e3513fc393122c9d9156ec532d462788a649f79bebfa626e38e261fb839f560f5276b36e462957674fee0094354dbb6275d09d08489dbe1fba5936d1801acd87dd89ad608d33f28a65d066f642117915b9acb32fc7459e15180e8ccc579ab2234cb64c6f4563f5a696eac76f158575276f773e0138545b904feef9cb44e1a13d3004245a33b476ad3e8170929e5e6adc68a12367d090091f7bca5493f7a448e88eb4f13cffd7f648ce368b092416f3b577e16512bb54dcd06e0bef24ed69396039741d37ff96aa0f3b7dad92fe7c67d32ec3c5d936c410329445c4126e027b1691f9964e39910ab4d1a6ec84fecd2934ea9e0f74f371ea279d50f70afb352064804d30fea26e4ecbea3eb6f96b7b4324913c71a2db4bd4a8f8459408eee1889f8ff15cbe14343403ffbba1d95c8b050f050e3bce3f394ed35bad88ce9e1235b3dfccfa478f730ca162355f1df0bb4d1205c8920b5b090851e9798487e3a858e8ae1bfcdd543209b1f8713fd1a80f6f3c8622c10315c1bf21c42d456667e64b1668f96455cd1281e3d76d3a52149621ec4beb651e245b8bf1f3f3fa770368fc83eae60eceb4f4d5e2b70e09a3015cb3dd2be4b307fb5b02db05a9225b6c21047b422c65ee788ccba14c86564f7fd6889a09a258e03ce3d802d19b33def3d223bd427a7cb4d9fd6814413e290a16bdda7acb39c477cbccbbad8c664aba0c97622e65e04c17cdcf51272eb8cf906ee15cd7ecded36bc66139800a4a7864401fe328f8df0505b1e13bf3bbad8b4a344a292d55a17019393e4f0105be7722837624b84a183ddb9278e9121b2ffcacc08456646653df5d5b88e77f8c61e341a869548ae1b286ad8b85ccb763e3d10da9c05e895fd49ef02ebbb60621dde417678ce965153284053d0fe38da260effb844a62956d02b1ec6e5c8ea661ac8775a95afa1861cec82c396a7ce98e5cef55429e3a4d239092f090ba10daa78811e59e9c094d4bd805ab89b5fefbc6cde6fdcee6f21b19c979e237a273e24d9db1d2a7aa6cb0443b5d8fdede41f5203442e658c6f9e63383407a4d67680b6f486254c597428f613e9478cd2b6e765029fb73ab72add5928752e558506e6ca46a3ae1abd4d2aa5f5d7b6556d07440b09166b0d93d5a939e190df2341415a132bbc0b742d3acae79d507628e1da15ae962ba93db1ab75e1bd6db1e99264e68db450bc6d242fa131b05fb73c050e6996c4c2f2ff95a372f12a9d22cd85eaa538db6e7096b765d730f7a35241935fcbe23508b18f5e61789af328cc00ba9f2eb9e004afb253317ac9b0ca2249f63040ce4ac99905508a6d349df6e96c6e675bd3acb3103c611aaead2046c4499fcdb17783bdddeb3c2c75553d338b877f6da0e9d12452943cf6040988fd036fd76deb09ebd8d24e464cad1b6f8d05ad9eab9f18c15b1d6a1e33437e874beded7ef0ca0e27f15229b6746cab74d77e334db74c013e45199e6b0c33e6da136c2004cdef5754c5b44d67085d9cd732bceb1cf20551fa0f183b1149caf1e39d88d6a5e0eebad539c3ec63ae9b2017d484866cbf6a9f5029e2cecc71954fe11c0fee7b1b36f8d18a0f138e54d45aff4f98aa922170a5d3f81d80121a29e6b2c8605214e6a807071675855099f305c9b0041caa826bbfbb216abf05339cc96cca1b143ec278ad3a1704653fa273d663f09addaa860cea934821e7f6d0d005ef1e8dcb62649907994c682481923300baafcb997150eddc0e3c1ecb6d911f51979e04cce3d1afcc40ad70eb0f3051189bafe36275bc313b5585126acdc44ba14a7cf6864a37a407069a266c252c121475d5132492be2120a43c80112360c847eb128b8b4b569153ef6205b6f24d0b5b641899b7244f0463324167071c91bb0f5f70777c8b92aac9cafa13181dbfc8cafa2485a9b612379bc72ebf2d3b59656980d200000000000000000000000000000000000000000b12161a1c23 +flags = ValidSignature,ManySteps + +# tcId = 34 +# signature that takes 14 iteration(s) +msg = 8e00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = f35a6312f8a053655499f4476cecf4324dce61e0e98a6fddfeb391b714201119964d2891579c9ca0cb74b2850623808d9c2bf5cf38bfd051ec4acc1ae827b68383622793527e0eb3fa7be83c1f72b7abdd0073f7ba4244b7740aeb5fb66433847f3c8882811421a86a55833b05c1c2f24949ee29332f5ca5e9fe97daefc85ff6e9636b9d188c2d172c3f9644df60208fb298ac2a08490bb611828f1f5cc93c687b8a6f7441a8995a3cc50e894a11e9fc7f6dbd4d47cb087f7f3942a92ee10899d56a65d27eea66ccedd9a7722bdae4aec8fa6eb0b45be84dbd4c68560fde71d04fca514e10bcd733de9b3f99454b13cea8453e2c9cc5f29c709f2c131c972dfa2f47983d04d997ff217bab57d250da438b13ed640f3ea5017f78a394f2637bc708e0e7db2e5eefb18bb1c68d4ab59643135d08de302f9575548a2239bcc385849e1cec32765748940a011daa3f208da13ff97453e4d08fb668caa1a282530a0ff8e0d9cac67235be0dfc06d0fd5eb0ad56746191a84fd5ed68aebfb3f3d5fc2b3a391cb62958c471cf9533609bd564129aa6479f90c2df8ab3d5bbc51d9ae862eaef0e289c81fe4988ec757170289f5beeaf851888f1bb9b349d6cabebb5dd3d7fcc25c9e4dcca721f0e395918a69496c1e578662e3a42bab10070ce1c01f61cbbcd1ea2fe7dc18c318d649bb663fd7b6022cee490de54d309b0be08121765082bb5b634415cd7d16cd11e69f12d2bb927529554cc6cd2ea48612e93f59ab9fed4aa2a72fb78a7b73c39c7bb1c2bc3574fc7e2c209b64ae2c2e50781ff24ae6761e05e65f670f7d069072b6d73a479969b0ac345a5f1a214929e6b783d542753c9075bfb97dc72af2dd269a0e0a739430b04f0d6988206974d747df8d07abe115d2db2670fd66c2527f288077e49fcf1dc627464a963f031f438861bfbec5e21d973a5d7bb0ab20bc52ca3eea5c9f6fce2339e0a65170f5f7fe8c8d0fccbb1d5b8c5a5f7660d782406e18f75571e43cafd66cce56474b6d933edf42b2f01408d919df23334f5caf47a96b68e845f3b4e4e110e3614cd477ded26f1bf7c92f6ce93291ee809e61d48e824ac80317ce49224b7319d8e4e3c335fa9788f1aac31a3fbde6590c22216ee17d27e387805082dd3259ff68c162339c57404f291a7dbdf12f220575335e189d2c9536f412674e918d4e4d5f1761453d6a080b766db3fa486f961c111b1e661f28f3eacc0cb8e21f34fb143873113ad70331e2a915f0fafe29c0567877a8e947e13e7e7c677af3fb1637805c37877f994ea93cf6e2cac41817140b4721ff48e9a569bd285a821f5aa389f6e5b08dc2be22da23a31610f7f37dbcfef33a3c85b2975727711eb0b54004f5fa0035416018935add492f2cdc00cd367dfe6b4d16829755dd4ba7e5f25151bb9f02b31c05e26fade8b32e7c9569272887c8f32975fecd9c725ad92ee08a819e2f473c800d10c47798e921a69372b6770e664224f4672265d0b659680b0cc83f0724ff727f723d7022b966f67ad5242f312c5aa832deeb9a721957edc71d3cff4b19023462c9114c7341aab6d6f22bfa926128e98cd79c2380fa9844374e67b7317da9478add4579ded5fac480ddca2b9e19c4679447324286d7dee578e7c0b1358f2754c1840843189b45a8c69702f6be6afe95d4739f205638ea9d2059587724807d8f5033e9106791df3e1056b3b9d8972afc72746519f453c3b51a754cac0713d440c094f4b707cb07fbece5eead8a7c82fa6949b6289ee41e1da5b801924c24aa85b30c95c7a074f464c320c836df0da10898c912ba1b3b3bedcb64fa1bfe78477f33f5d5058e306c3ad6bde51908e9ca8dd5f4663185b1ac46cf6ae98059aae95fa0967d775f915256dfb90f80723c59c1d86ec4c700ba795ac0c8dbc87d9616602d7d67bd0b157fa9b1040c40c71e2c2b74d673ef26345c825baf86dc8ae8307651a14a06a341ed4a0d570b77c297c012740b2d678b6963ae1058e7b514da045867c42e04638b9cb361bc35770112492bc457ca1baf1811a8aceb3f622a770bd1958b5312201d9c2b228763e8eb0351a1f6a70bf2b8a746df2a4a354800faf6dd7299d4c70d0c55560f20a71b896553c731cdd65e1a8d83145f8c89fe587a299dabd29050fbfbc7dedad1aa67b96970403983d76406c04eb72dc8a77f4af4dcbd640e82e12628898345216aa350b8ca67136e4271bbd33670554dcec8d3e9e3f05424ef83cd7003454a9647f864ea143438519b0478230b794f7635a960ecd17565e85f2163061ad947bef93399f5f0977dca1bdb4999459f529fd7eb97e426978c10c20d8e6fe9f20aa908a2f734d88e0ad68f804e7698e69d065caac268e73025d269d06775047c028e1030d163730afd474b47f2782bc9d21af573080daeeaab9e39761beb659a0d1727f91ac9e28b1b332130962ade9a5c30376b23f3874e1dd9536d1c4db6dcff16224f1c6a98d4705e74a1a75ffaef200cedd73a79552783bb3757794c30c7ea0bdcb8b504212d7218253f777250369c8a65b321ff719d3918ad54eb1e5fb9dbb5b0a4925200f8edd784d1e5d5ddcfb20ebf6565e1125a8a3c3216ef32a2df02df47d38b90a45edcd940095d8a672bfbe505304cbe438f74437a34cf43ba2f6627c56f3f5b7a818c7dc754424eccf2446b0ddc03bac858ec34c1aa484738bc8bb6078adca3b2898cdd117846666410c490b5e6ead1e1fe3c231bb223a245a817d864a70743dcd3912d7011d70eeeb53ac1c0463359fc87a3cb179c7313cbda432b85374568db7610b97250f56a82cfe6258b4a68ac61e9dc281d5b887db4573b9f7a01503f243403e3e119f149ee95824f8370c64671b2e751b2c211c10c93ebd7fc8847e1d4441b0fd603ac7d8f6dc76e56351a26f8e9894f5370abc816d182d7a5f079827b095152e7886f087a9aaa5498dac8208b53133248f493fda96889a17ed9629a7c4b9e103ab59662a1347e0593779ece0fd00991cc9e83990e8c673573017329616cc03e90353a2eaf89af0b98731b5cbdff28b9e0af4478b631d6fb3748677391c3dcd342a80958b5e3cdd8460f4a3ef7786ae706991569bed078bd2c7a8902b1692a844f704f83477c456499bf6f743a12ef9cb1b560d060c0f864c8d84d3fa0162e1f128e19e16eaf230351d3a40999017cbdfd182037977a3ea8847877a1652abde40eee28bd9890d3e29bf626a1c7c5a7b02405e84be97fc9f3702d65854425c57dd85e7a680bfb16703d0d5c13a76696f15e802f2f0c757caedaf0844618520179d24d3f06273b87c9aa3cdfcf8ad05877387468d937904e2068522309518dca63a51c4063872b0b2089271b96dc1c62aca9423a9323295f2cdbf1d68e7600406abe86d54cdd1918ff3d763245da9a6ba4ac791e613ed73ee50aaa6744a2427aab021e2ef24f953042f6429fc451e39e796f6c7d64b3c40739b007699fed1c057f75d2d4659396d20f09509413eadffe78c75cef3e9eb65a12e332edb9e3b2e8e64795fac153a9f5bc30a7e3d35d65bee29cdda5afd93dcf7f5f42e4a448add1568d199ffb5774c3383cf8719bab694c22e5e3986dac4a679f741da198a228bbf4766fc7622ce5f517bdb900068c0b9b32cf4c563dea50bbe7025fb0e436ea86b0a8c2f58578d48f15eded8d19444906dedc2b766c376e6d0dfc90d761799d02afcaedbe35c9a30b3d302e4463186d9cb1867de8122009d52ff8fa8549451b438a379052ac63770cb04c8a80ab894efe019f414b48bc9460b33fa51978fdefa2f2701a440dfce6a50d92ac7df6b915314f76d7d79636877dda24ce3356ce78de29fe40f2ae4104712be865b17e9156998ae7bbe937556cb05cb155a600d303ef8df20940563b583bad366a0ec1ec023aa685eace86a495e5bd63d83b7d68039d18a83ce1ba5eb78f75242822d06601fc082518f59990e12b486a1d64112a80b80c6b0f4f3d5efb82bacf1b48857d06c305bf6f6eae815a39ca4753280412e340095d53379a0288cc977ba069962241bbcaf288468b9abd23118d3eeadbf706468e41199e57e9839b7c0bc1763d1b6a7a42187723373ddf6c9aa70765b0363dd4d5e70c9a9cb682b672f95dba7e156ac11cb3c526411b856152d124184227c53e45141ed12891d3b071a453b5cacb6bc07daa9404efcdacd33d7381b95ded01a2e54a7bbaab38096c08cdd795378ffbc055093e0602d8cc872f1a0e20e1577b0459953bdbe606a0147462c3e790e093c0110833f10e71226c1717cda055ddd82431ccdd7309648b5799384e4d776ce800ce7822cba4c2ef34045149e619cddd634f45fbfdca78df367d5f8c50392767b972ba01fa69b4907f1a610222943075ee385382652cbd5cae573f7edd8bb7f5f79e80eeb85669791f444ad3d5a9754f1e6520d27f563341ec0646f8395ee03e89b091a7e8bc5265b9f06040cccdca852e1b25cbc31c2a5b65b86d5ee855f00c7561c99cc8a622e8a4e7e2d238db3f48201dfbc381ce1ab55e7d6d0a1c5c5c7de5b095161b90a2696907662e3819aeb5a1198e21b2b760c994549747c9fbbe3152c3e3f56a0b82c2e4464798191d0e5206c9295b0014e606677aacdce3d717fb800000000000000000000000000000000060d161b2327 +flags = ValidSignature,ManySteps + +# tcId = 35 +# signature that takes 15 iteration(s) +msg = dd00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 191fc745712fc8a225adb8de855d779eef8cae43fe75418ea2b02611b979d39499c190bd59c31000eea61c0071a6c765f17f03310002524c8d1ba8df6c259405104df0a435658b488a3aa81c82d9ed06ab0886d456d7c021129f278edaf04477e9b27b2eb35d211691b43e36e65c823070a99e89e0000af939be62f1d95e94a168d953ae5d0933a39d223ab02631932d0006240fa5d3ef265519a5cec6bc796f932345f61e0e63dadf53461a1e444aeb7ff96b32cfa9c8ea4896ca5b5c58afa77e43ab34b011e6a93f9bbcb8dd8805ae7351cae0a0ca95756742077be679da919436faf4e386329000916e206545b18011221f25b8bbe71103aab949769d2add6bfb4082cce81a95b66dce001ede20fa6aac7b4c853df8205a432bf5bb0ffd3dae68e4eb195dc408450748143c8f5e6459a80a1f26b1b5b148d5394158425f8442a0d9faaf05a5ed8df9afa8bb97f499a8454615b626098fb3daa4c4ddcaad2709afebb8d6e1eb5bbe923ce5a4c41b3dc1568f4e8634455de6040cd3653ce5f3d63cd54834ffdf87e72e2c51cd2416041abbb51398e1eda1e22ca4e7b4bcd72eedde8581cbfe2b2b821918a338bf02a5771286ec7c992ad7e8c1f46dffbeb101e939f4b918d9a7b86fcf9940c12f0d2577e57f2702a263f177ab0467bfeb3384647c179f88ce508eb0173bfb6af85fb662b0861ee8051fa4c1820266f8aa6bd6f5c6dfdfe31f15a86df16669815df1af36c2c03d10a8364f488dfe3c266d012a69e538292d2799254da27d9ab3dd900185d00ba45110071ce6132fd2fbd6c129977bd68a44bbe3d0d90b70c5c4d7bf3ffa9f50400168b4a2f28c572b020c175562dcc3160df4a71e77854d555cb8d40f7e773e532934dc896078b269b719de189daaa17187e506d7c2cf06d7b7f4d7ebaa1e1b8f01be3e5fb514c4d3c23736b059f7f6b2a071a20debbc7aba923e040673f7d63a6ac223e86a85e665a941b1067f5a5b75d5a2d4622f30f61f813c9790d0bb62cba7c982d34dc6041f57f204df50b9774dc7300834f53f19d303479bd5df42b378dc28bdcbb81f8d2948b2eed172e57bdbc44d688dadbc2e30609e25c4ea4783ce53d4e8ab6ce921d43ec8e9ee82acfde0cb40789a50a9c696e9711e407e0a2383b252fd25f5d2b5456b4e4674a579f1c1c323d3abc7f1c14356c7dabf22d85ed4a9b5e75d40a5c7fb2912f4ec1e8ee6da96f352fe41c41741f312ffcfb079de51437467a4133c274dd539399b40e42d0805143fa8c7fa9743fca370059167f6f3346fc302f5b6dcb060e80b53eacc6bff176c739a6536f6b1bb4168852c68b57b787c330126ad0fb0414433ce263e2e46b27680ad072ac36d653cb95b0f0f6386c9f9db8285c3e06c38de485cc74b4610fb99714029cde977d9951c91803e9a6d864cf42215a4917aa69ead9509ce0086531d32cdc8cea5e0008bcfa709d18d0de3df22f50e87f59b7a512f3579c46de310dfc8cf95a7f940bdf86b8ce744433fdf50b5a9ca6ac87a7a7d1c7a2533c1c09790506f2cf6f8ff395d2122db9021a746411abedf1b991a0bd6071ced9135cf4319a45c564721945fdad887099efdcd1fcae03f4df332e0c7fbcf04fc66a286589ceb75c6a8f4dd2c16f67caedbe476ed4c57797078454fa66bd532494b83c03e2e5eba44b7d1f51d3d4b93b0cfddb290f05a24038871c766a4ac48cd041dc66a731b4ffb851a7648927f368e92ad45a369a4c9093f27476fc6e878ca8a9b0a915d88a3f55c7e712927ff961fde415e0b99bea5241e80c8eebbec3892ee13a4ad4d77deede0244f45f7c2f50949fb6224209de50d33047fdd60cc3610aa562adfd77e11057fc592e83bc2fc698ed156c57bfce86e444203b158948a0fd266f3167e46a061d05f5640fcc6cb7210cc51e8568e589fc950aa20daf7ddb4d46f5779b20d0d46890761132e23757535b37a009f078a09ed3ff17214574518eb1d03feb0a531f2fb59a44c96c27b834ded68470296be1ba9d4b1468d8e3c5daab19c97d388342e3c91ec82f7f9b50373add853b242b9274c8e7d59b4e84826144cdce31cc8a2d42052bc2723d1cfd01425d7cbf0a72bdc64e07e9f50410c0d84e128b4cd71f4c8a318da81567f320151a82d7b78d4369fdb6cb33a9dfc74394fea9b6e1b32bb4f2ba5fbf6bddf8ce0c93cf18debefde8057e0fe2135240021c647b48bb197f3f205621bf34e0bb7477d903d01e0814774e1e3868f30bb090f67dbdb786baebf443ae31e517c3e42f18a1651efeea26131e763cc3190cc444f8d9675445dd52746bad7b80854f9c4a5836167ecc0a4c1aa65a915de8eb20ff6dee1b3005cc2cb5cb94fb12f64bc010cc382b068ac9dc3cb78e8eaad7bfbae4c8527c44083dcccfa2916fc54814b3d6f37033dcd7c8d56efbfc358af36d8c39eb725d09e74be2cd280ad85431017a50a8445306f6a473da9edd363b7111946dcd03e8cc79c030c6819aea4927f1975fb991882ae05421202024f1c9373ddd32d66f30c3933e5c209af4cddc4b485ce2474a7d49e3375867ef0c6ac721a643d578a44f33b0474c7ec0d734d7021fa5a0fded8b3c2cb03d451b4084e5ce0ef62330880e97234dcfcf4bb98902602aac8500bc367675018b840a0f4859c89e37ba7eba8583ddb60e08f2bf0e2cc60fe110d51c07036133c40cd98b8c9e877ed386b87d114449986497aaa3043cd8caa74277b0abaa6efe6b837cb873243c912a708d3e5de41295574d361a6fb39fd90664537ef8a13cc7ea3ff2f42c04c5b9593d6e34f5759f3b8a4d855aaa6372f7554a8ca58526e80ee5d405c265547c6a6de5e534e058aed9bc41f3a34477e093888b1630e6e3d71a79879c7563705d9ab7cbbe296c56efb9071aad4972f3519e096cee67107f47d32cfb3f484d5fcba19206d108ae66c6c62702ab3e0a3bbe70755b97d1ecae411710e84ad22912daf8a86dc1f3835c556b8d6fe83888846ba8b230a5f41ebb2684363220f2b84eb969878e764674b0b8ad64856af7c65513493397562a65d635cfa8290a037112650810d1e94591e69a7bbdd1f31528d866a9033e8e02a08ed36abddaf1cc74076e7e449fb08a90e247a9dfe7070dba8a929098a3ce1843f633466a2634b892d241af0f51ecc0f5effad44f7c7706b25a7e85636a1c67ea858414bb2e71cbb519e53703132206cb79f6ff3db39a90300fca172a283e5ac43f67d8a8bb9efaee9c541fa4086cdcf727ba0820485857118a963f6c2606cac4d292f1e4364d3389b03fb817974a323240bf986d723cb7fcdcd84bc7d4bfb37d3d94cb0818b569e92cb582e8d4a6deea11cbfcb3a93af11b9c59b71b3afe3f96d4e1550d2bcb082c89e8edef437a51c719d2b81d6ee77b5922c9da992afbed3de1ff76b7fca4e5f9e6afb6f175053e4fecfdb4696181cac8d040134b9d2248b9035cb9e2819711983d7797abf2d826a893c9ec78128a551a4f02cf1b9f5a6e1699a2f6abaa499f80709f42c0ec89deb8c828b35142f49fd0ac247e09fc5dc826b20ec840ebc858b8a265561cf9f616862f02f7cce26f22dc285646c1a09f7777179104d1c12c5f6624c3a7639c18c9ca58963f6db0c36697a542451e7a9334fdef9e2853c175d0ca93ee009d408a9dc9e0830b620f1adf11c3b1351b762d8dce5d9bc71c108cd154a879f277e8fb5fac3a6e7e538edf2545e09c2aa3737fab0223ee9ec65ca5d8c11b9e1a21c540d22fb2159f1a0158c6697616df55bddc37a516438b718261e700485e7a3a62e3b0d4e97b41f2b7e834acda632b8e9fda46397dbd75ff3761c9fdc2899499bdd9dd0f1df91b113e90c1765e27432b4e70270e380f6fbe4f8759e8aab00c7ec6137ef8378bd8f512e7217784f87b6692f1837e75825c0718bb8db0c60f82ad883aa51c70e68f4d37a2e5e8655ab792b46e1243cbd112a29573af7733eee36788f6e4d7b966a68a3874d0f6559b441d3bb11a8e1b4e1859ca11005c447e1d7aaa9f6fd6e0f177c1bd0d15d05312524edd18fc2e233698d35a0f8fe70d4fd43e3855cb10f0d9101e37f3d1317c9d7d78a57a15b736f759d8eddcf1ca94e00282db8631f8bf2d2a49535ba858429748df9b8dc592b9545fababe496bed4bb525752cd5e338c6e666f8a3961df74c29b8221d720a1bda05fdf01f92d32b3ed9ce8c3fa70f21ef30132cdc30bd2ec9c5aeb73bf712293c545744734f180b327a08a6b4749273f6d853429dceda4471533952ed47b28f78ccc91ffea3eb0dc56192355f64d36dd001e822cfbac8ce9e2bc98d9a56567d77064e60713a0e7d676b17be0d05cd181d0a9e101560d4d60153ac59acdc5cb8bb3550c27a39b33c399aa54b488272903f97a4e3a9842b30de82a18eadb3cd897d4bc92a23c576d780a83829378e15248c027d1eb76bac3f1f7f0413cb7a5492a9c44a3ee78d42293483983a7d1e90fbbe277411992c034b649c8d63054a02b17d97398a87fbeed698f0e890c479b2468ced6ab23a986ad6c41ac712b137afa93df37fa8080564cbf67bba235914d7a8f832fbacb7f3d5ffe2097f032e32585a76a9aae325a5cb121619344a6466696ecbd11d656d9397b4e2142f35580a22292f3a3d46494db1bbcbcc000000000000000000080b161d212e +flags = ValidSignature,ManySteps + +# tcId = 36 +# signature that takes 16 iteration(s) +msg = 6c00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 3e41b01c01bf6603b6d0eef00cf02bf550767797e381cb6530affadd09100fc963e864c42e24059a35b54421dee314dd6ec4dff8c13e761061160673d1a94008b1131aaf1cff6cee99fdcc7c79991723d46cbbd3d9e891972c9d5f52f20bbb11c54e5ecbf557332c25c9b54179e6064eed210479dc6446707f5204aeaad9db2f8f21ed5f602965bd137982ab5132d9f24caeae6bbff8ce95a4ed47f63d7d258fe1760d8e8a7e4a12db37d3ad11131605d2be5eedc250feba39574bce461ba88a0ef59cc7ac109b76c83026afe2f2f3656f1ab477af4b49eefd56c9a00ce804427d78a5867ec497f07a5c488762c8883b839a584ef014d91e909724ecf77fefb2fa3c68b548deae9b3efccf3eebf62a5bd76f966f7489a71d85abed7c06bef1400db6f188aa57278a874cdd8613b64334c59416d1b64b121fd2df20bbaad74c8136219086fee3400f6ee37ad03fef16a9bb7579683ff421e046f9cd407b61e9a8aed130c60596de5be4ae7fa50667db07505af533bd199c12128c03a7d740c0ecca1aa7f33dcc60009cff2b6339bfa041fa82032eed9b2021037fcfb00c53c096f608fc19fcfe5fd0625c3bae39d1ed3067f3ac10344eba67441919cfff24c90bab23ba36e2c835ca1059d762108698cfcec610e711513060845c189c507e34a3208fff884c8825c4ab3befe08f36e378503612f926fcb99949d9a2cea0b2fe59542e69f1c8f99603d10c02df15ebc4193ef22cd45303d24ae70d93417e87959e209ae8ae6618d2007c281ea8fa5e73be5ac16aae20f4b037df559835b25a80502543709916bf1f20bcca93497472adf33b43cba42edfacb51d3294b476db006cdb534b0e0659a90a26a9ec68b3b335d461a613e2f03e94aef417983af6707a543ac99cccc341b540886892e209f333d4426f6dc83210d602d357ba70942506bf391c747a86202ffea712e7f0448105cb61310dd1fbf6332ba0d6e27e3ef22cfcaa5834df1b7f5e8eff50b4aa7a3889a0dde43d1b09246aeca8bab043044f7daf2f14a61b7fb71ac24c804c07619f31b94fba83a586a9be34706386683e5e3965ff4c242e524bd4745eecf30db2865db5f217c4f9dfe78584895d4214abb2b7084d7bf64363dda987987e0da8cfed427c20e83bda6550978d35e995368e6638c055a971e7b8460f77bf59021f3d3cc4edf36a44ff18b618d0b854c5c3cd1c8bf1006999c99def36fa878ce03bcb01bc48e1b5cbd975c7afb9d3029317e4df17031d97315027dfce18dfd16ab5012eb0a24876145c0e2262627582884b18619b384ace8fcaf35dbed5a95c38096aa006a94ff6b88fb7d800574feae49a7c9a8b29c36ead729fb194770e5202c5eec7071541090c0315493547da789b15f2fb28ade9354e0b0952c75541245dd0d82e0cd553911f2f844daa2af5e34dfd2f886559b69f038e41dff53cdefba8663cd4c3b270e41ad01cd9c69d84117729d51bf9c0b8249a48a00ee7662fe0f45e3f522b0e97547c6d382c205c47a2711d20cb8a6d18ed6a227c49a2fe261e9cd5427acb8f8b09477791cbb13c161892891aec718a2089181dda7c8f8bf7774ce109d8aa4bbdc6f6451ed2eed41561d7508fdc123fc7018b67585f5f7cee14645dadb2fb1b5d6de80cd5c5900372400164532f1186b02cccf8066dad549b3949714975cb92edf3f98df302ac01e5f7ee254ef0d76f3a5afabf805e81d95afcfd39044ae1fcbedadb35e737a7277dd31f9cb5c68f0306495b5981efaf676da2d28dfba12fd87625e14a6757e3ab313586c68dc8ba7ef1e90c521fd13e980fb973210ac36ff5c223cc258241ed45138b7b8044fb63e8899faa15dad544f77955c9dd39ee11545a10e613f09e01efecd048b9b61c9f89e10acf59c4fe10e17f276c0d72aeac60971673ae1b13ad5d6ec116dd92df3e0d6cd79c71893b812d1ebcb6d2e32d3044dd0815c4aef995486eb6a2262d5ade9f975ba176bb3be9ee4a0bb2b9b0dfcd679f3772db9c7e5219ea538f1bf4036edcc9e52623c9b209e092524d023dd200308217b7ad3df4aa312ee8d503fbdf5bdcc6578f32f4bd292f5e7f0751d6e18f5500ae5013291941f20355003731d764e973c17a7120daa0a790e5362dc13ba377aefdb1e2228ae1e2bce9bbb66661f016fd184973f1b156bb2739bf4aa6cae8b935273f8e821de354a85a21ac92b08b5b384e4889ce5adadec098a2efd960e407f6c1c5cb51776b49cba25454633b0d804dffa9adaa22a62475feca711f510dba1b927452948875c23fe50eb04af36960ea8f322992d48cc136b2cf44c4fbc45e84bfe347a1136e11efdc4ec4125ffc4feb8a7c2a832e29de612ec28ebb59c3d82d45323fc35b1a0136fb18aed7e761fcae68944f6bbd63b5c66621205c525d0c409d7472c263e8e1b556aab713924c44000e347f743ab9768c46cbb654d699bb0892f3461d5a8dab4aed8d1f0816fecd297a09d2ea3d578b74356709c5c019e0c6eb44cb9185b96e78193fe5f3c19437057ea356d8f9af450f5bd9c230fac20efb37341809228116dc5676f43cbb970fa1389dc8bcedcaa0722e8dd0aaf54eade137e8f18d9d7341867fc2799d05681aeead12903857ae7046fb335cc290e5756a2812ec9925ecea01919df31f0b99ba516b74a1f29b17ebf02de6b712a12786b8b280cca0c8c6673ab037db91612d38b48a1a4d3644b0b52a4c3ce262edb5691296d2d53071a14b7227e1892927089a19dffad11f1f1bd0c25e6553541d7483ce277a96bdecac31724784aa9d933d3dcdd3f42ca1929663b5e1102430d9ae33b60421b37381ebfc65c4eb23afdc533170018ff2a3009367e32ab9cf83d806dc6fa796de92476705eb434075206e0e8e1007f94dfec75021906fb1ba90cb1ab90c4e726a03f8b1eb40e0b6cb781b84d44535945a2caa50c0228f1f63509208add3951d6fdce948d316a7ac5422db6e065928bb32d495730ce8c3e78bb7b909035f90c01e4b60bcad19224441d2495636a38904c45b98e38ea5ffe4a4a5dff4ac585a037e129a5809a864fe763e21c3bc35f026bd61cc5bbbbd490465f66dfd719faae6e21836942f9bc56fd728dd5c835943e4289bc83e5eab913385aef4c526f42b9143c3a430b399cd469395c13bdf91f0b61e1352763321e439a15f464df8901e3eed66788d91fca51a81fdb8dab7a0d9b67202b98412f39015bd390496e0b22209353d812b8d4a458c2e5de71ec5c17c9b034d892855fa70f1199a942c3ee4835cc920603d2afe28f51259892a7c610774e4f77fc40739f6bc954dd7f30720054dc4a9df4f302ef6fc3d379c67772cf4a5a6aa6024a2e7b60fb430fdf2a1f1f44ef966f6a731886b8ca6de72dbd72b648af68fe543a7534fa42851c1b498ddac2b6f94a18009fa03b976e5592a818e87322ac344ad4e981b590bb57980fc903bdf0d84a23ebe4eeaa5a658736c7b91a7ea31462a7bef3cec35630cf5dd82344b34463eabe9c37468a8cddc9db577365cfe061bac2aadd6a339c35caa61944bbd76d1c5f605399b9c60897b41ede89d4392c9881d8ef54c5b623438633607c917e5a148f91f69330d2cfc3a07a385fa636b1b176fd2099a8532e517603f461e1291b65e4de6c534d6dfa3a50f9b0cb4358dec901823fd3fcca7a1296118b261f470cbd2e8438a6debfef71787cfe3d9fea869beaaefee5159c7e0e3d98e8a2f4dfda6a42e01504c04660ccf06c249736aab24968c3718037a9b693c3bb09f3b7848fc70c60df838d0080595acffaffbe8184771615896a42664c3aa7a25c7365d696a23644c625bb964b699ac048f78320e064140ded9c3779cb5453326b7ffb66c14193420c46a16537011d8c058e5689b584feab9d82c3387d5cc9035f58b7f9d9cef7fa4bd8fe4118e5c8aebcb1bbcc831ff5cd2430ab3b90393987d7906d03f92374eb3bee8c65ac043b038545da445861860b59f34a28112750eb6449c8daaca5a3a8dceffe8c573ed9278938d6bc47e8a0c0c645040e1610b39744391a9191bcc34e08a31b9abe1ae69ad9f141016fcd1b7d4d5b23bb709b1240b3b7a9a1ddb622ecf276ed63f1a92a184a7cb80adf9dadee15ca87972e530026be137cde18cb59b0232a12ff5cda724b21342108ceb83fa30dc50af8b214e638f0e88fb2e11664f6b14ed6421022661dfeaf0903f732622fcf19375daeee2ec601d3e3749c339ea85ea1f02938f972a0ae2804cca49aff7ffde527d084e0aeaa45fa91660063bbae4fa03c3ebf20d00a8b32f17c4c1a4672f66b8146fab2597620aa8bd9ad43b7bb238c851b3c37e8551f6de1a8fa41dc3082dd0d202b75524cb9685812c9756ca8bb42ed74175a9d6e70d904713b08206b1cce2c822bad661634536f9f51e753602cbe61fa783e3b6f0b84de0ca9b89b8b9ff8432745b45d4f38c660529e8626ad737c76810b97b89602fb9b9a8b8964bd8c79f5439cd1d12aebc7d240041ad00cd244ebf266a3b2a964d6371b3bf6d676f5fd97c1a514c3ac26c0442e891efa56fd67971ecd81b90da6ca20fb2a6e83aae5581d4db5bdd28efa1015066788a90d1dc1d1e253f5a5c64c6df0b0c3b588006cf3352606290cbdaebeeafed0000000000000000000000000000000000000000081116182123 +flags = ValidSignature,ManySteps + +# tcId = 37 +# signature that takes 17 iteration(s) +msg = 2400000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 45f7b98506b52cf17ac1ca661951dc3cae6637b2b532dc3dd3e49db1ee098bcfa20be1b6ef9a4b278589b8e7c4cad32a16c5600901d47f0fc06272628bba29815f237fd0839e079f0fe6739dd45fa3e5a93d7d1311536c1daaa2d14179eaed2a2933d17825f88e034c9be9cf5f5934ee9201e3496a65e4aa7a2fb18cc323cac3a1997cd9e953654fb504f1c9dbfefd35e09aeb6613ab4c06e571a782acff038df56a04e03ddac640909858e543e9ca2015ada794340f3b8187faad2c088e9a18fe7087f8bfdb3a9c234daedacdfbffae1dc67e04e429555d53b42790fa1735e788d930889ef6618b1e58ed5c327ea6723f2c11f1f466a9c145a11447131dee81550ffaccd5663a5a14e25f21abd330f71fd7405dfcfa93d8227b142cffe58d575507da2c19a631b307570e2783dd4d77e73ab2639c6a4364b3a2b1b7c92d93366f81e7042f2fff359b78630f6c3203b1c88ea9bd0fb7c732f3e5753139c8f9103480e77c57a6c8705ea245b47cc0e64e55ed2246d45e93cd638d0104fb43806b329469e2dc4fec7c9527b5090a47bdf0004ca0a6d4c747df14e8eadb88af3951cc2fed195af08657f35ea1eafd6bf53755b4a66153d4f8aa62f1feccf69f92ce4d5338c422e6743c23c51326be0296d80fded7d5b01c54abf10d530ad0f136313b3d19e55c5ab9c584b80e83f5dc99960392359a6fa718b4d1d6be467de44a8e6678d05d0a1261517d4edfea6bf90af2a80a11fd9bdde875fd340aac5880b201e0a935f58489eacd10f9c18597e51ac0604be6a5df0fa83267bbd28827668fe05bdd26fd7cf09a2c8b3f42df35412a68cb3b45679c76e012bcb7475522234d0c50845395c5cc896a336f1e216e8c62a5d65cac474c8e48f0af8d9f160f08208f196c4cc4c9d2dc4e592ef1407ed6da5471b0622d789300259ffb8a4ce75130343ee0215a3f501291efb8ea7a43b0492264157535d79e8edf106f9100573e486915e54219c989c40cfc6bf6f058f4a34f952a9f10fdfedff8bd173be598f2bcedff2ef2216386cd1eb93b9ce9e34179a29569da669b641297b3874f7477b8d08075710c9bd83cc722fd94402929eff0961de5297e803067cdffded15c42f5febd63f61c8f19b24adc1f599454b8d40b5689ffe5aa759517be2d31c45f5024f8fcdacb7fb0147b4a67f2c2e62bed6d99f2ea15f36ca051b29082e64f5272c7628f923738ded2bdc0b58b2f92cc11046055351bd65b3efb9779d3bd0b28a0e2ef1f2e807b5eae196c2bae7b07149012a8d52ffa80644c04a0ea7cf5226b008e7fc40b95fb0951c2bc9416d60d677ce96f86a655b89f504cd047eac6c6d1905358de689b518cf8651227146fdfc8306e574a38ebb39d5db0697c8320cab784e5c0e71f33adbcc5e2d38894e6006207dd97e545f83201bf1033a107c92e6fbb63f7fa9d6d80ab96b2baa89c89182198e1f93102cb9b10a21db60fba15820c1d82244dae2dbea9124bdc44f69931ee97904e15200c91bb525b3dd37837224c5c52659786e53701dfb0ab836e5ab3924beebaead548b67119d63b52ea88def1f28a0492aa047c346e5b37240d52174f609d82a46be480145f6644647d814608d2aa2077e97227bf7265c1e8e41e263abaf76eb4b705b334d7135794e4e633be36c0eadd86c9978cb5dcd34d85f959fca840a837613f35da365530b4a075bbb0de3d5251138390db3e71da1377527fa3cd5b15fca0147f9646b0813a64f5090b5bba0c68e6fc3e328215877e7f1405346624f8ede7eefa90778982fff9ecf84330bff13e6ae837d891535be7e9d52f4c828357aaafb129f7f1472fd0ae17aa73ea80894496d805a8a393e1626b1bbbb8906f3bc1bff8beac84d1b678fc2fe0218c5983787e7f98db793731fe8b5af27c90691d9ce029db1c35fb9c27659bb09e01b22be955c64fa62cb3cea9d396c47a25e3ea80aed271ad3eba5e48a743538a86a9471d82003bc8708ebfc3f2b8433a3ef418da91281e24525266b72b3c975a030dd41d7a3f76b46eb916c951c27c6db83f56338e12f4b8d517f1f39e18a954ffb01a34adfbf8b14ac5166c7ece5d8ca2e236e35a339360366aeb62cf01242ab11d18a95665b7b3c29ed818e65e14cfd1443e8ad67e32343c90272ba9a262653725d1338694c77f12dd1234f735d0fc59b55de9733d6cffec59cc6c4b1027a7633eff36fd547b549f2d54577b4d3e883064e1f96eed8003c44eee8ade5a26d59d657355d17ebef8264fd07f006eedb3a0182bd6cfa708803d5a521a669fbe2ec256dc69e704c31174fae1f5ef3688a6f6a5568b872d7a61251640871327350d6e00818538f60c7627ae84ef6773a0024790a93ba11be699317711ca3710aa8c7f990c1533277d38d117e0a8ce92490758dba144de16a4fbc97c2ed2fd466361cfb07a63fea544a54a1f4b04780171672b8f9987214055d65309f1a41c78befe703501c41520c50afa576371c91d1ea726d4542172d97f38355b7d7cfdde25010468a63ab2cee6fbae270a82f99384d46322e84c883996ccaea15eec01f07f9728cac753cda40ac6954b52c751e375482776788155edce5a23507c4628ecbf715262209ecbd7ba91948ec891571c214798e96ede019b5c726c8447801bbf76d565e7201d95cfd47064caffa3ee0757bddb9ffac0b42f4a804f68591cc7f2e0fdab131a8ffe5a7c776848927bad752f01dcfff7241003e501623ebebf2ba036100f3dc5e28a23d18d276476ea014494c693d9f4484267f1ceecd7e1fd6c75e74b416c795b516cf9f99a26d669bbbc9cb2bff8de6371bd4ea97b35fb8bc684c464d185e3bf40fd26a8323d507c7b31d203aae661add13c6531f7b56635bd6509979de917268bc0b4489f5cfe2bc2d117d5f27c1cb0de2a85c024a555a815eed435b28fdb97debb7fb6631e72ca1fbf2de560a54496b7ea79f72e41edb21eb28e7c910f74c85122240175309be4c419c2a6886803313d30ef93f587b7fb0232c91ae6d12b54406b495362276afa922af02ac6357b04f817b56cefa7a326376b82aa10e35a113c61666e9b9c9206313318b7e1097166568239eb3455478008e42542608923174fcfca8151e0894decc12fcf32ec9a2c12b48dda7a6896db728ae779d856bf2efbc34d7423eb48c87e00f4b4727420cbf4555fe5a46c63505fba5abc590415dbdb842abd728638844934609980c95985e3f127178f0fc463f4180fa74b5a5cdba1039db813e68fc1de1334857b55dc6a6aab0c4c665a9046a4191eaad90bd9b2b112a46e2a4c253d28c175823334d49ba9e07e85634c24dfedb348e592e4c994a01a5fad53964b7af28f431a338af16f28bb22c645d65d6f40150e7f10897be7b8496601551cd5c813057f2e38a5d59f310b5bc1b52216c467d1916df0da345b3e2f0aee80f7079648876cd2cf3127ef3f18acc55f97e026e3760ef91531fdf81e71c0af14e24bd2fc1bd280f1cbf6e82495e31daa5dc2eb9c0d6568e9b980da14c4efd8e80e853bebb34c259762d2e5ffb918bc2f85100f8d60b0e2353f0fc1f7ed6b3ccda17ff778db565d2942898579851409b31c2ebb860397780174ddac7fbc5e558ae04d6d60c3098adec601882ea9902b33fc43a92e16db396e345a995e4487ab2d07354dc65c04dc873cf13e1f189cb19c84627b892ef586a38dd649c02f3f4efa44943387c493b5edf476f8e68444c804b2543d780b4cef1b71e80251b1cd64958ceb48cef6956ca74a590b6623c7181acdefb343ff65ec776ad12594890ba5b77d1d2d37d0a859aa3a0037dd70e1c0af0b686559bc2c619ab8ca3f649c38e6d0f2b5a6458743293ad38ad26541c843bb00c8005407bc74446206af67173f53043d9c95c2696cac7359023fcdd655dcb2d8afe068df092c8bcc3cf18e438c12848ef078383f6126a5f2f9b4620d193d6c8b8b9f1265c827c4a1928e3e523b2e653efa378800943cd3e1cc639ac3821f7fb44f5f01290a144f11d3e26244163e1cf60aa627d7318dc3f42fa9bbc0292d6fa61cf3e04dab98a3e2ed3a1cecbf5f2e08aaac5650343934958f15a2b915f0007c7a251623c93826f2e1a1c5c8aa0879af6dfebca672c616917ed96ba3c4757ef0714fd8b88e0f21af580e094d9381a5a8fe18fd34156627dea4cc154bbd9f2d9eacd1e40747222015fc93671d745488c8848c259c7a2582c0165a1afdbf46c9a75590cb825074fbd410410a94568c444b2b964d331efbaf82771524a6cc0bf84ac2ebd1f1dd0ed8033178e79f24efeb43a0018351b13759035120dae2972f6e314c671e3b918ed9ed89234dc27c17ec9abdd3b2fc64d8e562ebdb7c90902a0931d6480386dd633185e15459ca4471177281d636d6280433d260a51522b251579833e53ee757c9fa2f87ea1fd86af051381d6f20ad947f5981300bc93cf5c44defda770975bc1438b053537665535a9c764f7fb7f03038305f4eca46ecc6faa60247024d12eda7bcc626d924894e2c538dacdebf4fd2b64ee428f8fe30ff104d21b8e1f3897bb86c567a31f153d4e8ff3be2d9a539baad2335762a010b35bdfa1a1b5df981abc8e612314445dddfeff0fe49b0cddc000000000000000000000000000000000000000000000000000000000005090d16181a +flags = ValidSignature,ManySteps + +# tcId = 38 +# signature that takes 18 iteration(s) +msg = f900000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 6593932b139ae1104d35507504133096297012e45c9865f57a7bd6fe87a6e4a10394f43226ec77841ad10ece333a381c37c91bbd82a63bf87fc8091ed29a4599042715ade54f5c94a6a0e1222816e112b4abf893f0261fa5bb5d774c6c8d35bc1c447e17d3dbc25798803518cf6f6bdccc7e2e77d77cb8e6ef24564a36b5054d91836c7ff1958b6d850d25f762f78b0b55c2850131437ad677b28b8d11d91b16508fb91f250c1c59adc4a2415ca6d20acf50c90808b5a4e88c043caa68a9e6a2ded7dd4f92844c2440589540fdf7e48349ba43bc26c23da748ac9d75f0b188688541de951a9ca4fb918572c96f7d85a040655d459eb3130c03bdd865583a2bcb382819c0b59f80e6369dbbc0f5d5b40010c2490c87acb9b50ec1a998be39694ef591a3653e9364c52137881ce175da1a97326b33a969d035cea68a5ae85e5febfe82cb5ac731f88a0c895896680a9ae8b4e7b3eae3f7a7d4a10f4063374f317a1ba377a01a3433e1242b2f00c0584a094d157c5be1a864b84712889c016e38fe757d02c30d63dc4c5d087f8c78032865ebc87de03747d03bd6bc32eb9880e8b640ab46e630815d11b3e4d88edfa6a3c006b568cc9648d4df218ab91bf1168852d4102f4503061f96bd401491aa76ae8314ef47d7941a767fdfabff79349d089aa5198248cfb2524ca6489ad58fad9ca4fa6d7d1ddce1fa88c3dadb434cd3a1f49168460b36d9987eee09ef17a1a789a457b98098c85311deb3e7f4d7c2a84c1c78c2db3e9823a5b47b9e313458d8023357aec8cb45fd052da9404c731062508ba31db91cb670f474319948538dfb7b811368e4325b24ac77cfe1f852bbb33574f175738f6924aa937aecc41397f8e34d3c75f44d6e81714a98a552a766089b8b2059bfef2f890edc17f9d98df040b3ad9168c285be95ee126ffd3d75658571f75035a0e9fbbbe66ad6a85a80077d21cd19bf9490f3fabd69991d6ba2589e1b9a3b8e64f0b879f3d80119e6715b827dea6bf40c09c02490e60b37e13d09d963a841fa58a4feeed6982295eb6be66def030230079a61494fd7295143c3a99c9fa722e1081853153110206cc59ed26a77f9125eaa98944d26708609594ddfa78c7760a8e9bed82e85cd991b2bc5ef7e2216e0bca4d16017749a1579b54dedcb165152d9324ee63fb7012b2798da17d3700c6d8280c9d7bcbf6ea8467542e92c8a0868ee9d5fd08bd397641b20d7ba15dfd079bae86972020c1ea54a0e641665b9f20dfd7342efeaf45e2c0682fcbc75569db5d8fefe4e1cad4e8865e86ebfa52ebb4c3bb1f9bdeaf2f179980424a62eb40a07196a78069ea6b33f52dd50bc42245517346a846a63bf08bd27d341ebf829807595f12ee0b097b917529cc0c4dfa7715238eae6cf336fea3004416f18546262ba801c8bc255d325524b7259bb747c3f8ba51aad3fd54d98c882c3c4924c3d01c2846690608575ff94e6778200ea316dc7e802f889a255e642c94e43cae57c68ab4f5083d15921e4abdcee8d7c4e9b60e43cd3a234780c0a6173b6b132d2482c7750e5aea328397f6c87898cd2254437a37f3b0e65b3f448f541f8c455476aecb3e5d7494188ac19cbb5f2ec45e246e66202dab148f2d5c0d388ec1dfa17495c9b3d255da2f48211b1ae87b2beac31735fb79561a1986e80651ef0f32bc9181fc911ea32855b5c0cc3a4fd807c5fbae608d683e81b33544a42bf1f89861b4afa5585b25e57e651e5402fee091d6bcb0444ece3e2d907031716c4488b6391c90446da0991eef10d982578b6999beae142cd85aca38e1a6ff07553f3254de236620bdcd17e24e9fdbd1fd7d672799211cfcf4e24184cbdcd3cda0d8d03f3dd76b0e03606c63f8fcfeae5ecfccf4dee0d5158567e86e3a4ce343ddc3c4c3c1449f142774547f25a9538eb80191b239e510ab0d5dda4d1d2e8af018ce177c6877771a7eb5dba26429f7d9772af8baf8220d35b28545d0127b14b524aa5afedaafdd3998e6c3bbedb0b1ac72ad30073560ee23e85432659a3ad60fb95a731b98884cbe826d3205696424886341986e933b97d67ae5c0886979be4c32fdb94aea47b9a3efb2d062806ed25af606e5072bb4352f3903711fa94a97a86c2dc2d32e6ff8dd221fe07e539f22da92a158e8a8df936e38d02d53d1b0fd80b63b6ef40bf826618f962a1d64ff361e546b73d2c7d47a5c0697af49041dac576de3f6918246877cf50504b641a457fa8368caf5eac325e468b07ed722c8833c66a2fc42b1e3f5eb588190deeed2c10524f1b05c6efc9d72a6a1f4833eb58db9a5e11b4704d879d25c998236fb4ce4b2720716c9e66cb339cc2293bacb546260385e2d860d727d952b4bf07618a04b30bead38bc41d2fb7fbd49931e099806a6d255d2cdb7fe62204a0efa2a883c4424bbf875af04d1f7cb2d9cba74946b0022f614c6a162b643a212523e7e7c7165ef5d6400f1664cb37fa555398f988057fd8aa3918ef644fcbed19549db991d5ff2c99cb9f6be56f24aad7d7ee304ed38240a609df19a2b82571b33d9552b59ea540ba909ad64e3f8342e9c2855a3577eb910fb47b7feed8a23458434ee6e0b0cb484b11c63175685a0ce70e4ff7d03c47b7b9d1e18a73588e8546739e6e9c3aa0341f4c121e1c662acd77a614c4d87e84de703710455bbe937b30870d611ab1ec256a98fd884568b8e945b0d88400d87fba756c17311e3210235b3942ca5061fe91b072523720a4d32d174c88cbc65868b5d7d6113b948bed240d39d160dfc6daf8a43a1f6adfde7e71e0d593c82033e9f6b7a4baa0166d8f28c46114c57e364d70f0f122a7b463828cce26c1982f03cac961b42b805820b9af9c8bb2240eecf9daa990d61c42f01ed37ca723d092fecb767fc0ddf905ede494d7b2dabbc593360f569df195ceb1ce3741c08b60f5f5097830535c3049bbdcae2098b058ac9a50e4ce7fcd694d45b20e1e2fd86808d474480e131b17b1aa8ac351fe249708aecffa6a0c7bab3115ebbf8c43bc5382a2a8e2011bf859ad034d14d8d24d56475424c1b50bf85e534dc8b4745e79d6bf098fcdc86a5025284097b0ad564f6ada364837af4df60a30620dba25a3c5d739edcdd490fdf4b7ae7c67be90f6356d9b94963495d9c5c8ca7154b4b2ddbe1ef1c57d8e5e879a064c7c76be3ab86312657c3a971ee1f87735df1a2849018a7d1e4867c9ad9019729c3f43eace4f2916384acb25f5e340a534d6782aa7f348e37fb7e9895b9c4cbe732b4e7db46341f93cc8193407c0b699ebcd9b7e3f80b5612309b5d959a701d92f4fac5b251031db6f39d6339e75368fedeeb3dcb022b6addd77071af1f40504c875d19a5add799a7f0e5079fb39a7d5eb991b5bfc33f517c090b9bef48db0ae16d160f5a81143fdc0a793cc3927ad0ffe7df402169997c4386a6c01853a6c6d21f0607b209b0cddceba91af3757926195750de29ae82172840205bdc57051d7b273ce469fce06bad5f758febdaa498a3399d4e3d807bf62fd57819fee31a18fbf24e501b8990fc25253d6143cee42fcfc898dfe8a414ffca27356102762cbbbccc70158b318e5354801deb17bd202ac11627d6effddb25c172fe13a6a5756ad80b450839086a46dbdbe3570628747d733f4836f6d57c382a96c7aaa9d83c3a4d5b5ac4421599b6311219b733fd9601195dda1abe2fab8bffd26147dc555c8c8fa11e3ae36c3afe9e1cc98670d33804c0a60b2f68f98282c4b705dd9ad3b9270395470c90bc75a1483b946822a1b055852effd2aa8aa93a4d633dfb9022722982de780dad23dd5f2021f3c4c92e048b2e6aac3c6666abc2970a2684bb4d749b3b05539f90a9afab6b6cf5b05188ffdf36941974d5b622bbb85aa7ba3198104cc1111a914ae36291552f40825c0812abce4fc32a9d4e29d40a5320c29eb49905d907343646a638709ff078de5afa9b106359dda4d33da38170a5d2c17d57ed1dee1edaf1cbb019befcd4cfdab6e30ccc146fba1ed86968d7224630118137148c3d4add5e9797ac90bbfdbe1fb9b4f472616083fd8c1d72042af00c1960b4e9e44a820a50ae932975a0d4d64c0c26d61038ccc5132b40dad8ff9400758dac4f41cf7056069430104bb7de19a478b61340002562fe26cd831f6a7e662605d55dc6297b5c2cd248f1ddb5a272dd5851aefc0bc2e79c59a901e18fa9df2e3312a15852fa8deb733529884c7e0e6f4a247e51a2dee34f53323b98b2cf38966ec33c9b8d3697d056a9c505dfdd8cfd1e54733a85e184e46e66d57f726defbaf14bda8b35a1cf9b2a570e61a5ab1128d7b1ad791d0a6e0b79d51b5845a909513277ecb51774a76f02909851f57f4b7ab2ad8d3b3dddd74494a003f1afac6072d9abdc45238e458d639fc827270c37d15b605f2b91ab9f1a8065f5f65c0b4bec40a26f2fcab9dbb4c6c6176c4300e3425c0b4638b8dc0a98c341ffe5fc8e0e8e017f58647285633d0370b919449e1cb03e9e646371f17f85b7f837b9b641a38a3302036285e37997f144752059fe15cd62ca0d503062dcac9763514fd77751514e5a8593130f925012a63711a366dab06374a5e82e6ff0418434f646784c5dc063f558906426f99c9cdd1fafb00000000000000000000000000000000000004080f181c25 +flags = ValidSignature,ManySteps + +# tcId = 39 +# signature that takes 19 iteration(s) +msg = a401000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 6dc1fa2984d614d5c52207db2528c102886bed81844437049d558dfffbb799f71a9dc992107666cc595a1981b75e49b36fa4a2b5d44a5d7e82a002c5b0fb8f8c811d82d19a84411ccdacdf86912db7dc9d0a8df1784a155c2ef1870d706583e16306106a0d0095aba7483e484c22c246077a743009b664f014d86d6358ef4f415e20d9a0b8ac2911756c72a1ab41c4d333f7376cd23405cfb5509e1885337b2e1f391b9e23517a0869f090db5e89a1f84075bf77b46115052a3cf25b3893a112a454a1b6c23836a84618030ea12f8bdbc2fd7cb2b789925b161f71c2e5300e08b9dfbfeb6e700cb09b9b101d64a4fe8ed2f1e66f7cafcd4985002f827098bab1722411845ba01bd994fe4b3b774096e353891a72414bd37af0df4f63580f5d3e72ff1c916c13bfa6828a44d281fed7ded0916e84f80c2bb41f818dcaef8eced887d7de680cd48d0e499913348d74f6a1e3fa81a10a079901a3db3e7fc6b55899714396204e4b442e156bf34915df34365f771b7c5617c7c521f88c43b03b738c069d96afb5a94b96071a43da76cafa8ba2d8f24f53fcdb7008ed7c73c5de081f9b7d2df75ba160009d05f1edd00aa44b6edac9e4f0f6413c743d925a70b87fbf551af7a3bc46b47814e02d7043e9b92bdaebf9dcd35c0e5a0c49bb53b6309456624e8484285d8e434d7fbc252191f69ca8c44f8eebce2d18159ed202a24b77e6ba9f907b14cd9308da274919f1c93b2ab6a6cd383b9b954d6fd1248aa35fca4eeae628d97d377d703a7bbe976956f5b46c2b884c6261cfb844bc3cb3f3219131e78aa2cfccb4276ab1cbcd42eb3b5a5cac311c340dd35198a42d13742290b0b23c5c8a7619acf12bb41e6ae570ebcc99deb82295882ff7cbef6fcbacd5cb0a0680d654be9b18325e8a11a33daf8ddb1118db078537be93a54c529673c366f89e2d497ec297346337fcf10b2288095f572dd62c1ccc4a830b2edbc6e9ed8905d688ff4333baacf412b8a95ff2de36b37a7d0d230eabebb0d128a1c1d9df3567f27a1beb31b822c4e8b535bb38539b9c93a8611a785d35f8afde56c09dfca722cf0364d99b9d0ca55dbc8f9d21cb69ae8b49791e4e1fa76bd6dc9c28dfaacf12add31cb150757070a39225510372b773459f8c86ccbcedd27015cf6daaa73f6698feb3bdc118b03211b261bd8574b116de124634626386f1a91092270d15c16a5a143bd0a0fbf26cbfd34718173fa19e466c9894d3276bf0c887b09b77a584fe80e0134bccf5c3bba566686c79dce66e554bd9229c74d4c02831f86142932a1dd449fb920ef675af899db8b99e758aeb3b32b0474316db13c9ab2665e651242bdd2b696c6a2f65304ec643808308934f727e3bd4d1e04fa5f52a452dbe966f7eab1ddff16950f211034ef755e1fbfc924f44f1e5b91c38ddc9cf755204c4f5de26b59a253b6c940fecf5db125d5d604a10e4384a0cdcceaa0ea4d4e580753b4acaef25a77b7455dcadf0f5bc10f948027062cbeb5ee2094e01374bad834af4805b98cf21f2b99fecb7b09827fcc295867d083b7696e42c2ffacc5ffb5d26088c468b1da4c967c97bd91bfcc5792cf18b66e5def3ee01e7e251c0796179ee3a38cbcdb656a3c6e4e1a970259b2d2e2dfc25e0b7d7229f5b144c24129d1ebc2e9e64875b298f9c36dcebc1d43e451105b16d20839f7e6fa47ed7076b603b5e17e78f979d01d5245c084e500deb96e6ade4d3fa2837cb400c02943dca4ec02b1367232f5ee56e70d7302195c2b6f9c0a213895030857bf8353c0a0d0275d0216c47f6b0cfb54471c6eb897689a64a5fc2d5b51f6be93b7ee0cf31baff1a5143a274779299a6b903f44f8018c5729cd8617919a13daac169683258a8340014d54f1e9cd82134eaab14c7719eedd6089da30a04e1d873b683316bd64698c81a6ca28ccdfbfcd69edabdc03da3bc84d51d770c806cb53597e8db6cfe2ece1df088f1aa6ba75319ebb27f9208674b19783da8d4d94653ea7a0ad7eeb0ade84db5ac471db947ed77c8b11de5ed23282e75360cb3969cb13597d66d041c3efd7acec993fe14fc6fe536dc5c2a6d0f0a787df072c2559f824ec077059b218541c995a030769896bd619b0e66240ef244c8b3aaf0e3f79abccc4a69387d2cfa3131b45ad4c4817d478cb7cb7264aa8dd46e5ef2d3712e3dfe91e615a321433daee0bbf20afc7051d3a5404dc66f2a02bb8fecdd280718712010115be7131d09737677293c635bca6ad085a8f8c159d772bd52c80dcc62e27db799b81d84e337424a8d8905d53adc68c8a222b6970eb8078d796b64b172965f55ba5c90c0fcb006865d7b1f0745e1458b1ab75c54380b3747da09ee3543a013e0b807158c9afbffecfa5a3acfeb185f3334d3ee923edabff723157c671330ecc64633a90347ddd77be425713b6c0f9b41a9789136c1ab74248afce4f0f569fc181cfc34aacaf3f1a4f7e8e84091a3a0849d87f3b8a7c6ad4afb7d357eaa0a2c915beeee2f1c6860ef3fc5f4cf0bf43c1d596b2c84a89b87d36c2dbd143dcbefe0bee5dfa04b7111895c8e2d9803d57270b347374c7a6e83957145d00e801db52df1fc37bd8e8eafe7a6c5b75a8c8fe32b6b2cf0e33aa6e7c4b559d2687cfd3e89cb9316ba05facd121f0921726adf89cc2094da9fe3f296305d700479a6ee3da724a39ba0f5990691436abb03e6813c4071913cbf3e70c6549589aeae288212d2257077c434f306c611b932c754d022bb3d40d91fe0479a9a250eb4689e118def6cfa516312c4ff022d1619c5aaa535e996af16016e670fc5931fdddd9e5d6105c385239a30e61c8d9dbe1185fa13b375f214965cca489d186a84e5eef189243212eeb570109c544fc8aeb4fd13227055878a15a723b70a27c8c902bd8f1c3f9d8865fb2dcc554f2d9c0e9231e691b1712ef052a9953daa36823151c86c2e1c43def615f4eacb610ff684957f08e58f9b07c633e0c71ce838bb8c742e0ecb301af85b4000b61e3b2f824e6fb283d310c69623c3b78e34e85f2c5a319b3e30649bdf982183702a4b3adef8844d960ca80ee90ac92237cfd5a67475241f0d8fd558df07dfb952fc54219fee76946c2d3cc498dc85b0b04b1d6b121d6210d5c97e1f75bfc1eeb7ca62feedb10f4c0384c771b331b230e951fb15ee5c5d6a2adff8a508cef25c6f7ba717a116b2fa8cd18e75fa5c711e036cd1c609dd5fb6f26c9f135bc214c13691d27c9624f711e6581a36270aa27ab4a2afcf84383170069a8c8eb7d9c8e86d328cb5eb95c81f3b5fd0738ab4f44fb0c71f543e66febcd8f4157ad4235feeec30fd3e4cf9e0967f34015bf5bb12a15fc46ef5d0af50e3ccf810ac4310fce50ea1fda53d52dd14fe8795645032c4976591123b74e263797cbc7e41af7be9b56a2195b4813a1d3438d83e3b4da2421746cd97f92176ed9eeb1ea29cb5a0b1629819bd7e7d40c963e629960607aaf96c2a3e93a9f52a37eab47b8c7611b61d5a1b9fe3d8cddb7acdc04d000286b7d8e09e8ae4e58fef9bf71ff76600bfd9c0a7f40a69d58c76459436959d916e88ad288fb4e82a3586b79fcd67f66b2711dfc0d9d140cc22c0a40f6fe46d09c12caaf56a45a7065663d879e8e6f12aa05e9265b16ce1aa2513aece0ecd83d15133f69a7c91fe0fd44eac29b22658d3eb16bbafd2e11647f0e1f7ce67168f5d3e2b45843defd6a4fd8ba901fb4950edd98a4e41b1bdeb1581c44694804ea07544c2220aef5c3f3d58f7d053815d280a202629dc6a45a931c7d86bc8256575d58cfb1bbadc473455fc22a7fd94b229cdb8ff4f8510c126887593f62040ded2894fb7f53665adb2467951efad062d30adad1c9c5daefaaa5748c614991887cb87b421970b6c061e55bcb2e2ad0dfa3c17e869b43ac272b04fcdf4fe29baedf3bb3ab6ad1a22bac0188ee3712d3db309e57efe5fc9b60c3b4fd2bdf287bbe16e88b3822f45868872a99b78265fc5f2c123e7520411ebb2c65652d01a0e2fea8e7cee2a7f667733e208f20a0ef5c845621cf4c2393f360f0f7a0b32d6b1621cbb8366c89ef90cf20919a6c9f5dff89803a50cd281720bfe75c7cd6e25d12938f43596e5ac23c948bf73b05e4e48b0135d1f3c59e93c140cda00463868dfecc077edad546cb99a54348104dd60886874cd680a38e74f515f3e1612a42bbaae442a80bb3af176a73b24d929825955bf33a1541f62cf4a00b7adfb0c7f20442213bf4a531718c245f8885b306fedbbe723cc33a1dc27c52052c4755ce2a302a412955173941c109f52901528739c58dfae6047d04845294d8ead6f94f06e33e96ed95222b1eca8068570aeae6afb5ee3d5d93302b114a815afa5e5ed4202a9bb3ef0ef373385692645bf4aa5b0192cb2834488ac105aefa23b4fa03fec0319b0565916791b50ac339942cd34e875354c27757f4a4aca0c4f0f2fdbb06869f4ce5e1c8cef81791f2280b42bc2d6884050d431bda7a93d2a0e77e72485bef53c70965e7f5cc599d48b7e00e5bf1f5c9f4ede54e56bbdd4ef28d7ec127c0e9439b09ca7f568e18b234943ad6991d71911e2070942517089d2eaff1f4e6e7dbec1ca498f99b7d4e0edfd191b40555babf8075eb5f2fbfd0000000000000000000000000000000000000910181f2425 +flags = ValidSignature,ManySteps + +# tcId = 40 +# signature that takes 20 iteration(s) +msg = 1305000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0e0e0793a9f00d1014ac745f73ee18458e19dc0c9a82d62c4f7c5f08cb302f270648d108b2a87a51c5b83e6aa54f4b40531f01bdf4f59315cfb96fe20a21bffe3ccb5aa55050ab5ae428308e9f1a95ce546b09b68d9a3036a04c71ff617dc48b4a3a732b4b688389a8249a7ff14a35d52b6c96cb0a6d049054de0f7ad08669b82f94745cb89798d86fdc0c2375303f5849c8992400889cf61ecbf63bb5343664f6f63854d3518f5a63fa55098b33943fa5642745b0a907c8af07685a18d9af65b121e90e7fd0c0cf62ed87b09eba0f06559ef813649a08a03c0819da5479dee4d170c17c11a119b6d9055151bfda6ec850b70939167b4d4d5bedf4e5aa19c380b3f87b45ca8b71dd9007450213ff67338a2631b83ef73499c4cbcb8ac6210f836e73605eebb09bb911f63f8dac03570c245b1826ea4ffed10e7d6934fe1d2e5358d52f18329259c05b1e570528e7bd160435a826e39781c8d3ce0b933d3ae34c33c09c6a4e535e3f0678c27e4da154ebb05039d3775a3bf948f579e8920b12b2a50430694fbdecb7ae7563631776e7b5aa3d889b3071964417eabd2bbc3fa551e28fd49abed8fe37326770db6168813903a4b1f4a149cdfaf2e49d88925a6ccecb85aeecaeccbeb94aea175fdc4eff8eb6cf0ac7cfa2897c74bf6c1bc5daa283398b86416be811bd6dde7558bdbc5853752f2651369d3b142394fdbafc1f2f8d1139df065fa16df69bdc9acd8497a89f037cc6cb6eae90292c7bc8f1ef5d89a07ad877334c53b80419f864031f78be57a82bd89d523126e9161a1a5d126e52cdc94831d68cb1907545c0c619bfa1b7246aa50355591217018b7227447a7d17b28324fa6c7ffa1f5a119bde3eebd11dbed6bd9d8ad95b4e1d7b4d673fd35cdc96631e1a86dabd6bb7b66ad5985bca8888d5e8e145a5b5f48953bead5702180a99b9402a5658a7e7929344fcbfb574beea901367a3dd8ea90a75b54b08c391d5ea6373ea8bd10cfc563733c4f533f30ba31d3c0e49e4a5e5c91d45d4d638712aa80892a2a0c5922edcfee867e2fbb7f18aa032c774e9cdbfa59b1c27baa14e932f59631afa69caba7855bd3746a12888d5a1e64271242dacb972cc82bdcc64ec4a2c146306f39115d5c824b71c93b5833020985ca099a4e937aa527bda8e69324005462f5f8431d5bb11bca9e4c59e5b14096cea9e40a540546efa18e1364c4f1ee855cc8cc564dce2ab8dd683bd9804b11d02a1f510ac98c120b6ba64cce16b203e53ea3d1bc69bec0d06a17b30639cd9b24fd1598e92890e88f7dd1397445db54ad8df5e136ee60f22ac090f2bd905765e810f54711f01c63564ef90cb01108b2c2bf1a6fb5fb8078d609117e111604a1d927fd24c18354ddc006f286975be3bf1ce5593715a8cc873c820f778e9a428e08fa3db1a5f52fab22ef5d16056092a6b1da23e3c64f205b3490f0460e9aebf80a4fe9acd31e5747431065f575637c8c4cbc5dadc2753b90e69722182a344d3b154bf35da62c1fd0e98921559f7d6010fcea31a79d36bd763cee1b2855dd05b44b36c4301cf6070408f02689bc75ffe264f55cbe06886019797b3ce3206654ad4995628eeec2db47a2bcd5feceb2f3cd3246bf162cfeaaec8abbd63b2e6cc441b908a3301c860a3a15c1b9253cdff625fcb6de85ab78bd802dc5e073a0cdcab0512a076427d7fae7b663d9b81bff8f0192fa7db81dc454f32340e200ba59bae4eab701662ca6453c233be851cde64c0a966ffc6012681dbc407c02073b9890781c8f484c295720eadf934c73e2b412b484ce4bd599a7b8718088c55433ff1a78072188e289ade5861bdcda6d10dc5c40f1c189ad96eb188bb46741e5ab956214046c2db868c8e019ef5a37d90b92fce70ae8e4a5339f612c0b8eb43c61c0c63f3a59edbe6752d05ecdc178a8a90059d6fa7e0da0bbb7984b7cc1ab8045095558ee505b3ddc1b3db2a78494436aa9334f6b3b3896d33e556e8e2b9bf728b5c53c204a964a697da252a73b8c120b363923aef38f993a3db4c24c9a4b1f10f444be9f87677df5ff2c26e419bf9c2f8e53ea2e6f1bbbdf2b6c5090dba385a5cf5652f9929295eaafcaf282826305ec5766fbb03ce153b32d49aa7a66752a772d2091568f1b6afec5e53dc2d5f73eda96834404bfe58fa5aa692f266d0383ddfe12da56a61f93933b6794af38ee9e31c3721c1bd52a6690bfa68948ba8d6577ae6acb3d5adef9091fbb7d4007aa8b96a7d17cd58987525296682fc777111ea979c9f3b893fef381c03319d7c6b9d4d523a0e5b98953830e46f1bafc94aa6c4c323d2a8a76ed1364caab808dd7eec175eb230de35e8d6f4ecd0dcf32ac6b1be9d7d6ac740f458ae7530a64baee19357ce5a3f106841d99935d1606d4ca7edd2d5da69594770eb86827ca9180713ec4df96de4857323333dcc4c3497e089ba6388a39450d251f39a1d2d6c1d6befebb7111189bea14c0ebb75b1c64eadc76d8713ab2290a7402e86c16ec2eca769febb9d8cdffa530eeb75854b08c52f69c1bff47c2f775353484527f2e3f37171d3fb44553cd6dd4d79e81574d01a6d4924d7b2dda910f438eb4c7ec938e5211ff4200305fc3e9659f8d52bcd49d5ef6ff5125d1f8096107ee01633e32f159ef17e1343af03076061b13bb3b25d4422f21b616393cd2d36ddcf96598c1d3f6b4e29258c94ffeb07410d1294c754f25131f68b4018ea155a1c800df5913cbb5c7520c7e33c3adb8e21fbc692b9d4ae00ce6e06df53cd3c13b1d12dff0607c423d41bdd53f4a632a2b80937ea64605e49c9694cb68e3f82fbb164964863c9d58debe663db1ec93382b8149cba27be1c79b2ec53396421a0251f3c4fd3199ea45c944e250d9402128369ff9d7fa48b0dca0c945eeba9b90539f3d4207b00d86687418dea895a4d467fd7e48fd6edade5d06434b9b1b82ebc0110b24bcf0bd4c58f9d7e5121c5863708b0382838423fcd9105e6776dcff3e914c5c425b85b9a1c5ee805d28925f313931a500e5bed7a4be914ea3a1a87e8b798702d45c6961afca988059bd23f04c38a0f4c3e9d59eecf1fb1d07ab1cb41b472b8848e5a149226966d540b095c23b293d982682dcefb8ee426ccabb3a5ffa070e019de02aa3f4fad228420f27a07cef98fe7cbdc676476ace8e45a8be1e282c136189d11df419053eea59288a16e0708b1124535a2a9d42e5ff42d514d05f344d75d26abbc2435c42daecf028c60621061565f6fd5787d74ef09ba4e1dd3f4043f0a6164d82c1c8a56971eb1ca21a966f80f67bfe32c2b3bf34e680a5abb3279c8e7c71130c77337d439fdee9f0589c268bf2b116eed8c6042e3def0986ede75a7ddb046be0cb9c2f5982485fd18bfd4af6649c73724b9c2046de6eab8c12ed5b1c56662b52d45eddfc9441f88d6dab41afa2c351c4779f623a6b3e4f8de8a749de2ba28447994c57566178c29cfe2d927d7be251b9945583e0d62591acd43c664cf8e52a9f96b08bdb914e5cd40aec4d9ee49088be114d7f1c326622262b9437d4ff41ab766fd164cdbb831023e7b8a4c2f215e9d412ead4176445c5661affeda6bfd4ee4d0f39304ecc8db068496674f89d5be493a4e225239c0dfa31b8ffb4a71b71548ccc1cd8adbece95d2cd76e2f951f6862aa265542696a0d78acf0bce2e20cbd1afd6339f33ca27efd6289ace29fecbf43beace6395634e3cf6ae7d207f31058739eb878cea44af09d18d0100c719241948dbb25943f8426d70c76011a6655e47eab980ea419c0baf21bf3c1cd08a6b56a95cc7ecc803bcc6caefde0603267954cf865423437f3af6c3d229382d4e6e4ec8699ac7929dfa22dfacda6846c632c8006c0f1c7bdda56b9acb231a52a532b2c5ec3791b3c3b7c7e507b9d0a271afcd983474ee55e56fe4e7cd8a0bc6e5756f118c513c9049257bb7251038866517c4c00be889772e7d42995686cfbcdd5f343fd3f41ec7162b61006e55eea57837c0739c8bf2fab9d24590edc3622d2b1c472a1c9a5a4dc63a883834a431f976f1fac01254c5c319cb4da867d129f007a4dbeb5626a9f53ce8db7044bb5e1d4f974a0cca9cf955ec1561b8d0afbaa14988f6d14c705adf6c87bd3f7416611867a61fa33368a20bd19f295c40858d9d0946e3da6771c41ca3b23bb97659ad5f5ca6f48342c323889bc3f00fa116b9eee79af395b24eafb213bb3f74d2ba57975564bd14bfbb97bd824f5ab3996bcfe3d3728e6d2fa65aff6ec874aa468d297f4cfd36fa55f7c9e9d8ce610ff1c36aa2c5b596b017495e298df6e199a6746093be6b4ed0737e834fcaafb52d9a0c37a82d4afb0fc19d81d577ad451edce943112aafae8417e29de50541ec0a0cba83ebb61102cb9aaee51886fa5b46f32f43a3a6caf58201d09466577619b369986a3af1d5ebaa1c0fdb699328cbc95879205b3f519cc235026420a163dd96e0829ec098bee25386a90971477cb12c4db6bf7f48f032e631f106441e34450866ac7e547f3cb76a0452d1c305b3cc822942b5ca815bca6adcf267d8afe7763fcc8b70e4c31999edf5bd25d42793dccd212193bd4e808373b3c99b7b81219aeb4d9dbe5ef0c16455573858cb8bc0454a7eaf7172385cde500000000000000000000000000000000050c141d2227 +flags = ValidSignature,ManySteps + +# tcId = 41 +# signature that takes 21 iteration(s) +msg = 8d00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bb8a458fc151be6dd575d810ee1dbc1b0a0c0fba3b64d9282b33e80531e9cceebdd7f266d7d810d0e4ed65a2fcf188c79d0f8b72fb7942431510ed1a9a0dc5dc53783911ff8e486ba22a0789a685370bc44dffea387de0bfe7e610b769b3b701f8c544ca3d53df14e0795927558ecda480cd7ba8c0d19cbf954e032b253289c42c657cc18ff7d5ebcfd4ff5163e8a36f585ba1409f1f8f039f87b1ddd18170048a08e4366a19439bccde7bc9d220642eb94896f4a64b1bc3631089f71ed0be13b4a38c092cc5999ca9c4cf4a4bab102f26599f651133f51cb2f1df9f6bb7b9de9b4899a38d26b9c6ecb29efedb2038bb92e2ae3401d97f3ad3e1bca5601b3f897a2ea831e6a046a66c69a7da9c1e256da45ca11d4d63d3d5d9de9470c117a4f62f3774fc9c919a73f06fa9e27c440dd94aa19d52de6e53c5f500821fae286fea255486434930a444ad90a9eefd79bf9e335a995d652c7f335d09f7519354f01dab9c10d292dceded1c0db39591544a4045cc7d3d28e4da6be59760ee7a74e312e482ddac340f6c6f4e09db4df3b53052fdecc96dc7aa6d6bc160b991099f0aa81ac1982188245dd1d8b111186377f2f617647ecbae26f321aff3931188d2df051f3a4296e406790514a33080fddc43ea4418d44e8f3fae0660748ca4ab61aaaa58a6e2fb56b8ed389b44afdd63243bb592e0d531d79e75d396a007da95535df0ae74d9fe6b61f997811e3934150f4ce8aa292a0fa59f66c5141e3bb339eec3587b86be94b765aba9f2362ba607bac1ba18917ab7b15f3e3cc2270109ec0bec9d53fda5c276841d41f29f91db419fe91b7d5a2f04c5322a15f552514ab592ef54b59539fdf2fc66617f5baf1ac054da64f9064b43392d2d14823082151ae5f8ab536467543ed5cac30eea35904b4a737a11f53fdff7a5099e915b1835aa32ae57e0a14a781966d17ffc4b66c62dc4f35fd414ae0a22719241e863b60ba63e82e2b16dba8672fe7ce565007e8ab53687561c8c41dbd736fb8881c5fae17a28cab7c1b2483a2ae932b55e5b154d05b66c3b6db45a7049b5934ee5880471c3a63321b193c642e6ebe89c54f6e60f819dab75c4838eb6ca1ee80416dfba41e7836f3f2361fd4bfacd3102c1f28ec517ca8db5b38ae3f48f502229f2144750d5d93e4c8125168ef9ac066fab91c295d47e04a01d30f1cc7889e9f9911a1ba9b6d44014637217571f2e7bd371775611c00d651dd5fecdf342e8370a303dc7e4e936dccefe0c66a8d12912ce2fac1f99b45a5fba11a942fe927005ae7e9453fef8a926fb6c8c3c90d6ab39bda85dfe50ab95541c71d4aa5debe9b9a10b92f74f24d09341738e83fa7687bb97054f20bbad10ca1ca2f88a2d9f51fe9e940680785181fce68693727c4a39c57a108f37e41d35efc7e8249f60eb05a68c8b14913a85be41ae96e8b28a9f97541643657f13d6823535edf8ddbba95ea0768d98bdd126f9829025b799842e2b58be73022e16cf46b0160bbb93f97e80ca5b7b4c2581c3be3d7bfcd81a2399afac6e6388a9707d7fd7e1b19a56c786344195a89da97108c2b103ee87172be50943de28d95cb76722c070ce96383b4bfc1958162b1a066faa9d880dffb4b6c4a864b0461b085eff9dbdecd2a2643b1390bc3d5f00830e6e43aecfbd3b762ec023f2c684407e9928ffda93df2082231172f42f5b887f49454e1ef973275a865950259afe4d3b9dd5fc1d14f07093248364c37db8bab873070fb4720130095eb7e1afe4899ff806ad9ac19c09387157a560a98d1a68a1f0665087377f5e17477279c094ada07321760177c3261b9042c36c42060b700316a93450cf8dd280a0f3455ac8c1e0de4bc40aa0af63857efc77023077e7f16a805e909dcb2a9e60a43e7d5d22fe30f8f8a8291c79a2c08a8b5c3bc9dac5402e6e3bf87898496511be0483e9e11c69b6356740bf8cdc075f3a38f9d489ef3b7f88d51734c8bce0acf6fb5beb7a3ffded49ddf0bf54d6958f4276421bcfa666c273f3a415ff69ca61b736eed168bb3795f9ce647cbd413b027e520e22ebc1500671bb11f056b3b41865690ffccac3718a597e16b217eac9b4fe268520a5d342f1de7817c3568e6249d9f4f014dea7b90730dd06ae4acab0a5e598fbe72b30fac6355068a74d8b311348210822d6f8409e77806a259fe4eedcb5934d2e09f06f2fe82274c942058861d5449e6eb923ac947d06806a1f812b6e4ae2e0a929aa244779c075d7b4cb9edcc664679b6be833c81d5c688517eff2d10eaab41f93e48b7961cfabb5b9f087f5f9ceba4dd8d1aedadcf5719beaf1ea95398634ba3cdae50ebe9e46928f4a2fd153d38ea9af1cf2e7b832c19712ec57dfb516507dd3b12ae1eb82035c1e3347ab97c7868142c68493756493fa571abe71c635b928935eb50cee1c25a9bd60e88258dc777dbd7f96e751f1bde620940d8659730a4734c77402b7664d5cf6d8c562d64284c637456dbccdef87b25e96c21f9962eeceafe99a9d6199cf846a3798fdd09997ee81cbac964ee68bb34b29d9dda00f251f7e2311bc1b6d4beec8bd4d3035a82285c2288a90a216a355e3d1064943649e5fc46011dd1ed2fb9289997afe982093619a6f72d4a6b6093e1303ee88c74721e4bc7ea6289f437cdbb9ed0a6cffa5d7d918368b986e070c3dccb55b1970457d189f9b59ab8e963e5e8337292d4c71445ca44241f9696d1ce3910804fe7df2dcf5854fb9116f96a1a8652c8a7f2c1ad07b07b1da41a21148bb9b24e8d59dd023e58470a188453c4cd9ca7022520ddc6c53f64a5ba9b3563a7d59ad317745a226f7f0d1af6f71a5e1816c71e12aef1e8a60eb67c4c6371a191a1199424cca295a9ecec99bebdd1d386e955fe0d4b4e7b853100f17e09d5e12c8ff569e67bb7d118759ebfcd8c1e954a6cc351c39393ace4d531b42e8aefcb533020169991231d525bcaffe20615d0adf79f258d7b3f7872e1c39d2ab3c616ce79ad8054f0c55241ce148437818aa8419231d72453dd1fc28790b724fa49dc41e43b838d83d8e6978da66038258008e72e3009ebaea2624af497309d9dfbe809a97a67ffe71e68da7550f12ce66e333a7196f5402dbfc35cf9c021b8150c91b535b76f3f6cf2925e2b5c7dc9318a34184bf1e84b06d8edf792f8a62845c0e4a47e5af5327353256a164b167a895b6617a503de6eaa46f1be6a736b4a5c81eab9a6c7c7e78855b44d9dd673f91307977545341926d8444480a44da1f7a38cc85d266e0b43896db4e8df8f87ca1994160090884d417eced5ceef498f3d86bc482e6787ba9fd9f95fa451a9e49ca51e72453802937b2e1817daab14b6140e1d12d4c2cb07567fcbf4d7deffb0ae80859ff3c3e07f7494e16671ff2c2eeb921c52fe21891ec58042bfbd247d6576da111a7b40d0d68d7a66abfc133b55912df8f85fe06985cf91dfec0c6cefdd646ab64b30abc9f402e39f246ca3b90f9b3c7791443967fc31c15bc38a256661125082ce326d61ba7b9ba49614cc584507cd974baefcdce6564a0332deff73db28129a79b28883878e738551107e255a719aa10f5a71bb8ed70d053c7a0f64ff47ce85239bd8965dde32e87720a5661756d2bb890e0485bd3ae22f4f030a9c76da63fe0d27146f16fb02109dd247a763c74359f0ec63dcfd7146eb747e15be6a7be46b30b1c7e91645926122674a722cd920d925999a9d2bc293627b5395143769c26e544e87eb076124d4bfed589f9a0b5cca4a7f52f16da6cb35e3956cf758d0848a6715ec8c3abed15026d40ba323940f85348c6c7759c5d7fd0c309ae46e75fe76042f2bc3884afb8972f87f3f11bd1815b39869c1ba5f4e35569786839c792c7149fcba176623566d29ab1dc29f3bf2d374f24eee794e2003af92a90b06a5ca67b5ccc7916e9aaff10ff1387b72d72f6edf6b450ec2a47a21311f9b4b0edcd468c43c53b7e6a233ce134512ebc742b9e59f8be7e7605f2df5fed2ed705e679cea3fac404eeaafd03b0345764aa821a40ba383d696be7749c5d35ea43519b789c06f316ccb7fa468f5562f688906442c8dc36d3997e51c14353e6022cc2b882e8296ea274808bb87ae9e62c307c65cbf30ddfb2453497d58075c2c4e6034dd8261032924750fcffcc5fdffade784907d7ef657978136ab2fa29ad20c9c83c3e348a408c5065911fe61e0c439a1d7ef058116934f6497d96dc661f8ba21fc255c021c7b52b6aeb0f1d2d219ae131ab0e0bd01967698b63b859c14b3252a7204da5cdab7bd2f78c6cb639f024c92465635a41d115ea6d042f3722d605e7be2e868909183525ca088719876ffb987afa2f0bc147026e1863c528562619ee551c64380ca2d8c315803a4098f3657d982397be8262f7d34ff4c05f45b6b0eef3d7c13fe542c851509e08b9fcbd9e48d1ec72c790cbdb9dac3fb8c7a57c8a9e2eb14ea840e309579b0d04096ae896ba2f3e45af7939dfa922b96d4b76da3c3b992cb72ed55c2a424f371e020fca507058ca189294a772db81e05f33a50282c689cecdf4c28df5e17bf6cee74be67ab96d7fe26cb1d3a0333145557a9db5e4257b1977bdf7fb41496b74758c94d2f7154d5bdd0e2c4a4c7581e600000000000000000000000000000000000000000007090e171b22 +flags = ValidSignature,ManySteps + +# tcId = 42 +# signature that takes 22 iteration(s) +msg = 7d00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 7b2fab305f92793314f5aea42c8544b5a0af4ceb7fe57f194c66778c320257377aee97acd7b9fba4c8fe18cb462792452d44c507f7840af2c6380d1a25254ab0874ff347626511b93723bf76abb608ebb0fc056b453473b1d2c6d7264f0f2712ead95ee34fd8f620925a36decbf3097ae92f04dc9981e1cb96da9fca9fcbb41b64fbb617a21b17b37661ec5bc538f00a1acc07aa667482daef1055dde874d59b14327dea97ad4f97fb1430972ac82360e9fa070c9b3ec2545037cce1dabe34c274c1894add81507268721c2769f19fe089178b400e55822981c2f8b9f51f96c48d83ac24ff55ed8f5a0645d122f1c17da2bc8da50cf1914d2900b1389ab9f1a00b6253a67bf907641ca5385b49a07ad3ea0b37e458e6caf5b4dacc7c74dcff22ba677f23ffb64e9c1e2edbee99e7c73207d3f288d2285a7c0e14c3b2ddfca88df6934acba9857083a131d50c88d8f8ee8d24304e5610dc53574b8d14198fa008435d33d03c42e377ae3c627190a1c6a1639ddd98ac90b6b6d0bf7a50672000e0d09898f21c705c9a5de142e9be15c0c0f9b06347f61a0ae9741aafce0c418ffc1908c8c20b68be48a6d5c8f5c0762932ab3e73a284ee039123c2b9406751ab6cac8c610b2aaafdfe539dfdc1e800269a0a1fbde3b5bb03cd938dd08160fb8f236724674d016a76d24832f4857bcaf7faa8daee394ea5d97cc12c6de62081050c0d0f46b10a456ddcd12e352f9fc5a9776087fc6d16341e0346eca5cfb3ded070e278146b987ffcc9d56396fa970d22a20491ebafc95ce00f5b6d8ead65868bcb6dd6f31bb2a9d85b7951f9ce8a8f7bd7da2753e54362c8981ee4714afdf398dc258f3f0e485db710f0393c60a301ab97d801c7f268385f5200e6bfbafaa69ccd87fc1eb0c29a2c6f73820d6b5f561ad3659e7b895a9ca7798422a673594ddbdcd17abab2afa6b7f5d5c0236b33b3b8e6129d9a40ed534bd158d436bc3279c769abb3bcf4ad5c4e864f2461915266ad45b7bdd91023a09e1b3b2700d8294472e1b4a40bb1a57844183f80dac369ef701a0bdf2290f3283a681dc432b396451f79853359ba9df78e8a6fe6a1ec4017405efc4a78199e3365854a1c94ae7affec9682d1451d1a219c9b9b17ee6726281c025479e2dd64f835ae15aa2da8c38f4f07b014b0e71e88a60b95999f77aaf33a64cf6bcb1bb93bb151b1762dcabd12201a5a1e7df878b0c1055c2c263bb10952648e1429839fd180c173c6270f7a0c43c7d1c0bcadf81c0400f1d8355b7d0983802878d36ca0dd0c251477c12cef09f764cb261e171c1d8052491e7dd0cbc3c2801a06d7cf6a67d55c3f9633a8a2d74a1bf49905d29c7f574d2a2039f41835dd6f7880f3dae8b60488580975d9b19d1c2d5b64f91f01b22caace58142ada05cf6bee8e6903362c18296195b1177b1aba590e9865d4df042a33930180fb4a99a7e0ec262a38f739c098e9b48f8a6033434bd506e68c46fa0a0e9dcf7562e27b48e450c71e33602200192fa91828ac40854f33ecfe8ebb0aae4ff1dc951c3ee248783650d9e4a56e7d913e5903abc845b970397d8ce6666f410505336e7b906ba63e77470900397451a8528ff8c376a70403a4300f80b5573921f29ff90728286022f6ea62f28e9b6884f1c6e9d07b3d20ac2b281596ba6a2730b9cf447cefcd72bbf8f95ec88d0565e711c286a8c269ae9ceb287ef6e6d00502a8a89c766a8c39d93c3bcb654a07acbf75c7ec12b8c1c494b55f9a41195d3fd5e19bb4d93cbc16ca4f05be0a86a9aa8994d12584be162cc4d71fa629186af1e3d3b74e5c905c8be923dda76b87071e84883da2585f2afa64f0955434a53f0c0cd63761291c88a4271656e3083982e9360e0b76e18f6fea30736cf97f59256b5739faf5e87c51bc76a8fd06b4a8563a11a3f2466249beb3eb8fb8fe8a3d0b9f06484f6fdbffd9aa7919188b626e8310f9d1c83392ead724185c62bd1b2ceab020cd305c4abf081bb3984cb50c1cdf7c59456c96f91016e9ad32c2d47c67218db359248da09fb14feeaf6bb343319633e7869d6103571bb5b587256eaf4551d5aa74860ff266f57e55f8c65a2ad87aa938b7f156f2022b62282a0cd4173dc090c5a74aa5702e50be4495258c509d22ed34d63622b62c0dfe1f53464325280281a95a2c273e17319dec4ccac46f31d953743e03bf22f40b0fff77409072dfe82876d9d45a11dc0f1d64010ef32d57eb60a5288b089ec9d02bfbfca6197eae336363bba37435e1e558178613807da640fddb0ef205d7c91ec186b397bfbfa10d588235013aab3ad21744a5957def19bb7bb7cd4f676b23c7bf87579ae2a5fc8c0cab31d72079a4d0cd69944564252f9603b508f5a83e19f09c704c574066617e8b6fabe690e85d92dcac354a435319a93cc2fdf3010c52e38d6799381e8cc861d69db0ca8defb5f8b1c017dda46ca9302d8cc1d3b1ede0c9dd63349bf6011050c968ca3f3011109314dc9655d1a30f198cc84bf12c812e90939d7f4075e32697dfd2cf6d17589494e775ca982952b61f8b99a84967a431deb64ef7ec9e882cc761c8bc66f7de4006eeb13f9b6ff2d92db458ffeef5b2cced63172c0f4764da145115b615cb6c0388b6e93aea63de74bff64fe40dbaac7769981bb9655de32a881ada616e96cdb74579a0065bce2da90b64a813d57abc8f6543310065cafbbea9512355cb3f058b35bcd357bde9f55fea564a6b14bb341c6c755d4dd5a72ac79d855fe50aff80d683530ee563249d0d65f64debcb24962c61ba05c5f811b9e0f4e5942797c24d2b08a4592d590cb871272f5c1228e9988955ca4f990ab2b138cbd33646772767d4f76e8725377818ff1cf03c01fe64bdf05e61a1798c0cf3b4b69b1df9f756ffea314fadd17a6c6ded6765d59b22e449ba8c78b1f8f7b717de8a4462b02d1bf22f24e821888946f309c7e60115049997f0a98e5f04613acb46b5e231da31c482c25e7eac53f09df009728675e07cc3b33a0b0c6e9199664a00c8236a3a9ec9d6d5aa2e9317da6efc75e03d95d4747d51767485c4ef9fd438b767265093bb8340119f94367b506796bbb6ef67dce782d879a3673c0e8415c6b55c4faa3556c7c823879ebec0694dd0783ab8f5a60ae10d1c3c42e309163bdadd31aea4869a673eaf797138e332df0579567ab7e0d1e72820de3e7068ac2ee207794ed41737dd698f3d9884bf3d8f37981406d856a4ad5a6862df70400fbfb719acbcb0fd6bdf6d7c4ab3aa10bc8d6d7452fb9546845ce1478ec9804b3fc0b64e2a292a2b1e244a3601fab84d082eae74f635aaab4b5c1e6c342a695f6804238887ace79dd8dc63c2266d259eafd2fd876517ed9fab048444a61da824c0c836977a82591e1f7a813b0898863c2566a3651c0570821ee974c4d031ea7df06264d1616d48bf6b2ba17be39cb363843b06c78d112c76cde5cd8495c52019359f4aabfbff771acbb91bf97a5acb1d46d2e721f78695b8a66a145c15bbbafc77e5070305b37e854eb16adec67495c35f44068ffd1ab55fcbced4c146055343dcd7bd366b604ef8775a9985a1bf0575482d162edad96ad645f186bd2bfb266c3b178f01729037d9b7ac8a77c518cb5f316c050edbeb0d90362e21d5dff7be1f8632ae42cd13f9d7071f0ee0ba5a1a50a77b05fe3f089f1ba56ff7746ef35ae7bfb16c2267118e203b75ac19b334200949f8db6dfea57e0599ebd3ab484bf5be07a1d1844aae9d63af81cfdfdf1fff686abd1093d27abdf2e92308ee6e3e15fe197e3a9bc6a9ca889e06cb73cf824363267d45095e8b71f84a9ca49c66ae58713edee540cc357a08a7b855efcbffd95f2b765fc9d7bfae809726c3632915a0af1cd1a01abc864a56539d5fbaa21f7a58f430164e81e65b90f453c15f83fb9236ca8f54fd2c7e50d0258e9a383444247301aa1b42c3215337098ed426bdfdcfb251b8ab08c35fb0570dd08ec68c1896a7ac95ba6da0437954fa029b03aae7c64de3ff3aeffe38ef8b208d9dffc62e32f44bb968518b9a0059cb2ea2e59b0c614b7787d0068ff7fb5bcf59ca605dedba63a34626261e7193e97e7e6c45f3956fb46c10e88a94b8c097cf2016f1c2f76a4db6568e038373a7f959c09ea1223c66a5fe011c241f206e03dcfa03964dca7bef53f1a442591706fceadafdc7fe0b1ce3a54a2e391e51555beb3a290c29bfd2d88f1bee4dce1c6357b4966fed12f61a8af8c90bdad34b8d9bb9d04df6c12b717ba937fff7875cd58ccb01c8573f4341fa3d3648cde127b6a9c4a7b09dfcf50f39bf44d1fd94f5da7d2fb1c2578b9c6ccf19b9920bc76d1b91513bd9088ec1e818898609ea9f5719e4b458b9ba28cd9dd43b0402774dba02f4e1e6e5c71b167caafadd9678932176710a41184ba19702e3c40663735a1811c56ea6817c99f20b5f9595855b46839cc64450acfc71cec14c5d56c2a799ac26569cf58a8d54b0f984828d379869cd8f5eda5d0867199c914402b016decf3e98a2e63948da228f29e6d52a9fad658997c1d3dae404179370ab68075e49868abb5d20fcd4641a83469bc20a288c93abb2ca105b6bcdfe0f122129303850e3f33f6189b2bc89dbe3ef000000000000000000000000000000000000000000000002090e171c20 +flags = ValidSignature,ManySteps + +# tcId = 43 +# signature that takes 23 iteration(s) +msg = b900000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = c00dbc9431a2e5689d27b5a3f09c62fd6bf48550b9c6424db5c6027bc0b5cc8e9d29f05fb9d8f50a85d2c5d8b7a4f7f36813bddbf7caf8eff67a6c2e148890f9438a5ad85e6f4eaf6173f122dfd160a0ad5cbb091d08130677f196d22c8bb6793d174f71516d42bfdbb18fd9a371286d03ae41c7515adf78b0b9d0279538415f886a7818c6e09117ea092235cf18bcc834cc07de3a639c472d63cc2c42f6178a4c1fc61e5ec1fd5456851d586f37b59ffaf43e3887616136f8ae775063d5e24c137f63023d056ca2bdbc4f9e059a906fecffc72cbd6ff702f06429a66420bec5cf936c4d8f0e2f888c9b5bbe81644be03bfbbded0a1ac71b1e4c2c4df783d6d2621208f88c58dbcd947fb62ab972bc0865dd043528b9fa057c4e7a0f7cfcc2623d46745f4ef63b66aab5ae5999c625fb20da4f40d2112e53122707837501a0db379f262977c853083913030418cbb78a12bc6fb85857f401b7e9671eba59c1d11b55f83fcbcfad880c0d8492e03935341488bc7f1f77daac3972a028adcabc1b3f3ed7ac41a5caf911aaf8c76e0ea75c1f4ddd109a21e47c7a5fa2103dcb5e588c354d80feeb15c3495c9c0303f7d42e2a211dcb9b0600245b35448735877d6fe378b38aa279d81baa922b56693a2cfbde2efc23fdf80a78a8f50e9c587f2d63e29f0631633743664a83ad3a61ce12fcec36858714f399591229f7269023412b7cb3cebe64691d1c63a297859d10d12d221a43e37432da12c9c7965aa21bc82f7047ee6018095f0e832677d83f490b238f00e21251cbbad5a9aeddf11d4d4dcaeff0ff89caf1e8639ef0d26b31535c3fb73fb42a6c4c399882961a51ab5799109f58104abca73d8083c2a4b64ccbb9c1744b53d8c416bc902802abe8d7eb9a39405c91b61234ca7d35735e18e620067404d0226e7410f63c52a5ab4ae58281496d683b84e88055e970462b9d11b75688f8cb3dc47caa0ba1caa5106621bf59078ab30b113b4408d891e63eb7dd1db637607e6fe8b8b835b2205c5b17e7650a26ce59c3ba37a691a8efc35b847239fc7c60f61ffa06d3025855fd8e63f1cabff8d3f76f19ab3ebbae67786de70e9880887642259bc89d4bca52bd243b851b7e229ed4aa7170d24339d2e09ea779189921866a9bb773f09cf832b93c95b8846e2183f8e23b47a92d54af739dd9ff8cdcf13dd9fcf3eba396d3c76569b733aaa543051668cc436b2ff40a366284a0eae55246389268cab3d516b19e0d5184324fab0d0298872fff58af31cecbbf9b7abdc26509792483451da1cf5c53effb81b76b2cf28d0892de1cad6cd4ccf91496d64d31b9e8eea56cece8a99813ec49ff568c32763e3164b638ebae34852f8a827b781ba03f4d42297b5725c97f9a6e82668405f3b0c589ee7073121e07c7c39901e338685a5b1da04a127cc2301d4ca4685777ca9619f3cc3041a68c4d6034cf3d58dae42e61a65339885151f70c12eb9d32baf5d124bc9b47775b612e35965f99ac25b60bfa182b84188eafecf4e761b58be536d8c241a5df7cccf92bfb51a9f796521f6fa8ecaeb8574c28736d2e9a3e05aec22125b8ef6972cf5ea446737931e2b3c3c27dc3c84951fc60c89151082d222008a271888317c7fadcf621c115774038f21f89558111247a81f6f5e075577bca24d798cd66495e4f4eeb405488d0c39ca05e8d31619a5e65bb6b2d5b8e5683532e9475cbb65190a4abc6edf981a4de572ba400e6f200320cbcde65f64fe9cb8bb204faa9ed6cbd505b63aca60ade2ca9c79978bf0d971a8512c11e2f8bb9670984cdf29fc1a08c2e0f60cd4bd0630c0b3b34ab16f98e36e68a72841e34525bb5c7bdaae3c221e6d62c5b495166a9acd5fe878c766179c4ea5d88b3faeeb92bd0ff372de4f0b4f7e9002c097c2ff679c25467499b28912624de5252fa5d48014289e75a73b01021fe0f302e71342d525a53e754c4ae74c700bf187d004ca04c7bcbc956599976f70044fe70d22a0c82a3cc2a4aedb839f3c1a1d0ff61d815fd5cc74ff9c4eb40454ab6a53701913f176df2d57eec4457a98ed417c6e475d4fa068c6efcc2c6fa68bb80dc14d88d42d692e81e3b791955a2a4db7b9e0b2e959f4c4f04157ddf3f6b71f93e2768bbd25e807dd3a73f3db6641b373f1836782fa9da011c16cc5b6ffbd1fff811e23b1a3e0ab162c879369a13161010f5997ebe78fdb5754a34ec51fbadddd1f2afb927434175cb7060801c4ae80d4fbc8f9548381f6bd941e57bb617fa5d78ae28708e054a343b143dde9d5afafddb9181484cbf910d431dac96cf60670753ef1471db18911c4de0f14468376aebe23a37d7a661089e5487d9d3c5115a563f24267ae8fef4acd06105c7f2da0ef1691ae589105a45ca335c408e765395b2a3cfeeb3a3d6479780e38e7b52af3259cce9206f305e7842471c6ef555bf1d3fc6e0afe2b8ab769e2aae1b4b97339c273c051abf2b62ee283935f4253cfd1e855a2d549c3ed591838f423db0aa4ccdad5b14956e01e7afa729bc86a563030097bd6e446c990f83adfa5da4a2d71e42aac0256e8e48957f301a745733a5dcec0f761d7da4f5842c99016ae2d91eba8b29a9fc48ced59a08dcce4efa84acd21583442a24f444ee03c8611dcb108f1e9d8d6cb40330bc324831af3adb7585966f3312762d131ba54e45b2b695804196f3b1bd5a5a633429579cd18fc4dfbefd7c7c53873764d29c32938f25578ae0a7950c29934d9d878623640adfab823aea5b248348ed029d69a41f2762e3bb859fa62cbca757565e56759dd51501feda8f3be5468dea32f51d5503e9641e3bec3b755aa0fd6352a08254c1c95c5b65472717c486ed6e090ebaedd6eb4378e75bd71887f19bbca49ef148f913cbcd0725c5097cbd601e78a8746464e552c08127eeebaff5de1540b37b7b9dad95c74583eee8183504dc4d61d1b30d51e5a7d561173404d97b563693c17083bb3b055effcbf0b40e688ffb37f46d3a291ea0b54cef41f8f49464480b17f7017f7f6e9df2805f81fc056472e69cce7222b827b92c3fb1aef3bcaa6225d1e8c23e0cb173c2c2c936b43e89aa89886371119c3203b7cd3394e7bf29a0fbb64ae19d476f118dee4700a7ee400a73a07a8896a441614e3116f76cd58ae6e8b9bde7ec97ab8776e84c9dff4f41680fc306c026ee5caf39b58c3627477c19f3f39b3e35bd4695ca73d4080a80cda55be5d3dae4eeef8f24057f45b932fb6e58c965512d3bb07fdb87797ed007f675d0e89085d7eb93bda336692cfc211a289fc104a9fadca4b1de6db0e5868930ac571814e175cee5fa8db276ebfb1e51809584da93bfbdb0df3397ac9f4fe47ea2bc772c7de7006112cb218e5cbf402a923baedcfd9e4991a8cc03b860beffc9afdd8bf7265559c5af0f70c4372b1c24eb8d4126debb564780f7286aa17149697e7d9c327ca50babef283c6a991bcf8ac1fc83743a8ab4383cee0768c556c02194b1339f92bd1f1e4919585e74251ecb7defb768021156c7f096dabd1aee777774b5d2537957d1136bb457b7d37dbebd581a1b60c4402f25c273aebc1bcc9d2ac03fe3f93709932b5c95cec947316d8762f59784baa0039a33e8916e16ac727005ea0f1b6eec3601cad5b34bcd6e4c8f3b49fe0b98ae9e081e6d6aedc88dc3073e753a11d0c3a4b64fa0d4204446aeb877cad71f78b61442da7ac3fad1d8f581be0496ebeef0c4625c18f10427983675e57ab7a80e415217133352b5b3819c76d228f79047cea790440810040b878b2a54d18430c43c322f83150ed13ecf3349c158805ba0216b736554859f60d62c0ee8561597f52a51677beca0db358ce367da78bbfc6f1c3a9445c53fd91e0d698b26c7b8a2b4a201842f50e0d21e1539d90877fea7299fc08a831cfdecc45784febfbc462116a7bd12dcecf301a7da2a978f6527e57f1be5b52e833039d9bd00dcb87dcca99dc887ca0410646df7ab7671714e76fee5b78006ec1c7f53b7b5bacdfe0bbca426035067e7e00242a604c568707228ca6d5033c26a9b2dc6336124e329a98e78c1245ebc14efaa499183c7df43b916d47dafdf9126904c8b3559ade438b2062aafd600d3bfc3ee5f3123e50750faf9fe59571740d892371143706befe00ed39bcae1d7ae604a9bce4e889c4b0669e5fe1103ac5a4e615903a5c3d645144de577d4aa9d3a4e5abeebfdc96abfe5a07ff7d68aeab1b3e18c5a118d049e1e0213e2cf9da583d2b9f7108b972d467104599e557bb36a710d0beec84c13cecaaa0f511355ccd351da2192f450035d6df92b955b7e241755abe8ac2face7ca735bf4d034bcb289dd37e7336b382b0de8ab1a02b59ced9ac9f12a38be2a9d3215125ea5aca39b1b47db4756a402d2c5547819d0907cc3245a7ce5b3be4ae2ba86c62374337903c6d77986c496798789498b378227565d7b977b8eefe14351bfcf49d6eb15c3385e8f63cc9fd13eb69c37092781e8c2dc3845f744c1511c25a6ea363d7b3146b5602a07111980d9ab1ac4376d46fe5990e75bdce9de24b9af38bb6c65e6ddd410a1638b5eae14bc596110528a237a9fa7bf1838614e6e7f8ad3070a97cb010b2e30438a9bc1d0d1dfe9011517596cb1000000000000000000000000000000000000000005080d111d23 +flags = ValidSignature,ManySteps + +# tcId = 44 +# signature that takes 24 iteration(s) +msg = 2606000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bd1c81add57c6fc6aeae596d5e88a9a40a1f146e21b923909e3c90f10a77c0451e9af75db5309434860e43f437f04063d72c40363967069240efeb1d04aede6738b9b9024b8186041cc5916b8cb0098fb0dde884e093911e4069949d720ca2e9ed86d442ff7e07f985348b569206c6640a9d14d3d89d6529aaf4b51295a6384b3a6e63a046d3e89bff5079d58728780fe8050369a06b397beefb82a6ae7d9f6b5219f993d34655b578454f62fcdb8421b8bdcbdeb43139e4302c44d1ae23334dfe8b51df8feebc24a936bee7b4b647826994da416318abed7004abd7f8b446a32e8229e60f1007b1fed5795a8df27392e7a3a1cf8aae5184065ca28312fc38395f70b9ea8b8cfcf1015b6dd4ea1b2c17b22af14234bf102a06ebb70a35ce2c9d0c8afdae728c169609f61aa09afb14ee9911cf41e6632a031c9342f8448f4f78ab81ea49cb57d18d07feb70d18c16479a03d4cf00b2e5e885113a16a50594901c6daf75f49ff990893370950684a8625ca8e882be5488cff442ba82d9b3b978e6908edaaab70ef89bafcb1327b3ed7277bda85f1b39b70d5f3571d5619ceeecacf60e29a37d9043a3cf41e03a79b4747025fe3ded7ede991939edc8d6e1491ba27e22a493ae6ebc189828ae00a13730dc5653da364a79f0d3fc00c0c5fcdfc7107f235b9781d5ca972eff4dcde7d38c1f30fcbd3e51d79c356dea6694d2ac49ac46850e06b509e51f6816e404b3de241cd3f869c68618709373d54eef4f244288e13a0fe8331a09df7073c9668ce07e83cea9a20ab76083835157e8c75408694a5a012df1b1e1d08343bd06d81f6dec60b2590ad6ce34bb66bdf6ebf0e21b1f2c4acdd25b7b212cde6b2bf826c13216f8f62be455202096de344759a1e66863da69cb0268ded55de9f41e4d75dbc15c43eb7aca6b7f8479da0f25d3116b1bf28ff205f8d25129a01f22ac3976c80eeddcad9e963fbd60743e8976e2175055bd6ae589c3808d41e51e2077d7e2f9a5fcf1ae687d7170b96bbf8d1cb67d146480dd38d6b52f877622f489354e587a4610756246d647eb1dd002253027032180490924c8ee0317bb4d8d7c1ef415a0df37bcbe1201b4d9dbcbfde250a8a89a7695c280a4be8361520869b5d23aeb6e7df2737eb1f28812f5ffb9b1302d5b030182a008ed813d8232347342abeb3ae7f7172d8e85947899714d9a4af587a43bc29fe14d577c37a2606178d342aacd2e9a33e159aac81f29e6500f7f8e1027d3c60c63498bd2e391e4be4caaa6c715c20316eccaeeb2b0f1e0b66809de88890a0d14d251570e409de7b84a4ef7d2e5b489a7ae7378123203ee261c06380b44cd6e256568c990d86f6cdfa444c333ec851932f27be415d6be7d8c1e063a44b62786fc1449815072c111f5b98e8c7d4d994c68cd21d0f07099c7eab7432b7853ba55ae27cbcd48be775b9b5a9d407c939206bedc59708f1efa733ce1b7f3df559b4df5b1bf8c27f8860bd837184cca59480fc7605b9faa4f1680c3389687030b68e343fc56fce77255267ae53357fbefe4f122ec52ae2caa58eeaaebab6cf7dbac4cfce5c95bc7dac91517a85b14c560eb604e5fecafa596fd3e76bcdb83da6b5f239ba8cce4a9e14957a71306e7efdc048b9d949a8cba9877ea329c39ba2034da897e57d4d8f94efd4328b38bd27052b224c7366085a578524b6f42ae9a2d047519e0575b3cf6b10a4578850cb5008446bb32996940d25c7da5300d9561ae96e43ca17614cdbee350e55e4a07be349d5b181ccb3c806a2cc7c1ac165a3dbecbc6656beae26bcd37be4480dd88bbeca8cb2c1d12d4594376d1876f928dfd25559ed402fab01b0a3a3d7eed61a845a31d3f2cb8204b7641d875304dd0b9a84957914fbb3a1d7c15553855f8122dbfa5275b0bcc66e49741bf4f88c37e830f4488b24459076039776f1342e1a5fc0af17d81d96c939e1159ebe04791fd920dfd6eb7d8a74fbda316d70b4d327a5411fbd0e25edf7f9448dc275773c2f05e9ec8f16006c4c8ce51c6c3b9be2f3a78ccf90468154914716162df15f008e64720218a59e69478163473af62c08780390b21638c7c86ff5ed90ba003e9511651601ac7ca5f505686b3101e53c736a213bb56d86438b9707187429d48e3dcece259b4f87eca78cc9720b1139bf27f5deeb6614002e5932d44f2220f22058e5644157e334ffc348d25a2be6859e88b27d365c5a07f86fc0d74b68ffcff73480a14973b701eda3a0d16fb39b86c7d344a51f10d3e4d80fa4a240d66621a436b01e549dca7d6ff595967a41ef9892ee3a316113f5df6379c529aacc5e332f4e108a613c799102f962a9156c2b7d807ec4de42b315a9131338f2aa35f889e385a79db045c042d6b4199ce0d924a859bf182f8897c1aff76c4470077c732147df78ad688c38f39c41c525feac6cc92cb0e58cfdbd24f14ce7d799ab19a57ce7542abe78372143b39b014678b7d02855d7682f2d1cbaa063a5911de020500d7bd4b3e45eca31d992881a3b9d8044d51c4ad2b3db4589c3c6aca5c714d31310e3ecf91950ff12306e52302b05aea52c2253a6caaa21f1c7b0b4be41fc00e4f2b318246785157f77ccdeb1f8e85aac7b97d28db41a6eb5524047565c9975b155d2aca2b98d85fc9d1a4e269adca169d145fa138899a975e13183720ab912051bc9523be26176b910d98fc8e191dbc564ccb1a0767acf1c5f9a92e501f8098199360674727968165293f778f8f87335f4b9fddabf278f65f205179a43cc8fb60047bbc4b26beadab79b35b1f316283b595046aee055d68e7e86b5664fc8b32343f9b488b31aa0649433248e531fe5d570a531613a50c73fa6bd546c861542ef16be17f35ec4fe92d60905b6baa3a0645ac3ee67bc6bd5361def91a6a9786afae9dd11c49928873b7d8efae32772ff1c5b2c065bd9ac18baf76606889dd80ccab7c9f0d3eb773fca1d561d5fd0811faf01dfb1f8c1c13010d23f8c1f467ed5c5577ab6002234c295c622044a306299855588fe45a48e00fb15b314d646d80daaa01d918c7a5cc1c3eed27f12350b58c6fd715fae1c932280dcd1affebe0d09335ba3992bd3d1db2a4b215b123da1a68c75de8e187297c625db9a9a1533a4bfb1ee3c6acb69f2d8149189d35ba80077aba0a1474d164ceddae3e8092c423099a0ce048420b03cadf05e897b8fece53857f0d2fa126b3b9bd80e31cadfc4400546eed633e1d5f0e4759b918eb675849f86931541678aef583b9b2894c905d7a5a0951355d5ce741c61c146f2324a372b87168ea7b380164a9e36bb3e63c3982eafd6f68e122a1263e745fd11dcc623d41c4a1f191cbeec16b2bd23ad9ef5a6067a1065f21a59bbf76a47f35a6ef3601dd6dffa00a96381d037e969ab938a57f21d38979c79480099f621cf8951094bcf4052d9c6b0c45cf35a987f254400b7d43f9ef50677192a9ea867046e5efcc8706aa599f82cf59ac0a67fbe162cdaf2c988addc0d7f934b850cf5739bf65b7053d280a79ec3e7e5bc738c33a883e31484d0003f2dde5fa7e36889f544d126e2e081bffcb41ebef6185e73399a9a336ed07c119cda65fc115290f149802f9fd73a6528d8bb05f0b210fba11ccdfc814d16cd6add066a8ab72471cedb354a4f60ca209153e7b0b1d065f37bc756ad1100ae851c1c998bd36c649f8c5a44ca5958dbffdd88bd925653081e2cffceba6cd4142a4bea47cc8fcca2f5e46534494689d45ff296dfe2b1985896bd71caaedbbb7ec7ceaf6d540c2cbb8c2c37489a5932263ba0597c3ba25a6ab50a5a09af3b9cc6a2a2d4411dd0d3608fd163355cbfec4a6dfc1bc4106b44196a4591af1b6e3a75e7b1f3769ee924984781197b9c2730e9bb1750005a65cc74689e8712c2eb16875c5da03a8bb29852e77c08a16bc23d777c99f628c688a023ab8431db5f3d0f463d90e698e3430bf2be8d02fdc41035b5047c1bfd21c936ae69af73eb258c3907efa308c71d3f8d9ab0d40d45c3888256d9c3a04f26c83eb63a77f290f2b58c6dd4bddc346266f97e55d0f044e7344c37652b8b0fa492dd5445e84988ffb92249fbc69be049c825186a2973631d5dc4d10896983bde511c87e2850318963cb1e239a7eba4c06b6a2e9ee2bebf127f54c487fa3b28636a2ebfa0ebe042adef1fa17913692ec0d1647cfcaf6c90df6f9b141d8fe9cdd8949d80bd9ebb0712bf8dc1466c94c625c9a9736fe4ddf78aa6574de6b1724a7dfc5bdabb99dc22cc3deb93d537dd5d1b75eeeb4505c8f6ec102ba1e694858ae94a66eccdb977432aa02f1b3616141c8c77fe5512ce888262cf2a3f248db8cf5130196f73dfb90dc716b0e21da55ecaae1abd53968a6262a1759724d2e4ace335aca4421b38ba903f501adde8bacfd7e6cb254e15a1aebf1ebbd812176beeaab97f205f570f5c2e96f9327af9c17514b2e62ab07161ba674e46c1dd6d77c070114a90eba94a212e4eb5e6fa62084418afbc0febd8224210444953603af26d21ad0a5ab8812044dc9522cd42605556c501aba406089bedd703ed61fd3df829ec92d5137c4161286ccc43728d99b2b5d2f014161e273238535661a0f1277177a5b2f86d71acb3cbe1eaee4b78d61a6cc400000000000000000000000000000000081319212427 +flags = ValidSignature,ManySteps + +# tcId = 45 +# signature that takes 25 iteration(s) +msg = 4301000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 5986c4549caa794e266a06862811cb2c44d93bb0ce32d7be8957b222eea8a487e8ea7ae835d09779ccfc38f48f7988f828b7b26db80d5e391c6e19ef4e190bec207775b5f0fa2d3872c8412a895d57c490c6da737df3c7f0bb2fd62a676f1a78389efbac474f277c4fa9b08f3dd0a82ed8876e3fd7a3b1614cbd5f0c51538621cf478c27ea39d6542bcb62338015a4098b7aeb69f0131cd15ad80e7e797bc327c8c20139992d49a66a63ab341a17c080db529df3c30aa8d76043cd781b3f6acfe97ec231db5f026a86d5a54bf0028a9c6b9452ee01dbf7ebbc910ea50f8e4480dd393466c8def5943ba822a67e7d5e20eb92243a84774e838924d7adf1e45c65cb85383c653c1864d51663621e3914b1985868f50c7fff42e04d57440d5aecfa221c477b7175ff182d461448e820dcf7b5f04c132a8194fcec3d4d02df24db406a8782aad71d7c27bf81e2cf4d11e23754c01b3dce63417e9d812fe5004c13c97ba3e4674b377c91e54c707f15f0ef9f131e8fc875d52b696fd46500088c3925da2ab487a6869cc8597ce2336f6e3ecc4fa42cce8c24f5783d52166046b19c661f3084601723196a65bcea4930a4814a99bf26c48f84bc810ab6829e82351641f21082b784b46e2115a08e32aaf4dbbdd6b9a5c72107f405c47d0cba1168f80e9842d4e47a0dfdd42e18d500e1bdd573fd4e4a7cc18f44953ea81d94bd1694bec08e67ae218074c1f179063587a65cffea71e385ffdee9a162fbb113d4247822e46f13ebb3462a394323684baf59bfa80cd0a1209759fd39f87a367c19995b92c7ef13216a39d0233ba66487c1ed46d5ffec611f427abda454f5be5e34465481898ecb4912c1a68067c4aaa33f525911d77e28e9d764bc1124a5b889fe928aa090f80e41807756541ecbeb620ab4d507ae30b17a684e2a18af0865f400904321a9f736fa476aa8c5f7edc4ce3d883c197fd38edc4ecfa26ddc86653f13fce2eba247df6cb818ece36df59ba220b7ae5cf6059eb23013a88ec4aad41d4264d2814921c9723fad5aa4393a646ebad0ea1dc277f6f131513bb77987c9275d9efee0f593f4126b490c1157c72d4de8676c748f8ed5b8778e5687e000569802c1273a52209d93b6de376621932e9743857017ef1af4f313a346c956b2a0169d4f3059a7ec5160f5485b8f00e67d04d36294e5f4514251c5001eb8da57398fd085d9564b959d4e2480b94b05bedd937a00fe713f1e894ed76ea0349b79ba0343db1761f23216ce929b20ff49cbb7cb2cf77d1ffd2675125e18270e081b18c86e811881695fc9df5f17842b1fae833dac14e1b10b32fa8e8d83789949aa0c23e46202453d6836511e4731dcfd1817aa02463ce1f175aa3c6955cdbe5c58d970dc0d58385bc27b2f33beb6eb638fc9d8fe285006436992d96948076b35a6dd50f97fddc72fe9342408841a5aab7893183d465694ce956fdea8f7539c4412d80f6726c2d726b23ee6efe01bd520ea514fb751aeac7767b42927ded102acb1cc985f6d371551306126678fd6cb64073683295cd6b84299c3ba36a7acc6810e4732389408919db59b2acf0f71178af017d114d9d543e72f74e0a6042155a34e9eb313106428d15f753f35547216e47500d3dab9877e0d8a8342606c4ab83e421c01389087f7763f7f5ff10c600c2308255701cfd04e63cfc435cd1bf1b24eb8bb8a6812d6b38b7fac21fb67b892e04bbecd2a8433c0d104e950771b2243595be35423833d46a6b28878cc16a033385e6bf6a94a4a6d1d5518d538fcb475af1d1c476401edd05dee0b014d5ce68d95a06c8a30c68d8d33419ab4843478708d938af757da39d45a7b77f79a8f8a2c944bc95779ab747d555094f1b04df45dfac56877377d5483b56ffb1ca69c4dfe07943b41a4d434a7ccfbcb64a374b61af0bb203800a10255b87c715a6366cb1b6b5582135e8703d64235cc714beecba43e4f31cc920c6bf59343d5e78e4235b9acfdd8ce49fb38ad74113a0feeb647f7179a33299b1a4bfa60af1e70ebb070dd07d33aa793e434c9d7aaae98f018e72b1ab8788644c4fef6b0028a39c30da55187e183413fc79ebe18a84561c15469e294900a74494e58339972508086dace548868594071467360f24efec75414ef502e5f389e4411150672b91f62984dda1b4760de4e738c23f95d9d6c56ebcb316e4ea71253368ac460e6a754faa69f2ece3a13c36dcbeaf142ba85cd506e30877baee307ffb945afdb387ed02399ff21aa9746d850c5637a937cbc6c3b03a27142b945c3da9839295a212d644833c0d85984cb5df2f7f139da90d66e6e73f51c9c3ec8ea590fefee063abf28bdcd2def788f25e40a7e25d01c11def224fb2a42b880f725e1cf2f8c08c8e6b3f80c90a6020ded9cffe0742f82d55040eabf0af6af911c336ad92f944480f46adbe8b5db18d6b34a3330bf2c50a2028f707d9bda1fad9ca620db5bf2037415e07d2d6b7c73bb0177f7a1bdfd349b87adbc736bfc7db2613eeaee51d08322f20a0e683af01aeb6c1d9dd9ccded7b9125b8458f052e7998ce4a62612b815f5fdcb8eff33a9c72d6e1b4fb35b01554d6bd287c43b8e4e8cc8465379b85f84176487fe89eb43b7c7042d7c9c1bc0f35c55236df89d0c186edd0cde61869489c0605946a936e90096e7f0614a74265adf8bbab764e968996ff759afb9603c359c195d7f725eb06701a49912401ad296d2240a6467a80a7fe2a440280eec32a300b2438b08f5152376c25550d0dd8e8237742af59c85020b4757afeb91aad5db9bdde9b7031445ef56956963cf27470cf5c914e267d29a70f7ad5b9c76d281e5a284db8a7d6a69b8bd626e47d6edbc7ca0bdb6df8192a230d8be6fb19193add1bd107d395dea7dad6f0901748a0d6ba6bdacfea046187f0b60a2f8b922059ae9565b6a20f99ad9b107c0a287e2d5c2358d7597ea4c029de58b4f13557df2012bd8f71a99d924947672866965ddd930abecfb5e5a4955f561ed9b7b00757fe8c3f219e7955d43f1676d544f678e3dd8f5ad9e36b3ff2b8ee15272924ac8255a53cb9a9e9202765746365181fe5ae49c96dd71f4c3967cc2a8bdb9a58f18ef1b8808e3ea44f076f4ad2dda7b2c78893960e844d3ff18aaf815286e5a5c04850848c3f25c0aa5f87fc0d62d286c0ce82f51c6e69ce0fabc3b862cefb8fa616cc46a1e34b3f893a4ae9b6d4de83c7419748c35df9841099ec8554aa5f7f310eddbde6cbbbf04f76336eb47fe161246ebab18bef7a9e3532c6a9ce0e2dc73579fd6cb1643f6f01c465ee4ba1d7256130b99e0e0f2a16d457d394d4e763ba36c918690ab354155d2fefda366cf756044942712cec0fb1d1941043dff020b16b39dfa77b064b9267de47f5d9fd5da780c173cbc729f17e44ec884a63b0eb3ac2208b725db57b6701391ee8d3bdc94f3a3664b5c6ecd2c166d037c0566473443345953646b9de89ced08dea5e800bc4aa1f8ad5f8aa6da89e9e93c2c31b1cb0ff0c9b7b4d5dc9259b65848949effdf6a1970326381c8ae4d039c372dc92baff73cdf14eeee4812524c85090cfe485ff6ac4e8bb5d96596adfa62138f27cca7befde57494c1166f002eb62d32b5705a7e9642ab4971bfa366f73dc268db53940ac5e1f34dc24b9a8996b527f15c69d9579b77b7b6663f2941f45448572aa5998b62c8f5d495176f6142c327217e1da4cff053c607673f14a912d9344bbf9ad5fa7e623ed769bbff53bf2b5a1c78f79e69fbf53fc99c6e171c90525803751b25ea6c9b7d496e8a7b294c3f2ff2455cd8715071238825ef6cf8684bf29bb490a1e3111fb305f3bc87357e7263e417cc7c10cb685077a1cf6f058b1108021f78a532d7c948a485ba35c50249c79add06a6cedb346792b4c02a480a2bc669954c24fb13fdf4cd6b5071b969677e5bef6e30b69e84b8a69c98de885d1d325526c58dfef5f72fccf7748ae8b024d915e14fa01c35e018b677a44babfd32b9555b749979e61bb4ef464f8010d1f8d457bd9ed6f956a6631ca7bc768b86be99fc5d2cff06d66013eb0b128f2245f6f284faed9b13a6c6e4a14c3e4a742967e598a06a119d84b5e3f8bcca18f28f64c9824967b6280cea61326ffa2b20790069e38265a337447eef2f739365559e96032d3e17349176963d9a05fcadeb86013c5869457a182f4a95f1bb5e4c64b640de8ddedaf516f7d80afc8a08d1bc5c50aed4e0fd32e2e3209958fd814abe06267b879035b05d251fab57c104b3fc4169d090b6830e2a64a221f67ecf08122f91d638d0a53bc211c654ef8162e625d75ed0a0764189312630ec3534d16a33d4e55f95fa5db64675b7ad8a06596faf5a8a47f8308b61cf16aefa2e6107cabd21524711ef971b77a1d4ba8ba1318d041aa7351324895ec6a45dcf5ecd14151d6b00ff611071cd686668ed28a0fb77f4dff6095aa72d7d99792aceedc33eedc40e30260fe127bceeab8a5c1e7edd27d0873fe1fa7017cbd9f3757fc5d92676d5f7e8ef5e85827be2ef8287d47403c68ef0c369ad5caed8bc88089f34f84e69f79309317eb49c2f34c74258c711181a425e93b5c5d7f308103a626d7cfa0f3d6b77a04bac00010819b2292e5f8794c500000000000000000000000000000000000000000a1116181d23 +flags = ValidSignature,ManySteps + +# tcId = 46 +# signature that takes 26 iteration(s) +msg = 4801000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 3a274d893c34e200720af504ad6cd4b00d7a534b6af57ba65951cfa7025ffa7004d07669533fa01ddffbdd752b84d2b44273aad42294a90bde3252f0c755fca0d12d203522874612dba90d195d5ec83c8bc6630671d7ca2a0ca83c89385937c5d4b1a1392df9a378ba3288427ee327b1643421695aded6f1ce3fb11ad9b4cfc5cd0720c9b012eda021df8039bd2b8d5f4f6f78b7995b0479e515faa6539e2f36646f35b9227fb42e23c6d49f3bf32c4f0d509b6064d5489faee9b5409ca29d73fb0eabc62e23b1dfe784940f7ff0a9560d4d7d278d41c22cdf07be384aad9232a17a59f401f3b768403f5adfa4a3f9b1085f09962f2a9f0e590a2432140fbdf3a416b45c8a5b206671e8121cbdbbd89bb35bc8f900775cc7f9c636883e9a3bd1c3367354138dd98913642b934e6189d1ac221cdd7030833c5da24c70de3ee205b88ee357132417e35509624afd510b73255266b23b735c9292540e4eaef743c6f30d8844b044b527333d2cdf16b37d1f1b81637727b1e7376ddf58287d01da6d000371428cdf431995a7bd02ebd9d59f7d2a1cd33bc33026446f4a02132dcfe734d5f8f993946ea932f1a4648df1fe0d76db2f613b269d908ca87a12a3948d110b6bb2048a1780c8bbf6cc5d5385df362fba179ae42a10ff706a106722b41bc17c56d6eb10130d31b5bcb715fd6ddd7aacb536365c5f5c8b92f29f8f5d65c0c68f382a7df50111707628cae2ccf7913174ef53dec3d6ac7111c1bc40264d8e367c4f42ed57cffd874cd7a5c698fa405ae3121050e302da8ac890ff3aeaf5e388e95023d082e7ec4ce625fa3340c9410499c9e1709cb4058edb31ca1f723626290c8912897f73f8a475a3f06173202c154e33812135ac26adcaa585c72667e3c6f20ceb1ef978815d4907298d1821c7a5fd76489ad83c118b38a9cd9dba5989c5ea00623c964dbaf4b6f072b478fe1b13b8f1ebf4b938ea8b4bcfb868e8aa43211e73439ca50e06d3f5b2d9a2a638ac113ace0d1cfad0cdaea234921cb447be52427c9726f581af29c2046e9a4e60905910de2194a624df7f4285ef058b430d9803bcfa83be0b75836f317eb6ccb2bf32594a3ee2765390aed29070249d1a899fc5836187eb65685867efcd75e84948769d9794686afa30ca9500a636a9a90f12e2e09f2bb5b716a5d970efba2dd317f9e0d5819db99f0d041ccef8f5df8490ec13854eaed2f86232c10dd9b0914814bf4b68679d11d2feca8ad67a3863b73928ca8fc2e4c00adc5ab81ad699c12a592566e3e13b5f814e43be38e32d6973f68e7e5d0cc7479fa5e937c889da2de8763c1abf517aa5fe879159328477617980aca382dbe22831a8ef278591aa3e9e9e87beca16b873724d500b03cdf46eb3be3ade2a3698c1189d376fd79b62f3f491cbc925d04567b735d43f8f622e2e7520ca8b9345bb4e5163be6ccd63d01553a148581e1088eb666bedb6cb0d3cf65abe30100bc530fd1ab6aa111f3780aae419e564c64ce6253741fd9800b84add684500d3ca1becb03832b3471448c1bc0251a7e1ecc84928983863bd2e6ae09a5840e9b9cd74ce6b40e78cd5dfab8755bf36b6146732b599836fc2db9af2688cca570c70dd7c7fd4041b9a4c8ff98c7981b1d09dbd009243459864ff562abc1512f2f844713e3bf883b2710c3595e570bf77d180dc47df51d79d505ec4a9895059d5d3702a93f5433985e1b51078199743508a398b2ff73269d3a566b2dc64cd1421c5a7198d544079ab4906cb35c596739e5d7e1f9c212db2278a1dfd2d1c9628f5b59cecf15b6145779e9de4ce43bcb5cf880355365e192852fcc0c85d39db6c5052633428019a50ef7266ab9793f9e800f1455f1fd77e2f90fb13e84af7ca933a65a07740d6d11506f650755dd8bff8d34bcaca2c2764b23d749c116fb2f2688e5abce0ea28f79c6ee013b904b28698a17c8d012e821504963bbb6af7567b12bad96ecc3df7a69d22cfba305291e7b7bb6466bf179a77b8d2481917eb491ceef67cf84cd63b5bc87b26441108b03c8126813a4f545e23cfc0f285152cd5f2f77b93a000008c2ea142681ab1b9f7b076e61cae8e93bf7759a7f2bda2cfa86b9eba74b77b03b53f13f6fdd96681337616628e06a2bcddc4b4fa4ae12c0171063229f1eeea4f28e2fc26a43bcc7318edc608c99b898212c3b04bf85b33abca45749b87a76e2240b987a63a29d29f01c78fd91f3240d915adf41f2b5d80a848781dc060d0ffa737a0c6cfe5b453cdcb2a50a39d7ccd58565a3b6bdb2823cf9d7ec1a204546eea31a9db531b51214547d66e85e590a663f391b0bfd0c67a2271fa5fa6d419c659b76a7254468e80e78434b786b385c91c6f9fbdfae0b1155b87a708e922a0c82f1f0189e9d953deefce4f139cf6d0a8bfe67cb5f6cd44627750c79f54cd0e1272843b5d08dc1e192686ced88eb3617ade45516159b39c6aa65d197dd4758e3b290c17b9112c04c368ba01dced699d28de4d89395a49ee36e931cd3591d3db6f26fe300309ff6cc1d98e0d7f03f30a3b6b8832b77f31f951d89757f1d789b47a87715718f97089df9540beac7d7b05776e30451944bbe9de43bc7ec69ec984301a251e9adde7e83d5c9df050d063728c6f6bc2c76e8906eaa87ef040729cb00aed35830645c81d1a39a1e77bafa6d4f06b415e586c42b5aea4d8e6c6a2061ba0497f7c93a1df188b2d79abe9b7373d6f0f63bdef5edfe82b37a690fd51f0b044cd3192455979a768450f7679e86ea1756434fbe3fb8003f376d28e666fd4728378b316944cc7899b07a01449d53314532ca8fe04007f2c37a5807a53468a433d62aeb4c138ce3f9f33d3ed548e408e7ae0da25b5180a6773f0037422d7eeeb0b449733be27a6ea43f26d101b74fe47be2babbb8925df95e6de1498069be6d067f232443e11daf9b8ad0566c923f444fc7c6705a3fd8b77fbb2ab13b9a7492297d6a2274e4a3ba46efa965094dd4005b0d9a32510a6ac9c172f705c26dc81b702d47166bb8a930f16f19419dcba6ae187ef91d79fad465485aecf38a801b8866e51ea5ff1d93991c556de9d91867052b03ca4ae4552e6f0873f095209bf8bbcbc64dc90159b105be69d436b7095fea150d7fdeba96746178e6052105b11abe7795504b078eb8a647af1f5ad3d2186282ed2ae7886c40955b93448036412ca7dc49f2e562c5afe8694525711e7f6e49b2515e5a87c480479f514f4bae5119ac3dbcd730ab3c3f2f06d3fd81a0475bb1eafe456dbaea87d2cd880c96d34c348e4650cda3329f6a082cf8db220876cbc410d0afc945b0c059a3cdd28e094fb7de858a3aa75fe3f344fb018a121b26d14b970167ddeb9d1eb3ee53e32f14611c05d6641beaef94921315ca760135961f182d1747ab5f66933945e1147ba4e2dddce4bc0329f22ac00ada5d4d311125831a98561d21331e578ed42d0b894597be1172e7261decbe9ffe0a4420e2a031ad2143524c3ff272eff4646acc7eb60048e99c733c0bb7a0fc957995c8e6656183f0e0e1ae552dcd5fa7c8df4c9ec37180a6f4cac16366639fbe2395257629aba0715ac791be689d8560779014b8348d271aaa91073e5f1fd2bb0be908bb68991dd59443d23dec0dfab6e0b7cc659bc73dcab4f708c48aa53b8433e787f80cc8803eb18d6647fa629dee201e64e04be60d32f5dccaace5e1e2fe6742aa695c06d9839eb30121cf5f145bed70e3f191f26abcee01a6d3de849634a4466bdc57dac8e766b9fa66c57b8412df00d34f586fa9c3322a8847bbc0cdcdbc6eba26a3d88589474bd928aca477fb6a766fe375e224ee54d17297146593adb3677c7713342f05059c53154b67f97a4cb949f5911ea2dbe43adbccfd151ce69061693d51aa86f651d981f8a1221b8faf9fbb9dd923ab5fcb7ccc625a2984d59a644c50cfaebecfe76193f69b4e1b410a607418cf09e268fc4529cc8b809bddf0c594f25248d09cc3547aa87d08b330d4f783bdb17e238a17a481fcc1e1a38676ed2c8849ec96226bc24e085b66fcd15fe0b5923690e80a4cd198ac10c8c07af0688d77ce0125916fec05aacf2e792c73fd887ce36b007a650d4033cd1e3ddc5c74c2f9b68502c307790184ad1b7dd2ae3009b155f95253a480f832435e8472289ea454d3762c6551b07335137872c2feb4b824211b60cdbd077783fa8ee0eb49d506a37d77c4606c42d27d6c477d20d4ed89249ad3455d4fdf53fd4122a82e5114cf246dbff360e4427704a7569c26bb477c82731ed984a52e3368f7aab7df25a32c1932f4981a27d4e82e0b61830b238e97e7e601abed437de4a9a009148e865cfbc75a96b14315b1accfd252e1d661cab2818008e1841a5773fbca270756ccd2166318c553aacf82af9504134de4f3cde8992c14c0fada09364993e7de7fe42f8b54996ecff54e722b25fd51df037d4d3493ded04f6507c1aff93016a49e1e0a6e0da42cb4630a79c5aeaa61ee291ecdba09e1fe36a4039fa456781dafa4defa0ec2bb0b195cc0fbff9054fe4442404d111a7a8fe75f61523dc720347fa80816d1280a03c9415234996d4f41267688892b5031a1e344ad3245086bacbdadcf007185c6d95d9dddf94b900000000000000000000000000000000000000060c121a2224 +flags = ValidSignature,ManySteps + +# tcId = 47 +# signature that takes 27 iteration(s) +msg = c302000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 2281ce37d3d0d0894dde142b097455d69e4ac08e358f921dd86fe71a294db8b2732912b1de60cecefc89483393815556dcccdb912938f8469aaa536861d8c3d315b8efa1204e9c7022dc44490ae1fd7e2e9d640b6d0ae8a3a3c01d6a5d0594a52229c8a7028c763f688d3f72e3af83d25a01cfd3b6a7fc31e34dfbba78ff78effec007555ebf96b4d9b14eefd1bd19c66360bcb1e5a77092f36e2d749eece8c89050003630fd0c558bcdea939a53e61ce80ee98842cdd8afbd8840356817731fef575cae80b3eb8678d9884ecc66846c625d1f2d617d51f1fc77fe8bffd994a483689f9f5f05132706308448a3342718d487604e5006d46058fd1fe9302410171f93c3293737e8db35aa27bc901cca074ce2e19c4dce9d029c36553cf92a1500612b7badea5cc4e20389eb01b854dd547850976df5e6d9f74a30c7ed51b2debf80e9e379cf2645d6afce7757c449ed673e12780e2cbec4aaf1732e093b255ebf8103bd41be041df5f0a18f13c8f14097e8f998dffeb55269d2c7f882588e942eba0da32a3a5a193f7d18921ea5c82d7751dd939a448c891fe500efa06632faa47309a8734fa2f700659b9db7037320c7c00ac9b68f1f7de71457289e9b8290d6a203c48c21437aef6adde8ab2cc43170e65f1704aff58af037d422d1519bb756beb6f3f4c0ec653865a354658f305a495d34f183b5e17bac2ad98bf5246b440dc86758aa047f02aed76fa5f27935b3bff953871cd3de843688b13514aedee789bc8ed44eacc66d5b8d6afb80890fbef7c6bd87efe597868eeff71b92820f353ef580ab5e57faf63a762581ef91f864c99dc34d7c2c8dce0ec103a61a443e0c6d78cb03788974ba6a2a261b31ba71f3db05c2c39fc8634fdcae6498c46fa37bca4072e1a0b2c67c01a30b89b944e6a7d2298504b1adf2a5cf00d02efb14b2dbdd1839c935a3620e1ab8dc1c2be6fd05a79af94943ef98b64a8c86e47e3903dc84b7ae6e84caa9b79f2996a015ce6a4e3d7274d43fa71526fdc4d9d9d364d05a2f7f732cbffc9f80a4e5268f9eb57206d380cdaf39b2d64a54295dd31a11ef2f2f4828f57ba6af8ab69271060e25a1d987231d6692bcd82247727a211804879219cc981c1ff6cde51bc630b698e767107fdea768ccd0efa2c1e307bcc32a6ae0483f94a0cabe09e01e2edcfd08445870150f2980d23bad7b5187b0a3eef6e6be018a09b67a1cea314e588c0c41ceaf53206859f1712bde6f2e8e7d30209225de2de928e4d42c34344388feea70b1da1da7b0951e0ca7acb239cf95510dbe0c3ac01187661f2ee604f86db26abaf8113358ec1fa976bfdc0917a28837f63a1d87b95bbffd2266fbd2c50cb6b568782049627731865c43d9a5b6f637927044a49bd7c99efebcc7a65e773aa8e846f4c793d4e9c193ecad8701e6cccb7045b81b3788f23b1b523286f2e6e4c570f2b6c99bbf14d5a79a0faa9ee55c60c4e23e06e8eefef6706babc9a2d0dd3b81c2c8056227d798c8a55de8a49af91f9bfcdeb8683a31e576ced44da0efe91d20f4d15b1c14cf148914b6ea366f676a97f60680e3fbecb29e34573da9d100aa525760eefbc96f9864ab360623ec1f41ac55750af455c0f24d463c2f8b249d49ee2fdaaa7f5c54c9650cf1e94de0e56f04ed2e1b0a02488a3d608f31e67919481d53ceacef129e92b3dd56b199ce2b7df00abc793d2ee82694490ed97df05365c6205e3c502ed9b8f712a9862eea823514fdf9d7b2fe4bdb9754f1675c5b453a4c2ca893d584a014615309d346823169f732fb4ca1c1cd84ac527ac560c9fef1a207c9f35a9f898a06601a5b910971a3319f6c29d0b39df7ffe09ef464a9dd924b86b641a0b66432aa964c94b608c8681667df08027ade6b013173956a73a6787c95a13fc753a7d4b2fc91206c864be82382cc1a1d4e4c87e0d1d9a113bbc39f377d3de28f63df010df89af0cc3ecf30546f2435adf22fa43166dc24f01f441d7d97c235c5dece7108e3601f878b1c46c2ffe75363bebcd293caef5c4b0eb88d88c1f340dc8ca4cbe5552d9136ca1e3d5d809cdec4c4150b86e75f02d0189565ed27b41efb8ba982256bb38ddd04e61b3b77405fc5e5cad0b0ad58a009b68cd7014fa45ce704b3fb295d2f52953871a6ee94fefa1967030f2ee1d031f826ea9102d1701136aa5c81641e2a6afef50624785c8c2467e76f0f903be8bbe2656fb92691cde368c3f9a6fa870f50d977b8b5592922a49c0ae14d82fea5af9b2f7176898869feecdc76b6efb0472a0c24c0e9a2a2970d74d8f9dd1568ddb1a9c7a835e33332236e5065d72bf4522d4b18c7b3d14295a5986928d7f74ca8b63dd79f6fd464c5e0cbd98ccddb1318eb9738f32ed2f1c3b4e929e145accf8502b8a4f3b8f20afec1fe4cef9438ddcfa55a505dbccac90914531f82d2aff47976b8ee1e20f127478447896b3fd2c1a35be09ca69ee75f9958e569b3f4951149d32de2918fbbd3d2b5896f50961d35fddf0517f597c8273fde3712c6127d35d640ea580802ab2b5709399df4ba0e2f2a5a06013dc6779373672febf0381a25cd2924ebb597b03a1fa0f22ac14d77a524c7ab5fea1ccfdc1d55f37252121dbb050555508f9d9fdf0ec12153a48b12f67b6c95ad844a199a623dbae872bd052ab47289a3b6ee103aaed7755accf08a38618ef4d4669ca931d0e14bb8e9ce77e54cb61ed64aba5300105a85cd303bcfeaf167663aceb81eba106ea896094060945906bf4dbe038826e1ad58d1ed44796fcc7a464faddf16a588626f658fe21a526988e78eb129dd0bb4b645b2cf85af83722b4385f535155a1a61af0e6cd5d009f37621b3393b67fd29a171204848cd66797dbd3e43c088c473c26f124f7359e09c75e55bac5b43a19542309acc4b0ccf961cec404635799ca8516b11c5ff7a6348dbf0742a1267abcc48235bb95835047c74cdb1d378351f283e07f48945c7807fb7820564ac2c207f3ecc66ba24188dfb22801dda9b75b308593ab2f96e86c4af563a2c355f7e153901529e580edd95b7ac8ab3e1211519f99a91dbec7873b23b18e776a2904af31fff2e8e100b13e777e5b17f8b35903f9c9558499a1f96a8b8c9f1ac5cfa676a194d86ccbf94eb02368b781c301ad6560210bb28b5173da3a447e8a850279e0b65c828dce1c8e7712973f8a08c4159a9e15364be3d2147896b1a1ae214826df8643b4e573f2af8e6302c2551989ec1c8943be72abd2be35c4ee70fcb99baba7ed4ba46016f24d490acd4bc987c2c434b1dbd8b39ad1dd2004fc7a174ea59fa2f2db6bccbfde2d208e6964b128773eb6eb6d1045df96035c250d56381d451c52503b1f66934d87d449179979e4dd50c6274c1bbfac72161627b288029c5eb70997caf11ad6fc3d46814b08aebe28f40dfb9cc85f4056821d9e159ec9c4dcb586fd8c0d8881566669a8a961e7b40e4b83d068fb80c270f42dcbca2df7bd6ce6890e9024de7bde7603432253c14a0d057ad528ca4f548012dafed4b3174d851e4d2e5c6c168c2417003755bc5a8a445f3d38659c715ab6ab977f1cd13fc9c6f39dd2070b1cee3124ffbfcdb98205a1a2b88ae3fb9f245579bcde9143960f0b897a478bdac9a481f1c53c678c64a84b0fa3240177894de0c4ccbc089f14bee70f762e2480ea9438cea2788e134f0ab1080e34f22a4fb2ddc9e7da057bf0c5614a175022f06b5d126938d97d98fec87c0a917e455b78f314ee56de3251692cc3c2d9b243aa149171a62bc7035e90044dfa0a190773fbd4b00fa7e24447dd5d5722369a74326f29d48c589a4f16c92dec9da8586b1d4af66c4bc0da57e2aae07d00f9c35f031be8256b2beda0bbf06fb22f3da317b4cf22d81e88c050de9a31de6da3ddac483c49c8bca2fe25b6eb87649e107dab2c9b061885ab2a4e62debaf453b683665e7c2e8f3fd5d22b1d4b780cdff2a26b31792f646968e726b9f4708418a60f3f57f9551b9cc7cc68bec0866a294edb9978375241345cbb6bf577268a906002f9600b7e845d36ffae2c7de9d018939006302edad2fa860a4f25cb4a90308d57572284f97a7050b8750b2e02c2f8a9ad5377909ad117082570c9a5da5f512503d78c60621d41964bd12f86c89ed9c74f586b50dacdc4e52b039ed6be06c568782d9049bbe992cc867894dda3f3cb593ee9fa376a3121005b562ce8c7940d4d48960bbd95f77299636e4f1bfa4ac40bab82bc4971778faa924b6039008169efaeeb1ce29d9e44813f22d44b18485ee0a216382d0c83b1b59e34b2dceb294f9ca6cc848e018c89291525be0920f827033b5d9857c3b12b6c6e65627c132c1dc2a5da893860f5ccdf9aa2dc2ce09c45d7d1d4ed55c130bf5400ab60683ed1de5db819d42a199788dadc80e328324f6852c6021eaebbda57e276650c4d06ab792ace94f5cb32b92c40ff5403efed4b94e008ba6dae1141ad079791a3570bfc4f6770fab3fa3d04836ff06ff4ca8127c68090c36810610d960d356568cec1e66ffedc01eaf875a49baa5e5be0ec01ef1849704cb09877a2a80c100ebe7a790545e268af2f1d70b1c22375996aeb4b6b9bc325e6f7ff5ff4d6166758b8f9a6378afe0ffd8063e3f505ab7edee00000000000000000000000000000000000b11181d1e26 +flags = ValidSignature,ManySteps + +# tcId = 48 +# signature that takes 28 iteration(s) +msg = 8f07000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 17d5c276a96ec04caa598377bb8110226ddf85feb0dac0f0d3a4bd5ca33fb40d8cd5d752d889fefa66c900bf6e909ac906516c9e813875e758663c7fd2636ad3fc89ccb7757c0eb799010367afa46a17e113b16d546a8f8ecbae132efc625e3bc6054e3c900a174b6d47b3965b3178d3b72b0472f37d172ad579de128e19575fafe7ea64ea116b63fbfb4d5b5fc956bfcb6928b8db0cc7c5a889285237fa7057b3423cc7f7b950f834f7e4a7b168ad00e841ee13d382462df9d5fdde517e759d16e48963f60f117502b74e97f680bcb4ae2c35af009d9bbdacb794edb131715470153a0eead1cfeac73f8c8cd157cccbb17cd1386f65c4fe09097567794e2d7e7eb3c358bd8b2375f8f9d0f32d28bf863599939ff8fab29401d6acadb1b90f2bf1d9bc26221c67e78472c7ca78efb2b4ea49dee8489c01abe9ee962277c34805c024de06414c4ed63370ec5090752a6fd19cc36a50d3f714ad58ee060bf67b6f4f988c35d5cb1155f702311eadc7fe25ec25adf929033679f5d0058a45dcb58e8b4079b374226e26003e5bc5f76eeea6fef86af3ae91f33c8c359e2a297a69a105817c7e67a6a00a4d8aa31fc848d8c4f274b3b5ea34a2817b515a2050ce80bcb0c21bdb81f0515ee05633d94feea1de19534ef33da85e5af0d4fb0e81e4088a981392f96f70dcfdf0d0b9d308c26120e8342f8b6107cd0bf3553554e4deff879ce152425e4eee9860025dc4ba9bb090971903a0db863c043dca4e8fe35e9a6b0bc26129e18b94935fe816fffca11357af56ac6c837f0af36da11e4b43f74a0ff2ed62f18fd5c02c7a064e649031c2d8f22d6dc1a1b94f39d3065447abfd9714462e137bb92b720091477ee1c1c1666f4b92d6a8b61c70d49200c86e8cd9de65b209a262cd0c6e6774810daa62b16054d6e18955e4a92d3015ffffc7584bd5829c040ace9011d5056bc914960ed785b2225aba0eb56346aec0d7bdb1a3c73d1e39c2a395fc874cc56648951a98549a04eb71d30e38a90d7e545fe92c82a7663b10f761eaa01e96edcb799fda895f9fe14c3d0ae4922f34a89908cbe60c107bf9d8055e050d08cdeaefdeca1688a7b26e2ba558650e90b24306e575d046e1f3ee2d9c3cf159bb20d711d26c92c11735a50f40184c97a2dacd02a1acc4abe4ca286e4c599b4d4b5674eac6cdd4e472559d59a13dde5d4feef9bc47d76875790c8036dc29448516be1cd56504e97acbee7cdc5273ed3700aa7f459e1c25efdec86402f181664e764866d8eba3adf852b83cf135ded54d0eca77527870650da0f2851bb4906320808d302feb7e0f9db7b8cac98a62a0cc7cb97e7f8a7ffbfc38a477a201719d70172e59e8ea89c482e61633f9a0a3cf672f6217479958aebeee3e6f06ee8ab9f5e9d0523272c5164f1f94a3711b3e681ed03c177a692819ee56da4059ceb171af119c3976b197f005fe8622e1b4415f358fb34a73215bfbaa53886ad84ff57ccf42b7d57847a26234235ba0b722b89f9963446d67dc719bf8de49f4dedd4c516dbc1e1d74bfdedd36479694a9acee7dcaa7df55f978d38da1d183bc9c0cfb049c9f7da0821be315b6118d3387734922723ba4919fb703cc2446bd4cf30c1825a8bbe7daf08219ac5c1a3f897cfd7f66e77de3d0a0b7b73f1166d770b9f7c0c6d41320994aeb526b6ddd4afa6dd10295dbbc5082dcd35e43ba91dc972f78665043228a14d75cb666e503158bfd4c668a29d358a5b2e03fa1cf5bf15aff4890813e52a2358ac79174273074c118b63cbd1ed85c8c3e9cc7ff5c1c9bc92b848bde3a7bbb74447d430490b6bcb86158120479a02b7ac3ca61a07d76dce2942b1fc09bb33972695c0172a66dd4fbabe80e333dca17aa5806eaad072f4b17300135ac118f943dbe9041d4701b424d1f88b27b8eec8308a5bd153f7949137deee238c833c57bfc12b87bbafac73e1505d0e92e873d53772f29c7c3a2e6ba4e11f825d631a9d1caa3e3f8985ced7f49235bb907c2074fc368b77bc90b6d1e4cb987088518e054f767127361d2faf1d5feb35cf9210a92a4e3ef144bcd45dff7e2c2757d472d1255549db29fdba7616f9f9c0c472c0f4349588f94e77f8f0cab52a50029b93c3f08473f512a27c319d45e9d6b52cfada0adf2dbba6db96b326c3594f16880913cc6c1b3be8f4953d95ae5096f03a4a1224135e2bfd4b5b429fe564405dbc2ddf004f36bf633e977887915a44105ad2652fc17c398fa2e7c0eba0f69fd98baccd64875dbd5f2fc660af49a5b50dc831f41890872722d7cdb906879e03ebcdd321a0e81478276733bc121016df6c9a3d1a574a9dcf6ca489f4c82058ed0002c367c92cf87712348b7c774baacf10c778db313dc5c83b3e0120ee369780827532a52431faf43b03585dccfe97ab204c33fb2b98c9531c95f6be5ec435b0a8aebd7ff4310bfa221be76283e7534679917199f616e0e05a49b382cd26a4baf0cb0e1053fc24bba4dfd2636680f750c9c69fb34481ba0f62d106937ae7959604ad554fb2ffe53fdb926ef5a589cc21e5adaaa7ceff3e2a8ea8606eeaa79a05c6d9fe2cc674eeeae2a13cc716720472b0459e8fba3f0d77d60ff3e48f08479deaa1c098547da855b59fa12338baab82ea960184b72da4adeda15666610164743db8701f2b6da9dedeb2a147cd1e4fa5125e8f72ef40f14c88f73fffedfb6ee327c8e20708dbc0e4eb8b7c969b11ef8ed3b63c55027773b228f08c3dcd2a24feb716bcef64b5d2d34302ad721f6cc236c6694756990addcbc0d6d35a6e9a9445de640ce02ce9f2b081f09774ae09fda994fdea5c63b7aaa37db7268c56e11898856e94768e47c18272285050a1c182979a63a573c17b747c5393b8ab21dd17849a00889c11bfe28c60d1d604fd716202949adf2bf49db903841f4ab64bbd7af3de775f66f219e40a6a61f5c2eef5377a196ad8c7837b4211b531aed7c9969125994d6ede189f872f24dde4b92eb13f027646ede13d35d02c58f5cc094ba76873c817367805e2169011760e22b8dcaa5755180cd99c7e8318ff61bcb7efd3ce0303ba669419937e0e41bb4bfa960d773a5b73282919dc9d70b3427942078e7bf1706a67ba52f047c8795437d28bdef9e78e95b3ed9545177db31920d138454238759cd45e7cdb9c4d6bbab70654e2a65e1056c2ed98d9c601e13a356ffd254231c867b81b0f9ade2affe15ee88744629eb79a5cdc5ee4e485d663bc72cc1faaa61c651cdd2e9632019a747d1b342b1f493a1395b82854f888393f4f75907b2af70defc62e5087f1f4899d30f4a97581f009caf78a29b20cf38eddc1cd80066b1727880bc936be866ee4a14c994790cffdc7dfd977d9af1c3dd23d5371b8dc6c2a3b043e8f92ac954e7839e1b1934ab04b5f51e8c650bdb4357c2309b657ab2b968430b903c363532c8ce386ea00ea8f8cf9614884ad42098a01a4c054853149a5013664f5bc69c3bf9c237eafb9e97629af355855936f56d0d943333dbfd401a89a8d3b0f6ee8a5c7916d887c73088c481ed8963c54517040846fbba24191a1ed20c09f2cb2a0032e1a68e4a922c2e1bfa51ab6e7326490953b7a5a1197597c7adbeed7b43d6329c9969bad56140b6fe5819e5915ebed1ebe120970639467ccb2c7dc5c290ad0693aeb6ba1a27a416b3e21801ee1f239cf179a9258e9c527b5e52103e7ed22f67789a030530a536d90cd8b6e08f389921779ab97fdb4129d07a3792e4e1a64528131c38463e6d576d554f87207406e1587d6cd30caa6a0de6a7f0254e334054cb9f39430ae1b2faf0641908c09f3ec50ed1ca74f3655457c96b1e29287ee075c219c82c9fd2ecfa53117c97fb46f8398dfd351cf035da70345999dd6b0ce4569ad448f6475f343433848e8bf886b45cf4166b63e1347a60a66e05d76b6489c4c1eb621e50ca52f1cc75a9f9304b6d546240b28c986883e2a0be4113f8d615b522ccc40569978572264d277636e82428af59ceb8c2b175b4d3dfb053cda248ee5ab5e44b51d6865271c9aeee589e2b2b68e16f91be8dea83a5144b24f5b410e48877ac7f1a734b45c5934589d2f5d5acab37638fe9a5c52004958be19b731c5d98a3339df150a80e2c6ae6ab1e6669065e9eab2d2b1b4e29edaa919ed1b1462f02b7da4e651fca499f6c114434e1775afd9d1c44c55ddfd5f7936687a8cd6fd2ae67daf6160749d146c5fd1eb7d73f9cbe8ba3d4f50f98da9e221d2d5284c8c258d12966f6faa422c3872021d71018839557d80c7d7bad4929af61bc195b34800c7a3a18a9935cbe648a383f4872e796b87b462fd585d14e8ff432777c798a431b56714e5ea4a44b1f049435d2e80e2d7e378c97f8c289449919eec2cc8f535fccd6f53379acd16b55db0bf7f4f42ddd3228430c3aa89d632e9fd76a9d71512537b3984f56b11618fbee1a79a5aec4256c4bd2d7b0fdbeba2263934dcb4319c850776fcbb0b9e1ddd9da387241b0d7a54eb16147d0be86ac55c35a5a2222827339f73ead716ade758ff346d3f981fc5e90bf2aae42cfdd059ee634467d09214239119ab494c0db85111333507996c4cee61423264662b6e2195a666f71c62d8c9b9fc7ecf6020858eb4998b3c2f000000000000000000000000000000000000910161d2126 +flags = ValidSignature,ManySteps + +# tcId = 49 +# signature that takes 29 iteration(s) +msg = 2001000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = d3ecc39ab0177953c2e5afefd2a75e55e7795e49c87a44706b7b4964bb9f9255f4b24b92e7401e86f5b79be5dfe9280112599526d7421d52c9d9d49626042b94ee4f2ad3295f4767936029b153c5859ad6c119b9f35504ec3fd0e002cdd67764aadec5e38b11d79d458cd290ede3372a41c7434f285fc4ee45599c02c85fa99b5e0b96fca57f07a494c621530be5ed69598c2adf48230caa2129c470052c9047ea0a622b15efa8c9cc5b1e8c6970b99fdd7281273dba1399a319428f79969fc0cf07785f22c6eda6e768ac8230e440c8bb05606a9cabebfd264d1316ffeb9d9574103a70ab3cae8f22e04c3bf97b5bd293ac496eebf9787269e430f4be6a7591ae1fae037f76b14af90046e6ee0edbd2314fa16ac3eb69d69d803492cb5769ec93fc197d2302fdd46391a724dd51c59229246deab0809ba4f1999c0fa2c85e462c4c26138a4a9f299bb25eca43657a7afe4a1e420faf756e3bfb77900da25bcc183bbef7413ead287cc539f03de4f56c2ffbef8312b5909b87977f16dc0e65245d4d1069e46bb7614034ad73acfcafd64226b692dcc03e695bbc78ece5b1a5926a346fe5e8aeb81a3841cfbe010c69c9b06a0b5b81f772f8ee7248572279d37e325e17e81ae2479de6702df4d4c376be417c859921c7bef00f9b22bf1c3f56c36ff9475eff8462102f79c75478697838b384b1c57f842780a9be46d3c4e6f7c38da187945d283049d8c0278f3237660e612f50eb73b389580f740f05382a732b94bc7f3189d6cfd2de2c6fdc6d7d57de3b897df45c44ec7ecf1d4cec370d87f4cde4ff470ec42df2ae0db86f172b146bfcc00b34d4672cd80b06e74c5b302a7e5fa7996d930cf821a22432f40ca9ee7f3b0799c87ee1c20ffee186c15e73d32fc4a3d77853b0c3caf44757369fb5956158315358269b3c93db934ad24e0bee4b323359e97ba982d78873189243a0eb5d7760fd842fa2c04d52f3ea45f99eff1c236d833bbc8ecd88604b7e33f8981fdcf2695069f10d8de32fedb94f58fb438dc9af842698d4651c74383b63e2d8925211e02601b8642d34090449ec8703040ad0e5dcbbdd46db0f9e2f29f590b6688070cb2c868d41d3ec67d7305ae6a0e39d9383df31e30aa8071e481c1133c8420b3e5a3d7a2681f490039717ecf088b219258c4449ac8fed4c40c805ff4b77d7c28d0b5a0c8cd2d19e2370142a4fda7eb0dfc9a84cee9e4c845e8643c8108cce254b716dc4b562fd2535712ff840415212bed1fd2417279ad11b743fe2895598dfa938656b7408e5b1497fafc13fd12b3fade0d40a0820f81c430cc50ad677bebbcdd74ce14682944b9e9024d681759b4793c246ccb7ca40d889015f752f73f66e60c61f5e0f459bacfc2c413b0c4cf63fc2b7bac814ad822ba4caef6d6b7fd216465efd0cc6cb4b1a20fe66157a8853975b1b2c271fcfedc2912d1535972fd00f4d37a5b08619e0abc563ec994cf36f5a89cc5ca6fb244d283599d42c6a21767442282a4d18e39e31604aafbe240e48fa1d7a89191120daf5df393a9b115e9867c336113c45742a90d1d4113c66891ea46871d822d95197f077e8438ddc7eae6c33dc4013562aecde7a0168f81afaa2ddbed3e2cbb4810859c2fd5a3495213b97d6e5aa7d9aaf6ec2118b6ae7c500ff3aa12e5469f2b58fdc9099eaf8ffbac111b49b913622289c81f6a690c4b3470a619ad960bcfcd1582fa9ed07b2b9c839c78f712573306a9ab454d7915315f1514053923dc53f7fd66cc142036e49f0bd58e708862cc263734ec967d5e4054c3be0369565dcab83c9fab99219aaf21a168e72584083fe2f46fc477902b7954dbae30b668db0507f29d4a64ac358d3366abd0b7a9e8ace99f9b0d16316ea74739dd47a010bd6ac51a9142122ab699181728ca1c381a941516066ef624c835ee0df7e4f202c4677417953775d5fb252bf8ba53ac17fe2f1af324a168959f81567da9e73c3bf6bda37d3d53d9b58efa392b9dd81c5827d5fcab7bb4ade73563a26d83c8a535ae23339820c153f0f79b1f9cbe2b16cda032cb7883d3ae368859ebe159c0be2ecb5b11859d27afbfab3df898a7b90efabdd58308ee3f099ece6f7fda1fae5cb6ed55111fd4d6cdd9015218d830162cbf03b5c4cac717de09dad6c0998b501a51cefb76c4b0199c58e2e316127aba37682de5c04dde16343a33e4e5ae3b6295793992467cff5e8e6132ce46e2af6747f60e4e91bcd7a143d1f42c8e9fd12c68221b067e7f8c4b1d0c30234657b7e4d64c2016148b84287258ebd1f1639bb8c517814fd9992fcca0c15633148d7ffc8c8531aa0bf43a23ccdc423878b58f71dc57fd617c185f62a51d57aa938b95a9fd85c4d2c7da5ddfdb83e14231a1800ccf9e755ec4ac01970cd94cb50681137a8f00da4938021120414caa08fe36bf3e32b7e660402cdc663e8cb4a9392e10c764024469f6fcc3b10779f0cf3d7beb160ca7638b949246e679d534316ee8d61dae3b321a37786ede9f94dde73f88d5e49aaa40121d0ee9b16e8e1c56aac332b2bf503816d6e22cf50d798e3fd4bdb003c5f162e61c887a0c3fcaa35140f3d718a220044f4c4c581db8ebb167b42c2c9ddae5ce89458a0ef92d7e741b1fcd295d49698eca399fd98089a0284c33f13e715eb19883c42af2b54995f17a5499340a20f38a109d218cd7bffeced7a1d16f3b2c4636e84d580cb8c1246ddcbaf1e7f5a52c5ea48ee90b46ff64f91b65379fae27d134b5b8e284237f96389ea2a94c2fda31abe211d02907dcffd8ab33f9a4badd34472bfb22c5afc67645f38da26ad169f699f76196f5e33087e15a38ec615ba6547b38a58ef56d81f84dac75528b5e70c88b2099715322771eea2d741c39047f5e460baca9ee95b2a19b2f5bfd988020f918e6b62e9cd405c95c473bc1b6e038ea2a07d997551488490a15e46f58f8d6fd239cd0991b6264e348e9f1c6cec3348eff7466e7e48e91aaeb9c645fc690f0a89bf8048f67a7d67967b42be31b9d53c5c92dcecf1e16c451564a2d9d7a34e3c1c7f17f71eb920aa8cf51cb609a4af0c5b6c44ad4e3ccb8346f7a86589d05be01ec908eae69ebfeee12d7d05c431c7ec7ccaa0498e899aabebca31230919861e881f948f085bd519407be92ce923ad6470853809bc4367d9ace4b0df2f43e208bd98ac18a77d8fba7fb16ed95ca128db6b52c12d33274f9d169d2f559545e40e3ec97c1a779f04ce772329a4fa09768b9681200ef3b999c6778ff606d6d2600c4651da56c6ed88d0b2ee4a1aeb7ec3cf60b3762ebcdd9111027d3bb2bd07dfdb01a9a551a338cdc3b1cf03ca36c36453eb60d66943953bbc2c10594911e6fba766020fa1ef62d7f2e1c59f7e208c1dbbdf4dc27c0a4495d299d8c84671bebe8e8647ec6a8acc6359380dd15c26d1c262371d9dcc0472202da4d8bbb828a48f3345b6939830f39fa3e570ddfd857f47f839af31fa152d97aa18092e685c6741efb93c04a31d91140140b0f34985a4a9ae4d960bb2e151a629247a79aeffb8ae91273f8860dd817c1760120a571da080f2eb41b4743ab714ca418b4645fdfbd755320d7eba610684648b3c9d25c0abc245fdb86397b1eb1ed4ffc280527e20a6cd7751cfe6aa05c836a4bfdda89ef9a98d947d316feae68be99a6e26819255cf1d20b6f5b8c2ed24df630b43d88da5e9dfa82e980f75f8e2e1033aef4831558e93bf89a103daaae10c963b85a0e2cfcdcf0787ee869cabf8c8ad45a9857fc8d6c467439ea0a0bad13b7989805b81c3c69716e74f78d8c45b105e589edd9f3b2df2b94d79caf99431b85c19f29e72e7593c61e93655109a289695bdb38fcbf48031894ac5e04519f101a7982e3c1b3bca79d49e387043255908e55d3e268da93e07c894251be04dc6ce639df29125d69e7bf6ec910e96b85c9608381e8c207ba05c33dd7b45b43bbd1c410983028498bb9d7a35e8df7e4567a6c5b497df1436a9cfbe0476fbdf72f4657593aaa11abef92c0fa8ceef1e47617abad895b32233376254ee97420970ab413ec4bbb5386b26df0dfe7851f0cdb2537c0a4e184b7b3097884c4ba7ebaa5c11fa56059cedec40f3d6cf982496566a6d29fca2b1de8efcd131889472948d020d45ffda51121d247611bb498f788adbc3b43d893eb37774c97956d438f902522ade3c18ac82ad9fba333cabd2368dc4c438d2479de45795413ebe3beb1ba61589287c55a6f5e07281d0160c0be7944b5209836b7c81dd88935c922fe9c9554f5ad6301d12c2fe3be54631c809ecf259924ec99c9dcc3bbe0be8d5f4846aacc352d56e882ef62a9645a46b0bb8dd2d5b4de64839cea783b86205b81ae419eabf66e5f70074f4ca5c12b946578fda9465008219781741e43c2ae047a2f0bfd54e37bdf22eebf5c1f7bc2cb8988c7d6a73cfc78eaec7dda51d6d7f6377f322f07e98243b71cbf2187c318b652feac32654b4476e9c2a5b07eb9aa7dd5593c867190ee9d896d549347b59619649f01ed617a01f35e847e9b29b3a3d503ef8d89039515d2622c6b1c0237da29b3648faa88d43008dbd466381102c31353b46cbe4effc4c7a87093cd0030f1886a6bad636396465789bc4cae7213643508185bfe00000000000000000000000000000000a0d10172028 +flags = ValidSignature,ManySteps + +# tcId = 50 +# signature that takes 30 iteration(s) +msg = 4901000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = ae24fa5b2e13f7ee71d55906b8d83994bb96da7b88b98568987fa7ffe9a72544552d227e935844c7b1602ad91fa0e40ded2dd5ea2d25321eb4f96be7a9e167718259e901197df2d53efd428411a073346cc9e57a23c687adcf5864b001237d34c0de91cb319ad3cf698f11fd2ccde9a91aaf2891b30f0aeaa24529c84134076b014b410029cff5d4de892bd24affeedb4972670b12eb3ea3b06fd6c91ac1517515c3193bc2953fa5a9bfe173c5da8201da2fbe320d3fd2569520a16342a30da1d78181bef31a5aa53d2b8ec5460584082dc93751ee7ebeec1108cb60f5e7853e49e7db6055df2f7cfe35fce2a2f7de367dccfc980155ff080d2d7035679da1b7a83a4df8f2d0dc105650db1b981a744338c3512ee99abb78d278cc2678add260d9d68db7e2830c35dc8a32124bcd99c72309e47ec19d3d06507ed6eb8f7aca81a9839361a89c81d3f965627582652c97b00251533a3cb6cca24d492308faf7f685929ce463cec39ae77621644e8d1579fb3d208ef0e299d11523e4b631e011317f78c0ebc1bafc8c9b158168466158b1334fc6050a582ec806c8dd882f21ffee4c884dbcc5dab1d69c2efb45e4de6fead2f6f5ec9059e4b76b2356466dee3d8e0f2eae27a2eab778bacccac670e495ddc9a824f506c5a6c2a0a024f74530ef5ada75547d124a580572299c4705a24e263d2f90f1e9121726ec267c47cdaf31fbb0c5f0a4d98230fd3c4dfdb29ba2b6dcd7c12c9197f1520c1fdff81ce570e9b3c7693fa79b7154528e843443fbe1963ed6964a4703242498dda72da2d843e2295dc633b2d6755e4cc5154856b208e02184aec24cf05a00336e4d0ee4f640592c9b24777438eb9ae28b783c43ed5dd500e2eceacd2309c9f7356a4b276dbe89b69614fd749fb4181d5d6ee45d256b48a55c892d4df68f190ecde11b87fa650262048c99b00c3e894eb3587d8905f261e47489938c626fa611bcd6d28fc895bebd72059f912231404a56a238a3062f978ffb925ae0aa03ecf3be140f1bad2e4bddf3127bd8904186832181a00a8cbcf23c0b175544c1e45d9c3923317fe1bfb29d8c04c7f0a08e3f6b37da851ace7e9bd33392fc06fc49d262d1f8b4d80174d43f8b7196aa262bf0f8f25b42e13eb0e827096f2074830464765020a51b074853cb8ee88d229cf91d07a1c02de057564d3ee5125bb443f7b981b429688eee5ffb82c972c14d3b5237fbe4ac5611784223ce00f11fbe4636519f3ddda9893c87dc942eb30660c816444b1dd7228a40b907c9b3f1a46cc166a75dfdedd6c76e38c89cc1537e63cec449c44be2054be2bdb0df0169f7be37788f4cf8f9ec5110029aca9e32f76ffa2b68db9fd0480490f894e93a66bc9870a17c1b9ae0fd477db2197a3da06015ff9cc172f6b297b5c79a4e6943df6384a737f64caea0c5abd7a799ede4dd789bac30d7846b19ed32f9669de319d67e7e4a61bd233ac77e9da19696c9c4a791fdebbccd285dd4fc0bc3af634a9556650e4c730381075050ed834e036b25fa9125d262520dd095b7811c7f4b33c82171ceeaa664227502b0dfd3cead3593b2fe80002754e00c20c65c7454ab8869e014c3a635d9bacd6116b320f487bfac58b1d4620542ce4f9303217b7455a9a0b7f92f93334b2bbcc51928d04c77e2fe376fcce692d7c36d17316f3f85fa43c994a4b672a1ae2ad8555331132b35cfb313daff67aeb9fcfce5dc440bf87062b24f9001b857b735430826fe4bfeef055a7657269c352fce093270f1b1a7241ef8543ace867fb142c2c78c4a1fd9bd094d8810f3c5c93dc9841535aaaa573b50814df0815de79cc1ff7dbd3ae869f193da637ddc5ea4d8fc88555364d612c3c5ea0230df9f75732f8decd035a98d76aafb58b5ba98fd311561aebbb4f161b3b78a6f64000972e57684ee68c9af4f708f5126692ab09c23866bb6cce9130057a99901647de175734d830039f21cae68133e00f7c0c13baf9cc8b7b09281bc2902b4f1e5e17493554fe7a02964a2d020694bbd049250dbbae5f088b6127d2845741a75249e163e8107cad459b68b52818845a04dc373d475f25e236f72f4b8cf883f4a25e857241508469a2c424ebc06450bfa33dcd2c342e0c3d170a06e0c8ac7ef2f5efdbe57ebefe1782eae6a16c9119e767248abdf2a3fb02bc9419c0de7fb8be0b8dc07afc74074d8d44cf6adc0009ba73058602c2833f4d862579e8b6049a42de92cd76da08b3b8b8e442a832b0c89238e1ecd862f629c691c5ce627e0298574bab49373710d096fd06f12c1d131f134bd3c51c48abc06371a8c48ab907aeeef68c14eab063a6d99c9ec8ec6c860b97f43fe0fdfb95b91a4cc0757ab27ea22ee30d2a69704c7526377b66b9b2c139ba52a7b5b03971eddfce00d155a26ecc56093f6834726e86ab6eb460798ad3c6208483c413562b62c57591b44ebc3dc623f01ec7f622de28ce0025df34eb9f669ac95e0c76c0dabc8b084230ba2ef1f11b5db27f34e7755656be244bd72d1816f33992cd8268bc94ff8e9cee4ab0e34083e9ddfc4ee1c5f0e7a5a8a05a0b76863f4b637aacc8d1bbd87892ea844ab3368a176859eb48b2f6d3bd89c9f4276a5cc1924792fe3be2d1031f003107fbdbf737392c0ed2aa950b00e9ceb0bd4bcf2964708e17340e2d314f7cb912b9a4d2d45117030f81d6e3746fba9cf5886c94638f1a53f0ce891f0b88a33538a311a7da219814e450cfff5e76b4b872dc53a88f3441e12df39298d90cd4126987a56c1fcac0ae94457b1dc8d2ede35c5aee0009d28865f90a1a360d435ecf71d6d0f60a978a69e5fc75ee639d15b0338d4a39e12c09870caa4bfa89989ae7c0067d8d2e142d6457ae900218c524c074c9bee39f987f040968a57fbffd0fa7989feea3589d68f0bc281cc4f7dfc02441c631724e480c7fccff312bd4f3c3eebc3966780e2b719905994e7cb66283b313eac6702521a919994a1d1bd9616964388ce9a7f39527728c67c7ea0bab7f85bd13af7c4518f7c58fe963ae6e813880019f7f4d6813c74850385b8f6b9c0370728d248764855fb8281a5e5acab688d39b7f3e246dc111c3b83c187d676402163bfc63370dd1fb3f496e4617e6503f6524d8f6ef509e54893cf70333d6907f5a4f3404fac891bc6daeb12df9dd16713da93982a4d85d26c1b1ecf2f4615008b5177ef6877a980e1caa9e9b1d53db7c4b2547f6cfa4daa908b292d2f87c7780b48b9024487d27ae1172026a3cefdf92b8866dba1736355b972d663c376aae45558156e9ada92c6c7d091a036e78978626a679eeaba0216fa0eeefc1f60887ef9e80107f9fb46e76cd26dc7dea30ef1ba91dfc2fe431f7104df08e99ba84943917904e188ac3079186aa472b1571d3cc4de95a454eeda9b4592b9724c9b4cb768790474a716d47b7c46ef9bc486cf1b3231ba38d3dc58136b1c164aa9f4299ae99b3474cec84016e9b7b57419a6353cde8889a5f48de38bed8dead721c2ef3871accbb94b19c8c0112c4d2e7b2fb1cc92a144065251292119c74a0eecc47dd8b252a44f7668ef100a5b661967bd5e9d2dc386547a2c73005faf300b147b92140460bfb4c29219b411394b9e60e20d89fd02567bf3568938a93e8025e0c1c24db2614293c5ed62b3dc75c9eb6909578afd590aa11ded16ce367769fa3c20cb5e068fc6470819804f220e2008ffb516d27a7857d5e8a8785097701d056756e2141142204e13882ade1d97a0a575fc63152a39c44f2da987b027c2fbaf41745945974c87610cee657f76c9cdb086b9ad84b401739912ca96bbfe3877c17c74a333ff98e52be971300a095c740b5b093edc6ee473b0bdf0599656282becad7e114768236f1a2facdd2d1e085e88d375be393412fc14c646b9528d09def2b9a5ef44cd75d3356bc10f1eb4b5b135bf607d32a0741b7a77b03fe44b4a8f21d2b5190b01dd04961e2b3c599ba6c8e175116af78124b67085d5f075d54f1481728e60aa4a007f7124dbfb03225b880893fd7de61dd8d31953c988d5454f973a84c4bf56f0aeb7511cdf3c24bd715923da359afd11e3f4d92b0a17bd88e8ad22e19d0eca5014d8f16d0ebbd81a0dd75f32f2a7cda47b8fc03563d5cdf5917c2b4dda39490162dcbd37e87d9ad37d75369e02ed8daf73904ab802f9b41495c3cf3e22096921e23e6abc537462ef71cff0f365e2975f3a3a5836e5a09b27d72dc4b30f8c67f33092ef288e5eaa52f62ffdf8fe7130c8dd93f99c530c0323019830220d37fb3f716d62bea22914bf0114eb0d92b9f3a2a8f1764b61b2f89d40f1780c834161e5f41f75a46c338418e5738d23aa2e3dfbf580fa7147a42e6865d13a69eb6b79e0603d1176354367cbdb4adadb398b7239862d54403118ebc5569f0454ddd954a2553820b3cc2349eb234714cc618fcdd6399aa3836228256d418f80e96c26ad07f9035b7cbbe0de919c51cd5c8efa7338483bb4480d21a770200dc0802aac83753f882c8fb555bc01c3bdc09e3d5cc2c10dfb9337ae7ee9868e34cb671a0d4f31da52eaed9f6513b825467de5f2129b79b007524f402e3940556a6c97a5b9e125495173fe0b394a6898c337999ae10683ec151f3cb5e6000000000000000000000000000000000000000000000a0f15191c21 +flags = ValidSignature,ManySteps + +# tcId = 51 +# signature that takes 31 iteration(s) +msg = 3308000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 5057aec74324b4d5dfa965882d49ba03badaabd76d7e56d1339d35893ad040fe52deb881e999796ac3ebfc749a6004b51ae140a6c0f3105c5b0824fc17d253931e48ead138217bb5fc3776f4695d4a6a34d387856372add58aec8ddd81442af399b0be2c79c2f4ac6fb0daa61bc48c1731cd818c9a421e6e61ba1228e9a66cb5d6e72cfd79dc144ba3a51849814df30c7f9434afb991d8f824d42c7c42a9c055211bd69816862e462ca4897e8661ef3a3147f362e0926fda48deaeb0e7062837c071b6f69b880f389ae55f2e4c80f4ef3bb116490035fde777663eba8a4c7e518b4721988539708bb714b1cd26da8702bce552a3b905113f3edbb6b77dac1427c0166a3fd46ec1c4ec3858c4b529145e1b9f053c1904d35f0a114cf547ceb588d5d8a5dad2880a18689e439603586ad119a04e03ddaa0188e6331dcabcd0dc223c469dc32e041ed18bbd1676c7f05b731b262a0c0a00e86753b20c9dd3d5af52c449b9c462626de5bc59cf018ace4ad9892e924f2c9af15f013710c31832609a819bf99b09b14663a9f4b0078335e81ab50696a65f8c151301cbb16bbdd3397eda0d11e5d56d62265e49a78a34e5e5bd9893fce108da77d7c17b50abd1f91fb9b7368084a8b2820eb7ffced530f7e4c78c20d1408e224ea17a19887f4ded7f7c4fad037a7f566013c082d633c3e62ce76599a294fef294f79334d7aafbb8f8b5bf3b9b58a82bdc0fe49c73f82ff86d87d9ecd2885476f9755e2c270bc01dfc8344828ccc3ceb88423e1d52285e60cc140bbe1b97cc9ea4017540e7078802207e94a037ddfdf0b681b433bfab0930fd1412c1b36ef643df0f3b3b00c05669dd77d37536c3f48a4e7889b365f19d2932e146f7c9702be9aa88f5310ad738a1699aab1f02f7a525f212bec566cc34a10d7c82e543efdad640e00f6a380ec319f1d48d8584ce5cd6cae835d23a099d91f0c42c0d27a14cabe283ba043401ac7dca1e8b42d8a8c37923ada7ce4bcbe0453055cf83a1ce54366a794e95f62e3f6141f3e0fb78eb181138b77c0474a0e300a7765603f35a2523b6618cbd08072ea8323af7a714d4ee6f64cda0ea157d52cae5775f9656aee2db5728369f9a0492428ae02efd457123f4d08d92a29a9d7943ed38b0387dfbec6dbc96732d29caa78ed8765947637c00fcc028d676d8a9981ca97fbb5f252e836e93aa8dd37000d43d047c57009bb88dec672b77d8df3dde4ac85b01773dc00a43c9fdf2cbeddc04ba3798ee18126b0c750c6d40ec0ac076b8dae0d5aa71b3e72a71603c82083267849b263251b86ff5fe1cca0ddc3747a353392a47ab6962c15e005b2578094f9f9a8097243dd15110068f941a11902d3148143cf65ed30fcbc172e7f016d629f60a584d9f4a0c539561714f1df67427331f3c8395f559afb56ecf7c5702fa34e923cf1da8280583fef6ba1570eee03dd7efd9b5add767169ca11a0eb538790afb05694b2719a9daca1bcc31de44d0d5946d1e1565d6a476373b42c9f05e01b9d39a921857ac666d190205744061960b94e59c805b0d840a140bb48817deb68e6654071e7b56696f30a27368c36377ec8be0e4088fd23623158ad7cca215c70b7dceceb220de0509bd3ff530e2e7bc1d3a9358ad13794a5fb2db6c73965915a193417cfb63f3cc53fd48d94d308f27efa2c2c096a14a1495244b437b4563a2eb65c7b906816d205e02a465b350dfb7b88403689c8930d5898f41a4268059b650237f60421607440a16ab8b0b1067fbe9460afd8878742a73914c6986ca5d45dc516665dfa4fa99d733865fea4cea28ebc12d50a4edb7c1b3cb2cd0dcd0fdc6acc6f7972dc6a8ba3b3c13d487c1c1f00883c2c1822fb58c684427b837d457e678a79c0de7e7308481721d9295dde258d2f06159c98e2f70a9be35713ecaa35286042d32e85b760fb79147f11c248790a2f274c09015d43fc33366d7d1ad713e2155600eaa5cabba497044ec99c17afa680f42410b928adaeb876bea66c1520bbce3da46ef8d3ebd6f9bbe40a4b643d1ac5c88cbdd26023b88757b2f6ca78c197ba0caf240050e6483fee64ad3dec7ad61f8f793e5687d9e7ef3bc554e69bb8f6d0ab7a51d3f5778ed262c6d32408d74879614d22963bff3fe484a83ed82a181242214c5a919f8e510064f095ec8882e18ded7dd4c3e76920200cf6079f56887fac3f06cd8c3b70ea053164b912fc6f6ec347b78e6cc3516a89dbe136350ccfc55204ca112b2873359ccb8d30e748f36dc4e9e2ab85d1eb31df27f0297a6c7114915183cb106154c7ed467dcfb0ec709271cb8b64b430139cfe732f9ba697fc5833063039a5d5a2ef59d3173447510e0f59a23be4ebc341356f2205822f0a66d65b7e0416e354d1dda7f75afb864fbbea967461f69c0fb8ea80262f423bdfef3f18c1fbda0c042fd5f4bc7c0b5d2f7618bc2be24ec820d8986a6e7c345f22ef2832797e5aefdcaa07be9f31bdd35d282eaf46d796c29b1e1c34ad11e02f89403ab899c49721be2a5e4a0708abee762150069c2dcee161204cb5bd680d6cfb340680e49f79538b5fab63ee0272fcc33379dc778581eb9b5aa9b72624eb8bb28697d6ad8f16ebb6c29aaae800f9f8063d8885f3f8293c40cddc975c005fdc67a9b79e6bdf7fef1b30e3a0c3ab51cac4ffb15d320acb9a969165fc8d9cc4c9fdff4423b9582c2ba54fd73069f1e59a3ef11f01d57e55825f87346b74cf5afd20b5569a3cfe8182d891612613374053557db3d7a8c421ce649e449f7b0a6ca7ac11459694db5ca15625181aacd2184ac1c090fe583fe7607339bdbd5deff4b4c1b82b0b2832a5368901234a627a63a67a47069b78f45f6c783ce2f782082406216411c942b9f455eb081035b70c54a13f28df53c00de9c433204c61471e021d6a589ed522445007250bc398b16548b58e54b03be61caca4bce6ccb51a9cb4c553f0b099a568ca49d93860ee94de1af05bfadd7985ba8f19443f6594de33670b7711ecc838269cc918d5ec2a5509e27682956c949224c1ffc059c22ab0abfecabae3fe954660b32fd3e3c0bd83ba0e934f78bbeb35c3ee95525aeb4f62b0ebdf70cff985feb0de983ad2a52d03d7de00caa70a7ff535339957bf7bbd09a405ce6ede82455e5ca132bb3fd473db1dd087a047281ea9c27d3c98b18cc99893ce570aacc16e4c8d84eca7197390210469d309982c2e58cfc4c3c41b0c498c02949ee8e5dccb49c1317f014f5af0acf4710631fb3e85cbf126dee44c355fb9cb1e8a0f794a4e63c0841be9ab8948224490044c4e08be105c296182e3ea14e34ad132f1be8ba30468ef364999fcd1f4afe2c424e193de17181989dc2ad074971b19f8bed0657a3e18d7329525e07778ba620d8592a5ca184757e65a28cdcc5ae975ab44f8b0b4ffe6b3e85f1194a64a053e5b5eeac4b87eb848e78b0a9a10c955a37a719160a46d52e237cbf5fcd56814fbd753941a85e20e1ae3f1252682bdbffbed04a11e3ec1d0383a6f5055b2c09dfa16f5b3bd6895a9c4cf31d8c2ea76ec5039f9f8fd1c2becc3a0f69aad095f0a1cbb7800d4b57a7546363cc0a032599c4fdc50223615503b13d7e115b1bf7e3c6bc0a2d4aadd54489327961344ba4c0f933267eba87e0bbc688cbb2aa20bd04cdbafe46d5be7405ce029d53f3c376a3225e4755195c46e25c5a63c953172c1240aa4dcf2629e00e9c6c94005dce93f8810a32df75d3a67314b1126a647bea0b3059ec7f0f4a3b31f83a16b01a31a44eea403ccaa9850622ed3b6e3b41122410a08de696749b728e12e7e106263164ca1006fd3624e48dd9b796e235bcfd240d651a5a6317506b682203fdb124480e135e9791521b61880bfad227292e2052e1660bf342995ef3ab701bc64fd575eb3c3872d8cce94356caa6301ed6091fca973889151580f11c095efe49485771e6008f3e15864f2d5c0ce96e73c432259e12ee4591179ae285457a7bfb598187fea7b08468ee34237e4dd6be18c759fd3d262bf792efc5fd00c2f93ab40ff228fefd3d10d147690bc9fe0f8153cef46624f123954bfc5ec6d91614a7eac99b9628ece91e6f116dae000353a3736339d49e00ffc66a912970d7845d437376a405ec9091893ef9e025cbfd8919cec5e5e9c8ae227fbce880d3563330d32f4cfe43e62cfb8a471eca1faae3a7b1bd40f719668e249bfc2c2b58940f6f73c8985da43b0f6b41d54809913ca8f8a8a60ebe8b09c5e2e089a3c8e1de99f8ce434abb2fb4c2529deef8295f691bc36434b36792d6912e1f4e1b728414e77440b71529bfe5430e4a38b292dd2532d6e614a7da61533062e8ff84382993a8d3764f654e90740101c08e185af2dda68d0d348841041eabfdbc9ac165385b39a03d7ef359ef9c8db393f46c5e8ddb93f9e961478c353085ede0738b09ad0a4f77e094d8e873455be5225ac4a365a0e3a943d308a208da56bfd3d5fcd439b8e73a466dc366e56d4f6e7e963d0d3bba23fb3319f6826dd6dd6a44dbb5895e707a395f646c2e02a6b8432b201211761b6c6021bfe2fef8e3254e7009fac6287be9051b2162c1c3d1db05143245489496e228ea243952790a83849ba7cbdce1e8081456bac5d50000000000000000000000000000000000000000060e10141d23 +flags = ValidSignature,ManySteps + +# tcId = 52 +# signature that takes 32 iteration(s) +msg = 9721000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 4cef6107c57d1e2a3389a755019b029002ffc1fff9d4722f8f92e9ba921dafcb20b0604257cde0e315568622d1a665746b446a8df7d8fcdebc10b02ad687d912a944761e54f05cfc113c064191b759cd8f3d0ffdd523644123542aeaad7645711119b746ad421521296aaffdbfbe3822ea3d715a4a276ca0402803a71cf4ca6c795ba336b5ef3a093167322dbd3167502444027b8b449e12ff1dcc8e9eda0b22da66ad89b01c86de493084488e126873be44c43e4cc7972ea78d524fc556b37717bf768bf0fc7374ae56332d955988ef2d57265e43768ef2ae3ff64a70037cacac2f1af03119efe45014f45e070baba1dc5f73e7733c958a3042c743af9215ae7ba3a6284626b724249033300cbb7092e4513d14a8b19b168fd3d29bf461ccd51ab581c0617b64e46d901724238d9ea556caca19d56d83a2cdb43a0db469839cb1ccd1afc705061d2e15b798569bfcafd135b51e21119ba22f4c69b205751b177354ec3c6547ca89d86a95cf1e0b4139a001cbcc5274f4eb19eee0c6b2ee749e940ac72969845563e3ed21d350f7df7d33d969738643983acb6aea290aa6b79ede572503d57a4267d97d2ca92ef2d17b104093b1242c53ed0d966ce4100fe53d7a36f14ee6335a9b85202baae912d9ed7e3f153a0292708fd3c7922ec2b43e4801243ee4a65b875683f85a071c86df08b2a999e258de58534c29722b912a78f515c353caf170b2e1eedf52910b857aa751114b7f26a3cf9122a814a6ec65f0347511eeef5094e575b0c51a90e27ed8c58b36674323964eb9725c550eff91d8ee79ece3fdec6cf9829a6f2bba5ddf9958f1c3f2932aa2a888d81953e74111cfa6600c10022e3b7a420136731ad638d26afec4d1df60bc255f45811f6686f8c81c8de97d541f4a38b6f495aca0a760f3cadd06d72a6476c02a8f61f92049ea6a5b5caf6294e308dc675b47dbe294ea8ce599856d19dcf0ea61b3f930e3fae682d8a324c0022f4b904b092bcbc0279b146cd63b827a5efeaee969b91b5158a2d0cd41266c94b873ce7e243850257e5abda0e37c4571f0b28a92d043cbe92a220170c6de589d0ed0e75ed1b288dbad8c7069f8bd3e4151c0d5bf90e9ae55e2a2b9e46898a301c0823ec14a201da94e9c0995592770622687f1a477511563dc9cf9500968e12c5b9b9584f179694a68055eb5309a01110fd8076c96cb6d57f0e228e1afd0cc8776978bc426401aa1fac458b8f3e1f2bbec589b653469a6589527e89664dd015497b669351dcea19115f55f0814a4c68f4a3c22dcdaf0d10eab6e884c6000f86ba0d8a453f773a16e2e50e85c69f501f29e1a4d8cd4b183efa68df94b98d47923dd8b2315e953465b0f65f3ad3c1d61e6bbeb34177efb27ce59c356873ec150c5d1883d0eb69c26e24a789aa0450af814faeb6dfc46d3b0309eff2d7c6d479832bfa6f9c34e5d5df4861865e64b5b03e211bccf9f72be75ec32e4140bc81dcb69f4de50d8a24896f749c356418d4270f5161328574f25650da41035a8cada3d9b630e103477977e5bb69382201fe6612b3244452a00a68e9b66b2a532d5abb29c0412f3a76e0d3fc0ba868a237c9ca392216efdd77478c49197e963660d57b96263ac47ef7ce463d715aa098ea2533cfb6bdafd984259f6143fba4f59bfe95653fa3ae232fbfd764a3792748365f5512f945d44b014f0c2b33911b36a60306f087c88afb57cf0dffbb8d80bfae7a44ea3e3ffac7e1bfc614b4a7b345c456d7c52a359bfa4bb5499c044c91bc6ac38f6ac2a39e80aebeced421ebe402782edc887da588be58815c71ae9e8d3b1644383fc15e8bd33b729611a93c40fa832bcd803913f590ce0f3bc8d3cf95a7574cb5f2a2c7368f69421153a310e776390c9535d16be57896f6e0ac8ef8acfb64c67267e246df87f55b50670dd3463e6a9b6aae11679c11dbfd3d6edda9aedf6557653ec89641d336b0b8f594a1f8dc284230200ae677092e9e7a6d129ef63997517c5a1388637eb81b134268a1be1d5dabafb6e9ac897894aae6d1720a1f44aceb2cd9749a13b7df3ffe4e06e23f7f478e6ed7e6563355fd22a52543812ab4201f9d15fb88c5a70926e2d867cfdc8bd6f4971a2b51656be33785a7fd78712e60f7b097aa88b294b1089cf01c8f7b958aed1933c983f7af824f202fbb88951de232ca81c7629bb4281a057fab0de81fc1d46b8ada37956438ee7fd8e13f1938bc237b672e0faf93e22c36bdc7cd192c6b607b43f866c3686cf532eabce500a9931e54bdb4e399b9f0b29301dcbe0eb16638486b7f96b766fb008a7b62f1c57ef8e0f5ab59c10ab055357e9e0111147ae6d1ca03ba503613c04180adffcdbb58cf5ff7ff726744bcc65df37a3f9c847b93e14c9f0dd912dad27d442406871fcda4471e8f21dc55b63b0fc702883467a0969ff3aa2010a72a111062701622f64567ad9f8a4f3e91dab436ba552ef2e42d930a71db205de921b1818ed137615ea39d16d8ad4817eb02e79e05fcff24aefa1a10e60a939c0a8235fc27846dd032f95679f9b987acd81a6f285d7e7664d88db73b2d1ae931d82e38134f2b770cb2f834e247371595f3ff78e420f281676399a293c080c7801447a4be951eca051b1858f99decc572baaadda8c1b67e5cfc9aa4e44abd48d2f3144ef92fd1ffe13dad9ce1d4f127c98119e211ca331496edd7b08bedf3c48d225409c9e66e2cc68b6ba2ee75f2dca3eea8f7af51a4bc99d4875fdc3991b300909433f4b261d36bb150faef340aaab774996ae1c6bfde7ac536fcf1df188f2125325922d0412c0d52a77a5ea47dcb9f898981a8f588440944b36ab2195b1afe613754b0e819a5962b148af4b1068ec9761224864776ccc8a7d54dc866fd2f9462273b745a9f6cb5af6a373c7a2067e42f2bf6219640cd11b04a37488a8ce616aaf23aa84968b59385d443e1a77e25e22ed199f0dba993886ef4a572d34484b965f31f76cd90a363ca95a75d175ae78b83c7f72d039aaa5e560e2ea9d0c9f29259ba6c06d7be2877db31cd9641b5ab67eb400c17e04bbda482e923263e668ffdfa92a84ea7ad18675a1e3bef85f1b9105d9fb496301bb1cd47e40c2efaf3f9fa737506d75342c400e74f1e9e6f8b1f60bbaa37e8b32a84f93efb535fb69b7746883ffde4e966410b048d4ecaa660dde811a0b3ec93fd2411e13f1643f756a4891f15a64785b0ed44a7a18154ee7d1d4cebfb41038cc64e9ff7992c9498a35e521d8e38a01f77f2103dac97504b28dad00bf4704d768ebd1c5bfcd434d6dcdb896fd28184c452420ef9bace73885ec8a87ee8e4da935ea42536e10917960784d436fca233d91b2da3cc121f89c7321d765c2b0e1efa88e9899d2e16c1c2958fc6318702f93c27c2b18ab78f65e70fd856f713088e11985c7a179119736bd14e6fa4a5322867ade8c2777130a67c74d763f508eb706ebe1fa0ca45fa80a8d73415dddc9a94d5d7459643f899e6e6b3f204bc79d7e66aa067ddbc7f70aee71a5772349d9e2086e0faf6e68f44863d7ed4c911cd3b73251f2760fbf0e672b4b933ed64bd6b4e0117db7eeb0cfabcb292232bddccc05aa9141ad70611b88fb4d35c3cb83aee710a84a3a7587122c0d2ff622fd7f663b3521616ed143da185556a005d2ab24f7d6af16acd759b3a188548414941fa2ebcb9047ef1e01840cc33a9c666948921baa8a772fbd582a538d6bea5a8b0408ba7e9db25e6ac1a2b19d5dbe479bfb4407de495d1c7cd818c58cc9ea5ed563b4f6e833f8a08e81c9d3f6a6262230aaf6d7ad0e96c5fe394780666313c10b2db729455d61f4e962b15cd524a38711f4eada4acc78daa59490c3c0c36f76039935b135128d6990fffc19f47b164fad639e6fc65921fbd4e491dc32fe11eff24ec5cd25a321b2af69ac8208fb712335c081d09bb05a587d95a7bf66b97a1f2dd8f5861f0575e0d156f7e1c3d59a0012b3dac27c84590bf8058dd3617437577a333875a2e1f0439038b469334d3f9457333e981ff9dc9273d5383e8f05249eba7b0d60b89eee427a057449802c5deaa90012d4b92e50846ee923c90b36de7f4b51aefc122e744e11b4cac695841c430710a5f261842f078284f68e49203f47f0a1805b13999b3b5a169b0ae792b33785f14a25f1158ac702ef5701aaecc7e8952ed4c7b39a10985cbf3e948084e61380e0cdedcba71a5c7065a864c412f486f510fa6f8c97c9a2946fb031e48e8be985508df9293956e7523b2a0bfbfc5564e082a94ff85e395aba4c3513fc1f55257ffd581fdc7f05dc4f014fd92c450c3422784e6a906cdc1fec67edc40688dcf1f7e77314c914a2a696112dea20296c73b3ba665d9ef39411cba46c2b66aa861f7e4dd05a3135c12801bdd4745d847d8947829fc99df415a2385b7e012dd6a5e53fde708fa552e418023735f830301813a3d7afe2567d3cdfbe790e318c9670e32b6b2d4406f1f1b03c57074add69f594e8ae8b0d7204041c309b2e52b58f82928d6bd4ec655c7df9ad79e8046d3b558decc148e89b02cf1d189a4f18171c948d974e8d14ffc83de76c334d001e3dc7de40bcf4f7fcfd191e447c8d95d80d39424a8598a5ad4f90b7ec2a515c859bbe00000000000000000000000000000000000000050b121a1e24 +flags = ValidSignature,ManySteps + +# tcId = 53 +# signature that takes 33 iteration(s) +msg = b504000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 2aa38484627db138769301dfd9a5286975f4869810ad211d9055bee7e25029f41460d92e9b4c68b185d8033d360c0f2a5c9f0004e4d043c368ac22d395422e3d5ba1a4a2f219e38f1b300539a11481d086d93bd4ddfa8531acfeb8d418593c4142f624b881b44d306f0cc355573d25105118d6b9affc066c8910f2889f9fa45a87ef7fb5cb6aa508c4f5ad21d04742c110824a48569a1042a66a4f21723b046461c8c6b382e112c825af25a24bb26d7d874a6715dc338af7e3d4a07c27d5ce243536538ffbe6481e3542a5ac218c536c60ff0954dd5db6551c80abe9d22fd56a1486e6ceccb54ca7993d44ee52444d4876c247014bf459fef5e4b68640e6a20c5bd7ab5e11dd8a1f5527a087b97f57e9935c0ab742f399ba2eb9e7bf255d8d4f7ed820fcf5de363915d23b9d292d7a08e5cf5092516caaccfda5d4cb9ac906d10287bed5a13fc2df0b167e5bcd37768d33665c6adacb8157d9c385cc76fb9ffc53babbe3789a698d8a73fa5e110c1d87aeebfd839e2bff061d37c749c5aeee8bc63441e6ca79e1dc055fd8d789ad729dc475bb94729997e97ff08a1f1708d93612d402a64de159c26175c271d4d77114ed9176c5b9ce4234916e63cc856d9436186b137f7f7aacd7a367af9d28823d46d42add2c2dd975d23d31083424c141207a195b4212ea7bfb6da8eda7f69027552efe7ad4952ba49ac38115d93b4dfc2dbe173eef47934204f50ad850bdaa6fce06b517340b2562e468697fb84074626cb263d03a0b62a7b497ee9462c859b1d7894a543d1e261971751d325819dc071682c8f00f62153bec73cddbd5ec21f6824d4eca53dae13eb9af6c448d8d75c6d676ab18ba64836c3ecc7c20c79836a53379e809d87abc2f04f0413d10176ddb27f72936beb4d14cac5b0e684e6dfaf529b80f9b68121bfac15c8e60cae44292e8a8e0c32ebf066e708aefe5c3aa4fb4bbd7215380cedf0b19fafa11fc37c534f5c3c14cf6d28f9f624008355c1ec110159009690ec648d6ec11fc6de44831c620dec4331c900032bce86eb4ec44725667c15cc78a71f0baedb5ddc251215aa64c527a8dd8b30ed4931047b19b725d9f205a7943614850f9a619a805ba004d272d5206900846259d02c06153a0e2c109741acfb459816a7f8ec101a5e9c38b7ef9b8add48b68f7410db4359ce23cbf62507d584763744e44f95fe2233e76f32d13e660ea5d4b203bb908207ee9c621bebcbef9ad30666fb306e8ff894b2837464d3ce91caa82227d8666a3e2a9e6017f62b1ad65bdc5ec5a4c76f414ed2a15b0da2456694061ffb3296186a0ce18e366e5c5dc8b832e5bc74ff775f4d496802b600b39e5b7b531131709212980f4aef9bdeaadababd7300f75018bb60f48a9fae84f5e694f0ec6c74d3f34a77e358dc7c4f26536eb2f76adefd14e9f8822a85b1b579611975035fab27eb387602a3b4a858b17c8729bec1845b67d0725b38ecec057b0083cac04d4e075d848de5243801417dacc3ed83f89e63ba90dea0e724ba394fcf9226b50b6cb6e6017c0cc0526d7942cf5260efb79aa918c67e9c116c4183eb8068e94f25647923658825763acf820c56deef853bcd33a0c12ffebec84115e17f675b9b25dcfdd6cbf0c0e3a1feeb7c387d059b138665f70fa762a42fa3d9d360d3063b86e43f67e54c1011283238cddbf4d054d9126416b8d4c9116f8635e8cd19c2f202c90ea4470d91bd737b8032d4adcec9c98983f789c97852c2a60221a78b41e3ca75446f2e1912dadbe04b2304291353e32e73e1ee66e698a9395c0c93214a2865661dcca210b6d48972fe80368706e041eafaf9f7a96810e395f72c2ff9aa7e5d5ef845907184f224ba37b4c186c248da8bfe403df87472107da32ec0c0ee10ec6c867341ef62205d879cbb9ded18dc5d978ba96882b5a8ae2df769eec25540a431059a52176cee356a6e3c173c4ae79c3694b1af60ee164408e12ca1131d3475eb5467c7a95f8a794589e13548cd8b11c126244008c9424226929a6086879dd5a4bda4a82f0adc2d03d239fb99034f497851c204dc08961782fa41449ebd588d27b4d7da94cf8019ba42286987bc9d8cf0677ef6c45f0ff79dd41c3895912300b70587f7dd4080a65e81f5d12b0ada473bb597149e667e43804526fed0c9b75ee2f9f09ff32e87040e145ef779c9aba90f13f94c514f6aabe7690d51b6835f3e405a613c8a1e0a657cc259862ccc5a41a514c9ad0baccce1b8142de115994847b98f20ef8fea606a85c770a9d49cb1d37fb701119e6515307b62714d385f3854d5e0b16f3b062afd35586d71b5baed356e14a43e77e0993b8d30084d402bc8f569c5b837cf2c25e6869d2183daaa7553436cf48599cbe24337eaef1b44a8695d5a990241255579c564bff1399258090aad8525e0e5e75f734d15c8331415fe48d776f8d50efdb10aa72252dc43ecc13ca6322fa06d750cc9b817c879a2bd545ebce4b9ef00f2c1cde4d4c7b38a3c865026af1d108f66bb235b07935045d9e86abb228f99b94d82dfa098e680ba7af3e69a2e7ff1f2454f6d8f2165d7a05744e0ee3bcbb320a8b44b9219fb0d81a2127f112eb8d32c20a4e365f2037815781a0eec8d7d87b665bbe3d4c5df6aa798fd3c66d74330c78551d96a237e7125f79f9372b12828c40f7cd9d1ed7039635ed18ca5fa353a878913c9b2cfac7c9d774535cd6320efd7c1e6f2301ae3ebb3aba0d83e46a80a176109078cd101609898f41494da47a366d16848f3aeb61c6663195e1d744e18d284e38e8e303395a3aa6e11e55aac90f011f90a7717febafa8f5be44d033f3f3878877823a10b6e9721afc120f1ec60dca8df125c3c4d052e1afa6a921b66d4e2d00618a2bfba3e7e4fb3c15518ec5bef7589d2368a10af77394236c7061ccffc21ad67af1c9ea74d82a2820b11cca55a156927a677fbf57649b735d2af79ba93f3883f59aa403be37cb84c6b00c4fcd7f28414b665d77f093f4d6c0e7bc5629473ea1c31afe2c1d1a2bdc6459c92d4539d424436113f630059b9d90082ff9b3629e4c13149d6cd92a78a5defc5846f03ceeab92c88a53dcd5f019ac69aefa553ad4b4be71b08fcb7fce4c6dedcf046a09a7d3e1d31ab3afa543026dad8ca9412294004edcd16ae39c18144abdada4acf209a023811f5e60e5357a18c242691f990045652ef63bf86dd8d7f5d05f4f46b4276f580d1170acfec3ecf5426612938e37e65319854a9e0931e0981da00dca67e8fbcde6b94dc54b30dad04f27022aea635983ec8017cf389d482ee6c104c06ef7cf9273a9902c13c4a3f79f88d85088cfcb32396105d62f2308fa419ef1f29283ffe1becde3a2ca28e4b14532cf581d91c311beb4b41a9a9c55ae753e2e28d222d0b36b4c290a6f1b846cee14f03ffa91f3d743fcbf37d5993241ac2efb030e2652622e65be238cfd7e4a0b5e3e40e25e6eb5601120253a08be5eebd20f08af1dea872dc41b305aec03272561f0745aaee1c1b069acc0e61b16f4effccddb0086154ed66b98f15ad58975c4604ddd96e2fdfa674fe53c5d226d376081ae0bd2283f7106558a54e613900a569e799c98e4ec2f024c0d2b15cbc14bc96bfc6094560ec6c4cd9b9f879e3fe74a70c0d3ddba82f055780be7db1ce650cefb313618a2a5336d9b1168fc605518f53708afd062bfeb9a7f66338115e3213e8f4e90864e10b4b3a8eaed966f99240c23a7ad527892b3a25e1a3d656e724b84c46484ed9c0c2624ce62c46646b13003e3eb2c8ac1e1e307f40a3092d96e13463ec1bd75d62b679f4bd1a9e4967323f16c85ed92066b283b12f49fe50423359f7db6c0df64e04568d470c480681e6c6df4fab81d896e13735f3a1a18d26aef3e436c86308a4c184b709a4918670b870502d30d44861d360a88e4bb8a693659208c2c82da46a25dfdfbdc81e7c0a5addcba03d2872b8c24ab2e1761e2ae10a67dbd724fc4652be47650ec912819b70a4d628c4c16f630d24bc5811ae66fc1afa55234d5fb83271d5f8eec99fe398acf3275de23bc002a7652bf60c293e7c04fa6e10795c00e43743050f138b5422d4c09030dd12835a4556ae423406cda8b4936ee4e039324963a1fbe8768798c384f237f7b8d23cdc75aefc035c0ce65fbd9f8eeccf126f37352d9c75a40e157eadadd12b64b582bbaeea63b50b20ec88098e54623bcb373c63eac44a290a7ff8841a417c17bda385992e3f5b952951884273ff45b94067a819efe5cd90c7ddf935c3636ee486c98f67be2eef9ba4cb10c701b308861720f54c3017357e9aaca6bb5fd826cb39b8e0d908171963bd068a589860fcdabd8bae591d4fc6a6cb8bdca9a0380b3c70e49af9819f07100dceee2174331053b4878e41fe06782b5421ff93b7051deb43a61bd5608a881423940222f2cc2bf795721472b2fd714ca7a59373fe0e1c3c9dd5dfb97e345a250f63def1732f19085a5d1f50bd6dd7d26b22bd68aa239450d21d97e85929745896d3adce416c9aa28db0c3bf104a246f70ec5e24a11c3618280cab7bc6faedfca29eeb92c9ce708538f796469966ed1d5eff70e274d5f747bc5dd6d8a99c52035666d80a4bce2fb525b6b7eabce0c1c486e82f50000000000000000000000000000000000050d111a2026 +flags = ValidSignature,ManySteps + +# tcId = 54 +# signature that takes 34 iteration(s) +msg = b502000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a +flags = ValidSignature,ManySteps + +# tcId = 55 +# signature that takes 37 iteration(s) +msg = d20c000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 1f46df1c64f499ad5738cdecb7cdb03505cb055d9ce542e947092e56ff01ec2969072aceca72c59d51e93f1d7ce7de2540dfc1b0e2031597295ab90a154fa59e625c00ac9badd3eea471f51617673b9a963c8538971984ac28b77af69a6c1b24ba5ad2ed4cb30e9e4393e869af84d39146a2e2c8a31154b72d175f35da837f6089c2080776da166aaaec56563a220aa138e9c21b4d66de9490b8a0df1e80ac8521055bf24866e529943f65052f5be8765e1d340067f0172c33f9c68d10bafaf0b88930fd6579897d94ff21d74b572213b58509a29b396ac1cd0cc00cffd675cc6a11ef51dea3093416c12e994f42f24ade5725903c7886729d240941b45cc4089e66b8f995ca1106fea5ad912bbd3c5e47e1819496930eb044a273eaf6237de39b291a7d1e6192ee01f05d487437858bd1aa182ba2c04c894d5a5165f6336740de417f065360a70dfcbf4f86fa781ff6ee799a31887f37e9f7dedb12b2ee5508b28ea97ffc9cc87a0483c8d9a1334f8b29e3d9acceadc55e140f763a413d5e1c5d7987eb5abf3cb9e68838b2058e2f4df650386707b62b9cdc23733d5e58fd456f500a51746359378506724b87fe07aa24c192f56499becc194e128c9ae5268b22a6a22a5c5ff197881e880a13d52de0e5c6a7ab7dbbdd07d65cfd1806a84abe6455c4542d0f832d42fb3f72b6b26ebe1f4c306ffa6488509c93faeb7204811188223da6e932869703602b834aa1a3b65dff320f540be23ecd843b1e2901965d5805c46c711015a47ab82d0b1d9d12fd9fe8c6be4eaf89df00acb07a3d21fbfca442298f70ea4d2acd8edcb2f9e88c3c02ffb667c3fc0e2b2e778b908c206e35f6f3287a6ef9601f6340e037ad38a5d1aff1bb2e50472234a01164d5e213dcc19657c32174fc89fedb70c8e7e4a4dc613b820f43a57ffa04a9e00546f2918e1381d9bc2e3b19c3f79f74b998bbe4f08e47b79b536e737104af435b96a7912eac3f83b36ad6bf77fd29110dcb1cf6d4a2d422f26af1d77507383aca643095b436eda471cba8d3f97ace49ca048fa5a43ed7eed1de5c9f591d2fe1bf6b99d1978bd87032e27598356352029e5a16d280c07e6e702ff7ba900416a7246f0d0b0ca6f9bdee5686766a6bd63f0298852d26f6b9e6002b5c2a704dc6b82a29accd800b39c46dc534c82659bfd63c82d1f9f291510078a6682cdc1aac22141549c4d9ef2d6a5843b12e376dca96cafb5a359612662946e81ffbb6abbadd985077c9a1fe81dc9d81446ce554effe92f879811932a3f8ef2d2b5619670b9d5b9cc6c547b655e41233a618a3eac821c8a8bc427f913ae319e6339ad537121ecf3b22f153d93331f66f594c8b71157c321a753d0b3aede490db20977019de46a0652f9dfa175da85212599c5726fff321cada571524c6f2003af70dd9fa28c497a7584078a23385b88a08edccabfca847dd45eeffefd30f8f4df276486496b1fbb1b7e6d49921ed0f25aecebbfeaa9062b47b9e2a773e644e2709022f66fac061e012cbcf94324814d07d7aca6fd165f90298b70efc207c0367fd51f1f172df7d96c46c9ffe72c87ca3cb42e6bda26e2352574c6d6341c6058ea7bf9e5614748382c2047504bc97fb4f00ee120c8d17a2802f5807636e754781b325fed89cdbdcb41b279c11f7a0fbcaab32f569f8e98204aa1cc04ae6fd1d70c29f1a3b286fafb5002f46916094c36de8b8b0a6afceb7103da9522e515e0abd3721c7402b12a3cc93e31f81c4714a4d86c3215b8dfd201af03c5dbaf5f41b35525e13402d753fc371b9d46e8d141ee0dc7a04f382ea1ed257579d06cd68a0f675ddc5137e5afe71894483f1c184dda00bb12e62afdcdca6252065224476d28f3ccc362dd443e7412d21d945a20c4ff7f11054031351fa93647709ddc89ec667245d2b0feee0522bea979f3e077ebbf2d6a8fb861de7ec495725374b19bd3bdc0108b526caeda1f946d022651a1b05a71ceb9c3bd1eda12728f58cbbb27af266e019323a3dbd149188bff16f6f154e4ecae0f01504afd8bda993028ed478c7eca673aa1f33af88b5de67f1192c668f4136179cab9696b44173b305e6cfd30dc3f42634524cdfeb2d77bdc8d2f247af73c774f39f1af9745a46c33f0a4714eaf6f7f511f437b2283596e8aa6b55d3bf5a94d210f54b99bc642549da972e94dabd7d58d0ccf33fc53176afac3a0fbb6c653bc2e56351adf0980a14c312c38ec6c9160398cb97657800881c01eadd0c8030d7123f6982201d1eb4277b7d895246fef315e39996064ffb115e3b3dc50cdbcaa6129f6ddb2330c64d57e6fcc2eb83db1a4cfeb73177187dc8323888de1abd7bd8bfad2d184033292c21d3ce851d191535a605e3298c8c88f649b819848ad76d4b2f08ae36797ba54b5f3dccb32c8258a38146b6c86f175a888117d78796d7a90525aceb8f6986e4acec13281915f33a4207e1f4077d586c6b686ef10b2d16618aa841fb817df37968be3099a27de57c44ba8f8e55c0f1e401de53b8578a733e9e81268d462e2321af29aa50f814dbd7bd05856d890008148eee2180b8870ae846e07e48a6660202a6bd35a7391821c550e3810fad442b589ab6b3e0bca5d7858066260776148a778c3b9df8c391b72451df0c87c0c64491b2e5bd4e264575cf047cb82f20f95ce3101d92aed4834b98c8f0e5c81c8e6baf0ab3de870d9207bb64b6b99a395ae2de378f8ad233120a968e091b7e1aa81195284f3e9152cf211b1fa26674307a57390e56cb812e030fc50c9d18687f67226245b70e60ca87e9ccaea0e7d36a5d951a22b374d71a1b89129a0b4067c60317fe9795e4a0b41c4e03c3314ab9437a1670e4bae274c2e93197b2d7af9bf501becc0545707659ea737f9042d7dd711ebe6a801d34b3cd45d7c1275fe8559bd33d9b160744d6107fab7df7f419cceef355f513d30aa82e2249857bd05bf524273d46b9e906f557e02604210e34f1be3213b121994fd3fa86da4c5c43fd4bd213e76387868e7f3b2ade5bac9ada99c54d0e948520da7ebbeacfe48e2a8113d000a9ebe5c14f7dac827393a7ed2a5eb44d8a33cb2c010cacdce5b868f9ad8ee93183fdfa1d05a2febffd902b68bf192682a0b5a418bdb900d86365a25e5c11486ff4a2547fdd7cb24839c3bd6d2fb95ec390416dee8d5b4a1993ceef53a5f5ea77357674c7c0a27f78c483925df6adbb5c49074f5cfa660969cb506abce22c764de475ff9c41e064035c48c088dd6c69f384aa76aa21e2c0e4b38f4405adde76784b0cc331484cd3c954776e63a5808f7f973bd73ae418f8648a02c29a8033214099e4e65ffd33066913bb6fa1d5d360865bdb029896a8a5d5b4ec4ac8953e6aa02326d7da96a9067d968ed2e6cab00ad00eac6a296fb48bd16acbcd1acc02d221325e4124c3f3e69f6b0b825ad513abc0c7fa7899142274e2f8bff11704e45db46adf1c4c93754c73e8eb6267e5f69cc4c24b1a9bf1039a39e8e091d944c2981864e78290a87d9773a43898de581e26fbf0919b8a7bce07365e1df475fe75c3ce9b315b07cff1e3cbaca2b16f41309398eaf299b11253a015dc3f067a91157cd6abde00d7c69e9907f6c1222fed29ff9223f3761d0c4de8bb07ca4637ae5e0fa65f22a61af6dfeca7f007b28e764fd187ab52c158690ff734a8dd5f03f202707f27bd271ca982e5e39ef53c18f4cdee8a6285aa054683974c85b52ddbc3d6083b2d88adac9e2e4bc708f05e70e0f24d5b318757192905cdf1e5211b48ad256abeeed49bc752ca5c69c8c8481094ba4652a0a0d2c824b16048907b29c231e86852a806ff24014fccdbceba284ef0a6814696a2889d64c5e750b132d63f9fcd693a201ade06b92084107c6947efd9be127a8fc4e871cab766cef81aceddcaf89b50ee6f17652ceb878a66ceebceddc72b23d3c1f22de6056e27d56275baeb0c8e782151f843b4a90fa5f7bdbaeb8428620882db8bbb94e267961ad43d9f0649aac0a773e714fb18e5e7b3d2be2ab1b53e65bbe5b22ea43a1c20d56cdce27da15758d83d3b39536341dd59f6a174572c6b182bc20df8cb5739c1eb3cdebb72b8a602ea3b4e025a9a150097bbfa79473d056dbdaf2fc2b587fafac2b58b1bb452b2d62b815a36ae59a5a8902d7c63c125077906b397a4c73c45cffeeb57efd12c7fb76c568ec76f5d1cd0b151d946275b4a94d4908ac6ae08d272ab81acf1a4cc4645f299e8c84e8f0389dc0a625622a6a0f1d9a5080c918d2e1ad2b18ecbf64681d8d2088773c306537f8d2bf2fbee5c372b315213a78ad3506dd4b6a6cefbb939b6e0346ce2996fc6c2600d08760ae3aa1c151cdd5d0039bb071c71a70c0eef8ded0148e0368c79988c53c18dc8aebbadf78d6bb69b660f86a24a3a06f78445e00217e545d8e3323c2292d4ac683efd04a9f8c2c3a383acd7444d7ed39474102b2a436de7094bac40028acd4fc9d100debc4b9d5de7ae508068dbe40a7e71b1de99522252fc9d309f62229a5cfd785cad97b58cb7a5a5f9da5b5a50622f72519d1e6f2183b1cdc25e813e8645f0a541c0a3984cd6d551bf0e293239616769a9e35f94a1a4e8f52c2e5a98edee01020b1012306093e2465e89f60f4a51bcc3f6feff00000000000000000000000000090f151e222a +flags = ValidSignature,ManySteps + +# tcId = 56 +# signature that takes 39 iteration(s) +msg = cb0c000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 6570319fc14d783b583fd81dbacc93c9f25e209c7e2d1db45fcd193534299d97fcf05beb603478f83fdfbe3ec2bf9b808b20c98d8d72b717cd72a5185c448e725023a0563f98943926a79fe5a2a79032e08c393d2c5a05fb93c85b56f13942ac010b90048fde95b3b4fb15741143321473ba593377ffdf7cd22d84a626259ab652002101eb3d86125ffd59fd794d9c5a728d7d4b5cbf1eb65a1d4d8d81483bd3771d53b7598495e12692db46e73a433805fe7fda3baaad3bfc5c0095fee660914c85380a0663f0d6858a065262d2de624c46d94c1604f1f168ddcbd2bf7b771c0a251b9bea65c3526e1f12d677d9fbb2a65bd35050fd2d64c8929ae862b89da6dd0510f5b4da25b9367f0cff726c9b3f0b7db05a1e5613e598bd8ea4306fdb17a7898c5f8f3375a8cca6fd7c1621d1bb870d12fe3be62440172b4cc57f7aa8d15acb44b2ec4152a65a36d098743ff64b8e767a4013b089a9079eaa4989c6982f84f4fefdae1ebd3ed204aef26e367bc7a9ff803f0c11917b0aff5bda98bb4fd7d594d1a6676312827fedb48261521c891252baac6beb46bb7e12952b114c13b1e47b42ccd108f9c9772ced3341cefacca3b7baf0940225cdbb03e4a1c1f0a9805aa6a5e85e6772d7c6feb44a0983f20ef222bc2db11f9a755d5033078bad4a1117c16159cd963b2e7d5ec56918399e7e2bf9a60a1a9f5d095a136aa9fc0cd559c85fb2b5020c4cc03fba4c34147ccdc62d0419c5913515e9b21404d908f2f9298be61437222b3b54d4db7017fcf063c03ec7540b725e5c9d0c3b9a415c7ddfd795ca26eb269c194393b7f6aba85600c2314a2d70865db05ede213e128e63fc9c165d88b4b72c8ac5937127a1635b35a6357d41f16eca42233986be1b9cd2e01c0c584371b2d7a75585b8e2c1fcb0ec296a22f81e2d5abbb57ce4cffbcd0393bf263e2a9bdcab358765b61e5885bae17e58a647fe50cf09cbe6b84461bdca74341db00c592d6ccf7ce5ad746d03b822344fddb152a91c1bf17fcb75c7d0fd60fe208650493d5353cfa211d95dd4d516a5ed6ef5a5f53a83f44d45dcf8cff27f7fcd565acd684d7bcc3910c3ffb2675c52735acf3796400de88048f8d1df93ec618fee34027f2e45f6c96a67e43104eff82d53d7c298d15758d5fd2b466b9a00f7ec438dec6a35d6745265250b46c7fa4c1c3d567d1837debdc1c72d0d7e340b03d3a3151037e9c3137af1b80bf266b8282d02bfee94a01187aebe854659c426f12eefdef522c050d8b514255840f870e0694fb191e918b5ba89df01047b8f4f7fb4142f7942247344ccea2e724fb30e75f824b9b244d13b4ec29b8baea39f494f5b17ce1bc8b3584780ae622686a7934249131ba8165473c9e064c0b59bc0db04d92784976085a389c04fa2fd6b15f49c70a59890af0ca86f05db1128e39b36023700919a89faf4db37d96b29b73e7732b37866b90455322fadf4fca1ff26fe9dde33a1e4645d394f24dc38541f8fd7a21e0c80ba0f7f5081874a677e337c802f5069121d4df8079b9b1143cda5edf2ec1be98f6bc60fb26ac20012ce73b3c56dea37cdd25ff02398be4dbcfd8f681f5253da1fff4b273634c1bb6f3ed991c2728c2aad1d1d1287f394f0f9024fe4d805f4ecf059bdb4786c4125af37e65280fdb8df9206186df5870b48cded097379d3c3f23c0c5920cf0f5b9abd7af7d5966a204be229476b42bec5ca903df94dbbe1e89941ccf36d7aaaf4beae2ec1e4ff5189c4525db0e9f30c11dee8c8673360634d49e59f928df07481754df3b0d4b14e30cb596763f3268d1106fc571705c6b94d7ff3e1be58a68bd1119910775eae6e0edc89ef7e3a4fbbbf71435c9ee55539d45ae764289e673d21dd62e38d1e5ecff6a2d76462454a5f366a017084b9b63ed39379a15d1088c2acbdef377e78bd0850eeb278fa4a90154783d64657ce67ef0bbe4ec673e2aea2cda4695909cda72ef13a8be8fa81558bcefa0373613c74bfbd5abad71b06b98edcd4383ba05dd89261ab86c28b8760e68761e928530fa733c71ec1ad2153ce8651fd5cae23ccfba0ca792ae0285421139b49fd4e1e3f6b7e84c34b0ce9e8ae3cfdba198f325ddad28144bdc8d04beb45d311f960d1e0e730180b4677c01d3023ce79416e94df5782bd27a150a97ddb7b4cbe7feaf30733253d27f6dcde4c50f912fc1b01f899ce1dd3d48152e67aaf1d90731b3d4b578528538c8989f9f76911b3bdc6e36d9894f781a0c4c74edc0a4e102702f66f1c8261a92b38754291726fc8eee9afadcf4a256745884063faca94b2a8b98ae96b0581ef2319ec9ac54619ba66f2412e95d659e7ebe39a909408e5ea7901c5bc27c74709d0621597e9e84ac59befe675c51cd075a25efb4c9351baa7d3d9c983b27ff1595a2bee73952c7c0b6c9fc252c8c7086402ff025c121b92c2425b3428b743496455954d38ece2b3964a9fac4457552388127c012a26bc88bf6866504568ad32a742f87123d61525ebd1f4109324e3b57640052563c9eb9cfbe683b5a325c6e8b028b6b9cef425d895ea902031752a5b7ff96a2af6ee1bd719bb0581a4a4159c0c58bc36e74c7360051934433ffde1b6a49f2c04e93077d8231865b3621e272b29a6f50f7a2d059eb380b4b43c3155d7b4b2b6eac7da5b135ae5b419b5f3dff09f68251bf5fcc3e10168ed331f5f0d1e0fb51e5ac777b2eb4d9a2befcf049be9851f791a6f059414ae3001acee646a07a222884387f1e56445d7852f7db92d40662e91101d5157dcd7ff517d3b864b557316b1dd21706fe16adb337ca7782ed5bb21e970afd9dc16eb36e08b728bba8608b15c30875fcbf6f939d96c7056edf024af12e1583758a005e6187cf7c2e2af1167700129ba74ef20e3afea22cab2ea9a24f90807cd839b884016c8b624d2cf13917cf427bee7548c51d4efbd1fc98b0034921c72645657350d189777cc3bec591fd205721d704de42442d2b8b742f12136af848ae0ed3150bb4987e31a3a544b9f79456a2fca7b149a8f1802781206b57d7ecbbd465c40a1b4a0e6f3a1f25c5ee35855908a46e4dec78dd586c086c04eba75769fdbc3cfae0cf2cd32abdcfe48e2b106b8df9a4b98291de33e648efe6f4355ee437ee7cdc854a3cd47c616eae431d6955cb78548ce93caec1547f2745e32686d930929982fa2bd1a187858511218c7342ad386105ea90887f0919d875685600706ab5bb683e1dc5196d8943ce821a639a7931e175df372b81901af3f08ef4bdcf10a18127efc074d190519a831e8ccaae06a84f641a2f5fab19fdc708e8d63fd66106acb2a720361f9f03a3756542d9a12d3ebb9301c121aa30f757ce4e56a2243cb882f9d7df7c26a52fc8ba8a0af2c1baf6746851a9c2a3e65ee15d456f9395482b5893c7937198415082992b7d7f34a547d77c68cdb77ed32ab1218d409bd71240857b13b0974d045e2c89ccf8e6a62104396e217f793a990d162d41ce4bee49792940496930a20724c9d4949eac997d9c2e5b9dfc47b04f0cb0b694e66f4e9cdc5b121893f79e52d3d61fca23e667da19286537fb2f3a3953947206806782d669ec03c17b1c7bbd09b4bff50d91252707a1a99d7cd1689bc4eba2f985524903b19d791da6fffaaa3d748918ac7653336924c960794bfc06f039580fc1ddad59980d1818c7ce79446f35576b7397caea996e359da3a3b3b7a882608ade4a9cf32380216633da5c5672cb0aed04512b6c784fb4b165ee2b878c502a4a3ce3c8fa48723694106166736b93b5e688961092f1ffbf603e815aab3faf971f9e3281f784ffa3a2dc23a164cdc4e81783d5486b4b6132ecd404744b248df1c32c769329f224674435237cfbb2f9806ccc1ba3c8961b4c34ef2ee69db7f469072a116f842b5399cea43402679db4245512a95107095eb057bb6ff24b6bc418b8c63d7bdac31c6802b29210d3662cd27d57386f1eafccbaf3837e2f8413f66239f2e689e537dc017d005ddcf003bc5c25e6e7b75b9af884e1b164717a14bd10633b4685b6d2ffbe03d5f5574b73daf7eba0a800f8b93af81850bc692b60913e16ae210b552ea00c4175c4514218ce4ca00fc16cc098c5c6aa499a2eda2b39cb80b80f39af8dbed96b9ea9b010990b6524e0133babae543296a6773577e1bea164689993cc2f4f14c63647c4bc9fb70091e09c85aa3d394f445567dfebfcbb2ba19dd37d4c0810cb929dc9ff9d2e5d5320439c7e568cfe1d4a1fec65ce576d9981ac8d45e5c21ee9eb43340b3db7d4de838730742616fb2d95dc2986960f08283207c414d907a044a3c96fe6a83beeb79ceeb9724ca40e2f0f340d8d2c6e64133d619594e73d592a9d24c5b00aa1dc8ce4752c2d86df0cc79e3d81a8a1b1d0cf50d47207d555be63db4f1d87e818082620474b0f8dfd7084941b14e8c99967d2af0552cbfe6cd388665ca8de290bd2593d44e139d24c69c1e09be1048da389f7b32828162ce85f830e4e2aa9f81eeb6e2f3e41fefffd2e611de17dd9f35062039c2b940b809560f9b3a749f0f60a04b06e024d107991ce612d2b0f9eed003b831476d71b7d1f07aa3aff90a353e778e920b519ca5b8ff394183b7cfe4f8fd4e73789cf600000000000000000000000000000000000000070b11171f24 +flags = ValidSignature,ManySteps + +# tcId = 57 +# signature that takes 43 iteration(s) +msg = fe03000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = bbcda17759a78276b6332f3f95bbde79b676072fbd6fd60a4d43e25ce3cb2c34c4d81dc1a278a99c5d5faf8596b5ad4ff060294922ae3d220e5eae86212332da242a2e77c78db4e06a1d28220e3f4a100022a3b461d263c43d9bc5ce2e3984e192f3f8a5a2e1f25bf7a5e88dac482888fcb8657117a0911dde6c9cff20561460d7378821a073fe7eb2c6328f52c2c74f6448bedd9bee33c9b4bd28ad3410e3af07ce1f9770fae92d8996ea766e27c95fa5b8021c735413e86b277727f467f5786972c3df4e1547a2b921cb265f48a4a0e866eae0a44bbb32be8aca8cee6a6f9bb60069c3e8949a7d6c448f84e05cdd726bcb3224a50b49f6260e2482f45e047c3f49ac318a8ca1d9aa730c807f286303e837e6e8c33079ab12fa20433860caea7b91dc629feebb28ffda66e1e8636b1e4f90488a9dab533f0bd1596ac3d3708cfb2d30a08636e411fcaacd7aeff28d2253b128494d37878e9bef3676843352d01e266068081be7da3abef9603c7d17229e57714c61e512ed4e9b516d496bfd6a58d17be0910b280ef2e0684d94d957f80dfa1cf3a45c1b65f5a0dedd946b09f6d0f5e158f1dc931e4d44639a687924f8de96f1b061132224cead2c5fdde857e6848052c6ab47283db6095fc94b2c392dcdb741ff223febfd0a637f2162e862f4e9647c8f9dcba2e1be425f5308eb1bc507cd10af0df3a559d1e9d9fe91ed0f82b71585a16f8444e2908f166ef8af1152969a73efa663fca2aeed5273e17e84e694373d25265b0214f90a8f6b610e12f73af764183cab7e99f5adb7fef790ebb61574a424e2c40afda048ca5ee38d0e50f000c03aa3da579729f92b71f4e79e6fb386326863a2c48289224a22708e8cf3541467f0456ba6f2009c4937f88dfa15c0ffdbf4aac6d7f677544380b87284e142b71dc4ff51d385bc78752e6cd9cd7a12f54d6e38c7b7622527bae2ddc033ef88e313af84e18aa357c5ad56df9b1cb5ae393521f21ac8f912e5dbac2fd51aa7522ffb927f21b8e28d4bb9a3eb58a7b3e7b63027832d811ff57b1ce25583d2bc70aaf8cf91e6f8ece51433d97fe437127ad7f3b0647ae860d88f9e20dc6e281bac2e8f090911d7d390c6e8547240179871a55e0e73dd1114f0df5e380c56910fed56f674db18914eff380467d3fd01f3deee25bc525a672724d62f73fe7c0ff813c8a3202de503e38ba7c538219a56a44d5719685de991cc996f2b483fb8c0a2c818378ed02c4482ae0239fd494249151ccc433013dc544708b0fe45d98a6e0a6528b88c32892f64acd551a7d0b7bb884f3c7a18e58b8722e7a90b904d21d3004a00b468a5f06f4f141bac688d04f28bddb7f2421f0d2e4db7a9d7be94959dcadc9b1252b1d8547fb14cb81b089cf8c4d99ddac314519bb4c9a19eaa3018e805c642ea1362243caf68b8d4972bbd2f9dbd4f571fbddb00b65688ccdd344a47bf616adfa9b6927f796e08dad32605d97a90acfb70d4b4f9c95285541a820ca6e9e959bbbb1b77e2089f87fd41e824de384c3a59c251b7c571c1d89e40043307d170a4e679cad7ccede16cad15cbab0e56c4005f56fda088434eddb1b4eb04af6d7f8f5120b33fdc19858ece0cf755a57f3a2006750ba15d687a507d4e5215062ec3431f78f168218874bcb785262068e0daedbc750c1908420f87eca0f02fd304a52abb78c0968330a77e587a4e087a0baef408d3691290d2edc5387bfc169f52ade0b387f218dbb7efb9435d93a3a7876aee38e0a49c9c69d9a98197e092ae1faaf6c8ec41804b7da6e62210c4cc673952b95f55b929b1a8ea2b3d08dd5434c2651edc7a41dd031212538635cad974b382b670014a9241a1e2820b2a74998a46ed419900cc1464c2ffa33f4d20823efae2452aba5149e825ef1955572b6671f3ddb3452cfa1928e4e5fe84fe875ba853b3a56618be73b3c530ad3a6f8725883f7e23d136f64ff7cb727f1020b1f4a394719a71238e3d7542a66ac55011caa451a3a5e101c72be22fed87f9a663c5f0b0a4d711502391d1edbe0e90215b00fc08289b72425a0dac72546b539fb9cee77d3f084a39cb8071f504ef52979302836de1bc784b58dcaf8a3bb36981f45820a2cc35a29bb8a6857e7fae2e1632a857db40d1fc5bce39356d6c428cb5b4b8401aee5165be259031acb0af2a7433c41819a1c44e74a311707fc15ba6d4f0997873bc64358a5bb9fd4aa22b1caa9c030136e2b5f5b0a999e7ce009e3713dc032e4fea8f516a3e0ac277a36c29b5e2bf15cb4ff86110676ffcf33e4b7973a3bf248c7f6c02c9f091da8b85380684ff829bca245c3e3e53b67bfa4bcd34f0a598b5ef09bff00123ca0dad69518a765419fd72eff17602717957e3ee3df45a82a573319d6b40dd6beb7051966577d41383d97137eff7db84a2225e98d014f2111357edac272a89a7c50e0184b27d6a6ec611f70051100e9887657cecad1f34867e6d144c360e9eec53bff7b8a8a4ddd9cf254e5c74054bb8eec9359ca1fc91eaae77a9487685a209ea960b43a8cd198107b112deff2391cdc326300e35473a634c96d933009fd172601000c28fd58243469bc7a634c462b7f2147c99de6a6f03524f15fdc7db81357ebeb1eff404fc94f1c6e40912ce2661d8eb9d584f572a6152ff88d764c20ff024ff22f6f13605b3bd380d0e538f2b060ec6afca3fedc244e18f16a032eccf437f38b9db144770aa247e0fe7fe7001aedada4cee551e5e37a38b64e086e442799869b7948493526179807d628867bcc9fc6fff1a8d2a7203a5f0202e00fa2b7a851892bced0e5b2ef90501df3984f1a28746e6584fe944f6436daf003a6ef2613c20982e3ca9191228835ee1102e5fb67d5acf87e300a6de21d7091d6a573167b0a65f2dc79f979f5d1ce55dab07e2cb2567266f8e90ff619b6174110372f43baffe24e3711f114be914c0e01c56756e2460293281cdea5cf3321f789f64fc1f19269471f7373242c63563c7081e70fdf014ac4e11d1648e6eda56bf964599f7f91fa5b85f9c012236f700380a45b12985475ea38f03f1fa5453a782d059bdafa71344bbc2c60eec43d0edfab113d7f8761bf37adeee2ef88a5ab5060f004de5d69cbe2d772a627548a85618899a2f3d56ed971c8ce87acd78feb6476eebfc2f50075e984670a31d45d9a351886fb72cfd889c6c3486a824b0d6829d6db49812095873d9935843fd0433bdf9d4f4ebccfad9fb57fdb7f4bd73b0ceb1373b6e55d564f48f2d5d0036850ee0e04f824f45ccdcbb735dcfc5cd1f38c1238a28119008cfd6d608bc816d1222a01cf368f5871a9c25c3d6b023c235f8e2cc4e32bb365abdb16f5f9959236aeea856c562432129c1547b845ff4f143989e5d699003453bfa694577c9d5b9cbb21886ffd65b3b1d799ea31562264493d4f5f00b4531e132f7f608333382c23024936851e1c4e785f073a3441bca8823f8f56fe8ee7b484d09f98d898300f83974b9e39f56ca4184063901fd34837ae0269939d598131b93e68e982efc2e9f23183194d5b1bd977f886be2f58f7ce51a317adb1c29dc153316f7054cb17df75e455c1bdb3556e008a66954ee1c082e23203d89d8ede425dc355c592681fb20b8dc5d9ba8563da39470c3a86eff22c218f796f9594a0cdd39b7e12d2ebc46e30650756f656241606a62875b89f864c9bb7ec6f22a3086377146a053b373e5e6016a690c5eaca8c923d17e7d49cd2e81a8c2b41fe008b742983b48b973a2e87a03295868dd6ec34ea1cf51c359d5ddc8a0f3b480b443f9aa05ff0b98da9bb79595708b9ccb683e4580d20b933b19dc025f7e8037ca6fa70260a0ce40e354b73304b0840121892d408a19ede4eeaa311166d27e711deb9e4c2f22486d01db58a504caede74e928ce2c39e68fda561cc748cd20dd5930241eb700a177fea79a33f041c72bb5ade325eaa2f7ae60d9a9c65c314ed410a94299f608a9fd3be24f427f682bb27fb32f9bab81dcb492605779267ee0b7195ca1b7c52103692f204fd4cb665f279fb3a4a392022b8736bf5af8480bc5f766834a8e1944c83f41185d2704b6938a5d9d03263e3deae764d5e9882b7b2e4521b379d870d4968eec4099cf9007e6519809ff133b36eb2f728159b36934834990096418c1620dc41e53f3eb8a55c6657687a1db8e5756c2a8250d8ac9d08e5487ff27d75b8efe3351318dd23b791e580f09feb7b13f4d82fb0667fa66c32f6074bddb6843cccb7a6cc7769822dcc0ab6487f54c49d61f2109b47cb2c87c0f6f158298fd22f1b9fa39ce57c1ec04b69f4ca155f8ef86d321fc3bfd52d26b58f9c108c729fa5b5bb3426628610ba05e816f362815b685a14aab96b63cf2ee717aa975ed4d3cc7172e17d97eab68a8e32220a59279e543b2f4894fdcdb792a7da257dd004eea12cac243c7b9b67b0b035b5d9bf5dd54d7e1fcb0a44c7a18cf45c765777c3fdf20bb4fb29adccd24952047234331feb580651282e1a523e96e0d6bc35a50cb42ace95edb1eb7bbdb91e499d3cfb463b61ee61f851bfff32c944f8b1090e7e3fd8d02f05740a840fd6b04e969ea2b6c3f9fb7086267ba3bbdfe3ee414994c30622254253829aa2a5c6d4060c35444e7f8288a5b2b6d6eef8fafc0000000000000000070910141f2f +flags = ValidSignature,ManySteps + +# tcId = 58 +# signature that takes 44 iteration(s) +msg = bc10000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 7886b408e355ac8eed58a28db36fbcbd60e3c9fca1f77e88ab399acdf57fd12c03fed5333307614b530ea3446cfdaac07ce1fd5310cca41e224bba5c0387aaf0091a1ff0727cb4f62bde0cc681d1ff59294df794196d69a377bf46fcd717c44904184f0b697713bfecc4ebed5e119f23deed3de861965ce6c8c7573e45f29f819c5a67f858edd3a223ab300fe97f3a019a9ec43f24058ff10241ffd008164c78acadbe329340da4a98b07ad384d87a9dcb82dc30f341f699e1d6865c00ce0d33533f52f6a3186add7d5c56555ecc7a4198550103c46a60e9987e00588c8720f4bafdc8f52c76785bd7c7ae66954b1f89a3372df91d963cacfccfa384c9dd1f00a381dc16fe205391c60ccc9997f50a05d7ec28a41921001228450ba221c9887c04f6c127a4b979e595d9d48734147d261587144a702ef180e845733abfca6b60c628e2cdfbfe9dc9e5c310cc4a9a79e9fff5c61af2e9b8eb25df72fac662f3b0c4860f5cb30ad2510013428c18cf2fac4fe524a86d600460d73bbdd287e470bc2c3e92df0c132dfde71447583dbb0472c2f6c6b99835d351788ddd09d2209191ba821fdaf237851d2d8698ebdae44709ba44358a49924ed5df96755b30fe5bd467714860e92d5c68c22eff2da7024d53fbffb6f04dfda5e9efd44b529fd708dd6898311e5a9bd73d2acc5518afb2341144fdd63159a2d8c092cbffafe65e43fd29b0e6a3183ba3eb0f4a0f393d4b096a195aae986861e7ec97a70d5553941e23bc96b10ef09397bd938f47d32c6a4efcbdb45c75214ad4f43d1dd73bb4a929b25e5c7fd00b55d16a0fbd2b4cfecd03ba0d94feb86837d404f03a296514cdfaa9dbf424b9c3344a84f2a99efa4d273701c32780a8a0bc568959dec3cb58ad52010253eb1096f752fb3eaf9edd4269cd53195478d6d9ac8229aff4efa1a7b7b924b38d9d5babdb6efd62029d21227e5c49fe344980a900d395a5635d5a5d5e4e60df03e587e5a69e0ae1114d9128e8162d111753456e0e0e9266587873f81ad81c3121eaa4f1937d5b2f3a36680002e81cad221678122a456f0304b36bdadf95de811143b1daaf48df48db876dfece80e7a02590a597d30cb02f43fd0ed854806d8e586785c01633b5e1aff69fccac11eb74dd4d15d4c7785d0e8de88163c8e05c07b2dcbe2ae0a6001e4b696751ee80393036d8d2f825d88ef3d7ce51cb2d24870eaef40d3ef91293457319151efc02403b5ced3ba2cf0eb4c825230e8a8e89f31016ca19d5cf3cd20d2d5b44d9748afaa034f8222d5cf20183783a26728df676ff8f55caa3f17df71149d1d4e9f71d058a3d1d6c2d4e4d2030d31c795c2fcf08832a4a8d1c2b2297ea3081a1b6c5c74e297b576a3b3901b071c6cfedf84e619e7c879034c36c0759282a271dc4c1444c6603fa2225aab788a5ae11aa242ce8dbd3422d4274dfc807812fa1c7d119a6d43a9e35d4af818b3727d165813d65441d2d8b42bde43d56d781f5b9b341bfcac73180d88c933d9e25c9a64cfcf07f3e03f89797156630f953e8380859f37c6c630fb4a95b290fcbd85b9f2e05778aa874a4936e10638d21fe3cfe0176191399ed293cc6230451a163dcc2a525ef130a8d1c2ad93ee87682ba8e061101bcc332794c6ee2673ab298982318a3b68d10dfc46e5ecfda4e1164b35dbd296e4bec9a01df32704b76315ac1c5c660b871f5d0ccf4065d8de4c1ffcc8dee4178bbab66f1b02179e6f73bf19822ca9fb284021afe756259f051c11694814b8b019bdaa9fb261e8dedcafd2d69b19d1f96f1bc82ec77ef51031b96dc65481885763c5e6746ff0bca40d1c375be2b2d4cde654cca8415cb2a83a66d216001d692c4937c138e6e3b1c18c54c02042f8d58033fd49936308d1377e5d88b98b4429afaf5e4af68f4a1f5b2e039cd6b5dd3d04777e65c1b2abaebc20549251188f697d1c7373a62cb7b08d2dd367021bce2b5f4a28e6e93d61733eda231de2b35c9e2c84b8063e9128671a9a27b21ce5b2c6196769c0837fc1f815439bec0536f017f10803f5ca14f1280988679d604e19330f625e3965e66d59bd820cc15a3ff8f28692381e2477453d153f5e139855e6ede385b5b7d72506a3bf53ac3ee843a8dadaa8dab1e2f84fdea598e2c6aa4e3b4ffc58a78b53171952d7d49b05fb6e59ed5ec857747f9b1526a256fc0f048c0c2e239ef8dbdaaf671eb75c56309f56397a3515ef8b696128c08cad511fbc86492e55feecc19a4c854c40d36cf7215d3980b7243107caf3a3d7ef580f2db196e1424d35dbeff8277d8c0b0e749e26735b78e10db19c8274a81b1168f09504d0a2aa90213a72bbb6881064db6b488c8c4bb5620b8c2793e853660adca017e12815b378106a88e59505be0eeb43b03afc211103f2d20174e5ef5772b9e87953f9ba96ca1e69bf79939d6eb75833dfb233d2f7fffe6cd1212ad896105492ee863883382403d0e32124e8a5fb30dd3d5a44c5859c2f7a1ecb017410fc7208145193230273e306622c8cff46393a73807cb210ff8c8e9bdbbf474377758214b4bcf6d2d45ffbc3b7664cb4c7f4d9dfe2fd8d76a2f9a09922d6f5876a09fa45617ce12e0bf0ecac9ccb6041568c0e1da7b023ff02542caca8198844eaee7144d535583bc7628c11b3c02d285ba06445cfc96149af917ff7b23a3a57aa9593d458d10e48c380396debf3d00dad69c5e234ef2dd8f27bde03bb8a214b8d8500e5688e5eb75ff30d6e0ca650b283d726096a46376fcb77a9ebfeec2a1a796193111f491e7c25e4a817aaa8333d4485a73f6646ff228985080376264e290cdeb8abb5e52b5003b6bdad5e941012edc370533c1773e8182f019c140595cc28ee1308c6eca317eeeabf6b8c630274327ce81da763cb7adcc4a625f0c2252d3fa2e2a75cee7d1b457f74760accb952e364e68b300e509ad72b06f64925a410c5ad29a55433b926d1cd6fa754587e1c761035c86f1b0130acf97a82a89b7a9a16981d8c451ef529dfeb7a8b072089fda297efc6f795fe4e91c49a00a5388d19bd553d0dd2db09bb53aaec2f2b1db95d5f3ed9b470d8e8ca43c83e04aae5865f84f590b58e7fb9c86b665bcac31841c31b965622e40f5d2f01bacbd2cfc9a97645bb303968c2bc041074fb9f80ffb6f7c4ae869942a1b8537c5bceac69010991cbfa28eef201b6f31bdeb3acaefc6a5fea55f8aed6ce9160973d621879ccc6d3c96921bbe4e3febc7e9308f0cab473874812051043011b4c1d73476592a5fef111e6e858b88fff4c03b99fb22b49817a7153c2251f4524ebab30968cbc0317cffd227183c3fabc5281df4467cac43f17d1ddc40047d1ae3935e354334ac595f0b756a8d9d712717f7ed6d83c0a58364ac96b294f17a411731b4d46535e20995af972cf729f7a8c222237e4aeb7cf8694d7432c95c7e9125bb03b0da402a24dca423eb97433685e698be8d0555292a3af58a36c5f23ba1cce6854e5cba1bb1d6c989ad55dab142ffaf46a1ce65d73994132962c6c50868bc697b2848f6b9f78ea71ccd9122cb6686775d7f39d3245ed1fef51ab2b9d6c95201169c1200021a315aebf2501460859b32feed4e37709c1d3fd82c495c69981043ae54ba577276e46e155f568b7efa9db1cb204a6b601e4562535ff4edcd884a2ec25d96286f560652c5ac73f12933d9137016f4fc3dc0ced8957523109cc0f97ab47d4d29d577c2618e88c4a4b6302cf01242a6af14aa1bfa3a287a3887885b8d0d276f3b113b1cd601f6e78e5b0a4aa1bdd15a5dac01213f57fac75bd292693bef59a3c1dba65d235c6834568f9a25e0a9c8150199f378ae482ada1adc67af79177d7e8d2c08e743264299bd2e92803256c8f7da050c4b8e097b5b8edfdab9c3d6fc8f6b2077d99f914d6fa20c10b65391be16b6bc0ad69794ee5e6c68b722765b12542ec9d93e6f622eac5a75551c0826f95c69a50e6ba8e7b255e002a6e8db7233cafdff1c0e3106b7126bff22c577874a861d86a1b323eb3936a4cc429e85023984f7940db34bebf39ba32e6242bdd78a9e707ed14e874dd9b93e76cb258b19a129a4b7368e424a56224187a3155349060e8bd0c0f71fe47a003314313a5bc93e774eec2def8a26f48ee2c84860b08e3cd414054792e2cda188d14a7a13ec99dd4641b5ee12592b312192f20ab577b1df34c445ea1d656c9c7ab466344bfbd4be5a4b548bd201031eb3bb49ab4b9c81a76022c413d62836ad9d5355f6b69b9215f9e729e8dd5cb9d9db4b2cda30928886ddb9ff89b48c49c4490abf9dbbd75aa0db55409ee084ecf6c0b604fcb6691e3fd8f54aece7c783e4c623920d52b5aa79ccb6e0335ae1c215c2198c0e65d0399621896009a21b824686114d958bf5211a4c51d0890a376335e50442cea9241ae3f6c50f3cb53088aedb6658254210acc27796bbd7ecde4d12f80db93971907fa13fefa7203e566c63a121a3bbe61c486cb044bd94b8f14d172469160984e5cbf0577d581d4500a9b1a94403de6f9dfcf7c65ecc9f92acc734cc6c0c59c6df459e383b73c265f337a83b0bddc1b0a494a0e67c7fa2455766779ac3080910162627c1101f3d4a545769d6e36fbdd8ecf075c6d9fb300000000000000000000000000000000000000000000000060d161b1f20 +flags = ValidSignature,ManySteps + +# tcId = 59 +# sample_in_ball requires 1 SHAKE blocks +msg = 0100000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0d0d1a7af2d4eff6d4af7435a634d28ec5d23595fe7a72cf76d30f1fe16620c64862e4aad54fb78f8ea752b1e43e4e5884d7226840beb36a76f6a9b1b7d50b0faf7b8463f57c66240e06a22f5f3de4fe35c1bc6b5e42ecb1c0758069223e02f42efdbbbfbc87b4c0736141a70e6dee41bed27fcfdcb94f4213a0f99a02beba309a93d343cc932a6fd67fb90d6de7a81101a678e6d47d8b1c8bd67fe386dca360be789555196e2ff8704c175ab60a8bf3c9f3bbae1ee5a128f67467d21fe8a62e5f8ad8127b8d7eb37e43abc963521e79d0f1ed57fa341f743246fe69d97afc9a13824c79f7f3dedd286f3de739158a0900c99d9c8e5603df109c25d993f634582c832a79c7bd8cbf3ba07fc4d9e9ca8c1157434515538285417e6424209173c6dafe54c37e4424de0f25454b1713fdc3e72d01a2acbeab4d7f60d17dcd073c60b0ad5252cfa137c138448c931498f61fdf8f449225b07e7e0fafafb1f274fe5cbaaa136e62362877f643c7c94946075e8928ec47c04ae54d2085f7f2b1ef0e46dfb31b9a19135b6cc9da876dace6f61c2766b463b24c0aac5068714e348dea399986c4e8b8bdb16768e7ab81e9ea13e435f97e35d268bb679071d5b99d0d2f1526833e8624b6e4ff1ba3f5af2b23bce93dc7c2c4370cfbe698a3297005c9fde7af66bce7c9ef68337b04d7681e303a824e00acdae2ee3eb8c3e7507e46d67a4cfcfa9473bfa6334f2170911bf2ea75a3618cac939d11d6a778101e033cad958aecd89feabfa19dc6dc73584917834ed6552966f7bec4546ab24c643db25722b3ba412de04e9195898388d9ce04cdd9343da69ac9b3d3155620dde4052e9e30529904f25dd6233bafd4493b66844c8fa5d831377dc3ff8829114000799801d46586dc2d2059f6bcaa43b899e089b4f3a5ed4e6a7f1df5b8d42fda456a70e10b2ae14630f27e4c7257f5df23ad032c1edde44073585c04c1231e085591771cb64aaf62febedb33df56bc62f4d126cf8be4332ce4965e6e67d0be7871d81dab963c576ad7123bbff510f282bf66c0c1ea04aaa05a7a4d410d0e7b6ed22025dcb6ceac78f377306e973973adcee776ecacaa560dc8008799b306d5e617b2f51159b1e5fe5daf40f8f488f077cc55bbefbe8f5a61c28ae2b1493272dc6a4e34854f73f74c3442d9c302f96b6e721e2956ee0bcdb9999ff36d74b8d4ef036afbdaea5f977da2b94d0aa9136abd6dc26348873090cfe3d4bdda4d962f9382576bbccf8ba227af4ca8e017f65b469d2e3d35132fac40cdf03bf8f6beee66fe9214e1bf684e0aae75e4141d9daa1c77ef409f56424b01acc7ffda11cb9bf64a9aa71b484b49b9ee82dd8178dd4adc91d8d176f83d2cc7516d2195917fc246ebdc0dba4cb5a54ac6169bacbcd79adb72d593fcc3fa289f1e4bffb4612ba7a3318e607b0b27733cc70a2e2b4099056731ecda3212d1719a6902cdd6a05bd70d389da1dd0d0b4f6c4968676fe33c6e32d791c85b16cc9f4289bdd09acadd9f902d9a91f1559bd40eb6b73da7a623048140f73454e4ccb4ad65038109f6eba9fa01b0a3fe1af228e2c4134be136db2b029879e101aa8ab264e554818450734eb5a900497d906e20d36eb3848b092c778054c5ecee767c00185ddea39160e4513be858bfe5c7c7febf97ee8e2b2fb477bfb10c11f3b756c0da1d87e3121ab4454016b36fcd8f6d2633c73d4528221974b3f21ed3d464d47bacaadbb4647320bf0bcde38b0a75b6c3aac8b72d3c2c179417d05858ae4bd72d9c16713f7c116dda3ff8164710d4d14964b33b00b268007f8cde2eacea5108fed77d7bff70273f351b4e160d28d02576dd5f3fc3ab264c5927cddb6f9a81b852d24842bd5db5c5f2d893b2f013fc75426ef2414bad1b845ba7833c88a8ce76fe2644455be2ac1b9d1e31791693fd65f1ce35fee9d17b42b444bf1277f2646a19d76952b3fa3846c3d258f9a1835a709fc21472b0f7de7a729111e850f27f88764b3ab4baaeb6cfc644b9b6a552a61a7286b5af8011ede05845cb9359232f02ad8b3605b00cbbd83069f26b610378055c004a456c7c44606125b7b076b3f955117e03eaa514da82a9650e8b9247902c5048ff776ecaaa5ea57df61d726ff1754d4b1393933599edc49617836ecf78cc7dd45750b666b73150496e3999e339243f5644d5a3e57c6cdef2ea6c967f8bc93c27aa56ba5352666ab6dbccec415f610bcc76879793935df8e594f5c6b80dc0adcea1a1d5854f447604c54dad61cf0ac91d27ef963e6889075163e89cdec0aebf32080efcc58280b705a029511f21d311c1644623f82039e096f7e1d2518928847abd479840b65cf10d15851976e47444d64c6d4425310a3b5efe9b584ce7aa01b1f79d6e3092486f91fe75288736e852c0132561a7616f21b7713ec53f0dc53432f53eb4ad778dbe14664b55553ba342eaf94e9f76320f8f658b4c5173ab938fbbfe20c9987318c1a5104efe41419926218d30b0c97a366e60f6d1240e7f601a1b119df36cda11bdf7fb531a27979c9823efd2a75c70387f0296dc7382f570fe59568afb406a48e7c13bcb40204c92cfe13b3980410b229767a5412a7db82845da135cb6d5b2f9f5b22518b2115dfb02115fa1c4c3177a55f5c194450f0f0a518df7755b0b12eb412f5f6ee2256bb95d2985bdf1257769718de9b4f4281c3eb3407f175c0b43fee6b94b00875dca0983ae763624bc4e84e9a78f778dedef5eb078ee87a34941005c15cf42ee05cafe098005b1770ccce4e59d9d3f6eab9fb2673766d9b70ac11cd6d8b9d00809e58a046d95ff62e78a8e5525af54094c907019ec661600ec2c4ce5337371a1daad0e37f3a5cdd96a3d985456a588b5c1f61f36a33c6444c3b67c445bf95e9035cd4f77191a95a7e4c20715e55dbe43196809123499148a930321e7b2cc7809cf517fc4b2b0b49e57cde4b6aae620fe8cd0b38358685ab80061c1c126a1f3a96ab34fa957236cc6c59ed962b3bb006a1c122da796bf6bcf7dbeb64f4339c63d3a437b5898be19f6ce62024cf9b9c89964569f176fb697430e553a7c0936056183223fdab2f910047ad5e64098a44a2edbfd3007b0b5e4a5d1e6ecb44f137dae2dfc45e96f03e75c900f3f84e2653efded35a3c8b27e310dc361c0740524e52a1bbecce57d59c4913313e62bbb63c95a93512bf09228918bbf921cd5c62b8914b7142d6abf8d632c3ac44ebb6936c638d56cfaa7cee463838a921398acbbcb44bce621bfd81fab34a8ec33810eeb89fbc3cc469990089d2291e1e873b31398f2799b8d62d429b998422ed634bd7a6de8e991ba8492c001fc5df8b0014fda377cbc5ac74e40d50773ab5c2b4d08dfbf3cca590a77f4db0380fe7af822207aaf99c38676327ccd9aad50b2d4db5aedf74b1cdc50c484d455429352ef0aacedcd9792dc26c66081c28ecabc445b6f1f547a24403e18b0468c8881bdc3e82f7bcce254944271c3ba06c80555c8f3d2d051fb6007507eadf8fb991f45c0c9e9ff08838a425a96d72fc20d642c2eef45b4fa43e7b380d8b6648695c0b9440cc66665435ffd3df10fd786f7638e13706f6c5651dfe5f125158ff3d1da84cad23129e11d79d0f95548318b1c794990174daa895e4b984c175136185be534ed6bff9231c215fbf6bd297e24f528cda523d62b44aec15fdfb36281d804625db07567fdb06779325987f69f16f19df737d5f65d1abadfae70a1a4daba5a87e4ea3a09751ece2ec21dd24f719b1f57e795819689c8f2e83beff593735825a1ff8e4e4df9d031dd66120dcba07e6bfbf1b0946b3585a5eb807c1632a75353e8f7b8c4f8ff0af978afe2bec80d3b94917773564d7efd92a79cad26360b599be49bc657b132b25f459d58166110fa626cf1731be419105b4bd235176d60efa939fdd8dc213c695674bca27f161da4514f646f33557aca06189698f2953674ee73be89e3fc4c014877c6bec370ca1fe446686200a94ded3382c4f4bc58cdc12c354a486463959cb91c2ea0ae965f912364c5d98acd40ee312178b479b540875fb2a0164b7134564bf7fabf59add993b08a904452152031a784cbd36e19a47d4c9371e7774d3433fecb5d072d059b01ebd3279ceeba80b356e3628874008d801ed74717c70a93411603f1faa3924414665a95c475ac42de8d616de8be5c00fb90e5ad13079e54d1c7000905b62742ed70555ec406b49cd4aa6ea68342aa7763530b180e4f790475eefe1094426b7de9e0163a4990ea3494909c6c6de6b7462d70c8f2dca3152d81c93a8c184b0c54da7fb604f835df34506731774e6b8f2361586ccc17f35c8e21795ccb68a5cd73355c98a17c9ae35ed22f6c0a36c4da30af96ce7347375144a80dd851fda4971f20e9d6d18878d74803b577af4fa8f34c05b380acbc5282eb63f9345e4dc1f9f0cf8808a204ec789ed31ac9f009790d5c9b7d744ee3b29d911014c12b53ff691fce0ae5d53dfe1c7a367e694fcd2f688d46758ec308f3f9736701dd825153df883c0dc539c9dc3dc7dc9a9a35f453c306fc57faf76451bef45889e4ab0a4a6dbd377996c7cf80e0e7192234475d93f3f813197ea2d3fb112c2e97cceef2000000000000000000000000000000000000000000000003080b131920 +flags = ValidSignature,ManySteps + +# tcId = 60 +# sample_in_ball requires 76 SHAKE bytes +msg = 9e17000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = c900c9555fef3710097fa1a132c5d61623c554c4c837d185b7f3d1671a8926062e094cd3680be899883c036db34e39698133f314f6148dc3aafa088c06dc01009685f1a0ddca3b0311f9f521154c8a692a165c3a488419c4745412cb06392dc6a4d12286627b6eaba2f376a3225ea85f5890df2d03ef9a565ab2f94c99c25d9239bff7ac74e94df677e7282c0dd44c06fc2f26b33cfbf8da05b50fe725ae9de58d6be87628dc41ca774c8ce106428f012f2a806631cb5c763c722e04fc7e44f86fc75b1398a54412af3730a3c60e47d611530b873feba32ba4b34081e02652bc006b9e106ad6ff4b698445e0f0514837f94e4c49f52f42b6d1b655f90254adb8456e903224fc60271f280360a632afb017b5255b6923eb8c8cbfd62d24643e8f100391fd713b27fb7e8adcef58c26ac4953c3a73bb6d12262f78228774e274283f8b810c317d9ec0eafc05c6dfcac42d6bef8f8963d17667f7029182dce0566041612a7c9e6a5a9bfd953caa1e88287a20a83985ee07eae3c5c8aa408667556f7e19d657fe11036a227342358b7e42d5015513ad8ec587a5f19b33ec2e06a146904edb381ab11b1c0b0cada40d89cbcf5d7c9f4e15d8d7cca01ead1a66281d8e5f64ddc1393c2a1270d4a97b405d4d21adb189b8eb44098902eb48b50c5f5d1496bf5d5ed0f74e58b8aceab89a7cfbfff608a8a90d2baacd652115596e72fa1740848b2cb6b5bd8ecee89aec60118f16f4706edc781c6225daa0bc8539d82addbcb8810ce2687f1a171a3aee07516cfd6697c2e5d63629bc43ea3ed4a982bd516f3f448a50dabd95ac314c92f92d468f4f063b1fff69dcbdc3a4d8d21c01deeaaef7b9be41e934a68c144643a99ccceb8e3106ca28e7b0bfb3a9c5e31e33a822573db60e4a520e8f2190361b3387ca038c0210fadfd294bf8c1b302657211a54ff4b159be164680d3eb4c9abc7d6b07c2b81a5085f4759465f95f367005fa33544d56458c2b51bbab862135745a22d994e30692ca39b8fdba968b3766bb627dd6463c54487b81a27cdf9b1daab2a83c6af174f96dc454feea043bc0cca7ff9cffbe6e1ac04ec830a0b4e5d698681c9ce860da61249f3137e7980bde1cd4eb0a545c10f725f26a9e0d4e59987c4d516c28e938290bd88ec1729a553f6c7e52ce9fcc402fffdf1aaf47def0875c8afcb8167a530a94291cf107e095f90d92998f4200fbde7e5ebdb8a3c9282f57c2efe94ccec3b5aaae61afcb7892f0b20c3878e95b53a70f21f327b70555550a4805ac6a706d4bc408f73016b1045e2fe2c2be0195af8c44855e3233f99d5aad848cca7fcc43a0b5a0b37f54fd8d9f24c365011448a85f7fba7a9a7b4aec183bb680198d1626e24948027081d8e91aa6cce10cea8a6314eec2c74787cbb627a09f4ba7a691d963c8c026a2c1abd6a14059ff57493e5bf14c18fe982f7921262c85f80ba72f4dd88eda886ac13e63a8bdd9f72b04a781ea9e4ee2f58a15acbeb2a693a8f61091c02aa0932154817aaaebdcb7471b9d0b4aee6dc34f2ca644b0114b6244579f77e096e121e7143b77443459bd5cd1ddd9623fc5784bf34267bcd78068a0b2225f21ad1935ae44bcfd1a23ab4d012c8ffc9276d4e0abb5f100b6a90ccd7ffc73a44b5169a027b2f92f7a49573c997554e94fd5a4bf54f4cc473e794b60cb3a0b0c5ccfe6263c4f91d77def6ca8c0fbf91e923234c8a2657d91f6ed08e6ee04b3b2a62f29b5f467168d580848912b5c2c05386aa52ff2999d6f7d5b142cb1bb78a70db30d4bdc850d52e0febcbe452966f5a5d6f5fbd28aa498497ab03da0b3b773bb2849a4f1d6ce50ed0d356c3142d33eda4f07907c6205b52cc66d49a5eab02d8fedd50847456702f74466bc54d9d12841e65c0594bf55539c177cae24e9572b1adb5b26310ed4ddc2a14421bcc142ffb3a43acd612df758abfd95042fccd186d3d9c5b0cee0857f37231bc9f8fd80d4db3259465ef11d0679210394713d99bda76d6ccda91d31a287ad749a344050a9ed08f01be70350cc2991dd4dccc04ff78b9c9d339d097ae2d828afb843418c82a707c0eccaf9a3b412fc68d5725a31a064112930a8c6c7350664604606d4d1f817c842ee4ff032f69ecaa0cbd49768d13d06835a07ac388da3bef18115fb096ec01d42966d84795551b9ca8e0d11734161c71713de45b545695b14cf2d883e4cd8524e9da3f26f390dff3a23b605e24e812c561af01ff087c544af8e1b4aadcb4ff5cab5ec1d064cb9d340a8b0273f178bdc8b413ac88cd274b7f0c1bb67f758682e31376632e6cc2cc4c16705eab7b1fdc1127ce985c0caca5818f661994c7a6cede3ba865488811e0cd226def609c0a857cd2fea55daf0e116d18d0d1ab393403ea1393fe4736ecd5f0d31adf6f43eb6be97cf58f8e5bf5b54cd2ac0d2a444e8f5088396fbd587048de2fd1ce1f3dc69e1601d0f723b843cce8cd9e6144562003e5bd448510a3d385aa231c12432ecfcbd58279778b93019f03e78ad39883dbc1907d939c1dbbf5f21a76ded80efce94867de48fb54e64aa0cb93b2931fcbb7cdc45bedee33e1552c624d19b116dacbf4bc874274bb242cf3ed50489d7dda672833f26d7978fc0766c44ee270dc4c70f16705ce3af7eb4d9acd2d135dbbb3cbd8ece1db7aba3e783c853f1b25a30c04fdce0d8382b60df232b3e94d976b66b356827d55046a317dd6ebe6029472dd2733d960dc4b6fd1610d4ce57e45c48ceb482b8af3ff722ec97c9e569fc066edff9be4df60f66e862c06a6e04d7401bb2b7156f8b85747e9c51510d5cc6e0ea37bbef7f8d8124fc857258e91f9e1c182eeff2c4644fa079527721e846ef62bb01ac56d61ce40a2b3ebe75c0b19e716b40a83933e9d4a8a3f31c7245a5cf049be097e7a70921b850978f9f4205d58a9e0360d8421060bf32eb6b46ab7e3378e9c28657c42b14a94e2b658d2f5d3cc3a5e13f50d929204fb4d66230d2075831646fb3775d7dd99755df394c81ef115cbac093c69c735cc07f8917732dfd564d13454f617826b23849a73191b7af7992320ed5ae41b89ec7fd62a3e42bc48dc987ac55f8e552d0e056343b80981c9c2f2fd2d05ea3c8b7be5bb115a686ea99917e8569160a0fac13b7602d46f29190c6f80f69e46c519619d8178b7f79ee1bd6f87afd5beac38a3842f734bcdf6014052ed8769af35ff8a329b50942d1c99134fc0c31bf5a57a26367c0e7d599e5385dbb328d64557d6034122fb8bee15ed62d8de367a1be38f0c62777fd1f27438fabc01b186cc4c045c4c9aca26b64fa1e41bafcf859bd650836826c45622892ff9605b61cdd8ddbf59a4a1bbaaf8f9cda01545f25957c2636668c8e9c2c88dbc129d2633b6dd8152831996bdffc019fefbbb0178a524e4b0e69e1c477bb9007d679725f1ea440fd94ddf2ede8b6f909ff6de1b45603ecf44e63a64d0149599cf49b60db5e21af00b3aa99afa349e96a57cea5763a096d97c17b7cfd6148fdc89470b1873ca1bbaf004eeb665159d57a7a0dd330e560caae5ccf348818984dd5b94ff8d78931624e771f22f0cc18fa54a5068fd9c8123218c4bbd8e8996f128ae39a10118840c63a5d8819d550aef6a11252cdaa0a39936de328c12c5fea5e7f2013b812510e8a75492b5f694f90682dd8176d4fed45b3919ae39f90c2bdc568392c139f85a84940b5e0ea2a79a7b28ac3d5a79e32e545f7b9de9d6994a6fda228030f74288e967d9b60c51fcf047af3b4a86a5163849bec0d2b63b2f89ec5c6f8784341818d2196a7e8c98881aeca2869088e7de9afed497e4535894022eb36fad950e396dd1befe453b14e968b6bd9f810393193e90774eb4131b6ae211641b15f13ed5482b5fc29e68f91046b1a895c3a9464d1e699a30abb85afbe40af3e33a1dc7e95f93294b3712ca8eac40326a32a7f6470f10ec9888708be86c90122df4e3a8da7778ca05a187539064ddf9908d7b6a82d1ff8905dccff610c9765953cd67e3fb4ccfddfe3009fb6f2674bd99228ee3613715897a35849a86bc0a38416540de2b5343c15b1d70d2a73da969ef67d25484bbdb2d9fa7031930065d4487ea212f9fcf7fe9b044d90572f98add754b8f13757651f065b43325eb0cc6a6b72381347f8d56b99876b0cbbd936bb2ac401effb14a5e828a2d74d12fa8aeeed3c64fd15868903920fbd0a4134f24f3f1cea1122c7cf9a5905b70c2162d9436c456d240d509169a67c899b0256d9304c064682a986272d12b9b4562ea4dd581e468b65653d290bbbe6fb42c79f26e2a12792ba8c18bf59f6fab262c2fdcc5e1679b45e8e5e400683b8bce46d4aa7401daa837fbc0f2834d84225fd82f3d35e10f505ddc776a960e3387af22681d85e6a5f3a0318fb133ffddd7603183dbfa4d36fd66e8bb2adbbbd72ccc3f003b0af15f1a03893439b3953670c1a5a9a67aaec332db413c55896f9ad05691ac236ad7a01338152972add9c221a681b7350bb00d365b5b88d04923d118d547ba7bfc74d80e4a54b3b23a9b09c79e9b368ef10d9e7baca7249beeaf1df2a3de73d79a670ebb4d6d708397efff2f303d44464c920631a6bbbec2dadf1321303845585da3b5ea063d436869aaf3fb00000000000000000000000000000006070e162028 +flags = ValidSignature,ManySteps + +# tcId = 61 +# z_max below the limit +msg = 8700000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 0d671077c3e64cd312a5554e0d6728bb10120a34b3de9a7d85ce41ea84fc1e02695340f707cbdb4dcfb3d6f590978c29426c111719a47a90d0223edb934a716d7dea3804153a75c60d56d0bd4334e2d7ec9bb9db4393eaa9a98b1bc37d9b90df162945841c4815b17fe28090b7305d2e61c3ca0d6f2d7a6e39c60378f043494d541e7f47d70a6813daee881ddc46e8244df4732c82b2d32ce01c0edb0a19a31e63516f0da13228ab4e2aefd5b9d069329af236a971cbf554713cc6484ed052e7826388f5f0a1fd8b2bd1b92421edef80478f457c899edbd251d5efbb77eaa4549f2d923d7fa5ddfc3b559af16a8f690223180ad08fef97e992d5d0e44af54714484359ce1a891bdb019de9ef87b1cc626d0c9a09a2949f15095850e997d42e45774e5ba9bc56bd6e6d19be2ca567b534c155905deec8dba9423469fd25cc807f079dc7bf2be38a350904c4ee3f4d271c90e323fde28b66f91dd47ca7aa74cc3faa9a5f1d314189985b135aa7e6aae41d23a162a8af8e51709b54265b51d9527fcea0c86226cfae391a4b0e18634deae056e8e34ad7902f48b099242e4663e2dbccb9c145dfe0d780590451ee139195ee493c7104792b63260291da3957f1fbfd2e8af9774c22bf224d547b1565759e2437fe48f5a976c2f273316acc789e3ad247266048d19172a16972599f50d4021afbbdc6e4b6f03ab79e5fd4e550f8419b9b2a8ce174c521d48959f83ccb15d8dd55a64b12d5c8d6037382c3a232c89a8b56318f1553c9844b81905d1e00c46733f24a6d5f88b67c0245e206797c1bebd61576b20b179c2ee7092a978a710c74fa32fd648ffb7ddde487309f14866d3466922dbdd6228316519cf1338a0e544de4266fd4d9507216913dd554c4603e74d2b5f8e4f2114059f24bdd3ca44a88d88007fc45d571767616aa45bafd6ef4977bf8459099ad4434b8a214207289bbf59438d0760bc46d555acbf6595a5e5e9ebeb9e175d0b6c3e4b37a99d1e5ab0c07cdfe8145344c9e44fa1ca5d77f28db5246953e4542eaa186ceb249ff12c15f6e59b1b22ad003c974ca59c29e87034d5fce8dd5e03a55bc2c3dc22f3298ba4a0e2c3f85857fbf1d209af66dfa242ba7713b7f0d5b4fcaa73c6e6af62d3676c77474d88c451e19520f0b6783052e70e1f51b5a140b1b1584fac8ebbdb76d0bfe41712a982b82836c40ec4396ec084cbe92a0e925e798a4dc2e91fb6b07bde510e2f4b12731c4a6335e2762b8d65eb1a2ecf0d2a52698794ac293cf4a9c936d6eb21167d923daa11d3c112e3670fcf486bd40baaf37aff16314dc364ff74172f9deb94a70f8ab0ace974d6b22a15415476beb193199e8657ca7e4259e883c8736a975f9de2f7d3a2ad67dfa1169b4b2d83fc2c64799aa36797afb106970ddb63867eb8febcaf43efd467a28212f0f3208a2e9bf8f62dcb849091fc98d634796515e1db40f58d0a30d74a5d1056dd735d30aeb07f63c44614e131a6f0649dd2645560ff7ecdfbfa2700282d3d297054d3ea93657e5a39bbb7f2f1a563fb3f6792482d6afff95b6edf1c38e207d11e453b67996c378c22b8627bf04143d60e7858c07766e976b5e786441dc96ca44c584a32d00e64bc109fe2e0a59d039d73ee82eef1a50d6640c7dbaa4bcf7f232221eaf31c51de48761bc66722ff46a34ab567d562e60322ca9e501f8f4a7dc3eff3d264d59647c0ec9854d0c0c9d8e2d063766870976b4be7a52018cf109113a2b8b295f40a0604d0b31f0ba0cb395396f9ceb29c470d24f6e6d3d3dbc33ee78c2c8f3c47dbf2730bc131c9e1c2f9937dd796f6792b1d5998970b14876080c8e7f9035d63e246ce3e67f60d66e662d3f76e8195dd0d2c219e7115d79283645d0b9a1cf59d1e7e5a5e4163e11d755a2ba7975b983f40d59fba6956c73a79b64fd9f7c975cff311b0e2b8290f51ae2d086c782895878e68dff23bed99e4dbde108b46e5d0b6de55045dc34090282a5cf3e3df31a4e9ad37dce65585a6c72f3ba0e3ee15d8f68cea8356713015a001fef56079a8b4b934765ade73bed70aedb27a08c6f9dd0bef90fa4c7d119810b3e07dac414444df971824104bf43786f9337628322238e8886cf8ee02ec38b2c4ae42edfb0e95d3d354c82da8eadf476d145adf89917f619d32f126033e816f2b53fe8116641998305f48e86062d26cd9720722ab85aea392c804a3e136a00513be362e433eb1a8e9a5904ab3131665941b175c135031d7878c66dac7a010edb12c45e8cbce97837f122b2beb2159052313fe3f51148198b6d3c97851ea3ea26b87e92b7a16abf2c2c8c3a9717bca590ff3cc6d062055f14551e03895c64500eeb25f87e219832cf40f3cefda3d59bed69a39e5b46cf8f3f8a6c300122894954b95b3b8d995504ee81646da4301b6914066b1274f96b21386adae3b2ea22122315c59be277fd309e81995a84881954164ae1a59addb58c9edaadce1793320310e3dc955267341088e398c2d8397bf839833cafcaa94582e152b8ddcbf2c4bd45d17519614bd6de3a08a32e83492c2ae1285d26f667b41deefb6d401e29cb671281e2e06e79cc1ebf470e444da552bf0052db7d087907a06a50b633a6d0461f0ddec6ea2c71df74d85e3a920a77cb43c02f3126880febd1d20794315a4448177a4d2ffac04ab3aa0980a7c413c7baa6f8b097ac662bc104a4fb928e72602adbc4370795434ddf9f48f96a9c6a9227781069e209b826ded8c5239d0609f24b71d31f564dedc6edee96ef862e2a9fd559702a49bc61173023edc0ba2742f1b2278c85887953941d5a58720a2e2120d49bc3e7d6a7f2f00c6a039e137c77db5f7a7c3d43ad2eb0cd564af81a7584ceafd603e0a83823de3a12df635b795dee53cd93145df3bb8497da2b683e7523d859319dd4ff19f2cb01763e0c41574d584f4c5619f52b4b4cc2f2c74925043eea26754d5db6ca5c8b639e79ea8a09c39d1d4c436c0ec849450c1b66e450b3704fb8c9587297064fda4cda8d6be6e10c9a6bd089bbebf8decb1244fad182e6cab87fe3f3edff5c13efab840183db736e701e51f560c1e14827b42d738d37d68ffeca42dcd5466d50841dfdfc6aca437bcdc24884d471bbf20a6921a743c536bf01b2b385fed9a3f3626798cb577bdda634f8c158833e52d121b343dccbc31d3044092ca4cad39e913dfd32bcfee874afd9a02faf07ba7108c05c4beb78c050d5539eebc699fda08b360ea334814caf4fdced62f87c47d36c1fff5d8865992101069fb6679d3f3ac87b7e6e2587214105dc25f76c4a6779a1a9e6022ed9ad59ba3a7b4bcbbd0d63d2bc0674c5fe77fd4fb6a0ebf65b5a73bb87cd5b36dfb71e7a54ce2bf8d9b6a86057536c4a7f0a7c5820828a0280adbf0cfdded491fddcc8804eaf9fc5230d59906dc7a4ce514117f1a9bd0499dc065ac404512b0315a6ef17794bf296d9d371115f60a94015da2f50cb9ce4123b1ec8c0c94213ad8b7018dfa325e182a68602417c95eaf70789d521c9d3124621b36cb022e61f211b29baee96bc013270948a601fa1d3fc66eda9be473b3ec13fd0bcd59b06736e8296053a4758c7e7e1afc5111e1d43dd199aa708d95e548ff21c2d3e4328d43c9637baedb275fd9cda7d1225ef0d40864e6771e53bf5fa836121b4b6e9db6e1021d7bd93e5beef63af89b889ea83429abcae0bd9e1a079bc35e71ca54152c281e1a27921ba4e6b8f7594df32676d4762b82335f1097a92f49a86e5641bf1d77175a9476cd42f90aab18671bcd7c35dda9a1cb5da2f66bb80a5187abf85afb1557e0ca6052c63b6bf9627604823c3b6150eebf657089451bd04981691098092dea8cd5a26a693f0b38f42cdf42f831735869a15dbb3d0c322d85b0ba40017c4cd72e1a60d972a0d8f254e48fa6fc702a555f0f76598d1de2975eff26371fe13a6ee48da8252053ce0396f352191b416ee2f94dc847196def54f311f66896893495f0a013c04c442806c3d4e1f6320039db9bc1d94a51515344249b480087c7e3e937ab3124254c7824a99ca6b03f165d0fbd026a641ecf9e538f3aacf2dc6cfcec150aa7bb45acd5dd9f20e0a1d6ac2a2254a365130fb48f69fec83699413f5ee3e88b678c2b2d1dd316e5f8fdfd5a344c4241719f55e17f2ce1a4658067065efc4a4f970db9f1a52cb0ce7eea901c451ba95d6f2cad66610c33c9e1d63af3310db7e7cb85e3523c79dab34eab84296d7e2f610d23c4c9ace9387dd0d77ac3d37f1a35c78c7c31a7e55a9a4a95139fee0339c2647a56b32864060c43b9aa9b62888f4fbe09053dd5e5d9e71d311911f3ec864bab3f3ffae8c8b790cce1d8d45c3ed020ff01a827e851aa090338602920013e0ce3453104a8abb8e69717b2f7a9c1469bf0c23b79bf38c73231e7eb5537fdb2c677bcf1ccac3c37310738246641f4647721e7a3e165a187ac1400a0ee967ec60dad51eec6da1b858985345da8715284fdd876292493b21208d3d305ab93207c67180d217c22102011f824c7b15c92f2f32d6a39f9d9a17fe2874c84fc4456d39490dad28388e4ef46c602db21ed43054beed2f8ba71fbbc9d03c6dbdeb11327883a7be0c0e1c315d747c7d96a2a5c3d7d8000000000000000000000000000000000000000004070b0f1523 +flags = ValidSignature,BoundaryCondition + +# tcId = 62 +# z_max above the limit +msg = 6e01000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 289ccd0e0e58656b8d32556fae8b0a317eefaff794b013ad8a43234658706a2db12585faa83808a733a3a88655a5d7e0201b8bfbbdd3bb545dc306806a26939aa9c93ba58f46ed8d9c37a9f6e0e0afa09f6c3b3f3abeeea3c613d122700fc91e88ffddd965df08430eb37fa28bca6db2886601e075f77bfecc67e415d1ba783a01c4776e9b96fc26a215084828b0921c90c59ef766bebf0210bacb23b7f26b8e572bae202b9131e725e367563c1b36218d63f8a2988dacbc73f4a46f313b97f660057bab41c1ddb99df76df8b22b16754c333ec2f141302bbd2a1e967c50882699860243af42b6ad5f368d245823a71c02a338ce037e337d4d8c5e2c2c7d54436ef786878e1e25304a27058d89e7212f688c50cb701395a5c2f0cb3310c9dd48777f80edb0d2a99a91f0a444296c1b4976b6161a9a43e5ab551b135e0dc66be2f06aafd8c50c109d413215ab4b39d3063e061cbcf57d2af9ff36f89f0c80d483af483673595824ed4c4c71a02ab8c4135a6791889b8e43958a5b509332e84b1380991d79c6397aae3cb3dc522a7da89e925b189a840c2ca9cec4cdfd8bd3831486d2c0d15b1b9bd44684a8aee873806610e9ae0fab2c61e1c0366f981d5a42bbe1d9cd179883f249a7a155b80bdeaa1cd017e9d3e0080ad03a93f09693da8773b1256b22c20a6531a9957ccff0bb44cf0ac3e5b0438949a589755d516fb2b596336c153dcbd5565b6786cbee057a41c10fb762c280e850accdf476392b50cbeb2d8e7f6a6856887e4a2098cd8f4264cdf39972add334a5aab45002058f19c6506069d7acecc184f245a25a1d242cdc41d52f2b3cfe23ba797c4bf87a33cb593963179e5fb08ac5edc5d4521af466cc3c28e6a11ab2f5f8d06d668fed5b09a7f3f6686dca450467c8ce0b8e81ef605ade33349dd1582adcefec138f004df5057b2a54173fc587ebc3de699506d19e61380291fd59e50a8620f1c9c2424f80a48cb1c342534f26f50e52ca4056c315348dadd204467bbb485708007cc2d8477c518047c42a5c7bcf83e763297a2e4e0fbf547b4e3e577c2bca76762b35d3b849966c9a0e9d5cf570bedc0ff1b779148fa125566b67d14b62421761abb1eb04a9fef43c08d9dc793585fd30330d3cb1b4651ede3121e836cf427dc6f93b4dbcd1d3d0b096be780cf6318aa31d23f6353a86da38b34265b277b7710a025e0e91b7133d08f5ded6d74efc88a4f40bd256a6c6f86d4b869e27953a6c1a40d19f76311b48e3be34973e65f17afe1c408062da2e2a8c474c6a3cf32adec928c4adfd9611671f8b04538f7605ce6afe0d7836ecb06913555b730337bb19a222d3a7be5ce8ac44db76a79120ffc7dfa81c07590955587e61828f782e176003dbc8fcc38fffaee982f61e3bb503ffcc44806a23d3e480b4fc5d17c630b2b5855d67e884d6a2ace9e0ce81a7a0d127dfba247bf7b90634f03049d7aebc1419eb4e7b2ba3303dfd3a28fe5d42a73a7e190df163cd241bca717679c819a5bfeb11ff46e06c46c4c9fee4005a466a9e8660e01d050fe1c103d73bf6927e0ebe4c14b314b3d9300362b67ba5f0dc334a334eef48fc248a7604269dbd9dbc0a380af5ef51a91a48689d190d152213a818df7965e4ffb87b3bb7b65fd2ddd35e947789710c898e95b431c0765cff907b61a799d65e2cc99c5696777e703d3d6459a71901c0080c57c636d21fb0c9d1846e356e0e3cc7a6518ac177a61cac9b6ffa8b72cc77bbb86165303813c21c750f2b930c240e4e1a3a5b1801d1c8f4d8e4ed2e205e9b99fea36b0a26e015ebf7dacb547c17a847d495d5d35828683f1432cbbac95d3b5c77b151bddec5fdac911de1f096cde0baec71e5bafd5fa93a4a42185a4f324ad14a7165a38d659155c4afc72e1591689da8f152d2c7836f3ded5e31931b3a31eaeb83362f2f48e04d1951c06916f557289b01ce62592bb97122c110d9b608a181141b78e5ac37171f424041ac9d7c56e6d85fc635279d81bcd9ca023859bd152074b07337cafb0756a2532d2c023e45cb48fafa19030b0b0d79aef3f4576e35ff822e7cd014fb9d298dfa6a7e8dfd4ce2c52ccb88026a620e985a170535425c01695f3b71bc67a9c3bfde4b7035498378c9fae3921a087148cc61ca84953dc6e86e07f6056d9d16f2b4220fbb1b905a1a89ca8325e3d7afa5c18533bd478f47aa69c7d0d1d1f75cbc093cba23c439aacd1911b152107155462ec9ccc893448620ff2d24ac6d4c0d3694de957c53fd21d8f7b83e7cc2ded752b61ddeb1a222fd6b9576e6704d0d1adacfc963cfb5844df234d7eb97754a1c559fe81b4e64907166ccae5f581a4f8b90bc63e478b02a7d6194e3607a1dbce74fe2aec7eb63ecf484ba30399fe1315e59dc2c97f9f6cd188164cae2623da7c83bf96031bf14812612d8bc940cfdce410c7cd5f4668764051b82327822fca43cd49f35db19e1d79765ca4b662c8bf1bbeb180776867021054c3461619bc477c70e6fb36b80feb206a003ed12c3984ecc328d4d476b66a402de1a711d9895700897679a2c6bd8481794ae3da3bf011ba67873757eff29c135085533139b01f3a83a5504bacfe73cdb48acfb08357397c7d612ba4811fbbe51c9a18d50cfc530616622ca8e2f06801473538286ebc46a04c877b72eb8655b4b6c5cc9bac27bf6490c5f593dd020c5d30bb462023381cf1fac19d71e9701c49d539244e5a9922807ebcb11224cf0ebaae37262184c61774df08726981ca49531e417c90e51df7965d0f8508e525bf9cf4c6027d74a11f8141b777da862e50af076572f4c78026c7fd6b565624fe0e2fcf3111b3373f854bad57006f276588c9ad57bda5cb5a0e02e659cd0dbcfdc174a1639e6c9046516d916534cbe5aacc933ac4abe52295c8533a4a1051b5cb4dee48055e7e1d1bcf2154e1ac81a54f1f54fed9b920ffbc2accc896ba0ddeac418a71576aeb9abc0ab3a0bc15e57787ce0fcbc868ff2545a83e27ae616f2fb5939de3b71bc9ec5a2f064a736ea3e4afc1c8b5996f0ded8502c5a16317daeee9ce8320ca4346b5434769ad9b8784898599508e173d7f14d1232a2f84ddb1fcfd8de75bb0d59f8507214df21e89762bebfc4030bf0c9239cd7b6bdc4085f1a71e732a01c0e2024d13e64eb0b582bbe36a214454bbb51eea590ece8d1f81c95891ba8f203ea52c068bda155ea6f992ff1eb276a11c584b5394e562bf6341829fef1936397aefe78264fa7b9b3055c3140cb4635f20b3e4dc809e4e48ab4520253330a35360ed41ea3eecc0ed7c4f77c6d86b507934c8b800a0ef652962d6d4a5d810ed17643e950e3025cff4bdd524c8dc19b9a56e3c79c6d5e106e4e199968660588a063bd3ee369ca6f8c0e7f2034caee4ae4824ec663c4fb485c81df7ea86d7226be80d5e63b3782076a9bcd0f253c3564032f7c82c22050607ec01831f2d5a78f197681365bdedbeb6076037a88aac92733087a110dea7d6103ffe6b8596d70032b903d1e619494797d6e56e133538f80a91d305b07ff4ff718ac8fe0452bb3314f89555d81526a02cf189326861c4248a40866faeabe04cc1a7c88196c6d4fb3fe2af385212a3cff398caf2be65e7576befab7624f1e9f71c285899207c2efd2bfce2ae6ab9fcc6e46c42b028c857a86dcc944739ac4fcdba51b16dea3672149f166ec8e5e6913bc355208e3a73b89480e83890f0e4331aab624ddff3a103fbc4990de6ef8a2a48eeae86d7c6fcb136aaa52860e41a135a50395e12511635dd7dba11281c410173ab8df4408c9a2b51b9c1e0ad9655062957ef4d8f0572afeb829ec443825c082d67866618946f2962f6541c6b5ed1528cb410521e493680e9d937a50ecc0c50784233358a534e8bdb0c922e6a89b179d2299c47c26fd9f3c783514ea19a87b14694211e55ee9e4714bf5808c4da9a9605b12c53148e52014b5983e03eb47755ad4770bd54dd1b071c9ed0c4cf24103973b815d267f3512275e066f39c2c219c475018e0191c5d18457a2f4f224fad67deb3333620fcf48f4b4df62f358960b56387a501e69ace7d6b438af7550d6831d58f0f642630d3ad590c9a588e25610a963ac2577f67ede49878d87a30e69da83c6ee600022f87072b9618137c029ec6292d03b21f54ceac63f740c5a5b938b5c28cbe6720d55bbc43fd9cf915bc199f32911dfcc8642186b06988443e1c557a4713570505ff98b0c516db185da76eafa1aef72732816ff31f1a829798d1a5df2218649013a1463984e585952ef618e31ca2208b162687d7cd723e0b933fa373e3d795355ce1bdf5cbc74e8b2a43b72ea36dfff3cc7e21a4e117829f2f547fa475cd776600967b0c0db0bda413cb905c86eeee28bbb4f1f1dd29bb283a43cd04d2661f069077989a1eb7fbf2c709b304cd9fc3277f86d85b2012270e6fb2d083a814388622548c999938f1d52f3f9f532a9632787bcf8a63c6ddd5e5cef2d19e635579273ecb0b43670f12bf0e93793ff345afc2c49bfced401152f334188310c4fa83f7d3f67b6008e98d1ef9dc383541b466176bc166a0a1928b99443b94c585a5c71727b8096afb4b6dffd293093c8ca0e1028667797cdd4f80a154a5d94b2f662748bacf306345265c2db0000000000000000000e131c23282e +flags = ValidSignature,BoundaryCondition + +# tcId = 63 +# r0_max below the limit +msg = 3c00000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 8c5c7a82862de1800a34b8201c791d6c7288225427f7deb02f52748a35a8ac269104927b4913e528717ea107ef8605f9b7ae265f798846a3abf6bbe7bfe0a4d6bef6a1f6b49d40b972a5a1c28d19db196f709b4d962fdc646a7988f80d5af74b29adf34c7a1aac065f639925423d37bdaec428de53efce1db750fc2686af90ccc9e2865497b7cf736829981afc749e85e7e9b5044a92b9ada3740e3fb39251c5bc400379c4ded2615bc3deaafc54e34129b5cd1f4e9612964d353546ee5dcdfba712d985cffec78e74bb2e6c12ab45233ab42f19aa095ea0082063fd0fc8e1023ba1bba2b4816f011c644be94382af44cb7f40c27236ea1e1e6f49ded751927fea168d5a5b2f238360835adabeb4d1b1ce12ccc6c1b8e1e855cfe323d89c34a1a683360ce9189db6a9a93bfa5f70b7238d7f796757d547c31f786c9bf1c91546b325a05034cccd586a6f37879fafc6973fb02a540cf84d1a4f4c3f3ccaea925567b9571bdc116cbb14c884fbe35974980121f7d1e6b0413fc3cdc42dd4fdfa4c33d2eb774b3b188c3a2f2ef07f36489e80027bf5a9e3b607ca45839bbddd9370c9dc98efabe00635622562ce4a12c7c6e2271876f880b8d8a9a63e5c10f349490f982e5215dd94bbb74bca994aae7143c22285c5a15ab950ded53059821a526f6f10fa3feaac97c8b83453b20f314e8cc509fde7f5daba0b2cf4676a9286e1d9ff51f7674decfe2ea54c11a9562b34bc15577cd591088e5abb0e49c152135ab4d496d8f7abbbedc1f332a06d7ba9d9a65ba61b1bf3bf67f9a191c96be2b51d790f8dfa988d9e69a5ff9484967d5fd33b0d7e004a73839a9603dfe2bd2d1f838fea9aa15c9bb2c0f2dec02d17a3041d6e4291bd7d4c00ace00ee1f4a6dbc5e4f76fe39fb4ed231b5df55f7a42b9366396816b5c372975d5fba004a20a7649341859903760ce8fa444945136f9ad67017cc70d3f6c4d8ef7459f1a544dd93d135b888ac4b0f6cee4daf45a436e967f76ec477c8efecad626da1070ff4ab94dda6bf04d19a5391333a2ec6033e780e6b3c9575e9281423489db02201ad6867b3e36e1f462e6b196a2410206a71073f19d707ac63320bade5c6c42e2998c55da602098695db63144da3f9a9f38b53022df84ddf8777a19d678659e44e35f3d8e069adeabe7b79856f8796453f3a413b4ac93d87ddc119d82ff235cad30c561138fda8b0310cefdce08d4fc7794e964df23d5f153a711fb73f694ddbba93cc63902fde5488d318f5359b77ba076337ca43ce59c4a9012ef52d86c34411dbaeb3fb2edb4a70199885d9e04e019c4a406817b96d478acc29f5db9b4cce0da8474bddd09619198d97b3609ac1a3161e75ee485cb6830c307436ee1c48d80290cabe41f3d4b881c4af4b2c2d82f4b6adc9fe6a1532e39b96350f7fe82a23bbd1d9516e1d25f089cc085c5c72b880f0306f73b5ac1fc805b0dc5e80506e06d965f55485fa61fe6e9ef0338e9de6bba5bacc703eee361de69b3264c280d75ed858f736ce9815344c859ec67a95048cb5dc03e328e9d10ebc6d3dffce0765c3fdcf5861c5de3aa7a607bf78334e8d7ba00daaa7ade8f79060b1e57b9d46bd6f448509934debd4e23eae219e04e828d316b77ef5f15041f3945b1a98374d1c47fdfec4e4714cdd7d2391df6670b164805b0a95b2f31d937446a058a8f3a8e968d0da62b8299405fada9e67e001b6e30cc4687120fa759cbb390237cd7acefb0e474dd95d9d790423bb19c390f233e3f8b7739342fb2adfd623d4c780a5d1e702b8efe91e0be39a61a8a93e48a0d730814954a41d472e6395999c828a98d5d9bef23ee7dfbec1c27a79cc8edd035adc5763eae1ede0bf16235b8da7616c4882a6724bfe2f7745dd992accbfe90d1af3e8ce26a9a63701089151f4ca826e59bbcdf40935e6d3b55329d757dd3461ea78f6bb109389b92e41c5d18f811e783779f1dc3a14f0f3e30a15bd7b377c1bcccf621127865f66f64231a4c77a913d2f9f5319028a1d585ed38835df077e0fd0f6101a5b110650992f029bf70b151189acefa1b4584f5d56676c401804a6dcaf7b18d43078089d580eb6632c4757ab77c6c5fe3b28e3a1dd0aff4d00584235b2515971b9644d100f488ec980e1f86188526a37d6343db87f23ec9424c900404a0d4b133df270cccf54338ef5d6e0bd7a2359a0a892829ec8a1bd8f8529a55ceddd1f343ed20e08a0a0b68e3df9b22e1201b1ddd8184e7168e12196f84885d317fa0102753e6dee29a5203d2206fd6eb094b60a58fb3b0a5a59b4cc109e948823781ec9bb364ddbaafb1d553dd4933191b0ad56b7bf3398a4b1269aa329e47646f4e9d97e3aa2fe320efea245db47b63d0c36266c3f7d1c2b51271b06dd995e7bf6abfe861acdaa3534e9c2fc090988276257228c7338209f2cbd77f85b8182150d3287bed5934dec2a6c1d7b2b670716cb35299234fd94070a394868d95c5aa4d92ef9ec6fd05e80747d7d69522cf5d5e4d0dfae512f25d51c0d5a61bb43fcf060eaac8847fc6388377b1f260171ebdc24373a2a177b568f08779ebff6204f2cea49afcd8bb298ceb4f751d69e9bf840b567a1614871d72f5decdc8dc5808c2bdc41c5793e1811b99d3daa9bc4827c69d1dcc4cb55bc8c6366764b96a3114c093892c9e2f1a736f4ed3ef2024360253612747ed4cd3c690b98f65faa23979cb9a65e8122dd30a9c1f2cc3ac1d77783a3014ee64690a62567769cc43252ff23563c3eb4803678edd7a83701412809d343aa4ab428b6a1132b1d559f84063911832be2dfacab5836148ad7ff94ca08afff9835e69f216209aad727ae19ba24b9520bd59ec6b515c328e512e210d6edc9d8d78729bfeae0743e333d731a2b981bf5408239446ba16f37300ebe23bddf746090e4ab57290d2d1eaf1285eb62b968bdec6f5b8bdda4edfbe55cd1d974e2924289366c1f2cc38eadf153cc1666dda976d0fac32285962fb4e5ca87171062aa2a98fd7b447b7271b93abdd28d88020230f973ed7aace2302a321312233927fbcd390ac217a8252a338ffabea7b94051cb03255d04d538e5998c72027251e7f36ade0058eee853461e8e36824055a63d5ddebf3cead8033dd5c8ccea4783675d8deba1cee201dd2154636baaed297786d9b1299b43f058e5649fb01bde625c415656c30bc7c2213d82e83754d43d77b5af9cd2d04642ded3a25cc8da578ccf437aaddb39bf0db269e2e2fbe90723f18b56fc97325d57bb6b8155241baa4a784423fcb50ac5092070a76ef4895209a94f33a4072af0c3c458077be24ddc153449883b3bd6ed3da6e6be85442be7bfd96c0700c46dd79118f67f30d6eeb519323d3057da380fc0cebd9ac6d0299c9ec26f32c04bd8752f710dcdaf2f4ab235f196ad0e54c2f05e825b7d6e1634f3dae1895e4b55fada1eeccf0203d23042111c4043739cbb1b823f6cb7e5ebfa4a8359eb7511dc64ac0efb6a0c6231418e5432123f6a25f4a9f35dadfbdc10f502620e6d76ef9a72f893d76ea7875d909efff9be03400aa8a1e00db7c07cd4fbc844c8b8e86345d49e6e916066d07e06edd980176d4af31d6ab20115b3f20e32f17bc565b2f95f3709d5837fb1f7ec5a0dbc12a8f7d3eb4e7f9f9b6744e4864c343147414b4c104116e63ccb61b5af3f7c5db8b5c05b475cc7f39b888b57298051d029ce9017bde03041abf0c91f32f28a834fa95d60cec9a585c74921f60eba40f13b02de973d9f5499c9b386a5348414d333adce8bf4717d5f31faa4b3e96e91dccf7512980b8cce54ea4be82ad1dbb8373355f45ed6861b08368f9b86f86c35ddee6daa1a336d1c4d2d2658a15bfc76fb462dc0b7c36e97eb16e5eb0773e95581199ed2f7c4c219cc4095d2f8e6ca444d6d4c0754bd39b5494af3d2a01db862cacb1cd2225af884a43e5fa4fe63e5854d3d32f47a8e7af2991d26fff530fe8d57d35ea76a9431a9335fa1f057232f69ad89efdced883e6f8cc23baa485642272c515ddfe4524b3a997e173a22eeb008ba9c16adfa3830980945c758fe92eca8a96b32b274825e2688c11883d138e5d695b10f58f2e2c6931764c91edcdc40d56c72756c1e20494ab26986ebcdb2309060f4eafede1eeababa4d5da8418397a25309d19937dff876ccbe7eff4b58b87a44cddc3c8b1c4f066746036452caa32980e224b53eff0379700a30599aa2372ac4dc081020cb364546484dcbaeb8c3adb6d3ae4a9817dc2d987a690c8eae1863d38d3458f817618edf6416a71b6c30c928d5a6da732c6dffe56d7105141d5941e02bcdd55689892f0e77b9623fb065c17edd799a186f80b686ae5bec88e4f16b05923c1515447ad9c82adca69800a6b372e406b6bf5b5282480823183811a512ef5dfc0b21eb77048091ef023ae281dacdc1ba7d1ed2d9df6811dd5d1c9a1d4f1781b74ff1828a6d410eac1b54a5c251c055ec7f84cf22e3e96cdaefb8a9fb9c6ec823ccf141d2f6dbd1f589c0ec4102f6e91b3f0610cbed643c68824e7159920f52098ae33b5798ab95521f869f2b958691c4a0926ada90bf7c6678f23314479df021214537aa6aab7bb183154b7d8ddfc1431616793bdd541b8d1e1f10124263435606688f200000000000000000000000000050e151c212a +flags = ValidSignature,BoundaryCondition + +# tcId = 64 +# r0_max above the limit +msg = 6400000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 44f2fae55e75d4a14261c55d3b8f9d7ce296180728713a3374dc857bae406918542bfc12db9b25fd3d1928c9927b72be345024145c41d3689654b26e1d2d6364395c150047eb8b6ce89daaedb70d8095263514fa5317af3f6c557a0b91bad5e2fb6202f90183d2e1d545f5a09fd2f5cd5550e349e82435d55deec6424abde2e6cda6f794738180260c45999b51f9aa2cab98694b8d0af27441fc4b57289e7ea07b010c53e9a755ccb9016765990942a3d389500cacbec33eed059d412435ddbf46198e3c747b3f41f96dcc879ed3056b20da470062c0e1724112f48aadcbb6ca84e66c4af1418c66ee6115fe736305ac9f177f2fc8eac53d494d24164760e827a45ea20deae2034dfef4f8b552a0b4167e1f6272918221d4610d1278aa7040079672d2d191bbb19b252f84f0cdd46150d7be832db3fc8018aed6087b5e718bbb7b3386266d122ed0f27bc5b746651316620ccae5543f993fd5e1cc62990714e585878fbf20c81bb45edd5cba6de67010ece4135117baac8522ef59ddeac03ddc9abd91b47cefa3beac2496de163c00716956589bf84ff85e0732ed2073d97c5c34a0878c3d329e99a5a5a1be3781fff22646f1bb83ebc311889a56d6def19b8a86fb8553b36a62e13cbba15a507750795119ee309577fa7ec15a69be34a15135095730ae2ffdd72a1cf6a9bb61b221531cbfa0495200ed9f471ed1bcef9cb8bc5117c6d6806bf28dbeaf52bf2a9329119c5c896449c233c4a314076b00616773b87d9e8aa69c135a7d24c51c2acbc6e58df8bb7b6fca5fb14b13c9d0b33acd8e8b439a8e5d5bc31cb5bdb51712d148f935b8728ff46112ba49ea5af30150fa80a8249a2ccfc99f8b7c897d83c428fb15e6cc6e640a697d8fc6672098aec99630250a7b82075296afc00a15507605a5dc0f2b1a0375b263c53c403883f42a0304b99adaf834b1f2599e22125881d87047b8acce7b5728158d178649cd7a16d912177623c637500dc5b4bd13bcda0824fe377086862bae9a41c180ac807896c1371a78326cdfba763946ba608400d930146bf86efa861be282f44bce6e032bf7d98408c3b4a1e96704034ffba07c182fabdf4014ef2ee8ff8ef7e837ad75dc3aafb066d07297a290af9573be900b68db9b6c2746dc0d2b1e5d11f0540d170571ed530caf1033e8a32beffe622e3d082b3bc081b3c30d8e1dd697e9a18432f2514df6f90b9b42cc2c1d321f6f9bfe095ea7229c4d1825c8db8e869b56a40cfcb924304f8eeebde54d615521ebc9753c95e9831556c854fa163990d5015e0370f5d3e5b4ae7c4404c18ee125ea2fda5ac43127ad07567c44c806ee61a79353152c5f46bd98bd2010a53acdc66df92ee6fc0f93e678bf44d5d3c8e9adc305bede02008bde91dcec639554a4dbc4f6625571cb5ec821f2848ed33fceff30d8728880956a1581b5277fd51a61d4e13f7871198b78ab3107701163da8a30b379a05718aa79bb01b528c187fa91466588961f2e58db24a2afbf0226359a4e6c3da0fc8cca4be25f0abae106eaf8e1de7ce9f1b7d24ef25bd41aa98a99610b016f062d89f678142b9c27635cb71e9dad2ec332350f76a2b507c8fed9a17e60e19de2c1875f2b3f4134b903aab8819af224fb7eada88c67875040a07699d95756ba929680191ec8ec3efafc6fedd60ccc1e1300698bf56afaa31c89d16341f3673fe07880e7009e1f5173cf79cf0364f0833a179b5886226bf8f3a6397d8b499e9c020ccfe075fee18769fe9f7765ebb6ee630df990c579580f3910e704c73ad61512a9d47507e8bc61b9a61ac006b751882b20855e6b6ec7c05e303ae533623bc0a8d30f795ae93f057c7e079688b792456deb50dc7ba9da0e141cfc76ad0a902bdb1d032d06fa47a817d43ee784cf0ca4b516806e7631e40bf0671b3bdbcce7e2ed7ecfd994e190c9e500356d60e1c73850cf5b6bcaff9746b3025815bcafae19f20468591b5114d465a47e7e439ec0741eaf533d5ab5c57df0cf745931ca6a4051bba72dccd4160bed42fae52ba39d7ee2d3e2cd20fd299707e2a6228f94a5d32224405a1dbc5f5f0d269a0880cae9f0b7d5c0ddcc01e568a03208dafc9f54e715520ac51eef04d8c4b6fd5ed23dbdc9259029129b1b5707bb197920ce1265bacf2a7a7f81b77a017976c3a51b169eaf6f77fc68ad23e2edc7a07e7d39908704123b2385011d9e6b56eda29a8bee801228e3677241121ca21efab92227475998de40d40fe76412fbdc35449255843e3e6ce620ca0dc91075fbea5e531aeb9db6cb5153c61e7f55681eb46cf49b31b2efecdcdeca7539e8b3da30519640913672164575cb1ce89d2afa22da971c371f602070e2b1c7488f89239918a5f0df2257e8206ce67106d66f308cee488974e56ff840e025140014bc776211d632413152fd55b53749262c477229da729c1e56f885f61d1afefbe11f8e5038a5688835f3842235091f7bd42b908097a8106e4760259ed7464c0dd591ce48e51397bda9f3514b443a138a115eadc2be7f08edb4c9dfc9f1f065430bd9da0849c45dce861bfe839954131fde47e059c5f933a4baf982e0ec435a8230fb3eebc9ecf7ea65d0f376854c331fafadd45b07ebbf3041cf079300a9dee19a5854e147eb9c88300f5580c54d5801af62f9a90bd91da9f52cfa6d01a08ce390a179bfd6a0d3ba8e43408826cc36fabe685e9a1229343e5303b108683a75c9a524eb776336d0687e7e62bd68f4d425bfe7e4db1dcf09fa4938933f78387e48fffd47669233cae1e8bf9d4a2c63444a776595a48b3471a67990257cf7a0417d34f553eaf423f1cc206a9257f1aed004bd205dc1e7f660aeba09dc1f9991062665d38c0e2a4638c2bf61eb459e5e4725a0bbccbddfd66b239b31c62c948a485c8041ea3b6e58a0090bcc010ceaaedf7a2e8cb28cc23c925724f099ca14a33f42ecce7584bdc073e6f79ced17b8c113075f1604f31362893a3b5ec2a4953d77b68281c001fdbc6a853f4fea04c1e73b9bde7bead3aed35ef68e0ad98f902d7a7750b7461ebea8c2b7e9246c49b585107e979dd66c01969c65d34c22ffed12ce733d3543672a59a06854fa81187f3a0b82524686beb3a84c480aaae6af5a43d6c943702e49865935065f972c466e2e33554615f242fa582e04b7a330d84d5352b5a0c1a28c8521eff8baabdff6c35450ed9609fcde9291d0d38d7cc23d662a6261aed3ef34cc281501d9969425a42f050c7e6b0b1f3a549d7ef86cd1a4aac3a233ecc36cfc2a81cd69d951c31290eb73c71582bbacbcb99f3c29fe15d28887349c9aa2496b48ece89d581c697590efdd60351def42770f51f59d55bce58c5d2886d2ccc668237f9230a155be656b2ba71f58ee343317c7f37ce47f5736d99a056ed3e88ba59581b9b219b7e972b96b2e03cbee95fe9a2ef42694bd93e7e9145ebb155b6b9a7590058eea44d1e877254d55d052f9979ec0df8b5b8cfcdc1c858ad12d4495437a5c8247a071997f95e01943207be1ab6069e7925ee2e6e231a2f133177d0a91478c37c19303097971af66759f0eeea69028de913edc1ce9cd38edbd05c3b7cb393ec781ee7263652cdbb3201527501b60b7ca443cab817e829eafbe49c354bba16c1a597703953ec059efc97ca0f1bcf4bb2ba59e5bfbf64b5cef5dd1a7cdcfa40348b5f8979e96371bdcfed5bc9a5036955a40ebba28d1c5d98e592a046320e3ff7e2b72d25db20fb2daae4e580353598ad6673163fa3eb95f5b5561a38fb1ba8fad671795e7f5aaabbeeaefc4a7962475d8b7df0fb93c47aefd46d88a25397f6be11fdc4014389121c20750e80168565771dd932f67866387050d0551664a16b350e4761d6033e4746d7a5cb07b65ad4c13fc7e64a60ab9849ee9980855106c7706253551072105e28ee78b6e19e9f9b25bd39493736a2efb2cfb7416b84b6de23cd559663c2eb8b223f8c764ee4298c75f7f068824c31d4c19cfe9ddf3871f7160c87d9565c5d67e9142f151a33e2f9ea79702c6a7285ff963dfaa68b4129233daeb77e0aa2c1ccc75ff7a35793b2fadf60a9b1b9074f92eba1cff230c461f1bb486b3e9caa0b617abac2d963434ebae2e8ba39b238a167895430f5c6eb86d93d678ed1c472c3f3e9cd58f27f24d124df2371e98fb08442296592d79db40a6f388f85c050e7c434630ba353245692d549166727c31955ed60be469cf60ea09909f92ca87d5e77567036882b11c04f03bdf89d397513adf17146d52802b86797815316c2d21d0b1e95e671fc87e067d2e7871c28257af1fce14533d30dadd947ae2b1b9b78eb56278340cce5ca9a17271e1ff03670d31ea801cb89d6364c0d6b671d190d75c7335ba00497bf43ff1de81ba5faab2dce55f29561d13cd236507a88f942e6feb9e77a552942f6bb53c857f192c126d3f1ac53845f54fab0a3114f6bf3dc6dc251d39174c0f732dd9c5301cbd39a2d7fbabbdfe0a1049532cd378c9ae999700ef370a49206f7f7b208c7fc7318056cbba332b9c73e0165c97fd25f73f156750448c5b361c30e23229f2c325a99fe19df3d884418ba1d1f00708204a778ac9dde7224f687b7d98e3e4e51a244e7ba5c3c4f00a12182c335b60da3188bce200000000000000000000000000040d161e262a +flags = ValidSignature,BoundaryCondition + +# tcId = 65 +# h_ones below the limit +msg = 2d05000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 1ca68ce5f7e559793f67c657ac20bb8f3117f28c1ef02b8b828031fe11b146ff61ac67fee066d1a8b9a8d8219909195136ac9afa30909309cd43e54c18f08817c526bb135685d328549f2d0f0d8c73a45606f93e8a17fa3528a1ee64377165c7b98f3fdb6a32fe920c38863d913ed398dbe085a7ac406da7ae2baca87f922a2d5b43601a70d3aee3f182cf87aad2de0e104044dab4fd19e7121ff5cb459595d002f4882753159c7c6421ea7e6f02746f38bc424d92b8c3b353592ca7ea3703d27d58f2df3b23875eb7206b4f983873fb230979083b70ec1e5fd40afb5e3887d05e4eaef8f833339be930c2cff359cc4cdf3fd6e7caa647f3478cc863716f01310a30233bca62a32cedff973c8fdac419fec93342f71e74934799345a6797e85a7c1ccf660fee8ff6402e3c37a70771a26c9ffc9411e745d6962011b003c19e8e267b303ee53079e23979f7b6fb4b5b5a3df866f68421db2bc2eb29fbd6c40d5d73e7570c22b425f5cca416af86f4911766694bcd7d9f55acee1d9ba8f6ac07e2b0d1081948e1436da0af1e622e95e35a2e39065a782e3efa36e0b130b4f22b37ef2670e6b5797826515ca74a9a1ada669cb6d43448baa8a77a9e052e5492fff23ea68698a17cdda1a4cfea63f9c186f35369e57a6f54a161cf569cc75be9347efa9c94a869461ff2648ff1a3c984c67eaf53041edbb4d27c80c9bda409039303052639062dcfe8c7d8066995c49e5629bd0ee47b63b637b14f7ab0964f4adeacd6b139ec3af6530b6147741ece4ce206f9a24d8254af20eb933324b55e911a43cca36704427b8b37b5deecdc0da5d1758de2bf8f6fe639448b45e803df46427adfd6b3bbefc9b9c64deadfb60fd2fe6788f7d65f98aabc960ecbb8f8ed9593ab0a6a2c7d093d74ec17710ee5c98909e529847d7cbe9a69f54628017c0c2222b4ac46134281990b9bd70ba991336de07133ae25701a91306e0dccca6391816917698aa67c39998437325e39ef1f7e8eda0dd330671dd6cca57f3f99c162a54bb23992e44f3b6310de3c8b3d309e203e0e47f05b726d1949cae0abacf838c31fcbf449d7f9d6413bd911c70a823c8940aeb59b7cbb2c64c243a0fb8ead3903ab3186c6390b2678eea04d18a9405c733035ee58f79f85182c520163e7e0b4bfdc03d60034dfaf61644c32bc4cc32beb4fd77419ada027dda3d6f30bb3acf38a8bd4cac6425783b710d5238496331a04b6ad5646d3ee663ea0e50da36b453771976d2e36e0be3d10268459724bbba557505a7e804a088e82e99367508eb5e61919a8ff35eac38903de0529571dea43676e3d2b769f4baf4c1226ed921561817746ad04ea9d30cba41225965f1f29bae6b0bb3e15a59e82e50c0211f22403957d86927bb98fb48ee18260df408ff629730eb5f967bf25af2bf4147be41a5da2421ffea70796b77944479fb15a0890785bad4c0f86603deca9b71b72c6b75879b44f153fdd80412cc8c217ff04f4fb9b8662c9d3474598f806d71ef214784ae54a537c307cc1373161ae471034f70b49b6a574fa6204d7997ffa75a78ab9923850f3fc4419fe365dc4732ac4ba87db246c90466741cab4ff9c3d39cee643e006f35b76ff5cbfaace83482d26dcfb98ed007b97f0b80849ad04e1d422a8c86120d1d90099582703402dc3d8bc192bba4ee993dbfc3b7c567cc6f5e761a5cc0ccfa92fc842a31ee0ce234bcd6888c8ef81e7bbf40956e3855507e2544202e66dbb476faab34c635ff8c873bac2727b5fc4730bbf33c5bdd2f3391181eadf5f54682e13a97f0a06487232da578c89960ad67ff424215020f3fcfa25ec55db2b2d46d3646ffbd9354dd14008512e38e523285e426fcdabd8716883ddfb8db0dfd4c036b51625b26a1469fbf2282b943500a165b6275eac29ea4142afd22d647a4ba6d458a65292a64e21afa38ee30120bd49aa8a0c511f2c202293c717259a07549b12273566f3bbf4aab1ef6c076b0e68fac0d3e777e1f6cca2e75d68fe5a45e5f045b891cda173fd32d54962336e33c25a5c3b03b772403bf8ce296282b779fe439396cf995d3f81eb6b069edf19b57cb1252dd611ffa52eb0023b553b343a028ac241e4e9652f7d73ca9cebd3e3642640ecb9f648fd1cd1f6e7701fef3a551bf60ab3d4f59315cc2b0a9642e5f4e453af47039dc0c95778f2cadc0fa217c3423c2063eaab0922ddc59835a4706136d6e2d0d25f7dd8bbbd7a939e1afa2cc17194430e38b2f983e5e058c9b8baa385ff584846f7862469f5e3c71cbdcbd726ed45b92998b89d83c6d4731bf2f92fcfa454bbe3c7313c9dbbc65708ffa3d9bd8b43df4d088de3c911cecc5cdd415d587310a2c8d3dc10782458c7205419028fef4d2adfc14a55fe7e4507351044820f9d40da5077a93e923f14bb1d12181298c6aa965fd76319052d148a357b8d27b240dcc143fc579889ceb43b8e7db8deea958671b18906c01d5d8962952152eb8245f98229fc2e0477541faa3a57529e2328f27614b7b82abd506d276495522fc21b2f840e34f20cc7d605a986632052ce8e47889667edc1e4d009f9f2f6fc6e4f59ef42dcc97ec813b36c412e31856478e1fbf740ca8933632c62b02d2facea1c5e7936d3cd7971ce35227c5138c5a57e032aab24ae4c6b05ffa7d4df3181fee7b14668f07aec969300c7b0b1216c17de4def301717d4ec65041d4656b96ef7b40fa4c5113c58e265a2c02bd64f7aef278a6f5c57b2eb35fb69dbacc412cf60e06681f892e4fcd7dcb3b6a16d38b7d7b54815ecfa9c1a0bb46138959bc42df552110f5f697de1ace36c45cee32ebc9fe8fe8cd83e29ca331f85898d55fa4bdde5cf438f9bd0ddc711f516fb0e79510243debe71df2a2ac140c19b945841e8ff6baea4ce9dcf038b5a0a19e0cbc90b3c4f3d444813ac7f70b0624bc70a0251675cd9f44b30b38aee30ffedabe5aef29597820cdf2bcbaaf99ee09f9b18fe93268d5c74f44dc77dfc721511f55295e03bcda9956cb74a9bd85cd028ec05b4d064ed35a2ecfd3f674e34cca9f972824b1d7d3a1caea6fd6b51a205fa85de4b44a2f92a45edb712c73a4d10214623e8cdf3b9880cd25ac2dac328c3f54016eb98569ece9dac6f170cd7daaf37d41e6c35d62c3db46a24f2e6f5f237314000d0ef6825a9dc987379d9405547eb27c6d631fab06d5a039d47dd2b1dc63a077b4129f7610458cdad28b849fc68fd5f0c6fbb40fae533a5d8b559355b1db112a5203b321012b126fc6d5181cbf6f3ab8de483824ac07734370701b08b295362eea3073efc3a96ac9a9ee3082ab49afa034accdfced6c16c8d6a7e88b913b38468fc104f0f458a298f0c352b04eb664b1eddd9d76f308a9a29fca3f3fb730f8d1d48db53c23243c8f84c06a91acfb86cb2dcf2b1ef3a0b9b2cb1f4909f48e9f9eff93807bdc21a5a0e1e7ef1fa7bd2f9449eda1bc9b86e8b4efe33221a436a864cb272db8a50ed3696634ae458566e562a1dbbdfb20126c3ecbcf403816fb49adb749f51a76acf93869101c81d8ab1292e4e528ff30e58d4ccb34369cdabf927349fb8ab49ad569eaf0212dcacda9e1ff85493e6852418c647a4697409427becf65fc0710ce9c15ea9d2e799b39674afcbf2097d9fa9f4b10a874435cdcf2137d177d764c21a7ebcc303417a5ed5b94d0a3ae4be16417ff79fe1ae01feefecc5cef9ca7ce8cbe1287178349b33c40b7e7f08ab913844cc223951957043b6feeb1f56015fe5a039ed8d3f07cd55d5981e9f6609f2506dca0426b16c7008f2b25a67aaa3543bb8610354eb214b58b836e74090c7a43a9b47b91fbbc00a1b78400a42a1122dbb21afbe299b619abeceec31b32195ed805dfe64588703d7b12387b55486b39d909ab0690684471564417de34ab2e02da4d3974cfc7e9e38304d220d0a827a3312d085195163fbb712cd0a21cb151165bd98b77978096c1e6f38a73368cf7707083fb107910ed091d659af6a4673f9a155c8a402bf1c07ed416fa18fb66d6ac92d8a4c2d4e422b135f79ead28bbe234f818892b76fba8ed61b186b3b2cd1c773795e91e923c06829fb969926290ae2fe7585534e71c0c58b3bc662d70d537dbf06da794401aa121b4dffa36e574dda73e743c6177cb87bd78d6e0f98b081188d14050ca3f49e330cd1765c467430d197ee509dd8a000168212c683c6c7f075706cdded9c5a9609a6496280c1978d48e845c9693832768c47d9b7d1650e927b694a74ba50f36b924073f71f51b795f7822475d5632b80155264dc892effd97f561c1670d2417d5e33e7d095a8e44d8b0fc57d9ec693d12c277ddf096fa00081b2df89c46b66521295c3428df80915fa7e8f10c0627fab4e5d145e9fb6628bbd7b7cecc4427e73c6b1242fa7cc9df2731ae2fba2f9ef0d11ebb4e718e0a9b8b73b7bd5d257d22bc255ec751d1b381fe080e6c9a3e1204a1123c461796272ddc3b41f8fdd444358323edd11fab1bc5eda2111963ea999d743e6968f158d430fcd9906c5096227b7e5f377d07b2165476faefcb2301c03ea6cde213f7e165913f41fec6753aca94c0f365f60828c9bb9bbccfe030420212e3b5258668ebf1e393c5a7418292d7c819acbd6dcf109233d455a6075001416647a8dcde5f6f8fc0b161b252c37 +flags = ValidSignature,BoundaryCondition + +# tcId = 66 +# h_ones above the limit +msg = 9a01000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 4e4f39e0fa77c6d67f49c759b83a72c2289fe57fca50c143c9a831a8114d41edb4bfa0856c62be9f05fe4f3672fe01549277f8b0da08e940f9b7b9d3da74e07fb7cf8a953fcace4239609a492220cd8007966c4e6ca5e8b418663fb1ff486d3ef90333c470699b8abef54c3fd4a25aa34d44ae75c216dd2d3f017082fb01df0d5ca6a85b1181484205722ef118f03372d8dc119739303aca686159911e165a611a678170a5238dc9b5631df11f2bcf3f7e5e8750cb55454f25a8a6e3efaa3fc66c88ad5247397ab153af4bc014895d006307e9a92dbb4e9bf78993980c525f2313d188b0f55718da34e701607d7149eabc05d952c4e12a3516d8e9c1fde6eaca3cace1e76749b156c46f40265870b1ea2fc49d66b600a52beb187675d1b7d6c40445c678974625dbfccf20ca3b65eff29d7fc3033f3af4b2c29494f18515f378ab2f155b392da15dc1f65c7a37ea2bb2b69eb0f8f66a6507025811a2ce5f748ccf667f32b9ebdfa37b3f4a164534de8ca9bedeff425920d38b0514c62068b92024e014283ed633f1820d2851ccc8268a443349903cc70af04ddc4dcce2023b6c0ce625797972883469b38f7754b576595a97910ecb81d97c801be74e7b8e7eb902c42cba946d855cb9dda4c140d4ee37504dbed3ef92ca99572a7857f6383d9ebe3105c90e9cc196d5c259b869a8e8c092432be67cd7b873ea408d455231863c5f34e38fa194686efdb23b79b30b34998f031179fe8dece8e79023cd41f0e92e18fd815d7cdc69dd83d26ca7e850363c3369cfc8706daac31622fb7c419a37d4884edcc10eacf0c4442c2bb47473181d4cbd404ab63bf840676caecbc89cc17ce0d14849a022376ca0548ff552d229c92c05b48c299d258644ea7b6462ef6b5fe965f6129ad9db2e95eaa14e28866d7eca1c90bdc46bc8f0da5868243a0f5a2ff3f08baa067c03719da8a3bc6c1d14a871c7a630dd831911467e1e6f19ccf0a511378319976015d3a3167d2570a49c50fa8d17b1079f092727276a311fe9f0ebc005739d8733727273aa5267021dcdf629321364fcb46836209c54d8266dffb01abd69824245c9a7f6a706e1d5deb23a15330990ba1a8a7032d4efa4de64bbe9ad4bfafee9e23b62faf8ed88093f5459115fc3d2877028fea349285888f84c96a1fa415fd1da7e878496e910cc1037c0a482e65da9209f40ac89e92358374144d0cb729279ad80e28982617f5ade2dcf380be05709c0de1e0191cb873e35d98f7fe09b38fc2430778d44752749414bd554d1b0681e98fdbbf9bf437b9e0473eca06ccd7e0cb4948d9aac13ec245a850b0506c6127830c63a75685e430318365f4ff06dcbfb970626ef2dc27dea0b0a098b2fc5a0ea02fc67eb3a9696ece6c752fee088d8e71be6ebd94aace3c78a9113b8e10167da32230672a2c311f12553ffbab9436de67657725e96dd516c9b561c3b272fe889e8ff2811b44426d26a0c42c24349aa22f85ddc863d32ac91bea62f26afeb350c81439964388bbf21415226b368188e2adce8ecdabbb3e38b1fec29bb55728cd382b3bad0783356c739f343c39afe5a98512b3f1c10058c587c1bb729417c26c18617f96d2de956de1d91cae81e1eee0d2011b5706c3b07580eba78066aa2a812461fc967e04f283113c30f6ced3a237958ad71c9572c8d6ecaeda361171199953fd7bb73fed1588259870adb84744e825dc84613daebd982f4487b464f128c2a7ff49b259c991ce34a013f9374568fee8e357de35dfa5cb43542cdb297d4cd886e0605c3d1fddaba262ced5d1edf566cce3840ba338db4fba236ec926a2134fd127d40e3a84f6b158cc6ce48f238c078a795caa391e793716281c2936397a50cd417cdf9c7fb32b5a8b7690e2ae2768daee33fd33600ab6d1eda8c37bf086bd3c1be7a9a2d79ba6ef635f9321d8d03316a8dc85acb4ed7a39d7cb30a76c04c018fc9c3c4779a8a67e7975c7a45018f9f177575ade5984ff4f7b412a18f1c24402e9bbc5564ef98a920e00d4bcc9e307e854aee1a6a2f421f833da3d27b2e8a9ab7b9f1061faf105d13da2359e9d57f47fbfa56e49b372672de5b460f3c43e9d32a0e3a272fe3efd0dfa4740539be52d4ec7881d9c7915f8cda2b47dd520ab5c5ba8fac6b1888b65d1bf12c976051743d6a506a5d4c550262b23e4995cff4bd6dde88ded5fd49608e791ee74c2c62571daf881ea9e318f96447c0d6d3ebd42a1b4a448e66359db4cd875885f91f7cffbcda373af5c72c67c9e3e8e14b6e0f5d209980d4d9be3884878f7f97aebf74e86426bd8b1c11ee5df701eb47a86877dff6b7df3d343f8a3a24697294f15de1be9c20092ac2c53d2d4e9b8011a2628416ebdae96237fcfc980d69265b03b86e1bb6954ee19e4e7598b068d131510a4e13c38d2c763c32f6a270a50fbfdda0e50b6df49fc85d3b1012b374a1095479a8d330f6c4d46940854daa91d34ef96e33645a444fceee47bc7faa680a2365eabb0c7acbf73bb72364b865e587607e0f4e15162be599703e22f782b15686f32ae096ab178216abdc687310330082a057286235e97f0abfb5b00443acb5db755fde1c4d46a0ce5923d8f7b10b0c4cd66a887c12a02ddcc022e261cc3f6ec65f1d6b6182a19a2c15f412d0a364d01b5eef67f665d42a6087d798aa94581fae60cf86cb9aa90c6b9e63e3269d78eca3f269f382e69a3bf777a420ce56866aa82ca5c4131b34a7c2e4cc8c685368fe8df1ba500fc6f4149ba21311409f517332d54d10337c762e0806d66bbd9426805521dd4fadde9987708f7e5cba96e9afb256f729ac9705c8f9069f77b32f5609d553e1357fabd6afb3439f99ef4d23e1e4e65815ae079bcf0dc408d229fa63b44b50b1075ea4d414caf46654fc462a643b4ed38a037e9fa9cc56e492584a69681bdedb72a48dafea506b19e75724d54cefc666768a7b40c015dc055a8b058167965efdc7122b25807555d3b6e0137bb98b5e16a72f4ba873ebc32c036d2eb9092b64de62dd95526c4900bb64112bb0703783c416be33d3cdbbd441316d48226d63e69471845a7f5bd93ddffbb0bf9385221c3a9d80d89f2a6f6bb233f3d0c604854b86b79b1d4cbe50e76c276b58f25ca31e415e7b2dac266dc3b073f1d6b00d500e54981079d66a1f314653b733c6db19168ebef304e15760ef535b45012fa4ce3eb1ed610a5ceef680f8700c174ea474adbf45410df72ad777c72255b2e77e467453da217345354f3570050c178dba294a95c5bff31c95d24fc757d3ac354cb7d7c6892e8dfd9c0062f3d3071ef316c116511d78becb255d185c81f61c0e29ce521928ce3c83c9530d53c7c6c0535c9b384b090fab020d23c199430889db214a84cac3e06888fcf45f19ec74552e6f45380faad1380b9a7e5413d9c700c70c6ffd003f3b52f624e6b04948ea99b3fb129c2de24b47a91d910f35c24efb9f3d788827b74a566607846015e6148b4c76355b51bcdafafe1e5298ff01879b1e9ebd430681c8c82f194498e78fe3537c99888f11c063997ac36d1a00a38d51bf5a6101a2322f70dab430ea99d14ee833a0859d5bb0da477afe4aa3184e480b14e3f6a362ef3458da1ab5728994ed6c8899dd6e5a9c78b38f370fbc31661e37d402310a9dad865176486144c451aff71715378432604d9194ee88ea6f3b68dfa1b80b0a6c54a2b5cd4c0b4b1ec7152c680483b537313c4b6035cd550d0eca0df04d9a058dec727ad5675285fd1d07a4a7bf36a330ffe620a1b244583bd3b248be735bed76e4f1e47fd1f81d6ff3339be6d9fce2afc4ab2402f3d2a9907c10fe4207ffb0a3ee49a3ec7b3af256aa2d63d69b4dfe69898c858bd8de9ec4285f7de3320c18f669574d6cc9a08cc8ba745af8a5f0086621928a97d6c92103d34c229f6d8b1a36e8e2e86a8dd7ef4b039c1b9546f7ebdd5f179a94146fe3c9c695641bc51db41ff0b074f467bc07578fad564269c65337f6a0b8af6dc0f7640cc42fc8dde6fb7cf677ff7889ddab792fd225ae4c8995dc97afe843831e8d48f419879411f5152cc6e1d9c0624d8b1bd6a4b136d67074606ce5ee30b0136335526eaa352df9fced286530848115509e82a8a4a3d929a5a242415579d97995cdb20c737ce4e63e490860e58855d6574ffdceaeab8fbb6aeee1c73b7371b8d24dfa68c4e29c84a28bf78b2ed283c15248a13efdb4aca13e25f69594660e73dd847c7249d64dc2f1ec51e88c675fa2bd5b77957765e608c3e32dc991a14c68fd7e9bbf17e84b5dea7a2ba9414851a30994483e0e53ac614c72c5b5d0407c6b0dbbddebb4fc0d0c195237f9d2e4a11cd10f464b35dcf9bd90bdab7f1ce583477dbe31b0b5aec91ae86a2e0cde82261665c570f0c055f1391e60669e7e7905fb9bec5f0da2485bca04837e683fda337a302254f80ba295c96af0aa97f673efb3073b581399d76cb234296c9065f363a5e72484b7e93438055ab952fe2e55a23b34acd34957a682ed8f17b0a5778088c39a3dd8489823c8cdf588b73cf7c5010fb36c590c99fcf30cdeaea2f86fb8375aea46b60dacd83acb0b1517589f2c386069a3b6e4f81d445961646b90bfe6e9f6ff3f4653658d1e373b5ad41835848cc7df0000000000000000000000000000050d191e2329 +flags = ValidSignature,BoundaryCondition + +# tcId = 67 +# high_bits called on the edge case +msg = 8803000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = 93d46453ecb0ad7a3e0288445607fc4fc6704f17b64fecfbfc183de4cad5c86da5b1d6c13fbbd1c1f8a8818dccdd5b075f9470e83cfa231fa5b6036ee49ff80b0fb7655f4b7f84197027c868a4d8fdfffefe3317c336101c4749b465325b45dec08ff915e606e7cfbb5558e95ef29b194752f50d7a5b11a14d131b0c9af6dd154ba49200afb1bae5b9c0ac7fb0297c72281d8462dbc89cd5b0d66256bc942905c9a805fb14b8c4931550ebb70ee04174784cc02fc8e97b5dabe50583d433d11518079803c6d557a13187cd96c8e84e8801c11e2666596f055e788deb0a713862f2daef6e1acb60d83e39003417339b871d27877823493fd360b27336eab688a71d4b0bdea6641b0b0ea1ab65fd4291c380fc76a75dc7ca4e4711af22ab5be96a2e4f301f705ff033e3e8b530bd8194b9cad4f54680eaf9abf0be7af032a2766fc75396894b2f393b1b87af6d1b9730d374a5e48964bf1ec6276e6ba4554e2f6114c04a1489990c7901b28ac94de8c61ab983319374474a2aa8a0e1b5410fb952105a5cc0ec9b9cd7663e532bf787ed992726fef537e3bbe31ba835e0a0ef00398f7d88ac2ed3d59a99f9a6cd49fea68e3a611ed1600f738ee199d3db7ffda3c1873dc9a0b1ba9b8aa224cca56460965a9d6c91d58de6c33f9665df62f4be77d333c4d62b967386fae73830389c71a563ddf7172b68b1faac5fbe64e06b53efcd058d4a960364fd879eccb76a7674a813453cd48868b9fcaa96bcd5dc815ed688f5126557158bb35f2c6a0e4ff4c010a3afb6a4122cd3521c3d9e3c717c79c8062d3fc24d51b122d8a8714f9ffc07d4bd8d0e012d7ea9dbdb2427b0ee12d44367125e63a275d70b4f5ae5d088130358739cc31c3060ddf91c3cc64957c76d451cc028555abd5811fefa5a10633cb0d8aa47a8b6718ec44b1cdb06a35d6ddb332efdabca446dba302e2c7124303343eb42ee3bdecdb894c1768d1680cc98dd628067fb39cb7d67a00784995bf5ea3f8014193c7a371dcc55ba5a3b43d3f2a2228126856ea0d97c90b6081a45491c3c8e20f6dc2ffe331496cabc3619fe86e557228a7dca189e7a3cd04e961616643bdabf6ace94f3d5f1e8429d115b3b8c840245fbf48d0172b214c0386fd320dd1e2580d5f4e6cfa9d4928431633079a90f97258418ebfcdd0aab960239ea2be83b8a057b0548022bd518661b703835e91da0cb568a4101de68d5787e31e285c335e637f83eab3953ba292244286d61e06fcb961e319ac80d5173bcfe7128dad75e2e850085be27356495b28fdb55313d90c4807f6546231fce0cbaf1fc6419ba60695eec63cae97957baca1756630550ca14b56737a52de135eb711c0a1dec9e1811908ecf299198387b741f904967404f7f8ec9f6ebab878caa4b664cb24c53bba4607a7bd6e4c4db5f9c8d712cbab6a506d0902764bb44da35cc0f0663968b3cf5bf92f83724ce08d478a66ac0e430c42ec47ef4de4a46e7d047450e481e4d8468261315c10d5bbd1ee7ac82f0a63a9d4ba54f6e4a367de6b05a560482c8826121ccb90f68037a96c8c30e41f1a96c4d84c021dadf1315c3a6f80e6ef7d26b5e4e87f5436347169d63987c022353a8155670c5be558544ee3ffc3cdb717bbd53edca18e5ee0e5646482ed38f790aeb45bf89a40e819b14d535da8b12025ed710c2f2faedfa716970ee44798de2932946018b6d80715d6f6d7d573b003b576cbe2781ed12984a4171c00d5f12cbf7e73d567cb8d243544cbc5c7921b5a89c0aabcf1339f99671fbe96591f988a06f4bd15feae56429878e40ed8f1e0e90457f1ca21bccefaba6d30709f40508c47d78c72362d5d96a279406f10f975fe70872a4e214eaf3ec9ae5dc3b7bc41e27b72da8f6824c259534216577bf506ad45976e84ad4ed9d5a4f88e3695e2943adf045b91a5edea2410ebed5d2bf10170d3a0c392e72e970c715c0216b97ffc8fdc9089a9fe1e4f4cad9ec4e4e589fe05eb5ace4083805f2cf936bd93b6410138caff44c64be949fb7acc66284bdd8781417976f7be700bef0f78f1398fee069b14e686aa985aebdd058230b7684553f02a1e196ad8661759e45bcd1ab75f8d3ec95602ff03e6b314d8c363cb7c843df92a3a6a355e29a2ca881911b7e01b8e8c40f7395a5207650b0f44bf11b1269b8b0bd4b4c989c98ff0c529e0a3b5391ca25ec366e39fc6da4c474b3ff93938fa064b1a30a6aa56a717d5f5bed2b3cf3d2270819a8100b7fc8e750787acbdf008fcc4a0deaa47a62084c3445c75cd97edd1e4012b0b76b01bc1ca8e5738bf884c6135934304bf625eb8a3ccb29087047a0834943a6bebff481994779c7f6a37fa8140105e849696d922d3e7cce3535e9711422dc217f5e7f2c379d5dc8220a5006b56a87079b1504d6628999ee8158c73d2c101cebf695adb5c3815d9328255c5dc2efb167b36b1820abb79f0eaf4fd84580ff7c3a8b178164f985f42f0dcfb728fd42401a31a2ef2ebd9a26e6832623d7d28d26d162a21c45889253f62a11a2ed59414ff03c27e48aceae70ec4629462842626d7f802371fcd7fc1b97495e861c7391c773fcaa2ed087ae8b84968c573f091ba37097008d6041460986403e8e1d2e44ba3afa5cc88d48780aaceb142512b115d47d7e5f9358678c99d2f481d5740b327555ff41e163bc40b2021d441e5b4ca87b02010a454c6f2c9cd1970cd3846d4c8021ac7028b2e94b3a9af750e76ee37bf4f4ace83b244aaed8c1ba134500357b96f587bc1464cc2052b03634b772920da0cad300ad9de1f53c8b8c373b2e12b552c4410e2836f3161fb1b7c0116eb3fd23fd632fe6dbe2e9999a3994793b713d52c811403c3b9e0f5d9b68b71835e9dac66ab9437b64151115bf3a8af2fe17de721310b459ecabf6790096df03c23a8165cbfb484dc35e0e14ea64a82bc76b888f6bbce7d29741ec435aabec2b9ccea7b61197a895b608d88666c1ab1ec32424bacd2c51b0a248ab18e0192a866c7de1ed43ec7e7eeaf300ea40143af6be9d93bb92bd0ea5d9600f99276de5a23eda8f939ec173a141285b0323551137dba54c2a46fa5decf94158646edc72901fcdf86beba1a8715159f61ce58eaba2fd09afe8b533817086cdfb641f4ec3c079cc27257688d4b1a3dbfe0a0f53e74384e2b89c774ea215ab444a459b5f9ded9019f57aae07c44eaff21c7928ffcc621339badbfa93962630c713072c5efcf52a7f2d09d4f164d0b901d34c37dda11aac6b6a93f30339c786255b1e18ed055121a5b52b1a0afd76ac8d4a3b1e72516a8ccd39cd035c11f676ede7c87d932f1ef99d3b93a79e7edb1923de83498c94db1775e9560753f65a34df282ef215a18662f446e1a80a4a64380cb4991aa5ed8fd1fd24eaed4ec91536229596b765197c10943b4dfa30750728f9b7ec39b798e33572da27e8b2bdc5a596946e99963a1e164085cbce5529183159066411cbf62033b41b2c0f59a4d771b4aa9a82bf781a384a370b73b59c8d64450b8e75ecde8c7eec2ea52351711b88b7e462dd7069c2f3c00a0656cb3cb5cc9338e2dccf2e0698be77c19f85271642b09c41932a0a54f60df6093aa41ba66734f0c91d958f9798169b35697ba42db67d33b9151b3f176fbff73e73b4bcdd9f2b80234e20ca079a0694977e6e150d16dca677f1a195348942827ae2a32a7fbb891df99eb03651ce7168d8f26db3c6d71ce778fc0dfe75010eb80612908730672fd0344d99a85090e78e454cc7edc760cb49b672702d388689819f55a353bd8da92e17daa34097c1cbc4574a243efd2dc908ddab79d7cb33ee1cc7a0c3564ef545d100bb6ada9d26bbd306ec7b543e0bc2477d8a283823b65b6a91ead38867bf83ac3643be995b38897307cfdda549a9732b2c3ca88babb8dc9c3b59b208a596b57bbff42c586b97a0e55ad9025f6c421b19c1ec36b436398c413ae55d064a46e2b97a4d475170666f6bcb7d5bbdcc2a3d28be3e5a41abea942ae836487d7325af729116a3b009b47a1efdaa4142a054bcb672951087891aa3af203f0ed41efc9422753a7b07ecafe4d9022e7c73893621a648d7dda02181809d7a687301d156bd90c3e15e1a746b6ce93fa2bc2d8309b8135a95c0d12700da6eda1bac9ea1663446cba9e8237dd019d7e016ce0600c8f1cb435a8f4f52deb8295ce00a07d3a32456e44bc2128293295e550e816069979fc379da0a44d9116b7e6a1ffebb750f2d7f86a27d6d93cfc739efadab272c77a595f6f74318d14fb4e15ac8ce9fa0f7c72ab7720af4f3da27bff92ba62fd7fd79d96a25c2fab26034e3f331db56add047c8840933b53e06a0607bf3dcfa4fb3227dfc8a33a26ec9fe03ffaa538b6a8ed9a58df01f0b62cebd303f11e24fdd373ba23adb698c6745c41f57cfc465d10aed6b08f171acb42c5bdea41cba6fa8016ec7603591468d310746513a24f77155be87f507e7fe8512f2fc889af9ebb145d5c33137aa7e3dc9e14d3a81c2a5149418782e082745235c62969d19bbb349b550524102aed4c1d66a3a98f8646f6f0c0c506b64748c6747b1c1cbdbe815005a71cef21a1c324797a0e30413292e78bcc5cc548d99a2106b9ea6eaf000000000000000000000000000000000000000000000000000050c1415181e +flags = ValidSignature,BoundaryCondition + +# tcId = 68 +# low_bits called on the edge case +msg = b502000000000000000000000000000000000000000000000000000000000000 +result = valid +sig = fa54682a8226fa50a7728ee9ce8aa7b72bdd00a4f5643c4771d6547275088fa7b32042cb5441cfa8880779a602c32a536236b3be35a6e2a13360d4825d52f511252d6a3e272b493bc73878e0e3711360b5360af83df3f57570667d866c8558b052c540027a690df9eeea1135aa50546b2136d349cab85dcd698fbae1aa6fe0fb2eec20f3ac4f004a55be8510c4015f74538fe2e695cdc154887631dfe924774a6731b65aa4349fa16d536c7e9b5642966606e3fdb271779ffb0d3599bf958d3727fc443a6a190f4bb2f2853f5f6d773dbafc371772bb3d2b0e88aed601c9ce8ffd60b2496315f507bdbb50c7a309fcd68d85fee1f5aaa9420c4d2b52147d7fcb38026e21b5c467af3ed4b16038f2beab5f54b7c134571c079dbd28c54c6e06505d69b6dbae1e720e8a8bda189867861f84f5f6fa39f9af2cac8c6153bf1533b21f1e70360baa33860353eda4f0ec700c58283e2a3fcae5f0053c395be917ab411b8c2bfa94d892bc4fa424f6dfd97f9fa982b02e4fbe6c43b598eba769629ac66c3cde157365053fb6595982daaabae610cd3458811da53cfaadc053d8af104896e438d7bbdb025c474abc2493f74e16fa8ba563ee0765f4a06dbd874748302dd52df925df631e5bd5a7e335909aa7f8e7a65a7db7cd1988add9b9f34a71e3b735da6dccb4b6f6787af5f1e519e24a1e15c5930f43626f5ed734d4c442125896aba42840fe0613bbb8cb68325a6bb26bf1bcf14a055fcf63f11020ef7572de02b677315a6c83a2d0bceaf049e91bc715a085a25769ab9c9f4b6592a41c4c7e212c3380d723d3b4da5d9baaeabac9410e32eaa58f38facfe1f7438e4eec3ce5091a1e38f98100600dcc215d3c8ca850b46d60e2b941e10c66d809282f9d38d710a9202f9bd9a79a62cc30b32b5a1af6f9de111bee6a5bcb65e9125b8cfabb6db6c750c7553d6e3975be064feecd24e26c7196e931d8b1ce48ae6be3977db6d7eb200aae36191f7f0a2be3d3d7c9e760be49c8fb0b495338771f4b1676304c850db67d24422d7b153a4c34ca37a0ec287dd47739c2295dddd32e5809afbab880da22a82dbfd4c0041b0b8a6b9168e7baca62a6499fb621278ec25a81104eca44d2cd0165113fe6c68a56fc730ba9c7dffd039c978a701ed9f6acc61e39316ce53082c0dce04b4c0cb305aa53ac14befc5f65be4fa4bbdb79ab17c12698df9343de0b4cb3feb355cfca73529f36198d21da56bd343643a0d27d040f2bb7d048ecbfd1fc18b4bd27217c8532d63b47fedc445430caa18b2007ca9ae7fe9dae5bdb0371b897a3def628b0dddd3ba9b0805056caf5c02b7c3e44939b34ce646be0edc1289daa3aea0260643d34ebed8218aed531bee5ff772f2342e96e27ff488a5d1afddc3c5094a7f94f01c70ad619def58612f767cb21b3c742c43e94ff21b4f30348600a766e0f66d418b9f450e389be3ed10d3f080579248bbd7c72ee02985424c09c95b8af7229cc57e6dbd7bedc4aa2b08259db76736aa82bed4ab3198f748593189b0f5ddee1b1b8164f1f82896b458b6a5794170c056377b40e758c1d9f16a4b060f590d0299a3d6e8bb4d9046b194ea49051dba75771159d58d67d88eae6cd6d3cdab259d3b0422b1d1e0b40388d7007f73f3e1ff362c7bc785dbfbca4b4d007f3c799e8f4d11b806f26d82277f02ea2a61fa1cd5efac837aa29bdfa19cf00117f72b67c4df10a49a01efda625506de427d2ab9a514c9cf201ac86fc0692b66063aeb86b0b23e4180f6eb362b10a8dcd44f96983d5decb7b463882f7e0bc455c34998c65706e12c77416052bd36490796afdadf360ad94183907f807113b8c0533ff36b311ec6f8a31f1fe36f822ce27a580d2e5582a9c2991be1b43d0ff9c91447932ca726e57ab3ee076319eed5768decd05aa7ee857ec82b9132556cbe968f6ecc4013fbc49568c8c779d9a6d9dea52617e0f521c46d4862b47691038d9c36adcfe17a24a7f44fbd87114ef18bf1e1df13d15e060a01e2ff31c7b7ac4a355b0f5a3e98344d86c9510af6fdf934346e0b8c756fc5a14ee062d190ef7b6f78764e2063040bd09c4f7e43f1eb64f06d2e5c30b020d6c133dabaa9ebecad1623e3fa26bcfe1471471a6517de61f780b3082007676e5ff6ee9d5f31afa57c9faee333e639efc7761b0466f4c3b096cfda85d11700a4ec5db2deae29042dce8b74db1132104d9b9b0ef72962ddb6c23497bcc76e481871c322712ad44af7387a3e9498fe9a7c86ff73a012a2c5f0f492dc6766062cc296472f4ee671185892fd0704e8fb0c594eac2b817916ea7eda1822544a7ab2c2854e3b0c578fcf0d0b4ce731932af21a293e0c0e06fa5ba4b58dea2695fe4acd9fa6f7d1e59ec3657fc1f37e73e8e3536d7560bf502a103703cd815c9a10756da5d9e651234ff8d46f5f97bed85b89b6fb9c9c8026948d46dc5575679e8eb6cef8026aabb9a648fc87cc5e0fb06164cc22d6ab541caf5fbac8c6140d0fcb57719d45f22e055ad82b217cdb07dc986c4af4c847a8922be5d95f5367933b04b805e8626e73476a5da495bde018836ea5fe9cb34b3abe0b65885c83e918b5f5eebb53a962ac9e460dd6fa39795c68320e6b5f5e00638a1f18e40c3cdf75cc82794bf5f4a524081403894221f469efd48d460a8915721bcf0d6211949245cf7baa2f1ac65073409d9c1328e44142c9161ffc8d31ed8a387cf3dd0511cef2b61622de0d46d3639143339b9b6ed75cb5fa7c95011d878bac8b1be21be2e6608f040f76fe91f5b6fa92387aa081687da647712fa3b7b5e32ec2f5d22920acdfa5557ac8c071491bd4518c54f6d93bb8cde1a38f9dc1145af011c309c87c5b627690958fd466a4e8c073796f1cd07d844902e7e4eb56c031dd8c0dd6d9369c2eb4b89e4a9900bddc8114463c3ae2c87ddd1013b2defcf705ea746ff48d2821e5e63e033f4038cd842de7c838d9418c8e27a8dcd2fb9b88d8a0d0ba9c454d7a0a167a44cdc878f3274ebda260fe95a031c6d8917458d3882e11fc5363ccb034fca155ad29d622be4a047b3ccdffd362a3550c552a1b698e87dfba1774e527127017fdee76a91525993ff46b5eb072c79027148420fc958d1cc62e39dceb827dcd9baffcfc8b13888072827b0132cf943e31c71131e602444028740e6771a49615fcd00cf34ebf09bbbb2ab63b57803db54a1fd9c49957971d308548c94de5c5b6a5f345050ceb75708c8aee3c624e0d8290b2bcdcc918fbdcda7bc30d3f5f5ce1fb2d4e6cca86d6ec163f73858b84265baeeb0fda0f40e7bde058c85a2138bfa777c8be45da1c2b7915f94089074f4f22c0c1ecea9375ee2bfc23f90c521b8ed51434134abca11a9c3fd019244710125e9b7dc27661d23bcb4a40d5e87479d6b07ac86cfd91b5d89e664317336a2a6a80ee88b7b24ae1872bd99bd372d06cc21d835fd2336ea2ae53b7bf8a1c14ef724eba94e971524a1a290f9b7f265665b6195ee20719648b2a4a4a66c705705cf48b41a7c9c7f16bc2ae479ef1d5c23a4050acbdb0eef0a8c792f547952170a0b869f9b5066c06c4fe79d22379a5f8145c700049c4043215f60a7433955b2d9c681133149d845de27c355e1dc40217dae2c0a22c7d9b9e346ef585c35fd8cf96ebfcde2a7d4b7445e6c11046f0644ef7619e9c4bde19d33374061c7d55434249f4aaed4c7eb39a86f9d1007520d048301c9614943efbf9e55e11ea0b4462c9995c430ac4e7c3587df2a9f6d374580d0dbb48973c909615fb846705386c55d486063f8a0c9813419c9689317119ab6b7b6b9b72a2327bfe956859f8e3edd2d0e6a2e3446adb9c130fe0eab8dabaebd7593f9ca7b50df7c0f9643415b18f3c18ae06ec6ca1d39064b3bf8d8d4b841970e3c38c4e609fa7d6e8a938c371d7e4872ef88b088455715c5766126882cca88be8444a951b3984e1e24e38f87cc2d22dbb4459c258f7f6d9c4c70075061ab9c9a60fb23c0d4f5c9170c3368795acf27e099d9788d72e488742e04f779ac217f14eecbb4e3a41ee5d1b7e174b6df258ab1d8851c321c7ed74663e9f836ab08d8a5994ad7ea1be34ee3029b35550d653de0679b0d385315621282342dbda3abd445c695f67ba506ff9d4812a3a70996f26c45d71b9039ac4e4868047a396d838e3a625264e23178591cb966732901cf3960f0d83d4659b5ecf84e3948efde4413ae675d21a25e74aa780b3d4500b8ebb14898e9b8f332ea4524c7a560a630c049eb36b4ab1b4a77c9eb5755ff8a130786da3292383bc378ffedf2a7f3ddd8bdd5b7ff895608bc0c79ef3360c958d8e4854ac76dac7992bb69f6515052c47716a19bea1eaa0c0e33fa4f24207f7b44d5b48ed9ece05d5ca9d728b740e427823390c1d0d7998ce5edfd989c5d0ac351990cf8f291de748ddbcbda698052ee52cc078e15b7fb5360d890653c7b26458d0fdb813df3641f7f67613f5bd951d98128bff3a92d2b2c8b65adf282ff168af584730c3afdaeaa6550564655ad7700e5c34c6f74d091f1b367b210011788ababba86ba2e8eb6f2776c3e275637237c17250bbe31394a5a6f850c8ac1c9dbfa0f162b2c5e5f6e9cbbd7e2ecf72e7ec7d7f1f41b4d7b7c9fdcea4e6a85a100000000000000000000000000060c191f262a +flags = ValidSignature,BoundaryCondition + +[publicKey = f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f74d9cf676aedd1067c91a5dd5d4edc46f868a93ffec9f44e254e44f682a153aeadf228e8db7c5fcfed30cc3408e261ab896876bee56660d2a7c1d7eac20c5754255206a178f7156295065ce7876f90c48f44bc37f3a00e32eefd3a4bb1e298fe283d106eaef92a33a594253a2a0790976a1d04636f8672d28c06c852ea8bb43b84bff512996e7616963d5b9a2906466a152c7ea9be178be35405683b44367af85d2daad87630c1e21ba5490154f0141780f5ed0407cb0b975dd56d5930f9b26413b843b83f3693304b0038bd3e4bb398868060ea18c9c67099376470a50deb052e4056743fbcdf0341b192663bd1c21ba3b3d5666e0d0e29c4e1ed0759ab0bd9d1d355011b94e0ff0c049b03ddb7138640667144fcacd7265f55a07e5387f1abd30c037cf14d436aa855f827049215440d8007f61460500d943f57ffb6bfee6fedd2fcec52882d7d8da1aab29e892c8beac3df3234b4a7d2eca3a45c6623c52bbdd07c1c94314b706988a52029f8f8b06e874b741d72926652c78c6ace2cfd8864eadb2e4b39cafe6e03e4edbafa2747db9bc42f92af8b031e3e380846b1bfd15ade88c285d6a6fffe91eafc8b17de6cbc68575f323cc09fc20e49e8efd76f9568bec486b78df4245428d8d0d5f53873e11de65fda4c770b521a8c67f5c51d48cc26358954514447881fd9a42e5891dac7e1db5249d7861b322111e5fb929bee9ff5e9d5a2667ba93e63fc03040d2e82648f89e89dec1d1d2dfb9efeceb7940f7dcbebeb5a239cc1c54d8f7d52cba220d0634e15df46a58280bc5a48840bd39274cfde150f9ad9a40f6398d715350925f0e0501944409f32331a362bdaaafb3d8ce71c964332d6afb7e684f99951246d88081c86744ae68133f22c53a4b5ae258f230a98491d2d43a79a6d0f4d54a3b62013965ac7c82d0507125a38a0277f81cbc1d46cef2a131c6f51b88ec0baae0c82a6a0e72831cb06f9116cff5111d597e01057d32805a008f52c9aec3311139bfb35982789ff83bdd0c31e9f1080e8ed8eb99fde66bafb29e3357389fe3785b60c78e229ef073e1b65e34d848bd4d8a4f251551e2d38d2546afbc205d3c6dab34d2b962b1afb44f1d22fc10c6744fcd6b636afd3cb414b16c2e0d708fe9f51ff19120bde693b028b6d1e6dbe37b4b8b3bc7c6f7a842701603869d3ded572500f085502efc8d3cc62b30e5cdbcb5e86d9c0d42973bf755df539cc0aea58f9148386db67bd2bf70cd12ccd96d5c66fb271416b772465228dc44b079178f9b766370b66a79b871faca246ca6f8f63be9f0668297ac446cad5cf4a83318b1b00ecbd283f0eecee60a9a37a27abdbdbe382e307970002837dfc0bd3934ebd008918fd4bd383c02c9d37f694996e989a49075767ebc4a2981ef5275455e026cb0bd70946cdd1fadaf251381d324f9efbb860d1b280c29685bab97d010676273b45cca12ac3966aae342c84e2357eccf252577743b8787967b40b07ef2d3d9e6c1a3bcb059cba0fdb7f0d4f815c242b8e14acd3375e608e9230ba3cf8718f43882a3e1e661a2bbe81830d34741f33473e263b3790abe67acf29f5df44865b2ffbc96975fd62738a64112deda5a2534fb0a23b3b3024df986391badf9041c593c313a7ca1e1fcffcb65b07b9a99337b4a4acf616cbe1553eb9541f38aa6247342905995233a28172ca13396b2a9662970120f82b92a213f43de7a232ccca3268265c9ce042d50915430a6c455f32277da42f9962fb9163b623231ebc080fa7b8e9f9021fcf85b98f9c483e4d2226b9326a5bcb2e7449ef029ae142d3a0f0c28bd4f7e9c51a12e1336f24dfacbc3f808a8f7dd683027bc948763b808fb0037394b8b41bc9b2ec7887e67584e03d11b15ca203b2bcb43f8881638c4e4eee7f846d09c7f89b7739df22b2c3acc235032ba8f7ae27b5b9d25733143e80a4cdde6770719c1e66ec2ce683612233e88fafff84c0745a98aa1254c8219c6c556348c2b5d1beeb61532d6bf7bde153271dc647460beb65fe0055b33fd6480dcbb9d7d471952cfa5be260c39721a8c5c89b9e966ae2dc9036451ec9f2c49433b2225e13f23e20c2bfba81a7b3a555883449238f7d48213e9f10ce19e76f1bdcfc73ee5524bd7d8be0a4b46784e238233c04fb99383ec7726f9717e1179dd14fba9ad6c2ebd1699f0ab0e57e6cad23875b029e89cfda06f51266ecd2eed4edafb51e82f2a506d57ba74da611774ca5fa2fff4a976519de425885e7d09219cf815b1767d4fc5a72c18918991a285086a6a766614a4d245387da50f28dd778fb33ab88c0918feba3768c55bb1f07aec33cfeed33d6faa4d34fd7227b365533c1e67dbc89f0b20195cf1cbd480d333ade1c9bb28308085b72ced430268c1492a27050c43668adc9cf8b8509447cfcd3c8f8d8eb554f704101786aa9ebca86991d250776a37a1f56fbf7d08e591f978da49c3870625879f70e2418aec5cba32fa8c346fa9038baebc35ad0068a4d03537aee14c2e71570a87490377fa8dd66f995aa044a522f0c7025a7ab2dd5ad30a64268dc112b7f9fa156df64d631f55f1d6edc55cec570a9c7372e29e02c8d4867bae249431dcf6ed2794a0183f0f7501201feca4a81d334c642fc8d38e9a90fa77429665e09e214797dfa455ff47c4f219d3a2cb0176bc2236455123c1c5da714ad29d580fb194f87173a18] + +# tcId = 69 +# short public key +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = IncorrectPublicKeyLength + +[publicKey = f5408337d0fee65c28851226a5fa81b58464632c78e2a9bef70d330f2e3a5f74d9cf676aedd1067c91a5dd5d4edc46f868a93ffec9f44e254e44f682a153aeadf228e8db7c5fcfed30cc3408e261ab896876bee56660d2a7c1d7eac20c5754255206a178f7156295065ce7876f90c48f44bc37f3a00e32eefd3a4bb1e298fe283d106eaef92a33a594253a2a0790976a1d04636f8672d28c06c852ea8bb43b84bff512996e7616963d5b9a2906466a152c7ea9be178be35405683b44367af85d2daad87630c1e21ba5490154f0141780f5ed0407cb0b975dd56d5930f9b26413b843b83f3693304b0038bd3e4bb398868060ea18c9c67099376470a50deb052e4056743fbcdf0341b192663bd1c21ba3b3d5666e0d0e29c4e1ed0759ab0bd9d1d355011b94e0ff0c049b03ddb7138640667144fcacd7265f55a07e5387f1abd30c037cf14d436aa855f827049215440d8007f61460500d943f57ffb6bfee6fedd2fcec52882d7d8da1aab29e892c8beac3df3234b4a7d2eca3a45c6623c52bbdd07c1c94314b706988a52029f8f8b06e874b741d72926652c78c6ace2cfd8864eadb2e4b39cafe6e03e4edbafa2747db9bc42f92af8b031e3e380846b1bfd15ade88c285d6a6fffe91eafc8b17de6cbc68575f323cc09fc20e49e8efd76f9568bec486b78df4245428d8d0d5f53873e11de65fda4c770b521a8c67f5c51d48cc26358954514447881fd9a42e5891dac7e1db5249d7861b322111e5fb929bee9ff5e9d5a2667ba93e63fc03040d2e82648f89e89dec1d1d2dfb9efeceb7940f7dcbebeb5a239cc1c54d8f7d52cba220d0634e15df46a58280bc5a48840bd39274cfde150f9ad9a40f6398d715350925f0e0501944409f32331a362bdaaafb3d8ce71c964332d6afb7e684f99951246d88081c86744ae68133f22c53a4b5ae258f230a98491d2d43a79a6d0f4d54a3b62013965ac7c82d0507125a38a0277f81cbc1d46cef2a131c6f51b88ec0baae0c82a6a0e72831cb06f9116cff5111d597e01057d32805a008f52c9aec3311139bfb35982789ff83bdd0c31e9f1080e8ed8eb99fde66bafb29e3357389fe3785b60c78e229ef073e1b65e34d848bd4d8a4f251551e2d38d2546afbc205d3c6dab34d2b962b1afb44f1d22fc10c6744fcd6b636afd3cb414b16c2e0d708fe9f51ff19120bde693b028b6d1e6dbe37b4b8b3bc7c6f7a842701603869d3ded572500f085502efc8d3cc62b30e5cdbcb5e86d9c0d42973bf755df539cc0aea58f9148386db67bd2bf70cd12ccd96d5c66fb271416b772465228dc44b079178f9b766370b66a79b871faca246ca6f8f63be9f0668297ac446cad5cf4a83318b1b00ecbd283f0eecee60a9a37a27abdbdbe382e307970002837dfc0bd3934ebd008918fd4bd383c02c9d37f694996e989a49075767ebc4a2981ef5275455e026cb0bd70946cdd1fadaf251381d324f9efbb860d1b280c29685bab97d010676273b45cca12ac3966aae342c84e2357eccf252577743b8787967b40b07ef2d3d9e6c1a3bcb059cba0fdb7f0d4f815c242b8e14acd3375e608e9230ba3cf8718f43882a3e1e661a2bbe81830d34741f33473e263b3790abe67acf29f5df44865b2ffbc96975fd62738a64112deda5a2534fb0a23b3b3024df986391badf9041c593c313a7ca1e1fcffcb65b07b9a99337b4a4acf616cbe1553eb9541f38aa6247342905995233a28172ca13396b2a9662970120f82b92a213f43de7a232ccca3268265c9ce042d50915430a6c455f32277da42f9962fb9163b623231ebc080fa7b8e9f9021fcf85b98f9c483e4d2226b9326a5bcb2e7449ef029ae142d3a0f0c28bd4f7e9c51a12e1336f24dfacbc3f808a8f7dd683027bc948763b808fb0037394b8b41bc9b2ec7887e67584e03d11b15ca203b2bcb43f8881638c4e4eee7f846d09c7f89b7739df22b2c3acc235032ba8f7ae27b5b9d25733143e80a4cdde6770719c1e66ec2ce683612233e88fafff84c0745a98aa1254c8219c6c556348c2b5d1beeb61532d6bf7bde153271dc647460beb65fe0055b33fd6480dcbb9d7d471952cfa5be260c39721a8c5c89b9e966ae2dc9036451ec9f2c49433b2225e13f23e20c2bfba81a7b3a555883449238f7d48213e9f10ce19e76f1bdcfc73ee5524bd7d8be0a4b46784e238233c04fb99383ec7726f9717e1179dd14fba9ad6c2ebd1699f0ab0e57e6cad23875b029e89cfda06f51266ecd2eed4edafb51e82f2a506d57ba74da611774ca5fa2fff4a976519de425885e7d09219cf815b1767d4fc5a72c18918991a285086a6a766614a4d245387da50f28dd778fb33ab88c0918feba3768c55bb1f07aec33cfeed33d6faa4d34fd7227b365533c1e67dbc89f0b20195cf1cbd480d333ade1c9bb28308085b72ced430268c1492a27050c43668adc9cf8b8509447cfcd3c8f8d8eb554f704101786aa9ebca86991d250776a37a1f56fbf7d08e591f978da49c3870625879f70e2418aec5cba32fa8c346fa9038baebc35ad0068a4d03537aee14c2e71570a87490377fa8dd66f995aa044a522f0c7025a7ab2dd5ad30a64268dc112b7f9fa156df64d631f55f1d6edc55cec570a9c7372e29e02c8d4867bae249431dcf6ed2794a0183f0f7501201feca4a81d334c642fc8d38e9a90fa77429665e09e214797dfa455ff47c4f219d3a2cb0176bc2236455123c1c5da714ad29d580fb194f87173a18dc00] + +# tcId = 70 +# long public key +msg = 48656c6c6f20776f726c64 +result = invalid +sig = 69da5aec6d5f58fbf29439c520bd68b966e3dd2ca633b68351c2862344713a1e9c086a44f9a870a3ccc14de62d6c12b278c354d7197c4d6d7f83d1422b29b250f5ee3fec118311d905e5db2b4b8b23b8d542202d6652f6dc3f9d7ed51f2463082d3f145cfd0fa7ac548a47e91c1ccb1a55b215e90ab355bfc6d67154287b1dfae0fb530264dbb841a7684b396e5ca0459d795216416a9d232bc89b32e0f9461f53107c78e66c8e876554e8ddd501867b55dcfc1fb33f102e03373cdd192640f1027a08ce277b468f6ed0fe80a9d6cd2d6b2f7a3738c8325d95b0ccc6e7b9fb000c923b92298e0867d4a9f6dd5513e8001033c633bb1641ee66349487224dd43386c7fcc29916332066a868100d46e2c5b8354c28f087a024cba27694afc4c1665e0d72b37686919ad55052cc63a144febe4e2a0c9ae416e064e289f9f69cbb883665d1130826b7b74e30c94a2b98b67b471663e3d66326db3b43bebf958e8665b68eda90e8c5d9494b0c7c9ec48800910dd6d906b1fcd47a0aac462ac87b126d21b5ba150df61f752257ddf5a063b4a5b150371d625535e3b2874b9fe548960ff67931cd6c12496e8213e2ace6fff48e6bdc60310e49389f62579db26b92ad73e9d3f23942cab51784f48b3660b6450caecbb0df2aa4c8e56577f5ea450d2f7f51aacc0b304a62250bf2cae7b99dcd955b6596625d06da1c67f730b706fdba630f00fd891830d251484640b7258ab364d6fd9986878fffa69b7c44b92e43143affae8b098e1d27716850f37553bf266cdfb561abbcdbfeb80752b364434e64b80429b54cc88693ce03dc0fa147f0741b215f0728499bdc25140aafc976ac99e910ba8a8a50d21b7bddaa28626b3b90a93fd44077068357c81d36e735eda4362930adead4951a0baa104f384fc70e842a9f329e1868b07b455e9cc3fecd54805c9052e70f88c3b92fe0fc6a4d7dda18cf5694e5398860e439a1e19d5a66f2fbc0aacdd1a498711bb16054796c015a715395ef6174e37b04eda589b673c4d5dda737817fb52f392caf7a72d7a3e84b2180cb5b75bc8af065bdc05c3e4040435a1b160081352ac43e09cbf2ead6e09c2b0be0e37894888fe2812f68806f957c13fce6ff167bcee21d4f412ec95a4847f3db7bf441223a4d4ca9ed69adb4de8a4b5b01c775f2721226e6c59ff26fc38e1bb78a384b30e7b55f082e264d8f25e31518619ddd6b6a9faf8aa6cdb5eab75ed59a33825d5ef8b93bde5d120ada773fcc0852b918f4f03e2d2a543b15363adb823eb1f6c533b98d940411e1f5c1cf521f9f63d5454697608326625fffe01bf87f44187dad631df2898effd2c291d98222e564abe3b042b75e90c9c54667842fa8ebb68a1244bf8e0c3ae3ee5f97d5ddeefd986c4bd3f99d877c2cc2381a89abdc61713d38cee58bf69805a485c288d21b15843147066b4a74c69dc25de878e21d35fdfe6746feb4c166606bf3219e42cf63581e7e6bd6570f40f8fae590cedf5106fe57037ccb2324b74fca6500f6ed3d0736cdcc67d04f8fa9e80054a5bd7c8459fc1abb1c4c78677d7f6b325af94a0e5c9c7db0a748e12c5265e8724947d9b5c4bab1a8b6faec827cc41ec115ef3c2d7348cddabddfbc8436f3b41765e13f3762b3b45ed23156f085831e726a55d4b83848b3d1d3352aab9edcc0ac2388f2383f6301ad813b917ee3f23734e057832ae4cf65e668c9ddd0bdd0f9d8b6693254649668aa91a1fa5eb7c59859bb6ddd36c25f4a2223f5d688b480d0388fa307ea69298f9bf7737f6b3dbfda87b331affd75cd8d88f0460e98ebc2890b217bd6d11000a3a088cd837f4f8859a43f76afaaab05a0c3007a149d4d6b9155cadc2c9b55003efdec5012b6272b87183694c505f0446ede55f35b8ab201f9eda974ff840eccb0f004fa3acf753acd0613f66e2a6ac82e322199d37b4af83cbb3d98371c31be79bb42331e819644cbad2ce27a04e4c517998692cd8331552892e199a01a6922bda4d38ac4c01f708809e529c3216eaab399ef25b350ea213ba47126f278140e17391ca7139bd13c56f415e6b74aed8dbfbf38c95dc6db366fd72aa863a27fa1ebf198716400b978a3709e35039731930406588ebdffd35fa230a9b75fce41d7acd214ca4f0029896c137495eade0cf4d10fe621c73f01061acb077de72177ff5dbc6f0c5bec681aa34668ca4fcdd727525068b0b0e9072971b84ef6ce11d5c3c6024da40966703dcc2b33ae04f677677635a55db508f34f1403cdbe37960c8577dac3d848b29f3b5c5c6c56fb74f34c8f4634c04b8cce9b218f1760ca00e6de87efd14087c633469c892bf3e319443336733bb60cfb44941bfa25229aa24384d812db90fe74e0f93fda005eea87400736cabc036f71421b6657b1674d4a8f76cbbf3a8b1c0af82f72973927752257c532db439d96762ad64f102551a9d03f9ce3d8cc850c393c128bf8054bb55bb92ea31ec0706f083a9cf90424c617f8ad2a21225d1913c30e8f47a6b7131304d536a85596ebfd987b64b6bf3c51638d6c839214b53c3c10aa52bd9c6eb77fcf80b5e3b724dec1381d0e02207a6adc73ff53d9d1ffcee1c4a28fa5445ce518eee937074ff7a402f5bbcb362ff090415f9dbd93b62ee56dc8c50e4d2e34c6c621650c0dffe311484e95d68de77170c909c815828946aeeec7ede56bcf433e22fc63a33f764ced1f9242f3d26dc7558686e471f30fbe9304d3d56af8b23e72a4088970b24b2f7e968c1d0392eeeb0b0f0ac8c176547a5383d948ed15484b79e21314a1f28ed624f61e5aaecf2269e5b027e1910ffddede52fad4e8da224e8a10b079548fa7cd44172f4991adfd7623d13e5a19c812824bcf990c07c9721ded9093be6ce7bc7da3ac8c932133a64396b822be92b088844991596df893625a4ef24543bf75a10d7d17ff70350ef62ce3a7758aebbf9b3977b08becb9ea28376082f607965f2cded28bbdb39dab7e00833b0488370d221742b66e27d9ee2d9dd07f401bc22a62c8a9d8d3a290c63804991496aafa47a32578f583cfb53d0c2199055973440d7535e0da6cb2957f4e04002ecea68f9c3ff76cade27ed15fd7835989d0abb197fe32f68636139a42710644bb25860ff33f539200e3ccb8a7738422ca0fa0c744b4c19d15c5d4a3cb082e20a78e20b5a4965b043595cbcacad500b5adbb6cd597e6a4b9c5ea6a1f2e653b5474da277f1818048094ac9e0e1e0b20068d1c1ce5a114a4db7195057a6ce4d221c336fdc29190fee8ff855cae8b7f7c02eec21f972c827066d9c6dcc4a4179bc44ea9b88abe5124bf78b071e09e9af43f739a6e1030091fc091e73edc447f25c68bf84b8df7aa8f091ab42662b93e02c27003afc7b0ca69efcfa60bd53d4d78ceb7c4d2c8fd5ed7e8b35024de849e06400ad145fdb28348d22b317ccec704c401f88db1af2a5348223f5cefd914e404c9d73805d0de77211881486f1bf4aadacadd3ae2588f0db7b5e6957fed50a374f541cfe5e4e923c82ec47e5b3d2c70ad6760c79cd5080b490bdc75f9ef5e1d17f0978b1e8770775f902b9463e6980e1683b2454751ba2dad4a2e6460924bd60ff49b03230cb11fcd04a0388e60874c35d3f6cfc4dd487665e1b16578751eaea89e126bf58044596e3188c7a9631017be1f2dcd7d612331832ff8755460dc496aa99a61ea053c78e72607a18213ff9ef4bb880903b91e9a43e0b1f0ed1511b2eca2f4253fcfbd7d0faebf3680fbf0a45df231544882c9c46505c726d56905d02fd046c1652d8fd06d15286a1a8f8b69fbd825ca421fd80f5e9ba1a23f924937ad049adeec60c78fea1adf9b1ef7e8ac4d1ded18f1a801b0bda8fe9a88098825ff3eef5c1fc68cbea143310b39543293f3f5fbcf4773b02054c0bc79f00554947c7604b36389c0c45f597a88f3713456b4cfd83b30cb6520b624aa09c812066a8cd542dc67e19e4c92b562b4e0f6799fe57d9d4f4f3e0b6fabff4b1fc190bf1e78775ebcbe3655d370ca6c08f48decf6153a4989eeab6921f8475f85197f51d651e563994257df57977e5f219b4879751de57ab0374b407a21adb4ba520bb35e7b7508675bf49f4e432190451423cbd529fc79b22baae9cb1d8660c3a49c456ac03bc06c0ef3b02f7d8acd40919315206fb38e715139c9bd6f89a58634fe683df03f5bda719764f6c38131bc5ba1c53244472ef73834ade04b86ca08dd753141ac0a9a230e246735060a044018bc9b75d50134b20e6219c13f8325b5a0201e9453f6f012fe72e829ee1c637fe30037a9212a31c6e713726a6cd4cf2dd66ffdba77f1e2800e717940f231d04aa2e4e88dea084754947d848c0271856bfe659922408449858a81fa6583f062d96898d18ec53664f0067eb9b9c40ad2579ba9802abd8d1bf287e49d94ae397e784db14b5f7010ee4fc42e6e3c8ba80370afc188fcecaf466ea830d7b16362e5c9329980b981decc7174f3ff70a35d8a180ee12ed0cbffd4e8d14eb503387e4959f702d4293109e922eb561371f9ab21475821f8555d92f0aa1c3d841a6f1eabd4e663993636c754ce2b3c3f6a6b6d0b161e777b8296d7dce7fd162970496494d4f60716244a5a7fb7cee40e1d565e6566697e8f9300000000000000000000000005101318212b +flags = IncorrectPublicKeyLength + +[publicKey = 5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27cd931f803c2103d181ee5228549e4f2bb5cb4bfcffcca966f1ede24a9958ad53842a15db226adf91810a689f440ef71184a2c6b4f40e5f133bde58fe9331defa1aabb9819abdf9cbac8cc564ecb89d648cb5d66a09453da4dba410784fbc41db6216e19856de2bed90f6c30f3975a9b7bb47c2cb63e0b3df09331dbfbbc23c15a45844ece88226fda9071185fabc073a8e832e7a940877972734ca3bc6bd66bcc84a61b683a3e59c9453bb1ae493ea1f0988c30e05dbd65e8824e73d7b335465e119f7b5cb640725121565c5610f7470ab86fdcc18bb005eab35929df14652a9771a496ec4d44ab84688f9481bdbbf79614e8c4fc611e1086bf2d4c798174039dd9686aa9f43e4cbaf94f9ec0533465d327e758f99637600455f5a51e9cf4220e8cada21dc8a5c650cfb00d964c49575306862c7fa4128e6c65503f93cd3d2c079b7ce193da9c9577cd7deeda0f66c087180ecb7d561309cc1a2a9e9da2093ff5cf1f8bc15f1d1d91f6462eae7a9122234e660b1739b7db3043b09a1bfe0af241eb0249efd1f3255d7bda8749bc0fa6c193b52cb8b1d3e1b4eed21d7d7bd6f024c680aadadacf51b5f0bccb09735594f176242cc95fa4f61ce884b73f0878dbed24062e219ffef82a912435b55f954e58728c79be21cec1bd74b0bd80f5fd0a5cc418c8c936f2be63bcdd3902a0a4bbde4325478fd58bfae7b5dd977139fb7dda993adc68dad65208bef03fb2a20f18ae37344a2a858dfb47b2db4c24488650d19f4aaabb43fa8b98f1bee7a4d7fc38363bc9711d63c691feabcf95336c67e2ccca3f927641ab8d9b97f709e96553ec1a4948503b4783054c9d827756bf7cb8cb74b1dd5077330b2c2ca7460de521a591bbb8dad8575278e62b9129add32f30165caf72c05788773cfd4d7fc6042a72df403c396d496b17893a9694e0a067bb4d625e409ad5f0e818a81f314694e6c3eb63f0c7f468511462497eb40fa7a09d0d60e5d4bca7904de88a3b9b3df40fd4854142302481fa7458d59dbc295db173e1bec6e7c9fc6f1c46a4c469b63b286defbd30e1af010ae36c9cb50ba5e201d7fc5cc5386eaefca0d81c22f49a7ad8ecc272141e58e90d6e88c228c9c0d3c0947e13daffd477a055f4777761d060fe2505c8de34ccc96a3147619d424650d6230840c3bdb1a86db1d0969e1f5db8b98a8a328c9c2ffc0c90732845ac67efd45e29d7f5335637683a019c67b323e0ecb627333568a6611cd193eed5d12eff8528ed26a37fe8f0ea7ed3b65f434d69d4aec0b1f4a2ce9d44fc111d9e5a6c99f346379beea4ba3b5223eab08dda2841086d6974e1c638b82d5fea7bc85c0eb697c76265d147637e919725bc00ecbc66163a8c589d07d26a61c781eeb47189b993d5fc31876242c79b2943a4aad36933d576c21ad62596941fc9bd4fddf223f646858a726d489a0d89ac38f609092660fcb9bba8b00bfece9a1c2fd7d5cfcb3ed46b75a7d5f5f89694c76ef76443e37d0cf4e1bc34f18d8faacfae991f2d10e06cf46ca7fb40ebc4f849b1c6c7d9f33ccdbe9171c59b48b6be2c18923bbf33ad0101ed73af20150885dffc2f7607b1039d4a020a597acb7ebdff1b591ef32c213d8b5c67c593e91e6c123f82bd3f55c5fac30ed7c01bbd137adf7a1dd49c4338235da356eb6f4a4138626a832d2bdf590a15a98258dc283bde285d12c1bb96e4c664c720f8b04a21f70b70c6dda30402b8995df99f72d987b7725ab4426dd9a04473c7079aada56547e9b275626744ef69c2f867752e0a9fd18dc6ddbc6be74bc42e23235e8d12a66de855046c6dfcd4e89b34dcd0d1eb1b0836b74431e8c7154b14f6077dc6baf602f86afbdc0dbe1c1faf81efd83b7361ffa9d46449b2a10a040b1857cddd5f274de67559006fab88536365f63ff9109994d395baba2410e613548528311ba3b300b20ea1b29a333ae40c6e77f30d2e0b2cbc47ffd849028189489c580aba2f2bb9add957a4b3257e3740e81515930419b28aa91df5ffac928857830e20a3ae970ddfc8b277f656d117cef643dea29ad1479c1d9d5f5296011aa5cee51dd4440a770306a561927b52fad013801252a9714706e3d7aa198119467bd5f0f4fc1a76a5a727b0dab83de31b4581858be975072809cb1f7e56bba1dde4af1122b5a28162bf29fab7d4a864352af1699f3456f4d7bd72752d477ef16fe44bca379259f6562fdb8821e8bed4772b3870397474929f5354c360b06741a9e2ff7f62e3765a1ac1eb69507ca0682282562744650769798b91b92f7b7b6e251c1d590aeb4c69154f262d3bbbf32653cc1ee51274ef7137d87c5d71a7cb4db570b1fc0f98627aa025a3cae57756ffeb5e2ca0dfc2cebee981e395166470ec1feb9705a78ccaaee282d3ba43073f9f4aa8026b581c2555f2a77467e0f4d9d25ed02d59e1e2d6968442bb737ead64e377cadc229dc70303d5d0e30bcc620dd22736f4674444b54ce16658058419bbbdd2b75937df077b2bb131ec9cacecb6720b97aff8907785d50d48d6896c54b262fc114d34421d3e210e4a393a357011eecb39a877fb2b65da40638be4cc434a35b3b215e3fb673a302656c96a49d6d007c1708fcda4c2d1e1699969835d8427c1b34b14660c2549df232246d729bd75327458895df9395f06d6c8f817f9b6ff38c48df0c0378c035cdc3a3cc9a8df239597359] + +# tcId = 71 +# private key with s1 vector out of range +msg = 48656c6c6f20776f726c64 +result = valid +sig = 643624d994e78995f463e4fef0589a691f9eeabada4672ab948204776e6f973053461e5e5d506bc427aa31aae371805f0b558002cfab1174da48fa457204d4be9e7c4a5cef4f2a3d12ca5baa45ab91020a01455b1426fd3651f8d82ad270929fd2ee597b313a663c553f283089c1d4a068bc8f1a72f518f2ae5e0e33531da37eeb83810adf0f407ef09df510319c8dd3efedf52e59dcaea158792a58420b373acc2247e4710b2e7e3d17faf81333afcb5608a0cc5803fab5ee1533fd63724cd1782aecfca3b090dc61907ec71220f20758f1edccf7eec6ba904ab241b151302b1cac2c0aa87dbe8290320604afe1fee787e5db72dce3813720da68758541d2d2e98db1719b4470a7a8924b91fa590701fc3f9b74b56d608aab2749a270a3361a6b7e514f3520b35cd7b973a759aa8626431305dcad6926a8d835ae9ced34557773c90f293ad98cf0894c23039c0b3dbad65b626cb8b7534c89e8a60355d135a35fff6d00d6ce34ffb846fe02bdefc7d9c2dea6148eff121a964d1eba401d2e32fbd68c3eeac48a9c13700693c1b6ace46fcccf3f467b7d2eacb49b62778ca28df4857918aae2c0e38199394a7b4cf0c19dc10c6a5e4807245f057d50471ca585eb8369fc463123d5daee37ffd2bdf33e01fa5220c92e205fecb89cccd17492d62c0665580084c4197517ffde7799b3646a405ad243bb40ef1b11baf105f33245ab4e8844e792dd69c67119cf865d158eb90836bbd86cf336b33b62ffea13bbce0403e444d4bedc25d65b9e32ab3982fd9b8a2417c8bd76ce284df061b4db54e840f28035e1b7bf94e42a2cb097ba8a0d4eea197596ba6e8ea78613a23044c07ab602d6cba7978a120deaa6aa6de89dcac525b8ce47279138e21255a9f46a4b97888093ed9c7a6849bf6ff7ce6192b381557ef3e44f809e724ddfa502ac7c9e6154424ccfd60d8cbd2c43eb811d042a7e504ba8a426091319754327e45decd1278889e206a9002e4a45d54fa40e512c216c09d9348337b1ff64dbcf03d974bc1f15f036768e93c6281b14d1e8198f85fd812d421766d19bba569f335955a058b35a557157e82a1a3062e76686397c26279860417c2441852653b3b9304db38acda6814d12a6dc88b307d0d055e68f6ca2bb094e9aa22f2ce792da36ef0cbe0d04e7d8c76bd49fdb4a0faea798632f0c28349ff707956b40fd7944a09d18e2636b1e2bb9d8411fc450547775d218002cd7514e871d76adae54242c0f62423142fcd88f7e82572b38393357458cb36a8f6a2a0daab1b593f4b806e79c315144d4c526c7ca44c3876054bdbe81d9ea50ffdcc55b4e8b73e44b7c01c378183b1a638deeeae46003abc4db3a55fe04bbcee3366dd61b8461d286844c8468b8260d501307537f8484988c8cf8f167d85b288e89f21ba0e0b4fafdf94ac58227c3fa5a921f751afe981c5fe48e26fe780adffd6c4ffbe6609d0a822040e90a3d5ee047dd5cf86b2a80f117c9316f32535bbba7977969b07034d61db21ab76b87953d96d0c015347e797b68f5f912c6af0d2ac0a7662d1d1ec5e3a0bd0257730f2729c142e4eb98f4bc6ce4873420222c01020cbda19865ec27577aa9febd400854fc13eaa514284f8a5a5e8e3e3d1a3dd41990b58e1eecb7c2d09d502c23bed2025e06fee4bfdb05d7c73cc4e447aea9a98d90dfe72325daedbd989fe96f27c8ed3d10af771c12d84e488cc52788eb68adbfe35259135c12afe96f4a97d0e30bce518f25ab8e1f5296d7998406799bddd01dffd05247f2a6f565b1609a15f9cd3d1feda69e4842379ae3b0d705d88c0f47613c10825a145f5d8da8e527b3a4ce3caf9dc3b3559b7955923288443f31b164ac6058ab228ed19d73ab2dc870497969648071d78838ac13aaf43e50a6a5a83eeda8df974a56ec134ac37a805d3939b55a3211f89e0a0f963498cb6bb44f9f897a9c7b686a05f813c06416c923be169e7ac2fa2d12633142d2d5f52d8655fa76e1d7dcc63b1fbe97ddd65b886ce3850480521d36f8f308f5a4eff5ad242374304d238dbedc8b13f2ef5ef6bba9c818733be44f023d27f79dbfa76a0eb4e20304de0c7a1f38f705ff6d5a9e6a1076d0d3cc9f83516bdfd9dcf5537597139a26301d643f700ffe4834f4f449b5909862e25b60baf5941fcd9e264d9243e38aa813149e752e167a305b7eeb24caf0784baeac299f23578f2af1d85caf05fe088f98e1504cfe3f551e1ee47a3fbe30cbafa7ff7c141a186e43a1a52589a92f7584dc1fe45174a1b225466ba847cfbb47d55d9c5fe7a16f4106c4deade55d6c63f7b3ca58172d79b849874cf5e2c7f325effb2e4a632bcfd56a06b038cfd46a96949768a1d684a3ff660f2f8d252fb3e1a6fbefe7a7b765fdda9287b595061a5afec72e27d054849e0c905f8178b82b7e7028b2c9061b2c0a9a8d1137fa8bb0b5a823c5c88201efc49855fc2a96a49035b59d17233eff0f6b574933da9a6d4d179e7da108b82c3e527b492a0c3545f945ff495d9ce71fa5fe9b7b44cbbfceffd7948eb7f3c14b5047357572f9c7a39c8490f79448fbeb7f9e50f0b38b064a19230e1a94ec7aceaa1012d721a7fa9d940647f801c584f3a5cd4c2c3f65f647e9db9ae3db508565af32aea6800731873a33775034acf26b6dbc8c449a360a79d10d2186ffab29ff5d2937bf0f1c2efdb70327ee1ff901f54316ea08898310fbb8a94e6a8fccfafbf73394a782419b2838a2ecd53f16ebde96d70b1fd3255ee14586a63f5aa5f42b56b5e771ac6b2701238380b5427bd98a9bde7383e72eb34b257edaa669ae35a01f022cf0a96967e90ef23c72f2ec3e5cec48d120298d5a2ea259133806c5c7c2a53dcc6aa2c102c0ab3845a5785d63de6e58d240fabdd813155047dd55b3e0a8e0315eb427a83a4b754ca5a53b235b38df8acf537b1f67d52aa5d33e7f57ebbb89f524f30245362bd90f12c2e6110d19dd20864f9095e544b0be72c70d4d1053c7ae48e4fe5c4f651c18ecf5e51d68e2da2da6bbbf33fb1aa3942ed616deda75a03f8bc4128342fa1f4f07cdc6fb9c62e3a12bee90ffe5163153eae878ff1d35db72f7c74bc6f85701b4886a546d435e5fe10c7c1be65769ac5b2bc7f0aaec6e81957cbde411d18d7a0ff834d107507790856c148e564875c2bfad46fc9ee3b948636169b85f132e4434e994262ce124636507cf03bac88ae261da6443ab1f92ececeaedd41f9a418ade3b4a33d0d44af62b80b461007cb5d31e7ab254a8ad9de7a10b0894d2d47f94fb579bd775ee2b3b4fae126bb5af0a645eb80afae8631eeb06822a54bed367aebba0d29e8efbecfd9722ea55ba9ace571b0df38376c79deede6ed64aa5febbfcf865d4b2db00b1481235bf3730745405d4982ad27353eb00a506ac11c5dbefb7ab1b86aa99b451d81672990a8a5edef63aa9d1f124026e45cf6fb38bc4053bc7fd0de1ff8ec88f3fb8891e784560f9af15f64cee69a79aee5f180f498a0cb6a69eea5565eb97cbc64089403e45cf2c031af3d442774f048c9ff04e3a84693b20915bafdce5fb7a0156c5b58d157b8f8e68d70aa1d0cac1f78ec91c8f32bfcb25cc36001ef5d4bf18701e624a1e370a7ee2ef4bb5675a7ab4c6d148e6dd662364ed7f54fd2a4acb54568ff957f385290a6a34d3f80ca3f876b345da99ffa98effd361f20782111801320b1909ee32ad849c653255ed418ff721be631bf3af40c01ac90c0f92578fe22c8bb201db26dcb62f02b916d3a294ba4a4c272f26e2996649e6e7275a664e0810561e5b25e27abc703a591c9fb2038d4293da0163849b505c39b3d6b4862dbc393bc9c7420badfd530182a2b96260e75bdfa43b6423d2443b0ff036c468c5cb2ddc7db532d11541a5f6f132e98b0ce08097839aa192afe99f19e261a796ed8c123a02a0b26ba2963bd42c555876fef5800e0f08ae33539eca9d997e450ba040399971fdc18c7340ba6f691e6722475e71e92dc6490a3420a879e702a69cef3a3b5d49a6dfd4d7ece7b9368a169e9125e1eae1cb1cad85c3d8c70e264d2fe890f40af05805f3f3feff60858b155847a8cde0b5c8b3f40d8b22c3ee77c66f02fe55a67536a463418d393818f6cba0cb19ce36a42f37253d9d801f34a010a3a20f1113a1e7bc108c2fee2c97d03661bdff5b74402a35fe563d16fdf66dd4bd741381e7dc810224668bdfc480e62d25836dbd41b7ccc1ab56325b2a8c216246368369c228a42b7cc1c2baf4c021dba8ae8e4cd212f21b6b74d3279e2b444bc2ee6951995b9b069a78cd9136288a51d56f2406024d144f1acfb4828aa6e848ff0bba1eaa73a4a820e616320543299d165a7d4de422da83878ca1726d0b588a0096de21d895536cf13fe5714ded541399389d61471c03588c75d9f8928b1d379dee9153ab0fe431cce09a37d93a4d4008ee7da908bfe3a229130d96fb98be4c5b30abbdae2a162182d3215a8cd6f1ddd2741fa1ce51185d415d17686aace306027430d89ad80a18534a614142d6fa355e73001eb8938922ea54f57cb5d5449d076974a80c99e79a5b196e2a9b635a9271255f6c7f818bfa1c323d4a99f9acc4dbe4eaf412196ed7f70e42586370cccdd9fd0b1830499ec0c6000000000000000000000000000000070d13182128 +flags = ValidSignature,InvalidPrivateKey + +[publicKey = 5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27af2b332e1a44672f757802793a43b7e9f1927fdf4b89b7a4ad975ecf8bdaea48583cafbaf30c7ee6f668c225ddc25ba1d394d920f435173ea8453bc83bac373e3b6429f48a01c7deffc3ee5a986648a40dfcb31662f46f3a07d22ce9d486a0be0e822c1c75ea58965b9167ee08c9e6b07e80be89b257be37a57d5385a8bbf5e4439bf3aa80c17874a9f37d7a62eb0baeee9893be6e0fc223c31834baebedbd9611225d25542d78fb659b6f41ff3182d94b3e471f8c837f82a42fcab82ab6254a67632edf81f6feb720dbcdaf92c92a05f68db7fd074349cc54b84865326e3dc45e40645c95b41908aa66d38dafdbc4ec559cf0f86c5bfe7c2a84e8e56ac5bf97e88456f7995d77c8d114120a9c7dcd3758c182f8382f8f0ab8cabd451f71c72daf985ea2f64d85b561dd294c2f96abd8f351f2821fa920ebc8fe576aa4a9253cc23ce45e3fb4695f181ddeaa2ad12e96fb0c658e12f12cbbb4c244efe0b40b09c0c8dffdaff6f47a8c1f4ddcdf4c5e62eb68bdf66a63eff871a31fb1fe3cc67db129dcc8daeed2ad3e80ef54e600bf7494752d890e7183fe7f22f9ddd790d25a46621820b79203d584aec35ad52dc7fad76a9a7c69b276b7fc66ac7b873db7beb6d1c2f6bc8ddf11b9cab1b8e8b321ecd33bc4fa548f99cf116379ad7a7b20672f2e7cb6432cc2d792221ddb59ef4f62bdace3bf3269888085f703cf0358235d22f3d2f5b19ebbb5692a39282aefae8015e39425678f982eb31755804d4f1e698491ff7cc94157055a2276f8a9576022cbfa45982214f356dc4b5eb3741e12c3f6361d9f8334f175503deb9c03eb40c6db999056538c750c99a2f55d39cfd104f5c9e77c462b127007e5e24775726a9f7c841838eede9f90f62e35a68dab88147448581bf09cdcf927afb10c054c56f4cebc4b18a4e01427e0427d1525a3857d969c5823920a1b56436e8bb484d4f0e96e17f71db9da6d1317dd6a6029c4b6ed21fbef7552581d56d786facdff8f5a225c7593cdc9bb42c722f47ecde0967dc0a8f1a5c99ce711f8399f7a45489a80e55b982caaac1e2728b84674eb27c76c2f0b67bfd4e1c88dbb26e090b9f3e19954d7b32cc33bd331996dfac4187d76b75ae71e359c93bc1a848943ee06c933f757afbc1d68d63c8e1ddaaf100069f6160ed97b3ab56a36985a45ae43ff8504e2720ea0d203766a63dde7d9fb45e7854657f7a30705bb09f9591aaa991ae8df24c31463c83dd00d02ce3493b92e3f4595bb0765fac637a5132f83e29d50aeb53b2ec911d0562c9ff4972342eed56e85f06e7ddabc08b4eff380f96b56cb09731ac82398e1df085deb8083b61bb52a8d473417c1d3ae2be90de8435a062783477302d2fa8ed939dbee525fb5804de60ad4abfdf4d02ad41453536cac2c9d5bdc3786628d3fe45d42fdea409443df330e5fd0f4858b6cda8c0a63d7b1217e5dc771bda256a823bb30720e3dcf2252959489a638089bb89aa24d688143a6b1a76172e7f0d5dbca3d033a369cc2af5f3ce0ac4ddf2255a80c23e2d467a96ad105de238cd3ae03ce1151aae6888f3dc54fe3dc07307a05ed4b0844363f0af2168f64d7feae7059ee1dcf5a10098f402f401cdad049fc4a81e1c9527c973bf32c8b7721d1b88f87297da77395debde40f1ae549eb56b2cf6ac15a7b2399ab5d96692a82239cd5a2d6d469a64b3a3154b2ae81e9a42189efb498ee86441dd039e38ac1204a286cd6d08a2218ea2e77e6379b40b81bdc19489a828905701b5e19d2ad82b7e885310007161a86a21e43fc70012b5f2c684a2cf546d9f623e593faab383cbf5879a871802ae4c9d4879bb28c5785b2d6cd3a83c8600befce72c187d48f5a879d9d9e57b3c55916b097f04ffca9aef8e3e4574bfc7db6a505021a800fd79a856550978a899dab650389f55c0654641890d0dea6c8ec177216cedbd29395a126a66c376d432d20d0bd00b1d7c1091f85af2dab7d4e60204beacc90a3d523b0be21fefa5f4e892130379c2f947889a28a2eb2dc8cc2b7d0090d41db53e9279b54e1243ce17089f946d112a5ffe1ce7dbcd4e849b6b7bce239b256005d46f7f1a2e2af1a048cf4218881e015b6cf4c7f6440f5fc61197f79749da80dc9ca03e2bb23afbe8e3656036cea31ff18ff07368a4df0b053c2d4bbb3b929bbf42cae74c88004b93493a42ae204b156fbf785eff086b5fad30570e88dcded140f016ce113f4c8907ccc0387f3eb4958953d8cacebf890666f3cb312a2e87555d93132fa88c1fb685c96b4a45ecbd3d274909ccb1f5bdd2d392a733de7cf1c87c3a8ea4ce905141116b2037c7f5adb387cf618deed6ad796711ceada04ff33d7930186582756d7b1c418ef02ae7399b431b38198c131b7a747407e2d4f08dc19f8a863e808ad6078caee2c8a1554d0f582eccf4ba0ae43afeb9cc62e2a5909ca81ba28ece723e141a7ae3317afacb3d0b61d9f199b05cfda42b750834c5f57098be4476fe2bb690481e7cf509e5e94d929b256c6df712a5125a12ddddb68e9b11dc0523cfefe2fc431185b96c5ddccd8ebef1361e2e01d812da62781e29c934eb89d59ec45adcd208ba6cc4735c59711452de1f1869861e7c10f626ba3b0872e7024b370eac3373223129dc44546ba9354d094bf745bb0e3ecea28a26cf1d3750f23276cd4954a08c05464eaed3e5610e5b4e4cb9380] + +# tcId = 72 +# private key with s2 vector out of range +msg = 48656c6c6f20776f726c64 +result = valid +sig = e38e198c1f8a94a183a90afeb416b870426ba739bce98da1e72efd600f13d38e2c0a51c6560fe6c1ac2fe2de032390fb1eb990978269ed755018ec478bf862632bea446cc6226d0bd018488fa7f8531b4c72f94c90915deb640eecdf9ff8114c8e3710b08c41314b2f81ef952eed4a3a2c6cfe9f42169af472e93a8722273706a3ce8c620be45ad9398dba3d666c998d263e35c6aae43e00835630397597f3cd22bcc6bebb56033a267105443f4fa0faa82b5637cf19035e97731e0259a2812f7432da8ecb2a8b2872b0ad5705f5f663a47f5351fee175e42e3bdde05a8d778bac9d17e80c647f667df6486e42b3bd64acf37d6c0c071c3766fcb0859310bdde26ffe2900b5bae5cca83281feac3a754ea92d6de02159ccb6b809e3cb1a9cbfc63356ed339581484d8e42cb350e0d7b13cbf0e2830e6a9dd0f45285cdee709a5ba20903c5a1faa4b765e9bdad09a96867b909e6db4fccaf6437c0d70173e84a92b729c926790e2d8ae3316f4ab4b41e326188fbcd10cf60d7a5f59734eaccd3e831dec33edbf66a43975f94d03f67bb0a7503d9342b61c1b658a0bfe65526347a1565d69d7dce2e9b633f1216112599985e714e27e6003473ad6559c2338d60ec04ca22d748fbc07b4bcb880ebf488e6c0be5d21d0d83373772123ba8d73a6cf9533a80827789d3b83353e521ac1177d0d8417eba2b98136762655a8f5a2c9d4e0dd54befe06905b1ffbb1dc1f7bbb5056c388a2fc0cc0550ab5e772a4c99ccec57ba217a89b437741db46c5c08468639d8b9cec4f9a9c4e4ed109509d8e8ac45d27f3c2c2e7dd1640c7be4a431cd250ca2756b319341286699e4483c9860d88dffc38dc212928c9e73c4f0c682dd95e436cef28aa861e8f6179d92534d998fb17eb5664d02c66ad680a7c12ba3988cbe8cd601392e8c243192463c8ab93fa68e9f5872debb3c6dcb0cb91c4bb2fea01750b3e8b055761515aa74d3116115eea65748adfcb8f3ce66ca66ca81327954a95a04fc9416604b6c9a2f9ad794e0885f1d5424ca10b3d7d8b28c5211eec82bb5d4d3bd1bbb82555c7d0faec1f78c4ba885f0228542caa5e8f9d692839dcb96cc7a0608a38db772c4522966d028c55b06011a411f3cf1de98825eccae3019f66299961774fa65e54ec685d2347f698b99672870df8d15b1894c174da61c7b09ddd8ee971eeb21f7b685fbbad1d2dddcb553d8814abb34edd4e769a1185473b4d5aa425b212ea744c34c99e7f6a23875256a6a166d4a193acf20a303e76b555b4038f30724a427daf695198425ae541bc2cce403206a58a5b01286403d5534eba27c21961d92d169c1489285beed2b46fcc0ea8d96008ee5b4e31e4df2700ecde20a0fbd18c5866860b2a408028f1b0366899a863c797a19d630d3dc1aaedf4a72c6604fb1520e2c1f4bd990406a3cd66f6685e8a5d5514f02427c9f48be799eb6e60d88a5747baade73c6c29890ac1c2cce1c706b9446963b54e170e45d764d7c2079e5ec91dae31619fb9c7660c818c748e68cb77c96606830d941efbbfd3acf111517b0c4d4a9badf954c58c0669bdf8cbf4a7aebdd95eba7c56681e8111552e2e5622bbd3b4df3f0d79a9f23b92f96aef4926b3660e8407b14899468ecea5d7bacc410a1a04e9e4636bbbb2d1e4b5f4e690b12acc453f28418a4d76daa8eddaee29494b4d1fd80ca86575cdebb6c4817d16174cced964e6ed4c00d40cbdaa1ff86592eb870ee11339f691f01d7f5d0d2dec6eb064cd374d30a97a3f34fa4d9884c002c642791c27074c02cfb631eaf412c4a3401d5a4c011aec0f13ade4e42fb1c54ff0a453e2a3d912183f9bccec6a3a9d5b3ed150a5d4b1f864b685deffc941c1af2b252f27b01c831879dc660fed23365a8f538e8ea45342ba34831ac11156748706b1291481e796382ea02212b32b0db62b17674571f25db552f16f32d8a41ccd069ae067bb6380836258d8ca84725a874cb600920d76b75bcc462fb3dbcea102b5686ad7344da070967ba2251e7d3eb6f6fa1f0300d8f639484743d5c3bafe5a553978e183b89f6b7fd097eb53febcf2bc0281bd2c32e347adf2429372d5d7cec86d3f122a33655603cb8a50a93401ef9f3bba4ff6c809a93e2d49ac15de8a54d2fa7cf6659dc48f832769957c31716077a8b1605e644ab207479184719e0e46227a523fc1414e97a1b1c041be55bebbaf0b220426d36006939cfc33836f4d8e0532ff21ca001d5980798d2175b7fafd7f80395d525caf52fd90d908acf7dc45ba9855456627c860c579ea74c28d4e67d8d64b93fe4ffb1b8764808ea4bcac269efff956dec080668a4472cd4a524ccd4009912ce69d3b005495df3298c112d76acb9a2171b020f7c245cce59b5ad9bca40a90f3c417d6a7f47b5138896735e5866336d665f0322e2d5b6110a2c49b8457895751899f912a33eeb79b1f3359f0fa0c8e9f7bf7b08d870524b28099ddb60bac8ee821372f3799f2a7eafa964c3cac3e74ad7a3a46f6508321b5da2abfd791748a7a1c4ec3868cb1af91cec7c4858b532c7777b73a3a5711b2880e182079b487b1590e2f9119b2a19af7ab8560bc3f89418eb3eb2982dc2512106ea7ef78967675c1bfb937e019936c82603c2ba920b533a483f85a468f7c38e6b52654e0d10ec4750ad1d554e642ed53f530a1d6d89d984a5fb02a504a8ea5610582342595895fedb2514bab4b568da19c35c0bf422f0d40d59693ea245f7a05b282ab6636280f3001c5fb45ebb10f9e031b16113f6ac3f65c732c38d134693b2484a33480a7eb671dd6d7df47cd3739381c8349d3beafb551ad903ea22f0c0047d8356bced4e1dd8def0fd4c51da4e498f4efacdcbbe691ff1f68b3b0787284004641a643325c765a82c68c73c458d58c0cc23690e9aae2320b2b1d5045dc62b32ee1277cf27ba578109bdcfd8bef283eab6814c07414e118dc23ffb1164f8487ebe34fbd8fa27f9f6f7424797db403910631c12d18901c1ef32f3ae522682475c6e864713a4d3ecf7c492ea1abda9b138a994249a371ebcc48b5dfe9ceb2ec44d8472565f1f4a5474c869cf5ce5741d207473d56105b1e589c3cab583d89447a5c2465d6121f01818731793a876539e5fb8cd90ccccfb63d15eff0e214cd223ec54a6b9b28beedab721aee3f02ce64bb3ba4590290bc299b462d77e14683c611adbfbce2eb855c102c196481c73637df400731f765d525932b8f976c275a6a03fb4861d06540817fde3faca07909e038d2e45a76af526fa014a8764c702986c495d409e6f11842c0b7f22f3145cb5ba56e5bca6ed6cbfdd9d79a894606b982747159c7396794b111adc9f73c16a7b1287494d4756fc52d71e39d2dc87c9d698b0a262b69ee3d189125e664d303dc9280277c062eda6bd6b57841400e806e642ec7dfba6d9968f16dbe8cfa1af146e29aac96fe4bf1840f0dab6d371ae922d88a9b204b528f31e79f5d1e7ed67e36778ce5c2643129260b937a09ca245144fe10faf3392ec6835bce469afad03eb6804a95642d421a1963b34bbcb604cb494ca58c5b52c11e6c1a2930da061d779e10e80b88fa40f683a40d865725e4ae7ef4b3045fd3459e077e34cac939f345558d927ccd2338f8f037c6a5000dfddefefee24f3f0de6715c0d85385447a70d2aef6772f26e23f158f9af0131e6a2f967a5d0a54604b1769eee4390984a4ffac0172f592df4b04200535751135a732b7e6ff373057953014d35381e86e9678274630df9ed86e0b8ec93f1240305318fe889b35e0508214a6ba9e2e2f2c9b142932da60fb7929269bc3498c159e323638b9ec7fcf2ec09213535a1250fd49895f5a63c3d22b851239f5094aaadaf58e88ca8de975a1bae861439a6cb3dfe67e615fc1781a11327335fef08a79082794daf5cca4e9fca3bd60899800854b01c31de872f625bedc4f1b6d659584181b1da46b2fba689e622e255f05ca9a619a4fea28dbff3aa9a5dd84cbacf6ab630b855aea6ec6e9dbf95a4815ffba677af4ce6b418a4030b68607d5edb7e470faab648156cc2c152b21a381469473e3c0b174a7eefdd8eb4a47061b883123325dccdb54d8b50412a286e940224069810181be94b3b2ccbd40aabdef6aeee34bdf7c7009ca614cbce081a0810e42ac8082ea6f618fef92a302f5f54a93e261fdac80852add599c4b87aace0dbbac0585a04812f2dbf0185d9c06b24db40888ffc5ab02175debf3c4883fb8010de69a2424280fdf64008ab7639973933945a32dfe185823d78c4ebc78e12d2cf656fccb603825d81feb35e9246a5ed678fd2ce6dcc12c7f89a7004f32f4a3470e040bfda9f6498ce518f8901261521847b64e3350d0a5fdce53e38cf889f79322698c826b489c4836b383c5a06ebda047b57454b3c1fd446ee37d7ffc2be3b4b290210aecf24a3f15d7c94d29009d79b0a66bf620dfa6c84070ff04da280c244fec671c6af6b8dd969e772d056ab8e9496334baba49550a991613873f6e1bebb432ac0787c744634c1ee060121ccc8d35543b289298579c4f2a6239139f74e8349634f85a03068e4b01b6d8891bccce4f80c0d3c404547539bbabdc1f81b21242c4a5557bdc4092a0121304adeea0609141ada0000000000000000000000000008141d1f252a +flags = ValidSignature,InvalidPrivateKey + +[publicKey = 2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] + +# tcId = 73 +# public key with t1 component set to zero +msg = 48656c6c6f20776f726c64 +result = valid +sig = 0a4133248382bb1fe24046be1eb9fade39090c9428222eeb9ac835c76ce6baa4c40121b2778514c711ac2981d174a16b000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +flags = ValidSignature,ZeroPublicKey + +[publicKey = 66239a16589a522a029a216a75a70a5b1c9c49b6432bff6e4be262d4d999c01da4eab195cc9eaee7ae840f2917dbcc0218e6439d2d4198bb0db2b0e73fb40bd1d9daf16a524c0311c9669874b0a175d8b10d5564f1af8007a1b852d1576231e77b19b7efa5cf2fc8d3869bba336b205d6a3ad7a65fba36962ef7ee3aa290efb35760bf9fbd58894c0b51bc447c503245cd5e62b0690eef1b17486080a2e5d7f354225abcd11d8e8165f7bdea98cdc9fd887193eee058913255982ab3a22ba1db732e0645bcd3588a8b3c18bd929771e5d9022c383caa1b998eeb5bc36c01936237d703e283caeed671c8151f6de810be4d22daa25a862ac16a622c4347ec92c03d6f12587cf5d660cecda689b0ee75f391aacc270946a36242837961723a99e279e12a04a331a0511b021be538dee6088288b69494292b7756bb8b50cd14fb583b64dc1b5ece98f6389ef07eea028bfe0250320c12a8e24a4afd83df9a178ad3176aeba108fb3b102313a03c9a75e1cf3f7ea6094c2fc7480415672d4c36826435ffb2332307847f1a408685decfa42ba62c9adbbc995aab75ef5a45adba5ea611783b7e9d70002fc1ab1882184fbea63d55ea407243a4db96d696ba1cc5c5699d87bb2e123f9505a030137329ecaa5ffc08f6c258fc6656f2b63dcf7282bcbba58fd11f3cab395c488a429a019c486242dadeefc6352df77aff70dbf02551945c3f93c76740e63f63aac39a26c55341d14e8dcf3c48be7f2abfc5a0fa7d15561b992794b9ed008962b1d9b163a04045c5f6d070194ebfcc770eece4705aff255cf58ccf8b648a56aebb125ae5c4eed5e3cf06604b1f66fa4fc758975ff7a731450ab17d3dee55986dd26448a6ac61374e6ce22d0f7c7e40c2d6b9bc67507b6bb673671d853fe22ab26f555cf3b27c255fe0796922751777764753576abd8f244711020b4a576b620ae433b79b87d9ee6616f91f2b4a88366c78e6ced025d2417db695e120d11baa8883eb3f8207a8d66b61fa34199cbed90dfc640241470deb788ab80b3e4a8383bb13ea34d7fbdd0ef516aa5f8426d20b166b1b05d56e2da1554bcc196225481bacada7564ff59f16291eb0810056e2bab1e544379c2ec7f7af958aa7b815ddd2d254a066b4e35bdd4bf5608f9d3eb54b1660156936248e71915879a3e3df88a373d43f7595ad166bf9e84b6a05531b70d891234154c7e3725ba363816532b270595df2463b1b2a67eb0f95c1f6a5434fd8595a3062b9ac92a6352780c7d078fb045831bd057dd49772e4b3db9806139be864f6bb8d189b2ca06255db60d8c07e424a740dd30ed77c177f526d82cfddafa05ee5cf9cbe3fb275589eff005b52005f63da6dd6b1d39335f202af6d058b5caebf29782a22549814c1921ec1ca21805faca60e434b0876754249caa34b21903f874df5e4548ad8d4bbb0bb2f05ef377b1c8b294af53c7bc696353a850ec5c33c9460872bfec382ac0392b9928bddeba48d24819a500a4750d49c8eeb9e546154b5b8262ea59f7cad16478243659b246740ae61c96e4c2e0213eabf5019040ee9369428f833fe4163d54ed3cbdc5fd32304c890c34dcff1d8c3b9b66c40a13a3c21ac0ca1e69b68361a0564743f9f32c252ca370e56860a154e4033e5fcf63a6cd1ca64deef46164286eb788f87d9ee59c6899ab7aca62e3698639464abbd9ada4023b87f45f1ee05ea2d5fb72713e9aaa91df5c483f54cd19eed9408b94c544af3f3758a6be0933ee3c24edc1427cdd15995cb32b8ec89e032ee949952e6ed7e941c9943e0dd486faf28414a0795eb502797d8a7cf6ca3f051eaaa5d7fb20e86a72bd44a97af6dcb41e37ce33813f0c8f17a6e4d2e2ea506811083ad9a93aac235d7fae01ecea29747bb94552ed1bd581e86cee23c4b7e60b59b09be4b3856116d7f5f605d648147371117e1baba9150baebd49c624afc9a64dab54fb0adcdf7d6d84e64b82942b114a78d824850d6b8719a4b90f41db28b51f351d7059549b0427c83e629ea838cc141f88cf041744749c41cea2bfab0b72b68c355bfad32bf426515b1f675f08b23f8dfe09f103272de8f00c16741163eaf1e0beaf3c3b02b3f729d4fb94aedfaff3c0cad893877cdd0480e61e390ac74fda52f2370ee95092cf24bf71ab46b7f5200b1708e5119779f3aa68ac163ef7999d9a33bf627d15f5fe18166551ea2a5aaca0655869f02ca1cbfeab17e3a2c0b34abe0092f154975fe890418ac191ee6dcbf72e489ab861393220a528b77cbd0de2599efb5b622475142d223fe4a3c5ca68b003766f84b8a3cfcdad05802d287ac4b4d4274c2aef41eb38bbd2f2e5ae9a65d138da3ae32b2dfb33f836b9220db288902dacdc1af9f65f85d9f6a8836132c258475f2511b19a299094f03b5abf4fc02b489efbd4877298d521be2dcea7141f291647ed63f0927710ab816d60b8d72002e95b5d77c0a5c10c346962d06396cc521ada3b3550bc3b3d4cad602da0ad801246d91d33237283d3e50f0d52912b99d9de026be4e84bff5560b9bbe615ae567a378e34c922c12f38d8fbd335ef64944597e591cc3b95b7dbf106646d45926dddf46026d3b4de890f093f03abc77a0ce697cb64562a676d93710d144dee2aa22ee7f6c7cea94b78e61f2c228644d9af00200afecca9ff44c4cccc5dd6f90445deed048edacc3565bda5f3aa1177189f83bc9fcb8346a20d39a90def25525e1468b25a59161108108220a2f6e25] + +# tcId = 74 +# rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e +flags = ValidSignature,ManySteps + +# tcId = 75 +# expand_a requires 150 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = af2040f9d90996985b6efd6a6ef90c465369a9ab95efb537c85f137d528d26ab7a4d5035efe5f734341775263e3b117d2f2c5544b0ffffe4f548c87846deb2d34af083bbb07e3c358fc78bfac471259d87043094833956eb4d9b23d1acbc7efdde13ebc883290783e33d743bb10a13bc8eb2a2e6ed552d8a1780055b36fcf0987b032487ea60b8f51158016982cc2aa49318284d5e600eb36c405d62ac7d6c32f88b1f5d41f5f8d5bbe3393033c51a95876c0f9c2124d6d87b98634a29269be830da07725cc8621b64480492af23c67aad018e44c2b957930e36171d1ef3cd6311cca9ad14e1c58a7d6ac6d2cee66319faab0b0c92533a1bb98eb909f5feae67c16e4e29da9be03daf0092cb2ace5a4316f2a6781109c19c19e2d38631e0aaf91aa27c8b82c8def955152bcfb7b2df0b2ff0b04105dfa209b3d9019444685054d439ae117c6f50faceefa46dfca10bda1213237f898143d42c9f83bcc9672797d4a03094431567983c1d8e816011bc4e7190e3f6555fe9bf77ad61b8415b52d2a36c62e5f9368b6fc0e7dc5d82c682d46cd189abe12d933a783fe9f4b46f87b705d0c90386efd551829fa995942af1bdbec31cbcef50fbdbb7e76615dbbfa9ad581b59aef0c922a69de190c16e5c4b0a3d6f0141f58aca58965e100b50163beb67f9c57ae8e79ac5aabb24bcd3600015cc65cec80784c9d05874610350cd01ac43976276f0ca6163d99d495f034cbdb9e39d24efc1ac9013dcf380ba1cb676a6af8282473868e61ff4f0b13aa2325aca910dcd767030b2cc5e44fa7e17c32786ce7edc9a432db81d6654830a16b3b4e37c12617898d5d2b634fcf250ffe545f4da5a289d470dd4ebac4362ec08ef04a31e8021a8c760fbff797773058ed11d71511b5d95f0019240743ab44527db4d613c2759357c291e7679d06c930ee435ae77f4f2d13c4e767b7adcc32e373efdea94fb70d6aaf96e64b28ed4fbca86ff1bd2656e392c8c4707e3ac6ad8b0c85c2ed19328b942f3af5eea89a7493ee8cfdf86fad43084ba7582fec07c1bb5649d5177a312d1b70f7930dc1ddad11396e5e315ac7f1d3047887a3a40a85d809f72b2661786e311928a6e61ce7854ff854daa170b9c406feebf3dc33656c9153b9f5e44aacc084bbec9c06e79a103f2544d6f5ef06e0f525687a10f48f9f08dff7d6f5b467c287fbe15b33341e3e44f8b27a87342f40dfbd20ebc214eee221115abe3f8620eaa424a59c7fa038d8969a5a95a6476e65820afcee40062e14d498544a3ff95e308afc39d241e1d8e403fb0570e2f6242771f20de2c792b6bd2996e1214297b1fa72c6843cb4f7d0196f9a40716385a3a5344f046e33e2fb089ea1f08340ccb563373795aa3e2fef7a8509d7ca174a5b6cbba90a56d743078bf9dc37fb7887187d6b201c5b6cf0638fc3e36d1db8611c468c04447a4b670a5cb55d9178a3ad2cd7817fc01dc8063161a1f9d460c831208691f30aaa4b365f074c601c6ac29056b7dc2279ae6e6467a7c2476f3fc041dab076fcfd5a9681511283cc1dc59ecd5472c99d8b8e87e5392eab30d25eeb40cfe4b7e3158d307b690706c59eaeeba9bcc6cf3e7081847789cdb83c55a3fd77ad8952566cbe6afee69a11774f10d9272ac6351b2c086a7fba26bd36ed0ba252d7b42943185235180beafb9154c93b5f87fb7561b3cb0aa3964a5d0aa4925ed09c90c0c18798091ba0aec63e3f48bca675978050f201aabfb34cc6f0497b773c2daed9178bdec949f61fa267a83dc796af329bc15d38994135fa2c97d0f805807105123a76b86cf9c82b8879450e942574a5fe2868e7131fb66be7221b4fbd25e6e19004533b6a3d12e91b058eae18318d0a5f324b0f9528a3459737af6e25e8d2179856ef0bd9f9de025e6afaee1ec49e8c98f9b96981af3cb1ca1b1740fb6dd86d48f7c6ae9e8541dccddb505a4765dc5cfc2e3caef4381a237ca2167f263f3c5f2db11eafc52b21a98d9c54619ee5c24cde5dfc8cecbe5bd086ea2a5d6616ccb47c0451b24019373edbca55bf23d1c365ad361a21a1928d72b4c8061d5cf88a956eeea3fcbc80609ca751b5a9004d887102e93867c4ad70f09105a666c3b9a575af0eef9799df422896ef11ad1281ec0032877520162bd52d59351e70fca453e4f2c85b23fc154c2a294b1d5ec0019c7754215efbabcf82c1e7f94d5873c0a4e3ff121e64c85b83bbe94bef011d9a9c8ce9ca692f177f7d0e3f499d684924dca2a653b90b9ffd485bbe88ed87237abc4ca6b55c3b71850a34dcfeb1d3efec5c83074bfd9630c308b8d94ddcf79fc813380ea7426fb10b2b461281bc38549a38f280bb2a3032c67fcce24fddacd8683a1798bc6cfd6add30c7b2dc9e04720f5149e1b1a6a39b4ec08a0c093a67987b7dc320bbe43f05cdafc74759b87cff4731af336445993f685ef5dfa3db636b830ee33bb45c5f51bea8ee5cb9ed28a4176140eafa2c0ef593b40738b9857f8ebfef3d2930387a11dd5daa630b8fb5744fcac692891e8171f3ff0a08ba5ac81cae0cd62a364f1b51caa4aab3085acb56a47cd75eafe860e92a6938a9205418e39bbaed6cd6fa9576906e17c57682b755314f437dfe1efd5c56f6782f2a8fcd489f4fdba794b452c7ffb45b9325beb72af3e2e77f1a3a816b1e5fd25d5e3864d90197dedda58375ec4d78c7302e787902dcbeb173f43da248ceaa8dffd1ffdd23324c4dcb1346332a70dcd08090954afdbd27cd3932e9acc2e9c889c02826bef84d077ff066ea06261601a9a06e5f3e8b9732821b56dbb2b0fe476ebcedc4142b9c8255c2fdfba17fa5c7e0ddd976dd0c9e5b1420aacbe03e34d8846e8bf17f79cb82038187db482957e6c054d33ef5b63937b7f64506dc384a99e47ed4eca348fb5b62a3639b84897f17b782b02131688a75435caecbcf7cc0bf0a88615ecd2ab7af31a0cb5ac6c3c5e3c4696e4b10b9c9f4e3323cb1817b2e175dff035fa36714cf95f8e151fe712bc38939bcd47b50fb202093d297081579637fa97dc8a0690efa7c2ea071ba4d4e1896387115001276d3cd28fb6217bf2ade25f2a3eabb81d08a68bce79a58ba971dc1feeaf248d47bb20dc93a68e3f32d19658cd3f1b7bb2c5d798d73025174ae8caa6d8a25f1e0e3bcdbd90a2794ef9ae032005b6b95b701c6122693a12ef18dce8609f3a48c32cf79a0d04f94bb4a6b74454e09c0f253539b185a7d5793e05cbad6a7ddd79d80d4e48934bc2e610f7fa49640d2536a0409aee11bc62b2f4e8070ccc59038dbfb7aa2b17acfa7c841b7d943c82d6efef90dc9349a3bcccb905dad4a3beee4e867581cfe8c31bb2c2f3f187a408d16de3737865954369b41c9459fd7cb3b7ef86d3cf5cb1c3ac9b90ba78049ed35470997f15dfb8c2e02033c21b8f5bad83b842004b43de82ff88df93f2687e67467990b61511af8119c0ceb6ba255a22c7479dc06036797a27067790e3836c481cf904f9f6b484f67561aa3ce9661f95d8f67a5028b527d7d530aa1b92c6a6f344b9de8286bdc755d1e973884e402cf37a3294a873a93229689f9c5018aa151d53e4fa78aede7ebf374259ab131d9695c69232bd2c14aeeea9c1b53635b733965f391d1b1d313d0e2ff7628398011fc95d52b07cb25f8404b6fbca17362422235e119c03a1db85a6d27657822b17adf9d591dea9848e748b6ce07a28d830059700d64d47490bac5a94010618ca03c1654e81a01c4a6d93d86115f16d620fa63da2a7605ce50f97e56a020bcf22e716cbd76354e9896a264cadff5d367de89d8bb48999d6164bd8f7648e4ac0bb5f2652336e72b445f6f0232920d7a00eaa25dd6a0d46d8883f48d2b2c10b72036c6904d4d5d093f913ce625922a146f4e7c908b21a8b8939dfdcb275b5fe5b52ab1f446a4fd2a4fcf5a4bb1d0c9c3c550e6f5b0aadc4d411e87eacd585ebb8c4637f9c185cdf7b282c387ad49f8bf0b3f8c2fd63f9336c0c8c4c708b9d3fff0598cf134a9d205914cdbb3802f0eb5fbbbbde18e0fa2ab4bd3ff2005f04dbdf80ca25e08e408055ec2abd1a345845311dd8dc10c3ab128c7389bf2a9f06184651fe332201020f711bfbad269ba8c9dd749ba727169c6662e319ef0013c97c9980e1e0cd275e6bc51316f0f83a57d784c639734ede4fec26e670976415b7dce3eb197540088817bebe81f361dc992d16151b8a38b88ae3fe0fbd080a1264a4a73526b01e34495e411aacdf4ac1c893f668bd095ff65643d42783a758f8f712b906f20f284d89f6efa1453ae06dd0357297214b9ce7944af4f40e3ab8817b56f1bd3fcadb9d9f366d34271fc3045f05ed2eab57aed068ad6110050e64adfa066923baa566d9c2898b2c53bf378aafd2b21feb94873fa2e65496f69f6f94321590b43f409947e996697bd93f03e3337286110a262310e0072bf62355b84099106885a05cc1bf929a42125b337a7ced1ee2ce0f7be5a68f82021027761c3bcfe134e5b554d7f08a709a180d779152f7c85eee0af248d43631edbb845a1b4a27b09cf8c69fb1694ac69060562114daccc9ce702f6eee20398c04434471777b9fee2067a5aab0c160c3cf3d5a71797eb3de000712161a3150708eb7c7d0e8101f343999bcc8d8ec000000000000000000080e1118252e +flags = ValidSignature,ManySteps + +[publicKey = e5824f0943ad27a943fe7b1d52b8a42f689fedd9c6b8df15a4d9a6484b06c9cc61aca2fcdb02f00a5700846190e54a4b2fdf5226bc6a14fcefcea7345f2d8b797802fd6fb47c7e77f8207ae53bbb21c7523e9f0e445219047cd2bc563a69e20ea9d8be7a1c3a410efd030c3949e91f186b6e1ee9f42030eccfb492a75369ba21355c4daaedfd6b8d0ea6d515801dac1ce8dc51db63f51981944b886ce97c65b8e8bf351051ada80894dd1ce6a7c2254aacf85f6bfedb89c9f2f455a844635dbcd02b95c7d1e461cad965262649e9fd6cc45c78b4709fc8099db6d77dc42077ce56a0a1f95edb138000078c5b9b61b99a946f043b69f55d4690f5c296d9e38d861b0c21af896ddca3ac874251583d8510448f070ec9df88ac62ccd0885e7a84b421353e46368b4c80ef97f498bbe1ab0ca9c1569b7864640076911fc43c3c9ba8032f3bb167e4a14ef1ca3c56d1fcb4fac92766d428cfa34f4508cac2a1a9e54e478eed6524fb13da3f4a46ed7da67e1264b6b496cd0a6954229e948b8254af6651d6ccdde15c7116f23e67082395f434a9bbc194823063f0dd36a557e1e7618027abba2058a7bcd026d172d80906a733711403af0d849f7331b35cb412559e3ab63fdf5e0e38f40d2548783db596d2d6898f1d70957ed079bfa03511537059eb70d75ff181c5de64dbc9acd3ba1e952f32e78404bfdc3ab3e7be1bf1ec1806be8e18529962dcf0935bc2a31627c0447b890eb38ac39743f276ebd972e091a0c288eb2c60db2ada783a461013170583d79580c3ce852f22e61be682a3fa8fd44c7907754a9c5c1e76d89e9c56517506689e4bed3dd1b8e8b67f4d7aec8eab7a6a1b9a7c88ef7a7e7b0e9b6b7cb6d2d9ab204493decf4a286f33414008e0b1b3d5d94ff4f2974e20dc06e6dff7994161df5f1de03fec7cd5659a8493db03ecb8eaff067a41179f85486ebfcaac722de4f970e6d755fb7e58a999bee25c6e5219390ae1d8e4eaa5330be6a896c6f7c1354c27f35ab93f0de784075637d0ab3f1fdcdf6777a54784eaf3b2e59588a854a3702cdb6d38200ee3fd4792d406051c977ea8f6e9f13bf6d3fac051b0f609f6626bb47e3d4d0ba2b21448488a0acba0ea2a7c5d46071b69b1090090e58c26754eecdfc6402acd5cdc07c455caa08a3ee3ba7415d40ae5224f95758d46b8d8c250c998bb0688cd00ff96fb93ffb49d4416213a160fa5a302e02f13e55eb2b26d2825977a21b5ec9a845598c1f8810a0f3f4692e00df09f2784c82f336c441672f38652b83ab18d5910e6939b972b21c091ac09d188218705813cd3c974035fe6b2802c9fda09e5f538ededc53d718d64ed43f9a07801052750a10b1c6125d0453ba7a4c02bea74a7d72c29acb1b84058678035c086691b4785b7230154c29590faac95aca0da04e5a7e6bd065aa650d463191a84ed6ad33076e09d2856c0e6dd82e0e5a162a415e154ad94b482c5da2ec88a2496f6be342f4420e33e05d8fd2d550db9b7a4c10c49d955c6425212f1942cb860f20f70f96c44c8c446fd15d670502d819005a5e8abc71583669efc8e3e60f3f9170d6ebde92042462148f400edbeaa447826c9930867eccae05f0d9e713eeadcaa287e1ad04502f8058178c94864899586c56ca12f49d5d880b3d6326b7bc9da30384fe38c43ab4a270eeb0a8824ec9541e5eb27243b747e08473ff5aa46beb4faa55bc5276ae49cd287d082dfc7cf991e5d66f4eb2c0942072930e2f0be76ccc6a149ce4edb0749b74e8e3f95c2dccacce6fda670ef9a0e98ce0e0b7f34039b74c28d435a0596858585200739dcf004fe4821e18ae722a057ac7c6362dbed968da53ac645d971dc37ee23639ffc302ef99ceb1cf12561626aa52168499e68928c569572af18b3f436ebbf60cc2c889d24569de91f1ed268b96fd19a07ed179183bc7d96fe8ef2bd04f2e4b81cc47d9404770830cc68bfbd98d9ca3e4f57caf256331cb188f0497c8ad1bc4420d1934dd923f5837555a6e1b41a8603a4f353f5fe149a3c0fab6c9a3a895cd489234f7ca9fa44567998d9ef63c206f3398badc47c9d9773e96bf59f976b32e0d46c12bb70abecfb67b30e714fe043dad6b5d52bbfe1b48c16325a808f8978ffce281d777885f31f45a9283bfdf1d467a1144c453a29eeb404ad4d5692eb9303de5cb3fca5d7bfc2342aba01d5f37b0c8782c5f01ec88d6f8d2d30850229d6c777adfac00972cfe32b55bc5fac95494e6549f59bc94c61456cb8501f391fcbe8308cb8a0874cfdfe645effcde0dbfd34f0f05f4dcb81c4216b5995d4164ebf7f8d071dd997d4bdc333c0c5889b82df1ed89e0951ebdd60eb3d17cc27895bf8c4e166a77501c85cddcc764c43dedd423aeff2b5dc848ef14636d99280dae32bb9fd1df67802ad55c9af75200c92d35418a925359e20624e8e0f1e93d6d239977248bd2f4a2f11d677d69f318f6b2e8da397b49ffc4501a10cfc841b6366377ad4fa7d084a039518d5ca598c892c98d6e58446770df0eb2ac7834d4b113a74f7271db891d08e38633209b4671c620bdc4ec0e37aa521cc16b3b230ea6310e5765ae46aace07ecd31ae99892e2d1047c30643f608371b08634241d6ef7f7c6b0783c898d3764634944b0d8ad448ad0b1e407ceda319bc364a811691129d3e893106cc570cd64e17c861181a70fdec15ff038079f3825b8a5e919761e42c02c2f5ccbe6bbccb981aa5ab1e2a2124ad36cc8370416b] + +# tcId = 76 +# rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = ade7527bcb0a6ffe2a2cf114e9d49d1907ef13a2eb3973f643043ac1dc03f88dceeb4217afee1203f3fdac54a13b6c44516c812e4818750e40612256faa649cca43f8a9aa4995b79af4ffa93c4478a0fb4b112deec6a100baa0c6270a00922c6fb38102ecc10df9ba0ab82c2aec27d546d8743d40ce9593e1c067c863b4732eb256be88f9329a2a105d7f4f9f8980a7bbc1fd2b8aa50c3cb8b15bd4d58ad2cd9182f6550d786d600da563537ba5afc711077afcf5f2ad27bcc885548def9c1865175aaf059dce6d3a623e3d40b1ce011e5440679a7567d0ebadb76b28fd9976f8245d2cc6b5b11789a5fd234136d8898f38fa54ab8587561c469c0cc60b03ddef90725bec23e7478942df433c1faeddbed06794d8e7e983a622b8602d245c7245e9b380301321488f904a99ee31dfa6c0c2418282954a2a8dd115d599f7d52a6a04d4f91b79d4aee5c9af7387faa55a37610355fbcc266050ea6912b81776746ec3c531c36bfe326d1976047ee7ace40e88e660bd25c69892cbc26da809cbd0b806808e19931e1d50a448f1f62b08269ce7d6ff3274cb88f6ed76dfe397307211924a23cc655474b174e8112be1b5ddd7f9639f4d22dbdf6ea48ac79767e605a733c2b4cffe2fd776fc7e16df770f6d69b527799f0e484862e298b8b82b3a811d5fa347bc9def3909ffb0cbede310f0ebfe1f89c1aa09301cfbfd3ecdea8e015df52bada77ae6eb3e4f1ef4b0b7197ac7b3348cdc6f27f95f6aee2827d954127c181945ebe05e564147a71a9abdebbffba31ac4db2d8dc7b630f48c3e2b2ee984f3518381b4db2129ecd17df588e27f5a4436b1314d4e9f3c50a10849db95e899a76bc9af091a61b1d0dd35ad75f33d33eaa1bcc1f3144320a7525cff7d4ecb2fafc8d4f6fa59ec642b847281e6e44ec3adcc67e4b10d01bec2d20fadd2d446aa9621937d51fd0cbd3e56a71eab9ab742f5db52510b0816916aa1efe1f16e97052abc39ec48e3ad2f0876eb9492f9249b20143cc62285488ed5d966292141157195c8a9d7b8082809aa0efa78279824f64c6221534fe517d18ccfd2a85482e716a043e582e8e95f03536026e98b49d6db3f78576b8f91a5107ef4f4a788a9b36d97e4baab8f9a32292a74099af38d79f45383664a41c0894044fcdbfff9677bfca7fb2b405d492a8534540e5310367a5192dd482359777e1419fb29a5ceb06d0ecee0723ea2f54dc9969e343876beb41ff8cb40a40664112852bb95c5a40c96afa5751a77a958c461a6d0e9a645f6577d624fc74f31a312ff6d2c8e3f5c7bcefd0d71e2950bdd5da7a5bc7ddae856f9d30ea9784d68293911421433f3fe963f70883ad6fa692b1aa6f01060340fadc0980c07111b0c829bf7d551d8557b7e211ac05c9657d1903078cb59f22be709db3fd9ac7bd37ece1e88f6cfd7b56af127e9e2ff57c46b9e27d2dae1a484845d873c8467be6c0c7bd1ac5bf860f2771fc2767b53d0132aa6c70990813238ecc663e4eaed069554fc35d91b8e826a239f87638e13a3ce82ee87f1283c2f64ee7d715fbaf03481df6754750212f941d159553296a11c3e5e99b23442a6052a1d13b433f74b04aa18cf5100fd2ffbd66088ec58c1d5799427d6787f7fa732d665de840bfceba5b78b6ceb6a42b5916cf8be83eaf5fbda9a4c92d3b3bde73321c1ebe7783a2f8c043647a8f59a2079f9e99466eb426dd9110c0ec36081019aba4d2421ba45d1f83ca4bd7c44b319557134ac8b973949e1b399b89f722d7e189deee7e3a738e760b1c097a7768af06d0f22de67bda64ad171dd8743cf72006d5fcc4f0862f4f5d8929bfe80ac40b0d82aecde6547ccc37f7c0427262acb1dc7af40147336af8b075df1cced5b01fc423906fe0416b89c07ffe69e9cec79a3221cd60726fe3e7a921779ed24453bbc286280ef05fe39557b1b529ee10ca0a3e54c7f03abacf589541eb02fb1d4e83db8da5fece911f19f1b8644fdc470c4d7995aa4858e462b288d61ae8f81b9cd39257e593467252cc77d77718eb705d332fd6e4d61c761da7aee85667f39e601f7b14dd7fcdc4a70e6aab78c7e429b9ad43fe959221eeb53a220899e3f632cc50db8632be08385bb79466e63ce406826ed24d5daa9dfd91ef0650086e8f67ec03e11e57ce0df35a87e36363731d5e6a129c974574c28c032492fc2fe450ff6df857aa2d34f88d740026c5dc69866e1818c6ffeca589da202db3243652d092f670b173b66e845ff249e0b69237cf6d73a8d7b6e3cb3c604dc9c1f08c543a3d532373c482a08b957fd77b78779742f7f180bdc41510a5c469afba4d656ef633540c4d55f3a08de2bb3aa13dbf72454bfa02cc15f900c9909983bcb89f465bc7eb9a9aba456c588cf0ac9689a313ca4891de90921eaec7a6ed5ac7271434772234d889382b32c6cfdfcb2aa6c4d76104ecfc3bb71945f54a707cd4851c7f502680c9f74a2ff6475c10728e843e6668f95f7f25b3b63eafa8586518819cddc9f13d7d721f00e4843ff9d6b00878b024a9368028bedcedb0f8ba9f75ba837bdf23c93d4a3257de45ba05995996821c862cd3c360bd39ef1c05ef3d64f3597688dafac2418f40bf97be693099854a05ab906a94640a395e1aec6abe7a91996896276b58a1fd55d8d2645ba1901f4514bb8af173e5e95bcb4b635ec2445e4b6205f711ab0cfbc3f8fbf8bfec533f746fd7acedf11b4a66f371a02f42d1f8f7c36a4bf5f100cfc665361a1d4e3b6cf3f1b51ce6df7543fc026d7015fb973f8921384fb921b219b7d59916168eb0d8db1150201941ebb608a9a34ac99df89371971f3921873041df22274e23ba378dbb14a1d67b865101fed96dd037492b7b73f0c8f2155f6b07de6dee4365065f71f9af7cfa7904e9ef5b6a417bb19c0edf5a58d90ac15d536df091e1e735ce641c7977e83455f0d4bfbce191f71c139a02ad09da5a71669a845986e5cd81903bc2fcf87667a77511271a22e400ee8518348357e594d94c0b9c80b738464393eb314c8eb9cacd422ad674b6bb3e86488850663a4ce9b996124515acb2b941db207ab42b2178e88838aefbe786d031e10409d0dde8a46e1f10afa41952adb8eca07f1785b7682ec2eaecf58cc5d2d6d8e41c86bb6190c316798b5f7bfcda275c61c3e65da4caa99dded9552e677bc97e9804878077af17b23430c7de12bd6f6ce103d8c79bbc761b94a0e98560c442370fae8b13e73fed4c6332d74ae4fadaf025ba3a3e3b91ca42be7ca07c84adf1c18e9d844c2256b2afe65354c55e7ac3bbc4c3700381ecf945bd57b4fd85cefde464cef8fd7ede5e16d83f770a20db982ff5632631d1251b00d443b0a8449dcbddc5bcc0b2a531a1487383b0782e3c42298c30202ff5f0cd0120cf8379a7629ee913c7d6feef0b230801c1eecf65a41fdf10297a9d11d9af6d275b2546246313ea3146f62e842b98cfa63f635673f76fdfa974f1c4b9a9f7180f5fd821c5cbc06ecae488f47b1a16d6300b556ffa37d22a039e884bac33031682e30a4f37ed4a20929070f68678cfa7ddf07e85af564281e4661ea8f6f5e7adf61d0faac9fdfeb743f46321d715bf5c1a0d3dbd73f6b694d0d54733f0777e10277b5166655baae53d50bb6ff5dfdd6a8314be5511c82eef8714aa3b6f9e0001085a980f7f9b4d7a647a0255b985706e7f2a40124a61dd8cc75b23957d377be6fb791e9b2eed408cba754ad47543a788a1c86d513d13e805c0c516d0d2d7d7227a84d3fc7dbbb12b346b4f14cfcb1b46c562fa08d5ef181de0232792171a29682d12fe7aa49d3056b475df44311dbe4bb05f6d139eaa69d63754e82ee1fa8fb2c943589952fb05dc8a3566c5fc6ffbb135badf57ebc8c97c90ed22ab381960a54d9c4815744c144e270180d09c1afd13db0aa5dd2849c8ab710a5deda647a1f2ea7488ad56baddddc131711b0eabc2a954a551d4e488c339afd7b50d0fac25eb3f3b1d0a81db4678202954886a2863e50232a5e8eb82ce53c72f0566841ca10c724621cd1322b80b776091e31868bccc5785254adaa93c3dde4bffe7e3fbc520fcde4247e2dda42dccedd33be150140a1d669ca760d2cf52222f042a518a0486dfe716d76dfd363573eb2d012dee8b23cad281c6f85f013cb16a8543433ad75afec14d50585ca6077e6a44b2ecbb7c70d19dd42114c5f5391c193b5fa492848e48760f3e858a2f3521fa0c8ccee73d4d7a051b7bac09d8e91f8355f591f8555f1b93dfc673e61cebc9a7bf1327baaac3fea44ce49e958820e593695b06574feb493fea7bcd7464747ae2f16c0648ed9f285d72e82e5c178a1de77f918681a5161333e5612167fc70c585da49d32cee28ef9905efade611117a76279fc791416ad88c723f289d116917e1a9931cb3f8b8b0bcce64cab7006a793340c369b9011700e352b358fdc9798e2c7c67d4891a1d900c9d84aa435481c62d2919f360b4fbab4e2424dc11bcafe70fa94926bd07f9ffeb3d3b8411d9d87193d04f39142db168d435ec83bd3c3d0f8da76694c6c770eff8fd9588a369e3e299b37e221bb48d382ea44cacd11021597fabb4cb050a1b9baacd7e8c99f96674d3192b565f010e27747b9cc1d8dafb000000000000000000000000000000000000000000070d11141822 +flags = ValidSignature,ManySteps + +[publicKey = 622db4b1c15f5f5ee55e9911432b2a58caa5bd242a6f38a9e2d9cac83db4a3991aef762a57ef2951187e5b0c03c0fad65f5b3ac69243a5833816f00795d125c5ab25129464d3a77dd145b957a5420f9e8bfcb6d639b4e5a46a101fb96473d2e2bd9d9c479141958fa8d52a3e63d3ea668b9268ae24e291a494caa1eda447426cf391fcc84d076c2df829b2bfb5fe7fb2182460684f94340ad41e7b7f5660a5c6d9f6e38adfe7086c45fef3dd5e66f7d7e032236774c52f8c06f3008b183d979d06fc966e34f526ff8efd86d7dffec406f880471cd5af32134fcaac7cd8caa23cec42e589c7e859db26aea52a732bb48d066280677442b640889cbefb4a6865500d44785ab33c8e74eb82d13e05a87897c022ac9614a41f04e4d8a4c2b22216cfc10fc3b8b91d63fa1b74ce44983a04c9fea3e77897c1e3d1fd08a2fde8e68cfc31d57f7f156da2d33062a61fc96db4cc7a7cbf27b91bd93a56347a672f0f68bf44b9a8ba6e249e383644a2487784b5915d64849b2f4644d195dea5c2fc999a8eda3cf68b750960cde5056750a3fdcaae514747a4bcc88fa4e1abf63d5da5975800e97510fe450715c03d5029d544cf9d41c59a05ae9157cba73c9f02ed8296dc1bcf8de8d0f992b0e043e1b0eb83beb0418bfefc26de68867a35b409be773dc51033da3aa784fef4121006296c208c137d0ffc48d3ce9e9e6a19c48b390d4c6ddab012eb919e5630a273ae6ad1c9faaf9e83e93da948e1691084df45e239afaed3f1d9731fec22a91ab9e5bb364f000c171bbb6ae088382fb1adcfc354e94393ea0db44db1e30acbe52a49db521a8ac79c16b7559d608f02ddd8ee514d9e2ccf0740c19e6107acb72657002979af90c2d1d0f44bbd862050405b7c9afd5b154c68a5653c3a984f4d14d06cfdc2043a2226e5f1d8bcbfdbea856dcebf7aa3759c38b1367dce410044a57058360dbd279169dbc1d5e8b7940a857968bfe0c7a5db696a23806070a69bdab657d3217b96cda7cec1a274629bd2f4c88858dbb0446df2cd895ec57521becd5177c826ad0f1ad54ccdc5c3a63456a7cb39fc7017df70390f55c96502b66ea69d7c568546b24532f862db89a0c3be684b8a3b0ca52ddef8482ec7282919dfd326deca6a4a466dce14c629dcfed5a50118e870ac6a807edb4deb08a253fa7bfb968814e02f820cf785b927db5a00d04dc51b4ec9af2448d9651d8ebbfcfac601bc1d0ce4cdd91be785461cbf8590aa1fc8fe9994eee45ac506b5e87d693fbbec2b0f09144118bf2bf38d7e996b6d40a51b8585322e2b31e386ab45c03ff843a04ba987fe5ad426dfd291019100f84ee42b399b0d93ce8d6d1f6b0c0eba3cf3a9f8206aca86e50ed517f07246517d6d434e5918e96b1b0cc9506ac9cd8fc12b9afcd49c9289a0b28376134a4ccf9aa89086cc2a4997729ac99a8157eec6f1e1264d60ef4a0c07bfbb945e6d7a514366a036dc28d1b934a8aef657319a9f199a14bfb4e452b990825fb95987c0046855d6ea7314218dd4837fd23652cb6494a5a989ca5f297daa01132775bf3e6a08a717a2f17638082e499e6cd859ef564949e15900701fb83f8afe9f9f2cc9a6b9e5eb363651c052edc02e973b4ad4a4a51faee71d3142a67fdf20dd7b77344d0dfa04643a6a921f03436dac9b245fa6065f2b23e7d3f0b1f9acd61ef6d68d939802ba0d63cbbf3d7d8c9d68dc40ae395fefafe624e76f51051fd01b53bb881b99929d09e7bd718c6750e179c3e72cc53e5cf820c1c8b0ca8459dd103deae592ee59b1fd40c408bbf5aaf3f9daba04441cfe039b7c03e52a582ad8970862e14a00c9a637be2078b8550079ddcbf14858d98e69ce375f1d40866c2c3d5abee04b06330bc764b958a0e85981afab11ba6cd8cd4b3cfa319444013daaf0ed9bccd64ac258357622e9b21e17a06d863ae9950fbf8d6118eb4371e04194b746a9efb5e1a3313f63f7d4b9b06893ac53754bb6fe323e12ef760c05c3c4fe3a03db518ba03447f89982f3f57a51a556edde0e578ced15f28779d3cee4950b0da6ad35bf4fdded4f22f0c409956ddae098553414ba2faabc4fe3cd550abe9d4b9f8d04468787a2ca50b47ca67b43eab5557a6652fc722c8790ceb93e5d494872843976fd5593d2030a3979d508228271f4870c9cd517e69bc2cd4624a3ed7d4959061a3e26319cf5bf9f4645cabdee1f8f03966937614b7a94ab7ca28ddd15f1a267d1a4caaac5e2a4b0079092e8ce9507f524044537c520b84ce0eba7af9b1c3a056209fe16ac15ea4e3c1a3837f08ce2b86c135a4a1ff78665ad76df0f0da877761fa107e86a23ccc08ef5239a365dbe1ae3e33ce531523d188438296bad2fffa43491d8c164404ca5a22e01cd2d2828d89b0e3333997f7166bc4643468cbd392546a0f015454b8cbe5a82bc92fe168c05124e809aaff0bc946295b8a12e25d2899a95e4fd57733eb0ac67c552aa370cfd7c2703aba864544f651f0f4ac9d0bc48bb169ace6435df0a9859d59f5ffec4f0226291ccb1baea61dfb2f7e14777aa6901b6591bd15fd7f6ee70be9fae2892bf8bdcafe7656289c3403f6b29bc3bf9a977f562034cce76505d750de6502103098f893c5a0e56409b4117795b85d784bae1a00c00c39f5ae9f4f5dd9332dcb293ea2e95f2456b1f3e47d65c00418b24af7ea8f250af298a58248e01a504f355affc3c65edec93a8eed6945033aae1db204dc0a9fa46924ec4c891bcb3] + +# tcId = 77 +# expand_a requires 23103 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = 8f46c68b4cdf1ec20f57a26aede6e7fa768ffe1caf2ad14dddb070af1bffcdf53e996a4c5f009b21400f21a51b90ec6d5dba942d359af0a5feebc18315dc85dd4b5b7f4bf0c1298a6b38472cb7adeedbba5367a7bb86776f2405c665f2d1c77ec94f9ed7ed3f0e025c46b158ff66fb62fe7220ffd466da07b099f4e32b7be99b39bfce7cb526f0c1aef67b63c04e21fb93c0fd44d3cbd1edf4c437af20e917d7859be5398fad2ac8bf6c422a3674c2924d01ecaca88bde6b02a92d4ca31f559075a78a011f1ff334f8d33ee27ca9a27202bb1d045c15607202fea700f737cc5db44efa4448f469c07c5c690eb5d244dd7279fdd7a5cee75c2234d176c9a1aeb337803a432c563443610a646335e1a08e26baa26cd52d836e1c3309211b071d552ab3daeb0e8bc42fbb4d5877fb3814da62306313474d5e86ed9808dcc6f0c302b2f9811fc18eda56d9e3c44fc01940510fd2ed83b85300b69170290bd07596f79fad3ede82a6b8b47f31dd7e8a04705dcaa44caa717bcfa288d2662b2ba98d3aaf930a9aaa59389e5d153a4d5692dd92c5189136ee81934b81b7da6ab8c4c1d0b80efd312be2344153cb03395eec9c808a7be202ff4f51ff0021fe30c9f7be4d1f0e53b24f67c06d057810d9a072c5394b49f500a0523e8d1fd2c3e0a4441b3132ee116858d78a9b4c7987dde46e10ef202c2a5b793a3c4fce39d776cc52c6fdbe582a3fd9a09f9916d14750341e3d5fca75b2466b5e6ad5d5b577f154907ce98b5b1e6060e0e307ea899b3911e4978070cb76728c82e91a1334d61d9939a601501fcbf75d6dac20ea9bd32cb2ced147a4a51df0ddefddea0116264bdf9abb8074a6cafa2a6ebe4a6cc48eb0a9d9cc55f14d7f2e526ca6109ab213270303a0ca3b1490a6bd056358c0e741093db14fc01cf6807d8cc5596b217e61319c72aaa18dde047c3a04b4147ca127bba41218e1ed529f534d71c442149197a5ab715e427ac79f8758e37f623b73ef6a2b55207aa7ade98ef5a4f6989bf4330cfae3e3651444d5b71001dd5aae4432980b555bbb931c0fd9f5abd1af22a4a1d2e2d117d3b8f63474dca28f96049b30548ddab448872f4dfbfec63555292a0f90d54b80c5e3dd8c5c785c3e4d00c643bc8511fbb9aa716caa06b14041f9c4bedd6c6d339220a4724079e504454dffc5c9d299c773e14da80ee3d99824b6ebd93aa71d4201492c04bf2056fbb430acc0d1d425006e5b232b22d5fb1484f25181198e81e4b24fede7c0c498d55f451f2777ccf24778493ae2e0f81b1077cceaf0c0d012c96ae8b1ac5bc3a3f8aa1f361b5beeef3acbd95b7a971021a9aad77a82e059cfcc6d0bcd799121b729f12d2cc8274496bf854bdbfd8e932942e39f5b7906b6a96f4effa903c0bce837160694b2a97ec89c1b0f7f35d16a8995f831b1e5162649e711b71252822ae131a5cc23e7be487be8b1f3b5ba359216e7273adec9bccf6c15a1a3f4c96476b90f11cf94b6d04ff59e6bb19be14f35bf395d7faf85cff288842546efd8ce42b5a29a6fa620581b8dcc51dc2610cd08cccd4f141595daca8cef416cad7907248c58d9327e3d9556bc6be6119bb983cb1faa2b492456b075c7e5aae4e311b61821f51f3c3ed0749852c3788ccd3441beb9ee6cfeecdfdad4d7d4461702e2e1cb6916ae9a9ec096b7775ca6cbb13604419acd40f4b35c7429b8700c8c0a7f6243f5cfa3aa739b713974ef74f84788452ddf5be5d078cd80a2290fd9992ebcb136bc8978372b622bbaecfff00c1c6907ca231aa1441f36697bb29ee93d5a5bc951e9a7893e4202d3cb5dd6324d7db70976ad7666da4e94941862962d3af783ab2bd173c536f999f5627cb7cb7ecda596e65dad4de7668a976b0ce6698bbba26461d78ef1bdc0267c761b708435441ba21dcac62ac6cb1db54499fbe2b441f927b993649c110c00a947be9381f3235861460ffaaaf0b353ce002b81a957e39291fc4f65fdd791281a30f4ca32c297f2c6fb8327454751866239cf4772bdf79368dd99d28c61c7209aaa13297e0fa958ab9a2623c80e779c0745c10f42e792dbcc18099a27a99e9f8a0d389e191609aaf3ad9c3a6661cd7611bb778f706b74a834aa662e70bffad896846faf86a052e6372aae1058bb9dc96b1bd9111b5b1eb47e3badb26f7396642764f3144a7e9f5a903d67f1ec74e8806fc48e354ff37a138a47b3b4c8813d7a7992aba5310a439a1d90848487020c0983b48c5ee97ec658eef7bc93b030b57f16961ec655fef8408a9132ef76016e21dbbde30251501a701b9310ef387ad88c2281a7634b381c10050c50a43d9529c923a81d9b3929727e2b499fd9738d75cfb239c6ea3e94b5951c708d18102ff06aad9d20a219cd867a4c8e7e8e1ef7c84f67217c148f44b422714a381d33f72755ef056f53098cc8fd9877cd6742b2f77b4f2dba9ac9045c17515858baaf3e34f4d74a6e96e8d4fe661211674a68e0912b7c0b4b80811ca60c4518350b3f54df34db7f69de214dae9e14abcaa01c5f28ffff384b438f46547009a8f7e55511e60f2850f75bd337f0045ee00c51a51e655719ea4da79e9a60eb2397008701becdc5a83619c7f90667ee024c44ad392cabc6d7799fa59c8f6125b85284aa48cc7537ec0ef17e83deeb1c99477ebfcb3d51df7443aa692f7319933297a1de00dd310a055611efe998e1281ba0a448521fa0c63df5e7082de1ffc0534f85901fb320211f46f439f13314800826ee72f68c76fe82e45d2f19d9722d017ed44eb14a8a9864c79f29c1082054badbd6249fe8f93f8e9fc65bb3cd1af8aafbbf56964074d782564adb1c25ed8b08f8430bc16836176422fba4e7ff1684a61d881c020d4e659429b48f9f3e64f16d24021d6f89add4c75d237fa9043d32cc27784b7c08844826178b9dddf6fb823aeef3e8fd5aafe581c393c2dfd041f8148aee08a974d5318c746c22d9e4179eb56abdc72db1c6118fff4d9d8d6cb446ee19a07b7fab8df403880aee09dca1cda2a39ec10d5a78457e3aa3cff48468170094ad22d30a2d44428cfe7467a4ec539871cefcd548c3062480b2ed2b6e7a6bd6110aeef4166cd0b45dda83aea875b3ba10a9b3aaa9726f3c782751e85550d144231853037544f39d5dd039234cb42fa88fc0e5f1e0b66f068fd90523ed6e1741679035a7e8419da10a7604b13858ec59be5e5ed7d298e29bee15eb9d66e91ea004d80c261b09474d3f32b7e6bf321fa980786bdc374134e9a5b64c4549cff6d0f073a9675a27a118dc12d5b745da2b3d6615280802756895b6efef4c3dae82e30b3c275b1d34aa55c9f650acf2b727c7e1ce304e1f966dc549a785952135073c3dcb9216885a7460fafdcf7b5fba53789268a8a21005a877962eac88805d7e1286cbb26e34351c1ecfd808a9ebecd2893108fcda6a39eabc133d7fb015ab978ee2ce4f6c6f132e11eb24a82e4e43759ad1ba10dbddcb758a54cb1cc9ecd955bc7f43cb6144423ba5d62d6296c89b1992751dcfd37523b647ac22f468b37120ccc461fe4bc817796e835d0f47a351e2c18769a25c988c7dab905001c8de47aef0e75c7d5b1c299db472600112f656d3740c31ca5017f4624803ee5baeb4ad4974a04be45067e747e2071c66f1a2e607dd11810c78b48fd7249398b8b5ec18e494811e68502872a0a9862d8d9f66122533f0e4893956aac7d98c3f2fb04ea93d8a0f7ddacd0072ec18b54bd814a8ded374d26d69bd7d277422746fb8371828a8e8ff398b5230a2fec8f1ac7a750fc2c6eb6c9341a5bedf7248c796f5b87d9f3449e0f0b3a32d8e283812e98154cf002a02a744f247a20cea768d283ff113466f4775e1170b7395571873b84d5a7e1f7c06a657ed9a09a8789fbebc4fe651735cd5e42a08a5adddaf9827c33078a933b74bfc83a3d2e9ac0386693a6b5eb623a223df33d5c10df6ee4a1616160bedbff3710726f7b21d11dbc7a8a59c52a57e1dc17f914fc3c6d21bb1740faaf09ce4dfc887970cb66be3c9e154e7e554a744793b704593e40550987d60a589970f9756f7e6e4d7fee9cf673f0bd40b9899de4d8ce43c14c1a0def773cdc33dd81147a10fe6557f09e0a863e369d7374ff934563f84ebcd75267822b71acf5354efaf5d35d6299fa186ae28f6092069483b19db0396e008761203a1fa92d8e7a844ed237f3ed30c8c56cbd48a29815d02acbe917fcf2212a69f543a132204a48e8c692f78f039cdc63fa17ac2688c6d4ad716bb56671876e5f2a9036e9be1e2ca1405957e428928aa938bb96a9985d9a32b94b955acc5d4314300b10057d5ea099c65f0e0098fe5edf08b8cd43e93961c5ab94cee68f25a2b17adb7234e88a9dc79ff8b72c9ee205d457c321514b7fd87f482c0e8fe0b6294996527300a64d964d02438351caac5aeab1ee5c5be5bb38b605f974802579e0d34af06a3d5b4a0156aaa1da8e35d694bd4be6908974f5f9af626d16efb52b01d5a81487b669c23dadd71461144ac251e359e6f3ecb9475b2f89b837d1c434d590618c961cad556e5f98110fdf019e813a6bf20925167ee010144597fe8f87bb1dd1b888d8fa5fa032123455c7da5abbd2633527eadcae5f4041835738d00000000000000000000000000000000000006090f182025 +flags = ValidSignature,ManySteps + +[publicKey = 2828f4f44461a839e748b07acc053c9b0241f7b1425f9c742019c17078ffa036e967faa39da0636d9399bb909039818275a62ca07ff9bccb028accb7ba906e18c9135147fb27858bd224a228c306543bc21092a59881cd6653318f824e59cb7708d34271b38ef517d9a9ae6d37f07bfbecdc05ad59da3247ba2e8587a3b09feeee4fc630c81973cbf455e60a7b2e521350c3e4044b0ae5eca91f1ea9d9f17018021153c5e7ca6b9f9ccba19e093527bf8e1acfeffbac125bdc314267372bd0f2c2fb064e990f367815fa5bc21f98c715c8dc86d36ae7efba6d75f9f5e332df3c6127ac5263647536f6646996f27930318f4db8da6484c9cfa366080d0ea01f019f5b0da25794bea98744ec505d02ee671d6a9e311ebb91b51e1ce1c59bf70714a0b7fb7e25cc0b6e86d661346b6921a96de4fe1de9b788e18791f6e9597f577145ae7c9b39b8c10643edce55bd8db7baa631a0ce1e52b1c67c34761b4d045da421538e1efb7e9249da2590dd52f05102691dd529a3ada382ba255730e3f594104e9e2f9bd9a0d012f446905d6eed766ac4cb3094e5c40b5e2e12eaacb433a1f4593b74a0e8c5033c6846c7ac866d756d27e07b4f771d2d3f45dca0cd9fc1f50b24c50181dfa64530162e4513a1dc0d3fa73fbdc5a9f2a73a032f59122dc818f064224f4687ad32d27357d6f0b3c392eddb2d25de43bae084da96bb985e5521452f056ac139b81167285164ab462aa2c31a3224903f72be0cad6f1de86150c651a2319cc132e55b1517015522689b7fbebe00ebb9bbf494680ef954c97349f87dc4b3a67de92da831f6b2072e294b0d5191be06feb54e36b9c7f8fde964754498174096ab1bbca6dade876c8166e670196f507e6127d9c7ee4d5195bca2940c27375d41197552eba03ac9a2ed59facd73a322f7d701f95433519543a0701c2be58e5505632e63fd831cb92309dd23bf9757ffef9bd618cf90eb184e11c51e139a9ecae0e009927eb64881519b035c81370d602fba3eb43f5c8a031cf093b634e28028c97b5d7ea962564639d247eaeb8d4f5deab4b587b87b8337f7b9dc980db721b7d20e25043eb856147a429ee22655ebfc3b54b4d7d957b567047065de5ea915f3259b0cbcb4e46dc4036d9d4ed8506f0ce2ff7be09f0eb37e6b1f3743eef7bef637c2619ec5e75c232b4dfb9a4a860f7f808cf0b0fb3d0981a800ce83a26282e02bda97c360e7b084c727d6b5ee5aa87a938fb6f714ffd0762790e8333991d057765f4b9cbf26f5b8c2ea993f6517e807749f342cd1623da8003975235fd54517fcad9fa2f345d1193bd35132d82a33a43b344a1e1a302a96b318ba0b28f21c99c940a20cf2bc3dd7d4d8df7e3fc47ca751be64ebc05703229b7e74551f5e57617ff0dd8ad6c2024ad182e9998a3dc67a6ed0bade4872c066c54ee822cbb305238547ff4de783375b6d560d3c1bf818ea5c208cbc6a8d8cf77eac9a8b6e80af4c434d0fb2f42083c75b1fe0d609be047d182b637ee37c74fef271a815a08174cd070ff39c660473b054c1b9fdac90c318a6e5b1ca8918980e347eb077b3595813a12bd1b4c9c6f8d902375078b5ab0fa33d8152789e86150f0df469b4808b2fbbc9f18e4434b9b91b61bb4fdc39ef06630934a4bfc2b175f065f94231bdd95c419453fe4fbbc9d7dbb909895d04d2f2d1e2c2f3529a900e4b347060a0fc469134e1eeb78d56dcac2964f9d32aa74231747583f4f3782391c828bc35d3928c7a694085ed63f7c83792ef85be85ba88fd6e6fed04640584def57fe1e9c8ca247c5e53e984bb2df9de8ee4a72a5d05d5db46f261315b195503e8cbbe45a9f97836997af252212aba12e5da4a7fea8e29115a0e4f05bbfed93730709ff43f378100059f28e6dde2f4b210890e5c25404b1c5410a8c32c9ab626dbecbf90cdeaa7b76248d477125f9a73a9b41fceb547675d4ac3f9aa98027fc9666f0267cb13a8199ad802595f53d4f49b18e31b1c35d2a3cae174c46d9810995ec4952739e14dc3ba4724261d17e24f6f25301d271ab952e0db0692b5dcf2875132debad65898026ca7323097cde7ec8338934bdcdba4d8d9e1cdf1399d01e6967263c78df1df84c8fdec5bae81c01de78f02977beaf958d80dab2fe1a9d70f6de7318e99cad4cfec15acdcf06570e98589c7d072c52673edafb33140f4c6ce3adae1f226e606ec0c3dd7341942cc1925e6f0c5c0f9ab40c27e5b3b69fecdb723908a5617cec70d5057e6f7516a39d747f5eb197b903758ab2947f777a34f7d6f7d0e6cb6da17069795204c90e9aaab93ce22a9c3166a7900b86dbae141fbfa876a454e530fcd1faa182e962a3d9b671b07c18c46f222b98058b96a143f188b2114a44a7b9c41c817e1539dbdc4626d5e88853f33cb8e0920db5e14d2d776bf8649a71a935e50c62c237c004face4d1ad054b831bc4a07d3aaa92ab77e5eff1a2f9776bf57287970b9ed9f1c1bba3a033837f8e0ef58b57ab3c2849187b65f2c84d299731cde4d01cf91c9c53f45dd909377f400dc9a490fafac0410724388fb8f3621d794fccd268971bd46954c51122ac725e9924339bf3f6e5bbc9a200d110adccd91942dec6ec0c4012aad5aafaa9a7df777b1d975c37a7971e7cca1948e1d16b86f8d0f4945b4fc7409694813c5dd0f6890250b6904738a5404af68e5d35d4fe7059d5c48a8b906548c94fcf76568bd562f4ea06e10bbf349142dde245bc8bdd8673e5ac] + +# tcId = 78 +# rej_bounded_poly (sample_uniform_eta) requires 3 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = 45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24 +flags = ValidSignature,ManySteps + +# tcId = 79 +# expand_s requires 23 SHAKE blocks +msg = 48656c6c6f20776f726c64 +result = valid +sig = 45c74c2f9d98d9343257f12d6ca0e80a4fdf0923081fed79412e4a468c0c1cab92c9d537ddbaddeee90b1da792c2288704605e285af67a1aca821c7115c34df21b0545ea4f8d670ac7a973a23cacdd150ff8f76e7957b98104cb90c43859359189d5c82b50e13f0328305676ecfe7e98a07f4d9a91482901fa3d6cd0b704199ca72542fbbe328eea284049ee95153b3370314c3275d76e81f4fa1a8a0324ccbbc23f1a98a511dc507d23352ec119b93b1c0b58b97ee71ed3a7b0b0783dec92e3834c7a1a0054f6b3f42d97e5fe5999659ad854fc859530b50af080b445187493cdd6094a0cd8253d24609bdba9ef471c03e620800938928b5a4a28aded028493867969096cf9d8378cc7930de9afcb94200e6bdd216ca5d5bc877d5607e633a519274ba5d79c22ff71cf54af14ed7bf0ed6b0570f652ac48fc268328cf822d4d30402eea1d506142d4743ea19ad82ef2c62e0f9e48eb104cc47db132ea3e94cf8fb13ba56fe098b96b9ec4d180f9cf204a62e58d11f640d311640cf1e393e8578545826dbb387a6c22596bbb0ccadc3de519143a4c253c07a878189693c26bb06afc8616fbefea67a390d5008c61c3eb67406553f21e340d4c950bb5409646a07f2627a7d0cf96a4310455b8366ae34e13131cd8bc39b184830a47092197525747840fd3f35bb47b308174d296a67e132f73bef36346b08db87234cd7a61df9452bc9689bd2f2fde66b48c74fca4d26e12d1c4613ae1198bd447d917d6a6f117e3ce42a38fa2ae2e554a8793f575387ad49a902544e20e1acf8973ad586c659b80f66244a658793186e2241469751de168386247b42c1f573eea4b9a57a475111d37a3724997a1423392024200f4adcd251021e3af6c948278e198cbeb5562d26ba2ebb9b0e212d34d54d9c618e222c7f60a17a634a7682036d3e467b737291ae3175f280459207210822ebf74c080449ab87fee72f9574efb116a0b1bdb9aa22bdd47d17a21aac5bedf9a3a80a56ee4dc57a079fcd3d7c33608e64b7a87482d2e1b061026df6eee3463a48bc1afaaa61a6087aee5864fe38a968b4c0e10fd839431cdfe03115f158a25fa73dc945d63743e3a9477afc388697c6291ab09d5e145f2ee9731c0de90e84ed97e48a5eea05405ae0d9a12faf82119ea5c2dce8cc118b7d584e3ff296f0bbbc057cae3be7235049bba5fa0887e6915758ae2fad31d7d26e679ceb4642a316694b3e26dd2a39066ba783d1f4e217fd9dbda82ad0ebbdc5c6c7a83ea4142874ee6fa31ce1f74f1621cf9775fc139f7819a386019d0138c82b5456b3de55f0086962f1388bd6a5ae7dc2e259d4fd7aa2393598baffb321884810e5c43e158286f031f867865ce4f2b776f3a3832419bc347570c0fcbc5beaf6a939ba995ae7ec35acf101ceef7d4e415d5abd977392794d19326f695acdee4d32b0b2545f70e03154c5ff5f5ed9baebbd37a93b3a926ec96ff2f010051fc11e2e560ef718ce7f9e55b4ec9e7fb1c000e190f970310e577b72b5d0f08a52175b466ba44e06d82b2b9a14d33eecc2d7aac8a5bb1e50a91a13dc3a7b80c077ac7e7be88ac5272adbf3e361a0d2ce87fbb860c4a4016204c7530104048242ddd11ccd78ba00c064afb51fdca447e613129a8e5e568aef7b13bf06d3990bcfdcf74830109177bf46f9beddc6b4e01aa1ae3cd9137dcb47e711e7b01319267874a9c8febcd1ab4f3abe7b4ba088029af6e4714c8e1231b9d819b7f3843673da5319299036664608278175c781a0517d50ba48c3bc7d480195236a1259ce8e4ca9fec41c96a3b2ac1a4314a2739e57368ac030b85d447090cefe997d61ed2e44a879f947541608d7296a255e3b07443110201f11c227ebdabdc04990f9cb46967de0b7448c9c2caed883f849115d9a7904fa2844b1fc4c81fffaa4cb6c93ff69f0012920d540c1c67f19e9e90c60bfa285b19a92930bbdecf2f12e257c2c0d6aa880f7609dbdfcc135f8244e2b209180541c56b8a870915c96d9f6110cb6bc8ef6485cb5d4413ea2e80a42aaa4cdba7f04815ee37af3809032a0651b897d977c7d2ee5ecee346f0d9e7848780cc90f5fdffd8c23bf3f73f0b3e53b385556b23a988afc86f99a9a85815051fef4b9bfa88ce55232dcee5312b1315d7b13552939b4c7964fae29abfe83236077e600a2a02159c52b90146ccc65881db5c900101fd48150778ff7b993afdafe2a03e5841c736264b9928d1ed7aeb7036180d86a17136cd62b9d8d90bdecdf2707cb4606b350ac6121fec880659b5726fb8ed8923b342bd22a300a6df4bce9b4f70c79ccbdf7c42c9ed3c5cea4bbe3823031c44f710053740e55dfcb7c488f600cecf1b5c974dc6e483bd0205f56c2a3a674c49ad2da1ff9e37cfd8f059158a1b15c2e81ce26b83bf86712ae8718a58c58cbe10127147b5d3aeb92162b388366d779f8a126a3b5bee56902fbc1f6a449d74a7863a0b6037ca5ffbac5041bce68a2db29dd6bef264c7d6f244de69b10aea5c7bcaa379ef0c7ab47f1bacdc57925bcdc12457ef1e737111877411b74e1ef77491661ab00bb7d38f51160a90d4b500416ccd949aa17ccce7161c3dbb70769b4953adc3fe64a2e45f0fe204a3bcb37cb3b24ca07fa6c4239710129acf1d98c1922f8fd8aa8ddb207162a1b3dedc0e390a4893edbdb690d9aef686c64147cc718ded608c329eccffbe338dca3a36a4c4e4ed48160699db6b78e25e54d0b3e551c080f3c2bf5b6b78b951de81bcb9724b4c8c66d5cdbdc77292a7b7a82481febb65e90557b2effd9f253dfe7208e5e0cb0234b566dd33837a0b93bdfce7d3322b54a37e0058c93bcf66303d0ecd55f16c5c0c68d20363b8179d4ed96305fa632d489dfd64624c4042a6f0a57fcb1afa06db489a063a59b7740f71065214b542c22d1744b6dd1167ef35bd45ac047945df7b0f67e4e6d5b7aec57b07f0f74dc4922905168849fe4c5044ee65ac36bd6095d56db2c6ed1749af08e6ab80560aea4c736fe610e4b9ab6eb212c4eadf0b2895222d4e5bd289905199eb4566e0b2569055b6d6590d9a3e4f647b7366c8793327cc9462fa3bb4d9b7d3eb8ed43a5c1603e0917c2a4b55dbd20b40bdd84dd379e4c7c3e4e7880ff32769633870bc7ebc79d6396bef835afa39539a327891b9037030c75a46b274353a5ff2f1761999b6fb214158f337f0b098f8bd40a8c8a592abc004d5f8134053047412309bfcbc7faf5dfcc0f44e766d2c7e7f651ac468330bd301e21ffc863855dfccc385c83f3c024bfdb732f596cf945a9dc724f85eaa5adb2237b41b485954162890e71e23528db0a5aad3ad47b9389744599f96ff5c7189271ebd2c12ea16000f56e0d15f0362acd48a91e3863a1ca98318266c3d63555ad96f0d188e3275fca834c20ae62bd97308ccbfae323066015e3a33169d05f4ff5068a645b9ebb7aad64ffda44f9d0580560d23850177aef4ed42064de173a50f5bfb5e5bf6d9d39eaf8d565f342a8d9880118cc1d069480bbd6cd615383f85d2e495c4c33818b6106cd241e16cfefba1aaeb5f631423c1d8ae8e6553a3ac5e8a85687c243e0d4318162dcb2ffe2afc5b9d551a7a755efcb96113f1e9b596180c6bec210f9e36a81fa686f5073c573191aa23603a8067bd441cc9d46dfd55f6b1b2c36d4ad04d96fa326b05b7526e43dde99051549718a48361a40bfda5073b8c95c154741f901007740fb0e84059fb7d085408bfce226e0cd08e0361f9cbf4b257d109cac12aa86a122ea823bb4b6c13eb74237f9499799d73e8d244288776ab6e344dc2b6dab89b7e0f764cb849473a168cdb92411b0664d76841fe5dfe477fab40997ff18c13180512bddc04f74a9a0b24cadad0d969677e108d0d4c9cd878415186f958d49fbf04e2e446f362e8c2359d3d7799f7976e490fe3269afd2302bc7cd3d434fdadeb459ac76b5dfef29bbf84814d1cf21d4c374ea12fe34c4b9186c068d7075bb05d12e702c5fd6c7e6a7da986d9d65031bf3fc0a43aa546f06e46785d63f02e965e5ffdbaa9ea7a092e1a149d3eee256da5810e1f565372b5d96a899f15ac7bb97a2cf510539d110db26e98f20056188177b5eba1e017ed78f60acd6c8ef59502a8b94776699a6fc80191ade5007bfa62df60c63875153b2305a8f9a05ac662e485f4e7e9673ca8e85d306d651f37d06e860c8fc50ec6199916b72b711d4ca74d7c031f03fd41bb7405c684b136beed4110bec947ccf1b56578396fd88a70f14ba683bed84e70a72779f31d7ca3d9db73ad4133779ac7790bd7e378334badbe2a148b2de5f3277b1e0b2a1b2396b88f1dec7e49f94bb38ad9dd509fe23ed46c0830ab1f89f04d6986cc3a3b373ac9bc8a83a37847d87321df3f5cd6eaadab300c5316d8a59f8f9397c968f5f778450369bcf118ecf730392e2672a8980a6556852330acb3f76d195d95623cf419ff726172aa5df52d5163cf1681b9c4274b2257c2a247f5667923d214e0c79ee66b1f7d315273dc2b5ff41f3728a619ed0145dbf36c089710c55e5c2cdc2c8296489f817d7f7d0e6892e8128a0e3e0ba65d74b2d50826ec325359617b7eacf80a48679397b7d9e31a225276ce0e465b679cd1d5df0000000000000000000000000000000000000004070f171c24 +flags = ValidSignature,ManySteps + +[publicKey = fc9fbcbb96f54d5f1b2b71d060404538ee428f6785040c54adb8716adde1cb1fd35a18e25a3dcdcfcb36f67bbd5398dbd1e41d43e2da3d92f35a894168c5829e0e9e9ec957c6e64c0e2c90bb10402b80c16860a20e5c0f5cfb31e98fb965d79c6dbb5a92a76e0cd2e8e5bf89bd8431075d87d944f70d1d60ef39eeacb38950c3f3ea9c9e036beb99453beb674ef399472d2602b40d2681474a0f86f9322008f7ba074306c65888fb75076f2588cc828e03f4a20c6a86190705bb16d1b01f33fda71defb96cca68128d87ad616507e67f9abf5e1f4b893e6223cf9643e9bce85a60253ade53ce2f6483594507fb27bba13867cd5afeb36dea5d2d847e0d1de2c8a21465e435b427b9a21094844e4f9e386b8da5b7abbf642cad70380c2daa355a2ab183afa6412597a0d85a3b310ec11a2055a56771f6dabb00371f3a29d3a282ac8b1ee1e46fd31ccc98943d93f95c1f7b0b41c49b8c00bb229fd5c468fe47724e5c44cd90cac417c70c260cda880ce774aef25749616b941f4d3b394e58b752235e0824962d7d003457828a1d5c1549d3c496cbfe90950b780b12de7b976866edf29521f993fe3e93b189cb86551693e8016cd0147a4b6af60196779f4a916afebe71898308ba45712c593ace59eb006254a01eb76d48b9fd653e662b32435b8b5e71cdf77768b9c42f5a75f959f59a03fed130ab2c24eb34b0d41ced62726c7ab160a588007bae6e170c558908db0cab61933bfa840031cd131ac541a3484079ae77a8d4a4eefc8b72f952c0fb22352751507d311844439b9287272dc73b7b836ed85147f40871d05b9904c32389afaf94b84643c5449dc04f9a82f276fd50cfceff05e2f1dcba87d3ebfda747cf04e46da976f5864de1ea500a4ab58e7027977982fa46be9c8e565e5376733b706b01447a8bd2d80b766804e663a4f6cf58e4377346420eca7e757f6b28dbbe8e05f251ad58c61350d283de73be982d7c60250e4203a44e97849f6921238870f772459421cf223439dbaf21bae645d04b572e0884a6c8248b780a1df734b600e1ed6723d15d145b1476d11b36a337bcfe14e85354eb275d43bdfc62c242e2498f2263416d9de4fa7bad8512f14cd1cc964c9471094514ce7077d2dd2c45195dec402fbf49c63f9abcacb2e8eac10bcbb7b2312397f4ea03f70b390490592fc2b41464c48ca6dcc333be960178534b099aadf9bafcea4a5b74e1cb2aba6c13a57d05a4f2ab3002294565e02014254fb3b6f3ede1b2cf9315185e7c07dc82c74656d87121612b456b03c5eb93f1a81d8ec0eae7630937a2476af4b35fd07e61469881a2f7c0a1d56d299ee54455444a431a93e8e368553b7063c695076891e7532f29ee20de04ae37891dd3343e7445586dbba4c31a8723e1ac02c786c5e74171884217bc517838facccfde8453c62f719887425cf35068b126f5d389f394203cd377273e984bc4e9aa5b747bdbaf7e4b7607b77b0ec95e931d3e7661e98086a6e9975b72703034523884201cd6aa668eed0513bbabc6c3bd044c32fcd4aafa319041d07f7991bce70c3fb7a43dacaf7b5b58e624d36dc545d0a198ad8f03bea8363f61bc639186c497a857a85521647d856b64209bdf9311fb5d16ebdb9522345561c8f526bf106c107bc6f97fb93c98c3e5dd239ddbf8e736e936a2df93a863457889caa12cc64489b7561a469b9208873f766b57844f60aae913a27233bad42b5bde93c0544d9b52b3b45a90ce5aa67021bb1f8d35b67626ccbea718a42b3a5fa867ce53218bd48509087c67bb3e452b7e4e3aafafe7f1588fb653cf045a4ea5114806f5108fbe3410956adb1348761e6c5ce8f58b276ced2d721bfacae09c67f41ed9f00749f8a63aa9c367669980f2415cad8983691e69fb588ddda462d0109f9cc1984d4153b4fa46e5174d14bdca951a464d54dedb27912cb27b74bb65ee3a11854dca6542749a7222e589f4ea53bb8c07a84c3271bcb371d4005d04bc825868652df8defcaed9f9015e4c1d953af10992fc73951064c5f37e02baf73531b0eb5c1e2a7e6f379eb60ed2609e601abf163214e328a9f75ef17b308bc6263dd2884a5a8c607be1266bfacbc26114d75a610805b1be34b0887182859a54f6fa4b06c4275959e6b6b5a4385be6104b61fff2169226e389a18e1ad8ff1ed4eb1c99f35f4c198fe777bfe475759b4bb82f54c47218c5bdf61d506dae4b84fa4ee0f64f2c7ada1f39617acafe3649e960d1804228fde6267a6708363bc10e97fbdfcdffd883f8a231ec15263608ca462440a882a488266d35a4f878f55e07b6ca0f994a0a1f16b743bc9e5f473de80586fc18f09f0a13deb00c73a23e818b3e9241878dfac1f814bfe3b934fd0ae8be49caf16320fc729bc7d8c584d192a884eeb2ef3ad079cfb8626fcf1024758158951c6dcd607ecd7a15658e2154610085f1e5cdf61704c120b72d9c6db247fd04581264f6d14109581ba6994dbb46437de09164bec86b384ef16648649cd650714f6e7c6151783af7c4db4246683116e435a6e3c4031f21c7aa66984fb64b8d9af6e32b2e4cef4ec8ed9568df38c067076e3f4536bd37b4c66f11a426e9d76cfe29ccfab367ffcef2264b0e0fd3513b862db235304924f2cd8d07b2690771c778cf21d3b6d4e74541d390040a8582434c55a6d8e6af99c67096455b5b17cf5e902cd9928f96e7d14d4221a2617297858249b9b7235b28847f7c843d69263eeac9c6612f] + +# tcId = 80 +# rej_bounded_poly (sample_uniform_eta) requires 277 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = 447024ffde9346a213b39475099459ebb1de800e2879512a7f6747cdcaefe85abb973bf9e25a460bd9ee2ad1bd70a820d8f172e54eb46c78e95f860001323f6617d9408d2e1d25ba6826f19ff9c010fdbebb0c002c2038a178a78f652f567ecb5170f26601eae1bbd555aa8fdda21ba1dcb9e351620350e347397b96f2d29645f10b3d8945d636e58308d85205739acd6b94d671a3cd14678ad953218a6b5cb7b3222c2db794e0cc468ef45358505ace711352899851c324c12767e5a50e5288af2eb3c9402114e06e0ff0051e9aa0ca2c72e6fb479c074c04b2123e6d6f9e62d4374e0fb2c3b6662332c391f630dfe44c4fdb7dac95ca3aff5a427f3d7814bef76f897bf0a7cfd2bd36d9d49f87b870a06bc9dacaab0b129b6158dea464fea551ba4c5431237a189860fe228ec8840b5eb358a68f1d9ae9dcf90dcad2a8603bb7fabb4e387ba963b08e1dd41e02a10842b579bec2a2d431fb9595b4331f46c9b0db975832272ead202dba9be105039328936c939985d1137e2d90d55d4e6787ae2837ab48f0562da0e0e58c8075b4eb5dc9dfc97635bac8866cc5f13f984869a550a100f13f3f56a38b8a350fa4fd06207c1d32eb667fc6811c33db6cc428f620dde08c42dc2efe736aefbe59c167da7793f2bfbc6cd3aaed52d3757e8d7e44c63ae8f0852d73b5ba5569214c9c1980d3852a0b88d0248175f53e9d11ffe19a1ff5ff7e44f8a5c1074731c69198de1be50b7155b49b9875bbb7473983ceb447b2b50ba230f69155d7ac4e46a4e80762c39a97fd023d4ed38f7c425902b7f747a11d7797e2f4cab63d27ac2bcacb17d08ced68b7cc5d91c69bb8f80f17d9875119a741bec5757f66042ecd2e00847c0390170ac2bdadc769cb501ec8aa38c859441d98e5bb9fccc43eba593d928209245e6de8f336cc0e2680c6a73e5df0f554301cf852fa3dd3e7d5f720320d6b079cf2211feb3b2956a0de3f59bce94148dc91e9b0288445763117cd180f7ad089f223eecbcfb06746aa2796dab2e620459919cb4faeb7d4c0d85779f776593d6fb0877041d43ee10435cba6c7baa9931e4c4dc56898a36983312cf85a1a999bcc02cb26d091b3c5a23fd4061a09b44659f6d68b87b68d3e6c18876f9f8f8edb42210ffce4e4c6a4a01584ee1b43709473130166ce9d9890eabebea8c81d532c34a166dc9dc30f1d4c0546de34990cca8a5dc6269853d69f366056f23fbaf72be1fd469fee612fa9a75feb97c079c5c04fce08f89e8087249a77e3b0d73728e95749f7497313631ad95620f3eb3c4ccbf4cc64e6113c4044541e843832a32ad7e699a75947f8ab7e48cc65a060d62972b86df8a2fb0b4bb966193545c86f201c5be342dfb361dcf2bbd9f3a22a6ec498da9d9e14770f9b7f642314bc6f66954bba2b0c621be2b20140eb6a0f536c6178fbf631ae39cf1c66d01c35763141b689e6851d578b31083f2153ae37101bda7d5a1a428582fcc19b310fdbac1cecbbc3ecaec93d73083f9f9c0f972ce0e65cdf5db90c623405863a18a497fe23bb57ad71f64ba9fbde1e462ac28e0d7597742b2eec39741d11c406ae56248c3644f3ac44fea88050fb4d0af09b65ce58cf276b37731d21840f34a9bfcdbb5322d905d88476f89aaac0c3f6ecc7957747a8343dfd8981dcf34057746dcf440aa098e5d41b5c61ce15a72380b7c8a39c982c052cc1766364fe7eb94a49441014deb484afec1692738d50762aa0ebddeafceb7b9f6cb2d384f049a104a584dc274040f4ea030345f7f887758d10864d8c4b27abddd214be79c79b69084d71897ffbdaa0dbf5cec90f22ec07d4ac7ba12ae6ddb130ea34f774c2736267cb13178abdedddad0e0f889b920b3c4b3008ce7b18d4ff36e196b1e7d8dd043b58495e6b7dbfe22d03ec72dcbb250ebde631f43c556ab8b8465b3d76ea1cf571e6726d39866fca46a0b515f0d8479a028517f9021d757ef84fd8a8464311c7462262c82503dcbea392f88f19dafece39ca11b11ee3649840dea7054fb02770a7a46c15c162a05a6a2b5ea904f2ecb78be936e0cc54327564d6097510977807a48e1b446b5076176cd8be717380f4f02f30b5f2d2c0596f45d3c064ca4763e649c9396319eb09d37d3627d3ec6ea58df23cebcec0c9bb68861d0e2fb56e075f2aee9bb1aea052ab2c05ae746f80bab8d953f40cf18afce5f331b334b7531e472d942bc07e02c67135944efb5aa7e39e4344d365d719776494ec43cf3f64d208db184bc4f1239eca1b744055c12d4519905c66017a7a8f6d47b3f0a725222bdfde1c1d605d04cf93ef3733a7b9a5a54a0de03c66866bbfd24329a565c0092856e637a832275f6ce6113656a71c1f1ef90058afe1a376aa00be83e050169b7f9e94451dd6f493fe5caf02d6e5cf1d41c5e7539d2d70ca2ac35b966ff9f66b07401f25b259000d14f9e0aedd734b74fdda9b187bfd99a7c1d241e40f87027567316a3cbc08bb70ade50e75e349e7f3d023a021c46e84b2d44dcd04e6a9c2a5ae4ff79abc2805a5f71684b8bb661421008f45d9dbb86387beb93b07583d0cd4f4946e5c16d4b62154abb7dde8b771e22798be9c39103b5319442ae8f49d5e42ca2f90026ae62848811fc38f2c930f0b266b445c7828e3d8fe4cff57b79d168e51beeaf15c693518204f5931648702f81afb1841ea2479c8acb2f42236fdbb0a99cfe83cd3cc58ad94908d61ce8b953e433599e9a086d5655508c79dc26662950697348790bd0905d4bf616ce4f411c2f76e4f91c6159c6bb317d90356c23dcd001a43ec94bd8d808b07ddf94b93b3191cd3fcd8529197f7aec255c2a25bde0968cf689263e0a5cb19be444f36ca797376b013b244f510191bdc007ac33f3f8e73bad30638679bdfe3adaeef93ee24df4fba7c405b5be5ec54cb375a5b9eb19473e981fd08b6f7408fd00e6cf2971f63d4d4d4b9ed066318efd0523250e0f70562c1f2f5c7c7317f999c74680b811baba2d84153f7ca6d1c7d0deb5ed31da60f477754725725b860a64448cfb8dd8c107613ce6671b956e6fd769ed556f8bf8310dc2f167f621de8421dc13edc84cb9c05eaaad7d9d51a5d7b194f8c3c7082e9d53c5c7a88e1c072c468a835445505c990379d34a2231407a1035c81a0a546ee27b1b3e7908d4921bc70721911a2c0f5ac25ea8a81b2509d40f2c727a9f1d7f91a4378fbc21145320f1b9ecbe54283e1237a5b90b44c9f49edbbc9f8ec73af7e6e7ad0604b3fd84191a24b3efb2d07db8bdf05b742a65e7405ef50e47fcc92d4029f7f7be4c5e7f1b3f85d1b9a5cf8c14228318ecbc648fa7ae37b3bd3d3c33bed9bed46bcd47ce89650dae8cc2c5e2965d59006b24beba14e70b1174cc4f828f11188bf0c21d552f1e5fbb022e84549b05b3f1c2936014c1c3163269abab98508a5c3a4b0d282c6b91aafd64866d01bd8715473fedcaa36ca1f1c6bdb6caf82753d49a4395b3423fd33b96313ecf41d728a5a57fdb8d01c3be7fd831149a0e0dbcd323ae4af4d062079e0c4039a7d9cd25fe20f033e5ecfa0d34e6920bbc1e88398aede6a28439e700e8844d79967451a3771d4b26eb5d012a49a5f817651c1d752163ac517541ca39025aa428f38dbf3cec4d648cfd3922bb2cd2eb8e18ffa2adfdee5b9314a82800447ad55873b14d820192cb62bfde5699b680f2b0ff07e2fe9862128c17a8d2827d5aa73023c573cfe37d372b39c13b414b1435c7a4951cfab1d8c74115711bce198053ae6a3d24ad64600e9c1f50915babdb52dfee9264142b108312222d198810898bab5e09dd09a9a27b62b6e7d7917708e7829903fa5ea835de5725a83d034aaf7321f48afdcba299086d4b20075e0537bf6cedc0b50a1e2babee1090e22e234279d658a75142ccac00c6bacc16704f1654382681498908bd55c4919e841323f4ac8888f1514f4dc9be789c604458de0ced5143c5b1c5d3a64246a68b5c3620a5869eed93bfa07ecc2711bfed1d8d3e927aa16edeff32df5ec23a53e4cd0aeb9b83cd9e67ca15be9333960147c96bb33e7ba5c9816a34b93347273c49d14423566556caae62a2e5d138498ab7d45f5681df334e885933ed2f45c1f726b4f0e231526147f9a892e78a9442aebab81060032dded67709cb278c054d5339d29025abd25b68f32b5742c9e4e313c40293a32f897e96a9422ef349d13a70f5993221fd921d85d2e55c0517cc0d241119a9b248af27cfd6eb37f6d9551bcc7d7db3f53824dbe2acd6f1c261cbfbb346ebc42a17060a01c6cb89c95f048bbc62cdcfcbc33177f5020583552c4093b278179ac176a20451d4968ef4582854ad21f2ef78c79cd5ada9cf2fa29cbd63dd4259901f5327ed3cb92f792e12965352a2a5190387e7d47eaec012daa03b3599ff4713ec6c90d84fae59f45c99825c4b9d54e1b714ae0d13fa452da84b95c7ceaeec30e11ebf55dfe3fde91afcf54673390f35b5f4d57288750bc6e203fbd939b7d3aeb04af68abc9f454132920a95c45bd7fcb35ac27d1db2ba58d1a4dc425ed4a5d315cf63321d9e7a96757b29bb5a448b79b2a85883335458098a8b41f3bb7c42930343a636e8d9dd148bdc22d6283afeeff0817287e84c50000000000000000000000000000000000000000070b14171d23 +flags = ValidSignature,ManySteps + +[publicKey = 01c8783994aeca990b8c00ec3a55a898e3eb84efdba12db8f3acecf8ad5ab9e0aa86001124ea2b7ef3d568073ca547a5cf5b551acba08ab5e2d9a184106de7ed3ebc9a6b537c42bf577587df3eb7cc755be7c9cab128cbbd9abfa664069c4429ae879de03a15d2d7ec1e00b13961a76824115806c6406f9c4596b74e24529d0dbc66b368489523adcc643c76fee32242a8ea269bfd7ec7b8cc104a870cedfc83daea902b43f6073fa53541b3bea8f41f5b6eb60f53ab2fc2d4f3538a23c076eaed8f57aa86029a186c1ba082fc402708200ea69140b57b94085e9f6e40a9c2d712e9bf4be24b2ee1e61532531d5b9506b463056f63be7a4547fd95ba897950d42fba84e590ff51644ad54ed9d3e20aeab446183b3d728caa6dd3e13c0ff26b11b2396f4eed6bd2b1ba1fce40f9496688c127f2653e83de66db465815f79d4a84d6ddc8d0e9ba6235a7bf4a1eef348b654aa2c77038dce7c67e9fdcfbe6494be1540acac2a0a10d7d9cbade59533c893e2221d061b014620fdff18e34551c706299d0a6aab620dd5ec42d2ab09b42bf026ffdc49d7a624e7cba6180e22cfdad5ca927e9ac5277dc2d341142b793b46f44ff8b24c934b582dd35e63d072e014be1c5c3bf94f44b1e96cdd2489230d7b0b01be94d74964f85a14b2c008873b2f2c142cadd3ca6f7253842f9398f0b0f3b8611b3957aa4e5d8097278c30772d327b937db17937dd79759c2834666c185fbfe2fac4412bd3b3c6f95e3c1ae476389a1b6a350f3121ac642a66363b3630ce5c0d6804f54348b05e9a501bff54ff27fdbad36bed90ff689123dd1f90163f483f3ffbcd7380dc368d631b98a43d0153b4e1ef895cbcaa375b81705d2d8e8152e1daefb0448581b7e458edf90fd4dc58274f2393771928de20916c0ee00628bf51b6b1485cc75433b7756a07364746a4c2a38e21dca103f2784ffd5328ae1575f7359447b27c4f380f74d934a7c9a5e2dd0b382d84ad5e60b4d26e0e35c6827aa3663ff89550e99731857513e455e1eba734c0feeaa50aaa543bcb935fcb23f327927d86df7ae19cb179b4cc60f5a7e62c16eea7bc92a383cfdb4c80b837de045475cd837d9e3d1c0921c446bdb364b18ab4df186cc966eb551632f96e04e31835a8e7a08f14674b61bf3b45167a4f3eff00b2b754777ec52b55487fba51083734b3ee1124a179503225a6855dc213d74c12a644b472d434af24dded4789e3958d0c9e9043f8eaed5dc0f30a9a7afaf62587f800f828816f411f220df65e436572aabe887ace1328cd6146fb789ae6cbd050cc4f5611b0b533b55267d4cb3a3f79ebc13b4e97a6279eefce101e5acd0672665865ee211e99365f9363ec9e871e029a9a78512501cc5613388cf51109e7f9293609afc883dd9cd570d3facf8b57c7131eacd6cdaa130a9eb2559687eeaafcd5cbaa752b3b794377602e7e2dd7e450361596715ebd12e1608ece781f08a7917b15801cb3c5cf5b345c4b816988819e360badf36e5d52d8cd66a43a980b952d490c48501817434696b9ca061b27db5952ba249fa618017b7606e8a24b531232071e513ff20c2e05fca6c0c3e42f410c8098e02347dbb6fe2061e65359a187df76be1400837c0793aa0f9c0d1df64275a9df16a50b7d519f8b51ddb93a2ef0d82a616f7b4e69a6fd58ba72df593b3634764ffa7bd935032f00d49383c410d69b087d17070521d4ff49aa57cc46fa23c5edd21ad1425a1356740ca98821c065266dee6b41187b193316b1df0dfc0aa8ebb3e276c5cc357ec3420aa61ad588b01226ed7c653578dd42ae2be5b4cd36aa28bfc9afb1e51cf874605068ffffbabe15767fdc673b975eff3c92461b1b4aaaf3ccad8b3fc9e387ab904a8e572241923d27780bdaf3ce6cf8437ee66be074d512b3626970893d3df678653a220cd059bfdeffad46b375ce5f908c398542f15b0b63dfdb0f53934d7a8fb10a6bbd93962e1151c9736f03fd336d361605d688127f021cd9afe3f8da90af9b1e8c9e7879a7c30aac69294141099d1d503c2a5133f8b0bab47407693d7cd86aefc34d94743fee73738e7cdbd144ef9792f90ccc75ade1a9352ee7dca62e0358779105547a636cdd73709804e21bcc56c81190b786da338e398138e2dc52484298859bc7638d661fdd06e460cc47e7a533d76befc2ddd3728f402a0b5c7082f6a1f60e96e454aa11f178a1739f6ea30b7f6cd7969617ac7a42240f299f985a59db2a1036079e97b626947588c4719ffe3263b02e31c2f0d43f5acee913bd730611dd4b6146d16db5baba98de460c21f9c5edfe5e93c47f9840551f55b9e08864f68fdea344e43f83d7d7274232591257948d11087d2828c7bc4f585c8064418608fb3a004233b2e5b097ac2b60481339ce0f14ef5cc7a21d23a6465f01507639ce13bf12ecb2636850784728a89ecd9b6b31222c9e0249246abd1820e5c734b7467db4d10fbcea65bec7f48fa058a5c1fb2dcc76fc480d2e5aed0aeeadb238487de0296efa2052083942c79d2b10308ca123724765c7f0d34cda9c0f724504dd0b765a6bc844b1a457662313d5758419384d12c6390b32bc708fa67ca46425fa2a8ad1e3980a55af646ba6eadf4a9959dd206e61183908e70af65b63ef8da29a9d98e1c9ab5214fa4785590134a1e4df5fedbc81179557e8b8eb9332c0a5716e04411aa2cff283c18c55f8e81c59119c05b87fc7e4ebdb2be4b07f0d7856f595a5a7e0848d7fd] + +# tcId = 81 +# expand_s requires 2649 SHAKE bytes +msg = 48656c6c6f20776f726c64 +result = valid +sig = a6d86189aa75e8618ba96982c40f35622405b0d0b2f6621b7d7eed57d03eae4c03f3b9ea48a6f4f8d272487b4da8ab4055dc26925aa8d5636537dacb2042028ebccc9613411756918f9b699242445b23c1169a8bb525e1d4277e90a9ce3f68075aa9bf3634bda8b7e6a763df2f614d8fd9ed73ad5936b08fc63cbc60f4625626fc5f5afe853829098a13f8267aa6a76a9abddc1f4da58023b6be547d1e37ee4a220bf109233bdd4402c04a5119314c2747481966d106c333434b03fd1c4c37d47e459785cb50e4a37c0293bc20428a51faa666452a3f60f88ead932b74a45feb3193bf10d323364cf807ec7193f038770e0936bbe1d96fc758cdbde7fa7fd5b8b58d2ed25064500132edf8c8a0238f0ea7b55da8cc089b4ec03cce9e78af2e710b503b5ffcb95e564caf089aacadba9653ad780b52b6f0af8d44cd8aaa5ef8713851e691392b9998e8083131a9139b6939a90a372cda707cdab2423e72ceb12e1138ffd125d4ce5c2c69b601ac6b97eb77b30b51b64cef96e75f267cec817dad9a96a05fe91301dd58586a37c74f914104f5a8cfddb386a93c237c35b5f616a7615d58ebbfa71c3551685368c04497a3946fef065fc39c37a656ae2b6689563fab0c321a7c2b92c60eae122345145694c65ef7aea65a2a4060997465c0bbff4a71d811cfbf93edb022e50c99fd92394380559e78a5db34b513c37566148aa40443e31d18e977bc35b1260343b8e32f6d4ada3e60d084fd6adf097a20ea75abc810d8adb436eb5e3bcaca06b1d0852e9301d7d961571529a777cca4429cfba1e8c325aaf6bf24f6c8b8123a77843f8080abd9bf441d717aebd483f1cf18e102b042cb2e58a0bec238cec8b5cdbe61fea4f9c6bfcfc0bc022ee5f50c7f5b36065703f2cec29a73795f0682940126b994ee873be25ae55d430b7a671a9835a7f6fedf4964a09bd1058a5151747e27430be0ccaadf8d2f4d3e6aee2e699cf06052f77d0f9c503215a6b2004ad69acdc8747ed63d5869d8cf3bc9911630f64cf233c932ac71a098a982012ec7e25dbfc042004d8f530b9d9e24853725e679b6b751cd7bf80b25e4734f41971938df86e2eb70dfa80a2aa3e31ce9393737c14afd5f7470790f380bb8410aba8152e51d070e71a84cfed8192bd9d3ab2ecfc627fafa891e93bdd5d0224f67d857ec37ad2d5b3ec6f9711081b3bfdae4d05c0b36c70f35b3df8b174ee7fe08c4929e9c5702ffa20081ba7eaa9dcd8187938c93efee081b8854ec3983f9aac3a1fede31da432086af172a6f78776a37a61dc1ffd8e5cf2f1dd3420d8a1dacce8f44a2faf76e892bbc4d3ad744f745a7b5ace2e1943bd70d8f366fd200b15431e20f73074aa1827d59dcd3714c36d10f4b5e0b22e2e1794983e53d21b94fecdc73dcdc048df6796b4b38aaa4414fdbaaa656bc63aaea5c11c3a7c11f8cad30f678547820487959b9eccd27e96b7ade1294875ca071956196da01a9802309e27252840649ab35a3b344b178aedb82c6e3741f1049904427a6d57c977c41c42622642ff393c7aa178918d21bc414d58c81ca8953aa680f2cc5fe7188038cf1f4a0b6fb257e1c414275b9a74caed761b83989934953a19baf98a9575c35e52441487f0b7d5645215159fcb3b7b6b193892886024c508771cbc4b3f120810c7d126b14922d6f386e25309bfb4c1494f6eb4c9572e40856150f00cee661e67e210d24a147ad19565bda14c8de45a5edc77a4865e2b90fcdfbb5003fd90d7a758cf408a96b05b6237b0728e41d5847ba118fd8d42c4843b3864e3bf07c0b7136414836ff9ae6564340d4ce226b1b608b53ffeded5c14e91aa39f869b602355f5754c9c30958cbf426d1df86a498276f130e5b0e3c1862c440ce6e41ed1d8acdcd0f305a66769590244d672d34aa4b72d023332f5788649550039975e467f196cb35a276b6fcc394043ea6924ed262a3572bd354b3685d98e87ce4a5038f3961e89764359c5a507df56c18b030eda095ef6b3568ef010f57949d3633f397a7a04c319090bebec19f521325f0d8b7353a210d462e5a3e70d768c1e8037f57b51b1bf667018e354a14b6cba7d41a23d85d1f2e0473302dd840a085fbb0ad85b19d3e569346a9407329e24817e8a374156f87d2b6b5319f5861addcabd1356e712fe3757ed9230169e51c0f3234118d20f477314514e5aeec9fbeb0ddb58404df022acba911ccc5e727475a36dc9709875303807add451004afbdb4ba7e3ce36bea2ab5c10dc71fb0daebd762a93067a465297c83d5f49b12eb2c1884d430b24c3866c900b5ef882b0b819eae3a5eaf8290f86afadcb24e100fca7538672b9a7c2ff654789319070a363fb6de40fd79e7d2d35afb5adabce11df381c70c0cfb9369af2caf58871e2c48020ea23e7d39195c1d7792651077d8daf2627c0576facf26b7819f92d01cd2375432740cc3eccf93e67803b86802f176b8dbccaadd98327ff492e5a6ecf2234ccd6fab3cbc279b5ceef49cb4d93008dbd9429bcdcb1110db7fcc828ee02f66b7da8cc80d2d6c5f4fe98d8e64930c7c4d5dc20715ed88a6aced33e9b275a8b8289566d67b4f9d0364931f0462a253efd5c1e6db9e7f79a999b5f60819110898d07cf59e6c0cb39cc252705ccbd381c7260a23804060af41d1a0c57d4e684bbca270c608b435082ee5137701f433f3e99ccb3aae30a4451ca36f0a7319160d6abe4974435845ef133e3711ce15b46e5cac0b37cc62a4ded418e648deaf27019d6ff0b821bf8c0eb0d84b531ee8d98f14f4b7dccf6eb550a525746c8eef4f1d234318dbbd2969af3012d44768dd40d2421756e076bc3fc70783de3732de15bd68464f20a7980a58eaf6784fbfcdb8306e10fcdee3aea4e9f9dfc08549b9915b0df736c337e0f918913756e97e7029bd00f5f6d946de70235cf5ac260bb39eec3f71ae8dc19c7bf54fe03c6f894cbab5867bfdcf2568ab8defa4a15bca7421901f907b726970192ac2294b5a90bbd0fcfc2185e819fb0917c4e83dc6088377dab0a080e036c401a3de501764b718990c8514af6994024c9328d0068802e63866dbf911ef1fcc05a4b831df906c2efac9bb79df60a34def5bfdc6eee7425f1bbb21619648c8f4b01d8f047debe8b1b08b1ac090bf83d4363909886b40b4f3b0f1ecd486bbf7339a4a04466cc01ef7c5fe2ed61ad912b3f447b300bcab8849917c05f8c3b8be383d7f46909b2fa0ec95dc1f77e293cea49806a581719e983e90e9fdd8097cdb92788bece98aebd951d666c22e6fe06444048d674e7f8258b22b38695843b044213e0b78b22cfce0dfae13954900338c66e216103255e49691f3f36dab6aacc9d83ea5f93cb544509e0d75c92bc7637374aeb8a0211ff989e493d893feabac80644ea092301f07ca1a1febcf0276d00ea8627aa19ac3d1b5a374abab473b13b79c202dd555fde622fdee1ad6856988c59d000b4e96e1782f42ddee2f949ba17285a7ca4bc78654ad66068d7a2f4bda254748b2685966a9da2e8ea39bf7cd8b05651c6ffd7b61cb29bccc28b7bc072a6a2e76b1005ff5adcbef1394dd4ebe4a9e47dacdaad90943aeff3336180437964085e28ff94837871179745607d11d71f4f2a04441e981b7b4d3c9f85475c2e1e89eaf8b8b2ca3ea3bcc5aade6cb406b73290fecf015d36c5e244d3bfab75c7dfab47b751917158fe333321b495478eeab4ce2cd91173ce2bae318fc3d6906f10aa86c0abd975ba889e958e9fb4fc6acc846bf7196f4a42be5dd51c4d7b5f80303b0b64e35908d7cee503749bdd67d3ff633169dd4bcf39617de8067855a4e0acb680e2879795960931d3102011ae6242423abce1ee4012f7efbe556c68371c75b857c5635297f3ba7b7e5d6f030f13f9177303501ec67315198e7bda9f3434bccc060dd433f1dc4246f491ff255752d8cb103e278d5f35546502cfe85321a6fed500749fbb51316175f062080a20d3f52da159b448df61599f5754ca046dae3a14e9e03525acd9a1fe964c8caa9feb3ada82320d2fd4bae1525830c0a3eb91cb454f9dfa43c6534dfaf6a7e1d2b19d527d4f403863518f63246889614972e0bbfb126ea0b509f0c78278ca1911797fd5da6c00c8b6b212a511ea9bfe7c45fb742a109fa40f375490c0b5e98aedcec7076e1ecfa567ec3575cbc0892460c52e94d9121c4a9219049b7325f300f04182373a0f476f91a18b4ded3ace3d001900f9316d92be485b5dbefb54fc2b6ecc79609c03b149bcf2558ff915f49bbc691b45c3983fbe61b09cbe7f17bd4365e7461ff2388720fbd74ae451f61f73f8c8b51afe87e8684508f7d64ba03f2abaff47a30ee51f32e25b9d07371f578df432fdd95504d64be891762adaef094318e64a5dd86eb81decae2c30c8fdf3ddfced1a6f1a3671b6687765f9fd93cf66c52b8986c5ac3f78a8048d969fe78d057f8779a450c4c7cf554ca935c9f7ad781dc3f50ee6ab1afc087f35e02889a8cc70a333edd334688c70e85e5e33d7509ac4cd6e854791cbdfade909fedc5614190cff9b7b4f62951fb40fda1cf62ae77d00cfd450db333f4c669eea1877afb5babce2f70733396777b2cfd1e10304272a373e67698c40475d6a8dcdec141f999eb0e3e6eb0000000000000000060e1720272f +flags = ValidSignature,ManySteps + +[publicKey = b41031e429023d8b0bde433401da448cee6c25c6ce0d570f91fea2e8e0003b8d8b3efecb56b34a3ade96b17d8b98ed28c6563f381cea1da2898be8a0dd4a3c7f187ee288d37f0fbaf512d127001c713d64dc036b1791e239d9f8494629b6276d0ac1e56ee7644e0bf860f098728ca4f225b500e6975a548c52d422d3d1e4f1939268060ddf304515490e90660f848d839e219866252b107664c3481aafc8afc83ae2d43f448aa51d5765ecbc910f241bdb815a4e11bb84309c947eafd69fd80b2f9cc66afa06ef67a9fbbb1fb4658e3f02babca2d96a4d93582442db9a245e1d979404a4963ee0f70ac7cadab852cfbdcc58ab0617fea49dce099a430f835f70240396aa39eabac3ec22e3ed79d724a77d37e40b8161ad8fc85c930e76d714c12b1e636a00897ea7a76f18a4df312cf7a0861bee298d6412ac5a694ac34473151728cba9d3026879332a23d2562e8eebd9324e062444696f78e70e876a8c197b95c82bf11a8588a831d684d8602cca58c4d8030fa904cd71ac066486afe9d3635f41611247715d29854ba1181c3ad312a7a28bfb01796bcd016c2f75d73fba343c8617b534175e06e4d9d2186a5e9d4348fd942f885fb569956a4f0e59ba57bb02f7cf56d67c0bd0db375bc95e58a23389cd5293694ed4d5d3fb3faefa4dc4a2e59df6db2fcb8535c37e1b4cae7e8cd0fa0d02a1b7875fa324da4c9e9f5dd25b56b313373dc7c23f1efb257a08d829c3bd1c80519756707869b2bc6fbad96beee610238142f8c73ca7667106c31d88f223b47a459baf382e45d347973c6279e62a77f8df2b489e1432684b0230ece5f2ba6c7e2ab70cf620436632f3a516e2f269995fdd4a36345a201d7ba22887d7c24c5c9cb8184c516ee4d97dfb4437a5ae8ef8062464d8badd958ad779877b4b1642505e3406b2cdbcca77c33d10905501d556c6561f4b64d5ac2ae015d32c650f427593e25b34dc334ce4de1a641c5544186ce6e852e9c9bbac76dca582de782e1c53b1dcc446fdc8fc1c141903ceecb37880fd6d5bb08a481a2315f5d39956529139d5250aaada5122d39dc5bb6d0f96e17f01d9e992ef9b220f08427ee83cf32c69058a5f24a0aa320d18923ed91661f5f74600f332e121fa51b628c086233cd9953a1428d4d8f41531a7233327f05ef347722294c31362995ecbe2caa069b869e9f232867fed5ec9ab09bd474c9ba1fd1362ae742f8f9984ae50eff7086d32e8407a8aba62df7817d694054d8d063bb6ad34b85d2e9c87d90f4338f5b92886b4a0ebf90954bcd4a7f561af87c966aabe3cbc955891c405355b77d8ab9b9ea0b149ed17266743e138ef94cb1cc823bd714ed75cad9498cf2375cb869af424abc95b05234fe24a832ab6829799312b9370d51b293e4c3e3bede66eb763672b51e0d567dcf9d05c5a3db7ea6f04f309a10f148292c33bffb8910bb67ef3324c085517b6d364116dab5f957ffe1866364a0b73a75ca5f82af7fcee26f7349d7c11a3424171b58948778e2dc03af2ee4b5194c777e337fc5a4b650558a2fd980fde30becb2dbeaebdd845b9e7fe98213889def8c4ba33c3a98acd2e0f9c6da0d9df4d53e06e597c1fb5cecd29bc0fd34446d48145a32633c74193333711d54e27db38fb6ae6cf0644822be6f6ba0dc7a41f7691dd8e3a7fe3c92ee4a7b682b0ae11c137fa1ac96d466cf491afaae57998e16a739de679d1d27f795f3852f402e8742ccd6d77d104598df9e9772ff775cc422c2508708e971481235e6b32d0308bb203e46f6c883b1736e17311855b61bdc7f776ae37bea27ce9dfd8b421531d556bbe953a703c4ca0c998aea7541be8b49c158b414415072bde726de24460a3b6da8bf23f9491e41b498ecb1ec07ffe587ae9a16d852eee18a6259d8f69ab7aa5875850d469f471173253eb72a81d546f31dea76544171cb4d0c6eb636b6acb2d1c9036339519fbabe0dd036b0fa69d0c207cfb59c3c3ad3ffdb9a8d6d353796515e5b606b4d07a8aeded5767c6be8c6035cba13cd948a0466cae07c8cac13898461b6eebda444b7b3a64ae1185e27fcc59ded90d8c0b9188b9538783ee0b0d6f90bcc753a12f33ad1e96b24585994f7b7291b4a2f1b240553d4c9e8d8e6fc4c354d85f2928b3551c20c97ba23a053f04fc11c72a4db576e76a7be027552b7903e9568608811258396d3f286dc307c4c05a546655ea08e8200e4d6002374043559b768021aa6e036144df0ea32e1f3f2a158fd2655d6afce1b3721353e5977d59e61718c95e026e3d9069b97e146340247fd7dd7c71cc6d83d2668fc36740098859ba5941c548541c776f5cc38ac3840292e4d17879ced0f72d892c297d15afa4d1da9edc7e58b1c44302b504cc8b926442c03f900cf683a7286b844bfb35cca31ebfa2721082cbfeecc681888afd938a2314cc4f667d7d5a7dc5df04b6071f108f97550d5afc29b304191aa5077183a970f099cd6c59120ae1f95a9cce12a59bedde1e499a20cf42d69e86430d18474621d0e4e4edb1b71d991cde47e6509ff8d1bd2f86440374213a28487afa099b69cb78f357e9a64dfab99d5e7ec01499d077095edc842fb32e185b83bf1bc30f9b47c48c835a729d1fba5ac37fa941fba7d05667a787a5cecea0b8b47986e897060b7a8b93aa5920f1e7e14c5085d9d2215dd6b9c2cba0ea4f999fa35d425bebc3a150c7296b208ee0353f7d23e14f09b2e5c05128e08c97f56d79dd1c0dba1fa32f] + +# tcId = 82 +# power_2_round returns a remainder of 4096 +msg = 48656c6c6f20776f726c64 +result = valid +sig = b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329 +flags = ValidSignature,BoundaryCondition + +# tcId = 83 +# power_2_round returns a remainder of -4095 +msg = 48656c6c6f20776f726c64 +result = valid +sig = b35a9d26d3cc6ae8bb05acf2044555aeac041165b78f65f13831ec482972193f4ce7eaff57bc166a11206ac59e51f798b7a0b3776e447ce2941b99a4e0f6238a8a5f3487813e1cd00260127a67f5fd09222668f3edd5db27f9f9223417f82dfdedf9ab5ea6ecbb325f2bd4669d59a2bb8634f2b658d2d3362a79454372e2f31f81e6de020436f9bc21db4e2b368a448aa15204e170ceebf7b767290ae3634b094e569375efe46b71c0ceafc9af5eab65325403e9f7573323ecaafe5f0a7b34f3de08f124da2e2075b2295d2390b41c737b48767782a83c09d46d7ef1cfa8eecf154d35cc8b68fdd4cdc10c04e0470953221962cb98ec479d80461d9608f6f489cbbd6266b05266a52d99146d76060155a093eac3c3580aea48f183bc95aa2b77a00bf5f110ece9fda38a344a20eab6be2830006fcdc5cc5ff247c357a639f665562a527a99fd1c0e69b37d5ccc50c65c27dc057d6c7be4f970b01057c612101dfe9fe6bf23b621192c5e94a8b411dfc3bccfbd11a94ae05869f711f1fd8f6ef9b7f9b1a9e4173b56c99b05bb379865ad9e414fa44e6ba4f67ab4d93fb045ca0316ddb9fd92d1ee08c3fd8e490c7e533fd1f761355c72a37d9b7d4814efcacc66c8af043560287b54004ab30b91c03d8a510cfd5238cf3ef301d8efb042d331e3c2ea48876b9dc9b05f2e941975d247defa4f8cf2c7bed438ae680fe52ab144e7bc9d0926eead50fedcd7aac60fc342cf566671e84b02285686a0e9c49e5e05807a6b96df521c38905ba9079e9aa6673a1ec2208f8b2dbf03dab944e909b58ff791facae78e429a60dca239df3e00d48fe4848033d35b5847fb9a78b3364c9b37b7e0a9f3c497e811187f26ccb57db5fd669dd4b5bf127b5f01e6a9285b607823a82062a096e0b8911f7b0543aa6fa36b0c2a5f29fce780cec024560938c61915873beb6bd642d67d609bb43f9d8b8a72859fdb13f42f4f8ab60bd23725ddca6f586501e929d9b889dbeee8955be8d3251d41c46db3ddb75b880210f447f40c6dc5bbc52d22d2c4408d68a0d8a5adc2a2c9d7348569e858c9fa5254a03f9f1e973c66752c6fb0f09e32e8a587a56107ec4801d7c1fbe2b9de6db7a46aac7291d4081a53c2c6e9b1b0afb4d5204961553f23dad621bec8078edd3031bed2651f26eba978c2d9e230083d61f054548090b8fd5f9a31af5ef2fc2f5b7e21345169e869cb8d2707d1f7dea43f1770f153d50e03f838c41ea4eaf4679d52f23c6d41727c9922bd611b185bef46a220a0a76c7ee1d45cffe889af4331b9f6b9665830ffd9b3fa335e4d0d66bb9f1d835d7c123abb334daee683116de8e4342d11ec42a834be306f1b39ce24d9cf838f7fc8ebe939abdae09f8ee7c10adc56d26fb6a928242537d372890143605bedf8c601b031fde9cec47bef17e4e54a5d90e470cf4e826fd69193e94a21e32979c368fe9ab7dc1e582d02759f7f6b8386f4b005f3c4e956ab528b8436714a132c667ec0f21fa9993d37624d8bec1d9d759f28601afd8c7467247c8bff3b35d0fbac82604ef25e4b88ea05f700222baf0b633623467e0b191d88c1bc550a1dbef2813df92556f48c99cdd22557003c3c8d39cfb91316a4b13a078afd5d52c5a8e07009a88aa93ce463318d89a1cff5ada0d1609cf0df966b0ca14beebbecd9079c09467c1139ff8ba25adeb114dc51f662d76105cebf40ec1ff82879c8e3a653343add75ec4d75ddc6f6b76ef85092085b8d121ea81d875b362d95c4e28042df3958f16c7218215e9039c1cf485ff3154e46d3f9825a8e1f74e2134dddd56a81d8c1a21121e2dbaa322926581cb75592b99c9f90568f9b6e1e36f0fdb3a9e5dba272403375e42f3a32342354a798b26e8f295a9f377e022be8485513bfe6cc05f896cb62292acf714dd81d1e87ad89b38bab5532e337b2f326fa6cd508ff2760bc2501d729a66d1ddfbf9d622757c21b2a5308143f198eb02035adf90d44aebcd12fb161515025198a26433c7adf75f6077cb8a536826e18e4b80964e97c6354455306f3c5b6a8603c7bd2302c20faa46cba18bcd57437f474939643d7c25422ad36e56c3a80cf78deb62d9ef3b2de60ddda3a6c080a39c24dcfe88ed6a5c974a5dfef3d4b524d425bafc65dfcf4d045a1d21ddf393c73c2806ed7200a86ab718655f8951a1516ee527cd407baa36e27c72e97503a3280104d92f8248f1cb0c6c0d91b262fa39b8056796f954150d1a0911cd6c7bda3870ef566ded8d656f2ade63f13c62aed5087bdc1469eeb64418ce7af5fc50b721575e99df25432804306a89fd33c0406be8beafadc28f533e12d05bc3ffded1dd59cdfaaa54bc8dbf75b05f72b3dd555172666faa87602411ef6d97ff3254706b876844ebb3948f13e62380df05f67bd13eee4b8a2d7fcc53263072273eab92f8b7bfa64371b58a412bf5dd806c2b8054e8f6efbceee0700e20f6e4e61a6fd6dfdd170fa37e6559362e7b56c9ab7e27cfea2bbbf19c1815e1c863fa24c50ed465aa12583b345ee4007e9677f5f582c9f9377e5b0b12f34ec4e8f4199bb7a683142f07daa27951466f9d608389c17c5c50cd99834e5e975304e2ea1f6b6aca94a433294831a8c5e14dbe46017932035041cee0fba54f87421fbd14b05454543cb2e95046080da6ddfb81aedc37e51d0b1c3b6d036f8d97f8ad4e7752324c8bea832cad6f8afc499b35164b71f497d86d54c5e0cfc67cb31e01a6de5cc43b42927b20ee57b1267141eecf85bcc94c5469f68176f8313a706b2b1ace776bdb69c2fad7fa383dda1895c36836da08676a1a2ed697843f135c385831795ee32a5750fcf08013fbffba54edbd4ed3fafb6f5552a389a56f41f68d1a721b7b344f9e74028217c39c3c2aa1fd9b44b90173de0f986a3e2fae6e1cdd3458446518b2551a3d3ff4294dc2c217bfb8b281b42acca144fdf8c1ba08acc10077c06dd8cbd5d4ae2336cb02cc400a1f49ec581d1e2c62e1cd21be275be4257105836aa99631041b999a16d6d57c1bda6399aa50adf0d4fb8e1229d8531aadc834daf90408fa2120ccd2d39df7f93ea12af0873df00e201b4bd6851ccd931a23e6589f4f583772ed426ee324105d72a05e308401cdb99b283c93cc518ed7c98f230d3605e987b79f8b20d28f99c46850c025d26830dbfee8230234b3efac3a3ebcd322e84c604782830397697bd1308d07d24dff64f7e453dd0eee7161f7e376c7f5e108e04f22dcafa47278be38a4754bd7c9b657fd9aa77a76cf9889a2e6f0ddcec106db418d7329686bba394ee09c23629009bfb10b360f649e962cff1b0dec8d47016cd15a068a5c9d8a721096a61e91b00bc28816f96d4fb7229d77c4a9b3e23ee56f12cc973bb0ef158c0bef405bc6483797aa1d4eb1cc7b2e1e34365b99d3b970b8dcdd7655d143fe6f4e191b2cda90a1e6158f55553af987edc08a78355557c3c36a2fb530c5badc5fa786e6a4feb041caef1fc0e18283e00724362305ff84ac5478b4db29859b980f680b1ee2486d07ce2d2b50264f693351d2c7e03de1922bfcee5dd7103c9b5c3f5426141f293bbdf920431e639dc79e63343d48480354204e920bf276dffd3b2692ed4a9654c294e1c0c3a0eeee84549f227250a4bfef594ea0c3a68bc2c6619f85d0c96b01dd05a9c076a7a2cfb6d0e3dc616147d3e7eb7006f2026040ca208351cc2f3fe3a7e72d5f2ae2c18ad5c80e1d87d439a1afb4672729ae4d04ad517e5a5dd903fc1cb5ed3385a11762b5a4e5d9d7fe00135e6857df3bb623cc5963f0573d858a0e62d31d5ecd54ca5eb4f1344ff1ba7bc2544e7140c5a2b9c3b604c88f0253e44b31f2543ef0e682c5a50bd2933f8bc22debb3802625fd8963d373321a0088cb910f51762e496f50d822b9d445780ad78f6c8143dad25cdf555f6fa49eae6841fe8e721437c7f541ffff6596b7b52770f44cbe33e1ad00857a8d36c0ee20de9c9e4d8b4d183418c5739c1072230007c196a2f67135591c9c81cd259cedbafe7178f28ed9c1c8f72e6669ab9ca2250c919e29bd71a618f4ce5cf4eed1e1e13e052fa0279fc5e55a4e9989c17cacc46a33e39b40e29580dd07d6ba47716a483e99a02eb36fa3c103694ebbcbe9310516a56ad1f6c0863ee6cb316ab68471ef6cf8612a0e6ab593f85744564a450e1771df0523dc7b3a1e7254a55f1e71dc802a98b8c60e795d1b50af67bbda06b3244372387bd3e1cea4b660a83644f08e9ad4578e431c3b560dddfb4aeb36ffa993b411df5bd9dcb13de404f818aa051bae8fdcc8c10190d4f0c7d398a0743ca53a388120d5616042c0b1ee79821e35b7717f021b2c28e871fdbe5a4c06b1a4cb38f4b3950604dcd9791904212502b91e4e4b39c9b805fa7257dbfa632ba272ab4de9cc3fcd0c4baaa5c231d959ef27d68b9ff3a473176533fcf5fd26c0e90b7d5d65d4f8a4a374343df23e823cabf48dc372f7d508bd2eb0454a4ad59061cbd1b0a57e777f2473ff769e5c91b3e05af375fc5123b55bfe419e975153193bdfbaff571c0e7dc2df2e0d60738f8214a43ce6eb8880f2da4ad6a940143597eadb4b6de022329456e84a8b5e4e93d9fa9ddfe040b107ac21e4e6178b0eaf907114472a5e400000000000000000000000000000812171c2329 +flags = ValidSignature,BoundaryCondition + diff --git a/tool/speed.cc b/tool/speed.cc index ca5125b5af..325f82b59d 100644 --- a/tool/speed.cc +++ b/tool/speed.cc @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -753,8 +754,7 @@ static bool SpeedECDHCurve(const std::string &name, const EC_GROUP *group, } bssl::UniquePtr peer_key(EC_KEY_new()); - if (!peer_key || - !EC_KEY_set_group(peer_key.get(), group) || + if (!peer_key || !EC_KEY_set_group(peer_key.get(), group) || !EC_KEY_generate_key(peer_key.get())) { return false; } @@ -811,8 +811,7 @@ static bool SpeedECDSACurve(const std::string &name, const EC_GROUP *group, } bssl::UniquePtr key(EC_KEY_new()); - if (!key || - !EC_KEY_set_group(key.get(), group) || + if (!key || !EC_KEY_set_group(key.get(), group) || !EC_KEY_generate_key(key.get())) { return false; } @@ -1133,6 +1132,119 @@ static bool SpeedKyber(const std::string &selected) { return true; } +static bool SpeedMLDSA(const std::string &selected) { + if (!selected.empty() && selected != "ML-DSA") { + return true; + } + + TimeResults results; + + auto encoded_public_key = + std::make_unique(MLDSA65_PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + if (!TimeFunctionParallel(&results, [&]() -> bool { + if (!MLDSA65_generate_key(encoded_public_key.get(), nullptr, + priv.get())) { + fprintf(stderr, "Failure in MLDSA65_generate_key.\n"); + return false; + } + return true; + })) { + fprintf(stderr, "Failed to time MLDSA65_generate_key.\n"); + return false; + } + + results.Print("MLDSA key generation"); + + auto encoded_private_key = + std::make_unique(MLDSA65_PRIVATE_KEY_BYTES); + CBB cbb; + CBB_init_fixed(&cbb, encoded_private_key.get(), MLDSA65_PRIVATE_KEY_BYTES); + MLDSA65_marshal_private_key(&cbb, priv.get()); + + if (!TimeFunctionParallel(&results, [&]() -> bool { + CBS cbs; + CBS_init(&cbs, encoded_private_key.get(), MLDSA65_PRIVATE_KEY_BYTES); + if (!MLDSA65_parse_private_key(priv.get(), &cbs)) { + fprintf(stderr, "Failure in MLDSA65_parse_private_key.\n"); + return false; + } + return true; + })) { + fprintf(stderr, "Failed to time MLDSA65_parse_private_key.\n"); + return false; + } + + results.Print("MLDSA parse (valid) private key"); + + const char *message = "Hello world"; + size_t message_len = strlen(message); + auto out_encoded_signature = + std::make_unique(MLDSA65_SIGNATURE_BYTES); + if (!TimeFunctionParallel(&results, [&]() -> bool { + if (!MLDSA65_sign(out_encoded_signature.get(), priv.get(), + (const uint8_t *)message, message_len, nullptr, 0)) { + fprintf(stderr, "Failure in MLDSA65_sign.\n"); + return false; + } + return true; + })) { + fprintf(stderr, "Failed to time MLDSA65_sign.\n"); + return false; + } + + results.Print("MLDSA sign (randomized)"); + + auto pub = std::make_unique(); + + if (!TimeFunctionParallel(&results, [&]() -> bool { + CBS cbs; + CBS_init(&cbs, encoded_public_key.get(), MLDSA65_PUBLIC_KEY_BYTES); + if (!MLDSA65_parse_public_key(pub.get(), &cbs)) { + fprintf(stderr, "Failure in MLDSA65_parse_public_key.\n"); + return false; + } + return true; + })) { + fprintf(stderr, "Failed to time MLDSA65_parse_public_key.\n"); + return false; + } + + results.Print("MLDSA parse (valid) public key"); + + if (!TimeFunctionParallel(&results, [&]() -> bool { + if (!MLDSA65_verify(pub.get(), out_encoded_signature.get(), + MLDSA65_SIGNATURE_BYTES, (const uint8_t *)message, + message_len, nullptr, 0)) { + fprintf(stderr, "Failed to verify MLDSA signature.\n"); + return false; + } + return true; + })) { + fprintf(stderr, "Failed to time MLDSA65_verify.\n"); + return false; + } + + results.Print("MLDSA verify (valid signature)"); + + out_encoded_signature[42] ^= 0x42; + if (!TimeFunctionParallel(&results, [&]() -> bool { + if (MLDSA65_verify(pub.get(), out_encoded_signature.get(), + MLDSA65_SIGNATURE_BYTES, (const uint8_t *)message, + message_len, nullptr, 0)) { + fprintf(stderr, "MLDSA signature unexpectedly verified.\n"); + return false; + } + return true; + })) { + fprintf(stderr, "Failed to time MLDSA65_verify.\n"); + return false; + } + + results.Print("MLDSA verify (invalid signature)"); + + return true; +} static bool SpeedDilithium(const std::string &selected) { if (!selected.empty() && selected != "Dilithium") { return true; @@ -1769,18 +1881,19 @@ bool Speed(const std::vector &args) { !SpeedHash(EVP_sha256(), "SHA-256", selected) || !SpeedHash(EVP_sha512(), "SHA-512", selected) || !SpeedHash(EVP_blake2b256(), "BLAKE2b-256", selected) || - !SpeedRandom(selected) || // - !SpeedECDH(selected) || // - !SpeedECDSA(selected) || // - !Speed25519(selected) || // - !SpeedSPAKE2(selected) || // - !SpeedScrypt(selected) || // - !SpeedRSAKeyGen(selected) || // - !SpeedHRSS(selected) || // - !SpeedKyber(selected) || // - !SpeedDilithium(selected) || // - !SpeedSpx(selected) || // - !SpeedHashToCurve(selected) || // + !SpeedRandom(selected) || // + !SpeedECDH(selected) || // + !SpeedECDSA(selected) || // + !Speed25519(selected) || // + !SpeedSPAKE2(selected) || // + !SpeedScrypt(selected) || // + !SpeedRSAKeyGen(selected) || // + !SpeedHRSS(selected) || // + !SpeedKyber(selected) || // + !SpeedMLDSA(selected) || // + !SpeedDilithium(selected) || // + !SpeedSpx(selected) || // + !SpeedHashToCurve(selected) || // !SpeedTrustToken("TrustToken-Exp1-Batch1", TRUST_TOKEN_experiment_v1(), 1, selected) || !SpeedTrustToken("TrustToken-Exp1-Batch10", TRUST_TOKEN_experiment_v1(), @@ -1793,7 +1906,7 @@ bool Speed(const std::vector &args) { TRUST_TOKEN_experiment_v2_pmb(), 1, selected) || !SpeedTrustToken("TrustToken-Exp2PMB-Batch10", TRUST_TOKEN_experiment_v2_pmb(), 10, selected) || - !SpeedBase64(selected) || // + !SpeedBase64(selected) || // !SpeedSipHash(selected)) { return false; } diff --git a/util/convert_wycheproof/convert_wycheproof.go b/util/convert_wycheproof/convert_wycheproof.go index cf1e64985f..2832c96b82 100644 --- a/util/convert_wycheproof/convert_wycheproof.go +++ b/util/convert_wycheproof/convert_wycheproof.go @@ -29,7 +29,6 @@ type wycheproofTest struct { Algorithm string `json:"algorithm"` GeneratorVersion string `json:"generatorVersion"` NumberOfTests int `json:"numberOfTests"` - Notes map[string]string `json:"notes"` Header []string `json:"header"` // encoding/json does not support collecting unused keys, so we leave // everything past this point as generic. diff --git a/util/doc.config b/util/doc.config index 4beae13b20..d982e6429a 100644 --- a/util/doc.config +++ b/util/doc.config @@ -37,6 +37,7 @@ "include/openssl/hkdf.h", "include/openssl/hmac.h", "include/openssl/md5.h", + "include/openssl/mldsa.h", "include/openssl/rc4.h", "include/openssl/rsa.h", "include/openssl/sha.h", From 8af4323e77d5c7995607806e5f62f21de50cfca6 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Wed, 24 Jul 2024 22:28:28 +0000 Subject: [PATCH 28/81] Implement DTLS 1.3 record header. Bug: 715 Change-Id: I69c82eed41946da404fb13129aa790d61ec0fb78 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69689 Auto-Submit: Nick Harper Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- ssl/dtls_method.cc | 5 +- ssl/dtls_record.cc | 288 +++++++++++++++++++++++++++++++------- ssl/internal.h | 16 +++ ssl/ssl_test.cc | 10 +- ssl/test/runner/common.go | 18 +++ ssl/test/runner/conn.go | 67 ++++++--- ssl/test/runner/dtls.go | 137 ++++++++++++++++-- ssl/test/runner/runner.go | 61 ++++++++ 8 files changed, 512 insertions(+), 90 deletions(-) diff --git a/ssl/dtls_method.cc b/ssl/dtls_method.cc index ac42e0b821..6108f5cb98 100644 --- a/ssl/dtls_method.cc +++ b/ssl/dtls_method.cc @@ -95,13 +95,10 @@ static bool dtls1_set_read_state(SSL *ssl, ssl_encryption_level_t level, // reordering around KeyUpdate (i.e. accept records from both epochs), we'll // need a separate bitmap for each epoch. ssl->d1->r_epoch = level; - // |ssl->d1->bitmap| incorporates epochs into sequence numbers, so it - // doesn't need to be reset. Preserving it allows |SSL_get_read_sequence| to - // query the maximum sequence number received. } else { ssl->d1->r_epoch++; - ssl->d1->bitmap = DTLS1_BITMAP(); } + ssl->d1->bitmap = DTLS1_BITMAP(); ssl->s3->read_sequence = 0; ssl->s3->aead_read_ctx = std::move(aead_ctx); diff --git a/ssl/dtls_record.cc b/ssl/dtls_record.cc index f7aeac226b..1d32630f44 100644 --- a/ssl/dtls_record.cc +++ b/ssl/dtls_record.cc @@ -159,6 +159,132 @@ static void dtls1_bitmap_record(DTLS1_BITMAP *bitmap, uint64_t seq_num) { } } +// reconstruct_epoch finds the largest epoch that ends with the epoch bits from +// |wire_epoch| that is less than or equal to |current_epoch|, to match the +// epoch reconstruction algorithm described in RFC 9147 section 4.2.2. +static uint16_t reconstruct_epoch(uint8_t wire_epoch, uint16_t current_epoch) { + uint16_t current_epoch_high = current_epoch & 0xfffc; + uint16_t epoch = (wire_epoch & 0x3) | current_epoch_high; + if (epoch > current_epoch && current_epoch_high > 0) { + epoch -= 0x4; + } + return epoch; +} + +// reconstruct_seqnum returns the smallest sequence number that hasn't been seen +// in |bitmap| and is still within |bitmap|'s window to handle as a reordered +// record. +// +// Section 4.2.2 of RFC 9147 describes an algorithm for reconstructing sequence +// numbers, which is implemented here. This algorithm finds the sequence number +// that is numerically closest to one plus the largest sequence number seen in +// this epoch. +static uint64_t reconstruct_seqnum(uint16_t wire_seq, uint64_t seq_mask, + DTLS1_BITMAP *bitmap) { + uint64_t max_seqnum_plus_one = bitmap->max_seq_num + 1; + uint64_t diff = (wire_seq - max_seqnum_plus_one) & seq_mask; + uint64_t step = seq_mask + 1; + uint64_t seqnum = max_seqnum_plus_one + diff; + // diff is always non-negative, so seqnum is >= max_seqnum_plus_one. If the + // diff is larger than half the step size, then the numerically closest + // sequence number is less than max_seqnum_plus_one instead of greater. + if (diff > step / 2) { + seqnum -= step; + } + return seqnum; +} + +static bool parse_dtls13_record_header(SSL *ssl, CBS *in, size_t packet_size, + uint8_t type, CBS *out_body, + uint64_t *out_sequence, + uint16_t *out_epoch, + size_t *out_header_len) { + // TODO(crbug.com/boringssl/715): Decrypt the sequence number before + // decoding it. + if ((type & 0x10) == 0x10) { + // Connection ID bit set, which we didn't negotiate. + return false; + } + // TODO(crbug.com/boringssl/715): Add a runner test that performs many + // key updates to verify epoch reconstruction works for epochs larger than + // 3. + *out_epoch = reconstruct_epoch(type, ssl->d1->r_epoch); + if ((type & 0x08) == 0x08) { + // 16-bit sequence number. + uint16_t seq; + if (!CBS_get_u16(in, &seq)) { + // The record header was incomplete or malformed. + return false; + } + *out_sequence = reconstruct_seqnum(seq, 0xffff, &ssl->d1->bitmap); + } else { + // 8-bit sequence number. + uint8_t seq; + if (!CBS_get_u8(in, &seq)) { + // The record header was incomplete or malformed. + return false; + } + *out_sequence = reconstruct_seqnum(seq, 0xff, &ssl->d1->bitmap); + } + *out_header_len = packet_size - CBS_len(in); + if ((type & 0x04) == 0x04) { + *out_header_len += 2; + // 16-bit length present + if (!CBS_get_u16_length_prefixed(in, out_body)) { + // The record header was incomplete or malformed. + return false; + } + } else { + // No length present - the remaining contents are the whole packet. + // CBS_get_bytes is used here to advance |in| to the end so that future + // code that computes the number of consumed bytes functions correctly. + if (!CBS_get_bytes(in, out_body, CBS_len(in))) { + return false; + } + } + return true; +} + +static bool parse_dtls_plaintext_record_header( + SSL *ssl, CBS *in, size_t packet_size, uint8_t type, CBS *out_body, + uint64_t *out_sequence, uint16_t *out_epoch, size_t *out_header_len, + uint16_t *out_version) { + SSLAEADContext *aead = ssl->s3->aead_read_ctx.get(); + uint8_t sequence_bytes[8]; + if (!CBS_get_u16(in, out_version) || + !CBS_copy_bytes(in, sequence_bytes, sizeof(sequence_bytes))) { + return false; + } + *out_header_len = packet_size - CBS_len(in) + 2; + if (!CBS_get_u16_length_prefixed(in, out_body) || + CBS_len(out_body) > SSL3_RT_MAX_ENCRYPTED_LENGTH) { + return false; + } + + bool version_ok; + if (aead->is_null_cipher()) { + // Only check the first byte. Enforcing beyond that can prevent decoding + // version negotiation failure alerts. + version_ok = (*out_version >> 8) == DTLS1_VERSION_MAJOR; + } else { + version_ok = *out_version == aead->RecordVersion(); + } + + if (!version_ok) { + return false; + } + + *out_sequence = CRYPTO_load_u64_be(sequence_bytes); + *out_epoch = static_cast(*out_sequence >> 48); + + // Discard the packet if we're expecting an encrypted DTLS 1.3 record but we + // get the old record header format. + if (!aead->is_null_cipher() && aead->ProtocolVersion() >= TLS1_3_VERSION) { + return false; + } + return true; +} + enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, Span *out, size_t *out_consumed, @@ -174,42 +300,42 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, CBS cbs = CBS(in); - // Decode the record. uint8_t type; - uint16_t version; - uint8_t sequence_bytes[8]; - CBS body; - if (!CBS_get_u8(&cbs, &type) || - !CBS_get_u16(&cbs, &version) || - !CBS_copy_bytes(&cbs, sequence_bytes, sizeof(sequence_bytes)) || - !CBS_get_u16_length_prefixed(&cbs, &body) || - CBS_len(&body) > SSL3_RT_MAX_ENCRYPTED_LENGTH) { + size_t record_header_len; + if (!CBS_get_u8(&cbs, &type)) { // The record header was incomplete or malformed. Drop the entire packet. *out_consumed = in.size(); return ssl_open_record_discard; } - - bool version_ok; - if (ssl->s3->aead_read_ctx->is_null_cipher()) { - // Only check the first byte. Enforcing beyond that can prevent decoding - // version negotiation failure alerts. - version_ok = (version >> 8) == DTLS1_VERSION_MAJOR; + SSLAEADContext *aead = ssl->s3->aead_read_ctx.get(); + uint64_t sequence; + uint16_t epoch; + uint16_t version = 0; + CBS body; + bool valid_record_header; + // Decode the record header. If the 3 high bits of the type are 001, then the + // record header is the DTLS 1.3 format. The DTLS 1.3 format should only be + // used for encrypted records with DTLS 1.3. Plaintext records or DTLS 1.2 + // records use the old record header format. + if ((type & 0xe0) == 0x20 && !aead->is_null_cipher() && + aead->ProtocolVersion() >= TLS1_3_VERSION) { + valid_record_header = + parse_dtls13_record_header(ssl, &cbs, in.size(), type, &body, &sequence, + &epoch, &record_header_len); } else { - version_ok = version == ssl->s3->aead_read_ctx->RecordVersion(); + valid_record_header = parse_dtls_plaintext_record_header( + ssl, &cbs, in.size(), type, &body, &sequence, &epoch, + &record_header_len, &version); } - - if (!version_ok) { + if (!valid_record_header) { // The record header was incomplete or malformed. Drop the entire packet. *out_consumed = in.size(); return ssl_open_record_discard; } - Span header = - in.subspan(0, dtls_record_header_write_len(ssl, ssl->d1->r_epoch)); + Span header = in.subspan(0, record_header_len); ssl_do_msg_callback(ssl, 0 /* read */, SSL3_RT_HEADER, header); - uint64_t sequence = CRYPTO_load_u64_be(sequence_bytes); - uint16_t epoch = static_cast(sequence >> 48); if (epoch != ssl->d1->r_epoch || dtls1_bitmap_should_discard(&ssl->d1->bitmap, sequence)) { // Drop this record. It's from the wrong epoch or is a replay. Note that if @@ -221,7 +347,7 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, } // discard the body in-place. - if (!ssl->s3->aead_read_ctx->Open( + if (!aead->Open( out, type, version, sequence, header, MakeSpan(const_cast(CBS_data(&body)), CBS_len(&body)))) { // Bad packets are silently dropped in DTLS. See section 4.2.1 of RFC 6347. @@ -236,13 +362,29 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, } *out_consumed = in.size() - CBS_len(&cbs); + // DTLS 1.3 hides the record type inside the encrypted data. + bool has_padding = + !aead->is_null_cipher() && aead->ProtocolVersion() >= TLS1_3_VERSION; // Check the plaintext length. - if (out->size() > SSL3_RT_MAX_PLAIN_LENGTH) { + size_t plaintext_limit = SSL3_RT_MAX_PLAIN_LENGTH + (has_padding ? 1 : 0); + if (out->size() > plaintext_limit) { OPENSSL_PUT_ERROR(SSL, SSL_R_DATA_LENGTH_TOO_LONG); *out_alert = SSL_AD_RECORD_OVERFLOW; return ssl_open_record_error; } + if (has_padding) { + do { + if (out->empty()) { + OPENSSL_PUT_ERROR(SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC); + *out_alert = SSL_AD_DECRYPT_ERROR; + return ssl_open_record_error; + } + type = out->back(); + *out = out->subspan(0, out->size() - 1); + } while (type == 0); + } + dtls1_bitmap_record(&ssl->d1->bitmap, sequence); // TODO(davidben): Limit the number of empty records as in TLS? This is only @@ -272,15 +414,34 @@ static SSLAEADContext *get_write_aead(const SSL *ssl, uint16_t epoch) { return ssl->s3->aead_write_ctx.get(); } +static bool use_dtls13_record_header(const SSL *ssl, uint16_t epoch) { + // Plaintext records in DTLS 1.3 also use the DTLSPlaintext structure for + // backwards compatibility. + return ssl->s3->have_version && ssl_protocol_version(ssl) > TLS1_2_VERSION && + epoch > 0; +} + size_t dtls_record_header_write_len(const SSL *ssl, uint16_t epoch) { - // 13 is the value of the former DTLS1_RT_HEADER_LENGTH constant. - return 13; + if (!use_dtls13_record_header(ssl, epoch)) { + return DTLS_PLAINTEXT_RECORD_HEADER_LENGTH; + } + // The DTLS 1.3 has a variable length record header. We never send Connection + // ID, we always send 16-bit sequence numbers, and we send a length. (Length + // can be omitted, but only for the last record of a packet. Since we send + // multiple records in one packet, it's easier to implement always sending the + // length.) + return DTLS1_3_RECORD_HEADER_WRITE_LENGTH; } size_t dtls_max_seal_overhead(const SSL *ssl, uint16_t epoch) { - return dtls_record_header_write_len(ssl, epoch) + - get_write_aead(ssl, epoch)->MaxOverhead(); + size_t ret = dtls_record_header_write_len(ssl, epoch) + + get_write_aead(ssl, epoch)->MaxOverhead(); + if (use_dtls13_record_header(ssl, epoch)) { + // Add 1 byte for the encrypted record type. + ret++; + } + return ret; } size_t dtls_seal_prefix_len(const SSL *ssl, uint16_t epoch) { @@ -308,16 +469,6 @@ bool dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, // of seq is probably wrong for a retransmission. const size_t record_header_len = dtls_record_header_write_len(ssl, epoch); - if (max_out < record_header_len) { - OPENSSL_PUT_ERROR(SSL, SSL_R_BUFFER_TOO_SMALL); - return false; - } - - out[0] = type; - - uint16_t record_version = ssl->s3->aead_write_ctx->RecordVersion(); - out[1] = record_version >> 8; - out[2] = record_version & 0xff; // Ensure the sequence number update does not overflow. const uint64_t kMaxSequenceNumber = (uint64_t{1} << 48) - 1; @@ -326,25 +477,68 @@ bool dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, return false; } + uint16_t record_version = ssl->s3->aead_write_ctx->RecordVersion(); uint64_t seq_with_epoch = (uint64_t{epoch} << 48) | *seq; - CRYPTO_store_u64_be(&out[3], seq_with_epoch); + + bool dtls13_header = use_dtls13_record_header(ssl, epoch); + uint8_t *extra_in = NULL; + size_t extra_in_len = 0; + if (dtls13_header) { + extra_in = &type; + extra_in_len = 1; + } size_t ciphertext_len; - if (!aead->CiphertextLen(&ciphertext_len, in_len, 0)) { + if (!aead->CiphertextLen(&ciphertext_len, in_len, extra_in_len)) { OPENSSL_PUT_ERROR(SSL, SSL_R_RECORD_TOO_LARGE); return false; } - out[11] = ciphertext_len >> 8; - out[12] = ciphertext_len & 0xff; + if (max_out < record_header_len + ciphertext_len) { + OPENSSL_PUT_ERROR(SSL, SSL_R_BUFFER_TOO_SMALL); + return false; + } + + if (dtls13_header) { + // The first byte of the DTLS 1.3 record header has the following format: + // 0 1 2 3 4 5 6 7 + // +-+-+-+-+-+-+-+-+ + // |0|0|1|C|S|L|E E| + // +-+-+-+-+-+-+-+-+ + // + // We set C=0 (no Connection ID), S=1 (16-bit sequence number), L=1 (length + // is present), which is a mask of 0x2c. The E E bits are the low-order two + // bits of the epoch. + // + // +-+-+-+-+-+-+-+-+ + // |0|0|1|0|1|1|E E| + // +-+-+-+-+-+-+-+-+ + out[0] = 0x2c | (epoch & 0x3); + out[1] = *seq >> 8; + out[2] = *seq & 0xff; + out[3] = ciphertext_len >> 8; + out[4] = ciphertext_len & 0xff; + // DTLS 1.3 uses the sequence number without the epoch for the AEAD. + seq_with_epoch = *seq; + } else { + out[0] = type; + out[1] = record_version >> 8; + out[2] = record_version & 0xff; + CRYPTO_store_u64_be(&out[3], seq_with_epoch); + out[11] = ciphertext_len >> 8; + out[12] = ciphertext_len & 0xff; + } Span header = MakeConstSpan(out, record_header_len); - size_t len_copy; - if (!aead->Seal(out + record_header_len, &len_copy, - max_out - record_header_len, type, record_version, - seq_with_epoch, header, in, in_len)) { + + if (!aead->SealScatter(out + record_header_len, out + prefix, + out + prefix + in_len, type, record_version, + seq_with_epoch, header, in, in_len, extra_in, + extra_in_len)) { return false; } - assert(ciphertext_len == len_copy); + + // TODO(crbug.com/boringssl/715): Perform record number encryption (RFC 9147 + // section 4.2.3). (*seq)++; *out_len = record_header_len + ciphertext_len; diff --git a/ssl/internal.h b/ssl/internal.h index 34f377d82a..8cf03397d9 100644 --- a/ssl/internal.h +++ b/ssl/internal.h @@ -2938,6 +2938,22 @@ struct SSL3_STATE { // lengths of messages #define DTLS1_RT_MAX_HEADER_LENGTH 13 +// DTLS_PLAINTEXT_RECORD_HEADER_LENGTH is the length of the DTLS record header +// for plaintext records (in DTLS 1.3) or DTLS versions <= 1.2. +#define DTLS_PLAINTEXT_RECORD_HEADER_LENGTH 13 + +// DTLS1_3_RECORD_HEADER_LENGTH is the length of the DTLS 1.3 record header +// sent by BoringSSL for encrypted records. Note that received encrypted DTLS +// 1.3 records might have a different length header. +#define DTLS1_3_RECORD_HEADER_WRITE_LENGTH 5 + +static_assert(DTLS1_RT_MAX_HEADER_LENGTH >= DTLS_PLAINTEXT_RECORD_HEADER_LENGTH, + "DTLS1_RT_MAX_HEADER_LENGTH must not be smaller than defined " + "record header lengths"); +static_assert(DTLS1_RT_MAX_HEADER_LENGTH >= DTLS1_3_RECORD_HEADER_WRITE_LENGTH, + "DTLS1_RT_MAX_HEADER_LENGTH must not be smaller than defined " + "record header lengths"); + #define DTLS1_HM_HEADER_LENGTH 12 #define DTLS1_CCS_HEADER_LENGTH 1 diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc index 731116a709..ba1a22b794 100644 --- a/ssl/ssl_test.cc +++ b/ssl/ssl_test.cc @@ -4397,6 +4397,13 @@ TEST_P(SSLVersionTest, SSLWriteRetry) { } TEST_P(SSLVersionTest, RecordCallback) { + if (version() == DTLS1_3_EXPERIMENTAL_VERSION) { + // The DTLS 1.3 record header is vastly different than the TLS or DTLS < 1.3 + // header format. Instead of checking that the record header is formatted as + // expected here, the runner implementation in dtls.go is strict about what + // it accepts. + return; + } for (bool test_server : {true, false}) { SCOPED_TRACE(test_server); ASSERT_NO_FATAL_FAILURE(ResetContexts()); @@ -4430,9 +4437,6 @@ TEST_P(SSLVersionTest, RecordCallback) { uint16_t epoch; ASSERT_TRUE(CBS_get_u16(&cbs, &epoch)); uint16_t max_epoch = 1; - if (version() == DTLS1_3_EXPERIMENTAL_VERSION) { - max_epoch = 3; - } EXPECT_LE(epoch, max_epoch) << "Invalid epoch: " << epoch; ASSERT_TRUE(CBS_skip(&cbs, 6)); } diff --git a/ssl/test/runner/common.go b/ssl/test/runner/common.go index 89948b3de3..5907a35cbc 100644 --- a/ssl/test/runner/common.go +++ b/ssl/test/runner/common.go @@ -617,6 +617,16 @@ type Config struct { CertCompressionAlgs map[uint16]CertCompressionAlg + // DTLSUseShortSeqNums specifies whether the DTLS 1.3 record header + // should use short (8-bit) or long (16-bit) sequence numbers. The + // default is to use long sequence numbers. + DTLSUseShortSeqNums bool + + // DTLSRecordHeaderOmitLength specified whether the DTLS 1.3 record + // header includes a length field. The default is to include the length + // field. + DTLSRecordHeaderOmitLength bool + // Bugs specifies optional misbehaviour to be used for testing other // implementations. Bugs ProtocolBugs @@ -1968,6 +1978,14 @@ type ProtocolBugs struct { // session ID in the ServerHello. DTLS13EchoSessionID bool + // DTLSUsePlaintextRecord header, if true, has DTLS connections never + // use the DTLS 1.3 record header. + DTLSUsePlaintextRecordHeader bool + + // DTLS13RecordHeaderSetCIDBit, if true, sets the Connection ID bit in + // the DTLS 1.3 record header. + DTLS13RecordHeaderSetCIDBit bool + // EncryptSessionTicketKey, if non-nil, is the ticket key to use when // encrypting tickets. EncryptSessionTicketKey *[32]byte diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index 434ba1e7f9..ce425a064b 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -130,6 +130,8 @@ func (c *Conn) init() { c.out.isDTLS = c.isDTLS c.in.config = c.config c.out.config = c.config + c.in.conn = c + c.out.conn = c c.out.updateOutSeq() } @@ -193,6 +195,7 @@ type halfConn struct { trafficSecret []byte config *Config + conn *Conn } func (hc *halfConn) setErrorLocked(err error) error { @@ -362,10 +365,25 @@ func (hc *halfConn) updateOutSeq() { // that can depend on the bytes read. func (hc *halfConn) writeRecordHeaderLen() int { if hc.isDTLS { - // TODO(nharper): Change this to be the actual record header - // length that will be written. This will depend on version and - // write cipher, as well as configuration or protocol bugs to - // exercise all options of the DTLS 1.3 record header. + usePlaintextHeader := hc.config.Bugs.DTLSUsePlaintextRecordHeader && hc.conn.handshakeComplete + if hc.version >= VersionTLS13 && hc.cipher != nil && !usePlaintextHeader { + // The DTLS 1.3 record header consists of a + // demultiplexing/type byte, some number of connection + // ID bytes, 1 or 2 sequence number bytes, and 0 or 2 + // length bytes. Configuration options or protocol bugs + // will change these values to test all options of the + // DTLS 1.3 record header. + cidSize := 0 + seqSize := 2 + if hc.config.DTLSUseShortSeqNums { + seqSize = 1 + } + lenSize := 2 + if hc.config.DTLSRecordHeaderOmitLength { + lenSize = 0 + } + return 1 + cidSize + seqSize + lenSize + } return dtlsMaxRecordHeaderLen } return tlsRecordHeaderLen @@ -502,7 +520,7 @@ func (hc *halfConn) decrypt(seq []byte, recordHeaderLen int, b *block) (ok bool, panic("unknown cipher type") } - if hc.version >= VersionTLS13 && !hc.isDTLS { + if hc.version >= VersionTLS13 { i := len(payload) for i > 0 && payload[i-1] == 0 { i-- @@ -597,6 +615,11 @@ func (hc *halfConn) encrypt(b *block, explicitIVLen int, typ recordType) (bool, if c.explicitNonce { nonce = b.data[recordHeaderLen : recordHeaderLen+explicitIVLen] } + usePlaintextHeader := hc.config.Bugs.DTLSUsePlaintextRecordHeader && hc.conn.handshakeComplete + if hc.isDTLS && hc.version >= VersionTLS13 && !usePlaintextHeader { + nonce = make([]byte, 8) + copy(nonce[2:], hc.outSeq[2:]) + } payload := b.data[recordHeaderLen+explicitIVLen:] payload = payload[:payloadLen] @@ -631,9 +654,11 @@ func (hc *halfConn) encrypt(b *block, explicitIVLen int, typ recordType) (bool, } // update length to include MAC and any block padding needed. - n := len(b.data) - recordHeaderLen - b.data[recordHeaderLen-2] = byte(n >> 8) - b.data[recordHeaderLen-1] = byte(n) + if !hc.config.DTLSRecordHeaderOmitLength { + n := len(b.data) - recordHeaderLen + b.data[recordHeaderLen-2] = byte(n >> 8) + b.data[recordHeaderLen-1] = byte(n) + } hc.incSeq(true) return true, 0 @@ -1193,21 +1218,17 @@ func (c *Conn) addTLS13Padding(b *block, recordHeaderLen, recordLen int, typ rec if c.out.version < VersionTLS13 || c.out.cipher == nil { return recordLen } - // TODO(nharper): DTLS 1.3 should be adding padding, but the currently - // implemented DTLS 1.25 doesn't include padding. - if !c.isDTLS { - paddingLen := c.config.Bugs.RecordPadding - if c.config.Bugs.OmitRecordContents { - recordLen = paddingLen - b.resize(recordHeaderLen + paddingLen) - } else { - recordLen += 1 + paddingLen - b.resize(len(b.data) + 1 + paddingLen) - b.data[len(b.data)-paddingLen-1] = byte(typ) - } - for i := 0; i < paddingLen; i++ { - b.data[len(b.data)-paddingLen+i] = 0 - } + paddingLen := c.config.Bugs.RecordPadding + if c.config.Bugs.OmitRecordContents { + recordLen = paddingLen + b.resize(recordHeaderLen + paddingLen) + } else { + recordLen += 1 + paddingLen + b.resize(len(b.data) + 1 + paddingLen) + b.data[len(b.data)-paddingLen-1] = byte(typ) + } + for i := 0; i < paddingLen; i++ { + b.data[len(b.data)-paddingLen+i] = 0 } if c, ok := c.out.cipher.(*tlsAead); ok { recordLen += c.Overhead() diff --git a/ssl/test/runner/dtls.go b/ssl/test/runner/dtls.go index 1893afe152..f4921d4e95 100644 --- a/ssl/test/runner/dtls.go +++ b/ssl/test/runner/dtls.go @@ -16,6 +16,7 @@ package runner import ( "bytes" + "encoding/binary" "errors" "fmt" "io" @@ -23,14 +24,73 @@ import ( "net" ) +func (c *Conn) readDTLS13RecordHeader(b *block) (headerLen int, recordLen int, recTyp recordType, seq []byte, err error) { + // The DTLS 1.3 record header starts with the type byte containing + // 0b001CSLEE, where C, S, L, and EE are bits with the following + // meanings: + // + // C=1: Connection ID is present (C=0: CID is absent) + // S=1: the sequence number is 16 bits (S=0: it is 8 bits) + // L=1: 16-bit length field is present (L=0: record goes to end of packet) + // EE: low two bits of the epoch. + // + // A real DTLS implementation would parse these bits and take + // appropriate action based on them. However, this is a test + // implementation, and the code we are testing only ever sends C=0, S=1, + // L=1. This code expects those bits to be set and will error if + // anything else is set. This means we expect the type byte to look like + // 0b001011EE, or 0x2c-0x2f. + recordHeaderLen := 5 + if len(b.data) < recordHeaderLen { + return 0, 0, 0, nil, errors.New("dtls: failed to read record header") + } + typ := b.data[0] + if typ&0xfc != 0x2c { + return 0, 0, 0, nil, errors.New("dtls: DTLS 1.3 record header has bad type byte") + } + // For test purposes, require the epoch received be the same as the + // epoch we expect to receive. + epoch := typ & 0x03 + if epoch != c.in.seq[1]&0x03 { + c.sendAlert(alertIllegalParameter) + return 0, 0, 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: bad epoch")) + } + wireSeq := binary.BigEndian.Uint16(b.data[1:3]) + // Reconstruct the sequence number from the low 16 bits on the wire. + // A real implementation would compute the full sequence number that is + // closest to the highest successfully decrypted record in the + // identified epoch. Since this test implementation errors on decryption + // failures instead of simply discarding packets, it reconstructs a + // sequence number that is not less than c.in.seq. (This matches the + // behavior of the check of the sequence number in the old record + // header format.) + seqInt := binary.BigEndian.Uint64(c.in.seq[:]) + // c.in.seq has the epoch in the upper two bytes - clear those. + seqInt = seqInt &^ (0xffff << 48) + newSeq := seqInt&^0xffff | uint64(wireSeq) + if newSeq < seqInt { + newSeq += 0x10000 + } + + seq = make([]byte, 8) + binary.BigEndian.PutUint64(seq, newSeq) + copy(c.in.seq[2:], seq[2:]) + + recordLen = int(b.data[3])<<8 | int(b.data[4]) + return recordHeaderLen, recordLen, 0, seq, nil +} + // readDTLSRecordHeader reads the record header from the block. Based on the // header it reads, it checks the header's validity and sets appropriate state // as needed. This function returns the record header, the record type indicated // in the header (if it contains the type), and the sequence number to use for // record decryption. func (c *Conn) readDTLSRecordHeader(b *block) (headerLen int, recordLen int, typ recordType, seq []byte, err error) { - recordHeaderLen := 13 + if c.in.cipher != nil && c.in.version >= VersionTLS13 { + return c.readDTLS13RecordHeader(b) + } + recordHeaderLen := 13 // Read out one record. // // A real DTLS implementation should be tolerant of errors, @@ -114,7 +174,7 @@ func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { b, c.rawInput = c.in.splitBlock(b, recordHeaderLen+n) // Process message. - ok, off, _, alertValue := c.in.decrypt(seq, recordHeaderLen, b) + ok, off, encTyp, alertValue := c.in.decrypt(seq, recordHeaderLen, b) if !ok { // A real DTLS implementation would silently ignore bad records, // but we want to notice errors from the implementation under @@ -123,8 +183,12 @@ func (c *Conn) dtlsDoReadRecord(want recordType) (recordType, *block, error) { } b.off = off - // TODO(nharper): Once DTLS 1.3 is defined, handle the extra - // parameter from decrypt. + if typ == 0 { + // readDTLSRecordHeader sets typ=0 when decoding the DTLS 1.3 + // record header. When the new record header format is used, the + // type is returned by decrypt() in encTyp. + typ = encTyp + } // Require that ChangeCipherSpec always share a packet with either the // previous or next handshake message. @@ -344,6 +408,42 @@ func (c *Conn) dtlsFlushHandshake() error { return nil } +// writeDTLS13RecordHeader writes to b the record header for a record of length +// recordLen. +func (c *Conn) writeDTLS13RecordHeader(b *block, recordLen int) { + // Set the top 3 bits on the type byte to indicate the DTLS 1.3 record + // header format. + typ := byte(0x20) + + if c.config.Bugs.DTLS13RecordHeaderSetCIDBit && c.handshakeComplete { + // Set the Connection ID bit + typ |= 0x10 + } + + // Set the sequence number length bit + if !c.config.DTLSUseShortSeqNums { + typ |= 0x08 + } + // Set the length presence bit + if !c.config.DTLSRecordHeaderOmitLength { + typ |= 0x04 + } + // Set the epoch bits + typ |= c.out.outSeq[1] & 0x3 + b.data[0] = typ + lenOffset := 3 + if c.config.DTLSUseShortSeqNums { + b.data[1] = c.out.outSeq[7] + lenOffset = 2 + } else { + copy(b.data[1:3], c.out.outSeq[6:8]) + } + if !c.config.DTLSRecordHeaderOmitLength { + b.data[lenOffset] = byte(recordLen >> 8) + b.data[lenOffset+1] = byte(recordLen) + } +} + // dtlsPackRecord packs a single record to the pending packet, flushing it // if necessary. The caller should call dtlsFlushPacket to flush the current // pending packet afterwards. @@ -375,9 +475,6 @@ func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int panic("Unknown cipher") } b.resize(recordHeaderLen + explicitIVLen + len(data)) - // TODO(nharper): DTLS 1.3 will likely need to set this to - // recordTypeApplicationData if c.out.cipher != nil. - b.data[0] = byte(typ) vers := c.wireVersion if vers == 0 { // Some TLS servers fail if the record version is greater than @@ -391,10 +488,6 @@ func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int if c.vers >= VersionTLS13 || c.out.version >= VersionTLS13 { vers = VersionDTLS12 } - b.data[1] = byte(vers >> 8) - b.data[2] = byte(vers) - // DTLS records include an explicit sequence number. - copy(b.data[3:11], c.out.outSeq[0:]) if explicitIVLen > 0 { explicitIV := b.data[recordHeaderLen : recordHeaderLen+explicitIVLen] if explicitIVIsSeq { @@ -407,8 +500,17 @@ func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int } copy(b.data[recordHeaderLen+explicitIVLen:], data) recordLen := c.addTLS13Padding(b, recordHeaderLen, len(data), typ) - b.data[11] = byte(recordLen >> 8) - b.data[12] = byte(recordLen) + if c.out.version < VersionTLS13 || c.out.cipher == nil || (c.config.Bugs.DTLSUsePlaintextRecordHeader && c.handshakeComplete) { + b.data[0] = byte(typ) + b.data[1] = byte(vers >> 8) + b.data[2] = byte(vers) + // DTLS records include an explicit sequence number. + copy(b.data[3:11], c.out.outSeq[0:]) + b.data[11] = byte(recordLen >> 8) + b.data[12] = byte(recordLen) + } else { + c.writeDTLS13RecordHeader(b, recordLen) + } c.out.encrypt(b, explicitIVLen, typ) // Flush the current pending packet if necessary. @@ -423,6 +525,15 @@ func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int // Add the record to the pending packet. c.pendingPacket = append(c.pendingPacket, b.data...) c.out.freeBlock(b) + if c.config.DTLSRecordHeaderOmitLength { + if c.config.Bugs.SplitAndPackAppData { + panic("incompatible config") + } + err = c.dtlsFlushPacket() + if err != nil { + return + } + } n = len(data) return } diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go index dae8a2ac8b..16cebb23e8 100644 --- a/ssl/test/runner/runner.go +++ b/ssl/test/runner/runner.go @@ -3729,6 +3729,67 @@ read alert 1 0 shouldFail: true, expectedError: ":DECODE_ERROR:", }) + + // DTLS 1.3 should work with record headers that don't set the + // length bit or that use the short sequence number format. + testCases = append(testCases, testCase{ + testType: clientTest, + protocol: dtls, + name: "DTLS13RecordHeader-NoLength-Client", + config: Config{ + MinVersion: VersionTLS13, + DTLSRecordHeaderOmitLength: true, + }, + }) + testCases = append(testCases, testCase{ + testType: serverTest, + protocol: dtls, + name: "DTLS13RecordHeader-NoLength-Server", + config: Config{ + MinVersion: VersionTLS13, + DTLSRecordHeaderOmitLength: true, + }, + }) + testCases = append(testCases, testCase{ + testType: clientTest, + protocol: dtls, + name: "DTLS13RecordHeader-ShortSeqNums-Client", + config: Config{ + MinVersion: VersionTLS13, + DTLSUseShortSeqNums: true, + }, + }) + testCases = append(testCases, testCase{ + testType: serverTest, + protocol: dtls, + name: "DTLS13RecordHeader-ShortSeqNums-Server", + config: Config{ + MinVersion: VersionTLS13, + DTLSUseShortSeqNums: true, + }, + }) + testCases = append(testCases, testCase{ + protocol: dtls, + name: "DTLS13RecordHeader-OldHeader", + config: Config{ + MinVersion: VersionTLS13, + Bugs: ProtocolBugs{ + DTLSUsePlaintextRecordHeader: true, + }, + }, + expectMessageDropped: true, + }) + testCases = append(testCases, testCase{ + protocol: dtls, + name: "DTLS13RecordHeader-CIDBit", + config: Config{ + MinVersion: VersionTLS13, + Bugs: ProtocolBugs{ + DTLS13RecordHeaderSetCIDBit: true, + }, + }, + expectMessageDropped: true, + }) } func addTestForCipherSuite(suite testCipherSuite, ver tlsVersion, protocol protocol) { From 74a51c6ab3c9c674a62bf02c904f12e5109761b8 Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Tue, 20 Aug 2024 16:52:13 +0000 Subject: [PATCH 29/81] Deprecate the experimental dilithium code. Now that ML-DSA has been standardized, code should be using not . This marks the dilithium functions as OPENSSL_DEPRECATED and removes the dilithium speed from bssl. The code remains in the library for a short while to allow anyone who used it to transition to mldsa. Change-Id: I5c9fab376185dc045d7d588eff4b6a626527aff5 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70329 Reviewed-by: David Benjamin Commit-Queue: David Benjamin Auto-Submit: Bob Beck --- crypto/dilithium/dilithium_test.cc | 1 + include/openssl/experimental/dilithium.h | 28 +++--- tool/speed.cc | 113 ----------------------- 3 files changed, 14 insertions(+), 128 deletions(-) diff --git a/crypto/dilithium/dilithium_test.cc b/crypto/dilithium/dilithium_test.cc index 51cb295fe4..55bd819292 100644 --- a/crypto/dilithium/dilithium_test.cc +++ b/crypto/dilithium/dilithium_test.cc @@ -29,6 +29,7 @@ #include "../test/test_util.h" #include "./internal.h" +OPENSSL_BEGIN_ALLOW_DEPRECATED // This test is very slow, so it is disabled by default. TEST(DilithiumTest, DISABLED_BitFlips) { diff --git a/include/openssl/experimental/dilithium.h b/include/openssl/experimental/dilithium.h index 2273421fbb..10479f4216 100644 --- a/include/openssl/experimental/dilithium.h +++ b/include/openssl/experimental/dilithium.h @@ -23,16 +23,14 @@ extern "C" { #if defined(OPENSSL_UNSTABLE_EXPERIMENTAL_DILITHIUM) -// This header implements experimental, draft versions of not-yet-standardized -// primitives. When the standard is complete, these functions will be removed -// and replaced with the final, incompatible standard version. They are -// available now for short-lived experiments, but must not be deployed anywhere -// durable, such as a long-lived key store. To use these functions define -// OPENSSL_UNSTABLE_EXPERIMENTAL_DILITHIUM. +// The ML-DSA spec has now been standardized and ML-DSA is available in +// BoringSSL. This code should no longer be used. It was intended for +// short-lived experiments and must not have been deployed anywhere durable. If +// you were using this you need to use the instead. This +// header and code will be removed from BoringSSL soon. // Dilithium3. - // DILITHIUM_private_key contains a Dilithium3 private key. The contents of this // object should never leave the address space since the format is unstable. struct DILITHIUM_private_key { @@ -66,13 +64,13 @@ struct DILITHIUM_public_key { // DILITHIUM_generate_key generates a random public/private key pair, writes the // encoded public key to |out_encoded_public_key| and sets |out_private_key| to // the private key. Returns 1 on success and 0 on failure. -OPENSSL_EXPORT int DILITHIUM_generate_key( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_generate_key( uint8_t out_encoded_public_key[DILITHIUM_PUBLIC_KEY_BYTES], struct DILITHIUM_private_key *out_private_key); // DILITHIUM_public_from_private sets |*out_public_key| to the public key that // corresponds to |private_key|. Returns 1 on success and 0 on failure. -OPENSSL_EXPORT int DILITHIUM_public_from_private( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_public_from_private( struct DILITHIUM_public_key *out_public_key, const struct DILITHIUM_private_key *private_key); @@ -80,14 +78,14 @@ OPENSSL_EXPORT int DILITHIUM_public_from_private( // |msg_len| using |private_key| following the randomized algorithm, and writes // the encoded signature to |out_encoded_signature|. Returns 1 on success and 0 // on failure. -OPENSSL_EXPORT int DILITHIUM_sign( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_sign( uint8_t out_encoded_signature[DILITHIUM_SIGNATURE_BYTES], const struct DILITHIUM_private_key *private_key, const uint8_t *msg, size_t msg_len); // DILITHIUM_verify verifies that |encoded_signature| constitutes a valid // signature for the message |msg| of length |msg_len| using |public_key|. -OPENSSL_EXPORT int DILITHIUM_verify( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_verify( const struct DILITHIUM_public_key *public_key, const uint8_t encoded_signature[DILITHIUM_SIGNATURE_BYTES], const uint8_t *msg, size_t msg_len); @@ -98,27 +96,27 @@ OPENSSL_EXPORT int DILITHIUM_verify( // DILITHIUM_marshal_public_key serializes |public_key| to |out| in the standard // format for Dilithium public keys. It returns one on success or zero on // allocation error. -OPENSSL_EXPORT int DILITHIUM_marshal_public_key( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_marshal_public_key( CBB *out, const struct DILITHIUM_public_key *public_key); // DILITHIUM_parse_public_key parses a public key, in the format generated by // |DILITHIUM_marshal_public_key|, from |in| and writes the result to // |out_public_key|. It returns one on success or zero on parse error or if // there are trailing bytes in |in|. -OPENSSL_EXPORT int DILITHIUM_parse_public_key( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_parse_public_key( struct DILITHIUM_public_key *public_key, CBS *in); // DILITHIUM_marshal_private_key serializes |private_key| to |out| in the // standard format for Dilithium private keys. It returns one on success or zero // on allocation error. -OPENSSL_EXPORT int DILITHIUM_marshal_private_key( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_marshal_private_key( CBB *out, const struct DILITHIUM_private_key *private_key); // DILITHIUM_parse_private_key parses a private key, in the format generated by // |DILITHIUM_marshal_private_key|, from |in| and writes the result to // |out_private_key|. It returns one on success or zero on parse error or if // there are trailing bytes in |in|. -OPENSSL_EXPORT int DILITHIUM_parse_private_key( +OPENSSL_EXPORT OPENSSL_DEPRECATED int DILITHIUM_parse_private_key( struct DILITHIUM_private_key *private_key, CBS *in); #endif // OPENSSL_UNSTABLE_EXPERIMENTAL_DILITHIUM diff --git a/tool/speed.cc b/tool/speed.cc index 325f82b59d..f8d81f1ab3 100644 --- a/tool/speed.cc +++ b/tool/speed.cc @@ -38,8 +38,6 @@ #include #include #include -#define OPENSSL_UNSTABLE_EXPERIMENTAL_DILITHIUM -#include #define OPENSSL_UNSTABLE_EXPERIMENTAL_KYBER #include #define OPENSSL_UNSTABLE_EXPERIMENTAL_SPX @@ -1245,116 +1243,6 @@ static bool SpeedMLDSA(const std::string &selected) { return true; } -static bool SpeedDilithium(const std::string &selected) { - if (!selected.empty() && selected != "Dilithium") { - return true; - } - - TimeResults results; - - auto encoded_public_key = - std::make_unique(DILITHIUM_PUBLIC_KEY_BYTES); - auto priv = std::make_unique(); - if (!TimeFunctionParallel(&results, [&]() -> bool { - if (!DILITHIUM_generate_key(encoded_public_key.get(), priv.get())) { - fprintf(stderr, "Failure in DILITHIUM_generate_key.\n"); - return false; - } - return true; - })) { - fprintf(stderr, "Failed to time DILITHIUM_generate_key.\n"); - return false; - } - - results.Print("Dilithium key generation"); - - auto encoded_private_key = - std::make_unique(DILITHIUM_PRIVATE_KEY_BYTES); - CBB cbb; - CBB_init_fixed(&cbb, encoded_private_key.get(), DILITHIUM_PRIVATE_KEY_BYTES); - DILITHIUM_marshal_private_key(&cbb, priv.get()); - - if (!TimeFunctionParallel(&results, [&]() -> bool { - CBS cbs; - CBS_init(&cbs, encoded_private_key.get(), DILITHIUM_PRIVATE_KEY_BYTES); - if (!DILITHIUM_parse_private_key(priv.get(), &cbs)) { - fprintf(stderr, "Failure in DILITHIUM_parse_private_key.\n"); - return false; - } - return true; - })) { - fprintf(stderr, "Failed to time DILITHIUM_parse_private_key.\n"); - return false; - } - - results.Print("Dilithium parse (valid) private key"); - - const char *message = "Hello world"; - size_t message_len = strlen(message); - auto out_encoded_signature = - std::make_unique(DILITHIUM_SIGNATURE_BYTES); - if (!TimeFunctionParallel(&results, [&]() -> bool { - if (!DILITHIUM_sign(out_encoded_signature.get(), priv.get(), - (const uint8_t *)message, message_len)) { - fprintf(stderr, "Failure in DILITHIUM_sign.\n"); - return false; - } - return true; - })) { - fprintf(stderr, "Failed to time DILITHIUM_sign.\n"); - return false; - } - - results.Print("Dilithium sign (randomized)"); - - auto pub = std::make_unique(); - - if (!TimeFunctionParallel(&results, [&]() -> bool { - CBS cbs; - CBS_init(&cbs, encoded_public_key.get(), DILITHIUM_PUBLIC_KEY_BYTES); - if (!DILITHIUM_parse_public_key(pub.get(), &cbs)) { - fprintf(stderr, "Failure in DILITHIUM_parse_public_key.\n"); - return false; - } - return true; - })) { - fprintf(stderr, "Failed to time DILITHIUM_parse_public_key.\n"); - return false; - } - - results.Print("Dilithium parse (valid) public key"); - - if (!TimeFunctionParallel(&results, [&]() -> bool { - if (!DILITHIUM_verify(pub.get(), out_encoded_signature.get(), - (const uint8_t *)message, message_len)) { - fprintf(stderr, "Failed to verify Dilithium signature.\n"); - return false; - } - return true; - })) { - fprintf(stderr, "Failed to time DILITHIUM_verify.\n"); - return false; - } - - results.Print("Dilithium verify (valid signature)"); - - out_encoded_signature[42] ^= 0x42; - if (!TimeFunctionParallel(&results, [&]() -> bool { - if (DILITHIUM_verify(pub.get(), out_encoded_signature.get(), - (const uint8_t *)message, message_len)) { - fprintf(stderr, "Dilithium signature unexpectedly verified.\n"); - return false; - } - return true; - })) { - fprintf(stderr, "Failed to time DILITHIUM_verify.\n"); - return false; - } - - results.Print("Dilithium verify (invalid signature)"); - - return true; -} static bool SpeedSpx(const std::string &selected) { if (!selected.empty() && selected.find("spx") == std::string::npos) { @@ -1891,7 +1779,6 @@ bool Speed(const std::vector &args) { !SpeedHRSS(selected) || // !SpeedKyber(selected) || // !SpeedMLDSA(selected) || // - !SpeedDilithium(selected) || // !SpeedSpx(selected) || // !SpeedHashToCurve(selected) || // !SpeedTrustToken("TrustToken-Exp1-Batch1", TRUST_TOKEN_experiment_v1(), 1, From 500fa1f9d274d06ddfc112e1815ad5dc5ce92234 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Tue, 30 Jul 2024 11:26:14 -0700 Subject: [PATCH 30/81] Add ML-KEM. This change implements FIPS 203. This marks the first use of C++ in libcrypto. If you can't compile C++ in this context, please reach out to boringssl@ and filter out the .cc files for now. This also makes marshaling a private key an internal function and, instead, exposes the seed from the generation process and a function to calculate a private key from a seed. Seeds are significantly smaller than NIST's format for private keys and don't require validation. On an M1 Pro: Did 22320 Kyber generate + decap operations in 1001900us (22277.7 ops/sec) Did 39000 Kyber parse + encap operations in 1005523us (38785.8 ops/sec) Did 22608 ML-KEM-768 generate + decap operations in 1010509us (22372.9 ops/sec) Did 44000 ML-KEM-768 parse + encap operations in 1013729us (43404.1 ops/sec) Did 15410 ML-KEM-1024 generate + decap operations in 1011500us (15234.8 ops/sec) Did 29000 ML-KEM-1024 parse + encap operations in 1003919us (28886.8 ops/sec) Change-Id: Ib563bd4d45228237b55cedbe7d7fdf0f0221a3cc Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/69928 Reviewed-by: David Benjamin Commit-Queue: Adam Langley --- build.json | 14 + crypto/mlkem/internal.h | 90 + crypto/mlkem/mlkem.cc | 1094 +++++++++++ crypto/mlkem/mlkem1024_decap_tests.txt | 1829 +++++++++++++++++ crypto/mlkem/mlkem1024_encap_tests.txt | 1840 ++++++++++++++++++ crypto/mlkem/mlkem1024_keygen_tests.txt | 499 +++++ crypto/mlkem/mlkem1024_nist_decap_tests.txt | 32 + crypto/mlkem/mlkem1024_nist_keygen_tests.txt | 125 ++ crypto/mlkem/mlkem768_decap_tests.txt | 1829 +++++++++++++++++ crypto/mlkem/mlkem768_encap_tests.txt | 1840 ++++++++++++++++++ crypto/mlkem/mlkem768_keygen_tests.txt | 499 +++++ crypto/mlkem/mlkem768_nist_decap_tests.txt | 32 + crypto/mlkem/mlkem768_nist_keygen_tests.txt | 125 ++ crypto/mlkem/mlkem_test.cc | 454 +++++ gen/sources.bzl | 14 + gen/sources.cmake | 14 + gen/sources.json | 14 + include/openssl/mlkem.h | 250 +++ tool/speed.cc | 101 + util/doc.config | 1 + 20 files changed, 10696 insertions(+) create mode 100644 crypto/mlkem/internal.h create mode 100644 crypto/mlkem/mlkem.cc create mode 100644 crypto/mlkem/mlkem1024_decap_tests.txt create mode 100644 crypto/mlkem/mlkem1024_encap_tests.txt create mode 100644 crypto/mlkem/mlkem1024_keygen_tests.txt create mode 100644 crypto/mlkem/mlkem1024_nist_decap_tests.txt create mode 100644 crypto/mlkem/mlkem1024_nist_keygen_tests.txt create mode 100644 crypto/mlkem/mlkem768_decap_tests.txt create mode 100644 crypto/mlkem/mlkem768_encap_tests.txt create mode 100644 crypto/mlkem/mlkem768_keygen_tests.txt create mode 100644 crypto/mlkem/mlkem768_nist_decap_tests.txt create mode 100644 crypto/mlkem/mlkem768_nist_keygen_tests.txt create mode 100644 crypto/mlkem/mlkem_test.cc create mode 100644 include/openssl/mlkem.h diff --git a/build.json b/build.json index 9cd0f8521e..c44dc6716a 100644 --- a/build.json +++ b/build.json @@ -271,6 +271,7 @@ "crypto/lhash/lhash.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", + "crypto/mlkem/mlkem.cc", "crypto/obj/obj.c", "crypto/obj/obj_xref.c", "crypto/pem/pem_all.c", @@ -444,6 +445,7 @@ "include/openssl/md5.h", "include/openssl/mem.h", "include/openssl/mldsa.h", + "include/openssl/mlkem.h", "include/openssl/nid.h", "include/openssl/obj.h", "include/openssl/obj_mac.h", @@ -523,6 +525,7 @@ "crypto/kyber/internal.h", "crypto/lhash/internal.h", "crypto/mldsa/internal.h", + "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", "crypto/pkcs7/internal.h", "crypto/pkcs8/internal.h", @@ -836,6 +839,7 @@ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", "crypto/mldsa/mldsa_test.cc", @@ -888,6 +892,16 @@ "crypto/kyber/kyber_tests.txt", "crypto/mldsa/mldsa_nist_keygen_tests.txt", "crypto/mldsa/mldsa_nist_siggen_tests.txt", + "crypto/mlkem/mlkem1024_decap_tests.txt", + "crypto/mlkem/mlkem1024_encap_tests.txt", + "crypto/mlkem/mlkem1024_keygen_tests.txt", + "crypto/mlkem/mlkem1024_nist_decap_tests.txt", + "crypto/mlkem/mlkem1024_nist_keygen_tests.txt", + "crypto/mlkem/mlkem768_decap_tests.txt", + "crypto/mlkem/mlkem768_encap_tests.txt", + "crypto/mlkem/mlkem768_keygen_tests.txt", + "crypto/mlkem/mlkem768_nist_decap_tests.txt", + "crypto/mlkem/mlkem768_nist_keygen_tests.txt", "crypto/pkcs8/test/*.p12", "crypto/poly1305/poly1305_tests.txt", "crypto/siphash/siphash_tests.txt", diff --git a/crypto/mlkem/internal.h b/crypto/mlkem/internal.h new file mode 100644 index 0000000000..9a262c3949 --- /dev/null +++ b/crypto/mlkem/internal.h @@ -0,0 +1,90 @@ +/* Copyright (c) 2023, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_CRYPTO_MLKEM_INTERNAL_H +#define OPENSSL_HEADER_CRYPTO_MLKEM_INTERNAL_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + + +// MLKEM_ENCAP_ENTROPY is the number of bytes of uniformly random entropy +// necessary to encapsulate a secret. The entropy will be leaked to the +// decapsulating party. +#define MLKEM_ENCAP_ENTROPY 32 + +// MLKEM768_generate_key_external_seed is a deterministic function to create a +// pair of ML-KEM-768 keys, using the supplied seed. The seed needs to be +// uniformly random. This function is should only be used for tests, regular +// callers should use the non-deterministic |MLKEM768_generate_key| directly. +OPENSSL_EXPORT void MLKEM768_generate_key_external_seed( + uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES], + struct MLKEM768_private_key *out_private_key, + const uint8_t seed[MLKEM_SEED_BYTES]); + +// MLKEM768_encap_external_entropy behaves like |MLKEM768_encap|, but uses +// |MLKEM_ENCAP_ENTROPY| bytes of |entropy| for randomization. The decapsulating +// side will be able to recover |entropy| in full. This function should only be +// used for tests, regular callers should use the non-deterministic +// |MLKEM768_encap| directly. +OPENSSL_EXPORT void MLKEM768_encap_external_entropy( + uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM768_public_key *public_key, + const uint8_t seed[MLKEM_ENCAP_ENTROPY]); + +// MLKEM768_marshal_private_key serializes |private_key| to |out| in the +// NIST format for ML-KEM-768 private keys. It returns one on success or +// zero on allocation error. (Note that one can also save just the seed value +// produced by |MLKEM768_generate_key|, which is significantly smaller.) +OPENSSL_EXPORT int MLKEM768_marshal_private_key( + CBB *out, const struct MLKEM768_private_key *private_key); + +// MLKEM1024_generate_key_external_seed is a deterministic function to create a +// pair of ML-KEM-1024 keys, using the supplied seed. The seed needs to be +// uniformly random. This function is should only be used for tests, regular +// callers should use the non-deterministic |MLKEM1024_generate_key| directly. +OPENSSL_EXPORT void MLKEM1024_generate_key_external_seed( + uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES], + struct MLKEM1024_private_key *out_private_key, + const uint8_t seed[MLKEM_SEED_BYTES]); + +// MLKEM1024_encap_external_entropy behaves like |MLKEM1024_encap|, but uses +// |MLKEM_ENCAP_ENTROPY| bytes of |entropy| for randomization. The +// decapsulating side will be able to recover |entropy| in full. This function +// should only be used for tests, regular callers should use the +// non-deterministic |MLKEM1024_encap| directly. +OPENSSL_EXPORT void MLKEM1024_encap_external_entropy( + uint8_t out_ciphertext[MLKEM1024_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM1024_public_key *public_key, + const uint8_t entropy[MLKEM_ENCAP_ENTROPY]); + +// MLKEM1024_marshal_private_key serializes |private_key| to |out| in the +// NIST format for ML-KEM-1024 private keys. It returns one on success or +// zero on allocation error. (Note that one can also save just the seed value +// produced by |MLKEM1024_generate_key|, which is significantly smaller.) +OPENSSL_EXPORT int MLKEM1024_marshal_private_key( + CBB *out, const struct MLKEM1024_private_key *private_key); + + +#if defined(__cplusplus) +} +#endif + +#endif // OPENSSL_HEADER_CRYPTO_MLKEM_INTERNAL_H diff --git a/crypto/mlkem/mlkem.cc b/crypto/mlkem/mlkem.cc new file mode 100644 index 0000000000..eca8134de5 --- /dev/null +++ b/crypto/mlkem/mlkem.cc @@ -0,0 +1,1094 @@ +/* Copyright (c) 2024, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include + +#include +#include +#include + +#include +#include + +#include "../internal.h" +#include "../keccak/internal.h" +#include "./internal.h" + + +// See +// https://csrc.nist.gov/pubs/fips/203/final + +static void prf(uint8_t *out, size_t out_len, const uint8_t in[33]) { + BORINGSSL_keccak(out, out_len, in, 33, boringssl_shake256); +} + +// Section 4.1 +static void hash_h(uint8_t out[32], const uint8_t *in, size_t len) { + BORINGSSL_keccak(out, 32, in, len, boringssl_sha3_256); +} + +static void hash_g(uint8_t out[64], const uint8_t *in, size_t len) { + BORINGSSL_keccak(out, 64, in, len, boringssl_sha3_512); +} + +// This is called `J` in the spec. +static void kdf(uint8_t out[MLKEM_SHARED_SECRET_BYTES], + const uint8_t failure_secret[32], const uint8_t *ciphertext, + size_t ciphertext_len) { + struct BORINGSSL_keccak_st st; + BORINGSSL_keccak_init(&st, boringssl_shake256); + BORINGSSL_keccak_absorb(&st, failure_secret, 32); + BORINGSSL_keccak_absorb(&st, ciphertext, ciphertext_len); + BORINGSSL_keccak_squeeze(&st, out, MLKEM_SHARED_SECRET_BYTES); +} + +// Constants that are common across all sizes. +#define DEGREE 256 +static const size_t kBarrettMultiplier = 5039; +static const unsigned kBarrettShift = 24; +static const uint16_t kPrime = 3329; +static const int kLog2Prime = 12; +static const uint16_t kHalfPrime = (/*kPrime=*/3329 - 1) / 2; +// kInverseDegree is 128^-1 mod 3329; 128 because kPrime does not have a 512th +// root of unity. +static const uint16_t kInverseDegree = 3303; + +// Rank-specific constants. +#define RANK768 3 +static const int kDU768 = 10; +static const int kDV768 = 4; +#define RANK1024 4 +static const int kDU1024 = 11; +static const int kDV1024 = 5; + +constexpr size_t encoded_vector_size(int rank) { + return (kLog2Prime * DEGREE / 8) * static_cast(rank); +} + +constexpr size_t encoded_public_key_size(int rank) { + return encoded_vector_size(rank) + /*sizeof(rho)=*/32; +} + +static_assert(encoded_public_key_size(RANK768) == MLKEM768_PUBLIC_KEY_BYTES, + ""); +static_assert(encoded_public_key_size(RANK1024) == MLKEM1024_PUBLIC_KEY_BYTES, + ""); + +constexpr size_t compressed_vector_size(int rank) { + // `if constexpr` isn't available in C++17. + return (rank == RANK768 ? kDU768 : kDU1024) * static_cast(rank) * + DEGREE / 8; +} + +constexpr size_t ciphertext_size(int rank) { + return compressed_vector_size(rank) + + (rank == RANK768 ? kDV768 : kDV1024) * DEGREE / 8; +} + +static_assert(ciphertext_size(RANK768) == MLKEM768_CIPHERTEXT_BYTES, ""); +static_assert(ciphertext_size(RANK1024) == MLKEM1024_CIPHERTEXT_BYTES, ""); + +typedef struct scalar { + // On every function entry and exit, 0 <= c < kPrime. + uint16_t c[DEGREE]; +} scalar; + +template +struct vector { + scalar v[RANK]; +}; + +template +struct matrix { + scalar v[RANK][RANK]; +}; + +// This bit of Python will be referenced in some of the following comments: +// +// p = 3329 +// +// def bitreverse(i): +// ret = 0 +// for n in range(7): +// bit = i & 1 +// ret <<= 1 +// ret |= bit +// i >>= 1 +// return ret + +// kNTTRoots = [pow(17, bitreverse(i), p) for i in range(128)] +static const uint16_t kNTTRoots[128] = { + 1, 1729, 2580, 3289, 2642, 630, 1897, 848, 1062, 1919, 193, 797, + 2786, 3260, 569, 1746, 296, 2447, 1339, 1476, 3046, 56, 2240, 1333, + 1426, 2094, 535, 2882, 2393, 2879, 1974, 821, 289, 331, 3253, 1756, + 1197, 2304, 2277, 2055, 650, 1977, 2513, 632, 2865, 33, 1320, 1915, + 2319, 1435, 807, 452, 1438, 2868, 1534, 2402, 2647, 2617, 1481, 648, + 2474, 3110, 1227, 910, 17, 2761, 583, 2649, 1637, 723, 2288, 1100, + 1409, 2662, 3281, 233, 756, 2156, 3015, 3050, 1703, 1651, 2789, 1789, + 1847, 952, 1461, 2687, 939, 2308, 2437, 2388, 733, 2337, 268, 641, + 1584, 2298, 2037, 3220, 375, 2549, 2090, 1645, 1063, 319, 2773, 757, + 2099, 561, 2466, 2594, 2804, 1092, 403, 1026, 1143, 2150, 2775, 886, + 1722, 1212, 1874, 1029, 2110, 2935, 885, 2154, +}; + +// kInverseNTTRoots = [pow(17, -bitreverse(i), p) for i in range(128)] +static const uint16_t kInverseNTTRoots[128] = { + 1, 1600, 40, 749, 2481, 1432, 2699, 687, 1583, 2760, 69, 543, + 2532, 3136, 1410, 2267, 2508, 1355, 450, 936, 447, 2794, 1235, 1903, + 1996, 1089, 3273, 283, 1853, 1990, 882, 3033, 2419, 2102, 219, 855, + 2681, 1848, 712, 682, 927, 1795, 461, 1891, 2877, 2522, 1894, 1010, + 1414, 2009, 3296, 464, 2697, 816, 1352, 2679, 1274, 1052, 1025, 2132, + 1573, 76, 2998, 3040, 1175, 2444, 394, 1219, 2300, 1455, 2117, 1607, + 2443, 554, 1179, 2186, 2303, 2926, 2237, 525, 735, 863, 2768, 1230, + 2572, 556, 3010, 2266, 1684, 1239, 780, 2954, 109, 1292, 1031, 1745, + 2688, 3061, 992, 2596, 941, 892, 1021, 2390, 642, 1868, 2377, 1482, + 1540, 540, 1678, 1626, 279, 314, 1173, 2573, 3096, 48, 667, 1920, + 2229, 1041, 2606, 1692, 680, 2746, 568, 3312, +}; + +// kModRoots = [pow(17, 2*bitreverse(i) + 1, p) for i in range(128)] +static const uint16_t kModRoots[128] = { + 17, 3312, 2761, 568, 583, 2746, 2649, 680, 1637, 1692, 723, 2606, + 2288, 1041, 1100, 2229, 1409, 1920, 2662, 667, 3281, 48, 233, 3096, + 756, 2573, 2156, 1173, 3015, 314, 3050, 279, 1703, 1626, 1651, 1678, + 2789, 540, 1789, 1540, 1847, 1482, 952, 2377, 1461, 1868, 2687, 642, + 939, 2390, 2308, 1021, 2437, 892, 2388, 941, 733, 2596, 2337, 992, + 268, 3061, 641, 2688, 1584, 1745, 2298, 1031, 2037, 1292, 3220, 109, + 375, 2954, 2549, 780, 2090, 1239, 1645, 1684, 1063, 2266, 319, 3010, + 2773, 556, 757, 2572, 2099, 1230, 561, 2768, 2466, 863, 2594, 735, + 2804, 525, 1092, 2237, 403, 2926, 1026, 2303, 1143, 2186, 2150, 1179, + 2775, 554, 886, 2443, 1722, 1607, 1212, 2117, 1874, 1455, 1029, 2300, + 2110, 1219, 2935, 394, 885, 2444, 2154, 1175, +}; + +// reduce_once reduces 0 <= x < 2*kPrime, mod kPrime. +static uint16_t reduce_once(uint16_t x) { + assert(x < 2 * kPrime); + const uint16_t subtracted = x - kPrime; + uint16_t mask = 0u - (subtracted >> 15); + // On Aarch64, omitting a |value_barrier_u16| results in a 2x speedup of + // ML-KEM overall and Clang still produces constant-time code using `csel`. On + // other platforms & compilers on godbolt that we care about, this code also + // produces constant-time output. + return (mask & x) | (~mask & subtracted); +} + +// constant time reduce x mod kPrime using Barrett reduction. x must be less +// than kPrime + 2×kPrime². +static uint16_t reduce(uint32_t x) { + assert(x < kPrime + 2u * kPrime * kPrime); + uint64_t product = (uint64_t)x * kBarrettMultiplier; + uint32_t quotient = (uint32_t)(product >> kBarrettShift); + uint32_t remainder = x - quotient * kPrime; + return reduce_once(remainder); +} + +static void scalar_zero(scalar *out) { OPENSSL_memset(out, 0, sizeof(*out)); } + +template +static void vector_zero(vector *out) { + OPENSSL_memset(out->v, 0, sizeof(scalar) * RANK); +} + +// In place number theoretic transform of a given scalar. +// Note that MLKEM's kPrime 3329 does not have a 512th root of unity, so this +// transform leaves off the last iteration of the usual FFT code, with the 128 +// relevant roots of unity being stored in |kNTTRoots|. This means the output +// should be seen as 128 elements in GF(3329^2), with the coefficients of the +// elements being consecutive entries in |s->c|. +static void scalar_ntt(scalar *s) { + int offset = DEGREE; + // `int` is used here because using `size_t` throughout caused a ~5% slowdown + // with Clang 14 on Aarch64. + for (int step = 1; step < DEGREE / 2; step <<= 1) { + offset >>= 1; + int k = 0; + for (int i = 0; i < step; i++) { + const uint32_t step_root = kNTTRoots[i + step]; + for (int j = k; j < k + offset; j++) { + uint16_t odd = reduce(step_root * s->c[j + offset]); + uint16_t even = s->c[j]; + s->c[j] = reduce_once(odd + even); + s->c[j + offset] = reduce_once(even - odd + kPrime); + } + k += 2 * offset; + } + } +} + +template +static void vector_ntt(vector *a) { + for (int i = 0; i < RANK; i++) { + scalar_ntt(&a->v[i]); + } +} + +// In place inverse number theoretic transform of a given scalar, with pairs of +// entries of s->v being interpreted as elements of GF(3329^2). Just as with the +// number theoretic transform, this leaves off the first step of the normal iFFT +// to account for the fact that 3329 does not have a 512th root of unity, using +// the precomputed 128 roots of unity stored in |kInverseNTTRoots|. +static void scalar_inverse_ntt(scalar *s) { + int step = DEGREE / 2; + // `int` is used here because using `size_t` throughout caused a ~5% slowdown + // with Clang 14 on Aarch64. + for (int offset = 2; offset < DEGREE; offset <<= 1) { + step >>= 1; + int k = 0; + for (int i = 0; i < step; i++) { + uint32_t step_root = kInverseNTTRoots[i + step]; + for (int j = k; j < k + offset; j++) { + uint16_t odd = s->c[j + offset]; + uint16_t even = s->c[j]; + s->c[j] = reduce_once(odd + even); + s->c[j + offset] = reduce(step_root * (even - odd + kPrime)); + } + k += 2 * offset; + } + } + for (int i = 0; i < DEGREE; i++) { + s->c[i] = reduce(s->c[i] * kInverseDegree); + } +} + +template +static void vector_inverse_ntt(vector *a) { + for (int i = 0; i < RANK; i++) { + scalar_inverse_ntt(&a->v[i]); + } +} + +static void scalar_add(scalar *lhs, const scalar *rhs) { + for (int i = 0; i < DEGREE; i++) { + lhs->c[i] = reduce_once(lhs->c[i] + rhs->c[i]); + } +} + +static void scalar_sub(scalar *lhs, const scalar *rhs) { + for (int i = 0; i < DEGREE; i++) { + lhs->c[i] = reduce_once(lhs->c[i] - rhs->c[i] + kPrime); + } +} + +// Multiplying two scalars in the number theoretically transformed state. Since +// 3329 does not have a 512th root of unity, this means we have to interpret +// the 2*ith and (2*i+1)th entries of the scalar as elements of GF(3329)[X]/(X^2 +// - 17^(2*bitreverse(i)+1)) The value of 17^(2*bitreverse(i)+1) mod 3329 is +// stored in the precomputed |kModRoots| table. Note that our Barrett transform +// only allows us to multipy two reduced numbers together, so we need some +// intermediate reduction steps, even if an uint64_t could hold 3 multiplied +// numbers. +static void scalar_mult(scalar *out, const scalar *lhs, const scalar *rhs) { + for (int i = 0; i < DEGREE / 2; i++) { + uint32_t real_real = (uint32_t)lhs->c[2 * i] * rhs->c[2 * i]; + uint32_t img_img = (uint32_t)lhs->c[2 * i + 1] * rhs->c[2 * i + 1]; + uint32_t real_img = (uint32_t)lhs->c[2 * i] * rhs->c[2 * i + 1]; + uint32_t img_real = (uint32_t)lhs->c[2 * i + 1] * rhs->c[2 * i]; + out->c[2 * i] = + reduce(real_real + (uint32_t)reduce(img_img) * kModRoots[i]); + out->c[2 * i + 1] = reduce(img_real + real_img); + } +} + +template +static void vector_add(vector *lhs, const vector *rhs) { + for (int i = 0; i < RANK; i++) { + scalar_add(&lhs->v[i], &rhs->v[i]); + } +} + +template +static void matrix_mult(vector *out, const matrix *m, + const vector *a) { + vector_zero(out); + for (int i = 0; i < RANK; i++) { + for (int j = 0; j < RANK; j++) { + scalar product; + scalar_mult(&product, &m->v[i][j], &a->v[j]); + scalar_add(&out->v[i], &product); + } + } +} + +template +static void matrix_mult_transpose(vector *out, const matrix *m, + const vector *a) { + vector_zero(out); + for (int i = 0; i < RANK; i++) { + for (int j = 0; j < RANK; j++) { + scalar product; + scalar_mult(&product, &m->v[j][i], &a->v[j]); + scalar_add(&out->v[i], &product); + } + } +} + +template +static void scalar_inner_product(scalar *out, const vector *lhs, + const vector *rhs) { + scalar_zero(out); + for (int i = 0; i < RANK; i++) { + scalar product; + scalar_mult(&product, &lhs->v[i], &rhs->v[i]); + scalar_add(out, &product); + } +} + +// Algorithm 6 from the spec. Rejection samples a Keccak stream to get +// uniformly distributed elements. This is used for matrix expansion and only +// operates on public inputs. +static void scalar_from_keccak_vartime(scalar *out, + struct BORINGSSL_keccak_st *keccak_ctx) { + assert(keccak_ctx->squeeze_offset == 0); + assert(keccak_ctx->rate_bytes == 168); + static_assert(168 % 3 == 0, "block and coefficient boundaries do not align"); + + int done = 0; + while (done < DEGREE) { + uint8_t block[168]; + BORINGSSL_keccak_squeeze(keccak_ctx, block, sizeof(block)); + for (size_t i = 0; i < sizeof(block) && done < DEGREE; i += 3) { + uint16_t d1 = block[i] + 256 * (block[i + 1] % 16); + uint16_t d2 = block[i + 1] / 16 + 16 * block[i + 2]; + if (d1 < kPrime) { + out->c[done++] = d1; + } + if (d2 < kPrime && done < DEGREE) { + out->c[done++] = d2; + } + } + } +} + +// Algorithm 7 from the spec, with eta fixed to two and the PRF call +// included. Creates binominally distributed elements by sampling 2*|eta| bits, +// and setting the coefficient to the count of the first bits minus the count of +// the second bits, resulting in a centered binomial distribution. Since eta is +// two this gives -2/2 with a probability of 1/16, -1/1 with probability 1/4, +// and 0 with probability 3/8. +static void scalar_centered_binomial_distribution_eta_2_with_prf( + scalar *out, const uint8_t input[33]) { + uint8_t entropy[128]; + static_assert(sizeof(entropy) == 2 * /*kEta=*/2 * DEGREE / 8, ""); + prf(entropy, sizeof(entropy), input); + + for (int i = 0; i < DEGREE; i += 2) { + uint8_t byte = entropy[i / 2]; + + uint16_t value = kPrime; + value += (byte & 1) + ((byte >> 1) & 1); + value -= ((byte >> 2) & 1) + ((byte >> 3) & 1); + out->c[i] = reduce_once(value); + + byte >>= 4; + value = kPrime; + value += (byte & 1) + ((byte >> 1) & 1); + value -= ((byte >> 2) & 1) + ((byte >> 3) & 1); + out->c[i + 1] = reduce_once(value); + } +} + +// Generates a secret vector by using +// |scalar_centered_binomial_distribution_eta_2_with_prf|, using the given seed +// appending and incrementing |counter| for entry of the vector. +template +static void vector_generate_secret_eta_2(vector *out, uint8_t *counter, + const uint8_t seed[32]) { + uint8_t input[33]; + OPENSSL_memcpy(input, seed, 32); + for (int i = 0; i < RANK; i++) { + input[32] = (*counter)++; + scalar_centered_binomial_distribution_eta_2_with_prf(&out->v[i], input); + } +} + +// Expands the matrix of a seed for key generation and for encaps-CPA. +template +static void matrix_expand(matrix *out, const uint8_t rho[32]) { + uint8_t input[34]; + OPENSSL_memcpy(input, rho, 32); + for (int i = 0; i < RANK; i++) { + for (int j = 0; j < RANK; j++) { + input[32] = i; + input[33] = j; + struct BORINGSSL_keccak_st keccak_ctx; + BORINGSSL_keccak_init(&keccak_ctx, boringssl_shake128); + BORINGSSL_keccak_absorb(&keccak_ctx, input, sizeof(input)); + scalar_from_keccak_vartime(&out->v[i][j], &keccak_ctx); + } + } +} + +static const uint8_t kMasks[8] = {0x01, 0x03, 0x07, 0x0f, + 0x1f, 0x3f, 0x7f, 0xff}; + +static void scalar_encode(uint8_t *out, const scalar *s, int bits) { + assert(bits <= (int)sizeof(*s->c) * 8 && bits != 1); + + uint8_t out_byte = 0; + int out_byte_bits = 0; + + for (int i = 0; i < DEGREE; i++) { + uint16_t element = s->c[i]; + int element_bits_done = 0; + + while (element_bits_done < bits) { + int chunk_bits = bits - element_bits_done; + int out_bits_remaining = 8 - out_byte_bits; + if (chunk_bits >= out_bits_remaining) { + chunk_bits = out_bits_remaining; + out_byte |= (element & kMasks[chunk_bits - 1]) << out_byte_bits; + *out = out_byte; + out++; + out_byte_bits = 0; + out_byte = 0; + } else { + out_byte |= (element & kMasks[chunk_bits - 1]) << out_byte_bits; + out_byte_bits += chunk_bits; + } + + element_bits_done += chunk_bits; + element >>= chunk_bits; + } + } + + if (out_byte_bits > 0) { + *out = out_byte; + } +} + +// scalar_encode_1 is |scalar_encode| specialised for |bits| == 1. +static void scalar_encode_1(uint8_t out[32], const scalar *s) { + for (int i = 0; i < DEGREE; i += 8) { + uint8_t out_byte = 0; + for (int j = 0; j < 8; j++) { + out_byte |= (s->c[i + j] & 1) << j; + } + *out = out_byte; + out++; + } +} + +// Encodes an entire vector into 32*|RANK|*|bits| bytes. Note that since 256 +// (DEGREE) is divisible by 8, the individual vector entries will always fill a +// whole number of bytes, so we do not need to worry about bit packing here. +template +static void vector_encode(uint8_t *out, const vector *a, int bits) { + for (int i = 0; i < RANK; i++) { + scalar_encode(out + i * bits * DEGREE / 8, &a->v[i], bits); + } +} + +// scalar_decode parses |DEGREE * bits| bits from |in| into |DEGREE| values in +// |out|. It returns one on success and zero if any parsed value is >= +// |kPrime|. +static int scalar_decode(scalar *out, const uint8_t *in, int bits) { + assert(bits <= (int)sizeof(*out->c) * 8 && bits != 1); + + uint8_t in_byte = 0; + int in_byte_bits_left = 0; + + for (int i = 0; i < DEGREE; i++) { + uint16_t element = 0; + int element_bits_done = 0; + + while (element_bits_done < bits) { + if (in_byte_bits_left == 0) { + in_byte = *in; + in++; + in_byte_bits_left = 8; + } + + int chunk_bits = bits - element_bits_done; + if (chunk_bits > in_byte_bits_left) { + chunk_bits = in_byte_bits_left; + } + + element |= (in_byte & kMasks[chunk_bits - 1]) << element_bits_done; + in_byte_bits_left -= chunk_bits; + in_byte >>= chunk_bits; + + element_bits_done += chunk_bits; + } + + if (element >= kPrime) { + return 0; + } + out->c[i] = element; + } + + return 1; +} + +// scalar_decode_1 is |scalar_decode| specialised for |bits| == 1. +static void scalar_decode_1(scalar *out, const uint8_t in[32]) { + for (int i = 0; i < DEGREE; i += 8) { + uint8_t in_byte = *in; + in++; + for (int j = 0; j < 8; j++) { + out->c[i + j] = in_byte & 1; + in_byte >>= 1; + } + } +} + +// Decodes 32*|RANK|*|bits| bytes from |in| into |out|. It returns one on +// success or zero if any parsed value is >= |kPrime|. +template +static int vector_decode(vector *out, const uint8_t *in, int bits) { + for (int i = 0; i < RANK; i++) { + if (!scalar_decode(&out->v[i], in + i * bits * DEGREE / 8, bits)) { + return 0; + } + } + return 1; +} + +// Compresses (lossily) an input |x| mod 3329 into |bits| many bits by grouping +// numbers close to each other together. The formula used is +// round(2^|bits|/kPrime*x) mod 2^|bits|. +// Uses Barrett reduction to achieve constant time. Since we need both the +// remainder (for rounding) and the quotient (as the result), we cannot use +// |reduce| here, but need to do the Barrett reduction directly. +static uint16_t compress(uint16_t x, int bits) { + uint32_t shifted = (uint32_t)x << bits; + uint64_t product = (uint64_t)shifted * kBarrettMultiplier; + uint32_t quotient = (uint32_t)(product >> kBarrettShift); + uint32_t remainder = shifted - quotient * kPrime; + + // Adjust the quotient to round correctly: + // 0 <= remainder <= kHalfPrime round to 0 + // kHalfPrime < remainder <= kPrime + kHalfPrime round to 1 + // kPrime + kHalfPrime < remainder < 2 * kPrime round to 2 + assert(remainder < 2u * kPrime); + quotient += 1 & constant_time_lt_w(kHalfPrime, remainder); + quotient += 1 & constant_time_lt_w(kPrime + kHalfPrime, remainder); + return quotient & ((1 << bits) - 1); +} + +// Decompresses |x| by using an equi-distant representative. The formula is +// round(kPrime/2^|bits|*x). Note that 2^|bits| being the divisor allows us to +// implement this logic using only bit operations. +static uint16_t decompress(uint16_t x, int bits) { + uint32_t product = (uint32_t)x * kPrime; + uint32_t power = 1 << bits; + // This is |product| % power, since |power| is a power of 2. + uint32_t remainder = product & (power - 1); + // This is |product| / power, since |power| is a power of 2. + uint32_t lower = product >> bits; + // The rounding logic works since the first half of numbers mod |power| have a + // 0 as first bit, and the second half has a 1 as first bit, since |power| is + // a power of 2. As a 12 bit number, |remainder| is always positive, so we + // will shift in 0s for a right shift. + return lower + (remainder >> (bits - 1)); +} + +static void scalar_compress(scalar *s, int bits) { + for (int i = 0; i < DEGREE; i++) { + s->c[i] = compress(s->c[i], bits); + } +} + +static void scalar_decompress(scalar *s, int bits) { + for (int i = 0; i < DEGREE; i++) { + s->c[i] = decompress(s->c[i], bits); + } +} + +template +static void vector_compress(vector *a, int bits) { + for (int i = 0; i < RANK; i++) { + scalar_compress(&a->v[i], bits); + } +} + +template +static void vector_decompress(vector *a, int bits) { + for (int i = 0; i < RANK; i++) { + scalar_decompress(&a->v[i], bits); + } +} + +template +struct public_key { + vector t; + uint8_t rho[32]; + uint8_t public_key_hash[32]; + matrix m; +}; + +static struct public_key *public_key_768_from_external( + const struct MLKEM768_public_key *external) { + static_assert(sizeof(struct MLKEM768_public_key) >= + sizeof(struct public_key), + "MLKEM public key is too small"); + static_assert(alignof(struct MLKEM768_public_key) >= + alignof(struct public_key), + "MLKEM public key alignment incorrect"); + return (struct public_key *)external; +} + +static struct public_key * +public_key_1024_from_external(const struct MLKEM1024_public_key *external) { + static_assert(sizeof(struct MLKEM1024_public_key) >= + sizeof(struct public_key), + "MLKEM1024 public key is too small"); + static_assert(alignof(struct MLKEM1024_public_key) >= + alignof(struct public_key), + "MLKEM1024 public key alignment incorrect"); + return (struct public_key *)external; +} + +template +struct private_key { + struct public_key pub; + vector s; + uint8_t fo_failure_secret[32]; +}; + +static struct private_key *private_key_768_from_external( + const struct MLKEM768_private_key *external) { + static_assert(sizeof(struct MLKEM768_private_key) >= + sizeof(struct private_key), + "MLKEM private key too small"); + static_assert(alignof(struct MLKEM768_private_key) >= + alignof(struct private_key), + "MLKEM private key alignment incorrect"); + return (struct private_key *)external; +} + +static struct private_key * +private_key_1024_from_external(const struct MLKEM1024_private_key *external) { + static_assert(sizeof(struct MLKEM1024_private_key) >= + sizeof(struct private_key), + "MLKEM1024 private key too small"); + static_assert(alignof(struct MLKEM1024_private_key) >= + alignof(struct private_key), + "MLKEM1024 private key alignment incorrect"); + return (struct private_key *)external; +} + +void MLKEM768_generate_key(uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES], + uint8_t optional_out_seed[MLKEM_SEED_BYTES], + struct MLKEM768_private_key *out_private_key) { + uint8_t seed[MLKEM_SEED_BYTES]; + RAND_bytes(seed, sizeof(seed)); + if (optional_out_seed) { + OPENSSL_memcpy(optional_out_seed, seed, sizeof(seed)); + } + MLKEM768_generate_key_external_seed(out_encoded_public_key, out_private_key, + seed); +} + +int MLKEM768_private_key_from_seed(struct MLKEM768_private_key *out_private_key, + const uint8_t *seed, size_t seed_len) { + if (seed_len != MLKEM_SEED_BYTES) { + return 0; + } + uint8_t public_key_bytes[MLKEM768_PUBLIC_KEY_BYTES]; + MLKEM768_generate_key_external_seed(public_key_bytes, out_private_key, seed); + return 1; +} + +void MLKEM1024_generate_key( + uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES], + uint8_t optional_out_seed[MLKEM_SEED_BYTES], + struct MLKEM1024_private_key *out_private_key) { + uint8_t seed[MLKEM_SEED_BYTES]; + RAND_bytes(seed, sizeof(seed)); + if (optional_out_seed) { + OPENSSL_memcpy(optional_out_seed, seed, sizeof(seed)); + } + MLKEM1024_generate_key_external_seed(out_encoded_public_key, out_private_key, + seed); +} + +int MLKEM1024_private_key_from_seed( + struct MLKEM1024_private_key *out_private_key, const uint8_t *seed, + size_t seed_len) { + if (seed_len != MLKEM_SEED_BYTES) { + return 0; + } + uint8_t public_key_bytes[MLKEM1024_PUBLIC_KEY_BYTES]; + MLKEM1024_generate_key_external_seed(public_key_bytes, out_private_key, seed); + return 1; +} + +template +static int mlkem_marshal_public_key(CBB *out, + const struct public_key *pub) { + uint8_t *vector_output; + if (!CBB_add_space(out, &vector_output, encoded_vector_size(RANK))) { + return 0; + } + vector_encode(vector_output, &pub->t, kLog2Prime); + if (!CBB_add_bytes(out, pub->rho, sizeof(pub->rho))) { + return 0; + } + return 1; +} + +template +void mlkem_generate_key_external_seed(uint8_t *out_encoded_public_key, + private_key *priv, + const uint8_t seed[MLKEM_SEED_BYTES]) { + uint8_t augmented_seed[33]; + OPENSSL_memcpy(augmented_seed, seed, 32); + augmented_seed[32] = RANK; + + uint8_t hashed[64]; + hash_g(hashed, augmented_seed, sizeof(augmented_seed)); + const uint8_t *const rho = hashed; + const uint8_t *const sigma = hashed + 32; + OPENSSL_memcpy(priv->pub.rho, hashed, sizeof(priv->pub.rho)); + matrix_expand(&priv->pub.m, rho); + uint8_t counter = 0; + vector_generate_secret_eta_2(&priv->s, &counter, sigma); + vector_ntt(&priv->s); + vector error; + vector_generate_secret_eta_2(&error, &counter, sigma); + vector_ntt(&error); + matrix_mult_transpose(&priv->pub.t, &priv->pub.m, &priv->s); + vector_add(&priv->pub.t, &error); + + CBB cbb; + CBB_init_fixed(&cbb, out_encoded_public_key, encoded_public_key_size(RANK)); + if (!mlkem_marshal_public_key(&cbb, &priv->pub)) { + abort(); + } + + hash_h(priv->pub.public_key_hash, out_encoded_public_key, + encoded_public_key_size(RANK)); + OPENSSL_memcpy(priv->fo_failure_secret, seed + 32, 32); +} + +void MLKEM768_generate_key_external_seed( + uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES], + struct MLKEM768_private_key *out_private_key, + const uint8_t seed[MLKEM_SEED_BYTES]) { + private_key *priv = private_key_768_from_external(out_private_key); + mlkem_generate_key_external_seed(out_encoded_public_key, priv, seed); +} + +void MLKEM1024_generate_key_external_seed( + uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES], + struct MLKEM1024_private_key *out_private_key, + const uint8_t seed[MLKEM_SEED_BYTES]) { + private_key *priv = private_key_1024_from_external(out_private_key); + mlkem_generate_key_external_seed(out_encoded_public_key, priv, seed); +} + +void MLKEM768_public_from_private( + struct MLKEM768_public_key *out_public_key, + const struct MLKEM768_private_key *private_key) { + struct public_key *const pub = + public_key_768_from_external(out_public_key); + const struct ::private_key *const priv = + private_key_768_from_external(private_key); + *pub = priv->pub; +} + +void MLKEM1024_public_from_private( + struct MLKEM1024_public_key *out_public_key, + const struct MLKEM1024_private_key *private_key) { + struct public_key *const pub = + public_key_1024_from_external(out_public_key); + const struct ::private_key *const priv = + private_key_1024_from_external(private_key); + *pub = priv->pub; +} + +// Encrypts a message with given randomness to +// the ciphertext in |out|. Without applying the Fujisaki-Okamoto transform this +// would not result in a CCA secure scheme, since lattice schemes are vulnerable +// to decryption failure oracles. +template +static void encrypt_cpa(uint8_t *out, const struct public_key *pub, + const uint8_t message[32], + const uint8_t randomness[32]) { + constexpr int du = RANK == RANK768 ? kDU768 : kDU1024; + constexpr int dv = RANK == RANK768 ? kDV768 : kDV1024; + + uint8_t counter = 0; + vector secret; + vector_generate_secret_eta_2(&secret, &counter, randomness); + vector_ntt(&secret); + vector error; + vector_generate_secret_eta_2(&error, &counter, randomness); + uint8_t input[33]; + OPENSSL_memcpy(input, randomness, 32); + input[32] = counter; + scalar scalar_error; + scalar_centered_binomial_distribution_eta_2_with_prf(&scalar_error, input); + vector u; + matrix_mult(&u, &pub->m, &secret); + vector_inverse_ntt(&u); + vector_add(&u, &error); + scalar v; + scalar_inner_product(&v, &pub->t, &secret); + scalar_inverse_ntt(&v); + scalar_add(&v, &scalar_error); + scalar expanded_message; + scalar_decode_1(&expanded_message, message); + scalar_decompress(&expanded_message, 1); + scalar_add(&v, &expanded_message); + vector_compress(&u, du); + vector_encode(out, &u, du); + scalar_compress(&v, dv); + scalar_encode(out + compressed_vector_size(RANK), &v, dv); +} + +// Calls |MLKEM768_encap_external_entropy| with random bytes from |RAND_bytes| +void MLKEM768_encap(uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM768_public_key *public_key) { + uint8_t entropy[MLKEM_ENCAP_ENTROPY]; + RAND_bytes(entropy, MLKEM_ENCAP_ENTROPY); + MLKEM768_encap_external_entropy(out_ciphertext, out_shared_secret, public_key, + entropy); +} + +void MLKEM1024_encap(uint8_t out_ciphertext[MLKEM1024_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM1024_public_key *public_key) { + uint8_t entropy[MLKEM_ENCAP_ENTROPY]; + RAND_bytes(entropy, MLKEM_ENCAP_ENTROPY); + MLKEM1024_encap_external_entropy(out_ciphertext, out_shared_secret, + public_key, entropy); +} + +// See section 6.2. +template +static void mlkem_encap_external_entropy( + uint8_t *out_ciphertext, + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct public_key *pub, + const uint8_t entropy[MLKEM_ENCAP_ENTROPY]) { + uint8_t input[64]; + OPENSSL_memcpy(input, entropy, MLKEM_ENCAP_ENTROPY); + OPENSSL_memcpy(input + MLKEM_ENCAP_ENTROPY, pub->public_key_hash, + sizeof(input) - MLKEM_ENCAP_ENTROPY); + uint8_t key_and_randomness[64]; + hash_g(key_and_randomness, input, sizeof(input)); + encrypt_cpa(out_ciphertext, pub, entropy, key_and_randomness + 32); + static_assert(MLKEM_SHARED_SECRET_BYTES == 32, ""); + memcpy(out_shared_secret, key_and_randomness, 32); +} + +void MLKEM768_encap_external_entropy( + uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM768_public_key *public_key, + const uint8_t entropy[MLKEM_ENCAP_ENTROPY]) { + const struct ::public_key *pub = + public_key_768_from_external(public_key); + mlkem_encap_external_entropy(out_ciphertext, out_shared_secret, pub, entropy); +} + +void MLKEM1024_encap_external_entropy( + uint8_t out_ciphertext[MLKEM1024_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM1024_public_key *public_key, + const uint8_t entropy[MLKEM_ENCAP_ENTROPY]) { + const struct ::public_key *pub = + public_key_1024_from_external(public_key); + mlkem_encap_external_entropy(out_ciphertext, out_shared_secret, pub, entropy); +} + +template +static void decrypt_cpa(uint8_t out[32], const struct private_key *priv, + const uint8_t ciphertext[MLKEM768_CIPHERTEXT_BYTES]) { + constexpr int du = RANK == RANK768 ? kDU768 : kDU1024; + constexpr int dv = RANK == RANK768 ? kDV768 : kDV1024; + + vector u; + vector_decode(&u, ciphertext, du); + vector_decompress(&u, du); + vector_ntt(&u); + scalar v; + scalar_decode(&v, ciphertext + compressed_vector_size(RANK), dv); + scalar_decompress(&v, dv); + scalar mask; + scalar_inner_product(&mask, &priv->s, &u); + scalar_inverse_ntt(&mask); + scalar_sub(&v, &mask); + scalar_compress(&v, 1); + scalar_encode_1(out, &v); +} + +// See section 6.3 +template +static void mlkem_decap(uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const uint8_t *ciphertext, + const struct private_key *priv) { + uint8_t decrypted[64]; + decrypt_cpa(decrypted, priv, ciphertext); + OPENSSL_memcpy(decrypted + 32, priv->pub.public_key_hash, + sizeof(decrypted) - 32); + uint8_t key_and_randomness[64]; + hash_g(key_and_randomness, decrypted, sizeof(decrypted)); + constexpr size_t ciphertext_len = ciphertext_size(RANK); + uint8_t expected_ciphertext[MLKEM1024_CIPHERTEXT_BYTES]; + static_assert(ciphertext_len <= sizeof(expected_ciphertext), ""); + encrypt_cpa(expected_ciphertext, &priv->pub, decrypted, + key_and_randomness + 32); + + uint8_t failure_key[32]; + kdf(failure_key, priv->fo_failure_secret, ciphertext, ciphertext_len); + + uint8_t mask = constant_time_eq_int_8( + CRYPTO_memcmp(ciphertext, expected_ciphertext, ciphertext_len), 0); + for (int i = 0; i < MLKEM_SHARED_SECRET_BYTES; i++) { + out_shared_secret[i] = + constant_time_select_8(mask, key_and_randomness[i], failure_key[i]); + } +} + +int MLKEM768_decap(uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const uint8_t *ciphertext, size_t ciphertext_len, + const struct MLKEM768_private_key *private_key) { + if (ciphertext_len != MLKEM768_CIPHERTEXT_BYTES) { + RAND_bytes(out_shared_secret, MLKEM_SHARED_SECRET_BYTES); + return 0; + } + const struct ::private_key *priv = + private_key_768_from_external(private_key); + mlkem_decap(out_shared_secret, ciphertext, priv); + return 1; +} + +int MLKEM1024_decap(uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const uint8_t *ciphertext, size_t ciphertext_len, + const struct MLKEM1024_private_key *private_key) { + if (ciphertext_len != MLKEM1024_CIPHERTEXT_BYTES) { + RAND_bytes(out_shared_secret, MLKEM_SHARED_SECRET_BYTES); + return 0; + } + const struct ::private_key *priv = + private_key_1024_from_external(private_key); + mlkem_decap(out_shared_secret, ciphertext, priv); + return 1; +} + +int MLKEM768_marshal_public_key(CBB *out, + const struct MLKEM768_public_key *public_key) { + return mlkem_marshal_public_key(out, + public_key_768_from_external(public_key)); +} + +int MLKEM1024_marshal_public_key( + CBB *out, const struct MLKEM1024_public_key *public_key) { + return mlkem_marshal_public_key(out, + public_key_1024_from_external(public_key)); +} + +// mlkem_parse_public_key_no_hash parses |in| into |pub| but doesn't calculate +// the value of |pub->public_key_hash|. +template +static int mlkem_parse_public_key_no_hash(struct public_key *pub, + CBS *in) { + CBS t_bytes; + if (!CBS_get_bytes(in, &t_bytes, encoded_vector_size(RANK)) || + !vector_decode(&pub->t, CBS_data(&t_bytes), kLog2Prime) || + !CBS_copy_bytes(in, pub->rho, sizeof(pub->rho))) { + return 0; + } + matrix_expand(&pub->m, pub->rho); + return 1; +} + +template +static int mlkem_parse_public_key(struct public_key *pub, CBS *in) { + CBS orig_in = *in; + if (!mlkem_parse_public_key_no_hash(pub, in) || // + CBS_len(in) != 0) { + return 0; + } + hash_h(pub->public_key_hash, CBS_data(&orig_in), CBS_len(&orig_in)); + return 1; +} + +int MLKEM768_parse_public_key(struct MLKEM768_public_key *public_key, CBS *in) { + struct ::public_key *pub = public_key_768_from_external(public_key); + return mlkem_parse_public_key(pub, in); +} + +int MLKEM1024_parse_public_key(struct MLKEM1024_public_key *public_key, + CBS *in) { + struct ::public_key *pub = + public_key_1024_from_external(public_key); + return mlkem_parse_public_key(pub, in); +} + +template +static int mlkem_marshal_private_key(CBB *out, + const struct private_key *priv) { + uint8_t *s_output; + if (!CBB_add_space(out, &s_output, encoded_vector_size(RANK))) { + return 0; + } + vector_encode(s_output, &priv->s, kLog2Prime); + if (!mlkem_marshal_public_key(out, &priv->pub) || + !CBB_add_bytes(out, priv->pub.public_key_hash, + sizeof(priv->pub.public_key_hash)) || + !CBB_add_bytes(out, priv->fo_failure_secret, + sizeof(priv->fo_failure_secret))) { + return 0; + } + return 1; +} + +int MLKEM768_marshal_private_key( + CBB *out, const struct MLKEM768_private_key *private_key) { + const struct ::private_key *const priv = + private_key_768_from_external(private_key); + return mlkem_marshal_private_key(out, priv); +} + +int MLKEM1024_marshal_private_key( + CBB *out, const struct MLKEM1024_private_key *private_key) { + const struct ::private_key *const priv = + private_key_1024_from_external(private_key); + return mlkem_marshal_private_key(out, priv); +} + +template +static int mlkem_parse_private_key(struct private_key *priv, CBS *in) { + CBS s_bytes; + if (!CBS_get_bytes(in, &s_bytes, encoded_vector_size(RANK)) || + !vector_decode(&priv->s, CBS_data(&s_bytes), kLog2Prime) || + !mlkem_parse_public_key_no_hash(&priv->pub, in) || + !CBS_copy_bytes(in, priv->pub.public_key_hash, + sizeof(priv->pub.public_key_hash)) || + !CBS_copy_bytes(in, priv->fo_failure_secret, + sizeof(priv->fo_failure_secret)) || + CBS_len(in) != 0) { + return 0; + } + return 1; +} + +int MLKEM768_parse_private_key(struct MLKEM768_private_key *out_private_key, + CBS *in) { + struct private_key *const priv = + private_key_768_from_external(out_private_key); + return mlkem_parse_private_key(priv, in); +} + +int MLKEM1024_parse_private_key(struct MLKEM1024_private_key *out_private_key, + CBS *in) { + struct private_key *const priv = + private_key_1024_from_external(out_private_key); + return mlkem_parse_private_key(priv, in); +} diff --git a/crypto/mlkem/mlkem1024_decap_tests.txt b/crypto/mlkem/mlkem1024_decap_tests.txt new file mode 100644 index 0000000000..b4b06e0884 --- /dev/null +++ b/crypto/mlkem/mlkem1024_decap_tests.txt @@ -0,0 +1,1829 @@ +# Official test vector 0, seed: "061550234d158c5ec95595fe04ef7a25767f2e24cc2bc479d09d86dc9abcfde7056a8c266f9ef97ed08541dbd2e1ffa1" +private_key: 433a70ee6950f9882acdd5a47820a6a8163708f04d457c779979b83fe117224701490830386637da332e74b1aeda0b2f81ca4f9bb2c2b02b0cfd680c11482f335acf7b9139b5b88a34e3542c6861377545983343cd829414e47864212e78f855f52390379acc3a62953131b63ee832adb3bf4bf58e247349b5e097e55abe497b15982373ae732e0439ac67d05c7f037c8a739b18140e144c851dc9611f4bcf04f3a2093c197bd63bb5e6190100545ff81db7fccddd9a324b0bac3c2c2382284058f08b961952c094019c10be37a53d5ac794c010a9d0821f15027a1c419c3c71c9a1d28aed02597ab79b875394626ba39adc090c3a90cf75871a65275eb1c5b03372e13a1a23d0cf9374111f80cc83a905622b83fc513971ec8419f0880c3067633671b09b5456ab6057936d19a4a2a267911b000a13956fbd493821da072c04642b0c20da6cc0d9d864a39365dfd64f10187825fa33250749cbc0c905d7b1ff3cae2412bf86b81a817b86baa30edf7862e5f6bac98726e56b3cec60664caa2a7df670c5e207dfac03824c89897cb490eaa76521222c86205169c91c329c4a184d78721af836ad4db0ca78464d4171473012b7d183bafa627585c64be3809d7e6004cbdc79a5460f0ad677cb716512407d3a619ad09543b739547472a706b317a509be5d861fd66c7d0ed94cd5004795c18159e3a33d798711525f1635a68428172923249635aad032b9e56664bdd48ed24ac75c6468d1903e471086c5f1567e831a0508c539632591ab577d324a82429725809950761d8434288c14034f1c06c1d0aae09a71c740a55701c28ff84499f2bb18b6628caaa3fe75ac4de04c6f913900d86c88126252a17c4d303991db0287120881bb88478aaa9af9bc53d3729843858fdb4648059cac82c1a10878ba39823b041bd0e258487b56cc8a3220c1a58bf66a172b5b9a0c632d674eae885a015c4e37ba073680bede7534f3e34b6050c86b21c3c090941f23b7f6731e2bda0e6ea4646771cec572b98ca0a158919adbeb84ce585ff9f25ebdda6cb6f07a8f811232607e7217bb039babd0d91934a8594059c9687723c04381bfd627a10517f5f4bfc77777aa2671ae124f2b7a5f4d5614029197e6586fa8c17e0ad90781bc7bb19a772d5a4efe32cac89b76c42a5ede9bcc20c1898c08a5b0c07e478b1bbc226efad15f2ac737514b8c6149810779222416537ed00daeab177e903ead6b4ac42370af1b1f50ebafaa1c6e647bbacce72c7d0b88aeb0b06fc1a45457a9c187579bf184579cc351c43dff942605aa5604fc85fc5583f6f1496fe61d70d6cde2327fee713d86f29b3afcbb54e9a92a33a6c1ea6ffa309566b0686233c0f3b1c3144890e4f0829a6099c5749cdec84328ec2cb64a7385a761d64b3a23c489343343b97723ae78c7d805458e1620f0292897691704cb76e3b0b281a83cf64490498cbcaf04802416b33c565171d772d3b9354037587629ae14a5c5031ac36671a0d0c91cc0b4cd69d8402e33b9bcc2bbaf6b971e303fa137be232598a4999bc012574c81651b38b38396c1c365303ad25d49fc6b689951a1cc4c6007613065495f97910f9735d4ea4e442acb2fabaecfe1adef0667ba422c954a05d1b6167a263e1275c6ada8385965304b30324040542cf5a451bcafc74788be3b9b9fcc45d4790e2d7335c60a14f0a49d13053f2626a627ca19553cb336a2cb4a455d8ef3989491472ba0051ef7416e0bbf1a6108fa07c161548e7c62331ae5a2b4e4a108a51093d3150821a2fb547170a1b73c43c550c6557a4048a58a2cd77a244234b2235175a0897d5061b4613482dc136414048c11db37eae0a5df87c19314b0e82397a0d338dc21538af36149d93f8b1a11c53bb5def8b7a2cca3362b7fe3a1408a2547e209058c673a7566c26123a6d8b692a5f33ebdcb2624b79d877bce5fa14e42e83faad82e9900553a3c6045ca329fea4a506558c491b6a616c6fd400b42136f44cb0d0257650819018d3c568ef6c60c6c409e70a829287108c1b6a4d32f76e5cc4d104b02438ef7a467912398ea9c7cbd9981589a341897687b516a13307d66c068c444b4b949a17412413315ccf49b99980034b5b8cfdec4a60b9c1e7455aafbf3a757346990cc32b0599ba217a6c5fc39537911957c125148a87f41589cb222d0d19229e2cb55e1a044791e7ca61192a46460c3183d2bcd6de08a5e7651603acc349ca16cba18abb23a3e8c330d7421598a6278ec7ebfabca0ef488b2290554753499c0452e453815309955b8150fa1a1e393386dc12fdb27b38c6745f2944016ec457f39b18d604a07a1abe07bc844050ffa8a06fa154a49d88fac775452d6a7c0e589bfb5c370c2c4b6201dda80c9ab2076ecc08b44522fda3326f033806dd2693f319739f40c4f42b24aca7098fb8ff5f9ac20292d02b56ac746801acccc84863dee32878497b69438bf991776286650482c8d9d9587bc6a55b85c4d7fa74d02656b421c9e23e03a48d4b74425c26e4a20dd9562a4da0793f3a352ccc0f18217d868c7f5002abe768b1fc73f05744e7cc28f10344062c10e08eccced3c1f7d392c01d979dd718d8398374665a16a9870585c39d5589a50e133389c9b9a276c024260d9fc7711c81b6337b57da3c376d0cd74e14c73727b276656b9d8a4eb71896ff589d4b893e7110f3bb948ece291dd86c0b7468a678c746980c12aa6b95e2b0cbe4331bb24a33a270153aa472c47312382ca365c5f35259d025746fc6595fe636c767510a69c1e8a176b7949958f2697399497a2fc7364a12c8198295239c826cb5082086077282ed628651fc04c639b438522a9de309b14b086d6e923c551623bd72a733cb0dabc54a9416a99e72c9fda1cb3fb9ba06b8adb2422d68cadc553c98202a17656478ac044ef3456378abce9991e0141ba79094fa8f77a300805d2d32ffc62bf0ca4554c330c2bb7042db35102f68b1a0062583865381c74dd913af70b26cf0923d0c4cb971692222552a8f4b788b4afd1341a9df415cf203900f5ccf7f65988949a75580d049639853100854b21f4018003502bb1ba95f556a5d67c7eb52410eba288a6d0635ca8a4f6d696d0a020c826938d34943c3808c79cc007768533216bc1b29da6c812eff3340baa8d2e65344f09bd47894f5a3a4118715b3c5020679327f9189f7e10856b238bb9b0ab4ca85abf4b21f5c76bccd71850b22e045928276a0f2e951db0707c6a116dc19113fa762dc5f20bd5d2ab5be71744dc9cbdb51ea757963aac56a90a0d8023bed1f5cae8a64da047279b353a096a835b0b2b023b6aa048989233079aeb467e522fa27a5822921e5c551b4f537536e46f3a6a97e72c3b063104e09a040598940d872f6d871f5ef9b4355073b54769e45454e6a0819599408621ab4413b35507b0df578ce2d511d52058d5749df38b29d6cc58870caf92f69a75161406e71c5ff92451a77522b8b2967a2d58a49a81661aa65ac09b08c9fe45abc3851f99c730c45003aca2bf0f8424a19b7408a537d541c16f5682bfe3a7faea564f1298611a7f5f60922ba19de73b1917f1853273555199a649318b50773345c997460856972acb43fc81ab6321b1c33c2bb5098bd489d696a0f70679c1213873d08bdad42844927216047205633212310ee9a06cb10016c805503c341a36d87e56072eabe23731e34af7e2328f85cdb370ccaf00515b64c9c54bc837578447aacfaed5969aa351e7da4efa7b115c4c51f4a699779850295ca72d781ad41bc680532b89e710e2189eb3c50817ba255c7474c95ca9110cc43b8ba8e682c7fb7b0fdc265c0483a65ca4514ee4b832aac5800c3b08e74f563951c1fbb210353efa1aa866856bc1e034733b0485dab1d020c6bf765ff60b3b801984a90c2fe970bf1de97004a6cf44b4984ab58258b4af71221cd17530a700c32959c9436344b5316f09ccca7029a230d639dcb022d8ba79ba91cd6ab12ae1579c50c7bb10e30301a65cae3101d40c7ba927bb553148d1647024d4a06c8166d0b0b81269b7d5f4b34fb022f69152f514004a7c685368552343bb60360fbb9945edf446d345bdcaa7455c74ba0a551e184620fef97688773d50b6433ca7a7ac5cb6b7f671a15376e5a6747a623fa7bc6630373f5b1b512690a661377870a60a7a189683f9b0cf0466e1f750762631c4ab09f505c42dd28633569472735442851e321616d4009810777b6bd46fa7224461a5cc27405dfbac0d39b002cab33433f2a86eb8ce91c134a6386f860a1994eb4b6875a46d195581d173854b53d2293df3e9a822756cd8f212b325ca29b4f9f8cfbadf2e41869abfbad10738ad04cc752bc20c394746850e0c4847dbebbe41cd4dea489dedd00e76ae0bcf54aa8550202920eb64d5892ad02b13f2e58626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f +ciphertext: c9bead6b0c1114389bd4761c73ab9095b5809daac9f659bb564af226173052a4a3e7f2e5fd47d2b02aaeb5189e06b9f4ae98b619cb63efbdf3989a94b36e8ea0d700633b950a0ae2a78ed92e85c85c70e13e626fb263fac9681521c3ab22fdab29173c9616a2b037083ff7b2e019b5bcde068fac257ef8f12798411693c1bdcc65420997a513a8a69502620be8e4ce7362e412a76cf51c1f2433f1ab64ce0e5d2f56d7c9ade994d0e35d0aeef3ac515b482437664d8c1d25e5a5507cf80f970d3ea7226aacdc457cbf88a0560aa35bb2c5c455867e2159910a35810befe3aa10eb04d8d57147cb8f66d2b070bac43d1f1ffdd57a9399951f64965727bcb9f66ad42309dafc799c1c540af1af93eff68a86d61f5115db662dee7ac9a362677762b6a164a0fa0a4d859e4b8c8dbdb4e183f5e6808fc52229650caf7cf3e16de3d895d148c35448ab8c2753c9831b24bd4921497eaa192565cabfd83c0c68dfe7d392abf5e5e6f84bb9f5af4b7118c0b558105f9c10c9b6d70682e1de6e0689d7106a6374bd34aed7229e6cb356f2ea65e680ce7b1e2c3704e116a38542826e8a001141baf2e34de37a03040986d4c0cd5d57f0701ce930986fd9525b58e2e59f45b8dd04c0f35b0f47970cc67079618eb9e6d91e9b0f8c6d2e165cf448a2c1ebf71b6537e0f375185dfafef698b6239bb35580b315bcb5ed408c357f192def89bc1b75cdd6aae8b5faf0c3e13803f6bdfa76fb407fcbda790c329b3ee42fd3d3b03bd5003f0bc432f7ba39631112452dfd12140433ff8980eb6a526ba85ef99477378b4dc76635a5cd5040e43b8c1fe4ee5e158e423bfc0c893c1d5613bed08da719c9073184eeb36fd357380fb1873d8cbd36e2255e985b1b76819743a6584a9b3a580996c9c2eed9bbbfff78a6204b5e5eeae5f4efd2660078b37f0754ab5da862e666b145b5f23f3d0977799929dfa2aedda53d152eda1d0d0e4ea43f6ed889bb965eefe0a7c685bb36770eaa874242c0e229cf6ce56defa5aeae64d0c40dda8aa26eaeb31458f070a3bc72e1619ee9b5f642291c56df5b7e43db6c802fc74f4f3f9b5c0d355c3aae520aa31229d12f3e7cc5d48e691191a36b283765f4133f0ff1fe2f01c6648b2798a74eb5d842a248f524a7e7f8974211297b44f0dd19f386e86be6ba782de77fde887226f37a1c77bc5eddeee5bf46b67fb7478d559865f262caa84d64a8ce59e4df0818e14861526acd3483600f3dae7959d35d8181ca6a81ce791be00752da7759446a2cfbe00b8248b93491debd520220b755416d2fc6b7c8af2ff75e5bcbb8e7537380a5721c77484957a69271d8bafce0f166735ff869232de5d381afbf0e44d69172b79a35191949de09703b94222b13c385c6081e6d2ede1e57fe184ef8f60196b9a3a7b7eff7497191ca8741b5a01e79cb69a61142e6f5d080fbb3e566f79e146f75c8a1097860841b4747df604dba954e4a8d9e0dccc1f609d05cf8d31219ecd60c312de684552f09227cb829291c645732c5f5d4d711639f42a23080aa34fe1420f219bd6bcf4e3b29b9d02293b2da81383e0a51d2bb186c7b0a211a0cd63acbfc0210401e985d436b3803d5601c24136afd1562522e45b457cb439178be4a87cce40346d34ae0f3c39103c8a3ebc9c86c8db8fc5561eb0f3a143d4e9fe93a5cba6f6fcae5650d3f43d2668a5956c922893b816647ded0afc052a6c3d9d01a3d3af0f1ba807ff10491e131dc15e165cfd0650a1f2c313d7956141edcc61cb90e9e7abf2fe35fc9dc1bde88939fa11f7bbe3eb4d8ffa643b074d74f45113586e9bb12060003d71941f2da098dc0e96cad3255cf328ea2d3308c1f4585e89c613c426b7e798e1ec4e98fe6c71e7491f5eca0cd05115861bd160e3fe73a58a026ba538e0e256b92f1d7a2497570594856860ffd06b601ac575592f4ac612b5de7866042123ebc60c55768e3a7600a3260551f2bea22bbf6b6c8246e80f9125c4bb9db354dd64ae695c15f5071f4abb9639207cac7331b310f69a05f54b995de529a023f033b055db95287a14ba30a7cc526bb724c417fba290636a996f286e3e9e939e4fe1c398b5c6599959d0b4445a327ec469a1653cfaea7552cecec085ccaa68938ae4ac3c424f7e480439ebd2c992b5f6f95ec244b657dbdeaa9ae110aaf4d68bf4e27410d43ceef3e88e9c717dd44c9ee +result: pass +shared_secret: 489dd1e9c2be4af3482bdb35bb26ce760e6e414da6ecbe489985748a825f1cd6 + +# Official test vector 1, seed: "d81c4d8d734fcbfbeade3d3f8a039faa2a2c9957e835ad55b22e75bf57bb556ac81adde6aeeb4a5a875c3bfcadfa958f" +private_key: 1df76d46867cd8c5b94b3666ccc8c368ab45c71abc8df2cf74fb3070095902282b41a698b405947354664df4727af16b549209329623a33889b41747d56594b842be87f40aabb37bb457c935c5a2fd3801694433fbb545b35b23b6d17a8d9aaef6d31fefe99d8c7c2030989a285900d8fb78ed65c97428c25459195890406dc878b2a98993664fecc960237a2326530105f78bb0d04a00030e6ec0a258d803a00844753b8bca802ad335648f348fa34905681a72a8e198206613dc285101499413267a5588bb4331120213bf3dcc0efbd80b70fb08bbeb6067e617d380b804bb6a4e745a97cc8342c5cab4208390147bf1b87c6c4430d8b443e45c101ae65fd9c43798a082aca969b8171b8794c3e442096a139496b9a11e9821afea868107006e4a283f60a035485914e9901e843013d36c36b35318522cd69c1df78acab468336ff89ca4a787363b51f7b62468d974506a245049c0ec7092e7c9368e18c313297a92a292926902d34b0890192b50cb3772a797ea6918d380b1752b8e1e0a36b41a2f865b73a8b3a36d68446ada396ae000898035c40cb4bbc76abe0240392372fa6bca942c4112c86eaeb60a548326868b80af6a8f9dc506bf9474641b7032994d641a3d1c45b8df7c2fb3301003f6481f00622932309e860fcca71f7fd6c38242cda0a4a589e4bb791294a6aa9f85959e91b0b5424a61a974ce29d87c7c0c1b0d7ab804690e285952cd95ca150097a7c6aba8c878a87b883c52b2d076762fd424fd76c074873fafa03d0d98647e76b4fd994300850093c2529b3b599d33692935ba09e4156052916833bc0c13836110bc134c4ae465acf1730a01e261f2d3b1156288f54573aa6cba8d161e533b50c56a2ee0fa04676b83489b742d492aa6650fd658baabe309a860967a726a6cac46bdc8893215160f97c3db16cde48a684ba64fa34a7c9720935711aa4e3bb0fea7b14f4c9a889b9a45024cdbc09f3a971854b5ba1f940712913284516614277a1df04a6a583873b154f4e68151dc8ecb86b5f58842fd31491e4422db7b7059268030c60f4ec3bc1b37b076d157c2c014dc52a9909505d99180b259cfd3204a22825ba2051e9dd4376e7502b305a208a98a2bfba19ad9152d3853acab2c48551ee998c84649c2c8e7b9140bc67cf839c1a49389c0aefb2120ccf6b7cba4360921a0e31b7eec4335926788af441280b4accad52ae014493d15caa20246cd4434639303fb5603f282b8a6f0b1fe41098d28c73f0b74653cbe673340158492d6517c514218dfea8bbb4aba8f741c0820c076a23b170456f8d8598211cbe6a37c15e6c38c905b8ed8430db09982ec4f6c882632383adda285a08bbcbe219947e96017c8bf3b790dca66b868ca729df23a8125bc103b5eeea6cabc6472a07281de58cfbbcb319a7ab27d3a5f5c268bb0ac6587e7774a2a437541a28c84a8c1b986b1a7204fb613cd0067ec26458155923248bf0c641fbb4c4219941414895f60712928fa7275f7a99ed20e6aa7a2e3637d1fabbe65db9dce36b1df2656e0284d3c5b4c2d789802c97515071a8f7c31b5501f4ff492cefc8c7f6b0937da9e02dc6a99493ba7f7269a32b610127f89b6b94020bf58a20ecd7548009d63331b2f4908499b400357c30f1a67694de351ff5cbb4eb553e4d523568542a0e241a6ecc8045caf295bcb12c55861f7b5e5151e5f4cba28d54859619dc04b96b6b3a2a2436d921bc4560a4c4df68a34413733761b8adb790fd95a6479351bbb7cbb17a528ca14f0c31eadb195c86397beec61ab8b8ef9032d1ae0c669fb1203f554d2575e25e45bca0767b0821740eb7aa749161e485152b68d5a8c0c53db6ba6472a34016fd9067d07e8745e66785949a4be88573987aa91da5fe01387b739415b0c5d03caa04089812c85829dd43e9b310ff5887561c7aaf64b1368862050b157e0bcbfbb659934466a3b1611633619d7c2855553b4c3934c8f410e7a097a5b591a76582aef355c57a076a00905b6474626e33ac9dcaa77e8a07bd9509f5baf27bc54bfb8890ac4210f8bb45342350acb61c34999371614d85c7cc49c92e54bbbc94389663053b74088984b1b2d6c335c000ffcd21c9a45a8d377638f954a5e132563f62347614f10d103d0a58408867fec69c50f595c938a454364cf10a4c719113a23b242bc013962f13421ec0686e32ccb80840749643eb4b5cc4182cee2366717cf77f97da296a185440113770b6f755bc596cbbce021e94306b1e4ae437ab7dbc29527142a9223a8a7cb269391cad8f70c6cf666118830485ccaebba1bda242176559904713c6722c413d5c2b9c2669d58138ed5b23506a71c6182af6939dd40c51d678639238c8c071384c1256ee6a307475bb72bc93976c8976bb89c736d8fb19580cacb1f335b97d16943c0706f78095408cdad77a9fe967c4bca738960b3a3c171680426528a21578b79b226bda19a9bf132998a2149c463932d630b0f131e8096be462080e6d17107704f3b0cc90c3908cd645268375056e6072425b51a46c27a48b9c0db67b025a58ee37b44794430f3ae6cc74e1673c2b1d4b29db5370f590eaf6165e5806376f6a7d4825c74038792683f38893464103d82426593f366f96b023008be21956e6be8a4bd612d4f85239d62ab6c39069aa210b47b37ca85394c19327e5303cc9c54a5c63aeb104dacf67a1c1c3142710dcf682edac82471ba98c81a552ad2541b7338b2a0ce41354ccab879f549cfa58995eb8c64a8b30b6f384ec2e04dc1a11ae04c967f744024d70da780516777a1b1715f22cb1eb3511f5c4c99ce577836489a0f813a99a622390b52e4757843c772f6e75f470305259833b3993919f3aca66563f3eb7375f5883cfca72398b049170ebf0997ff277e44501fb0e83d0c5ca6c701048180ac68d857e0dc5d24b1628433c737b8808c290839d42c6a322250e0c22b81b4c018260d288c47976bcb84bcd0856c40448ca40b723b8144837965ad46b521ec4b405c28589b8536621a10678a75233e2cd59bc6e03f49d93925c5bcc133bea39a7e21907a19840c80225f1f154c270a4bf0206a16c241bf42cbd351055adc8519d38fc9d3b976e2144909053c5843c36b7b247a6ecd04c9d792a6fae968cbe11713592b287cc8b07b73c334bdbcb91d05c7ae4e86aa7547b4cc6403504acaef4c6e5b758f4e261c7624337000c187648325f36ac8854d4a8a1c2c732a0811b39439340e23c33af0ce5090ce800070306834321b5af9e4be13b22ea6655da11427f995a115dc86cda737aa99078407b9f78b914e831a6bec2c85f922f972bdda971b66761045813a852a0fd990136840835f8b5a72c5c8e8a65ce8d3ce957b06698261160031597a29e3388a4f5a5f0b96b70481a2e5738d3a50189496c75a856643899947c955be8871e808030a5757d6b46079454b54d51557cca964379bca5a8191698275dc51cb164f8e508fdaf480031a28afb1c9ccc65da9ac1cdec625131c6630188ffffbcb726133ca563da640c76a6c24105502ea3c24b918c5b818121cc68e2f1b62112a41594a6359876b91d058fd66861b7633d73cc7226b8debebcf90fcc390f761360554acf013ad03911b49b641c73687f4a73f8c290a2890c02c56e2a6567fb03826353d87ea41369673e1f9b920b36203cc9aa464192d01b6d859307927a629a24b34132cbceca487a0cb3c7442aba47c4a077fbe7442c2a4221a200a93e726518830b11b690f0497ac0851a5b27ea20253065a9ae7e6567fc26500edb11346955aeb2d9c6c228f1644f21b34e3694c05016284bcaf746ab6344a10eec87cd0f76a611ab64ec86288c339294aa15233abfb680036d2155fe77363530c3ee0c4b8b74a54e9a2453ca081d01f9626867632870b178d25b831fd133a2ac0596e688652c1772e2979305c5e2a10949bf35bdc08cecd6771b7f659b61960a45054998472163c21d31024c0c24972d5b145608c1044718f60894bf5875a453d4a7c4569c63a2b38c2db6a4fb8dc9289610ef12754f37cb4dad3b66e135d1f75759622cd7fa03c4ba81d71ac9938c9a97839a12d7a4622943c381a048edb26c64926b3a807b644aebc9110c54b06d4ea1cbf6462a55b31c7f5202cca8b7c698d9559276a1a3963cc56dd26ce3c051167f299d80c3a8ee894f134567cea1032c845d79ccd95313f04d6459d1ba72e00cc604365a9c5c5185005f17a0397a559a0b28f31b41a5e0948c81501e902b9cc253f6eba88172bbb92024984fa99c5bab08dc01504556aabe8c81bc99c56fc771ddc85d37b7c50182345e189267934564aa9dd80bcdc25b127f1244763644004e5eaf06b095b892bae095e0ba7f9d2700a50cfb6fc18d6419f5438a0573693f421d3793e5ddf3d846678552aaddc19265946003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 +ciphertext: d0f902d86e1ac0a000f40e508ecb36f575902e319cf05ebb6de2ce63e02b912f9cfea50f513a4167a6f8973a656720aba76c83fc8caf1b9b922233e0356c9bc2b0f6fd5f083aac09b965c01208019d4d0f458f321a07197461eb3f71a136ab7fec0d7c1c6c868d6b2c890f09019f5159fa21642f44b8c1b89b9dbc49a0a9d294fe670ba0915a78c4a5a234af77b925e582eeb1437cebdfd3a86c98abd5723bd2fdf6b54fd79ed0dd867c5ff16fcbfc30bd1b739a912aa87c70e7213a3e42218db247422423089ead4e87ba998da1f354a1d1a65bd8c481c67c7aded64ceecbc1a9bf413e343433ba93fb79350187825e984f6e23f5dfde9b56ae1fa50ebd1e6c6b0141e3b9be3a5d1502dc21656d26dbce6eac70a596f23824d512ba86069a2a28182bf71275cad1639e947666a7c71f04d72bcba3036e774a23e95216af23b19d7af41f8db3f725d937915c72591fec65e902b486f9ef294608624d93da1096370c56a7f340629485cf0684e9ac76609b1f3d8f3b89bd20b87ff3805af4f2c62014a4b3f7e25c3cd12f505048464c490363b40ef68da9da2f25ad691df7bd4402c9e2a210a4ac9c2e1eb9f5f787b876e88ddab57ceae57741c9eb633280995ceb65a6871b767bca78b6569aefa1059d16c90a6afea36f5bce1d6928de55c9241c3b0f225ac7cd55b8ebf663b7c298f41c23fa8ccd279845a48e6614d500c6669cdc232b92178e7fd1fcf5b0b1a9c03f9bfaae1a8bdd856d91616e913f82a124bedb501dfb68d91f106b06acb3f9b6d473d8815ea27bb839856be5e5f26430615b97978f6113b042dad56475304aacb6d0ad777e63b4e8bf53a0c51c8e8b911147ea7404ce6d1a70770662b439fbd3d4e4c2788aef534ed19012b9387ebb9be3323daec6ebe149264c0253912f4f0eccce2d4cf5a7790e035c3a52c6a1541a5ac5be90526a5f031403227ee76d0836efc37a449bba10165ffe58f111dee2dfa288d3da3ac84894ae676f265b02bfa2a809fc622c3b8b4201ad59439d170e7022488e4e6cfd0fb5efe962a704905bc389001ae16ec46af47ff3a0ebf900a21fec6ccb754a89450134ef6945be8fb68960174342121c36cfad95025e336cfb15262caed34b3605ff9b305d98e53a0e1eea5f4f35ad7588b4f5ea0875f7a3c35ebd13863b299a05ffa14662ccc10cb949a56573a419bbab7424f7c13e537d497f002689fc6190d5a079019deeb265a238c1cebb9fccff0a3203783b03da50d589daf28ec573bab47207adeeaff281e180dc499d62c346b2485be4776f163361edb2fa9613537adaa4838396e32a91badc75487be6a1345ad93351bf4ba3b46084a2ba9421f0bdd9ef47be8fc22857cd0c5dc6b83e6a7ae7d0026bc61ca0361aff37b0d878400a1637a522a06fecb7be0e62b60fae2df2c7a1e68ec2992cdb505a5fd1ca7c1f53f0a8ea4162639af6ab32414b33cdf10b8aa579dd827c30b8c1780b3cd9d67320a11704057e0a77e998e1e4c12f3e5d8a13185ae6830911f88e7dc5cac7004abbc512c6ca69006b7dba74f147dc49785a1847a919a620c892d5a8ff3bd4b664bb73271d8d069ea19bf0e924e2869688cf0f26c1349abc29ce6b7fdccc1174f1a4b4fd26158b094808fee9d0ddbd996f785e6a1caddbc3293a1114feff09a19fa71f286f48721e810693ca9095d7b3c0b9736dfab4364dc1c0075e3face4dfe2eb1c815f713028312f1d106184c1bde874900591731dd75fa8f1505d816d51780f53b9b759b295cf5616acc7aa02ebe6b90252956275844bff4865637eea40969fef0ca595979b9215edfccaa44e09e67d8419928e09be7eee4d240d24f70db6bee802729b4244c619f38df99d0635a3125e2cc7c65bbe41caf795fc6d474ccb000f54f6c4daae2b62e62e2211f1258985e55fc5942d8c738c7df8a184ad34308dc798f4933031095ffd01997150899cfac81c533e6b1d92002640babf3ae3b73371964dd6dac95d8927ac33c4bab3e7a7d115fd1722b8c625da2c967d29764ef85240cec35bff4f507e3d0a02ec6d26a7ab90b8c50f392b8160ec34ddbd389a15bd47558b5b890cb45aee2e7c9f516201ad9e603c71fb631d0b930147a8bdba49e1dd0ca6fa3a8a089b520726dc78ac914d0c41d5ffd5875f798eafa2554c1ffed8b4e03f316a195c95c9a7c1351a06231ac84ad6269280ecf63a73 +result: pass +shared_secret: 425ada67204ff5b30a9d1cb545bcb4a6dbbd923cb3ca284911a1c5fe491ffb39 + +# Official test vector 2, seed: "64335bf29e5de62842c941766ba129b0643b5e7121ca26cfc190ec7dc3543830557fdd5c03cf123a456d48efea43c868" +private_key: 9a29ca06e2ccb6a96ad265638a6a057ba846fd6777408cc21aa7c8a7b60aeffc6d014b02e64968cab39948e45c6e32676117373f201dc8a86368f54a54501b8d002d3ea36c1287a5504313f3e03ffbe64d28059b41247e76c24a8c05abc21678110983ca0905434b5b2ac45adc6c5d90d83b416b30351b780e8386d304caafc70f3a2a059e8094ceb83810d7599af876537c4d367c21c0827cef5c80f2b04f554c105c1a8c874389a5f8506d104c105213b64b00b1f194c1f793f6d340a7466896905e295b39d9fa9e6c314e879140bd0b1cc276632e70a56902346fca21d2fc7b0004817b1288b3b34506cc1b15060d1b103025e2ce51e2868335685382b2cea4b87dcc6590fac80825caff465ceb9b1dfb51b52ec97c5077b55d528b32f4b2e344071e04b703f759bac057916916ab758718509921d0c0e0d08bd2037e0643a18ed60f984a837b86c5ebb7b8068c1528100515cb808a019f9017113122a7ed16582c78cdb52ab7b6320e7ec0afc194b651119f79f6c7ff32b003ba7e0160510d32af80eca6547c3999547749dcb7205c50bdc62f54cabb15f386648b1805da6ad5c1a55265b57665bebe46cdfba6604352b5fd036d5a9426f70c014fab63bc2ab7288653ed2680dd6081519b3bc56ba9704ab32bf3a59282257bb9071e270fad6b705e48bed7a546ca6a80a3181f3875580965798e978f757b83fee729774ba46ab32a61343e002b6379a5ad9ee25f37838c84f397b9b4039b447b50c834c1b99eeff51ce6d5bdd8810abe873e1a1c57e74c51bb0139d937390f10c118a568bc464a28028cf5a778bc1a717f9a672ec5cc2b635add077485da497f68c51f017d3785bf0dbb6ad9eb3ab3a02776e9784a864a45dc0527b00d47d2a8c7794d43f059cfe88a2f43160c38292216b0dba17da92b56ce6b2711b0869e1204e21c2834c12a2d4557fb723caadc01af894afe656956b35829e780bba9c8ac28002245cd5d46112dc93dac9a656fe40ef67bb544847bebf73eaffc85ec1514b9a248da8760bbd1b65108acfa364b4286c538ab466f34c383f008e0e611f379aba066638b87854163065afcaf1003a189a81ccfc873c84bb465601479d1ac21d9886e7614cdd3603415b8470766892028ff575a69f471b126aacb0136b5d91d1f532f85392e66e182a5acc4be796e42c16d1d56447264aa9f20505f1a447288cd2362bd99c19a7bba93d1775586d769b3a2a1aebc17f84b1c14c5a0d5908ddab90c06bbb7b31c3b88625b96e9244d163585724ffe361e04127e5a981929d24a8e8b58be5221a9d202b84b3c1e0cba55349abd356d787022bf01a04573ccdbe42d1687b29be8c03cf3535eb952073a43319a2f0e52726906cdf7d06be43319d43370b4131457aa2f968628b5c5a71b4b1804734c85ec5efbbacbacd336ca048f8f3589e9561e3732a0ea5523168a8449a9b30a88ce124c25dc2749a3933382dca4cfea4de519bc17f7605321c99b3b20faa4adf952231fb27a95a55c7238702a869d0b1ca018fa58ca21c6d494bc38db4b34216bc770bbc1b63102a588da22a6ae3723bb80b1c857ad06b88d1d0001b396be411618dd421760a58e0898787c498118775ce407317f4bcbd3477ce35c565d83c1ee124ecafb0eeb1b19a4e05eda182b53920b4613c989523d93dba735423dbd84b76491047db0c6f50376dd5460a9c20c02643b63049dabcb3ec09c9a6aa264f3c02cf4faaeaea9158f74670c74c783d461e1c3aab218403161508be461dc2c09d4c77f6737509cc317a2703e3850ca06636105463a4eb16afe797be2c32763f0ad222401545462ddf41c71b65fb2499ad3d0a7c128556518be54948a86b6bb5a811b76b4c35d35bc2d54c0c60c6a744c4944bc74303144b4891b841ac2b1e63777101465eacbe933087fa6541e502ba54522eb69842d3a706dcc617076ab90c16393853fea190cad088da65953a412c8eee83945cb3e10719f37188054c31518070603bc0af5e483f6155d618700f74093aaf352facc6a1ab0809dc101b64c9ada665d1acc9bf31c15bb3a2d163874b523951c7441bac80823d29a909b9db7b73d43020300e68bc66b1964a1031351b451650b63f0076ecc6fe8495857e6a93c9b667d924eb3a84caae9b401ec2fa3355da1a341b578b4765c4649e6bfaf5c8b2ad80de5200e4dd30da0b693f5ebbfcfba9f0ad2ad46576a7a06b65de6bcdc432b6a753f3a6326a27073436483aef170b8649e2ca022497329d071af4c25968cb0521a118aec41cbeab013786a1c2984cb2c649da0fc94fdd880fd3a05239b84ac053ca0f822e4c94ebfe1b6d6898da03b02e455467af6c89db7225ad653a5ac0c8e165f3b9b68b01270ef0ba7cc56322d5c671805b7d333b899abbac120c010033f3064647e4a387649c272a32c2dcc2fd62793d8689cf59619f43c87fdeaaebcd4c3f21483863563ce8442a7f581009410b3c506146390fcd44d0f918b2903940a321c66700ca4e205d4501ecec23a4d17157ce4a0bac562533273fb8071ddf960217696ccd98a59e6c39dac5cd185a0793a9190e25a0460837d07d020d72b5c5ba9840b0940832fa3a483aec99d0d629cfd67a1ce77766a23b2349947968c238d0126f6ab9422b97d6dec5657a20a683544ba07971bc773a5da90bf471eaf12310283944c723eb1e0600eeb2464bc71de7233ebfb7be64202ee21088222a48ba200f04b6bf6a1c7f6404295764e6fd857d747cd985b07f4d83f8b13a901ccbff7b01e21b8789c05b635bcc14c8128c379bdd52029efd660468a34512bb78da224fff9a223371e457333ad464c6fdba4f6c5451b585583655182691f6ee817cf81ce6e7a5cc6b9cacee275c473ae1c58aa38e43de50796f22475fca44270e3a46fb5b8bdda74e3e05b88210f54f36e79fb05becc76805b716154a6e2346b0f4cac241748fde93f325b4f82f3b681136aff8056bc7304ef22652f1679c816032bc35db68b64b2848351da88df89166707b194cb4759e6761032aca4b7a54e8064f5755d36288fc5061072da1ec35a8491396c9406446060347361bed860b028b57250f0187f45a204fba678f587ae031ac38480cf4c3fff90188d925bd4c7c6bd0b758698bcde97ce3958697610ce05e4abfca60eac13b666732e8262b36b7447c0c93f91362c519337052865927a9862d2c1ed186b411554275a24dc9738751a4ba243bcfe46109212b711aa453a35b09ba20ab405b6f0f3457321b24017261b49923225b3620678c4f474515396113880df463138abc3e820c65415c593d74c01e5136150b02f1ccc55a6c1e7e9b121588362d784c3e85658532331bb596682377c752e7c259608b629e74a5a470bad77d3c0672b23831a217c1ac82b94a82437643807681cc1684098b86de031440a79378a229bd902f2996f326a0df16354778a4cd5375c756a34890ccf0c92ba07a61546387bf54c2cb0c8548d4780aa72b667c0a1fe400b30f194465cc97ff42511e75457d1a8a9712a6ea971d797baa894b0348561df068a3455a89afc3684081ddfc0a90fd8acbdc217c83398380267776051cf3491542534b1a74b409b69a8a142c1b437b5a8561fb064ecb591b7334afc482af678cfa4e11e970a48bdf822a0b45e1c591d07792884e4bd057a15eecc5cdf66c994cca765daab1af377a14b98bcd8918fe3546fa4438ba5322da1ba75543be245b12e228d07c1cf1091499a2c57dd42c9f6ba3240c053165ca3fd669b4c3944a7d003d016a0fca826b5e615846c48873cb7f222cc12462023e38f14d98fa0486eae480f81a7376eb6380a42a1a2a6123d8a4efb102ee7b900cbe7a9238b59006abddf2ab25565815947b3bf6b14eed43be91a5687b339e6bb6614387583c585f1456372aa68b17449c2a1c6269a05f8659da97585f52421ab74b9d705ba13ac139f15be9f41971e0a6e04ba167be9b681d294c706d0477a22d64565e71979009a18c8086059f3964ed327288aaa0c8a2b2d976d5fbb50b842bcdf3c9d25656ed7224f3435c9bc9b59b17727b46a546eb8553dab54ecc6842cba94fb24592ed077fc56bd5dd2cd798715fe0c513377361d263c6348340a5018b0e9b43e112bb6ba60503ca954f2bb25fc585c021b57fb3d1acc80a3b20ff4555ebfa223f90762e2008ce920a420b48cd8fa9606ec5834051d0904847466564294cdaddb25cab5cc68008f96971b2711ae8d73b754cc8ab2bc13e07708e7b555ac681c0af0961a19105bf62b93267b8c47c73526b8c2d08bb13867be10211347656c0108aa3825234847519a52b6a4599ccac59e10e945eb7bd579e0c98d12aa9905ed85271887a974ab8f04a783747caab69dcb74eb00a87eb1651271050e74552291b66a29053bef5e49690d4eec7b7bd352e82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade +ciphertext: cc16437e7453409e7e200c26909b67a5b0da26997f8660fea78caec9503c6d1a0faf70f017ba882f42d9f8b72335b4a3a30ca14339fb6f0f291ab81d13f2a18d4197f1d5f72fea47cad6c1d3dcaa6e4f43933abf3be44d98083d4a4e34e46b9844560006b42259963945e99ea39af5e56d6299e4e18b555729a12d16779359375d74ceec3b24ab394a86186fafc84a4dfe20dc024527450bbc57f2b1b0fa88d4a46cd21341c7efaffd5a05da3e35260ebe19d79509fa7067b3a498c439f5de384b0416a437eecb7cbea64a6f4076fb94f7f8dde4ccb3743d1b3dc11f7c866e637ab75bf8099599c0233929519a5297a298c95a1b6a3cc3fbab718f1807065106bb290be1d61d5dcd5f228f8355b47058095f599f9b34a3710464b7e367c58f34ac6cfea3462491c78667cddc66faeb43ca86fc1c082cdcdf9139ea8246b871fb5f18d82776ae4c6d73104d2e4a1a6bb11cb59fd39ef66f69a99dc3ece762f9f4bc2303591b0cf8cde08512ba2f47bffafae181ecb64c4818a64640a4bcca3c13e075e82d7f3604a0714439297243d204d0c99f77c804bc3eceb1197e389122021abece24f1f68b531e3f56d46153ede5a3a9ce28e172ba71b30ae0cc5ed2857286e4d8cd977f6a939af4948db5c89dc19513a21ab4feab4246e42bb61ad21de0d23bd9bc2eb04233a27a81f5e5e487335dd4525eb230fc827c573456e0fe77acc292e5c5efbf38313899d691b21e627d699f50089f987c7227b4a4d308ab2842b52aad8b020f045b437e35d9de9a7c273276af986af87023bd3eb59d34d6216c4e54a143b3a678f5ab5a466a323ae973c9231d595b8cf7285d32653739192f7f9c0583301f87d675384068102b05ab76f59d45d6155b678cb2776115b44b5209bf7cbee2b98bc55fd8cc5049e419b35fc9bf23c118a5f30e017817d9c5c8c8e1fb1af2e40f5087b182cc2d313a9a7defd25ad69fb8d9a4f3b6d0c5f65da88925d0794c99b9f272645e88ee81d20b4381750fe8a5a53d766da8d054b4110bc979f2524bbbec13cfda3dc0aa8417bf599128c4dd8db36eae44ffdf6102d3e1aa56276b31cd8ac90480fd658035190f781c91ea9e4eafb6f39a24cf72096f48530542c4ac137ad4e7c4a207c82905ee55b698c42a84c6f5838938457d577dd6e3640bacc4bbda63cb0a2b8299a3a06b49ca7b91c448bd6b2926b139e3202c94108b0ac240fed20a3d268280d845bb635288a07f65b019a22df9f31b5b4f228be8bc92539f284c7a94c5e7d75933f557000b75cf2f256d2a32e4c53c33419a5a2d71b635257bce405111a95592ad424edbf7c5a5d175cfedb0f51550cbeb07ce2dc5b148e3889b3bc3cb15f6630c2cbb6641f10faa58a945414cacdde1dc9d5c578d526f3cb2e23491d69271fac2deca3d78cd21f53607ffaa9a9deae490f84a110002cffab17a12c88e07935fc95fbdda51fdeb372014016081500c927c227542d6282cc8dd7d708b3e834bd3b73137e11ee50759a4f83b6d311046f9cc198b2b618dfd5debbba8bde77eb6636985238faddd7ab039cf3e7bf1d2bd21596cf6c7ffc8d0a8cbc0b14524fcbc6f3b240293dd1c75d4a7c9f241f933e630111c68483f9bce89e1a7068952411d6811dd8a0b00cf4664518f6695107ecf569a741950cf278d416c8d200d434f6d17ffe98e7eba8ede594b9ce64c3f4763f2dff7ac81290dc18d6d5a5107995bb7569b053c7c643846d5379e71044ebe486ef49e48af47ba5c520af0422a6ab0c82677f62ee6e9c1430571bac6898d3b78d026a04513d036b855ed51d13047ef6193beb15490babe0567b7375df71b2311a501a14a57ff376bc465e1082cb6f2b9bb1b6ae778130ccb7d93db187d6c79fc6a506d8b2e1ed2a33af3901bb5da0cc2bbd04fa0d10c8f3b5c2f1ff2e790766fcdee2b62be2265a40d6687214dfb225ccbe572f586d54b2b145b0b960c6436d3abfc7c3360df6525d10ba48bc5d6fd8b066b61fc151634689b20d20cf958d187532e1208179c563b9f3b81eb915a0efd8663477095a01274b54a899a37d0ff662e8a3149edb0d8e59eb85a95f3ba34afa14c9cb849466472e4c6b6931e9863923b525d40df418a424618ccb46c8ced0010011f1ebedb5e669cd5655da2bf518be53a42d3ac480be0d8b6cfa7665f54547d129aa88ef6ddbd5ca682735fb075623557ce79b8f1 +result: pass +shared_secret: 2bd0703c81210c5d9bdf59f8cbb7c32e30e042c20743c96c74db89545eba4fa2 + +# Official test vector 3, seed: "225d5ce2ceac61930a07503fb59f7c2f936a3e075481da3ca299a80f8c5df9223a073e7b90e02ebf98ca2227eba38c1a" +private_key: 2ca62ac1f40bbef551a3f75613606661a204ebc3a81a170ab0e80eac65017bf3add2830b80ea56743a56bbb7b428951050844474ba8aab61912d35433a679c6770b3f8174214510215268eb5b14411e982f752192c649b61e559bb189666d98254ca913edcb22f93667970566dd06fcc06bd937bca44ba015bc689278925fbf64f1aeb93ee4a7bce8093aeb6862009c49f89cf31e74f91da8a206ac4ed0c21f8ea9ae1ba7f3ec59dfb5b729e73172770ac90957740068b1fb41ed528c73e2c2e62223264dab7f23b6a583c2e0e4bbcaf9878384376c23c38802c5753da4688554a2e9843b0dca303997451a0609be12d73ca1687e2702db3cfb703504fa7b3fb372a59831267a8b9eaac60ec31932c776907d29be988abd0208789f457def7130d628b4e694760f9883e197475f43670402f992cbf22819aa27a12fd60470e0b2a59700c05287589c2a85fa723b5c95ec12488f7e503bf090c581b112f854383c02e9bc693748628dfb2af873713e268c98fdb5ec890b55d8a7af5b93f3e94be8f5971c8c63590715d09d894e078c07fda4414280b20386ad6c645df5b21fe43b940610dde4b30b2a40131627d68a47045696eca108e93ba6a3600ca7be14f54346e9699331d92bde1786bde2886027a62234155648b2a52e3673fe5653cca7ffac07acc060371d67a581a529d0bbe89762dd1763daef0c09657698829348028c5f14359f4996437ebb092f64e7dea7c87e003c874c0531200e8163a9891cba6b0750051006914cf22d95088542fe58c4f6955256370825306122aa5a26963c66ae4ce268c180698a4123954467972e8c9ab44545d0224443ad83d3d7c48ed052ef59b1772d82de3781d713197e6e739e187cb4ad8b8b9f4972ed232f9513b03d2bd0f84c2d5951f2f20b01e362bed051a1278bf2a185b95514814494f576b56418c9d4de5c62b30ceea03a1e86a7a7fab18a5c4bc9ed43c8f46426a3a853d5127073125bf3510ff3065e81a726d934f3a279950a675f0c3c9bf0bc42a574bbe21be72092ed5ac8323e44cbdc1ce8864031838a7c43b64e9dc28a657bfe11711d0f1c5d407212f5938a7f14e82d9353173bd4d94621ae29247a2328007078fa5029136290d48009afc39720ca4a8b8cfc2233dd0042ab0625007b36474fa370a961b520575404154a1070560bc0bbbd9060daa27d4d10a13da8fa0b676b291544a6c1bb5582b08d761162ba103094df56789f76c8cae2b6637d58391f0ce022c9f77da0888c5045586a0c18a2e1730b3003493dcc8bbabfb359a39796ee578f5cc67fdc9a817461aa5296c5d379a58ab6f7a911114f0bcc39771633a6776965816384e5cd27ff1401a8880b2774cc73e6303e00574e241573edb2282a47c6f1c03b74a91ff3c10e4305fcb86ba613c747a591d9aec4c90193f9617431af4689c11310025b92247c805487de6c82968938e67084a178511c70722b28934e64a6e4a5223105c3bb24a6192d9216b7232ff0764f7d48507b84d72ac2236d92c69716bb6fcbb06757249ab3d7bc5a751e104c9e5881fc4675b374afb7735a56b9872164c847493a5dace7a855674d90091809109c524289ccbc4143a2567a6cb587045ec2d33e93ee2c60c9ea6a1a40344613a49ef538a41753a41d8c203785d38207abb3024584caedb404c8c0661d114405d256bc06164fc6ca2b8d71b1e481ad065462128327adba3d7572c3dc71a75791258a5cea5c65a70e11b0eb93a9f027b3b91aaa58a8a50b6bc2f59049f915404087ae4280cf7f603d110c9eeccb045125dc22b4c1923c83aa84c779a6312888ae7e019b7814d61d1cb6635b69d6445a8d005b4fba51b91604530088cb3436cf73f19e42ebe1acbc013b2e8341e3986c4ae156950e1b9d799c450751953da223fc11688862405691d9120cfe4eb283c99b3e39555c7f246c6e73119f7473e0709f979499c52630f140dabc690beaa91186151e5865f7fc85aeae9c27dc3c03c31715303caba288f95c55bfde806374902d0f50015221a3c3298db60a2257648bf22cefff39ac0e92016d71fafb8c9037246a99a0eaa4566a04b0e7b8c4dcf8abea7f72e214494d4176920858e9ba69487680499d27e2ed56d040045ac671a364848c0a4100fd4b44e1b1e8bb5914ab89dc8016eeae46e2610a5fd252102a480cac2bc6e7860620259e41c64591584f1e6ce8e3312dc8862dd806cc2181a18bb91fb184dcf045b030807a5023c4b3779f14a162e0938743b78c71493beda7826022e78ac100e7892fc104d48e25ce92610c072a3e9e8208c93cc225c916a2941c13838eda382f311a809c19b9ca60f188910a1a1bede4710b6b72127e48a5454a457c8037439572c558378cc784554171f6a0c78c676db8bb8aa380357fcc1f61859b0ec72730c10f8c3932975c70e6329aad34a56797a03c0297fb4aa6b97a63be19f5ca6318d0b2c8b4c6d9ef808ebe364d0a41a82dc768be47f44f300bc9b2e4cca1050e21a9919a9b65a07a6c8bc1ca5622a441117a1749211571c462a40c94c3301081867b3a8957ff45c1c3f7c00097a35af93438d74c78c061c2d645e7f6c3be5fa6da749085dd12461fc517e0c28baf93418978772e4c723c071908915a1a5807050c57d2a3d56597b1e1bae4b437632a2522f314b39fa6ab7a047e12b6502027e334b715b5b0b17bb76ae608acc0250d91a859c8c448b27bf4c44b092350e260b65c20c82588c8c1ef25affaaaf150479e80801c82cbea73a37dd1a7df6d268a9b0c4fc753158c39ea4e90960c20460804329f58bd460a37357ae6515bcd505c7cda55b2669017bec3d51816e7001b0a64837f9e07ea26735e830092a648f828cb3093228b98a0c92656c1a14cb3a306929c6207751cebe31aea4c0372cd5c06cc637dd9b6894f00dcb3796d09ca87884412726a25bfa9bf6eb613e1a2a19a196e1e1634e1ca0347a9bcc96816923092961b69dc0c013c191f7ba4fb0b13ce5555e8c1b07d8568722155287264b5fa990e92603aed71df778832ee3bf9a767fa9e650420a14f5ac227df497efab89511302d231a521c5353bd425306a14b7d2a566ab3b32aacf353c2b04a148e4c93c3e470605067dc7590722c452245b3d750205d2c0aad03b0e2ec535bc6cc3956132e329a980c8495d765ed1eb071c58680a11859c3cc0b1e986486a5b543949643b83452c307df477685a4d0a70a7528a55a997bea46780b26252af157fe5d874cf5c420b5b1a324a932ba52291428a39672bb359abc4b54bbfac608a0135cc99a38e102da3e088e4ec5c47984a636c7cb99a6b6304cb0350052618471f716be06b899087aa38053111e35a95965c04a7c42bda2319598819aa0aeb5c39181079f41982e05223c8e89abbc32fc1487f3cb99a167ba694b0668a5525a88472439c89179147ef831022b45f6b8553c8150e32b5421f75291c830a8698a916406807f201141a0ea1cb28255a9ed709502ec7851a56a86cd3b7f05726ed6a6e50fc52706104e829b02f7b61a1856c9b44b8d1214768851ac190b46b61c053c371a333a95b7806eed16c033790c1563fb823204e26ce3af87750ca639e605cd435024336751ca0bdab99ce5b45cefa04caa29ba33b4998da0aa832ec22551821bac055961acefa077de544bbb80211878c6109b512b6b4850b5a8d0bd9bea6978a0f920c1fe8601e1123a98aa23cfa30090817ee849e654a0387a185171a43047758a578a02ebb557904106eb3096d3c1f92092f02891f1d3b0659f284188b7119c14896688ef2bcc8086c604fc140a8fa24c9595d020269b0355ad9a44cbd803b59010a1b85b12fc785ef0a0789c10b3a30925cf155ae8682859a8f8164cf62fc08df577eab2071db87b029a16ec90303f5b97117761c5f20033110b1bdf7388895b30aca862f22adde6930430821dccb2b1ba4cb923652309b4f16600fc9fbcfaa8553cb45bbb53035cd28526ea8449844ac68b87aa61047b94244f126bfe2323af5f30bba9c1b96a426a1d84c2da35fbc001e20a517d458b4291cb36394cd9a074e51d8a45ce623484a3aa7d575977242aed535d46b74d8645aed246692ac1b8b055d717ccbd59769ff9617bcc3aa7bb9366ba51a736b2ce79b971e0c204ac62fd09755b4e4b233e94a9cd3490f4049ce6cc96c7c0fa1254c4eb67748b337c41c473fab4a944364531a6fe18652856797787c804ce1c59462b8d145cae4b97232440ba99cc3a66c1e019b53fdb272d000c85ad63d686a907a31700fd4a29e5936a53a4f2d2486751851edd1b70115adab07a29b15594566221b329076a5a116676d3534044965014daa0d13da178581619dc06df40a02750beb995480eee94ada82049cbac3e8c6830334021c22894085dbc8382fb43cbe318e8e6ada9955de950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 +ciphertext: b0175b6f547277d58f329d3b7182bc9a1d18dbbebfa3a5e24dfb783ca9842ccb7c3b26782f6162d9f60971e78af2dfa1a7d40b181ff92872dbb387a1e9d4b962703c7e42778552093cd622686c4b12842b5edaae5265d802e5c2bfb4f4031609661183a55027b4b4ac735a0c3d4d9a8faacaeaef4e0fe7964b3112877d7d9b1cd8923f30fad9f70b5cf480c83970b0aea28107fda48bc67cc0cd00268037004d053392a2522a0b2b9a08bbb678167c2717d9252f19d9c5c6c5f48068ea0b7bb9f0db9b4801eaa168d398b37cc0032401f808b20c8414e9d4ebbf573b1a86e304cec6f10980942c56e18b1e390d43ad4149fe646e0ff8d15fe8f41f7edfe56211e2e08bae7956015b961ff065c06ec846e1ddbf37e77b7dccd34ae270aaa5f01fd92530da96ba73e2c001c8b2ff8a59cc1c26380f796a417959d18c1c97668fd77bc82fbcbbcf1a71f95ebe53265b477f9eff4bd91dfed2cc4b3696f1d6139ccd74d13973acb599debcb81dc3723931987c969da37d90d196ff052c5a6d223be15ae7dc4a90b289a7e46e964ae3035d73d0f958f9c4955c9d4ab38b085291891995b0f8e3239f1408540a8575acca7f0da5d3afa4359a7a403f7c4e636d7fd1a95b7571e430c9e44c14acc516f3eccaff00e2e2fbe91abbfd0e96dbf74f36675735ad70f3c97d515d5d413780f96fe8da72399382e433c76b6deb0bcd215e5ff4ca04968fd7cc0470c10e5d22e00800069944f2bc6ac4988f6eebd35995862d530f3b8478f4c13b8e2dc11128258901af0e4888b97601dca5da385e9a787341c9d74ea1ba2d28b098a9ce395d1992c5ada71b9a6c1b15e20f57da963a9307a3f1b9073a2d9a990832f16ca3aa50ecb5306bb75713c25798a8cce4c529adfc3377e44cf9f10262c3295b01c5d3a4079bcf7ec873524ee7dcae5f2a8a42f5b43205624463ecde93330410c410dabc0eece6bc480a61f6f52b10ee14c8dcacd6daae06c4eed37e3989432490363282a10d276c484cb1013ded7bd58f204c63e78b45e1889b685fb5b37110b5af73ecd51eaa4eed3525adbca8f6d9bbfc19239ec367854342bf02fcadda8d668a30f709299f184c89865038b445ed2079d675648c73e40d90425d787d44e539cfb229bf7dd039dace2f8eacac46c410a2277a93ddd34de171c93e504f1bc3e45cb468cc855228eaf4963a63d6f8f747ada4928b0423c69adc0f88b5277a2decd0eb1fa44440138388073f6ed52309fea034bde1d1e08851cc11a82fffb6b8f34eec75eec9c6237570861a44d679c16594e4031fe6337ca398272ef43176a082958b3b677f1416a55692ecc6f16a6ed4f9b5a51cf2cc5cb50666121ba01fb9bfb89d1744403700faa063f67006b28d579a685f16a81a5b2e87efe0614094f737c9c6e341470cf4ec51580f1023a14420fdc45f83356b4d5d80ff53c85d32067a40d582ffc87792b5b34da52510629185b2480e841f8714ccc7b5b00259913936b097e0dcb6ef2bfe42b084359d68cdc80acdb206afbf419a5718eb1776bef7aca6950519f3ee39f4021af387c8f251d3913683d1d0cfd89ed5ed44d38ff47009220a5b7966a760ac78012e5bc1f6e5684bf39cd0c45c28e0a884db323d647bb7cc202a16a12484b226680ff2abe1b26f8a74f697e4fd7c2132bb0318dd082d3c7cfd7fe279d1940a4f20854bb280498d0a3c76ac7d9f10b9a13205d278d6bd1252df84e75c914916bdf1e5352ebcda297e77aacc782ea4717f07a1f521086cf4debff71ee155ec96a22fe759aba9c0f282a707a8483a11a37df4a947749dfd434359884b17eaa6616fa80dfed1b62f5492a51bc572392ca7cd0708d37a8fb0185202cf7a850fd1954e4cbe7f2973a2874ebc2a2bc4d1821e2600685c0667a97baf5bed4b7a222e9cdc556668da7703da0f03b7b904f0ae942aa02fd0f22dea1337e98b763917c6fec9b030225fae085e050a5b834054fc69d63f72702b7b6aed8467ab29734a7b9f89ad70028b19a25f6ee6233b1876314c7bddf805f55e8a79edbd392620e1ba20cdf6f78f75d5bbdda5ca4215b312cd4ddce4e5c986c7f03b99fe0c835db9e199493b0d54bed56f5dd1e52afda6821a2e6df36f6d032ce33075088b5d6aa9f9c07090dadb5350408804cfe5b704c3e1f8dd9525e7fcda26c0c79562b670cc1158925552f28be8483310f4ea53df0d +result: pass +shared_secret: f6baf98028ce4f75cc14f6a75dd50502c4adc4d1377d72671c9396d4c26fac69 + +# Official test vector 4, seed: "edc76e7c1523e3862552133fea4d2ab05c69fb54a9354f0846456a2a407e071df4650ec0e0a5666a52cd09462dbc51f9" +private_key: 6360495af613e1c6b526a64a23cb3052fa4fc0198a351aa70d982284b13ce66384edb522df0b38199baa8265ca96da7040a7204cd0162ab481517a76d9b94a20306b04d19f5ab43146f26c4f43c23094131b9ca58552ae1eda8b9e623cffc533e77ab7345790a507a3edc589a0e01584a291e0a98389224ac057a2c7a49aa92c012e3068fce416936ace78967543053542faa399a8b7d2f5c483d9b09058067db414b319407dac97a1045d78b6633d2b690a77510d996abd44c972a37b37baae708086a4143926875e09aa15a206b3fdc69562d645ba213a13c74b245072a2480459672b33ab4f1d969157137d85f481828a7cb71aaabbf6b54874821b9b77e41caf849874830a742c887fae918ec657343aa11c8dbb6190d53749157e6277582c589ad1d9a33e740e25f00bf3dcaf2c03b1a6a64ffbc0a104fc37a2c34f7b8c56e06ab258b7c79ecac3eeb9c2a87c02171aba70b84c58d474f4841241dc10ae9645c1b71163ac3053a8b9e999309494763c50354e235f253b87af35818166aaacf85abea0056b3ca078960dc54c599bb43508fb06e06c968964cca2acc72a17c25d47a6768c512836a7ccd3cf58b09a024b1aea57bb26f2219eaa3f473a367efc8bd1790f576978ff159f282a218da906b506be5c63c016a55d92c69999e4cf1e1730af67881dda242f505ff78c242d3a3730c088b83abe4f39bb628a4efcfa03b0ecb8ff98c288d1b8e12b2429263ffb0a638f9665704b1770c4be9d999f8ad6ac080671cba047378a60c259bf042839ba39a11f94354dfb8d3da789a4790b2241718a2a267c7c8b5e1a2178002971306d08f360c6940043a25b4ab350ae385969fb28b64cab121c10ae15ce4c51475cb4794cc18118b877d1e3723101ba4172c272c1cdd1e33f506212c5b421b0f631dd773ba590b894056051753ff73013daa26c597a50d0023b2ca99af7aa5f218971b5c8845c68801468471651765922c6c7586d88b65d017572d792b037d7684a86a517c453fd36ca5135b320092c36ebab15dcb82a70c156e6657ed35dccf34f94559b92d83f7d46277926c9d7422fdbca5424d431d61648a848bd8e260179047120a72a0bd1a495ebbf154908edf0363b86892f783e75369252e92a85097a2636c8f284a841396d4cb39f8b247ce1593fa502a6ca4014cb4036f94810656cb9335c24ee345b1cc15431359dcee9526ec6a42d26280493b6090b0d500808bd29a321959f6101c18af673921804a3501f5848022d0b1075b1adb6f30f47786c9dd345cc33a12fa98dfa909eb724ce7e853b5f29a00f43319f92a14999526cc7966d3c25bc24924f5ca64de9a2a5c69965f95fbf29875b201dd3d54a1ed97cb7039f8d3982764a4e964c45583183a15c0d8097c033dc144bb7ca7d4483900090859c2a25c9c2b1aab964d7629bb420f3261e2e4c76afbcab41272155496c4cf9131d7195b9228ebb613dc7b42541ca05e39ac09e710fb972978f4395b883bc6a67593a7361e4179b7c95945513c28bd488f84146c5c8956c4b18a0da5ce7a680d26a779ea5ab1a046cee3191acd2c655cac8dbd9518528be44e03c1bd758cfc30d9d163b06c0a60e5013f6e646d3461a3993b7608b9edcc65304e92d0e59b193747325452ac403771a657b92fb8d4a57a424f13e323b37c46183b4014600b760bd44c5eb1099167354a5c31ad377a5041c6ea00bcba66b18cd457a6571853db6a90f408ffdbc35fe7bacf16a2be625abc9473f57c269f0029844976475f484b4090a53523f0766168f80a708ab37e0776c0a4b4fe02795073a19c01619edfc36ffdcb12668851c43c2ce7765c050a46a025252904698d2427a634ff421c45d2018772bbbc3aa2ec49799b3e9733e4b0cb16973e51a1f43ab1596d64a92c61576592d6f3cb339f76fffe186106a176f45525900a6b594b673271ce54499bf90a5c5489928ca879e93b3cfa7917999b472d1abd7da21333165b95c8b1f6736bb183fa14b9d1b26143e1807c7f71d66360b1ac2be6db555c1dc907b794dd6a07c505451bda90d2e7a7112636fd7590f48e0c94ceab150906945273cd375b82573ab5994c2ac447f5d53a3d9e04b4d694f5d81b54e29c125f461ba056e599674b5d15b0161802012217cb73419d431e03abe2f7a733c9c0d0a05b6ae91776032105bfa99d149062746ac1fd2ca81db9224518a39629a36d043e6a398444a055a2cc28ac785e22b9ada469d2e3491174a4e16e11824d32c33326f7cc2b73d417a7151496fbb6805a79d5d974b12f3c0125b5d7bfc7c6f244b68e2c1ca8613e891322261b4789898a1f858f5991b2b1b177769aca1453c57c43140548452f3053d3b55fd2c3062a0b11939a3c14a81c59432616a5700c775fe98c6fb88c1eb8277c469be42f541dbb79808479e0cdb11856cb7c1cb6a5b865469bba549d73cfe581bee85494dea28d6e96a5f04cd65e561ef66a2482c806e39257b9ba9581421708663bf0b45b4131eef3384eb53b8733c4957937161c3ccacea5cbf91429e87b8b2b6a0aa44cab94bcd02d14cc3932c3ee58b483b1d11e5243fea0d34912b8d45bdf48c1358db3fc163ac081c23ca6c43919a649c33911c5802e2407e9fea350c3b64f302c5489005ec87650de428e60b790489a17e96b9e1fa91b33bce5f4b8d8dfa1610b39fd2858c25b898c1386c6dc021bd3414bf213719867f8cdccbb4d2bdf12207860a638bd41a05b9697a3bc901e9ad0075c080243cc0cbb3d389977c522230a42125b08d41839986a60acae28bda183aacc32dd5cb149af2bbfc60b0d5ba8ad89b1acc0863ceb24faea37ef3f60168cc96d766642f07a116225873e651ef693f2bb97339acbcba301e975405661b2aa523168e06c86f9bcbb42b5f12d79c3c379afcc37dc4995b11a4afc3578a30a13ff57ab87f022fd5c3ac5dacc3462c7e7edab63b889c22e90d685733a1a79ec336c50c18a5fe4408c2c122e34a60ef56a78bc16b78c3c98ed689e0c9276697cdd8aba667109cd911b77e6930c4f58cef1240c1f7005a7a2b17390988924cb0604b4f897d19c5b0e4a557a6a23470bc71db15bc99248d42d9bed4117652690124b1bebb438473619c4919c6c0e4071ca990b9d005eb287b15126e5c3477a98669f0856242dc073bb2673c7c1b1485799c300a0648a83142b95a2377d7e2b1d994209184309934c914308b7371a307a3bfc825958a98a12524b847ba5b61e5a279eb9f7cab5ce030c45ffcbcf919a6ce1059dd7c6aa077c2d2437408315db32a800c2099a92ab682fac6461896d583007b97af2336b1e6d061643c62f0b5122d48a230225128c52863c9aa7837ab4f254f92863efbb3b379f87e40071cb6c8b74ac79af4ec11da6c028f1caf9545a7d0a984bf6ac8d4067a7ff29325daacd3f9470d529f02b00183586011da8a0295b678b18d7572cd4f081317b92c21803f613bb959170ad3a4cf465645d3e5a1dbf672013bb935bccdcea51393bcbe7c975d30a9823667bbb155bdccd14ad3d8b453b30ec2b0cbd703485975cc571530b4cc521693a9965139fca21a90d57397f34c46822ea0e0ca0f56668b8692127bc93322389046c63fd08ff82b67f9778964054b49ab0dabe24628e771627ccf34f46c6c820e9d890b15f396a291a98eb14a23575952abbe46374c74b812aac6b9ced932c078ad3f2a05c821b720305773d070b8c86d7686c53b81ce241586f5f752fb4a2774152638f04156a0b24b3061141878d5759d12f8bad4e98aa5d41895b91e122074b31aaadc30a1dff707c32aa0dbfb2fe0a519b4289942e99754034d65d7b9eb5c0087225048b5a293038969a944725a23475b0681ca2177c5bee023bb7e0abe99a630b5babb5f8a67c8117fecf20c1187c338a97b72c1674aa302c3005037631ccfd51a5b10ce837911d8d8372b9760c0498b8ad8218f832fd8519476ea5673d6659b558895796e14cb5a55e7a3d0b91cf5a6228a3c93175a2ccb06c26bb00d5224a402f119a3a42356a37cfd82162c65953b798d9d96cf4353805ddca537a9504b708d16424a3c6209c2d738e25c357256833dd14375a65e1e32868bc4c4e5e062fb636e27f4c746eaac0f641330d235d909a128c890e531be3e0cc307e632baab0ef7684cc687bac9b966efecb85ed1030a1b1e15b71be5a263fc64c320b145cab657a14c2749dcc9961952ad5489c6485f208933fff0203f3c31eb6a389f072cc3573166b9349ada4d7dc66bb12c18a7d96a86f93883f83822ec0094b24751388a51166da6b24a0b526935817e1ad73b4403aa3b10b5d1822daf198aa848a73c9f9a866b634f939c2179ce55edfaa1d5d48cb3127f0fea3acc7b163dedc529d14502bab03d1b7fc370f2ede22c7190bd47cc88028adb3294029e264abe2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 +ciphertext: f3637bafcce8675a7f2491e7970c65625bce13ca85362c62a0fb24cafa33b0b388b68b12962765da682203c46e6997d4c9c74f13eeba96273d3fd105352e92fcd8f0a4455e23444811c519dfb9aa9174dc6719a76bb6150aeb243e2166d9a63c6bdb9c42ca73604ad748b20ee8d4bb2e414f7a33337bf500a8a354b56211497c6eab1040580215f002f97371a383cb546b509653ee598798b1a9c2b2391d066dc45c69af2eb07d7eb89c43f26c4e553afe4964e0633c3dcb5a6acac36ce88638c17d83cb6bb90f24434c0aae0f302d7154fad1e698a1769d82ae7f90231cf5ae0fd5d7d02503505b6e12bc27ce6a6283f751481a6219d2b01f2e00fd04341ee96a4bd957d682c6b413d2c53c81f6ecea90aadf4482631a65d393e6a80199477b5f808e83be7eaa7b4439c41ec87ea6c69e9a6ee28fc9dec477d7a66744f71ea35cef0d86fb90534a26368055840320e1cfc54ab65fa7462475b541f19b259c79114da9589c8caf1578e2d179efe5a398936058995701308ea61ba4942bd35b36fc60371888a8663ea8eb456f654fbc51a0f701e3a318b64700bc8545685e5fcbb01034b717b691914fc7de9d1c229e16a759b3d25220ceaf72c9c7b5dba5283154098295a08b95efa11b02d7f65ebc6a3ce97b9929456bdaa60854481c6c3d4b851d88beed43b56b0d65533d55d19bf79ae57bfbb0567d4dcaab2b6cda028dfb140c797fab973f5345a55b8c3d5b10b6a94442e1ced434d1c37ae2ec797acadf124330c9a04977b29b0e76672f104e918b2242e0e4a05691bc3ca663b0327a38bdef7ed38c082927acf9d9dafe917d1f3c1c6b6e590206d12c4b0ad7efae9d4e28897da9811bd1210c19e384d9ea2a0b93605c75430edcfc66782421771774072843f8d4231e3dfbe61c5dfd99ae12d3fef73117d9cdf6e7707f7560c212fafe1104edbfb36c4130941b9d6f5a4d067255db6e6bb3559d50a3cee2ec3b57b8a379b93ec32ccb743e7588a3f6dc75f334750e4705a03eb7d75ad766db7a1a88ceb2e5047342a37937cec465ef93bffed2fc238284d367ff320b466673a01fd485ec23e7e21a814c471fc60aad2de49858673d8a5071d00e4b26f4709461b7ef5a74e8c52534bdb6e80bd4dfe09f2c491b20600235743d61787e93ec601d33de9a1a36786827584cc2f33f04c6acff0637b5eb845ed6ca36bc66a2edfe989d2b668268b78e1ffdb1fe9b737cb576385f2be449fe9fd176736955661a330a6fcfba361dd4935715128227b443518e6a27c421eb653168fcc21cc6c4c268b84da4c1ea3162ff85a3754064f4354026f8d99de2a76c99c52daa051e032e766ebd889d4af961edc0e497ee31021f3a38fc5ad1d4ad465d81ebb281f54b1a8c22040ce0099bbf55c9a3ac7c766d65c8cf0765e850404de6184bf81399795d2cab89cd2b73d747903c52140a90e2ecbd3de04c1bfd82c8ed5786b2a409c608568bd7b773dd6086021e53287b46ab5c26f9c04a3157912b079686b29e527bf65922e3b7498f7781978b12da9b938e4f83f005555a716c494277b1d1af716724d35e72ba387efc5e633d2e8ef015a02218b11be67e7e7bd491c7e9c198f18450db3254934756b8965d8b6c60b65b18c12ebe260202c044a40650714309d39c7f5b7d28997cd9f77469fcb1a7a5bd237693e16e6e4e2c645fdc77e859d2ee580ec4c4ddf475bccd6e31092643e62998dd523366d2b28bf4dd3ef54e023544156f0fc6a86d8e749551098ce1e288a62baffd642be9a2499b62c5858250d87913c1709a9a8578a430abe8819622b1d9e800875c6408356b597c3d9a89e164419b6ec3edb03d93aaec5644d3b24b26c1558775ce5e1773e644bb21412e43092136e3cab817fcf89bea3b9439026e625ca19018dd34028afac0665c135b1f2a5c2e8d2e3e34b5eb7cf947c8aef9d03cc20d6d22075eecdc9a44df411c0ccc3d0fc0f32277251c38466cfaf28ca47824194d9befeac21b68ca89c79c672b21bcc4a676ae015676bcb5a93f6b2f22ea25f4422e2a4ae637217f33345ff381d1f8241c251ef3e4be839cd4531855413e775e81d1c0a2774a68a15730d4149b1749471bbacd68ad66bd50feb37e2d97b73e001776b8b46583e9cb581e7095af3a1ffeed83798ba211ab22bdc4bd80f7e5026a373984cc20af678b9ffaad3be3d515a914c501155257d3 +result: pass +shared_secret: 52b1d99af018531b8f3b6226d7ae23843ca7b84d8f9cef28ead85ab3840906d5 + +# Official test vector 5, seed: "aa93649193c2c5985acf8f9e6ac50c36ae16a2526d7c684f7a3bb4abcd7b6ff790e82badce89bc7380d66251f97aaaaa" +private_key: 5999174084c2dbb511a7cc2500577f27809863db3607c863f5e50901e2be2b949ef9b55231b82703a200b1cc181e7119c0f9ab9839b795e763a5e7ca3a0216f6b080f0e7b52c8c196051b5ddd86779587b92bc10a16ba470bc115fe733c1847c689b06cdd2b3cc28a95d92bb479b05244549f5c3114951b872e1257b10acf04ba20cbc2a045947ad631c41781d0704c6f469908da6af1250bd04772cc6c45145e8193b739de340397f1cc431227474f2c15c634961b7af3dc645c9278c8ffc304ac39d1933946981399c92094aeccac243b81b698c2c4985e0191ca1126861d5a5f8eb61c023a5b38489d2168bc75a6f891202d734a28335add858b6a3dba95c86899db97921007777902df820b4d63b1ef40bbf87a59fb20662001511a75c323ee3b2eac47f51ca993f865bb80954138bb59bf2731c2b2498940129746c8c6297d2bb5aa8e75e3560ce91002fae79543289c7f1d1b1850b8ceb2166104b2aa30028cdfc6a5623c1ebc2c8f8cc2f27345412d90a9a840085ecb68214a13444aa3aa7259f35b0c5cb9e80aa83ed21c714a1a51cec15b91a578544294f565fa5c640edd9bb94c52419209006e9439ad53cacf4946567b80d4a11f5b2cef3740d20abcc04e39aada58cae16185072b98c64b7fb756eb0022fd055545b679bb14829bf0606558a6ec5497ea824371ea95312e31a02036179945a599454f5210dce7a3610055bd6db8f40e37502073824eb699a3913348660f3d1454430951732acdf3b4b64d57c9e69c6e6caa65e029a9de4c36942cbcab150034510eada835ff5aa0024b36df8301ef2aae086545a421e834c9dea771575d0ad98a0562e3c56b38546ad04475a39c310572fad7339dffacd2c39888a898ff9703d71147c3c9c476b75911d8615f43c9138003d1ea59e86cc9160f340a03904c8774924cb8ce5f610ee7a979f320960343d22c0cb84f977ec08b7fa18c34a2836a2157271472100758281198cfc88cf2c4b4ec287c6c669553f0135bca1129874b480d4621a4994d690922f67c6ef8b66c6602256ab917a9576638285e0586f3ef860d3891b66a8551a19a57ad7286c700bd7566938727b74401b9225732d5ba65929175480087f645632e93ea2c607b0bb900efb9e71d57b84f63b2d6946be5a66e77b032883b64c2734dce12944225dd58c3d19476a4cb01416711a1a81be7510c3d1183eb5d39391889d78206f3bc2775e174839a0162000921ef689a204565df8cf155131c9e7c5569459c81b3f712a8b0da79b1fcbc9a13c12d346b2e121177adcca95e4c6ab647784231172e4c4bde45c7a4532930a2a0a60a663a5b7bf186a5346a2c0ec9f918147a1e66b7f6289a21c2a6df8b04db12e76027d89bb7c13ba9672d1c76f4057415160430985f5215b53c59ac76c6387e52281889d968592dc607744757b61f30afb6c4e90ca6a580c475cba12664a5552f17330696b12b3ca3ea72784d16d2dfc5acc0b1665bbb1d8a09d8bfc6d81ba51f1117a109b43d2c97250fc9634001fe8018e2c9300e1e46c317c62574b1ee2c850b78383da446deb16aeb66a08a3348adba75693991b4c4172f8575ad7730039e3acb9bc8bf238c20e51b9cbc9818554021d7465d007967d274d82c03afb990f7502a87a60036bf5a204910e7fb3a514b8126aa96de7926592108c0692af748a839335837f0a9d3b20c97f3131906197c6a66ab88291a7c62d7d740f004d44e261c683827fe424b02802937d6ab4a798554574a0a6b5894ba8afd11b782472950c2cc678c148a9f80ca305be0b765a1542a1fe8690f4c865a09931904a3408e665d60633349b72c2353159220a12b5434eda854d7983333c04a0864356c6a137892023a89a2ed1a263a100a7503c1eac6aaea6b12a434b9ba504c9d79c8ab4aaa20611cce877a5f834d740108874bebb82c23e65bb16ca769c60280b036e2b921ea4d30f59f68d189a595dd099a6da6afcca07a6159099e05483b92d00076f22d0a1b94761e8b8399b4a82e204a011f141fa82768b2926d086a24ea0a71aec9d8723aa77614cb0b0ce881742e0a7a2afd0c288244be4400be81a90209c33aad80b84e383f84a4c313acae89a6575a3aa726b65f0d75e5a7ab355f967d5b771c85993a0b6094eb35e05c409f3e47369bc82661a9e822624d2a644e1767de906658569ba68922aa5c18996c58b3325685bf3564518afdbb99aa67acabca017283bcec3cca9075cbcef02cbe57ccfc73581784bc6fc1b8b7623b9255c20f7430887c87a5f6873b8789de3810ee4841447d826706bbe47d6c4bb13380a03a532d240adbb8240847e6ed68eb5abb3452584b949b8889bb77d2bc87a11c4580919931509e8fb931b50957fb00b972c8f17c8be0e0565bd95b16799606b825e462059a701412ac2704cdba91ea269271519421574f807206d8a65f8b67f44117b4c742e7bf4209668cb013975a9317ee847bb09db3c44d8029e01c4ff4954d5ac7557941b4c12c60520785867cef3f77214805c96d8497b508629713064cbb04d0b9abe21afabb10f33eb38b6b3bfb34908ebf048ccb239701944fe64792b8a909cba14bbf50d03b858bf4a318b9860e58141b7f114b38616533c96c4eb25115724e6672ec20937fab6164aa4a9818acf072c90ea4a5ba34cc95270a330e2874d76a5e0fb085f1aba5917a6e6c3a50ae59659d95703d0a1e9c76c0f0055605ac839f70f6868bf0727496f38c4fd042226fb261ce27bcfab89daa192044462cba31297a660b191bf4440305c5235ec225018cc92480c19bccb480d03d08c470ab20c88c7a1b2a9f37dd7b911cae469de0c7f6e08aa9d427a8eb90af2649aa28ccf1bc19c0fd84842e5748f686278631659a5a874377347ea3894b035a5c139ec8cc0aa63a960535f8e3113f668bbfa9a67a82ccb03253461d3354eb81d0d112fd667a1f133c054730f28ab50f54c5416f65ef60b6ce8c86f6608456c819a7e10ba9232322e4bc73d8370874846643275622b3da6dbcaf9fac7001cce6d34565cbc6f34a1bc9ae904c5229320a3755c4a439f035b5f8a099c70a6a57b5e3e15001bfc19710878c5db0930b21f28603ea4087e0b30a2cba02118fa644331a81312a22ca0721ff266620bc91fe318897b77d3c9b7f9986861879a3a9c349e16c72a9b2bd645915fb05a94ba4c57aa72e93c3decc55597e664ae3a683274267f486452e089aaa8679234c2fde99327a60a81e687cf4491de4b90528492b6c46eeb7725d876a91987025af06895279635e98183bb0ef7267c6449913ed09ae1ba77bba0010b03b900863119011b1dd02aa969ba41b6b684fc3976c416342891cbd0588b5c6a480c04d7798820da67c9142fc07a906f2517a9217398c9611b0749f5556821d93368014d9d01cf2976af6bf492e2e59b66d3671e814e466388e2039037313ac690c3dc534ba77281613560b0fc9bc5a298c87b879835b386c6b0e1580830b689e7b005ae950d309c2e264556685c54c606aab7c0318b2c66d4513a707b8b5800ad2ecc1567807f28122525b69b7e1cc0d1646efcc1673a156429a205e4016887464c39a6543e722f0980b81f524203b45deb45184d35351be963d3906e7b0a98b49167a2e0bac9c7a50db62657c4cadf6985d753c33f90bb1a275be17a7342859415f7855384975775cb557a2eb92801bceb7f63cb97a40837ac159a37c2935157160d518bde11c1fbe18c32923d3049b50b50c2ae0a325281c7a4bc32022aa7835630198103b25398d613631860b70a6536bbc66ef6fc9ab856771652689527c5f5db1d1b4243e3f06460eba75c363715378c99019d213732804b31e30cbe3e93c6f83a7ec239560abbbd48d96684f17ed61c9dafcb55cb168e2ba1778ecb0166e7664e9412f4ec7353092fdba5cca4585d173023f1856836619e57b0052b07141ba9507b042c5d5b89ab429b3f237f0d80c5d4126cb4c59d9d19bf0bfa9e3eb42894228d13a05125b36d1daa647661905cb471b08405207469ebb35ba5375a40b923e6b0cdb3f1070bb6728a389ca4b89079467732ec3cd7a27d746850bd4908e401134b650419e639fba07d88eb2bbb755b2a7ac2bc6947ab8907c80a3b5610a771782daf790874563b65a1236baba0b6fac1e5f242919bb4519b637464565467456600882532457e1249e692bb82e16c7f21c370a29453a95600a069a54b0b62087f09ea7ab3da48348257877864cb080f7a39603e284063da75ec0b9219e515021ba46ca8c573b306e814245d45cee5f55d0e5c7e36a31166634e7805a413a062a7b5a7ae75783f97c505daa8f9113507a98a3e8ce6ff046df83fd23815de42eb44b586845b55b2d39aa000ad80db50ddb1aff6498e12eac2d5dcdd68be66c7a569b0153ab4aeba37a75dc973a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 +ciphertext: 12cf783cb284a6655af46ee13c23e89b13e8cacac077ffc171c51c3ab7ecbd38853da0344d2d2cae3137bd41af52c1978fb85143bab78f9595971c2366f4d6935124f9d78ac2b1246d12c51858b51379782d2a7d0d7f04bd476bcae1453535cd4e0c3a19023861955290626473fe8d1b60f077c9c79360c71e64ddd5c39fc56bfe4b85b4f565a6ba165cb418838eda6668db441839f81b0b8ecc56825cd5e64ddcc69ebb9241283281866916020d18cbbb5abf1395841c96d81bc7d4bb89fc62e6c3d9dd8acad7ed67f6ad572a3f8ab67c182acac4d2267e46d8577afe2d9b04dcb5d11e33a909439c444c694bd86873bbe6fd6ebc3c293cedff1fe356aa4715993bd716f614e91f44b19f718a467d8c8d345e9759544c3a5ac885b296ced708bffc6c0bfabe31db65f659502cf859114b3394999406656d903ad8dbb543288edc97b5c5c89a58545e3f650030abea8dafb360b15f95e88d44e7f5010ae2f9b111daa6023e4496055371ddba9a83db233104348472056c4c6f50daf5564ccbdb33ac8f02a176e9fc74336f6c0d0eb0f7f78d55f052dad641cf97f4681baedc52611db70a0065ab680586e4dc6827f4e5a913ecae5627ff7b2cd69f253b1d6587f9961e61e75754f3cde176107fed8769898337c84d446ce33dd1767afe323d930e82784ceb7b1c38ab00192738d9bda2b21cb1a14b71a2aff00fc778200d2bc5487d56e88278ab4d6059d8501ed5cf53079826c66af26d59a9ebf8f102164942709736e203a745fe7784a03abc0a776b18ffd23a81f79d26e434a2e99e65b25c407c2d1891809527412e384523a47f3990bf4fe3f9580c0dce5c3994e5c299bb0214516b73e39062f9054f743541fe824840bdd3631df12fbbbae6e1ddd98dc320b9f3d0645ba2f7a32eba11ec9049cd63cc90d9164ed92b945b459200a9fbc2c1e346c88b975e4299cc5a811f88f9ce9633695144495fc98ad1bc1689b6d0fb5b4b9e90a7a5a7ebe2c6c6455f8c4945e34ee2b70e82503f4d3161e517e09ac115f5c0398fd043b2c8eb18a5aae2d2891e0009c5bd9c18c63a8914ef64e4d9de132ac55ff9bf24648361d3339ed8541d3b4543b754893532fcf648f49532382a78fb037d218756c012e2aa99da5a77328c13fa1588c9842c7ceb2318f7c15607d10625f78dbf378ee1789d6885adb50f5c334a768f45406d15ae898621355b16dce505877864802f532ffac78e8cbfa920bab7f1061cf11c5326372506ebf554987db1f59413611c9c0373345be3e612b3581adfcd328e283c1f8881ad1c09cef665d1e668047ac2274ae2fda0c7045019040875de7208ebdf48fa4fcfe533fbb80abd5db7b06fb00702fc440dab58bc46a5627823c55e39a5a3178e72df204f8346c9fcc7b212e81d47d8c571fcfa257a63f75faa6f50f3957836d1e0b41e7d2daa533a8852f1d4bd56afa2c189d4dcac7df6440911f87891371ef9603d9df1fc3859d549a2eb94ac3365acc0265fc9c2686a2e36fca53073ee1b65bec258f4dfc9d5e341cd09a88de63c15ab953ccaa12714488e23b6ac383e8b1bb84a9c7e1920d080f0912dd8cf222ac1b9acbc31a04374ea494ef68283ff906d0ba6c1f63071a86dde361f66bd4f773d43f3825f20c666899dd954043dca2997533dac459ee0fd602a1c564637b1eb7f6f726806a6d1c9e22039b85ec37d2119a31046487e21395182345175755e5b3ca698d5e1f114d66a67353e232bce7a0f9407909b0fd87f7e0ccebbec2a51368bb3bfa5bca5e2227b3abf6e7d0690f732d708da63dc58b208ba34c91bd7800e30a5cd653b09b6103d141f4862e41a3fa88df43083935d50b85fbf4708c96bdddaa5c0df9b63aa4517f5ff87e86f5e31ea9b3ec0d3fc4bb79910da9605d032090787c34be9613d68bbe65dff2acfc4f89259fc61ddcf41aea46106de8e312f1432c838d1acdc98874fddb34610168332bbbc9da4fa8d9f8f41f9d64d384cb7f1ca844197952b5cf69c3f6aa3a981418b9b41571b1a60ba7a14311c5beef82f7faae76fe3c6c9ac342264d3261772ea71d785189d3a9d8bf07efbb3f01d84da2498fcd3e5f62d8ba41d5ac481719200002de59cef1b41439715d5b7e84f37fff645e067a32db5164311f69e1d177e42893aee3d7478f52470f5a62b37fab65d6b960651db061d05b3969f82531c697011e4438f910d +result: pass +shared_secret: 392242412070b869a67b7ab071fd796e83b4e3b5af669ed7a8c4fd1d8d3ecfe2 + +# Official test vector 6, seed: "2e014dc7c2696b9f6d4af555cba4b931b34863ff60e2341d4fdfe472fef2fe2c33e0813fc5cafde4e30277fe522a9049" +private_key: 8146c57021044d4310992c0a37686e1b55240a076646e041eca9976ee77981f4c4743788e5071b28011a2e26c2ca7c3dcde694dd996855ea17dcb241ddeb8ceaa74eb6e90bc7e415028cc4f7280069626196b793e7208b6987516a4a95b4906274b9a154d669ad7a85d454ce905c090aabc30fb68f0a001bb7998772937ee88714fc854dd1cb7f544b7ea345a016841c6eb1bc070066c2134591944016ec8cc5443f57e72fd8020f90f332a0284314ca6b02f8596db0a7244359d97a9a84c07f14939405718781606c80e272a0462fdb2c323c326383a010ab5bb55531a687233af12812d88268a2b73fe0377512e6bfe1fc5f74948a338259654760decb2616f3ab2d80428cd754e27746196b38c399a765b610f46b00f3b717a888b7e2111eb0986c8cdc84a546c420b6b37c882e96e96618b374975c0b8ecb50c6b9bc8d598ae6b46c023b82f3393817a19d09fbacf897251aa9389603321192baf160c0c5489381634320bb2083d604f6db178c8374b055271a124cda7100d48847719704beea14f6d18edca69db74b1e5ccc47cceaa4609a7ac43bc32c8159cb4abecb2800b1947245196bc4e3675540b6d5a29eb7e82db5c3b7f2b70b12042727489170884ecf09b0537134a9aac0cc79568e562695947aac325bc104bb45e83956e857803c563e287a20f9063291b8d1809795a069dbac2525e6cf0e1628ce07a335b110648551ed4471fa166aedb5449f64cad9ea5605bb2c51caa38afac0190c515ff0bac6d8712afb250dc4bc96dcbbeac20c4291097f31611a2a3dda52c94008357901ba6b5a227d5cc744d4a4e3bb97ea0b7cc8b7829bd245e6039e23b9451011334928c6cc22a919e97558cc9a79b988d248186f3acfe7c1ab71500c8671568a591c6306920c19b396923368118153458ea7411cf38cb60779cc9195ce98ea9c0c549889414df119874cb44b332b8789599a713056bc0a6ede61c05777262fb1c7dd03aed0b324dd903b7be44fdba05d192bb5426a86910108e3d257aad1a99fb7408aebc5a758c5728c7375d405c4bb461816bd7583aa2357c83a594d41449f7b7cbaf4d80b3948a8e92cad59a3283f7c3233833ad8c866aaa1cd0b39359a0c60da978046ec7039ecb3bbe752045bb15e8a0c745bab19287e79d844ddaa9eb89a4512b249b637122ba646888a0b14a50473683e05449295f7729980043c03357ec35432585270780805683d04e6a6dc099f7ea4a72b482e090797392aa8168242a5890ec8e89b13ec202a3398a734c75ffcc37a088225e103ac41b52af9412069bf0084c303fc0d205509a7211598d475f4437782fa3637d8c6a7150600061d4458811608ae7d290b1706516a9456c665cf86670f20f2a5f691cf36d1c90772b837747b737029d558cbfd418df8e26e5369bc0fe35e4089c7ea67383ee02f51f5cca36a2a2b867668521ae972486ff865d4e2beca6c4b1e39cac3c61cf131352f036c6292cce7875ce6939544b58634cb62fe6b80c4a4447cba420dca993ae070d3c69d62da3b956897daf687c6e339f8b45760b40c0b9ab06773584584b83a8113bd765815537985d2cbfb784bb3fb50be2b11e79b91129c29b7468638978a1cc8a81ed289cf209f41f85b4b018372c8799e9b7403e10a8a63035417719b3416961b94c47a0d81e51860aca7832b23cc41a541529df511a443e480e31020a1a5b5ac8a43b022b9b1581cfdac0b8d0c082e392c473c922481b15122cf4e47474d6c73f94496d812283173b6361c31ae5251029bb45d21b8aaf3037fba8b3f3744508b25cdcb35873321b6671d94c13148b115ea13b196dc9c3c5c7b37d5324aca344597870f361cb4e5b9450b93ff8a69b8ca3c55bc76845a635584cd0c145b67cb047c0517cf60c8a1146d11274531eb46da9943d8b777df8344f28b8b12fba249398fcc7710ed177c4ab34c0f229e4573c882d00a5a88cb41f4102d309b8a23858da00aa9c935e4e157a7da40885379ade1489b4b75dedc7612282df1969b5e42a915b17cd084788ce92521d6a83a79047e7cae21325d40d357be0b3a47933a5949a4c9b42ff883a3d7130b01843d57717bcbcc09ee13c0b63311df50425e7669540b3c3444a43b775473189d07c1724a114fffe30bb1976004a66ccf811955f39e77f0722a726811358dc0f0b76aa90aab8c2dfdd3a4f3e31cdd076947d2b503c73b8805b26d6780d75b86d5f3b50ba899bef229beea7d18fa9016878f3aa8ba392a4b42ec4f92f42ad08ccbe58a18bbc7c8639c04016b9c663ca32ebc31fc82a138970c0cd238b6d1b2f2645fa407504183a125b1abeb622245886b9dccb9f2793147a63227236c9cda173c0546739bca51ab24cf3287cf935a8d870719a62b71728fc5e262662296f9984e485101860679caaa02fa1209e7703e0a5678c496a401cc5c1b834ae8c02d2a61b8c40694c634c80290a2f5b4a63f865ed6689a54201589a3384acc299c054d1cfa25be6ab278530b93616efa35cbd0ac8fd367923bd89cfa828f1e8a10a6d027ef2417422a491ac1bdd2702d688809b7455824ac902a70b06d54c92d73b2047567a25336fc74a6d8613d6af0a51c0645ed30c19f3231c147ad98e0276654b9277b16e100a2bc1327ed41043b61900d48c1f51c70725133ae31190b90b43da26335a323c13652a04a2e084827f190915548acd4d96323b573aeb2633be0b3061544cb6b80176337adeb4c5eab7c55bb612e9390419a7598dba6a79523f5764ec7fcbcd31b85c41548e1db0cf1aac1dea8031b0c3b9e629b6b9c06ef29628afc979d303355fc4d1a480fcfd0bdd9c04168e772880a4a53d4182ad30b760c89b2787691b40eb56165f321691f3c4880b20a81d08834c9b2d7b2aeb0e537f5ebcaada992ac0a3402e81e18aa1fd1391f00fbb333d46c7ae50373eba628685d15cb1867b952ed05bcaa8a7efce7c825ec58054b2c84d5c69dc22c219cc71d5a92230b9f40f633029c30bc6b266b37bc5e994e14f96d4c568d83db3491e38ae1b4a320d831cdd5a8e582a1e8a43153c347a3c91919ba60d18490baf18ab8a530066a9c35cb7e05915d208294059b161b09a0b8b446c322c9bd6160d7413974a1b11d0b643364432a1a2bacb1c0d70c642b68811b39a69d44974b125655a64075b35cf9cc0d632493ec46307aba8abbc1033eac4e7ad3329c246a08294f3cb141fad16f10b6804f70597dd6ac34b2b40190c36e17325742a4e9386c08b69cf1e0124bdcc2cea6ce77b310262a71ff7017fa1b70deca96dec183f2981975036117656955a5c4f1c674b09c1624c0c48ad2c2584968f511ba5d070ead9c7889e79b1e123c488349a1f5216f351070bc459f3c8cc8314e16b97266d37675b809fe962914d924d0827cf9b41c9fa169612b70ade609bec43e04345e5b97c330d9216a5a7e42632f09e95469e9b3422041c3119de5e845d6e02795806aba9203da928201905e2fa82c6c7229ef074a230a05401cc9e22076e1c372e742c8eeda0fe7aba76ce5baff468cfc93482a1ab5957cbcdb2295ba074038e539be24986cb8297a536fd479b42c8973b7d03d71d74346625f96234b32323b17c3769564a1a82378dd5c4d23a551024c3468e50ad5b97ca5641272711ff4464d62b9619d130de8491430b5ccdbc928b7e411fef80fb942ab322323da20cdc42b5d17a9406e3612b7970b648817e060030d338689665d3aa7cf2b97314f8237afc890b10097d8f304a26b9664844784ac8d00932ed8b32438a28e5b078484b5324d976422324fd0f217314102ea587d6de84b482992d9e6a6cdb3112599942fd76434390c060321d326bc702376d466683ad546b3bc2e47e4b891f3b7d584375dd3859ed58fe94255fe421bbfc7214e3abe265a1465e58c1067bbbf214db3a94c54876725fa0fdd048764921d5b6ba00c3382d5064baf295b30029bf27a88f8f630d5558d595549b65201793229ca2647621648297a66e92917e409cccdf5cb1378b906c3ba731355d57cad41f6148f7a706f850e99e7610d2c78d45b9f699926a4e01527a1a49886ba5fd25ca21c325e21034246c45785127f4859c0a67cc7b76259410b2f408f4e1569c73c54a4da92a40476402573a2973963406290549f4a41a2226131251c5d59d85e1d5123d527576f7c794842974d884e79927f7bf6b09b752cbbfc442934ba461429a3ea921aba995ef12c21116cfe66b132402bdaf690ed95483aec9785e6989e934e7858bd13498f4e994619ea9cd55a9504e40b4d0ccbe8f8cca1f72dbf74caa3975595623c12f22c120c022b59b2cf3748b17199c44cd37f8ea61ba5d8c1bbe50789ce915df9fce1b4cf3c5acd7ce52dfda0237f5f24fca5a18f8f98c916c3e3304d2669330c1042829573e197597d729484ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 +ciphertext: 1a2fcfde856f6d8e741237c5e0d0fcd7b58c9886503131c09a9f5db0f76c91349fba53dc31df528f684063909218140888d39923b52ea6b06e55590ddeba2b8173a2945e40c08e965780b225caac8d2b9a66eacb554bde430120b066c6c57ed75b0fc43c08fb4491ea446daf15661ebf4843a22a81059a049fc4fe3d66fcc103b7aad3780f9e21479b75a4f5038a07879ef64d7d12604db56b1f10cbe6ed755e1016e803cf83a0fc5d41354d68bfbf55d65d6c2ef32dfa88541a9cc13cb2beca4786be168e6043afde254a060056259afb94c0e858b59fed243393b7c10c5453852207daa69891bf3054b3af65449bf7a17a2222dd348a06db881cc12c29ac972e347eb8ae56c6008d0ca4927ce7bd482157f123634941db84bba10c7552552362b1d8d08e552f92897f5a75636f649609d25c2a83541b6e3115dffdace94c947036866e22f79b59b7b246e5622e21c4f0914352e09a5866b8dbb113c97c0921ae3e1a1ea0bf726805b4606d15298df0e32eaa974584909ea709b57f8ea6047d908b95a6db05a47b26de1470fc8fecb7b7e53851f732f55b0e4b1c8a1c993bba9a7d22f125849511f124478d468e6b8ebb50f8d11e0ae7f6217e19ebdd57125c04b3df9c1ee65f2940a8b8e24b0a52c012e5c9e2c09103d97477ecb033d7dec5d59fede37c6f95283ef76806926371562cd537c19d6c6fae9bc88d57ea5eb1c8fda0bb8803791fe072bb22f83b9eea89e5fe25e5ece6ddd7764e2aa8cd293b5fa1acf2a831e4bd24e4f91ad27687515f90fdb378c4959fea17ad2ac14721734aebdb0558fb65e88154d11487c89d9880041968a963aa9da09e64521260132f82e39ee1d44f8bacc3c6589af7e049996494790f6f9f5bc6e2fd5518c145dfac55fc339b279552843afa411f6c1d48a940f0c5ceebfb9440b46b8bca9e5a9a7373dc1d003a9bc7e0346e93d440a1ec63ea44ef732b0bdd62febdcc4f7a1acdaf487855e55e8372f6f3bdca58d3c8bff9279e9bde009f1cd6fed525daa609436c55048c06cfd32b5aa0d5d85a607c28047f1f79c74571bf8fcebf00ada66195f0118975f99878fe53bab4e80fd4888788401a5660cf2c8137c553108e1529e4e19932c9d373e72898f5f3a5b4167156834ab1f125a443feba98e898f5336c45027c41d5027e7b319418a6b96fc697450d60a4d8ca418687fb513d53343bebd575b590b1b608b262b1e0cf2e4412e4d659271198c6d5e33231a9d5ac9009b3b275da170470950656844e6e4f7cc0582c9e43c9144b4910048e90a0ecaa92d6b2698914b91c5fd652b1ed6bd624341046c5106e6ee7b4a13abf3e80692af298e0346a383dcb833f615ad69f87fbd1b4f72cd626d78f5bf37b8bdcf76ac984a09ae1a78de07f0e387e455f6e16f37e3ae00a815d997832a86eac07d54767b35e1c426c0fa4cb4df76272045f1169d1748411fc6d79a45bccc476b3e8967981fa9128141b1c85f591bbc239fa68514e65ffc56973028dc9661f1a69e67736ce870eafd4c87c5e2cd3f914e93e5262e8a7e8489b0fe0fae1f238fff41f71574d115be7cacdf1bde432a1e58f2d333860a6605469b5328ef8222ddb9224e1333b260e30d90b75a03dce7c3e4edd4272c3cbef31250c04544fa97ee7a399058a6f230b381215186281edcd6f40ccd84aa9e9c7abc0808dad707bcb93b6cda47d227aeb88930bf68f5723aef9e32e960015dddc944503c131e541771f131a2fef3cb9ceb1896ea98573e2a9f7613c7665758bd3aae087bc574411db82b3a4f7bb71e869ca72a024bac17f41abb843551a28cde20598abf81a82d20d4067b9ddf14208073444755c8bae9420d9f4c1b72777410cf6c10cd7944a158bc636eda4a206ba4a18d3f149af59c5371872c786f7b89cb6b8ca1515250202303887217d7c41ed5ecc66a5528a072b1112165c6339ad27c4ad7ec35e04dcf925903e0ed6bc2a3608c846908cfd0e5ef3c7b2a2fd66d1c19bd79f8ee3ebb1910d010879ade3dabb9cb531247c9c881b1869bfb82e291da45c7896bdcedf7ac87aa72e6270f39951261d5fef37aeb39a8c94f62c78a7cbc0b2a0aafb2046eec47e5012ae49bfd41f46e5428cc90284cf0600a9b9cfd0968650903137ac5091da2aff756e1e39ef133ea7dde4d8ed9943acbeabd396730cb96e3f41e3ad13a94cb56ebf13d3e39597d65af9 +result: pass +shared_secret: 0472c7777196fbf335dcbec891e291c5666791991a332ea676778e01b7379e72 + +# Official test vector 7, seed: "aefb28fdd34e0ab403a703b535296e3a545ca479c1d8148e2d501b3c8dd8b1034bd986f13f1a7b4671be769359fd2aab" +private_key: 617c1296d2bb9802655166cb0c2074c206ce03fc18f252ca7f7a66d3e619acd48697b3a5d9845f8cba2fe98654b56cba727786ae19c961e447c07ab7b9d30a64c85659429fdca3a01823c30a8335014a2472898d963a3407980a63c6bdf5aa79bf2aa7da370f03b593ca91c77f998ad93917711b7639e448a2036b86489489bc41a25404f77b0436b7810b38a3b729472b26bb47c70337d575ed265c22b86d46a8c7f1c668e56a66f3d65223f0bfe60b472a90a463881ed587313a45a675b9aaaa7a618da1165d143ea764c0eaba20ce244f8e3acb79c9be141b73d8d00bb6db5d27e30c2ed5189c31406f154560d7832cea31d40533a45b1811216951099f59896d25e1c1e898ba033aa6107b703cc7cd357b0d60118fec352b5df527fc0245f7a44fdb649c01b1b9e410b8990c689758aa606c1ba559075e2c3068e865cd835aceb37a78268e8eec1e1c93a619abc71c3305e6db35b58791e8d00febca9d3ed37b62a818d2a12a66d591420cb38896248a5792d2716c63c6949b804ce27768ac78a974e42be1437cf170464610223f9812908c29fb748ea9e253d3d8242320b4b0125bb094c7a2f635eea0ad60abb710f85150d797502617fd4341fbd58835b48412309330d3859e1140ba2443f6970b96c154d5b9429fb1a41ee6a30e4c4b919642fbd288629c68301c363599738a5571deb84358c571311737c01101e00c490d918260d7172efbcba6b8544d96a384101be6f64e946012cfc91125236b8a54781c4ab58dac60f737021c5b6e45b0b4fcbccb224bc7cb1b551ac35fd99a5f9c0cbdffd64d43fb3588f177489a02340b19fa12b2f3ba61f6d53a7a0cc1e186bff1a49cf22c500537933364a7fe257a5519c133aba7ab7648e2f7c6869b6531723cd03673afa10eb8b30ada830d53a4c7099695e8f4242454382e752b86fbc8bd361c058986d80699e60039437066db9172a6d8b3274a6369402c12a885a5e5136ab8b10ab8c7d3361eacb7627f16cc411bc7e2b3403d6b5f53b31f6a6657c2464eacfb796afb6a172a201026b3834bc70feca013fa036b5611f6f81013ec66017a4b1ea043f52c02ef0b55f05b6f65783a4dd6641496988e3a84364352967ca26302168ea81405929a4c72c30aa14f83016692413399630b582078fa6574dcbb29f17c5b85e3134e8c2db35c73b4683abd8b7ddf666ac1501b56d855081054b3085144a57f74246464bbc226c8605f71bd620562c044b9a6e656e7640549147819e124afe991fa28b049b388d150a313829144262234f46779264ddae5725469755a3594cc42cf29469b8a35016d170323601131b72304378a66f41dc0e43792915f5f35b338822ca6c7c9e6273f6ff36fc022522732514bbabbace610b9d952043c8d9ac98e89743faf9b2dcdbbb10aeb07c636001060a165d41309b46fd7d32c5f05c138d33cd06c3f316117ff90831aa5b6e0e054d49761ef3b2c6771b0f6f7124e5b8ce0814104500e704c84202b02deb0b78c17883ce72444850e608620c97290af3572f2681460f08e1fda10129806f6431317daa1e091889b7573c9100d16cca12b77a27706a34c5775bd494f13eb59002847d13163e777886501a497a7bac4ca9166b1c2ed27249cf11f135876b4c50c2febbace470505202a8fe10223b9374c6520ad4075dc30b0c4d06ed30877beabb108a6659078b7bd56c9c3d6a83f1b4380019cda1c5c6519145d515dd521449b717a98335efedb5e301a9d72467b4b458089d4242620697e27887d5b88b8259d0564ca792a3395649d4f458100e14f09400e8bbb77d64bab25407c95bc792115bd88e767b3d7c7eafca87dbb27e7c1989e74817b723f348a0a4d3b2b3506cc150934f6f50bcb676b756b1b1a401822c853b986b00599c61a269dc8a1b54227963fc7a7608952e984b90e10a9a81172b2577c7fd9ad3ce4b319fa0611f46706ea596af024831248ee19258c4b0d9928aae5208c4f3621c7696adb95a7cd91c39157cc4ab735cad892768850493b4509564ddef09eaf84c6f86638a1667dad3b2076cb93fb538d02a5c36e28240c367ba19717fa695dba621359f85c05e740bfc2ba1c146dfed60a88785179373ec49680999aa616e7753d3abceb4a2ced2a60c0b00bb3a90b2be5cac300b107f76c0d2245fe775fc5cb525824bf945b31bdbc0a86b88d8827ae7fc0a3db8bb9f534a21792637765081c4669832bb66485133f61bc22c55f03b109882b9ad7e75fbf12519873a18d9472087a6fb375244b313f6a81b608d88b0f79147282c9c37084b00138e8bc8cb3bbbd2bf9c5f95766040617962651f0556756bb9121a6bf09a515c6836b650c44e9db72cef47e08079945b8cf19d8bb25641186a8c8999103898492a904c5a7f2befc1614b4482931989ff7fc83ab40781ce54fb51866706cb04ec2c1c8813e963c70b0f15567b41ffdda8d02a94d00d1348911be52163f5c44188b6214856763a409040e8480c0f263d966a99ba7c7d5724f225ab99327a962d1497e9b265bd819c2959b1cd7995d138b4d71804fb122730b6133713d68c95d861a3c567c803adc403cc911186327e1726e2881bc9b4b1873091637c5532951c0c01a0999e7740fa77c1c1c847feb3dcd387ba3974e1ad0310f889d05e3508f02443491261c367c94e074009103e8bccf25520c4546c4bcca7aad34aac89892524219ba9b715c470c72c6c67811764926335f722c03b85c509105d6f43f65ea9908d4c61f7947cf70c4ecc08da31aaa6ac1887bd388720cb36e10521dd88d7b2a483fc5833f8694be9892bbf8bb19b6ceb08a133f037371f287956821014b58c6eb9351946303a3b7fa920e32a471f26a18a0b939ff137927c2a79c27a991040fa0d29b5a89124de37fced8109ff634f6313551140a873a6b76245a2538aeba7a234845cb4ef0c9707a4c56f8baee1329864591d09745fec24b1b392f86c47c38a62b613a8e6dc022ecf58d7d81c0f1e11a27296290ba0cb5bc04516a50fd1361c248ce450b54698c28a59274204427c53c68b5f73c739a62f9d57ffbd17f18c06994f0cc58f0979646a7273b9f0d3493db0a23df085524845418695edd526af36ac6b0b4c3346a2f61317ac8e93cf54351e12a752183c7adac04c3a943c463599adb1f4dd18a69d6a933a14447b73c2502374682c8209706cabba3a2c27b2a108ffa23a6b9732f5bd14ff2ec25e9a384a8bc83855c043a372687972112050901f12b9c0ba8ae7676b1446cfb376b1ddb89af260007abb736b5b223044e73dab7b3566c7e361c5eaa54978a6f3f72c31bf499c0854e272005ec603d3a50426b24a35721c0f1613d55e68e92682217401b9a21af9296989e75588143495907cae38c231c7521197258ecc60bf0409e4729ce5bd436749343a449a9450c5b2af817db83210f9738c0029ba26835c73c4a2b85255b42af98703d1d47106e2b3bf3f6c90c1b0c88e40f13e18f4870aa42555c08e00aad7760321c6fa8151768930cd7c12d1b6149fb679d35e981319b566108b56b98cf1efb9ecb9a3efbb6ac471c6f0f207569eb2022ea0fb0048207e96a7dc805d0d07de1541531848d670817463bbed673b5071227665a157bdb5509eb09873a00b8c98c48a3c131e029576b76f49b7d0152bceb0bb499ac6bece46f54f16b5d7414c8bc27dfdc9948077c090304acd20a4955b350f22253576780696aff4998daab028632ce4b3a372fca46b0bb33f23a52a93c31dcbba882a925c9c6c0c4546ac152a0eac489e9b27ce9c89aeab652920690b6b9944fc6b807d896cce9bf0a0908f05322e184bb7c5b2a4d7459ea75bc700424f884925a2a83cc95241e7701944ccd53271f8b1992afac3bd3f63af3228e9b84a5d1a9483d5502dac28f992531ece7ccec18b14bac48f1f62039861e90cb8ec0681d059788ed147d1e10115aaab25b6b41a66a5e1388557ad56eeee6571ef418a5f0b797352cc013a1176c3b131b499008319c121185a976c5831bd3258b7bd7b3852aa12fb77e9db085389c0a9e1033eb224835d4793c8603296c965bbc699f87b328db504b335fe83010432a4ef2a0b0a4300e29309e3370660f9b21bbd79382970dbf4750b3e142d5f7c381030901e7c09218636feb3062d43ec75a7ff9a640005c1f08669c50d6a41fa86790f2bb41e7cdb401c06c3c035fb812ae2013604422a7e3c1e6aa437ac4261f7834fa95be9e71001b65bd2e0417164142f2bc80366a8e5e1ace65108771b321da81100397a117f00515b6a2c934599416cad1d5091bd23708e45eb6f90a2fb5c47c8c77d6e395a6332a45f4178b0959466f648ec5c43422397d4e771f902db7b8d876a028f1708e233dc266d76c52b2a849f00690ffb252699d5b3e9f66e0abd3c1362c39cedbc6985099daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 +ciphertext: 61ffa8da30b8111f68c0776905a752fcf8f1f80af8eabb1615649d627412682dd49d521db32e66c36ff89bc7ca88249eb8fda2ff7b70ccf84c79f851d0c7179d3f2ec1b53771c7ca92fb2f9ae2b11d10696a6fc3be2b07fe57b634611e7b3f5d940dc0c9d8aa9a8824b454166c71e50b391ddc109647b68d12e51271e24f64d2d58a6f0567d313781d2c240da9eb8354578c3288eb08ea63801d5364e2802179087c32bdaf8287246ab1a63ec11dab95eaf2a0a41c73a4b5cf3105909dacd0b2fc166f27a287a6aeab0dfb2447a707d880fcaa73f6db886a64e04e2d3a6a8e95a995ec17c39931abc21038efb704750c58db92a20d06136c5fe0295711efbe0cf67b9eb8c20825a77e840dfb7126a3957784e7a6bb17c1cf75fcddb167eb13103f51017240e5da251a498f34edcba91030439821767f969422ee72e27e83e64ba70bf74749ec86c7d6dedb95533e8e3f749650ccd1dbc2e13522fd2f8c70d8a8ea2bcf60b66043853f787d0bed1dfcb0191aedb50585e60b00332cdcc870b467ef5d5d233b2005affcfa5b38ecce4402c572e6b22d3d7535449c8073703d663cb68a91cedd532bbadfdb8a51400d478e33e5c8ff796977e56ecdf74918616a435c3df762f67c2d52c0c332d2498ab4505e2fb5ceefdd16ac5a49919d11be701f476be075e9edd9152539d08c842bff9d332c9c0e7c50c352c2fa96f2b3c50b85f61bd4c21069ce034f9bc460069e7498489322207ce5b5039243a454b9ac824a250fd9b897e1360b1a0cddfaa2544cc09248cbdc0e511bfd4b145e12c8c29b4ee81c3fb0d0c970116b1d0e773f463946ba0215e1afff098fe0c47d9e27439139c7210c419a8e33e0a13fda22604a72872d6dd55fc9be361c299cd32cf5e702967d7c7be8372f6144166bebb05e636268a728c1dc562bc2acaaf1194fc53913ee49be9e297274e690da76a1ce422bf60dc5569faeff4c134c6a72994e441f9ccbe2be5aac361b18ed89ca8ffbeedec74c3d6a3f47154896ec2d5194777d294e9b2d9c23a9b95d3d32800c2b53c166abe25e6949e20fcaa274a792ad6a798a3ef1ab454f708075c75352a6232c5943753f2d164c049de891ccf7e2f0e7331b63f55755566a31f8c8783b6d23c04865187e8a5be7d50c0ab3b1a08bc0b0c8563ddd763a27aa88b67430c5b96fb35e8230c77d0fc501266329c454b9af4c1717f30f145b32a576978ff8c177d738c02980bab45ba5d1932ab73dbec31ffc8dcc66b79b17e35d1a5ca26d10b7a95e859e4266cd8bfe57282f47ef22965e8dca78ca6e4d2f29b036b86692d425528c01f14298069ff40a423cd2011ce382b06d8f6a6b903fa2375a9c9e1123d6af61e7117c5af42907cd3fd04659b239c64e8034cdd351f0afd0de22f3b8108115f9ccb0e977c7fe72a62910bccea232d018b0619eba0871f3b0f63dbb70b852c51757c7da18d971406a86a023435e4fd726746f7da90cd78403410636ce370ff08f716985d7b61405783858d9a8a93f8c6c790b276379003dc2f731694958fdde91147f0dce55060d2bc82f12fd59679a4d5cc7624860aa953227b602316fb8a8e7f4ad7309740cb86866d8748ecc7d46acdb967ed1346ebf98724d5308128ab8dabb6e7a92da6b34654e9f5c7dbc56f2de6eb26a411ea831fdcef744cecf3d736bb607e4125bac94f6ca0d2fc777558be89c2b89cb99fbcc2d213ea8639f4c2d32904628825b3fc224f107b78e2ea7cb4a18e6d74a67d9dcc68012b52e89030b1e425d3c09860368278b27fc091f4bfb87a118916d82305314167c2dab043b3e24570e5a652c4aafaecbe625f7763a4642129b20862953633f8cfe5dabc9f83b8ea99de18aea3110d025e7ba3c8ba128940747fce99d0eb824a68f7724fdb51a721a167e8e791db9d9a1e10e5fea66f981d2e0f33dab616d1037635a1c36bf85248643e5144e36ab80b759e693d09c1cfadca3488eb5a6b141b55e46358414e8c0755f2b5edd91859b02fffc3f1ab9eb6569e076bbd5bcd0f2fa6d97a95b96b9cf21f31030b36dae0115cb6acb43ecf9a59cc53dc02627d31d5f17857061491bea48b0b01d2c73e5bf8eea1333cfcf247895347d7e473a551307c0f77b3065335592071dbb0b2a56fd5a52323651999cf68efed856860a5cbb84bf8783b790e6a5833f70aae68ea0bf8d220616e1c4b40fad5e1ea5 +result: pass +shared_secret: 1518e22b08f28512506461e0c46e60d73f7211cbba08f2880fe612817ce9f933 + +# Official test vector 8, seed: "cbe5161e8de02dda7de204aeb0fbb4ca81344ba8c30fe357a4664e5d2988a03b64184d7dc69f8d367550e5fea0876d41" +private_key: de8539327c009f37124d009dc3d112be749b80e86ce81a4edcc802e757aeeeb0bca029441dd2193c568063599dc8d87209775224a792fa020eaa02aaaeb0c444336d94d38a1a156ddd4014070c197e527d33ba3a40b496c8fb19f61353ca32ad986664cde663862534a7351ceea4779fec825f8ca93aea7f23883548989f23f77a25f99ba847b427d319145cc8e32656e83b6295f50a015263c75ca8778650624ab7409c0f45964a8cf466d2fc95417807a481a1d2062629b17df583b254124342316153fb5d45f67bba6024f6180252b6b54662cb2ad793704c51fde4bcc758314dec86e6751ecd6a0324aa123109c38d356b0dfc9676c087bd7c945871a33e46c0924b8e8e1b6777f530615a5e3a71c95ca532c8255e8eb6afa1b0570be3b80fd1974b170c3cf30559d998e0684f92fb1bd4fa79b5bb5aff34443c0c1a5423c42833b9753b1f98e46a024cb1d3074b00f101802b105a89b95b306a7d546f1d357cce202a71043ac2859265cb768a29cea051810a08965c773546768c09a66aa76710ed954269070fc886a30eb42e33c4cd7ca650cff5aba39b7b0ad62311b92139805e89dcb14507c0dbaa6ded775bd1107fa1e1c5d2a61ba9d732df58b8845b4965d001f78066261794311701330b238483bf61780f7a4082881aa316892f5cab105b5519ad111bc7e32fa5f23f98202cccf67d825826cfc50a6db58c15e12a6d84c185b469b0f94022550eb72a4332d4377dc356a5b34135d1593117651a5c0f0c87580b392b8643386167119f4651b7a433d7104f9a216486ab6a6e0208ed6b75b93989797472391c3464054eaa91558e1b570bb2116ec964eeaabb650896bc296c93a090bbe1c79a320f4e94a2a27122fa8c422a0a4d318c62cc840ea2379ccda0a4fc71c1fd7759133520b8ba0037f688f2a3057fac7fc5e6b3d3b1652c2567b092b7add6a542c182c579a366d620c2f40e59a13983609df8d2c6a7301e0566323f00132ec9a3ce800892304ddf74411d3932c27089dc987e8a3755fb010629887e0e518acca18110ebb53a48980091ab4c156185c8965acc1d16d702efc301fa88a20c5b4fdb24a25e0a6822c9cd9d6b7a095c2e14b027ee38319fc0827c5c393fb6c3eee59cf315031e5baeb6b08753c7aa0cc7cf8abb926298c444352b50d12e7f2474aa065eb6c16b1b660f3a1a80dd36151c8b40bb265cbafc87c526b89b860de3513770110402734fc2a3568aab6e751233f5da9a7f846f5e4c7d318595f1989d557312d791261e642fc93b23e6378d61fa036cd11f0e3723e7790551d010cba70acf913acba674393b06de7aa856953f10ab2ec7f182996695d4bbacc5457b904b7df2fcc73bdb62c047b3c7377e5c41b247fa1f562c57d4a09c6b9710c7675e267263cd06781a5b63a58c36c94317509540a81063cf97af65249eb6648290e10c627b1029fb593a05cb575c3f63f280d367cffd0c9a8443836235b90201c5a8c53380b4b3c669936f965337acc72c05ac5b441fd8dab2ba5259e38c9b87c98bcd9646aa397961a160c7718808c414ddb05742189ec4730feb020d92f84296dbb97a453f7f4b09c965a6652894e92350f097b184a1bccb0728ed70c0da600b3e3b1c6cf0790135a329b6b3c86c748ae6840ef581939c81ccec3848f15821643e4a41cd9b48b1e0979a964c858de00c67970ba281a4d70678d61a0b6e5b93cf7b5297c6219c1733670407d8272491d137bfccab4709984aba8a3842415ec337e6eb5e22b4855aab21bb394c470881bec25f21238bce98caa9a44e06277870a74426bb927b46cb63f10d116bc94232c566406b79c1199cd16dbedaad1404ae4f98ba38b58d6f6b7b46fa21247b0d93d58b0081c5473aa14c7964d56496739214033c34528a8b51d0857ad3b18699cf7a025e84d91788d906e70c011cdb3b291019e2225696a2c61d0787fe445b6e36c64231288f3854e52aabd1295cba072adf5b756aa19c9b079084c204ea1bc7b65a34a2e8894fcbca16b42ddf415b40b73d5bb36ad2714b233c899fd42040502a9ac208c031885791323a9b706a35cbb9f935de1633d1b6b877d5c402e92e8d06117ea4a8fb709de91320d5aa554d77a945b30c127031030858c066556c957fa8813bf9f4bea15257905a4de4f12b6f27cc55032582857549f3ba0d6bafeee47ca2e2cee04b023b066f53f75a5dfaa0aca416ed16cabdb510564738aa08134346757f92585ac112c25a6e0723958b7b23bed41a126617b4dc30de275bce903a1c6c2a28c5c58c49a5f0c447fb0c86f5b6a6e9d271383588ec398fe6928f04b67ead2633ee174564cb2115a55d8a53971e0c9fe2a209f9c8745467bb8d9944e6c1bbc8a54a5d28cf82e8815a3615dec5695d00c0e72b2f7c483f72d36d2f091cd169311a283a42d608d0d66e020172a6a799a66c10aa9b93a9dc5caefc805cd77d567390bf017693db8b33392bcf96011dc88287375bee828341e5a515a97c019895c8e68d41c0675723af42b6a50da91d04c9880d21a5af9929362411f5b36c75199211da655f454539aa399ec276af29011fc2b5e7f5534461220ec3ad3869178109a282e8a960b6119d0a4ce801d05150c636d20d70dbb092999bd2ab9597a0b1de56086c27ca8f5c22b86995e5aaa9f6514323a31750eb794adc1ea1247317f82eb443604ff254e99a895436060291afccaaa1fa26b20fbb9f48e462851513f7707a5c3461e3f4b3b4e72ba3089c53fb85b9c0576c06b2dc832fafb929c3b34de6974021378356fbc4e1282884d062b831b9adac1eece03f5be7c9c7e8b69b1a7a79304842231f0ba1107079416b388a074ccddae26b4d22693f95a8bbcb2f3445ccf74abb702428fd3a04bea9ce55b6c251c57b6ff10232a6a85832530835883336a10992cd30144b757ab6a6377389e36093e218bd09cca1504400a7a473e248ccd40567637183ccbab9bb2dde7198abf35df8f8c836e1bfe061448b133898fa6ce3abc79beb4ac8d9997c12588c908aa1002b2570a64654c8bb3c1914583748b95d13f9619659ab4c8687f872030df926ee04b6a74047b995625b1a9a929a7fad134f989c7cac25c42817bd9f45327725474a629df0944f5fd3bf06057355f2843e8157115361cd627ee6d548230a89ad49bf1b156e50cba74fc19a63ea2e01796b6ef4a37d4212897346da865f5c36cc49a6954a8a868ae195bc4625300716d3b3692e683a10d9192e2ac5d096c465126730a9b72bb3a729a7cf39922674e39900dbbf91b2785e301ad8a3843f875361b5c4ee0953ae34a583b36d0f54cc194800be6b0a6465479c51999d5029ff50117d5498e8c6a0c81bbdfc6c220b21a310993fd5e7691834732e358faaca460fa26ad20044dbb7177c47736c412bc9011f09a0ba4d22aefb485a524bbb8f74bddcf78358c8addec550b86895fc3141682c0c323210ed756864910c9446c7d9983cfa98ce9edc644967cc93b7008e3c9166ccbffad008cca6569ae913e7327c26032744758f2e82a70f8a399ac72657995ef2754e3184c263ab93ced1510bba1d0838a13aa2cb9d7a25c236a37ec37fc5c0093bb47dace9944d077f5c837d78c54e3fb1cb0e8a70c4a18b6e8b95f6b7be2b79b802055ad4ea5febe770c39757ac42a09feac48b6174bee79621bb3af7d0a0094895cc8b6aacf722eeb76abf6b6f0d66bdc545c68c845b22cb167f96a0448b0cf812c46793a28b55a600a1431374b570c93d6dd7b4f789101e578e29d96b2384a8e09115f9e1c8dd008d0047926c17285dd996690b4ee9957cde5ba56451bc2de46371738e65744fbbb558537b33581998dd0525ebb9c17d9777a701a676956a03bb4911070d83b603f5169f66838cb671627b899e9706be9460ccbda50135d504e2709ac31c48c4fa67eaa740bcba4173ec25fd7766bca198fe4122fe93be5b646b1a475c74ac276bca3904a7c119b057dd2bbade1701ff249f484a4bef04392122c416aaacd5726a273066fc510f394903b5f34860206d8c45a4cc340440179694223b8eb578c5bac2cdd183507946e3d02c0e219ae33008e19822d77acfe5c85bfee7a0b6aa0eada58ad1ca5ba1e12ac92063c326ac4140250be091b2095f568ac7b483acafd7045a229954b8583a33376ca7b19a948a10c4a45a5b80d403c89773b7c2c67ad1358bf2900e8a793dee71b91c978c389b4d8c824937e921a17914c6d1a4bdd6460a2c7cac50cbb2f006ce9c98c7a3342f9acfe11094b249870afc3e15800701d606471a7a0dfcc073c277bb74706e5571f81cae7331a7d1e36dfb437d7d52957526bda146bfa3530dfc93063fecb103ce58c30abb5bb70c6dbc92e5f3bf40602bfa2721399623d76222e93d092c34792aa8308d8999aac7e17433da2166292bda1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 +ciphertext: 77f22646c2e9df7da84340db963c6c521ce4eaac3b2ee0b081f60f15ed977007439c1f2c1a434a753885d909ca9397c4676653626ef814145fe6316c30fdefef47778f3b98547003b3d3cca6351d35ca4eb5504710ed90fd32f0b91ca9947f8521b567419646e075202f8ce6c2d06e8e26700d7dfb2f29a2c1ab60b41aa56937417076a5788fc5cf1dbe371b20019ae99c33c557db0142443e3cb2587b51c8839e47060dab64d9f1ef45d2d6f49a7a586f9d1838efb3c2fd1d733995f87e2dbb324781e8086248024efd5a916ba0eddc2122d362328c4fda90a294722cb1b547a78ccfbebd6628cf16dfbd94c8fa743bafbb825b792823ddf247d72db72d9b600ffffa0df9e5a45bf62e42fd3f46d93d4d10ebbc39851dab8b2103a3c643440a2897f31cb12ef49dbddf9250c16c148d05eb51874b214bd400f959ccce73d41b3e0c1cf3696743d47724f40cbb1d6d2f1515a2df9d18859628fa4674c6b1401d03763f9b2ca9de2820f0ff5d65f25d3acae5fa0b2d2b970f50fecbbad74f91dff754543a7986666f123faf6d32295b1c1fe950d507bf95ecf966eca6a9abc98c9b08ae039f25ab5f7835e533ce17b4cd801880b17c9bf942796687fc3ac888578f3d21be15d3cbef45e196a81a19edf3d87c818102c696c230dd028f5d89bac044c02b0735877f78e6e84c6069bb6c6624c381f063fe3613ff2a1d2393c4517b8658d3a4ca568c79b6ab1a6c8e06a9fcdb3c8e15d679df23187452007dbfcddeb1dde7583293c98ffb87f83c4626833d941b2eee611696763d9779c31ee8acd31e8382f1aae2140972fa74f9aee07d9d83e6f2ba707401783342a8a133f57caf9cd88e41ff752df945997b7ee91c450758a73533e83ff15f6f3ecd72eb1f33abe1651cae93ecbf4c28fb7b4de4cdbf957385e84a19f0dae52ba23097230f4db6bef2cdf6939494a68042d821ef4ca2872c9a13ba4048e202ba5ec21a0eae5e46e20829dd889051910e5df7d78e7c0f24d62ea928ecf5c952098694e7828d59d3bbeb3394e51b634cdd39f4f6cef6f02a8d49dece71660445eab37573fea3c1bae06a9a42d42beefd39b9a6576fe290483150bba21255eded67cb351338e45906e80a055c21ecdd1e51b05164f01549af64978863ca3c5223a614a8d4268f3b515b680b9538d33490c1092d86af2aeb8e9cfe4a786d69dbb27ce746dc775c544fa4a05ffed255cc27926d6beb5e61b97c2711c7abb1c2dfc340b89d8a732fa6c06acd53bde442c97193cf60e1422bf32679d20417a0e56b110fbc6a6dbcfd4c56fa7c7f37acf042401a59f0ba1d8b87c0d3eba3c7f058a45be0b4743a18fa88dabdcc198ac263d9f449bee8aa06967d007be82844a9416d7c87ea940c1874fa99d2a83706da36713ba539211152dfe78169f39b0e74a8523e1211a102fece7b25e56da3bc708686e288415054d9562bc326cd54e564c57cc9bdf19462c1f7c7e04f6202d888837719192db89bd81f3ae7e5bf97e38ff27af9009361e6688b2316790a5062865d0e1763e7578fe78e02267055cd39dfb9e662791ba909039e7ba88cfaf04ac4a3efaaa0caf3c35049c6dddb2776633c4d2599c062dda533ae3efec032d91448b5e5afb27d623724bd03070ccabe02cfe605535bb95dee8777e02c28a96193d74abbcac8ce7ff28988ba448ffebb5910b414c1e9aca70f2e6f8b8d2405524eba4bc0b0620cdcca7fb794849f10be427a9910b5eb7f78ed9b2a7d682dac5fed4c79385e3521d69d8064d065a4fd796e1ede3d864b007517690074e6c07b8cf1da174e2d15fe638470e4c3d7486e6229d9cf57089bad78558612d4dd0d04c0701da389bd8204f1525ab377d5416b0153c07237f54376d35ad4afcf6f079c9bf9df8606b6c2dfa775e2cb55ec807303bd5ae3f5a368c1ea86ad311e697d199c8e4dee3e2969ab6c726a2791a517d6f705e96531e0cf06366b22013117917ec154ffc93596f56a9dc366f467f52ef12c15de01d744b42d1fbc0958c85d07003f2f3414fca21edb4a428619df21034d8babcfce9d4cdc48c55768430053e039f6f757911b6370971a673e435cd36cf1612bc7711f6b0246bdbdd3a179d6eb61b2057db48e96539ba542d4acdb1498e71e9ba15c6ecd960a4f33fc9247b9c20ec5cb01bc1029ade985cb196e44b7a5b787f94e4a3f88307ea98829bf7d36 +result: pass +shared_secret: 31828b1321febce31e35e6843462b302d13162eed40f0f495fef0654e67faabb + +# Official test vector 9, seed: "b4663a7a9883386a2ae4cbd93787e247bf26087e3826d1b8dbeb679e49c0bb286e114f0e9f42f61f63dec42b4f974846" +private_key: 7592584ba97569a4cc9c918d9deb2312e81719fb4286d67866e9a14fa947f220692ce29d0f68a97f851e5c938db1587180ecae36fcbdb8eb19d96302bf38a02e0128fa562ba7a9260c873460814ff3021d511482f4f731f9a152ca42c920285003025c5aa0c77698bb5b778c1f864d696c0dd4d634421224c7d14287d625b422062310af94c005636c8f15a486e3ea3151b5230e337aaa59235bf7968d9c7b067b8d1bd6247316047d0568aef514f725befea696ef124f10f822d45773e780226730b8aa043f80229ae2200739392a3b42c0f3833da3b18b38c243f0a72760a917581bc6d2784cd4b796e6812fbde666fbda9ce9522a32242a644032f144c4904031100c12ae7a3aa52aa3eee02f27909736a8bf9f8992079c76157001c64b08428a5acd67762d01c4009d4ee71c3c9047751d89b0f6020ffe848bf3013a5e4c5c3db6457c55bfc8d62f6db63fd4ab1b51a06b43f8b7eea0ab5987bda78278d711ad53a6b5fe58ba81c5931c9b1edc74643115bba84ca0621a9c3e49325f8b583715142732c4e0ea713f36c6fbc3c90a467757c798ede3368015b95a62adb0a62a12452abdda5e0b9a882eabc2f1150157e8aa950010efe51f29b3c88f132a02e311fd75497bd21828f428cfb12bc361250b3a765e022d70bc3544b55df119adbb5c63399172ccc7bb6f392f04cc02f96aab64e0b46744abfe9acc869487f929317ae1c103508556f688be7c3407202a79e54f68683cd066c537366bfb918b3916a8b030b0cc1301e1e4b7098a47cbb46d417caa00418e9020629db0bc597b2a9008cfde2bbcc777ac7bd55f2215502fcb3f803075037a56e70c8b4f3b44b9269824610bccd15ca8a3c52357bd582c52ea217b22627ed9eca00e390e7e890e626b75af7bb9f5d8a05c293642c51b0d399d9d5250b19724d22b3f1010389bc38752a032622bc44fc4ba074b0b1ee753f6305931fc3cb7b0c88fbba271f0722e73c83e8c49a120cd3130471a78c10df4cf52952829e596bd651ab39c430c4c4904b55ebfb06f74640dffa40d76c15e3779bb752ccb3d86ad225b8333208ec12c50b7e923a9f67b3e77aa55a8486cba6efab46ce56a7adb92739b264617ccbdf5f41d5797873a42b36f26a6fad310df949f9c670014403136522fd5530e03263401f3138847c363e400477baff7c38ba4631a19517bdb61b8cd3868a7c6bde90a97d5722b9c5b17bf05c60822a705179d018a324e0ca09b54998ca8ac188b0037e4b563b479c4795562591cd3e06f64bb83057631b243cd981819a3655f68b506fd0cb52237c9b9166d07f46a44c22c037b7b07250cb5088a96473c9d225b79aa8c09245d8b9a71496ac9ce658d0cc329a1bb3fbd03c433e413f355515b2373d8158a40562501fc46c0e7a4e903293442a2d8bc0fb26a1475d2ad52cc1b99229c4de5a78b7b07d84475b5e8651590916a4978dcf72148838140896e210a3c328486a315a9e15592b9945730cccd1fd75ed55a74f4897e63b3a1d8b96d5021cbd0b8141176af3aa4a69ae6c634419246ba662f5739e46991b09c631db407e1a94eeaf717f92a977a448e67891be2006da0371aa0b0c581db7a605080533b2427194df500c4d4d17a24a6a98f96714556cba48327ba2abeca7c06ffd382133621cbe68d9c11b07ff458e584848473431b488ed6730aeb26093288058b653cfe453ee00c3d97d35e5061660f246ff10c75f6ba6b404a48d537a846c06d02b7242462b0c0a80cbfe9022d97852c290887d0766ff81cb9a08f0f06bf00d6996c962ebf4139739709bbcabe7e770f01fc720bf015e81517d1a7ac1fa69236d452f783c0dcb65cfde091c0b8abbdb8b83fd2134e7434452c21bfbc0d5fb81f631c2afb1c0f65ea0172999c6888b2c39a8269fc383c06105a34194d8bb64d31bd56e86e5c3758293b7844fc5412a7b7d9cb9a614420be1c079ae9830a494f356b99e9981e55b5cdf2fb227f2a8eabb86531a00e42f07c0e1a0b198bb198ca8252763b62872ac7c742ba04084df82f542b067c23b72fcb51dfc9a4fa2958ce0c2ea4265c1654bb2090ba81273e83faab505871ddfa6c76062b3308ae5d8143e258793130431a16ce5e7b62ba9b90dc776e778280d0f2b8cdf7bc8750a96b219eda180621707f1e778910b9afed44842d78417cd027f819699af6b0ab475a18b7359817b50c306bba0728c5a9088e667dcb7944af6c10ba86300308165c1242cbe8708c8347c44ab77478304efc0a9e5328f203b90108418fd1b5b7c3b085e74cf500729e27719c2596feaa689a54ccb3a5a4a74acf36c652fb97ad49190cc6f08382017db7a910f816701957cdd8449ca075b9a3c18bd88469e3f51e0c967146413bdaa15c38284a726a8935b3987e774a182023cc0acc18a80b8b6909b52b8726881380b204cf1c069415a99556476b0218ebb4217ff33a0593be5f3cc47ef89c13397d68933721c5a6f1241b88f452654c249d35c1a8b16305469586435c1a6156f8520ad33938c8dba429c118154020205b0235262f233c36a89b384d82bbc49b6d6074517a631c5ed285f56585b286462872503da5c3df9c91340071eec625f8b29e4c416e93b46d37f95822ec35c2897417d7181dc9a7097aa74f3a02bf1420b1a568e1d7b1a743c0d07623e2296071912f7db25d67d751fb3b9ffa671403f29d162b635f0c7ae693578d2a752984914eb9036bca365a76861a05075b4b2a95077b6600a42e071d60e21618a689e3f7b5c9836b7451997ef80917f6351f814e2ef1786736a703012d3c9ab9db50b5b9f08bce69ba50a2c48f059dde2181f725cf39f426b39028402acac36bc0797c918d30a4a6d4bdea2927cd75364d167f34db97260039bfccb64b0003ab3532f77353fb6a0433a5a95570c2ccbc77f0e4bec1584cb1a88735f27acf58120d01265cd7236f18af3c00b4363cc372fab07ef3a87030b19b07af020320f1f747e32a8bd1f32e78f1a62960a43327307d8c212d1044689805be15c1c68682d0a8a24ea51267058dc4b15f36e12104ea83e425c248209a8d193911e2a2dfe3a47f485abb226f02919f9bba4014262ffe6b4607bbb511fb5fcc205134f8aae2310245b9c9e73957a2b5b4cfe0916dc1bf6ff891c645b28e63bab6c23e5077a8c3954fb5978ad8e07dac5c5c1fc4759912524566785df222d04435a6a24361178d917b53af57438b46aeeac546bb5207c186bd196bbb6277216d95ab6e545d78e04b82669d19093241b808aedc5db79a9e54762074a0aed86931497917969ca7f20942eee719287c887b3508f23b919418278be0236043acb3e4abac940c44c3aec3ab8c78bcabd84c1d373899369b515c2478c6085ced3b08f668224f950d3b82355468bff0534cc7660045e96ca40067de520091437309f7030f71a250c359f0c71c2f8819b62cb39646b19d63669f679ff9f48ac7a426e3fc1a1d358b675105f28586726304adb8109e104715b6c330f053961207eb96148a866c12c9349fb6aafd1b42f5f80a2d827094c3b4def6478212332d96359fb3450cfa6bee8327ea707b8cc61799105358521c6199607d9b769b38ad15e4b638d12d16aa90aa49cd90b9047696acf9c14cbee59f82b46de5bc644402400baa2e839ac801c70a368a3611cb11a1484dadf30185112f52421196d1797a3085f5d429d286343953ba8de676c381aebf394d0453bf1610905f3b6afdd5299a750f2333b3944067d9a9cc201922f9b5162cc41cbd35400a275717228050a97d05d0c1b303bad3405f36a1218c5c089c98467aa37905b334edb31f667a88c2129c1749784f49b83a329275e1b5fff4798d4b1c5779a5d433ce716bce5763572a29cbddf5b40b464f3e163cd5b554c5612c20726f57244735e2616f45356237263d69a1e1e03cc4d9ad57c83b3075cfaee45418282261d8bb531b685c766989c28ae9f991415907858308a1fa027156b6d3c8c0cf926553b570fd077b6fc419d8f4556655ce53f6802d406781b06463042304477bc8ea19757bb54f2cb54b9276fdd575d5a00c267b1222d4c25de11860dc14a1f3453423caef02bfe8720472c194dd234038f8aa0d3118286b530247b88a83318fda0a9c226cbcf22510f681db3880c2208b70f67c124437dd32ab9120894aa287c7040e06f6cdd0121ede209068238b57716db488335564c316111cdd90741a197646874922ec355a26a7e5ba4af5873f974b2626b40afbbb5c59501fceca0c9fc76fe9b8786ad1c5c76b071b6c054aac0eb8e0535bf8a4249a9256e4c1e8ec673fb5bcae20063a90b601e047e9bac3ba827acfba4a7e9b040776bd6f351e548ee005d759da86c9b2971f9d6d1cab8d517dd00566aba5f53253d778ce06e380b14c9019095028f3944a31a1aa4816d556047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 +ciphertext: 5aa2a84d580e3c22578c26b98e9ecfe5088d3af1fc9e3a81d24e25a30df69803be604b3fdfbd4709b7924d39ec03bc1384b0c5b9e601088f96d9ec6a34411126dcf855dd55a800052705656471c5f7e9247abaace66cc8746f5379cb31346a5e0007c52b186b50ee3eec28f8b39ade1a9d0c215d30cd4814bf79a0efc5e18c8de7d4116988f060cf5ae420706f19a88345bdefaa8a59066bcd0ae9586cc338140b77f3f33a2c074c59225f1e649aaf8ad20c39a1bcada26a6c3e4b2cce106dc82c14bc17fdd34f19e757b8436124e2382ae28f34be75d8dc98fea5b636957f7c9bea48237cfada97819af6c1a34dc91b14ab7d694e4f4a5c1e34ec42140f18327756f36594fe64f012b249f4c82291b8fe5bd3e1ed410d80deceabe5ba8a09fe819d8e6a3c191e2390fa0f3c7ce59197e7c070f308cde90cab5498c6dcd6916b44950a404c4405aa24f67859556e35966c7b80c61a794be0199a841adc8a2911d947669c44a38377bf884b2eb0215cb465781c3b81d35ffb677240c86ebb201309771835c422692a82b1e3bfeb4f7cbb64f99a2db5c8bee93759799409c422ae930937a387886612448df9b1b01aec237dbd0f9c4738bc421694c873914568733744cca7e892258168c2ebeb6b307ff5e35546f16dec0c99815210da6dfed3ede3323c9fe2c693dd31e3ebd003197cd497d7af3eef133d611355509af3b9a02aaeea73350472e06de207b12cba089f201866f2d57d27b056d5bbc2e4698412544f88b2a56af7f802b2d5982e4b31997492f8dd419b4ef3e8ba76b52e43e04f0d5bfe24c8854f335a47843d27b42cf7c1f462cc2e5f938d0b20a29942f2d83c232807e021223d8be33f00f1373ac1891f1612d45e26920486b4abcac66f4588accd7e178d2baedd8539b4d35232b0d121939bb664cf9ab70f5a87d4b4cc2d3daa4a37d064e4494174975bb92dfa3f965afbb76535df9cb5c0de541672821423780d102e9152900306752c2bdee5a32dcb375df2ee84cbe6a410a5249c292f5aba70598e4934be4295b9997251c28440f3f647946fbbd4dace8b2be424ad81114236f2fedc062d5abf4f2beb2b731647af6cf8b07646805c69e624906567da4c75968fdce86c9966090f2b117c153e3a5cfbc4c3d52a611a5936297a60171151ef3a97b153484ea0ab1efe8a4efe60ed47e0054978e152bd9c026372515a4188d02bc1b93ffa5a6b145539b6318d75a15a5521ae042c8756cd67c5fd611f8d9c44045b7efd5e6348fcf7a6b56adaec686eb5692549a33466080e5886c83c8453c9e4e44fbf0b293b45da5a3064f7abd6986bdf3bfb9000e8d24574f5f81991ece501d4f725218d6a2ea009f525c3619c8685c2c2b34fb2ce1b93764e07dcc1d3cce5d535533fd7dd28ed24ee4dea9f95fb2c0edfc347ec9cd9b49706f70f2884df179759d200487c1e6000a91cc9229c6439c32901be5d357382c9e37b7c6154dc06127d3ae93dcb4ed8fdb44dd109d1256123ad3b3030ddd37b7dec4a715f0bba2514ffc88876e9dd9d66974ba8b5637bd7b829ecfd423e0137685d3d72f534721082b65e644665f580d23599cbac81a283885e41a6e85116fad15e53dd301e38317e74b468fb3f1eb6d54184c5dfd1d8b9f82b36ccecfe689c39ff8dd6dc1d6138aff0057fc9246608440ee5fc70c095b837edc79e31fcf61ae2b07714fb3ef5b2d2a5c1b9ce794b207879f0c5395a6e880ac7e566fa9d695a5180d406f1b1ff96be6b4091d5cd378c6ed4efb3b23a84fc78f5a5566a170244fdaa6bd324fe6d567ee403fe93fe2e4e00cdf0eac1b16cc4ca2df1672f7907c6b240f8d9de657e8a2aaca0c5a9ca982ca0f9e97c92fc273545ace9875ddd46fea0997ad92998653cde6ee29d042422fc33a6107d47470ffc662b2d2dd149778f2170fb509a2bfea4d7dbc4c22635c16c70dba6c180e35a911b67c3f139b4359382690443c06f5dd7b75b78bc82c1e06de357c8f63bdc75bb10cee006b6e41dbfc24afb6d6d73a55e411d2ba2f4a45e635ba341605643554c7cc53510e8aa8520351a374e27265f2d62e0381ebc130561ad53c7e0a6d5e82d37b719162d5ac8580aca912ab9e48243572b52e6283d23f71c827c46b56fd0be4b27d7d1005420e83b65cacdc52f3bf3ec432c51c37af64fb8aa78c35c8728e7e6a7a68ad1060cd8a6fc22e5684b8f +result: pass +shared_secret: 3c2d5cd46985e0e37e487c51af3850c5516673fa376d128fb32e63ae84d5de70 + +# Official test vector 10, seed: "980d0ba7c8f8b23d0e948a6029ff2659810ea1360064663a8994d0333c8543ee5ff5d6d5c9acf446e61dc464f792b9d3" +private_key: 25c969038aaa118900417b46198c2c1d718005994dfa10ce5eb8b998a524dbb1a4f3e0716d314458ec6de9972dc3d988a064cb0b11cb82450f1055c9f333b2c82541f99167786b126c8427c515a8f9f506f878427e1a5e239547f1d6bd97674379b06813624a220a22f5c51e0dc0582ae30caae6cc39cc1350412c7de154c3484602496bf84cb3df4c031192bad2390f9f60c7e84855ca118b00bca814510c6a019d25e8687489cfc7c0240c822de267359b877adddba93ee7b99b8831efcbc6c915639b7547204190f4d500701b239a161cc4858411542fe113372cc3b0e3b4417ee5117df681ccac2efa3988921a151c8418e52cb49215b1e7c270812b876d37b092b882ef98a8075226ad76ab0bb9170f61c73d1caddc201ed8a38b9e237a6c345fffbacd6f86c47bfa56bb04b05185607fea02a16a132730710c85a424a08ccac9c8dcb662fe0650fdfb1ae1ba973e95079fb9717de44348cb0930d1c8ef1202b4c7849c244436d7b477c2211758801c316ac9b5be8a082661ea78e2b14e87da8c78e81ef2285f00d116755c5cff986b56b29032b390bb8453e8d970c7f90237757ec291ca8f71c9b691cda16749a63246ee865ac503a5573962be14a61c31a6bd3995e51684c1e59d2e803b5061b2ce633e7b692b5503818e349a61155b8820b790a692896317fb56366b63cfd7a4305f1082bde4cac8904d22f782fcd7c89f32cd98125f7ed96b0ef932cd077131424437744a5cb74f2dac52932c6c25ec282caa4e65fc9b38a43e21d3b95cc5bd67801a22d95280457b5a182f6d9c8fdd197cd12231f7889af318aa0dba8e3ec6056fd6687a476a971abe6cb439c055b21c6933c5f58c9409cfdf29ba810b87cb971f1e314256dcaa7ad63a41a11b4c1c127a8065c24979b89c96d3a2a944d16d20e39c27cc2969bb132a688a0a419c726338f93593005453001b753afca27c84c25661a63628365ce3074c90448c92b20e1299b2a10403fc9fc8dac9bd479802f8c3add3929b60b409f73e53fbaa328756a7b3ca8ab8a3341863ca5c625697b4e1760e63217275ea216a61951f88b9ce64839c461de048b3aa4692e6095496482130ea3be3569cbdac7c6684c4c561043b4167795138c662b44eaa97a279a7ea1a9e94d83d008ba136c484fa27c05db44066fcaa02f71a663512a71c7ae01742082c5fbc879a046373759965b0e565930506a8f6cd1035aed5e4a12b09a7abd74d4135653c509444775190b3c822c567381a266d1a7d6e19a60a536f60a946a455c71ba2385fb099addbada7691de2c54d5ea88020db4424605c69ba6ac2bb4181b363c688c24611737cebb00f536a83c3b30f0a9d46946ff4814aa8559368d393d94264da25b805b417158b6d0103ca9d1c5b62b1b5cfe969677a70ec1385c17a59a065809e52b99fb647e63b1f1db0800dcb9952710a94361d60fb0f932b30ed8b6715d913d8ac16a095809dbab0b0f64b6f5a7ac4aabb38414401c58b935586f000354be345f9c45cb0908df8e33063cc0997d122ec830e4c871166ea0499d6710e919faa269b064374d463bcfd96b427b47755d689fb3320b3e4759ac13f738a72516638d8194c31802abbfb68f4a6b107e05d81ba4d5d70ce6e140771f08ff7e966364703fe8a2f2ea8cbcc960ef834a711cc7c3baa7485059d7315ae0b395baa55652cf54fc817bb23819117b933b82bafb146248310b494c506ad0ab37025965f550a2d821787671cda3c9874e6781ad85934da3393b566d58742bd8cc44043ca7a4268b757ba3e1b4975f112617707c7f603cc3569b82b100fd79a391673ded0a14cb11af1556fc26a4a11291f4ef1816c52c292475807f58a2d461ca15b13adc4a7e1a75e1b4bac02f11c3af98f57b5516da77b49455ccfca47bfa0c70e0935f53b14c3431724a35a8fd663fd2ca7107c8e4f0a14d30b98b5f03e1cb568331c0f14e7756aa4901313842447ad98874165f8372334869e89c82eb36429c13f442a3f6f92a9a3f75b931b97b5d4080442371babb4509c5e1b997266805b777c1253fba72a839f9d62002bc2075788cec91269f0f1408e71031122b107e11486d096b1faab348c5aa46cc63eb38c4935915e037f4238b9be3b59975c6a67fc807a732b0ac43671825cd0f74d1cb3c6a7f721c4039b10482990923aba0427e2da5bdd30bd55133989a5b43bc371d2105415e76ba18786237c7151548b26005961fb2a9e737e39bbaf97f612cacc3ebbd216f9f57873f97c503a95a49a1a113b0c454526a082203b1a27e2fb170ff1b59b0657861567d5565555f11ea31523c42898d6ea1ae260cd98b9cd69f9ae4d19a81365154d24c008bc15d1482665c313c3721cb701c3a407373e1bca5829cf45d484721357d5f83b5cb58b21987d9fb7b77224c03c017e183b31fb4c407ac23312aba708e8bf7f905d68b4895a48cd7a70af6ab9060d959f56a02d7e3672a90a6218fbbc6fb641163674bd736af2764c72c5bc85651be47350507ab81749bb2b6c744520b5b0a3b6633355c0991ce4e1a813615f2e8300366521040049b1054a7741b29af1c300e2c86977af90e820dcfcb8cd967c27102d49fb1683c63553289cc0c62de0e26f7555392187009e0cc5896acd8c3c9a4a7c637a107da325cb7a694e9a1107e889cdc6310671bb6c5b51a35a0169ff7b5158bc6469a71a3e8740e9281f5869180c91cec8e1169e2b377c8174669ca67418116c3cbd2ab61d8a874f9bb767de8973d8425cd118bc9a320453db9c64183248b22af3f489ae69159a056ad113833c2a9fbc56b10d013e911210bdb8cba68a0ff0f0729757bdcdf68b3fc7be480481ff64c4c09825ee52b274e85e544091c3d36f40444d28878d7c19122957348e3c27fbe74685fc1a3c21126064242616bc4aaa5284f5588435140956cf37bc72daf5a73ff6ce452ca689066fd6e118bcd4988660c7c8501c34dcbf1965c66fd95fdac910b9e48093fcb200564b4cfb36c72c3096c5579f736059534d57b7168813439b722d5230b255532d838598d615c1b641a9d5807f33653a1be96835f474d4f1955e3c5bb5c621497c3451003ca76275af98b25a962765e5bf2fe754330a77837288810aa53be9a2564451319405cc38b13401a7f7dc960b5b2096f45a94098a2fb39dcd654f846388cfb4b57b4b92abb321a16a83b3e6953a0724afb47902e581acdc278957100548c735fa5c04a4147e826a77030284615b82fa60bd3619b57bbca10872afea091fc6288ee434d8319f028125a0b5006cacaca8ca6eb95c7ad87c7e499a4ad81bbf79d144ab16ac9cb49743258cf0c83f2b006b1d0585efa0ac7dc722ed6c12170831f0964cae2b6d2f808afdc6223d11b510b949e76a0a4c262748148ce17b38c55cc7eac2bfdf468105bb89298c88c8806b124c7488d606b52b217c81a17ee5ae67cc27f6a3382d50705a9bbb1d3c59f68b8ba9a45ed1c97ea1eaab76903d1f2a1c71a07420f47695d1b68d06c5dc85114ae83204fb4bf16c09385934105c9e2fd803d83542f4aacc3af6b949a63e6d0b0c46ca8a6b4633926c0665bc09b69ca250945c14366d49705658f6cd76964e107497bb42290f4c1471a4ac29a60c3dfcb701770619cb45b0613068091a68b58c7b2a19ca9933cceb112e234014816b7db43beef660100a19377a4200a0806be78d30169c4b747e8208780a14aa53987065936ac4f06b7a710870fca3b1bacb04c2af5e3005a9208b3a03929b864d0e1011cec63b93220e96b480128c20b7675c9a87c1c8e2bab4a7422fe9c16d367928117765458a3803af02332d1bf654e782816b15a5bcc3bcf0213dcbe07c59a92d1b1baf1f217061e197c71223c12746cfc0b0aeb99fea7b29bb3a1300bc266f1692fd8641d6fc594b9894dfcb0c951b8351236087241f7cc3506ca74ccfb4c930fca1be940af6606ffc76bb92b53768294c30370b29b795de63caef451a18317384299168b77793e22fe0fc03e4c064cbb6979b38871eb11c5650587dbb31eec0cf7ce128f535b0545ba98af5ab4bc186ea1081ae15bedef5945410c800553d8a2211e8e16125d4a7cf25a91f13858e1cccb8e56481a5a3bbc3468bb624f282069425c8b5462725a813bbe53c1cb11bbfa242c2a1619763448af184958cc333c3aefd35c4a4861c5cfb2ee1b0c39b0c73314aa3d191b6406caa94d8280d8b01e1b73e56f5bdbba80fb3923a4b608543ac827395cad1b050530b5e908231c324132d782994753284927f3a379f71603036a172ef58018cfbb879f29a42a106bb32a384db6e033401fa46045b035ed2b3f277ee6bc7b69ea2a0946112498da4ee64a2be6ab49596c4e61553e1164dd2d4c9cfe0e22188f2bb5e538a054c904cdd0d6dd921af93591f4a37e9ea2b5c8d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 +ciphertext: 72e827fd0a9213b7233fb4f586a9e7658e4d9af82f46552bbf29cbc288757c90fd64f98f0a9ded011ab822f9f9555cff8eef77867af89244230e81ea24a9a8bf3fe80459b1462c163b50708c7ad66bd1a2d0b543e0a1d731aac2cbae9094daf15d472a3e4e4e215c8ab38ebca960e4473214f7db59eb183ab71c72beda92eff09d995b4d6a94da0db0cb91658e0747c09d74561a1d5d1a7f983cb0a3672c1c342fb5bc8455261646195143f41e54e83a9efed0b3ddd7173640b2a8fd9b4adef0848d94129f45b09bbc88fe7267e4855b1058e6df5a73901d44f1099d48b560bb3fc5dfadf9124973ea5762183b952766a11fe1909342ccedb0b14d56571435e38a43995e19bc5d3771b0e28d87aa882d052155dc332acf2dbdc2fe6c4b21b719735fe77998c837e9b871d15f6863ba17d28e371e31ee2a066bf9d3f9dc25969c78936afb7533d8b611cccfe77203895340020822a82f732aaeab1263163d68680f8a229ae1e80bb4422dac4c4c4faaba84c054bad0d9e1aa0992c2013b1cdb7005939bad0e44241216d6580479f6ac6066cbda1a580caad53434c6f2a537121a549401cb990d4765812ac1eb27cbf666f5d2d96f3cd804b43052c1cf53d2b11a2b924ca1971bc5e30f2e9a8fb05e28e474fd34563836ec9b19ea492bac7422392336c2354a703ae054995ec347e563fe2c5ee48d0c2bd9968556dc41e5d3c939694675ae23112f64cc7ff1df4696a73ebe472fd76198998626409e8f8d6c6fdeb9bf589cc60e15253cb985be0ac507ac8076f606c11478e78a481fb749adb2420ee0f6546b518652b905f328c712305e80d8669c5dcdd863db97ddad05b86ad9d5dfc52b8a41cd2946df58b7d5032eea4efb6e8ca780b02ac58261bd3aaf04a88f482e242d698cc8c55d87a2e178c741f8b9a03f453d844d71011f5c7677541fc25d58a138348df949e4cad85367f817255281b49116c5d101dac5fb26e1896d97f67cb712dbcb5a573b146904af4e9b2a7a02018c6ad812d1b8b1bcc8a062c5a3fbb9cb9ede7db4bb39e31a8296d2b4d9c34ce6b06a88425c75a3b53f7398edef454b9b2bc24fc8c8dbbcc4ddfe2b0e52b7b9f6f695d5cf8e7706f0a67d0132a4234334376996e71c5a9bc41e6ed16d712a1fa83031d774ddd45d9701584dff472e31f2bbb5c09bbfadbeac285b313a8b32e5e78d10ec59658210bb346f0f7c50c233c7c1d018ac200ee64cd512f849aa8cdaf3a1d8cd23fcf974ebd05a5a29acc5b4bbb594fc967dd500a08020c10f4d1a613d55463d76ba4fd6e0230565ac45a5fe9b1c4477cd40db46b71c111b1f66bd072a28d8d1a43614e785e838d3217f52233883c73a1a7c4878290bcc97e47b4694df427f2ba787eae7c495b2455504f4168fc70189bc77f01bea35f4781d45c170bd7747d7d85438442ec70bc40549f30b1ced6e00d9f3bd1473f0df98527873e775df348061c9f4b16450a518e6ebcf6aa81086d1b9e9b355d405f431dfc585b1a82fd7436fc32f9f90171b0ee2db4431ad5090d61b8dc41f4c1f806f56119fa6bf4779c1dfb1dd9ff535ac662c7121fa5fd36c2f85895dfb4f63f32172c8fba3dea868b02cf2c23ed351a71c5cbfabbc4bb9504533a67d6c7af1ddc267ed430421dd15ef27ad4c30f4a384b6b72c4c4e3ebf5e254f67e61f84c0f7ed2061c92a504fd662a1e4a191afb56957c8e11ce0292f2eb49f71e106ff5e202add3025c0b15c9cf946bfa12d17761398223039e2c19d270c101a2303a276d7d7c81332a285ea94a28c4325fe4f323cc6ae72c306ed5c04c7592733522f1b16ab3e5ccf7e50c6ea926fc9601c3f27b66363bcaead3d9e2b66a436d2b77f982f7ea36d124c3ae3483a09d3be896f183ea041eecd11c8245151a17ef5daeb94e4c90a341b86cadd49b58357115d1a305d8e7950e1a7d6c604070b2384cfa7d05ff8a578d694041d7abe179b456de185c12e0bd4354e419231e5abb7542f814fa307e4d82e8194dcdada546d09173bede3da358d5c7c2c972e5bcd1487961d4023534b16b71ed1efc8c231df1c218c42dab650d4c6eebb5e0eee547b897b757a79530ca47054b9e42d1b6fb68c2fdca74099e218863818d11cba4fa40f32d3420a24643d32e387ae9e0c21119387817feab0ecf26bf68b32e3b2b34cbe08ef0c12a830ee0b9753ecf3da7a0995094ede649094 +result: pass +shared_secret: 8916871d69a1d3eff8176775f01e75198ca74da4ef8d8f410706cadf9bfcbb91 + +# Official test vector 11, seed: "6c029462ca42ed520f10a579f52687101105e0b90c6e7bfa582a4c112b579d5ad0a0abd38f72abcfdcaaf5893a112bdc" +private_key: fc569914244bca63c05d25beb59702977903c59c046079c9410c873936b86945ae56f3c1f049a3ba4185ad5c49bcbbbe7fc89e561b2a940aaf66538ebf594eb0e5bd163824f8022f6b5183c0839b59361b96008f3ba83d1cc37ca7581121a0b552908e28245218730b3817a27e4099313484b6fa99a539295713abe453afbf8788fe6ab530e1cf3f430f4a855abf3bc11da69e10cb2d879075fa6198b1601dc8903c32a845d4da3b726b6828ac84e3469dc9e66701c16b64957d36128856b82e1367ac00c274d9a366b6b38fa87364880299e86561bdb46269a951c273710616109aecca78e5710c406b27ea403c05704c77b27da95c45da86d2c586f72a0ba1bc5493a389961b789cf5b35ef88dfc38cf6443b7c3190069a19be5a7b11a7339f6cb445f88c90d1b350d5c3089ba13c4c70ed5514dea34b61d7ba5abf4c78024abd21a9a84f4cd73f86b43f3744ffb572d918338688168cbac7f979bbdb2c52910402f94c3fcaa29f4362147205dc5b5af7d4cb920f21851392ed6a40e10f1013b380ee87a4fe70b864ae285bb5b1d01a448aed532da26948f639258a4af94b3270a984063c927929867e1fc9415815fc51c5158cb4ae9d8c81cdb30a98a82e6367e6340c6f5704a37e06523e736bba1c4d98c524bf136a3a48b5786a9ec624df5a992bc89c389861b03aba410531340baae94c5a91410370f92573c3b28f2e2a47a2695a9626cf311b834597c0a09ab0ee2a588e26962189b7b50a99d5b7906c274a8130f3a30b56cdc85c1a8ab9853476a22a8c047b4f825032a742d601ca1bf319b8a1825be3c38e93a686a50694e15164d9c603f537772f88abc1258749a1adde38b55e0485f34bd20129a1f6180eb2382bf2b96120cb798fcbd98401a62a872b4b175f80ca9aa0b496ec12fcf713184400d43212db7a55a522a1d718c43d61823f4e342e9396e6c2451c056ce3ccc93c7d9a45ff41461262e49c01def44a350e5cb7e40bfc2845989bcb8cd59600f1120647b45a585318b0bab8a202afb7348028b3fba36a41aa7528dc9973feca1c28a722525c29687398f607e02c9be2b2491a0458e1aa6c10882bb4c0bb50985cbdba386d0b53cefcc6f316965e1f289148c64be223853791a254b38a98160f0bc3aa63cb6d45263cd61048a831a5440413ac3c6f38670a83190d2bb32ac5a35908c41618ca017893b3eb2628265b857d5130c821af61c895c274faa2150034c0e80e2318917bf9aa15cf2665c1b3ab8b62a39282c738ffbbf7760845637861f46c3e5137f050a907e98bcf755a3bc0ca201522acc9bc780d10d4c41c69eb400f9234c8c7907bce0cb52b783c0fa82410a5b0f325753d985622bbab7639b649c5b36696e2bd8b5c969165f66ba02b142e4380e77ac07d2a85c599b9449e48f4a6aa0fa30160c18180ca2056fd52a94fc2f2d26c0f5641c81cb854197af4eaa389aca0e5dc9bdbd4885da4b9ae207983cf37bf8955ccfbb37e57b30e74bb6f798b4ba62273059b589e51f78b79fe927818eb12f0e73636321b51e456dc5f90281153c7687cc313723b1034de828620d17aecee6482242afe899c45735209606b82a1c284fd7a0dd819f72ac71d30bac8b54715e422e7c4511a073039587ca15251d8bd926ceb2b0864c159d348889bbadeff732d0303951d1b491b98b43214d26bc7a3b121dce077739109b5c00441917cbf3169577d63bc7ca18e4478f4fa8bf23164c8ec68e86acc8d0e1ad1034a99eea986699cdb6176c84294f711067ec7748ba83cc6dc51fb3e9576d7150977c76096a233b2233c68995333b82baeb80c3f2480fbc93b414cd3df6165e4969aeab0b052492faa0a613818b6f60086cfa21a1ea774afbab6857033c65bc38395b47f3514c624d27e3120a969d01b1a49af814c7192ad1f97c2b398301ebba4e76be866c8dd17a46c7db9d5149329ca53460d135e323c6488134e9e3ceda48562aa78cefd098ff75a93f3413384904cdc10278c798a77aa93f033eb4fa32f7698318d23c79b4af83639bffdc56af742144e7b36c217f13244b152b88fa3192781594759b1e0d158cda2a12c1fc85d093390f42413e00a4337c32092618908a24379444fbb5c7f702b2fea3098aa125a89b82336a3789a3bef7c403a5a2c56bdc0a78d90b2d2b06c3c74e60306d7e0514fbe0111a930a10627e5b2b11077ac78bc32c46d1406ee73acc41b518b2c1a8cbc93990b9c1d0964b1091b0871dfe594aeb6719400c71e96893a7524d082bb5b7b3711f586f9ecc4b65f66fdb2801495086969a6a49961d563391a24b1029a7a3c9e2399f605a37a4a05237570160976b658da00b57ced318b4c7025ceb071c269ec9db9d6a2944c973cc9b427d5573c2eb37c64e4624216c290c5645b36cbb3e82713de383daa5cb4029c6dfb14c43f4aeaa9c93843b784fdb63957b75f39088820694bd0706ca856864fa031b682031581673608dc9ea058dea014ab79eaef74928d4cb33308fcad06ed303a1ab8b6cbbdac332a24ce5474013c90c5b1b869bc9881323435a097d09e5910e39cae5a1bc148ab7d8aa12c84634864930c24ac4f375731cfb65d5992916302640a524a4a52c9a2281534956f946473541852d0884e6461614f9a1dd95cc923c6298998b21c2415518443f86949e6c390f9463b69a63f2f9b328053c01872ea2ea8fc45185ca3bbe74b713528cb3525a60f7639f770824686c1b2ad719fbda1d4c44c9dcd0b24f5277fb6720e686270b5349fd3b1215008c6b24c26aa943ae71146f063072f0c42ea114d3986ed1030260e88f2f2c34e7385491565168e1c18ad324fb13482f5b83b2f6020a6895f9d24b93805fd5556b4a048c2e3106eb02a53a774b169106a77bc166137e7dcc4b60569e77dbc6d5f9c276a011ef59bccd08793b695eb3a5bd3c1b64ca3bbfecd1adb5f97294d8909b31772929c693ac396d412549b1cf910aa3c60ca0250928ea4350b8c91df7d31474ea07cff56dbe417b16603c6af97329d53163343e0af3a84ed37cb91a349bf2af7ee84d8ee504f2a73e9dc3301480bc6f144a631bc3c160348773cb0b6a3b57fa1286e2107e950ec6a682edcac892926966e28ab2a482bd5991f8c6c6f5e231b0826191a8c8d3c2701984980146bbd1b8a629b548ce578f5df90b58305026aca96ef20c77610a2da79018b0047f5351858c2c99a035f2f339885521d09611a219895e987471a2c10ee576e07320b7f9b5d678221aa995afe550c0f72f1b647f3ef429d3720802d7b53ceb917feca63860337ea126fe41777b85980744025ef9418bb4c1983c8af0109d2a0a0ff47c121de1926ffb5b3d8bcac797a0f5309c8629605a757a6ae91beaa437cfe184bfd3b703052ffe8cb2d7e57b411719625a9f1e11473aa8a4814788c0280fd179596db23d3003461314896d38a9e8fa75e93b65cc76cdccf24a72b1294acc47b3e7843b2a322e82c98f906ba369b7e8b588d2dc8056b70e8588c4eb80ce8300630d265a8f6a74306374da0622eb125f51764c81c55b9966c27b562c5e930a30207f825b27711c3124fbb98d4a8351980a04041e99f7af63ac015d667232162db0e793eebc70dea04eba186d2c14381ae886f7c6b934f587710aa095b206621cbe4ca1bbb8752b5489626ac72290315fe9a967ef6980f9486462b74e7938800b020519c5c0a684adc1b82f0ccaa3988cb5a28264ccfcba1e8119add64a58da88bed5cb01f5b0410a3ee03c9105029ea789bf65bc9ec58b4b2b0c9aa9c7859a48cbf0c12cf9e78049528118d366d0345951d0aa9102b5c12b36c6022fa4c7b4554178a8800c1a968ec74569af3815acdc39bfe029807a8ffe1267a69073744a806161bb5ab59d5340b8218054a252560c188314c177c5f3300e86863eb97253e6778415b77f140d498aa104eb291b21bdc2c5693a39254cb01c8a3a9e8e14a965d107a6b98eb09a26c2851059a290b6e94ec10138289148086456047750a3f8aadb5b1693c9642a8ba89b89c6f45c18ba750656c151cb563ba7260ca09c780077b956e5275cf998c86748d2d332a9008f8625bc61939b18f0c063f171175338464c0d402915c6e54682fb6876c7338f654d1916655fb19e21f18e2c0629e0962457cb62bdf3c93cfba8a551c752642016f72b5479615da16c1622b21a105da72413df20b125c48b0a76001472780be292a98500321c007b1a0273108be097ba0e5972a2394861c5c9f8e0093dac8aed47a6467570299a5501c6b2f281283d0013260901a08531e737bb6baa0fc13895253ac4469519c483b591d28cb8a9a0ecd051937eb8d82bba18673a17339dee827be4156633d8a2c376d41fa4e7bd70d4e199ad2b1951f0dce0b0afd296d3f22bafe4f13638ee2540caf8a6bf7d0387265bf8812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 +ciphertext: a8ea9ae69b53329b2bebd1fb1e3a67c0b693a15630c57550e31e59fe4f9b617dac6d5e16607b7433499cff0808d4bbff91b2ca7ed0f05fd3223e9300e4f251ce24b9667afe7f88c7fb6f4d7d921943fdc93d98fff7c4c7ca1c5f68cb44365682363296da5985dd5270007625dddffa50feb140412a6bd3a777b3b9a6b6fbf43d8cc90f6a1d24896c387e0487f03ef8c45bab4aecc0c90456688799f7a5417bf523deb8af083a75429e08c242587d01e6ae78f7b165b2dbc9e67a8e1fc61f95d1fafedc77e7827eb6e718941fe091138f9c4afffd53dc7b632403f4197d53c8658b67c7905a76abe466357f2690ef633d4b20d0dd73e489b0d046d2a684e21f95fe1d19569b076a6ec0e0e2ba05e8a838815683d5cb3b84be0fe3e363a7a3761521c2e04bcddcdad2c956f66542c23d7446984f6c169ac4c7846a9d8afe236d0c8ee7dc2afea49837549f91803142f889b2ae4a629f2ee67c2fde6032866339dd512896e8ad025d7afe1c797630c2bb4d01e4f5004ce288d1d879689331686fe6934b43f34f40210006a4418a54c3e3cbdd96a09ec364cfdb76b72dc12ea17e7061a3a1c16f04dbfab2cc69ccb244fb46975218d8e15a5eea8e85249d901a2379054182e2af17970328cbb58c99049afac91606aa090bad9aef751b76ab1430be40f62ae0a81f6219d98fce9f71afaaf5f68389d07a2da75df31a2bf58cbb4feaca21a775ff92917f8b32b72d0b880a77f9bec1074b1d1cf9be04912a8813f5579c911d46d06c66ae1c943329b246a0cb80bbdabdb22063754840da03c3c3d4a072f805902054327963dac5d17074f60db1a37a3d7b7be87b953324e964041964576e95cd9d7adec5a5f9386538912e7140b758d54aca9b5b6adb631fadf6db3cdbcc6a2f3e475bf669e0888f5c37967feff2c73fd4498a95ffba69a84d1bd2ce7524e4e5f8330a4c6c6b0714fd7201ed6efdee9f08fa2304e9999ec2dbe6a4756c67514e3664fde289c1d73bdfc65d24e1d5c6c1703d5c466df114a3017ec38510f44ea50cc7e883ad24e340f3196263c19a4d9fced324d0d1a3abdd5f3553b6e3c14ed46faa97fc18d0db7edb064fafc4fe2a018e2d1943301b734ed76729043f4a54d1fe75f0d7d52419b597e3c6a33638e9ab1d3d5fc971501cecad64f86b3ebd05e372d1f56ff635839914f4d202094942ecfd5a26dd59135f574d6924a7a64c6079dda2e30d843db9ab000bc67fb2aad73d0a142da2f56cda206845cd433dc53ea67b9ce78bb9a860f34f72770afe8bdb6d0bab4d2509be1dc2c435cfe59aa425cf607b550ee8e2c6e6ff885c4a95f659ff7f1556f8a02613f6b12e0693f285954a84e13996342f99b4f2dac6852f7d9caebc9a409121a86905c4f540f5d88b44b065cabbec28f1a48ccf635d20f4d0c7e3264888049a7983411a1bdd2d393b7246d5ed0b74e2ea568de1674a3339e864d8a54a32f65f2d19993655e04496f566b5c8e6f793fcba6bc2a583ffd61e7d23c3c986d178b8af86b8e4714bcd405be30dbbafcf5aeb6d3abdc9d81b73c7c219e460a8ea5b253dbc0aa97e967f2febfca583c2ea23810ed31f6a1062741f02656ebb9af490b43c3c935e008236b9be6cf7cb545726a59dafbb769d31555bc1dd747e9800ae5190a48eba0cdfd175ca609be6cb89e6b91ba78c761a53ece35edd41b9f61e0c521b848aab26c557603c120abfbc01d1d252a6bd31fb75ec8d17fa0c15727ae7d160581b3689a365854ef10605425e18e28562aa104c7bd1e7ae2e1dfc902928261833cb6da12da185ecc05cdffd69d3419b27b329819e49e41e8e64b0f9c222ff04249f9044d16a3660e3cf13e1769f9d4f33f8c39f9c491e2085b608c3b430d4ca662175da3d9c5a6dec274ba37e0bf2b0d034ec067d614afe9e7cd34565dff83bb1463a8c0b08d4198bf7b5495ea294478ffe57c994e1c99607a3e9a00d9ea4ca568c81aba09fc418427fcf343ec9d3ce37fdc1108ff017ee0f4a32d31a824a97a96ba6dd5f3fea36984931a433d774950800e6a8dbfd65431c348f14c7762d68277f9eaeaaed15543fa041c3ab72903370e947daa93db55c9dfb71270c5be4f74446afda6c63ea115ef40c3ed2f62c38dc73165d156d26514bb11af35a659a007673fc6acad7043c967e3370d8c5c37f0183ec064dc08f6e2b687b736fbb703f810d0414aa9c +result: pass +shared_secret: 3ae3603ac2c25b00d16e4db451d8e13dc77a3c0fa4f775c74e028abafab70164 + +# Official test vector 12, seed: "db00120937570d62331f4c3f19a10465231eff46465cdee336a0d46aa1e7493df80f18617f9ffd0476cf7784a403ef4f" +private_key: 7445654a55ad6aba3d41506b872c53fbc83988eb1aa5d4ca645854ae700cdf3a1fbb448b51d83b20c3bf82ba45000357d3820a0ce20f011581d2a4c4f186522d568861554efafb1c843296c927a3c29a19bcf7037b497f6ed90706305bfb28b06818549e9b7700a387ce14420c74a5151555dda18b216b0846c5a90cbc29bd623bdc8c74f2dbafff76a1a53ca1b9137ffc687c5304a3faa42772c85719585c39fc923d7c253dfa471ed7260394134c058b8c768b04123f3c955bb8c94a26d4b6b44824cbcc79f305516672311da2b15be23a183c323f8841ec76882bd161844c2829da23482a3ad106225cd444f4463072f096740aa4a72c88dbb9b393289d91b85b20db1cc38096c0bc6dee84a16068a80d759d0d861a6eeb11d82a2b1b6909280c32ba42733d259ad3bbccd3e0bf13446b0ba77df35085f6494934555514353825c33a0ff41bd00545f607096b524519dc3ffd73a65dc1b9ba4ac7d32818ba2b21e1a300da3248b2fb913154be448c76195ba9cee404b0f8ce458540a678984d034e4067065116a4c8580da808b3e0f07d74a2a6a6b391eca57039bb3d5643a5545394057ac7222abbece46e06e4684830aaddd737baf64fabd956712b57add25a462441e362796d0796cb4c10706017c42c4070d8a51492b7c0db033e29761e593927111a9bac35e8e9a12a6423d8726237526d95e10cb0a3bf8b2302882c55eb92a69173b3a6353fc34711b51cba08c3642c449ac9bacd0b2906a2b5a8b53a1bc64b810023cf4fa7c73b3779ab468131569a60409831f32e2d87bcb455c15b705de96948cd9652f30619881879f3d043a341a3239680a6b12645b750e42cb736245fc83330ad7408e8b56bb535b865a9bd79549fbf8ac3468b9e90158b0a92c53a08b774b2caf4a124b8785f26589e65346b7f4469b807292108520a02c9e5da14c1fcc21fd526aeac3088d94666b54cb3bb00e3887f34b0670fba3d167b1b9088651a377aa8098c1f87888655b0bef1364e39973442c1b8fb4396e3079cd244c241149535aee7767ce60267a6bc733de942cbc81e0ab46f19370e5a82a09cd724043204cf6372ac5ba918fa2105c54640e3b9bfb0ca60600ec5091236a44d7fc5a183579febb401872066a95b22cacb9492f14955843a0460102319a1c49980405bc947283f95643d0b63b80d36b7ef29097bcb057926b2583745de85192a65070a0143be745e0651775b84480f7b0ee9727ea738b1c36b3890e19aa4431c46a7ab29f273660983e5eb05810327da1bc0ac5020ccd34bbb4765cd632e3f1b727483b76a0262c0617b3a06439171ace34b482674a967474c1bf77536bc6819bb77ad40b157267c6648c9c05259f06c20ad7b814048c926c52e2c14682b464a4c2740a37c3434b7055fb99efb813df8637bf8b4ab530731f77653ec2ac15a174769dbc5e435ae8b4668d009cffea1716f38037752a007c788ba80976a319b5455bbfc41119aa24e1e43a0ecf02c4fdbadfa60c187bca996f7b039692a6a03439221aa85c145c1110e22d46ae25ac7e1f99c68b7ae69fb22adac7446961e543532b5c10dfa74388a031c310275cb29b4a6f290b97c9fe8f7052ac51b759a75a9e552faf29f10114e43237f3e758506e53fa110488b11b3c1e339a7c8312f1335af7a8a456b581bd61d0af384d0796d531b6af20b2b08725c341b5d38737fcb055bca240ef239c0419598ad303344722dcf2c5dce35bb393b89dd876f9dc97020724c6cc75892f996b470b609872a127a3d73bba81ba14c7bc0049a9bcd5985ca4ad15d20267f6e56088e1512491aa7b51a6e3aaa6d34f870eedb3db6eb03ff44b3a674750967ca88a0a1cb110c9e9566cb20b42a696e86f3711ad407e3a01c269600ca9446a87baf63789410975376a5bcb801303b30cd1df625129b44e388672356132c10b6a6030c1678797d157c55b4741dd925df96374b16b8fb464d4bb39eccdc30124248aca11a2521bb0af5aa53c61f29663b6e103a6ee6940ce05e071242280858a06930bb5413ac75a3df260e070752e1818e12c221a69554a774507e892bd18b88a4672bc2fcb07302a132648d49c08d65804d1da7324fb00f53b44e6539b941839ffa36c435498809c3804685273324147ac41c259b86f5a09781f27e76a1562bd2c206ba3087231983aa0bd65420e2b71b749605960c94319abeb1e80aebf274b27a9237740c07114614658c51d0c5118b9fe6d0064e9b47641ab189b2ce2086293dba6054a1437d00719b5c11351a9901b0a15e4c7efcfbbe9a3a7ac6ab157586c8d5b68b2d9b747b2461f2a2cc3179a70926423ea5aed845407846bb9c5c57534b66a6cb8b480c9a18453e047c58ef00cf652867b474c7b1b62fd7aa0d7b4c63d881b05f6a8d8549257d7b0b7153525d5b295e8bbbf3d36da46a5d425601e9fa8ee7402535d553bb60547bbccb7777b5e48373f2b38f3c566e7b98a85465590ee1c8cef16e4515ac3b4c69f99ca7f3495254c345b0405fcf975bb5cc26a1faa82fe109f8d670f17164f25878a9e8834b4271f75338dac56ca7b4bb3b56ae95444af369c20b582edc204928037434c3c5f8c372fc9449a773261ecbaa4ddb929f148bb6bc471d2a72706a1f621ca295eb8b44a83a4b99c6f3bb04002b2d6ed42fa5418bdca5a07f743754882e2ec966f44235fd3b48c1ba874d8765ee30156cbc0456e610c5b02c8fc3b6d305aa23a5528e77aebf2bc3696a37c438a2a1259054c3537ab8798ab9c16c2b9bec71a861a96ae2387955cb95fc4c984d2b936be897cd05ac3524b845a2aed4bb981dc47120fc9e4c6476e7847ea69755886a5c85cb059ad0cf05b0aac6609104e0449e36815efb9c0b232c7e5b9b80e386a8ab12be22a72e0a4efb447b253c65f619c2c85a878a54457d272d2e9a32d2668d9a02089a434a1bcc4cdec25f909640901ab4ea97128850335e63882f363eae699599a1bafea68c9987882751b545795ed6428162993b17e7a7fbccbd2115c9cdb83c9852912fc21baf53082fa41ae41723a8e6a8e6a3c008dc8b8b6250c7c740ad2a3b92676960db68318c3cf24b855b62b237b97df54c561b72b0bca0877925734d650c0824ab8081802f166d8a294ffe8328fde34b02436ea27086b870009545a71d56ccfda986d00ca3e6931b85a53cab3aa85a2184e55718a9988e11aa2f024076bfb36c0d222685977ec39702e4eb7045229e5256890ad87d84dc8de5c44f8e73c65970216c6312bc22920fac8e24a6b251103beaac8b4a911a1bf62870a33ad9986d81161a3e44b0f5c9508be97324a97107cb15b2a2b9f6f71b80fc7b59d199ff7b04652644f10156c2dbc33ee34cea079e6b718ff4e2ba10858a2b33827f7019bacbb952ca83a8f38d69422431fa722bf31683e3ad6e1784ef9ab210391ee600c2d0c690d739ac5a581c4f5660576bc743d79552cc833222b43e45201888a3ec82194dc2307a07b8549c838bf4a70f9c4f8cf5868710cadb4636bf12a257a57c344061b9f83dbe9324195651020c2f02574a2db4aa4ef527e5a66fd4758382f96e52d84472852a30b49ee7d60698f4b9b6e9003f475623e345e1db767b143bd30bb5273636ca7926f434863ce41813767082873ab5365dcc72a251c035da426fe6db4aa1f34ffa45c9277327a7125c866546bbe22b9c09c054e133b3d8b3fbf18832248e5a3198c89794c5ba4e6486574de79cd67626ef2953007431ad08895ae499cc17111f76c002322a6602b677a922fc450971fc90c0b8ce16dba195fa80196569fe8b87fe060311867e6c6abc87f2351f4b0da1f837eb7830b9319498f36ff707c80926158b84a934400f63911b5650c6d205686f7bb7d415ca9dcca9a94c5706945580f49eba773067eac6c989a8e1d84d2586c58e70793933367da73ef0509e27a97f03c28a10086d782a3ef2251d08793748357f411200b5803f0c76c886b35bfeaa68544aa038374f868c474f0a6df1061de88886a1241f090ac4c7c17f6a429f5ca400e8dc98554c56363c8fcd728a1fab7c0007c67915b7d793c0ec5514c8f6a394c8502ee3c63b73b26da015c370826278aea16ac479884ab77a2d3c0b147e93181167bc1980627b46b7d06509d7725cf1085850a53f442c226cfaa24c8721db0c137c7a72b5898cd2137839202db535cd8ae76e42219e49eaabe2fbbb643742ed91551cd54f1de16f63c953fbc7b5849ccda3167660fb28f2a6ad8327a6d6ab649eb22ccfca574733cf01663fbadb3be7c33a482c13e50027d76a134e114c54380c1e84255060944dd10321b29149922be789eb0a8fb7721fe98a1e0bee89476e7efd6ba100e4d6c896905fc524e7f98558672899468fc0a35e2a8c6fcbb35b2912e4aefb8c396bb9738e3c16c95ccf758e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c +ciphertext: bfc010052e4a98535398330db6929dc14274ec2eea49137079453747e20d8348d534940809227b777a2bc15714782c05453f524ca3fdcf0df3ef076133b33a8205c6efa7f0998f5af79e7ba4a60d09b82975c6bb4939202082da7ec4d36ace0474ff661f27c127f088948dc789263925c9e66366ddff38156a7f29e4966b14b8c97e7ec42a845528ca6b6b3184bca46a10df3f0cf97f205f3e200028655002e95ddc121e692967869914900253f021a2ac4f57ce80b877650ef17b255bf6ebe351177ca540991e5c9e1bd2f11d669ec68e9ddcd42acd87738aa5b6907f957ddb88972daac3ad492fc42b34bc942a54a8e95ae810114e91e56bf15f2925174d2a0ffcdc143f60f32ed7a78d1267f9fdffd8cbd7fb786ef9080849a96115cd5447a0b5d939b2cf7c72c109e3a1e001e8c0294c6cde41eb8cf94fa1984ff8a69753b5169d83dc7daeba17c044d1ac0b75a300d604819989e55334cfc159c10c10d57b0d4247bbe568831c8446fbd06e61d86b36cd6cb6928386993420e6e4cacc75c302ebd7fbf68c26e4e47ee9b95d55e6fdf84ca11a20109dea65610dfaf2409cece66b5459d5ccdab137785985826f1ce139ec6a85c14b7179028e189abb634ddd65e90e24d0956185e10478f655223a12c12a58bea556d1ca83442024590e7552ef3de5b507d4780d2df02a8d1df58ffb198e7ec90105260c3b4690fdc3aa3eeb29a7c35d70e17e95ee80dd29e28d3f983af8e56a8e5a4e342f7755dd63ac17d760112ae33b8ff4fabd99ea81d5bc055ba05b14bb2d1bc5df6535c669925f66bd28c36e3e138a43f5e52aa8e3bfcfeb6119c2bc2ce1f07ac342d376df5955dcc82c5e1ec98053617dd269f94218d7e04f60db5f6086b517caf7e378e4f997871002d13fb034d0431ce0ceac5790f9ef66fcbd576e483da676dc2656f39e13ef9e53b0f3af715ad68ed200c153c3d4faee4726e40281fd3a8645d5c44662ed4a0cb2b08a546e4465df1a99c96d6d8792a49073dd33b265bff415cff1870ffc10baa701d18acfac906b93ff266bb0eeff4f9e25ff31bac8c8d55255d5968b63376236434da60619240ede97dc9a8e465993cf6154ff9bf26b0c30b5b090742e80ce28146c41d24a1309826a50f1c0eae9a92741d87da56c4a3e5565a205667ae31e284158709d3c606e4019ec5a0faa3dceb1125f15f7366e03801974849d4393e8ccc539f1731c574a072e8e1f283d2a58ba2094c7e1e20aeb9bb7eb597a2af60a51de419ce403defa27b952aaa1ffbb7884099d47a1f7fafe2bef66c2217c39b2ddbd0bace0e6399680cdc3dc1584bee8803025723a9ce96861d5ac18cd3ac86f88e6cdf29bea502845850913bb4ee3cd5aba6d71be09a6e8baf9afe06a4de80a8dfeaaf6289f484d084a7c47a28235eebaec311feccde4f2564665f7d100fa728e608606b15f3a2f0933fb2ec3508a329f388e3c19fed26e4d5fabe83b36ef8441d0e6f96ce9cde8110cd3b208a24d15b71877d54a7b0a9cfa3724b05d8f438b1d70ed5811ea82609a7e3482af67d380e8467eca9d9b03a0168240f7634f1a7b976680f877c604775e877fd07231ff766f22cebbc7971cb545df0faa77d78c35d1ae13439b340f30436071064e18f97399422484b12116ac86a42132cb044f4757623d70f7508431e3f4fee1be9d13e77d2a98437067a18e0b6dfd3a99cb43aa6900382ee5d3441cd39749d7528df82e964e4b42cc0b10b1fb47ae4cb448a57304fa0501ea3c171d6c8f82c542e144a56d7081e31fb0ae0592d9e7f1f207d4465584996e100c3cb7760f95089f73c19113ba4c683174d8a1830f2e2f8f03db4b9c988b160aaf6b26e1b49bcd0b45b2ab61338bdeba09b7356a647b77d058e046752ceb67bf7edc94f0939eab75135dff909e164c96de4e4e8420f20396e04825cca4f09accf33cc2fc313d39bd65f9441b991ccb9bfba1c548f434bb75824ea31ba21e8a0ba90bac70f3ba7e59b0411fa4bda9f68db7f2df81ce7ffacc8ca1b7b39a2e408d471a3df57f39bc662d8ef050c1638441fa49d60bf74be7dda58cea679f90e91f8d7fdb400ef0e8dfd0fe2e9a6838f76101e2edf3fd83b3ed722b12ee03d0fe632814466806b882581b5638475f160e4f8f6eec6d302f8ebbb2e847aa5978909f7ab1dbd57170939a65e74c27b92235ecfe9dbb67051f763680a0 +result: pass +shared_secret: 480307819049683defc30e7eb2f711a150d8c5503e52d93e95875754046004dc + +# Official test vector 13, seed: "bd26c0b9a33e3b9b4c5d7ea32d5bd1fc371015be163c86f584e49bfd5362c8d8341161cd1308115b2a03b7e5eaddd418" +private_key: eb8809301a6603d8822f86b6b44286f1e1b83b121b3880c35731a1215722562a2f14d15364b7aa6ab35503331dc63bc435f31a23ea1a7dd060195ab2626245fe2853a88244b7522bf9fc39a76b188c7260c9c2829f7a6e1964cfc8c28f45889958731f742aba74993c2a75bf4557c71fc5390067ac00a39fbb7049c657056b168a83899e94bbb38adb1837b53a32e74b8eea1a2cc198105cc32932bc5d4071b06b1a6cb7587deab9f7528309a64dc5d696ea00575be8ae3788721b061e6f143dfb73bd9e2bb04cca4074894b067a70270b7fc8762772890ab8d3b3a5545b9c48be169c1fff82473b250a25f15f0bd7b142c97a3400233c57b8f5db3db25817880a4490f04977a605cef4c151593bf769100eec456ee7831a526066e757f7844f660392f6f91372dbb0b8a3325a498bf7291b3ee048fcb61db8ca6cf8fa0b98671894e95094b325b922103b564189937c1f032488d868405800264781a702878268a7c19b8c39899262c246a8b4cc91eb5afbc8765d23a40b40c49decbf917737f14765d0e7ca19879236551ddce824c22676f754444a829434a01b264019d970cb44f1b8128483c549c329288c9a55991e12bce3547f22d4088527a8d1322fce360bcde1309205b2547b32e917a39d4846e45c5d4d16aec4435ad8695ad384236bd71336358294652418a33839608230270ae247780f16ba3fe7ba2de37063b66402d360601baa068833bdf2325f144aa6528db92225360032e5199a8e61ade5087dbb741e2903c245a1c95470c795bc0ac363806cc6be3268cb51d333100a21f00917bb3479fed22f3d263763b406dde76514e929f5c604dd7536be6305d6035f31790c40aa6bb5f17ea2ccc9e07c6262878ffca72d78f4208bf804b4c322b1287011a21dc54b81bfa22bc77ac1a0db6dea6c4cb7ec49d8858138f45d9d200a52d33d13b533cb6447910cc4cc21a0b9350220845c1c4b64b5c84bbbf7c7c3a4932000559e2b068d2ca9bf44b0f7ea760b225a37e78a84a5b14c5a2fb926ac622b8f86c7ac7734a82125b18f1575fb3968a4634d9633ca7b0a2d3e56580c34bc3b13741406be06396e66e64126888055aba9c8ca2ed2bc344a38a710dcb1e7d72d70a166dabc79cf79439f5340225378e7e062472584a477cd67c812733b5d57127d6cf9a6855b9a4479af6870a6090caed93a642bd91224f6b1d1f13b86582a5a7c227bf21b1d7547b2dc398fc88158e87571e826baa55933459521401c432782e2112d1fd7adec475178aa2a3ce59c96da6449b75dc5aa37201ccf404c5efed99c7b266a97d46494f1316f0781ed830da8484a2c5174403c0efc2b1010d9559329c714771b7bc7023e9c89e3f0a601d439b8bc2d3ea1b01a991fafb409ce994868ba5ece31330118161ce9a6c08c5f4c65af7334920b659b56d2c658ca4d9951c4c0b93f43a91d580b81087838ae28ba99c1b916103a91709b384840fa4a047eb94abf2c96de847d04e2198e363d248921a2537172735537878bb65b2b4eca2d9a1c4270a8a00ac667e7f9192f7c46c244b6b7676086f18eed246bfc10855e9591de3415142a8621f98170fbb55e608e10e38b6ce140a3835172387ea722339b1c6598e53d7fb694978bb5a3b5cadd1822374071ad6bb1a1569230c6042c9cb9e205104bc6827d3b9b1912a3f275cfd31a28b7291d4875c88954a36e078c9f72956e874426632a9b2b24132a1a45306a4d8caeda6a2c401713d4176c694378698a77284b7a9dd016cb332da7138511923d9f3850ddd5c6ef5ba28c357ba766b960e351df862db600320f996943e10046891f27b2b243ea71506b755f27c032690713c42298a16096d28cbce4051633974f02adeceb95e1bc264c45944d752e23b000419c2b88108a0320b3c86204edf5914f324b221bb9884499603137342b8d102b96117c88d6b589f9545b639cc18fc2c89d144107610fada81b1e2344a5cabb357acae302bebd71159bfc23906bc2bc781a76a68489a73dd5235738b06f8bd54a8771257513b6e1e74dfbf774b1e469e67086b84c1a6ffc274b73633903aebb05911fc7b99151a8a6d0abe8aa466473b2ff2155ae2568c23576f70648676bcc1a6a19e880267f139edeb973a8a9a59ad2a8edfb5cea9a0bb39407f5153633651904e40d7b863a34774ee1e401a9a24a960045d4537e5124921355cce831936f307c7cd807eb376ca1b640e7a76964c0195b6848b2cc9f832ac0c11c3c3c7290ee182c46bc1608c49e809b1c24a7c738845e9ae972d70c5ed346c46ccc73e0e251b1b57368b96dd71cbda55366585011ee659a2f081a7288c873c8a98964131c078aada0ad1662bb0d2b0a1555a3c84555c593231d167d378ba606257fd3958bc24b47e8380dc370c374a869413547d0703d28e4b5ec85cc0c897f14d5b03d6520937295183ccb1059821c2b866e755e24286634ec088522941516c592418a4fa872b2f911018843d7c877da76c1822246cbdcc046695a1e93aff063a577fc0eff56b27a2bbb56f76dba2b34b6a6765b78493f514661a4a83b58b42e4b96b471068682bb73f535e32c8fc7964a978b47be9b23cdc2b33ce980f66a033f8154bf24b73147152f544939377ba2ecb5a288276c712f2317ac69292eea9005a74a3fe336aacc4257e46395fa9a96a3fc9172b5229c393021e57265d017f6e7a5e92066b459199957cf4dc653ac222bf0b953c3c4ccd5f7463de539c024bfcc9475cb3437c22502fe16b909f73b6e733c6dfc6d87cba8a13220e823a46ed900c7649494006766a23cec36aa46756d3a7124bffb2af34c586847162735ca2d1b259f5c1eb0912afcf6846641984763266bc0add6d60fdf5b6fd87343a5d59c108cc663d8b700ab1dd5c0ab60fb66b764201722c9c2f5b2ce9a88162c3135d44ca9a735fc90b35058bbde332063820f3085cad54c4a8cd8708d43b871ca2b41d0cfbbc066ab45bae33cbf2700c67a5a62cbf1ca19c2431b6c52ac476fc2ec4c00ea9c14cbcee11b1232d523aae8af555958c3089c6c45b47ba58cf1f884e77893fd296ce80584a76abbf2330ab058c2af770e4468097cc20748a188b6620f128912126a899d7b0df24b067a73c4329314c3f6b0b9b83fb450414cf0a2ffac6fe2aac17359b20288a14272a952642958058f04b24a69b93492bc0dad67a7552b37f2417cf7e5b889e97b2d02980f7336f8e0198123c855dc1a40bbc5a93779c7c7be7089a8440214b3542341e56499ac1f6ee61b981705258c5ff6e74637fa0e48556bd3542ee342891ea4b4dd5a4982b0471ce63d61b3adcd1197dae05627c5993b502bf3025f6cb8792f32264184b362909be8ba74a1b6674e253f28b086189115129919821b867cc84341e3ab43b350a5c79d5af47b4cd228856189454538d362049c710953f33678c28f3cd9812d731aa9f95004b94425c60cff24186f644e749a6963b77760ba491744ccadb72e23653a3a08a1f7bba316a9c83e3113cb49022dd2be9a4a69c7db6145377289c921ea0292f3e4ad84e99ed72696dbbc97a3644478761d6083aeaa59004a9694d545835549ca3357cd9d63007cdbabd6e1a0b661113ceb370fac0da48b893b3c8635619e79f4ca14431cd9a1be2f34aaf3bc059de3a3d9b630b5542f38a5a1712c67327c893bd64883b7701636b0576223c4868f2195716c3499a4295b0387715c9ca4feb3b1bc08c6e09c1e809988e2f414f0b0cce5515f43b50c2dba028e9ac11e6368062c360370bb7f5655a3a75c2e7aa86ba9b892019db150bc7dc881c5e3b24e414780512bfefbce95c914cf060a76fa4c34359c634a1a11c40ab7b56af1d19e2732ba6f3cceb93cb31e08c93f2a9a33841d667079f1715a56013c0e68386b639e414540cf2b13650ca9378234b94c24bce9a9cee8c2adf4356f246dbec0bd9b371ddd296ee623603edbaf65e734504844aff0438d163b27c34d52163d736bcb42b0a1a67067a6e84bc8f849531a631fc55046da2b31e0b99b938d4f8b239384bc2ed54e46e17e9a8297c2a16775f77859ba69c759638fea8fc2057b5105952b34058b329ee7b2b08a69b00962c31a5106a281890ad6257daa8c6ad5854eec7e8a203cddb935ab5545e3e57ee5f78925b1531e5c4593a7afee319c5215645905b50cec48961b2b6c1727b4794ed382c66c11b67804b18c3c0000868ee4e3ce4e9790b681161b2cac3f8a1a419892608814aad65880e683fa75ce66335831a7bbcc236dd6f2b8c63560ff1939b2b56b97e87049eb4c65f42d640c0d8fd5841e48bcbd1815ef0c62da099f5478bb93198ef28d89ec6714b0f142ece80c6a6050d3aa936c25bbed1dbcfc99f39b4805782b5bfb6d44c0e7348fba37d50b05031c0489d4294be6cfdc6f4146740e54fa5d698aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b +ciphertext: 7cb3891440c7d6eeaf5300ec18a786e5179b97b2c15d1cce3d4e5ff49e6c4494c165bb4b5d822e1e0d0dab2cd477816452c21d8efc981549d4c6ab18683f19c29e3a938ac1d6c0eb18ad94b9e1e8831aa8e66455fd0b91df49384465d7ffdccc9e023584089e7e30676fbaa0762672babd2a360a8038da9bd50c0fca9a5dfbd0872d8777f829b3f17c757ccd44b22af73ff4fee09fadb5820c5404154ea71cff70fd5b3689c52c0cd76dc0d8a4c2f32d32d9a914453be5ad2a3e14e3f5d846c92d50c4d65330b1d15d88d7b8f466d31f3f51d23fec066ced6f751495d3737bfcdd87c27559b167597d0fcc90e66dbd5c5d92a9daea58d05ccf286e2c27b04ca589ff454a078c4b5b4e5110d9d5e3752e9e8025341e425099a08045cf7154c77a4204280feead5353780c65e6b799fd26eb26e1dd50181c9bf76e5e2984dfb0deb74a4ec89b9a7e12f6e124b2ecdd82fa6d34473b9ead35b28f6ccd9709ac1aa317821bf3e92d952f39d9bf98811328698fa2faed3d9dcee31e334f7838fa82c397999bf7372f825cefce367b800d3369cc20161da21ea5f49e9c1704e3e9e6e87210b684df8a038b2143c780e4cb7bbb072a2fb94463ec095816bd499f6b5445eea99646ef1dcf4c331671e0948f27bf8bdc92616ce200739c86a3901003002cdf4f6c353a0abfbaa8cf9c34a8720835e6b366be22933d7a965f97286f38e9e8d21620a20131be8b97e7a67a2ef535f893124a9d2580222db771badbedee98c79d716bb3dc091101caa5e17d83ce35bc364ea143cccefdecbc0c4bde06d47ccbf59f3190e174c738f10433db16355cbb1644ef2ea8f33ae8ac8456afa4f488ab1327885a635fa2bc0df50133f053882d66f5fd3e649905a3d1495e41df802c216d254cc519bb78c70cf0fb0d28092e7ef4329c36df72b98f37165c229722d5e643817ebad995c8a361b43b7a6ba60a645104ffb57e05f70b65153965f0be99f76f1f798f9043ee86acbbc8102aa01a304014f082425c86e88f975272fe2a97261ac233e5b2491f0113fed7d6f31582d51f5bd27ac0f2f6a66c5f584607a8845a88c57d3efc64e07bed4f31cdf73c63bdc387085e2a50b30c8d4b393e055609680a6e39e3c19c764d3e4f01a536e2c112f3ac35cf3fa0ac77bf2189299f0de958876b65db62ba3d1b6b55b3f11321aece3b41095d284c4c23a6f86ee0c68e7517536e5f7fe09c6b3d543f0356fb98a75c2e06a73eba011679e1173009c9a5a1b7944ce1749264a2879dfc797edc0616862f582acad6cbe3615f6096f5b99e5b339fd9109b56ceeee55752145e5a6660ca4c948f1ae4169b54563f3ba206202f548fbffde7e505bcc9fae4929162b550bf5fe34af98891d57109b19bf31c57630eb2b9532df07bff6097da78d5874f2e9b2e5e01a35f904218771c8dfd6d230b4d1780875b45a1f846854cd02c43b76774ca8a0d2a1f7afd7df4931c1762c3fd5ae6b401e12b91641e64f3203159cac0aa43930c8fb14f5a9c7658a28399e9c32a77e738694a900ba0c160d8837b587be3042f412181bf2103b94329e2e143916323dc8c18d00d6e35f6f7e2441def99273d36cfc9685f07a7d34366a92e1f447e463bd085982ce62304a5e3fb1830b59292e94f7a887fea83d7bc014c94b2896207836042394ce50c0e7e2c0c9de867641a22e3c421e5b60a58291862c91b59e7bd4f90fbe3b83240f4b28ed38cf3b8ea899df3e569730c8a7a4f2a9fbec8cca2c06661e9058c54be3541c73ea24daaa34a659a564c51aeb2234140a5f110dc40261ad594c2121780b956d039d23a8e3a1a12aa99e5fb88edd774d8e9d22b3700998f91d05ed60bd0a89a3224c322686f27932713dcb24e363955a548ec5c625b7e30b6dba231f64934a9431336e74b0e891d5e1866965531a84761a632e0eb007095b90e8f8c409e051d0f4843ddab0e84f2711e4038fd6e331f53ce194823f4444a77ec73b082f73160fa266c4037fa02e20a2d01d617aaf7639df69a8fc83c84cc350807dee143c089adac7e052384c2f1460e9b3f3209b53b3e89156953255eab169715845f458676ff656689f77ba16ceff3e5b285c70515a1a5074231a02a97ba8492e64c70971f522de003129c517aac123a4509ecac5385eebaad022c7c5ea1b29f1ba4f68e7c5b88528b7731d1b46528c579d5346b4741ef9980e588 +result: pass +shared_secret: 8d0ebe7aafeba5ef991b1647872cf097d625a671203c53a05c4dd624c087855f + +# Official test vector 14, seed: "e2819ef86853bca1b9dee7ee1c1619988964f9a913e635aacf0d96ca6e0300d084329dabd8f149e24176d22757404260" +private_key: de2a5203a614274820ac186bef852a92160817520323d112ea9240ed0bb381db4b012a4282775c91055800516cd465812722c6696165d80188c1f7bcf2f99cf18124a2905b6e3a69185c0a20f61913402bc2622a5477bd455046a032823da983660bd0aa51238de42a86fa9654f61ce0ea1e8f865bcd9407b879cd54c8520acb99b74abc1a6a23b767ac7c9449613a4a4b5003b2000aa52c17cb6652ce133abc641eaa34141feaa745c06ed7a1273be6a66eb6779232635c22b4030252ab30ae3c13291513438f2b19c4a10cc6f884d093223d2b12e460b49c191adcfcbd4f82c67ea936f946391835b2752ccfefe46230d84245ea8d8c799eec979f98409f51a65cbfc62a8c3a889d33a72ea24c96c094257104701755949524d5d4abba117a098b16da589c47e5415ed0920c4b2b5ae0bce2616c5781a903953d2d768ef5c58431984f671a3b31953940a6b52f24658ce943fc360fe9b0c9f9308caaf7a04e3779ef5ccf99a505b2b27d1c0b68f9f2254752820f6b721d55be6a205b3c832213d8cc015a14f5895d8ad17a14501ece031adbe36362b1c475c7cb2129863838ae80ca94d67007e3b5668ea415e5ac3e66d1aadc76021c4a47c1ea8c41423571a553d041a07096ce6548511cf08e108893ac1c0ae3990559b21952e5cdaf1751052425f483c88a3356ea567c717c75dfb70ee49b0be7f9cbf172ab7dd22172d40214bb7c9f22801c3645c8d075582965eb02ca9dc68dd6c3798d28162de30da699a29c216220e35f725a14b0708349e4c87f726755b68f632918daa2c83836b8ed34a542daced4a46351f337b16516b853bc2a44337710043a58a83ba5870af51af1252b83e69ca81539bb89af01526dfe7162665b9347d441bdd77b2e4a3665565307e65fbdd341b0b154fef5aa7ea530c93362a0a4766ad13307e90d1dcc2a2a37746e881d57a718e2964fa80080d9f28074121893c95ae850c61028a6e82caa571a63b7d85c37290b61ec6ebee839da040fd1d5b359d9bce5ab54462242eee31892030f7402aafdc1a2575000ad636337ec69537c4b61669547859875a2b94f13aa723182f9424e8a95051f10148f470f1d04c9c444641d4ba30ceb312bb89dcd04be5b421fa5d7327748c7a37acbdcd73589a94070635ea6198f014b4471106862ea794d2c8eba828e95d81f3bd226247952db967f72aa44311438d4d995b3c6ca6d6233705a311f095a6c9ca8cec042087c8071d00ed4acced97053116a8928981e61c5b3bf8177e4d99b4a130999066729f2875da7462b7827ca00980eb96d3ada528778cabd214dc0969ffc38b795512bc385921496a27b1ac7a099989a22c173a06ddc4b81b2365a9c6a160cb36f70fa4ebcf22c77e477da74a7be867394e5168b744dc03a32ff21221f877421a4aec9e9a2bcec7e46c88c2ef550333787dfe664e767124c5b0f09f8874d085324fa2eee6a127cb2a3c6936f649719171116bdc8a6db265c387930be3a1daac267b838640d44c8ba75537347735de517582c9d8da18666942db6951a4a7a2ea8f09768d026734c0bdcf7983f877e29c42f659873114669974c9018e7392c4500a45bba4f3c834275c84289c23fa13ca6e927c128accd480225c79247982b811b885062022eda9b448061aa908664400acc9b7f34284d98d526fb96336b408845d85c4be2b0215b0b32547c5f4b7e43fb465a358f6b1297afc22bf08b9307fa8e5a1361b03882a26798106526fc136cf93438b03601d48a145d58998f087d0c4386afa0c834a91ad3121de0c57dd7c117fd339dde05bc09e0a157c9c638d8c1a1d10687fa3eeed68eee7b3b2adc8b970bc0a0820b14679462c1113221cdcc045906618dda5cc340c448ba0038c0bbc36de75c00fbcb11f55e6532504fb2ad08e59aa3c65702547d04a02c5da62286a2053a75975c38c865d3bddc9506fe7c7081345700daa716da27b789590360b5c6f5b9f964921b7680ed159899829052987536f4375a8c5ca9e322e05a3d11f58bea4b1de4191667e87508ac279f4757a54393130b04675c312314218ad0c98038488bd501104989055bbde396cec47790b462b13b00a625a732959157e5715b16f4aa25582b7728c427c5758d25191b5b42c33b5d096ba301075d7c515ad195aa24e5249c820c83a86b66536c8fb371772408729447f8f2bd61fc63db224d868b70c8e8ac6685c8e3bc2375049c25f941169291c38a0eb0f3cf027bc8324398fcca99feb47059e87db1c2b723522d3f09cb8a19bf7b2b35db5516a652b837fb94a6ac6701c479686ac758c381fa242d8e67b1e7f6b0cb04cee5fcbe2bc5b266dcb55f1c72b091039596c4e4e50db8741763c35365931bb37a3552bb3223938c6a876e54121fa489c502e14943aacebe7a5e7747bddf5c6e916095bea36dfe8059cac7adc0dcb10a64bbc2812bbceb001e22cd5438183f9b3249a27566098af16782c6b503b987a6a5896c1bd82ef7d3c5c77b82cc797bd682849826981187a1530b4fc07173dda9ccb8c5248583503a8b974e8b1ca39b1beae9ab516087a170ba4d12ad5e555f77f27c55c519226cc6b3246ca1328db15648ed4394cc038245bb7d9ea48af2350f0961283f195bd51304af6653bd133e241729b5a62495c8c45583cd4c30bb1c538fa4f86afe799026f86e1de0024ff13ed5713a8806cb9eb6cec9c94c4fc4abb2569d9486507137733e681a5eeb479c8256ceac1ef823b34995c65cf43bafa250a874b743388cb6541d8346071f075b439620bce761cbf1848953200543177e0154c9343b47ba3f5ca025fad201bed145b7e8abec99a404621a11372c930713a013b0cf4b346ea6cb64620859d458d0e08b5d416bc86552c79b087f63539303c6fa96aef18c6a61dc37e1e8436fac43763c9acb9b5955157cbdc15d356936cbc603f6eca2e2a53163591b3d2257d67335caf60b4223b8c0cb7c54454e3b4812e5760848ec0babd9a0d7da9e83719bb0d7395418c44d86bfeff4c8a8548cee6780a5388e36eb4f5667ac2182c213a577fa2c4616814ebda8ce8a1c5851e0551d356471a8051d179de078c9f12163b0234fd729c9b02c302997c13974b47aec7573604d8278783bca1a5f184f77047f3b1861b7e1c2dfeba290e785d77ccc37e0ad03c199322c475191aaaf87300ea43f6a956b7d03b338b147cdfa14467b2850a73ba99c6b39d89ec6fa3052a9bfd0f6922f9b37ae6966c940370811aad1572039ba3365d089016c21fcb64fe3d924f805336d49683ed262410594f8205bb2649082642314fc7065cba9b8c4421f1bac52f69ea8f96093f89342b879eeb785756587a4027680119d41bb559c758197d360342bc3845237aed01aeb8104490b9bcb4ac158f154b347a49219ca5a401f90d1c1f4f7ba521bb33ae0610767207f3c9feb991e7ce444a42b33ee5a14710586523cc98aa53de01801bf383e33ebc03900678750734311c349cac283ba827fe39f976b3de28610113291f61325b870384280c58ac9c48bb65c5d8a672c86b218e8a706d3b87f2341b95199956886ee0ab068d927ddd109af491d23e991f4e8619e4aae99053c4db3514d380133105ad60885a9fa5fa80c144a3949cc8c33b591c776d5a7a6e9c8d12417b4c1661c867119f7006e6520462b63e1770aa6424dbec6b9a0c2cdb8c8945d653e62c790d7857681b479fda12c8894640aab041a044d897c565ce882aeeb8caf42630e10afd12293fbec9d7ef259bf881c92cc7706ac41626bbe1d17373e57b3a86a3ba62cb6084869b58c659371c110930b6c75626651971641a899645846f96081b00f6c29bcf8c646210676bf266467d90eb393b64a1593b4579adb0b549e6648da5c9e2eb3bddbc78c468912dc674b126acd4448bb40bab46ebc8620288253156d8d39ada1b639c6f69d34e9a25e6b6bf4241bc00b5968282bab963820fac7159001fa414dbe2b94a74158ab43c6a43519f9a34a716cc07908452e5a0a517138cf46220243bf2e27ae78835b73e0720222700861136b2a405a241e58f37f132c588a1102a5344b704619666900c73990c2145497565d09e984f2689e315ab204c59a360534a641228768a9f1581532ea9d7717b8d8069158605508a24ad1c71fee5760605bc2d619b177985ce89cbae0ea5ea335529a20225cf83744d807b886ccd5cbcbb8393d5bf144497a4c454a2ac7589b5315937345cc02372fde21bec80c0ac8912d28b3348df2a88c35b7f384809f24665600583530226b50a6429217ca211946ea66451c9092e7c42b309a922465561b307f8912f29a1ee687b1d96d8c201bdd75a34e09d954a4267f21490c0eb74ae98fad1b5a3b5d2b9f70e922599b58af4bf05a9815c270046161175cfdbc167293cfd50e9d74851ef1d1dfa2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a +ciphertext: 98b43ce1b5e3f4f7627465e5147c9ae5a547f3c748a683be0c41c952bf9134ac4aea57db428e0c534c8df32bfde046a4bb694ceb92ff9368f22565c10965512103c00604141bb05572e4d9ce098ecaf9c610ef9f9f371991b3ee605fcc8562bfcb8ce12b559ae3736e617846b75449a1d8640d8cd81b10e0e1e16d37283fd693876bedf41f4ad3acfb2c7fbac12f81d45dda3db5a0bbe6c79ebcf83f7328e5a2a477dace62f9ac8e8a82211613d7a59a0ea5a25c92fc868f1f2853b030028a869e8035800bf110436828b851b91a9af639da94d6dcf5997b42978f02df5316dcb445caaa23b57eb05cfaa8cd70de8035cf76be6d812e4e48e3ee10d3d196f40478eb06b944f6696bc700953897498bc73020cb6d61f86dd8d0c32d86e875fd67b3d4a506db533ca7d49c996facfaac18009d8e5876cf108c9f64f14cdbe1803235ddd328b1de2eeda09e1b0f2d46137be0ec466b9be1790736d38c317c7db5291accfe7003aaef4bb4fd6c77ba7acb36c9a7da91917ec5989559516eda9556aaf4059a31ec6a4b119b80e35a1d974dcc1cb12378c97e7b98bd42fdf0d5f6e1612bdd81246fcec86ea81aa635d8c1e7475afcaaa0566ad8f1c2fe556c0399da36bcff131b5f5af6a93877d4f3a69e1d7b51667bf90c665c86018204d496fea4869116035efebd7b7ea505f77fdb6fa8e5b436ef053c6ff72d4f11a40f7569f46394a6fee11092e37fcff1b881148738ec0eff7004ab9bca6c3971b1514955d6436356510018b90c1954cab172ab8cc852c0aee45f2d44bf5e4e5ca48d0bcc683af70d9fb5e90598c81e70c4ef11ba0fcc3f3bc0979fcbc3555379400a858e2ab05509a207a8edd852c8ec0b64a616cebcd0c90605d10b451bc2ee1fa6c4320193002148f7e0eaf8fe480d9f1865777515905f5500447ed1dd9fb96b0da711bba70efef9ee86a3c1eb0a523ccea666d4dc8e6c6e00725cbaab126cc1d0562b4d6d3d08efab09a1e07ebed940d74240e12c171fccee0a22df8dfa768979e5b8bfbff75ec945c0d86b3c8bfc41be1bec09c1998e4d54bd9ff309b1b8a14123bb963c39902478fc70010e43dac70cc799f439b51fa0a56f53c0b792931695820ae1aeddc75dcc4b8b695409e4d5d91c5170dc8852a68c0def37a69e0e449bff582e1ca9452b9a3109800349d3d8f648ea219e22d79363bb1327f459bff8ab2a98325b3f2ce2a16d66165f3e3a353d82a254177baa883efeb8e2bb4195444f90aa595831d059988548535c0fbc70a3ceb954171000f300d7509f3c306207a92aa5b961891417e97ac706eb7be17bd21d144fe368449fb0104a0f84211b884314fd894b4e227c81440b37e66962b80723823b4f0ba3584ff8670d65e07ce18d1aab6058a1f42b33ff9e382eaaa8a6c3ef1bd8bb3ce9bc940b2e9593d54f1cb6b8ae23488c67ab4e14ce11592114373024ad4fa3f946a187edb673a28731787960e096a00b956acb5912378bc794179306763661a8ee183cdd786bff72d946d53207b409ed9f76881c2518163b0215a78a3a0b3120838ff4103192d2e78bfcbb5397911c0b3ad281762fe4b760f5c80f6bbdd55205032b60aa26781c23a18be4fccfcbcce7b4ea8ce9d285df0ea24507994826770387ba75fe9cf229a569970046f7c927aaae551e40e3c56b2c00be3e5ad6c364eee23cec1f4002e9678bdf12c52300e374be3cde9a434dc4c015c985d63e36327ecec520c0a7f7ce1c92dfe2b780a180b42b6495d1b49d83e6602f853462c83817dec59b9c67ba60582f20b7d7362c04b5f50574fa9bfc5221087e94b760b6a84788b4c563f5c8e77b173098197e2d23d060187cbd13e11fbc252c7afe39b3d84bfc8daa8fe7b208bcc694ef7050a6d47dc7de96f54b0d56017ad92f2344713486bd9719232ea99f9d049bd9b1f221b7dfe705fd5a29d12f1a08f4d02f4811683f3d7793ce079f5ea02d6a2b05e2f82348ed7f5e2b94cdbb3eb9558e9fa6c6a538919cd5fdf66d7c56358740c76ed0af28e7ea769a715d4e56367c9a2411759508a4f761bc4a76c468345009731f2584427f648e8971847ac724282a4d6017b4715de7645559218c3a0d9a96ef78cac19a05284d98b7e403e1845fbe5a2c9055bb779b6851d7321a2489090b2b1289298abe26e98fd1bff494f021485114a8a44efa64d6c1e1479a36912a6dcd1449b3 +result: pass +shared_secret: fcd665fd50eafdf62b40f8eee25c6f38b5b4d110e329399460596d4f5c0bee30 + +# Official test vector 15, seed: "669c4ef8a051ce201da65fc4bc34d398ec1f806276fc5d987ad71d93bc12dc8f107b58be6e8422a0795c88cb9a0e7488" +private_key: 402525b257c035fbc56b1aacd731540e40999eb1a2cce3487189184f088a4bc96d9dcc63ab435bb6e26f78a90ca281b436ba7b222cabbba20b4ca3223b1210b5da1c7fec7e64d27b9d7abd831417d8e384aa500a5a986442c767eed412e6499825ca2946bbb83e1a9d07f14429aa46ba598595dc4639da5015c96535c90e99a1c36dd511daaa713f741f3ce3cf8232cb5ff403f32c75467440092a4f7714524b9ccc3fca9503c50cc8d676758ab660e2742930bbb061639549346b9a67d82617a33283061011844467bf12ad270ab2e047835ce36276051062f46f32e05c3af197cf7244352c03f423305c6477a9b606301b606c693ea08196a2c8b639c21aa641646bd3c958f3b6da0ca8234b17ead33b9a855e2b0181dde85ae8a33ce357273583cb06968f07f6b52de50d6600973b5b60ec3702c5480d95820dc0aa611cf80891338b5187b74d7046906499bf7419f2dcc89f7808b5557915ec82dd90102800a26e1ca3503b8844416c688386c3a74fe6b11fcbb6293f9c65fa247c70a40d8779056663bf92ab39b2596a17710204b884765c5c90f6b61b660a32c8158ce1817f45c2d9c769bb203acea434817c6f788482135118623152c0f38ff33733013a3fe5898f741986a5d322f679a7c0a17040b4cfc0f65e0395bb7d5b698e676db248880791274ea868d13009e289951d3b80d57385924a433a83a42d879208072a2a5b563b171c9b53c263c6b233a27e40f6b3205741373880498552afe88132b80f3849c937fa91ebb3a0770c5027a7065b961365429a7685bd2df71792ba893cec50bf398493d0676e002ea5a9054f095d52870728fb9ed9536da077273437689209b2b14407f9639bdd287ba9f77af0f6c750580c7cec0426035e89745e88f3b328c60fb31987d7fa0280d062d8ac2f57b5133aa1af119151344b5f4589389aa11803da3c1f08aef60589ab2687e5ebcdcccc9d3c38b80d078c3c4038d0870e0da3adb641a5f22198868a24d2a128981b4bebab984f9c39edb9650d23823dc1ad7f2c39067b95844829bf24ca25b68325134f14d9a849db47169304f3319f95da79e119be3f31af93cc1f1a1bb6743379a6314477fa01e687b135256f72d5657561b98d215ed6bc1bf80239e3831c16317cef9b7e2ff60c6d116bf8456c11c6a47006b75b27ada9c6baedcaaa8775306319982372a39039bfd1315aa310c7859aa42c287dda6cbbe0f24f288ba3f9d78b214b6065d35eb9374ec46c251e77608c53161232cf11480b92505ba69a7fba20b5713bc616317e4c963fc938af06558ec62b47be7c967e652dc55c1ea38c1a9d90947d167d672c6d0c608b6b9535bfe20e2e2bb322155ec3e777341c3b5f4a5c79a93a376a023f263e71c215e19b2cae2c11ec400a93439b0bd13f8caba7366094635cbd1558448294704c5b209d7b7a6ba1aae425aa03ab197aea341d0166eca608337c387644638ee00cc3fca30f2a063b8847f637299320127d038343f001720ba4aaf339404a2494b1385f851ec06b07105869960332a8da7f5a7065e8983261eb7b68191481062a22a800932a38e0280ce73c1b762a3f95058492c27c4022cb2f82c1781418ce217c06d5ca7f1ab2e99167705b3721719497b266db68b6ea1356b4c642058b4f1aab6c4093c3b2532181f9bda310387a216b6339341239b8fbb9cb9d8a46554c1aa875b1acb34ba50b2b6b11cd07ab0c695a66f025cae448229655b177543b98478eba7895882a6a7e20a5263370c7177370d1ae4b48b18583a49dc62228165c55368ae6aab812f6321aeac1ee5542bd35a9c291b6f8ac01df1c10e5e10a00d61acaf83b125407445a341aeaace6f592fed5bff105178c018f893116bad4aab410ce04071e312269bcb1725cf229bf57103fe90a99dbb8a0105e926c28aa87571d613290550ec96bc9e2213a088c98c3981727e8311aa595f221183a9657e0cca6ed40962a30570a475e7c70281576013d725793e11a91b312e688a55365ce42ab08ac759897a8af7c607622e56014dc825f647d1421a9099b14bcc4934cc4b389b333c14373fa593f0851291a1b3b4fa96edbaa893e4814f887adecf9560154876e1b861841a2ad37236dc2c647e608cef8a3bcacaaba0a66acfaafe173cef526c86d31416820166411abe7da1944fb933eb009de46ba60e249664722776b37ccf770b187269cb240004aaf74c37eb027c62536ae847b8ec48a6b2a9ac68307802db576b70226fa1b951da9cfe094a0bf4b0b306c5e030baaa25baa591b289fa24148c7ca16a19e0a0039eda555645bb65685a75a57028bb29456e4c16ab48c06d346ba9925db4184adf635e779522c2670dc5bc1ac86c662eb37975aa806a2b2e307904f6c6a0d094828aa1c07891cf098223ea78967e7af701273a8a1859adccac61bcd0c103f3c13aca18689397bab1ddcbdee2ab113ec6932c68622c513b0d66c60244cd77441c7aa964b5331ec11a088a5034e064a1d95b4b389c15c51426fc9a135464416881858511fc894bc2a3b0b742366dbca062f2c3eec28bc3c38c809eaab081c5dca65bfce171057ab8467eaab50987732b9c85bdcaee647342c3660950b9ca7c0bdfb3bab69268fc8486397b540f0831efb861ac11855dea4a588c4935847a644a470f055a923162f1dbc2b699020880cb08b80621de33a9f0aa83fa2b5541aa2cf41b98214a5fee14785661a63603f0492163b47829c71a7afb0b5efe94e8e225ea2c0179539772a510a5ab5456be4670a076ee1b25ff62687a96284166576e3e773adf2c061258bf2d28b1ba00fd485b8151076eac5be6ab7ccd81312a9ca938f256b6fbc8ab6d3c3a1da5c75e1806c5c4cd4202c0b20816e368bb2443684463ed43787a89236fec32fc99891166462852750a8c1445ac407924470a56b1cc75c7a378a2e40c00fb35c0d4f65bd12f49911fb923bec1b635baca8428ec7d13b36079732838459c669f7f0c26281717ad45eec972011c66d63a298b95566afe11baac79a67dbadc882815d014549cc294b658a8c00a2422c0d23f6a0be9bca232c8374e616e749623e8a99b0f96a08c95897e88900851076b1b470732ec2462bc9c943255bc475da70b44b134e0cafe8f3cef42972cc175e04fbbcbdf4cd151639155a0469651408c9292de9383e63c08c8bcd96a69a3ebaad9b2c1940a37f6c32b1d3b702d28acb908cb2c7b88b89a7ad4c87cfa6c53987e4721d2302bfb53ef3e9bf7319219926bb7884111fe2c4a9aa4c4c1c0f8be3bda890c0342b56f826a6e971c33f900408292c5820c92b66bc8432cf735388ddc35eb004506d8a671547b7f324741f609e2121a0592644e7e0cffce7280f77c34d05b930b96ec9c79838da4a78680da3b07c1485081d14b9d880bf3ec61d852114d738580918c72a270d7034412305ba10d6a5629a931747611554602f529f32356d9e0331de2232e65c695af1b597cc816d001ddca540a0fa3ae67313853b6a46606c1bd3b32d193bdcf2cdfc2c1f9006724365550632bae19bb3d60804d0c80f17681ee020c6cf3cb7c19a22b1d4acaa8abb40f308ec2cc6616164e106a06f700bc62266ccd40d4a414dfc818ef3ea39540247c0853309d45fb99b84fc3ba114c240915a19e96b742a234ca1e0183e60c8acb65ed2c8a7d239b408c33fc5e31ae83caaad17c24b99238b2a52181517a1202c87a17f22bca93e758ed95a895a6a97c163cba8a4c0d0b980e9871fa8f595a668adf927c4538374c7e65fd052196a64cbaa23969a1c07145352b6829aa9e93993c640e0f62b5bb0228ee37400619eab437434026df078bef452267841bcb72844e836ac95d25439567a76f69a3b2c6cfc1c4525f340b40c558007b4f76864e8367cba7c71edf2aa9ec56f25f606cdd66cedd0937451b95422a509b12553a8cebe7b95bd97b45564c98d20a9ce8c51add836d8c00af538b0d0528507bc3924a731ac05a688a1680e050b770c3a8f49c654138bde367f4269abdc4215175799a6112bbc186b23745fb0cc3f2bcbb6ba1670b1834e99e10b2fe25003243284c59ee4202ee28a6ec2086510697240d60961398c77b3b046a23a55b89151673e1ad8a9de959923974c540902716c973ea402b3576f5b664da2a104812a6101996980d68baedc34f9856effb6c457c8332487349ea3b8bc67acb7fc509c22a476c331af75374c57b4c010675d490da92c7c60ac69d89a25e0d67351aa5c9e9880bc1386b77019436abf526b319ce44cc759b009b93f8b9c3059bc7c63ab483a749e1a761e90587f13945674e85b7c896280d15d2d20bcea11db480755602348b4616400faeed3c143406ea9c1307e37e2642ee73c442a4f71da07c289afd5cafba73184b9723c238da81e3ae109daca1873ae1e34d84adf05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 +ciphertext: 5e0c732a103af159a069419ace2a1d915ad5c589beae24c7ce3b5330c10c59170511e4beeedfd369fc2001ae60466c3be35a244469b0260c39d59eb33dc744eae2691eaa75a34811054bce72dc3f5dc7cc57fe96913911e27e1dfb7a134b6845196175bbf4531d87ad6e8145950df2a98cc571b35d9d20f638a40a3cbda7d53ef3eafc890696cf511cc962fa48513534877fb63d69cbc4dbe1471d6489f5cdfd83222ae0c45abc143554e148eb3a0030e9bd687fe684a4218f2371640878b80dac9242aee40d7d80971baa2e34422cf0083e59ab6be20f3c8aea270b273952b8ea7fa0c0ddbcf55769e548d549f4cda9b161f0565b87c7cbbec7ec157b1c578e03bf84264c0d4d84b7660ad4ab5b009a3c85d995d4c663cc7eedda0f2aef0283143bbd10ca643b4eab50961c7df5a633860f735a52710bfaa27b3a3ac4dbe56a82632bcda5c5f70b20d241814e7f6e9e6b9b7f089c30294a0899e55ee74e366425849483138ec5ce41fe4760f94e630e9030a5add852d30f2ecdcfca1f431f943c82299f5032cc79f4baf2580d15881567957fa266c18efcee6b34085400ca89ba05f696e39f4cb552944f2d39b4a0bfe9d8df6b85f5547f16cc3ee8e0460ff7af9b4a236e463bc9922d99507e069ce84ac77bf56366bb1a6eb58d1cc7b560bcb47578661682aa24240a28208bef802e6df94b1478af7c103ff756bc661fbdeaff6a841af2c0b39f75df4e078a62e267fc1c2d491d589e0f9091e764568691f3fbef675d466def5098322e1313435b689005bb8af98865bad6de64083596137ff4b36091716445bd5ba416ee0fb961f65bfd243e841e5d2cf0d822678a1605e353a8dc0898d60dc3fe8d2f4ae980f8d135a6a74779f85e77770830417a6ae47cfb804d4b7cec8961ab44b12636d0a9522cce47bbadaf947fb91542dc71e059a669029dddf78947abc8940873b4f882dd3526bbecacb737f2af651c0ed0d9b01dd198328e31d2405d58dae57e755a8500ec058a36ec66885eba5bf5285a048d913df95c9872edb0f19ff783f1d832f9b24ba194b2ada14410c6aea961ea029e4179dbe05ccbf96b62d34ccf1148ea799c644201d6df9c14ea208a38b7783c69f0ce80131e46d5523f8ca82229652585002a66761b702a3565f62d4955124e21a29671e5e71d03059f341ffeeeb4959487b7d26a2da280c340583bcef0f719caa1817c785a1816fe68f32ab5f426c5a0b06694974151c7512e9137db5e2dfdd5d7a29775464ad44b98aae9e1a930d2b35cf0cf119ba74752bee665e65d6e968c286370eb0ad177777c8b6504c7551a57aa6875f18fe54538fba04a74a721f07c893d211723c8ca608670bec9be28e249c4632ef63e59dd790617e9ac0a8bf3c0eb419fb435c346803bdcf2112ad81edea320202e21718197e4bd995ae7f7396ad00b9f8bf11b0bdbee0061bf06a298eb1a837bc14b0da80395d676140fc7ab22bfdcd9e3c087b122c4fac6a9a9e05706c93084be7610b3a76902d846fc93b782d582a548b3bbf607b30bd72fad1781e765ace7861547188757ba4f63300eb08a19bf7597900048ac1731625b1db936b02f56225b5615850c97e507997eb402d9a26b6a6b25fc802e506537138481fed4151874929d70d8062af6f1d3ac6ea2120ae799b124b3c7cdcd639415382f0c9792efcbef2fef5c9c514266fb1cc704f1ae0966a05169d342fca180363d43b9a0f6366f3d8006fc748e1c5d29eb65feb99127b25ba8340efe4c7f3886edfa6c3e05b7f9075cc66a9e93e7db6b8f57bb42fe74de1b1b14c3836cff9b7273729a7a7281cfbb9cb11dc8479ccc3fa6344271bbf1c1f03648ba971100abde22267b7681d2e7fe6daafc539cf8fdda1ac18563297be8f48c4ecdf91eae21a0bfe5c095151891c69f01c74f71ba54d4bce13cb0268c87dd8335043b210a680219634d9fe00173aaeedc4ae6f86acdc0e85157006aa48bc20f4ddd6e90b3e1eeddbdb84af544055f7f908d5f31c559f8ccc592cacfd6c550ff92e1166eca53d170767656ac402dcd437d084433a60335e3a59093cd2b434f7fe182e68f7f4911463ea2bd23e01017140967fc045d377f81e1ca8c3c0fe2b649386dcbc20dd243448b2a0b0c7f9b776a6be6aba385e2e61341c4d3c59443552a99797171077317df925a6961398db170c14361a15043b256e972289e +result: pass +shared_secret: b7928b922df5a82fc6217de5f086de8cfedf91cc521f1207f3d912b2274fcebb + +# Official test vector 16, seed: "9debccfe818f6b5204db4ea09c03ec9a19dcf1629c1527685b8a29776bb1daaec45f8abf8f0adc9a8c8bd6e2df6d8048" +private_key: 499333bcb7971e60c8a924aa6ebb2ccff48b4d3b9fd4786741668c071aab1c401d6e50928ee83d7997cd10151b1bb28bbdc8844681cbf736c4110cca8f32c3ce345060080d9280b9d8d8b8621b690eaa77e6bb8ed23285eaac41ee6b44d85a7253d70dc3180c5bc16ff3b7a4371616c98b50c3dc46bdb3207f880220b6ba60bb6db6a3326137190fca28777a519377cf8f08b333a721ddf9c8a91479a600087fc15a35430091357759da0b009d86d312aa7c8abed3d6babc371612543edb115c0273c999452f85d796d9eaa442c880eb098ec2a8b249d3378611b4a27a583cbba276790e9a119abc9cca1ba7c57414c1d697303dea1778b736ddbb9f521a44b76941538666a98140263419d3bb593cb23bd070008f396aa8532a92dbcfa7031d5c537feb2594131204691605d7fc8e5c7c6aaeeacdfd169e62b476d3a65d611801ddb06988f38636f32600ebc192b8709b1c56070a68fed61866f00d0f2b16b0429a9edb6e6850366cf3995eb5c926ab4c82506f50017a1a106e2cc32698fb77bdabbc60f35dd93a54faaa10f4272c2ec98357f3c137628c855513173c4788c35af8bcc723b97910343eaf4172ac586064dbaa43ea90cc36521a54aad84b3cf906145ababa3498cf2ad900c10b5c7beb0fc11b8d358a90d34383faa5032d535935fa4c639cc7e0094534623176b836d7c041d2b6c1689c3325c71dbef0743863a4993c34623578428910959075c5129d7706a3537172cfe981e8ab8a29bb09a1681b6fb75bb60017ba998af84863aa17c03cfac56e18aaf714ac9854616f09becf13427e996dfb084b1e62c5495c9eeeb1c0bc23c971077255520f17692601a9021662b770672a860c025ba9238cf8c73a8a467833bea9462ae604387f11431ab5794907916aa15de03aa6501c993bc684506b24d715557ddb7ba01c492407147905abb8977902da131cebbfd9b3b5dbc7a03580726510393f2835a1db389804a7af54743c553f5c445b4d350d3679b8d300916be22dccc7a0aa009e22e98dc21003f7a8041813bf84a8592d7979ae34b299e9403fd8a073cba7dea6a44968944eb4be70623163eb9e59da4516612d3df06e80d8326090b52ec78c3b883e70c06a77c70fd0426ef34150ba3195d05075a08c133f608de4327712c825e05878ba74acc9ac66a7573f6d245f2ab3c09e702b1b395bb28c1746eca972b41fd9d28743b736ab39853066c5029b4cc37089b89179e3a822cd606bfbb74820d3885e3b08bbb0716a7c7d4b674f46ec36d6d89a4e331add040ef64cca6c3b1e1bacb5a5d857a729beec7b5f4b068c3a685614619d6021170ce22f3f28a52517268ac6693c58b3f19798e4b186e2f0c471e33c4ca0338555ce3c37316a291cb89a3fdbd1b64fea422c46c51e65844e5317e4dc47a9461704e16259701718600610d7273a09cd53b256d5c6701dd1cbbc3b452bf943729c3f35a2761360885cd65a0bd06965443e2762b4d5152f50a4c18171205bb192de1619d9f3217a870ef1272edd442f62c21257407427fa0d4e85bf4e27563fc2c569357e44f7239edb9828c65dae20870d5a48b4f807cba20062eba57f0613114c335969ad471178e6f3318103b038c2812c18bbd68903c00827179a710c23ce84670c08075b70513aa9d5c6b3c34a3e4c437cc6c14b63b4c3e1c27638151d8a2fe633520f1159c52c4c59536eeb22b6981b8d10c29469242f3a09a7a416c79d893fe2c5c3204895ab23b0b062160b58b99d501f2dbc3c75a594e0a605dcb6ce54832d2bd450bc4c53abd892fecb0db87319adc0294345770197acc8e1b8fbfa67e8a830834432fc93aa463541456059da44be22695b3ec0caec411835e409430076de94426ff03af3e97c5ed07dc0b9450cc1a37508d019ba1b08d89943a5661fda1e84f09f2b8961d36243f36155f95c8a74e83b0fe61966f1008826566f5737bbda0a3bc1b2e0852f50f96df1c692be536346fca97d83c41ef6cc63ab22f4a159229217261a8760e648d2653d4fe13884624baf9a57af50802ad6c90359a10f3a9e83119834a001b74a09baca15c80c2b1a391dc652236011885bc181f6a8b42e7b0581798348cbc987959462e3b2f8986e42f59d84ba35cb171f2e81bfa5079dd30b981973adf67c645dd82d60045ceea77d8303982ab9b039dc4c3fd0159d46c89e618304fb5d4cc53e9766138fbcb061b56ddbd61e33873a953590f628c122d049cf722737b54d4430c312342189b59364e14fdf8cb1edc540c39612f8e2bf88710c26425c09dc7affa63f52fa01db7794aa2c2abca69145e89c06d40189fa704dfc4b252811b939118f1b9928d0b0b6767a1685804f502a19254ff89a45d9539c9f968835013b69a362f634b269b911c4327520673049c00e0fc437448c2849089918ec93c2ea270bd0699c85898c0148f4a1095039a216a51143183f4d695aa456c32e8a35d351415120725ef995010409e1176806da6b6e08ccfb3093914c87c107cd14e11f937a9f138b928ea5580494c6eb643ae33b5600f7726e2004f52cc39ab24d0cc9c3f9e57a0b821fdfe8404e6532bbe01609a61def2b4f452a1fbff381692975e05121e2330c789055e5a4ad696678bbeb1a8d3247d2257ba246a2ef966c305a8f4fac73a6fc08f71ca500aa9d00962caab7a2780cb94c209b1cd43151f3248dd344bc9898b7780950a10211d73aa0ba20d89b01b36623ed8aae48845e1d7372f12b9a692b3d525263dfa12b3f312f91b5802d3b3380e58be6a92a70e77cd6134103496dc3e9236ff17cb0ebb04a1783379baa0a3c54cf1c5eb1b4afcd9a7042c50d6405b1b610a9429aafe61a5423055af9f61d3617be60bb59ee8019e72123069614e738a46703af5bf25d31ac4f1357832b1232cbb9325e522e79571a1d226397e407e4b08b44082e71e984e463747a230bed934127e892fba29b88857606983a60b9425008117ce17d20c82b6171165e940530254f2b0cb4e5c235dce373fe1450ee6457da59c331b17f8d4b5e0bab25aac789c04acffb957724783d00dd24eec3375f97ad838ac0c261789cd3afcd68b2d53c0c9bf944f094bf0875c0f08c161d3618c774304ab25563981974ca2e13b5bbdd210ec10ba39c64635c9025b9610b623c2f12a768e03163d75315c7097782b69c44b3a0c33a552228c6001c5ce194346a80824627b974d2c64fba994d2c62f8babac47c51dc100c54789f737c61b9b3420469b11d110dad9010c6c67ead2329d3b4c665ac528041bfd028612c608f87f3ab74b6b68309317e1c0ee5662f8dca46c26039e2dcb1fe8c42cff0057d4bb3e4ab3bce13c142e589592c0850e117cabb2cac88431461a5e6743695e096099a8249e22f4033c15e9266cb00a9a36103ac473123e95d373b0dc92cbdf6b2b173b07a3771456d283c758ab963811e5168694cc20e64e8a677e05e3915c4d93c8531b75d430b3709753f899b1c45434be196a3fbe5149dda2ac0912afac619b4a45f3df262f7d617322a9e8221a79f2319e6ac59034c80b3214953419a191b0e4a25247bfaa0defa001d5529b1cbb9e63ac03768404645bb8ac7ce25687be70796bdf516b76039f7b689ce6c3f569a04c52875ecdc9fbc97447e0160e75a89215aa263091e7cb5534a97660cc8515ed61d9b624950c089d9aa647f787a8ed7c89216694a83c56cf278fa94340d790015b914d09ba91e10ac5b7ba95792bfe779966ebc07ac6916fe1aa4bce56cbaf506563319c5a4c4344344b472226f59b7fbe7982c08afe9a60a80c446b8b341eac220fa8a664b6b1a0df72684b67bf2032d75f5aafff7cc724acf3f1051ec3cc4ce8768fa9ab51f960f3293a1fc527686570da34404b5681967258799fa26f22179e18221f4babc2b7c46601ab7ceca1a345027d44783e7d6c511615b108c4197bc0d9ee49c91621074a907ab292d4575abad75a19f10c2a493af902252bba57348dc33fdab3217778429680b4f352b52445eb662101dd22ddd211f314577cb23bc47c7176942c5cba072996c048408a5dd795907bb2e2f49acd0e75a93cc4f7938136d7c26da0691c08733e8138caed6c8cb116b900869f9fba9f5823b20626980ea86e6f487af758830c787bb1bbd8de024be9765dd04b969dc21589312e709cd6780c9a38a8207fbbe74f220c3c33e2a127588b64e3170999d3a77c8f67eec947cb69649dc64010a3119c9030e1fd0530cf5c3b73b631917719d0983ad0a06d2963741289a282a717d7487acb30354fc74b005ba01101a1c8b52c130a00339bff4f480a4e890030a709b28082d3c501b2aa2d14fbef9e429f8cfb50e84c327ba02edb7f6abdde459896eac77b5d8c7d7cabe482c88cdc80345768e4cb54d17aebf2947b07c716dde8da26e0b7114f85dfd29df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e +ciphertext: aa9d348a26143a9b7645f5ca60b8164bec6c46f77160898d42692dce57ba70b1a76389cb3bc4565939d9a05b0d8c80b10981d94cf593e001ae86bc722eec3af8fc152737f283b23c1f87beb4750b9edca2f0832a902e91a3fbb3895f915c94244189c7e3ac05fbf3214d319744f8e62e1218d29b501fc210e5defc4356d38d18f20a2a456e770a2e50e452118155c57569d85b566960dce62cb650a6476145b5e26ac71d9db03300283d5ebfedaaa84424c3129e4ffbd10d5a995cc6801118a13cd9fe635695a01ce0befa9865e9f940d8ec5cd9b5aa4163a525a37bdd5aa2240c071c99e5a55593ce0b8aa1e46be7682175ed83cd369a4df3072fabc968dcab66361a650f8c3b9a85ce39db4351ba975dedd52825a2cb3392b2ac34cede2c17d9bbe8134705714832e55921fc91a5b7e126d0379004a1d2aae26af0b169da33ac8cb56352d51e474a078bd192e7388ce8bbbc1c03c7fd129cdc21bc529a3c6ae161b68765338d3473e8e5ae83a13aa4f279d72c836b7876e0eedf1cc9f956dd9ae68d016d6f64ff585739c0e6eb94f7b1e34433e4a52dc7653c9334a94b8d52cde4df49addc20e62bf8e682d762a94f539fbd059a9c47a13a6adbebb914eba693ab9862c5ef480389a4b7a6540a24f994d5d105415641190395edb0f9085017a1f1a4c399b45ef13054d9ab2c2b288695e82e9000ace60967501e0030144465edf4c843b82af76d4849aeb1e357c7863ca92287996b9fc794f5fb9593c5a31fb296443a89007f1ace1235e2553498c1e9cd67efd33502227ae657b31cc603c6be6067c34c99f338e08130404b1100bfa732fe449ae17ab8b3cc1a8e8c96404ae9675982dc6269a7dd2bcef77fdefd5e767ed3bf80288c8926060a0ebd6731962d3ec846ef0784a22900335ac90e68054afcfa4d0a373b1993a42df0a6eb1a4fe4f371d6dd1bf7c1c73fbebbc2bae4497b9391d9cb7c1293059f2f2e42e485c4a1a6cc7adf10da6559643a11a6184aa62ef65597d4b7266080518c646ace2a4863040934169034c1a1721ed73fdd2ebf704480c0f5aa885ec5be064b9889ea9566e72a5f32be32a9edae3d8bc8513f136fadaedd0efedec6c08e934f3addd073f8a6ed95015ba1c240f85de99d24053babf604e6466d3c61b8ea2b19d413a173d33663e36e8871cb4bb8df1f7c2a0eab6b1d985981aa61abe005cb835174556d53281699e1dbacf6ca1bc517540d942b55d0005cece29365d18720ca24f05e697da16be5e135fcd5df9ef9741da03f1c76a44fc31f7dcaf8949bddce95eb2634439c5cb59a07ca03ed199b6a79970724b731b6bcd34b20d83f097c47d56d87e629166c27a0a888cceac6273d67e8f6a62ae0e515d96552cd8e147a6e67c6fc4fb6bb1928ae70ac7271e583026d40d423da81b0621a948fa966616e2d5e5375421c715dc8c81fd58b3c280214ff5cc0db1bfd2311f7d126d33553e0fe2d195efe85c42f56f67cb9486d279ead1bb221a2b8d83da105c5733f2b9ea60d370f4c746e1063c1797c5e9971d913ab2708f15de5b78b26414d3b53ac858a901a4c1914c89e8c147e5f30e875938408cb3ce54eed5f7e6ad9966198ee24cb3be353bdaabd1592c1886948c17466adf039c20bcfe4db27a1020fadcbf34ac7cb36b2b6757d94187636ede4ba456de96416373bfeafde43ded757af3e01b6ad422a17d330f3ca8929a28a163e7d045f149baada7d7cae24b19a04f06490e3cbe658496980dda1d82b21d460eb1c46bb76ead1d13fcc52ce1a1a15063550669afb3b20d16b7184e68dce36e5f9f7df838e5ad160c6748105cfaec014f15714748c5a10fc377bc59a24d5d770031f82e0925f184de62890d9205ba132800731988122d161de63f0313ba563233debc9890752168a4a0fb24465a8d576772ad7434e1f3a1413244e397ab1d0b0607a429178d247d1e8910738c1ac1f4c7844a6352e95bdb57983fb36c318cea8577212f7d010f30a82f8e86fd0100d0c38204b99577465dd0c51c6a6a0801cd977149985f7fe6d71de1c0b130dfa4e127453c9adaec1e8e211f9acc662dd43d4bf755bdb651457dcd7370b9e88b84a38c7c4cc94ced8285f4ee8b0e2b646d5aa2682d84ee85a6505989c757857a71bef9d4bbda0f1593de4ae2858a1d64a9019b2f9b182f37cfb1435390991c3d0d93d2e05c2edacbe117fa7 +result: pass +shared_secret: c653e05ceaae3783b2cd20961c12a4331f920ed695b6047ba6eaf5d256b8af1e + +# Official test vector 17, seed: "8098ae7a92c10f707d405f7dea02c2efbef44efa132ba8aefe81bd45e543ecec74f10920ae48a40b0653d63532517f2a" +private_key: dc0009fa7c1c6bcc6a0164044607925524ccba9a8c5986419805c924374838a2764fea94d7db8cdae57360510aa9da6b61134d767b14cc87a2aee90a68c10ce92a41bf8144e97c73e2b730f15673165a5647ca4d536bacf780a3e33a224f67b58258b3718bc184534b8436c1162bcea0b5c6599c00c262c34283b5bef25a1620ab60410c9ff0b21cac43cf0a68ab784a1110c183e06984596712560c087aaa05b67be9d6bd9520a486750e18a14ac0796ab1e9c33629bd1375316be248f06295ffc665d8d9bdb701c0447b33252360377611b04a30812b0e2d003cd1365f122104e71b8f52256976b6415ca0b1e2713214527515d37eca3c466a9b11fef107577caeb5e17e33aa0c9c4a71c7ba9b4813b3413ba65887c4fbea22e80251e3f727d2b7b0128555be6965cf704f9409b57b939aa2612d1d7241adb88eab14926a3718a483ba06a604d72591bb0377d53a31b8810ad8f70a8a2757ddb44ff1b02f557b9b61eb5a33c481f4b25ae00b1389b93437b5cde202ba6282912a095f19255c7b7bc136072ee3e7ca4c6800c415a2135871313bbdd47338ceaa715ab7450293a984e3805141b1185a84bd867202ab34b0213f917728176b5edee0a0904bc29aa74880c8618ee862c326c37152b325b5cbed5c679268aad2c903cfb6a5691912fc0508e23a8e88957f89d79e93b91da85742ede6ac13f0aa15d76b9952c1f5058a3ef0b453691ee45943b7564adcec64d4a02389d3b2f255553e440203605a0f7a192ba417ea54ad6eb347ae52250c5a2bd59c46bf750d60372eaed87c8bf11c44e65fb8db1017411776b161551a9d29212e98cc9c6c735ff8100267296db77b2425b6319a3b6ed5998a6426125cfa78167c0a6ea6c6f8100f7a19628c325b4ef4b29ba97297258565dc5da1042f80c7c634140a2cf93d2c19973506cb6b84c67e32c0a7d718b7d86265a76fe1417bdaa1c8d56a1748016c4b9ac886736a8fb3cfa2693d4a443309dcc003f227f1586498c0cea3d6853e5c07c66ab02943cf9cc791fd2289ab7a1a13c7b3d3a0b990e32d747c2588eb54018c1d25e86cb4d84538da8752248c04353cea97c534801eb223c877682d2dc50284f932095bb2e55b031a144f8f646aad45935b8c947b37b19b99092a0b636d0962d93053e147030187954614ae54caa88eb3736c5745d2d5bdbc462389f97d72f128ab4b5bab3a7aa9e1588452c240774ca5783f56b01824f007d1946d0414a1a722c32154598f3682f3e24aa5c80167956ccafc84b6c343986729e7d03c87f418482b56963243fa67cefda9b221253753a004bccc4d156817bcc9b8e7332128b38c6f6625ced3713c51a3ee137d37785a35d88b7a2b4daae5b356e07bf6ea7a67b5763b04a2944475a5323002b30a6680c9eb08b5954347824a2ae17a29c1a69523ca73bbc9403c35c3b2c74affca1864e24556b90162d07a95e138ea80469d021e35a1770a1c3a5185258cc9659d10054f814ecfbb0937233c3f322e77d3821e9ab61033c24fea260a4b8b3004592c50c68d41b72a67936598a177a6aec3163bc3dc9872415e1f60ac07640b9180a20500bced23add93752d586915a2c448301449e024967159e4f278c674b0313d00dd69cc819c354f5722537dc4dacf29f58b46579b917ba38b2807978f1569df299246a6c23b1e92907f540ca9c27d2393b0481cc10e47d3246cdd599312af942a38cb8ff936e3b64743a6b22a7e96925c863d82b963fb909ef439ff687544b53937c8110399c1dc37c66c987124aa56f9b8c8ec0501dc170252aba325a5a70bc134a2e73c90ecb5cecd373820a34eb706bcdd25f95b3cc9c035a4f1659ca5252a5a21d895cabba090c5115028a079bd81a3c948201b6f9981fb45e73600b2475578d08a8218a9d832ca974d992d13984664057fea0771a0c125b16b9a2d33b72d2478250a4cb9a34a1b3ceddba53d1a4905332217875797ab6248c6b97052678317a99716376b851204cf24fe743782c88ca93b90da03c3e54321ed9500af39b9bf2f7856b13604013a7f502b4c60049b1a03e91292c40d487cc9673e8bb150cd84b11c83493dc0ca1d5568f532af3e54c8166b5b180a6e253840012b7a5eb4f05d53f3bcc5c9414136a70057037c7b88266bac70e4c01b0944633d5f98af3845ca7c37f1be75a52410da5d2bf9d102305eace09009e6ea21b6c543a25032612492b58247f13f01c6ebb27fd469dcfc83ac93071d3368fa128a4c71475ac1817a8b1744c9a2085e54ebb8455bec286dee50cbce87ebb0bafc32341e877aba7a5ac10dc99b65687aa53cdf2585976a06bef586e8993953d5a3cfad8a7593349f9c31010e6becd32cf6ec70f4ef88b1ab955a5d6aac2a877323181668a2c731726236c4c1f77768ed06a7358744c91c690029c4c747603289874032fe6730d96392805e10b7a50a6b849985083caf8d64c1fc257747613b9e6c85e455ace3755ca9034089162d96346e3f0cdde0a81f6a7727babab5f1401dc1832bc175e3576b36747101ccac305d28ac5386ea92447f483408aea6ab22c1027b99b9f14a1b6a67a24fccfd5f52295dc11995b9503d76c7d0ba51abac76777b960c45ce8dcc24ff6031da9a99174be42a381654b5c9697b13188a38c278d94f801a2b94685acb0935074c06272e0ba87b6214f717c01d9508d77535e444b5a2b461d02acb855d7309b8ac6b7731bab6626921160e1a35d0bf14deeb922d770be063198d5a72de076216bb366a0889773bbcdef5872934a894c7664f568ac7f1cb5bc72587767025a271db13a0ce44697aa4c0dba80a730c0c1c2146b36a50d23926df520ab3460b18687921de988c2a7c97dabacc5aa849068ad76f10b361b9a2d1436bd88c962ec724dc15a6583ca8a41704f3946da465042b808f2513b65a5009da5b44125308142478ad82ac64940164c24a599c96eb69ee5e4bef1e45066e2cab719b57fbcc03c1985472cad16a2699e4939b2e2850c1b24e8049a41362b2b908e52e2a9f7808d06a6298e059bbe1c5a87a8610a06af0262bc61390f90d962ec95bcc907c850721778a947677a226c0482b5704e7e0176f1e28e27150ad84093ae862682b4a74e8a7d330c4c4e144c3a39c3a3da3c75873dbaca4880c2940ce30ed10c395805c0bc043cd2861b2e9c0da1b59474f8c492024cecdc7676d4b8c4b3311096270d29057d05cba6494b6aa07379b73bdfac9a561a8ffdd3a43c5877d85749db9c8379abb29f7567fa1cc57b09c35e7b6ff3f735cc18473049ba2d5837edd8176531b67e04a509ba811a9467c633b962e8392d065a03865658913f494501fe9c0a6a649dc8f3256b6274cb6235b0cb278132676d028a24e07595f56c4727a7b11830c1c9840c002db53b6198444e5b63be4c46be9548bf4e1598ea6371686c63da774270b82c95f0c9a12b5c8f9a591ec50971d897b3c1c4e0701da5e26be2760ac99b481151abd2a20ba343bf46eca8699487d14a9667565ca4e30eae468ac5e6cae54b4adcd5acd74812ebc3b4066021b0cc890099b911553b95c794643a97f99a512ce874f10a3c250a513c005a70605429f5943600cfb9e4b2c5e72c821149d9c2c554c43d9bdb271806ae8b58506571c061240b6e7967417542334773178424d46122c7212e0ba7b5bf4388e8f4a3f60caeff712c1e3773fe51b357584a917bc3e4fb950c442ae17abeffe262a4a6550576b6e8297ba723943ae3bf60971b9b86cf952c806fecbe937c7b15c91c9e438ebee95e51d209e60105bc43be345167ac92492bba9549807361a06f525380f5f19f7d1bb926cb1c2fa726cf371174caad5034037d07ae2f305f4ba52f9415b0c624398b936333d68625f533d7da20d62507768a73f579ae71b2193f52a214b30921dc121b6c94042b386f52a202794bab835a9391ccbdbab2ddd94b3b04acf71a12de67cd24d1a85e7330dd36bbb6b387acb6bad3a59c1d292fc24aa6045c8c34ea4771b8137537b644997eb45bc2ef2a1165b308d3c926a0d23d09e749a142493a99ab1c3a80a87c3003990956729ec1c6c60a47a16f495813cb75c995aeaa481875830f1e906fd6eb993a8b3365189d1b50627466161451a21ee45397971d8f56634d90cd0e136c9d82729f8a76c61298a1a240f611824173abfb52ac1aa4bed85b4b18939988895075e888ac0c519ec75ebf693d3903560445414ed3bb3d262074981524e361efe44945b14daccc62e2c335ec40bb4453cae2524229571eceb64a25026b3e1ca249c127aacc08cde4203ebbcb6fb427379097fd222b4e24cb9cd47381c6b780553dd196bfc6c356f031eeed6c85b57be19afc39dd1f929bbb2d627f5f19dba8f24545f5c1f2244d7712dce7596ce08146dae6a7f474daab4056da2d22c4ad0f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 +ciphertext: 6d412e5c3964d81a28ae3bbb3d82723f10ca2f9db3fa6322598a429b9e108652885c174ad8bf1339d998b1c8cc2f17911a3653f252c6f68f4febb61279cce5a424cc46bbff959ede8b799828b2d2a7d224c9702b20b5fcf1a69788d470f5f8bd351a9dbd7e1654cc2883f9b261e2c73f40d3a97113b00673dd6da30a1e948cb1dc3e7a7611424cc648c2628614b1a047bd7cef9a069908b4a25daa193015f8d01a99dcec1256686aedf007c09870cde994f5f1b353b9349d57ecd449f5f6ca036f60bfb3f908e63c8fffff202f0132c8992d4d14a3f1c71dbbbbb1cea6746cf77bfabf8e0ef00202f3627b8e16ca61cc37afbfae596a496906ec3a4687e4ad72ce7781bcc9004badef6aeb2f72cbb2cef5b10efc9f39ba2cdc486b5d077592570ba3306b0ba79bf30c4486b313cb8a44162b3ceeb16390abc7762ec20b5e7a8270abd0468ee473bb3d1572d5df8e5d07066c4e30af725c74552d88d00627c32542fcbbb66af3eea4c495138e6c6a9922c96c587a51075197422d4a58d6acd810059747464569a4a50b24d82809576b19bf93df1f311b2224d4cb86886e2739c1b3f5f4edcf9fd3e6e4d1b9df3e2fdb2a10ad9bcaa1184d5131d546aaeb74c344f309db617bca6cf5adfb4b2bac58b6ad1d0fbb1cd6936461d32e58789c3b69f048c68121bcc1e00bcaf1a1a914caf9b56c9c72bcd9884bf1e763640a6a345534fcf0fbaebfcc5774550fad937240a84619ff34df18dcb909468212c6e68c3435d4989e1cecae914ebf5b0b14d0d512f3ea72b8989fbdac9feffac66ed5ecef1ecf41d453a7f2341207ebf6973cd2d6fcabebb815d5bbff4fc8ce850ef3541e77bfbc90d302abd12eb8cdf3d877e413d82aa2060668a6c9c7a88a3cd7c4ff3c3b53ddc2bb9631a3f36ea45180a6af6ebd040aa79e80492bae5cbf5ada46bb40f66f4b1b2b01fb22c94468469d96826ea4c120a1bd0040dfa49ba3bf4ef40d6b2b303d7542a3a021a9591849d7eea8aa29efeb8b591fdb86abee4dccb8b4006a509bc4f35782096aa330f973bebd99ae1225d74d07d7a9c1ccc1721a861900c0b0fdfa777a281f2cad68f70df6b1cbaee12350a666900c3ed1b0adcebbc4b9423f4f05469428f774519b84622078e4c23b73d0774ae055619355bef69c1c619986c13cda903aec68a851c5308f19ac98ca11384fe8c55d1ac5dddfa7c25081e0a1c8a8206ecc6b73bd33372fbc6bafa2764773a55a9b061847224ec50800ec2118de658b7bfafe47d3ab154b6ae12cbbb94464ca65edc616005e6b14e919a2c1d8bd1f5c4f3a1b9ec9d115d68c87d0293607a87d9c7a02123b71bf61e3d75196db377cafe14da53ff9c6d7f01eb3f18d43265eabc52ca49a8d00bcf7c226fb2bdf81d8edfeac40ccf3f88dc1aa74206990bfe44129e6b4d4b032ccfe30505d0e3d9b1ac0e9022698f9e010b77f47c7b37f3f272b39eaaf12fba68a4645f9622efd080342ae3c48a3a32b1d5914887c3667aa4028504f03ca99f13580caf672789f68427786513d23396455c01e5a0eeac158d1463f3a8ecec9a2bb94a027b065923e62ae458e42b62a0a53ad1cb83a4b8ce253000eadb124222e2ed5f5b9b86e807a427522a32e08d20ed45c6287c664a50bd48dcf4a9c67d30214a628cb5f6281b0091d4cc5e4305457c8162b475b7c10f93fc8c4753d5fee5b33ef22ca6f01940004b8b2f81751c4b01d4fbdb6453edb0bbeb4eae9cc5304556235fdb85a4f9bf011311ca85fc0114b5ecc8be9e59ee43750ed6b5e3d3a8a6896e91ef3e46877ee51d1561811f06058dda0705523b6fd20685f982ae9aa18b3b58a117563e2059abfe03c1bbc5a30220604c3184e51e6f626def6af264de64724adb2fc188ebde8f11a1a550afd6dd06a7b5847b42d5db0f165515c6793ea9138dd23dca2278c805cda53604b42cda8ad762cc5a5dbced461af33a9b83b4c1e085f1c4efe174b101a1a43c73efccc7bfb0b7a3a1b5fc20ba33f34037f25cb2b729af2dbe46e253919b0d70b474560eb4a7b3c9aba5575ee6f7b94de0a09f9e595c9ae67f566d1fc14ca01fc8f468411f642d37c3d521604ab26069fe9adc4a70a4c859502b1b717eafa31fd2a42f0d80f0f0804475de384a208deab52321b03f2bfeda30795c91ee7661d7883aa9d456885cc9169d4eb90903142e07def749d9a46c3b2ccca0d +result: pass +shared_secret: 9fa99f495d5ec88b908a180594ea391556d73b5043fd53e60413cbdce7512ed6 + +# Official test vector 18, seed: "d5f23808871544e9c1d6eace2028362b48e225312f77663e9f78cafeb512b908cd9e25875d61a16ec615f4b8ff826856" +private_key: d0f6234ea63d21038094ac3082f06f5dc2081b5a6083b00a59e5490266a351259927ecc2855c144a83871475277f89311b71436ca835797a1250945a9cf23e041a7020e0cc3ad5c719c9707a6b823b3083351451fa94a7258986c05421e8c98d6e0140a8c171c1116a5a6939dfc95308e8495a47c2aab4b4d30a663e005ca89273b3fa6bed9475bbfa3a6526673d2b4428f01a8041377dc04b9d21618ea05cd2988070c91e95f489b76225ac396de3562ba513b3f23b9809f86eedd7bf9a29a8cd856587eb558772bbe847c2e93497a226080df9567e3a6b22c513b1523c5977b1a1d573336869ef2389b37c3867a5121fc92a097c9640bc996e2845514b04f1b315eb0c7ce4a0b0b219b9c0846cb46c5668796d83759da3a28348f170c3042a86846b78ac7fa5e5c831c4bb953ccdf6821bfd674a8e775a17a4429a197c910b0163454ec3c286cf94ce7e9562f67797896927bcd1b07c1c1b62714a7261ae5d9180473120da730c5e3b8cf1b8b9d9aa54d5392d5c695bd84badf3e20ceda5bb15c1a1c231878d35267bb49571a2216b067ba7515b3cc2661bc8742c3a8616436d117a53e6c96474fb67f0332a261884adb452219b52f31545550b5520c48da1acca388bc35aa120e05433ea1c31b35113f9ec2828e6bf63dba38afb0ed144015c3bcfbf221af1954f5d95b02e3b3df2ea8cfaf09f152987e3db11aa112fb0270d69fc3ba8e26ac30556340bc630c60af699171dc4914daa5fbe81125941982a900a1155188a7a55962639408a2856f480fe22830305078c8785cb9591728a47b0043d0a987a498542f31a113ef0a2ed971a8fb2aea9b334e5354b901393c5a140b05a72e54c21c4860da23019edaa2d0b8680e4379a7813b07df36969e22ae2b4102132711a63171c8bb97f30a599552bb8b902cd9565ba1b0cad788ce92b85b7a468b8348094bac38980981797c80032376da288df3cac31f202f3c3279882b4124761d1c02075303f6f1401bc4b361dc156a417028e56a2822bc941c7aacf26667b100f9bc003398866e9d104f9090c46e23c1d249cfe4619059b38a9012db2d8833b9c96cd40945b83be73b16fe8e53f5e69612f488c7d0753856071882741d533adcc9ac1323513ef15bfae06761385a651994085ec4820e75e7694c5b2423cd12a3b0d06a7194b87055b973803899b4492ae8c6e006636e3a21ea9d872b13c9364e208e99c2c74965215d6290eb96a802a1c836c2819772e21457596982d72e6491651070f1cc7e6861d5a7a01bceabb0daa0692321e9f49bffd83a07caa9a15453831898df4505cf33899f4cc81ba7059d592690d784263074060155c4491130fb9159c09028ec559c4169faf663af83c8d82db07ab08213b1b97607ba0dd50962966683b014bf381be25da2ee32057bb55562a6197b3d6555570af1107ac025cc8ffcb3f4ca17ea33ab0cc792bc83b4674f0014e3808ea128f7e3cc01b4495a0b72846938d23a32eca110e47b17c7db043340a79f7d521407cb0da754b59f267721c63d46c5c4fc58d88f75426a00914dbb3e98246d1b2573bf59cd65222e5939c34b25856625916c28c9cdb82c5643bd13c9b8a634235f1badee54aa3180c1c2bae97828d8746affc737f5bda768ee34bf9fc17618164f59b689f094aef337ab0f56840dc569f20b313647b87c74154a4c6b79968b29627eb067d2918bed7a94d24163848830463a1088a60c49a7c3fe9579a58ca4277a8a75fa7c4a734c2917a98e540b5405a3699949fb66340b36c449b685a1b03896df118a73213bb404cf6daa413134ae2a5594de4c98789b3f5e93fe9a51395d22f72211429252489673cd7668d8cd48b733a472a2736b82ba3dbaa0757b89debf5883909c82b7ab523e2aa6d0156dc2ac8c9f6352f038e4ff045f7a81a0f026881a3890425180e9742cdd0c6a7129a163338ec0ab2ac4b7d80145053ab101ff05f771568a724cee02741a604c92b53485b617c8ed24ef14a2fc608c882c59d9be5717e444fe347b0cab7b07f4b5d405034c9baacae2c4e844046a95275738966eb87322479043ed7083cb2a60fea71019baf85d3866a5cc3a8b93f09260b5533819aa7b6cf0bcec07181b6659f469533b3419f32129fb33b2e8166aa8d10acb4f035d7e6226d3b096a7383933c0cb6615824885499f79dc06b5e874203c3349b2c3b27b1f1012e52bce9968496c068b6e6c7244722621a1a44349314845b1d8831d9821eca386eb8fc254587be5dc529438485b3fac44af0613732509cf225f5c127a4056cd5e503eb742cf03154511969e7a743834708d71579e9ca4a4e281aeb177ef50cb0db826ddd17873e63a182e3b001f659ea3cc73cfaa5d7d7b5e7e9cdaae04c9944978dfb7ed34248d976190cdc0184930e25c6306312180a0b8758395d1febae95b22e0945c5fe265595a9ae91616cf9f35b588b7a02f66d8d49800c50017c7272bbebcffb10a16a5c8560130d96fb0c241a286ba949620ab83539b83d862ddce2507ec4b4bc4330c27517172b43bdf09a5e6a5fb684166800372663544859acbe07424705809587a08dc50fafabc1b2f9486ca6415266c502f7b998dcc947c7b5f5584cd34cc90a4c385f30a2cc051237c6a85d4a5571305a5182c970b9bc87268484f293464545f4c349e8b2ba3e5b4a5e7c42237c0e6e1b7722b04e3d02a27d0597d7169a49e340a778179a924a1d31c0c3d53bedb46868a62ae17847f130ad1478b8428b09fd71b028f1933803318af78103723ae7e1185801872f847753862f9f72323f980d6ba9744cb6c079341b02443b52e4becca891fffbc6084ab40bd17af7c6b2b21c09c170455c52c4c7093c44aabbb1a0c1d11b12070894f7649112f32a98d976c72291100a3bb4948f928771b063839a94a614227587d1a9bd25479bd8bd06e114894bca10814f0c516e1be41b81ccc6044a8f3654679df531c7220982760aa39a4e982ba3247b009d405c0b50969c694858889b4058089631c57dd1c5fe12acd5b27143d09a2d90c8abd8930d16769aa44a3927967b2975a329bce9599bfb170e02a7994fb90e0b1c7bc7db753c065cacf820b80c6c1d585624c93ff14a26afe6245ad8a6b2c082ec871dd1fb10c3acca1898520647b8ef8c0e45580c87f718eaf18ed4e97ea1516acca657bdfa16493115e6c90eb998cd31e6ca095066bc75057b2b71ac2a75711a7820984ae9306dea825c80f26a1ca6c686189c93550d931a1f73fc3ed0341ea703c033bb463c6260097c54bd17996a82abb0d32010cc53d81b7b7052b86abb6302b57d6a34895d09840b3b6a50c9962dc248edfcb328e94460d3c82819cbab49a79f742a86e85577ec995a025fde616fad52c4f092bd89286297d8a8912294faf7c959ca392cd40989c92b8229ad3ec91d352a6bb7d757d3709c5810b40157cc0fe006bfe843419b8a1d792d00c1505e0a63b39c7c2ca2c96f695426073ebd50283572bace67c01bb7b27b09be59e589bd60acca376a8630034cf87e9d49411648a1b05c329af92cb29942cb2369381c3ef761a02f8c905f963f0b08514a7c1302b4bac9f261fa37855b67250258c003e5bc9ad07035e667bcd6a537f35a0756bb2801a0aca56576d72f3a8c0c2f371e5aa036af3a987bb550ac06980bea73b938ce91715a4b19620a08be52695abcb3c833eca2824b60de483810857aba0a9292911c4167159b023989d061ba81c94df979917c72c8eaae518ab0e46ab8927b5b9db690bac6720667baf711a73952b033abaa59d5c4ccf676007044e26c2bb31b5aa2095f2da9724570cb04174e9ac174216c1390a687c60b6c396aa48ef849d19234f36886205b0b28250e7803502565523d0cc0bffb78efe64dc758cf3c93bef42103694b434c4819f82bbc42ab45ad827287a560ee43600b87443d8bc91ac5b15fab2701f05577c32678e06790808d4a6965c30a0915ac8fc7950b274c428a43650003beee2726bd31a09de14e892b54c2605269b8c22f146afe669dc9c4775d200aa9534af5612ea736b01543788b13c3fba608ae90aac0da9335e6c115fbb1d67938b86849d5087a87f3437ea29d7b899144fc3e739a4c079628597c618b554468f56cc6745ff6500d3118c55a8171e42b67ca43ca32135672b22286f78d0485b363d63a2ec737d2aa98ae602d3c485814d2c195db5d7bea8b3ae5470ff7a1e8225f82d565414c6b59379cc5b26155f682f6098795c52e3e8acfed87743737c1bee0ba875a95e9509d89f3667d741cb3aaa989378a2425a0e5f218c02763de4345a208c5bbe4949a506dcd5b01c5f8f4ec5f5bae6946c95ad7fa4e1e5f80354b5112d882796092029150d5d6211c931f81fc67b2316f99db7f55d799363828f7de74b5e979fd7620c7449132d44f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f +ciphertext: 29a04526a0c95d33c0ff721ccfea7e7c15c88040d8cbcc77759871674a074b97bd18ac3918db551fe069642f81f09945bf219c631d070369d50a317e95fa46599a058cc549b706584dae3d4c46e697876303bfedba4a19d83dc9bf2b9e0b6067303fa374b47548f70137324d1a3b0282af3e58909f5fd542bdbbc224cc54de3740e9e9f97f027e065e26c92e35c5ccecfdf6daed38b5901771eb81e6cd1ab7bb2e1e3bbb4293a64851faf9b0e9c9737710f5b38262ce26c6e01f5ab14d389bcf5b529d1fde7d8373ca6b9c073cea78836047c35f95e8abae2633c883069e77533db76dffb6a736fb2a64bc3189f9a82153787e03a79621c57fd4a110d262617264c94da4b7c3178f469790a7d2b0a6fe1126294f798aab1a41af2ae9e348afd7af13ed805228f378a4582810753c0faa9b7caec913a32275f5b9b67b3779e268bc93db076ab774c6a171ec6733a61373407707ddb539b8fde040ec617b841d41dad7bd094f3f3fe46a8953651e58ae11f0332c4ee155b9dd3330a910d7f188f12e823016f4dbe751608e8704e2508cdc0ceec8fb9ce26f792d0e2469e4b24d275d6f020cb39fec52f92672b6935e15a8a83a64ac080cc4f488343dc3d5fbafa73f26f44cd1608f96c799336d84e4a82c9c06f019e49ae3871ba14801d43dca78cc6a05978919c9dddc7e8371546ce205b9cef943e939586a07762feaa427effd373a0affb7feaa691b960edb8abdee3d62b6bebad516cba6d6533615eb25194c996255bf2c6b04c8ca1a7d425f1ecb11b28b2ba5af11d4135092de06313070d14efcf6794d3a200e05a398da25149c7635487d32e74bf69491d10d2a17b712316ce5629787b740bf77673e9cfe9d7459a4125d4e0ec93f69e0318f0a69c36e597a65ae21957a6cd659879b3a6a9d5348eaf378ef2b3efa893025b906f2b86bdfb1d52e00b64b26701d4f3a88a50c24a8a534d70c46c90cc1e27851c11e679bb95de1eed93b827dc9fcde8b7ffa43c98029877087d74e6f0af2dab01aa4c018c89ba3a4b0cf0bff09c1f7b0332d15c8f929dfadbfbb2d272f49fee30b68bcfbcecdf22b739d4fe9e9033b94e545c1772114e7cad746f14885a67f1ae72a94cbe4fd6087efa70b0f3851eb9561e8b737897022b3592b2562292e6fe82eba945fa2c55afee464753d3ffaaf43edd0b1342f9f8977fac2e2a00dfcc3954c3df9a0e482a89166224cdc26a29a682807aa24842db39d7c867fe2a59d062dd7e58174e6fafc0d0d9fe9dd1bf9df791feef3dab0d3e1e0f51daa5c2a007b3c2cab400d0da44c7c1339c403f4a0341fc73bef02339e9f1447f9de95129e3442ceed7adbaf470b795d902995541333a1c9ed5a3ad6ed4a6c7ca0bba221a45e7e640880185470b1b8ac00511d455670e55b84ccd8097687729c293f8932e608d279dc0bcecc77a986de4010290ceb2a28327fe93d7e191eb4f1274eede3ba1bde770fb6c7542cd9b3147a574ba092a05298299d6968a4585d727d0d5cbaa60d0c7e165f20ff50fdccd56996940f8173d9887b75aff72f16ed907fc5a95666f22ebb127c439375257b56adfc30f4c06585019f941636429d8ec9740cba71da5fd7c4d76d0a0e75d0b024a61b8ab66881ae9e48f063ec6191592040d896be263c4b7559d3d2d218d11dc8a3d4cd8c17b19e321ad796e9a91d69e2dc9c165be0e35825ccc3f83bc1390f2e1edad44e16ecee5eda90ce6c76a9275207469575b11c113cf045496941fcdb646ea8766e98214b8b2ae1a43ce2d7163df57600e6be191c60d65b36cd15363f55718fec02d3e61881aaf99b7c6fc4e3335c9ff93fd9a4072af723a0969f0be5458b29c5a2e7bab4274bd90ab0e66527d09fae43ddaee47a122b9610e39476c0921b84b7f3fadd309cf0e166eeee533dc99e7bf38f3a03c4eb8aa42240607488971f9d7283769a289c4531c37b90a2487aa9ff876cc2dbf22e340edcc0f71cafe5ccaab8628c024e4f3ebb2582e5c7f1483b6a3c0384bf9c75d0be7913430f876303649e14c43d9e2fbb83f85bab7f2198f8c6dd01f95c09bd876c853b041fceae938f138068ede7ed1f2f195161dc657fcc45c367cccf9cca84a1d5ebde17e33e5e225590bf0cc4407929ed5643765ed351efca55a5b834a49a482962d8988473165887bcd57f89078a3fc68d3ff12fa2ed354a23dfaf3d189cdd7831 +result: pass +shared_secret: 9b93f91e8134042ed4915b713269a6a3239b08ed049def076439151344e508e8 + +# Official test vector 19, seed: "822cb47be2266e182f34546924d753a5e3369011047e6950b00bc392f8fec19ea87c26d8021d377df86dc76c24c5f827" +private_key: 2b8c2ea5542d9e3b90c417523f690109007c5aa97940102ce5ec7bc9bb471726b202d02e4f871062c281d2a095c4cac14d6b9ade99421d2599fb696942f6b74d349bc23a2099f687f1a3b1db3781095615a341862246b29500cf6c3828085c8f72c303ebb9773dd90c37d1001bd70e1ba70ab99cc2440a6d8b841314e84c71718c1ff802897abde7694d49e416090527a600b2ab4578a378b0cd9b52308403ce5c5ad198bcc6dc0b3d5bba010ab9d5c18ca3210111654b47fa504cc2b34ebab1a9e328fb963b22491d5dcb13b5f46b3f43669101483e95aa0bfc83cbfbbc6656269d900138dbc252206fe781b007b3c2a26740643b0b9e6cba3d83a3546b112baa3113fc5ce4e94dce8abb1180564c6cce9583a703da022d20a14489426e6693ba2710aea52761173f5f5379ca711df6972e7264b3c8d2805fb08880a6420eaa1a060476e792562cd3cb8a768d2ba32402b2659330b7970a1ad3782d670486e4e73a6cf47938549a8246991d205f4a4bbb8f977ddb3c8f724110ced267ce681e1240ae0c9674c4e20e4d82194a1bb835e1b56166cac3714e3b42a60092bd746665e253933d6786dfe6b95eb9a98f7c299fa9993d803755e40ef80aa7de893948b5bd65366288a7000c6a5c3b7c5b00d7102ea95f490bcda8d6ab38520c30e231a449a69bec79cfb80dada50739f83a85c624a1458c135875a803041f186fb6c50d2c0b657b59377bd2aeccb343b56a7a5dd2466fd902d5b5bd3cd3557fa31465fa8cf9ccabd05a24ad290988355ee1318789fc81e4d112cc797dc5e087c0ca19d5e8b85c57463f456868eb585a188a27e51858f8cc8c24a9a1b47b38934e07b92529c0722b98ae0c3ba8d7f329e19c0f6e8092acc7c617fa145c37bb477501c1919b26b041aa6641362a480397c5e0441439545deb6b5c47d01539337f523ca078c6543ed9984aac812638a00fe930a07b56e6859a20f0ce54617ee6b8395867319930583309a67530aedf8018b602536d33c98f81b7a7b6a252a00073443c9ff4bdfdd87b3513536d93c908188516749a28a92a410919a2c803196b1e4a533cf8133bf97c2f49fbbb1cd19e2f3838f3d05fc8e5c11cc602ebe5a2a5187ff2a74025a7af16075fdf88374624305c191116c9bf59dccf9fe89e86f007a6e3c0b0dba7333bc4c9733214bb233e05c8a033ae93e85bfbdbafe31260e8f7a5a1abc9da303fadc8697a264012900fd1b713f8da7ac5ca8f2206be63c31c5fe3c6f6188deaa31d89502aac2ac5052b982e3a75b385ad353c9c035c862cd5a6290076c959b11e6a4832793378b9828b0236e016bf6817511dd9a86022cce5182f660013f8b2a036a993c90740a6a5ae2779724a60b872e5bf76c78a6d95997397bf1092b2827924db015caa204bf23710da941e0d3a1a05458ee4386404aa5ec1cbb108925ac4703048a09f37814c78e63fc4b31f2341c559222a6db43d50bc12d8c88962cb7e9149c009414c519721b63970953524009b8be2ba1644c787edfa0d9f9c0eae722037f0546fc96cb333a062206436dc21f6806099bb5fa43879e2d433c9e1be8b073076b1034d062ad0348e6213176960a90b7ab4dea8adb0ba41c73b2c4be4c0a06200e3a975042346b52244ef5334c98189247092a19092e8833ad43096e4b47c50668356ec0bc5ac212e8a1972e40e7029561ad20e33ba29f97cba0e3153b338a09841bb6eab67fce41a86265d6a2899d1b7bf4416ad1ac211f7969914930da09844a2603989998542ea9ec24c0a5d8b01fec38c33e84d51b93c360a4d98d439c593063a3747fb9c2eb16439ab7035490a99793939445ccd33c4aa2974aacb21873a7659a98bb67668ae47548ab98b336e2103323522dcec9b59c80ef0e5c935b697c0ac85da18766b39cc1e8c1319567b9560109c2c2f66a9ae528a889f500e8e11b9d548690750c54ac1785bf998be78cc935bcce9e8185efa9f009791d4a687f131309a0c8d51105d2b650e295abb3ec29f1b421063148638626019525c844974f12a9add84c72e324ea3698bde2b33de8770aa65674f43b861e28e53e54df35040a4a91ac6cc4867635ccb91680d943a4782af82d17c2fc8a3f5eb2af0a1525a29af94d2cf7c8631f95862fce1a401e175de0c3c184072444c10cd22ca9cea98bcd401164c349b35c8b36424f294b11ec7c7d0a3953fec20dbb283ef99a3452496d9b86513e33633765c10b45c6612bfcf590f6036a711eb3dead00067649eedd14491716caed40a3db26d7b00c6e8396858c3916397166d24370b033ee54c3d3b85b5382b1f3f1220325aa2f804bba473cc70b15d443548491416bc1698a5a9c39dea2ba59171f35569ed6946621c1b3647598becbcbbc72a0781c77baa5ba128b1b7053b2de9c122b8790125c50e003a119964aa48392a96b01d7675af541b46b4369b10c38a2c68ee5425c5f6293c2255a19a7cc2607774d342af773a22c3943a9b411bd69a92e1c756993a1a392698a93d5f4772c374b549c15a0bd636be908641a7b8ed758e3c341292598b82a7976f45ae4fb0bc2af0352d92751a6a5e5015444d3b82cef064d32c3bef9b2292571092360e1806b5e5a892586029ab421ed247afff408f7fbc9b5cab930a6896b1250ab1c58ac4231fd6d0bd9b990b649028e4c28e435093b36462e28940fd2723e7bc20e59914e1c812bb3aa912318f15472a64b75c12ba361b2843751611183870a6028496195cd5d219698a89dbcb2c1c06ab2bd5937c1cb5a2da7774bc3facfaa028829f3c3c9bd6c584eec882ccf3ae1b00b1357692ed377f09712a30fbc73f17c0bc462a88e64de262c24e7a7f7c784dbc5b615ad57e58484db23363433a4680126c2eb5b9152c162e3277c0bc4da9693b22daac51a1c6107242b7428ac3f21f2c3968810435f9aabf3c65b7db7b37361218b49b9c76695b53c9a227963ccc1b60d447b3b7d15765bab6b3b73585f26c2f0862c927b6f23624f360a4f6c537b09563adf7a9616a4dba03732c707fed845c35c660b5317ef652055843cbc28ac501dcb493eb5d6bd5c322ea2f2a8b61418b9788482f51b8135f4c1f1173895057ad3218387d527133890fa3a9425d73ce03e1879b85a5b120285b823501487d5c555ed2b7bfac82762b9262d3d4b3b64736497899a768903750bff4a82e6a0097f3c230dba5bcb0ac95006852bf60480d039d1fca9fb758b5562a384160acd9c489a3b4bdbcd96989c57eb7a411ea3540ada882aa567fbb340b518477839925577c780953bafd0cbe2803626b89cf1c3b3056c4bd78c88818211fc836765fe813c7b18e5dc9725978ccd9ea8c7e1710ddeb883ad93e2cc987024b817c30908ab1ba7a658399dc931a4ba4fca5a10398289e9718e906336b148c328c2930b843cd4ca0d4735b633618e8c1c327b29596c24bab053867747883231f11005ed6987679544b51c45d42cc209b7061a91a0c82a92c943c85c149b79c1a190716c03f156d3c22ad27e7b8b87962c8c5421d3b01c7eb2220452b22d813d2180e7a38be15b6976aec7659d25b60d3c780fa75c3654d7f9b6de0d33c8c28c97b6b95bc8c2cb517b497f73a98c41a64f312fff48fcda7b07e86a8136c05720a8740d866bc024ca1e22d43f6470c8a38a7301b3ce74585e6ab8b899b13ea39c163ae79e764e0b846fcd57029a73708091f053212c6f93f1173a854b26d7e49bfae38046e43193b98460d171fb48283e736c7a1651deee6272387cf65ac876feb4292bbbc9200981299c9bff13690d6c2017bbd3e257700a111fefa33072ccc8e952263e4867590c79b558187e3441a930964aa3ec0441e91e7ad198cb6e8959a35051ddd972a43a020d0f968eaa8696b9686dab01b9f9b8095522a7b411d486444b16ac4fee7b245f50ba1a26d81457b802bba966ac8eb300cd92773ca26908a91a2e23b21b0116dfcaaa5f4a57514dc2ad736cc788904c29050389b80cafb0d71b131b567551f6a2e16390c55234e5ad50080ea6268047618b333a49795b4233bd07530a89c275bdabc4ec99d84a812d9e20e2c27072196138386ba42cc4998314905e070ecab69f2d12aa204a32ad28658da3fab69223521b81461312cf88700a49077914af3c28a2f544d608209e24cccfeb46ae13bb90e8b86a4bc85d5f41a9ada7a957ca8763acad6713623ec20e2f199b1270966432bf2b8cacec65776d8a63a471cb4a7c891a01bc92c8c28719c3ff9a8a7a350d9454729d2ce932982e94bbf30b298b3353ca6c459ee5017fcb724ff430a9348b9fb46abc86374b245668ac71096501a7f3313823c5749e01d0e40444111bebc0a6858891224b08cfc8e74c41084fd5c03c102480537c11d5e63a349785e242cc58bf790539d3adf4844176afb3ade1db843a9e6ae9f1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf +ciphertext: 63d6fa95398bbb5cc6252d3f85dd6b4237aa349b547e8e797ef542fb715f07e00e226a4531c7e73f37fe3e087a03ed41c2f0959aac4262b2abed8ba6c6fbec26040f0eb47abb84a3c6e88ef2f821cf78d4cc51751083006ebf5854086c9d3f0faef0debdbbc1010af6288b7aefd203ec88e2700da503101b6c470267e109e96717404e2eb97f499bbb6749bce23274c649b25ad90bc7829f1b63a4b2c26811fd9add3d29d1818f00969f73f1b6afdbb68cc8423dde3630c679a0d8c934410287719c7ffe1b6eabf4415d4f4e14746086a22bbecba104ea27f7efc10a40bb1a87872ca72a80669ab1f02956bfb0311f87173df960b2417381b34cdab574efd7f4c884d879606684d344431c57c1b46b07c8bac3243e4969f484b9446946c7c0af4e2e5e05ab87f527290ff9fae3edcf5b8fdcc0b3de2034f26a19f0844839fb26e790e38ee44e21c9a01d96f4bde5296e021ec68352d938c1ae66154b6efb60ac2f5c96eb0c269b0be10f4cdbcec80eb739e7d4c78fe410fbb427b95cb1c09b7eacc303993a25b38aaf91962f4046597da21956bd98f9575bf1e9fac24bd420ed299f8940d92988a2f44647691c616542f8d617b19363570510a643dccfc58dba36a7aca98b277626b56672d21e67ee3af62b26921e48c2b69b766dd6b30f942a7025762554c9bf05bfeb960e0696bb2c7b1fa05e388fc5e5f495c2a853137eb15387fee4455a54dc30aabbbef10018e4c135df1e6fbf2d5c2399478039eadff9151e9ad56f8f0cd96eeb6423224df09df74438176fd5dcaf7e6db01b89204ab099802b94755c0740975198a4104001a2724b9889a60411997040938895b9b7d6889b17d0f79b97cbf249fe33eec67c1d77b84694979ea0e4f7b5979486ec187ece4de8d017b01d4d65ac63fd0c04ae5d5c073b15fc182438acecec41bb9b277157a2d023a9a73394491d65b3f103e6f498982645da202a0c8978d4b06a406f8561b819a8f4305deba7a8fd67801f62e10445de38d45b487075ac0eb698525ead41e8a10047625922f197530cb6ae8a1714265d322f22fe4fc97f74e585452fcfbb49815c793e65585522847ed4cab843e416c777b19958346fd716378bc78ac25e6d2a9f8f81f504210918261cb8afaf27ee2a97b53a9e044a17a3bbff44b7e1cb843c01bfbfb7d3f3c014c430753308ee60ebed89cb10f55541560473b4481a4d7d414d6784f7a6eceb2f7b68eb8eee39d093b7f5c98243dbffe414965a5eec8b9c6eaa79885366ff8f414cdc290ef8a9a12f89dc48aad20325376e81ccc707fc90cde5a9d8deb4dadeb06a8867e3f0c9589798950be6373059772a3b9f68912c227a37266f34d5bff7119a1dba2fb43596d239c8367f5d3aeeae8c1f87dc2a84f629ea5cacee50bba554cb1a17ac7e8674ad6d9ab7ba149b621f3ed1889e904248f63a94214806a4fb634ef53d9ed39e18eadf6cdddfa7e88d897943226b7555ff9b0773ac7f538e377cea881c5561d88fd8346d21931ef7eba7f87e3da5582a7939cc47bb5817edeb8c369373bcca25ef3ac10aef2f404a70abce312a5c7443bc50f63d516e9b151380a8d57ec19a65c3926ff2e5e5e6be8455bc3b4bc543cb0cd7d057966ec422d67565be74fa0b6534f90b4271d2786c553839948b873b2dc6fb18b9e045a75cac00d98fcad5098d24014438c717174a5e62808d386eedc22cfc6ab5c94ebd00b164f0c86fe25de8981850ad8d965db545166eab7056d23944d0d1a25fe0a77c33df334ef7dcffe8ef353c724003db5cd42e1d80d2bfe0a2531faf2c5d8408608ba85e1535f4f5905770559a069167c1b5c90b4644e4420c3ca700a33114fd71dc2f956c958093436b77805781da06bac77019fa8bd04da156a4c595f33ae5de0e16d4435b227c9d2783ea3fe02a6a9d273201cdb9601da483e74d908ed10c67576dec23164e33b890fedff26cfe273e650c731df6ab11d010dcad78a92de3399f4dfdad418026460eb361b54cc4621d8bbed1d95de9ae21a0aca3d82c33848b84918ebe928024b2e37217c19ef27b80cfa368e439485886009317483c380dc822a3cdadac0e0f2f2fc0680ae72792a4907e70bb5a12b02ce1ce7c39af82880e6fcc0fb132cd07571aa16e94926e0efe2336018e01dc021fa99588d3c75fc31663e2a25abb66e05ee2034d642f4b2cacad9fa5ca1c15d7 +result: pass +shared_secret: b616ad16ce3e737184ea0f5b25f8439ffe0bbe9647e0c2c725d23d4eb2f13464 + +# Official test vector 20, seed: "81401db81138d6874e91b7c11d59596e4ace543f5a3471b6fb00999221765fec3ca057abe20f03b2d59003375fd71fe8" +private_key: 04a39f7840ad6e0c41084136f21609602a0a00cd8e0fe0158c1c3c27845ae6219abcfc95e72814a9776655841e46491a9ee342591133569123d6a09a54a8a253a49af9b27103d196873622ea93bd17da439e88226a333da9c525b856c7ed53593a002007235d84225fca027493168f9748c4384004d873abe1bba69212c7fc4ca89ec745ffac84b99c8707860ef798bc1e7c4f2f0344542054f3c46dc72a6f9d2b9303e6cf114040e136087b66af5fb47ec6a55c11c02acca23f306a7221f3c81470714a472ea822bd387cb29de9ce4bc96655d63e1811c93a740e148c994e149554b24edfcc6b4878c55570971d95576acb6943c6532cb2101b4468cf578a99348634836174792758c350651224a2d22647446f67a056180ab2afa34ba27a76933c9f4f3447c0ac6b605b144a2c9f2c626e8f434b4f35ccf894327c53a7dab9009d5a9a4e7bbf0e6a22d4f120b0c42ae4a7c0ab08774cf8a33e069d4860655cd4bff1940a22314356e8525213c351688b1a725a673918078031ec37080956973266811dd8ca275c9a75fcbb7b9891c26a3e343b36be5273ec946f42f70865bc48d6238ad42b616c11b708d3551d3b9dc61b653e06b1e6709bc115256687af92941b2fdcb99948184b025239c89052765b3d63b476c3a4df499564ec0749a03496040029da776d686dcf9984ac9354c2c69f2c3c8d3d5774201b7ac0254a891871847acca5099f89733fbe2a4979dcbc26f5c38efc5129e083f508441dc6c7eae73b1e7958671767968b180a3b34343cca94289fe0a8788b1cc8394c5710b9ba6fac1cf3147db32c9060a9cf2d056734031190b53ae17917e40907b61826527c277344c8bc475451414e00e3cfa6c15400cd5a6875c7b2820702706566a00460acbe58128e4c869095160fd0dc303ff8ca68a8947e3110c626c707da0344717297147aee5c39838c0f73ea57f70308601ba55e977bbd7b681e0c4c1cab818aa156eab24f74c2b66ffc8959c3617f92941f1c0935d89702c71f4d76c44402ab92310904504ab5f9a002c321b411bead73a819e02d006d8ac368bb89231af85a97bb6b0e23ac2ca869306e9239d808cb24312c48c4624c33537a8092f6e8c147900894f3838db9b0fc9419dffb6e78127e922042fe4a3c20e5c48e478bda52a2bb0a85612024ff5c92801ab1eda82de8aa6442249ade4b6bb9886015035d436a855cb495f6885f6d3084f498affdb17272e127bfc3bacd3831d06c20569b92fa9b90278707c995b2db1b63a423a997e37a244c763394b9b28b3d3538c981da0be1556696a7330fa83882c1b7da6668f1fa5841ea5a984b4f6f4869356682b9652a842859bf079238a83ee3d6b01610270488247c6b5e63cb1e4336773231b6dc6bbe6888345a0ab5cd27091442786f2313c16bab398356f1899554c69c4fc09c9a720fdd8bb1de03c80e5241d25559fd7568b321cbffec8f619403662a61c696ad90346bac979a7e446e41d5582acbb5e0f70aecc4330a550854e60eeb5290198825a1f01915bb094f10bc0bc29572430bf8cb8938a4c182698557ca49ba9b7494419640792c3fb31cce70aa2ed24830b65efb3218052c539f2539dca01532513717c7bc552179957671275327ff44a79a49b92f343a533baee4e06caff23d7857ca540a78f886be136b3506bb080ef563e8a3987c083b4b5cbef410ab20213af7807d3c52c58c852dd48c4060587ccf259f00f40816ea86edd276d1135eec70b990e5c11e97c470d97ce45a3a105a9da1ca768166c86c41474be92535f1bcf7539d09598e773aadf39a5b66ec79b360699e953bb0babde4f0c707b99ce6f5075217a054407072b084b7546bfa95ccedf1666746bfe74c674fdbc80edc35b4769f5fe08632aba9b5398e79dc45ad014a8ab539c157b672eb74757c6632e6c922202590a27dd1c82527a36287e2ab7a327a264abd300634226149513980b9dbca957c1560a6c32a20328b6926c843b53c635719f635edd90f3c5313ee1766563a7a9ab6b011462558b229fb913179a438f3b5b2f427adfbeb90f73a2ceb190cc6dc713b83afbd12a54b0c170cf973367b11db2cb3e5d880c169041732a276b93056e4632deb8606c276a0897116a0829482bbeec870f18c247309759971c4e1702117a1c1ca6b5b6bdabfebac339a5c121792056c508ff99588d292cbcc1760f1eccbf105281116a623c600e87b4231c2a94689133ca16b6d99796700b917262f4d776d10709a26123a5af9af5ac7455882caa4d220437271aa5c9e30877a3cb263f9048a483a826774c806941939c44274287b629b2bcba56f19e7aab2b8c6a3f72bbdf5820c774c48a151c381a5a75c27337c60c406cc1ae36a3eeb25d91521918a780d75a69f94aa4005771a5c22ed4466811834fbb238e6351fb055a70c32994442297f273752db6f03f445804c0cdb380f838c484c50250bb2c849e308d8f608ed942442e85bae7cadf4c6c3a49cc1cc107ff32154e61a99df1244f8f956c678ac4192aba83b5485f284f1510b816c26d16922412738db9796cf6023e558741c7ca293eb35fdd71f9175b838377fff3050d447a35e208027881406446061686621fab300755a15921be9d24b721a50976884c76ba928405ea9e6b7b357baa68674bf412f66f54a454c03fc2a64b1c1142bc56cc535911efa578c5a097d8301836cc641e078bdf1245e5359a0d7ce3a87012d199880a3ab5d61753488782b9734c26947b6c925e4fa6ca38475905a9f45a88221db62b762b4c884344cfc7d81e55fa34293dbf49e4e8bce0bb95408b32bec404a245c153042a3ebcbbd8598a3f9537e1403319a5cc6a006a37db5a3fc4960ddc5381a1b0b85657d41d085309b47c9e21a0641700a14150a0b3e00823e76c6bad867c6f3e6568eb840b9a9c4f4f45d35e733ae56377b9c2e008b66f9436b59320f3107aa43dc123bc2a89637637dd3a26ab0abf355c0fef642632523611a196e2402ac16c38562a0f8c65b6a0485dee1492ce2494b7230422abb2d705333d4c3f4e10b28d3c4b3266949ca4b95062e3d600caacc77655236181208c0dc4487063ccc528961661dc0e474bdd88faceb2ec448c1ea8a6f14206a33195e30fa4efd463b7f438ecf4ace66090bc268b532b251d783bb380380e12a79ac044bd72c0d9478018d98b6e4e36f234142347b919601521365665ed05111f39698c43f5b62c047f1ba861a91a1e29f6bf1b8ba376280db89feda41195a9564d17c73f4305d73cc6a606530179029e192352a5aa9e58f4df6c0c9d8846da4518192bc360544f734340c9b072cf399806906784073f622ac18c766de49a65df56b6ff99a6e896245c7aa5585723d1c6981a0ad2fc09115b8b8321941961959a8e40b37c24a66125810223dcfbaa093510bf0b9c631e65021d64bae6bbe847c7576826506f73493d19da8d47f07898d179697aec0a1df3cad227cbc83c33c6b72b450731d943041f79136d34c7f039558468c3de1e3021e509a2d898ec1245fa9a966ba457e5894691899521362b7f2d607578b01f230365a84c7ae1ba12ba53c1e216933a34e53e75e252c52087c615fd5ad705743494b10042b033468af0016274df94f2e65048e9a4595a4b541b082bcd96e6d90a44af778077007c069ac9673cb4a559820a2a9992c4500da89f5acc48a6bc9ac1922be9c211f36c468986d0704121193ad5e2732d693c650d867234c9c261525325157fdf94d89eb2da1949a627338c0d07b1cb9cb45d95b64b38a22b029bcb87c928c7c97984d760bb11b9666271aa914d3cbefd723d40928ede94af17516ef7a72c1fa978584111f8b0903c544dd7c81d94a3b8502cc08b21cd89c8fafb94d9eb57f9061a51e9aa6f3860ca3da018dec14d46981062b8ffd542747e7c83cf815989117ac14ba1654be4a92b396b01fab274a082609ed9c685f125fdc4611cc8c00167a8be5f28f0867397da186ae68a29701b4c1885235faa006d45d30b990d13c479fa5b1b76ca2406a46a0c42f9c63cccdd187f5e93b16f20bb86b5251b00842d28e58c86dbca41ad708a62c28846d0c983dd60dc4f5b018017fb1276eaf839a2898a8caec69f11037498c5a621c05cdc5bfc9ac9dde250a7c4c1531b813b3f84e70a43baa43950a9cacf07c9dc6c8b8c4a660aee6ca67159a00010a3414c87fd94ad197856d9940ddb47ad0d8700f635e58408a5af8213fe4636fcc594ee677b3f205e3552202ca8087922402d24ac4f42fdf5c99ba1356f14cbff297192a40b48abb531912b8f853a07bd241b19aa1effa784e5746905449b1e7436a79a28e3f712507e5bc0d026037001723d3443145bd066cebaaa3d000c9f0ca5955b9c5a4f2ca172535d5a32ef67d54f334bf726829082485a7b83d43b46b236590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 +ciphertext: f605d7f505e0fe8ef088c83ba4fff503ef6cf01cfd1ebc1de439deac5a95f4e38b9538d124635bce71eeffe55f70a3674eeff62ad618bfcda3cd2af15ada072885cbc36b5693deb6aa5e9391478e37f43a4993451a1d2ca8b1c7f305eec6f33cd473f5c0c32878f04697a215f721821adf39a35f1e6387cf545e34b2e6e7752e0c4059d659c93224110c42abd2d7661d1dcf8ff3c911b25eefda9878494336447ec650b15ce1fdaf1895b55b53ad7c67eb2ebfaf8a9851d0f6456b79486a2499b1cb0053d3fb4b0e2a71cee95ebf420cb0cff6fe121717899dff28bccd41e2a501e5667a502491cade70d225666e4a37a543a6336ee70b6a8d0a9fb63d4c5e463b54a0057e9b787b4c06707fdf6444d6fa1b3c93c31761b30b72d8c4d7367f97d50a466af778616748909ccd7e7728e4a4e572e45dfcbbd4527c11adac3717ec369d2cfec6dd81ae8242b82c35abaa7c960324bfad3f852b4e6a322b90e9dbd614c233cc58dc0fd676106990460187b69d33e572e638cfec27c025c507cd991d5282c83b48871ece91b7255e9675aed2fcaa4199a429a6bd8b83632119bc9771bfa14480f3b37cb7df7f80455df8f9367c216480c3289eeaadab9aaa845f5d078b756556b3cdaa03c00c984a32d3f3f06faf156981a26df5e3f6a02fded61977e366c589fc795baabb8858bd8bb371b12cf4ba2c0d432df56bd431d7a218067eb2373c1fa69e3a84b7d5678119c57ab67480931a543fb81bc087ce99224eb1a47f9d592a874d56eb0c4330554bff08da929f9e95112c1ee6ace229983014efb098b074df89dadb5eff8b6bdd415a1501d0611b6afb645a03d964ca2ed657e8140c45fe6e2dcd77c735b47c944867c42cc482376fb901aca1b16a2206a1a64987a321e7ae1b93f64750a3c3a2f409ad5415bf829c7721d39326fcdecee96ae1760e0586f38966e4950e7aa8ac7d7b9a376705cd7d00c7dd16f80b2f43e51494f23f4878a6fecfe78fc829fd434afd2a92926a00db7374bfd914393b649e1c83106741ba515c935ab17efd4cdf2f2f21266aee6895a863d4ec76e664ed6d4aafe4f6a93209d65bc4e07d1da5390931f67b258e815d7e690382fdc30ed24ed71a4ba493f414a1bd819e03954cee59536f246f491d041fe93eb6fb304c73efe1ff24c7d27b1cfb13434693591dd1c703253dfcba6d2f259856c57ca3fff6e3945944c11572e639aec5251d5bdcaa95cdbb42c32c46312cc8da6e4cfce716a39b507ef2edfd550a4d3ce610811b2908e7921c86edc26ab8ad7be77a218a5196a0f8f7747f82a1cd7190b3c5e2dc9ac9ccb41fbd4b285c549957392d305fb73a5a383fc1201488e979e15a96ccda773a0cc4eeccfb66e1a4c0682d7d5999a1a764ad7d0985e9232fb703c7621e7ed0c8ba06f772fd64e29e5f3972e49326052807179242ee5cf1d56120682c73c4ea48c135024a3c75a62bcbe17c44b6777d0c3069589bcbecc80c056bc5643664cc7e89ee9ce5df543b1592792a58528204bf6981a62eb5f19384a735d040dfc2febecdde5b7aca54031cec4e3919e54b2759d61d47d964b17c4744df220d86016a73a04189c6ea4be973191b65cb695d9de8d7445401fffc8653460cf4a21f55dd57c740756a8675660c71e5c47dae0d2063d68e355747bdc3b71c743dc4f8fc6e2296bde795bdfad9e7ef9be2cab791dc2862421716744594a1f5a92630a913779a0bbc2dc8c55daf05a7010a24f81faffadb2c5490f42ba265242d34698453aa40788a6def27a7dadbe839e4ccb23fcb72c10d7748a86422dc2ba55cfc2f79adec0363ee4b8d2eaca8a0b23ad4b6a26c8193b9172ae25eaf52fceeef855a4a61e4a0247abc5a642a435463f6ade5fd978328883966085aa2371899f39a84c18d70463dcb9c04f3459426f43d3e23e3246baf6693e4fd216835be3f5f9377de1d96c7d7062d0c62a700b24fef99c6bda9e8f818773ac4ca5dcce6880d30c9ca28191a43629a020e57a32c04b3e198006f47a8098ad93fa697548c33d02ddb81578504ddcacb3693afa604ad00edebad0391c3b73b4766c3ed02f9025aa39fd4c368ae961d44114f3f8f7c422117d494df0b7031349de637cf57245cb4a818d95ffcc488cd887b1824ae61d3a8511d95dcbf495d9003b7a3ce53465dc1ec6fab9f6c0590f76372a6e51e00b8d11135ecdfbdfe2d89 +result: pass +shared_secret: 634ce1c824fa766f69c30548e34a772e828248e5ea4c4a7780ff38e2d7d3a4ea + +# Official test vector 21, seed: "30b5de5b73681ec08aaa03f6f2d2169525d25f4042a5e3695a20a52ca54927b85f8bb948fc21df7defc3910b28674994" +private_key: 93ab695549515d75a2caf8a97b8974e75407d5e56416d3a3010c304c99aa39d468bdab9dab3b87db1c27a2b831ea3595d371039345c37a892328287cf39255619494927828d95a7139871eb99496755ab3b689969e907cedb05a97c7976a31683f329fe0237798f9387d5ba11870cf6dd01668ea8d0a74c0aea46e13697dcc9846b1a8a9f2bc5304378154bc7cf8ec2df7f070ff06b085239589b1a7ffd13f9653a821767a36a8294fd59793abbb833b09d6e09e71b9062dd3055cc9a04fa0b8e6d41ae10001c18a398ed85bf31218532271332c73cea3862867081a8b2c610b1785412be3f42ea64917d3ca6779ab6581809d5f0412f579019a35c6ab21a4f9142f9d2a4b0c731ab447a002c7029b490ad5c1372eb6483a205fedda376ff1b432430e1738b7ab9531bcd48b4da54f4d3a96a00c718fc809303c50d1042b7e49457c9512e4f66e6b75415fa1bb6b23a1edec751c60aa619473b9c489d6c5c4935380dcb67ff7f59d03a33881b60818a12639386db06c6ee6313f98bb8c1163b2c8526744b560f1d7c672250258288a78761c99a8aee292a6b0b48b80d2495684891a28bf0c226de929b8229289f3e290d21a450901659c404e0b9c25a55c7dc39bbe070203c85cb3e9708071f6cb9e9045cf460939f29c321583f8695ab709ae11721924282afbf225cc54ad87c13c56733a21294beca82d8472363a2308a41163c2d60b7c3b42fe1b74c93a6a5146418e58697d3344006aa576d6300728440ffa0a6166514539bcc908cd1b3ba889d9ae234316a8d7709a7156635412f0eb33451942dcdb77aa9b4e29d1ae41b586ca960660e08672accafd847ff9289035e10e05f0c35d5b1a9278615105533c98ca6b1b930f207c5ac3380f2933e834b4e45983a92a1af994bc51ea5ec3e38389d2559275ca3bcc4d7c50585cea9fd145bf284262d458badd032f294050e01422fbe34c0501815008205ec4a8d43006674788a8d3a64c57470c953ecfe789fb3224efd84d4a40c921852056a8cdf43976648429729386e663397f475900655be634aab9344610fc6322a28d859b5214395172468a15570a171096c5401175fbcb0db8ccccc16e5e6b82f7732c2c47ae7d15738d650189b3702d859ee43bb0a0650fa0cc823761bee4a40877727eed58815a64c38a94b7de743688156a18368f7fa9a83064cdb972b762a97ba0bc61bd45650478661819ba109947a9327d1e54b1bee845e6e54efbb51c9f2cb38ae825286c4a1a872d4a0629ad00574d60569d6106063ac54380ba3cda463d41736535b631a3245f6360860b4d75fa153743203ea0846ce423bab1095ba148a18c2ff75222bfb295ee904cc83bcc89d44a82558753e096da4964346470c920499faa392a3c7258c5b17a770b50906c6518239d81301de60bd5522e1168a16801683ea09ab8d083c0250eb1413123164f95a36a5c053e706327c49ba727f00a6000c35db64c01f92f4a746cfc76c9d0b7810e559f9b12b0370075e42153c7f66bd5b79c94f4c80cb0226be6924f1a29a707007d998ad9a1aa5eb7176879b2ff476918732d1a810d456168ef86467f1aae56a673e40921d48440914568c3c98e33f5835952517d6ccfc0206c2cbbb79a43a428a4858bc5200b5735d7809de666ce5e124169b7acc44a3e6b1838d497873aa48b66893fce45c252813ad2e3b68c1c27ea4237841108218b8d7bbb8733ba43c6f6b2c7818b74fbb41e238ba1f5c1c5db2ef8bb80f2456f228592e952caddf6bcac9c362a031bdb4b7f422573cb772115f385b830ca6fa368ac3920e43b5ab283989b3c719e295867539047d4420f71a2ec046f031a43ff738ce87b67ec19c4f284cb1c1cb07938348f17332bea4dfb4c4417d7a30275460e498784f50d6af7920a78a69e070d2786036e3145e1d7a503f188e81b42a8fa8658e30a8701341bc9b7278601951b2caab4997dbcc7c8c15c00611cebd801b2b3b3155433240c6a8481a9eaf0b34f6750bf6c974962210f69a4022471a4c72fcaac2dffc4c603b6b4fd6b4d7806c0c275585eea28b8f010a1d48506b1516872b70c43b6576544b9a19644fc1d00a7bf9a59a51afa318818819dd8b1498bc1fc913b55c573b39633343c2691f6a8af8b65ad05559e1721ddaa391415979ea32a494182483627849169e2006e9306448025229ed2c14ff825a43976935a8a14b8448d6c4db642a1726823a2053f4f75951b80b47056bdae61ab68402d4aea6ead635f2262082d71c4ff5c78e6a6345a72505e23064dd773118ac985e49e4d88c64dd894322b0d2a712f0cccbb506436c3f0bed765ad0b193ea520580be4c12cd65f2406cbe1fc9281d37bed1988d7488f3925244454b82982c49fb522a2f83a7d131d1cc65cfc7179f8a043da781959a815b5e45f6e0b37269c84237424fcabbf4dc16a722cb171984e48864ef70c0fe14c69ee385f15eb7191249bbe3a3888c50fcde9302ac5aac6105503589b3748938eab5614d626c6a301599b623ada44f432bb18e359c7b223414a34945786468628c6579f9b004185cb7590e22f94e83de26c6a9b69702f704041da3ffbc8ce5fc2367a3a97c4b997bb06a01b8964a8534e2f713c289a0dc8c072dfe4a42f305785a99c0dc898d3104e0dcc62c0e600253c218f0511fcd94bf78497b03a08efea8bf7fc0e45d3545df2c6d708435414bc00e64c76a523bc0ac823fb56da247da4643fd9063748b23128c6ce4316bdcad4bafbca77b8ea6c10e54ad063a1433333252311f68c676ebac53aca8fd70b9404c1cf3c979ca0c492198a2f92294ee5ab4a2ed15100f20e5eb948916ca7bac7b28fdc904ab1911afc19a454af45e6a265a726340291bac80cee679e009c02254a6c6130227464b2fbf2a95661bed8b348ae9c759fa53a4b429c0b536fd6bc85d5c96233f90ca3057839a47b068855283487c90a8088e271a3e33f5ae5695d044c4d14ae8440bf03b318549600e39cb9d9d58ea2d2a5e3d08a11484801b8167d4c5afc20c56bf970a230231da8372eab0f5266686b4a3da0ccc6b57cc81aa29053142cf0f35cf0c83282893c25983ca06606cf255cc1b41add5947ff9322a4c23bee47cc49656a8581ab5a99a3797798ea77a1db18c39acc97e6342b8770550212718856398878900d6cc9a5963a71432e5678a12ce86257b0b32ee751eb181fff62ad98443f7d79cc4f85bbc67190a68504a24a3166c588ac7b40fed53318b8b452d1a738e59a2c82442feb013f9b2429b6c603f71619f386118327eaf0c13ea30fd620222af064c61aa8d9801d53192c61575e3448b265ea9987bcc84ca825943a4d51a9cbb5e76e4fe88cb6d92215f60b0941c46b89a746cc96c74cba7b097bfcf27533a46fcd928f49d670f85179e6b598ec595cf39c3554eb5f93ab9707d4a559069d24a4005cf28bfeab0bead80363ac608965141e252de510562ccb5fdf94c30da1247ddc4c80554d879b62d0b49eb3b21ebad10a50794545577be4eab070d30365dc9c34eaad1163b251b223e8ba45dcb77dcbab0a07fa635d8b841179a354304e0d249dde2319d85cb724245877a549ccd8230fac8721d82e8a2182e5cb63285ca8a0d049cc7160d7116d5c1c0127a9ae5fc808eee88e340a57a80964b21a353b08bd35da0dc1d7020d6cbe43f49547686546391d94b9a2b2d63b23fb2fb8c30f7ac371b3a80aae0470d93b610ba1681af1be2871a49419a23610843bf940804483dea0ad8d609500d8aa2426cbf0ca5aa353668a7151bb54c7c4e4ae3354c598cbac6e90949cf6b79a941c541c652351306f810494dc0ae743cedba7904d34c2e0b32b603606e33156bc750bbc477313219a97e184d695c701b2009aab8806709b8d376b9cb6a24f3b6d0a4157398c740d08809328aed069a52fe77cd68b9dac62cebe3649cd1b139fa84f6a2333ab702a30414425f50e25e41bfe9a2e277869e17c035652237889c37e3c86cde41c7585776d14682f3c0309a09c1ed43609b5b82e03508869a7f6b627c3710c58198ebe9100f433ac0df22d03934c1eaa10aa98b88c879fee60596a3ab29739b613ab741ad4518e6ba5edec190678b20e6544f469791c64629657b9b1c51eff1616e29a1b3bc25a55cc9c481995bbe68abbc383dcc02e4c8208ccfb57e052ae86017dfebcbd2165810151538e7a9af3a4c5364c02208428d2b98890923b7bb92d66a2907b5376906a61115c979d4b34670a91339008bb466928b30e807cbecb307becd228657bae78f5869c3463d1b73e09aa7f6274c7fd2a3a9cdb4160da310254462eba30dcdbb5c30542463266d790d0fd79c3c76f5da348753312e4949ff2955212edc46dfcf9e6c37a1f40abf556c865cd096c702d21239de7c22713d70626f1a3a4c4cfbdf3faca62b6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 +ciphertext: 079c990481efd07ae4b9248272683087f09cff5301fd533ab46d3391764af358e5d1a0a656aae24c92bb6e6b95c3689ad3cdb2ff9a7f4377f9dfe6ac4a56b996d7e1516e5d2127eadfd3a4a02caf6ce2b3d7d0cf37604bffe3b44c759231e485a298ddfcbfc7ed7d7d9bc4628153f47c06410e5ea8d2dcbe4178eecf94af9315f446ce0526005556fcae18fbdf92200fcf0bf528f07b066e8dd7154cd1d9ff02fed80e7c23213ddfa05698843cb3ee4da7de296f7882aab57b39cd0bd77d4d2174ec9e609cc8d9910dae1339f5b3ff84ada38c897d79771258450f00653a4df57e61c653819926307db435c67877e3e9d0990f8ed65e6b72ea8aa4512ce96c98132890449569bc164df74b94e5542c1ed573e82b5eddee80a2843478d77cb4691297b4d31a4ad9c1130aa9a98216a4e20b286cd109871d929b63404ac069d065a40bbb6f48ed46d719549562cb70e0c97a2885686678d4b2f9debd38be8b8eec6b57d48ab39bbc0ca7d859c090d1a45ffff9889a2e0deaeb28f16b8bc5870976ebc16f2fa9738465943942f30eea8510f3ca526fbf3876330fe9acb5e3748e04fe20cc7f170a9bdc2b55fc95d489150c677402f6b894d084d2b80051f093f5c9a9e0dc0dd0fab7d4b46bf5e6bd304c6c1895a22fe9a8c3d6b5f8a7438e93d2aa50a2da9b9b42909a54603ddd942df723c7bb7de5cd0920569ab8f37c5aeb7cb03c24f2ae8f6227454e298219cfadd873b9077b2cf8368cbf0581698cf6706f1001407313821d1d1713c9eb465aeb6ebd83ae07e57cb1de96606afb1840bce415a775070586812045ec8d04149f84b032767632c3d29c6ed58c8d8d1d914fb3c66338764e44b1be25517dc39d20d7c0da787da0a700d6d49edc99944f9d37b5741601c248e5457c5772d6455079cf0eeb4981a7d33179f99fe8e2263db64fffad5d7f6b9e2ee0a0d2efad1d7432aaa93344059847697f3127cbfa062c8eef3203a21319c3bee0c21a2ab0615ed7dfff5aa1f8ad3b13b26c6f1df39d5b7bb80d29e0b4387faa2322ea89d7ce888061fdd267b75926e128e31c6aa0f8cb6bb2e3416652c6ab631fb5592e4c9526fabb948d53136bfd7cdfc292375826e55d11f2fa160676acef87bb052677ac22590d8c1fe8723434aaa2ddaf5c12897e5c8c5a241589146e3c0419eba3ce0fcb7c2cdd59b2b936a2ac1ec4e16221485bd4f8b477356a005305b987f179e690d6b853361692f605f826c46b28b5ac821d7bf394c477e976645727ff07642f1f45240775a766aa9cdc1883b0e211473165e6f7e8ff9f8b2b6b8b0675c13d1c6052190506cd583b02d961476f9f142a253908eef2642b882f866828e9acc655b931fd69f327aed8967356471e145e9e1a8a40694aac47a5f6b3aeb522ab90006ca85d41864c305531ed12312071ccc9b05e0e79adde137e636832a0640b3d0577f08ee9621b8154fec9ebffe7ae0b74925163a6f6fd1b069e8c0083b8bb6d0c9e741a0c59caef40af376bd1a3b9a7e71e322cd09a2bb4c218dbfae2fdb6c2f70a3c1a784ce9a0140e94695edb8f9fddce3636af525a0ef75da4be60124e8cea81417bbda781548e03f05609850e1719ba2bb4ddb545bd279cdf42d89c13829cbf730b5e74ca68438e2547bfaf9040451c045ae998e9a0937fa9913d0a7485a89cf8bfbc6f78920d788778f27f7eba2d316aab1923ebcfbd62dcf592a731c5626c89b6b76893b9c16c2d53b8f1ae0841bb2562311fa87436b1981d342d95513f309b77279caa06b14b76e4dd6c23e7f6c482644c3af40d3de7a76a2d0df8fe958c1eaf402da41b5ac87e173a8fa5753e35e30de6d106a02a0651886b24348444cbd8ee46900a946e66a0adea73f2ef9aa0c30fcf0f829348182c34bee6528a15ba4521b4386ddcb4dbf96a33710331d6ea0f9cddf04bf23eb0200ba87baa2bd9fd6195c8e017a420c10259f72d916d70724f3ca6a1d8f2de635b1a385835c4104a244a1c8a936247c90320ff646cf19682fa81e9cc63ef05245363dbf42c9fe51f20498c267fefe512388e00997e12edc50ff253178f3fb56293cea491820bbc84bcad68b7ae1fb914e6ca37ef626e04e7e2a65df199e4f5275245b25e2fe7fd86ebcfe582908ea88fac778bbc75f43afaa961104bde49580641fefaba4609fa2dd098e926181f04248e26c951a0d14ad3c65aef6f5c +result: pass +shared_secret: ee1b62c612b20db1f35a37f94f3cdcf4d3c02f1a7e2ed944764ca65711cc7cdf + +# Official test vector 22, seed: "e335df8fc0d890588c3e305ac92c7160ff199e07c85760a828933750e3fed8c83b0dbe802234481ecf890a32d7a2884f" +private_key: ea4c84806ab1066a1665a830346b85ab6b9494364f2d46661cd97115948228557cbf7a541f34899cec8cf1a3c57c913d6eb713d3022b13c7c15ea35158b043b9829c0516c5ba44327ca81de2313aedd1a3e9a5c07ab07bfbab2686b9a33010a85382094e1c9c400714839ac2a2422ca6e10a96f70c8edb8ffab42562e7598d501168d919a6475e619a87a4c0790131684f3c8320466e002d619ae828324c163cc32a56a55afea2bd51625186784db007673f1314efcca127a90b53893901d4253ac3625ba543a4b875ed322b2c510a9522403fa08bdee8814492112da917c1548e93ac360bd651f311ba8d675eebda8e78b6a0e5d4c314d89100b58a4fe6af99979bf58b8b2a88229a53c73be55ecfe26c48dcb4ed005680505caf570998341eff71864ee44d030262f3bc1346e44795d24cbe346a9f7871ffc71fbe0c9f03c925fc9904abc4a58bda6ef7d408b21a145e544e7f28758223c1b2636ebe2647abc39b076c8903426eda5359c58b22be15c1f2405caf641029f6810789b5c150525db917bb8b82ef217f1b726dbb3a1589445e4fa472da00b3ed673b8a95104e9039e1248e14137fee3a34c0daa6b937af71b75337694394a7c180191b1137a92cd71a588ab5969694956369ee85a139dc552151ab48068147047b0d0a8f8a0a3373c60732fc0790d488784a58e07b0180b1a5f322a5c7609ba0759db31ac35431736564724a53cdec4cab8155229a7036524acc08b8b9069b53e497195f656b581a037d8309ef072a2810a5762a05f759bebb7a27dcc0ad3e4824cd2781a6a2431e8badd79902e8e492e40a9253e758100a19c17246409444f3b4bffd2442ae86c544061fdb5971a0e0a1bdea4942a8c4ad11571ee9460a539b8f49327db237e2c5b95b371b2259138f68252aa5cd95d3c2bcf410e9201e71641d62ec9c9896a86d643505c8b99a625a8d19c6c4e0a94b816b910156b7f125c14cac14498c643c8635d8b49962019f0a885b4a91836ba9cb16142ad712fc5c99137a2afe2195e27a006f9b6be6d67fa9eb00c9741847c1bb228036330999120870562487fe8843a967b362e1659c8337bba05108741340e38057f351a4605388874561f99db1c696b23b45f96a48377a18acfb4d7200b7cb65b6fd0672671259f9337579424ceb2315336919a84965ff1bb9cc92622adb3b8a991768b72d07c93898d815e4f49e8cc0500e64bb37bac3c4613b6d4badc656530955b9f3984c7b1a97d09c75242c169e9886a8e543c58812f4829778fa9cb20706dc84a4b5226786950db1337061b79ccb78c4f520b232db36aa599c1e800956a28f2e0b05e3ba11e1432c89713a4be993cfa552f1c11d0cb8b3fcf2525e30c2aab210ea488871430bfb2528858053ba499df337b8853959a10504c124569086cccb069b97a1b782150542e184e210a24c0b5447487ad5a8c291c5c8a9b3b9b701c13d7114e337231959b7c18b2631fcaa40e841ce72b633279e57a38e2ff26eaed13af3f061595b679cb0c886304d874392b31173c89889615ba9676320d917424b608b057974d18c1806bcad1d955b48420f927c6715641e6e867f073968a23a5751a799b08b2e1d30c8894634968b6450c48b7a4ba3894628697960efb753d2540b6b4432a6b59c92ec3398e9c0c476173843ce80c626df72b18ff7424c923fb0db28a8b1903bd19b963acbe1fb6f3fb27180490e82c97592d41abbe486128cb57999816a97c050ebbc4781a672d07acd13415f036b26763365ca756a7c13db0b1f46fa23f591bc5a5b527e72136368bb85bc52f0916f921b2ff3c96ee0759a00f230d8b141a8c532f037770422a95a495b3087013393694d496a0a4241e8d62547178e2ef3663e211ff7bb213bb69555b25e91cb7b34039b6995c8bb91a1e31937af23b09410cf9f583a76e04948c7c3d341c75a30aa670707ef83793537392917a0c2195013b54c0a8b3e4686c10d25239a03c3ed28c916f40d3809068c542eb8e0a321bab4ae0011273190bb1136d5852abaf8bf82156f2ec402725503b8849daaa9bf266490da991a56a30fe3c089cee7ac241bc1528a0129cb8ea22b1c90023c9d1cb4bb04268b60cfeeb8071e4b8d6b52798c3b960cd87bdc66ad467649d0a835b5153bf2ec57f12b93a1f055f88cc36236016d4809e5d9096762571c15863924797872cdd77370917720776b8ea9b72189f237e9d710da6906ae25331b9c82ca0ca257dc980ccaa23ee61ce1e681ae09aecf967c33505f83078bda132d1ad623373252b72109f6e6b8f5481dbe89b6033558b90a70d3866930a3c78e024b268604c8b3beca583b8b531a4a6c094591bf173107025ba079c3062a607e30647308987084341925531076ba04e03c8dcbf551b56885c383a5929a54c207b39e162348f7a7fb375f38896e7c1c6641b56557f52f4da23320252aeb382082b8560cdb83c34614c40b8e4dc4ce54b4c009d9c3cd6884c11c616520ae0d220e2cd03a869147ffa894d5b02c75007bb09b51c8f59a53eac1af1a0195623217b578bf4c3bf59459fe3c9ca7b677155436336176a99653fe677d0d9bcb266b2e5484a72bf8a86f1b250b5666e40083bd24cf578c4f9386bce2f034d2e9347835632a1ab39726c2f467a864f5863c0b498491111221bb2e83386da51c764b8597e2b503a21eeedaa6350683aa82659fa276d9b8ad3875a019ea6a00b31193c9284832c581555d7c478f81e259150c41e8c23047eb0599647ca403a7f19273a765c439535efb20a6861a1b7fcba48927412af6c9364670e2e44c6c630a930b9437529f0afa7534a08b7606a512fb737a50b6a08c637087314da4bbd76c35a312c091fa3a863a3b8c7874501c8a9233212e592c828829800c9d174cca70761bf8188ff5585fe1d59905373420120848f22ce8d4bb8ea253d3499e0ae59b526555a2245eb0fb0ba2a38cda009a31f89bb46851a4277b808018e8f23148789b8ec69d8c622247e207d2e08491a3945a60aabdb7b5cbd260a348818c8493159199717bbe5305a5c785c4eeb26dad73c76a04bb28b740d2a761c8c02096e0b6dd297485725ec59b107086bc40e71f61b90ba596cc905b564cd33d76e2b1624bc3a2e75440474daa778b79f3819d237a41d08d9260226e63231b5494da150093566f31cc3a53f581880512c25826a7981241f4c90ee3b3eda1c277b5c157226342fb7e3622b0665109fb7342d13a96e3eab49c53074b76b3a2aa26c899bd86c8a26159ca278c034e323475a0b12f447df223aef827597eb5422bf26cd48b6a40b40200898430ccbe1a6b8ee1635c761623a956b270dac22e3a24fbbc8cb62710a197110491aaf8b89575d68b530530cb2380a5e65cdcc044b52a922b346e50005da16b8c2189525950a109f74b225213c28113bc793857e9c384914809cac7c8ec5667a34b007c7eec63ae9ec21a46497b6b836cac1c451b03814b7c47554a9e6039842418468fd5860ed6cb13311c638b86680ba1628ca09afc406d944cb0ac11b928899cf333ab54be5796a6e0db7cb2b2c8c9b9ae6f300a3d508eedd292c77c589c6682e2509b8d712c6b41669a5b5363fa06f6bbc0bd272abf0c423e0c719ba90cff3b0dc2c390e30b46b38281864b5d8bc2ab339c48bd9cc8fe70067358722cfabff6bc907a457f84b1bcbd6c765ada9b5c684d290c53614123a02660ffa22ffaf602111b7612862d2d204c65e82dc232798982652ea51a362743bea629a8324f76b693124b2c3772111c627e9db55c49fb7ae4204222d850311ca5d99213173416df4bbe68b6b6fb514dd4b821bda1b50f5587b7bb254a65a2d9e6a2c5baa0e71b0be88199096c516f84a20f38a9d32520a0064e955697008a9bccb6524ee56825bcbb776092c99a040b85c2e6e1669f08932f63635f1c37e989a4f8b2190c335e31a03aa06a755022c895485780bc90a969c834091f2cc64960d399ee65359ac245201b948bc2827943a06165255b0492a7236e7b69b66847824d8873a24b6267acadacf330f306652dc766df9269ef911068b50dcb199996a294b8f935df477f00b99882a5a5fa8147023737592a2d797358bda228bd62440fb0c3811b73ca1c8fe4e1c070498b11bc816da770bd895a96338fd9a6659ffb88df51719bf3a4b208647063cf9ec985ec087fa643608e0aa23ce7749ee3c7983783992961a409729a1c6f416a0a0a5659e8320f95277ccdd31de6fa3e41ac9de3293e3ab36971842d6f8b2ffa9a26de29b0c1a26815362a657a5571fc378425b23089bb94016ab2e180888226d1f7b448749280b978958198cbc626539abaa520f4c1ffed3ecd10dca6a4d6edfa0952d6e2785cbddbd5d6b62e0449476f7c6f9ea3621237bce0f97b11fe0e65776f1e92da38362cb376eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb +ciphertext: 5ead197f374db8ac3b0108c6b48be7d7a015a2f827d92c6686bb717bf55d48f1f350327627f184cecd044b6df9f775f53006d4e102f22053bff4fad33013d61b1b889a5e3e905ea297252e2ff8ee4d099430b7f0876e39a2202b3a2370253c00dff9cb62a1831dccdd4b95d60469828ead71c71047e90420e0b89460f9b5c5f0dd9c83e47c9551b227d7b54a0edeb79f129d150f8753e92f69ae75919fd82daf1eed6954c9429e39130265ccab4865b0ed1814406124cd9d1177361573267c2fcd41b793778cf3c4d23a41177eb8258b599f095082ef1e91d36bceb56a1c3a932e512c5a73b6f73255a74e76b7ce114002778a3f00e291592d76c3dfd33f4e5d3f409284f6a4fb654ad4855d5184a355d7e5a78aff17320536d83e3a33cd14f6cc2376e7697fb712bf0ad2c9b719edf9aeedf66ee481983fa551b973c3f7b17fc848a39606dd4fa254bd513bce300330adae0cb923a743730c83db40670d0c9a406bdbadf4a25cd11ba16b8b67ecc0aa3d632b4f8892b9d1571f0ef3cf09b29b4d956345be438a1f07444c5b83db5d34b2a7783f52039a27a771a2d114715e6778b6f970926626608423a91d485484dc14665b0cd31f7f38e017ea4408476345ec571eef240c9b04b023858b3e7bba470c21f1cc0883dae601d107a870e583a398198e41addc692491d11afa17a8f6041ed6990e0fb1ddb13ba2c0638288200c94512f0e74af90507fe23c69577ea17af0db97a32113abcee1c6fd15a0c524b72ae35d5b7fae7f9461373a0dce13d5372bd6dd3b9119406ad6837e1b3a05cfcda080ce1cfe8108c050764a2ad8d5ecdb5130bfae0d3564ba8f48742c3080c59c884c2fac31748966b2e003f14962803b4885625467306e0b0ac4009b377d6c46207a04fcf17e507a6fa4d37ae47bf7a646d202d378a387be5d4a9e2a25389204aadfdc4eaddd5fad5498ab1f908c36cd21e971812904bce453bba6287016fb5ed0e9266da7e7d5961555ead3fb8df66ac598889442746b75bdc9f5122037b4b6cee66aa613a239bd409ce747d53bccbf7ccb27d25067f28d851c590eae2a855999d5a201c79d83c63816b919bd22fc42f8a173fec47a71f5a9e42103738edeb4eb6e933cffa23cf6edfdff13bf7ba4494ec055b7779e0cb82a99fb739d0bac382eadbba1c8221983f11554997ea752a8069dbe7430d795350199299314aa476f5f22595d429663d66b340e0f58462f94d8809d7f798574dd7424bf21282fa8301c809d6efc94b5f9240a65504614ccf509295de40d8dcd1d6303e2e116de6b0dbddcc79a456054b4375f20969c58a98fe60e6ce828ebbc3ac91721abfa9148ee24a2e08c342c58dadb89926e864c3df8c16e92955b2ecdeba9ea53286eb27dd2348baa27a6115f216e2d7c7945d095514b31971028f7344757cefa9077a8a41064c52df9e2fecb7a963444597c98ff1c946e60607c3d3fff8df8723029769cdbd0f3e5a9a07917dd25974f1dcba2c86ebe31c129b553ee528f5ea636ba87ea6da7a170e7a4bdbc300e5bc1726044ca987bf24de6051e55289aec3881c16d59bec4c06043337b1b99fe2b6579947bd41d73bccb9509381a8f29d00a101397732f4e49b1753f464d1edbedbb278912de0cda6e11f4da9ba519302ced79e23e3e0b1a87157f4b7b8e1ecfbcd1230a2e1308a683c3be1865b58c79b01119f2df07cba766ff6ad23c0b2fbe2b664aa113067a19f221f81cfbad093e873c224cb34f3d34acb4d7a4b781edaa6042119924229718dfd348a72a7b1ab35a5d877a13b9feaf34745bd60839d13ef6c0cc1e7ac1897869fc2f3f7901f6a1e5625727dc19ac44c74b67f3d8d78bfabe83127a9b8f16345172632dc2698c299541cfd96ac5a99bce1eb768f52840d6b61052458bc072862ba936a9901008b7c7834111a04eed9e10604404da2c2758dae053ca3011d1bcb92088cbb8a4c521bbb9be7f81e424bf3d6ba6dbf8959a58207b6993570a6508420799795bba2e987483026cb94e16834b28715a7812d82e8155ddc69771e6bfbc43a0b1e1b11ecbe73a4e509d70ed055812831be7330fcec915f06920e89f0d6b6ec5a75f036ca9818d6145af671fe3f695aad955a3cee0e28dc66c41e2c0bf6575e51344e9110ff33125f445a5c2a9bef490fd0d14097ae84d09be325b603264c1933cef9d0956a51c61fd17e07f +result: pass +shared_secret: 1554300d6dd3d2dbb7a1647991daceaac9bd28f6bc937cc8bd3246c48e219f65 + +# Official test vector 23, seed: "fbea1bc2c379f4f8fdcb0de260d31cdb064c9ea9b1d6dfbe91b3692add1d34dec9c9ffae7bf5e72ed2743ba3f9f2e43d" +private_key: 2a3a066cb7ce2fd3976cf377eb5500fbf9887c2375705c6feac85eb92cc4d423ad0dd37b4b1abf98d72a57e3905b9531b3f9382a2817b464769ba133c3a550036abd7a704ef0026e832b5a0d494362025debc90eb1a03807b35832aaa00a8c93bd72bd1908819ef7165358541659aca85c2e640987d5cc3fc941b7777ba63e17987bfb81869a484ffa81a83293d87272ebe243416728a92632480112628463d880c8cb23193b7038b765cafd629605b0a1645a2770635b47cb35d728a264a03c2d2c260d965a86eb9603b16c33a092d472c0857b632be44a04a2424f4ab1f1ec6fa54200c1bbb4ef0a35a59bbca8b889889332577835121195d38248d849087c996933403f74e56c9b3406dfcb416359cc9912cff4f69b3e826071c5029671724c28212f0b85950b100412bc574a059aca60a3f1c76ea45a6dc88cf4998c21805f9b17c3ea7793af98224b017ce25bb16676a1146c933a587d98448d7fc188e6a510272770983b964091bdc09b10ff341064da0cb347c8ca92c53eb83bab85248e0859a4a933be5078feba8a8ca12d8b634946c24861fa7a699069c2c72ddc840ff20c4795a680111222b3e52116e64134616f4b223e0fdab1b7a514c667155a42847c4c726e2c7211e675ace1412303390b6a2dbdfcce2d435750c94799a82df899227d344a81a5422af0c05b4a605ce5b00a438fdbdb80b8f224051c7c934937fcc8889c6baa43e89244e1bc5f9b136a2b6b956a349aaa3cde7338e1782faf951518f29d492842a936cca4cb09e81ca78586558550a7e11452197c29f7625e680138b03039612048913aa4a8c8b383e8655900549a472dc552ba39b617bc82405830cb186b1c89327145e1cb07113dcd39110cb7b45dd9a92a4b28b6e8794ca070f1e398e603ba39b5a7eb7b289885039be10bed6a08b296298766752ee392e5d693396b90e71147463a63aa6b69e1e3c1426c403bccc11c58beec481bd1f5b5a26657cdc75cd93ba89f834594240295544420e09f5b0bc9e76458ad426ff6b6247534aae1a04a6a5a67894638c88bb858c0c21af8376500b33143c917148c3244c2bd176fb134154879314d111bc2193ae5b03fab328db03837a177c8caa585caa45ba51794a7954837cb671017cc6325196fd767d50a65ce798754754403a0af6a1c25de2b051e502da59c20e80528cf0b6e509772114a0e7b43436877cb0f175f8d1b0a774c36ab09a9d13013cf20667100ac1a314f0ba661ba72bbfb86890a48929dac8ca0e40604b17bc9434013f707a2e37099021e1c7c8564e7848bd21b45d13c020b3a2c09823194cbb46841675a92c888bd1191b3cd78b154f650732b12634c3b8473cf044471a8a54de3a601a4545566e9076d0149c8e8760cf0aa1a820e7fb24ce428a49f572ac1028e7109be2ccb41f5e02bb902697e537305ccb425b8cad1d63fecd8a8e1852e1988419e7688e891bad58155c72002f190ad27a55725398831310cb8b14b06516ee2906ae86874629b7073e8acc95548065275a66560d7935174cc4dc8f4596d000d288c5ce8536666fb275e33cd68e004210985c7d146bfc1b2e1b9a1ba1048c6516a4e4384c48921f271a4207369963b75c3d15e859322715b8a59b116deb2bd623acd158a8375a2c403f15068f74bfbdbbeab602357461b9bb1ac5d429929025ac2a3b1200376a953704888a2b304b3ea608fc10b1f05716ef9466a670407ae66baa218557177193df197f3d692536c02ff5816cba620d23b0a866980d1820d2417722ad440534a0f15e65573cbb8a896be183b83cf2b954139a27d4a4eaf267b0a2471182963bde3503e7b7fa723ac20e97357f24d5b6cc01b8b8606aa6ee251578963593187109452b352ab1f90a8928999b87b1c054a3b8ea30c4f79907c831636c9071277412a1fda2e5631a86e7124f0393e1892857458327136a136414cd0db09e7a9948995831882b1f08ac2b9767536e41d19fb54ccfb3565a470e1350b9d3a81ec11043a3a6f445433db604dda35af06aa636bb88426d0623fbccb6f9c43ee1b32f822416335ac36c7200e60ada28096bec7cafe37c3aff80f0ec27dc4ac5390e0756e080ff198bc11ea96178b55b00a21f5c81ec67744a8b236100cbf5cd98204000f931898eac7cc091389ada7c7f6a193f8174b99e5b0c249517ac47c4ababda18b523a665587579d884b7d98f778758c48d28c89c97441e7ba1ddcd020455c73a30377402c13c20bb8bcf9042066424a9081c9d44139e53f3afb7d9a687c3510a2f4f22fd5ab37bb778267053055f38158c3762694aaa89596ed824a0a10490c49619960b79db3174a227c7687ac0b4533197799969911a24bcf1e19a4d6224e2fea4c4da636483a09c39c0e63531e367b7b74c9734313bad6056228d00d90f8806b6a06dfb45e4366867c2175d692c66ca91083b5ad8566bfb4816b40da9971bb4855b44e13a04eac687af1a025863b8878827c1a06360e84c24e8940e404716e665e570a12b0532bc663001ae8cb94aa658a9394b60a6a1c8b008ec7bdf432002dd43f34fa04665278057cc5a0ec65b7315e831681e4d5ccc2f95588089122b18b4cb93df740b2910ccb49142942b563d2027c8552ba5bb595ef35943db0bc2c912d57f2cf166b2b9d219222a6a71bc55ccf7cb9c7c8c23398761aa58bd8a587013841a266000a375cc14018cec577260aa9d962799d9900a991873b175194720f50a90310c4b8b5248c0f08a0b609440eca877c708e1941a15af6407d5873fc62492bea381f431c8a727e5fa235b39434bdeb8e0918c4ab82a5d735b0f676aac18463f8e65cf2b30ee3a97969da994105d056d49e2245ac4fd1912a44b6f3647cb9c377df2c7f0a99016725bda1fb78670013fb25061e11c09fe1c92ec21a83da9a2ed2c95636598f63c264c972a4365e6580440b0327d3638628e06cbb7ba024bb2481f64bbd39a5e79c46b43abf0f405fee38076a600468f033b9c52aff5c3ffb6191ab8b37dbd8730ec63677e6b43afc74331631fa0c5263268b17bb0a77f2699e839e66489a8744230aac9c77ab765cc9094a8077c12c8e8dc6bcfe900e831c02cf01161c083b14677f01878655394f31296a33c612a18121cfba2f7a1358af8904b5e8c00028434ef812ac1a5d24bc2e09eaa5929c5e6e05683d292428324fe2a021e238b2717490f4731aeff426ad085574c9a1f7cab392d662fd25b4390a694946c6684c0a02d85da187769632b6a829cfc24999a317436d4b47473bbf8fd73f9576c6424acf65e88a4bb230aeec1f5e08c7c05a1c84aa3af9d44c25c81e4db436285a4b1a572f950437e277294de7c0ec087b8148607b30229bc97f7907076d9842f5a77fc5644177fc095e7245eaa7ba8f9c7840c99f852a109257b04bbb3679f80a617ba997f5b5b22c14d13807ab9bce20cc271c9b2cb5dcbf67e4a0df65a5adbc0f8634670c4718feb06880293d7c7184c52601c69c58f110cb1ef961aeaa95133483714b11b57b71cbb94e6a483444f65f293b7d349a02950079ecc18ce091ab09d647141065e037c2041c932ca092ac7b870e4a64caf14069fc9845cacd62549356c38fafba2a7f7133c5f7c630721fca36ad23767e4d86a2d1ec8c41da18355a9375659c9b7c04539864b1098b8c862dcebb94785370430498cecb064dc8aee2e385fd775749f47c1f38b6d6d08a6c3a5b2e148204d50048a3c8e5f13e2e3059e6a3554a636acca6b634aca6da71977e33a74f0a56e78cb856b816b73681a3a96f5a4328a1911a7e063eef31440fd21e5f281e9be9954113acbc3662529911cbd8221a7227e2d38e9bf798de61627d67b8e8f62f2e10bf66f24187d2ad2efa071f0b2210e53091e29be859857e801348092c572b91b59102e325104c6c1a49c7654c2bb4df431c12ab0f88e1132b63bf56c1616028994a304536564dbf18b54a16b50b9c75d3f347d8cac3f3bc2dc9827155c507294014c8c92e4121386c936f3bac661f4c4f8604a2b648053e88792f5ca9a48719bed781ad4a7bebd8306b5401dcba9a69a35128a7a89d22b97ffa5c2336cc5cc090a6cac001dc560aa25f8f65093f0c2fa5540b51f56862380996a4c48d90a68f8956ef49019ba809b84496118235e02535a37b1da0c95845f18342545ed12426a6e5ba1bcc7b348585669c003b02033eb024cdb70405f5c5e6077449d8c4e6e66d65a23b9bf51f40230bd241bac33b708ae7b2147809ba2a14005038d0d197c790491ffa5c74626d2f6c5e0ab2c69ba55ebc83195044cd7c4c00d84bc716d02f8bcccbb4f85d5e50c6efec71d667cc0338e6a6ca392e61bc1211681ce762516ade8bdad2f1ed78a9731a2634269505d6cb8212b9dad2fa70171035fd4107ff47c02696b3489650d5ef9c6f19fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 +ciphertext: 2814c86b427bab251a952ad9e541866a832001ed9859d12101dcd24f0d739e08a6b9a62d1aab7a2818c5f9dae38ef61423844427a2b64c90e1ce73a506b0302e531dba5617f739a4fd960602a9124848185aa176d57301803d2135c299d4be766607a219866d714055f6c6288d364db1e8bca2bca23f9f2a4e2af7915e556739f5137ebabead85315fb456f9499501b519283db6c67bea65bc915ca50ee1c77b9f035a15ca8d1ca5bedae4b5762e9acae10554d0eb6174938c786bfec3128bb65ea86a60379b477b88ca97df17539bfc142c67f0166be78a8cd3cacadd4af9f148354b869ce61bf39dfae8db4109b96a6da80f3c7b8316156234df427843874cb33bc4597fcc32cad20358ae650e82864fd407f06750b4c3015ca0d831e76cfa0b6fbcb5c920c9729fc729fbb1c404330bbe965848857966f50835b6f39a42d465563ee024343b0f81e7feb02baf0fa45cb866e51fd3153e79aab9866e91417df875341515952d5fceda11c76a6c3b4b885412cdd880becdf1613a05b3d48396e64b6446f0b39fb10ab170e5325bbb2e08a650c2065f85a7b4d5536d294e6aaf2350828a922f6f565ccec8cfb22bff15352b81dba6f97e929f7637000f46ce8279806b21ef3890b1e0e99228499507093dd808d4922d86d4dae2ae50a26a83fba367b50cafa044ff72efaa1ecaa9b759e630f254118b5aa10d88837c8add3aaf04da5f214765663fe46eebf244e22a3cc2ff30ca287b28a2cf6f96d8fabf68963ded2d72493db9dc71bed3eb4dbd6f9c2c73ef8d1f7250fa95d40dd27a689e0d020989b11d3818421101d6b850b6b3241f503e464acb922d2dbf587b69fc560f180566669b2ff16032a898d15bd79e4b0b68d8f9485eeb58c65c8e6b6d2e35d3c923fcae3c478f578beb54fda3dbbe59be441072b8e5b6ebf0f62d275d09169d02c161d458121358d3f5558318af0bc73547cf0fad3ae03b6fce3ee42907bacfc1656e3c1d0dd54e0c01914f4869fb9b05b890c6f71854f059903edebac8b51f7b68313b669adad1abc2c65d0d6a4c3aeeded37fc07770ee6604531d5aa3319ea94acc1755913e8b36d4733809460e26d3f3d99862853ee8f9576f911efeb47c6cda258f1926620375526cf86bcbd3fdd0eb0f848fba9834ce2499cf158cf772f56cf106c4d9d4221a5c47e1c387d39dfc0d80652005a0d4597f309bb39c305b02f73095510e016832014b6ed9210f96d4270d7da0591d1800f88d90639f4aeaa80bce27b46d18fe412c1d1293891278c2f4a0469439513622ad18824d8fbf924bd607f475ae2bdd27f1d867f427cb5205f856357dde8a1de80d497cb63f882fc316d9a6360462c12aaf05e08a96511fb06161b1107aaac9b5c2270ccee41ed68843fd279e31fca518e5829c3f01da85e8dee3c1c236732b5c945870257d6ee824884e4d949f4529515e74c26d4e5fbbd0c7639b4c9bc521d555b77d180cc770535a4d0f0963bca767994c5367d9bde70a966da321b3152b5a13bf928776ca66e14794b1a9b366b26eb955480cefd0048f3ed26405d2806d1200ec8a2541b1040741910a9f7c4dfdbae85a1b5a323b12984fb29bd254410662975f8976ce79bf511a418fe0cdcc48dc4228981e6f37f0dd4e0b2991baceff40111502205d77569bb9fb5487d03f22c7a852a0b6c620ea3f00b03fc13ea0220c01ef9dde592c99e8a01ae7604949a4cd9caeb936c7be6189cf8a332d9f01c66caaf7a6a17bde66d97342cb0f92cdc225400cbfd4b1c5743b65cc443cdb7aba62a951ed6a19f978ef15d0466ac128f51481f44e83c9b4445b8cc6851802ab5e0f244df4a231c5aac27b4ee4290375df1bb99b4a6ccce29bc0fb14d0ea5d1cf4083915d1448883fe4b6d081d01d5647d10338e2cd33b84f489d31029c4a9308bb6426443b79d27be8d0b11f058b7e214523cea5b443b783f54b29858336532bbf772991f0a4b0b67aa00def079fe2b5ea4a5f4a6e141346330b1776ecb7be83e2897d6ae40aa9c8cf0f5a8bda5a3a114c2f01d97c8795c0f93d396156f678473f80a3ae82db82dbbaab52a9c4a77ece6c8557463448e519ee72889f16eadc57c82afb28e4247443f0bc48278bb4cbaeadd6527e25b587425cf3710408f626b87344578990fadd2ad8bc2855302857ae91ebaf38d45eabd4ed4c67465f38f38235dfb7af77518e60a +result: pass +shared_secret: 321f4ce476ad84c9f9d3b906a733b8bbd8aa0c3301d81d9cf7587345c098157c + +# Official test vector 24, seed: "7e87fb886bc3c7c9fc12569f465d2ecd12532e76cc27c65644c8d3dd603b0cb2d036c5974e675058f271d5c82ad7a813" +private_key: 09080dc7cb09012bb14eaa2b8d92a71c0078a792ca0607908c04b8b684a0aae139231991812b5e763b2f191526268519469673713359936bba126ab5e0b4b62d8a5fa0d76b365212d686ab74188878aacdc1b420d323ac67659dd2e8851317b0c132ca57bba44671b7b9a78f6e6c73503125ab718bd386b2bff1b6f026c2a2da0f5a05578b8013a0b78fd628cfd7090c648c0afd11a9fd768e56dca02a6a87c7c523ea959348fa0dd38b5d380291c99a989589b6b784bec0cabc181c33c45840700622a0e666f3db15c32bc4636782fc688c8d5433bab63c35d3ca26eb488660a4d141b33371413156322fc2a9be424fb96712e7b6a324fc1559508910124c7eaa62b731147d1331a375b597494cac741520a07082d6945ea92b7f326d3830814f62b20c84179071182dd707d4bc87010b406299c11a633210726c59184767f96720a918de74178d397407950c62974b3ed703b8305e9892016d859fb1479046bc0a0e1766a985266b950d56e9b178244d9a5c969fac3e1a41983db574b3c9b50f2797c807b03de8ab0e692ff913a79e1600a4dc8f4d537368784844a34797433c7fe2b8c5ba14af06bb9ae4c5b301201a55a55b2a3be308a0354456f0243882651d91f69cd5930a27a25874b45b7a556dbeb65ba5f68f684c643a81c0810143de8c2352b0a92e86c72db570c3ac0ceac65bdb5912cb59683a88627086a06a00ae99922fac3a47afe5451b813c7fab053c043069e70c0624a40b6629ef46bfddc36f82173abda6a36642c4b3685ea23375a1906c9eb98e3e057889671d2d6ba894876816c79a6ad476363b27a2811fdd4baba235077a037fb780c540132a046432f04aa041f25b44897c885c8ab8e070d5f07042c2a383a9886bcc40c7750e5ce85c5fe1b217151ffe2ba53bc9875af281f927c8c88529f6395a75783098a9b3a89cb494a131d3118a51a868ce76b84cf3b2ceac1ae145b070793ece3916b86726cb52bb1b40a24be7a9580a29f1ea9146ab5d787c2f3f777638fccaeed72a74f0959ce5b0edd45bde14c4edd0aa601b82ff6b4edb9b77c833a8b0aa59252c812d25bb627b0f82e3186f4ca2ace595cca41ac2612e6c409011854b033360f179c397b06c82e43dafc47b3f424d4d59051048c624e999fab7bd73b18b13a9305064844be040fc5c4a033b59c097299e6221e2c5ca3b9b05317376ee4b4e9963b172802030ab06e403b6940b5d8258572d16ce4c80a20ec0a796b06df076b73e2b648534520dec6ef0b57f61f4b9b5519c82d9931e863461d26d41f35c0a3509a1d684cc5047b9482955d0387808a26bacb2b3922ab780b7ce43256246073b6c5900f004a3830fc14770debb620b1569f6c98db310abdaca61dbd337a9773758ab92fb490a9fb95596d1087a696fee494c0e5739a2aaa63a77cfdaac6a37618cab56a6c6ccbdace66f7eaba24be57cf1d1c1cbc42517604c17801865081f13f3c04c9118444578b95b6a55e51830f3c594b3662351b113d57c6f49640ff14468dbbaec7a7ead354506c0adb923a0050bb3f89cc82b2cceaea4582f1998691bb1845a22cdfc721d6b088bfc52d6a8ca526625b6fc2267c277b9e86b88d9ccf81847c79a0075d36f9b7315273870d0239b8adc9f9dbb05a1e44e7c4604aa3947ee2085dda65651b6069e2c7d64f06986f527c02525e103b50363cffb93c9735135eb1a0a1bb056842278badbccb43810c3727028fcb0f4cc5dffbcb7d39590165a01ad4092ce6954f8c3bd28663d5e3c35142b0351538b2660020dd30d35c0bb5bd7276a8743c79c53a1f80146c16523080db316382d2c9ddce7857703bc3c939b4d5372185603fed280dd8b57fb6b7d80270049aa09bc6a206ccc47f935ad40602a89e9a633541f903a16545274d8a51a40150cde7555a56bcc80261d9522acdb3390f6a5719d57705ec8aa871ba41fbac75254349b15bb6af427bc1053a8a05e2d766a3b8243690b1352a59ea4f2c18e202cf69c205db06a3915058fa01fa8e4a35e3c26bd5abe05db1240687616d873355b6485dc858f5441d9155ab5e6c9fa115f46815e6394c2c1cba717cc0d8048561bab198a9449d8d9ca47803c4777ab6e55443b3ba176a15a0167826ec662877a457e5b4e7401b9b30883bf67b1ffa09f306c0e7e44a625f44880cb0d125bac36b650f8430c647c68e1ca6306e39c61142c2a5924cd0c9cd5a085f4eb5dc4815711e4aa7e3a26e521cac85c303e420a18a3393d996c1cb68dc9904588301385451788e57842305c064807421034ad845df2baaead84acee401fd912b191c89f51c436ff6bcf4b33b0b2120440e65777f4bff5dba7560148364046598acf3d46b70f7960eb9a7c5fe893c87c6dc5741cd84b080b7a4d0a596effa363b6441848d849b72a7cb9f1597c99b7eb6697bdc3181db25ce213c35725bcca20c840066dba39420763572f187758d05f6e43cbd41296f7c7a637cb49a57b00a2a9cfa7b2bd1745b5cb0255b1a68892431704f4bbf5c4844d0c1e9ca5bdefab042fe1ad30d4491427543cb39fd11717035690a77149e09a9173a433dde8a29c40744cd4a7d2ebae568a392981326fc8bdc2989869d6a56f6715ce65a51dc9a5e8f5c304ab6937f41964e80bcb259b9494bb713b6c882b94af5528a6b1bee6886f1da41d5a10b8cbb188aca7a820761e10b6797a8a5aaaf54b5f724c8fa9a41ad09bf9c9875df8ad40781ec93748b428cb0527c9257aa83d412ff1755d835343ae05be3211a447011944aa8952f2ca001153f10bacb18ac64619689ea6562f23c0fb5a33046c5dc5b7c37e2133d0987a44c207ae5abcb38ba68e13505fa5a05be45af5887606704b7b4a4e18e5b78f518e8680a4c3a678b5513cdfa3b18ddb285a562f00f29cad2c984f60c005f73d23e3cc617148d6a53177d10004981fb7e8a1cc362224e48d0cf69d28f213082b4425368c2757ac8493393e5495f35a41646225b3741e5dd1bd6e354681e8b47ae5c576b19d7c807feb4abc89ea94f2d150f946920a0a3d6bcc3d1799332304035515273c2c4e3764ca04e1653bdabdea77819e0490416211ba7877ab8028f8416fa08918c7a7791ceb4a65b567838283cea96997e3ce2564cfa0d41c43868bf6f6828dcc78f5c03afc4422675b9fe926c5d2cc197046c38a30cd5cecc076ba9bdb3c57a4fc806e835ef6b52b44070e4689baa7633458e0acbab3a781aa83158b31b1c949338b58ac034ff2c2c80d3bb54ef7c10c5281e0d5930f3817b9893032246f6aa82f7f6cb29a467395340c6b81347b2997f5514d90c95e7e84633813861c488ea27200ebe7cee795b560973effe3a19c32950e821ed1140b454c8d5da64453fccfee09565c7cac7192952c360232861eaba924780895ca022737ab9139645bcc7b6edc67050c5a90a4308c44764740279107f2799a455a8e4b2d384012d66956384b0cdfd108a1db088fb34cf0824f82ccc7da6a8824a90982a92ed3b46aea02837f57aa0ada783e8766887b538fba4c33b157c2138e9a9155795399cc99613bf9b707519f001241ab2336e96981aedbabd2f41f6673c4bf28929f777f2500cf0e382f8ca2182b9b8e4fc36be4ccc4a1293aa477a76625429a68178733380ce950d5871bd7a0695254cd4367a1d8a94bae95304f23622d07650a17341d401cc5133a772c8aba82a63feb19db78af7fd850c2104fd207579649b0b9eb38c9f2236f1669cc31a5a116474c9b66897c4f6d96cef6428974748bc066338a510621d9690e4345c1a3756dea7355148d45c89a16da8867e164ab538e01e35489c792f79a53a967277054297fdb4365fc7f9bc15068b70b6702a8d0aa9968a005a5422c30596dfc9c635c189f9d2ac1f9481167558992b21ab4dbb54f88742167164ff964c64201da9cabdce9b458dc8cd7489684d4c8ac7951a2147b7358098975837083723eb85a4889547c3847d7317cc88a1c5ea19294358941467fc48bc6bb38486ca05715058171c7b2a178cffc838de1ba0a02c02d4049960d477d9f79a0b1b17ba9345afaf641aaf80218d41a71b9063a5680579123992cc4efc596ddbc0e1d2c66f035963f7b11c7d74c35158ebaf6bc16d6798a24ce928274e125cf3d51419bc6926e69aaf11562f541446df6b77c625f9ec820587b68f1b50e590132d9c988b65c0a86b6c721384b9283cbea128904f5a8dbb6b6a5fb2ada47918ae3544c7978fbf9381f78468b0265290181b8f57ee043690023bc9dd4360fd13514c79cf9e3639b792aa1e70c763c52a43773fbe6732d262f9385716528200e37054237c04504a8169baff63f6fcbd8988928266537d344dd44533e2797aa03d8cb025e705a9f453e8ca044ed0e215c83f03eb98b6da9da137ff2433b319d9ccbd0bf054135d63bff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 +ciphertext: ff7ff6f6c8d57f4b3171c626be53e470c28f8686823d6af92427d22f30ef064312f00bb7daa97c68d5bfde9abcae3f34ad687f914976410d121ae4790852d0b8a0d607dc39f4deedb8921a58946de99ef1a5223db28cb3f2ba6ecdbbaff27bbb8bec11c90b7711b7b2fa139b18e49054623fe5b08b6f5e416018a6ff6bae5daee3b26bc0b46277b79e02645f16d84ca6dd362552ecbdaa6901ed7f4835662bd22cbab1405e8c301f6bc807a8c2f31741cd617a652767f3fe575d2b057f00b91503c457a60766924a2033d1a62c8e5fcb882e1cfa608f4ec15e74a893e170c5122a86a23187113a73478ebdc71b504a9890bc5056e973fb591e4f2e2f26c8143cd9c6568fc00296b0608eebfd14956afc65ef01a4a0feea97dfb7464d10646e1d18ad135b0f920fe274856dcaadac5d4f2dcd54b73181997b9d1f7521eb70c20edc40815d4a28965369a7af6e01663e163814d01e7500ec5143910758bafbc990bb4b9b34adbadaae3e46110aee4c3dcde08e51a9fee0c59e90c4a45409ef9226959e9ecda9d795dda6b2c3f3ccafe224167df3390e88b16f909b031250df56b821e0b1087a9512f72da732004770aeaa08f8738784f3da8b8f33eb73b3cb7430be7ed3ecb27f38261175e340a15090b29eb6a48470d434092cf937ea238b1537f5acd76cec471c2d4562040beb08b9b81715f5732c2c427cfb44aee961ac73cdedaa24b71bc937463a83503f251a03d6364fbb4604dddd584423a8012f9de10c91ec53852084a19ca71471c79fa158fa47458b198188f9f21ea5e5534f7fbbcb0d32bc5ac2ed288644945a5890f4a86c50609cd63e372ff1ce093056fc12010ed854c4aaf8cd2c1dc711cab1037cf36579274e42af5f21499781f9af2c3d1be65a6bdeb0d39ed227d556f36fabe8cd4dc33b94a1ec74029c2c47abbb3841aee0356e48baeb9e2d263572170d6349327e24836e55dc3f816d1b91301d134041c12798eaab3ab38796b10a17ce183b913af67e201e8875d8224468f2f0289cf9d8a3f196fe2d4051b8f5a9dac0fbfe9426f4521cbb622a8b3c46a5791283d6564f6f823d2b97f6bb58fef2b40e0afb8b6e3deedec06dcd4e55427ffef8538e18a95cf43c0543e7ef731fd6395fe0c42203f168f8c48b1f9dbb61e9958529ff8de9bd8c2dd8509c048c3e54bf8f1433c9d7585b3060b21b624b70d11632381f30174444346b3ef75956ede16485e2156ed2917ab9b020cc672b8ed2ecc6daffb7eed584705d405a515d16596c4701cb89557d9b46a5ec6302ef6eb43cdef5679b5618e376efe26254c1407b70334b7e3ea30b5def506191f4b2d7e148d94ab9e1d0cbb52284e90eba2461921d6fab64034c05d3dc80c92fc2965abf4a60d8d3f50cfbd13f3469fbde1737ea5f54911c590a4a008b3497a172cf0463d83fb20efc9cdc69e8910f5755287b9dcf6946bdb27b814813c6f515722d7e01abb9a137fa37a5e86f05695134c51a12b992e03c8689a91fcdc0ea6d9612f4d3098d415c199051b68c3df5f101af6929711c3487acac92391db09265034498a5514b647cfeda149cf5a0613e5ed29749470026fb622280e5d43f131bdc2e80eb1ef801a636ac13748dc60c770f471e514905dbfac4d554f020273d64b72dac4caed2d9ff446dd31e39d03d43a32188d6a03def8e22f60beb1e21a32b0d56c8eb19ee6c5ea6b249c73e2036afdcccdb0f945263df3cd25eebfb2f90c7c2804f7ae9ceef277c0cafb7881dfdd9b43f43510a78f36862484c70bf3587b981181c4340141379d50922fe43390c1433e5ffb9578f957f2aa0be393baed2cdf481ffa9d5914856ea4ef2f31ab5ac2cb574f1983da1796d8706d70b904e6962afc2a5270ed319734bc6aa48bb21d51a554b98dfc0d73f395e648ec0786e03c7a69011544e3d653338e8f272d56854c91bcb2ffa84a060cab98d5c4aec1cc80ffcab9c82cc551b461564d93aab81fa8457f2a12b80d26bab3f4519c01be31dec9c67b4aa00b2124ef81f25bc71f40af090297e8bfd9ce5da48c6c29318109927b54d7ee2463175cb134d8299aa645782b7bcf1efe4a7f00a19f688d0e0f63f262ddb7890be4a2b60fb51b00d8693d12d49bcd30efdff4a123574debb51ae0847fd40d1ae298afe11b3089b55c130aee7b128d07a90f0d4c27aec2565b59ec01e1754105c5bc95fc01fd3 +result: pass +shared_secret: 3f9a0a1579989654c58a2d33470a0ab5b6587419be2e9cf4c5027ed252c48494 + +# Official test vector 25, seed: "ad1424e804f306c7ff513da4c1e8d445afca7bc942fac5c0b335733aaf70693712ecbde26ea726ee0f9fd9d52a83b1a4" +private_key: a902027dfa84635138ab20cb6b0cb06df848adb138ed618d93b5857f11042d2c753e0765d3a1c6febc1fbef347c58b4993f5bfe065a9464098bbcc2c61aa1ae338217592b657f60cdb39b740871103019d17504c4a572f2c5490ac61cbacd3148d23ad48bcba53a7a331e3403c13934ed8a3a6f794c263be9e1b4fe96a40e991798987a54af53048ab9646db8b06b9152136713668a4ca1cb3947469ac27c035ba69fdf43c2b4128efb31aa7226902e41de295cf22b6711cfc34a5276dc6ac9329d30269e637a4e92a80fb481e123c45e9bb04b1724e4065524612ff66a30633a4888bb8b5a15b8780a10ef8841c35c54b90b98f156dcde86a0b78a8052399d0d4bb6d2822a450cdfb5c245f245274167388d25f278b2a3b13bc7ca108d2e09a2af50f47e82bcd8c62813375d88c92f9005a1255a4ebc720146b97929925d9940797a95354d3cb64e0a399cb1ed1f1b395419c0332293fe37c6d676123394e40e3be474cc211dc5240dc855f27ca87d7af59b799860ac3427959516a4794ec9318d1826e8c529ca7bf0e4613a7e9299a416c4dac9937733825f1223d369fe773782381c1374b9f0eb942d5eb446f07c3c4130b3dc057e4222ec6a5c365f2b8ca618cfe998446171b2ccb940eb49a47b1cd123196c04128e1b9c35f30b38287b831ab79191c488de7b4f302be30c84ee446b29e4476b41a4901d85cab92767bcb88cba8b91a23aa45e088f2c82bffb330cdd9cc4aa6b46b032e36a885f61627357208a1b4031c858179305a52f57480483a6bf30654022fce933da873af8c64a74b1b51f1b9532a6caf0dca3fb16b50cad1189097b18526691cec9e3d2b6d53d1687fe64b434a7084873593ca8f359365eae00b1220099adccfa4c78b5f3056d5bc6e3ab96aaf917d4f1073c4a517f66447a4c15a26f96a9ac3c4fd624283757abf435aef7a6de4fb6aabdac65a99792e548e2c2c24fff7259bbbce3d588ae4725585517b5b68b712166171b9780a8c46b3d07b1864ba4a4b5c88e14666b09733c3ca7f1a185dc950e6854a086cb8642487a313a72f916200255a70d94a43cccd9664975d50c2995c56ee142c53bbb1f596a9454b1bdef4a11dd6a21746a3d499c6e3d7209b1004924b2b69c7c9e4286d871546bfc37481faba482616512b3492c4778fd1977bd079ecc188c3172d3b6193b7032708981a71fb72495c6e6787c7012748c062cdfae690b3ac483b985b2fea1e16e51b4ad408e1f53290b48bf4a972a3676862853ba348b0f8d730fc577657545da7500d989c657e787783008509d81babd7227348c574474f574aa60e976b97814a5f7c886af9c3941bb04ec3314ecc1ded62b39ed69636c07227dc11d9596103dc104d96b96cb085cd18ad7087743795b28bc6ad4af3196dc7c7da1907f6d7c7c862b4f9f1045c5b7c57907fc319aff58a113807269d9a2deaf4ca4ec501d6a35c1c23710d674f5b0ad0c5b14d3ca61145b4c8aaf363c7560a61923fb54b3daae6ab4f979dc78b971a105f5d5bb3d8f6201b82175a215d16c501726c8fbd903a2878152fc471a8b4236d6c10698284ad07a7f4b1784aa893669539a7ca8093d81c367b5f51996e3477148b626a35326010d9b7a52044d56355f7008375e2237b312c3a399f265304ed53382f766c21a6822c4864cedc9bd8a26b3928ba0b206d7f446b95161b5cb4415696cb50739b8b7a484470c8d196a762f586c5604f3e0c7bb41669bc538436a413b2630d12d23b94486f3d8bad351a5cb277933e6b1db56b3850149e28a91091aacd9a87beb84a457bf242e78c9d1af9b0412c0b61867f6981cd6c6b8b6b928409f606c4fc1ff6f6453a73b209527bb2e25527e791f729414544c8ac4c7c51b9a64591102c36c5942365498cbe7f9379890a70cd8999610c06e7504a96b6a7f839617fe42e2d13972ef49af07ac9f35444d89a7454e1af46b239fbf2aafb87405768760767a2f4721d7a57288a42bfecb512ce6a023a3221c74266990171d09aa61596787984584697bf80d79dffe0674e416cc74b311a9cbe9fcc7d6b185a5d1322aba71d6f11b673aa293e037464d214e9061ee19341b11199c88a78e4103b41f90e849664c08c30e3d9c011595199913dc231bdfcc98b0ae15f276054215b1feb4c4efe3200f3e260b8bc589d0162aa2b1eabd229f9ab6f64e528e0f05b3c69b9c9f192964a3a6d2c96b8d525f0bbb32b848e5c244409904f1583c7d58209b91465b9e3a6f2a515ecf55a778119455bc57af5aa885b64100acbf9746787b9757a17c1416c4ee317b017348f5299661436c1fb5c8aef032929fba046a601804b7b4474461957c8eedcc19c609253c23ae1428674b5ba69264ec1ea74f825198ca71c3ad929465b2769338a6359132027aaf46173415b31ca0624d7e6c258a91388742b0f71917df814b75c38b06025fc9682876b597cd65cf21943cbcb4e77b1314c4b487aa46493fb7d5f734d0da891bc51cc8fd0454a7c9bfed5747daa43e2c95fea422165e02819882a535a7e3127396120a242412bbf7384bc91372f640202ea9ea5830002654d40f346c1f2025dd648befb332bf9ae0809810445a2c91a6c51c68ea19b01ca287e3e967139f58ee66b4632346cf4240634095c59492fc3b919be49c7f32b00da0a9b95625131e24a3b03c0b44c0cbcaa7fde1c7872645950818c69a62d864b251e54b10fb6820b9678026353fb3bc09fc90cc5842849252d2c6208dbc7754cd70904f15434a8840104b6a74814b555c69897b4b2d2a69407715f93ab337a7005007218b5536a89020332998a040599bc688f6497c520b73ebaa40b735f41d966caa24e655848fa66a2b473437d14c4f80357e449643cfb34e1759676b0b2b3733bfa6b2324357931a72866e99430454fb1b65797a90e5257037744c0f06415fed93540a68fd2bc5ae74247940c21a061923c603c4a89309f8a7d1ae48a29370908d9137db01ee84c3fb6d4bcde28ca63c34cf1012bdb060d830c2aa6da19ecc0c0a8fc0272e066a8d6225f3a2873a52992768ffef0bd9b109ced760dfd2c3ce7d17cc95095f95bc84f448ec51331066ab0126505df1273741220a869b518cb458b00b5e1e503f53c639bd2bf11d71c45e8866582c71c0663ccd19b0519330f36594f1385ef82199d76b4507318fde59b6ae4185f3811f15b873be902d80c44a9523351653365e369be2939f6f17f753c776fc3421dc75bd0ccae0fab9bcc2a8175408950fa32e983cb736075040a857501b2e543b043b617c16001cef203ae164effc243d4b1cba2f225f361a7d65949cabc32b3b3a782bb18d03627cd2507f1d122a46c3e35f91315ccaaea110709f648114220524b8fae55c8e6caa27a693c3a559496d30db2458674392575accea61c91cd3b9188b94654d15e7eebb383e19d114bc0720b7552ba0d42d85863e984a220bc4632bbd7d1c33f925836e117b209351ffb01c8923edbf4a54d500ce7dabda45021601a5b19d9b0b736c8b1e30896b285a633c647658622b30a9b476a8fcc251e0971f8938063550cf39718c86b6849c7b55319b7a4e817b4447d265bc5189614247026c82c557be5a4e1d302397865af7277646b442874a5b0d5ae60429e4dc5ab30c132052030d747715dba66c16316a7d10d180b6ea88a6e97601ae1131a2412b5e83039c75a1cdfd8c0764109d360094882725c627a8f9395cdfaa7bea40263c8479b3a3e1d68cfa5688cfa19322b833e0eb863171a3f48b9910e5289611c4d51554574cb239934cf870550a0f7a4e78b1ac50b59ac5b1de0f348f0315e627cc2e50707827b9f9c6b943010b46a2b752500526840a13d3123621462bf5486820594c40318b86731e1258de6215d76d68b58083149a041394114caf69198277a8a57082da4a440f799f78064310660350b0ab34970e6d9c9e53a2a24b2c95135971db128eec54cc21378b6067d648c85c8bc21bb9551a0648825719d5fcc67717083e9d677abc523340cc24da5b489933ad7d1c1d12b7004bc1a875244a7b9810b29c77826aac6daa1753681e2b9cefa4aa3a5c4cdd63a844166017f8aa79db97115b86c447bb7e66b7964a19d410149fbc475ec1bab8b06cf96ba0861062f89a621776507ae40849b82615f0b6d81ab82a92184ce9b8b07f69311fb295eb83cc5cc4545d89362c33c8dcc7453a70051f40a56691e212897746c17f5002d8c15bbb2b625ef267914d62759cc01da4c8437eb3facf336fa0bc0e83a9ff51c793dc44007a63432309460162257d191ed8872ead9a8a66296a7e55d30d86ddee023ccb84744bab7db9c015a60707cd7aa0ebe7b8cfb1d663d8b18c5bbf06da994e7eff9d64742e2b4ecd70cf455e2195477c581fa72af1ae232e7b5efb374d9607fd958447b7c67e1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 +ciphertext: 404d2a66e2815b1dac12b2ac170bd54d035481a4df94a2773f03cfcf3d0100524e7fbfb8c41056b83d967ea669e174675b908d34dc4d1ba8f7e322ddebb1a35a38d3243e7d3b55a65915e2fa9dc43ab74648db1e10ae6b516c3e547343e85914db7f1433f7747c8519c8f3a4c60b579b6fad545e1c31b7f92032bce8b7862861c87dc8362bcdc54c1f4d57d0f54a2815edc2bf7dfbb2691a84dc970032901033166084de5b4513d3982d3a0324220e432bd8ab501934ddd9e02e9bc8a47cf54fb33dcbcd71a6d7eaa605683be12efef95aa8765a593a3210ff202cab70880dfb359c57dbdd4df350c5eaae4b19e665d5f14dd12661bebb33fa574aa76d118b058a7cdf2cedf0ffe46e10ffc0e0237ac9f26553cc6e576e0ad8b563a41519d7b7fe2d84710470992d36a26f29ad5edd385707df85f73de32ba0eb4da2877f8881ded4a46c8471c506be310b70ecefb3852459fba07b1c879f2f72ca960a7e3a09c02315a7fe5e66359ee2d10d7112b41987db9749a48ee25b30e2c8cd5b16b9b72970b4f632960e1365968dbe1de58cc7afe07e8354c9a80aa0fdf189cb47ad8d257cafd6e7272c3fb026db7fa0e114d04be0523b149eda1e1158fbff7d99db920dbe5c8460451f76e124146a8ebfae8aa27c0971ff4e2955fcf243775c9ddb08d88c250268e01aee185287681e1ac7790d8f6a21ad61cdce1a7cd4ecbe85bca908ba7ad56ab27008086d7d351a4d1eac429a76a8591ee4124507a73ce204d7bdfd1f36f36966847726e44a7202a9181a5714896350567eef85a7d19e62b210cdb90d43e8b54a1684fecc4941993e93063e096df50b911bfc6cfb6d1b56b06a2c45c0cad9229bbc4d0d44617fb869d17dd72a0aae77a9c04045c125432f48c092fcb641f8165ce30ac1e382909e7bc51e057957e65103f1d9c24b6243baf375e45381c7447479292d4762bfb7ff52ab0d6c2a108a1ed717dbd8029384b72d554b7bb178ee6f7685a27175a595a03dd65a5ea1995ffc30656a4bce5b7acb0709185795ac106204dd4230ee71e56a53389c7a634e1175ecddf88503f24ed7066ad1b5b523175b071f2f44aa3b198b6bab481e69cdf1199cee43dccfe7e6cedd1e371b147dacd1f572373e2d072e3c6612b7920a6b71186dc35070d98c614a9a82fc5da515148cb29b5f4c4af120fe1c5d1b8717960b6359af4ed0962c17c1e28137702176fec18311138927493231228859770c4eac31c18ece82cbf769a5357e792da69aacf714b41c138664902fb556649cd93ff0cc3b57c8eecb81be7377f4c8df23048d530009f16537c2135bafc07d6ad666b8dc24d7385c316a69df4e7769ef16814563f1989d7a7c593aa4a25f3b7b3cd9baf3659831a4b9871ab96d07e6c6f71bd5ca81aa66ead3aa21080f8ae78d8fe030466e931b50e9402511bc145caa0c30b0d1446e2a8ed36e60efc4f86371161a58d7259dd748185c30b445b49829e7baf11b9982a01e64378ae9b205787007029c8673cbe52d93206503039731b7943334a58682cae94ef5eb2c39c8fb91615fbb0c18a9452b478014d89a5714630316d66e775294ef96bd401a55fa8ce4d2894c1a1182d81c89950f366dce9c271c4be3dc0a71bf48b8f9068e798ff1ea2ac3a534dc65c591fd14d5f53d68ef39550515c3631877b9e953ea7690495e67d3abcf1e5c7ef3ea1ada99f3233fe47180a9ad000031113e4faa26823615b4b6f68325bc88ad783b6376c166a91bd753e5162b8f5f30c68c04d85291e119f14836100335d57f78033080d9cce8932ea6f81f546ef63e59f9d4d7ea4c2c459c69c7ee7b6f7481cd2d584f30e7d17cc9909bda2fd14247595953748537feb6e9007a5a7f58f916901164bc91a48f63c92fec8d2648c83102c4d1f0b10cd076320e64aca3e2501ff913106900fa96aaef968fb677f92325a16bea0be578fac616dd0da218b4bbe6bf1f1c296ceeda0c30bfa5321e5cecd626be7c4275c1bd9dafa8bf53d634cf36983b958b6af3aaeef9fb1499433737fec3f7bdbf5e49f59a456f529429eb6ef83b87a7a302e888aaeeabd73a80936103b7a256bdf8c01327147accf69c4428660902a5a0e4475b47d94041fcaad68b63cb417fa951599e1205b7f6c9663aad90bcc31f8a6cf3c4359fe2d68936d6fd7c567cfb0aa4786884e498eacd740a27045c3f1e683a1198032d +result: pass +shared_secret: a28945631e9d080f64dea8dc345de2a4cb95048d5b78cc573afac0fd86ce57b3 + +# Official test vector 26, seed: "7c33ca0e987226c8524dd56c811fa4d1ccf9995b1e4e4dd5b1481974e88cfabfbf6787775c2611cefb27ed4403ea9b46" +private_key: 6fa78813f0808fb375e817a1aa133a3564c1bd632f43a517d7d0bc43386df21a252c71c707c5295109a5f5b64d8d8b338b86ce24290a1857364f69750ff116fdf273cd6861fa085f0ee8333e32cae0c4c202b6af2be601a62c1e78ac3330b96dff58c2037652fe497bb9c6b544460f58d59bc63091c9dbbad4225d4f4a2ad5936a6fa20b5ef52be6d72b8b2c9c9ab23a4937ce834364068a6a9feba95c41b577bc8e70d58425466bebb66167384d6ed37dafd7741e05971b5509aa5c7969c908dc71670e47c45358170f12b9d2804149350663a8a9bb45454929813e7c7fea462440ab4bef1035277a24a9076d7d11256ce4cd024157c0f2a37111a5305459f220aa4c569d0636ba1dcbb918903edff43aadf5c8843a99a9031b35311522d0ba96d6514ab0ba44908749422782a66f29ea4cc916adce65978b6a8b1be6b0bb930427e8af9ef176a13593b4bb1ab1eb4e816725fa182655750a9d835a4c20470e6c646c6314c42559bb2762077b482ca069787836d8d94412d946330a66dc819b49d0a0e42393311826507aa0124c47b5d402758b40d88bab51333f1ab1a61bd81ccc561471c239d4f2cc2af811b93250e4624d8817539fc95e90fa7a7c344d82477d0d632283624d48103e40fc924f1c5d372560af7b96bab49a3de15abe1363e17cb9fc722e986b48ed03b0e727b126320969a56c94428ba31878c6803033689639c67e5950b55f35000f90505ee871c3bb27df9c5253634865024201d50384671813ab1cd77ac1261b08fa9702575673d8b3b40a02530928757842979df188b2c697406a4800e59888623365b6a3299710eb65adddf4b85f087a87515fe9c46332fb3e825b9b37a40d48ac1af52886ba7742f2a528ffd046b4d72d85b49da1fb956b11886562afce32c7dd3771c9c4432871762f00bd72eb5cab4a0cb401605d18c9b66c20b492365a2520f391be37b449866181903653c40312b9395e57496e94c5a913d5a0aa7b41daa33e4c3bad134569e1039a5fecba93a3be80221c7f5cae6b1242cfbc6b15f33540caba84755c2dac7b3239b6aefbccc239ab170b9168e842e53308f9e737c2695a09513c1dc213e7fabc79950aa4063104120b1670b7ade210ba6a22069441b9f1cea4964b7621c6b842c409d1093b8abf7a9c12a9972a7bba867b07af3451af3cd6b61f58af1d842ea8e4391de05f41ec639b3c63a72c4e0af51ff8d144d3654fbb2582c488241c2369dda7ba047181535432fcbb15d58548a7e991922c5a32ac86a80725b0aab1b3c37639e812ca9568f00b88d84b3dc4ec9580b1760301a38ce7a78850a2f7b0931c1c729481c90aa367882643a432155e472ecd1280d5c68cda283304646dcfc13672ab9a72c039d1909650db543dc15bf8b2a94e68858c41c17f2c718977bb0a10a34bb093fb318650cc8af102c1ea138a73e392bd8100f66b287d2a0e5bdc6b63b92db44aa2a42251e6276079c1a53e896764c201077c1e052995ea609b9948cd04e175a3218a25288009b44b9a72cbe37bac0801821f5575a2c54bb367530cb1367d36978a8ac6ecbc718107318ac28c5f18426489536c22359004a478799fc50a21baf28dd269c34c218395c2a06ab07559157142c46ecf7517dfa9192b0c08e8a2524b46c7543753708b726ecbbececa5218849f6b0142b9d45afda4c9a68ba91f6264e4d6a4649aa66aa6165120c4f57b3ce81a3833978aebf52ffb536f61b74a25107e8ed440504c546f1941ac762d42f0a10c890dcbb79b35d93bb85195c8c58d9b27a934fc7466631a5451939d61b009cc054a90c143636b3aa76fbadb37dddc5afc231cc68320940098fcec220d26114fb88b3e10cdb3a98b5df06d2259911d340d27798b27108b2959c5734432a5f45298d4c9be20ce912c199ceb1f53c309047a3100c5400cebba5d6c6e4ba7ae707c38cdc7782254b280b1c8dcb85726579842674a7d6061185556ce3c841fcc4927264712645b6369c30fc388d6899480490e9f223e7435a3ba055b96179c4e625eebe824ca0498a2646749d04340c28edb1077cbcc871ab64a2c23b14fdc1a45b063ecd263ab49936d325cbdd7a80d171de2e6156445655629bd64ac08963824abc09014b497ed50af28b1b62b6c9d35515a0393341ddc9ffcc42e1ada20b880b35f49a312180f66b866c4952d92f2bf38b08f6110850224909413938678c8f9585a0741b561a36b7680644947485b2462d984ae5ea115fd52202643014607067b9540457a3405e7127e841d004b86c094468a0743b82bc70569c3388338e0dbc6abd1456ca3afc4564ee9d361ca0a708e417aaca1af12151d5fc93db4b652eb990a0335c799a27b713172b6949be937b570384f3627102dd2bd784c97d46c8a2ff2a1d2a0c438f0281cf29971e3c58df77c33b83b5252cf0e72c4fb9448aca6a3abb06a22677c0206609598c544781598fa318bd58da2625ccaf7ae759b774147380f0304163b0786a9203a1169d943b54b9b92f7bc7be5fb17e87a37dfe73712c33fc0824ab448a9b2295a7364629956cac2cb6ed54ac085bc3693fbcd9cf7b44d4b318e248ad737aa1b821fa985bf7f219828b1cabfe66deb269a6be49dc3f74af594c820748fca60961fb04f22ac2cd4787b5a41a91195b8588b3a74a1a188f95e50ab047cf42fd5b63fb88ba57dd24528f90c2f966a1cc91ce39ba848fbb2ec4576df188350f587e59b0ac0848d71a93cfda63e3ef93745c6516cbb69a5505b1f900aa4f91094306c84f640050393f1c751a05872aa7b027f678b1aa2cd5f97ca25806a53016eae4412a7f23ebd8a7359e5a706a11415951ae2a45d60fc999b66a255cab76ef85601b2974c462ec4202f83b2ba85190aec7c6fd6263d72e19f7ef71b6fd37694ec1e56090290549d002c2da8b18beab345f969bf1b23144486c299104dc7dc367265902469c45d7788c5d23941c6a1608a12586692eb759eb4835c537429ef287b6709b87dc22653d7a92cc314a295a6a6c939e33b3a87394cc40cb284b17987a088fffc3f401c2b072cb72b467d59f930d82101ac725c79d54fba036aad5760a615cd5fa1a323a87fb63a4472228f124a3ef72a086ac74245cac6b7784249d17c7a19a126b28c7530c1ebd6a806097de35177a5070abe84bbe3b99ee7149c57224357c8624d08ce6467b144e598701987fb460b21e53957f57ce98343a564c63fc466f7e04bbbdaa63ce79448364ff1d9c05257219d03b2d90c9c0c299026d3c0aa4845050092fc7424f1ea03716a456bb2b935a2be5a5570b1eb467d54890493c4977300344887718bb54aa06bd890229359ae33395d7a7b08a71465297780f54cb0d2125ec1311d6bd31766470dc18810848706c0e79c8654c6c6cb35d4f62ee70541e92982ba570dbc289be8e842a31b7e7158660744992d6506e1d1c8bb512f98015270376158228319cbb7a2411253a98cbbca8a6d86c2710631e105c217b2ac05f813474727c1b089b3c8ab8779ce91619352d86b38c5a622c73d692814fd36800d5c009af0bf0eb6734eeb382f70412c2469d10698071c772e62c6243cca236c2676fb0258487430998ad99a1456d29d79977c810953b138642754c0bb993e8b9b7e3b3b7972359569c44bd6576fbfc212f78c0c33362011225d2596bfd2ec1a4b721a36259fb723c6413910219048596252225879bf301c20d305dd3bafb2e62ccfb1c3d300b5460ba561f3c61930662f3641b763b2f5b5b2682546cba9a15331b8afca63cf68b7a1fc2e49c5b4042a3a2b2148c427c9701727dcf3371bc7b13aa62878c8a358f391f02b1fd3d2ad663c4f71c36cbfe11581e1995d976ca37440ddf9c4de2b48ed9c492730a977e017a7065cbcc811bfd155d1935122e12325732505c6c568fa67bf7968ff6836f765c242b5b9966c333ea1161a336164d72cc5767e40939590f07b537788c46265fab1bc3078c470e98dc1b7a31cc53a83a0a7e95c4634754a069007341396371ab79f6343b601b50966c5999144cc46b6d06089a879871bd1bb9c2cbcef84cb8fb4a031786bf778703b164f6787c5cd63ac781424f8550e1ac992a6c04bf7953787047b043632de12698e80526c813e08f36dc1db592f48968395817566886bb2c7d3fcaddf331273ec7ecbdbb3e5d70c823323fa8a1a15e1371534cd0462cd052685950bb6b6833600243e35c7047bb20832f09e1d854739c5b425bb32bf86029e1159d79ba70293badaaa25385563cfb4babdf4bbbe341058d3817e9a7941e69adcc867559b822bf63d0034c15de1a9371945bfacb1caca4fad8590f723014cf5355228d850d99c57f85c67295a4afa0b9d8e1da6065ee0e9e43b6da97ab878370142b7b2b346179050eff0a4153943be66d9ce47c6772362ba795b9da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 +ciphertext: c8940c3e69cf3837c2792ac9341408c5106afac1fc3985744f4d0289f745add955784e39e345526da04ebb3af35ba4b4a8cf8ab6fab0cd9c27b03266dee9d0c224f6a3e481e313af21e485df717fd89bb60ef6cd991896095eac6d37c20245223c5c2b62358a0d57f255e53ba44663667aad78d564c0c6b1a3cca8da1fc81ceec31d3f347d890b5d829f2c93b82d25b6642ed1b911ec82b7032ce5c0e56649dbe11582097ce456352f842095e8ea4a14dc3ed29958d548b960380f4c50dfaab65accb98d74862dba822c438dcc4a21ebcb3a99f89496aece9d7ab098e7deae6ff750f979e32f16d5796e5b4a68cc10a396d1894066c1a335b4a15069916b0e81ecbbc526192c904d857bfacb6434b061a94c55904d20e478a512474ecd6da3ae06fdbeb4d9db1d571dca82e43934160d0f36e52cbbd8f9f781c07067b4e82cfa9ff0ab971502d9c09a323c36ff304198af9dfe121311e207d9a949591f5e6e64accf451bd14c06e165a177dc4a47414528c85c1375ad952cf16fc1622d32513405d0959f333cc139a6c27a68976f06b21d55f4332680dffcf12d636f68142e13e5f05f2a8dd0ae56328f1b0e409eec89323c4b03f693276bfe99a5dc16071d034a33cc0bdb6a533af8d2b755d4e4f89521762705d0cf88a69238439f51a2c6982a82272616d34aa986db27404b60a43b18b565faca6263a888e506ddafb1e8898483ed24422ff52af414227c649aa280e7b1ecfcdfe6e9f852a52824572964d9a0309e0eef481852f344c727be41f136f5acefa62275b1eca25ece000949e5f93412deaba1f35d979281fe2e687b3ce49fa69bd2e70fac2dc72dc546ff68b2394d5066e7dc7e1e8e4461464235820b54a2672ea3d541f582e8ea28efd277e8cd22458962a3d9d8d1b3dbfd978402e20b0c25dbe8093632454498620f27646fbe1ca40b07fdf986399f4c742ed706b3e1c3add52e20a971a3bfd97e7b77b557da18fdbcaf8d1a53ae79a08dabeb69bfe5be215a74791a2686c8d13f49146cfee7eebac74e8b0b35d1e5d638b10732c2077594683425c11600bd90a61cb7deddc91cd16faa1b4d80b33e37cf89a73c5a2066831fbd00a6c838342adea2cf7ffb9eb9117024a03e10331d5faa00478d8c9826c2df0f44480ffcbffe3e4eec957c2e95c135c2ac2f1bfc9d9c241d1550869bde95c00616f067bc85cbf1a58b3d53ed57dda18e2668070f9524d22591717ca7426876977447bb4ab0598d52ae2145b389d5889f414c42236e8ce34677a3948214683e4083ff91d96562a72395d3a3b18262db82cd484a5351dda702a03431859e3832c4ddc46eae03250b186fc1ac8837a1407df20a3cea689d163067cb3915a067f8e32d1137d08fa382abed6912b0669c360b8bf42de50a596036ed45e5481dd6e42f984110a632ef441a92489444edcd716cb9df602755a60a94032dd528ad2627c0cef727f5b21efda54bd27459b3e1d8b311098f10a1534b30a34975c86110e3b8cf37dc1087e52097e5aea8e4cc49c62d3770b4d9d5aeefe42ced080a4c946c3ba70d5e601a18e0f0ab985eb0973ca252c65fa89308dd7c2ee239595f464a290f570046f31a9549efabcad5c33d6ce7794d08cb3a42f594f89489eef9486df572dc93259e412a9c310f878d785ec432c373801cc9319a008624a3d2619d74f0caf877322d52d091a0ee4e1e845637e6752f610870b8bd9c62e1d7b53a84a6d8ce169c7834f2239a20420d5724f1473dccb15eb74db3b6465b8dacac10d1507d403919b964df03eaf7be3d86b26e7defacf89ddac3c6a21f60673cd2fb9f4524992875f6c0f1e390b969389d6a79d06412851c5443ce70aaef5f6168d8ba1441036d197d4cbdab95b144044fe88ce36818f2ccec8b1769108eb7cde1d9ed6030e39e2be445e8573989f818d660bf94ac95f2db111e28a6ba839b94e6486dfb6d75ce48168b16feb3e6510a862ad777831ec3d2ae73eb15722a45ab65f921a2bd39c7013d39da9e75a80975c2c9281a6efa7c6d26bd80ab3de9980074d9a59dd41d1b56a4ec95a0b5a9f2aeb90aee83da8eea8ba2531f095b3f365aacc6f3321b624513e35fd3c9087ff0d32293ef2731d81d956667e0b2be7c8f44d3238931c69d022473059f5c014282932194bf30a392bc4f1f8e3290824ca56b0570af2cdc6a80028f88bd7641505abe9cc7 +result: pass +shared_secret: 5a2913f3ed09c2f765977781f18823602437334e5a5c210a71f4cd734fd10b07 + +# Official test vector 27, seed: "54770ea1252ea2857d6635151194f5f520adea8a41e409ff498d40c271359858fe2b084d5b96bee087b8e8f4dd4e00c5" +private_key: 93d973d0a7b385a29d218666fad6525fa2788a053b455422c2526d556b1e79a17330c18063b054f0e238ebc1ba8cb874836989c4a7c75d364118585b7db99469d52b043243ac867b25b2b8cb9a8f6699c3d8fbcac40423fad90a56775c57d02107da9dc94731a2a298da61caffd12ffc119f817cb01d4c98a2f48443d6b36782be1c25adf882702b225f439000ccc8c3c16129f0040fb4bb1a4993470f7c20d73ab393016847a1647a3c14ea88a7095658b0b9c61c8c726fda255d641b83f03bd1c9c3cfc20709909b1f227c89d9c7f5d51fe9fa753ee729571a3e7939af9cdc17a0373f86a4253dfb849f70c52c336d1f34a682661b6c21c73e9a92c50bb69363a9cb3c41d55c1da8d69607e012f5193a79d581bf8760cdd742f63003e96c6a1305aedfb36de84a9e5b832eb5ac2ff204397d28c8eb64a756c27d8e7b0cfee3ba9ba2989c2310633813c9828705266c2f8569163c91e33baa49e6a4b6b92bef81174d24bff6c0cc6c020eb501126ed1507ee8cbc4a7281b34c82da47bd06851c0e52e5ad9ac27f3be552564b7792fdf847f3cbb5283ca8f04c4b6a5e0bbdcf3c77a02c29fb847a5643ce719b276a39ddec8a361d73a4a54bdf1757cb6c65b0d62333c562a64317f713ca2c714a2ddb1bec986583e8b07a5f24217223aafc711ccebb83e7921a41625853a045ca02cb8b597332b524dca8e15b02804101e3cc2882546864d732094e2cbb06699027727509a4a22e28b7cbba46a30b174594c7abb7735a47a471a245050c0aa5c6abf020e005441766bb4741c756c588e4bb7963ef2a889e40d542b65a38a888e0511d8053aefc6401db4c795b718b9019c96b39458c62da35a383738649c065fd0812ee4a0b9b809725359ce754604c4e8462d7094beb3ccd17148e4ebce2a799dca2c55174c98bcd9206a0c340f8c559f6c7745d7b305b672f263643362b2fb099fc5173b43c167cc25bd8fdb7dfb7b3252162ac665bed6bb0edac9822745a80a463329db5853b091f304094dc949b797b127e11ce4860793757cdaa510cc5c04f0c7575567ad1457c54c3176861c77e7f86446d410e9b3a005678577787d32741595989d9fc92fbe5b0620a11aaf94beeb68000877cbaf39bb6bcc2bad72975bf94ff94a56419726630cbb32114bbb412c27779bc49632faccbadc4c3bc1a61f5d2337754b5981382e6d406828c6ace3f73adba6021aa15e52eb152b222b0bf593519703b3ecb38a39adeea3123a2167f1c102a19bb83a76b562090e7d24c9fdf53056f35cd367431b82a7ca210521d4c78f78ad54244e97149cb2d28bf96cc36756bc4474c0bff06aaaf3985329af217469612b225504afe70c69cd4467b3f277df5a2b74b14f407a649dc76361527c0059a8c3fca243b0c2eec7c615f7c8a15a5d4055a301abbfd5a5be42a8cb7f4b0700f4575ffb719965a56ac21dfdcc19d48a8302c29cfc340fdfc391e2838f878164cc7b58355473a9ab44098ac0c0f8cf2c0b3657709e48419c3aec2509222cb658aa1f6709d0c4bf6a077197a8a89f433ed18987072a9bbec9a19307c51f66cded27a2d0538ed86989040308fcb42e8c8a9bd2c5845a914c18c5c2aa5cc2bc418ccd5328c139af2d66b63190b99c5042e7b81372772610511fcac1449e71a6db9b35fc1b5871a627a63900594869b20a1483a055c8bcadf3468b4e9a7cfa6c4e3230c550889a48f0a5b5ebbe64cc06110c96987ccc2343bba708791bd9b2d5d6b028b9425841646244745b38c644342781e886ae452e3f04098e9c0b1c37c30e08328b011e0f4838a64874b1985ca1834559a07711c035e29c0159286d9473551ff65251e2c26a227e75f1293b2b86c53650a33b2e4b77b0108050f8c8cfc965771bbb8a9ca0075e09a30e81b2a4bab1e424587ab282ca7927bfe1bf3e18775cc36a6579a3fc338db8e090707ca42ca12981dc7956763285014577e9af843b7ccfc631bf706a1186c6973b532fb204fb0c0645e54b7581871db60e5b4c375dd2bd43b35865b08856166f640ac7efa516f24885fc9216fbabbce3d66fe9466db3907ab224244e759d1b89c041bac289040d125aac681cb048d908d38513eda6a23248a01c5b2c1b6c6296a5c612b21ad0b433bc3296f9f40b42f02973d2a4740c823e074aaa7ac9f7703a87b72bd0aa050574b63fd80ef56c882109c9eab220e67041396a29d6977f9530c3628329a2e02a7850c77c73a4698145c837087f2241ae46a1b7b692fb5c81de38846a5bad7246b596a889eaf558d1d55bf1372057f1795b40076d53c0b81288fc9009757a9111ea26c3410d55217768378cdc94a3cb40af38f67b1b473b15205c58d876077b2c8005bf870588dd6318ac154dbd9aaaa6d48d1dc05118739fcc7c12327a68f8b5369a846b6aac56fd1043c5ca8675752c12549840d47b6563c703723d6b8791bdf14e0011c0605136a1521265c13874b9ba6064b85ea895180c634168774aa55e2df34ebd8132bac959dba90ffa656e7c61677d3b801ef3604814ac36d31657bcb05bf20c893a4a2d50644902133b9b16e81c1abb2b5521408f3799152ba14d51a6a7f4a231b5167b0273b22cfc606482cc6685bbe8e80f6aab99d7f55b50e093aa55b568c45aa3e4a0766a9228192e5e91378af608276308905826c6a24e7413aa98f57495dc2d5ed5bd6fb5c65f4b4ed7b9c4c7b504548b0306c892f547613516a9064417b1b96a95cbce5b502bc770356df5ad52b98adf01bd66175ab3747910c814e7b070205b60978aad90c43341ac6aee03cecf7cb8cd2b4842c3401ae1a3b60207af366fc7f78069e39fdda0ca53402ba455af5ebb21ef9a6d60501d6ecb1b5297312b280ab2023f2fcc42c2d66308f263b7d019af68144247c2dd93a05df57daa5a03e896a182b480f1f607ea668aea60b66964b2a3fb609ff547da9a51aa6848ce2a686406c7fcdb058595a807a6692f833cbe3166fffc73a2f30523c86db1b98ee7f477d7f1a8c7110076774d6147bb56a79aceb6804eb982a8d00356553a68ea8e91d8b86d676f394a776353bc830043cf209dead22480c08d5df25e80fb734bd6558f1b9080b09fab642808c458cdeb0d72e5b49305aa502321711131c7f848fd14811d718be5c805c8b254c8c556981ac8c1dab13cbc9e91708d99688e36599f3b7a23f7ab83f2a3b613b38287b2856aec5b4ee90c33e85b8d88cde3870759320b4c1c0d8d727c8e379f84da0221b2cdfef70270299bab0b7f9db8c69d7c9ea6d01df6107e04440bdcf945af329bc016892d8c01f071654ae3b19374946246027210cf9b1760aafb5e4a935c2d0b7c70db3721279e6fe43d712468fed532cad432ec30a1372554c97c3769c380c709018393364ca97f9dc37a0d393511990aabf398474965dc45ac2a37ad60163145bc3b73e7a6c2032f7d2216bc19b26b4cc55bc68ed996411bb00715473f4e0636282c203770a3bbdb26cc58aa7b4c69dcc01ee3e53ae514169859b632937cd8c355c560cef5c091f4080047929554c94d7115393fccc11fe397f2854564533fe9e66614da3afe15be92196268720f5fca36878797a2b045dadb2491fb3cdcfb7253f18750774d4108bd6c7c6545b801e8e368a1087e0f33c22a359907c1c75bd59db28268da457699337356436786b16bf6a25fc55141bca303faf566039991c700a227c01e6543bc173c06b9a8026fe07e032c30f5d4c86a950a3a7b32e6c67e51771d78c08cb5382bd4fa8068969926d352f7e5820ab19878197c25172e95d6ab6a05acbbe375ab955bc777977d2b926786c9143978113c490731438ea53c0db27bada4be961b38138b4c684a12d4b08b6f03ab28f6a260b01afd348b59684197002bc534836c8b735df139ff98c84ee03a58e02d0e6125f1e09bf7d7a91840226362a667627ae5f580ee50b594fa64892a508ff8bf80851abdc45486936e11e26beca14334454d66c0128663c52a8700b525950425a4ce7824b25b9e45ec6bfff8279d1503816ac76f498f8e18b2b626b285655ab40096ceeb229856457699b500b77f7af5c2bc8c545c4292a387583fd74dcd20c4bed85bec8c245c63608ea302d557199d9a70194a5e92acb24264532b02baa8f824052379395b3b4222536164823c379782837ff417b1583238721b8b6b4a5be982abfd35a90d07bade5c03c4c3170257bc0e88b41b242b146027baa2cc72474d00427b0c79cf294203df379628799452d3952d2ac709f20dcfe33b001022917a4678966f1d9065cad2bb9b6979817873e8d662d7ba8343d18729291c544c00fdeac5ead3c8dd2cf3e2ec7899253e7f980f9ab3230eb1a9a3688f94bd522ebe016e2980d72c13035e253575fcae389887037cdbff8ea508ff9e5337e2fb607919747cc53df871600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f +ciphertext: 5740d7e2c1b500947e7aa2f01381407b5627047669bc3a89bb5040aed14f0be11c05a56d743b884f7f493184a108e2820a859bacf72be64709a6f57ac785d44070647596e7f23cdd66a2e0403371a0ae36bcc95212fcfd7b00af1dcd22efc5905c37501ede6abd9c7c7b366762a727e58ea82288ed7946fcfb6cb6f17cfab6c30622da11b4b6200fc8237beb65d50f2749c26c3c1b014782e8cf3bafab9c6efc12d674642101d5148e610d0b62ea6d024af6386f5ca7a15f1a2f793615e8b053ce0542ee0c622bdced6cb81c4ba9afb6d6b70cc07e7d42cd72556b8e2c87169a8fde513a8c53fa66e280a1b61e68a0a4a0103440826c430a4d0b55c8181f95c573582246c34b880fbeddc4e6e9ba0f3938004cd8d4b429f639ef3b214f78aad31074ea3b6344522ffc306ec466ec89c5919292d39d682ad3e62b398a2f7991ef3a1a64e94b72d7ecaa48e1ceb95ec88fff36dc28a8ad20485b5fae3694fadb942bd6817f79adaa43a9c747cf29fda10472797bd7736c0d92d56ef30e6d10dffbebc0ca4610279677fdd4b015fbb5f6785deea717282c4eaec871b8b5f6e93b197e37ac566348d4d80fa4dfbf9fdb33164f09eb687c5c445942813885714523166ae4d006e0a0204bd88a870df62a933a794a1dabb4646386c0a428aef1e4ce77fe2b41819ea313e3f475e69113d7db68bd0212de9ac74286f8f99ec35892a7ba5a2c6caaebf76683194ceee062243affdb66b8d31319ea1f72a04b29d96423fdabe01dc36feabe0c1f4e189d6704f7215903ca7e0a5c7d9e32347ac8eeed0430b634684636ca55cf3ee8f782afc18e76729bffe70a66ae2134a8d46bce987e54e407e5e2631b5838c461bc26366883b3a45a71e7e9a4559304bb9e0a0abc8594d8e4035dcfa5fd87b202222aa5692f8d6c682ff889c3f0137d88b56959f03e2b210151ca42af8f130777545e9ce51235cbf5e77a2c6dcbeecb42bd7ac91978c951f52e1e6fde74ce808de813bdd12fce935826a39426ea9a9485f3c11fa141ccde32ba5131f25fdedb7ec732e7716404c0c762c3b4b616eca02fd824bf28d3926d38817d0bcda5c2c3db0bee7b5075f140be211a310dc652130c271e65965ed2efecd53b2b119d531666dabd920da11861b68137ae03eecf96535ada14502c3dcfdbc6a224d94fb138e3ee8417f1547743dc618bb573f48984bffa721977fa26fc695f8053cc98c681f481b45321aee96dc9ac158473aa1cb4904dbc5614ab3b7856f0612f3b619f97094dbdae6da8a4af8fa0f302a85492e6fdbb15982b783eb1736f8667f84aa031ac5db11084db69d09e8caff7c52d89fb7a23e63c125ce4c39b1de1c1c5f8fb750bef864b57ab6483d49c99d403c47f1dcd5fab8e3e02bc80689ab7987a90c7bbe1a5f5caee65f16014d17a32eb9a6a963ece4fc691b4fd323384696af89e015a03b57638eede81d2e6716fe8ad838f1148cfb5175953846680c9ce86d8c786a1f6042ea39472a47e8ef3f81f07a35edb0378228cfa7760ade7da7a6849cf3b8a18ef60286d27f9ff341a4f1fd4f04633a277593ff38fc095208cc37628d980e8ec2e8b4d57c0529aab6752096968ca0a17d1abd1071d197930b846c1aae49b69cba4b3fdd2293592e6da36bca6cf38e03e666d30f33c581e54efca3115b69957ad66232643bca122dee5c7f1afaf155889cea07781fa92e1f221ebd9928fa4a4cda0d2d8b95529a153f965192421bef46603a9b89dadd13a29c56239813e3bc577373a7321e1df79f7b59b57d9e39ec44760b1e5fc72ad82771917ef756917489ea0f128211aaa31a50f9d380fa48933383bddb3b11e1b252e2d2180a9a7329ba501917b7efd21a7ba71e89b20f5633457792d08c20025b41a80d58d3f8ca1216d20f04f62d1d2742e3b7b6c77e2c6fbd1a4424534c72c914c0484304e8e789c83b7028fc0042fb16e5a30dcebf2eb01c4aea036e2edd975caeb8a32f6afa3466bb740e7735df8e1b7d1838c85b366b43dd97dcd1a66b7cde59de198d5e0d0f3c1d74ad06772fd41ccb2b568277f0106b0a41fa1afdfd58aea61ffad6de24dcda35c9f8e0e864d898670af25268b3a2ab0240e95a0c0c36821991631742529e5f8612bcc0f71602fbf5448aaab72e6e598e5004e454bbd056e76a54eb2cd7eaa92186744acaf865373345fc79d42c5cb08314ec7a08550 +result: pass +shared_secret: 3084c8b9e79c5eea12b89c5acd1a5cc6d9835656138a1f5d68d27fbb56988d57 + +# Official test vector 28, seed: "cd6cfe94e9c0a1cc4ffdcd2d7876504be5f50f1d1ca5cf93482943465b268276056f2781f4de805c138976ca72621387" +private_key: 5bc2b53498cbfbe8cad9602f75187bd676b0b4995353374df1c4aac9d105b8172badd17b6707b89ca23568f5bed5969479557cf8a0abfa8b4913a7bae3720fa73c705655cb39c48137d2b0878429fbf44a0297b1dc71496de1c341290865d60b8bd34c761933b3f7cd78e42039a4377fab7c8c82b9cfa6b0358b0783b766e3a598afca3aecc59d0eec2d35a0a55210a94eb44377634a1c097635d851d022c5f15838bd299f6e1a2c7e8cb330515f595966ba717e0da12a2dc84e16902e6b022a48c4cabd27993e5587cfb4575fda0e67830078d01935e4b47861c893d3c59267404bb2238ca14534823a3e1c82a97047f1b32388c96f615c729feb7500125e17881bfeb2b7425151914c5bd24b479ea33bba133a56fb1bb155ac34aa2c15d77588ab13ed53432bd0bcea28b79c9cbde8e66d75e6ac227224299a3391a38be9ec2154751729022e588b341a062f6794494b0b549b0832d011ca6d04c976d76111f85456ac9c21649106a8b58b359c943aa7722c0b737393f5c9040e0a9126dc8ded3703ee7298e1424c18c2492fa1573de9b77ea9988ef88db2a61221c8729f0b0c88773f8f9553ceba7ae0d6c9ad7ba7919741fa140e0703c96034766b126a6f992bf13381366121d0205ef45a9515b5a05d8c6dcb293ae44469c8875c40813db41a06e935c80fe24ea9e178edea641f48519d6a6e6b0547c4940ae1178b234bc06f07129a6c9287dabd64f151f0f2be8bc9b988b71341c74164d430fc6bbcc4e23d36938e2a4a8ebb8b5a0d906e428089e48946b63bb2525954323421fcd76bb00245ec4761c5fb3ee5f255ebfa33f64584f6dc971189a07bb19479f99247c11b3318076c2c9c08457e35aa25973a31e1f0a82355916d5891f193b0c45bb1d496091d7a47a33a83a5f34ebdd9b8935601abd60768fa5c2ff2bbf2457aba1523a3007e09b90a400a0c8b23beae5b48d6e9c642d985376a09b8ca6ddfb493ee37a0f6551f9c9208229a36cff883c09b5239a55680967648116010645450da2175ec5e4a452c982ab3ced778a802644945678dc514daa144efc4b53a153d6737a6dc3515c4744e39c61f9fa8522f39384738c99faa3a7cdb779b9a7b75a5603ac55bf13620b647692f40594e144c378a3b5041ac1c63034198976bf9492b7393de8455c284b1d3b2b773c448539bb493a9a8f1fc39045917f40a8cf2a052008626423328417478856c1cb67c36a34507ebf38eec630ae5a73f7998344cf7be33268fd99492d895aaadf5164df7429af1816e516f2717a0f6d0858b3a0119aaa1cc041eb5172d465184ff312e23f766ad29746e78aff74abd65a2af2a0ca0b65cbc1f1a9b8544446c28c010da1dffb708d842bc82014cceea6784a35d74510503e8a8afb7985684253f000bb2c95524c0827401ae9b058bc65896cfe43b9acb3a00a475614136930bcbf0ac993e61236c24123105a6a70058a8d49a11931875f48f69a074d1757876f598a4a665ae6278a8e27d1591849857c42fd2a75dd4096359c4cee2a42620b62ab641da1bbc1ff4acdf2220fd0751cc8a3789c06500765c632a32bfe88d0f9bcbb9303eb1f6cae94a45d5f537c7eb7205d81c65863216f571d3babac57a6520a30a76f4950628cd46b88ab8f4c88fb33dfdb13089d85bdc7550647b257dac3c6484cf0e881b83f241b5d869b5076148607718e43ef56572a3aba527595c25d541ee1477f50773cc433d573b8c1599295b01b321c7aac1f001c65baa0d63650fc8c45f7312d1a7700fa1bf92092768c406934a8bb3c94951f17fde83804f2608d292999f53872b167d2c4c17cfaccc9ff37ff7542e6d097bfa414ede2453f2328408f0580aeaa7e67116cd895594452458675d93c03177c31bcfb57cd173006548966bbb6cc628c446576e9eeb602810a04fb126b37c45a6e4041df38330812fa517117400ae7f429ab1a610d9d09e9ed36cee0401d09a0d847b3dd2f826eee3c841b4526280225d106eeb183c816a6b8387277e588712279cee18c34d3162878204d4506f659047a9e126dfc756d946892d991b4bd406c83cb013fa8a9e7758aac12c0f0bb6c014a048d5457309a125aab0759aac0bdc347dbc7eb572386d71569198c6f0a6c213c44a14a22ab40a7f34d1ac821972710b8c10489b6e431f18744974e86c075394189349b00b1ffd5cac6072cc10217b0e3203e3f61e1d9281c2d208af83a7f071ba78546e273271ac1cc01a320f35e845f10c59bb8c97e1627603e51a06e532ee716eb83519c80a4833c7ab45e6951137c0f731964ed2197b033e17bcb5237a1128179a85d24f730a6b31ea0e52075ae2198b48106ad0e1225701313af1a7b675347bc0ca48d88c4ff054edcb1092e87ccf070e10dc093bcc9bd400490250b7dca3775b715f218448caa01a8d8c8c6577cc9f21a7e3e6208b2c42215794954aac57712a3845523c74960b57a97e0c310cf7b8798192eb9507fe65020f706be129774f10794f2296abd13587a78456b083a164bf23c801969a57591062d22bab23b61e7dd5b31bd54520f4080a4c6c01c6603f4b4b1aabb99681be0b9c671f496f8cba2a571502e0da35ffa9bd2c77a5e66809e4d54000b851b2226e23c1072253826f374842da312ff0931b7a85e6186f5e6a31276a2d40a81fbe135e2c86c328b896f07c2269f983b313cd92578882a321f0031fcb9a9e7d618fd3d543e34abcdddb98d4c4585cbcb67789283c442f8c5cc914427fb1a53f3e35b78c2110ba956defa035084c53cc9b6fa7946e11840087e8194db6607246c7b314ce7644b8e522cf494a6333dbcc23da197cea95c318797ef0a18c84bafbe968df375fd0c9981757aa8c878658722bfc2684e012af3b30a067ac996315b0cfb13ec45220c9447ad4374c78484ac652921328214ca33466f6024abb7a78cbb528c44a339638eef09d3ee370d3a1746053629e7a37eb2600f2f73eb9d572030598042315b093c0082456fab06ca2a4c9bbd4c651bb297b494fe7e38d5c8aa3c7cbb6f1189d4a2c02de0acdd0e2c7ffa22e83c63623a21dc137c00e07193bd28264ec0fee2259ff2362ebd1c252103d93645e92e398f46935109bc0cb50c619424db0461823d33fd8d271727554a4c86a5113a17de7bd17b47cf04bced6cabfa7e926993b57a6c0a693e251e3b90b7b17195ff037fd867b87109a8be90403060cb34b32688c263eb00194391ef6c978db4c83c8967a735895a70b6dced06016b3737015696f1a1945110a44f022472c0ffbd049c0925ab1d68ef3f775308c2a95e99865c04b17b34d28a1254c433313c972a7f51a48696db9d7ab71d4600c0563b36437fac1ba6ab9ad6e89630357485dac1485e2808de8869ae59fc6a952890c69695424e3bb9f27aac2199301dc6b36503699f2504ac5e35adfe08048f9842df3260abc3d209a1311d65c048b58111bc7fbd6953d21b56364a51d9c2419072dece82b9d93aeb99c3f0a5a6c3f276504c3697a7c19563abd84068e8a39373c1375d848400c663c44e6c968c3c61fb375eed10baa60cf6158aa7e39c99e609a8b0765e36a2fbca515e4581a0207ac3fd5b3b7a95f193a08511109f335cd1dccc09223129da93aeab93ebf397bb073bd6374634675b6386caa33f71e04b1b420a2036979acf22835fcc511186441e1f5858402af78ba99673125ce9331b6686821ac739fe41467ec22736463ac4415db238bdb9a32e1895e0445aeef16b12e818f33a435afa91f850549ed465fc026163f988582040274638eada37dc162bb2d2839ca934bfa44acaec450ab4436ee78a5e658134bf80f914052be1a605e69ba87005f4042a25569c29243157865c5bed6918da360c4b824c7ebc8157870962737d150ac5583907c0c0f0603b1dceca45e10467ecc3a4435355af8254aac26f411a37b2587f40cc023c1c497664de5d705fbd0c103e36875b168c1c732ab364e1a4726c1d8207e1830d73721dfcb55557352a6508469eabccca2ca706c1de5fab0a7647d2cf7b05e117998173c5b3958d483491f128f01889fdf00d0b668a857479030f0c16bb753794719e4e142f0c5a1a52445de8862cbe3377c383deae1817b8110e045321a16594fa7c1d1037fbcd2208158c625514f3464237d7c73b0dcc605fba342cb6fbcbc71391577ac3781adb39d4b1c2236a4c9579810d039c10fe556dd954d71e705c6fc9389f3be0089697dd6703d8bb8ff08c88bf6773082a56378b52bfb30182c9ae1512ae1c2b9f99b4f3d0b20f8593bc530c585d737540972bcea60e11441e07a9c6827031363990b383b6f42afebf55e5f20635ba731fa86c24d6908aed77e3a57b2138c0c83a5bc98ebd3a002c0a9c60409f3dfebc62eda14a11b1c03d59d46382c2c2a579009c0355da8a58440c49a0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f +ciphertext: b55c52a5e679423c1ffd045386899ee3fd7a9e783eef9e46f2725ffffba09835961521a6891a76ad591526e27db7bc973b07bb6b4e768ee4dd4c8b49acab0389c95044b6c2021cf943beafb912b0a492a01aeb90960f09fde6f69a55356624d7482cdb2a6c4faf3c89aee8c745754ffaf34f69f4cf5423e752aff68d305a2dab756a20a37ad209ea7f9b4cc5e5d493771977bd8276c79c77c1ac529c1ba0972a127e0abdc345923802b8aed0c1fe0d34064f43bc57fcb56a54c29079da57ceea37c877bf5d888233d2d45dcaf897d729ef94d8ace2be06efcb785660bc14971f5474440299341ee1690f11f683515b35f30ada4a6944c1d379c74af9dcd1439a780edfa81f1167304467c5e5442031fd6b8aea5533e605f4904cd118bf7572d1526e6c4a18fbebdb268b1c695441deb5568eb417ce16713bba343dde15ba464064bb4a8e8f76eb78aa8cb15a2c568568eadffbfbbc248575a4a80cb58282fa6a0dfa766f542f844c6f282d9f5ff882ef41e65b84f684a2cbf4abe8ada244dba1a65830c1abccabcdd19a99f3d9a722ee10d59426400f39b92c385498f4f4677502683bb6e9e38f3ef1f33f275ae2a24cecf14faf4052a5f560ccc887045c74213cbf118e373c093372ee148b6b94e30bd7fbe1ebfc61d9161982db6eaff4f4eada119599f7bf111537c9d98f81063c3f2d78e447d4a142d1fffd144dc998a1b72387c64458c6ad9f585212e5fdecd3728f2491bdef0de8ae60aaaca1a774ba8062ee5383f818c2223bef3c9fbb39e2754c809e2d914c899a331688eec1ce36968be0d21acaef4be75a3bf5e1f7365dbcdc0c9dc0c9730ea1e9fa79357572ad04a8d2cfdeeac940de6268e24566729d34f2f257af4b7ce48a43d218ffd4fcc3beef82a114e79289a601218e2872dd9c1467849c4f6c386322508ac137e56949eb6e9577d4e418a3033654e1dfb8d0bc196b3fd3220a8e34c02b988bb84ff0e6c2413168d9a018669b602994384e84f16b3f90fcc174a9ed7ea15d091df8f29bae868e27ded0badc967be3706b1c6ae24a903c4913bbec392cc0cbc8344465cd133d6c682b6580c8dc16c7f0c2c277462479f9fb94b0fc2ce36f210dfcacd4e14abea15652e5c1f2ad582e0ca1f769600c04411411c63aa8311b59a0436cefd61e500481dabd7675332c94d03c158e15d052a061ae9de4f5154ef3adf4198b42e503b2ccd6208686c3d927c616a6d788cb938d435c599cf1f6b7b228a87dd557ec583740292da0065ea653ff9e5e45e0b7a2bb289a4f679ee1ec537ebe5be7b416e08a42ef6f2ade5c7ab864eb60db71af24d1282b222c7579fd9a083af417fc075bfea4b2fdf9a8403c4f3646f3d2c7535f6852f7ba49ae0dbdcc0e06fd5f5d5333bc70f971f1b8f45894fef181e65da15232065e30d3d9595e70eb276c0e58814d7f4455d19ebe868731c2e5a9ffe2cc268234c7e23f3ef61d72998e15ef32e410fd4124edaf55b2e40eafcd21f48430d87208aa4d40809d0e89599c48d99b1b905271563a3e2028a1051892e588e94dfe0d32f232c4995c3a781c95954433e1a9603241ac0c2d100a1805e06165aaa36bb70eaeb6b78dd0b8294b88dd8f1a1499c7b088660cf0d2219486664602711de0eb49424b1e46ef3c494b7549b5fb77270708c825a40f3844495d4ad240f6265a969ffeee75c2102ea4825244e547d4ce847a13d88b59229c4347e35bd35b0a22628ce51144f88913ddc94922cd930721b2091760c5e15886be1ddfd8fc7444dc8c16eda51fff288b2ba3fd37554672e953c38c96e4573e38a712fbb903e3d9193f7d89d8ad54c3d2d1556a664b7d49554161d98aa662bb78d71c147732b3e9d74b541ca4d5b7c8b383f2488168f5e3604c51a01e3684ff2257300013f50c88c9b7bdfbe1fd4ca5e2719e12db0b0a9a0798e74ce0a383853ca52ae166c719af930acaa48a7829267ff1f5b6954e6af6a6e7fafd23c9196e916ecc150d88093d1a495ec33b3b369471a0fce99178489e0e6bda2dc3ba9f73ac4ceda0981a92ba7895fe42fb85c0e8ff2dc822d8ee4dfb1766243323e158ddccf4d44c7e4fe3c1fb4429e28d14d6645ef477d5af242cd0e352e10dc9309172b82d4debe3331ae1e384c61b5972766a1c53d903b55085bed136096e573a56b8b349f88f3498d47046c7dffe1847a8aefcd1aa6bccded545 +result: pass +shared_secret: 2c9aa133dc5aa592b7c73f23ddcb85faed4c69d249363f9cd7fdfadc7329ff86 + +# Official test vector 29, seed: "265eb2de7099e4bd5614e5de7f0c2a05c78ef3e8e2dd4ae4cb70f3e5e59c8d1d88248303f07de0c5508652da66b47222" +private_key: 55fb671a41c8a2850965768b1ea68a496a772291ca1bb79aaaa07b542678f391bd786579be185f883cac4350621fe531dde9a3729493e1e71530a5261a4cc20b41847d815297ba8415954ac0307543c34dae9b5007254c18414a01ac0fcc55707d906a73ca41a2167d64470b9cd6c082a27fdc62b7711b2c6d4aa9fa00c1348c7666b7a181bb0b84617a9f67bc9825c0e2011b4cc5b1c3f243501a56d27cbbe2f73897332f1bf57edf885f7a462d801089e9d96d14b9a891a909dd8aa7205545fd319598d3ca93e13eb0219a3674554c45238890cd54bac9bf3058bd0a6c7de7c3ccc98ab53c99f1e0bcd0f975d51c0eb11113b1144c8f46be95c11b6a7909aea01e3cd013a274354118b351e95c043073f4a3c0f8fc5d50570540281da1d0cd7401615eb29d4c15b8562690d96531e48003478b805e222043c0611c276940d58e41900c34862f0cf80dd072ce0f8cb6e948cfcef439333ba87dc04031711dd7859855a4493d4462d5b08bfa825c0a01972c333ee1291dde850a33eabbd83ac27dda737a0aca9692b197358d82438fa24c7721773a61a52cd2781640ab111b588fe4f7a8ceec4136115d30e325e5160975dc915cab6369c579f2240881a02276938845ca6c679942757263cd4216cd0c09d01696cbc83b84b430366c2a73207a586b8400f4a9b098bd53a222a51b31b3e1a5a215824f268790d620754c1a387001bc9a3605d94360f9b50ba29723d8088a0871a0b79badc669cf18bb95ebca4e53106160a71eecbd492757f2e98c27a47fba13c7519399cbc2a2121a1ae5376594159ac23b856888a34026904a3734141bbe75904d9d727486e644d7d1c7eeb4b7697ac925dc9fea40421482ade07b35879342b71426c8e21ce9ca3081d62e615661d1168e102779352571d884c1104b760e29bed2bc4f5e01bef7322d1ed2a8c0c882798781310197828792430530443481a253ced84b8b7ac4736452703298519d41bd59cb3c32a2271a592a0f754192a6672607a346fa3997b360f0a75b423397b2520cfcc44c0197c7c7a6443154ac6f3985c1256a0aec9bf72b1d8dac046c7376b6a424b5324ba04881afd25d16387c43aa57ecbb9caa055c6863339f420b09e1cc665982e73997e23179234250b5c047a9e5b656169734576fae1b970c15a9bcabc1742792e2a9bae6c29b391b6a91136e31abcdc859ca9d3a7a807c36db195c1731ad11da6afb304704475ce0c3a73b42be27172c8f2824fff7b933102d1311a310444a73cb2e71a9aa6b482c73317689235b49f44c7af6a02d5ab3547234944bce390756719cbfc6370b18ab828a6971f770182422a9f2eb2c8523605ab228026797fc1721aa942ae8087010a5bd2c2886eff0a29fa99daa8a91b8a1c6395544dcf07586ec99e592b995074fda2a716d8a86fb1005a380878c07243d708b1bb15bc2e639cac28011e461c34c17a47a0e5e07bed0b6761429b21c04689df8a2aa22400253801f41196a02522ab49c1b724107012ee3c362ce351f774c8943832f27732014c8918b2c8e747bb0cb531a3019204a441786ac3dad4532a508147a334fd772ccec01a07c021e2b59238d7b57d24a8f4c90b1b7a7546144c9fff2bd9b931eeea30fb2677d5a3bb24ffb4c15c0a222f151b0fc3b2fb68c96140c22765e36d471bda76bead7baeaea3e86296403a673b0c60389a66003da689f42c73471c0025364f86a66826b9e03864781073614d90eebfa1f266c4255823a37258f51c0839d2106a90171f1191035310abcc8522d814310b488e51bc7ae20c8597cb2ef11645c9b921ca2424f3780d6c87a17a9ae9fd0a5b15c6d9085c6e580a1cee699a624046595401a370912381a5a9731e3f3396070c2e2795690abc0383a71ea4aba69459123aaaceb99691a82c729d028bbd69ec903a60acc9fad24cedc2c391c4007dd324ca46581558cbc0bd4a397a776db07c41eda6c24f436021b4b269b105d33ae94a55594e70232c15cede461c40742bb950447064d21220e41673f98b57ffb9a23fe096dfbb4417e024ad4121a824274c75c7d457794c9034364aa1681c79ad7f3c3e308ce35ab8704ec566eb786283a9ed8eacb14e24ca349a581598e26967b88ba5b3e4a1bcc9c13cc74330d6409e0e1057c125aaaa4ba0dc34b0fc991bea47b02a8cae2f81a10043ec8d655124b3ed56505296c5aa2227ce2ac04a0a31ca05575b2e55c01119d6588cfb529aa54e707155bb4f9a63966d9566bb65a95287591f715e6bc0d7fd1691129999552b1771b35a322c5145c7a40d79d6d9c3eadf941112c4f76d678cb0aab59b9a30bbb340e078bc2899951691f9bf84189a87f2af590f881027a489ea1bb89e3a8b65959ad503a5e051c5f398a654c708f9ea51bf75c6bfc25634145076a93aa6e6640e6b47158ecaeb621c606c065972c9f26a34736067161e6bd49fa2871631aee5b518ddab90f692929d5a7a6e76582e53dcd36acecb6a76dd9455358ba95eb8a70d3786c01960b367e15536b456408e4faccaaa139c8e9737ad6b8b0e380bbac446c73b7b388b319dc2047fb7338072a0f225b506253afa722c812419e9c739c90beed97ba8f684111900e7d1762a5c0903c390786e1445b615a1e054efb7b0b1daaab671a63cae7b55c8b6f13f10d55707650ea8d864c7e5217b572643e6c7480411489c9ab18400483a657185990bab58b6a734596a6123dfe5240b2f908fc8c3591490f89875e0ad3b06f6812ea973e6fb0a69886199b3b55b7d26a55501b43609b3d6a3981cab946049c10b5737daccfb2040e014a5f715b4c1f8b0406b3a3204602182450d10b019b388bfe31b5a5a9794b5863bcb34cf6f659b25cc95f0a42fa9305a0d647342845d5b28ff5c1727975bb48c5ad2c96b97ddc3bd4f0b40e9b6fe1138739f1a9ca3b969cf33ccb700fa9fba93ef565a8aa180cc3711974bda14ab85e3817ef4801c0c3b3f68403bc94cc7412ad044a220750b6ca963e3e052f310bb1474623f707157c8a7d67f95989492278ca5707ea6d106431fa5a3b88c39e3e360bc0288925932d44a2523b0980a221519ceaa65353a7483b7de6028744a2869bbc869a58bed2327b3c6a4aa7447a9a09bbbaf322d5914dc9d5a1ef8aac92b920524c6968289d7da06db2561eeea26fb764168c185ec20ccf2b57a89f2887720809e94c377b313cd5ebb7f71037bbf01bf85b675432b891850316f6b938231793aa3aab2972e979c7aa258735858434b6386cf0c5a9232f60a70624b4cbe9f10fc9e3a0d7605bcaa23ab49a222f66127a1a4b9f2bada03c8dcf330e1dd90131852b71cbcfcee91f528377d200433dc898c2118f7b6275f4e0b9a97028e759ae0c77477cfc26a1398cade7671ab89344140f5c3662c736107205a2cea71c3612c4eb063cac777b9d6b61cc0419fcab4908ac161674c6b4c58c53a5065c637d0a4c964e29729667aa949c39ea0797b6882951314354ac28d52c2096049df866bd028b1ac3b47cd2e648eb322134522ab2993db33491326a625e8739672551562b2829ca57ae6518dd4553146281fa57aa373412f22c2d0cd02b6141ba29f31612447deefbaf8f974aea75140db2b85de409db834c283440e377147b2b8204f09da14028f1960fd7c6b29ec1bdab0098ea22669d7123d36a52dcd634a447209bdccea731b47719745597955d3372cc533cc9b59712e770d7cbb63cf114cc02ac9933ab248617b9b284a8763a8856afea63c442ba7407905c6db13dde25a24062b7db428958e2b72117652535c1c24226266bcc7e87a721181ced66cd9dd1c8d86a1c28d0c335b66eaf7422c1bbb3a7dbc7f2a81c7a477a35717a23b486f307c766f1291be3afe8408026352d28a826a7e57819390f3341bfb8e258640213bb06b8aed87eb78b216971060b590f16d05d83801404ebc63b7304a0880062b4c1e235655b43c2b6062c28d4064a1a861a9844544776e8eaadc0ca66b2cbbb691460382b586e77856b8085a1d6795f82be8185c62ed79b2bb8a3ebf57150145892f99a27ec8d1701265cd16b5f5293955400a44192b0e47f399a0bbb9027f9d3aa1f5407465b8b28e2a87ab881be300fb72047f61a53b1282c13b65ec31045b1e0b779580017e1776e46a5018598799296f49c1447370af1227a7c000e327b40ed2965ebfc7a555803d4d34176e14bd6f9905c5c4e253062c1110dce0c22e74779f07846a6806eaf340bec965dcbcb1a2c40a5e6428d2bfb50ceab3a64cba6aed667edac0cbf03ccd8d8a56d73c70b122628f90e4c760ea21c485a0536f6f1632f900e1cb13208f442501c6cfd05027f5fae41abece025084a5e4598a766114b13b17dd16a4c99f255a964f69c975bc276b67b828d04997c8caaf20600da330ec642633f9789858f7350a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed +ciphertext: 3a8bca083a1f082d72c5c05b6d3ec147cd1646564b8aa4915a4c5adee11141d3ec19deba2de14e8df899b62d842619a1e89b9bdbce4f556331143aa99fd8b244e439ece01179bb5dcc22d9b7296dbfa90225c218b7e37873a8df58578667ab8795e20e508b268f0075596d1586c8cf5ae079e6844c6bb0ba6e4335638894dbcb1a657cc96e432f04679709c508a05a6e4136cd79a1964385dc8effd835d7ebc71bc3f2e0d6ce09fbd2b9284c9d9126639e86d37139c974b7679b20b06a65a9f45b29c9d4cb88b42b8d0c3800b3589e5e3f6ecc43adea2a56d38ae6d4c5bb4398bfb3b67dc818c37baec8a888e57dfdeeb6675a9be7c99942337e3ef419e5beba7043689fc2e41d422faecef51107a624488ab2ea49eaf7b95aa1a526cea835fe8b6fffd2ce1c8eefc6297dd5ff418f925dae3a5dcbcf2fe937a97f9c07bcafacae582aac5fc3a1cbe041de2c8acb8f3d87ae31c678bdbc6e9d7473a0983d45f5096d45c803c0bea4686879c7b7fce5219748128b8af367b44a7d6aa7a9b7d1c3bbd6d677118e35f5cf69a9440253e494473cb86fbc1944874e8b358d8b1a92cf45fd0ca86cdbfbdcd4991915ab0b4985f96ee49e0771a6683cf301982f9ac9d8131b7d36ff527c5df10d2afce8bcde6a469db425d6c10dd08ffdf12e179a1d58a5e8ebec1176a70e614f06db5d1aaa93dce14257736b0d92689a1c7ed2c5614246c7a37db2013ecfa6dc94e8c43ffb382333d16c79d07100fd92bf0c7fd63ddaede55b4bff6f3130b5132ab6aecd2a8e25201496cfd7049eb3cf4b8fbcb4039666d5f1d7847e8e73bd5399567aee06035e4836a437fdc515a05101e0ac7caf2651a2ba2945f9128f5e979d05272701658d12dcd6d6351b235952237c541f0af1c35abffdb0b67d209375f4b0cd58f777ad29c42475c270514d4964bf2405b4a180b0ab400de1187bd5fd0b778273f3e87b5f43e72f3a916191446380133adfbdbc2a2befc11c787f8527f46f14880a9def0ac05583cd2fe0b44a67a1934698f3e10e63cff7e5b6ef1b2e380de905a29d237b1a5788a46fca785193f45f079b0f2288b860a606d332356fc758f6df5ff6b8f4e538bac5f04cf93b00834c9c96598994387ac9bac71b739a292173b974e1d96875985f3a74bd1fb65a60fe5f8d7c5a087f5e6b39c479ccc072d64b39c5d1b18cc909022edd5ad5407a588522fe019b5be8cb7e56071c5a4a510dde41a35916600714ba8a69487181da0b4af43f36ee3cd5a682cfef1b2872ffdeca351d3e126962737c8d8ea2e86a1ef248d5b95c39a58bf5d1b76d202010ae0a52965bf40e08120b7193de091996e0e1c51bbb6a66e4cb3cf6141b44afd07ebab50102dd90bda6f21674cb3a86069b1a3452c044279dab24c94fddc7e8a4e98718310bae45ed518d401e3e1b3aa76152103ef76329c949a0d51442f9214b1c09f8cc4180d877681f1ec8e7a0c6bc2ee9bd3365708937399bfc146482d0b78b445b74ed602cef450cf90f20e9890d4aa801cf451bbbe19211b3d8446ca5a1787d4e1c693eba82c51f62d85771d246cb1a4179084f6131aaa733016ee58bf9e0c71cdb00a8620dad38edd3be398ce030486cc504449b7ccc7c7ac70bd0eb60fa76d1ff7e4ec85902a70f10b3db794f432c95bc67cee8fb083d538c72c265e5c7eba29a14e79dee53a821de768d864fcce7ba524ceb3e85f66ae20fe7ac3e648b46b1c9cf5a1b1cb60dd9ec67eb9bc4e4ba8f30e08859a41240a0ffa0daa3ab1418f153afd8aed9b17f5a8eaee948b75b882d83719421ae259935a464c77189c808766a809522fff78fd92caed13670374e5933ad1a61b59de2b0ba82c6bb33b165ab6564cdb964ace0f5f8e3b4a42b5a463645581b3993bbb95847b2f92ebd01af96de01cf007cb0341d943f74af023f133fbe5c95eb885e9eaf06c71b468beff1de1c89a703b88d128308db5c9b717a190373d68774bb6351a108a3b2f29c2d168cfc11d62efa411efbd1ac8a93d85abc683b443f21a19b9bc3a1ccd94447e926e969503b239f73e5904635674e60dec54358e61b39780c00ab5341c6deaec0d21f4a785986298b5828951905a44d05affa48dc11d928dfcaf7364b8075e52127b5f89406b4e138537878fb81c8b04486e0f6f86d350d796e94263709390ac0566a9b5f666a7b4e0222ecfa3ef4afb50e7d420987 +result: pass +shared_secret: cedbcc4a7eb422e8a50f22ff47da0bd8b6f2337cb2aea98fcd80288c14da7d92 + +# Official test vector 30, seed: "806bbd111f27c2668318387bd0830f65ec21a51af01985ef48d03d64e1958ff7ee5133a4ebf6dbf36329bcaaf65f40ea" +private_key: 0054c46a1943ae410f1d4b32823272687175a7fc81c1307f51e384fdf6168983525c430f0ba34722230657c2ce28f47fe354791b624ca6462f5634be583c822a55180dd8a7f00b21fc2b58d1a1746699ccd91acdde65280048302af4141a56000675448f00b57db19788678872abcc7f727af4e816f6a1b8ba7ab408ab03a28a28c0906d47b98b702b513d306212e96be12647c9586808025b74e37a593a47e2b00f6d505e38586885baa7fd6257d30c3ba38027f5d149a4d53ab5019386779423851f84c234931c341a216f84e503fb429183e8544018b78bc90c5dda2923b68ed2f47014683b3be50f17cc7ccb36b314b0528f8c7cbca19d936300970772af962ade7c7efc2602a9175fe0b11628702502a9a0143a0c7004ae1dfa2aefc3986c74348485a846981121250d07b78818302c41c20292143a9b5c6e22f61de390286e0c9c036b945fa5495a592ac3b2aaabacb11824614ab15114dccf02dcaef932361ea0621f860b1d399a22153140220497bc723a00791df15b6aacbcbfd5b16ee74daaf059e4b85e30e4bae4c53e2a133466413459e0857fc8c136e072f1b75be9a3b806335f5603a46c734edfe0994408b355442db7967682859d1a5b36f6a135f5100d259715e04c00236b3855fa25551334437198e2b317c1f54207a1b504475368d328b9d561ba33c9ac75231c127ec8c8b6807aa787b15c1bf756c923aee186a680acc4f1d6b3a70116016bcc3fb9a4d95b9f3596ad52895de27abbe0d42751804ec2f1818f5361eb68a9b0f8188e9647ec627d1751a8a5f37e6ed4a42e2540dc97272bb380195b75df18aa8709738f6207ba65affd669e3d23ae7bf1b7569aa9411561857921e048000a44819466ae28c631cdd68416e596abd9365642113b78901b1986f7b43f240300fd487689e63773c1555d1b4ece69304389074bcc99f1c88bc3068df61880d32c43b6326cfc11836d94aac626cdbdc6addef07086eccbf6f44850242a5d15219fa5598d45097171598cf6803e7b1110a04265544fff9612416446bc62cb3fe6718b2152292552bd05be6a30874111538af71b5fe08367f8a646b925e7d52cb4331ddae40e66302db02c87437c1ca03176edec873c883707ea0edc41a45c386a5782beef1c2353a97ee5a198a6e572a467aac63aacc528777d847ac835886a15415286b4e0b0c9089c6472c00b389353f0c6441d84bbd12bba40931bd2bc84270177c5db13dc7a2c913c4718a63d9470cf63aa35c705a37cda0becc0c024d1257590272d6a302f275595d18a679573f2ba283a162114f34ba8c06d21435474697ef301a0d8f50fac4324d32448940792a2c174948cab5f3710a030cd282bc97ae617bc67823bd33efd32af9861ae0b4a7d04b4b207d9cdd7244f23651424602d8ec1ccfd77a7b4317bf2504a06646aa19280a22b82a41157cefb3d3a08431d889e7afcce2c771bc5c604f71310983433cd59bd43a4adc2fc8776109beb59039aa70e8c1b8c7dc5bfed08c4789337efec6692db5cada88f0e3998e8b30e9a8897dd85cfd051c62bd9a9e12b47aa4015dd156616682e1c299357d57a2fbb22c2139cb562971c6360a7b607d7e2001ee26baf0b5957f73f8d94acbf8b3c56a3b72b11054febcf21c95d9ee82b70739846f06eb9966e280a8b007313d3084cf984cc1f7b34d7243627eb70e558b096644feeaba78541a06abbaf2cd331d8749247c2220e722deafcc5a76a0998d7bd62c50623ec183e4544f647943655cb5330381bf608536c81755319854296e2f3b52209ba9df6093536541fb654d0170c5901228a4c8f95914c1a2c87cf76a3cbf3c6a9fac15716001a2b7e0e0a8c00f984b08358e1902238e36046ab8da9ea35560313c476286e1abf559b407bf2080684b11bf44573f642002d364c35183a8b107c3952afa40cd68a22b666af575344be88a269e141ff171a6169a29a92a1b63cc1ddcc642808b6f22b65a8345ada90a992d91a9114480df287359b9b709814e425c1a397ad0714948ec339b96a229e5ac0fa985df1a19ed1440d1fc78c1fa77920abadc31c5256c52314cc970b72b0a6d84fbeb1b1f08657a636be530a5a8129a8f8137c6ffb5e5f549197dc2fe05259841b681a6393a6a7781fd03fcf592ec3b458d3027fad4330bdc85f4699cccd373de5d7266e5530a73a42d10c9b327a57715539eb99030873689f47bf6871a00c6caa06e4b04a832c865b69293303cf838ac186b453d77088895db36163b1074a8e045911fa92db578cad284642bcbb44f844c6663f3f4c98cc8acfa1a96b6df57f5be10fc76477d306245670b2c796672331076f74480c2627a3a44421a01229509752a536e95ba97e85aebb920b4b1b1bc55bcb95fc76ed43b9805236cdb62861fba353f08409c91126661580123509c05208c8604389b2dd3b0f8fc94f432b41632c4ae1ca0bdac54ceabbcb743362725b839dc18add4b7795a025261139539641aa43a9c185621d13c33c579189244c884c047bab4187577c97639ca4abc631eba5e9b141e11b6aa8d562449c3ccd8757503a7ab358a24d2b36f2e1768fb24727801123354b6dc661f640883e0613c8886121b89336202eddc464204b1dc16b9fcd3906bb9a6cf8d6a176a43aa1b13200d67ad0e21f2f73186164a6fab968ea0427c82501c59c49488846489710d7976a5c812f78b5b7df2aaa6437054b0a03180c4a886b7d653149e8497b18b18e98e72f9815be90d252a4583f2de88c0d7bb10cea4d65ac1f59683db4ca4969a9b57ba65e06908f7e9267adc8c87e8b8d8d5651b234bc9ee1c65fe42a51368a041253e982100c25955bc39b70b36c67484f8df88c2066cd2a5339c471b60a1b81acc5922e274cea4a071eb71e788241ad1b7c41db1e972212e27c770e6720a7e67de941a1ca952bdbbc591ef78019c67dd184259bc873f045607d1440bee46f199a7d2274b4e40062c064368bf5c6d50046a198c89e1372950b7710b3b6376caa9bc32882a6b0aa9b7fae86cccad0574cd8b417047d30d41bfba0119b909142363d307a006265a3961c9c604a7b65384a5deb1c61f25f66fb3b7640b5c3e22b8ed488f08201a10c3b5a42b043965d4fba6f31b90c5a8a1d8b29a01d500be93225ab6acf77960afd2824f2283ce86288cb1a9b98c11b03dbbb0e0854731b22464331f6dc70e7e1771471236b5b26ce131649e77d46e7946b85593b2989bab4ce5d09ab8d745a64d53401bc0ca4855e54b20ca4811ae5d9192de398d9d65dd3a327499cc0ccaa9f9b2b547c5b53722b50b21c7bd2c3c7f67a15be8371e9d4583faabf2467a4d5365cf7d92b8de8a55de200b61185b89c83bdf817adcb67fc775a5bb19f1aa453b491cf1bfa8d51d0cc499331de7730877a2db14778052cba5d759e21a8cea550724f52bf25c2a31d7b117a4377f7a461ff92882e11a4a8c137ee5a4b7aa67f712838737a96faea898141a1b5165761401adbb650bbea1698267d324a3cb1d9933be8bc95d55aadc4a814f201ebf724fa024763563e2656b028053cbd16b32c20457349702702c4b453a277b318551c8b732378e3d7bc31a10b5ed975ab032fbff647c6340c2d5c91f68c1addb447fff01dfd4c0c9d925111948f001880b36588df16cd1b9bbe85973ce513662267214660340262273fb45f97f65da4e615dca4a6aa06c5e9ba0ff727775c84608611827c98c8b7717daa60004d2212dc28b4392a6e0333a77cb9400978b60a00a766f6264486c60af452fe92452156961f2467d013072f1c4cfbe08ea7885a74d0649517178412a1ac63261981adb7708dedc89b64e67dc2a8b25d98cb1ad74289372e48fabe360495b4a7472f3c8b7f877280ebcc6019648ef960ca23a1c49b684f947460e96f0e941408fa026c127900d84665768db52a8ec05696725b3dd82498226030b7189c9ae1c612e9a2c65c86c29426caf686d5b00ea0557466a1b04f8485a457bb83dc68c4b1cb01e7831e476453f084434151fc0c9ea3b7081ee00b4665048bcb8fab778eadf90c25f54d8f452381e252b2382d04028378e7cc7b3973cfb776249857cc611af8f91db8d5b9f5d90212b27d5fc9a794d53e3e002089a05a421a540b36aac5c803c8f5cd71012f176ca57a7a439db90bdc71ac65f0470d54188927bf3d2640e5a3a45d9021f876562fa7c6c2b37be9261393861c5f0336a47ac373e6874ec53fc9f90d856807675858ba1291c7134c4b8432f9782cf6855ae9d49226055d9c4b2f23c0238f20b516d6600fa72d8a5c2d06e1613dbb7fcdf9817cc299ef2614b6085517cca4006876de51659c317c7c9d15b2dfa3cfd29db64b6dee0f6e53b6bcee0ac31c086db16d2a63040993f86bda57d8006a152c436e383ae407c7d9bd7a715a2f9efa507422f072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda +ciphertext: cef4be98dc83da0b9570bccb0cd85d237536d29da6544e77e0ea894fb5a777f7966ce27f9baa0c2d13b2559906edd041641ef91758e5e33c09c0aa3657892b63b7450243e4c07d4ed5bead3239f6c3ed3c59fe3d302b1fa9360851a7f6057f3275899d48db6b713a9b221fea8f1830b45c2fdf9f08cc8a5bb390c9b31497bd35e6c659739eece6306ecd8d77610b2ebd9258f68de04671fcfb85199eb7c5593369fff6828c0412b666e9b969adbbb494702001ac8de879533cc2727260b7664edda4f06fecd7f775b9d4dfded03c9c3c309f16f91011d6240bf0f81eda6850f88e96ca462bc0c836e08408159f911f41b47a83cd8271bcabaf5111eaf3cbd36b5f7c6e61293fc1cb5a021f1438488f220b0bfd439c0b53d814a085ab07b8a1a751a9880dae73b97c5b45091ff63d1504298c7a0ca59f394f1d7a2064163cf8b4d59b432fee9c73492daadc5a3a9a6b132686b75db0805eb7745adbaf38d12637693a85cdc77fab26a48f39837d84a6be8734d28ebb50ad913f5ccd177ba3b632a0122345c1601c4582a0718254be614c8b619660a92ed1caf7f9b79fa0f0b2f1eea8c06962fa85d2d3699ba1e2cbeecaae9921754deac38225c9bfb23ddd4dba78a327638e1ca00697a4b93786f01b979c169a3509104fcb58ca1d7941f803263c2ae446b75081ac4df6c154b811ac394f87cecb719b6180772f9253e32f82dbe7ba2e5c4f1c8a8c5ac37075c3a129bf96cde8dc9834153ee49d17414826f4a4904b19f97f9f592ea2bdbebe51d72e112d600b795b788b1f742188c38a72d3e0d7e8f1a80bac86c56a8a6101bc3653fc22959580e543b0cd9eca89e077d9b1331e3d5aa096bdc2921fc5bba044e5f96c60d4088b54e5904ef842d8d160980b3bd11309ede2bce224cda218bb65a64bf5ec0f1fc6d4a5ebf01a01483ec968dddb1c1f56ac906853c69f90f9a5ed66bd13c13c0d5c8e74e39f6a3b7808a67d01b9edba03b391c8912ced938ebe7bc9c97f82a3efed9b5dd12dd83f92bb7a20e5f3d15b0341ac07fa3234b33dabfeb62bd399fc5921aee054dac42883990d7a6fb7e470ca11933ad82491983c119b86c35868276bf804ff5b39b1af66467a3f5ee835078ba96f2666acc015d9facb8153b3fea916985fa36b050bd3eb5f2b903768c390bbb917a85d14216c98f9a050d057dc4dccaf665b94a1d3a899474fff52cce5376b163c19c07cfd8046787f2714a14343b18b5bdb49c06e76d945418525cb46520a29d7c62421b81cb57188b4ce22e2402380e494a03744d2c6a4398e358efcf0ff62ac6d9479909be5e41f2a6e649835858168221f6ed1a857e3deb195a6e68917d8eb3e945f294ac6555facc46c558ef6260820575c3de0d896f53b9e864f76eea4cf2ad6243d9e4369ef7f22aecb1b349c342e428548f29e58e0096da1579c0f2d200fbfd205c4daa7d0420bd3a4b0dc7d5e6c9cae7ba37a7065705a213d4bb070e291158fa6a3b67bab4574a712e1aa9806a315b1b7c559385181ac322855d30c3c1aeac5b34be0f6b6a0a5d9ba07c02da1ed4eb279ca6ecbfe015869ce6faa62d32d32ffb190d9b3cf96c7ede8423bf33f3b124b2f9a2fc8990030fd1c5a3334d3feeb134c2b8b65b5f515f1d668be68753d5b980e4d37b20d14533c98974529bddd2198a1856f0c7555c1624942147946ea61dd511537a78b401970e493c9927a14f2f5dc26b397f3e0b28340693d95378c67af4fd4f04cc1fde17f01ac79a15c3da1bcd842e5f610cdc807970357c56e3d6eb66556054dcd8844323dcefa4281ede5e0657977ad4f277e3b72a326f7d9c448137e3b7c6bfb841116584f85b6b8970cc911829ab38719a0418490690344ae98e62d114965d8a9d154bc0c6b49ca0826b4909dd9c3c56348e34581b93570c7533e0dde9c0c5c5c28f4497c2d399151438b241af777b0a04e9317c48971e8e2a22c83e25b9ff9a170010b6487170ffa8d03e7cd1115caccce2fd41ccf6f44c1b25fb4ee4e105aa4e9c3418e6d998f8f738df1ae86372b0a383cd63c24971df937945646d4207a7b6042df82653450095d62154e115d13bf7992aec6e52cc20a9f430a0356436531ff985761467b8dbca0dbd15ed5760ef24c37d74c90a998ee3ae7c748d703411519b7004f38fcc48ad35cbe2f8218249c845d3a04a3b4f345421003200718c59a5c2a +result: pass +shared_secret: cd0a41e85f2afaabcd7f00c2a9be9bacc6d6f79e0ae6b7ef64de31dcdfa02b91 + +# Official test vector 31, seed: "ad540a9ce816d6fb1661e5483c44f6fdd00c9e7bd1a8ceda4b4c4d3697d4f78ed0a56954996ccb7da96ecb8f5cb15809" +private_key: c5aa9d405bcc9af610795279ef2403c6f92389332592d0adf1b3a5172c795b483e1f600f2c79a7a683574076ae8941b68fd17793fcaa9cb60d39373da09b827662835ea227ab05845853979910154dca8ba44c1511172123ea658b519a53695e1315accd3c5855e03c1e40a50e10666ba253ff23b1377830ca1a485f656b24662dd3eaad239553f3a50b2934225b2647658aa1a21828a413944a53135ff9516850a2b0a66b8d502a17322ca87b3c09866059942bd8eb4f44d646e5a80a38687dff595e92b2250c2331dfd2495964bc03a2ca5066cea671a5cb0ba079788366376f8078804e98c9493a9556d044e7d218ddb83597f9bb33369266711f0ed4514582b25f04aaf1d0247c5624eb5555d0b08c14d307b7084e41e1185465c193ab04d4295790e4451dc25491796d4b3c47b1051d021a91440b869a75848e9894c8d393c534c4b2ac1318a5cb482b53f9ba76203331e87569803b0fc2e96072f777f61b008941642fdc76e9744faf9c6f06c381f5d54492eb6ccde84f09101501c60ddda80788c4619cd48defd9a9ca6576dc451101d37d422350b4357c49a90c291aa393263cfcf887c1363769c40c76530877dc9cef88bc13f740a8612ab43599933b7a3a7495a03800b9dc66be070d8096976c85962f3c75bad40c71457e5ee929386c7f65869f3e3c067512b2256112ffe557881b873bd313a021851c581259c2cc1f3617b38cacbf4a5bf2346623f2b316e4c82cfc9c4ae2c08742709af023b91ccdfa0b829fb047661c8dfab33bc9ba334328a8f22419f2f8768039c098806937c05cedf34a8d65930b07ad66cca3ceba2de45694cb534f7ea881c2a2c8df9c9f52163feaf0cf199cb81f1c05d1ec3774c203961c2d14c307bcf4716f69b837b7c894843766700cffa87a5b6b655fa304d8b2a8aa32637af967814b7915e5283f1263ed03469768783fb757f4b8385f7995548c75b98c24fed4b2a3b28729924ccd618a21f9385c5b577642150534c31a15a854179e1a0398df0c2c69a76816979f0834000378bb9f4ac43bd098ad6944b2cb028924b201b6cacdd87f25a67e676c738931acb4c42594a4ae4354cb87008cb2f486dd50a16e0228db6b547e48780e523b8841cfe8b636670ca397990550c540e2572349947d15cc46e186cc3197045d77b8dc85943c0abdcdf1629f4a74092a65f579b33f5233ed47916f1475aa284675972c7611c1f35c41cbe6a8f1f18f3bbca2f7d9380e2c9ac9126ac3287a09e80a041531d83b39591a9618232f990862d125a29b85a1de31bc4380c0c4f56e8a93a7a332a86d114faa06189f91b76ce79cacc88bbb2360599c0e9090226c82a57c5c1403745703f6b55cb9bfee17c4dd382c17da5585b823f9a037bad4101f07a301e96953e02a32a31326b04e02a52928293af67a6fb115444f4a4b58ea17ae716d61806094a301bed3015443abb0389afd98196611cb1e0c21c951517717835e7868c4bb8c958c630b0c78032367b5eb30100a15ad9949e8051c9bab638e8c0e271cab8a3a43998532469724979879dd46c40426cb49a29f987c9beeb92c1a393d6132921b019791d776728617597b0f2738916c99a9d889619bdbaff69050e6b0c906f3048b8811a8da04aab71a1ea85e2b07ab021c089dfa848800aba0d8838dd8af43d82abb6c664e363ba30b0e383214801cc69191bbd7913cceca3a45b52b9688957843bbf86112c70a64b0e2a1c3c89ac5d881848616ca3838c3647ae686568883550e93190eba3b1a08080b46373fd05f8ec81a535650c5281843279073c0802cd33a7caca35547c0740256f8b7ccb85c790aec85525759c0b22b15d268c9755bf020bf6c913074c5a4118bb45b025372dbaed0f96329c245052c8e831c5966105ed6d098a4e4527768cc3cdb47eb343788c9b5ad2b4ef15b24d8193b5e9b6611e3bcfce348869b07bba361035b54484257d1d65b3d11226f31c299607674c783b81aaefa6161656115be771991615a7e5a7b4becc21dfcb48738cbacd764d1b8b8b9080d6811caf9927a4bc68dab415628422b05530ba495101a9b336a896457837d6694bd568290e2259dcbc302ed2baa96292536b9a0154771b0c791b7ec8c4ea2489062160f8691cad483b020afbb076e0ee7c54188b32bf6a6fce45eb9d6a03f11858433994e304b2d379c43d4670be6c9d65a61e50c34ed26c67e716933cc5d9ea22d14f86e5cc54967ccc82e3506efb8cdf40c31f313135b597b3aa72fe83b01ec88a97e32464733107294270f82216e11688df6cefc2a9332243eb75059fcecad20a681aaa17402fb36c6e091728ab92efa891d141c251895f4c79fe2db4b2253114be24d22a38b9d14532ff80e384778c8b99a4303506d08303bab91d6e05c68a0c0affb5dea7344ef5ab21a559cdfbc3be395834b4b8d8d9c4af6a9ca37a34fbf05669f99af8bdb3237c98f98802ad76a26eb353c6612674e8b4f93a190f293c80da025da00aec20265cba37b0df43d78982e6ff49a9f464e7ff57680e7455f816f815c733bec25e4227ca3257336005d0559b647585379542eeaa8282d8a90b7a885b0360c4c9428951820d189b873e246e4d793fa94c0211630f54510f7f06d116acfa35c856f87913bf61cbdeb0554589dae65a2e25341e4b93916aa4b738714526653e798c11f24563b2200319c60343869579b74f2ba9ddb03c6f3479a0ef3a5e5f80183d69034968e25892c28c272dc501466621bc091c0fcfa09a2b56c9f8cca6cda208a523ea6a40a4907c1f390780d4a04624466206594ccdb1b19d2b9cc407bd172428316692e09229fc963710165970471e1b554f322c1548a118f84169dd9731bc8c49d1b0130287024c391ca027065591fd9755ffc2a68d36b7dcdac3a54e0ce67e432e35695a3987b1d4a1e5ea32934c1cbefac253da2ba9714ab6a4a46a07950b6477c303067e0e673fc6cc800a26fcfb59a01e397f944335eec26002889b08a26338947dcca758eac669929bb4c608f9861812e06aa61f5b8b56299efe95109d57c42c066ead511bd868c2b107522043da8356f617c26f7082b078234b435c478d48a53d5a369f7907ce2be8370c0ba7347707b7ffdb25e6bab2fa85b5922e0bba7269fb7a9799a158f9806bc3589268d8514134aab1dc83d415a235ef49586133de1ba59b8fa1ef5493cf9dacbeee04f4b9a94b3daae423575682311bc70c49e65090a87137cb327419a2f2d5481d6b10044c6a551eb711bfa828a3cbf22e026d2345dca2415b6d9b03e9479faf589ea02a12d1c03939935e8b225d7c18534a2cef060456bb58145337e81f7346e057bbb98a8c0a312f784351dcb11a1fca7984a2443b409ba903c3024b8da9a8b6aabca90b74a34b532bf01c7c1c1c7ce05bf08c5c65164a01f64c86797317dc03b2d69c263390f9e411df4f4508d7b03c7b473a7e195e8338cae5b89b85465779029c0ac711653b1c7a24bb3b9bff0c612887c12a39c2f5bb2920313cf3522396eb79065bb1e854a8956f7ac2143abb4136b0682bd01275506a765175c4b7648a0dbb875e2864d52aab697533512164be2659c57151c4af898d689a8619726406110faa69f61320e75d3a05cc27febf609e52026c10c01c30118ee3693a7293f4f7cc4d9f84ec37c5f38890a6a58afce1855d4d0ce1f0a577790423115c59228b96bd62d68d90f4bfac9f17a7597a492e5711b65d8626e568f0150a458201c6205a81fe74a591b547be842765723b57503c3b352478b304c39b22b147bf6b5bc489c2dccd44c9f206b7cf58fb3faa3c8891524faaa88479b0c4051deb63eab53822f84935566ab7978c1b9e5cc043767c109bb4663960a534a750cae177aa33315584138138d52648aaa5cefb09f5cd58d008d4c69a1c85a242dd63a997385b529a288758c427ba15b05642c230c8a0180938606c6e1465166f128a35ca3855657ac1b3677a0a15d094ec68caaf90cc1958ba0dbc22169f3853f3b7d56f4bde7bb2c1c71c8c4c95299d95873f89a17a4583bb9198e0279a45691a3107ba1294726a385ed95163f0bc3c609c01ee201c5900eb763518f212f14723314715e7bc84b75a611c481cdf858350de0495d1c020228b004624900c300cd018166fb4dd217cda3c792da49a87a3bcac52542f3b3243f689ce69c1946a134a97061c83134ac52c92d97a458b7b38dfb7f42476b6c5c272c71065e5159121484d4a541311c97fca3488d13b1de64610483cb3a9551cf4a3317d0c76766c777e526595539ad17bb6c184aff73b6c4eaccd5a14ed1b1b836975deeeb8909458146938505dba5dad77c1a3acdab128b36dc1e94a121c545e3515ed56687f8911eb5e1724016ac096bf081a60fd2726d6b275f550c50021d42608c49c93385828573f89f5a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad +ciphertext: 3a385d4faa2e13cc995be625819127959a2cdbf5030edfa42c129bf7efa22ecf8b2c50d0b2e6e7c3bbec34b609ddea036ede43e34ffc35a98661a78c3f29d07aaed7df7d8a04e53f2484d1c63b14644e134704dfd643e9f87a1a60e0a95591a6897f38924ae27812d9ea3baa5926a657dff1a5f2202e781270f8d37fa747c9b2f71767f265a86b3e9816d0545cff49ea6b0aa9297921637dd928ae528c90124b0d5786d6b0e77b1bb6f49fd8e0799b98bcdf6d39efed155c8b29ecc32547327ef733d644ae279b4ceda0ed406fa5a55f9cae0f5c97dc0bb12b112a4d2b4b24cf7d78ee1a2aee6aaf10c4c311278bf521b3431d9177be5c6bb414074870c56adb807331b640dcbf15d1f0e28beb419da866eee0581f25aa8567fc28dc7d8477cdff4fe27561519df585073a47e544708d80735e086c6f9cfce4531a5123d1b8071f34168349e4d35f7cbd235b92e9ee34bcf0e1f056dae77af055975f97f9a5a8880cdca6b1eb79407187f6954ad5c06fd5cad5ee2a5e4de17ae0d9a58a614a3dae0ba03bcf8990e47b548d94023a436d3066c34527af538aa01f62e8581c8f824b9c25e495f565fbaa7c11823f2f6b25b672a742626ec8f044814fec20afd555156ff2c16f1205cc4c5f0076db3f8f6a0b4c814371e96311c43c2e6fc3aa811d5bae3898d7497199c8ec0060546cd6facfb27138da4acad7129917d4affb94456c6e4842725b78b410b6b56a53b27f54792dcbbb9f32d7607e071f09e105fcdb8861bf5e452810f2917c73fddfcc8776cee79fd7a8711af303bd892d00d9b757a252c3c53dac6fc7223f6d480a277c38d6d836542761912a1181e9043ce70025ec14c79d01ca72f93d12a19a50a8021033ede24a361e3e152f97e9313fc3812a0787d61705365dfb3c115eff71154d1145bfbbf1185558aecba14e669b9a354d2fc9302904b13a69d1068465b3f969338bb7e5f9f819959eb1e779f04dca99f7a92cebbc668c5e8cc416d077ff12f4524e959cad611a8c175e4e9757a9ef9c42886c6851bd684e6bdf4e94d82e7b3c909b108174b8d0b1042a41028ca149caa29763ec56f2964fb3cf6bc4d8e3563a4ad320aab53c80aa41307e9942b45ec8dc17758750bc60d413806f65cf5a5ae12ba8f839eb8d4768c1fd86e64f1f11c5160b0cdc3ebebd8a4dfd19b8bf4f0325c2d23970fd25f1b6829d648a86bd035649a2b2084f26cc08506a7fe12f57628524d01d84be8b73f7bf6c8d030a617bad843866a430060b325b0cc5092fd6e98e5df5bffabda29bebd91c4bf1535275652cd7a7394ddfd0fe3ad8053a3db3dc4e820a77dcd81e71a7081d21563894234cb2f8759e1b239350bb9b2eddfafa555571b642780c8671587b86b64185ca9c3107e3beec412ed6029ab679903e356d449e4e8832b651318b7e6367462c0297a31159e9d1c0d2278280bb92a65ff6c946f6991dc73cf60fea144c6fa1026708ad9477831a2766db8bc80b1607bbd4193d7901e1a824785bc435fd8915d2d55c4397c2e0b6a9bab6f9665b27253e492b44fb96f604c16b3ef21da9d9c33c80e1b8e2fc11c53c37d7f465c44de890fb65a7194b8d1f348f3fa35a0df294ec9fe1639ef96c33633ebebb44c5e92b27d199d9a0a339ca893e3073b48e92813db2c7e572e0f5f52c1b5971d4ceae3a81cd420e2750e58b16f7b0914c2ee61cb239e1af94820a9a96c794170fd1397e04093792241d81f3df0827b8369277a1a139d723c5529bebcfd40a9d168dbbe9613fe08b28a8e98c317a6bb1392aa39e0203e1f7de6ef6181f96ec520b518375a362344b9e08a43c374cd2638e52a0c1dda322dc46b3bc9c1120d18793f96f0e911102312f6e2bf0b56cc3c6ab6aaa8c3bf7f61be3b1f9e410e540de3b0084f35ef7f8ce7426ed3713687bfe53172e7e7e80a409774fa1578bb6cdfe9499acdf29e0af32117bbaa40f7134d25c23bfa322b0279e1ec6632730d9768f27da21ff481f777a633a042c223505c263bbe5787388ae3cbd95ce29ea5ca08181383fcf77aa8ff293039670cca4a64afb79c786cd122dbdf960cd3b81b862a7473d72342b8f8d8c46d6b604245d48805640dcb423a417e619ec3ee38f4bc557a4c700f4e5df3a685ede647c90427724265e2473fde973b3cd3c0a2f79659ab360f3a051050ded822bd8ed4edc218a893cdbe10572745a93a6 +result: pass +shared_secret: 1537e848472d0efdb11567f6ae943c8d16d37f91285fa7f77bf589ecc5e33d10 + +# Official test vector 32, seed: "288a5f2684d862a86d2790afddddbac6fda934ee7d2e6da1508bb550838609e8107312b28e00a6c01706374ccd3aefa7" +private_key: 23f2a309696a69c78a5272b1318a02669321e5461de8166ebcc0a85df06f30782c29dbb0fe921b9c7c54eba9771d7b52887b55850234de9b296c925420567fd327842af26d0ef1cc1ec393507c540f27184f297340651ec5a0151cf385ba7a8b82156cfab21419633338708212364997ba39755864b368c333397bef42609f4b09c68a096f086ab6530a3816c35d6170b4b28479e39f3a5c621f4198f8b8ba5cab50194bc8490a227c473854f9ab021851eb1a405cb236f8937723d74f0963a67dd465fb172489c594cf91517c3c0dc20c6bec78ca1e52373a57805c30a3b319ac204995846c0bf1286cddb73f777522dde85b43e078c74634408c5e14777f74f9696e1c0703d9a221f04592f4218988ad5cd0b434541be033cd3a28b039c22c77ab9fc1e477e6bc223703610c4076ad3b583c9402ccd26841a55074dc27ba3981a9552578644895e8279c02c39cc8c22da0b11f16ccfb3750cdf76c333ac9988a23f1bb33030718279582fdb578b37512ea084348bb52fbd63c365951d9428468310821210105e0600b5723416b62a72c92c7a26642e7c9c562be22bc9b5b82a16a00069b104b6e359328d0c78af04bb337415f5a14c5730681e3c323098f117a1ff85cba1780cb8e51690d8a8565f9739d15391fd7b6aa2091a828a4bbaa45d80b568fc59c77375848cb44d6f5a76f260fbdf6223ff80b3f1229992a7e8421acfb918d28324c94350dec894b50e73e084026be12733146bc4ff3b76061cdc27470052175179c2dd2ba84db17501d41a16cc183c8d0c2318480efd5632e630b6c2612f0c88a9240017ba431c5a8629107af4cf08614f24e44808949e75c283ab36092266ae41b66d67aabc836c7364525ec4db7ab972d46709ff08762618d7050a3c165b21c5611de2aca9de5a6d826c6441b4894f59bdb93690757461579024feb4531abbe20d0410ef201e7f35ac3d304378971df8855f992cafac0ca7d7c277907d071cccaa84b3cb2203a72bb3d7f0c3e08321c7bb944a4a19fe794544c28181d92cdbe62ba9c270df5d646e1b05adccaa2835aa8b40a8b1741b10cda223783a788f36a3a8c00eed901c74b95b009a04fa169d8e0512e28266d3348774c7248d6c7122362661c5a1146103d401621434198963f26d3459c6572b029a3828bccc1ea35be549bae2c1aa094374061492636989bc8528d2a7ed649c1062a10c372c7635a4d0155a12b82a3656a491e1041fe25522ce39ddbb144a0ba37dac28608794c87743b8884b2fb2cb2dc1a37fdf34718813ab58b8f73c0742d2595802381748736458a846dda95df2740842411661853de6a8c04d1cc31975a8b8b3f676c4636a606dbc0906d101ca6e290d364b4a83b1ae5f461c56100d5d48a93c5448c12c67da30341664f2f2a35b58c25a3397462308170ab80a95780ea1a4e650c6cbd90755c0905026a42d4001612289e7a4a0170b9907d689141138de4460d143744b5e4975f027d48186161458c5d05cbccba6ee3a0a88135b94d0aa28db8b61131783d63224fcb4962d83ddc39c08fd0773642340d93125e83bb31838e786a2ce3a1a68a4084c214b9f304ad8e4a13e80bc168f8115b378fe5cc0a12468b3c24ccd2dcbaaab7bb4848c731e68810b92342b77e6e207d5abc7b93118d0384941460249a3c495b617c35ab97c912589c76313b3cbe21a3ae88d9b0e93a2a24d8449b6816c1045760e7ab5b37649a97938fd4317f3984ccd33a0c6388dec97f4c0b685f536a30e5c06af072f7ba2c129c05df5c40c7aa3e633aa44566689008506ba90107817205916df72b97eaf79ab0d5c97a483f4c9825f485679ceb0d15c981f1605a86c637fad32bdfa800cee7846f6cc52df8475b170316815cef36137c2378e9e27f8121b5b8123a1fe62589db2108810cd360b108018f5d67bfe36ac51ba1c56485cd8a88918cf70141b39ad513846413342be9a31f62691d221df48c125b1829526290c71ca471868c6df5a5b1a5cb14052a46f34e5d5b1e271251427bc4f7f3249c220341261d102b31979821de60610f9323da66061311ac2f2413ef97730b0a38e436958daa13a4f015cf96ca59d93bb56c58e66ab56ad7ca707a44cc1901e5866c3a223831faa00ebbad437a0a9dfa83bd32218bf66027f82d26c68b1ba4659966cc95d79851f03e029a736c3b4809f9c366093967c53769b4796ee76b4f1277f1407b8c478fc1400de6415c2a231727303c86110af4b743aa85b73e38b41b819021b07d1ed5c6c171077e9c9b6a678d67b94958c66921e9cf0f573585bc3b47323f32979b91c411c9133b3b8b03199179c6f457f106be4201bcf2d142a4814c5e166c17680fdb2a1296890a89c802120585951a9051fccc4c42001346c9add97f93191c720466f95c5590b0cb8046a470cb50a3716a063135ea4a0219217b4d373efac8625ef44e5c0761bc0404f4ab87bd8abb068c07da5c832de7530be88532fbb5d8eb5c6023a5f0db1aee3a50d2864601a579e6dab597d6cd29208c48f075d42c6b27aa3c3cd837e224bdef354e20168c03172a16973224d50cc0ac7f60fc9b0afc7f399c29a9509f9bc3abe7298303db253dc04a69bc873e874a43dc28fba6339e4152e4399a3ef1055bd81099b33a5087b816ccc668a75bed05650d37966d058d6ebb2b3a819218036c2ba064ebac797c671ead151c121ab88f6c9395204e714310a8293c64bc9789864f93569ca043b856c8412ad985d8206b6e7485f1956d7e616104f720e76459bbb0c874e45479e67233137875c82dc6509cc124bc184a3dbec02cbb08b989103fb59c378670be58f0a96a694d71062e6af424b6745fd9130beac38d297a5f1ac783ef064084b84aa06ac9c2680e8db2487cf43bbe6b8574311a4bd99d733a1b6a751f68401938f4091d25837120664033770d476096e561a1b03e8cc878480a015225cdc1d0719be196b4aa94074c290590988e9b4a4ebbb4b3e5477483cfa6860219237924641cf9a2a7a1219a8a87bde9d08166f0c3081297eda4737d082ac5617cc7c36d428b9dbb7237c122676ce932fd01aac625b5db503a8042c0112714eb43370b5b5bb0d53378a5b6f738c874dc7a7f1c15987c28112857a4bb4310788375d9aa0e60c59958c7f0db809f688f7640805c334e9b1aaf78761d5107c12618b81ba12a1258c4b0123eeb570ccd9924084b7ae3473eccb429ae0c7fc059926f25542911a8738b0186c404f2f107716b5d2e228f91306e3bda12a9b281a598c52228330ef93962d085adeb6beb1076969844e1980295964f9f115840753c15674c86119909d111719182f880ad9ee9792bdc128a8c4df1da9b3cd43301037b192abdc694099bab87441113c77a7f7210764cfb463a96c4007108d4537f29d4859d305987930fd4d94c796cbd55452d10e9b8723a6165ccca8dd39741e94418812291facdcdb453529960d850a40745a022643cd1cb70ec330a6e190ed04963ee28cc774198914b5bfd7c43c6614007d49dda88c1d8b42e05a388f4db09ff1a394b01547155c79ff4933a28568e172133515eafab53b86a078a1a62b114b9977465342a61ada1a20c236d3778250eba35f8d36ac0d58c91198d4974610181bea1cca0724061976a7aaf161afa1b111f0b0e5b835ace9ac1fda361048a9b0008096b41bf7c619af3299c5abb04499c272211931f7b6528c17d5f52405097afe5e0c6ed2aa2cca7915fcc2543b4c8268256cf49936a858f7401117b80b18b081e08b45a0e828bf830c13fdc55fb468d99e8107b93616da437b90a5b52896330c53cf3e28bd3799f65f28bd5f0406638c18c8c9838c555a9b015dc99a61ac330fb11654831571fe667f208689d1c045517af836abaae37184ec603d01a918733362942632644b9b3826ed0967e6db05a6e3ca77cc1604174a2aab6ce72fb1eaa31480e235be79c1c25832ccef512e6c65261f2c485cbccf4062a81912abdbbb3c98c5a6912388a236161e7b8283965536908c0145bdc170bec33c5b2e437628b452aaba7f3ebc8fa730147469d63eb8294fc3cc9096781e58d0ba64d6dd6837812b530e9077a5c5648aa6cc024069150c5acf26d3cfa2d658ab18b86b1eeac4ae2422d41704b9982c8db14bc53e0721123a209d67999c9035ea07f3485ac50e35f85379396c620ddf159c3a4cd57fab15b53c8f2e6aee06c6f2ca02f0d99543368ab70b9bc3f655830d7cb47962d7c3789ddc893ab0a1ba3e1170590249a594445135aaf71a902d9aedd178d88d980345190d72b710ba08077fc868e86713be6bb45652a26c73ca91089040322801b9c68de70662248670f323f4233c1a3c0937dc86f0b6476d12f426868be1ba08c74eb9f3d9296c268dcd23c66bf0250b222854a5c31830b7431ccd3ed53fd36b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a +ciphertext: 99ce600c4a66fb31f655570dca9daa4ad7c548a6617019fe7929426b3b0b0782c46bb60a9a618a41dc2adb77334e9e20b6fff08f9658767c818b415399c26a69d110f8a36406e1b9e4f18e79dbe98ef3c5be1c71bb9583e94a4bae18e786d892bec54bfecaf15d4ec112d034658d27ffe26cd690e5665ec07504934029eee4314f49ccd9c73747c089ca0744b2c43298a17ed480859ea7f3ce9ba577c3da53c84deb0d34d78b5581e76321b895697704dce1e36f30b3686b32cdb20c8f865b7788cb93459913bb3a623904e51a106785dbad7471e269c333ae69990e8bfce1a8f38ae3b2d5dd68875e5abbaddb4152178b84f62df313d6bf7e4c8dee49c84eb6571585b9b2b1aff78e5d5c2192ffb0600f3317d9a14217b45edfbd6af064e9468fd2838fd83a0ee27e4fe33df64462e5fde462c3ba7710b1439a96f4c93d14a97dca88a45151c4ad8bb7e400990f28a4b98bf6a4826058f87af51bd1901ab37e4a7067e01b7ba1bb65ad6efce8c79e35a7dbc707f64c7eed28a91976a7026a1037e353c2e17753571007ab7b49caf80b1f35958b0308aad971b0b36ff5b95a290c1a0e2ce9d299e8cb1be448de63dcfa467f5067736bb649988c020b1e2118633260e02d9aa0a6640fa15a85423c7319adfc43ed03ed4c0f7fb4a67ed3ed9ae0024acfb75c7f421af32f9559fe95e261d5cc1df7da8bded18b1f109325105a59a3ee04d1bc428abba2a3411f6220e51bec19056d0eb2da00f78ace86ce7e22a525ff0d8f0aab674174ad1a1975f5ed0edf8767733dae428d9018155de34665090952cdf1cf93297dd65aa50ea2e7804536f4037a819ef059423ec0d235cbf71b0c870c6729ac1241431c7a9a9300a9dc4386f6d9864e3324dbc4b0f7357b98b65d489fc05c32302d8b8f33cab4dd01e1426ee197c2fe4a2b79619fa9113d92d15ee3df01c31fc33a0caeb2d7448282bd56ea9675b56b34ed39072dfd1481ae524459b6bbf81d3acd8bec34a8fb3acf9100c5642b709dc8e6b8c90c5a85e975acb13e9ea501301bea7e9c2b87ae2c4217e4482c3ef609fb833b0258505aa7f0c65963b60f1a4500eaeeb1ba0f6b46a0c4b58d28b16d3b86073bb977f72a1aece3b05b4662448a41362517da77694802bcfb1c2b413321fc1fc992b7b09df003345ffc0a34f76963a3cadc10610ce18f7a89835216ba09dac2f0a2731f9846bab78a0edaa1ad9bd6f63d4a43143b31a846ce138ff97590f60ab7347fb272be1d9f35939221dfa49d9ea311536def8020bea5759af8a6fbd34947ff6c812076ecd9fb45ae16b69efaf9ace46c9ab1a162490f8552ac273abb174ac4888ec0db9957fe3db777a2936291762fcdbd52e0eb55f7787225ac8e0ce9dc89a124d975177404c6a557692bea069a87f220a23ed09d24001763b37c3d0e3fe7c981beda9c05a78d14d6fe23c6fd9b93b45274c13c286d8e4034696382f3517002a564f38577df0cdc2f80b323fdf0d0df3bafeba4ad6b012dfcdda8c61bc4d60f6f635fef5c3a74dd73c4fdbd2988f142e2cad4312c4431e2808e41ec844f736158c23e874bee4b2711be9614e8cf4541538186851696ecd991eaf3c26a2e88648e310b35918c27058303a6f9ffe23cbc189221841299178d54320aef48ee89e7ef580609a17dcf8d31d2e2b082ccd6cb374198e06239db17661614e551621219900a778019c8e69a21b0e0dfafe27bc2fa3f28dcb07697fd402fe0ee2414c8de7086b69e1135c6a8824ae48e33624add195ff04077d2afe4fb79b24155bcc28948e79ef03c7b5213a456765d7b7f3e204c33b73eeb70259aac4f92728eda87ae7676174233c3d7ab43b1c47e77506dfea9bec8b5acdf0dd6ef8fcc8a8ca8eed48db06c367f9be106065f75bc55c9bb7ff972551243148b41bc54ca633c1564721ba98e151883847ba11beaed5ca969ca174b3651d86e14fb765e9523201679b770aedbfbcfed91231eaeb3da9d76c52b2638f539e80df8036f5c0e4b14f01fff3cfe9562df159f22569ac29190800b514311d965c88ede61188ba079717e213254c6fbd3fb2ac9922fd923dc3543210506fc41abea6a6b26c62ab02c5112df3e3643a914c1ec0fb6e709713f5e697f8dde78619034bf0e52cda5b626d5f1f4ae6baf907e3a3ad9898eb13fb1fc5a251eec7d039ce105bec76332cc00dbb74b189b202721ba +result: pass +shared_secret: 5aad40b5528d175e52ceeeb0e70f31d8eaebb691d69f87029c966f191c6e5a59 + +# Official test vector 33, seed: "4635dc5bb92ef98cdb6220df0dd717c7f8158375eaa2b78fc3f0b58e9c9653e92684cad3461d9158a481da3d14694c44" +private_key: 2702a72c612968570b25144125a96fc1e89d964a96ca260ae250c7af8c825d857b795396e4eb439f131dc9f36cc190b8ad3a385747a83a976a0e3662834662ca8c7f68386486da8663774f04066d3af42713aa6c8280aa96293bd92217c4aa8cc26b5f3371290eab1aa0d0cee1382de722162a23bc001690cc5ac2c49705711164508ca429e06ff1231ebf0b64550c359b93be6690b9d7e2cbd6027de95c34f03c3d2097cbe1150e4861b57b691e18100c333a3bdec306a87121e51c7641687290553d7005a5241609b75239e43abe459414ff1ccc41118417633d72522b7d1b3746f8a542106061d567cb4370f721540cca09bcb9cf8c364fca8322d2d56a6f1026a53a1593981cee1b8d8776b3827b5161886aa4e91d6bc26a516a757a353f6c2020db2b090a7327215238f5eb4c91594e555b8b0a3680ba6b9bc0589b5e91600da829205395ee836deda787045438e657830cb0c6f82379795a72f698c0d7209c85438c92812938c65407058985184e48f9093f6439fa158749696c1144a336614459f2bc41c9a7a31a2b74ac216d202ecce10f82488b4f32c010a23f35c918ac8c3ea7906219fc85f67730ad12450120091a4b8b53f5378f81b5b7b0bd85b486c6aca5b5435f33f8c38dc255c9b42f1a191457497845f291fbcc239de68c1f6875a445baba0951238265d90b87f630530ff089967b50a1d722ddcc7bb1803e552463b62249b4454095a0903da20077b045213b0db8953340761a8591b042fc885daa8a8c6a2985836c9109b827b804ed5c0e92b568b221618df155c1535fbb128012cc27b7aa6a5a362bb3747712cc693bdabc919bcf2be8afe42a76d814a3362b5337853828639767bb7fbc4bcda6988a7a933f68aa3b3cb7baddc065efa98da09cb742ba3563e19e27eccf6b68b94dd28fbb351220764bbd781ab884956a865bec99c222e59295842eda25c340a45275dab51631b24bb86b70a2b831f171ce9222e350a70a1879adc70d87888db2b1c540c4666f7641ee36c30e733ae206b087084fa3bab717d2c8761b78c20a31093ba5e923298ac59cfb768c527a3aa4d19d1f0262d6d4bebc41699d152e092368ffac3088d2488e6b177bf9045802579ba973b89a2404db17df25c546fac731480d180a519a9309e28a98fe3b521c978df1a94aed0a2aeab5b971c995724189afe7b3f90c5b1563a9187311abe681d61834ffdc8a2142871cdb48096a25c0a315f12a627304206149312a4c647d1059a1f559e6aa3b4f22ba01ac09365718763a720d94506a39582e6400d93a19540690c94c9afe1c5df5b6716ccb4b80939698caa521313a3b3ab17a06a8ebc3713944656a75bc95599a67744bbe79997b4153182372754a9d8238926b1cc239d5942e60c1b5d85fbf828409bbcb68e30e89180bf08083e94816dda4aaa53267787880b9cb38e381585535c80ae47d226893889b5240db1d82d926656541f3196be9458a1a20a5b9b263bfc60670d6baa7981672a4654fa87a37804486258403c9b0dc48054d312c52592de43a41a3a7aea934a72281807d26c10aec91bbbbc8ea75b2b215083cfc94a12c61be14cfcb2b688b097832fb016b0a60cc133c709b9d6c1734d4a100d3523f8f30c78f9647808b6cba905cb4da605a2b3fc3a433c916089304c868257bab174861a8b57f6bbf6b79ab55a3044be689a8e19f3d598f7453b3a71a06b29bcf3eb3819ed35d56b74a176cb9bc81b9ad94250e639c17f431b1c856b02c4d6579417d304f3c7b2a34579b6c09a866ac9d871acfdef3099368025f4109240372feabc2d17a7e89031e67a74b68144ee1a871c8737feef4b9c663bcc9a42770ca4571a9b92c60ad14f53600dda002509f109659f8b2a5a83ab6a1d8c3025c38ebe6346ea5cb11e66d560a9c656a61de98407c130b1094c391a879ad70ae5ddc2acce2b42ccb378b9a9997d6042581230e6843e70634d25ca675e09947027591372e50fb42a28cc9c8e13693267305c89b7ca4cfca931eb1e6137f6470432a55a08a183d1187ba7a8f78e6b960874001515ee15437bbb8157c382af1641693b20e2de25cdfb7c4bfd9a803517fac4ac6bb960377f17ed89b216cc92eda7b08a89505903659b94552ed2433d7d6668b226081691f4ea558f2b072af6c50f1421cc8e1532bc6afdfe7acf2a43b34130fea7ca5b1409ab0f10dfaa5a5f0e7b9a62006f1c53e82b5c7ea427009c990bf31a939ea2705630164445715bc5c80b3906739c46a4c4cf1024776037bcfb0716d1ba00110637fc177fa1768e73cad8fa4777e13aac74338513c516715b645e3bed722382950b132418fee81639d448eabd55a94c66a34eab68ddcaf1c756a4907bc3f5115aeab5320f3b9bbe84e0d885fb784af7fd8c1eaccb37642cf39c8a24c4903a7e80578ac7e9f2a95cd806caa200e23873f751636cd606d819731cf1b812afa2ed24381a52b4f5fba658618a02e0418d6823e7f418294c81032936559a77f9c014d8a3b38df8bb17b7a8c3b45b53ad60b0d9929a21a4ae3039366f894b1082db5f3cf2f13381d53827b5a568fc5234e099d6b94bc1a013ddde944b4ea13eb52bfa880716b1a10d8827a033878986155b7f2944a63a2cc32bbd61907125475bc09b0ab76222cb4c9f2e80a00f9b71bf9705e3576b5a96f6229ba1ce06fa1b2079cf66c59f30dfb88c1f9412b0b2ac059dcab8782abe57209188bb938d08bda140a0eb08de0db3f8558c403c725a77aa1e0563a54a77f32aa30cb780f4e562716075763e9c5d470564ec12cdfab424ba970c51201081193741a5e358cc7d63064a7183d99b28ddc5b0f10374ea9710193385b855a259130bc490041f76a9d661483aa668aace51c616804b5e7c1bdb8762b73b39f17785af94b355b0fed72083c2b71efd1cd43c1a9704a93e0e5752e99a2ef115b6ecabc74cb03bc091038f5701659a0d4bc693805080d6a5c81a0273be9149861c461c47cf496cfb22526d3fb8ba5a3396dd19a8477611b814b76d5c8191ac1c8190ac3b12065ca4ccc879d5f34bc4479a5c8d4693d8771b434c4b8e8b8ae921e01a131e9410ed11c505d226722e011f2073b0db34d10c104afc2656dd053e43a8db7c00fe705b0ba520980dc71e834127c08077806cd8e82144d50448dd59a085776dab69e42db0e7e8ccfc010a140b50b50e09f233aacd3da972aa40f1d1241d718b54b6009d3daa090186cb167c1ab3979c8356397e598502422da2935edd9c8c44b90e8c50473119d26e99575c0c328307e2017b515f33d4d2821bf341480780b21d37fb6cc3049324eb12a42c9f7c9e086bd0f39a1949058f1d8c8f0739c23fb1dc542429933080ae732b750af73b05df6b46e0f27b678668f9450c193c861e7e38d65e5cb05a52f62b29d21b4b33d34771bca88b3149aceda8553c5813bfa6f8a99c656601fd6f4ca7e54cf80e48fa144bd996bcf41e49aec97734687a7d0da2c71231dd841c8fec9a8fb686a7cf81106b16735d6559424c1ae7a5a5f0515a8074bd879c1cbd6012a3b5a7079bbeb6229de7676a876c02f1620d04905341c95ce512d20c4ca11f7c08684473a31313640760d24b4946c0268c108a8b96f699634414b070444480800c6c3d4bbdf339c47e9b1660b9ea039bcc6836a6fda9489e76418047eb3e99d40aabbdbba140221333cf1cf2bc121318aab09022f95c31b12abbe67469bc34ccb88c8a0a965902e47494c7a0bd573910a97377b764ea7443e73346ef9bac0376711db236f89a025d9b09931aa473ad04b351a00c5d3b969134f03c1745f672138f52ba47a542942c1078892ca3b9509f435d8521a373810b12393c8eab18fe7b6f3f4ad7ea88b88b21db46338adac939040674be52e6c2948fd659935a86691f076c7f228bc5874fb8214ece1947f68b057411c218b776a332f5aa351b4d92560a42346180edb08bd57f5342773249fcb1f036955da0269695a712ed852a35a3de8662966c0b2c2038ea1ab7b4f9708c5849dbdc6a29e734ce8db1f447109b755af11976b73cb6c8594a5de221c44b61b9d425280007ef4ec4ce3b34beb733cc73a1a7f6857218476adb0200d96658c8456576666b6d7c06da03663191e649457d298b81b067789c285af151ff4b97239c35ab8688a8d6b4469fcc7e42201d5d57bf3cb98c883c5c9c88f05555674e7a1bdd59e3f327b69a74f0d4a250aa89fe1359e5724ca02c38784a14690c62d891364b752ada80402128c623d0839a0f09bd0e6a37b724070a4356641c538415f2a97701c5492d29a2f2823884496af9dd06703d8ac2c17c4ddf5561590b63ff78c4995a31a18d861a91c43c5dec3705c6112d81b81555f7a3b432f37e94def940045d3fd9ddec0289680ae2f96d9d43f5d774a81b86ae7a4761ab275d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 +ciphertext: 6506597d34901eaeb07e2ba2d0a69f64a75006df37ae149cbae6232dccd9d62cdb088a2c55fa3cba76155241aa2827d1f98c5deb271240a165b0cf64d3b7584fb580cb93f4f717fe7b50c30e52fe8f9b1487baf0d745678455096949aaf46402b8bd5f8945251c0ec00458e6c347a123b47350f5b35a7c42f0d1a744637e7f2445134eb74949e95f877b9dd9c58c3ac30ffd248e72a8b568891d1e70e0d12a8ad0f50a8fd455ad503a901d82ffbf69fb75c629a9f6a689de28ba150eec51c66dd0d49dee6ef4e10d0bcc202420eba18a9884fd4261ae8537cc90a6d3d3cdfc39415151609e506f789d7430cdf4ac700a101b40e0b8142dec62a1c9cf29305030588d21a01fb51d6e91b848c198fb37f2489c7139882f032a116ab707d019330953bd8698ff5e54e34821a448a891e74fe2d6971a568d416295906a232dd1dbb5d7fadcbf2f765ac035c2df1298e46683be665cd8f8dcfa6e4b7034b468e0f53e01ec07b0622c1314d15df534fd27db47ce8b18c88ed6f04231db94cf59889483b29967c56a7fb98945cd3ec21ac881675f36593cda7f20433b1c7b2ce7e841b76878ae25883c0e579a6b4f848aacbaa55fe1478ad2a2e6f1893f7154b53f2ea3aa8fd05cfe05fc921852ef372ef28fc6f9a865c055705e4770b2f0e0af58bbf55c7b3c8fad039be3e9d77219cc9f1883a3307641aed538368f96b7f6c34324fd659e2981bb1ea35085c076853b31e8dcfe98099edc6f78f31a90930f12b7a02c655c07712d94470091e568b724dba0e53e8c726eac8018fbfd95ab92e5a8ecf14910bd306b6de6e6b4c95dae6257c0aa9fd8342fd62b96a58322d559146299e9cf70f193ad3dff5950455cfffc2cfbbf21f322ee48305aa55f81c1296fff5fd2cd8a4fd56b40a6cd17d2237880d08359ec9d1950dcdda8997db7ed75c3700d2b896bc84b6a52e0189d1f23df4d0b522c474d5962dde1c7a176fc3a3a2687d732bf7c4597aaf7258f40965d3adaeaf7846e3ec496f39ac1eb7e20f95ac719f22802ecd32e1487b9d8618238cc23ed2e3b9e0d76ee4272de5bafd3190e7d229efb57451270291ca11a82ad0512a93afa24827d8e6d7aeb86d9bb021df121273f424f37d4120872e3aa40974e1ab9cfb180b1d3795e35659cb77a6748e2c68c30f617f5e26b11d5c31ecf56d8365df6f6ca6b6eaff107339620b468e489c2eb03deba9fe98108777ef9397ea0ebdb7dad462df11c52456b0bf2f8f04c7c8d1d1831d99d9596d4e65dfe49446dd91503d909f04cd04251af58ce187027fb587bc9dcacc90145b7b0221a142aff0cf0273d45236f86d4bcf1615685f7cffdf96c29ca4a7ed8ed3dc0958cead9dcb5095fb96fc3afb7e950ed9f2fa342ee8335e32eefd5b932d3859f1408a6334b3266259c86640f8e0dc41f1c7bb05cc7a2f9d480c372a854270f21f13329f7b6e4c711627929c9df3381578acb54a29dffea14280cf4d85829d1289f4793daa4782538518dac82c44e36dc46dfa839ae7673c6388bde9842abe646177f92b4868441be5b82bdcd082a5f2cbfdca0c05ce14ae7689463ba62e773c1bc3d9614907dc86f2ae02fc2823b23000845177a0696a89a7a0b8f2ab01f2ed2518d9b20c73adebbd40708974bf59adfea03e0461ebba4210b31056885a88227e4b9e775339c2500b509e5a4c006115d368e3917cc539e855ab51c286fa71871a2f7c9d42ab8cbcc5a39976483f1fd7524250245318ed8edbaf4e07d8f7c7a5a0e34e0aa7f5d1cc2da7adee0ccbae93b3a723ee56657543f0a3642c01f13f84068856b331198ae9ad6badefe2238c7170cf884dfa96f4ab86a4c99903d285346575f19e8e8319a284a7f67d6f56ce78c5343e2bd1a25a52feb56769e2d1041679696fa45bb8d5da89e5f55844530d06ad5e1a2771eff0359386212d3e0d1109564c6c9176613f9bf2f994e7af4873b4179591b583eb3004d1c8e6082adcc155b3b916032b8a2a1e52907384f16af21b6ff4320c617187000be4b0f511c56116c25508e29fd0e76e6f062bce64c8786a3bb382835a970c2741be8566d1f7ae3489b8a79228f0897a85d60aff154596249143447db552577ebcd611a63e3d92dbb5ac57d87d9a6dc92cda84cd008d266c481b2ebc3affc084857ff44bd3e04d9c47e46ea8580ec2c0eec6f4f1b97bf4b020fcdf05e6cab506b9e93 +result: pass +shared_secret: fdf3ed80a2b98a72be0cc079b8e1af0ee6491fee10520a1fa694fd692d70787e + +# Official test vector 34, seed: "5da2c51b4acf488c8bded5e985cc4702e4a7bcb248b5ac18aaba529f7f9cbf30efa776e99f76d5c1686e94f50fb57dae" +private_key: b212c7b33a82755496caa9b591e69054a2808962aa4b703ff72b8f7ee2206f4a7cb77262dd34c791e095cc059b1e00a474e5b60a3a8b2b77b0b6a34968f02a67133b5f93c96e94657c8995aeb2c6706a1361e7370a8072ad3713f56c6aa32c19e34278fd2c397e84905813b10fac77595a624476c9be5a06dea927614c8964c9300f6cc7d0e974e334540b60c48868c8fd99829a0ca9743522cc88b6bbfa77b9432b9c373c07573c5477a339697ebd8c4c2e087fde72bf826b001cc7b3d3f7b05484193fa38982f3ce0488182f59cef992b82c6039218829e4e4b1c554a9aaaa301f4733c0540fc2c7acd1a13d9fa0bb6da18f1631c5ffca65bd9519fa454ca76c1b8f5c8f41037499561ed02252e4e408aa352af4155a9d940e5fb964a57117d250556cb9ba2c888cd877083b742428ea6b62f0208c862a39dc6f9d6671965610d69a54d10abbc1238931777cefa00461ec086b26ca2dea34e88565a6a89bd1a138178298cacc938135ad58cc98fcd29851409a3e93cf0a270f4d8779b5f7aefc2143e0e082e8e8b357b84af630364538b19b55954edcb3f250a2a53cba04682065846c0323556f154b97b7973d267c1678a02d1b2f168977a142bcd492509b46a6bda72255510ec952a50aa11907b42b62694f978539fce0cc35079a4bd164fac25c46737c22540803d4a04f54824ac381eaa5ad5ca51568a8c256762a1021a8c46142e0a99f16db9cff371317c602bb08b275269b312411ae849c2c29285cc98d1244a346497ff59c9143a3cc9481ab5ac82ccc86c2d38512bf901b97d83b518aa0812aa2c6e3c2f8da9e8cd8154f299fc8bb52e9ba96a4aa264f8b828fe783ca4190ac42a56a97c0e6d88ed658b6993399e47127040a44aa539480131b485318ffe6a598570139c06ad4054b70b6991fa4b82e59018b7a206f5595e0a2456fc122ea8828fc3b75744650b2ac1a248133bae700585784a1949caf7c58bca497b0d03569127c6fc88b407268cfbaae78e779acf25e9c9767bc691eb0969f69988d3af98ffda60b308a789b8c985235c9d694c6f0e1425cc1782a921b11444e54e7a94819021cc1899439a753a677913970f470854966357569924cc5ad3e2210b6654193a4b2f145782c9397c2c6bf8fc14535149289b904a1f628a45b2cb0e66bd955c3c153baeed32a71673067f7262fc0bd6385c6cc00793528b9cf021b339c179a157087864f70d24cab938be046cf3e409e01faa10e4601ae47b677b670b11ba1edcacb5b292908588554a8b9f204af840a2d2581ae916652db5a71e36822a37b6ffdd3664b9ac253acba6187211866b25a46b62853878ba777a5156948e52e0040bc63f120644a8ae466591986acf5c1c41b77b562a2504c0509b411a879997491c9c25ca38aa3d62250ca5267854e1ee9554e064b4a6181958c50b11708a348929579ccc09953191011fefc0c6a2242adc09ecdd29d1de974a2d3497d904baf5494d4f96ef5fa8e86e45fe4f0c79bf3861be98b7177093e9312c0f77b88f23fa62ba2c6f93255131f23e9607f3bb54c8888eccb2e01cc22bff2384bab57fc2c62a8d47f73051af951c7efd63c0f0a87d29460402814e85602997a765a3597d5a9099b99a37d2817e827b76eb4a2da2622f516364c525c69586c8e5729e3309925fbb3f9e86717503d04682fc5d83888b96e00bab9348c426ce55977a73c40ea2315f122e724a17252317af5187c290a87e6675e78589170454df4b800d2546f9a33a288256669c09ec63e49eb755cec96a542b49ed0365d6130ef2051b9a0c42c675302453ee7ea854c1184b43609a0b25f30164269479e6f2bc7a76aa758db9709204739cb3378dac80f54c665eab7dcc0be9e8186349b9f2e2bcdd9e2af7ef03ce65c62e2d798fe588242f990caa7650b5ba55897615a85ad2f96906651becadc7b53b38dd74962d7e6cc79d68f7b273452aab4f692018bc60dc6161e36e8b523b3b349f6666f4583855998d1f41f9333194b567b9b3332d8e93fe30b8e19813bfa0abaed64106d147495a6abbb4909e7aa06970b2b20914c51a5c6f1d9894d911038600bf22268b58ac4d8b8bd07f24deacb1737779cd5b328dfc251577846131392d8533e70d074fd50841698bfb584b620a100b09ab9ad6c60822a87a132c0b9e3c13bb45e2eb5bb47535099e37019b3c7ac3b81c6225dcc65476fc12e7a81cc80c9a508e507f201632be9c1bf27317fd97275cc3f481bc7c5c25a4b1462767a42cba43b152c276ffc8db55a96d418246e0bb7d5a15f0d883597e9579d675e816b8333097787c613cac29427b11739e650cea2ca8b198c0158caee9971894b67332baf761caf88c16bd11c9f1dcace7b83a6bec71f0ed9bc28f706c38b057231b7c330a4b99898037720cc88245f8982daea502ad30e315c2ca477a3f045084356cb81184ed90734e0cbc0d1553adaf5a94c2a6d8a51566997c735bc45fc408241357da2c38c8a0520fb5a33e1d5c06cc80c4e91314d08599763232517b501097e4bb09bf814a0cdba619c701d249c933d143bbd92c163724b523bc05568a410952380177ff6084c6416bc22c637b7e1ad586324103677101a74835c4255b89ea1935ec8b8382611bd4dd91931c436f9a909af4747dce811a2ecb63f046b411a201d1b4f12442e73d7703e22896a904736308453b946f248a6bd11800797886af555b0787d84daad7883c0e583a7b6530c7d0a8559906f0e423e9e6cb600b9917768777b7489dc173fc67551ad92a26b054ddf13c4f83b5805b9b7b9829513611e171b9ea358abf9054ddf02629a397489dc213705a9b86735577493b86c326e857eb816663dc1417cdac788900c8030803751bae22292af87cf8fda4f2991418948c0b4f54c19163dc4b195b76cc5def67b5288bad948cf214cc6a11c6e1ab1a5b9b1501baa75cec23530c091cadb8c9a02415e816ebe708422dbc2db224b74ba1b83327c8b25bda3cb7127f5c5b963cf3c9abfa15c952bdba2acc01c9d377a89eab6a96a65cfba3d722b6618262ea78770d5fbc556789ce4d13bfe02065f033362124b84560f462c64443b88f3135f585a3b29e450c1dcbaa7b9181133c915522a90f56e595ba11ec3327e6a83c7f1ba59951c4684995ea64edbb3451271a878e42be7d763b27cc430ab6b068173b973141e0a72cdb185b263071d20a8f5a37dd08ab6ea7a2639e0cac1790d5573053569addc1731a339488268873d89a1490b78ee404c2e8328004d44cb4521a68737f195634ab659b919a94e268131ca290e59756311b6273b5dfc2c3adb21534609cb2fc553906a14d8c079f487091587943df49a39d1b465952efae34d33fb9ade56cb6ca9cfa8221458d9940d4bb5f044297c4160a2284032458bf909c31e47a27c7aabdc9815f1ecccadc6288fdaa6c0316f2cdac38ce89fb31cb81b673f26e5709e08c474cc41f213b0fdbc5563851bbec682d9051a5d58148a72956721bb96224214d03e8b89021b98b9a0a87dbf15b491125bc07c6ab6353560d61814ea3cb2e72344104b06413f963091802413521441da171e6b6b039391842141c87c991a4157b428e35ce499a805e2c0954457582b6a8f52c4e102bb33cb01d1ba883ed4cb126c2137a75aadca26852223741c07b027a1883220ca9a65585a5e0c0847b9d0013f821bdad0902504785e927016328c99ca1f3d2bad906b3cef04a3598b2992b2c587100533bcccd15ba1aef877c3a565cb352b7b856880108fb828b42d3612473970044c6c4a057f18ec13deb2c398393c19383603c183b02a461bc9b8ac0969e04179e53c5a8f54a556f54218024041137448d08401fba8e4bcc09cf3b91cc28ed9bb700cc74523c251ad3a7c21f43398f85c7941387612c0c76a43db2a0a368101e88480aa1a5f1500b2a17b5704299d5639b477802fef34bcfd548274d26c476c50fff8851f29ba5ad66caf066ddfec2140dc97b83077a9e21bb4f87aa85a16a7107e3597a1bf4a5bdf008c14bba230cc95e6071bf0e6a25607566c9008d715223c483dfd6737e25a2dea490eb5606c6e32b8063128bcb6181166a93da7626c4273157c47b5a2adb1d88441e76ec9fb6efbda9fd084b496d5635794aa23a43a8c4650e05bcc2e415d775971922b1a446411f952b7e5540091a430882067c0f008211a705e4842789ccf653bb919e742b65339aaf4653e474c10583d9329cadc47a6ef20589572a2e6e4ad67d03abdf7ce1dc9015ba94ed9c69220d63b423cb5daf465d5e3a9d190a6c9d84fb28141f28990959250d48162c68b813460b04a78126e4b2c4514d83cda2735e3d3f1889578b626b002cd859ea9ba6fc856a8030f6010c780ee3fad17b073dded30b6531f854523002db21673437ae275e8a4d702ef311619248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f +ciphertext: 83fbe3b2e33a13730c0bd4e1dce1ef7c4adefc7d62d5bf91a540fef7010299009c7c2b603da43440fa34903d6b920aaecc99a68789b13ce11d43cc05b3b286589c2528480fa0db9bbccdc4a29a63a6482efc4c82612b3fc4152648a0c4a16f1d74fd2458240de7a72a878773c962fbbde1f83801c0a8044282185d20ade7882a67fb445440bc1072968af622305106ec5fd6884542474f7e28ad36101bdf31d3f5600ff4f865e68cf612d63868ca95083971c6aa06a93b5fddfb66a682874a28e5ce77d09953482ca7c917daff026ab259ae6a9580ed39cf94d345bced2ac41ee4bbf5c33648c4849e2a44acc344967a5f13367fa5fe3d014698040983ec41d09763f087496499086e8fd882eff48d7ff3655a9fcb87028795df440cb4dae831e45ffc80c2baed790819fab9ae70beb4f3b1a8abd7fc86304a95614e2fd59769ecfec62511d5ef0276bd4c7f75fdc8af140638db9e948fabd756ca0fd5f21959d6ba9f5c13a6981f83cb9808c660b3b67b76a6fbb5660a8997d362968134a92b0c14d255c81db897d7ceb9af1af1eacb8f42522fea9edb7587e46f50ba817350ff9cbf3789728d3ceb119642285a7a3d025488a3aaeca3a2960c7444f9c686530f1dbec6eb92dd7731e60c40c58c137e7bfaf027aed2a1bd28fcbfdf450a5448deda62d5cb5bc6a0cddf2453d34c7011e4924606727aadd0e29512f62fcd5f7f26a4be5681e2e598d281e0102ac16a5e87e60e9cf97980e8d0dbf8061c59132cf166872af741c08af8db9236cf3c0b6ddf926db9d620ec8f507e6b52bdd3a26b2bd39d1b06435b5696d388d8c7e287508c3aad29f8c49a580004090fbe1ee07a5821e4bba206a91472507a7a58aca5c54652d4950469bc060e498d38f0a5e27e7b1e47c5f1c4e9c5000b16899ae3fc31e0d0561f54fc3846fb9a618eacd102e39ddfed953bb5d7180dac7148a21c0832a2f9a9deac049fdf9a46fb5fb78cfadf42244ca05280302b70ff2c7c140d6b2ea6f0bb296f8231fad365b6561b2c0f7a6b8ba9e977b153f0f33bffa14a6f01c28a733d6a2829d407908797efe3cb345722271022311f1d2df6b8f0706f9ba5c423248e19a76fa65e9ac7df98a5286f172319e874324c92da7270cd97af76d43e277c59c92346cbc3f455b463101295de98109d344ca04049b4a3fed33587cffd19fe562fb146fa50483f471dc594b75e75d179e0d22cc294148ed3bbd1411496a2f7ae00fa964be786a97619ac789587fd34e6793a1ce0ab1b69b27e42fec77ebc88e5b081d5cb031cef71826a54c23ced97df258618f038d5c9aafeb0500a0f00fc3bd375486fdb1567b5595184040d951a925602a7cbca4ee8e39120f3358d8f6678887eb8aae4156536f23eb2c8e558be3b91ec30304066e84f0a7f77b659086f33a60b757c48e2766b4600a520a85823f80059ac237026852430901403a2ca29e3d464b59c65a910d54aac7484cb1ee04575562d19ccdc89e988a412e1fba496a7ae800b2e7c35cfa106e8c33a11841079cd824c17dc4c0cf0be4ec83d386c66dfd5660e00fd24cbb89e85df49b5694e8e985b2a3575adfb142baf10ccb255a3718d74c6e3f40afc0252e6c610509dcab44cf85c91dbe471f67753d65ea8c83eccbc4ebd8a0b31709a297633ea73e9f280eeb9aa4f49ee249ee028b17dc9d5041762bb6930cc94cddd248231df4da3e126e1f50c1df527f61622fa86de97fd8c6c21f8c22146666ce92ab682e0f7cab45b4901bdcdbb9b98830a97aef8bdf98b1573527b436850110a6139c5ade2e31b10ce7f1aa9d966bab3b7ddb49381efe266a94cc74aa38fb901f5161fe18e6476ad4fdc5d4943b82ae655eec0e155dd739fb84d2d64d72cfc2d6640f52206304fa90f05729ccbaed580cebe61a666e114a383b9f212dc83fe1e54294b1281518ce489eeff4b22cb450489bd8c9eff1d79f5fb3032463e61523a331fd92914dd83e50ca25417205b382b42421b4eee89ec3b1360ed68df782dfe84710fdbffa1bc6802ff8809205f144cca551554945695d447f5ca4ef8808fcf06cfec427babcd552ea0551823d12879f9ae5e322f1d91b8410371188dcbdd077cfba41b219a125accf3598c7ec40f866cf9c30ae13f704b800c19145ad5a2453261f02ef3afc8f94d85687a43c5712fe8ea3ebf7d5f377698a556435c90ef6213abbaf55f +result: pass +shared_secret: fa205e16b79ab208250601b4ec37f6a13f6851b94d93a0899a395d623f543836 + +# Official test vector 35, seed: "4d2239e84b052109a78dbab6d80c51a86d38248105970476b74a0b78b9cfab6283e30d5a406fae1c7f54f8bae1110ee4" +private_key: ab6656e1c10c6071c28b24c6461336d91c7b5ff6cb9c97ab265215951983f6530ab7da57f0e4967321866ab70204396caa7b9917c9c6e082b331d65fd1eb300dd481311b723c44408a1b1f9657b19bb73ac593a3b2a86a1de53f2fd150abe7620fa9b061340ac23ab1ccf45914170ac5553873873fd0175b79d500c2e92ad5fc71ab348522c5c82b81c89303abdf684eb9f638a2c502a088795caa954f9255ec8389d0097d768133a7340857534cce37b7372388507c8dd9908d01a62077dcb583a5328238a097a572b800ac1e3a4b02080edf616072229b74f4078d99018eb6191e09c5d498a32cd04e22398604479c85c61436606dc6cc4256611fb8d0c2a4f83fa160c1e7810e558526140c42c2c111141a3a24ea7400e44e3a472d1e913e341b50d88364ae301f4917ad1bc94ce43027a2435c6ea9b979cb30d86a856bc69928348b52b36915684cb5b02c23b00b8fd68831d593338b07ab0316bc3656e9b58b4ff4969fd461ad72ab05754399e39e2776a08ddbc25e4a8db78a279575bffaaba7b9143c337888e8f524c163c059f860187b2cf674b6fcb94b480a859a2b7af7066be0111c94510a919739757470b1a25fd9eb3143cc66c7a2a0c4f9ae57ab26d9481aae956240785043c43bb130c25bc10bc9956a930c009b7a08839cb483c73e671c29f2609667b49e52c79d494596a668484b5659c90965e8222db617ce6e18c94cb80aad565206c930cab57e8040cf6d2c1bd4219bde58538bd71eeeb1ce8ac9bab801aefd84406d7233a0a21a68d48fcbb10892f71a7b98110cb780db9b07b6e53339e3a0ae3921a0f85c4dc282c4874b7f5a56ae059ee327bbbf68ab3ca84e1e72b5955cc3caa12b86e949025a7bad520acc7037e97a51bde797636c5ebaecb671f68518756207327f8acb9594971e7ea07030748a87d674604b2c53b6cdd6f16a0e4669ba37a20477b25ea47ce56aa81f100bc3d4392e224af7984d59f0570e9b020a698409e8b119425756a678cf6c98cf814be4e02be4d1bfa9daa20b91a934da2b18a9cd294808f838bd21a93189859fd6b645f805b8c2caa10904697189ca2a90bb8c9431c14372fbe552009067d6097b11246c4d8469d01c470509079183082e6c10784a5110b93f450a8860134514110079393f3bc45a2442b59de6b37896be3a54553fcbb72cb10755649341699be44488bce835caebaf9f8a017437615d6409b576b90f8021db6babe5c10c0fb159ab9060a0744837631046d04930eb853a1970bc34734bcb327721b39528c0ded4226207033aa18a3171b50f698035282000696c9bb14a6617ae7453b608893bab7b385e87ccfb83929cb968746c5196ac7c46423f4b10ad3ddccf8f9616def05642e22e15e15b5827b850249434d9088896cdc45b39582c3e2d7340650365c929546298beb4fa024da8b3886a8ed6699bd15bc645dca53dc792458470395bb64cea5bd9916a11f5920487cb60776f3fa1b7e6d16007a5322e92410377c874f98bdf32066a136d8221b95474a240247bea21cf0a572cdd721ad9c98f6a248c33a20ccd3a6965133e6e47055b5893d8db26c6b77754f441bfe7439b8a5269280769247adf0665d161c88e756de537bf5601b248e9632886c84b572aa542b53f25001586c60eab6e1cbba8b62582efe41ca212874f402635815611f09ab9ca4ce29b6fc665478192452d667228f17d1500d0a18574527a3ea92bb208e037722684b2f14db7d7cfd11616d9a528e0d54ce197b16282bb2a2a778b81999bd38fa2d86b071b7d47db2c7b3b3af53b4a8bf7051b38468e63b2728003e8489d33caabf3ba196468abf982452f7a261993bcd3941fdc59a60ee24d19f060d7e493c29ca5a7510918b918eeebab86dba7eec12f233c0b0adaa65cc1ada2d64976c0399dc8092d5c3ef0774101a01f6643ce8ba0280356cbefb2c2856cb6021768564342287a9952b1c2da5928520cbdf6d8a970c4aa776c60d7781107ac9da66672dc0490cde4b38dbc08422624e50b9b3b775c8806adcec9a5a2d94f56d488a8ab8f90b6930cdb8fac4ac5b17b66c6b1167c981a55cba0c8079d1668ae51f32a62d4513165b275097597e422fb3ccb4bfcbeba52c0b028a01c94c4a192b9f1dc4f584328cbacb263b5c71c145bb9c82a0db31fb3c6458ef4c21b5663ef7795f4c36ae77a85ed8304a4066c48741323ebc5e5f50d50a704de206c4f6a5719b27b8fec3d95e77f545a7f78c57a9432a329741159808d255232d4288032d658bc483d4afc3d6ba94f8bf44b347a8fd4bb7e2e4000db9909c3720920a410a46905d3a34083c3484bd2448f232ed825658a8b25d99c995be0866a18c01274607ad6bc0154a4fdf70f42768a5ca86df321327b89094383648a236d8f74bd3e3854b110ad8d1403e428a73d9a13cf29a6240c30cc53532d60152ff560d1e3c3205ac557fc76bba0af547c69e9819d1ca412088a8665863f64cc98f3853e2ce115c4c3080e002542714efb10b8f51a59ab954885b313af6000fb8c0b23bc59ae73948e8b30213c84230098469200c8d3aa1f68160963b4dec95c20c8290783457c06b7ed61ab17077709591416a422e52a2afa2c61ec4932df188a4a0c056dc854acba8acd5298a6cb2de04c7c3bc7bc724157fa2b9d01c9bcb0624d79e52988a4b783e8a6d7c45115c548e0eb474368993d971e59e96d5c2a9341b40f461752dd73cbff7543031caf370130311c458684a80209565b754437926bb20840aac329392cbc4f7022eeb03580696b239b2993c9927f649aa838c4e88726f9633b8630977e85350bb25c130161b6c0298c03bcb387c38b4853ce8258166175623107f3d4c5a4b266c9978154e710f11337f05986e921b20d1c02d0667b42d1a4f09231d7d8993263a2cef7b3e5f153aa691a12b7ad28513eba123945f0651b83cd36099047b997ddc5128325213875ab7ac39b6e969693c4746f19a159b19b7911abf45a9215f5c9ebf60c46f254c27285e9491486773ca0f8848e23bc16d83155c302d0e42504762226701bb3a446316b9199860b824c1bb5bb2b4f535e74c493a80b3faa5b635d65364fc241a2e1366f3a2ae40ad07e6621ef64428ffb6c86a1883aa20d04b610ffea3b48e88e6073005e281e91d65cea99079e1846ce89c2fffc8cb38932c00783c9812d26f91937e6966dd2642bc1b494775f5acb46ddb3bfe70c62e2018cda8b16ff762ec3944909d034c27ccafd2803e4f392fedba006d672021a8eec76cd2c5b1f2bb65737a5369365c8ff6231b7866973201853d7538b27825592629c7812dda74b795ccc56fa684e8244a4b204c0b2bce93100a57c02dd13c5af5718084042e9d809eee01ef78166d5579fb0702deb07b6708c7ae2757a004d2ce31921030059c36a014df0178d59c7a7a7b1c3e04bfdca8ad4697bc2a36b5a213900249ce02a678009a4c9f8589bc24810e611a942ad468a2ae2d8af0b3b3a7d741fdaeba89f3b6c1fd302dae37f2d54ba53fb78e040991f4c468bc2b6f527cb985a9ae19797cf845c53803d13b267c8f31e4382791f0a7ed27a96ac609b40c8bedfb1a11d8c244cc85f4b692607d72f3cd05b070b5e8f4b7e0ba56657434296caaed3928f32d526cf0281a57960e5c55f6deb1636494e3d618d1e4431fce125adf544b91904cef045f1d088e159a6cff792ff5182386a87277953b4c4ba3714c20bc50e04c2b2b628b147d07291e24e18a6906b5300393180ed011b2c458d7e2a1f4604816a94b83c93c5160b740e3640707a4fe8f265ba351f4ff2c7fb75baf8980f136b2ba2e81cac3b27c2653c89b65ce236a3c0c28759b12275c4cddf5c14c7b69e951bb30459b150983fbc330db7dc3220420dd5e928ef5905a78a0b0e214bf1252765646f6c657aaec11fa775183c1ca3bb7261a2205e46d064239103203532556ca7fbf750d1f88ed6862ed02489bb30c976b4abfc0123583837a8db3f6a38bc5e9a44a990a471cb3e380b4508ac4162a4073f815507d33fffec823f9ccf17aa150a5bc7562a4e3f85995444c787d16901332989c15fdce4b43a215da66000525ab32f5b1d728846fea3ad2c092e271208b6f833e51c701da8854b867e0bd0234a3c9d98117c58ac1ac8b05f59f027b4a78e94771ee263792cb891e9d5abf0706f70f149482948eb6248bd811210765f93b4cd49daa19a17843e510409d6638dda571f680f02b17182e1c7eaa542e990275bd080bca0c793d3113d524598fc9dbc453a0560c556e7bfa3856570b570a1b43f82657458615be5080c89c0bc7e99a67a91bb9b8cb821e426b843f7542c5ce12ca13b5b7f6c716e63411681fef0ff85e8cd3fcde5abdbb9e471c37cff80f992f3359ded64b566956adfa3266cb05f171eb644711d3a2cb4b41646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 +ciphertext: ee3f98af1d174b594dc0ce0558e943a69ebdec0a31ef0b0c7fa26ba7d9c80a64208e66389bc232fb7847ce8f4c89e1f3b3d2a201ef4a055c07a82f6564d3f1baf47564d11d9274b4c69b30003d98aede74baf75c2d7d76f9d4a7af78031117732e4434dbde3ab4c302054dd8158e449de6759125718081658ce91de018cfe1c37577ea0e396244ed732c62d5471f7732c8826442a374c06ffb7bc6c7bdeaa70981e2caff21fbb2330d1013cbd5a37cc1651c3624d2b130475cdca8ceb4098045f63630c338c40f8bc07dfc5f97a363686b13b7a759163215a060f1f971968644ce362f99c4201b483d0bdbd7029ec1365efd2a621fa738438bb797aa2a030158a7fdbffb2a5f1b27cd4a356c7e1d7dcfbf1e8a8ff0ef52fb7f7088452d1d15f42545bcc78c1cd90ab4e4a75b10588d1303877e78d6937c009eb071493b27c27564899464288d4b65d2c3aeced1c7ce69e82935443e1f2560789e240ef213d4521fae62506ac96d3176093d79867dca89e5491cbe53fd78dc66e064b1ed8167fa6864de9f1c29cb81185bf00f6354a38bfae33d8f2306acca3131db5aef13bd0c3c55f02d1c069a21a663c0f754b9c4016239bfe691e50da24cccf54fb9588a280c89be25a48e77f9e4dfeecddb00a06911a33e9efd58ccfd170d19009ef16c3a54a986e55c39bce875a61786990a1d057bd9fe07d57e143969bb5553971d9025ce7bcc0e96d01a496491b0bb8fbf886d8d5527a765808f2a78590ad5c84b965b5535b82506857220fedb7a1bd86ee6622a31de73139fd143ea6b9845c22c215a890936af8765a58dcc24ae6ea2240d5a5667b268490dea3fb3252ba81e71953e4c25ada1da0191f26082d80e66e6d1469c01bbebbc096e2700d98c7b605593b0ad895962e183c7a0cf0ab101f65f2329eb160670dd86b215f27025ef96a72aa2666ad9873474844518adf83d7e6714951da83ad15c89882df4f27ddfbb8e270445e403213c7357c985a5ebeb1db03d1b34c971ae11c986089d1c7d4086954e7bb17bc1cf6d6c4b4df9190265e2bf8f0580fa9b5540ca0dbc635d1a6492cada9ce0ed26b029817e366a494bae2e7e5d618beb3e26f0b9d8985eb23bf20bf097a600d9a06103e20ecab5d5c933ad4e2c77d5e72775f9ca84c0e71d3400e0579882284be79bb3df2f9bee359b2172943b9f4c78e85843834fffc59ee297ef0fad3e03212123bb957f1e0475641f1b4e6771091871e05ff6f2d8313882453c0fc6ba7a2271cc2985835063c0fdcbd2947478b7c9c728f77154b731a1cdbf0d928c326caae6d3737cd478b3af92383b5610ae3109429487fe009411b3fa6eada1ccb2916b37f633e1bbe6af135e95b0f0e54f079fd86ad11129fc10103a0de8a9105480f0369d763161a366f78ce4e679f1a9ded37aa63353bc9f47a5f9b4c63f9fabb2a19e5003b703ecc93233637568d211eb291b3d03b5d0846a78b0f4c9aecf442f0976dd8abcb18a72b81fda3c8de270855587225539d117e2f2a7a135d6b879a3240673c2622fbb1db86fa0e5db9f19ded3215ce5c9ef0b8851109e0994dcd3521781f25891c6ac10b3a38b56eced9498662eb4ab65b8f3d3ce21837a7285a5a2d03c1f8806665b45357564cfa3035f2b8bd342a21ecf6b7897c8b3fd08afa925360c11825ff3e96133fd6cecf35151a95ec05b82e342f4657c297716131e65c3b346e6647de6c92085e6d2204496eea67c97f866fc1ca0e235ea457169de6e4d7a308e4d348ac34701bd8f990f8d15f3d7b5dd9cf3f50d41b9b2a10bfeac96b9438c75adcffd46a60b23f5037b8b2d0984be210bc58180669c7a12b2269538740e776f9716154a568df5dc7e6e3b329f77f69a7637cc78e128b991a4e1eff3d3d1409ce6b110b250cb8d3e092d48b9e33f3d2f258fabce5bd0957c35b47fbfc6ab6608253248c2cf3210b6261146bdb6818cec194f42ef1485ea6b467227a63d461eb7b617105ceb28126f99ae3eeed721ae0f1cfcd05206c207f895dc4183282478acdd1daad21dc0af197dd8763d943199042c4bbfdb84ca4781a3056ffb3031d3ee3d639683b01445a9d82e3a18a7c030da16375d7b69dcc5b533435acf8a3b08c56bfe07cad6795b5a1f794f73f94489579d70436a323ed5f10a9decd33f0d5baedbdb89d2d50b3aaddd515b9ab879e7e39e3e06efb9f9221de583c36b +result: pass +shared_secret: 11e27d94d4dd5a8e8088e281608ed424a9384bfe96ffee3b6305d17cddf698fa + +# Official test vector 36, seed: "ee762f5c9021c36446706a88ef16312f4a12c725cd7afff1484337c91eda8e89f7007f3705747d29907b3fb7500e5074" +private_key: 6d02b73b69cadb317ae9c9b09a74634c1762b30c55e793c0fdd50574eb6156f152e7dabf92b1a4cf7a9afe32cb5f95909f1c045bf9c7c76c137c6c4a4c170f82724c32921a2ffb7250ea6fea48060cf88b69a0506e2bac21912e4ca5806d15983428c4d7f32847b6a4bfb7218a4cc2b09a343de3ae2fe392ad6a555c035ecd0a16c66339280219bb40ba2ff5432524cdb0ca32a6d1b8a9ea96893c3864494e3690647d8318a3520682cbc19632cfe2e28733da34a9811f5e659cfe99b7894a88aa01c3979285813a149e196ff51206ba654215985c47f3bd24848e0c959a93eb20c3176c68188139b72929b83533ea0a70e44333d923512750cd9520f98bcae6c16643c080fc836367aa4a39c88f66c0ce09428135673b0f09529d0bb1e9e4b14679cf41f433bcf533e7e4cb1db4b5e800218f564fce359056706f9f091f6b1a0420269948512748871ea2b7c7fac91411c70a23418a336297ce670ebba02520c3c1d13807bad55100ab3d0a8b4e87fb5a5d21925a6892e93c3c10a66fc4974b282ccb9cb134aa0aafa86a527f96b2df98ba19da2e536614d243a19dd1a095fa37e9008607c882b48a79b3403f76342cd4345e6f6c95327965c2f860c4367135124373fb54a4aa7284429455f1637f56b4443ab048e0c9b82289f7d2340c2547a3bc8e66343248b5114d27cbb0e19a6a6a82c84bbcb340113ed65460052c088c555c27847078319149048c5a9103dca6770aac9d5a75f84930d6f7cd5813590a22040ffa2b9b631ec897409259037fea8547dbc92288414dd002a4c377e501800aa49b28e68a528a3312060d635ca584542a8452cca7c0cc3ebc4e3f46a5a5cb1fa49718b1c71f95224f9cbbcc9376737cf827b25caccb4b49cf4a0b0de096e4d83f319582edc68ba1177bf7ec2e2a41b0686bc6678b8355cccb7b9a8519aa68b39067dd178db2fa8ab33305efb7592a29a8f49b9264251c1ef83d75518134da35ec07ca4beb10e102466da0b74673b9fd7cb93f287ab4e321c9c4034cb26be63567f7083cc86a15b67535b1c235c7aa4ab1eb5097947b5b282e15b888a8b010e8596faaa410f6ca7fd358765ed97e5f8970abd54e36938709f6410b779077cc0b01052b412822ce256f15352fe5314aa2b41be3611ec14020b975077a444007296455818b90f6b85c50a3fc4506cc48c1ad436308154c5075755c6419ed7a267561841cc56b428608ee62047122aaa674bc9af18f15c52bfcc981fed3622f302896d7bf238b9808152b4d8ca1efca092569595deabe45f6b35c8c9b7293a321e96e9574726dfa93c79b162eebb0e7a37cea7127ef1179c728c22d98328b59b86ba4a85d11249ea08a3e594e7df1210846c8f7683f5b856ff4fc8d63b129cb1c8ea72a168c71c56c166cdac216e07097e9fc050f458e0cf6bfc5f55116e161938c8df6643b6d5514ecd860a4372693e12c1fc8b1552800802ccb48d16f4fd89306d30af791aecae205a6235eb9343c6576034c38747a306db6c2302e5569c19a75b2cc62d3895584361284801f368766f27a83cd376952d0374316af68d06b3c242d7188acbf8847f55b80750bab52b2043df10b47dca1986131f2db9c9b12bf4664a3db6bc1859b59b468c0f34c1bc8d8c74243aa3f434f044a408ab988a5820ca9317d35b8344e45273f76259c813ddf991e0e02664a4c8353252c85ca8531b6196bd68767cb8010d92fcfb12acc9c931d169b9cd247aa2c8c5fb6013cf65f0ebc432c38936db3b6ec983f742a1ca6449011bbb70f5bc7755b58d4c011455aac47c6831d6a3368905e6b700c987cc910b23d3e406e81e56f28d0a35aa331f7499c63a10b2eea5dd24b4e7c173d9e694d6c6b7a6262b26c99163c337ff3fc9dc9586548665c1472935aac3a8b653e07802b1f2a291929233e7c8d1932718ca63299ba4919d9936d65a2b78c733ad2c15f13cb4f45252b7004d9d9911bc5293c61983eb24f7b9c1808285d82cacd48801a721b15f43c0f4563c494a9a5491c30dfaa5ed5f89e08cc76dd7324d16b3ffcea5393aaa525e90f7a4bc88ac07010a60e68f7be39b20faa28610db77006a5577acc2d33740b6ed66341a56dcb4ac5a3eaa431765d006caf51766a00e07f84a6bb0222c251764d628b9cb38860c4d8cb35d29c0d6263d9020389240d058974e871ab8e433196680f50c7b88e6a3ec8764b4509c3764bb4db404a8e932413930dadbb5c5d60a01539763428cdffdcca2cd0554633367ad245e069bfdb397b803c68c8543583581bfcc9bb1147a2063262774706dab0a015e7c57e244b12406b0009024fc06181bc058b466ee12c3ecd1a983fe1bb030774db831ef1bb26539245caab4d9954bb01901c6bb66534b95cdcc92a1af075be8a949829558ce625ace38b1296a75058b9a3f90e74e04ff3880106869899e6844a6504b8a0cf99ba86c72cba26564739d0221fa20fb412828180a14bc570503a033eb379790a457f9277a221b75720537205cd19969149ab9d2b87a19250b595186454c99b46ab8f03365200424b4ef8cae2569ab4bc07b98acd2e50b0426032f967354c70b6c1f1a1df32406c296b0e9b8066904fa2184e0dd04ad5c27f9e952774bc82a923ae90888613144bbe376b38112a836b7d6b0606d25abdcec0b471a834fe20adbc78a68cdc5619089ae4f09b32947eaeda996adbcf131621bdb99173063f98f1380a324f84626212f8acca34205299399e62b321030191379b8bf96ccb336498d2a8bf573f44596d0db92792122026b61264693be3a3a7160a9e60fc1fc0897e5f602483d6c81f382e3e237d6709b82056976ce23d66b013ea48cb56d78d12c68dc2cc6fdc7aa1142548e1940e3d889c71e990fbb19d4fa0bf892b5cb873ced68516e544bcc4bac3734215201c617767757dd3ca2b0a5084002f175995abb6a7b88892d07b4ac68b974ca83f13722f028bad4aa9400f0b755fa3352c90673a44be327845d1dc1cada0996d57b62fab1032ccb6eb947646fa25d06495a6577a17d707b11c3e8fe82325d21dc2997d0ada9bf85b45d8e5431ce5ac571c253744108f91aba0b2868c7096c92b2f53fc5a0d996cd8414cf230cae4c58059177607040d871b8b1da28837c7ab177369fd2c05fe300da0d84e97497cf5f22a36b966b5872266202d207740d47c8b1fd118ab390cd5ba70bfd9a0bf8b59d14b165575a079d82bd0fb1cc015340a1c0a0c77c7f822cd2999c6f10b5aab063181775b7f42b2fbc813b2fabbfd76c0a5d4942df97c449cadac303ccf4790685438257a0093461f581c981bc61229c94a130372ad920d2cfa5cbec684f8986a7ecaa94275814cdc2d7fe403c933bc0038b18b28cc3eec9ccac49bd922c446267cd07b786de316012330ae70bc49216fcf6b4c7db2bbab55153e21089d04c3fde934955ba215d047398ac172c2b1a18c0597182e88a327d0f0968796ae0a03772adbb406a210f2e004810513f09712836c45cc11a0d8c8433b813e0e8aa380cb166fa93961a2b6765287aecace40cb4caa064f6b547f0084bcba7856898b221d362c9de766c7d447bc10925330ca87a8379ba944323c638f33b164e13731b0b92a134ee9d454684387790361b31b53c245328bb19185f9774e2764fd429e11e2a4851b222c4a9e504531fd962fc23852bfa3b4632aba9be4595cf5083d64522ac93b41c7409aba1b83ec51cb6a1c0bd0c24e35cbfff95088d7b6ec890cb5559c44553dc44822692a243d032ff75c7c08914d847551151052c6846e2f556201205dc130babd9483dc721d42f42cbabcacff1aa93d05a2ee54bd399186bfd4978a7a76d5d24008fc55ec40a6bdc899ea0a69ca22acdf8bbd14a5cfa2a06587728427865a3331c60e77b5782c37e79561cb622195656d8f9c0c8c2c560ac95cb0b986ffa0784ee17554cb2bd0d332645958bb68cde65b13d274ba9a655bcc8072d6681cf556c7931000b94a9436602f0a5a6fbf770a2b323612bc47190c9a88d4588d97c099ca04b3b7377867a6e68869fda2258083cdcaa41aaa798ea11ba7f6cc4838f2aaf9c5795f8137adbc4c17b491a59255e61ba078a9b4179cbc89cc3c9946c65efb9ca5ac5765f3570f673ac80c1d26b5af8f031266c65b4ef41f7923af49dc6eb3d0a0eac745aca402ed4b9b2de754bc3b7a6b54c2159baee1f560dc502e4ee6b3a3d6b4c1ac1e06dca9edb6775f5696cf91acbd9293be7a82244234de9869afb1b2696300331aae6c9332840145eb16b016f8714fc00020d429f75231f73b265272a936e404f0d57b79c6ca8c25cb7c8bb89284c4e7b0ba9eb33c0406a8c39eb0d5429fcae286a9c56be5839c10ad33e8a58374dff41feb6af202d9ad3f2c7ca61993e238140ce8550a5f0c39147130a5313c8c02d68de779238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 +ciphertext: e08924a91b398adb3daac6ee525b89bc18256d7c0ae328ee197c02c77442f97841b0ec33c6fb217d3bea65984c0225ab052b8fcfa3955809b56cc7565e97037664738cd195dfb3ec7e0a2ae1477664913a01d6d15362e847cf99cb88d3f8da414569b8cc5afc61490f2be47d4b54e57271f9ce5c8e592178f070d4feb22d003d0224551bb529628357cc896433a87a5cd7ed2c051bc8b0c4bce2256d04dd6f33df91c3af9820d4fc5f99a15669a0049f3dd2843b6ba5022cf0ee81f1e17601c1cb567ceca60d6092c100944c1e67eed0a6c9a7a11d697231594eaae2876077a47632c4714b4955a727ac32f2ecb48e23698b47583245cc7d830c29c408af82653fe37efa53d46f71d22cdbd477ab034386c8241f0bca25ab3a0182b7fd28acd4b1e633f9adedd58a069bf9f20582724f33eed04dbafb95553c145705bbab89796bc21ab9a0780a9cd392be274ad451447be7a195b23126bf18cbe75f12a12eebfc96d9b22fd19d57c342cb4bd3878cd69d21aaf0c093eb7b7a6f149e4d6c214814bf8f1690988b794c06a5b1111c415220cea0acc02b452c6f2678616e52c538dc71b10166067cb0682e6367a861dc6029cec249057484367b5be34f9b5593cc7f92c81cb80e00b1f7535237369b82208f5a8b697a6ef4caed276a16b1b2916cbd7888d18dcd22567e92de1d0acfe7ebc4a3f96014754b84fdd8d3d46203230a71104b3c825d71e4995948414283b636e98d447aef4e9e96d3240bc99607f1a9597408c8556dc37e9cd18bd1be56d6dc73a154576dbeaf710ac9e20afcd5a41db8efc363a7d26ba223a58e08fd1984073fa6f115a616b8a8e388165df7b1ff1bbfae32aacd893d0cf5c0b260f0d0d809ba9092823cd83e58848cb17de31bec1856360ff6a2568cbf27829998e741b9dde5d765e971cec53cd94d1faa6ce89a8a57821be0d7c7dd56f31c1de1f49c76520a324b5c978e075af190b620cf7315bc338a6b60ba6e896496f8afb86f6f67941ce00846a5ac726264b3b3fca4c201a30b867a36731058d67255ec0ef57222d51d5e915a79068e36a62b9b9ab84767ffa472100e21875e1dd288c4382654d1547d11a58be3911832be2a2779c84b8775bf1285eb7a86b98647f0533cc7b9fbc013d3f20b492e06228d4f5b4c859653caac26d2a9cc13ecaf229edb5761d094386ae4a111e56e4e13c992bc994d47aa9c45c0ba40f5afe8531a10a51f74e1b8a6c71ae55f4af1b43939f1d299e396b1e573a25304c5c8d700d95ed1bdc5d35c4e6776be305336b2b26fbc3c78d2a3336607e5fce6f1c6d7a41efbd0b1185ba60092e78e2414edbf5ed1d3785878a5c029ea06b3ab0a5a3cee467eb582064c9b7d29cf826c0cf7e828fd1963c39b2f3e40731f2bd6f2723aa94b16504156a405ad041c1ed04e4c00c5e34be37128f7b57efd9729c544f13e16b1eba33dcceeffb7d8547b0eec6703609b053a897c1cde85871fde1142dff09a55e068b30f694064035fed0889ca095afccbc8434d75456509cdc40e42021a4f196c339e0379b5804c7beb3963d941a3482c96a8f28d9ceffa3513ce752a38290765fdfc551b8b996e7581458659ae35549c9a3593eaf9b5d6705b085ded007fdcc454b35d84bbb583ed1ec2fb74a6aa26119cde1554aa2c6ebc6c74cb1ce3c06b978371c9103d638c37d3d1d1945cbbec11bd5cf736ada2fb8767bca80e88db70af0018aadb8e3e43f3d08ab5f017ebd5c7ea661ec1fab82b8446a8be2034d29fb42d6dfa3cef966c1a3b6107198291aeadb8f29cbd4117df8ef571f3ea2df5fa052e20eaa89c2c757be75aa657678f0ede06157903fc08dfa8280cde37ae23a313e1b501f3ad51f02629189f2d6924c2ed26e3c78c9c90ec6ea36cb0be8cdc0016c10eb728c03e8664901fc9ef25ba20fc8d058070aa17af214bf7175bc1ac736eb22948511c8cbcb4f0d98ef25a73eedb857b43039b4729faa9233b4191fd0700ea3a8b32d4afd55e92b8602a640b75da23902236ca97a92053a98a4ab78bad3bd5cf202b452b31afffa6393c8d28d5812fefa53455aafd8ce3f953701e24820c19f799746ea6aca59e38430edaf1ba46b750d8b2441538f59cf25b437b9c95e3ca3856470609e569d5fa08bda01aae9674e29f96c1c8e22cc5d7710de5eba022766492e265d5f24330ca833dfb3936f7cacba046c761 +result: pass +shared_secret: 86d765b2917cb98458fc5f5d26cc9a28426655a73109ea65f61377532c83c280 + +# Official test vector 37, seed: "d882ba69ac8bbc88715f1c6387531f53273a5dab87e66faa8221a7f628d2bdeee1cbc59c0e08d0add84520a3a70c1389" +private_key: 4f311376e73d8074bebfa35fb9c25879f482ab77c1708a8974d609f4aca60712bf80e6a4948042a333cb8abbb1bc32960c75776194adddf09925b605efe3cea0421a9cfc63acfa774858b9f8468c39e9038434517b103e117abda9531ec9db871b0144de3b3e6a99cc091a696ec218e6e099188872d3b2b2e4188c1935530a364ec7a1a98d9cba4bb68d26ca98eb437d2a3378bce40fcd3b4a8f7982485a1296364363dcbcd813a2d434bf3f68788c035980c0be8f46a6ef54a198d64c0d149731a097cac43d7d022167aa8657ea521197cdb3585b4ef64b1f6708082471820919e8b9392a5c2f56e56148d10f18525491647fb0140e7c66bd26e3631f3bb3f20c947a67194b9c5de9793d55c2b800263e50929889d8afc878b661c7cb2fb366b8f70f8ebbcf75822caed8a6c83a3651557389c51e5431ab15095705300a88ebadcc417a4e955f2858b797b39b64f10f587119e24a01e2a17a638873b485b2c8d867969c39b30c01404905ed14aff50484da83a8bfdb23689900a7954695b6695186b590e5c3dd27ab6a619a2cd13b78c9cfc7c966d4d373485ab99e522a74372c51a4764ec0152a29acb154826479567b1c6aa68bb2fcf471e035c0d7f22478fab87e7c035102a8fbb5cddef910923748bc752d0c82cfdf8b7733f30e6752b037482bfcc8a38097c9a9d8745b0681ad79710a4049be27c13680627516aba8d308287a45f498c9065900cef26280f17b8ea6216f60118eea6243337fb2d7ccc156325c33116b057b92e24d662718235a7e7b69186b17232132b529e44d558039eff0c2aa6b0b0bf8332c382e1b132c3f343a2bfb3f11a116563a7905617e639c6bed21051f5513c4793dd887b9ea26b90dd7076aa4aad5614d53e87d91861caddc1dab846c6933a689eb2d1566814f31951546b820620fb60690a7734153e79e9ba9a054aaa9b908605b10384bba08e2213e683c6d64e9a80d8235f02c39a6bb42def54865164c86c08af24a614f3608b24a617bab86e5196172c81f1a6a001ca4cf72c9bcd6f89b8dcc154dd761a3c02362092db91b3da7dcb723b59c3e029be1f96e6933a5a7a8296da3a043a32e9fb27573a62352a088afa68baef5403f200d8d71743ed79ec3acbf1c4811a0308f425a05714c5637560cb7b36dcc91008d715248fb3e2e52c38b9c67381c3e0bd8127c163e320504ab20588f02a0ab036e8cd121d762af33980c0a7625c6129b83b6c8d7e304a4529ac33c204d79741c1a68ce356c4ca04a4f16406b462db4038f78bca2baab2926250cec30a3ce827e56186da8669fbd7a2199f53cf87cb2656349b6d2ba189079e7d2aff8938a983275551a21e7e179e13cbcea08885af930509c68456a9e778baa0e4649e2c830454c278a06849f088d130c176320b260381259d4458555a2d8715a93957470e538448a7b29958d7119c17f6a38f09a8b441c371114cf1cf390b56365d7c71fe9bbcb496401bc8b07d15c06a49c221828b6b7b56cc601bfd6d75fbf3aab16ec9584b78078324cf9060c5304354bc99e9a69c090c6513e16b6af982f2bfb4e0ddc4cb69ab1fea10575a53358890feb66162d29b4af6023eff84070e25bb84b0b5ef18f4bc554b8d661cb5a97a83b856d6437eb503de82760cedb83a5ac4b05261a02a621937231eee26777d75a3863cdbc24954f74b43260a089823b8c659108bc86dd1bc36e9643b4f62c1489a880099622b27160a2c934f4b3369a9afa7531ec39487ef2b8742b63cc5059a8f9317b06aa8401071d86791b09249510aef7924c25a2458152165ed7c4403c0ccb5a8db007221f930ff9162d66b4a1522b878d8b08624a0ef3b24c1cec21928773c8fb99f4816a7955a2a2816949eb1dc1a794f7b61c1837398521bb07c0063b2b01571054af509dc94a3ef1882b0928aeb4dca18769b593d2b357e56bb3148ef7d4cfef73068d0b48cb37c168168a46701e3b16b6e8d463fd47ca5f7b472878497eb9a60e629897108c30461bf6f09283a006b95ca010aa80c50072892a1d7f406799593112b81d61775d4c15a3ea54c4184b775a88cc3c427d9a36cd1e77948ed33bc0891b24dc7a08822cd2c94246758cc4e49f04a61d0d721e43e57b8c18337293c25e109e64f01e88bb0c08497d49083a9fe260349251ec123ce574a5dd6ca1d14a967e7177aae64d9678571d6b0b0769935a1a2a8dba53db6c5b7067210426c64f53542929b31d565bd25a480d9065d79852b0f05002964772465c3fca5f8307308055603039b1b56726eea02a8cc19c5af41309f145000d2aaed3038c17911677a2631242280c23e9816185c75e5dab43b4b04c8777a35721605aab1adab828f2640ec5b23173f6cf5d37ace602ce5af62108ecaa540ba46594181ac9869517502aa73ddedc4131ab152b53501dd4aabd79556476063da48c4978835f28500f810b77715257080d87247354302399485852314598fc6eb1f93feee6429eac96d37c8422dac30f473b56db0dcd2c64f1c18f91950e7984a88b63979b424c6d4a36220019881b5aaac715e426a6976a300ff171a29778c82a1520f42a2f0b10d26035613a1e0511720087be146ac9f0cba2c1929c0960bc16065748573d61eb195de53ab9ec802d247b210b747c70c45aebcf39229e4b938eff354fb9f65cc6b52ff0163494744848885ee577048b506a95112ed45466252783a4016f30e29b1928acbb448379723d51bc3b59a62df46ca75f64bae27aa2d9456c66e2997b48274f425004e6884e296e17912f7e387db452681cb32e7217566897287fe9c38622325a8c6716e5a767a626d98836cb779983c31d1802b0e0bca04bebbfa9e2cc02429f987a31f73274ce5320e1b0cff8154da331be8ee21cae8c5037a1baa4956b04833d4928a1c32147246002466716ea9c69f4032d33260c338cb13ea09e5e47957700c33bda9b147a3f3f64b46c933b7f4689d2797e4ad24df42c002a323ac0e781b7e8c8e679c949ca730826b3f6c28813ac24ce7ccb21136695c75b3d028fbf6ba94f5a06115c72bcb879d64cca29309502836edab5c7b2a79a1e1204161369c5e8b63dc513d0aac9fd366387f0aa2e736bc09b4dba05414659a6937264ba982b419342e8c063ec64b28663cbf4d12aa5a6ae5aa9056ae71c4f5643cff81ce6d7a8d29a250ac27be274afef453dd176c462791c249a817329142c00ba332851e50a01660a47e35bbf3890c23be173dec1a1d57a4837975c14269707384855e897cb44c4bef532a003409aea41d2fc889f572ab20c0409831ffb0222cc7246438a95fe4a6e32412688b2cc8c1963e38526201aa9d2b0963533b2fa42af59e61d53c4bac2bcc09e44c5f9c4963525a7c015244000749e811873a391f71315d1fa60c806390fb3aa80295e77e80158c665ead61283271a1997757e5c4dc6893ad71a63a1898fcda02165db76e252665153016c90bb9c8423cf8a1d371338feb40a382c2c3f99840ea96f99246044f4a5fa5cbb8d7473110b4a5238255e5c3d43463b055bbe46211d2e05812dc46bcd539c56a15199cabe5019220dccc1a828a5e0c37bf130a6df762e395915654b5bcb5c3eaa7142e1706697b9914a287513e407ed376354697144b33260eb966316c05dca8655a0436bf47967779d43cca5edccb932c023351542857268a57a74c4eb08b7809c289c5543cc3730594b3ea33de6e23a5600ae6a68cde3614cb1a80bd7c2379c1834c349c55fa73859c5a3ad45886286973f1363a5a536a0b08faf26a939179f873cac62281260868569372dcc744185a55feccb261fb0af1ee7a50dba2c49636e09687f4618667db136bb291f4b4c129fc7635182720521acf1d67c719a283c412bc9165d9f883db9049b98381a4412b6599316cb39986a9c3f8c069aedb9b5e13b82f3abc0c1cb70dbf0b5d1d66ea003676197c1be2c15bc6533a41804ce0c123fa55a87fa344d850af4f5b12fc0ae3610593e1bcaa1868571b2a618db9f1900c459376798341e4263c70cb94a9db42a04067f7a5310c606bd7ff661ef3508e6b6b6373c7ba0c872b8019676263bf912673c59a4c51372a2da860399222654518063c3e1f07cc6c93e91ac6b53f3c04516b76da65124325c59d4360091923d1883977a52b328c0d508d0f039696db843bc12c506b521ae34c9b9d145047293a6eb99686770dd587c92bc65aa3a4083b40e8fe2cf891c5152281744612b2598664e4368775572e4a03a9ff53e307caf081ca897dcb43061a404c689d934653769ad59d68475a8b0e7277bb280ac77ea7b1a1b6111c1574c6358dd6a472c49c264965f8cd9fab7d1fd2c5f4c3a4ffcd66e5b05a4879536aee3074b69c3d4e6b1eba48a8a50609e70baaf4c552f680f0b02afab2da76d8833a2cbc3b6f782b36a1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c +ciphertext: df97e2ea928ddbc0fee9eae81ad53728a6a3a953ecb6e3071ca382f9357facebc3cfef5cea739968c1b98081b008096cd4a4a6ca597ae85b46340abbb9d700add2b26b14f4f9cf68780815c4f38adba9b9929a0efa305be578c55c5a028cd3ba6ddf750546e49bd4748064afa4997f09254f33c68bed867ee934f8b0a5974894726446468eaeaa4129e05eba9d5d1cbc878be4d2d4a881a3a8d71c158db0005c30855059cdc29185c8512509dd9567a8605feb883994479426b637dd3c068d47c98e98f18b6f69273d2b168bdcafbfe90579af203ba597cc53ecf12eeed9b6ec7b177d665bdf90ebfd4a9fe18863a23348324e9b891b60d4c720e4f67241dc6ce5ef766edb36b3599701b2343f9406fe97e8b7b77a030a5eea4219f07775d41a4e613fa41d99fabede9779b9b957f8857b795538ca11fbdb670fe2d96131b0d7944f75944c99fa7d1ab90ac25cde6149dcb3b9e128fe2c46e79a26479008a57f6a1155291950d0963d5f702ec4c58ca46720987ede70518dac5f2b8921cd0f367f9e0950cb44d9016ba078e4e22609a849a2a34bcd8f4795a3c3acf8e02f25d187b554dc2edd9f5f68788a007e05abc44f5d3bf9126ed5060e08eab422da200783549c24103f412cb9da9beb8e09a96f83b73328347b6e2dbd951194197cfea6ec0bb2ef3469d50c991e0a348f34cfd1af87fa1548bb501bb34aaa69e81ae0dc314aa984144d87cfb9c973bd16ea7760c9816d1ac8cc745515aea51eb7f538b4c7abff9fb184b34d01fc94d82e1b3f2baf0e8c0a491b411fd570e1d02a98fdf9f0098da68c5d026b07e97672d4abeda9ef0ce886f83584bf212e4f46219e95fd33e6cb90521ff7026e57108e0eb73bcdfb1160875a99f95b3d955f444321fbeb431c8864f7d387ea52ee3c04088b731b53ad9529eedde950ac39ed114a92291c8cc7db0dbf1815d5066faec5c5c943657f562b43c0dfd6059d631e2bff45b440c3dc00cb032ff6c3ccd687620457910a72a83488ce93dc99204adde3d38dbd3e0db8996216b5d65a11215e0d5865ee6aa848d51464f28aaecf323d32e927f024abd06ec057403ae7c6e931c320c1eadf2cc66d30b5f854f52f238d20720f2020b1dca40405f38d3f89a19161d2cad8e85534ff5a2a046db25c804c53667d1239df5bb6052d21f8a43136f694f3590ab02bcfa13221fd80838e5da3ab0dd3c212a2ee094d1be5933f71fb62f74422d38a05bb842be8d82ef68830398d7bd1c822fbe6ceaf6361868f6a05754b1aa176c4b84da0f93e4564e1cf2e47d54ab5308ae66ff66b0eec00afe8da1773ffae4724822e90d52a12e174f5a72f5b6f18ddac08290cd4131c5b5b9a5a1f0cbaf71147c4139c45ab2f622d0d4a9fffaa258d6ab7d57185bba9837494c1ce264b8eec129510f761483875802dde735ccff53cf7de86ee3b14fc81432bfea8c98e8f2fbc680efb73dc3e14ed27400aef7a9e834518360060e0ccbbe151c72144507d389233b1cbff481e8d89754d59b213ccfffc657cb1d25fae45b28fe152d73e14c29e49f3eedc3823a7a75bf38e8f0d2e5872810af32e5ac4415b07d0379edfb869ce7306e8e74fea6953066f12cdece8cf01ca4723f5dab6d44a4a60e4bc79ea7b0d70492c10537fbe5d5bb3b61bc3a497c1c78333e2923f44e3fcfe0ea24f768093635a66d4278e5133626c2be5ced1e5fd6e1f07a47d2718f23e475a39c7bf9fe53cf26aa1d581e447d3df277951201a0f63d0ea7c27de1b51e472ab3668ca5884eed5561140db1e46d8442afa25343d968699df67b6ae7f17786c674d60579093988bfdcce853e48e1ce54a5930544fc6548daf3b7a8478014648e7b5625b87c68404b9a71fc3bb013c77d4ba91f75bffecabb32d0a9add7a13190718cf61e7e9903b3317e97df05b64f1e85ef0a164dc986b44ef94e250faed57c94dfca9991fb0dc3e044c9d8d13080955dbc6a988406a428e64398aef8a9977a0668edb140b38cd38e172aa192ffa82b0b45d3aa9edd568019b948aa10df147b1b60ab95bf9053e83d9881ae88ec0569fb7fb3cddb167025bf545083de9ad03a4dd7f67108ea4dab51ed24ab192087fa5816f057837e1c0c3fed094ccd52ca892e097e11e1ba9d2e827555d91d3fb1c19ef625ce6761c66a19eac07a3ee51445e5cd130cad23f5bfd247c443106d8b8f26acfa36d80 +result: pass +shared_secret: 5f83d8b07d320694b387d4ac6084fea240a41f02e66a12a7280e5078ae0ce208 + +# Official test vector 38, seed: "6c3aff39f5d097096d882f24717718c8a702382dc4aaffd7629763fda73c163cf084807bbb0c9f600cd31a7135f48aec" +private_key: 68e429be33972613c71269a6d8c28f37780f659bb7329478251ba1f0a71e5292986ef1054d57a4a1a98eea60bdd2244908972f138761469962af11078f880e900543195101e2238cc4065ee72a33cab77529c891209116774a34aa531093b15a133b3bbf24ca44787294578312a9648d6b427cc630be8420ac73ad795175563b471694658721ce97a74719587f6dba69307600ecb86c16d14428d264080b7083145c1ccb143933b902d463ab1264c53360c5fc04cad928d3f91efd67795ee2a9273a41353529cb3b6d3f61b2d4759662f1b0aab989b1d42c40e05f53e7251d56879e57c40dbaaeeee626f87b4f4efa07a7666049c5c6af4446260a1c2641432de89eb582ba6f8c84640723b7a6449f268a7e8b93af9b8a98552bf2aa940e277859824c22fb0ce8d1b3d118813d1c9749a345c990818091a21ebb2027a1bcb7434097b83fba702eeab0a8a8c3719df9821ce2c0c6a392ce5a48b56a73801accf9bc0f55c96ad21c3ad7793dd62ac413f9cb25a75065e68edc63508b13b90b6bcdcc127816d5c1e3b246b1db27e50528ebf6b946b93962469de91a70ec36c848c8bafa2b13199c146e224552e619295703ed8c441a41188a004073392c59e88b76e847a11b527c6479daf28548a5540ddc811d7727e203b51699a0dc85820aa90e7a96378d99148553726d251f73ab290b206452fb15314a7005a50fef5b6a3c69b5c91125a161699d0956bca47394567eb0cc4145fca15b2ca32a751946841829531adb91b9efd60bb2018a13d736e67aa86c12517b134cbf51a6831a80188b54b051063561b1419c4990b1aaeb52280a2ca421a84b1f1827e544c27b88c1db7593fbf3a9146633dd41a2cd26bfeab57c7b01c3a7b07b0ea196db4c21259baddd81981d9a917b4a7bbbd45fd2773539817b77c09e79797bf301077bda0e6de9829b01c6beba809130a1a9724e3ce39931b58c07344ec731a11402470828be43b33601667e46c66a59979b8b1a15d9739a7da6aa19ba6def480d0e2b2f859b6482d128ee6262a929cec408974af41b9e0c9c6a9b0c32abbae27a36dc373199f65a18d4b3e4153086f003c127c7926c9dc3510ba0f99280a5360f29447c9204e7472e10486c3c465dfe4855b1d8b8d557b99232531c0b43426521c8034518d32bd5981c149883e8b95ab150c051793384c9662aa795c93b25dd3957fd3382aa117a9d6b333035650918cc924732737aaff69472b4f699a99288c5a24946138fb955385a8a75f2088c143057275c3e7c97615c7721e0a049b544864c358aa8c0a30ba788c2e71de8261567084040f83f23e333a4d74c55d52acd20bd7c56142c2152407864f62c3d482622d87394e246110e133315d151dcbab02909cd0a10754681af44c2445331912a4031dd800e07e4aa3b37aaaa827738048a5afbae9677452cab2deca0205ca5b3e6f577892555ed3872bc845f97a86788a9577996810f0277cee3235574a6ec91cbd49cca68c870e161a7c9cc4b4c2252bb4c2f7cdc0863959061d73efd366a65c140a014cee9042734a9b79d67bf7ab6ceaf5a2c1feb9b283502f940cb7e49c199cc7a4f885bf4b041cf418eebacabb41067042b3c9c42a72655947ed2233a778fba0338ba0b6ff8c58858e48281799f94acc6694148b07cb1a5f8ae6de647251758a2a72f19a34c6176614dfb6294646c5b95c59d857320cb2233b9aede91a6837820ef74376ba533d06487939348cf70681053078466b900206af71a76d18a4e5f063317ecbb394ccc7b5ace6151b1fa662abe652186b92b3f785e828c2b1ad967feab658439c73ce93adc47382c63544fe5cea89a5c2602aced184cb45b18fd3108bdf70152421571b9a432d299eda808f8e0794e482bf468cb7b9b349932492f43c57e216281e1506d9a1679a54e4fb1986e284e6ca5466bdc8b3386b47e5103c0c70d796b4d42e17e279a9a31e434d2625efeb4abac6bcd3014bc1ffa5b6424674710059a74b6b4e4b32bb8b183c76d00a109909cc799430a2ce6abee67504f1a65f2d4c5a305639b0a1e31776797734dd535bf20545e37b33624865890114c01c874c7f78bd6d88ed73356ebe5b14db386cf677fb9315f8fd9a32039651a28338a0834696613502ca86f4830dd34b806a467fc2a726a515110c076dcb486eafac9040ac0690b79f5278022f59bfc316494a782d92310489c9f93e61585b3bd292165f651a7017a994b2512f0a5bdc8e77e9bab7e5cccaa7bbc779d445e5f16b871989974d92d2c268bce10764c0146a683ae56c47c4644057ce8b4739031879bcc287b194cb36fab6916ff563248d04851c74a7fe87f4fea546a565eefd507457882cf288ed294783179577ee898bed18c97660bdb726867a2c9581cc13bdb263dbb414d695990ccb897fa31984734e3178e081856627b0a4bbc736a235b3e392b3996441198c41bf8cef5ec64d2f5c4b628490736cbbc076d8ebab4cd1ab4936935fa3aa40d941e85cb08774520bde23f24739400bd45b1b056d8a09ebb49a3e4b7209037c94a47084604697185bac8772122d1bcf22888f165546bb699b23b2262035135120cf677aa7f767ca049b869137999884e360518358852cbbca3f90643764cb30fa16cc009766c43b89e599203d6344b1081e97c863190ab57d42812d603ab56068283cd30e92e3f7a8989715479cc3735f3cb1ed9120e8b8c720ba35ab1178b426c413c5e89eb5483bb0fbed13a2fd0783ce4bdb1aca87d80000dd48caacb57c74b802c6b133817ab099c84f1c22383e57a759ac6eab76df67876e3591f32595a56a027f2087b63db7dc138cd820a84b09411da2284ac78445850ba820c31b1ca97f3e680e24201fe67154b935a36292b18857007953a848c49d0236406e7a320243fee64ac24b02952d0a02a57ac4fba19ce373e3382cff61160913ca55a091696d782f4134db83958ded48e681546ecf2be93c09a9bea7b3ff420c84a9107f4a75a2a1c40ba0f9e6060e936218f0c0904bb29add2305cd59e29d2b10fe667f9ea49cfd149d1d8bd62e549e08baa1ccc63b8cbc734a24017e4a099bc5a939828ffc8cac5fb5d388ac8613216f21942675cb714e32cfe666357413773ab5f6a2c405179995ef42635cc7db7238dd7c410ba529e7d7391556c5f604c38fa079a70fbc2e8b393306832fe2a8bca891d880209b9719eb4d2732581408a3896735143462a45f5e4267084bda97a9a5324a2e23a714c1322f4368be3ea5219c10f56cb560a78786c2a51db18c79f151f3743a7de67c43a35c63d1b70e17aaf4e4c48e300a73f9c07bfa776ee8797f803ca148aba782a2fab110a7c4440c5791354b25c1107106be979b2077d422a6d8edbc04225ac63c3705394c9fd5389c11855057572fb303ffa365cc2854a3bf620ce5203b21bcf7ad9c675427ca1294c7b001e37a02be18473d1b13d9c52b9d59bc267ecb1fdf3bb96c2b374e72e4bc0898441c47adac60c1955bd1a5096f371bfc709ef624078139feb979c9ef48bc0bb9100d0a97198b466bc5821978c87da85c4e4164ba61a010b5fd99435dd18129a6b379c3232f75c8789d486ee3b6c84e052b55066e81c409c182d4e84926a42abac49846fd7b6f7c305e234130026540a6571d2c241c2700ed4e073d0262bf196164c71a62b904938cab91cf12fc8d527a091c20a86b163aacaf2f25d1814bf2d435dc7881b0f0219bcf40f90f894e74392fea065fd1b69f2e959cd0a5850b002cfaa8e44d0867a16ba5b173711d77f355a71bdf7674299a91cc05f2c772a5280177f2551b6f4a986f3bf584a899e755464166c3220130e694616f76cc3722c999536b6d145dfa5a27aa591ee994332893fa87acc2df67113f8a9c438abfa667022b92842c73b15047d6db08e02930a6348a71472a5e04bcf856058e785c10d049af83736b2f78f8fa0b16b0b7e897cb695ec20d37c35190a079a57cb41ba5a0f010f4cb94b585466c9a802f0855946361237a0840d43487bf65bd9f000f2480afcfc03b3dbba6ff053aae4981fc619d82818251c0d00ddb269042902b4c28fe6578709374f2461b0fc1a00441b78582db2a76dee8729be071ea3c9957f5a3e75934628081eb8339ca5cb5ae83677d4c31d7b12b0463b57bf7aae0af3901a9795085b8aed0564d3755588a0829615785f322add179edf08204021b86bb3cf8f3528ad652437ba8b0c6901cdbb748ee8a2d854644cb694668b9ce322992dc43f2d8a7ee655be3b257a0974ad0649104b6b4e9a16bb8cb79a42968ceb1cbbbdfc6c3921ae35f6b22ac3c2f858184475b4f2a12db3158b3bbf2d64f07ee186fc57de21c26bfcf6b645f83cbd47cef72136aeb64469835f3a1f1d9511e257abfead77d365076a5c423ebf1554cecc7b29c0a61b6762d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed +ciphertext: 80efccbe9e2d761ddac476b72e873a252a02782ae13d9b8f863e943ec06f26f8c080b9d34ffc22a8ef2cee0a4797d781da660eb80d6e5160d3d88f0ac65c68094abf9f9199d2f92c9fef5f8abe17e80237943a66eb26406d46ff8768233b9e8f059c61c8638ad84add34752ddb6fb9e85f784c8e33d2537712fd29592894cb1ceb1dc6f2aa9d26fff99aec7bf00763dc03ba44065848d60a8ee2536fd1761f209728bb62c2935bc1d28f4ec860df4f3f16605b31a2105e2819fc2cf0066938e3d54058587dfd4acc7d716a320c31ccdea328454a0e8b86e56da5f7da253955cc9558c270577ced143eba13ece0d597ebe3e0a04e48c704bff12ae19e7befe7d7fcc20ec3ad5736206c836afdba38ac4aab46f28d65edfda9599e69e1944d0ba65ec1807719cceae163c84bd3a5cfa1dfd2001da4c7ce8edac1b9c9ce15a22cd7cbd63c56eb27ea4c06907a896574f15fa98a1b65122fa94b720530b04509aad646b84e2620c8f511d9c8d2695c8aae14964a555d7e4b276d4d55667cf709ccba138b2dae4f6d796d8b146a920263b9664a99a9e88639030cc01602d0984c72a52b0ec87762480277dab8c3db42a19e9d8e183f50b777f7b2e2eb44fe34c8b3689edecfb3b94e7e7655487ba73e169c7066b81c18ddbae4bb949c329e299d37bdec28655ff7e1fab642c961e21e88442ea00648bf32b9330c31ae883bd5a359620f05f00d31b5f0585d6883d3f65e6644dffcf86342f9dc8a7ae2641fa3f7ea8bb72c1d9229bacc2a5730d77b04b2a6f54b0f935f2762dceb8ef229ccefa06fd885b022181fe5b29e90befc48b044d4636e649500b94741b3a4f7a4098514839015420dcd3aee122dc29b2216bf03a380e7dab2c56acc8c46bdd8d9f1b11a3df65933de2a419bb67ea3fb75cf6e56020a8075f15a58bb4da4bcc02182170c027e15402a2d5ab76b41d4a1b7ee34f7145fa1fd85f800d9635066675d4f91e5ae4bfae91dc172b19e36e17831c062b2fc0437bb14c3d1035f59762dde5df04cda8f16ab5cdb981dac9542be07a330836958c9c03795b08aff25c525f0f585abd0e9068c68aa205c1ba880ceacc9c8074711180bc790aa51fda9a7897a74539f79381ac7a1b0044a482db549ed4cb0328cc51e944fecdc1b956c5b63e177aadf3f857057b1e0d63117343dfb5c1fefc3934f64cf5af9a10bb8ae15b1c3266c49e05bce2f96d87be534bebdecd0b16dc534f95697fd4d6812bd098ef3e89fdade0ff4b1a93d77092d0d7324037c27f402dd0c434e55d8a61db3c2eaf103b6eaa851028b4191cb88e32afe42af49c6e878da887e7bb57ad417b1e1c190c434d79c3ca319d58bc6c10e9a16ff3bdf52b025023788e755e35806f52f7f6feb72c4b687aa72a1f2bdca1eaef6b496d68b361e56d552a0c8c5f8c2affc345a2f94ea62728eddcd207d5c3291eb455f0b67bb1fa96fa296de8e4f0053e47e2bccb90852dba79c7516354c7feb9b39e0eeabf64382cb4571cde7a4913e254b46e912350e2d4d7a01e825571b2804124943b025acc211224b06def37c8c537823dc24d26dcd28502dcc56559e08a160fcb4f03bd10fff9fa86e6bdd0327590b603b2064302e374abde67593c205d5f73e03aead35a9041442f7f0a2e1b534be07d0209c0f432939688f4e1fe0fffdaf2395a457ebdd59b7a5f05d79139eec13585607e6ed69a1ffec0f6d12b28d0988b8b09056c7ed48c8e234962a52948842ce7d53a6cf39eecfc533d40eaccc868d0699aff4b216a8f43b94a4b84534608e3f3a97ec7e84bf9dcd5a02dd7fe47d93134abcf78184ec182c63837cb16222282a499f9ace26d59d5de962e8b879b255540291017d8c3adde725727e7276959559d478d6edd243236f74ff49f8eeec7972af6dbb73839238068ac0a6c1937d63c1c8358161debba36f18e402e4045d6c5ebcc55d37fd2eb5e20ff13c2dd231237a049bf1cc6bac16f0444943ebfdbd139b521d0bec71d38ac891763b8ac87b093d9b540dcc326381aea049ef1ec5ec701df7c5e733c6f58291da9a53a611f7ce6acfb99d45f7374f5f536b3b0b9c80756c79944ab262f9c6536a80f51545d46277ecf7fa0b569721bb207b4ce8ca4f25c49a04dbfee807bff9c4008f5e017902294828e777131fd89b032e79648c08fd457010415e997c114cbfac1a6d496570b5cca27fbe192c +result: pass +shared_secret: 070da4db5d59e004607fef8f49379692999d0d4cb63dab350cf8c546fd954ee1 + +# Official test vector 39, seed: "cf520b92a2e3677afd003ec1ec6ef136a709d78f828c9c0dd4946efbd451c5faabfc83ca66f9d3d17ee4220553b7a69f" +private_key: 4ee12caa4baa2439ab1e4ca28bbb4f3a85c606a636cdc0553d821ec2aab20d0394a0e3ac09c96cce60cbfd9a1351b3cceafb11ca7c87bc42a1a191506ba9b3b617a6aa7a705c26b7820068d930bfcc96c3728bb277b157cba1c1f8f17c415a1bc9e9ae5f4771eb38cfb7231108212167d6074ea1cf2d5b4c04179740c31ba48750e206c8c584355fa9c57d6cc84d1c88bb2a43fda99cfcb14da5e285b7ecade1761d4c711b7a83b738d7060bd820e03529c608937b4734f8237ff746b47b3460a40c9ffbb18b6b30437c4b55df55544f74bf3fc5758dd2b4320974698aadb0431f5670580ed39c1e1645101b635a49998157221ae3087229bb0f9ca04d2766cf308500eccf34c40730888fd9c1ae671415892a8044d780d27b3f3ba3751cb9c9bbe61174614d2f15339d0a066eb738a0b43b8e0ab0e422b64f50c125769bd812b1de3672a1976402909d353042d8c4a535a1acee33245254b575e71c5713a3dd919a8a9446b9fcc80368be2f67669bab466b91486a94a940e007a761461401d0512788aa06111c8c3da1b136d3074598cc7a9d9aaf0a390a6468aab1fb56a71414139840dc7582b439aa78b9194cfc00b0c357e8840fc583380942b26174838d558c6c441f1e634ac590bf9c1344b8fa95aba16c6c130d8137706c424092ca5cc2bab74340aa6ed81535fc6a0ab7b59cf276f55583759b0b009b4d6e117410212dae343eaac5946c3b379b7169cd5b5a4e838a2b0a7810a05c2ea6bf10667b4cd7a2e71b321d2395fa48a02fa08497fb68c771b1eae67d5c11224eb19ab241770fab2fc1800074e697d27b0ad3035cdb09772b222945a9bd9b2cc20d4b488df40e80776eabb475cddaa0efd3c05f1c792ee9c946e717984686bd43660eb334bf775cc5470462d03cde3c9830ac8a66879ea04aba173b0858425774fa9306590a8c273cdcf347202267b44c3c52063693abbafdf65f4a2949c18b0bbcd02812da0eb7f6a753b0893c4771a13986c408a2b2f3cb2144b1b7f7b6799177e0a258415cc91d449009c17a265803a038a21ef2911778242b043e19f986ab2754c33c31c8100a15f8609fc05804730d0b2212768901d7e4afd4451950cacc42e891ae845a53bc396ed0b6c1423584c6b575a535e949909ca7cd95d05e743c16c25b57fc0a973e7b026197c6eec688a5c19596bcb9879b44d2b1358f35b5a31bc3d8e38f003bbcf82a540993c73f30123c66bd31f04964235477d5323f69c6a99399055c8347cbb443c9ac5ffa477e05229457111dd212928b337dd6a98f59a303097536c10d7064177e06830497a644ac404226b688d354237742fdc6639a979625558ba4509cac106121d847932311e4c22340b056f0ab54a4a1b5bc186c864397d7984defebc974b25b211849ad36a93ea21d5eb9926f7c6b96233f11822bfdd822fa211ac570196bd1aca785463c56a7fbb602aaa3c8dee8bfee7c18fec5ad0f844ebe66b17d71337f71bc7335a86002ce28e65e6a5101c7871e9f651f04c1c6ec45c47bb97b1e4253e4110fb0339fdb84a7ca40a6f7ac81fb43681ed56c1f51ab7812cbbbc3a512ba340c566a9d60cd1ac90d568033d0e1166d70c9e10583e61282794b8247f4c2b248a71d379302b82e9d275f07bac252ac4d09633be60002a2a7cc23f1b1448c1e1ae77fe9cb8677cc3a2e8a1f6f3bb786a8b3b585946dd909ae296dc6648f1695b66d51c056e741c4468a3db6acc1c340228ab88d83cb168982008d9fb07b177278c893472437a12f3b2099c80322610c96c9754cdb513626297dd9dc5c8b64babbb2cd2b904a52d67a1d00c92462a291d6b509fa66de596516774edccc48ce2c145e625158381814709f23d3427bb56b465531453185ed500341a317f97c48373a0778293bf989529edc39ca931f23b341bbe18bb071c61e488e45e100091ab58f18a7f33335d11019a973899f173fef0b43454a2d091274c4601029176900d03d068164b2f1279094c16d38b32c2973958c0cf5362d34983ab213a4cc235d3ea428bf289d08428e02c3b23dbbb89d35c7c571a1cf018dbd6b377dbb2f09fbb30c5c0244c8782ac46e98c4cf614c42f48b49cfd8114cca11e1455a419c2bede2684ed140aef81bfff6c2b32911013432fdf751e5855320202481d55ab1318e2c501e7d462cea98864e291c2c727e6ef2349332680fb06b09767a2ca72cfc078163c140dc7151d869a9c785ac62c6ade5f7519e070a08269938c7796b54b482f027a0c63ac24a6a00f7a0e7c65843e1c1fd01bd11d24ecf3c8b90cb803626044d03a39fcca7e918ae418512631898f417c9c9618055340a05f67b6f1cb7cc44117af09922cc07e9522285d16c42a7b2f833b51e72ce1c28a3ff37ab697cbd90d96b3e460c56c1734f1b11280ac33f170b3447c07f99a68f9a6f1dac6083368555782f800bc7f4409abf76b0eccb6da8f0825cc0c696cb9119340f663317913a641ff369657207194b65fa6b1dbbba94d22b512b56877120a6edc10dafcb2f727349e5831a3dc8a539c0a55a517e65982eba97930020608094b93e481fca819058537bb2c051cb2c3f0e5a97e8365a14491fbbc03f603977273a035855c414812ece238d254ba7334cc5bce7256716077766cc21c617a9c378fac1786c1cadecd13948591198682cbcf0cb098c504dc4b16a8269d13a701731b29a71432205660005919721c994011ca3c0ba8c3178a6d80b2abcc9f6e6b7880811894cc6e62c0134011aafa69568a1b95bb43c815c1405b4351a7290b856c50e284eca0cc384a4551f455b503488313a341aa25f80aa02c97b9d3267492c31652b7654621a59f1aa64ae4410a1099ed7f14aeb10485f794e61157c1563ca5515684db66eb99b76836a2441139a0906b35553c9e3e317f5e2c08487697574464a9936aaba528fe2b0c0c6b058b791d94aac3bac180b0609ab36b27579864c5bc6d8288292387dc4931fc889a45fc8bad636ae2bd493a5ab401311084fb57c6fd88c2f0c504d5c463738ba7c5a97237c1681d8aad66307ef648748198f6ea0c8fd6ba7ec424052c8a9b070c571b136cfa86f199542b12cb2a77c6973494bd41a2f0b55cb0e4122d0958026b7c54bc42eddc040cea8470f738f9c9916c158a9ca6457d8d9a0649337a3ec7347475eea8c34e8127636b3897c547c0479a1e22bb2f7606afd97cabee179467880dc02c7b6f892ff3a7a29844476fa9843943d68ba4df2db6b8368394b62cfcd257beff5b8b54150407c5529349769824af105adfabcc53f936a8a492825d6a9b1108f1ea258c9dca2d739a600f68616b2094ad29207184607985e3bb784d7977c20dc0585233131f93fdfdc9ee151c6937c7bc7fa4af43b3b1dc4774ce6273ab04736308e89e21eacfb81845678a0c220309a3c9fe3104f61680f334227670f95f2b84c137a964a0a3a57525a4b99b231a8f22830d5bc588c0c705189b2e8a19c4362cb50186b99b5a783031300a26300280f279987ec058425817327b481cbfc789f659530d9c5d9c8432959adf71741c1f9353d9a84836a5a5487392d19b5073a72869ba4e454c14ea5a93751322b8592e8566236a86c6619648be1782cd03749d9b9604209ec66804c64913a143887212e7acb54d5d995d0cb17e3e27c6dac70904235f5c9bb29d908d8098b11739b16706541f31b53e3a384e594a7a640629543943a1262558530c193d18079426708117197a90b1c45e8b394125ac46238d2e22fb8750d1c190824828280565093999608f4113acc18370509201056d589041d748b2fc71da15490882805d3d3c0fa0a837400b73d25688c698cc8d78d144a80aba8372bf7c349b9c395bbb8adfb885906402eab1ea58b622ff45c4dc14c9d11708659596552b18a3c0a1af2cd7b558f15f461f0501c409a120b4468f2c09282ab7b25f9b028746fbc9ab77af4262691a64dc43d59139c21eac58e58a491e26e10974e6cbbb82af385c4f77e7312ccb5194902257d3c4a4fa1a9035a670b5db47ee67c1b07747b889a6c481490462829b26184be3c9b0d7a0f9f2bcb10c8176f03464772479e9b84dd28ce94199d31845dff0614d02841f4fc92f9221cff071551e82dc829c9cf991e42265f94f7b4dbe7b791c244e37c3ca4192f70c32cbe9366db59a9dd8582d6e69d849151cb7c6ab82ab8e7854c7b4c15b1557443cc2b1284b7fc7b16e415007427b5a9909b99f21c47956c45e14022374440b70415b896659178d3c98bc4f3bbe904a470e4838849bcccc2ceda8b9bb1e2af29169d5919145b3229fb8c9ee705cff4d91fb9729c6cb52725321f208f2d0b39ed53edaba2c350ecba69a4ee1f3159930f65c8baac80b2e03649c5c2f1142a51eafdc3edbdcb3c5150c608d828b7e1b9c1ace00f9a548fce01c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 +ciphertext: 4583baab569c07628c4931763b142daa34f7bade4707b002a966dae6982ec9efdbb2ddf1b82f2f9fed20289dc4851dd6a6e6540f63ead0986171ff9aa92ac558be96585eb1b3ecac469f5878a9b271f2388fc213578eb7639d018850148ed9af6ac2ef136e48a148d0f8b018d00f2d229dd4b89587782e4d3308daa12b39fba3a8b82de3e5ce1e381fa8770067ef16551b352893e21098830c2c973c04bc24dfbaef894d3c01f4410f7c8dbd7321a4165f9040a2fed09497db369b406a159db7a642fc840547804dc77050fbefc8167bc17bef43022eb0ac7badd682775a8f6dade61f443ccdd1e649247f17abcf2453ebe21c4b3af4eff0996f7b5e6024c809a385503a189b984b021e650ac2d182b947d6f248104b8592ef66052d80c8d1bfb612ae1d58e79d17df364c23841c0a969e9139068fe1b3a51cb992c255c21008a08f21f661be10c4f5199a7bc1dbed99d253c34a98504d85954ba733217545807a7e85f2d65dc77a054365a275ed9d4c408c0d10d9651c99bfd789f00a29b95c4a91db3c479a7a759ab00eae24ee49712984a28888ff16534b59c33e160fbd8980ccac1fb6a4c9f20761d9c7030974ddf02346869d9a95631a9bd3c87c3973693a5e6c249278f3b85b7e8011285e6757b908a8842749e93d8568e8cc570dead4f2d86ae4fdef2852f156dc03204e32c1c6946b9b7aee25a96ad20e122c52e6fdea2e1e37aa92d8f50b62ccf4cb3f44001a1a7ce112bad5b9dd005235fdace0741ff622168204981514aa2643e3c2c4c03601e3bdcafa2ba76bd326a86fc8334d2a3192b4033316b9f02a7e9fab545fc5580680363779137be9c49329d1264279d6587f1efc8a1591021b13af1627c172c1279ec61b23d51191efb898d8a9214df1cf7f2b1737a0e97aa45e813549f42e828f90c1e914093066a0e94da503932f931ed491bc43f4a8a689f89ce5e819f0322464954eb154046d3f6ff3423d2a1dd928a1eea9b496e64c928d18f57953b009c74c9f3b83ed0b6b9fa99ccfbe79c47fde9b54e2df8e819488cc5534e8c61dd6127615f3442384a6770ec9268a9bff0db2920ffb63c8b0d375781a48d4a11d08854f14bae1d25902e54900568a46e3916290eb3e0d7b47ec6669c93ea516fb93e7228e3723630247cc061404bf2a8209dee902ed514efa1fee05dda7daa39667c3b06b9ad0522be960264d4c06efd899333d61e68964c3a1035d95f32a4135da95c720958016b5d17b6da0931e95921aaf48ddaf762069230dba7f8d570cf42a78e0bc82327258b71f073071b8cfd69b24f3de704173fc3157c05389bffe6105cf0e81602600e18a0e3be22e052b975661db56f3c500c1dd2a99258b203ee2ae7a8d5b1b91fbd5c5d7c9d6b07f64d860c8721dc51adaf24fa2e99ef8a80a5d41c850a255be2b686920a64a69914071be73a460e806eebadbdc5ec665a4f26065dbaf0b9721206f761376f5709bd4cb34af09208970bc1825e460419e223c960cd7f7fa20a582ef9ab90b946a3017b375763265f8118056c7cb929f1789fab3b10010267515dbd9e3b0e0ee4082afb9f780b740272037cf0b83df078d4827ecea5dede4352eab5f94edce1e88564311e91d2cb1893d4b5ecfe47415025fee66241ec51f0896872b298231a222409a9abfb447779c180898209df96a4639284bac56d8b94f3ad67996eb877f01cca0faf9be45d540e2b350c7ab293cc3d0c49711e2b7d7856f0a1e297e21fa89a474cf96e2a1028007f2d472f9ebb4bfbd3b3dafe8ddb17c574c09fb4d741b4480f2e525c75a712d6127af50d95ccb4622d344bd9c2163b9014be4a050cb6ad7fa065ff2464ef4575fd208f910445cb2e0771aa1c97873ddb95a9f0b33c9936b4134f06adb22cd00c3ce148ee21868d30e890b44a6c4cd1dc02d15a4e6d28e31cddc125cb3fcaea52a184aa041708c4bab098e387f6b4862c7569ffeafd128472096841596a6ddebd47d4f92719bde6e6d5651943b68c820b6bf4ec1394a259651d2ad460ff28f2a2b9063c686f3df62c6562e9f28ea02568058e27ea9f2519e7485ac9c4028be344ef015449ae79874d22b02d94c9d6fc5c57cd49e548edfc703fee0a68bf7039d8ce4d3b179c0df80270ba9efe440fdc1a31120aaa88992dce10110e6a7a845929b86c4aeae473c72ce6abffcdac33f104a817f86a8d470f0b8aee3 +result: pass +shared_secret: 16d4d64c78114b5fecbb99dfeb59623cc33725e9fde5fbfe1f805c05ea7c6c4c + +# Official test vector 40, seed: "197e5d562de7e01bed4fc597db28dc6efdf0179f3a5bda5f94caa39d67bae730540534d59a7a06c8448f628da8b7859f" +private_key: 04c78eb9c2cafcf78072b8508905b42c5698b3c86d8f20bcdc31a3e0801a084b35913203a642cf671c434ee39477e83d7314bc81a5b0a5d010031a26dc55bde54c5194525091314212063b7e852476364aa64155e6e9a52bda41c17939e553c26378175fe3c4cff13e3f20543a275d6263276d2262d1a9596b52996c4982817a4fded3924416b65e9bcaa45c6a6956c3724c0ea4171757393b5af903de5694e8962f3a122104092924f25e1590419fe11cdee60bb33b5bde000f7d621811819c77e4584a89659caa85e7197588498ee8c8a8397c1157c29a7c8b696653a941ec2579c1ca7368bc0be8bf4442222390bcbb871aec382de3c5011368cd420abd03fa8bcc35a99aa27a1412515710b3f5118eabcc9055a09b350644a490bf83dcac4c2035c81895ad53545d5b59bfe5455ab9c7caccb4418b5830838e0403a56619af355ab2448a69f2b848ffb42a8f5407fccb9c5164b7f306b109533dd8c690a5a9332f058a1978915244645eb127b6ab92a732bfa7f0b528aba0bcaab51d52a54f57cf75c54ce462bf7ab8414c9974b58272357bc204d13d198058cbe21781e7a83507a7e1220195ec34cc84125d18cb7610b3996035e755421b969ab6cca1b79a8315b791d96207b6920af2e26fe66ca583a943aa3914a930943a723447c1639c22a937d91240839824547eefb69e8c5868f0fa6df79570dc01041d763b13c08084b8cf0213a5eeabb0d7507a0f8837e9138cd99349d4b2acd1f72749b804eec23f88ea19b00b5fc06bb665886c105786b45610e9a431ff8a48da00ad35369843096f542396ea143974791c1e830256eb7c291368ba95009e6b4ae821ba1839ceee153adc9b7fd5b6462d4938a9129898b9ce6be51c9ae90b065232616712580a80c6e57d57b1c597b526cec406a948abfa1bba5d1835eae0755270b8ffd5cbdf772c5c68c4a7f66f972c1c49553e206b08ed95067bd615b12b35f3e84f6e7a8fd72180fd904ac46ca901b89a5fdc2da3b472f0a547901755194543e7a399c4363c33cc305345b79ea06889e12e049319a0428142e6a77d4b7223c72d3dd0c8e3c315b2677b19fa8c1ba7107d10b31e719a2c90abc3102ea5e074f9707fcacc8a10e42014c21d7aa74153da8b80779ef71a86c9d10bbafa7432c9072e3cb4def92b9264af134917dd24a687a492f0d351d3e9c61a421d0614baf259752db556c8bb401dfc33d9b0869af44c81210bc25aa2ec07afb5ec862d390c6794a0668580ebd39a23f914feba865a33603d5794e6f4bc210bb82b7a3914c1b5812120aba6a58ef7381bc89e49817f0607980c93458343a12e26666c664832da7552b804ab349e0b56a174716e3ef1270669653ee63a73a09c66e12c7b343a7ac13cb5ac4c740057c947bc3145b037d756bb8bcbf46097dce24c2801c0b364b8e02329f7fa183c1003fc715ae470b50f1561fb3168b421727e66940a717a350a69aad45e506144fd528f07235fcdd0c5b7b659f8c0bf85bc53195c75c447442e533b12e08404db99a7346524964e312c48736c99a651407a3661b3812f83da22f2e455483c44af351ccd50721828313586665e95804f9a4e7d3878cf134a9d815ab4fbaa711517119043a46963101390c20c552d4c5366a92693526ed0893aa097481f8658122c3df8fb21a150c52f9367991bb31955035d286fbdb5040e58556b2a8b7c88011877890f9abbe1292f9bc36cea7463318c5047629ed9a31c39d65f92c18b02e5a7eb16c4aeb68d7a057623f25c0ac68b48aa3a06aa534830a790cb36840c8e1c4b653cda1acdc1a13777aabdf19f55b66488296f407366dbf03d3451b8c55284a9f15f8f16cf51ba93781550ede5bf43ba4470e6bf1d4236c4c78f7710bd0df79f98d55873aab6e8e573d88b19655497812aaea85ca6b95ac5e0e908d2150d68c110e24a48f0e7a581eb4fda5b7c3d97a68e26c9f709126089753d2c072e88ab97796600b2732104acf744471bc562bfe4a995e88c36a80c5479c0f1204fbc6b723a1b1d3f817341853a02d75c1497b18e242e9e037aebbabf28bbb5c4b72f22eb02734bbf5a897e77f84d9e4209d3fa77eed12bda34378a541e5e5c3258399386c49be1a05b6c509724c68d42b5a9be11bc08d154c9e07bfca513256a52d4f7656b2b7819120a7cb68a80b91f2783979e1a329574272a3b154b52843bf80f88d947c79a58ae555e819674df71b13ea48741d103d345a8d4786eb43012fddb0b01c3baa6a0cf128b099972449ecb3de50020b025c486b4b5b115c78d927fe5e06bf8e29068d0b3d963c3b46cb9d1ba3256fba01f2185cb566556151ed2e1c993469190b75fa75259a5b1096d5a1647448013c21eca67a3aba096a4dc77f35c2447e81114f732148663a9439b1304b148b813f12c61654688d35318b8c0a8c33738a2f1bd2a1b6e8ea93eec771ec8c0094d4c6a45ba61579c72c2a41ffd468a6c679fc3d6b15d5a549b1614bc8874304bb6f01b775511ce5bcc7c055441ac72c34ca164f461990a57baaa98840439371c26134500377b39ad6d222feb0b67dff197c550541b63173e2b1b7031b30cc3772e97734ad3c5b6243b3269c48fe055a82c9f4d1c166c294b8077269304cecbc404ebf8bd82c041c911b09fd7c2cee33fee1bb754878d8143cc93b81c7e99323b5210e7a64c7a3b8d96c1594ff3ba50132484e663797246dc3238a1eb743c4a33c51c6587a224bec9bebcf5ceaf175dd37c3591ac7d82512e9ee7c4acba2cf5bb26d3a2188be321114a7724c797a2bb26cbe43b3fa03a8bc16dd5a49a68544e9feb51786c46794c9f5239b7584acff68a2f7561bb05e6b5505c249262b509a922e97c40b4736e8fc2af4017acce951cdacb3385f060cc1c55a4f79a60daaecc939036115d2f480f6f0315fed05387e99f9448b6155a51d66a6940519b361233b2b7b34c740f0cb64a7cf0bdc48677292b0d1ed5898ce928e9040308807cfc730be0d8c614d322735c1af2d2199ccca1dd80a96cb60247125cab18ce7a1c5e4f0c4b978581742c8550cc9c84b0632967654b968c01492557ba0630ec0caf04a443d9b2f616a9cb4ca13da38fd9d611a59bc697c20e8eaa0d2b96aa2db111bba3a05fb463bdf7a777cb91b1086adce17ded04be8b92254ec5442a6852134b5fde9b060fda258c18740b79970dc981cdb883cbe3297fa33ea988b07f9a581bd086d53507ce07536012a211c6b4de17b73a08153c3514daf12185416a81c61fe255a3e04b33e3c5a6a0188f6e09855ba504f838cb8417c2f0e97bbf5b937ff53848031274489b5366abeca2caa7636cdbe83f15980c02f207577b5efb947692fb40ae7b36dfa83b728478f0541511fa58aeb121c14056451654d0dc4421695864db64bc271a79ac0beff724b6bb2290cb64087b72297a6c3881765cd909aafbae72c9448b232093694ce522c72d2475f281ab1b633432175e3f78715de1082df66f74a351903b115d74489a32bb7a873aacf195f8f043922272cfec2798f52f65f4638302c62648199e7979f4740b30d38f7d794cad179ac960c838db4ad7038ab84955960b4822324c5d01c5985ac8f47138bab522db895af2f9a983494f360b061bc5120f385166a5ae9ab844c278008e47b655570430451cb606c24840b7a0e51268cba81998697a5653e33bbe47d43edc3249c32964e87bc8ccdb6d603c0f7387306b043fdb343e8500aaf0104683dc9488b0ad3d04a1c2657f11a99d46b040d0950d0937a4927012f4a78ee2405eabcac445845d7e88b54a8c57947b7ec0c12bf654059d93ba38ba2e50ca3fee8194053b2c9f10cae8c846710392733123b0eb0ad895216efac4931cc782e886fb2c87bed305cdcc690dabbeede21addf7468e4873919865b905b3149a4d686b7c96fcc014b578e1d36bc3b63449f467b09bc84a92b20b01bf70200e703a0ed084c860f40a336576274c7e5475835bcc8ec515050eb8215f397f6312c9b1db1ac1da29ff90a4ed58b8f8623d4b893e1ff94e3e48a0ddc5c221c0b34a798713897bbe16a4c298c5e9f44932b09806e554f76b76fdb8744cb38d00f24f5cccc75dbcb3f81233c454ce3664a807d82c68255c422866cec26ef6e428677b4db8f712abf50c1e11c9f014b9ad59077cf0475f925568300c49c08e4e17cb7a5581ddc17331eb3bd7bc04c933b646224d3386a3140cadd445b632268458f63942455ca1b164c9ccb2ae679ddb12524c34cf823b3626b224e466245cacbbcf57896b7acc6f6b702ce9000371473c622303db63b2744c7138363a832b2973bb3144bba8001999eef108e317890c4b63e857c6de99266629d3267db18fd97baa47b2da64fcd1f651c0028e1e5653a53302082d4e89b76b6b6a939a2f2f5b6b7d5931ff3ed6c50e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 +ciphertext: 930ffe1df39f897e44077f527157207b3bde1ab660a8ecf9d3ec21c73b991ce3f65539a874da5cb458bfab7925748164205723e059a080ec253a8cc03257a7f7ae9063d457578a4ae84527f7ec168496478289572405bf84a958214a776650db772fb8b4123abf91d396bbec103d0b5149ebd23148f2d97ff70d7979d9d0561181a0e8d866f8839238ad8281d601c9d855db0917e5f167b99c24033b44c598e0fdb0b1951d18238a2ab8c0281bbba81761ab4bd51ee9ce5e0913c76228985358c09587ce471014e21ac316828cf2e8664adacdf20ce6f7930e3f6dd9033b3b9f1a37d28f8905c21c8e8a826c9a9442ecddd9aaf5ebb47c5641d7de702811649b1aaa75b13ef896b296ce1f2af0a69b746cb8b5043a986b1320c241d42b6d1e61aa55aabc71206308a3735bef5879e9c34ec697233c2a7eedce55b012d9a1139bd3c03c4690f89fe825937a3d70d18fc14c1e067c9782018e62498d609424f34407b74dc3ce04b7e87ac33e877878c8b8ba19cb3da78bfb8457ab0c47a4e307be49fbfe8a12af06cfecf8784e028ffb00d181bb705059eb841d51af8c606cb241cb758c6ed3fe16bcb87a5534b4f805675dc03b47413856b67555af680f43f64b7b5b0094f70ac6555e0b517d0f661a0c9bb1d3e38730d434f7364c83adf7da670f1e2a26441c1c856a722764c0a6941823333f65e82bf77949e104daf3d9cdede1fdeab13e8a6a0142caf8da3c2d66cdb9c8726b8a85339f0f27b56bfb446d52e799de9bd0cb33ec0ef5848982c4c2dd9367e7108b174b8d3b3c3fb7913e55bd05b0d5afd3a035f24ab614698e94d2ea0ef5288a50fc98d521917e4be40aa038fd3eac0e7594f32aea68b4a4b046d89aad216adc9f9a824f0ee62ebba49e2a170694524d97736be4cde034b576590e3e955a946acf4df8c5d3c794132079dba476fea76b734e8224d6534a212efc7ad9af83c91128b8c7ab3861d31b2e6009c7d7bd0d1035b53f518e32d442583981ac415d9037901d222b5d20821c80964400534ab05f5068feef04256d01f30b28c66f5f83191765c54547a8c6242f55a0c3d5097593cda695dc83f646153ab958d8b0db0c4a5564399304b7227b0424863c57e8d8bc954df042050e8de966c2efd63a48ade9eca925137f3bb56b067ccdfdd44ff35a890ca7fdc1a8a86aac65a6fa5898a6f287f73219b43a0474c246d686d3654322e3f21de06ef63ba6bbdc85c168ffbd670f335dd9aef753407584ccf3fb0e96bee0031bcdabe0b2810836197489dbfaa17903afcc729e56012a85d74a2ab94abfbe89671e9c67eedbc91d7688c6e34e1473424e604961976efe2c7f3710016ab858e3bf1ab984910f9f79884c5817cd2052c19daa950f6ed873c9e52c0bc09e7cfac132e864aac204b0059474936eafa4b36a5a017383c6827f5b6b194df7b6bf8d7b420331175e35eb7ed7d028dc956920d4072c2d8a51cd306365e09145bb2c57c56aac1ec5e6147a73de749de38b3e635fae41402df3a0090a39ad95fade379a9fb3ae3cab24c04823f9e36b693ea722e65d53b7f5e6bd0c4a2f3fe760969e0b9f03317132812283f0a4b20b277101b2cf8b37e0e3d2a1c23aac41515348ddf0db3758244ed476cb6af9ec2db9b68ef1dd3196474c92cff905d794cb5f963ea78173263465f1781bcca7430e5e1776de8962db7ada24eb5c31ab574469dd5336c4b3efdea3c218259cf602b571c0cfb83f996fcbb6ae63ed4b7ce80f4813fae069bb8a6e296ad42b6ccb5f19da19db41aef3f10d7dbd23dcef7673ac2cd56216b794372e955c197d4e88734c11166f60d753341b76f866322835d226199e69bae5c40c45dcd20f8fa5f83438d760ac1d6fba0b8560c36a423ddd8980559e65ffda8d78c639eef3a36833f6bc9efa8d7b147156e6fda7cae1b30d98fc4871f4d71e3f52d0996b4ef746653ace05b60957ecaaa99deb58a979fb269e522606982cf00205c6a9217366fcb0a24d366f2861f8dc538255bcc24199626fbb4cfbe74b5163854501d5eccbd95a3aa37bb565d7d4e723732193069e558e72add81bafa75fcca810c57611c181a0619035a2ec73db33711f4a94d2507b1e0a0ea2eadd18d5ac25803ee01b4434eb7a4382455b00c3710f98d85281c1f27cdb212eaf82a865d0b454064b39790efa2d7c93b99a22605c618be3f126eb4408b9 +result: pass +shared_secret: 7822319b0d51be73985bf8e42d01dba870be788b62f9fe8bac94a109cf202111 + +# Official test vector 41, seed: "f170583cb451d8a45d105457c02c01a33a40350616ed8515bd49067142f61efb00f07857e4fff3fe11e7164c648c76ed" +private_key: df9a22dc6c97b1e41ab3d6b79d183b1ed95c6cb32277a25155d380318260933cb26e427fe1d6be2e40bc02ebc9e85a3850b30689acb277096d8d48cf9b3c6b699864fc4b085ba86fd2b92396dc384d03428ceab2173380603b49bf2668af38967b4145a427c04a5541357771256277f7956335da5bbda033fc7b3909321777e2991189a93b730feea54fd6445796726c52752a7d11235c8461c281c9bdc3651dc72b4bc86efcd5cc62a18ece4b6586b2b0be374ce392214cd175117453d393842346abf0a0527e791e484c08b5324bc0e489ce327eb536609c4a646330a3d1168401f9420ada3f4b7104af688bb2326908d023f990ad064b6fcb4ac12903290e93bea142a092c72b9b77b56f27552115057e6a7e92822ea635c1419159c186690e67beac07785e0a585681c67cb73aad460378691b07d653ec0308cd0c21058892d34c437a5bab3bbc83f660b644507a5dc00ad5e01a231a7d426764b9561c974490c85911ed94330ce8ab4b6c0c72d67114096691d1476eb820ae01ac8df78aa1fc10d2b898a8f600cc1878360961ec5018d7f63d79744b41da21bcd086e55a83e1b07aabb47aff6831e9ba51dca086208531d1205e8124b66a40a5c0d7249a29a1a218be0f6091cb8135f552b81c397a000ab923050d167940cef362ba796b9bd7b7f1a197c8704ab51c63f362c368c77dd5563b82336edb912984fb144e46cf21a11c490ca7e8c66cae89772b2b96e8085abeb82aa8e33da4b56693f81592545ddf9176486350e86229b423072d586852328e7bb2065d5a7a8600aec4911d07271d75924d412494cf77b868aa7b192a11a5d66eda19a10ee8c051d456fe7846bc8c52a0923d76e7b4e5b27bb2e2a03f8c214e6636620b54b893a3c9ba9bb7e68546626f601c8591bb33537b71b9302a15b81d6fb7919202c45c0341e3e17b9cf39964a4a48ceb4b7d936fc007c486f40b4265a8cf677ab5e97d1381bf1d8267e4445aade22c4fd536392a6219d3c9855b06de9610f714a5eff2158f4ac31a29b71e0a9db207c2075109c0fa762b70bdacf391399113fd8429c48a6a3edb5d465a45e357332a7a1ffc414325849d9325be55586aa9535f85e20ddd2696a615139c037757514295173dc7c92a5274c1571c0893190c5513c990c5c1fcb67aefac3be248c9111c752c94c180fba60064af53d35ded934d7c72856bbb9703fa43ad125e285626065869c10027e0c374a28732bb238b426905491c25e73907d293b40777782c3ac846675502958bba239597fa230930b515996e5b3054581a94f0f848ce13ae14425aaf593b175635b6db63131c14abdc4be6e984e62bba9f95a9c3d986c71640ffd1a3585c20423068b52662929406945199fa67a87f289cb15b85e6b28099f3477b8166d0d398ba922c22a1319cc168b970c699706eb87891b1504f99f91919da8300a49dd8d292390c41f9735ba65c19fbb83c80e08392f10b31c0c18708a9b1780e253404bcd5753eb75e269b980ec34040a4495c2146ba5a1edf3a8f228bcc10206d2868ac73318a361318be704518a71b0cf65eb91823b643392bbc02b0e0835832adbbe34577119c75171460a891efb51559282700a80e65797e6b367d444c024332a5bbfb2b8c9619e1498adca52e985a9d03b91f356718e15bb11ac4bb133c08bb82c2a9fa0ff8785e92902818d314bff162bcf5393dc0b2739a7271d02606673eec47cec412484f9b1437c688b3f147f1792a463738649a0df8d0480e0a1cdfe3107d48c5ac11c3d7dcc204b439ef3533ddc2098cb22746001ae103c8d99704e7974e27b710a57cbd9e7a4509ec96374b648e6c49d0b0b0b7354e3dcb206e5b47942a29c0c498c7a1c1d401af425a604c729a8fea21a77aab00c67db762b5a32ca0e73aa9f5e2319ae5cc419c964c418f19276bbee6af76aa4fd04278d4c28aebd4ca01b6999a5c8068540a07c2823116a4e56468abc468fb222f32326bf5c02eb313c4b4ab4d92f408a60047d6890de1ec3994e23ec757c138caa5e3cc14b9d60153565af3c20581a24d2684c4d251aea1b36e56042fdc7c922812ae69796cc4912c882c5d46b4a2af9874d91c3982660c2dd6749ebb2484009be255177c9ac65623c65e0a896b1979e9ccc093ea5113fb59d4cc6b2829b04a621a204a4e63a2308d728b28c16652fa939d455181fa1b7b44447d1abc83e46f9d5c4133b104cbc1369812bbf9e83ae1e58f66f8b7c2e56d902cca69dc841f31372b783bc6421723ab0b2bc21cebc7cdac0cc3c55a3a088c0d21a4271264945766740af06ffa65275f9c00b44b1b3e6823d3c29c0a509bcaa2be1486972dc178821c40a203849a3abef402408ceb1e543c3bef193417bbc0c5679c13074063e83eff63af43464b3ce47e4b86953bf21583c2515f7b1025bc0e50454a08313e915882dbf556fe9b18ad27250030723db50e5dfb2380d8b74874c78862a1bc9083e1a8438e546ff9ca64c4a53bd17c1558067206056a0f222c8a4a00b2a92631179b6aac71fc711cb635b008f28cd69b51b5d7aa6839a1aca1a0da854faa39925cf606ae20612fc9c7573c73393a033cc8417d427db29bb6973546a967354fca3c43223a657713e150262e5621053bca46931248386114564cd4c0861d4ca648e789efc4221f7a075dd8b119ab7bb3f467abdc6cd3c808d1586199ea7be6e75c03916da4c012d8e81843f472c8504ff4239d3c0881e0e664f6e253bf2112beb301f19774e6998d4e8b68332346898087f1b7460b664d5d10b1ae199ba661cc460685d56808d6e66f3a78b6f5382ee3eb945482a1419a0a509a8909e8ab02990166c84905c7533159a9dc447f11f649e367486e2191a6c48b61331fb6137051b1410467cc440c8d0f9c9369b8803cfb33da7416dfc47db6726440028b23807c0f68804915a09ab16c47287d4eca5f19b98839030e9606815629b1e153a5cdb954f6e3281749040d91061df4afb67a5f8b19b30abbbe9b4b98b39182c4e48d514c35b515cdfb5bc61553c7ef047b17ac2ab3d10fe7d86a78386a0589072fc58983058a6959915b12a80ec79035c660afb04e9670cba471125e7a16d9fabea6ecbfe1d18904757b0bf6a459f0087dd193be490b4bf87bcaf772547b863eaa703ae18b58926aee14cca8015af2939a49e29d546b968ddb17eb62b9eaf9ce53949e7477c4e9893a40766a4a15cbc392c73b313a0ee3201431bf3d5555dcf73174f3299c2b88dfab4430c08c94183c27d1035c78769b143563a942047035a6c2373a03c0bcfc3973db4f8f25c002c46376d6a6fe103bc641608e98948d86bbe6e89d5405542587aa4821c30ac8756f07c593044570f536b4b07fb14b3236422d01789822aaa020e4acd92126809b2d47f49049875c15472a37b4b033fcc260fca04ab629474c9b82450ae6572d891a58629caac895bf2f52babeb6974be787397243b20a99f37b52ee77934ed2b6157ac3351b9c0f3405369885a54bc33b2c487200ba8a326b9d1674209924d3d50527517978eb040bf85ccc9569a6b3138f072084595825a994078a09bee86ed1e75ee9e759b31c491d9292fd2abbe3cba62661ad9440bbd392cb7d303cfab4bd6b0130af1c3336e2768907aff0633f18f9bba3706434b3bce7c75d6c40753b6bbeaf11c47773cff33b5067890fd5b8548e66c33d25906a066bc421617a909196a3986d362d3b80095e1077a5a087238054f2d89e0fd9a0d570c5ee2aacd3abc16111189aacb4d2e911abb7aa5099bb4a269d760174c324094fe944a4dc55d7708395f6aed8654831f7c3ecd85baf03c44390193634b16e1c91aee33979666edfb18d7713c547a90ff9514ba6469e0a6716ff4c0420427bf00b794775043e162e798871f710c87ff423d5580d873b7f624c96c7d63e23ea02b1c800914a5836fa73d7a748472b0b7af3099eb933f4a440ecd48262d4c9de4c044ee30cc51877352b53b0c1c14153c88b44931df12ee8520cd07117a1266815b74a431652d33074921c1d6dd6c0104aaa3f1a84e2f7cb24461290fb321d706113b172a2c7bdee921dcdc31640f9c749f4b27d024a7488728f605f8ae904571062ce9b36c009937f51722639782d56496fc056b06b8a4a6c3f402649e0c15eafa83e85a40eda43433c44b6d8f037487c9e1b66622c6798c94b9228c7a52bd18360e07ac4b057218469ac09b397477d7f5325ca47b901d0a5d0b6977194a12f71abfbabb3d910a8cbc52ca0dcb4f9f52d36c22b71b8513070c1c6c9a33397c79e4680862196cc1c3baea5bd04c58ab295b5da152a98a6ab3035b2c48478f30cdff392b47dc011e8fc82e0914e5ad3c8eaf0f76a57327c62bc9d4d63a647d85d1d66436cdf42ca198a44b31aa9f9d28b0311fb858cb5ecf74eb770f89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 +ciphertext: b0ea256858a3db2e3e527bc33fd2d678666174c55219aedfab289dac80ffca03e3731f08f3499c6d0ac86b8ca457762ec1a49a8895eaa6a12e64314b43339e7b82b48930f148cb42208d507664f0c5e3d66f7ffa556a7370fdc4a1e07616d0ad0b482f624ec113d2743a4bbf2880bb9235ae5502c994ad277164d0bc7f4779cc1157dfcef551015d97cd77c8fe05c547be971f1aab0f0cb615af80fe622cf6188eec57bc3778ca72858ecc90a05ea89499a5b2a6e40b56b61cddcb49327920682919eee7abd4fd4be3b7e9d53ded77a9e5a543acb6f8abaa0d330fa8916d18a414c0dd4883b7b1aa3b1198e4339247aca326a757277463f2b414d46bdf5df3681763509e1c55ab13918c4b1a78516cc86403ba49950d1065a07f3cb124d059e5fd71d0617ea447360d6dab6524f9db46dedfbf4eda60b25274e14001e5413bfe7b7f0f3f503721715a03dc853fd7203b57c45237257a329d6c2479c63b4772bcae7761eae739dd12dc65d8d3786a8b28411b296633cacbe75395a10b5debbec79ebedb3993ff54ff04bf21cfecd4df1f1d791f5171ece67ab4b9d2a96fc8d233a778c9a597b294ccea9893bd9af82b4e2e10b1c159ee3cfc0f5eb867fb929ae518dba18831905ce0d9d3547ba1807dca5434edd9bce57cc1b83b8e02db852f63294247656269c5787b809a9358f96faaf07ec14731569e4778cb02ad894ca0383daff978a0ec1705bc12509cf33ef87dfb76a897f939cd9cd67685da6be0ee5de1eac34df23b287dd823bc13e1984ae9091ceebdfa0f404b617d1d973ecb8680886cc6bee5bd142b7b1d7dbc611afd3d54d14f8b2af838a862982ed0662b7c35d4566be24bc10d8d730949c372a5878e714f4750d276589e35d490ebc84444bfbe3eb3b9217bbc011703471b2cd518800b4d2de71f406cb304c11c3c33402864f81567b5a8d9ee510c7393726a8144ce5faf17ac318c117a9f8dcc18b44905534cf88894f9fbb9b6075821b306911a4470771bec3a1b3ec97376b4b62fd56a51a6a94cd74c75b731c53029a2cb1f3473ea2991d5d02ea7572b572381bb8d4acdd1844d1a9399cd3cf7b8fe1fd0fd3dbc4e9b15c92ea94f1174cf5ac0401bf24d9b2bc83aa3cb6e83d047e2b977ae3524b4c194b4a45a261743d055f73d39cbd0fb6fc80e65db7e738a42b470a075ed208aaba0fed3cfb695e8f5a1d4443db9a1a8c0084587657b8d557635abf0274a00fb8c9e2ef84efb8115547914aad99d18bc91286fd881dac92dd2a2edf1d5e6362b1f2b35a00bc22199b80ac5ad5ad75537466edae8c45e92f0238dda6a2481e0076a625f1dfc9df3ef76b2024252d612926105301f508c045d287e379391e86a24e49ea23ba017c4b771b7b77ed8a43f0cac5ed918ffcf5067ba2f59e449ac8bdee9cc855cee5fef36fa00bb9cd53aad816626b4f58d8342900ddd5133cc98a746d6888b86e420affad19b1a20b7ee43a30cd54398b6b9bcc7d2788907a2132c0832b032b46e189a1526ab44904275b7d1ec753964f739b9e9c2241a77978552e8c4c1417e9126ba10bfb854882a778b615456dfef1f5c50eefceedc61e4d685e1bafa09a1f38109eee2b047b7954cfa0937718c21c7ab4c389a57083ef935cb73179f4355906727cfd4e188e60e23c1b7c4800a783b93a8a22f780ef49f0b15aa58bd6a3307d6ab2aa2d801ec897834d431e23a54a832f515522ef77f608a222bddec7c545873c9412de81151489673a8ed28c7b914edf285f8afd4388bfaf257349686d840cd838b00dbd9c8d156768bf0f0c7815d6b4bee3f866aa79c07e978a58e5c9f739cd7508b1d050244a309d98155a711134f4f55aa1c324df55e0f39bf71e21171e2e540ed16ae2ba99f6ad2cf267a7f6f5770a5f1a33a4078c0e9873b17e23100f312939b92e70acf195a38495102f17ab500f8f02dcbe6fae0b02bfb9d290e1ff57956122dcf411f1e6a41e47a0289ff3aa76f94e565d86a0e13f0e49e534b9ad49bf538e53e4fddfdd9b9655482a5d935c38949f5d7f2885be3e80aa7050bce4e5b39eea1f966452afad6749d44f7524d0a6c8906acc07fcfc85fc92b5d1d5dabf514ced9984925356043b3091d05e8cb55753e699f3c1cc0a9edc1c0207c8ae13c1c29ab76ed3a46893879413007d84ee61de5f9b6acc654b25c994af6054d092a482057a8ac6adceb +result: pass +shared_secret: 3f338dfaa091406b88dc39f5e82ec7582b90e4066882aca5ec4be352d4cff72d + +# Official test vector 42, seed: "44a6774b2cac02dff210ff861a090561a453db311f47b6fedb81811872d5d9489f5fc4103010139ae53fcaed209dc9be" +private_key: 536b38508a50a06441226094dd386686e461226c3a3c121f4c906608f7a78ce66d7f574d479a7154c87e1e88278409968859356c7b6dcfc0a9cfc473e670bd377849619887ab701c3c4a1d2bc0b6a9633247cb47e8305d983b80a37462512b1e587ab1a80293d3ec1d9c785be97b7960e96cb4bb2a70454d5c619022cc647e12b67f786c4f386f68c03caea65fc0c14d8d0809b5a181f3fbcc5446037a00bed867264f167c69152789e38399356e1eab187490b8c8c3c5b8f226bfa41877374d41972c151b11168c5d971740a373967492804bc988afc31e7cc195f71c8cb4a53c39d16666982685368194a70fdc0b7ea96729ece4085c6c59ae12218f649e1552998d571c0a41503fb278c2195d16f79012251ed5eb281ae05f88650cb62017781b7ccd534a0646a4e2e2a4a8f6160b64cc3aeb4cd78c17f633068d299b286730b2db36f2963ab421b0f3dacfd18a5a02aa807b47231001ac238c176bc01646541f465b832c448ad4f157093c8d26b0b1da121d17c21c71c64bdfe4793095c38d930b7a26a85c87c5b87821c389bc4f3ccbf42424d994754073605c166731a48923cca3a30ba4df4c2ee7457d5feac30ab08b21b71abd66c8173a84587a047454afeea38e6ee12936743195eb79b6548e73822960c7428a7b36c75b5f549b66f2b30ae3cbcc4f10cbf672817b9b45305c7cf290c4c8c60aa2d443b03a6418b8bb42309f2d912a6268260d35b5c2d72ab320617d114ff649308789a3ac88817498333f2c8e65f47a99755929b35af1bb975cb804c7f71469f32027c33e705c12e6ab4227f2bf37eb2214b66a00c556ccba44ee84654212495d96983ef16d9af2b848919005700f01b58b3d5667f6220983e1ca9cb8cc1ab09b609224afa0269f935d99d92535cb2758c24f08aa76dd1cb889320c187c48bf781a10cb3762e402f3e39cc151ad6b7c6c8c50b71e7682364314a64c6c8e799915d84f50b37403077d41c76062277b6a1354d298427c31b52446864ac075e4229b598a9bcac0c03ee1934207cbeebaa931c18870e7787f4718830a932375935759c98dd5074cdbc3a2cb6786ea21ac928b34d675ecc9affa0c8c0d341fe0588a8a6a398e994edd03786a167982815d693c9b149600fe5b265a94697ecbb5a9632f3a158e0eab8d06dc0bd176bb02172c68851237e7bd9592433cf97b33017c32bac8c719926c4a8cd6788f494806e7821edc0c798cf6424767ad4715cf2e02c806565b5829bb4d9980210566763999046075ad12612ae07d6c0394be26cc1c375c757ca776f7852002b6e1fa8f44db1e643753f1daa627799eb8d320edf134b5362a7079093f519dd20a9fb662cc47e373ee81a058e367f4124b8dfc7eafe83e2ed7693e46be701aa7a9e3ba45338aa4c9c26831a5b1f7c03227c97c515e8a1b154ea910d7265aee1c3f16198905e9c3770aa5ba924fddf0433edb6df1ac0d2e6282e018912db1c056f613bffc51efa044d995be8a83a5560a4ca3c554ac538a45060b42cba3255332cf2529795ac109db6715d87810e697d97a4c88fba86760460aa493bc25b2cc6bb79e3b1391134ec2934165a77f44b81b1416799d027e488450e43c42792c7753a8ac4805c13ce7a654b4a1bd881503a8cb3ed462e40a42f71c280c175663a64657fb61a9d8cbc58452141366a1f34eddec4e8c40b59d82a9260a68727431d8f36a614a8ffa681774c60587153aca0591d212bc5c3a22423267d4345db36878fc771c0319178a6936569bb778cabaa0e211b2a14efff4a4649052c60a9dabdc37350bb1c931ab2cb3854ae4999fc0a9f5d92a117783f975ce6d1297d7621a48fc0a2ab584d754b036a831051ba25b7b5b9e1442fc3a7f17d2710e7aa3d86b85ddf2abedc30ff756b2262a1d2d1165574a13e51373382704bc062f5b2261ed5053608446b7db9e12d0191e1a2d41a0adb4015696c3266c79497253c6bc51c20999b890bb21c8fcc9a786142e57009505694b7155b386c39b5c1b84f0791d9583d58a904eb66f461b2621f2c024b4a6f0cc1b2a7bca62f5378fa1334b7b6f06c61cf5362cd4e3cccea93988eb757032a844037aa0186df5703ee8f7c649c9785a26197c2593af38c8f56b849bd68e12c696825982b4f2919d9942ec240178848f68d31d58c83101c3626170b992c2ab3c181f3d58b554249aa9e73c9e691be2c6c402755ce0737ca2e2524ff59d3397b417965ed4c547f8dc97252c58f4367379f4bc9da75b64b4a40a329952623f0615117d28af7cfbb994b8ad70b2540978242ca0609a082dfd70aa5910778fb1cfe537c5c1aa5612029d9b972aec8235466098558c1bb4fa2b84e1cf9c16300035a57328b460b20facea43d5502958b968547b60a3c9255ea20faeba1f4e69cef343a6f3793d4b0418edec073909b6786a38fa3337c61c8f7af5a796f41a3731a4ca6096382423c941616452b6a5438977445ffff43d54e7b787cb9bc6c95c36003d87b9bf08934996f7301618c5a2a9b6d5d802d57c02018b44b0d95c5ac1c46b910dc518277be4c8960400b14c51eec975976975825b2d574965c338c121a056e2b9c9cd88ce4111c0eff01db722734b296540ab44a40214646c32713c87bba448d349cd5b160db48411a77593886c81ac1b59d10b51e8338a4178082ee858ff3987e58cb7e2a58cf23c28ccfc6141270c5ed0b883d01092c3095f0abafa2c43eaa7181136bd6e2b0c332b3e78ba665c73304df21d83cc3915f9c8073b7d6d907c13bc4a295432fb0a894958b98c9629d6a025e3368fa234399ad0aa5f8c8fb54b9af1d3a18d1a7ec1b22e7f5056c0d97595a801885202ff8c9ce2315ba340924d1c5e2efb2de7c1a468b684c8f7a363eb98dd4cce7ddab73447a5d263b2cfc4129be74174b50ae359c69f086153ab30038a13ae21ab5ef870c44490990806c4936eff553ccd9ac01d90b1e3d54bbf943b19236b935cafefeaa1059823b1d928cb77cbdc0ccff4024e79219852c0653ecaccc3d9292a18783c10cce69732dfc4585c8a45138ab94ef2c84de2aed22b98bee16bef556331e56eb43c3d92e55a7c1bbc0474251a70ac72d5cdb9b2a9ebb9be53c0cfc037c1678a1351cba5e91bcf7147002518b8c8933cca1c34f9da03d2b70e885059b259b499901b98345aedb9075aa1686e36a85c6337f01b4ea2f2ab29939eba618c68c5256eab4e6c1a1beb334f93e99bcf3cb31012b1252537f8d1a589430b46e487ad07cfc5c58a2865b0a92a621006248a46c837f095109a3de16b24b2339a509284c9055778816e9656c743a8929cb622f3e34f0141c820d231501c920581bc259c8be8b0928b58b6f1e2b34b628301230fb18c3904741a0f061cb613b560e972b406c44e154724f6af887a345acc63065481c4b468423742e742582386c00f2531c67835f3c679ebfa9aff871f0b006c461b760fb3171b99c9cc74a5378c3ac78c87c847a65f4bcb5043a551c223418114d58bbbf6aaa4422aabd4d70e7d78a61fb1af33882eb5bc886d154ee032b0cf300efbec2acc811ccd2c6968e90f6d146dbeb0932a569896f96a91ba3298c57c5ebb4aa130a7730a996054b9c058057fdb41825a2323799bb0a51fc0018428061ab3f3c12a6479c3367810acc4aa869867f5888a90a1ac51913292a194f1b3d8c976902221d3b0c607714f4fdc8196859c939b499e511f54e52d059a25449068c39081dd59624a6515e282935ea454cae482ca990a378a3b41e0b0adc6702a9533c0c479a4f6176be1a9a081a357f5bb98f835ed13ca29eb969f3a7c759b43464155ea78067752534d1044be2501c38387b31c662e6b9cfc4584e5dc43cea0805e273d9e56b71fc924204c8ad82ccb315207afe34efea97f72a21760cbb629d6391ac85fe28ac568b1b96ad8b888c9cceec93fc08825429614be352c55ab218383ccadf0bad13862778bca36285d67381164f5853340c0b9516ee3916700f4c3b8326e497ba7966456b6144b87f70c89cbc07a3a553c60b80e01c0c7e9297ec70e5a3017e906cf24593f86d3b6d1db26004b8ebd7047339468183c20df37055637995522a8322b04618b123bb3b1cbf765beb8cd17a302b88166fb84a9bf1728bfbc57853b7de3f113257359f6b7835e9953da123bfcf545e5e3541c8620f5f58872f1192b67424b5a9909d5324a342fc74caf906c69fbe3b2384a2a9bab153439241d6065e0f944ef67c4d6873635b3650bf4cc4a4b879cca63b6873c8e681982e4a183557e0465bb0f60a8b9d97625065d4727731e173977a95e7bc2ce3494b58071c1b89b1866c85ff814aa4843f7ab5bee6124c2166757943afa3df3d5f59581246cddf8777c228d53729573ce2f4f51da212385808ef436eecdb8fb9f3c8346800beb4b9e537d1dcd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd +ciphertext: dc5913055a1ecf9c95b554684a294b4a03cb3406842c86ee29ca36f740c42c0e5580dab3b289917c7e3378c630fe329bcecd5865f474a9470fdaadceb4dd94fe7dbe4e1f0cb8bf149710c96080d8752e5bafd195e916d5ab5a9af587645a3e982ade25373bd38a93a14b5a9f09d13ff95a2943229388a420e1592751b2adc2041091e265f940d619141cc1f358b91669b5018757a71bfceb76fd04700842a9b3a84a238e4677c1d15374a34c0302b0ab5d907e0ef4d43b576a839efb86df9e093dd25d9f4792a31a3bac22589bc68c500603afd6ec99044ce0f49b23afad853b45e1ebaf9f5c63ac00dc05d4c45cebf345146d1ef38640c8a3f641e21612203f503c181c31a43519ca123b3122897456a83124b4ac4ed88f822bfcf4fc2ba8df4aa9bc6cb6573b8585558775eff7e84b330f25a5c9c72d61b163f2e0448a2a5fdab6e3aeb4d97835a1aee23f56281618e6df02ea0094273728342f8b5651fdbb19e0858ec10c4d2e07535d3d09b7a2c91b786665aeb0b247ad1abf4bc3297d7de00d143674d84d2545c84ffb166d39b8a0664cae9abf621121cdd5009eaff969ca3d68a2f6864bf9aa13cc500a08d650914e36d22ba7e7b485c065432daf4791dfd606223cb66b6bcca6e90b3ef6603bcde3dff4cac572177bde955695f0d72bba2c0a06b65f22a622c9ea109fdf051411a06a295a34265ab8a733ba1af947984c8b6c3ee8aed5bcd25ff26ecc46b8e70528a38a86c1de5eeb6e5d37147fd8ce1f70999f5c59602418f16ff49622a3d0a5a02111f6ee16cef7207ecb3d651290434f962b2434e727a277cc45156e826d3f1d5cfb0b1508781c077c0199bb567d545312dfc0f9ab768e02db41e9c4830cf65d047ef6e24865f8a046748279ba29cbf078e05bf0c63eb24f0ee38de4efa3418f1ae1f925c848cfbe8fda802dff00516e48e5d77142f0861879d6f63292cbcc2eaaff23224ac5041a779a6911ceb196d4b747e74cf4b770e9103f0934d95009d5b196e7110532a489b78d6e6f084af9abc6612dc01addfe8387fd4cbfb826a816f6ae28d88a451db79f5164db33b82c0a4249005be545346cb91f33ef9e941faea2a64984f05d777c0a4b5e34400cfc8a181fb385a84099ffe714b91801bef493a914355602f07ae87f57bf07aed84b7bcdac762a670d6b6674b9cad3678b880005c515931fb4c930c3a4fe48e1d8ab7f35a352c6d6c63f122a01f6138b36fe0ba8d28203520481496cb6483005d9b00c6b828b320344bd9a2fec60525005cb1185b9cbf14b368a096c6a676a79869921b72078d21a3f00b154a467027663a1157c14138cd60a52f691e156c3407387575bb410301548042dd9208903ef2164522e32276ee0497a166624984747438f5ff6da89d7195c725fb80680bbe9ca6f98e2de2c791a966b216d4dc8096acc625193f550bd84000179de531221763e2fd5604b7a68b7df8e1ac43cd2dbdfe0046b040708010b7be729c6c6e705def69d7cee1465dbb7af3b4a3dec9340dbfb548b153d11e816fd9fa3f8356c0e96f9d1c11f72448b631b63ef1eeff4ffdf6f7d66163dd2f0ab41611addde395562d420cb16002516acc8ab40cf12f76f4982cae50c0685d70371b54a37716e5a950d6fce4f4de34a8523654e840396ca498ea90e044cc7fe019204133a55c902819496bd4818528cb364a5128ca1f13cdff549839669f3bf8f0001c0020dd1bbf91a204abd21eca71cb52167a058b21e35122b9015133a7fbe038cd2bb57cc46a06cee96de5b0f09ea26354553c6fdf4f00bbf750c16d452f20043dc5b58e8a3ea04a19905a39d7174cc8a7af304c8c69f3e3c7f92a6d450f8820dbb906c98842dfbc66964758bf1a60892657b445c9015f4b1f3b7a720c63454f61ad925a60ca5288c490f5f47de14a0b880b19fae871cf15e67e3d8fb7d7a11aeb91ef8fe0d957bfab406200a32d83f9ac31a4f79139005b8d3ff506e65556c1df42ed2a723df287890e11134c0cecbb80e44d3e7c1590258528e2cf2295acbbacb41a60c209e9e7d62fa70393dd3e16cc487f40e0425654fb451680fea99406974a01fbd4054b8d197b99c81c1d624aeb225a1c380aad745be460121886f7eaaff265a237c25566315fb8613a623a8de975393d58cb6af63f4243f12f1493a6558c33b383555076c1bbd0a93974ac38e1012e6cea25d54 +result: pass +shared_secret: 59c094e831e466b4329ecc5f2f627c2bff4d0a1f1f3454f5b052fd1be7d6358e + +# Official test vector 43, seed: "49e1855588b6235df2a400c4a70aedf8ab17b6e5e2891aa745f132fa2e7ab0c8117c1df37c39f5d57624eb77c2b4a091" +private_key: 548b6bf0069239d110a3699befec0527e89da2e3792653549fb865d1e9ab9ab9250ee00d913b83df22acd9b4b17a23cd1bbc9c0b46b5df36c3d5a636cd9808e08b8affe75d42dbaddb9974e8417c8cf14ffbdb8e89fac43330bab32c9bd8005b0a1c4948c04c4d110a6248ad52018549360b4e7a950a29a911e43250127a5362787d67ad2d85243ea92cbffcce1ac4cf4f979b59e47f60ca1156096c0f93a219328619fc00d2912d1a23badb2c5190d211e339bbc3317e1a22afe452492b75b0138600848894f3b86eefbccada8c55c73877f9d9ab985004c86c717b199a164c2e25d79f3230368216800de11fae5c2d8892c5f33456dcb2cdb62392bfd1b2e7658c979b87d287ca62d052e86a1afbd367bc066de99851331a00e9461adfcbc6b770471ac76bea98bd52824fafc790b41aa977481fdce18f91528939c202bce50fc64667fdc6c06e339b2ce3aced139739036a7141b1d3b293ee188d57354969485238669b74514d281a7a5bbac250ca154fe898e7cb42ef6670891b32dd97494f75ac96c6bd10682c682786d270bdd73a204aa340cdd9ba00162ff1787b81d2982d9a5fe90038537b65c5bc68bcc22bcffa87e1415b79fb35dbdbb6af8673e56baab96104cde80b3d59ae0563660f8b068d3049c23c0afb59b36d537dabd8c4dd2063afc12b19539a845b51fb4594ca58bf967a9b87a057f7352d40c0b8e79b71e86a34a79116a5e13ea1d4054a35a65d50a57b61bb8f203f8f221c5a79119f0b3dcc2974038865b54c9711cacd1a2b306188235f36a173e99ff982a966d4030a84220604717e8b7726136941d80d23420ff3c599b623276e510567b499da25abecb32a51165f4800b95fb66b6ac1693e52305f32bbb4d980d8a53d83d44f754b0798e6596981c0260300bcab8d55574c92a09ac86b277383b062857d1e4919e094b0b835b7848176a8984ec639942ae9a541fa0549d62570bac5ee458130b0bb46c30ff3c8c7b2d67cb21785b82a9367e59d38528c82694d25756890b789ff86b9a755493eea0b6f640afd8c26ad833be6014ebadc04a6866f2250c73cf5121522bd4d6ab3d8366e04676734fc92699531f5f6c0e595befbc425f91c2c978842595668415c59582142ed11418fe2983128959dc425b61183d2ba458c477e4b9338228b3ad1a16316ec976522b9eb95596628a3aad73953b2877a038887b96a991ca938aa2615751b22f9429a65a8ea4c637f63b313b48f29662950227b702c6811b75564e58d9ffc3609479ee75205171c7db51776177a2a83c74e3f61cfde821f4b60b433902542770ffbf45d668001f94c553673742c96b76eda9750f154e61362d4a173c806ccaf48aba8ebafa9648cd1b3a17e135840800cee9855e1f4623f9768197b2ac9f5525c534c8bd7728bbac26bc18aa5e412fdb92ed262027dca769d9851917510b9e1a66826cda147705f703512767a4d9245a2660ade559956f67b7a012df0a99fbf911d73367c0e7372e7265fce319efb818f139b84a5f652f183c7f2f68c1c252bfd69a586a716dce522aab98d94587dccfc99a4b813ad60a15c924c87a9b11516188c4787171c98fb11466c59b3c72017d9ac1d9e6522b52c1ccbe45ebe0ab6a0983e84e8bec3001ebfb845a14a47c34c9a74234676a28b33d2aabe157f56c26895e7586658649687cd7442832a1c1f2401207b51c676b90c41295bd609882e40a170008be7c3909318593857b602ca882a998ab0265f5e162c60aa090287a9e7a3627909743de22272ab0214816311cb4548fbb5b093c29ee57170121337000208759f6e224c6992c593337d62d3011e02ccd41015497190e9ba5df520b3fab78d68c2b0c18b72c8f67aa9e056a26ba52e32ad7c717472766f5be4acdc60b48ee38bf361b1ff52b11df42546e30a2e0c3f37456fdd190030921e301c555f73b68e5818f285714333b5e2818c5d460994985e81c09448f9a58bea16b87a02e4bc5d7765ab4936ae83b035a8878ce47a659778cad7248733772b52459744362a51b05dc4d17f0e6b72fd1119b1d24d378b6b50831759870d2a80b8dd5c67e13a30a9bab1cddb0d5007ce2d2c7f391a654ce2ce94a77a83035f7d059f4016098f21a9b4633a96d634c32419aa073be74b792b080be8b672b2c2247d98c617419adcbb5027b320e54205ec3b9c37fb528be1bcb29624f0851a9844b83c5788a2332c0148c6c982be4ba98be6d9a54623b8183a66dbb8456473ace4f18829a56d1523497e1731c524ba3545652be97aece915ec25cb8c18364ff961dad655e2d08e14293a77963e4154b5d52a6d424a3ff976b69fd6c073b7bd960cc397d7511f76aee624240cf6430d612385a21a33838d181c3f77197e530463e952662e512a538b81e72913eb32357577319d29599ea2ca2e088c91681ebb295c5fb3c4f11643be6686f62b259c737c4ed37b38901eb7a79d5facc426438f6ae228338439d136ab68ba7ecb760a3b45c77f186c177c2f79f47f7cbc2a43da4b94371e4ffc9f8d520a9c1749d5b63b01a2af5b7a10ee47505598ceba4ca724f22fc15626a5243895db48cd2bbee25c27b171c44fa09d9dac21a11803ce0a6492b72d16803dc793cabab535eaa44eaa14b2d81a4162c32e73cb38a7bc945d0c1d6e0022e2785093d66c29e31616ba7ea0f58def02339ad231c3806600ba8612080d6dfbb50353b0fcc98dcab2c07473b34e05a556d777cb1982bbe521b1cbc58c680606f352b1560e7e4589b905b50c299ae8d3328a3729ac0420c3d23eca06491c43ba8d72af0cab1a869002434476bd7527f27b751c9364670a3730c52d514454e03386c66406a4b4315c8201db561e9b79c2ca4c60b25044e6bc1253465b4d0206fbf695470b4b7b8bc068d391f5d0b7e9d8028f1591ed916da33157cdea92ff46ad98d18e1ce6c4b2f75854733e913c5ad2d13e23ba51b7f8c2d3cb0edea793b55acc3995c97d3c65c0981f12913c88b56f62623f41e85a84543d4e4520c884981a3531d200ccbaec0bf1096fa7ac429a9b3bc1a2b38de159c2139361dca3ea805d97e67f61d10c0911674fe148b33572797ace2138ab478a51057306f010661d569ddd9a4e55e73f67f25f0db09d61f1951279cb79d814d1a21a4ff311be441bbba97d81935b31bb4dd558544babb18175b893357504589fe79170199129e78874882aa89b87c20bb03591f321419a41c1a78f87016b4e551c6928a37fa7c60708afc03c8b5b17001aa3088dca6ac9ab93fe5665f1781e36d7813945471f6945198983815c2737713f9c53a8e717bed4d9a7a706ac41d339001c5d74548388a2439cb0142bb6bcf2e23442155adeb4269cb39432d31455f0191a25822f35c889f2962ff081f1c1b5c55b9af0b14a414b618c7366fef512d94077470440fed7c2d101b5c9ec7b79ba17cdc14653b6c3179261a9401a0b20bfd201bbe243b8cd1322fc872c4bc29889586a8e302ac26b043b605c13c1300a68c95f269b2ef49402786819668e964c921f765abf805477ea239d3b8b203c7db303afe5a8c70158874981c663f1b3f8a645991cbe42a2498beb4579b314918c85a8388f31e628010bca96858a09e49365725b31d0726c0379709529c38b47e15678ac9625b28a763b579af908cc1cc45a5ecb23e5a6ced504b9e3101cc562be9714bf4931cbab020fa3e10456d23d2d01af6dda8dc6e09ec6aca54a3253f5d905d4b34b66250f80324060b1609083028a63aed377a7cca6a929da786eb080db750cf906c98eb9a105f288a36427519c0087e300705524ac343b2c448ead7802404417cacb6ca5a398c7e9c2a7b2855fca298ab1bd0fa9c23af9c5079496dfb2996a3738d5ea37ccbc24f1744eb9f5c672d74968c872392480fba91daf0c60fe96b13828bbefc6156f860ca304970de5695553a631a10c799b29b2585652065f33c6b53179bac6473b4dc2b277284181c7a2a9491ea422c5087358ef8835bf5711df91b38ab90000d324e7b6ce841830bd952e18583eab6b6a922427b2d094ea633cda75c94bdaa1a3d928fd2376a876ac0306b1ee631fe38987e50421389cb224d4045e260a9d34508d1739f223765a3a8f2699a8919b30f80177d9e141d7d9630b46cf5dcc4ff85045e62a4f0f86bdbd6367c1471ac4b22210771eb636c2bbe564578266b8682817a9118d95ade51031def42e0d9cb273c03e3f93ac97395d9f09be36eb8b2c21a4c74796ae501758b222101634d1668656b02cd0026c9eda07c0f3bb7d99b7fac6a78793bcddb2a18cd4262039723f41223d336451eb31911219750098125d62110dfcb20e30c6d5cf75212b294eadf4ac273ecb8bb5beea59108851b460166dfba8564a4a16e7f53e467431528a6e2d8b62b614d427846b701fbff5f48c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c +ciphertext: b646b26612445d07ae9377b787af734d0f1bcb2ca61f9392d5b1d60cb66fd916a54da0cdb9aa35d59c7fed3a20728bbdf90d5f149600cc7bc4e36e577db66a69acebedba78142aa18ebf4c8e2dc5b1cb919d37d171ecf6a0972640e5ee2ec09d60f6c8574a4b626dce674cec73941c15bef59bd002a96a0d5c47e5c8149382c1149c85be6d96b0404858c1c5cabe68e22b85176d4443d491b0f320a63e6bee2c0459fea321b4fb70313fa63948e7391aeb9b9c28490d80b1376b852a33c7460a8227669c8ea6114665c91ea9bf6c90d7d92db6e8365d42f325be58a7094a40dee5050e53967481253a929966aa469ab11db9c3a388066284a5aeb6fb209a13c888c1abd2110d695acea81487cdc8620be72da3e8dc5548ad50e8da415238a96fcb0504568c161e9ae617b12409b25f27f2c6f3554136a429cdba75a051900e8100513c02cb87a360d38bf0ad7c636898fd98010d68ca8377c637562b42e7327e43cf6be833c1432155f86b28a0c5c7f70787fd021a2c5bd689f79f8062c94daaebcf499e89b73fd9217c4c428ae08db840738e8e3c12d13d2205b3b29ee6d4ba9c3593346d04c770d430cc3b016b6bb024174c5a912639f30f1252bb46b82c1cfe20c923b5bbf3ee18c072fafec4a3f332a80179adc86060b7ad3d5869a2ec5c88b10058f86f27cfc8d6bd3037c599ad60fa9ad7d922f788023bcd585046f82bcf162e741b1e7e2efc63afe4236c2dac92ef56508a7766cb6e3999ceb69a4379bb9f0768e21a2e49b145a028023863e202aae60f2c9bbdc34d65811ca1757a30ac7fae86678085a2b1c54acb0ada5b2ac82bb6ff15a4d08e3777f3fca2ee1b9ea69c4ac8eada9213aaaa0e3c49ee071ab9b7a337397a3f2d8c54df4ed13c242521b5e3bd80a2eb844e174a04803c68f8c45e0976e0042e85796346bf7e027f71d24b6ef4135ef05abffb64a2a8a92bbfeb01b733edc27c03a67d8f4c369080835d763a17f1f210b55d633a8f404d361c8de3c81da4118ebec9fb17b52a9d994e47b93bbe01a70b384ce738e08ce7b0b12f2fbf5a02d20d170dab8551467f00479d0a7ae184d385f6d74ae18f6329e149e8264f5f2e0b9abc6afa0d675af74c58468b45e4562deca3168a1e8d41865da855a25756adcb182c307c0c068cdb2ea292968109981d72e94871fadb275981a486dd9a658764fb01c8c53ec70fc52a90c4eab76cda5c3f5283c84324fedee0fdf9758e5094c00f81c7d9c239797abf10fbd53138f4ecdac12c382bba60fa766c7efd6482e4f1f66dd4348004e02209976b8934266d5360a85d73510fb3c40848f40f5eae1af28f85349510839eeab1beaaea9a5b197a60e8e130618e08a203d2d633bb88491bde3380271cafd119b84013d9ae0d373d2f6f5299f820d7aa29bc457d2ba102ecd9591e196ad1ffdf95fae9ebdb79ecb148b3deadcd0754bf9823a9a14a42611bcf20d77e8aad7d65bc912b2df657fe8ff43cee9a7bb34c1e119e8f69fa00d6a58c0543cefb0d35f970c1f349c7ccee8dc22a5c0fb653c394763695baec9c7ea42a8e7e7d3559bbf67ab7fb57707a48470fc54821de07bbc006b3ad877d7c660738283043952dab37b5bdb0c7f3e538f987396f9c65774efde07c0affe3f69360789a4ce7d681f0cde4d22361d07afa2b1b9906dc67c30a4b5da3d32274227768e8754d265139c54ae96207390067f97c0e1d791a413cf4e02f0cf9c65aaddc8d54dae6440786131ea9510649dbbc7aceb1a07be479cf6a7421c6ae1ae1733e3b19e19fbf3b6401dc6b4b27ccb1ef24f4525d88df1fda4f0b18d21ed6259a81572f8d4136c3d67a36f28e5cc16535afe95b1dcff21694c7a62b021bf56bde5a31eaaaff38e60ed4861282ca8d03cc5a869e0fd6e61b3275ee433784925f6bab1a9734949801dee45a9acd7bc074113ec9c248e4011646c34a321b0a8c566b88254449bb1db9a8a796ccf67f1937bc9624b7226e0c5e47edd520ea4cafcb0590b9b1129edb25c1f1ababc9738e7e7e0514618daede8c10f7ac4a26a402fb7fbe34b8c659c781d17e3305d7f29c43a4199d69de39c9dedb2183a037d576e985d1adb56ad3e7855e9dcbf48cf19c07a1fab67e3531d70c28e8a587fb3a73e2de6b0022e6ffe83c485e4d3cfaa7f480a419f23f0494abac17ee44dcc6caf8e196dd81634e1f07a18999b27cf6 +result: pass +shared_secret: b2420d66a17633b60ca68b5c7adcf36ce7b39ea418b39e63bf68288a5af09112 + +# Official test vector 44, seed: "df0e41d2f6f86c1f79d31fd5878e7ab434fc0af3a0d5f47d2ab3fef31a42bd949b0e3629df9f575befbb62e829e51dae" +private_key: c4ba61e90c3a8868850ff1c4662226ac4953de3553f0701c404618bc69c0f57b527ee459f171bebe70c730f1841ba702f182aed1ab25ae59cb9e793d7a22c4640ba87e78433b639bb061106c0581809675c702596af67e382b564b514c4d091a13f35629bc71aca95a502239bbaa7fa15310ae31b7e8b97ab3ba783a27c8b9eca6b9b054911c756085002a329063067b06707a6d3a31c27c234fa36daa420c5ec0aca490c0fb66023c34064f09832d43b465dc8f84572130270599c10534294ac0458412c58273f49c39cb12d522317c980670692207b3af7417bef469234ac081b1884815972c7fbb3733e22d8a164c614ac8546c14cbf05a6bc47d6424c36d3b106fb245ca335a927538d227be6aa1a4dcc33bd1c68851e18e2ff7cc7ea93104521db15c7f11041676855e0bec2b2f9b8e9f63920858b3db1cba7005c5e21c4effa94427d155ec0c1432cb2679c45802795e0ff13674f15be6d60ed4326ca4f230d87a59bfb268f08362a6764aa2402e270172275191649bb3991200330a62594aacc81a8fe9e5004bd5ab8ca4bce4e36860eaa9e49a2f77762d88f0935d6563296121764aa34ce64b41418bcf275b8e5bb2a25259669b3010b239f111b2f6584c3ee9bfe7608d12639e72ea38073c9c45107abbaa5c673718ec2c4a77a19464209b8efba54ae482731bbb3aa036a67653ffdb0e8741c678b88d4ad4647f8b39dc61a879eba65db1b98281ca641c954915a916b15307808587ec3d7248668b1003a1612f9ea13e4ca7b660431a7a55199814ba1e757ab08056b7d9c13b0334661839c334449afb77de61aa7caa28ad57acb2ba0e02e76ad9218a29c6c638390823d6ca512139d3f8826b5c176da373d7754cdce78c614b98a59b4bc607382f103eaed7645cf791b3fa3374fc1fb16493658a7885735f7fc38fbd324fbdeb904f17b7a9fc7af45013a0e8c1d3c4b9b7ecce171731ef1c97693695fa775ff0452d457b8d7f17bf24638112391d1b4017db07c3a037845722aa4fd72a0a079803102b0cf49b522302b37a46e482914ac51af1f007ac91a84d6556a176affcd28553362c16471eaf569e666683ab71cbb0748b6bb026d6b736e68203a3103940315650c4201f31bd286643c635644a567b2d38b1c6746757e956c663cc2ffb1230e7c20e94ae939c8ad10b9be3887b8fb7ca9ed360b2295f03725047cb8cb771adb18b7f1c976cb436ccc0c675f99575cea24675c358c3678b3dfb345100caa3d11a4fe8a34737c4c11131b7e400aefab6380b4565326f1ab8510d4210e3335a5ff07473a46d9ac73974aa4c8a10ae5851addc7b4d3bd9823b71aa1c0a7f2b4746744bbdb9335d7b161f55276a1b63c3b5b4800d0344023093ace786fd99c144655d6af601e86336a5e16e6cab8b772a39cba32c68e84390a80d62701af5d5822629a758b49cba714507c7cdf2034cf65c4a0601bd1b07b4e1c1a70ae555d7368a568aa0e59b5494239d2e25a9eaa34bf8b29b2fa31ef8eb606e69602ba0a4024780d5c29cb6c63cee9187249280ea56207b4628f8964579bb878ef25aedb180931aa5e176ad53a890b3f705bf626861265bb9331d79f66b87e96a6724634df6a35a82979a4a2b1c23bbe585a001a936d548599cb82c8e362442a6481ad29478ec2e389853fdcba3853629630030c9091e8781a33287001a6abdeddcaf69856a832cbcdd3894f09690b581ac6f7951b7f3558a284c8298225bf74c6847c8d834aa4b118a37fcc87c44749031091af154b6273bbfb4ac7a3b34ba6c5642a78a22b213428782eb81194297a88c1c04ecd35d6c548289285999b69ac46346127aa097eb2a08fc1bae1a944ae83bff25949e27af6167b73938147bb97ad5380f599822f788508eb73563e82e73c9951d5c94428a056939b9c5ab272525a7088977135008b0c5181bfa27e336457375b1438914bc0189c00bb2f07c5eb5429ee6956943d4c5aa597cf1376ff7083da68b7c1941529ff5509ca82e3a424dcbe4673ad16439ea874786544e7181bb755250025572c9bcd36c28338482e31449a3b6a917c9947876a702b8567327309b3812a3aa4bc8b979168bbb2db72f533434808cbced5ba7f567ac05082db4b029512747d203c84ed6aac81245522a4d30a887b8f44b4e35c7f9aab819e1981647b85f7b73ac0b8ed44a9ebe203998771af684086e00a0ba098841e7979baa20d82b450bc35b88884eb935788dba47bc63247de5cf5cda3f069a02874598468c6651842e56464d9731cc027aa307da811c8c163d62cd057863a8c2764f81c889d718d10267200c8c2e7877d7d853a73287d8b1aef013c715f69083b29a589b8e2afbc72a76587032936899244d435f1df58a957091241728dbf57693f46accc214dcb89fa35ac97c77732d0768e11b15b6d5c915ac78d5aa17323bafa8262f75b66d06f55eb015a5774a3854d09bd130473295a946771652176dc0479cb862cc7b93494df1c815d754f86c290f44c1c828228d48a5573a574a2039dc9140ee8a55c6abba1986938a47b0e84859558399a42ca013450033c53b1e978d5a3ace10a87761d51a19bc349fd19f555042e0e2806c1aa76436bc32831f0935c51384b6698a432fd4a014157b8a9858cbc216fa784e66bc09f02258a9dbbc402422cf652a3e430301678283d19889c7b61226951bfab2814a7c7a2899f83670b1a396f4d260aa869feb409b0af63b0b2438fbc72baf0753fb2c7473d577618109a9d2c2a8448a0e756b4402c7c0e280fd1160f20b9b384224fa2ba06ed2274852b15e1b35851ab6e8a5bcb646ab45a85744141970f6c5af2720fedb56abdb65603588d73109630baa73f773f260c63d81c9137100b1322d7c21181285b773b7c552a4000cdb2830e28daa17ca1db9bfa0226e2c1ca720e7565e80bc08f1c742e453fb2230138bc430335c2965386323b269922e5713957057311ba3394320096075b492b641369236134095d728341db3aa13ec453eb4b9c986085e23453e878e42d20c9af4376d092da16c8a9afa9834cca64f16b2b1561a4068c0245c4b6e329fcb1c0a9b15660485672ce70f3f17b486586597e8aebf9987af18bb2ce3267722c549a8519527515f4129ba5c986327996c38babd95cedfc1305f4378fd2c8b6761a24334192d47596502c86080bb202946f34c08d7e201a3ac937844b181d739b9807ea3d6792cac7a7a1b4ba7fcb2c5833cb0101291523208e7bcd486737b982c1136381be16f75202757fbb86970194c4a32eed31b01ccc5a2f0534bda8ee61b0f4a2023ca58b415e59a8d9bbfa9964cf765b31fb0c565174bc7b006855c9747a66747e18e954444dbaa8272a15cae2b7749b08df9811e8cdc01fa46a362052f50aa06eb2249287abfda0aadb2e719f1e1afa3c29d7c855a6ca27aea661f40210c1c629f611343240b3968238746a245ace3994bf88b46893eff1a3a6096166e0bb7341900e73bcc36bb92d3e539e456bed44b84cc00bd836081704ab2e4065559896657ab31c60c3564981453b58bc7e238fc5b778cfb4aaba57417009a789a13bb075b6d9541692b85ab52961fe887c29289923797d18ab8c9d35230624b004457f749497267a2efd15fada244c1d35c44109add503328d063b7e8c0fb8c66bcb42c8b1c1eac421563c232e579431fd9ce4d572904577811e23af28109b2e419515260e0e1bf4a969d18a4378147c0334a5886046833ab8d06c78041c6b848a43810208a5fa0a202ec2320f4adb15bc299c6649c694f76311d8c0450ca829c3545ace79a33e0942f133c35e1e6be342c30fa9b8debe6820a3cad5a2995414bb7f0744a22194435ea8e5a534dcb8c754bc75444093af5d72490a3468bd06bfd1442870701896a4f1fc11fd5c8c50580cb06192ce7b90f81d920a3bcc52ed02fcf703428c22c8ae25fa56085f8033c972b47c61998db005b019032d7a83660803cd39014bb3165c94b9dba1c6e38abbf6567cd513283174c42bf4605b3809c29dabf149a650bc906a4cb1e33a469bff3820713040aa067701282cc1c6826008f8787cfd0796bcb568210e088f649349ad921b9349cd4998189b4b945d92ba6bbcc972155d26920e1a756bce6441748c41c6c7373723a9c00434e485216d92dd6884f6113068fc2b798790f41bb3104a513f0e413ced19303f396e5f7c72612c4f4112f41518ea77c850f7b8e64d1b6df73a40f87b2945b14b8275aba42b455253b9d522263e4bddd6c24222062ae68bfe5ba4193195ed026712e729d59c7a1f519a9c65c566a51504cb93355a33d83acb62a268e02874c67c89530f914761b751f03f3d2307ac9ede742f51bce4342afd3cb6ce2ab83fea96998e3f52b93dc875dbbd503bc67beeee7f1e46083868f96edb9ec3601dad0e40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd +ciphertext: 6a873bd2880d314bfcaf492967c54b83bde3ce79b864c718d15730d64eb990de99ccad48da0afa4e66c505c77656fe822218672b77d28e4b14f4b11aa9ee3731d6ec00c807104bb09aae7f2d53b91fa4fa9b651ece46b5d0199054f0d9b4646845d2fcddfea617f70c5ce3f40ff7b41bf181223ad2cc1f45a31e6bc9b822f7272cdd80fdb033b36f4f7db10b874c123d1fdbfc4fcdc167edd8fba63c519d66167bb44c70ecd648362d811f8897ec4873fecf69ec6881432df9e2d30f83a5bf24bb43314e0256065824746883cc13908add804632f501a0be1d6246f67c7fecece41fd4cd6670f2e12e238cace966f8b83e02cd8fad38b4e7ff7f6bc8b2f7c9c1ff7f6499305cedfc7d472e89df731739f2a9ea455bdf110899ea84b686b668a1f52c6ff2889f565fb55ae8874efcc985efe688d5a9f52da28ad4fbffa0c9d196637251e91de6d2d56b9809e5040fd0d43cf756cfb5cd14b40da7f2ed1e94aa9b384a2e59fa75f56e5f5d2c441ad4bad6ea25c76811b3ce8dbe2d7d17dc830d8dc57c2e9f110ad2a1aa99861cc7312b9f0bff661e12a15409cd6d5536d699bb099a26fc60d8e891578039c435fad1fed7bd0fd13acc016966456168b51e533166decb49912780a842778a5b35c638af3d4de8d35db9ec0461b2bbd585f756c8fd8b89898fae974358cd6bd74a31fa5e223d7925725b602d44483bc74ef47a32ab444f7108a7488a27c013af0dfa481cef8752e5e0084df001df2b1a8022428c9ba7b0289f4a3b8df3c4f4a6a98d215e1874abcc6b5094157707e015e79affb5bbfdc272e64736ebfecded3c18abd25da44a8df479489b3b9a9a5ef178715e1e132ab38d5a09bc66e68ae8dcf464ab675cca458c608a9323f346ebf6a5c0d9eddc61a71c1e13f85069a2c4586149702e03a9b263ea68964a7edbacb77e59c4873fb35fedbc0b78bb97a172a10148184efbfc0ae272e0372b69482871a2a1a04f7da28198e7cf8677bb7e9874842d50067e247a506ed9edbf3934546527345599f15d5dc8198b03ec44669bea78f489425357e2e9c5536ee9d79ab164ddbcd3d78c1b90dbcdfeea79815d3f004520ebccea33eed44e0a3898bad96f4ddf7eb7abda800cc2c11ffc71c30d8ce610d9a6e43e924d0f462d24c15728699105cd30aaf78f5ade69bbbf7ab2b10c78714121abb09918077eca882bc077c235395e76d78afd271a8b27899540cd4a8563d8c290d27f01534311441a0aea72f6b23761ed3745134e6a4a5df91d30d961ea410e18126983aaa9b380d3510afe914a56668bac76a439c5b610abbeec3a213033d642f2417aedf224a8ee0d96ee6d9a668f5611671ea4494cb9415f9bd11093b8befed7f38b53b4b7eb42d4610af8f02af8ae4704257323ba7cc4592c5e29810eab67f6ee85d14119a85a7302ecce88e7fe5a2ad747326fed534fcf0801ead1d00691b8df565c14d2e303583fc635b6aa70dc12ad8fb122b8cc7e991907966288150affdf1f507168dc8ec732256279ac77925679540a08228a74fdb8c8571796e0f6ac176691f20850624d5c4ce8276766d628d06d3eb40a96ec70a85701230cd39ed63a33ea9c6cb73e46c3dbb114d7294aa65836198a16e8742b1b4a4484d80c0d79e91d5330a067d1f2f7ea8e9ebdec57f88c38167c5ec7fc5f2e196fd5dcf02d99dc0e65811472feafc946decd6737fd7b101907fb6346e32ebdfde0d98a241cbb35a4b28b41f6abad162ced0c5a55ef8f634bd058d1f96b05dfe051a0075eda9fd77f119b861026b8af09725175943d3f2ea105fc143b962dba902de7c5fa959d1900f0eda2c5eda6b645c985fd49cf6e98f259a1474500445837797a6ba15b92abdfee1fa409494b277a68716d52e8a60aa4e80c9cdfbfa41e9d326d49997b74a081666eff4dff2cef7206957ea78486f3ed2e610431783145bc73753380a7f82b13088409871a5e4db16b4477e8a12517d05720e2e77646de5ce1c1a9e7f58b06b2ae24ddbf9f4fb281b5d0302cb8f7cc96a6703280e7468808911a28e93b99ea06d135c7decfe3c52c877b781f9ee49bc382f5af000d350ac4f4e12cb50241180e6c28832cb1aedb279be2507b6762773da39185da073d695d289b082d777c052a620bc3c3d41021f3516448f0533cda900e9b4cb05f66ac01fa657990a4f5f474981df918af572f01ffc3bbec1126 +result: pass +shared_secret: a108c039dd241e403afae065b37d609b13afe12380471f5b398f5a66ccc78f66 + +# Official test vector 45, seed: "d3c9ebba6eb03ccb5c9b9d2c8d7f0cfbbf50841e24396cddf0e56525b38918c2fbe6c34cc1b93f7bcd4f4d5777e1a488" +private_key: 744900d5a1cc90d1baf5c17965a200ad563be74168e130481832184937172b780a1cb0249bc3ac8fe09d7892709c70bfd6496041ba834bb1c291d5a73368944d13561790a20603bf8b97929624c5f586ceecd1636b6cb09c99807cbb9befd3b2688a29a63120132b05b5420a0d984b9368338710b29a4c5a4102b25ce23414e3563272c2c91a33467aa665b40b7a18ac434ba8e1fbae3a7cc2493b531c6b642759625009cac7751496b18127d33d4733af3fd461c1cb7531223945eb1be69c8486a35bd49ab075fa6227465f97ea2efe552db4329bdf66259d091956a41a1d938940998c8e83329ae0a8309b521af642b9466aa3a52a4572a00cd6acb467bcd0a0551f4538fbf78db2e0668f47ae9f65094d4a30814371e20350066bc797777d79135d9f104f773289c2c20c55d4bcfea1a674f454c87ab9d809a1ab91a6e13747438a7eb7f814464426cda6c10d9456a34c66dc37766b87cf01a4a38e45154bf96d5a5617a9e3a353a57706ab5911dc3f50a1c9ccecb4590bcf8c4765fad91ef119b00c027cf5f30bcba608fc4667843891934935c49c8a945553575c67a1e3c80df48bdba8778865ad972bae7733c8c4d2787609d062b16aa61c25564955213a06e8d021d631bc032257d0618d1b0122491b8c9df8251886a2efeba199a850ca41bdf7c0362293b80a25c247820571eb6d6d798da2c207115500a1441977a3362a2c1366a15cf60a6086258d35a695690a53ee6737cc76a8edd47795ca913daa42d762996e4061f8353be362752fdab69a571fa02671432615834c8008284293c9c83ca3b1eea330a91a7522aa876d37cf7da439e2b31db5c903b17b9449e397659bc7dd668f3e9cb2cd877c57fa3ee2fa9a3b3c9d22e5c02a48ae494142e5d56664ca0ffdd15be6c4c2a063907e842b800912ddc9141af93839b17f37f3725ce36b9a7631e6a002a7676df2d7a72a740302fa5ba55a41fba7953a5812ce30823195cf26b8611c401242ba90487ca730472f30bc8975d78741051d91701b7fd707b7846ba16874a8984446d017bbf2357526a4882359edda98570b44aa2b1d968c4a2de84ac78330d2d2725f7a317c093f42809d3d26092936330eb51e93132c975096df35506fbaa429c67ae6b75d24b9a510ac2bee812ced4a732fd1198fea3e135ca2a97657608b6944181d062b1df05679d8d847e50a8668fc8238caa884b31fdeb3adf0f890a4956887417d00376543fb8588fb4433156ca8c7152ef466b9eb7534e9030980ae47d82c04f55d5764827fe036fe58c6ac9aaae51c115ed619e5db99f3f6143354903bccab9cb5448f9a8e76c3690c76732db1757d9742aec5334f79c0080a9c0f251b34f637f80253152b4c5d8124f302c3f6e15ea5d09758e42b99f15427ecc63976a0315644ed8ba516429a1aac16aa2045fef31a4a68c737f206fb26667a403c3af01d82a191bef752976c1962b53b0228513a3026a0ba7358162dd8885aa3dc31e45b72346a055026396b405ece0579bac0504082589023b4e0aa77b07366ecd188381ab2b9ab47287c44c14a36fd1095453b2b3b0a816af1c62ebb2e023247e4983bc983b867460158eaad4876551638ba5b528e0c74b9a081537b7bce3e1540062b93fe447873523766f2cfbb4c46e3c3751057764568033942b89b7325e639c318f63aacd82139192c81e45f4484073a540df8e459fbb9afcba59c167a1ecc71aae7473c8d9cbfe41cc27db6b72c804f64cc1a015018d212c9dbe320aae4423596b4fd544c6bd16af096af352c18a8dc1d68fa29df7a454d54b92bcb21a74cb107153b8386285c0479020c04ac0b59ba8392bc976c046995ff606f2aca215ababd04f031e52032f6c08e63149dec0a590a4c49ef55533735224c341baab9b0fc36771790c0301638ad09882634871196b55e87a5e7b9348c8a83d9fa0b1be81232864342262f57f063d38940947b48ae840dc42b27d52a01f4c624196c9198d081992934777653fb533e525cbec4591844485ee6a457f4b31ff94927713c9392627a0e676231318f18e084cee43501f0bbd708196dba67644145e7561fc1fa2c5c4835c76a5264a25d96d47138e2cb3d75297345910c164ffb30cd4c26cd1189264a602a3397aa6afbb27dda27a6566e9769a5f39713c311077c359f42971b65463a8de1aed9879abd512cb55b6e44f5c690e0a3f60768a778cc9cac5ad6b897379507e3ccb994956284a7715970b0e3f6189f0c66d99c667119b82d87a6507141cfdba46fcbafa8a2a1352139b1024dbc64388a3275f34180ffdacc380132eff35eaf788364f3aafdd6af9c02cfa396592282cbfa110792f87b6182b2f36a0a895c0791276d789976cdf09d2c16a32aac669647219086bd36f6bf631392510c0e0970007a88378b647b52fc20ee9148cd4575bb8b31b06449994098bdf77680a48ab51b8e5732545d6b87112884e35a2302f60358f651f8a71c0789018dba79bf5298a9f6ad16bcbbecac4f0cc9888cf55bbeb38264c885ce098fa80463f63806a544bfc194b77895a76b22b81b1098a8c3819e035268d22f4ba0339067ab3bb30e65506a86e74fde52afee944df4e4c745f9393ad59117dacf74a407c236b8b5a2aa11b1c9f86163df31129e885ebf68040f822314c2bc4dd12751851864d743ea49b68a93212d392845ac46f95715796a488cb44072ecceca89878f37b51d662d783900b6341a65d894771476fb942ed058b15150bdc67a3b7f4cac93733f735b81f8dc4aa5eb1288d761b0b74238a5cd73c8bd2457bc195b785fd31804d654aae06eaf5b08a365a472503809b416904162c17942fd27671989c553ab5137488f385b7b9519a69cb496444a7a2db607adea5c3e128bcba31f586c5603f953f4fbbb4381cadcb88d6aa7784562c6ef302ed398cc2113abd257c9554818c8175db54baf20024978e167620b672b28bf24465d2cb4cfc6c08739fb9696bc84fdd76b136b39b85c7deb4c10ff59337b4112e32bb25a665e9cf624baa86aacb2a18ea3cb67462874117445f913558c32e5eb7e1329cfc2d99ca4d83007467b80d74d2ec9832a5785fc7293eb466d55cc8904874bca5714c776579b253f86b17187b9c19d702ae65aad9d7cc23afb041e593bc41308572825a76b4dfd51a2bafcaa10390a76e08458c384cd0089668955fcab00082759de9147bdf581aa4a81f8f82bbea84d255b43e30b6728fb7a705c0aa96b794c7ca28730c6a1b1b2c1040fa24a98ac862ed74453c03a3d842cb0bc87409a09456c739ea08717d7a1061041c424d13bbee299c1ab1bf328b42314263f186e5b198bd5b1712c04402bf849df6473b8e78c4009c944d05277c68d6eba8555ec48139560922a7a142632d4168dfbc6396d0046c53221d43b7bbe01bdffcc672f214217679853d3c0939acfa7b45ac81b145e5bc7d668a4466156faa6a44ae2b9cd6caa5d42cb1c2ac5aa847cc6501ce998b2896652e2c901483acdffa695cd1625b124a8a88490b12b72a5cbcb67a29aa955247fd17ef46606ab5b5fda6ac39edc0128e46310903b32435e2f02158f678462f2bb230246455b7d307b5bdb40375c6cc507987ef616816d3a97545bc0f6e44c025c961cca33a828beb6480494cb9049bb2e0c8734437ca0745b55174b67fca6abe743c7f9793219a19a88298211562e7ad85643b0b680c957eb6b740ac142276822900110f3998f2b043816c9216c416d64e482dc1053928722efda8c35bba98c563eb4fb280791a9a330968cd29360860737d3cabef87d158419cd8794d15771588cb049f393d3729fe3276590488e97f00e63b6cdb760c22fb853352c2eaaf7340b204d6bf8cd186cab5f786e7f967a4d147686a690ca7308173843dbc0bb17fa4ab2788436f43009827946265e86e782b97b2b27b87ee2c0ba9ff23d6d620ac02124189bb008d54da8f0118a081a70040b0c722a7b5a97194c5641078b22446d7ce9b66ab9332f2ab85d7320fc651eebf8b93b838421ac6818f87673872582360bcb903ab70972e8e589465660e6e4b9295675416547c277827d667102c99297f9909548c52621846f5978a5d6971ac97c6df5cf1a3a42717194f112093b73642cd757b541c6d5094931d97afa952ba80024b5d76caa088577f24b86208da3448dcce24769dcac3af496b4ec8e634294c7d323a85128d4e20dbe5b7bbafa8fbce12131f0663572a4c1a4885ac49cc607578042c0c68853b661b452662ae194512b208435a72ebad23519e07f96f59edfe2a5297c351bb38773478747732d9841b5c26091ce45559d7184e1ca01b7c388a8cb030a00f66b47988c2d7d195332662cfc7d90b279248de101f77e30087881ddff4095efebaea305138bf83f0e3071f5494c3ea5bec8f775128ce60aded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 +ciphertext: 5b094b6a42f9e8d31e0d9c28b18a5e323246ab6fb4a425fdbbd85e4fa833b4a589c910a3446ee9c2a3ff7964cc512f4623de3ad6fe3ad55f895c90d95149ebcf10a0654596fc8aba7caae1a59663ea958afee82518f78bb9839513d7199b10ca2c24f7b22169c17e7673eac8b858ad21d6aaca86017ef069af7170f5c825de5205994ff786ded53fe3352acbff1937181b2a29064e19dbfd316430a54b2369218365ce659e732dbb45721ececa352188d551ec1550938b7147cc5b2ae888146fe86b01750a85e8b4179e6c8a9c9adc0a881e5c5929299ed199964981e3c94b56a5e7720eb9ece6840d27861275e06d0be5a3057972604053d4835554d68e5a6f85ed8e2e101b2ddff770b8f4686668bd4ccab7a3fb58eb78e14e28f21443ab2e95717f8950e5b79de809c46cc434bbb592bed388d0c93ecd9144f41a7d053e312be740fb66f6be31538d663cc086cf23b66ef9771f3b2275067d553a0a1e6fa6b32673a1a2bf1dcffd602df83af95b5da97fb2a9df78a745f0fdde031fd21c0894234d9700889d825561c49c14134894b99a82c6f0c776db90773012faa4d7bee06877fd415fd407c7aa5effe897d70ba4088252fea08f56a5c16527c50283b1ee18db3e353196f8c031caba69ecaa877944125decc249842c140f30377c0c36525345dff045957be02ca335feaca4ebce4db5b5c3e7009eee36a4a9753bd2382d85082d01b954a0f207444e8a775582566a6928eadbf41ba235a1f0093eac2c7e27ea73af81849a66e2ecf8bf94a0532016ca6a43aed5f261dda9388de24e0e9b594b35259fbdbd46e5aa82bb52cf3d39574c46ed91257f1c49f93ecf6783d2b01ba5acee812a0b8469e5e4224821b17981b79670259a9977b54502bffaca22fd424a0f5566dffe1371ab30522184b533b9fefa5e6c6667f4e0b85ac805058a947ec77f61f50c447b2d27f4615684a3a914bd21b86a9ca58aa25526a4ae98ed34a78100a65a9124a1b2390333e96dc87460cb9e506331175fe9722f18761b1455688aafead26b76f13d852138d25f017279ad113f7b80b9f443973e13649dd12aecde5c7fcff30f89389fa138f6ce0e9e7bd5c383879398fccffa0505bb38e4f19cb6e65c21186484e9e10276fac9462f77b0fd7e251bbaa21ad855c8c56ee015ca8c973d31bb9440f98d9f7096bd2383720712eeacce4b8bdd025a9db914396139805b7d1ae8cccfd7491ca90526b8025176aa313904699babaaa0c76208ec9d3d5766b1844f8953f89b6fdbdba214dba86475633172fbf497c6f4343f78135db84c3e45e29211f517852cdad693d5882327f2529069fef977a7dea5aa0754597bb9793af511aefa511f678631ee1b94bb0ebb7e95bbf31381e499372241f0718fe2db2b8d4b30b7e4e9d7c9058967df46d8d2d160f6d241b8e05a4b70df811c43307f57f9a1f7d067994f6fc4e30d80a480842ba8ad0e245200efc31a0b8c6e3c39d01ea5d621ebec15a7a9ae5108ae12f8cca83f942053b31e4591401bd7e800a50d7c1389f1db1b771902e144d86bcf61de58b88dbcae5909431e81ab6d942d3af39c4518e1d4fa7f05b1a716006fe5e33d2c87603fb7de199a98252e28eddec620ab6df85137b8686ff0e2d4e76f4993825879c57c5d84e0cb4be1ec75f791e84df42ee7d7c3c77044f32996ee7b7d0f85c77d38f342fcd0e1be880c8bd2ef581278d4b75b3b80daa9d2c5c28a8ddd2758a3ed65fe42f7d4995f7122220f4ed660b7c2dd20916bdce54d2cd62b787f009993a51e0efc7aafa224fbadbeb6a719f8dadfccc0ade3fda88e7ffbc1efc061ef486625ad06ada94487874a7b3f7844918438729fcafa50a02cc7033266fbf052842fe95baae92db63899efe7330603b50f0de189e45e9600c822e1f5564c2fafbbc50abc2c4bca45ab2fb3425beaf4f3145e2dcda7e82da95b44b38ac19440963530ad99b6f732a2c06a98f12cfb8557b83dd515fc1284a762c8dbed28b21f52568295546b452c7b403096b78655c3d18927714e82380ca5c0593091acbd2e4ecf21891955bd78c17c90c58f27f575d1cd26c5f1be1e530b5072b95033ec174f1ab4c7fdedaf25d68fc7f4889d63d010250afa73bb30906610dc5ec4bc98e7f4afcf762e410a68f3e2bbceb37a1794c8b4396f5c6b06fce43c39194a042baa84bb49b78938fb97586732d4a1 +result: pass +shared_secret: f37800ef70ba18d14be289229810194a8f3f6f8c3a8e71d85afc29d133663964 + +# Official test vector 46, seed: "6b3996e8bc6f52879f2b7be012c44ad555707cb7e5fd8abb3457a298336d6fdc9eb7853008ff13201d5969a315c7e493" +private_key: 74e23285e187f22c6a1f0b5258081ca00c59ad4a733b6c168c39ae4994c7cac606422ab8ae07968a652c7cb130e3a1b5b65077ad348f2b213ef368c46c1b45ecf9c58fe49a86396285d554b157ccf2142864fc88df377c2bf758a3488722dc9111b39a90c58d29d18b0373801d761faab0845e78bef3c0b91509c7c9e44cf6a74bcef19de93538567564855981484ba0dc5a0553e921d302449663cce9c3aa1fdc3db0129999e011ea3172a1a3a504e2286550cb86156a23c74e0b2b2750648a15479aad813c4a576fc8f70553a34287147580b6a62957a26306cea1571963d4171dbb38448763b664752ce93a21d84101f79a66bb1e192b2c4ea0266d1c869226b0e110975bfc13e6e384c1883a76e5258c129185ec036a6063f182a35c3ab843523ca5c9b30b655eacd967847c86de2c169c40866f8b798555497ea94cfa99591c1c563264b54d369f0297168339379310be3354baf9d1ca6d7a79a2d0517e39c0f6412bf64bc57059b05db3888dd35e5af70fccd55e38e053b453aa43d0027f8ccfc0e15da1c91e4a0b3b4bb776df88aac1308f444856f3e888ae4753888b017cb342e70c78318a7a3a8142bb28326caa32809571d547c15b86437c655ebcd48bb2990493001ef4bbc7b4a02008396755b911e1782ddffcaa92a34c39dc8e0b9a48a33a252d6c547ca341f92727b5b40e92565ac466ae58000799a534b8277591e99876b4925a9a046644056a625a7a51431aec58c5d6b98eb4a0f40724e24477f6ebc52ab7859987871e623e93a0c081c9212e5b33e1c813c6a81980a5a670c1991dfc721ec62dd771cc9a30bb7eeb67ba71ae78c81cb802743b3589e661c4af476bb5753458db8c7d281575eab3f9216307a02f95147eeddb5fcc76c158701bf8a44d3890b65e6b43761a757221a70769b825b6cac8fcabb1dc155af64b86258f0ed5260522188ffb472cf64b82cb68cd41b986b560bd00b6cd99b805531076e25a2bd6204e264114602d6c1bcc5e9235c85575e66b391bba0d4297c9cb5508dc5cb3200b092400ad59508d7fe14703d433f980a79a796f24b82c60741a8276257c5b5311d85cfe1b8733eba10e305a3ea4affa5304f98a438325647a521f1b154a6547cbd8457545dab60ea7966a03b40e7c28ec1a22c4757a3b3c7dbb191895dc419cf609adf40c5fd86436506894a3932f1666ebd14a74c93d5e93511b5401fac02fc7280d088057eae2b3c457168b1b9e25fa81ffaa9d30c27dfb250dd5f287f281b12f1381657918eaaa067ccb07bc0a67bd4827368c7c0b4cb45d403159f9cd8de5caea6b5521ba173160561c9270ab15c85351cd46e8c4a3810587702f3f0b6921367e4648b654fb53d9627f573b936c6bc050a34b7e3c7c379a4c744b80230c35b784bf9a4a3fbd8a892450b4739488912b2b822b3664c25327d051c0236e05487671461264e2643c0aa7ca89a9c85867c817b714507c2b955371583611e77c783b68796267259638d4001e0555a19644b70b8527d9d66a5a3036e348cbf21200e3e07717cc83d0866ec7356412705706f192dbda8f43ab30d3f14d059190c1c95bec240e0c3271c2b755942183379893fb6cb0c0075c7b67352a76bc2bf7390c39c3768127e9402fc7e2716431bf25cc8405e23bb5830f348b4d00fcc1fb44389100cff58a3409174fcd39c5779c93336a053d04531942133fc92d66e3855043bfdea0c0f7b7795b0941db78a52d6708a83913cfca678f67000d873060777ed6f0906976ad12946b70c9b5f9e4a95a8b1eb5b733d3d92921cab8bb610b3ea33549e6371ae507ad34170fb09ca9d65c4360ce42ec63db51b1705b19205b01688aaaa7c00af97c93fae66dccf93d44a61ab5381326982ff2a73bc5b19e17b126c7a652f36154401a6d28006a383841f4d9998a06152d0b58c5e6457b601953536693918768cc1ec85b1494255858da9253693293848bf8c14a6bd362a2b91137cbadfb82a4b1f80a3577869b50716983730a31ad1574a3f5a62ad6635ad11c4706ac6912248a6b55cba70658deb6336e7344f1535e195722486866475bca60c8ba89cb591afc603ff0cddfdc55a705beaa1b99ae725a400454f6874462713e12698a55a267a96092be913b3472b0d9fbaecf20169790368f010b2d661f371b1f9a3c88556374af9b603c8c1db100ac3e600c042672bcd971857232fbe70e3c1280f5ac45d0e819a8495d2da89ef5086b110773c7d1539ec94a44fc0cd6f4a39362731f527de3f06f4a78b0dfbb94e4977a564c765cf8ca68658fbe27937a7b15a8671cfc8b3e779533d1b5c092826b3038b213550421004012a4cb3f12478efb0c92bcbdca4259b153584bd4b65a6b8d66f578f6f408bfe246deb5304ce5487b7a95c6db5605818e26d2cf5fa6adabea9e3a48b6f889305c016055db7a02a34ba5e10573143ddb8659fbe25c7b621e3494aecef037effb36b2819a1816788a6b410918745c2a423285c7e0021cb8c8793b60b4c9061a39f97ff1212f02d387d224b0ec258268a374b6e27ac9c4598fb78c387a7daa439280d79a6218b3ceb0bfc2e685bad8801d92b5b1a42f64c8890709c58c95bd8ebc43568c33362a53b5a12c052489bfd806cad36dda117b2180b68cfbb317d4bcdf745c50324e19dc7b17ab7f31649a57bcce91fa720052afb0b0ba5e8b57a5e4296b1c390da9a4f76a869af0b9389c0ac381aeae0a779ba588ff415858b3300d71b99fc172de950a95c3a61c9072b6f2a7cd9245da690128b9c597c44903837b8a9443865c785ff6bc05854e1115b9e3d7a70c7c40216ca48b1c6497062d61fb8cb29c71e5800b8e752e70b9a8655baa8408742a511ede8409301620f3bbc2a27790dd7058841432cae4cae719740835571ce65027e74d85958db506a8e9601c1f5ba5728a6e710a3d3d93748a7a640c460167482dcd6cccfc238326171927c6a72ee7084ee97d3e7519744ab8df651b9b2b69d4ac7cdbd9437849114e29550ba3321202906e9331bc7ccbf4571da4c6ae1a0b2797ba4bcc75398e18505eb02dc760b00f687c76f2a35f707f609ca149b4be233b3ba4739e19e4462d78950138cd1b210904b10a83356156a63631d4a6193c68e78642e7c5c0daf403e8520cc2f7438ae950d4136ad32684f2881c50c1a508b0442bf6c92f030f82653578c79fb4eaab1cb60df4870d6966ca5bd8651400a5a6d424749c8cc6aa6fc90b6514a8274e633aaa74435542bd2eaa354d65a32591819b8233834abf1391470085c9144b8239390f97624fdbc645d3662f8a7a2b7ae412f8525884081b3282390f8c35e2379aa5d234dfe9c0c94098ecfab31dfc315413c62aa80fb8a9ad11d070d02cb192d18f3717c1375401c0713437b0868298205162a78f8b00fb46ca2ccc6dad2717185b72793b2aa009419a6330ec508c8c325110c53fa0512a713c500631b36ac410c5a966edf1656419740baaca6719639987bf5e17444b4122650c87c884069fc52ba082837158b9bb85b2c961268284b5d8636b2ed3bd1781296de78a1cca44502a779b2bacb6f86d676355d4d527bd050ca8d33a12d059e6d697f986177e1b95424ba97cda6b6ae0191ba70bcb75172c354541c7742556c5fbe591f33b9624452392412f3859953ac21c50d5a445a34d94d492afbb01a84c844fd582802391f4f4a5d012a8a62079e254363fba52c83a399bb3398f6807e6f03f74f68fc788187be6bcaa5491ff666c98e43c3f860470380768f70b4987c6ea10411ea60fc7e8cba0b1afd72a52713a41a2172804ecb9fb60315e37c544555a8aac8089081c6c2695af8011bd991e1ddc87c841cbe0c0357e04489785222930a5d75b81cde91e5804315bb30bc93294367a4623a0c4a0ec8ddc436c7992b157039879bacbcb590490c28ae7c9142267654291c06a75237b24b8895404cdf32a073c4922c202a087bce07aa5708816818564c68237136c0a98119c2a6244a59051071414425b9230a6113cab28b06a058e67b16b9b3287f001422c276c78aaf608820836c863a1555590bc802a70abda52e4c430c80992745945ebd343277c222836631c652dcc425e1fec6f22383eb78c9b47967e865c6382231b4ff42b94f281c4e9a849477706c339a48ac2c69416d1e51914c751dff0b74cc657a8d9b0d0e21cb2c3a72fa241338b11f529a0ea9cbb8bd310203b29775867f23b7a6ed35890f3014474b51a578110cb1e1d052d2cd03a19fa06f1750279476642752934201c0832b80b552c7a4b4eb1118e2466624588ac1d0148c1c0484352479ea604758012b5d49e885965bf6ec29407a0d9d3f1f08826007a5a3d32062d2a775728c35116642149c2d449367bf894b2bffe5be757d54623b972fdb9093b0f54568b4f6f2e688f86ab2eab1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 +ciphertext: 5b726c1d492fbcff00124b62e2a5a166b83d928a64d0c68052b126d354bfc34e4f6b38edd661c6c407913602d55ce892fdaf631d96c4d94de045fdae852b5d7d88c73584663ade3e5432280d137af39c49aec6bd72caf308a6f3a8255b58997c8c189089c76a4d6c718ba0e01ba1b457d89e0413e89bc2b461b117c7fb011cc2206f027399c387bb3b8222eb56ccbe89c333ce3e46f2e507e3169a75f052d92c10eb3ffd04e5b59aea872c5a3df2bd23872aeb599fc0baa82c6fd2131357b0abd7638b9c8d9bdfd65a5dc9608dc0204cf88a9f2a5aa370f4fda768f7367ac51a5910f492cd4f2b9c05a993dd03f71b1dd1774c949d0e15f7f17831214fd0b33dd41ccd02aeb46fa66f63c17dd6cdd42b02ea18e1ad6183a2a0dcebd4da99dd49405be372047e4beacb32e237f37541e40e2daa91059ccdb8e956343fd009578e5d1b9601513ad916ebb324da5c3bcc5ea2162f507046477acccfae79d7ede561cc2837c0a95b32140bcd7e30c2645aa21a153d56358a8a767cf887f79e85fced38ef732b83a4c311ec77d67dfd164940d6263dcc00f0a76560102564913918741f88d22ad4f7aac99d560ac15b56be3b3e747ab5af9d9c87ffd2b5a7b964c2f8b3b87a13b64cf53a8731cb0d4e0535bb52ee97905435f1f7f0679fb55820160f200bbd6ac39c105387885a81f5c8e7f2d3ec3bdbd6604db8249408ea26f329e1faa5cfbb79f22f84da9095071673b56e003e026b373bcd97ff31ecdd4267ee8bd8e9865ab576e033a0094a96b391e9751dd988f340f06368edfca09403c2194a053a682e94524c955ed193b608a044af29357132ddc3d113f7bb680f9c0d2f8fcbae081bb211715177079e3e5d731c5f3e32f0703ec6c979d0601d628bcc9ef88bd70c020c05007cce62e1ce70d538b3109abd4c05e541b164d03ccf1d7b82fff255433a3357e71e4241354c40a5f6a6b83296e752697e34c77729ec0e6322f9f948f0764ab60842739debd37ee3791624ef110e2fbccd314286353d243b846b52ba87944ca8118da0e83ee94ae8e2e335016f57b704e379168102284b4e2fa4775c9949462863bac38393a7865a2bc5fb8593c856dd024daf88cfb786f98a63288429ba6b2963ca6d54f66fc49d5d61babace50df519ad4e24c7cfc246ec5a01f315a65ef60fbcd2f4d2cf0fe20a803834556d74b1a3fb0960b4bc7d9bf1494c6395c1ea7a24996b04b97f10a6907b66712931f1615c7b76d93e57c90b8aa57d70d2d8c578fc61cdabdd53b42e6cd59ae63b2beffc3e9414abc820191af70312d489f8841b66273eb164d9c3ef3a4d273eb11d708e3a562d113bd397707c1ad7fd7769d4e694270f250240a666c73295e541888cbbd10228b527fd78eacf305a5b7f609985bb869a97f642dad2b04c47310bbe6fca70ecd5957b7e12831c5c400c30d924eb99a1495de8f968135a5695cd9fb78e91345476ce1731443fa85ee0aa266ef0c2bfe720c3d27428255e01992e3b03a09d5c22a5f4a6edb203fad98ff5e0aa74535d6de951f68524f6c11f056897913a84296a3cafb5be71bd90038b8973ccfc2e58b868f61d95b659b16548e3f5a94d5651ff1921395dcceed2ca6afad67ef9ba1cfcadfe63533401ec05f246a453277beb31bc8636251b40310cdf38d743f3566f8aefd7b8d6834390c2035e7493e60bbc93a91258a5926424ed863f07282ccfcdf663aebc6586e129e1c89b049a78ba9c4916a5129a2727d5dc0a3dfb4ac9625096f27c476895e0cedf6fa75da79e08842e6b6df7cde91d4e090a94973c1d3c0da86e11c93adac0173070404bff955ca59822e7a3ffe600f58ed6c22207815d2c4e2ae4cf7df596eb99d50f731d5202232c6bc3609e071ad73cda4bb6f5d5fc027328f5ad44bc36aa9d938ab168f574966c493ddb7e989a04e1431803139965c296dd518bd5294385aff816c8bbf52136c18870ff530435a9e4c45855c6872babc041a2153d78151bcc7decb4bc80ca73c7b2724a1b9a934b3fbc2c5a310717677c939651f4252935dfcb2614d3223e4ee451ec0ffea2fec151ff43d5baacbc038629af6c684e401aa8bca7e385fd5a5d18b8b9c0f325109036fcebcee3483d2e6d0cf74c6d2ac07cca57261b6ed3ab8836e20c876a4a84499ef5e7e78b1465d2862a620efc7e21f45d91269458329d9e0b968183f720c947d25 +result: pass +shared_secret: cfab6ccf400c22dd43b0094cf8161fb453e5291fefb299719ac2e7000325d1b8 + +# Official test vector 47, seed: "730b65ece22de27d573ce3aea7cb021c415df210d228808d91d4f380070ffcb0778b683c71d4853deb569c822765f2a3" +private_key: 3642bf33d87830ec6d87e3ca5e4432a0553fa502878f93281671b93e87cb76763518841148126ccdfb6e8723aec1975cc8a3971e24a8a9149a9957620b0b211c4c3f942a21daa5182c63049bac82959429f2c1b4f4b1204ce35c7c683db5127a89699e23588d194574e603557d811af3104b7f23627dc046ecd6aa633a20054ac997625147a2cb6bfb62e44bc7eca7a019d41ff5ac505870c0dc648e209111ccd5827c750eb676058c6a14267ccb865b3b40da4e2476aff41b9227e18274c96e32966f2eb611fcfb3880159e6f2c62a9565c8e6c3a84bb530a13895f841ff354b798299ad3b68ca32838ea6b3920b3b6f0415b7a750295d33eae09022b8c17d7ac040df6b298d7bfdad78f868cb97d178d5c80b27b69ce03d37f3277661d9b9340f347bc7296d310041c996efa841bddd592fe4b480da657d47bcb4d147c112243f15268340b14ae26742b813934c26be8204ad984863eb44c50c510a5c5872cf334275c5bd2517c55772e9d5020e8093d5f21264929b1c7858b4f8745ed0b2c9bf9671d3c085e80804ad730b8e0865b82a6d6bb1595331a0a05567bd3af6a641918019d9a89b08f227640182fb8c7adc6278473b2b8af4c4c9e6b8f8232215d265f433c7357fa8c91751f6cd08b678240c5da1ebc38ce3f2735d3320713ac4301ea1fdc1990b8909cb718b6344c45a612633376bb9e003656ac347305c3aec055689c696eb01ff62b3a4fd0272b10cd778572667702fa4c2b7ce5305c413d91596904b872a0b051a255af18119d00e1a4654c05259cc16663674365708843c20df18b95d212efab1dd9485dc4426782fac42e258fa0cb8bc3896a507107720246b972c457750bb98ac03c9375820046fa7021af606c9344599ef233de25667592b423e456a659c0389b86b27a0eb4675693c029c489a4daa1b5ecf37afbf80b8fea5cd9d37beadc9fd812428ec68484b8853cc82f019c9a7419115e8ac0972836d42bb459611ba06b82a59592f5440134908f35d182c0a765f9f44b66b293f471222d648989b61b7eb8586e004e7bf789838500c2aa2de031661d4b7c46737772f4a86df60e050164a1a998e996042e22b7db76c3a4575f99199c5851c75f901085b21f6f693b5839557f259194590e84dcbad233bd9b670049d47b67d91616db28dce64ec552712129a2abac23b4922fb4cb6bb3e54f7ddb093c5811a638cc3330a1170c46de338757f445df01aa42e056e6d59daf690d3b4961365a6927db368a5633a4ca087fa74020b0b7884a0afecb5bb3d124276b38eb8c19c7c8afb616a854b444f7f0910ed6c3eef93722c827e80297e7f411b90b41ed430258e091e5ab151d961af1e51fac9aa03172c147d69e84274b3eeb949c8588edac38b400c775849cf162932bdb6f80fabba816bfcaf51bfe9174cfe0191084004486814e938153478728041fa06a78e1916d20465370e55aab5c993ef543c360bd082c7298250678f979904b402de70dc4f9403e805b71955039b539784b2e79173d870363d8b677aa5c823b8980062ca773ba71bfebafca6399b40c8109f4848db6cb154a4846cb9c638c4e8b10149de52667a21d1af419de65c030cc7bc8586c45a615dc346ea4073f4eb131e0607740c73ded62c192a413e955146f86ab9386156b3ca110295ced41977b147ec9e73f934ba396a27b6d6c37d2460e4e15c0af6a090cca7947c0103489c7dd9a56dfe62f5c9692531087fb7b7a75206765f34316378673c52b6279b0db8c8dd74049052aafa5467ac9fb7686cbb904f24afdebaaa8a7928de03c02e35c14e4102b560d8831c62c44154758582bd901ed9c963fc558ed076c107a87f0e49bb2e1585e809ba31788a925588a0c8fbab37b3bd79268eb359982063775abaf9622024aaa9730cff8411c04401cb58a4ee90b83ea547b1fe8ae6c3a93531511298331ffc512ec195f982c39c9394bb0933bbbfb1b46fa0c2dbc120c8acb03953e188a6ee6b2852e79642ea3261c8403b3497b99ba7b25fb99949300dbc9bdcbcbbd72ca935242ae35d27cd66003f22c4918ac412f3304ee92b740c86cb12362df19353438569c16935edc8af7b6091cc97c59996ce174253e9b2612a54dd9399fb11a5d0fa3af913bbc66e1874dc7527381b593966014fba090c537fb848ea86c2ba929c7b97456ac4b5c5007b27631aadde902ae1917dba8cf2936427fa22504aa2bca42bdacb21ac9a497eb1cb8a4b096e69294620386abc48f389c7f14380b03b10c614c625427c8cb9962f3d75409d923a56717882169bdab15e4426dfdb26072952255eab0380a88277ccac1d24939c98900d0be4570b3df596aef0a1747b2b0106c31e9aa9164f7745de23bd1cb222178ba13f7c806c0b02ff9898774646417bb2fc3153167c1eb707655c548b63caaf3fb3f37771be2fc972d03bde5286586d406b00902dfa0897785481b95805ab79dac44233af99ed3f53bfd6cc36af1cc79006289563456fb71b54c6e5e894f47d715ba062e010841a9e67abdbacc31dc373ec88ce8eba2f96381edd02fd0b88b47888f5084ac264c755c62a663ca9e30bb2bb8c89dc2ba91ba652fb79008ad91090c0614d6c7c674139ba5d57d26dba05e7c47e2107aac4cc28405a7d0d415e2472f66c40d49e094add494c19175886474b5a6991e355738c66d9178c94bb4c05912bd9d709290a8b562a358814a14c50750d17054273c7587b7ad5e403f231964bb40014fa7121fdb74dc23875a148f0f021a8ceb3cbde6842714cdf1008d85b0af62e65ccda27d9fc2a12e415801bb22a865b861aab5cc3c9093c3164e6b436a3475e5359bb8c241b635c351ec3614f7a225d522f2a0b7b181a1f7a4ccc858014a2222ba5b19767154e27b2667e90aea352ae7d3c68e07b7c4d0482ec38aa226ac4f2b63a8da4be57842a4a65b6e04c2166327be09a30128bcc33c154031b94ee13aa5d60f7708347659b4d73bc500432bf2401861c183c732019576a672d0c10d5c18afe4364e9ccf67d670b29283d0f0b9f91130a0437d7450acb4d76af99aa4ea287a6bfc73fbaa3207f58fccc775a811a7e6a0b7a63bcd87f04f1eea0d57ab7735315324282b4818b8d4346b0ecbcea3ac9c0a7bbc17a955617570a511447a9b8475f7c602135f57255e2412cb6ddb0d22c30159b43b9dd58066d81d77f7a4e263603e193ebf671fa3283c69e71a4ac433297867da2b2b7eca19373a9b4d3897689031e58284ec8779fcc4cb742b8712b11a3d143b02645a99db61bfb19c26a5902f7b3d77302a9ab059350925d8e1a994b586ea777697c389f9cb6e25817e07c5716db9ab63f451dc89a852031bb3352e8ba53643c509ed8590694b6a07340ad0fb2f1788937a0c45cf9a441494ae447c44c6917f2d7b21bdc6b7d3853bd8e33bc7ea75e62535f95096a9d0930cbcc0a210c2f5b81090d20a5d7c0346bb43ebe6b77072859f13a6576c72c0553da80a4ca8f03292d86a98246151960e4b15b758b28e2ad2271c9ca70f92061c8a560be21a2d967c0ae1b0ca446a987bbfd888ce4ccb725b95050d03134f3441f853935255bce8473e88397d5eb4cb8d6acaa6bb8d5f5003a560b08c89ac890b77aa16304f5cc74822764d82823b317572c5bbee018eedab6cd93caa924279ca8932a8858079197d412b7283e084a7fb9dbef26d4530c1b6136619b06fbae495d207a3c326910a5c2ac9c7b919498bef5482532535d2551fee95154b2082a76c0d3b16ced88993697b344cf7be4742a3180c69f6fb589ac17fbd03489b13a0af951ec1d9776efa82cfd0276e58c553b2046b4594c9621e0aeb160d7923bbfa53f7c9c2a4a077d51a6f38473fb6d7a2b2b99c5414c5e646734fc48c56c18d30997d8073afcb822680b321c40696092a7a9f9072cd034523acb15154354d697f27a312348601d0d1170beb4759510330cb0adef4cf31ca82f7f15bc02310f22c92dcbbc059e34771725685955dd5490331e0bd99829692275598a77a310243a6225f392a9f83910afddc172d124cd295288a77ae051031f898b42d792ddfe8c0902944b68043bba48a25c27323f07d4f6a8c6ecc33f13948ad12463e834d23514af69954395a144d1a4df8f526c0331247d16d05e185ddf04a94a92047bcc976bc17f6b7488dd390eaac4b608390e9fac6c2829eed0903d544b3ff08b2c27a779198387a8112e374ce4f5b0f5f898101159462929c5417bf373420811b4ecbc034eb41aec0888a30976428e2a54463072f3c9b55341147c464dc88b55daa1fa7920c22fb6c8225b2ccf47692713ded1c4a76a479bb111e56cf782a6cafe938d47de49bb47e732223b0bd1bee7bf690d1857044eef2aaecfcda92e6bdb853f01617133d65b67c0d6cc83710c053a18263aa91dbdbef7b85bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d +ciphertext: 933b2c004331af9c0e4699fedc9fc3999fcb8213c308ecd4e33c3ff41ef3cdad8f02f0f0bfa8db24218e8c81f0934b98153497e7e36fb78d48322742c84870a8b470dca9ce9a017e215d33b9b09d8477b5b292263e4da46ded3ecf5afc0d9472d7690d24d07eaa35644cfd30b3b530f527b4dab5df72947af1a08264abaccc588cee00be666e987de5f0d84bdfac563879916b912a3ba625e16ec3458c08ba116d8411408a9a9044fcb2fb39b2db31bf446b840fa196a6b61134619643116b85d14fea5389b2b0aea25cae45197e14844e8c4b33bd73b85799832cdbb3b5fb031bba251182ad85492a071bb4bcc5476f3a9a5f4c6fd740b640fc87379daa2da4e0819e983da6095257a6cdbb2e4a59055d0251480ce14983e598c5c4f362e49f992cee925fcaf504020134f9d26bda51f88006a0e4df6c4229ce87c19139220bf4f27ad189d9c6b2fd3f3387e344632e497f0f9086752318615850a51730732009afdd4fcce3226645fc26a98de7dfdaeac5de30fb7c676035ac267ec29303b6855a458682baa9b6ae49911ebd981f14ec358857f34a3e396fb6c4cf83911029ff15f23ebd105fe6178adec98efce9e5bf79478a278fe128c7521a81c529fc8544d5c9344d16aefdf7a4da73f4155737238c3d0bf820e1ce3e26e1b5f26e6dc0bbfa0e910988d98c655e1dcc1dcbc4c434b2d2b9420f98323e19e2214ec7e470848adc7c77a9317ad64d4a4b05aa4f72dbb269c4d30c98b9e7a39787f7f77b519afcf42541fd9e2fcc228efeec98bd4a021cd03d5c3526cbaf28a2c075fd83e6c47017cc1837a936f3b1a477b4c955df76d40bc4c9e3165c672fc617b941743fc1d596ac2000bef5a4eeeef54db3922c27755c5c58bfa0e3f2a97b475345793aaf44f371dddbb8c0ba11dd2fb4c6c38d1eeba05d4a1224d59174a0fdce7c85cc57c913a47c1de5bdf883810f833d9eb441e2b9164fa00e84261b67f56c4cda52dc863396f9a7302093bd657cd0c7349309acae2e7ce7b40deeee285552e3c31976917774052dc8c0b80fea4d1c0382825d5f3ff1911c5667b5d9e727b1fb5ef17f2040ba56397d4d8f1bc4fb445a054a39b40145e3457597739d6bd8e5d194e3e6800504c9ebd25129bf575bd8a859a16c056c9bd2e2c8d0d9c0d5d9ad81c47f0f6be82bfe80cd60fb158297942a0ed963ec522c0e5f58a5e7065c113336d55370f006003986832844e940f160682e2f69dbf6edb9d4b6268a087ba28663cd002152bb20f659107c7fcf337e37ad086a5c072bc632414886d328d7fbe79d7785404b550f99510c7f24c3b6f455d3a12a820f26d6b2259d7bd0a0981af26ed4494f66bcdf4171fb2be6bfd9dc1e7a183e499a068a1791d398beeba47af660724656406f3a581ed42bca59ed18bdee126cf8520ad6e7a3c7f37d929f8a35abe5b46177ad34dccc4addc2fb354b0dc266f8a1966510a68a82c7571498fd4a59dfb0004a3bcf9d88c7ef458733577ae764d90e29dbcfcdff40cdbaa1f8963125bca7011c4aaa6246be182651d97937933e1cc74927bc67791764bb20d1a04805ab073f00a9a5c6e74f35e45101fc31e8571757d06df9109283152a2348764329724ac053aa5f1a2a885fb745ce92914790955436b9d4cb59d922e1c4e07525fbde26ce9cf4619cc83888f3790fbfffd1932ca4d6a1fbec63d72a899ed0897090ff253dc371175b8c1db02ae0ac8438cda23c5533a113af068fd34d2b23eb52a30118308a85b6c851d3ceabf8eac3c6e2c54cde101580681b90eaac4e099e9eb35c49e80ec4b08c1f6adb547ffd0618ac7300fc2c032fe82ce1a7dfc7679ef0c0db03b494e48ca8ad2251311761b0839cd3d576980461e4faf81cf27ae1d13e1c3886be97c6da2ccb43339048c2706aacaa160d28771325e90a94025faf4bf4cb7445f318960308bb59fb756eece70cdb134c7171eae241915712b7e3ce2f373cb2ac3d26435c13034b21948f9a462f1eeca57a9a34c4a7b270b9aa8eed19212d0bfefacd8c8011c2ac38e4a4599baa799a9f06f9dcfa1518e04f246296d85cdbcd341156615fab90d9713ddc433f73cc595916bae88ba9a9c411f506b9ed5d66dce3ef9f350d51baa6a11ecf502edd6a2e49df6c25c77c0c814ba99abe4df7208dc80f948408b4af3289379f1ad6cdbdb4165c683aa3428d83cd091cad7aa9d59dd8 +result: pass +shared_secret: abdf30bf8e4ed92c05241b6f00895dc0d56759ac668245a88c7ffa59cdb48fdb + +# Official test vector 48, seed: "5522a5a891a9a9b5514f4556afd8df40b9cec63a01492f0cb8a1db073a285a963e4a9ff2376c88662f7d8d241f8acf17" +private_key: 58b513bc1a5f348c2e22a0a8c99bc5178a736854b211c6b4e191b497f288755843e306c1527c87ac5393c98c77669a29299c660bfc0d67453de33cc838d2c0e2d561e54600f89951f7543a42e0891d846f347a0e2fd956e29072d7b1565be798d3a295321cca8209aa439b5374602da08792d6c814fe3b0398a2743cd258a8e505be98be9c5c806c7007abbbcec5caa7151363789b22d6210e519649c34c56ab5b7a8318944370c30d4c16b226490d738282e63881e0b163e11b4818083cfc7593b068eb7c8711ab06553164382a87a683267957485df51dd5f5b0135bbd09e0be01594b3a134761e3a7efb567c4554b0d4b6ddabcc50c036144b1b88484a19ab8a94e168cff620330647dee43b673664a01407334883cbd6379a61a1c7b755d28c80921416edec02ca326c8fae52b4495b991335d253387682716f283675ae96ef431b98a821dda681f35c71f5da09ffdfa471d915574f23391072c9d8b50b9e06bd91055395958bb911a399c8ae9eb2884154cb7d59aa36a4d05b5887a23962260a057257e7e815859f53c85059760857882ab38fd8cb7a2514d2745867fb348b4f1ab4e8c0f200261e68474dd45394ce01c1e4a07799ca7dbfb5b3c51c7c1500edc768bc389499427955868c21bd3a94c3694d588700da5641b242edc152f1c1c90e3ecadcb04b8512342a76027c98a6af96a0958f775abd890fa586d81497013e062af9aa7e7734017807d89076a102bc46924b854d32476b1b6ac2cc922f0afefc6c90c6814a1819e96b429991b1250817a9187755805956d28a7cccb043469896d326df5477699ca89081cb44cc492ebc6671f3108f0795cde1422d3fa8dffa15e3d6040300b462f57986b355d7fb12454bac56d66aca19240c70445c166cda05a8d5a0763034387b50c32df573e61c921cca5b26ee3095b0739cb7cab1756a097b4c5a24555bc4a84681772b1ecca530a41c7db1f2c49c2aaca0ee363ca9a29b1040a5c31c608c235543d36abc90a36d8110badf3b10af267f6cb11ebc7c0224175d2d82a0df8485a7a754319952da50f48563937517fd4032935830b47f907a9489011b93a0e9a3d999b3d13416be914a4d9a4196ae573d73a4bf1099dc3c19dcd2b6cad5999a71a7e25717729495597997112f23f38d54808bb0b86c2558c83bc5a290b0ddb26a9493abfac76e9d25fbc888928417f5c2a1a1e34a355343a45c4309822cd83bc55362a7b8ee521fc816bfe22afc047196f87b9eb9092700723d3611dc5a53e8f9108e5064a9183aaa252ae2024b33ad93ad1c96796603a8538c7f1a3af202024ce12cb4025192744bafa338f325c10e1544e18a92509639bb62c4372ebc39965cab0d1317f91bf1b46a4523bbca018526cd681a3082cdeccce960c6d2e5b317e2568b2f4a25a8cbd1844b1dcfc32c0160f12f126f0caa3e6e37d95db68deebccde353d7ccc22e204bd8b016f9dc1bca5c8439a4cce98ebbfae4111a8776b09bc325599cdae20c354640faee43c07911e08348a17e75f483a3751237f1eb9a43a49702654a4a0f21c3d6b591d3b4add7c3320d8083c223e889080ab6b364118cdd1d42038182ce07bcd7adb2deb2531a2536d2126460227604740cf54bc513c918058ca527b48b0ec1c6d6cd4549b5c18d50a477a80cde6e87efad1284a71869d46b47f54465b9669e1ec5ed18505bd8c49bec69abee2a2c69c684db270e5a7a69846738f2a2416148098174c038964c8149f56097caf8840fca26d4f47a68d333761db2109372778f56aa0003f402b3237b079f3a8ac031a41eed50c218673b05a5757d29196a653a47b689ac25a2800c79ca20bbdb02ec6b430456435df3b7d81089cc986bdb246193bd1a153796ca5f1099d2a8c23810cf8467517085ef79b7bdfa7ba0c1b180b8312fba0999f87c8bdd518b5654075950cd27861ad55724766664d8a3468a8139201cfc9a48fcfd0839dc41b0d61798ee6180bf33335c78faa7a6e1a31262521ba7fd79a5ab0854c6a2f14265e418212324817cba46ee849713fbac9bc11a8de51376ac02c35f45e21f642732cc132745c5dd1cd1e45a31b5c9abc56055a8510f5fa71eb56c89d7685ceb4afe3255c734a59dcc2b5a9910db6ebbeaf4b110bda0270fb568c3c6a59130fe6390d12e4c27fd191ab43b4aa8a66c4326e681cbe1207bc2d5aac1ac59ef0a8aac0c8b91f7c23ac35abf566c75ad3b01d6b1dfbc29db4a334b44c10fc25808f9b8acdb4a2ba67528fba8ee942a895d5544857473459763e92174dc640bf284908023146fb553b1b8b1e99a7446c5320ca17eb6bc497a330ded7b1016a1c28d23964f24f2188b2d7ebb2bbe954c9d9271baa7e429c02dab991dffa49410ba6ab20829ec41b03b8ba8756b5cffc640e928b24361f0f007226f2b5315a8bdf8a10aa88581ce5a140588b69b531f5112610c5306fe41d4c018302dac1dbf69863b6bf99d892072591a0168decc69f89823999095f256c52c6336acb063bd741551bb855678c4e8bf90191a38c2fc641957312ee758e73d88d8c8937b9c6912c59ca13854a4209924db71fd8b547a076a340560155122298e91328a71773e1cf117920e5faa8fbd847fdd027f734c06bec0bf479b97cc11d626122d1049e96c7643a6b323aa93e10521460c7193d7c85a1a8969dd0b0835b64ade28df777a1c70646b8e55578ba9da6d82a96b5bbca1b2e9346775d24b987535882468b3e9263a1c74288695722142d9ba23fd747383832b2a3b6720b21cfb5f00a178c51a878992d666872685cb1f346c77b86a0174ac955b06df96ba094101330958452074c57377f520bf0766881752d70c0a778415f9bd3b5d276100f00ad563735cce0952354260c153c3ba227181a21b9f8166dc0aa42acc241f6051624b88d1659a2a81f9cf92ce82c76dadc27bc3b018f953a5af66ee21401c02a4e3b8b4188a36be3818ccb82686cc21d50614f1f000721f8445323b4920b3d929c1362d91ef948371b531096186034d61f0401c09679c54c5a993ce85137f15f50466bace29512e260f990764c31648d6649d23c800750a08f759fa84258515c4625b856eb368d917c36768a8a1471a376ab367aab46295707e94080bce47dd4633c2b50ce0b19bf47d4a68c3519da21c205b0c9128606ef8a7405ac525a12b0c613c7ae96aca34743ca9679bf078d5d016405f336f6088a9652204154648e4b3f6872929f02670c7962f4b08bdda9beb2a33a2babcef40cc4de288460d0188fc29ca85b212eb40f7b158aa4a38710e0608eb150fa5252860058ccd822618961cf5c18a01bcb2eb92dda84597fe9b345e06d14a597917a4748949ce5f29e60a7ab29740242166c5a651501010bbbc73926a7c4d0dc6aa415240e0c0769774055f9882aa4330dac1d8500747bd5264bb7625c2ab58e7917cd122858135ec09a3f0128837669bb37911903854d57da6957d70407c752a20951535503847b17c536a69ac09a84ca64633a4fb9c26221296190b27c03781729456f6653639fc036fe17c4b66b390b2204a1361555323dd307572b2caf24148dfea74eef05880205c164da71980974240b2167b3c3200745ce778a4cab786a0cbb132188158c3111707058884358db6ef3d04480d7ba058c7e52e4052c1898e2918d98590716a80bd9a3a4c3d53cd8111005709e708b04c6d18bb1577219a39d26a496582384f1126fe491a2dab7b8adb4a07563c687c4a6056455113c6fe9b7bd30cb7fbed2839a93a584c76af5c1422dca809cc623079ab65cb146a3011c38c1a6f3db134b72583ab9331d418c7ab513d77b91a612053f217d406babaf4170607a1979ea637f8875154561f69870fb1682a62052fa36a21bf94fb4f24ea54c1658d8bea4e2813707981366a8d9655400db440db8c27af57ebdaa8ed897c7594712e6881c81f5b79557834e53c9b537ab69942830fa60a0c8bc7518192e52396ee15d945b9f8df019f8f32513817117834a9af58ff761a1830798edd48fb571be338b43140c44d17b272db6aeebb0cab160342b49cbe2b47a6a5006b5cac09d763f168c6a5f329b7d1b87dde69542a4437b8c426890b4a5487ab43a98ef94667efc881a943b33b42c776b3f8af853fd59c2d3031fbcf541247100d22219e67094ba89791186bc8b7b536fb6438aba5275d234adc5a9ff129fa7d1b5c5757483f02980fa40882aa0c72c0ef233b0c2931f1e15cb7d528b471c50903256e54a87f8c16f02b3bb904133bf60136d603bc57c503420a8b6701aea4a3b4052334f75bf820c2ed9890bcb812b20d9031c269af9598acdeb8a52bfa7cb804627acfa20285753264f3df670dc445647c881e112b71095f109342b8799c6382723886f5b8371ee58a35fbb48022d9c107ba6fb6dc5fdbd4ff573fd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 +ciphertext: ae2c5cb63dd84bdbf16f45be0e0c322955c2c3cfa3fea74aa30c6706a28e5861a92e2692df21654f0722901fc86576d0378f662afb915da4ef65df72c0d9032f43de8b69eb9e37abc502442fc3be17a539a4958350e42ee2a83adfa66d393d94356b2f81706483a2da094284b7c39d4c7ccb4c3c6b48552fb4a6df7d2fbf5fbb473ee164680217a54fef6d1a8da22faedb6ddf9683adbe5685c61e5410ca24619dbc0b9cb728fed6207f75095b73b4f2733401182320dafd1574b815ac1d92bf61fcc50baa791b540d25083786b221070b9b5ec97c69a2ab709a2dd82224d50c7223bc620a4f142ccba7f138ae06a9839b17f31b5a78cfff773595c34a7092c5c2a67df0392985afc227f171a22283e3fc5c12cccfd8bc98a1adec1ec8e610008dea6bda2067624a7bf003ccddb8b1fccaf84650a4175fbfe299f56191a3251fa0ec63aa6198b7b9f13490dbe41b23dd44c5015f82299f2e873a576b7e44a3769d5b1886b2114b31a5b2359affbaf2d9156e5ca200c36be07c3837e5a35be36eeae315d888da4cb2e5911ec897d28ff484f4a13ea45bb5e645383e93f39b90c600bd6ee8899c5436f18eb9cdc9f7670cd66c42dd182edcd9a1e03c7c7e6cd22bdea33cede3fe43aa7e9bbcee5bbf6334e516e4228112e3165a50acd9c00da196d83f1e71f97fff99912807d5b174377c81b5dbc734175085a1df2535323d821601b42bb08cfc508eba25b75eb878a175e69b9704d31d8d4c626705622821b0fc787d741da974a99c873b11c10157dd73728fa96d979bd825265c5c2fa198cd18db467e391ca1b8a1cd83a3363e763bd0dd1eace13455553f0d0a8b594d2f82443a377ca830540522e1a9ad2fbbc9e974e63dab823d347e93d90c18190a7bb4366e3fd0c81d4e10534056e80c483b998c645fbde1267a0a7e94a5950942aa114615d38ad0b8336b13289d8ab76ff03d49f419de79d309e515d668ba644aa43ab75919f1be4360c0eef3cc0544a80d8a46d6cd9f5bc7e50bf3d22cfa338fcfb015af7459dcd63b066077198fbf468a75ff1d4277c04c6dad16866fe79ad52873165078d3d8ad1ffc1453b6dafc3171235acef1a16912ae4aa7eb4e31e5a3664b19f01bfbb75172605d237c23d22a2251dcb9bac2cff63e54f5a8145fd2bbf63b76edcfd5e87400e50bf239a83693387780a182f4066d624b7ea1feb629329f80a0c9f07369a6a70a710bbbd80a189e92c9de920a4dc1fe1c90e2bcaac35e2b0e76841ea451dba128c0317442de8c7f95dba18fc667d9b4561302e17114597d9bb1882e35515e8a2ee995af7796b8d88215addc8d41daf201ad155e2dfce73610219477b8b0c2adefa24b27534d5ec7c35d0a2586a14b1a796721c532aa269f3859e50e2fe4008a2aa39f86d82bb99ef6162a7fc6a3818d05b69c4af85d2d16e4edfa291af1a9babfb7d460747770cfa5ff0b20bc4d6fc2ebe88f527f054178b1daad883f910d67f36787029cff7837bb147179c0869d2c87395988bb925dedb34a4b8221735131a558ecf6a4c5718b01dee25147cf12a11039ef6de8001bec3423b54c75db145894a412e282146f59ae7bc1d88f7586d29ad802e8ba080fa6bd38db67e09d8c3018836a6e2f48eabf60d2181651968733272db494aa086306f274e02292df35db37ec2cc15b2866617e9e4fb34144420bcd31ef50fdd42106547fbfb2453f9d7fcab4e3f25d56b502f04f0d51d9c725698576bf32b7a67e168877cfd8aad057bc4891f7d493a07b626c43be7610b5388ec6751568b153051dde7922b4003b6c34f3af807d17e9630cc452a49ae14f6d34b4934b81896f4daaded277c1757067c12f143c552a83495226cd6805a73d11724328533e087b980db0a6d22816da01ba0b8f06d4afebc893d1b6bf8dfa5039ef729d48bc274f3a8fdffa73054d8a562b2683c6f758f9cafb7a2b31dc596f628d081b659fdf08151a85a9b3575eed8978085dad4625832f803dbb7cc90f82b3186708a7f4cc5853ca3e1fe958cffeecd27b685d8b7bc3a6707446ac2a29865cf56d1958438bc09a4e8d11abb0d53e1e8f61e8bf044c6541415569815295a9ead015913dd9979dfdbb7e3cfc8fe520a79e8191881e617d78ba0b9ff588a55698b9deff3046009783e9d9ad99fd270ed0e3a4467486303024fabd673dc2322190f74ac36f2c5c0a3dc36b4f +result: pass +shared_secret: 9ac4dcbe2ce4c1b26961fd95fbdc719296829c8107260b8a21cf3dedb292eb7c + +# Official test vector 49, seed: "1853e72329353b3f89ae6a1b1ef700da8ed3c10d19f9e61ee9252e28ebb0e15802ee43083a12a0b7527088832605e3ab" +private_key: 4ccb897e841627f45dbaa7b00b670c7bb17786a89a4284047a2527c9464307c2b1d4072f357a09df72a768b752e8794218f94bf07a6d288507fad04380b13e397c80ce956e3e96a604d668530b20759438a83b35219a6cf39a44d2cb697453265ba04784501bd310560e7cb693a06944cc2ec1fc1201e5a105b239d024a41ac50103335c170684c9f03727185858506ba29c8d8c19a150bcc6d8dacc1054bd7ab4c054d390ff8484861c8c4b823d3c3b11e31cb2e4dbbc7592ca95e983aee58ef4b6ca6227a2d024ba7b383b3fa752d6c9be8cc91e6905619ea17c0a1b24d2586e91e590ba51c1672442bc9c7af0e6bece484a3b96a4d76467bfe4b199d22646fb86c74864b39a60d8ec41e7b5adc791c1fc563ff2e14ccb8228f1944cbf1aa2f4258d6fbc5ea7c46282d109b8a87cfdfc576d74263be3c866311a2ebb1ad5628e14975ea8da31b7622245330788c340e0b1094ad8c2a1a1ba14663d749013742235bbbb6045733e7e6519cd1c8593e1baad83a50003b73900bd69e6cdaee53db7a7684afa3b4566375b693c1410aab368015e12517cb04b3eb6b824767724ec7718a403e5e7178c01190c289811b716c79a846133243ff383ede452f15b7912f0b763c08de8d0a2c08b67b3b41f39b63bc7bb7601a0ac7fc03dd4a656dfc89179c34f05976be42896ffb49759222f259895dd433ed73b4e77a715127a3876849e1b039cb8a71ba4f2cc640b93986974a46c15974b7ef3b3745c3893b5327848590ac2dc44b5e032591b2acbb055f2d336abc062a1ea11388432ab2a7e402a62a4ac1ac5503ffbca57f2505a951c0ef2b2bfd36ac5e4a0ae116c189aaa95202cc280e08dfde77952bc6566513878c4077bd45fdb87520478073501818d2271324820ea038f79059c871a1b19625fb60a9e7c806dbc444fa8261c1540c890d315b1ba2bc4857445a539af555d6ce710aac7b9dc15a149d1bb356b2321112c6c530a63a9ae1d1b59dacc92e9f919f990509e7a66dd41cdedeb8252d692e3dac47db872ec36bc4513741e31a65376abe99a6d82e6110e2a5acf501e3b785088a4298639144560c6d07c3c39c9364ca56dae571abfb13bd805cfa19054e8403493f2cce7121836d01a83561d734aae163481eaf2ce8519bfbd6aaa1b29ad09f8705e8582ade2774161a2f47b03b2c995eecb024622b287e84500369ce1a71c77483d1c30653a7657f953b0503192c97528b4d92856696d256bba012bcfdbd8c3256c9969819268c40944a9015750cfc255411c196147470743609356e7ca800c2635615337b1383267bb339934c3f68dda85bb582c7bd7131f6041bb21f14aa0b25df46bcf1c6b42b1db5b604c17efd00f6b23c85a3c054c600f9c40c21d1810f6699bb8620146a4c2466cab86b1659313290d9c182da0555e417009b3ae20f6cf1fa128d86307ca75c0046c269df20f0c98342f39af8c00918f93550c668f9e6c4423f559350185494c5663ab81bce72919521baaa81680e19e38154c4e0809e64c184a9396e1dc813de849d13a7d6922cb41b2346dac86f06996f8a71d3fd09b44ca60233c9229750263e88c10264694ac305c7390e2b63d8076863865047c80088894916b54756278c6f9c0730f4abacb129842d1610db66892c52616f62cc3e26f93e22b736ca9f43c16d3826f5e324150416a8c554874d094493a135111afa6d45cf1f58a7177b242fa9e9b185eec54659c887005b702db26a05cf53dcfac6179342abbb707ea449912d9021cdc5716bb469e00baecf754cea89b36eb6b1c130f5d439b4ad903f09752effa555f182fb1c578855a44d4f9048479ae4551b61d34048ff53d911a51c547999af5aa76500ff4b8434f2043fb583e5fc5af9c73584f5065f1e465a794490a1a296bc8bd43c647e4a3283b24c4ba3301b40c462dbc20f28bbb17c1a0706a5fa084268298899f0a0fa4d36c74952fbdca323bb3adda17944ce5898b9027d876a457d066819ab43d32a9a04b2ee3378c23e6cbd25bb2b317767866406d374bcf327b1045cb96f656fae8228295156ce26dc2770ef48322972668c5c746deb4b57b37040e9aa732c79a238227723576ef822e95a6c80e6151f6523fe6db352dda9f7f613a3601b6d61719a21c3696e4c9f80500fc918d96f73135fa51010a83491b407571126d85002a60cccceb5393b459cb39b4dcf175b2134cf515c06b38cb0ea33d8c34a7283b99b6d0c9e90825159cbf4bc2a1c0f131580557f243184bbc7498b39266f669fc161150482de480ab196ba61dc526f8a46a2ae3336a7abca9e2743fd654e965b3b33ca0b9cbc8c96095d78a971a7277496a8c123967e8c204765a864890b762d34e83570a8dec5cd25333276555e7644eeb5ccf8004579c357481000ae9a930a7313468d3a8b6d5b4da4a558a7c1318da670dec758c98c5048144843096c2b781d73a9f215c2ca0481ea5aca259997c8479256841507717b7dd01cfe1755f8ac2bf1008c2c61b7bd13810787185cdf16a17c2cf00bab7eab737a641cc12ea6d8bc802e0661730628194c40a7865a3587cc2f5b0ac1d328307c55388970b96c4969a533e04b425e528c713d41821ca6cf1f5bc74e64859c49b914563ad193c626c6dc520143a755132260d5940c76e20a7f07987fa7c1a4d1283bd700c9759871f973fa6d94fd88015cffb046555b36559420bcb98ce617169465770135b15612a9884586d0232d44606632c50a9d5beb3697669c9940e1739508c360505248f501dbbbabf70e7cffb24652b782de5f4a310a7767826bc73886e60e51230068dcfdb2b3ef246f7701d65813e54d78ddbc34cc9bca025914883364c60576a5e0c5a863a17a9872b818c070647170cc46f44880d4ff46d68c4694442433c823c0ab39656b715e0443e8eab14a990c42a031ebefa6cfd54c32fe4521e218396d53c5554c60b93cf2f1cbb0062c6101686e5738896621e44b32449c297d968b16c80ac7491279dab0f84749842195aa3dabbaddc2457fc8b854752d33cb1a5499dd53725bf34bf34a68457e57e4b270fe0f07323275fb99b78aa90af27480b6440217b01867a1b7a5a5885fbcb931c524395cb11a406a492c4251f9c09e14a45e2b86a98c72f1532664879a2d5557fe9db6bcb2ab6197892e5686b2e1ab35a3434a77a65ebb6189aa00e19fbb045a03fb767866184c5c2e2b155f465bc7a135ab25cc5415b0a42aa17595a32e2a370317414913278c18837f346c3a54be5722520315332b2b43ed4089b427cc8e24f10f17610e40882b4c724c48b6315aa6f0c64a4032e4be75bb6b0702a2cb7a11cc6aa14bccfe91af25642513425ca475fd7e7c387214294a36fff09bb1388a5322910b9906491bc923a2644259086bc5131e5d67794d91f65b24a0da06ceeb63239456e6c3b1cf4fa04165879b5858bf60664aaeb45b3a238b1a926489a2d395473d3a5173fb37a51fcb5ba0c9cc3eb01debc383260b4f5033bee258f66a504e64a74fafcbd1a46076ea00a02246eae52ba6591a8ced21b58971f289847c508768dbba5ab1921c14982c9525ab4b64285723954d33c8a35396db137c0db48a39432da0abc3857c5369b236bc03ef562a8a5e4211986a385b8ab4d1745742411a9712256636e62976f99a72d75c654f8574737b6ad34c129a2eac22fe166b2682840f7043d4339bf699b68d51ecc32974c161136272f9012219bac6bfa8950c6016207dc6566d20b916974743290f0a52b8be51c9f3c239e8b6842278417a05dc789bc43fa1ee0671a51ba3301246ba780ab71295cbd20ada7a07e5593a3933604ef972a711349a0678a60d2af2434b17ee940c067bd89496c90d4b9903b9d146a49c36138dabaa405499ecdc02f791562a5d446fb358702b2a5eaec93b7f4756762b3c17b0e8d48ceb5d5244965168fd9c3e6495d1fd578ba2c168805897cd351202059b5a4b96687465741b077677583ca7411c4331583308da00ab5045ec5943beb2800b30978c31031675a84dbfcbe6d7b27b2da65152c692fb8727a485b9641888b1b36a25491ac76045792278125b0a3735f3e759901507ca4a2aa12dcbccf3c35c68873518a4fc778201f0b960c7b551f038c6201378ee101948629dae0364e38ad079320d2cc35bfbc8ae7cc446526447d60b19a36519daa8331a45f1e4308d564979a5179073130594cc5fc07a1fb6b5966277511544611e018f3f8b76567add2c94a0da8502063c66c54c3a50644e43b81a93c7cf0409b505c77f5d06d34432bec389a137b6fb9f18da05426d03477ff0b8185327c37f449c8f6398680c78ef7d26c51bba9665cf58b72cdfb115bcc2a0715b5b4f40dd01c7a0585bbae739590cca5e4b82099b66c7175c5f858851eaca730fd0c55edf9ae451e07bd366d20a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 +ciphertext: 3d0c67db088b150e110e9a395a143a94c0bf6fd9dab5ff681c38e1ac6f34156cdba2b28bdfcb62ad002b1763e31bcf6316df977e6533e12536bfa9933780de5cffeaed2969902df53f34b1026543523dad947decfaa8ac43b223a5bbc59dd5c7647fe3a17ec79a84e89e820bc0ccaa56016540d3c821ae453dec695b4a2232a896264e475cdc16cbd476fe8778d57e5a31e6b3e6e9dcdc96c69ca0d25da24b2a8ae65e6f8a9eb723594f8e989dc10078e20f058ef8e765c96093e9faea1a5919c27e69396b53c5e87213373ed900a8a763b9cfab262637f40038826fb7355e8f0cb8672eb3f478e577956fc339ec67de582e6d9b5cd578874d3db3d774869b291c5ef0b2a3393fc4dab94510401ae107eb65560d9685c14b06a788fa8ad177f76b176007ceeeef6da8913c82744ee66813004ddb6591a02e745a960a53a06e824a28cbdb197591dcc02658d4f7bdd401bb829a9f3ad2b3cb3093bfab0d8acfa0a66b6dea77e9c905f7fc3b0063f3cc12c190ea6e574b9b606fc5243ae567e88383b2d936e89c2e12c23850470d09c219568a9a8de66bd77612a4f13718da6f0b4cc20d9bf0e437c859ceb6468713159ff61ba9c26f9393fac3fbef93c6718d400ac9b5816c96e5258416df120614024bcb5e7eca61449af540993e27a067203237acdaaf8b0e7381e3413de5f4eaed01e7092d40b522e4508c3ae928996a960e4866f78a0b5b42a7bf43298b4d05169e815e82802e9afaa2bad286ed0fa4a1efffaa1e3854aaa9bf12121ca7c6711f6b4c838eeec2a9b5da3e4ff080d513e18b71e4a71bf9fcd544ea44d5438d4f56bc269c63fb2b4f4de5ef9551a52b7cd781d4a6ecbcbbab8825e2fe6693b41f34f0c07690971aa6243046977c0c48713b9f2c320686e02bb01c789d9a6e46f9a3b8fb480f4d7c755bb5c093f4903a5f332ed9a805d024323635c4a51667394813f01a634c90f6a82a16b6bc1a2b3dc7e25b0947900051da0e5101900fe7c725324fd5a316057955ad4aed9e08b67405dae766aa628f599776b0f3dfa2b12c2e40e480d7c6cd4562f0bbb206eb4478125b5febe34c7c81924a3fdf70ee2f21ee2b3fd0823ea16edc4a5e07f2adb10422e4df4051725c6a99e4f5b8f463eed69d8921ce36e7ce5b6d14a2be719907d7c547a16ecfbb733868455aea386c52bf9adc93bb1792bf0d8b056386c6311015f47d6319c41be520128cf2ad3e1e0e8a568c4b3c07e2b10589f6498d01cac1f8c2a50d20ef7b3ffae9267d3cf3e66cd57d6d42a87865131d5eaf10f1345c1883d475f7b29c8f07f04533f39dcceef2904ff0c6d86b1ca1acae4f6a20a649a95bedcac1d7e87c17cd75ac8b1a636acc3187eca7586db053a6595d7c39ce1e57e839065793c2ec2072371cefdfb9e62c559c3d2ef9b736a61a72695d4349d933952fa9796bb4d39cb5a88709474472a19da3b7589cb01a11de4dbd79e0555f6a290ed047fe4e31a6ccc35a904f4d30d363f10421f5a9de22c059a6ed0e404ffb62b0626b0b0397c30c59d56ee18364c8371d095d1cdb0ad08dea67dbeba8e2883ab4762d4b2ca32485a6747893c03f137780b105870284d523cc92cdb85bb94602bbcc9736175a3958629fa45f26e6c8a84fb61f5a0619ce2cbf5d4178aab325b393dc1c201ea7f751c8916e5281db2eaf733417f12c3cbae76a2c891e7291f54b8aa7e91c05f4bef7f75d86e7827dbc8634f7b4c19c88371087a5c80fcb48aaa051329e8b474d0ac5b606b40323327cab61899c0f12ebe3142766f70da217c57534983041eea96206a27926e4b296267a6f555356f3ec387b2cc21d541560f932e716de3a67fe1afdc193027a90c8b5bf14dc60285ca131a643a1231a5552d624bc930e7b5965871c85c5ba055191c23934e651c03570819207df6e4b467bfa0f2048838ab9658f9abcc6a0a74d81058510d435ef7239a334437cd0254eb4ae2760b51cc84733f18730ba68f48c73cf3a211c9a8ba65d61afe39cd6d5e72c4589b7a9dc4a49a2f05f17afa14c89d4ecf1fbf5769cbda70a570d73851694e1c3acd74f80a25a063843664930f168cb3d679ec883b82c471ed634238b58d43bf732e71368839c64fe1a54e0d8d4c58e06f20848c823f49dfcc17517d60fa56bd5e496990bb973c52596eae1077227e33b04cbf67a30ad91c510bce5f9c480a273b205446e +result: pass +shared_secret: d1e8a626ea8c5fa1b89ae3c05f745517eae6a8710dc1173083209de32cc685b4 + +# Official test vector 50, seed: "027c3d5847ed4470931141104f25b19ae76117cbb64b224ee424ffb782e9a0e988839e0bded0df666fe8e5fcbb5dbc09" +private_key: ea9b6cf63a18d0045a6aac4003930bd833a2109bc026caa6b9a38261ecb70f9992ee3a47bb4335eb80314e699734098178c25f924444714a9348b980ac7699111856623c9d9f2b4f7da5cfd47970a149c3bb882f84146e7b8562a549ad16e447a7c154b2eccb38020b44c6119ce9663d34a646d6c31cf296f5b65ccb055cada93c272ac018902c1ec93c907bac9b7790cf5b2c129738e573c5d84734ae095801863b654b740fc216edd2064c230e6266454d064adc932428e6944c2a7951268f4310209cdba48262036921bbd35c71d8728e46b291f9e865873316d9c0525c702841c3acf3252bb36020d18238d36b245c08ac1e8a28b75c5b29a810d3c6087ed058cea97aadc75f28bc92bff3614dc04c825716f79b363e971ec215974277c02277322c1471959ca699aab4662acc7fb62120896b14a3a25151280e7741bdea18e32a72f0b267ffc7b2108094e1378b169093c007c0769213e28b9249acc9b2acb5f8e7972ffa629a5b40fbc9773e921354b31bad947c45d079da092b5c4b7c094573d1da2d378c8708d98e55061b9281c2feebbcb62a99b0c6a05291345b731788e6879de89d9756a8795839318249849bcf7e432d622a319e57c0a982a2e034be75771f06917a3193564c3231590c74eae7638449989f703c6a664736823e039a571431535af0211a1931177a4761e022bd925f76913c522b128fa54ea1a04a1f2196508a2d65106950437f13d463f1652691ab919d62118ce743440b273217acb03ccd67e16cf85265b67c8ee56a4cd757c860372ec1f01d7e61aacfc55f072423abcca70834b550a4bc8228be40bc08e723b37fe945f66018b6f4808257607a9612f9577d6bd86fcb3c149edcb7d8d28cb5fa63b72a41d42471a0f8b014f8315e1ab6a894b2dc70c71f782c00e52c3f1534d46c83b2d2bbf4b0258c919307e9470e8027e5b261bc36c33511299e1a990ac68b6a735c3cb39baf03af5b4206601a7a6c24011fd56a965190b0b675d33381e5320d03dbcdcf684f782cbc2b80791e00a0b27913001796ed9baeab103bdfe2cddcccb0395b441d72746b5c13470408530460b473466d6b8f69ac8518a3b26c9ca22d077a31a3640538cabbfc852d3159fc26730fc5af89c5b5200a7636e56f74f99953886f80b77f6e22055d51048cb4122bd525710a4ec272628cb50ce549342c314e81253e0cb2be1d779b82462085829bb2ccce74290e2018ba51d1cd08f00fe0870254f4a73fc637d0f5c6d8f56ca376690265c4b7773bdbaa0b08880da2d82e79c87402c38bd60a4c07e219aa30b3566b78ded73683fc1dbac43d033559e81364f8a0cae5096243f15b7bbc3bf7cc061fd2921b12a5feab37c8b402ff97718faa1ffe69122a658804310d9ba4555977b2cb5a97e14ac626fc4770fcc8c325b4e03472f8e62ae7c37918a48f6ecb15c0a01ae920a84b4b7113a74bbd39bd3318c2361401f1c15fb95875ffc55bce76c77c3563d302a2794b92dc800cf9f38c5809c29b4b7e0e38c340e458bb00b44d7a11594a87ca96bab666277970b569e5c21f574563da3dd139ccafaa29f8a79578a7afb0930be8f8914a17415ebcaf14d13f5a4037a960c70884b43c066698cb4a004aa9e32a4b1150a98b708e185a5b4ba09e4678290d33c13c14137a2b61e19495587190d34a2ed82aa0f9861b04e51344e4cb0eb60bad5010d635c4811006a130470459262d028fa6c383417ab81586ae5cdba777071d687c99dc9ab4ad21692d70679e0c4dae3b1243294146d6bc1bb4b8d6b6a3e8da24a27c62961ccef556359a9486db3642102c0c129224b2c035792649923010152c1503e797635905dc442db389acf6c30219e3a25538ae1e696b74576fa7997177343914f45954728499b3cc26c768a3d476ebd7120b336baeb4c65b72c8518357776c774cf48996d6ad205c092c9791e55c727bac7e916a2bbcf994c5f9c4330976b1743894dc024dba7997e33efd944405844c01235d4308c09a75548b43555a8a6ea0d212f5da6c8427862873149cb6c3ce7a07ea39af30e7a7505caf30762798e84bc7e965ef96c51899341567c1324b6b07a984cbe7aa6b56cd52702fb106b1cddaa02d50362cd12737308e3e93a45c9c0a3420c4b71167d9587a4b2188b6ca993b37800c878b5adbbaef794f4f24abfeaa40eb1c5763fa55b7369e5be8754beba6be9319cc3a482a53ba93c417bc9a5a3030cb2a247177eb11b63a672e0039fe71735ca9cea99168d1634df2737b45324034492e1d3c74f10239564b23e39585734c86d98118dbc944dec28869ca8be7e17b39bcb0b0e34e257bc9ba42cc782078945094eb1336e516c62b00871d12c6019700b478b5db43ac419b2c7a50442d9458ba4b853d5a29ca946d64b6a6e6cb3485439abd4a9cf34b5921242ddf3611289a72efac4101b208cb7598894a9ef1ec38e34a58b2c071b3e6738138bbaf416f246072ead83b354a0832b98b551b7210095fe9323e1f75bb99905e5bd961cd778d32c1be94512a7893c062f6a66553152d1c820b8825c25938c0348a3d2206897ab903e6472193b5c2aa3f1bfb22bce88bf3723eaa8292d5446546865218d5827a5ba0da5354e2f6c81eb96cf0f28efae54935138273447a953aadf9757319e03a6ad19d7e613c2cdc7f5a3aa1891368399ab5c5337881c782bec48f9161774686204027b6fd895ed1b800db68c2d9d529156b0a8db90f107964d8f5c860737db2a3375df20b7bbc7f1ea57ab6e2a2eb44b5f8e6980d5233a0791350f4ac23210a4bbaa928273294691b7c441edac04909472e8f6714e99bb7de1076a121576eeb1d419122d4366023bb2fd66937ed940566ab07d7b480b330937c341106c3bc01f3c26eb7388ce7404222bccd7cc42e8a56909239a2968f2da3cea3c6695cbc909ee481b4c619f1e7ae6750b4d8f691d70490134ba02cfc97327c9f14db4bbfca7b4589431e0b8fb8dc61658110dcb675dd1bb46db49605c66534ca53d918aee579557e82c733a3841a7338f9947d92d4379b3a2d47469166bbc20ecc4de2f7c768a0ba4dd788cebac30eccbdfa11ccbff61328f92739e12160b83369d8466421374380a1a2c8bfd701a869b49d09644266d300493badff092390e894102028768a4592e96306130550291ecdaab48c711e8a1822cd278b80357856a739174b3da66795fa8375333554fc92298dd92b3c962bad035424f418b9b626d32b5383005564b8cbad0915a977b1c95710ae490bfd158a2c780e14c85ef92a02a2601c3538c1297772d1045bc4811e4e7893310413b4121201eba6c4db8658378fa3a6b9b919c9247c40ef39a7d564bf13a6c8ec575fc3b58f42426ae1a4944cd638bcf8336504577c65a7b75b06649802bf898fc3337ea3f783bd58bc85e33c51c91412c09d99c310ab9802ddeb4e977a640eb05a6e01984186b62f3237230b33cc4721d984382d003a4472496c163a0c23aa7527a7a98b45260794c109c3ef645fd352b778f06c6de40ae1aac577698edc053e951931e88b75619a2e3a795d9d7a015fc39978ba6832da41dfc1aa36d53351321107d33d00d934ce079f53c1ad114b622ef09fdb70888a861e8b9334610a9c2a5614325b9265219dadfb7eec92b472c87c0f0181e73c580b9ca8564bc1e3b9b70528a30d0c54bbf48b3001c46b536c51e15c4d0844fe81bc035351d919212c699a455b7f0900121a77360f4aaf09443e9031ba9286c0ef18a72a0c6afb2b380452379fc14dde6a20cae7c703b8c367bbbf4ea43df773bd6a3a4c051caeeb66a236244f7bf5a837731655a73bf6e7a3413459cbac0dde329e59fc9521fc2009e480d82711496a5871f33d0378223243137486504a209d9012574b10561fc04deed84999baa3a936a9b1234ac4c4afe451042f828cf40c49e632c6153684448154a023684af08ce13b204ac025991c5e44b63201073f22a50c935b9bc1c488aa8a704bc178ab0a752595cfe050b341a295f9b851b67a3c09010ecf297791c746ba9247df2a1be5a82cc8f904e1553b31d53710b0b0b7372b8e9c0b7c15636097316d46587e07753ba05e03f7cb3c6c78870a7ab21ca99db30217245a29fccc3ed80364ec661ea93194d472813a3cb0203b223b909c5774f2dca50e8a9753e36c33d92c278a52122a72fe389f0f962ce5d3a1d9f5c07000919e4761a07282e016854579b1c2e7c608630c6b2a6a1bd96c71392b9ef15e04f7bcee414cf5d9a6ff701c4d2586506248f4bb6bd4ea4a45fa79fd92aecdecbf20d7ad8534673832a0d6ca13c561a446aaa23539624487767e4a195dce0e2bc6a3fd1a73e918f297aa031fcd8c14925529ed33b83ae8e7ab9b3999082be47443720bf6b573a95207d1eee1b3be613a1985b3d6f48dc648787b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 +ciphertext: 74696b4c1a221c93a233381becc649df53c59889beaaf8cc06879dfeabfaa190fc9d7a9b6995bf4d9571d3277188c4db8552bf90a4b51787bec3636efcf8628e199204f230241198f517345d76a105ac070cf81591bd22bc1e566205b7d01c16c2da03f1ad0682d1f32ddbb6a2ae8f35351cf5d5bacdc727d603c3ec4c5f51a9906a3f12bf064d27a5b573a1b91f652c4bac4155045d69669158e226676c7049a439fa3213ef20cc61c8f0b89c194f131e172ccc4c1f6c37567bd910eba09c21abbd3a8ab275ab15136f6fc92593766b930983539eabc66e7f63f572fac05348c7cd6ceabbd1c4865e346298b6df6959caee42fc1b60df6373ff46fc935e881b478a0983c1467c1a7fd343693996668ce1d8dd147193d85fa44277c5a21c57d1d420e1e5caefe51049285ec812dd0d4de6117ea2fbc9e9d74221c4e8340895ecaf684081fb845ed994279e1ab22ebc0ddaa9eb5066052aa9cd371894035d56d125f40bf836ff159a14dbfc99d397b703824b1a7b74ac15514905fdadb8034c09f018d3d87c4d2c2d520a2bb2a240050fdfa67a157bf1b17931106c859256b5f06da1ac1666337850dd9d4fb1ff879fab3a87b645c0e1d22b11599584e67e44eebe9d3d6864538d86df728300268f0c2fabd12b474c7fa2bde4dd04353cf54874663a029e2ca6017a6a59d6611a862e3826a1f1f18b20be5beada3bb1edabf9ef0c0ce83ef22674feb2147c769b7534c4f50f80f48cde1db0ab0934815e39f963430ef4f6b4204016363e105e258e733371c8d6a8c517150cc75cdbc6dc28c98359ff083306a0b5215ba1bc17e660dcde16add252177d931b6d8bacc181dcc5dd285825e083abef17438904b46d21b2c3914543f34e3d958e41e8089f89f5aa1af040fb1258ddc663925b55fb486dab814a45210f0ebdaaf4bbf2115b0784862c640677fcfdfba3d05c47e2c5ded2f6c03b42bcc9f87fae722e895bd4f91ed91207f8bdbd4f849c73e3b53e8a5ac14b500ad19fa5e9675592595250c8e54795e829443d9c3b924efa8d64a3751e34212205ea88061071b7b4fb8309e0dbc0bddd329a55e30d4eeb3369e9bdc2d949565f6c4ac214530f926b7dbc5b6bb9a645635b3ad1056d36606c0bc34089f50646f0bb948e3ad50cec750de11a3b4436c572c10608502d8ee43dacd12b20183006070aca57dfff0c39edb760b29a8d1e2790825961f8d3d2b27e4be8d06ba613f80422e40d77de5b44793262fb2e5c5d613f4d66f8d6e29f5aa312dbb80eca37d9faf6b98ba63b0dac2622ca7eb1a53ecf7ad39a78d34dd787ebd686c155041adc742d8c13480b36dd8c50856f2fac0c8fe532260b6e5e8f79d4836033bec19a96b5c272ec3505b800b555a763bc7d673a876a9ecd4f1e64fdbb6bc4710066b5c1f943a53f3e934b1f9d30e8edfc2aac8c775bacf9a447626838aefa0200df587b4a4bb930341342d9bf4af28e196abfcc98fe8c98ff3ef9a318304680ca5221fb7f8f408e6f5e56ba69a9286afbabf3d733ef1b958cca8bf57c2b7e23c1209ca90d6e3e8f10ddb54ff29243fc340f28b97013f15cc21a92299e4cc45bc007ba13c69f3ba4af497aa17b289b3379f553b3ff92318d7f5f3fd55691a094761ff55015be61a7ac24128f29f552ac8faa5ed8ba3a8654c035fb08180f1a72ede79cb6c549475cb1da0de23e42fb887a30ff16732131bad9014c58364c5e91bc12988ca31a8d9ea5dda91411f7cd5e8f4ca503ec1df40ef53bf0893265241aef66fa85fc15c07726439e741ace97300bf89fc57ec746e34c40d9e6561f69ec2871ab520723fbfc72213d7dab6df13cb96311b502423dd0109659a93b5bf692eac025369a9f2ed7fa6a30a824d29aff97a5299c91280c4f9256677d872ec35df835a20d621b6e407df36ae67d769a30899d1f3ee148b7a8b2b05ebb3fbff4046a08b9691b5036d8176d72dcb6227416f68ce7de42d9afe1a7b20cfcfaa6803e043a0b11d614473b46c09751538cb9acff02767b957efbb3834e282f439565d3d144d5823653701c19a1ea7bc0a204d72ca7641377f241df87cc98e0e355877fa1ae26f91b23dd2113412bb7c03ec8f27da2612e26ea61a911a276cade74d287f57c292b4991808a66c8c25afc3f1ac370333fa9c9261db06e9c6dae2446026ac9b95641c60ba622f5547653ab4b654daf578458b0 +result: pass +shared_secret: a74e04b62bad015f2346f2d44395cf5e7c380cb5228c55e843ba8189ac2fd7be + +# Official test vector 51, seed: "450751d4401737459c6d93e6c5f2fbcc4a3af7cd7250ccf404bbb817a67bab7b4c9d0ef4570bfe25cf919da331c31d88" +private_key: 09e4c3ac7c3e706ac8eb1a3c09ecc4c26a683a3b0141298052e81871d820b931a79e4a3292550098c93be9ac0d9539641825928d8398c1c5082550489e1aa671b936bfac883e23ce83b24122a28b20b5908b4c5d65e4c8322bcae55755892c8896d9ad6c4b78f1d616aa37c61f3b117ca77643fc65d74746b1110c6a0c6abec7131f79c62a5b90d6ca21139682165ac043d063b0d4644edcbc9746c498a55d2ccc1121996cd82769c9f388e2c37e7ea3b5e4e76da12c4121ab1aa40a5b8a045e5ef767ba1b2da22847424049e73ac213f7333a9664b836abb08650e1370d4e3693898a802896300bfa14ed3b62c8156f76f6c5573946754c95e238136f33709800c589c38e76d76d946581c554aa5d608d613b2756963a3cf512d823afd6d4afd428601a1c5c7de8c58d3727b8bbcd7a704b2b33b161536affc498e5d6ae2d1c9a3f9823dbb32664d36242185c6da03c11fb5e21905dd374641b569ba4d3096ac5833faa0641d40ded086973a49413d8596ea97c76f4838c37824db6c8b4310311501cfde747b4130c916927fce26777f7978f2a0a3c89c93439ca7e00121c5b2074f775acfc4239b0458038c90d71b45f83899c7b20bd91b1c697a12eb958f1618a2b8c5bf1a8b1fc765c7346b53f2c8dd311cbb8985d93e9184dd73eca6036b1a73abb38505744001260c21f123fb950cc550563c2e5240af922c5caa5dfda1afa84b23ae8420960ace7224954dc08001513ed63a4896c96f45824504341f8b8b84cb2979947a923e3883eeb3ce2f06ff38a7247504c8e1c6ad0b014836001e12705534847a676b2c824c04d71467a58cecfa97672069df0376db8c23d1400ce62f1a0c3a258b763a58077a1fa01510a8071dd939ac1183e3bf22f880b5102878b1317a67a874d8e211aec3a3adc921272e756ec16b4694c2e398798f2ca8d7a668ac51711329b30483828f41b2efdb9823a957d601381d2e86ab2502680f1004d67887a890336b218b2940eb60262f6c1593b500f45d18d2f081b5a956ef5b1817250452d87128ef0126b98302ebc3dac33780e260b61f30cb5c81bc6a54fcb362a64f804506c79922893e889bd6c22c16a9018b9a522749950bd5ac6129126dfb2409bd512f5106e3e757f749a5efef79a5949096b47686386159a47ae22456257093f27455c402574ffe725b59a7afe89b036e34e6190928c70b15f525daeb69c71a08f1f611dc84748ce219fa38b89b06a15f576885ea73a4f773932ea14823c404f2004c056bbf6463268a1a6192443dd06b92c8cb0d11bc9f0029d6b4c9b44304cec028c6e46ba3248b7f2912a1854a1a90229402035f1519535e53777a494e5da9ce02195d7646ca2993b38c409f6cb3c9baa7f461bac9a877cda431e1b5244ade7351274bc69353437f4cc9641111ab74e07a734b1f0be390b3421a598ab91770587af7f16cd043990d0d73af2e861b0f216b53865d42c8e8e1baa52735f684248f14b8020461d974c2f79bbab12d0717cf08d72c9a9f8f1c60b4c01362cb4c16620b6ac5604661728781e1f51cbfb7cabc24243235c1dcc19394bcb115bc2a2e6443527f7c446a3ac04c58de930b5f19a9bdbb34c61c3c79a2ba4760173cb55c5171908aea5c1e6860ca1898f51174c7ff50d92e87d989a36da409db602ac0eb8bf13655ea8e9b46956b9b80a4e97918623469d081214971b4b32c34c5bd9bc5d299eeff97629a0c8e935816e1532853952ae007a6e9224839169bff49493c13a5842aaa5b32d9257c30bf36d53870bef195dee5819e185a5db768e950986ca8092ca371863b442db96b62877bbda7179d5c009a9626c6c8537a114ccb571c714644bdc9449d070bd9b35078fd71e862aa59d57630b0b3f0b17361a05aba7b906f3d66c2a1c52da0135742c40501a15f4b269c66683038b4bcc9aa5fae69edbd765e8cc34c5b31f0f56008a04c137f9507096c1a173466a8b496e1c7165cb9631e0b039ea8bfd55374d674a9d2ba84dd29cd200600ff374fe128a8ee4ab3b824126ec3450367784d936ef927e4339cd05fc013d57341ac63530c8808ff734531c5e802161baa0697bb9b8f2545e36a2155958af41d4bc95e27a8ed5bc5a24386fb73ce97b628d972eec7703575c598b7a95f36c89586474cd413396886aea374a0c4886e4185a5ad8ca7f1a7df73c6af1282397a6a9b94c95c8284a0d65c3e614cc73159fd71bbd699006d1b97da241c470aa28113a24eef9856ecbc3619bbdbc25bf1691a241414cc3a816433c6d9466037cca4dcce8851aa9a182fa9e7ecc47e42713e9f81189cb5b68b52389095544427321ac5bb12000371a1e1cd96b585223eaa02218543c6f32a777d79c3de28d13dba32818ce41d13e2eabbc3c1223eae799057c43a2977ecff4a5966a7e52d0554a8907cc39495fa80339160fce96742fe5679cd4c4648910ae0715a9899530723be9b551e404b88a1c272e72b1b3e56144a4974df799eeb20170862305e647951645de729da99bb4fe579309d4abeac03ea4d029990b3fa8464f82e4472125bfb98837e275508d161dde593b490461e6508276b344bb18b93cc3c965e084df68a68af14e6bf37b4dca585d0621a4f32263abab1684ce0b1a5fef971e8fe18928d38477572e55596e35ab6270880c2e6abd0ee9080e75850155273aa38c0bf588e02006f5837c01063360773ff79376a72380d9e123b199b561007f1873a4ddb715abc93d95c7a8549407ec94cd0b928b30e3cdb15804cad99ab2202005675e68ec6f71f70082139b42e5bf02abcd4a4988ee0a16415a095ec8b94d2431070a710d72a596e30ed4588fde91670f3ab70f35a5f0870e86927d68f641faa10f962941e0026908ea7d27084261d190cb62b4354a1c8f06ab864031341637929b1274a1c97bd62208e681f3a96333871c41916b03e668d7559fc0a67deceb0d2f818f45d82a9e4a679d76436bcbc45f1c971e966a6cfbb4e1948f2e4b0620a28d633b78951812fa15c4696a7bb17a9ddec0329e927aa1294e5b7974bbc7008a977e0e13500337cd62b281bf73920f02b19c357eb57b3c575265f1e73a16b455af856826f29be11049a7005d9aa401aff512e8f8210f296fe64ba0ee77b1734bae34000b85c609d8bcb39260690ca9b82e105746acc35fc49ba6d1461a748206361ec179990c1b2ec71387b51c1c7ed344b816008c384eba96432ed66fe4e7225c0047e2b2979bc359a891b258a2cd40ba3694086489088b42452682518ec4c1bf8b56b91519c8d02395e726ad48696d5a2809d7f3021539bbdb38bb11e823cbea2e7273742c87776457a1804b89d524acfcb39e19fa454753908813815349a872e131a5fc91c51579b3a50e9142955ac575a8a528ffb35a77a6347f119ae0fab07701cd4166a0144963ad69268bacbfdca7bb18305efd006e44f812d063b0b7e8b1fd75b5b1662a49e26324f89415a51fbea41b75485c53b661c97ab2b9e193d6f1067f518e8522a73447aa1be8af9cd722eb8653e1837279c5194eb21bc9127f1eba895f9924a254c6b38caa0907018197a771d531a506713d3434c23a3a2b996b7e11c83b97058af811e974819da2147a473686869f4d04bfcb9786a0f9723dc67e70e4ac0f565b85f4bb30ebce82b21950838a2102805550c9fc1607ab93a7e42a0c9e79611fa7829beb0254050ee730792e73975a7b38bb718ac65064ed7090471658657123e7823631e802142aa563771bc6975ce2722f0e012f555c3f021a7fedf78f51020935d01a92362dff154daafbc4ab6c8d32d2a11525a474757c690b21274b443b58458b83766df851d95214dd04bc0af73679249cde1055e1977559d26b3bb60bb306503879b7fbf0b2eb2508aef52049f43adf6275d4db027b6477d6479cfbba91ae0abf1dc8126fc962ce9921da1b0005a09c30b6894ef6b3ff79a0c088bd2d6074988ca824aa18b887073a10c7f21982f802204c220756c0bdf59ba855a63a026125bd5c677db08368b475b52c3559c3031ea56040b9590f859f6c2560f9170f5fa759068678b9e22888671cb0a693e825bafbda853c0b56b79a63aa198710b6246a4aa58b226086416d3ed82c412b282cf38c71348b40eab105ba23b2f3720ebaa6f21c9f7b23c4e324c4c3a821de7957c21183fb48c4c127732ab169f822c3003a803aaba857c6b92bb22d8c10251ee1a6838b18c650cd5b8304f886240e16c8cf4a74f14938a21a8f3e87bca0351daca3a8d5c014037ca5665a2589eb7ec6f29d18d891c0cac822792b3408617166b55cb1182341a309f86f99f86b4e7c54e6c2bcd15b15b091274f185cbf5aa7a7a8ce437adc43de798498003691147635e787ee4e145d000a02fc34e2891d2047f787ad49b9adede43fc52fba6803172487e191f48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 +ciphertext: 41f7f6acd3a13f0f0e91c0565efad496157e3214fe0389a827ef01e586b395079a7e4149d29973233be333f2ec98af0833a079fc604df34cc4b979237327d7bfbfc5601a3145dee46b7c2bff3b415d6c133430a849f9d2899262c0b5878a7b81b7023bdce506753692f82f7ebbe11b9ab07f090ab5b5c25723bd3b41f7984f95aaf9492f12f1901c5eff906515aa974b0bc342e1474aa6a0e838b79ffbc0cbd9af44684a29aac1fb249194c3b81f37699d959602a4870bd1cf6cf8a56c05a10c0f1d3e3f61735876e9d20660ff520a42632c19ab533f38409fd85e8b3005577fc86e06c36d6a059742a3a915a67d04094bd32606201b48aeb2d2e986a15688a598dd618f3f8d530a855167f911a5121bfa08da8afc95ae3c80ce7f9b9250b0cd7dfc44ef05cec340edfa9b34ec510f1b48aaa1f5442540b506be68a5e1afe2d8333238f7e7bc5c1ec0cb469d820c1d4d1e385064bef6424df8e4c1184fb62f92aeeab255b5514c18de635cfafbc5c2af129733fad7fff2d30c6734c04d49951148faa8864c4e4e854c841ad05e3f1482e23eebc714aa95acba233fbc6f562478548160be934935970de913e3d448915f696fd2cd36eef9f13e529bd04e993d632e2d65e3b589891d0d1a4885724a3802e8513ec68360f03fb1b273bc7715c3d675226793313768d4b1937cd5703eff763a77b66bddd49b77482305b3574f0c8adee13e35d1177b9ce29ae279ac4bbe11f27f59261351f26dafb041788d9e57d9aef53ef156635e5bb12522ea4454a52217d8e20961b39765f3a689b9827245d0653dd4a23e628ad08d19812639b62f4c278b5733a618debca4ea65ce7e4ebdd2775ee90db0f5ab96f57be14691758f5cb8ca89b656d1a3a591e9ecad9b9cea665c2c58cf111935a2e50d61ed981340e77f89a12039fa8b9fa6f226a01238f5ad3bb87b7c83506265785a3799fa58baf5ca23780956d4727eb907e327ee3d575899fdfccd80e909b64dd70a63848a5bf36c79d539145c137e860e714617bc32e9297d16c199bed73b06a431c4a974c621e9ccf438e56fdd4ccf89f1b6073ada4b3f586cbf574d91a76c5581cce76ebb3a54f5a60c464b25aa0b43f5521d104a0cab9eee9ba3c4582115dfe9fddc113b3064e57cb95a59e32e7a2fb22fd19f86771fd3c5a5ff430d223442a797f018c6903461242b7cac41ffe9fd4932f25901fda592e52ad42b03c258092b7b9a28d531ca802defecf7f934a04e6bc0a736b136e1df01cc6db426c80871b9dc2e8bb2d76eb258182a3160700d3ca0c72a1251337200bca137147a6e901d79c49fe663a7a43a0d056d4f9634d563a1f3650ecaaaa20e520eeacc863f204420eabc2573eb85d76a32b894697bcc246aa1d9bc7cf5293f405d22eb21411e6b9b3bc3efddc5213a0ef74e32845626092ac8d2dab463bbbc31c8697c265a5b005363a3631aaf6a12459c451c1196c783c0bc8b76454c1034c79a79cd6bd54ded518de741c3df1846532b3ff540c6dced5dbaf4b18583b7b214d9123a94571e10944736dc8bdb7bd747c509d4d33dd3066bf78b07f440ce1626046e16ee05cbd09750340b1ce080bd0bbf13fdab443117a21f5928c27ea58fd7760a812aeebf3ed3fa601ea0fd92f217edfb3423966a13deb3755ca26002142f7d624034206e022a0b230e5e0a84e38c60332b79497fe7a73982581b14e2676cfc5746b6771f0df2139c49a0e06fa7ad0182ce6f197c90b59784eb18a83baf25c1628d1b3e92e4a52a26c97956341416433d94be539add37e4de168f87e9eeed8038df0d649a1c50f6185fd0f144df1c1a7d08a59f6a2fe6e3767a0556f322a1b5f0235e1cbf61a4f567c95a84f564d17ffbf5adeb01a5a2d81f5501764aaff6009b00103dc287eb5ad4ee6d04b8cdfd178e38f9f31d175fe86e22887fdb97d47538f0aa4118f84bd56362d08f9fdeca3110df7b766dd5e3b92f1afb29e583358d1997713aeb3bf88af40585462194cc4ce6a60c570e1401eb93ef70d0c5b4ee09e4bfe4b39ae03d6f179dd5e5e861d4f26e3bf7a03f03fa83c1e0d1ba095cd2168a32e74cb834cc6707905d57c3771fa85ee2c44b54008d660068280f94bde10839ff502f0530fb245f9472fe9ae5f9e252e0d861724fedc5df4dc7b6a0c62113339bdb1405bb039adb2e2d5246383e17197ef89025d9028c05a18526 +result: pass +shared_secret: 8feaaacfb4827cfb8e45729780e72705d15cad0e7754231fc4c47260a740b051 + +# Official test vector 52, seed: "5de720f2d152bf4e1f96a61e7ae5f1bed6b8548e32638c2ccec9f43b87d1bb43dfcf334f0582984d27e440d519ab662f" +private_key: 0b57a478859c30104a9dac5c9c4b15ad5a2c3dd362b50c7ecf4b4f5861b60c9774994752ae90556290193f02b53fc3cefdc6864b9845185a1b99745ce6120f6df5898e8682d2484fd809106c9a01283251569a67fd8692fe202995290b6c54cde2166a8926a96864c2f1d209da830832d05275101a8791a5fa7b42fde06d7109002d580701ec45777a5cef2a961306244f540cfa4120aa146269d8b9178c34b0f9086895cf4376c10176621138ad1216bb1e0a109c0cc4da4167a5fbc7497a6663a5cc2853b347801e5401b2846b7ca0233ccc78b2b79c0da56a1854696180552a05a3cbd024668e593a65143de0a969acba37d3da4e834375f564379978121aab89f2e210934c5a5529ca121c015474afc1b805103226899967c616c482462fb588bd8e90606e440046a3593f4bc1fda596067532f340469bac9e75226b328c491411b940e27d196c872d3630e5a396bb47b38a256f6b376508e1b6ef92c15915469d2b781a8c09bb5382be765af47035a57b0bc85120cf10200f98844c410d3c077e0bf7703ad090fe58a7763c77881761fe651f1b8ca7003a99d7f4b94560b0b501241f102e93476dcdd937331b6a415317df973c2a33c98d835c19b78f548b314bc5933474132f89876c9204e2221a61f81d140083df2aba9a674b088156c99a71f14674b2daa435a85c4ca2cdf4a2588858cdede20516181e3537b1bb0060b448a306c691e93aae45240800b390e77163f25b8ca78a7868c0b738a671f3a78171a931ff164b5bfa058d481aad6245757bc47e32038ac95508878070bb6061069e2a0a1369c45daeaaa04b9766b21c354fe31635189c4516694faa2c72fcc8d15c9162ebc7bbb98b07e52c296a4087ea7eb7a0ac1233ab108c3603670d3b15ac529157356139c4dc19c5ab85c31c9b3ef4911861419f821a8d6a2a191925bb76ab9f203a2e241873b264ee980267f150b9b9b836e88fbfbb79c5fc2e738ba031d8b51439834d96c75d6017f4d404a0f41d0781986e7c72a98a2702143264b153b93b05b08b414a221eafa3a733b8ccaac737cdc6497dd07b171525730978d01b0222a54450334777a2658ca37bba60afe909896f47217f45652c1b1670c54098b962e49493239b62b17365b391112110b3f3f3b6df73008bb238fb029e46c06e488b28e0d599eed122d3350c74c168e79592de7c31f443b848051c8b8bc159d301c323ac43f24c9e06456fd19b72a1c237e25f8113047ad20b686c2541850b42c9056c68c9a95c3413f61c8a713dee849732930b71f0cd65930cdaa816fc20b8db2aa130202418f94115e2b6549a01da9183524607cfa78f787219a4c88ec0c3913882429fb16961b2a8f6b298b24b2503254d6500746352030119c5c0a153b7dc204227a641417669139abb8083f0552cd2a24e3cac82899773bb77becf49aa6faa95cc230c9db01dca7094d44269c4e9823cd17f5344bffd2c999dbc011d466eaf987eb4074a0045997bd18da0213d5805afc7278459f31151c6c81a8b54a3a6562422a4123266d66bb47a1ba3089a583e517f92d3386407a4d9849fd6197581b43c3bf0afff21b14b925954459e0348ab52b5120e140069ea1f47c97d3cc9a865f56a00b1b68190ba331a1a72d06b22847af0248a21424e8c08426e3c5f40ca61a1705fc36c3a228332c1626ff9478c3382059126c9ae101278fa968ff7c3acc43b326b9d0f7baf4f979baf542bb6d04769a05139e358150210d8bc26abb209a3e17e5b6c85a5d5861906c943c3a25bc41baa292157ba5e1998addf38b6d01cc4be39c91e8348b1b38fd8324cf413125aa0c6bfd2749ff43c8edc33e4a68b0ee9c6d5ca31b6e3c2f5a261dcc804d90a3cdf09a17881a697f52a9eeb2d81f48ef191408fa915f6ac9601f19bd4442ea74c2d99505a25b36f83000236a73de7d776b6e57f7baa41257a261e008fa4f574f8f90cd9865670b280d2ba02ba647d2eb6c7e7b1b679f85c03597764a59e51caa147c63a4d9ab99815cb716593fbc898bfa9ce15f68d938ca77ba537ef1215bf160553306279dc539cf2395c004374860e812b7035fa14a2aa711eeac5e666ac51096c5210a3b744681944a5877b917f6cbb7c58123c6372d87b12555105cd773c86249ff866a24942a758aa18ba96bfc11884b9304cc16b669550cc08a2828dc34e704534fcc057a45b25ca8ab600372cf6f60bfd530b1e67309d5004361acacd392d104c9d3bf66075d5949ad75815bc9517f13208068ad5250595d76caebc3b188a268312353e232cbbec0830c45b44e315b4e037f66722f2c8c58d37228a7b3c81a8914de52757947eddb3a99ad35bcf1bbe82d9249d228a15009bc2521162d28f91b70ce3c05c4f027cf638053776511fd4c24e660023720370042c6bdcbee2cc853e1345268235e1e31d41106b1c359c8c4844274a42059724b1ba455e01ac4b800d79d4050c4260b862ca9e30a3cb876852997298609c19479b7ea35691ec5de9a16b09382cad755cd1a008c06b3a5d347b75a06825d4a8077cc6a61543a6e4c362e979a6824dcb494b7f510c1a3557664b8ea3d681702932ba284deaec19e83bb4eb0b4e916670c185b8effbcba3252959714462809d54049561baa71f13ae08d25fc587a01c853b32681cf1fc906fe00c2cc58971f8863b803d9752310a18303298ac6c188b46ac03e3a24486b6bab54306fb1942b908635028238622198882989f712ed3a30ef5970528bb477ee6a670d031e5dac2557655acb2c10923441a77959923bd8fe07745988efdf48bf794659bd34cd8941733f97d85178021e8b20b185e0cc47973173c15a681f4a0ab52c5c4c6f3a2364465d3c727928853a5a55998743e58695feeeb9f06c2cfaa70679c00cc6ea329c16bb4943418d90017beeb03852400b7e87d6eb8be948303e31306a4116fea8ba59d30ab6f0a5060c2aa89329306065290466508c17eaf7687c551100a18cdde6600b9e467e3fa7b10dcba2a722347349c2ed9443c401b6749225f38195c04838ce8b96ab66cc2d7235c8b0316eb7e1ab1ca956c5780fa491a7720b073beeb48b98dc41a1b276020256ae6d85aa3cb2d60e6375b44aeb6e34503fb0a73426cf999af33e89f1f2934c3438f47814d76413b87a264ffc67263e3cadbda0366f13b82d9a789d55f05a30868c6a9b7bc7ca7e69184051d9f2abff4ebcf0e26290e69c0bad83ce3ba19d71133a0d8b347e1adeebb8a8b915247689311e5378d256ffa867fba904217339976b4af06bc3e5a9093e8e45cd615cbacf65bf1b0899da61790883ebec896a095959af55d0d7b39a9611e439a26caf8c71cb05a57ca071c719a281625c2e4615cd4b74826323b163cf161bf6a0424eeb2381df549b050bfb9628461210461a9a35863bc0103c8290244c6ea5ba381c421421c91c010645ca365549c7aa09520257634442b83e5806d2a274df4b8888bca68accbb5350743443d8dcb471e25ae4b748338a922b7e11f761b059bd5848eaa441c812951729d6e7013fa98340ae9a142b84b6a98c6577369053652b3b505d4d8607737b49fe06c5ce8b40ec680838a182e34296c317df67826f4ea16f4547b4fb9cd0778b2e5c66e1e5382db0c0c432770d82a1e20f59ce1eb1cba29a1b9d8a5e2dcba6b04022bb72923591e79dc4f0616b2d4637be08558a212166a97588e128c08579859d1012088a7ef26355fb4b83849aa3ab06b886aa45b9a1824a74b05f090baa7cf2969368e6a82750160ceb0107811543ad0bd25031a285c4186719d9a30270fe1c73ac8bb64d912dff5bc324441df18ae94d03c82b63cdc9085d073063da296627a5cc754973cf296f11aae6bc102e940740c853fdf2576c24b3816e60483448d9a28c3e1b295a4e6bb36283f4706290882b52f7babe54b95772a174a4a0a3767c2f6aa992f5904350071ece661d94c868df7396c1a1588f80f78f82babe28531d97617335cb098cc530c5234dbb4db98269d60b271376a52621fa40a464bfc620cbc08b2ab0198e2bcf6912752b39caff4938b842b1519455bca30c8b15f6e2942b1c6798b584d89382abb26af5be574fe12838737091611adf21507e6803a88570d19e34331f07766d39d57f80ceaababb0ac5a29991a1189a6c9364b93a53e73c13d91c656de3038302279de8a0d45d46715d78a8c9aaa5414540d9cc6553cc910b24cc941769ca5b8c576ae8e559969720d8048291c9374913ba79ee9cc3cc217c5f1a590a7ad9bf27b365881366c2a529a85ef8b34d64792bf786964831da9a38dbd81a573b74a8247b040f60404a038846bc2a3117bbd025b0f7a7de41806de885d79e49a5eee5db12a57b1a7da55ccb00b5b706781da8dd5f11267492109ea905a77270a67315eea1f5c223aa9378bfb8116e6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b +ciphertext: 32381a661b39fcf9ed796acf47b145bbfb95995255370e072dc8690b72a0430b316712f2fbfa1c70d95a3ff4a81a054280b50a7366972b7fb7e3342006a84979323b1ed528969e2d4a1288542ddec0df9ff963abbfb483b204324a26e1c21a9e1c6089962612915de3824f034653eb664c837c7db70b35462fdda46e1fcdbc57d4b5a611e7391c669183ca58ca8a7dc015a3f7c4647d5fcfecf87df2534b0517da8d8a1e3585e918ae72822b37c25633b773c2837eb28d8c527ee211987427bfdd7e93909bbd43783433b587c6ec5ed0b9e75f673884fe22a63a16e8e5c1945905afa2bd194a2a16062523cc0a5c873b02583ec65e6999a20ccf4ba76031773ce2efd50d95e841860a727055de7247c24eb610aad0c65d4c40b90c10452b663538ab81e96879d5757af125c719ec3e6489556d20be9bb28e6c894ead6fa96b9bd8b1f15524dfb1d6c959724b3b46bcea58805a0045b9722b1930a3bf5916b4d8a8712f9af1c40589def2ad4d8aa99a415a897eec81c5da5b0c933ec04f1f9d02c0907da1b41e6bf043a8f85fe5f4ba76c29ce2c8c6503e975efce053aeed389035bbad720d05bd081f72b395890109250dccbb4ce195c9ea46d55c2f44a7baa3e89fd04e909a81d19a964539b58c1b7e034b74babc73f35a34ae87a0d6b44498d4168c65a29841adbcce73e3820674fff1a8f45b0757d206b1595371f0b394e1e70783269fa75623aad43461c8ce8fbdc0592d0f1df8188c66df2c217037391666c2b95e59254137f26682f9c19a2e665dfdea3d79e8e8ec2c0cf9de2559cab184f3acdf0135cc8867615c9e2a7ef4a8861d33f62e89aba5b831add345d0348811324c0c934600993cc6a3e628d28c18c8d416b8b9960d621e5c4062668b60204467a5ed85c857dcdd057350c9af0d6046108943a10f8cbe9da835aa0bb0a803a9ef69e880b0cfb61540d161ee4aafd3a60fe8ef6404b1e06041eb9b6a91bf32f1b6be7857558bf240cb16532cfc8cf5d1e41f18531404e9209f99ad2d2134b07117f49d9d2fa6e7463697593fa55caa39b3dee39c2f377fda9543d90f591b5716cf2f8105f8179cd3995674af5ffb1b91e4d65aae0fdbe8b473349905d4f31bd864e65728ce2e0251389bcf8bb41ddc476f0f4ff5dccf8c35dc66a05f3f85d470c01fd2fa37ad39d187159981276ac684ea7d767a2f07b68063e7cf984cb2c9de7ce3aa98cf2ea1cb1b6b3ea1f42db3ff887653410c5b6109f1f29a272e590bd99145754d238c5fabb1c588c0af8b6e95b698a0349a7a218292f0360b5a32457fe8fc6eda0fa51781694947f97762b1b08704fcb6beefeae1f1af76a5acb12323ca14b92629e323447e4d3852e1177ca219c29e3d68216f19b470c57c9e57388dea6eac11a9c512a3cfe9ebec129e6dc298fae802a13b22b21372097cf60fc0db70be35324152afaea7e4f42bcc30adbf67005104fceda73238eb042b5e42f5f99cb802044edbb0aeeb564cabccb0f356d7e090b175a4175d44f3c06f5796d0cb5054e2a6a73b71a5a0fa4528e9b49acac5cef1a90070d07b0a45c95e4fc046321f903defe1e08b102b5821f53c09ac4d9f1de76b93e6fae303a2b695706c025993e396279b15e29df2aad1e046157bfda3d61e11b7136c82dcbbf6c115b6d8578eeb0f3a326287c64ba47a01ab8f680300324edac1cc84a147121c30700e345509d6d18ab26febd02b9b8760167aefcb05f92f128919f6b2c3e39f39d2404139df30e4176f3d297ed2cf24ec2a310900ca356a6099cab367a9677f110e4e2fd7d8d7734eb4d6d0c9ba07b96248f05793d3ceff900dd3f03ae5e16a95b420dce402be568faa24e6e3470194d7adbdb9762a832e74c788cb97e9c6161837074267ee67c83660af6bb845947f248a88c9e1ed8d3f6bb63799de261f77ca70ac129b60f6dc1cf22360d5e132db7e1b7198d8de3791cd4044573b65f82f013aaa642bf8a93e55b5d9334bfebd549665e20f4e496b25281816ac761f4f4f2064b8c0fd31f281bfe5fbc67d60a079fc7d024657e58475916031f962792cc7fc457cdac76f73d0698af97e218e4aa175411e0d1ffd0188e0e89b45c0948efccc3d9631d0a15db4d55bce5ade1506a52e7656c7dd3da4122a4392061942d694d46a20189559bb03a9436f2cf3e47106428043563ab0d0a2f967173d63084558e20ee065 +result: pass +shared_secret: 7837d532d751ebb2d4e8debc55c324f951e2128559c9f7db17fdea6e39bda6eb + +# Official test vector 53, seed: "d71729dcbb27d7cb39e9e905025d3e55c8602efbcc483c9b866ebf82326157833169243c14550ad728bd1470f39c642e" +private_key: 455c59bac459203a7beb868c8477cf5ce391d9842619abc685ea791c1c905cda7d92a4cb0560c022bca55c78ca606904ce666b79366eb2a06fcd6525f6075f80a5c23e7621965292549775e9250e8f7b6f902a0f5ac93ca9fab1c843b0f71652cce35f8950cb88981b5e9c20b6c639d2486dbdf823641836e453b4f3b3732965b8b9f64ef7c0897225cd495c8d38406b3b380a70c0b499788cb22b5c6859c25590bdffd578396372c47cab57d22a02313b23966e2c2b6f84f49fe69b7bff77474b0654bbc71ab6346001b2c11f446818c041646050cf6136e037cd4cb8a69206a7bbf2c6e3d0a92b68a1e7caba00a6a70551abdcaccb618b35a3e96026b6499735bbc8b9551938680978804b1735f2dab7bcdbcc3c4cc15a73053dbc1a7ae967ec073863132da8f742c343a0b48851eda61f97d6018f7bbdbc674cf24b6290d6a7a9577745ebca38859d5a7c7d1e54cc18983d9a9530910a10ca8aae777336cc147c939622bb433ae125484d2518ca45c000d2004ba72acca4288d391103a9a9f3db703584451932a02dc46eae313f55305e5990cfb776605fd268b63306fada7a4337c51b2c2b44665b93e2a2d6709c0b08a172db7ea5410b2c252a86d2a08d1aa9126986e78a910b852a12278b1df95baeb41965d1caf6798ef097a5f7d9bd13c83b7c87aa29e4069a376668f730e1d85f693742cad56a122494f926944db6c8270407eeb7b0e3e20a56161948baa86e218dad3703d19854e5e475223476d2da9b1469531322a1c7592577d7035f144ab29a76f661803b125046e33eb230cfb194ce37a228cf251e1c7190d9c231bd5bcf65d03595b4601ef519b91232f745c8182c921d937ba8f6a75ad524ae1a84aeb61a1bd4647e7a3f43315445f7bd6db427bf309fa6e715cc1354bb3a66052a7665e53c8218b4afa57b91e9576dbb562efca278b04707d8760ab73799260ea88b10070c2ed6fa545ba8a43b306d326abf7054488702a5882c19848ac8c2397e42972260cc1cbf6b66cba994a0282784c05acdd25cf4e99f6f91086e777d3b0449aea69d85570ad3ec60923300869502f245845c43bff69b83e1ec790af2b610f7cf09c3456b81023dcaa497277fd44733fc836572b76744280aad512a94582c0a6caef92c02b81c646583ce8223183bd4303a741f6c752b8604be7b8b7a0903ae91836d39bbb1b9fb864a86636977b1ca742a99d949818b535db3ae8aa4618bc702cc4a1766411ad6fb993008a0b8ab46a0bbba563006b0fc82c5b1667fba4774f176cbd667068c7a5cb0055f2229025b3c99b890c1cb6757c14e748358d90c040f44a6dae0025fa820c5d037d48c31e11892ec496833d41e1cf226c19341fbab7fccca4b111160122755f35c43cbb75063462e3de16a4619139ed178f78686b3590009153c17d142e34175d1b4c1d2d476c0ba4f8f715f0ec862138bc70a7a919237c2344ab8a971146a013864ac6128315590c671b1e6c1fb329df06052f782a06a4a1fd8a66eda148d03f04ecf878a13e50d657167db2c57700278fcd1813884657caba453dba396005f51949619342e83b601eb1b85de358617663656ab006aac29443c4ab0696c48824db1351bf9dcac02f32fb45105151c936c48642429758979b1089c0696e039e8b4cdce179ed2b457e65b3f9d65afbaa5885a377581a2814ee1b048b10209918fda1b7e2fc4368a525626a601b621503afb0d3f883b94d1a41089c89c8c1c81880fbdb312e72983a38471a8d797b5719799a8c8482c9a99b07240438c01361a156a1bec17619a60535a745670db06b8c33b83d17f9124076409bf9130595e1322137c3deb17b6da088fe160b8345624a5612330c2042b98b13c6c2c8191772cc37623353d4dd2a9e2a156a30a7ad2c3461f6548d9282115a1b115d81293bc155881bfb49c5d16da815ce4ae5c871abc62828535cd8c4a98fd0430711b50d468715368a15680a6e0a78d088660e0364a3f279265f1556c7a711493b666f5b20be30890cbbebbb429b5c84f3f6a7cf6085e9f411656c65771806c69db98168b278f506ce4d385b95468b1e94f6b0b6dfbf77ea7c8b924c81449530161b61b1d0a3884a23c90069837a386cb06b4caf3a5bd0608d7b33dee6a25a9712db231961d73cd6d3b572626cbb144988961cd4a5b3797911772787768b796a5157c180a1264c1bc6ad588139028f9f28b3d8866b8964a5253b79ae86064b5979a0b468f87ce0ae843f34765982114bf327ff08c801a3a99af0c27c72cac48614620d373b23c01d1ebbb3331c4f0ab6cf7a03804545427547acc2a467e895d75486f23cc23c779a390026e41b56cfb04b1e22190894a3c1ee16f19017d7cd75151047618b49921c8990a580a03e1656f841e95101eacc1106f0cb94dc2789bb1a2b3591134b05e7d983736f83cdd985d160a9caa210de0813ee78b411c813fb3008742f793e337a699b3a1180c5a48e12d92b9709525858a70ced2d2c81efa2401283fbca4c4b4f1904e75ad66a894aa57cf240118c73643af435f024013d6664543888f7f30327bc65e3631a4da4b6629131ec5067ec5a8c354f94aa207b587f139fd3583b3cb51e6f7926b9a914c15928738a75c9b618b250ffdecc61061618a8038b3c65841ab3d5bf203c122723b087d4ae2604f5bb6c9013c4f38903f65248c9783db79b98b9a827d528444c26c8fe408d785530d90123d30371cf46307e1c6a81097ab96280ee058d598207e666ca0dc213fa48892c3b7d5f49bdcc894f2a8659fe882201b4eace22e1713c06d74156a6a04d84c0b29f6b53fb61773d19f5cf9394dc03ba90923d33055b5c089f43961ce810a27f0878f4a77e9d60a2a1842a0450ab7208d24cc865a6393a9820b62f96abadcc0650b171b473db3e91906720cf7ea3730435f639c1ae9fac889d76bca6602ba96b0eb98aa44136cc3a978b747acba054032d36509a7ae9dc30855b2b1699628601793062c5705c5b103344c3a77947992a2071c35f6393942dba3b8545eb9a58ded8a5407a270b676061dea1c5d490f25a05c0f82750ae6151de2bf028a28657269789733f1e4c279203e2fb837e6ab1f30c04daedb3ac2809791e8ce988a4c1754c8fdfa8be0fb8c94a240ae3b1e73ecca729b4ab04044be1b97972a1a27bb10bde4240d49a568114b938bcc050b26145598905735ba2a3198e3a375b752d8f5a84004890e25916871a34469a8cdc8b1077482f785ac3e497574aca642d74a3625ca37dac98565ab6f4c95a289a434c9ce9fe61d129c073b5cb755306d47873fb186bcb86ac00be265c320c70788bca0f462fbca6db8805986425a6437304ce48d59588489561d37b60d1f171f03ea8ab817c93ea7c3afc06447eb823e630acb4213b50793457aa8f0b9b484d5830399bc2c98a7fa452fc30713fc85ad9a7707e8343e2ed113ec436625172cd4162cb7730e5f327e9566a01df27d06b460d155c8717469a365acd5ea80b935445a6610efd3062ca954276c70a8085c42aa7f82628655f97a06c098aa7ba8a1783060fb819de027dae9256e8ccc9a72539985144830c23ddbb3a1860147bcc0edb69a0ba03bf9626c1f35a611f686cb71801e130e0cf363b795bdd9c32e82978f53083262a703f85398d0587c2cca06ce1c83ffd614d1a85d437784623814d804cc00778978e0cd3e2704d34563fc23494d84b6a4482401b009b601582bf48d7521676023439ae2c48e5b54bae0c592b64d038883a1ca9a4a843c100a58d19270f8484da82ac633c3550a1634d0a7cb8bacaa19d4500af0ae14499ebad63ca1d2afea753e762246a0834942643050b151cc9aaecb587808754e2aac15d5b2c074667766181309b113211320603499d9b2a5aca065d8c088b24482200c0eb26c3f7de8751ef56850ac8097581852873b396b05ea4c12347309c7814dc89929ea6c3f09d9bfa92bbfdd0680591a69dd855269fb77e8184ddb4aa0d3b2a7013ba06d447598e95222774badd3544b6c80c229392b0caf13a94eb3bc920fdc0ad3aaaab352554a15ad0aca4d7038c208eba4f4b181e8194e21575687e55b5af0c2551acd36824c73c950b1d9a8a76264adc88e6e220396bb1aeb6ac835f2cb3167c7f4db6bf0b6552db314bb91584b86c0d7762041075a432583f8f357a77731edc1a7ea932dfd40a8ac9c09d3a687dd530ff1ab95c4e56537dc6e82210c0d3c582049a180030acfc3790fa1b437e91e1f67262e03cb59a87485658182d1a518822f678c266ad70fc1622c5b206ab7c61510f1c920db37ee852276f1961e64614ec8167fda7091988c176e893ab163e034a7e92d569882badf4976ba648396ee00e3af7f5bdb9a417e243a93c5dc84bb3afe84c380645fad6886c5614a8735a6f718acc565905e35325a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 +ciphertext: 1f4d4173d751f63ede8c9347d3bdb775f629eecfc284a185d9c633ce212e168f1a1716096e7b86ac9d637bd9e31a82582104b08375b5a4804e67ef72e1aa69f5860477c11aa0bbe3395934912120cd65d178e83f4eacd7d68243545874b3e88b670768d7e73b8b2a3844abfa49f1c3996ed490d19513d93576e212c357e9a1d38de0b59fa52e86da6e519d4918d09bf673430f59cd61c7f31754d1c56c0f0be72abd97e744d859bd39c6269f12a1e8e54fbb546ec4fb24a1ab867a8d33ba986366685b43eb5682aaea735361e65dcd7375a20a6f1511e5f2c1815569e93631839d3d443c7ce279cadc2766db0611d5ca845466c4332a5f0ce96c68d4c34e58b8ff81b1b11c2b824215440c25dae0f1d6c3c81f702a06444412c307f6db4765d1c0adb5c890b4655f0bbcde0fcd031297ba9d05e1796264cfdf138f259cf503a2410f87866be23624e2aa7292aa5082e263793e6d20801d238eec7e9180412bd118a6b9423dbee8f313aca37328454ae381a71afc476b993b3c7a2e738981dec9d6c005db2d04138d1b116a71df068d2e146c31aefcebf381f077b276c4e2693da745d90657a38a39311e875737b6938a58d0ec6a3b43d00b86ce3a64240d27c96f1b2edc705632b5035640e7164adf3bd698434c63af5f03e3b62ceb05903c82005800c2e8a5128754d5d74171096ccba35130fd7f7ebb8f1e9413b2380d1c40ec05e724fd24ce8a9f01792e624ef9f77fa1cccc8477f6bb87dad3b13ec15220d408bc6d98fab7bc7a46c16efae45f60377fd2086957dfa9f3837237e7545ecd0a0779686a5c3ff7f842e2480667c8a8c07131f54a1bdfd820fa5067e699459c942019e2acdef021393e8538ee32bab41813b64437609df35ea1b775a5c69e94fb34059ed4a3395abe419e2534cf450bb053f0f227b32969d47ef9d80ea2f68d27817d9de83aedf06fc19aaf3e1e1f61f15ea41ca2886d6c43235d47376c02bc9c061cd4b556486d502a724a05786745f0f39760ccb3c3cab55297696936a835f4415deeede9139504c483402577730ec1ac7878635e1ef482d441f25beb2b0ce79af6691ee0b41f8c56cc20de0e85da79f750e087ac1eb1684ab2b3884ff126b5cfc21fc322475ef1c3a111fcd98ba40ae5a7cefc8be88e192a60089247064a3a705108ac38c3a0d9044a74e6247477233e90175d83b10e4d49881196f0c50096d6750dbe10f11ee263420d63de467109f98d3a3aaa0e577e07c83c0e2b6281a50cf3c33286306601c637dacc6915fb23af9151395ec5719a692e60ba8ac123d16684c968ff534bd91d4ea0144c13ce513f962d055a4320fd31eb096655888bb4a834b2a828645d66c72d7825c8e995a2d68d9b59ef21f447298fec25221e5b3274be0d73bef1633c57323a745d426192c6b6fc8d195c4be182ee95e2555b07597d76cc8755b58eddfc92d08117a262d0c80297defa70bed167c7b4fc03729cb91f063ec0c85b3ea34e11d5835219516422e0b653f1a4b6c6d85bb19238e16b5405491f482dd517412b00d67596587dc6d84093bf681ad17cc293a5c70800419366796d6403259a62ff5cc10c02fde2abe8bbeec6e1135f54579d58f0cb8c560a15d90f11d289966f081586f3fd0476e90a214ccf66b55404400f4ab2e41b9b2ec1d1bbeeb61c27bf8d6593ab65ea06b5628289d0abb1296d37b17f17da5ef89cb180a1b82b73aed5469864e3b751c9bb45285c2caaaa904b1f756d3e053be1fa86f5fddc691b76714170b8be35a9c6e8f180965fb84a430a62f939eeb4c3902211e9e602c205f57cf91607b459696136486dade5099a9a2a0c20508e0b4d08c35f7922fe548a4313b246f902dd7384f5d8677c150b9b4c3ba3c985306450cb0267d34bede536e010fc8dfd792861f8f34890b29b92e7e6840cd05a41a746a3ca877f6a1ba79808b91b21e9ded72342565e651232307f6afea7601433b92ede5d4e80cefaddb313a8c6e08a3baef45e675773cf201e6b86050a85c6f3b602b9b47edcb75d35511e2a4079d1584c18329a43be1a37b55a548b6e8504c0d3818950070d6880856c5f7e5ef35e62b3f8c1d8f4328d522ce7be164a27ff263cd09e8c8e365b92ed898927bc18a534cce4984f36a8b42b4eb2ba7dd26b660147ce5933753a2959b4071826f1caa12b13aae83544863c2a46260592d0479e9b807dc5 +result: pass +shared_secret: 5354347e316b6122fc62202a775657e779e82f6b292a11ffa2b9bb7dacc4f1f6 + +# Official test vector 54, seed: "a7c2c8edb3601396beb2df0657ec82fd5780a2723581a9e03dee1cdb018440439bb1142cab0487c5d136e9af46338ab7" +private_key: 62d210ecf64cdf77865b40c9b663c2d30a39bc7916c4d7beb420c29dac6e3a7a1fdcac2c68a117966c2bf4e2aec3a7895cd83f0e426cf826c8d679055773798b748253f34a873824b01153566499460bbf16b41502e97bd7a4cdeae40ab2f4372c755bb0a624a220b774345d3ebb235e06afbea95669e75dcf78502f68439a485e72427345e17a845109d816c3bee592ac82c7b27902e43b31b5460e37a43a16fbc98065125109c9aef2c8f1ccbc99ea571781595fbb27b8f26f62c995afe082e46caca8929e5c48510f05b1c6a28ba5c0c652dc0ff6e20a5a3c8d19691f0a29be46246eed49b66d2398378b1b3583656cfcc1f1cba0422b2a5e474c5f7854724607cee3955e108b93585c3794cebaeb8f6e4c24b653988a84708e3bc9649394f422c25bd88ef774aa17f8bf9bf19aa64cbeb4d343eedb0bfbcc8b07330334278aa7901f8b7810a1e49a3449bbad23cd17721a52a03dae0822a4333c6896a303c26356008aa03c9f9414b47c8137bee6922ff9160ca84d9a0a11e444528004ad471598737699ead095c4991f99257981a7668dd60d97ebae26019073657409bcb8909c3247bc7973b79882009aeb701eb82bb6b568bffa379ffcf235460143ab7a4624f797ea324e16c6757072bc0e5c95166acb3f9b30ffdb46b5b720bcb55209d96f4da40faaf21e2b9b5014d049936469a63940704947e5670310178c65f9c7ba44a6a6eb5580a0174b43595933b19eab8c4d978d29bb8e7ff4b37fa1ba4dd9af62daa5ad879836849b88678bd3549238e2674963770a657c1389b023b75e8a7262e8c97a94444fcccc63f3e4c17db97c6131b721561d28146521f3afa60bb75b0491e9f22636017f7c2587e8e64a8cf4b2d0c5c2dd53322419038e239c7f60b10c66905917c2c7267303d565fa30169904159b7a2e348cb641782599787d7c63be7a536890dcc858f7a43a7080bd3593f6da1f4c5454e745cb4ce2ac2a5051e8052a3616b9dabcbac6b5c43fc3c28fe0505aa823fd324d79f0c1908c2720b37cffdb58c7e822a48b7052748a996043c31364ab3b9974560f63e00d7e06184ae0485cd649374632ffeb64ed749e1bda052ba4c0a972c679db187a345e8c055fee4c28df4537795aca7a602a243b77499146f649226f73991beb88544ac439e53c2f060952bc5fdc3648e8b850526837b2744d0e7323a97598e01690e04c63d92891c64b9b1c962541755cdd861390dab893b3adbcc04d52f0ae193b27fc948305e5787bc2c27efa77c7b6823fa700eba383c96a119d453036ea2966988acb289a324a02272a75acd3a4551562ca894bb63c6d38b6710f90537dd007b807bdc0071a88537624876d58ecca89d27757c9acde480bcbc96ca3d338f014b6da5251d9578ded5aba69b7047f88a8c75860cb652c744571591369a69ac0118209a70b2a06790baff6c35f515811e45b9b94a9d9b4add0c898037c2988858eb15bafe5a88439f67cfd537a3070a12f40394cd86afffa967a206a5ab72afedc52acc6add22ca1e0b0816d729d68d67bf1b387eaf43461a5cd28ec6fb70ccea4828a9dc6237f04681ab4cd3e9c69138b48459769e07a3f6ca684c299bf3cc95df9656df5968ce5bc91c87487a600236bc64ca9881797b626b0881903a899f945716fa32d955711f289328c66c518539dcf9b83f241347b11210e4a3dcef1516be12f9ce514c38200d8757220b30ca95b7682eb16f7a305f6580b4a764c23470bf159846e656f62da82b8db4828f7244608320f5860d02821dcb61415249779d4941a06bb88c64fb14b8fba049960c2118cc9473f66ab577a953e283732c689506b4b4c95a4ac105aa418a144b2901180876aa4128424baa807354e12631473b8e05c00d0d505ce454bd425a0a1443aaaf92ff2237bc0f7458ea72b6632a2b8b760e377ce48ea5a60e8c4daec0670102c4c747492f28f81069cd1d64345553f8cac531f23b6556010f79b623ac6a8fbfbb68176c41d3609e73c65c1006de04804a0f2222433a2d1834dc80828fb06c098565297b815889161a58c0d187454b61a1a2986ad7e07a6edf27fb4626277892bd12051a0c263e6f94cfd388e1e32ac4de308edfb070eb60dcb5887fe7ca44ba4a39ba7bfb363c98b00b60a4c7781940bb69998032c5f6a930c1f65420b0c2bbab954ae55ca8282b1da2a61f1b111df231df1151504e9031b7b28e793109ed49d46702d25b37f58fa812f68508fe2b9efc319a1976064a648bf7a251a948b74ca3f1985c5f114033e1240bf3691238b507bf28956a52204459eae072bbe10431a56af24ac15f8b546a62c03740c16ecc8afc58871537c485ca93617a324f72991273a0549b377ac040aa12a46d366462ff7b76a429bb781922f7a5397385421424a24b366651b72c5f8870c21835e0b2949f61eb3571cdcb780db683c95e23b708889303a4b9f2b862b68a4e2614eb2d8169ecc1349d9b71b5206973487660b6e4cf544baa688202b0e8df9ae88d85115f9a183fc95265608661993839914d9926cbac8993013c59e979aa8444a54972b99257542e4adb869cf56dcb305455bfec5bcf64137b72b2a6c9b0dcc6c386ed616d6a25259ea612e89c21a170b64e379458b0abd725dc8f53a55e57604282dd474c4ab30c4218a32b4183f0df24475d01fc9f8550b0aae3990bd414561463a023445bd23c7c321dc80eff509a6155cd6b2059fca448ce05d1f0062f3c21849e38a7a90bfbf15b192265f11b5bef91a6bcd0823e2e1b414750e057583401b3a5f140ed7bbcb87bba4b1aaa1aa75a911dac26298a7b9a1830a48332f139f7a4a12a528b9486197999b5717cb8552b38f7f759becd04970eb64bb4826a5cb47bcfba7cc46ca17039f1da30dea436de4b6ab76f43c06d1a1db65a9001a1e0f510d7b4755137bb4c08a710e9a9d7fd8cb32d64152c0b85f40b9cb433ed1d7bea1821c6881309642053f993739e3bcd38951433b291ea26f0948cb2dbbacc3088d58d42de008ab581b0b3a9341ac18c28b131fd4e49964d72d65658c684472550a06e68391f8d34bc09a2f25161745c74d68681c3b333ea58c412f68b44d066e33cb7ed17253fa655603dca0de7a13c7c0c78c9630f5c57ae925ac97a823102c423d0b7a3af864c7a95885e574d570895540a3793b3cd0c73b5a21660b64577d6b146e888a113bc44d78c175aa7ee72760f3b62ed7c971ae62a3e8f08ca4ab7daa43c51a18cb72158de398326589241f07a9e78bbe0c4cbc5dc388b03a7c131c885fb63841445469c42501d198d114c31da36418985ca5d95196fa12b59599f90750e4567a76a767547baea91c6580a628c3c052c3c8bef8755238c2b31d52621ea5579b649f6328695af62aa8d28402a554941b11baf7b54ffab7bd21918a0a6d6a368516b4a04354b6a922901fb8a0e9bc9f7713b977226bd8477d5c7088b8b90afabb61d0b32de98529aaec904aeab8d0240bcf114c5e3a2a44f0043b628f03fa04addac64c918916a3031d6808104539275901c8d8cbf17741a6e185250c7eb9379de46176d0b6cb02621f97c083b8fc1dabc9a0cafa9585aa848606c9cbc58b96da5a8f414bc9a6ab4d9811cd3b3b512925bb5b352cb67f76c810b3fc79113685e85595d4c62d41633fa092c31fd3102102960a0024d1f460be791bdb0b19b6610604fa26d6423864e93493066f859b86b6c2693a899dbc36cf667ab5e4d8278371cc411abba846b780090c7023a09409cc4541b4d8784ba0f643aa62336551525b315d6fb7086ac604b2272333c071b23595ccabb5459b6307b59786731008b14ea142c89a066d5e5c502724bc384013b5544a99aa872d5b65e5100315f70091d9aae9d1aba29c18a5549d11aa195d7046ae51a864eb4d69192da8248300f985fb5742a8f0623859b2a7aa600fa835a0aa647efb62b9309ba89a9c4b7478a8a1086d6c955834223600b65a80342cdb6788f09b138456773aa8a2b175f477b800c2803867253b06b5c5296d8ca3a4c85496fd9b413383c0cbb95880545c168099926c175bb6008b1abd69505b8c782c9ee06877523802a936830c9e58145c6591c66bc56abe2804b1ac28394b9f0db695b15c560bf48ded5c54a47244daf089975065b8aabc77e4a6d1178ed5b503a4ca40c2584e878c5c15fb41307ac297da94a3ea7e204b8a4156489df3577d74186d5255156aae92f77512d0b54d1c1559b8866af41ec7db75cf658625f784ab26089a076ae52103ee3053acc22a21a2920c65c10ed64372380292293f494c2c663a87d7eab6ef126a4ef50002924497e70154426f8b9801b09ae930907e6284e384a1c6554b2bc594591397810b18d01bd3777534ec53d050d5a81c049eab8f93e7768c39323dd805f12c6553c204d58cbc47d8e8b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 +ciphertext: 5dbbbbb0482e3df0ce0cc4bfeacacef5a8c408cc33fafb645ebe51452f7e1f4ab58c0066614ac8ed6e71a53200ed108c6bb6286b97618eea3aba554f72d4074edddb457e516a4507eef3f5615fc111a5a127f6b28b925fc0b73431c3eb24258e671338fdb6b5508a5940e8b17771e06f3988051549aab62c21180592f4a7d4ef8befdd0760d48284fc977387b2592fb31d638e4bfb0b8b40d00fd8a5ca33b1ebe235c3b35749c3ef9821d4d571a3f32212775dbf8f6ceca4f21ade85dfe5c7d06b11b93217aa165937ce8ab6d5fe513074bc7d05d846694be093dbaa95810984978911031a0313ee25452151d04b57cc8e1c72f88400f1ab93d6b929b2e70e5742b95bb6552e8b228954dfcccd4a009662b7074c2f2b116b1a091a88e5ee7f15bcc0736f00d8af3a430f75adf20eb30297c3928c7f33396facf62bdfb42ae261b95d6a0295906598f4f0e5f06acc2dd390b0e7fe466edebf06592b8a238397aa5c8807dd555003b676caa0de103ca3850109d42c053474e8d8cab1853229ee32c9f65895e73f64da4e485db143ad754a50d96f01b674b5390fa1a5a644eedf8fd3c84b4e764b3c4a8052d6a3cf45dbe98491dbcd95a173031b33a2928d50f3a71728b9b21ffaa4fbe87a8e54ee00a154690739fc1feec0ca8899f225a3e92e04121165b092669f4ba41b7564f65b158c401e8895a365bb1ffb9d63f59e1de277e387bd519f60c466114823180c75427863465cc9e8ce8713d76d531cf8ff75d66573071205d69ce83b5fbef5c6170f0bd0c84db9e2d18171b52eee79ea76e0f960f80e783cc5a73d3360abeb6a5fbb93798a8cd301ea9ffa1c0fbd93527e2ea37230b9349405edcef15862f8adc9c04d95c6d7d0a134fb5a16f8dab7db9d5da26c56829e90056929daf41de948d968338537c80ebda900be95ebed473025c20c1ca8a0a2602581d4c8b17f01060f767c461c7da84751bb75de30042e56919dcb6d429833ea0ad72aabef9174a0920ee3bbd1dc216e07b5333092cd67d4cdf5d7c306387aa6762ec4e285de7d2be4d26f15e775fe4f7cca27ebc4c3b3991540975298e83c922123d8e6e9994f3542703a84cffc681722ff3fa15862ddc062515a2be78b60c2522c4dff01b52dacaffe074c573bc360856b8e8ee656b609791c86f192d3362e7ff47f616d53d028cd3dec69e33eb1b4523f33bec0977a504626940f4491362fa46888f8729a6883061f530a5e587be29bb1569d41f2c593d7b5209342f59f118b79213fdab6fa145b4aee2ef4b6edb888afb59688bb3688e66a0366e5cb0379d679cf5743e184d7978ec9ec58496e9c09a209dca53181c8e07b8bf3b4b8048110e16fb4cb3573700acadea95e7ba624e293e8438512bc122dd2f71e41717ae965e56ffd8aecd15e8530fb5b40ae25ded10d6fc5c72596077dd918a328bacf4018896c8ee24e18613f149316f39ead53019c042c872097de18f282a4978149539df1ec47febe6c352916cc804fab02b84089948ad5c8c2e94626b7b7b9fef58453727f534e3cd5a3a30d7ae1a7be98220c77a04a447ee7b65b36890a4e974d20416449a6f48c8efc1924ca17f44d28bcc7d76d795049ef9a0eb65eba9006f8d487f5258af3647be025a0e60b8998b5914df9c1cbf987a32d928b410b028d45bae13a4b3e5d6ae0b0770b634da807e23b0e2cedf13adaa0f87cc1553f40fa81e51490dfd072c05c5f9f86d6838bd177cba78c36119413f7fef19af1170c90888ff9432992473677b4cfd3b87d227809282bead69d05ae6f005648bea7a80f405870ff3afcc12f87cc23e56fe31b200ff47497963e407ea244106d54b0578b9d411269dd7ddcd0e801bbe9fcc0accd43ab0c88f6ba1ae664c14c231b6762f1fa0a1eafe23d9663b85818dc8db52e35ecb420f8faf2120ac5d3e5d51cbf5fad360277311cc1e8be2c9150768ee3586cfae7ffeb8d376984b86b0b08d4f85c7688132eba1bc272dd6f1a6809cb925c2d27354a87a39f0e1ed129625ddb437d5aa798c674c17f671401434b93cf1b6f6e17f73f2a286800471cd7861f71cc9e15d09ff533b1a34f43bed647f55759e85f706935c3ac7c16f851648de50b238d648b0a7fb15bc9f258bf0033ee19fd6a8f3b2071800ab761d4c3c66f71b8c0813214f428129879cccec4e697bccd2b3d5eafd14bb48c2bd46d7bebfd2123 +result: pass +shared_secret: 634c1076627a11c878cb3a75e7026f50656e2a90614b6d76985998f51791ec27 + +# Official test vector 55, seed: "467f6158cb86b724039ff18c47950ae5c49170163c910fc9a9b30141f86e9c06ebcec91497bcd156d95758c9f0c6ef91" +private_key: 08d1b85a3b6262a96eb593935cf9aa02b2738496441be27303da5e8a5badb4c23fd7c2873c28429c7778a3f41c430786dcc92e41d41ab97028fdd1a87914190b210a0a108c74c86597f280ae4195b39a00d7a35a210b80d15c1aa54945887634e7db73de2945355227b86970bdb0abfb8baaaca1be8f4382e36c0c3bb972f68a5d7e089ed430c977d4836e3a18116584e1c860c99277c00b51e6480bd78004ad660bd0002fbc4b04eec53def499da022741d96ba4277a2ddf1ae2d309cc9cc3c76c28baf0180b03b4d5751572c2253e5e033114a81580b960059b6cda77a06d990d2fa285d7694036b3c714acd7c80a6e7a28d8ba01075b65772e65843e679702879e4d77fa61a7018da1d14b6664b0133506bae1840a6f2ec8897eb72e22874ce275ec4a81dc1714343d31a0e99cbcd497dfe5376d8e3caf40683f7491f1fb85ef9a43587e07d21196161b831b0020c643845fbb26101389ffc83c88de29def6b550b683d374c26883c4807b51a23110ef6b8c16ec95e0dc03f7fb6a8ea09a83cc4a82ff4c7e407271acc2fb3943a3b0a1571d1c060d80977770d0bc17ed94679381984ddd7460f782a8a596646a49c48e59b0890a99768740f1c66d58a7dd7f88f27dc4f41b28db4bc240aca187371110ed39871ccaae2972653db394312793458208a29ce6a676498a100a5199ec642853e4661247b0fcf60a218f424a6831eb2488300542f1f354863db3e32878758d21fea35b06c79787851a61da1786bc45008085e87eaa72623cb41a28200ed0b4cb86e77f510f4507c6c321891d455842750e933967890ae10e91b0eb5b23789ce5da58ee120b965d20765830f9c4079a64848708a51d1826ca3425e0ea31727107c2ad28d1e8b0a6559094cd5c000c271e70b98949359be468307526f683a32df61aba0821efdc289aa273a9166abfb4abdb6c0a66cd444f349c8c2015ccf5cb3f72a561cc37bfc210f8ee4b0b89873b67506766383d279a2f1d28077e91f6b4ac289d3bc3934766af53d2f238ea8227e9e9226b4f7a8c47b8fc5874dd30c51a1d61235bbb5ddc7b22511a776359ee18842e5b8341ce045f6cc9ea6922a0bac7db004217c0c234b52c53a33c03c8b1990f29fb2816d7aaca9f633495ed0aeeeb112f180b2d740b550550d8fa56b9ee659420a3575ac40c3d2041e01be4e58824b2bc85685a5bfc7289494175b81626c7b88530bd031c68cae15a76c510310b161229cac449ba38809be3446734a84080473c80a58c3e1a56ae49b2ee802a896c3c051d92ee2bc7dd9478e5954ab98202a2403ce6bb3660e20c4de2c54289963f2cbcb692349a8a7b6676413105923c6c30a557c958ae16c03d7817a963230692ca16cc8cde66a8b0a01b0d63b58d76b7d76b078db1351931f0c23673c275a9fa87fed1a758b9302d8e65567ca508452b3068a9f3eccbf53f44cead8103c3b0d5df16d605b7ff9296434692b2a8c079be8659cf507e8d59663e6116ac03b43f54528427176a354420212f9208abbf933679c9c302c39fbf777bdb21c197065fada38b9797586e61327565e40113cf5980a32936b57ab0719a837d2a394372230d9f03a9aac0c8cb6c5491c7ea371bb17740bc76b851d77488c3b4c21d9c510b49971e11874ba9c46e3af7b555163339b3c739e4349291e931bb2c9cd86fc44f0e1911c08864cf3bb74b3484f0a7a347ca8fa335c58a2ac4687a33787c1b49b791c026c7d4b1adcf13b4c7a51e705c1ae114e527690b2713234d089fc35b880027215784d27e50e6a513598ea7a47bbb574a31d872c3549d307850b80dfe04350b814a297340fec56662c7131d99ae573800d0669ba2b8570119d69f30de12535cf05acd9e8b66215b6d2979ea7a64c25941c69c61400a62af40412fbeb1870319b37bc75d9292e2e6a76659c87e22cbd01fab946f1c855bca6d3d052ce42659c8c98d53674c83800d1776279a494c44617c281631dc9a338545f14fc1b7b7b407944786f8c25f69ab5e50c5d4d6315505c5cf03bc23b454d2427501a13c813cc11cc76681b90264121aea8594bf087b474d821ea102c7014a796429a05d38a1a4b8e6ef8504591bee10a3a7fba19c9d8122c4c66503462b3a14e99144257203f76ca484fec606ca158a8e29d944760059a381bd53c19d170642535f7c56a2f6bbea8b824a81339da5945f7175d08c69784e67d5e079fec9129ee799a1860ba58485ed631cabc19ad60934c192a27f9266bef098ce2d847407826afcb0ab43057008339c534b9e19c5a3542b40a3a88d41533b346754fc09fce920ed73b2fd7048e540bc9af49247122771fec129bf133c3c3711a679353a9a0ad47c4094471aee9619eb58a3831bc60257e07d09def864638498d3a731f24a814177801ae900b5fb6cf3374320a261d57c170dab6a473c86036733e85f290c9aa4cf7b56011c61723839b1e7c629c7cb5f4e4bcd1d6c9fec583d4b78670fa7a53f65b9fd0a91cc6620a5c1129339ce2a93a66618c1ec69e584a0e9c283993268fdb1c8ec25669439472d409447b6a04cfd699d167252c29af53eb27f6c3950b456861b7ad273887bcb3b41e75bdf2962b604ba62852a92f7b192cca7391accd0ad0bb65672e66317ab82bba06766917455f7fea8af660cbf6e3103f7a60b9736bf897b3a53c9be798ac0c493911b835b4514f3e095a49a474c0c907987867cd11ae24d22d20ea24ba028f02d1b295605270c00c732b1c19658af0424f2b01b7c4b8896e6706ed564b87f21afb1208f9f85e1b40244d622a5aa461c25b0319567b7cdac03d9bcbca028ab108837150a6426138b1073c348a1de7eca92acbbc0a95aa88864d734bb90cc8b8dbdcb91c4c333ae46dfd8353c27438abab8a60572d19c5bacf6b35a50b86e80a7b9b44bc74f74b050c2d6965298d33150c63c7a15150fb66082c851637568c2e5a9952e7ad62436e8401a0545c6415a948adf1449a51779005bb08bb75fd518c2dc02ed5c0b63dbb35a37612ec44b2a04a3d3c15414c0193ef5c09aac62d1cb212bbc7bc7b380bc88a37ab103d872605ba7883cc0bc83a20b2ce28a31a3b0bec216b7b1419bca5425e255b25a86ddb5ba95900c108f036a9ba2e941a1966b225b03cb7335901e6d32613b54806c0c737984da16284ab0b4594b0734fe5c6018c047d238fea777538d49992992d1a012f4a65008554405e3c0bf8d386c2eac5e07470d4d6015de45b3f99cc1b9b6f8e459e9987b773d69e3783b520d1282b177edd9c631bb4a76052c8eaa8aa1bd62269a2b2d7a6ba35b1670d27be1eab28d1571054a67e94ab3adcca05ec609b5171a1d4ac1b3a2876e33b7218c7b1a119812479c4974575208540a0831446a7be7ae0150859ad521a0d891b7a6cb9cde236b48868c30ed26391410548eb21756c3d9efa564df5780ff7b1b1f830bfbb70ce7181df82abccc941f1d79b6db3a012d5b7ce5b7ea9ca24b387cbfc34400d47200ba07d5f82c28991b289f56361f31330245f264149c9567feb569f4e2c21cd9b80a10a1ace3804b899410d912d42a9ab68b76c2b4197ec5aba066453fce1cf04d2a315961126cc04fb63361e137a258832679865cea937cab03534746918080b1b92cd099622ea137e4d6b0b30d18ba27582775398027bc54fa09d7a23655655c491f23181816d45437be2892eb73958b56899f25b3e48874434f12a0052518f3caf11215df0bc3265d648935a68806a75617506fce900de0cb07f7686223b9990719af5252ac61a6c44a7655f54585abb4d26e2ae5192c2381009b4796c87097c2657095ae03b924653bffaaab6b9035d176fb34184e58227a64059f54b44fe62a68c7a0e798362de1966db1a982ec3af25ec20f3824cafdb53cb526f055bcabe72a9e807079046b57eec2f681ac8ebcc0734a71ec65224e4a80244340ea1d339e44c7e2c5717208a034e9a6791888c9968987e710fde215207eab3f38aa49195190a885fe75074e17920ea64b6fa077336aab211fbb757880dbe36247299bb8f65c132e48c54d47eccc7aa124547c910831bd98b07bb1f435ab7c96a4cb9b46b36b6b667da4eb7cb2a12f1bbfa88b98f3c6c3704be3f000f65562d7d4c4977ac8c98ac44958c28f65280ae68466f6b7495650cde4aaac4c68e07767d09f44917b29df63352dcd76c1e393e0d5067c76855a989b04547a625762c730624835a6636191c83d3836bf74593839a83847aff3bcb3ab169f65000c6aab1df08994e161861498fa2e42d1203786300adb060a9c2429bc7325eca24279404ac3c934ebed4991502bd669309e7a76cf09507b31fbf659deb7bb881f5358d70595c01fbc7ae7183540b7883122d67bafbeea6f8085943992ed8b051cf758a8b8166c1a1e5f818f0deb30fa1fa06190424c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 +ciphertext: 9b957d47479a6dfd155260fbfb8752d27e19f551c55ba9b4b6629d8db47365a328ffe7d1bb1fa7ab7294c9ff449cacaafc8b4dedfa54339b5334301f1e17de9e27b5a5985420fcbe6b163d007830147ca38d9f9aa299ea2a4cda106304634ad47abeec58fc06528b5c245a90758a81ffb75648d115d39aa75856b64977ee1a7651c826a508174a7ab9c49a119bfcd973a4cddf2fdb4ef2186c9622c9d93fffb7e5581b4d28add151aee63e66f42eba9f3feb05b4f86f8410e80a33cf390721cababa5316c37b53e5afd955a90ccff287e121c64e3950d6d3e90e4cff61a638cb058648d19c2082a2802b92b10b91f4a0e00fbdb835c10f70f3b87c8b45dcf6615bafe6f059ad4a4d0b4ff94260b8fc421515bc0160d9b3c797df18f735054470934084c287e45ebb56d5464d2669015e2a072d48d46571bc7bd1eef75338d635c9f2bcab03c196d5d1aa5910f10e299f87988e1d44fb42b6ce5a8d49464c3e36f52af37ddee6d39a888f3121764342fa80de26763fa424ea3f3f961074688e200274cf047838027aa56091648793af6d7b0c5a27e308fd3ea090d531d5e1670e7b5b47c28e6751dcad317a5f8effc85dd4cf323653892d1c8126ef3247af8d250f4b541b446339131e90a9c307c93f7d98a17fc066d34e2457a6b3a6e3b4ad1c3b10649e69b11ea90d5b79a501d8ad68937dafcf660703df77375a59378fb3ef8d22250a848ef5f4801472ef39fa6e57e22adcbbc22c2e8730d1e23c4660e3780b6dfaff439a5aac5fb7e9ecf2db74c4ed16e487a68a08bff6918f5415c2f2f6b034428290a6555c6c12708a2883c121194b07f7e55ea70bebe1fd2bb577a8c52d91375fbb7d1561534215d1fe34d4931179c15e46b5e8bd7ddc045b82b09151f68800bcc3a612ef003f12f50df2c00aa2f4e371cebe4fceb0c9e7ba3200c07b04be526e71b859ab8e64b39b76d47bf2960083b66c1218aac27bf9d6b06cbaed870a0f379ea957857be103c3b2d254b72b01b049b11ce3a5c1d90ae13d4811e900cdbbe4d4ef1454bd744e798da49eedbd278483c9c8db68169951bd0063aab7166bb674cd78d5187f1cb5f2505a64687db7b54951ec6c064f625d6a74e86b5dd935b94077397cd434d28824387fab8413ff9b8295e274f869fdaa3786c543e8b1ce9dcb788687c158a80407dad0d4bab16e6dae51a4166f093c572787065954d4732deae996d58e6bd79ee17dc6d78f7721c23b8ee7f2779adeb3c7471cdf3006eb9b642fc9cda393374ced828e4fd4a8af9e99890f322286d08fd63a604a61d5144d9ba88276afbe84ee7c27ab956d253734d5f880974b592ed7174a0ba743fdac3c8c943bcfc93fa14e472c77b5a2ea1bfddeddae59895d43bf3e46c477c9023869beb1e07b7f80a7cf324684e2e0f67ca7843a10a30f7768bf838ff428efb22e4c71e177efd2181c9e4a78e3bc180736e9649e8e9663a76f01751150b74a48ae0bebbccfddaa449611884fb6fd7c335cfc0ca789a78ac1e1b465ca866e905aa971e6b346859b018316cd0bfdb7a3b8ac17ee08b044e71cac64e521c2d577dd5f4c6ac8aa97463334b9485f84b9a19e3cd99d99f911b7a5ae949545819fbd9bc5bc357c07c45801835d06aaa1760c09b450e77e547815d7e8a38c8c46b1c2442ceef1993827832bfc417a2780dcb788b75543b4edfda1d1629f7e21ebdb5b19e5cd72cd1cdd95cc9d6067921a7e23d68c26713e5db7443b392b7039b806973775643ad704376e8e51ba68e8d47af6924195421f98c134a016708312da306c275ad375b1605ff1fbc1a2cf8a6101c4ef45ba9085a6c28c5998b1e9130721e398dd3f4228791b0a09519072d46cc19ad5dfd824575aacdf9aea052c757cb95e7040028bb66002196a5cf9e632869c0fec3849314e6124a290dc4fd8a124a0a3219f106af488e135cb89dcbe41a33e33af79c84b0efa25f6d488ff56d49435b25cbb7f9d76c9ae7fd86f40773f8f250b59ab264eb60c702360813d20d9cd94526cbede732811475c8d7a3cf1b11d4565abaf8d996bcc023bb95601b88e316ffe8e3398b2a9f6e5f6fd80d66152f2f9669b74a4fb9221298ec7a7881ac8197466ae63a8642f641faa8bccb832f2b52b54d2dbd8248ca3760b912950128fee065b6ff2d9288fa9159239f0def0d06bc6dccbec5e5ffb967eafb5e4ffd8d1e53379 +result: pass +shared_secret: 39be6e85e7c17bd9e17a0ecdeb3e60f75cd5fe7913e7556ccf166d24049b6abe + +# Official test vector 56, seed: "687c02de1041abac7b2c1e6ec2a7c3375552ed5edb10e3a8139c24cc76bda44d719d8121a81d47a0b762b4e9eeb85235" +private_key: 59985866133caf531409205b859b9783cc2cffb66f52973ff226822187c58234ae920a4cd64665e6e60ac668a793052eb07981fd99c6592090e2286f0c405308970ddf93857e1c8f202173aa886fb54c242ee64167e9188c797888d1ca74604edf6a21f38a8787b5ca07b49a7c491c240050d8eb234d891a3e120165bc1bdb1800b7b32c254900f9e36e40cb55b4d2b366d99f1c86304f6a970941bec4d48905b33fc44564fdccacd60993352a215daab12a93417d51a3db6c9aa1a0c9a7d7b4a2ea121cf483090bb855048cbb6c4051140744919e4bc651b5007e8f3893c6ab6d745334918a2407a75557ec6b2db1cbd819509958c255776158f4ab1be64e3e431efe786c8c941ad91936f1e37ee396b8609b4e0781ce842c312b1ca70ca80690773455421d50f49401a16fbf47192ca7649e3989e0546a662a84e1904d82133dd2fb83ceb959f33c3e9d46b69a107eb133be1297749386ba7cdbadeec0508256b126f801138a17a0488cccea64a0238384ba53aec7b342c247257c5fcea471d6123c942b312b486438351ac4b5306c6699bd868087348de8f22f7f714ba3b74ba9b9c63a9098e45c1e37f2a4db9c5b9a8a9f662a2f3fb1bdcd48caaf1b5f01574db0712a34429a87690639fc148f984434ba7e35173f924a60dd70208d74443921ae4805b03c77bc48bb7b3b0964e9c743d02801b7a727025a79104c8eedfb80df6552f7038a373283d7a38b6ce430dd8b46ce067d0b699ee27b1690538541d28742a125bd2bc801a660410492707abc70725661f16b9ea10e7fba2da2d256962887c2a12d282907220456ce8a82ec163a54c97f4b7a9392d004a64731ca6b883c94a836e0539db41e36d9471cf13c0cf343ad250d05a26966898505a161a5910132d747fca047b5489a32245868778a68041b6b7870b0730afca761e640059d200f7a8948294991e6954e48f41e5f039072337aa5f2b3ec4bc2f1f12eace4ba397230861773ef628d3f13654352adfcc7c1e91510e22a4d0ad799c94a889562145f1372ab85bae981023458ad1bb9859a701af2c2149803058f435b4bc18e8a62c68c355c8b8450dfdb345d47a2585382e13c7d2f9a8adafc4643f642d4a463abb34c25341545816c169527641a63d85c0180d74a09b070b182bf0921ac8f59c5dc194ef8b93a0235cad649b781c58037e6153128bca0699d0b9494db44407f5455cb013d1a9073de80a128e04cecbc639c64898d022f3c0b514408c8035cbca60c4eade1bc5e9873ef1612890c0a253a6c34f0cf9f9cc8afe65737523cb83a90de44847102ce96956cdc988448f7134ac791fa44c0bf760e07b05482fa1443e72505e1b2e4e73f6bb775c3a1072bd62452d7994056101a63467da7511572142dd703aebb4bc4723988c334f4f71baaaa8ecc764abfa43273eba82b46b53f2b0f59f88cd2d113e49b52fc740ea0a5026be88739aac300e2810379027ca3b5467413b3484578062aa6b01fa91186bae66d3994cd41c191cae212a546354c7bc22d169dee7132a8c53fb6dbc4e81ab5cff448f5e7acd9c5bdec7c61b14a8671e45305341a4b8416798138a475154000b1424b4c2579a630a0968dfb7595c92c42292c5798b6ce4693c7566877e2725dbb5871c51fde7b2022f28674d11d5c86c0a1874099fc192af6b4cdc50843131c232c59e6e48a21dc1b8926b40375b6eadc7f11a8713e08c0a15220001469da3a84a8a802b2737e596bacaf674c29d72fb1d463286cc3916b064e076d53058a5f86118506cd99e8372996a8e32a36ceb31163694bbada95e9c36f02851d379a3522f638f737723f2b840663a60d2a8e25d49dfa6670b997b361394e9db653b269c352e5135adc008ba82cbae431f6440c8ad9774c181dc0c07b0e0a326758bc536cb94c0c4d3e5490b6f7158c93a1b93915cd70bbc78631d9d8a34bb2c383ca2e1a59859c51306a50b8da12c41467c6a89cb6e4506d1da5177b2b443c644777a74e96f65913589582a8c7abd99876f48efe540cfca7a88bbbc7784c2815fa82d3f17645fa632017c4004a5846503c9bd629850438d964892d0208b67903ddfc5476e50967a665b4b90abe8795c7a234b2759826f9b1ab846d5f763007fc93107b1efdc7a2876488b19554d4d3a9f08b82128a170837c0c51758a801316881c56d436839e5778e79553d97c6c48587bac980e17632f7c7af3de5a9b15ca6d33626254a9e83009442289274a4c860f42c86d8060b2821c873aa5cbccde4540a8e5a6784ac15e6b30cc71a8de57a83bc5924d0117bbfbace8ad5cdfeca785eb224baf8361eb64c81453fdeb54e4e86ab4a397ed6e84b9ba73a0c4b8b606318ccdace61b70df22c4518f463d8342ba6faa846eb55284995f36a7467385bc8b77689807ef511122d12066e12619e37c8ad0872d5710083a2b9dc7107c955623cb209139034c9b3c6cfb7b3133502621662a61bb63b9c3a4586c2201516ee6c3f2d25026f932fc13c5426d64093cbc768985fb8f70b6871755f8811c60a4317a21ed8b5a7e51c1784b562c2a244065451e22935ba9c3ca6a63dc945ca37489e317abbb02c9e87b6b7092b1b4049c603f087d3596169baa2c6e3a778e61ac5f04962b61aff07a70ea72800a0143e9c43f2972908a27e0f3b627bf14841693613711115bc19659c5b3db6bc19ab7be40c24d5887d93e6b7d31899771244c756790ee881fd605d1383409d608fc1a10d6f2511ce815361a66db6244bffe1b61a46a888a06f3260409239abbb9c717d76ac4d658e728977c9f09bae86105d796f0bfc4b87385efcc791aba5169c679dabe34e1ee44ea66ab3d58724c3e7099bd80a9d52cca8ba95f9699c3ad8c90199a3b9613cf9652a79cbb93c8c949dfb0a6a7a1fc5e4a6032247b7885b3843a7af4c7bd49068228875a002321530bc6b5076d0853be448a8a85a8be09b94e5d65d3bc2194a977396d71924bc5b420aa6283b7ed9ac822c27641c811777a8550168468892987e936488d71c9af0a8732b6ac23acc23c2bf8719be59b23aa96110ff02af63858b7405482d684848d83fbf3b317217be6bb750cae74df77a8dfd32539e8964b764a100688301ac20a95306163ca391d33052e7488cf27d4da5be786caf99e294ba1782d462c446613a15f97e9f5632c524cbc0430382e828560315e6bac00b35c084740dbf159809849f8e104eaa28abd5f6978f071d53279c4689c77c43c0b649b8aa042a9c8ca968f28c81c211f8bca19269a9d79985478707489caf7690b529b988471b12523405db659014138d9a6133171c68961a327099477759261c523f9ba6a008d3c14b0a02295902637912bf1230a8b763ae397f805c2cfb4228776443645274f5c01515986cdba31285f9c72fe7634c0b44a42150b1dc75d8cc512d503b3ef7487371b70d50b9650360f073936398356cc3419f1225a3946a61bb38b2e61f0ef85d1686a29e56192d8a26d42a22f274811dfa1c1c4cbfec8323880523288805ac98000944b667346e173611fcdc3d474b0c30b0620f69b3d45321d9c91a130cb6842659a6a0904ba598ab706336417e17607e865328ccb035bd0646b023c3545c2b437463cffa14dbd86ee12b8ec24375f5b4a3a0548eb9997030ac092a579bcb6a0a984c9f354312931c653242678e98502a519d15e64597fc224101cd9462ace9ba56c421b692668976b3a170d88c4501147e6c68ede8a29fd4951d32ac9dc06f700cbe9b536a476736b1eab14e2493c5a94a07f6ab5a323ec3e9b9f639258275523fd32071739b585b5d8657aa502262700998f0c5ba71974c35573f14c13a70842149c077624737e5a06d52863d63f815d57acb4f0142c9167d2784365ed78c9f6b235c7368f2b26dad962e05f2279ceb44784901dbe87e413a04f462b4395b5e2264784c2ba356935dc1ab3c104b6be09b08941a02512055a1d70ecdc281e09c78214a0e57f2ce035947229181b943c5380b7e6f804fbc815a1f3023e4aab03fb4b0e2c459f58c348249adc6b4a5474622c3262b11814acfa872bb6c79b3614e3ad2a1516a0b0dec98f863cac0b061670ccd8d0c6f7eeccdac933bad47cecedac3a5231ef1c040aef8bc53025e0dfbb3d5c6cb2ae96f11a05dcf8885aee9756a13ca0c1280c4d331d50b850b6c00999360dc585e1d849114b13f3849b361f7083b5b3db470796f5761f7641a89189c748b4f6b88822ec85b04228f04a669c495af4c091b54a3835b379201d9c7273557f73c1e357588b68baf3e2a5c88ab0e9e057cdae06ce672c84b2a04503372c0f370d114ae10f97052fb3ba450d323fd3bb1b887fc4da6dbfef06ba5a2d5344feede346d1f04ad60895ab5aaa698c34e1b3b6ef69049a883160c66533c8a65249aa35006f003d4eb4350a43afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 +ciphertext: 3233f4cc3f6ec789ddfcfda18b29607feb86a95d113e2ad085bc8b00391c70ede55956a82cc4a693d9ce7f66d6955d281a33b19451e9998b28cedec33c45435e6a720ac19ce7ab900fd16d239ddba34bde4d0b4cd5d307b261f8ec893dcc93b635dd7d608586c71560075dfd15effa71782616fe8679197ebb9f98469f28950634a1c1a90f1cb80cc8d0314beccd8a8768e20eb715c2e5f6ca3908bb7b18c5242ce5b22287657caa8dd787c46cbc30f843a9dc0f0dd156ff016bb21701345dbb673fce26277bb49188102b49a52c2289f18429b4cde4c0455bc809a8e20b6d8c779b47cb585d5f9455b416c44b2a8519bd4159d5779b4302f1d632466620ac286ff8bdabbb37299ef5be3984759269af8cf2530ba8af630d4862bf4cd2e4a569e035590c316f9a9346a8a0ab271b7a6a8b7b1dd9d2bde91f4690ebfe7b759f9614412bc76364285cadfc7a4a7b688c08b2b769e7ea7a53e0196dfb7c1e26f447b1a9de9d587c032ba60fe7b7298d1a70dcc96617282cdadbcebe809affc49cfd635f273ac9f57ca1ffbb7f0c5bb0f47d180e562da14d33c9c2f7ce5849f1c68037c31c0906d7ad6adb228f3e9d68c3ccb51d2900c39a2176fc86e50b5c8faf857ff1bdc9a4d6d40982444469ce4b918d435e1878044ada54032855cff3fb9f0841a412336e6407cd8c142c137e81a113da062d061ab2f817104a179f2452ebf3b92612da3592a74054d01f17126b217c58a6023a7381a3d1b63d224fa552cb1087ed7734561fe699a11b073c7402a801326229675d6ce72706ba7b69b87f5316ea80cd5470c4ef45bbc4c0253c7b5d9b2cb51259f791fab2b9fc9821fc76b54107edfeaa2717ceeb9e8dff6cb2a4bbb22f012ff1f87cc4703f52653dde94db328dbbb35b9bb5da3bdbc01c3acf4b2601d9ac1f9a98d189fb1faa073b52af448a6e933781017c38aa87070b4b4c2ace0b5af9b0e5e6eea43e4f7681baab39cf40386fc503f291d45050fc6283eddc551010cdf583f8632d69444d95ccbd15464833c724bf9d2d82bd30ba3874174ac4c2fd6168f282a82795f60486c88bde20f67e645394dbba2670487f9748bf719fe5dbdad7b98cc8dff4a1a4b9bc62da1d7efeeedc0c37d5f95816ffffb78a77ea756e53e28ed69ad661287ad919af2de3f9b53f7a592402218527d8522e8b82cc235e3d5f41f2ac909e40a7a9295fb28d6cdce5a70eaa2fe905e8a1bb997d06ff9eb9b486184931f0f3e8a59ebcfcc814d31c69bcb6eaf5ee9c9a93b7feee0e336c8dd63bf5ead30f419ddc0360916d945609d30e008aa5f7a8b58ae7d2c7855131bb89935c59370341297c896c8278521c4c3eeb558a58114895d3da678249d0862f0ee3842379f59aa2eb4d12a78552e4b6f31e014cfe27b354484c53137630bcb56eb5d19320310b5d9c309bf2c4ef461d19adb919d7958a0821026c5107f5b028d6ce5069239e1fc9230bde296b2eda8fe7b723bd1f5ae93a24e62194438a9673c0becd91137dacdf9f6fb00da48e1417df117d21640dd92d98dc7dc139b6c445a5e275b74fc1e38c8550b3d822c2b2436db3ae0c1f3c5bb86f33f9d36e9af17114f52e7c9236b5b7d2e6da889d5572b8460bb002442d062506e66085e8b90c76c700f6a7b56977aebca7039e152579c4ee27b6c2a1f7aff87f6cee904f3e87c94fb271d074b66be181d11e15e15c4e101018b6ae70d63fbc42a2ae48994e4fed115ca3c84cff62a88898087b5a6b1874da7e14b39f4b09b8e2b10a7428f336d82a39e150dbc37bce6255e0a5e8fa2b74b5b24a8aa601a6c671df2dc52e13cccdbe32c4852e676e1a77468ae66ba1dc2ffcbde477041ec452dcb78d12e3c3c4057b51c74464c41e65718b25c8ecae2fe5c6e069d5163689d2671acf75002839305752512d0b5c977b9da6e981b344793b8b162e78398290425009f32441be21418fafecf2b2c7aacf0dde97896533c11ae8b94a698ab8cf8cb2cf3ebf19a358bc121dda105498fec665c760c7ae16de69f0098fc1c9481ccd817fe9cb5ea31947a35206d9c1f86b8bc8766373bf2aad13233a001e1e8cd865f8edc67974849ab0e98699fbaf73b57255afb0481cd55a032c533ecfa7219cf7f9987679a180a2644eb4d373278f1d45f8d69759319e1ed80eca491ea1df75c8cd98d694fd2480617170cca06cca20ca4650f02ee58c53 +result: pass +shared_secret: 468a5377e8dfb3c0f0b79590876887667c470a1855c55d47ada807cee4fbb8d8 + +# Official test vector 57, seed: "4142237070c216bcbe245a39bd9220533c97651d84832b26727855ad994a0760c52b9319ad404693e4248b8c5ff324b3" +private_key: a1ea441afc0440b20c72e1b094ec44783325ba58a537bb2ba389b1a8e111fa85ac48716072d2345d789b2a9a07519506cba99aa60932f0a112282531a4123c99b8b4eba967f8b82b9b81c3b913b05cf51dd862810031aa7928242ce7b0a9404bc0142746b151eb3b002d571c07893507b7487063a4d59453dca293625cb45fc8464edc0322d3c9ee8b8c002c227d97b36611cc60204af3d88352d6bd6c07c87b1365c8c58d3a2468d2103be03604065734780765e4b932d6b0bf3935aac04849b0498a7087c7dadbcebc167858c778e8a09138481ef7074afc688829a45311d16077e5a9e38744c140159795a281206998943db5315599391d39007c25481bd79c8c0fe55aa013397be3ab85204792872577ea1b3393cfee4c90b442640f864bf0605a70f608657782a36cb78bb37d91748e1bc2bb388880a3b9ad78235ecad24b95f2c0f880a59775c90ca46819300dc0cb35ef0b6aafaa2f9234bfd7f0bf41507fe0166f7a4698e992373b6867704c2e7aea3344288d98b22f42888ee4da9ecc411aa079253309a2a9483d2ee2906518661e64482bb9cee4dc314034741fb7377728831664ad3a333105b261ee87b107720a5da79bb234cde3234364973237d825d98657709715b71a4d7b78952406b56265b6756611d9a2a4844924a78a0bbb3c25ffab7f5b94c96a3a90569cc178f06c884934b547a116938458e5bae601b49754b3e0e48c86f141dfc624ecc0823eb6215476911b4b9d13b93fce12076573b995ac8984b5a0dc33826d3b87ef0a77c363bf3d5c23255021f8612f28eb501890666b4486a972a3522b07e1c13beb539e731167bd535593796d68d6547c7913abc73d8812143bbb2cc6a05908c1038152655df28fba4912c757c9671b8d01570a5dd91a5dba81113a69d15395c25b474dd817d862ad78d24566d7989b3691faf25b88137f3c683e9917152e9b7d7218083df9a0e1fa702f184d745b7dca658b07a42494d27c15fb44f7c1199eab93daa26fe3d5406c09ad407b6d28945493db62a9924e755c29b7b1873f242f7c637d9ec2a222b9ceed63bc73543a5729b93d618c09738957c8368c50a58d01a7ba0bd06548b763a4b3891641e640c89af573be0382055a9539b471c661646047c10c52c4d8121bf32bc89532b763656cfb19be72330d4e7cab3053b900b162ff480dd5018c9202d0a41a4185fc554216065ca0cb01d5460f209debb40496eac65ac73ba264041bfb43db29b0038ac8c12164f9826c20ab8dc4248dd7717ec3d6c2bf974da380a31323b1b38678abf80a32f832e642c31fa69a163b4a3af6250ea212e8033377d1c596a72795196de2873bcc00c21e8b5d75619c31cbb1b1e339aacb204c919b43cc4982b3405d82bb0c97b2db370230c2413418c91eab62e30b57b304a91568a8dd29506e656c6785bf482807960bc962e43fa7d8ce04669044924f8c62660e5a0eb9c4885e739c58c22d7440583189c6c9e51aad37328a1c605bc44136f34b3fa82e24764743a43983f91125415c2e5042ba6393d2159b8992c41781a06d6c5745c5cc3bf10785f19ba1133cba89c2609a26a3524daac54d152b34d62399459cace6d0caa1d01e77841ab153387c64c5dbbc29bb88250221046e927f6e7a4d85c5299887ce3774a726096d37c61343aabdab95720ac89bed9b7ec29a14568178c9a63eae1268f9f29d9c4080cef312609834bff34bfa775b4b3078fba0cff3812c1d79674d13c9a0853f89a1bb9a87529d55548e303d51d8004f539f60d17e3d858037e90e04dc54a2f8bba79a395efc823e085c93eaaa069c4a27720c16047934e2cee970bec418a02cc91ee82a3999870fb190855e571c075445e2f53c8eb65f4a18844032b6991c098ccc069ff55a84d484e4261c7a379655aa1d2fa461aaf74deea4603838b9e8d908f9b7a3939c17b97cc9c330438855c77c284270e81528a745a7b97098b55e7a120791491c10615494b39934143b18311e83b13b6e92bc6d450b47b7589c1571a122370cc98793a13d1e008d57e955998c222a97814a1caa5fe7c336ca331bc6266dcb85d3ebcada0593c04bb91c3155e83b2e0a8a57b5532f799263b0b3111b1146fac429ef4c870911399e8158915b7522477500941b2c560cd7a39000219f2ce082fee023e6c49fe0381cf056ac1bdc95895271f4e245bdc98ee3a87f651191832b224b3c5528562f9498979c4485c3206eee0a6f5cba8fdaa70dec105bedc40e4c6b667d1739c8580f2d246371f415411c803ae0b52f0b5a6cda5fc3340f1bfa10bb29accf402d6f06472c14cc52556e5a97b56c190eabe6817985cc346baa02c76afbb6b6dfe33f711c78896a529656b4abe25516e448bcb41dbabc340ef4b483b750b0180f68ec0020271a0e9b9f466a4728c19bdaa426fb82294ca00261cc0c3349b75d397674644ae5ca363774abe8a290240abe4039a7e124cc894657c9025e1534b91b896eefd3af2d559da9f8558fa7774708a7fd535580545bc68c9cc89ccdbcc78ed5203ffb653965e7b0920574b7907443b9931472cf19c17dd18ab87842c853462366646881592ec3f5cab67b7e768472a08a43681120f491bcde05a9805c6787b96ecccb05d7d944fc858b5ec3828859234da88d8d00542b104883e824e7b630267111e49b1bb5e4103ea9ac2b187e046b4cd109709fca26af813440f30318dbbc34598ee5dc2806794c4e0a8c6b9c2310c34636088da92147d6b32a7bb447f50b898c5a3e5cb43d6e3c147ad085652ab9edda72f25b7bf250ac84d1288fc188ba645d88333b65b1150722334b5616429b608a0c93d0d946c15576c82093e0b263bb521d9fda997a461f1ee47098861feeb8b557b4656cbac57dc61fa9510bc1c95726b561a1ca4000f28a5720c42eb932f1ca8fc9b647d3740117ebca3d5587816bb48cfc1cb4e9caeb7834e1814a7c478fa052640af253371242da9575c2a66bd01c5fca4b958ea437e6474301069d0ddb254bc4603d3ba5b7415a96e5327743662caa7e08f608be974341b70db77a850b2c11e3b4cc6525808238cb097611e77cc449f17c63da122966394e79518fb6022ec470e8c5082a945c73b52f05c38e2dc3419af4080e890a6e819bb1b301046057e548894f511989a40e854aafb62ace7e586793921e292cc8601181599977d9fa457aa2039b14488d5698a8f03df1b56479f9109ad105b028219b3c90adac962369ac1f0043373bc243286c24f599de3a28684524988198971c1f88419ca09b3e4f22b64a221df8d32afdb0572ba62c7387235ee2752903535c9c912ae30c9151a3b6c415d59a4969cc432d088196f22c518037044236eb441438acb6bb61ca45c947ab98a53b44c48119135f776f2aa4a8413a1142cc4eed8c2948f8ca5db39388dbcc15c12d13035763a57c523b99a1912d0fd29b952776eb03aeed697320c66c0f65b369e13c7eab1e98b281e7b17cc2cb9ceab725671bb5df0933eb5c70a3d39e0eb5a55cc20af912af87cc23e10ab77a9c9755201ec393b523f51d5307b176f05fea16a2dfcac794f834f60a712f13ac8d5174d3a7627ce66fb862497cb95e36da3f486c7432e5983c2cc8cc3a7582a6b22c5a7ab3bc5107c831af145fbcf74ef9523bc7f0ca5eb97b34a3872b9870eefa3fabf609475c46b1e736cff313f046b6050c13392571f2d252959aca2f8418f7489809ea51939a1e8192bea5719262208109b37bae2424ec3655ade90a9ca235f69c8a3be54793655a9e8c6e9c64354a842458067295f08b6ab3b938e6b188bc252d4569589282eb703f0cb237a67a779d8957c4602a9bd80f266303898acc60439a975c8e9d8342f6f1a7d6c92f11606435878739d3bd27460fb5e735a73cbd1cb6c657d0a6074633de38647035b54bd10986e4573e09820ef56fd8d71ee778822f72194237c0b5344cd8c888f12bb34fc86e6147161143365fd45960396bf45a8868176c7d0c440fbb71b8c6aca11b6ef3e33484f9bc22d090011918c3525cd0f0724423bd1e1c2b46a66552926a3a6a0389410a3e5c41d66b07c1b41c645787e8503c613343cc73066bc85b028025c3bb6901e33e242a0061e001ecbb7ac690837b02282a457ccae40dde98934bf37dbaa00dae287fa0a628c42a66a7e05a6645b244e909fccb6abf0075bcf0974b97099a7c67a2c71090c7bb016210d0ab69ff775dbc47206429b347e6749eeb3e23983759a583e08b1653cbb5ad4b677f9b9b365287c1b559c199c3945653a3bc7b0da8b41914be5b411268080396795f1b95ae14871397e14f8f3bc940f00d669886668c2dddebf98e5e270510db63b9982ef818d1253d74a644fd56900607545ef85499cb370a74dbc96de89daa52e6af0482648e3995fce28f7b7c0daca7b78f1a230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 +ciphertext: f05495bf998983547ebf417fa81ee0e20f21bf5372e112eee88c6b10b7e92b488546cd524e4eb6a674f20d9c2b0c54245be13ae593a1b894690554bfafa7f5c4b51cf7778d52dd74226637f0d80635dca6f838cb29d04182acb82ced6873a63f7e35da73f6a1c80c12be044412a2c6fbdcad994727b8c613ca1f7c71aa730c195171e929777178188852f0238d30be6438548d5a58178895847e3ad3995fa45a4213062b9cfd0337dc726fff4a71077690015d9f59ea6e206b3fd06a59b792d20cb74c4a69e706daf0efb0e2002d194aabeca9bcebb2e6e99fb3b03f4c98ae7444af336222753c90d43c76c73e20cf4276b8ddfd81e1271ab0b6105f0390852970d90d2d662fdd6675a9a44b4d64fe8e19e43110a5707f0123993d698e46901e78a7b9c015464e387a62d2b07e32ec8137af4b323b6785ee7ebe0d9e95f438fa79389d661820227d1279782dd02bd0afd6d1056364e786322bc17679bb8626f13ffd3e00adec533e1f1bb563016f618a0482c3e8f8dedf903898dd9ceff7d7f4b0ad53e91441a383c557dc5b61af80daede143cdb67ac4976ed740b006deccc2a60b4bfa234e3b2594527ef2acc10edabbd8cce6b6d31f7a2375c147aea1517f4ed29a3fe73c525974c4b0c02917a12e417fde222770ea9f8ce374978b962e0e4ca5c5a2dded62f632bd5db71e80f91d1cda3ccb6861045b35fdd136de1106d5d7af3ace8b7af2af137b63e396fd74d81a804fa7ae1c0b244eb567318d4a446518baba13342bc4290ad6727fa0a1105dfb3cde778b47e8f3886c3a93e2877a41873de3301c745785dab0a31d6b3429abae65416fad5f4853810e9a73c1298e98a8b6b5c6ad48a2d461ff62f114f8adf3c26769f870216a52a186cbccf85beeb6e189e23df0cf457b75aa9744d489f4b703bcdd951f1e8501cca99f299efe177cbf05814b7329b6f3e70f019551f16640713f24786921e42535ba17c246c1a3bc30aa50101c3ba30325e8a14b6d9e943f789103c2498c41634e14ca58c4ae55332418969f146f1e3f3123690137d54533733e7b4c61a06ca59bb99cd2b02c55c6c83948c452e1780bb15f95e05329fdda527cae208c698408f6a4f1d3d081cde45e3e2226d74d280177a4eb64f1db5259ba1ca7f51322b414d199d994c0acadba583fa1528f57da7fdbea17523c3c2659219d735b0b7add995d074a7cf3401512df7bfd1594045e78c9366cf0bca693eca3c0882fcb736eb318f74c6fd122b74db92262d933ea95ba45765f4d68d4cd2a46cf3ea603d4409a709fd0cae87abdc1e07b0f591f6534545647693ef6b8441ded679254c11037380a0b049642e6b5f7fa3a53a84303e24abc20df6537b41eefdadf9052bad0894f467c158b2088cc397bad26dd1951017b9278fbd0de090f424ad58d5f576050f3d319ad6426ba0a6bf3e5df032320b0e7e0c1eaa2662b8c9ef163715cf44c2580a1b36d2442582aa9ee05b0e6c88533c4fb75d3aa37d9244f70af8dbb12df6945baf175a00846f851eec8e30963b0b9adc6fdec86d1f4327138c10f699becd1e346aaf5a18ca4b9f377edae3d0754907b5f62b589cacb24aa60f5569b1e9d80bec0231aea82576494d66f9e31a010416229480db8579e7f9c967c52ca8344a3b2e7161b1779477b83a4740a22c27d1524223c9701d2a410ceae55da373c3a6a84de254f73c917868c59d95dbd07a89a4c41bdeed5dbb18505ba1eaae4d97470768306afdf30b5de51ccf87e49eed389fc3f9dd571b1e29140d248032d8715c178ca2e2b6c1d0efbb59b53972dcbba6ebb8aae1b0f375152bc63dd5a67eadb83bead97c73bbc5b3f9705cc1a83f95a7a15d79a522c7e825388707d63fccc08242b4d62cddc5a3f5a0be9e27efe2528bf26bbe47726cdea7366834929cc06745d57d31699b0e4fd6aa09718654cdade02a79ee69278633e3b80327ad2e732e24980907caaa989130fb7364f313df57607d47d4be7caee53990a1e7ebae03044412b01d35caebab19d9809f6ed2bb60eefd6149d2cd4b45b0fd6c901154546b0cc4119e89e15e2a3e19d3722e46fd89b1692951607debf04eff35268cc6d5c54a5dfe000fc56b5439a3c34a2df49cca808fcafbfd7435ec6c70b9b48ddbb5ab27170314d61d41ef71fbc54d5b17d279c092e920a79cdda050ddb9c320c24e27344f8ece7eed184579363 +result: pass +shared_secret: fc48d9dd239e6fea212e83f63e1dec4bb5fdad92a33d06ec3b5dd53bddcb1d83 + +# Official test vector 58, seed: "bd334d7b7eb14e00e68863f2e5551a095f8af10681c28353fd19b9a7e70b8bfe266840860609008a567abc66316c77ce" +private_key: e8d7111942790185ab64776746d835f4f3b4b8458eece8cf89e08b7ae974bb84c5a5325faa7958f830bfc65a3f57b9bb311928d939b7bec454b051b399103aa8f871f3d87d240693a2d10587371a40fab0a52a3c13091710476a393a90a89b3ca8ec955f3b42287b23b2519cac32a1b8ea6194752a3b1083930a0c415159da51967ba96299065158f156d31189c797c150306c2903b1fa4639252aba2e131b3ee74917ea269aa41cfbe05915688b9e73780d46ba63325601895aa054023ce760347bada01916087a700963aef293a40a0b3e4de60258a0a687e367489a684a22b86e22aef5e5976989b09f1931d3e753a6265aeb677c0fb3629329c28b2061be210b3c156b46c5364df8b74cc95b416341ae5080488b895e2c4e7005901f5397249a3fc1747baf1c8105eb433227c959b6ac876629bcc911eb671689b2bb33d8b6a1cbaf90d81ce3f11200314dc0a53b41dac824ea117e25852f2339a33934278cca7dd0797c7b55af75ae8f6a1c34f288c1124dac01ad5399c1966049e8569efaa305caf9bba4e92e15154d2b2521d0f245aa89788687817afcac195315befb50eb77bcfa487be2547e98306fd9e92bab57cc7935168018c570260c93d712e3058a843aa36e88123815a847411a3c4078e336b2bd26472be6b8bec382898b57e02048e531b335894ccfeb24ede00f9a46a34ddc67f9f73bf5d98a87b50fcb115694e7b3daa7067f287dc665a13bc58661b53137401403a211a3574a7a596679a021f8458c7baabe9efa18f3f82bdac20c6cab93bcdc2d31218dfe0c451724226961189b460958a9bd12d87446b7b8dbf65ac7d908ff1c9fb7e927ec1679da95c4b43cc5a11937b3538446298cc7b55b178078025a229be58a95a0727928bd3370901b180543d78233530186b3155a78162d3969bdd6b6a0204a25066303c495fdc9c9df947959b79497a805a3122c71e96efa728c6b92042b39b45291cc87895d4ab62a2437c9aa7754b54a48cb34c1070b08fe2cb2edb974ba633cc6c5413980ca5173160ca43cf77320850a12e402a0c94881d3c50eb5f317628c4e0477bb4b1b962c15081b2662d65c4ee1099c001835de716ac6a924d3702dd2c61acc2487851a14ef06c36c6925f9e6714291765d8272bdac11651ccf6848975d57323f599de580cdfd892209c7888b7bbcf6b65c1c32b5a8e9885a29c16446369fc51e4155b9d5081d9c74c2eb2c545c07277f608616d800e3ca0ff95a655b7189c48412556a8fdea48e0701b4d1d5175cf0088b70042b5678f91164eb42031067814db0ade6b26c606bbf8cf596947980793ac48f7abee21a854fe00551e98ce039734ca028c8d8a3169c9922dbc273580fd5bb03a85508e0141eef13a37e80ce35531ba7b900599acdd281ce729c4f2bc6b898b47622f5b559e7cbc86a26ad61a0edaacd3aa638879296a5413dddb78edf347879c4c325ec69e2bcc7710b65b4821489aab9ab7c8ff9e6b8bfec9d5c61967b1c77f7823cdaca03a7fc04703740dba421c30b8ac1894ce58845ce9a73b2321c65228ea0d64c68d3c7a6533837b6967ad3139a709acd8517ddb693ecb75ce3db51b7235b34c0b296038a140737bf77ba7ae91c9c49200d6262a2d357ac390c744bca28c9ca4d32a2dd8b456715907b1b42e7381a605b16e4e2a021e383f4d051f859be8e83b39a2bbdb9987a37423b689718c72365dd5b65d1601b48707955724ea106602b6b4c2223b142907195855d652c13cbf29340753911714f82bcafbff178d52bae8b9447cef9745a6b18f53bb697ac157516c3123c526073cd7aeb3550128b1243b95f178705accb7efa2fdf9c5ff9db4a6d1c171aa7b6222151375796b93c8f39b8262d56169f591a8b3964ea228de76710698698f23a147e3206a8641f5c46b7573b1eb13b8432104fc7751e813c4004d25c2af512c5a47bd4a50a37129d7b0b80ae551145356ec304751a8ca143a57c6c1830ab5717e3862b50f70b745b33210bb73b340154b6197f1423f9ccb88feca121e24e79600dc0b047a36b1b76697fa06395ca8769763443695852923572566abf8c5c7097f6425ae1c7e1185b1db5ab75a9856217ae82c61c82265e18151f831b65a5b435dae57a89b2ad55c3cc02f70fcdc55901069a2e773b4f240d6d4ac24ad53108968ce43555fd4bc4e3ba3df7a1541e0764c6a387de455a564203faa38457376a3170360b5303be69450acc7ffdf638a90c7cf4031719eb27fad55e4c901cb7dc5fb828ae50730609b80d5a92a89ef1963d836a16685881028759d06c55b9505e84b1aedc5e07d5294a084c1201c0109699b3009b2c67603c055949f400ad487167c1ce048b49a98a8740abba9291618f7c395d77b0649cbec1a2c0e2d25c86c70320e92be7595e103013c4974b7a3b70d8100d61b89a1ff43c30f48c137511375ba781e74bcbf322be908d09fac8991b4213db7a298c2c29455b3a5092ec8610c0325187434239a8b651f0a164240ca4e827f7bb7345848e01b50e34162a359c2ef8c8c9e6e9b7a18bc371a20d2f086865a83a2ba3545943068e173941e4875600183fb19bcf8242fb576f908a8d805cb0909054de4cb6b84b179478a0bae353d8b10ecd278a310466fc0a00c68784ef246f1f0847ccf72894549806c2c9650c9430b02fdd5cb0b3a9608bc85f02dc32933811d87322dc4993d3d13177b7440822c62fc7a31ea174159814c59bb209356c5dd20620b40d08169df1a12d913105225cbacd9c6054f1499d6204cee06206389b05057e579a9e294b43243ab92e136265470786b256f615cd3540c5ca675c4bf68f7da4760105367ad3c6d71a2a4b209296daba2768223aa30845d4ce7d67c2906156bbc4c24410176652765e294a9e22c58cb031ba06a11b5a8ae035a37db36ce1771999061d722cc99de03e96ec3216543ef74447dad96bfbd386b3154b35e08dcccc88791677053a0001dacd8eb6c34cab6eea355a10c517c45164e9eb4c714091bf129186a6b3bf33a86049671652ceade8b55ad17472b49513a79f2b867bf3157d5dbc929974147903ac69a6618f67781a450637eca5d0950948ca8f3d7c41983b8942b03d6a04842a09a4896ba3cd345e7d72a16ba3c63d95a1e85ac4fbf42efb588b088749e2f66bd6f06d56bb80a818c2c56c5d1d1b5580863d1ef10ae2a97f5f83be12491c7fd629d112823d728a2aec939e163436259367473ea0b63ed37bac19934da906a21e5355a3a2277519c8f53c96b4f1a8704b8d79666c1224819590048f5b9a8b767ffda0a20697caa075ac25b5546ae32eb2959947b11fdd384aea2692f7952266267aa559c8ef9168a04cc57fd8ae46674b75e785535a2b1c0c779a553f4ce5c1bf6094541363bbda825fec4b42035325a3a2b1a8135dcbcbf1122b8fa1a37e925440e95c2e4c0ee1f69318d04282c0bb5fc8616e99c9ace80d27a79b64c843b08cb9fc7a27d20309726cb50735cb3450be54d86860d7708b11a615dc662ecb229997004f9670e27898e78a4b3732b4ae5cc459f28e78741f9355a8ef9b394cab001c912124a01d27232f060ca523d378a5d42e0022bef2d2700d7c6c14da09736679b2a0c33c035b3f0513bdb5b46fdbbf3a5b80d65c4be918511bc8631e35aa5459793f858f364c96f2010d8849229acc89e8a50360551afc8c1d481a1c21ebb100079cf3d45ab4159371c49b16cca69fda67aed5881f300c5864c03a9391ab1080b92601f23a417a0563c0c14b16b0255c36529f74a103036466fa9290744eca08cb16b94f30340c49581becea5b64088fa7498e02b439981cb4b4ac29ec4684152830ed82864ca833481323fd8a8f66ca34bd4abcef70c15c926fb8b6323c609efea710dcb6548c06bc13d6bbb41b40caea5745c68cc550873bb467f9dc6b3e720ff4649aad171bc5527b0633cc2709932f0869a0702da790a305761f9d146c1b24005f6c1c808b6dd5d97c647232e843cd61e39894902b76624b73739e3a1bbe4fb1b4b2348c836592a2d31dc9884394628ebae00112643bcda9a01f34a8bfa828333b32e8063acc5344a4b36667691c55c50b2e3098bb4c7069846283b57fee61089654a8ba06797c57c2e7e9bf1404077b80928f5a1bb6c6a753bb8a95bc46748c32e0e1c8f7aac1e2573a47d104ff9567daa2c0732c501bb9ac1315a211c11593fc1a38a69651347b6aa1250f3895a7844e1de2ae45ec66214a8b41da464baa5fc50100c5073bdaf5b4a88c70450256b6d65413ab3ed302ccbee864c578733d40a796981a8c3849f465cacaec79898cceaac424fcd9b57b426caf306d165d1e0ba6573a638fd7df6b3f824f240e7e0eaeee7d7a093875cfb4f6a03bb7707d37c80474f92c12748b37f448186584df115ee97c195d45a81100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 +ciphertext: 26d223332fb3dbce267a1f4f233b61afa2daa02cacafe508d152b22f30478e423e7a2343c857a7f8deebbb048c4ec22a4ba846eabef5785a4c81a3001a2cdb984efaef5f9e3ac845252540b62b861695266e264600a8a284c048e3194fe84ef07b16f87bbb0194a85369c985f3f84e7f12b38d6d48233c930589af674b23fb36eaac8f07c9f60c8df3cba30aec93a7fb646d25e2fe31fb6746399461f3abc0965ee8eec0f5c86dba92cc394bd66116e4fef46be8a645b5d842eb097c6b8532f8c3be8ba1b1efc0d8915a2a3f10544f9fd10e3f35f7306482bba8e9e1e9e51444a871a26ee894dd35bc67439ac7e5695a32bd21f7645273f8363b6926eeeca3e916d3467e2b5ae16149d7d7e008728fb7956402818dbd1c7244b7ad61332ebd9e1ecf6f70e964ce9fc3f3ba70e9d48caec8f4513e7b78733a265a254c999928204f4c581cdc5865da6fad0e9e9df36a5d4e3c45ad4bf985536c21bee5cfe4f30b81cd966e30b3f09de1adc14ba9c9d39cf970455f4a64ed3abdf672ceff6de1b50459c8c84ad3d1f7fd63e529b6aeda25ca573ff9ef6b21bbdd0b9870f2a420b7dbba0a22b2e5a74d7378b6e560b605765f433fcef08f46e8d3be9582233d66336416853442194136e59968a8a93ff47d767d577258572b70c7d64924eda5722b476ebc44bc4db3f47eccfe4e124525ebad251f94843f5a0b81cd8a6082d15b49598638c1c0a87b8a6ee78cb2930388dbde1923a762eaee2b217c5543dc4ff32c0a5bbe4cf8b17dc2f0f1e6999c77253a770d6f8e1b0930613a50da18856ee2186230ba3c2e7cb13f0773fc995e4ce177438380a38e454dfa3152f0544ea5200004e1b23df4264087bc75e63acfc806e248fa11f32d5adf8f8b53df4ba9e074f2114e8d40fbfd2eee1c6edde3d4847161224bf76ab6dae50c9d277ef3d756fcbcbf693c5eec17d3128efdf95626e0a8ff831cdbff506fcccad8c10fee500d12cb9cd05aec3785a5e9290f580b8d69b4379e143f3b06befc67420975f8937af5573e3b35ed5956fc974a1108f94c991b5f20623c7d484af686e00f6860331ce47a75588d7cd2d5b0656a34ff38b5a0ad9bf69e7168fe6fadc9037b443aa72d2c5467fcaca05ec9fd3a634b37ae7cb2fd82cc329fa0786cd612cd795b776ea96aa5a4c2738e6a9c4bbad68c291cad54c40d566f72c1e4342eba719b50404b48b66e784f068309a1bb52eba27c9069a75816e572b983ae94c3a3589e5619862c38e591c8c02e7dd836a67c5483dee238e881e74be53bdd36fe710dd42e999680db458d4adf6b1495c8647950e2a27d1f3c77542675a80b7fd0d74e69a79b508b09de328a517c1d6b870f40f3b0e6a2599eca98112e97a7b72df92c46010ef119ad9faeb2f854f8680b86f8e84dc87d8ef1b78b483585e2208c4dcc1059a5f2973540d20b17101a22339de1cbbd5ac4509cdd4e6af81b4eaacae4a0778b3e8d4dd9c586370e67a2e74dca8a249ed86f0e402b1bbe60bc05cccb0c02486fb66dcbb8456f2c5f0b38dc4590088b2128c5a7e32a3980007a139f66001a8886778bacc6992108b27331ac25c18d137cc5df933ae5a8fd37e301c512c0a4663a6e1b446589ea649fd840099c9c0f6af432924d9b92bd7af6e4f3bc602831d5c1ebd62b3075a6cc6c2191c09c3545a676f3fef6bc80def9b1803479691311744f9b03d965ef39d696df935b5fc7838cd32baa57d2b7ddcabe2f9138ce1f8110562f524383e3d70c51bf06c231e76c37a68cbe5aca313fabd677f846b7be2e5d646844d5138d012f1189a1b4a43d1e624c4d20a319976c8db0c41c44a5e50c982a3447cf0a0723f4e2fbac00eccc6335e24fd77c16b9b1dcc25778cab0b6b3bbae720b471bc817d778d422ad01933271140d8cc9afa066a01cbaddf93259044f9e4cb0980cb2a90ca03e81e7a9e7444ecd64c6d230c80d12ec95bf3930775bed59af076c78c77e692f5cabb3b788dcaf7115a155bbb60aa9dc0b648df006cd5cda9b12ee2b9ffc37c9edf086f0cc78a303aac777fb7a7383385af51c1e53152d746712bf714ca05186f752533a17859f2926bc9571ebe88af6f8150366f89bf0632fd31773153f57a274fd1b5e3ec61ee6a4a372d4e6208e5491dff3205b5d298afb1dc9f2bf850b2f9a4bcb0127edb08ad68bf851b2056d3b2bbae51f32faca7ccf5892bce2 +result: pass +shared_secret: 7f0ffa83f99901f27f121557ca2da03bcdee03d808e0e4421de3a07c86764d88 + +# Official test vector 59, seed: "a0264c58ab1f2cbcb212077fd378d340307accb31f1312137cf84e3d3135044d4eae8bd38bc3e540a0c14d46458f6179" +private_key: cd85bacc99669bb19f64f32796599fa909499edb700670ae7eacc07c89b4659cb7c3bab323f3761728c79ec67515102091b133e3536a2032093df24531874108d1010194338b16475f531030e0073ad08e168976af67243eab3596b9975b2a216e8146a5192577975883c21646cc20c036577dd709edda6abd44989e6a8e07c555474b3d14215777193308d56fca4aa7e2378a94f80daeb4788f4c87b6477193d7a5d0bb6c49407adfa222e7d34ca19b046cb14a37db2cbe781288584f5c386a2e9c4fae79a106c28f27c49ca2401a0a375664e885070814f96c9048993300065037ec06e1e692a97835c129b06707cd501c6c5cf1646d82365942cae5e104a5bb71fdf42518485c1602838929244a49b194c76cfe2bad0e758701214cc6c938adf0c8e4712e0ce148576961f3b613537a843ac07243926a92a324adc52b65152c69613acc6336341a72f7104ad72c540de40c4bbb8611a03ce9271680aa77bb827d7bf629a44bca141c0cdf912b8b372a32030ac9680a2b64ce93f726001d6ba184736d571cfc79282cca13dd0aa3adc14683ca9bcd89b72d7cc280963f2d37925d57693b947017d61b716626e45a5c6eb295ba0963f2a9086615697688383ee8775228afcd760c2a90c85d18c3fe553edc719926ab0ce6e40d690a53b34626c6e28925b469eaeac11209c7b00a03f020cc25176fad9a2ad2b38fd16b04758a5d379630f3c9cc2b0824eaa882fca6b134011a0e3035b1f2cb19346303a17837c30b60f11ff8795593035c6d335496734c491552ebf4a38ea10ab203b13f325a4df221b9dbb7eb01ab00097845c1335f6349ce50c15e64a02e644e058807c9b764badc44c6f21745c80b6f4264b1a7ce8fa65657d75d5319807a9b5bc17b1d76ca64ec831e113c1b8e79b5a1fc0b32d21f839a64bc212722e1664b9ac5c39a3dd0d8961d53c6dd697a6c896b664a6c7c5a70de5a0df2745a64cac12447b70b1ab16395b71dbb810d763faf817d42149b99181f9b9835c8e947cce200a5a5aa573b44544226b1607cf58968b3829de360952a8307f7fcb157c4affc5009ca6628f0527042e235f5d1c1a91bc178f8288bfc37b2f53077cc0c7c414e59f57e78d5357f447871579b54421986116c6bc22be84080422c9b983794ae70304d601e2cf0ae29f6172a5529e8a4a14a89b064a3b142c4c90e421b59a48471e4852c749b9dc4867c677e52e44363a5131eb5642c4415f5248ae4358a3fbc01beb2568c8321b711bc3199814a2b9e9be56e266b2639fa920dd204dc41518b19b8a9dc0b5ba3290b362e9d071dd61c041b4a809fb92f0cd2b25bf94f04701299ab530ee704dcb6ca69613439c4c288e7a0643ca3ac321d930a99586c85ae0597b2c56f9a870e7bb260df51ba7a62bed6859d7159b56b211d282b7e1bf85d81b1258fc01e2b8b15e3829bafb34aa81036d05531d288a0efda8106362da9878b61a4b3ab6813f27ab65bdb48105686ea3594fab5c2d83aa867055a233052a5d57c741086814b7e4ca39b688669d4688cfd92203c902dc1d9831d3652475328c99bca41a7b0f54a7795f8c2a4f90f305626e4e31b983c9fcb0748aaa856630a67399b37a2f204186388dcdb740f8b8b00ca0e328958a821a9f5e9a26d39c60a37b2a513b79c37930a992f3710ba1f574471f2175d2a777112a4f5444d37db793d87c1c1e8b4cb37bef3d06f8785ab65d8bac7c07cb4003fd4a9933c3117e347664d92a18f137980f8065cc031aeb8b1a98b24656031c3b57d36894964171d6f511058e21a63a2083fdc37ef1848379ab86b7c53eedc941d16174553966415439f6944393660c6209e59981662387a1e827b768787b8b46b685b8bb3b72175a367af89b5f3953f4a636f9bb89b8351866a335a7ea422f9e9c794a24372b40fd277a5ba2a2531a4703e60827f562acf95a8193991c8f4417109c059e91c4fbc289233b080a0aa8a4b3e02b35cb59216a9c37509a91725910cf8b11d6e7b985ba5c0d85073a99b324d0583c7f8c73901847e41c4515048a7556a0cc206711550649926514c96e3535ef6194a37c1a3eae023a8851dfd0bbf0efba981880c19fb9d4e6c2f80b4b8cb4031b8106ab6ab33b6a37b3f8b5d133244894ac86929b4373b30f6bb4395b11914905ebe26c856fcce2c623156e43efd0433c19858c986436150968132591db37eaff112c1383238c0767316c0077a00a4714e49d694d802a510dc960c525bf601384b96b90141b846dca14f34159db490479205b30800137819406bc6e14786dc4079e0481d098ca4a3f15f593135ca64cd7c32c46b45b3bdea0d7fd70dee467020ab49d4360355146d7f00337a1cb452357bd01074234b464a134abebc14f7557597bb057c4972d2f012b59a0b83328e88d76bd257ca5aca8912c2a9f90672903cbca16b9746e135108638c388676cd189452325dafb4ddfe435e13908b177a5fc883bc233679df34e40a09fe384654e6a857e49c5f62aaa30e123ed71a4d79a65bab40eb2ba7e1c497ea28c069ce9898f3789fb1b03cc07a5789569496a5a6b84966dc3b601577b07b01e2bd6afc315cbe74b03cbb51bb68920362474819a02e5c60db441a3e0a2a7299ab0913a92e3228986c18639ab0b952a01c77907e6a0b59625c01b1c406a4b339c10b0c8947fdaf5c14f6721be5c11e3a62a7065a78b9b1176e64ad075150b67aaf70820b9a62848378c374a3aeae6c63cf620d0927971c0188768991734754368bdebcac2d6b899e5ecc20922059641566b4996be455e90ba9aeca1a40ce8cbd68a6ac0cc708458169c624ef80a25ccc7c931d938687ca4a12290711b1e72fb3793a760a5c29942896853e26dd1606fb48c22b53506b4413e8f5b3c20b446dfeb586532a09ad602e5c54d5e0c0149ec3526758f174ba49134c980ac109e711ff658b7cdf0178b8c861a71c700e90b1ddb9265e9bfbc07a253726fc9c54419bcc39932555024af651a277302bf383cb67dd2a929037fb4109c69347876751f4f83955a4768fb94622390790796084215b6108c72e10217fc9134b7872ac6ea3d07b989bc70a23a826676718f31338c68a5b1f9ecba4b18bc47d3161419530b67041b3864686224d0171dbd248a48527950f2c4c857aac6f7a3394662afd84f79d5854ea77c26e7c57fd8a3aad0399ccba0ae4780ecd2481ae065e3597cf1868c327c14baf36d9711a3a8647d26ea52a4f9139ba835f380ce9cc599f6f11586f158f941520d143f75d00125a3806c56108de46c5ad093872ba5f927bb2a4a88e668c40af5b4fe9b17f80ca75ab58224ba1b485a9e1c3a6e82b814a1b23bb0d61ae14a9ca4e95d03746a564087f9c53a343ab7595572cf2542d7a9cc90060e6e99cb2d18880f082d3ac91fbe00c5ab141c6385895c626d9c143ccd94042a27509ff67c802098415a49bfe163ca01a20a45add4916aa512467db549e7b0c898656cb4265df3987998c8737f3c79bedba48b9c6b8967a9bfaa0b22e6858307977903001867282cd38a01798d3b71bed21459ed4c4ca6e185d55525baa096c1897c55789b9e19a6b303af32f493cee717bad70cedd67c3dd89bed6926a0f20b1798bb46d173452a31d7543530311734422f3cc9561d5360b665ad87a19da71a7270998b87d62d5e7b0a5ca969120b4c610848fdc6afc0e631fb2abc21096347221971a08b94b0ca4116c2f5a8188cd982f3e647ada99eeadb3ac25310dea91fa724cf3e1017c0c86c2a979791d30192bc3163ecaf73c819dcfc113535bb3a40b252c8bc269884cf7407fcda465c2aaeb19681dde0c99a3853a861ac81f77e1319afc6f67b2fe52dba6b38523147f4e589ee716172650c7cb44e0b760174691217093ed4421dd5a38f2ca2c41604c592366a89c4c70adba149ac63de1b5e21e78788f33d9e135890e61d69529dd9f658b340848623b17447998bacbf1c315b1fc5bdf8fc357e89448fe7a40217205c64961cd643ac6bc3486c5efc003011e80c4f4494cba123c2ac45f7d9019cbc7018669921fa76db3cb5436763b48a8046fa71d186b57c942f6529930d23737c49698c15404de20f8f357d5da523ee3a117fd8b69ab80335e388fcc661a0c8b583f94a8c7869e464a0544c84d160a828f1770d97be7bc43cdfa8566791727b7884e99a5d9fc549369a4ec5195ef1285860cb263085740cd466bc24835ae33bdd1499ce941f8041571ab638bcf896201cbf0b7324ec22c6d3c00f60ac6e6f0317efe14efb13440330b50cf86227fcc7bedac20f9364e2593adb7599b5142174d6b999c725f7d119814642f79de48f28d8b47d06bfec41fd06e2da9ae905005ad241ba55ab42a993df755120179b32e6faf885f946898d545245757425d719681b0b2ba24d49340f931cf87a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba +ciphertext: a047e3dce5d5e4c323b3b4076f1d4d188e291151696de7dff52f9e2391919e077021eedfdc8750cfc16d8bc28e56faf53ca3bf0a00f80ec7740d7d32cdef30faa00b1d074d70ec64a154101e9be710969bb91f168d25079d67a861664bd4605546296cc4e6e708aa043f2fb2dacf8071215f80c9c710a8b0e2dff75e42b767ceeb643208c909646f8880d83b5168c07fd36cf9502c3eb170e81f9df2686108e001bd15f11b7a2f99b1ec6ca9dd0206401df24160a975ae0ea179da5b3c9756ace0ce3e9b42f32045ecf6ff10ab387cffc357518560905ee8f31c5c577111d0c50b4a7c131aa18628cd1fb61ad7484b43310e252437cb20dcccb807a5777cba2404ff76e54f10638cc66a925eca98f9340c7839c12ed1dcb23d39b4f99b1f731be3cc5738ed2f115a0cad0cfa0ee7f9aeef3ca7485cd221a61848922642de62d248e18743b060c42ae934b0a5e7ebca43e266e0a58f7d951fc5696275807916d552a372eca27c535525933630f0a5f3369be348021a338e7074292115fc8a786ae736cf5203537088f97e68c78271424a67a1f2632c1539d34b7f90bb11051d9825e911b42056f60ad0d28cb70a4a20a13009887b8d12f8fb07dae59e2fc621d76be8f8b28c6d31b4116e81ade5f973f44e4c819ed374f45db6e68e264ce5d4973b666cc0214ad7a51b1e8fda04a41ff465f1603a427c92c01813fbf54bd5253c53022652f78a3f6b88331192f0cd8c1ba24958495c98fe29696391dfa56357607936b9889123c5222c92c09f9e69c6b2a0e6b389113924a1940e5d82ac13091e47b76970d0a06a682c5441fc20114f1246e69f486b3030d42bf0e5b8480304eb49e8b4c2f1c5d5a11f77d8a25a0ed106c665610c2a62df65026845ef99d2d43d7d3a503fbb702c4806255cb5f0a458c2673d9de010ed4e78dd8fd1af0bea91b8ef35246833117dc3517bdbd8e897ea83f6ba5442fdc41e661082157ed9be5da8d8f911f8982e976812f5d157c83f7dc9249c4e32a7b0c6b08c653a014caa4a8e9903027c7ae748edd7e026f7f3a934fd7b62799b4e45cb9b14c4b3fc95e3df7382462931335dc7e7beb1bd806077e1d36fb231c76659a85da15d87fdb582adae063b3d3584af6416a153272a2f27fe5205d827fa24693fd62848bd2eee681e8d539028a6c81c4753786c4b1c991bf6730bed5e14a9e4f34bc80b8b598fc75cc7466b986aa92f976c3322113ddd84913b3e1b364dcf01731d6537f56b2b4eaa45a4063d23e61dbcedbd00435b4ed3b5b79de52363e1d40f2aa6450493875c6ad3660bb9ad68d4aac0ca4e5797f6f1151223840feb154f9e6c749ad66b8f0a0bcac22859e1cf3eea7aab96db9aab863168d36958381c5c95884dfdb8e4fb69c5c1f079c7271e3687db754d2a8a9a9597ee633c18255326ef63a50ac58fcf188f729e718a959fc0320568d36ade385e67a148152d1ba4ff009b056ab843471bd94c7a832fb2b706cfaadbbbd8aa42de9fe7298e53b11d4056c9ed043bc514d3e7da9f7da6726f267d584cb185d777dc58ffb0e44141bd24ddbafd1509387e9bf9aa532f6dd5f1bc83b6fcbd4eee3e9ef49a692818b644209030d944208182a394c10aa61c1869c7824f028ffea498bcb87c0c6fc5df46447f3607b2fdcdcdd3ca9bf885792d418563f404c39acc8f7855599f0943fe507e5c02cc947762d3390ddab882c46a604278359655b399985cfb3aa434a04f0716d2d94ad8c9f5a5b0dc448c0f85751ead9f22ba0052810f66205cbc7d7b8440441a892bbe6487da07d482bce368372ffac7db844daec7d5364d650f70113f86346886c93b948985a4187226793ce3febe4372ec6394201011d6e66c342a304576f33ab5de2428bc4abe940dc78d90c3a4238f7f06189fb440ab3cf8fa36fe19a0b03a2c2a119d2ec5812b999a277be469bc9ad6614472ecf1a70ccde3a4dc5fe647574b4827b2aba6e1d65a0f37a696b9a73e0cf3a9cd3293e36369363d637fa22d484b3c9d451bf96d993402f442591079c0293275216ff5b46e4170b9459ae31a9a7f4397112f0f9e1c778b79520aad1245b611e920010e12ff14bcab2a090767803fb30478d813d4cde9858befa2930572c45dc2e1fbb117ce98e81734806d1106ff3d256cf58d7a3a6efddd9ca2b1d87de57113eaa7ff1e34ab7fb98514abe99a268c8d87307fbdc9 +result: pass +shared_secret: 6674a584a85e1ef11565916b1779603295226e1eb7ce22a3e06ebf19dd468a51 + +# Official test vector 60, seed: "99a9cdbfc674ab3ff2c64cded7d697a6e27a767434a47aff7c3fbf3c6a22d6043d27868955286a13efe3de36d22ec48e" +private_key: 6b3b1e9e6771d2b6946533c210a8bbfe297df569cdfc56b501c54ec9e21dbac3ca24335438a71c456842ce4653ec9b4ed5ba80ebe665b40597230213f58951104c7ca0f225eb535fad8c5724189b49138c22f4478b19492403c2c41c452080a2625654beab411ee59f1f372effdc5dd282a5b4244a8d7a0ade30386a13a353d1516ca38991948497a4ca83cb9f65f5aa1a6ac85dfa634253068b2b43a1ac8c41f156e0acaf4f05505edc57a1a6bb1a890c15d35967b86e84f16d2a1056916c8f90db83b47275b28ca3efa0bd4f18b9caa5b480e80566cb3951d606887777c2c3bcc88640a6c1c826ea51b169c8bb11a7f51b084bf0246f93990e62ac6f012b89eb025b5962e9a6bf36564ee9b483895b2ecdd6699421abe9cab8820771e121719922315de8677fa1214e332379caa11133a5ffa13dbba75c6491308ed201c23812db0a8d006c9ca9e7606c532557c8555cb10d6194284b71275ca84eaab50e50470fc9e8c2954b70ecd96dde6937616618ba91b1fa858335605c162972495c4846b46b6831477dc5658751c0169a5ba0c733863555f62c5c1bc5c83bcabbdbf1438617412bebbfb5705622c258a301caa76a4561099c3ae34ea4e014f89431cfb957c6a930315b7a001955310caab03076440594f7a66c1385637b69135ad50df1934a1bc754eec983dcf351b306a14fba9ea5b6a416fba9b46a40c99b640048aed0e4ce74771704a3b3a7c90009c964e7b055f4753bf062349a368aec2423bd6a278fdcb3d9f0c81ef551a0122a72175e76d5970fbaa44ff8399fec7498e59dcd685a6b4038b3b5bf47dbbce204ad99b8945bd3afaa237af16a81db0c15a906364e1733427b28040539d32832cc5a7f0cec282ed902df9a0af281cf14256da8873317fa5f6e9149a2d6ab544c97697683032455591c75eb2a0bb4aa5eec1c3499b64b78729b6cb7553f1653bd4181224cadcd62ab80f5af7478b909a4ad9dc1cf97e608234b48b2d9b005a5ceb80ccafae85e431a258c77601dc3764823177e970ab5763b154447de89cb2c6cb11ee51195f59977f983c1629dfc640026a8c36b909d4aaa9f9e0b642140a35d2a5fe503a07a800c62cb4bb7c6334c056500d14337dc984c7730fb37891ba737f2a65545b2943bc22a5099345732a1129bbe22e88b987aa1c8e33934323006eac14f03a9970cafd6ec587d15544ed9950d5a851c63898c3b2331192e0fc620937c30a5e8b56355319ccac8094ca136c237941372b17ac5367aac78269658f4b40d04b33e84961733a353baa9d5f4b2dc69609ce6a00ee6af8dd425d2b04bca841411473070d7a1f4042a8167cdcd138634619bd78c5c37511b54b3857a897f17fa02de663854196418b4b23ed80008b6af534b28b1f0027dbb41ebcbb83c9cb0f0080d5e9c8e80a83d120a0d679c9b3eec7d4f94c9046832d947a622f7509d41ae888107f5fc7539cc0053a1365ce005caf627f8185cd1355d4ae65638c18510b93eeb87642cdc87fdb858c4a997bce0963f6b3a1318c206635289aaaf73a33cc7d76977e3570aaa98c515436ea39cde485342a4503d991ab2e374ef2ca8e221c71840b876100aeecabd475233a40122f2832193f40bf29ac1fe71c1eae1767ea470f3e580089ac09bc1737fa3449b4b9911c114191614599a8b8e02060517c57ea13baec5ac77b34b7ae21c2c9646fb6b6f9a0a3787760509e3cd9af200f8cab9daa5a4bd7a9c816b4fd7d3c0905a2347215f5ec01e40c605ded70ebf472b1ca4cb684272dcc75fc17a3a150c06af61ca0573ac03473c395bb35b34bdb0d3297a5c4729a14345546124377896b11975c26118d79970c76128502d474b8828b3b01a9bbad62728b8593a254734ad208f29722fae409d7f178b4a0937e86542527201a7e4c14547b599408552952cc65128533c4207ab047287af05e9bc5ef0b110e4ce977660cec3adf062a154c24cc86494bf5b2f3f1424f42a7308d0057f041c077528030182295a67c27422af6180a2010e4cc478444b595ca065b8a50de1c775174bbe870a874beb8649d82c07a68341165c11abad1fb5b7bdf2bda1511543108158471d94c3b59ad199c868bb67e210a724909b9452ded168587247977a70da79b3750c39f319b44198a5dbf047ce618c212bacc3413ae8c00a2b78cc3b0c7958e349211bc64f036a70aa16067882330a36aa4cb183497c0251b2b942964a922c25525ee9e3834504a085540b36971963e09106fc14125659bae0c96e6663a479a381a915fda7b8a404061c90b814c3146a549b517a3735760244ea8959eb2d98bc37e2f7309e09749c4c689f6b640d28a7a0b8524fb9bc0b544eb219683be91e79baa327b5c0d2f2713b78341c9682f6941327959f853195aa36b919e07c1d5723d6528269b360984857df1636f2a80cf1383a775c230a9991f8602d074b5f0bb42c13ca1eaf4b3c7336a4fe61a8310c9c27f37454f9af3ff0bbb2232689c63ce4b7cbb880886b36681414902bf77a2623ae5f0c359c038f82433413d2cfa88373bbd17bf1d5503774939e916c415c8b929b5c2303234501ba642b75ef2823e42b71647014044a9450a55cedc0592da6554cf74693429d2d526d34851fda24a64450c785510111988982914fcba3addbd0963c3bce55f41b3cc71c0300ba32b02fac76158d673ab1ec7a23b30afd2a53d5aba3c3c87e0fa54408864037511dc3ec113153681d28c45b2a25e7256b6fa90df8b8ba8435b2f90727d4394eaf49981b397916c1642abb68f5006fbb2ba6c2c53b6dc5795a261ba674778ffa7e9daa65ac93366954710419c99fb21a46b029242158294107dfa28c53554aa3d79878b53506ea03846a9041664bab6056f7211a337910f77a2f37b993324927d64aa0d5085840475039c04acaf0ce5721b1f182b53e96928927961b8a04500118a453738c78b8a796ceebd960473b2fd2c9c825593ff4a95f3f659ef00b251449a253332171bbcb051699b100501f84bbc64c4e7f9c7db1190c4621664fb33c624910078155c1f2035d1755f7b10112e4521d58cb9c89575a3a2fa6caae5dba470a9b4d3fdc9b7ca6ac28e0570cc92647d382d04a5091d8a1ef749067848cda293a47d772372820f25245ff457580857eadc0bda0a059ecf1a3adfbc6d7e87184337e94231e8e3774c9854ef1c6b4c872bea6f939845942ff2732aed903a23b72cbb5122c43c8ed303ae0d33a7a704001890f0b378039ca271205d052fb594c526e7c761ad6b0cf14bb251225c7ff42b4b5f651ed55143ecc05cdb21962157e28d7be4fc4b5aebb6cfce5396fa51af1bc85fda50b00fa63ed800d60a5761dea715258bcf597a434e48b23202d8a415831c0417c6c43a659036df10772e796a2d70515939823575cb5c01d35155f7399bfe1b3ca9bfa47ebd69f5c8cc8879b87ae34a7dc32568817aa3f923df22c92be454e99d83023d3caa2e80e0ecb8818414b0241a6315ab20b63c422b6be8572b5e7f249fa3802fa647febc89c8ccc22583c144c191b91187257235d857b9bba3b13db06be10a35d712c540e7bcc62373d76e5828be049b6462d8da931f24a6827d314f5c0ad266a3529fa9b47cb6eec425b326ab0bfa032b6809d82c1cc3e2427787a413daa7d3976aaf83ac08d87b34da219a92a631784bce31cc66693c75aa58c7c87a9e3a926b5229a4f008b85090f351694f66743dae3a59a86299b43c20522cd82f96284623ee20b521794114d1459fdf70739558123f18ff8304730fbc63f198a2eb992e7115e07f509dc58b1e2a00c314714b5162334861ec20acac85664d14057d2788207c01a7ae383c93971d850102d60ac0d042c648c100ed660ef8a2cad375ae1a21b11998264e86ae0561e19d971689183968a98be064486b8abc3634021f770e2581b4383aa3c938bf3aca4aa2a337ec06647aa47428bc027339f2802b9f135820f3a8bea06846beac4c1a2702c502e50d338fb80a590a564f48a6606a10b51e839a4034f2b906ea34b4d3c875f1ff6bb57797b076638e4b576fe8c5a490806bfd178b4569a69626001c8a5fa1582bf4bb7bd586296f9ae74724d7b6c9c38d25273e114fed525ab008b887b9e5871172cc393938902914a3ace06a41cf92f6da963e4217f6b1363f7273cbf4a342865a761371f24285113e74f7a770079157c0ba0700e6bb9ca99ae10b83299ca9445b8024e450cb6152fceb79c0c433753c0b88b21c71bcb38c643ae5e16502fd14c0aa8939219005a15180446a166e74933f46f41a68675692e25816e7a227808764e20c98d33d6c3ef3801d21cb37d2872fe76749aeb09976580ccd4feadcea0b16f00970f92acb21c560501728ffd648a3b658ce84640d17ad1564189385fe895b25cd30d122a90decaa0583b908f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 +ciphertext: 7444dc5528743f695af09c910e1a574f43aba4282a54f050174a3d219c33694c05e6cffb95c7b43ac76e56e244b079759e8202b6425d6c3a124750fcd90eceb029bcfefd2d7ab513f5bb298aff940365f5064d68ce6c485b2f99c76cfe75917280d66c349b9d16eaad19b0814a8ee783e52ec7a964a66e2515dbfb50877f5fbd3781ba5593cd8ca22ce1531b4638c2624129c2a557764ca86fbf735cfeba58ce6b0bff7f039dae5a00f8faa86c463cb1176985ebfdf9aa6856d05b7b657760d5905a735e1cca3f033225da99a8fb631a6c710792ce7f83d8e4bdbd713c072f2e6ca08f80887c9631c325b8b853161843810f4a82e1cb49711e875a6328167170d796c365a6754bcb6a39237642a3a25121759523ef3224a74acd8c182e114a709552478c942adb7ba0133944490d7458fc4ef364b34fe1cc94f8215207a939c92921778ad986510247255b0def4baf40810ff5a148c46984f70b67608991b93125688af498f53a40a9e80424ef660c6cca5e7c3ff1024691f67659a31ec331e3b95a9a54f31c84257c12665e684cc49f4dfb13dafc414fbdd7148d9c9b21d84cc58eae523fa9b1b55aad27c95fb35696020fa7becad60973177788670c785a029567198a5240ece3e80133bd446080e29a749c7e6eef6eea00ee547428961353bb063a175426ca066ec2aa5c35c6ac6ba77a2b16974de8767d7ea028a83dc127f05a9ac0e46ab6784bfefc2a0e9d2db662ac0fa63403dfb787c63d57d1e3c51bba51233415af6ce6c3b6cfcfed555fee4a90f9368a5db2d9aa2a847efa6a25b198b69046314c5d43778ec30dcfe00c62e04c55051071de02976dda6a7f3c7495b98b62b0005850748d5b5e4d413f6bcf2f7a9095836790781d946b399b3dfa087ba6b02726e3a7dfbcb3b50e828b747a2eadd904a14a85dd136f074b76b17fee0d68e62591b8bcee55a3305ad469c28f6372e75c698ac8b5038c700e920fdaf2e02b8f87f91ba8b4b8ac1fa95513567a35ca4328649baa1fc68cf975f9ce53bca91f3d536f9d3dc85968fe18726009036403b9fec674a8aa4d3ada1396fecd59212e2dfdf7b185e5cd90e8749891f11a4ee5f515c7ee2f2d259e397be82ec63eae4935e9c43920c3563b98b17f1a29bd765da90a8cbbe902ef9b467c161dccae224f1b5f263cb6f5dd1ed070e045279f5114180169ea9f2c34a2d62535ea22ae6eeca384c9d9862d618d2accc856e2d5295709d4a66dda98588cbc1637e9dd5288129b92ba287833eff7353f57ae273fe0b664973058b88d1dfeea2c1a14485f61ec761169cb73d10b04dcbb39648f970ede927463f0ba35c6e5885c6257516d87a32e4e7e7a7ef58df4e03a5b8850e3113bc3c22de934b1c5a13c6ebc64d1c0adeb1d80851ca12adb496551b662bad4be6acb3059f5efb927f69b711bbd77429547ed21fb14d9c14e87f364fc7f5335ab0ed3312ea8670a92a58d42106f6969688ed106d2028c0b0393f2b2d4810d574eb76ca14062c7cf0fa284b393553de48b98a237679651535d1a8c20dc04676937a6a35ab0d90ad1ddd5f3056508d6e4dab52709a4bdc50ebad3c549973a278f920119e7731ea497d31428c96eadad8cb0f918e7dbd965287e7aaa60f6fed80d3ca2d4a0228893ddf8a36ec02354f02d7ab8f8490a6be91eff2f5d50013fbecaea945a7859296109eb200e3a406b96bad84846ad7fba8c519a25d224022b1b21d1b42ec28ebd8a280970027270ceada0a98107eecdc6bf3a63c5bd59d739d6024ee83d18abab1d27dfae98ec8c270caffb87904b2abe8aae05224ae346a4b1cab500aebce199c675792a4185ea761f1ae81b43dfc0530e6ec253cdbec633befa4f18b35c01ad3fc359e7ba70bd857f5afe83d6fba06578b6147a454e12bb9a559ef838163e906fdd089b5f4d302ab3c8449350243f48e09abdae9b4b499e709e03b34a2aae069a9011a73199c90e719b3f9993b256542c55d0bed6a7fd3e0e857bd7211b8303fe2d4c38a9755c546ea391783d960c1fce230bc59e3cf151acd24cdf85c785a6f27364567f200d18efe9bfd222a160924a16f198846d8636a44aa6f0c5027663c5aa6a76fbb6b077d2aa98c541109d82e4a8fb0d76f43af57a26a4d642396174d15dc9a10d15f01fad78b9ddb2c9709205f20c2ba1807608d25af4b0418bf2b657e2808efb341fccaa2d +result: pass +shared_secret: 6843c8212348defcf5017ec29c620642d127ebc33fb539c4d07cca88e5a3bd9a + +# Official test vector 61, seed: "c799d57b41f28c5c446dfc58a5ac6499c4bcf3c162afd2b09a16549826ec2a6f689e44bafc4acc82f5d6aec23f4a3993" +private_key: 41b21693eab370113852491e3791739eb8b3ba69a2c2542a85b4c536d840d4b90800a7a6062b7c98f920fdb11ba6b0262a647dee2570f422cce4b7673b51670be0694083c23ffb380025279c849a91d147ac85a3eee4c8ace51c314b21382009845bbc56c9a967a5bf25d1bd75908ccd0a5b86f14106998b27a41a38c365130a420569975da13bda305553750bc5b9402bc38646857bb50a97d016749cf7394dc35ba1f69c17b080a6961203514eb2520189b846d9597d3e443b0168028943bbfe80b1d0e4a323f61324352aae686b1aeb914dd33745da83f9451edde1359a630a4c79b4e9aa7cbc464b1f3923e981654f80922ef604465740938a9484137077533f4f7c379312306c6a26bad108cc16c59cb729fa6ca21feb2365f12e3e32c75b95cf9201bcddc2046f93893db11e35103303478f6a661e4747c854696d6fa00b47f3b18e32469e3b9312225b1a877eda5b2f17699ef4bbb5054961e2a7c445e70c1bccbe6613a4f332b380fb21565c809fd593e7076c42b9b891da4513742e45fc4e60934583f888f399b4a3a0054bdc3639b73f756b94edb5401fa66211d2bf7c714f527c48854a73ead8993fe1b3a851048aa638b2a5538848912f6672430273e82820044a6d6a6b4b80ea6a12aa1becf8b647292a2d328877c10d64706de00a677f0399e30b8842633e2246109a407465f096a1e4b9f14605387494e3f3cc7f200e4398b2c234575e022bce0961b0a8686537cad6054a81fc83b6167c7a855d54e662aa29358bc192a0925d00d15a4634453a494c96758aa687476a7b15075045684b51a82225a562c2d1c28b36ccce25668ced9ccd0cc58522d36ebb6c0368f67104f6c8a240b976c59ef5b46c62323cfe74bb95a55c8ee3b934253de101a11832cc91d685cdc1599da17362763abc4a63a0c13cba2123b76b391d20592c8799bf86054203307d770bc87696457962dfb39fa988a954532671818f6d7438ccf3c044599486e6b781933a45692e1fc79fad5a7d8fd8bde635ac05c631ace040f383b9e5aa69bf39243c711455f605ddac05ee905aecb6c971bb85c1ecbcb695810a713fbee75d71362e5b6777322528bc54a77b6a979ed7c48e9270ada7824814957563585334998fd6ac4566bb22da8cb18a425bdab55d61a1b8427ab1b817e8853ef002cf00389dc36a8e739c601be907d749b4165ca166e6a42253c897a6112d2994a0f492116181081356ab447787d3c8d399a807d48860668dfa2aa8890ca8a7128cd38cbff5eb5e6fc5a46c903eff075ab70a36b85958db922ca9172f53b7202744cf11452bdee486d44b3920636bd7962c3622633324a2bb5b82fd3225a0d83b9ffa6b433b19b49a11db2a19a7a5587553a4832a4dd2412502a575660bbdc1d9a23fc6ac2e7047ee9941ed3b99e7951c81d6473b440416a18332914d97b7c6897bb248876ad757c74d83950951c0d14724d99caf72d17462d006e4d0064d14057a2c1488c79faf4cc08114c9eb2c6ea68220d64735ccf603baa718bae17d130457835019e7e943a43347f7b3253e750bcaf71dd0f0a63d91c7deb97e270209a942a9512b635f5c704f830649909c7c1107986bcb7df1a191366f80ec694c179bcd9029f62880c60061627078b2d3277421169e45ae35f9991730159b005f50ca257ef3b1194b46dae425b9d67e1692c9f1c94da299a19aeab00f45c62449af52c81633403e2bc77ed6750eb91c1735411a32a9bd458029d31c1673c86db6eb6c739021bf1508ea97b902a14bbe298f676258d9260c9f7305d5d1248332069432941ad759f3488d3a2c927793add8ab08bceb6524f8b6f5103c2aac069d0c46f8c314d1c77a86a605db2a773aeb8b44ec8d12477970167ce70ab3a449276a7540313927e61239e23c79bb260aacf4c7de036cdd5a55a45a8a7b898fd8b209c6f643b4202b16187a87842b33f0574fd0a4198a7ecf7b46282b8344ebaad63ab34a652c22521561f2c74a68c485f4cf22735ccd203a8265ad5ea173ae4b8fb0cb4ca979ce33557bb09010767acc4b881f24fb94ccfa008a020e3cab56cba5c3c6c87d4bb6a2448a94c55bba200681d88878563b05454ccc7171a42abcc545649483418bfaa6c3b1e568b251962a75853b6634872529d31b32fa0c29f81037775c727839696adb115a704f10199031d9ba3d3433ecb50702068392ac97a2db354cb311dc39aaf9719c4f5a7c0401282ba4697ca8c70ebc4e179893135179cbf02820d6bb7263708b2339f777c242f4c34155ac2452cc21904580b381a964c281d750c15c42d8477e7708c45c61bbefc6928f191260409ac31a61400350e928a3b24c313a71020fd186f6e9afab17bb065132588c115c31ca8c630275b4baab7a98a778b97a680adb4611e6471683352b6928b7f0378105383b5f981923e800ff11ce6b64904ad3835c270cad0cb0a6e1b8879cbe152221e6e0994fea9bfeb9cf4f582e4f429170295a8419c984283d79b882bb420876588ae6403f207b3798d89ddc1bc90d7c91d7d07aeeb2bc0e491269281cfe93129c5283a03630542a1312ba5c896b969ac0aba14a289c0672b964a6cb1c4a11c3617ab30e4beb8b8864285087a15c574c833166c759741f493438a535918c0ab0e46926d195802a5cca3078fcf3770ea9644a69c730314f3d91b5e04150b670b23448008ee55f841c148a699387d919dcdc63a23966a43b2927fcaf47f2cb36935d65622214403256753ef3dcaf73d183c79384e7914bfe597363684355f25ac1042505361a04798e377791b5553c449927efdb48606a272c029a2da819a48749bd66a32091946a2a7a0649095da1193c1650aef47099456861519bc8701477bb5b01359c4772269735485b829835861496e437a063838a0419ae6877d0c493b5c3aa56777f3a727e0ee5825dc83ae9f4a51e612002748a5d1a21c1f870f5886b39a23e0cfa14b6151053580a8d8a306af04a7418c88bb5c398c6cd8f6529edfbcd601c049872c11381ab10c0267c0c8c2f614b16d92800dd0989fb2a23887ccf46401b864552105dc79bb0def57eb8b6974723a9164c2737abbdb793bfbf00a860a185d3a81a2257ca91e09f547c6acaf35ac5833fdd9a1f38a5b4f5e227b3fc692677766bb81f85e34de5b200dd077573f0796175140fa9c920522d68040518c5aa8f84b1ccacbe5be03e0a0789372c338a1b24b47a8bfb0941aaa8601a7937d5577fdab4a6d3094aee7c073a7632f417b63383bd035a351c3656b0a52c6e435d6d6699946585b6ea9e8568307c18c025a80e9074629dd70dae6bbdba296e0897c8ea895fc6b5b446d1000e4c880747798cd42c860c3bda63607b69a6c4fb88082593c1d965ac6cc71125cc56a72b60d1297605787819749d43be46431959ac29a01c3ebaab30d9a18c1c7998d9e29415ba0cd72c0d933086dcc1c20c537a6f296d88f29b5d2a21fe314999cb6037d539081120d60206eef1b1e1a498eb65268e94366cd8912d269b2d12a3f1b99572e6138bc29fa5520c8a6cb23f90859ea0a494c17fe7ac09beb658f260cbf3a5cdf9933ca1659f2a0551b881055406cc6b72baeaccbbc4b6964751afe07754da9a8b0b151f02972df2bc1465929c0be64e38e6c55ed237f182151d1a91e4253c42d05badb82cf3457e01cb59a96730b5007ae0fc37a3a322115c8560f0a2a1395a88464728c18a16bb249c168accc3165305a6584939105b594af244c2bb41405163e5bb50fde104e7dc604a592b9e22649c0686be9a8860794cee458a73796ed877b18e034f2f50b8441609cf53280f9c095fd67749871245a4c2bc9cb008ea3e44f424dbd56a7c734b1a322de366541c732fd5f74a0663a61f277301723579158ecd08bd014c5cfdb7610b61789d8b84da23a58e571a72981cf63cc49c59ccf045acbd3cbfed4571f6daaab9b23bf26091bc581cbe301674972ee4420e7e0740bed617a3c94c3ca3be7125c7d6242185163398458311937adad8462b0cb3d5900994f5906121c20f6731ac81a32a864ec383bd8310bd64a30f3d575d936426e721228b93c0c482c1be106f4ce41c5e0057116b30cbf44aa2a217b08b690ff891657188d3b6702ffa9d8ed7b62cf78f6831a13b410679e60fbf9a3221906b5885404a7326589681c1549b9459745455bae21ca799796065925ff980aaa68c206b17aad1cb9511201e53dca34d439167d55924018e7e513fa919a4573b5500a91c8ab61f17cb5bcc282939172217365ef694c98a440b09c883cccc114769b84ce736c5c9c52b050ea16a0e4b8c58465438b7aa11c2c98ecf4aea6284cd00c4229cb6fe2f90dbbc05eb935c85f1ca2afde0d54307949544b08a2ea8e2ff6fa677e3c2ba136c16dffd11094ad7f4ed4c5e7c11e3898a284ee2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 +ciphertext: 11c6b00acaa538f146d7c8dd2f0a44e1bab24875544ffbcb24857ceeae31d7f44bf05624541b6bdac79eea7d55d5063c65c5d003a8977ab872d53c77ebcb8d9d6ab8a17cd7e1969667c1600af54a52c49881fa22c15d8bc5131438b3165dfb158a2b8757539c2b5331f18aebcab7ad3e90c8207aebd1729905973272ac4d24bf86ad39a4b38801b449d202aa338332a0c5d284e5b62d1115eab7cfc5b415edae163c0374b7fa53c91a0eff51d32a2e76f21b208f1af7537de5fb4fcc35e770e84e75cf7547cbf23ebfafd7479897e8c30c9419689a267cd1931cdc7044fce50d9ad606f90f5f5096751ee2e2e7ef03bbaf9caf7481f2ff7432eb5b40f90d23453289e47db76a4219aea192d66c09dcbb9b37b5286f9c3d138fbc712b10c1b8d553c222e2b93ba268cdda88386fcec1a209f384ff6da9837f62aa0bac05cfe490492e96a7ed8377592252d04bac953f2ee24d48a0208364f5543a8389f19ccb7b54597fe03dd32f019bcca2c5307732b7658d04b0524e3656d0d5c71766ba0f11700070399d023842f4f7f90186016248ac1deb3d0c5c07e7116422b2ffb18a87575516143d6b12ec66571e6a0a3bcb0a482b45230901e17dc5db38347b7a7efb0d6adb9165dfc85376918cd78e93ff0c3702c1e37ad7a03430a5f076c9cb770736003991a558770cc06971dfbd61d52b1e46a89dff239c1d41879b4c80fbb74506cc7c5e48785cab3260b4962419e997b9c869d9006f7ca166f63d2876ff06c6316571c06e9042968419cbfdfad551087c824b0511487d2d696b25a8b11ce78b06e9bdeb48521c7afbfa4645209a7e74053e313b65902e11962febc482a093b10d24a0d1c13548332dfd7871524aa269b2d70303a277465d7a1cebcaa796398772b48473f5b6159994351abac4cced4d2203f7846c8802023e8939b197a16cf1c839494f9adcad03a4d3193d159bf09efb4588c9d9aa53890553d2cd5acf533922da4184ed80a17c1fa916e049a530e2fe330e470f8bd4feb429a537a006c6f759b1e98e73084a58dc05af1efc0fde60ca440a5ee8f094d10f52b64bd825f5c0ef8dc89463f13ed9c36ee30cfb72f2046ad58198cf374c2d039684debe17b34d9c82e73cd6483d5a9da9993eef118308f88285d8e99d132f5af9bfc6df2986c99b9dfb4b1f512a61f28a2ce8a948e292d027b5d9c320692332de93cfb794adbbad8747c598d401d2b7dde4f37434148268a36d4400e953bf61115de643552bfadd1ee65ebd13c87f2a5ff62a8e4622d3b093fffcddf5a897e2dfca8cd94aa1c2ed67595241b3b8a81a6ab46d950f17a4d5798a74294ffa1fc044736bd3050d586ec4c3a80ac2fad1f0260707d97dd3fcafea1c5653e51fec2b5e7e681b5168b2077b65d8935d2aa497f6abeababef6cfc250ae6281d6ca1cb61bcb26d62d40b01440049628c902e67c9514c7b2e6da7f46f4554ae4aab9bd2336548b3d325ef734855fd1543f714401c12e9c58e5f755201aa1ccee4ed0173dfa3aba864760104a671967c21ad30a7479bf513627e7cd21e91e7d0107822e9a1d4dbcece8ebeff33c0fcbf7a08c81a5f69c09abb48728167528d37368da4726f538696796ed01af351c4401649f0813344f8a04cdec44f0483bb69158dd89d3808af0bac71ee3e000a1bd7b0d47359c4896c99d1fdf6ebef54bf57b1631d62cabe02fd0c02515974ab09fa243364f36b2ead8add458c840f3e037a13bb678fa061cdeb302010838e5d92545fcf2310264ce64c00593e0462c62a0c1b35cb3baa017bafe03225c91f2d55ea4f6657fe8772bc8f438c83e4827f444ddbdb6abc05fdf282bae61353f239c72ca3027a573432e002745382b024bd7d3fcd7b6195929c24d3cbeb9edc90c9f61ea9da77f9d63a148d85d77569d721e6cb7415e75fe1377ba54b1e971f2683554a845fcd41567757a6ce6439ae3a4fbdf2695a654c4d83cb6fcca6251ff2e05923745ec6e746dc21ecf273906e4992e5c7f0c300e09422e0b15ef2f85789296afd12ae927161ba51c648a0fa8c56614d732a51667a5041c814c4ed7e4058b727b2e12ece2e6f3cfd43cffe4aca871b9b8eed8fea56eb64e2f30b0a99382d7bfbfc67fb4a571ad991919a07b7a67834bd31f23c0ade5276df2ead3c39f375c8402a83b4e2c405f405ff34b689b29a5c8de61577dd77503314cfce43660 +result: pass +shared_secret: f09ab02775dcc52cbdb2a5159181ab535d1ed680df8fe320856b547166c2abf0 + +# Official test vector 62, seed: "f7ae036a0176a9de9a036a542dd2840033277c44ae936d10b768566216de9d4395cd42b116873b69d9804ba6ccbc05d5" +private_key: 79949cd3da852b8381b94853cdc981b74971879b0555d5b51d5ac57707a8d340c2070c9395214d3a6c0afaf0a675f45f4fc779a7443219471570d43bb73caa4c9501f2a220ffa00b60695b049b8543cb0aa94884be42276588c4a211908dc979a0292a9b3c891cd2c59e39bc11b725d66ccccdcc9d35a03d390ad0656bafd8f9a778222c8fa753f4d78bb1792e87542c8fb3b71043607d77672b1a6a7f7840eb953d3290cdbfb78ab1535aec0544bb6a6398466eb1711f9ce01c42d2aea9fc255d694bf4c02b7e1cb6763b274807b1802aae3a3a95e57c78002493faea627bf5bacb17a3b1085baea7802958c9bdb398377629b8c8c03057497bd542ea4c6b28c2cf0cf316cd820c6cec0e2bd121664c252b0b570826ad17490363232d731b4f16b68291c78c3ba252ff110bd756225ca82b38e2b65d9979bd2b7ea0b30d83461f6e09219af2ce1309cd99a87de718cd46e40c091603cb572e6de993e0051f84b55db3ea6c7a64b9c67bce6c3c6a0bf02cecf39e93d149ea38b585d77be9726e662860dab465959588c9225303c8b4ed935ded42721196747f104f02c17cdf3520f2435ca0f963d9ab8754f13b22ea157d0c061ca65d8a363c8c4278512888ef6111618c18be72103de324cde4cf16f26f6a8421ae61aa867b3854d54e0163811a3843a7984e815a26a135ca43d249d17c9d93f8a742037db4d95b2fe33fa3da0db12b7247d665f7488ba34ac5ffb0cdd0e123e812b6854739bfa740792b0a5038037c59991aab615f937caf9b89e4b9742992c5534939e20353c8573d9ee399280984b446a851868775a7a0da729d8c594a5f5518f0681e22069326b1146d1213fab35b0c811d990b529f7c7f7d11645da77ca0f081ad592291ba2a0e15a880832ed7f02fc70908366485a9562cc45888c1304aeea26e9ba961bbb53c89f79265a962f2c72b39f9cb43118a22abaa91e96fbef1c42e6334aa258ceb739bb17a24aec2a8f59b972cc7910647cb1ca86031ea4b80c97308697cc4f414f7575154d51ce8c9bc9309c92b113da36a1915934a64cbb358151dc28186c7f71bea603c73f1c5aba4a6da017f10b16053d77cc92751bdf8c59220b5eb574e1f51a374f337d663213d3756f9096b6b9421a692a4820943576ac2a10246207aafdeb8acf6dc32b9a6cab2f1ae21dab2a678a308e138298a1d947151b5743d8eca936963271ea15d5195304d268d87ba70e1c1a9ded02ef5da2e077cc8a576b433716c419808bb187c9fec2371832a09360525b49d89c84f84d1c10f1a7514077d14515ea63918a76577f1957cb0cc393e7122c097b51039869765342aeab8106398ffc009e0f403225b2df37c3d71f93c78763abb49bf23e7a1c3a1695986824a54aeda43b3f7dba478097cb9019390187a6d9b8d9b684ad169ace6f1b0fdb9184fcb15b0e724fa17b986576b3f5986a5fc603b466d232094402b0571a82864367dfcd17a53c3c74ae4ac0455af209b05371174312679ee5a8d1a3326b70246642631a479bbe51bb73581549f7957747b87030ac019b454522b31cfa9cfcb7518deb670bfb4b62cc964109c6773b885691b199259412f49b00c5ba719db7162819e20984373175170f7a16de42ef8770e55a6bb6d98748f9a0e6dd1335e2669764bc2754c7223b8a23986b5c7d49d3ea4a5529422a98c7b4de1205465b357a1c8fc188eb0c4797f847602cba59a20a4a2842bc05a4dfac46b1469be6c434e6feb017be1cd206247b6742edc1141f9b54fa00a8f757887a4d04d0fe892db899354e73442265251b30caa18496aa22806425f0da193f4932bd057c8c7a06ebbc3cf373205ddda04efab885d12396b09c1df636dd5d5c721f103c93a18b5227ad0e3339d44b804b65a6c628f71fb5ab900a8ab9917c94a51540a7b2f9badb405853e9823d30a80ab9613556555b4273486927427942e7a6caa1a727dfc59089f540a2beb9802c91f324668f78a9e4431c6255603c5f15642e60a0dd843f8fc610fe102716333121105bedbbf161b77d0bbcba13296967a68c14aa99a6765718ba3782b3835f7571177212e0763a5cca4492b94ae59616f9b5839141af31a774fc32fedf0a3408c211050948c24a722a48ca6913b32305e7a5194b7e187bc255f3618532075355227748594cc5ac52decbb390cb6a9b8f989c7048017f52231125d91c51ea6174ef4a37b7cb505b4a029f44079e14b957ffa2f8f325e7334bcfb5b023b4801f5f576333c54ef0440b4f7c8f6b3afec2524e31943fd6323d8f2300ba1b8095309e41c1ea6016de8f6ce4af647db19467e492c1cc12b5b5426b8339ea122473d1b84c603babba7b32534587145b360474a8483be8b06a6086bc5666a9b5af8b4eda929fb60606b85305c89cbd26a4be8a6b4866808fc2120649a60a3da2c64330a94dabbdc4cab2b956b2a5b7dc9e7cbdac88a71d5c06df3b192c5cc5dc6b7d10b07846026a3f5cf0e5b2c5d1c80bde5c3ca231ac908bdb7054190e77d54d40b9e7534dff0b36eb92652449aa4305967e57c9e358f8114544e0a5b8ff2c490c4a3267a405e38653449b617f26c6a3a74033ac483c074d5d0029d882f3507a7936845a6ab4d33bb4dda806759852488a06731222681326e9c6691077a35a7791734bc6b8e2511ab961bb1f17ee411ae86ebabf1b4968da61faf667b507450fff1a3392425457ba4625086ab1a871c8386982a322b82b7cf198ad639060eecc1c2e40bed7462ce4c6792764509e5cb9cc28b5a71a26d52658c0b5b951180f903bad708ca9bf7995e4595b8a009c614406c669468c1b4fa3740a9e91c64c03ce4a3adecd19a716a82530a508970cf16fca38aa10baf9810a8c3334c7b4a29904b7f72bea3e61505107e641c2be03ccd6c0546d2698c110caf2f194789c616ada3103b5c7f015991d473837e9451c9cbc9dd02333636bbbc825dd0da77a6731fbc3a831348cf1a3550166b72b4d0c59a5bb31de1829cc77c235b73bbdba937e5b45a456198b218b641be8c05ccdff9746bd64fd5a759a4886d3022cb63167aa3f37655a55e9acb9671262aeeb99f6d5618212419b1a41b7c260213b86ad9c995294b9e96e77ba66a40f9b5243bb38e6b7a7311d7c29c9272f98308a5f68c58cb111e33964b797a151588ee515fc0f032b054c7dd35ce5c734b8887465b0b4bb58c491f9953b1133561977f0c25401e6b577cc1cbd555bb8ba7760fb972a6b2344d2222c0fa575717501b3191ecc598bc93bd145800d9924c06c36d0360aab9678e93138d266572b305b7ea69a6ac8ca3ed647137090cec1227169754b49324f029776ad3c6c3e33e14170265296c1a7056282074a64690450555945a87ba57b54eb3595df82e81c1552f19c415c6cfdc0cb5fb32c3db060dcc208b6beac782668eddf9986e0a1bb5a0941a3745ee0b73ca0a5f98f5928bd7189ac6b20205555050846edb51a75573e9011f2d7738bb8c58bcd16795805f03a42aff1b854d3981002614b39b90c6f8bef32bc0cdc085466c8f55c7935b96157a624665404468783478d4b121d6b6a026818dc04515d0b98f9a1634977d3521316839253b7a847224c3819802d6b84482988122a7c87d069a13315fbaf56c9047c03641b4b008070bd885f1e3252f16918cf03af8634a8f7291e7b64df4e14feab909c10c7fbed446bdf2557d8a96e2cc17cbeb91515a2ff0b78bf0a21abcea847deb7311e2a782a567a6b1a57bf105a4513de2c378b1c0186909838a01abc000a829a9503d8c12f374c0d48a32c6f539a2ab28ad12bc49507e230c9a3881153113c1ddd446ab513608a567aea199624c98845a3adf90a5a89a3098091f207b46f28a5659f54c75a01347e18a11db75f9247749c03c7ccc6b9ed722da1b118d3c2760216c792b7f2f406397bc9a7f18343812a09e97a0f6c3c3b87179888a6d69b01b9d8c4b8cd215af5b76f7249747aba3537044f7991bc30854eb68c2f6f8b404257cfd6043a3a327d457651f0b600415a977d1cb30904bb853b4dc380ba4802b28f7c479fa7705b3a6cdf8a99ce2604af2670ab6a751236e08321d61d92a27412febca600fe30850f3c86c647746a65b1a9210adf34003a39c16ea69a626c73929567f1b001923b4f0726337f90124b74e500007ee8938cebb15e1f993e1ea0726d04a5e3b52579c625ef79ebf66485083ade6b1bbd0c9a953092fa80755f1471ff7f063a2f0013f429f155609142a685039c0aa540b3e410654803c7f281ce44b9cae5842f7347b29336b5125586d151117f3afe13669bcd7991068bdc68676a7f30708906db24033fc5822b8cbe33012f5e916c80ec7dfb3661e433431ccb796ba70c5a1ee85d63dc27bb236759e3a2af7553c03894124a6bdd3e3c87def1f1bf3e01fac4709aa9b393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 +ciphertext: b102d7ab71da57485f6d6fdc4fc78c8bb17afb69c4f5f266e402c18a619367c1ed5a5b59825162633e1bf5ea82ed986c309361cae4def129f3226230b611ee9c81d19cb1dd83f8c762e3366cbc1ab58222f5889258cbcb1ab9b47886eed1c843b39aeb6ecdb1d1135756ba2d30acfd553ab558bfe6eab9a1596dba1d3265d711f6388a0bfaea56c87bab7e88fdd6ce8111241f7ac973ec4b689b88140f237cba5a2ed5270cccdf73b599e2740e2f05139bab15a6a0083e5edefbde36558a17dd50145d32e7573cdc74751cb15859d103baa9340c4b784d92170d230bb46a2b04a5a20bf6db3bf8b7be88b5a7823fd6c0ed36881c3e630e5dfea590e712ea81f7c242cd09c0f51f3c73772a92e8f95586b5c10abd53cc9a2bb2a90a6d083b7af422e36d0b1c6b97e3eac3036fcc4ee7402f003473bd10592914e007cb0f2921a219a5cb0cb3f756d5d28bf9280d55664c6b5436b3349ab07fc15ace7ec83831b1a54b5bcff901e47dbb49fc68d1deb5f3c254d1e4fa2f6ac962362df8277a274dbcd58ce920961a4b6d15e7edd85e5315bfe6233aab84bc73866f2d5e06744b855ee34667890dc35cd1c8bdaff4b159e4e6e5a3f53c333ef9ce8301512cb5df60928fe7d72a0e8723897c5ca57e6eddc4dca47084b7dc830b88862898f56f14f29ee286c9e65ca856431b16cbfcada1a53ca163e506d1ede9d42ec3c6fedb23de6da3c74a69eafef6bca75fa5bb33974633017f455403c6f09e9474c61e234edd8ce301fd0c53530b54a5007e2ae6e0b8afb7e23d045a974b0191a5640728170b344cdb4aba753dcc5f86292d1b3437cfcec6bf22471f8086098fd4e94ff9e6521e6a326684df5c8204c9405bc7b5ce79c9bece25a9da57e1ad7e076ada0372fab1948c0a9fe326b53c905015bc90873517f436d26761866666109b977b6f1c12aef71ddcfc35075dccc3863566aa39f1f568f7c70572d5b8e45e358be7473630327901407b53520b483efdf37ff810912529334e4a5d44c2cd568c2310c14a1236fcf82a8a1c0eea577d4609483334dcac7aaaa39bbf3491e3ce0f9a975dc15512c028932d9d83e1e6263ded536e2892605516d1b37aff7ea624f1db3588c6e82ae7d591cdaa1ce70b261e61541bff6f9ca6a426277dcd33431c119ed6e36fe8b1c5d04edee4850138fb0d968bff73cc6a8ff4ed1b081403680428b6033e3b01e1a197912666e881e630d3d675c3c8f3d2b3bfe80370dbb2c4a48917796f24eb89b50d0f8ed19be24c44f6c109bac0f8f93f8acd596412566e98104c0b68acc2142aa486249717b427128a0a16efb7ffe7c2cdc06af88fb4213188e610de29a116d792360f9eddd06fe560a948bf87511e5bc76fea7d5ea57d42f7dc1486c6cd79b90a0ab66a1a4f6c3e1ecb0fec8ed361c9f952efa6a09a635d18f1cc5b113e1646a348e34c1e3f3b0472d4a5c50fd1d9830d00a3455a25c73347196111b6999ee332d66a26087f7d3b36ca5c946157039dc06909acba5a9e458f7e487f36c2d41d9fae232208c7f345e8f6909b0de4932ba55614b6611e369de0beb2f9c574336fff0228665698069120edf08cfe00b10f13ebd12ae0c52e4de8b8e62b659fedf834d9d8f14a5d53ceb47f076472981f9a89c208399e583e86b73247a0a44ebd3bf84dbd397d0d66b86619cf5d60d5b9aca7b7f2b5ff84dcb833b757ee0b0a38d7262926f315a315b1eb0419146c242195f5b4e5f25dc8f4f4418b855694f9c1f6ce65c4d48d6d0a1800d3e494437180a1770a4d41f3f5651742336918ef49248762b537c948ecc94fcbe6663a749c0cc67eafe7631c183da90d0cfa69a0c4be70761538722a6d45e4ce53fc31c78e15e5a5bb62f73c802cd8b1d102fb27ae9403fbd2fc7fabf5a59c5054dd699d49fa873aabc070c33045e084ed1b7f863882bd12bc874e9ecb080c00b47a4b322be1793c06672b11238085df22202ac1eed8d139c83ca5cec9887fd9f2f7e7da073d42f4ba5cb9400be47cf30aff2c60f1b38ff13e4e2c95a233a3a6c295767c3e59f86b895850b44eea221acef869ebfed4689cffd6d33f88f62ea125d00c990e505bd984985565093075bd4d5eb0beb8b6a0fa5e378d2a9ea5453dabab99657a74472750574cf1782fa3369eaa34daadb6d986df2e9848b4b4e24350ff61e92b1237fb5714c1b2003219b849c70624a1 +result: pass +shared_secret: 69c261cbedaf5dd46d3305a59efc0de94b0f31d8f993870b40bf5de2a99abffe + +# Official test vector 63, seed: "d995d38f934b6e1a7ca77c9522e3d037676cc939b0c8bd4b84394b3dc91a791f09d2d97199258c9943da955e7f7b26fc" +private_key: 01ac758391018442afbf29af226cac76c6bcc2f256e0454802a968d79b90ebe3252fc57781952afff183ec0c7b11ec71a6868963335825c00cedc8089d822e8470978d74c75806654ed5bf178ab7f1a658440b0d28996b4fd23cc4104f811882a1129fbfacbd29ab2f278ca869ba0722544f0d28c879f0b1655525169a723a09bf15cab7d3a1ce835294ae77c3d55c7537478660cb696025cb0db431fa42349ee5266d5c41d92c64544a6a79d9099623b513190946b24bb2707259eb40ad59510496bd4eac68ba9c14058665a465578e2bcf28068f54b47c957a7a1d1004648b2332a113c85b0261f1474718c95b95553e083b50b69d455764c6718fc286348c187fb0f8cdbc8a7c37db679fe41d853769ecc03063aa1dbb215f044a025ce98767e7a52fbcb44a9c67b5529e3f9b9953640e525471511336d993b6e741bd9e8cc942a1219fe23835384ac0f990f1646e487aae445065ccfb1cee5790342b4d9594687bd53b871b2ef34c619994093f368049a6a483c007ba115af85c976fa28787805bdfc158f64b50de04ab3b82ba026621ae262d25c4bef55776fe7ccfb15524120171e806bd413300089490d233c00fd20783630e2bbc5a661a0700cd1181c0559ed5712e0949c720cf2b15b776240b7535b76a237e37a86b81f6b59d4418c3a00624166559e180e18acb91157c715c0030640522eaa523d76f073a1279b570eb08b14bb697c93345c3da33b6d65f5ba668c80477140c22a56700feaabd73f90237c54754f377695b83a7d5ba8ea4cd9934cc83a3c7abecb927e1cb1ec405b58a7c4a010d3df2a9b48c213d0b63dfcb1533602d26614c08995c561a3bdb4933a6ca3defe340e52a20e3894e8bb95657e8ae363b928b3648ec266193d44c11ba2e47e2656d54c3a13558510c9a739c7f857b586f13a5efcc403ad347eec8623a3b41f8447301e1bb512766eb803fc1460d05880d8272c4b38a03894c2f41b1c4f08a416bf06b3595070e985768132bec00c05f5ccfefca9a1851c9b4100110051c977729b7d3446edb2ec1d02820d189fc6476b6aba6e08021e5000fe8f20d8c48b75daa6d8de2c0456345cae60309589ba9c289c6dc664328b5ffe10610a5b2af41053e21c8b58c7872ca332a8b6d12e75f739a6bfda88e85690cb35c5952c1a238d2b82ba0216a44a9c1d346188ccd3365b0f0e66007b606e04ba1d8c2c08cb6a901f491ae6c4442417a86da9d7051812066a652ccc178c0be52b304dfa4b6092b8d5e8486d4918321b6537f883661cb8ea4596c804c6534c40404f992841309f272cb61ba90d7a439dd204d9d7369523087fa2818dd56a712227d96f026f1fc1d4a3b272475beb1c0a398189fd392b0112ccaec4704b7983c10da4b1735ad78cbab8144b485f2b721193b1a9654eb734dfd2b42b50078db163b67c192f014becf74847bf47f19e5a70eb6b28a717ca908a944ac6575f43d048950016b69bfb86e21e012e15435cefc11e5b6813ad37942bb646752b82ef9c76f99a77b0707a8338a7528c01981b2b19cc64be2ade4e384aec67773912e0dc9c8c5d431c099abc663bec1f64050517acfb8584323169c941d1dba6c0be940df049e7bdaae440614e9c389a5817e54700b1710a24467146d124a12b90fcd18a964a8ca0b8883ab26916ec339d39133981570966083dbea8038716d6a574a03710477bc7776f7338c435c4ff27ea3b42c315700d327757b821117595026392e8526ae12c51b27752499cc02faca268594bedfd3637d78abe703b4a47564f7d78f87726e6ab45e814493e8103aa0255c26cabdd1321205657878460afc005bb952482d672f8f9c4196282d5558085857a83bd43ca75805557898d49a9afa414d6d2ab315506cb2879ff7628982588b62f2a428e21516c47757e36a1ce0236d9a074cd2928c043066ca3a3358b6d8065d8ac8458ce374ac71c0f6c6415faa870b760aded1668fd09f00dd2650dc75b426228d23b579204843cc0a2c9170b1155d7e445f93788308b316b9fb2c3b3c6ee79026ebf611505bc91a476baaf65bccf86091010dd14b7456e2a2ae8b0cf7e655ff251515f6627e01b1279bb0ed640d266c4b9798647fb17c09cc183f2170e9d8709f537cb6e7911ddcaf969c438c55623b89b037708303a595bc577a703b4201253367762bdc7a8d14e60784e5bf04ac62f5cba8327c781122427a83800c9b342792ad6e93bdca2491720894dde616a9a9674e771439b8704ea57d70e9095e05a03f3155c3007b1ae0467b7c7bcfd67a5dc679c8f6ba53b44c110560359c65ef6425f667b5ebf967497119fc3b0bd0600c93fa269f349bec1397c4b23bd851a0824b80b664070622860aeb98f2b2c9349c8e0cc824f5b0386348a77857c277496cf10046dfd59765dc9d00b013c3002060737e668cb6440aaed4f3220f789826b579359a3338b91f6584b27dfa7324f61859370795568de4cb39c4b1b015fb693f42c09e981c7c5658d1cab448a947f3a0caa999625131c9118258ab7635d78caeb86ac5c100b30a57216f586901d1863e27262ebc2e3ffc09ac4b6ae45c968fa81aac089a04e7393409799e853499888dcdb29690c12a7e512891421f111a2189cabc1d00a2fb9878c0057144bcca25c9a3f1a2c3b92c61261a3557177628a252347355bee55dcec7be730639fac28e0536c0636bbadbe97674d83b6c209442b34e37d9a43d508e849b3c21369149a7270e56646d984effa143c87777083bc54270b146291d8b4cbafc6ab7e72a871469abf3018ecdbc0753b94ba98140e4956c80913efffb22ad687921560055f466b1744e9bc851e12648899b7665a18a71130c1e4a47c26cc8f1a4972512186fb89a740cbebc6553ac3c088b01b21bd9c47cd5578cc58fc4697a0c756e7f860f91086aefb4cd02d184d294acf1f2872191851f585d96d3b98a755bdce648e8d7ab5e8bbbe8ba0b752973fab007e5390bcb6ab750f8aab5c907042ab8f49acdc47271d6b2a2ee148f13518243809fb5651f6da4379225bd864597aa65343b21b8f8753ab2994d981961cea24b7f780643b5674520b7fd11793b1a4ff110aac7516c1861ad54296b917c72e281692797af7a594e50c35d958436816036d13348f81851bc5332f6e1b55aa575af0c0035432b10abc89ca5cf19170d9537c413d1c7674992467323ded94c4c6b694558cd3ed45447bc5fd3979a68427916a9297904b02d48918d914ad9e88c99b5c28a6ac037248be9d3054adcb0f3746acc2c0a6711cbb1401c6d08d07a947d3bc35eb7b477ce19068fcc744772a126f98789d349fb7c58d9c91cb1ec4830ca54e2e44dcd27b45c48ae07e84c045487b2252178075cda577b26704803a94f9b07acc6e815a75696fc927c1cac2c5be290855247a4546288a383c15b05714c1eef845e9bd70ef5d3284d5800df8ab0a6522372893618d6a28a922152b1adc2e93f60813025d2b15667947788b93ddc34f05374c9997a0ab8b72023ce47a50c86ba00c86a37e33b7516437a23d37d6dab5197a88e823a5129d656af31b755a89c4df21b520b3cbda5581200c9695b497ac2b0f582a42ba28b537a7024d30c127907bcc1667547b79ae655b4143723dca5ec494d851b3e3eb763f4809cb045ca69407627cb49aa59099b050c26151b4d89cc55e762c1e358f1679b7f30a8cdc531b80580beb1b8495487d2d0ac3a9a240ac1acc457b53f6aa6a580b79d9cb953240e9bf90e54644253dbc79b2b3028e26ac8641042f7715d97190e64ca4e13624530a882bc53b2c724f68511021641ce277d0ae32d329b9ff554502ce25a294a3829c770e9565512d52f08211b7fa583ca675491533d14813ddbb96ba4f05fd9b95cca052b7cf098000882be1c2ad9865e4b9b0834189f91d5444791a561ec7baae5c82b09893a900920d6bf6df1391cf1a2506acb25d79f6d441a17bc5eb4d133f5059ae52565014939aaf208882631a531582b486bbd72850a0724dd52a225c40fa2a33f312c16a426a3162993cb7370d23c300e2a5d2a70102e9aaee23b715c11860386c4be5080283a4727954f2c5197e6125bc2c28757a63d46c0b322299e5f483edb10caef28c44cdcca5a9bc9505199e7da28286815757a63ff83c7149bc0152a674404b3c2c06949950f7b073f537728514b20c676c53176002a8c7af2865ebcfa57f1226fada60eeae67fa5417ea4b863d82c3871c4269974bb76e3338328c00530122e38c138e42df370cb51830980f9a6b4829af71a7149a28379a251530306d0719d0d6794f89750ce06c27a913832a9595b9a9c1728bbdc4515cf1afe1dcac211a3135eeecae628aac9538ef2fa7dac989ebf18207def1330f4828e22a13ca5031217a3d8e6f8ed708a7026e1a96d8ebc4fd2f54b5051eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 +ciphertext: fa50afdd558e08fa0991d99c7420f9788265d682145abdf4d579799783c509f63c6bb3bd9fff32fdcd0aa4528f7461154bb30fd2bf34d5af56d3e097e64330db512bd8fa8912cb54e2af9998e625270a63feb2483b0bcce294384e0d213360db0b6f9968c61f23fec7e417795bff16d8ffd89ea6a4f08f9c9eb49f95094b1219c1388efa157a885c12ad226d93d2e1df960b113e43f8c95e478f30d65a59ff9e6dd70fbb5cbbc523c5070557c7d268201c974ff1b28ba585e95b8e6bef88fa0319c99d8d18bc5f1363eb26fa36aa0619ba7a73d023acff3dabb02358e16f271f5d5034b15480b15d8e108bd2ce74b3e6cae83d683fd5ab321f30eba9aa098a28523f2d91defa57ad07d2fe89330b4ba2f95b7823fbf6c920c38f001cbef83d27330a0d646cf8705b3a3b44ccdcf7d16af8b0e227fbb8fee4cae2ca5a69acfb01a5ada1ebff06b58199e4efd713bd915be7cc1216c7510fd6f1400c46e6805b8c812090e47828fdc0565b1a4b1be10101722d788658669998ee3fe6b019c84cb8620ec0678c03e44bd67218312924355e61bb71b7398970cdbb0017da227b68f7c2861f19edc80a8c4f6fd2f6770f3049ad7982ca5ff8920c934d6ba6bfc5114d44517b9d49ae2e21b4545ac386dab5018a04d32e11df835e6d13ba7904fa269049b5b54db5e47b9db426b6b0bbe7a1109c3c968d3d1810c94154e3ba163f3865039e43f74b925ad9e3a847da0bc21d8ddb3e928e5107b68fc0b317a33777315f0ba2b00c202ce78797fd7f95d3712e70bf742c9e8343a6d00f24c922f0179399d16f7cecc79ec8930c8c0226bc057633cbe5829880ea52513d7adb29d330819151c1ad81be030e4e0f48b732efdd315657ca4ddb8018b79ecd5e13bfbd1e1357bc33324cbb95052da6d7570de804646eefb932f39e3b694da67731c96531e9a080ac0ed2cea4dbef51372f4c2b4810cb95e157ceeb06dde752b4786d837af8e1dc2741f0816be444bffd29943c535a15bf38a33375a5ba97636dea4c93883fe772a0c459aee9fd452e115278feccf1b07887143c5c6d5d22a4fda4563b178b795a3d686b2bccc04455fbae584f9d0ab687e6cdc32c849e8b7bd0826d9ad7fa94f95a788c5900e9af7c6d9d36763d76841e186434cab559f8347c6b5ae3a12f995df15be97d8e7dc52c1c0e51677c0aea08ce2cfd8e3b14c970fb1e0e48c139c41aaac31796ae220a19c2e7ce341c2d2ee6555988ca1996834197bee7132221e2864404c662df7e1c942b516c7339ddd143e48899b5b3bba4975d049816978e9fcdf84f76f46482fec4444cb65c97946c8eafbca4ac386fca82879e3ce2d3592bf18357b98335cd411b9bb60a26ccabc081726610d9d30bf03cf95b9976672cc61cf34930acf1725fc4ea57e503c42d2bd4aa110e5a636c34d5a26e2cbb91ec68ccb10bed5f16a685dda63083a786f2ed583873a7983739f19824772e1ef8a95fdd9b30cf4fd92c33abefede7d5c7ab5bc723c800696a6067958b3f33eb785ea33fb7ef1c1c79cb69b1d78d34d29a4f2e938140c306b3061d9d6b342560cae88a0579136f7322e9cfa01c57c7895637afcbe3509c57277a5035790085bfa881a78ee06f34e9d7ab771d1337b4d5804f09caa90f61c1bb0fba34b353592fe1763786db69ac381483b48088c2a29fa7144b81948a9128bd569a35e83871af70dace9bca084e6933c350703ab4be1047f6a583a509a8b6b42279b416fd74564b8143498a639d4ba9e3ab0a7d0ccdfc4066b3986aa18d0cafac9a6bdbd49762e351d7fbf5f75eae5a4f8e9a68d1ee21d1694c3a9011f9baefab8dd4479a0e76ddacf3adee7d9764c0078b0b1d720be9a0462c96046a6096cb00877afb8a360f221d25ed5dc148925be426f2bcc99dcd9a6cee6ff4f5db923d0ebcd312957be9d9d1c3ac7073b15316d46b8490cc131ab6bf7e32109af1f33edc9eeb14a124f9179e34a1e8ccf8805263d57cba6212895a3f89212c3ae2dca1616de55c3978cc0e550a06cb0f257205f99447aca459405e0e5b1575f48d589a90651cec6d9e36bf0374ecc6825947945d11c3c770ed4e950d7ffb789f9630286335276b6187775eb92c8b2b009d98fe4bf744c4b24b6dcc920101f4a4e190ec599535b3e0ae28b7169e2ac190b27ba5823103a61fd403776c0c9f9739454e9b6ec20dc26cef817f1780 +result: pass +shared_secret: d66f47c870254f7eb7ac771dd6e7bafe94d0dfa62240da301a5cd05f2ad7cd4a + +# Official test vector 64, seed: "5929f02a271725cb40200de32d9d03d8bea53b53ac83186c42c7f565ccb1ca508305d470850cf86e9b2c61a5b8ca1c93" +private_key: e747a3e56b5da1ec0b2859be85084ecfb60144b5ad600a4bd5f31ee866b72bd110f6111653124f695b75dbca4a5aea5c17c237d3e5748d842830fa2c87454960bb6652f5b0108332ef3024a2346e5c9ab71d4466330c2761f7cbfa29bfbb51931970b3a291179a1139a0e23e46b62dac796eaac32b4225c7bba9638fc428d3d4b691e5263c3c586d8abb56a313bdc69dfe323bfa237f27b046966c0748128ea32c9f0b34015e6c3bc8578dee1465f63c92e2e197e4e2ab2a76a9a41bb57b97903808472255b2f98bb24fdb4e8657ca5ed0cdd176931c934b33bc08f97646f6e7ab9ac565b7c04f26d12c44228e36824838c84b2efb0b5db6126b1b54614521c55455ada2002203b12954652c84b3ed26163b70c8cd5c76976075bf323d1f7984e2ccba31fa26fbe82a61895504abb81d660da8943bf6c29f16b72e59965813cc218a8635380044d40bcbcb728d9c37c375a975e619524e4c10d7a73fd8c400694ac396b384699bae098c07ba1483c834aeb3f1222d753758f3458fa2b579f3a156d0a27554a27b9192ea872ad9a83d137a1ef1f3445458761348ab6f40a0b8121f25f56fd9e7cb57318169768b46d71c7c41914de73838fc4adbeacf5f7778adc5cef5764f41b8b5b0e1aaaa594eae08b84f1b2fa8caa94eb46e2468b090832f9afcb4b543a61a5b572de2b79967c03d97cdfb5c0cdd5166dd121f8e1552780667377783c7e14f23ac2a4f2a3de89735c9e095dafbc72fa8351cf5203b7c9e96db2f5926320d8aba5a2750ec7668406319860101d86b92d4fb00f0fc75d8e3b344573d70449fa2fba847d399ee982540ba92a8149c24c411d4a13154ca92ab5a8a2be2942d45370a1a56e3ab715dcb7864b9956f2aceeec963d34cc3ea33cc9ae700b58c0953011adba08c115574a377a71bec017c79c12ca7a9362c6e40391dbf3ac987362569dc34d20a07b03306cf7577ce94078ef122207bc05e55a0d1d6368ef85874ba21a0090825c720467a891e1106a4c229446086bc71937904b534780e40b07d36175c81c8287dac48fd72c37946b98a9ca814401d1dcb5a243cad5240543234c00cc146b9ebbcc0dc57f5f963255366e4424cc595a1f7f2b9a066792fe0835e97390c97a43a52c39676af8be2393ca82d64039e6ae6a6ffd5b582915b23db1f307c1b18c90086263a9ea5a87d5470b1584c0ff272e6cc3e1c3b59b895b048db369bca70a3d22263483226262a7f15b96eb316dc62178a52af1810a7fd357679121c78083acb8ca1f0f6c3959c235ed901e32366354087162c3c86828c7b6b8688120ebaf50f55f111950ba79093a3c2029deda0a007b73241d30024d897bb66a0653386bdb344d10c90e43249d1fa0847f0ca918a414484656d4c0c246350be4722b43343a2e310ec985476fb754c93256a8321d9369fc531495b263a440c1db25b975d0a74d6b6cae1686a63b64a1fe0c51433ce5b886c34d9a44afc76133245b302a277403ebd46889e4b84585615d6482a4b0b5d528790e40538d4612646a690f0e7a451fcaff648583fb7025ea2038540acacd2b30429a550c980247188cea490e5252fdd0481d0b9837ce69e03d4798cdbcb25867b9e794ddc945d96489625aa16ad4150a925aacd254a6ae309869a018191c9e6f9411a6b375bcc9cf81925c57b99beb92921ab932aa87c3e68c500070f5568757b2b8e86035f717b88b3735ae662add2334184e6cbd2ab026b8a9d41f12eb322afc154a0b21330c951a4bf5c54959a515896adeeb73c42d94218d46219c01ce056bf78fb88902ba686b440c1026bfda6455610a1fa008d44c28bf22796204850f0e124108816e39b3c55c7ccee889effe88587b0a12a5c0b2a30152e98c612b61b95c0ca8fb3b203dc850ffc7f866275c7c851b67333f2c37a6b5b999b686fd6ec67ba67c9b0910e95f84a5e9a826e0617229206d94b98927c418cea516604444978c24dab19f0c63536076e9a0841873338767b3d935cb526c04c2ab5015fbaaee2a523ccf7154353b5282c7d9af78f55a73857ac5a70a03a584a8f1b0bb762f9c7265b40404888516016f6808bb3b3b7d0553e2877726ea63312f3afd494b5c1b60fc4b6bb6c8a68fcd1a6cfbb9265a10fa4c4bb76b8b47d0bb34f99b612a595aaa91dde62c02cbc473601b03f5547f1b4a8078aa079c4cf39c56f88925a9383b9a0f57b58741760c58d2629c5d70074df007e715a3f9344755ba908a4a310de73150a79a9ee3957a730687f4b2e7df025c1d699c254af6642bfab84809ea9a3b35410c7688b296a3da82c6cf6790b48fa3f66f5b651912e7939ab76b0935f49c1e0a25422365974698c9532ad00120bd2ab10a8d1a78ecb392e6892624a3f96b2758a423246d67933eabe6ba2bc019a031431338ab546b3154a80945a9b31bb5f9c4071a4b0ac4b1b85b3a11ae1371db39771259936a27ebec742e7d6282f19c4b6ec1a70085ec6cc23186c8a29f4c3a1d3ade8912e3e238f024cbd30e61b1ff2312c91a2eef9cdab68446bcb64ae505c32f0ca5d02547c3b2343962df8d384bac81d15fa3bd2a116b4d9aba31041428ab688f950809c94404b5c35f303d9852a0f029e609126110b64e310c81d634117e3b3e1994ee2a2799600aa38966e00aa9450f24657a39b4901764c3a267f2018363950256a69d5b0240f368bfb238fc3abae22dc2f3fa6c9e7f055a8712cec654adc039c49aa1d303158e05b0ee4f1ccc0e07cae74047b603671b9704e70646cdc0b1d1423bf3c4fca6612360269a26b9731524a2117a2b686131708470ab6c1ecec857465cfdcaa5b1506abdcb6a5e379bb4e358462f802c2a81b26d0091a9a281a891c06737fda60afd65ab7c7bc4d97667220ea69896a46f20200b0333546713d9e685d8230487bc39b68b170105231839417fa92aca1cc38246b3d0da638aa28c907c823a1fc779b7626a1146645db0582e23115c64ca6468bc21a480385b27fcc28c0e6b8430a270c5061012a619da7138ca97da7832807aa4f338a3983170b62145f36a35241d21c13c61a1044b5bbd2232f5c16f106ad476818f83920f650a87dd80c3213680cc1572b0625391a92dd423e53dcc0ef58ca376b18a46b8ba4506878f38c88d814bba280575235b23107bae8c1f443a5e9c1058c904a09366b50e7b531451f8416342267352fcc7fb21c05bad69bac0967778c0c2d48a60980ab5b7901b84b54f1a53b6bb09b37d48dea04838193657cc7b47b436d4dd36cf9bb4bcc552700f98a88a850dc009b00bc41c9f552e5b346416024065634f4d768cf49bba831758af42e408668aa712f93f43658c48b80a72bfecc0258ac6fb10c51ba665e8f25537116ae53336a8f3a0d2101b705642c5891b4500ac61d023398b35a21e37ec6c9821eb46c348c594590941fa0cb5d88ad32c3165cbc3569e15960dab8f53c16d02320b7c8394971c14c5633ac5023d572608c60a726d50b22dc3696e7c352fa6faa0c8e73127ece085562bb8a86ab6628149292a750588aa90d268f5fa618b559a4f8468218985db9f4cdc1f65b4644cf585a1a8057431985058476cfda6ca0dedb2fd77917fda88d799709c169c01e90c5528a9ffa144636334d8cb3a1cb27b81df55c9205aa1cb43f04ec29beb19539992846db361de4bea0a7b045749609571639933e6c105221782033885385c5036153ab3ee68156f0abcebcc67c9163fd09cf2a50910c8a5e50ebbaecc030ff38b041c3513da677f78b253d7c5d9bec993f85aab56a21502b1ee66922ce9995eb83376ed309b1f66c9e9b46436399364496a51851d48ca06e342fd40a6c64748d6db5a9bf18893d65a9fc3b227401c9410888287100482438e604cbac435abe040598f5cb7f07aecc23b6b38a95f9cc8ebbcb4f5cfb17a8443f89ea8eb592456da09fe9a36bb31a98e9e5372d4bc83f9a7509da4ad87036581b27844b79a9753bad9a476ef64661ca2a5e49797fe161159aca36f017d947b66d87833383c9eb593313054e00867a81e0aa6b1a8493a082305a387f8c50024a9f682c69ca0aa180eb8dcdbaac44f4a3fa830bb056352095c2b8b65eef62775a470638c252f40c8137d05cad7c9508c3c34a6b29e6c6431b34882a3526ced7143da2bb9733c2ef816e28d3a1372b418ca595ba593b18789b7c6a411e27acec3b4246e8659a2330c628436d21722536858548a280588cadab316411b5edebb50ddaae15c32ecd74af476b3d4d834c1047376001cecac303f5c1bf7afc7b63e8372c97a8fb68837064294527799a8874684a81f6145ad7ebac7a5cbccb696472ca98fd95b9ba4db7d8729965aeb56b8ee101d0b32b6b80a772fa80e70598b17e84fa2a35c723556eb2782c7cf77ee75f8928f8038ee66db41346741fbd6aa1daf2b43fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d +ciphertext: d2f9087631c7583df5f541588ac0a0696e83c45765f3eca327740dbde9197ba2ca9d072aa0089db2f79746b0535fc8a77bcae1500e3fedfc3d911d97c8ec22fbc1f61a5bd6305d736d68061072982438c4f673ea82023e56b42e1385ebe4e85d5296e28ae0352d5546cecc6f29cf4e25368a6a794f6b0b33fb1c568dab46ca7a1353228ab01184be7c0fc603f5460fc1cec63c240dc96ed5e346ca6ad214b00c9e0679619ac924254f5e75c8f96a8f8d6228d3910a662c24003960011e93360c27179f826393cea762a09549950cdba847ab8f676530d832dc16d4e479c4207ad6f9de68a0d4decf15d46d98da375b5730a6a8322a1126b6ecd8d42772b76318708a9366b8da5c7eee8fa928ba2e9959a1889f4eb63cc5b4c1dbc06c728ee16e93b8276ba862e5ec1b8cae91582bb1c90893e96871689edd35c1cb12ae33c55a69d4c5e5bb6d553980e0ed3c131d2d87b52cc3fd176b92425bf6a90fe5f5cb88fe69bf5dcf827bfc20b3c6a4145d400e4ea80e9b519df58fc3eeb0e9579d147505c5eaeca51f0894f5f1050c07d53bb715671799c13486b8ae5d26216306a974b4efd27d8f7b534dfe1e25831cf74693f7469c64d09f63432a1b369a1b122b1f4c0020b30c1bc781f5824aa91a4d70db70b8f121e3615faaeb7ace2b53de58a56fb44cc47e5b70172d0849957f5a1ba90aba44504249a5f8fbd9af379f0cd256a8dbd728131cb2b09274bfa9d7c67275fc502c531a02879eb7715b00f2bb794c2cb357917ab53f6e6a85648056904641ade5a0f88c2fd00f4933c34e9edaf34050f97863c36466741a5ca0dd7d9425278a1079bc9351cc6c45a1e80d3953fa60c502da6533188fe91057feb940fc926feabeefce97441becde7782f365610e1565b6a5660d22d34298df8bb679442bb821941743ad5e8390789f3c262c6f90b4685a0b7381762a9aa21142e7fe80735832918330967fa9949e44c30eb06eaa729a108116f533d72c3d20eac2f1e8fcf5c39e86d7b453894ef01681f0b46aff3ebad2927d3af51476543afde23040abbfc167cd5a9c1bcd980f2d2c8fb09bb0b81f4c778a6fb4e114c874f6bf0a115ae64cdf82bd3aaaac90b004c407aae67371ac62d9235fefb47de6488627e3c997fa0b5b76289d0166cfc4308a4b9bfc674ecf643ebaf66c2932a792a360ecf2bd4fbf4c675daa7df02eeb54e2a2f0a5979c33474832d509c94895c61a93873c4e699a130b1fe3dcce9603d56755b501440167b09b6acb9e115ef4133963cd702f9097f6ff44887bb0e230f80e97c41d1028f36e6344c7c1e4a19792b9c8cf838bbefd4fbca05e1edce7eb9bc9188d89d784305b3ef71a3e097a7ca675a775656fbe3f2219941a0a70a777260645fc2198536b585d8ab161084f78fcfe04dae0e1816f0bad71581eee3d663536680b1aadb31a6711832a7d3547d97e7e1fc9bdea77acb15d7d82bacff5769da9e7ab730c8db6db6a9b51e2c419756159ba73b6a4ccaa8cab4f86e483237f8c6ba850155d5e0894f9f3105bd11a33ba4c07338bb03e67d59dfac122dceedb28d349aa26c61cf95ed6ff2f7056b5af9947f563fd016d046c9c2e9497f665702643d42f5a277e3e4b8f905db9ed6caada50941473e3caa26f70a9b68284c09159380e02b64d7a4da9070ea4b91514041a18036e7284407456bbd8a5718a9125828183dcc65fb0807d2a53eff3e8b010ddaf62e0496b23fc21ca0996a0a625839793774a3c5e0597e00fb4cfc6fbca08d94e809969710d091a45156c1b883935c94b1c8c514fb8fbf6d0dbc00fc4038d05f92362e5ce0080353c61b65f201f079ab708d86feb9f6e25e0289abcf52ede8e241daacd90a6669c17d1f1e257569a4832cfdb2917a64619e95a8e6682e83ce07b01dbe1e261ba31115e05b2405809e123215ea11c067f059c10851cdb00fbe8ae6c9508ea8dd9df624eba5eff018880dcef0171ddaf375724028fcb2b92a8aa1d6418162fe994d1b7b2bfadb2c9d72529ef51711745fdd43da7675ee19ac6b6b2833c69fbb7dc00c4572bde53014877cb5aed967a7f9477417a396f77302330ef0423937e5d4893d06662e2237e5952911627aacac06f37eb7d38239d2623235efb3df0a1d630de19afa599b66f41db7381acae5664deb979604274253b7ee8fd840e2a324e3db89a711ebdb5799c4c31f45482c5a7 +result: pass +shared_secret: 166b559e963a2f4c7236e90818442e9d9b2ca49f91d96d54f239b9682d00b5ce + +# Official test vector 65, seed: "905074033d7b75deb2d06a2f29144eb377b452534c5710632989f02d45312d156557e96d4486020826db200153bc4a8b" +private_key: c35b3d09514951dc232b3b261cc77a4b23b033a57012277498f66299f98b2e58a618cc8b68ba21d1f86cee4b7221611b8d003010c870a4f8510198a7f486279a168ac82aa70744cdf8662ce35b65ac836895255089ca97e4b61c1a52b7b6cc24b434b25be51814d09b4312a1150931d627685917b8535bc52aec1eae1338bcb6c087bc419d3a30f625812bd73fd3e3c798d61be67b30d0d34e34434878f53102437db096cdeff6c79992337e1122902c803e58c56d0878c5e891fe47441f95390fab44d716978a0c4af218863ba783a8c7b5b9f74ae671684fa284e1399e3ca469acf757f6dc3b6306a2b241005214554a7430dd97646fc26f4b45ceb8e13fe47bcd2a1b0ea558caed29be60baa1803808e4702eb6f46d92d1c36c5aa89fe27346c56d17b52ca4394ea563022551922923b6c5d36477002d92a88041399f33a902a0292563182a48145bb3791e0eb45708a4132fb768850c83c9517d25b1954939c857311cc94a168756aef272764cf63cca0b1a95ac4bde1c2c531769ce89419edbab9614c620583aef725eefda51bc16b5193241b986073764c4503b7b497a9d77587443a52ff47803bb40432852a1e4f6a7f1fb0a46304da84a85523bba99e06b304583bab0baacdc98db486439916bd3eb4fa6706c8f26682d728be9a82fb96c6f82a1c7414c5fe645b833ab30b515a446e54e5389a972d6222ae14209d9634af7bce363a0db3222378968eb589f9bc2a5032c37af18a9dc72211b5858575147aeca713c216dd4c7486861a16d9a56305c81255403be295de819b8efe70a19a1201e7740240aa2a081739946606f7786a6a745b6929e70f552b7a28f49990c82e114360b63cf739712dc647fe8a03b9a8ec5a2b4f8c3010ce71ca964a1a89c61729c3c18bcb8891bc2f880c93041a5ffb9600e184df6a07ba52838123ace34f01099d5507e7820abe2bb4f9b67012a4419934d13db839d36aa6de939feecae90cc35955164d9d9c8a078909d4cb22016854c2729633b2f2899302f356521f0427cdc7907b4529155c871779149f606ba29aa0d9586ee05baa1c78d12b9807ca995d38122c43b9671b16fd03436fa87143805c71c4656c29b8da8b3293b44be0a0bb873647f7aa92562e4706362110388c9f15962cb249953128a53e30998918ad5370ff32081f4053d13f741d036c36fa47e8a97b15c647272a52ad94620c4ba7aded0259323067f8b5612fcbe0aaba35d6999339cbff2502ea693b446f626fa05b5f3b90c7362a38d0a710a32a1e68614b1d63469182baba57bed2a462e879b7a172bde9ca930d85b393a797e339d4116c3bca1cfcb16205ad5c0e68488a112c34c66b4d617b856ac8c66aaa98ca458ec4219a747930f3394c4623a7d402b557069aa524eeca0a6f65a82a2c95aa816723aa2cdfa841106b0336a613420994580b94b3261a15799cde04ca3a758884be34955725827c15432e194f624921c674ed10877cb5078d1b29a52694fac72cc2aa435549cc34242906ed1cc12e523d6ea0ce55cb8a09c22cf580a76a8909d3c3cd749bbdae9c05f117114f4b5ad58533d410f8b2010fb8c25fc1acd38c69dba50803a3066214914cf9a8ab056a47892197dc50783072764a69d8b988798aaae3f1c1b2a268312bcaffe253940311033c64d20c1aeb501029f873a6aeb1d249945a997819651bbc86b96cb0537e7e80c0e382df932606bd58ca3d21c01332cc65c1c00b31c34588d1b10cc176b2ffbbbaf2fa95545e51f0d7445cc017c4d3178fd38c9d85123040a702003af65b74904028753825c7f7c6843b3bfc8020535fb6888227f6bf329d5203eaf8b8a3890716e563578e795ed566d43b071858b1336165544ec566acb361a8b8564796b8934c8ce253c409677c2d45691306301a58da9ba2d05f0c847684e960590f1a5c60217c5ab905cc8a95e9bd26301802ba9257370b73e63d647f02cca6d58907da1759cd5c20f7a8762e56c1e09b95c1b99f2bcab69931f03a707baa0580a896c022a53c3c846e4d0551f5a2d6f6b4d22ba779b017fb36546430292d950c10ee42862c749bd95104f133252b15771db7d3ff4a7cc310036903650041b40609d6a9c16e40ba12e6c390a388b95950b1de92acb71396e4a0fb7890bd7d123d710a5d0c53790651f609447f0b18434e5b31f2b2a3d1233205c11e5841daccc2017203be9c26db2ea7de30a6671f79c1c424052a784e727c36a3b9dd1d71ba80a542dd42b17c85eebd81406dc394ec556acb00932fa9a8ae610646a973de42f9fe29c92b35c04884be2a5bd3f68b2083945f8ec525d651877d924482b024847938eaac5690cb33f0a878927bdb4a84ad627092f046a2968437bf9a675d91e25e89a3f246b38461f002c3d78206539968d9b7a83745869ea8accb72ab1dab78ff0183c2ffa338c819dcfc1178ad8b928c68abc98209819ad705a3fc264bde3047fd2065c3e1806a9318d75a39c6e4541dfb86433bbaabd12762f521c842a2381dc78fb312b1a6a318c5201bed68ae518be985746b863ccec279836d6810178c54902619301467bc986a735a9e93678b1f433bcb7af36da821dec7546a4957e413d30a4b1d75ba216da71af7a7b17a932c224bfda459681893ec103a4b56c10805a24543741ed0b1f5bf84daa018f94c07434758d32d80a3d8c6b54774da822451b12aa086782f9c0622c2b8ac9776639084a19a509124b5de6d77a83bb6e123b8eb1019a2b203f87896f23018568da081df72e460a1d8a2815794966aac55fa07cb7007ac3743a0f2ed5b6f377286a7c2aa4b9655237b3f1635dc25527357bc4714c3a47285c9ae3a5a84886c7302d22ba2d3c15580be7b1627c81fa1b0942e85a3a075845e47dc0674f4ec2c1ed9ca031ac1cd934a01c022d26b6ce5c038fbd541dcd4ab4a9bc17c06842d7645935b57587559c11b99af337bc629a45ec37a3a20b1fe905510971b6e0926126e815625c5d79f677ebfc69b1489809172f34e075c29a6e9fb4b536f892b16c7aa97623168823d5b1afb439cd2603c9758904b942971d769826b169936ac108c6caedb98982098d5176c71cbcb11b22b96143433f6c083bf83f6005c5c8b93562e081c940903ae662a8f17fd0882fcb399161d2a2bd2b8d1af0731b0303e3c9beec81c5473384b7a04c1c841f60e27eca0977eab4c750930a2bcb3983daa99cd4c2e2414ab8f77857432036c1a9a65c493afc62ef80758830417375c697a2a7fd0782ac011014733e51f088bf32b7135b5db727b147936740e320c603365e280cbab502b64412abdc4d25fb9a96ccc96f166445f6a6c3a894a6c10ac7bc074fe7b5a1d2964ef0531e7bc445e0a402f45b0f29809a84795848812a1b935d220670c2cd0e3332abc68f57b98f24cb9e68f8b1663b4c793ac4212177f11c594671550e44794f84705fa4835d918b317a1d5aa39e65026d3888aaf40cc247023b74cc4e00fb1c011c6a266560949c626e08263891608713c12e75a229c5bc114bada81395b00a5b6e695096b2790e85c954028c5b288758c9ad634a3ae11b069790bff9428b425ab70c5c46c2150346235814e7af8576af3071c6e6d4b56b61412d7a5cabe21cdbd0aa69e53d4d223d72e4c77afb927958245cd57967428d9f6c81cc604fadb43dd56c8148664942e2085395b17a1c53646287fa14a9bb208aedb1a7e6f73828f0aaa5918a69c211bd765cc0f93615a57609b5aa91c502b851c4a9b24335d282348ba33a802170524ee3351b6c780a3a9b46cf472fbab34be9f508c32a64bc37b6e6b30f37a7a9f200c34811c2b8553ec3ec091091bb08ab02ca7680867244fd3c991508902e84bb5e177f7251057c38784c0905cbe7041f12bdb77c07842228ab569fb69700f9b3a058dc5791b600dc48855fb1cb938b2e2599c1f3411628b64094ac20eb6c50f5f5cfdfcc10471346de9429dd29953e7b139e2a46f04127d7225fd46723dfe19522a4a76389bfe6414450b885cb211ae680b59ef46177d50b0b3306820a9d57293ae6753e65097f8de97c898c465b07b6e89459f446a59c04145f2c30dee57368e0479468ae96bb2e8b0332bb7535104498ffabb2abd65a6b8a2358d467eb8376a795aab40108ed9b0967a710083acb476c28a01b46e68a3d64b12dbb49146df48f31e1531cfc3295e4cda083af7b3a17617286f60b5ca9d21858508f8f009878916473c85360e8cf6ae8360c80aad7a10f6cb7a707063ea9b2ac097155e6961388f87327d084baea61d5ba26e1d5bd9cc25ffdd46a24d81c40532697b4cc8f58643d41afb6d29b7c857837a1e385a9106e3bd9911c697c8709312db4ee1d9b023e39fb4a92d9d95ff01560d717ee34e223ead8139db400078cb308c3e1bceb046cd9d53f1a2abdf8f924d7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d +ciphertext: 8e1b874c5239db036b813ba1154ca84f8219a8a4bb785dc48912a04e5d60175821c3f7609567bd3a11ae75bf88025cf960768bec53b0350531fdce65e204065e23b58cd995efa449db59eae436e84b4e7cc80dc78cd4ef12bae5c5522c7e7e8a977270b9868acdf57df9f67128e5f26179e11451a81c45778fccbdca9e5894cace05e2e512b07270e97dc7258fdbf8b0f2d532683cf0578bf0821e5c96654d9b166c4aeff1899cac0d9a898cabfcd572892b151b48da4cea71222fbae06269d2ef9e564670ac80965b71e7263a0a14ce5a1411e29c043668bdb93af3b9d4c2f86a917118ce0b147c5c99562463cf9d907623b3b5c09bab327879c8e17bdc16f6a559aa855c5dc90adedb3ad4b642d8a84250ffb2a70a861c6ce71b24f8c6ec9199c060531e365f6bded0dce14f5a42a572f3b49a9f9696ac3da5a842640edfcef5cbccc85b3563107957183e1004443de9e416500e4254e3ca7ded5535c437b098c34f3e10a568b12f30f8d0ade71b9e2e666393e61fe757da50b9c3d2a7682ef24cd9aa296e1e92267d9d1fd686b11507b984f4f05d218d98bdd7bbf67ccd84bb4def89865a3cad879785c449c517e29699b0f3d09737558dd4ed27a41d065f88b7a07569d28616664bc6923ff77337ad3107efef86ec513b991fb5d9a58044bff3412cba0723a83fb30c465f9cf4a4c733be247281cc56e8ed00ef84cae631b2bbcf647227002cf7c7a400d465d467188c3402d7b9afb67c7fa7b2a1ecae21ec56124392be4f33df423bc6a29d1bb8641f230e5078d5642be440923fc761bdf2835fa99f505f2d9f3ddd90187ff278c2f55792c5ac147785a5420a72fe9b55bd7a69ebe877954807abe351f950de6b5766a516e5cdc0668513440c695b3e0a0c9ce68ec0e036e3e7efcf65c8af343c03802ed7b84d940b796b79c08f8fdf86cb956fd9ad3f6336a39f814d7cd68971074a9045373462f1eb03c216d5431584a7b77e67cf73f30d4fcd66ff55141859fbb48be45de1400cc66505411f91faf600999dbcb50937486c0e71722d8aa11d1146cf2ed009c1888da11e14787ecb008aeb71e5c2827135c930788bd964082c147d39da28d15382aa86763db13c0d48257d8a9253dca4d1a1ceaf5cddafd9ca74653f833ad22663a5b158fa142bde1980f14800714ef5222d4d97542cbc0750bcd24d26dcebd66edd7daf309dff500cd2dc924f651d5deb9142e81434ac9a2ce80c8155d1975fc5dd2a1d9bde9e40a85bc77942b916d4cab359579cecbfe32cbcc639cb8f6840405a4e2003a6587a229811556ea15982d193d5b84777517e757acce84f30f957c019533da3eed6f51fc3dd69ceff6bab3ecf918dd29eb0f741284cc4d4a17bd111d6e2f964360e6cfe86a95c58e0d3b3ee14b11d15d9f1354c3f364430913cec29728ee2b8cf391d012a8a48064731e51ad86399788deea1138de74476fe3a8da432aa9ff654ab7e71a9b33fb08a9f7e8d703ea3e831f575c13bb0cc592bd6e387f1c960ab82b04b29f03b94f0daf0b56477517d47aecd0d08efe6e61f8823b0621cb83a578bdb6a9976593bc825991e887a59caea6003b11fe23ac1e540d2a67262807e65422fa8f5b47e5c8b452ef29ccd60ae85448daeb744b337bc20ee87511312c2cf4aaa76f0080e166ac4d0cb02f3456777166ff968efadf6fe78dcbd93c8ba8aea5bc0f14f65262acf72052fe8d23933e4847a9eae488ba2049478b09ed9dcbbfc9ede10454744b5ee95b6381a30d838bb9060a67636b7cb75c7394e02b1e58ea3736443ad43dd540f52212f686544481504224d8d50b1e009c5ecee23882c8090fa0c7f0ae1b9f507dfa76329f788b0080f6e985c7e02886487b9379d1229b0a6aa23304a056cb9f893cd89addd87bf0928f42d4ebbb2d90e82f17d88cb1ffd34c0e90d6126cd8a8b29e2e6454c212034342b204b6ed5d462c3402fcf96c3ab79d4db0fca0ca1adf6ee0407c701105ad9884f178b979fc55ea74cc0a176a7be6f1f90f675c4f687b44b2d6923a6f8e1de0f5e6f76c4516fc1ccedb1c4c9bc51c72979270cb972385191c83e8278a4c8279a36c528a91446d9fdb06fc26ee7023beae01adb417a11176839e74e6766745c2cb8cd0b74e8cf020cce2648949e729626c129bb204789542f74bd1defe1984d43c9b046604d223b4a10511248daa39bfb88028b +result: pass +shared_secret: c71845a26ce9635a0a37462bcae6dee1b2f6901e5986bbaef9660cdd5875243f + +# Official test vector 66, seed: "a3e2e511afa7bb560446bdadf67d2ee2e16ffc7baeae7efb8c5455068bbd4e91bf9be9d98b280072faba7712c75b26d4" +private_key: ad3cc5e966747302200dd35f1d80350983648610ce07452591948a1c6a9debda418fd0ad79da318004aee89acdd62c689f88a5a7621f7ef3b1f16c5bfd5c17438b98f029906c276ef1202d1f5504bec6243f608438047e6625c825b902ce22141142145368298d0c33ef857a45c872aa73308ed112726847def20029c2730768abd1c40a8dca501fa61ccc737d8fa497091ab5ea532bc730bb9633becde90398a391b4e60f5a5a31a360529b1486530b98742780c78c2761c09e655334be04b71d8b9b04a7b7daa7ac4d2a98e2ba49a54c2e91016be462418e632a4e023bc6e816240927c73703fdf0ae2912787626c55f4614c93731c9c679984738c96b5cf64c7f3919cd4d217f44e668e9fbaee0530949f63ac68137c841ab926587b161c56d218e3500885b82bce07668ca959093792507eca4827a003d26cd02324e352388fc76197ec546d590b00f646de107681ad32c708561546bccaf0489495821f8d43a436c1e4d9ccd9be2a5b46232dd37485328c3ade9bb08e53947eb16afbc6ac1b2b96b496f1afb250277bdbb0b6186b61b88b81240292880d9cb9a43352546a5e9f600045153ba033c3148a5aa78afa9b2b7c8b86e4dd70a0516a8a3e746e83ca8b919104015650da3a6f7ab9868e1c8e33b039b9279e4680b5c2a382789049f953fc28764a0422f00e9cac3ec794de5ade0b432d294a9c06941a814ab0f89bf88e719d081520b114c9c821f772a7a3b2a16edbc2f140724e7dc1649281233507187e4b87ea13803bb8e23541e176c1cdbf38ed1a225fc932716974829a6b83f30b3f587804eb8720e102278d5c7a2668f1481c42adc13788604d60c9ed1498bdda86a9640bc0b8137f3d7ba17e0bba28167ff1c5e3eb86b6eb5c018ac766e15193b8b4f65acaa3a2c191d646f97f19b200ba588780aafbb2f1c582ddf4105767cb93fa984c5b6cb73cb0301d9183513582af59e04d9c5869cc99ed83677d5a0f4405d166a97ceba0d6e0b8692cb6ebe130f77025a24264bf6851b2a52b41ef989b9f890cdccc3867c3ae19c7238750bfa11ae52dc573e87554a40088e682f15f9be503b05e2b53fc4411758854f5d691ac806ca00136a0702ca52803dca8c935d98c87fe476f960a169401147b240c026745c894d7d91197bc7b2d7802568f61eee554d3b852902934906521fa08b29b6c7c27c6867667168b796b5249bb442783970e7c443469c540aa9598834bbc4bf8ec97a18119b496a56c3fac7e2627b76ccc51fd60edf764f68ec032bdb7a1b5424be15329a54c537810205c15ca2ea34a6462cb3647dc7a38590b120a8d141d821a20349631e7c4804f11af9ab9ad4917a27ba99b9f2277f3a8afc059bab0072e93131a1936f87c8356e3859fd97a89e17affe170693309eb4e29a769ab2ab48659f635acb4ac986f08f1b186bb6a70a50a6cd4c202a10bc2f1d24ab4338b2d9765ca263ce01295537dc56bca315db1c652e850dfaa522cee677d2775f878037e5c17da2e6c7fb296927c64ce9256f88851d31ba9658f5bd7aa0636cc2bafb1c3494110e7fb8683bdcb3acbaa7274351b14a81bafb0a4e2208d3c204e84c00920c0c074109a81426416bb805465e429641bc9006b56c75ba1c75c5ac4113f95bce7843344749e969ba2702adf09032af83396606903772547365cdf835a5bcf69d3c14505b5472475c97acd88ec1ca4d52d0b1281086a5bb3bed1cb3986238385391a0e59523b5a16756af4e15b58a07426b574ec080893294a60d1148dc418c1312673f89951ec94e1db149365b33ff60cb2bc372763277eb97c5c8884ca7421f681b90b249275e631918aa57a7ba65b4d620cbb59131201c9a3c5e070ac76f7214e167853fe16c6058a9231a0f5cf69339c0463d290457fa47d0d949bd7362b5c0c2236826e4241353c2ae7833c31dbb03e7332dbf370a637a8885cab1b9d1a864b98bef6c81a27c93cc306a27b37bf794190a3cb6d55bc580d295ae6087d05775fc802198191ac5f400c25b39102a54820b5ed02146d5f19586a8c66126c87bd22b0e9c7857c3426b470768676be8f7b826b1c1dc486c9ee64d79c33372e33ad4880f357196ca95637c80668040022885549d1a9801109a96398f1b8c6247f203ddc4350cf730892b53037b4a13665dbe0a4aa46bcc40862f1e3621f2596ba293466f7499d9954eb6a6251483b350072ce7a4910f008166e62476e383f0151fe706c23999b71dd2471af759b99239ec05996a94b7a3943e37f10dbffa1ba205b2ed836aef025221ca53ac612d41339770d80b03f0220fd1580b786353c9bf15909242494253684c8e2b5a28216501e1b4f1820d6312cac1bc02c122bc0ed71350a05457f4c40a29584e20b70a8739f1e733483b7e7f8ab62b664c9672229980536d747f3199a064ccbd66e7be173641808a93231aca8a7b54dbd0c593ba85df11c54bc2894c6a797bc0557df513734c74f3641a6d2c98fcd8c1ed356c2e199c28088ef495a54fc1019b736f2fb8895eea391c67c895041f97805bfd2354ba1c3dd8e98467d302366a616d280bdb4747fb5a000bc5781bd8c1cf2b563db206e6e512248319d2122f5ee77802d88466a61f5006239c5001975b00dd634377705274629f16a92f13b37049698b12c39bb1c3579d693970736fd72c8d8654943e5868c53a51324abdc57b330ed30145e92ab82c91d975244288833ff3a2d9d92aa1f53d99b11d191c99e06434196318e04087d9aabd03d7ae1cd2887cb2197ec4b09f7699861193d8eb77da9c9e33749e4a0c5bab3bb64adc4436b7a6d84b9463c4887e4642d490052093399b2cb52a73b5904920a601c327e2937ac439fcf3b78ee830b4ecb795376dd263a3cec91c6a6b60e48001a0f739e217b5b3c4ab0a676131514bb62c9fa1801bc80b6c8c7ac70110b4860cbf221543f2aa61e0683bee500f98ba4fa93c2865a28ba4820aecc3a6c7b56081869c701b1bf741152c0ca0a753a211c3562ca26a15395a630a4a92729ed9a3092d23bea5433447139ac0518f75d11af6113b8368cc72891a5de08dd7689b2592256a8ccfa524a2344921a0e887627bcf7965a1875c1ea5c255c36978da7c4f184a1cbaf24a2df142ef80c07750b87269419721c48d8014f4ec8b4ee23d95ab1ed9f8b5ee9943669007d48ac1657454afd466e8765c877a54466171b649188a7c205bc3073791b832b6a752625809919db9258ef1b7a15d2c54c6c02f57fa65751438f4186a8b576d7c561d649a7a60d1928e013df7d69f4dd7035485107a7062bf3ca84a93a5a0197ea00b7522dc769ed45596bc5e712954e1eb37ffd69d63ea2ce5e33df8088545e3a738b864bb61b916d29e45ebb39d8a7a6fb3cb3901b9880ab0547107c9073b19258e4e290156f54ae3d44d19d8abc5fb334ad757c7e24986a26a31d458edd45c69b9b8d87b0622166e66c76afc49a23e1c1abbf357b7328781aa9a054b24aa2645d691639f141981c30a7203623d550c31e2bd4bb95b2e7b518b44512dfa6a5387afd6c7ce162a434a6b9ed937cd79222134310a2420934b357e72e009ea8413a9148698240aef2732836b5659566d21111331fa9bb0b762c948247cba816e313109270eebe826ed722322f9841f33a935209e0df273f4e2237a59b27cf85fb3773998a295a37714ba074d1093b0f096b2eb5133bb273e50e17de75b45300c0c862354344336fd028a4a631da22b285d4435082667ffc21fa01b79625c019e71cd0ad86032fbaa79326630692b9d02be55315543d83c0b84297945406c339699b1093e4b188511aec19b3c9069bdb8799a2e077af4308c401982e96819c7f17f6bca98054688c30a75dacb90ad342acaa9ba227a7f6784100428cda9d6890396cc19cb90a81153bed281cbcb1036113250206b59208d8c75839b76ab8425211961967396c696f05d913598259334c742915dd183f32c5a4e957013868634459f038340aa7761ecb628fbbb435ba642e21c538b907d8710413ac10d7f0a7965b03cb8c36d39336543193d0d768bceb00af79069e7c85b09114e77e6063aca18f27376beb9ac4a0b976ce745fa7972e9fa74d0055ef490cf40e11e6cd785510bc4bc1231d88abbc9b22fc1e2577608580e26635070702fea437f8a13f6fb37343b488c1c0b2560027bda77fc6a97222319b66a86528061f21019aa73674519420bfa26ac5616efd714cd46b7b7751922175a1dcb22831609eb40b4d16107c8438f33e203cdbb85be910b78a99d766499d4541b91567fd8c7a85d983080b91c9254ce3c2a9feddb8c8ba948f0986a90d02681341fac1cd19451956432b83b79d115d32a3d4f86f902f2f6b0c95ad7f4bd49566debcfc9a4f48f6f60ad57731445a7861bb9c371e4ee4407b35df5a730f36db2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 +ciphertext: 2c5bdd1856863d324e1ae5352968c7d4d39beb7f06ce366afa1a831eeafeec2bcb99cdaf79355b2eb34dfcbac2705f30a84ceec1c23d2c42418c888c7a76aecf36c2c924576a87fde0c4ee2754e39dd6813abcc06f24790fc34a9b80a6fcf712886f5600e0444e675b8787a9ac8b0871e00d2cdbdc031b95dffc25c3537b5a3718ffc8ee03944e46b30dd986ea6207eafab87fb4bd9890a230b26a777f62bd7bef4264c52ba5a38cbd7bd795ed352777aca856a195784f9d433ffa2549383bd60468a604c069370031f787b743e087bf0c544a1ce2be61f9d19a5f780c9c9d135ca083e6b315c693e214e5408685bcb24a17886751d1e0d5233df90d1cadb41165473b2b9e2778fd88ada34b0ea9ffb1c623090c221da8063569d8c2943a0938598486c6ae9d4e4c7cc2b0a505ff8e3a1fe057dd34419de75381cdb15d4e0ac372c92b2434b6970e5501792e632af78bcd3853a380719b7497f669f5bbc03aa2b04c624abd6f881630bd765283ebcf64d80e1500767d3d28666b407d41628c5aa47649705cd5672eac55fde509601ac6194edbac2a0a7519d01407c435391cd1518f11839a908f6276cd9252a6eb401c61cc1c2c3105736723d47390bdb74847aacb3bf7275c1c4a2383eae54d0bd38dbedba95a3dd32c1023129161164aa29049d3d898448f1bc6a64895e01271924e9d57dc804ba8ff7162f0f55b4a6f9a71fbac28f1b5cf5e269a3ae8dee58e7af29f4105a862db54325dca76509682f8ada8a427a902cb9c98f8a0fb6859142bba23007e9be5ec038b4bdca79bfdc0917b35506235348b7b1018f90e2ad5d5b3530ec9980d059b4dfa136f3dbfce5e3eda2caf6124c5db8f59dd2b505fcbf9b4a5037894a2461145468b52e7fbdeff9b1701ce67a14dec2d9df763f56be36e5d8ab4c5c4f2b37ec7fc8c7923f30799b7a4f472b1f7f8be36c312c4619196407eb2aa526d07a8871e37cf8022f54109e3cf49ed1a8ba013f16998f5823732c28cef54518ccc758c2fb3798ecf5ec0d1ea918588b6a0002f1bc8514e4b71bca70863226978716a0a5c79ade76a939b998f9582312dfc840f226fab3759f2bfa76819205149a6fd938df2cc2da48d44136e69885882f131cebb748307c837d3b24e5707d464403de00d890868a413fcc737b30d96d4a01c51e8494434ad0f4df1757fa07c4e044f3f6170db50c302cfe8664e400d59deaaa2100167009b8f55c0bf1b447bcce8a470375cd54d2a88f103a4558d4ff4dc5be27483d2425eed2fd223529187029846b0426224b895a9dd34197205b8e5be922cedd0102b03b0ae5ce282db67bc6a9c643a27d4790f9ff1ed5cac1380504bf356d08369fa115a49af41ae5425ca9d60da1ea123ca3d86805e539657a49e001ae17b7cc89ca66c71406d46c9318f4fad897f241629a81b7ca44139fd59f187824f98265f227ebb3b40e9673659e56c35a56a298ed40a68e10f5aa94599d2375b47007df883cb56a47610cceb5c99b1f97b1066c6bcfe50899c70bb8f06a030e85c42db7e18a743a2ba87e2b0f81355838e48d604ad884b469463cc4b02cc75a79677978b3e665d03d2a38cbf9f907a0d1f3674b195f46f792a9667b62a0564a6385b962f97ff0f8ecb5c38158bf68c410b00277e07671229a27e81613eb88c60f1540e615f15c2e7e14d134ec83b6d9a8e1f45d190f8dde5bf2c2681d186df1f24dd27b5019c63b2c05e4797a52d792d9ddb2bff9e4991082dccb007a269c64eecba2043c621965668266d0f1f366ce4a8a1c2315c470a5c638f3b45553bc74582e4c1036be0f1db44db4a1fcda54aa4fb8388ce2b59c9bf90abbfd76706d50a354c2ef55403ae1039e79a6298e5d542cff9aab37132fa5f8b60f5376cb976aa58f4962ad445bec45a0ffd828292eb9e92b15d47b650628beb48ceb6777807c0212ca943b6177bb42db90de28dc20d76031d5e69caf18bce7046c562b522eff42ebaefec52d139da4086ea9c8612ca1562d7fc15bfb42b62cbaa507127f0e780a3ceadacd74b2e5f23e96751e8a78539e88ecc7058ff72cd4f4670a8297877d91c8a34fde5ece933c2e5bfb002f6b7edcfe1edae249062a444247d2d24abe422277631a36666b53e8cd3446cf1388297fa61aaf0f9cc86ace67c86e47d1021b965e393b54282eda8eeee5f592b53e39fcb04e1f1fb5910f92f3046 +result: pass +shared_secret: 66624ae1204f311caaaa567dedcbf695f48afa8c869b468142d05da1dccb1d66 + +# Official test vector 67, seed: "074ab1a37ba5a0403d8f68d26fb787bc2c90f5ef88f2a6d286c3e6b168abd85d393d8225618608b8eeb301d26af53bc0" +private_key: a11ccbcf239bdf7642937b7d37c0b33dc0667f06b13d7a166870cb3c696c93e038b314276a135cbbc672f830585a46c31cd09c621bbad1f4c611f3349104857a4b1117f47142d36fa8f73834260fdc337d7427aa0fd90b5646587330cbfa5a56f3f42d211226c6a627085b86cdd73c05838f46692be0d15a7d59b9c2e803940708946293adc5c338a29913c489ee1396de0162588b6449452259a243d422a92dacaf5ed9a88921a37500cb0b1031467c494b3c207acb6d4fb444cafbc9dd364933a3488ee654b7fa866dac82a53acc8c15464a29cacefa9432256934c7790e1b99c85c599e3c5c0ed11310dc2ea6d813b505a6feb4626048bb6ff0ca8a1c418bb4512008a94d863a6f7b359df211f061584f34043aa628ab80c46007257283a6b5052e8967a56e86230d9b58acc6125406064f03b6b25a5f9a706aef5812790566308ca35b19b3c6a7a2450a56b164bdd19278de85a5769186e7c67ea9dcb7e2a8223774ca66290368f67ef6494d2bf5411f7114e7e930b7a99beb84bc69494e7461127fda4d6edc4959c375b6d8b48121312000a6ddf510504a8454600f87523d71071e13a0b676fa681428c31d7cc0d2492bc7c94c7b423092113dbb1b123a3936c0d1846057b2970a37d1caa6e53988bc0565842b143cf2207af23167080257a339795141318562a0141d1f7b59f68169fd0a2d7c959af209971860123e5b30464a740f5214aceb6b322b4cdcbcbc28285aa2746090a8595d4371508735eb5423b94a54f6bb8aa2019b76bb76b25c1dde42b56d13819123be6ed3bc3d26b1dd515121a268d3d3381ad4432713868d7059a06609864671fd9a6a1777803e4b46d9ba6d45050fb2c80f88f450a3b655843872f727a68aaa66c758a8317a3e2aaa55bde0a97dda29a244615ea33469cc5ff82a6c2e0982935c9737943b45c77c3355900ed32785f59fcad14b936c1708baa6b5686b952b07683c1252c99d8a49272b053faf69ac090a8c0e2a0f639544ca196c00975f77667bd54289445cb62367bd79a290683319daf1be3cc89a5d105069e221b875075e7162b12b3203630ebdaca13bd6768cd9ab4872a7ff54ac4baa49c3680e372b9c7e25124f6a9c62c498adfbbe9a90a79fca19fa358367a2b5a24b821866402e43b93dbc3cce1467245a42cae42eb6217cb7470158a24fa225467cf0962b399741c4743ea2222f265a45e7a94ad800734a050635aeba147023349854305c59276565e32dfadb17b3183722b1c44af4c289430f6ab53b416ca239b409fd1584a7891cdb77b742a32e55875d9a20a92f877dde6662a0c0513fbb0875973924c16dd283ad5cbb18dfcc37fbf28914713a04dc05146a7d5399adbe57b60d6003a81a3f9f5559450483d4116dbae0470e15ba3f6323adab47af30252da7bc45e38759ba99877a6421f04232b35cd3b372c0c30ed32c64b0d74fa70c7e6085048c76c2e7e9b1bdc8b033021f7600be3135b785491cfe48932e30a89f34729c012588374fb1307c808228dbf704f9a8c0eb8a98765a8e4c1b0591c212d5aac9f9593a1418afb84bbb931349b1b1bdd8d10bcdb66e7e97299a4b1c23770f8ffc8a08a0391f826b5058240d345fffb4ac4c03483b74626d049f7fa52693b18b5381cec4b13dd1478c5912a33f009f0d533bfe57105755392ee76df7dbab0db56fbd2733487b511804bd63ec767464c10fd22817d79aa7909471b14c1e0445722a240918c2cd829d3c6c4ba81c0b6493b9d0dc3910ba048d515f2e3116142c553fd230d110cd71b449f6216fff68839d83096638348a42a5ecf0986c62bf9305068ceb799ca1b7b8826a8fdaa131d6b872e1afde468aff285aa818c8caf80b9ebb2730f770fd143d81c86819b223d4059ec5a39f18ab5386142464195263f02f9b577105658ddc80a1c7ec2d82bc8c657b00c3d986f8261b039738449c0db616207676b9ffb36a986c3350b698289367ca28cb404ca0c1e436f0e91898941d72e7c1bef2a9aef3305fc4c73d7acf83f5248766a95f9a5b97185ed14c7508d7c8f7ca571a534bf4b843145799233818e0a65e0a7065ae5678411a25d95610dcf91847513bfe14abbd94300f322619fbcb0b03857ef1340de5510156579a52ada7601eeda662b61b16677c2c81f998869a9e3773a7c7942e279471a233a05d77899c2a18f35ac98a3243fa6767f076976529b75b75b070a341dfc95bb85c4bfa1394081141fe1b1b31365e3c2302c8a0296b9769de04024da48c2d7a3e5b29ae58659384fbcb4ba2ace58c4ceca5baa5131bdd465797664276aa44e8331e2f1328aa6910f68a6a73210e575ccbbdc689199559f094bb62380f436a925a7305fdeba6c53a9193069873e724cb1b67fb8820e75c27d175bd5f5b5db020c91eda2439383b579c14da0173e1704a318a03de6691ecbc600097b41a7a9a429ca1a4d8a34dfc6c85e034e8a17629181fe7c993ab018d135a73861405186763b0f70c80d09706c9af971313e47bb917761a0e3a39f7b96702c288254675f6a07771768f3939b7bec979cbbb8bca011124f08347b7bc7c70833197b192fb26589098e48834e8fc8551a1c1fc52a1701323d98c4bbe7779b867b813a5a2a5040d8e8845d4a2b03efbcdbbb3083831b1ffaaa9e21c7a3ad77053793b1f7b7475b021e2c1ae25f194856b1594228e938a29b832930d5bad3667c854366f83b48cd3501768f086b68007ead71b2f046f630196b8237967c940d4727d388800dfebb3b152cf57b33068803c1d55c59fba14e31c323e820265c8826ec3b6018c8f60445a11268da9b44f8dcc512b860212f408d3baac60cc6ca42211d2ca3a41271f745bc46fa70a9a8a3999ca83e8635e7a4843ea3b861194bf00909e4250ad1ddb3006f86daad2b8fa720d969a7d87dc97ae214ab3769eac0261076092250133726265eb7987bd4bc01ec004e71bb8f7b06ab339ac9c0849fcb23c4bf35b11955c52d30fa0eb56dc7cbfac95704e51969ea45ab01c10e59c691dc3908c083263c3565766a34b216f55f8284f219dbc158cff247e2296c86ba69c922161ed753fdc1471834270095a85a5fabb1db91fe203113139526961bb40b41e8f913a36461ece86b37fb809779005c4312727f68923187203d001a378c0073a240190a144962bfaa89b1c384083178a1b44461926a9ed135abae505c93177f263996de9780fc573619b63f741091ed57657404644194a25b6cd1e5aab45e9021d9a8839546a9913752621bd79730685397d93ec49d86910c46a28142928a054599ba18cc3964cc4db8bb7a87543e8a53fa23a95bb5b6713478f4b0b5ca6248018a729469a3794a8ed04a315f3783e667c0cd2ac80c68a40c35d64c90e5e8a3135ca15cfea69d4a1a2e9b562dac51409c6485e026001eb1196a487606404b6519974b386abfc9cf4a0305aab4a627b6c22a994dfe46035447f0cc09d1bac0397a68fd647b0b13630d1439e63fc8fca2b01cbe66bfdb4315230b06a9797b34a57a5db208061195813073c7a10ac95b8755aa79b2033bf90386115066f177ea1421ab0267672b91830a26c20b4a8ab9011668cc46b49a2d824067102c95dc842b4f423feabbd774b4a4be351bcd8cf2c486ca70a5eb502ab5ffb8d77c2bf00fb7887fb960c089210d673679a0c71428b5ae348ff293602833b6927add5b18f22acc4ce01517c65c848680d59931175954ace9689fb6881ce17073e113cbcd53547bacb3946067a1a46cf6b4969065c98c17304d53ab5804501711c153a1b13d7cb442221ee311466469ba1225cbb312708c7b5e0055e3b476264b2244fe9590a557f088c9d4fb47a3d598a998a1b5f821d19909220a229ff020bc11143cdfaaa90e00b71d6c8b7622f24584508ab4d036792135b750eb9ae091b4baa96a27dfb1aeaf605122060e5268bc4e9c08d1bbcd451a22e44a2d6201c6de52baf940f14956aac311b5c3782e64377c645b35d210e1ae043ad6142bf6c05aab07d3915500b67989709b7477432b947239a9c7abbe747b2238ade292448836b87938e804a4029f24182941cae500d85aa7ab9556ca98c7808d90558e771d8709446bb1069541dec34b69834c857215822f773871c4401da04c70503cee82491b07e8597480b6bae6245084a4b92f9b015a158295f237a6376118868486d9c1a8389baed937b392ab840d4bf67e31df2c073a4a8c691896b6d6b623b95670cf404dd499773a54210975d1ea72667439e0fd8c112f33470789f2899a64217400e4b51fc501362ec98a45620ff6ba180a211ce5c154bb62a1904cc13a64fb6f445b48ef88ccad56919a0deed94a2ab2d4b6442a71c288753f1dc41ef5389e394976ac9cb9123b99fcd75201ada0fd5daf1a51f1d069822d795f8e736abb8d1fcd6aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 +ciphertext: 80b2121c5ffe5e10fbe5244fb9d79f6c1a5cc82a850a9a347e439f9e8d95b827f59c74bd2e92338b7edb992e8e1bae6872f51b0fda5e14cfcae8e789428753e97f4ade4213b9f1d88d932bd829ac8fc47952f455ec61a75f7c42334eb17bfe2e1991b3a97e3da5f3756f538e36845d7da303d1c41254c1ee9655d0eeb9f93036fa50495bb1dba1ffd7f879c095ca6c62d9a7e28a19538c1fdda0abee14156a298d8473dfd64d90813e4e760d1dccd97475719c15a973aec286a46f9c4176cf816d1495a031bd971ac9ab58591e6f1039c73835fb2cc82ea9f48f8aaac3e5efd3062d3dd1a349eaba7b792d1ae4ffe41c11a2dda1b1e66d40c38e4d960b963ec220b16b7c3e2cda012ebf1016f616c78b64098592e061b533c09e4437f41e2c9800641cb74704ba141bf656da410cb886e9a4344e3e0d7c442bc810322762d052a818677ee4003e0780fbbefb32b9d791f782485bbe0b25d0cdcdade1ca5f046f5778402fe555575d3ca829712e1d264db9ba1986460043e654ff6683a1f59676922c008dfe4903408f80f6e3604f50716f83b9b7ccd711d03a0167690eb705f8f79ea3a56ebbb0099c71e475599f490beef33da232f35ea5e7509c25c76040637d6a50110e8ece957371c4600d382372b89db1427c97d8af57c5ab9b1f2ddfd1ce7c6fdef2083996da61e00676a79cd0db2a6436939c33086f752bcb0b343551f6a29c258053b7e17ce1b09f54ec15cac7333dfda71e9b4fbcf740107e76ebd8d5207da82fa7b41d8bdc2d9a284dfb8e4c2032e7913d5703743c436535f3bd0df97f961587dce17a2403bb6bc3bac6a97c45a0e32573c81e919e0117457af4d693eaf239f0958cd9a2d44640ebe107ca0f34a6eb7703153c07b5568c143d211e9d31f1665fecae3c51269e472160a89c48af0a74123a9f743c1c0bc964bb3787646d307b1508c1cc31eb2ba4f6271c5522e81cc3442315945a94f89ed18aa5c3bbe2c552d55429cae27b946664a33d35085dcadecb1484a3e25e5bb409c8a238cd634bb03c80f66c7f539eb41513e06d2c7da5418d9ead72477117e7ef732734d6f90424a5d98a444ae95d3b09237b022a25d09b9de4c47a9a1b1ec5474a19a9e4f53a9f0c330d71651f8071f39b0e806a1dc1646ce155a0b4708076238f9e269802f707f0f5071b1a3f97bd63c9c89501612960a16fb6a2b74c183ad073c6bd59123e72608eafb1423fad10df3d3c2108de8f38cbd283c220288e34019bc96330745070a65410c523e5423eca7fe43c09edf732ec3ab8439782ff69bd27771f4e88a4c9a6447df87f222b3af22975189fe9e0741626b0b9ba7a9e81db8a4f887964fd8cd94e90d6806648140a39f2dbd76169c3fcc743ad776b50f89e9fc4a6ba71698fc35aaae3c9eb0d98de8e29efa0f4d07b59451b62600af56dd95a8e5b461e57ef5ee0ea3b32b5d8208b9c7c7e68938d86fb9e2500dfbfbec2b5f309512d4f1d145751f5ed00b73f38e9980056e6b8a6b02d4eed3b6158a61b6505086d5b1900e9b168e9dab5bcfb63a0018facd763fa6f53de39adddd9cd1a6069f0ea28ddd9d7ff2f37e6ee73d31cb7526c1435ec97eb6671f7e7908871a6570a5a8641c93cb774d87b18d435cf3eeaff0155c309286a5ef54b2a068029911820896facf98d1fee9d6880db48a3158be42f3243ea88af5df7ae3b9cfb2bde9bd6430006c8685ab59579104cd32ef74f6a57341b7bfd9bd89d4b697c496859e307a830e225c67ab66817386f617e4672f7a91039a7dce039ec5badf05d23c4f9f64744744cdd3c03832bbc99f7c19e60acabcfef41258cacd781f5979017745b10a10ba824606a10e2648ac4f97ae7af9fffb80e3801106ce9e1b264fa86e3b3294420564a65b5e02fb4a79f078a4fe4903c26cf6c9902999cd9b3a3b0667172a30d205b94998356d4ddced92c0bd2ac68afa9984c271f6446d66fc9526f064b90e9645b5b8ecfffe179e492ade63b51fb77f7d0b84ef059f077f135761c7f9c07b0a4f429812593dbb16155489a1a55be6eedd541dad3003f9e853aed5625c6124d345e71fa7330868fe85debb7a0354e81a6fd5417ffc120a9a4c757ec424b96fc6729cbaa654c89a479dd9e453c48cc16e5321441a9378dd5164ea34a34b0ba92faca01903083c0b21c46670bf25de670056792534bd0c9c7f10141f6425c4af049 +result: pass +shared_secret: 187e5b0a3b6f881c8c16f777d015d1e9e80917e49f39e4a5362539b7870bce77 + +# Official test vector 68, seed: "cc0c86cc0abf86fa21899be1953913c00e7c46e6b5f730c4e88b3c034012763981d7f14459d3081638080378348856ea" +private_key: 160b1e369b620e7891965a391bb99d9933bddd1b407a647daba289f0f16509f41eb62576b3ccb404744d2b699891300b119cb1bcbb97c090ab4091c1d15454cdfb2e0e181eb677797041b47069680a929f85da252b34b571467b564ba72256867aba61d8b14561b7a6c6cc0bd73227a3f5c840d264ca45cbb4d6c529329f011b2235b83fb8158a3966643c5664e4a4028b784aa3f84c2d21a6abcc5f0bbb5160326963929fb3296b3c65502a34c409ca9ce0fac53661a77a6ab85339364f0a999d21147958b01276c31454c14410989186496a5aa529223cc1d460a729a5d5170fbcd3c742b267d5c6aad2047154630cb8492556372e927c0ff48015b4121966c742730c223ba3ac0d9553e8f3043c84a19cc40657167a75603a2e467698d117e0e96beb199ebef57ad25b91be9bbbc31499999068d4f56315c05cf69727f6c1b09038ce4e3ba307fcce081669c7f666934a9feef44653466915360c9160a573781b0be59f23d817922bb9453802518b52250b5bfb1631f16327ea30552cd26725d94717e098e9b40559d12db67680f52aa19ce11ef22641d214b1d14689252027e68bae8f3a0034189c2452a89a8011b0f228c2f4c6c575ae8ab49d9b951b7f534c5c0c02b94c2eb1c120fbc6cab391ac02d71b3a61aedc65211314129ce950f4e82530f297f1d6b8b9fb6f0c423ddfa842f5f6667109caf5ac5db25a26ff46a771bb1731b855e909604dc4426d1598ba26b94fab7188ca788c1b473bb00f74232d7772c196e3be42c20ad9991b1460661c85a90285952a5565b9290d50fc2821a84eb80680c4d204981851882565e20455e7f70015289032d1792ee5475c499c8ba701bc094cde789b7647536ceb7471db9e4fa51b1b0a97d2d94f73024e83077dab62acfa03289197cd5d802901e34230d47cd5b469d202ad64e98f612cc286a267d17596bca1634094ca33e09b9fabb5ca170920804a3f58233ed2ca62362cdba424114275c1ea0df1183c33303efa559bca706fc77b164670058708b5a97c6f18acbabc011d8fb230ed56265c5c013bda6defd92e76c0ab04fb8b1e0758073325c8c60465678537bb5ff47923b39a800cf39eb5686b653c9423594fd7290745d566abe2735dfb4e9f7454eecc53b6fb11bd407d37e49a3155cc3561cfbe8250dc207d3f942fcaf3cfe5223103d2475d0aca6809ccce5b8d70c7aebd053f4c94bd2b66c9e1eb68b7b6989f6babff582f85d08b3926c0fef7ad5ee61cff982b690689996412504284e65bbe77123180f78efbc01c41a8262ee26765d39e94400a1a27ce4b147ef5e25d314c69aa86353f9a3933b73ea131bd7ef12979b863ba331f1412386f87336a90718da6c9265249cde518c39ba4e6ab83ab53c2d2c846f43041c4855d93099939d0bbf88722d873bdcf5bbd73519d8ef50255c7a18cfb04187147ec706fce576ce8f13928530b43262cae618f09d434fbf29fb5380add29c3a7992613733fa730a17e059c67297598f44fe28b4c4fb04ff17bcc7f3c8e516b557bda28fbf82971e8134e3082bd7497995bb2e09cb398254a12e0bdfab5a1f3234853c3067903a64ac22e528963eecbcedc58149deaae0965185b1c2588b40668103719152016e833a95184da4b10958c78b2d4ae2ca07466700f62fc687fca4779b500aa904a0d95c93464717b3c21e58b9e4c133d793ca5660348ab0198a81937a8e000225b8728477922813b9f79325f788bd8020f052801fc079f3d604b3ec830d29407aa9c2168a122434b751085804207b29062b343fb90426319998a98401232f3d0ca1b475d15650e7e9a42f498a7995c4bdcb893d09531832a4fd12c8874e4c3c65005d6c27a102725a8113d2ec9663a40255fd4cab9328b2220737f13aacb4646b392811eb3ca72307f89919525107be84a5ccedc1bb9d313f7b99d619cbafeecab88a01ba78c688166a6710b12a4724b2c661351574d7b1ba6b9265948d5a572b2c74982bb6f8546b8684cfb6916c9c1093ba1c205f92afe80ceedb043a04b67468335d28a8eb2406c72690700e724d773b40f4875c30b056e904ab688888195655d020ddaac5d1b20032a9b65501b51ba036ba2d48e5fd75b5c2a4d8b65766bb7a341247ee8121961e40cd192c6c126a3fe92488d467212b3141c2441f96a053ec568c7d2b7e1229fdb620d905119a05690cbc9564bc9cad3a66e05f641302a38ada62e07380ba315acb5a3af9f02aba7811726a3ac94723d6e66428ec8576718c4da712846d450cb428571b1786267487b353b37d984cadc2f51aa6fa58c48b011360c5b1989e104b99671ce2985a174aebf31cb5f803d29d93133d2ac1c9851031b21e8da4021b44b4064ad7415786022bdb27a187495908ddb6109489ca2a67dea269493986565e33941c1012e5504f4e5abe662235bca3a144c149d970ef3815079e2bbfc26066a7c8dc5591871e83731139951a262f9f7a2630c0e0fe635cff95b792a6b9d490f0ed14b125b652de35cff994ef341a15bf57978211ca4149fc389c60f915edc45610b9c5883080e96d77267268a37b4338ccca90490cac44a61f2795f943a25147a8943dc545c0805e5d39b70139bef006df10c695cab9cdde3b7c3a2afe823c709936d7c3818584abce96950c06b248b858859bc2231622426078e480074bfb011baa6b11336206425211c71b48d134b7b0b1c960c9429829ac5191f8f8aac1ed70bcfa4342a362c68a35591db506f2b69bff31033f5ca4654421f48afdd736e25d810add97f750530c443618e674a6691229c3a17f3b19e9d3740ae4a6aa6b77254b27374b246381483e52624a473035fda0eac427cf0f7244b3b8fcf4c835df23cc5b729bcb1285ac49529c1241977741ab15c2984343f5139e1219d65992ff75637fa3a486232c1069cb49269305057080b535d4a624bdbb78ac18407fa8b48caec62459b80cdac45013403adf41038fc0b97fbb3b9450e9953718cd82b4e951b3628c7c1fa39f5629dbd074548d156437253ffd92f7de9b292b00d1812cad1ea7c26a295e373bf80fa6f173b68e7149ec6a454db833d00fc462472ac51a208341a39fa8ba8f7c8243987cafc65a48eb30e729a033cd8929a746ab6eaaba19388e9246ff28355bcec0249fab0e00b722b91bdee0b8fd80377509937f201880239ce9c9251a9d3b48d455884e98acd948f0aea095155b360620f29a279116ba08a5b5ccd6c86e0e57f4b33c5787c38b7f0b924d71d7c06c58f932d7c68422085c8e365c6787b8069d21f0fa5a414d44267b40a5f629b6cf82de5588b7e828868c5b6ab9438af030983c7c37c1032be605936002558e161ba0bb2b1b4c6b1fb5fec029ec389a375d563dde64eaf7b95e4a05e2cb7b1a4809e4e98893fbb2d79aacf0e7a0718a322ed8296323681ea398981512d04f56ad2bc10667187b2ecae2e9aa5e2922fdff22eb9651c37c75f6ca87aed6213e0048e36984e2b9b6936d61318da6b7db7c8b1538754b997dd325052c21d22328f03d5774e711a51ac6d3c333f0a529c1568840bc92ad42603b4a361197b36681722d45b497cd94f73d90fd48570b445c4b166a02c5a3c5928bff91545053166f0fca5f7b2229232a301484ddb25854d522f546c477f43072814668a734786b6810770b227487a21abaf17e79dfc365c3843363ec53af3686cce7429104740a327ce441bb8e3736af22448016b8e69784d3a2c92e0f1787e818139e19e95e2a9db2b62164221d9b77ab2ca91dc221ba5533322aa772459c6c5763f24a07c5b715197a20c7357cdbcc18840aa7af18c4684e275cb3220010386095259c4fa71f94662133622a2945d8cc6572b2311a7fc0e1091ce19d8c5d7913acc490e6c1751d5aa3e5c7218ebcaba43a8c0f6d78897c15a20a87a891bc2ca94779525499a2958a60b4878db537d9b148c01b7c2a642fedc0624e594cc318a0fcb52960526af556198fa028604a9f0181be16399edb84b38405e33b43c13d83e54483418467a57f8a796b4032d37a744fa6200b0aae04899c6865a66923eb173906b26c33231a90044c9c4d5215117ca1d50cbae1120471c0462eb1247f07a2197680856428ba494dc721bdb3760c1a97d2e59735bea6064650f55212117659380052550fa311599923dec097cb28d601cc4a117269822a2bb589ad165a8587893bec2b0e22030dd8736d387673a67151b249c49e7abf96960f5394fb255be8cd9927152211613c5242a45e87028745626de709542338e131678b871955582014f1074e2f8be14a634ae5c40dad64b78352febcb21bd987d7632c16e03261c4771bed2bac280f77da45501c2ef4d97f2faf650309211985bbee4c3a85865a7ea65e4729daac39a47c305ad3084af028e66f759e0e22469d0386c10bfc23a0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 +ciphertext: 7b73df5d74dc99937afc0d6f6a0ef62e563a69bbcea3a3fa5ef58518bd06c122995eb5c937494315af7b67c3630f29fecc06a73c54b951e159efe8d72118352879a6127f2a640c4ada847db224771e3cc45bb9516bc72a09102cd800ff110e6eb37e14f7a15a51d9362bb543dc8e783ed874198a312f9894ea60d707d0e9ad04727471f40a9c19bc4b9197d48d6663feb7b2cd9eed42eef4490961e6d90aef914bd5f48b449f4519659e12c4407ab61544da3d063271e4b1674e3f145aec8a9ccae7b458b05c3d53e0f99e8f138a3387459df53289cdf5dadaa3a3dd2ff6f190648fc43bbcc1fad38a6eaa013b7b09ad69d0c73188522ba07ed82e8a34ca49a04d056f484155e2850c978f8a5e4f026ffa7aaf387d1c14a489acdff0bf348c1116fab4411f2b0af7642f88e64778644411d218c31b55503bb9f3645ce3f6b213624a3a8e646e157edfdc2e30a764f71b8c23fd95330805d4b2ac13691dfe436fa58c3d3bd05765f2b501b9ca82d50c58ecaa1f0ef930b20919eb1b00ee2eed99ef61c85d22cf2f72324e50655efbad70a87a8c8208239da0151406f93d39ecf642f0ac388f6e7638642803883f8acbae1f54ce221675a4efc9f3a35df05488fb1def243bad65057646a5e5827fdcac36bae4ca16f66fd4a3130dfc358a8d07468a6b9843b56a02d9af6befc9fd0ce94f3db71769bfe19a3a0066519f967fa786bd397b33d3e930d464ad4a1034cee019fb86bc268e91c9d8c97bacf53940d906bd641b2b67e0de90452052bd0390c45a565fddd931deb1723edc2e1a486e32cc51a8442e8c027892c1e7f6fe6eb9757a1aad7daeee6a7cb834258d2f4453e367db1a4fc9d1eae40a24b97e8b29edf5aafa7ba86f4cf8ab25dbc32d8287cadf895ca3ee539cfecc09ca4cd8116cb6c0cfb62a6d9693e6c2bcde497129213bf13efc82b0ea9aff794e18409bfe09b7487083cef1e33a59054414dbc4e72d264f390fc945d3a54e926763dc866bc92b77a6fdd82a285e69c63cf4f634b6d4f97d088d3f7a8e53cdd8b8bdf21acdc23adae7feb36b3f14a638fa5b4c1289718172d11b5e8400549929fbf1dcd7c5d413111c4dc4857110a5e051d7c6250e2036b49583322e99edf2d9276fc4447a9581923a086a59e4ef59aef1d480117ab5fa76330797192ef0f281f3c0a80d1218ad485d68d5d36724418ca7d50a6c4936b692790884bebc9e1531af6e3eb74dadf702b31d54ee524bf50407fe425dd05fda0a4e9fb2ce40ecdc326688e5c77de894377868bd4c2e2139b474e37f2c81d5cb114aa7a011f4245c6db4ce78c723f24969c0dcfb8994185663fb1d2e48e337706a2194ea212e0e1ba32c8dffefcb10b4658167dfa163d4ed8eba694c7491d4640dc7dacdf23de8f7c7338616bd684f1e514308a1812e04e9568e857f3204170e67f105f0abf43459e9d07c1a0360031b7fdd3cf03e75a358453154e29f211f445b202de15e190801a1cd4a56e7f3c52d26423d1d92fbcb486d6580d8d2ebd0a3065d2b5c343247384804009768aae6be410ba31d0189c9490f738756eb4281b205ab8bb376a53b72c425492b71ef5bc181d79b540cbc3c6337e4b8705c3063e1ea4d326f14c22b4ac67e8f00d11702d02ce1f30045453af30efc07f53c13de8d1cc0197770e094bf8baaa637fdc544850b870d1bcedd4c56b88fd8e1dae9197a14665eaeb97e11025a21fd21e6c40ee5bfb3f6da5f6acd5b2b2e47e78fdd7c777a1538647a96896ca51c0f1dfe06d3e5f293ee25a289291b664736160d9d925f5d45073f4e6bdb39f891d07589d129fb7b6c77113aa3d3161d45f6bdbefdf494a8be0e03c4ab518ea334941ca62d4babe3f5c79c814c1abde6366154f1e82ddaae9dc970daf395bfb416f6b8e33b0a85d131ec429070737b1936121059cad2644c5d759ee1d1b646d53993d7381b84af391145e86084b1bda89b0c71171b8ebb3f2ceda08782f8a2dcca9176e651dc182f1d888cc196eb45b2e664d88a3562df9a0ebc24826de5b7bf674139c961af36a05aa71baf645aa353d439ddc81f4d18504f711a1be110c3ec4f134ee17cfeb3d60f85987c37e966f887cbb3dcb914070e1424e9232920cfcd48360c217416d9680a9e3c6f1009302fbdd7f49e12451da74794e80c623c5467b6625c474646e2c13d1539cd8d156f4852aa6b60f027922e3e +result: pass +shared_secret: 3c4902f19d2eed8fb7470fabe5171d9f4530208c50521e6df3e8c568f8a24f57 + +# Official test vector 69, seed: "6d5a7cc326ecf3983c4e7683f45263a37f692f3bcd2d920e1fd9584350119e74f9a3f905f70d3e20318c1413de2a0dea" +private_key: 41a174fe5ac24562ad78e74c8e65930e7cbaca489509d26ebd09a742548fd3b90406b2b8a218bdbbe4a5222c13dbe576d37c0d4dc20f3e416dba4b784491ab7a534d28b90c7121589dbc55bb214af6475853b74a4c048885a6ceb5184535a5cffe6c3a1c43c305fac42ca17ca7f64a24700c0048447154cf15d25636873d41c0b588190b2d0178f12940f5eabec85a59f90179076abfc3e734973b4074c721a3d41ab31465392841ec558580711aafa93bc1382efa153f5bac2fab8c17eb7872e9d3b7b6fa94c2ea20d964388bd5144c237771e1c6a7f991d37a55975078dddbb76499b6b87c974bab79ec5513d839cec1926ac9c5a7e45861e0a226e6f2b00a95bd52a17eeed93f573c19724c593ed7749e542287a62ae01a4021737242424694637649771345408d2800b5a03872cf6c70ce848b8ca2c57f93543bf7a61434a48f536338051bdcb092dea6690ff3b6ea892612ab5472c0cb9e7987c3756548937e47a2cfed69ad4444cf35242bbd1b7d65ec028f2116507ba09ca114e4cab4bcb736ec5109822b0a590270d3268de357bebf98317090185db82b6c28cd4d7838d8a2368c9a315661b3554b43a8cb4cf376bd771664b5ea2c50eb929eb768bb685812ec4853a33a49519ab98c1ff8d4cf37b2bf5b97c2e0921a0d769abe68c7e19a87b50a6a56228f4fa4915b2192d1e4225a58b3d2f0ca23a05dec8bb5ff613e636c95fbbccbc5f86d49e447d0124631f52fe575652f782cc5e3a376bc868695868d17b254c797d8cbc543343804c7b5bfa731df211f48b20d0930b19485531c678328ac647c2260f6062af02cc2c1778833a62b4c40bbc095b285e282b641b75c5cbafe41a0ebf88b3cf890b13b5b8b032177754763454ef79403b6922cb012013ad810cd6875759693b298a57d107b8b568778e6c493239719c73249545ccd0520805ace114c0b7b936314a6af1f37bd3876322ad855877448e5ba7162cb7c7457c8d2a47d128b1bc8603a60d06b044c7611239ea90c0cadc09a4e8c4cb0ab386ddb2ac14c2741bb7ccf6c0387e6966ec824691855cf748b680134535397ec427df2149f27fb14fd814d47031dacc858c52a5b435b6d9b8c8f76a40ec0486d2c670b5e4878adf7adeaa9b752b0350775ce1b9b590a9695c3c05c2ee0a6f2064a363664dff41668c3bfac172e1ba87e3d3845d1119a36f52c394cc328d8ab23914609c058b8f72b4f8851048868216a9b13c7cc55177ce559553ad28ebdf2c927aca49ca90142e2caef59c9d457387d81c55729177c665de8d2ae21453f91b7663b2b1f4304bbe02499f690b95ae18976a00e3151c570c479a6d512afecbe34a2a2f2b7cfcc03290a052f00a093956091c22729e57044dc066f892799b9e263dd957296865e09a2c15e300c4cd1b1d05067fa1483c6e765c551425efc7d5b15517bd911178a2b9692a1fae74ef4cb2785e561a51c498ffcc20f039e0ce74dc62c3a56303774449661f171487cc2cacc071bc3b2cc54bee99332d655ab4e6b8b9a8351397a398c484ae22a29a4187c6f5690bc741c23e9c2af0916f8f4becd630d47010402850f3111930cdaa5fea74e3748492e6b2c589ab4af5a011bbc8ccf878bba2708720408cc56bd83859e62ab95dad5c17da8301010933ec27d18f02318fcaa9fb5336bfb608cba4d0b59cbde5c8317d09443f7aa641886201b62cc3b233903ba98cca9a40ab8345c1dd886bfdd87cf6ee2c50af15bb0539ac2673d0ef08e58bb34e3a83198093380f11035e38a0cf532cd47a45ed7cb95bb9420aa62f779345b6c851f9b09de8c79ee1a807160763b9a0b26e74ebb32aa2f429740319285161585a7bfb6f7294669cce50a044ad055d2f747070aa6cdc5195b221dcef05c43456dd2bc1c1784b397444e6eb397f35b5e4cb8aa04a7207633ac1526bdcb9591494554d03557ce60820325008b42acad262f8a062e1ad11716001d99e8b3a1caad0226878099947a2511f62a333b1b97f5b1654a35c73f0c69fd92531d32a33cb50be57041ae870e15019a0f30c35ecc8f33ea39ae209d7f65c5937b5be1a82192c8c335f35b36d6cbedfc953eb140e191c819a0ca16fa8775d67192161a3eb1a508b0695d61971cb9b4ca61ccb459b8fc3748d7c9596a93a88b535a5cd35cd8f09ec13054176c506d02a7258a84eb685d14c3352f0b0051757c30d4184ab6a37bb6058c4451e89106ad2c259bc6791de49ed9dc0bf62bab1201429035c8716b864552a26b0549b1832a2bb01cc8f8cb55630618a525f885cb6fb407f042610681428031399e5666d56a9656e1a530460ab4178c3e957d22244b1366750da084f572399a33bb452c7c73f3cbe9a7028cf3849b475606ea2c96958dbef17aa08b3f15c146edb65de9379f62c11226f9b4b85802694614eb229c8ed44198542685610f53885f5bbabdd95c5597f89d825b0f441b21aa476ba4970be900a2f40cb742402c2093803f27ca37d06347615131b81fe6ac6ac9249459c92d92133870111aa5176c6bb828a4198c865a1730a84961f3914379bbfbeb46411c1705bc86f8a38a5f817f1b4c34e99784773051764b3f55d38571e98d744043287a19dddba7d4eac3f0b98173d09f0cd10b22a0bc0417a056c66064c906b7559ab134b6c47baa7932540070811d3ab8f5f265822873b4c78af45514ffdb6d03d79c24a88531d4ae7230486977b612cb05b906ce19337ca1f0455718569e80c2c2c795b7a156e60c5c65fa19fdfb5e4fd96727947fd66abd94774a5bc45fda822146a12b67534ad93aabae123af9cba2b2a376608cc6335aaa99f759dc964aedd80e432c6f417a1a65c63f639b5312c35038faa9c45051ba31c66912538fb51a85189d846b799d8c2fedc439ec8685b547376be49a83fb60281accd733001d729e4156badffb3b7dd8cb40411ee7a3970a168357a89dcb75535ce341b5b47403308bd87bba01f5cef30634c9d27d56da4d4373234790acbfb5051ca2a8519a42e610269b4b32c64770a5db4caa1ca6670c432bd74745fbba2f22377c729446954a6e067454639c3771aeb626871e3558a0f141a37c2732b13b13532cd16462f7822ba2869a0b20717e3675a328625da796e12c4403d380cdb54930db78493994c0793fd67b0a91140758fb78d229051e696c8707cf5a1c40ef511123b7c6de51ba4b792eda810762cc114f716c66a79dd4f5b0865a1a2a1144da80c4106b72aabb0a8f8036bde19b204992dc600956ab076ccab601f4250ac4b2cef77c38d6b6ef8907feec307ab29502b269dbc063e337ad43958d893a36318c6c052549bd907313c2251744ad02c30f78d0b394635508951856d1160706cb042275ba20a4bb6a734f9856aeba164af669f43c5016f1305e8084389581bc146168c0914d1a65ae5188e19082d585af435c183df28179c6b2278491dde450e7b1bf64075e0a9a8301454b5e111e39b0cced002680e173c5db96de082c3c399e398210c974b6f47449dc9326c1a7a79f893f454834e6ec1bcf0a860d962a4e05a1f51825981b18dc4ab661abcc98d4313cb40baa402307895460139c75b6aa69e27c5e69273141487b849a42996a55788b3b42018da0ab1c315d10308f05c54176d727a04b656ce6859f69471a186a4ff6b17b877070924758c83dc681292bfc7618f2b75413c79eb9b945d1b2aef95a47cb21cc8982f405739c9064975b5ab875ae5ddac05a65a43cec4ed80acfeb15aae898b995e649f32b98613c77fb926879ec940bacbca0696cf6c6749604a1a59979a623477be871a2278d22134a95ecc1b116c48340c6c6981adbe742ede1426bb65b942302162b8164352f918679d53c06beab47f07c8a37aab0a7449d45e01cfdf9422a783e06f645353cb56b8c57e28840e074629bd58b5646cf1c96003181b915a71caa00a35fb4533df22b2367c9bef95ecc85359a236e23a425f9c975ef842ee20228c66673f1ea3be278b0fd43ad4c004655532654598f34a257bc7c81dc0999266c8c2f40a4d9364f602bac27145b5be7c4fb0759288761ccc586b9039d6ee57858a21a05676edb52c937f11c35fc091d3baefccc15bb953bf5c50b95b449b8db449810680fcc53169bc8403bc70a5b2e3dea7af89aa0fd662255197360b8c7325545b7f45f2dfcce05d939ee5556f5c63cef52cd68e8399ec25726a316269374eb94bc3884011c89890e828b5c726d149cc3446b8a12d76c35545eecc7aaaff17030a0cf9c993e53a88ca000116c2b206f0187f725acc696112b5c44976a22ab617a0c42a64d03b8ce88b7a8aa7cdba28a197a5d3bdc64cf089f922345dae5a7c6bd86d17444f21dd9b1a5c82b9fc906c4ad49e021cee8b1f3fe43508e7bb3b567d02568cc93c39c3cc347e2dae6e0144714d80cb28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc +ciphertext: 1db1afa16d8fb4e47ce58533e1022da2bc47db14d7c6e7afc7865fde201719c50f722cd79c2b0da234e075a3211009efb905d45fed0a83548746a9ee3159052015761baf021f52f9f9aa19f495db0dbedc911d357130420a5ea04516edc2ab8406be562181944b816458e815e0958653fecedd6a19193098c301a74352fc2de472ba7be44a513807096f7a0c42be557bf3f831d628ce208f33d5c797da2166c95c88ddeb42c7d78ecc54f0088f9e76f1721a4d7d088dc3b5bfdf8e39febfaa0e32c4fd4215c4816731bb515a96e6498846fdb6d58470a0148196ee81d3b7c8fe01f6b0ed7a20fc3f0910eae4656ac421448aa488a52c06b1385d4d1d73389e724d05720bf3cf5c7b863a0791b864b8d978f5fce0403263d73889aa0aa476d8a760d31494ee6a69bfec705b30a5bdbfa3dd74cce40c0ecaab83db1eb7172ae07689db456c33902175940c66c18ea93eb7ba50948cc27ec47100fd60404302d607b6d1a9374ffcd6cc8cd449455baf194cc71888463ea98ab3aa855546696c4d0b38c3058e97018cb27a7269d95c3835742de93d05fff40596a60c1408018d8d59d41c8295260ce51b09ed49ac79ba2115582309ffbe504e4ad56fcdedd57e544a0ba8e09638fc8da99948ea71d6cc75e2f03ff766b03c768c50cba64d8a3bd961161fa3466d5cefac84e7fd9157fa37a0920fc411bcaf0ff85eff2542556d02945b71198ec612908c02b14f9fa4905e1270dc709fec98841a5b3cb0a5b0108e2fcc0ee90403429110440f06ca40da8869ea802145f1cc2588b8d7f2cad465c3384ddaf4e0b7ceafab3b30e1d70d9eb812902562b360f33cf80546e1105f2bdd6496986324eff2c11f2e1ea54c66d1a082a8c19f705df7ddbe69f9cfa95431a5706850fd9a5a395571839ed73e2c19afadb4deef4dcbca3a75a63c83b22dc81466b09e4a4ac71c59bd69a6123f1a082e536bf1accc1afa6655e4cfe66e9a990e1a5b96a52b315fc08398b9958dd5965d5dfb4abafb3c63a7ce553c372d5c97e59aca1a6fe330db286ad684fe42c4a56d5729cd6b68b6b60bc924588f3cd09d95dd504773f61ebef4964199d183cfc04dd580132e1620b7a412a6e210074aaabc788381e98a9ff5f662bcf9214903681e255173c8db36a16388186456142fb49010978a984216a1d0f9afbe810cf811b01ab3784acf9ed2cb47452613ec2b154875de5af387c0ba3ccb0d725a0ccf2ef470f670d96bce6a5154a3cb7e78d786eb8a01bf066dc2f98c190273db023035ba3fa9217d366a6c5b421920e61ea44781715237b561f08471a2b98b58c4f0f45e30211a132006d089417f5272fd571de7520ce852e76f367ed4262e93b26e905ad8c21b92017dbf2bafa11b1a5fe15ed1162ab3392c23a930883ab50273aefea408dda64580f3665127f08b468bfbbcf702a0724b85f4a3242c13a16c15917f57a50fb63e0864975c0b10bd6e53e26cbd089fa7ad92172c2c03abc151c7a62a342963debf3ff960ba2beb2ca796135f3c54ab8441e823eb884360ea6ca9f81977b86be07feae2afc34c422c8c0aa76229d1ba7dea4ffae74149f9af18efe2cec31618abce5cb9ecba8243c7c116952d2439a3766f83ece57cb8f069fd5523b4bff071e844b7c3e0dad013dafb16575498d86663b2c8d8adb379eaf259c1c39953ed4b6b3a13e7e92db9a57a330e0628633040fbf324c1a86aa1e6bc9ffcc2a1b76e42fd71ca475997d16d385f02a860a001afac2e1ecb6d932a80e157704d6df6f3b3e9774132f9649ef81e4970e69b5bbfe8519d1afe7fdd03dd5d59646d88c3674221d1d2959b5806bde1339e88ecd181411b6776e1c2a8fc4055843232c9fbba7f26de53c163c6438e31ca5184e075510774b933f111f74a7931f95cda817c2c4575065d109263d24e9ab56941ca9ef136143e7f46f33b35c486efb2ef8d915544b8dd83b3a5dce577fa578fc90d7d01b6bd50f1a49bd245ebc3f062590be903b7a421610539cb53c8154e09eb4e26b6490f31efa406657ae5f37452d822acdea9040db94a1e20adc2f2e6ef68ba390cedca1d3df89556c6f4460528e04ed2cb4436312c50a428f096de7218633a8b1921924c96d64c32a841dd894da56302b56cfc00a7da32be9b28b94d7aac13a00c04c98cc440d449611fa0bff1d43d9281a52bf230d63ca2bb14dd5dd1d8646e66 +result: pass +shared_secret: 2a9393a6e60be8ac438b247fd72c75c1f547dcae83c7ba7e791176523f4e5eb7 + +# Official test vector 70, seed: "f68fc0314dea88f66afaa76e6c9b6804b13d4876924410d1f526fac59a62e26c560b125b1d0f8b461f1fc2e351effb4f" +private_key: f1594ece355ed8872280f422ecd4b02c1c9fd2716ce375a9c01b172b3c735e4908dc96c1a58945e70813250a95c1d48f6bf159aaa265da841dedf23d0bc71809c6bf16856a0d316f59955dbbe18a39175295d5899b4abaeeb6a7b3f9267426b6190c1f3c7372a0235a644b1dcb577065a6a2e6cb130f8150a8633ca8f388ff6935c2f3584508c0da3898e5a1be423506e612982d80179c4cc950aa35df21244bba78e2b24176769c934a020554aef4d43caff4203ed5351bf822695814cc0ba1860a27031c0c9de66ca3675ecfbb3aea48496a2179e6124e755656f1412b04f2aad353c93cb068910c0c73362183063a233183db280174c0648c3422361954be811651380ad3975305bc6e09b9736e911d6c55083f63347e2584e6a26bf3200c7cb9c1d71522fa87c684ac208a81b3f01298ab315773ca10d8243f465055d8489d5ce385e7c6c0b5cc741df52b7e62caf73509ccb814e9644f6c35bb394a4094745ba69b6b8f933b715581fda1abb0f8ac9ec15ded803a28e057e4d87bd7b9c53af6b943a00e3f694810e3878e3359ab109245b29a962ac32d1a066872a6874a4e3a7235c5157250086d00610e21372218859f807207e20911826b1533c851024054441014bbd618e65056576aa6404a1499c92683872eafb152fb2a171ff02f4f895f3a4b3d9bdc22a9627c6095957f86b41395b98b947e4611ae496844ba3083eb9228cc0277cd21c050f181d79bcb90416d4d5c5932f5643766a3dd1295cc2805721b58a0596a371cc1eb69c986c2b230f4ab6905468ce77916c816df1b7668e6ac5ae2429cf56a9fa6a7327892556c58ab5b24be7a9beff69ac35ba63a11c6dd15772b501dfbbc6d1437cb2ee29c98779131a56a28258b8dd6237629276894af0b46af6ed66c2b7272fb3ba9b936027b330e2f20b0813a240d27c7ae10778b0a0776e17751f85f410c373a6376670007d8eb78a7213a5ebb8a89d02cc902a62ca15f15709fef9caf5a558168b90fae5b5f3909259184c20a0c37a0196a37b2232c34a32704301cfb56066ca60aa65a6a459689bab328114e731650cc690b7f50814da97dd2495302fcb61ee375afa57eb06247277ab8ab96355ab42c87714ec6020fb6f95f05a02e679abece5069356c70d2444020521eaeb6376af0630edcbb1b655cee8a734d577353d95e3f93bb7d703a6399050e12c1e41340807cc91e274970f27d7ec86c0e7b632190a65e886b52e02827795a8e3ba1aca22c80e59765461b128543ae34965922876f2c418a47cdb447168160c12bb03e94fab4ff012845e15bc17985a38c7f3c6b6ac365adc1e8744b15334079bf0b081d3e2a9572119501892537bb0be05249661a5700bbb268f153603aae0850cded06a4d7b548550797459141beca50dc609110b22fbd61a2ce84c4d437663be27cee1b8f234b4e58bcb3d8b63295a5891ec1a63a933420a33eed084626f83dccb82002d844a593b693190f4291372dd6428c7b90bf9a97019b7b1f9bae23c87f152b6e514554cf6b9703604cbb2c864c94a024d54b7f3a2709ac878a8c2a9ea74c03f9a027d0b4973b062a45340eeb1b08aa2236b021f9fc56757237cc9411cde098aadc935e52832d3a3101268ca57b566c1804ee9831863b2fabbb9497833c2d9097805b3d125c96c2eb3bc2612df211829fc842ee6ca3770852beb38d48399a195cb91fab32e0b6752836cedf05345fec5143b28a5ce2a2510548ca95666c579f36e477e67a6ae6275ad32813a4f3795a602d24d6372ee039e50844cc000be6609cf388686cfb1f6e775951a6a2626095b190191702114ad08193d714abc32849a5a33858b1f951b09fb115f2f8481610cca8bb14a10b54e8e364c471ae4e57037c3baafd9ba275f1a4baa82c585279eb01403b2669dfd6b1735c5b7d85c5efb3a1ad8c0e8d40198ea4b4b7d1427c39660c04635ce59619b5824c80b84164641ac45257817c0cb038b3047c30ec460298c75b73a2f7f0b82b6a6583391f58ba057a6581bada84b5978888e15e9462952349961093354dfa34c0c08972b7571fd99197b13aa8b19a7f6920e5d41f50613a5c2a6036b79c0037113f41a3146ab6d7235185f51526f9b564462ad4c70f8f30346ce7282635783b9850eb9065ce58a272193166834aa6b266f0964efa45c0469249c3fc0faeeb19d1508cb7c409b49a7e38299920c3433da3929b2552d5e9a1f092383e3b4d3d8a16ffd199f7d933eaa506062697c29b1fbf10292a4758d26ab61f085c31a0a3b85a19e956860f93a3ece8a0c22426b40bc8d0c1191754803d0204ff048c07f6c778fc685b2108b0327dba9361b00c071c8223aef0949ddb804075c3a0178f41bca68b676ec8469e417547617c8b8ebb6e19e83af1ba27e2db7d08e11f25805f959285add216c25a029684160a880fd2dc5753709ea3d81a59a91357205cf126c24f8858a3757be1c562c65166a0800047949c062bca79e03836d05aa6a91a30856a367b087b455169a7c3591091e72c96b7432397b6a257723508661349265c4c475ee7251e4cc26d739b33190cbb07a993e5b72288a55d5792cdd2c9177c9541f0a70bf066135e06a3ff1700af24247aa61e70f4727e6a9fdad70c470b671ca31a21d236bcfc508a833714182198c4c41bd1aee23b5acc9720a3e955adb119e9e06fb6c8a7ba5a37bea21565f77f7f037f0ad71d6ad13301a547fe8458c8363feb218a3ed5bf594c3bdc7a03003641da15479304810b5a0c949417b9a8473f76ae6c13144d7b3673074703da0389e82ad34165f0c258457367b5521128ec318df886eaa203e259bca111b68e13ae684b1f1b3781d8305193e094c20b1e91b473ac9992d1e77db85023cd043b147681fc9c2c9c2c1237c27f1e459b953ca0711a318a4b76d924baebf599d9eb852dca1dc5f80191b91281f8345d774a29053513f159164a705c954e53ea26b6927dc57a0fae5a19bd33bd67339e8eb925576a2eabda6b0a4743abe05545e080d5495402eb0629859671e130cd048235f254fff49a7d394f3b1c3de06a7847473119e218cf0944609958300b93046869c026cd93e21925a30da0389e24ba6f08d498748730e2b40d1c73452de8b7570027579c11a7417f2bbc67122c9286d1219d7230ee5b0c42d724d1b1cd4b031500958dc7124177a25651781657904fd1267f2bb69d5c929f8967cf216924d63696627c917f82bd2813563cc443705b0a1b279eab237326b4ce45504ec710ab95d01ad812559b2b8be763c1e9c55449a1366fa2cdb6d0106856b080a16d7e3700b0771a422423c806c62614b047820ad6876d7740b35fd674d99605fc61638d863ce5cc6a55d62f83a4a68aac10ac065657870b5c623970db1a40773500757178f29d54548aefe92eac306fa8f926e5f84b15f339f4fc388a554b79d87325c81f9e9989c690920f018fd4440afca405b1b667e489568121178cb7a18ee2c38e10ad4f5a09df64a76c0badfd08627861144f8a449df4089a08c48cf1b110b443d16386042b6f24730c921643a6f8b7aedb9a7036339f1b156c1c4de7f4a03acb57b1cca827146f4bbc30f17a32ded42949ca5340b0494cd29098260a87bc7b50440ded82befaa1a6c4c28bcebcbb16990978ea92a3709b817996f51a6e080578f2d060b924c5d9b93098725eea946ceb84a0a884c7fad252bfda7aaf374e5ff8703941a8483493a5143e0f9b6f5ef45f683c2ea2c4b5e8b92a46984064b97e28d339789a8654e27e38c84ed7e4cb204412a434bac227197528c6c6e1625dab98c25557e16cb5b8249ebc11caade0b5fb505527d45981864d4abc8e1060cd9a7467465064c9b8cce823b6bdb9c702a7a30415b4fc6979d2476b4511909c90559f70597375c050189ff2932852a51e74a21b32c834c734052c61137025c20708263e0aa71d87b20263bace0c0c98a58cdfca4889672e6b654c003a7e22465f97021ac7c11fc4d1c0525ccab768c6dbd124c8c533f49ba88629c71fd1cb6ebc4aaf09ab6db011348b2b0691bcf8eb1bea9588b640cf3fe97e35e92440284cc9607d49a3891283ac96c32a2a223d1c372b509b1d9401ba6bb13ebd5ccb6c44ba12e392b4d165c4940a714359ce122f6b34bc1344af802992c6fa2d85f1957045bdbda400b526b21bca1a0ce181531c8bc644799ee8477af16fbbfc33879868135a5adc748f88799d23476aab0643e5dab979f3658cb1cf19292ac6f30a486353275cae5fb941b2d49a0d0349e65917b4f4cddb9a976f322d8917b70278ab9cb16ef193cc33b312e1689170532f31b001350225180493d7966e2b216c709ac1bea73f1c624a081620b7981c1c95ae0387aea62fece8e4c1277c5b64512a4b2bb7cc80044f98e2b654e5bf0f4ea520caaae1f2efd8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 +ciphertext: 9014923a6bb3766cc008194257fdb5ef86a601ee1bef6189bad5f73394a590a44fdee7b3792b124f19ad9d5d468d9cde7defd8a741b25a84d9e2fdf4746fd47a7c6ef65e14adb90d0ee45bb269fd513c0326bcddccf1c785eb2b87ffcf12fe00172bc0346a1c19b8522feca6dd95e19f71d8dff6ebadc5eee0b40a74543937b7475874bd327237f6c2021b86e4da652bc6a9312b184ee80ae92a9e5758d2017376352c3cf3e60beeb18b2fa25798b13e88907bff06ac2e43562fe3bf658f0a48f39ecafc5f74265d61835c79d89793841d435ba1deba46d46bdbe95f24b539b0c860796f8b8537c8755e480b3bc14a0fae4928946607371b79ee10a19b49cd7ce8a34179bcc6d3c526c34db107dc24a29fbbd93900abeae40ec107fe3de3289b748794469d375e4f0f2e3546c40c73b4d4f7846fa37caf3d6afa1b0f6eee1b358aaedab8f41c1b74eb5d77bce45f2f3b70eaf15e95b49681569e5d29de8ff9a7afe7ac65916cff80b26aac57d8d88864c35a12ad1572a4f17c6c58304c4b4fce4fb37e51504f6fe2505fb142c7bf6c5b7837459c3ff55225736a263fc5e49dbbfd552efd7208d8f65e8ed58b48d9db43dcc13117bd2f80be9c78ee4162c0dceb49a974975aa0c978d40f2882a1f547ece2450cf69ec2d31dbf271b2606b45d2fb7ebaf324a7e37a57c122f3c397b0ab84ff860b1f8641ca5a957d3446b56ac074832b382cc8189a5d49c9a53a3161a8eeef4f275f290133bf6a3b401df3760fbc5c23c94678b3a552dd95a4b5e45d5a7c657e0e27d30d5bc3bd5e8b78025040d5314aaf1c18a27cfcb9fd19ab5bfa906659aa8550bd26c242d9f5af54a4605e4178689a9405f3a03f15715e0c4e8a9d0b69b7a005469b0707906ca70dcf9d2792aa22aa4a063d87f7d1dc69218c5553cbc0a2204e81b97541039bd834be57580d5938f7c5e170eea127cc10bfbaac51ff8fa2394bf36ae934c92f0869129a876c8a6ea5e8b1173885d6a632f7bf9a0864d8adc1cac3c39fc2ba3bbdac80b608c2d617ed136db694bd951656bc7899e94d69719bba791d028144d857c01aa8701b50c53bdd47a0ceceb58ca6a019b09755190f47466a10a95389b9799c3baf1a55e51e7ab7b070359abb607919899c84ec4c636d242cf3d86cbe8dc76488b6852d5e9695cf03bad089456848080a929ad490ebfc551c43c6294e956f15fb2737fc1cf90b3ee67c38b9b6b651f651adce59de4434bec6d805c7c2efc36fcaca87015d9e9f994de4a1e708dc028cffd7b512091e8cfe2d97b858fc30f077dbc8dee63595e9175d3bf37979587f29256cae0c84469e4c7db00ba7c61b09dbbb512a42935ca55ad40ccd0259a6400eead12d9734632bf78eaeaf9501a77ace2a6f45f247d3a30a80e95049705adeb482a884444a22772c535a19c3ef50c9d3040d47131112c2f71d25827f691e410cca40ed6ad581f8ab0e9cb7b78f95044cffb2d8bf43166b31caf0d4d5902a51239d13bf6d5be5dead1f4c62cc0f5fbb56d1131a73551d7cdbf930daa82c9df3e35cfb5a7dbe738ca215911e0f1229c22e07fdc1037148a478e537d490390a593fbdd921de127fb033b1631a52ac9a54ac072d49cfedc0bb1370d0101ad40cd98f4d1b2530d2f12b98b39fe5ff96ca58024902fb26aba400bbf32983e15ec43f1194d79292839034e161c7ea3c81c9b53e112d035c8c6321ba150308cbc934470fa625802992cbf5d2246da7af70b9e371ce112fc984052ba2fbe1be8884fa85692f343c5be53bc472a9a18c899b157b32bfddbd42f761fea66708ebc3481ec5afb6c7938bf4e3a3c8b6fff32475391193103c53015880b5c0232fffc8d605402240a48653f84a54bd6c0d366455f012d6ee2f0c3519632bb5a4f577668d1eb97d92787a26f86bca10a1eaa55f9e7c6c2a4981c0f7cfa4702fe1f72e4fe112ae248425bdb28d919d5c97ccb84007528d527135255dd8cd5f230d35e137fafcb10f26e2a8c57b941aa32b63796ce2eaa9e0180b6746dc3c1272a855a101026704dc55e8adc870ffb6c7fbc3f41120fa2e7be78c5f46b72a03eb5077a43f3b7811230b5fbf43753ed2d08052414826a715b08189b311850064da249f7bcdd9a179b946d391e6769fb44b7d32f2b44da31b557bfe940ecc1d9eb99a9c083085b62fbcdb4d5e0695f1d1c177acc57d86b68f1aa0ca5dd +result: pass +shared_secret: 2d5b67aa0cf3c22c0cb58a11b2cbaeef150878a908f8d627457966ad96f2361a + +# Official test vector 71, seed: "a229218b0d51f58d915df549901548fb0722f352c7470900e7e4d8399205764a319bbddbd06c00e8c5932722ee5a404d" +private_key: 6cb427a837b55537299e1a8836b9c79afab583679fcd65663b17a3008200d9035fdbd50b99449ff6d14d5e0611bf21c652743d60268c89e0c75c5b4445707215a31593349a86960219f0cc079a2e39e221060aa5dc19861197049e817f692ca55e328ab0c32ec8fc5cd25a83311bb49ec8929455330764885c70c9d988a5dfabcb1366ac382b18bc866e5b93b780736558a0afc0580c4af75f6b6c63f95a454f0bb106627a2294af45f02d948c1075618b8fb01228401b1fdc2b65b02b52f40452b86a1b235298b535b7990ab75565f66568be06aea98a6a1e4744c1728914d00cdf16cf3d940ada784e14eaa332026c2f3cb05a7793c4239d5628281356170b181aa3ac98af93193cb6a9bb6a682ea5073e11c5fa7558c9f713b98a424ff86d84fcb5238b8258076529311d3b522189b0a440b4194bd15344a5044216a524862acd43223b51682df641ff3876521cc9372c19ecf117d505b6e1b26a33bac9b81c13b2900f11d849a0843a44c3061cc111c34acedb3b98a49874f4642ddbac92d969597a635d64109ba5d55a20968b65072ba0bb4349046dc3c25cbe154790d3353e580c3855a755215aecd7b9c800aaf9d12816135f80f010c07824483c838c8176bb58cae99817f1d2a538d694470021e3d87989f4b31e19539f1b60211022a3a74df892a08db12b03e3051d4b3ba9144926c1431a87cfd0f5702a7a127cc09b92f2a1d474b013cc9443f137e0bb1aab721ad975c13bf69d6c5a2725a2b2ac88b80d7b8079b811e978caeb96a89f97781dd7c422461d6a309add83cf83d563d2bb3d381a1dd4147943f76010d292f6703136d127840c9c4b532b86d46587eb54ea613e542645d1156f5b965c772905f90b3f518821a1b18961d61acd7c0d3fd09df90b9a1bf993282b7de33a1ed638cc9a162fde471971d2a5e946b70bccaf00fb76c02a520343b24f1173d4d27e2ac574e1c123e7d663bc054cc432bf1eccb0ac775377c65bbb2291c9695b55a2265f87323a7b63980aa0f1485775b2369ec3a3eb5a0fd126860ad14db7928a9618c684c7790610c118a0aab2b3adceb88b278a3fceac58dfc80bd9f2c7a2d55b35b82f18363a3e577737788dfbe0c6d995b3da953a9bdcb46b1754e0a187f872c2af0b0bfc70327646ca6778928f1005767a091e727d6f287a684199eb36a21b5a42d0c9775b9a2cf6d2ba31ac7677d075c9b207107c79a863c4ef47aa71a0ce5a409d6de8b9549366273967a760101a67c3aaca617d49960fd658bbeaa371c172113b017e1445fa2096428074857142b07782924909c7097412280d45930561a80cc47720234c94cd682ad3c18572e5becb8413b1868f7f3941e7256b01280330620056431911a638828162eba4c7df9c4c5c537b9738643e72b04f4c280048a4cf37becb58a83cc0913ec58026b59135d15fe8950832ca27c1459cce071feeba54106b89cef37bdbf9515f25bf9de37363d61ab5e02fb867bb86fa1f95b3638e105310258548a7986ad04a33a9745a71c41e783a3b86bbad123a4b9971cf6755e7ea7df2a5481d9973c079ae7801747ff8b03043944ccb8b3cc1320168566070bab7e05bd98823220b17d8084dc77ab9ed4331df4495003162c009b24735c736dcac1836b8603c7893cac54b922e50e64310196b08696b42fb8871b0991ad80977aa3de41a25d6c918f2bc0f76b940a0ba85af62c54a5b260807c5e76a062277a6d2a87e42e68e7f66b3c60936c207a57195cd0f4342be7557cca765094cb7d8cb0b03b134cca0578ca61619d67f44b9a0c0843daed00fefa300c8678ebe8642046c454a34202a617bfce69127f07c6987ccf09b1ed7e7c7b6f311293b575517c8cc720f8e2643c616269f6bc4abda117fdc031b93588b888833f0c791eb2862abb733dc5691b670d041b171788c39d5b62aab751b5361ddc4ba7a0a6690d2205c7cb2cbf65ffceb0830383cbd134bb35175760350f5f9a4b4f67390e671bdec8e3a61af35c79c4d7c72feb112aebcbc22c074ae77b172e5b5dbd3374acb2f031bb18c174b02755d8a53a882459695305d772176273b5300d02d7ed2a272f9c7babb545a6c1aa25172f11096af5398c9d6c4590730ff05c74c81308ae5315ba24b17fc738a30718ad046d0627e4b81b214830be3ea225e8161039550c3c320e6c57220e076224aa8fd48b4db59a30f71b2a2fbbeb05b3885819b672c48393c5fe1865a4c113b736505c1199b807c5e7669b7d2499931d899b21b8c1d9caa129761bfa3974c4a85677a0ea1a49c4ee022cf3048012a3b108b4380f10ad2c327a009717a64704a62cb31446c5c810a5a9928e1e4564f95b027ac251c464569344f0086106f7a4dfac13eb194abbd64a8e7db2352cc07ef52195de869bda087cf838fb42862f6346754f1744de8a414464ecaaa921bf76a4ee344e3055ce0fac32c15bc9ff3019c7b9205737426cc29239721ecf65ddc241f33dac59dba06db577514891f70d020f5b240b03493aba381f6716a16646a8a8343efc41394a90cfc896dc04c4fba8aad7cd66005e426a3113dd1a4be4a661eac59cc2742a229c6bab9ba26cfa9194ab41674e89a410bc7e8a25bc410bf95738f8420c64de5715ae624368322ec4a513647ca86a231e76b62e52753c939308f8460a7650a28d258b24c4662793e2ad4454b5756e1692c6e6822a8dbc070ea81f4a85d6a2a852c452235f63816a08d957cbab030c33b5535c87c5e7851c55503898f21138b61558b38b04ce78527658082308117978bca146f8f338c4b4b623177a0b1a51b5f134ba58c19b4db69182807f3bcb29838a0729cc2d34200379cba1f751b6764c27d471fcf7a0b3f9a404fd3bf98150150b540d79b1df00038ce770424838f58e10aecc304f29a9103177752520ae3d967ba33ac2526c85d9a7aee03845b911f9c0a516f10a06a018af24319385a81c153653fa81808a6bd74680f684a52b8a72ba5288b6e75bca97a0304f2c3d8e940dba7239869bf68c951ed8884dd32cdb254755098cef7abaadec1a47a7a0fa646b1ae78af8c608ee7535bc43371bf1206c8680634174426e062ad9c28f4474a01b6785df35df57014c3e8858c2a2ed9d911cda8303c318bbdb13370b07bad82acbad0bf04c3ad2c491328a20790c39292629152dc0e6a29199251b5bdc956a2c4272a4b894a87359a11803a8b67e236837d25a274c97eebb6a8a9e7ce73cca9dc91a1129236730786de0a22286b71afea28e01abdf69cbf460ba2d7d69143895630f526c5f2c6fe9a289a3a058d84b64228389c94984644bca5fa1f61004a3edcb94557093345991bcb9bdea45915a5bb95618f4d62cce22717a67c60042856fe8ab437066aaa733567694dcbd301307b4eb02cce11124bcde6a79819b95ea621f1b11492315e60f774bc5b207f42c178708b28a18c9883561cd66daf17bc0bc42e0050b2a8157354f7945828a488a941363b3393a1112c691e123c6b5699a5c945038b6b2dd6725e7e619bebf1c34c7c32245461d32525c5f49a763944cb64581cea3a178146dc759c29c995ca0793df62cb2153859a32905e785e8e6ba2b834918f2c2dc5cab10f8b95867467adc87111d7beaf69099400aa4e908fe0a299e8901ef5f9346fb07ba287235087a1aef51bc8933823d22b8a02c1fffa56ea5b1dfb143ec1426f32959a4103b9e343108c87aad2fc0bfc7384c0101afcb4740f01b57b483c0300baba66543adca822b4381e99870727a75c491a1129af47d768e4f59fdf05c6f491aaa5dc11b9ac7e20e541aaea11b6ec8b27e94189dc1be939cebfda109cd53f38fcbbee7aad3c65a3c51aa3970ccb31695bbfba3e3b10cdd0d37d848309ebeb3ed8601ca2d1479f3aa0f2766d24b0b0feb01d34bc5627ea8dcbd935a2303bd6aa6d01e7605d23217b98b2ce8564ce077032abc35aa6afa046254d9a63be6c4bdebb95e0020ab5fb89aa5b01238047a3c183188bcec1158c0cf901636b3a459a223a73986afb886787cf93a8aabcd9af1e4cc585cac6f6f424131a9e01fb49bfb38ea664ad31dc16b2dc3c701753a2870cf9c27114262167763902b58b2f03bd906aad3b0101b7898e2663bd458b5c4bb7c5f49c28fffb97bb4393ba3aada4c023e25427dd5016b089591277b13dd0c26ae3ccb06c088fac04b475477ddc1be06620cf3754548a6b2a551aa1b97df5faa296c6a6ecd052cda5903533c93445778755876136c193fb0e3c937bf71ab2968a25e8d1c9e49a9962ba0c78951f64882c826016f63b97e6f8ba0242a45d69276fe0ce06f14be7535859c87a9875904870890c5a620d8632f30f55d3cae33d1c6f5896e6b12354a75c7894d8905403ef5c4f316e67ab8b72581b6eb228a8f357b716164e0388d504a7f1aafbb06d48b6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f +ciphertext: 0187e1b558e87cf7a8b1a050fac3953c8d3038758f8e909e57c479f1f52cff138a78e583ebc02aab45781641aedb6786e7daa2693fefa5a39cff0a2b5359e4c09fcb167e64736752bc3f30a9249ad439689d11dd325232ca64af152f16abf8f821d144d97ab82df93bf348c86ac75f28f00e7b259494dc4efa7b125782bbd9b88583248e49849c08854e08ad05cbdbd6cbd911bc3482dc234a6ae89f9d7b5cfc9ccc8b0c3b2f38b7ae14c067d4e0f45e0f531a26cd2f49c6ea2596cb1a7b148df8ab01b0a60e4150d41ccb9aee48cc05ade595033682b29b6156d1819f8419fea16efe54c1f742bc2848d4351f7012d52a064d5ddafb007bc36a37d1de88f6e7a19a3f293f9b18f4dbad2604cc77dfbcf26f409535497bc0f9e05c830d1ac52f43740554008f032126e8464cacbf305d482a00ebbd737ea201cdcdcce295199150082c3964682584d3ec1da02f9462b84f36f88e81b93df3bb13419da7eb30a60920899caab1153f888941d88ab042d99c4c7accc20593b95634becd3124aae533c258f7b466867d7401595533dcdb941a73a72aba52abc9f614e6361381b8b39c3028cf8d65e518e7e098d4afa39384db1ca6aebbdfc4ace6f88649ab1d91ab0418cf5df4f93ddaecd76448528b2ab715633af9c8563b9f01955c0e86fdffa0132b62af9cb6adfc47f804cc66ec62562c51bb62203326cf812299c4d0818ed5eeadaf737c354164da0972a34cd35fc891d81603ee4698bbb7b87a6083ba2bcc6a52a574a5fc909d6bf3967ca3860e2f6e589201fc874e246052cae6e9d6cf9348231f7f30415a2703ad119758aa8a7d6a88b3ac897b25f7216dae443808ca1d76857f7faff60ca0d0855703f3726efbf91cfff5bbf11019f43ca3efb3851d324dd5b344ec0a7307b02ff76b92f8497a5e86ae94bf89f0956cd7ad30cd2a58f37af5452f356f53aa606c7c6ec7da7562e995ce3f9bf9e76c7f957085766eaff21ed335180c5e0c01c05b011ab76f2474234305038f7e6761b82ec6bbf19eb19127c01f1ff1a1772867350838eb666eb39ec6221488e7bc2dd3350e57a842aef984e7d00390d056962908fa2d3ed3555cafb639e5538dc0bfe712dc75e8f19a54d3c96866f0b40aaf200daddea384e4f736d41a7488121ec88b3d3e17768c5c1c1e089fb4c61c2da5bdbbf04e341567689b6162015d4203b221a0c32b336753dc49b7cbd2d61c2f044ec6b911c8f5adcd6c4ce68949d3c16a81371c5bfefb8e75654963cf2cd5b65ca9a08426102df9f8bd9c95a3bd0994f29c92bf978d82cbb6e7457967d4753f88522560fd64cecd04dbe4cf1a1b89cee7a34be93fb89dead659d73c881aeafd709da98fff4d5b7834b2a76d7943664fbc5c9641e11884d89b66b6c54015a8b2bd883d7c65f83d219e658b20f1321c95de44ff46bdc8aa6ca0a33bcb79841384673d5cd0a2cdd77d46121512c1b22f0f42d87481b8877fab7d26d2231631c69c4d296274527c5072069173ec72017f8c9ce6a83f944b64e9b1b55d2b714926f71e7e7795c5665c6b931e72044bf2c070df1ec4b42c530ee5e8b8a8b5323a82ea79f7d6f301a0babbf9a69542008ad7731fb985e5b8148275c92969a8a543945ce880cd22141ed171bb00ea3b396040664451e14833b894e4ee1c301bbca9540c3658b15a60da505f6f1fa625ce7107352247fa70bebc22eed0a0e073c70479ec126c6d1b7479a5d2e5159a25548448ca3edaf620f4d6fde071fb77621ac03196138e212b0c161daec7f12ba17fe5a57e6edf4ac4e2a8e491cef82f86f0437ba48289871684d354577e391743267722540e1bfea234b0caf5af9f4a3947dc8deb2d4d6b64b68f54adc2c06ba24046f23b40e07267bab085482aceb644351e255971c82fc73c792fa4420ee7e1bf42b2dcd5aad71f66954e91d4367c8505e1cc4fbd2705dbab906b56447bbfc73296f1e4131e60273f33cff963bef087c4f11f8077a500b3dc082e1bf6eaad76f301d7d72aef47816f0ede7c2c5f48305719076d4e62c49ec6f7535eb9ade87ee094ee3d81c0a983b38e15b1da0545d3957687ed5dfa834e0a3c1061d13d7c06a27a1899eed333e7895e7b451331268e5d661165b0a4b6623d8e5192468375327081558f15252bb8c3feabfcd480a802f3e671cbe98f78b870a89e8360cfb62b67cabf971c59c2fecd55fb54e4 +result: pass +shared_secret: 2dd5a204c2cc0e2e99265e4243221a99eb3c56c7bc25c442a1cb85ada77d40c6 + +# Official test vector 72, seed: "6960f21c7350dcf41b4770c551dc8692d8ba2c0b6e162c589166ff22e7a1ac0f94c2f48504a5f7eb0da094df427bc98a" +private_key: 342c2896a97cd8d63c24504629c1555870aa71fa19b668a558e2bcee667a6b61463dc46547419dc8c458b24b5f463ca8399337782b02df7704e53bc2f2d49f2ddbac73dc3c84728738a29e6f1a906229a05bfc4673c87a2d2b0894a67c549b6631a925c562258edb258524152b7816a9310d99883f4a583df4e582ff16acd9846b04a957bc54665f86c237bcb092a505fb089a8f76b865c130c001529ab53fa3b61f45376561a781c6ec75d0810ccdf44dcb0055bc70bf98f9940b000212215040cc08b31b90a395acf312a9fea3adfbfca17d309ee84b25bad086ef669986c4bbf1aa6f694bb74a760cd235650e5927184ba6e4e918a1fac482109767d2289dc16277468ba17031772868eb6749175c9a2755c18d67a0f6658fb6b5a27374ba2914680d730372e725181a6292db0d1c719501257b0f33a152dc077188673fbace2ae568bc1a890fda174edb4a1c10b825b85a78b26563b9429fc7caaa116bf5d808427c0bff488ea615017ce73008e9cea01747b73733e91ccdfb5c88611a94642b661d1a41a943bf065733fe2449ee68b4537cbc86871e1268cca564b5e952188e90aae25988f79bb706706aade42add2c1b2951b84d040e097b85d78c3c5b10c595879784b71638b2c70c390ad308a311a337413a20857a216d31134e2429cee72be2268cc38ac8617b7d45d2651efc06c3b1c1d0c44531f5523a707d0802251576ac2d6a91b463a68348a2673a2f74cc7c20a79b73bb1916637830c91e701bb200166d2a63a21b5b8e52c7acda296d80d6c897c86334d8424f44677e9246ffa32c5c1754b632692af6bffd05458d131c41275161cc50a51ab2570746048b455420053193b6f1c0ae02f83ecf364e50a6694285523c5372a84b6345f484d0b2c8156c05e9f3c6b661bf1cdc5573082313c5c05c648be94b7b83b68ad93019b8469dc93a51e9f47a532a15d9140bb56878984877311a8c303b7c2cb9b62cb34c1f70cdde82c9d9e76c5037c46e6196903b1a372860110a721fbbc844963f287909e2e093c4b89358160bd6ca892b95a910565fb67b640a803a4eb7c08109cbd235b773f91cf54842352b4a7677bc310563e5fa320fdab95517c61952b5687379c6e229f4d296bec53cfaf346d0050ea6465040fa11d5f04e997932b9201a117b3d552bb853161de6f6ae5669ae9cfbb36c00ba54052e5a70071398b0f1858ee5e3a6740a7b93a453af91550e7cae362532d59490d70ccfc9997da3519638302be5c01cbdfcac7b32a984049426acc67f12283598588d68a46c1720445b6602e4b60df0864ad3760892403b575e61120863f03d0d67551103d02a8386b1abcbd2b6307b42a62103a6e970cc0a021e5fd54b659b6c0fb8641c6c74c12873f5348c3fda18ee264af681316af0c55cc2bc91d767344c7046c0455b36b673591942a622fd122fd6505ffb4a3fe61b0b0bf1bf0c539efdaba1aca1baa254a788f821502b06db752f702c15227c4a60fc09bb28c3d2165c95171c20ea6e8526cace1c239da3705844c860c35d6dea477aa1339813a9f2d755a21b143724621421abf6d5aae62c591be72a8e817603d942a35c9e7a391bab514e88c1b54d9830ef7c490644287594c834d898a50c2f6e18575454733d40ce0bf20033babb661c84d9040a12e4881e9947ba4023b0eaa86f9984f4158d825bcdbd888e7ae6084e3b2f49498fcea10f1db637c82287e6f8cd553caf40b7bb00236450243eb7349958286f380bc456b7208922a5d8887a075acc0c29b231c51cf9839e1fac91e3d0631b865bcef168e71a4a53921c5cd9aa758175c8b94a2be1af094c5a5c518ba3c7ad0a0cc105126217f04a49c674b7fc3e6a9bae73778c02320512d1ad3b7b2508590dd544b03d2c21d0549eb5a146d87c3897a5525df8735079970afc8b58f419bab8b3b513844cd08164a2882518ceb79abf6ae8cce5618afaa228db659a6ae16b82e351ed4646f2a3cbe1ac1dc0b6a0838532a0b2aead760ac43a7eaa290d991a172e4a1fe1e860bdc50b51e58d18272a942a9045358faf279a916663cdb431bf81cb30777cf105a032108769475f84c74b20668a991b53541a45061236c232cc85a56292ea7d470b00b4b128e45586e1531c02f364ceeb86e4b22fe6d4a049399c70ec588f847ca3ea21787531444355e26000209110be1b6994c3003332b95b6aa30f8a0d047cb6a2d9cfae2977e08962b656255637405057c233388e018753fec08442a6603878a6d4f8cbb2574b9dca1c32dc0964e82606739ddeb92402619649bc143950b753993e48da443b1bbc8c3a0e2edaa2710a541ea6ae48022ae1f48af844c2b32707733916c259ab588241ee58aca3538a0bd79fbf3589eda9ab08906d77778649f0a2b2a7898a651bae7013f8b863112c4ae2830a43ac421434236151b2aa7a5b3be77d4c85c89e3140f52804ca470aa2b929e8e8bf9b4278be1657ce321572d2196c4bb158ea891e627861dbc811525cb5f07a3377be081b4651eba3c311bb1c0357bf7a7923a524f003b02ebc030400b4b1e1711ef633b8921c101bcabce37655e8c651cc9458110e68566d0871659c3072c509538c5a6174063469a25c4134baa4f136e71464179b004fd361cb2b19d955376d137284039a6820211aa578189765f15a47e4b52d4af9447c4a8343f84edfe7ae76901d871b0a0d72414c4b01f35a38fe35a268848e663263439b4dfb9b3435537f54bb1e2b132528fa5942da8563554276d466e97a25cea6c7841729cac824dc3ccefa91c7d0a377f45b10b8f8cf78d00657f90e114363644869612bca78e402c8e2a6ee1910e07b72ad43b44edac06ec2cb3c448b506cb0a09746ccd84b3b993213b7a76dd681d6e7b7e9916276172d15538209b01ba5149bb0aaa55cbb04ac89674700544ec7079a8277a3dbc298034e08716849c0542dc42b7e32319b0b7efb43cb57f951b4912af0141965fa6e1701cc53d08c1887bb31fc93399823f1371712785ce6cb549b91099a2245dfd350c374943ee6826cd3c9bed72e7012028b938bd304ba0f5255ca664389335962f35bdf253e2b3933689070145462f245696e4b1d852bab0c817193679229ec684979c8f17965f4411fc1382309c28e98c095f663b587e967ef6320a84a474ed415e64381ff341daf491a9bd872a019a112a2ceea76661015b54181b8c325977b50993a5c26a7d992cf519d64f0a013f517664268d415a9c7f178c047a684495464332fd89071da200c2d70ba68c68425b815772b349cf4ace5dc1437bbb21e3283d2623cb58680fb1084e50685b99224f8c91d167590d4b03fd9a62d54695345217fb08658f1f6c25d0652cbc8cdd858ac9ad44616a8be03e06e14288c1ab27e4d3c15b156732d246ef8492efd508b41e6438c1c899b339874792f2bfaa1b8e55dc2740b02d23e8da9c0a1b91c61db66c92cb8bb3c64cc68bf4af341892441085a96f3aaa1a2217bf6c005a3938c2c61a15a701e090c84d93628e7cb6bb0e49c170079df1c0e364a4ad3622033b762593586549c79b764710b2107bd0c0acf106c7f7ba9accccc6ddb15d2b68a9fe7a2e8820ee9acbfdef8c139bc8b5ef47fd18626285409a59479d517714637b9d75aabae29cbf3418bd56154fae5195372299942271b0c90f0bb7f0c2537df6a433a2350127a24aa144d30b95faafb39f566651cc1bf205814027477c46b7ff1b66837c657af9cb0e7f46a42b4a74a69c36e716e2e993ad3c574aaec31a8fa5a950a8ce7823a7e032cb4930c95d8483aa102d1b20926a6a324b9062b29192431bcd61aa56488be8b9491ea373fdd276bf986ac01e6a9683785d3384acce6297da89657c005ac086687161bc21a18d6d325fef6059ff711a60782263a5dd87552f3b6691708a60459a81321caebba42faaa5593982ad4e0956aa42bb03867664470c8459a511026c2b8791a37278faa906b288dac6a1b7aa9588ae9062a31823076864800b08396aa90ab0a48a9798a146a8e77b104125ab1f1b5448cafbdc749ff085f06b02a2c25174f587f6c2583cb0384c521990b6c15cd926b40712bc503471d4b807f85b7baa361138312f1c62d62431297a451957375607bceb0009d09ba904a864be363bd220cab37d13a77daa42454b867307ed7c2a956d41a62b996e0e78c34b4ac0e7aaff8d8164b4a11f8aa4379fbbb34f14e9fe13a7f4ab0025586f130914c6183719a941b0338e1e11aa3f167a421bfa38c9142e02316d1ba4e64c60320c0a190cec011304f0bc58af38e492937bbd0ad3a5a904fb39ce365a13dc902166c864a972082fd9e2ea5548a3b6c7d885a3ca6ae2e12efc2ea3ee4ca0b0b171ee93a198b42191fc1297d126ae957ec70b3e5cc940f2649f5a8cee53a1feb5e68e08aeadddc273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 +ciphertext: 513b90e91123157cbcfea4a884bc01e7126867dad5849630204d7659363db9741b75bf90a60fb1454a58a6b9218ea88480a9c3784ff905ec79dc457c1bdbf42949c892d62050c4a3a5b1934d9efdba27709c1448f561cabd43ebd07992fe9a3eeaa93d2f85a58c78501ede9066448fafd52334e63e32e257b857434f1ff9d2bf2126f73fcf7a4f4d5fb1a9d3ebe75553e6f663ed451cee5c3d427fba5b362a554f3e25655de48f690b6d9028425b00598988fdd3fb41bc3cf7be9861b82b9a1bfcdfddd4da0166408498a88eb2e9e52ed8b0bf1685dc6862f14b59f9f9017459aed302a242f24f833f03042541a553340a99c26288d4d80257b867eb75ee67b949a09261c5c3575f688240595f90e95c5f4aab0d924ce0f9b2a4d6f7b21f1254caa24b0498271cc57f83323dd40d0f1b566cb72e435ae8cee0f502a6900651ba29064ad72bd0d2373dbbcb96938f110577cc08a90f8ddae8c897169262d3475ecf8ce5976a27a84ae6840077a21334bbec3bdb120323e01733e4125dce4413487cae5d26cc1439b07fb3c2bbe2321c12f7a9bfa3cd37f282f8909656470f8dc01aff581be3b2b5daf242fe8075e3f2dc7cb1cf640dd07709faaa95f2a210e3680675ca6583dcd36c15cf4d5b1234d76729a3e181409a60aeb6c3443eb828ea034cd97c7b1917d80cc3f4b6b94d0623f502ecd1095d2aaf6357a15c008ef838487131e9c0eefff80d64b961c56e400d9a0987d6002d787a733669b8a14f68022a47a7f1a7d5b0cc2982cfca20ce49b9910f656c8493431220381da944da3195acd40cd3cefdafab652acad95d1b33c45d69dad1349c314f7e0a5df35931489e3f0ea1bba8931c0ac5a9ff1900ab0b3319b7b32323d8540e6693b394765178366c2783a02de21196ef15b562bb0ddf92ea35f37659ab026b56c1d74c6e5ea282106b8e0d3910f0611ffbc00d4a2bebae4229375be72aa985211041b6be3afd316a7b237af61d591bf19b7d66e7b2141518c36394458d38397f8619f0939de57c53e116aa3989fb875cfd60d7c2c8f9f95a9b03a8293735d76caa4bee486f56e127af5319e02e8a6511fe1f4732b707198884a461f8af105658808551b3cb59bee524a8122badcea5a014855fb0ae4f66543bc1de0023432db13ba03b161da4971c9a647a9e944f04291d40416d01ae8d9e8789fa84456deb8e74b8deac4a4adfb91bae56ee88cc3e44d9227d356901351ef3b2ecf4d4957425f5744c09e57244ce56ad2aefd84a6f62c79fb22d6c165b969f9a2856388fcee1683265467b5e56d2b55e01d907293f5b441cb38d753cf85eda74e0a33a30f22c12f99f0f79d6a431f6d749eaa62c13b56e1e327ce0531d6495f043b6c77a697ed0127618e8b864e53b7155a63f76d210a5977a3432ac64dfcf93eba99e5308aa9cae3a2fc2692a7aa05018e66f1347e2131f3cbafafc14f6f1d6b1e2ab5ff905dbe8c0e0602ed774360c4557679d4b58adb444388e396e30d59ea092043e4d9bf9c4a07837dc6d30134428e827278dc13d8059563c6210f2192cffa0443743a829679fd840a6d2ac535caa5384a0002e2467f6b1aa0fd92c53531d8d885e947d1573f248d9f2dad6b009c511964f2eefed5e1fe6b37e5472e917373be0b2d1c9e30844f39a03b6a2fc3bcab6753ebf5c59ed4acc740fb56fd14b3a5b41050fa63ca3eb8c68a2742890bfe9f840323366e0fd40bce50578e5030359befd7cb00341d35257e959651e50afd875f2f59769392163ad2bde60d0e2964caa6634d6b2baba36286f6afb652d8b497ca74ff24b7b106f21116c67133ffcb55c2443ebe91b2f34c37fb0168b1ce69316c79afddc9095b2dc271e81088ab56442c87f1e7ca7fb7a38f69c184c4dbab3d98dd058e6f3f253d4e5f943df7b6e0d720771ab50dcbaf26d180bcdd6859ffbfaf447598b36fdbacbcd85f596f8d0faa0e5453aeda7270a88149b2513265a99cd2d12d465ba7ed2f2c2917e78d0bed73fbe3cf0e368585e58444038a443ba92f56f14034b03f1a3be51a15ffbb216ebd23eb533a0dba7e84029ec4f24f686ac968b7d77bd6c4e869e0f8a80905fb88ac04db1035ec0c7bfa8effe39f9a4146e6a4fae014e7fed997ef0a58e4957f81429ef52f08eb2c5e62d2cca021e79de0453381bf40e1ab17b8f88ff25a4b0a023d3542fa58aaa19653d99d65085 +result: pass +shared_secret: f672d4af4d2ac0dc3b671317cacb5334b45c985f53c0d6fb7c3a24e5f88ef643 + +# Official test vector 73, seed: "53df46012cad4a745b7a3c06e18ca95e0b839fd8161e3025749a0887549eb0ed6a44eeea08bd6060d6509dbf7e9dc864" +private_key: e6d51f1ff8939a52842f092d10a9cd02fa1b7840147f3a5417da6994e7663b536d253b627094b87d951583c61b8ed8a15295276df7b080c71a6b2a4fb93b29512977f02c7f8dc36eeb2644f4db64a60ba2083b984a010e0029616295835118ce0382144701cfe9d5a02bea7fc8ba9ea074c15cba8f2a77062270b9818ab99d856e3c4c104a66441eca4d7fc74b148a37a5eb7103f021c955826048a1ab6a4c3619c1a2884fbf4495b1469e33671c845a40314ca87c4bc87e8c8bab04a1b9b237413242a83cc41517c11d50b7124a730d7b54a68282e2cbbaeba0896b2453568c22b3e779899a5e8850424fa2b68af95381cc5ade59b54d6a1bf2f1b16ee59375a314f811a716239085a77bc4e29506589a420a6c09c2206cc1aa97f2aad03657eb967c1ab8bb73a87a4853035d77285c29c788885bf1108fafb517e5bc1f13f89cd5ca97d70c12b5f64b88376466230439026d73a3aa9d11b03db22e541c28e32c22a2976b23508717379ded0989e2345cb5f0c7d9c97a81ba09514b0d27598554189f7e8b6e977a5d3588c979aac19ee60c4f64ce5ce73b437c0c1d11577d539af94158b946918085c689dcb227d72240a843b2bc4979f5cfdc2791eec3bd168593ba7b1eb06b829844b9861387af68b466498c84e8aa31fa39488cc676f728ed106aa9e368459028fff42aff418320498fc283b8ce860fd1c02ad1c0a7d0d92d61b6aad6d1b939ab0396983693353f23507335ac5fce277df06559dd3a6961cc43247cb0f9e7269c438ab4e14ebc0ac2907bb1289741b211cf40a15ded58b8d18c4948294b774c6edb047114991981fb612c5a196354bb80a2bf6efb713aeb72d5f434f9c46d14dc461507ae5bacc7c04789c1dcace8904cad02401ada53489a04fa2140d1864c76fb91777bb9900b010d7a6f2d09868504823d83c5e881aa7b5b408f144e01f2a83de212a7d3188c845539bc6b061c2f72b5c771f8b7377c678ce473ddb25b33518cfcb71a18455acdb02ce73433961a98d840c6bf844014c7c89cca5ea58a6291391ff6c0135e11911b6895557193dfb84a97e4b8f1ebae016947a70b8b08e5c578591f0874c6a2b7b900a490d240ad36bc745c113778ec3777c3220cb19fb49634cb200fb1f67e5decafd84100544c86ee79c000169cd908a884344ed2f40862558819458d5f87c4f3714fe0925538f002a7d454c2f438a3c751a1fbb13f77c85c612e16c0cb979249518b82b85586df793db403ca55709e1e6030356048b458a492ec56e0b08c661c5ba04b805cc631b12a741216448e22a22db406c04935f7c6cba44c213968a5fb6ca9066c88f70900411a43e8651641197fcef47470299c51473f158175e2e7857716ba80f501e156525ce0bd05cb3327673385095d144562dc4b006c89b0c6aaa2e21ccc79c0a7f3b0aae77142a447454b65694c6a5eaf3a7761b860189846a8612b89fa5ed5715c8eb3042890c52326af5edb7de3b578dccc61283474bb8966b187acebb9bce0a08031e66cec0bc57fa368af2574e7397a1177828d4326a66a8093415872537099d77eb83b9cbb516f40d235c0831b3ff663d3f3a9db6c0cb5106c905cb55db0721e45a7ebb676def137a585ccf493002055536c3ab49a17a68783290fc9366923654e310b17c2551816a9196497ee62ade56b24a2b421ce48a583d46f3192bc09493ed47502b75580be01cc94cb4893f32fd6266fdaf865f4f16571d18c8e1a301341113d5c6b59061cd3124683748f5c20426288c7bdf8ccd2d21acbec096101283534cd4974978b117beb70bcb5fc557d5b7482c626a390a10f500e65f8af72b3779068b24228c37907477017327026324fe3c607a86ef7fc453af88c2dba51114cc67f32bb46e58cb7995d4ac31f9b0c2048b05012189e73562fd2baac0cc4795e55b5058b9a747a5c34c63438f2767d32354f12a0ba546c76f38cb54ca632f321eb39ab0528942647415f91cd0738190ed20b1401aa0b1c4765674df3e47755a12426a2a307760dd9d39c2f7728dec213b2559cd2128181e74426595082dc0065a2aa132c72b798aedde6a7c2bc03cb0539ec61bbcca78e510600faab6828ac6a60f58b6bc894d16712b34892fddcbb695c36eb9c3169543c61969c22f95b6ea52bdb9b2ed0947b8b21912d062783fb94b458013f34480ba83178c87d9ca4575ac9014ab22a7cb92b1bf41ecf098f735b3401e31bc02a43c447220da64ce22b17408ac536135641100d1ea581a14818eaa4c77b229b31511e0a403229889fcba0a2d4d3c845868816b79f56d6265d678c9138b716213fcfd7acb2c68f4fac7914d140cd2a7487b34146708115689407a9bfd24216f563a6fd220893c1c5e2c657031b43a29b19471b084485b7f739af017459ae50423518460266cf449b524406b9a2b80a77093afb1344bc1521e0220c5a113cc0c4a4321a77204521e3c758927c83398aa1f4bc43ac61487e7158ab4053fce98a74b14632054d3d3aaf018cbaad771326b7160247cc10a114434087faf515c7a39b0705bc374b7af73c5b60741e037bc69b10949db1739ad74a240c2191b3201a020f43890cb16390d6c27c39d40af0043b57e8a0f978627fe1b36c6c83fc97b49ae9268618b2c96a7a3612002b2673bc1ac762a37e07fc6ef3749009876399862d67b5b48571caf8b326a4a80b4544c03ba811b3501518d5caa107be696cbdaae79caa0191f5678fbe14934609aeb501bdb0a525ada654d77cb3042159686381e3677edbab5f7dd87fe1c4566dd7382f03c2acbccb14182b9a65afc0aac41f4c3095675a316159b0b7271f0284e160190de000fe4076b6e3073d302a51c7a6f6486c52c97446b506dd7c76ebf08a5f8c70e6e8479735c2ae79a6d4a99444a347ba838c43a1ace485a005a7531916c45181157c955817c488ccab9aa4d55dd79a5e243504a74405a8a4ac01cb1b9f2917fdab3b2909ca609739859383d631b65965affb4490d5b9be84a2902cb34cc50b5c49cbce43f8351a68b3476387bf87a16b9784a0e801e1eb39ee33b8b9ca82bef596605b59f33035a05a012d8549f0b68c93b784c7a309dd71425d3175ba50107d28aa8dd42369bcc68a8aa074020b4b21c3d537ca25b82a50dc875ab76b35a982b0792fd84b60e7db48fa0b80cdb90e1a95038842404a78c17d6c73e42951ecf2160db816cb7323cfc0b8b0057e6e66a36a856eaa60735433bc1680636d137b8da85f19334bd0ec9617d8b484986af31bbaf7e81a050c5b4dd9356563bd2f874b6b82a6e8b088b2ca59ef3866fdd4217efbc5dd66c72b66137ae65e7dc5c541c42a5c4cc1c1f1b678b7941d37ab5bd7292c665ea89b9679c5a6f8248f9fc61c2af282ec048bea74cccefc2077f370d3979b83e2a65d64be85742bb9b66308fcafc84038e72950e968b33fd98da2750484f1138aacc0e5e8607e352804316b26111c5a242c09901339fcb7d304c749d9205f169d2663a03bbc82658a0ca3025ec4d0a1e445be8fe3a72c672333188abc3010b6a98ec0f01d698b87f195b2e398ca6f8038ef0739af347b22076a58391c46573b0f782444464d9ea0645b4cc6f7136927c34e51fba618b082f826b29fabb8bce80bb0f05524348104eb4732e0ab4f4040e104b78ab9317b558330d4995168752ee23455eba2cc4cb679687be93860ccd1848bac42616893e6e710645b354a657e4f064e2d3266f89bacb8585e6d927259723e7d321aadbcbf9638b1bcf917e3c203fd06145fec0be1059c4a52ad751986d0f0bbb46bcccd365ad6b614dfb87dd7f97ccd731f4f9b280cd321d7d7679743833823aa5a05b1b3d0263858cb2ec27677da6928b26d3459573e25b0ca4964d6798cf250860d055418761d7ff0189223a1d3eb6ddab21572b58f0f5ab03a1bc047d7928c060844160e169b2ce072a89fca5b384b81b89b24741674ff5223d4116ada77797234ad3cbb1f6a78cc33e27b03ebb0d5a18427f625a4311a9599ae8723bacf392b7c915aa731c943f49c24f189055143502cb35318432c8b89bd2b9243f35c4b443ad48126207559a2314a77bc67c4d79a3e010fa1686761509e6774bc2df86eec6c5e3cd547f9a5457fb4a984590e57ccbbef3b38e441235d90bb60a24a691425cd65bb43b5868d128e3428b446409804a25333a7ad1f5c6d712169f660798de5a448aa393b5c496db978934c6eb001112440784db13825167a33206f76b05eaaab0b89966150238748c492379b387ec863fda621ada4296fe16593358ca0ab83c15225dd26691da0b00554c2398a2c44f171bfe63d48db72ee6cf36f47dd054b8f7bec5a4bbb6b0d62bcd24a3b8a6d32c53a51bfb7c57ecf5fb124740e9315cedb69ebbc969314e2b7469c2d2e2bdf2698af4bd116f0d12da3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 +ciphertext: befe323a205445d0b526d8169b8499bb6d5e557381bd3dbd8fccb9705743ab4df3d5bf1e83f78312a87d74389813f2ea4249e1c56d6727cb6e1d6cadb74c331652284c68d81087a237662da796bffcd14239e03d2e097987476f62c3757334a724d9b9518dbf2a82d06bfc12bb1efb86a1d68e638ca37cda0ab9fe2b0bc0e54111b11bba4ac4023decedcea63cd038a9c0a1ea66968a9600943b68270e653a38bf08536dc6f8a7f67fcdc4580c08ffd0eda430761bff7030795107a83ac82754748eef53621cdd138128d6773c411ddbc635e4851a11f4f01a172ee11ddc79a525f2de9f2831f34e55b679a21fe5cc96095837d863d515b257f76ce9d588dfa6267c93711b98b37d9d2a4222b250b7a452102b2f3a33462b828608531eae54b2b3688a68443a77088b93fc16cb7e59cc86705b371689790fdd47ed4699d959e82cbe3c90209a54830c56b0acf1c20b2685eea9c2237d2ef573d8739bab9d4f3deeb7cb4320ca1856e1ec8759c23bd361c18046fc43216b46269a076bd8b02f1847e54fb6faf7dfc73536a2a06c9817c022814a61dabb29d6222af5dc508c08999136c3631e33a09c485bf6ee6ce8a89ae9b89ae5ce5f7052291f32c7d18e1e082f1a5f208e049157cf7c3d5c007068fbc74bde86631089f232a176c03cd596732a00e720900ceb6e48bbdb4221fc7fc414c81e699064f97129aed58229ba7e1ca800c759c1b5a16e18e6744b327990d087346d70f535582659c77ec633756b999075bce6e996ea47a0e6b5a889173e9af7ef022a626d1037e8e8a6a4ccf10cd84440419a95d0fdad3a3058c3d308f3c47a2d79285c97ffd67138e6b44b3ef332cfc5874764dddebecef283ebd31be660ecfd8d5a4a5f540b6e297cf7c296ff88790e64886938f28b203317dca7e870f7f5c115910e250c66530bc9e127c3c6efb5fdbaed54d25c2c5f8e07f4b21edf148ff413066d2fa44aca9efc06609914b1dead69a60db93a3dae76ca9a588be28af1a5700afc4abfff20ed9f6757c5b23856e91b103daef0b5416d7e31450a0f85470b5954848b7e21e982fc083cf7eb181336bc2d91a0fb7109bd14a30e076ff633cd6a539b0fff5103e5bc3ee814d9365cbe0c8915e5d7fc6a85af830840c0246cb348e7bef496482bf3127b04ad2cb151994bf0f3051ce41bf7734cd555bf1b41ef517a1918931e2c2a1118aa0ce30475d081a8e36b2928cb83e86c7ccc3ab9231fb1fcc227338229f16cef4f6ae922d2310e35b34d1be490ebd8e91c03beccbc38d264f9a62cf8f0dfcd539ccd43469d4c8e6e088a8815c14d49a69e3b28ef990f319113b5d39d2b3388a2c6b8daa788482b78ca6b24a6d64cc7b0def3a3aeef1d2dbb8692dbd82a124638cfdba641f0d9c7d7c45a2593a4b46cec98184fa3067970c190e34b135d07328c785e489724ba1576e5768c6d1e2148e44168dd1e91647b8613233fbe9c9d4021194ed8936fc6d3327cda69c02c3cfed6b40da3a9784f4ecb8561f34179a3518aa6228d37a9209f502bf518f641daf5147377cd65e20152346151d553e748a02c498417cb2920c429d3251ff6f87eb6460cc5a70866b52084ccd68b4446032efbffd3d87c6ee663a85de4c6221413efbd940fb2722aecaac71394f245c5e29973526124bb1dff567d3eb734789ec4f49c5c4b96142f0de143792f15df1bdfb358eec7a5916c9bf22aade6bf7961c6cf4cfb33bca6e0975311e75d3d90a1923ea440911664ea2bcde517be31be414312ade1604b96d443bc4807af3c75e431668a95a03320d19785c8ec3f05413dd52cc18d01983c70e9654abb28fe90b795e8f14dcdd44d0212de2e6f9b3bc21f5ebcd50ff4bb5daad6fece570719d0acc62f033304495abd5cc6dbb47a08b1e94480ad4e009ce4401a10a997c981689f3041f8ac66d75fb26548a4bffd65ddc42f3eea2af680512bfeecb605aefb4d210014682984dca65c87567193c580db8f9e74574985eb71f8db1172515d25089dbc92a90ea463622ba1ae32d9146d59372e353948495c3dd09b526218834a064ca56a041bcc4d2f6284d3d87c73243ffb436cb3abc12e36a8805d15ae524a3c49de249190f4d245d67804344dcd052aa05ea1cc9534e4f8b9efbaf1144272fd82196cc6222622425e202a104e6cfefb6cea45cb7936aef4cb46c0c0fcff6e3d0544fc2ece9524f5 +result: pass +shared_secret: 25c89884be152d8641686c8334cd51a4477be723cc9c0cdd6092531dcdfa76a3 + +# Official test vector 74, seed: "deb963f8b1d8fbdf499d564ba8d2d47915bb402da02f17031b37b4039a842afb9b7e48f37200605992bd2429427a7a4e" +private_key: 401208d8b00dd0515a1f7c23013c9a8d48062f281437a312e94c7a76055580b894cf66a7795c182d889a1a940ea044112a265dee346d902758ef7b3500a02f8c009e3c803a9fe2a39e95539702250fe05da8a85fdc2ccf54bc17b540947e280276a084de678fecb73a5d1bc985718c09ab5bd87675736bcc8eb858cbc246fdc07f0a7b3dbd1656f04c7bfa3854b502a71db111fe2c36a25910d37a5c357ba0667417550071fd0b0c4ffc094b37b67d262734eaa64794c5e0d66d0ed96a5d7c7f3865ca8579b89c2b7349b3134e43a677680414eb2d88587c73192a11e5088d673e65eb1e88fbcefd8aa72b704521749a384588a6009b3e41cd839313ed00b5b4a14236835055a875ada5674a1959e2746e3a38a1cbc7bc0cf6a2c9ab95c135287bab8b7d12bd8dbc79d2e6b36f0542ec73bd66f6949ef00975f74ec8f31c0cca8544c25a431c8e43a9c0c99545a18ca7c5f28d4e0173c4505c5c4ba94e1b87a3b4b0eec5759bdbb221530ffdc9048517102e70745eb09079f376914b643ecb3fddf0b68d384e2fb727bac38148d897554cc8eee5a986ec0c2081a2d583b73db69bff054133e18e0e7b52e9e9c5c0e088a99895baa375f5b27255f1b64b38b96b91b08afb5b36371802559f240ac4bc4234d8da75b6839ecc822721a466e0f7a292723286f38646e396e7aa3dc9239c3d621fe70a2eb14c37139b878285435c682b9b5489903bba677a963509c5ba412f8165bba029084344445e21bfb1432f97b27b3377252df129208c71c41a10955c79c6b6507b1067dddb8e1331897854897b6ba01f79ba6f6273cbe540620c27d731a86719903fdb5534bbbd9a9275870103d9bba74b694595188460b80490e0269dc678fbf0cab0918c59958ec297bff5e6572b3133660936689a393ac36f638883d5a95e1d78c6460c692040a9a28895fec808ceac9590aa8552382b31a489ef167429e63c7387b794552cda972d4dd3aa41835bf29315bb095b95d4539b66008887ae15e66fe561534fbc973f4621c4f41ab9498d0ea667637c5e563accb2b0429d580cee038326a8413271203b93607acc70666c50e34c6186d03600043ccb4c7e18a1182ad39eb49c0bcd746832b1ad47bb9248402091872ba2b68d25c0b04064558f9453de628c4c983c1eb202fa724a9f373c003da76c37743a452d8f765d82c292468c28c16c9b26a2727df96b26673b191b3162970a557caa63827b5a2b631abaa861763663d08b72b712ac53990a35b57f99b5b7d4ca3035a590db287e1513193177f687157ee74ae10b73e6f24e8838c3df29c6d8b78ac6b70aa1ea1b6467b6d4319dbe98771ca752c9986006a687d0812e9e46374563a15ab32c7b70b58a21c976816192d36f04634fa0b46fcf202b44e684008c624f0209ddd64497184524032982dc654fe22751846a2402c17503799e9a7d686326873a4593479b615c13f91cbc3abc952bc4792ce04f7a272921d13e34b10a203c2c06d65dda903287887c29cccffbd4059c5b1fc2c3b7786c0ea2e49ad792136635982103473657ca2e4b32881b6ebe8c4e7c63594d34b341f515689b7c671b4f40fbc7d8e1ca6cd4016a9200cbb58741fb21ec84030f6cbaa282b9fc4365196094dd39bc6447739999041ee1055b373689589da7a6a23a007145ab208bf56ea51c3d68e2c3b4cc4f0da518f9089d4efb28c7f746f0b948a2955e26db2b5ecb7c6db2694db5ada7a7aa939109b1d0604c5a2b654a4674b636cb9a5f65712f404b4edee505093b1fd76b627b32c4c42910b1390ff03c30a5e79be6241dfa39a2d9456c331c4404e7a159b8a89e10588e3446c7151d7bf31a6b930f09312b5d798dd71c45b2273f513c8279034483ca7010a9b3d597cfc7f699e649a99238b1283a935b199f57f6333c2a08c553a9bb8c38109319486a4a44d71a5317ad4ecaa9b4548b86a9560969690e8b02a38bbb628391eafa6d2eeb4a783c661f14b9754a8c2faab853dbc10793a61ce2b1eb72c7e5b15789fb1885e7bccc89c03350a047b811c54738fa91219744ce5166a4882412c6898fe9037b817099779968eabc1261831a6c0a5f308431d8904cb9d4a1bc8b79f0ea01395088a5377935c26906093a34e0bd61199a9b8a06511b2127340c9c0169961a08e3658e3c8607f9775ea3b57a481ca307a36b36780efd410873f9067ef06a6f75b2f695620c9753f97b167df14f4b59a66ee953aea71abe866ff3e34cae61b53f5842a9ac3c811abc36798059db5a51bb1a003b5687dc73e279236e69477cd03c5143b6e22bbde999379ad131215c9c46e37376402d434a58f4ca4c5249c537b15937c38282d2759a45243ce36d24eb234c5bb875b2594ac89e51564e43d2869edc93cb2143d3f72c6d8672df16a08cf94031612199c224e25bb223fb646ac5997b806adc1bcbd49a7833409515c05238aa2c3445a290eb4e4cda6fe1e61fefd58084db9ed675b608ea1bf660195c226a6b70cef5a114ec584903aa427a34c4f75b7d0dbb4564c72c2b252ea9b99173659ab3639d3476332c74aebe0b6656e3cc3f99206406718e5718e76bbc2dfb8b409780263851db783979fc5ea3e4a18d6383762c6d5f782e7333876c10414dfb4548296d33947590534a01c399a3731ddd4c882012bd0b1448e066c528f28c52d3c34f1ca1e2da234f571ae9921084179a9673091555b9d671aeb33a3c41c22adfaa8ca800b92e9401fe31b35c311d7820284fc534c928bfd575881e5678fe81803ed08041475b0f4a36c7644441a067cb35a633a2afe385ce1a1b5c4f9c4a1580003d1aacc548a4d5e7c94c6a4799cb843fd4c6e6209e1eb1a71be32b501b004ad9c0d7a6b44c2970140a021416483dd835e7987b779041aac46806a1a538152e3b716beab69a86e5291b431b1eb68105380df09758871335be0735b4a22de2c4593da03679622c2af78f4d888fb178098486602b743d72f25a57b3533623b57cb905ab499835093b1c4b9d40d361fec791cf82a17417981ec713514ba50b46608c1307b7939ad5f9b1ae47ac2f0c76162161cf0677aeca801504512433918aab949c078d46399d873b0a6e9987e9aa71e52c5691232b8bc68c55508c9bec555d17a6293525d297be94559671c0209561c6bf7859c3469772c25e0863c16c9c4aa453862e52ab3ca942d887c959850cf4fb2afa3420fe55660c22516bf8c940ebcb1ddab9a36a341cc144a646321037c07231424e040ad92c706d254e56f48012601e0de8402221711102be85f54d3bc513481c1e2ae6c50a022d056967c6b032c99ba89070847bd5aceb4669619c71f2b7581736726dc800a3148bd2871d8bf60708da4cd13b8822209bc09cc2a88a43defabe6a24986d697fef253aa91525b3a3cc9f102c9ea158c699745b03af77d41d4df72be7fcb6b7130f308bbeef6ac699388976a574ee1a74e84b48649bb32ec763227584ee24c0248b7f5096c72ca172d2b81982f676dfe44a896618c77393475521eb6a6fb8ec6e153c72d7f8c9067a765cc4149fc58777974f96411739168deb8a6b0e905997563d7f13590ab30173bb23f7b7440fcb6db8f910b12958e0b62fb6f84fa5aa931b118ab4f1ad6374a34721c053224b04cb07982988fa3a569ae9342953165b012f31728960f89d589613d07a2b16c71e0ec942a812a72cf90ec9b23118a59c6bf7c273c6163a8470b18c8c2ee76f4d2975e7d79df7e80e759a52e6b689ebb7bbc7abbf6609560081aac3aba2b43aba545951427cc35dac5cbafc7d394bbd57a2854e84b5f0f3059a94b35f3b0f1ad3344cc2a40fb89a87e091c9c0125c0052e8b28cfff0c3e0390967e1364a4ba8c0b77a7fe83a65b76255422ba7a128fd4b3c8ef85fcfc16f80ba5701c9a48ca230e455b02b28641b98a67a851f31621733c0a779170ebd690111f395e7461127481fd8e1057d35b6c20b1f68322e72e92a2363825566445544995dfc08ccc492f6e19072e398bafc32eff92c7e229f87d1327bb1884cd04849569c415860df59646ec59ed052bade3a0ea6bbb8e9d924e6c43aea22cd4969528d50af83b977d4f8681fa52ae6f5a60ec1cedbac91b14b70d46c5ea18551f288690c3aad6428939426326c54a80b1c6281d51b3d47462f18c6c5931c60395a1e74826f6c258f5622f689c4b5470976a961934104b41100142854bbf75d40d09bfd9a0e64575a7546bec19108770c19a7cb48208780e1c657863163022c910f071c59f239a23cc9f1697cf5177f88e7580df8c925b2c405a3360d0a80a6ea1486136faa9c48aa3801ee87b7cc5c638d67be57548c03711f9b2b31ab319d45c578e5acfa30dc426ac3b194230a4bb5ee07f4c5b86efedfe663032fd6ec053e7ae81ee85ae4b3f808156cd357c2b36db2f7fae03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c +ciphertext: 47587ab04e0e551845e526234cf731036de9817d48ec4510a84cb183e70900d2ce322c999a9d08e654d466beb2ffe46ecd746a91882bd73176f6077ec0fbc4f51117805b7541fcd988faa8d02ce31eddb953410252ae9caa86e2a5d3079ba87e986caedc21c12944c88401435ba434bf0770446a6c4ab115f22095592487f89f38b6d659e9c800c3c901c140b6e027a5dc357ba6ff5489b20e3fe72ac7ba203b1655942c663cc98a31e7a745ba46ab052fca73acdf9f898101e8eb8f4d08a8f6352911e90f072a537d29f512ecb10b6fee65b2e4d8e529190df6ae31d5989c62ec4863513f28444f470abe04f95f2c0e79891710002572b43ea8de4841f13d72e97eae417254511bb4c69bec2040887b01e2f4991c52cf5e165fd922692bd3efe666af3a5e3f3ea046d160dbbd10e2859499e6ec260dd4db9b4b706e889a699c511ed02ff2a4cd562ff56039d4876573a6a380e77d87fa880d5d8bd7c8f8a42e97df4c80135f8d57d300736d9bd9ca9e8e9849e8d8d7e48a6e89ca52a6859615b6ceb2b412bbbe4ed6ee4c9f5c21c1574003261714a4ab95bb2086c88c441cd3425b6141a016d582269c2cf6fcc40f5fce13b7a882c978119e0c839c7a0129550155312c90e363c7ba4276114200a230da3f2ea0bd3b8363a73abb07d3b31f28100da8899809e529ddd346c78a9f017408656c943bd7a028322ada4240d47d33c84a0ef2bacfa1adcb71bc142d0e6c652b1549271c9dbdc4330ebc71581c1d36274f893429d08cd966e4ddceeda95e3e8b2e79c4760342dfb8620db4632fd20b885e96d07af21d603781fc4b39c7ff245b0e8c29dfd0b77e108a1ce8f42b5ba5564968d7cb77fcf3f5bc7ade80e6fd1d6676edcf06516193e481d3df21e36fc612e984c63a1c44d2a7614760f7b07aeb9be403912f8071b1a8c2b13d1bbce9e67ac29896cbeb5dae6f87431b39c55253c1b929f837d74d053be5a46d56880d96f4047a271861e418f870efd8cd26b351a4c15d7f9633706ba8fb5af7e967715a8a94916af9a015aca2331c77b95546f48ad8c8ec3ec00c048fcb61ea5af8191e617294e92e5ceb7a19b17f7af42fe9972e0166395c812328e59042f3f2790fc85106cb87ad2b318e201ee9a597f0cf982cf313196e02a5145a83ea1a0fc8054b42ee6d32468528232240fb914e0178544d6d200c1172feab5722290195444af68462057799dccf6c5b2b6a5add344d66d8c100b9c3ad1654ba1fa424c0a23772dcb1b60d64c624292b24efda70875ad9fad1210c80f6ff7478d9a14926da1875bf614eaa412c14d01cdd9e790d9c8488edfd005c9d3e1a034030eca417fc99b91a199cd3dfb4b52deffb565d4de0c569d92605276111693045fd8b3b3a84cae2a4616c6f249a06c3776e9cb4a59bf40e64207f180a4807220115e139c23ad7a3573f3012c05177a4511dfecfee943b650ceb60e4000bed6acf2ebbe270198306d079c9b6e5e5fb1199dbcc01e888943e808f414ff3704169c1d5870f5d0001ab5e844d10a8f0562103b79947f244e4eb9cc03fd261d9dddd5fedbe4592dfa5cba8a642195ec97b991bb52c129ab66d428d23a2e9070968604772783c2a4f215169f7fdf3fb38df8434e28f02b96c61cd6b86cf37aae45f637b1ef2aa07ad59899720833bd64eff30c485a8629a6a416e577ebbf9e770bf3ba067c00ab935a98ba543bbbb3cfc1e8e1cb51be7b62d1c8d0a5fd56fbef29a23815e053e16b5324312d060d4b1985ca0d855ec1dcc61a755633524c0a3d685b147c5a5209317a8caf4d6c22f549ab539ff79e32ea1f04e0a7ddbfc6fdfd0fe4188241f576c6e818e2156d64188a64548d5b19559702bcff4bad39f5af66723358804567bcc9709d0d4ffb402b48b4ebdb79c10400d43ff175df89f60051d5c1b608d87671a616c9589e76bb6156f6561cceb30babc2231147c7e7d3ca1756d02a401fb6412117b0b6e9a9e0f6dfe9982fb4c736b9996c16c390c6a0ae174deb550f5486dab3b4c2bf54c02e7ff67e9f3f00627d1e9b4762ad6cd629e765af4b026d470bcc8cc7d55834527ad061a034bff65afa62ca6b8e9a9961721533f318050e1ff4a67091fc298c9a685b74e035b2aec08ab44bb2f4c4e30cf788ab3ad83e488a517862cbd9e62c20890533af39c006f140cd24b5e0258e7a7649cad69a86c0bd0e5378dd65a +result: pass +shared_secret: bdd73d5ebb59092071fd710a25275c1dc819f549b5cc34b6f8353d13be70189e + +# Official test vector 75, seed: "8e2995f1b3e43853b18916bb1212aceb05898e2b177a87abeb928ad7184e59695c56b2cccf5db80853c28a525e327d13" +private_key: 76a86ace9756dfb462fcc13e1c01409b79a49c256d8a75a9a30712f5e913e38240f3520c11344f4329c3372ace01c1979b75c641dc5f0fa2c2ff1a8055dc61dde093315910e032ced42248ead082e9b355a0bc17cf349b2659555d5844d94310633b9098f3ad6353a4fe71809ee99d05c5a055a68e83a35b614361d4ab7e4bf30a80cca2edcb692c25bb35c702854c55939b88e020a329cc35f6f702c94740a614390d6c89b2fa2c324681ce4b600d87b0adc91aee506b50f40640259927b120df4a3a2a2c1411e1a198102b8eb03fc1569b83daa50a7687e1f8b7e2e16b5d13ba38905ceb285a57513532aba8a235c4f9566d1bdbc64be56e4b088e76854868377665cc922cb0a401c14142308e8851acf4ec8484177eaca16ab5164a37f8bd12f4b514eba7ff555ed43415eea7a4b7b4ccb0a08d507992ade401af6a60426972d5f8a19d72cc2409584c4473f4d8088e34b376504344c242c6c7163ce6ca351b3b40a2ae3b7c45a96ac3c30136c880bfcd4166014736e0d575d72c9c2b1278db43126c952b393c47b45152b2c7c59253b9b8d97e19818a9b007fae17765cb60c6722014c6562aa4723c5a33ef63821dd9464ca298b72c68e80213613953e89e2b0d3a4b18347030015cdc1a6716d8a534b5031a5367c70184d7daa93533b46ef97a573fba6b7c39c9971b1538cc1b708b921196e97c7a3658ca9efd1670b1b7934502896e02e18fb0f01b7a8b9b81322951ca25714da90baca924c56132bc8a09b52192de63726d30186146b8b2c233f08acb46092b5ca654c14c92b69e1ca946812fd3b0fe56ac13739bd2fe99c3c62c46ad3b39b4214a3d8220e67a718a16901ca82d59c08bcc7cf2b6a3abdf995ec7a38c06801b0a2ceb88937a3164424161403fb639fb2ad6947a7153ca7ba8290f099a7d6d8322448127adba4e26c5972ac4ebc95905e7148023bb74cc13684267123f57243368f0c141ce0b05f29a61866f99a15a2a85437cf651ca4ed718e5787a0872c536f86198f0125087bc898bbbb479c1dbfc23231db78d47b61edb37f3b03981ab15cb70181fc3b9a1366c9f98acfbb3b6e1cab49b4110eee3cc87dd2ac8d8720f48633d0910c2eab7ea1fb197d3431c7b1becc201a21c02b2e4b5c9e85c5a9560b2105b99c7b7b121842a79179057b6642976ef5e650aec633b0b2b3dd14ca2c0206746595113c7a241443a9a0521421b21bc7238ca77691c76be86365cd20be3d1c8af7c559333b5f94a344c2891467a742be4a457064ae4fe0355f2910a2252269c60a2dd723d5c242a055ce73b2c29df12a629ca382e6789cc95f0aa44bb1e1710690056d507392c9c004fb9079d27a6695b762d80b6533a8114b6691845d7e92ccf189bdc4c32f06e986b2d82706f47819f807032ba5dce871f355433cf05ae849037fb6455c0caba5951d4dd77575832c4425cdfcc70536f741b1a4a1ec47b600d430df473f2ada9313f2aa9b972e7e68c2a2c84d7c9b17bdbc9aaa4468598412c9dc325e3b9d8c545b80e13767373ed61c9ad5c531f6c391f293ab7195237e3a2d77f2685c50b2a9e09afc18c18678b97143bbd52823218a60a87b71f321429a5b7ce32a48d5b3a4578a9eaa45aa66e6444d534f4ed46acedc33325333bb986027d0cb05d93e659a6dd5a09f3f820db8b1751ab32c46473b4284499b5165196871eac3730c062be3482ae8d969a8ab5cf3d1234859bea98476942439e2180ada967e4cb303f8d884fed11a4998af1b2b1113a9878a9290f1e846d3ec68a21c8c4026ca25844ed1464074b84b3b51351dd5a7de685ba338387eb6277e8018091cb7aff0449540b896fa3a63c2bc9034a3d99990b0c34d91d464063c4d7ec08dce0a493096149955b5e06773d790c618a881e91ba94d276e034497b433a65d393b3b764201583a3b57c9cfca20e2526e4670725bc346b1330880d4a4ae348813956439721a3d1a5b7871622378cf73554e0d33905e8656968510e4b2274e69235fc63e0ef78745f99236c27d33e676a626c7a679588ac7998e2332b8e0a39ca33d5d099b087cc966a10c40f52a8ce89b905586a95c1c6c2521136516db69ac7e439e000a97031b7378b99d2112ad69a5ce78c46cc2c6a9efcc85fc3932a956ad313536f3a5b9810ac8bd8557528725705c2bd05331fbc20f5560259fa82d438392c7299463710357160f985555dbb2ae4438310e3879982b55f03018c17101c2556ec377b15fe6507488052cd2360b52b8cbc7856c8894cea237e76214da481ef0363c877294399cca9e38c249392d61a2772fa4bffd98165d24760bb90ce22614e892a9c7f350706427ba2257ea7a1304029a6ea715bda9b2fd682c6aec65f70018c26c3a41a30f53976ad8b83aff7268f6d9b3124a15b94528024a179dd24b8c56cc8605914ca89815f943c1c568f255b757220ac606d06a1701457b057ca323ddb65ef076cda0044cac79455798b501463d38d24cb9c65faae94410f79995d917c49319e898aad54c620291491f96362d4792bc3639b6551e5a8b7030e9870896ccf461b65fd82ed0f69dad10bb60805c553a1a195336435303c1c8834c3a25c2832bf7b62e1b50c603951c12ab6b74eb72f4b15abb5455d9f681a0d5a290c0bf0ae79b03973e3ca80d9ed283272592fd0a64938c26803441dda5907be52aab1b9ae14b62f9db044cc0c2f5f48f0b8348a6b26631433dfb00b180b721910b8fb533cfe4a8be1d250d75a9cd492ca059fa115132ae5463577de070c87944bc48695f3b4b04014e9dc29185446e4683ae2cf5b9b3ac399fb6c6541925075b7bca7b7326861dc105b3b57ab55a8117ef69b33cf79665663d3355819dbbb235f9693d7c0062e5293c0a32d7342c18648500f8cb3ae925c530b6507418da33a819e57897849bf3f36f6bd68287f7cf8b5281e9e5af40bb5f76c63d4a14cfbdb8235c6a95415c4aa157568c34ca9f58b3991a756bf5ab9b658d9464ae207206d9d2049d9145b7cc59261860267806a23aa513f3c39cd7aee8e71ae4b3a4a6ccc570f179148c2aa50bcdd612bd81f8206fd1334389b9a726208db920944530ca839f316161b89a59350b2220a4b6c67caaa2425d78da2a3b454e396386c5500f7726aa38530b881640a6870d2e5100ec0c25d5a39bca206ea5652b55a8a31cebc84fa62f2ab6a57a2658240a0f14841e48340cf158bfc639149921632047ace0cc2aee5a3e0f647fc0c671f648c689002d98910f78b34e80c523f9073e4e4c9e6e102818e996d3a30886e7bcf18b69d2a16fba1181610b6bd248035cb90d8d440f6d4729031b21a4e1237d710bddc5040047745b231a22246e517a76d76a0ee7985ebc794fc5a51c17d9a9e9acc471f89cbe260df5c4676d870b8713bca53a400cb9b4fa6c36df97a023ac03b08c621e7329635c2e9828719203852970c2fd557348f5365cc917fd3ccf71d38d5d96336026c7d33b885526632860044237b4a6b09ad392414b068144ac67972b3ce7a25753f631eb1a03b4fa2e9f553302a22eb9c721e9f2bf74a06673fcce5bdb77eb4b525d63906ab2c4e8518322d3065121a20546a8a4eb45f85881ce25721b0058c2334ffcf2946c7b9d6ac05806fa778b2041bad1c1250883873a95e3d5b76a3480d8da8b48683c5db2757eab9193750649e74440dc58a56b3ccc27b2a8177bc638b61e0136a215c8079666c77857018784f38bcdda0c56639c03196b54cbc80b49b0aba6f6a9df352cd09c5cc6e05f62e835f7a125845bba2fcaae4bf61bc55ac98bd67763ec0214cc1b7cf91632960c9ec01e0f27a97f909d7fc2486d0cabfa146b72baa14371041a5336c71305e6e68a43577bc1665c0d66c76a239095e13921c00c4ad11cdb69050f7857c3a1b70e2a2152ebcd0961a936f6146d6a58305086e934061ae32bad1b894cc27949f280320401188775aa5078b1497315639288aa2f1f826b48465613a73c5301383b69181cf14ab3a05035a79de39973ec5c1fc5869af11320350c3c4208cc68db8943a017215b72b3353b77003fb0d513bf677b81f66085e8205c17cdd6b603ac98310c9a967a7b99b8d3af10b66821612333e50d72faaabcf93612210572e6710e482702b17bed5abb5e4a57baf365c39b59dc7cbad13601de6b40f5370a49e5b48c9580a0c26195013e6b6889b99b7ee5d93fc8b795cc62a37ccc5e3de2692ad66e903c74bcc45ed6f16a68ab17d8e5094680c428a242d2fa247985a0b7d7a300f70e844765dc30437d032f216a8d99dcc54da34c0a4c25a8a120b3c32f45a3777467b1e639bcff1bb9839b6b45c7895bcf62307460df309eb4e61aa9cc8941418677001064ac161a607e24e15109d06641e916a660b3e7f849f08b9dcc32c47e4a7df2d5d4a374d3e5718a459f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 +ciphertext: 86bd45c7f9fd03921c702aeca836925f7f4b3357a938b39e06cf93ca6bc8fb51b72546182fe2108eaa9a3e2b3e182797e9b2cd3199bf716a8d797a4362cdbe2135197e5348a916f1071ba69b6034a81f145f242d8011b303b872f3a65ddf91d244722d6487694e0834c59bd1262eed11131f44f7f7725527b662f9d6fc872a290d2887486f920d55ee53c68e764324a9141b1e51d83f51fc41f775f28102bcd79e6ee8a6cb7c5ae4a4d9ebb81d8128bffaa3089d3c8a28b47387c3d128feda9e3bea9782557c62890364f1dba9a9f40f3151bf2ef0614aa3c21d20219304b4ba0033f1da2d7ef2a986682aebb48cc2e414e87372b7eb6395e12219b9787ea6337a866cd1b57bc1f92b3ed07b95af0949ed4fcd5a68cac94cab44d41d8dde50b4b952641f9972519943a9e676ae8326b244d9ceba9a777f133fd61e48ee6091181f0eed4fef74ea084d7ea18e1a5dee64c2fb45f7a79a173a661ab047a965e5fddcd09bebed7997aaccddb5a428050ffea4a71ab65a812afe9216adcc0ff0bb452ce4e05350499bec8bccd91d29d99831077bf544f45d2b47ed0528e9a8c70c75a6172d8a356ab9916328076ca9838c9088a70af666bca5a43a854b0ac6aa3d1ad17d44ff57d75f3536b55b30f0db350b4147609a0b7697ede10b73d1769173dc618cab1ecfe6b42bd0d4417165b00008f7a1057516bccf53e22a911d6f025ebed8fb25358e4df02c8d7dff9969f8e0cd317db8c97cea03bbea44a3e54ceef4cfac42fa7787e993ed1168d63766323ab1846bbf80231ca255c47c69e102a5ee0d46c76cbf440edaf8dbde36c5d1977a692ed34428e73a4b5229b73696189194c813819724d60ebb1484a805455e938b74790651a9a4b823a6fc1205c1e96e306c4ed46b16e19db187145fdbf22c37ffac2f754ea752b816645848965a5afcd4b51aecab597f959cf7584b919f795f921dd5fd4eab2adf52f4582dc8849eb5a37f171920413dbd6a114cb5fdae452b0e16353dd06716f4b24b82deba79fe3af51fc98c7d417ac5e735ce3b19add258fd6e0ceaf98830e82e273335aea870e9744505713a083655c1295cb6bfa26c07fa2b8dd8dc97e65955e2001a64006c62392b97ec5df62c88e3c2debe1735c0dec98253e7ceee437ca1541f3a73209b356fa4b2e38c3569cb268afb062319f05a8f2853c9f081c5185386d5f5d8336016802d805c536a72e13d54c13aa3c1e1bb79e2f0dba1c143bf4d903b18cfa956c2b5276def5bb0bb4b5f89c834bd19e8badedefa2f0274e83df07fa989537ba8b8cb8af458f7a02bf44b269d6556dfa91ecd76636e56730e35b07c45a9143afa4cea876258caf6e724d7fe0ae0386b9eb3f2c45fcfa31e8f9343e771e8cedb9771fc864f0a728854e3b9fc4b04c30f8c8adeb13c6489b66c5f68aa5cccfb25771b666340747d0002bd70f76ea5aa52446f20894af51a9469f49e16723ac9e0602f1ab9297f072daaffa8b4104264ae578c1e3789fb405f01b44c46548944a46c87b3da0ac08493fc6e0239d86568b1132c2ad430ac0d76bd2046bdf31e98b3bfa83eb29ff895c05cebf28edb792e7678ac7379578c1b6738ff0ae271e9de818f7071ab22798fbffe9a94e728abbcffa249be1f0aa11bb428740f2ee39bf24858bc583b1aac546c1ca09fbc87a5b46df572be14e6fa9f6abc4cbe3bd41bc100e8a4d2e73e60f5251c931cf133d2883de857dba56c945b6b80a8872ba0f505e889f9033915912642c5cd6be706fb39100f3954b93498f19c6c880215f179a331859af35da03b3de56f3c18fe2f2bd84ac483aa86fca3698f82ea27c15fa6c844e225aca5647abfc0747fdc5570fff8209c288d01c7f405bbd4d2da146b79c4e394f999ca9ac92179680943a62fc5b7af0e4cc71fc15e639af6b70d4df4e2cb2c7382436cc62ed422186e5f88219571786bcf60f3efd119dc9e06d2cf0c9aec122072658525f86ebf99579e5733f4f8429bfcd75f0ac58bc9823eaef89deaf510503b51af131a81a58a7eca063c310cbaff194924e98c4402beccd0c7e83c1233bd87c6b32039db84d961508e60b108fde7ce1b5f74ecbf28362c1db18414d66a75742c5f2d6dc3069960cab26d2447d7fa3140b017bb3a4e06a0b8183873c4f79b54f9afe05c7885a3105e49b30dc6beda36118f074af630ef7766a34d2d14568eb02de6 +result: pass +shared_secret: cbd7e4a223241e16d0527cb926ff8a4c945f11314f238b121a387f9aae140632 + +# Official test vector 76, seed: "9218943c51fd2de47e509aac67eff176795102f37d7a2017e3afd768fcda7877af38739b00fcdf227c2fd62eb635942c" +private_key: 26c5b889fbcfb6f91cd0805ff87c89368c9cf82c43aa70c6f59b01e297bbbaf7b8c9332721c2bdcb0526788204e7674eb1e975e3e609c82a97988787b8bb8daf49763bbc0fba822a3dda19509bac10396261134d0402073deb6b64ea8e0e98a55fa2cd37b14c1e27cff4e64c52bacadc319d57246bff7145adb11d06ca87f2939478eb094a06361d65aecc8b148b653ee2c15dc618535903b26592c4c334245661830f15638ca13583e387d92c6cc21ab77eb3cc13969322c8521809346a873ee9d9b888b695f695bba983645e22b1a6a30bc05baf1cb49a51dc9eeb5c9c7077495e6800fdca87d3a15ac0d8cc2f2bbfca1626107b3c2a670039ec12aec506e82040cf72ba510881a408595d22c88c9c8d0806a079fc6f7fc32996273a0496c61a22b9c87926aef37097c947eb5875599401d1911b175a770d901a453ca20af484e9735a27a7b4cd3b52a2409a567a369801818e22314ab369c1fb93a9f2a669f4028128bf3a929424d84ba8c0adf7b111a45b1dc6430bad947a4d19152709001c069e1b0b7c00a05c3c420478e05e49788e27d712ae99029037c2e3fb4172d0594d69cacebc05c5d87a8bc91662071c3ed07d84f2bd477454e4fb37468151c0c346053a3adde76c9575386f63bf44ab4b23d3852e274cda84712a28777d69cea67463e563722c90a956057a922c72a5810b0e5895f09baefa947392725c4211898181acf14815eb316855066145063b75260a4c281ba96538073971ac59bc5ea863161a7c0aeca766526b9c627d716521aaf55173fb8eb7308805b47c89a520404548a144589d15490477ac5eb56c62e441d728a808a2ca8dd74981d205c11813ea165e05b938cad77be34a0d1612cb2ec6c90e6283aed35065e74a4d9905713bcab3a1105287162786cd7839537f186bc6717f1132054c482ba0765ab95cb2b4bc4e15704f5808108244bcc1490338ab97cc94a2a02814ad440d34bb7ffd753dd5535f6b7b1f35bb44656726229522e5890ee2f3ae36a468c3c7c21716411bb0c4fa11a3e2baa334c149483a404e5220cea6926ac56dd1fa856db5ad60bb86f0a3cc731b8ac0c48ce98a90c6c20617c8c142697425a7b6017555c7012b63769d6d817e0a810ed84cb436a2cb9a2167c7a0be998b9a42a43545697577209fd09a03d5c902e9082091d0c933665ae84068d3384066b197c71a07c4307fe9aa1fa17436c41550a0337cf70c68a9220df0852ad92853f7fa25905b81c528bbeb8260bc10654589475b1883b77a672f7bbfe8b9bcf5f8b2c432994d975cf6ca8cddc929088c2806fc49037b3c8052448b65812124c82cec2601268f0e998bc41854de6350f56b4c3d31acd427910c8546921132e88a8d1f9c573388cfa3bc93f57c6345682387a69d4220b756f7546d5687dfc9586245b6bb08a9d68263e67c21135301ac1ca2c08a1523132c6cca56b6c05c91d33c44bccc515ab429d9a812693eb1f3380e69be20fc81c76b57bc99498c52784ef3650bd296d6675c7ccb55b67a59cbc09d44d9499a6243140040f2e30d1ff3aa0cf66c6569cfa6d2ca8517a1d5c87fd0d0693ef20d8e21ba5a4a2bebd77cf55698b1a09b2d05bbf7d973c5f5792b165c35bc17f873a9dd95a696929d0f3106bd685fe83871ec99772ba3c21aa523842138191527cfe7646717c65cdc2fa2a9ac97e818625455c2877346b378a4653aacbb1643f075762a9ceba500f0283013269f1b970c9d01588a149c1d8823eb214e76dab3966a622e815ffb22a39e2cb7898b4245a82e72557d51785f3888bef9bb9f1ff3312ac32a0524115ad1897753325378ab94b50dd5172cac3a453535af258a05d57930c035a503f26af358c537519ff53c0e602bb8266abb0a1854524b5311d7488754b51c672fa0b3312e356a60c62202b1678c241438d22720963a0ba51bb4441bd3246adb2511dcd132abbb85c18ace9185907dc3175ca0cc9681c52e91388ae5b4cb4acc4183c588a43e08986e4ca45770a5a40913ad353549c9652d60d5400282040ce17af243614ee4cf045b2c10b6845d8a7704d4173e5cc2b3a6439acb9b2df0901bc229c46945c2a81c7e7742fd96a71066118d618154aabb8e7c9c45b2436f132e3fd48fd5ec04f857b24737c4ea5c218f52c562345af7a1521ddb8ce3e91a2835a177988a4e856467f6ced236ada9bcce8ed885b19b862b952cc8a2269f35826a290a90c170b7f9195f816dd631b1ce66442469c42a420fad3970edec539f11826a4a917ab105123b4c14087f7b2455202a5455159e828cacd84767e5b9c024f4ae6d37596ca7570fabbe591082de627fe04a97f45409fe265054bbb57426b6cfe71825837b4be360ff7b48af3a7226525b77c450cdc4a483a17d77e723c8b1282bb40fb621731fb504277ab50f171bec369818bc3ec22126f6a47ca2937f907890c7815a1e115143f62f58550a0459ce7e04695bc7737787a972321578222f5622449010287ab844e624699a1ab50bd872cb29bfd534b401e538c51c12dd8c467a14c24f5c9856234da17ac5fa28870dfb70565ac954c440db457214016e301736520b5e15538e92d1cb205776f849cc0b23211e6a67ad5c9fceda1577e625bd271587f939fb3acee14135613592a7364534c77c2a1564151c12e1c6a219b878180001e2c94053ebb1282c5288a707ed7b245f15054d87b901c939373244f776ca51b3b9d00628c9a8165993974bac2c0b26715ab1a1b9706e8264a0d210a0e627ae60b59ba58a4abbb61e93f0cf31230a624591e0d1a368390205d6526889640651b7cb71c26807b11913056629914fbb1bc2545b55b2610f992e73812e82b73d10a541a7c8621a4690b2c00149b5b952e91d992c52e8426448e5936dd41ed7725ff1c5bb54803690e7b642805b168829ee5696b5d51a13560a36409a1ea41f03ccbf6bb86a1b205bec128ef81c2af9701752fa54cb3784081b5dec67bceea87a8864bae5bca2aeeab4eca30d460b4015870c0187b2519783fa030a3774277e018274775ea2ba027b8624c1dc569416a3117b57dc5b34a1056e4c9b1ea54b6e5f55bf1cd3c027cac8f5f9b9e4c921d98692a007ac22c6b044f6ac9ae5acc4aa3062a348eb2cad9e77189131bf56aba2d86612e01accc76b3222b01d30b079ff5250e0869545641213c175bca181eb738fc7e80e989b43a0c4c7ba0b41404abe955c3c01859dc17b35f48cc39e9c6ff84625923c1229e9b7c3c2ccfa760c8808b43225ce4fc96bf0c0affa26aa43341f7f14aa37ba5d48798c1661319b31325d04afa0759c35153ec77b07d5d88050f5a1f55262860c94990460341c6eaa32055a480547bb0829d5c3398208018b4c098ac686f1b18870864e2cb0777a798c221a659a0e7e9c5c2936afc4897a611c55086330ee1689f7817f44a6c127a53597576f37b35b4f74c535444abf5342dcf256d04800b04361adc83a207952fb81caa20cc8dd07a6fe8864e562844882b405b5b4b65c948b237b385974a9d4963068c3e5b18c51d42a7a9211d4f274ee5208e530907db49db956b8e10977e2357223523a58b511fbf7993bba3c38a95bc0b98062312a1c9449ddc4082601780ea65a6bfb1467a01d9e326cd10a8e202320d2a29e9b36ad09c44127820d6d024b3ce0c818234f55d7855b0b000462b198a669bf924bc81c99ae0b32a1c21f448ac6084c71a59a90fb43aaa73266e69a077d16a8d1443de4c2b61c3ccc731437ff744b7a7cc3a02a948da951d5763f078a991cb64ca7b049fa1b1eecb534509aafe04437e5f84e974261957ba746705eaf4528b4ba3764816f45045d40e807c14c3577a25f75f69ccaa136ce627742e33db588bdb5cc339ef916d7a9b108180a637586da55085eda466e3c7734f85e6a903ef0fc91ce793910231a8f46a7e084c595177a501b390eaa818c0a9fd37c9be78160c7a398f0e80d8e58966140639656890cd08f7fe92fe316cb1e1517ae7741445a47c8ec3ff8f54f476146f1095f9973062bc17f6723542b0a48e12b7e4dbab100f3bf6dbc219816a76a3109ebba8c823cbbd9176061d072d57726cf12908747bbc267c59fa71f6c719cc7827b91919ca3793d03a73604e1c2c98ca2e99877b6c2b93c97965c06b2dfd71cbbcbc7c81cb56b36587a174e899306acf88fd2689e345a78657c5c0b65b0f3f8206e405dae4738a7061d54db38bdb2ab87e8cb6dc93f2ba0c11b65712840b740ac90ac3404b69cba2123cd335004d8e363eb08148a627b66b4142f66b18e460b59d05091640587212f4dd60b84e61f0db00ac05b15e83a6e0ed3c2bd281161cc07676e12ef19a936d073d684c1491518bdbd426eb5a1463cea8b671c02b230ed109318ca7c1470f5a0ab154b74ee3990ff20ca8ccb835adfda4867f03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 +ciphertext: ab3bf275721fa888504426dbd58ac20a234331510daeed10186073ff9e2d7b156caccc8acac8278c19968e136956b745d6ea41832eee321f9ed5ffe78b15638b64f4e467c8b02b462baa3e1a39fb6ce67a53699dda3848bc4707ad980be6ef1dd837a3bee0f2b5c1741fc83c6dff1fe486f5aff17f19596b5cfa50c48661285c395c5e74191f37dc4eb0d47bfd5224015e7b3443e2f41365b338d7806366059cf7cc8041d63c7867bf425b1468f2844b7c37e4a2a95f6be3f971002edfb5d9cd697a4e04ac19e00cb1bec5549a25ea22d581b2f7dd9fa57dfa570ecbdb6eaf15e96507a1f8eabdb5a56c93ec3b2d935180a26ce884e69e550edccffb8d5511a2a67ea30aec2c689f9209e11607ffcb3d3e59eb43e10864e45ceef642c74e065e671cf008efea88b0a6aee56e3208611e05b3251ebcb23f75ce7dcd75dbd3f393deb4a6cc4cf593f3c19515739d4f8fc3f567bb73fe27261c600608715e599e43f2f0fc408578b2ff7bf13dedbb9607e9fea6462cf1490396db33d1e86f002dd0ffd8c04c6364f422ce22c6a36cb379f6a8f75ef6af6cbb771b9a45f5093b3f0891a1c28c90577c3ca9c7e72bacee041ccbcb8504dc94d0e61c707c2bc25ac907fca7e32323f9b8056ae7b655587e77e3101dd9c7901f81472086851b78b083cda5932ecfa518547f23702ac75e09fbc45dac81c94817908ac1ec29aaafc197b9f743b87cbba8f5733730dec689648da1dfb24685b79b4a4b78cf9b3bb844fbbe52db29e96e71d0c2dcadf6a9a02fe25181e87ae45686cc857de917a7b60d6dcbb3abaacb2a6c6f8d59e1a052a9120a85da873132ab45dea2cc5fdc593513e172e970af99e73b9717e2e2e85e25081ad945ef3397d7338254a60d9549ce995518d371c0c672331405bcf88d6b3122eb55f876753520166622e6176436a9105655a1b21468608070a683bce0d9a959553a348591138c414f40ca3b7260737d70d79f5ff67327cd0811f695143f48c2fe55ecbeb7b66823251f97e7ee1689578548430cd832eee8701855c9a15aa932290fa9e19c688be321c4136c2dfa9fde8d7ad97bd1fe0a1829066616f312b473c0c996b50fdabdeea8fec2e88df7d7c8532a493baf9df9846292803fc682bc89104dc1f83540f3e621d0d8c348f0ff85f11a2d0d0d702857d1a68124ae30ddcdc38d38bc351873ae574f1c7032c524c87b7c38609840444f73c048a23abeee5bfd4027a26d2afe6a51460ad081a8ae98e881272c39036a07dd34b839076484b4bcde7ea5a0c4beceaf0d0c7e491375c5c8f796e64643195960243816a25f6f7e5fa1ec23f5b42c0b76ce60e581b53dc8933288486c400eb837f660be01982b8621aede8d15ab7570b6abdc9a357b338c681b208ba9ce8ec3fbf70994d5d6050686604dab7f87a27dc041acca71bc9376495ef033135ea27b9e3542c2cb980e6f6b75ea5740b1e049bff28b4f33f486bf8bb952762994df7c12b2907457208d700b485da9cec56362525562f7b967725a506d0926487f2994cbfee7f4c945dfd228894dd9c4dc30985bceb0fb4aebb36d8a6c0f1977593beca4834fa25b24102dd56623e725e40cfacd5b058dd7583fec862b5dc44ce3ed116e24191d342aac3e012285e511d4987f0183d032b37d24c19f54f35944a6c131f0558aa4df636ccc1283224aecf4c3f5b77b7a5db6405a51e060c960c87ec15cdaf5e080a089dfddc90ba709f6769c28a2be186bed959ae4b6a217b51c607f212213b1230e7015ef77a893e5816fdb1811317e321be94f2fa0bf398b8a52acdeb9059c37b65fb6ec48074eb376c522abbbe9f91d1e5661681bff86fa11d1130ff8e03ea5cd826bab22facc03ace0c7d66e0439f58f90790f1de4ced6a69b21af46c09116fdc8cc439c8e64d83d400326202921fd5300a3fc4688b9bd2fcb193d91e460dba2757a7e6f8d98aff772845df9041ce5ba2bb3e820b7af7a77ba40d0330bba2d48fe5d7ae02e3bbd01be2acec545f003d02e7601ac1ad0cc7b696905e420202ba9cf8afa16fb199a920aa8f95115ecbbef6bf031baa16b02ca8f390aaba0a9c13f9742b3b7ae7e9200307b76b79108022798a4a9dda95bfc45992575bfa04f2c69d1d887e95486438b6b19c51480afedcb28712b2ca165c942af6d08b8051222e24ae7b22dec5be1843529866fc2a9ee3af64b27a30f +result: pass +shared_secret: 7849697d9e1c731b82ee49f017fd67d6bcb906408a9b09213b075f6ecb658387 + +# Official test vector 77, seed: "542e20078add5296050af150360f057f6b9ab3ba835589dd56987de805f900b906505b5390a0d86cba28038992dfc59a" +private_key: dcbb8186f46c07bb4d36203fb6c89a5a487a0d16c2aa674a1b7a4724176d0a3a3efa4c42a258c7566b39ee2172b36b8102b900327b5c97876d2df233951c6ce26366c264b4202508fb4b37fab78977c76cb91707c32b41ae916708b108c2c303c5958c3f8a84c0b44ed504af57e31baa864871871583a98c4360a8b467ab78d16715860e4f112f4ce4a203e154e78c29ae4035f6a6b3df33a0118b6a70d5af8d9a95c65a6c223398bf541879351943515db63a4c97f7255171cd45c34c803c02668c73397c4adcc7874b2346aa6123bcf9050c22942fe7605606b745e6b375b35ef4b3be364353428abe7b29a9c93072e24b6af7904d87224b4b877a204180ddd63281d7211c17b8dc2ab00b5c71cf086e79b99cf1f7834e85b7c8e403b5e09c15042f5248c665b6b85bf84168d0165ab990eeca036e822bf6499f47b6162261b29f44644c78200a09bfada808a8db934977956fe026aaf342cd768d8f68ab2eccb64d67710995ca46eb10ee5b54d05925019510405606633538e45c91cf5c8d285a42eec3cba21509356cca48633e40b26ae5689e51a618b8b2481b780f071451d6c641911183184748185aa629b316139bbb8b666b9d165a24280bcf695b0d7a539a7950b0f133727141618605c7d8311ec5c61d153badb14117a502f353570c051a7975cf3e0031389ab13409a699ab4b8711c5b5188d71d4195ff54a3587b8a965280326afcd609e7b133da87ab115e63963541e512a6a4966c9ba569f43f68877e9c7659a7f75011e5c9757d6ac23782b9579032a2d83848f2966a5e007464c1f26510589269acdf80d28640aad02142d0c02368203c80ca9d6274a66083b194200df05473a056b20449d68d5af4ad617698c1126666276d38368ab87b104158e0c025dd5b7f8835e9757929c75814179943f05467eb6984bf4600bbc99cc7022fdf21a174bcf7d1504a69ac7693c175cc1bb3aa93dcc1c0599b73b1fe8cb3daa93cfd63dba315a5bd84d5e13b59cf15b86539037565b4e753ba075c9dfb049692525a015428f07b8ad5b3ec2ba89a4691615115b647cbdc9787d3f51109fc42a3c6005fff13ac191883c2683c6f45143e298ecd57f63c9bef9294d7a6a00a2737475d46e0927cc2a3c172f4a2fd960470bc4ca50db3b6ad5902508bb7538b7f9a9a42922104403a0d22bad7f36033c91b6acdc03205ca685e144bf72278efbcea55c7fbedb3798f0c2ac2969e4a9c742e6435400a9beb5c2a7874d971a36a278aac25113f382aaeb0877a2241fc3b089e929b806d72613007924c65c72611d243b00554a864367ce38a1842797cc5d4270f297647f1a4bd87236de55c6f3d1343e26708a623b8a03c3d3043055457a574c9b7b6a013d501189828c99a33d3fc715be7cc72e27cc8b0a397b95a79fc5b78bc5179bf1ce44f71a5d699ba34a271ca67409c115bc67b6a7790d384026246ac0d5fcc0d0f5b92ad2cdfe9c5b3dab52f07590ea07ca292cbfd2c44321c4687c385760988c0532c3dc237a9ec0ac139783d5caa0ebc76d0c25a8c1a0bf1e1ca106466548558290d2683bd69ca296711072c6dd5b95040a5b434b8193fb0c7b0496f9334cc86528cf04b77e3451ae590cbf2c0c55219ee1310989aa2ffe7b3bfaf09dede24a86b765fdb9045919c2c70965f581ab16a90afbdabd46d21edb9b3710c392f1f8115dd12377321016e96334491bf6b4a5f661797e92926551c006dc5a5db6512dc91542f017bd1976068386435a52f6684a0bc257ebd0869f72a5a269a46e5aa608d1a551c8192a7349885b95b3cc38d2d134442c69eb0655d9792ee8d3518cd7841b0563198a9f5526b925d2a02a5b3e7ea358cbdba5b1d22f9416915dfa2d9c399fcddc1f70a99e0c534bcc35382f1b4b4283cfd4575a3ea10ba05c77f316acd1a7459eb40a663978114425e0740676e483c9ac833f881523427335796405f3a0a52c8eadb3952f328a0f5ba2468a594ff00bd673922782b0210a3d97b546e4d3333a7104409625795016e9dc57a7e4815268a06273cfc0866126605110163d6de117b551c986ac4613d24aaeeb0209db97bb734da4ab0c9da2adfe1a058b88b2e5311118279443da1859b23a814b6a10125c7c2a7b2686465840ccedd31980f00786191ad330c36f161381cbb8ff776b4299a36c893aea783b541b50b2c253c088683aaab40ed421eb113add58b322fccacbc9aa91b74fb0657e7a2706ad9c7c7f7813be9008cb07980c310f47c764b4ea496af60e8e6a534cb49852a2c17b4c7bf096c52c72264b7855b7a5552aa93d9aeb47f5ac34e340a094d411cb2cb962b90588a1b32dd68b662060ffa2ae2999525424114ecb4905a19a1284928ed8c42a2c5461520437f93d3cb76502201412a65983dcbe4c70b9f9320418421962005b39ac65703442002d52d18a83b08574895c0eeef19bfeebcfcc7c308f960090e9be93a01c36044220858f671bbc04f1a7557897df2a51adf85a0f7b25f1480089855f1a150bd8207edd0c63db7b99497aa03eb33a8068067d43a24957a20fdb6e11942559087c3ff343a2f5503b33756d55c9b9f29f6fe83d80cc3cbe9a00e8a31d0b986d1ef7635cfc1cde434f6c826ba5445a5933845d1cb8047a8e2f263e1a86b4f58433c5318e6b86942ca92cae767e2cca9111bbcd8b582a81aa5d22aa29dcc21f374a96e55302b837aab8709202141324386ff7f9c7d2ea068b057cf6954e6a433a5502785bf43ec8854ee7982002c703a0d6c35ee79a316a1fe3148b0d933fcd450829746c70e26d5b7b4792c40ee5c51b80cbba439c212f1c66cd619408d654aacc9c1de097a9d03478351e9a377e08710263728c08a71ab3db7f4a50774f0b99c8306f7d39c1aabc4b4bd64356476f85d6945a404df00b2da8988bc9f6b34579447dc3bda9d1a686e2c8ba67666f179f77217daa8cbe47a40b154c16a773627ab06c66b5c291b8616bd675c0351db13938c0a22c874b33d7cc128113642ad1321e5520a636681ae188f962a793b072badc69316b96fb591a99f53ce160c1c9e56384925afcf5c2dd74069f89580b3c18bc15ab0c91578686cf801b25c56c3e37847be52b5869c2b3f03b9b5b6ab0d2b5043e56bddb1c793d2c0fe47544e61c12ac0771a48c8249b3649d77ad9a4bb5d20c3ccb0ac05b51a0d1e29cc791677693b2d96b83c0d599e46b238063c50c7c101f3b3bcba18fc4da9d71b23dc133148417c2f4369b0c92855e538245f44496413c741282f5d7b1482167d90536b89165226aafd7e8aee821b22f69b963a87e4bea84d5ca3040464e7293b1bab723dd393ee3606ca2940431502f56183cdad305ea19cc3f3974236310d05220f233b383c5bc97ec1544a8528c1c74a6a48e9b9b31097477efa632baa4bc6a8abd6ceab5d774bf988b7d708926275227be2c416dc90fca4720437425ae9b4769443472e2b54ad8924935bc0f65a4740699f2051c1e53153cc354527450c8909366f696c8a323a300a28388bdbbec532afc1580faa1f7821c5a6988d8386265bb9dc1043c5ec2a1c51a35ec910d80a1a4c41755fa669a89e05de79b331bf13ecf88bff92ca340d5b961f446eca336af53a95173cbddeb643d4831c2f563950736fb912bbe370daff28cddc319ebe86958fb1794a97001a14df90b01b3aa0c6e952e79c7af072905f552487bf255e1f61536dc93824c7709492bd133516ae71c1b057cbce6a4a3d48b0744a5ceb1604e41a378e53a9afbac28c3cf97b1b03b31797c40654fc23666c34f77207639faabce69c1e98262ae22ca956bc043fb6748f54310379e975958584579fba4bd50e04b739020df78849aba007a4a23da8a18d449194073903d1a3ea4f43e0e76b299c233c5fc8534d831e69475ab6b611ab02da3251fdfe6b92475041f7814be839fc39bb06912799c553b4647a7073482980090c2c9a96b2866d6d8b65db1172bc062f3490b708b239fcc8a39e8175924c930825916386b463b645b4832bcc399b69a812a992d09d260cfc964eef5c883027a2d44743fd538d05b3417a26974bb639f494131803b10678c725a389aa6abeaf83bc947c6a3d031487488c72b1700b76f25f42ffff6595d87426b67258fb6b993508189e9b37f16c2efe87e3de705ff794b0a50cb7d8bba4059ae2e3ab4297429a3122c3e0568a64b64a401aca8ba2edd807dc0c0656b60b027290d23bcad4ba71de7f9989cd85ff43a1fd519b7eb40352d85b940208f9f8596f1946dc2366736a345d9c7501511101e81928380591c19868128a921e56383d12f19446577783e0b1665396c56cc9046c4c7c08a569d8edf0b76096e3c0643e13acf3d522c782871a1f0b31cf8e5a656d13cdb067db3640acd507a2fdc583369ee08e235663a202af6720934c3a59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d +ciphertext: 43caeabbb0780353630265f7ec031e271d21eb33a99193e5103482cbbb2be9eedaca422f46f1467f31f75e4add80f18ba0bf5ba8baf7f2e1f3f53a10a49a8744fbb5dcbf31fd72b8e2f43a3ccb1297495d690dd23c0cb128a080321ec598f9b10633d3b00fa818d199dadd8234dcd421fee4720e44b5b090a844fc95e37bc7e561507ebaea139fc9c2e137d6fc7dad05532bfd714a50afed3e10d6ee30ea4b53be87a81a2edc6f41545f1a4c4e74226371b513ba31a0a05123882c8709885170d8b52bde2488ef13627d3168af330a914219cc1c869b83a531e573025839676125100b376d6c7e19f0a8c39a84b7942a8f493803ecca439b8b0d6aa984092e1dbb44552bef183812235bf7c1771883e56ec1064166083fb23be4a7a5ddbfa743109a692c282e0be159447fd648417801281944a32bb68e39dd18081b9c2bfdc2828fab3089023acbe74ddcdcad8ccafe75030dddef45a3b323eabf4b5aa07ea14a814fb80ee16e8208fea7a21ff0ccfe155b5547fdb330c90aeae7a9fc63090e784d894b4dc25396dd989e3a0ce8fac844472170db804106f76c360f666860d50e4d9d2e44b32adaebbb84a276fd41c50067bfc7f158391ae6df38cbc70712d6f185558bc295135fe35781a73ad1ea611f33f465feb4201336338e37bbe146f966818902db5d9a8073ed3306b5946e08bf593352f9edc6e545d477834c77ae2239fb89b88650e1c3d7918426ddaef8445b7a32d6ea77dd761ec980b5167a3fa3613d5c7edb02227fb57d7981290ad7891ab98c1d127b75f5ebeccad787c9f6d2d7b3fe5db6ae2838bcd9ee58cf4ace6de6febaeb2062b1029751357733ca4946fe95c17ffc65c5ebcfc0a4049e55a9cd6ad190572fb5ab0d36244d01fe2a76ed4cf1fc6e709d8ceae012e613f81befc46810dc9b745f918d0587238d304840f7068c2c6f646f569eb5aa6c628a2ac4a77f270e337c3e7e809d83ed3075b9ef199fade755fb0ade87d4458305cb06a1fdcc77888fc772efff4ca7588499615e18aeaa17aeac591bb93f2bbf3d8b363fec4f7f62363ec2bbe9707664f5a18c6ff1d1198dcc42740324183a530b401b3c480f10531c2eb23b2b2fc9b4fa5891fe3c38ce751258c58e2d36eafa05b434b78018a91a7f010d0c8aec5460aa4ea0c474d888a7719c8fed5a1a171bea5b7783403435855b66f0054018271002342cd8927afadf5901500ac05f86c53f245210f54d4396053b5e4cfb140c9d850889f022447e947e039462f169dbfc6f58ce8a8aea3eafbb0bc57c5c34bebba106411e6606fd23a31e468e34677db5c4e9fa3897b05a4e9594dffd4c3c8f3957fec8fca9d6820aacd586d280fdb364cc83b001d5f4a167444fa461e9c37a131bac23fff2c500bfc4779bfb9e6f07548012df8af569f743aad0349c1ac04bcc61f949324284db3f9c84dc37e19508d5d9e4afa3c1781ea5bfbdbaa0d40f54e53a8146ef1bd01ca96fc77ef2f06b622dd645bfede60e92533b15d5eb753142cd2f845afbf41c3e309bb610b9dcd7642cbc64e9554b5dc09e3cec0cceb778d66891f6edec41e67aa4229fec60ae15f7bd3bc5960e5a6a8dcad120505c4071a722fdbf28fdaa344b132fa97f601743151eacb3bb04d071f4c566ddacaa02f226347a9368545c6f821293e6ff3dc6ee11c203e8e02055072e0cee63f0b062faaae446e595041561d57b5c74c6457b58e747fd63d7b1e9fdb12a1ea7c7c59a5d9df42de4c61c0fbeb55d946351ca5d78f41f5d569ad82766a6c386010d6e93bbc3b50cbbd06658bd416ae16bb3147a16131892ce84acd8871111c7e058f28f401518ea00abd0037d6be24195d0844e17dc72509aab8d39d2bd47cb43605ba4dfd475e603ebfa243ebd56a1f6544e705e59899ec3982140d8b783e523d54e2998bdc59f6f7e76a729184f09d780c8235456a595327298c07a146d4a52ab9f24da8c3bdfa6e77f0dc216762884adaff8c582a300daf4e3c8a532817a3b6c015328e6af6f948e239c257593c61da28d00b834c1b23ebe44a61c032b96b435d5a1648d2796e500600450ab459a1611b9dcdd78afaa382cf31f1adafeb6c49eb3ca4af14878d22f9ce1a567b1e502127d5f4ca85afc070e5f59aadadd86b14ac6e6076d247b5807e14b935d7b05c3686e47edf3f9c03f0aabe274232953e2199073d78ad827e77739da +result: pass +shared_secret: c543e8af9ae37877d6df73cb7c52819c2a252a85bbd12ca9ef1990d73aedf939 + +# Official test vector 78, seed: "6a85a61dd08c0733fcbc158abb49fe0b0d96a50dcca140a2e9f5a254f1901985844613b1c656c0cb0112620591b88ad0" +private_key: 7c12448f6c47d923c2abe1a0d6f5259b00b5b0f84304fa9192c5ae32fc6e7d0c6d2cd2162e121c4d202a01d0c471f7a959f3941fe56655f808c139b471827d24d97464993bb77b69a45b0380a666874804de793a2ab31d749070bf174ddc8a113b50c8d11037dcec6ea71a7a37e84e133551494a2cfa01bfbac60ea3691b60312ae6707883c74fe70954565abdabe07364db5c76fa2afdc234c63b39fbb597eea25faadc07d326bc06918b201630cbd166e935cf713373bef1749f0a579b77c185a9855e444a353a0804065c3640114d29b25e96ca34e8912454a2c9d39f353103ac17b7d3742222e605b50043e06350e655bda46760e6073b0710691072b52681a81557930fea99f1c13ae618930466305cd56e7879c455f1c7f140bb37dcb56c807955a084a7866b3858a78372487a565da243c7c328c355bb1e21d25c499bcf2de82fb77349d712a365b395d3a1a82d43326d464cabcba97d634fa0f54226029d576304ab06229bf59be0a3be83c4a927157db10743b9cb4070896e79b17483b07d185aa097c790b1b8168fe0aa02f47965e11a1f63587cb512d65b2cf4080d8be80608e0aec5d98a77813492e57db94c20b3b4a29912466c2b693b2464dc8248757b808931727a7270fedc06d86339886a90ec5a0cd5a66462646f66a9bfa959a5c790af13b777f31bb0d1952e1c0a241aa743b54bc2cd4a3583d735a0774a65a57a1db99fde48381b456b2d415ba066ce94c8ce2f144efdc71465f3aa19bbc8aa2cafc85a0fdb06a784a48fb617bf3b7847b91037ce732d10cb2cb92331c38003dc87647015146adccd2a3761283c221f90ab65816107d69d5b481269009f43facad5d52830f53df74b172b41c1aa693e2bb9a2a1bbac5a362a9c190f142b71ed621429b58e88b05851668bb0193df370402a8c6dc19591d84090a879b0c297c2b352bc74bb6a91a598997cb8a7bb3ad9553b9eb114e4b44e30e2698e83a38134be232995a66644e1a0c308b014e1dc5dfc71c580d61acc478db94052340c109339731610223e212cd7ac3e7be983cb75b0a9145fc2a058eac5288a584ca024258a596bdb2a64b42a471a2c40bea222cad46478007cf981ae7b179f1864a76d0b6d3cc3324735bc2c7474a7c9778777b01cc85c67fb68f5671a74479b691137a006d0d5531014ab4261dcc4c88c07ff298eb9209d3234637f1b8bb0bb506d582467247fe6286ea885612b0648aa593f5436873646406bd03e65a549e610a6502121c0c84ad16c7da8026b2d47334553967f749cad20421be2c67df13225d694a4f84faf99c61953a5199a556b8b6e86ac9dfdd4223fd3adb37623d5a6c8a292ca4a048a7a72b7cde58f60e227efcc5290f5c55e75274860813ea29496123adf577d22dc57174a25188ba951970597359c32b24031f264fd8494121727c7b4940ff4cf12f4ce8ae074272a0ce870304af5b274e44eb34c8aef476190917b0194bb75a23be748c15a69525aaba908baafe6f67b4140bcc9f8670b16a84ea855d67610ec1a6cebc7ca15534bd740bde1181660501094050fc8c58a48f4b87f98cda881569d03be5db1a4418b86f93aa5f18a9e2873418d5bc9cb849aadbb04883914d413955fc072b26c17af227e7e3bb41c666c8ba269e5d6c9d14a13b458cc7e7b37907003e4a089f2941f4ed3b3b7f7caec60ba21389570e014612088db3309582254e7a4667cd3755f4b3e536ab68f36459ef04c1eb210e17259ff714ab8d1052a6c03351a829a02a0f9267e6f62912b188627d907d11a85237ac296e3629151516e495e69c9bf93677bb1582900d5c3ee554d9e491bc1972239c96d17937b094795e6780b84f7baf953095e909c11a90c2d803a3d7a265a9894d9b76988f9b54dd033d4c2461000087987a1f81a2027a036138c42dff0656e4338bb717b0da922e677b1d6447565f5cdf202ac9e7232c2b962626729c1f6836862900a32688ac60716286ede932085d23774512f610881b63b1e34b77b25e30c7472969b7b2f4fb03a4fc46217a0a562b27345eb8038b22160913bf658478d089a88eb9e07b559d268be07ec3e9f9a752f7c110633821fca2ee9dc3b94e9a190759c6c4ca9aaa5547c1c86d714ccbed6c41ab53d3379bbe7c189bd1860df788fd4528281fb1c51f687aa1438a329b100805f99f016d9119d2d06c1a6978569e7c40cab47ce5cacc4d35aadd89047a3bf7175cd8833540b8a028c27461d334b3f8680daf57313d7713a35075ce971cac3cfeac02774c3589c21232d5a73d959705be77c3ca0884f8a1c3a89a1059972f115257bc0ce9f13271fd73e7293bf944b82865986a5d56e6c9c825c83271f42908c0953fea66de4ebb820013fe9aa9522ab4ed66334de641f8e66766bfc47a7a5156c182c0bb3628b81b59461b05e3a11d945b36a3923b12abf8f698d1234593d0c784633cdaf09cf8f4148f6320b15c48aa81b1fc3e79fa4055599935e1076c8c1780b1910af4ac9652249b0c64c94137132a12ab62dd265334cc46a3444437a74b076039f39bdcbe2016d8402081949c8e6066f09839cc0adfb5215590aab10c51bb03b68701b0692d1c5c47c58d214b139b83562728b3a771f25cb7638077c4b6b2f83b11df2369ebe9b4e51f36be72bb04e1b591852aea0cc31d1a774768940d73801b8ba23f71c542c8c01559862af4950b7e21f5d4abc3a1104251574e5597076f971b46c370fb1858a1cba35353d29a23db9e756c57a115539824f5375080990b3835023f448a2314d08c6897da5ae35325f9a6107ad4ca05d653ba78c5769e51b368c200543c2a2884a2d504a73827009d166218a981189b5556b38df395ae007772c1222c3e2778c34774c87ae0931bd116c82ae33b3454808e07cc5c6d16c5108c155a451e046260067c6fb0181ae084588017fdbb7ae63e96321290bdb4b3867074e6e684b700b7d5b1074641c5702e287d257b8a54597667c1ccc702f735c30bbaa84bf405123602572962ed89c2d7a3817ac4879d1392f9199c003e63666f1cfc6f91cfc9386b18615bd36913f010270e8a4a9a99e772cbb994b4ca926bf8a04cc1c20c885d2683301cd8c7b381190b0e3dca0d6c33fdd49465fd265781a16fbb546e9b6c6ce0462c604b9fff09cc2d4608259284b8a83a877b9fb18415cd60c37b0b3d6a48c803a61b0a5c9675018f64a013062440f0c40c62055cca7bb6cb9a293193485fc529922478e4c620a73144a57833d3b5b9bb222f2f4b452447cc06638fac1b4404402449a3cd60bcb2fbccdaea42086682ad7f972008276e4e5449217088b485ce6757eb3410c62796d0e7a643a3c72c612ab165475f6e51456d498e858aff563c1f7781035fcab3c85cfa2f207d1e4703d3015e14689fa0c9b1f57984b678baa10cace44a2fb23bc1f317d5304552306183435c62012b2ccdaa9a744575f959b57b9ccc2c28e1a94959a812da6f259d11479fbbc97f54a57a986be61f49ec42124da687221aa3eb3b2c0298249746b20cba291f1633e784608d5897da13a20ea377df6b95198132a7fd526d065250f97525d809bf9cc7270c7b723cc95dc9c8ddf5113ec4c8b3cdca07a7242034741a3cc684a998514fbccc435a8a2d92675e6c3f252a7019a74818689574c6ad907080954557cc12e1d47ca23240b78c2301f39c78127180c268b76289132aab01f457adfa649a4324a08e0bb5345cc2ef90fe6e33588d6adb499b04daa642fc01f5777bef8a7af04179630619d13ba0991cb36e8c23f16baab09a72e7388c93385331f7b5bdf420f1e75c7ad28c54df96df3f1086fe4120843af7c7878b4483956b022ae05112253b97e6a61780ccf4047589ea04000d57593622983e8187a6232deeb59f5e147ef1628a9f692b8bccea069cee6f49533b7301728a3ffc85d7db98398ccb38523254f843dd79bb58b4796a1fc6d68095b8faa7ff9381d01d61bd6694f2c225c46086031a86105661033948c29278e422b304dac9817401af89540a29a1cd6093c86a3878c226fcae156b85038f4ac53579143f2f5854f825b0d45bb974b724368814a9487a60a6e41261470935a90ebcf45b53279c67d92330556e99606dc22a2419021896b2eb750b2479aae7a706b1bbdd9514173f23dd3066161a0af8a6a9ef6aa7efcfb1306b9c421f63be2e376f747731a233a45a8309ba8182d24cf6598c26d65c89da9c9e9e6b9579a4817552a8d355ede798e09781b387c9935333b15d92998a4c736d266dfc2ab61708fcac7b821c01044492f7f4bb8f37b5026790f3a437cfa63af88341b95a8899ad31b37491ce3e42fd9b3701a63d537569b75a6b4b362c14f1b4ba66ab7914c9900187f105744df0b816ba22f5d471848886dd490d5c76169a14af42c03b0b56a7e26aa7ac4e99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 +ciphertext: 61571d32369b0173448b4bbab36ed34c32b4ffec1ba3370a0d7f9d7bed5e5ad086e8bdedc51267f09f4c9e442e42a8cac476db901c5cb6d9e599f64aab780b6b7fc119dd1ba42bff5b16f54e9379886baf6cf4966d99948f0392ff96fb1e027af8f750487b4bef68a50e6d383e927991b6932eb9c0435895c4823e9dc1f3ddd167309180e82da6a309be4debb3dd34b86bb545a24d20971f850c6ee2d21ed70dca709b78e43bf011ae7a00bd916b0e5fa520622614b5c4d0b8852a72f1231bd63cf5e1b72ecc8b13a26a9af8092852db8a3ef4f9ccc31248a5732a6744835a9554f6a14f8778ca9727ab30efe3cff4f66ac0510262d476380239f9aa249b50aa6297e5efab9e2f407559990c60e3816410912b0cc3d480d54c28af0b81c921d9f2b79fd3d22a33c566930b4f70cfcb23196a9e14b9bb3593a3f995bee0e9bc64c415ef3d9b532d531c9639e233fff5c5360b7ebb8ea11616f88e1dbd36b6c3d9037df99f265861b62ae4634b66baf884c1b72f581e4b2d5f1fca24385a76a998b42b5b9a094bbac9ffef15b795fa007d0840d4755a7bba1417c2e09095c5fe5cee4ecdb2548eb73b8d6296a2e4303e79ce65ef9187b7e7ff9aa087e52eff322f7e4ab56fcb8f0732f336318d2dbc2e485a358e36d70f91ad7149f6d7c80401216397f32f10928a0572896583c0e0e2ab0b33906cdc8b59a41ccb83e4ce9e1ff09598e45c05965b3548f5233b8ce34456a373f7ac51547a1bfbf91ee1947fb2bea228e76a46cb1b6370247adfc245fca831a0ecee168e16e71f87faf6c43f3107a2183d4e5b59052707f4bc2075730986d7e637ba5561feef9cd68951e45898b3d6bd107f236442cae0bd583904f53008ab5d291167f6f53f1e4e4040332938fb59d8b71a48b7274280c0fd00591b2140650b06b3a71efdadc63bd8a6b0113cc763fcc97f367f6c57e3e4456953b667f6b2f98adbcbf85d1815a6a7491a252b6c63c40674fc8529a263f64218b7f88f86fdf5e770e78743ccf29ddce1c499224b0263d080b7ff5174f332041f94972a927adb8c6b9bbda97852bd077b8958e83629530ed15eb82f46751d0c8a01a41efb9bc6c3d989eecbb66719746e218a9ea7c988efedc9b9d9cb42595fc3e836b902a1281a823cec78d6bcd9bcb8fa2f3e0ed6139f007e65c9b380f635187c66d80ea2d1ba706c7678517192bca307ab3bd796eb48a58e22f5caa6c2dd22adeb8a52f0e176d54a3361d0f71bcd46c6e10bad4892abb4b9bae96ced17e64bbf8f99f7ee31d18f635d2e775c554a6c5f0a7545d9071b99e35d0b3e6a943d1f42d977ece6303ebdc53f4f168ffed2ef618ec69967e376a111c39102e9a72c79ddab5fcf5f41eebfe9d6558a5d1e1fdeb7902a56cf436b1449e1b8fa89d5e2c0ab0d3343a84346ff7a9255088fefe8a04718c4a7a010732418694cab282592804dd6b808fa66c869624edc3bf66ef4fc81b3271e6d20ffa7b17e3c7df0c1d5c7f7324176770f8bf89b8f127308fea0bf4f42f363eaa11fe83e790b493117da73032446cca8bbe3ecea86e08ba7bd64f09f48ba3106a7a8c30ea9962d2bb950bbfc4ab12e0b7aa098c763973b7ebace2a7541fecb7b380b84c6ed706f0db059d952f0b3b25c650b974ccc2afa8f53ce2c746afc6e51e482f8d38c7d51ba2f304e89e4b7f5d3ab0784d891aa20ad7fdb03e718f5a092984a82b6bfc8f94c3ad1959d59fa163deae47091768e923f2aa072c8705f19e3de919598e85f13ed240540e329faa942d60f489141e55a01c49f69ff1aaa6961b867ae13b77325ca8c4fcf9a85aa1fdcc2f35c94ab7765f3db7c1502ffe33b73046238d7a38a66a8a21cab1af9ed6d46c39c8d2806ed98949e60be6864a277da88d93fb3ea64983c8d492552bf108b6d02ae15d295b3e071ea002517aaf1484bfe02f20f9ea52a4761d7bfbf220620ff5ff5a5728251f31f46efbc5526f04afb170766c06c856a355e831ec6bf4506812711314c96ec4ee7a25243d96c768048b5b2a527d970519809abfd2f0ae56e0e4b20dce86f28aadf9eff31caadcc7b4b52c0f285bdd59ac272e7a8a900e346612e2745f51700ca7694e4c85b13e25fa4380d6b4f21ffebaaa63aa12e3796be74ae4569ab7a19f7ca8adc75a4deb44281cad9baf579ab7e1848a30b734f85b9a2e335101f6227c9545e438e84305a50 +result: pass +shared_secret: e35bb159c5e2b555d89b163bbb2145638ac948d0b10efa8c4f1f385fed047f87 + +# Official test vector 79, seed: "7f4a56eda151e7b097cfb8ef980440fff707affba91867c89522ced6c5ff3bd7f5f00bb49ddd615d9361a7e4efa42851" +private_key: a9a63209470b02c598d426b60572256c3a610ee70e65d20bffac56f5371d896255fb79ac3934b43c78ccb0cb8ca428c975e0be2e901c85f92950ab2e2e30b75953656e87c5107b1ae0b0275c0ab1e0a9019b3681e0b909ffebcb467447ea7c8a4328c7fd485f4a6c6aeb6c730f10ceb68c3a3974bb5c2a37f3c588e6e9058dd458f478b702467155d9a2b0d28b5d60bebbea16924c22efa742f59c10ff235f3ea05c51a721ab75550207b3a6f36e34683e7cc5127210015f20082ef4aea1c273ab2c1adbb235ba590f027028313b9fcaf656e4747d0461422efc565276577720223f8600f9c3739e185c98669cc75a282ab8a663285afab5b1b406818c19508f99c9f35a01144a36fb8a68f12516b7eb09eed336bb0440a013bf78c19ca0f11257db7751e5b54033a74fb5ac24d07fe2a547a0f9882b83570ed29e2ae403eef911c3827cce4a3b926b4c5fc579486836cd9c78cb537369d270798aa6a5707a28a2b48a93302f4ba79c8882e23256a335bd7674612749383e8399c7715bf53945e57927c29b2d04481e43e8a91d58511d975bef95a304f253f9027d2948431da71b92c0319b9512b5cb7dc6908a9fab80d0f25f18207fa0323c7951ba4272c053440d0b9a81fc84708643b1a2880c7272a9cc0034246430cd396d4d2134fc1477aa0261ad5595a384cf19a6c37be499274b870ce21120033092e70a38175388645c86692c5e213a29c910323270c790376a19a3d11742376c797e55628adb813aa4ac10d2659a42a3fd7aa13c9c67cca92d0bf0a37fd093a3267892bca285c93c45ec65d4e0a63c3bba8f0051f35a939f0c11b0356c160b14921b4aff79a127b35b5a27c431252abda5a570c48327fb7204d7ba38a79f34a15ae5a2750e27a3e62acf8fd87329b78e426a1bf91901190a29fd820c7656969ae737044207c8137d8eac5edaa41b606b257a53af4d0acca2266618f081d743ce9803c1ebf29afe0c24ac83bf3ebca2bdd35b98355260c31819d7c4ca9c5550972b34ea388ec62a04cb6d06f083b06c4850814b1b4b65e3931e2037c4d89ba1314ca2c47b7dd7a06f11150bc5188178584f825205b693cbcd51612c13385c98b57168b0c4f9a488a81d31a3429968310496a665446fa6a988b7647b95ab582193543906b274cc73925073c55532d7e9af4066998edc208aacc5a0e23431255f1cacbfb380335046cdaf416417b80fab2bcc834bb9a377709069a330f654929c39a0aa95126cbf26fc320dc34fa8eb706234878b516ba9854d2265acfe5ca3ee0ccf5a413b884a9757608453516a524565345b0290421003e71ef631266a021488303a56998505cb4020b1c38c859f33d914ab97a0bae13f620a090f80382be3a40efa723bf42fa10aab9651485f8c6d3a8621a863723bc4ae27627c18287d0bd01b8393819100cbcd28b4173c35b0d874dbbb4e7e3793f16785742c282e590b4b4960c8503152980dde8b5cab7186fce546a8642e7a43a0e939c17b25c8f7ca3b15814ebc91cc213920bd35848d8b412c0269fbd59f74382a27206f2886b33ffc71cb896f225170cc730e07092031e60cab064be4e005af92428b8bb522237413e72b18949cb06588db32c5b53570a93796ded26a22ec8e27b9a042795901b97507789905c421b3e1260263ab704925c7d8ce3393ce04a19486559eea554ec40361010b73544c590147256cb50e7d940e9dd859ac8647f418548270941a53bc4d126f050152ae557f15756562c0267d26c1db4313e5ec6e0f76a2085a77aff2c1ec5cc4d6299591bace03b527f3fa71d9786dec5c9c1547c9e1665d707b565bdc93f0a0c88ae3aa5a00975d136a64a375f05b9e4efcb85775627619a04000b1cd518dc8854362819ca583c71f4c6cbe624d847a2651776672501a71e3717f249b5a7582583b18f006530feb7d68855592026cf6f52f3640ab33032e7d609fb8d3cfcaf15d3abb0691e478d528af606014bab3c15ff5cac8c774142c9433d6bd192676cc4b7230b66ba55a50426c1a47ea6118b4913b46ba3f72255689416cc47caeeb470f8372dd21aaf34687bbe5a66c402762b64b96a42a3bb47d14554c8dd4c31d4c7c1c8071050a41df9a1377d6457c341f6f1538fc74247581640a505f85e151f1775885d7b655a15b77118695a2bfe69365a4474cc5f1bd3bc30beca40fa5ab05198b708d58110aba64fa4a8e5f955bfd935530b95f16ea816074ac23f8435eb22e85b7621481444b699278082693f073d623c99764c759aa0d6d3211fea1a61b048519e142eef86ec20430812c26aa3812c42471cc8799b80915222111c96b09ea063518c42786569101f81eafe3229fd85900da5abac8a84a688bd58a03213ac8019929e089a24ff8c712a1751856722fc7af3c57bbf95c77c38c85d3e481916c75ffa371d2a0c583b03d301538cf49c744f429d2c80e1ab13c5e126ab6d3ccd733177e469e6a30cbe0c3212215b66f57bedbca118be24c4a3267a1e65c8f924588e9b10ce22157650e64314b7643136e87bc141c9a01dc7b746556a1ea01f5aa8d22671be3177bcbeb605093a225e1a847c6ab78ca89c4d3a4a618932025aab56646a974b088429e182308dbda27fe6a0a7f5a6b36d681cbd94ec205a018319a89345ca5715ef79266d1f67dff2a1867366d14bb60625b9883740f4b3627ac385fa728a51c162401d86c4f2385bb9661ca891562523a7a66111195bacec69abd4c35ba6959397664ab56a621a25b00c5aa2c0793487a8b1b5847a29844d6e8cac42ba2aa3586ce117b010aaa324236855771cc999929f0b948c671b4a7ced082358fc94147f86fb01c3b1210bfdfe266d1f60a72baab460aa7ce7083d4b913635332cf559b121a26fa643fbb7553781847787c8d78e9662cb82941627bc863bc79799d4681830d3b41d156384f157e3ad27192b92e47c106ab6c1304a3b56723162e933cc28b220f45cbb9615cc90aa3483cbb9b510e7aecbd80b28ba3a51e1264b6c6023c30843462f33faf090e43555635c674a80679fbc88270ab53ccc83b79673e296a1394dba0bc2b421b02a0d4213890d0093c19384298b039b5b8f4f61a2ce286bf11b9a6c164bb5a269427999d707c3e62ce88d66fa283218ef393a4ec7a35e2a927b92866e5976e1b95122236c2800d2b4989e0759ab8bc1f37da21288ab22fc4a13bf8068a9abac80c814d150885762275c638087b643b60b4673408869156d52ca257ba50ff1354f4164b4d29069a99c7805527c7674c2dbbcf26656d110823f082bc88405299e093195038f7562b11daaec75668b71244fa6769a18b2d4643930704199f0105082ba91ff44f7b6bb339f243b524979ac51fc92c6b75711193fa29f898141a6c444e2850f03353fc6ca27f0023b9c88f6c0b8aafc9cb9981c460e2b17d594c7a60b6e3451c9675c923a7b1645c4d3fb28b1e42ae1f93090b86659e1a7d46183d26f380a2c046d9028e9906cbdf1ab605367be6a5609e79cb8dc349c739b7d4f74007fa69b9b50c94223e214509b2e057272476b1653d90740b0c059b1d2845ea9a57cad384a2c7cc2b926979f60fde47bfa01a217cd3c43bc01aae86642b84b79ce58296700427c78b7f32116823ba964379f1374e4b164eac108234b12139d580ec4bc11be3b62442445409204e1a9459ab3d7d33815e76589ca4009b27ca2e6ca470b61504569d0e70155d988b80988cda1c9ec0da673ac2497d6a2fe1cb8539f5262bba5104a4cf7659a616755cbd6a1cfd42a9ee1c115158a66af0bbceb149dba4af4ed2a128a988d8aa5c97164be56483e1816e52402b908b12429c505d0a3a4b2366a7bb38169497e7ac0e3ca8ad8f9636a54cb4b4d667d91752d6658a08416d552c3ebee80a613c41de4478611598bd05b34a66853b079481885225941beb4b67218013a3772a60e55aaa25ad44575f45a3178d37af2786a76e20a5a8719d84e693f693507aab4cb43c55a64339359b8075a643b7a696c373144a743288c37ffe36c454a45444c2a48c3c7d0415c125d133670ca1709c7f80897751fc8d07f30ba0a3b10f7110b03863e5b040b7942c6a527008f7952b89cff921280296955261ca76f50d1dc0a0d2b8b682d8459fec291c27c1e281bbf5a17dff0c0c75a3bb4c987f30b175c293931fc444728ab8590c6095c60542e6bbd2a39e324b96af61328ecbc54da1a44ca7a175c61a131610bad5144b702380d45b5df1622f3b2a4e640457ac830c8cc05ef95b4429b599983bab346a47443575087e975a57ab91601ee65966b51838108117934a5f334979349e3fdb9b49ca49252a4214b6e298c3b12e5f6e85ddfa7edc01a03b27468684972318831ae360d6a628c3b1b5dc926153f22a88c7b953085255edd2a72799bda15e49dffa9c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 +ciphertext: df7c965dedf9efaf8469f3a6b7a1a1031590bc2bf82f05c498d073a2a4c604ee164ae8a135f351723714a757517c138457e6272f7b7666e59a5ee0bfd374bd364d8deea94caf7d807776ff1af1210612c5a95a8a8deffdafe4a5b6e1aa85d79808c94f32aba7b9874961e64639b52a790fb5a24537e70b6a0070065d51b7684425558c34b044a598724c226a7d1f45c8a0f4fc1c07e7ba45107820524272915b31a1ea3c18b890d3057028af0018e0d8f50214a78fd8c666e567b65555b91a7167c8c3e738444377a109742129cb53ae56dfd923d3b1aa40e4bd0c9f35f1346d622355b23bb69f4fc09f28adc5101ff08ccccb9ff384a40f1810fc009608ae901913f8f7e3386d63298ae6c34bfdf4c17e8069d72a8b490988c9808401c7de5b804733ddadbcc97d9f94328931d168380182d823cbca3542439ff2e82bea058ffa5085edfcb9fbecac507f50922fe1fac0854edaaf5b003f921ac0f95b710c924377742ef3aa4494a2a65c561754145914050df0d8ea009366b6a75a40034fc992f59ffa93921e4b8db5e46116e04f25b648118f7a5e226675c1e25abaecb5c2492dd4092bd2334fa5a4a14c067350cb64f566c4997af1f4f6901d70c2f9c4a3cc0c6eafb6efd830487a339c5f63a51788b13be38c3ba4fac0a64fe7e1bf513853b785e98283763ff23b730168d1debfd411a6d529f30a93b482150995abafbb8fc3a712f32127dfd040459e947bcba53814bc9b512e857b94c6d1450d26fe17674b7db6cb33afba1717ec003642769380553bec6003eac872b8c3b3cafffdb3d7c0601d493f10bf5e6792e9a49e86fa7393a3c8bea7bf9d12afe864e7201e2887053b67ee445486646981e0bf3e6d93eeb178f6f5a7a10a3b596168ae1ba4c1f093acbfa879331f4483657e43f9200c5aae4b0557a94cb01bd9e2dbd6cc0ec6707b36565c0faf3619ce98f4ad0866f9f7314aa5996383d04fdb08340a889f3478dce0d0a3c0fac862270469a535ae52a1a06a95a58ba396e1c8cc4d7da22fd5f68c240653ec20c39f705c998bb37ab0e173207c49970d6cbe68d74da764e70a0432907cba6d91a307d5e57124d405c1928b429d2ca5d6e2d0082dd0548fb0b5c41dc65968d129328935b169c7b8d401d29588c3dfae5419c4afcccdc9a3bcae8853fd47226867b9f864dad3cacff59cbe536be7e5f1ed1a705798874db514c8230483c4dee889acceade05970292e7b649ea429420bbe0cf166d4d022cafaee141fa08baa7af787cf1daaeae2edaa53f764e6d233e89f770c647473823b0db4bfa8403655d1734b276d09f58104b5892180c7c6b8f818d9a924900ab3c6cd6945d5cae4b6d876ca609839a416843d202d585ef7983181df3bf7040962f266a2f09f85479fb8f67acf20c306cc1bd191bd956bb99058461e9361812b14562207ebc7adb0fbee7dbbe7f9adc9bae7cf759835c780caa24c69db6d7922aaf0d9174f62d10ab7d42bcb152991b0673756b522e95a0a83231797dba4c9f486da9667506e37cbcc5aa42d54a6009cec6da6830154a8ca40aee3d4e2fbc4d813036500fdf5b2dae8af33cd86726e8b344a2043684f3cf7bc991d86cff533c6687df082b595d4d6e705c1b0aa28645a1077569343aca38f19149267f8e8be8a862cc6dc9370528c544bc9aa31898906e5f64b2db77e3128f5b59adc526f6f076ea70942eb44a2d2e6151db00c3431b39bafba841d40a2f686155f588e41fb1dcaea9156498b1ca82f1c68c6660abf20c6deda010290cdcacc2990132483b2e4d90de9ba0608438638c459038773ea3f1432c4fbaea491d5513b633a04423b60b3ee6f920ceff200fe71a8798adfb11d5607c57dd6e53e7aa8fe80375e2a76f82c8d73775d1dad6080a9f15eb51e2014a912eed3216695270bee882eb0559141c47ed66f8646fd3259297e1daa6e1b6e93ec7d170d4c818bc53b01744f4fa613c4484f1abc0ea225d7c15a93ab1401346e72baeb992b049bcbccc641a142ec39c6cbfd554f9bb3acfa38c5077a63dc7b2912a1eaca455fa295f9377c993237f44263c425bbf8ef5dedba0daa909f662cdeccfe2c67be4d03ba13d3090796db0461cf12256bf65e849e07a808d0577c5ebef283f9000a0b136f50e1dc35f29b01584b2285e82b1862779d76c59a8ec6200fd4901996d18932916c9dea3ac8ccae015136f9 +result: pass +shared_secret: c10f4e51bff1a6f49da4cf9504d8c0dd1832c0860090fa892d5de6be27102354 + +# Official test vector 80, seed: "09fc004519bcf85b20d25d314a0dfc79e00cb6262a7dddf9c52473641afb8cfa0f5dd5f53558184caae9ec34b459e98e" +private_key: e7831320d38dd5629ccd557808a8b263730777d379caa64e1da51cd8c2baf8ab930118770cca3dbc11825c867af4421c87541c5a6788bb93b560948dc8555c8caa6597441e1a6313ac5a8ecc6a0acc25cdabb2c59b49352cc589f13269ca38094d2a2029b070e989b0a2d15332ba43657b23f278b1a253c4250b2210b0905b4737f678a83da40ca296bab3461b58c1274ba0ce79e5562723242ac1cd86839e32e4302e84b42bd118fc4415b71c92e149cdaaf06dd12837a5c03aa41b60178c1518130ac4c7017d78c5afd922e83ac2bcc3c3d94b6d8dc8062cd54649339ec4b75c49704d2e5c86aaf48294d19e4d28c12fe45cc56898c630a252e09e6f718c36c71cf9b38d38a3a9731c4f6f02528107c745277841b29d7b93bbc4b5c860147777f79745ea2296274856915d06944582055b31741f291c66df5c4a2f09351311a6d56a8572aa6240a42be432a5e4d98cf229195ee0a72f6c67cb4a9c48a9932d36cf70164364988270503573e43e2b730d88f94d23315b6848549515104320c26e83206ad5c33ac98c922b6bc0c961ef2607aab223a4fabd82dc7670fc999263991612440d93a2e3eaa8e65961d441a8548762c84754fc4880da92aed2621876294d1c086efbbb52cd252e2f14853f6a2b7d0bc9e1f104b9703a27779733049013da1812257bb8db3857075b665c8e7622ccfa10667de3ba468808fba7b6dda902a1337af7ec59e4aabee16c8017674114dcc2a0571730c14a9d07485648228ff8528c155f6266b79b3c76a8ba2ed133401d6bc56394785089abc368b9d05b4a1165912360bf87fb6ef6f79859f8187151a31437904398c997c30092ca21c43996805245904a0d90ba8658309be2b4306266888f5564b631cb250569aec1886059352bf770e1137f5287058ba78463523c59f14d1846b7e1764aaf2210a58990fed7528bab242ee02949539469122dcff23f921b3a0746b44f64a7aaf81f99954ad88b67567c120b191abde6c7d54aab5ce7bc87960e2ee2618e24746f24c03b153dc988b0d3712c42d20e152533bcb914588a32ffbc2c44b4045f07ab79ea5627045f45b11d62d2a3bbf97e57e8c27439418be800a667bcd35435b6770b8223ace5284371f5b0d8930aa93b8a3889984b8065f408bafd0c5d5df30cd3e5911d9845c9f687980a1609198dde43a52ee970867c0addbc2114d52d91073d6c95156f7c95a40a575ee07228b22bdabb0b16729b2266b13ec29bbc70486e13612270541102baf04a96b24900af60cdaaecaa1af07459f554b53b7806a65465fa8ed5c2bf65d32410caa887a90527b82a9697738cc71a1926478bd4cbd70067a50479058bbaeac05698b1530a1774c0f45001ec718e05053da12f24115acdd76bff98094f8bcb45960e635377077b6d92150221c87b60994bd7732e24c34b55ac1fe660450af46b3397a0c1c577a30b2fe1c263544c025172164f7c5620b5658d34455757c920f229920729264a159b20658a75496c6bb48fa9090d88be51f754988ab5cc774d526a1c27361cf3ab173326886eb0053b082ee9279c27a428d6f7cbf9fbcc15ac4988d13dced43e0045167d33b0aac4c11c383ccd1025bbe1c83bf5c43ab6836328959ce979c3914510027121a00061e12d1d831efa030cddf9aba24754bf556a99f65109832ef12ca41ed9342309c24e7a09cfc93647c6cfbae5cc262764aa64ab49132da03a6e7424c56ba49bcad27affdca4b88584b74c0623224541b82419e563db5b90ab40787f8425e4b38bbc573918224c4d73149bab4dbbe350630229a612bacd4b081ca05eb95a62c50453695a65763461586c8de2934d31093297ea1384d3c2f2f811bc75c960237693652387a13f69629a3fd625351927a9658bd4125c713177959aa82ef3771c03b5bd5805b7d56f00d86fecc7aa29a7637cf3bbea377ee7b9b1f94836197a718b097f510c81594a0e11381f01584a87419f51f49c120b89514754dd85a6be48ad947b81698001f0a256f8a92d09a1a049c0376d236a19f19bcf431a90f94b028475c11807d14c5562e5747f1b8db5b072017023bab895a07415deb89cb3cb8a9115b63216bd69243186901ae32b24402b88bd18cd03b2216d24928eb82e385684bc143e0d5745892b0826f89f9fa8a931596bd912527e2c965ce3344b4621190c106f5084836006296c37949aca196c426f4783b65221b9c50827c85b7067a9872a6d9277828ea9385f9b512a8a3e897628d1aa36a5206b35fb219ae26269126b75590b2d1067419b27fa6852a3552d6ce48c9193c96a3131397166d47c53eebbb68b949a5bc3c7d585027961aab89b38f5295ce7c60d3d9009508769ee37a48de0685b9228d998b883d871985108b49c908390cb68147e8bc561df29cde02b1ed5236ed77b23b3f32e687b859dd63439890d8735640f5c073bc05cda79603cfb37fc5ccd28e98b4eb169271408a1cba57d21afb87c97e2044766b38280b6911b95725d5a77327764832603fe771aed89baa1c8b2ff49b741081884c6326fa0693fe64551402301a0552f49035a262e9d047d8a2075fdf6636c726f8b6098fb2b8f01c89e87478dc1112c37f1b857fb13cec53673e297b8aa9612d26a4cd0c6168c9dea407133acb939d06a7c660581a877f046b9b1138f6fa6156be2a5bfb23d04954fe32b1272d73e39c79094864cc9e36e46e9c8f1db330c17a0ecbb332e385769c4c0ace7c0b0d49fb89503cbc13ff3a1b19f421b80855fcb947cb651ccc0a7b55b5100c09aab9201c4ff8c56a2d90bac255a3665a731d07b8ad829f7a7b556ac12acbc1073a40b7c36059edccd97a50c493359c8ba390e3716921a69998b9b111c4dd283456f7b61ccf97c1dbc362e2760e2928227405e449c126d7526516298f6315302288043085808195ea587118d731543f09479a2adb96884b3a620d4c86123818cf848b295eb0035211bf614b077871db1d8c779d61e90257730e47bba178ac5e28b8e47794517727e4049dc759ed5a69cf7c66de05c0a5a00c366a87f7f2914e1e059bd1921eef61da9cc201f016f1cdabca2d2cd99e1884c114100ec5fd0f415d6fc6222981d8e4582dd138d71a368bd5590645359cf767146f2cf5f7a58e0e1becadcb1da0c87fd385c4ad15e02836d866025d0d815af61b564e803f0f0bda9a1ad0a3b86dd9a79b29792a713c78f00c55668aa2a0962b4a9be8bd9cb6966a054f0ac39182ca4d54fffe197891b964933aa8d60a87ab0af08c139a8e79b7a5773cf189caa615f64b973eb273edefb27be439ddff2a1fdba7f2cc3c65dfb0d0cb177b7ac49ad1b4da0725a3f3a2741fb2c82347dac329657c9bbaeaa948102295c1828b01c22ae45cb0e0b46a68837ca5c8639ab483eec5b4dc9caf028a7bee18accc402ec6aa57a93a1c53a145e923194341bde96296857890fa616d1bca0cadbbba3e4302e55286c58a283ca8d1626515e6a84881aa692c662a3567cc294a23059392887ce7a835f8b8030f5c1060518c71e0c5621812d54d50043b73182fa67de92768c63c4a2c562ac151342fab8fc9181be82301404792a94258b98411ed093a9121699ea13fc822bb5a317b55c1167ac12bd8c3ccd9bc743a634ed6a0961e13ad91a779a242dd0b9b4b41a5da11cbea085032ee2382c4b8ce088524075cdfe7b7c06cb6f2ae128f4f7a6c5d58011b42b8cd39a8a0aaaba14a0ea8c9a72f322693410cac54c3ee5487d726acde02f9cd0b027844ea1c018e2744571c3a2c36b4e0da088f09ab939152e30696cfd3473a085be3eccb53eb406b66c95ef8b1cfcfa1df8c8238b8c129abc9176e0864415852cc8ce13970fe8a76ecfe246800997c56668af974605e748e3054700d7b75fa182278309e41cbe5b4a17696c843fb4ad72471bac747faf30c99d2433665433ef29b64870ae8a3593845ac211ca4af0e5aeb9b8afa5b4419559502e834f993543353835596985e31529c1482d0fcb9c11a1c79a704db1d531bd0774f91b6810b98766a83387387c0682584c94793fa771ab8b4216455f7a117c65e5a481e01b5bd8bd0a9263635815f3c13c7c6740d2d1778ab47d56c9a37ed4a660249b8a4a02cbd716f6a09a646456c4b54cad68c86f8b998855379560692cfa68b5176309162a7a506b28e042c25850a7e6357ebcce387146b94a09fa82ad2cda8123477f926757d552929ea72e379a9bb997bab0d1aeb5f02568e7715d959168129cd58048ab1299eec754b9080e7337084ddc37c4695b75488effdc370edb65655231ef1091d762b8ec53a3283b3f7bb5114429c788a2cbdce1c0454466882448990d0c963c4dc08e6955a7aa5238a6347a0d168a1ab143347ab4c4e4ad5295a60c2d41e0b7a7bc92148855ebedb4f2b77da0c706a1bafd6429d55fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df +ciphertext: fab59e039993ccd4f50ccbe8c886407e46508fc6d007172a747786974d2eed73538e8c47ffd4e3d961be7d83ced37f11f3db879752f36cdb659ce2b77c1c3096a6406c3af929526157cc49ab365f9f5fe8b60c1b67ae8db2aa260485538ae844c06a121606c3422910dc3afbb4119bedd73a800ce1cf1ae6a4955367a7dc994fcc653b4f94652bea15f60323e6f2dcfc6fccd1f79085a8b846a0ec0f334db86482b15738f011398bfca13570f97c2e5801b60a5264072a7011b98b9e1de2651f78905842fb8b22da803f03211ce0e4b39c6ef8c7c73e611aa8e5b20c9295334e9319c73f5f78956e28a008e0e681a193ff229f375ddcb2a9b9a750bd97e055f6749af2ff6a601133fc7a069c4f72f5ad4c930b5d37e91b208b4e36970087ef4200972d204e5a3fcad1f033035e39202dabc309263834e8ee8c45f6d3a8ce7861e8c639a61b0a12b950525bfdb6b45d813797bf73952b7d6be33c489a4be615bb892b171c3b831d609cc7a5326409a80b755d08634ba177a98ebd56fb89b87678d8be5bf508dc131ffb01500dcaa087e75226a6367ca24d0f7f2f9d4a8218e50f30d9d4a8eae36bda94660c194eb4fa91881632d2e8f2211dc28b7fa24766793eb3c9a969fe08c7ab94f655a7f7ebc5599a766ad576da9f0c9bf04df04118e6511ca541512f9826aadbc59c431fcac0dcc1421cabd3ec85ce5fbe31fee445ae4a418462555a22ea3900f29ad77b231e2ff51cb4d3713d83ae0d5581c8db197bcde4ca4e42be102b3bd240694c82143b683778a868d574204a1d02e34f2fe91130f283ac40ccc2efe76bd100c780914af245efc5483ef94965dd8e166ebba97883cd7f1ddd5cd623e5598509c858f4249f4673bf6a21e037b6e804b7e2508dc8ed0cfcde042b5f307c2faeb68801ff7e90738643af5fc46ff1118661341caad34d327e1ea28c8bd350bb78c277403129ffa723e6839f0caf93e9abcf672f8f4a074ba3fdf216f040fda8458a7d9581f9321cdb541cb61c7956a3d75f279c1a832b0c656b9de198ec59ad87ffe29f31224819a7c57c178e52c7209110fb9c0e63d2b99b8257dfa6a1bcc6edcc64d7a64f3840fc2b343175bedebe7db7aabcfca4bcf744c7a0ea8d2bfbeb451453597ad97f76d553bb2bbdd523462cce707cfb3f2d0d4bbd9ebafe0bbaa2116b2f00d6d543678575a1a86da89566974324f6fedcee53702d341aa57e4653757d291867c2e63c8e1ba98942193f60d6da8b7232b672835318e9ad102eac0ab89dc06cd4dcdc74f19848dfe0ea55b4d9d59e8dbc1a53f0d230e76524c658f2e12c01bfb4ddca8ed4f6c21b2204caec44a80b5a5768bbbeb65b36107f34f3e786152d6e0d33b11be83e255b541cdd1ae99dffcff273c55b665fa09d7a89de5bea528e6569e525f683c32a9f01f4a8349b91eae519efb2d5da8c111886de94111dc6898527ec85181e974fa77130ba19e251118d9dff1149610bce6c8e5507a4b266859c2e71cdeed75437efeb9db9b6e7a201f7a32cd5d0ef378588cc6cea5387d3a89d38c93fb3f2cf990796a23bc73d07f427e90173f173dbdc97ebc03a557daea271d2ea56cbdc5f19af6683e749a4e25b52d876fcb2f05a4ab8b616ce7dac1dce610afeec8e5fe12c6a703698049a32fc3532ebe1520d95bb3dab1c89e430d6a4b87e7520aeba06cc7dd15ccf6767a9ef0bf331f6869625c877b6986157f39788b4c06e96f5a380f352f28cb62f911a72b5eadec6ccde6adc51f5d18e56629c831972b3beb4438b8cb5e4f64c05e841f199459c5557d7b3a78ae92eca093f417131f237e4a27c0f9154030e451a9a587d95e6971183e059ab37ecb9ca97d8ba4a945dc35c9a21a97fb7c2ac30646e8c1e7fc1b2a7d594dbf45b6060073bbdf3874d7f627e599491bdb11f33fb0475dd07aefc14909e78ddd87f68d085880e8bddc6b39bb7621cbc686803821e34abf5f82b9077724652defedb728f963a957ebe369256c18a09992de7ac7647d14f7c094bd72b4baa651937da84c137d1f407147d335957a1ebb86e1a25eb962a50159b6637dfd25d5d3ecb417b4c19568af0f6c00fdea172fb7061580363434d08fab0c04c6f3867bda85851ec12558bad21ecea88361575c76e423fbb1ef837bf35b1937bae52eaf838df96106468b8e16742080d4afc19965d4f2ff36de956e77a9c7cdedd7c +result: pass +shared_secret: b515a69280079b7c57997a183bdc160eaa0ecee319220fa690356aa42d0b59a8 + +# Official test vector 81, seed: "e3c41cca6f04cfe7732fd54de30cc5caac93e2f80e76aed7d24a962a3969c1b6a311459a3ec3e510e3e9b1e4291d4d7d" +private_key: 27cb06cadca3f6235b6b59c5a5e7499e95130ab431fc7c4744d1ad414393f5acbd04d15b23c8867dd88ae7cccff7a03122b44de4a4beccc2251744c517f116b413a18d614d5bc371df9534eb76b5fcb13485e60304f02425e37a653c76e08072ae9527e449783cfa72fae68c27e4abcd59ab364b49e6045d764581a9738e3f6443229196478ca629b28dfa519400149a1433b716564dc0959956c87e67e8179b46b1b1b4b9b60a52641971fb91372e6550af2c4e1be88e534108c059217b4071493807e3986d182cbe451047fa4021e264ccdfd89c5458085832c7e157676a649e4533a91904ab61e875ba8180d8639c82522a211787b4a490fcd587d93a7ce8e08dd0094fdff708bf23c35e1b904ea56ce14a9bc5272ab935a69e36cbb15ac1aea1865b7710aa747570704627aa79a1075d8adc4d008d45926b8b55dc12624b6e66f4ce3502150aa0bfc6125430550d595b6627f9ad22243a12aa70b5597708509f9dd09f5ad23a4a876fb251a46f013f05b1884aab725ff1786a4892542c2c0b23150bd6cc3b25427f4b76365193d008a074715b06e713a4e71e3819776b078390b8042d312715b28f1d44a4d540abfdb9a2b3b7660a7101b31030dabb52a05b7f81a488a5e306156a268fd7396d4394a43534d9c4beb2f91686014ee0d7c103733fda120b62ba668f0955db0c596355091002b4af9929384075d6575938468f95571397f8a2f227b57c8599eac2586b72902c698800c78f4b1b99b7284aac542fee229f32a25312f85469f9bf8b81aac6440d4dd26d38c001f2d625d21577d0ca557016405de603b7f26dc7199b300b120a0c278a1475b266354bdb961f5a54a4e0cd70a05e23d7a59debb4134111906a9f6f5b66704026cf033b98c617fc528b104060b8673083490d6c238ed1c943a217533475b5e7c00c871c81292516763b3936d3b99c680695139e6534335bf499aa6abbe10acaa5a2a75f659baaa1a743d228934a129beb65158a04b52c999612c6a8e602afd532139006f386ad51a618702769ece33229187e0f647027420418d560329abb658aaff3a358c5577115f437f59c06d503b154f380c4512d66364c0ce20b5f0a7563626d9f2620f09208adb71b3d91c94a10c4ec29aaf892b8d0991e7f699bddda9c2cd8b96de4661674b400f780fb60921008ccdc911ce6e29a771cb308e86415f4b641d33bbe0746fca69e2a00015f9932af23772abc68abdc5ddae66e84e3826e3cba0a7234df3868fbaa8b2afc0cac953be2271ca2da5cc674569db62a2bc5c5447966a0553eb3a258dfa05ad763850c0ab1724a01f2e2b4a2f3640398bd0b8bbe8af79adc3ccdebf775f2a545a7e8a8685ca73d4c5bf0d788d6a21fef02c241b34f80752f8860249966ada889927582c0f60642b042b95eda965c8873fe8191967b3acc13457e0708316096cb50b856c35a7c19ac64a85a03f9b81e9a756046b901dc9491947c077a05e5d9986cfc3dcba09d02055cae5a47a6969652b056035453c97571138561e28b3b0d0160da428c9104810ca69c75d15ce66b126a27b96654c6e2a0a463d1cd4775458964be2e5a3bec582e38b64c8bb68776c15bc2919d5e99259a68c5c8e42c37b2b4a6b0351c18a09d2378f04403a04aaa7a6ba6589b63061b0eeb80442ada851bcbb5afa1be84d688b3050647530fcac5af0f8b275f036ab0d354991265fd1190d7f5468fc3578e15723214aba66b855b0b5ba2fb27c8b1b7dd37790a8c77120a6c18797b5a920450f87144872d83e8afec5a72df7a61b50655f5081389225235389bf15444c90c1b332b5395796a185b1f9d816ac1b69fd1457e1ce4b1d7071e1956ae9282645b8458cbb8c3f5711e3064a4d05488104848a846aff4c01445241db51b81549ab00230621c8c699fb13c94679f7f51879bc2676973c7418b6d14d9963426819768631abba1db070321a32c0edc95b35c206272946ff134afa2093efc76b28927a948bc4f1931e1a2cbcce18ce9c93c8b029b13291234e76b00452bb3f7860ed98ca0fa2a01a16735272b09c4c0a0b08904f5654911a937f9237818926c03cdb0a98b167b6434a96fe74796ac233716625927535581516ec3217382e61710991003e81f2e0b8d139821f3bc631edcae24cc4583a8abd7e9bfebe65e89997ce4e680ce385c8eeb2862175fbdc9b25dc7724f641ca14b1675e13465d634915593a228c35432b316d295dcfcac909b9aaeba2e93f6028be9045610ba38c763c08308a1d6b9b8667b500c649b94cfa703432f8695377462ec6159313a184f7349be26512759a112223af1b12127f5566da94c8bb19765849f9e849a4f235c9df3783627b3e548242fe2cf506ac1fd09cd5067422789ca6bd3ceb0e516a2e88d0406abe03b65b0f064d7600ddc227ca460cc784652fc1168e8ea53f825851a222eab10bb9c8598e6930a2abb627ec5640d4a3c6eeb225561ae19f20eb6d0536ceb93145c7616fcb46c04b2076b9d8a4013a4bc527848a8972b0b6577c50f63194e6357bb2084fae54c592577d6c7a61b79475fe1c43e70980762132806a7d25482ec2a0e19778aec2685ac19490c303cbee96e2992b836305b58270553d07184507b12c06510437b5c78b3f5cb1b57627da57611dd3361772a213e033dd5519666d18bccb13b3f751901d601ae131ff3c061af87839692967cb88199f1770ad0ae196388ed6b9746fc6e536443afe04a3b92352acc4ea04173d00ab9e3eb9c1cc137b2d6b14fe36dff9591b5300853a349dc23799d8209e811965ac84090f34d36382020ba31531a0dc909b9ed725ef6120929228f48a94a5e04d03314993fc8b306572a4d5a7063110c051011c1b09ee2d09315196f09192c329565cc5a64405c3acdc234acbc0a78e81b3c9523c43a2fb961873eb207464a302d8349ab50167ca33cde091be57801b6e850dda6c5baf498ce1897b247bc7e1a84c6b141fb00286fe864a9f27db6475ed24371cf0c19586750cf72ac1cab46ce08860090a0c1322aba42cd902b6c05f4c4bab667b54b0d5a04332335731544675f80a2ade66dbc075d7a9b4ed924417677b6e195b902842fbd4390597c28a1504e161175d259ae7c44333e742471b58756c0666900cb94d87f73043e940a5733f89ae3e8cf037b83a51b4768a19dd1a96729216c7e317bcbf60b3b07cd82784d964754a440ce297b40e3f8811834885ae76a9605a249958f02d9bf2ef0a195d3603261560593a636b15dddc681ab9bb19ab7ae95d32ea474388d81585e49b463b47033f81964481f46c229f751a930f6a632e8aba8981cca880511164b8f09a8bd9ab8c07bc8a28636d0d32bed77b2cd032b18090928f01e192943e028af329b4b812238a3362b5e2a61cd7b3691d06148703d692080a6c755c560490cd5b47606ac9cd9bdb927b6e3b26d9060921757a0f85a2f82b618bba9008b7073f24a88fdfa922eacbd6631c32157b36150be06d3ce2c4b64410543ccf280143c1de73917b816c86b1a04204a8f3fd7cadbd20b41831c8229788aba219ba59af78388c2b9865eb3000089c6c05c850e91021a5328149cb2a1a27e075a3ec8630d8f515cb77903fb5531f6e05ce984296669b0bfe8af8ae59438b834d4110ba0606ee426799c313233ca9487ea35071871420c6825889c07da0f87f1188d75650e36ad21a265d4b44c01361c0653b55f409ff3c290d2c2c212319297d5aef2bb87164b7535b7518ca14469fabee91c81384025f6914c19018a0775598ad4bbada98e06c87c9af309c73903ae1b84fa9a3c3f668042883a8195cea1fa5bdca59c203178eeb18041aa2e9af770d180be044bab1c8c36044a70e50281540501ad6b165c021e53b86a5f368728e2aeed1520a09a48c1ea0e9419b313d7c6a9e59f17121c8ad47410abb73e008c1ecc16c32b4a46f39712648cd06196ceb8a076f5c7048a3aad37393973b8679c55393137e6b6ba2dea4d50f65e1ef12116598de49260112055f4b0acda503395e242b990398943c18c01cdca993b3c9a74e19ac6768581ccc9a0331c005ce873b241b3e5e497493ab134e18569e80a6d12a04616911f9072fae6a30e529cea1bbdbaecc7cc64a7d655a730335e8a22b4f4250e2c54976c69a161694aba04456bc14e2bf8c13b1ba2a5ac1a6b557bb061805c903d1d1aa3367922fe0c51dbc35da6cc8593b8b3cdf741220126eea9cc5b9c0632f75c7aa3aad60a46afca4a6d166f2b2ac858c2a572e4cdc2d65bca199cd73367b83909fb324855c4899d920a32b3107ec56789d63c25036c35d30be5d28d54d725f1eb3f924bb991cc4c5ec2e36585c0133b82099b8234cb459a9fd8aca37c4249a3b02025a466c0b64a911e75243db16841847a8ac72dd835486e96a168b2f9fec46f3011eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c +ciphertext: 7c00e16d0e64a68ff48151fd02eca316fdb77ed8e12cc3cd318b692e43db05fdeef4ea363e297d9c32f8c079977dd3915db9892dd78cb2b2fad8bceb72a953b03ecf93afb749d6486b15bf456e83d554a45c0cd8d981494a0f40a511a259d1d6890babea2f1c770900c03d66d26331c9fc126eb32bb5135ad7b3b51c70c64923b8b60db51d96f87cb2626626282b8bbf018047e5f3798041f4598bf7f6ca93e0dfd8f7caaa104ded188bb13ebd5fdf6cb21fb9cc9225e63d0ea3017805ad509e7d23e76f1351fdc02584f65ca06687c3db9964151d6964c6799165775f60d4a91b5e8b41c920c2394e4bc587733bda3107aa33a7eed8d62997634591ebb7d69ea547cb2d74ed7a7f6f0d036681e4e7d0d5079e544cb657493ecc0fdcc8942f93df4a8f404a9ee4f41c44ba99ce3f236ec1a62068bfa6fb93a1e20dc2740cf9abd91f31d9caca34f4c288be80492cb589e4b12e4bd73b664c4cc33ed3559325af26dc8de7b0548d4a26cb0bd8fd587e871475318581056c95256fc4e95a84ebccbe9382ee1c095a4581005713bb77d2d19a8c1ceb5a1bfb4005849f0365d2503f7ed6d849f377ef66888402df896ed571de6b06793da6bef4f6ea029bc014065a7784f7a83c92e21cd1c7001770b7781e894b46aba2e6fa40918a805937a9b1ea25efd59cdc26918921b0093001b36877a010209fdd9b4f5c61d4e7b9d43a2f91e72d4b24281151950b73de9de304a6c1cfa8e33cb5034d1031a6ab4d3dbf771c585654663bf592ecde6ad53a5fce007119b5b73a4103134662cfed595a02677b220cedb31b78c3063470b17a56af64024ba3cba30eac461a12b79a9ddc2b439ba2eb649defec5b2669830d6aaa8865a4ad999d8520edcabd5c23de6faf4d390afc3e9978f127d087f14d2abf2951cae4c62d7ab91cb634800c7db777306403c5023e97b3a0fe0aca6466b6d8b58f6f07acf1f2578dc30d283ea883fc3508679806febcee954a9a285830a39fba3781fd179f5068b9a7061cbddbfb466734334bc6a7deee3bb569244782bbd3c78347ebaa66c84d628a0c9b26b6af95a116ccefc57595f786b17967e2a21695fad4e76a51c1f697e8069efaa15bc10bb0c28b468d61c492bc4e037fd612486d746fc2217093fa025c80d87cecc99679887b50e31fa553ea319075ab8a2e27e87a5b7be0d9b0c750674c440235c2ddb8f6c496bd20569b52fd84eb264c67baed5ca95c0dfe125b06f4e68f6354c15cb41514a45a2cc62aa9e2e4a18cadaef473c983b0f952fdbc00cc3d5a960d7644484ba38e3428dba2c81e8c76db05fa606788fe32b95b453bdeec8cc778bb3221a082d453da84fbe4d4c7996fb2c98d2b06ddaf26c759106626728e6db392efa97f0c9707827f7976554d6479413ca8ea2e764d5992cdb7dcd64bb5c0bc7b213cd08d15af938c6ddbd1f2d5a0cfb0240fafdf31c0e9857098de9bb7883b8ae7e78187ced571a9fe90edbc6ca0a250d842b8a2b83adcd32354c66861784d7355c1a93b8b26fb67ce63be71ff7700352f3c5eed0cff007107a47847322f70d785b260f74afad72c98cfa9b495de53ce8b0bfc3bff0d88717ba8c47569e1f85ef2a87302976fdb5d866cb156152aaad33fca306839dffd063386303c568425ef47613a0de42023b1a076961c27d29d258c24246212883803d09e96ae41e6aff74812b7d55d00d6b83575aae548395f9572c90bfafd6370cda88b222a869c117c1d4d8276c176c44fd9c2533fec2d41e0ce343f60aeb7a8560c2241a4c97c1c86ecbb26b487c5be4ae37d69d465635db14037833000389b89fa9721b7fe14a3099e2dea671c1e63452478227c81575eb229234c469dd52494607b004d9380bb003f94c98290020569c244958716e584ec0eb7b4000f9223eead95e371323033a6d7d966e55fc5b38fb3881ee162d0e04a40c448a42587c99724b408a89f1db02c57cc8c0074b117298f9fa7eef5cee82d256b85ae755dbaa5838cecfe2e7da59956b0333478e46c409b493b3760c8cf57a8fa6521132c9dbb1ee36ff60ea6dc7a9e1af615f1dc6b81bdf00425d24e4a1431d1e35698b0267eb73bc6a512eec505f69becb384367a1d3dd7720f1cd8ccb582b39f3a66e5a0090ca722b8a7f9ee59651091d241a623aaf4588c8945c1c8dde04d2d7a48023c6dc3f3b764fbdc23609f0a9933909def +result: pass +shared_secret: cf55eba9c0e1be66a0023794be974825ce8f00444905499486176dfde1838c05 + +# Official test vector 82, seed: "373fdde922cfc416ed96b444e445bdd0962e8989f6c50adf9912a89937c57217d3600b06c95440448e3f601ae69ca5be" +private_key: 0be83a886381009553ee02aa62b113ea829ae09b3cf11b62d21091f1115cf548388e71abb52315ca69a4d1d601a192a4e7b494b1d3127630cec313c15c9cbc91693375a1776b51a08b56b31f38783af9c052b34b7c0cbaa4eac4618aca24dbc843322fbc666f07272a587c5c54b778aa446b349b88f2416557aa2bb9e3bc74979f3cd287645435d2ab30abf0b6e094446e95536dfb0cbafaa2e87706738b192ef721edb12d6d9a3dc366214e9752a4e8b0ac3ca5a69944ff0aa86eeaab62ca34b8fc7d74bc6eaec56612267724a038a47982fd6ab6cc726ea0e096529476329843ebe484fb7263b4e97fc2f68eb89a65ab8750ce193d9f3176bd876b69f9a826a64dac2186af796eed9469aa79660c295121367906478940099e51bc36ab67a72558425e153821ec43a560558d59b136255f655c161d729d7c21ca29a70b7bfb1b5ba66c0922947dca55d854863203064b52896e3a412a9a5afef93fda7601adc46fdc3a1d25660df46437debccbcfdc78a0d90234f0073b496d5b586a9f8b36988b33ec82c8782ab744b3355fc934544b656ed93eaa36734cb40217d680ea85476fa98d3a50c86b4a2589e85249b9a7ad01aa4afa2df396c5fda43753501bb2b614acb5bc715a113c382b6667457bc30e79e58b41b7511e011965820f2fd6c5280caa7a35c13eba57654501d6c326eda25b7a96ad0236c663d70f9b46cc798cb2a4d335f6c68181c49d669946673741285626b078401928c466c1c51922c4a62553141a86e4082f661198b07539a47283aea18c0cda348375201473a8d3f211b1770ac0dab8252468303b909d078524f10bc3d4958f7037f830b96c64c7f3a89586e3254ac823f8a4911a878c9394006429152b7260bccc60d4604d1226a87cf434e39158db5557c887207f1aa4bc9b3fbe8721dd4c96e294c2b581c78ab3997e740a86707888b6929db848ee38bfb6411110d1b5dca49dc4109f62762126d9a7d2e46400755513eca554665556d3ad2c047f011076e4fab77579c3f9f515500c7ec9747ee5b56f840994d2eb91d13c523cbcb506f011e250c23ce4243795b4e83a8f4f32308007610e23c64f38aab3aa9ac0c303edc77442a2a29ba6bfb46343e32c549d043371ab941c5982feaa30334531f61877e1515449690dc4c6a94de7cb3739c43a53a89f41ac39f0ab90622d41b48f69567c9ba5c128041426cc367ab02ec5c3b082936ded118a50c7933de5a5fb51a07f04ae11012123857bcef60e5e70a51e109382d17fb1d461a157c6b10b7eee63af1bf40626a61c2f94af7c93041676705fec9db5670777a462de3659a20ca8ec41060168c06fe925cf294cd2175e7591600492018ed70cda9266a7772103fa43c48129a1235ab1348bc5b2960140a460531ace8c01e6c136d69751f623c29bc0cad760743cc04011782790115bce926202575fddb867ddea380852b2420a7555994f91525d4a5ab5291983d87abc22407325618b04a42f8f11b203a33353245f06432778c2b3e9f08e2f9234777b00493364ee48cd5c256f15d62e03a52e5d52a849d042a84239d64a08f86a7a20334c77e332d7f886620461f0c0a86292c15180903990a68ce02d4dda33f8d34cf003a4ae80a160a27edbbb300b693f01a151d1363cc247b41c66b3eae25bdc76609d2bcc5f429540543d1db01c801137a99b1df325b88225bdf5d802c84771df545f806a0fa8f85779f56319e25d262b37f952b7bc962911822ab4f98bd65c9720208f6b0953b1d62e51937997b480497cc656341b2fea7b812c3db311784c6a17790321c1cc5021543ad7d54946d71d57c2a517b1187054725e7040cc4506de0208513366c014116fa4444bc06cf5e22e50a993ddf89f19aa14937443ce2676fa817ede4928f81394cf82b9bf629f8d33b7ec0c6b3a35c6adf0ce6480bd837655c2297833a8c150d45610a011b57224ce3b5b47e8b2895c95c24745d1e44b0cf26eee771f906089c0c864dff15da9e6c53c62371de9875030c534daa8be4719fb8a1dbdd2aa12617e4dd3b9e7c40906817398a42dbe3384fc4a4cadc098647ba4c0035774aa1d9fb85cd6d9695088271431818980ad32e4c493ea358f863853e2ae8be6ba9c978fe45b379f90aadc4b59a4c92cfe8288a3073f31f21927c546b8f148cfc133aa807fd7c233c7b5a5c3f6b8da210ef7dc5c1a834fd1559cb2439406895223991a4e682554c63ac3a117d840aa4848b1b3864edac960c656046e3bc6d3b681e1e6b49bb0259f1aa2a4329b2598b932e26c00fdae2cf4686803ca7af8bf0f1243e64544d51794583349f9854dae778894438805793b085373d09a185cda5489d74274eb7bfee433b63a56e14b95941440924cad32935440b46235a8576d11b8d65a2e8198b64b510fc1f942bd9b0f8e077fe33c559cd987615263e9b66c38c5683893c3e10965f18aa755e1bea6d1789913cf2cb21b41b23c4eecab25798ad13a26321c59e35b0517a78743c4469a4435970bbc2b9c15498b1f17cb0fccb446f67c2f437415abe98cdeb3346413539961b3dfc1c40e243296695f27152b7f7a32ff4b185ea437b275c6f617523ada8f7d2a594e277b9318019abc0051aa399642cc0a478ac7466e0729848a516c9e86bc8ad85be985b395e3b28ad89f71e3b584d857bbc1915a47a2fdaab586b7916d9a87a56235db0c683b9bbd5f000e6a218e54464043ea1e882bb906c917cd4449fdd5acadf5b017983c87b4a8b0fc9ded7a1e2e7ba359240009b06701b5cb29fa3b9250715ea31bd8784dd1d91d26764f32b9a49f934c8cf61b4d4a8f36f81d3ee33023959427d889e4a3c796d284a1fb0895184ba4351034a0280f34af119004e9b06fb1e69050fa2db039a9abc6ab00484b9a2694980197b69b9730da0b8455bf591b2eb4f9cef37a06e7c107bd56c3f7ab10ebdbc60de87bdc8c22f62c2e4db973140c5fff95631839264aabac5dd4873e44b8b2f7106c083dfff8b6403322f467a91e52cdd359293540a45134b97a39aefb6252c9c928adcb231eac0d790422a9e3bda366762e2514758badb2a2114a9ac924553d42e05d3769350e4ca047d4219f1b6fa953b60cc67b07a71dda85649af0076ec5c55ef46e73ab06613a84b2422c1bf039564a6873a9385fb18c4ab92ca7a1b205e8ad57728ccaa10b13268ca519c2a0da39be15918bc724f7760e826ab9d47cc288918b60aa87e037a60809b230562ce18c1d76bc457107c8bf80574a2cbd0f945c59d4371af14737983fc089a425d1ae74993451055ec21435a8114060baa6d774bb6ca82efec1a40df1877011163108a2b20190135900a98a337192088d8c66e9e774b02c6d55819dafd9bf3ca886d39165d1c4cf29b1abd6b185dee9671eb941ac598e1b0240d92ca7bfa119cca15a643ac29b30afeddba1acacca8b83a123102ff20b1bb94ccc16fbaefaea4fbaa36f3d46b7f5706a7ef60e04125228900261271c9ab11b04971ca5315e6f3c9eac795687da91eec532476bc66b2ba7a5650eeee119ea13c91bd94b19c31fdbd80842d25dbff62f928550b1f6183ab64443e6b0d9653c5379158af74a6436ce3a1150ea31367aacc7558c201124573235a5997773064a621869707ac661a29238421c9ce88cc38e733c75539443613d8d81c60da70e46035b343577a1660e08a67849558901d539ed84cadaecce4da36c4b9940e106011b872d1b9748cb08c2e3db4880638767bb67c74311021b6c46698a21aba391c65b9aab238d93a4ba80be911c3ba8319bc866cac3e67fee11b773ebbbb8639891809d555258dc9445fcd815af355ce2cb38552c5be069b6c7d0ba83f8495f1230f50bb57a8c4d82ea8912608cef0ca6cfe408052b736d9c6fbca2ca08e76300d150dba48080421c5a6b13f74b8f705b4eccf9c1a336a0e7a47263d30b5d1675df4a2abec7522868ba4c6139a8d22c23608c40a8bb5e8c65661b94e008ba442b9dd9883e8953029d7c4e7b46206880b48214a84cea0b34560f29054756f427d185241d946efbda04956a3972f974be20be202314d9c58dfa3543acf894d65b6f22047032e408636440024452f6c2cbb5d698730907c3271774da95b09421e499b17f670caf8585e2330394302aac52b0c1d2b2ad16656cb79257b143f555757b989c79a49730354e42299f28a166ece2a03e1a6dea08b01b9323d9958d9e320f3055c9500625b731bef77c3f30fb2960974815243f7edba28b64a58bf5afebd76b53675dbfa62b05b89f85f945c00b3de4f8ad2507121bab1a86224a9db9afe8c26513219ccc9b19156268d159097ad048f7fc245fcb93edce592a8d415d4a38502632973ed98b6f97f986dbff7e53ac28332ea3f161cf5dbc077e44f725b05ff0ac4abf95f60c5713aef1bfef4d11136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 +ciphertext: b6aa20edc9f8ef7fd2fc2dc864289f6c98db6c4e7be0afa4539a83ac0bb55256356abb022d1497988bf0a664f8c2465b15f867aaaa9af528943000e9318bd733aeafc681a9d79e1a1466bba45d5bff19a5f4120f35b1c3c47aac4aee81f61119dc3926bb6c5cc1543cdc914e515b1258a22f07a23a6051e29894bc11019029af844a442f926d27b280f20ec61c4b633edd12c37542d93bb6deb907cbc3ad5ccb72a13763a1a91da7dea74966dc53081d789b6040f65d08c2dec770dcb3b5d37cb8387a7dd953df41f06b097aa7e866b08cbdb1b226477a7502846881b1bf22813f9e4bbe40d80ed0cbedbef9651a93701cbfa15384819df097306f7a8236c7ccedf62504303160515b72f08653ede849d19732335d5c4037252968566c78331afdd1dcfbc1336374e10cf679bc4b01289c46536da48c485ef54c6cf2f40b85cf272cb2d379a1ffa239b3870d488d8d2a18ba80d40d282a0b23073ce5303fa7266c329c03df33565c4178e99e2e0aea2290c846e5eb37fa293e4b7c7ab2965a67d76cc233f418e4711aab7326ebeb2f3efcdb2b79cf12654ad1cc22a748d4160fd13db4fd9b0e32a0cf6a5e2d03a88439ad1c3ec2d190cadf463e03cfd434c0a351e44950ae3f0c52f1987d69a8b6b7da85c445a0149e60c94258ab92cba1ba4d0f43da93ba87a4e1bd0bc62aa1d3faddbbbb6dcff737ce8bff4d108a31aff8ed870b0cd7d06fcb2a34bb9ef25f18f8bbc3848de931456437fabf9402d1d9b9932aaeb890fee4eb4b60c1d61cd7345d7a7a80d091566c9270a8e24a77bc26133a8964527e9b5b1fc8b376d5b65c9fb5bfc9d36dc6538ae8174c42a54940276a74a2a4d1aa99d721a113e65eaba503b604ccaf41ab0a867470244a08655211cf86a684292c2d3170e9dc2207a1edd0fff62c81108437354b1edffd0abf96c3a577820e7f4659561e11e57177564b1745cd240743eca37b0f827af298d25f5c352ad29082aa5a9030b69896d47e4460c210ca9f3ef1981fdce6fdf13a54bc77ca902bf35e31100b06f336690bf2f9a12fa1e9ae2b2a7d7caceb65cbbfccfa52c69cdee200ba34da38334356b7ec4d7765c3ad88cd6f4b3af13827240dd43c9f47b7f7b1fd918fb828aa6a8af0e8f7d3ff8710124dda6e6cfa923ecbd60e007ee6f2b4865937a411fb4859d40feb7974c9dfd27b41880056e35427063a1bf21f1a9ef1a7f05f49e41c74813452ca3265ad710a43be1afc528682e256d24d5b39fe2cfa57c9bf7f728e2aca3b36df31a9618647e4291f603b87a5a82850a0ea288a926812232e5c1cfc3b2ede5b9888a4a039a612158315bb55f2fe481e47dda46caa0f5f1db4fb78299ddfafb43bb55edf77b1402a3d61c4b9d84fa2cd3f9827b1e73a200888aa7ea2b4589400ee0bf389c3fe530e0227dfd7c7f9b4fb5d3f8d127a49b7fb33f3edaf19a1f546444811f5fb83e4126ac5062ef352319abfd9a34a8961ad1061d3577a3ecaa9220713b11bd6311ec7524a687dd46bd067cd8fed06e63d364f4bf4082d8b41cba87a5bc713fb1de4ef661ca05fdc40a098c56184e4e8e63ac7b06a9dd2bf6da4c5820d4f5a8b476f930801b9fc4767a98c0c597c4ef5a3cee795598c7df3911ba71153141b3f74e68eb3afde37c40bfb6a6da19e73cfa3fa4f8f9d622f9f9b7e027e686f872698ce1c415b4ea07d19c20cf40df424d01848e65093e52b049ffb8389626956965a1fa19f3ac8943ef2457a6c31cbbae469846b29a3b92ed5f6d37fd3192caf8fcca888e0fcc45612f0c8103eed3ce543d4e4f2165ab64100c2d1b86fe2c140faee78887df0c34e8520d40a7dddd8c6d423121df5688c91ec5186184dc4bf5db4aa1dcf071c0446f33f3fd37e14ea8ca77752bc73c4ddf515bf04026b68ae127efb7e63958494a13a0a0319f46ee9cbf92c36ba8f15e16ae46c5e9b8ae654f332e36713236368734d83c9eebac4a67c6d142ba20dcc83060c37733e6b9d98a75f7e367c905fca0f8b3bd9b53968d0f7ac129afc6a1ab68642bd5db00b4cb443797a239f291e77d75ae8a8854cfcd916b71cc53a135a96da844e75cabc2a455e7a17257a94ce917a2f92d408f74a09adce0705606394bb3e11db5554bd5ad035b28e754048d832eaf932172d942fe144ee7b310c2db9a6385ebb2ac085baff10b1dcae517a7ea7158dc00c3fa34ba0950f +result: pass +shared_secret: 1d660952391268c94f6c47347627fe3b2a5e1097d6d85dcc14e3dffe3a4a1fd5 + +# Official test vector 83, seed: "16bef67f7ac3a755c59c816478b75fcc16ce5844db537791accd1ebd49d2824b105fd2e970f728c8f0cf16e439a9ae2f" +private_key: 974b92e8755220ba2f34234c9c59c29de41c7b9967d54334aa259f05a73e43285e4a6ab005a36528153c5599b79fb680f2d82559b68bd3a46b159c3f2e28c960d6cbf8c103aa205fdd885bcbe2c48723b789766038678d15f72ecb96afbd340d4a17ad153a8f31a1c6b0f8291f6b5a1a4979197ba6cad90c26e25f6424cd1e856c0fb5ac336a01c7e5c472c575ae15a5264263d3f82c11a8111ad7a88d536884c664c4a52d4adb85f1a3567f48cfe068c038f5c10813a99ec6c605920cd481a6d6e0ba5409a65c6168f3d5a34e3b1fffd16bc5522d7861441300c550022ef3235c85f5a1fdb6b7c4742a42351e957666a66aa918d959a4f10d24533abb63196f44426f19302b3c0651779c690ca0a108710f4a8fa001a25f6619a49768416886c5d34dc8ec3eb4a89824e04e67cbc87dcc392d64004b5386f40796c71c017e133cd7853f2955289d7a52d7388dffa436ad1363c03902b15128285341217a0832f094bc37733826c13c0886e123a490741ee0859923ec825d26aa4a3ba5c094728f83956596a14f12b4b0958fe01bca0cf557265a5b5f367917d3841e3c16b1dba445038cb95542f7276f906136e7f76c32ea23d78183acc4bbd4067e08e3379ca47c2f37a4aeb1b2c4e4023b8b241993bfce492ab7fb26950b4ac8c5bb1f7bc209957d72a2a87d0b37e0d74c08268bd81822d4272f6048997e9449579b4f972bbbdf1a2083f49996725c68693eacd63d98f3bae3fba88dac46eba99ed324c5ba3523c5398df6035dfdb82e48a49acc15b823d51d812cafa9ea7041bb1d6b848cc4c1cb0bc67ef6a7a6d9b013f3356f353b1dc5c5934fe483099300a800c82d7513d8286e64d5b87882c03cfb1c981b2613d5981f92026f46403286136fe40272841eae68c34e56363226cfaf0c7fb4a64fd094a7cb3b1b8dfc7bafc2552bf98ec7e8967b46c70e4c0eb649a8f0464612d08b69a72b5a89820f1c1fd8e19a55526f592a79dc1a475d16099ec133b21c973c90160d68cf4ed7282096265df929b43b0b265982b4a78a72317cd603c09f70b622b14c31f52f68a6572d749b60b92bcf4a7f3c539da10c8c3c3c4131ec88485225955b63fe8617703c499f9201bdb583d07cc0077347e28b0275a26cf2e600122b73d8b22bfe17cb4a48183211a4c7a83f8002004dea91bc2863b6b9086dd7a8965795392cbc188739702ca7ee84c85c867fc45431a7579dad1bcdf5162d876499b039571174c44d679a7475a156ea73c14113aa206223e90a63c8b450369a89fa59fb65ac7ec1ce8e830b84a9a330e63f7f494a32867f6a815546d100fec9482771871376ccd5aa649293c57800792275349baba6589327dd883053f59d13695c41ea73c8b832a5521bc234a73bf668c80c7665a9aa98c0560da4a6e9ccb0cd7c77ef39670a731a53a85606911b900866a8d272abf56f31dca4d15c7ad19c8d4bb31d9e545c84687fb50757f54ba51d283dafa480c2aacd8c0206877948e1b8215088ab3c0b019eb42956a00e00e875dd4594175ca709164fea4a0b3f819e4dd57ef4d2016e799e5d645e8a47267bf714c88080d7329a8f075af812b3c7acbfa0dbb477b93b789b76ce445c58b9b977a681e6b22730e35a82851f40649a3231bd7fa1a19ff859ad1b007a30413087c0b98a31c9423753f3c2feec9edcd1cd2fd7a930fc08e811cf49762d792513719b370b7c809de37bbd53879b533fed6295e3318a03cc94c1f81ccb563afbb72bf6643c9a80c333134c8734360dfb4f001b27f58b625cc50e20acabf7e1165d0a22bd96ac403440eb802e5fda4d0653491979b331f0ce326a8365281b18ec83bd33319bb7149c192ebe202c6e2c2ad69313c12bc1c0b56599b90bef70a8e70b60b72570bb49c207524850e8a7b549bc07b660e5d26ea8d94a5d1a59a9c8ab17196000c97f48e2b3f060c8b2236f6cc60f6ee09d019cc631809c91da3ecb2544ca4237f37a20c2a82397e3be1f0cb7af6c693b994c8b811537e9007ce088f0fa4c02203b9e08388b186e3be11093e218c8c3763e9810c9760e26d6c90c6400c349cf22069b86dca993f36a303436166bbac8db1cb9e2a37c155f0f678dab52abeeca048b1813d63b42b2a986ae296e3f027854393dcf47004942ce611b9a82a54098c5377fa74b86746684a02b2cc8694852594b62cc0dec3c240c49b1cba8235b2b7220cca57aa380ca7f6ff96688b70299a0a52e34805ada0144632ceb704b0f08a3ad9c78dea9a9f1f556bb830cb0345ab9f2503342aee2944879ac0103caa1cfb1932062a04cf473ff372d72d500574660435b756a99635a9626f9f085faa880f8c332f674a76ab0196a3326b0e88ac19547b6e8a4cce3a3a60a9590d524e61501a41262cc67a3cf036e08e947e11c33d34895a2d4b7ed348ea8329f8e8775453a65ec242ddc6b33e6374acd4064cd8c765bb3079550c05e0054dc11b4032b33c4e9371630aff59986b95b7c729402d61c7ca3bccbadba94ecb5151bc60330379e24eb3fc36358cb83c55f18789c37c541e93b3b781d42904ed910aba5f6a4168336dc351aee66761cd17617db2962547d77fa238bc415a6f441c0f50fc2cc88dcc7049fc58c3bf3a3091458278087ab81569b607c66c6b6e4f677b4e0c3b4188dc3d3741ecb585ca68a72d0b18f18739e0194448a1da0d436f2a71fd08218283c416a0a580588932fab5903c289bce9a1b53328c70bb943660ce98773ad14a51783486268c270808cddf713160068cc8c8682ba11d4a21a3408b181625bca33491522949fe6a3ae6a2f046619114a0318fc69a3d58bc048c45ed4ac3a610ad1987629b2bd66200bc0e7b083b1b26cca00f576a2d2b8ad3c5212d956a5ee0985cc4023e9a99031f3a903934f2ec24e2ca46f06a26efc2a19fd28236e9097420337ddd61bc2b7c15fe9949acc7c279708a7365ca87b72b635aea5d67541853530f66be8da1730815852cb3c62024be50288c7ab08a3a2c442307667c8bdcbd940c0a6b91ee1657be599f13722f1d21848d189b8b389741a5ec86560f1b862eb63669753558190516964c610696e9b24a955d07bf388ca0cc4bd0861b388e5a9f1c78014da35ca594f9f1b766494b7ab4377eae61bfd8cbb5e775a4e627e2dc80c17128bb5c314be217033668c29198ce8bb27bebc79b1b4c5fd81578eb32709ac6badc3cfb7c414584bc3a38ba2ca1c9eeca55db9bc295791ba22ab54f9d22cadbc83efb58e243517abd4a93a11bd083950ec71536bc49b39c53d17b8a301a17ec0b90188c800cf2400312b76fd85a26557022909866f5591eb8017440364868c459f9039ff053e6e829ac73b2aeb81c9dfa78703c7af8efc6ee88c929183351f752a47e608638c7016026a031c289b936e06f46889e827a1e0c99ec431c763ae80e72b8e8cb87c3b7b74159596a9cc5a6c67253738e6889f5259a0ec87555e975ee50c82cd44428182827faa7b81a0abcd009a05685813e3000f9623e1c4536443811c98148fab9c8941163a57b8c7377d55a994d6ca310ad58012f51f94bcc9fae366a0591adb9a7a78e78478d1076d65c8f029867d69be153cc7f7b7c3f7f6b5f1832bea256f3f9b7f1165978eca35728115a115500677c1bd232fdf7145ed07810ea4651985a3ad7b5edb37bc21e33115d4c8c8b5094419780831c65b88a7d934bef0b9a52ca4299adb84a6d9053eb4999a92c92b353d9823896d3759c3daa69879782785017747c102e7afc0a330ae96bc2e7a4e6c4b5a637b2d85ebafc4e6c4cc676f78e29e6eb5b8a4bb942a797d78cc708ad3cd2f04217f18bb3677318d3a917db689599c009d3897d95b586e899e5855253cf54974ec4f6fe8be5a4c6804c99dbcd7c3e7407fa99b90a5586e9f180aa559a81978adba7b770a4c601980ad940ccd42eb70010254848b8c4a2886a1d835abcb9097253e2fb817425525cbd37c1b8b3a2ef47e8a15147a6a441be37e7b2579e5f74641c4731ccbaee47b1f5bd744a15284239179a70a70bb8217b1371f928b275e14c83554788687ace377888321c87eb5403cf3c93cd4c9e302b63533591d96af9aa5c47353c03171caee118bd868a6fe29575f5881c5a5bc7f67a2dd5457efd71329473364d509b02914d543843cc3b36e213e27facd6f0369f165adcbb314f9c4c8930564b9f5aaf21c82860035e9f729dfd30584b8cd6735aafff819f9d244cf8bcf9ec15770903a3cfbbfaa385cb960692923b88364100ff67a2dca71154700e0594dfd66ae557ccc6ff36519a2252adba29881b7dd1283d3b621b40acdb3bc22fae51c5a64488a3993ab8fdefb1682784edd39f0fd80883fa378cde6eff656f57119177c56a90b6cae64de81b6f1395296905389da76ca7c5435e1c4b2d93cc5c303d31bc0536ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 +ciphertext: cda962ed9823fd85e1279d4c2855e9e16b01e1228905d7a7c243f94adca4f22a33ddb85ef0cf052b8968e3963757c19d104fb566b9188006da9ce5b5c57ea9c30858aab0776459ed0272a0492705c5643dbd7110ca2c2e6a4dfa8a00512f9b2cb730d5b94cb816587fe6714ad7f69bccc08f45e78170be9cce0414d096d961ffb1a180442f510fd65c5fa8ad49afefb8d96a8d85077dca9ab501aa4bbb91b121927ceb461c6c7b907aec1b6e874db0ec7171522122824975b1eae1f4319ca046edc531055034a1fcdfd37b05248ce9a1fd240e44dee1264989e1380a5970e533e10a41498792de3390dfbebe2ef26470276046867194bde9858589c8da307b3093f9fbbed633b628973e9073a9a2e204d436bf4b5509555e0e06d5bc8efd56f2e3ac2e2265987811b396eed0dbe7421d01a09dc97b90cf3df6dd959edaffec7d0bc17e01ecf78025dbb35b6cebc555f89e87e68e272e260fdca9f7c0b886f85d23b7b38fdc565270c52395b136b8f1ac289b8d37358fbdcb9c516eb4bd0d9e75afdad371c1a2bc693c3dc6f89a5c731666dd5d93c9dcf59be90a8fe8c48a41b40285fc43d6ed2a9112f43d7f46f79788642518039f9e1e51e8c21ea7e0c6246fd8395177b271d9dc6e3c5daeec361d2f168d3f50288f4078de91eda0b1396809f9dfbbfa54e6803894e802396d50accf38dac484237f1ec851d93605655d4ce0ce900982618baaf24b3e7521838b9b4b1ec656684d82b3a2f82fc06d1d29d3f00c83fcb4c579dfce129156b809410074fac770227de7a1263a8c9b619781929083b05918faddb75a73ff32ac0925f7cc336dddb1c03ffa6e7d4449053e3d9452b971bcaf7a914a28b16ca4615e76ea00f3c15507df347254a10f4957a560ca28e518a5569d1d153fdd625b538b4065c6375d8cfad5aba472ed15537c22aa8febcaf408bda07bdb83f737440dfdc28da8ce43bfa5edb7798921e0c70dc6341117e70c825f7bc9b83b8c5c036bf3889eba5725b7e1af2fbc6aadd190d3ab68f94f80bd71a4b79aac2186fba726d0be379f1669ab4a91e38c680e38f1495b96fb45533d73d62685621092eba9068eae3ea1ad1c27d094fc6c3d5f52c958391bd58aa00eb55c329452dce85199414e61abcf3608133dd72651c01cc7a7c0a1ad3593fd227d714025bd57920e92b1a3eefde9cda50456aa257ffb85668064c5b3e22c1b0d27dc0e41a8b68d9709615b5138e6272d4f8b7fb26ef147dafab88cae1027f0ae026a413f1f130fbde445df7dc517471223e5b0a5fd96fec3294c66fff3799597689e1e7c84c8913bb9fddf91bf77b339c8cf4412e8ff8d496c6f6d97ba772ab8b1c44779eaf1339e87bb16799c1291ad46dd9776d4d3b15de11931c508a6eba012182784e374a381c671d26ebbc2c744247438e5fbef7021001c233542d13e17fcc4438c4be9310f5fbbf9ab2cebb2aa2097d5f2d30c0471512e8b022b43f8025408ba09c31a246a8ebd9fe904ddb03dda3f1a7a74f64befc83f89375628e7ffb587dbcf904b8d7a5ce52407eed130d42dc4554771c2a10b11c09373160463e775dc2ae642fd76e43441fb544ecadae0b5d6221f4b65b458f02378ab217b4e3e980b0d0ce70f548e5b0b312133dd6c5ab74fd947109d5753168d395b6620d4c9134d6640f216dc86453360aa47e0be2ca5a4431631acdedbcc50e8bfdbbdcfdc9fcdd9695561716ca01f2a872dbe7704ccac7fa6d57bff833335dacdd3b3da12c5eb03556271355881dd2a7d47bf45e1dd87a3a7253357af6a4a92016c5da1816c089be187895f3a576c23226192ee5b66fac243fde774f645552d87e6a50d75ea560cedb453730b7b4be30c5420e2103db839ba14e6c35815020046730762ce2bad97b004db9632c5368fe4a613030eb6830767ff15bc01243158c4ea0033b8989b18f4ed2e5885313044b81d03a0ddb47404b815830c50922a79882e0fdb75ea99428435e776add924ea6921a01bf5fef8995904d09a898b095d5aaef5d46d253ca3a36b4a89d4c34d3a4d6b56465210d4668d4a201d0415dbce1170dd3a52c5c9179aa1ccd90619613ce8a09d09a44a8f042c652eb1c4836cbc1f8d5f4849e4f25ea5bc313aa79e48fdcad067386d8d1216273f7476da2c64cae20c0bfac4c2c4c3e2d05b080ea5c2b14d83d3f199b310f956c4a9345c57265e0a50ff +result: pass +shared_secret: 06b3f79ba4b060d1fefdd589c9b87c48cf1acb34e0491e98b28293fb6b801baa + +# Official test vector 84, seed: "d0611f9ae5be4da5d7eadc9109944348e716cb3daee545721eea8c892e7831cf2e54603146454cbfd92387739e9a78d8" +private_key: b3d43c1965522268cac5210ff79934c1420c14030e9da56e02e26afda97824904fdf2a107a37baef774ca7a87030b1662b97cf678bc3bcf7586d78285bc44a9bbc546a7b1f48491f30f2939c11516ee6cced064d0647950e004cf966045b871093cb8a42b9c903c5802bacc2aab484d35b319a0025c330208913220c2a8033b4152eb39b08fbbd468c754dfb47cdf790a300be561c004047826a03a175c285b5ca718919a119fb80f1f43e6bb00efbd44c1d67c853c118604cbf2b980cf312caf81793558050ffa5bb3643cd86788c6f5734cf652eca45301ea97283f6c52da4adcba71ed4e1acd3499188d555082aa43fac55e8e45bae0c023801133edcb2a5665bfb7829620ba4e21c746ac2c1e46c4000d93af973810a881c1640562426424647752f162d2e65bba6020143ab7fc2486401a30f36e3a81040b4442382608a02c4031cdd6a9569229fee9c87e668a77e9bce352704b8220136f3439c37c05c917eee0578cb2c689a907e2b2544d26444b1f0a11c0c34b2bb0806a072e39c6952e28a08515dfddc80e19413a2a3ae74092d34c2cd71e770deb1cdb1e15a497a0def06b14b6cafd066713f44a77755a7909bb4e90301a995c280982249714a72773493f060f6175a51f61a340022e69125716661d235b5ac124dc381a15fb356dddb3623c53fcefb0865d18c0a4b1f028704d50313dd0bc80f674d563588eab3712a5c4903f27c4a9a3440443c31c2bf51f21fa9e6417a5479c2b5be1a242ff9ab5da06124f7544172456115481e8441aeb7a8a01f218e286b9b52d5618cd0b05fc99a02a24420a359c3a7a09beca408915d4ffbaaa4865f37670f8744548b5bb8ceb9bf1deb799ca06483d521e44b63c9e485bb75c8e32c42247b5fdbc137856cbce035cec6e1323c9a04aa154585f8a9a6c08dccc720a3690d6192ca6e63990a5a9c7ef519808c68819a66394829025543bd3a823f729b98175b5e2576bf557609f50212524691f7b6bbd91a877a0b297c7facf50967059e2fb23caee12093ac230505a4d8d8963cc05277361c371b4a50cc638882b068883de6d69ef590a33a384deff6b618f9199099734e7b9c951b8318030a9cc92496db0e03e738e0a64d1d24afe6274e5e58b364ab1626fb188a91b35eda4156c483830c2f603138a660310cb39dfc490e510b88b5ac4ac9006e6888b33b992b8343c71085ad4311356cd5563e03c75517c99e9bb59188abd8880559d0b8fa290274dc6fa70bc97fc552f4a76b901a212f0364c584717a39a6e66568bbe0a277f9bffe8355072c75d6c4cfc7ec7bb644b8932b41d191a058f2cfda77cb3e876d00ad4b3b80aa7e1b83b031a4e3f891ff747b17782f633324aff6afb58975cbcc0e14fbc9f90584c51b049e6170af720cc36c9acd7002aba933b685b34c665e90a4219d6721a71b79402acb2e53480865b62dc97432d800be255e7565b5f7ba6ca39c6fa443ceb79308ec9c2527a799cc75535082bfb4a5246ef8026ef925dec7164bdba472db7919b17458f83386764b84e83e51e20b41346d424c65b7949a9db6ab79b091f3a980448c0d253c36e9808d586c6e55e669c40bb9633a156733c76aa709b4bc9a877717b5bc4b0cd91ef75c0272119370b8401c815c129836ef785faffb25ec787188f40990f986961c5e785b9e6627913f7b2163408a7f99329314305c0b330bfb0ee5759016b4232e06b627b84f6b51843e34425deb2bb8e10566e91b37a3657c2ca240f57711420094134c9242936c4a76582686db9001635723c63795451537831460d0b4140fc811ca977fa2eb7bab8a597a162336790697ec94ee684dfdf649e327cf61a15f2a6262a3001c5a342ace47b394626439b313f9e21382987ecfa533d09c6a489b2ff84c63c0f5b4c3f8895d2283cd59305ca7248c6b293ae1b4b3071e5cba9058706a1ea9add7fcafa2c50b86ca10e3a951a5fab5a0015ef09901b36b4f4055087a5361ace4a1d2acbcdff1048fe17bd84b6c4dc05bdf4c453d18c6250a8ecb69b3da26cadde7711c0520a59ac94ee57b77a6aa13db76bfc40af90161e3634459b3263ae233178796148b592271408ff06b5ec012f5c082e107510907bb36e330d5c9bdd1245242d724a6d438085a30705662eef25fb465a9aa584ee5bc009432c97a66bea57133df41cd6d6095a69192226c8a1c6a0416dc13bcd39cee2867e991102ab5c7ee37ab23d33e113b3e7766b7c652cd0fe03fdcf38653149139b532ac46b7e80229c2576c44834080b75d9f2490d79a23e6d6cba707458c90c7bb758e3c7049d5868b32e2c50441b280bb1fe7528924181051a9b35c6ac779645e6554b5deb21959754f3a47454837b9512820d04722a884b10e01b5acec05aecc2a778091bdab81f0091ed67a7c7d062085866df21734959206733257294a4c82a7295a739638141aa3821c764891fdbb64dbc6aebb67a8c82caf86f7248afbbce556055405ada63ac9f6423de12447d89746fea494662a69a021733592a0fed82749e73d4c2c9d192c994a535f126700a6c4cee988945353c9e9d2240828bb674bc98f22a298fb6750da5ee76345ee1b2dfda01862d2116e6607d3c251ade46ef82974ebd2a14502684be1cc3eea46cf3c2b3c4c14178a79fb495a44275cfbdb5a23ac7b8a911d7ee2ac0672b997cca5d4442a5d80be02c149c0c333caea0090937df91491f3e03ca3f8c85357001e4b0c1c9a73be64abbd7c68776179d4696fa138834325715e115584c368b720ac8eaa45aa4176e9860200cb56c41143985a6bae63aa16733464acb2cc948a949528bf6a91156a3a6bfb55bbe1980d499543720cfd435289c880ad10a4e990cfa2548f17bab1fa31a45eec41361198daf50f22a271c7f1acb7f70463b9b4c82b71228644b3421325b09de2946b829b31e56b0c95727c762b5b5d078c1bb46ff2596b4db6863987c69b26225bb9595d612a5a464d84b6bc775701fa5559d5c8cb55bb30e2e3bad532125ce9c790774dafacb19f4c9dea8abb25b26a6c6a51e27205b0d2031938a9f1700d353c2997e935461b121149a16f7a133af9a103b34e2d3180516a5421243769eabc81952a407486e2111238d99bee90554c32aa12e774dd9b17a5d98cd68029f1bc8671a9015591cfee86bfb8712a5948b9455caa51074db3771f89e74695524fe030aecf998b6eeb301d865f67b9bf4718476026ab3161c77f677fe77a301f357caefac5e579bbd0b34b51b8b58eb71c44c52dc669b9341670bb653ca363096d691680c95a0086601448c619050486b6c244eacaa0198f77d987c5083853b0b9b5531a716a10e7517484a36e38e465e4c855164b2091c8a23e5b2f220524285c739d8b519f55ab1d6c4505ca6a00f6cb6de0a16e1355c1c8824ea571611b8a3925c4fc64a5de44a2a1bb189d48aafefa13ace52290a615b5b4339008181d428f3d33267cc135a2649eb113c023432132a0b93bf08203b40ef0e6465c1ba8a1fa517c37c3d363b80d25c70248c52010cd995a866c8004eba1ae03e56e4783453e52609d6c84264c836857a24f2955fa955041a44c6157bd2e627124fb102ea2bf87b1ac628a393fe09968d707c0f27105b491e19c34dccc207367ae309cc1a0f0cb0072781c63642823623b2239335a73db76bd449b401cf5636114a22863b50ee32bd4804006f13dd66b44058b43be960e9a3a5adc3437298b05c7b314d3fb9d4c7020b64b6488f70a73811d934bc0a81677d1664bb497949b757b02e074e76c8a2e65410158973e30a2a9b6b034c0baaa22cd62a421bc25c7bfda61d0578c1436b808540cbb608cfcb78c8af6a43188bc26f637ab479a1ce86242766d9daaccd93c13d1885c7c994acb657fab0a75de17037f637076f2099560799520182b8265f9ea8440ba9e07b084efa2a6cb244d7db1a39b10297eda34bdc82bcb6a2ee871bf13c1cb8ee602c0b3818335895e754ebe75476ee1786d4ccb52c7164c33a76a3b3e2b57b170c34d37295d22e2351be21a95b6495432a1a5e8489edabe9b71a4459a4ea08b8dd65c4fbeb66a5058cfe7706d8e09381979b608230c7430879bbbc30a6150af273cc4d52c5f1c43e723a036530eddf0cbbfb6ba091b0861f1c751530ce52c947743a59595c15e529104a892e089b912975c7c598b1de528983b5a66a7a66c459610f63e95a7b1198b4e42710d69ea7a8fc3880c0876da82ce872952120a666aaccd5b1001b6b99877610071249db481117cd69f6a252ccaf1a64b45c84c2004eea971ade4659e3508e7b623fd9658f1ac8789297a8dfb3de7b385d927b522126a05aaf40635372f59af9ed4e64cd55048057d8b30c04fe6c876b8a67009f33aa451c6ad54d556d60210a23da8fb68662c39a1e08d893e1d1e784fb71702faeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 +ciphertext: df6932fbd48242f30e3b1ea4ada5d8bb84e27babdadab801a1ed8d36f93d123cedddf0da50035531fe9d7abede9969acdeb76d9f26648a1d0c2f4a03d78e7cb7321adac80135603cf52b48e6b9e577b167c8b4227a325bb9eaa7bcf517eee62c0a30206b140ac27023ffc1c0ed126002e5c54a146f29f615cb320b7d19e1d32704717bd271264852d8e154fd4739b54ea3fbae78eee7c6297dd59489bbb35d29994353caa7ae27850b3722f56ef241d6e2479fb8423f9507a0e232cbb0554af598ef5460e151e2f69f04e8508ddd1e86dde600d645906b5800ef8cd70f5a11b9c9db74f65b03b0c57b5d9d3ff821690ce41ecfd9e2f80593591b48ab8fff0671ff47f58f2ba533d9e11f6251384c3b3d7ab0176e1509a274af00df564cbd89d5145b9640249a80aade7e6c6695ec3628e1a035216bf49b7e4f034029399d3ca4d60455d20e460005a21393c5ab7ae4ba564cb4067ffe1f51bcdd7032e339db7875f3bbb99ea2893fcf2e055d4226e566260646a09d66c6942fc24f3a06c8fdbe46e95db21400a75501a6c10fe94d5fd1de7d110115525428d641a695f79fafa86a0fc6d2bb01060b9edf55f2efa42ee9a3473bfa966c98a2091f01d8b85b48331a727ab9573da40b55d15e5f68d227c7d8dc803fcebaf3fb171b32bfb30b82d812ddcdfde1c1833043664db97729967431194ab78e254886c404a2aba5d2de25e8e5c6d98f797490e8b135ef54c40b77967a58cd733850adc1b56fc39a5d1429ec6ca0158c2b4b5aad303834e148aac021472b10e4e4696dd73c49a7e2d8e6ca56674cf267a116cb76cddffce8ab6f44500d0dd66a0ae460571199d17b87d3dbaa3832e90f0e26263ae301ab6df79a461b91bd149a1e99187c09d259baae83cfa3c9f33d4bc700285f25a423d05c0e9a50e2bc3efd291c8f74f21c5a2b7e35f13d3e13d5e78c84e2cfb449dbc02ff4f1fd5e98164c4ac30f6663e2ce79ba97997370637437277bff8b2b08b1a8183e4b1c340bce2a85dbeddb2cdcff31152829c294355204fefa07e75fdbbfd48985ede759049de9f1625d43cc83c895e6b0e806874bd74c75f1088a48b2f0eb4e37f70cf38d6496abed79ded46ec7c6ed709161f2996a8fc337bcd8457f155252c0d2b5dd21937259c11e769d507c713b558ab492bb055d2cabeb8f5206eed3d75daa508a1533aaf3a44307d542e7c25fa8ac6a38df6ae99148a746f440687fa5822c02dc6c2cc625f90ab9ebe52162d2382b851b14badf23737e5e94ef61c8401025dae044d3f6033b257fd5a8f8b8ef1be2b03a4045f9da7fb9bd0efcc0f81dbd526c9c4cdf810bcfb3ebe0ed96e0bf69b0d1c311152e715e542ff959ca7ef7bfa072ccca22a864bf3c4514aa23867f1822be589e1776849d1b681832f41f4ea2109aff5926abf92a2d5f546206bc81b40305f2f2891acee0f32443d8e709c27efa376522d8deac407202f258afe4810fbda7868e916a683a6170bd2a221f33890d37db1a9deb131285549c13bbcf858953298b0c2c1a2a39eda9e7ba0c4d550709f17492fbd138df32c5e3d99d7553a3d5ad82f4c81e97560c1f0df2abaf489ca7dc841f12adfcedeb8005d1d90afea3c6b44e646b2774976074262364341f447a34b0b2ad77048d426b8502c3a0a66564ce93f75ffbc7589d774ab33e56a5a2e96c060f60396b7e6016031826c1bc0eae28f3694ffc582d63e1a7ea78c9abee8b8372f7acf672efe98e383d06ac56f03de79aae74c3a9b82a9cfb63e083dfebf2df0a50745c4f41b11e894d192a9fdc272df804a0cd577a7dca7b9b17bab29d537396de43a4554f2b4ecff541d3fb544fb12785c3d200d8c5d75c9113ea2a2a8a0e8f6bdf31f2428de88bc71ba028e06654d1e4aa78745c1e9dd9e5530c3037578bfe6f5b3f081ba5276b49e33992f2ad4494101ebfcce435943ec8c948eaf0cc109f82d0fcad7372fc9791fe4d99c4ba1cb4bb76072e98f76ff1c080ffdbb1790f886c9769c4011a36e9d88f33594e90222e1bc14ed23f53014a0a2f26344c7b4af10cf4b5dc14d7f3a3a9ea3674bfd295c6a78343fb64270824b10d79dee3d8152366f7c4bc99336d69b5fe117dd526744ad5e3dbeb255bf4edb49670daadfc69373ca1e70ba7a3a0839b95afdac0d293f39865013f9746c8eb4295aa6f5a40bf85300266fad6ce396124e71ed5583d +result: pass +shared_secret: 46228506ca245daf1bf40b48167a9bd3603c5d123db157645bc93780509b404a + +# Official test vector 85, seed: "fbc38d7614d7718e931edb850d2c6f0c5eea9ee889b3e25bd69ac255d5b91e885d93e808e66bf9c88c655dc594da5792" +private_key: d246b3612b31d8212a89f347bc6411c7f73e78e23a18fa3972a98dcd857165c070dfbbc8f62197e22b40e2021d5bb1384862c61a6380e042b3714695c515c5a984abfedb949f91c0ae23c4eda48a276c9cc9e6911fbb4b20620875127704ebce55db5300ea34a1c76de6a09c7933a1740552762a2d1d0754192019792a068942574037b949830c2121639e630449b1bfcd02970ea8887f4ba1cf278d819b14f9b58be74566846c742ae150a70380fd0ab9ce2557b2349890969af0bba2fa05335c28b2b125806c637ff4b70095f66e41c136ae3b400323cb04909c035b3c6aa4c5676590ab448c0e6aad6f246a6c59938ac3a56afa0e4e23844220741c93507c445a9efc53c7e6298305c5db623d6469c15a4bc597d1af24a532aa935aacba42da1831b8fcc344088b090a1b08031bb2364e2923afa448a6a7a56c45a90181527776a70858631fe304acdbd37036c83f976991ce8aa99c2252b73c6e54ca894301832c129dfa45b59a023ee45229cb8b3e34805b4d4590e857bcba451e9b6c009abb9a92a19b61f2b814325860680934f30847b5895a430b843969b24cb6dd1c66900569088897821aa058c2c814f3b7a0b14893f96fb241029141c90f63954709187186538b36c4c44536503056d740536d8212236925df8c7a5a19ab01c70a5100759ff5b46aa5c78a8833dc48288bb432b2e741d1746f0f81245982395c39ae716bb35eab66551a1f3c59b873487097d8748a285fdd1a6fbb963e3db4207159256f2121ad6216df07628ac607c1faa3e6b158c5b218cae892cf457dfc29acf2e24bc3672d57e014f4143d301a3e00e276f0066178bc08d66cb163157fa534c96d304e489b22ece80509e8437e23b556217c42b64be26a3f9a445dc830746b47c011ba941b118965f52f44d126e5087c81368b42f1b73195cecde34238f2300d909937722f3d2c999daab1b395851db4cdf4152fb699c7794977d819988020836a185f62a57e1ed656166ccf27f50482c517d7d09b65f0af06651fb15052aa65813b3b1bd1c33bdab745d9a2a2d7373e9d6b8445e9a35f17a8e47c79fd768be8f37dbe19a686ec6887d510f8e2181692282557458678c6d8c90cf1208c8470798f4799b5c2c63e0c350b46091b1a40286c7ad955ac7935965d944baf0ba45ad10512c698d4c6a117ba3132e06812d10d13708285948bbaaa728d2b74e612a5a1f3545fa937a11496add908c932849d577b2a7115b4b47e67e543fb36a809d6cc369a1cb3ba357e332b93276b3af902433b81fe546aa47a322b4812d4955bac7365f4e33e767068e5928119baaa867740068351cf70b75e2998b6e77ee1d80409d6b2d97c9732861cd9acc05b1a1faff8a944537eb56b06c3c520365bb405780d12016baf661bce454e6da89507267aa0fcc880078728d12ec0e6b364c60e6d589e50b7371a66caad262b729a0d34b08f0798951be0c7d6798aa99670d9106a186001b93ba137461c0d3b8da691194f0a9ffbda4418bc2e97076b8ae3a4fc700531c502febbbfc766131dd4b00546151ba804ef08998ed9346c596d804473c54ab8d6f64ae654890a54a3ceb9201a74816d086fa121034a6661a20295bdca444b1c64c9b77e235cadb4c08d75b5c02f62401208578442bd44b2615d3869f8526fc6f71a08b4a1e2398b81e86fdf3b89a3453569a66e52d5bbbdd670f173529d30950ab1b9166821e8538effc1495fd0c268baa07e5212fc41385bc0a902d85f5f2093601c77b43bb865559cab77b4e6d89b5a7a0a6d069e5ff839a77603ee4ab29a331c6f9b64aa626755e61648992003a556c210345f33c2300c3504f33fc57c32ec196b1a9a353f04020bb16818136d32737dd4c92f7b4656a83580ff053ad4d6a13ea364431ab1f3d8ac1f510d3fa25d8c33084a10ba42a50943fa22ee420bc7d656492952e157a689c73cf8d45487293b0c8c4245b410848670d66ca54a3a3e016b36fc1227ffcb63b9310b8dd73bfa405b3da64c69a64173c15000f88dcec5007e58bb05a81672e02414612829cb7e25637a77c49d434a44f4874bb4f27b3584cf85b3c73e2b9e0ba2a92b977e9c194584b04c3e8c37d9b7404e77802c05b50b3acce5b46e54c7354087321b4822cab148137459124caa95197546f8b65e8ca56e95a1b844147c6011e93057b8d35b6d6052ca045cc1d8444c1b603ff211fc67653a03cf7d3930373206d4ac62090712be287eb6404843c5c1208b0b993c028a445be50550e2b5625e3124bc58b256eb0886e74ec7f0c4d082a143139222b80037b61649e1b4f3079c3f12cd9742486de788ac1a987c158f5d20296742af5953617a5608b5b965ce1cc261139655a09936f555ad8882f3d7b823c400fb7056abd05bc4cc18636141a3f0c0688b5cc04455b768be41096eb7676315f808953c8aa95656e4686c89078e36290fb0b01697c56e41a0bdb7c9c6c6ab8f50eaadae889fb9e0a41d757ec6756bb6e690819b95bd02386398817e1c9ad7db807a842e75017f5bc6b46fa6cd1580993c1238aa197931c9b55d333e953420dec916dcb00b657b5c6fb538468a855e830f1afb9eb356098e12226a7a0718919dfee4ce6e275211804079bca97f291355790aeff36f7baa99c79ca6a4fb1979331494407b33cc6fef3663fa018e28d76e49eb1b5fa828fd7aa270f917e143a9a7938bd9a05d9e483a2d7725061a88588c3df6935ed6c411a149c634d0376decc87d2988954671c8e9249f517ea3d939af8a71d505a628958c634221f11ba962aaab9fc91565fb647973633a4946976b379199105eaa8e8721a12ef43325f08fe6e173bac2243ef74f92074d7e96124d70b3327839806876a6d6b982219bbce5499bc56df2b45af9cb67e3eb878d02b881a5ce9ec55b98808c48a2c963d8854f0172083c9bd2f55b15f6ac7ad7156af33fed0a5b6b668d654b602cbc3e3f9b81b3eb3c476b5bab8b6c886528ae4699e3768b51cc7f48ea9304d77cc8a708ed08321e97228ecb97aec4ba224baf4e684fcf62753985c8ea07c86f501433f40c21f6903cc8166a7332c0b6a8a9c121c41c35690413e98a1a0fc672fb1cad48d74044811f5c7363d7b03fafe2a6a3634d850cb4fb505547b72daa710babe7165b50ba090338f6001d8744041b5b3db9dc2bef60c5b73928889975f51548ab72b4b88a85cbe2457810115a9121f72a3d8dd6bd0c0b2476b2bb9e69a7e613a83d820670596353944a26a16115fca33c505a4dbc5c1136ae3a981da1d1a4b2c25ca0d5474916675ec8817a969e78812414053a4d0245d86119e1072c8dca8c211b9bf3c91fee350f2a0a392c4017c5705655f26657c5090206270140bb93718c37918b4ce79918a9356161b00f09a43aea259ff94d0dbc95a6b83eda5326397750c68cc6b498ce974235484aa453334e05c8232dba3dd1a182ba4543b4a944a5220c46d56812e125c06bba360ba7759cca24a1cc02b13ee9fb75ce8459df3c601da31ad552c153f789905a105929a223e3101f32431f346bcec3a128b0a3c3d4290d270b34e643e17bb5d53b6d248455502c71edd01654d028525576e3422bdf69571e9c10cf3c3c30227c89e2ce0c62911e5014b78b0cdabab060579ebf1a517414bbe5343bf33311c0ab1f659b3d30727184ec1aa8f1c3a3db45fbe215aca961fcd8ce98429d381995280ca0e5e78cde55442518476e0b404a2668424719abe71d64083ff8b63f285396f5989dd4aa9332426eece567d8098951e141ec43747c17cd9b1805f9245e0819ae416c61f3c60818ea448d397211e8b97e755494f0403a133abcd0882ab907e55a130528a5ac535ade736081d1cabd62980355cf85f84559ea36d6d3855030c341babcf65a20c9bb67ed4901f8b2617c7b9c8466976da39c6780003b71a74f6a16339082e6a62458835d30f1b32041bf9ed21c65ec59db3044dae0654e743a5e65836a4b9c5d2c9c4de859b1a6755ae7860fa6053de71aca0a61cdaa34eea773867a7ce66654380219c7b756d117a81e1c1f81156c6d5cccfbdb285c831317e5cfb8fc50b673600bb46469bb3c7c6072d87cc3b17bbb65b95e81875548b63e3024a24a329a4bb1404ff862ef10bcbe6a997c847650b5402b888e0d71c900d4a4a4cc429d717d3860a6615869f734244a0b25cd463371b189a243733469bb5dd97cb3e856cdf2ae64fcb519d9be1a75aa8794542f51bd67878e9a1b8f6d70a650b05b6a609ca9f477579264b127230966a289295719158b63931a3c0cb764e4847c9ac8bb91598b905a650a0123c7c0fb939f7e3943a2f3bafa20a221f37dc17933cf5e868b958e4e7cea4cfd021ef0ba63ff7a7250d21513171d5ecba1f135207bd2ab61bf7718dc6825848e742ad56f9f8099bd43905ebd9d6ba7a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b +ciphertext: 266487d97a7e78c94cc702e1869784dee13c887088707aab4bfb065bb5ca21efe01033215c2ea740d838bfa46fe849f697786ed81bd42ada9fd509065daedba4738c5299b3fd20b9805bacca7fb67777b05e2d1f25b56335b2176b59fd4e6cdfe568edfe76fb17d9ec39474983f44752e59eb2e18d8aa659f7a0dd9ed701ff05f94576f9ce83c4f04e2d47c13a2b3c407c6083a486d299c7e335bde88ff84b6677938b2ba4f6d307275c5e883b06ab66de74b5613257cd17e58409a8ea521a81b43653f652ac178c3bd19204addb4d6d66e9fd34363c7a9359094600212baddd2bc5b7780b222c5acf0e866e16adba183f12410c7cf91a9512d567bbe8bba633b363ecdff1fa198abb376b1ab479fde329ea207d0c665a0cae43350c871a20bf99f3b867bcfcf26e144c64b38131558cca0cddd3afc9c095621bfbcf789af1db138a58c5a2e97dedbe0c05d1d2d9bfb3ab3b1d87770d61882ccda744f67e89cfb89385e989e48595b975ee51d3631187f67d35640aae07eda8f0ed815b3fc2bc952b075db1856c84d8e20dabb7b1ff3f3fd8aafee26ba1cd69ec1c37073f27cbca57f1e493a1833d57702baa80aebcbbc1475ea314135f1598dc69737f325dccd2c817746ffe03302546ee6a8dd0e66d2487fe0400eb0278513940dc453e95b1c732bfa691459e96d864e342d532f39fd1099d2d19f81349c92aaedb560d2ae2b97859b430bdb4662f1546056ec29f80f582af1ca3bff28aadc309e3e22f63ff8944fc2a2ee0e88935a6239a68704eab53e737583977a66798436acfd373eaf5ef04870ceb6ad0077075287892c01a914408dc1703eb332bb66c4f721264c2a582297bf4853a4d402193dd48fd80401e1994685f600bc1a1e4e6c1419fb944e642ae4aac3f3b28ed5ae13a0fe822a019174e4aba84fd0f84f5623d54ba6ab820859827ca997039018fae104fbb95756e4a308314dbef967add842940023487d5100c1d146d5f5fa270b1ae998e08c8370b21d4fdc3b7e56ba64adf9f8f7c4af431a0ab53611941fe5be38abd05ec13456e30c48f80ec39e111676dcc831d9f41c1a3861ba29ebb24784686a2fab5a50ca72c8d7600b2b833683e7bfe2bdf9b63eba575620cae84c87d7e9e0393d4f146ba6c8f4fbd3276567a0b45377f55c5bea463862721be3a02b7da77671e48891551c753520b52962c2d1ef4ae3fa1133f7c065328db517868003a28c59562d40d8cfda5327fca66fc54134fa303b506e7fd55ddc0263f72a9579edc9a8491ac33145338b81e1960fa395f808ae09420734fe952056fcf038af61ef94983750bd56c72ffd1dc13ef624bc3ce95239a71e2fdf9e403897cf45e581ce8af63a245223adca6a3a31132dbd21d55482871aa606345b27966e2e07f175ee4be7cf0efe4d84ab6fb979e365b26ed749eefdbbf2148eedfec6871420bcda1467d8e5ac88c3d023585d8dc980cb6d0423f016eee54ff9f93a62cbe758559207e9cde870ba5382563867973491735e0c2b745eb79b88f1852d585e90f572cf3e00c6dd2987a066ba1f742dd7f58555f5f9f3973334ec91700cd21bda10628acf624a31f9395a468bf6ff78d4484ff60e44c13af103a81d8d0ef5e26efce7530983527e95fa7a5f6a4280768bf91f0ea21efb607c73843a6d2f80cf77656f01608c3102e1bba81f2d72b37fe34cf35bd7150de20d30da1049499d775107c306f88067977231a06181b3700d602489ae9327581cd431a1e83fd3dbd92bfdcb787743fcfb066bf1446fea699f75f9eb3906cf829e31497d74b92c7bbdfaf798d2f54b91f35bf2eefffe1865abbe4e399e27a78d9e32c683590bb77fcd2dccf1ce27523adabcb3edc0805fe5439409f9ed2b90537ecb2066d7560226d352a8e67e54161ce51c380b8ffb176852d132d0604685b5b267d01be16fcc2934b325bdbcdbad79cde7d4ba07a3c63a2e645fc143d62827730ad34118eb6ce61ca2cdf890abba3f9169e287417c97d0719da6b9f1a45c179b1641dd0357ffee577aef94efd5b498868d91d19a780e2b65dffcfb23d01f6536d91bd49fc0e634b79449bbab49f612d41afb45060b448830643a0f246ab5019ce2b1e08f871eda66bf23ccdda8a421985b58199dc3d7e42207bf830b2b12fd859578aa2b153bfb93e65ea210a5c0f024925d77fb096b50c1ca77758fc67118559dd7f +result: pass +shared_secret: d51687f0a54626d49e07e8c8c272283b6b4f6a0c85c5a6875107b53c100264b5 + +# Official test vector 86, seed: "1722219cb5db47374eb0af0232c856a57f026f1cb09e5a5799f4c333dd422ff6a0a67c4da502faae727fb2d45dafcf35" +private_key: ffa253d9738c7f3cc8d3d9645bfa7b3dfcc722170ccf43200ed962315c4a48882756588b0ff85656bc8329c33d81dac016a5b048a25204396268ea3e16b63aff88a6c0b0344fb1afb0f530ff3b2858954ebbe8155c287b3c0244f3ba7aa05c1ba3c7bec8861a15f621d420653a44354415a152b774e31cc0d3ab9b08486ae87a406f17b062b224b75c81d3f1bb1678aecea90a9a950f86ec8fa357984e697d21c82b70a0933dd34e2782189fe64f94325bc3d068f9a56328f6cd0fc93e74462640998cacaaa7d4aa17496c4fa0414f55e2a5601b3651934cb566594027a9ba5a77b2729165a51cd457907a25786d4510a5e281c2dc3ed422a40bd23a36494d4825a32caaaa244685734a543c8c65b6bcc11db390c24c57e3821ca2a229052846fdf155a786cae0c3474c58c4cf6a4fc3f0cb4040a699198fd4f9519fc9533724b9d5a5c76e8c5f38d28f034cce980008645704ad2b5e2f985657047554b389cac253e51a862eba7491aa76517224d7d247eaf35fce78b0ce3c8ef14c901d2122e364449967446437416e052b8fa6671a04a173559f46015fbde16c11657c7f759242ec6950523be14c8e402a1cbf973c91ac94e004c00be513ffd90c179071c5b05fd20a3db6727b90325592fa06b220104988916d558817a734394b1ca7c95f2da093ff211afa8aca0c11bffcdb243e986b34b72d66647d05173ffa621d0a191e6e69cf7dd33c252a8267d50b57babe73cc84972665db7343eddc2926dbbc17f44e80e229ba494743b6201a0693f4081bc6124bc27067f0a566ee95b455f6cf414c6621536f14762ff8b1b36342adaa6c381656bf2fba2d96304f895b6b0beca0e7fc02603671d2a916a2b571cf17b060994c0d296089e3804cd1b76db57d9a23640bccb4adc34ba970b9fe131427538dc80c41b2891c0900b2c16a42018696490c4dd31329577542e0b56778281f05379cebe49f7276ac28cc0082ab23fb983811daa72c940b8ab912aaa41d3ec895d215bd4325268ac137ed7bb97fa09f5c7aaeea47b822ec6761740809a9b58470ae5b970d6bfc37c3092250218bfe248e2358600170b8c0b3444527947ac515211b9b2d65328e13cb33e413847cbad815412ef36c7e7a42a6f097b0193af3bb0c6049becb3051d60a10ba1c6cf4b9cd10583886172fb2527d85ca2714fac6a7352ead8050819bb08ab050b5525e2a093ce296a0dd7a0e79faca7a209e08fcc4366ac22bf63393eb32285a5dfc2198c0f3ae7f389d4283ad23e86a2e7972e6e4b22fcb7c5cf54353500d680288bd004a5fd28a280c09acd35dcd245051545b46598524ab218df38044f52f038281b332b2d6610d7fccb9f25173b48c8a2b18b3dda8c3b0abc4aaf28ff2b4a6abd085b6d8722c9a02ccdb96a0dc90922691f96769e2d9800cf5818b23c2f9030c929c3f11995c68c504c91b753496cf7b3b00e46a78babc61043780ebfb9f037668e3b5039663c8cc291db5f5a4e3352db5079387e5855d74b84045b1ecc7b0371a048f484c658502c344b6bee19e370c78b203260f6732ea55a0479453b4684454588c90e49d0a192f2634004d326292011f1d53b0ae71bb8284379d925fc139b581f402a9280dde30a9f5847fada70582a7af03c71d0a8a3147219f986c329bd60079f38f22e99dac8cbf4ba67ad77b0819334135d00888f476985441de439df0b81673d3274da42aa8851c34ba304b467441405559491662443d51e92f50a056d4fac1ed2357f00503f5280da63c055f923cda36916ba51f35e13cb17476a879bf88b406dce51ca85475b7447c0cd6c46ebb0722a8cf8d8250fbec5bbcb5b9b644238168151ad9ad156c7e0dd1abeda37e8d511a34b447195a897568b0809a02b4207aa8ec12b2ba73d64bb97952328fa1c5c19801cdb237ffa23115a774592c5f644bc60fe3b5b96a1689a90cd1d6abfa9a50bb430ae796364cd99d8e6261820282204a8dc81cccc40b67b82067fbc38faeeb068ab72ecf3a6af5259092b06b2dea6665b7901ffb6c2a243a3d2b4235552935c323aab07769aac9ba0a8c3813c536700ca8323ed662954adc5bf811c4d09434d0046566363775f4965e626346b6bc1b50655de01cc642b7f984c925b11b5442c827dc28a004c38ee59d74cc0dac334bdffb649aca864c32b4f082ab455c94e6fac7ac1c6c46943e0d4b811e48a80f18a22130589937a1f4e4097dfb8c3342aab55648486701ec3c36ed167dac427c7dd54a6ef844468a481595b933701a2db33235439d702967ac1b77f47391e6700596d52b534b6ef33357322ca6f1c6a6917b1d8d9cc7f83028437c125912b4e8d33db0d00b6d475452f41a5088a9e5d169d1faa564b220c3aba1d6c27a5b87aef7f4afb75442c0565cb78c7b81144aa3c209f9a808d43132c75399293400ef70551b51292ba501fb613998011a35153046787183580e485bbf5b81bb9fc690ecd0cb7449615a0b0134f559b6e1062d9209ca62aa10279e2c7475e48837e70a2ddecc66d1ba5dac35760a5a5de0764136618b78516a0c711c3c4440c1f0117d617cd64b55482c952e7617176443c802c8046012e9b774d0312a68c49c85a44d430984ec510212316d43ecc3d6fbcf9736cd3e712d0d3011b645107a22b9d8f51e8dbc30eba66e98624473880c3378b8bf933d6577cc31d0105e19565f848290059604f9b71b755e123b7401f204356120c769cccc2b1660e03e688a75fb370ca4088b46d955cb24b7073c8540ecb2a537a66980332df62196d8c6e5584b7ba8a4c8739eac585a812aabb33a5f591b428e50c7291415012467d49b232989c34711009806249580a557048dd3dc0d2d6599cd556ac325a5c00b8820f0c9dfd3336bfa5f61d6baa5e26b848b39ca02cc542c1dbe90ad8d355cec4c9f3548868e9052618c86fb729998cb4cd610c8fbd86429621e34d11c4943402c2598b80aa98f395a85a180ad402587111de30cbb41e0c5f6044219d6a243860fa8da94f2fb878c8625b8e8243731aaf5b511fe7b3c34ac3fafc68df6d4be563727f705ad41245fde8048d184337e662aeb85135df92d4c1a3b36f1c984079d50248f88523483cac2dfe959162a79353708d09b399e6534aa88aa5bb3cf3eb59eec6a5c8309c6980bb2e4681bc47b7dc2939ffd5439ec4473606166da1053e9467c50854712490b583ac02a657c61812336b47a5e2912cbfb4a1acc84991116b9cb1497f199ab41b98bb54343d188ae54a269c89c36a61be71898006bb9ec531d6006325a47a13995492f41498790bdae9a9e41c0cef6fc78f8e027380cae57c2372308a1b0c2321f8ba17867a1358c5c13095617c2b276aa3c0b36588a9c62683104db5c94643c69c1330db1fa9a66c107c62567f2898419008b9465355af511afc923415c545ea44f15e7b98dd09ec0d79da5893125d6125aca7adf78a32f918af2a41cc6377c04a627fbb28ad5bb65bcb16e3f32622f45b5600cc367348379894c65f494f79948e6e1941c10afc4cc00ed871e529c8573b36debc7c80364b01ea874f345271517b6c399a6277b80bfc1a9996a3748a0bbba5a24abf84d6a714695202ab7779637f85774c27a51446e72fcb59ee684873ba60315a84988b5936674833a93f06b283c6cc1eca1bbc36a02c8197480c24e17e2316eeb58b81a3f5a063b1dc4b20239818c8aa67fd96cf6ab52017979bd82431c862837a1b796d0744a27559e748db8da63676369795ba92d48bb11f9bfa5393c522403b6379b0d2c82beb17ef29b37fbebb387aa695d54c241d51fc3d5bc7f8316100021fd805d76a601862473ae3996b2840ec274bfc37bbf5119668dd0bb0e909fc2a28f3b3c469a9b279bc4810c040b70781f3d67c584a965a94ac1bc088cd2b61c54f301f5dbb82f110c20d51a6c882cfd3c2ad1e6311fe4041eb6cefd7681e75a72d7b0cf39742394e33328374e5ee5b0fb3b0e2c709365780ed3191e56008280188baba9c745fa5a8958c0ef28c1fb641e4ec13dd77404dcb031ff3b670a2092edf848900818c7104b3e457d4189cac8082b55c55573c2021fd32e4b331eb515092843c323b02228737b2c8915beb2718d63b8020c2b3a957fa5029638846abcda5c3c0cb2aef55d05c38cdc1755328735901ba53d685b939b168b9cc55aa0ae05fcb8815400a9dc36a58a1f4f90b3eda3060a4490751413d9c1453ec8cb64dbb679fc69073c9e839c40e8ba4cac38124c3697528404bcc6435c9c21a5b89cd05516686b4df7da8ed3bbbb9afc428a842a90bc09666804988c7386b794b460105fc5035dc3018dd494d421ae46f978b305738d5f40faa6dd68ee73df57c41f89935528e64270c9759d496204f118f77224920bf4ff7c69db5ebe12eacdc6012d57e2ccb3d690db251204dce3ce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 +ciphertext: 6b0bf99e0b0ff75905ca7bbfa272c50e2603e7c2c8d0d7a28aeffa277c279baa6eac0dae07dbaade7b9e47f863555ff913e0c55410e5eebd974cb98e3aa0f73bd7d7bd52c451acea0137df60c19ac883f92bf27fe16d086457c46820ab90192cd4f1bcfcf62d7904f8af6a028e4ea5e490f404e88596d0af72f3b2e1da4674e20e7a437f921f036aedbc3619fc9f0a700eb103146fc8ced979319283b7b32d58996c7d430fa89db2ac9e717b51dae25147d92e8ad5f01d738b3eb308087a4204377ef5bb35f8d02c707bd407a2b706e7832582b288a082b238c3bbcba73604537956c3d12614645539ee1aa5449b721776fcd829209e2961478d154f122af4e4e42a9a88a02579e2e60af3df04d56189d89ccf236c5b51d5dff985c1abc0c18cc85d1e01d8f0a95e88df078c296f50ea8efd6d792ddcd8d694fcd935206850f423240f860d94b9843822a8818d9e24589ea80be4ee48341b5fecb9064e863f33840e7f48d2f2ecdf64330ed811c3e9301ad48cbf5a8969470d12cefd1a927636f8f34d78fc1427f9e3876ea2ad0979aa967f70630a2c0347118b8f2fb54ce3e61a2538b57a941d3c8b14e8c7c10af9bfcabc00af5a5eda911bb1a489b45f95ae1e621a58d4c1a287feb55a8deb01adaf0321f2c0979faffecad7fc5474f62503056582157d7e920522adb236dd7a27b1d5d61f2b13924b78ae8fbd8c4187be30bd181cd57e138518d4914893c6ab475d23191b25ca3ed1ad74c0a519d19b3e269f0e9408608a898df75cc8253dd36641f280369365d532dddefbdaa9253e732f767641616c2d2232b0e3a7afd1b46acdba3f1ab7af1e422bf2c4c9b8e6d1585a50b900888dab0e2d7f421d213d8842ca007b9f5fe7f76c2ddc963671cbc896f5569a9531b5c22bc085f944edb6c95cfb6797586c8d8eeb40055aa002ca3110e9254e1af1a54abe82a0418bbab6b2325ecedb6056b7e0bdb9108f2f8443ae8279e0fc3db874cc2c0026c2b265c2bc9b406049c015da6c8d86a3d5b23de546a63b8d8d98d9e3cf0a621590e443d8147640621addae6d5c1cf2bbfe3427ab820ac18c2a0d6309c29568e064bebf72ba372b3ea006260b3b1b84363e1478fdcb8e727fcbb80fe0daee1cb4d0b47f3fc5690e8885c9e76e299ea74edf30610cd418437128bd48991ed47010b3f7a1536292da3dcf44b9ababbb2914f53d35f2a1c2e5a3ca48d96ceecc2e92089101e8ee50c9d0ecf93e9f4a68450a3fb23b34377aad47381188517d8d0c6a185a07d1de4a30ac45b328c8104b5fc35eddbcfac173e4b668d603ab703abf600d3043d6b64c0494fc757e530fc99b13296200c2016089472168c9230029ac155aa5d6ae83da44880a86483ac0a8384862747947e585f502e1b1e3aecf4c9c4ac62f8cf348b23e0e015665d97ab654f51f624e5b54efe23b83daf84df2812eb434393193d0ca8f8c7f60f354508d5e46c97c775417cb82b66a4d9a683c2d9397e3136ba9264ff9cd7676995932d9f803c6ebd2d446990bf5313cd4677fa10ea6d9c5d5f3bbc00667fca3009b69b953f22c33fcc800b4e9a96627c838966cf00e2b5647725ab18950de4fdda622b8d19d94c3b3f188068b4e538c1d8dc8f69d32d8708efe5bbeab6a9a3fd9bd58f2bdb4691bc72d933dd6b303e586987e57a212af80bbb763d43b9adf32ebdb28113a6f3911d95a1b75656efc36c4b950f4b523bff785cb5eb1ade5878d53c74e113a1f6f97abed9bcaee8d5a012d9453720cb4217a359d5b800569626e63b74fe4439df428f380aa00ee9563bfd8fded9d364ba45ef5477a4f27f6ee637435bd5b7c970e181733bdad678dda5e11969bd2d15504f705e4a3fe34ce6d6457dadc0300f6640a8d6c53fbbfc993c42f2c26a9dfecc04ce2bc6e63e1258868f1c787287e03dd4698d2d400bc5857a56ea37d8f02a38a7fb02c98f0c084aef51a83e8c4853043f71fe70bd1e6d758e673260aac5b305028091fcc44ccf993fbb232462dbdd6694fec69487fd6338b4a7f0aa0c3c4286223566cee9c4facc6faa84fdf7fd41dd1072353c51f9e5d99b7a15b9a7fcd960bb747a8a4a0980b99c847db7e6793b65cdab1abe753fde758c55d6ef85bc81df59cacaeac2368c255374fe9d1f94a2c482f40855f7cae9dddc131268ffee6a5616312893b819e285390ca57d814c9e3790989a29f9460 +result: pass +shared_secret: 73e86d2bb2813c76a8a901b8c665497e2d16615c5b2d58c9772306a3d6bca39c + +# Official test vector 87, seed: "ac139b78fd16ca0f26d6d7f9e15345c888d857b1910cf38d883339b37ead2dcac30f7cf10176f23ff34b4488eb79437c" +private_key: 3724c5ebbc753f55535fc5ac0069c238d8b7c111bb7eea08b59999349bb352cc5c18f9926bf676b53a15c759964f205a322a1c88e1b4266c2d6a311384216ee6e4625c15414b77849706292fd79753163975a4be5b9410f3d261e1931c934380263740d2a2666d861010036251e7061f04a6e8f8acab2907edb1cf01f906bb972b53f79df07b3ae368411913976e73360b077771b16489e83818b6a176223097e2397432c9fb4bb013b2c8fbd2815298b0214b97cf8b740aa4bd89067ced36be138a3d096bc51f606d3865418610083c71968fa41009530931da393aea3ad975423829233bdb9b0095c2421a3db1d914e502c4ade29c408c84257a2a1b2a100839600a659026e6362be2acc789a12832ce5d876533862c0d20844e903516448448c0a600b6c7cb812a3847037cfc0cffbaa582b9028528b52580c956d4383d10155dd58bb84bba99cbae99055574b02aea64828f4c28b8a0c19a4009d6e6c58c661bea9a84f6e273b9c50d9a8048ab144f168912ca1c5efbf87997bac3834300960aa1598c15221a1a0de795f9385fadca44cb036972a8c37dcbb61c793d851214a701b3f23645a166bf1912a827934a32a58fba6abfb41a4ed2331ce0d08378417f42c176403a9ca5eca30370ca2c523e7a294c7f9a7cf87b941ea47b19928fea095ae42038217b3fa0b54caecb60ba03a8a99745982835afb01934e1bd4c432f3f3c041e96c08c8836e267a30b8883997749b56047d182758a683123a91f70e08b1b42121b666c27d4c902939cc90442c19079e53b87b834baa609413aa3698d365e5bd71b247a7f0d42184b166cffd532b0691563c7874e9392fb1c9c528387ef3648d72cc063546cf22b23b6e68c340a23895a6573f80f30e3ccbde14f56aab4fba5505314605d5311ee89a7eb5cadc7523716885b4150bc07318902657ad101594c24c7328004a29cb8caa4a3f48c1aaf7c289a063a6ed690f72625c6ebc7c10bc500b8a0f5e807655b1470a4802fa6c3d9fb0beee3386858328ef97e0b94518a455c5c6a3020a70a9468cd784a38bce99492cba4be53624925c3f74c533aa681a8482fbba5c15b026462956fb4269bfbd3591ae33823425ee57398dcfc1e7f3a53fdc6b031267e59f0c82bb4b7ceca3cedb23cbd29af7c797867493046b30e1264141535315c24a03f08c811716da610726472039fc1cdf489595e072f717a67487b842a6c8b2cb33ee9420ec5428ffa6b85a7311014595f409ba93e8b10100ac45bda836a522c01c78fa8b904bd422ef17a93d1767f31b02b7540ac4ebc3cc6025884ac9fb0ec996e537608695b84c350eff27a15f2b83d76b1622789f55157be7274b73378994a997d564b819552389918b781c19317cf85a72dfe66bf8c44b032210b9395ae35f9ce61d002a2e4a0d6f823698698a0d475e6d90baf596b83d2628b5b345570680a13b56c27a9a2d7be01ec655da3c1c93886d15b6b6f28404c85b37b09701aea3c50a146be8bb93b10c65b96248a02bacec816444c911a700f7acc16497c536da22ba6995f89985f59e0bb5a16984a005f2c64584ffa868da78d33b44b1afb5a25f85c083ccf6db93a59720aadccbf2598228bcc6da0676fec92109480548e421a618c0f0a519750d846d4818f5d1a625b877c64e9ccb639aa69186b70775bdd6612c7607ae6149f52d447a9b2946af664b493805de93e9a4846b734c0946822df415c446455cd037fece9302eea5a856208c1a3bca48c35e88cb329f2cdd6f56a1b89cb8ab972140093f2686a2cfa1ee17ac413ba6f3f83723bcbcd933947389476ecf71c676a3c327c9725048dce400f791c9eae184aa95c193e84040cda88f1a497a2b90201c95248abaad0c8848d7280be076ea7b4ad3bf083656948c952417ad3bdd28821c9c92e59f90b5582bfbeeb560469aace0b1e7dd53d29f59f12b767355a0790780e19716b588c150603bf3680464f15aab3809ef240b1759288ec719b64f7a184b890060ad066a41923f25ad87b55ae89a1222b4bdbda1e07631d95c704f6866b1f9994f94681c21b41c3d7972ccc2b842759754ca826e433497b358c071f306a464d3b0f7950b5503304910529a6e476cce974488443562cc11dd13f45ab1926859952b67fdf277ad3cb8965c1a31e4205e8fa992213c49059a409aaa3ac72b85837cddde4c4ac42a9a35ac7fb80ad2d8c1eae7019276b1f3f3a6761602a01d99d4d050c23892427d6267efa092b587a5d2376012cb755627b9e63a2a04432260aa1abb2698ebb6075620ff11b01e4d049de698966fb49bdfab73675586583c744b5bafbe9692b6c6c1448899ab72a8821b52b4bc061910fcc70beaef424afeca7d3737f4c7c6711b38dea919e1a13c78160c1c652a81210c010c48908b13101b04334e6534aa0986ec01a86b30d41cba67e573ab6b0cc1a2c973c0041bd26721b508a667bc28e010265b762a223128e092eb512bb9d6150af6840581514470212d0e5c1f4696e45ab102a91a0848497e8a7a52ef20c85d7067e6a1f99e1c0de84473b735bfb001e860c3194029d5a06484920bb0e371114ab2f3bd775248a9449d2c19de5023876931de00dfd609c95c98c133bcbeeb52c0f713a19176dc90b5143a6876ab45b7f717865d4b8f0b8a2e6a45f123b85c8fb584cd3c042676ead069cf9c23682aaa05c1010e122473907547d79b0f8b61180014b1b3a56b88b3b4fd97eebb21eaab37883889a37676c61061d41b40b49dc5e68f64ed979bbd3da4a7824b32fc0bab9985a94251fcb740bd2b103f9c21c25bb055043c895531e68b17a3cf3190683969d6299c850b7d11a6b7a183b4b3a3daccc41d3321f5c088035102ab68b2938975ff180890153135e284155f971ca624c19f15ae4a3023f20cda6d404406c39cc26ac4df1665a3c19107a99bb289176a09e4a7c197ba72d6131980264a907b605c1e1791305974d49b604c81a9c8501ecd0cdd32a5f94dc3f64481164323736435d1043b09fd1ba63ab6956e4216ce47f719bc10f0c2b2830c17886965188534205c3f8818369aa638d5902cedc28b56c9723aa4eee8485151a270d3c1d963404bc265b912c6e52099df9ea72910674bbb8493f670620645fba16c0e6c73ffa20a99d6378433c6c55ab20f0a40c74ba37ddda39d2ba4d7f34c705a4117c618ad91408ba3bcce9fa9900d2650fb109fe2221f0f6219c226b74e7968f5aa0b3e3575be051446b1b76b8a7785a43c824c73688ce495681fe723d97b249e5a65a961abd0d61527d4b18027b00dfa49f4d213253e80ff2a556c48ace2b6a5122b42c2d15622e158e2613b23e62c6398838aa821cb05a4424817f0f9291f4ccbe6578941070b22b9c36bbe89ecad318e4251451a80202a70e1b2274854809e770677ab76c9e9c5cf4e8621e4338a279169ab46a6e5344ca391b80eb12f9b8a582105380384f2fe845b7298e52803989211498b42537b8b1cd22a59085bc00941f190a66fe77a1a6745e8af09762751c63656a26692bf1870df08cb861abba73b50ac6b03f880844a2c6811a031eb412501c79201e686ae528c84b7606aac09bc42265e77b56fde93022a71374693f9ff5787fa0855c79321d147831ca28e7880dfe1c15c66bbccdb93c0e7113a5eb9b97285ae8717bb87c1f071c284c0089fbb5a7b5121770950d255aabfcf54f1c18c8d9b2bc4aa253d5ba49bd2944a8c440d01343f0770f690743dd952f4f6692a60bc3360588f9575636748e3d321050c42c11d75b69d316cab62c681ab48f1880a9d787449440d1f1cfa0386613c2b3d25494e7c17d3e4b1f5a5780a9f088f00a9d6a79c6b1bc0e1d501fdb398421a19e316489bf1105d9f79c74433c82b87a775ca358965e8b1248134a94179c20011121aff04b95130f2ea20a0deb2d3ad8a0f6086481d8297a10374602661ce031b99012be53c70110b53d28966d8009ce6857f778006a304fb402769065c04d25b2f3aa1bae18a692d7552bc9805897c9b65a930ba11c6f3487801284d85579a912664118075b7237e66183c66510202188dc8abc1aba9524e0450b7a29b4d6b5076769b7e419fa4a63521619d1f76cefd0a7de67c7f5491724d063a13bc27bd20e9d486fd5158d3b7c04a97b95bb06895206058f94050dd8c262eb70a73746cf279350125807c52ae8a29db743099f259c9748318f391e524c9d8b46932157c94a8179e02897f33226ef1964f4cc92c7323df35a7700daa10170082f0664e4b8a221da0b5da84f43b79584194aa8c18724a6452760365c316c1f36212811a8e1936578653878b2372fe58505e7957a3e0e0f1ac0d822a80287d204eb6a446a74afae0ccd1859a2544aedfd8678b1f242830fb21f34f7beb20a96ebbbd6181890cee3bdcab29697c5aefd707f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 +ciphertext: d93e928dc35a487d9008fdcaace3165118ed7938a9a119b07fc9a2110843cb1f43a8353b000f2ac5b46f989a23991c018f9d43e53c586322fbb7bf31cf3d28d93eda34863ef22f6b51001879614bd8abdeb10d9728183d0f2e6c4c64f9f1ad6790e5f27a6fd601620526f0e5380778bb087e2dd437ea330340444af5a65eff203fbe231b0fd1649218fe4592bffe22f6d4427d053f22cba52c25559c5536b262ffc21c1c384bdfed79a974429f9e7158eb23802b3b4d6131817a65efb093629d3ec4a0cce7c5e8428954489a7c9f10d9efeeb9ab60cfa1785fb0cce23cd7ec12882a840a56e106e4f2251ead429cabcb92a1de08c9e79776ea090e195a80b755d3807ce234e7ca665b3dffdc34f6f30ed2a67e246f8008ddb9dd29aee41495151549c6f86d8233da909dd49fe814c8f3213197bb3300e5cf5ae564e55b0b71c4016067d416d3fb94cd4be0f200d403edfd964da3372e7cbc1fedf96ef3bf3f4f2038877343ea9ea1092cc40249aa46e5a307945c639f9c653b44957c8f121dc4c84cca6a7a2c240f13ea6d9020233f4f75074501f100bb53dd3b7f9a905c7534edf518efb4090c47bd52f09cf98190308eae80b12957f42562d2038c85d1f1712fee26c66fc959577cae0d1e699f00aff7ad2911d6826879161c9b9b12cab1412e11b8a42502acd2baf888b82b8f2e06b03c6cd96d8a2b44a9625d029439d2e0b8f7723bc252e6edd566c394a9ef0f5496ac59e04f34eb0eb7cce7c446ed2b0aeae5ec63d27d7f2a257ca71763af1a5e85fdf33afcfc1ae8f7c7b992b22bf57a8f62b86e7da0aa00f2b2fac92aea4598b270284640a285db6a5a37eb74300f7b2814278e5813a213d89ba2e3c8ee000164d5e14cbdfdc869fcaeefe3a5d4763e5a21c2b27023f26067f2612a5f4f2603dab06a9e885b86aa76d920ecc59c77e9c26b21e5ee02cd31cd740732032c9bc29c1e21b442435db3554edf0dcb8df0c67c0bd2c1c9a822caf88fbfa10ef7bd4bf7423433c5b24cd61f8fb6c527ed516d64890f4a376604b9eb126a83b435ea7e8592252ebceb331e94be13bc4a7a3521f9f6ffee6068312a9ee6f97a9be5b86a8f6e4ab6a9174ae67b05151383bb79781a532f6b6e3101c48612ea76e98de53e13f3a7a58005e3333ec353499ce107dbac10dfdc83671fb506378febc6debaaed17c71069e9b9a51189d76a8504950682305c05a9d53b32c1ff29d7d8ab2b79a5f97a304696c5de3076504d0118d85d0e02c1c961774de4412ae6016108506e038dbf7deae8201243f252bb6c9969ecd50dc198cdb7c48535c1d86fbf56b8e138cae78d1baf6d76001d668e93600032374c1646f19e89e73318e74e90404b3091626767a7fc610771e9cc7babd9407c1de14d54ec1ea0440a320d0a050fc547309d5e65b6be2ca147f56140750e36273b7a0b36d689f90c9c8f7beedd56eecd931c5ad003a7e7f892d029eb5752e19464c273084490bb693677d448a797e2edd6e60eaa484e807a5207b6c0e5959aebf4830de62bf03a955acd692ad37fec58d531ecf49c75582a77369af12502dea9c051237e882dd7399ac9c6293c98cee53895c16efd7447cf15eb50d67469e9f34d444a049d5ad57116454b322c75f67f36da417393341fcff60d5b46bc6dd4a14bb53d7b9b2a70faa788c8da1146ae4964ff5edfc3b239a435c4c49a3a3313bee21295240eb2c2781626b96b99215e356be5f56c4570ad59812ac2944465015fd5f1e098a6969233e0a5910aab8096e75903023f3d11aa37086bf41760d010da3789b157175a4d255631f37212bfbb5a35c0e914db64d31e5cff36dcbe9304115d4f0299599b6b067ebb541986495584181b5f02a10d8e51f20795f2a2ae9e6da72e9682f0c39e70a5331f34a3e11c0f184548f7775c1ee7aa1759a9d7f8af4d876d0c94db0db580f720d0477e48ba4a74430b14635be23632eb1ea40cb7264d786e3d474753a8b8b6c009af2c6a2600d0fde3e03d108ec237508b3daa6bae725f8f9398b8f61c17510d135a80fb939411606080b9f972cac3fd4b1b0cdee99752f42f41daebf3608a70a66e569fd37d849fc469ded909c8cbc41b2c598b3e5e1e301308f2765eb68f1544565f1e1b950b26d16a127601c0e94f61920806cccb9d97f6293271a11cc0de7551ae996c6abbe317bb7f64ddc6bdf63df09fab9fc83 +result: pass +shared_secret: 17b113a1728b3b0847062a3ad34968ec3192cecdd758fa1c3188d57df9fa0326 + +# Official test vector 88, seed: "cc7152849c98d5fed2813275d32069e44824ecb14eaef425ce017448cd9a401c91c06d0f7eed6d22b7bbe8ba6c429ec3" +private_key: 081ace51252462bb622ed578c65c864be5210ad1cbe55b6288a8cc22d297edb0aaf549bc240963f0c65368cbccfec732a7345f43d563315442aa97acaee1036c58a4fb752984ac6e85c4b744f5177cba665ee2154b5c6c3c0455b4cc602d9c411186ccaf5c1a1ec51558fc5eb1713229ea213f261a249c225566c5d9333b9a579a907016406b709b8c97a0d2270aa0a11e72ac51e1a5192545c6515153e193ebaa7985bb23a47138bfdb6f96e47e8bda4042cbcd993948ffb7ca2673c4a3773e9ce5a97c34c543ea24eed7537ba8a5604ca316aa38b0b04beb922c9c62af8e010a8ef9b22ac92fbb7a6035e0c842c3caabf12c90b706cac75f6868b26b8ab652476d520662faa46ecc990a4db166262c19521817b3a82dc3b8b671ba21dc4b06f3150209f890be837882570bc7603c48026c44415ed938146c57b36c361b7c0b0e04bc81f532494a198af962208e0785ec1601b57967bba750d4a34bed69c1c4b2982b97a1fc49b4e7e970307087930b32a44ca7fa4c4bcf5a91e1b86a2d8c60e3019b7cf98f634aba74c84911ac4b159636a4d49d63bc81fb2210fdb40bf3b2a467cb101c43c68473046cc4b6b741bebd71b27a56ae4de70288d74e6eabb2f9a1b334f4274e7369b7618b31316f5555288ea88310b97ad7b425d052b21fb42487331cdaccc4398bc0a67b4a28a77a2396327a95cc6cd98b54058428d9a9d7a45f83ea5e1bd26222c60cc3f77e0cc87449836940815279ecb65001c5bb4a599771848e10a64d8c4ac30b57c6638fb11bb1350b1d5fa34153804556266fc8d70a4b56067718c47899a134e36a1815a791600a14f43c9a2065ff786aaec7a7c4571546ba339dbc41bd98c462a85e5b72cdd07c5af9979f74c32b2d501f05a57d5d659958b78f26853500dd47f0cb8ae5c08db6a6a97c1312ae3c20bb34c4c3a2a9177cbc1b152c2f9940937433b3414067093375fc6bdf44b8738b4ad95261e74371ea2cb2eda13b57579cd2a939f7c9a9950a32ad07baf63c02603a626d9c7edc89817ed02bbb376dc2c523b9a84e45dc811d736789647c5c291aaa9a3d01511b9237a56e26130445a4486962ef8682f71412104b7ffec39b11fc713a234ae3087181a2ce5a2a3e7bec354e2921806b7c99c57c8f5bab84a83dd75b16147ab62a39064b530462e40d38c4971c18bf39f469d34c12dce7707ad61cee073c6fc0cf6ae259ce16890c2528a499b98ac82712b8aee7225b78ec01a19bbf5692366e737591733015616c38e30924044c2f551cfe2c90755362c34abb53c59fdf8a50c1e392af7a0a739a5626246e655991c41c9aff111e2c21cddd5242801561747306fdac5b54cc4e76543e39900e491cb24fe353b45b38de47cb3e05693c9525f88b4886e1514564231caa5f33d776cdba9d6ce8323f7c02ff9310c7227a37c172392a85f3c234f73c52ecf48a3385c310554c04481d28b59185b8cdcf80437b04087a7820e94b95e31189f2eb4a02e4cb13e683971b9d9d912d2c369488a1037b468ca88061b1a96bb8acb2a21bc54b402cf84798008006caeb9266b9783ba81482f02e19da185aac95e233659672479d02c0e1a418852230f28a3faabaae8c058a995cb843d98e048499f7250e1b40c532380917fb8156d0b5ce338fb6256e31752ba16aad5b9c7e1017188de86e509109586cbc59916993a5226c13332bea339716a228cb2c6a90b485440a98d6cba8c5592b692763f853f56c35948b0860e087a15a78a134c3585cb034f135a2b79d2ffc73db89b65512253893cd2aa937eaa1ad24d0aab311845becac9f15b7ec1b6a51aac4aa45c337b44644499cd464cd6f717472a08cedb8570c8714d088a2cc21c4efdacf8cc59c2de91764141acb26851cc584484728fa1290a90338468aaf944c943beb9d7295cc500054615ab770423f82f329e3d3b751c70589c693009d7c1634b5c43ba5b795ad3873ada60669835a034d61439f3a897c021a057616f911087bb626ebb5a9e6d63e896371ae4192c93471b66ac0544131ec28074cc6a12b4364fe362c2fc68f359a7313ac5d744989bc33b1846a2b0db449f84a273738c9f2d98e6bda993dd514f17aa047e8b72e413bae7495f0b58b38b71d85a8cfc1f183eaea4cc281a5ba6a876d7233107b1beac2871f16b152d08e74e28a250999db0a6db7036711a24370401ab844cd39b124b8d42e8a15b2bdc85fe3b11c9caa30ee666f260ab0f0e230a5901229b974446428a9e24680a884208a2dfd3899ff1a4920b798ab275d5a10b01503d000c23db72ccbb3a91ab0186fa7850de3055e4531439bfa9cdce3ac888066d17469dce07f76d0397bd46a59c29a4a776c8b7310021128dd248beec9296c7c5e95d13aae21303127778b653131babc17494f0aa63c18260130315bcca7a8c8521e7b9c9544c1260bd201ef23974957a6a4d3658d96a7fd4cb7daebb11e5acec216042cac64af05c8a7db570ceb09393c7a24f5ae305280b1c22b9d68b02a0c521dd6393c20cb3eb798db457ccbd869748aa2cdc8336a58162e56528c3ac7a7bb41e2db1a35257b6135247c7802024ca258f03de2ea93e2f6c42e539617d27fc62510ea016deaf787a2b3b930165ff1fc8e20413b90ebc827581b74988937a018f612ac4098514480212781c4ea128680448b58a5a296b35020c6668acc7a39ec329f3c5eb00c44f43c9ddd612c0860031669c911e0b4d5d20f45ec1b6c5b6be399c2bde785757215be7617aa6a57eb6b797c8c5cf774274b2463d0c85e1343554ba052fd9b36da139e13e04ff18427b418282a5642429825d15636da6c45834375d543714e80530deaae0b006488eca46974642c8307aa5297d34619dc39863f276189a20b75673744fb934420a138506fb04b0eb2e22108c1923784523e767dc70ca546fb820de07bb9663333e623889279bc596b2f559f5699c272c3040602a0ea98c878d2af1d7aa697aa83f1dc10e54017e2e586b220804588473c4b9d05aaae6ff9c038d00f953547ec748e62ba3426001c3f669941596c6184b353d3919e591df898831eb11aaedbc49b88c8187cc13eb79eb09c7e07545be6041a9bd0a70519b17b5479aef79d105b83d74c08c719843a94bd1f76baf7e3bbd6795e05830184c53f42061f4b6b0321e2561b4c474865a0c825c96f9269e12742771c4c9b20b9380540772a24b43c2ab3051b88ec4760f794c17aaa55199e39eaab54c53aef32bfd339c824501972eb5ed299908ff0ab3da01460f106919b450bf00678967e45c18531d112b481918fb7023efa1617da59ff391b84b03ac199a1ab31208b918777a2c8a9706cc8359d09e4a817386ce09757c44350d10c4edf02625ed06dd3db07514639f67828c5077f0eb722f39587830c506c4bbb4bdc60a1b256bb157ed4770e603211d508165edccdb2d6cf37f039578176032c2158eb3c9d48921cb387339267bb728eccf97bf31309d08611b91271ec698d8920ca3bf334fd8765b0170608726a6220a3ecc14023f02aa4f31446b22da93597e4a46d451cada3965ef2148a832221c4d8a7d12157d9b3bc69fac8626b2dd1c44aea272cc2125dc79a4f90b56ea75144037a4f0060c33c5b6eca4572142310ce956fd6f31d23c6c9f6235057362b884a014fb5867b2c1976127a5a287ee371b7430caec5d35b63789b31d176d2553f82c8407f585c32511e3f0cba0ba60537780edc6ca22d1422ec8c3357eb203ee68c8fa135b0ac2836e027fe3161769c6838e98cd449c14ef2b07afc714cf02d91d387a27472217c9ea6bc5cd1249bba38842cf1b28701a6074ccfb7316dcf345acd84660d02381040cbe8109c5d423921b84771a1cba981c5fb08c5de08ae6cdb38fd5b9489357df11565d48a7797a6af82553225d73cebb362abb1ce335358c6776d9fbba731883ae7cc517e0a0a3bb5b970e4cda95a98aba47d9e2397abd7757218c5d7bc4ca59b70be5aa4d7b62afb54048ffb0c64919afb746120b383958b715d110e5e6ba666940328ab4510fa25e9b43537e566ef760d2cc52b07e5bc089b8ea9e166c513bacbccc332f36d6afc379e1a838ac24ea35c1260726d029651088996631c55e846adcf36c792c21011320b2287973a770d2636470c080b2893a09bcc8705306c5b364837b7cc89a9ad1fd9c1edcca9a0b4b81846c8e088b36fe361539060cc08c911c9058bbb0839183b0c59302171826dfc7b6fb1c623dba3f0f9b30768346a7714481b741bd0bb7ca32ed73a00a6a1874d8b7369f695efe75e00f03be6cac1476815ad889c69ec6bf7fb38ce9609c174b902b6047ead37da33285d1009b83c39ff67773cc46f7b4b2cee35e8e95100c31dc59eb9d604833a540d9922a7dba53d67a38de1634cddee1b169b45bb9eb3646e55fc0dd82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 +ciphertext: edd9d2379c9063a3b97781b2f9bb06055ee94cb8182157eba71b983ccd18f237d8f9449c156ece2064d19ae1dc32861784c7e5829217397b27df13a61ce333f9d48677f1e4e6cab1763128d2b94aa9ac7f5785314289441fab4da9d6d021fe9fd21a53b0d18b58c8ee916232aa19e08da9f7521d4f959f85f32f3bbbbe741b021c915d5702a97028019c7dab562b9fe01bc3fa954e71bde099de02c842ca8304f0214c77741c901c0add89d96a78b1245875fe0a1523d1d03b7a6637c2fd6dc919e45d4ef10ba5e01996a43169dc5cc91293e382edffa16db90011f2aaf64c3a3533628f5739a2887c56af3dbed3486c2eabcd3c1d2c19667cceacc21b2384a2f38ef0de2969884619bd282af2cbf2091a959af8f26a15471b1637deec3885ec81995fb516e63c7908eb189bca27aa7ce70e7ee6e289c8aeb2ea4f79b9fc5bf0155c3cd09430f8bab8c70033afb42261b957ae60636204ef70d401678e14cb08767b22b8e22edc120515d9203abf4af7fd12a8f3dd908c7ecaed10e3cfadb3408401b6e96ceb58f71c69492a3956fc1d442ba092477e98696cd544f52410614622296c6aa73557878dedb5c5ac21801648cbd5be2972252774a54cd44b801e9cbe9ed13f73f3ff472d3f36751f7cfc5a81b93c0dd7bd825267ae0613a4c26b2d677712c2f78068e61ebbdcf955e44edc66910160d0981b992ed92c91a21fdf985d2934bab8e864b34fd125f85972e36802a0fc32fb2cbac4074526d8341a9098c9b0a91ec9d6371331791af6f6fc90fa5fbcaf3086377cfc141e0d972df44568adafa6bcdd9bd3792eeba068d8f07903a9fcdb2e6b29c5e56bd748aea8c06d502bfad55f28f750d0331e24c96d3760f796f12c4e6b97c5ed58b56836899c81ab3ac0f28907709e8304c95f6f67c80bbcacf1c94aef29ceb353a55005cb3fa48c9b39973dfe495cff4d483b1c1ba3976eded81e31c5325c7b6e177131d0a72315763731bb905cbeb9ab31ce7d1bcadc0e8cc9d82d5ce127901578bc742cb04075622bd5ccc85bdda27326e5f114295c2b31033b01094001634aa55b9187c5fb4a1e3be6b71f361325a54bff9fe3380488e0f09b407e3e53f2266133b8bc80bd96f7c2842430e653e7461bfcc5a21a29838103b8dc509cf01bb1984beaf43d0e5a45092413d396d9ce7f2d96762be56e45b530bdc7ee477337fc4318929097a60bb4bb88df9b4bb01b6cba86c148f841121cfdc369083fc0accc80d4e33d582427c84c34e134d06ca2023c09708d848a7c5cc6dbdf280c1eaaeab8d2806b53a28194b9a95a1e2509f8fb40333564cdddde4bc34e6d2c81ffdd07bdb5546a34af69347803c14e19558c82fed568f5d3da003618c6b570f59c1913a44c281e65295119219ae5427fd7683913402e41d60775d27089ae706bd00dc94bff715a2fbbafd9932645f90da872167c95ea89ab446828230b0be29b93e214caaac2b49ab88e420732d954ff24d0c6b0d07b60c34d9a25e5237cfc2950f01c10755631a30166e6fe742a316c3c952bb9af53782a255aa58fb817107de7bbdbf589a8aa1f1e48c7ee493117a3c76ebd891185ce21250378a39a495c3977e5a14ba6c1ab47ec71e5a8f3266046e50009e09d7544945d71a423cf320cf7e18d8759df9a027aeb38799a1590d74fdad410e39ac9e1f654d69ef624a1b9ba1639d1af179930ab071501f0df65be8a65327cd97cf028983077757f693bfc4fab29fbff36fcc9cbdfe23a84551f9da0c93c9905b31ada24dea830932525402db03ff3dbfcfa562ec028495c5fc1325a2fa5ca9251ad3853cd2d2a21051afd4b14f6677dc897dce4471adef042f067802b4f60559c0b592f18c33d6ce638dc2a56ea16479835e447a77956aec7b933060ca8ae1d5a79a9e5a8eae8631076de019ed933ede4339f6bcc01eca00845028001653f6c61dfb9a9089e4a84482ce83f1188f84498df81aa890e361a1ef0d226e6553ee3c079e796f7be70651b2eccbb38c7fbe22cad04f777e4f73d11569e3cdcef469e703070c4a195a499af2e41488f201d9d91d1162054bd9cae3949d7054056d487f8fdfeb1c6389ccdf76f26233d3635c4e1c4b7c831fff636b1b63e9d683b4e06added2541b5c40bd2d455bd50e2867840add364897c25daec0ffa4b065d78c6f9945868408a65dd78bfbd3d4710e6cbc5693b501570d +result: pass +shared_secret: 5ebc9538f357baa7df0165af3e7fec1af8f4c1c051a214135c1fc03d026cee6e + +# Official test vector 89, seed: "96d9a06f88ff2c2036fa8e914b89c765e4a510b468dee40f914f78858c811857efe9fd0e17c0048e7389e8d996b7e2b0" +private_key: 18264c57aab774ea1ba3555c788511bbc7bec8d072c953579d7b8558425123a057f94bc5670c85b11b81963731fc611bf751973a1105c7138d9c8ca76a559d20d25c79b64b70a91224e8110f623da7097668bb1ea2a17d8c085128225af2506c3f52a1f57011f849cecd605340724aa418ca6a86204fa02b0efb0102e4b2d6f34a2817643ba33561827b3ea92fe0270fbfe89c3f84438c4397ebe8a735a77cb8597ad73b95d170b329d491ba624660a01edd634acaf45303133127e11b4a3b95804620a7c6b1f84bbd916744d18487a5d9a54697716a965b7a9530dcb406ff8b276787ac9e846cd037a00852662a6b73e976807615bca1c00c1554ad0282b544daab0533b1ae9c1e71061dc18a79486c7ff9f0771a8138f93983134c5cf123955e748ce224ce925883c3565910088fac9393d423ad55ba3fad9012faa77957d88573a721f372b2e3fb977de30f72116090cb1cf02b0c1ea68cd23cc593e715a6a53493759f16a26a5c5745787115aaa233ec305b65b846c775bf36a754c8d563e25ab9e7681d589632131b8596b36a4fea7382938e121c38d4b2b218b90d4c602354a3bce5b58c4841c8daf61f8573b7b1e46f38e203bcf0a0d0981576a45215f2c7339a6fe91839d899b995b839b9b465aa942f994913b906698b9a31530b0d4f096de5aa3e885c6ad9468e1e674fc9b2acd26c4a20ea5363f32d745a0af3f037adac5350f07c5ca17738a243a29564455290602884866913d62413ca628aeaf248885b7517033583e05ccd55ac272b8cf142bcdf0bcea1a9c271e747c8507fa6bb89b1f0345300bddda4bf13b40dd323c860f237d8f2b14e03cf02e923990bb8baf13fbfd355cc3cb46bbb41b2f265a403c58e440306c7ca5a11cf2265562898b2ec28b5c6d396a1c668fd95b02e3451621a2d7212793e0921324450d601a19c975d877c84a91aa4b1e381d4f9256c0428c32809857b1cce8b7ba412a3f7d4b3135954177865677c45191294636241609c533d548dd5e8131be776724068a59242c1263e55abc515e4b3536c6cc836a140062e11dbb43ef9831a012b8c34714467906b78a5ed8a8e515258ddc6abbb0a110b6451544b78d85cb0dd78894d9ac491a7a5f08114833bb9c7628dd4061610944fd3a92205d7be722a8f2a51a07d75ca660107254c88653a79a8d79811543dbaa5205c290a4f615df4a24e7a7012155006db9715ccf712fd65876013a6c5f12c272c112db75e0c2983478328066496c34bcd763703e012076f85564719a4b477b8fc93845d30ba64164b28fa025ccb077a457f029b367ddc001b8cbed771b391857666ab88672b4bb5e4b653a8035225708b897fefd950f8d9614e310ef1b65942d53ba13611faf259f0a02c1cc357c36870b8b747fe1c66a5097ff49607007c0f52a74017d798dad417cb308ba8b0381f692081c51fda5b21cc5a471f5321d2128f0867714b141a37d983f3121054934b320aa2b044ac971870e0b2a6d14227c785504d341e3df90c586b5c66243b01b42f6686afc0c8b6a2faa636e39a0c550a7f61ac5af769e2573cea2a8da6b8adfb03b12c74b330b02042e8c2921239c45641ed1899376c7939c51c08a15e23493c9b8a6396c44bbaf4212b05cea4668a2e851c56ba56abd11410e21b7bf18347cb020c33429c15b6658248dc75224189cf5c53b920068c855b24f9809cfdf8c61bc9662e981d8dd896c8b99ee667cef1a4cdb2f14df05435efecc3d974cabda81dc18192bfb39ccd144787bb3a6051b06b1082f2b75eed10c4da0132d27c4fdd854b305b02c66a04dc50407d7160f1d54929e91a6a008d0a28cfe109be18774744250c69aa7ee7bc41944597311c87438441cb59b082a5348e312b30d66f936585f356c06d761ecb04b48339082f1542e3f3cd885aad7056a02d075aa825a3b99848c2e2ba518aa4e6662198fa871f744bff97351e613cf2e7505d2115be9a7386680300c1a985b39e0eb3769f73576eeaa28ed8c0f3b76ab5acb302877bce254fcf3636b4f6c4e0089d59305d5f819be4f380d669186a24214e9b2477334c25d23910907240ca8f7e1720dc8abd38e2b88246be2a55c72f6c1db3840370836f93992893b98f42f9180778795830ba59f09650986e5197a4dd239f99e7b5f8ca36bdd81e5969c6e2f8a58829a9b7697b6b36983e896e82b40738740fa2e6b657616b0b4cc0b15c2292eb5b42550f812673194b944b830051e4206670bce9734f53232b408a6cbe7542712352c453cac39741b5b940151580482b4752d16f58a1c090b101cf985034299840a186a1061e59eaa300b66fec19a3abac920a1a12e1e4070aa37893923067614f9e53c0d859917626c6d6658a0324419d0b0d16a647ed57c3cee638400875cb0436671a0c9f472eede423125a95c86c60d2301c85660807f43f35208716905ab4153b6510c128e038920a3a13e957e2e209afb46c7e0c9e92fabbb80063b93c0a963b1aa2d49f48174f86c761d923259ee04c65f4b85dc110cb04ad4e26c369682e213ac4114824a526b2e6a21705174110b538e3562bd93cb251962e71782d89e562482a51949707ac8337b78627d489b193600636fc44c44898b2dc7c87332f3dd9c7579a68e0c01211fc1957c43d781473fd3bb17ce14456e62d93c236bd9656f5ea8088339668658ed8cc1e909a026fb76f0ec747d5a570ab88aeb44750710c0d10ac86caf73f8e2238b7e51da8722317973bd544834fa31571f48744b6a7cac95e1d3375949038588cb1d5d50476629432ca9e43076bd260b1a6a3472be2cd780177c4750b4080c09c820bf9f1ce2de695478ba26a216ba2b032cb7729770514f71700864ab0e3780cf94cb7e94c88dd673dd03b8690ac65b8e0c597fa8098111d36ea9fc4b166d9e6bd4935993dbc8f21acb9f53a20ee118a721541425a31705a5d67a6196c91a96dec2b2b48536e118afbd5c8fe46455aeb282a7a6e73b734001b6d3a997ff1d50ac7d3c97eeb4338f13f8eac05cb0b6f7f60908c0b1ed89682192a6ca384c7ded2170674c353d9aeb8696648cb83ac986dff669e23f49c47e9208df49187c1155bb1c876d1242098bb7951454e677c67042dcde2af77e8090935b5bada59c4252c6889b16765a033d98452f25632710ca5553559d76358c162c70c1b5624abc090b59960c65889351529bdae24170751a45a566ad858444ff61cfeb7003b08605f3b2558577f0e12b31a447d377294e7e4060ec12a5ecbb9770bb8707240c1237b08c744e70057d0e68e2fca1cced27a1997389bdaada271054f72b849329e9a2321aeb03a940c44239844e94181b627876838671bdb3e9b4061fedc74741b4b5e9c4b421167bf420cc8077c5bf02721076c1c5462d7624f8350af75c50eb7267a96359004166c84145e72b731d5a82d43469c98b00a0c2352b7806313c60c04dc5f5c8b39d50376a9461f2a8773fe06973e852a04025ba6592f632bcfc3ea0ae572a50023c684a4a7a0db573ad1494458990938c624e5928c028ec48a9a26492420781071d13a85a332dbd8abb8f318a31596a38c7efeec28bbc1aa38198aa66ca68d811cf5700d9e093e34f38d0cc74a989459ab0b200a8caaf6d40ab5e5cd651c05fcf68e14a1ae602560186a10aa452328218e41c49b7e5154c67099ec790e88ab641ae03dd6acb82c33a6d4034a775515c52859bfe354b2e881c7c577bd5663b19b124948739be90addb36348912710cc12102553765c580512b22ea35141ea4ffe681045497fca77ad2e35c1a5b31baec2a8279c783d28241c923040607d38463a9b615be08ab87acc5e31b84ed8376d75f31dda47c869f82ce14022acc6c70429ba854b58e942635a12209240bae3137ec8a40e716655a0a82bd02003f20428d15806594435de6c39b746298aa9a693577783c71154cb31b7b31283f46733d199ae627ddb7947c4f4aaf1172858a97ef6140f56477b80450536396399a14a984caea756b1b5c09ed1f43c4e1754f40ad0bfc8c5f153346e0113930a3c9ad215f11c4ece2875c41516b0a8452e948f3f3cc45960bdd8b23f14eac17927142eb4a72ef6c3585899efc128f53b022015b2bbb9642b5675be352b9d442194d54d5b40a17c236e8a275dc2358fb31471a3f521b444040d983e64976b50f71441982f29fc690c41a954512f82a3abf85235847a28982009e3303239454ce0c7a2c3840cce031ad37516e6a3ba59b79ba4478afdeaa8ee8ac4731ccbb34125d0a7c6504a8d7e285171a464129b714d8521c69b8d952b4623aa8967f644c8c08bdef96117198e56c12602501201e036804129d528d717640ea33c9fb4885d61fa43860dafed4282b108cac59b140df7d3285c832994e7a4ff5491c786281fdbd6f43a4c3902d4eac0d28b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a +ciphertext: 3804e49185cee41c6861a7a0941d454024e2310333f1103d73334739510be6a09619c5229bd73c4199399f0bc7e43ab79b06bb836cf443912d2142f98a5dd284c457740a4da361946ea3138a9be5e4c46a7f0550b7a807627ccac5e0c658a0a57f70633758f77f555fbcbafdbdf5a19f2e0efbb7e932b262998f179f7aeee18652d5d572d5d71d0af89e58a1fcd401287e046b1429f504a4759b56fc90735b91dc640c55ce2f736f1ed491cfd3fa25c17c2ef4afea940de20ebadd1ac456c5c184b660e3a2791df78e4a4716fb09a78a3ed4aff107717b8ee823f689c31c1b7bcdade58567a8941a64033738345c6e7f11378b6c3b680b94b15c12e9d291ab54ac66def4f97616bcf996a840b93c960e24e5729a92da64ceb8608afc9ecddd9190a188fe142e7796dfde0b44b83d37b4f3103dcdbe37f0db2c404517be707b0671673e2f53c59da7dcea24fdf2ceb22a711e1081ffa529df068e8e2285b17e81c45d43d672f02d49e04df68f784be77625131e702f12d907e010b1c05fe379e42048620f533c9e17e0ca8b7aaa003695d085bdfc2c74f98dfdc9d7290f03dc00d89c2d94ad8b390ac3fd88e4c255242e7420c9566fdd6693f94f86b3317d7901305e209794d0ed5f0038a5e5f988b2497a5732d05b0372fc27862b339d3dbb6cecddeb0fa5da20e80edfa5d8677301eab7ed43159a1cc62b25f10a4a2e1c3f1d08884177ea74c2110f8a496e73d732f02f4d4a0c091aea4b4715e78bf1738279006a4f8e3397743998f334db9f91005333776a6521b8931fec72e2231efee7043517070ef977cc6fab6bda27de97ce4ce13554dd35668ff0f753606f2687ba5b1a12b2b42607e0a767ff95e962144e7e67065efbac277cc1695ac1e12f1a82072f9ba15e24af37e36b345fb50cf7bed32803b63343ba5593de883aeffdd75d92cb42e15efd70b944b8330826b31b1d69453aabcc803b3f1f390548bee070b84a38eac4fb244247ae4c5a26024a8634bfbd9c7eb94fc84a65599805e9c150e215e2978064d7dc5bbc4bcec8e16adc6f55190fc11496028afec6e41881e0a0094bc17632249613b6e95cd210f7763d2ee99a56087938f721abbfd09a72abaab9cb7aac78ee1202f3406c0dff5a4f31e70760c7bf2f7cd4f27fb6f7d6e9e9eebd737f30c080c0ea8bc5bd6d7c58cace07bc82f55c65788624e7e17faf3f4d54b0e5845b8da07cd51b589409b2ee4865b908367d1887111c8817ffda5fa7ef26a5db54cbd2b51777865240284aeec8f7c40966e9589f071d875858133b1496e1e5b9ad7447156b60067fb0e61441015ab474d1539745386ef550becb1345341a8bfdc2051041aef1458da87fd8ac4016b9b8ad24f9afe3f5acd1858639068512af6fcaf9e9522b98027dad0f6ba914ad2c35b99528f6a812257cb21b6ddacec678c2bb44398104b373c984f72dac502cde60d2576d3def63438697d50bc6e912a8f6310bac01ebf890200904318b7efb9616485539c472220735873ce9885e6651a244c56b296c1badef19af9dc6ae5ba8015efa52ce5af25768dc10b32ee36b637c4048ad832316e20e5a929d0dfa8d4dec7d5e195e0b59f52a4e39c05a4fd2f23962c945f04876bfe5f0d2cb1b66b7c7ee3107c823b4c60d98521a24a7f82f39e0363e411c9a5a3c0cd3959029a5f86844e08d13997cecbb483f24060bf1ed28892a99352ec3c538877ae85339c1d05523b483f676dfb26b3e3d154ffc3d33c46d06b089c6a7fa18266afaff1552266f5bab7ba6cd9ac64a1a81ecfbf5f654428a697ef439cb6ebe8c005f7685df5a0a9f475500339ffd92e0103c78549b3d4984268288501968f0e21c815a7c3f6e6f50960f5de64ca611c584e53d7c21c0d002b699fe330456ef42840bfb8b475f56deaf67cdb656a7938d0b7484687ce5eb0261cd67607d9c822e9b3e4991c32ba9145c6d33ec1fa4746c27c4e0d38c000495a8934283ce88e7460e4e6ae32b16814703cea8b0f5d34610b401677117bb3b78659d2402590b2161791c10a7c975e2892e316d49cab8f54ca1b4cb98d2f1ad9ebb8f91e57240367e1ef5831d77769e73c3876361356243c120c224ad8462504a1ae0904a707348aea1e29d1c6eb2a9c60e1f2bc0ea4a9e0558ec177030aa14c394cb946fb23f1cb0c2c6472c13fa3405a60434956e9cf7a686fe47a08f5d8d5a +result: pass +shared_secret: 2478974168bef71749a93fc9005dfc0bbfdfb7c5e485878bc04025ac7f97de82 + +# Official test vector 90, seed: "d26ce360d399bf7b89dc364aa7ac06bb513eab8f527383e93e30727edc3f22c262aa0ec70257b39edff0630dcdc1b79a" +private_key: 6a45c4d6507cd4abc9be8cc42a75bb661007f8bb7c8a408e51fc9b63fb8575683e3ac77aa6862f808529819219d8639f0c261ca4a2c2021426b53c19eb7c6dcb554f39952c0f4940fabb4c03903c5bd2592fd4178a68601a8c4b4fe598b3b874dce5581063351683a672612904b17bca915ff161c26aa8a27b212a7650b0858736c1d7025a987c91171e4465702007b4bca05fef05186106b895c62c42f33aaf449ea0d4982c46276069a970e04e8c58ce53356f18a99c7e2a8b1a9714a64aacb42338a2e05f377b969c82958891a9c335ce1ea24865ea1440d99038d82035cab7d011508a802da9b51a00192344ab9a38a59a2b203b448639b89a80b2c2b3f6163562cb2a01f526bf812181ac466c55013c94190172c086a2cafba3152ff247b89120efbb1e957a33615924c34c0260034a9163c3da2b2afa4302595c4170953864990a95146dbf30b379f343b2f236c03bb4851775da2a50f9a40121f7107d184d410975ed743fdb674b179c396b33c808b1af0e717eb95000b62526598879fb5b972b54668b62306cc2c196f81113b72f6e4b0433b44251121cb7b872c54656a8e211b30b57c17a29fbc91de1a8943eb2a0ec7cb04b4b3d4d057c12181684519da9da271e8189c8a6171f9108740482da39c8da064f5d2745ea9585702601513a2c5c1322fc95a7ef15ad1c4353710080ccf396f2f006335480ac1932407b048e72c0ac24a106051e7737a1e11ab0905ab829404b5e37bca2ec9f9bdcb370b68404875061f1035978a3c7f7962fe015aa4c019465cbf37c929848c335e9cec829218e15902fe045e6d43c845b99a8878ef7a73238fa87cf0c58dcc3913dcb29238928d948c94bd54029d9651b25401e64a29df9a04c15bdf047a3ae857d74a5a22b383069ec24bfdc3e0d85aa892c6e69651a07eb61ccb40ea1d0bf624a17c4b849fae348f8a8c326f875dad81227465688b264de92a195635a690b3d6126989af58cb6e205cb8253ae8472e2e9b2c8d711fea534ba41c108f22cef0829f1bb4372d7a76dc4901f07aa413395998734390c07be80ca1dc6cf087b11ffb180f94b86c051b505752d27ac9fefa29fc849c77201b90641906492b54cc595e1dc71738a678451aeb9d4a30bfb2776435eb3d990f8405623856abc7980b0a4c65d40abba6278fa4c7b3ecbb718180fb3225b597acfc7e43caae9413fe858359334499a921b3216a03403672b6b1920c6f39b8ecdba69d87ca52542cb0898477587aaac8369f6e39ac7609c437456290434b002b2c3f32b05c41c1f827accf461dc159fb7caa9856438fc232a5b4545c25c66a8a25c1f240eaaaa263f22cf5fa86506b51fff385affd91b6ad8bb599633264c3ce786670ae70266f898a48040639ccf334188774c90b08b99e1a07be3244d7ba319146711faa921b647c7227b6caaa70152701562d81bd1d1cceec218ea967bdff454fb176f6ec504d7285779c3866763cff23cad659803b41448bfe253e391a21c67b89911c06e7c78b6b2ac56f737aa027cb7f80fcbd0897f60781767980b89266e342e80c97bc2336be308a7ce393a229836f765086a6709191878570c6919d825e6c2a8f3fb9b4689079ca814759a8234b5c49c19623ed637859b991335672e168b7a31b788667cb088c4da1a64319824f2002be6d942c3e4891b032cdd347361352ffd3022f68017184110507017243c68906425c883093ca944ea118b20a30e05f740fb86c96742cab2c086c4309fc53760e77a8500fc6830ab9fab96be00a319615905325103113956e233728a8c8755789f0b0b5f6061b320f0c3217415eda617d33758fda34c0acc07c4c46a7c457ffb2ab6962397e1349325a90dbee0aaa5977047549f28873e034aa770064fcc40c069166061b5ad66277320e989712a30a8969882e275b160046bc80077dca73b307d71979c55731741e916657a1a46104d511b7bc8378b833350be93c3015b68a8c651b960238853a294853d1f60a32d016721c25a30542367426fe2a22b45945a4c61117dac71cc04a9ddb9b86a5b4b25569a04a19d28778e6fd27ca9763db9e4b40a773b1fd53dc0466ca2086a561969d842310e5bc14cfc22fd3a5b4a969800e036e47c9f07b3aaaa0181cd8cb43b11534e267751337bfecb7ac19093bdf18070e37b3ab06ade8b14de2b34ca99763f575e8d75177c72522c6c4eced8ad20ac6bfc4aa329e765f986579c373a3a333d6167c2c7440e8f4131ec305188c989140b63b65019f2949c81c36cbc45939c026a42a1554f2385a738a229534cc6552d5e76076087c9e5b260baf8724973b9152b3941fcbe19227bb7987d74856d3636049715beec638db8e3b1d4e3ba2a440b46445369b60e0ad3c9c07c3203e2716ffa51eb5005d1a797079089f6e14d86d988d7f960f0dcc553a83f7433be60a463b04423a6977599b7c1f7730265807b3f7b2bb8a625e0b0a0f3f1171d6c4e7a9a6cb5803b4871501453ac19b576364c3bd7e01f1bf475a9e71d557171e4d33bd3d14823672f27e356c89395c1476e0fa065dd168478bb710394116de27cc3b0617ef5b74ac718e8b8c152c052a4d57828824af38807d91295a0da9b49dcbda052317f5576e52b51eca732d8d260d08832918094de65ab48d3351b1327568574dcc82e3e8a222044984649271b3b45861ab6f5250a770b59071309d118adb32322739cad7227ad2b3460d156c065713f29a05ec48bb21ac7261aa6a0f3f19d05f0aa577cc8cad6a7fbd25826a3cc6ee225c1b183d8e124055414c54469e4e410828bce94a5cd95e22c7ca3770ec5a023f0656447621006929174850c786fd6357f36188a4884cadc108485277890a0114b4c565747c4165196e3e90cfa659662d992c33bb2582970ceb60582a691d66174952841ac5a64e53b31566671054486ee20437e245e234176ebc696a55a53308abf020b40b944cbf382155ba02fb9ec298aac3c2b81278772c9e0c730ab13c6f374ba8c886300831adcf9ccdcc566e2456bef479f4ed08ef803ca8719c382dcc667a21897db1f81b41521790ee233020f3301bc9910dce2202bf4329f632542f820bcabbd2bf38962e6810bfaaa5377a83b10a62495029e99c4becba9f0b3a54f70788f97ae54f01781b8505c27c23b810ee9c7452952af9339c4ab88aedaab3b9f951cecd828daea0888a3481ab39207a6851c0285226136ee392996c41b7d93221df711d44531c8818bf3b71aa65aa0a3b5055634699b007a47210e9583928ea984c413598868bfbd021cff817c426caeb3a77c9067b04dd3cdaf2b840af6a44e5a5ec3956b21697cddcaa035c46159262524e55f9923a5c44c1c747a1e35889b20ac2ecf5883577c0722316d6a82a88b21c8334ba25a442101b6828b10b1d9280f13f867e10c88ff3cce3af457a4ba82ccc4c231ca991b79c66be0c56666c80656845789b45f0606539149cb12b0917b297fa683031413d3e89d3e38544ec40cbf288320bc3b812311ef69125e641232322e3f1ba325b668174179e38868bd50233c78b0cd8721acb23b0b065a13f36a2b8b8245095cc785c64997add4a33b45e9a602b10edb318830a046d8f700b2e76094228a14a251e8f48403914cfdcb9e3ac0795f907cc592ae18d322ebb882a1473ff2fc666b7a829189a4910c60f8b1193d59515280bc5a9169ca6433c4e560db8ac756944fd9ea1dd1a0c9f9f57a474c32b94730460046251aa7d27a9a3f2c617816386207449d8c18f04537084a3f464b737c1a49e59c9042876e0556b92139225fa3aadad3b5f18752dd614c1fc200923c0e0b4804fc5b26f7c6cdcc684da00289ce344518c7a480936e46ec4c01b36a7f2645074b26d0414fcfc46d2ada8fbdf1c50c128ec5d2abe11ac78205310ac8aea724a117f00246046c4360662101b191228628383cd9047a28025cf8d6a47dc161af353e9067ae4433803c48b3cde24466d00aaf68be2eb1a209e8b1f6264fb14873edac70f834c710acc18fa4c6d16a627b03406fc7501ef71e62963e01869c80787af2d96a4ef8c72d273a3318c2826b8bb513bb2f6739648666af720fbb4b7785c853bc1aa4cca2c9d5852706b7bdde4c06c78c960265ce1887b5e13275f42377447751ac0bc811e26c2f65bb19e058d573a64959bc0d74727a4b5ae8ba23f2179ffdfc171563712eb028d9524af43c6143277bbd537f1155b04c0006b66036161472a199764ef7283e044c62a7244593564b15436b435da9e995fc803964f631f8332fc8887e49a87c5812860cf96747ec5891a9ada1e769af720e946c9727731449cc7179f73e867c8a63b210d73ca9f8d4eb44b5da3b57dfed46bd22ab85b9bd9155568513eaa3de494e114c2700ed07ffc1c2f8ef741765e8a42579da4946ae0a201cc95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 +ciphertext: 02c2554bfae2f207dda53c0c9957f1002311f18d7adc29263a5cd54ddbb844871d65fc88128c8e0d7a569d0557d352dfa0443980fd4b675e8ddfd43cc330f23f0c8ed0a344060dacb235cf748ef5652b2f91472751c950613ddc48696ad0268f1e49989ea267e4fed6e5df8701704abdaaa36d965e5e94eebdeba377091d9a6d8174e2362bbb17d4d4033ec53ca3fa57887ad7190892867e736f55c07226cda68d4dc6b518e4910d8a1eed5658a5e007c9ade97b270bdd9b9f18d8a98cb235e3a19e808cc015d3f90639e6c6a6c33e1dfc21bc09f7e7ce8d490d746f7f0d08e22bb6ea9863f8365a1c1b60ee660112b3528c6106772fdf0b2c795f637c35a3c77c63bbdd6e905c49b8ccad39b7b1339933bf9174f0f753195e67c1fdecfd1e3264d277a07c7a67da8665fc992620bb34ba73b33ac373a7a8de1ad27ad22de16433d3d43323f5690ac1144f0cf20ae1e94af27e7fe23c0f0b822b739bb473039a50138390f1d3fd99ce2e598cd13177a5877256e092f25436eb6254b82c213d0c1ef35e1a141c29ae4ee1dfe8c39f2e70121a852938167e930cf41d22fb9e22d3698b105b3e62bd4aa3bfb1087e5406349b2dc9f4101c3cc5a7104d8d4403afbe4f896b640e03a194c30c401fbb2c73a54fa8ef1c2519ddc21d8d5c0634056d749eb10c41394eae0d6d4b73c6fabc27fc2e346390e2c771276f0551d27a20f98089dd6557efa1cbf4f020797c5524590191901e52ca66cb74173a2da456bdcec454d3ffd45691dff6a70dde3437b30794776290782a265bbe3a1c07688d4fb3ba1fad312399d30c7fa9d3d43a855e0cdb0e02b1a76dc3fd8c3e53b3c814f98fe7d24493bd6e854336a77732747f809c0782a926aa275637c29c041f284170b870352aff1e0bf77c0776b33e051eb539b864c3d9800a2f082899db3b22d37607080b29486485c0e6c92c1b00df67ca5be95fce1b262b32ffff00f04b17435d7cae7be5f9af0d673e4536b383bf912d68cb1592a01cd25df2039f826ad43a137c81ed2ce0928b1315c144ea3a1fc9c12aa13bc9564be273a58427b467936773b6555e05682cffc87dc8685889853237fb0e3c5cd0c3a4537a9577fe47a8aec0421f023628c941994dcfa7e699fb7828e125ff08a58e24e3e63801837c801cdf5e2fd9ce710040753da43d02d383acc82abd9291c47ab4b870c046af3ddc9bb68697b8e89ab550b9cf0c6c98cf3d3781ce0a655c6bbd8dbdbf9db669eae8d3610d23c03fb0f364f489f02bff1d42e610fb3bf94157d1ad8fa6a7063b02e910c145e3d9582b1efd64d6f745a733afa5c8b38cec2f748768bfe9432b612c73b2e7887fb8a06aed687b3619f56fa3c750fbfc35fb5481a0c21aac19733071e1cce965fdd5198c12649c7d5c8eb3d519980717665786aab878bdbe6240f58d913ebb9993c3779b5e51c6ebd3f95532c42df3a8025ea1cd73aacf40ca79b1a6f8e280b97d9c2d9b15f96ad265c6382c4f915b705068710b02136b98d0415adcbe79228f5b7a06dc97ba2b35dc76d37fe4216d5a896472b2f60a86759e596fcbffad1910304d3ce37675a4e6b34dbd75e52465d3f71aa7a8e366fa915a4c2544060e67ccfb4c839945d5dd9548fe8d63e2381055dcbd9cbc8a2cd483716ccf3902c78130419d2971367304e0f25097b2c0bca79017f6c12b428c3f47b649c6c41f1a8e6b17ec7852debfbaebe46906a9c0d8019a3db8ab0ae6e02af82cce0acdfdaa01e66f8fccf3b0600a256aa1e7c0a70e49fe22e1ef12a00b7bfc3b37b8f8fc65a382a873d29b85756ee84d0b9dfe2a20e062422b99163dacf5f96bdb34aaa88377495abb000b5fd84c75a9976cffc3732f5f989b40c4353275212a740206e575565de708f9892144bd2323da14806b6c8d590b1bc845541848c990c56ed334de9a59cfd5e7ca775644ff9ee3969ed606f0f48565fb566f205dbb4633b62d731e0498614a5fe9ad277e49557ea1eeac5e9601b205525a09d3ccf146f856e766406f256e2cf44fbff3f911c4f34dd94cea64a143d23fc6ca01abdb42db6fa0b426ba8fdf846629d32748f8981828e64332fc6488cca38faa48c36cb212bdcd6b969df4008f55389dfcce4ce12b83d5e80b1d62912f3daa79958381c0edc39479b1f525a17271faff55e9d8c476d17b7d33556da787d1c4e47a89dfed6f265396e05ee70b +result: pass +shared_secret: a3611e119061c60bb8f76b765b1d00ab8dd98b6036338462619adf32ca39b2f6 + +# Official test vector 91, seed: "c5856298c3cb6ac9787a0f30938537ab2635b96f6d19cc9522063360e7a5c88e644929d2879180e3e5bcad2422b7cfc3" +private_key: 1783c5f7f498d7d8c421436701176e6349c025970f41744b369852a6c2cfabc9096f48706a702d3ae62d6a2c79e068143f45ae3d472180c432d6ac6897633982806c87526ee2f837dea521fdc3c3a473a6d7405c2cdcbd1d99142d097ec5ac782cb80909b9c47b7a173922cceb52c926f4b5c904c5f342c460356c72751baf271a496ba3ded912e6810b8f498e78b194a02643b855aab4a6c7df2938a0da001c461b52829cda688aea4c21ccc478c04923406acf8a7b72f5b52cb091ca66d769fdcb2d2cf220c3eaa73db7888cb37ebe441d81d0b53bf41259433922a1c6df57062c2a010bc3c190e7c19157207d1b607ee33469334b3ee4500bda58a1785b2c247410573d6d703d822149a5ab5a4e811516b69d76f3a80fe8b84fb8ac7f3568cfd69521036541e975e5c09f63905e571531984921f9c159cc2964541b0b55860270ac7795f0c26a3b9fba603c26601322ba61ac86722b7933edd01c68a292c783a56d55c0254439e936af5b9970241c73a9244a271a43cff187bae40ef9cc6d47f23f3b68cb4ac08180537b16daaa329345f17102bff856891ac52e25bae2e95ec2ebb21b9330067091cd7b0a963588e9700b89fc4ea40aa6c4a2c8b63568663b8c2ec9ac281ac3d470098f559f49966e01a91631f263b834a19ae5b3d6d150509815684c300cd483c3fc475b324c8873bf5cb01609b58bf573cce0034b19425edca86c598aa4da9bc4ad2cc78545917df6962ba4ca06b0bbdb322fe300984e16b982773a0c1a1bba55a14f575150484f2be11ccdf97846a33aa8580c22aa647b7089a73831651c506045a05e785c1d682a0af364b4cb1fd704b1c306523d6a7394ab1abc34719a0c97f49cbe6ce9519f8b03556cc9c72c613e513aaa68074130456f2ac4775218f7a1c35ee07f229a7d59994f6b909c381a0385c2a6d1bc8d7a60a1a113442de3cd785b7679230ca6d49d17f2c7fcfb1fc2e7121e20b87cac2817e26854c392dbe25b31753db9c5923879777364530c4551c28a3a5d83c9631008571c2f889889e8c835eca3ce30e81c03cab74b3b5b198458f0f81cdfd6ce88e7cb79f704c0159b83345232541cf4ba04a1c2c2a929c3687996d25ab65fd9a93cc6590846a861c5b72ce4640b47673e5a883d44162f914a318a163b5c33c37a6330f34b28b22aa639978598c3c6ac93d811c60d0330ab500d41f950e51c9fde115619f022f9e88f7892ba41330018da306f42bcbc8cacecabcdb0e5085bb687fc14c55ba8630df92c3a2b7867e951f3ab12f8ba2417a70f766c60cddc85a012b60e368f7c75a6102684efb14d21961f2231c0394520ea813eea69465a8a8582e89beb3aabb9b42fbee8bbd4900ca52247a322837d58c9c7b0a9e5d246178862253c7baf2081d7c02367956a7a68554debac141c634048053d602645a88549b94c95d907ac1c02058c66fd5b894222331952c4e214ab1331a3b2a83dcbd8c747431565026ffb231e9835961919c659f734c665636196aaae827bbe2c30f736384f74cec5ccc3de622879f6afd1a0c472509f9460b07e524bdc65cf605a36ee35cd6267403cd91b8ad8376c670c3be6b4ea42c3cd46b275b9394db41e0b389642461d443ba0163b7d7530243b911a64a27560e3956f18744a673606089fd611c9b5d4b6e9a5c0927632b259056d95235ed5a0490435127405cb164d8b0540bad0b706a431fe077d2e385e4b64beb3a8527c1921d119c6676bb4e59937e0600c07f0925d665a9b643e034478def83188f4caa30764394a3fb0c3b9f4c2243b0a53f8b2ccc5d96ebb0478201cbc7e165fefb565ea149bed831df5dc4df16531460a28c6e708a7686f61101d327a88f998223c9abcc7d22b5ef78765e075ae4aa41730c3d507837080c4955614e88826ef4a8dcffab0bde615673150a7f36ebac7bb4c793dbd9a11f2e765bbfcbae5d2ad2239ab9a2548ea20c47458b3a998533df6b3900997770153c73955d200656314b90bd49d6d95407302a67813a62ab3b63d61b9a3195effcc87d6ca43cff278bcc65ee0bb06c3da296a117b3cc86c78e29c33748c0d293e243c25897b200f3b2d7a5b96215822d310805a35a331615c59172709baa171d947d1b12e2c2699fb460b8219992fa09d529069c40138f24cb4cc9a64734c470128056a7b5d374435c099752edca129091770d6af831ac7805a7dd5657bcbbcc9d751b140283a2ec533c17ba38a392bb98421a4f0731390c30a8701c1396a4c17cece6cbce99949d0279119e8790722b0e2c748348a8a5a7c760826bbc0d395313b893a796b9d572c10432b2f5363b9682a89d1174f822bfe38b05ddc5b68ba3ad62497c3ab8ea6d13b11a6a69ddb1f1340b41f013952da1ee1e759d2d5459a01cece819e5de09b8d707c7d59519369660306c4174505a51846d5476d41d00393979293c1325a1b6673f16c32550529b21121e95f99f503cea88530e2c72b038aa641327181673e301dde28b0ba76b2b88453d1812499681cddf932370c864bc6205b6cb13684455fcc5e008bcdc16597ed661b3732a60e329df82820af51b1ba4647a7944c4dcc7a8f1bce390c44a9a7221e0c0943cb4ff6f048e2362f89f4113fd3636b97919e41acf042189e02a83b580e5d4a996fec6d6b7b33d690825f366d89f8952898152b3671685a22d8898bd62c83c32a1e3076aeeae845900ab2cfab51ea76c3022b52dc702d05b17a76609c88e69d12d7694edc3e91420737b17bb6844a1a28c0c756038a8c6c6a74906232b50d74cf532b5266d32d01034c56aa898d624727e5363e0bb300203e792b3afd39b5376998142acf52f6933a594c9a5872ab619a8a4317e86a91d419a78d47245b1780bef14abedb77ccb97d550ac223e5001e0b64a61b8fa0526331b409505a512b4b6ba7e3b4b630a112920b431292db5962b577af8d546b7465673a8641ab5807443085a9f0849b914a31393c1dab0fa30b3b1c1261bdc9a8ca69cc0f0432e91c1d42b6a8346cb6fd9cb49b189d125c8be422a690dc90ed4a87c70ca8e35caa16a35a3120b9716bae021c861267aea4244219c60fb1c788ce8264c0241156340daa3b1ae7725c6552cdadd4c244079cce22aa083a1a2c0810fc7ac55d77bb6ef934fb73a8e8f4cc299b28c42c5d26f36518ba4cd3b320ec3158b8b36108bb6d4f6427dc46653ec24927a833853b4b0af5723d8a3c5f37c17b3476d86161c57579cd020167a70c1c310325c6707fc82270f0c73d552363e2343b371fc1448b2770bfae474707305a9b32a6aa77c7fc7715cb35826bfa1696d67ec48cc0c9554691d186dd025ead64a9e39657be0292f39829ef696d3584b99c7367a00034395252f2443ef4692c163a5ff1863be79273a93192d10b661b9051d57572d5caa817338c52374ddb282d4722b1efac7339f1ce852867e4ba2a4d368ccfa58fda097fc59244fae273aa7c63f891bbbce875624800dca2b5d65b5a2d414a81c7525583c0160a006be08a68776223aa97525a1e97b241f59c0dacb50ec89b90bbd58e8f27c9f19729782b2c06bbb91725c3b6ca991e75bdc7850a0107674fabab38e28ac5b9b717ca7542ebb563d078e4c856447a0ac85c9240d77210e4ce850570ab693aca497819b5210e2cc957fa9b4542070171c56a2c1253e006cf12162e9168673a08d82b90812c8cb989394ca862aedb1ad9885598d39a42b3ac25bc914fc15eda2501d7c8c51aca0c257cb8b0c16de89900b2b12a875116cfc967553829e59510a00998440b93d8371a0b294aab2b4697196d397a9ccedbcb2f5414dc8c764189cbf720834327a9557cb44a90286277c54aa424d080822814626b753cb281b9f2fca8680c2e197bab18643c9b0aacf8445618a45814389466f67a5c557aeccabcf083cbdff5569e39cae20584ef46bb56456386f3c7ef5a5c196c51646b69154393bc7a6a6d0869e06c3f8ababbd7aa070f974e682398508a356c78c74be8108b42c6b53744c3742f16c84e5bc6750546739acbada819a2af9c5bbae2ca34f6215df82c10ac8a5873a2a8c04ced887730988c14f00a33821994503f9e3555f790715414095f05bc7d5c20dd9313acf98b10daa4053c90f3d2c0dcc676dba1cc0ec92427d4bbf61425935314494c3e65b266f16411a1250667954388fc5b750270e00a8bde873d3d58c627c6b31d8610597174366c8052f21e429c185bbc4c080122b4b25d00a982101b4b44c18bae64b7aad2a2bf646e39bb241df17d8c5b42db08ca0d6571097250072420ddea731357154e861809fcc1ceb7ad01d843ea928dcad3c1370b6b517f5473b94bd6351e282f01bf82a24c3ef05658b9e66735007b45f5b008a7bd627d8e894a4fd9228571ecb1041a11f23220b1b83a46d7ec32691ec9bdceac14e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde +ciphertext: acc839c2bc7a7d56a8472ece2cc56b8cd74eeaa4b37d366f3fb119226553304fe6673e37db7fc7a0735ab3ae10f6cc38151b7f3ece0a8dcb646c571aea0656bf0a6ec1c90023300ab33169845b8a64ffa012b890e06d691d82be4b5741e13d4920079b3d939215f3e7d73d4b9404c28c0bfa50cce06e6288ffd58c73326b77f7b6606ea5d742a32c54cbcded3f92f8c210b44242df2ab8ac2ac906860f632058e90d2ff90251efd91c9bcc9fdd0180cbf824f4487cc0fa6a812e2392eddd62d08c4ef62633b1a914f410ccd7bfb1d66240c035bc97211ce567070ea112a17b0ce6cbbc02587626b266caa1b06852661c5be631b24fc5ba4717e14be2f5ce7f5903c89fc56a46d7f31d840e3efad03c29869ec8475c9844404ff71380b4238c6da7c22cd500e6902fc962684b5d3900c23bd871ade2c7ac0cc004a3ab60d70f946ffe660f3d731a831190a03c20d66483d99cce14133f3a3e7f42a07b985579e0e77bbf338dfafcb0a850794f37f677c61df96de1fce1ff240775339eb9c97a92df37d7983bc27977dd2e54eb22729c495d345968fafabb96fc4592f89c89ee022bb477ec8d48d810e3b1fafd37526303a0430092ab6d43b253a7e0200cf45b037063ce753af83469911634aca0f890d3d9bb7671f5a6a171fd2af27d94155bb4c7e7d5e18c788864ae4c0e3057f6f6dbcffb659ca48113797b66b26e46449b197b72f7f5af1d698b654f0de61136e99bbce7462b823d86f4dd5e7bef7dba147a5a9a6dfd7aa70cee2fc7d558f0a25d5f111134f2777fad92840f2a969da17de0de10a5f74a665a7eed83382857c0f9e3ac4e686b712fea2d99eee8422508056cbf988b33e1bb1cc685a556607ee1876f53bf548ae9deda1fb4f1e0c4e724e4ad1ea9ce3da9af39d5fc7a6fbe8f76c89f7bfc22aeb08708ac6ca7bdf730b7334ed58dfd2dbb82d56d085a553ab8fcc9a3fb865fe9dd3743f33b0c008b48f3c1212ce04a2066bc1e916470bfbf0225745e695798c6dfe308f433c5c9c8eb6aebdffe47ef0b8df31f702f1a7fefd6b6ead7b69b22d55223e8a7ad096e588f941763b744ad565282ce29ec6161d5934e5dea1780c940033f0089d762eec127663d9b4fd5c5d39498f6d01c0687733426db733c9e6eb15798530db3fe5b6915b7945b80aaa0780d8800d9bc6ad02281a25a33450abde1942c0726c807ab3d46d9c91c03140444642d9fa3c2c436287d1abf1350d45154a38594b1d881be08437f27ae1763607e4f7836f562749c399a74bb7e8101875e47f3f4c6cd06b715e6e4cf3a8d7ec0215706ccf5b627c763df70aeb3516cf45976a42fa302faaf4aa0db5c1ea75dd0399449ce029f3b766f9b58a0217e97f58cd10bc4e79d228e2424d57cc423a09a5f55a4934384a0fb2b3414fbd93a4d1289096f8dd2154d919b1894ab0b38f484fc69fd9674504c829116d4cfc8e544cff6c74b44086498a0266cd9d4ad9c6b9e863e0ad7738ddb22fcbfe642b5d30760fdc3142f31e27aebf763926909a720465ecb22f1f7b9676d41f85a5cc407f6c52bd849891e16000ab5c5b3a369f71b1abcf6cd302809cf2cde77465fd823fa85c6050c9d5fc83cbe0d9de966646b679bb9af2c1d89fb4da1bcdad86e2bcd2b7430e1b33183c3192697ee2c902d3a68ba250d633ed6ca044b0c0b5e3776ce445342c1859a9159737304187e14f608b091ac6946fb817b9cc4afad0d7dac61b653620aa1f695bddc40113dc884d762e399f0df4fb6637f1dbfe3ebc32c5e37fa915a1105a01fbd341070c771dd8b3247c99d935157c5e17218aac87bfa024f3d344e9c33ddfc0a0d5d8f39ed4cd2ae97c5d40097548cd79ac398ad1200dc7762e0273dca642462e76a91f242da10c8c38cbbdcf44fa45e00eaa1fac8bcbb67fb138bb5dccab1012b881bd8148049c6aedcf4203b9191ee1b181f34f73ba8107e0fb5d3c93698dc80a70e6f3a23b4e080f0ccacf162e318149da1c1cdd3e64e8de6e5394c29c312272c0110a1c29e2b74baeb0988600bca03912131528d24595841d4fc442d9dda00570f86927dea5447efe93d60be3fa106bc50339d81bcf0df550e317acf652b286b8511d9b75ce32ec55ad5dfb5bc574ca3cdaeb83f975be3a852149528db62b127cccf15784d482f271ed0b70e78ccd779a8be7ec03fe8f734091fefa5eab7cc6154a0ecbb2d +result: pass +shared_secret: 3b6be80a10667e6ad229725c012d7c5197194d5fc26787d53925d19f81b865c7 + +# Official test vector 92, seed: "a28ead0a08e7228aeff602b16a1e752278b8ed1e91dac67994f5adc372e1d82f95cc390cd97ab9212275e0566c833fd8" +private_key: 214a365e155f2468311a972eae496d188b7d7ce281b8dc49d326c2935829652b1a8e936030ccbee7989dcd407dc74a5da47b7387674310c37da58c0b9474a7dc5a5f97763211b6208ff9b7ad343b0c0b58b5c3b2e95210a2844c6b013d5c3610f71006e8c806bc61a90071bdddab9dd214cfc9f6501f6570305b5f03c38fcdd9516e73b76f5b6bf2b7665c70c31d763a1721628f73490402c8a18ca4c8f42c8a95b81e0219fc0c66db22763707c44e555924fa385aa212d4c643e6f51234728b47c37e67f2bc559c92b5a6248e9cbb8f197dbf4221e8fb938a4881c22841076c2c2ca6b5798b5991623160148a8de9c4c7667fc4ab2d30b8917304011015400644079be43f60f07b8501957a53a0acc69520871013aca31fd4b3bc246f5e300d8e84340927a645532b251945a9ca024892b0bab4769f6c27f497206d1598259aa0f2d649d560c082b12cb1d851d757cc38e1abd7a6c38a947b36e95579da29a25765f2d85d5e5016e0c91d25c6a7cac3cb4d504bf7046b7b32646cbab6a3eb8fc1ea63016c0cdd74cf63b8c86b790660c94110e4c6119736af99a75ffc2f98c7cb0ac653cb90cf69978e0859c610362b24b14c309476c53b5dd058c4075c59c2c753aa76b7e04520f2250319d41c6c6183921409908b6df6fc8e7d17296a9a0826101be7450ab3babea3c520b6735ea8d545949988baa98f7a2684f3b3c62e058b398a21a5f5073177798d1c44ee5c94ffc564357718b7fa59e68610aaf8294eeb0619502cda583f0a744d8a03be0a6c9d6f756070dbba4ef85ad8711bd691b489a3a23332a6e766c79eab5644e42378ba05b9ab0eb6d790ae65c2dbe3620c26783b8a11ff59850ea182e6258b5232833b4538eab3306023b2eb01b2ea157571791d0d37c6d79c2caf1601528b6fc1600ed3db72e4414822051b469b8b0e962d94c1672e318796e0cd17fc5df12bc1e7f6b91c5a3449c16effea06999bc5344c19b5d36466d18f5dbc56d7065a924b4f128639ee5acc2e37c02c5332e2919c1be01e799c27e18bbfb7404c6299b2335b6b410c4cf28474eb6ca8a4859f0a4a587ff6b356fc1c330041c72765fbdb1d2bb779ac384c53f77124faa473716047d2159a3326798b0d38c0c77c4568d6450a0aabc9780aa2b3252cd3da838094a867ab89e12c342953a3a0ab33bf6b27d4a0758c248dd9f2b0864c08d1083e32031283d979ad81709fe2466e7b15c7cc4429bb4d96b2733aec85eefac633f626edd8cc64114572608408d614e3c0a1473c046fc5405f46bd229b30659505094a312c170a0c21b33628a220a281637b3909d418268bcbbd746df44c5e94dc5ae6db45312b05f7c99985b3423755c17f9acbd7d831f5c3aed7f33284745f09e0cbd0f4b841fb84fbb6cd190072773388a334cfbd05a45468cdaa249ab02c4394c264c276be8ca164873c5d4e035b043c86d8a09d0aaa3e7f983a9cd3108f56ba545847ed27c29a1a84bb11310e556821181c4cb79b4abbaf3c123053f9c92ca15f6c326e2fe67f24a20ae584bdfe763db45ac37ca8a2239394cc86ba1ad976b7cb41b5304cf6eb23a5b8456470237731882bac17ba241cee78b740ab91a3b13b716634cd55c4faf9c80da43b43e13e770a90a9743f151958a267a8a6622bc57aa51ec356ca98034f836f6716840ff98dd190a6bb509d000211ac802c80bc3b28ec20c7407cb898980ef125b0fa34a88812550477dd267d37495930cba3f9e43f920a42ddb34eb7b72801fcad3000aaddb473210436e5110efcf52791c9593607bfc6a440a8043ccdd9965099a200c7a4aa93944bf7ac55132efc367aaa358eab042a6bfa125e19759f469ee054147c58adc98991cf92693708c75534a13e125b9a0540e423aa29059103c7708edb1cf626a95e2ac9e34b9694325e9c9546e7fc566a013128c2ae932690447a552c2bab21d249cc6590a1fb05ad0cb90edb8b7074bd7d172b1977581cc0840f1a69cc0abfba1091927ba9cf7821aae3295ceca3c20c018c3590c4151c0fd13958890195e761fb0c5bf8d1caa0b57087997e8495c430373362a71dcf670e0b1108ada374dfc08b57a0ab687a7d5b8172318c0e4fe868fd68a7da773dca08a71a49a4ca1b45ee3b223b785f2e6b0dd195ce79a1cb36751b60c06a2db222a10a620d78b129042477537aef90b5f0f20a58b6005ed0234f3168ee927d726733c3221035f21dc2a95471fc5aff57381741c9ddda97273909ec4c68d4b2a22019cc2d58b0f40860cf429c20757c91269979a17e5d01aedfc21d3706369c3294617628bb97c2655656301772007414aed6a9113ca543f9b027b2aaf0f122d1747a800a49da48239eca99fd4443566348a3f8142c6ca511e769cee83d0513444e7778018211f3a683ceda1ba2881a37f92586a54806858058b37aad546d48b4a5f3e6289c237a041814c0531b27045b8716c1ab1566ae22bb1eea845340791e2899020c8ac1d6724a0b8b432222b204b0b2ac55d924b4afa5083426c716ca2de71c99687748b56342ed726694ba5e63e42911f66f8f8b3111261ec39bb3dbcb9ed5c729b401a23aa26015d31bdf8c8301f61abe695066eccdee028b11322aa437c26a785899817893cb321e0b72e7a7131410772799500a116f612838d7601f66f29567e8a0f0b7477114281df703ca76326b8aba041457004156854c1b81092ffa869eb46807e6a1108ceb06f65453800b72ebb4613e2c363b6190eae29735d48e537a717e335c9f7b456c923c42a31b8f4b4dbba96f59362743d516a01400b8f1b3ea71954f85b0ccfa751d3428fecc2663d509c8b9a211c011313b5cc8e8930b223d08c95e5eeb47127a4bc5482b0e871a758893e9b64bdf4162332b8da6d7b29152a914f5c748a404fd865dc1224e0b64cf782b7c866833dc8773b20c6eb28ac57cf5166895cee2e78d41f97b5eea14400c1d329363915094bd5650377924c15c86ec833b0ea0b3e476aa91398c108a6e99e7ab64990513e061ca52756cf29238564cf0cab366f8753aba1fd3e9ab70621a0cf161b398c413a39280a268c1d28172d6501d313ed15284d12250e6b75704d1950bdc5af1959bc3e93156346dd3b47450f758d3e9796cba90598224740b33b239b97c45c696323a05cb15ea44ca4fd98ee589a2f5aa1d1ee00a476533d5baa58027aaceec151c9c5eda23b14367b8bf7571e7c75d197a55ed3a349de636bf84ad6d446e2c3ba5657c683622b136384be3b89c7eba095a89697b4c8ed9215d1e5544f3d957e51a86efc098fbf272a6140a17530ef6e703f272792371b7c5e36a83c61c7ec18e6bfa7752c095639420968b91aee627c3ec575d74b49fe13f2a216c711508a4ab1fe84a20bfb019aae1b8b3c8750edcbc30cb47ab0b567720421359a0c8c08295ccb705222141b74b8361004d9c484061aef8c19de9f8c809b90050f3345d65531070cd36d5b2e50047b97b61cdea5c3b896dc0a22f6ac2a2585295ae0993be023a498cbabd6b37d56c2f8db63804d0ca52a169f5d003efe695b6eaa2c530773cc4347d4b9e0e46a822a980a9f4c8900070c67437576c572160ac7b297bdd074c9eec3a368297f0a34772b8292d0b7a29faaccf7bafd2dcc6999b0766d106e04a76bc9118b7875c187b1f8cbb00b3c882f3bc6bc65b294443610c65b19aa72f90c7086ec18f228c36d63808b0aa253052c1a44a6842568d82b43a994b5b6c69555a449ffd0c3959870f3b679e4643842083b20a40401c51898e138a092ba393bbaca9fc6f37f28d88560a7992c5b95c228b3388a622a6f2839da96b121dda0c75c0b36ef162bd7981ec294ba7f91a97b34c69bca54c2b7e91548fa7c396f3d783255a79b3fc579cb62eed83b430c45377857190d06e5a26576d92af1b79941f922bb234a68b21309db9aede9765c78c486da51e400cb46cb586c33c46db9ba99b983b94815fc5b52b7feabe42b4253df9cbca4037819a47f8541bd5747ccb34ca74158318664b243c81b85484bf050ed3aa81ff37725f29b962f901f5f44b4768cd9db394fc7370d0ca72e1607f83a0cd82793ec3a23d3510ae6ef3375c3265dd8268b3f31bcefa83f8e5aa3d1077cc62a8ed858e6ed4639447aa3d705a1dfc4cbe7c4b74d67183a5875d24552ae74e546ab15376ac54f0582f3a92a1e1075cfb682a16b6a46ba93f31165f32654838c9e14b46476465cfe45bec653d2c0a1cef96cf01e123f1a3116c93b1d5e54730dcc5f9d618b53a7917a71abbcc312cacb170c10e454c41869717afd8aa4a86113ceb654d582af443a0b6a74173f963d99c8d44e5520ae278370855c0e9e01df9b37d13e35124e6c2590e9a231a219c07ef6c49cec726e5bc6c6280269fb608e754d097ae818b16b386bc895af3bb9f5f2a4481c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f +ciphertext: 940def77ca2ceb3a5493b53f9f11b03d8714dc86580ad78129deb2f2f402c99f49d8a37eaf9841e9f7ec3485eb2b830298487de09d7387cc32db2d89ccf1341d5a58f41288115b8a9950e3771d7ef4b722565ecf49c40838848262c72cf630dd23a29175a30d589bb271d0059f038ce32fe941da9a687b76496d4dd1b040e013d129abba459d7320a43ad9f5454d22058c137273c167e4bcca4c491d73322cae90e30bd1c5d2e672da993b7ca42137e33e80d51ce3e6f07a0e2d641dcd7bf1ee96861b9d05c99304d3cea4e06df0ecacce42121cc86566764c30c2ffc5e53fb9c3a38c346018953028b0958a41cb7d22640115bc576859c458fbfaf66a916d01384a335bd3e5470944eaa3bd3f00a4d1311a3b1e2b9db547e20298b5145a302ea0a7eb9373822eea0facaa85d58133bbe1d5ad4fcb32d60da6db4ba4d5b0744f7b85413d551406a93bfbcbdeac128f20b5b268089ba063d6fc3c4700f5a1c36dfe179e71ec20a628f453768a2bb70ac71c69b1beea25199613f6d8fdf24d1192228145313d4c6c405071fdd41c61b63b91daa197dddb02806d131365b8dd7db229a47a84d6768ba308ca5f26115c723b68c4e040aced7dc5ec5662ad73fbf958ff04aac4d749e2931a9613e869dd50169bbdbfcf03b4d594e2ec327ea1936f64ff1589b258fb7cd1aa31bff2d0561bc91a6c945f81adb345836b6a028ea7216ff18264bf67e68bdf9e586d07fb6876dab46825aea47415d3ef91a3af677ce277c4d5744c2dc686afbcc30b5eab9ab02280f6ee99c181430ef7305781e42a874d8e5591a6090a740a7c5c5a0bd3b960e0458d270a641c7583b00ceedb6dd7b3dcc16ca1605f46bf799928e5a80f7ec445ced534b02c9ebc3aaec035d3a24adc4cb6617ef8469e98352aea0929d3287ca56ac8b7925074702570920be595df7717f3addc22e842a1d72e2864e32bbbe97d8717ceee02581496e92bcf75158868de27cf0b4b6c5508a9abed542f49e01bdd849ffff94056b8612e955d2e430cae6e34e8e45c655ce37e1fa49bd3fab70ac5c84f14e31622d079088e972555ab850d8608161dab959300d64d6a9e963661a0eb615bd1cf87252c64ba41740fb9682695e4fe11e7318539ebdcc0d29d42c2ae0b764da06425f0be9d9343a43fe1afd763d93b2af27cfbc6adae24f52a87b57453778fdf8178280f4f05cd59b31833af437fafa11ef5c7d3851e0010b83379986f531090e62e36222fac7a8e94440d7bd101264c5b3400224fc700fc0fe9600d90b2d6b1552e66cf6cd14a3dea3b806b830bcda236d93a3d4164db43a96db6266b4e25df70747b421f6e8cc19c37fd3c903e4fe7c22c3bd1e56e60acf7f635a792209e06cb34f5ffa2a882e4e1a4abf4fa1805fc06a72cf23481badfce075a6774430d68d98504d75b87bd3c154e3363c7975f1363fac01a04f0f3ad92e081495cbcdd027ae81a3a8adb35d3cf13a09c04513ffd66544ea4bce399e2ad4c243148dcf41ca01b0f6fe528f598d21704d4f8ccf850d852883b81cc1914fe50cd09d4fe795cfec90652a9dea7bae10244ae0d870b75549bf90087a6aedba5f92bcecb15f770cc14018ad150461b73d3a4fcefd70e1ec8eebb428eeb78a665f4e180b312d0d7f5d88a9e5a17f6fd48cb92147b4a2bb2f9332d8af37e667776b4e82f850dc58f1173f3dd56c5ffca7ce5b5b516d77621ff3a78df6fe7a88479aa1c3b8bb0d40466528e4483d2a6a60be6cf32ece2e91bc090a36708c1b7f29f3318189bb6a05f9acf730d2d6cd20e1fe3739d9179e639ea34eb7eeb35daf32b78d94cb31da90dae7668fdf6d06b6ecdb331415272d9496d2a78b4054f9d59054a07f74cab7697b83ef03501d1bb1ab250ca9caecc8861d8f2b56090e2cf7dc32526f249034891a54b2a8f4187957c374567d741b3d2ab260663da07330621925b35d020c9ef6b354c646891ced14e0f9f4172b2eb9cfea714b7a296b4559a99a6b5393b343e59a00190cad70247d670b0c22599119a545d3140b240e486dbe7fe3532f4e0c23975fbda2bbb8824e93af3f9d2d76484bd0c1f130ebe1a61bf20be7f667fe55b8cec87ed597f8ad2402a0f0786d0cf5141a6e11c4d1eee404aa252baceb67a323a8b091a704dd774ac79be50999466d12caeb95bfaf9324cbd0610b0a4dcc630bd654e9f63a9ca6e72cbb940cd +result: pass +shared_secret: e6a61e88faaa25ff8bed035f8a47afa4f034121457104168a3247e366e781871 + +# Official test vector 93, seed: "92877d706daf88ef3412eb143db8cd91bc047a9a43b7acdaa42523560dee4c172697be4332042fcab91135839bf74ab2" +private_key: c73842b1f8a1f7cb343c570bfa701270595100a58798d235bad4ae8ac7376607675de7cddab1432f5b04fa1045af5a2644fc431c604a2c794d57b1cce958707e508c0ff80ecd5c001439456b65091bb75dae518b9dd5a28fc8c549e4450ed9b92a6c77c5849836f52bad941438672e06786cf16233fbbccb192b5c07a9a2eceba39571778b665df2b0c359206cbb34b33e215d1f8900bfc1bf6dfc69490257e2a533430a79522957d1677a19526a44e4bdac44358cd283e60376b8026a0d389912324b1f37ab4283156a913782d26d7696827fd55a2d636afc42173f86b03622091e489d55f74db20c846b0c27e7c1c0ea8729b97ca5ffe5296fe180aa2a5728f7befc320bbaf64c0e5555b1f35bf9203ee22478127122aeeb4a3d983fee5219dad3b4db5197ad079be2803491238bbfc003e2e22e2ff98f0e0b2389c83c7a30a870e63ab54a094b27adbf301526d04449b1283b02254aa2074a902e67b978c1ba92ad014c7a15c2f678bf3d1342fe588e4d7b8b674b9b92699d8b312fe0a64c0da1a7d93c16f4917a96f03e3bb21e400b3141b17f90d58a853445efd63e607cbb05036ed720c783f187aa897cd5282d64fc119da7882bd28dbc42ccd3c1982e1ac0b4aa1497dca5f764217a068acb73af404a5c8daa35268484666199d7761b1a802f5334bd1bb4b05c5501bf1c4a1b23a35e3341e7623f181546fd2c069f63554a67c0d85a479123680849a17ec1890ab616de357f16d14b3a75326e13ccecc690eb66af0216921043c31a2c8a44688b670a060006afddc6cd13898dd97214f405a24ea5990e06b55c278cc66115f8655d4d8381eb55a0655655966b3f2ca433d3c78fe3a0aa0e6196ce4b355425ae81434c27e47b73cb6e024065fe2bbabee99ccb8459e1ec8bf6703032330d402b2155765097f650681135a60c6fa2aa74cc1490dd22525a7a65ab853579026750bb5fbc645ab3c796bc798dccf927663c9ce82134b9536a9ef38d54fc421f964d4c20ca8d5b9a5795bf1bb1c3857954d91c27140528fef1c366eb41d78bbdc773b58b81420ff36ddeb3349375bf1a3933c7a865e2e16cbfec0cd93567b09b18c6d2c9dae2500c7b19e42c62326a279cd75cd7aca7e9b08c08a81087012f75e278a281c9c482c149473cf5f8965acc8db1b74a205103a89686bfcc65d40576dab5c33960069db6c390138647b5301448627fd1bdbf68abc6979a03f47651a13c098386c6551a89fb9ea39696a8182d390388b12070d4e378b70c13a4f6af1fb860b7f1a42bd1c8373839432609032224cfeb9ee0814e5ca4b57af39f84d53a4f9a7a311421c9dc7e411c102c207a34c2161c7099e9cc39d5908ded696abe32a97b8a297c28b868792305490a691291f5e73ca8163e5b9a17e8d417b2f14aeb017a2757653b6b92aaa73aff638cb5412f1508b9c7aac9439787f2883043660aac7294aef5694c3294c1471dfc49be531611ec7863fc4c2f58c7141418b285b209f6738e45d09f5956b44d6106ed04b59164287efbaa28a63cd80c59636896104261c10ca8c2c8603fba2b53c531cf7a8da7e3abada81507487c28b9bb07477e0241c958584e6047ba1119783d62c4cac3c4563c628a5503236c7a997377ad53b9a4ba153645933856671aacca85d55ada82c39d82280de07100e1cace49a6dd09c22f2c1da1077b9dd437d55b0d7b6978446a19ab106ce18529608c2ed283c9806689b0624dcf10c6a8665948250af74182d9023895a577c5eb880359a046ca7a15297b3bc3ad227972ba80061570a7c10bb26cd87f05736a492405b4267fdaaaab8062a5b10bb65ac597d8c5a5e123a0f242ae2470c1f0d8829dd73fbecb53076aa093b73e68e35a3bb649ce4621bbdb7c95bc0dcf997b83c0a65be2015a5465fc1273b599c7074220786c306f4717fa50936bb22417a2247dea1aef76895522cfa8b20cbd9c344047984e9b67985307e8f64a15813cec89b8b004c1d61a884b327badac95a14a2d2af1a7a5b5ca6e3722d150cb4be7a376372beb7a99dc94654f652780411a43e619c0643d266a8b1aab982080b1b9aa52e007b1eb6b76b3147b14785652b5cd11586f6904ce3a9554f745947ff27e87e2c6acc205d7689d908068608053387600c6aa9ba285738b9372c75c9083566b23acc2e981457fab1306b04340969dd1081f074a2a33bb85b892750bd34336a68362e00302712410eb8fc8f37da6530a408b17fddb0fd602c2e40a7dc4c94ea843226ca79b167b180f3024a273c57f91cd69629c970617720497c4308e10f03a038544fff13a3afb83fb2291dbf177a003b0197037a3c9283de78dc911beacf30e6c4c6740300266c6ab69893aa9e112b67903df849a4bd59ba106030b62b61bc293fef997a8851d06c956631c266ad533791124a4e09bdb06c0ffa681cf2c6d43670e2a017b9a40c13e85bc1c24ad914003aa69439d401ba605d013a2baa0e0b010363574b71242745e9d709a3ff3b0a2ac7f374684bce9bcf0200db5a09b5d0c92cdc7bbfb3c24a79a8a4a0a9a64376a0793c1252362af170856046471b1a60eb33f23c59122d0aaeda79caef27df971ac8764986cfb2617fc3bb71355a56867c29795f46668f8166970b06c6ca91d8651ccdcbc23fc1b2f0a75c45fb3321151953315036d52322c9b6408152bbb595129f41a8b8570f02b8ccba66de5fc36d892457673a9a096c556c9afd11b06e1ca9cc8b3a9e9765e38e711d039612c4bb296061771e42efd68c9acc8ca61012f295251ccb33252e8b0e6486c5a5bc28683347571b8f0a42aec4873cd3549324ab728324030196035b29ad3043ab9008da6b924bd376cfb103fcbab9450b44c299b4e27165303786944009418cbc66fd9a570468dd85ab652d86402501d61f5272cd880056521f72a362170580675bddd505840378d96334a704282934527f70a499ae99db81516b1d1426d233dcf9855880022d72100e14858c0a226325338b33ab5ecc5a86e0ac4e8504e168c5e1a4788177878bd569d49dc60b1484f43134e2bd39efb207430aa564ab7a88cd40ecc00a10e4b6c663b61a6054323429c0722b2e4464ec0d43374234b4884bb8ddc0a28852600369635531ff943194cf91937b43afd418f8f964cf9c9cc66988407bcc7b5247a2372980035c8f8357bc3db948c0c4b391ab47636024dcb79f094c62ccb64893c0c45c1bc88cb00ba85248253606735547d424797b0bb302c5eb9631ac98060bc47341e69379bba5b5e44980970c699187f62731f2b1a4bb4c7a33f8a20758335bc8a3c4c4c0900b3c2cfe35356a58aae233b066466b34c814a4cb6b9f916581b0361e78a2971bbfc014a7476ab2f7c291ba688d5f75153c4ad7ba4c664a8002058c9eb195a3ca7ab70638bb114c3618bac3ab383dbf292705a478a35c31f06a1823b545366cb6900c59c036b063727504a55c2ac940606c7bcc74643644bde915d83c395023c8fbd069f9ec50e1fdbc8edb0387ad1074b11bfdf220edd7486082a4842d6c737c6a1ed5b98bb78cd6de1153480b3bf095b04a7cbccc19102964e34693a6e492fae134c9d726e49532236018dc517bd94232d717a408af43fd5c837a21cca33ecc2a3859eaf8a74b63c36fa70168f241e2ff52f7197a615d04357a7acca269e47848375bab1f82ac686903d44786d540a496e29642f71061ee76054b5aa6ae67cfa01704b386a657a6773b8509cc1b4e16bbb92cb204b5bc6638cc5dd868db40358dcc4c258915d1e93771a12aa7ca4b3bcd854ea2a111c09afbc60cc91f5abd63ca5ccd11ef2c1b06a38925eb9a4bb569d8c4b859ad278ceb006a3d44328636809a31c377c58957aa5408b488445bf1fc4ca378c733e410e3814c4300850fffb052df767743468c6a91d81dc3c4c34b4b5a06dfab7cb6a741c91107758859f2e1c2d06881612e05cd7444abf23c104b6a068988fb794306e90aa1ad2ccf76482f0fa7067467dc105c27ea7192d0c6fc50b4042934e81876e121c6c295a5432219345bab9ca566f0dfb6b9d4728ab7187f311ba22d55b4047b9b3a17632925ec31bb2322257dfea3d1c1b4331467904eb2bc1f7a4369aab9912531a6835358b016889ac910a7c398c18a1636976e04c7227cc9fe13d61a848eeb60d56635064ba07359730a0c269ed6cb25ca2908f524ae3c9bc860a062192421cdba741dca98f98ae0d955c78d141fedb59bee95957e035d5b05155f5792e88ce43342f410ac92eaa68cd055fe28c4a217b9c2da4ba64d4a6605565d41a00acf377eaf80881d9a5305766747cb076149866504db6b96ee4cc9d4bb977165f0b04d3c03c1f8150a265215387c7983d37463a3136a1b7c694b79d85075e5a897a948edceafc78b87b7fbb43b11f82831299a9ee660b3d40c06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 +ciphertext: 0512de1ce921b93fb6e5bc9b3c41ee032b2dd86806cc50d2529bb8a79fa67177246fe90c67b3303bc92b853f645968a3d196b869145c83acc953228cab2ec6171c7bea6bd89376f7f20accd881a38e498f8e01cff9e6b291d3ca3e478ea2b710a3305c812c467303d84332ede16cf30ce7ced5cd1a1b3467e727313777e04f7e6c66acc22dd3d079b2fcb0b519f5f86be0d201027e93f4b1757ff2b23ced963b2b01eeb967b71498e33b47ddf1ccca9de66c13c733f126606907bf717e08d4c6adc879f6a59db879986e5e3fc01340c3b1122ac08beaba9e4cfdc912c738ce91fe440d706eae8233260082a97710df67622e7e5da4653f52c76571f4d707469b2de6ab29f568c68b750fc55cb11a69385b1ccf86f3058f9521a1587f87dd7fe581b7419a75066c58713b3b350d01659045d3f66da70a8a48fa42fae43311028b0b61bc49e756e55cde70befefade922d01b943f9f3ce870dc6f6adb1adf53134758804f2e20919913529bfaa187b37f4115a06b0ae8ad84a28c5237c070599eec2064e4905d584cc6bd5216b193286392977eab85fbf357b565e6071b744476c9f9ac7c76d8a8f36e238d75fc69d8464537230b18d73a3a0ae41ea6c12796978d2deb5cbdc6305a6287541d4e443483577a1c1baadea774c5c87e5dd3489bd7e9ec4dbeab1ec4b3dba80c28d599d2992209f5e89b057d742a68e3586f11839579f34dc314264ba9538550aa6a8141370f4090078be5cc3d06d9b355b478d0b16ed945a51a25a6b8ede93f40412005a20fd40eef736cd1fe8e08fb564479be00e59e1ec273c82f92a8a816868b45a4a40b965cae14115668afe9c2d5848cc0e5717b05fc8431a9cd4ccb1208d35230840e32bc8cdbcb4513914714a203890bdec25c72f89af01ceb2c2f9073232c5464e7ff2dbc3687c798ba88d72fe9a1a47fd91a0f17a8fed16aeeb3a1b5d13df78c2580635f0e2af0e439fa35b1e7091ea821a77bdbc7b219172ecad5bf43db870d21ac01e0954fc4092ea8e85e1fab1c8eaf5322e6dae64b224df3b7c2b7f31f4d6101a82bf17e74b64bbee7256dacc3ece2ab95d0ae162118c5c7c6a1fa94a9015fcf76cdcb97a5af486139f23fd48ea62d4ad5c84125ff7044756016a84654b2ac4c2c0ba6915991575dda35570fb23f1a50ff61dfd88c1e9b14ccdbc48015b49f773ca2426122c323eb2dd2a972b64fc2718608a16162c6f38570d30c1d39dba3bee7367daf206594f6d2eb19dd72799c2b9351e5825d5ff453c5b650e0906bfa5a48f6a12b8d1534c60d75b40b48c1e457da5c9bb7281e503270c5ff5e247471fb14c1af2012d52ea24f48855d51daace8c4e8a615f825e8e24203613ece54deee01a0aba1d0fde8e5ce495c382382de6e95fb640483ca7405d02fff7c4d3799e9931ad3e6d64230d6c9d99afb39a049ed44ec2ddbd7c793202168ea54c60f7758c1da23f6c2a9165b6b5581fbce1ee7c41eb3830ce978b20af2eb4108edf93e27db402ad68256c1f53f4066902461fe8c9dcc92e553f679bcf19b8da57ac0d15e3e2b4f6d57dc9d5a870fe2dc252ed58171f585168c4823320daf7c25af7be123382d6d45998b53f6fe29a2fdc7e6851ffb53f63c8a2e0ab0866d7a680d65c54547d6f610207dca369db3b1ac44858ba5793c1270d8a2bd41400272dd6a19ca3fcd8917a52f65cdcede7aea00731f6786e16362e836c197a9e2b3c6228e9884ac942d66b67bcef075d85ae394a9b6b7c2c4ce43e8d940a0e888947d041fdf98c879f550705e2a7ea4c33af64c56af512ea79b94b865d4eaecf93cb6e03d454146ff5ef8ffe21bcf36db1cefa6ccbefece8d3e9cae9e03f259bcea9d65b23fd395b66c9981d6102d938913d6997772c2582b8ee09f2ff1675c116d04669224b6f867d0cab6699be7b03568c953901e75b67a1da01248c02ee2ee4d1bc7c3282c7b55f511e0242ab59b69a90300c5cfe3c80f8c382d9259a3ea1804211d02a95d166c17cf3e0319b47c4ad1425dc0a9338e6eac2eb91ad3250b6e69fd6dc5b193609c049342531aae7179f3fff718f62d6c1752b5c2e465fb6c625a299364a964e56a9ea758af79b3958a5b016442c76a9554cbbea5833c921e356d6fc6a688a55b2d37b29fe8ca97d2c1926f3e9da8ccfbfe2df9286c821b13e28f39a9ffe42f41075f93e3dfbffa4d3fab09a8ce3bd +result: pass +shared_secret: 7b5182633888d2708c344b6bcc5bd895e0f1c31719ce78efb0eff0240453fb4b + +# Official test vector 94, seed: "bb4c0082ca4044b1ff60b036c9b0e0495d58667156786c530bc69d949a13bfaff53798e456423d7a0e162a60039367d7" +private_key: 29450b5491a0266aa9fd363954b83ffb586f34256d0ccc6436225516953bd1982aee4224545abea8d68e9dd24b0f354f83978d0de0c5639acd6bd0a3c27289d20c9d55e56013aca5dbb7045d748077f4b9bc967dc2259cc79aa29a5a7cbe66b9484ca649042eee3b440bdb3f6475a02f61a85b2b373b91338940a2872213913ab6088b319d2b509ab46cd19aa454480d9560c0828a24b695cbb166471bd01a3bd406bba004e0c21f969675bf0884aca29f247c29f95097927490b5b3b72c30b59dda7d2b6a54693a1ad6ac033794cd0941be1c38998b488091a860a69c5e82248b5941851d8553f2159782dc7c2767c09b93671ec2c90684a4d3b27b6a88be09c50edc55b9291656177803461b4f312a6f4abc5ed1c97a6384356c549e070200245c6e39eac4267a77207293fed95fef2c29f3d93d2f1c6a609c07a3b8624bbc8da5c2538c25affefb815cc0675d88ba2c7629618a8e47b98433acb57c0b8e6499c44c311288c34d8566becbac15afc9a5a3d7c49ff25892a7a758b77e7540ac9e61ab0128cf301769dc65bd83542ee4b287849c75d53102ae750148d0839425a4b10243656397c16b05a9591817f117e6923d63584eb5e2c84a922d9f89b554579f9c526e6ab612a096a22760040a564649244ab8da3f066a4f0cd6906d83ca49ebae1fc49b00a5c36776c6f0911222602f7f2799fc3018828415d7c2ac0b88116dba3d0e1c62da01365e32bd111709fb7c07cf905e0510b9da4a61d7254d9a9c92cfab5002926954781ae86b0d88660c94e6591188c629a39e2d1748f2b44eb0961c7a480768e63d0560b65702c4d782193b7c9a89807729a3ca0c5c737e15506fe79912b05f25767fc53b772e952b6b900ef2b535beab49b69c0b958a42fd47b28dba99777291994598a64586cb86c8a98a12cc20322d2cb1a8819caf36bbcc387265b57819e496cca38b5c0b0b6f86c3b2d722d4eb3db4d97bf5aa2fe0a212f8f9b14e39495abb305a40c0c7ea77c315a2eed52fc31a75fe224bf08749ab8b7a5858860dd304f95608988abacf00bc0daa7f03b57bfed80503b366ada238312a155d398e26491abf1c5b10d22f8ee568d6f8867256684b0500d02a77070b8d54cb3504500a1935577cfb46113277933155d089c456d28f28aaaf0661a4a60486c4f7ba710253f753af6d75cd7b265f3365b2213878bce6c9f806c9df532ce2a5a656d072e67238e0c74978395552eb88a0b9b49b3205c41b3027d40b198184c67a8d5d3303d25987e9598de984a2f2eb69da7b843c6277ca144c2cac1babe34f119abeb5d6c1f6780d54cb511b2795a9118b4695749682cce3625cf7e85a00b82f59ab33184c2f6b6559084a1550675f72795e6ad74b22d57b903678ec4bc07da10a04b0c0ceb92a5e224661c9688e2a141d0c73af528826f65a330ca36a0b220bcc8021bcc1fcd408fdea0b2d709bfd368fdf1992f3d2841256647d2077f2a39c5770a11ef945823c55616cb00df3adae6478caec0ea05171aeb86eec42bb56c53ce27262a5db7e9aca343c036d8a7ca15ce23ab90312c8322e541773ace463a03801c3c44a7aa39723f2092a6c86c3f0c7b316865b50a13b84485eba71bdb2420bf351e21ba1b1169bf9414cdfe1235cb6024371450d9849ce8997e716bdb151119399884069bf964337dac8291c47abe351c914626ced0654e7a2cd65690e3fc67b3be0af7350c0d09ab978da207db5cc82902d6f3705f8b672384c0743d81a0de0871ac4a7fbc7bf1224a2f6e2b1cfd90f37e75f61a17f7fc9ad14b35ac0f79e6567a0208c0bf049a624566204301cd2582510f1c19de245b25394c8ea1405f7afd7a325bac60c93f700f77b258ba5b7177958fc8664e5e42d1600bba29b63b17046881a28dde4742dd7b8ef476f50186ab287a9f6c17321760a2332af65f136cd675b63695bbcc86081a10365aabfc9008db28b0123534acc645f290805d8b9bdf0636934b0b955555476b7604850ca5b3350d20b9269a3898fd45b161b165248830bd952b92a4c12721b67d724336c327a46753dea31a5c440f86c941660bc4e72ba51313d82842ff1e0175aa3c682a973f0861905fa9954770f83265f7f009474f118b081a24f9492d7d7408df21d000087b9e8cb88d5437c59835586a5b224aaa6428374da6bbed37b0f67c3b5352a5ec2bc072247d20c7e83d83ec162a3dd00b44c070577ebb614c97b06e15d7a41ccb6a45fb2205bb57ba4dac40a12ac5f6bb522ed863daf67379d230badf71844256cfc596d28957bae0c050b9182668857951a38628b83e2082659317ffdfa0e279644fed9877d6775e131682b998adb000ace652f13fb0b9aa57b9022b792bc4bae5ab5f07372bcf131ab93523ff42e5a328fe465520bc57d62f222e0a3623ad8b034f164b1800926ca8a850277d0054f34b941e6388349a87eb853375055caa0305309a06fc2016ba8a3c9bb06bbe7581946755e6c726e9767330d639ad4ca467ff670414a65eacba93d2b33aa628f9eb2949054c82e62774cc13f013998cf29465e8b83dce66928b2c9e1f4cebbb91e2d8b2278879073411358910ef23c66c3115af8ca4ed0b595c8a49ae8eb955a86a2549132cd65a2f6a44eece7b43a40629ef172b068aab1c2126fe058ad02183dea6994abc7daa71414666c57b4c40a17781ac4784e6ab2ecbb8fb2101fa1530a00032b5d1b51b57ac1537076faa54b3b9bbfd9dcac565209cc681b73d5a3c7138156b258321c05a494345c9aa72197c9d3a9552e437e891c437ba16c00c76f0a6252c8e4cebed86398957088596ce28c5880db1b90306958c12a45b5a14e1b05c161c5a3aa78099154a557a58e6c2c7758653e3209edb90110e40e037732a7e44d7a60736437c7a3e872c82b20478083b2592ea7418b75b002f1da834df8624f665df2677e0ae98c62636f603bc1d796935a11bd18fb851e8076c7e4c58b41abc71481608281ee4c572b612c08b8cadcd6b7dc83130f161edb26b1335662a5161478eb5d5a8c61faa175f54166ea2741d27c0496292380e93f6b77577b494c463c9ce8960bcec25f43f198f0552da73819bd7131cec101fe6448f7ba3fb03637b351af9e284da6677b53b71ffde41ee41518b18c39813a82ca041f2466321ba9531ad4b576cb8825978b565580d5f000b9a56a943c2cedec578f728785487abc0a8f2d28af8aa3237022125fab084cd19565816d15f8bc6936959eea23f8279c74946a8ba37d2eec75622c4f911c24839b78cbc8812fa55e19e10ede4931f5d16bba8aa44943bf9720395a8b1328648b887b28a98423e4322a69a752d1d2121d447c2f05bc91e52635d06bb1e05daab02f02b6ba9ea8944d9344ef68c23af10144b93a40c456da0857acdcacebf1782d63a0648497c91916a50b3d0688800b968f1e2200fceb4538f7520becb0fb86368ada208c0602e1ba5d2ca85da8d36ab8782a80436d69f65622279d8145aa5ed9671a28699ac9990d738c3b67ba500a731cda82965a01b4c16144383bfbf3334d159c31831f94301d6a0320a4c7a340aab3a18825516b819a285dbb82a28f164091516c2519b9b534ab8d116cf61303dfa4091fab8669a417a9862f90491d251277d4b7b0523b7c4e345ebb090e5ee581f1933e7168567a857dfaf916f7747550409889bcbfb7e32840537ecb7c050b18552fe5aabb6794b27505f3b721c0b96b738c844f816160d3c4349c4463f12d248a6605b52bb9f8b370e958db55b9ee0663454104c47781e8e0a6eceb2a2632acf0082c4e1806c0927a25e7ba8f1a395f1a352e72ccf72093a9587299e5bc23933395836bcc97832360a992b040a7b67d4e2caa3d227f60d4c8ae293070b1878c63c8e106267a8ac7bcc850dabb5904769fc487b4f417388ce6755058470a3a7fae41b56f009b01c74af2c0a7d252b30302a7b3585864c84c8aa4ac42e82b1ab44215191284799c40d5ac80079d30625dd09562e555167391a370fb6841a98ff2b85713b75ff58b984efaa29393540fcb20e3c1cdb1887be3a30fd3861d62999f2c376704983f969197c9165f19b498bc169966269e3af2300847c908a4738c8655f476238fba9bdb05c3e4f1c3aadc7432960603c36f759c69e4ba048c76561ab4831b40341ed5c05c7b8a853169f2d75713c97a883419457193b9889724d3a108c1c3d083404d93a25a98babfe33d36fccf4f6623b9e378fc5c731b0a20df7b5c28a0c86c065017d37a65d89e8e127acb630f4304739f19bb2a596bf950c996805f73d79ec0aa09dbb0561c3a3bdb13009f672b9f2c907c468d916c305d530fe5910a3c029a722a9e1e6048ef23454bb64b1c9eb2d1c1fb4c57d68f592a778a0b3bedd71c5d4f75c2e46b6088ca12a0a5e9596d5999259f13ff4f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 +ciphertext: 9ea5dcbbe778444d92c1162b8842a4a2fc33f2e4de75c1e5dc23569c80479384067bc22205b47bba218bb0c8f54475d71141a2e66dab38320476b00695a09735ff5037008e16ebb9f5d5865a479fefd25cc29e9661569237ef9b1a0f3f857328d857c1052490b533f46b50653e95b7159cb7373ed0a06b86229d0cdabda69738c45e9ce6339c58a5206ec77b73e71f29c55dda3b396ecea3f5dbd533f8e5892608c204518174fe2abf933b4d1a734cf0f0b3e53b566e00ddc9551164577ec0b9b698a35bf949fedbab9ba066b0bccc5611cc57ddac6cec3307a51e9af5ccc4aaab97551d005a68c968c5ad29ac12681672910919f4f3708c839f68ba43ab6ed9b3fd5ab913c156daca0c79d4ce04604d49494ffe53e204bfb04810cc179d830b22b36563674fda54c8369e412160d3d5f1e5494ec76e1714f70b5d41312802dc615f06a22159e762f825052d1de9d1a43bb476c43ab6071a53dcfd1575beeb415a58902a22b9018d1fe86b664d8676b2cb145a3b86756dd1dc7c0c8cd64777064e95f3e47c54544a0e192116b54ee581444e8a809f6b4e790888560842609c2115b6851cb388eb3d441c28ad517eeccdcc7fc0f5a487bb38995143fa2f0f99d0ab708df86ce26756adbf7b75844c8e94b628ec2b117e07180b7ef46bcb04f9473903e75cfe8c34eaa3fbc44a9da3568b06ab5b8a2196b09cc53c0d47d28a118c1ae014ebefb782a4927500a57c8a4f44a9051eea6cbfb00a20f3b62d1101ee1d0a9f7a706774b9aeeecd91daaa82ce8ca7adcaa2727cfc2ae37c1d05ac515e37108678272226d1dd0a7a4a7aee2be99831ff18864cc3d438427897f22043cb5e193b27465b3627fd9d7a0976268f2c2934050701783e25b73537aae506b6dd8de3a03381b96c9af1e0cb477bb1da66683b832402c829dcf20e872ab79f5f4a658af4f7d53430b415d0cb50ed334acd4ae8693bb27a0b36b5f2769674758585d03121c3636ebe4d4a55f23e0fdf7463385fac3fbe4827a6cef0e814823dc6aa558c1e9f18ece63a62820bfb338a5929cbbcbd496c601892a9f6b4a34fa43d3ddf9fcac8e0069a733e4a9cf976427979bd829c0d394ca2b09ae53a4a3e7582e8035d22b42f0f66549ccaeaa5809afd1c18b22d5570e4bd6a872dc534b4a1c404e4f9985aad35422a27af913f8f8f39ba3535ba4339710e2869aa150fdadd00ed2ddcdb85404bf6623ae56f8279b5f86f7e3b28643c8588d7900397b567cbbd62bf9399aaaa1f608b2be7f0caa251b451b6186fe58b49d4b7e061193ee591da5bcdafe08fe03e3ff0bcd7b5327817e8d155859e77bb84ef616897e15ac38b516bc53421230cb0c256fa5aeb72455300983d2114b64d61c9b2f2f08e5c1f3af7a00f47eeaa36c9de5fe9487533fb893281607bef7b7c940216abbec21befdf21ab4e5078ce57dacb96b9b46281a483a11d05df9933a1e09385e6cea10a26fbad604cfdb56e82e6e7fe146d34d935946e19dcb87dd0dce2d2110614027e7ec6208bc2ef5d0a1f9554124abc026233d41958d683667a20829811d224f978d5a3fca48340dbf8b6bf0953d90eff929431b8c312335ab4c5a8538d6b07dd53fa214974183f2c0f8b2969f59881c5a7a90605a8ac2d47001a9177391a66cbe2f26664b5b446e03df736fd43ad9dd80d753e0c7cc9c86c0fa36fc0edd2e5515683d88d30f16c0a89fe72f855bc47c0cb676b2be16be3f93476df3128d49e8107a05b8128bf69a8d4ef13ab3805d78c2dd2d27b771daef67c3958117901d0f23f4432bf07a45cfc0ee2345363bc713c3e34980c6b0266f990e33fa25cf7a6ea84fdb6eb43761d3117d99a1e44c4996787d286ee5776381557ae949499ed5ffb3834aa30585aa8f782aee707e02aab97a4749fdf26aaab56068b35ccbcd148db9b87e07174600338942ed289afe3cbf81df1636dea87a53a15e87456cee2c8693d2f727035e52d89f4919575c7843485e147c36e9efd0831c1ceb9aa70bc6f0dbea7398e924ca07fc682dbb2b9c419e693267c37255397ae89f3c76c6ce634d7113eaad6474dccfb0bc914b4d11371f4730b228dfe89a4b0db7753239a9959a3b250ccf43be6207a12e588529019e72c0b4f432e377abc4f29449c45e987bfa765a45ca0fa39d96014dc447de4ccd3b0a6e07def8afff4cae12af7673935771be3aaba37060d +result: pass +shared_secret: eff76345f442ea27594bfb6e1e9eeffb55dbd15b9936a3aab881c0d21b45c28e + +# Official test vector 95, seed: "121d90e70af6204445d0deb28ac0c108262719e9fd3476aca74bbfde89faf04d8d5f89a624e8a75db80431f0d10ad28f" +private_key: 38d11a53967017a25d6522c539d05bb58667841b27c88c5f684597c79950739b4b3e15976bdb84de829fab2a74e888a65a336b5cf51e57c3c86e6caa9d9a4e7eaa69f9b53a719031a0d078f2257522bc083184bffc57790ba35cac0333f26925e87696c7749cc1129bf1d411fbea5049fa56231217fe9c073e59cd389c7b8fb0240f568dc815459ad132b932956288c3d93aa36d1627ebf1947c707a7f19c9d637b4d4a712e9b61444604ea1711cf08a91ba112087143b8893abc4db933fe973c65cb1c6512519b38e7385a1596407dd4850aaea36f9d4cc75542e96578b7230bd775040d6c03ef4b5b79406063c75b863a51488d395c33262a62268c1d11d53b315820b5190a94c8792aa24f651964061aca4212f452e7566b21418a9c7d84075f609e7456f069c105cb41ed9f638fa417e73f55f4c01bb553c085b3740a3bccd2cb76fe56b1f1b4892b762c2ad3c6eae082531b5b50e265ce5e104e8479087639368c091d2e2087a10b5d5f92cadba3c1b540bbf7945d9d04982ac5bbaa342ac5817b3a982e98a5e99a249555205d827b5e3348b31dc34af06b84dd52bc6d771acdb3b77a41aaa951b7fa5261d56bad24932531c35820943b0b2984afbca41506c4b3481f8817c285136c7185d8aa4a22f48920719b4d525ba81381142e8b178a0019313bea431c7ecdc7aec54662f591be66b74d85070c68817bc01c50e248b347c6eb3a97a70da43f51aca3df1cbe1316f93c50f4d02424578c6d274074e13accc57bbb8222d87db597e6c880cd794a94597faa10fb4f901208244c788afaf18502e3b7fec113510470d39db48352a7331b24a3ee15f986364a0e42aac36bd6a82b78b803571f632a0a49e6a871a9ec17dcca396c1d57a49ec5b46a981f6ba316f181721b40f17266120c0bf64a9a1d9116e2f104a0728bdfd54570da246c512c102d964c3c8432839900ff26910992309aa78aeda610cda4cf12aabd3dc7a96b1c26337c1e2fc858db6be45321de76aca80e417c7410283634b3e613d6594b8748917b60333a1268e6f943746377ca9c5ab428a0b6f37b844c25a8b0bc52e25cdeca953e089b9d787a738911cb6f209bc3b85c415b1d0a3630115aa496227a5d9bbe4a67ff05c2c8ab29090f52a9ad33a06dcbcff047244e170a9fb9fa7298b06313b80d4b1ca0a61d1531effec12c77405e188053fc0aa1a0329bf1139cfaaa86341004a4a11c461a5ab38036fd777afec0fc8965ef19144f0f81e40065fb23986dae3569dbb5feaa79b4c867be5a536dc9379d0365b00e91de1ab9a9701011cec0721c2905ea049fc221f39a7a80aa11114e69e7bcb3822b3c61a46386c1994141918ecd7068370ba638770fd2831dc758496056d15a82c6e0196c152592a216749eb02d2099309573fb9298e6d1cbda57898ca8788efd280934b4b60e40584c365633bc7fd091db45a644936be33953d4675c2fbd270ecb82b3e550d2df36eb5d11f7f6726d722861468cc2e830a11c419646c28e4c0bedc9627a0cc83ab9b9d4e3b320cdb18c4165c3b32ae61a05aa0869778a51df37b9c125045c6899724152c7ba7a6536b3d9e92ac2c63c29189813f55b5919861f38cb6d30845ce353dd0e199503785ed6b43ab60c0b6233b64265c7a794ca19838776a65ee97935cd4a63862299297c15b6a17bb91cf0ad393972b867fb11dc1e24ec7e205a42925ad337874b3263a7008e6487ed08c14a8b7a973f6a340f2af81fa76691c6343577e8b83399ec1a356b78d1e92ccbfa54cb79a3110411ee82161578c6a07d5746734710ee8a65f69780c16bf600737be4b48c7c977cdc2a3a6769301328f7ae7238f297f16a897cb3b768401544b974007c64be131b45d454a24a21af8440792631d78fb3ac527112da6222ab0ae47490c8247c847b5aa9700c05f7abf8f084cdf97c2bbc11414aab6ae26a276145cab441240808d1c3069847ba4a288a01822c9aae799dc44328a749042ac06a39130c513235f2567a34b52858199fe59758328010ccb7d8de311220335b4a555342633e5ea60b0b599e483787d2417790282011a0b34d13151a02581d939423c364a0a348f81412d07738299cc7bd12d41d1642d3b861c661338a3568a956ec7a4b5d855733626b5164c8c2ef2a56897a656180d96474d83a849634866a5cb0e6e00b8cb964067060df339cb2ea05fbc6021057978ff3baf47ccca15d90147473e8bab23693b6b70872b27b4a4c0730c5374a260e7cbbe9a094ab50e6fab80c32875c2032a5eaa8f2347c313409ca19302a0437cdea621da1ca0082157ea362ef7907fdc5826f067ac4a4a1e4b997d240c7d3df9ae6db528159402d1943fad6743e6e18b345ca2c0494d9bc956888ac85c021153b65388f04c456608e41361a6d3525a1143f610c21b2a9a7f5a2e1a461552904e341ab427028e567741d9906982e4b563d980b68871eef012f2c3639a244cd300cd0030bcf4a2b1db5101c1d66ee28bc3bc276b7e9922d0253904f30bb676777a36a897d35d381292915a82f9b2b7705380277916e16a137030198032b865c823e80a58c12ab39639488d65b0c80a391102cbcb4811911c60f618323c13a0e967bac6561483026c32348502927f70cb2f780bb571f861cdd5394296436e37737a8ac6cbdc42a0f9b96941907be3abb5e7740e193d590c862130283f0711665a85fff5158c968578781a7b766cead81633b6a2560b0a740752d83253a04c7f17b90b63860c19f38b78866edbb79482d8af6cb858c8a38fcf1c423f10cbbd9131ed87116b611a75bc109ee57eeacb6b2e1201e488c785b87f384c86587844a921701205979c1ba17dbc1519dc0908c656d7734a5a354e05606acf7901f0c7590e3a324c30a905b2462da7cfe478a4697601618bc74070a9e30707219c53b48c14c01a8fc745098a27b799868166c26f51a12a9a24c9faa336f92692c141961ba4444dcba2a370a63f533f87ca2b1b9537987b7b71043d5fd090300a7d4673a38cb781f833897e94955bba19d428cb7f71710e98901b3597467795a84487bcc5a1180482fea1205a0a854481719c12b11054ad3c85175a04c27011c29c387d0e571084f625a6f73cb5986945cccaaaac7d9eaa305c31535877cadf213d5bd25801438717dbb5051532f5f135f2f79fbd093864439507446b36f349ce4748fe614463917864eb90f3f36742f026ecf32e82f1cb90017099ec78380b5aca2c7e82657557eb66c2fb633aca3d99962ef8927a3f3c9d8da538b89525310664dc2889410465e90b4d078c7dc8f030729555756c807fe228623a37a2b248ba55516caca65256bbffaa6cf6457dba32336a71221659358f955416074ad0131dc4d186bcca317d193a91d12900c477a00490cc464a119214df01882576b41ad7b6f29b34dbb3b03a5c77b2d4162d985530c908b186b7e168c2ad69830302283cca078f5816a9c79add9bbbca9b3fee02447dca3ccb82bac0ccc385538208e49742da9616a28bb3c20568838de02140eee3a7e5a94a82563a90720c62ba2f32f05ddea552f565b4e2597b17c3b8c24168d4484deff79a25b82ee1253049e619829508b01a7891a10db5c5a532f4880c169a38c7a0c99715a2a696bf66b678a0349ef02c7002a5e5ec3db2c3647b960fe9a343b540069a6c228e024719e269853535f5e841f78922dd85c3052188a2db0b2a453b5119311747386352a437d0a0e2fa474aec0bdf1090ec169cf473b9cd153c2131b2e7e001d3525957a487a38c726d710a6bf6a1f0027432c53a56a96c3a1a100ea69103fbcca441a3f43002dd47714d397f7a3a02d0137a0dc060ea0669530161c67334b8965faba455b81a6dcb37c8d2ba97c9496c3e3bc984c44a7b2611b51794ee2347cc489c07b4a89e8c5c620221b9c98c08eb5b245819a92cadeb684b82757e00039079e550a7c7a14bc856e0d347d28861921277bf18932183cb9c40cb07d67202a7838b500df71b1ebaa87202a0943d982aedf41260b38c67e25173dbc67be8b33d10724b08611857c13870bff8c0324acb67f498b599db59515ca863bb1016e87d07b747efe8c903f50b3f7468053587555163e7f5165740204b78ccf2bb11dc32ad1cea844073b7d4667fb55b93bdb4a708db296f3bbbc511119db4479737578859075c320e55b0a5185552cb9426a69b0bd11b4dff716d5cc208e3fb46c3c4456cd63ef1d598bd675d55b1adc177790da6509dea49aa958d2ce9a9e6ecb19fe96548a88f7b489433147dde00139007b6bdca9b3c6c0eff0a1832c10a257599fa50200b167829bb34ee72551bbf3a650c7a34ae6ed516d401d89486d438a0515a537077561ec79e1a3963ab873d11d816550a4c1b14b584703531dd7cf0d97269125dbef3d73e443d017f57e32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c +ciphertext: e93751ffa496e521eb17c23e50a0f6760223fd2846317d2e479e6f78088daf421843d2da3581c95bf51904b3a1716bb0c0f47095622b02ed4d8a7ae681d50b91606b597fac2c506380b94600919c4d3bafbfcda50717f13cd2d149f6992e48390333fa9016604aee7a8680b6e20003f62d265c5db1248774abf9a37b47cb63057486cbe378767f4f43a1280b8abf9678a86ad0195f915d880b0ddb336924c3fcc135a7a34517713d5c43a1ad0775530dc1429b55dba7b95dc1ca7809b5e84e905dc12b47bd82289af59ef73ccaa232b34e68a2e1cf445f657fa9ba97dd8164e39937f19e5d3c185098683aa7a5ffa27077a2f2f898c91d0dd71f8a11c6fbec90bbb3777da4e6184b24d8aa84280d02ebc034e884d53cd00f1d7cdf5d1da8e0139d0bb23e02d82aa50c65067366478176bb3997e0ac5ee7d499aefdffbb93d5a809e68c2d36dafe9ddb1fde88b9aa682fd32bfd10994e4636005aa3444f5d69434ce963faa32092f0fb99e980b1b3e9c20d322c8dc3be47365823084740da3358ec916d9f73e4e7d14ed93b8af46636564e34302906c2056eec89a6d5b80f464fe052348715f341e4463d6be386f6a00c9f2195e8528f7874e802ef1a67eeda9f2d88ccb798afee08312f50831c7464d8eb9477d215ff6197dd0c527388ad39f285fbee3b7e7b3577e5ad8c9a3296a3336e20d0e488a136a12d216f956f431098d4851bf0d5a39a6c9816b793e02f3a0caa80b12d75a6d3b30dfa8ef2c5df0b7ceae707589b11ba925c389b91335b7108c54baf166b458493037091b9b03d4464e30938f40963c535ecbc15911506a392f8c810faffb3935d9d8ba7cfa7f9bdee26dc7c8adf4cf456455aa4a9fbc9923752d9da4373b3e4964ae8fc35d47db83884017105d83b403e265e707e08904ce12ef68be7fa4ebb2e394cea40f59d149e4c4c36517b4ca97715811d263f75f3f0fead99bb8237c1ddd87f0c97abec768b6778ad9d7766b59110031675a710e2ca58adbed88f60ab224f438d66803c824a597f4788f04d363b01993fd1d781fade7473d9642436a6903a4f90fe2c657210543ad430f380192f3fec2cde08ffcc8ddf6f06b2ec6ded6df90cecad837d216b8a2430fa202096a874a8ad599ac981851b3d2473e34cfeebaf6c80c83dce157e1d48dc55fa93486df68761a68cd4ac25598e7aa592176cb2c129afb0bd1605785f677ffec08ea09687aca6862ca2553ff6ab3b06efd9d95d9e85b9762f7d6c69765f12f88f5c53fd27eb2f01e4befa14cb806ae36f3e03279e63f9654fc6117939c821e95cd395233278f13a9383ce09098d908ea7cbf40601f69643a6570eca6fec04a20eb27c621edd89fe1cdb8e5a92ecd5a79f9195832126e3bf6a50d5fa01d9b6b421497d847507cf1f09f292becdf91857b8e5b3be40400095dc02624bdb895dc54c59294806919a370433cef927d816cb8f4bf1fd8d86e1b997176bdccf4faa3cc2015612d08003a1a20fd0af157192fa4e5242da1375ca707fac2eab67c9f9c8d7dd0cdd555e3ec7dd475655f6d5a02c5956c3168ad4c0c7b2b661ac2f02898594fe539e09c2d484bd179f4d58a3c2dbf64deadce93d6c5941a14b68caec2d6599bd323ae520c9e388dae37c28ddaa92ec49c725ada348b867014b72f9e18a3020dac6438bd35b0a5850fb9f60f2fdac1a7d4c7a1755c898969666778fb16f13621fa171efd844d89eb7c687d429e3e35eb353acc6aa2d85948527f4f704c4bc7f96ee8ee8c6110859cd798c12610ac35035ff371ef30e20622339805b8a09c8a10b45f32e1f67372bcf47c3b5c1c3f4786a01fa6dfd40a75859e60ad6e74b1bfa906c5f72c0631661943aa2d7ef701ba54546b5bdf6a057e4b4354442a8188fa6b2b4d316a59c3f7512266e145976ba4a0be6b65b6a70da0c31a14810f27ed51dd30ebd9032583e65c3f6e7efe5f6ef9b311e2984c94e88007d4e810c387135175bd7389ea96ca37b041bb0e1d6143b3f4df77e43ffa3a5e2b07c3534b774c2eee8ee2ea2b2f672a7fc40c73f8fff21b7feaeedd7ec5e34047cd6665a58eae2e42f9ee1b52429328c961449b1b712c2d8f3a637878acb02801ebbd15158c1c86ea656db183e583b297fbfb6a2f64ba68eddcb2dc61eab4cc180b0efdcee90dfab0feb0f49f833cb029f8a901cabf2ea1f7de4b8aafb630fd56001cd +result: pass +shared_secret: d788c3a7c4d8a957b409028cfc62e5266559cbec39534d7f337aad2123bba577 + +# Official test vector 96, seed: "b3ac6503206accc2a92cbc210d020a2654726911d11ce676aa04feaa08af1d20c654e4105883ae470ec3ab299075d420" +private_key: 5cca6a37c37871e04cfa962d1716088fa90f49d176bd5077881b53d6f20da1027284e94a28058a0e249da3c36c5ad6af6056c4f8774af6343b19a0cf5f3a4c594489a64305d3196e71e390528141a735544b9ba54cf64523c39797153ae1620087264a5bc804cb864c92781ac4756c4a216d6d041ee6369436dcabd1b3a33fbb2fac37a994e2251aa9112c28ade1761151947314134ef0567962819ad9e47f56e7724ffb8967db192dbc50e0358d4ed578db4b88f76578196799340a21686c747b4763b9302eb4d5648cc83f75587627661a269801ff10662ae713a03b7ef1dc1918493885e811163902c7a8c5cc51c639c5750c13abc126431dd85d9706c945fb5d736224c5456d6da493651b148de081607116437a9c45e6614f76a5c6502b65a1ba5a31318893bba3b68e3cdc3680560d22c2b33745a4acb3a8af56452b7201cb42a0301c9a41848315212f60bb7d6cf7c8647cc7acf68b81959a8a6a91dfaaa41f3a679dd136d40046d7846f170bcba2648e08185a6ab380236158442299897814913196bd649a8b735d114135aa466804fabca21084c28844bf00cd18d6c8dd0b48a0f61139458f08f912dd28c4b4b6b012f6cef761740d97cc81341c80190a0659380ca04934e3b4426c7a22255815646afed165f68186da0206aec0b841828cd3130c59f3295ab80613e07a85b599bfa444364a569486075ab07815c74b4729a9281c6afef55fe7737f621128e18a355bb89c392817c348aecec895da19125af968bd1b4968240a025b051c49650594110e96547c10a127148ac162baf3625093c26577174586ecc30e4234b9b626c58328613b21bd4a8fbaca56ae9c9b943a7d2d79230e01caa6c6135900b33ee8925ceba22ee6b65fa09056e539e71b20c4815b448c70ba772302b9cd6e7546e756a85b41c409062348c334c6ec74c130a13a146757b8b566d33d7b0918ecec6acac9c579e5cc7e3a33c5da79d86a36b0e9b6ce1b22cdd696e1e793f6109da565137e2b666631225143a9c8b95d8d3a21c467c1dd2c0ce774a45006abea578844e09f8b982f0ebb53435c0941bc7cd7d27e8336cddd8332d62c32068623bf18944643634d814af239a12e3aa0daa027a8241297fba5bda40eb7630d1c2a4acfb7529963aa1f80ceb901b7159020b910c252bac2110a6da65732ae359ae3d0032494885c6a44874735d843cf2ac6a5e5f5a625069c0a49a66c8270b8e5a00d91293f0664f64594d7493f5399a3ec6a2c4f4a31bd604b04449c1b215dfb227f43778d9fe33f52e9c687452926e46a508c8a2d7a448af4539c05b4bf512b962017781c0e157686b748cb77b36a95c459ce5011da0c88f58a518932b5f7eaac67a27d89a60884d8a9f2729509db5cb76cc6f6236ddd0911d9c41f526086f3a24e0e160192577b8ac91ebc0860f7ac884161c6b62b872f129cb8fb11d56ccfe8b9adbec54ffd23b02e471284dbcf508c6a1912213ff754f1dc195f97b0bd798d8ae8b44114c4dfca0f76e479d39c4a19ac67445520ebfac92cc300fc62a94541b345f10b0f79c519c576c2037998564eb1506e6b91c8f606cac8f9b0d6927ab0e885b4704ac54cb14c67949f506000ec9e0685a9684b648a802cd8b5c8cd82860566b2d6e60e213429882ab51efbccbbf33f4f7a0cf57b6ccb8a27d95936a87814e6d80c4562c7a753c0a7e03b3685891e77338034713b7c8da4d097281753e54828ce951c60279a729376e991aac5101c6de3ae87c4ad3f4c75ddd517978bcaa4e85deb15c10fe701710067d25c2da778b4018c500c7368e58c550ab5825ffac4d58b87e745bf10d8118a787a5c5694bc099b38d89ac7f890d25497a8e521c8505e659506e0c65678279bc3daa95a82c806f04219944c5ef308315c69bc753d50490002c22e8eb89a65c93ac116692370595492cb626a8b5b64c291f77f256583bfe2a2372cbe80ac5704a2bbf3f0bd0a4515cd131814c6aafd39934adbab22ec3889572b423b643bd56cdd3ba2b8b20e98bc8afcc33d78c9bb8e466047961b03d31f94b783ee80a7506504ed3a723094c460d07adbc7b4ce258f9072c687e6346c850edefa4d3600cd616c6e8138ce6c3854a9452393a9266c2141b1d62d4111adf9833e2f2ba9be4289db4317cac169cbf017d8e336efbb596130b73268680be4885255aa6353a39f04740be2c3910a9ba91700687088aeca7fd4a37feca45bf29a27824babb327c49f18539ed20c1755983e6b1e03f98f8610227362c9e12246d2176ddaf48dac31955e59a7d69a8dfa582f8c66b14db7259e6c4c63bb88c995a71fc44bf964b1650746ff672fc2716528741dd8174aa2326e21f025367a0f243ac63728bc6ab95dc22a9632e18cff13cc6e38a1f4a0a542259d41db0c1dc640e8735dfbaca58c3c7f18e39c74641d477099ff1ac96c924e366b16ae423de8bc9610c855eb686e8d9301f2c08e96e3a2776523ffb93cfa3726c1d03d0c2c634f1cbae6dbb4cb987be8eb464190056cdc29a7651c79773b1686269c1646a65786f667986e7a552278713fe5c5a4f9c23633c467b8b63b408c4229cea5f5a0664852729a7474695137c0961783656df45277092226e232d5eb929c8bb57781cded3b7d5266bf5c2ccfa992bb9d8b59746319e6b5803d00a84e2a99989c08bc9726783389fd506074606a0945c7e3e22500d58fe3a647213b19beb6174c72833dec8ecd036499e53b0a18a1d6e471712a1d64a903b1f3634ceaace56a906a1336c9d9708768a6bcb9cfc036ac22607810457e8560561a38c5cd84c6ca021a98c15aadc47e874778a81423d669ab411a72aa4a661deb2b8f4a06600baac967617bfc5dc8d12d44d9a7f80b46d9a40b91a66e3cfa0bfb5523c04922db21c4120717b436c6dc81030d13b867e707b9a3891791c756800adb41cc9a29260d98202472b733611037a98b454b6b5af423df236dc079941b160ff1c0b8ed1b14e787898da354cf79ca4fe506d5742b58141dcf624964397274737e4ed1aacb76a92bba8966ab24741163893587c94cbd4581bd0a110937946051c572f2232a149667794812039ba9e6525a298531e7479a161123da95b83ee746dcfa1d880130af080fd71480a4d51a48c48abcb62d4c7b44b712bc0ecc4eb53a929a1167f3c49be7b019002679123348af5b7ab18a36f86a23b309154c5307b003966c8755047718b32649945c7865f123ee60198af51dd591934ee02ef7ec218569129d03b76e9729dacc17e4407eeaa4820e238deb307d819528b932bbdd74ac25c0476c037cd8200ee9231533676f3e1b11a6fa2511a3160f10b26f2cba2966572450516be1a39ed8bf651b961e58be810bbe83957037f1671c128f91f302dfe1103d624b97b4c331db624fb354178047ad4b909ba93211908e35014d896144356c250df2248c5487ea11b329214b4c3b2342e64244d684ba914e020228e0d9b5b0283b5c96a22b510f31974843b21df48878652721bfea1b38054ba1b39ebd0a03746ab5d07ba3d80b5be050af1282bf1ef87629ea0e2f9a272bac24b7d3b464c182a8032dc2acc0b7ba3482c5cd7c0b5199522634f61d553534020671baca3534193b2a9585f47394aca1c8aff24c05a7a8b0f59745e56e12321fa1a7b38db38de3485f017626eea474e3e3c1a6bb5242f26de2529e517928e547423b79cec6452f14c17ac403c0a6e23d25d334ad07aabd8c60310082bb4a194d656b2e2b64ff3475fcc9226a526867ca7dd03c75351ab921eb35e445b144f4a7e743acca85372a03c4cad754f1d788a1c919efc198aef95baf7768dbc94f36d5a37db440ee403b9b8a339bcc50c0469f51681fcbb294a042147f895d9121701071a6ae8b85b3ca4a7f197f06cc5ed4e40c5bd1ba18f76a8010857bb0c3f8c15ef8f89fcf22afd560445c8576b8a46297f1cbf5896232040727eb40b78c97099a09eae192803bcdb153b7c9918b8c66a3e8ccb0a928b2505b3034886b452bc9f7719246d62ad183a292a75f4d6715a42153b8f8656b2c397428803725bd66239587506e9ad5694ee0592918a14346cdb0a9117b7969345bb11be07b82dc4361b580fabc4a91d919fc97251ad1a69938b507e066cfa6a251d98927f2bf2a9806163c07d1a96627265776105126e5ca5872c61e4bba95220ed45124e76b334df40fe0cc4f193baf6ce69581313616c0a9de56824f007d65692d0f675aafe086b6e2621bfba18ce1adc4337553c81b92ca4a9a2c9712416a168a7a9fd06450589641e952a96b122b4c4bb63721d6e76201f96e7403a908819bb61864f9225185678741da30f96e7973a83811b94c50bae593d1da6d3b306bf50669e590eee255b703fe0b2aebdd29f6ceb606f15213da5f478ed4605a212f52358e2046d5b05aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec +ciphertext: 3e9c6cfffce759668c9ba24ab80658675c29e84e998e85c476cd6854af0964756021a73b731c075391093a652e118d97f33128fe1fc8af0184a7db5a9c9ce619133154b530b34a32e1bae01226994aabfd137ec3ce15f3f83b80c78dced99d36b689e94c39e740b30c3b60f9df1980d0ceba60a721c171030034c8b686b8ffb86e14cab112da3b734d6e7f402540377546d9f46c90b52693986293ba3e96e570ec9bccac78fd3399c1a7ec2bf01492da9a54df0d106b311014af8ebff9607ad85341f31f8f389f0f780a24a84bedd3e62e5ad282c5520a7a58508f32241817ed1d673c344fa35e2949b50e5812cf2029921d4e673703d056b5a99650feee6d77ce424003fed4b0583a0b9e7331613d566399c244b2d497885cc4cf7f067cfeadcdb1702ba29d1407ac4986a0e29db84866f003f1d3f56c01a42837167ceccda9b6afc39b8ea1859d587a092202003fb06da60bc4928ba839544954c1c9bcae5b93dc808d7f312ce500ca22c7272dfc7a75182c020b5004dbe76283bf5561bb5c0bec93de1675f2e299d977433cf601b46fb52c4f7629b2a85a687a465c16bbea40c06b36bafbe2bc16bb7bddd9be6b4b710fdd63bad9bd37637f46b3d4503655cd517327ec5e32af5faa3cdbc0a83ee5fde307547b80a5da0a047945542b768add53f4d159004dc826b7469d944e802461d2a9f04857ea16b29121fdbb84ea84b1cbbb5c3accbdf7b756be7e01d25530a315848d7c5fce23e96054a5c253d4ed5a3c218825b707f97e9ce17a6e5d6c7771085eec55068f2c19591aa2324d0ba0b2cefb03fbd8d26c7e9a37cb9aa7ad69b782405606f32b80c47e54a563a960d2e75352d7b4eb4946b5e744621d62e80602902380aca323b31e52c013af38e3ecd9bd47fc632c2dbedf7948aab5a10bf492362a94eb8bcd4997899e7e6a888befb98d618327dcab4c69b25a7cba0c8cd1b9b675bbf0c051bf1b8bc1e88785b10fcc67b6bf0f690df552c2720c78767b79b02355a19c56751a007c36480e3cb90b9d91277feeb13b437b35b4ab6325113317d0129d85a386533dc8d53dd3bcd38d93cc6815abb1f30c1a3d38544e8ce0d08db592c5688598ee73eb89402b2966d736e728b75e6ff5702454b31f5c4b68c60cfb64bcec551b92d922b9a418c12b021e847021dcde19401ea9e277b136f9ebc4e066935c45280f546c806ee6a2e5d38a43f64bd467ff41aea502ca82a5cca6d26a9c688e23c0543632513279be831a342b9c00b2518657059e0992beb4267aa2a441bf252b01a92e65269288cadf6bec7f17927f01cb88d8b785baeb4678c16e20aab4de33a458356ed74471507c15dd95c97377a08485f8ad20eaa450c65e6620c40cb569f429dbbccf46d5ada1ea1ff01dd0a4cf1aa1c9b94490c0a216e1e6df250620fbf705b706856bb03a645709d82cf3fcf6f840f98b3fb4b8161c06b8a1ee5ff8360423bfa725641fa779d3f24f40c8b348f68563dbae52e3ccada99cce8ad681213c046582875ac027e6ddc210636fdd68d3f6b250ad9f9c789b76329c01859917f8b0f10b5ce451c821f9ac8c060fac028077aca46fdab43ca273d98a004acb81976ff47a50afd625d5122c7cfca554048183ddf5e34342796b17b9848071359e5722a5e4bec026733a57b1fe3ca8f5af95f3b7674d38110bee4d2c0ae39418c2b6484ac676cffce8781904cf3202d9e1767599fe870d1856bd52ba4bb1d34bf623cddcc67b9f967289b02b09ac41b55cf3a66b1e5c4a972bbea1494a4377cb0aa1b51596c5fd0f874bf8b2acbb5a0c0dd6c7c41b8ca66def9b190db9afb1fc24eb91208ecd17b8cc6e4f563c7f7d81c6188384f09ad34f8c3a6e1f1a592390780df959e0b7ab7cb255bc8ee1df237b361c88001fd1606bccc88942cf7810201bc62a9963f8bb8d2ce4592e0159950451a4d5aacfc1aca2cce03c54bb1fab96cf1f79ce3195181daaef8c527d504f5ed6bb29efdecea74202c3a7b9bb8582abe579720226df3c953a8d4d19e680aebe1536efab43379f36c215527dca12c395f71a0efcd74c6f2be3979b45234e3e16abae1a1f559470ebd9217050e6d635dfdfc410962e611917832575e1700ae85e6c79db04ffde6e7bfdbec672e5620f70d4ad86bd0b12c65de71b4dea5dc97d00e0c51d3c7707360106da1f7949fb7d706a97594224c473b77c699a +result: pass +shared_secret: f4da03d95d99bdcde651fe09b288b46588b50ebf50ac1e35d86077e04f76944a + +# Official test vector 97, seed: "59eff60b1ef6185db34ee1e3b1dd2f159106ceceaa79beb74923b4f5623d5bc52dbf5d2594a1f7c6c64d12cf144e9ed4" +private_key: ae7abea38c394ec61b08f8b73a42afe39c0510a45e50a3c3565941c54332e613c5687c6b7f1ac590c7a2472597e331a23f3122e0a12a8688a9da651aec131981aa6c623aabff1b682db2525543afdb53b461853aabcb955435178d9939c2e262554978b998aacc07728f29a6ee7c54f34738db084c81b6cee4914b0706ae0ce056eed5c97851a0c861a91f42938678ba9383b4a8dc051472cd38d2c85de9747d90ce0e46bb059688cd2cc90721187f56bbb695c43c61651bac8763572d78a4014ea4106a9916ff378cab1518801455683175aa75af0619a6eef774f25568dd35cbe312b80db29ab007ba069182a0369d8025ca8fca341dfb99ccb044b1ecaa19979957e2001af126df1159f13648bec2a71ac53a8cdc957b731c09d84249ec7a53b3507327b1fe36bb79a7668dacc9f898698bf296bb078d612603336109dc29664635b9fce33005c704eb3512df2c4ab3e63387126146a56c00a04954516e386b554eccc45a848c8ab79513e9a7e1e0692315714b292090b281678b70af0847d3211b97f89cad50aeeff5660ba620302724eb2403d4c0a8dd015e7362077e0944da2b5afaf2ba08687c25e491192659e48363143600ca16441a678c7fb40a76c08760c102247606f5d128dc0a13a8a86f758725d4205f1a2393a7479af603a2f173c841b27b51f90833363b87d8134a904dcbca542f76caeedbb57f73522f227f72056390939c10d28b52a824ed621d861c8080660472f01a3d692b1802a7bceb5cabc12dbdd649713227bf9a53f801420c0421cb48c3214755917ab076709231a27dca46a2a603649ba1aed077960e5ba1d44bb3f2ac2c0536b8dee5be0b7c682851553d902939a775d564b38ada0fabd429e105aba00433527b3ea6f847ee7c1667590f96fb7c4f2083c2d540582bc79dfc3e881905b8c16b5bc0c5c5c46880822cea340c95006d80b475d0485c1539880d5298fe1018f9302723d5b3e64515851364e8269a6bc824c562a29c801806289d82389945a4974d16865889bc05d42f57ca85a6499ff0e5534b9cb8041cc0d5f30ea82a04746b51d8242319d980d274102b997b70688f63014f2b473f14b344d9dcbb08c400355a53b923b7a5539b2c41ca08a31556c32c67303448b088a9ac95005c74385baea6a227cd535be3b58e97aca21ce97f89e6c634d175274b737c74a8feecb38bb587777b27ca372ee6c44592ac2f54618e77eaa6f11342de70ad66da080ff75d557b5e052bc4e6e9614f0b23c2b9a13e540637444585a81a5e90b2c1178881ca41a5863c45f42564200e7f9b82222430e7b185fea1a5337a2beb4bcd059cad0b2141fde13060ac4c2bb4b87ccbaddbacb43ea9bcd15a32e02ab9446c7086f64653f45fca9190b0037fb5eca9acb9c28b757f177a9ef74bb4ab8cc526d2b4074b99ef4b6b3fc85cbb343834f929496a043a037e7e3c1eb71323f5cb62a57b3b7cf64d639c2cad92623aca195a43b684058f342713eb661d78a59ba2b57fdd7a64d2643add5738dfa57e575a11bcb956d628c85d06051109740a706fb649203ea70aeeb4cc07e1cbddc2645e2613b6e90d5a12b0b9a81cb94152b106cb4d25830af5b76dd61d98bbb9a6d5cabfd13fdfb139a90286379c5aa772af1c10812da52b582437b6543665f522aa7ab8ecf57e584429cb74abff84b9281b8fe0fa540f542599529505e0bdd117a3550bb1fdc225a250a8781ba42d45a481e74de5598f4153650a4c85a005901a149c47fca69f1b8ed039884c74b39582cbea46b31061627368bbcd0c4de55a5930670274b6bb33a737c9b376144b81c16b9b23292f2d15cc8a3aada3cb7475c3425f8334fbd474a71a83ed957954fac29db49983c8a82bf41fdb0188152c5d20c6a9ad9bbb8f88693636ae00c4a61eb2be93f95a96441a9d7bce5b291a56d92640c4a22b1251ebe36379954fa49605216756b7d07943a176706a20f01362b96501ded810ccc709f54aa8744911811c2ce4e6490d6bb5bffac3f067278755bc8d472689720ad0f98801b6255bb399ec38272bc50aed950291d47ed97cc0c9c1542944afb7c313565c414e18934532aea2430c2c4aa95f31ae44b42e713387ba046aee62a3dd4416d0f4071ae6541efc7f8170995e376c41b57b7192c712a9be8945cc28753a4f3771a68a9000944d726479e1a79d88675fa13795fc086d79f82ea5dc7e2da5ac939a42728963bfc3659d50345694373b877b0504a864247addc746e98126cdc71d0e3b0c7f457c046ac8b8c1458ee70c82905ff5183d890845b21c66953c6402cba2e329886ad51a92f7c673995fe255bf9462b2edcc899125b1820125590024b6928fa0c79476ccc407312664b83c9c59a806989c3252683b139799561708732f57804a96c0b58c88cb4a83a1271a05a9a58a4c187b45cc893b9621e8c5543a02221efa2617b0a42bca1880959e70496cd1452d36191dea226b49f76418b1a44079c2d6392c37a319ca007b65f57743598f2c40a68dcbb603f11cd32c368a0688343a25f6a348c0b260b1946abbf15b3c9ba0ad1cb302b918e4285870c9444118598ad60dd6030c45f33239abc79a04a05a2cb8e62128a3a9ccb61248f1021c7ba5751dc60d50919862332bdd0bc371e4037063879fb5bb22290328c9194aa83716316b7747a5130a984a249e2e124ea0eb67396a3197fb80bd672c6e6cab6de2cca2e3ad70d5866fc878dab1cd654729ecf9ceb733a1b81890cf51c2ac112a52b6a4122c27b86cca81089afa1361c4015abe68c62d9a11bb10358459882f58461761a7ecd3b9b3b17e32a682a389c4328bbc4aab01f44ca93f150e72678160243130555ac9e964c784c33943b5ecd07aa8097be421b796305f05e196ae166559ca5c59a445bc98092be1182f8000d5c39b7c074e016433235aca94d7162b853e45367d42e1604b10702cea82d9004259d130ad5117ca24c6ed411d5929c3f7a6bb35cbcb2ca6bf08c06d1a1cb63aa54d4164a838173b82b45523e00559994e8ff5a9cab63c6fc3266998ca8bd5820e7b16f8f86ce149c355e49451c89624b4b1f2fa7f09c5a15bbbaeb6a641d561830ba25ea470c9d7c397499c9747994bb8818bef9c1ef7802fd6963dbafb6e6dc5a3ce1509510578b96983d08c53c9384e45e6a5bea7c943d11c5c46cef5d0566c4c1f99d00079b0641636bc31913034a134e7a4b0cb959ea4662be55157fe89a7eae1a976f30517ba7e019820984115e5ec2e7d00267240695f600b2eb4181adcad96c7605d5c750154a41124c6f23696845b9b5539ae30b1564bdb2b41c09feb96b31b0796fed8503028af11b02e68f342e3210845525a52268a1b0b4f7648600b455c5c824c49e2972371808bf572017331cc8bc0e11147bc10793e096144a4187b196abde288b134bc54c5b3b85312e7a9bb90135dca9bc7396615ac979de9800c26057ae3064090174437209ede210cb2c733302c4ae9c1ac1462024d54006835ac3f23611d1bcfc945a58401c6a6da42242983f4e712a5080bdd13633b1c98f32835f179a3d011aaa46b9b2fb810dee9495cb4451fe0ba20f71992a445e0c16486d06382c8cc4051647739762257a00d80956475b4521493df79a28319c2c1338c9cb3791980785c2a1ec4a11844b608a7c7c92b81015534a03904cd5a4777fd587ad8004b61ec40bc9aa7a4268ef445900522759cc5057baa2a5729bcfb3a0666126a90d56b7527c32800960d9586e93579eed18189f0a762518125a4317649a3c1883c6ed8b047b5444667b4d53ab5d5b952b10ca1b8aa4ca5e438ee3c2e79c2132bcc257d8585abb609ff870d25826a67075fc38c32cd1c6d78e56a4f18cb59c756979331f1786820ba297f4c26ce251c93686506b26805286cf5919ab660092e6c1825d746c8c9478b408aca024376233ab8c287d709d02f7b8c6d80b4430917fe546ba774482b9b77c20bccad85355f562152a1593cf2bbb02014df47b29d1ca5c1d300445cb4835b45bd59b92caa1cadfab9986869f5a7875967981f1267e615180bf7952a27ab3527a60b130d69e155ff88410b1a10a705b14df248cca801e3b7610baac9d92c75e4c759cf7c8f644b610a350a9a9b5b59eb798a1cbf42d02f211a27aaf05ab8e19baa600f3babca5d82c9388466c5aba81c32a7dabc9775e73a77432f9b96225db1698a2c7a6c9b6949c59d7796758d24c41872802a63bc9723b17f703903c84e425383051abb07e94a1f19a258a61c66b56f46cccf68fa4ad62c528cc1bba2d579913ab754268eadc4204b887bb764096783301fd30ef9d972acacc01977d137525d619df951b0f9a5008bd9cb4524c5ae7cec747696489a8fc0ef65c68e808974e356659cf3d88474ae8af1480f2c4bf5f053b0a8c211d43921f735e63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab +ciphertext: 6b45b47d66751eaf9909cd0edbd820b9990a7fe19e758d8391c34f5839c9d883ffa86690b4429fd944b2ea3242fc374b007779138a8148c80349b13d098bab8ba58e7c06fa8c7f06e681402dfc890421cc926b7b6e1798eb43ad3e65802b9b997a85985ce8abec4643de68dfe0aa48abaae4f1a91df524608cb6552019cb45a5c42bdacec25bbcde3fbf357258dc908d513d9868a5b8057b12a68086c13aa259c5b53079bb6790b52f7fb8f0e5b220f8960e337f1d60f72819551c9280910e340d3a60c653f384d9dfad692c84d86c3921f427b396a8de54c846274005115119ad5dde417ae74c49dbed1fe8b34eae4091f2d5b8316f7015b74ca8f18be3ad970a99860da876a68fba30375e095fb96fd31d770b290bac3289692831b813261d357e176d39c4e95aefc2d476c2bd03c85e47893e6d730c57f463ceddf1b519f73c56ad3fe2e8966dcf9df718d0589b4d6c78f74c06d0f6b0e3a5d411b00026e950822f90dd1bb91bcbbe81b18f694eb115ea5b529aaae5837a3203cc788b1f25f5712ee61503a2e433cbe61b5242f97c8b9b6ac3e9ff3d50f6240b486f7b127d4ef67fd7db5fbd37d6954ca43764bc9e93e6895455b3b97787b867d47c3fe58e9cbfd916bde745aa799f6c624e66b9ce6409343844cef89a72d50885019be04deb1b5fb94cd74e3fc04163ec07d3ae68e6109543693e6ebcda3fa2921128e53f13536398b0a233c82b31c66ca4ea913eb54402628a1174bcd3212eb460006b872fc5955a998e20d05fd8861e296ae371e84fb3641caf9a64159b9e40b140d9e676c5fdd40f1f6b8050cf2c96a530b2e7752a6587144ed01b585f8c6da4802a4ccb0444fa9849f49f5bd02acf084063639bbf440e14da90f0ec5ccb0bc3a343a6edcc5416907a78ba52ed607747d431b1ab2aa2a166c75af9773be3c10e30c0354596cdf55036de3705c541a0e776e5c06079fa77790da400608823ff5732da88a5e0f04daea35c2ee37b2e852defd3ac53cd0bd411206eb6172ab133d3864170a2185bfa97daf434b1a944501e278bf9696cfe7d5331ab222fcde6237c765336d38d1791bc6f94364699e1fb040ca99633d107998152a78b918e58925fa510174cca3eac4db336ea9eee5fcdc4bc637273e221d6a6a23acbcf63b90b2f12f776cf1aa7449365695d487a7d9d1c84238556bc5a1aacb169f0be9ad07d796c7e0065497c0dc4eb75b00afc7aad3c14b145bc1119feb43a54c00a79455d92bfeb5637f55507f6fabc9643872423a71c791568eb5cd4de77bd5dc3bbbf3fa866f1481d87866232a30f8d826dbbfe440505a2d72cb314d15a8831c21ed690e51ac7f78b2c8ac79e4c1b0b8df49c1b35799d1f9f67a7d0603dc7b7247de7db7c9b3f1fab9555a8b45369aba7111a3cceda4ccde002b225b2b9eb02a0291672fcba505e0e2c7dda86a41fccd3ea865460c734778683cf73cbb420e0bb0a6507195c45691367442a823d0c74c36ad52e45cfe3e458b098b5a535dff6b90d74247ae425f22c4148ab53085ac3165c63c689e7d09d0c5e242b41adab8d295c7a01bf343221b831cb7915d2127b076c96f161949096424790e2614b73e6d7b107d6628d012c8c6f7de8c4577a8b8c67c50099595c104a13012c33de38cf7db732dade0f1cc6da14e785b104ba024920222a00b183f1957ee8a11b121aa624fef83d80e112da47e80476bbd73a03e579b4fd821525ec0768d84cf9f1e75f09852eeb3b13df721b58d174fd06e8f0bbdcbf8dd194d2a5393f22fc7249448050f29b9b74c044bdb8aec832ca049146e3c4fa06c0b4e699f5ed8a3a0f630ce91f1091c827dc7d790db09d2e93768957be071e6c9dceb41a26916b6110586e85d75fb45691cecc84022e0d49da6cfe5d178e798ab353541bfa947a2ace7765163615947c1f4d6b06d8287194d08be3b5708697cbbab8e2a875f3f362c20ad3a92260a80d1a24e72a0392766b5cd759e246bb8150b397479d43e5a4b0b568786dc50ff13f5acd640e975a89be58dff8be1197e33d7d0a0e10922878c7377d09402e888ba06fc11e0e0cbf5034b5638a7b043c097d90898272ce306aaec09610cd2cb0ee870bbde1d92b6d9cb5c46dae7e5e2ccd08565f6556fb2a442fa74b898c18705d82f011a50e0dcf96d14d7dfaa7602d56dc53b54f907b6b1feef5845a5b27c2cce78ba138ff +result: pass +shared_secret: 4aac182a36508198689ad4b0c24abacfa421cddf073e6ccb3f5c22c37f1c9eb1 + +# Official test vector 98, seed: "dddca9dc31bea737d3f474e7560b37facb2f53c803e768ffaade7669ff94b1d4fbd17068cffd5dfdd24aadada4ef6b12" +private_key: 52309729384894d97de3098b745a1f88166013ec7422b31ed4ab74e69c3b7b094dfe982a7db3cdc5d4aaf9e468d0471eaa8c8aa3148cc3a49cb1eb4e4d420b497b73573a839814032f655f87245dc6acafb9602774500919361beeb7b9fd4688fa8238c8c1116f51970394c39354a39212b9508815dffa2e87416269c88def88a639cb1b3560bae168be823918afd8af8d42c3ad9b43ce33428b6b19d4038cd03169c06c773ad1295fe5c06ad97b17ec93cd639732faa7b88029ed160652930595719e5c734420028d60c6180263c9c7db51a2bc5d52b232d0279ef9e7761c1a4578b2b2c21778ca806deef18f9c8778f0b5204d661425c3023c451de2f806c67436fd2b7e2ef208023abb81f87666c117a78b696d65630b1334ef853934a39d9d959ac8990b674534257012796352b0a41308a1104f82a09df85aca25137d597a33c088f942c496998a367a08473a49acb2bd38d27b7ab21fe80959f3bcbcd0488c5bd4c42928155ce5a91da1b437539a33a34ca0cb1c4d179540816f0d063664b599fe195ddc777ea8836cf5c20f8ab34e3c8c6026e58e8b032c6b720324a882a5512d502880b3d2a3df38cf5da7c5fef955524b451d5c7ff24c926d0382535c0ecfea73b4e736a25957c74084448324fbe462fb0c656b074ee596abffaa67b692b770e734f56c53a97bc846030fa6ab726ee7097a49a64f098aa3c763942001c7999131220a47751ef3ac3cd729238c671f5ff51aac89101b772cea01144e469510502103e70a67b08dd968b21818934693037f653c845579e25c5be3196e180447210c97a9a724863588d5f38d20a8c5123a6b2aa549d50a8b03dab4536bc658c8b9d8c782b3e02321c90525e56d3ea8cdf91a7340c88c8d90426414469adac2268214433c23cc078a12c5bfd3ab079db8ab6222cf6f47c005fb84775ac60a606e1b460879d19ddf619293113b80598e87658a025824888541c2246f93870271c767f7d099e70227b97091d0d4c72a1248e47c80b99b2d8072cfc0552bb82320a6ac00f04232c75050afb90f4295c98ccc09414b402782a0ed168d31c2cf913288e57245c8ab998d99b16ba26313d05d50e15617fa0e3aa1a32ff2717ac486ad72bfa679a5a63a047983af1b6544c8405a4513af232b00907c935f3b452619b91ba35c6e6297d5f4abb981a6654b425e612b431359c5b861189a6ecdb978ae3b9804740c7db22013b39da62099d397659d847e7c6a9121991db5abc317b8287f2c9f07d4bfd9c3780e29441865458df968187763b9eaa8c3c99c22976d77760f31b5c369917249a78874f2c22671446d289f996ba38f5235152c366bda9d50f66235484df4f6b0b8f243776bb09a7958668b77f9e1a537428395457873d6be96868ee474c83d969d43e0bfd6976e9a75c79094574595aec7fa2dea390202dcb289f7823a35ca79632343c96e916a097e7314efc002799047c3a608b62829d2669fa6f0a95f594533d910ce6594e9a8186444bc6826541f3c834af812a38a2d8a87c8128837f68c93dc49b664813511fc64cafa56e324556b2803e56503db153ecec99d274c889227bfe8a6b4ceaa578ad37684984a6de966b0f9cb8740c7c5232293030aec6c4828c29152ac2fdfb29ee8c72172105365b465d1bcc2c2a07269895397842f2a839467e49a422657cff06e2320ca5687c52dea39470a8b2b84710ec05bb7bc10e7f3542d4a9e5e2a377cd15d8189a4522b107c866ebc4b7777e602fa4a46981339879534a92b679be67de762b2b0d07a3ae14434220d749c0d3a556295757c747a248a3b2e172a9f7ea35f646c2c2bc3615aa110fee2ce88d24ba7d12f0fd24d209a6fc44995ddf957ebc80014c4c904947a5c7a58a503be4d18a9450c10a4b90e93b780d17c7073623296c62a3feaa30b0414e1c8566d65b95a7c98890b366913336130cb5adcae5f40518325cf2328680d9c3e430bbb2bf32754235a4777280c934d33c2bc571a637b965583678b8280779ad6a2ad9a65d849419de930327b5b00ebba96dc14093088038982409a1b9b19c8085a3bc9a21783b51ab266a996a512c4ebb550c0c871f58332839ccb02a6b1509a89f43a54d302c865463bb12f5d87c1f0989322c48fe1927aea1029e748593995a858514bfab5cf19743430a247522566196826be35c3ba55053ed8c8ac04211931a38d5a100c7097059bc058d551672542a8f1a7ffe81e0c43b1636572f4608dfadc72f9a786c4c2b2d27c576d29461ad56369b7300d3b0a7890ca3d8407a8a1a90f796558843202152a7131919d9417065360440ab8516909087b2f4ea408baba0cd5c0af2a85634e88693b8c121dc8121d462650f2b417a0c44a5018bc2a70e68a590b757b4c0ac70bca25923049fda10856f62ca42701ab9a75d9991fe3d99856138112ba4f52da1166f410e3f15baf7c3062563dbf0626f76c4ce98ccb1f238a8870201654a6e551a5de9cc24fb36dff2334f2f7bcf51b8b6f8c2d07b4892a657e58637011624076040c02ec59924916f5e49956534b0b7a746b16663f33cef4440f2eb5be9fe4034db153d296a86d83bee3b08ae5341223193a7febabc53956049bc1e14819391c5be5e216377438b0fb56ad770335a97c8e574c015c66d99c59325a2edafc7a6b4ba77fb51050a2c400d754d71c0fac84781af78c03c094bd800fe25b7f7060bfb4252643d97ccc6002a1568d4af181e992b1ffa8cc17bb835f0b2e6b72026478729275b002636cb49c9edbf4373912961da0b913e6cfc1959b80e711cea276c10158dc43b6887042d8d58402cc54a671275fb49a7920c35651aa4d81aebdc772112420db0162b94648ccc519e369958ce40adc90413d9802e621b6e8ccac13d846151c19c6813259c5998f40710f3162d006c5d3a9b2d18861789aa7854831a0314eb74a03b84921ed73ae13db7298288ccec07eaef97716d14a8a296bc3d0b95e4a78e1fa2467c6ac961a73ce63085ca1a4b101adb7f2a4059a97a24bc2dfdb6115386de5e95486a46e6697a17a88510c97a0602205e008088d269082b2c1790c02912a9f03383a94d2127ce1a0d7f558434a6300513a14e2c4f6b33d8a159a06d09983688f75265a84637f07846f0c47441bc6a6a8e48142b39b4891bb5c321c8bd307dcb6326dbb960b532d88f08f8a299d914824e46189378c635cf2088ed8382fbb4164d01c867c1f1c4973116c3629b3cddcb40b1832a0f06b6d04ec8edc46205da3b28f50bd1730bbc04c5f927209a4369b878596a2e149767139e4a06493ea42034062ab1ab037728908c07f9bdc820495916c9114f7e95683c945c19354dc06c5b7888244ec179bf88ed4e68bd10483918bcea652446b7333e71a403e97446564361b5253d0b225d4155682123725f61ed5d4655bdb7891c6572758977f0b4e8de021e832ce6314c25e82392cbca5c794cd20241b87ec87a85a017774bc3da18e77e0b53a521b2eb0a7006b35edf5b0a85b44d3d78dfbb476861997714330c9c5ae5e0027d7298a64b62f2523670c618051629c9577abc2f456eb0ca33fc86e94d910d186144be3a886230cf3566cc09c2ccc76719bc349cfb70c35b24ea6b4bf1c0394527a529641a2b45b60da3a976d70012e48b5df60a7d8382ab149760cb5579f0673f78a52c01c8efd1a667d86635bf15035ac32805b56cc9a1cff506ca38b3df7a3b860985fed84b2b4f1c7f3a88122630f438c565660362a90887a9cb55090cc448c9088c6783aa890cb51ccc3c8cc7c097d59808f06675e1e826869abbc0644a612d471d5c106214abcc1115b106ab3405b1de14c664a773e6e5667d8177ed736a967710edda390f0b105f9c5ba3a2a61912a2414397030022035c533de16c634a799f2b72fc3112071e7aaebd1636a3603971020e2f90fb8113387ca17171b39104595e5500b50c99c37aba1fad50fed567d5eecc00db3ac14624675c76846b42327b9510ddb882b24be90c9661f5c46eb5b1991d25920c78f35807ec55ac2827776a54ac4ee272b469ac65aabc6ba199dbe33724e5866e24a8058d5908e30bf54325745907752d324490b766f6672c4c8443ff7647dec597276135a4789dbab39355175bf3a63ca6a359a879d648c0b388270680781d3e732efa5c85f1c020e4384875954b50403a4987ce54a6f24c83e541491b7d144012544b96b00b933c51704bcfc2b20ada6c481ab32d555898174526a266f70b7939054a88256a59c95a0ec2501cbd45f0ff2ad418b82ecb514f7ebc3fc33647f5c43c5026fb547a33bf2642c9279dc39ac6012a770267d6c947324c6d45b65393421bf4bd7068abb93ab3a36081a303cf37b90037749a046d478b6481b87d7f462e656db85d6046534ae44d82b1cb737a0194eaac814c7b85493fda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 +ciphertext: b194cfcd01263bba40476580d27f88b07b884d31221bf0e63c7951ff897d292c0fff18238fb1c563280953dd81591e55830ec1430dbae2c77a8b116679a80cf79d651e7ee9e820ca0551511f525df28319be43fbacc67e58e3617852e7fc9933d49826837b88f18474a71710e58a5d0ace606d58e596d63843762964e98c56861c20cac9deb2f4e8ebbf5d522e6d059721d628ec00e988043587b4472d630dc65a73ca4f218e0bb8045688409185183a6c7263c6cf90e00b1016c70a70ffaa02fa3ee39ed539387c67b92a48d5c829aba6906b82f322db0b632b1e557f9af22adb324fa555a44caccef691a57fca147707d973dc9f4fa73ade6bcaed8c7ccb789162a632fa1c9014b91950788d6d6c3019d2143c376ce025726c3cb7451f506784ced9baefca8dcbbb3a52151611d8a08ff87fdb67d9b5e59e78df8cf674cee8bbe5e4c513089f6a91441dadfbb12c869be7c805a650b62407dedcaa5e4bbe7f25cc654e75335016f53e5d73046358f82e457c2e28ac678ca8eb67c25b87e47bfe02bf16aee67d99f6670560ee4a4a6ecbb0c85695c3d89b6448e02b47aedb9901ba5406711f7583d3a9ea1ce672a06a243763855cf17f900136b90b478c4b4f3ee0028b5608fe2ae58083cd079dcc47e4fbceff2340bf87310278a4eec7ef794b576447b87d991d2164815d05b93b7d4b1f1aed5b536dd57a374312b801b3dbfa9822d9e381ccc160653c72b1c129ce6c61d94bc2e647cd86defe3210ca3c31501ad31aa38ae48c0743360edd1b88d6dd6981657283a4f745fe69949e1b402903efab49cb71072280e75b1ab271aa84f9ae18532e90eb21279a8c11a4e3539b0ac7e5cbe6c1eafba4969a65ace86c355c8d0d2e884eab80f3073e6c26c8454a6ec77961b02018739fad9ca01e4963532450e5f477685c82244af62d58bc3d932b2c34bd30772a0d0ea939f7a6f609034cbf27aa308cf90efd2b3baac238b01bdaab0b5f6970bb0ce8cb0154461d8ec9239c4db6cab7b109d48695120d9ef3e75977205c7746d1c2bbe5a4bc4799e62ced8b5e4d2c924aece66c7e3c93859619c4791b10adb6e6f19cf0437c86cea08e3fd1d8dd35200598f5740461ce79d75f72b6e1ebbbc2ef5534eb2a76f6410c9fc338ee0ed87427df9efcd06df7cd29f4cd4273f68c6bb6d22c9d511575f25ada1ddf2b497537fb2a5fc7b7370c741a355b5cc6c19267d2d14b75b3fc6797268bff49c5e791cd085abb53e309f1f68cf25a6c10c53c2b7522739f763c2efb08c9bad5ea5c4ad37dec829fce7e0c1838c1fdbad2cdf2e9ca493f78429e2b1cc23cda79ebc3a559c06c771264fa69b42985bb6b51408ad7ee0a5f5f97514ce8505b1e9f442d3a48038d7d258a98fc64a2ad5973dd69b88939bf3fe7760aacecbaccb546dd7fb0630194a4456e214d931b9d12174a9f386807ec46683e424dadec6f86e9becce6ff2627ddf9b65098a26844cfccc30b9a822201d90448d81189547e9d6383e392f661a61b9bce01d765cecbe8ff6f31b9daa9a83141c7b02f993244c45b8262eab127f94d6304a375406c31de7cd51209e64e3172caa871db3af0dc3f7c806665407790c18f533d7dd742f43961e55a646f6661936eee04d489e9adc7c241597683814d222c5addae355666deb5f118387b4a5c4d496c856b001243113e9ad3d099bdd50fd177d72c86c1ca9a039941dc845b6355a05489ba51b7c0d7169883bbdd89d2a3afd97d932f6417d14c7d48f1f3dae337d070ac8d297ac3dd4886c3149de9e1a3a082f1890e01ee224bf8cf49e0fa01d5cb9b81cc4b1763e02b8fcc27231601a6768a55490a6ca280d78999b5b482fff4b78c5cf2c20512bb02ba980b50d138bd6fcfb42e055b7f93b814b3cad013c38282c25a9beff303963c33d91a699be48b6754087f80d39c7cc5d1fe3e5b0a0878d94494bc933119c0f5562ebbc1fe7b6d68df2ad51ea2f055c045b048932cf6df144db0dd8b04f9787932a13e91ec19871239a2d650055e8ce262c2aa3caef9a7f487bd7c53d47f899b7dce9e99c12a3d4276e7988950d72e7a7eb099f954311b0a357ea77df6e8650dfb872fbd64dffd5426485b9b60058af70396298ebe82f0cf8f2cf7b4fe82b0be28888339b09a13b9dfefb41af339ffe33f37c539c67f9d15047acc6de9ee6b71eb41d2bd7e04fe8e1704714f0512 +result: pass +shared_secret: a51f089d627c8d7da9740aa9d768778124229c4ea9408941ee04a1940c1762fe + +# Official test vector 99, seed: "2a6f7386b815366f572aeb6c79e272cc21b7095fe09575f18072c9d677da23bc9c8a4bc393b7524604d299bedd260c8b" +private_key: ead08feb355828171b57c7a2c7328d0a736fc5b548308a22b8672c19c820192297e4762a8bea6c048a33c0248676f2bf0b8393b34667de1abaec665a886ac369320ce3188f66d6482cbb184ca6b189c70c531661e10784f4b5116ba5000d0b06714320d8b72ea88621093a0338e5b628f44194925219406517e36d14096b2cf5286f6981f8885efc1ca4074b2d5ffb118eba8f1e7aa83dc8ac1aa9bad3b5cd257465bedc943fdc9a88915aa573a2ff63bbc2e29abe33cd919bcd725bb24486b847f2cdcdf36fdeebc79c123151a02a7f4a42851c0c56e08cb5b6cd34309200e80e9344a229917dc5231e1608115f6120dcf177da2bbffcd8a389e0623c81baf62a3033f99ac0027540c93d2071380d5ac60d894b85d18b20f21aaa5151657b34d5b125557832fdb09dd1c5bedb2bcce9d3c71e742923ea341b1657ac7908ae474cb7340d2f917513958ef6fc9bc4997a9a91662300a610868840c7b868ac0755e0a3c16a9b8f2343c2308e5e256ec7c60811822545eb20c3b8077ae771bd4313208584551cc2463691ab1ab4d5c112fe951bc0b9c02e867377dbcf41114d1553912400d065308456c1314641adf2038a8625b6311c3b0f98aa1ae37caf188f4448a6b5a78b746a0bcfba1ea2016d34059a3dc34fefd9261d5308b4e03c5677895822bc96441741865ddf787545b80c509259265976f187833959229cfaa95765a41837b210661a1e06137014b08039c88be27b9d292ac3969bb9ac396fbcbcd3626f3ebc78fbd6462e673cffc06d490b7dee720e57130acb1a1edd9c4e64a2aaa2f92411d489c9ea00b68a7d30d347714059487b8f837c1bb5070260b2521642cef747c602398902e33c6022aff921a25e941955f81515a245f6d717d048a307020055e988d760b141e23a16f767260877b7551e9bc80828626829f94e20c4020a9a2688d1168ca5c3a9f752643a17237ba623b79f144a118f5cb41f466a27cca78a208815538290b8ac4b086cf626932869b43e4b5477834606d9bf8e21295d6284d0cc72e64875cf526b8c380731880dd00c20fc2a31496274b94aa87ad54de79aac54995c951a1371da09770b8446aa1e40b1cbcb57ba5f446fdf1260e9bca676dc3db9a24c5f99cc300b7b08c9abf620bb03e75d0a5b872bc79cde550f8b243940737cecc136918b61adfa167553a005e0c2fa3190a895c2ef4a53ff90a75a879cb0e9855f2826ad7a9608579606904411b25ab46c6181203756a93c7a9ba7c2d3b862889fbd153a394791d3c481fb64aabad314c7d637dc43bff1a6ba7c031698f245c29294a533700145a904b17f9f30853090a0f68574b2b4a095033257d205a4e59af580b362a5be3c0311abb22e665c9558f29ef456cb3aca8d3a149a01118f7ce93d87ba57a814cb7e7c84dbc614fc2614ebe6892d6037df49446d135a6cd05d224786d79ac87417626d831134b95d129a42bc4663ef09184c53c50dcc9d2dca8efc81254aa76a8e8370bb03ca7c30124d5c2247490c03488484cc110c9b1233e482899ca443f0a4b44a6fa073ac87e82688763ad72bcae0db87b1a5a629d27f8aa2b11793b47c82af1486c97e41b7aa308e1a23af4b68be5c849625224aaa0cafcfc3a21ba49e3ba168d16512a5968d5c0222696649d7674332f884f31259cf9b477d1445eac17c4b11afd2fbb6a68aaece5a47ac5031e5457d32cc2a601b6b91257b64ea7c30b6b32ef7b949893a3aa14ca0d1a153b50bba60398cc4090a9390f714541f34bb4c93a81f734809cc86b8fab6be5539c9f6a968ec207eb577b16116169565b86c21561936a467a435b88081e71925576350cc964f5b37fd73c421e7a076703fc308947cc5a3f2e21d328b8c23e32fc8f5c04faa6d72395fc7c8b2d8fa72c6f35c9d81271ac34c0ca2685b5c5571f7b9b9245133c58b3bf155e6668315d0899bac05dfb0b8661241f22772dd290bd963087cb94c9fa464788b8a87c637f327ccbd31a34328cb58b5c7f95aaf9f51aa5bbc284fb26b40cc438843a6ac41c82886a2236734dcd81584d8ce18184b90b22e62296ace4191efe679d4d52c12351e3d41bb2d815035d62380c45bf078025d4a12885ac092057b009d6c3105ac49641cdfe0c48bc41a6f14c0a5f31423ec378ea2098b48557665cd15516d767a980e05ba44d761fe17355c0aa302f3826dd25da4ca4d044c299dab608da967c1e253ba77108df51914a15541763f737a89fef62be1f7b4e1b8b77eb719a84377be0081f7d71a6e881e15578603867855d87ec04b5f1f133368e43ec6282fe5eb16935a04ec9916caa90031e40d98b0a8ced98979fa7742a20dcbe84c67223eb6925d7b1b12e07a47677b56e9916029204e91408635eba66a6a844de5ccff6aa63fe15190030b8771101b456288b170bb117584c996c8515262c684a4718f8b369011865c756827d3038d62355f4c994a539815f4d6b6dc9455f4d7ba24501029170cf1aa3b0944574f6642c446a3f121cd08c7bb67e7239da147e0e9c9b5c57b8f2182e00488341994f620c99978c818aba5e4516efe23690636cabf607c438cc288e944b3446b41a264b88c6e0371a08a1c02703c21a0bc5d73e6b95e7b5fb87c6cd43415aeb26f92abac0371b9a7a70ea51c88e12bbcdef7c3cd3a4bcbfa3bb83606b25c85984021122400272a616fc4071db20560654a7ca099a6d0754c43687d9657b1b816a04b8d4cb63d0e3765e228890e0907accb4734cc557fc96ef7fb6b463cc2fa5b73b7fc231f230028201483e66efdd4570365865c08028f96609377703a2300f7e1b9f4939475541e0cda2527b28aca7374d1827206426637965870e9b86cbc115d9a04c0e73e8b7a866c277da3c58e0d2094fa285e2d05af7ef64f8ea6146ec4321395b7f30a6e52171ba28984b1e49726b48ed259638f6bacbfc5c2a4baa3cc391f0be917f7ba3a05dc911642a63db03fce58bc6ff92af7616569d04415a26eff8c271f9921ddd302787959f5397b70d7a388f7569e010cf26b67fb2c3a2a52714f5666b9726cb775c28a79a41531213e4766c9442fa06498f6d5a1816b7338f9afb779a40f2670221bc5ef319786762fc78b1a25fc9db8e362f11c9f374b04204940877bc209b25ae7f461c40a0193f66a95ab7dcc80afed9402ab725dab23c1abeacad633c461a26790865c21a960d338a7e485cb2b42a8b0963b8689c9d4287643b8685a341333dcbbd7637fa2671c1048638a547815f07b255ac115c8bc32b61a369128c60076c3464fdbe2c7c0bc5ef1e383ddd2ae8b0457410c19ba1c486b702a9048049e85cd1e7569eac6b3be8287ec9c195c3bb0b4f28952823832c55257d05ebd8a8bff9c372095be66359c9ba7384080a7acd9567db7905c50c36734cec7519e8e57195247b48a65a1e34cb942d741d88b429d226a4097beed271dcbc8a035606e056a89a8487197039adde30f78bb17148a4f0bc84bf1dc0d9057c97b028296b9260e601ed1a675bca781c53bcbd6866b4ae108d059ada7c6b8615195336c2df2e71ce97528378b2fdc4b6501f2443fd4b6248429b67a4624769236e32c12e3116ef66ae2554f55c7be15319e803b8ce0089d3c04b65ec8340c483b2ae4c2b8ec7daa91b39270ab7ec04fee436e1c008f61c46fa854363287573c50c63c3b1f94d52feeba13aec5c926257592904b00ca8615469df5539e8f4c627b11be02e96d17189a80f37da5d08db81baeb7c34b5c58ab3ccb25af3c29cec9364175b6bb4a04b5958079e18d5440bf24538598c1c548327980297efe531d4c14a9360b8dcc173f6536b760b2a6fd59bae262087989269c884a966c658017ce65d14519a2c61266b344f6648abc0a657580130c6fa0f6565d8100f0532011945c3fa296de184750aa931582a90e6bb9080971cdd6b470f68db4e529ed61bf97f62bfac5cb534c1570db606cf0351e1866d7e199dc329d70316d7fd849d5c296d76a8db20306bbab609e7a9ac05c7896b150d6962d2466158f8697e532901e421d5ec00671344640623891a9221ea17ebcf6b290dc54359814a86658e2c0159c2374e1dc5f94dcb30ce01f3633129274585e304f0436396d66660f81c4cd273b94a3740f9c2fdd081bc309602a2cadd82aad35a46684547d01c74c38547176113a697b49e6c98c1c017b25f817e19c2a0302d083dc5c74c4c38b6706e94c10d178369b375df9c118130824fe99ac49f24a682ac23de429f8c7a6d1a89c36f82f0a47379e7aafadc744e1f20b9186c67784c3e6b823306896fca303baf61309cb498a216431862f00198c26ab6938487dacfaeec6906ae45303ec7dbc2889a8eefa511b82609b980dad54ebb3e7091e9d42a9b1d5b6521a7a4527116aa7c38f6ddf99acd4a7b9837317d99f83732bb7caae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 +ciphertext: 2dc32e31aec258d6463c8b3a5b9464fad89f1399b6464d5194a8704edbe2fd1abd7044fcc1fb2781c4ee362beaa35ae6a1f8b37ba5d58610092cc908ed65ea0aea8b393781be6277d0842fa27f9fb97b61b33eda5e50c1254b0410fdf9dd42306694b158bbf9a2acc025ba0018448e4adf4a1c9f71c7086750217ed7afcd3a2a2651797944e8cbfcbeb6e9b67d2ed65dbbaafaf3bdaccbb12e17d90e91e8cc1e0c96e3ad6387d95e2ce0b74ce9238c400c75723e8100af62a9fe53732f256d410f16de8c88eb484e45062c60d39fed5a780af738d320097139d4f26f9f39b8b1e777d5d0eba2bdf08d7950ba817522ed34c4774976ee6210f61393cc3c3d34da2ae3ac491db3c2de20b223bd73ce0c45e4743996e3ddcf286d7ac5e2c9b42f23afca77956e39c7fe65246863465de548f754fa5c07ed6bddaf138b22fae3b316dc5571b9a452c65fc01d9680cd4a6f04e69cfc885f80d1850994d85d4cd13afcd51ce1470c4c467442f845b5904b54f53b6b9150689fa40670f00b78f1a40735a2a8c4075520e1593fa8f2624b1dfa86b60c37ef09d97cfc4ef03002a3cd104f7399204c5849a860bd2685091364aed298b73e44f414eb62d093317b710da0e3380167aea5a87c071495a57243542f1a8b1a2aa433b25a9778f3224d75a8e5b913feacb83ec1ce53e9de2d53f6ccd326c463c0b82bc41f1532cb74d95b820a2cb1ddeff87393d219ca1c58a6bb742fde0787708cddb57fcccbe523c90674857074b2875cd961e8144aa6c2eb4f33972e695441f659b0c066bb7bba5925d26811c794d4a2c2c9c5f167cc92d8bef403151cc1f27fd0addd2a1297a07c5f47f9f8fbf72d0eb08158993efd5985970de5938382f4b504dac300ba12f6e733fd8f3d5fb26ae306164fe0ad0df2ec13ee8958ef7667a88d36ef9b7a521d840c69e208eb7df5f862de630c74c1ab65909d0fcc6093022d7f475a2d095801c1b12884b9f97643f714865d9752e25111a5c29ea974ce2532301bc0920de36d35abb364cadc0b3941034ddf459bde80f28c1178df12f50047b73a7370d380a858430e0eb7a3589bbbf578559c94035a6aa69b5dbccf09d2ad755311c97e80b75086462fa35027d72f6205e0a4b8ad20c5b56f91dcde31aeb8937d23939115ae4b76833dd5265e1019f8126069fd0da3059e96df4209efc730d4cca140076418c1f1fbac6b6a5422d56cd2d9eb16fb23d798021aa03292f34a6d302e119e4b3aa104e4856689dc10685c71ee038d02b8a0b965691c46b014184e20497f05d46e6f955b20a67ddac8f6d0cacc5f1e0ac6e826338026b58de71b2292ffa6d1ce333d124f17735fe21009f46fd2009829fedb8ee018e6d773a0bede891cd7ff9acbbbe9ea5a772850d38b89d3f423b0eb53458f28bdfd57184f6aa830307dbe8f8e9acb86dde8649115e0752dcbb4ef99437c488ca7dee225ee999ccf8176e1cd8a735817b927baf1e4d602c37815a086f74f27d318ba91c0bba5d6c52a4fd3a481373575345e660db150505466e9513224a540c33d9713b755c82a67dc3482e6ecce3a46dbc189d9a71a7f5feb091ea1e8b395d599cf0ae5c4ed6dfde8fa12bfc93de992e19d75434ecf158be6a3a22607b4a54b702e5822575c28ddb1a51500c5894f3d01d6bfbdc895bae212e8ce78ae75a38ad93123fab702a2c3e64db8bf44d05143aa87ca54c66fab032142b9569dd21f74d67148f54d513c991362097ed325953f0c621c42968806460763c211b4d8b383a724a2d53b7b7ba72bca0fda2ccc816bc74935d66b408e174994d856a20cab75fc8a0ace390f47c4f26c8a513c21fd3e8ea5d0ab19fe2547fe4f1981ea9133c2d9aa06580369ac4ce8b95c78d57043dbf444daa14c0841d84c2dbf7298e3df9e21d771265c4471778d0522ae99ca9c86e4cf568c8e18075bd6c6348455b53816a673d56f6fcb63238f653cd8dad471721b272585b6713f223afc43d05409a1e032642f8f653304696f758832db360d754666e1bee5a33c6c52027fbcdfe51abd5e4b3c165d219ade2a527ebe6d77096de845e09316c9099c7605953a31dd68b936bc96144c8120e00dc00300667fb8471dcbe770f72a5e3fbffceaf6edebfb8d786f7830f7aaf48e1cab9372ab7442176e8e9eb8d71df0001d5fd4afa3f4b1179d4f50fd338c2f15bbc27c3419a931ade3aa +result: pass +shared_secret: b00f65a7930ffc261046644203b94c89dfa7334bb011a4ba896c2d547d96637c + +# Private key not reduced +private_key: 433a70ee6950f998facdd5a4792da6a8163709fd4d457c779979b840fee72257d1490830386637da43fe75beaeda1bff81ca4f9cbfc2b03bdcfd78dc1158ff335acf7c9e39b5b88a34e3542c6861377545983343ce8f9414e478653efe78f855f52390379acc3b6f95323eb63ee832adb3bf4bf58e247349b6ed97e55abe498be5982373ae83fe0439ac68dd5c7f037c8a739b1824de144c851dc9611f4bcf04f3a2094ce97bd63bb5f6e9020d545f08eeb7fccddd9a324b0bac3c3cf382284059fd8b961952c0a4d19d1dbe37a53d5ac794c11da9d19fef160f7a1d4e9c3d7ec9a2df8aee0f597ab79b875394626ba39aecd90c3a90cf75871a75f75fbec5b03372e14aea24ddcf9384e1208dcc83b9d5622b83fd5e3971ec841afd880d3d67633671b09b5456ab6057936d19a4a2a267911c1dda13956fbd493821ead72c04642b1cf0da6cc0d9d864a39365dfd64f10187825fa33250749cccdc905d7b1ff3cae251fbf86c8ea817b86bab3dedf7862e5f6bac997f6e56b3ced6d664cbafa7df670c6ffd7dfbcd3824c89897cb490eaa7663ef22c96f05169c91d3f9c4a184d798feaf836ad4ebdca78464d427e47311fb7d183bafb6f7585c64be48d9d7f7dd4cbdc79a556df0ad677cc7e65134d7d3b6e9ad09543b73954757fa706c3e7a509be5d96efd66c7d0ed94cd60d4796ce8159e3a33d7987125f5f1635a68438e72933f49635aad13fb9e56664bdd48ed24ac75c6468d29d3e481d86c6fe567e93ea0508c53973f591ab577e3f4a834f97268d995086ed8444f88c24d34f2cd6c2ddaae09a71c84da5580ec28ff8449affbb18b6628caaa3fe75ac4eed4c709e3900d86c891f6253ae7c4e3d3991ebd2882fd881bb88478aaa9af9bc53d3729843858fdb4648059cad8fc1a10878ba39823b14ebd1ef58487b56cc8a3221cea58bf66a172b5b9a0c632d674eae885a015c4e37cad7378dbede7534f3e34b615dc86c2ec3c19d941f23b7f683ee2beade6ea464687ecec67fb98dada1599e9adbeb84ce585ffaff5ebdda6cb7fd7a909ee2336d7e7217bb039babd0e9e934a8594059c96887f3c04381bfe6f7a115e7f5f4bfc77777aa2671af1f4f2b7a5f4d66e4039e97e6586fa9ce7e0ae9d781bc7bb19a772d5a4eff3fcac89b76c42a5ede9bcc21ce898c08a5b1cd7e479bebbd2f6efbde5f2ac737514b8c6149810789f22416537fedddaebbe77f9d3ead6b4ac42370af2bef50ebafaa1c6e647bbaccf7fc7d0b88afbdb070cea45457a9c187579cfe84579cc351c43dffa4f605aa5604fc85fc5583f7fe496ff6ed70d6cde33f7fef7e3d87ff9b3afcbb54e9a92a33a6c1ea6ffb3d9567bd686233c0f4bec3144890e5fd829b6d99c5749cdec84328fcfcb64a7385a761d64b3a23c489343343b987f3ae78c7d805458e26f0f039f89779e704cb76e4bdb281a83cf64490498cbcaf04802416b33c565171d772d3b9354037587629ae14a5c5031ac3677ea0d0d9ecc0b4cd69d8402e33b9bdcfbbaf6b971f3d3fa137be232598a4999bc11f574d8e651b38b38396c1c365303bdf5d49fc6b689951a1cc4c6007613065495f97910f9735d4ea4e442acb2fabaed0eeadef0667bb5ffc955ad5d1c6e67a263e1275c6ada8385965304c3d32414d542cf5a451bcafc74788be3b9b9fcc45d489de2d7335c61ae4f0a49d13053f2626a627dae9553cb337afcb4a455d8ef398959e472cbdd51ef7416e0bbf1b7ed8fa07c161548e7d6f331ae5a2b4e4a108b5e093e3e5092ea2fb547171aeb73c43c550c6557b4d48a59afcd78af44234b2245e75a0897d516eb4613482dc136414048c11db37ebeda5df87c19314b0e82397a0d338dd2e538af36149d93f8b2ae1c53bb5def8b7a2cca3362b7fe4ae408a2547e219d58c673a7566c26123a6d8b692a5f33ebddbf624b79d877bce60ae4e42e83faae8fe9a0d553a3c6045ca329fea4a506558c59eb6a616c6fe5ddb42136f44dbdd0257650829d18d3c568ef6c60c6c409f7da829287109ceb6a4e3ff76e5cc4e1d4b02438ef7a467912398ea9c7cbd9981589a341897687c5e6a143d7d67cd68c444b4b949a1751f413315ccf49b99990d34b5b8cfdec4a60bacee7455aafbf3a757346990cc32b0599ba217a6c5fc39537911957c125148a87f41589cb222d0d19229e2cb55e1a044791e7ca61192a46460c3183d2bcd6de08a5e7651603acc349ca16cba18abb23a3e8c330d7421598a6278ec7ebfabca0ef488b2290554753499c0452e453815309955b8150fa1a1e393386dc12fdb27b38c6745f2944016ec457f39b18d604a07a1abe07bc844050ffa8a06fa154a49d88fac775452d6a7c0e589bfb5c370c2c4b6201dda80c9ab2076ecc08b44522fda3326f033806dd2693f319739f40c4f42b24aca7098fb8ff5f9ac20292d02b56ac746801acccc84863dee32878497b69438bf991776286650482c8d9d9587bc6a55b85c4d7fa74d02656b421c9e23e03a48d4b74425c26e4a20dd9562a4da0793f3a352ccc0f18217d868c7f5002abe768b1fc73f05744e7cc28f10344062c10e08eccced3c1f7d392c01d979dd718d8398374665a16a9870585c39d5589a50e133389c9b9a276c024260d9fc7711c81b6337b57da3c376d0cd74e14c73727b276656b9d8a4eb71896ff589d4b893e7110f3bb948ece291dd86c0b7468a678c746980c12aa6b95e2b0cbe4331bb24a33a270153aa472c47312382ca365c5f35259d025746fc6595fe636c767510a69c1e8a176b7949958f2697399497a2fc7364a12c8198295239c826cb5082086077282ed628651fc04c639b438522a9de309b14b086d6e923c551623bd72a733cb0dabc54a9416a99e72c9fda1cb3fb9ba06b8adb2422d68cadc553c98202a17656478ac044ef3456378abce9991e0141ba79094fa8f77a300805d2d32ffc62bf0ca4554c330c2bb7042db35102f68b1a0062583865381c74dd913af70b26cf0923d0c4cb971692222552a8f4b788b4afd1341a9df415cf203900f5ccf7f65988949a75580d049639853100854b21f4018003502bb1ba95f556a5d67c7eb52410eba288a6d0635ca8a4f6d696d0a020c826938d34943c3808c79cc007768533216bc1b29da6c812eff3340baa8d2e65344f09bd47894f5a3a4118715b3c5020679327f9189f7e10856b238bb9b0ab4ca85abf4b21f5c76bccd71850b22e045928276a0f2e951db0707c6a116dc19113fa762dc5f20bd5d2ab5be71744dc9cbdb51ea757963aac56a90a0d8023bed1f5cae8a64da047279b353a096a835b0b2b023b6aa048989233079aeb467e522fa27a5822921e5c551b4f537536e46f3a6a97e72c3b063104e09a040598940d872f6d871f5ef9b4355073b54769e45454e6a0819599408621ab4413b35507b0df578ce2d511d52058d5749df38b29d6cc58870caf92f69a75161406e71c5ff92451a77522b8b2967a2d58a49a81661aa65ac09b08c9fe45abc3851f99c730c45003aca2bf0f8424a19b7408a537d541c16f5682bfe3a7faea564f1298611a7f5f60922ba19de73b1917f1853273555199a649318b50773345c997460856972acb43fc81ab6321b1c33c2bb5098bd489d696a0f70679c1213873d08bdad42844927216047205633212310ee9a06cb10016c805503c341a36d87e56072eabe23731e34af7e2328f85cdb370ccaf00515b64c9c54bc837578447aacfaed5969aa351e7da4efa7b115c4c51f4a699779850295ca72d781ad41bc680532b89e710e2189eb3c50817ba255c7474c95ca9110cc43b8ba8e682c7fb7b0fdc265c0483a65ca4514ee4b832aac5800c3b08e74f563951c1fbb210353efa1aa866856bc1e034733b0485dab1d020c6bf765ff60b3b801984a90c2fe970bf1de97004a6cf44b4984ab58258b4af71221cd17530a700c32959c9436344b5316f09ccca7029a230d639dcb022d8ba79ba91cd6ab12ae1579c50c7bb10e30301a65cae3101d40c7ba927bb553148d1647024d4a06c8166d0b0b81269b7d5f4b34fb022f69152f514004a7c685368552343bb60360fbb9945edf446d345bdcaa7455c74ba0a551e184620fef97688773d50b6433ca7a7ac5cb6b7f671a15376e5a6747a623fa7bc6630373f5b1b512690a661377870a60a7a189683f9b0cf0466e1f750762631c4ab09f505c42dd28633569472735442851e321616d4009810777b6bd46fa7224461a5cc27405dfbac0d39b002cab33433f2a86eb8ce91c134a6386f860a1994eb4b6875a46d195581d173854b53d2293df3e9a822756cd8f212b325ca29b4f9f8cfbadf2e41869abfbad10738ad04cc752bc20c394746850e0c4847dbebbe41cd4dea489dedd00e76ae0bcf54aa8550202920eb64d5892ad02b13f2e58626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f +ciphertext: c9bead6b0c1114389bd4761c73ab9095b5809daac9f659bb564af226173052a4a3e7f2e5fd47d2b02aaeb5189e06b9f4ae98b619cb63efbdf3989a94b36e8ea0d700633b950a0ae2a78ed92e85c85c70e13e626fb263fac9681521c3ab22fdab29173c9616a2b037083ff7b2e019b5bcde068fac257ef8f12798411693c1bdcc65420997a513a8a69502620be8e4ce7362e412a76cf51c1f2433f1ab64ce0e5d2f56d7c9ade994d0e35d0aeef3ac515b482437664d8c1d25e5a5507cf80f970d3ea7226aacdc457cbf88a0560aa35bb2c5c455867e2159910a35810befe3aa10eb04d8d57147cb8f66d2b070bac43d1f1ffdd57a9399951f64965727bcb9f66ad42309dafc799c1c540af1af93eff68a86d61f5115db662dee7ac9a362677762b6a164a0fa0a4d859e4b8c8dbdb4e183f5e6808fc52229650caf7cf3e16de3d895d148c35448ab8c2753c9831b24bd4921497eaa192565cabfd83c0c68dfe7d392abf5e5e6f84bb9f5af4b7118c0b558105f9c10c9b6d70682e1de6e0689d7106a6374bd34aed7229e6cb356f2ea65e680ce7b1e2c3704e116a38542826e8a001141baf2e34de37a03040986d4c0cd5d57f0701ce930986fd9525b58e2e59f45b8dd04c0f35b0f47970cc67079618eb9e6d91e9b0f8c6d2e165cf448a2c1ebf71b6537e0f375185dfafef698b6239bb35580b315bcb5ed408c357f192def89bc1b75cdd6aae8b5faf0c3e13803f6bdfa76fb407fcbda790c329b3ee42fd3d3b03bd5003f0bc432f7ba39631112452dfd12140433ff8980eb6a526ba85ef99477378b4dc76635a5cd5040e43b8c1fe4ee5e158e423bfc0c893c1d5613bed08da719c9073184eeb36fd357380fb1873d8cbd36e2255e985b1b76819743a6584a9b3a580996c9c2eed9bbbfff78a6204b5e5eeae5f4efd2660078b37f0754ab5da862e666b145b5f23f3d0977799929dfa2aedda53d152eda1d0d0e4ea43f6ed889bb965eefe0a7c685bb36770eaa874242c0e229cf6ce56defa5aeae64d0c40dda8aa26eaeb31458f070a3bc72e1619ee9b5f642291c56df5b7e43db6c802fc74f4f3f9b5c0d355c3aae520aa31229d12f3e7cc5d48e691191a36b283765f4133f0ff1fe2f01c6648b2798a74eb5d842a248f524a7e7f8974211297b44f0dd19f386e86be6ba782de77fde887226f37a1c77bc5eddeee5bf46b67fb7478d559865f262caa84d64a8ce59e4df0818e14861526acd3483600f3dae7959d35d8181ca6a81ce791be00752da7759446a2cfbe00b8248b93491debd520220b755416d2fc6b7c8af2ff75e5bcbb8e7537380a5721c77484957a69271d8bafce0f166735ff869232de5d381afbf0e44d69172b79a35191949de09703b94222b13c385c6081e6d2ede1e57fe184ef8f60196b9a3a7b7eff7497191ca8741b5a01e79cb69a61142e6f5d080fbb3e566f79e146f75c8a1097860841b4747df604dba954e4a8d9e0dccc1f609d05cf8d31219ecd60c312de684552f09227cb829291c645732c5f5d4d711639f42a23080aa34fe1420f219bd6bcf4e3b29b9d02293b2da81383e0a51d2bb186c7b0a211a0cd63acbfc0210401e985d436b3803d5601c24136afd1562522e45b457cb439178be4a87cce40346d34ae0f3c39103c8a3ebc9c86c8db8fc5561eb0f3a143d4e9fe93a5cba6f6fcae5650d3f43d2668a5956c922893b816647ded0afc052a6c3d9d01a3d3af0f1ba807ff10491e131dc15e165cfd0650a1f2c313d7956141edcc61cb90e9e7abf2fe35fc9dc1bde88939fa11f7bbe3eb4d8ffa643b074d74f45113586e9bb12060003d71941f2da098dc0e96cad3255cf328ea2d3308c1f4585e89c613c426b7e798e1ec4e98fe6c71e7491f5eca0cd05115861bd160e3fe73a58a026ba538e0e256b92f1d7a2497570594856860ffd06b601ac575592f4ac612b5de7866042123ebc60c55768e3a7600a3260551f2bea22bbf6b6c8246e80f9125c4bb9db354dd64ae695c15f5071f4abb9639207cac7331b310f69a05f54b995de529a023f033b055db95287a14ba30a7cc526bb724c417fba290636a996f286e3e9e939e4fe1c398b5c6599959d0b4445a327ec469a1653cfaea7552cecec085ccaa68938ae4ac3c424f7e480439ebd2c992b5f6f95ec244b657dbdeaa9ae110aaf4d68bf4e27410d43ceef3e88e9c717dd44c9ee +result: fail +shared_secret: + +# Private key not reduced +private_key: 1df76d46867cd8c5b94b3666ccc8c368ab45c71abc8effcf74fb307009590238fb41a698b405947354664df4727bfe6b55afd932a6f3a33889b41747d56594b94fbe8704dbabb37bb457c935c5a2fd48d1694433fbb545b36bf3b7de7a8d9aaef6e3efefe99d8c8cf030989a2869d0d8fb78ed65c97428c25469e9599d406dc878b2a98993664fecc960238af32663d105f78bb1dd4a0013de6fcda258e8d3a00844753b8bcb9dfad335648f348fa359d5681a72a9ee982076e3dc285101499413267a5588bb444ee20213bf3ddcdefbe8db700bd9bbeb6067f6e7d48db804bb6a4e745a97cc8342c5cab52d8390147bf1b87c6c4430d8b443e46ce01ae65fd9c43799ad82aca969b827eb8794c3e55fd96a139496b9a11ea8f1afea868117d06e5af8406da035485914e9901e843013d36c36b353196ffcd6acedf78acab468336ff89ca4a787363b51f7c6f468d974507af45049c0ed7d92e7c9368e18c313297a93af929279d2d35bd89029fb50cb3772a797ea79e8d48db1752b8e1e0a36b42aff865b73a8b3a36d68446ada396bfdd08a8d35c40cb4bbc76abf0f40392372fa6bca942c4112c86eaec6da5493f6868b80af6a8f9dd5d6bf9474641b7032994d641a3d1c45b8df8cffb44de003f648200d622a3f309e96dfccb7ef7fd6c3834fcda0a4a589e4bb7a1f94a6aa9f85959e92bdb5424a61a974ce29d87c7c1ceb0d7ab80479de285952cd95ca160d97a7c6aba8c878a87b883d5fb2d076762fe4f4fd76c074873fb0ad3d0d98647e76b4fd99430095d094cf529b3b599d33692935ba09f4e5615f916833bc0c1383621dbc134c4ae465acf183da02ef61f2d3b1166f88f54573aa6cba8d26ee533b50c57afee00ad5676b83489b742d59faa675dfd658baabf3d9a96d967b7f6a6cac46bdc8893225e60f97c3db16cde48a684ba64fa34a7c982d93581eaa4e3bb0fea7b14f4c9a889b9a460f4cdccd9f3aa7e854b5ba1fa4d7139e32855e6614277a1efd4a6a583874be54f4e68151dc8ecb86b5f58842fe3e491e54f2db7b7059268030d6df4ec3bc1b37b077de57c3dde4dd5fa990a5d5da9e80b259cfd42d4a238f5ba215ee9dd4376e85d2b305a208a98a2bfba19ae9e52d3853acbbfc4865eee998c84649c2c8e7b9140bc67cf839c1a4938acdaefc3ef0ccf6b7cba4360a2ea0e31b7eec4335926788af54e280b4accae5fae014493d15caa30f46cd443463a3d3fb66d3f38fb8a7fdb1ff5ed98d28c73f0b74653cbe673340158492d75e7c525fe8dfea8bbb4aba8f84ec092dc077af3b170456f8d859831ecbe6a37c15e6c38d9d5b8ed8430ebd9982ec4f6c98f632383adeaf85a08bbcbf2e9947e96017c8bf3b89ddca66b868ca729eff3a8125bc103b5eeea6cabc6472a17f81de58cfbbcb319a7ab27d3a5f5c268bb0ac6587e7774a2a43764ea28c84a8c1b986b1b7f04fc6e3ce0d67ec26458155923248bf0c74efbb4c4219a4e414895f618ef928fa7275f7a99fefde6aa7a2e3637d1fabbe65db9dce36b1df2656e0284d3c5b4c2d789802c9751517ea8f7c31b66def4ff492cefc8c7f7bd937da9e02dc6a99493ba707f79b3fb6111f7f89b6b9412dbf59bfdecd7548009d63332bff4908499c5dd357d3df1a67694de351ff5cbb4eb553e4e5f3568542a1ef41a6ecc8045caf295bcb12c55861f7b5e525ee5f4cba28d5485a6e9dc04b96b6b3a2a2436d921bc4560a4c4df68a354e373386eb8adb790fd95a6479351bbb7cbb17a528dae4f0d3eeaebe95c86397beec61ab8b8ef913fd1bedc6690be303f554d2575e25e45bca0767b19fe740eb7aa759e61e485152b68d5a9cdc53db6ba657fa350e6fd9067d07e8745e66785949a4be88573987aa91da5fe01387b739415b0c5d03caa04089812c85829dd43e9c4edff5887561c7aaf65be36896f051be57e0bcbfbb659934466a3b26e16346e9d8cf855553b4c3934c905ede7a097a5b69ea7668faef355c58ad76a019d5b6474626e33ac9dcaa77e8a07bd9509f5baf27bc54bfb8890ad4f10f8bb4544f350acb61c349993726e4d85c7cc49c92e54bbbc94389673d53b84d88985beb2d6c335d1ddffdefec9a45a8d377638f954a5e23f56306f4486e4f11eed3d0a58408867fec69c50f595c938a454364cf10a4c719113a23b242bc013962f13421ec0686e32ccb80840749643eb4b5cc4182cee2366717cf77f97da296a185440113770b6f755bc596cbbce021e94306b1e4ae437ab7dbc29527142a9223a8a7cb269391cad8f70c6cf666118830485ccaebba1bda242176559904713c6722c413d5c2b9c2669d58138ed5b23506a71c6182af6939dd40c51d678639238c8c071384c1256ee6a307475bb72bc93976c8976bb89c736d8fb19580cacb1f335b97d16943c0706f78095408cdad77a9fe967c4bca738960b3a3c171680426528a21578b79b226bda19a9bf132998a2149c463932d630b0f131e8096be462080e6d17107704f3b0cc90c3908cd645268375056e6072425b51a46c27a48b9c0db67b025a58ee37b44794430f3ae6cc74e1673c2b1d4b29db5370f590eaf6165e5806376f6a7d4825c74038792683f38893464103d82426593f366f96b023008be21956e6be8a4bd612d4f85239d62ab6c39069aa210b47b37ca85394c19327e5303cc9c54a5c63aeb104dacf67a1c1c3142710dcf682edac82471ba98c81a552ad2541b7338b2a0ce41354ccab879f549cfa58995eb8c64a8b30b6f384ec2e04dc1a11ae04c967f744024d70da780516777a1b1715f22cb1eb3511f5c4c99ce577836489a0f813a99a622390b52e4757843c772f6e75f470305259833b3993919f3aca66563f3eb7375f5883cfca72398b049170ebf0997ff277e44501fb0e83d0c5ca6c701048180ac68d857e0dc5d24b1628433c737b8808c290839d42c6a322250e0c22b81b4c018260d288c47976bcb84bcd0856c40448ca40b723b8144837965ad46b521ec4b405c28589b8536621a10678a75233e2cd59bc6e03f49d93925c5bcc133bea39a7e21907a19840c80225f1f154c270a4bf0206a16c241bf42cbd351055adc8519d38fc9d3b976e2144909053c5843c36b7b247a6ecd04c9d792a6fae968cbe11713592b287cc8b07b73c334bdbcb91d05c7ae4e86aa7547b4cc6403504acaef4c6e5b758f4e261c7624337000c187648325f36ac8854d4a8a1c2c732a0811b39439340e23c33af0ce5090ce800070306834321b5af9e4be13b22ea6655da11427f995a115dc86cda737aa99078407b9f78b914e831a6bec2c85f922f972bdda971b66761045813a852a0fd990136840835f8b5a72c5c8e8a65ce8d3ce957b06698261160031597a29e3388a4f5a5f0b96b70481a2e5738d3a50189496c75a856643899947c955be8871e808030a5757d6b46079454b54d51557cca964379bca5a8191698275dc51cb164f8e508fdaf480031a28afb1c9ccc65da9ac1cdec625131c6630188ffffbcb726133ca563da640c76a6c24105502ea3c24b918c5b818121cc68e2f1b62112a41594a6359876b91d058fd66861b7633d73cc7226b8debebcf90fcc390f761360554acf013ad03911b49b641c73687f4a73f8c290a2890c02c56e2a6567fb03826353d87ea41369673e1f9b920b36203cc9aa464192d01b6d859307927a629a24b34132cbceca487a0cb3c7442aba47c4a077fbe7442c2a4221a200a93e726518830b11b690f0497ac0851a5b27ea20253065a9ae7e6567fc26500edb11346955aeb2d9c6c228f1644f21b34e3694c05016284bcaf746ab6344a10eec87cd0f76a611ab64ec86288c339294aa15233abfb680036d2155fe77363530c3ee0c4b8b74a54e9a2453ca081d01f9626867632870b178d25b831fd133a2ac0596e688652c1772e2979305c5e2a10949bf35bdc08cecd6771b7f659b61960a45054998472163c21d31024c0c24972d5b145608c1044718f60894bf5875a453d4a7c4569c63a2b38c2db6a4fb8dc9289610ef12754f37cb4dad3b66e135d1f75759622cd7fa03c4ba81d71ac9938c9a97839a12d7a4622943c381a048edb26c64926b3a807b644aebc9110c54b06d4ea1cbf6462a55b31c7f5202cca8b7c698d9559276a1a3963cc56dd26ce3c051167f299d80c3a8ee894f134567cea1032c845d79ccd95313f04d6459d1ba72e00cc604365a9c5c5185005f17a0397a559a0b28f31b41a5e0948c81501e902b9cc253f6eba88172bbb92024984fa99c5bab08dc01504556aabe8c81bc99c56fc771ddc85d37b7c50182345e189267934564aa9dd80bcdc25b127f1244763644004e5eaf06b095b892bae095e0ba7f9d2700a50cfb6fc18d6419f5438a0573693f421d3793e5ddf3d846678552aaddc19265946003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 +ciphertext: d0f902d86e1ac0a000f40e508ecb36f575902e319cf05ebb6de2ce63e02b912f9cfea50f513a4167a6f8973a656720aba76c83fc8caf1b9b922233e0356c9bc2b0f6fd5f083aac09b965c01208019d4d0f458f321a07197461eb3f71a136ab7fec0d7c1c6c868d6b2c890f09019f5159fa21642f44b8c1b89b9dbc49a0a9d294fe670ba0915a78c4a5a234af77b925e582eeb1437cebdfd3a86c98abd5723bd2fdf6b54fd79ed0dd867c5ff16fcbfc30bd1b739a912aa87c70e7213a3e42218db247422423089ead4e87ba998da1f354a1d1a65bd8c481c67c7aded64ceecbc1a9bf413e343433ba93fb79350187825e984f6e23f5dfde9b56ae1fa50ebd1e6c6b0141e3b9be3a5d1502dc21656d26dbce6eac70a596f23824d512ba86069a2a28182bf71275cad1639e947666a7c71f04d72bcba3036e774a23e95216af23b19d7af41f8db3f725d937915c72591fec65e902b486f9ef294608624d93da1096370c56a7f340629485cf0684e9ac76609b1f3d8f3b89bd20b87ff3805af4f2c62014a4b3f7e25c3cd12f505048464c490363b40ef68da9da2f25ad691df7bd4402c9e2a210a4ac9c2e1eb9f5f787b876e88ddab57ceae57741c9eb633280995ceb65a6871b767bca78b6569aefa1059d16c90a6afea36f5bce1d6928de55c9241c3b0f225ac7cd55b8ebf663b7c298f41c23fa8ccd279845a48e6614d500c6669cdc232b92178e7fd1fcf5b0b1a9c03f9bfaae1a8bdd856d91616e913f82a124bedb501dfb68d91f106b06acb3f9b6d473d8815ea27bb839856be5e5f26430615b97978f6113b042dad56475304aacb6d0ad777e63b4e8bf53a0c51c8e8b911147ea7404ce6d1a70770662b439fbd3d4e4c2788aef534ed19012b9387ebb9be3323daec6ebe149264c0253912f4f0eccce2d4cf5a7790e035c3a52c6a1541a5ac5be90526a5f031403227ee76d0836efc37a449bba10165ffe58f111dee2dfa288d3da3ac84894ae676f265b02bfa2a809fc622c3b8b4201ad59439d170e7022488e4e6cfd0fb5efe962a704905bc389001ae16ec46af47ff3a0ebf900a21fec6ccb754a89450134ef6945be8fb68960174342121c36cfad95025e336cfb15262caed34b3605ff9b305d98e53a0e1eea5f4f35ad7588b4f5ea0875f7a3c35ebd13863b299a05ffa14662ccc10cb949a56573a419bbab7424f7c13e537d497f002689fc6190d5a079019deeb265a238c1cebb9fccff0a3203783b03da50d589daf28ec573bab47207adeeaff281e180dc499d62c346b2485be4776f163361edb2fa9613537adaa4838396e32a91badc75487be6a1345ad93351bf4ba3b46084a2ba9421f0bdd9ef47be8fc22857cd0c5dc6b83e6a7ae7d0026bc61ca0361aff37b0d878400a1637a522a06fecb7be0e62b60fae2df2c7a1e68ec2992cdb505a5fd1ca7c1f53f0a8ea4162639af6ab32414b33cdf10b8aa579dd827c30b8c1780b3cd9d67320a11704057e0a77e998e1e4c12f3e5d8a13185ae6830911f88e7dc5cac7004abbc512c6ca69006b7dba74f147dc49785a1847a919a620c892d5a8ff3bd4b664bb73271d8d069ea19bf0e924e2869688cf0f26c1349abc29ce6b7fdccc1174f1a4b4fd26158b094808fee9d0ddbd996f785e6a1caddbc3293a1114feff09a19fa71f286f48721e810693ca9095d7b3c0b9736dfab4364dc1c0075e3face4dfe2eb1c815f713028312f1d106184c1bde874900591731dd75fa8f1505d816d51780f53b9b759b295cf5616acc7aa02ebe6b90252956275844bff4865637eea40969fef0ca595979b9215edfccaa44e09e67d8419928e09be7eee4d240d24f70db6bee802729b4244c619f38df99d0635a3125e2cc7c65bbe41caf795fc6d474ccb000f54f6c4daae2b62e62e2211f1258985e55fc5942d8c738c7df8a184ad34308dc798f4933031095ffd01997150899cfac81c533e6b1d92002640babf3ae3b73371964dd6dac95d8927ac33c4bab3e7a7d115fd1722b8c625da2c967d29764ef85240cec35bff4f507e3d0a02ec6d26a7ab90b8c50f392b8160ec34ddbd389a15bd47558b5b890cb45aee2e7c9f516201ad9e603c71fb631d0b930147a8bdba49e1dd0ca6fa3a8a089b520726dc78ac914d0c41d5ffd5875f798eafa2554c1ffed8b4e03f316a195c95c9a7c1351a06231ac84ad6269280ecf63a73 +result: fail +shared_secret: + +# Private key not reduced +private_key: 9a29ca07efccb6a96ad265638a7ad57ba846fd6777408cc21aa7c8a7c6daeffc6d015bd2e64968cab39948e45c6f3f67611737403dedc8a86368f54a556deb8e1dfd3ea36c1287a55053e3f4ed3ffbe64d28059b41247e77cf4a8c05abc21678110983ca19d5434b5b2ac45adc6c5d90d83b416b30351b780e8386d304caafd7df3a3ad59f8d94ceb83810d7599af876537c4d368cf1c18f7cef5c80f3bd4f555ce05c1a8c874389a5f8506e1d4c116fe3b65bd0b2fe94c1f793f6d340a74668979d5e295b39d9fa9e6d3e4e889e40bd1becc276632f7da56a0f346fdaf1d2fc7b0004817c1f88b3b34506dceb1516dd1c1d3026efce52ef86833568548fb2cea4b87dcc6590fac80825caff465cebabedfc5eb52ec97c5077b55e5f8b32f4b2e354d71e04b703f759bbcd579179e6ab7587195d9922ddc0e1dd8bd2037e0643a18ee6df984a837b86c5ebb7b8069ce5292dd515cb808b0e9f9027e1322fa7ed16582c78cdb52ab7b74fde7fcdafc194b6521e9f79f6c7ff32b003ba7e026d510e3faf80eca6547c3999547749dcb7205c50bdd6ff54cabb15f386649be805da6ad6cea55265b57665bebe46cdfba660445fb5fd036d5aa4f6f71cd14fab63bc2ab7288653ed2680de6d81519b3bc56ba9704ab32bf3a5939ff57bc9d71e37dfad6b705e48bed7a546ca6a80a328ef3875580965798e978f757b83fef7f9774ba46ac3fa61343e002b6379a5ad9fef5f37838c84f397b9c4d39b447b50c834c1b99eef05ede6d5bdd99edabe873e1a1c57e74c51bc0e39d93739101dc118a568bc464a290f8cf5a778bc1a717f9a672ec5cc2b635add077485da497f68c5200e7d3785bf0dbb6ad9eb3ab4bdf776e9784a864a45ecd528cddd48dfa8c7794d44fd59cfe88a2f53e60c48f92216b0dcae7da92b56ce7bf712bd869f2fd4e22cf835defa2d4557fc7f3caaecd1af894afe656956b35829e780bba9c8ac38d02245cd5d56e12dc93dac9a656ff4def67bb544847bebf73eaffc85ec25e4baaf48da8760bcdeb65108acfa364b4286c538ab466f34c3840dd9e0f6e1f379aba066638b87854173d65afcaf1003a189b8eccfc873c84bb4667de47adeac21d9886e86e4cdd3603415b84707668a3df8ff575a69f471b126aacc0e36b5e9ed1f63ff8549fe67ee82a5acc4be796e43ce6d1d56447264aaa02d505f1a447288cd246fbd9ace9a7bba93d1775586d769b4afa1aecce7f85bec14c5a0d69d8ddac9dc06bbb7b31c3b896f5b96f9f44d1635867f4ffe46ee051f7e5aa8e92adf4a8e8b58bf6ff1aaefd2b84b3c1e0cba55349abd356d798df2c00ea04573ccdbf4fd1687b29be8c03cf3535eb952073a4331aaff0f5f726906cdf8dd6be443e9d43370b423e457baff9696f8b5c5a71b5be804734c85ec5efbbacbacd336ca048f8f3589e966ee383fa0ea65f3168a8449a9b30a88ce125cf5dc2749a3933382dca4cfea4de519bc17f760542ec99b4bf0faa4adfa6ff320bf7a95a55c7238702a869d0b1ca018fa58cb2ec6d494bc38db4b352e6bc87dbbc1b63102a588db2fa6ae47f3bc8db1c857ad06b88d1e1dd1b396be4126e8de5fe760a58e0898787c498118775ce407317f4bcbd3477ce35c565d83c1ef1f4eca0bdfeb2be9a5ed5eda28fb54afdb4613c98a5f3d93dba7364f3dbd84b765aed47ebdc6f50376dd5460aadfdc02643b63049dabcb3ec09c9a6baf64f4ddfcf4faaeaeb9e58f74670c74c783d461e1c3aab21840326e508be461dc3cd9d4c77f6737509cd3e7a37d3e395dca06636105463a4fbe6afe797be2d3f764fdad2234d1545462dd04ed71b65fb2499ad4dda7c128556518be54948a86b6bb5b9eeb76b4c35d35bc2d54c0c60c6a744c4944bc74313e44b499eb841ac2b1e637782de465eacbe943d87fa6541f6dfba555f2eb69842d3a706dcc617076ab91ce6393853fea29dcad088da65953a51fc8eee83945cb3e117e9f37188054d3e51817d603ccdaf5e483f6155d6197d0f84d93aaf352facc6a1bbd809eded1b64c9ada665d1acc9bf32ce5bb4afd163874b523951c7441bad8d824df9a909b9db7b73d441fd300e68bc67be965bed3145eb45175db640dd86ecc6fe8495857e6a93c9b667e9f4eb3a84caae9b401fcffa3355da1a341b578b4765c4649e6bfaf5c8b2ad80de5200e4dd30da0b693f5ebbfcfba9f0ad2ad46576a7a06b65de6bcdc432b6a753f3a6326a27073436483aef170b8649e2ca022497329d071af4c25968cb0521a118aec41cbeab013786a1c2984cb2c649da0fc94fdd880fd3a05239b84ac053ca0f822e4c94ebfe1b6d6898da03b02e455467af6c89db7225ad653a5ac0c8e165f3b9b68b01270ef0ba7cc56322d5c671805b7d333b899abbac120c010033f3064647e4a387649c272a32c2dcc2fd62793d8689cf59619f43c87fdeaaebcd4c3f21483863563ce8442a7f581009410b3c506146390fcd44d0f918b2903940a321c66700ca4e205d4501ecec23a4d17157ce4a0bac562533273fb8071ddf960217696ccd98a59e6c39dac5cd185a0793a9190e25a0460837d07d020d72b5c5ba9840b0940832fa3a483aec99d0d629cfd67a1ce77766a23b2349947968c238d0126f6ab9422b97d6dec5657a20a683544ba07971bc773a5da90bf471eaf12310283944c723eb1e0600eeb2464bc71de7233ebfb7be64202ee21088222a48ba200f04b6bf6a1c7f6404295764e6fd857d747cd985b07f4d83f8b13a901ccbff7b01e21b8789c05b635bcc14c8128c379bdd52029efd660468a34512bb78da224fff9a223371e457333ad464c6fdba4f6c5451b585583655182691f6ee817cf81ce6e7a5cc6b9cacee275c473ae1c58aa38e43de50796f22475fca44270e3a46fb5b8bdda74e3e05b88210f54f36e79fb05becc76805b716154a6e2346b0f4cac241748fde93f325b4f82f3b681136aff8056bc7304ef22652f1679c816032bc35db68b64b2848351da88df89166707b194cb4759e6761032aca4b7a54e8064f5755d36288fc5061072da1ec35a8491396c9406446060347361bed860b028b57250f0187f45a204fba678f587ae031ac38480cf4c3fff90188d925bd4c7c6bd0b758698bcde97ce3958697610ce05e4abfca60eac13b666732e8262b36b7447c0c93f91362c519337052865927a9862d2c1ed186b411554275a24dc9738751a4ba243bcfe46109212b711aa453a35b09ba20ab405b6f0f3457321b24017261b49923225b3620678c4f474515396113880df463138abc3e820c65415c593d74c01e5136150b02f1ccc55a6c1e7e9b121588362d784c3e85658532331bb596682377c752e7c259608b629e74a5a470bad77d3c0672b23831a217c1ac82b94a82437643807681cc1684098b86de031440a79378a229bd902f2996f326a0df16354778a4cd5375c756a34890ccf0c92ba07a61546387bf54c2cb0c8548d4780aa72b667c0a1fe400b30f194465cc97ff42511e75457d1a8a9712a6ea971d797baa894b0348561df068a3455a89afc3684081ddfc0a90fd8acbdc217c83398380267776051cf3491542534b1a74b409b69a8a142c1b437b5a8561fb064ecb591b7334afc482af678cfa4e11e970a48bdf822a0b45e1c591d07792884e4bd057a15eecc5cdf66c994cca765daab1af377a14b98bcd8918fe3546fa4438ba5322da1ba75543be245b12e228d07c1cf1091499a2c57dd42c9f6ba3240c053165ca3fd669b4c3944a7d003d016a0fca826b5e615846c48873cb7f222cc12462023e38f14d98fa0486eae480f81a7376eb6380a42a1a2a6123d8a4efb102ee7b900cbe7a9238b59006abddf2ab25565815947b3bf6b14eed43be91a5687b339e6bb6614387583c585f1456372aa68b17449c2a1c6269a05f8659da97585f52421ab74b9d705ba13ac139f15be9f41971e0a6e04ba167be9b681d294c706d0477a22d64565e71979009a18c8086059f3964ed327288aaa0c8a2b2d976d5fbb50b842bcdf3c9d25656ed7224f3435c9bc9b59b17727b46a546eb8553dab54ecc6842cba94fb24592ed077fc56bd5dd2cd798715fe0c513377361d263c6348340a5018b0e9b43e112bb6ba60503ca954f2bb25fc585c021b57fb3d1acc80a3b20ff4555ebfa223f90762e2008ce920a420b48cd8fa9606ec5834051d0904847466564294cdaddb25cab5cc68008f96971b2711ae8d73b754cc8ab2bc13e07708e7b555ac681c0af0961a19105bf62b93267b8c47c73526b8c2d08bb13867be10211347656c0108aa3825234847519a52b6a4599ccac59e10e945eb7bd579e0c98d12aa9905ed85271887a974ab8f04a783747caab69dcb74eb00a87eb1651271050e74552291b66a29053bef5e49690d4eec7b7bd352e82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade +ciphertext: cc16437e7453409e7e200c26909b67a5b0da26997f8660fea78caec9503c6d1a0faf70f017ba882f42d9f8b72335b4a3a30ca14339fb6f0f291ab81d13f2a18d4197f1d5f72fea47cad6c1d3dcaa6e4f43933abf3be44d98083d4a4e34e46b9844560006b42259963945e99ea39af5e56d6299e4e18b555729a12d16779359375d74ceec3b24ab394a86186fafc84a4dfe20dc024527450bbc57f2b1b0fa88d4a46cd21341c7efaffd5a05da3e35260ebe19d79509fa7067b3a498c439f5de384b0416a437eecb7cbea64a6f4076fb94f7f8dde4ccb3743d1b3dc11f7c866e637ab75bf8099599c0233929519a5297a298c95a1b6a3cc3fbab718f1807065106bb290be1d61d5dcd5f228f8355b47058095f599f9b34a3710464b7e367c58f34ac6cfea3462491c78667cddc66faeb43ca86fc1c082cdcdf9139ea8246b871fb5f18d82776ae4c6d73104d2e4a1a6bb11cb59fd39ef66f69a99dc3ece762f9f4bc2303591b0cf8cde08512ba2f47bffafae181ecb64c4818a64640a4bcca3c13e075e82d7f3604a0714439297243d204d0c99f77c804bc3eceb1197e389122021abece24f1f68b531e3f56d46153ede5a3a9ce28e172ba71b30ae0cc5ed2857286e4d8cd977f6a939af4948db5c89dc19513a21ab4feab4246e42bb61ad21de0d23bd9bc2eb04233a27a81f5e5e487335dd4525eb230fc827c573456e0fe77acc292e5c5efbf38313899d691b21e627d699f50089f987c7227b4a4d308ab2842b52aad8b020f045b437e35d9de9a7c273276af986af87023bd3eb59d34d6216c4e54a143b3a678f5ab5a466a323ae973c9231d595b8cf7285d32653739192f7f9c0583301f87d675384068102b05ab76f59d45d6155b678cb2776115b44b5209bf7cbee2b98bc55fd8cc5049e419b35fc9bf23c118a5f30e017817d9c5c8c8e1fb1af2e40f5087b182cc2d313a9a7defd25ad69fb8d9a4f3b6d0c5f65da88925d0794c99b9f272645e88ee81d20b4381750fe8a5a53d766da8d054b4110bc979f2524bbbec13cfda3dc0aa8417bf599128c4dd8db36eae44ffdf6102d3e1aa56276b31cd8ac90480fd658035190f781c91ea9e4eafb6f39a24cf72096f48530542c4ac137ad4e7c4a207c82905ee55b698c42a84c6f5838938457d577dd6e3640bacc4bbda63cb0a2b8299a3a06b49ca7b91c448bd6b2926b139e3202c94108b0ac240fed20a3d268280d845bb635288a07f65b019a22df9f31b5b4f228be8bc92539f284c7a94c5e7d75933f557000b75cf2f256d2a32e4c53c33419a5a2d71b635257bce405111a95592ad424edbf7c5a5d175cfedb0f51550cbeb07ce2dc5b148e3889b3bc3cb15f6630c2cbb6641f10faa58a945414cacdde1dc9d5c578d526f3cb2e23491d69271fac2deca3d78cd21f53607ffaa9a9deae490f84a110002cffab17a12c88e07935fc95fbdda51fdeb372014016081500c927c227542d6282cc8dd7d708b3e834bd3b73137e11ee50759a4f83b6d311046f9cc198b2b618dfd5debbba8bde77eb6636985238faddd7ab039cf3e7bf1d2bd21596cf6c7ffc8d0a8cbc0b14524fcbc6f3b240293dd1c75d4a7c9f241f933e630111c68483f9bce89e1a7068952411d6811dd8a0b00cf4664518f6695107ecf569a741950cf278d416c8d200d434f6d17ffe98e7eba8ede594b9ce64c3f4763f2dff7ac81290dc18d6d5a5107995bb7569b053c7c643846d5379e71044ebe486ef49e48af47ba5c520af0422a6ab0c82677f62ee6e9c1430571bac6898d3b78d026a04513d036b855ed51d13047ef6193beb15490babe0567b7375df71b2311a501a14a57ff376bc465e1082cb6f2b9bb1b6ae778130ccb7d93db187d6c79fc6a506d8b2e1ed2a33af3901bb5da0cc2bbd04fa0d10c8f3b5c2f1ff2e790766fcdee2b62be2265a40d6687214dfb225ccbe572f586d54b2b145b0b960c6436d3abfc7c3360df6525d10ba48bc5d6fd8b066b61fc151634689b20d20cf958d187532e1208179c563b9f3b81eb915a0efd8663477095a01274b54a899a37d0ff662e8a3149edb0d8e59eb85a95f3ba34afa14c9cb849466472e4c6b6931e9863923b525d40df418a424618ccb46c8ced0010011f1ebedb5e669cd5655da2bf518be53a42d3ac480be0d8b6cfa7665f54547d129aa88ef6ddbd5ca682735fb075623557ce79b8f1 +result: fail +shared_secret: + +# Private key not reduced +private_key: 2cb6fac104dcbef551a3f756146d6662bfd4ebc3a81a27dab0f8deac75d17bf3add293db80ea56743a56bbb7b428a5e050844474ba8aac6e912d35433a679c687db3f81742156ed215268eb6be4411e982f86fe92c649b61e559bb189666d98254ca913edcb22f93667a7d566edd6fcc06bd937bca44cad15bc6892799f5fbf64f1aeb93ee4a7bcf8d93aeb6862009c49f89cf31e74f91da8a206ac4ed1cf1f8ea9ae1ba7f3ec59dfb5b729e83e7287dac90957740068b1fc4eed528c73e3cfe632f3264dab7f23b6a584cfe0e4bbcaf9878384376c23c38802c5753da4688554a2e9843b0dca303997452ad609cfefd73dae688ef702db3cfb703504fa7b3fb47fa5993e267a8b9eaac60ed3e932c776908df9be988abd12d8789f457de07e40e6f8b4e694760f9883e197475f436715dff992cbf238e9aa28ae2fe6d470e1bfa5a8ddc0528758acfa85fb7f3b5c95ec12488f7f5d3bf19dc582be12f854384ddfe9bc6937496f8e0bfaf8747e3e268c98fdb5ec99db55d8a7af5b93f3e94be8f5971c8c635917e5d09d894e078c07fda441438db20386ad6c645df6bf1fe43b9417eddde4b30b2b4d1326f7d68a47045696ecb1d8e93ba6a370dca7cee4f54346e9699331e9fbde1786bde2886027a62244e55649bfa52e3673fe5653cca7ffbcd7acc16d371d67a581a529d0bbe8986fdd1763daffdc09657698829348028c5f14359f4996437ebb092f64e7dea7c88fdd3c874c0542fd0e8163a999ecba7bd75016ed06914cf22d9508864ffe58c4f6965f5647d825316e22aa5a26963c66ae4ce269ce80698a4123954467972e8c9ab44545d0224443ad83d3d7c48ed15fef5abe772e8fde388ed723e97e6e739e187cb4ad8b8b9f4972fdf32fa5e3b04dfbd0f84c2d5a5ef302db01e46fbed15ea1278bf2a185b965e4814494f576b56418c9d4de5c62c3dceea03a1e86a7a7fbbe8a5c4bc9ed43c8f46426a3a853e6ef7084ef5bf45e0003e65e81a726d934f3a279950a675f0c3c9bf0bc42a574bbf2ebe7219fed5ac8323e44cbecece8874d31838a7c43b64e9ecf8a657bfe127e1d1fec5d417f12f5938a8fe4e82d9353173bd4d94621bef9248af328017d78fb5d29146f90d58d09afc39720ca4a8b8cfc2233dd014fab16f5007b36474fa370aa6eb520575414e54a117d560ccdbbbe9d60dbaf7d5eeda13da8fa0b676b39e544a7cebb568fb08d761162ba103094df56789f76c8cae2b6637d58392fdce022c9f77ead888d5d45586a0c19afe183db3003493dcc8bbabfb359a39796ee578f5cc67fdc9a81756eaa5296c5d379a58ab6f7baee115fdbcc39771633a6776965816384e5ddf7ff25dea898db2774cc73e73d3e00574e34e573eebf282a47c6f2cd3b74a91ff4ce0e53d5fcb86ba613c747a69ed9aec4c90193f9617431af4689d1e310025b92247c805487de6d8f968938e67084a1795e1c717f2b28934e64a6e4b6ff3105c3bb24a6192e9f16c7f32ff0764f7d48507b84d72bcf236e9fc6a7e6bb6fcbb06757249ab3d7bc5a752fed4c9e5881fc4675b374afb7735a56b9872164c847493a5dace7a855674e9d0928d9109d5f4289ccbc4143a2567a6cb587045fcfd33e93ee2d6dc9ea6a1a40344613a49ef538a41753a41d8c203785d392d7abc4df4584caedc4d4c8c0661d114405d256bc16e64fc6ca2b8e7eb1e58ead065462128327adba3d767fc3dd7ea7589e258a5cea5c65a71feeb0eb93aa00f7b3c9eaaa58a8a50b6bc2f69d4a09e5404087ae438dcf706d4d21dc9eeccb0461f5dc22b4c1923c83aa84c779a6312888ae8fde9b88e4d62decb6635b69d6445a9edd5b4fba51c9e60464dd88cb3436cf73f19f4febe1acbc013b2e844ee3986c4ae156951eeb9d799c45085e953eaf240dee68896f40579ed922dcfe4fbf83c99b3e39555c8ff46c6e73119f7473e17d9f979499d5f630f24ddabc690beaa91196e51e5865f7fc85aeae9c27dc3c03d3e715303caba288f95c55bfdf8d63759d2d005d1163fea3d3f98dc6da2257648c02fcefff39ac0f9f016e7efafb8c9047f46a9aadeaa4566a05bde7b8c4dcf8abea707ff214494d4176920858e9ba6948778d49adf7e2ed56d050d45ac77ea364848c0b4e00fd4b44e2bee8bb5914ab89dc8016eeae46e2610a5fd252102a480cac2bc6e7860620259e41c64591584f1e6ce8e3312dc8862dd806cc2181a18bb91fb184dcf045b030807a5023c4b3779f14a162e0938743b78c71493beda7826022e78ac100e7892fc104d48e25ce92610c072a3e9e8208c93cc225c916a2941c13838eda382f311a809c19b9ca60f188910a1a1bede4710b6b72127e48a5454a457c8037439572c558378cc784554171f6a0c78c676db8bb8aa380357fcc1f61859b0ec72730c10f8c3932975c70e6329aad34a56797a03c0297fb4aa6b97a63be19f5ca6318d0b2c8b4c6d9ef808ebe364d0a41a82dc768be47f44f300bc9b2e4cca1050e21a9919a9b65a07a6c8bc1ca5622a441117a1749211571c462a40c94c3301081867b3a8957ff45c1c3f7c00097a35af93438d74c78c061c2d645e7f6c3be5fa6da749085dd12461fc517e0c28baf93418978772e4c723c071908915a1a5807050c57d2a3d56597b1e1bae4b437632a2522f314b39fa6ab7a047e12b6502027e334b715b5b0b17bb76ae608acc0250d91a859c8c448b27bf4c44b092350e260b65c20c82588c8c1ef25affaaaf150479e80801c82cbea73a37dd1a7df6d268a9b0c4fc753158c39ea4e90960c20460804329f58bd460a37357ae6515bcd505c7cda55b2669017bec3d51816e7001b0a64837f9e07ea26735e830092a648f828cb3093228b98a0c92656c1a14cb3a306929c6207751cebe31aea4c0372cd5c06cc637dd9b6894f00dcb3796d09ca87884412726a25bfa9bf6eb613e1a2a19a196e1e1634e1ca0347a9bcc96816923092961b69dc0c013c191f7ba4fb0b13ce5555e8c1b07d8568722155287264b5fa990e92603aed71df778832ee3bf9a767fa9e650420a14f5ac227df497efab89511302d231a521c5353bd425306a14b7d2a566ab3b32aacf353c2b04a148e4c93c3e470605067dc7590722c452245b3d750205d2c0aad03b0e2ec535bc6cc3956132e329a980c8495d765ed1eb071c58680a11859c3cc0b1e986486a5b543949643b83452c307df477685a4d0a70a7528a55a997bea46780b26252af157fe5d874cf5c420b5b1a324a932ba52291428a39672bb359abc4b54bbfac608a0135cc99a38e102da3e088e4ec5c47984a636c7cb99a6b6304cb0350052618471f716be06b899087aa38053111e35a95965c04a7c42bda2319598819aa0aeb5c39181079f41982e05223c8e89abbc32fc1487f3cb99a167ba694b0668a5525a88472439c89179147ef831022b45f6b8553c8150e32b5421f75291c830a8698a916406807f201141a0ea1cb28255a9ed709502ec7851a56a86cd3b7f05726ed6a6e50fc52706104e829b02f7b61a1856c9b44b8d1214768851ac190b46b61c053c371a333a95b7806eed16c033790c1563fb823204e26ce3af87750ca639e605cd435024336751ca0bdab99ce5b45cefa04caa29ba33b4998da0aa832ec22551821bac055961acefa077de544bbb80211878c6109b512b6b4850b5a8d0bd9bea6978a0f920c1fe8601e1123a98aa23cfa30090817ee849e654a0387a185171a43047758a578a02ebb557904106eb3096d3c1f92092f02891f1d3b0659f284188b7119c14896688ef2bcc8086c604fc140a8fa24c9595d020269b0355ad9a44cbd803b59010a1b85b12fc785ef0a0789c10b3a30925cf155ae8682859a8f8164cf62fc08df577eab2071db87b029a16ec90303f5b97117761c5f20033110b1bdf7388895b30aca862f22adde6930430821dccb2b1ba4cb923652309b4f16600fc9fbcfaa8553cb45bbb53035cd28526ea8449844ac68b87aa61047b94244f126bfe2323af5f30bba9c1b96a426a1d84c2da35fbc001e20a517d458b4291cb36394cd9a074e51d8a45ce623484a3aa7d575977242aed535d46b74d8645aed246692ac1b8b055d717ccbd59769ff9617bcc3aa7bb9366ba51a736b2ce79b971e0c204ac62fd09755b4e4b233e94a9cd3490f4049ce6cc96c7c0fa1254c4eb67748b337c41c473fab4a944364531a6fe18652856797787c804ce1c59462b8d145cae4b97232440ba99cc3a66c1e019b53fdb272d000c85ad63d686a907a31700fd4a29e5936a53a4f2d2486751851edd1b70115adab07a29b15594566221b329076a5a116676d3534044965014daa0d13da178581619dc06df40a02750beb995480eee94ada82049cbac3e8c6830334021c22894085dbc8382fb43cbe318e8e6ada9955de950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 +ciphertext: b0175b6f547277d58f329d3b7182bc9a1d18dbbebfa3a5e24dfb783ca9842ccb7c3b26782f6162d9f60971e78af2dfa1a7d40b181ff92872dbb387a1e9d4b962703c7e42778552093cd622686c4b12842b5edaae5265d802e5c2bfb4f4031609661183a55027b4b4ac735a0c3d4d9a8faacaeaef4e0fe7964b3112877d7d9b1cd8923f30fad9f70b5cf480c83970b0aea28107fda48bc67cc0cd00268037004d053392a2522a0b2b9a08bbb678167c2717d9252f19d9c5c6c5f48068ea0b7bb9f0db9b4801eaa168d398b37cc0032401f808b20c8414e9d4ebbf573b1a86e304cec6f10980942c56e18b1e390d43ad4149fe646e0ff8d15fe8f41f7edfe56211e2e08bae7956015b961ff065c06ec846e1ddbf37e77b7dccd34ae270aaa5f01fd92530da96ba73e2c001c8b2ff8a59cc1c26380f796a417959d18c1c97668fd77bc82fbcbbcf1a71f95ebe53265b477f9eff4bd91dfed2cc4b3696f1d6139ccd74d13973acb599debcb81dc3723931987c969da37d90d196ff052c5a6d223be15ae7dc4a90b289a7e46e964ae3035d73d0f958f9c4955c9d4ab38b085291891995b0f8e3239f1408540a8575acca7f0da5d3afa4359a7a403f7c4e636d7fd1a95b7571e430c9e44c14acc516f3eccaff00e2e2fbe91abbfd0e96dbf74f36675735ad70f3c97d515d5d413780f96fe8da72399382e433c76b6deb0bcd215e5ff4ca04968fd7cc0470c10e5d22e00800069944f2bc6ac4988f6eebd35995862d530f3b8478f4c13b8e2dc11128258901af0e4888b97601dca5da385e9a787341c9d74ea1ba2d28b098a9ce395d1992c5ada71b9a6c1b15e20f57da963a9307a3f1b9073a2d9a990832f16ca3aa50ecb5306bb75713c25798a8cce4c529adfc3377e44cf9f10262c3295b01c5d3a4079bcf7ec873524ee7dcae5f2a8a42f5b43205624463ecde93330410c410dabc0eece6bc480a61f6f52b10ee14c8dcacd6daae06c4eed37e3989432490363282a10d276c484cb1013ded7bd58f204c63e78b45e1889b685fb5b37110b5af73ecd51eaa4eed3525adbca8f6d9bbfc19239ec367854342bf02fcadda8d668a30f709299f184c89865038b445ed2079d675648c73e40d90425d787d44e539cfb229bf7dd039dace2f8eacac46c410a2277a93ddd34de171c93e504f1bc3e45cb468cc855228eaf4963a63d6f8f747ada4928b0423c69adc0f88b5277a2decd0eb1fa44440138388073f6ed52309fea034bde1d1e08851cc11a82fffb6b8f34eec75eec9c6237570861a44d679c16594e4031fe6337ca398272ef43176a082958b3b677f1416a55692ecc6f16a6ed4f9b5a51cf2cc5cb50666121ba01fb9bfb89d1744403700faa063f67006b28d579a685f16a81a5b2e87efe0614094f737c9c6e341470cf4ec51580f1023a14420fdc45f83356b4d5d80ff53c85d32067a40d582ffc87792b5b34da52510629185b2480e841f8714ccc7b5b00259913936b097e0dcb6ef2bfe42b084359d68cdc80acdb206afbf419a5718eb1776bef7aca6950519f3ee39f4021af387c8f251d3913683d1d0cfd89ed5ed44d38ff47009220a5b7966a760ac78012e5bc1f6e5684bf39cd0c45c28e0a884db323d647bb7cc202a16a12484b226680ff2abe1b26f8a74f697e4fd7c2132bb0318dd082d3c7cfd7fe279d1940a4f20854bb280498d0a3c76ac7d9f10b9a13205d278d6bd1252df84e75c914916bdf1e5352ebcda297e77aacc782ea4717f07a1f521086cf4debff71ee155ec96a22fe759aba9c0f282a707a8483a11a37df4a947749dfd434359884b17eaa6616fa80dfed1b62f5492a51bc572392ca7cd0708d37a8fb0185202cf7a850fd1954e4cbe7f2973a2874ebc2a2bc4d1821e2600685c0667a97baf5bed4b7a222e9cdc556668da7703da0f03b7b904f0ae942aa02fd0f22dea1337e98b763917c6fec9b030225fae085e050a5b834054fc69d63f72702b7b6aed8467ab29734a7b9f89ad70028b19a25f6ee6233b1876314c7bddf805f55e8a79edbd392620e1ba20cdf6f78f75d5bbdda5ca4215b312cd4ddce4e5c986c7f03b99fe0c835db9e199493b0d54bed56f5dd1e52afda6821a2e6df36f6d032ce33075088b5d6aa9f9c07090dadb5350408804cfe5b704c3e1f8dd9525e7fcda26c0c79562b670cc1158925552f28be8483310f4ea53df0d +result: fail +shared_secret: + +# Private key not reduced +private_key: 646d495a06e4e1c6b526a64a23cb3052fa4fc0198a351aa70da8f285be3ce66384edc5f2df0b38199baa8265ca96da7040b7f04dede62ab481517a76d9b94a213d6b05de9f5ab43147ff6c4f43c230a4e31b9ca5865fae1eda8b9f6f3cffc533e77ab7345790a507a3edc589a1fde585af91e0a9838a2f4ac057a2c7a49aa93cd12f3d68fcf4e6936ace78967543053542faa399a8b7d2f5c483d9b09068d67dc4e4b319407dac97a1045d78b6633d2b690a77510d996abd44c972a37b37baae718d86a4143926875e09bae5a206b3fdc69562d645bb2e3a13c74b255d72a258d45977fb33ab4f1d969157137d85f481828a7cb71aaabbf6b54874821b9b77e41caf849874830a742c887faf9e8ec657343bbeec8dbb6190d53749157e6277582c589ad1d9a33e84de260ddcf3dcaf2c03b1a6a64ffccda104fc37a2c34f7b8c56e06ab258b7c79ecac3eeb9c2a88cd2171aba70b84c58d474f494e241ece0ae9645c1c7e163ac3053a8b9e999309494763d5d354e235f253b87af35818166aaacf85abfbdd56b3ca078a6ddc54c599bb435080bd7e06c968964cca2acc72a17c25d47a6768c512836a7ccd3cf59bd9a025beaea57bb270ff29eaa3f473a367efc8bd189df576978ff159f283af18db9d6b506be5c63c016a55d92c69999e4cf1e1730af67881deaf4305d5ff79cf42d3a3731cd88b83abe4f39bb628a4efc0ad4b0ecb8ff98c289deb8e13bf429263ffb0a638f9665705be770c4be9d999f8ad6ac080671ccad47378a60c259bf042839ba39a11f94354dfb8d3da789a489db234e718a3af67c7c8b5e2af1791df9723d6d08f360c6a4d044af5b4ab350ae3859690bf9b64cab122ce0ae15ce4d5e475cb4794dce8118b877d1e372320eba427fc273cecdd1e33f517fe2c5c4f1b0f631dd773ba69db894056051753ff84de3dbaf6c597a50d10f3b2ca99af7aa5f218971b5c8845c6880146847175e765a2fc6c7586d88b65d017572d89fb037d7684a86a517c453fd36ca5135b32019fc36ebab15dcb82b7dc156e6657ed35dccf34f94559b92d83f7d56f77926c9d85fffdbca5424d431d61648a848bd8e36d179047120b7fa0cdea495ebbf1559d8eefd363b86892f783e75369252f9fa85097a2636c8f284a841396d4cb39f8b247ce1593fa60fa6cb5de4cc4d36f958e0656cb9336cf4ee345b1dce5431359dcee9526ec6a42d36f80493b6091bdd5018d8bd29a321959f620ec18af6739228d4a46def5858d22d1be076beadb603e047786c9dd345cc33a12fa98dfb9d9eb724ce7e853b5f29a00f4331a09fa14999526cc7966d4cf5bc24924f5ca64de9a2a5c69965f95fbf29875c3dedd3d54a1ed97cb7039f8d3982764a4e964c45593e83a16cdd8097c033ece44bb7ca7d4483910d9085acfa25c9c2b1aab964d7629bc4f0f336ee2e4c76afbcab4137f155496c4c09e41e7e95ba2f8ebc6e3dc7c4f541dad5e39ac09f8edfba7f978f4395b883bc6a67593a7361e4179b7c95945513c28bd488f94e46c5c8956c5be8a0da5ce7a680d26a779ea5ab1a046cef3e91addfc655cac8dbd9518528be45ed3c1bd758cfd3dd9d163b07cda60f6de3f6e646d356ea3993b7608b9edcc65304f9fd0e59b19374732555fac403771a657b92fb8d4a57a425fe3e323b37c56e83b50e4600b760bd44c5ec1d99167354a5d3ead377a5041c6ea00bcba67be8cd457a667e853db6a9104d8ffdbc35fe7bacf17afbe625abc9473f58cf69f10f9844976475f484b419da545f3f0776e6908da708ab37e0776c0a4b4fe02795074ae9c026e9edfc36ffdcb12668851c43c2ce7765c15da46b0f52539d4699df427a634ff52ec45e3de8772bbbc3bafec49799b3e9733e5bdcb16973e52aef43bbe596d64a92d6e57669fd6f3cb339f76f00ef86107ae76f45525a0da6b594b67337ece54499c09da5c5489928ca879e93b3cfa7917999b473deabd7eaf1343e65b95c8b1f6736bb183fa14b9d1b36e43e28d7c707ee6646db1bcfbe6db555c1dc907b794dd7ad7c505451bdb9dd2e7a7112636fd769df49edc94ceab1519d6945273cd375b82573ab5994c2ac447f5d53a3daed4b4d694f5e8eb54e29c125f461ba056e599674b6de5b026e80212ff17cb73419d431e03abe2f7a733c9c0d0a05b6ae91776032105bfa99d149062746ac1fd2ca81db9224518a39629a36d043e6a398444a055a2cc28ac785e22b9ada469d2e3491174a4e16e11824d32c33326f7cc2b73d417a7151496fbb6805a79d5d974b12f3c0125b5d7bfc7c6f244b68e2c1ca8613e891322261b4789898a1f858f5991b2b1b177769aca1453c57c43140548452f3053d3b55fd2c3062a0b11939a3c14a81c59432616a5700c775fe98c6fb88c1eb8277c469be42f541dbb79808479e0cdb11856cb7c1cb6a5b865469bba549d73cfe581bee85494dea28d6e96a5f04cd65e561ef66a2482c806e39257b9ba9581421708663bf0b45b4131eef3384eb53b8733c4957937161c3ccacea5cbf91429e87b8b2b6a0aa44cab94bcd02d14cc3932c3ee58b483b1d11e5243fea0d34912b8d45bdf48c1358db3fc163ac081c23ca6c43919a649c33911c5802e2407e9fea350c3b64f302c5489005ec87650de428e60b790489a17e96b9e1fa91b33bce5f4b8d8dfa1610b39fd2858c25b898c1386c6dc021bd3414bf213719867f8cdccbb4d2bdf12207860a638bd41a05b9697a3bc901e9ad0075c080243cc0cbb3d389977c522230a42125b08d41839986a60acae28bda183aacc32dd5cb149af2bbfc60b0d5ba8ad89b1acc0863ceb24faea37ef3f60168cc96d766642f07a116225873e651ef693f2bb97339acbcba301e975405661b2aa523168e06c86f9bcbb42b5f12d79c3c379afcc37dc4995b11a4afc3578a30a13ff57ab87f022fd5c3ac5dacc3462c7e7edab63b889c22e90d685733a1a79ec336c50c18a5fe4408c2c122e34a60ef56a78bc16b78c3c98ed689e0c9276697cdd8aba667109cd911b77e6930c4f58cef1240c1f7005a7a2b17390988924cb0604b4f897d19c5b0e4a557a6a23470bc71db15bc99248d42d9bed4117652690124b1bebb438473619c4919c6c0e4071ca990b9d005eb287b15126e5c3477a98669f0856242dc073bb2673c7c1b1485799c300a0648a83142b95a2377d7e2b1d994209184309934c914308b7371a307a3bfc825958a98a12524b847ba5b61e5a279eb9f7cab5ce030c45ffcbcf919a6ce1059dd7c6aa077c2d2437408315db32a800c2099a92ab682fac6461896d583007b97af2336b1e6d061643c62f0b5122d48a230225128c52863c9aa7837ab4f254f92863efbb3b379f87e40071cb6c8b74ac79af4ec11da6c028f1caf9545a7d0a984bf6ac8d4067a7ff29325daacd3f9470d529f02b00183586011da8a0295b678b18d7572cd4f081317b92c21803f613bb959170ad3a4cf465645d3e5a1dbf672013bb935bccdcea51393bcbe7c975d30a9823667bbb155bdccd14ad3d8b453b30ec2b0cbd703485975cc571530b4cc521693a9965139fca21a90d57397f34c46822ea0e0ca0f56668b8692127bc93322389046c63fd08ff82b67f9778964054b49ab0dabe24628e771627ccf34f46c6c820e9d890b15f396a291a98eb14a23575952abbe46374c74b812aac6b9ced932c078ad3f2a05c821b720305773d070b8c86d7686c53b81ce241586f5f752fb4a2774152638f04156a0b24b3061141878d5759d12f8bad4e98aa5d41895b91e122074b31aaadc30a1dff707c32aa0dbfb2fe0a519b4289942e99754034d65d7b9eb5c0087225048b5a293038969a944725a23475b0681ca2177c5bee023bb7e0abe99a630b5babb5f8a67c8117fecf20c1187c338a97b72c1674aa302c3005037631ccfd51a5b10ce837911d8d8372b9760c0498b8ad8218f832fd8519476ea5673d6659b558895796e14cb5a55e7a3d0b91cf5a6228a3c93175a2ccb06c26bb00d5224a402f119a3a42356a37cfd82162c65953b798d9d96cf4353805ddca537a9504b708d16424a3c6209c2d738e25c357256833dd14375a65e1e32868bc4c4e5e062fb636e27f4c746eaac0f641330d235d909a128c890e531be3e0cc307e632baab0ef7684cc687bac9b966efecb85ed1030a1b1e15b71be5a263fc64c320b145cab657a14c2749dcc9961952ad5489c6485f208933fff0203f3c31eb6a389f072cc3573166b9349ada4d7dc66bb12c18a7d96a86f93883f83822ec0094b24751388a51166da6b24a0b526935817e1ad73b4403aa3b10b5d1822daf198aa848a73c9f9a866b634f939c2179ce55edfaa1d5d48cb3127f0fea3acc7b163dedc529d14502bab03d1b7fc370f2ede22c7190bd47cc88028adb3294029e264abe2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 +ciphertext: f3637bafcce8675a7f2491e7970c65625bce13ca85362c62a0fb24cafa33b0b388b68b12962765da682203c46e6997d4c9c74f13eeba96273d3fd105352e92fcd8f0a4455e23444811c519dfb9aa9174dc6719a76bb6150aeb243e2166d9a63c6bdb9c42ca73604ad748b20ee8d4bb2e414f7a33337bf500a8a354b56211497c6eab1040580215f002f97371a383cb546b509653ee598798b1a9c2b2391d066dc45c69af2eb07d7eb89c43f26c4e553afe4964e0633c3dcb5a6acac36ce88638c17d83cb6bb90f24434c0aae0f302d7154fad1e698a1769d82ae7f90231cf5ae0fd5d7d02503505b6e12bc27ce6a6283f751481a6219d2b01f2e00fd04341ee96a4bd957d682c6b413d2c53c81f6ecea90aadf4482631a65d393e6a80199477b5f808e83be7eaa7b4439c41ec87ea6c69e9a6ee28fc9dec477d7a66744f71ea35cef0d86fb90534a26368055840320e1cfc54ab65fa7462475b541f19b259c79114da9589c8caf1578e2d179efe5a398936058995701308ea61ba4942bd35b36fc60371888a8663ea8eb456f654fbc51a0f701e3a318b64700bc8545685e5fcbb01034b717b691914fc7de9d1c229e16a759b3d25220ceaf72c9c7b5dba5283154098295a08b95efa11b02d7f65ebc6a3ce97b9929456bdaa60854481c6c3d4b851d88beed43b56b0d65533d55d19bf79ae57bfbb0567d4dcaab2b6cda028dfb140c797fab973f5345a55b8c3d5b10b6a94442e1ced434d1c37ae2ec797acadf124330c9a04977b29b0e76672f104e918b2242e0e4a05691bc3ca663b0327a38bdef7ed38c082927acf9d9dafe917d1f3c1c6b6e590206d12c4b0ad7efae9d4e28897da9811bd1210c19e384d9ea2a0b93605c75430edcfc66782421771774072843f8d4231e3dfbe61c5dfd99ae12d3fef73117d9cdf6e7707f7560c212fafe1104edbfb36c4130941b9d6f5a4d067255db6e6bb3559d50a3cee2ec3b57b8a379b93ec32ccb743e7588a3f6dc75f334750e4705a03eb7d75ad766db7a1a88ceb2e5047342a37937cec465ef93bffed2fc238284d367ff320b466673a01fd485ec23e7e21a814c471fc60aad2de49858673d8a5071d00e4b26f4709461b7ef5a74e8c52534bdb6e80bd4dfe09f2c491b20600235743d61787e93ec601d33de9a1a36786827584cc2f33f04c6acff0637b5eb845ed6ca36bc66a2edfe989d2b668268b78e1ffdb1fe9b737cb576385f2be449fe9fd176736955661a330a6fcfba361dd4935715128227b443518e6a27c421eb653168fcc21cc6c4c268b84da4c1ea3162ff85a3754064f4354026f8d99de2a76c99c52daa051e032e766ebd889d4af961edc0e497ee31021f3a38fc5ad1d4ad465d81ebb281f54b1a8c22040ce0099bbf55c9a3ac7c766d65c8cf0765e850404de6184bf81399795d2cab89cd2b73d747903c52140a90e2ecbd3de04c1bfd82c8ed5786b2a409c608568bd7b773dd6086021e53287b46ab5c26f9c04a3157912b079686b29e527bf65922e3b7498f7781978b12da9b938e4f83f005555a716c494277b1d1af716724d35e72ba387efc5e633d2e8ef015a02218b11be67e7e7bd491c7e9c198f18450db3254934756b8965d8b6c60b65b18c12ebe260202c044a40650714309d39c7f5b7d28997cd9f77469fcb1a7a5bd237693e16e6e4e2c645fdc77e859d2ee580ec4c4ddf475bccd6e31092643e62998dd523366d2b28bf4dd3ef54e023544156f0fc6a86d8e749551098ce1e288a62baffd642be9a2499b62c5858250d87913c1709a9a8578a430abe8819622b1d9e800875c6408356b597c3d9a89e164419b6ec3edb03d93aaec5644d3b24b26c1558775ce5e1773e644bb21412e43092136e3cab817fcf89bea3b9439026e625ca19018dd34028afac0665c135b1f2a5c2e8d2e3e34b5eb7cf947c8aef9d03cc20d6d22075eecdc9a44df411c0ccc3d0fc0f32277251c38466cfaf28ca47824194d9befeac21b68ca89c79c672b21bcc4a676ae015676bcb5a93f6b2f22ea25f4422e2a4ae637217f33345ff381d1f8241c251ef3e4be839cd4531855413e775e81d1c0a2774a68a15730d4149b1749471bbacd68ad66bd50feb37e2d97b73e001776b8b46583e9cb581e7095af3a1ffeed83798ba211ab22bdc4bd80f7e5026a373984cc20af678b9ffaad3be3d515a914c501155257d3 +result: fail +shared_secret: + +# Private key not reduced +private_key: 59a9e74084c2dbc5e1a7dcf500577f288d9863db3607c863f5f5d902efbe2b949ef9b55231c8f704bfd0b1dce81f8ee9c0f9ab9839b795e763a5e7ca3b1fe6f7bd80f0e7b52c9ce9615eb5ddd86779587b92cce0a16ba470cce15fe733c1847c68abd6cedfb3cc28a95e9fbb47abd5244549f5d3e14a5eb873fef57c1dacf04ba20cccfa045947ad73ec4188ed0704c6f469908da6af135dbd0487fcc6c45145f8e93b739de44d397f1cc4322f7475ffc15c634961b7af3dc645c9278c8ffc304ac39d1933946a8e399dafd94aeccac243b81b698c2c4985e029eca21f6861d5a5f8eb61c023a5b38489d2168bc75a6f8a2fd2d734a28335add858b6a3dba95c86899db979220d7778adfdf92db4d64beef40bbf87a59fb206620025e1a75c323ee3b2eac47f51ca993f865bb80954138bb59cff731c3bf498a4d129746c8d6f97d2bb5aa8e75e366dce921dffae79543289c7f2deb1850b8cec2e66105bfaa41df8cdfc6a5623c1eccfc8f8dcff27345412e9da9a94d085ecb68214a13444aa3ab7f59f35b0c5cb9e80aa83ee2ec715aea51cfce5b91a578554f94f565fa5c640edd9bb94d5f41a2d9006e9439ad53cacf4946567b80d5ae1f6bfcef384dd20abcc04e39aada58cae26e8517fb98c64b7fb756eb11fffd055545b679bb158f9bf16d6558a6ec5497ea824371ea95312f3ea02036179945a599454f63eddce7a3610055bd6db8f40e37502073824eb699a49e3348660f4de45453d95183facdf3b4b64d57c9e69c6e6caa65f0f9a9de4c36a4fcbcbbe500355e0eada835ff5aa0024b36df8301fffaae086545b5fee834c9dea87e576ddad99ad562e3c56b38546ad04475a39c31067ffad7339dffacd2c39888a898ffa7d3d71147c3c9c476b75911d96e5f43c91390d3d1ea59e86cc9160f340a049d4c8774924cb8ce506e1ee7a97a04fd960343d23cdcb84f977ec08b7fa18c34a2836a215727157f100758281198cfc88cf2c4b4ec287c6c66955400e35bdbee29874b480d4621a4994d79d922f67c6ef8b66c77df256ab917a9576648f85e0586f3ef860d399eb66a8551a19a57ae7f86d8ddbd75669397f7b755deb9225732d5ba65939e7559dd87f645632e93ea2d6d7b0bb900efb9e71d57b84f63b2d6946be5a66e78bd32883b64c2734ddfef9452f5dd58c3d19476a4dcde4178eea1b8ebe761dc3d1183eb5d39391889d792d6f3ccf775e17483abde6210d921ef689a204565df8cf165e31c9e7c5569459c81b3f712a8b0da79b1fcbc9a14ce2d346b2e23ee77adcca95e4c6ab64778433e172e4c4bde45c7a4532931afa0b6da663a5b7bf186a5346a2c0ec9f928e47a1e66b806f89a22cfa6df8b04ecefe770f7d89bb7c13ba9673dec7704d57425e60430985f62e5b53c59ac76c6387f5f281889d968592dd6d7744757b6103dbfb6c4e90ca6a580c475ccae2664a5553fe7330696b12b3ca3eb7f785de6d2dfc5acc1be665bbb1d9ad9d8bfc6d81ba51f21e7a109b43d2c97250fc96351defe90e8e2ca3d0e1e46c317c62575beee2c850b78383da446deb16aeb67ad8a3348adba75693a9eb4d4e72f8575ad783d039e3acb9bc8bf238c20f5eb9cbc9818564d21d7465d007967d274d83cd3afba9df760fa87b7dd36bf5a205aede7fb3a514c8e26aa96de89f65931d8c079faf748a839335837f0a9d3c2dc9803e31916e97c6a66ab98f91a7d6fd7d84df004d44e36ec6848f7fe424b0290f937d6ab4a798554574a0a6b5894ba8afd11b78257f950c2cc679ce48a908dda305be0b765a164fa1fe8690f4c865a09931904a3408e665d60633349b72c235315a3fda12b5434eda854d7983334cd4a0864356c6a13799f023a89a2fdea264bed0a85d3c1eac6aaea6b12a434b9bb5d4c9d79c8ab4aaa216e1cce877a5f834d85de08874bebc8fc23e65bb16ca769d7df80b036e2cafeea4e3df59f68d189a595edd99a6da6afcdad7a615909aed5483c9fd00076f23dda1b94761e8b8399b4a82e204a012fe41fb8f768b39f6d086a24fada71aec9d8723aa786e4cb1bdce881742e0a7a2b0ddc288244be55ddbe81a90209c33aae8db84e383f84a4c313acae89a6575a3aa726b65f0d75e5a7ab355f967d5b771c85993a0c6d94eb35e05d4d9f3e47369bc82661a9e822624d2a644e1767de906658569ba68922aa5c18996c58b3325685bf3564518afdbb99aa67acabca017283bcec3cca9075cbcef02cbe57ccfc73581784bc6fc1b8b7623b9255c20f7430887c87a5f6873b8789de3810ee4841447d826706bbe47d6c4bb13380a03a532d240adbb8240847e6ed68eb5abb3452584b949b8889bb77d2bc87a11c4580919931509e8fb931b50957fb00b972c8f17c8be0e0565bd95b16799606b825e462059a701412ac2704cdba91ea269271519421574f807206d8a65f8b67f44117b4c742e7bf4209668cb013975a9317ee847bb09db3c44d8029e01c4ff4954d5ac7557941b4c12c60520785867cef3f77214805c96d8497b508629713064cbb04d0b9abe21afabb10f33eb38b6b3bfb34908ebf048ccb239701944fe64792b8a909cba14bbf50d03b858bf4a318b9860e58141b7f114b38616533c96c4eb25115724e6672ec20937fab6164aa4a9818acf072c90ea4a5ba34cc95270a330e2874d76a5e0fb085f1aba5917a6e6c3a50ae59659d95703d0a1e9c76c0f0055605ac839f70f6868bf0727496f38c4fd042226fb261ce27bcfab89daa192044462cba31297a660b191bf4440305c5235ec225018cc92480c19bccb480d03d08c470ab20c88c7a1b2a9f37dd7b911cae469de0c7f6e08aa9d427a8eb90af2649aa28ccf1bc19c0fd84842e5748f686278631659a5a874377347ea3894b035a5c139ec8cc0aa63a960535f8e3113f668bbfa9a67a82ccb03253461d3354eb81d0d112fd667a1f133c054730f28ab50f54c5416f65ef60b6ce8c86f6608456c819a7e10ba9232322e4bc73d8370874846643275622b3da6dbcaf9fac7001cce6d34565cbc6f34a1bc9ae904c5229320a3755c4a439f035b5f8a099c70a6a57b5e3e15001bfc19710878c5db0930b21f28603ea4087e0b30a2cba02118fa644331a81312a22ca0721ff266620bc91fe318897b77d3c9b7f9986861879a3a9c349e16c72a9b2bd645915fb05a94ba4c57aa72e93c3decc55597e664ae3a683274267f486452e089aaa8679234c2fde99327a60a81e687cf4491de4b90528492b6c46eeb7725d876a91987025af06895279635e98183bb0ef7267c6449913ed09ae1ba77bba0010b03b900863119011b1dd02aa969ba41b6b684fc3976c416342891cbd0588b5c6a480c04d7798820da67c9142fc07a906f2517a9217398c9611b0749f5556821d93368014d9d01cf2976af6bf492e2e59b66d3671e814e466388e2039037313ac690c3dc534ba77281613560b0fc9bc5a298c87b879835b386c6b0e1580830b689e7b005ae950d309c2e264556685c54c606aab7c0318b2c66d4513a707b8b5800ad2ecc1567807f28122525b69b7e1cc0d1646efcc1673a156429a205e4016887464c39a6543e722f0980b81f524203b45deb45184d35351be963d3906e7b0a98b49167a2e0bac9c7a50db62657c4cadf6985d753c33f90bb1a275be17a7342859415f7855384975775cb557a2eb92801bceb7f63cb97a40837ac159a37c2935157160d518bde11c1fbe18c32923d3049b50b50c2ae0a325281c7a4bc32022aa7835630198103b25398d613631860b70a6536bbc66ef6fc9ab856771652689527c5f5db1d1b4243e3f06460eba75c363715378c99019d213732804b31e30cbe3e93c6f83a7ec239560abbbd48d96684f17ed61c9dafcb55cb168e2ba1778ecb0166e7664e9412f4ec7353092fdba5cca4585d173023f1856836619e57b0052b07141ba9507b042c5d5b89ab429b3f237f0d80c5d4126cb4c59d9d19bf0bfa9e3eb42894228d13a05125b36d1daa647661905cb471b08405207469ebb35ba5375a40b923e6b0cdb3f1070bb6728a389ca4b89079467732ec3cd7a27d746850bd4908e401134b650419e639fba07d88eb2bbb755b2a7ac2bc6947ab8907c80a3b5610a771782daf790874563b65a1236baba0b6fac1e5f242919bb4519b637464565467456600882532457e1249e692bb82e16c7f21c370a29453a95600a069a54b0b62087f09ea7ab3da48348257877864cb080f7a39603e284063da75ec0b9219e515021ba46ca8c573b306e814245d45cee5f55d0e5c7e36a31166634e7805a413a062a7b5a7ae75783f97c505daa8f9113507a98a3e8ce6ff046df83fd23815de42eb44b586845b55b2d39aa000ad80db50ddb1aff6498e12eac2d5dcdd68be66c7a569b0153ab4aeba37a75dc973a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 +ciphertext: 12cf783cb284a6655af46ee13c23e89b13e8cacac077ffc171c51c3ab7ecbd38853da0344d2d2cae3137bd41af52c1978fb85143bab78f9595971c2366f4d6935124f9d78ac2b1246d12c51858b51379782d2a7d0d7f04bd476bcae1453535cd4e0c3a19023861955290626473fe8d1b60f077c9c79360c71e64ddd5c39fc56bfe4b85b4f565a6ba165cb418838eda6668db441839f81b0b8ecc56825cd5e64ddcc69ebb9241283281866916020d18cbbb5abf1395841c96d81bc7d4bb89fc62e6c3d9dd8acad7ed67f6ad572a3f8ab67c182acac4d2267e46d8577afe2d9b04dcb5d11e33a909439c444c694bd86873bbe6fd6ebc3c293cedff1fe356aa4715993bd716f614e91f44b19f718a467d8c8d345e9759544c3a5ac885b296ced708bffc6c0bfabe31db65f659502cf859114b3394999406656d903ad8dbb543288edc97b5c5c89a58545e3f650030abea8dafb360b15f95e88d44e7f5010ae2f9b111daa6023e4496055371ddba9a83db233104348472056c4c6f50daf5564ccbdb33ac8f02a176e9fc74336f6c0d0eb0f7f78d55f052dad641cf97f4681baedc52611db70a0065ab680586e4dc6827f4e5a913ecae5627ff7b2cd69f253b1d6587f9961e61e75754f3cde176107fed8769898337c84d446ce33dd1767afe323d930e82784ceb7b1c38ab00192738d9bda2b21cb1a14b71a2aff00fc778200d2bc5487d56e88278ab4d6059d8501ed5cf53079826c66af26d59a9ebf8f102164942709736e203a745fe7784a03abc0a776b18ffd23a81f79d26e434a2e99e65b25c407c2d1891809527412e384523a47f3990bf4fe3f9580c0dce5c3994e5c299bb0214516b73e39062f9054f743541fe824840bdd3631df12fbbbae6e1ddd98dc320b9f3d0645ba2f7a32eba11ec9049cd63cc90d9164ed92b945b459200a9fbc2c1e346c88b975e4299cc5a811f88f9ce9633695144495fc98ad1bc1689b6d0fb5b4b9e90a7a5a7ebe2c6c6455f8c4945e34ee2b70e82503f4d3161e517e09ac115f5c0398fd043b2c8eb18a5aae2d2891e0009c5bd9c18c63a8914ef64e4d9de132ac55ff9bf24648361d3339ed8541d3b4543b754893532fcf648f49532382a78fb037d218756c012e2aa99da5a77328c13fa1588c9842c7ceb2318f7c15607d10625f78dbf378ee1789d6885adb50f5c334a768f45406d15ae898621355b16dce505877864802f532ffac78e8cbfa920bab7f1061cf11c5326372506ebf554987db1f59413611c9c0373345be3e612b3581adfcd328e283c1f8881ad1c09cef665d1e668047ac2274ae2fda0c7045019040875de7208ebdf48fa4fcfe533fbb80abd5db7b06fb00702fc440dab58bc46a5627823c55e39a5a3178e72df204f8346c9fcc7b212e81d47d8c571fcfa257a63f75faa6f50f3957836d1e0b41e7d2daa533a8852f1d4bd56afa2c189d4dcac7df6440911f87891371ef9603d9df1fc3859d549a2eb94ac3365acc0265fc9c2686a2e36fca53073ee1b65bec258f4dfc9d5e341cd09a88de63c15ab953ccaa12714488e23b6ac383e8b1bb84a9c7e1920d080f0912dd8cf222ac1b9acbc31a04374ea494ef68283ff906d0ba6c1f63071a86dde361f66bd4f773d43f3825f20c666899dd954043dca2997533dac459ee0fd602a1c564637b1eb7f6f726806a6d1c9e22039b85ec37d2119a31046487e21395182345175755e5b3ca698d5e1f114d66a67353e232bce7a0f9407909b0fd87f7e0ccebbec2a51368bb3bfa5bca5e2227b3abf6e7d0690f732d708da63dc58b208ba34c91bd7800e30a5cd653b09b6103d141f4862e41a3fa88df43083935d50b85fbf4708c96bdddaa5c0df9b63aa4517f5ff87e86f5e31ea9b3ec0d3fc4bb79910da9605d032090787c34be9613d68bbe65dff2acfc4f89259fc61ddcf41aea46106de8e312f1432c838d1acdc98874fddb34610168332bbbc9da4fa8d9f8f41f9d64d384cb7f1ca844197952b5cf69c3f6aa3a981418b9b41571b1a60ba7a14311c5beef82f7faae76fe3c6c9ac342264d3261772ea71d785189d3a9d8bf07efbb3f01d84da2498fcd3e5f62d8ba41d5ac481719200002de59cef1b41439715d5b7e84f37fff645e067a32db5164311f69e1d177e42893aee3d7478f52470f5a62b37fab65d6b960651db061d05b3969f82531c697011e4438f910d +result: fail +shared_secret: + +# Private key not reduced +private_key: 8146c5713ed44d53e0993cda37686e1b65f40a076647ed41eca9976ee77981f4c4743788e517eb291eea2e26c2ca7c3dcde694dd996855fae7ddbf41ddeb8ceaa74eb6f9dbc7f4e5028cc4f738d06a6f6196b793e82d8b6987516a4a95b59d6274b9a154d669ad7a85d454ce906cd90aabc30fb68f0b1debb7998772937ee897e4fc854dd1cb7f544b7ea345a01694ec6fbebc080d66c2134591944016ec8cc5443f57f7ffd91fdf90f332a0284314ca6b02f8596ebda7244359d97a9a85cd7f149394067e87826d6c81ef72a056ffdb2c323d3f6384bde0ab5bb5563ea687233af138e2d98f68a2b73fe0377512e6bfe1fc5f74948a348f59654760dedbf616f3ab2e8d428cd754e27746196b38c399a765c6e0f47bd0f3c7e7a888b7e32eeeb0986c8cdc84a546c420b6b37c98fe96e96618b374976cdb8ecb50c6b9bc8d598ae6b46c023b82f3393818ae9d09fbacf8a7f51aa938960332129fbaf26dc0c5489381634320cbf083e6d4f6ebe78c8374b065f71b1f4cdb8ed0d4884771a7d4befae4f7de8edca69db75bee5ccc47cceaa4609a7ac43bc32d8e59cb4abecb38d0b1947245196bc4e367564db6d6af9eb7f8fdb5c3b7f2c7db1214f727489170884ecf09b0547e34a9aac0cc79568e66f695947aad3f5bc104bb45e83956e857803c563e287a2009d7339eb8d28d9796ad69dbbcf525e6cf0e26f8ce07a336cee0648551ed4471fa166aedb5449f64cad9ea5605cbfc51caa38afac0190c5160fdbac6d8712a0bf60dc4bc96dcbbebdfdc43aed9803e611a2a3ddb5fc94008357a0eba6b6af27d5cc744d4a4e3bb97ea0b7cc8b7829cdf45e6039e23b945111e334928c6cd2fa919e97558cc9a79b988d258e86f3acfe8ceab726ddc877e568a69ec6306920c19b3979f33691e8153458ea85eecf38cb60779cc9195ce98ea9c0c54988a4e4df119874cb44b332b8789599a723d56bc0a6edf6ec05787f630bec7dd03aed0c3f4de9d3b7be44fdcad5d192bb5426a86921ed8e4df57abdea99fb7408aebc5a758c5728c7375e4d5c4bb461816bd7583aa2357c83a594d41449f7b7cbaf4e8db3948a8e92cad59b3f83f7c3233833ad8c866abaecd0b39359a0c60da978046ec7039ecb3bbe752045bb15e9adc745bab19287e79d844ddaa9eb89a4513bf49b647e22ba646889adb14b5d473683e05449295f7729a9dd43c03357ec3543258527088d805683d04e6a6dc099f7ea4a72b58fe090797392aa8178f42a599dec8e89b13fcf02a3398a734c75ffcc37a088226fed3ad4eb52af9412069bf0084c3030cde2065d9a83ee598d475f4437782fa3637d8c6a725d60016ed4458811608ae7d39db1706516a9456c665cf8677df21ffa5f79ecf37dec9087fb837747b748df9d558cbfe4e8df9ef6e5369bc0fe35e4089c7ea67383ffdff51f5cca37afa2b8676696feaea7f486ff865d5efbeca6c4b1e39cac3d6ecf23e352f036c639fcce7875ce6939544b58634cb62fe6b80c4a4447cba420dca993bed70d3c69d62da3b956897daf687c6e339f8b45760c4dc0b9ab06773584584b83b9ee3bd765815537986dfcbfb784bb3fb50be3be1e79b9112acf9b7468638978a1cc8a81fdf89d02d9f41f85b4c0e8372c8799e9b7404feda8a73d35417719b44e6961b94c48add81f5e860aca7833bf3cd4ea5425f9df61ea443e480e42df0a1a5b5ac8a43b12fb9b168ecfdbcdb8d1cd82e49fc473c92258eb1522fcf4e47474d6c73f94496d92ff83173b6361c31af5f51029bb45e2eb8aa03d47fba8b3f3744509bf5cdcb358743f1b677ed95ce3149cee5ea13b196dc9c3c5c7b37d5324aca344597870f46ecb4e5b9450b93ff8a69b8ca3c55bc76845a635584cd0c145b67dbd47c15e7d06dc8a1146d11274531eb46da9943d8b777df8344f28b8b12fba249398fcc87e0ed177c4ab34c102f9e4573c883edda5a88cb4104e12e3d9b8a23858ebddaa9c935e5ee57a7da40885379aeee489b4b75dedc761238fdf1969b5f4fa916be7cd084788cf9f521d6a83a89d47e7cae223f5d40d357be0b3a47933a5949a4c9c4fff883a3d723db01843d587e7bcbdcd9ee13c0b643e1e05d425e7669540b3c3444a43b775473189d08ce724b1e4ffff3dbb1976004a66cd09ee955f39e77f0722a726811358dc0f0b76aa90aab8c2dfdd3a4f3e31cdd076947d2b503c73b8805b26d6780d75b86d5f3b50ba899bef229beea7d18fa9016878f3aa8ba392a4b42ec4f92f42ad08ccbe58a18bbc7c8639c04016b9c663ca32ebc31fc82a138970c0cd238b6d1b2f2645fa407504183a125b1abeb622245886b9dccb9f2793147a63227236c9cda173c0546739bca51ab24cf3287cf935a8d870719a62b71728fc5e262662296f9984e485101860679caaa02fa1209e7703e0a5678c496a401cc5c1b834ae8c02d2a61b8c40694c634c80290a2f5b4a63f865ed6689a54201589a3384acc299c054d1cfa25be6ab278530b93616efa35cbd0ac8fd367923bd89cfa828f1e8a10a6d027ef2417422a491ac1bdd2702d688809b7455824ac902a70b06d54c92d73b2047567a25336fc74a6d8613d6af0a51c0645ed30c19f3231c147ad98e0276654b9277b16e100a2bc1327ed41043b61900d48c1f51c70725133ae31190b90b43da26335a323c13652a04a2e084827f190915548acd4d96323b573aeb2633be0b3061544cb6b80176337adeb4c5eab7c55bb612e9390419a7598dba6a79523f5764ec7fcbcd31b85c41548e1db0cf1aac1dea8031b0c3b9e629b6b9c06ef29628afc979d303355fc4d1a480fcfd0bdd9c04168e772880a4a53d4182ad30b760c89b2787691b40eb56165f321691f3c4880b20a81d08834c9b2d7b2aeb0e537f5ebcaada992ac0a3402e81e18aa1fd1391f00fbb333d46c7ae50373eba628685d15cb1867b952ed05bcaa8a7efce7c825ec58054b2c84d5c69dc22c219cc71d5a92230b9f40f633029c30bc6b266b37bc5e994e14f96d4c568d83db3491e38ae1b4a320d831cdd5a8e582a1e8a43153c347a3c91919ba60d18490baf18ab8a530066a9c35cb7e05915d208294059b161b09a0b8b446c322c9bd6160d7413974a1b11d0b643364432a1a2bacb1c0d70c642b68811b39a69d44974b125655a64075b35cf9cc0d632493ec46307aba8abbc1033eac4e7ad3329c246a08294f3cb141fad16f10b6804f70597dd6ac34b2b40190c36e17325742a4e9386c08b69cf1e0124bdcc2cea6ce77b310262a71ff7017fa1b70deca96dec183f2981975036117656955a5c4f1c674b09c1624c0c48ad2c2584968f511ba5d070ead9c7889e79b1e123c488349a1f5216f351070bc459f3c8cc8314e16b97266d37675b809fe962914d924d0827cf9b41c9fa169612b70ade609bec43e04345e5b97c330d9216a5a7e42632f09e95469e9b3422041c3119de5e845d6e02795806aba9203da928201905e2fa82c6c7229ef074a230a05401cc9e22076e1c372e742c8eeda0fe7aba76ce5baff468cfc93482a1ab5957cbcdb2295ba074038e539be24986cb8297a536fd479b42c8973b7d03d71d74346625f96234b32323b17c3769564a1a82378dd5c4d23a551024c3468e50ad5b97ca5641272711ff4464d62b9619d130de8491430b5ccdbc928b7e411fef80fb942ab322323da20cdc42b5d17a9406e3612b7970b648817e060030d338689665d3aa7cf2b97314f8237afc890b10097d8f304a26b9664844784ac8d00932ed8b32438a28e5b078484b5324d976422324fd0f217314102ea587d6de84b482992d9e6a6cdb3112599942fd76434390c060321d326bc702376d466683ad546b3bc2e47e4b891f3b7d584375dd3859ed58fe94255fe421bbfc7214e3abe265a1465e58c1067bbbf214db3a94c54876725fa0fdd048764921d5b6ba00c3382d5064baf295b30029bf27a88f8f630d5558d595549b65201793229ca2647621648297a66e92917e409cccdf5cb1378b906c3ba731355d57cad41f6148f7a706f850e99e7610d2c78d45b9f699926a4e01527a1a49886ba5fd25ca21c325e21034246c45785127f4859c0a67cc7b76259410b2f408f4e1569c73c54a4da92a40476402573a2973963406290549f4a41a2226131251c5d59d85e1d5123d527576f7c794842974d884e79927f7bf6b09b752cbbfc442934ba461429a3ea921aba995ef12c21116cfe66b132402bdaf690ed95483aec9785e6989e934e7858bd13498f4e994619ea9cd55a9504e40b4d0ccbe8f8cca1f72dbf74caa3975595623c12f22c120c022b59b2cf3748b17199c44cd37f8ea61ba5d8c1bbe50789ce915df9fce1b4cf3c5acd7ce52dfda0237f5f24fca5a18f8f98c916c3e3304d2669330c1042829573e197597d729484ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 +ciphertext: 1a2fcfde856f6d8e741237c5e0d0fcd7b58c9886503131c09a9f5db0f76c91349fba53dc31df528f684063909218140888d39923b52ea6b06e55590ddeba2b8173a2945e40c08e965780b225caac8d2b9a66eacb554bde430120b066c6c57ed75b0fc43c08fb4491ea446daf15661ebf4843a22a81059a049fc4fe3d66fcc103b7aad3780f9e21479b75a4f5038a07879ef64d7d12604db56b1f10cbe6ed755e1016e803cf83a0fc5d41354d68bfbf55d65d6c2ef32dfa88541a9cc13cb2beca4786be168e6043afde254a060056259afb94c0e858b59fed243393b7c10c5453852207daa69891bf3054b3af65449bf7a17a2222dd348a06db881cc12c29ac972e347eb8ae56c6008d0ca4927ce7bd482157f123634941db84bba10c7552552362b1d8d08e552f92897f5a75636f649609d25c2a83541b6e3115dffdace94c947036866e22f79b59b7b246e5622e21c4f0914352e09a5866b8dbb113c97c0921ae3e1a1ea0bf726805b4606d15298df0e32eaa974584909ea709b57f8ea6047d908b95a6db05a47b26de1470fc8fecb7b7e53851f732f55b0e4b1c8a1c993bba9a7d22f125849511f124478d468e6b8ebb50f8d11e0ae7f6217e19ebdd57125c04b3df9c1ee65f2940a8b8e24b0a52c012e5c9e2c09103d97477ecb033d7dec5d59fede37c6f95283ef76806926371562cd537c19d6c6fae9bc88d57ea5eb1c8fda0bb8803791fe072bb22f83b9eea89e5fe25e5ece6ddd7764e2aa8cd293b5fa1acf2a831e4bd24e4f91ad27687515f90fdb378c4959fea17ad2ac14721734aebdb0558fb65e88154d11487c89d9880041968a963aa9da09e64521260132f82e39ee1d44f8bacc3c6589af7e049996494790f6f9f5bc6e2fd5518c145dfac55fc339b279552843afa411f6c1d48a940f0c5ceebfb9440b46b8bca9e5a9a7373dc1d003a9bc7e0346e93d440a1ec63ea44ef732b0bdd62febdcc4f7a1acdaf487855e55e8372f6f3bdca58d3c8bff9279e9bde009f1cd6fed525daa609436c55048c06cfd32b5aa0d5d85a607c28047f1f79c74571bf8fcebf00ada66195f0118975f99878fe53bab4e80fd4888788401a5660cf2c8137c553108e1529e4e19932c9d373e72898f5f3a5b4167156834ab1f125a443feba98e898f5336c45027c41d5027e7b319418a6b96fc697450d60a4d8ca418687fb513d53343bebd575b590b1b608b262b1e0cf2e4412e4d659271198c6d5e33231a9d5ac9009b3b275da170470950656844e6e4f7cc0582c9e43c9144b4910048e90a0ecaa92d6b2698914b91c5fd652b1ed6bd624341046c5106e6ee7b4a13abf3e80692af298e0346a383dcb833f615ad69f87fbd1b4f72cd626d78f5bf37b8bdcf76ac984a09ae1a78de07f0e387e455f6e16f37e3ae00a815d997832a86eac07d54767b35e1c426c0fa4cb4df76272045f1169d1748411fc6d79a45bccc476b3e8967981fa9128141b1c85f591bbc239fa68514e65ffc56973028dc9661f1a69e67736ce870eafd4c87c5e2cd3f914e93e5262e8a7e8489b0fe0fae1f238fff41f71574d115be7cacdf1bde432a1e58f2d333860a6605469b5328ef8222ddb9224e1333b260e30d90b75a03dce7c3e4edd4272c3cbef31250c04544fa97ee7a399058a6f230b381215186281edcd6f40ccd84aa9e9c7abc0808dad707bcb93b6cda47d227aeb88930bf68f5723aef9e32e960015dddc944503c131e541771f131a2fef3cb9ceb1896ea98573e2a9f7613c7665758bd3aae087bc574411db82b3a4f7bb71e869ca72a024bac17f41abb843551a28cde20598abf81a82d20d4067b9ddf14208073444755c8bae9420d9f4c1b72777410cf6c10cd7944a158bc636eda4a206ba4a18d3f149af59c5371872c786f7b89cb6b8ca1515250202303887217d7c41ed5ecc66a5528a072b1112165c6339ad27c4ad7ec35e04dcf925903e0ed6bc2a3608c846908cfd0e5ef3c7b2a2fd66d1c19bd79f8ee3ebb1910d010879ade3dabb9cb531247c9c881b1869bfb82e291da45c7896bdcedf7ac87aa72e6270f39951261d5fef37aeb39a8c94f62c78a7cbc0b2a0aafb2046eec47e5012ae49bfd41f46e5428cc90284cf0600a9b9cfd0968650903137ac5091da2aff756e1e39ef133ea7dde4d8ed9943acbeabd396730cb96e3f41e3ad13a94cb56ebf13d3e39597d65af9 +result: fail +shared_secret: + +# Private key not reduced +private_key: 618ce297dfbb990f655166cb0d2d74c206ce030ce9f35fca7f7a66d3f6e9acd48697b3a5d9845f8ccaffe98654b56cba727786ae19c961e447c07ab7b9e3da64c8565a4f9fdca3a01823c30a8335015af472898d963a3407a8da63c6bdf5aa79bf2aa7da47df03b593cb9ec77f998ad949e7711b7639e448a2036b86489489bc41a264d4f78bd436b7810b38a3b729472b26bb47d7d337d575ed265c22b86d46a8c7f1c668e56a66f3d65224fdbfe60b472b9da46398eed587313a45a675b9aaaa7a618ebee65d143ea764c0eacaf0ce244f8e3acb79c9be141b73d9eddbb6db5d27f3dc2ee5e89d3e406f154560d7832cea31d40533a46be8122e6951099f59896d26eec1e898ba033aa6107b703cc7cd358bdd611e8fec45fb5d05f8fd0f45f7a44fdb649c02beb9e51db8990c689758aa607ceba569d75e2c3068e865cd835aceb37a78268e8efcee1c93a619abc71c43d5e6db35b58791e9eddfebca9d3ed37b62b8e8d3befa66d591420cb388a6f48a5792d37e6c63c6949c8d4ce27768ac78a974f4fbe1437cf27d46472df23fa8e2909cf9fb748eaaef53d3e8f4242db4b11f5bb094c7a2f635efadad60abb710f85150d7975036e7fd4341fbd58835b484133d9330d3859f1e40ba2443f6a7db97ce54d5b942a0bea41ee6a30e4c4b919642fcdf88629c68301c363599738a5571deb84358c571311737c12ed1e00c490e9e8260e7e72efbcba6b8544d96a3852debe6f64e957de2cfd9e125236b8a54781c4ab58dac60f747d21c5b6e46bdb4fcbccb224bc7cb1b551ac35fd99a5f9c0cbdffd64d43fb3589fe7748aad2341be9fb1fb2f3ba61f6d53a7a0cc1e186bff1a49cf22c500537933364a7fe257a5519c133aba7ab7648e2f7c6869b65327f3cd03673b0bedeb8c3dada93dd53a4c7099695e804f52454382e85fb86fbc8bd46ec058986d80699e70d39447d66dc9e72a6d8b3274a636a5dfc12a885a5f5e36ab8b10ab8c7d346eeacb7627f16cc411bc7e2b3403d6b5f53c3ef6a6657c2464eacfb796afb6a173af01026b3834bc70feca0130ad46b66e1f608e113ec66017a4b1fad43f53cd2ef0b55f05b6f65783a4dd6641496988e3a84364352967ca2641fe68eb8e4069f9a4d7fc30bae4f840e66934e339973db592d78fa6574dccbf9f17c5b85f3e34e9cfdb35c73b4683abd8b7ddf666ac26deb56d855091d54b3085144a57f74246464bbc226c860607ebd620562c044b9a6e656e774d54914781afef4afe991fa28b049b388d25da3148f914436f234f46779264ddae5725469755a3594cd4fcf29469b8a45d16d27d3247de131c7f304378a6604eec0e437939e5f5f35b3399ffca6c7c9e6273f6ff36fc12f52283f514bbabbacf6e0b9d952043c8d9ac98e89743fafabfdcdbbb10afbd7c646d0116da165e4e309b46fd7e3fc5f05c138d33cd06c3f327ee7009e831aa5b6e1ed54d49761ef4bfc687eb0f607e34e5b8ce18e41056dde704c84203bd2dfbdb78c17883cf7f44495de6096f0ca7f90af3572f278e461fd8e1feae012a8d6f653e317daa1e19e889b7573ca2ddd16cca12b77a27706a34c5775bd494f13eb59002847d23e63e77788660ea497a7bac4ca9167bec2ed37f49d0ef0135876b4d5dc2febbace57d5063dfa90fed223b9374c75f0ae4d75dd3db0c5dd6ed30877beabb108a6659078b7bd56c9c3d6a83f1b43810e9cda1c5c6529e45e5e5dd62e449c7e7a98335efedb5e301a9d72467b4b458089e4f4272d697e27887d5b88b8259d0564ca792a3395649d4f458101ee4f0a5dde8bbb77d64bab264d7c95bc792115bd88e767b3d7c7eafca87dcbf7e8ce989e74817c7f3f349ada4d4bfb3506cc150934f605dccb676b757beb1b5de822c853b986b00599c61a269dc9aeb54227963fc7a7608952e984b90f1da9a91e72b2577c7fd9ad3ce4b3190ad711f46706ea596b0df5841f48ee29f58c5bdd9928aae62d8c4f46f1c7696adb95a7ce9ec39157cc4ab735cad892768850493b4509564ddffd9eaf84c6f86638a1667dad4bf076cb93fb538d02a5c36e38f40c367ba1a7e7fa695dbb7fe359f85c05e740c0cfba1c146dfee6da88785179373ec49680999aa616e7753d3abceb5afced2a60c1cddbb3b9db2be5cac40db107f76c0d2245fe775fc5cb525824bf945b31bdbc0a86b88d8827ae7fc0a3db8bb9f534a21792637765081c4669832bb66485133f61bc22c55f03b109882b9ad7e75fbf12519873a18d9472087a6fb375244b313f6a81b608d88b0f79147282c9c37084b00138e8bc8cb3bbbd2bf9c5f95766040617962651f0556756bb9121a6bf09a515c6836b650c44e9db72cef47e08079945b8cf19d8bb25641186a8c8999103898492a904c5a7f2befc1614b4482931989ff7fc83ab40781ce54fb51866706cb04ec2c1c8813e963c70b0f15567b41ffdda8d02a94d00d1348911be52163f5c44188b6214856763a409040e8480c0f263d966a99ba7c7d5724f225ab99327a962d1497e9b265bd819c2959b1cd7995d138b4d71804fb122730b6133713d68c95d861a3c567c803adc403cc911186327e1726e2881bc9b4b1873091637c5532951c0c01a0999e7740fa77c1c1c847feb3dcd387ba3974e1ad0310f889d05e3508f02443491261c367c94e074009103e8bccf25520c4546c4bcca7aad34aac89892524219ba9b715c470c72c6c67811764926335f722c03b85c509105d6f43f65ea9908d4c61f7947cf70c4ecc08da31aaa6ac1887bd388720cb36e10521dd88d7b2a483fc5833f8694be9892bbf8bb19b6ceb08a133f037371f287956821014b58c6eb9351946303a3b7fa920e32a471f26a18a0b939ff137927c2a79c27a991040fa0d29b5a89124de37fced8109ff634f6313551140a873a6b76245a2538aeba7a234845cb4ef0c9707a4c56f8baee1329864591d09745fec24b1b392f86c47c38a62b613a8e6dc022ecf58d7d81c0f1e11a27296290ba0cb5bc04516a50fd1361c248ce450b54698c28a59274204427c53c68b5f73c739a62f9d57ffbd17f18c06994f0cc58f0979646a7273b9f0d3493db0a23df085524845418695edd526af36ac6b0b4c3346a2f61317ac8e93cf54351e12a752183c7adac04c3a943c463599adb1f4dd18a69d6a933a14447b73c2502374682c8209706cabba3a2c27b2a108ffa23a6b9732f5bd14ff2ec25e9a384a8bc83855c043a372687972112050901f12b9c0ba8ae7676b1446cfb376b1ddb89af260007abb736b5b223044e73dab7b3566c7e361c5eaa54978a6f3f72c31bf499c0854e272005ec603d3a50426b24a35721c0f1613d55e68e92682217401b9a21af9296989e75588143495907cae38c231c7521197258ecc60bf0409e4729ce5bd436749343a449a9450c5b2af817db83210f9738c0029ba26835c73c4a2b85255b42af98703d1d47106e2b3bf3f6c90c1b0c88e40f13e18f4870aa42555c08e00aad7760321c6fa8151768930cd7c12d1b6149fb679d35e981319b566108b56b98cf1efb9ecb9a3efbb6ac471c6f0f207569eb2022ea0fb0048207e96a7dc805d0d07de1541531848d670817463bbed673b5071227665a157bdb5509eb09873a00b8c98c48a3c131e029576b76f49b7d0152bceb0bb499ac6bece46f54f16b5d7414c8bc27dfdc9948077c090304acd20a4955b350f22253576780696aff4998daab028632ce4b3a372fca46b0bb33f23a52a93c31dcbba882a925c9c6c0c4546ac152a0eac489e9b27ce9c89aeab652920690b6b9944fc6b807d896cce9bf0a0908f05322e184bb7c5b2a4d7459ea75bc700424f884925a2a83cc95241e7701944ccd53271f8b1992afac3bd3f63af3228e9b84a5d1a9483d5502dac28f992531ece7ccec18b14bac48f1f62039861e90cb8ec0681d059788ed147d1e10115aaab25b6b41a66a5e1388557ad56eeee6571ef418a5f0b797352cc013a1176c3b131b499008319c121185a976c5831bd3258b7bd7b3852aa12fb77e9db085389c0a9e1033eb224835d4793c8603296c965bbc699f87b328db504b335fe83010432a4ef2a0b0a4300e29309e3370660f9b21bbd79382970dbf4750b3e142d5f7c381030901e7c09218636feb3062d43ec75a7ff9a640005c1f08669c50d6a41fa86790f2bb41e7cdb401c06c3c035fb812ae2013604422a7e3c1e6aa437ac4261f7834fa95be9e71001b65bd2e0417164142f2bc80366a8e5e1ace65108771b321da81100397a117f00515b6a2c934599416cad1d5091bd23708e45eb6f90a2fb5c47c8c77d6e395a6332a45f4178b0959466f648ec5c43422397d4e771f902db7b8d876a028f1708e233dc266d76c52b2a849f00690ffb252699d5b3e9f66e0abd3c1362c39cedbc6985099daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 +ciphertext: 61ffa8da30b8111f68c0776905a752fcf8f1f80af8eabb1615649d627412682dd49d521db32e66c36ff89bc7ca88249eb8fda2ff7b70ccf84c79f851d0c7179d3f2ec1b53771c7ca92fb2f9ae2b11d10696a6fc3be2b07fe57b634611e7b3f5d940dc0c9d8aa9a8824b454166c71e50b391ddc109647b68d12e51271e24f64d2d58a6f0567d313781d2c240da9eb8354578c3288eb08ea63801d5364e2802179087c32bdaf8287246ab1a63ec11dab95eaf2a0a41c73a4b5cf3105909dacd0b2fc166f27a287a6aeab0dfb2447a707d880fcaa73f6db886a64e04e2d3a6a8e95a995ec17c39931abc21038efb704750c58db92a20d06136c5fe0295711efbe0cf67b9eb8c20825a77e840dfb7126a3957784e7a6bb17c1cf75fcddb167eb13103f51017240e5da251a498f34edcba91030439821767f969422ee72e27e83e64ba70bf74749ec86c7d6dedb95533e8e3f749650ccd1dbc2e13522fd2f8c70d8a8ea2bcf60b66043853f787d0bed1dfcb0191aedb50585e60b00332cdcc870b467ef5d5d233b2005affcfa5b38ecce4402c572e6b22d3d7535449c8073703d663cb68a91cedd532bbadfdb8a51400d478e33e5c8ff796977e56ecdf74918616a435c3df762f67c2d52c0c332d2498ab4505e2fb5ceefdd16ac5a49919d11be701f476be075e9edd9152539d08c842bff9d332c9c0e7c50c352c2fa96f2b3c50b85f61bd4c21069ce034f9bc460069e7498489322207ce5b5039243a454b9ac824a250fd9b897e1360b1a0cddfaa2544cc09248cbdc0e511bfd4b145e12c8c29b4ee81c3fb0d0c970116b1d0e773f463946ba0215e1afff098fe0c47d9e27439139c7210c419a8e33e0a13fda22604a72872d6dd55fc9be361c299cd32cf5e702967d7c7be8372f6144166bebb05e636268a728c1dc562bc2acaaf1194fc53913ee49be9e297274e690da76a1ce422bf60dc5569faeff4c134c6a72994e441f9ccbe2be5aac361b18ed89ca8ffbeedec74c3d6a3f47154896ec2d5194777d294e9b2d9c23a9b95d3d32800c2b53c166abe25e6949e20fcaa274a792ad6a798a3ef1ab454f708075c75352a6232c5943753f2d164c049de891ccf7e2f0e7331b63f55755566a31f8c8783b6d23c04865187e8a5be7d50c0ab3b1a08bc0b0c8563ddd763a27aa88b67430c5b96fb35e8230c77d0fc501266329c454b9af4c1717f30f145b32a576978ff8c177d738c02980bab45ba5d1932ab73dbec31ffc8dcc66b79b17e35d1a5ca26d10b7a95e859e4266cd8bfe57282f47ef22965e8dca78ca6e4d2f29b036b86692d425528c01f14298069ff40a423cd2011ce382b06d8f6a6b903fa2375a9c9e1123d6af61e7117c5af42907cd3fd04659b239c64e8034cdd351f0afd0de22f3b8108115f9ccb0e977c7fe72a62910bccea232d018b0619eba0871f3b0f63dbb70b852c51757c7da18d971406a86a023435e4fd726746f7da90cd78403410636ce370ff08f716985d7b61405783858d9a8a93f8c6c790b276379003dc2f731694958fdde91147f0dce55060d2bc82f12fd59679a4d5cc7624860aa953227b602316fb8a8e7f4ad7309740cb86866d8748ecc7d46acdb967ed1346ebf98724d5308128ab8dabb6e7a92da6b34654e9f5c7dbc56f2de6eb26a411ea831fdcef744cecf3d736bb607e4125bac94f6ca0d2fc777558be89c2b89cb99fbcc2d213ea8639f4c2d32904628825b3fc224f107b78e2ea7cb4a18e6d74a67d9dcc68012b52e89030b1e425d3c09860368278b27fc091f4bfb87a118916d82305314167c2dab043b3e24570e5a652c4aafaecbe625f7763a4642129b20862953633f8cfe5dabc9f83b8ea99de18aea3110d025e7ba3c8ba128940747fce99d0eb824a68f7724fdb51a721a167e8e791db9d9a1e10e5fea66f981d2e0f33dab616d1037635a1c36bf85248643e5144e36ab80b759e693d09c1cfadca3488eb5a6b141b55e46358414e8c0755f2b5edd91859b02fffc3f1ab9eb6569e076bbd5bcd0f2fa6d97a95b96b9cf21f31030b36dae0115cb6acb43ecf9a59cc53dc02627d31d5f17857061491bea48b0b01d2c73e5bf8eea1333cfcf247895347d7e473a551307c0f77b3065335592071dbb0b2a56fd5a52323651999cf68efed856860a5cbb84bf8783b790e6a5833f70aae68ea0bf8d220616e1c4b40fad5e1ea5 +result: fail +shared_secret: + +# Private key not reduced +private_key: de8539328cd09f47e24e0d9dc4eee2be749b80e86ce81a4edcd8d2e757aeefbdbca029441eefe93c568063599dc8d87209775224a792fb1fdeab0faaafbdc444336d94d38a1a156dde5de4071ce97f5f7d33ba3a40b496c80beaf61353cb3fad986664cde663862534a745eceea4779fec825f8ca93aea7f23883548989f23f77a25f99ba847b427e3e9145cc8e32656e83b629505db025f63c75ca8778650624ab740acdf45964a8cf466d2fc954188d7a58ea1d216f62abe7df583b2551f43433e6153fb5d45f67bbb7df4f628d252b6b5476fcb2ad793704c51fde4bcc758314dec86e685eecd7ad324bae23109c38d356b0dfc9677cd87bd7c94597ea33e46c0924b8e8e1b6777f530615a5e3b7ec95ca532c8255e8eb6afa2bd570be3b810de974b27dc3c03d659d998e0684f920becd4fa79b5bb5aff34443c1cea5423c42833b9754bef98e46a024cb1d3074b010ed2803be05a89b95c3d6a7d546f1d357ccf3dfa71043ac2859265cb768a29cea15e810a08965c773546768c09a66aa777e0ed95426917dfc886a30ec4fe33c4cd7ca650cff5aba39b7b0ae6f311c9f13a8d5e89dcb14507c0dbaa6ded775bd21d7fa2eec5d2b6eba9d732df58b8845b4966edd1f88d662617943127d1331bf38483bf6188df7b4d82881aa31699ff5cbbe05b65e9ae2eebc7f3ffa6ff3f993dfcccf67d8268f6cfd5da6db58c16fefa6d84c185b469b0f9402265deb72a4332d4377dc356a5b34136de593117651a6cdf0c87580b49fb8643386177e19f4651b7a433d81d4f9b2e6486ab6a6f1fd8ed6b75b93989797472391c3464054eab9e558e1b570ccfe16ec964eeaabb650896bc296c94ad90bceec79b4fdf4e94a2a38ef2fa8c422a0a4d318c62cc94dea2379cceada4fd7ec1fd77591345f0b8cad037f688f2b3d57fac7fc5e6b3d4be652c2567b19fb7add6a543ce82c579a366e6f0c204df5aae39846d9df9dfc6a84dee056632401de32ec9a3cf9dd8933d4ddf74411d3932c37d89dc987e8a3755fc1ed629887e0f5e8acdae8110ebb53a4898019eab4c156185c8965adced16e7d2efd3d1fa88a20c5b4fdb24a25e0a6822c9cd9d6b7a096cfe15cdf7ee3831a0cd827c5c393fb6c3eee59cf325d31e5baeb7bd8753c7aa0cc7cf8abb926298c44445fb51eefe7f2474aa065eb7ce6b1b76df3a1a80dd46e51c8b40bb265cbafc87c526b89b96dde45e37712ed402734fc2a3568aab6e761f33f5da9a7f846f5e4c7d318595f1989d5583e2d8aef61e74ffc94bf3e6378d610ad46deeef0e47f3e789d552ede0cbb7dad09e3acba674394bd6de7aa856953f10bbfec8fe82996695d4bbacc5457b904b7df2fcc73bdb62c047b3c7377e5d4eb2470af0562c57d5ad9c6ba7e0c7675e277f63cd06781a5b63a58c36c953e7509540a91d63cf97af65249eb6648291fedc628be029fb593a05cb575c3f64ff80d367cffd0c9a8443836235b9030ec5a8c53380b4b3c669936f965337acc72c05ac5b54efd8dab2bb5f59e38c9b87c98bcd9646aa397962ae60c87e8808d4e4debd5742189ec483dfec1fdd92f84296dbb97a453f7f5bd9c965a6652894e92350f097b185aebccb17f8ee7dc0db7ddb3e4bec6dfd790135a329b6b3c86c748ae6840ef581939c81ccec3849fe5821643e4b4ecd9b48b1e0979a964c858efddc67a7dba38ea4d70678d62adb6e5b93cf7b5297d6f19c17336714d7d837f492de37bfccab4709984aba8a394f415ec337e6eb5e22b4855abbf1bb394c470881bfcf5f21238bce98caa9a44e06277870a74426bb927b46cb640ede116bc9433fc5674d6b7adee99dde6dbedaad1404ae4f98ba38b58d6f6b7b460af2248bdd93d58b018ec5473aa14c7964d5649674afe4033c34528a8b52dd857ad3b18699cf7b0f5e84e9e788e9d6e71cd11cdb3b2a2de9e32f5697afc61d0787fe445b6e36c6434ef88f3854e52aabd1295cba17fadf5b756bae9c9b079085dfd4ea1bc7b65a34a2e8894fcbca16c4fde04e5b40b73d5bb36ad37e4b233c899fe4f0416dfa9bdfd8c13e88589e323a9b706a35cbb9f935de1633d1b6b877d5c402f9fe8d16e17ea4a8fc7d9de923f0d5aa554d77a945c3dc137d31030858c066556c957fa98e3bf9f4bea25f57905a4de4f12b6f27cc55032582857549f3ba0d6bafeee47ca2e2cee04b023b066f53f75a5dfaa0aca416ed16cabdb510564738aa08134346757f92585ac112c25a6e0723958b7b23bed41a126617b4dc30de275bce903a1c6c2a28c5c58c49a5f0c447fb0c86f5b6a6e9d271383588ec398fe6928f04b67ead2633ee174564cb2115a55d8a53971e0c9fe2a209f9c8745467bb8d9944e6c1bbc8a54a5d28cf82e8815a3615dec5695d00c0e72b2f7c483f72d36d2f091cd169311a283a42d608d0d66e020172a6a799a66c10aa9b93a9dc5caefc805cd77d567390bf017693db8b33392bcf96011dc88287375bee828341e5a515a97c019895c8e68d41c0675723af42b6a50da91d04c9880d21a5af9929362411f5b36c75199211da655f454539aa399ec276af29011fc2b5e7f5534461220ec3ad3869178109a282e8a960b6119d0a4ce801d05150c636d20d70dbb092999bd2ab9597a0b1de56086c27ca8f5c22b86995e5aaa9f6514323a31750eb794adc1ea1247317f82eb443604ff254e99a895436060291afccaaa1fa26b20fbb9f48e462851513f7707a5c3461e3f4b3b4e72ba3089c53fb85b9c0576c06b2dc832fafb929c3b34de6974021378356fbc4e1282884d062b831b9adac1eece03f5be7c9c7e8b69b1a7a79304842231f0ba1107079416b388a074ccddae26b4d22693f95a8bbcb2f3445ccf74abb702428fd3a04bea9ce55b6c251c57b6ff10232a6a85832530835883336a10992cd30144b757ab6a6377389e36093e218bd09cca1504400a7a473e248ccd40567637183ccbab9bb2dde7198abf35df8f8c836e1bfe061448b133898fa6ce3abc79beb4ac8d9997c12588c908aa1002b2570a64654c8bb3c1914583748b95d13f9619659ab4c8687f872030df926ee04b6a74047b995625b1a9a929a7fad134f989c7cac25c42817bd9f45327725474a629df0944f5fd3bf06057355f2843e8157115361cd627ee6d548230a89ad49bf1b156e50cba74fc19a63ea2e01796b6ef4a37d4212897346da865f5c36cc49a6954a8a868ae195bc4625300716d3b3692e683a10d9192e2ac5d096c465126730a9b72bb3a729a7cf39922674e39900dbbf91b2785e301ad8a3843f875361b5c4ee0953ae34a583b36d0f54cc194800be6b0a6465479c51999d5029ff50117d5498e8c6a0c81bbdfc6c220b21a310993fd5e7691834732e358faaca460fa26ad20044dbb7177c47736c412bc9011f09a0ba4d22aefb485a524bbb8f74bddcf78358c8addec550b86895fc3141682c0c323210ed756864910c9446c7d9983cfa98ce9edc644967cc93b7008e3c9166ccbffad008cca6569ae913e7327c26032744758f2e82a70f8a399ac72657995ef2754e3184c263ab93ced1510bba1d0838a13aa2cb9d7a25c236a37ec37fc5c0093bb47dace9944d077f5c837d78c54e3fb1cb0e8a70c4a18b6e8b95f6b7be2b79b802055ad4ea5febe770c39757ac42a09feac48b6174bee79621bb3af7d0a0094895cc8b6aacf722eeb76abf6b6f0d66bdc545c68c845b22cb167f96a0448b0cf812c46793a28b55a600a1431374b570c93d6dd7b4f789101e578e29d96b2384a8e09115f9e1c8dd008d0047926c17285dd996690b4ee9957cde5ba56451bc2de46371738e65744fbbb558537b33581998dd0525ebb9c17d9777a701a676956a03bb4911070d83b603f5169f66838cb671627b899e9706be9460ccbda50135d504e2709ac31c48c4fa67eaa740bcba4173ec25fd7766bca198fe4122fe93be5b646b1a475c74ac276bca3904a7c119b057dd2bbade1701ff249f484a4bef04392122c416aaacd5726a273066fc510f394903b5f34860206d8c45a4cc340440179694223b8eb578c5bac2cdd183507946e3d02c0e219ae33008e19822d77acfe5c85bfee7a0b6aa0eada58ad1ca5ba1e12ac92063c326ac4140250be091b2095f568ac7b483acafd7045a229954b8583a33376ca7b19a948a10c4a45a5b80d403c89773b7c2c67ad1358bf2900e8a793dee71b91c978c389b4d8c824937e921a17914c6d1a4bdd6460a2c7cac50cbb2f006ce9c98c7a3342f9acfe11094b249870afc3e15800701d606471a7a0dfcc073c277bb74706e5571f81cae7331a7d1e36dfb437d7d52957526bda146bfa3530dfc93063fecb103ce58c30abb5bb70c6dbc92e5f3bf40602bfa2721399623d76222e93d092c34792aa8308d8999aac7e17433da2166292bda1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 +ciphertext: 77f22646c2e9df7da84340db963c6c521ce4eaac3b2ee0b081f60f15ed977007439c1f2c1a434a753885d909ca9397c4676653626ef814145fe6316c30fdefef47778f3b98547003b3d3cca6351d35ca4eb5504710ed90fd32f0b91ca9947f8521b567419646e075202f8ce6c2d06e8e26700d7dfb2f29a2c1ab60b41aa56937417076a5788fc5cf1dbe371b20019ae99c33c557db0142443e3cb2587b51c8839e47060dab64d9f1ef45d2d6f49a7a586f9d1838efb3c2fd1d733995f87e2dbb324781e8086248024efd5a916ba0eddc2122d362328c4fda90a294722cb1b547a78ccfbebd6628cf16dfbd94c8fa743bafbb825b792823ddf247d72db72d9b600ffffa0df9e5a45bf62e42fd3f46d93d4d10ebbc39851dab8b2103a3c643440a2897f31cb12ef49dbddf9250c16c148d05eb51874b214bd400f959ccce73d41b3e0c1cf3696743d47724f40cbb1d6d2f1515a2df9d18859628fa4674c6b1401d03763f9b2ca9de2820f0ff5d65f25d3acae5fa0b2d2b970f50fecbbad74f91dff754543a7986666f123faf6d32295b1c1fe950d507bf95ecf966eca6a9abc98c9b08ae039f25ab5f7835e533ce17b4cd801880b17c9bf942796687fc3ac888578f3d21be15d3cbef45e196a81a19edf3d87c818102c696c230dd028f5d89bac044c02b0735877f78e6e84c6069bb6c6624c381f063fe3613ff2a1d2393c4517b8658d3a4ca568c79b6ab1a6c8e06a9fcdb3c8e15d679df23187452007dbfcddeb1dde7583293c98ffb87f83c4626833d941b2eee611696763d9779c31ee8acd31e8382f1aae2140972fa74f9aee07d9d83e6f2ba707401783342a8a133f57caf9cd88e41ff752df945997b7ee91c450758a73533e83ff15f6f3ecd72eb1f33abe1651cae93ecbf4c28fb7b4de4cdbf957385e84a19f0dae52ba23097230f4db6bef2cdf6939494a68042d821ef4ca2872c9a13ba4048e202ba5ec21a0eae5e46e20829dd889051910e5df7d78e7c0f24d62ea928ecf5c952098694e7828d59d3bbeb3394e51b634cdd39f4f6cef6f02a8d49dece71660445eab37573fea3c1bae06a9a42d42beefd39b9a6576fe290483150bba21255eded67cb351338e45906e80a055c21ecdd1e51b05164f01549af64978863ca3c5223a614a8d4268f3b515b680b9538d33490c1092d86af2aeb8e9cfe4a786d69dbb27ce746dc775c544fa4a05ffed255cc27926d6beb5e61b97c2711c7abb1c2dfc340b89d8a732fa6c06acd53bde442c97193cf60e1422bf32679d20417a0e56b110fbc6a6dbcfd4c56fa7c7f37acf042401a59f0ba1d8b87c0d3eba3c7f058a45be0b4743a18fa88dabdcc198ac263d9f449bee8aa06967d007be82844a9416d7c87ea940c1874fa99d2a83706da36713ba539211152dfe78169f39b0e74a8523e1211a102fece7b25e56da3bc708686e288415054d9562bc326cd54e564c57cc9bdf19462c1f7c7e04f6202d888837719192db89bd81f3ae7e5bf97e38ff27af9009361e6688b2316790a5062865d0e1763e7578fe78e02267055cd39dfb9e662791ba909039e7ba88cfaf04ac4a3efaaa0caf3c35049c6dddb2776633c4d2599c062dda533ae3efec032d91448b5e5afb27d623724bd03070ccabe02cfe605535bb95dee8777e02c28a96193d74abbcac8ce7ff28988ba448ffebb5910b414c1e9aca70f2e6f8b8d2405524eba4bc0b0620cdcca7fb794849f10be427a9910b5eb7f78ed9b2a7d682dac5fed4c79385e3521d69d8064d065a4fd796e1ede3d864b007517690074e6c07b8cf1da174e2d15fe638470e4c3d7486e6229d9cf57089bad78558612d4dd0d04c0701da389bd8204f1525ab377d5416b0153c07237f54376d35ad4afcf6f079c9bf9df8606b6c2dfa775e2cb55ec807303bd5ae3f5a368c1ea86ad311e697d199c8e4dee3e2969ab6c726a2791a517d6f705e96531e0cf06366b22013117917ec154ffc93596f56a9dc366f467f52ef12c15de01d744b42d1fbc0958c85d07003f2f3414fca21edb4a428619df21034d8babcfce9d4cdc48c55768430053e039f6f757911b6370971a673e435cd36cf1612bc7711f6b0246bdbdd3a179d6eb61b2057db48e96539ba542d4acdb1498e71e9ba15c6ecd960a4f33fc9247b9c20ec5cb01bc1029ade985cb196e44b7a5b787f94e4a3f88307ea98829bf7d36 +result: fail +shared_secret: + +# Private key not reduced +private_key: 769f584ba97569a4cc9d9e8d9dfbf312f8e719fb4286d67866e9a14fa947f32d692def9d0f68a97f95ee5c938db1587180ecae36fcbdb8fbe9d973d2bf38a02f1ef8fa66fba7b9f60c8734618e4ff41fed511482f4f731faae52cb4fc9202850040f5c5badc77698bb5b778c1f864d697cddd4d634432ff4c8de4287e6f5b53fd6241daf95ddd5636c8f15a486e3ea3151c5f30e337aaa69f35bf7968d9c7b067b8d1be6f47326d47d0568ae05e5f725befea696f01f4f1008f3d45773e89df2683db8aa043f812f9ae33dd73949fa3c4fc0f3833da4be8b39cf43f0b7f760b9e7581bc6d2784cd4b796e79effbde666fbda9cea6ffa3234fa654d32f144c4914d31101ce2ae7a3aa52aa3effdff289d9736a8bf9f8992079c76168dd1c65bd8428a5acd67762e0ec4009d4ee71c3c9047751d89b0f71fdffe848bf40e3a5e4c5c3db6457c55bfc8e6ff6db63fd4bbeb52ad6b43f8b7efadab5987bda88f78d81ead53a6b5fe58ba81c5931cabeedc74643115bba84ca0621a9c3e49325f8b583725e4283fc4e0ea713f36c6fbc3c90a467757c798ede3368015b95b6fadb0b6fa1255fabdda5e0b9a882eabc2f125d157e8aa961de0eff5ef29b3c88f23fa02f3e1fd75497cefe82804f9d0cefbc47ef50b3a765f1ffd70bc3544b55df119adbb5c633a9e72ccc7bb6f49ff04dcd2f96aab65edb46744abfe9acc869487f929317beec1045d8556f688be7c34083dfa79e54f68683cd066c537366bfc9e8b3916a8b13db0cc23d1e1e4b7098a47cbb46d417caa014e8e912d629ebdbc598bfa9008cfde2bbcc777ac7bd55f2215502fcb3f813d75037a56e70c8b4f3b44b92698257edbcdde5ca8a3c52357bd582c52eb2e7b236f7ed9eca00e49de7e99de626b75af7bb9f5d8a05c293642d5eb0d399d9e5f50b1a7f4d22b3f111d389bc38753ad32622bc44fc4ba075bdb1ee753f73d5931fc3cb8bdc88fbba272fd722e73c83e8c49a22dcd323d471a78c10df4cf52a5f829e596bd75eab39c430c4c4904b55ec0bd6f7474ddffb4dd77ce5e3779bb752ccb3d86ad225b83342d8ec12c50b7f9f3a9f67b3e77aa55a8486cba6efab46ce56a7adc9f739b264617ccbdf504ee5797873b4fb36f26a6fae3e0df949f9c77d0154d31376fffd563de0326340103e48847c363f4d0477baff7c38ba473ea1a5e7bdc6eb8cd3868a7c6bde90a97d68ffb9c6be7bf05c6092fa705179d018a324e0ca09b54998ca8ac189bd037e4b563b479c479556269ecd4ed6f64bb83057631b243cd9828e9a3655f68c5d6fd0cb52237c9b9166d07f46a45dffc037b7b0735dcb5088a96473c9e2f5b79aa8c09245d8b9a71496ac9ce658d0cd3f9a1bb3fbd03c433f4e3f355515b2373d8158a4066f501fc46c0e7a4e913f9354fa2d8ccdfb27ae476dfad52dceb9a2f9c4de5a78b8bd7d84475b5e865169d916a4978dc07f248838140896e210a3c328486a315a9e15592b9945730cccd1fd75ed55a74f4897e63b3a1d8b96d512ecbd0c8e41176af3aa4a69ae6c6354e9246ba662f5739e46991b09c631dc4d7e1a94eea07e8f92a977a448e6799ebe30d6da047eaa1bdc581db7a615d80534bf427194df60dc4d5de7a24a6a98f96714556cba493f7ba2abeca8cd6ffd3821346f1cbe68d9d1eb07ff458e584848473431b488ed683daeb36d93298d58b653cfe453ee00c3d97d35e516e660f246ff10c75f6ba6b404a48d537a847cd6d02c7f4256fb0c0b8dcbff9d22d97852c39d888dd766f08edbaad8f0f06bf00d6996ca6fec04e3973a7d9bbcabe7e87df01fc720c0de6e825e7d1a7ac1fa69236d452f783c0dcb65cfeed91c0b8abbdb8b840efe34e7434453cf1bfccdd5fc8ef632cfafb2cdf65fad172999c6888b2c39a8269fc383c16e05a44e94d8bb64e3ebd56e86e5c3758293b7844fc5412a7b7d9cb9a6154f0be2cd79ae9830a494f356b99e9a8ee55b5cdf20bf37f2a8eabb86532bdde43fd7c0e2adb198bb198ca8252763b6297fac7c742ba14d84df82f543bd67c23b72fcb51dfc9a4fa2958ce1cfea4265c1654bb219dba81273e83faab505871ddfa6c7616fb3308ae5e8e43e25879323d431a16ce5e7b62ba9b90dc776e788f80d1ffb8cdf7bc885da96c2e9eda28d6227d7f1e778910b9afed44842d78417cd027f819699af6b0ab475a18b7359817b50c306bba0728c5a9088e667dcb7944af6c10ba86300308165c1242cbe8708c8347c44ab77478304efc0a9e5328f203b90108418fd1b5b7c3b085e74cf500729e27719c2596feaa689a54ccb3a5a4a74acf36c652fb97ad49190cc6f08382017db7a910f816701957cdd8449ca075b9a3c18bd88469e3f51e0c967146413bdaa15c38284a726a8935b3987e774a182023cc0acc18a80b8b6909b52b8726881380b204cf1c069415a99556476b0218ebb4217ff33a0593be5f3cc47ef89c13397d68933721c5a6f1241b88f452654c249d35c1a8b16305469586435c1a6156f8520ad33938c8dba429c118154020205b0235262f233c36a89b384d82bbc49b6d6074517a631c5ed285f56585b286462872503da5c3df9c91340071eec625f8b29e4c416e93b46d37f95822ec35c2897417d7181dc9a7097aa74f3a02bf1420b1a568e1d7b1a743c0d07623e2296071912f7db25d67d751fb3b9ffa671403f29d162b635f0c7ae693578d2a752984914eb9036bca365a76861a05075b4b2a95077b6600a42e071d60e21618a689e3f7b5c9836b7451997ef80917f6351f814e2ef1786736a703012d3c9ab9db50b5b9f08bce69ba50a2c48f059dde2181f725cf39f426b39028402acac36bc0797c918d30a4a6d4bdea2927cd75364d167f34db97260039bfccb64b0003ab3532f77353fb6a0433a5a95570c2ccbc77f0e4bec1584cb1a88735f27acf58120d01265cd7236f18af3c00b4363cc372fab07ef3a87030b19b07af020320f1f747e32a8bd1f32e78f1a62960a43327307d8c212d1044689805be15c1c68682d0a8a24ea51267058dc4b15f36e12104ea83e425c248209a8d193911e2a2dfe3a47f485abb226f02919f9bba4014262ffe6b4607bbb511fb5fcc205134f8aae2310245b9c9e73957a2b5b4cfe0916dc1bf6ff891c645b28e63bab6c23e5077a8c3954fb5978ad8e07dac5c5c1fc4759912524566785df222d04435a6a24361178d917b53af57438b46aeeac546bb5207c186bd196bbb6277216d95ab6e545d78e04b82669d19093241b808aedc5db79a9e54762074a0aed86931497917969ca7f20942eee719287c887b3508f23b919418278be0236043acb3e4abac940c44c3aec3ab8c78bcabd84c1d373899369b515c2478c6085ced3b08f668224f950d3b82355468bff0534cc7660045e96ca40067de520091437309f7030f71a250c359f0c71c2f8819b62cb39646b19d63669f679ff9f48ac7a426e3fc1a1d358b675105f28586726304adb8109e104715b6c330f053961207eb96148a866c12c9349fb6aafd1b42f5f80a2d827094c3b4def6478212332d96359fb3450cfa6bee8327ea707b8cc61799105358521c6199607d9b769b38ad15e4b638d12d16aa90aa49cd90b9047696acf9c14cbee59f82b46de5bc644402400baa2e839ac801c70a368a3611cb11a1484dadf30185112f52421196d1797a3085f5d429d286343953ba8de676c381aebf394d0453bf1610905f3b6afdd5299a750f2333b3944067d9a9cc201922f9b5162cc41cbd35400a275717228050a97d05d0c1b303bad3405f36a1218c5c089c98467aa37905b334edb31f667a88c2129c1749784f49b83a329275e1b5fff4798d4b1c5779a5d433ce716bce5763572a29cbddf5b40b464f3e163cd5b554c5612c20726f57244735e2616f45356237263d69a1e1e03cc4d9ad57c83b3075cfaee45418282261d8bb531b685c766989c28ae9f991415907858308a1fa027156b6d3c8c0cf926553b570fd077b6fc419d8f4556655ce53f6802d406781b06463042304477bc8ea19757bb54f2cb54b9276fdd575d5a00c267b1222d4c25de11860dc14a1f3453423caef02bfe8720472c194dd234038f8aa0d3118286b530247b88a83318fda0a9c226cbcf22510f681db3880c2208b70f67c124437dd32ab9120894aa287c7040e06f6cdd0121ede209068238b57716db488335564c316111cdd90741a197646874922ec355a26a7e5ba4af5873f974b2626b40afbbb5c59501fceca0c9fc76fe9b8786ad1c5c76b071b6c054aac0eb8e0535bf8a4249a9256e4c1e8ec673fb5bcae20063a90b601e047e9bac3ba827acfba4a7e9b040776bd6f351e548ee005d759da86c9b2971f9d6d1cab8d517dd00566aba5f53253d778ce06e380b14c9019095028f3944a31a1aa4816d556047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 +ciphertext: 5aa2a84d580e3c22578c26b98e9ecfe5088d3af1fc9e3a81d24e25a30df69803be604b3fdfbd4709b7924d39ec03bc1384b0c5b9e601088f96d9ec6a34411126dcf855dd55a800052705656471c5f7e9247abaace66cc8746f5379cb31346a5e0007c52b186b50ee3eec28f8b39ade1a9d0c215d30cd4814bf79a0efc5e18c8de7d4116988f060cf5ae420706f19a88345bdefaa8a59066bcd0ae9586cc338140b77f3f33a2c074c59225f1e649aaf8ad20c39a1bcada26a6c3e4b2cce106dc82c14bc17fdd34f19e757b8436124e2382ae28f34be75d8dc98fea5b636957f7c9bea48237cfada97819af6c1a34dc91b14ab7d694e4f4a5c1e34ec42140f18327756f36594fe64f012b249f4c82291b8fe5bd3e1ed410d80deceabe5ba8a09fe819d8e6a3c191e2390fa0f3c7ce59197e7c070f308cde90cab5498c6dcd6916b44950a404c4405aa24f67859556e35966c7b80c61a794be0199a841adc8a2911d947669c44a38377bf884b2eb0215cb465781c3b81d35ffb677240c86ebb201309771835c422692a82b1e3bfeb4f7cbb64f99a2db5c8bee93759799409c422ae930937a387886612448df9b1b01aec237dbd0f9c4738bc421694c873914568733744cca7e892258168c2ebeb6b307ff5e35546f16dec0c99815210da6dfed3ede3323c9fe2c693dd31e3ebd003197cd497d7af3eef133d611355509af3b9a02aaeea73350472e06de207b12cba089f201866f2d57d27b056d5bbc2e4698412544f88b2a56af7f802b2d5982e4b31997492f8dd419b4ef3e8ba76b52e43e04f0d5bfe24c8854f335a47843d27b42cf7c1f462cc2e5f938d0b20a29942f2d83c232807e021223d8be33f00f1373ac1891f1612d45e26920486b4abcac66f4588accd7e178d2baedd8539b4d35232b0d121939bb664cf9ab70f5a87d4b4cc2d3daa4a37d064e4494174975bb92dfa3f965afbb76535df9cb5c0de541672821423780d102e9152900306752c2bdee5a32dcb375df2ee84cbe6a410a5249c292f5aba70598e4934be4295b9997251c28440f3f647946fbbd4dace8b2be424ad81114236f2fedc062d5abf4f2beb2b731647af6cf8b07646805c69e624906567da4c75968fdce86c9966090f2b117c153e3a5cfbc4c3d52a611a5936297a60171151ef3a97b153484ea0ab1efe8a4efe60ed47e0054978e152bd9c026372515a4188d02bc1b93ffa5a6b145539b6318d75a15a5521ae042c8756cd67c5fd611f8d9c44045b7efd5e6348fcf7a6b56adaec686eb5692549a33466080e5886c83c8453c9e4e44fbf0b293b45da5a3064f7abd6986bdf3bfb9000e8d24574f5f81991ece501d4f725218d6a2ea009f525c3619c8685c2c2b34fb2ce1b93764e07dcc1d3cce5d535533fd7dd28ed24ee4dea9f95fb2c0edfc347ec9cd9b49706f70f2884df179759d200487c1e6000a91cc9229c6439c32901be5d357382c9e37b7c6154dc06127d3ae93dcb4ed8fdb44dd109d1256123ad3b3030ddd37b7dec4a715f0bba2514ffc88876e9dd9d66974ba8b5637bd7b829ecfd423e0137685d3d72f534721082b65e644665f580d23599cbac81a283885e41a6e85116fad15e53dd301e38317e74b468fb3f1eb6d54184c5dfd1d8b9f82b36ccecfe689c39ff8dd6dc1d6138aff0057fc9246608440ee5fc70c095b837edc79e31fcf61ae2b07714fb3ef5b2d2a5c1b9ce794b207879f0c5395a6e880ac7e566fa9d695a5180d406f1b1ff96be6b4091d5cd378c6ed4efb3b23a84fc78f5a5566a170244fdaa6bd324fe6d567ee403fe93fe2e4e00cdf0eac1b16cc4ca2df1672f7907c6b240f8d9de657e8a2aaca0c5a9ca982ca0f9e97c92fc273545ace9875ddd46fea0997ad92998653cde6ee29d042422fc33a6107d47470ffc662b2d2dd149778f2170fb509a2bfea4d7dbc4c22635c16c70dba6c180e35a911b67c3f139b4359382690443c06f5dd7b75b78bc82c1e06de357c8f63bdc75bb10cee006b6e41dbfc24afb6d6d73a55e411d2ba2f4a45e635ba341605643554c7cc53510e8aa8520351a374e27265f2d62e0381ebc130561ad53c7e0a6d5e82d37b719162d5ac8580aca912ab9e48243572b52e6283d23f71c827c46b56fd0be4b27d7d1005420e83b65cacdc52f3bf3ec432c51c37af64fb8aa78c35c8728e7e6a7a68ad1060cd8a6fc22e5684b8f +result: fail +shared_secret: + +# Private key not reduced +private_key: 25c969038aaa1199d0417b46199cfc1e7e8005994dfb1dce5eb8b998b5f4dcbea4f4ed716e3e4458ec6de9a7fdc3d988a064cb0c1ecb8255df1055c9f333b2c82541fa9e67787be26c94f7c515a8f905d7f878427e1a5e239547f1d6bd9767437abd68146f4a221af2f5d5ee0ecd582af3dcaae6cc39dce3515efc7eee54c3484602496bf84cb3df5cd3129fbad249dfa06dc7e84855cb1e8b00bca8156edc6b0e9d25e8687489cfc8ddf40d9ffde267359b877adddba93ee7b99b8831efcbc6c915639b7547214e90f4e5d0702bf39a26ecc485841164ffe113372cc3b0e3b4417ef5e17df681ccbcfefa3988922ae51c94e8e52cb49215b1e8cf70812b876d37b092b882ef98a8086ff6ad76ab0bc9e7106ec73d1caddd3deed8a38b9e237a6c345fffbacd6f86c47bfa56bb04b05185607ffad2a17ae3283d710c85a425ad8ccac9c8dcb662fe0650fd0bebe1ba973ea5d79fb9717de44348dbd931dec8f02fd2b4c7849c244436d7b478dff11758801d3e6ac9b5be8a18f661ea78e3be4e87da8c78f8eef2285f01eee6755c5cff986b57bf9032b390bb8453e8d970c709d337757ec39eca907ec9b79ecda16749a73f46ee865ac503a5573962be14a61d3ea6bd3995e51684c1e59d2f8d3b516eb2ce633e7b79fb5503818e349a61155b892db790a6928973e7fb56366b63cfd7a430601d82bde4cac99d4d22f782fcd7c8a03fcd991f5f7ed96b0ef932cd0771324f4437744a5cb74f2dac52932c6c25fcf82caa4e65fc9b38a43e21d3b95cc5bd689dea22d95280457b5a28ff6d9c8fdd197cd22f31f7889af318aa0dba8e3ed6d56fd6687a476a971abe6cb439c055b21c6933c5f58c9409cfdf29ba810b87cba7ef1f3e4256dcaa7ad63a42beeb4c2ce27b8d65c24979b89c96d4afa945de6d20e39c27dcf969cbe32a688a0b4e9c726338f93593005453001b753afca27c84c2576ea63628365cf3d74d9d448d9fb20f1f99b3bed403fc9fc8dac9bd479802f8c3add3929c6db409f73e53fbaa328756a7b3ca8ab8a3341863ca5c625697b4e186de642e7275faf16b6e951f88b9ce64839c56ede048b3aa4692e609549658f130ea3be3569cbdac7c6684c4c67ed43c4e677a5e38c76fb44eaa97a279a7ea1a9e94d83d008ba136c484fa27c05db44066fcaa0207eb6645e2a71c7ae01742082c5fbc879a046373759965b0e5659315d6a8f6cd1035aed5e4a12b09a7abd74d4135653d5d9444775190b3c822c567382af66d1a7d6e19a60a536f60a946a455c71caf3860bd99addbada779ede2c54d5ea88020db44256d5c69ba6ac2bb4181b363c688c2471e737cebb00f536a83c3b30f0a9d46946ff58e4aa8559368d393da4f64da25b805c4e7158b6d0103ca9d1c5b63beb5cfe969677a70ec1385c17a59a065809f5fb99fb647e64bef1ebd800dcb99538eda9446ed600be0932b30ed8b6715e9e3d8bce6a095809dbab0b0f64b6f5a7ac4aabb394e4401c58b935586f10d354be345f9c45cb19d8df8e33063dcd998eef2ec93de4c97e166fad499d6710f9e9faa269b064374d463bcfd96b427b47755d689fb43f0b3e4759bce3f738a72516638d8194c329dfabbfb68f4a6b108ed5d81ba4d5e7dce6e24d772fd8ff7e9663657d3fe9aff2ea8cbcca6def834a711cc7c3baa7485059d7315ae0b395baa55652cf54fc817bb248e9117b933b82bafb156f4841db494d5d6ad0ab37025965f65da2e9fe78777ecda3c9874e6781ad85934da3393b566d58742bd8cc44043ca7b4f68b757ba3e1b49760ee36187d7c706d4cc3569b83be00fd79a391673dfdda14dceeaf1556fc26a4a1139ef4ffe816d5fc292475807f58a2d56eca16be3adc4a7e1a75e1b4bac030eed3af98f57b5516da77b49455ccfca47c0adc70e0935f54be4c353e724a35a8fd663fd2ca7107c8e4f1ae4d30b98b6fd3e1cb568332cdf14e7756aa4901313842447ad98874165f8372334869e89c82eb3642ace3f442a3f709fa9a3f75b931b97b5e4d8054f371babb4509c5e1b9972678d5b778ce253fba72a839f9e7fd02cdfd75788ceca1f69f1fe408f8ed3122fb108fee487dd96b1faab348c5aa46cc63eb38c4935915e037f4238b9be3b59975c6a67fc807a83fb0ac436728f5cd0f74d1cb3c6a7f721c4039b10482990923aba0427e2da5bdd30bd55133989a5b43bc371d2105415e76ba18786237c7151548b26005961fb2a9e737e39bbaf97f612cacc3ebbd216f9f57873f97c503a95a49a1a113b0c454526a082203b1a27e2fb170ff1b59b0657861567d5565555f11ea31523c42898d6ea1ae260cd98b9cd69f9ae4d19a81365154d24c008bc15d1482665c313c3721cb701c3a407373e1bca5829cf45d484721357d5f83b5cb58b21987d9fb7b77224c03c017e183b31fb4c407ac23312aba708e8bf7f905d68b4895a48cd7a70af6ab9060d959f56a02d7e3672a90a6218fbbc6fb641163674bd736af2764c72c5bc85651be47350507ab81749bb2b6c744520b5b0a3b6633355c0991ce4e1a813615f2e8300366521040049b1054a7741b29af1c300e2c86977af90e820dcfcb8cd967c27102d49fb1683c63553289cc0c62de0e26f7555392187009e0cc5896acd8c3c9a4a7c637a107da325cb7a694e9a1107e889cdc6310671bb6c5b51a35a0169ff7b5158bc6469a71a3e8740e9281f5869180c91cec8e1169e2b377c8174669ca67418116c3cbd2ab61d8a874f9bb767de8973d8425cd118bc9a320453db9c64183248b22af3f489ae69159a056ad113833c2a9fbc56b10d013e911210bdb8cba68a0ff0f0729757bdcdf68b3fc7be480481ff64c4c09825ee52b274e85e544091c3d36f40444d28878d7c19122957348e3c27fbe74685fc1a3c21126064242616bc4aaa5284f5588435140956cf37bc72daf5a73ff6ce452ca689066fd6e118bcd4988660c7c8501c34dcbf1965c66fd95fdac910b9e48093fcb200564b4cfb36c72c3096c5579f736059534d57b7168813439b722d5230b255532d838598d615c1b641a9d5807f33653a1be96835f474d4f1955e3c5bb5c621497c3451003ca76275af98b25a962765e5bf2fe754330a77837288810aa53be9a2564451319405cc38b13401a7f7dc960b5b2096f45a94098a2fb39dcd654f846388cfb4b57b4b92abb321a16a83b3e6953a0724afb47902e581acdc278957100548c735fa5c04a4147e826a77030284615b82fa60bd3619b57bbca10872afea091fc6288ee434d8319f028125a0b5006cacaca8ca6eb95c7ad87c7e499a4ad81bbf79d144ab16ac9cb49743258cf0c83f2b006b1d0585efa0ac7dc722ed6c12170831f0964cae2b6d2f808afdc6223d11b510b949e76a0a4c262748148ce17b38c55cc7eac2bfdf468105bb89298c88c8806b124c7488d606b52b217c81a17ee5ae67cc27f6a3382d50705a9bbb1d3c59f68b8ba9a45ed1c97ea1eaab76903d1f2a1c71a07420f47695d1b68d06c5dc85114ae83204fb4bf16c09385934105c9e2fd803d83542f4aacc3af6b949a63e6d0b0c46ca8a6b4633926c0665bc09b69ca250945c14366d49705658f6cd76964e107497bb42290f4c1471a4ac29a60c3dfcb701770619cb45b0613068091a68b58c7b2a19ca9933cceb112e234014816b7db43beef660100a19377a4200a0806be78d30169c4b747e8208780a14aa53987065936ac4f06b7a710870fca3b1bacb04c2af5e3005a9208b3a03929b864d0e1011cec63b93220e96b480128c20b7675c9a87c1c8e2bab4a7422fe9c16d367928117765458a3803af02332d1bf654e782816b15a5bcc3bcf0213dcbe07c59a92d1b1baf1f217061e197c71223c12746cfc0b0aeb99fea7b29bb3a1300bc266f1692fd8641d6fc594b9894dfcb0c951b8351236087241f7cc3506ca74ccfb4c930fca1be940af6606ffc76bb92b53768294c30370b29b795de63caef451a18317384299168b77793e22fe0fc03e4c064cbb6979b38871eb11c5650587dbb31eec0cf7ce128f535b0545ba98af5ab4bc186ea1081ae15bedef5945410c800553d8a2211e8e16125d4a7cf25a91f13858e1cccb8e56481a5a3bbc3468bb624f282069425c8b5462725a813bbe53c1cb11bbfa242c2a1619763448af184958cc333c3aefd35c4a4861c5cfb2ee1b0c39b0c73314aa3d191b6406caa94d8280d8b01e1b73e56f5bdbba80fb3923a4b608543ac827395cad1b050530b5e908231c324132d782994753284927f3a379f71603036a172ef58018cfbb879f29a42a106bb32a384db6e033401fa46045b035ed2b3f277ee6bc7b69ea2a0946112498da4ee64a2be6ab49596c4e61553e1164dd2d4c9cfe0e22188f2bb5e538a054c904cdd0d6dd921af93591f4a37e9ea2b5c8d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 +ciphertext: 72e827fd0a9213b7233fb4f586a9e7658e4d9af82f46552bbf29cbc288757c90fd64f98f0a9ded011ab822f9f9555cff8eef77867af89244230e81ea24a9a8bf3fe80459b1462c163b50708c7ad66bd1a2d0b543e0a1d731aac2cbae9094daf15d472a3e4e4e215c8ab38ebca960e4473214f7db59eb183ab71c72beda92eff09d995b4d6a94da0db0cb91658e0747c09d74561a1d5d1a7f983cb0a3672c1c342fb5bc8455261646195143f41e54e83a9efed0b3ddd7173640b2a8fd9b4adef0848d94129f45b09bbc88fe7267e4855b1058e6df5a73901d44f1099d48b560bb3fc5dfadf9124973ea5762183b952766a11fe1909342ccedb0b14d56571435e38a43995e19bc5d3771b0e28d87aa882d052155dc332acf2dbdc2fe6c4b21b719735fe77998c837e9b871d15f6863ba17d28e371e31ee2a066bf9d3f9dc25969c78936afb7533d8b611cccfe77203895340020822a82f732aaeab1263163d68680f8a229ae1e80bb4422dac4c4c4faaba84c054bad0d9e1aa0992c2013b1cdb7005939bad0e44241216d6580479f6ac6066cbda1a580caad53434c6f2a537121a549401cb990d4765812ac1eb27cbf666f5d2d96f3cd804b43052c1cf53d2b11a2b924ca1971bc5e30f2e9a8fb05e28e474fd34563836ec9b19ea492bac7422392336c2354a703ae054995ec347e563fe2c5ee48d0c2bd9968556dc41e5d3c939694675ae23112f64cc7ff1df4696a73ebe472fd76198998626409e8f8d6c6fdeb9bf589cc60e15253cb985be0ac507ac8076f606c11478e78a481fb749adb2420ee0f6546b518652b905f328c712305e80d8669c5dcdd863db97ddad05b86ad9d5dfc52b8a41cd2946df58b7d5032eea4efb6e8ca780b02ac58261bd3aaf04a88f482e242d698cc8c55d87a2e178c741f8b9a03f453d844d71011f5c7677541fc25d58a138348df949e4cad85367f817255281b49116c5d101dac5fb26e1896d97f67cb712dbcb5a573b146904af4e9b2a7a02018c6ad812d1b8b1bcc8a062c5a3fbb9cb9ede7db4bb39e31a8296d2b4d9c34ce6b06a88425c75a3b53f7398edef454b9b2bc24fc8c8dbbcc4ddfe2b0e52b7b9f6f695d5cf8e7706f0a67d0132a4234334376996e71c5a9bc41e6ed16d712a1fa83031d774ddd45d9701584dff472e31f2bbb5c09bbfadbeac285b313a8b32e5e78d10ec59658210bb346f0f7c50c233c7c1d018ac200ee64cd512f849aa8cdaf3a1d8cd23fcf974ebd05a5a29acc5b4bbb594fc967dd500a08020c10f4d1a613d55463d76ba4fd6e0230565ac45a5fe9b1c4477cd40db46b71c111b1f66bd072a28d8d1a43614e785e838d3217f52233883c73a1a7c4878290bcc97e47b4694df427f2ba787eae7c495b2455504f4168fc70189bc77f01bea35f4781d45c170bd7747d7d85438442ec70bc40549f30b1ced6e00d9f3bd1473f0df98527873e775df348061c9f4b16450a518e6ebcf6aa81086d1b9e9b355d405f431dfc585b1a82fd7436fc32f9f90171b0ee2db4431ad5090d61b8dc41f4c1f806f56119fa6bf4779c1dfb1dd9ff535ac662c7121fa5fd36c2f85895dfb4f63f32172c8fba3dea868b02cf2c23ed351a71c5cbfabbc4bb9504533a67d6c7af1ddc267ed430421dd15ef27ad4c30f4a384b6b72c4c4e3ebf5e254f67e61f84c0f7ed2061c92a504fd662a1e4a191afb56957c8e11ce0292f2eb49f71e106ff5e202add3025c0b15c9cf946bfa12d17761398223039e2c19d270c101a2303a276d7d7c81332a285ea94a28c4325fe4f323cc6ae72c306ed5c04c7592733522f1b16ab3e5ccf7e50c6ea926fc9601c3f27b66363bcaead3d9e2b66a436d2b77f982f7ea36d124c3ae3483a09d3be896f183ea041eecd11c8245151a17ef5daeb94e4c90a341b86cadd49b58357115d1a305d8e7950e1a7d6c604070b2384cfa7d05ff8a578d694041d7abe179b456de185c12e0bd4354e419231e5abb7542f814fa307e4d82e8194dcdada546d09173bede3da358d5c7c2c972e5bcd1487961d4023534b16b71ed1efc8c231df1c218c42dab650d4c6eebb5e0eee547b897b757a79530ca47054b9e42d1b6fb68c2fdca74099e218863818d11cba4fa40f32d3420a24643d32e387ae9e0c21119387817feab0ecf26bf68b32e3b2b34cbe08ef0c12a830ee0b9753ecf3da7a0995094ede649094 +result: fail +shared_secret: + +# Private key not reduced +private_key: fc569914244bca63c05d25beb5a7d29789d3c5acd46079c9410c873936b86945ae56f3c1f049a3bb4e85ad5c49bcbbbe7fc89e562bfa940aaf66538ebf594eb0e5bd1648f4f91fff6c5e83c0839b5946eb970d8f3ba83d1cc37ca768e122adb5539d8e2824521883db3817a27f4d99313484b6fa99a549f95713abe453afbf8788fe6ab531eecf3f53df4a855abf3bc11da69e10dbfd889d75fb6e98b27dedc99d3c32a845d4da3b726b6828ac84e3469dc9e66702ce6b64957d371f8856c8fe1367ac01cf74d9a366b6b38fa87364890f99e86561bdb46269a951c273710626e09aecca78e5710d4d6b27ea403c05704c77b27da95c45da86d2c586f73adba1bc5493a389961b789cf5b35ef88dfc38cf6443b7c329d06aae9be5a7b11a7339f6cb445f88c90d1b350d5c3089cae3c4d7ded65e4dea34b61d7ba5abf4c78024abd21a9a84f4cd73f86b43f3744ffb572e9e8338688168cbac7f979bbebfc52a1d402f94c3fcbaf9f446f1482d5dc5b5af7d4cb9210fe95149fed6b4de110ed23b48dee87a4fe70b864bef85bb6bed01a448aed532da26948f639258a4af94c3f70a984063d9f7929867e1fc94168e5fc51c5158cb4ae9d8c81cdb30a98a82e6367e644dc6f67d4a38ed6523e736bcaec4d98c524cfe36a3a48b5786a9ed6f4df5a992bc89c38996eb03aba41063e340baae94c5a9151d37109f573c4bf8f3efa47a2695aa6f6cf41eb834597c0a09ab0fefa589ef6962189b7c5da99d5b7907cf74a823df3b3db56cdc85c1a8ab9853476b2fa8c047b4f835d32a84fd601ca1c03e9b8a28f5be3c38e93a686b5d694e25e64d9c603f537772f88abd1f5874aaeadde38b56ed485f34bd211f9a206e80eb2382bf2b96120cb798fcbd995dea62a872b5be75f80ca9aa0b496fdeffd07e31855ddd443efdb7a55a523aed718c43d628f3f4e342e9396e6c2451c056ce3ccc93c7d9a45f04e56136fe4addedef44a350e5cb7f4dbfc2845989bcb8cd5960102ef0647b45a585318b0bab8b3dfafb7348028b3fba36a41aa7528dc9973feca1c28a722525c2968739906d7e02c9be2b2491a0458e1aa6c1098fbb4c0bb50985cbdba386d0b53cefcc6f316965e2ff89148c64bf2f385389ea254b38aa8e60f0bc3aa63cb6d55f63ce7ed48a93ea554d413ac3c6f38670a93e90d2bb32ac5a35908c41618ca017893b3fbf628265b857e5e30d9feaf61c895c274fab2e50035cde81ef318917bf9bae5cf2665c1b3ab8b62a39282c738ffbbf786d845637861f46c3e5137f050a907e98bcf755a3bc0ca2026ffacc9bc781eedd4d4ec69ec4d0f9234c8c89d7bdedcb52b783c0fa82410a5b103f5753d985622bbab7639b649c5b36696e2bd8b5c979e65f66ba03be42e448de77bcd7d2a85c599b9449e48f4a6aa0fb4de60c28e80dbfd56fe5fa94fc2f2d26c0f574ec81cb854197af4eaa389adade5dc9bdbd4885da4b9ae207983cf37bf8955ccfbb37e57b30e74bb6f798b4bb7ff73059b589f5ef78b79fe927818fceff0e7363642eb51e456dc509d381153c7687cc3147f3b1034de828620d17aecee648234fafe899c45745f09606b82a2cf84fd7a0de8e9f72ac71d30bac8b54715f5ffe7c55e1a083d39587ca1535ed8be9f6cfbfb0865ce59d348889bbadeff732d13d3952deb491b98b442e4d26bc7a3c2fedce07773a1d9b5d0d441917cbf3169577d63bc7dae8e4478f4fa8bf23164c8ec68e86acc8d1eead1034a99eea986699cdb6176c84294f721d67ec7748ba83cc6dd5efb3e9576e7e50977c76097af33c2f33c68995333b82baeb80c4ff480fbc93b414cd3d06e75e4969aebbdb052492fbada6148e8b707dd86c0af2a1ea774afbab6867d33c65bc38395b47f3514d6f4d27f3e20a969d02bea49a08e5c729fad1f97c2b398301ebba4e76be866c8dd17a46c7db9d5149329ca53461de35e323c6498e34e9e3ceda48562aa78cf0dd98ff75a93f44e33859d4ceded278c798a77aa93f033eb4fa32f7698319df3c79b4af83639bffdc56af84f144e7b36d2e7f13244b152b88fb3e9278159475abee0d158cda3ae2c1fc85d09339104f413f0da4337c320936e8909af4379444fbb5c7f80fb2feb3d98bbef5a89b82336a3789a3bef7d4d3a6afc56becda78d90b2d2b06c3c74e60306d7e0514fbe0111a930a10627e5b2b11077ac78bc32c46d1406ee73acc41b518b2c1a8cbc93990b9c1d0964b1091b0871dfe594aeb6719400c71e96893a7524d082bb5b7b3711f586f9ecc4b65f66fdb2801495086969a6a49961d563391a24b1029a7a3c9e2399f605a37a4a05237570160976b658da00b57ced318b4c7025ceb071c269ec9db9d6a2944c973cc9b427d5573c2eb37c64e4624216c290c5645b36cbb3e82713de383daa5cb4029c6dfb14c43f4aeaa9c93843b784fdb63957b75f39088820694bd0706ca856864fa031b682031581673608dc9ea058dea014ab79eaef74928d4cb33308fcad06ed303a1ab8b6cbbdac332a24ce5474013c90c5b1b869bc9881323435a097d09e5910e39cae5a1bc148ab7d8aa12c84634864930c24ac4f375731cfb65d5992916302640a524a4a52c9a2281534956f946473541852d0884e6461614f9a1dd95cc923c6298998b21c2415518443f86949e6c390f9463b69a63f2f9b328053c01872ea2ea8fc45185ca3bbe74b713528cb3525a60f7639f770824686c1b2ad719fbda1d4c44c9dcd0b24f5277fb6720e686270b5349fd3b1215008c6b24c26aa943ae71146f063072f0c42ea114d3986ed1030260e88f2f2c34e7385491565168e1c18ad324fb13482f5b83b2f6020a6895f9d24b93805fd5556b4a048c2e3106eb02a53a774b169106a77bc166137e7dcc4b60569e77dbc6d5f9c276a011ef59bccd08793b695eb3a5bd3c1b64ca3bbfecd1adb5f97294d8909b31772929c693ac396d412549b1cf910aa3c60ca0250928ea4350b8c91df7d31474ea07cff56dbe417b16603c6af97329d53163343e0af3a84ed37cb91a349bf2af7ee84d8ee504f2a73e9dc3301480bc6f144a631bc3c160348773cb0b6a3b57fa1286e2107e950ec6a682edcac892926966e28ab2a482bd5991f8c6c6f5e231b0826191a8c8d3c2701984980146bbd1b8a629b548ce578f5df90b58305026aca96ef20c77610a2da79018b0047f5351858c2c99a035f2f339885521d09611a219895e987471a2c10ee576e07320b7f9b5d678221aa995afe550c0f72f1b647f3ef429d3720802d7b53ceb917feca63860337ea126fe41777b85980744025ef9418bb4c1983c8af0109d2a0a0ff47c121de1926ffb5b3d8bcac797a0f5309c8629605a757a6ae91beaa437cfe184bfd3b703052ffe8cb2d7e57b411719625a9f1e11473aa8a4814788c0280fd179596db23d3003461314896d38a9e8fa75e93b65cc76cdccf24a72b1294acc47b3e7843b2a322e82c98f906ba369b7e8b588d2dc8056b70e8588c4eb80ce8300630d265a8f6a74306374da0622eb125f51764c81c55b9966c27b562c5e930a30207f825b27711c3124fbb98d4a8351980a04041e99f7af63ac015d667232162db0e793eebc70dea04eba186d2c14381ae886f7c6b934f587710aa095b206621cbe4ca1bbb8752b5489626ac72290315fe9a967ef6980f9486462b74e7938800b020519c5c0a684adc1b82f0ccaa3988cb5a28264ccfcba1e8119add64a58da88bed5cb01f5b0410a3ee03c9105029ea789bf65bc9ec58b4b2b0c9aa9c7859a48cbf0c12cf9e78049528118d366d0345951d0aa9102b5c12b36c6022fa4c7b4554178a8800c1a968ec74569af3815acdc39bfe029807a8ffe1267a69073744a806161bb5ab59d5340b8218054a252560c188314c177c5f3300e86863eb97253e6778415b77f140d498aa104eb291b21bdc2c5693a39254cb01c8a3a9e8e14a965d107a6b98eb09a26c2851059a290b6e94ec10138289148086456047750a3f8aadb5b1693c9642a8ba89b89c6f45c18ba750656c151cb563ba7260ca09c780077b956e5275cf998c86748d2d332a9008f8625bc61939b18f0c063f171175338464c0d402915c6e54682fb6876c7338f654d1916655fb19e21f18e2c0629e0962457cb62bdf3c93cfba8a551c752642016f72b5479615da16c1622b21a105da72413df20b125c48b0a76001472780be292a98500321c007b1a0273108be097ba0e5972a2394861c5c9f8e0093dac8aed47a6467570299a5501c6b2f281283d0013260901a08531e737bb6baa0fc13895253ac4469519c483b591d28cb8a9a0ecd051937eb8d82bba18673a17339dee827be4156633d8a2c376d41fa4e7bd70d4e199ad2b1951f0dce0b0afd296d3f22bafe4f13638ee2540caf8a6bf7d0387265bf8812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 +ciphertext: a8ea9ae69b53329b2bebd1fb1e3a67c0b693a15630c57550e31e59fe4f9b617dac6d5e16607b7433499cff0808d4bbff91b2ca7ed0f05fd3223e9300e4f251ce24b9667afe7f88c7fb6f4d7d921943fdc93d98fff7c4c7ca1c5f68cb44365682363296da5985dd5270007625dddffa50feb140412a6bd3a777b3b9a6b6fbf43d8cc90f6a1d24896c387e0487f03ef8c45bab4aecc0c90456688799f7a5417bf523deb8af083a75429e08c242587d01e6ae78f7b165b2dbc9e67a8e1fc61f95d1fafedc77e7827eb6e718941fe091138f9c4afffd53dc7b632403f4197d53c8658b67c7905a76abe466357f2690ef633d4b20d0dd73e489b0d046d2a684e21f95fe1d19569b076a6ec0e0e2ba05e8a838815683d5cb3b84be0fe3e363a7a3761521c2e04bcddcdad2c956f66542c23d7446984f6c169ac4c7846a9d8afe236d0c8ee7dc2afea49837549f91803142f889b2ae4a629f2ee67c2fde6032866339dd512896e8ad025d7afe1c797630c2bb4d01e4f5004ce288d1d879689331686fe6934b43f34f40210006a4418a54c3e3cbdd96a09ec364cfdb76b72dc12ea17e7061a3a1c16f04dbfab2cc69ccb244fb46975218d8e15a5eea8e85249d901a2379054182e2af17970328cbb58c99049afac91606aa090bad9aef751b76ab1430be40f62ae0a81f6219d98fce9f71afaaf5f68389d07a2da75df31a2bf58cbb4feaca21a775ff92917f8b32b72d0b880a77f9bec1074b1d1cf9be04912a8813f5579c911d46d06c66ae1c943329b246a0cb80bbdabdb22063754840da03c3c3d4a072f805902054327963dac5d17074f60db1a37a3d7b7be87b953324e964041964576e95cd9d7adec5a5f9386538912e7140b758d54aca9b5b6adb631fadf6db3cdbcc6a2f3e475bf669e0888f5c37967feff2c73fd4498a95ffba69a84d1bd2ce7524e4e5f8330a4c6c6b0714fd7201ed6efdee9f08fa2304e9999ec2dbe6a4756c67514e3664fde289c1d73bdfc65d24e1d5c6c1703d5c466df114a3017ec38510f44ea50cc7e883ad24e340f3196263c19a4d9fced324d0d1a3abdd5f3553b6e3c14ed46faa97fc18d0db7edb064fafc4fe2a018e2d1943301b734ed76729043f4a54d1fe75f0d7d52419b597e3c6a33638e9ab1d3d5fc971501cecad64f86b3ebd05e372d1f56ff635839914f4d202094942ecfd5a26dd59135f574d6924a7a64c6079dda2e30d843db9ab000bc67fb2aad73d0a142da2f56cda206845cd433dc53ea67b9ce78bb9a860f34f72770afe8bdb6d0bab4d2509be1dc2c435cfe59aa425cf607b550ee8e2c6e6ff885c4a95f659ff7f1556f8a02613f6b12e0693f285954a84e13996342f99b4f2dac6852f7d9caebc9a409121a86905c4f540f5d88b44b065cabbec28f1a48ccf635d20f4d0c7e3264888049a7983411a1bdd2d393b7246d5ed0b74e2ea568de1674a3339e864d8a54a32f65f2d19993655e04496f566b5c8e6f793fcba6bc2a583ffd61e7d23c3c986d178b8af86b8e4714bcd405be30dbbafcf5aeb6d3abdc9d81b73c7c219e460a8ea5b253dbc0aa97e967f2febfca583c2ea23810ed31f6a1062741f02656ebb9af490b43c3c935e008236b9be6cf7cb545726a59dafbb769d31555bc1dd747e9800ae5190a48eba0cdfd175ca609be6cb89e6b91ba78c761a53ece35edd41b9f61e0c521b848aab26c557603c120abfbc01d1d252a6bd31fb75ec8d17fa0c15727ae7d160581b3689a365854ef10605425e18e28562aa104c7bd1e7ae2e1dfc902928261833cb6da12da185ecc05cdffd69d3419b27b329819e49e41e8e64b0f9c222ff04249f9044d16a3660e3cf13e1769f9d4f33f8c39f9c491e2085b608c3b430d4ca662175da3d9c5a6dec274ba37e0bf2b0d034ec067d614afe9e7cd34565dff83bb1463a8c0b08d4198bf7b5495ea294478ffe57c994e1c99607a3e9a00d9ea4ca568c81aba09fc418427fcf343ec9d3ce37fdc1108ff017ee0f4a32d31a824a97a96ba6dd5f3fea36984931a433d774950800e6a8dbfd65431c348f14c7762d68277f9eaeaaed15543fa041c3ab72903370e947daa93db55c9dfb71270c5be4f74446afda6c63ea115ef40c3ed2f62c38dc73165d156d26514bb11af35a659a007673fc6acad7043c967e3370d8c5c37f0183ec064dc08f6e2b687b736fbb703f810d0414aa9c +result: fail +shared_secret: + +# Private key not reduced +private_key: 7445654a55ad6aba3d425d6b872c53fbc83988fbeaa5d4ca645854af8ddcdf4aefbb448b51d83b20c3bf82ba45000357d49fda0dffdf011581d2a4c4f186522d568861554efa0bed853f96c927a3c2aae9bc07d47b497f6ee9d7073d5bfb28b06818549e9b7700a387ce14420c74a5151555deae8b217bd846c5a90cccf9be6f3bdc8c74f2dbafff76a1a53ca1b9137ffc687c5304a3fab4f772c85719585c39fc923d8cf53dfa471ee7f603a4e34c058b8c768b051f3f3c955bb8c94a26d4b6b458f4cbcc79f30551677f311eafb15cef3a183c323f8841ec76882cde61845cf829eaf3482a3ad116f25cd444f4463073fd96740aa4a72c88dbb9b393289d91b85b20ebecc48d96c0bc6dee84a16068a80d759d0d96ea6efbe1d83afb1b79d9280c32bb4f733d259ad3bbccd4edbf13446b0ba77df45d85f6494934555514353825c33a0f04ecd00545f617d96c5f4519dc3ffd73a65eceb9ba4ac7d338e8ba3bf1e1b3d0db3f48b2fb913154be448c76195ba9cef4d4b0f8ce458540a678984d034e4077d65116a4c868dda808b3e1fd7d75afa6a6b391eca57039bb3d5643a5545394057ac7222abbece46e06e468493daaddd737baf64fabd956712b57aedf5a462441e46f796d0796cb5ce0717de7c42c4070d8a5159fb7c0ebd33e29761e5939282eea9bac35e8e9a12a74f3d97f62385f6d96fedcb0a3bf8b33d2882c55ec9fa69173b3a6353fc357e1b51cba08c3642c449ac9bacd0b39d6a2b5a8b54aebc64b810023cf4fa7c73b3779ab468131569a614d983103ff2d87bcb455c15c7d5de96948cd9652f316e9881879f4dd43a44ea3239680a7cef645b750e42cb736245fc83330ad84d8e8b56bb535b865a9bd79549fbf8ac3468b9e90158b0b9fc53a08b775bfcaf5bef4b8785f26589e65346b7f4469b817f92108520b0fc9e5eae4c1fcc21fe5f6aeac3088d94666b54cb3cbd0e3887f35bd670fba3d168beb9088651a377aa8098c1f87888655b0bffe364e3997354fc1b8fb4396f3d79ddf44c35ee49535aee7767ce70f67a6bc733de942cbd8ee0ab46f1947de5b8fa09ce7f4054fd4cf6372ac5ba9180af205c54640e3b9c0bdca617ddec519e236a44d7fc5a183579febc4d1882d66a96bf2cacb9493fe4955843a057de02319a1c49980405bc947283f95643d0b63b80d36b7ef39d97bdbd57926b2583745de95e92a75d70b0e43be745e075e775b84480f8bdeea7f7ea738b1c36b3891ee9aa453ec46a7ab2aff73660983e5fbd58113f7da1bc0ad6df0ccd34bbb4765cd73fe3f1b727483b76b0f62c16e7b3a0643927eace34b482674a967474c1bf77536bc6819bb77ae4db157267c6648c9c15f59f07cf0ad7b814048c926d5fe2c14682b464a4c2740a37c3434c7d55fb99efc8e3df8637bf8b4ab530731f77653ec2ac15a174769dbc5e435ae8b4668d009cfffae716f48d3785fa007c788bb8d976b3e9b5455bbfd5ee19baf4e1e43a0ed0dfd4fdbadfb6dc187bca996f7b03979fa6a0343932eaa86ce45c22ede22d46ae25ac7e1f99c68b7ae690bf3adac7446a6ee543532b6deddfa74388a13ec320f75cb29b4a7ff90b97c9fe807d62ad5eb759a75a9e552fbff9f111e4e43237f3e758506e53fa21d488c1eb3c1e339a7c8312f1335af7a8a456b581be6ed0af384d0796d531b6af21bfb097f5c341b5d38737fcb055bca34def239c0419598ae3d33458ffdcf2c5dce35bb393b89dd876f9dc970217f4c6cc75892f996b57db60997fa127a3d73bba81cae4c7cddd49a9bcd5985ca4bde5d20267f6e66d88e25e2491aa7b51a6e3aaa6d34f870eedb3db6fbd3ff44b3a674750967ca89ada1cc2edc9e9566cc2db42a696e86f3711ae4d7e4bdec26a6d0ca9446a87baf63789410975376a5bcb90e303c3dcd1d06f6129b44e388672366e32d1db6a613dc1678797d157c55b4741de9f5df96374b16b8fb464d4bb39eccdc30134f48adbeea262ebb0af5aa53d6ef29663b6f1d3a6ee6940ded5e081f42280858a06930bb64e3ac75a3df36de070752e28e8e13dff1a69554a774507e99fbd18b88a477fbc2fcb0740fa132648d4acd8d668d4d1da73250cddf53b44e6539b941839ffa36c435498809c3804695f73334e47ad4ec259b86f6ad9781f27e76a1562bd2c206ba3087231983aa0bd65420e2b71b749605960c94319abeb1e80aebf274b27a9237740c07114614658c51d0c5118b9fe6d0064e9b47641ab189b2ce2086293dba6054a1437d00719b5c11351a9901b0a15e4c7efcfbbe9a3a7ac6ab157586c8d5b68b2d9b747b2461f2a2cc3179a70926423ea5aed845407846bb9c5c57534b66a6cb8b480c9a18453e047c58ef00cf652867b474c7b1b62fd7aa0d7b4c63d881b05f6a8d8549257d7b0b7153525d5b295e8bbbf3d36da46a5d425601e9fa8ee7402535d553bb60547bbccb7777b5e48373f2b38f3c566e7b98a85465590ee1c8cef16e4515ac3b4c69f99ca7f3495254c345b0405fcf975bb5cc26a1faa82fe109f8d670f17164f25878a9e8834b4271f75338dac56ca7b4bb3b56ae95444af369c20b582edc204928037434c3c5f8c372fc9449a773261ecbaa4ddb929f148bb6bc471d2a72706a1f621ca295eb8b44a83a4b99c6f3bb04002b2d6ed42fa5418bdca5a07f743754882e2ec966f44235fd3b48c1ba874d8765ee30156cbc0456e610c5b02c8fc3b6d305aa23a5528e77aebf2bc3696a37c438a2a1259054c3537ab8798ab9c16c2b9bec71a861a96ae2387955cb95fc4c984d2b936be897cd05ac3524b845a2aed4bb981dc47120fc9e4c6476e7847ea69755886a5c85cb059ad0cf05b0aac6609104e0449e36815efb9c0b232c7e5b9b80e386a8ab12be22a72e0a4efb447b253c65f619c2c85a878a54457d272d2e9a32d2668d9a02089a434a1bcc4cdec25f909640901ab4ea97128850335e63882f363eae699599a1bafea68c9987882751b545795ed6428162993b17e7a7fbccbd2115c9cdb83c9852912fc21baf53082fa41ae41723a8e6a8e6a3c008dc8b8b6250c7c740ad2a3b92676960db68318c3cf24b855b62b237b97df54c561b72b0bca0877925734d650c0824ab8081802f166d8a294ffe8328fde34b02436ea27086b870009545a71d56ccfda986d00ca3e6931b85a53cab3aa85a2184e55718a9988e11aa2f024076bfb36c0d222685977ec39702e4eb7045229e5256890ad87d84dc8de5c44f8e73c65970216c6312bc22920fac8e24a6b251103beaac8b4a911a1bf62870a33ad9986d81161a3e44b0f5c9508be97324a97107cb15b2a2b9f6f71b80fc7b59d199ff7b04652644f10156c2dbc33ee34cea079e6b718ff4e2ba10858a2b33827f7019bacbb952ca83a8f38d69422431fa722bf31683e3ad6e1784ef9ab210391ee600c2d0c690d739ac5a581c4f5660576bc743d79552cc833222b43e45201888a3ec82194dc2307a07b8549c838bf4a70f9c4f8cf5868710cadb4636bf12a257a57c344061b9f83dbe9324195651020c2f02574a2db4aa4ef527e5a66fd4758382f96e52d84472852a30b49ee7d60698f4b9b6e9003f475623e345e1db767b143bd30bb5273636ca7926f434863ce41813767082873ab5365dcc72a251c035da426fe6db4aa1f34ffa45c9277327a7125c866546bbe22b9c09c054e133b3d8b3fbf18832248e5a3198c89794c5ba4e6486574de79cd67626ef2953007431ad08895ae499cc17111f76c002322a6602b677a922fc450971fc90c0b8ce16dba195fa80196569fe8b87fe060311867e6c6abc87f2351f4b0da1f837eb7830b9319498f36ff707c80926158b84a934400f63911b5650c6d205686f7bb7d415ca9dcca9a94c5706945580f49eba773067eac6c989a8e1d84d2586c58e70793933367da73ef0509e27a97f03c28a10086d782a3ef2251d08793748357f411200b5803f0c76c886b35bfeaa68544aa038374f868c474f0a6df1061de88886a1241f090ac4c7c17f6a429f5ca400e8dc98554c56363c8fcd728a1fab7c0007c67915b7d793c0ec5514c8f6a394c8502ee3c63b73b26da015c370826278aea16ac479884ab77a2d3c0b147e93181167bc1980627b46b7d06509d7725cf1085850a53f442c226cfaa24c8721db0c137c7a72b5898cd2137839202db535cd8ae76e42219e49eaabe2fbbb643742ed91551cd54f1de16f63c953fbc7b5849ccda3167660fb28f2a6ad8327a6d6ab649eb22ccfca574733cf01663fbadb3be7c33a482c13e50027d76a134e114c54380c1e84255060944dd10321b29149922be789eb0a8fb7721fe98a1e0bee89476e7efd6ba100e4d6c896905fc524e7f98558672899468fc0a35e2a8c6fcbb35b2912e4aefb8c396bb9738e3c16c95ccf758e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c +ciphertext: bfc010052e4a98535398330db6929dc14274ec2eea49137079453747e20d8348d534940809227b777a2bc15714782c05453f524ca3fdcf0df3ef076133b33a8205c6efa7f0998f5af79e7ba4a60d09b82975c6bb4939202082da7ec4d36ace0474ff661f27c127f088948dc789263925c9e66366ddff38156a7f29e4966b14b8c97e7ec42a845528ca6b6b3184bca46a10df3f0cf97f205f3e200028655002e95ddc121e692967869914900253f021a2ac4f57ce80b877650ef17b255bf6ebe351177ca540991e5c9e1bd2f11d669ec68e9ddcd42acd87738aa5b6907f957ddb88972daac3ad492fc42b34bc942a54a8e95ae810114e91e56bf15f2925174d2a0ffcdc143f60f32ed7a78d1267f9fdffd8cbd7fb786ef9080849a96115cd5447a0b5d939b2cf7c72c109e3a1e001e8c0294c6cde41eb8cf94fa1984ff8a69753b5169d83dc7daeba17c044d1ac0b75a300d604819989e55334cfc159c10c10d57b0d4247bbe568831c8446fbd06e61d86b36cd6cb6928386993420e6e4cacc75c302ebd7fbf68c26e4e47ee9b95d55e6fdf84ca11a20109dea65610dfaf2409cece66b5459d5ccdab137785985826f1ce139ec6a85c14b7179028e189abb634ddd65e90e24d0956185e10478f655223a12c12a58bea556d1ca83442024590e7552ef3de5b507d4780d2df02a8d1df58ffb198e7ec90105260c3b4690fdc3aa3eeb29a7c35d70e17e95ee80dd29e28d3f983af8e56a8e5a4e342f7755dd63ac17d760112ae33b8ff4fabd99ea81d5bc055ba05b14bb2d1bc5df6535c669925f66bd28c36e3e138a43f5e52aa8e3bfcfeb6119c2bc2ce1f07ac342d376df5955dcc82c5e1ec98053617dd269f94218d7e04f60db5f6086b517caf7e378e4f997871002d13fb034d0431ce0ceac5790f9ef66fcbd576e483da676dc2656f39e13ef9e53b0f3af715ad68ed200c153c3d4faee4726e40281fd3a8645d5c44662ed4a0cb2b08a546e4465df1a99c96d6d8792a49073dd33b265bff415cff1870ffc10baa701d18acfac906b93ff266bb0eeff4f9e25ff31bac8c8d55255d5968b63376236434da60619240ede97dc9a8e465993cf6154ff9bf26b0c30b5b090742e80ce28146c41d24a1309826a50f1c0eae9a92741d87da56c4a3e5565a205667ae31e284158709d3c606e4019ec5a0faa3dceb1125f15f7366e03801974849d4393e8ccc539f1731c574a072e8e1f283d2a58ba2094c7e1e20aeb9bb7eb597a2af60a51de419ce403defa27b952aaa1ffbb7884099d47a1f7fafe2bef66c2217c39b2ddbd0bace0e6399680cdc3dc1584bee8803025723a9ce96861d5ac18cd3ac86f88e6cdf29bea502845850913bb4ee3cd5aba6d71be09a6e8baf9afe06a4de80a8dfeaaf6289f484d084a7c47a28235eebaec311feccde4f2564665f7d100fa728e608606b15f3a2f0933fb2ec3508a329f388e3c19fed26e4d5fabe83b36ef8441d0e6f96ce9cde8110cd3b208a24d15b71877d54a7b0a9cfa3724b05d8f438b1d70ed5811ea82609a7e3482af67d380e8467eca9d9b03a0168240f7634f1a7b976680f877c604775e877fd07231ff766f22cebbc7971cb545df0faa77d78c35d1ae13439b340f30436071064e18f97399422484b12116ac86a42132cb044f4757623d70f7508431e3f4fee1be9d13e77d2a98437067a18e0b6dfd3a99cb43aa6900382ee5d3441cd39749d7528df82e964e4b42cc0b10b1fb47ae4cb448a57304fa0501ea3c171d6c8f82c542e144a56d7081e31fb0ae0592d9e7f1f207d4465584996e100c3cb7760f95089f73c19113ba4c683174d8a1830f2e2f8f03db4b9c988b160aaf6b26e1b49bcd0b45b2ab61338bdeba09b7356a647b77d058e046752ceb67bf7edc94f0939eab75135dff909e164c96de4e4e8420f20396e04825cca4f09accf33cc2fc313d39bd65f9441b991ccb9bfba1c548f434bb75824ea31ba21e8a0ba90bac70f3ba7e59b0411fa4bda9f68db7f2df81ce7ffacc8ca1b7b39a2e408d471a3df57f39bc662d8ef050c1638441fa49d60bf74be7dda58cea679f90e91f8d7fdb400ef0e8dfd0fe2e9a6838f76101e2edf3fd83b3ed722b12ee03d0fe632814466806b882581b5638475f160e4f8f6eec6d302f8ebbb2e847aa5978909f7ab1dbd57170939a65e74c27b92235ecfe9dbb67051f763680a0 +result: fail +shared_secret: + +# Private key not reduced +private_key: eb98d9301a6603d8822f86b6b54f86f2eeb83c2feb398dc3583ea12167f2563aff15de5364b7aa6ab3550343edc63bc43503eb23faea7edd60195ab2636f45fe2853a98f44b86ffbf9fc39a77be88d7f60cacf829f7a6e1964cfc9cf8f4588995883ef742aba74993c2a75bf4557c71fc5390067ac00a39fbc7d49c667d56b168a83899e94bbb38aebe837b53a32e74b8efaea2dce98105cc32a3fbc5e4d71b07bea6cb7587deab9f85f8309a64dc5d696eb0d575be8ae3788721b16ee6f143dfb73bd9e2bb04cca4074894b067a70270b7fc886f77299dab8d3b3a5545b9c48be16acefff82473b35da26fe5f0bd7b142c97a351df33c57b8f5db3db268e7880a4491fd4977b6d5cef4c151593bf779e00eec456ee7831b5f6066e757f7844f660392f609e472dbb0b8a3325a498bf739eb3fed48fcc6edb8ca6cf80adc9877e894e95094c3f5ba3fe03b564189937c1f13f488d8684068d0264781a80f878268a7c19b8c39899263cf46a8b4cc91eb5afbc8765d23a40c4dc49decbf917737f14765d0e7ca1987923665eddcf8f4c22676f754444b8f9435bdeb275de9da7dcb45feb8128483c549c329288c9a55991f1fbce3547f22e4d88527a8d24fffce46dbceee309205b2547b32e917a39d4846e45c5d4d16aec4435ad8695ad394f36be7e33635829475f418a3383a6d823037dae247780f16ba3fe7ba2de37063b66402d360601baa068833beff325f144aa75f8dba3ff5370d32e5199a8f6eade5087dbb84ee2903c246aec9557dc795ccdac363806cc6be3268cb51d333101af1f019e7bb3479ffefff3d263763c4d6dde76514f9f9f5d6d4dd7536be73d5d6035f3189dc40aa6bb6fe7ea2ccc9e07c6262878ffcb7fd7804f18b08d5b4d3f2b1287012bfedc54b81c0bffbc77ac1a0db6dea6c4cb7ec49d8858138f45d9e3dda52d33d13b533cb6447910cc4cd2ea0b945d220845c1c4b64b5c84bbbf7c7c3a493210d559e3bd68d2ca9bf44b0f7ea760c2f5a37e78a84a5b14c6affb926ac622b8f86c7ac7734a82125b18f1575fb3968a4634d9633ca7b1afd3e56580c34bc3b13741406be06396e66e64126888055aba9c8dafed2bc344a38a710dcb1e7e7fd71ae66dabc79cf79439f5340225378e8ed62472584a477cd67d8e2733b5d581f7d6cf9a6855b9a4479af697da6090caed93a642be9e224f6b1d2fe3b8668fa5a8cf27c0fec1d7547b2dc398fc88158e87571f8f6baa559334595225dec432782e32efd1fd7adec475178bafa3ce59c96da6449b75dc5aa37201ccf404c5efed99c7b266a97d46495fe316f0781ed93dda8484a2d5e74404cdefc3be010d9559329c71487eb7bd7d23e9c89e4fda601d439b8ccfd3faeb01aa9efafc4d9ce994868ba5ecf3e330128e61ce9a6c08c5f4c65af7334920b659b57dfc658ca4d9a5ec4c0b93f43b9ed580b81087838ae28ba9aceb9171d3a927d9b384840fa5ad47eb94abf2c96de847d05ffe98e363d2499f1a2537172735537878bb66bfb4edafd9a1c4270a8a00ac667e709ea2f7c46c244b6b7676087fe8eed246bfd1d855e9591de44e5142a8621f98170fbb55f6d8e10e38b6dee40a3835172387ea82f339b1c6598e53d7fb694978bb5a3b5cadd28f2384d71ad6bb1a1569230d6d42c9cb9e215e04bc6827d3b9b1a1fa3f275cfd32af8b739ed4875c88954a36e078ca07f956e87442673fa9b3bf4133aea463d6a4d8caeda7afc4027e3d4176c694378698a77284b7a9eede6cb43fda71385129f3d9f3850ddd5c6ef5ba28c357ba766b960e351df96fdb70d320f996944fed04699ef28bfb243ea71506b755f27c03279d713d4f299ae6097df8cbcf4d5163397500fadeceb95e1ccf64c45944d85fe24cdd041acfb891d8a042db3c97fd4edf591503f4b221bb9884499613e37342b8d102b96117c88d6b589f9545b639cc190cfc89d1441087edfadb8eb1e2344a5cabb357acae40fbebe8ee59b0cf4906bc2bc88ea76a68489a73dd5235739bd6f8bd54a888ef57513b6e1e74dfbf774b1e469e77d86b85cea6f0cf84b73633903aebb05911fc7b9925ea8a7ddabe8aa466473b2002f55ae2568c23576f70648676bcc1a7ae9e99df67f139edeb973a8a9a59bdfa8edfb5ceaaadbb3a4d7f5153633651904e40d7b863a34774ee1e401a9a24a960045d4537e5124921355cce831936f307c7cd807eb376ca1b640e7a76964c0195b6848b2cc9f832ac0c11c3c3c7290ee182c46bc1608c49e809b1c24a7c738845e9ae972d70c5ed346c46ccc73e0e251b1b57368b96dd71cbda55366585011ee659a2f081a7288c873c8a98964131c078aada0ad1662bb0d2b0a1555a3c84555c593231d167d378ba606257fd3958bc24b47e8380dc370c374a869413547d0703d28e4b5ec85cc0c897f14d5b03d6520937295183ccb1059821c2b866e755e24286634ec088522941516c592418a4fa872b2f911018843d7c877da76c1822246cbdcc046695a1e93aff063a577fc0eff56b27a2bbb56f76dba2b34b6a6765b78493f514661a4a83b58b42e4b96b471068682bb73f535e32c8fc7964a978b47be9b23cdc2b33ce980f66a033f8154bf24b73147152f544939377ba2ecb5a288276c712f2317ac69292eea9005a74a3fe336aacc4257e46395fa9a96a3fc9172b5229c393021e57265d017f6e7a5e92066b459199957cf4dc653ac222bf0b953c3c4ccd5f7463de539c024bfcc9475cb3437c22502fe16b909f73b6e733c6dfc6d87cba8a13220e823a46ed900c7649494006766a23cec36aa46756d3a7124bffb2af34c586847162735ca2d1b259f5c1eb0912afcf6846641984763266bc0add6d60fdf5b6fd87343a5d59c108cc663d8b700ab1dd5c0ab60fb66b764201722c9c2f5b2ce9a88162c3135d44ca9a735fc90b35058bbde332063820f3085cad54c4a8cd8708d43b871ca2b41d0cfbbc066ab45bae33cbf2700c67a5a62cbf1ca19c2431b6c52ac476fc2ec4c00ea9c14cbcee11b1232d523aae8af555958c3089c6c45b47ba58cf1f884e77893fd296ce80584a76abbf2330ab058c2af770e4468097cc20748a188b6620f128912126a899d7b0df24b067a73c4329314c3f6b0b9b83fb450414cf0a2ffac6fe2aac17359b20288a14272a952642958058f04b24a69b93492bc0dad67a7552b37f2417cf7e5b889e97b2d02980f7336f8e0198123c855dc1a40bbc5a93779c7c7be7089a8440214b3542341e56499ac1f6ee61b981705258c5ff6e74637fa0e48556bd3542ee342891ea4b4dd5a4982b0471ce63d61b3adcd1197dae05627c5993b502bf3025f6cb8792f32264184b362909be8ba74a1b6674e253f28b086189115129919821b867cc84341e3ab43b350a5c79d5af47b4cd228856189454538d362049c710953f33678c28f3cd9812d731aa9f95004b94425c60cff24186f644e749a6963b77760ba491744ccadb72e23653a3a08a1f7bba316a9c83e3113cb49022dd2be9a4a69c7db6145377289c921ea0292f3e4ad84e99ed72696dbbc97a3644478761d6083aeaa59004a9694d545835549ca3357cd9d63007cdbabd6e1a0b661113ceb370fac0da48b893b3c8635619e79f4ca14431cd9a1be2f34aaf3bc059de3a3d9b630b5542f38a5a1712c67327c893bd64883b7701636b0576223c4868f2195716c3499a4295b0387715c9ca4feb3b1bc08c6e09c1e809988e2f414f0b0cce5515f43b50c2dba028e9ac11e6368062c360370bb7f5655a3a75c2e7aa86ba9b892019db150bc7dc881c5e3b24e414780512bfefbce95c914cf060a76fa4c34359c634a1a11c40ab7b56af1d19e2732ba6f3cceb93cb31e08c93f2a9a33841d667079f1715a56013c0e68386b639e414540cf2b13650ca9378234b94c24bce9a9cee8c2adf4356f246dbec0bd9b371ddd296ee623603edbaf65e734504844aff0438d163b27c34d52163d736bcb42b0a1a67067a6e84bc8f849531a631fc55046da2b31e0b99b938d4f8b239384bc2ed54e46e17e9a8297c2a16775f77859ba69c759638fea8fc2057b5105952b34058b329ee7b2b08a69b00962c31a5106a281890ad6257daa8c6ad5854eec7e8a203cddb935ab5545e3e57ee5f78925b1531e5c4593a7afee319c5215645905b50cec48961b2b6c1727b4794ed382c66c11b67804b18c3c0000868ee4e3ce4e9790b681161b2cac3f8a1a419892608814aad65880e683fa75ce66335831a7bbcc236dd6f2b8c63560ff1939b2b56b97e87049eb4c65f42d640c0d8fd5841e48bcbd1815ef0c62da099f5478bb93198ef28d89ec6714b0f142ece80c6a6050d3aa936c25bbed1dbcfc99f39b4805782b5bfb6d44c0e7348fba37d50b05031c0489d4294be6cfdc6f4146740e54fa5d698aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b +ciphertext: 7cb3891440c7d6eeaf5300ec18a786e5179b97b2c15d1cce3d4e5ff49e6c4494c165bb4b5d822e1e0d0dab2cd477816452c21d8efc981549d4c6ab18683f19c29e3a938ac1d6c0eb18ad94b9e1e8831aa8e66455fd0b91df49384465d7ffdccc9e023584089e7e30676fbaa0762672babd2a360a8038da9bd50c0fca9a5dfbd0872d8777f829b3f17c757ccd44b22af73ff4fee09fadb5820c5404154ea71cff70fd5b3689c52c0cd76dc0d8a4c2f32d32d9a914453be5ad2a3e14e3f5d846c92d50c4d65330b1d15d88d7b8f466d31f3f51d23fec066ced6f751495d3737bfcdd87c27559b167597d0fcc90e66dbd5c5d92a9daea58d05ccf286e2c27b04ca589ff454a078c4b5b4e5110d9d5e3752e9e8025341e425099a08045cf7154c77a4204280feead5353780c65e6b799fd26eb26e1dd50181c9bf76e5e2984dfb0deb74a4ec89b9a7e12f6e124b2ecdd82fa6d34473b9ead35b28f6ccd9709ac1aa317821bf3e92d952f39d9bf98811328698fa2faed3d9dcee31e334f7838fa82c397999bf7372f825cefce367b800d3369cc20161da21ea5f49e9c1704e3e9e6e87210b684df8a038b2143c780e4cb7bbb072a2fb94463ec095816bd499f6b5445eea99646ef1dcf4c331671e0948f27bf8bdc92616ce200739c86a3901003002cdf4f6c353a0abfbaa8cf9c34a8720835e6b366be22933d7a965f97286f38e9e8d21620a20131be8b97e7a67a2ef535f893124a9d2580222db771badbedee98c79d716bb3dc091101caa5e17d83ce35bc364ea143cccefdecbc0c4bde06d47ccbf59f3190e174c738f10433db16355cbb1644ef2ea8f33ae8ac8456afa4f488ab1327885a635fa2bc0df50133f053882d66f5fd3e649905a3d1495e41df802c216d254cc519bb78c70cf0fb0d28092e7ef4329c36df72b98f37165c229722d5e643817ebad995c8a361b43b7a6ba60a645104ffb57e05f70b65153965f0be99f76f1f798f9043ee86acbbc8102aa01a304014f082425c86e88f975272fe2a97261ac233e5b2491f0113fed7d6f31582d51f5bd27ac0f2f6a66c5f584607a8845a88c57d3efc64e07bed4f31cdf73c63bdc387085e2a50b30c8d4b393e055609680a6e39e3c19c764d3e4f01a536e2c112f3ac35cf3fa0ac77bf2189299f0de958876b65db62ba3d1b6b55b3f11321aece3b41095d284c4c23a6f86ee0c68e7517536e5f7fe09c6b3d543f0356fb98a75c2e06a73eba011679e1173009c9a5a1b7944ce1749264a2879dfc797edc0616862f582acad6cbe3615f6096f5b99e5b339fd9109b56ceeee55752145e5a6660ca4c948f1ae4169b54563f3ba206202f548fbffde7e505bcc9fae4929162b550bf5fe34af98891d57109b19bf31c57630eb2b9532df07bff6097da78d5874f2e9b2e5e01a35f904218771c8dfd6d230b4d1780875b45a1f846854cd02c43b76774ca8a0d2a1f7afd7df4931c1762c3fd5ae6b401e12b91641e64f3203159cac0aa43930c8fb14f5a9c7658a28399e9c32a77e738694a900ba0c160d8837b587be3042f412181bf2103b94329e2e143916323dc8c18d00d6e35f6f7e2441def99273d36cfc9685f07a7d34366a92e1f447e463bd085982ce62304a5e3fb1830b59292e94f7a887fea83d7bc014c94b2896207836042394ce50c0e7e2c0c9de867641a22e3c421e5b60a58291862c91b59e7bd4f90fbe3b83240f4b28ed38cf3b8ea899df3e569730c8a7a4f2a9fbec8cca2c06661e9058c54be3541c73ea24daaa34a659a564c51aeb2234140a5f110dc40261ad594c2121780b956d039d23a8e3a1a12aa99e5fb88edd774d8e9d22b3700998f91d05ed60bd0a89a3224c322686f27932713dcb24e363955a548ec5c625b7e30b6dba231f64934a9431336e74b0e891d5e1866965531a84761a632e0eb007095b90e8f8c409e051d0f4843ddab0e84f2711e4038fd6e331f53ce194823f4444a77ec73b082f73160fa266c4037fa02e20a2d01d617aaf7639df69a8fc83c84cc350807dee143c089adac7e052384c2f1460e9b3f3209b53b3e89156953255eab169715845f458676ff656689f77ba16ceff3e5b285c70515a1a5074231a02a97ba8492e64c70971f522de003129c517aac123a4509ecac5385eebaad022c7c5ea1b29f1ba4f68e7c5b88528b7731d1b46528c579d5346b4741ef9980e588 +result: fail +shared_secret: + +# Private key not reduced +private_key: de2a5203b6e42758f0ac186bef95fa9226d8186fd324eee2eb9f40ed0bb381db4b012a4282775c910558015e6cd46581282fc66a6e65d90e88c1f7bcf2f99cf29ef4a39d5b6e3a69186cda2006ea145dfbc37ffa5477bd465d46a13f823da983660bd0ab6ef38df4fa86fa965406ede0faee8f865bcda4d7b879cd54c8520acb99b74abc1a7af3b767ac7c9449613a4a4c6dd3b31ddaa53ce7cb6652ce133abc74eeaa44e41feaa746cd6ed8bef73be6a66eb677933f635d2fb4040f52ac3dae3c23f91513438f3be9c5bedcc6f884d0a3f23d3be2e56db49c29eadcfcbd508fc67ea936f946391835b2752ccfefe46230d84245ea8d8c799eec979f994d9f51a65cbfd6fa8c3a889d33a72faf4c97cd94268ed470175594a5f4d5d4abbb1e7a099be6da589c47e5415fdd920c5bfb5bedbce36e6c588ea903953d2d768ef5c58431984f671a3b31953940a6b52f24658ce943fc46dfeabdc9fa3d8caaf7a04e3779ef5ccf99b5d5b3bf7d1c0b68fa0ff6485f820f6b721d55be6b2d5b3c93f213d8cc016ae4f5895d8bde7a156deece13eadbe36363bec475c7cb2129863838ae80ca94d78dd7e3b5668eb4e5e5ac3e67deaadc86d21c4a47c1ea8c424f3571a553d14ea07096ce6548511dfd8e108893ac2cdae3a9d55acfe952e5cdaf17510534f5f483c88a3356ea567c717c75dfc7dee4abdbe7f9cbf27fab7eeff172e4d214bb7ca02f801c3645c9dd75582965ec0fca9dc68dd6c3798d38e62df3dda699a29d2e6220e35f726ae4b17d8349e4c8807f6755b68f6339e8dbafc83836b8ed34a542daced4a46351f337b175e6b853bc2a4433782dd43a58a83ba5870a05ebf135fb83e69ca81539bb89af025f6dff7e62665b9347d441bdd77b2e4a3665565307e65fbdd341b1be54fef5aa7ea530c93362a0a4766bde3307f9dd1ddcfa2a37746e98ed57b7e8e2964fa90d80daff80752fe893c95ae95dc61028a6e82caa571a63b7d85c3739db61ec6ebee839da14dfd1d5b359d9bce5ab54472f42eef3e89213df750faafecea2586dd0ad636337ec69537c4b61669547859876afb94f13aa733e82fa4f4e8aa5d5202de48f57df1d04c9c444641d4ba30ceb312bb89dcd04be5c5fefa5d7327748c7a37acbdcd73589a94070635ea6198f014b44721d6862ea794d2c8ebb8f8e95e8ef3ceff6247952db967f72aa44311438d4d995b3c6ca6e6f33705a311f095a6c9ca8cfcd42087c8072edded4acceda7d53116a8928a8ee61c5b3c08e77e4d99b4a23d99906672aff875da7462b88f7cb0d980eb96d3ada528778cabe2e4dc0969ffc38b7966efbc385921496a27b1ac7a099989b2fc174ad6ddc4b81b2365a9c7ae60cb36f70fa4ebd0ffd77e477da74a7be867394f5e68b744dc03a32003ff21f877421a4aec9e9a2bcec7e46c88c2ef550333787dfe664e777e24c6bdf09f8874d0853240affee7ae27dbfa3c6936f64a7e9182ee6bdc8a6db265c387930be4aedabcf67b838640d44c8ba75537347735df5e7582c9d8eae8666a4fdb6a5ea4a8afea9fd9769edf6735cdbdcf7983f877e29d4ff659873114669974c9018e7392c55d0a45bba4f3c834275c84289c240ae3ca6f9f7c128accd58d225c79247a8fb811b88517fd22eda9b458d61ab9d86655ddacc9b7f34284d98e5f6fb96336c4d8845d85c4cefb0216bdb32547c5f4b7e43fb465a358f6c1f97b0dffbf08b9307fa8e5a1361b03882a267981075f6fc136cf93438b046d1d49ae45d58998f087d0c4386b0adc834b9ead42fede0c57dd8dee7fd339dde05bc0aeda157c9c638d8c1a2eed687fa3eeed68eee7b3b2adc8b970bc0a19fdb14679463dee1332ecdcc0459076e8dda5cc340c448bb0d38c0bbc36de75c00fbcb11f55e663f5050bfad08e59aa3c65702547d05bdfc5db6f287bfd53a75975c38c865d3bddca5d6fe7c7081345700daa716eaf7b78959046db5c6f5b9f964921b7680ed15989a8f9052987536f4375a8c5ca9f3f2e05a3d11f58bea5bede429e667e87508bcf79f4757a54393131bd4675c312324f18bddc98038488be5d1104989055bbde396cec47790b56fb13c0da625a732969e57e67e5b16f4aa2568fb7728c427c5758d35e91b5b42c33b5d096ba301075d7d5e5ad195aa24e5249c820c83a86b66536c8fb371772408729447f8f2bd61fc63db224d868b70c8e8ac6685c8e3bc2375049c25f941169291c38a0eb0f3cf027bc8324398fcca99feb47059e87db1c2b723522d3f09cb8a19bf7b2b35db5516a652b837fb94a6ac6701c479686ac758c381fa242d8e67b1e7f6b0cb04cee5fcbe2bc5b266dcb55f1c72b091039596c4e4e50db8741763c35365931bb37a3552bb3223938c6a876e54121fa489c502e14943aacebe7a5e7747bddf5c6e916095bea36dfe8059cac7adc0dcb10a64bbc2812bbceb001e22cd5438183f9b3249a27566098af16782c6b503b987a6a5896c1bd82ef7d3c5c77b82cc797bd682849826981187a1530b4fc07173dda9ccb8c5248583503a8b974e8b1ca39b1beae9ab516087a170ba4d12ad5e555f77f27c55c519226cc6b3246ca1328db15648ed4394cc038245bb7d9ea48af2350f0961283f195bd51304af6653bd133e241729b5a62495c8c45583cd4c30bb1c538fa4f86afe799026f86e1de0024ff13ed5713a8806cb9eb6cec9c94c4fc4abb2569d9486507137733e681a5eeb479c8256ceac1ef823b34995c65cf43bafa250a874b743388cb6541d8346071f075b439620bce761cbf1848953200543177e0154c9343b47ba3f5ca025fad201bed145b7e8abec99a404621a11372c930713a013b0cf4b346ea6cb64620859d458d0e08b5d416bc86552c79b087f63539303c6fa96aef18c6a61dc37e1e8436fac43763c9acb9b5955157cbdc15d356936cbc603f6eca2e2a53163591b3d2257d67335caf60b4223b8c0cb7c54454e3b4812e5760848ec0babd9a0d7da9e83719bb0d7395418c44d86bfeff4c8a8548cee6780a5388e36eb4f5667ac2182c213a577fa2c4616814ebda8ce8a1c5851e0551d356471a8051d179de078c9f12163b0234fd729c9b02c302997c13974b47aec7573604d8278783bca1a5f184f77047f3b1861b7e1c2dfeba290e785d77ccc37e0ad03c199322c475191aaaf87300ea43f6a956b7d03b338b147cdfa14467b2850a73ba99c6b39d89ec6fa3052a9bfd0f6922f9b37ae6966c940370811aad1572039ba3365d089016c21fcb64fe3d924f805336d49683ed262410594f8205bb2649082642314fc7065cba9b8c4421f1bac52f69ea8f96093f89342b879eeb785756587a4027680119d41bb559c758197d360342bc3845237aed01aeb8104490b9bcb4ac158f154b347a49219ca5a401f90d1c1f4f7ba521bb33ae0610767207f3c9feb991e7ce444a42b33ee5a14710586523cc98aa53de01801bf383e33ebc03900678750734311c349cac283ba827fe39f976b3de28610113291f61325b870384280c58ac9c48bb65c5d8a672c86b218e8a706d3b87f2341b95199956886ee0ab068d927ddd109af491d23e991f4e8619e4aae99053c4db3514d380133105ad60885a9fa5fa80c144a3949cc8c33b591c776d5a7a6e9c8d12417b4c1661c867119f7006e6520462b63e1770aa6424dbec6b9a0c2cdb8c8945d653e62c790d7857681b479fda12c8894640aab041a044d897c565ce882aeeb8caf42630e10afd12293fbec9d7ef259bf881c92cc7706ac41626bbe1d17373e57b3a86a3ba62cb6084869b58c659371c110930b6c75626651971641a899645846f96081b00f6c29bcf8c646210676bf266467d90eb393b64a1593b4579adb0b549e6648da5c9e2eb3bddbc78c468912dc674b126acd4448bb40bab46ebc8620288253156d8d39ada1b639c6f69d34e9a25e6b6bf4241bc00b5968282bab963820fac7159001fa414dbe2b94a74158ab43c6a43519f9a34a716cc07908452e5a0a517138cf46220243bf2e27ae78835b73e0720222700861136b2a405a241e58f37f132c588a1102a5344b704619666900c73990c2145497565d09e984f2689e315ab204c59a360534a641228768a9f1581532ea9d7717b8d8069158605508a24ad1c71fee5760605bc2d619b177985ce89cbae0ea5ea335529a20225cf83744d807b886ccd5cbcbb8393d5bf144497a4c454a2ac7589b5315937345cc02372fde21bec80c0ac8912d28b3348df2a88c35b7f384809f24665600583530226b50a6429217ca211946ea66451c9092e7c42b309a922465561b307f8912f29a1ee687b1d96d8c201bdd75a34e09d954a4267f21490c0eb74ae98fad1b5a3b5d2b9f70e922599b58af4bf05a9815c270046161175cfdbc167293cfd50e9d74851ef1d1dfa2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a +ciphertext: 98b43ce1b5e3f4f7627465e5147c9ae5a547f3c748a683be0c41c952bf9134ac4aea57db428e0c534c8df32bfde046a4bb694ceb92ff9368f22565c10965512103c00604141bb05572e4d9ce098ecaf9c610ef9f9f371991b3ee605fcc8562bfcb8ce12b559ae3736e617846b75449a1d8640d8cd81b10e0e1e16d37283fd693876bedf41f4ad3acfb2c7fbac12f81d45dda3db5a0bbe6c79ebcf83f7328e5a2a477dace62f9ac8e8a82211613d7a59a0ea5a25c92fc868f1f2853b030028a869e8035800bf110436828b851b91a9af639da94d6dcf5997b42978f02df5316dcb445caaa23b57eb05cfaa8cd70de8035cf76be6d812e4e48e3ee10d3d196f40478eb06b944f6696bc700953897498bc73020cb6d61f86dd8d0c32d86e875fd67b3d4a506db533ca7d49c996facfaac18009d8e5876cf108c9f64f14cdbe1803235ddd328b1de2eeda09e1b0f2d46137be0ec466b9be1790736d38c317c7db5291accfe7003aaef4bb4fd6c77ba7acb36c9a7da91917ec5989559516eda9556aaf4059a31ec6a4b119b80e35a1d974dcc1cb12378c97e7b98bd42fdf0d5f6e1612bdd81246fcec86ea81aa635d8c1e7475afcaaa0566ad8f1c2fe556c0399da36bcff131b5f5af6a93877d4f3a69e1d7b51667bf90c665c86018204d496fea4869116035efebd7b7ea505f77fdb6fa8e5b436ef053c6ff72d4f11a40f7569f46394a6fee11092e37fcff1b881148738ec0eff7004ab9bca6c3971b1514955d6436356510018b90c1954cab172ab8cc852c0aee45f2d44bf5e4e5ca48d0bcc683af70d9fb5e90598c81e70c4ef11ba0fcc3f3bc0979fcbc3555379400a858e2ab05509a207a8edd852c8ec0b64a616cebcd0c90605d10b451bc2ee1fa6c4320193002148f7e0eaf8fe480d9f1865777515905f5500447ed1dd9fb96b0da711bba70efef9ee86a3c1eb0a523ccea666d4dc8e6c6e00725cbaab126cc1d0562b4d6d3d08efab09a1e07ebed940d74240e12c171fccee0a22df8dfa768979e5b8bfbff75ec945c0d86b3c8bfc41be1bec09c1998e4d54bd9ff309b1b8a14123bb963c39902478fc70010e43dac70cc799f439b51fa0a56f53c0b792931695820ae1aeddc75dcc4b8b695409e4d5d91c5170dc8852a68c0def37a69e0e449bff582e1ca9452b9a3109800349d3d8f648ea219e22d79363bb1327f459bff8ab2a98325b3f2ce2a16d66165f3e3a353d82a254177baa883efeb8e2bb4195444f90aa595831d059988548535c0fbc70a3ceb954171000f300d7509f3c306207a92aa5b961891417e97ac706eb7be17bd21d144fe368449fb0104a0f84211b884314fd894b4e227c81440b37e66962b80723823b4f0ba3584ff8670d65e07ce18d1aab6058a1f42b33ff9e382eaaa8a6c3ef1bd8bb3ce9bc940b2e9593d54f1cb6b8ae23488c67ab4e14ce11592114373024ad4fa3f946a187edb673a28731787960e096a00b956acb5912378bc794179306763661a8ee183cdd786bff72d946d53207b409ed9f76881c2518163b0215a78a3a0b3120838ff4103192d2e78bfcbb5397911c0b3ad281762fe4b760f5c80f6bbdd55205032b60aa26781c23a18be4fccfcbcce7b4ea8ce9d285df0ea24507994826770387ba75fe9cf229a569970046f7c927aaae551e40e3c56b2c00be3e5ad6c364eee23cec1f4002e9678bdf12c52300e374be3cde9a434dc4c015c985d63e36327ecec520c0a7f7ce1c92dfe2b780a180b42b6495d1b49d83e6602f853462c83817dec59b9c67ba60582f20b7d7362c04b5f50574fa9bfc5221087e94b760b6a84788b4c563f5c8e77b173098197e2d23d060187cbd13e11fbc252c7afe39b3d84bfc8daa8fe7b208bcc694ef7050a6d47dc7de96f54b0d56017ad92f2344713486bd9719232ea99f9d049bd9b1f221b7dfe705fd5a29d12f1a08f4d02f4811683f3d7793ce079f5ea02d6a2b05e2f82348ed7f5e2b94cdbb3eb9558e9fa6c6a538919cd5fdf66d7c56358740c76ed0af28e7ea769a715d4e56367c9a2411759508a4f761bc4a76c468345009731f2584427f648e8971847ac724282a4d6017b4715de7645559218c3a0d9a96ef78cac19a05284d98b7e403e1845fbe5a2c9055bb779b6851d7321a2489090b2b1289298abe26e98fd1bff494f021485114a8a44efa64d6c1e1479a36912a6dcd1449b3 +result: fail +shared_secret: + +# Private key not reduced +private_key: 4035f5b257c035fbc56b1aacd83e540f4d999fbea2cce3487199e84f088a4bc96d9dcc63ab435bb7ef6f78b9dca38eb436ba7b222cabbcbfdb4cb3f23c2fe0b5eaec7fec7e65df7b9d7abd8324e7d8e384ab6dda5a986442c767eee4e2e6499825daf946bbb83e1a9d08fe4429aa46ba598595dc4639da5015c96535d9de9aaec36de5e1daaa713f84ef3ce3cf833fcb5f04d4f32c75467440092a4f7714524b9ccc3fca9503d5dcc8d676758ab661ef742a3dbbb16e639549346b9a67d836e7a43f83072de1844467c01fad270ab2e047835ce3627615e062f46f33ed5c3bfe97d07f44353cd3f423305c6477a9c6d6301b606c693ea18e96a2c8b63adfeaa74e646bd3c958f3b6da0ca8235be7ead33b9a855e2c0e81dde85ae8a33ce367f73583cb06968f07f6b52df5dd670d973b5b60ec47d2c558dd969fddc0aa611c08d991338b5187b74e7d46906499bf84e9f2dcc89f88d8b5557915ec82deade0290da26e1ca3503b88454e6c688386c3a74fe7ceefcbc6f93f9c65fa247c70b4dd8789d56663bf92ab39b2596a188ed204b884765c5c90f6b61b76da32d8e58dee817f45c2d9c769bc2d3acea434817c6f788482146ee8633e52c0f38ff33733013a3fe5898f741986a5e3f2f679a7c1ae7040b4cfc0f65e0395bb7d5b698e676db2488808aef74ea868d24dd9e289951d3b80d57385924a433a83a42d87920817fa2a5b563b27ec9b53c263c6b234af7e40f6b3205741373880498552afe88132c8df3849c937fa91ebb3a0770c5027b7d65ba6e3664f9a7685bd2d07e892ba893cec50bf398494dd676f1dfea5b9d54f095d5297d728fb9ed9536da087f73437689209b2b154d7f9639bdd287ba9f77af0f6c75068dc7cfcd426035e89745e88f3b328d6dfb31987d70ad381dd62d8bcff57c5e33baeaf129e51344b5f4589389bbee803da3c1f08aef60589ab2687e5ebcdcccc9d3c38b80d078c3d4d38d097de0da3adb74ea5f32e98869af4d3bef8981b4bebab984f9c39edb9650d23823ecead7f2c39067b958458f9bf24ca25b68325134f14d9a849db4716a3d4f43e9f95da79e119be403eaf93dcef1a1bb6743379a73e44770ad2e687b135256f72d565766eb98e2e5ed6ccebf90f39e393ec173e7cef9b7e2f06dd6e1e6bf8456c11c6a47006b75b27ada9c6baedcaaa877530631998247fa39039bfd23e5aa41dc7859aa42c287dda6cbbe1ff4f288ba3f9d78b214b6065d35eb9374ec47cf51e77608c63e6133fcf1158db935d5ba69a7fbb2db5713bc6173e7e4c963fc938af06558ec62b47be7c967e75fdc56ceea39cea9e9d947d167d672c6d0d6d8b6b9535c0ffde2e2bb322155ec3e777341c3b5f4a5c79a93a377ad23f263e72dfe5e1abfcae3ce1ed5dda93439b0cde3f8caba7376d94635cbd1558448294704c6bf09d7b7a6caeaae425aa03bbe97aea341e0e66ecb6d8337c387644638ffddcc3fca30f3ad63b8847f647f9943de27d0383440dd2720ba4aaf339405af495be385f95eec07bd7105869960332a8da7f5b7d65e8983261eb7b6829e48116fa22b8d0932a38e038dce74ceb762a3f95058493cf7c412fcb308fc17824e8cf2e7c06d5ca7f1ab2ea9e67705b37227e9498bf66db68b6ea1356b4c642058b4f1aab6c4093c3b263f181f9bda41d387b2e6b6339341239b8fbb9cb9d8a46555ceaa875b1acb34ba51bfb6c1ecd07bbdc695a66f025cae458f29655b177543b98478eba7895882a6a7f2da5263370c7177371deae4b48b18583a49dd6f228165c55368ae6aab812f6321aeac1ee5542bd35a9c39eb6f8bcd1df2ce0e6feda00e6eacaf83b1264d7445a341aeaace6f592fed5bff115e78d0e8f8a4ee6bad4aab51dce0417ee322f69bdbe725d0ffabf67e03ff9da99dbb8a11d5e927cf8aa87571e6e329065dec96bc9e32e3a088c98c3a8e727e8311aa595f33ee83a9657e0cca6ee4d962b3d570a475e7d8df81586d13e7f5794feea91c3e2e688a55365ce42bbd8ac759897a8af7d6d7622e56014dc825f647d152ea909abe4bcc4934cc4b389b333c14373fa593f096ef91a1b3b4fa96edbaa893e58e4f887adecf9560154876e1b86194ea2ad47f36ecfc647f6d8cef8a3bcacaaba0a66acfaafe173cef526c86e3e416820166411abe7da1944fb933eb009de46ba60e249664722776b37ccf770b187269cb240004aaf74c37eb027c62536ae847b8ec48a6b2a9ac68307802db576b70226fa1b951da9cfe094a0bf4b0b306c5e030baaa25baa591b289fa24148c7ca16a19e0a0039eda555645bb65685a75a57028bb29456e4c16ab48c06d346ba9925db4184adf635e779522c2670dc5bc1ac86c662eb37975aa806a2b2e307904f6c6a0d094828aa1c07891cf098223ea78967e7af701273a8a1859adccac61bcd0c103f3c13aca18689397bab1ddcbdee2ab113ec6932c68622c513b0d66c60244cd77441c7aa964b5331ec11a088a5034e064a1d95b4b389c15c51426fc9a135464416881858511fc894bc2a3b0b742366dbca062f2c3eec28bc3c38c809eaab081c5dca65bfce171057ab8467eaab50987732b9c85bdcaee647342c3660950b9ca7c0bdfb3bab69268fc8486397b540f0831efb861ac11855dea4a588c4935847a644a470f055a923162f1dbc2b699020880cb08b80621de33a9f0aa83fa2b5541aa2cf41b98214a5fee14785661a63603f0492163b47829c71a7afb0b5efe94e8e225ea2c0179539772a510a5ab5456be4670a076ee1b25ff62687a96284166576e3e773adf2c061258bf2d28b1ba00fd485b8151076eac5be6ab7ccd81312a9ca938f256b6fbc8ab6d3c3a1da5c75e1806c5c4cd4202c0b20816e368bb2443684463ed43787a89236fec32fc99891166462852750a8c1445ac407924470a56b1cc75c7a378a2e40c00fb35c0d4f65bd12f49911fb923bec1b635baca8428ec7d13b36079732838459c669f7f0c26281717ad45eec972011c66d63a298b95566afe11baac79a67dbadc882815d014549cc294b658a8c00a2422c0d23f6a0be9bca232c8374e616e749623e8a99b0f96a08c95897e88900851076b1b470732ec2462bc9c943255bc475da70b44b134e0cafe8f3cef42972cc175e04fbbcbdf4cd151639155a0469651408c9292de9383e63c08c8bcd96a69a3ebaad9b2c1940a37f6c32b1d3b702d28acb908cb2c7b88b89a7ad4c87cfa6c53987e4721d2302bfb53ef3e9bf7319219926bb7884111fe2c4a9aa4c4c1c0f8be3bda890c0342b56f826a6e971c33f900408292c5820c92b66bc8432cf735388ddc35eb004506d8a671547b7f324741f609e2121a0592644e7e0cffce7280f77c34d05b930b96ec9c79838da4a78680da3b07c1485081d14b9d880bf3ec61d852114d738580918c72a270d7034412305ba10d6a5629a931747611554602f529f32356d9e0331de2232e65c695af1b597cc816d001ddca540a0fa3ae67313853b6a46606c1bd3b32d193bdcf2cdfc2c1f9006724365550632bae19bb3d60804d0c80f17681ee020c6cf3cb7c19a22b1d4acaa8abb40f308ec2cc6616164e106a06f700bc62266ccd40d4a414dfc818ef3ea39540247c0853309d45fb99b84fc3ba114c240915a19e96b742a234ca1e0183e60c8acb65ed2c8a7d239b408c33fc5e31ae83caaad17c24b99238b2a52181517a1202c87a17f22bca93e758ed95a895a6a97c163cba8a4c0d0b980e9871fa8f595a668adf927c4538374c7e65fd052196a64cbaa23969a1c07145352b6829aa9e93993c640e0f62b5bb0228ee37400619eab437434026df078bef452267841bcb72844e836ac95d25439567a76f69a3b2c6cfc1c4525f340b40c558007b4f76864e8367cba7c71edf2aa9ec56f25f606cdd66cedd0937451b95422a509b12553a8cebe7b95bd97b45564c98d20a9ce8c51add836d8c00af538b0d0528507bc3924a731ac05a688a1680e050b770c3a8f49c654138bde367f4269abdc4215175799a6112bbc186b23745fb0cc3f2bcbb6ba1670b1834e99e10b2fe25003243284c59ee4202ee28a6ec2086510697240d60961398c77b3b046a23a55b89151673e1ad8a9de959923974c540902716c973ea402b3576f5b664da2a104812a6101996980d68baedc34f9856effb6c457c8332487349ea3b8bc67acb7fc509c22a476c331af75374c57b4c010675d490da92c7c60ac69d89a25e0d67351aa5c9e9880bc1386b77019436abf526b319ce44cc759b009b93f8b9c3059bc7c63ab483a749e1a761e90587f13945674e85b7c896280d15d2d20bcea11db480755602348b4616400faeed3c143406ea9c1307e37e2642ee73c442a4f71da07c289afd5cafba73184b9723c238da81e3ae109daca1873ae1e34d84adf05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 +ciphertext: 5e0c732a103af159a069419ace2a1d915ad5c589beae24c7ce3b5330c10c59170511e4beeedfd369fc2001ae60466c3be35a244469b0260c39d59eb33dc744eae2691eaa75a34811054bce72dc3f5dc7cc57fe96913911e27e1dfb7a134b6845196175bbf4531d87ad6e8145950df2a98cc571b35d9d20f638a40a3cbda7d53ef3eafc890696cf511cc962fa48513534877fb63d69cbc4dbe1471d6489f5cdfd83222ae0c45abc143554e148eb3a0030e9bd687fe684a4218f2371640878b80dac9242aee40d7d80971baa2e34422cf0083e59ab6be20f3c8aea270b273952b8ea7fa0c0ddbcf55769e548d549f4cda9b161f0565b87c7cbbec7ec157b1c578e03bf84264c0d4d84b7660ad4ab5b009a3c85d995d4c663cc7eedda0f2aef0283143bbd10ca643b4eab50961c7df5a633860f735a52710bfaa27b3a3ac4dbe56a82632bcda5c5f70b20d241814e7f6e9e6b9b7f089c30294a0899e55ee74e366425849483138ec5ce41fe4760f94e630e9030a5add852d30f2ecdcfca1f431f943c82299f5032cc79f4baf2580d15881567957fa266c18efcee6b34085400ca89ba05f696e39f4cb552944f2d39b4a0bfe9d8df6b85f5547f16cc3ee8e0460ff7af9b4a236e463bc9922d99507e069ce84ac77bf56366bb1a6eb58d1cc7b560bcb47578661682aa24240a28208bef802e6df94b1478af7c103ff756bc661fbdeaff6a841af2c0b39f75df4e078a62e267fc1c2d491d589e0f9091e764568691f3fbef675d466def5098322e1313435b689005bb8af98865bad6de64083596137ff4b36091716445bd5ba416ee0fb961f65bfd243e841e5d2cf0d822678a1605e353a8dc0898d60dc3fe8d2f4ae980f8d135a6a74779f85e77770830417a6ae47cfb804d4b7cec8961ab44b12636d0a9522cce47bbadaf947fb91542dc71e059a669029dddf78947abc8940873b4f882dd3526bbecacb737f2af651c0ed0d9b01dd198328e31d2405d58dae57e755a8500ec058a36ec66885eba5bf5285a048d913df95c9872edb0f19ff783f1d832f9b24ba194b2ada14410c6aea961ea029e4179dbe05ccbf96b62d34ccf1148ea799c644201d6df9c14ea208a38b7783c69f0ce80131e46d5523f8ca82229652585002a66761b702a3565f62d4955124e21a29671e5e71d03059f341ffeeeb4959487b7d26a2da280c340583bcef0f719caa1817c785a1816fe68f32ab5f426c5a0b06694974151c7512e9137db5e2dfdd5d7a29775464ad44b98aae9e1a930d2b35cf0cf119ba74752bee665e65d6e968c286370eb0ad177777c8b6504c7551a57aa6875f18fe54538fba04a74a721f07c893d211723c8ca608670bec9be28e249c4632ef63e59dd790617e9ac0a8bf3c0eb419fb435c346803bdcf2112ad81edea320202e21718197e4bd995ae7f7396ad00b9f8bf11b0bdbee0061bf06a298eb1a837bc14b0da80395d676140fc7ab22bfdcd9e3c087b122c4fac6a9a9e05706c93084be7610b3a76902d846fc93b782d582a548b3bbf607b30bd72fad1781e765ace7861547188757ba4f63300eb08a19bf7597900048ac1731625b1db936b02f56225b5615850c97e507997eb402d9a26b6a6b25fc802e506537138481fed4151874929d70d8062af6f1d3ac6ea2120ae799b124b3c7cdcd639415382f0c9792efcbef2fef5c9c514266fb1cc704f1ae0966a05169d342fca180363d43b9a0f6366f3d8006fc748e1c5d29eb65feb99127b25ba8340efe4c7f3886edfa6c3e05b7f9075cc66a9e93e7db6b8f57bb42fe74de1b1b14c3836cff9b7273729a7a7281cfbb9cb11dc8479ccc3fa6344271bbf1c1f03648ba971100abde22267b7681d2e7fe6daafc539cf8fdda1ac18563297be8f48c4ecdf91eae21a0bfe5c095151891c69f01c74f71ba54d4bce13cb0268c87dd8335043b210a680219634d9fe00173aaeedc4ae6f86acdc0e85157006aa48bc20f4ddd6e90b3e1eeddbdb84af544055f7f908d5f31c559f8ccc592cacfd6c550ff92e1166eca53d170767656ac402dcd437d084433a60335e3a59093cd2b434f7fe182e68f7f4911463ea2bd23e01017140967fc045d377f81e1ca8c3c0fe2b649386dcbc20dd243448b2a0b0c7f9b776a6be6aba385e2e61341c4d3c59443552a99797171077317df925a6961398db170c14361a15043b256e972289e +result: fail +shared_secret: + +# Private key not reduced +private_key: 499333bcb7971f6dc8a924aa6ecbfccff48b4d3b9fd4786741668c071aab1d5ded6f5d928ee83d7997cd1025eb1cbf8bbdc884478ecbf736c4110cca903fc3ce34506018dd938db9d8d8b8621b690eaa77e6bb8ed33f85eaac41ee6b44d85a7253e7ddc328dc5cce6ff3b7a43726e6c98b50c3dc46bdc3f07f98d220b6ba60bb6db6a3326147e90fdaf8777a519377cf8f08b333b7f1ddf9c8a91479a71dd880ce5a3553d091357759eadb009d86d41faa7c8abed3d6babc47e612543edc1e5c0273c99955ff85d796d9eaa442c880eb098ec2a8b249d337871eb4a27a583cbba27689de9b1e9abc9cca1ba7c57414c1d697303dfae778b736ddbb9f521a44b76941538666aa8e402644e9d3bb593dbf3bd18dd08f396aa863fa92dbcfa713ed5c537feb2594142fd46926d5d7fc8e5c7c6aaeeacdfd169e62b476d3a65d6128d1debd6988f3863603f700ebc192b8709b1c56070a68fee6e8670dde0f3be6b14f9a9edb6e695d366cf3995eb5c926ab4c835d6f510e7a1b1d6e2cd3f698fb77bdabbc60f35dd93a54fabae0f437fc2ec98357f3c1386f8c8565e3173c4788c35af8bcc723b97910343eb04e72ac586064dbaa43ea90cc36521a54aad84b3cf916e45ababa3498cf2ae9d0c10b5c7bfbdfc11b8d358a90d34383fab5d32d535935fa4c639cc7e00945356f3176b836d8cd41d2b6c1689c3325d7edbffd743863a4993c346235784299e0969d75c61f9d7706a3547e72cfe981e8ab8a29cbd9a178eb6fb75bb71de7ba998af84863aa17c03cfac56e18aaf714ac9854616f09becf13427e996dfb084b1f6fc5495c9eefbec0bc23c9710772566fdf1779f601b9d2176fb77077fa861cd25bb9f38cf8c73a8a467833bea956fae60438801e431ab5794907916bae5de03aa6501c993bc684507bf4d715557ddb7ba01c492417e47905abb8977902eae31cebbfd9b3b5dbc7a0368d72661d393f2835a1db389804a7af54743c553f5c445b4d45dd3679b8d40d916cfffdccc7a0ab0d9e22e98dc32dd3f7b8d41813bf84a8592d7979ae34b299e9403fd8a073cba7dea6a44968944eb4be716f3163eb9e59da45177efd3efd6e80d832619db52ec78c3b883e71cd6a77d7dfd14f6ef44e50bb3e95d15d75a09ce3406d8de53f7712d8f5e05878ba74acc9ac66a7573f6d245f2ab3c09f8dfb1b395bb29ce746eca972c4efdadf8743b736ab39853066c5029b4cc47d89b99e79e3b8f2ce6d6bfbb74820d3885e4bd8bcbd716a7c7d4b674f46ec36d6d89a4e43eadd14def64cca6c4bee1bacb5a5d857a729beec7b5f4b068c3a6856156e9d613ee70dffff3f28a52527f68ac6693c58b3f19798e5be86e3fdc471e33c4dad338555ce3c37316a39ecb89a3fdcdeb64fea422c46c51e65844e63e7e4dc47a956e705ee625a8de7197dd610e7f73a09cd54bf56d5c6701edecbbc3b452bf943729c3f36af76146d885cd65a0cdd6965443e286fb4d525ff50a4c1828ef05cbe92de26e9d903f27a97def137fedd54ff63dfe2584d74270ade4e85bf4e275640cfc569357e4407f49edb9828c65daf2d870d5a48b408d8ccbfd062eba57f16e3114c335969ad481e78e6f3318103b039cf812c18bbd699d3c018f7179a710c23ce8477dc08075b715e3aa9d5c6b3c34a3e4c437cc6c14b63b4c4eec27648e51d9affe63352101e59c52c4c59536eec2fb6981b8d11cf946934ff3a09a7a416c79d893fe2c5c3204895ab23b0b17fe60b58b99e6def2dbc3c75a594e0b6d5dcb6ce5493fd2bd450bc4c53abd892fedbddb883e9aeddf94345770197acc9eeb8fbfa67e8a830834432fc93aa463541466d59da44be22695b3fcdcaed5ee835f4d9440d76de944270fd3af3e97c5fdd7dc0b9450dcea37508d019caeb08d89943a5661feaee85fd9f2b8961d46f43f46e55f95c8a74e83b0ff6e9670ed18826566f5737bbeada3cceb2e095ff50f96df1c692be536346fca97d83c41ef6cc63bbf2f5ae5923afe7261a8760e648d2653d50ee38856f4baf9a57b05d802ad6c90359a10f3a9e841e9835bdd1b75ad9badae5c81cfb1a49edc76ff3611e885cce81f6a8b42e8bd581798348cbc987959462e3b2f8986e42f59d84ba35cb27ef2f8ebfa5079dd30b981973adf67c645de8fd60045ceea77d8303982ab9b039dc4c3fd0159d46c89e618304fb5d4cc53e9766138fbcb061b56ddbd61e33873a953590f628c122d049cf722737b54d4430c312342189b59364e14fdf8cb1edc540c39612f8e2bf88710c26425c09dc7affa63f52fa01db7794aa2c2abca69145e89c06d40189fa704dfc4b252811b939118f1b9928d0b0b6767a1685804f502a19254ff89a45d9539c9f968835013b69a362f634b269b911c4327520673049c00e0fc437448c2849089918ec93c2ea270bd0699c85898c0148f4a1095039a216a51143183f4d695aa456c32e8a35d351415120725ef995010409e1176806da6b6e08ccfb3093914c87c107cd14e11f937a9f138b928ea5580494c6eb643ae33b5600f7726e2004f52cc39ab24d0cc9c3f9e57a0b821fdfe8404e6532bbe01609a61def2b4f452a1fbff381692975e05121e2330c789055e5a4ad696678bbeb1a8d3247d2257ba246a2ef966c305a8f4fac73a6fc08f71ca500aa9d00962caab7a2780cb94c209b1cd43151f3248dd344bc9898b7780950a10211d73aa0ba20d89b01b36623ed8aae48845e1d7372f12b9a692b3d525263dfa12b3f312f91b5802d3b3380e58be6a92a70e77cd6134103496dc3e9236ff17cb0ebb04a1783379baa0a3c54cf1c5eb1b4afcd9a7042c50d6405b1b610a9429aafe61a5423055af9f61d3617be60bb59ee8019e72123069614e738a46703af5bf25d31ac4f1357832b1232cbb9325e522e79571a1d226397e407e4b08b44082e71e984e463747a230bed934127e892fba29b88857606983a60b9425008117ce17d20c82b6171165e940530254f2b0cb4e5c235dce373fe1450ee6457da59c331b17f8d4b5e0bab25aac789c04acffb957724783d00dd24eec3375f97ad838ac0c261789cd3afcd68b2d53c0c9bf944f094bf0875c0f08c161d3618c774304ab25563981974ca2e13b5bbdd210ec10ba39c64635c9025b9610b623c2f12a768e03163d75315c7097782b69c44b3a0c33a552228c6001c5ce194346a80824627b974d2c64fba994d2c62f8babac47c51dc100c54789f737c61b9b3420469b11d110dad9010c6c67ead2329d3b4c665ac528041bfd028612c608f87f3ab74b6b68309317e1c0ee5662f8dca46c26039e2dcb1fe8c42cff0057d4bb3e4ab3bce13c142e589592c0850e117cabb2cac88431461a5e6743695e096099a8249e22f4033c15e9266cb00a9a36103ac473123e95d373b0dc92cbdf6b2b173b07a3771456d283c758ab963811e5168694cc20e64e8a677e05e3915c4d93c8531b75d430b3709753f899b1c45434be196a3fbe5149dda2ac0912afac619b4a45f3df262f7d617322a9e8221a79f2319e6ac59034c80b3214953419a191b0e4a25247bfaa0defa001d5529b1cbb9e63ac03768404645bb8ac7ce25687be70796bdf516b76039f7b689ce6c3f569a04c52875ecdc9fbc97447e0160e75a89215aa263091e7cb5534a97660cc8515ed61d9b624950c089d9aa647f787a8ed7c89216694a83c56cf278fa94340d790015b914d09ba91e10ac5b7ba95792bfe779966ebc07ac6916fe1aa4bce56cbaf506563319c5a4c4344344b472226f59b7fbe7982c08afe9a60a80c446b8b341eac220fa8a664b6b1a0df72684b67bf2032d75f5aafff7cc724acf3f1051ec3cc4ce8768fa9ab51f960f3293a1fc527686570da34404b5681967258799fa26f22179e18221f4babc2b7c46601ab7ceca1a345027d44783e7d6c511615b108c4197bc0d9ee49c91621074a907ab292d4575abad75a19f10c2a493af902252bba57348dc33fdab3217778429680b4f352b52445eb662101dd22ddd211f314577cb23bc47c7176942c5cba072996c048408a5dd795907bb2e2f49acd0e75a93cc4f7938136d7c26da0691c08733e8138caed6c8cb116b900869f9fba9f5823b20626980ea86e6f487af758830c787bb1bbd8de024be9765dd04b969dc21589312e709cd6780c9a38a8207fbbe74f220c3c33e2a127588b64e3170999d3a77c8f67eec947cb69649dc64010a3119c9030e1fd0530cf5c3b73b631917719d0983ad0a06d2963741289a282a717d7487acb30354fc74b005ba01101a1c8b52c130a00339bff4f480a4e890030a709b28082d3c501b2aa2d14fbef9e429f8cfb50e84c327ba02edb7f6abdde459896eac77b5d8c7d7cabe482c88cdc80345768e4cb54d17aebf2947b07c716dde8da26e0b7114f85dfd29df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e +ciphertext: aa9d348a26143a9b7645f5ca60b8164bec6c46f77160898d42692dce57ba70b1a76389cb3bc4565939d9a05b0d8c80b10981d94cf593e001ae86bc722eec3af8fc152737f283b23c1f87beb4750b9edca2f0832a902e91a3fbb3895f915c94244189c7e3ac05fbf3214d319744f8e62e1218d29b501fc210e5defc4356d38d18f20a2a456e770a2e50e452118155c57569d85b566960dce62cb650a6476145b5e26ac71d9db03300283d5ebfedaaa84424c3129e4ffbd10d5a995cc6801118a13cd9fe635695a01ce0befa9865e9f940d8ec5cd9b5aa4163a525a37bdd5aa2240c071c99e5a55593ce0b8aa1e46be7682175ed83cd369a4df3072fabc968dcab66361a650f8c3b9a85ce39db4351ba975dedd52825a2cb3392b2ac34cede2c17d9bbe8134705714832e55921fc91a5b7e126d0379004a1d2aae26af0b169da33ac8cb56352d51e474a078bd192e7388ce8bbbc1c03c7fd129cdc21bc529a3c6ae161b68765338d3473e8e5ae83a13aa4f279d72c836b7876e0eedf1cc9f956dd9ae68d016d6f64ff585739c0e6eb94f7b1e34433e4a52dc7653c9334a94b8d52cde4df49addc20e62bf8e682d762a94f539fbd059a9c47a13a6adbebb914eba693ab9862c5ef480389a4b7a6540a24f994d5d105415641190395edb0f9085017a1f1a4c399b45ef13054d9ab2c2b288695e82e9000ace60967501e0030144465edf4c843b82af76d4849aeb1e357c7863ca92287996b9fc794f5fb9593c5a31fb296443a89007f1ace1235e2553498c1e9cd67efd33502227ae657b31cc603c6be6067c34c99f338e08130404b1100bfa732fe449ae17ab8b3cc1a8e8c96404ae9675982dc6269a7dd2bcef77fdefd5e767ed3bf80288c8926060a0ebd6731962d3ec846ef0784a22900335ac90e68054afcfa4d0a373b1993a42df0a6eb1a4fe4f371d6dd1bf7c1c73fbebbc2bae4497b9391d9cb7c1293059f2f2e42e485c4a1a6cc7adf10da6559643a11a6184aa62ef65597d4b7266080518c646ace2a4863040934169034c1a1721ed73fdd2ebf704480c0f5aa885ec5be064b9889ea9566e72a5f32be32a9edae3d8bc8513f136fadaedd0efedec6c08e934f3addd073f8a6ed95015ba1c240f85de99d24053babf604e6466d3c61b8ea2b19d413a173d33663e36e8871cb4bb8df1f7c2a0eab6b1d985981aa61abe005cb835174556d53281699e1dbacf6ca1bc517540d942b55d0005cece29365d18720ca24f05e697da16be5e135fcd5df9ef9741da03f1c76a44fc31f7dcaf8949bddce95eb2634439c5cb59a07ca03ed199b6a79970724b731b6bcd34b20d83f097c47d56d87e629166c27a0a888cceac6273d67e8f6a62ae0e515d96552cd8e147a6e67c6fc4fb6bb1928ae70ac7271e583026d40d423da81b0621a948fa966616e2d5e5375421c715dc8c81fd58b3c280214ff5cc0db1bfd2311f7d126d33553e0fe2d195efe85c42f56f67cb9486d279ead1bb221a2b8d83da105c5733f2b9ea60d370f4c746e1063c1797c5e9971d913ab2708f15de5b78b26414d3b53ac858a901a4c1914c89e8c147e5f30e875938408cb3ce54eed5f7e6ad9966198ee24cb3be353bdaabd1592c1886948c17466adf039c20bcfe4db27a1020fadcbf34ac7cb36b2b6757d94187636ede4ba456de96416373bfeafde43ded757af3e01b6ad422a17d330f3ca8929a28a163e7d045f149baada7d7cae24b19a04f06490e3cbe658496980dda1d82b21d460eb1c46bb76ead1d13fcc52ce1a1a15063550669afb3b20d16b7184e68dce36e5f9f7df838e5ad160c6748105cfaec014f15714748c5a10fc377bc59a24d5d770031f82e0925f184de62890d9205ba132800731988122d161de63f0313ba563233debc9890752168a4a0fb24465a8d576772ad7434e1f3a1413244e397ab1d0b0607a429178d247d1e8910738c1ac1f4c7844a6352e95bdb57983fb36c318cea8577212f7d010f30a82f8e86fd0100d0c38204b99577465dd0c51c6a6a0801cd977149985f7fe6d71de1c0b130dfa4e127453c9adaec1e8e211f9acc662dd43d4bf755bdb651457dcd7370b9e88b84a38c7c4cc94ced8285f4ee8b0e2b646d5aa2682d84ee85a6505989c757857a71bef9d4bbda0f1593de4ae2858a1d64a9019b2f9b182f37cfb1435390991c3d0d93d2e05c2edacbe117fa7 +result: fail +shared_secret: + +# Private key not reduced +private_key: dd1dd9fa8cec6bcc6a0174d44607925524ccba9a8c5986419805c924374839af764fea94d7db8cdae573616edaa9da6b61134d768be4cc87a2aef9da69dedce92a41c08e44e97c73e2b730f15673165a5647ca4d536bacf88da3e34af24f67b58258b3718bc184534b8436c1162bcea0b5c659acd0c36fc34283b5bfff5a172dab615edca0fdb21cac43cf0a68ab784a121dc184ed698459671266dc087aaa05b67be9d6bd962da48685de19ae4ac0796ab1e9c33629bd1375316cef48f16f95ffc665d8d9bdb80ec0447b332523603786e1b04a30813bde2e0d3cd1365f133ed4e71b8f52256976b6415dadb1e37e32155f7515d37eca3c466aabe1ff0ed8577caeb6ee7e33badc9c4a71c7ba9b4813b3413ba65887c4fbfaf2e90f51e307f8d2b7b0128555be6965d07d4f9409b57b939aa37efd1e7f41adb88eab14926a47e8a483ba06b6d4d72591bb0377d53a31b99edad807db8a2757ddb44ff2cdff557b9b61eb5a33c481f5bf5ae01be389b93437b5cde30fba638f912a095f19255c7b7bc13617fee3e7ca4c78d0c415a2135871313bbdd47338ceaa715ab7450293a984e380524eb1185a84bd867202ab34b12e3f9187f8176b5edfeda0904bc29aa74880c8618ee862c326c3725fb325b5cbed5c679268aad2d9d3cfb6a56929e2fc15d8e23a8e88957f89d79e93c9eda85742ede6ac14fdaa15d76b9a5fc1f5058a3ffdb45379eee45943b7564adcec64d5bdf389d3b2f255553e54d2046d5a0f8ae92bb4e7ea54ad6eb347af6ff50c6afbd59c46bf85dd6047feaed87c8c0eed44e65fb8ebe0185ee777be61551a9d2a3efe98cc9c6c735ff92dd267296db78bf425b6319a3b6ed5998a6436e25cfa78168cda6ea6c6f92ddf7a19628d3f5b4ef4b29ba97297258565dc5da114ff80c7c63424da2cf93d2c19973506cb6b84c67f3fc0a7e7e8b7d86265a76fe24e7bdbaec8d57ae7490e6c4b9ac886736a8fb3cfa2693d4a443309dcc0040ff8f1586499cdcea3d6853e6cd7c66ab02943cf9cc791fe2f89ab8aea13c7b3d4adb990f3fd748cf588eb54019ced25e86cb4d84538da8752248c04353cea97c5359deeb223c87778fd2dd5d284f932095bb2e56bd31a144f8f646aad45935b8c947b37b19ba9d92a0b636d0962da3d53e157d30187954614ae54caa88eb3736c5745d2d5bdbc56f389f97d730ef9ab4b5bab3a7aaaee58855fc240774ca5783f57cde8250dd8d1946d0414a1a82fc32154598f3682f4ef4aa5d8d167956ccafc84b6c3439877f9e8dd3c8704e9482b56973f43fa67cefda9b221253754bdd4bccc4d1578e7bcc9b8e743f128b38c6f76f5ced3713d5ea3ee137d37785a35d88b7a2b4daae5b357ed7bf6ea7a67b5763b04a2944475a63f3002c3da678dc9eb08b5954347825afae18af9c1a69523ca73bbc9403c35c3b2c74affdae865ef4556c9d163dd7a96ee38eb8d469e1fee36ae770a1c3a5195f58cc9659e2dd5508e4ecfcbd937233c404ffe77d3821e9ab61033c24ffaf60a4b8b3004592d5dc68e4eb72a67936598a177a6aec3163bc3dc98734e5e206dac0774db928da2060dbced23add93752d586915a2c44840e449f0f4967159e4f278c675bd314edddd69cc819c354f68ff537dc4dadff9f58b46579c9e7ba38b2807978f1569df2a9f46a7cf3b1f9f907f540caacf7d2393b058ecc10e47d3246cdd599312af942a38cb8ff936e3b64743a7bf2a7e96925c863d82b963fc9d9ef439ff687544b53937d9ee039acedc37c66c997e24aa56f9b8c8ec16dedc28df52aba325a5a70bc134a2e73c90ecb5cecd373820a34ec7d6bcedf5f95b3cc9c035a4f1659cb5f52a6bfed895cabba19dc5125d28a079bd81a3c959fd1b6f9981fb45e747ddb2475578d08a8218a9d832ca974d992d13984674d57ffad771a1ce25b16b9a2d33b73df47835da4cb9a34a1b3ceddba53d1a490544ff17875797ac6f48c6b97052678317a99716376b96ef04dff4fe743782c88ca93c9dda03c3e554feeda6ddaf39b9bf2f7856b13604013a7f60fb4c70d49b2ad3e9139fc40d487cc9673e8cbe50cd84b11c83493ecdca1d5568f63faf3e54c8166b5b28da6e25384011fb7a5eb4f05d53f3bcc5c9424e36b8dd57037c7b98f66bad7de4d0eb0944633d5f98af3845ca7c37f1be75a52410da5d2bf9d102305eace09009e6ea21b6c543a25032612492b58247f13f01c6ebb27fd469dcfc83ac93071d3368fa128a4c71475ac1817a8b1744c9a2085e54ebb8455bec286dee50cbce87ebb0bafc32341e877aba7a5ac10dc99b65687aa53cdf2585976a06bef586e8993953d5a3cfad8a7593349f9c31010e6becd32cf6ec70f4ef88b1ab955a5d6aac2a877323181668a2c731726236c4c1f77768ed06a7358744c91c690029c4c747603289874032fe6730d96392805e10b7a50a6b849985083caf8d64c1fc257747613b9e6c85e455ace3755ca9034089162d96346e3f0cdde0a81f6a7727babab5f1401dc1832bc175e3576b36747101ccac305d28ac5386ea92447f483408aea6ab22c1027b99b9f14a1b6a67a24fccfd5f52295dc11995b9503d76c7d0ba51abac76777b960c45ce8dcc24ff6031da9a99174be42a381654b5c9697b13188a38c278d94f801a2b94685acb0935074c06272e0ba87b6214f717c01d9508d77535e444b5a2b461d02acb855d7309b8ac6b7731bab6626921160e1a35d0bf14deeb922d770be063198d5a72de076216bb366a0889773bbcdef5872934a894c7664f568ac7f1cb5bc72587767025a271db13a0ce44697aa4c0dba80a730c0c1c2146b36a50d23926df520ab3460b18687921de988c2a7c97dabacc5aa849068ad76f10b361b9a2d1436bd88c962ec724dc15a6583ca8a41704f3946da465042b808f2513b65a5009da5b44125308142478ad82ac64940164c24a599c96eb69ee5e4bef1e45066e2cab719b57fbcc03c1985472cad16a2699e4939b2e2850c1b24e8049a41362b2b908e52e2a9f7808d06a6298e059bbe1c5a87a8610a06af0262bc61390f90d962ec95bcc907c850721778a947677a226c0482b5704e7e0176f1e28e27150ad84093ae862682b4a74e8a7d330c4c4e144c3a39c3a3da3c75873dbaca4880c2940ce30ed10c395805c0bc043cd2861b2e9c0da1b59474f8c492024cecdc7676d4b8c4b3311096270d29057d05cba6494b6aa07379b73bdfac9a561a8ffdd3a43c5877d85749db9c8379abb29f7567fa1cc57b09c35e7b6ff3f735cc18473049ba2d5837edd8176531b67e04a509ba811a9467c633b962e8392d065a03865658913f494501fe9c0a6a649dc8f3256b6274cb6235b0cb278132676d028a24e07595f56c4727a7b11830c1c9840c002db53b6198444e5b63be4c46be9548bf4e1598ea6371686c63da774270b82c95f0c9a12b5c8f9a591ec50971d897b3c1c4e0701da5e26be2760ac99b481151abd2a20ba343bf46eca8699487d14a9667565ca4e30eae468ac5e6cae54b4adcd5acd74812ebc3b4066021b0cc890099b911553b95c794643a97f99a512ce874f10a3c250a513c005a70605429f5943600cfb9e4b2c5e72c821149d9c2c554c43d9bdb271806ae8b58506571c061240b6e7967417542334773178424d46122c7212e0ba7b5bf4388e8f4a3f60caeff712c1e3773fe51b357584a917bc3e4fb950c442ae17abeffe262a4a6550576b6e8297ba723943ae3bf60971b9b86cf952c806fecbe937c7b15c91c9e438ebee95e51d209e60105bc43be345167ac92492bba9549807361a06f525380f5f19f7d1bb926cb1c2fa726cf371174caad5034037d07ae2f305f4ba52f9415b0c624398b936333d68625f533d7da20d62507768a73f579ae71b2193f52a214b30921dc121b6c94042b386f52a202794bab835a9391ccbdbab2ddd94b3b04acf71a12de67cd24d1a85e7330dd36bbb6b387acb6bad3a59c1d292fc24aa6045c8c34ea4771b8137537b644997eb45bc2ef2a1165b308d3c926a0d23d09e749a142493a99ab1c3a80a87c3003990956729ec1c6c60a47a16f495813cb75c995aeaa481875830f1e906fd6eb993a8b3365189d1b50627466161451a21ee45397971d8f56634d90cd0e136c9d82729f8a76c61298a1a240f611824173abfb52ac1aa4bed85b4b18939988895075e888ac0c519ec75ebf693d3903560445414ed3bb3d262074981524e361efe44945b14daccc62e2c335ec40bb4453cae2524229571eceb64a25026b3e1ca249c127aacc08cde4203ebbcb6fb427379097fd222b4e24cb9cd47381c6b780553dd196bfc6c356f031eeed6c85b57be19afc39dd1f929bbb2d627f5f19dba8f24545f5c1f2244d7712dce7596ce08146dae6a7f474daab4056da2d22c4ad0f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 +ciphertext: 6d412e5c3964d81a28ae3bbb3d82723f10ca2f9db3fa6322598a429b9e108652885c174ad8bf1339d998b1c8cc2f17911a3653f252c6f68f4febb61279cce5a424cc46bbff959ede8b799828b2d2a7d224c9702b20b5fcf1a69788d470f5f8bd351a9dbd7e1654cc2883f9b261e2c73f40d3a97113b00673dd6da30a1e948cb1dc3e7a7611424cc648c2628614b1a047bd7cef9a069908b4a25daa193015f8d01a99dcec1256686aedf007c09870cde994f5f1b353b9349d57ecd449f5f6ca036f60bfb3f908e63c8fffff202f0132c8992d4d14a3f1c71dbbbbb1cea6746cf77bfabf8e0ef00202f3627b8e16ca61cc37afbfae596a496906ec3a4687e4ad72ce7781bcc9004badef6aeb2f72cbb2cef5b10efc9f39ba2cdc486b5d077592570ba3306b0ba79bf30c4486b313cb8a44162b3ceeb16390abc7762ec20b5e7a8270abd0468ee473bb3d1572d5df8e5d07066c4e30af725c74552d88d00627c32542fcbbb66af3eea4c495138e6c6a9922c96c587a51075197422d4a58d6acd810059747464569a4a50b24d82809576b19bf93df1f311b2224d4cb86886e2739c1b3f5f4edcf9fd3e6e4d1b9df3e2fdb2a10ad9bcaa1184d5131d546aaeb74c344f309db617bca6cf5adfb4b2bac58b6ad1d0fbb1cd6936461d32e58789c3b69f048c68121bcc1e00bcaf1a1a914caf9b56c9c72bcd9884bf1e763640a6a345534fcf0fbaebfcc5774550fad937240a84619ff34df18dcb909468212c6e68c3435d4989e1cecae914ebf5b0b14d0d512f3ea72b8989fbdac9feffac66ed5ecef1ecf41d453a7f2341207ebf6973cd2d6fcabebb815d5bbff4fc8ce850ef3541e77bfbc90d302abd12eb8cdf3d877e413d82aa2060668a6c9c7a88a3cd7c4ff3c3b53ddc2bb9631a3f36ea45180a6af6ebd040aa79e80492bae5cbf5ada46bb40f66f4b1b2b01fb22c94468469d96826ea4c120a1bd0040dfa49ba3bf4ef40d6b2b303d7542a3a021a9591849d7eea8aa29efeb8b591fdb86abee4dccb8b4006a509bc4f35782096aa330f973bebd99ae1225d74d07d7a9c1ccc1721a861900c0b0fdfa777a281f2cad68f70df6b1cbaee12350a666900c3ed1b0adcebbc4b9423f4f05469428f774519b84622078e4c23b73d0774ae055619355bef69c1c619986c13cda903aec68a851c5308f19ac98ca11384fe8c55d1ac5dddfa7c25081e0a1c8a8206ecc6b73bd33372fbc6bafa2764773a55a9b061847224ec50800ec2118de658b7bfafe47d3ab154b6ae12cbbb94464ca65edc616005e6b14e919a2c1d8bd1f5c4f3a1b9ec9d115d68c87d0293607a87d9c7a02123b71bf61e3d75196db377cafe14da53ff9c6d7f01eb3f18d43265eabc52ca49a8d00bcf7c226fb2bdf81d8edfeac40ccf3f88dc1aa74206990bfe44129e6b4d4b032ccfe30505d0e3d9b1ac0e9022698f9e010b77f47c7b37f3f272b39eaaf12fba68a4645f9622efd080342ae3c48a3a32b1d5914887c3667aa4028504f03ca99f13580caf672789f68427786513d23396455c01e5a0eeac158d1463f3a8ecec9a2bb94a027b065923e62ae458e42b62a0a53ad1cb83a4b8ce253000eadb124222e2ed5f5b9b86e807a427522a32e08d20ed45c6287c664a50bd48dcf4a9c67d30214a628cb5f6281b0091d4cc5e4305457c8162b475b7c10f93fc8c4753d5fee5b33ef22ca6f01940004b8b2f81751c4b01d4fbdb6453edb0bbeb4eae9cc5304556235fdb85a4f9bf011311ca85fc0114b5ecc8be9e59ee43750ed6b5e3d3a8a6896e91ef3e46877ee51d1561811f06058dda0705523b6fd20685f982ae9aa18b3b58a117563e2059abfe03c1bbc5a30220604c3184e51e6f626def6af264de64724adb2fc188ebde8f11a1a550afd6dd06a7b5847b42d5db0f165515c6793ea9138dd23dca2278c805cda53604b42cda8ad762cc5a5dbced461af33a9b83b4c1e085f1c4efe174b101a1a43c73efccc7bfb0b7a3a1b5fc20ba33f34037f25cb2b729af2dbe46e253919b0d70b474560eb4a7b3c9aba5575ee6f7b94de0a09f9e595c9ae67f566d1fc14ca01fc8f468411f642d37c3d521604ab26069fe9adc4a70a4c859502b1b717eafa31fd2a42f0d80f0f0804475de384a208deab52321b03f2bfeda30795c91ee7661d7883aa9d456885cc9169d4eb90903142e07def749d9a46c3b2ccca0d +result: fail +shared_secret: + +# Private key not reduced +private_key: d006f44ea63d21038094ac3083fd6f5edfd81b5a6084cdda59e5490266a351259927ecc2856ce44a83871485f77f89311c7e436ca835798ae250945a9dff3e041a7021edcc3ad5c719c9707a6b823c3d83351451fa94a7258986c064f1e8c98d6f0e40a9ce71c21e6a5a6939dfc95308e8495a47c2aab4b4d30a663f0d5ca99f73b3fa6bed9475bbfa3a6526673d2b44290deb814e377ecd4b9e2e618fad5cd2988070d9ee95f489b87ff5ac396de366fba513b3f23b9809f86eedd7bf9a29a8cd856587eb55887fbbe847c2e93497a236d80df9567e3a6b22d5e3b25f3c5977b1a1d573336869ef2389b37c3867b5e21fd9fa097c9640bc996e2845515bd4f1c3e5eb0c7ce5adb0b219b9c0846cb46c5668796d83759da4af8349fe70c314fa86846b78ac7fa5e5c831c4bb953ccdf79febfd674a8e775a17a4429a197c911bd163454ec4cf86cf94ce7e9562f677978979f7bddeb07c2ceb637e4a736eae5e9e80484ef0da83dc5e3b8cf1b8b9d9aa54d549fd5c695bd84badf4ffdceda5bb16cea1c33e878d45f67bb49572bff16b067ba85e5b3dcf661bc8742c3a8616436d117a53e6c96474fb67f043fa261884adb452219b52f31545550b5520c48da1acca388bc35bbef0e05433ea1c31b46ee3f9fcf828e6bf63dba38a0bdfd154d15c3bcfc03feaf1954f5d95b02e3b3df2ea8cfbfd9f152987e3ebe1ab2effb037dd69fc3ba9ef6ac30556340bc630d6daf6a9e71dc4914daa5fbf9ee25a4e982badda1165e88a7a55962639409af856f480ff2f830315d78c8785cb9591728a47b0043d0a987a498542f32ae13ffda2eda7ea90bfaea9b334e5354b901393c6ae40b05a72e55cf1c496dda34de9edbafd0b8680e4379a7813b07df3696afffae2c4e0223f711a73e71c8bb9803da59965fbb8c9d2cd9565ba2bdcad788ce92b85b7a468b8348094bac38a8d981797c8013f376eaf88df3cac320fd3f3d3f7998fb4124761d2ddf0763d3f6f24d1bc4b361ece56a427d28e56a2822bc941c7aacf26667c2ddf9cddd3398866eaeed4f919dc47ef3c1d249cfe56e9059b38aa1efdb2d8833b9c96ce4d945b83be74be6fe8e53f5e69612f488c7d0753866d71882741d533adcc9ac13245e3ef15bfae06761385a651994085ec4820e75e7694c5b34f3cd12a3b0d06a7194b87055b973803899b4492ae8c6e006636e4bfeea9d872b13c9365ffd8e9acfc74965215e6f90eb96a803aec837cf81987fe21457596a8fd72e649176ed70f1cc7e696ed5a8ad1bceabb0dbad6934fee9f49bffd83a07caa9a15453831898df55d5cf33899f4cc81bb7d59d69f690d784263074060155c45aee30fc9e59c19d28ec559c4169faf663af83c8d82ebd7ab18f13b1b97607ba0de5d962966683c0e4bf48ebe25eafee42d57bb55562b6e97b3d655567daf1107ac025cc8ffcb3f4dae7ea33ab0cc89fbc83b46750dd24e48d8eb1f8f7e3cc01b4495a0c7f846938d23b3fecb2ede48be7c7ebd43340a79f7e5f1407cb0da754b5aff67721c63d46c5c4fc58d88f75427bdd914dbb3ea8f46d2bf573bf59cd76ff2e5939c35bf58576f5917cf8c9cdb82c5643bd13c9b8a634236febadee54aa328dc1c2bae988f8d8746affc737f5bda768ee34bf90ce8628e64f59b689f094aef337ab0f56840dc56a02db313647b87c74154a4c6b79968b2a6f7eb067d2918bed7a94d2416384893d464bed88b6dc49a7c3fe9579a58ca4277a8a75fa7c4a734c2917a98e64db5405a3699949fb66340b36c449b685a1b03896e0ee9a84fe3bc4d4cf6daa413134ae2a5594de4c98789b3f5e93fe9b5e396efff733ee42935f489673cd7668d8cd48b733a472a2736b82ba3dbbad757b89debf5883909c82b7ab524efaa6e0e56dc2ac8c9f6352f038e50fd45f7b8ea100f6881a3890435e80e9742ceddc6a81f9a163338ec0ab2ac4b7d80145053bbe020fd5f771568a724cee02741a604c92b53485c6e7c8fdf4ef15affc608c882c59d9be5717e444fe347b0cab7b07f4b5d415d34c9baacae2c4e854d46aa5f75738966eb87322489d43ee7d83dbfa60fea71019baf85d3866a5cc3a8b93f0936db5533819aa7b6cf0bcec17e81b6659f469533b44e9f331f9fb34bfe8166aa8e1dacb5fd35d7f6f26d3b096a7383933c0cb6615824885499f79dc06b5e874203c3349b2c3b27b1f1012e52bce9968496c068b6e6c7244722621a1a44349314845b1d8831d9821eca386eb8fc254587be5dc529438485b3fac44af0613732509cf225f5c127a4056cd5e503eb742cf03154511969e7a743834708d71579e9ca4a4e281aeb177ef50cb0db826ddd17873e63a182e3b001f659ea3cc73cfaa5d7d7b5e7e9cdaae04c9944978dfb7ed34248d976190cdc0184930e25c6306312180a0b8758395d1febae95b22e0945c5fe265595a9ae91616cf9f35b588b7a02f66d8d49800c50017c7272bbebcffb10a16a5c8560130d96fb0c241a286ba949620ab83539b83d862ddce2507ec4b4bc4330c27517172b43bdf09a5e6a5fb684166800372663544859acbe07424705809587a08dc50fafabc1b2f9486ca6415266c502f7b998dcc947c7b5f5584cd34cc90a4c385f30a2cc051237c6a85d4a5571305a5182c970b9bc87268484f293464545f4c349e8b2ba3e5b4a5e7c42237c0e6e1b7722b04e3d02a27d0597d7169a49e340a778179a924a1d31c0c3d53bedb46868a62ae17847f130ad1478b8428b09fd71b028f1933803318af78103723ae7e1185801872f847753862f9f72323f980d6ba9744cb6c079341b02443b52e4becca891fffbc6084ab40bd17af7c6b2b21c09c170455c52c4c7093c44aabbb1a0c1d11b12070894f7649112f32a98d976c72291100a3bb4948f928771b063839a94a614227587d1a9bd25479bd8bd06e114894bca10814f0c516e1be41b81ccc6044a8f3654679df531c7220982760aa39a4e982ba3247b009d405c0b50969c694858889b4058089631c57dd1c5fe12acd5b27143d09a2d90c8abd8930d16769aa44a3927967b2975a329bce9599bfb170e02a7994fb90e0b1c7bc7db753c065cacf820b80c6c1d585624c93ff14a26afe6245ad8a6b2c082ec871dd1fb10c3acca1898520647b8ef8c0e45580c87f718eaf18ed4e97ea1516acca657bdfa16493115e6c90eb998cd31e6ca095066bc75057b2b71ac2a75711a7820984ae9306dea825c80f26a1ca6c686189c93550d931a1f73fc3ed0341ea703c033bb463c6260097c54bd17996a82abb0d32010cc53d81b7b7052b86abb6302b57d6a34895d09840b3b6a50c9962dc248edfcb328e94460d3c82819cbab49a79f742a86e85577ec995a025fde616fad52c4f092bd89286297d8a8912294faf7c959ca392cd40989c92b8229ad3ec91d352a6bb7d757d3709c5810b40157cc0fe006bfe843419b8a1d792d00c1505e0a63b39c7c2ca2c96f695426073ebd50283572bace67c01bb7b27b09be59e589bd60acca376a8630034cf87e9d49411648a1b05c329af92cb29942cb2369381c3ef761a02f8c905f963f0b08514a7c1302b4bac9f261fa37855b67250258c003e5bc9ad07035e667bcd6a537f35a0756bb2801a0aca56576d72f3a8c0c2f371e5aa036af3a987bb550ac06980bea73b938ce91715a4b19620a08be52695abcb3c833eca2824b60de483810857aba0a9292911c4167159b023989d061ba81c94df979917c72c8eaae518ab0e46ab8927b5b9db690bac6720667baf711a73952b033abaa59d5c4ccf676007044e26c2bb31b5aa2095f2da9724570cb04174e9ac174216c1390a687c60b6c396aa48ef849d19234f36886205b0b28250e7803502565523d0cc0bffb78efe64dc758cf3c93bef42103694b434c4819f82bbc42ab45ad827287a560ee43600b87443d8bc91ac5b15fab2701f05577c32678e06790808d4a6965c30a0915ac8fc7950b274c428a43650003beee2726bd31a09de14e892b54c2605269b8c22f146afe669dc9c4775d200aa9534af5612ea736b01543788b13c3fba608ae90aac0da9335e6c115fbb1d67938b86849d5087a87f3437ea29d7b899144fc3e739a4c079628597c618b554468f56cc6745ff6500d3118c55a8171e42b67ca43ca32135672b22286f78d0485b363d63a2ec737d2aa98ae602d3c485814d2c195db5d7bea8b3ae5470ff7a1e8225f82d565414c6b59379cc5b26155f682f6098795c52e3e8acfed87743737c1bee0ba875a95e9509d89f3667d741cb3aaa989378a2425a0e5f218c02763de4345a208c5bbe4949a506dcd5b01c5f8f4ec5f5bae6946c95ad7fa4e1e5f80354b5112d882796092029150d5d6211c931f81fc67b2316f99db7f55d799363828f7de74b5e979fd7620c7449132d44f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f +ciphertext: 29a04526a0c95d33c0ff721ccfea7e7c15c88040d8cbcc77759871674a074b97bd18ac3918db551fe069642f81f09945bf219c631d070369d50a317e95fa46599a058cc549b706584dae3d4c46e697876303bfedba4a19d83dc9bf2b9e0b6067303fa374b47548f70137324d1a3b0282af3e58909f5fd542bdbbc224cc54de3740e9e9f97f027e065e26c92e35c5ccecfdf6daed38b5901771eb81e6cd1ab7bb2e1e3bbb4293a64851faf9b0e9c9737710f5b38262ce26c6e01f5ab14d389bcf5b529d1fde7d8373ca6b9c073cea78836047c35f95e8abae2633c883069e77533db76dffb6a736fb2a64bc3189f9a82153787e03a79621c57fd4a110d262617264c94da4b7c3178f469790a7d2b0a6fe1126294f798aab1a41af2ae9e348afd7af13ed805228f378a4582810753c0faa9b7caec913a32275f5b9b67b3779e268bc93db076ab774c6a171ec6733a61373407707ddb539b8fde040ec617b841d41dad7bd094f3f3fe46a8953651e58ae11f0332c4ee155b9dd3330a910d7f188f12e823016f4dbe751608e8704e2508cdc0ceec8fb9ce26f792d0e2469e4b24d275d6f020cb39fec52f92672b6935e15a8a83a64ac080cc4f488343dc3d5fbafa73f26f44cd1608f96c799336d84e4a82c9c06f019e49ae3871ba14801d43dca78cc6a05978919c9dddc7e8371546ce205b9cef943e939586a07762feaa427effd373a0affb7feaa691b960edb8abdee3d62b6bebad516cba6d6533615eb25194c996255bf2c6b04c8ca1a7d425f1ecb11b28b2ba5af11d4135092de06313070d14efcf6794d3a200e05a398da25149c7635487d32e74bf69491d10d2a17b712316ce5629787b740bf77673e9cfe9d7459a4125d4e0ec93f69e0318f0a69c36e597a65ae21957a6cd659879b3a6a9d5348eaf378ef2b3efa893025b906f2b86bdfb1d52e00b64b26701d4f3a88a50c24a8a534d70c46c90cc1e27851c11e679bb95de1eed93b827dc9fcde8b7ffa43c98029877087d74e6f0af2dab01aa4c018c89ba3a4b0cf0bff09c1f7b0332d15c8f929dfadbfbb2d272f49fee30b68bcfbcecdf22b739d4fe9e9033b94e545c1772114e7cad746f14885a67f1ae72a94cbe4fd6087efa70b0f3851eb9561e8b737897022b3592b2562292e6fe82eba945fa2c55afee464753d3ffaaf43edd0b1342f9f8977fac2e2a00dfcc3954c3df9a0e482a89166224cdc26a29a682807aa24842db39d7c867fe2a59d062dd7e58174e6fafc0d0d9fe9dd1bf9df791feef3dab0d3e1e0f51daa5c2a007b3c2cab400d0da44c7c1339c403f4a0341fc73bef02339e9f1447f9de95129e3442ceed7adbaf470b795d902995541333a1c9ed5a3ad6ed4a6c7ca0bba221a45e7e640880185470b1b8ac00511d455670e55b84ccd8097687729c293f8932e608d279dc0bcecc77a986de4010290ceb2a28327fe93d7e191eb4f1274eede3ba1bde770fb6c7542cd9b3147a574ba092a05298299d6968a4585d727d0d5cbaa60d0c7e165f20ff50fdccd56996940f8173d9887b75aff72f16ed907fc5a95666f22ebb127c439375257b56adfc30f4c06585019f941636429d8ec9740cba71da5fd7c4d76d0a0e75d0b024a61b8ab66881ae9e48f063ec6191592040d896be263c4b7559d3d2d218d11dc8a3d4cd8c17b19e321ad796e9a91d69e2dc9c165be0e35825ccc3f83bc1390f2e1edad44e16ecee5eda90ce6c76a9275207469575b11c113cf045496941fcdb646ea8766e98214b8b2ae1a43ce2d7163df57600e6be191c60d65b36cd15363f55718fec02d3e61881aaf99b7c6fc4e3335c9ff93fd9a4072af723a0969f0be5458b29c5a2e7bab4274bd90ab0e66527d09fae43ddaee47a122b9610e39476c0921b84b7f3fadd309cf0e166eeee533dc99e7bf38f3a03c4eb8aa42240607488971f9d7283769a289c4531c37b90a2487aa9ff876cc2dbf22e340edcc0f71cafe5ccaab8628c024e4f3ebb2582e5c7f1483b6a3c0384bf9c75d0be7913430f876303649e14c43d9e2fbb83f85bab7f2198f8c6dd01f95c09bd876c853b041fceae938f138068ede7ed1f2f195161dc657fcc45c367cccf9cca84a1d5ebde17e33e5e225590bf0cc4407929ed5643765ed351efca55a5b834a49a482962d8988473165887bcd57f89078a3fc68d3ff12fa2ed354a23dfaf3d189cdd7831 +result: fail +shared_secret: + +# Private key not reduced +private_key: 2b9cfea564fd9e3b90c417523f79d10a0d7c5aa979412dfce5ec7bc9bb471726b203edfe4f97e063cf81d3ad95c4cac14d6b9ade99421d2599fb696942f6b74d349bc24af099f687f1a3b1db37810966e5a44e862246b2960dcf6c48f8085c8f72d3d3ebb9773de9dc38eed01be7de1bb7dab99cc2440a6d8b94e314e84c727e8c1f08d3897abde7694d49f4e60915f7a70db2ab4578a378b0cd9b523094d3ce5c5ad198bcc6ecdb3d5bba010ab9d6ce8ca43ed111654b47fa504dcfb34ebab1a9f3f8fb963b2259ed5ddbe3b5f46b3f4366920e483e95aa0bfc83cbfbbc6666f69eadd138dbc2532d6fe88eb007b3c2a26740644bdb9e6cba3d83a3547be12baa3113fc5ce4e94dce8abb128d564c6cce9583a703ead22e2da14489426e6693ba37e0aeb5f761173f5f5379cb8eedf6a7fe7264b3c9df8060bd8880a6420ebaea060476e89f562cd3cb8a768d2bb3f403bf65943db7971aead388fd670486e4e73a6cf47938549a8246991e2d5f4a4bbb8f977ddb3c8f735ee0cfdf67ce78ee134dae0c9674c5ffde4e9fe94a1bb836eeb56166cac47e4e3c4fa6019fbd746665e253933d6786dfe6b95eb9a98f8cf99fa9993e8d3755f4def80aa7de893948b5bd65366288b7d00c6a5c3b7c5b00e7e02ea95f490bcda8d6ab396fdc31ef31a449a69bec79cfc8ddadb5d739f83a85d6f4a1458c135875a813d41f186fb6d5dd2c0b657b59377cdfaeccb343b56a7a5edf466fe9d2d5b5bd3cd3557fb3e465fa8cf9ccabd06af4ad39d988355ee23e8789fc81e5eee2cc797dc6ed87c0dae9d5e8b85c57463f456868eb585a188a27f5e858f8cc8c24a9a1b47b38934e07c9f52acd722b98ae0c3ba8d703fae1acdf6f8d92acc7c6170ae55c37bb4785d1c29e9b27bd41aa6641362a480397c5e054e439545deb6b5c48ede539337f523ca078c6543ed9984aac812638a00fe930a07b56e6859a21fdce556e7ee6b8395867319a3d583309a6763daee09de8b70f536d33c9908eb7a7b6a253bdd073443c9ff4bdfdd87b3513536d93c908188516749a28b9fa4119e9a2d8d3197bee4a533cf8133bf98cff49fbbb1dde9e2f3838f4dd5fc8e5c11cd6d2ebe5a2a5187ff2a74025a7af16075fdf88374624305c29e116c9bf59dccf9fe89e870dd8a6e3c0b0dba7333bc4c9733214cbf33e05c8a033ae93e85bfbdbafe41f60e8f7a5a1abc9db3d3fadc8697a264013addfd1c7e3f8da7ac5ca8f2206be63d3ec5fe3c6f6188deab3ed8a6dfaac2ac5052b982e3a75b385ad353c9c035c862cd5a62a0d76c959b11e6a4832793378b9828c0f36e016bf6817511dd9a8612fcce528ff671de3f9bfa036a993c90740a6a5ae2779724b6db872e5bf76c78a6d95997397bf119fb28289f4dc0e5cab2d4bf247e0daa4ee0d4aea05458ee4386404aa5ec1cbb1099f5ac57d3049ad9f388e4c78e63fc4c3ef244ec55a3ffa6db43d50cce2d8c88962cb7e9149c00a4e4c51a7f1b639709545f4009b8be2cae644c787ed0ade9facdeaf8ff038fd546fc96cb333a0632d6436ecf1f78d6099bb5fa43879e2d433caeebe8b073077ced34d16fad0348e6223e76a6da90b7ab4dea8adb0ba41c74bfc4be4c0a17fd0e3a975042346b62f44ef5334ca8e89257d92a29d92e8833ad53d96e4b47c50668356fcdbc5bcf12e9ae972f4de7029561befde33caf9f97cba0f3e53b338a0994ebb6eab67fcf4ea86265d6a2899d1b7bf4416ad1bdfe1f7969914a3dda09844a36d3989998542ea9ec25cda5d9bd1fec38c33e84d51b93c360a4d98d439c5a3d63a3747fbacfeb16439ac7d35490a99793939445ccd33c4aa2974aacc2e873a7659a98bb67668ae47548ab98b336f3ed33245f2dcec9b59d8def0e5c935b697c0ac85da18766b39cc1e9ce319567b967de09c3cff66a9ae528a88a06dde8f1eb9d54869085dc54bce785bf998be78cc935bcce9f8e85efa9f009791d4a687f23e309a0c8d521d5d2b75de295abb3fcf9f1c5fe0631486396f601a5f5c844974f12a9add84c72f3f4ea3698bde2b33de8770aa65674f43b862ef8e53e54df45d40a4b9eac6cc4867635ccc9e680d943a488faf83de7c2fc8a3f5fbfaf1ae525a29af95dfcf7c8631f95862fdeea402ee75de0c3c194d72445ce0cd22ca9cea98bcd401164c349b35c8b36424f294b11ec7c7d0a3953fec20dbb283ef99a3452496d9b86513e33633765c10b45c6612bfcf590f6036a711eb3dead00067649eedd14491716caed40a3db26d7b00c6e8396858c3916397166d24370b033ee54c3d3b85b5382b1f3f1220325aa2f804bba473cc70b15d443548491416bc1698a5a9c39dea2ba59171f35569ed6946621c1b3647598becbcbbc72a0781c77baa5ba128b1b7053b2de9c122b8790125c50e003a119964aa48392a96b01d7675af541b46b4369b10c38a2c68ee5425c5f6293c2255a19a7cc2607774d342af773a22c3943a9b411bd69a92e1c756993a1a392698a93d5f4772c374b549c15a0bd636be908641a7b8ed758e3c341292598b82a7976f45ae4fb0bc2af0352d92751a6a5e5015444d3b82cef064d32c3bef9b2292571092360e1806b5e5a892586029ab421ed247afff408f7fbc9b5cab930a6896b1250ab1c58ac4231fd6d0bd9b990b649028e4c28e435093b36462e28940fd2723e7bc20e59914e1c812bb3aa912318f15472a64b75c12ba361b2843751611183870a6028496195cd5d219698a89dbcb2c1c06ab2bd5937c1cb5a2da7774bc3facfaa028829f3c3c9bd6c584eec882ccf3ae1b00b1357692ed377f09712a30fbc73f17c0bc462a88e64de262c24e7a7f7c784dbc5b615ad57e58484db23363433a4680126c2eb5b9152c162e3277c0bc4da9693b22daac51a1c6107242b7428ac3f21f2c3968810435f9aabf3c65b7db7b37361218b49b9c76695b53c9a227963ccc1b60d447b3b7d15765bab6b3b73585f26c2f0862c927b6f23624f360a4f6c537b09563adf7a9616a4dba03732c707fed845c35c660b5317ef652055843cbc28ac501dcb493eb5d6bd5c322ea2f2a8b61418b9788482f51b8135f4c1f1173895057ad3218387d527133890fa3a9425d73ce03e1879b85a5b120285b823501487d5c555ed2b7bfac82762b9262d3d4b3b64736497899a768903750bff4a82e6a0097f3c230dba5bcb0ac95006852bf60480d039d1fca9fb758b5562a384160acd9c489a3b4bdbcd96989c57eb7a411ea3540ada882aa567fbb340b518477839925577c780953bafd0cbe2803626b89cf1c3b3056c4bd78c88818211fc836765fe813c7b18e5dc9725978ccd9ea8c7e1710ddeb883ad93e2cc987024b817c30908ab1ba7a658399dc931a4ba4fca5a10398289e9718e906336b148c328c2930b843cd4ca0d4735b633618e8c1c327b29596c24bab053867747883231f11005ed6987679544b51c45d42cc209b7061a91a0c82a92c943c85c149b79c1a190716c03f156d3c22ad27e7b8b87962c8c5421d3b01c7eb2220452b22d813d2180e7a38be15b6976aec7659d25b60d3c780fa75c3654d7f9b6de0d33c8c28c97b6b95bc8c2cb517b497f73a98c41a64f312fff48fcda7b07e86a8136c05720a8740d866bc024ca1e22d43f6470c8a38a7301b3ce74585e6ab8b899b13ea39c163ae79e764e0b846fcd57029a73708091f053212c6f93f1173a854b26d7e49bfae38046e43193b98460d171fb48283e736c7a1651deee6272387cf65ac876feb4292bbbc9200981299c9bff13690d6c2017bbd3e257700a111fefa33072ccc8e952263e4867590c79b558187e3441a930964aa3ec0441e91e7ad198cb6e8959a35051ddd972a43a020d0f968eaa8696b9686dab01b9f9b8095522a7b411d486444b16ac4fee7b245f50ba1a26d81457b802bba966ac8eb300cd92773ca26908a91a2e23b21b0116dfcaaa5f4a57514dc2ad736cc788904c29050389b80cafb0d71b131b567551f6a2e16390c55234e5ad50080ea6268047618b333a49795b4233bd07530a89c275bdabc4ec99d84a812d9e20e2c27072196138386ba42cc4998314905e070ecab69f2d12aa204a32ad28658da3fab69223521b81461312cf88700a49077914af3c28a2f544d608209e24cccfeb46ae13bb90e8b86a4bc85d5f41a9ada7a957ca8763acad6713623ec20e2f199b1270966432bf2b8cacec65776d8a63a471cb4a7c891a01bc92c8c28719c3ff9a8a7a350d9454729d2ce932982e94bbf30b298b3353ca6c459ee5017fcb724ff430a9348b9fb46abc86374b245668ac71096501a7f3313823c5749e01d0e40444111bebc0a6858891224b08cfc8e74c41084fd5c03c102480537c11d5e63a349785e242cc58bf790539d3adf4844176afb3ade1db843a9e6ae9f1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf +ciphertext: 63d6fa95398bbb5cc6252d3f85dd6b4237aa349b547e8e797ef542fb715f07e00e226a4531c7e73f37fe3e087a03ed41c2f0959aac4262b2abed8ba6c6fbec26040f0eb47abb84a3c6e88ef2f821cf78d4cc51751083006ebf5854086c9d3f0faef0debdbbc1010af6288b7aefd203ec88e2700da503101b6c470267e109e96717404e2eb97f499bbb6749bce23274c649b25ad90bc7829f1b63a4b2c26811fd9add3d29d1818f00969f73f1b6afdbb68cc8423dde3630c679a0d8c934410287719c7ffe1b6eabf4415d4f4e14746086a22bbecba104ea27f7efc10a40bb1a87872ca72a80669ab1f02956bfb0311f87173df960b2417381b34cdab574efd7f4c884d879606684d344431c57c1b46b07c8bac3243e4969f484b9446946c7c0af4e2e5e05ab87f527290ff9fae3edcf5b8fdcc0b3de2034f26a19f0844839fb26e790e38ee44e21c9a01d96f4bde5296e021ec68352d938c1ae66154b6efb60ac2f5c96eb0c269b0be10f4cdbcec80eb739e7d4c78fe410fbb427b95cb1c09b7eacc303993a25b38aaf91962f4046597da21956bd98f9575bf1e9fac24bd420ed299f8940d92988a2f44647691c616542f8d617b19363570510a643dccfc58dba36a7aca98b277626b56672d21e67ee3af62b26921e48c2b69b766dd6b30f942a7025762554c9bf05bfeb960e0696bb2c7b1fa05e388fc5e5f495c2a853137eb15387fee4455a54dc30aabbbef10018e4c135df1e6fbf2d5c2399478039eadff9151e9ad56f8f0cd96eeb6423224df09df74438176fd5dcaf7e6db01b89204ab099802b94755c0740975198a4104001a2724b9889a60411997040938895b9b7d6889b17d0f79b97cbf249fe33eec67c1d77b84694979ea0e4f7b5979486ec187ece4de8d017b01d4d65ac63fd0c04ae5d5c073b15fc182438acecec41bb9b277157a2d023a9a73394491d65b3f103e6f498982645da202a0c8978d4b06a406f8561b819a8f4305deba7a8fd67801f62e10445de38d45b487075ac0eb698525ead41e8a10047625922f197530cb6ae8a1714265d322f22fe4fc97f74e585452fcfbb49815c793e65585522847ed4cab843e416c777b19958346fd716378bc78ac25e6d2a9f8f81f504210918261cb8afaf27ee2a97b53a9e044a17a3bbff44b7e1cb843c01bfbfb7d3f3c014c430753308ee60ebed89cb10f55541560473b4481a4d7d414d6784f7a6eceb2f7b68eb8eee39d093b7f5c98243dbffe414965a5eec8b9c6eaa79885366ff8f414cdc290ef8a9a12f89dc48aad20325376e81ccc707fc90cde5a9d8deb4dadeb06a8867e3f0c9589798950be6373059772a3b9f68912c227a37266f34d5bff7119a1dba2fb43596d239c8367f5d3aeeae8c1f87dc2a84f629ea5cacee50bba554cb1a17ac7e8674ad6d9ab7ba149b621f3ed1889e904248f63a94214806a4fb634ef53d9ed39e18eadf6cdddfa7e88d897943226b7555ff9b0773ac7f538e377cea881c5561d88fd8346d21931ef7eba7f87e3da5582a7939cc47bb5817edeb8c369373bcca25ef3ac10aef2f404a70abce312a5c7443bc50f63d516e9b151380a8d57ec19a65c3926ff2e5e5e6be8455bc3b4bc543cb0cd7d057966ec422d67565be74fa0b6534f90b4271d2786c553839948b873b2dc6fb18b9e045a75cac00d98fcad5098d24014438c717174a5e62808d386eedc22cfc6ab5c94ebd00b164f0c86fe25de8981850ad8d965db545166eab7056d23944d0d1a25fe0a77c33df334ef7dcffe8ef353c724003db5cd42e1d80d2bfe0a2531faf2c5d8408608ba85e1535f4f5905770559a069167c1b5c90b4644e4420c3ca700a33114fd71dc2f956c958093436b77805781da06bac77019fa8bd04da156a4c595f33ae5de0e16d4435b227c9d2783ea3fe02a6a9d273201cdb9601da483e74d908ed10c67576dec23164e33b890fedff26cfe273e650c731df6ab11d010dcad78a92de3399f4dfdad418026460eb361b54cc4621d8bbed1d95de9ae21a0aca3d82c33848b84918ebe928024b2e37217c19ef27b80cfa368e439485886009317483c380dc822a3cdadac0e0f2f2fc0680ae72792a4907e70bb5a12b02ce1ce7c39af82880e6fcc0fb132cd07571aa16e94926e0efe2336018e01dc021fa99588d3c75fc31663e2a25abb66e05ee2034d642f4b2cacad9fa5ca1c15d7 +result: fail +shared_secret: + +# Private key not reduced +private_key: 04a39f794dad6e0c41094e36f226d9603ada00cd8e10fde58c1c3c27845ae72e9abcfc95e738e4a977665594ee4659ea9ee3425a1e3357aef3d7ad9a54a8a253a49afabf7104de968746f2ea93bd17da439e98f26a333da9d5f5b856c7ed53593b1df007235d852f5fcb0f7493168f9748c4395dd4d873abe1bba6931fc7fc4ca89ec745ffac84b99c870796def798bc1e7c4f2f0344552d54f3c46dc72a6f9d2b9303e6cf124d40e146d87b66af5fb47ec6a55c12ddfacdaf3f306a7221f3c8157d714a57fea92fbd387cb29de9ce4bc96655d63e191ec93a84de148c994e149555bf4edfcc6b4878c5567d971d95576acb6943c6532dcfe01b4468cf578a9934863483617489f758c350662ff4a3eff647446f68ad56180ab2afa34ba27a76933c9f4f3447c0ac6b606be44a2c9f2d6f6e8f434b4f35ccf894327c53a7dac9d09d5a9a4e7bbf0e7af2d50ef1b0d4fae4a7c0ab08774cf8a33e069d496d655cd4bff1a4da233e4356e8525213c351688b1b7f5a6749e8088d31ec47d80956973266811dd8ca275c9a75fcbb7b9891c26a3e343b36bf5f73ec946f4207d965bc48d6238ad42b616d1eb708d3551d3b9dc61b653e06b1e77d9bc125f56687af92a4eb2fdcb99958e84c0f5239c89052765b3d63b476c3a4df499564fcd74aad349614d029da776d686dcf9984ac9354c2c69f2c3c8d3d5774201b7ac0254a891871847acca5099f89733fbe2a4979dcbc26f5c38efc512aed83f508441dc6c7eae73b1e7958671767969be80a3b34343cca94289fe0a8788b1cc8394c5710b9ba6fbcecf3147db32c9060a9cf2d05673413e190b53ae189e7e419d7b628f6528cf77344c8bc4754524e4e00e3cfa7ce5400cd5a6875c7b39fd7037d6567bdd460acbe591f8e4c86909526dfd0dc303ff8ca68a8947f4ee0c626c707ead3457e7297147aee5c39839cdf73ea57f713d8601ba55e977bbd7b681e0c4c1cab818bae56ebbf4f75cfb66ffc8959c361809f941f2cd935d89702d7ef4d76c4450fab934ed9055d4ab5f9a002d3f1b51ebead73a81afdfd006d8ac368bb8933eaf85a97bb7bde23bcfca869306f9f39d808cb254efc48c4624c33537b8d92f6e8c148add894f3838db9b0fca4e9dffb6e791f7e932d42fe4a3c20e5c48e478bdb5fa2bb0a85623df4ff5c92801ab1edb8fde8aa6442249ade4b6bb9886015035d436a855cb495f6885f6e3d84f498affebe7273fef7bfc3bacd3831d07cf0569b92fa9b902797d7c995b2db1b63a423a997e37a244c763394b9b28b3d3538c981eadbe1556696a7330fa83883ceb7da6668f1fa5841ea5a984b4f6f4869356682b975fa842859bf079238a83ee3d6b0172df70498f47c6b5e63dbee433677333eb6dc6bbe6888345a0ab5cd37d9154f786f33e3c16bab398356f1899554c69c50cd9c9b8fdfdd8bb1de03c80f5f41d25559fd7568b42ecbffec8f61a4d3662a61c696ad90346bac979a7e446e41d5582acbb5e007dbecc4330a65d854f6deec5f901998f5a20dea15cbd9501dbc0ccf957253dbf8cb8938a4c182698557ca49ba9b74954e964089fc3fc3eccf7daa2fdf4830b65efc4fe8052c539f2539ddbde5335e3717c7bc562e799576712763f7ff44a79a49b92f343a533baee5ed6cb0ff3d7857ca540a78f886be136b3506cbd80ef563e8a3987c083b4b5cbef51dab212e3af88d7d3d5fc58c95fdd48c4060587ccf259f0004d916ea86eedf76d1135eed7db990e5c11e97c470d97ce45a3a105a9da1ca768166c86d4e474bf9f536febcf7539d09598e773aadf39a5b66ec79b46d699e953bb0babde5fdc707b99ce605d85217a0554d7073bd84b7546bfa95cceefe666746bfe74c674fdbc80edc35b4769f60ed8632aba9b5398e79dc45ae0e4a8ab539c157b672eb74757c6632e6c9233df591af7dd1d8f527a36288efab7b3f7a264abd300634236e49513980b9dbca958ce560a6c32b2d328b79f6c843b53c635719f635ede9df3c63e3ee1766563a7a9ab6b01156f559cff9fc9e3179a438f3b5b2f427adfbeb90f74afceb29dcc6dc713b83afbe1fa54b1ce70cf973368be1db2cb3e5d880c179d4183fa276b93056e4632deb8607cf76a0897117ad82958fbbeec870f19cf47309759a7ec4e28df117a1c1ca6b5b6bdabfebac339a5c121792056c508ff99588d292cbcc1760f1eccbf105281116a623c600e87b4231c2a94689133ca16b6d99796700b917262f4d776d10709a26123a5af9af5ac7455882caa4d220437271aa5c9e30877a3cb263f9048a483a826774c806941939c44274287b629b2bcba56f19e7aab2b8c6a3f72bbdf5820c774c48a151c381a5a75c27337c60c406cc1ae36a3eeb25d91521918a780d75a69f94aa4005771a5c22ed4466811834fbb238e6351fb055a70c32994442297f273752db6f03f445804c0cdb380f838c484c50250bb2c849e308d8f608ed942442e85bae7cadf4c6c3a49cc1cc107ff32154e61a99df1244f8f956c678ac4192aba83b5485f284f1510b816c26d16922412738db9796cf6023e558741c7ca293eb35fdd71f9175b838377fff3050d447a35e208027881406446061686621fab300755a15921be9d24b721a50976884c76ba928405ea9e6b7b357baa68674bf412f66f54a454c03fc2a64b1c1142bc56cc535911efa578c5a097d8301836cc641e078bdf1245e5359a0d7ce3a87012d199880a3ab5d61753488782b9734c26947b6c925e4fa6ca38475905a9f45a88221db62b762b4c884344cfc7d81e55fa34293dbf49e4e8bce0bb95408b32bec404a245c153042a3ebcbbd8598a3f9537e1403319a5cc6a006a37db5a3fc4960ddc5381a1b0b85657d41d085309b47c9e21a0641700a14150a0b3e00823e76c6bad867c6f3e6568eb840b9a9c4f4f45d35e733ae56377b9c2e008b66f9436b59320f3107aa43dc123bc2a89637637dd3a26ab0abf355c0fef642632523611a196e2402ac16c38562a0f8c65b6a0485dee1492ce2494b7230422abb2d705333d4c3f4e10b28d3c4b3266949ca4b95062e3d600caacc77655236181208c0dc4487063ccc528961661dc0e474bdd88faceb2ec448c1ea8a6f14206a33195e30fa4efd463b7f438ecf4ace66090bc268b532b251d783bb380380e12a79ac044bd72c0d9478018d98b6e4e36f234142347b919601521365665ed05111f39698c43f5b62c047f1ba861a91a1e29f6bf1b8ba376280db89feda41195a9564d17c73f4305d73cc6a606530179029e192352a5aa9e58f4df6c0c9d8846da4518192bc360544f734340c9b072cf399806906784073f622ac18c766de49a65df56b6ff99a6e896245c7aa5585723d1c6981a0ad2fc09115b8b8321941961959a8e40b37c24a66125810223dcfbaa093510bf0b9c631e65021d64bae6bbe847c7576826506f73493d19da8d47f07898d179697aec0a1df3cad227cbc83c33c6b72b450731d943041f79136d34c7f039558468c3de1e3021e509a2d898ec1245fa9a966ba457e5894691899521362b7f2d607578b01f230365a84c7ae1ba12ba53c1e216933a34e53e75e252c52087c615fd5ad705743494b10042b033468af0016274df94f2e65048e9a4595a4b541b082bcd96e6d90a44af778077007c069ac9673cb4a559820a2a9992c4500da89f5acc48a6bc9ac1922be9c211f36c468986d0704121193ad5e2732d693c650d867234c9c261525325157fdf94d89eb2da1949a627338c0d07b1cb9cb45d95b64b38a22b029bcb87c928c7c97984d760bb11b9666271aa914d3cbefd723d40928ede94af17516ef7a72c1fa978584111f8b0903c544dd7c81d94a3b8502cc08b21cd89c8fafb94d9eb57f9061a51e9aa6f3860ca3da018dec14d46981062b8ffd542747e7c83cf815989117ac14ba1654be4a92b396b01fab274a082609ed9c685f125fdc4611cc8c00167a8be5f28f0867397da186ae68a29701b4c1885235faa006d45d30b990d13c479fa5b1b76ca2406a46a0c42f9c63cccdd187f5e93b16f20bb86b5251b00842d28e58c86dbca41ad708a62c28846d0c983dd60dc4f5b018017fb1276eaf839a2898a8caec69f11037498c5a621c05cdc5bfc9ac9dde250a7c4c1531b813b3f84e70a43baa43950a9cacf07c9dc6c8b8c4a660aee6ca67159a00010a3414c87fd94ad197856d9940ddb47ad0d8700f635e58408a5af8213fe4636fcc594ee677b3f205e3552202ca8087922402d24ac4f42fdf5c99ba1356f14cbff297192a40b48abb531912b8f853a07bd241b19aa1effa784e5746905449b1e7436a79a28e3f712507e5bc0d026037001723d3443145bd066cebaaa3d000c9f0ca5955b9c5a4f2ca172535d5a32ef67d54f334bf726829082485a7b83d43b46b236590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 +ciphertext: f605d7f505e0fe8ef088c83ba4fff503ef6cf01cfd1ebc1de439deac5a95f4e38b9538d124635bce71eeffe55f70a3674eeff62ad618bfcda3cd2af15ada072885cbc36b5693deb6aa5e9391478e37f43a4993451a1d2ca8b1c7f305eec6f33cd473f5c0c32878f04697a215f721821adf39a35f1e6387cf545e34b2e6e7752e0c4059d659c93224110c42abd2d7661d1dcf8ff3c911b25eefda9878494336447ec650b15ce1fdaf1895b55b53ad7c67eb2ebfaf8a9851d0f6456b79486a2499b1cb0053d3fb4b0e2a71cee95ebf420cb0cff6fe121717899dff28bccd41e2a501e5667a502491cade70d225666e4a37a543a6336ee70b6a8d0a9fb63d4c5e463b54a0057e9b787b4c06707fdf6444d6fa1b3c93c31761b30b72d8c4d7367f97d50a466af778616748909ccd7e7728e4a4e572e45dfcbbd4527c11adac3717ec369d2cfec6dd81ae8242b82c35abaa7c960324bfad3f852b4e6a322b90e9dbd614c233cc58dc0fd676106990460187b69d33e572e638cfec27c025c507cd991d5282c83b48871ece91b7255e9675aed2fcaa4199a429a6bd8b83632119bc9771bfa14480f3b37cb7df7f80455df8f9367c216480c3289eeaadab9aaa845f5d078b756556b3cdaa03c00c984a32d3f3f06faf156981a26df5e3f6a02fded61977e366c589fc795baabb8858bd8bb371b12cf4ba2c0d432df56bd431d7a218067eb2373c1fa69e3a84b7d5678119c57ab67480931a543fb81bc087ce99224eb1a47f9d592a874d56eb0c4330554bff08da929f9e95112c1ee6ace229983014efb098b074df89dadb5eff8b6bdd415a1501d0611b6afb645a03d964ca2ed657e8140c45fe6e2dcd77c735b47c944867c42cc482376fb901aca1b16a2206a1a64987a321e7ae1b93f64750a3c3a2f409ad5415bf829c7721d39326fcdecee96ae1760e0586f38966e4950e7aa8ac7d7b9a376705cd7d00c7dd16f80b2f43e51494f23f4878a6fecfe78fc829fd434afd2a92926a00db7374bfd914393b649e1c83106741ba515c935ab17efd4cdf2f2f21266aee6895a863d4ec76e664ed6d4aafe4f6a93209d65bc4e07d1da5390931f67b258e815d7e690382fdc30ed24ed71a4ba493f414a1bd819e03954cee59536f246f491d041fe93eb6fb304c73efe1ff24c7d27b1cfb13434693591dd1c703253dfcba6d2f259856c57ca3fff6e3945944c11572e639aec5251d5bdcaa95cdbb42c32c46312cc8da6e4cfce716a39b507ef2edfd550a4d3ce610811b2908e7921c86edc26ab8ad7be77a218a5196a0f8f7747f82a1cd7190b3c5e2dc9ac9ccb41fbd4b285c549957392d305fb73a5a383fc1201488e979e15a96ccda773a0cc4eeccfb66e1a4c0682d7d5999a1a764ad7d0985e9232fb703c7621e7ed0c8ba06f772fd64e29e5f3972e49326052807179242ee5cf1d56120682c73c4ea48c135024a3c75a62bcbe17c44b6777d0c3069589bcbecc80c056bc5643664cc7e89ee9ce5df543b1592792a58528204bf6981a62eb5f19384a735d040dfc2febecdde5b7aca54031cec4e3919e54b2759d61d47d964b17c4744df220d86016a73a04189c6ea4be973191b65cb695d9de8d7445401fffc8653460cf4a21f55dd57c740756a8675660c71e5c47dae0d2063d68e355747bdc3b71c743dc4f8fc6e2296bde795bdfad9e7ef9be2cab791dc2862421716744594a1f5a92630a913779a0bbc2dc8c55daf05a7010a24f81faffadb2c5490f42ba265242d34698453aa40788a6def27a7dadbe839e4ccb23fcb72c10d7748a86422dc2ba55cfc2f79adec0363ee4b8d2eaca8a0b23ad4b6a26c8193b9172ae25eaf52fceeef855a4a61e4a0247abc5a642a435463f6ade5fd978328883966085aa2371899f39a84c18d70463dcb9c04f3459426f43d3e23e3246baf6693e4fd216835be3f5f9377de1d96c7d7062d0c62a700b24fef99c6bda9e8f818773ac4ca5dcce6880d30c9ca28191a43629a020e57a32c04b3e198006f47a8098ad93fa697548c33d02ddb81578504ddcacb3693afa604ad00edebad0391c3b73b4766c3ed02f9025aa39fd4c368ae961d44114f3f8f7c422117d494df0b7031349de637cf57245cb4a818d95ffcc488cd887b1824ae61d3a8511d95dcbf495d9003b7a3ce53465dc1ec6fab9f6c0590f76372a6e51e00b8d11135ecdfbdfe2d89 +result: fail +shared_secret: + +# Private key not reduced +private_key: 93ab695549515d75a2caf8a97b8974e764d7d5e56416d3a3010c304c99aa39d468bdab9dab3b87db2cf7a2b831ea3595d48ed39345c37a99f328287cf49f556194949288f8d95a713997eeb99496755ab3b689969f9d7ceebd5a97c7976b3e68403f9fe0237798f9387d5ba1197dcf6eede668ea8d0a74c0aea46e13697dcc9846b1a8a9f2bc5304378154bc7cf8fcfdf8fd70ff06b08523958abea700df3f9653a821767a36b8f94fd59793abbb834bd9d7ed9e71c9d62de3d55cc9a050adb8e6e4eae21dd1c18a398ed85bf42fe8542f71332c73cea3862877d81a9bfc611be7865efbe304ffa659e7d3ca6779ab65828d9d5f14e2f589d19a35c6ac2ea4f924ff9d2a4b0c83eab447a002d7d29b59dad6ce372eb6483b2d5fedda3770feb43253de1738b7ab9531bcd48b4da54f4d3a96a00c718fd8d9303c50d114fb7e49457ca5e2e4f66e6b754160aebb6b23a1edec751d6daa619473b9c489d6c5c4935380dcb67ff7f59d03a33881c6d819bef639386db06c6ee73e3f98bb8c1163b2c95f6744b560f1d7c67235d258288a7886ec99a8aee39fa6b0b48b81df495684891a28bf0d2f6de929b8239f89f4ef90d21a450a0e659d4d4e0bacf5a55c7dc39bbe081fd3c85cb3ea7d8071f6cb9f9d45cf56d93aff9c321583f8695ab709ae128fe92438fafc0ff6cc54ad88ce3c56733a21294becb8fd857f363a33d8a51e63c2e6db7c3b42fe1b74c93a6a5146418e58697d3344006aa576d6300728440f0adb6166514539bcc908cd1b3ba889d9ae2353e6a8d7709b7e566364e2f0eb33451942dcdb77aa9b4e2adeae41b586caa6d661ed8672accafd847ff9289036fede06fdc35d6bea9278615105533c98ca6b1b93102d7c5ac3380f2933e834b4e45983a93aeaf994bc51ea5ec3e3838adf559275ca3bcc4d7d5d585cea9fd145bf294f62d458badd13ff2a4d50e024f2fbe34c060e815018f05ec4a8d54dd6674788a8d3a64c57470c953ecfe789fc4ff4efd84d4b4dc92195f056a8cdf439766494f9729386e663397f475900655be634aab9344610fc6323af8d859b5214395172468a1567da181d96c65de175fbcb0db8cccdce6e5e6b82f783fc2c47ae7d15738d75d189b3702d859ee43bb0a075dfa0cc82386ebee4b4d8787f7eed58815a64c38a94b7de743688156a18368f7fa9a83064cdba7fb762a97ba0bc61bd45650478661819ba109947aa3f7d1e54b1bee845e6e54efbc5ec9f2cb38af8f5286c4a1a97fd4a16f9ae0d574e6d569e7ed6063ac5448dba3cda463e4e736535b631b3f45f6360860b4d750ae63753f03fad846cf4f3bbced95cae48a19cfff86ff2c0bf95ef9d4cc83bcc89d44a82558754ed96da4964346470ca2d499faa392a3c7258c5b17a87db519d6c6528f39e8e301df6dbd66ffe1168a1690e683fad9ab9dd83c035deb24e3123164f95a36a5c053e7073f7c49ba7280ddb610dc35db64c01f92f4a746cfc76c9d0b7810e559f9c1fb0380d75e52e53c7f66bd5b79c94f4c80dcdf26be6924f2af9a717d07d998adaaeaa5ec7e76879b2ff47691883fd1b9edd466e68ef86467f1aae56a673e419f1d48440914568c3c98e33f5835a5f517d6ccfc12d6c2cbbb79a43a428a4858bd5f00b5735d88d9de666ce5f1f4169b7acc44a3e6b1838d497873aa48b66893fce45c2538e3ad2e3b68c2cf7eb4f37852ed8218b8d7bbb8733ba43c6f6b2c88e8b74fbb41e238ba1f5c1c5ebfef8bb80f2456f228592ea5fcaddf6bcac9c362a13ebdb4b7f422573cb87f115f385b93dca6fa368ac49f0e43b5ab283989b3c719e295867539047d442107ea2ec046f031a43ff738ce87b67ec19c4f284cb1c1cb07938348f17332bea4dfb4c4417d7a30275460e49878405de6af7920a78a69e17dd2796d36f3e45e1d7a504fe88e81b42a8fa8658f3da880e341bc9b72796d1952bfcaab4997dbcc7c9ce5c017eecebe8d1b2b3b3155433240c6a858ea9ebfdb34f6750bf6c974a7ff10f69a4022471a4d7ffcabcfdffc4c603b6b4fd6b4d7806c0c275585efaf8b90de1a1d48507be51697fb70c43b6576544baae96440cee00a7bf9a59a51afa318818819dd8b1498bc1fd9e3b55c573b39633344cf691f6a8af8b65ad05559e27f1ddaa391415979ea32a494182483627849169e2006e9306448025229ed2c14ff825a43976935a8a14b8448d6c4db642a1726823a2053f4f75951b80b47056bdae61ab68402d4aea6ead635f2262082d71c4ff5c78e6a6345a72505e23064dd773118ac985e49e4d88c64dd894322b0d2a712f0cccbb506436c3f0bed765ad0b193ea520580be4c12cd65f2406cbe1fc9281d37bed1988d7488f3925244454b82982c49fb522a2f83a7d131d1cc65cfc7179f8a043da781959a815b5e45f6e0b37269c84237424fcabbf4dc16a722cb171984e48864ef70c0fe14c69ee385f15eb7191249bbe3a3888c50fcde9302ac5aac6105503589b3748938eab5614d626c6a301599b623ada44f432bb18e359c7b223414a34945786468628c6579f9b004185cb7590e22f94e83de26c6a9b69702f704041da3ffbc8ce5fc2367a3a97c4b997bb06a01b8964a8534e2f713c289a0dc8c072dfe4a42f305785a99c0dc898d3104e0dcc62c0e600253c218f0511fcd94bf78497b03a08efea8bf7fc0e45d3545df2c6d708435414bc00e64c76a523bc0ac823fb56da247da4643fd9063748b23128c6ce4316bdcad4bafbca77b8ea6c10e54ad063a1433333252311f68c676ebac53aca8fd70b9404c1cf3c979ca0c492198a2f92294ee5ab4a2ed15100f20e5eb948916ca7bac7b28fdc904ab1911afc19a454af45e6a265a726340291bac80cee679e009c02254a6c6130227464b2fbf2a95661bed8b348ae9c759fa53a4b429c0b536fd6bc85d5c96233f90ca3057839a47b068855283487c90a8088e271a3e33f5ae5695d044c4d14ae8440bf03b318549600e39cb9d9d58ea2d2a5e3d08a11484801b8167d4c5afc20c56bf970a230231da8372eab0f5266686b4a3da0ccc6b57cc81aa29053142cf0f35cf0c83282893c25983ca06606cf255cc1b41add5947ff9322a4c23bee47cc49656a8581ab5a99a3797798ea77a1db18c39acc97e6342b8770550212718856398878900d6cc9a5963a71432e5678a12ce86257b0b32ee751eb181fff62ad98443f7d79cc4f85bbc67190a68504a24a3166c588ac7b40fed53318b8b452d1a738e59a2c82442feb013f9b2429b6c603f71619f386118327eaf0c13ea30fd620222af064c61aa8d9801d53192c61575e3448b265ea9987bcc84ca825943a4d51a9cbb5e76e4fe88cb6d92215f60b0941c46b89a746cc96c74cba7b097bfcf27533a46fcd928f49d670f85179e6b598ec595cf39c3554eb5f93ab9707d4a559069d24a4005cf28bfeab0bead80363ac608965141e252de510562ccb5fdf94c30da1247ddc4c80554d879b62d0b49eb3b21ebad10a50794545577be4eab070d30365dc9c34eaad1163b251b223e8ba45dcb77dcbab0a07fa635d8b841179a354304e0d249dde2319d85cb724245877a549ccd8230fac8721d82e8a2182e5cb63285ca8a0d049cc7160d7116d5c1c0127a9ae5fc808eee88e340a57a80964b21a353b08bd35da0dc1d7020d6cbe43f49547686546391d94b9a2b2d63b23fb2fb8c30f7ac371b3a80aae0470d93b610ba1681af1be2871a49419a23610843bf940804483dea0ad8d609500d8aa2426cbf0ca5aa353668a7151bb54c7c4e4ae3354c598cbac6e90949cf6b79a941c541c652351306f810494dc0ae743cedba7904d34c2e0b32b603606e33156bc750bbc477313219a97e184d695c701b2009aab8806709b8d376b9cb6a24f3b6d0a4157398c740d08809328aed069a52fe77cd68b9dac62cebe3649cd1b139fa84f6a2333ab702a30414425f50e25e41bfe9a2e277869e17c035652237889c37e3c86cde41c7585776d14682f3c0309a09c1ed43609b5b82e03508869a7f6b627c3710c58198ebe9100f433ac0df22d03934c1eaa10aa98b88c879fee60596a3ab29739b613ab741ad4518e6ba5edec190678b20e6544f469791c64629657b9b1c51eff1616e29a1b3bc25a55cc9c481995bbe68abbc383dcc02e4c8208ccfb57e052ae86017dfebcbd2165810151538e7a9af3a4c5364c02208428d2b98890923b7bb92d66a2907b5376906a61115c979d4b34670a91339008bb466928b30e807cbecb307becd228657bae78f5869c3463d1b73e09aa7f6274c7fd2a3a9cdb4160da310254462eba30dcdbb5c30542463266d790d0fd79c3c76f5da348753312e4949ff2955212edc46dfcf9e6c37a1f40abf556c865cd096c702d21239de7c22713d70626f1a3a4c4cfbdf3faca62b6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 +ciphertext: 079c990481efd07ae4b9248272683087f09cff5301fd533ab46d3391764af358e5d1a0a656aae24c92bb6e6b95c3689ad3cdb2ff9a7f4377f9dfe6ac4a56b996d7e1516e5d2127eadfd3a4a02caf6ce2b3d7d0cf37604bffe3b44c759231e485a298ddfcbfc7ed7d7d9bc4628153f47c06410e5ea8d2dcbe4178eecf94af9315f446ce0526005556fcae18fbdf92200fcf0bf528f07b066e8dd7154cd1d9ff02fed80e7c23213ddfa05698843cb3ee4da7de296f7882aab57b39cd0bd77d4d2174ec9e609cc8d9910dae1339f5b3ff84ada38c897d79771258450f00653a4df57e61c653819926307db435c67877e3e9d0990f8ed65e6b72ea8aa4512ce96c98132890449569bc164df74b94e5542c1ed573e82b5eddee80a2843478d77cb4691297b4d31a4ad9c1130aa9a98216a4e20b286cd109871d929b63404ac069d065a40bbb6f48ed46d719549562cb70e0c97a2885686678d4b2f9debd38be8b8eec6b57d48ab39bbc0ca7d859c090d1a45ffff9889a2e0deaeb28f16b8bc5870976ebc16f2fa9738465943942f30eea8510f3ca526fbf3876330fe9acb5e3748e04fe20cc7f170a9bdc2b55fc95d489150c677402f6b894d084d2b80051f093f5c9a9e0dc0dd0fab7d4b46bf5e6bd304c6c1895a22fe9a8c3d6b5f8a7438e93d2aa50a2da9b9b42909a54603ddd942df723c7bb7de5cd0920569ab8f37c5aeb7cb03c24f2ae8f6227454e298219cfadd873b9077b2cf8368cbf0581698cf6706f1001407313821d1d1713c9eb465aeb6ebd83ae07e57cb1de96606afb1840bce415a775070586812045ec8d04149f84b032767632c3d29c6ed58c8d8d1d914fb3c66338764e44b1be25517dc39d20d7c0da787da0a700d6d49edc99944f9d37b5741601c248e5457c5772d6455079cf0eeb4981a7d33179f99fe8e2263db64fffad5d7f6b9e2ee0a0d2efad1d7432aaa93344059847697f3127cbfa062c8eef3203a21319c3bee0c21a2ab0615ed7dfff5aa1f8ad3b13b26c6f1df39d5b7bb80d29e0b4387faa2322ea89d7ce888061fdd267b75926e128e31c6aa0f8cb6bb2e3416652c6ab631fb5592e4c9526fabb948d53136bfd7cdfc292375826e55d11f2fa160676acef87bb052677ac22590d8c1fe8723434aaa2ddaf5c12897e5c8c5a241589146e3c0419eba3ce0fcb7c2cdd59b2b936a2ac1ec4e16221485bd4f8b477356a005305b987f179e690d6b853361692f605f826c46b28b5ac821d7bf394c477e976645727ff07642f1f45240775a766aa9cdc1883b0e211473165e6f7e8ff9f8b2b6b8b0675c13d1c6052190506cd583b02d961476f9f142a253908eef2642b882f866828e9acc655b931fd69f327aed8967356471e145e9e1a8a40694aac47a5f6b3aeb522ab90006ca85d41864c305531ed12312071ccc9b05e0e79adde137e636832a0640b3d0577f08ee9621b8154fec9ebffe7ae0b74925163a6f6fd1b069e8c0083b8bb6d0c9e741a0c59caef40af376bd1a3b9a7e71e322cd09a2bb4c218dbfae2fdb6c2f70a3c1a784ce9a0140e94695edb8f9fddce3636af525a0ef75da4be60124e8cea81417bbda781548e03f05609850e1719ba2bb4ddb545bd279cdf42d89c13829cbf730b5e74ca68438e2547bfaf9040451c045ae998e9a0937fa9913d0a7485a89cf8bfbc6f78920d788778f27f7eba2d316aab1923ebcfbd62dcf592a731c5626c89b6b76893b9c16c2d53b8f1ae0841bb2562311fa87436b1981d342d95513f309b77279caa06b14b76e4dd6c23e7f6c482644c3af40d3de7a76a2d0df8fe958c1eaf402da41b5ac87e173a8fa5753e35e30de6d106a02a0651886b24348444cbd8ee46900a946e66a0adea73f2ef9aa0c30fcf0f829348182c34bee6528a15ba4521b4386ddcb4dbf96a33710331d6ea0f9cddf04bf23eb0200ba87baa2bd9fd6195c8e017a420c10259f72d916d70724f3ca6a1d8f2de635b1a385835c4104a244a1c8a936247c90320ff646cf19682fa81e9cc63ef05245363dbf42c9fe51f20498c267fefe512388e00997e12edc50ff253178f3fb56293cea491820bbc84bcad68b7ae1fb914e6ca37ef626e04e7e2a65df199e4f5275245b25e2fe7fd86ebcfe582908ea88fac778bbc75f43afaa961104bde49580641fefaba4609fa2dd098e926181f04248e26c951a0d14ad3c65aef6f5c +result: fail +shared_secret: + +# Private key not reduced +private_key: ea4c84806ab1067ae665a830346b85ab6b9494364f2d46661cd97115948228557cbf7a541f34899cec8cf1a3c57d9e3d6ec7e3d41ffb13c7c15ea35159bd43ba8f9c0516c5ba44327cb8ede33e3aeedea3e9a5c07bbd7bfbbbf686b9a3311da8549fd94e1c9c4017e4839ac2a35ffca7feda9607dd8edb8ffac4f562e7598e6de168e9e9a6475e619a87a5cd79023e684f3c8320466e002d619af8f8325ce63cd3fa56a55affafbd526f5186784db007673f23e4efcca127b9db53893901e4f53ac3625ba543a4b875ee4ffb2d6eda962f4040ad8bdee88145afe12db9e7c1548e93ac360bd651f41eba8d675eebda8e78b6a0e5d4c314d89100b58a4fe6af99979bf58b8b2a98f29a53c73be55ed0ef6c48dcb4ee0d56815d5caf67d99844ee007f864ee44d040f62f3cce346e44796df4cbe346a9f7871ffd7efbe0c9f03d9f5fca9d4abc4a58bda6ef7e4d8b22ae45e544e7f28758223c1b2636ebe2647abc39b076c89044f6eda5359c59bf2be15c1f34d5caf74e029f6810789b5c25d525dc9e7bb8b82f02e7f1c7f6dbb4ae589445e4fa472db0db3ed673b8aa5e04f9d39e1248e14137fee3a34c0daa6b937af71b75337694394a7c18029eb1137a92ce7ea588ab5969694956369ee85a139dc55225eab48068147047b0d0a8f8a0a3373d6d7320cd890d488784a58e08bd181bea5f42fa5c86d9ba0759db31ac3553e736564724a53cdec4cab8165f29b7d36524acc08b8b9069b53e4a7e95f656b582ad37d93d9ef17fa291da5763ad5f759bebb8af7ddcdad3e58f4cd2781a7af431e8badd7a9d2e8e492e40a9253e758101ae9c27f46409444f3b4bffd2442ae86c54416efdb5971a1eda1bdea4942a8c4ae1e571ee9460a539b8f49327ebf37e2c5b95b47eb2269e38f78f52aa5cd95d3c2bc04e1ea3dee7174ed62ec9c9896a86d643505c8b99b6f5a8d19c6c5eda94c8e6b920e56b80ef6c14cac14498c643c8635d8b49a7fd19f0a885b4a91836ba9cb26e42ae7e2fc5c99138afaff2e95e28ad06f9b6be6d67fa9fbd0c984e848cebb238d36330999120870562487fe8843a967b363ee659c8337bcad510884e340e38057f351a56d5388874561f99db1c696b23b45f96a48378ae8acfb4d730db7cb65b6fd0672681f59f933757a4f4ceb33e53379e9a84965ff1bb9cd9f622adb3b8aa9e768c7fd07c93898e8e5e4f49e8dcd500e64bb37bac3c56e3b6d4badc656530955b9f3984c7b1a97d09c75243ce69e9886a8e543c598e2f58f9778fa9cb217d6dc84a4b62f6786a5ddb1337061b79ccb78c4f62db232db36aa599c1f9dd957af8f2e1bd5e3cae1e153fc8a7e3a4be993cfa552f2deed0cb8b3fdff525f3dc2abcfe0ea48887153dbfb35f8868d53ba499df337b8853959a115d4c124569086cccb069b98aeb78225d543ee84e31da24c0b5447487ad5a8c291c5c8a9b3b9b80ec13e8ee4e347f31959b7c19bf631fcaa40e841cf7fb633279e57a38e30ff6eafde3af4fd61595b679dbdc8873d4d874392b41e73c89889615ba96773f0d917424c6d8b057974d19ce806bcad1d955b495fdf927c671574ee6e867f073968a23a5751a799b09bfe1e3dc8894634968b6450c48b7a4ba38956f8697960efb753d264db6b4432a6b59c92ec3398e9c0c486e73843ce80d6f6e07fb18ff7424d9f3fb0ebf8a9be903cde9b963acbe1fb6f40bf718059de82c97592e4eabbe486128cb57999816a97c050ebbc488ea673dd7acd13415f036b26763365ca756a8ce3db1bef460af4f69ebc5a5b527f8fe36368bb85bc52f19e6f922bfff3c96ee0759a01ff30d9be41a8c532f03777052fa95a495b3097d13393694d496a0b4f41e8e6f547178e2ef3663f3eeff7cbf13bb69556bf5e91cb7b34039b6995c8bc9ea1e31937af23b0951dcf9f583a77ed4948c7c3d44ec75b3daa6717d7ef83793537392917a0c2195013b54c0a8b3e4686c10d35f39a03c3ed28c91604de3819d68c64feb9eda321bab4af1de1283e90bc1e36d595fabaf8bf82156f2ed4d27265d3b8849daaa9bf266490daa9ea56b3dfe4cd89cee7ac241bc1529ad129cb8ea23bec910f3c9d1cb4bb14f68c6dcfeec8d71e4b8d6c5f798c3b960cd87bdc66ad467649d0a835b5153bf2ec57f12b93a1f055f88cc36236016d4809e5d9096762571c15863924797872cdd77370917720776b8ea9b72189f237e9d710da6906ae25331b9c82ca0ca257dc980ccaa23ee61ce1e681ae09aecf967c33505f83078bda132d1ad623373252b72109f6e6b8f5481dbe89b6033558b90a70d3866930a3c78e024b268604c8b3beca583b8b531a4a6c094591bf173107025ba079c3062a607e30647308987084341925531076ba04e03c8dcbf551b56885c383a5929a54c207b39e162348f7a7fb375f38896e7c1c6641b56557f52f4da23320252aeb382082b8560cdb83c34614c40b8e4dc4ce54b4c009d9c3cd6884c11c616520ae0d220e2cd03a869147ffa894d5b02c75007bb09b51c8f59a53eac1af1a0195623217b578bf4c3bf59459fe3c9ca7b677155436336176a99653fe677d0d9bcb266b2e5484a72bf8a86f1b250b5666e40083bd24cf578c4f9386bce2f034d2e9347835632a1ab39726c2f467a864f5863c0b498491111221bb2e83386da51c764b8597e2b503a21eeedaa6350683aa82659fa276d9b8ad3875a019ea6a00b31193c9284832c581555d7c478f81e259150c41e8c23047eb0599647ca403a7f19273a765c439535efb20a6861a1b7fcba48927412af6c9364670e2e44c6c630a930b9437529f0afa7534a08b7606a512fb737a50b6a08c637087314da4bbd76c35a312c091fa3a863a3b8c7874501c8a9233212e592c828829800c9d174cca70761bf8188ff5585fe1d59905373420120848f22ce8d4bb8ea253d3499e0ae59b526555a2245eb0fb0ba2a38cda009a31f89bb46851a4277b808018e8f23148789b8ec69d8c622247e207d2e08491a3945a60aabdb7b5cbd260a348818c8493159199717bbe5305a5c785c4eeb26dad73c76a04bb28b740d2a761c8c02096e0b6dd297485725ec59b107086bc40e71f61b90ba596cc905b564cd33d76e2b1624bc3a2e75440474daa778b79f3819d237a41d08d9260226e63231b5494da150093566f31cc3a53f581880512c25826a7981241f4c90ee3b3eda1c277b5c157226342fb7e3622b0665109fb7342d13a96e3eab49c53074b76b3a2aa26c899bd86c8a26159ca278c034e323475a0b12f447df223aef827597eb5422bf26cd48b6a40b40200898430ccbe1a6b8ee1635c761623a956b270dac22e3a24fbbc8cb62710a197110491aaf8b89575d68b530530cb2380a5e65cdcc044b52a922b346e50005da16b8c2189525950a109f74b225213c28113bc793857e9c384914809cac7c8ec5667a34b007c7eec63ae9ec21a46497b6b836cac1c451b03814b7c47554a9e6039842418468fd5860ed6cb13311c638b86680ba1628ca09afc406d944cb0ac11b928899cf333ab54be5796a6e0db7cb2b2c8c9b9ae6f300a3d508eedd292c77c589c6682e2509b8d712c6b41669a5b5363fa06f6bbc0bd272abf0c423e0c719ba90cff3b0dc2c390e30b46b38281864b5d8bc2ab339c48bd9cc8fe70067358722cfabff6bc907a457f84b1bcbd6c765ada9b5c684d290c53614123a02660ffa22ffaf602111b7612862d2d204c65e82dc232798982652ea51a362743bea629a8324f76b693124b2c3772111c627e9db55c49fb7ae4204222d850311ca5d99213173416df4bbe68b6b6fb514dd4b821bda1b50f5587b7bb254a65a2d9e6a2c5baa0e71b0be88199096c516f84a20f38a9d32520a0064e955697008a9bccb6524ee56825bcbb776092c99a040b85c2e6e1669f08932f63635f1c37e989a4f8b2190c335e31a03aa06a755022c895485780bc90a969c834091f2cc64960d399ee65359ac245201b948bc2827943a06165255b0492a7236e7b69b66847824d8873a24b6267acadacf330f306652dc766df9269ef911068b50dcb199996a294b8f935df477f00b99882a5a5fa8147023737592a2d797358bda228bd62440fb0c3811b73ca1c8fe4e1c070498b11bc816da770bd895a96338fd9a6659ffb88df51719bf3a4b208647063cf9ec985ec087fa643608e0aa23ce7749ee3c7983783992961a409729a1c6f416a0a0a5659e8320f95277ccdd31de6fa3e41ac9de3293e3ab36971842d6f8b2ffa9a26de29b0c1a26815362a657a5571fc378425b23089bb94016ab2e180888226d1f7b448749280b978958198cbc626539abaa520f4c1ffed3ecd10dca6a4d6edfa0952d6e2785cbddbd5d6b62e0449476f7c6f9ea3621237bce0f97b11fe0e65776f1e92da38362cb376eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb +ciphertext: 5ead197f374db8ac3b0108c6b48be7d7a015a2f827d92c6686bb717bf55d48f1f350327627f184cecd044b6df9f775f53006d4e102f22053bff4fad33013d61b1b889a5e3e905ea297252e2ff8ee4d099430b7f0876e39a2202b3a2370253c00dff9cb62a1831dccdd4b95d60469828ead71c71047e90420e0b89460f9b5c5f0dd9c83e47c9551b227d7b54a0edeb79f129d150f8753e92f69ae75919fd82daf1eed6954c9429e39130265ccab4865b0ed1814406124cd9d1177361573267c2fcd41b793778cf3c4d23a41177eb8258b599f095082ef1e91d36bceb56a1c3a932e512c5a73b6f73255a74e76b7ce114002778a3f00e291592d76c3dfd33f4e5d3f409284f6a4fb654ad4855d5184a355d7e5a78aff17320536d83e3a33cd14f6cc2376e7697fb712bf0ad2c9b719edf9aeedf66ee481983fa551b973c3f7b17fc848a39606dd4fa254bd513bce300330adae0cb923a743730c83db40670d0c9a406bdbadf4a25cd11ba16b8b67ecc0aa3d632b4f8892b9d1571f0ef3cf09b29b4d956345be438a1f07444c5b83db5d34b2a7783f52039a27a771a2d114715e6778b6f970926626608423a91d485484dc14665b0cd31f7f38e017ea4408476345ec571eef240c9b04b023858b3e7bba470c21f1cc0883dae601d107a870e583a398198e41addc692491d11afa17a8f6041ed6990e0fb1ddb13ba2c0638288200c94512f0e74af90507fe23c69577ea17af0db97a32113abcee1c6fd15a0c524b72ae35d5b7fae7f9461373a0dce13d5372bd6dd3b9119406ad6837e1b3a05cfcda080ce1cfe8108c050764a2ad8d5ecdb5130bfae0d3564ba8f48742c3080c59c884c2fac31748966b2e003f14962803b4885625467306e0b0ac4009b377d6c46207a04fcf17e507a6fa4d37ae47bf7a646d202d378a387be5d4a9e2a25389204aadfdc4eaddd5fad5498ab1f908c36cd21e971812904bce453bba6287016fb5ed0e9266da7e7d5961555ead3fb8df66ac598889442746b75bdc9f5122037b4b6cee66aa613a239bd409ce747d53bccbf7ccb27d25067f28d851c590eae2a855999d5a201c79d83c63816b919bd22fc42f8a173fec47a71f5a9e42103738edeb4eb6e933cffa23cf6edfdff13bf7ba4494ec055b7779e0cb82a99fb739d0bac382eadbba1c8221983f11554997ea752a8069dbe7430d795350199299314aa476f5f22595d429663d66b340e0f58462f94d8809d7f798574dd7424bf21282fa8301c809d6efc94b5f9240a65504614ccf509295de40d8dcd1d6303e2e116de6b0dbddcc79a456054b4375f20969c58a98fe60e6ce828ebbc3ac91721abfa9148ee24a2e08c342c58dadb89926e864c3df8c16e92955b2ecdeba9ea53286eb27dd2348baa27a6115f216e2d7c7945d095514b31971028f7344757cefa9077a8a41064c52df9e2fecb7a963444597c98ff1c946e60607c3d3fff8df8723029769cdbd0f3e5a9a07917dd25974f1dcba2c86ebe31c129b553ee528f5ea636ba87ea6da7a170e7a4bdbc300e5bc1726044ca987bf24de6051e55289aec3881c16d59bec4c06043337b1b99fe2b6579947bd41d73bccb9509381a8f29d00a101397732f4e49b1753f464d1edbedbb278912de0cda6e11f4da9ba519302ced79e23e3e0b1a87157f4b7b8e1ecfbcd1230a2e1308a683c3be1865b58c79b01119f2df07cba766ff6ad23c0b2fbe2b664aa113067a19f221f81cfbad093e873c224cb34f3d34acb4d7a4b781edaa6042119924229718dfd348a72a7b1ab35a5d877a13b9feaf34745bd60839d13ef6c0cc1e7ac1897869fc2f3f7901f6a1e5625727dc19ac44c74b67f3d8d78bfabe83127a9b8f16345172632dc2698c299541cfd96ac5a99bce1eb768f52840d6b61052458bc072862ba936a9901008b7c7834111a04eed9e10604404da2c2758dae053ca3011d1bcb92088cbb8a4c521bbb9be7f81e424bf3d6ba6dbf8959a58207b6993570a6508420799795bba2e987483026cb94e16834b28715a7812d82e8155ddc69771e6bfbc43a0b1e1b11ecbe73a4e509d70ed055812831be7330fcec915f06920e89f0d6b6ec5a75f036ca9818d6145af671fe3f695aad955a3cee0e28dc66c41e2c0bf6575e51344e9110ff33125f445a5c2a9bef490fd0d14097ae84d09be325b603264c1933cef9d0956a51c61fd17e07f +result: fail +shared_secret: + +# Private key not reduced +private_key: 2a4ad66cb7ce2fd3976cf377eb65d0fbf9887c2375705c6feac85eb92cc4d423ad0dd37b4b1abf98e7fa57e3905b9531b3f9382a38e7b464769cae33c3a550036abd7b7d4ef10f6e832b5a0d4943630f5debd9deb2ad3807b35832aaa00a8c93be7fbd1908819e07e75358541659aca86cfe640987d5cc3fca4eb7777ba63e17987bfb81869a484ffa81a93f93d97f72ecef434177f8a92632491ee2628463d98dc8cb33e93c7d38b765cafe6f9606bda1646af770635b47cb35d728a265ad3c2d3cf60d965a86eb9604be6c34ad92d57fc0857b632be44a05af424f4ab1f1ec6fa65fd0c1bbb4ef0a35a59bbca8b889889332577835131e95d48f48d859d87c9969344d3f74e56c9b44d6dfcb416359cc9a1fcff4f69b3f8f6071d5d2977e724c38f12f0b85951be0051fbc575ad59aca60a4fec76ea45a6dc88cf4998c228d5f9b17c3ea7793afa8f24c0e7ce25bb16676a1146c933a587d98448d80ce88e6b5e0272770983b96419ebdc0abe0ff44e064eadcb347c8cb9fc53eb83bab95f48e0859a4a933bf5d78feba8a8dbefd8b634947cf4861fa7a6a9d69c2d7fddc94dff20c4795a680122ff2b3f5f116e641356e6f4c2f3e0fdab1b7b5e4c677e55b4f847c4c726e2c7211e675adee412303390b7afdbdfcce2d435750c94799b8fdf8a9f27d344a81a5422bfdc05b4a605ce5b00a438fdbdb80b90ff5051c7c934937fcc8889c6baa43e89245eebc5fabe36a2b6b956a349aaa3cde7338e188ffafa5e519ff9d492842a936cca4dbd9e81ca7858655865da7e11452198cf9f86f5e690e38b13d39622d48913aa4a8c8b383e8655a0d549a57fdc65fba39c6e7bd8f40593dcb187bec8a3f7146eecb081e3dcd49e10cb7b45dd9a92a5bf8b6e8794dad70f1e398e603ba39b5a7eb8bf89895d39cfedbed7ad8b2a6f98766752ee392e5d693396b90e81e47463a63aa6b69e1e3c1426c403bccc11c58beec58ebd1f5b5a26657cdc75cd93ba89f83459434d295544421ed9f5b0bc9e76458ae4f6ff6c6f47534aae2ad4a6a5a67894638c88bb859cdc21af837660db33143c917148c3244c2bd176fb144e54879314e2eebc2193ae6bd3fac3f8db03837a177c8caa585caa45ba51794a7954837cb671017cc6335e96fd767d50a65ce798754754404adaf6a2cf5de3bd51f6dfda5acf0e815f8cf0b6e509772115ade7b43436877cb0f175f8d2bda774c36ab09a9d24de3d02d66720dac1b3e4f0ba661bb7fbbfb86890a48929dac8ca0f4d605be7bc943401307d8a2e3709a1fee1c7c8564e7848cefeb46de3c020b3a2c09823194cbb46841675a92c888bd129eb3cd78b154f650733be2634c3b8473cf044471a8a54de3b6d1a4545566f9d76e0e49c8e8760dfdaa1b9fde80bf4ce428a49f67fac20f8e7109be2ccb41f6fdfbba0f697e537305ccb425b8cad1d63fecd8a8e195fe1988419e7688e99ebad68e55c83dd2f29dad27a557253988324edcb9be4b075e6ee39d6ae86874629b7073e8acc95548075f75a66560d7935174cc4dc8f4596e1ddd288c5ce85366660bf85e33cd69fdd4210985c8de46c0ceb2e1b9a1bb1d48c75e6a4e4384c499f1f37ea4207369963b75c4de5e85a3f2715b8a5acee6dfbfbd623acd158a8376afc404fe5068f74bfbdbbeac7df35756eb9cbeac5e4f992a0f5ac2a3b1200376a953704888a2b304b3eb6d8fc11bef067e6ef9466a6714d7ae66baa218557187e93efe97f3d692537cd2ff68e6cbb6f0d24bda866980d29fdd2417722ad440535adf15e65573cbb8a896be183b83cf2b954139a27d4a4eaf267b0a2471182963bde3503e7b7fa723ac20e97358ff4d5b6cc01b8b8606aa6ee35e578963593197e0955fb352bbef90a8928999b87b2cd54a3b8ea30c4f7a9d7c831636c917e2785efa1feafe573ea86f8ef4f0393e199f857458327136a1374e4cd0ebd9e7a994899583198fb1f08ac2b9767536f4ed19fb54ccfb3565a470e145db9d3a81ed2ed43a3a6f445433dc6d4dda35af06aa636bb88427dd623fbccb6f9c43ee1b32f92f416335ac36d7f00f6dada38d96bec7cafe37c3af08e00fcf7dc4ac5391ed756e18dff198bc11ea96178b55b01af1f5d8eec67744a9bf36100cbf5cd982051ddf931898eac7cc091389ada7c7f6a193f8174b99e5b0c249517ac47c4ababda18b523a665587579d884b7d98f778758c48d28c89c97441e7ba1ddcd020455c73a30377402c13c20bb8bcf9042066424a9081c9d44139e53f3afb7d9a687c3510a2f4f22fd5ab37bb778267053055f38158c3762694aaa89596ed824a0a10490c49619960b79db3174a227c7687ac0b4533197799969911a24bcf1e19a4d6224e2fea4c4da636483a09c39c0e63531e367b7b74c9734313bad6056228d00d90f8806b6a06dfb45e4366867c2175d692c66ca91083b5ad8566bfb4816b40da9971bb4855b44e13a04eac687af1a025863b8878827c1a06360e84c24e8940e404716e665e570a12b0532bc663001ae8cb94aa658a9394b60a6a1c8b008ec7bdf432002dd43f34fa04665278057cc5a0ec65b7315e831681e4d5ccc2f95588089122b18b4cb93df740b2910ccb49142942b563d2027c8552ba5bb595ef35943db0bc2c912d57f2cf166b2b9d219222a6a71bc55ccf7cb9c7c8c23398761aa58bd8a587013841a266000a375cc14018cec577260aa9d962799d9900a991873b175194720f50a90310c4b8b5248c0f08a0b609440eca877c708e1941a15af6407d5873fc62492bea381f431c8a727e5fa235b39434bdeb8e0918c4ab82a5d735b0f676aac18463f8e65cf2b30ee3a97969da994105d056d49e2245ac4fd1912a44b6f3647cb9c377df2c7f0a99016725bda1fb78670013fb25061e11c09fe1c92ec21a83da9a2ed2c95636598f63c264c972a4365e6580440b0327d3638628e06cbb7ba024bb2481f64bbd39a5e79c46b43abf0f405fee38076a600468f033b9c52aff5c3ffb6191ab8b37dbd8730ec63677e6b43afc74331631fa0c5263268b17bb0a77f2699e839e66489a8744230aac9c77ab765cc9094a8077c12c8e8dc6bcfe900e831c02cf01161c083b14677f01878655394f31296a33c612a18121cfba2f7a1358af8904b5e8c00028434ef812ac1a5d24bc2e09eaa5929c5e6e05683d292428324fe2a021e238b2717490f4731aeff426ad085574c9a1f7cab392d662fd25b4390a694946c6684c0a02d85da187769632b6a829cfc24999a317436d4b47473bbf8fd73f9576c6424acf65e88a4bb230aeec1f5e08c7c05a1c84aa3af9d44c25c81e4db436285a4b1a572f950437e277294de7c0ec087b8148607b30229bc97f7907076d9842f5a77fc5644177fc095e7245eaa7ba8f9c7840c99f852a109257b04bbb3679f80a617ba997f5b5b22c14d13807ab9bce20cc271c9b2cb5dcbf67e4a0df65a5adbc0f8634670c4718feb06880293d7c7184c52601c69c58f110cb1ef961aeaa95133483714b11b57b71cbb94e6a483444f65f293b7d349a02950079ecc18ce091ab09d647141065e037c2041c932ca092ac7b870e4a64caf14069fc9845cacd62549356c38fafba2a7f7133c5f7c630721fca36ad23767e4d86a2d1ec8c41da18355a9375659c9b7c04539864b1098b8c862dcebb94785370430498cecb064dc8aee2e385fd775749f47c1f38b6d6d08a6c3a5b2e148204d50048a3c8e5f13e2e3059e6a3554a636acca6b634aca6da71977e33a74f0a56e78cb856b816b73681a3a96f5a4328a1911a7e063eef31440fd21e5f281e9be9954113acbc3662529911cbd8221a7227e2d38e9bf798de61627d67b8e8f62f2e10bf66f24187d2ad2efa071f0b2210e53091e29be859857e801348092c572b91b59102e325104c6c1a49c7654c2bb4df431c12ab0f88e1132b63bf56c1616028994a304536564dbf18b54a16b50b9c75d3f347d8cac3f3bc2dc9827155c507294014c8c92e4121386c936f3bac661f4c4f8604a2b648053e88792f5ca9a48719bed781ad4a7bebd8306b5401dcba9a69a35128a7a89d22b97ffa5c2336cc5cc090a6cac001dc560aa25f8f65093f0c2fa5540b51f56862380996a4c48d90a68f8956ef49019ba809b84496118235e02535a37b1da0c95845f18342545ed12426a6e5ba1bcc7b348585669c003b02033eb024cdb70405f5c5e6077449d8c4e6e66d65a23b9bf51f40230bd241bac33b708ae7b2147809ba2a14005038d0d197c790491ffa5c74626d2f6c5e0ab2c69ba55ebc83195044cd7c4c00d84bc716d02f8bcccbb4f85d5e50c6efec71d667cc0338e6a6ca392e61bc1211681ce762516ade8bdad2f1ed78a9731a2634269505d6cb8212b9dad2fa70171035fd4107ff47c02696b3489650d5ef9c6f19fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 +ciphertext: 2814c86b427bab251a952ad9e541866a832001ed9859d12101dcd24f0d739e08a6b9a62d1aab7a2818c5f9dae38ef61423844427a2b64c90e1ce73a506b0302e531dba5617f739a4fd960602a9124848185aa176d57301803d2135c299d4be766607a219866d714055f6c6288d364db1e8bca2bca23f9f2a4e2af7915e556739f5137ebabead85315fb456f9499501b519283db6c67bea65bc915ca50ee1c77b9f035a15ca8d1ca5bedae4b5762e9acae10554d0eb6174938c786bfec3128bb65ea86a60379b477b88ca97df17539bfc142c67f0166be78a8cd3cacadd4af9f148354b869ce61bf39dfae8db4109b96a6da80f3c7b8316156234df427843874cb33bc4597fcc32cad20358ae650e82864fd407f06750b4c3015ca0d831e76cfa0b6fbcb5c920c9729fc729fbb1c404330bbe965848857966f50835b6f39a42d465563ee024343b0f81e7feb02baf0fa45cb866e51fd3153e79aab9866e91417df875341515952d5fceda11c76a6c3b4b885412cdd880becdf1613a05b3d48396e64b6446f0b39fb10ab170e5325bbb2e08a650c2065f85a7b4d5536d294e6aaf2350828a922f6f565ccec8cfb22bff15352b81dba6f97e929f7637000f46ce8279806b21ef3890b1e0e99228499507093dd808d4922d86d4dae2ae50a26a83fba367b50cafa044ff72efaa1ecaa9b759e630f254118b5aa10d88837c8add3aaf04da5f214765663fe46eebf244e22a3cc2ff30ca287b28a2cf6f96d8fabf68963ded2d72493db9dc71bed3eb4dbd6f9c2c73ef8d1f7250fa95d40dd27a689e0d020989b11d3818421101d6b850b6b3241f503e464acb922d2dbf587b69fc560f180566669b2ff16032a898d15bd79e4b0b68d8f9485eeb58c65c8e6b6d2e35d3c923fcae3c478f578beb54fda3dbbe59be441072b8e5b6ebf0f62d275d09169d02c161d458121358d3f5558318af0bc73547cf0fad3ae03b6fce3ee42907bacfc1656e3c1d0dd54e0c01914f4869fb9b05b890c6f71854f059903edebac8b51f7b68313b669adad1abc2c65d0d6a4c3aeeded37fc07770ee6604531d5aa3319ea94acc1755913e8b36d4733809460e26d3f3d99862853ee8f9576f911efeb47c6cda258f1926620375526cf86bcbd3fdd0eb0f848fba9834ce2499cf158cf772f56cf106c4d9d4221a5c47e1c387d39dfc0d80652005a0d4597f309bb39c305b02f73095510e016832014b6ed9210f96d4270d7da0591d1800f88d90639f4aeaa80bce27b46d18fe412c1d1293891278c2f4a0469439513622ad18824d8fbf924bd607f475ae2bdd27f1d867f427cb5205f856357dde8a1de80d497cb63f882fc316d9a6360462c12aaf05e08a96511fb06161b1107aaac9b5c2270ccee41ed68843fd279e31fca518e5829c3f01da85e8dee3c1c236732b5c945870257d6ee824884e4d949f4529515e74c26d4e5fbbd0c7639b4c9bc521d555b77d180cc770535a4d0f0963bca767994c5367d9bde70a966da321b3152b5a13bf928776ca66e14794b1a9b366b26eb955480cefd0048f3ed26405d2806d1200ec8a2541b1040741910a9f7c4dfdbae85a1b5a323b12984fb29bd254410662975f8976ce79bf511a418fe0cdcc48dc4228981e6f37f0dd4e0b2991baceff40111502205d77569bb9fb5487d03f22c7a852a0b6c620ea3f00b03fc13ea0220c01ef9dde592c99e8a01ae7604949a4cd9caeb936c7be6189cf8a332d9f01c66caaf7a6a17bde66d97342cb0f92cdc225400cbfd4b1c5743b65cc443cdb7aba62a951ed6a19f978ef15d0466ac128f51481f44e83c9b4445b8cc6851802ab5e0f244df4a231c5aac27b4ee4290375df1bb99b4a6ccce29bc0fb14d0ea5d1cf4083915d1448883fe4b6d081d01d5647d10338e2cd33b84f489d31029c4a9308bb6426443b79d27be8d0b11f058b7e214523cea5b443b783f54b29858336532bbf772991f0a4b0b67aa00def079fe2b5ea4a5f4a6e141346330b1776ecb7be83e2897d6ae40aa9c8cf0f5a8bda5a3a114c2f01d97c8795c0f93d396156f678473f80a3ae82db82dbbaab52a9c4a77ece6c8557463448e519ee72889f16eadc57c82afb28e4247443f0bc48278bb4cbaeadd6527e25b587425cf3710408f626b87344578990fadd2ad8bc2855302857ae91ebaf38d45eabd4ed4c67465f38f38235dfb7af77518e60a +result: fail +shared_secret: + +# Private key not reduced +private_key: 0918ddc7dbd9012bb14ebafb8e9fa71d0d78a89fca0607908c04b8b684a0abee39231991812b5e764bff1925f62695e9469673713359936bba126ab5e0b4b62d8a5fa0d76b376fe2d686ab74188878aacdc1c4f0d323ac67659dd2e8851317b0c23fca57bba4477eb7b9a78f6e6c73514ef5ac7e8bd386b2c0feb6f026c2a2eadf5a05578c9de3a0b78fd628cfd719dc649cdafe1ea9fd768e56dca02a6a87c7d5f3ea9593480aded38b5d390f91c99a989589b6b784bec0cabc181c33c458407016f2a0e666f3ebe5c32bc4636782fc688c8d5433bab63c35d3ca26eb48876da4d24eb3347e4131563230cfa9bf4f4fb977e2e7b6a3240ce65a5d89111f4c7eaa62b84ee47d1331a375b597494cac84e521ad7082d6945eb9fb803f6d393d81506fb20c94e7918ee82de7d7d4bc87010b406299c11a6332117f6c59184767f96720b9e8de84e78d397407a5dc62974b3ee7d3b93d5e99afd16d859fb1479046ccda0e1766a995f66ba5dd56e9b178244d9a5c969fac3e1b4e983db574b3c9b50f2797c807b03de8ab0e79fff913a79e26d0a4dc8f4d537368784844a34797433c80efb8c5cae4af06bb9ae4c5b41ef01a55a55b2a3be308a0354456f024388275ed91f69cd5a3da28af5874b45b7a556dbeb65ba5f68f684c643b8ec0820e43de9cf353bda92e86c72db570c3bcdceac65bdb69e2cb59683a88627086a06b0dae9aafffac3a47afe5451c8e3c7fbbd53c043069f7dc0624a40b76f9ef46bfddc36f82173abda6a3674fc4b3685ea23375a29d6c9eb98e3e05788977ed2d6ba894876816c79a6ad476364bf7a39eefdd4baba245d77a037fb88dc54023fa046432f04aa042ff5b44897c885c8ab9ed70d6fd7043cfa383a9886bcc40c785de5ce85c60eeb21725effe2ba53bc9875bff81f927c8c895f9f6395a75783098a9b3a89cb495ae31d41e8a51a868ce76b84cf3b2cebceae145b070793ece49e6b877f6cc5fbb1c4da24be7a9581af9f1ea9146ab5d788cff3f777638fccaeee7fa75fd959ce5b0edd45bde14c4eeddaa601b82ff6b4edb9b77c833a8b0aa59252c812d25bb628bdf82f3e86f4ca2ace595ccb4eac37efe6d4d9011854b033360f179c398bd6c82e43dafc47b404f4d4d69d51048c624e999fab7bd74be8b13a9305064844ced40fc5c4a033b59c0a7f99f7ff1e2c5ca3babd5317376ee4b4e9963b1739df030bbd6e403b6940b5d8258572d16ce4d8da20fcda797bd6df076b73e2b648534520dec6ef0b57f61f4b9b65e9c82d9931e863462df6d41f35c0a45d9a1d684cd5d47b958f956dd387808a26bacb2b4affab88db7ce53f56256d73b6c59010dd5a393dfc14770debb620b1569f6c98db41dabdaca61dbd337a9773758ab92fb59da9fb95597eed87a696fee494c0e5739a2aaa63a77cfdaac6a386e8cab56a6c6ccbdace66f7eaba24be57cf2dec1cbd4f5186d4c189de86518ef13f3c04daee8444578b95b6a55f5e830f3c594b366245eb113d57c6f496410fe4468dbbaec7a7ead354507cdadb923a0050bb3f89cc82b2cceaea4582f1998691bb1846af2cdfc721d7bd88bfc52d6a8ca5276f5b60cf368cf77b9e86b88d9ccf81847c7aad075d36f9b83e5273870d0239b8adc9f9dcbd5a1e44e7c56d4aa3947ef2d85dda65651c6d69e2c7d65fd698605f8c035f5e103b50363cffb93c9745e35eb2ada1cbd56852f78badbccb448e0c47f7028fcb0f4cc5dffbcb7d39590166ad1ae4d92ce6954f8c3bd28663d5e3c35143bd351538b277dd20de3dd36cdbb5be7f76a8743c79c53a108d247ce652318ddb316382d2c9ddce7857703bc3c939b4d53721866d3ffdf80dd8b57fb6b7d8037d049bad9bc7af06ccc47f935ad417dfa89e9a63364ef904ae6555f74d8b5ea4025dcde7555a56bcc8036ed962facdb3390f6a5719d57705ec8aa871ba41fbac75254349b15bb6a04f8bd1d53a9ad5e2d766a3c8f43691be352a59ea5ffc18f3dfcf6acf05ebd6a3925d590bdefa8e4a35e4cf6bd5abe05ebe240687616d873355b6485dc858f5441d9155ab5e6c9fb1e5f478e5e6394c2c1cba717dcdd8048561bbbe98a9449d8d9ca488d3c4777ab6e55443b3ba177ae5a0167826ec662877a457e5b4e750eb9b30883bf67b100ae9f306c0e7e44a625f44880cb0d125bac36b650f8430c647c68e1ca6306e39c61142c2a5924cd0c9cd5a085f4eb5dc4815711e4aa7e3a26e521cac85c303e420a18a3393d996c1cb68dc9904588301385451788e57842305c064807421034ad845df2baaead84acee401fd912b191c89f51c436ff6bcf4b33b0b2120440e65777f4bff5dba7560148364046598acf3d46b70f7960eb9a7c5fe893c87c6dc5741cd84b080b7a4d0a596effa363b6441848d849b72a7cb9f1597c99b7eb6697bdc3181db25ce213c35725bcca20c840066dba39420763572f187758d05f6e43cbd41296f7c7a637cb49a57b00a2a9cfa7b2bd1745b5cb0255b1a68892431704f4bbf5c4844d0c1e9ca5bdefab042fe1ad30d4491427543cb39fd11717035690a77149e09a9173a433dde8a29c40744cd4a7d2ebae568a392981326fc8bdc2989869d6a56f6715ce65a51dc9a5e8f5c304ab6937f41964e80bcb259b9494bb713b6c882b94af5528a6b1bee6886f1da41d5a10b8cbb188aca7a820761e10b6797a8a5aaaf54b5f724c8fa9a41ad09bf9c9875df8ad40781ec93748b428cb0527c9257aa83d412ff1755d835343ae05be3211a447011944aa8952f2ca001153f10bacb18ac64619689ea6562f23c0fb5a33046c5dc5b7c37e2133d0987a44c207ae5abcb38ba68e13505fa5a05be45af5887606704b7b4a4e18e5b78f518e8680a4c3a678b5513cdfa3b18ddb285a562f00f29cad2c984f60c005f73d23e3cc617148d6a53177d10004981fb7e8a1cc362224e48d0cf69d28f213082b4425368c2757ac8493393e5495f35a41646225b3741e5dd1bd6e354681e8b47ae5c576b19d7c807feb4abc89ea94f2d150f946920a0a3d6bcc3d1799332304035515273c2c4e3764ca04e1653bdabdea77819e0490416211ba7877ab8028f8416fa08918c7a7791ceb4a65b567838283cea96997e3ce2564cfa0d41c43868bf6f6828dcc78f5c03afc4422675b9fe926c5d2cc197046c38a30cd5cecc076ba9bdb3c57a4fc806e835ef6b52b44070e4689baa7633458e0acbab3a781aa83158b31b1c949338b58ac034ff2c2c80d3bb54ef7c10c5281e0d5930f3817b9893032246f6aa82f7f6cb29a467395340c6b81347b2997f5514d90c95e7e84633813861c488ea27200ebe7cee795b560973effe3a19c32950e821ed1140b454c8d5da64453fccfee09565c7cac7192952c360232861eaba924780895ca022737ab9139645bcc7b6edc67050c5a90a4308c44764740279107f2799a455a8e4b2d384012d66956384b0cdfd108a1db088fb34cf0824f82ccc7da6a8824a90982a92ed3b46aea02837f57aa0ada783e8766887b538fba4c33b157c2138e9a9155795399cc99613bf9b707519f001241ab2336e96981aedbabd2f41f6673c4bf28929f777f2500cf0e382f8ca2182b9b8e4fc36be4ccc4a1293aa477a76625429a68178733380ce950d5871bd7a0695254cd4367a1d8a94bae95304f23622d07650a17341d401cc5133a772c8aba82a63feb19db78af7fd850c2104fd207579649b0b9eb38c9f2236f1669cc31a5a116474c9b66897c4f6d96cef6428974748bc066338a510621d9690e4345c1a3756dea7355148d45c89a16da8867e164ab538e01e35489c792f79a53a967277054297fdb4365fc7f9bc15068b70b6702a8d0aa9968a005a5422c30596dfc9c635c189f9d2ac1f9481167558992b21ab4dbb54f88742167164ff964c64201da9cabdce9b458dc8cd7489684d4c8ac7951a2147b7358098975837083723eb85a4889547c3847d7317cc88a1c5ea19294358941467fc48bc6bb38486ca05715058171c7b2a178cffc838de1ba0a02c02d4049960d477d9f79a0b1b17ba9345afaf641aaf80218d41a71b9063a5680579123992cc4efc596ddbc0e1d2c66f035963f7b11c7d74c35158ebaf6bc16d6798a24ce928274e125cf3d51419bc6926e69aaf11562f541446df6b77c625f9ec820587b68f1b50e590132d9c988b65c0a86b6c721384b9283cbea128904f5a8dbb6b6a5fb2ada47918ae3544c7978fbf9381f78468b0265290181b8f57ee043690023bc9dd4360fd13514c79cf9e3639b792aa1e70c763c52a43773fbe6732d262f9385716528200e37054237c04504a8169baff63f6fcbd8988928266537d344dd44533e2797aa03d8cb025e705a9f453e8ca044ed0e215c83f03eb98b6da9da137ff2433b319d9ccbd0bf054135d63bff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 +ciphertext: ff7ff6f6c8d57f4b3171c626be53e470c28f8686823d6af92427d22f30ef064312f00bb7daa97c68d5bfde9abcae3f34ad687f914976410d121ae4790852d0b8a0d607dc39f4deedb8921a58946de99ef1a5223db28cb3f2ba6ecdbbaff27bbb8bec11c90b7711b7b2fa139b18e49054623fe5b08b6f5e416018a6ff6bae5daee3b26bc0b46277b79e02645f16d84ca6dd362552ecbdaa6901ed7f4835662bd22cbab1405e8c301f6bc807a8c2f31741cd617a652767f3fe575d2b057f00b91503c457a60766924a2033d1a62c8e5fcb882e1cfa608f4ec15e74a893e170c5122a86a23187113a73478ebdc71b504a9890bc5056e973fb591e4f2e2f26c8143cd9c6568fc00296b0608eebfd14956afc65ef01a4a0feea97dfb7464d10646e1d18ad135b0f920fe274856dcaadac5d4f2dcd54b73181997b9d1f7521eb70c20edc40815d4a28965369a7af6e01663e163814d01e7500ec5143910758bafbc990bb4b9b34adbadaae3e46110aee4c3dcde08e51a9fee0c59e90c4a45409ef9226959e9ecda9d795dda6b2c3f3ccafe224167df3390e88b16f909b031250df56b821e0b1087a9512f72da732004770aeaa08f8738784f3da8b8f33eb73b3cb7430be7ed3ecb27f38261175e340a15090b29eb6a48470d434092cf937ea238b1537f5acd76cec471c2d4562040beb08b9b81715f5732c2c427cfb44aee961ac73cdedaa24b71bc937463a83503f251a03d6364fbb4604dddd584423a8012f9de10c91ec53852084a19ca71471c79fa158fa47458b198188f9f21ea5e5534f7fbbcb0d32bc5ac2ed288644945a5890f4a86c50609cd63e372ff1ce093056fc12010ed854c4aaf8cd2c1dc711cab1037cf36579274e42af5f21499781f9af2c3d1be65a6bdeb0d39ed227d556f36fabe8cd4dc33b94a1ec74029c2c47abbb3841aee0356e48baeb9e2d263572170d6349327e24836e55dc3f816d1b91301d134041c12798eaab3ab38796b10a17ce183b913af67e201e8875d8224468f2f0289cf9d8a3f196fe2d4051b8f5a9dac0fbfe9426f4521cbb622a8b3c46a5791283d6564f6f823d2b97f6bb58fef2b40e0afb8b6e3deedec06dcd4e55427ffef8538e18a95cf43c0543e7ef731fd6395fe0c42203f168f8c48b1f9dbb61e9958529ff8de9bd8c2dd8509c048c3e54bf8f1433c9d7585b3060b21b624b70d11632381f30174444346b3ef75956ede16485e2156ed2917ab9b020cc672b8ed2ecc6daffb7eed584705d405a515d16596c4701cb89557d9b46a5ec6302ef6eb43cdef5679b5618e376efe26254c1407b70334b7e3ea30b5def506191f4b2d7e148d94ab9e1d0cbb52284e90eba2461921d6fab64034c05d3dc80c92fc2965abf4a60d8d3f50cfbd13f3469fbde1737ea5f54911c590a4a008b3497a172cf0463d83fb20efc9cdc69e8910f5755287b9dcf6946bdb27b814813c6f515722d7e01abb9a137fa37a5e86f05695134c51a12b992e03c8689a91fcdc0ea6d9612f4d3098d415c199051b68c3df5f101af6929711c3487acac92391db09265034498a5514b647cfeda149cf5a0613e5ed29749470026fb622280e5d43f131bdc2e80eb1ef801a636ac13748dc60c770f471e514905dbfac4d554f020273d64b72dac4caed2d9ff446dd31e39d03d43a32188d6a03def8e22f60beb1e21a32b0d56c8eb19ee6c5ea6b249c73e2036afdcccdb0f945263df3cd25eebfb2f90c7c2804f7ae9ceef277c0cafb7881dfdd9b43f43510a78f36862484c70bf3587b981181c4340141379d50922fe43390c1433e5ffb9578f957f2aa0be393baed2cdf481ffa9d5914856ea4ef2f31ab5ac2cb574f1983da1796d8706d70b904e6962afc2a5270ed319734bc6aa48bb21d51a554b98dfc0d73f395e648ec0786e03c7a69011544e3d653338e8f272d56854c91bcb2ffa84a060cab98d5c4aec1cc80ffcab9c82cc551b461564d93aab81fa8457f2a12b80d26bab3f4519c01be31dec9c67b4aa00b2124ef81f25bc71f40af090297e8bfd9ce5da48c6c29318109927b54d7ee2463175cb134d8299aa645782b7bcf1efe4a7f00a19f688d0e0f63f262ddb7890be4a2b60fb51b00d8693d12d49bcd30efdff4a123574debb51ae0847fd40d1ae298afe11b3089b55c130aee7b128d07a90f0d4c27aec2565b59ec01e1754105c5bc95fc01fd3 +result: fail +shared_secret: + +# Private key not reduced +private_key: aa1fd27dfa84645e38ac2dcb6b0cb06df848aebe38ee6e8d93b585802ed42d2c753e0765d4aec6feccefbef347c58b4993f5bfe065a9474d98bbdcfc61baeae348f1769fb65706dddb39b74097e1040e9d185d4c4a67ff2c5490ad6ecbace3e48d23ad48bcba53a7a331e3403c13934ed8a3a6f794c263be9e1b4fe96a40ea9e798987a54af53048ab9646db8b06c9e52136713668a4ca1cb3947469ac27c035ba69fdf43c2c5ef8efc3eaa82f6902f4ede295cf22b6711cfc34a5276dc6ac9329e3d269e637a4f9fa80fb481f1f3c45e9bb05be724f4d655256e2ff66a30633a4888bb8b6ae5b888da10ef8841c35c54c9db98f156dcde86a0b78a8052399d0d4bb6d38f2a55dcdfb6cf45f245274167389df5f279bfa3b13bc7dbed8d3ed9a2a05e047f8fbcd8c62813375d88c92fa0d5a1255a4ebd7f0146b9792a9f5d9a4d797a95354d3cb65eda399dbeed2feb3964e9c044ff93fe37c6d676123394e40e3be474cc211dc5240dc855f27ca87d7af59b799860ac3427959516a4794ec9319de826e8c529ca7bf0e56e3a7f9f99b4e6c4dac99377338260ef33d369fe77378248ec1374b9f0eb942d5eb446f07c3c423db3ecd57e53ffec6a5c366ffb8cb6e8cfe99844627eb2ccb940eb49a48becd133e96c15ef8e1b9c3603db38287b831ab79191c488de7b4f40fbe30c84ee446b29e4476b41a4901d85cac9f767bcb88cba8b91a23aa46ed88f2d8fbffb330cdd9cc4aa6b46b13fe36a885f626f7368fd8a1c4d31c85817a3d5a52f57480483a6b03d7551fffce933da873af8c64a74b1b51f1b9532a6caf0dca3fb16b50cbeee89097b18526691cec9e3d2b6d54de687fe64b434a7084873593ca8f359365ebfddb133dd99adccfa4c78b603d56d5bc6e3ab96ab09e7d501d73c4b5e7f66447a5ce5a26f96a9ac3c4fe6f4283757abf435aef7a6de4fb6aabdac65a99792e548e2c3cf4ff07f69bbbce3d588ae57f55865e7b5b68b712166171b9780a8c46b4dd7b1864ba4a4b5c89ee4667bd9733c3ca7f2ae85dc950e6854a086cb8642487a313a7309e6200255a70d94a43cccd9664975e5dc2995c56ee24fc53bbb1f596a9455bebdef4a11dd6a21746a3d499c6e3e7f09c2dd4925bfb69c7c9e4286d871546bfc37481faba4836e6512b3492c47790de977cdd79edce88c327fd3c6e93b713f708a8ea71fb72495c6e6787c7012748c16fcdfae690b3ac483b985b2ffaee16f5eb4ae4d8e1f53290b48bf4a972a3676862853ba348b0f8d730fc577657545da86ddd989c657e7877840d8509e8ebabe7f27348c574474f574aa60e976b988e4a5f7c886af9c3941bb04ec3314edcedee6fb39ed69637cd7227ece1d9596103ece04d96b96dbd85cd18ad7087743795b28bc6ad4a03ea6dc7c7da29d7f6d7c7c96fb4fa0ed55c5b7c589d7fc319aff59ae13817f69daafdeaf4ca4ed5d1d6a35c1c23710d674f5b0ad0c6be4d3cb6e145b4c8aaf363c766da629f3fb54b3daae6ab4f979dc78b971b1d5f5d5bb3d806f11c9fe75b2e5d16d5d1726c8fbe9d3a2888e52fc471a8c4f36d7ce06a8f84ad07a7f5be784aa893669539a7ca8093e8ec367b5f51996e3487e48c6f6a363f6010d9b7a62d44d56355f80d8376fff37c4efc3a399f2663d4ed53382f766c21a6822c4864cedc9bd9af6b3928ba0c2d6d7f446b9526eb5cb4415696cb50739b8b7a48457dc8d196a762f586c66d4f3e0c7bb41669bc538436b4e3b273dd13df3b94486f3d8bad351a5cb277933e7bedb56b3850149e28b9e091aacd9a87beb84a457cff42e78c9d1af9b0413cdb61867f6a8ecd6c6b8b6c9f840906d7c40cf0f6f6453a73b20a5f7bb3ef5527e791f729414544c8ac4c7c51b9a646aee02c36c5942365498cbe7f9379890a70cd8999611cd6e85d4a96b6a7f839617ff4fe2d13972ef49af07ac9f35444d89a7455eeaf47bf39fcffaafb87405768760767a2f58fed7a67f88b4fbfecc5e2ce7ad23b4ff1c84f669a0e71d09aa61596787984584697bf80d79d00ee674f4e6cc74b311a9cbe9fcc7d6b185a5d23f2abb7ed701eb673baf93e037465efe4e916eee19341b21e99c88a78e51d3b4109df849664c08c30e3d9c01159519a9e3dc33ebdfcc98b0bee5f286d54216befeb4c4efe3200f3e260b8bc589d0162aa2b1eabd229f9ab6f64e528e0f05b3c69b9c9f192964a3a6d2c96b8d525f0bbb32b848e5c244409904f1583c7d58209b91465b9e3a6f2a515ecf55a778119455bc57af5aa885b64100acbf9746787b9757a17c1416c4ee317b017348f5299661436c1fb5c8aef032929fba046a601804b7b4474461957c8eedcc19c609253c23ae1428674b5ba69264ec1ea74f825198ca71c3ad929465b2769338a6359132027aaf46173415b31ca0624d7e6c258a91388742b0f71917df814b75c38b06025fc9682876b597cd65cf21943cbcb4e77b1314c4b487aa46493fb7d5f734d0da891bc51cc8fd0454a7c9bfed5747daa43e2c95fea422165e02819882a535a7e3127396120a242412bbf7384bc91372f640202ea9ea5830002654d40f346c1f2025dd648befb332bf9ae0809810445a2c91a6c51c68ea19b01ca287e3e967139f58ee66b4632346cf4240634095c59492fc3b919be49c7f32b00da0a9b95625131e24a3b03c0b44c0cbcaa7fde1c7872645950818c69a62d864b251e54b10fb6820b9678026353fb3bc09fc90cc5842849252d2c6208dbc7754cd70904f15434a8840104b6a74814b555c69897b4b2d2a69407715f93ab337a7005007218b5536a89020332998a040599bc688f6497c520b73ebaa40b735f41d966caa24e655848fa66a2b473437d14c4f80357e449643cfb34e1759676b0b2b3733bfa6b2324357931a72866e99430454fb1b65797a90e5257037744c0f06415fed93540a68fd2bc5ae74247940c21a061923c603c4a89309f8a7d1ae48a29370908d9137db01ee84c3fb6d4bcde28ca63c34cf1012bdb060d830c2aa6da19ecc0c0a8fc0272e066a8d6225f3a2873a52992768ffef0bd9b109ced760dfd2c3ce7d17cc95095f95bc84f448ec51331066ab0126505df1273741220a869b518cb458b00b5e1e503f53c639bd2bf11d71c45e8866582c71c0663ccd19b0519330f36594f1385ef82199d76b4507318fde59b6ae4185f3811f15b873be902d80c44a9523351653365e369be2939f6f17f753c776fc3421dc75bd0ccae0fab9bcc2a8175408950fa32e983cb736075040a857501b2e543b043b617c16001cef203ae164effc243d4b1cba2f225f361a7d65949cabc32b3b3a782bb18d03627cd2507f1d122a46c3e35f91315ccaaea110709f648114220524b8fae55c8e6caa27a693c3a559496d30db2458674392575accea61c91cd3b9188b94654d15e7eebb383e19d114bc0720b7552ba0d42d85863e984a220bc4632bbd7d1c33f925836e117b209351ffb01c8923edbf4a54d500ce7dabda45021601a5b19d9b0b736c8b1e30896b285a633c647658622b30a9b476a8fcc251e0971f8938063550cf39718c86b6849c7b55319b7a4e817b4447d265bc5189614247026c82c557be5a4e1d302397865af7277646b442874a5b0d5ae60429e4dc5ab30c132052030d747715dba66c16316a7d10d180b6ea88a6e97601ae1131a2412b5e83039c75a1cdfd8c0764109d360094882725c627a8f9395cdfaa7bea40263c8479b3a3e1d68cfa5688cfa19322b833e0eb863171a3f48b9910e5289611c4d51554574cb239934cf870550a0f7a4e78b1ac50b59ac5b1de0f348f0315e627cc2e50707827b9f9c6b943010b46a2b752500526840a13d3123621462bf5486820594c40318b86731e1258de6215d76d68b58083149a041394114caf69198277a8a57082da4a440f799f78064310660350b0ab34970e6d9c9e53a2a24b2c95135971db128eec54cc21378b6067d648c85c8bc21bb9551a0648825719d5fcc67717083e9d677abc523340cc24da5b489933ad7d1c1d12b7004bc1a875244a7b9810b29c77826aac6daa1753681e2b9cefa4aa3a5c4cdd63a844166017f8aa79db97115b86c447bb7e66b7964a19d410149fbc475ec1bab8b06cf96ba0861062f89a621776507ae40849b82615f0b6d81ab82a92184ce9b8b07f69311fb295eb83cc5cc4545d89362c33c8dcc7453a70051f40a56691e212897746c17f5002d8c15bbb2b625ef267914d62759cc01da4c8437eb3facf336fa0bc0e83a9ff51c793dc44007a63432309460162257d191ed8872ead9a8a66296a7e55d30d86ddee023ccb84744bab7db9c015a60707cd7aa0ebe7b8cfb1d663d8b18c5bbf06da994e7eff9d64742e2b4ecd70cf455e2195477c581fa72af1ae232e7b5efb374d9607fd958447b7c67e1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 +ciphertext: 404d2a66e2815b1dac12b2ac170bd54d035481a4df94a2773f03cfcf3d0100524e7fbfb8c41056b83d967ea669e174675b908d34dc4d1ba8f7e322ddebb1a35a38d3243e7d3b55a65915e2fa9dc43ab74648db1e10ae6b516c3e547343e85914db7f1433f7747c8519c8f3a4c60b579b6fad545e1c31b7f92032bce8b7862861c87dc8362bcdc54c1f4d57d0f54a2815edc2bf7dfbb2691a84dc970032901033166084de5b4513d3982d3a0324220e432bd8ab501934ddd9e02e9bc8a47cf54fb33dcbcd71a6d7eaa605683be12efef95aa8765a593a3210ff202cab70880dfb359c57dbdd4df350c5eaae4b19e665d5f14dd12661bebb33fa574aa76d118b058a7cdf2cedf0ffe46e10ffc0e0237ac9f26553cc6e576e0ad8b563a41519d7b7fe2d84710470992d36a26f29ad5edd385707df85f73de32ba0eb4da2877f8881ded4a46c8471c506be310b70ecefb3852459fba07b1c879f2f72ca960a7e3a09c02315a7fe5e66359ee2d10d7112b41987db9749a48ee25b30e2c8cd5b16b9b72970b4f632960e1365968dbe1de58cc7afe07e8354c9a80aa0fdf189cb47ad8d257cafd6e7272c3fb026db7fa0e114d04be0523b149eda1e1158fbff7d99db920dbe5c8460451f76e124146a8ebfae8aa27c0971ff4e2955fcf243775c9ddb08d88c250268e01aee185287681e1ac7790d8f6a21ad61cdce1a7cd4ecbe85bca908ba7ad56ab27008086d7d351a4d1eac429a76a8591ee4124507a73ce204d7bdfd1f36f36966847726e44a7202a9181a5714896350567eef85a7d19e62b210cdb90d43e8b54a1684fecc4941993e93063e096df50b911bfc6cfb6d1b56b06a2c45c0cad9229bbc4d0d44617fb869d17dd72a0aae77a9c04045c125432f48c092fcb641f8165ce30ac1e382909e7bc51e057957e65103f1d9c24b6243baf375e45381c7447479292d4762bfb7ff52ab0d6c2a108a1ed717dbd8029384b72d554b7bb178ee6f7685a27175a595a03dd65a5ea1995ffc30656a4bce5b7acb0709185795ac106204dd4230ee71e56a53389c7a634e1175ecddf88503f24ed7066ad1b5b523175b071f2f44aa3b198b6bab481e69cdf1199cee43dccfe7e6cedd1e371b147dacd1f572373e2d072e3c6612b7920a6b71186dc35070d98c614a9a82fc5da515148cb29b5f4c4af120fe1c5d1b8717960b6359af4ed0962c17c1e28137702176fec18311138927493231228859770c4eac31c18ece82cbf769a5357e792da69aacf714b41c138664902fb556649cd93ff0cc3b57c8eecb81be7377f4c8df23048d530009f16537c2135bafc07d6ad666b8dc24d7385c316a69df4e7769ef16814563f1989d7a7c593aa4a25f3b7b3cd9baf3659831a4b9871ab96d07e6c6f71bd5ca81aa66ead3aa21080f8ae78d8fe030466e931b50e9402511bc145caa0c30b0d1446e2a8ed36e60efc4f86371161a58d7259dd748185c30b445b49829e7baf11b9982a01e64378ae9b205787007029c8673cbe52d93206503039731b7943334a58682cae94ef5eb2c39c8fb91615fbb0c18a9452b478014d89a5714630316d66e775294ef96bd401a55fa8ce4d2894c1a1182d81c89950f366dce9c271c4be3dc0a71bf48b8f9068e798ff1ea2ac3a534dc65c591fd14d5f53d68ef39550515c3631877b9e953ea7690495e67d3abcf1e5c7ef3ea1ada99f3233fe47180a9ad000031113e4faa26823615b4b6f68325bc88ad783b6376c166a91bd753e5162b8f5f30c68c04d85291e119f14836100335d57f78033080d9cce8932ea6f81f546ef63e59f9d4d7ea4c2c459c69c7ee7b6f7481cd2d584f30e7d17cc9909bda2fd14247595953748537feb6e9007a5a7f58f916901164bc91a48f63c92fec8d2648c83102c4d1f0b10cd076320e64aca3e2501ff913106900fa96aaef968fb677f92325a16bea0be578fac616dd0da218b4bbe6bf1f1c296ceeda0c30bfa5321e5cecd626be7c4275c1bd9dafa8bf53d634cf36983b958b6af3aaeef9fb1499433737fec3f7bdbf5e49f59a456f529429eb6ef83b87a7a302e888aaeeabd73a80936103b7a256bdf8c01327147accf69c4428660902a5a0e4475b47d94041fcaad68b63cb417fa951599e1205b7f6c9663aad90bcc31f8a6cf3c4359fe2d68936d6fd7c567cfb0aa4786884e498eacd740a27045c3f1e683a1198032d +result: fail +shared_secret: + +# Private key not reduced +private_key: 6fa78814fd808fb375e817a1aa133a3564c1bd73ff43b5e7d8ddbc43386df22af52d7ec707d5f95109a5f5b64d8d8b338b86ce2439da1857364f6975100ee7feff73cd6861fa085f0ee8333f3fcae0c4c202b6af2bf6d1a63cee78ac3330b96dff58c2037652fe497bb9c6b54456df58d59bc73d91c9dbbad52f5d4f5afad5936a70bfdb5e05fce6e7fb8b2c9c9bbf3a4937ce834364068a6a9feba95d4eb577bc8e70d58425466bebb66167384d6ed37dafd7741e05971b65d9aa5c7969d9d8dd7e670e47c45368e7101fb9d38d414945d663a8a9bb45454929813e7c7fea56f440ab4bf01d35278af4a9076d7e2ef56ce4cd034e57c1ffa3721ea5305459f32daa4c569d0636ba1dcbb9199d3edff43aadf5c8843a99a913eb364ee523ddba96d6514bbdba459d874a5ff782a66f29ea4cc916adce65978b6a8b1be6b0bba3d427e8af9ffe76a13593b4cbeab1eb4e8177f5fa28f65585da9d835a4d2d470e6c646c73e4c42559bb2762077b482dad69787836d8d94412d946330a66dd8e9b4adda0e423933128f6507aa0124c47b5e4d2758b40d88bab51333f1bbea61be8eccc66e472cf39d5ffcc2a08e2ba3f50e56f4d8817539fc95e90fa7a7c344d82477d0d73f2846f4d491d3e40fc924f1c5d372560af7b96bab49a3eee5abe1363e17cb9fd8ffe986b48ed03b0e727b1274fd969a56c954f8ba31878c78d3033689639c67e5a5db55f45d0109d505ee871c3cbf7df9c52536348660f4201e5d38477e813bbecd77ac1262bd8faa7d2575673d8b3b40b0f53092875794f979efe88b2c697406a4800e598896f3365b6a329a7e0eb65adddf4b85f087a885e5fe9c46332fb3e825b9b37b4dd48bceaf52886ba7742f2b5f800de46b4e7fd85b49da1fb956c1e88666fafcf3fc7dd3771c9c443297e76300dbd72eb5cab5adcb50e605d18c9b67cf0b59f365a35f0f49ebe37b449876e81903653c413e2b9395e57496e94c5a913d5a0aa7b41daa33e4c3bad134569e1039a5fecba93a3be813fec7f5cae6c1f42cfbc6b15f33540caba84755c2dac7b3239b6aefbccc239ab170b9168e842e543d8f9e737c2695a0a5e3c1edfe3e7fabc79a5daa40631052fdb177db7aeffe0ba7af2069441bafecea4964b772ec6b94fc40aeed93b8abf7aace2a9a7fa7bba867b07af355eaf3cd6b61f58af1d94fea8e4391eed5f41ec639b3c63a72c4e0a05f0f9de44d3654fbb2582c498f41c2369dda7ba057e81535432fccbe5d58548a7e991922c5a32ac86a817f5b0aab1b3c37639f8e2ca9568f00b88d84b3dc4ec9581be76040ea38ce7a7895da2f8bd931c1c72958ec90aa367882643a54fe55e57fece1f80d5c68cda283304646dd0ce3672ab9a73cd39d29d9650db543ece5bf9bfa94e68858d4ec17f2c718977bb0b1da34cbd93fc3e8650cc8af20fc1ea138a73e392be9ed0f67bf87d3ade5bdc6b63c9fdb44aa2a52f51e627607acea53e896765dfd1078cee052995eb6d9b9948cd05ee75a42e8a25288009b44b9b7fcbe37bac090e821f5575a2c54bb367530dbe367d36978a8ac6ecbc718107318bcf8c5f18426489536d2f359004a478799fc51af1bbff8dd269c34d2e8396cfa06bbd7559157142c46ecf85e7dfb9e92b1cd8e9af524b46c7543753708b726ecbbececa5218849f6c0e42b9d45afda4c9a68ba9206f64e4d6a4649aa66ab6e6522dc4f57b3ce81a3833978aebf52ffb536f61b74a261d7e8ed440504c546f1941ac86fd43fda10c99ddcbb79b35d93bb95e95c8c58d9b27a934fc746673ea555e939e6eb009dcd54b9dc143636b3aa76fbadb37dddc5afc33ecc693f0950d98fcfcf20d36e14fb88b3f1dcdb3a98b5efd6d2259911d44dd27798b281d8b2959c5734432a5f45298d4c9bf2dce913ce99cfbef53d3d9047a3100c5400cebba5d6c6e4ba7ae707c38cdc7782254b281bec8dcb85726579842674a7e6d61185556ce3c841fcc4927264712645b6369c30fc388d689948059dea02f3e7435a3ba055b96179c4f6f5eebf8f4ca0498a264674add4341cf8edc1d77cbcc871ab64a2c23b14fecea46bd63eddf63ab49936e3f5cbdd7a80d27ede2f6e56445655629bd64bcd89648f4accd9014b497ee5daf29beb62b6c9d365e5a0393341ddc9ffcc42e1ada20b880b35f49a312180f66b866c4952d92f2bf38b08f6110850224909413938678c8f9585a0741b561a36b7680644947485b2462d984ae5ea115fd52202643014607067b9540457a3405e7127e841d004b86c094468a0743b82bc70569c3388338e0dbc6abd1456ca3afc4564ee9d361ca0a708e417aaca1af12151d5fc93db4b652eb990a0335c799a27b713172b6949be937b570384f3627102dd2bd784c97d46c8a2ff2a1d2a0c438f0281cf29971e3c58df77c33b83b5252cf0e72c4fb9448aca6a3abb06a22677c0206609598c544781598fa318bd58da2625ccaf7ae759b774147380f0304163b0786a9203a1169d943b54b9b92f7bc7be5fb17e87a37dfe73712c33fc0824ab448a9b2295a7364629956cac2cb6ed54ac085bc3693fbcd9cf7b44d4b318e248ad737aa1b821fa985bf7f219828b1cabfe66deb269a6be49dc3f74af594c820748fca60961fb04f22ac2cd4787b5a41a91195b8588b3a74a1a188f95e50ab047cf42fd5b63fb88ba57dd24528f90c2f966a1cc91ce39ba848fbb2ec4576df188350f587e59b0ac0848d71a93cfda63e3ef93745c6516cbb69a5505b1f900aa4f91094306c84f640050393f1c751a05872aa7b027f678b1aa2cd5f97ca25806a53016eae4412a7f23ebd8a7359e5a706a11415951ae2a45d60fc999b66a255cab76ef85601b2974c462ec4202f83b2ba85190aec7c6fd6263d72e19f7ef71b6fd37694ec1e56090290549d002c2da8b18beab345f969bf1b23144486c299104dc7dc367265902469c45d7788c5d23941c6a1608a12586692eb759eb4835c537429ef287b6709b87dc22653d7a92cc314a295a6a6c939e33b3a87394cc40cb284b17987a088fffc3f401c2b072cb72b467d59f930d82101ac725c79d54fba036aad5760a615cd5fa1a323a87fb63a4472228f124a3ef72a086ac74245cac6b7784249d17c7a19a126b28c7530c1ebd6a806097de35177a5070abe84bbe3b99ee7149c57224357c8624d08ce6467b144e598701987fb460b21e53957f57ce98343a564c63fc466f7e04bbbdaa63ce79448364ff1d9c05257219d03b2d90c9c0c299026d3c0aa4845050092fc7424f1ea03716a456bb2b935a2be5a5570b1eb467d54890493c4977300344887718bb54aa06bd890229359ae33395d7a7b08a71465297780f54cb0d2125ec1311d6bd31766470dc18810848706c0e79c8654c6c6cb35d4f62ee70541e92982ba570dbc289be8e842a31b7e7158660744992d6506e1d1c8bb512f98015270376158228319cbb7a2411253a98cbbca8a6d86c2710631e105c217b2ac05f813474727c1b089b3c8ab8779ce91619352d86b38c5a622c73d692814fd36800d5c009af0bf0eb6734eeb382f70412c2469d10698071c772e62c6243cca236c2676fb0258487430998ad99a1456d29d79977c810953b138642754c0bb993e8b9b7e3b3b7972359569c44bd6576fbfc212f78c0c33362011225d2596bfd2ec1a4b721a36259fb723c6413910219048596252225879bf301c20d305dd3bafb2e62ccfb1c3d300b5460ba561f3c61930662f3641b763b2f5b5b2682546cba9a15331b8afca63cf68b7a1fc2e49c5b4042a3a2b2148c427c9701727dcf3371bc7b13aa62878c8a358f391f02b1fd3d2ad663c4f71c36cbfe11581e1995d976ca37440ddf9c4de2b48ed9c492730a977e017a7065cbcc811bfd155d1935122e12325732505c6c568fa67bf7968ff6836f765c242b5b9966c333ea1161a336164d72cc5767e40939590f07b537788c46265fab1bc3078c470e98dc1b7a31cc53a83a0a7e95c4634754a069007341396371ab79f6343b601b50966c5999144cc46b6d06089a879871bd1bb9c2cbcef84cb8fb4a031786bf778703b164f6787c5cd63ac781424f8550e1ac992a6c04bf7953787047b043632de12698e80526c813e08f36dc1db592f48968395817566886bb2c7d3fcaddf331273ec7ecbdbb3e5d70c823323fa8a1a15e1371534cd0462cd052685950bb6b6833600243e35c7047bb20832f09e1d854739c5b425bb32bf86029e1159d79ba70293badaaa25385563cfb4babdf4bbbe341058d3817e9a7941e69adcc867559b822bf63d0034c15de1a9371945bfacb1caca4fad8590f723014cf5355228d850d99c57f85c67295a4afa0b9d8e1da6065ee0e9e43b6da97ab878370142b7b2b346179050eff0a4153943be66d9ce47c6772362ba795b9da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 +ciphertext: c8940c3e69cf3837c2792ac9341408c5106afac1fc3985744f4d0289f745add955784e39e345526da04ebb3af35ba4b4a8cf8ab6fab0cd9c27b03266dee9d0c224f6a3e481e313af21e485df717fd89bb60ef6cd991896095eac6d37c20245223c5c2b62358a0d57f255e53ba44663667aad78d564c0c6b1a3cca8da1fc81ceec31d3f347d890b5d829f2c93b82d25b6642ed1b911ec82b7032ce5c0e56649dbe11582097ce456352f842095e8ea4a14dc3ed29958d548b960380f4c50dfaab65accb98d74862dba822c438dcc4a21ebcb3a99f89496aece9d7ab098e7deae6ff750f979e32f16d5796e5b4a68cc10a396d1894066c1a335b4a15069916b0e81ecbbc526192c904d857bfacb6434b061a94c55904d20e478a512474ecd6da3ae06fdbeb4d9db1d571dca82e43934160d0f36e52cbbd8f9f781c07067b4e82cfa9ff0ab971502d9c09a323c36ff304198af9dfe121311e207d9a949591f5e6e64accf451bd14c06e165a177dc4a47414528c85c1375ad952cf16fc1622d32513405d0959f333cc139a6c27a68976f06b21d55f4332680dffcf12d636f68142e13e5f05f2a8dd0ae56328f1b0e409eec89323c4b03f693276bfe99a5dc16071d034a33cc0bdb6a533af8d2b755d4e4f89521762705d0cf88a69238439f51a2c6982a82272616d34aa986db27404b60a43b18b565faca6263a888e506ddafb1e8898483ed24422ff52af414227c649aa280e7b1ecfcdfe6e9f852a52824572964d9a0309e0eef481852f344c727be41f136f5acefa62275b1eca25ece000949e5f93412deaba1f35d979281fe2e687b3ce49fa69bd2e70fac2dc72dc546ff68b2394d5066e7dc7e1e8e4461464235820b54a2672ea3d541f582e8ea28efd277e8cd22458962a3d9d8d1b3dbfd978402e20b0c25dbe8093632454498620f27646fbe1ca40b07fdf986399f4c742ed706b3e1c3add52e20a971a3bfd97e7b77b557da18fdbcaf8d1a53ae79a08dabeb69bfe5be215a74791a2686c8d13f49146cfee7eebac74e8b0b35d1e5d638b10732c2077594683425c11600bd90a61cb7deddc91cd16faa1b4d80b33e37cf89a73c5a2066831fbd00a6c838342adea2cf7ffb9eb9117024a03e10331d5faa00478d8c9826c2df0f44480ffcbffe3e4eec957c2e95c135c2ac2f1bfc9d9c241d1550869bde95c00616f067bc85cbf1a58b3d53ed57dda18e2668070f9524d22591717ca7426876977447bb4ab0598d52ae2145b389d5889f414c42236e8ce34677a3948214683e4083ff91d96562a72395d3a3b18262db82cd484a5351dda702a03431859e3832c4ddc46eae03250b186fc1ac8837a1407df20a3cea689d163067cb3915a067f8e32d1137d08fa382abed6912b0669c360b8bf42de50a596036ed45e5481dd6e42f984110a632ef441a92489444edcd716cb9df602755a60a94032dd528ad2627c0cef727f5b21efda54bd27459b3e1d8b311098f10a1534b30a34975c86110e3b8cf37dc1087e52097e5aea8e4cc49c62d3770b4d9d5aeefe42ced080a4c946c3ba70d5e601a18e0f0ab985eb0973ca252c65fa89308dd7c2ee239595f464a290f570046f31a9549efabcad5c33d6ce7794d08cb3a42f594f89489eef9486df572dc93259e412a9c310f878d785ec432c373801cc9319a008624a3d2619d74f0caf877322d52d091a0ee4e1e845637e6752f610870b8bd9c62e1d7b53a84a6d8ce169c7834f2239a20420d5724f1473dccb15eb74db3b6465b8dacac10d1507d403919b964df03eaf7be3d86b26e7defacf89ddac3c6a21f60673cd2fb9f4524992875f6c0f1e390b969389d6a79d06412851c5443ce70aaef5f6168d8ba1441036d197d4cbdab95b144044fe88ce36818f2ccec8b1769108eb7cde1d9ed6030e39e2be445e8573989f818d660bf94ac95f2db111e28a6ba839b94e6486dfb6d75ce48168b16feb3e6510a862ad777831ec3d2ae73eb15722a45ab65f921a2bd39c7013d39da9e75a80975c2c9281a6efa7c6d26bd80ab3de9980074d9a59dd41d1b56a4ec95a0b5a9f2aeb90aee83da8eea8ba2531f095b3f365aacc6f3321b624513e35fd3c9087ff0d32293ef2731d81d956667e0b2be7c8f44d3238931c69d022473059f5c014282932194bf30a392bc4f1f8e3290824ca56b0570af2cdc6a80028f88bd7641505abe9cc7 +result: fail +shared_secret: + +# Private key not reduced +private_key: 93d973d0a7b386af9d218666fad65260af788a053b4564f2c35f6d557bee7aae7331ce8064bd54f1ef38ecceba8cb874836989c4a7c75d364118585b7db99469e5fb053f43ac867b26bfb8cb9a8f6699c3d8fbcac414f3fae9da56775c58edf107da9dc94731a3af98db6eca00effffd1e9f817cb01d4c98a2f48443d6b3688fbe1c25adf98f702c2f5f44add0ccc8c3c27ef9f014dfb4cbea4993470f8cf0d73ab3940e6848ae647a4ce4ea88a7095658b0b9c61c8c726feaf55d74eb84fd3bd1c9c3d0dfd70a9d9b202f7c89d9c7f5e5efe9fa753ef7f9571a3e7939af9cece7a0373f86b4f53dfb84a07dc52c336d1f34a68276eb6d2ec73e9a92c50bb69363a9cb3c41d56ceda8d69608fde2f5193a79d581bf8760cdd742f74dd3e96c6a1305aedfb36de84a9e5b93feb5bcfff204397d28c8eb64a757cf7d8e8bdcfee3ba9caf989c33e06348e3ca8f8705266c2f8569163c91e33baa49e6a4b6c9fbf09ee74d24bff7cdcc6d1fdeb61ee26fde507ee8cbc4b7f81b34c82da47bd06851c0f5fe5ad9ac27f3be552564b789ffdf847f3cbb5283ca8f04c4b6a6edbbdcf3c77b0fc29fb847a5643ce719b276a39ddec8a361d73a4a54bdf1757cb6c65b0e6f333c66fa653e7f713ca2c714a2debebec986583e9bd7a6ff42182f3aafd7e1ccebb83e89f1a426f5854ad45dbdfcb8b597332b524dca8e16cdf8052dee3dcf882546864d83f095efcbb066990287f7509a4a23ef8b7cbba46b3db174594c7abb7735a47a472af4515dc0aa5c6ac01fde005441766bb4741c756c588e4bb7963fffa889f4dd542b65a38a888e15e1d8053aefc6401db4c795c7e8ba0e9c96b39458d6fda35a383738649c065fd19efee5adb9b809725359ce7556d4c4e8462e7d94beb3ccd27e48e4ebce2a799dca2c55174c98bce9f06a0c340f8c559f6c7745d7b305b672f26364346fb2fb099fc5173b44ce67cc25bd8fdb7dfb7b325226fac665bed6cbdedac9822745a80a463329db5854bd91f314d94dc949b797b128feece496d793757cdab5e0cc6cd4f0c7575567ad1457c54d3e76861c77e7f86446e4e0e9b3a005678577787d3284e595989d9fd9ffbe6bd621beeaaf94beeb78d00877cbaf39bb6bdcfbae7f975bf94ff94a5641a7f6630cbb331e4bbc5efc27779bc49632faccbadc4c3bc1b6ef5d2337754b598148fe6e4d6828c6ace3f73adbb6d21bae5e52fbe52c3ffb0bf59351a7d3b3ecb38a39adeeb3e23b2e67f2ded2a19bb83a76b56219de7d24c9fdf53056f35cd367431c8fa7cb3ed521d4c78f78ad54244e97149cb3df8bf96cc36756bc4474c0c0fd6aaaf3985329af217469613bf25504afe70c69cd4467b4ff77df6afb75be4f407a649dc763625f7c0059a8c3fca244bdc2eec7c615f7c8a15a5d4055a301abbfd5a5be42a8cb7f5bd700f4575ffb719965a56bdfedfddce9d48a8303cf9cfc44dfdfc391e2838f888e64cc7b58355473a9ab44098ac0c0f8cf2c0b36587d9e494e9c3afcf50a3ffcb658aa1f77d9d0c4bf6a077197a8a89f433ed18987072a9bbec9a19307c51f66cded27a2d0538ed869890413d8fcc4fe8c8a9bd2c5845b9e4c18c5c2aa5cc2bd4e8ccd63f8c139af2d66b6329db99d5d42e7c8e37287f6116eefcbce449f7ea6db9b35fc1b5871b6f7a649d0594869b21ae484ad55c8bcadf3468b4e9a7cfa6c4e333dc550889a49fda5b5ebbe64dcd6110c96987ccc2343bba708791bd9b2d5d6b028b942594e646244745b38c64444f781e886ae55fe3f14d98eacdb1c37c30e08328c1eee0f4838a64874b1985ca183455aad7712cd35e2acd159286d9473551ff65252efc26b2f7e760efa3b2b86c53650a34bfe4b77b0118d50f8c8cfc965771bbb8a9dbdd75e09a30f8eb2a4bab1e424587bbf82ca89f7c0eebf3e18775cc36a6579a3fc338db9ed90707ca42dbef981dc79567632860e4577e9af843b7ccfc631c07d6a1186c6973b5330cfd4fb1cd645e54b768e871dc6de5b4c375edfbd43b35866bd8856166f640ac7efb5e6f24885fdafe6fbabbce3d66fe9466db49d7ab234f44e759d1b89c041bac28914dd125aac681cb048e9d8d395e3eda6a23248a01c6bfc1b6c6296a5c613cfead0b433bd3f96f904dc430dfa74dfa4740c823e074aaa7ac9f7703a87b72bd0aa050574b63fd80ef56c882109c9eab220e67041396a29d6977f9530c3628329a2e02a7850c77c73a4698145c837087f2241ae46a1b7b692fb5c81de38846a5bad7246b596a889eaf558d1d55bf1372057f1795b40076d53c0b81288fc9009757a9111ea26c3410d55217768378cdc94a3cb40af38f67b1b473b15205c58d876077b2c8005bf870588dd6318ac154dbd9aaaa6d48d1dc05118739fcc7c12327a68f8b5369a846b6aac56fd1043c5ca8675752c12549840d47b6563c703723d6b8791bdf14e0011c0605136a1521265c13874b9ba6064b85ea895180c634168774aa55e2df34ebd8132bac959dba90ffa656e7c61677d3b801ef3604814ac36d31657bcb05bf20c893a4a2d50644902133b9b16e81c1abb2b5521408f3799152ba14d51a6a7f4a231b5167b0273b22cfc606482cc6685bbe8e80f6aab99d7f55b50e093aa55b568c45aa3e4a0766a9228192e5e91378af608276308905826c6a24e7413aa98f57495dc2d5ed5bd6fb5c65f4b4ed7b9c4c7b504548b0306c892f547613516a9064417b1b96a95cbce5b502bc770356df5ad52b98adf01bd66175ab3747910c814e7b070205b60978aad90c43341ac6aee03cecf7cb8cd2b4842c3401ae1a3b60207af366fc7f78069e39fdda0ca53402ba455af5ebb21ef9a6d60501d6ecb1b5297312b280ab2023f2fcc42c2d66308f263b7d019af68144247c2dd93a05df57daa5a03e896a182b480f1f607ea668aea60b66964b2a3fb609ff547da9a51aa6848ce2a686406c7fcdb058595a807a6692f833cbe3166fffc73a2f30523c86db1b98ee7f477d7f1a8c7110076774d6147bb56a79aceb6804eb982a8d00356553a68ea8e91d8b86d676f394a776353bc830043cf209dead22480c08d5df25e80fb734bd6558f1b9080b09fab642808c458cdeb0d72e5b49305aa502321711131c7f848fd14811d718be5c805c8b254c8c556981ac8c1dab13cbc9e91708d99688e36599f3b7a23f7ab83f2a3b613b38287b2856aec5b4ee90c33e85b8d88cde3870759320b4c1c0d8d727c8e379f84da0221b2cdfef70270299bab0b7f9db8c69d7c9ea6d01df6107e04440bdcf945af329bc016892d8c01f071654ae3b19374946246027210cf9b1760aafb5e4a935c2d0b7c70db3721279e6fe43d712468fed532cad432ec30a1372554c97c3769c380c709018393364ca97f9dc37a0d393511990aabf398474965dc45ac2a37ad60163145bc3b73e7a6c2032f7d2216bc19b26b4cc55bc68ed996411bb00715473f4e0636282c203770a3bbdb26cc58aa7b4c69dcc01ee3e53ae514169859b632937cd8c355c560cef5c091f4080047929554c94d7115393fccc11fe397f2854564533fe9e66614da3afe15be92196268720f5fca36878797a2b045dadb2491fb3cdcfb7253f18750774d4108bd6c7c6545b801e8e368a1087e0f33c22a359907c1c75bd59db28268da457699337356436786b16bf6a25fc55141bca303faf566039991c700a227c01e6543bc173c06b9a8026fe07e032c30f5d4c86a950a3a7b32e6c67e51771d78c08cb5382bd4fa8068969926d352f7e5820ab19878197c25172e95d6ab6a05acbbe375ab955bc777977d2b926786c9143978113c490731438ea53c0db27bada4be961b38138b4c684a12d4b08b6f03ab28f6a260b01afd348b59684197002bc534836c8b735df139ff98c84ee03a58e02d0e6125f1e09bf7d7a91840226362a667627ae5f580ee50b594fa64892a508ff8bf80851abdc45486936e11e26beca14334454d66c0128663c52a8700b525950425a4ce7824b25b9e45ec6bfff8279d1503816ac76f498f8e18b2b626b285655ab40096ceeb229856457699b500b77f7af5c2bc8c545c4292a387583fd74dcd20c4bed85bec8c245c63608ea302d557199d9a70194a5e92acb24264532b02baa8f824052379395b3b4222536164823c379782837ff417b1583238721b8b6b4a5be982abfd35a90d07bade5c03c4c3170257bc0e88b41b242b146027baa2cc72474d00427b0c79cf294203df379628799452d3952d2ac709f20dcfe33b001022917a4678966f1d9065cad2bb9b6979817873e8d662d7ba8343d18729291c544c00fdeac5ead3c8dd2cf3e2ec7899253e7f980f9ab3230eb1a9a3688f94bd522ebe016e2980d72c13035e253575fcae389887037cdbff8ea508ff9e5337e2fb607919747cc53df871600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f +ciphertext: 5740d7e2c1b500947e7aa2f01381407b5627047669bc3a89bb5040aed14f0be11c05a56d743b884f7f493184a108e2820a859bacf72be64709a6f57ac785d44070647596e7f23cdd66a2e0403371a0ae36bcc95212fcfd7b00af1dcd22efc5905c37501ede6abd9c7c7b366762a727e58ea82288ed7946fcfb6cb6f17cfab6c30622da11b4b6200fc8237beb65d50f2749c26c3c1b014782e8cf3bafab9c6efc12d674642101d5148e610d0b62ea6d024af6386f5ca7a15f1a2f793615e8b053ce0542ee0c622bdced6cb81c4ba9afb6d6b70cc07e7d42cd72556b8e2c87169a8fde513a8c53fa66e280a1b61e68a0a4a0103440826c430a4d0b55c8181f95c573582246c34b880fbeddc4e6e9ba0f3938004cd8d4b429f639ef3b214f78aad31074ea3b6344522ffc306ec466ec89c5919292d39d682ad3e62b398a2f7991ef3a1a64e94b72d7ecaa48e1ceb95ec88fff36dc28a8ad20485b5fae3694fadb942bd6817f79adaa43a9c747cf29fda10472797bd7736c0d92d56ef30e6d10dffbebc0ca4610279677fdd4b015fbb5f6785deea717282c4eaec871b8b5f6e93b197e37ac566348d4d80fa4dfbf9fdb33164f09eb687c5c445942813885714523166ae4d006e0a0204bd88a870df62a933a794a1dabb4646386c0a428aef1e4ce77fe2b41819ea313e3f475e69113d7db68bd0212de9ac74286f8f99ec35892a7ba5a2c6caaebf76683194ceee062243affdb66b8d31319ea1f72a04b29d96423fdabe01dc36feabe0c1f4e189d6704f7215903ca7e0a5c7d9e32347ac8eeed0430b634684636ca55cf3ee8f782afc18e76729bffe70a66ae2134a8d46bce987e54e407e5e2631b5838c461bc26366883b3a45a71e7e9a4559304bb9e0a0abc8594d8e4035dcfa5fd87b202222aa5692f8d6c682ff889c3f0137d88b56959f03e2b210151ca42af8f130777545e9ce51235cbf5e77a2c6dcbeecb42bd7ac91978c951f52e1e6fde74ce808de813bdd12fce935826a39426ea9a9485f3c11fa141ccde32ba5131f25fdedb7ec732e7716404c0c762c3b4b616eca02fd824bf28d3926d38817d0bcda5c2c3db0bee7b5075f140be211a310dc652130c271e65965ed2efecd53b2b119d531666dabd920da11861b68137ae03eecf96535ada14502c3dcfdbc6a224d94fb138e3ee8417f1547743dc618bb573f48984bffa721977fa26fc695f8053cc98c681f481b45321aee96dc9ac158473aa1cb4904dbc5614ab3b7856f0612f3b619f97094dbdae6da8a4af8fa0f302a85492e6fdbb15982b783eb1736f8667f84aa031ac5db11084db69d09e8caff7c52d89fb7a23e63c125ce4c39b1de1c1c5f8fb750bef864b57ab6483d49c99d403c47f1dcd5fab8e3e02bc80689ab7987a90c7bbe1a5f5caee65f16014d17a32eb9a6a963ece4fc691b4fd323384696af89e015a03b57638eede81d2e6716fe8ad838f1148cfb5175953846680c9ce86d8c786a1f6042ea39472a47e8ef3f81f07a35edb0378228cfa7760ade7da7a6849cf3b8a18ef60286d27f9ff341a4f1fd4f04633a277593ff38fc095208cc37628d980e8ec2e8b4d57c0529aab6752096968ca0a17d1abd1071d197930b846c1aae49b69cba4b3fdd2293592e6da36bca6cf38e03e666d30f33c581e54efca3115b69957ad66232643bca122dee5c7f1afaf155889cea07781fa92e1f221ebd9928fa4a4cda0d2d8b95529a153f965192421bef46603a9b89dadd13a29c56239813e3bc577373a7321e1df79f7b59b57d9e39ec44760b1e5fc72ad82771917ef756917489ea0f128211aaa31a50f9d380fa48933383bddb3b11e1b252e2d2180a9a7329ba501917b7efd21a7ba71e89b20f5633457792d08c20025b41a80d58d3f8ca1216d20f04f62d1d2742e3b7b6c77e2c6fbd1a4424534c72c914c0484304e8e789c83b7028fc0042fb16e5a30dcebf2eb01c4aea036e2edd975caeb8a32f6afa3466bb740e7735df8e1b7d1838c85b366b43dd97dcd1a66b7cde59de198d5e0d0f3c1d74ad06772fd41ccb2b568277f0106b0a41fa1afdfd58aea61ffad6de24dcda35c9f8e0e864d898670af25268b3a2ab0240e95a0c0c36821991631742529e5f8612bcc0f71602fbf5448aaab72e6e598e5004e454bbd056e76a54eb2cd7eaa92186744acaf865373345fc79d42c5cb08314ec7a08550 +result: fail +shared_secret: + +# Private key not reduced +private_key: 5ccfb53498cbfbe8cada7dff75187bd676b0b4995353374df1c4aacaeed5b827fbaede7b6707b89daf3568f5bed5969479557cf9adabfa8b4913a7bae48fdfa73c705655cb39c48138dfb08794f9fbf44a0297b1dd7e496eeec34139d865e6db8bd34c761933b3f7cd78f4f039a4377fab7c8d8fb9cfa6b0359bd783b766e3a598afca3aecc59d0efcfd36ada5531da94eb44377634a1c097635d851d12fc5f15838bd299f6e2afc7e8cb3315e5f595966bb7e7e0ebefa2dc84e17adfe6c1ffa48c4cabd27993e5587cfb4575feade6793d079ede935e4b4796ec893d3c59267404ccff38dae45358f3a3e1c82aa7d47f1c3f388c96f615c729feb75011f5e1798ebffbfb7435e51914c5bd24b479ea33bba133a560becb155ac34bafc15d77588bbe3ed53432cddbcea28b79c9cbde8e66d75e6ac238ff4299a3391a38be9fcf15485e72a1ffe588b341a16ff6794494b0b549b0832d11eca6d04c976d76111f85456ac9c21649106a8b58b359c943aa7723cdb737393f5d9d40e0a9126dc8ded47d3ef7f98e24f4c19cf4930ae573de9b77ea9988ef88db2b6e221c8729f1bdc88773f8f9553ceba7ae0d6c9ad7ba7919741fa24de0703c96034766c1f6a6fa9fbf13381377ef1d12d5ef45a9515b5a05d8c6dcb293ae44469c8875c418e3db42ad6e935c810ef4eaaee78edea641f48519d6a6e6b0547c4a4dae1178b234bc06f17e29a6c9287dabd65fe51f1ffbe8bc9b988c7e341c74164d430fc6bbcc5ef3d36938e2a4a8ebb8b5a0e9d6e438d89e48946b63bb25259543244f1fcd76bb10f45ec4761c5fb3ee6ff55ebfa33f64584f6dc971189a07cbe9479f99248deeb3328d76c2c9c08457e35baf5973a31e2fda82355916d5891f193b0c45bb1d4a6d91d7a47a33a83a5f34ebdd9b89366d1abe6d768fa5c30ffbbf2457aba25f3a40d7e09c9da401adc8b23beae5b48d6e9c642d985377ad9b8ca6ddfb493ee37a0f665ef9dafd8229a36cff883c09b5239a556809676491e6010645450eaf175ec5e4a55fc982ab3ced778a90f644945678dd5e4dbae44efc4b53a153d6737a6dc45e5c4744e39d6ef9fa8522f39384738c99faa3a7cdb779b9a7b75a5603ac55bf146f0b64769304d594e144c378a3b514eac1c73d34198976bf9492b7393de8455c284b1d4bfb773c448539bb493a9a8f1fc390469e7f40a8cf3ad520096f64243f8417478857cecb67c36a355d7ebf38eec73dae5a73f7998344cf7be33268fd99492d895aaad05e74df7429bfe816f5e6f2717a0f7dd858b4ad119aaa1cc14eeb527fd475e84004ffe23f766ad29746e78aff74abd66afaf2a0ca0b65cbc1f1a9b8544446c28c010eaedffc7d8d94fbc830e4cceea6784a35d756ed503e8a8afb7985694f5401ddbb2c95525cd82750eae9b058bc65896cfe43b9acb3a00a475624e36930bcbf0ac993f7ef36c34e23105a6a80d58a8d49a11a3e875f48f6aad74d1757876f598a4a665af6f78a9ef7d169e849857c430dfa75de4d96359c4cfefa4272db62ab641da1bbc1ff4ace03ff0fd0751cc8a378acd6500765c632a32bfe88d0f9bcbba3d3eb1f6cae94a45d5f537c7eb7205e8ec65863216f571d3babac57a6520b3da76f4950628cd46b88ab8f4c88fb33dfebe3089d85bdc7550648bf57dac3c6484cf0e98eb84ff41b5d869b50761496d7718e43ef56572a3aba527595c25d541ee1477f50773cc433d573b8c15a9f95c0eb321c7aac20dd2c65baa0d63650fc8c45f83e2d1a77010aebf9219f768d4d6934a8bb3c94952fe7fde83804f36d8d39f999f53872b167d2c5ce7cfaccc9ff37ff764fe6d097bfb4e4ede2453f33f8409fd580aeaa7e78ee6cd89559455f458675d94cd3177d3ebcfb57cd183d06548966bbb6cc628c446576e9eeb60291da050cef6b37c45a6f4d41df383319effa527e1750dae804f9ab1b6e0dadd9e9ed36cee14d1d0aadd847b3dd208f7eee3c841b452639df25e1d6eeb183c816a6b8397f77e588712279cee18c34e3e62889fd4d55d6f669d47aafef6dfc756d946892da9eb4be4d6c83cb013fa8a9e7758abdefc0f0bb6c014a048d5457309a125aab0759aac0bdc347dbc7eb67f386e7e569198c6f0a6c213c44a15bffab40a7f35deac821972710b8c10489b6e431f18744974e86c075394189349b00b1ffd5cac6072cc10217b0e3203e3f61e1d9281c2d208af83a7f071ba78546e273271ac1cc01a320f35e845f10c59bb8c97e1627603e51a06e532ee716eb83519c80a4833c7ab45e6951137c0f731964ed2197b033e17bcb5237a1128179a85d24f730a6b31ea0e52075ae2198b48106ad0e1225701313af1a7b675347bc0ca48d88c4ff054edcb1092e87ccf070e10dc093bcc9bd400490250b7dca3775b715f218448caa01a8d8c8c6577cc9f21a7e3e6208b2c42215794954aac57712a3845523c74960b57a97e0c310cf7b8798192eb9507fe65020f706be129774f10794f2296abd13587a78456b083a164bf23c801969a57591062d22bab23b61e7dd5b31bd54520f4080a4c6c01c6603f4b4b1aabb99681be0b9c671f496f8cba2a571502e0da35ffa9bd2c77a5e66809e4d54000b851b2226e23c1072253826f374842da312ff0931b7a85e6186f5e6a31276a2d40a81fbe135e2c86c328b896f07c2269f983b313cd92578882a321f0031fcb9a9e7d618fd3d543e34abcdddb98d4c4585cbcb67789283c442f8c5cc914427fb1a53f3e35b78c2110ba956defa035084c53cc9b6fa7946e11840087e8194db6607246c7b314ce7644b8e522cf494a6333dbcc23da197cea95c318797ef0a18c84bafbe968df375fd0c9981757aa8c878658722bfc2684e012af3b30a067ac996315b0cfb13ec45220c9447ad4374c78484ac652921328214ca33466f6024abb7a78cbb528c44a339638eef09d3ee370d3a1746053629e7a37eb2600f2f73eb9d572030598042315b093c0082456fab06ca2a4c9bbd4c651bb297b494fe7e38d5c8aa3c7cbb6f1189d4a2c02de0acdd0e2c7ffa22e83c63623a21dc137c00e07193bd28264ec0fee2259ff2362ebd1c252103d93645e92e398f46935109bc0cb50c619424db0461823d33fd8d271727554a4c86a5113a17de7bd17b47cf04bced6cabfa7e926993b57a6c0a693e251e3b90b7b17195ff037fd867b87109a8be90403060cb34b32688c263eb00194391ef6c978db4c83c8967a735895a70b6dced06016b3737015696f1a1945110a44f022472c0ffbd049c0925ab1d68ef3f775308c2a95e99865c04b17b34d28a1254c433313c972a7f51a48696db9d7ab71d4600c0563b36437fac1ba6ab9ad6e89630357485dac1485e2808de8869ae59fc6a952890c69695424e3bb9f27aac2199301dc6b36503699f2504ac5e35adfe08048f9842df3260abc3d209a1311d65c048b58111bc7fbd6953d21b56364a51d9c2419072dece82b9d93aeb99c3f0a5a6c3f276504c3697a7c19563abd84068e8a39373c1375d848400c663c44e6c968c3c61fb375eed10baa60cf6158aa7e39c99e609a8b0765e36a2fbca515e4581a0207ac3fd5b3b7a95f193a08511109f335cd1dccc09223129da93aeab93ebf397bb073bd6374634675b6386caa33f71e04b1b420a2036979acf22835fcc511186441e1f5858402af78ba99673125ce9331b6686821ac739fe41467ec22736463ac4415db238bdb9a32e1895e0445aeef16b12e818f33a435afa91f850549ed465fc026163f988582040274638eada37dc162bb2d2839ca934bfa44acaec450ab4436ee78a5e658134bf80f914052be1a605e69ba87005f4042a25569c29243157865c5bed6918da360c4b824c7ebc8157870962737d150ac5583907c0c0f0603b1dceca45e10467ecc3a4435355af8254aac26f411a37b2587f40cc023c1c497664de5d705fbd0c103e36875b168c1c732ab364e1a4726c1d8207e1830d73721dfcb55557352a6508469eabccca2ca706c1de5fab0a7647d2cf7b05e117998173c5b3958d483491f128f01889fdf00d0b668a857479030f0c16bb753794719e4e142f0c5a1a52445de8862cbe3377c383deae1817b8110e045321a16594fa7c1d1037fbcd2208158c625514f3464237d7c73b0dcc605fba342cb6fbcbc71391577ac3781adb39d4b1c2236a4c9579810d039c10fe556dd954d71e705c6fc9389f3be0089697dd6703d8bb8ff08c88bf6773082a56378b52bfb30182c9ae1512ae1c2b9f99b4f3d0b20f8593bc530c585d737540972bcea60e11441e07a9c6827031363990b383b6f42afebf55e5f20635ba731fa86c24d6908aed77e3a57b2138c0c83a5bc98ebd3a002c0a9c60409f3dfebc62eda14a11b1c03d59d46382c2c2a579009c0355da8a58440c49a0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f +ciphertext: b55c52a5e679423c1ffd045386899ee3fd7a9e783eef9e46f2725ffffba09835961521a6891a76ad591526e27db7bc973b07bb6b4e768ee4dd4c8b49acab0389c95044b6c2021cf943beafb912b0a492a01aeb90960f09fde6f69a55356624d7482cdb2a6c4faf3c89aee8c745754ffaf34f69f4cf5423e752aff68d305a2dab756a20a37ad209ea7f9b4cc5e5d493771977bd8276c79c77c1ac529c1ba0972a127e0abdc345923802b8aed0c1fe0d34064f43bc57fcb56a54c29079da57ceea37c877bf5d888233d2d45dcaf897d729ef94d8ace2be06efcb785660bc14971f5474440299341ee1690f11f683515b35f30ada4a6944c1d379c74af9dcd1439a780edfa81f1167304467c5e5442031fd6b8aea5533e605f4904cd118bf7572d1526e6c4a18fbebdb268b1c695441deb5568eb417ce16713bba343dde15ba464064bb4a8e8f76eb78aa8cb15a2c568568eadffbfbbc248575a4a80cb58282fa6a0dfa766f542f844c6f282d9f5ff882ef41e65b84f684a2cbf4abe8ada244dba1a65830c1abccabcdd19a99f3d9a722ee10d59426400f39b92c385498f4f4677502683bb6e9e38f3ef1f33f275ae2a24cecf14faf4052a5f560ccc887045c74213cbf118e373c093372ee148b6b94e30bd7fbe1ebfc61d9161982db6eaff4f4eada119599f7bf111537c9d98f81063c3f2d78e447d4a142d1fffd144dc998a1b72387c64458c6ad9f585212e5fdecd3728f2491bdef0de8ae60aaaca1a774ba8062ee5383f818c2223bef3c9fbb39e2754c809e2d914c899a331688eec1ce36968be0d21acaef4be75a3bf5e1f7365dbcdc0c9dc0c9730ea1e9fa79357572ad04a8d2cfdeeac940de6268e24566729d34f2f257af4b7ce48a43d218ffd4fcc3beef82a114e79289a601218e2872dd9c1467849c4f6c386322508ac137e56949eb6e9577d4e418a3033654e1dfb8d0bc196b3fd3220a8e34c02b988bb84ff0e6c2413168d9a018669b602994384e84f16b3f90fcc174a9ed7ea15d091df8f29bae868e27ded0badc967be3706b1c6ae24a903c4913bbec392cc0cbc8344465cd133d6c682b6580c8dc16c7f0c2c277462479f9fb94b0fc2ce36f210dfcacd4e14abea15652e5c1f2ad582e0ca1f769600c04411411c63aa8311b59a0436cefd61e500481dabd7675332c94d03c158e15d052a061ae9de4f5154ef3adf4198b42e503b2ccd6208686c3d927c616a6d788cb938d435c599cf1f6b7b228a87dd557ec583740292da0065ea653ff9e5e45e0b7a2bb289a4f679ee1ec537ebe5be7b416e08a42ef6f2ade5c7ab864eb60db71af24d1282b222c7579fd9a083af417fc075bfea4b2fdf9a8403c4f3646f3d2c7535f6852f7ba49ae0dbdcc0e06fd5f5d5333bc70f971f1b8f45894fef181e65da15232065e30d3d9595e70eb276c0e58814d7f4455d19ebe868731c2e5a9ffe2cc268234c7e23f3ef61d72998e15ef32e410fd4124edaf55b2e40eafcd21f48430d87208aa4d40809d0e89599c48d99b1b905271563a3e2028a1051892e588e94dfe0d32f232c4995c3a781c95954433e1a9603241ac0c2d100a1805e06165aaa36bb70eaeb6b78dd0b8294b88dd8f1a1499c7b088660cf0d2219486664602711de0eb49424b1e46ef3c494b7549b5fb77270708c825a40f3844495d4ad240f6265a969ffeee75c2102ea4825244e547d4ce847a13d88b59229c4347e35bd35b0a22628ce51144f88913ddc94922cd930721b2091760c5e15886be1ddfd8fc7444dc8c16eda51fff288b2ba3fd37554672e953c38c96e4573e38a712fbb903e3d9193f7d89d8ad54c3d2d1556a664b7d49554161d98aa662bb78d71c147732b3e9d74b541ca4d5b7c8b383f2488168f5e3604c51a01e3684ff2257300013f50c88c9b7bdfbe1fd4ca5e2719e12db0b0a9a0798e74ce0a383853ca52ae166c719af930acaa48a7829267ff1f5b6954e6af6a6e7fafd23c9196e916ecc150d88093d1a495ec33b3b369471a0fce99178489e0e6bda2dc3ba9f73ac4ceda0981a92ba7895fe42fb85c0e8ff2dc822d8ee4dfb1766243323e158ddccf4d44c7e4fe3c1fb4429e28d14d6645ef477d5af242cd0e352e10dc9309172b82d4debe3331ae1e384c61b5972766a1c53d903b55085bed136096e573a56b8b349f88f3498d47046c7dffe1847a8aefcd1aa6bccded545 +result: fail +shared_secret: + +# Private key not reduced +private_key: 55fb671b4ec8a295d965768b1ea68a496a77239eca1bb79aabad7b542678f49ebd786579be185f883cac445d621fe531dde9a3729493e1f7e530b5f61a4cc20c4e847e8e5297ba8415954ac13d7543c34dae9b5007254c194e4a01bcdfcc55707e9d6a73ca41a2167d6457db9cd6c083af7fdd6fb7712bfc6d4aa9fb0dc1348c7666b7a181cbdb856e7a9f67bc9825c0e31eeb4cc5b1c4ff43501a56d27cbbe2f7389743ff1bf57edf885f7a56fd811d89e9d96d14b9a891b9d9dd8aa7205545fe3e9598d3ca94ee3eb12e9a3674554c55f3899dcd54bac9c03d58bd0a6c7de7c3ccc98ab53c99f2edbcd0f975d52cdeb22ee3b1144c8f46be96deeb6a89d9afbdee3dede3a274354118b351e95c053d73f4a3c0f8fc5d5067d54038eda2ddcd750e615fbf9d4c15b8562690d96531e59dd3478b805f3ff044cd611c276940d58e42addc3496ff0c08ded17fce0f8cb6e948cfcef439333ba87ecd40328eedd7859855a4493d4462d6bd8bfb8f5c0b0e972c333ee139edde95da33eabbd83ac27dda737a0aca979fb197358d82438fa24c7721773a61b5fcd288e640bbe11b588fe4f7a8ceec41371e5d30f3f5e526d975dc915cab6369c579f234d882bdf276938845ca6c679942767f63ce5fe6cd1cd9d01696cbc83b84b430367cfa742d7a586b8400f4a9b098bd54bff2a51b31b4eea5a215824f268790e6f0755cea398dd1bc9a3605d94360f9b50caf9723e8d88a0871a0b79badc669cf18bb95ebca4e63e0626da71eecbd492757f2e98c27a47fba13c7519399cccfa2122aeae5376594159ac23b856888a34026904a3734141bbe769d4d9e7f7486e644d8dec7eeb4b7697ac925dc9feb4d42158fade07b35879342b724f6c9ffece9ca3081e6fe615661d1168e102779352571d884c1104b760e29bed2bc4f5f0ebef84ffd1fdfa8c0c882798781320e97828792430530443481a253ced84b8b7ac473655f703298519e4ebd59cb3c33bff71a69fa0f754192a6672607a346fa3997b360f0a75b423397b36fdcfcc44c0197c7c7a6443154ac6f3985c1256a0aec9bf73bed8dbcd46c7376b6b4f4b63f4ba04881b0df5d16387c43aa57ecbb9caa055c686333a05fdb0aeecc665982e73997e33e79244f50b6cd47a9e5b656169734576fae1b970c15a9bcabc1742792e2a9bae7cf9b391b6a91136e31abcdc859ca9d3a7a807c36db195c183ead11da6afc3d4704475ce0c3a73c4fbe2727fc8f38f4fff7b9342dfd141ea310444a73dbfe71a9aa6b58fc743e7689235b49f44c7af6a02d5ab3557f34944bce390756719cbfc647db18ab828a6971f88de8252fa9f2fbfc8523605bcff8026797fc27f1aaa4fae8087010a5bd2c2886f0fda29fa99daa8a91b9aec6395544ddfd7586ec99e69fb995074fda2a716d8a86fc2dd5a48d878c17f43e7d8b1cbe5bc2e639cbcf8011e461c35ce7a48ade5e07bed0b6761429b21c04689df8a2ab2f40025380205ee96b0f522ab49c1c7f41081efee3c362ce45ef774c894393ff2783f014c8918b2c8e747bb0cb63ea3029f04a54e786ac3dad4532a518e47a334fd87fcced0ea07d1fee2b69f38d7b57d24a8f4d9db1b7a7546144c9fff2bd9ba3eeeeb3dfb2677d5a3bb24ffb4c16cda223fe51b0fc3b2fb68c9624dc22765e36d471bda76bead7baeaea3e86296403a673b0d6d389a66003da68a04fc7357ec0025364f86a66826b9e03864781073614e9deeb0af0266c42568f3a37258f52cd839e3ed6aa0e71f129e0364edabcc8522e8e4310b488e51bc7af2dc8597cb2f01e645c9b921daf424f3780d6c87a17a9aea0dda5b15c6d9085c6e68da1cee699a634d46595401a47d91248ea5a9731e3f339617dc2e2795690abc0383a71ea4aba69459123aaaceb99691b8fc72aedf8bbd69ec903a60acc9fad24cedc2c391d5dd7de3f4ca46581558cbc0bd4a397a776db07c41eda6c24f436021b4b26abe05d33ae94a55594f7d233ce5cede461c40742bba5d447064d223fde41673f98b57ffbaaf3fe096dfbb4417f0f4ad52fea834f74c75c7d457794c9034364bae681c79ad7f3c3e308ce35ab8704ec566eb786283a9ed8eacb15ef4ca349a581598e26967b88ba5b3e5aebccace3cc74330d74d9e1fed57d1f5aaaa4ba0dc34b0fc991bea47b02a8cae2f81a10043ec8d655124b3ed56505296c5aa2227ce2ac04a0a31ca05575b2e55c01119d6588cfb529aa54e707155bb4f9a63966d9566bb65a95287591f715e6bc0d7fd1691129999552b1771b35a322c5145c7a40d79d6d9c3eadf941112c4f76d678cb0aab59b9a30bbb340e078bc2899951691f9bf84189a87f2af590f881027a489ea1bb89e3a8b65959ad503a5e051c5f398a654c708f9ea51bf75c6bfc25634145076a93aa6e6640e6b47158ecaeb621c606c065972c9f26a34736067161e6bd49fa2871631aee5b518ddab90f692929d5a7a6e76582e53dcd36acecb6a76dd9455358ba95eb8a70d3786c01960b367e15536b456408e4faccaaa139c8e9737ad6b8b0e380bbac446c73b7b388b319dc2047fb7338072a0f225b506253afa722c812419e9c739c90beed97ba8f684111900e7d1762a5c0903c390786e1445b615a1e054efb7b0b1daaab671a63cae7b55c8b6f13f10d55707650ea8d864c7e5217b572643e6c7480411489c9ab18400483a657185990bab58b6a734596a6123dfe5240b2f908fc8c3591490f89875e0ad3b06f6812ea973e6fb0a69886199b3b55b7d26a55501b43609b3d6a3981cab946049c10b5737daccfb2040e014a5f715b4c1f8b0406b3a3204602182450d10b019b388bfe31b5a5a9794b5863bcb34cf6f659b25cc95f0a42fa9305a0d647342845d5b28ff5c1727975bb48c5ad2c96b97ddc3bd4f0b40e9b6fe1138739f1a9ca3b969cf33ccb700fa9fba93ef565a8aa180cc3711974bda14ab85e3817ef4801c0c3b3f68403bc94cc7412ad044a220750b6ca963e3e052f310bb1474623f707157c8a7d67f95989492278ca5707ea6d106431fa5a3b88c39e3e360bc0288925932d44a2523b0980a221519ceaa65353a7483b7de6028744a2869bbc869a58bed2327b3c6a4aa7447a9a09bbbaf322d5914dc9d5a1ef8aac92b920524c6968289d7da06db2561eeea26fb764168c185ec20ccf2b57a89f2887720809e94c377b313cd5ebb7f71037bbf01bf85b675432b891850316f6b938231793aa3aab2972e979c7aa258735858434b6386cf0c5a9232f60a70624b4cbe9f10fc9e3a0d7605bcaa23ab49a222f66127a1a4b9f2bada03c8dcf330e1dd90131852b71cbcfcee91f528377d200433dc898c2118f7b6275f4e0b9a97028e759ae0c77477cfc26a1398cade7671ab89344140f5c3662c736107205a2cea71c3612c4eb063cac777b9d6b61cc0419fcab4908ac161674c6b4c58c53a5065c637d0a4c964e29729667aa949c39ea0797b6882951314354ac28d52c2096049df866bd028b1ac3b47cd2e648eb322134522ab2993db33491326a625e8739672551562b2829ca57ae6518dd4553146281fa57aa373412f22c2d0cd02b6141ba29f31612447deefbaf8f974aea75140db2b85de409db834c283440e377147b2b8204f09da14028f1960fd7c6b29ec1bdab0098ea22669d7123d36a52dcd634a447209bdccea731b47719745597955d3372cc533cc9b59712e770d7cbb63cf114cc02ac9933ab248617b9b284a8763a8856afea63c442ba7407905c6db13dde25a24062b7db428958e2b72117652535c1c24226266bcc7e87a721181ced66cd9dd1c8d86a1c28d0c335b66eaf7422c1bbb3a7dbc7f2a81c7a477a35717a23b486f307c766f1291be3afe8408026352d28a826a7e57819390f3341bfb8e258640213bb06b8aed87eb78b216971060b590f16d05d83801404ebc63b7304a0880062b4c1e235655b43c2b6062c28d4064a1a861a9844544776e8eaadc0ca66b2cbbb691460382b586e77856b8085a1d6795f82be8185c62ed79b2bb8a3ebf57150145892f99a27ec8d1701265cd16b5f5293955400a44192b0e47f399a0bbb9027f9d3aa1f5407465b8b28e2a87ab881be300fb72047f61a53b1282c13b65ec31045b1e0b779580017e1776e46a5018598799296f49c1447370af1227a7c000e327b40ed2965ebfc7a555803d4d34176e14bd6f9905c5c4e253062c1110dce0c22e74779f07846a6806eaf340bec965dcbcb1a2c40a5e6428d2bfb50ceab3a64cba6aed667edac0cbf03ccd8d8a56d73c70b122628f90e4c760ea21c485a0536f6f1632f900e1cb13208f442501c6cfd05027f5fae41abece025084a5e4598a766114b13b17dd16a4c99f255a964f69c975bc276b67b828d04997c8caaf20600da330ec642633f9789858f7350a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed +ciphertext: 3a8bca083a1f082d72c5c05b6d3ec147cd1646564b8aa4915a4c5adee11141d3ec19deba2de14e8df899b62d842619a1e89b9bdbce4f556331143aa99fd8b244e439ece01179bb5dcc22d9b7296dbfa90225c218b7e37873a8df58578667ab8795e20e508b268f0075596d1586c8cf5ae079e6844c6bb0ba6e4335638894dbcb1a657cc96e432f04679709c508a05a6e4136cd79a1964385dc8effd835d7ebc71bc3f2e0d6ce09fbd2b9284c9d9126639e86d37139c974b7679b20b06a65a9f45b29c9d4cb88b42b8d0c3800b3589e5e3f6ecc43adea2a56d38ae6d4c5bb4398bfb3b67dc818c37baec8a888e57dfdeeb6675a9be7c99942337e3ef419e5beba7043689fc2e41d422faecef51107a624488ab2ea49eaf7b95aa1a526cea835fe8b6fffd2ce1c8eefc6297dd5ff418f925dae3a5dcbcf2fe937a97f9c07bcafacae582aac5fc3a1cbe041de2c8acb8f3d87ae31c678bdbc6e9d7473a0983d45f5096d45c803c0bea4686879c7b7fce5219748128b8af367b44a7d6aa7a9b7d1c3bbd6d677118e35f5cf69a9440253e494473cb86fbc1944874e8b358d8b1a92cf45fd0ca86cdbfbdcd4991915ab0b4985f96ee49e0771a6683cf301982f9ac9d8131b7d36ff527c5df10d2afce8bcde6a469db425d6c10dd08ffdf12e179a1d58a5e8ebec1176a70e614f06db5d1aaa93dce14257736b0d92689a1c7ed2c5614246c7a37db2013ecfa6dc94e8c43ffb382333d16c79d07100fd92bf0c7fd63ddaede55b4bff6f3130b5132ab6aecd2a8e25201496cfd7049eb3cf4b8fbcb4039666d5f1d7847e8e73bd5399567aee06035e4836a437fdc515a05101e0ac7caf2651a2ba2945f9128f5e979d05272701658d12dcd6d6351b235952237c541f0af1c35abffdb0b67d209375f4b0cd58f777ad29c42475c270514d4964bf2405b4a180b0ab400de1187bd5fd0b778273f3e87b5f43e72f3a916191446380133adfbdbc2a2befc11c787f8527f46f14880a9def0ac05583cd2fe0b44a67a1934698f3e10e63cff7e5b6ef1b2e380de905a29d237b1a5788a46fca785193f45f079b0f2288b860a606d332356fc758f6df5ff6b8f4e538bac5f04cf93b00834c9c96598994387ac9bac71b739a292173b974e1d96875985f3a74bd1fb65a60fe5f8d7c5a087f5e6b39c479ccc072d64b39c5d1b18cc909022edd5ad5407a588522fe019b5be8cb7e56071c5a4a510dde41a35916600714ba8a69487181da0b4af43f36ee3cd5a682cfef1b2872ffdeca351d3e126962737c8d8ea2e86a1ef248d5b95c39a58bf5d1b76d202010ae0a52965bf40e08120b7193de091996e0e1c51bbb6a66e4cb3cf6141b44afd07ebab50102dd90bda6f21674cb3a86069b1a3452c044279dab24c94fddc7e8a4e98718310bae45ed518d401e3e1b3aa76152103ef76329c949a0d51442f9214b1c09f8cc4180d877681f1ec8e7a0c6bc2ee9bd3365708937399bfc146482d0b78b445b74ed602cef450cf90f20e9890d4aa801cf451bbbe19211b3d8446ca5a1787d4e1c693eba82c51f62d85771d246cb1a4179084f6131aaa733016ee58bf9e0c71cdb00a8620dad38edd3be398ce030486cc504449b7ccc7c7ac70bd0eb60fa76d1ff7e4ec85902a70f10b3db794f432c95bc67cee8fb083d538c72c265e5c7eba29a14e79dee53a821de768d864fcce7ba524ceb3e85f66ae20fe7ac3e648b46b1c9cf5a1b1cb60dd9ec67eb9bc4e4ba8f30e08859a41240a0ffa0daa3ab1418f153afd8aed9b17f5a8eaee948b75b882d83719421ae259935a464c77189c808766a809522fff78fd92caed13670374e5933ad1a61b59de2b0ba82c6bb33b165ab6564cdb964ace0f5f8e3b4a42b5a463645581b3993bbb95847b2f92ebd01af96de01cf007cb0341d943f74af023f133fbe5c95eb885e9eaf06c71b468beff1de1c89a703b88d128308db5c9b717a190373d68774bb6351a108a3b2f29c2d168cfc11d62efa411efbd1ac8a93d85abc683b443f21a19b9bc3a1ccd94447e926e969503b239f73e5904635674e60dec54358e61b39780c00ab5341c6deaec0d21f4a785986298b5828951905a44d05affa48dc11d928dfcaf7364b8075e52127b5f89406b4e138537878fb81c8b04486e0f6f86d350d796e94263709390ac0566a9b5f666a7b4e0222ecfa3ef4afb50e7d420987 +result: fail +shared_secret: + +# Private key not reduced +private_key: 0054c46a1943af5edf1d4b32833f72697e75a7fc81c23d7f51e384fd06e78983525c53df0ba3472233d658cfce28f47fe354791c6f4ca656ff5634be583c822a65e80dd8a7f01bf1fc2b58d2ae746699ccd91acdde75f80048302a04e51a66d0067544900db57ebe9788678872abcc807f7af4f8e6f7aeb8ba7ab408bbd3a29af8c19d6d47b98b702b513e3d6212e96be12647c95868090f5b74e37a593a47e3cddf6e5d5e38586885baa7fe6f57d30c3ba49df7f6de49a4d53ab60e938677942395ef85cf34931c341b2e6f84f5d3fc4f9183e8544018b78bd9dc5deaf923b68ed2f47014683b3bf5df17cc7ccb36b315bd528f8c7cbdae9d9373d0970772afa6fade7c7efc36d2a9175fe1cee6298df502a9a0144adc7004ae1d0afbefc3986c74348485a846a8e12135dd07b788194dfc42dfd292143a9b5c6e2206eee4adf86e0c9c036b945fa5495a69fac4bfaaabacb11824614bbe5114dccf02dcaefa3f361fad621f96db1d399a221531413fd497bc723b0d791efe5b6aacbcbfd5b16ee74dabfd59e4b85e30e4bae4c53e2a1334674e345aed857fc8c137ed72f1b75be9a3b806335f5603a46c734ee0ed994408b35554fdb7967682859d1a5b36f7ae35f62ddd25a7e5e05cd0236b38550af6551334447e98e2c3e7c1f54208aeb504475368e3f8b9d561ba33c9ac85f31d1f7ec8c8b6807aa788be5c1bf756c923aee186a680acc4f1d6b3a81ee6016bcc3fb9a4d95b9f3596ad52895de27abbe0e4f7528d4ec3fe818f5361eb68a9b008e98e9647ed6f7d185ea8a5f37e6ed4a42e2540dca7f72bb380195b75df18aa870973907fd7ba65affd669e3d23ae7cfeb7569aa94115618589f1e058d00a44819466ae28c631cdd68416e596abd936575fe13b78901b1986f7b43f2413d0fd487689e63774ce555d1b4ece69304399d74bcc99f1c88bc3068df61880d32c43b73f6cfd1e836d94aac626cdbdc6addffd7086eccbf6f4485034fa5d25f19fa5598d55d9727e598cf6803e8be111ad4265544fffa6e2416446bd6fcb3fe6718c2e52292552bd05be6b3d87421e538a07ec60ed8367f8a646c9f5e7e5fcb443eddaf4de674dfdb02c87438ceca13e76edec873c883707fadedd4ea45c386a588fbeef2cf353a97ee6ae98a6e572a467aac63aacc528777d847ac835886a15415286b4e1bdc9089c6473dddb389353f0c6441d84bbd12bba40a3ebd2bc84280e77c5ebe3dc8afc913c4718a63d957dcf63aa35c705a37ceadbedcdc025eef576adf72d6a302f275596de8a679573f2caf83a26f114f34ba9cd6d21435474697ef40ea0d805e0ac53f4d32448940792a3ce74948cab5f47e0a13dcd282bc97af6e7bc67823bd33efe3faf996eae0b4a7d04b4b207d9cdd7244f2375e4257dfd8fceccfd77a7b53e7bf35d4a06646aa29f80a22b82a51e57cefb3d3a08431d889e7afcce2c87ebc5d6d4f723e0983433cd59bd43a4adc2fc87771d9beb69d39ab7de8c1b8c7dc5bfed08c4789337efec6692db5cada88f0e3998e8c3de9a8897dd85cfd15ec62bd9a9e12b47ab5de5dd15661678fe1c299357d57a2fcbf2c2139cb66f971c6360a7c6d7d8ffd01fef6baf0b5957f73f8d94acbf8b3c56a3b72c2ed54febcf21c95d9ef8fb70739847fd6eb9966e280a8b0083e3d3084cf984cc1f7b34d7243627eb70e558b096644feeaba7864ea06abbaf2cd331d8749248dff20f8ffdeafcc5a77ad998d7bd62d5d623fce83e4544f647943655cb543d381b06d9536c817563e9864f96e2f3b52209ba9d06da3536541fb654d027dc5a1ef28a4c8f969e4c1a2c87cf76a3cbf3c6a9fac15726d01a2b7e0e0a8c00f984b08358e2adf238e36046ab8da9ea355613e3c486f86e1abf559b407c0fd90684b11bf44573f642002d364c45e83a9be07c3952afb4dcd69af2b666af575344be88a26aee41ff27ea6169a29b9fa1b63cc1ddcc642808b6f22b65a8345adb9da992e9ea9114480eff87359b9b70a8e4e425c1a397ad0714948ec339b97af29e5ac0fa985df2ae9ed154dd1fc78c1fa77920abadc31c5256d5f314cc970c7fb0a6d84fbfbeb1f08657a636be530a5a8129a8f8137c6ffb5e5f549197ecffe15f59841b681a6393a6a77820dd3fcf69fec3b458d40f7fad4330bdc85f4699cccd373de5d7266e5530a73a42d10c9b327a57715539eb99030873689f47bf6871a00c6caa06e4b04a832c865b69293303cf838ac186b453d77088895db36163b1074a8e045911fa92db578cad284642bcbb44f844c6663f3f4c98cc8acfa1a96b6df57f5be10fc76477d306245670b2c796672331076f74480c2627a3a44421a01229509752a536e95ba97e85aebb920b4b1b1bc55bcb95fc76ed43b9805236cdb62861fba353f08409c91126661580123509c05208c8604389b2dd3b0f8fc94f432b41632c4ae1ca0bdac54ceabbcb743362725b839dc18add4b7795a025261139539641aa43a9c185621d13c33c579189244c884c047bab4187577c97639ca4abc631eba5e9b141e11b6aa8d562449c3ccd8757503a7ab358a24d2b36f2e1768fb24727801123354b6dc661f640883e0613c8886121b89336202eddc464204b1dc16b9fcd3906bb9a6cf8d6a176a43aa1b13200d67ad0e21f2f73186164a6fab968ea0427c82501c59c49488846489710d7976a5c812f78b5b7df2aaa6437054b0a03180c4a886b7d653149e8497b18b18e98e72f9815be90d252a4583f2de88c0d7bb10cea4d65ac1f59683db4ca4969a9b57ba65e06908f7e9267adc8c87e8b8d8d5651b234bc9ee1c65fe42a51368a041253e982100c25955bc39b70b36c67484f8df88c2066cd2a5339c471b60a1b81acc5922e274cea4a071eb71e788241ad1b7c41db1e972212e27c770e6720a7e67de941a1ca952bdbbc591ef78019c67dd184259bc873f045607d1440bee46f199a7d2274b4e40062c064368bf5c6d50046a198c89e1372950b7710b3b6376caa9bc32882a6b0aa9b7fae86cccad0574cd8b417047d30d41bfba0119b909142363d307a006265a3961c9c604a7b65384a5deb1c61f25f66fb3b7640b5c3e22b8ed488f08201a10c3b5a42b043965d4fba6f31b90c5a8a1d8b29a01d500be93225ab6acf77960afd2824f2283ce86288cb1a9b98c11b03dbbb0e0854731b22464331f6dc70e7e1771471236b5b26ce131649e77d46e7946b85593b2989bab4ce5d09ab8d745a64d53401bc0ca4855e54b20ca4811ae5d9192de398d9d65dd3a327499cc0ccaa9f9b2b547c5b53722b50b21c7bd2c3c7f67a15be8371e9d4583faabf2467a4d5365cf7d92b8de8a55de200b61185b89c83bdf817adcb67fc775a5bb19f1aa453b491cf1bfa8d51d0cc499331de7730877a2db14778052cba5d759e21a8cea550724f52bf25c2a31d7b117a4377f7a461ff92882e11a4a8c137ee5a4b7aa67f712838737a96faea898141a1b5165761401adbb650bbea1698267d324a3cb1d9933be8bc95d55aadc4a814f201ebf724fa024763563e2656b028053cbd16b32c20457349702702c4b453a277b318551c8b732378e3d7bc31a10b5ed975ab032fbff647c6340c2d5c91f68c1addb447fff01dfd4c0c9d925111948f001880b36588df16cd1b9bbe85973ce513662267214660340262273fb45f97f65da4e615dca4a6aa06c5e9ba0ff727775c84608611827c98c8b7717daa60004d2212dc28b4392a6e0333a77cb9400978b60a00a766f6264486c60af452fe92452156961f2467d013072f1c4cfbe08ea7885a74d0649517178412a1ac63261981adb7708dedc89b64e67dc2a8b25d98cb1ad74289372e48fabe360495b4a7472f3c8b7f877280ebcc6019648ef960ca23a1c49b684f947460e96f0e941408fa026c127900d84665768db52a8ec05696725b3dd82498226030b7189c9ae1c612e9a2c65c86c29426caf686d5b00ea0557466a1b04f8485a457bb83dc68c4b1cb01e7831e476453f084434151fc0c9ea3b7081ee00b4665048bcb8fab778eadf90c25f54d8f452381e252b2382d04028378e7cc7b3973cfb776249857cc611af8f91db8d5b9f5d90212b27d5fc9a794d53e3e002089a05a421a540b36aac5c803c8f5cd71012f176ca57a7a439db90bdc71ac65f0470d54188927bf3d2640e5a3a45d9021f876562fa7c6c2b37be9261393861c5f0336a47ac373e6874ec53fc9f90d856807675858ba1291c7134c4b8432f9782cf6855ae9d49226055d9c4b2f23c0238f20b516d6600fa72d8a5c2d06e1613dbb7fcdf9817cc299ef2614b6085517cca4006876de51659c317c7c9d15b2dfa3cfd29db64b6dee0f6e53b6bcee0ac31c086db16d2a63040993f86bda57d8006a152c436e383ae407c7d9bd7a715a2f9efa507422f072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda +ciphertext: cef4be98dc83da0b9570bccb0cd85d237536d29da6544e77e0ea894fb5a777f7966ce27f9baa0c2d13b2559906edd041641ef91758e5e33c09c0aa3657892b63b7450243e4c07d4ed5bead3239f6c3ed3c59fe3d302b1fa9360851a7f6057f3275899d48db6b713a9b221fea8f1830b45c2fdf9f08cc8a5bb390c9b31497bd35e6c659739eece6306ecd8d77610b2ebd9258f68de04671fcfb85199eb7c5593369fff6828c0412b666e9b969adbbb494702001ac8de879533cc2727260b7664edda4f06fecd7f775b9d4dfded03c9c3c309f16f91011d6240bf0f81eda6850f88e96ca462bc0c836e08408159f911f41b47a83cd8271bcabaf5111eaf3cbd36b5f7c6e61293fc1cb5a021f1438488f220b0bfd439c0b53d814a085ab07b8a1a751a9880dae73b97c5b45091ff63d1504298c7a0ca59f394f1d7a2064163cf8b4d59b432fee9c73492daadc5a3a9a6b132686b75db0805eb7745adbaf38d12637693a85cdc77fab26a48f39837d84a6be8734d28ebb50ad913f5ccd177ba3b632a0122345c1601c4582a0718254be614c8b619660a92ed1caf7f9b79fa0f0b2f1eea8c06962fa85d2d3699ba1e2cbeecaae9921754deac38225c9bfb23ddd4dba78a327638e1ca00697a4b93786f01b979c169a3509104fcb58ca1d7941f803263c2ae446b75081ac4df6c154b811ac394f87cecb719b6180772f9253e32f82dbe7ba2e5c4f1c8a8c5ac37075c3a129bf96cde8dc9834153ee49d17414826f4a4904b19f97f9f592ea2bdbebe51d72e112d600b795b788b1f742188c38a72d3e0d7e8f1a80bac86c56a8a6101bc3653fc22959580e543b0cd9eca89e077d9b1331e3d5aa096bdc2921fc5bba044e5f96c60d4088b54e5904ef842d8d160980b3bd11309ede2bce224cda218bb65a64bf5ec0f1fc6d4a5ebf01a01483ec968dddb1c1f56ac906853c69f90f9a5ed66bd13c13c0d5c8e74e39f6a3b7808a67d01b9edba03b391c8912ced938ebe7bc9c97f82a3efed9b5dd12dd83f92bb7a20e5f3d15b0341ac07fa3234b33dabfeb62bd399fc5921aee054dac42883990d7a6fb7e470ca11933ad82491983c119b86c35868276bf804ff5b39b1af66467a3f5ee835078ba96f2666acc015d9facb8153b3fea916985fa36b050bd3eb5f2b903768c390bbb917a85d14216c98f9a050d057dc4dccaf665b94a1d3a899474fff52cce5376b163c19c07cfd8046787f2714a14343b18b5bdb49c06e76d945418525cb46520a29d7c62421b81cb57188b4ce22e2402380e494a03744d2c6a4398e358efcf0ff62ac6d9479909be5e41f2a6e649835858168221f6ed1a857e3deb195a6e68917d8eb3e945f294ac6555facc46c558ef6260820575c3de0d896f53b9e864f76eea4cf2ad6243d9e4369ef7f22aecb1b349c342e428548f29e58e0096da1579c0f2d200fbfd205c4daa7d0420bd3a4b0dc7d5e6c9cae7ba37a7065705a213d4bb070e291158fa6a3b67bab4574a712e1aa9806a315b1b7c559385181ac322855d30c3c1aeac5b34be0f6b6a0a5d9ba07c02da1ed4eb279ca6ecbfe015869ce6faa62d32d32ffb190d9b3cf96c7ede8423bf33f3b124b2f9a2fc8990030fd1c5a3334d3feeb134c2b8b65b5f515f1d668be68753d5b980e4d37b20d14533c98974529bddd2198a1856f0c7555c1624942147946ea61dd511537a78b401970e493c9927a14f2f5dc26b397f3e0b28340693d95378c67af4fd4f04cc1fde17f01ac79a15c3da1bcd842e5f610cdc807970357c56e3d6eb66556054dcd8844323dcefa4281ede5e0657977ad4f277e3b72a326f7d9c448137e3b7c6bfb841116584f85b6b8970cc911829ab38719a0418490690344ae98e62d114965d8a9d154bc0c6b49ca0826b4909dd9c3c56348e34581b93570c7533e0dde9c0c5c5c28f4497c2d399151438b241af777b0a04e9317c48971e8e2a22c83e25b9ff9a170010b6487170ffa8d03e7cd1115caccce2fd41ccf6f44c1b25fb4ee4e105aa4e9c3418e6d998f8f738df1ae86372b0a383cd63c24971df937945646d4207a7b6042df82653450095d62154e115d13bf7992aec6e52cc20a9f430a0356436531ff985761467b8dbca0dbd15ed5760ef24c37d74c90a998ee3ae7c748d703411519b7004f38fcc48ad35cbe2f8218249c845d3a04a3b4f345421003200718c59a5c2a +result: fail +shared_secret: + +# Private key not reduced +private_key: c5aa9d405bcc9a06e17a5f79ef34d3c609f48943f593ddadf1b3a5172c795b483e207ddf2c79a7a683574076ae8a4eb690de7793fcaa9cc6dd39373da09b82776f835fbff7ab05845853979a2de54dca8ba45ce51127f123ea658c5e9a53695e1315accd3c5856ed3c1f4da50f1d666caf53ff23b1377830ca1a485f656b2476fdd3eaad239553f3b5db2944f25b2647658aa1a228f8a413944a63e35ff951695da2b0a66b8e6dfa184ffca87b3c09866059a4fbd8eb4f44d646e5b8da38687dff595e93cff50c2331e0df495964bc04afca5066cea77ea5cb0ba079788366376f8078804e98c9493a9557dd44e8efe8ddb83597f9bb333692678eef0ed451468fb25f04aaf2edf47c66f4eb5555d1bd8c14e3d7b7084e42fee85465c193bbd4d4295790e4451ecf5491796d4b3c47b115ed021a91440b869a75848e9894c8d393c534c4b2bce318a5cb482b53f9ba76203331e87569804bdfc2e96072f777f62bd08a4e642fdc76e9744faf9c6f06c381f5d54492eb6ccde84f0a2de501d6ddddb8d788c4619cd48defd9a9ca6576dc55e101d37d422350b4357c49b9dc291aa393263cfcf887c1363769d4dc7663d877dc9cef88bc13f740a97efab43599933b7a3a7495a048d0b9dc66be17dd8096976c85962f3c75bae4dc71457e5ef9f9386c7f65869f3e4cd6761fb2267ee2ffe557881b873be3e3a12e851c68e25acfcc1f46e7b38cacbf4a5bf2346624ffb316e4c82cfc9c4befc0884f709b0df4b91ccdfa0b82a0bd47661c8dfab33bc9ba334328a8f234e9f2f8768039c0998d6938cd5cedf34a8d65930b07ad66cca3cecafde45694cb534f7ea881c3afc8df9c9f52163febfdcf199cb81f2cd5d1ec3775dfd3962cfd14d3d7bcf4716f69b837b7c8948437678ddcffa87a5b6b655fb3d4d9bfa8ab3f637af967814b7915f5f8401f63ed03469768783fb757f4b8385f7995548c75b99cf4fed4b2a4bf872a9f4cce6e8a21f9385c5b57775fe50534c31a15a854179e1a0398df1cfc69a76816979f0844d00378bb9f4ac43cdd98ad6944b2dbd28924b201b6cacdd87f25a67e676c738a3eacb4d4f594a4ae4354cb880d8cb2f486de5da16f1ff8db6b547e48780f5f3b894ecfe8b636670ca397a9d550c540e267f349947d15cc46e186cc31a7d45d77b8dc85943c0abdcefe629f4a74092a65f579b3405f33ed47916f1475aa284675a7fc771ec1f35c41cbe6a8f2fe8f3bbca2f7d9380e2c9aca1f6ac3287a09f8da041531d83b39591a961833ff990862d125a29b85a1df3ebc448dc0c4f56e8a93a7a43fa86e1e4faa16e8a09eb76ce79cacc88bbb236059acde91adf26d8fa57c6ce403745703f6b55cb9bfee17c4dd48fc17da5585c8f3faad37bae4e01f07a301e96954fdfa32b3e327bd4e02b5f928293af67a6fb115444f4a4b58fae7af7e6d628d6094b3d1bee3d15443abb0389afda8e9671ecb1e1cf1ca5e517717835e7868c4bb8c958c630b0c78032367b5eb30101ae5ad9949e815ec9bab638e9cde271cab8a3a4399853246a7f4979879dd46c40426cb4aaf9f987c9beec9fc1a393d623f921c0e9791d7767296e7598bdf2738916c99a9d889619bdbaff79d50e7bdc90603d58b98e1a8ead4aac7ea1ea85e2b07ab022cd89dfa84890daba0d8838dd8af43e8fabb6c664e363ba31bde394fe4801cc6929ebbd89e3cceca3a45c5fb9688957843bbf97ee2c70a64b1efa1c3c89ac5d8818496e6ca3838c3647ae686568883550ea3e90eba3b1a18d80b463740dd5f8ed8ea535650c538e843279074cd802cd33a7caca35547c0750f56f8b7ccb85c790aec85525759c1cffb16df68c9755bf12dbf6d9e3074c5a4118bb45c0f5372dbaed0f9632acf45052c8e831c59671d5ed7dd98a4e4527768cc3cdb47eb343788c9b5ad2b4ef16bf4d8193b5e9b6611e3bcfce34886abd7bba361035b54494f57d1d65b3e2ef2703ec29a6d7674c783b81aaefb6e61667ee5be87e9926e5a7e5a7b4becc21dfcb48738cbacd764d1b8b8b918dd691ecafa9f7a4bc68dac4e56295ffb0563dba4a5e01a9b336a896457837d6694bd578f90e2259dcbd3d2ed2baa9639f536b9a0154771b0c791b7ec8c4faf48917fe60f8691cad483b12dafbb076e0ee7c54188b32bf6a6fce45eb9d6a03f11858433994e304b2d379c43d4670be6c9d65a61e50c34ed26c67e716933cc5d9ea22d14f86e5cc54967ccc82e3506efb8cdf40c31f313135b597b3aa72fe83b01ec88a97e32464733107294270f82216e11688df6cefc2a9332243eb75059fcecad20a681aaa17402fb36c6e091728ab92efa891d141c251895f4c79fe2db4b2253114be24d22a38b9d14532ff80e384778c8b99a4303506d08303bab91d6e05c68a0c0affb5dea7344ef5ab21a559cdfbc3be395834b4b8d8d9c4af6a9ca37a34fbf05669f99af8bdb3237c98f98802ad76a26eb353c6612674e8b4f93a190f293c80da025da00aec20265cba37b0df43d78982e6ff49a9f464e7ff57680e7455f816f815c733bec25e4227ca3257336005d0559b647585379542eeaa8282d8a90b7a885b0360c4c9428951820d189b873e246e4d793fa94c0211630f54510f7f06d116acfa35c856f87913bf61cbdeb0554589dae65a2e25341e4b93916aa4b738714526653e798c11f24563b2200319c60343869579b74f2ba9ddb03c6f3479a0ef3a5e5f80183d69034968e25892c28c272dc501466621bc091c0fcfa09a2b56c9f8cca6cda208a523ea6a40a4907c1f390780d4a04624466206594ccdb1b19d2b9cc407bd172428316692e09229fc963710165970471e1b554f322c1548a118f84169dd9731bc8c49d1b0130287024c391ca027065591fd9755ffc2a68d36b7dcdac3a54e0ce67e432e35695a3987b1d4a1e5ea32934c1cbefac253da2ba9714ab6a4a46a07950b6477c303067e0e673fc6cc800a26fcfb59a01e397f944335eec26002889b08a26338947dcca758eac669929bb4c608f9861812e06aa61f5b8b56299efe95109d57c42c066ead511bd868c2b107522043da8356f617c26f7082b078234b435c478d48a53d5a369f7907ce2be8370c0ba7347707b7ffdb25e6bab2fa85b5922e0bba7269fb7a9799a158f9806bc3589268d8514134aab1dc83d415a235ef49586133de1ba59b8fa1ef5493cf9dacbeee04f4b9a94b3daae423575682311bc70c49e65090a87137cb327419a2f2d5481d6b10044c6a551eb711bfa828a3cbf22e026d2345dca2415b6d9b03e9479faf589ea02a12d1c03939935e8b225d7c18534a2cef060456bb58145337e81f7346e057bbb98a8c0a312f784351dcb11a1fca7984a2443b409ba903c3024b8da9a8b6aabca90b74a34b532bf01c7c1c1c7ce05bf08c5c65164a01f64c86797317dc03b2d69c263390f9e411df4f4508d7b03c7b473a7e195e8338cae5b89b85465779029c0ac711653b1c7a24bb3b9bff0c612887c12a39c2f5bb2920313cf3522396eb79065bb1e854a8956f7ac2143abb4136b0682bd01275506a765175c4b7648a0dbb875e2864d52aab697533512164be2659c57151c4af898d689a8619726406110faa69f61320e75d3a05cc27febf609e52026c10c01c30118ee3693a7293f4f7cc4d9f84ec37c5f38890a6a58afce1855d4d0ce1f0a577790423115c59228b96bd62d68d90f4bfac9f17a7597a492e5711b65d8626e568f0150a458201c6205a81fe74a591b547be842765723b57503c3b352478b304c39b22b147bf6b5bc489c2dccd44c9f206b7cf58fb3faa3c8891524faaa88479b0c4051deb63eab53822f84935566ab7978c1b9e5cc043767c109bb4663960a534a750cae177aa33315584138138d52648aaa5cefb09f5cd58d008d4c69a1c85a242dd63a997385b529a288758c427ba15b05642c230c8a0180938606c6e1465166f128a35ca3855657ac1b3677a0a15d094ec68caaf90cc1958ba0dbc22169f3853f3b7d56f4bde7bb2c1c71c8c4c95299d95873f89a17a4583bb9198e0279a45691a3107ba1294726a385ed95163f0bc3c609c01ee201c5900eb763518f212f14723314715e7bc84b75a611c481cdf858350de0495d1c020228b004624900c300cd018166fb4dd217cda3c792da49a87a3bcac52542f3b3243f689ce69c1946a134a97061c83134ac52c92d97a458b7b38dfb7f42476b6c5c272c71065e5159121484d4a541311c97fca3488d13b1de64610483cb3a9551cf4a3317d0c76766c777e526595539ad17bb6c184aff73b6c4eaccd5a14ed1b1b836975deeeb8909458146938505dba5dad77c1a3acdab128b36dc1e94a121c545e3515ed56687f8911eb5e1724016ac096bf081a60fd2726d6b275f550c50021d42608c49c93385828573f89f5a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad +ciphertext: 3a385d4faa2e13cc995be625819127959a2cdbf5030edfa42c129bf7efa22ecf8b2c50d0b2e6e7c3bbec34b609ddea036ede43e34ffc35a98661a78c3f29d07aaed7df7d8a04e53f2484d1c63b14644e134704dfd643e9f87a1a60e0a95591a6897f38924ae27812d9ea3baa5926a657dff1a5f2202e781270f8d37fa747c9b2f71767f265a86b3e9816d0545cff49ea6b0aa9297921637dd928ae528c90124b0d5786d6b0e77b1bb6f49fd8e0799b98bcdf6d39efed155c8b29ecc32547327ef733d644ae279b4ceda0ed406fa5a55f9cae0f5c97dc0bb12b112a4d2b4b24cf7d78ee1a2aee6aaf10c4c311278bf521b3431d9177be5c6bb414074870c56adb807331b640dcbf15d1f0e28beb419da866eee0581f25aa8567fc28dc7d8477cdff4fe27561519df585073a47e544708d80735e086c6f9cfce4531a5123d1b8071f34168349e4d35f7cbd235b92e9ee34bcf0e1f056dae77af055975f97f9a5a8880cdca6b1eb79407187f6954ad5c06fd5cad5ee2a5e4de17ae0d9a58a614a3dae0ba03bcf8990e47b548d94023a436d3066c34527af538aa01f62e8581c8f824b9c25e495f565fbaa7c11823f2f6b25b672a742626ec8f044814fec20afd555156ff2c16f1205cc4c5f0076db3f8f6a0b4c814371e96311c43c2e6fc3aa811d5bae3898d7497199c8ec0060546cd6facfb27138da4acad7129917d4affb94456c6e4842725b78b410b6b56a53b27f54792dcbbb9f32d7607e071f09e105fcdb8861bf5e452810f2917c73fddfcc8776cee79fd7a8711af303bd892d00d9b757a252c3c53dac6fc7223f6d480a277c38d6d836542761912a1181e9043ce70025ec14c79d01ca72f93d12a19a50a8021033ede24a361e3e152f97e9313fc3812a0787d61705365dfb3c115eff71154d1145bfbbf1185558aecba14e669b9a354d2fc9302904b13a69d1068465b3f969338bb7e5f9f819959eb1e779f04dca99f7a92cebbc668c5e8cc416d077ff12f4524e959cad611a8c175e4e9757a9ef9c42886c6851bd684e6bdf4e94d82e7b3c909b108174b8d0b1042a41028ca149caa29763ec56f2964fb3cf6bc4d8e3563a4ad320aab53c80aa41307e9942b45ec8dc17758750bc60d413806f65cf5a5ae12ba8f839eb8d4768c1fd86e64f1f11c5160b0cdc3ebebd8a4dfd19b8bf4f0325c2d23970fd25f1b6829d648a86bd035649a2b2084f26cc08506a7fe12f57628524d01d84be8b73f7bf6c8d030a617bad843866a430060b325b0cc5092fd6e98e5df5bffabda29bebd91c4bf1535275652cd7a7394ddfd0fe3ad8053a3db3dc4e820a77dcd81e71a7081d21563894234cb2f8759e1b239350bb9b2eddfafa555571b642780c8671587b86b64185ca9c3107e3beec412ed6029ab679903e356d449e4e8832b651318b7e6367462c0297a31159e9d1c0d2278280bb92a65ff6c946f6991dc73cf60fea144c6fa1026708ad9477831a2766db8bc80b1607bbd4193d7901e1a824785bc435fd8915d2d55c4397c2e0b6a9bab6f9665b27253e492b44fb96f604c16b3ef21da9d9c33c80e1b8e2fc11c53c37d7f465c44de890fb65a7194b8d1f348f3fa35a0df294ec9fe1639ef96c33633ebebb44c5e92b27d199d9a0a339ca893e3073b48e92813db2c7e572e0f5f52c1b5971d4ceae3a81cd420e2750e58b16f7b0914c2ee61cb239e1af94820a9a96c794170fd1397e04093792241d81f3df0827b8369277a1a139d723c5529bebcfd40a9d168dbbe9613fe08b28a8e98c317a6bb1392aa39e0203e1f7de6ef6181f96ec520b518375a362344b9e08a43c374cd2638e52a0c1dda322dc46b3bc9c1120d18793f96f0e911102312f6e2bf0b56cc3c6ab6aaa8c3bf7f61be3b1f9e410e540de3b0084f35ef7f8ce7426ed3713687bfe53172e7e7e80a409774fa1578bb6cdfe9499acdf29e0af32117bbaa40f7134d25c23bfa322b0279e1ec6632730d9768f27da21ff481f777a633a042c223505c263bbe5787388ae3cbd95ce29ea5ca08181383fcf77aa8ff293039670cca4a64afb79c786cd122dbdf960cd3b81b862a7473d72342b8f8d8c46d6b604245d48805640dcb423a417e619ec3ee38f4bc557a4c700f4e5df3a685ede647c90427724265e2473fde973b3cd3c0a2f79659ab360f3a051050ded822bd8ed4edc218a893cdbe10572745a93a6 +result: fail +shared_secret: + +# Private key not reduced +private_key: 24ffa309696a69c78a537fb1319ad266a3f1e556ede8166ebdcda85efd6f3088fc29dbb0ffafeb9c7c54eba9771d7b52887b55860f34deabf96d9f5420567fd327842bff6d0ffecc1ec393507c540f37e84f29734075eec6bde51cf385ba7a8b82156cfbcfe4196333397d8212364997ba39755864b368c333397bf04f609f5bd9c69ad96f086ab663da3816c35e6e70b5bf8479e39f3a5c62204e98f8b8ba5cab50194bc8491af27c473854f9ab021851eb1a405dbf36f8937723d74f0963a67dd465fb27f489c594d09e517c4cddc20c6bec78ca1f5f373a57805d3da3b319ac204995847cdbf1286cddb73f7785f2dde85b44ed78c74634408c5e14777f74f9696e2cd703d9a222fd459204f28988ad5dddb43464ebe033cd3a28b03adffc77ab9fc1e477e6ccf23703610d4d76ad3b583ca4d2cddf6841a55074ecf7ba3981a965f578644895f8f79d0fc39cc8c22eadb11f16ccfb3750cdf76c333ac9989af3f1bb330317e8279582fdb578b385e2ea084348bb52fbd63c365951da4f84694ed8223ed106ed600b67f3416b62a72c92c8af6642e7c9c66fbe22bc9b5c8fa16b1dd69c1d4b6e359329ddc78bfd4bb337415f6ae4c583d681e3c323098f118aeff85cba188dcb8f5e690d8a8565f9739d15391fd7b6ab2d91a828a4bbaa45d80b568fc59c77375848cb44d6f5a76f36dfbd06f33f08dc402ff9992a7e852eacfc9e8d293f4c9445ddec894b50e73e095df6bf1f733146bc4ff3b7616ecdc27470062e7517acfdd2ba84db17501e4ea16dce83c9ddc2318480efd5632e73db6c36e2f0c88a935dd17ba431c5a8629107af4dfd8615ff4e458d8949e75c283ab361aff66af4eb66d67aabc836c7364525ec4db7ab972d4670a0fd87636e8d715da3c165b21c66e1de2aca9de5a6d826c6441b4894f59bdb93690757461589d24feb4531abbe21dd410f0fd2e7f35ac3e3d4378971df8855fa9fcafbcdca7d8cf77907d071cccaa84b3cb32d3a72bb3d7f0c3e094fec7bb944a5ae9fe794544c38e81e9fcdbf6fba9c37ddf5d646e2bd5adccaa2835aa8b40a8b184eb10ceaf23783a788f36a3a9cd0eee9d1c74b95b009a050ae69d9ed512e38f66d3348774c7248d6c7122362661c5a1156e03e5de621434198963f26d3459c6572b029a3828bccc1ea35be549bae3ceaa09437416e492636989bc8528d2a7ed649c1063ae0c47fc7635a4d0155a12c8fa3656a491f1d41fe25522ce39ddcbe44a0ba37dbcf8608794c87743b8884b2fb2cb2dc1a37fdf347198e3ab58b8f74cd742d2595802381748736458a846dda95df27408434e1661853de6a8c05decc31975a8b8b3f676c4636b6d6dccd906e2deca7ef90d364b4a84beae5f461c67ed0d5d48a93c5448d1fc67db3d341664f2f2a35b59cf5a33974633d8170ab80a95780ea1a4e650c6cbe9d755c19d5026a42d51de612289e7a5ad170b9907d689141138de456dd143744b5e497600f7d48186161458c5d05cbccba6ee4ada88135b94d0aa28db8b6123e783d73f24fcb4962d83ddc39c090dd77374f340da3e25e83bb31838e787afce4aea68b4d84c214b9f304ad8e5ae3e80bc16808e25b378fe5dcda12468b3c24ccd2dcbaaab7bb4848c731e68810c9f342b77e6f2d7d5abc7b941e8d038494157df49a3c495c6e7c35ab97ca1f589c76313b3cbe21a3ae88d9b0e94afa24d8449b78e6c1045760e7ab5b37649a97938fd4317f3984ccd33a0c6388dec97f4c0b685f536a30e5c06bfd72f7cafc12acd5df5c40c7aa3e633aa44566689008506bb9d1088e72069e6df72b97eaf79ab0d5c97a483f4ca8f5f485679cfbdd15c981f26d5a86c637fae3fbdfb8d0cee7846f6cc52df8475b27d3178e5cef46e37c2378eaef7f822eb5b91f3a1ff6f589ebf1099edcd46db1090e8f5d67bfe36ac51caec56485cd8a88918c07d241b39ad513846413342be9a3206f691e3fedf49ce25b28f9536f90c71ca471868c6df5a5b1a5cb1415fa46f34e5d6bee281f51427bc4f703f59d3fd34136ed102b3197a8f1df6d610fa3f3da76d6141eac2f34e3ef97730b0a38e436958dbae3a50de6cf96ca59d93bb56c58e66ab56ad7ca707a44cc29d1e5866c3b2f3831faa00ebbad438ada9dfa83be4ff18bf6602708fe26c68b1ba4659966cc95d79851f03e029a736c3b4809f9c366093967c53769b4796ee76b4f1277f1407b8c478fc1400de6415c2a231727303c86110af4b743aa85b73e38b41b819021b07d1ed5c6c171077e9c9b6a678d67b94958c66921e9cf0f573585bc3b47323f32979b91c411c9133b3b8b03199179c6f457f106be4201bcf2d142a4814c5e166c17680fdb2a1296890a89c802120585951a9051fccc4c42001346c9add97f93191c720466f95c5590b0cb8046a470cb50a3716a063135ea4a0219217b4d373efac8625ef44e5c0761bc0404f4ab87bd8abb068c07da5c832de7530be88532fbb5d8eb5c6023a5f0db1aee3a50d2864601a579e6dab597d6cd29208c48f075d42c6b27aa3c3cd837e224bdef354e20168c03172a16973224d50cc0ac7f60fc9b0afc7f399c29a9509f9bc3abe7298303db253dc04a69bc873e874a43dc28fba6339e4152e4399a3ef1055bd81099b33a5087b816ccc668a75bed05650d37966d058d6ebb2b3a819218036c2ba064ebac797c671ead151c121ab88f6c9395204e714310a8293c64bc9789864f93569ca043b856c8412ad985d8206b6e7485f1956d7e616104f720e76459bbb0c874e45479e67233137875c82dc6509cc124bc184a3dbec02cbb08b989103fb59c378670be58f0a96a694d71062e6af424b6745fd9130beac38d297a5f1ac783ef064084b84aa06ac9c2680e8db2487cf43bbe6b8574311a4bd99d733a1b6a751f68401938f4091d25837120664033770d476096e561a1b03e8cc878480a015225cdc1d0719be196b4aa94074c290590988e9b4a4ebbb4b3e5477483cfa6860219237924641cf9a2a7a1219a8a87bde9d08166f0c3081297eda4737d082ac5617cc7c36d428b9dbb7237c122676ce932fd01aac625b5db503a8042c0112714eb43370b5b5bb0d53378a5b6f738c874dc7a7f1c15987c28112857a4bb4310788375d9aa0e60c59958c7f0db809f688f7640805c334e9b1aaf78761d5107c12618b81ba12a1258c4b0123eeb570ccd9924084b7ae3473eccb429ae0c7fc059926f25542911a8738b0186c404f2f107716b5d2e228f91306e3bda12a9b281a598c52228330ef93962d085adeb6beb1076969844e1980295964f9f115840753c15674c86119909d111719182f880ad9ee9792bdc128a8c4df1da9b3cd43301037b192abdc694099bab87441113c77a7f7210764cfb463a96c4007108d4537f29d4859d305987930fd4d94c796cbd55452d10e9b8723a6165ccca8dd39741e94418812291facdcdb453529960d850a40745a022643cd1cb70ec330a6e190ed04963ee28cc774198914b5bfd7c43c6614007d49dda88c1d8b42e05a388f4db09ff1a394b01547155c79ff4933a28568e172133515eafab53b86a078a1a62b114b9977465342a61ada1a20c236d3778250eba35f8d36ac0d58c91198d4974610181bea1cca0724061976a7aaf161afa1b111f0b0e5b835ace9ac1fda361048a9b0008096b41bf7c619af3299c5abb04499c272211931f7b6528c17d5f52405097afe5e0c6ed2aa2cca7915fcc2543b4c8268256cf49936a858f7401117b80b18b081e08b45a0e828bf830c13fdc55fb468d99e8107b93616da437b90a5b52896330c53cf3e28bd3799f65f28bd5f0406638c18c8c9838c555a9b015dc99a61ac330fb11654831571fe667f208689d1c045517af836abaae37184ec603d01a918733362942632644b9b3826ed0967e6db05a6e3ca77cc1604174a2aab6ce72fb1eaa31480e235be79c1c25832ccef512e6c65261f2c485cbccf4062a81912abdbbb3c98c5a6912388a236161e7b8283965536908c0145bdc170bec33c5b2e437628b452aaba7f3ebc8fa730147469d63eb8294fc3cc9096781e58d0ba64d6dd6837812b530e9077a5c5648aa6cc024069150c5acf26d3cfa2d658ab18b86b1eeac4ae2422d41704b9982c8db14bc53e0721123a209d67999c9035ea07f3485ac50e35f85379396c620ddf159c3a4cd57fab15b53c8f2e6aee06c6f2ca02f0d99543368ab70b9bc3f655830d7cb47962d7c3789ddc893ab0a1ba3e1170590249a594445135aaf71a902d9aedd178d88d980345190d72b710ba08077fc868e86713be6bb45652a26c73ca91089040322801b9c68de70662248670f323f4233c1a3c0937dc86f0b6476d12f426868be1ba08c74eb9f3d9296c268dcd23c66bf0250b222854a5c31830b7431ccd3ed53fd36b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a +ciphertext: 99ce600c4a66fb31f655570dca9daa4ad7c548a6617019fe7929426b3b0b0782c46bb60a9a618a41dc2adb77334e9e20b6fff08f9658767c818b415399c26a69d110f8a36406e1b9e4f18e79dbe98ef3c5be1c71bb9583e94a4bae18e786d892bec54bfecaf15d4ec112d034658d27ffe26cd690e5665ec07504934029eee4314f49ccd9c73747c089ca0744b2c43298a17ed480859ea7f3ce9ba577c3da53c84deb0d34d78b5581e76321b895697704dce1e36f30b3686b32cdb20c8f865b7788cb93459913bb3a623904e51a106785dbad7471e269c333ae69990e8bfce1a8f38ae3b2d5dd68875e5abbaddb4152178b84f62df313d6bf7e4c8dee49c84eb6571585b9b2b1aff78e5d5c2192ffb0600f3317d9a14217b45edfbd6af064e9468fd2838fd83a0ee27e4fe33df64462e5fde462c3ba7710b1439a96f4c93d14a97dca88a45151c4ad8bb7e400990f28a4b98bf6a4826058f87af51bd1901ab37e4a7067e01b7ba1bb65ad6efce8c79e35a7dbc707f64c7eed28a91976a7026a1037e353c2e17753571007ab7b49caf80b1f35958b0308aad971b0b36ff5b95a290c1a0e2ce9d299e8cb1be448de63dcfa467f5067736bb649988c020b1e2118633260e02d9aa0a6640fa15a85423c7319adfc43ed03ed4c0f7fb4a67ed3ed9ae0024acfb75c7f421af32f9559fe95e261d5cc1df7da8bded18b1f109325105a59a3ee04d1bc428abba2a3411f6220e51bec19056d0eb2da00f78ace86ce7e22a525ff0d8f0aab674174ad1a1975f5ed0edf8767733dae428d9018155de34665090952cdf1cf93297dd65aa50ea2e7804536f4037a819ef059423ec0d235cbf71b0c870c6729ac1241431c7a9a9300a9dc4386f6d9864e3324dbc4b0f7357b98b65d489fc05c32302d8b8f33cab4dd01e1426ee197c2fe4a2b79619fa9113d92d15ee3df01c31fc33a0caeb2d7448282bd56ea9675b56b34ed39072dfd1481ae524459b6bbf81d3acd8bec34a8fb3acf9100c5642b709dc8e6b8c90c5a85e975acb13e9ea501301bea7e9c2b87ae2c4217e4482c3ef609fb833b0258505aa7f0c65963b60f1a4500eaeeb1ba0f6b46a0c4b58d28b16d3b86073bb977f72a1aece3b05b4662448a41362517da77694802bcfb1c2b413321fc1fc992b7b09df003345ffc0a34f76963a3cadc10610ce18f7a89835216ba09dac2f0a2731f9846bab78a0edaa1ad9bd6f63d4a43143b31a846ce138ff97590f60ab7347fb272be1d9f35939221dfa49d9ea311536def8020bea5759af8a6fbd34947ff6c812076ecd9fb45ae16b69efaf9ace46c9ab1a162490f8552ac273abb174ac4888ec0db9957fe3db777a2936291762fcdbd52e0eb55f7787225ac8e0ce9dc89a124d975177404c6a557692bea069a87f220a23ed09d24001763b37c3d0e3fe7c981beda9c05a78d14d6fe23c6fd9b93b45274c13c286d8e4034696382f3517002a564f38577df0cdc2f80b323fdf0d0df3bafeba4ad6b012dfcdda8c61bc4d60f6f635fef5c3a74dd73c4fdbd2988f142e2cad4312c4431e2808e41ec844f736158c23e874bee4b2711be9614e8cf4541538186851696ecd991eaf3c26a2e88648e310b35918c27058303a6f9ffe23cbc189221841299178d54320aef48ee89e7ef580609a17dcf8d31d2e2b082ccd6cb374198e06239db17661614e551621219900a778019c8e69a21b0e0dfafe27bc2fa3f28dcb07697fd402fe0ee2414c8de7086b69e1135c6a8824ae48e33624add195ff04077d2afe4fb79b24155bcc28948e79ef03c7b5213a456765d7b7f3e204c33b73eeb70259aac4f92728eda87ae7676174233c3d7ab43b1c47e77506dfea9bec8b5acdf0dd6ef8fcc8a8ca8eed48db06c367f9be106065f75bc55c9bb7ff972551243148b41bc54ca633c1564721ba98e151883847ba11beaed5ca969ca174b3651d86e14fb765e9523201679b770aedbfbcfed91231eaeb3da9d76c52b2638f539e80df8036f5c0e4b14f01fff3cfe9562df159f22569ac29190800b514311d965c88ede61188ba079717e213254c6fbd3fb2ac9922fd923dc3543210506fc41abea6a6b26c62ab02c5112df3e3643a914c1ec0fb6e709713f5e697f8dde78619034bf0e52cda5b626d5f1f4ae6baf907e3a3ad9898eb13fb1fc5a251eec7d039ce105bec76332cc00dbb74b189b202721ba +result: fail +shared_secret: + +# Private key not reduced +private_key: 280fa72d7ef96867db25144125a96fc1e89d964a96ca36dae35dc7af8c825d857b795396e4eb439f23edc9f36cc29db8ad3a385747a83a976a0e3662834662ca8c7f68386486da8663774f04066d3a04f813aa6c838daa96293bda3fe7c4aa8cc26b5f348ef90ebbeaa1ddcee148fde83fe62a23bc001690cc5ac2c4a7d5721e64508ca42aed6ff133eebf0b64550c359b93be679db9d8efcbd70f7de95c34f03c3d2097cbe125de496eb57b79ee192ddc333a3bded3d6a98ef1e51c7641687290553d7005a52426d9b85f39e43abe45a4e4ff1ccc421e8417633d736ffb7d1b3746f8a5431d6061d567cb4370f82e540cdad9bcb9cf8c364fca93f2d2d56a702df6a54ae593a8ecee1b8d8776b3827b5161886aa4f9ed6ccf6a516a757a353f6d3df0db3bd90a83f7225f38f5eb4c91594e555b8b0a3680ba6b9bc0589b5f9e600db8f9205395ee836deda787045438e657830dbdc6f82379795a72f698c0d82d9c85438c939ef938c65407058985184e4809da3f6439fa158749696c1144a3376e445affbc41c9a7a32afb74bcf16e3dfecdfedf82488b503fc011af3f35d9e8ac8c3ea89d6219fc85f67730ae1f45023dd91a4b8b53f537908eb5b8bdbd85b486c6aca5b5435f33f8c38ecf55c9c4ff1a29e457497846ff91fbdcf39de68c1f6875a445baba0951248f65d90b87f73d5310fd89967b50a1e7f2ddcc7bb28d3e552463b72f49b4454096ad903ebfd078bd45214bddb895334086ea869eb042fc885daa8a8c7af985836c9109b827c8d4ed6cde92b568b32e618efe55c1535fbc1f8012dcf7b7aa6a5a46fbb3747712cc693bdabc919bcf2be8afe42a76d814a3362b5337853828639767bb7fbc4bcda6988a7a933f68aa3b3cb7badecd65efa98da09cb742ba3564ee9e27eccf6b68b94edf8fbb45e220764bbd88eab884956a865bec99c222e5929594feda25c340a45275dab5173eb24bb86b71afb832fe71cfaff2e45da70a1879add7dd87888db3bec540c4666f7641ee36c30e733ae206b087084fa3bab718dfc8761b78c20a31093ba5e933f98ac59cfb768c527a3aa5de9d200f62d6d4bebd4e699d25fe092368ffac3089df488e7be77b09d5590f579ba973b8aaf404ebe7df25c546fac73158dd180a519aa3d9e28a98fe3b521c978df1a94aed1afaeab5b971c995734e89afe7b3f90c5b1563a91883e1abe681d61834ffdc8a224f871cdb48097af5c0b3e5f12a627314f06149312a4c647e1d59a1f559e6aa3b502fba01bcd93667e8763a720d94506a39582e74d0d94ae9540690c94c9afe1c5df5b6716ccb4b80939698caa5223e3a3b3ab17a06a8ebc3713944656a75bc95599a67744bbe79997c4e53182372754a9d8238926b1cc239d5942f6dc1b5d85fc08f8409bbcb68f3de8928dbf18d83e958e6dda4aaa63f67787880b9cb38e48e585535c80ae47d226893889b5240ebed82e9f6656541f3196be9458a1b2da5babf63bfd6d670d6baa7a8e672a4654fa87a388d4486258403c9b0dc58d54e4efc5269fde43a41a3a7aea934a7238e807d26c10aec91bbbbc8ea75b2b225d83cfc94a12c61be14cfcb2b688b0978320bd26b0a60cc133c709b9d6c1734d5bed0d45f3f903dc78f9647808b6cbb9d5cb4da605a2b3fc3a433c926d89304c868257bab174861a8b57f6bbf6b79ab55b3d44be689a9ee9f3d598f7453b3a72ad6b29bcf3eb3819ed35d56b74a176cb9bd8eb9ada4f50e639c17f431b1c856b02c4d6579417e3d4f3c8bfa34579b6c09a866ac9d871acfde03da9378d2605ed9240372feabc2d17a7e8913ee67a74b68144ee1a871c8737feef4b9c663bcc9b4f770ca4571a9b92d6dad14f53600dda0035d9f109659f9bfa5a83ab6a1d8c3025c38ebe6346ea5cb11e66d560a9c656a61de98407c23db1094c391a879ae7dae5decfacdefb42ccb378b9a9997e6d4269ef30e6843e70634d25ca676ed99480f759147fe50fb42a28cc9c9ee3693267305c89b7ca4cfcaa3eeb1f6e37f6470432a55a09ae83e1e87ba7a8f78e6b9608740025e5ee15437bbc8e57c48faf174e694cfde2eef5cdfb7c4bfd9a8045e7fac4ac6bba6d378fe7ed8abf16cd9feda8bd8a8a5d5903659b94552ed2433d7d6668c2f608179ef4ea558f3bd72af6c50f1421cc8e1532bc6afdfe7acf2a43b34130fea7ca5b1409ab0f10dfaa5a5f0e7b9a62006f1c53e82b5c7ea427009c990bf31a939ea2705630164445715bc5c80b3906739c46a4c4cf1024776037bcfb0716d1ba00110637fc177fa1768e73cad8fa4777e13aac74338513c516715b645e3bed722382950b132418fee81639d448eabd55a94c66a34eab68ddcaf1c756a4907bc3f5115aeab5320f3b9bbe84e0d885fb784af7fd8c1eaccb37642cf39c8a24c4903a7e80578ac7e9f2a95cd806caa200e23873f751636cd606d819731cf1b812afa2ed24381a52b4f5fba658618a02e0418d6823e7f418294c81032936559a77f9c014d8a3b38df8bb17b7a8c3b45b53ad60b0d9929a21a4ae3039366f894b1082db5f3cf2f13381d53827b5a568fc5234e099d6b94bc1a013ddde944b4ea13eb52bfa880716b1a10d8827a033878986155b7f2944a63a2cc32bbd61907125475bc09b0ab76222cb4c9f2e80a00f9b71bf9705e3576b5a96f6229ba1ce06fa1b2079cf66c59f30dfb88c1f9412b0b2ac059dcab8782abe57209188bb938d08bda140a0eb08de0db3f8558c403c725a77aa1e0563a54a77f32aa30cb780f4e562716075763e9c5d470564ec12cdfab424ba970c51201081193741a5e358cc7d63064a7183d99b28ddc5b0f10374ea9710193385b855a259130bc490041f76a9d661483aa668aace51c616804b5e7c1bdb8762b73b39f17785af94b355b0fed72083c2b71efd1cd43c1a9704a93e0e5752e99a2ef115b6ecabc74cb03bc091038f5701659a0d4bc693805080d6a5c81a0273be9149861c461c47cf496cfb22526d3fb8ba5a3396dd19a8477611b814b76d5c8191ac1c8190ac3b12065ca4ccc879d5f34bc4479a5c8d4693d8771b434c4b8e8b8ae921e01a131e9410ed11c505d226722e011f2073b0db34d10c104afc2656dd053e43a8db7c00fe705b0ba520980dc71e834127c08077806cd8e82144d50448dd59a085776dab69e42db0e7e8ccfc010a140b50b50e09f233aacd3da972aa40f1d1241d718b54b6009d3daa090186cb167c1ab3979c8356397e598502422da2935edd9c8c44b90e8c50473119d26e99575c0c328307e2017b515f33d4d2821bf341480780b21d37fb6cc3049324eb12a42c9f7c9e086bd0f39a1949058f1d8c8f0739c23fb1dc542429933080ae732b750af73b05df6b46e0f27b678668f9450c193c861e7e38d65e5cb05a52f62b29d21b4b33d34771bca88b3149aceda8553c5813bfa6f8a99c656601fd6f4ca7e54cf80e48fa144bd996bcf41e49aec97734687a7d0da2c71231dd841c8fec9a8fb686a7cf81106b16735d6559424c1ae7a5a5f0515a8074bd879c1cbd6012a3b5a7079bbeb6229de7676a876c02f1620d04905341c95ce512d20c4ca11f7c08684473a31313640760d24b4946c0268c108a8b96f699634414b070444480800c6c3d4bbdf339c47e9b1660b9ea039bcc6836a6fda9489e76418047eb3e99d40aabbdbba140221333cf1cf2bc121318aab09022f95c31b12abbe67469bc34ccb88c8a0a965902e47494c7a0bd573910a97377b764ea7443e73346ef9bac0376711db236f89a025d9b09931aa473ad04b351a00c5d3b969134f03c1745f672138f52ba47a542942c1078892ca3b9509f435d8521a373810b12393c8eab18fe7b6f3f4ad7ea88b88b21db46338adac939040674be52e6c2948fd659935a86691f076c7f228bc5874fb8214ece1947f68b057411c218b776a332f5aa351b4d92560a42346180edb08bd57f5342773249fcb1f036955da0269695a712ed852a35a3de8662966c0b2c2038ea1ab7b4f9708c5849dbdc6a29e734ce8db1f447109b755af11976b73cb6c8594a5de221c44b61b9d425280007ef4ec4ce3b34beb733cc73a1a7f6857218476adb0200d96658c8456576666b6d7c06da03663191e649457d298b81b067789c285af151ff4b97239c35ab8688a8d6b4469fcc7e42201d5d57bf3cb98c883c5c9c88f05555674e7a1bdd59e3f327b69a74f0d4a250aa89fe1359e5724ca02c38784a14690c62d891364b752ada80402128c623d0839a0f09bd0e6a37b724070a4356641c538415f2a97701c5492d29a2f2823884496af9dd06703d8ac2c17c4ddf5561590b63ff78c4995a31a18d861a91c43c5dec3705c6112d81b81555f7a3b432f37e94def940045d3fd9ddec0289680ae2f96d9d43f5d774a81b86ae7a4761ab275d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 +ciphertext: 6506597d34901eaeb07e2ba2d0a69f64a75006df37ae149cbae6232dccd9d62cdb088a2c55fa3cba76155241aa2827d1f98c5deb271240a165b0cf64d3b7584fb580cb93f4f717fe7b50c30e52fe8f9b1487baf0d745678455096949aaf46402b8bd5f8945251c0ec00458e6c347a123b47350f5b35a7c42f0d1a744637e7f2445134eb74949e95f877b9dd9c58c3ac30ffd248e72a8b568891d1e70e0d12a8ad0f50a8fd455ad503a901d82ffbf69fb75c629a9f6a689de28ba150eec51c66dd0d49dee6ef4e10d0bcc202420eba18a9884fd4261ae8537cc90a6d3d3cdfc39415151609e506f789d7430cdf4ac700a101b40e0b8142dec62a1c9cf29305030588d21a01fb51d6e91b848c198fb37f2489c7139882f032a116ab707d019330953bd8698ff5e54e34821a448a891e74fe2d6971a568d416295906a232dd1dbb5d7fadcbf2f765ac035c2df1298e46683be665cd8f8dcfa6e4b7034b468e0f53e01ec07b0622c1314d15df534fd27db47ce8b18c88ed6f04231db94cf59889483b29967c56a7fb98945cd3ec21ac881675f36593cda7f20433b1c7b2ce7e841b76878ae25883c0e579a6b4f848aacbaa55fe1478ad2a2e6f1893f7154b53f2ea3aa8fd05cfe05fc921852ef372ef28fc6f9a865c055705e4770b2f0e0af58bbf55c7b3c8fad039be3e9d77219cc9f1883a3307641aed538368f96b7f6c34324fd659e2981bb1ea35085c076853b31e8dcfe98099edc6f78f31a90930f12b7a02c655c07712d94470091e568b724dba0e53e8c726eac8018fbfd95ab92e5a8ecf14910bd306b6de6e6b4c95dae6257c0aa9fd8342fd62b96a58322d559146299e9cf70f193ad3dff5950455cfffc2cfbbf21f322ee48305aa55f81c1296fff5fd2cd8a4fd56b40a6cd17d2237880d08359ec9d1950dcdda8997db7ed75c3700d2b896bc84b6a52e0189d1f23df4d0b522c474d5962dde1c7a176fc3a3a2687d732bf7c4597aaf7258f40965d3adaeaf7846e3ec496f39ac1eb7e20f95ac719f22802ecd32e1487b9d8618238cc23ed2e3b9e0d76ee4272de5bafd3190e7d229efb57451270291ca11a82ad0512a93afa24827d8e6d7aeb86d9bb021df121273f424f37d4120872e3aa40974e1ab9cfb180b1d3795e35659cb77a6748e2c68c30f617f5e26b11d5c31ecf56d8365df6f6ca6b6eaff107339620b468e489c2eb03deba9fe98108777ef9397ea0ebdb7dad462df11c52456b0bf2f8f04c7c8d1d1831d99d9596d4e65dfe49446dd91503d909f04cd04251af58ce187027fb587bc9dcacc90145b7b0221a142aff0cf0273d45236f86d4bcf1615685f7cffdf96c29ca4a7ed8ed3dc0958cead9dcb5095fb96fc3afb7e950ed9f2fa342ee8335e32eefd5b932d3859f1408a6334b3266259c86640f8e0dc41f1c7bb05cc7a2f9d480c372a854270f21f13329f7b6e4c711627929c9df3381578acb54a29dffea14280cf4d85829d1289f4793daa4782538518dac82c44e36dc46dfa839ae7673c6388bde9842abe646177f92b4868441be5b82bdcd082a5f2cbfdca0c05ce14ae7689463ba62e773c1bc3d9614907dc86f2ae02fc2823b23000845177a0696a89a7a0b8f2ab01f2ed2518d9b20c73adebbd40708974bf59adfea03e0461ebba4210b31056885a88227e4b9e775339c2500b509e5a4c006115d368e3917cc539e855ab51c286fa71871a2f7c9d42ab8cbcc5a39976483f1fd7524250245318ed8edbaf4e07d8f7c7a5a0e34e0aa7f5d1cc2da7adee0ccbae93b3a723ee56657543f0a3642c01f13f84068856b331198ae9ad6badefe2238c7170cf884dfa96f4ab86a4c99903d285346575f19e8e8319a284a7f67d6f56ce78c5343e2bd1a25a52feb56769e2d1041679696fa45bb8d5da89e5f55844530d06ad5e1a2771eff0359386212d3e0d1109564c6c9176613f9bf2f994e7af4873b4179591b583eb3004d1c8e6082adcc155b3b916032b8a2a1e52907384f16af21b6ff4320c617187000be4b0f511c56116c25508e29fd0e76e6f062bce64c8786a3bb382835a970c2741be8566d1f7ae3489b8a79228f0897a85d60aff154596249143447db552577ebcd611a63e3d92dbb5ac57d87d9a6dc92cda84cd008d266c481b2ebc3affc084857ff44bd3e04d9c47e46ea8580ec2c0eec6f4f1b97bf4b020fcdf05e6cab506b9e93 +result: fail +shared_secret: + +# Private key not reduced +private_key: b31fc7b33a82755496caa9b591e69055af808a6faa4c7d3ff72b8f7ffff06f4a7cb87f62dd34c792ed95cc059b1f0da474e5b60a3a8b2b77b0b6a349690dfb67133b5f93c96e94657c8995afbfc6707ae361e7370b8d72ad47e3f56c6aa33ce9e44f78fd2c397e84905813b10fac77595a624476c9be6ad6deb9f7614c8964c9300f6cc7d0e974e334540c6dc48868c8fd99829a0ca97445f2cc88b6bbfa77b953fb9c373c07573c5477a339697ebd8c4c2e087fdf7fbf827bd01cc7b3d3f7b05494e93fa38982f3ce0498e82f59cefa9fb82d6d392198f9e4e4b1c554a9aaaa301f4733c064dfc2c7acd2ae3da0adbb6eae8f173ec5ffca65bda5e9fa454ca77ceb8f5c8f4103749966eed12f52e4f4d8aa45faf4155a9da4de5fb964a68ee7d35d556cb9ba2c888cd887d83b84f428ea6b630df18c96fa39dc6f9d66719666e0d69a54d10abbc1238931777cf0bdd461fcd86b26ca2dea34e88565a6a89bd2ae38188f98cacc938135ad58cc98fddf98524d9a3e93cf0a37df4d8779b5f7aefd2e43e1ed82e8e8b357b84af73d364538b19b55954edcb3f35da2a53cba0478f065846c0323556f154b97b7973d267c1678a02d2bff168977a24fbcd59f509b46a6bdb7f2566edeca5fa50bbee907c4fb62694f978539fdedcc35079a4cde64fbcf5c46737c2264d803d4a04f54824ac381eaa5ad5cb5e568a8c25686fa112ea8c56e42e0a99f16db9cff47e317d6d2bb08b275269b3134e1ae849c2c39f85cc98d1244a346497ff59c9143a3cc958eab5ad8fccc86c2d395e2c0adeb97d83b518aa0812aa2c6e3c2f8da9e8ce8e54f299fc8bb52e9ba96a4baf64f8b828fe783cb4e90ad4fa56a97c0e6d88ed658b6993399e58ef7040a44aa53948023eb4863e8ffe6a59867d13acd6ad4054b70b6991fa4b82e69d18b8af06f5595e1af4570def2ea98f8fc3b75744650b2bcea258e33baf7d0585784a1949caf7c58bca497b1dd356a1f7c6fc88b417f68cfbaae78e779adff5e9c9767bc79eeb0969f69988d3af98ffdb6db308a789b8c985235c9d694c6f1ee425dce782bafeb11444e54e7a94829d21dce899439a753a677913970f57d854966357569924cc5ad3f3fe0b6654193a4b2f145782c9397c2c6bf90ce4535149289c9d4a106f9a46bfcb0e66bd955c3c153baeee3fa7167306707f730cdbd6385c6cd0d793528b9d01feb33ace79a157087864f71df4cab938be046cf3f4d9e01faa10e56d1ae47b677b670b11ba1edcacb5b39f908588554a8b9f204af841afd268eae916652db5a71e378f2a37b6ffdd3664b9ac253acba6197f11866b25a46b62853878ba777a5156948f5fe014dbc640ef1644a8ae466591986acf6cec41b77b563af504c15d9b51ea879997491c9c25ca38aa3e6f250ca5267854e1ee9554e064b4b6e81958c50b127d8a348929579ccc099531a2de1fe0cdd6b2f42aecd9ecedf9d1de974a2d3497e9d4baf5494d4f96ef5fa8e86e45fe5fdc79bf3861be98b7187d93ea3e2c0f77b89ff3fa62ba2c6f9325523ef23e9607f3bb54c8888ecdbfe01dcf2c0ff384bab57fc2c62a8d47f7315eafa5ec7efd63c0f0a87d294604038e4e866d2997a765a3597d5b9d99b99a37d38e7e827b76eb4a2da36f2f516364d5f5c69586c8e67f9e43d9925fbb3f9e867185d3d0478ffc5d83888b96e00bab9348c426ce55977a73c40faf3160ef3e724a1735f317a05e97c39da87e6675e7858927d454df4b801df546f9a33a298f56669c09ec63e49eb755cec96a64fb49fdd365e6e30f02d51baadc42c675302453ee7ea854d1e84b446d9a1bf5f30164269479e6f2bc7a76aa758db970a2d4739cb3378dac80f54c665eab7ddcdbe9f8e86349b9f2e2bcddaefaf7ffd3ce65c62e2d798fe588242f990caa7650b5ba55897615a85ad2f9690675ebecadc7b53b38dd74962d7e6cc79d68f7b273452aab4f7afd18bd6ddc626ee36e8b523b3b349f6666f4583855998d104f09343e94b567b9b3332d8e93fe30b8e1a8e3bfa0abaed74e06d147495a6abbb59d9e7bad6971bfb219e4c51a5c6f1d9894eaee0397ddbf32f68b58ac4d8b8bd08ff4deadbe737779cd5c3f8e0cf51577846131392d8533e71dd74fe5d841698bfb584b621bed0b09ab9ad6c60822a87a132c0b9e3c13bb45e2eb5bb47535099e37019b3c7ac3b81c6225dcc65476fc12e7a81cc80c9a508e507f201632be9c1bf27317fd97275cc3f481bc7c5c25a4b1462767a42cba43b152c276ffc8db55a96d418246e0bb7d5a15f0d883597e9579d675e816b8333097787c613cac29427b11739e650cea2ca8b198c0158caee9971894b67332baf761caf88c16bd11c9f1dcace7b83a6bec71f0ed9bc28f706c38b057231b7c330a4b99898037720cc88245f8982daea502ad30e315c2ca477a3f045084356cb81184ed90734e0cbc0d1553adaf5a94c2a6d8a51566997c735bc45fc408241357da2c38c8a0520fb5a33e1d5c06cc80c4e91314d08599763232517b501097e4bb09bf814a0cdba619c701d249c933d143bbd92c163724b523bc05568a410952380177ff6084c6416bc22c637b7e1ad586324103677101a74835c4255b89ea1935ec8b8382611bd4dd91931c436f9a909af4747dce811a2ecb63f046b411a201d1b4f12442e73d7703e22896a904736308453b946f248a6bd11800797886af555b0787d84daad7883c0e583a7b6530c7d0a8559906f0e423e9e6cb600b9917768777b7489dc173fc67551ad92a26b054ddf13c4f83b5805b9b7b9829513611e171b9ea358abf9054ddf02629a397489dc213705a9b86735577493b86c326e857eb816663dc1417cdac788900c8030803751bae22292af87cf8fda4f2991418948c0b4f54c19163dc4b195b76cc5def67b5288bad948cf214cc6a11c6e1ab1a5b9b1501baa75cec23530c091cadb8c9a02415e816ebe708422dbc2db224b74ba1b83327c8b25bda3cb7127f5c5b963cf3c9abfa15c952bdba2acc01c9d377a89eab6a96a65cfba3d722b6618262ea78770d5fbc556789ce4d13bfe02065f033362124b84560f462c64443b88f3135f585a3b29e450c1dcbaa7b9181133c915522a90f56e595ba11ec3327e6a83c7f1ba59951c4684995ea64edbb3451271a878e42be7d763b27cc430ab6b068173b973141e0a72cdb185b263071d20a8f5a37dd08ab6ea7a2639e0cac1790d5573053569addc1731a339488268873d89a1490b78ee404c2e8328004d44cb4521a68737f195634ab659b919a94e268131ca290e59756311b6273b5dfc2c3adb21534609cb2fc553906a14d8c079f487091587943df49a39d1b465952efae34d33fb9ade56cb6ca9cfa8221458d9940d4bb5f044297c4160a2284032458bf909c31e47a27c7aabdc9815f1ecccadc6288fdaa6c0316f2cdac38ce89fb31cb81b673f26e5709e08c474cc41f213b0fdbc5563851bbec682d9051a5d58148a72956721bb96224214d03e8b89021b98b9a0a87dbf15b491125bc07c6ab6353560d61814ea3cb2e72344104b06413f963091802413521441da171e6b6b039391842141c87c991a4157b428e35ce499a805e2c0954457582b6a8f52c4e102bb33cb01d1ba883ed4cb126c2137a75aadca26852223741c07b027a1883220ca9a65585a5e0c0847b9d0013f821bdad0902504785e927016328c99ca1f3d2bad906b3cef04a3598b2992b2c587100533bcccd15ba1aef877c3a565cb352b7b856880108fb828b42d3612473970044c6c4a057f18ec13deb2c398393c19383603c183b02a461bc9b8ac0969e04179e53c5a8f54a556f54218024041137448d08401fba8e4bcc09cf3b91cc28ed9bb700cc74523c251ad3a7c21f43398f85c7941387612c0c76a43db2a0a368101e88480aa1a5f1500b2a17b5704299d5639b477802fef34bcfd548274d26c476c50fff8851f29ba5ad66caf066ddfec2140dc97b83077a9e21bb4f87aa85a16a7107e3597a1bf4a5bdf008c14bba230cc95e6071bf0e6a25607566c9008d715223c483dfd6737e25a2dea490eb5606c6e32b8063128bcb6181166a93da7626c4273157c47b5a2adb1d88441e76ec9fb6efbda9fd084b496d5635794aa23a43a8c4650e05bcc2e415d775971922b1a446411f952b7e5540091a430882067c0f008211a705e4842789ccf653bb919e742b65339aaf4653e474c10583d9329cadc47a6ef20589572a2e6e4ad67d03abdf7ce1dc9015ba94ed9c69220d63b423cb5daf465d5e3a9d190a6c9d84fb28141f28990959250d48162c68b813460b04a78126e4b2c4514d83cda2735e3d3f1889578b626b002cd859ea9ba6fc856a8030f6010c780ee3fad17b073dded30b6531f854523002db21673437ae275e8a4d702ef311619248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f +ciphertext: 83fbe3b2e33a13730c0bd4e1dce1ef7c4adefc7d62d5bf91a540fef7010299009c7c2b603da43440fa34903d6b920aaecc99a68789b13ce11d43cc05b3b286589c2528480fa0db9bbccdc4a29a63a6482efc4c82612b3fc4152648a0c4a16f1d74fd2458240de7a72a878773c962fbbde1f83801c0a8044282185d20ade7882a67fb445440bc1072968af622305106ec5fd6884542474f7e28ad36101bdf31d3f5600ff4f865e68cf612d63868ca95083971c6aa06a93b5fddfb66a682874a28e5ce77d09953482ca7c917daff026ab259ae6a9580ed39cf94d345bced2ac41ee4bbf5c33648c4849e2a44acc344967a5f13367fa5fe3d014698040983ec41d09763f087496499086e8fd882eff48d7ff3655a9fcb87028795df440cb4dae831e45ffc80c2baed790819fab9ae70beb4f3b1a8abd7fc86304a95614e2fd59769ecfec62511d5ef0276bd4c7f75fdc8af140638db9e948fabd756ca0fd5f21959d6ba9f5c13a6981f83cb9808c660b3b67b76a6fbb5660a8997d362968134a92b0c14d255c81db897d7ceb9af1af1eacb8f42522fea9edb7587e46f50ba817350ff9cbf3789728d3ceb119642285a7a3d025488a3aaeca3a2960c7444f9c686530f1dbec6eb92dd7731e60c40c58c137e7bfaf027aed2a1bd28fcbfdf450a5448deda62d5cb5bc6a0cddf2453d34c7011e4924606727aadd0e29512f62fcd5f7f26a4be5681e2e598d281e0102ac16a5e87e60e9cf97980e8d0dbf8061c59132cf166872af741c08af8db9236cf3c0b6ddf926db9d620ec8f507e6b52bdd3a26b2bd39d1b06435b5696d388d8c7e287508c3aad29f8c49a580004090fbe1ee07a5821e4bba206a91472507a7a58aca5c54652d4950469bc060e498d38f0a5e27e7b1e47c5f1c4e9c5000b16899ae3fc31e0d0561f54fc3846fb9a618eacd102e39ddfed953bb5d7180dac7148a21c0832a2f9a9deac049fdf9a46fb5fb78cfadf42244ca05280302b70ff2c7c140d6b2ea6f0bb296f8231fad365b6561b2c0f7a6b8ba9e977b153f0f33bffa14a6f01c28a733d6a2829d407908797efe3cb345722271022311f1d2df6b8f0706f9ba5c423248e19a76fa65e9ac7df98a5286f172319e874324c92da7270cd97af76d43e277c59c92346cbc3f455b463101295de98109d344ca04049b4a3fed33587cffd19fe562fb146fa50483f471dc594b75e75d179e0d22cc294148ed3bbd1411496a2f7ae00fa964be786a97619ac789587fd34e6793a1ce0ab1b69b27e42fec77ebc88e5b081d5cb031cef71826a54c23ced97df258618f038d5c9aafeb0500a0f00fc3bd375486fdb1567b5595184040d951a925602a7cbca4ee8e39120f3358d8f6678887eb8aae4156536f23eb2c8e558be3b91ec30304066e84f0a7f77b659086f33a60b757c48e2766b4600a520a85823f80059ac237026852430901403a2ca29e3d464b59c65a910d54aac7484cb1ee04575562d19ccdc89e988a412e1fba496a7ae800b2e7c35cfa106e8c33a11841079cd824c17dc4c0cf0be4ec83d386c66dfd5660e00fd24cbb89e85df49b5694e8e985b2a3575adfb142baf10ccb255a3718d74c6e3f40afc0252e6c610509dcab44cf85c91dbe471f67753d65ea8c83eccbc4ebd8a0b31709a297633ea73e9f280eeb9aa4f49ee249ee028b17dc9d5041762bb6930cc94cddd248231df4da3e126e1f50c1df527f61622fa86de97fd8c6c21f8c22146666ce92ab682e0f7cab45b4901bdcdbb9b98830a97aef8bdf98b1573527b436850110a6139c5ade2e31b10ce7f1aa9d966bab3b7ddb49381efe266a94cc74aa38fb901f5161fe18e6476ad4fdc5d4943b82ae655eec0e155dd739fb84d2d64d72cfc2d6640f52206304fa90f05729ccbaed580cebe61a666e114a383b9f212dc83fe1e54294b1281518ce489eeff4b22cb450489bd8c9eff1d79f5fb3032463e61523a331fd92914dd83e50ca25417205b382b42421b4eee89ec3b1360ed68df782dfe84710fdbffa1bc6802ff8809205f144cca551554945695d447f5ca4ef8808fcf06cfec427babcd552ea0551823d12879f9ae5e322f1d91b8410371188dcbdd077cfba41b219a125accf3598c7ec40f866cf9c30ae13f704b800c19145ad5a2453261f02ef3afc8f94d85687a43c5712fe8ea3ebf7d5f377698a556435c90ef6213abbaf55f +result: fail +shared_secret: + +# Private key not reduced +private_key: ab6656e2dedc617ec28b24c6461336d91c7b5ff6cb9c97ab276fe5951983f663dab7da57f0e496742e866ac7d204396caa7b9917c9c6e18fb331d65fd1eb300dd481311b723c44408a2bef9657b19bb73ac593a3b2a86a1de53f30de50abe7620fa9b06144dac23ab1ccf4591427dac5553873873fd0175b79e5d0c2f9fad5fc71ab348522c5c82c8ec89303abdf684eb9f638a2d5d2a088795caa95509f55ec8389d0097d778e33a744d857534cce37b7372388507c8dda9d8d01b6f077dcb583a5328238a097a572b90dac1e3a4b0218dee06e60732f9b7404d88da9d18ec6e91e09c5d498a32ddd4e22398604479c85d6e4376d6dc6cc42577eefb9ddc2a4f83fa26dc1e89ede5595f6140c42c3dee1141a3a24ea7400e44e3a57fd1f9e3e341b50d88364af4def4917ad1bc94ce54df7a2435c6ea9b979cb30d86a856bc69928348b52b36915684cb6cdfc24cddb8fd68831d593339bd7ab13e6bc3656e9b58b4ff4969fd461ae7fab05754399e39e2776a08ddbc25e4a8db79af79575bffaaba7b9143c337888e805f5c163c059f860188bfcf674b6fcb94b480a859a2b7af7066be12eec956eda919739757470b2af5fd9eb3143cc66c8afa0c4f9ae57bbf6d958eaae956240785043c43bb23dc25cdedbc9956a931cd09b8ad8839cb483c73e672cf9f36d9667b49e52c79d494596a668484b5659c90965e93ffdb617ce6e18c94cc8daad565206c930cab57e814dcf6d3cebd52e9bde58538be7eeefbece8ac9bab90eaefd84406e7f33a1bfea68d48fccced89207eb7ba8e10cb780dbabd7b6e53339e3a0ae49f1a0f85c4ecf82c4874b7f5a56ae059ee327bbbf68ab3ca84e1f7fb5955cc3cbbefb86e949025a7bae6fdacd7d37e97a51bde797636c5ebaecb671f685187562083f7f8acb9594a7ee7fad7030748a87d674605bfc53b6cdd7fe6a0e4669ba37a20477b25ea47ce56aa8202ddbc3d4392f2f4af7984d5afd570eabd20a698409e8b11a4f5756a678cf6c98d08e4be5fdfbe5debfa9daa20c9ea934eafb18a9cd2958d8f838bd21a93189859fd6b645f805b8c2caa10904697189ca2b9dbb8c9431c14372fbe552019d67d6097b11246c4d8469d01c470519d79193d82e7ce0784a5110b93f450a88601345152ed079393f3bc45a254fb59de6b37896be3a54553fcbb72dced755649341699be44488bce835caebaf9f9ad17437615d74d9b576b9109df1db6babe6dedc10be59ac9d60a074483773e047dd4930eb853a1970bc34734bcb32782eb39528c0dee4f26217d33bae8a327eb50f69803538f000696c9cbe4a6617ae7453b608893bab7b385e87ccfb83929cb968746c5196ac7c474f3f4c1dad3ddccf8fa6e6dffd5643fffe16ee5b5827b850249434e9d88896cdc45b39582c3e2d7340650365c929546298beb40ad34da8b3886a8ed6699bd15bc645dca53dc792458470395bb64cea5bda9e6a11f5920487cb60776f40aeb7e7de6007a5322f9f410377c874f98be04fd66a136d832eb95474a240247beb2ecf0a67fcde8fead9c98f6a248c34bfdccd3a6965133e6e57d55b5893d8ebf6c6b77754f441bfe7439b8a526938d769247adf0665d26ec88e756de537bf570eb248e9632886c84b67faa64fb53f35d01586c60eab6e1cbba8b62582eff4eca31f87505df6368e5612fd9ab9ca4ce29b6fc66547829f452d667229fe7d160dd0a18574527a3ea92bb209ed37722684b3fe4db7d7cfd126e6d9b5f8e0d54ce197b1638fbb2a2a778c8e999bd38fa2d86b071b7d47ebfc7b3b3af53b4a8b07d61b38468e63b2739dd3e8489d33caabf3cae96468abfa8f452f8af61993bcd3a4efdc59a60fef4d1afd60d7e493c29ca5a86ed918c9e8eeebab86dba7efdeff234cdb0adaa65dceada2d64977cd399dd8d92d5c3ef0774102bdef6643ce8cbdf80356cbf0bfc2856cb6021768564342287a9953bec2da69f8520cbdf6d8a970c4aa776c60d788e107ac9da66672dc0490cde4b38dccd84236f4e50b9b3b775c8806adcec9a5a2d94f56d488a8ab8f90b6930cdb8fac4ac5b17b66c7cee67ca8ea55cba0c8079d1668ae5103fb62d4513165b275097597f4f2fb3ccb4bfcbebb5fc0b028a01c94c4a29fb9f1dc4f5853f8cbacb263b5c71c145bb9c82a0db31fb3c6458ef4c21b5663ef7795f4c36ae77a85ed8304a4066c48741323ebc5e5f50d50a704de206c4f6a5719b27b8fec3d95e77f545a7f78c57a9432a329741159808d255232d4288032d658bc483d4afc3d6ba94f8bf44b347a8fd4bb7e2e4000db9909c3720920a410a46905d3a34083c3484bd2448f232ed825658a8b25d99c995be0866a18c01274607ad6bc0154a4fdf70f42768a5ca86df321327b89094383648a236d8f74bd3e3854b110ad8d1403e428a73d9a13cf29a6240c30cc53532d60152ff560d1e3c3205ac557fc76bba0af547c69e9819d1ca412088a8665863f64cc98f3853e2ce115c4c3080e002542714efb10b8f51a59ab954885b313af6000fb8c0b23bc59ae73948e8b30213c84230098469200c8d3aa1f68160963b4dec95c20c8290783457c06b7ed61ab17077709591416a422e52a2afa2c61ec4932df188a4a0c056dc854acba8acd5298a6cb2de04c7c3bc7bc724157fa2b9d01c9bcb0624d79e52988a4b783e8a6d7c45115c548e0eb474368993d971e59e96d5c2a9341b40f461752dd73cbff7543031caf370130311c458684a80209565b754437926bb20840aac329392cbc4f7022eeb03580696b239b2993c9927f649aa838c4e88726f9633b8630977e85350bb25c130161b6c0298c03bcb387c38b4853ce8258166175623107f3d4c5a4b266c9978154e710f11337f05986e921b20d1c02d0667b42d1a4f09231d7d8993263a2cef7b3e5f153aa691a12b7ad28513eba123945f0651b83cd36099047b997ddc5128325213875ab7ac39b6e969693c4746f19a159b19b7911abf45a9215f5c9ebf60c46f254c27285e9491486773ca0f8848e23bc16d83155c302d0e42504762226701bb3a446316b9199860b824c1bb5bb2b4f535e74c493a80b3faa5b635d65364fc241a2e1366f3a2ae40ad07e6621ef64428ffb6c86a1883aa20d04b610ffea3b48e88e6073005e281e91d65cea99079e1846ce89c2fffc8cb38932c00783c9812d26f91937e6966dd2642bc1b494775f5acb46ddb3bfe70c62e2018cda8b16ff762ec3944909d034c27ccafd2803e4f392fedba006d672021a8eec76cd2c5b1f2bb65737a5369365c8ff6231b7866973201853d7538b27825592629c7812dda74b795ccc56fa684e8244a4b204c0b2bce93100a57c02dd13c5af5718084042e9d809eee01ef78166d5579fb0702deb07b6708c7ae2757a004d2ce31921030059c36a014df0178d59c7a7a7b1c3e04bfdca8ad4697bc2a36b5a213900249ce02a678009a4c9f8589bc24810e611a942ad468a2ae2d8af0b3b3a7d741fdaeba89f3b6c1fd302dae37f2d54ba53fb78e040991f4c468bc2b6f527cb985a9ae19797cf845c53803d13b267c8f31e4382791f0a7ed27a96ac609b40c8bedfb1a11d8c244cc85f4b692607d72f3cd05b070b5e8f4b7e0ba56657434296caaed3928f32d526cf0281a57960e5c55f6deb1636494e3d618d1e4431fce125adf544b91904cef045f1d088e159a6cff792ff5182386a87277953b4c4ba3714c20bc50e04c2b2b628b147d07291e24e18a6906b5300393180ed011b2c458d7e2a1f4604816a94b83c93c5160b740e3640707a4fe8f265ba351f4ff2c7fb75baf8980f136b2ba2e81cac3b27c2653c89b65ce236a3c0c28759b12275c4cddf5c14c7b69e951bb30459b150983fbc330db7dc3220420dd5e928ef5905a78a0b0e214bf1252765646f6c657aaec11fa775183c1ca3bb7261a2205e46d064239103203532556ca7fbf750d1f88ed6862ed02489bb30c976b4abfc0123583837a8db3f6a38bc5e9a44a990a471cb3e380b4508ac4162a4073f815507d33fffec823f9ccf17aa150a5bc7562a4e3f85995444c787d16901332989c15fdce4b43a215da66000525ab32f5b1d728846fea3ad2c092e271208b6f833e51c701da8854b867e0bd0234a3c9d98117c58ac1ac8b05f59f027b4a78e94771ee263792cb891e9d5abf0706f70f149482948eb6248bd811210765f93b4cd49daa19a17843e510409d6638dda571f680f02b17182e1c7eaa542e990275bd080bca0c793d3113d524598fc9dbc453a0560c556e7bfa3856570b570a1b43f82657458615be5080c89c0bc7e99a67a91bb9b8cb821e426b843f7542c5ce12ca13b5b7f6c716e63411681fef0ff85e8cd3fcde5abdbb9e471c37cff80f992f3359ded64b566956adfa3266cb05f171eb644711d3a2cb4b41646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 +ciphertext: ee3f98af1d174b594dc0ce0558e943a69ebdec0a31ef0b0c7fa26ba7d9c80a64208e66389bc232fb7847ce8f4c89e1f3b3d2a201ef4a055c07a82f6564d3f1baf47564d11d9274b4c69b30003d98aede74baf75c2d7d76f9d4a7af78031117732e4434dbde3ab4c302054dd8158e449de6759125718081658ce91de018cfe1c37577ea0e396244ed732c62d5471f7732c8826442a374c06ffb7bc6c7bdeaa70981e2caff21fbb2330d1013cbd5a37cc1651c3624d2b130475cdca8ceb4098045f63630c338c40f8bc07dfc5f97a363686b13b7a759163215a060f1f971968644ce362f99c4201b483d0bdbd7029ec1365efd2a621fa738438bb797aa2a030158a7fdbffb2a5f1b27cd4a356c7e1d7dcfbf1e8a8ff0ef52fb7f7088452d1d15f42545bcc78c1cd90ab4e4a75b10588d1303877e78d6937c009eb071493b27c27564899464288d4b65d2c3aeced1c7ce69e82935443e1f2560789e240ef213d4521fae62506ac96d3176093d79867dca89e5491cbe53fd78dc66e064b1ed8167fa6864de9f1c29cb81185bf00f6354a38bfae33d8f2306acca3131db5aef13bd0c3c55f02d1c069a21a663c0f754b9c4016239bfe691e50da24cccf54fb9588a280c89be25a48e77f9e4dfeecddb00a06911a33e9efd58ccfd170d19009ef16c3a54a986e55c39bce875a61786990a1d057bd9fe07d57e143969bb5553971d9025ce7bcc0e96d01a496491b0bb8fbf886d8d5527a765808f2a78590ad5c84b965b5535b82506857220fedb7a1bd86ee6622a31de73139fd143ea6b9845c22c215a890936af8765a58dcc24ae6ea2240d5a5667b268490dea3fb3252ba81e71953e4c25ada1da0191f26082d80e66e6d1469c01bbebbc096e2700d98c7b605593b0ad895962e183c7a0cf0ab101f65f2329eb160670dd86b215f27025ef96a72aa2666ad9873474844518adf83d7e6714951da83ad15c89882df4f27ddfbb8e270445e403213c7357c985a5ebeb1db03d1b34c971ae11c986089d1c7d4086954e7bb17bc1cf6d6c4b4df9190265e2bf8f0580fa9b5540ca0dbc635d1a6492cada9ce0ed26b029817e366a494bae2e7e5d618beb3e26f0b9d8985eb23bf20bf097a600d9a06103e20ecab5d5c933ad4e2c77d5e72775f9ca84c0e71d3400e0579882284be79bb3df2f9bee359b2172943b9f4c78e85843834fffc59ee297ef0fad3e03212123bb957f1e0475641f1b4e6771091871e05ff6f2d8313882453c0fc6ba7a2271cc2985835063c0fdcbd2947478b7c9c728f77154b731a1cdbf0d928c326caae6d3737cd478b3af92383b5610ae3109429487fe009411b3fa6eada1ccb2916b37f633e1bbe6af135e95b0f0e54f079fd86ad11129fc10103a0de8a9105480f0369d763161a366f78ce4e679f1a9ded37aa63353bc9f47a5f9b4c63f9fabb2a19e5003b703ecc93233637568d211eb291b3d03b5d0846a78b0f4c9aecf442f0976dd8abcb18a72b81fda3c8de270855587225539d117e2f2a7a135d6b879a3240673c2622fbb1db86fa0e5db9f19ded3215ce5c9ef0b8851109e0994dcd3521781f25891c6ac10b3a38b56eced9498662eb4ab65b8f3d3ce21837a7285a5a2d03c1f8806665b45357564cfa3035f2b8bd342a21ecf6b7897c8b3fd08afa925360c11825ff3e96133fd6cecf35151a95ec05b82e342f4657c297716131e65c3b346e6647de6c92085e6d2204496eea67c97f866fc1ca0e235ea457169de6e4d7a308e4d348ac34701bd8f990f8d15f3d7b5dd9cf3f50d41b9b2a10bfeac96b9438c75adcffd46a60b23f5037b8b2d0984be210bc58180669c7a12b2269538740e776f9716154a568df5dc7e6e3b329f77f69a7637cc78e128b991a4e1eff3d3d1409ce6b110b250cb8d3e092d48b9e33f3d2f258fabce5bd0957c35b47fbfc6ab6608253248c2cf3210b6261146bdb6818cec194f42ef1485ea6b467227a63d461eb7b617105ceb28126f99ae3eeed721ae0f1cfcd05206c207f895dc4183282478acdd1daad21dc0af197dd8763d943199042c4bbfdb84ca4781a3056ffb3031d3ee3d639683b01445a9d82e3a18a7c030da16375d7b69dcc5b533435acf8a3b08c56bfe07cad6795b5a1f794f73f94489579d70436a323ed5f10a9decd33f0d5baedbdb89d2d50b3aaddd515b9ab879e7e39e3e06efb9f9221de583c36b +result: fail +shared_secret: + +# Private key not reduced +private_key: 6e0fb73b69cadc3e7ae9c9b09a74634c1762b30c55e793c0fde5d574eb6157fe52e7dabf93bea4cf7a9aff3fcb5f95909f2cd45bf9c7c77ce37c6c4a4c27df837f4c33afea2ffb7250ea6fea58d60cf88b6aad506e2bac22aefe4ca5806d15983428c4d703f947b6a4bfc7f18a4cc2b09a343de3ae2fe392ad6a555c035ecd1ae6c66339291fe9bc4dba2ff5432524cdb0ca32a7deb8a9ea96893c3864494e379d647d93e8a46fd682cbc1973fcfe3ef8733da34aa9eef5e659cfe99b7894a88ab0ec3989f85814ae49e196ff62fd6ba654215985c47f3bd24848e0c959a93fbf0c3176c68188139c7f929b83533fada70e44333e9f3512750cda5f0f98bcae7ce6644cd80fc836367aa4a39c88f67cdce0a4f8135673b0f09529d0bb1e9e4b14679cf41f433bcf533e7e4cb1db4b5e91df18f564fce3590577d6f9f19ef6b2ad4202699496ef74897eea2b7c7fad9e411d7da244e8a346f97ce77debcbdf520c3c1d148d7bad55100ab3d0a8b4e87fb5a5e2e925a6892e93c3c10a66fc4974b282ccb9dbe34aa0aafa86a527f96b2df98ba19eafe5376e4d243a19edea095fa37ea0d8607c882b48a79b44d3f7644fcd4345e6f6c95327965c2f860c43671361f4373fb54a4aa72854f9456fe637f56b4443ab049edc9b92f89f8df340c2547a3bc8e66343248c5e14d27cbb1ee9a6a6a82c84bbcb45de13ed6546015fc088c555c27847078319159d48c5a9103dca6770aac9d5a75f84930d6f7cd5813590b3fd40f0afc9b73eec897409269d37fea8547dbc92288414eedd2a4c377e60e800aa49b28e68a528a331216dd635ca58464fa855fcca8cdcc3ebc4e3f46a5a5dbefa4a7e8b1d7ef962f4f9cbbcc9376737c08f8b25caccb4b49cf5adb0eed96e4d83f319582edc68ba1177bf7fcfe2b4eb0686bc6678b8355cccb7b9a8519aa68b49d67dd178db2fa8ab343d5efb7592a29a8f49b926435ec1ef83d765e8134da35ec07ca4bfbe0e20f466eadb74673b9fd7cb93f287ab4f3f1c9d4d34dbf6be63567f7083cc87ae5b67535b2cf35c7aa4ab1eb5097947b5b38fe15b888a9cde0e8596faab4e0f6ca7fd358765ed97e5f8970abd54e36938709f6410b779077dcdb0115fb4138f2ce256f1545ffe63e4aa2c4ebe47eeec25df0b985d77a4440072964568e8b90f6b85d5da3fc55d6cc48c1ad436308154c5075755c74e9ed8af6766e841cc56b4296d8ef7fd4722faaa674bc9bfe8f15d5fbfcc981fed362304df896d7bf238b980825fb4d8ca1efdad92569595deabe45f6b35c8c9b7293a321e96e9574726dfa93c7abe62eebb0e7a37ceb8ef7f01e79c728c22d98328b59b86ba4a85e2ef49fad8a3e594e7e0ef20846c8f7683f5b856ff4fc8d64cef9cb1c8ea73ae68d7ec56c166cdbdfe6e17d97e90cd60f458e0cf6bfc5f55117ee61938c8df6643b6d65e4ecd860a447f694fefc1fc8b15538d0802ccb49de6f4fd89306e3daf89eaecbffd5a6235eb9343c6586d34c38747b3d6db7cf302e5569c19a75b2cc62d389558446e2859def368766f27a83cd376953dd374316af69dd6b3c34fd7188acbf8847f55b80750bab53cfd43e0edc47dca1996e31f2db9c9c1fbf4664a3db6bc1859b59b468c0f35cebc8d8c74243aa3f434f044a408ab988a69fdcaa3e7d35b8344e55f73f86f59d8e3ddfa9ee0f0f664a4c835335fc85ca8531c6e96bd68767cb8010e9ffd0cefacc9c931d169b9ddf47aa2c8c5fc6d13cf65f0ebc432c38936db3b6ec983f743aeca6449011bbb70f5bc7755b58d5dde1455aac47c6831d6a33699d5e6c8ddc987cc911bf3d3f4d6e81e56f29dda35aa331f7499c64bedb2eea5dd24b4e7c173d9e694d6c6b7a636fb26ca9e63c337ff3fc9dc9586548665c157f935aac3a8b653e089dfb1f3af91939f33e7c8d1a3f718ca63299ba4919d9936d65a2b78c733bdfc15f13cb4f55f52c8dd4d9d9911bd5f93d6e983fbf4f7bace808285d82cacd499dea722be5f44cdf4563c494a9a5491c30dfaa5ed5f89e08cc76dd83f4d16b3ffcea5393aaa525f9df7a4bc88bcd7010b6de68f7be3acfdfaa28610db77006a5577adcfd3384db6ed66341a56dcb4ac5a3eaa431765d006caf51766a01ed7f84a6bb032fc251764d628b9cb38860c4d8cb35d29c0d6263d9020389240d058974e871ab8e433196680f50c7b88e6a3ec8764b4509c3764bb4db404a8e932413930dadbb5c5d60a01539763428cdffdcca2cd0554633367ad245e069bfdb397b803c68c8543583581bfcc9bb1147a2063262774706dab0a015e7c57e244b12406b0009024fc06181bc058b466ee12c3ecd1a983fe1bb030774db831ef1bb26539245caab4d9954bb01901c6bb66534b95cdcc92a1af075be8a949829558ce625ace38b1296a75058b9a3f90e74e04ff3880106869899e6844a6504b8a0cf99ba86c72cba26564739d0221fa20fb412828180a14bc570503a033eb379790a457f9277a221b75720537205cd19969149ab9d2b87a19250b595186454c99b46ab8f03365200424b4ef8cae2569ab4bc07b98acd2e50b0426032f967354c70b6c1f1a1df32406c296b0e9b8066904fa2184e0dd04ad5c27f9e952774bc82a923ae90888613144bbe376b38112a836b7d6b0606d25abdcec0b471a834fe20adbc78a68cdc5619089ae4f09b32947eaeda996adbcf131621bdb99173063f98f1380a324f84626212f8acca34205299399e62b321030191379b8bf96ccb336498d2a8bf573f44596d0db92792122026b61264693be3a3a7160a9e60fc1fc0897e5f602483d6c81f382e3e237d6709b82056976ce23d66b013ea48cb56d78d12c68dc2cc6fdc7aa1142548e1940e3d889c71e990fbb19d4fa0bf892b5cb873ced68516e544bcc4bac3734215201c617767757dd3ca2b0a5084002f175995abb6a7b88892d07b4ac68b974ca83f13722f028bad4aa9400f0b755fa3352c90673a44be327845d1dc1cada0996d57b62fab1032ccb6eb947646fa25d06495a6577a17d707b11c3e8fe82325d21dc2997d0ada9bf85b45d8e5431ce5ac571c253744108f91aba0b2868c7096c92b2f53fc5a0d996cd8414cf230cae4c58059177607040d871b8b1da28837c7ab177369fd2c05fe300da0d84e97497cf5f22a36b966b5872266202d207740d47c8b1fd118ab390cd5ba70bfd9a0bf8b59d14b165575a079d82bd0fb1cc015340a1c0a0c77c7f822cd2999c6f10b5aab063181775b7f42b2fbc813b2fabbfd76c0a5d4942df97c449cadac303ccf4790685438257a0093461f581c981bc61229c94a130372ad920d2cfa5cbec684f8986a7ecaa94275814cdc2d7fe403c933bc0038b18b28cc3eec9ccac49bd922c446267cd07b786de316012330ae70bc49216fcf6b4c7db2bbab55153e21089d04c3fde934955ba215d047398ac172c2b1a18c0597182e88a327d0f0968796ae0a03772adbb406a210f2e004810513f09712836c45cc11a0d8c8433b813e0e8aa380cb166fa93961a2b6765287aecace40cb4caa064f6b547f0084bcba7856898b221d362c9de766c7d447bc10925330ca87a8379ba944323c638f33b164e13731b0b92a134ee9d454684387790361b31b53c245328bb19185f9774e2764fd429e11e2a4851b222c4a9e504531fd962fc23852bfa3b4632aba9be4595cf5083d64522ac93b41c7409aba1b83ec51cb6a1c0bd0c24e35cbfff95088d7b6ec890cb5559c44553dc44822692a243d032ff75c7c08914d847551151052c6846e2f556201205dc130babd9483dc721d42f42cbabcacff1aa93d05a2ee54bd399186bfd4978a7a76d5d24008fc55ec40a6bdc899ea0a69ca22acdf8bbd14a5cfa2a06587728427865a3331c60e77b5782c37e79561cb622195656d8f9c0c8c2c560ac95cb0b986ffa0784ee17554cb2bd0d332645958bb68cde65b13d274ba9a655bcc8072d6681cf556c7931000b94a9436602f0a5a6fbf770a2b323612bc47190c9a88d4588d97c099ca04b3b7377867a6e68869fda2258083cdcaa41aaa798ea11ba7f6cc4838f2aaf9c5795f8137adbc4c17b491a59255e61ba078a9b4179cbc89cc3c9946c65efb9ca5ac5765f3570f673ac80c1d26b5af8f031266c65b4ef41f7923af49dc6eb3d0a0eac745aca402ed4b9b2de754bc3b7a6b54c2159baee1f560dc502e4ee6b3a3d6b4c1ac1e06dca9edb6775f5696cf91acbd9293be7a82244234de9869afb1b2696300331aae6c9332840145eb16b016f8714fc00020d429f75231f73b265272a936e404f0d57b79c6ca8c25cb7c8bb89284c4e7b0ba9eb33c0406a8c39eb0d5429fcae286a9c56be5839c10ad33e8a58374dff41feb6af202d9ad3f2c7ca61993e238140ce8550a5f0c39147130a5313c8c02d68de779238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 +ciphertext: e08924a91b398adb3daac6ee525b89bc18256d7c0ae328ee197c02c77442f97841b0ec33c6fb217d3bea65984c0225ab052b8fcfa3955809b56cc7565e97037664738cd195dfb3ec7e0a2ae1477664913a01d6d15362e847cf99cb88d3f8da414569b8cc5afc61490f2be47d4b54e57271f9ce5c8e592178f070d4feb22d003d0224551bb529628357cc896433a87a5cd7ed2c051bc8b0c4bce2256d04dd6f33df91c3af9820d4fc5f99a15669a0049f3dd2843b6ba5022cf0ee81f1e17601c1cb567ceca60d6092c100944c1e67eed0a6c9a7a11d697231594eaae2876077a47632c4714b4955a727ac32f2ecb48e23698b47583245cc7d830c29c408af82653fe37efa53d46f71d22cdbd477ab034386c8241f0bca25ab3a0182b7fd28acd4b1e633f9adedd58a069bf9f20582724f33eed04dbafb95553c145705bbab89796bc21ab9a0780a9cd392be274ad451447be7a195b23126bf18cbe75f12a12eebfc96d9b22fd19d57c342cb4bd3878cd69d21aaf0c093eb7b7a6f149e4d6c214814bf8f1690988b794c06a5b1111c415220cea0acc02b452c6f2678616e52c538dc71b10166067cb0682e6367a861dc6029cec249057484367b5be34f9b5593cc7f92c81cb80e00b1f7535237369b82208f5a8b697a6ef4caed276a16b1b2916cbd7888d18dcd22567e92de1d0acfe7ebc4a3f96014754b84fdd8d3d46203230a71104b3c825d71e4995948414283b636e98d447aef4e9e96d3240bc99607f1a9597408c8556dc37e9cd18bd1be56d6dc73a154576dbeaf710ac9e20afcd5a41db8efc363a7d26ba223a58e08fd1984073fa6f115a616b8a8e388165df7b1ff1bbfae32aacd893d0cf5c0b260f0d0d809ba9092823cd83e58848cb17de31bec1856360ff6a2568cbf27829998e741b9dde5d765e971cec53cd94d1faa6ce89a8a57821be0d7c7dd56f31c1de1f49c76520a324b5c978e075af190b620cf7315bc338a6b60ba6e896496f8afb86f6f67941ce00846a5ac726264b3b3fca4c201a30b867a36731058d67255ec0ef57222d51d5e915a79068e36a62b9b9ab84767ffa472100e21875e1dd288c4382654d1547d11a58be3911832be2a2779c84b8775bf1285eb7a86b98647f0533cc7b9fbc013d3f20b492e06228d4f5b4c859653caac26d2a9cc13ecaf229edb5761d094386ae4a111e56e4e13c992bc994d47aa9c45c0ba40f5afe8531a10a51f74e1b8a6c71ae55f4af1b43939f1d299e396b1e573a25304c5c8d700d95ed1bdc5d35c4e6776be305336b2b26fbc3c78d2a3336607e5fce6f1c6d7a41efbd0b1185ba60092e78e2414edbf5ed1d3785878a5c029ea06b3ab0a5a3cee467eb582064c9b7d29cf826c0cf7e828fd1963c39b2f3e40731f2bd6f2723aa94b16504156a405ad041c1ed04e4c00c5e34be37128f7b57efd9729c544f13e16b1eba33dcceeffb7d8547b0eec6703609b053a897c1cde85871fde1142dff09a55e068b30f694064035fed0889ca095afccbc8434d75456509cdc40e42021a4f196c339e0379b5804c7beb3963d941a3482c96a8f28d9ceffa3513ce752a38290765fdfc551b8b996e7581458659ae35549c9a3593eaf9b5d6705b085ded007fdcc454b35d84bbb583ed1ec2fb74a6aa26119cde1554aa2c6ebc6c74cb1ce3c06b978371c9103d638c37d3d1d1945cbbec11bd5cf736ada2fb8767bca80e88db70af0018aadb8e3e43f3d08ab5f017ebd5c7ea661ec1fab82b8446a8be2034d29fb42d6dfa3cef966c1a3b6107198291aeadb8f29cbd4117df8ef571f3ea2df5fa052e20eaa89c2c757be75aa657678f0ede06157903fc08dfa8280cde37ae23a313e1b501f3ad51f02629189f2d6924c2ed26e3c78c9c90ec6ea36cb0be8cdc0016c10eb728c03e8664901fc9ef25ba20fc8d058070aa17af214bf7175bc1ac736eb22948511c8cbcb4f0d98ef25a73eedb857b43039b4729faa9233b4191fd0700ea3a8b32d4afd55e92b8602a640b75da23902236ca97a92053a98a4ab78bad3bd5cf202b452b31afffa6393c8d28d5812fefa53455aafd8ce3f953701e24820c19f799746ea6aca59e38430edaf1ba46b750d8b2441538f59cf25b437b9c95e3ca3856470609e569d5fa08bda01aae9674e29f96c1c8e22cc5d7710de5eba022766492e265d5f24330ca833dfb3936f7cacba046c761 +result: fail +shared_secret: + +# Private key not reduced +private_key: 504ee376e73d8074bebfa35fbacf5879f482ab77c1708a8974e6d9f4aca6081fbf80e6a4958d42a333cb8abbb1bd3f960c75776194addefd9925c6d5efe3cea15fea9cfc63acfa774858b9f8468c39f9d38434517c1d3e117abda963eec9db871c0e44de3b3e6a99cc091a696fdfe8e7ed99188872d4bfb2e4188c1935530a364ec8aea98d9cba4bb68d26ca98eb437d2a3378bcf4dfcd3b4a8f7982486ae296364363dcbcd813a2d434bf3f68788c035981cdbe8f46a6ef54a198d64c0d149732ad97cac43d7e1ff167aa8657ea521197cdb3585b4ef64b1f77d80824718219e9e8b9392a6cff56e56149eedf195f5491647fb024de7c66bd26e3631f3bb3f20c947a77e94b9c5de9793d56cfb800263e519f9889d8afc878b661c7cb2fb366b807e08ebbcf769ffcaed8a6c83a3651557389d5ee553eab150957064dda88ebadcd4e7a4e955f2858b797b39b650ee0598ee9e25ad1e3ae7a638873b485b2c8d867969c39b31cd14059d5ed14aff50484da83a8bfebf368a9d0a7954695b6695186b590e5c3dd27ab6b6e9a2dde3b78c9cfc7c966d4d373485ab99f6ffa7447fc51a4764fdde52a29acb154826479567b1c6aa68bb2fcf471e035c0d80ff578fab87e8cd3520fa8fbb5cdde09e1923748bc85fd0d8fcfdf8b773303df685fb03758fbfcc8a38097c9a9d8745b0681ad79710b4d49be27c1378d627516aba8e3d8287a45f498c90669d0cfff6281fe7b8eb6f1707de18eea6243337fb2d7ccc156325c43e16b057b93ef4d6637e8235a7e7b79e86b27f3223fb529e44d568d39f0fdc2aa7bdb0bf8332c48fe1b23fc3f343a2bfb3f12bee6563a79066e7e639c6bee3ed51f65e3c4793dd887b9ea26b90de7d76aa4aad66e4d53e87d9196ecadecedab846c6933a689fbfd156681503e951546b8217fdfb60690a7734153e79e9ba9a054aaa9b908605c1d384bcad8e32e3e683c6d64e9a80e8f35f02c39a6bb42def54865164c87cd8af24a614f46d8b24a617bab86e5196172d8ef1a7ad01ca4cf72c9bcd6f89b8ddce54dd761a4ddf36219fdb91b3da7dcb723b59c3f0f9be1f96e6933a5a7b8f96da3a043b3fea0bf7573b6f353ad88afa68baef540403ddd8e7e743ed79ec3acbf1c58e1a13d8f426ad5714c563766dcb7b36dcdaed08e7e5248fb3e2f5fc38b9c67381c3e0be8e27c163e3215d4ac2d58900fa0ab036e8deef1d86faf33a8dc0a86f5c71f9b83b6c8d7f3d4a55f9ac34cf04d79741c1a68ce356c4dad4a4f16406b56fdb4038f78bca2babbf92635dced3da3cf8f7e56186da8669fbd8af199f53cf87cb2656349b7dfba199d79e8dfaff8938a993f75552af1e8ee79e13cbcea08885af930509c68456a9e778baa0e4649e2c830455cf78a06849f088d131ce7642db26048e259d4458555a2d97e5a93957470e538448a7b29958d7119c17f6a38f09a8b441c371114cf1cf390b56365d7d7efe9bbcb4974d1bc9bd7d16cd6a4acf21828b6b7b56cc70ebfd6d75fbf3aab16ec9584b780793f4cf916dc5304354bc99e9a69c090c6513e16b6afa8ff2bfb4e0ddc4cb69ab1ffbed575a5335899dfeb76e62d29b4b07df3eff84071ef5bb85bdb5ffe8f4bc554b8d661cb5a97a83b856d6437ec5d3de82760cedb83a5ac4b0536ea02b6f1947f31efef6777d75a3863cdbc24954f74b4336da08a8f3b8c659108bc86dd1bc36e9643b406fd1489a880099623bf7161afc934f4b3369a9afa7531ec39487fffb8742b63cd5d59a8f9317b06aa851ed71d86791b19f4961daef89f4c26af45826fe65ed7c4404cdccb5a8db017f21fa3dff926fd66b4a1522b878d9bd8625adef4bf4c1cfcf1928773c8fb99f58e6a7955a2a38e6949fbedc1a794f7c6ec183739862ebb08ddd63b3bd1581d54b05d9dc94a3ef198fb0928aeb4dca18769b594dfb357e56bb3148ef7d4cfef83d68d0b48cb37c168168a478dee3b16b6e8d463fd47ca5f7b472878497eb9a60f6f98981d8c3056ebf7fd9284bdd6b95ca010aa80c60d72893aed804d6799593112c8ed61775d4c15a3ea54c4184b775a88cc3d4f7d9a36cd1e77948ed33bc099eb24dc7a099ffcd2c94246758cc4e49f04b6ed0e8fee43e57b8c18337293c25f1d9e650def88cbdc08497d49083aa0ef60349251ec123ce574a5dd6ca1d14a967e7177aae64d9678571d6b0b0769935a1a2a8dba53db6c5b7067210426c64f53542929b31d565bd25a480d9065d79852b0f05002964772465c3fca5f8307308055603039b1b56726eea02a8cc19c5af41309f145000d2aaed3038c17911677a2631242280c23e9816185c75e5dab43b4b04c8777a35721605aab1adab828f2640ec5b23173f6cf5d37ace602ce5af62108ecaa540ba46594181ac9869517502aa73ddedc4131ab152b53501dd4aabd79556476063da48c4978835f28500f810b77715257080d87247354302399485852314598fc6eb1f93feee6429eac96d37c8422dac30f473b56db0dcd2c64f1c18f91950e7984a88b63979b424c6d4a36220019881b5aaac715e426a6976a300ff171a29778c82a1520f42a2f0b10d26035613a1e0511720087be146ac9f0cba2c1929c0960bc16065748573d61eb195de53ab9ec802d247b210b747c70c45aebcf39229e4b938eff354fb9f65cc6b52ff0163494744848885ee577048b506a95112ed45466252783a4016f30e29b1928acbb448379723d51bc3b59a62df46ca75f64bae27aa2d9456c66e2997b48274f425004e6884e296e17912f7e387db452681cb32e7217566897287fe9c38622325a8c6716e5a767a626d98836cb779983c31d1802b0e0bca04bebbfa9e2cc02429f987a31f73274ce5320e1b0cff8154da331be8ee21cae8c5037a1baa4956b04833d4928a1c32147246002466716ea9c69f4032d33260c338cb13ea09e5e47957700c33bda9b147a3f3f64b46c933b7f4689d2797e4ad24df42c002a323ac0e781b7e8c8e679c949ca730826b3f6c28813ac24ce7ccb21136695c75b3d028fbf6ba94f5a06115c72bcb879d64cca29309502836edab5c7b2a79a1e1204161369c5e8b63dc513d0aac9fd366387f0aa2e736bc09b4dba05414659a6937264ba982b419342e8c063ec64b28663cbf4d12aa5a6ae5aa9056ae71c4f5643cff81ce6d7a8d29a250ac27be274afef453dd176c462791c249a817329142c00ba332851e50a01660a47e35bbf3890c23be173dec1a1d57a4837975c14269707384855e897cb44c4bef532a003409aea41d2fc889f572ab20c0409831ffb0222cc7246438a95fe4a6e32412688b2cc8c1963e38526201aa9d2b0963533b2fa42af59e61d53c4bac2bcc09e44c5f9c4963525a7c015244000749e811873a391f71315d1fa60c806390fb3aa80295e77e80158c665ead61283271a1997757e5c4dc6893ad71a63a1898fcda02165db76e252665153016c90bb9c8423cf8a1d371338feb40a382c2c3f99840ea96f99246044f4a5fa5cbb8d7473110b4a5238255e5c3d43463b055bbe46211d2e05812dc46bcd539c56a15199cabe5019220dccc1a828a5e0c37bf130a6df762e395915654b5bcb5c3eaa7142e1706697b9914a287513e407ed376354697144b33260eb966316c05dca8655a0436bf47967779d43cca5edccb932c023351542857268a57a74c4eb08b7809c289c5543cc3730594b3ea33de6e23a5600ae6a68cde3614cb1a80bd7c2379c1834c349c55fa73859c5a3ad45886286973f1363a5a536a0b08faf26a939179f873cac62281260868569372dcc744185a55feccb261fb0af1ee7a50dba2c49636e09687f4618667db136bb291f4b4c129fc7635182720521acf1d67c719a283c412bc9165d9f883db9049b98381a4412b6599316cb39986a9c3f8c069aedb9b5e13b82f3abc0c1cb70dbf0b5d1d66ea003676197c1be2c15bc6533a41804ce0c123fa55a87fa344d850af4f5b12fc0ae3610593e1bcaa1868571b2a618db9f1900c459376798341e4263c70cb94a9db42a04067f7a5310c606bd7ff661ef3508e6b6b6373c7ba0c872b8019676263bf912673c59a4c51372a2da860399222654518063c3e1f07cc6c93e91ac6b53f3c04516b76da65124325c59d4360091923d1883977a52b328c0d508d0f039696db843bc12c506b521ae34c9b9d145047293a6eb99686770dd587c92bc65aa3a4083b40e8fe2cf891c5152281744612b2598664e4368775572e4a03a9ff53e307caf081ca897dcb43061a404c689d934653769ad59d68475a8b0e7277bb280ac77ea7b1a1b6111c1574c6358dd6a472c49c264965f8cd9fab7d1fd2c5f4c3a4ffcd66e5b05a4879536aee3074b69c3d4e6b1eba48a8a50609e70baaf4c552f680f0b02afab2da76d8833a2cbc3b6f782b36a1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c +ciphertext: df97e2ea928ddbc0fee9eae81ad53728a6a3a953ecb6e3071ca382f9357facebc3cfef5cea739968c1b98081b008096cd4a4a6ca597ae85b46340abbb9d700add2b26b14f4f9cf68780815c4f38adba9b9929a0efa305be578c55c5a028cd3ba6ddf750546e49bd4748064afa4997f09254f33c68bed867ee934f8b0a5974894726446468eaeaa4129e05eba9d5d1cbc878be4d2d4a881a3a8d71c158db0005c30855059cdc29185c8512509dd9567a8605feb883994479426b637dd3c068d47c98e98f18b6f69273d2b168bdcafbfe90579af203ba597cc53ecf12eeed9b6ec7b177d665bdf90ebfd4a9fe18863a23348324e9b891b60d4c720e4f67241dc6ce5ef766edb36b3599701b2343f9406fe97e8b7b77a030a5eea4219f07775d41a4e613fa41d99fabede9779b9b957f8857b795538ca11fbdb670fe2d96131b0d7944f75944c99fa7d1ab90ac25cde6149dcb3b9e128fe2c46e79a26479008a57f6a1155291950d0963d5f702ec4c58ca46720987ede70518dac5f2b8921cd0f367f9e0950cb44d9016ba078e4e22609a849a2a34bcd8f4795a3c3acf8e02f25d187b554dc2edd9f5f68788a007e05abc44f5d3bf9126ed5060e08eab422da200783549c24103f412cb9da9beb8e09a96f83b73328347b6e2dbd951194197cfea6ec0bb2ef3469d50c991e0a348f34cfd1af87fa1548bb501bb34aaa69e81ae0dc314aa984144d87cfb9c973bd16ea7760c9816d1ac8cc745515aea51eb7f538b4c7abff9fb184b34d01fc94d82e1b3f2baf0e8c0a491b411fd570e1d02a98fdf9f0098da68c5d026b07e97672d4abeda9ef0ce886f83584bf212e4f46219e95fd33e6cb90521ff7026e57108e0eb73bcdfb1160875a99f95b3d955f444321fbeb431c8864f7d387ea52ee3c04088b731b53ad9529eedde950ac39ed114a92291c8cc7db0dbf1815d5066faec5c5c943657f562b43c0dfd6059d631e2bff45b440c3dc00cb032ff6c3ccd687620457910a72a83488ce93dc99204adde3d38dbd3e0db8996216b5d65a11215e0d5865ee6aa848d51464f28aaecf323d32e927f024abd06ec057403ae7c6e931c320c1eadf2cc66d30b5f854f52f238d20720f2020b1dca40405f38d3f89a19161d2cad8e85534ff5a2a046db25c804c53667d1239df5bb6052d21f8a43136f694f3590ab02bcfa13221fd80838e5da3ab0dd3c212a2ee094d1be5933f71fb62f74422d38a05bb842be8d82ef68830398d7bd1c822fbe6ceaf6361868f6a05754b1aa176c4b84da0f93e4564e1cf2e47d54ab5308ae66ff66b0eec00afe8da1773ffae4724822e90d52a12e174f5a72f5b6f18ddac08290cd4131c5b5b9a5a1f0cbaf71147c4139c45ab2f622d0d4a9fffaa258d6ab7d57185bba9837494c1ce264b8eec129510f761483875802dde735ccff53cf7de86ee3b14fc81432bfea8c98e8f2fbc680efb73dc3e14ed27400aef7a9e834518360060e0ccbbe151c72144507d389233b1cbff481e8d89754d59b213ccfffc657cb1d25fae45b28fe152d73e14c29e49f3eedc3823a7a75bf38e8f0d2e5872810af32e5ac4415b07d0379edfb869ce7306e8e74fea6953066f12cdece8cf01ca4723f5dab6d44a4a60e4bc79ea7b0d70492c10537fbe5d5bb3b61bc3a497c1c78333e2923f44e3fcfe0ea24f768093635a66d4278e5133626c2be5ced1e5fd6e1f07a47d2718f23e475a39c7bf9fe53cf26aa1d581e447d3df277951201a0f63d0ea7c27de1b51e472ab3668ca5884eed5561140db1e46d8442afa25343d968699df67b6ae7f17786c674d60579093988bfdcce853e48e1ce54a5930544fc6548daf3b7a8478014648e7b5625b87c68404b9a71fc3bb013c77d4ba91f75bffecabb32d0a9add7a13190718cf61e7e9903b3317e97df05b64f1e85ef0a164dc986b44ef94e250faed57c94dfca9991fb0dc3e044c9d8d13080955dbc6a988406a428e64398aef8a9977a0668edb140b38cd38e172aa192ffa82b0b45d3aa9edd568019b948aa10df147b1b60ab95bf9053e83d9881ae88ec0569fb7fb3cddb167025bf545083de9ad03a4dd7f67108ea4dab51ed24ab192087fa5816f057837e1c0c3fed094ccd52ca892e097e11e1ba9d2e827555d91d3fb1c19ef625ce6761c66a19eac07a3ee51445e5cd130cad23f5bfd247c443106d8b8f26acfa36d80 +result: fail +shared_secret: + +# Private key not reduced +private_key: 68f4f9be33972613c71269a6d9cf8f3788df659bb7329478251ba1f0b7ee539f986f0ed64d57a4a1a98eeb6dbdd2244908a7ff138761469962b02ed78f98de9005431a6ed1e2238cc4065ee72a33cab77529c89121aee6774a34aa63e094be5a133b3bbf24ca44787294578312a9648d6b427cc630be94f0ac73ad7a5e75563b47169465882ece97a74719587f6dba693086d0ecb86c17de4429df64080b7083145c1cdbe43933b902d463ac1f64c53360c50cd5cae9f8d309effd67795fefa9273a413545f9cb3b6d406eb2d4759663feb0aab989b1e4fc41ed5f53f7f51d56879e57c40dbaaeeef6f6f87b4f4e0ad8a7666049c5c6af4446261aec274e432de89eb68fba6f8c846417f3b7a6449f268a7e8b93af9b8a9865fbf2aa940e27785a8f4c220bdde9deb3d118813d1c9749a345ca9d81819ea21ecbf028aebcb7434097b83fbb8dfeebbda8a8c3719df9821defc0c6a392ce5a48b56a73801accf9ccdf55c96ad21c3ad7793dd62ac413f9cb25a75065e68edc63508b13b90b6bcdcd1f7816d5c1e4bf46b1ebf7e515f8ebf6b946b93962469de91a70ec36c848c8bafa3be319ace46f2f4552f6e92967d3ed8c441b5ee88b0d407349fc59e88b76e847a11b527c6479dbff8548a5540ddc811d87f7e203b51699a0dc85820ab9de7a96378da9e48553726d35ef73bbf90c2d64520be6314a7005b5dfef5b6a3c69b5ca2ef5a26e699d0956bca47394567eb0cc4145fca15b2ca32a85e94694e82963eadc9eb9efe6dbb30e8a13d736e67aa86d1f517b134cc05ea6831a80188b54b16ed6366eb1419c4991beaaec6ff80a2ca421a84b1f28f7e544c27b88c1db7593fbf3a9146633de4ea2cd26bfeab57c7c0ec3a8bd7b0fae96db5cf1259badde8e981d9a917b4a7bbbd45fd277353a8e7b78cd9e79797bf41ed77beade6de9829c0ec6beba80923da1aa7f4e3ce39931b58c07344ec83ea1150f470828be43b33601667e46c66a59979b8b2ae5d9739a7da6aa19ba6def58dd0e3bff859b6483eef8ef6f62a929cec408974a04ec9e0c9c6aabdc32abbae27a36dc373199f65a18d4b3e41530870dd4c127c7926c9dc46edba0f99280a5360f29447dafd4e757fe10486c3c465dfe4855b1d8b8d557b9933f531c0b434275f1c8034518e3fbd5a8ec149883e8b95ab25dc051793384c9662aa795c94bf5dd3957fd3382ab1e7a9d6b333035650918cc924732737aaff69472b4f699aa9f88c6af4946138fb955385a8a75f2088c153d57275c3e7c97615c87f1e1ad49b544864c358aa9cda30ba788c2f7ede836e567084040f83f23e333a4d74c55e5face2dbd7c66e42d2e52407864f62c3d4836f2d87394e256e10e133316de51dcbab02909cd0b1d75478eaf45cf44543e912b4d31de9dde07e4aa3b37aaab8f7738048a5afbae9677452cbbfdedbdf05ca5b3e6f577892555ed3872bc845f97a86788a957799681100f77cef3f35574a6ed9ecbd49cca68c870e26ea7c9cc4b4d2f52bb5cff7cecd863959061d73efd366a66ce40a014cee914f734a9b79d67bf7ab6ceaf6afc1feb9b2845d2fa4dcb7e49c199cc7a4f885bf5bd41d04e8eebacabb51d67042b3c9d4fa72655947feff33a778fba0338ba0b6ff8c58858e48281799f94acc66a4e48b07cb1a5f8ae6de647251758a2b7ff19a34c6176614dfb6294646c5b95c59d857320dbf233b9aedf9ea68388f0ef74376ba533d06487939348d07d681063d78466b9012d6af71a76d18a4e5f063317ecbb394ccc7b5ace625eb1fa76fabe75f186c9fb3f785e829cfb1ad967feab658439c73ce93adc47382c63544fe5cea89a5c270faced184cb46be8fe4ed8bd07d2535fe571b9a433df99edb8d8f9ed794e58fbf468cb7b9b349a3f492f43c57f2e6282ee506daae679a54e50be986e284e6ca5466bdc8b3386b47f6ed3c0d7dd796b4d43ee7e279a9a31e434d36f5efeb4abac6bcd3014bc1ffa5b642467482dd59a74b6b4e4b32bb8b183c76d01bed9909cc79953da2ce6abee67504f1a65f2d4c5a305639b1aee31776797734dd535bf20545e37b336248658911e4c01c874c7f78bd6d88ed73356ebe5b14db386cf677fba3e5f8fd9a32039651a28338a08346976e3502ca86f4830dd34b806a467fc2a726a515110c076dcb486eafac9040ac0690b79f5278022f59bfc316494a782d92310489c9f93e61585b3bd292165f651a7017a994b2512f0a5bdc8e77e9bab7e5cccaa7bbc779d445e5f16b871989974d92d2c268bce10764c0146a683ae56c47c4644057ce8b4739031879bcc287b194cb36fab6916ff563248d04851c74a7fe87f4fea546a565eefd507457882cf288ed294783179577ee898bed18c97660bdb726867a2c9581cc13bdb263dbb414d695990ccb897fa31984734e3178e081856627b0a4bbc736a235b3e392b3996441198c41bf8cef5ec64d2f5c4b628490736cbbc076d8ebab4cd1ab4936935fa3aa40d941e85cb08774520bde23f24739400bd45b1b056d8a09ebb49a3e4b7209037c94a47084604697185bac8772122d1bcf22888f165546bb699b23b2262035135120cf677aa7f767ca049b869137999884e360518358852cbbca3f90643764cb30fa16cc009766c43b89e599203d6344b1081e97c863190ab57d42812d603ab56068283cd30e92e3f7a8989715479cc3735f3cb1ed9120e8b8c720ba35ab1178b426c413c5e89eb5483bb0fbed13a2fd0783ce4bdb1aca87d80000dd48caacb57c74b802c6b133817ab099c84f1c22383e57a759ac6eab76df67876e3591f32595a56a027f2087b63db7dc138cd820a84b09411da2284ac78445850ba820c31b1ca97f3e680e24201fe67154b935a36292b18857007953a848c49d0236406e7a320243fee64ac24b02952d0a02a57ac4fba19ce373e3382cff61160913ca55a091696d782f4134db83958ded48e681546ecf2be93c09a9bea7b3ff420c84a9107f4a75a2a1c40ba0f9e6060e936218f0c0904bb29add2305cd59e29d2b10fe667f9ea49cfd149d1d8bd62e549e08baa1ccc63b8cbc734a24017e4a099bc5a939828ffc8cac5fb5d388ac8613216f21942675cb714e32cfe666357413773ab5f6a2c405179995ef42635cc7db7238dd7c410ba529e7d7391556c5f604c38fa079a70fbc2e8b393306832fe2a8bca891d880209b9719eb4d2732581408a3896735143462a45f5e4267084bda97a9a5324a2e23a714c1322f4368be3ea5219c10f56cb560a78786c2a51db18c79f151f3743a7de67c43a35c63d1b70e17aaf4e4c48e300a73f9c07bfa776ee8797f803ca148aba782a2fab110a7c4440c5791354b25c1107106be979b2077d422a6d8edbc04225ac63c3705394c9fd5389c11855057572fb303ffa365cc2854a3bf620ce5203b21bcf7ad9c675427ca1294c7b001e37a02be18473d1b13d9c52b9d59bc267ecb1fdf3bb96c2b374e72e4bc0898441c47adac60c1955bd1a5096f371bfc709ef624078139feb979c9ef48bc0bb9100d0a97198b466bc5821978c87da85c4e4164ba61a010b5fd99435dd18129a6b379c3232f75c8789d486ee3b6c84e052b55066e81c409c182d4e84926a42abac49846fd7b6f7c305e234130026540a6571d2c241c2700ed4e073d0262bf196164c71a62b904938cab91cf12fc8d527a091c20a86b163aacaf2f25d1814bf2d435dc7881b0f0219bcf40f90f894e74392fea065fd1b69f2e959cd0a5850b002cfaa8e44d0867a16ba5b173711d77f355a71bdf7674299a91cc05f2c772a5280177f2551b6f4a986f3bf584a899e755464166c3220130e694616f76cc3722c999536b6d145dfa5a27aa591ee994332893fa87acc2df67113f8a9c438abfa667022b92842c73b15047d6db08e02930a6348a71472a5e04bcf856058e785c10d049af83736b2f78f8fa0b16b0b7e897cb695ec20d37c35190a079a57cb41ba5a0f010f4cb94b585466c9a802f0855946361237a0840d43487bf65bd9f000f2480afcfc03b3dbba6ff053aae4981fc619d82818251c0d00ddb269042902b4c28fe6578709374f2461b0fc1a00441b78582db2a76dee8729be071ea3c9957f5a3e75934628081eb8339ca5cb5ae83677d4c31d7b12b0463b57bf7aae0af3901a9795085b8aed0564d3755588a0829615785f322add179edf08204021b86bb3cf8f3528ad652437ba8b0c6901cdbb748ee8a2d854644cb694668b9ce322992dc43f2d8a7ee655be3b257a0974ad0649104b6b4e9a16bb8cb79a42968ceb1cbbbdfc6c3921ae35f6b22ac3c2f858184475b4f2a12db3158b3bbf2d64f07ee186fc57de21c26bfcf6b645f83cbd47cef72136aeb64469835f3a1f1d9511e257abfead77d365076a5c423ebf1554cecc7b29c0a61b6762d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed +ciphertext: 80efccbe9e2d761ddac476b72e873a252a02782ae13d9b8f863e943ec06f26f8c080b9d34ffc22a8ef2cee0a4797d781da660eb80d6e5160d3d88f0ac65c68094abf9f9199d2f92c9fef5f8abe17e80237943a66eb26406d46ff8768233b9e8f059c61c8638ad84add34752ddb6fb9e85f784c8e33d2537712fd29592894cb1ceb1dc6f2aa9d26fff99aec7bf00763dc03ba44065848d60a8ee2536fd1761f209728bb62c2935bc1d28f4ec860df4f3f16605b31a2105e2819fc2cf0066938e3d54058587dfd4acc7d716a320c31ccdea328454a0e8b86e56da5f7da253955cc9558c270577ced143eba13ece0d597ebe3e0a04e48c704bff12ae19e7befe7d7fcc20ec3ad5736206c836afdba38ac4aab46f28d65edfda9599e69e1944d0ba65ec1807719cceae163c84bd3a5cfa1dfd2001da4c7ce8edac1b9c9ce15a22cd7cbd63c56eb27ea4c06907a896574f15fa98a1b65122fa94b720530b04509aad646b84e2620c8f511d9c8d2695c8aae14964a555d7e4b276d4d55667cf709ccba138b2dae4f6d796d8b146a920263b9664a99a9e88639030cc01602d0984c72a52b0ec87762480277dab8c3db42a19e9d8e183f50b777f7b2e2eb44fe34c8b3689edecfb3b94e7e7655487ba73e169c7066b81c18ddbae4bb949c329e299d37bdec28655ff7e1fab642c961e21e88442ea00648bf32b9330c31ae883bd5a359620f05f00d31b5f0585d6883d3f65e6644dffcf86342f9dc8a7ae2641fa3f7ea8bb72c1d9229bacc2a5730d77b04b2a6f54b0f935f2762dceb8ef229ccefa06fd885b022181fe5b29e90befc48b044d4636e649500b94741b3a4f7a4098514839015420dcd3aee122dc29b2216bf03a380e7dab2c56acc8c46bdd8d9f1b11a3df65933de2a419bb67ea3fb75cf6e56020a8075f15a58bb4da4bcc02182170c027e15402a2d5ab76b41d4a1b7ee34f7145fa1fd85f800d9635066675d4f91e5ae4bfae91dc172b19e36e17831c062b2fc0437bb14c3d1035f59762dde5df04cda8f16ab5cdb981dac9542be07a330836958c9c03795b08aff25c525f0f585abd0e9068c68aa205c1ba880ceacc9c8074711180bc790aa51fda9a7897a74539f79381ac7a1b0044a482db549ed4cb0328cc51e944fecdc1b956c5b63e177aadf3f857057b1e0d63117343dfb5c1fefc3934f64cf5af9a10bb8ae15b1c3266c49e05bce2f96d87be534bebdecd0b16dc534f95697fd4d6812bd098ef3e89fdade0ff4b1a93d77092d0d7324037c27f402dd0c434e55d8a61db3c2eaf103b6eaa851028b4191cb88e32afe42af49c6e878da887e7bb57ad417b1e1c190c434d79c3ca319d58bc6c10e9a16ff3bdf52b025023788e755e35806f52f7f6feb72c4b687aa72a1f2bdca1eaef6b496d68b361e56d552a0c8c5f8c2affc345a2f94ea62728eddcd207d5c3291eb455f0b67bb1fa96fa296de8e4f0053e47e2bccb90852dba79c7516354c7feb9b39e0eeabf64382cb4571cde7a4913e254b46e912350e2d4d7a01e825571b2804124943b025acc211224b06def37c8c537823dc24d26dcd28502dcc56559e08a160fcb4f03bd10fff9fa86e6bdd0327590b603b2064302e374abde67593c205d5f73e03aead35a9041442f7f0a2e1b534be07d0209c0f432939688f4e1fe0fffdaf2395a457ebdd59b7a5f05d79139eec13585607e6ed69a1ffec0f6d12b28d0988b8b09056c7ed48c8e234962a52948842ce7d53a6cf39eecfc533d40eaccc868d0699aff4b216a8f43b94a4b84534608e3f3a97ec7e84bf9dcd5a02dd7fe47d93134abcf78184ec182c63837cb16222282a499f9ace26d59d5de962e8b879b255540291017d8c3adde725727e7276959559d478d6edd243236f74ff49f8eeec7972af6dbb73839238068ac0a6c1937d63c1c8358161debba36f18e402e4045d6c5ebcc55d37fd2eb5e20ff13c2dd231237a049bf1cc6bac16f0444943ebfdbd139b521d0bec71d38ac891763b8ac87b093d9b540dcc326381aea049ef1ec5ec701df7c5e733c6f58291da9a53a611f7ce6acfb99d45f7374f5f536b3b0b9c80756c79944ab262f9c6536a80f51545d46277ecf7fa0b569721bb207b4ce8ca4f25c49a04dbfee807bff9c4008f5e017902294828e777131fd89b032e79648c08fd457010415e997c114cbfac1a6d496570b5cca27fbe192c +result: fail +shared_secret: + +# Private key not reduced +private_key: 4ffefcaa4baa2439ab1e4ca28bbb4f3a85c606a636cecd553e9feec2aab20d0394a0e3ac09c96ccf6dcbfdaae351b3ccea0be2ca7c87bd4fa1a29e506ba9b3b617a6aa7a705c26b7830d68da3dbfcc96c3728bb278be57ccaec1f9fe7c416aebc9e9ae5f4771eb38cfb733e1093ef167e6d74faecf2d5b4c04179740d3eba48750e206c8c584355fa9c57d6cc84d1c88bb2a43fda99cfdbe4da6ef85b7ecade186ed4d8eeb7a83b738e7d60be8f0e045f9c608937b4734f8237ff746b47b3460a40c9ffcbe8b6c3d437c4b55df55544f74bf3fc5758edfb4320974698aadb053ef577d580ed39c1e1645101b635a49998167f21af3d87229bb0f9ca04d2766d03d8500eccf34d4d730888fdaceae6724e5892a8044d780d27b3f3ba3751cb9c9bbf6e1756e4d2f15339d1ad66eb738a0b43b8e0ab0e52fb6505dc125769bd91fb1de3672a19764039d9d363d42d8c4a536aeacee43f45254b575f7ec5713a3de9e9a8a9446b9fcc80368be2f67669bab466c9e486a94a941fdd7a86e46150ed0512788aa16e11c8c3da2be36d3074598cc7a9d9aaf0a49da6468aab1fb56a724e4139840dc7582b439aa78c9e94c0cd1b0c357e894dfc583380a4fb26174838d558c6c54ef1e634ac69dbf9c1344b8fa95acae6c6c23dd8137706d4f4092ca5cc2bab7444daa6ee8e535fc6a0ab7b59dff76f5558375abdb009b4d6f1e74113efdae343eaac5946c3b379c7e69cd5b5a4e838a2b0a7811ad5c2ea6bf10667b4cd7a2e71b321d2395fa48a030ad8497fb68c87eb1eae67d5d2ef24fbe9ab34e770fbbffc29dd074e697d28bdad3035cdb09772c3ff945a9bd9b2cc20d4b488d04df80776eabb475cddaa0efd3c05f1c792ee9c946f7e7984686bd43660eb334bf775cc557d463dd3cde3c9830ac8a66879ea04aba174bd8594f5774fa930669da8c273cdcf347212f67b44c3c52063693abbafdf65f4a2949c19bdbbdedf812eadeb7f6a754bd893c4771a13986c408a2b2f3cb2144b1b7f7b67a9e77e1af58415cc91d44900ace7a2668d3a038a21fff911788f42b043e19f986ab2754c33c31c92dda15f860a0cd580483dd0c3fe27699d1d7e4afd455e950cacc42e891ae845a53bc396fddb6c24f3584c6b575a535e949909ca7cd96dd5e744ce6c25b57fc0a973e8bd26197c6eec688a6ce9596bcb9879b44d3be358f35b5a31bc3d8e38f003bbcf82a540993c7404de23c66bd32fd4964235477d5323f69c6a99399055c8347cbb443c9ac5ffa477e15f29467e11eefe2928b337dd6a98f59a303097537dedd7074e77e06830497a644ac404226b688d354237742fdc6639a979625558ba55d9cad1d6121d8479333e1e5dff341bd56f0ab54a5aeb5bc186c864397d7984defebc975bf5b211849ad36a93fbfed5eb9926f7c6b96233f129ffbfde8f2fb3eeac68de96cdeaca785463c56a7fbc6d2aaa3c8dee8bfee8ce8fec5ad0f844ebe66b17e7e33807ebc7335a8610fce28e65e6b6ed1c797ee9f75ef05cec6ec45c47bb97b1f4f53e52edfb0339fdb84a7cb4da6f7ac81fb43681ed56c205eab791fcbbbc3a512ba340c566a9e6dcd1ad9dd578d33d1fee66e7dc9e10583e71f82794b8247f4c2b248a71d379302c8fe9d275f07bac252ac4d09633be71dd2a2a7cc24feb1449cee1ae77fe9cb8677cc3a2e9aef6f3bb786a8b3b585946de9d9ae296dc6648f1695b66e5ec056e741c4468a3db6acc1c340228ab88d83cb168982008d9fb08be77278c89357f438beff3c2d99c813f2610c96c9754cdc5e3626297dd9dc5c8b64babcbfcd2c9d4a52d67a1e0dc9256fa291d6b509fa66de596516774edccc48ce3ce45f6f515848e8157d9f23d3427bb56b465531463e85ee6dd341b3e7f97c48374ad778293bf989529edc39caa3ef23b341bcee8bb17ec61e488e46fed0091ab58f18a7f33335d22de9a973899f173fef0b43455afd0a1f74c57de029176901dd3d078e64b30ef89094c16d38b32c2973959cdcf546fd34983ab213a4cc235d3eb4f8bf289d094f8e02c3b23dbbb89d35c7c67ea1d00e8dbd6b377dcbff09fbb30c6cd244c8782ac46e98c4cf614c42f48b49cfe8e14cdae1e1455a41acfbeeef684fde40ae08ecfff6c2b339e1013432fdf751e58553213df481d55ab1318e2c501e7d462cea98864e291c2c727e6ef2349332680fb06b09767a2ca72cfc078163c140dc7151d869a9c785ac62c6ade5f7519e070a08269938c7796b54b482f027a0c63ac24a6a00f7a0e7c65843e1c1fd01bd11d24ecf3c8b90cb803626044d03a39fcca7e918ae418512631898f417c9c9618055340a05f67b6f1cb7cc44117af09922cc07e9522285d16c42a7b2f833b51e72ce1c28a3ff37ab697cbd90d96b3e460c56c1734f1b11280ac33f170b3447c07f99a68f9a6f1dac6083368555782f800bc7f4409abf76b0eccb6da8f0825cc0c696cb9119340f663317913a641ff369657207194b65fa6b1dbbba94d22b512b56877120a6edc10dafcb2f727349e5831a3dc8a539c0a55a517e65982eba97930020608094b93e481fca819058537bb2c051cb2c3f0e5a97e8365a14491fbbc03f603977273a035855c414812ece238d254ba7334cc5bce7256716077766cc21c617a9c378fac1786c1cadecd13948591198682cbcf0cb098c504dc4b16a8269d13a701731b29a71432205660005919721c994011ca3c0ba8c3178a6d80b2abcc9f6e6b7880811894cc6e62c0134011aafa69568a1b95bb43c815c1405b4351a7290b856c50e284eca0cc384a4551f455b503488313a341aa25f80aa02c97b9d3267492c31652b7654621a59f1aa64ae4410a1099ed7f14aeb10485f794e61157c1563ca5515684db66eb99b76836a2441139a0906b35553c9e3e317f5e2c08487697574464a9936aaba528fe2b0c0c6b058b791d94aac3bac180b0609ab36b27579864c5bc6d8288292387dc4931fc889a45fc8bad636ae2bd493a5ab401311084fb57c6fd88c2f0c504d5c463738ba7c5a97237c1681d8aad66307ef648748198f6ea0c8fd6ba7ec424052c8a9b070c571b136cfa86f199542b12cb2a77c6973494bd41a2f0b55cb0e4122d0958026b7c54bc42eddc040cea8470f738f9c9916c158a9ca6457d8d9a0649337a3ec7347475eea8c34e8127636b3897c547c0479a1e22bb2f7606afd97cabee179467880dc02c7b6f892ff3a7a29844476fa9843943d68ba4df2db6b8368394b62cfcd257beff5b8b54150407c5529349769824af105adfabcc53f936a8a492825d6a9b1108f1ea258c9dca2d739a600f68616b2094ad29207184607985e3bb784d7977c20dc0585233131f93fdfdc9ee151c6937c7bc7fa4af43b3b1dc4774ce6273ab04736308e89e21eacfb81845678a0c220309a3c9fe3104f61680f334227670f95f2b84c137a964a0a3a57525a4b99b231a8f22830d5bc588c0c705189b2e8a19c4362cb50186b99b5a783031300a26300280f279987ec058425817327b481cbfc789f659530d9c5d9c8432959adf71741c1f9353d9a84836a5a5487392d19b5073a72869ba4e454c14ea5a93751322b8592e8566236a86c6619648be1782cd03749d9b9604209ec66804c64913a143887212e7acb54d5d995d0cb17e3e27c6dac70904235f5c9bb29d908d8098b11739b16706541f31b53e3a384e594a7a640629543943a1262558530c193d18079426708117197a90b1c45e8b394125ac46238d2e22fb8750d1c190824828280565093999608f4113acc18370509201056d589041d748b2fc71da15490882805d3d3c0fa0a837400b73d25688c698cc8d78d144a80aba8372bf7c349b9c395bbb8adfb885906402eab1ea58b622ff45c4dc14c9d11708659596552b18a3c0a1af2cd7b558f15f461f0501c409a120b4468f2c09282ab7b25f9b028746fbc9ab77af4262691a64dc43d59139c21eac58e58a491e26e10974e6cbbb82af385c4f77e7312ccb5194902257d3c4a4fa1a9035a670b5db47ee67c1b07747b889a6c481490462829b26184be3c9b0d7a0f9f2bcb10c8176f03464772479e9b84dd28ce94199d31845dff0614d02841f4fc92f9221cff071551e82dc829c9cf991e42265f94f7b4dbe7b791c244e37c3ca4192f70c32cbe9366db59a9dd8582d6e69d849151cb7c6ab82ab8e7854c7b4c15b1557443cc2b1284b7fc7b16e415007427b5a9909b99f21c47956c45e14022374440b70415b896659178d3c98bc4f3bbe904a470e4838849bcccc2ceda8b9bb1e2af29169d5919145b3229fb8c9ee705cff4d91fb9729c6cb52725321f208f2d0b39ed53edaba2c350ecba69a4ee1f3159930f65c8baac80b2e03649c5c2f1142a51eafdc3edbdcb3c5150c608d828b7e1b9c1ace00f9a548fce01c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 +ciphertext: 4583baab569c07628c4931763b142daa34f7bade4707b002a966dae6982ec9efdbb2ddf1b82f2f9fed20289dc4851dd6a6e6540f63ead0986171ff9aa92ac558be96585eb1b3ecac469f5878a9b271f2388fc213578eb7639d018850148ed9af6ac2ef136e48a148d0f8b018d00f2d229dd4b89587782e4d3308daa12b39fba3a8b82de3e5ce1e381fa8770067ef16551b352893e21098830c2c973c04bc24dfbaef894d3c01f4410f7c8dbd7321a4165f9040a2fed09497db369b406a159db7a642fc840547804dc77050fbefc8167bc17bef43022eb0ac7badd682775a8f6dade61f443ccdd1e649247f17abcf2453ebe21c4b3af4eff0996f7b5e6024c809a385503a189b984b021e650ac2d182b947d6f248104b8592ef66052d80c8d1bfb612ae1d58e79d17df364c23841c0a969e9139068fe1b3a51cb992c255c21008a08f21f661be10c4f5199a7bc1dbed99d253c34a98504d85954ba733217545807a7e85f2d65dc77a054365a275ed9d4c408c0d10d9651c99bfd789f00a29b95c4a91db3c479a7a759ab00eae24ee49712984a28888ff16534b59c33e160fbd8980ccac1fb6a4c9f20761d9c7030974ddf02346869d9a95631a9bd3c87c3973693a5e6c249278f3b85b7e8011285e6757b908a8842749e93d8568e8cc570dead4f2d86ae4fdef2852f156dc03204e32c1c6946b9b7aee25a96ad20e122c52e6fdea2e1e37aa92d8f50b62ccf4cb3f44001a1a7ce112bad5b9dd005235fdace0741ff622168204981514aa2643e3c2c4c03601e3bdcafa2ba76bd326a86fc8334d2a3192b4033316b9f02a7e9fab545fc5580680363779137be9c49329d1264279d6587f1efc8a1591021b13af1627c172c1279ec61b23d51191efb898d8a9214df1cf7f2b1737a0e97aa45e813549f42e828f90c1e914093066a0e94da503932f931ed491bc43f4a8a689f89ce5e819f0322464954eb154046d3f6ff3423d2a1dd928a1eea9b496e64c928d18f57953b009c74c9f3b83ed0b6b9fa99ccfbe79c47fde9b54e2df8e819488cc5534e8c61dd6127615f3442384a6770ec9268a9bff0db2920ffb63c8b0d375781a48d4a11d08854f14bae1d25902e54900568a46e3916290eb3e0d7b47ec6669c93ea516fb93e7228e3723630247cc061404bf2a8209dee902ed514efa1fee05dda7daa39667c3b06b9ad0522be960264d4c06efd899333d61e68964c3a1035d95f32a4135da95c720958016b5d17b6da0931e95921aaf48ddaf762069230dba7f8d570cf42a78e0bc82327258b71f073071b8cfd69b24f3de704173fc3157c05389bffe6105cf0e81602600e18a0e3be22e052b975661db56f3c500c1dd2a99258b203ee2ae7a8d5b1b91fbd5c5d7c9d6b07f64d860c8721dc51adaf24fa2e99ef8a80a5d41c850a255be2b686920a64a69914071be73a460e806eebadbdc5ec665a4f26065dbaf0b9721206f761376f5709bd4cb34af09208970bc1825e460419e223c960cd7f7fa20a582ef9ab90b946a3017b375763265f8118056c7cb929f1789fab3b10010267515dbd9e3b0e0ee4082afb9f780b740272037cf0b83df078d4827ecea5dede4352eab5f94edce1e88564311e91d2cb1893d4b5ecfe47415025fee66241ec51f0896872b298231a222409a9abfb447779c180898209df96a4639284bac56d8b94f3ad67996eb877f01cca0faf9be45d540e2b350c7ab293cc3d0c49711e2b7d7856f0a1e297e21fa89a474cf96e2a1028007f2d472f9ebb4bfbd3b3dafe8ddb17c574c09fb4d741b4480f2e525c75a712d6127af50d95ccb4622d344bd9c2163b9014be4a050cb6ad7fa065ff2464ef4575fd208f910445cb2e0771aa1c97873ddb95a9f0b33c9936b4134f06adb22cd00c3ce148ee21868d30e890b44a6c4cd1dc02d15a4e6d28e31cddc125cb3fcaea52a184aa041708c4bab098e387f6b4862c7569ffeafd128472096841596a6ddebd47d4f92719bde6e6d5651943b68c820b6bf4ec1394a259651d2ad460ff28f2a2b9063c686f3df62c6562e9f28ea02568058e27ea9f2519e7485ac9c4028be344ef015449ae79874d22b02d94c9d6fc5c57cd49e548edfc703fee0a68bf7039d8ce4d3b179c0df80270ba9efe440fdc1a31120aaa88992dce10110e6a7a845929b86c4aeae473c72ce6abffcdac33f104a817f86a8d470f0b8aee3 +result: fail +shared_secret: + +# Private key not reduced +private_key: 04c78ebacfcafcf78072b8508905b42c5698b3c86d902dbcdd3ea3e19dea084b35924fd3a74fcf671c434ee39477e83d7314bc81a5b0a6ede0032af6dc55bde54c51955f50923e4212063b7e95f476364aa74e55e6e9a52bda41c17939e553c26388e75fe3c4d0fe3e402d543a275d6273f76e2f62d1a9596c5f996c4982817a4fded3924416b65e9bcaa45c6a6956c3725cdea427e757393b5a09d4de5694e8a6ff3b2ff10419f925ff5e169d41a0feecdef6dbb33b5bdf1ddf7e7fe8128e9c77e4584a89659caa85e7197588498ee8c8a8398ce158cf9a7c8b696653a941fcf57aceca7368bc0be8bf455ff2249dbcbb97eaec48fde3d5d11368cd420abd03fa8bcc35a99baf7a151f51581db3f61e8eabcc9056ad9b350644a59dbf83dcac4d2d35c81895ad53545d5b59bfe5455ab9c7caccb4418b5830838e0403a56619af355ab2448a69f2b848ffc4fa8f64d7fccb9c5164b7f306b109533dd8c690a5a9332f058a1978915244645fcef7b6ab92a83fbfa8fdb528aba0bcaab51e5fa54f57cf75c54ce56fbf7ab8414c9974b68f72357bc205de3d1a8d58ccffe781e7a83507a7e23fd195ec34cc94e25d18cb771db39a6d35e755421b969ab6cca1b79a8315b791da7fd7b7afdaf3ef6fe66ca583a943aa49e4aa3d943b7f3448ce639d2fa937e9e240839824547eefb69e8c5868f0fa6df79570dd1ed41d763b14cd8084b8cf0213a5eeabb0d85d7a0f8837e9138cd99349d5bfacd107f849c8d4efcf3f88fae9b00b5fc06bb665886c105786b466e0e9a431ff8a48db0dad35369843096f542396ea14397489ec1e93d256eb7c291368baa5d09e6b4ae92eba1839ceee153adc9b7fd5b6462d4938aa1f9898b9ce6bf5ec9af9db075f326177e2580a80c6e57d58bec597c5f6ced4d6a948abfa1bba5d1835ebed75537db8ffd5cbdf87fc5c68c4a7f66f973cec49553e207bd8eda5d67be6e5b12b35f3e84f6e7a8fd82e80fe9d4ac46ca901b89a5fecfda3b472f0a547901755194543e7a399c4363c33cc305345b79fad688afefe04a3e9a14f8142e6a77d4b7223d7fd3eddc8e3d3e5b2677b19fa8c1bb7e07e1db31f7e9a2d9dabc42dfea6ed74fa7d7fcacc8a10f4f015dfed7aa74153da8b80779ef71a86caeedbbafa7432d9d72e3cb4de09fc9264af1359e7dd24a687a492f0d351d3e9c61b5fed0614baf259752db556c8bb401dfc33dabd869af44c823edbc25aa2ec07afb5ec862d49dc6794a0668580ebd39a2309e5feba865a33603d5794e6f4bc210bb82b7a3915ceb5823ef0aba6a58ef7381bc89e4a8e7f0607980c93458343a12e26666c664832da7552c8d4ab349e0b56a1757e6e3f0ef80669653ee63a74ad9c67fefc7b343a7bce3cb5ac4c750d57c947bc3145b037d756bb8bcbf56d97ddef4c290ec0b364b8e033f9f70ae93d2dd3fd7e5ae57db50f1561fc3e68b52e727e66940b7e7a350a69aad45e516e44fe5f8f07235fceddc5b7b659f9cdbf85bc53195c75c447442e533b13ed8404db99a7346524964e312c48736c99a75e407a3661b49eff83eaf2f2e455483c44af45ecce5d721828313586665e95804f9a4e7d3878cf134a9e8e5ab4fbaa7125e7129d43a46963101390c20c552d4c5366b9f6945f6ed0893aa097481f8658122c3df80bf2a25dc52f9367991bb31965d35d286fbdc5d40e58556b2a8b7c98d11877890f9abbe139ff9bc36cea7463318c50486f9ed9b3ec39d65f93ce8b02e5a7eb16c4aeb68d7a057624ff5c0ac68b48aa3a06aa53493da790cb36840c8e1c4b653ceaeacecea13777aabefe9f55b66488296f407366dcfd3d355eb8c65f84aafe5f8f16cf51ba93781550ede5bf43ba4470e6bf1e4f36c4c78f781dbd0df79f98d55873aab6e8e573d89be9655497812aaea85ca6b95ac5e0f9d8d225dd69dee0e24a48f0e7a581eb4fda5b7c3d97a68e26c9f719e26089753d3cd72e88ab97796601bf732104acf744471bc562bfe4a995e88c36b8dc5479c0f22d4fbc6b723a2bed408e7341853a02d75c1497b18e34fe9e037aebbabf28bbb5c4c7ff22fbd2734bbf5a897e77f84d9f5fd9d3fa77efeefbda34378a64ee5e5c3258399386c49be2ad5b6d5d9724c68d42b5a9bf1ebc09de54caed7bfcb5e3256a52d4f7656b2b7819120a7cb68a80b91f2783979e1a329574272a3b154b52843bf80f88d947c79a58ae555e819674df71b13ea48741d103d345a8d4786eb43012fddb0b01c3baa6a0cf128b099972449ecb3de50020b025c486b4b5b115c78d927fe5e06bf8e29068d0b3d963c3b46cb9d1ba3256fba01f2185cb566556151ed2e1c993469190b75fa75259a5b1096d5a1647448013c21eca67a3aba096a4dc77f35c2447e81114f732148663a9439b1304b148b813f12c61654688d35318b8c0a8c33738a2f1bd2a1b6e8ea93eec771ec8c0094d4c6a45ba61579c72c2a41ffd468a6c679fc3d6b15d5a549b1614bc8874304bb6f01b775511ce5bcc7c055441ac72c34ca164f461990a57baaa98840439371c26134500377b39ad6d222feb0b67dff197c550541b63173e2b1b7031b30cc3772e97734ad3c5b6243b3269c48fe055a82c9f4d1c166c294b8077269304cecbc404ebf8bd82c041c911b09fd7c2cee33fee1bb754878d8143cc93b81c7e99323b5210e7a64c7a3b8d96c1594ff3ba50132484e663797246dc3238a1eb743c4a33c51c6587a224bec9bebcf5ceaf175dd37c3591ac7d82512e9ee7c4acba2cf5bb26d3a2188be321114a7724c797a2bb26cbe43b3fa03a8bc16dd5a49a68544e9feb51786c46794c9f5239b7584acff68a2f7561bb05e6b5505c249262b509a922e97c40b4736e8fc2af4017acce951cdacb3385f060cc1c55a4f79a60daaecc939036115d2f480f6f0315fed05387e99f9448b6155a51d66a6940519b361233b2b7b34c740f0cb64a7cf0bdc48677292b0d1ed5898ce928e9040308807cfc730be0d8c614d322735c1af2d2199ccca1dd80a96cb60247125cab18ce7a1c5e4f0c4b978581742c8550cc9c84b0632967654b968c01492557ba0630ec0caf04a443d9b2f616a9cb4ca13da38fd9d611a59bc697c20e8eaa0d2b96aa2db111bba3a05fb463bdf7a777cb91b1086adce17ded04be8b92254ec5442a6852134b5fde9b060fda258c18740b79970dc981cdb883cbe3297fa33ea988b07f9a581bd086d53507ce07536012a211c6b4de17b73a08153c3514daf12185416a81c61fe255a3e04b33e3c5a6a0188f6e09855ba504f838cb8417c2f0e97bbf5b937ff53848031274489b5366abeca2caa7636cdbe83f15980c02f207577b5efb947692fb40ae7b36dfa83b728478f0541511fa58aeb121c14056451654d0dc4421695864db64bc271a79ac0beff724b6bb2290cb64087b72297a6c3881765cd909aafbae72c9448b232093694ce522c72d2475f281ab1b633432175e3f78715de1082df66f74a351903b115d74489a32bb7a873aacf195f8f043922272cfec2798f52f65f4638302c62648199e7979f4740b30d38f7d794cad179ac960c838db4ad7038ab84955960b4822324c5d01c5985ac8f47138bab522db895af2f9a983494f360b061bc5120f385166a5ae9ab844c278008e47b655570430451cb606c24840b7a0e51268cba81998697a5653e33bbe47d43edc3249c32964e87bc8ccdb6d603c0f7387306b043fdb343e8500aaf0104683dc9488b0ad3d04a1c2657f11a99d46b040d0950d0937a4927012f4a78ee2405eabcac445845d7e88b54a8c57947b7ec0c12bf654059d93ba38ba2e50ca3fee8194053b2c9f10cae8c846710392733123b0eb0ad895216efac4931cc782e886fb2c87bed305cdcc690dabbeede21addf7468e4873919865b905b3149a4d686b7c96fcc014b578e1d36bc3b63449f467b09bc84a92b20b01bf70200e703a0ed084c860f40a336576274c7e5475835bcc8ec515050eb8215f397f6312c9b1db1ac1da29ff90a4ed58b8f8623d4b893e1ff94e3e48a0ddc5c221c0b34a798713897bbe16a4c298c5e9f44932b09806e554f76b76fdb8744cb38d00f24f5cccc75dbcb3f81233c454ce3664a807d82c68255c422866cec26ef6e428677b4db8f712abf50c1e11c9f014b9ad59077cf0475f925568300c49c08e4e17cb7a5581ddc17331eb3bd7bc04c933b646224d3386a3140cadd445b632268458f63942455ca1b164c9ccb2ae679ddb12524c34cf823b3626b224e466245cacbbcf57896b7acc6f6b702ce9000371473c622303db63b2744c7138363a832b2973bb3144bba8001999eef108e317890c4b63e857c6de99266629d3267db18fd97baa47b2da64fcd1f651c0028e1e5653a53302082d4e89b76b6b6a939a2f2f5b6b7d5931ff3ed6c50e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 +ciphertext: 930ffe1df39f897e44077f527157207b3bde1ab660a8ecf9d3ec21c73b991ce3f65539a874da5cb458bfab7925748164205723e059a080ec253a8cc03257a7f7ae9063d457578a4ae84527f7ec168496478289572405bf84a958214a776650db772fb8b4123abf91d396bbec103d0b5149ebd23148f2d97ff70d7979d9d0561181a0e8d866f8839238ad8281d601c9d855db0917e5f167b99c24033b44c598e0fdb0b1951d18238a2ab8c0281bbba81761ab4bd51ee9ce5e0913c76228985358c09587ce471014e21ac316828cf2e8664adacdf20ce6f7930e3f6dd9033b3b9f1a37d28f8905c21c8e8a826c9a9442ecddd9aaf5ebb47c5641d7de702811649b1aaa75b13ef896b296ce1f2af0a69b746cb8b5043a986b1320c241d42b6d1e61aa55aabc71206308a3735bef5879e9c34ec697233c2a7eedce55b012d9a1139bd3c03c4690f89fe825937a3d70d18fc14c1e067c9782018e62498d609424f34407b74dc3ce04b7e87ac33e877878c8b8ba19cb3da78bfb8457ab0c47a4e307be49fbfe8a12af06cfecf8784e028ffb00d181bb705059eb841d51af8c606cb241cb758c6ed3fe16bcb87a5534b4f805675dc03b47413856b67555af680f43f64b7b5b0094f70ac6555e0b517d0f661a0c9bb1d3e38730d434f7364c83adf7da670f1e2a26441c1c856a722764c0a6941823333f65e82bf77949e104daf3d9cdede1fdeab13e8a6a0142caf8da3c2d66cdb9c8726b8a85339f0f27b56bfb446d52e799de9bd0cb33ec0ef5848982c4c2dd9367e7108b174b8d3b3c3fb7913e55bd05b0d5afd3a035f24ab614698e94d2ea0ef5288a50fc98d521917e4be40aa038fd3eac0e7594f32aea68b4a4b046d89aad216adc9f9a824f0ee62ebba49e2a170694524d97736be4cde034b576590e3e955a946acf4df8c5d3c794132079dba476fea76b734e8224d6534a212efc7ad9af83c91128b8c7ab3861d31b2e6009c7d7bd0d1035b53f518e32d442583981ac415d9037901d222b5d20821c80964400534ab05f5068feef04256d01f30b28c66f5f83191765c54547a8c6242f55a0c3d5097593cda695dc83f646153ab958d8b0db0c4a5564399304b7227b0424863c57e8d8bc954df042050e8de966c2efd63a48ade9eca925137f3bb56b067ccdfdd44ff35a890ca7fdc1a8a86aac65a6fa5898a6f287f73219b43a0474c246d686d3654322e3f21de06ef63ba6bbdc85c168ffbd670f335dd9aef753407584ccf3fb0e96bee0031bcdabe0b2810836197489dbfaa17903afcc729e56012a85d74a2ab94abfbe89671e9c67eedbc91d7688c6e34e1473424e604961976efe2c7f3710016ab858e3bf1ab984910f9f79884c5817cd2052c19daa950f6ed873c9e52c0bc09e7cfac132e864aac204b0059474936eafa4b36a5a017383c6827f5b6b194df7b6bf8d7b420331175e35eb7ed7d028dc956920d4072c2d8a51cd306365e09145bb2c57c56aac1ec5e6147a73de749de38b3e635fae41402df3a0090a39ad95fade379a9fb3ae3cab24c04823f9e36b693ea722e65d53b7f5e6bd0c4a2f3fe760969e0b9f03317132812283f0a4b20b277101b2cf8b37e0e3d2a1c23aac41515348ddf0db3758244ed476cb6af9ec2db9b68ef1dd3196474c92cff905d794cb5f963ea78173263465f1781bcca7430e5e1776de8962db7ada24eb5c31ab574469dd5336c4b3efdea3c218259cf602b571c0cfb83f996fcbb6ae63ed4b7ce80f4813fae069bb8a6e296ad42b6ccb5f19da19db41aef3f10d7dbd23dcef7673ac2cd56216b794372e955c197d4e88734c11166f60d753341b76f866322835d226199e69bae5c40c45dcd20f8fa5f83438d760ac1d6fba0b8560c36a423ddd8980559e65ffda8d78c639eef3a36833f6bc9efa8d7b147156e6fda7cae1b30d98fc4871f4d71e3f52d0996b4ef746653ace05b60957ecaaa99deb58a979fb269e522606982cf00205c6a9217366fcb0a24d366f2861f8dc538255bcc24199626fbb4cfbe74b5163854501d5eccbd95a3aa37bb565d7d4e723732193069e558e72add81bafa75fcca810c57611c181a0619035a2ec73db33711f4a94d2507b1e0a0ea2eadd18d5ac25803ee01b4434eb7a4382455b00c3710f98d85281c1f27cdb212eaf82a865d0b454064b39790efa2d7c93b99a22605c618be3f126eb4408b9 +result: fail +shared_secret: + +# Private key not reduced +private_key: dfaaf2dc6c97b1f4eab3d6b79d183b1ed95c6cc3f278af5155d380328f60933cb26f4f7fe1d6be2f4dbc02ebc9e85a3850c3d689acb277096d8d48cf9b3c6b699864fc5bd85ba86fd2c9f396dc384d03428ceab2173380603b49bf2668af38967c4e45a427c04a5541357771266f77f7956335da5bbead33fc7b390a4fe778ef991189a93b83dfeea54fd64457977f6c5285fa7e2ef35c8461c38ec9bdc3651dd7fb4bc86efcd5cc63ae8ece4b6587bfb0be374ce4aff14dde75117453d393842346abf1ad527e89ee485cd8b63f4bc0e489cf3f7eb536609c4a64643da3d1168401f9420ada3f4c8ed4af688bb33f6909edf3fa9dad064b6fcb4ac12913f90e93bea24fa092d7fb9b77b56f27552125d57e6a7e939ffea635c1429e59c186690e67beac07785e0a58578ec67cb73aad56d37879eb07d653ec13d8cd1cf1058892d34c437a5bab3bbc83f76db6455d7a5edddad6fdea231a7d426764b966ec974490c869e1ed94330ce8ab4b7cdc72d67114096692de476ec8f0af0eac8df78aa10ce1d2b898a806d1cc1878360961ed6de8d7f63d79744b41eaf1bddd86e55a83e2bd7aabb47aff6831e9ba51ddad86208531d22d5e8124b66b4da5c0e7f49a29a1a218be106d91cc8e35f65fb81c397a000ab92315dd167940cef362ba796b9bd7b7f2ae97c97d4ab51c63f46fc368c77dd5563b82336edcaef9840be54e46cf22beec490ca7e8c66cae89772b2b96e8085abec8faa8e33da4b5669308e692545de09e76486350e97ff9b433d72d5868533f8e7ccfd65d5a7a870daec5aeed0737ed769f4d412494cf77b868aa7b193ae1a5d66eda19a10ee8c051d456fe7846bc8c52a19f3d76e7b4e6bf7bb3efa03f9cf14e6636620b54b893a3c9ba9bb7e685476f6f601c8591bb33537b71ba4dfa15c8ed6fb791930fc45c0341e4ee7b9cf39964a4a48ceb4b7d936fc007c48604dc4265a8cf677ab5e97d148ebf1e8f67e4445aaefffc4fd536392a6219d3c9856bd6dea6e0f714a5f00fe68f4ac31a29b71e0a9db207c2086ed9c0fa762c7dbdacf3913aaee3fd94f9c48a6a3edb5d465a45e357332a8aeffd4e4325849d9325be55586aa9535f86ffdddd2696a625e39c0377585e4295173dc7d9fa5274c1572cd89329dc5513c990c5c1fcb67aefac3be248c9111c752c94c180fba60064af53d35ded934d7d7f856bbb9703fa43ae1f5e2866f6065869c21df7e0c374a28732bb238b4279d5492cf5e749d7d293b40777782c3ac846675502958bba2395970af40a3db515996e5c3d54581a94f0f848ce13ae154f5aaf593b175635b6db63132ce4abdc4be6e984e62bba9f95a9c3d986c7164000dfa3586cf0433d68b5266292a4d6955e99fa67a87f289cb15b85e7bf8099f3477c8e66d0d398bbaffc23ae319dce68ba7dc69a7d6eb87891b25d4f9909ea19da8300a49dd9df92390c41f9735ba66ce9fbb83c81ed83930edc32cdc18708a9b188de2544d4bcd5753eb75e269b980ec34040a4495d2e46ba6aeedf3a8f228bcc112d6d2868ac743e8a3623e8bf7d4518b7eb0cf65eb928f3b643392bccd2b1ed83593fadbbe345781e9c7527e460a891efc5e55938f700b8de65797e6b367d445cd2443fa5bb0bfc8ca6e9e1498adcb5fe985a9d03c9ef3577e8e15bb11ac4bb134cd8bc8fc2a90ae0f8785e93adf818e3e4c0fe62bcf5393ecdb2739a7272edf606673eec47cec51f484fabe437c688b4fe47f189fa46373864aaddf9dd480e1aecdff3e07d48c5ad1ec3d7dcc204b439ef3533dedfd98dcff7471deae103c8d9a7d4e7974e27c7e0a57cbd9e7a4509ec96374b648e6c49d1bdb0b7354e3ddbf06e5b47943af9c0c498c8aec1d50eaf425a604d7f9a8ffaf1a77aab00c67db86fb5a32ca0e73aa9f6ef319ae5cc419c964d4e8f19276bbee6af76aa4fd14f78d5cf8aebd4ca01b6999a5c806864da08cf823116a4e56468abc468fc3fff333f6bf6ddfeb313c4b4ab4d9204d9a70d47d699dde1ec3995ef3ec757c138caa5e3dce4b9e6d153565af4dfd582af4d2684c4d35eaea1b36e5614ffdc7c92291fae69796cc5aefc882c5d46b4a2af9874d91c398276dc2dd6749ecbf4850d9be265e77c9ac65623c65e0a896b1979e9ccc093ea5113fb59d4cc6b2829b04a621a204a4e63a2308d728b28c16652fa939d455181fa1b7b44447d1abc83e46f9d5c4133b104cbc1369812bbf9e83ae1e58f66f8b7c2e56d902cca69dc841f31372b783bc6421723ab0b2bc21cebc7cdac0cc3c55a3a088c0d21a4271264945766740af06ffa65275f9c00b44b1b3e6823d3c29c0a509bcaa2be1486972dc178821c40a203849a3abef402408ceb1e543c3bef193417bbc0c5679c13074063e83eff63af43464b3ce47e4b86953bf21583c2515f7b1025bc0e50454a08313e915882dbf556fe9b18ad27250030723db50e5dfb2380d8b74874c78862a1bc9083e1a8438e546ff9ca64c4a53bd17c1558067206056a0f222c8a4a00b2a92631179b6aac71fc711cb635b008f28cd69b51b5d7aa6839a1aca1a0da854faa39925cf606ae20612fc9c7573c73393a033cc8417d427db29bb6973546a967354fca3c43223a657713e150262e5621053bca46931248386114564cd4c0861d4ca648e789efc4221f7a075dd8b119ab7bb3f467abdc6cd3c808d1586199ea7be6e75c03916da4c012d8e81843f472c8504ff4239d3c0881e0e664f6e253bf2112beb301f19774e6998d4e8b68332346898087f1b7460b664d5d10b1ae199ba661cc460685d56808d6e66f3a78b6f5382ee3eb945482a1419a0a509a8909e8ab02990166c84905c7533159a9dc447f11f649e367486e2191a6c48b61331fb6137051b1410467cc440c8d0f9c9369b8803cfb33da7416dfc47db6726440028b23807c0f68804915a09ab16c47287d4eca5f19b98839030e9606815629b1e153a5cdb954f6e3281749040d91061df4afb67a5f8b19b30abbbe9b4b98b39182c4e48d514c35b515cdfb5bc61553c7ef047b17ac2ab3d10fe7d86a78386a0589072fc58983058a6959915b12a80ec79035c660afb04e9670cba471125e7a16d9fabea6ecbfe1d18904757b0bf6a459f0087dd193be490b4bf87bcaf772547b863eaa703ae18b58926aee14cca8015af2939a49e29d546b968ddb17eb62b9eaf9ce53949e7477c4e9893a40766a4a15cbc392c73b313a0ee3201431bf3d5555dcf73174f3299c2b88dfab4430c08c94183c27d1035c78769b143563a942047035a6c2373a03c0bcfc3973db4f8f25c002c46376d6a6fe103bc641608e98948d86bbe6e89d5405542587aa4821c30ac8756f07c593044570f536b4b07fb14b3236422d01789822aaa020e4acd92126809b2d47f49049875c15472a37b4b033fcc260fca04ab629474c9b82450ae6572d891a58629caac895bf2f52babeb6974be787397243b20a99f37b52ee77934ed2b6157ac3351b9c0f3405369885a54bc33b2c487200ba8a326b9d1674209924d3d50527517978eb040bf85ccc9569a6b3138f072084595825a994078a09bee86ed1e75ee9e759b31c491d9292fd2abbe3cba62661ad9440bbd392cb7d303cfab4bd6b0130af1c3336e2768907aff0633f18f9bba3706434b3bce7c75d6c40753b6bbeaf11c47773cff33b5067890fd5b8548e66c33d25906a066bc421617a909196a3986d362d3b80095e1077a5a087238054f2d89e0fd9a0d570c5ee2aacd3abc16111189aacb4d2e911abb7aa5099bb4a269d760174c324094fe944a4dc55d7708395f6aed8654831f7c3ecd85baf03c44390193634b16e1c91aee33979666edfb18d7713c547a90ff9514ba6469e0a6716ff4c0420427bf00b794775043e162e798871f710c87ff423d5580d873b7f624c96c7d63e23ea02b1c800914a5836fa73d7a748472b0b7af3099eb933f4a440ecd48262d4c9de4c044ee30cc51877352b53b0c1c14153c88b44931df12ee8520cd07117a1266815b74a431652d33074921c1d6dd6c0104aaa3f1a84e2f7cb24461290fb321d706113b172a2c7bdee921dcdc31640f9c749f4b27d024a7488728f605f8ae904571062ce9b36c009937f51722639782d56496fc056b06b8a4a6c3f402649e0c15eafa83e85a40eda43433c44b6d8f037487c9e1b66622c6798c94b9228c7a52bd18360e07ac4b057218469ac09b397477d7f5325ca47b901d0a5d0b6977194a12f71abfbabb3d910a8cbc52ca0dcb4f9f52d36c22b71b8513070c1c6c9a33397c79e4680862196cc1c3baea5bd04c58ab295b5da152a98a6ab3035b2c48478f30cdff392b47dc011e8fc82e0914e5ad3c8eaf0f76a57327c62bc9d4d63a647d85d1d66436cdf42ca198a44b31aa9f9d28b0311fb858cb5ecf74eb770f89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 +ciphertext: b0ea256858a3db2e3e527bc33fd2d678666174c55219aedfab289dac80ffca03e3731f08f3499c6d0ac86b8ca457762ec1a49a8895eaa6a12e64314b43339e7b82b48930f148cb42208d507664f0c5e3d66f7ffa556a7370fdc4a1e07616d0ad0b482f624ec113d2743a4bbf2880bb9235ae5502c994ad277164d0bc7f4779cc1157dfcef551015d97cd77c8fe05c547be971f1aab0f0cb615af80fe622cf6188eec57bc3778ca72858ecc90a05ea89499a5b2a6e40b56b61cddcb49327920682919eee7abd4fd4be3b7e9d53ded77a9e5a543acb6f8abaa0d330fa8916d18a414c0dd4883b7b1aa3b1198e4339247aca326a757277463f2b414d46bdf5df3681763509e1c55ab13918c4b1a78516cc86403ba49950d1065a07f3cb124d059e5fd71d0617ea447360d6dab6524f9db46dedfbf4eda60b25274e14001e5413bfe7b7f0f3f503721715a03dc853fd7203b57c45237257a329d6c2479c63b4772bcae7761eae739dd12dc65d8d3786a8b28411b296633cacbe75395a10b5debbec79ebedb3993ff54ff04bf21cfecd4df1f1d791f5171ece67ab4b9d2a96fc8d233a778c9a597b294ccea9893bd9af82b4e2e10b1c159ee3cfc0f5eb867fb929ae518dba18831905ce0d9d3547ba1807dca5434edd9bce57cc1b83b8e02db852f63294247656269c5787b809a9358f96faaf07ec14731569e4778cb02ad894ca0383daff978a0ec1705bc12509cf33ef87dfb76a897f939cd9cd67685da6be0ee5de1eac34df23b287dd823bc13e1984ae9091ceebdfa0f404b617d1d973ecb8680886cc6bee5bd142b7b1d7dbc611afd3d54d14f8b2af838a862982ed0662b7c35d4566be24bc10d8d730949c372a5878e714f4750d276589e35d490ebc84444bfbe3eb3b9217bbc011703471b2cd518800b4d2de71f406cb304c11c3c33402864f81567b5a8d9ee510c7393726a8144ce5faf17ac318c117a9f8dcc18b44905534cf88894f9fbb9b6075821b306911a4470771bec3a1b3ec97376b4b62fd56a51a6a94cd74c75b731c53029a2cb1f3473ea2991d5d02ea7572b572381bb8d4acdd1844d1a9399cd3cf7b8fe1fd0fd3dbc4e9b15c92ea94f1174cf5ac0401bf24d9b2bc83aa3cb6e83d047e2b977ae3524b4c194b4a45a261743d055f73d39cbd0fb6fc80e65db7e738a42b470a075ed208aaba0fed3cfb695e8f5a1d4443db9a1a8c0084587657b8d557635abf0274a00fb8c9e2ef84efb8115547914aad99d18bc91286fd881dac92dd2a2edf1d5e6362b1f2b35a00bc22199b80ac5ad5ad75537466edae8c45e92f0238dda6a2481e0076a625f1dfc9df3ef76b2024252d612926105301f508c045d287e379391e86a24e49ea23ba017c4b771b7b77ed8a43f0cac5ed918ffcf5067ba2f59e449ac8bdee9cc855cee5fef36fa00bb9cd53aad816626b4f58d8342900ddd5133cc98a746d6888b86e420affad19b1a20b7ee43a30cd54398b6b9bcc7d2788907a2132c0832b032b46e189a1526ab44904275b7d1ec753964f739b9e9c2241a77978552e8c4c1417e9126ba10bfb854882a778b615456dfef1f5c50eefceedc61e4d685e1bafa09a1f38109eee2b047b7954cfa0937718c21c7ab4c389a57083ef935cb73179f4355906727cfd4e188e60e23c1b7c4800a783b93a8a22f780ef49f0b15aa58bd6a3307d6ab2aa2d801ec897834d431e23a54a832f515522ef77f608a222bddec7c545873c9412de81151489673a8ed28c7b914edf285f8afd4388bfaf257349686d840cd838b00dbd9c8d156768bf0f0c7815d6b4bee3f866aa79c07e978a58e5c9f739cd7508b1d050244a309d98155a711134f4f55aa1c324df55e0f39bf71e21171e2e540ed16ae2ba99f6ad2cf267a7f6f5770a5f1a33a4078c0e9873b17e23100f312939b92e70acf195a38495102f17ab500f8f02dcbe6fae0b02bfb9d290e1ff57956122dcf411f1e6a41e47a0289ff3aa76f94e565d86a0e13f0e49e534b9ad49bf538e53e4fddfdd9b9655482a5d935c38949f5d7f2885be3e80aa7050bce4e5b39eea1f966452afad6749d44f7524d0a6c8906acc07fcfc85fc92b5d1d5dabf514ced9984925356043b3091d05e8cb55753e699f3c1cc0a9edc1c0207c8ae13c1c29ab76ed3a46893879413007d84ee61de5f9b6acc654b25c994af6054d092a482057a8ac6adceb +result: fail +shared_secret: + +# Private key not reduced +private_key: 536b38508a50a06441236d94dd386686e461226c3a3d2fef4d9d6608f7a78ce66d7f574d479a7154c87e1e98f78409968859356c7b6dd0cda9cfc473e77dbd377849619887ac8dec3c5aed2ccdb6a9633247cb47e93d5d983b80a37462513bee587ab1a90f93d3fced9c785be97b7960e96cb4cbfa70454d5d6e9022cc647f1fb67f786c4f386f69cd3caea65fc1ce4d8d18d9b6ae81f3fbcc5456d37b0dbed877f64f167c6925f789e38399356e1ebbe8759db8c8c3c5b90ff7bfb4e877374d41a7fc152be1168c5d971740a37396759f804bc988afd3ee7dce95f71c8cb4a53c3ade6666a8f685368194b7dfdc0b7ea977f9ecf4d85c6c59af2ff18f649e165f998d67ec0b4e5040bf78c2195d16f7901235eed5fbf81bed5f8875dcb73de7781b7ccd534a0646a4e3efa4a806e70b64cc3aeb4cd79ce7f643d68d299b286730b2db36f2963ab52eb0f3dacfd18a5a02aa807b57f3110eac239ce76cdde64664ef465b832c448ad5fe57093c8d27bdb1db2fed18dfec71c64bdfe4793095c38da3db7a26a85c87c5b888f1c389bc4f3ccbf434f4d994754073605c166731a48923cca3a30ba4df5cfee7457d5feac30bbd8b21c7eabd66c8173a84588ad47454afeea38e6ffef936743195eb79b6548e749ff960c7428a7b36c75b5f549b66f2c3dae3cbcc501dcbf77f817b9b45305c7cf39dc4c8d6daa2d443b03a6418b8bb433d9f2eaefa6278f60d35b5c2e7fab42d617e1e4ff649308789a3ac88817498333f2c8e65f47a99755929b35af1bb975cc8d4c707e56903f127c33e706ce2e6ab4228ffbf37fbf214b66a00c556ccba44ee8465431f495d96983ffe6d9bffb8499e90068ddf01b58b3d5667f73fd984eeca9cb8cc1bbd9b61aff4b0bdf69f935d99e9f535dbf759cf4f08aa76dd1cb88a4fdc187c48bf88ea10cb3762f4d2f3e39cc25ead6b7c6c8d5db71e76823653e4a64c6c8e799915d84f50b37403077d41c76062277b6a1354d298427d3eb52446864bcd75e52f9b598a9bcbcdc03fee934207cbeebaa932ce8870e7787f57e8830a932375935759c98de5d74cdbc3a2cb6786faf1ad9f8b34d675ecc9affa0c8c0d44efe0588a8a6a398e994edd03786a1679838e5d693c9b14a6d0fe6bf65a94697ecbb5a973ff3a158e0eab8d06ecdbd176bb0227fc6895e237e7bd969f433cf97b340e7c32bac8c719926c4a8cd6788f4958d6e89feedc0c798cf6424767ad4715cf2f0fc806565b5829bb4d9980210566763999056d75ae1f612bed7d6c0394be26cc1c375c757ca776f785210fb6e1fa8f44ebee643753f1daa627799eb8e3f0eefe34b546fa7089d9405e9dd20a9fb76fcc47e373ef8ea058e367f51f4b8dfc7eafe83e2ed7693e46be701aa7a9e3ba45338aa4c9c2693ea5b1f7c03227c97d5e5e8a2be54eb9e0d7265aee1c3f16198905e9c3770aa5bb9f4fdefd433edb6df1bcdd2f6f82e018912ebec05606e4bffc51f0ad44d995be8a83a5560a4ca3c554ac538a4516db42cba3255332cf35f9795ac109db6715d87810e697d97a4c88fba8686d460aa493bc25b2cc6bb79e4be391134ec2934165a77f44c8eb1416799e0f7e488450e43c42792c7753a8ac4805c13ce7a654b4a1bd98e503a8cb3ed462e40a42f72cf80c175663a64657fb61a9d8cbc58452141366a1f34eddec4e8d4db59e8fa9260a68727431d8f36a614a8ffa78e774d6d587153aca0591d31fbc5c4af2433f67d4345db36878fc87ec0329e78a6936569bb778cabaa1ffe1b3ae4efff4a4659d52c60a9dabdc37350bb1ca3eab2cb3854ae499a0cda9f5e9fa117783f975ce6e1f97d87fea480cdb2ab584d754b036a831051ba25b7b5b9e1442fc3a7f18df710e7aa3d86b85deffabedd3dff756b2263aed2e1e65575ae3e513733837d4bc16ff5c2f61ee5d53608446b7db9e13ede91e2afd42adadb50e5696d3f66c79497253c6bd5ec20999b890cbf1c8fcc9a796e42e67d09505694c7e55b386c39b6ceb85fd791d9583d58a904eb66f462bf622ffc024b4a6f0dceb2a7bca62f53790ae334b7b6f06d6ecf546fcd4e3cccea93988eb75713fa844037aa0186df67d3ee8f7c649c9785a36e97c2593af38c8f56b849bd68e12c696825982b5ff919d9942ec34d178848f68d31d58c83101c3626170b992c2ab3c181f3d58b554249aa9e73c9e691be2c6c402755ce0737ca2e2524ff59d3397b417965ed4c547f8dc97252c58f4367379f4bc9da75b64b4a40a329952623f0615117d28af7cfbb994b8ad70b2540978242ca0609a082dfd70aa5910778fb1cfe537c5c1aa5612029d9b972aec8235466098558c1bb4fa2b84e1cf9c16300035a57328b460b20facea43d5502958b968547b60a3c9255ea20faeba1f4e69cef343a6f3793d4b0418edec073909b6786a38fa3337c61c8f7af5a796f41a3731a4ca6096382423c941616452b6a5438977445ffff43d54e7b787cb9bc6c95c36003d87b9bf08934996f7301618c5a2a9b6d5d802d57c02018b44b0d95c5ac1c46b910dc518277be4c8960400b14c51eec975976975825b2d574965c338c121a056e2b9c9cd88ce4111c0eff01db722734b296540ab44a40214646c32713c87bba448d349cd5b160db48411a77593886c81ac1b59d10b51e8338a4178082ee858ff3987e58cb7e2a58cf23c28ccfc6141270c5ed0b883d01092c3095f0abafa2c43eaa7181136bd6e2b0c332b3e78ba665c73304df21d83cc3915f9c8073b7d6d907c13bc4a295432fb0a894958b98c9629d6a025e3368fa234399ad0aa5f8c8fb54b9af1d3a18d1a7ec1b22e7f5056c0d97595a801885202ff8c9ce2315ba340924d1c5e2efb2de7c1a468b684c8f7a363eb98dd4cce7ddab73447a5d263b2cfc4129be74174b50ae359c69f086153ab30038a13ae21ab5ef870c44490990806c4936eff553ccd9ac01d90b1e3d54bbf943b19236b935cafefeaa1059823b1d928cb77cbdc0ccff4024e79219852c0653ecaccc3d9292a18783c10cce69732dfc4585c8a45138ab94ef2c84de2aed22b98bee16bef556331e56eb43c3d92e55a7c1bbc0474251a70ac72d5cdb9b2a9ebb9be53c0cfc037c1678a1351cba5e91bcf7147002518b8c8933cca1c34f9da03d2b70e885059b259b499901b98345aedb9075aa1686e36a85c6337f01b4ea2f2ab29939eba618c68c5256eab4e6c1a1beb334f93e99bcf3cb31012b1252537f8d1a589430b46e487ad07cfc5c58a2865b0a92a621006248a46c837f095109a3de16b24b2339a509284c9055778816e9656c743a8929cb622f3e34f0141c820d231501c920581bc259c8be8b0928b58b6f1e2b34b628301230fb18c3904741a0f061cb613b560e972b406c44e154724f6af887a345acc63065481c4b468423742e742582386c00f2531c67835f3c679ebfa9aff871f0b006c461b760fb3171b99c9cc74a5378c3ac78c87c847a65f4bcb5043a551c223418114d58bbbf6aaa4422aabd4d70e7d78a61fb1af33882eb5bc886d154ee032b0cf300efbec2acc811ccd2c6968e90f6d146dbeb0932a569896f96a91ba3298c57c5ebb4aa130a7730a996054b9c058057fdb41825a2323799bb0a51fc0018428061ab3f3c12a6479c3367810acc4aa869867f5888a90a1ac51913292a194f1b3d8c976902221d3b0c607714f4fdc8196859c939b499e511f54e52d059a25449068c39081dd59624a6515e282935ea454cae482ca990a378a3b41e0b0adc6702a9533c0c479a4f6176be1a9a081a357f5bb98f835ed13ca29eb969f3a7c759b43464155ea78067752534d1044be2501c38387b31c662e6b9cfc4584e5dc43cea0805e273d9e56b71fc924204c8ad82ccb315207afe34efea97f72a21760cbb629d6391ac85fe28ac568b1b96ad8b888c9cceec93fc08825429614be352c55ab218383ccadf0bad13862778bca36285d67381164f5853340c0b9516ee3916700f4c3b8326e497ba7966456b6144b87f70c89cbc07a3a553c60b80e01c0c7e9297ec70e5a3017e906cf24593f86d3b6d1db26004b8ebd7047339468183c20df37055637995522a8322b04618b123bb3b1cbf765beb8cd17a302b88166fb84a9bf1728bfbc57853b7de3f113257359f6b7835e9953da123bfcf545e5e3541c8620f5f58872f1192b67424b5a9909d5324a342fc74caf906c69fbe3b2384a2a9bab153439241d6065e0f944ef67c4d6873635b3650bf4cc4a4b879cca63b6873c8e681982e4a183557e0465bb0f60a8b9d97625065d4727731e173977a95e7bc2ce3494b58071c1b89b1866c85ff814aa4843f7ab5bee6124c2166757943afa3df3d5f59581246cddf8777c228d53729573ce2f4f51da212385808ef436eecdb8fb9f3c8346800beb4b9e537d1dcd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd +ciphertext: dc5913055a1ecf9c95b554684a294b4a03cb3406842c86ee29ca36f740c42c0e5580dab3b289917c7e3378c630fe329bcecd5865f474a9470fdaadceb4dd94fe7dbe4e1f0cb8bf149710c96080d8752e5bafd195e916d5ab5a9af587645a3e982ade25373bd38a93a14b5a9f09d13ff95a2943229388a420e1592751b2adc2041091e265f940d619141cc1f358b91669b5018757a71bfceb76fd04700842a9b3a84a238e4677c1d15374a34c0302b0ab5d907e0ef4d43b576a839efb86df9e093dd25d9f4792a31a3bac22589bc68c500603afd6ec99044ce0f49b23afad853b45e1ebaf9f5c63ac00dc05d4c45cebf345146d1ef38640c8a3f641e21612203f503c181c31a43519ca123b3122897456a83124b4ac4ed88f822bfcf4fc2ba8df4aa9bc6cb6573b8585558775eff7e84b330f25a5c9c72d61b163f2e0448a2a5fdab6e3aeb4d97835a1aee23f56281618e6df02ea0094273728342f8b5651fdbb19e0858ec10c4d2e07535d3d09b7a2c91b786665aeb0b247ad1abf4bc3297d7de00d143674d84d2545c84ffb166d39b8a0664cae9abf621121cdd5009eaff969ca3d68a2f6864bf9aa13cc500a08d650914e36d22ba7e7b485c065432daf4791dfd606223cb66b6bcca6e90b3ef6603bcde3dff4cac572177bde955695f0d72bba2c0a06b65f22a622c9ea109fdf051411a06a295a34265ab8a733ba1af947984c8b6c3ee8aed5bcd25ff26ecc46b8e70528a38a86c1de5eeb6e5d37147fd8ce1f70999f5c59602418f16ff49622a3d0a5a02111f6ee16cef7207ecb3d651290434f962b2434e727a277cc45156e826d3f1d5cfb0b1508781c077c0199bb567d545312dfc0f9ab768e02db41e9c4830cf65d047ef6e24865f8a046748279ba29cbf078e05bf0c63eb24f0ee38de4efa3418f1ae1f925c848cfbe8fda802dff00516e48e5d77142f0861879d6f63292cbcc2eaaff23224ac5041a779a6911ceb196d4b747e74cf4b770e9103f0934d95009d5b196e7110532a489b78d6e6f084af9abc6612dc01addfe8387fd4cbfb826a816f6ae28d88a451db79f5164db33b82c0a4249005be545346cb91f33ef9e941faea2a64984f05d777c0a4b5e34400cfc8a181fb385a84099ffe714b91801bef493a914355602f07ae87f57bf07aed84b7bcdac762a670d6b6674b9cad3678b880005c515931fb4c930c3a4fe48e1d8ab7f35a352c6d6c63f122a01f6138b36fe0ba8d28203520481496cb6483005d9b00c6b828b320344bd9a2fec60525005cb1185b9cbf14b368a096c6a676a79869921b72078d21a3f00b154a467027663a1157c14138cd60a52f691e156c3407387575bb410301548042dd9208903ef2164522e32276ee0497a166624984747438f5ff6da89d7195c725fb80680bbe9ca6f98e2de2c791a966b216d4dc8096acc625193f550bd84000179de531221763e2fd5604b7a68b7df8e1ac43cd2dbdfe0046b040708010b7be729c6c6e705def69d7cee1465dbb7af3b4a3dec9340dbfb548b153d11e816fd9fa3f8356c0e96f9d1c11f72448b631b63ef1eeff4ffdf6f7d66163dd2f0ab41611addde395562d420cb16002516acc8ab40cf12f76f4982cae50c0685d70371b54a37716e5a950d6fce4f4de34a8523654e840396ca498ea90e044cc7fe019204133a55c902819496bd4818528cb364a5128ca1f13cdff549839669f3bf8f0001c0020dd1bbf91a204abd21eca71cb52167a058b21e35122b9015133a7fbe038cd2bb57cc46a06cee96de5b0f09ea26354553c6fdf4f00bbf750c16d452f20043dc5b58e8a3ea04a19905a39d7174cc8a7af304c8c69f3e3c7f92a6d450f8820dbb906c98842dfbc66964758bf1a60892657b445c9015f4b1f3b7a720c63454f61ad925a60ca5288c490f5f47de14a0b880b19fae871cf15e67e3d8fb7d7a11aeb91ef8fe0d957bfab406200a32d83f9ac31a4f79139005b8d3ff506e65556c1df42ed2a723df287890e11134c0cecbb80e44d3e7c1590258528e2cf2295acbbacb41a60c209e9e7d62fa70393dd3e16cc487f40e0425654fb451680fea99406974a01fbd4054b8d197b99c81c1d624aeb225a1c380aad745be460121886f7eaaff265a237c25566315fb8613a623a8de975393d58cb6af63f4243f12f1493a6558c33b383555076c1bbd0a93974ac38e1012e6cea25d54 +result: fail +shared_secret: + +# Private key not reduced +private_key: 548b6bf006923aeee0a3699beffcd527e89da2e3792653549fb865d1e9ab9ac9f50ffddd913b83e02facd9b4b17a23cd1bbc9c0b46b5df36c3d5a636cda8d8e08b8affe75d42dbaddb9974e94e7c8dfe4ffbdb8e89fac4343dbab32c9bd90d5b0a1c4949cd4c4e2eda6248ad530e854946db4e7a950a29a911e432511f7a546f787d67ad2d95f43eb9fcbffcce1ac4cf4f979b59e47f60dae156096c0f93a21a3f86190cd1d3aefd1a23badb2c5191efe1e339bbc43e7e1b2fafe55f492b75b01396d0848894f3b86eefbccada8c55c73877f9d9ab996dd4c86c717b199a165cfe25d79f333d368216800efeefae6cfd899fc5f33456ddbfcdb62392c0deb2e7658c979b87d287ca63dd52e87aeafbd367bc066de99851332ad0e956eadfcbc6b87d471ac76bea98bd538f4fafc790b41aa97758efddee8f925f893adfd2bcf5dfc64667fdc6c06e339b2ce3aced139739036a724eb1d4bf93ee188d57354969485238669b755e4d281a7a5bbac250dae54fe898e7cb42ef6670891b32dd97494f75ac96c6bd1078fc682786d37dbdd74af04aa340cdd9ba0026fff1787b82df982d9a5fea0d38537b65c5bc68bddffbcffa87e24e5b79fb35dbdbb6af8673e56baaba7ed4cdf8db3d59ae0563660f9bd68e3d49c24cdafb59b36d537dabd8c4de2d63b0defb19539a845b51fb4594ca58bf967a9b88ad57f745fd41cdb8e79b71e86a34a8aee6a6ee3ea1e4d54a35a65e5da57c6ebb902d3f903fec5a89e19f0b3dcc2974038865b54c9711cacd1a2b306198f35f36a173e99ffa8fa966e4d30a94f20604717e8b7726136941e8dd245fdff3c599b633f76f6ed567b499da25abecc3fa51165f490db95fb66b6bce693f5f30603fbbb4d980d8a53d83d44f755bd798e6596a8ec02613d0bcab8d55574c93ad9ac87bf77383b062857d1e59e9e094b0b835b7858e76a8984ec639942ae9a5410ad649e6f570bac5ee458131bdbb46d3dff3c8c7b2d67cb21785b82a9367e59d395f8c82694d25756890b789ff86b9a755493efadb6f74dafd9cf6ad833be70e4ebaecd4a6866f235dc73c05e3162fbd4d6ab3d8366e04676734fc92699531f5f6c0e595befbd4f5f92cfc978842595668415c59592e42ee1e4190ef983128959dd4f5b71e83d2ba458c477e4b9338228b3ad2ae6316ec97662fb9eb95596628a3aad73954bf877a038887b96a991ca938baf61585eb22f9429a65a8ea4c637f63b313b48f2976f9512f7b702c6811b75564e58d9ffc3609479ee86fd5171c7db51776178afa83c74e406ecfdf9fef4c6db434adf54287dffbf45d679dd1f94c553673742c96b76eda9751fe54e61362d5ae73c806ccaf48aba8ebafa9648cd1b3a17e1358419ddcee9855e1f4623f9768198bfac9f5525c534c8bd7728bbac26cce8aa5f4e2fdc9fed37fd27dca769d98519185e0baeea66826cda14770607d3512767a4e9f45a276dade559956f67b7b1efdf0a99fc0aeed73367c0e7372e7265fcf3e9efc8e8f139b84a5f652f183c7f2f68c1c35fbfd69a586b7e6dcf5f2aab98d94587dccfc99a4c8e3ae6da15d9f4c87a9b11526e88c4787171c98fc1e466c59b3c83de7d9bced9e75f2b53ceccbe45ebe0ab6a0983e84e8bec41deebfb845a14a47c34c9a74234677af8b34dfaabe157f57cf6895e7586658649687cd754f832a2cef251ef07c5ec676c9dc41295bd609882f4da1710d8be7c3909318593857b602ca882a998ab0265f5e26fc60bad90287a9e7a3627909743efff272bbd2158e6311cb4548fbb5b093c29ee571712fe3381dd208759f6f2f4c6a9fc593337d62e3d11f0fccd52de54a7e90e9ba5df62db3fab78d69cfb0c18b72c8f67aaaed56a26ba52f3fad7d7e7472766f5be4acdd6db48ee38bf46eb1ff52b11d04f646f3da2e0c3f37456fdd29d031afee301c555f73b68e68e8f285714333b5e38e8c5d56d994985e82cd9448f9a58bfae6b88ad2e4bc5d7765ab4936ae84bd35a8878ce47a659778cad724873387fb5245974446fa52bd5dc5de7f0e6b72fe2ee9b2df4d378b6b5093e75997dd2b8db8dd5c67e13a30a9bab1cdebdd5007ce2d2c7f391a654defce94a77a83035f7d059f4026d9902ea9b4633a96d634c334e9aa073be74b792b18dbe8b672b2c2247d98c617419adcbb5027b320e54205ec3b9c37fb528be1bcb29624f0851a9844b83c5788a2332c0148c6c982be4ba98be6d9a54623b8183a66dbb8456473ace4f18829a56d1523497e1731c524ba3545652be97aece915ec25cb8c18364ff961dad655e2d08e14293a77963e4154b5d52a6d424a3ff976b69fd6c073b7bd960cc397d7511f76aee624240cf6430d612385a21a33838d181c3f77197e530463e952662e512a538b81e72913eb32357577319d29599ea2ca2e088c91681ebb295c5fb3c4f11643be6686f62b259c737c4ed37b38901eb7a79d5facc426438f6ae228338439d136ab68ba7ecb760a3b45c77f186c177c2f79f47f7cbc2a43da4b94371e4ffc9f8d520a9c1749d5b63b01a2af5b7a10ee47505598ceba4ca724f22fc15626a5243895db48cd2bbee25c27b171c44fa09d9dac21a11803ce0a6492b72d16803dc793cabab535eaa44eaa14b2d81a4162c32e73cb38a7bc945d0c1d6e0022e2785093d66c29e31616ba7ea0f58def02339ad231c3806600ba8612080d6dfbb50353b0fcc98dcab2c07473b34e05a556d777cb1982bbe521b1cbc58c680606f352b1560e7e4589b905b50c299ae8d3328a3729ac0420c3d23eca06491c43ba8d72af0cab1a869002434476bd7527f27b751c9364670a3730c52d514454e03386c66406a4b4315c8201db561e9b79c2ca4c60b25044e6bc1253465b4d0206fbf695470b4b7b8bc068d391f5d0b7e9d8028f1591ed916da33157cdea92ff46ad98d18e1ce6c4b2f75854733e913c5ad2d13e23ba51b7f8c2d3cb0edea793b55acc3995c97d3c65c0981f12913c88b56f62623f41e85a84543d4e4520c884981a3531d200ccbaec0bf1096fa7ac429a9b3bc1a2b38de159c2139361dca3ea805d97e67f61d10c0911674fe148b33572797ace2138ab478a51057306f010661d569ddd9a4e55e73f67f25f0db09d61f1951279cb79d814d1a21a4ff311be441bbba97d81935b31bb4dd558544babb18175b893357504589fe79170199129e78874882aa89b87c20bb03591f321419a41c1a78f87016b4e551c6928a37fa7c60708afc03c8b5b17001aa3088dca6ac9ab93fe5665f1781e36d7813945471f6945198983815c2737713f9c53a8e717bed4d9a7a706ac41d339001c5d74548388a2439cb0142bb6bcf2e23442155adeb4269cb39432d31455f0191a25822f35c889f2962ff081f1c1b5c55b9af0b14a414b618c7366fef512d94077470440fed7c2d101b5c9ec7b79ba17cdc14653b6c3179261a9401a0b20bfd201bbe243b8cd1322fc872c4bc29889586a8e302ac26b043b605c13c1300a68c95f269b2ef49402786819668e964c921f765abf805477ea239d3b8b203c7db303afe5a8c70158874981c663f1b3f8a645991cbe42a2498beb4579b314918c85a8388f31e628010bca96858a09e49365725b31d0726c0379709529c38b47e15678ac9625b28a763b579af908cc1cc45a5ecb23e5a6ced504b9e3101cc562be9714bf4931cbab020fa3e10456d23d2d01af6dda8dc6e09ec6aca54a3253f5d905d4b34b66250f80324060b1609083028a63aed377a7cca6a929da786eb080db750cf906c98eb9a105f288a36427519c0087e300705524ac343b2c448ead7802404417cacb6ca5a398c7e9c2a7b2855fca298ab1bd0fa9c23af9c5079496dfb2996a3738d5ea37ccbc24f1744eb9f5c672d74968c872392480fba91daf0c60fe96b13828bbefc6156f860ca304970de5695553a631a10c799b29b2585652065f33c6b53179bac6473b4dc2b277284181c7a2a9491ea422c5087358ef8835bf5711df91b38ab90000d324e7b6ce841830bd952e18583eab6b6a922427b2d094ea633cda75c94bdaa1a3d928fd2376a876ac0306b1ee631fe38987e50421389cb224d4045e260a9d34508d1739f223765a3a8f2699a8919b30f80177d9e141d7d9630b46cf5dcc4ff85045e62a4f0f86bdbd6367c1471ac4b22210771eb636c2bbe564578266b8682817a9118d95ade51031def42e0d9cb273c03e3f93ac97395d9f09be36eb8b2c21a4c74796ae501758b222101634d1668656b02cd0026c9eda07c0f3bb7d99b7fac6a78793bcddb2a18cd4262039723f41223d336451eb31911219750098125d62110dfcb20e30c6d5cf75212b294eadf4ac273ecb8bb5beea59108851b460166dfba8564a4a16e7f53e467431528a6e2d8b62b614d427846b701fbff5f48c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c +ciphertext: b646b26612445d07ae9377b787af734d0f1bcb2ca61f9392d5b1d60cb66fd916a54da0cdb9aa35d59c7fed3a20728bbdf90d5f149600cc7bc4e36e577db66a69acebedba78142aa18ebf4c8e2dc5b1cb919d37d171ecf6a0972640e5ee2ec09d60f6c8574a4b626dce674cec73941c15bef59bd002a96a0d5c47e5c8149382c1149c85be6d96b0404858c1c5cabe68e22b85176d4443d491b0f320a63e6bee2c0459fea321b4fb70313fa63948e7391aeb9b9c28490d80b1376b852a33c7460a8227669c8ea6114665c91ea9bf6c90d7d92db6e8365d42f325be58a7094a40dee5050e53967481253a929966aa469ab11db9c3a388066284a5aeb6fb209a13c888c1abd2110d695acea81487cdc8620be72da3e8dc5548ad50e8da415238a96fcb0504568c161e9ae617b12409b25f27f2c6f3554136a429cdba75a051900e8100513c02cb87a360d38bf0ad7c636898fd98010d68ca8377c637562b42e7327e43cf6be833c1432155f86b28a0c5c7f70787fd021a2c5bd689f79f8062c94daaebcf499e89b73fd9217c4c428ae08db840738e8e3c12d13d2205b3b29ee6d4ba9c3593346d04c770d430cc3b016b6bb024174c5a912639f30f1252bb46b82c1cfe20c923b5bbf3ee18c072fafec4a3f332a80179adc86060b7ad3d5869a2ec5c88b10058f86f27cfc8d6bd3037c599ad60fa9ad7d922f788023bcd585046f82bcf162e741b1e7e2efc63afe4236c2dac92ef56508a7766cb6e3999ceb69a4379bb9f0768e21a2e49b145a028023863e202aae60f2c9bbdc34d65811ca1757a30ac7fae86678085a2b1c54acb0ada5b2ac82bb6ff15a4d08e3777f3fca2ee1b9ea69c4ac8eada9213aaaa0e3c49ee071ab9b7a337397a3f2d8c54df4ed13c242521b5e3bd80a2eb844e174a04803c68f8c45e0976e0042e85796346bf7e027f71d24b6ef4135ef05abffb64a2a8a92bbfeb01b733edc27c03a67d8f4c369080835d763a17f1f210b55d633a8f404d361c8de3c81da4118ebec9fb17b52a9d994e47b93bbe01a70b384ce738e08ce7b0b12f2fbf5a02d20d170dab8551467f00479d0a7ae184d385f6d74ae18f6329e149e8264f5f2e0b9abc6afa0d675af74c58468b45e4562deca3168a1e8d41865da855a25756adcb182c307c0c068cdb2ea292968109981d72e94871fadb275981a486dd9a658764fb01c8c53ec70fc52a90c4eab76cda5c3f5283c84324fedee0fdf9758e5094c00f81c7d9c239797abf10fbd53138f4ecdac12c382bba60fa766c7efd6482e4f1f66dd4348004e02209976b8934266d5360a85d73510fb3c40848f40f5eae1af28f85349510839eeab1beaaea9a5b197a60e8e130618e08a203d2d633bb88491bde3380271cafd119b84013d9ae0d373d2f6f5299f820d7aa29bc457d2ba102ecd9591e196ad1ffdf95fae9ebdb79ecb148b3deadcd0754bf9823a9a14a42611bcf20d77e8aad7d65bc912b2df657fe8ff43cee9a7bb34c1e119e8f69fa00d6a58c0543cefb0d35f970c1f349c7ccee8dc22a5c0fb653c394763695baec9c7ea42a8e7e7d3559bbf67ab7fb57707a48470fc54821de07bbc006b3ad877d7c660738283043952dab37b5bdb0c7f3e538f987396f9c65774efde07c0affe3f69360789a4ce7d681f0cde4d22361d07afa2b1b9906dc67c30a4b5da3d32274227768e8754d265139c54ae96207390067f97c0e1d791a413cf4e02f0cf9c65aaddc8d54dae6440786131ea9510649dbbc7aceb1a07be479cf6a7421c6ae1ae1733e3b19e19fbf3b6401dc6b4b27ccb1ef24f4525d88df1fda4f0b18d21ed6259a81572f8d4136c3d67a36f28e5cc16535afe95b1dcff21694c7a62b021bf56bde5a31eaaaff38e60ed4861282ca8d03cc5a869e0fd6e61b3275ee433784925f6bab1a9734949801dee45a9acd7bc074113ec9c248e4011646c34a321b0a8c566b88254449bb1db9a8a796ccf67f1937bc9624b7226e0c5e47edd520ea4cafcb0590b9b1129edb25c1f1ababc9738e7e7e0514618daede8c10f7ac4a26a402fb7fbe34b8c659c781d17e3305d7f29c43a4199d69de39c9dedb2183a037d576e985d1adb56ad3e7855e9dcbf48cf19c07a1fab67e3531d70c28e8a587fb3a73e2de6b0022e6ffe83c485e4d3cfaa7f480a419f23f0494abac17ee44dcc6caf8e196dd81634e1f07a18999b27cf6 +result: fail +shared_secret: + +# Private key not reduced +private_key: c4ba61e90c3a88688510fec4673ff6ac4953de3553f18dec4056e8bc69c0f57b527ee459f27ebebf7dc731fe841bb7d2f28faed1bbf5ae59cb9e793d7b2fc4640ba87e78433b639bb17ee06c0581809675c80f596af67e382b564c5e4c4d19ea13f35629bc71aca95a512f39bbaa7fa163e0af3eb7e8b97ab3ba783a27c8b9eca6babd54911c756095d02b3f9063067b077d7a6d3a31c28cf34fa36dab5fdc5fcdaca59dc0fb76d23c44d64f09832d43b465dc8f8467f13037d59aded534294ac0458412c58273f49c39dbe2d62f317ca8d67079f207b3af7417bef479f34bcd81b1884815a7fc7fbb3734fffd8a164c614ac8547ce4ccfd5a6bc47d6424c36d4be070bf45ca335a927538d227be6baea4dcc33bd1c68852ee8e2ff7cc7ea931056fedb15c7f1114e676855e0bfcfb2f9b8e9f63920858b3db1cba7005c5e21c4effa94428de55ec1ce432dbf679c45802795e10fe3675fe5be6e6ded53f6ca5ff30d87a59c0bf68f08362a6764aa35dfe280e72285e91649bb39a2fd0330a62594aacc81a8fe9f5d04bd5ab8ca4bce4e36860eaa9e4aaff7786fd89fd935d65632a7ef1764aa34ce64b424e8bcf275b8e5bb2a35f59669b3011bf39f21eb2f6584c3ee9bfe86d8d12639e72ea38073c9c461d7abbaa5c6747e8ec2c4a78ae94652d9b8efba54ae482731bbb3bad36a67653ffebde884ec678b88d4ad4647f8b39dd6ea879eba65ebeb9838eca641c954915a917be53088d8587ec3d7248668c2dd3a27eff9fae3e4ca7b66053ea7a65e99814ba1e757ab18d56b7d9c13b0334661839c334449afb77df6eaa7cbaf8ad57acb2cade02e76ada2e8a29c6c63849d823d6ca522e39d3f8826b6ce76da373d7754cdce78c614b98a59b4bc60738301d3eaed7645cf791b3fa33740cf0b16493658a7885735f7fc38fbe3f4fbdeb904f17b7a9fc7af56de3a0e8c1d3c4b9b7ecce171731ef1c97693695fa775ff055fd457b8d7f17bf2463811249ed1c5de7db07c3a03784582faa4fe7fa0a0798042dfb0cf49b5233d2b37a46e58f914ad5eaf20dd8ad9ea84d6556a176affddf855346fc1657eeaf569e666683ac7ecbb0748b6ccdf6d6b736e79fd3a41d39413e5650d4f0203ebd286643c635644a567b2d38b1c6746757e956c663cc2f0be330e7c20e94ae939c8ad10b9be3887b8fb7ca9ed360b2295f047f5047cb8cb87eadb18b7f1c976cb436ccc0c675f99575cfaf4675c358c3678b3dfb34520dcaa4eeea4fe8a34737c4c21e31b7f4d0aefab6380b45663f6f1ab8510e5fe0e3335a60fd7473a46d9ac73974aa4c8b1dae595eaddc7b4d3bd9823c7eaa1c0a7f2b4746744bbdb9335d7b26ef55276a1b63c3b5b4800d0344033d93ace786fd99c144655d6a06d2e86336a6ee6e6cab8b772a39cbb3fc68e84390b8dd638deaf5d5822629a758b49cbb7e4507c7cdf2034cf65c4a070ebd1b07b4e2cea70ae555d7368a568aa0e59b5494239d2e25a9eaa34bf9bf9b2fb3eef8eb606e69602cada4024780d6cf9cb6c63cef9e87259f80ea66f07b56f8f8964579bb878fff5aeebe80931aa5e176ad53a890b307d6c06f6861265bb943ed79f66b87e96a6724634df6a35b8f979a5afb1c23bbe585a001a936d548599cc8fc8e46f442a6481bdf9478fcfe389853fdcba38546f9640d30c919ee888ea33297d01a6abdeddcaf69856a832cbcdd3894f09690b68eac6f7951b7f3558a284c82a8f25bf74c6847c8d834aa4c1e8a37fcc87c4474914ed91bfe54b6273bbfb4ac7a3b34ba6c5642a78a23cfe3428782ec9ee94297a88c2cd4ecd35d6c548289285999b69ac46346127aa097fbfa080cecae1a944ae83bff25949e27af6167b73948e47bb97ad548df59a8f2f788508eb73563f8fe73c9951d5c94429ad56939b9c5bbf72525a7088977146dd8b0d5e81b0af8e336457375b14399e4bd0e89c00bb2f07c5eb64f9ee6956943d4c5aa597cf1376ff7083da68b7c1a4e529ff5509cb8fe3b4f4dcbe4673bde6439ea874786544f7e81bb7552510f5572c9bcd37cf8338482e31449a3b6a917c9947876a702b8567327309b48e2a3aa4bc8b979168bbb2dc7ff533434808cbced5ba7f567ac0518fdb5cdf9512747d203c84ed6aac91f45522a4d30a887b8f44b4e35c7f9aab819e1981647b85f7b73ac0b8ed44a9ebe203998771af684086e00a0ba098841e7979baa20d82b450bc35b88884eb935788dba47bc63247de5cf5cda3f069a02874598468c6651842e56464d9731cc027aa307da811c8c163d62cd057863a8c2764f81c889d718d10267200c8c2e7877d7d853a73287d8b1aef013c715f69083b29a589b8e2afbc72a76587032936899244d435f1df58a957091241728dbf57693f46accc214dcb89fa35ac97c77732d0768e11b15b6d5c915ac78d5aa17323bafa8262f75b66d06f55eb015a5774a3854d09bd130473295a946771652176dc0479cb862cc7b93494df1c815d754f86c290f44c1c828228d48a5573a574a2039dc9140ee8a55c6abba1986938a47b0e84859558399a42ca013450033c53b1e978d5a3ace10a87761d51a19bc349fd19f555042e0e2806c1aa76436bc32831f0935c51384b6698a432fd4a014157b8a9858cbc216fa784e66bc09f02258a9dbbc402422cf652a3e430301678283d19889c7b61226951bfab2814a7c7a2899f83670b1a396f4d260aa869feb409b0af63b0b2438fbc72baf0753fb2c7473d577618109a9d2c2a8448a0e756b4402c7c0e280fd1160f20b9b384224fa2ba06ed2274852b15e1b35851ab6e8a5bcb646ab45a85744141970f6c5af2720fedb56abdb65603588d73109630baa73f773f260c63d81c9137100b1322d7c21181285b773b7c552a4000cdb2830e28daa17ca1db9bfa0226e2c1ca720e7565e80bc08f1c742e453fb2230138bc430335c2965386323b269922e5713957057311ba3394320096075b492b641369236134095d728341db3aa13ec453eb4b9c986085e23453e878e42d20c9af4376d092da16c8a9afa9834cca64f16b2b1561a4068c0245c4b6e329fcb1c0a9b15660485672ce70f3f17b486586597e8aebf9987af18bb2ce3267722c549a8519527515f4129ba5c986327996c38babd95cedfc1305f4378fd2c8b6761a24334192d47596502c86080bb202946f34c08d7e201a3ac937844b181d739b9807ea3d6792cac7a7a1b4ba7fcb2c5833cb0101291523208e7bcd486737b982c1136381be16f75202757fbb86970194c4a32eed31b01ccc5a2f0534bda8ee61b0f4a2023ca58b415e59a8d9bbfa9964cf765b31fb0c565174bc7b006855c9747a66747e18e954444dbaa8272a15cae2b7749b08df9811e8cdc01fa46a362052f50aa06eb2249287abfda0aadb2e719f1e1afa3c29d7c855a6ca27aea661f40210c1c629f611343240b3968238746a245ace3994bf88b46893eff1a3a6096166e0bb7341900e73bcc36bb92d3e539e456bed44b84cc00bd836081704ab2e4065559896657ab31c60c3564981453b58bc7e238fc5b778cfb4aaba57417009a789a13bb075b6d9541692b85ab52961fe887c29289923797d18ab8c9d35230624b004457f749497267a2efd15fada244c1d35c44109add503328d063b7e8c0fb8c66bcb42c8b1c1eac421563c232e579431fd9ce4d572904577811e23af28109b2e419515260e0e1bf4a969d18a4378147c0334a5886046833ab8d06c78041c6b848a43810208a5fa0a202ec2320f4adb15bc299c6649c694f76311d8c0450ca829c3545ace79a33e0942f133c35e1e6be342c30fa9b8debe6820a3cad5a2995414bb7f0744a22194435ea8e5a534dcb8c754bc75444093af5d72490a3468bd06bfd1442870701896a4f1fc11fd5c8c50580cb06192ce7b90f81d920a3bcc52ed02fcf703428c22c8ae25fa56085f8033c972b47c61998db005b019032d7a83660803cd39014bb3165c94b9dba1c6e38abbf6567cd513283174c42bf4605b3809c29dabf149a650bc906a4cb1e33a469bff3820713040aa067701282cc1c6826008f8787cfd0796bcb568210e088f649349ad921b9349cd4998189b4b945d92ba6bbcc972155d26920e1a756bce6441748c41c6c7373723a9c00434e485216d92dd6884f6113068fc2b798790f41bb3104a513f0e413ced19303f396e5f7c72612c4f4112f41518ea77c850f7b8e64d1b6df73a40f87b2945b14b8275aba42b455253b9d522263e4bddd6c24222062ae68bfe5ba4193195ed026712e729d59c7a1f519a9c65c566a51504cb93355a33d83acb62a268e02874c67c89530f914761b751f03f3d2307ac9ede742f51bce4342afd3cb6ce2ab83fea96998e3f52b93dc875dbbd503bc67beeee7f1e46083868f96edb9ec3601dad0e40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd +ciphertext: 6a873bd2880d314bfcaf492967c54b83bde3ce79b864c718d15730d64eb990de99ccad48da0afa4e66c505c77656fe822218672b77d28e4b14f4b11aa9ee3731d6ec00c807104bb09aae7f2d53b91fa4fa9b651ece46b5d0199054f0d9b4646845d2fcddfea617f70c5ce3f40ff7b41bf181223ad2cc1f45a31e6bc9b822f7272cdd80fdb033b36f4f7db10b874c123d1fdbfc4fcdc167edd8fba63c519d66167bb44c70ecd648362d811f8897ec4873fecf69ec6881432df9e2d30f83a5bf24bb43314e0256065824746883cc13908add804632f501a0be1d6246f67c7fecece41fd4cd6670f2e12e238cace966f8b83e02cd8fad38b4e7ff7f6bc8b2f7c9c1ff7f6499305cedfc7d472e89df731739f2a9ea455bdf110899ea84b686b668a1f52c6ff2889f565fb55ae8874efcc985efe688d5a9f52da28ad4fbffa0c9d196637251e91de6d2d56b9809e5040fd0d43cf756cfb5cd14b40da7f2ed1e94aa9b384a2e59fa75f56e5f5d2c441ad4bad6ea25c76811b3ce8dbe2d7d17dc830d8dc57c2e9f110ad2a1aa99861cc7312b9f0bff661e12a15409cd6d5536d699bb099a26fc60d8e891578039c435fad1fed7bd0fd13acc016966456168b51e533166decb49912780a842778a5b35c638af3d4de8d35db9ec0461b2bbd585f756c8fd8b89898fae974358cd6bd74a31fa5e223d7925725b602d44483bc74ef47a32ab444f7108a7488a27c013af0dfa481cef8752e5e0084df001df2b1a8022428c9ba7b0289f4a3b8df3c4f4a6a98d215e1874abcc6b5094157707e015e79affb5bbfdc272e64736ebfecded3c18abd25da44a8df479489b3b9a9a5ef178715e1e132ab38d5a09bc66e68ae8dcf464ab675cca458c608a9323f346ebf6a5c0d9eddc61a71c1e13f85069a2c4586149702e03a9b263ea68964a7edbacb77e59c4873fb35fedbc0b78bb97a172a10148184efbfc0ae272e0372b69482871a2a1a04f7da28198e7cf8677bb7e9874842d50067e247a506ed9edbf3934546527345599f15d5dc8198b03ec44669bea78f489425357e2e9c5536ee9d79ab164ddbcd3d78c1b90dbcdfeea79815d3f004520ebccea33eed44e0a3898bad96f4ddf7eb7abda800cc2c11ffc71c30d8ce610d9a6e43e924d0f462d24c15728699105cd30aaf78f5ade69bbbf7ab2b10c78714121abb09918077eca882bc077c235395e76d78afd271a8b27899540cd4a8563d8c290d27f01534311441a0aea72f6b23761ed3745134e6a4a5df91d30d961ea410e18126983aaa9b380d3510afe914a56668bac76a439c5b610abbeec3a213033d642f2417aedf224a8ee0d96ee6d9a668f5611671ea4494cb9415f9bd11093b8befed7f38b53b4b7eb42d4610af8f02af8ae4704257323ba7cc4592c5e29810eab67f6ee85d14119a85a7302ecce88e7fe5a2ad747326fed534fcf0801ead1d00691b8df565c14d2e303583fc635b6aa70dc12ad8fb122b8cc7e991907966288150affdf1f507168dc8ec732256279ac77925679540a08228a74fdb8c8571796e0f6ac176691f20850624d5c4ce8276766d628d06d3eb40a96ec70a85701230cd39ed63a33ea9c6cb73e46c3dbb114d7294aa65836198a16e8742b1b4a4484d80c0d79e91d5330a067d1f2f7ea8e9ebdec57f88c38167c5ec7fc5f2e196fd5dcf02d99dc0e65811472feafc946decd6737fd7b101907fb6346e32ebdfde0d98a241cbb35a4b28b41f6abad162ced0c5a55ef8f634bd058d1f96b05dfe051a0075eda9fd77f119b861026b8af09725175943d3f2ea105fc143b962dba902de7c5fa959d1900f0eda2c5eda6b645c985fd49cf6e98f259a1474500445837797a6ba15b92abdfee1fa409494b277a68716d52e8a60aa4e80c9cdfbfa41e9d326d49997b74a081666eff4dff2cef7206957ea78486f3ed2e610431783145bc73753380a7f82b13088409871a5e4db16b4477e8a12517d05720e2e77646de5ce1c1a9e7f58b06b2ae24ddbf9f4fb281b5d0302cb8f7cc96a6703280e7468808911a28e93b99ea06d135c7decfe3c52c877b781f9ee49bc382f5af000d350ac4f4e12cb50241180e6c28832cb1aedb279be2507b6762773da39185da073d695d289b082d777c052a620bc3c3d41021f3516448f0533cda900e9b4cb05f66ac01fa657990a4f5f474981df918af572f01ffc3bbec1126 +result: fail +shared_secret: + +# Private key not reduced +private_key: 7459d0d6aecc91debaf6ce7966bfd0ad563be84e68e23d48194fe84947e72b88da1dcdf49bc3ac90ed9d799f709d7dbfd6496041ba834cbec291d5a73368944d1356189da20603bf8b97929624c5f586ceedde636b6cb09c99807cbb9befd3b2689af9a74ef0133bd5b65fda0d984b936833881db29a4c5a420fb25def3414e356337fc2c91a33467aa665c4db7a18ac434ba8e1fbae3a7cc2493b531c6b642759625009cac785e497be8127d33d4733af3fd461c1cb75322f3945fbebe69c8486a35bd49ab075fa6227465f97fafefe65fdb53f9bdf76f59d19e956b4ea1d938940998c8e83329beda8309b521af642b9466aa3b5fa467fa00cd6acb467bcd1ad551f4538fbf78db3ed668f47ae9f75d94d4a30814371e20350066bc797777d79135da01d4f783f89c3dfdc55d4bcffaea674f454c87ab9d809a1ac9ea6e13747438a7eb708e54654f6cda6c10d9456a34c66dc37766b87cf01a4a38e55e54bf96d5a66e7a9e3a353a57706ab5911dc3f51aec9ccecb4590bcf8c4765fae9eef119b00d0f7cf503dccbb6d8fc4667843891934935c49c8a945553575c67a1e3c80df48bdba8778865ad972bae7733c8c5df787609d063be6aa62cf5564955214ad6e9edf1d73ebc042f57d16e8d1c1ef2491b8c9d08f61886a2efeba199a850cb4ebdf8cd362293b80a25c2489fd571eb6d6d798da3dfd71165d0a154e977a3362a3ce367ae5cf60a6086258d35a695690a53ee6737cc76a8edd47795ca913daa42d86f996f4d61f8353be46f752fdab69a67efa026714336e5834c8008284293c9c83ca3b1eea330a91a7522aa876d37cf7da439e2c3edb5d9d3b17b9449e397659bc7dd668f3e9cb2cd877c57fa3ee2fa9a3b3c9d22e5c02a48ae4a4e42e5d56664dadffede5be6c4c2a063907e94fb8019e2ddd9e41af9383abe7f37f3725ce36b9a7631e7bdd2a7676df2d7a72a84d302fa5ba55a41fba7953a68e2cf3d823195cf26b8611d5de242ba90487ca73057ff30bc8975d7874115ed928deb7fe7d7b7846ba16874a8984447ede7bcff357526a4882359edda98570b44aa3bed968c4a2de84ac78330d3df725f7a317c093f438d9d3d36d92936330ec5ee9323fc985d96df35506fbaa429c67ae6b75d24b9a510bcfbef9efced4a7330eee98fea3e135ca2a97657608b694428ed063bedf05679d8d847e50a8668fc8238caa884c3efdeb3adf0f890a49568884e7d00376543fb8588fb4433156ca8d7e52ef466b9eb7534f9d30a8dae47e8fc04f55d57648280ed36fe58c6ac9aaae52ce15ee6e9e5db99f306e53354903bccab9cb5448f9a8e76c3690c76732ebe757d9742aec5334f79c0080a9c0f35eb34f637f90f53152b4c5e9ef4f40fc3f7ee5ea6dd9758f4fb9afe5427ecc63976a0315644ed8ba5174f9a1abce6ab2d45fe03eb4a68c7380fd7fb26667b4d3c3b0dee83ae91bef752977ce962b53b0228513b4df6a0ba735826fdd8885aa3dc31e45b72347ad55026396c4d5ece0579bbcd50418f589023b4e0aa77b07366edde88381ab2b9ab47287c44c14a36fe1d95454bfb3b0a816bfec62ecbfe033f47e4983bc983b86756d158eaad4876551638ba5c5f8e0c74b9a18e537b7bce3e1540062b93fe4478745f3767ffcfbb4c46e3c3751057764578d33a4fb89b83f5e639c318f63aace8f13929fc81e45f4494d73a64ddf8e459fbb9afcba59c168aeecd7eaae7473c8d9cbfe41cc27db6b72d8d4f64dcea026de8d31fc9dbf3f0aae4423596b4fd544c6cde6af096af353ce8a8eced680afadf7a454d54b92bdbf1a74cb107153b8396f85c0479021cd4ac0b59ba8392bc976c046995006e6f2adaf15ababd05fd31e62d32f7cd8e63149dec0a590a4c49ef55533745f24c44ebaab9b0fc3677189dc0301638ad09882634871196b55e87a5e7b9348c8a83d90adc1bf8e23286434236ff58fd63d38940947b48ae94ddc43bf7d53ad1f4d6f4196c9199dd81992934777653fb533e525cbec469e844485ee6a457f4c3eff959f7713c93936f7a0e6762323e8f19ed84cee43502fdbbd718e96dba67654e45e766efc10afd5c4835c76a5265af5d96d47139efcb3d85f97345910c164ffc3dcd4c26cd1199f64b7dfa3397aa6afbb27deaf7a6566e9769a5f39713c311077c359f42971b65463a8de1aed9879abd512cb55b6e44f5c690e0a3f60768a778cc9cac5ad6b897379507e3ccb994956284a7715970b0e3f6189f0c66d99c667119b82d87a6507141cfdba46fcbafa8a2a1352139b1024dbc64388a3275f34180ffdacc380132eff35eaf788364f3aafdd6af9c02cfa396592282cbfa110792f87b6182b2f36a0a895c0791276d789976cdf09d2c16a32aac669647219086bd36f6bf631392510c0e0970007a88378b647b52fc20ee9148cd4575bb8b31b06449994098bdf77680a48ab51b8e5732545d6b87112884e35a2302f60358f651f8a71c0789018dba79bf5298a9f6ad16bcbbecac4f0cc9888cf55bbeb38264c885ce098fa80463f63806a544bfc194b77895a76b22b81b1098a8c3819e035268d22f4ba0339067ab3bb30e65506a86e74fde52afee944df4e4c745f9393ad59117dacf74a407c236b8b5a2aa11b1c9f86163df31129e885ebf68040f822314c2bc4dd12751851864d743ea49b68a93212d392845ac46f95715796a488cb44072ecceca89878f37b51d662d783900b6341a65d894771476fb942ed058b15150bdc67a3b7f4cac93733f735b81f8dc4aa5eb1288d761b0b74238a5cd73c8bd2457bc195b785fd31804d654aae06eaf5b08a365a472503809b416904162c17942fd27671989c553ab5137488f385b7b9519a69cb496444a7a2db607adea5c3e128bcba31f586c5603f953f4fbbb4381cadcb88d6aa7784562c6ef302ed398cc2113abd257c9554818c8175db54baf20024978e167620b672b28bf24465d2cb4cfc6c08739fb9696bc84fdd76b136b39b85c7deb4c10ff59337b4112e32bb25a665e9cf624baa86aacb2a18ea3cb67462874117445f913558c32e5eb7e1329cfc2d99ca4d83007467b80d74d2ec9832a5785fc7293eb466d55cc8904874bca5714c776579b253f86b17187b9c19d702ae65aad9d7cc23afb041e593bc41308572825a76b4dfd51a2bafcaa10390a76e08458c384cd0089668955fcab00082759de9147bdf581aa4a81f8f82bbea84d255b43e30b6728fb7a705c0aa96b794c7ca28730c6a1b1b2c1040fa24a98ac862ed74453c03a3d842cb0bc87409a09456c739ea08717d7a1061041c424d13bbee299c1ab1bf328b42314263f186e5b198bd5b1712c04402bf849df6473b8e78c4009c944d05277c68d6eba8555ec48139560922a7a142632d4168dfbc6396d0046c53221d43b7bbe01bdffcc672f214217679853d3c0939acfa7b45ac81b145e5bc7d668a4466156faa6a44ae2b9cd6caa5d42cb1c2ac5aa847cc6501ce998b2896652e2c901483acdffa695cd1625b124a8a88490b12b72a5cbcb67a29aa955247fd17ef46606ab5b5fda6ac39edc0128e46310903b32435e2f02158f678462f2bb230246455b7d307b5bdb40375c6cc507987ef616816d3a97545bc0f6e44c025c961cca33a828beb6480494cb9049bb2e0c8734437ca0745b55174b67fca6abe743c7f9793219a19a88298211562e7ad85643b0b680c957eb6b740ac142276822900110f3998f2b043816c9216c416d64e482dc1053928722efda8c35bba98c563eb4fb280791a9a330968cd29360860737d3cabef87d158419cd8794d15771588cb049f393d3729fe3276590488e97f00e63b6cdb760c22fb853352c2eaaf7340b204d6bf8cd186cab5f786e7f967a4d147686a690ca7308173843dbc0bb17fa4ab2788436f43009827946265e86e782b97b2b27b87ee2c0ba9ff23d6d620ac02124189bb008d54da8f0118a081a70040b0c722a7b5a97194c5641078b22446d7ce9b66ab9332f2ab85d7320fc651eebf8b93b838421ac6818f87673872582360bcb903ab70972e8e589465660e6e4b9295675416547c277827d667102c99297f9909548c52621846f5978a5d6971ac97c6df5cf1a3a42717194f112093b73642cd757b541c6d5094931d97afa952ba80024b5d76caa088577f24b86208da3448dcce24769dcac3af496b4ec8e634294c7d323a85128d4e20dbe5b7bbafa8fbce12131f0663572a4c1a4885ac49cc607578042c0c68853b661b452662ae194512b208435a72ebad23519e07f96f59edfe2a5297c351bb38773478747732d9841b5c26091ce45559d7184e1ca01b7c388a8cb030a00f66b47988c2d7d195332662cfc7d90b279248de101f77e30087881ddff4095efebaea305138bf83f0e3071f5494c3ea5bec8f775128ce60aded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 +ciphertext: 5b094b6a42f9e8d31e0d9c28b18a5e323246ab6fb4a425fdbbd85e4fa833b4a589c910a3446ee9c2a3ff7964cc512f4623de3ad6fe3ad55f895c90d95149ebcf10a0654596fc8aba7caae1a59663ea958afee82518f78bb9839513d7199b10ca2c24f7b22169c17e7673eac8b858ad21d6aaca86017ef069af7170f5c825de5205994ff786ded53fe3352acbff1937181b2a29064e19dbfd316430a54b2369218365ce659e732dbb45721ececa352188d551ec1550938b7147cc5b2ae888146fe86b01750a85e8b4179e6c8a9c9adc0a881e5c5929299ed199964981e3c94b56a5e7720eb9ece6840d27861275e06d0be5a3057972604053d4835554d68e5a6f85ed8e2e101b2ddff770b8f4686668bd4ccab7a3fb58eb78e14e28f21443ab2e95717f8950e5b79de809c46cc434bbb592bed388d0c93ecd9144f41a7d053e312be740fb66f6be31538d663cc086cf23b66ef9771f3b2275067d553a0a1e6fa6b32673a1a2bf1dcffd602df83af95b5da97fb2a9df78a745f0fdde031fd21c0894234d9700889d825561c49c14134894b99a82c6f0c776db90773012faa4d7bee06877fd415fd407c7aa5effe897d70ba4088252fea08f56a5c16527c50283b1ee18db3e353196f8c031caba69ecaa877944125decc249842c140f30377c0c36525345dff045957be02ca335feaca4ebce4db5b5c3e7009eee36a4a9753bd2382d85082d01b954a0f207444e8a775582566a6928eadbf41ba235a1f0093eac2c7e27ea73af81849a66e2ecf8bf94a0532016ca6a43aed5f261dda9388de24e0e9b594b35259fbdbd46e5aa82bb52cf3d39574c46ed91257f1c49f93ecf6783d2b01ba5acee812a0b8469e5e4224821b17981b79670259a9977b54502bffaca22fd424a0f5566dffe1371ab30522184b533b9fefa5e6c6667f4e0b85ac805058a947ec77f61f50c447b2d27f4615684a3a914bd21b86a9ca58aa25526a4ae98ed34a78100a65a9124a1b2390333e96dc87460cb9e506331175fe9722f18761b1455688aafead26b76f13d852138d25f017279ad113f7b80b9f443973e13649dd12aecde5c7fcff30f89389fa138f6ce0e9e7bd5c383879398fccffa0505bb38e4f19cb6e65c21186484e9e10276fac9462f77b0fd7e251bbaa21ad855c8c56ee015ca8c973d31bb9440f98d9f7096bd2383720712eeacce4b8bdd025a9db914396139805b7d1ae8cccfd7491ca90526b8025176aa313904699babaaa0c76208ec9d3d5766b1844f8953f89b6fdbdba214dba86475633172fbf497c6f4343f78135db84c3e45e29211f517852cdad693d5882327f2529069fef977a7dea5aa0754597bb9793af511aefa511f678631ee1b94bb0ebb7e95bbf31381e499372241f0718fe2db2b8d4b30b7e4e9d7c9058967df46d8d2d160f6d241b8e05a4b70df811c43307f57f9a1f7d067994f6fc4e30d80a480842ba8ad0e245200efc31a0b8c6e3c39d01ea5d621ebec15a7a9ae5108ae12f8cca83f942053b31e4591401bd7e800a50d7c1389f1db1b771902e144d86bcf61de58b88dbcae5909431e81ab6d942d3af39c4518e1d4fa7f05b1a716006fe5e33d2c87603fb7de199a98252e28eddec620ab6df85137b8686ff0e2d4e76f4993825879c57c5d84e0cb4be1ec75f791e84df42ee7d7c3c77044f32996ee7b7d0f85c77d38f342fcd0e1be880c8bd2ef581278d4b75b3b80daa9d2c5c28a8ddd2758a3ed65fe42f7d4995f7122220f4ed660b7c2dd20916bdce54d2cd62b787f009993a51e0efc7aafa224fbadbeb6a719f8dadfccc0ade3fda88e7ffbc1efc061ef486625ad06ada94487874a7b3f7844918438729fcafa50a02cc7033266fbf052842fe95baae92db63899efe7330603b50f0de189e45e9600c822e1f5564c2fafbbc50abc2c4bca45ab2fb3425beaf4f3145e2dcda7e82da95b44b38ac19440963530ad99b6f732a2c06a98f12cfb8557b83dd515fc1284a762c8dbed28b21f52568295546b452c7b403096b78655c3d18927714e82380ca5c0593091acbd2e4ecf21891955bd78c17c90c58f27f575d1cd26c5f1be1e530b5072b95033ec174f1ab4c7fdedaf25d68fc7f4889d63d010250afa73bb30906610dc5ec4bc98e7f4afcf762e410a68f3e2bbceb37a1794c8b4396f5c6b06fce43c39194a042baa84bb49b78938fb97586732d4a1 +result: fail +shared_secret: + +# Private key not reduced +private_key: 75ef3286ee87f22c6a1f0b525818eca00c59ad4a733b7ce68c39ae4994c7cad6d6422ab8ae07968a75fc7dbe30e4aeb5b75d77ad348f2c2e3ef368c46c1b45ecf9c58fe49a86396285d554b157ccf224f864fc88df377c2bf758a3488722dc9111b39a90c58d2ade8b0373801d86efabbd845e78bef4cdb91509c7c9e44cf6a74bcffe9de93538567564855981484ba0dc6ad553f9f1d40f449663cce9c3aa1fdc3db11f999afde1eb3e72a1a3a505fff8665dcb86156a23c74e0b3bf750648a15479aae8e3c4a576fc807d653a34287147580b6a62957a26306cea167e963e4e71dbb38448763b664752ce93a21d84101f79a66cbee193bfc4fbdf66d1c869226b0e21d975b0ce4e6e384c1883a76f5f58d1f9185fcd36b6d63f28fa35c3ab8445f3ca5c9b30b655eacd967847c86de3ce69d4d866f8b798555497ea94cfa99591c1c563264b54d369f02a7e6833937941dbe3354bafadeca6d7a79a3dd517e39c0f75efbf64bc57059b05db3888dd35e5a07e0ccd55e39ed53b453aa44edd27f8ccfc1ee5da1d9ee4a0b3b4bb776df88aac23d8f444856f3e888ae4753889bd17cb342e70c78318a7a3b8e42bb28326caa32809571d547c15b86437c655ebcd48bb2a9d4941deef4bbc7b5bdf008396755c9e1e188fddffcaa92a34c39dc8e0b9a48a34af52d6c547ca341f937f7b5c4de92565ac466ae591dd799a534b8277591e99876b4925aaad46654d56b6f5a7b5e431aec58c5d6b98eb4a0f417f4e24477f6ebc52ab7859987871f6f3e94adc081d9f12e5b33e1d8e3c6b8e980a5a671ce991dfc721ed6fdd87ecc9b3dbb7eeb67bb7eae78d8ecb90f743b3589e76ec4af476bb5753458db8c7d38e575eab3fa2e6308bdff95147eeddb5fcc76c1598debf8a44d399db65e6b43761a75732ea70769b825b6cac8fcabb1ece55af64b86258f0ee5f6063fe88ffb472cf64b82cb68ce4eb986b560be0db6cd99b80563e077ef5a2be6f04e2641157dfd6c1bcc5f9f35c85575e66b391bcadd4297c9cb65d8dc5cb3201bd9250dad5a5d8d80ee4703d433fa8da79a796f24c8fc6084ea8286f57c5b5311d85cfe1b8733eba10f3d5a3ea4affa63d4f98a438325647b6fef1b154a6547cbd8457545dab60ea7966a03b40e8cf8ec2af2c4757a3b3c7dbb29e895dc419c06daad04dd5fd864375d6894a3932f1666ecde4a74c93d5e93511b64d1fbddffc738dd098d57ebefb3c467e68b1b9e25fa81ffaa9d31cf7dfb35ddd6ff87f38eb12f13816589e8eabad67cdbd7bc0a67bd58f7368c7c0b4cb45e4d3159f9cd8de5caea6b5521cae7326d561d9f70ab15c8545ecd46e8c4a49ed5888dff3f0b6921367e4648b654fb53da6f7f573b936c6bc050a34b7e3c7c379a4c744b80230c35b784bf9a4a3fbd8a89255db4739488913bfb822b3665cf5328dd51c0236e0548767156e265ef643c0aa7ca89a9c85867c817b7155d7c2b955371583611e77c783b687a6f67259638d51dee0555a19644b70b95f7d9d66a5b3d36e348cbf32fd0e4ed7717cc83d0866ec73564137d5707fe92dbda8f43ab30d4fe4d069e90c1c95bec34de0d3f71c2b755952e83379893fb6cb0c0075c7b67352a76bc2bf7390c39c3779ef7ea5dffc8ef71653ebf25cc8406ef3bb593df348b4d00fcc1fb4438920dcff58a3409174fcd39c5779c93337ad53d04531a5fe33fd9fd66e3855043bfdfadc0f7b7795b0941db78a52d77d8a849e3cfca678f77d00d873060777ed7fd906976ad12946b70c9b5f9e4a95a9beeb5b733d3e9f921cab8bc7edb3ea33549e6371af5d7ad44e710bd9ca9d65c446dce42ec63dc5eb1706be9206bd1688aaaa8dddaf97c93fae66dccf93d44b6eab548e326a8fff2a73bc6be9e18cef6c7a652f46e54401a6d290d6a383841f4d9998a16e52d0b58c5e6457c7de9535366949e8768dceec86be494255858da9253693293848bf9ce4a6bd362a2c9e137cbadfc8fa4b108db3577869c5d716983730b3ead1574a3f5b6fad6635ad11c4706ac6912248a6b55cba70658deb6336e7344f1535e1967f2486866475bca60c8ba89cb591afc6040fdcddfdc55a705beaa1b99af7f5a400454f68744637e3e12698a56af67aa6d92bf9e3b357fb0d9fbaed03de6989d36901edb2d661f371b1f9a3c88556374af9b603c8c1db100ac3e600c042672bcd971857232fbe70e3c1280f5ac45d0e819a8495d2da89ef5086b110773c7d1539ec94a44fc0cd6f4a39362731f527de3f06f4a78b0dfbb94e4977a564c765cf8ca68658fbe27937a7b15a8671cfc8b3e779533d1b5c092826b3038b213550421004012a4cb3f12478efb0c92bcbdca4259b153584bd4b65a6b8d66f578f6f408bfe246deb5304ce5487b7a95c6db5605818e26d2cf5fa6adabea9e3a48b6f889305c016055db7a02a34ba5e10573143ddb8659fbe25c7b621e3494aecef037effb36b2819a1816788a6b410918745c2a423285c7e0021cb8c8793b60b4c9061a39f97ff1212f02d387d224b0ec258268a374b6e27ac9c4598fb78c387a7daa439280d79a6218b3ceb0bfc2e685bad8801d92b5b1a42f64c8890709c58c95bd8ebc43568c33362a53b5a12c052489bfd806cad36dda117b2180b68cfbb317d4bcdf745c50324e19dc7b17ab7f31649a57bcce91fa720052afb0b0ba5e8b57a5e4296b1c390da9a4f76a869af0b9389c0ac381aeae0a779ba588ff415858b3300d71b99fc172de950a95c3a61c9072b6f2a7cd9245da690128b9c597c44903837b8a9443865c785ff6bc05854e1115b9e3d7a70c7c40216ca48b1c6497062d61fb8cb29c71e5800b8e752e70b9a8655baa8408742a511ede8409301620f3bbc2a27790dd7058841432cae4cae719740835571ce65027e74d85958db506a8e9601c1f5ba5728a6e710a3d3d93748a7a640c460167482dcd6cccfc238326171927c6a72ee7084ee97d3e7519744ab8df651b9b2b69d4ac7cdbd9437849114e29550ba3321202906e9331bc7ccbf4571da4c6ae1a0b2797ba4bcc75398e18505eb02dc760b00f687c76f2a35f707f609ca149b4be233b3ba4739e19e4462d78950138cd1b210904b10a83356156a63631d4a6193c68e78642e7c5c0daf403e8520cc2f7438ae950d4136ad32684f2881c50c1a508b0442bf6c92f030f82653578c79fb4eaab1cb60df4870d6966ca5bd8651400a5a6d424749c8cc6aa6fc90b6514a8274e633aaa74435542bd2eaa354d65a32591819b8233834abf1391470085c9144b8239390f97624fdbc645d3662f8a7a2b7ae412f8525884081b3282390f8c35e2379aa5d234dfe9c0c94098ecfab31dfc315413c62aa80fb8a9ad11d070d02cb192d18f3717c1375401c0713437b0868298205162a78f8b00fb46ca2ccc6dad2717185b72793b2aa009419a6330ec508c8c325110c53fa0512a713c500631b36ac410c5a966edf1656419740baaca6719639987bf5e17444b4122650c87c884069fc52ba082837158b9bb85b2c961268284b5d8636b2ed3bd1781296de78a1cca44502a779b2bacb6f86d676355d4d527bd050ca8d33a12d059e6d697f986177e1b95424ba97cda6b6ae0191ba70bcb75172c354541c7742556c5fbe591f33b9624452392412f3859953ac21c50d5a445a34d94d492afbb01a84c844fd582802391f4f4a5d012a8a62079e254363fba52c83a399bb3398f6807e6f03f74f68fc788187be6bcaa5491ff666c98e43c3f860470380768f70b4987c6ea10411ea60fc7e8cba0b1afd72a52713a41a2172804ecb9fb60315e37c544555a8aac8089081c6c2695af8011bd991e1ddc87c841cbe0c0357e04489785222930a5d75b81cde91e5804315bb30bc93294367a4623a0c4a0ec8ddc436c7992b157039879bacbcb590490c28ae7c9142267654291c06a75237b24b8895404cdf32a073c4922c202a087bce07aa5708816818564c68237136c0a98119c2a6244a59051071414425b9230a6113cab28b06a058e67b16b9b3287f001422c276c78aaf608820836c863a1555590bc802a70abda52e4c430c80992745945ebd343277c222836631c652dcc425e1fec6f22383eb78c9b47967e865c6382231b4ff42b94f281c4e9a849477706c339a48ac2c69416d1e51914c751dff0b74cc657a8d9b0d0e21cb2c3a72fa241338b11f529a0ea9cbb8bd310203b29775867f23b7a6ed35890f3014474b51a578110cb1e1d052d2cd03a19fa06f1750279476642752934201c0832b80b552c7a4b4eb1118e2466624588ac1d0148c1c0484352479ea604758012b5d49e885965bf6ec29407a0d9d3f1f08826007a5a3d32062d2a775728c35116642149c2d449367bf894b2bffe5be757d54623b972fdb9093b0f54568b4f6f2e688f86ab2eab1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 +ciphertext: 5b726c1d492fbcff00124b62e2a5a166b83d928a64d0c68052b126d354bfc34e4f6b38edd661c6c407913602d55ce892fdaf631d96c4d94de045fdae852b5d7d88c73584663ade3e5432280d137af39c49aec6bd72caf308a6f3a8255b58997c8c189089c76a4d6c718ba0e01ba1b457d89e0413e89bc2b461b117c7fb011cc2206f027399c387bb3b8222eb56ccbe89c333ce3e46f2e507e3169a75f052d92c10eb3ffd04e5b59aea872c5a3df2bd23872aeb599fc0baa82c6fd2131357b0abd7638b9c8d9bdfd65a5dc9608dc0204cf88a9f2a5aa370f4fda768f7367ac51a5910f492cd4f2b9c05a993dd03f71b1dd1774c949d0e15f7f17831214fd0b33dd41ccd02aeb46fa66f63c17dd6cdd42b02ea18e1ad6183a2a0dcebd4da99dd49405be372047e4beacb32e237f37541e40e2daa91059ccdb8e956343fd009578e5d1b9601513ad916ebb324da5c3bcc5ea2162f507046477acccfae79d7ede561cc2837c0a95b32140bcd7e30c2645aa21a153d56358a8a767cf887f79e85fced38ef732b83a4c311ec77d67dfd164940d6263dcc00f0a76560102564913918741f88d22ad4f7aac99d560ac15b56be3b3e747ab5af9d9c87ffd2b5a7b964c2f8b3b87a13b64cf53a8731cb0d4e0535bb52ee97905435f1f7f0679fb55820160f200bbd6ac39c105387885a81f5c8e7f2d3ec3bdbd6604db8249408ea26f329e1faa5cfbb79f22f84da9095071673b56e003e026b373bcd97ff31ecdd4267ee8bd8e9865ab576e033a0094a96b391e9751dd988f340f06368edfca09403c2194a053a682e94524c955ed193b608a044af29357132ddc3d113f7bb680f9c0d2f8fcbae081bb211715177079e3e5d731c5f3e32f0703ec6c979d0601d628bcc9ef88bd70c020c05007cce62e1ce70d538b3109abd4c05e541b164d03ccf1d7b82fff255433a3357e71e4241354c40a5f6a6b83296e752697e34c77729ec0e6322f9f948f0764ab60842739debd37ee3791624ef110e2fbccd314286353d243b846b52ba87944ca8118da0e83ee94ae8e2e335016f57b704e379168102284b4e2fa4775c9949462863bac38393a7865a2bc5fb8593c856dd024daf88cfb786f98a63288429ba6b2963ca6d54f66fc49d5d61babace50df519ad4e24c7cfc246ec5a01f315a65ef60fbcd2f4d2cf0fe20a803834556d74b1a3fb0960b4bc7d9bf1494c6395c1ea7a24996b04b97f10a6907b66712931f1615c7b76d93e57c90b8aa57d70d2d8c578fc61cdabdd53b42e6cd59ae63b2beffc3e9414abc820191af70312d489f8841b66273eb164d9c3ef3a4d273eb11d708e3a562d113bd397707c1ad7fd7769d4e694270f250240a666c73295e541888cbbd10228b527fd78eacf305a5b7f609985bb869a97f642dad2b04c47310bbe6fca70ecd5957b7e12831c5c400c30d924eb99a1495de8f968135a5695cd9fb78e91345476ce1731443fa85ee0aa266ef0c2bfe720c3d27428255e01992e3b03a09d5c22a5f4a6edb203fad98ff5e0aa74535d6de951f68524f6c11f056897913a84296a3cafb5be71bd90038b8973ccfc2e58b868f61d95b659b16548e3f5a94d5651ff1921395dcceed2ca6afad67ef9ba1cfcadfe63533401ec05f246a453277beb31bc8636251b40310cdf38d743f3566f8aefd7b8d6834390c2035e7493e60bbc93a91258a5926424ed863f07282ccfcdf663aebc6586e129e1c89b049a78ba9c4916a5129a2727d5dc0a3dfb4ac9625096f27c476895e0cedf6fa75da79e08842e6b6df7cde91d4e090a94973c1d3c0da86e11c93adac0173070404bff955ca59822e7a3ffe600f58ed6c22207815d2c4e2ae4cf7df596eb99d50f731d5202232c6bc3609e071ad73cda4bb6f5d5fc027328f5ad44bc36aa9d938ab168f574966c493ddb7e989a04e1431803139965c296dd518bd5294385aff816c8bbf52136c18870ff530435a9e4c45855c6872babc041a2153d78151bcc7decb4bc80ca73c7b2724a1b9a934b3fbc2c5a310717677c939651f4252935dfcb2614d3223e4ee451ec0ffea2fec151ff43d5baacbc038629af6c684e401aa8bca7e385fd5a5d18b8b9c0f325109036fcebcee3483d2e6d0cf74c6d2ac07cca57261b6ed3ab8836e20c876a4a84499ef5e7e78b1465d2862a620efc7e21f45d91269458329d9e0b968183f720c947d25 +result: fail +shared_secret: + +# Private key not reduced +private_key: 374fbf33d87830ec6d87e3ca5e4432a0553fa60f878fa3f8177eb93e87cb7676351894e1491f6ccdfb6e8723aec1975cc8a3971e24a8a9149a9957620b1bf11c4c3f943af1dab5e82c73d49bac8295a4f9f3ceb4f5cef04ce35c7c683db61f7a89699e23588d194574e603557e9eeaf41d4b7f23627ecd46ecd6aa634af0054ac9986f5148afcb6bfb62e44bc7eca7a019e4eff5ac50597dc0dc648e21aee1ccd5827c85deb686d58c7ae4267ccb865b3b40da4e2476aff41b9228ee8274c96e32966f2ec6e1fcfb3880159e6f2c62a9565c8e6c3a84bb530a13895f94eff354b798299ad3b68ca32838ea6b3920b3b6f14e5b7a85d295d33eae19d22b9ce7d7bcd40df6b298d7bfdad78f868cb97d178d5d8db27b69ce03d37f3277661d9b9340f347bd7f96d42dd41c996efa94ebddd592fe4b480da657d47bcb4d147c122f43f25f68341be4ae26742c8e3935cf6be92d4ad984863eb44c50d5e0a5c5872cf334275c5bd35e7c5587fe9e6df0e8093d603ef64929b1c7858b4f8745ed1bfc9bf9671d4cd85f8d804ad730b9ed865c8fa6d6cbe59543ea0a05567bd3af6a74e9190e9d9a89b0902f764028ffb8c7adc6278474bfb8af4c4c9e6b8f834ff15d265f433c7357fa8c9185ef6ddd8b688f40c5eaeebc38ce3f2735d44fd713ac4301faefdc1990b99d9cb718b6344c45a71f633376bb9f0d3656ac347305c3afcd55689c696fcdeff62b3a50edf72c1dcd7785726687d2fa5cfb7ce5305d4e3d91596904b872a1bd51a255af191e9d01eea4655cd5259cc16663674365708843c20efe8b96efe2efbbedd9485dc54f6782fac42e258fa0cb8bc3896a518ed7730f46ba7fc45785dbb98ac03c9375830d46fb8df1b06d6c9344599fff33de2566769fb423e456a659c0389b86b28adeb4675694ddf9c489a4dbaeb5ecf37afb08dc8fea5cd9d37beadc9fd91f428ec68484b8853cd8ff019c9a7429e15e8ac0972836d42bb45a7eeba06b82a59592f554d1359d8f36de82c0a765f9f44b67bf93f58ef22d648989c6eb7eb8586f0d4e7bf7898395d0c2bafde13e661d4b7c46737772f4a86d06df060e64a1a998e9a6d42f2fb7db76c3a4575f99199c595ec760ade086cfef6f693b5839557f25919469de84dcbad233bd9b77d049d47b67e9e616ebf8dce64ec65f712129a2abbcf3b5afffb4cb6bb3e54f7debd93c68e1a638cc343da1170c46de338757f445e00eaa43ed56e6d59daf79dd3b4961365a6927db368a5633a4dad87fa74021bdb7885adafecb5bb4eef4276b38eb9ce9c7c8afb616a854b444f8fd910ed6c3eef93722d8f7e90f97e704e2b90b41ed53d259ed91e5bbe51da6eaf1f5efac9aa0327fc147d69e84274b3eeb949c8588edac38b50dc775849cf26f932bdb6f80fabba816bfca05ecff9e74d0fde91094d04486814e93815347872814efa06a78e29e6d20465370e55aab5c993ef543c46dbd082c729835d678f979904b402df7ddc4f9403f8d5b71955039b539785bfe79173d870363d8b677aa5c823b8980062ca773ba71bfebafca6399b40c8109f4848db6cb154a4846cb9c638c4e8c2de49df5f668bfed1a04eade65c030cc7bc8586c45b6e5dc346ea4073f4fbe31e16d7740c73dee6fc192b4e3e965e46f86ab9396e56b3ca110295cee4e977b147ec9e73f934ba397af7b6d6c37d256de4e15c0af7ad90cca7948dde03489c7dd9a56dff6ff5c9692541d87fb7b7a762d6765f34316378673d5fb6279b0db8c8dd84d49052aafa5467ac9fb7686cbb905ff4afdebaaa8a7928eed3c02e35c14f4e02b66dd893ec62c54e54758582be9d1ed9c963fc558ed076c107a87f0e49bb3ee585f8d9ba31788a925588a0c8fbab37b3bd79268eb359a9fd63775abafa6f2024aaa983dcff95eec055decb58a4ee90b83ea547b1fe8ae6c3a935325e1298331ffd5e2ec195f982c39c9394bb0933bbb0bec460add2dcce20c8acb03953e188a6ee7bf852e79642eb3f61c94d3b3497b99ba7b25fb9994a3d0dbc9bdcbcbbd72ca93534fae36df7cd77dd3f22c4918ac412f43d4ef9fb740c86cb12362df19353438569c16935edc8af7c6d91cc97c59996ce184f53eabf612a54dd9399fb11a5d0fa3af913bbc67ee874dc752748eb593966014fba090c537fb848ea86c2ba929c7b97456ac4b5c5007b27631aadde902ae1917dba8cf2936427fa22504aa2bca42bdacb21ac9a497eb1cb8a4b096e69294620386abc48f389c7f14380b03b10c614c625427c8cb9962f3d75409d923a56717882169bdab15e4426dfdb26072952255eab0380a88277ccac1d24939c98900d0be4570b3df596aef0a1747b2b0106c31e9aa9164f7745de23bd1cb222178ba13f7c806c0b02ff9898774646417bb2fc3153167c1eb707655c548b63caaf3fb3f37771be2fc972d03bde5286586d406b00902dfa0897785481b95805ab79dac44233af99ed3f53bfd6cc36af1cc79006289563456fb71b54c6e5e894f47d715ba062e010841a9e67abdbacc31dc373ec88ce8eba2f96381edd02fd0b88b47888f5084ac264c755c62a663ca9e30bb2bb8c89dc2ba91ba652fb79008ad91090c0614d6c7c674139ba5d57d26dba05e7c47e2107aac4cc28405a7d0d415e2472f66c40d49e094add494c19175886474b5a6991e355738c66d9178c94bb4c05912bd9d709290a8b562a358814a14c50750d17054273c7587b7ad5e403f231964bb40014fa7121fdb74dc23875a148f0f021a8ceb3cbde6842714cdf1008d85b0af62e65ccda27d9fc2a12e415801bb22a865b861aab5cc3c9093c3164e6b436a3475e5359bb8c241b635c351ec3614f7a225d522f2a0b7b181a1f7a4ccc858014a2222ba5b19767154e27b2667e90aea352ae7d3c68e07b7c4d0482ec38aa226ac4f2b63a8da4be57842a4a65b6e04c2166327be09a30128bcc33c154031b94ee13aa5d60f7708347659b4d73bc500432bf2401861c183c732019576a672d0c10d5c18afe4364e9ccf67d670b29283d0f0b9f91130a0437d7450acb4d76af99aa4ea287a6bfc73fbaa3207f58fccc775a811a7e6a0b7a63bcd87f04f1eea0d57ab7735315324282b4818b8d4346b0ecbcea3ac9c0a7bbc17a955617570a511447a9b8475f7c602135f57255e2412cb6ddb0d22c30159b43b9dd58066d81d77f7a4e263603e193ebf671fa3283c69e71a4ac433297867da2b2b7eca19373a9b4d3897689031e58284ec8779fcc4cb742b8712b11a3d143b02645a99db61bfb19c26a5902f7b3d77302a9ab059350925d8e1a994b586ea777697c389f9cb6e25817e07c5716db9ab63f451dc89a852031bb3352e8ba53643c509ed8590694b6a07340ad0fb2f1788937a0c45cf9a441494ae447c44c6917f2d7b21bdc6b7d3853bd8e33bc7ea75e62535f95096a9d0930cbcc0a210c2f5b81090d20a5d7c0346bb43ebe6b77072859f13a6576c72c0553da80a4ca8f03292d86a98246151960e4b15b758b28e2ad2271c9ca70f92061c8a560be21a2d967c0ae1b0ca446a987bbfd888ce4ccb725b95050d03134f3441f853935255bce8473e88397d5eb4cb8d6acaa6bb8d5f5003a560b08c89ac890b77aa16304f5cc74822764d82823b317572c5bbee018eedab6cd93caa924279ca8932a8858079197d412b7283e084a7fb9dbef26d4530c1b6136619b06fbae495d207a3c326910a5c2ac9c7b919498bef5482532535d2551fee95154b2082a76c0d3b16ced88993697b344cf7be4742a3180c69f6fb589ac17fbd03489b13a0af951ec1d9776efa82cfd0276e58c553b2046b4594c9621e0aeb160d7923bbfa53f7c9c2a4a077d51a6f38473fb6d7a2b2b99c5414c5e646734fc48c56c18d30997d8073afcb822680b321c40696092a7a9f9072cd034523acb15154354d697f27a312348601d0d1170beb4759510330cb0adef4cf31ca82f7f15bc02310f22c92dcbbc059e34771725685955dd5490331e0bd99829692275598a77a310243a6225f392a9f83910afddc172d124cd295288a77ae051031f898b42d792ddfe8c0902944b68043bba48a25c27323f07d4f6a8c6ecc33f13948ad12463e834d23514af69954395a144d1a4df8f526c0331247d16d05e185ddf04a94a92047bcc976bc17f6b7488dd390eaac4b608390e9fac6c2829eed0903d544b3ff08b2c27a779198387a8112e374ce4f5b0f5f898101159462929c5417bf373420811b4ecbc034eb41aec0888a30976428e2a54463072f3c9b55341147c464dc88b55daa1fa7920c22fb6c8225b2ccf47692713ded1c4a76a479bb111e56cf782a6cafe938d47de49bb47e732223b0bd1bee7bf690d1857044eef2aaecfcda92e6bdb853f01617133d65b67c0d6cc83710c053a18263aa91dbdbef7b85bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d +ciphertext: 933b2c004331af9c0e4699fedc9fc3999fcb8213c308ecd4e33c3ff41ef3cdad8f02f0f0bfa8db24218e8c81f0934b98153497e7e36fb78d48322742c84870a8b470dca9ce9a017e215d33b9b09d8477b5b292263e4da46ded3ecf5afc0d9472d7690d24d07eaa35644cfd30b3b530f527b4dab5df72947af1a08264abaccc588cee00be666e987de5f0d84bdfac563879916b912a3ba625e16ec3458c08ba116d8411408a9a9044fcb2fb39b2db31bf446b840fa196a6b61134619643116b85d14fea5389b2b0aea25cae45197e14844e8c4b33bd73b85799832cdbb3b5fb031bba251182ad85492a071bb4bcc5476f3a9a5f4c6fd740b640fc87379daa2da4e0819e983da6095257a6cdbb2e4a59055d0251480ce14983e598c5c4f362e49f992cee925fcaf504020134f9d26bda51f88006a0e4df6c4229ce87c19139220bf4f27ad189d9c6b2fd3f3387e344632e497f0f9086752318615850a51730732009afdd4fcce3226645fc26a98de7dfdaeac5de30fb7c676035ac267ec29303b6855a458682baa9b6ae49911ebd981f14ec358857f34a3e396fb6c4cf83911029ff15f23ebd105fe6178adec98efce9e5bf79478a278fe128c7521a81c529fc8544d5c9344d16aefdf7a4da73f4155737238c3d0bf820e1ce3e26e1b5f26e6dc0bbfa0e910988d98c655e1dcc1dcbc4c434b2d2b9420f98323e19e2214ec7e470848adc7c77a9317ad64d4a4b05aa4f72dbb269c4d30c98b9e7a39787f7f77b519afcf42541fd9e2fcc228efeec98bd4a021cd03d5c3526cbaf28a2c075fd83e6c47017cc1837a936f3b1a477b4c955df76d40bc4c9e3165c672fc617b941743fc1d596ac2000bef5a4eeeef54db3922c27755c5c58bfa0e3f2a97b475345793aaf44f371dddbb8c0ba11dd2fb4c6c38d1eeba05d4a1224d59174a0fdce7c85cc57c913a47c1de5bdf883810f833d9eb441e2b9164fa00e84261b67f56c4cda52dc863396f9a7302093bd657cd0c7349309acae2e7ce7b40deeee285552e3c31976917774052dc8c0b80fea4d1c0382825d5f3ff1911c5667b5d9e727b1fb5ef17f2040ba56397d4d8f1bc4fb445a054a39b40145e3457597739d6bd8e5d194e3e6800504c9ebd25129bf575bd8a859a16c056c9bd2e2c8d0d9c0d5d9ad81c47f0f6be82bfe80cd60fb158297942a0ed963ec522c0e5f58a5e7065c113336d55370f006003986832844e940f160682e2f69dbf6edb9d4b6268a087ba28663cd002152bb20f659107c7fcf337e37ad086a5c072bc632414886d328d7fbe79d7785404b550f99510c7f24c3b6f455d3a12a820f26d6b2259d7bd0a0981af26ed4494f66bcdf4171fb2be6bfd9dc1e7a183e499a068a1791d398beeba47af660724656406f3a581ed42bca59ed18bdee126cf8520ad6e7a3c7f37d929f8a35abe5b46177ad34dccc4addc2fb354b0dc266f8a1966510a68a82c7571498fd4a59dfb0004a3bcf9d88c7ef458733577ae764d90e29dbcfcdff40cdbaa1f8963125bca7011c4aaa6246be182651d97937933e1cc74927bc67791764bb20d1a04805ab073f00a9a5c6e74f35e45101fc31e8571757d06df9109283152a2348764329724ac053aa5f1a2a885fb745ce92914790955436b9d4cb59d922e1c4e07525fbde26ce9cf4619cc83888f3790fbfffd1932ca4d6a1fbec63d72a899ed0897090ff253dc371175b8c1db02ae0ac8438cda23c5533a113af068fd34d2b23eb52a30118308a85b6c851d3ceabf8eac3c6e2c54cde101580681b90eaac4e099e9eb35c49e80ec4b08c1f6adb547ffd0618ac7300fc2c032fe82ce1a7dfc7679ef0c0db03b494e48ca8ad2251311761b0839cd3d576980461e4faf81cf27ae1d13e1c3886be97c6da2ccb43339048c2706aacaa160d28771325e90a94025faf4bf4cb7445f318960308bb59fb756eece70cdb134c7171eae241915712b7e3ce2f373cb2ac3d26435c13034b21948f9a462f1eeca57a9a34c4a7b270b9aa8eed19212d0bfefacd8c8011c2ac38e4a4599baa799a9f06f9dcfa1518e04f246296d85cdbcd341156615fab90d9713ddc433f73cc595916bae88ba9a9c411f506b9ed5d66dce3ef9f350d51baa6a11ecf502edd6a2e49df6c25c77c0c814ba99abe4df7208dc80f948408b4af3289379f1ad6cdbdb4165c683aa3428d83cd091cad7aa9d59dd8 +result: fail +shared_secret: + +# Private key not reduced +private_key: 58c5e3bc1a5f349cfe23ada8c99bc5178a736854b211c6b4e29eb498ff88755843e306c1527c87ac5393c98c7766aaf9299c660b0cde67453de33cc839dfc0e2d561e556d0f89951f7543a43ed891d846f348ade2fd956e39d72d8be565be798d4af95321cca8209aa439b53757dfda08792d6d8e4fe4bd399af743ddf58a8f5d5be98be9c5c806d8dd7abbbcec5caa715136378abf2d73ede519649c34c56ab5b7a831894447dc30d5ce6b226490d738282e63882edb164feeb4828d83cfc7594bd68eb7c8711bbd6563e64382a87a693f67957485d05eed5f5b0135bbd0aedbe01594b3a134761e3a7efb567c4554b0d4b6ddabcc50c036145beb88484a19ab8a94e168cff72d330647dee43b673664a024d7334883cbd6379a62aec7b755d28d8d9224e6edfddfca326c8faf5fb4495b991335d2533876837e6f283675ae96ef53eb98b9fedda78ef35d7ef5ead9ffdfa471e9e5575ff339117fc9d8b50baed6bda1d55395958bcaeea399c8ae9fbf884154cb7d59aa36a4d05b5887a2396236da057257e7f8e5859f53c85059760857882ab38fd8cb7a35e4d2745867fb348b5feab4e9cdf210f61e68474dd45394dfdec1e5ad7799ca7dbfb5b3d5ec7c26ddedc768bc389499427955868c21bd3a94c3694d588700da5641b34fedc25ff1c1c90e3ecadcb04b8512342a87df7c98a6af97ad958f775abd890fa586d81497014ed62af9aa7e77340188d7d89076a102bc46924b854e3f477beb6ac2cc923fdafefc6c90c78e4a28e9e96c4f9992be2518e7a9187755805956d28a7ccdbd43469896e3f6df5477699ca89081cb44cc492ebc667204ed8f0795cde24f2d3fa8d00af5e3e6d40300b462f57986b355d80cef454bac56d66aca29f40c70445c166cda05a8d5a0763034387b50c32df573e61d9f1cca5b26ef3d95b0739cb7cab1756a097b4c5a24555bc4a84681772b1ecca530a41c7ebef2c49c2aadadee363ca9a29b1040a5c31d6d8c235543d36abc90a36d92edbadf3b10bff67f6dbe1ebc7c0234e75d2e8fa0df8485a7a754319952db5df485639385e7fd413f93593db4709d8a9489011b93a0e9a3d999b3d144e6be914a4d9b4e96ae573d73a4bf1099dc4ce9dcd2b6cad5999a71a7e267e7729495597997113ff3f38d54808cbdb87cf558c83bc5a39db0debf6a9493abfac76eadf5fbc8889294e7f5c3aea1e34a355343a45c430992fcd83bc55362a7b8ef5f1fd8e6bff2fafc057e96f87b9ec9d927017f3d47eedc5a53e90aed8e5064a9183aaa35fae2024b33ad93ad1c967976d3a8538c7f1a3af213df4cf1fcb4035e92744bafa338f326ce0e1544e18b9f509639bb62c4372ebc39965cab1de31809ebf1b46a4523bbca018526cd681a318fcdeccce960c6d2e5b317e2568b2f4a25a8cbd1844b1dcfc32c026df130ef7f0caa3e6e37d95db68deebccde353d7cdcf2e204bd8c0e6f9ecebca5c8439a4cce98ebbfaf5ee1a8776b09bc325599cdaf2dc35474dfaee43c08aeee08348a17e75f483a3751237f1eb9a43a49702654a4a10fed3d6b591d3b4add7c3320e8d83d2f3e899d80ab6b364118cdd1e4f03828fce07bcd7aebfdeb2531a2536d212646022760484dcf54bc513d9e8058ca527b48b0ec1c6d6cd4549b6ce8d50a477b8dcde6e87efbeef84b7e869d46b47f54465b9669e1ec5ed195d5bd8c49bec69abfefa2c69c684ebf70e5a7a69846738f3af416148098174c038964c8149f56097caf8840fdaf6d4f47a68d333761ebf10947f778f56aa10d3f402b3238bd79f3a8ac031a41eee5dc218673b05a5758df9196a653a47b689bcf5a290dc79dbfdbbecdfec6b430456435df3b7d81089cc986bdb256e93cdea153796ca60eda9d2a8c249edcf8467517085ef79b7bdfa7ba0c2be80b93e2fcad999f87c8bde5e8b5654075a5dcd27861ad55724766664d8a3468b8e3930ecfc9a48fd0dd839dd4eb0e6e798ef6e80bf33335c78faa7a6e1b4ef6262eba7fd79a5bbd854c7aff14265e429fe23258e7cba46ee849713fbac9bd1ea8df5e376bddfc35f45e21f642732cc132745c5edecd1e45a31b5c9abc66d55a95e0f5fa71eb56c89d7685ceb4afe3255c734a59ddcfb5aaaeddb6ebbeaf5be10bead270fb568c3c6a5923dfe649dd12e4c27fd191ab43b4aa8a66c4326e681cbe1207bc2d5aac1ac59ef0a8aac0c8b91f7c23ac35abf566c75ad3b01d6b1dfbc29db4a334b44c10fc25808f9b8acdb4a2ba67528fba8ee942a895d5544857473459763e92174dc640bf284908023146fb553b1b8b1e99a7446c5320ca17eb6bc497a330ded7b1016a1c28d23964f24f2188b2d7ebb2bbe954c9d9271baa7e429c02dab991dffa49410ba6ab20829ec41b03b8ba8756b5cffc640e928b24361f0f007226f2b5315a8bdf8a10aa88581ce5a140588b69b531f5112610c5306fe41d4c018302dac1dbf69863b6bf99d892072591a0168decc69f89823999095f256c52c6336acb063bd741551bb855678c4e8bf90191a38c2fc641957312ee758e73d88d8c8937b9c6912c59ca13854a4209924db71fd8b547a076a340560155122298e91328a71773e1cf117920e5faa8fbd847fdd027f734c06bec0bf479b97cc11d626122d1049e96c7643a6b323aa93e10521460c7193d7c85a1a8969dd0b0835b64ade28df777a1c70646b8e55578ba9da6d82a96b5bbca1b2e9346775d24b987535882468b3e9263a1c74288695722142d9ba23fd747383832b2a3b6720b21cfb5f00a178c51a878992d666872685cb1f346c77b86a0174ac955b06df96ba094101330958452074c57377f520bf0766881752d70c0a778415f9bd3b5d276100f00ad563735cce0952354260c153c3ba227181a21b9f8166dc0aa42acc241f6051624b88d1659a2a81f9cf92ce82c76dadc27bc3b018f953a5af66ee21401c02a4e3b8b4188a36be3818ccb82686cc21d50614f1f000721f8445323b4920b3d929c1362d91ef948371b531096186034d61f0401c09679c54c5a993ce85137f15f50466bace29512e260f990764c31648d6649d23c800750a08f759fa84258515c4625b856eb368d917c36768a8a1471a376ab367aab46295707e94080bce47dd4633c2b50ce0b19bf47d4a68c3519da21c205b0c9128606ef8a7405ac525a12b0c613c7ae96aca34743ca9679bf078d5d016405f336f6088a9652204154648e4b3f6872929f02670c7962f4b08bdda9beb2a33a2babcef40cc4de288460d0188fc29ca85b212eb40f7b158aa4a38710e0608eb150fa5252860058ccd822618961cf5c18a01bcb2eb92dda84597fe9b345e06d14a597917a4748949ce5f29e60a7ab29740242166c5a651501010bbbc73926a7c4d0dc6aa415240e0c0769774055f9882aa4330dac1d8500747bd5264bb7625c2ab58e7917cd122858135ec09a3f0128837669bb37911903854d57da6957d70407c752a20951535503847b17c536a69ac09a84ca64633a4fb9c26221296190b27c03781729456f6653639fc036fe17c4b66b390b2204a1361555323dd307572b2caf24148dfea74eef05880205c164da71980974240b2167b3c3200745ce778a4cab786a0cbb132188158c3111707058884358db6ef3d04480d7ba058c7e52e4052c1898e2918d98590716a80bd9a3a4c3d53cd8111005709e708b04c6d18bb1577219a39d26a496582384f1126fe491a2dab7b8adb4a07563c687c4a6056455113c6fe9b7bd30cb7fbed2839a93a584c76af5c1422dca809cc623079ab65cb146a3011c38c1a6f3db134b72583ab9331d418c7ab513d77b91a612053f217d406babaf4170607a1979ea637f8875154561f69870fb1682a62052fa36a21bf94fb4f24ea54c1658d8bea4e2813707981366a8d9655400db440db8c27af57ebdaa8ed897c7594712e6881c81f5b79557834e53c9b537ab69942830fa60a0c8bc7518192e52396ee15d945b9f8df019f8f32513817117834a9af58ff761a1830798edd48fb571be338b43140c44d17b272db6aeebb0cab160342b49cbe2b47a6a5006b5cac09d763f168c6a5f329b7d1b87dde69542a4437b8c426890b4a5487ab43a98ef94667efc881a943b33b42c776b3f8af853fd59c2d3031fbcf541247100d22219e67094ba89791186bc8b7b536fb6438aba5275d234adc5a9ff129fa7d1b5c5757483f02980fa40882aa0c72c0ef233b0c2931f1e15cb7d528b471c50903256e54a87f8c16f02b3bb904133bf60136d603bc57c503420a8b6701aea4a3b4052334f75bf820c2ed9890bcb812b20d9031c269af9598acdeb8a52bfa7cb804627acfa20285753264f3df670dc445647c881e112b71095f109342b8799c6382723886f5b8371ee58a35fbb48022d9c107ba6fb6dc5fdbd4ff573fd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 +ciphertext: ae2c5cb63dd84bdbf16f45be0e0c322955c2c3cfa3fea74aa30c6706a28e5861a92e2692df21654f0722901fc86576d0378f662afb915da4ef65df72c0d9032f43de8b69eb9e37abc502442fc3be17a539a4958350e42ee2a83adfa66d393d94356b2f81706483a2da094284b7c39d4c7ccb4c3c6b48552fb4a6df7d2fbf5fbb473ee164680217a54fef6d1a8da22faedb6ddf9683adbe5685c61e5410ca24619dbc0b9cb728fed6207f75095b73b4f2733401182320dafd1574b815ac1d92bf61fcc50baa791b540d25083786b221070b9b5ec97c69a2ab709a2dd82224d50c7223bc620a4f142ccba7f138ae06a9839b17f31b5a78cfff773595c34a7092c5c2a67df0392985afc227f171a22283e3fc5c12cccfd8bc98a1adec1ec8e610008dea6bda2067624a7bf003ccddb8b1fccaf84650a4175fbfe299f56191a3251fa0ec63aa6198b7b9f13490dbe41b23dd44c5015f82299f2e873a576b7e44a3769d5b1886b2114b31a5b2359affbaf2d9156e5ca200c36be07c3837e5a35be36eeae315d888da4cb2e5911ec897d28ff484f4a13ea45bb5e645383e93f39b90c600bd6ee8899c5436f18eb9cdc9f7670cd66c42dd182edcd9a1e03c7c7e6cd22bdea33cede3fe43aa7e9bbcee5bbf6334e516e4228112e3165a50acd9c00da196d83f1e71f97fff99912807d5b174377c81b5dbc734175085a1df2535323d821601b42bb08cfc508eba25b75eb878a175e69b9704d31d8d4c626705622821b0fc787d741da974a99c873b11c10157dd73728fa96d979bd825265c5c2fa198cd18db467e391ca1b8a1cd83a3363e763bd0dd1eace13455553f0d0a8b594d2f82443a377ca830540522e1a9ad2fbbc9e974e63dab823d347e93d90c18190a7bb4366e3fd0c81d4e10534056e80c483b998c645fbde1267a0a7e94a5950942aa114615d38ad0b8336b13289d8ab76ff03d49f419de79d309e515d668ba644aa43ab75919f1be4360c0eef3cc0544a80d8a46d6cd9f5bc7e50bf3d22cfa338fcfb015af7459dcd63b066077198fbf468a75ff1d4277c04c6dad16866fe79ad52873165078d3d8ad1ffc1453b6dafc3171235acef1a16912ae4aa7eb4e31e5a3664b19f01bfbb75172605d237c23d22a2251dcb9bac2cff63e54f5a8145fd2bbf63b76edcfd5e87400e50bf239a83693387780a182f4066d624b7ea1feb629329f80a0c9f07369a6a70a710bbbd80a189e92c9de920a4dc1fe1c90e2bcaac35e2b0e76841ea451dba128c0317442de8c7f95dba18fc667d9b4561302e17114597d9bb1882e35515e8a2ee995af7796b8d88215addc8d41daf201ad155e2dfce73610219477b8b0c2adefa24b27534d5ec7c35d0a2586a14b1a796721c532aa269f3859e50e2fe4008a2aa39f86d82bb99ef6162a7fc6a3818d05b69c4af85d2d16e4edfa291af1a9babfb7d460747770cfa5ff0b20bc4d6fc2ebe88f527f054178b1daad883f910d67f36787029cff7837bb147179c0869d2c87395988bb925dedb34a4b8221735131a558ecf6a4c5718b01dee25147cf12a11039ef6de8001bec3423b54c75db145894a412e282146f59ae7bc1d88f7586d29ad802e8ba080fa6bd38db67e09d8c3018836a6e2f48eabf60d2181651968733272db494aa086306f274e02292df35db37ec2cc15b2866617e9e4fb34144420bcd31ef50fdd42106547fbfb2453f9d7fcab4e3f25d56b502f04f0d51d9c725698576bf32b7a67e168877cfd8aad057bc4891f7d493a07b626c43be7610b5388ec6751568b153051dde7922b4003b6c34f3af807d17e9630cc452a49ae14f6d34b4934b81896f4daaded277c1757067c12f143c552a83495226cd6805a73d11724328533e087b980db0a6d22816da01ba0b8f06d4afebc893d1b6bf8dfa5039ef729d48bc274f3a8fdffa73054d8a562b2683c6f758f9cafb7a2b31dc596f628d081b659fdf08151a85a9b3575eed8978085dad4625832f803dbb7cc90f82b3186708a7f4cc5853ca3e1fe958cffeecd27b685d8b7bc3a6707446ac2a29865cf56d1958438bc09a4e8d11abb0d53e1e8f61e8bf044c6541415569815295a9ead015913dd9979dfdbb7e3cfc8fe520a79e8191881e617d78ba0b9ff588a55698b9deff3046009783e9d9ad99fd270ed0e3a4467486303024fabd673dc2322190f74ac36f2c5c0a3dc36b4f +result: fail +shared_secret: + +# Private key not reduced +private_key: 4ccb897e94e627f45dbaa7b00b77dc7cbe7786a89a4294d47a35f7c9464308cfb1d417ff358ad9e07fa768b752e8794218f94bf07a6d2895d7fbdd4381be3e397c80ce956e3e96a604d668531bf0759438a83b35219a6cf39a44d2cb697463f65cad47856debd41d560e7cb694ad6944dcfec10ce301e5a106bf39d024a41ad5d103335c170684cafd37271858595d6ba29c8d8c19a150bcc6d8dacc1054bd7ab4c054d390ff8484861c8c4c8f3d3c4be1e31cb2e4dbbc769fca95e983aee58ef4b6ca6227a2d024ba7b383b3fa752d6c9be8cd9ee6905619fae7c0a2bf4d2586e91e590bb5ec1672442bc9c7af0e6bece484a3b96a4d76467bfe4b19aeff646fb86c74864b39a60d8ec41e7b5adc89ec1fc563ff3ee4ccc9ff8f1944cbf1aa2f4258d6fbc5ea7c46283eed9b8a87cfdfc576d84f63be3c8674eea2ecbead66f8e14975ea8da31b87ff24543d788c340e1ced94ad8c2a2aeba14663d75ade3752f35bbbb6045733e7e75e9cd1c8594eebaad83a50003b73a0dbd69e6cdaee53db7a7684afa3b4566375b693c151daab378d15f1f517dbd4b3eb6b824767724ec7718b4d3e5f7e78d1ee90c289811c7e6c79a846143f43ff383ede452f15b7913fdb764cd8de9dda2c08b67b3c4ef39b63bc7bb7602adac80cd3dd4a656dfc89179c34f05976be42896ffb4975a3fff259895dd433ed73b4e77b7e5127a3876849e1b039cb8b7eba5ffcc640b93986974a47ce5974b7ef3b3745c3893b63f784869dac2dc44b6ed32592bfaccbd55f2d336accd62a1fae1388432ab2a7e402a62a4bceac65d3ffbca57f35d5a952cdef3bfbfd36ac5e5adae117ce89aaa95202cc281ed8dfde77952bc65675e3878d4d77bd45fdb87520488d7360e818e2f713258f0ea038f79059c872aeb1a6f5fb60a9e7d8d6dbc444fa836ec164dc890e3e5b1cafbc4857445a539af555d6cf7e0aac7b9dc15a14adebb357bf3222efc6c63da63a9ae1d1b59dacc92e909eafa9d509e7a66de4ecdedeb8252d692e3dac47db872ec36bc4513741f3ea65376abe99a6d82f6e10e2a5ad06dee3b785088b4f98649e4466dc6d07c3c39c9364ca56dae67eac0be3bd805cfa29d54e94d3494ffcce82fe837edea8366ed734aae163481ebffce8519bfbd6aaa1b29ad09f8705e8582aeef77426ea2f48bd3b2c995eedbd2472fb287e84500369ce1b7ec77483d1d3d653a7657f953b0513e92c985f8b4e9f856696d256bba012bcfdbd8c3256c996a8e9268d4d944b9d1585dcfc255411c19614757d7446d9356e7ca801cf6366e5338be383267bb339934c3f68dda85bb582c7bd723ef614ebb22fe4aa1bf5df46bcf1c6b42b1db5b605ce7f0eddf6b23c85a4cd54d7ddf9d4dc21d28e0f6699bb97fd146a4c2466cab87be659323f90dace82ead555f4e7009b3ae20f6cf20bef8d873d7ca75c0047cf69e0fe00c98342f39af8d0d918f93550c668f9e6c4423f559360e85494c5663ab81bcf7f91a6febaab8e681ee9e38154c4e18d9e65ce84a9396e1dc813de849d13a7d6a2fcb42bf346dac86f06996f8b7ed40dd9b44ca60233c922985d263e88c10264694ac305c7390e2b63d8076863875d47d9dd88894916b54756278c6facd730f4abacc1f9843de610db66892d5f61606fdc4ef6f94fffb736ca9f44ce6d48f6f5f3f41514e6a8c554875dd94494ae3521eafa6d45cf1f58a7177b242fa9e9b185eec54659c887005c7d2db26a05cf53dcfac617944fabbc7d7ea449912e9d21cdc5716bb469f0dbaecf754cea89b36eb6b1c23df5d439b4ae9d3f09752effa555f28ffb1c578855a44d409d58479ae465eb61d44d48ff53d911a51c547999af5aa776ddff4b843502d43fb583e5fc5af9c7358505d65f1e465a794490a2af96bc8bd43c647e4b3f83b24c4ba43d1b40c462dccf0f28bbb18cea0706a5fa094f68298899f1adfa4d36c74a5ffbdca323bb3adda17944ce5898cadf7d876a458dd66819ab43e3fa9a05bfee3378c23e6cbd25bb2b317767866406d374bd03f7b1045cb96f656faf8f282a5e56def6dc287def493f2972668c5c746deb4b57b47d40e9aa732c79a249ff7723576f09ffe95a6c80f6e51f75f3fe6db352dda9f806e3a370eb6d627e9a21c3696e4c9f815d0fd9e8d96f73135fa51010a83491b407571126d85002a60cccceb5393b459cb39b4dcf175b2134cf515c06b38cb0ea33d8c34a7283b99b6d0c9e90825159cbf4bc2a1c0f131580557f243184bbc7498b39266f669fc161150482de480ab196ba61dc526f8a46a2ae3336a7abca9e2743fd654e965b3b33ca0b9cbc8c96095d78a971a7277496a8c123967e8c204765a864890b762d34e83570a8dec5cd25333276555e7644eeb5ccf8004579c357481000ae9a930a7313468d3a8b6d5b4da4a558a7c1318da670dec758c98c5048144843096c2b781d73a9f215c2ca0481ea5aca259997c8479256841507717b7dd01cfe1755f8ac2bf1008c2c61b7bd13810787185cdf16a17c2cf00bab7eab737a641cc12ea6d8bc802e0661730628194c40a7865a3587cc2f5b0ac1d328307c55388970b96c4969a533e04b425e528c713d41821ca6cf1f5bc74e64859c49b914563ad193c626c6dc520143a755132260d5940c76e20a7f07987fa7c1a4d1283bd700c9759871f973fa6d94fd88015cffb046555b36559420bcb98ce617169465770135b15612a9884586d0232d44606632c50a9d5beb3697669c9940e1739508c360505248f501dbbbabf70e7cffb24652b782de5f4a310a7767826bc73886e60e51230068dcfdb2b3ef246f7701d65813e54d78ddbc34cc9bca025914883364c60576a5e0c5a863a17a9872b818c070647170cc46f44880d4ff46d68c4694442433c823c0ab39656b715e0443e8eab14a990c42a031ebefa6cfd54c32fe4521e218396d53c5554c60b93cf2f1cbb0062c6101686e5738896621e44b32449c297d968b16c80ac7491279dab0f84749842195aa3dabbaddc2457fc8b854752d33cb1a5499dd53725bf34bf34a68457e57e4b270fe0f07323275fb99b78aa90af27480b6440217b01867a1b7a5a5885fbcb931c524395cb11a406a492c4251f9c09e14a45e2b86a98c72f1532664879a2d5557fe9db6bcb2ab6197892e5686b2e1ab35a3434a77a65ebb6189aa00e19fbb045a03fb767866184c5c2e2b155f465bc7a135ab25cc5415b0a42aa17595a32e2a370317414913278c18837f346c3a54be5722520315332b2b43ed4089b427cc8e24f10f17610e40882b4c724c48b6315aa6f0c64a4032e4be75bb6b0702a2cb7a11cc6aa14bccfe91af25642513425ca475fd7e7c387214294a36fff09bb1388a5322910b9906491bc923a2644259086bc5131e5d67794d91f65b24a0da06ceeb63239456e6c3b1cf4fa04165879b5858bf60664aaeb45b3a238b1a926489a2d395473d3a5173fb37a51fcb5ba0c9cc3eb01debc383260b4f5033bee258f66a504e64a74fafcbd1a46076ea00a02246eae52ba6591a8ced21b58971f289847c508768dbba5ab1921c14982c9525ab4b64285723954d33c8a35396db137c0db48a39432da0abc3857c5369b236bc03ef562a8a5e4211986a385b8ab4d1745742411a9712256636e62976f99a72d75c654f8574737b6ad34c129a2eac22fe166b2682840f7043d4339bf699b68d51ecc32974c161136272f9012219bac6bfa8950c6016207dc6566d20b916974743290f0a52b8be51c9f3c239e8b6842278417a05dc789bc43fa1ee0671a51ba3301246ba780ab71295cbd20ada7a07e5593a3933604ef972a711349a0678a60d2af2434b17ee940c067bd89496c90d4b9903b9d146a49c36138dabaa405499ecdc02f791562a5d446fb358702b2a5eaec93b7f4756762b3c17b0e8d48ceb5d5244965168fd9c3e6495d1fd578ba2c168805897cd351202059b5a4b96687465741b077677583ca7411c4331583308da00ab5045ec5943beb2800b30978c31031675a84dbfcbe6d7b27b2da65152c692fb8727a485b9641888b1b36a25491ac76045792278125b0a3735f3e759901507ca4a2aa12dcbccf3c35c68873518a4fc778201f0b960c7b551f038c6201378ee101948629dae0364e38ad079320d2cc35bfbc8ae7cc446526447d60b19a36519daa8331a45f1e4308d564979a5179073130594cc5fc07a1fb6b5966277511544611e018f3f8b76567add2c94a0da8502063c66c54c3a50644e43b81a93c7cf0409b505c77f5d06d34432bec389a137b6fb9f18da05426d03477ff0b8185327c37f449c8f6398680c78ef7d26c51bba9665cf58b72cdfb115bcc2a0715b5b4f40dd01c7a0585bbae739590cca5e4b82099b66c7175c5f858851eaca730fd0c55edf9ae451e07bd366d20a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 +ciphertext: 3d0c67db088b150e110e9a395a143a94c0bf6fd9dab5ff681c38e1ac6f34156cdba2b28bdfcb62ad002b1763e31bcf6316df977e6533e12536bfa9933780de5cffeaed2969902df53f34b1026543523dad947decfaa8ac43b223a5bbc59dd5c7647fe3a17ec79a84e89e820bc0ccaa56016540d3c821ae453dec695b4a2232a896264e475cdc16cbd476fe8778d57e5a31e6b3e6e9dcdc96c69ca0d25da24b2a8ae65e6f8a9eb723594f8e989dc10078e20f058ef8e765c96093e9faea1a5919c27e69396b53c5e87213373ed900a8a763b9cfab262637f40038826fb7355e8f0cb8672eb3f478e577956fc339ec67de582e6d9b5cd578874d3db3d774869b291c5ef0b2a3393fc4dab94510401ae107eb65560d9685c14b06a788fa8ad177f76b176007ceeeef6da8913c82744ee66813004ddb6591a02e745a960a53a06e824a28cbdb197591dcc02658d4f7bdd401bb829a9f3ad2b3cb3093bfab0d8acfa0a66b6dea77e9c905f7fc3b0063f3cc12c190ea6e574b9b606fc5243ae567e88383b2d936e89c2e12c23850470d09c219568a9a8de66bd77612a4f13718da6f0b4cc20d9bf0e437c859ceb6468713159ff61ba9c26f9393fac3fbef93c6718d400ac9b5816c96e5258416df120614024bcb5e7eca61449af540993e27a067203237acdaaf8b0e7381e3413de5f4eaed01e7092d40b522e4508c3ae928996a960e4866f78a0b5b42a7bf43298b4d05169e815e82802e9afaa2bad286ed0fa4a1efffaa1e3854aaa9bf12121ca7c6711f6b4c838eeec2a9b5da3e4ff080d513e18b71e4a71bf9fcd544ea44d5438d4f56bc269c63fb2b4f4de5ef9551a52b7cd781d4a6ecbcbbab8825e2fe6693b41f34f0c07690971aa6243046977c0c48713b9f2c320686e02bb01c789d9a6e46f9a3b8fb480f4d7c755bb5c093f4903a5f332ed9a805d024323635c4a51667394813f01a634c90f6a82a16b6bc1a2b3dc7e25b0947900051da0e5101900fe7c725324fd5a316057955ad4aed9e08b67405dae766aa628f599776b0f3dfa2b12c2e40e480d7c6cd4562f0bbb206eb4478125b5febe34c7c81924a3fdf70ee2f21ee2b3fd0823ea16edc4a5e07f2adb10422e4df4051725c6a99e4f5b8f463eed69d8921ce36e7ce5b6d14a2be719907d7c547a16ecfbb733868455aea386c52bf9adc93bb1792bf0d8b056386c6311015f47d6319c41be520128cf2ad3e1e0e8a568c4b3c07e2b10589f6498d01cac1f8c2a50d20ef7b3ffae9267d3cf3e66cd57d6d42a87865131d5eaf10f1345c1883d475f7b29c8f07f04533f39dcceef2904ff0c6d86b1ca1acae4f6a20a649a95bedcac1d7e87c17cd75ac8b1a636acc3187eca7586db053a6595d7c39ce1e57e839065793c2ec2072371cefdfb9e62c559c3d2ef9b736a61a72695d4349d933952fa9796bb4d39cb5a88709474472a19da3b7589cb01a11de4dbd79e0555f6a290ed047fe4e31a6ccc35a904f4d30d363f10421f5a9de22c059a6ed0e404ffb62b0626b0b0397c30c59d56ee18364c8371d095d1cdb0ad08dea67dbeba8e2883ab4762d4b2ca32485a6747893c03f137780b105870284d523cc92cdb85bb94602bbcc9736175a3958629fa45f26e6c8a84fb61f5a0619ce2cbf5d4178aab325b393dc1c201ea7f751c8916e5281db2eaf733417f12c3cbae76a2c891e7291f54b8aa7e91c05f4bef7f75d86e7827dbc8634f7b4c19c88371087a5c80fcb48aaa051329e8b474d0ac5b606b40323327cab61899c0f12ebe3142766f70da217c57534983041eea96206a27926e4b296267a6f555356f3ec387b2cc21d541560f932e716de3a67fe1afdc193027a90c8b5bf14dc60285ca131a643a1231a5552d624bc930e7b5965871c85c5ba055191c23934e651c03570819207df6e4b467bfa0f2048838ab9658f9abcc6a0a74d81058510d435ef7239a334437cd0254eb4ae2760b51cc84733f18730ba68f48c73cf3a211c9a8ba65d61afe39cd6d5e72c4589b7a9dc4a49a2f05f17afa14c89d4ecf1fbf5769cbda70a570d73851694e1c3acd74f80a25a063843664930f168cb3d679ec883b82c471ed634238b58d43bf732e71368839c64fe1a54e0d8d4c58e06f20848c823f49dfcc17517d60fa56bd5e496990bb973c52596eae1077227e33b04cbf67a30ad91c510bce5f9c480a273b205446e +result: fail +shared_secret: + +# Private key not reduced +private_key: ea9b6cf64ae8d0045a6aac4003a3dbd833a2109bc026caa6b9a38261ecb70f9992ee3a47bb4335ec8d314e699734098179cf5f924444714a9348b980ac7699111856623c9d9f2b4f7da5cfd47970a149c3bb98ff84146e7b8562a549ad16e447a8ce54b2eccb391fdb44d6e19ce9663d34a646d6c31dff96f5b65ccb055cada93c272ac019adfc1ec93c907bac9b7790cf6bfc129738e573c5d84734ae095801863b654b7410dfe6eeefd64c33de6266454d064adca3f428e6944c2a7951268f442df09cdba4837fd36a2ebbd35c71d97f8e47bf91f9e8658743e6dacd525d8df841c3acf335fbb47df0d28f38d37bf45c08ac1e9af8b75c5b29b8e0d3d6d87fdd58cea97aadc75f28bc92bff3614ecd4c8267e6f79b363ea7eec215974277c02277322c1471959ca699aab4662acc7fc6f120896b14a3a2526ef80e7741bdfae8e32a72f1bf67ffc7b2118d94e1378b179d93c007c077afe3e28b9249acc9b2acb5f8e7972ffa629a5b40fbc9773fafe354c3ebad947c46dd79da19fb5c4b7c094573d1eafd378c8708d98e5516eb938ec2feebbcb62a99b0c6a0539e345b83e788e6879de89d9756a8795839328f49849bcf7e53fd622a319e57c0aa8fa2e034be7587ef079e7a3193564d3f31590c74eae763844998a07d3c6a6647378f3e039a57153e535b0df21a1931177a4762fdf2be9f5f779e3c523be28fa54ea2ad4a202e96509afd661d6950437f13d463f175f691ab919e7fe18ce743441bf73217acb03ccd68ee6cf95f65b67c8ee56a4cd757c86047fec20dee7f6eaacfc55f0734f3abcca70834b550a4bc8228be40ccd8e723b37fe945f77de8b6f4808257607aa6e2f9577d6bd86fcb4ce49edcb7d9df8cb5fa63b72a41d42471a0f8b014f8315e1ab6a894b2dd7dc71f88fc00f5fc3f1534d46c83b3dfbbf5cdf58d9e9307e9470f9df7e6bf61bc36c3362ef99e1a990ac68b6a735c3cb39baf03af5c5fd6601a7a6c34d11fd56a975e90b0b675d33381e64fdd03dbcdcf684f782cbc2c8d791f0da0b289e3001796ed9baeac1d3be0efcddcccb0395b441e7f746b6ce34714d8530460b473466d6b8f69ac8518a3b26c9ca22d077a31a3640538cabbfc852e3e59fc26730fc5af89c5b5200a7636e56f74f99953886f80b77f6f3fd55e6ed48cc4e22be5f5710a4ec37f628cc5dce549342d3e4e81253e0dbfbe1d779b8256f0868f9bb2ccce7439de2018ba52decd090de0e097d254f4a73fc637d0f5c6d8f56ca376690265c4b7773bdbbadb0898dda2e8fe79c87402c38bd60a4c08ffe9ab3db3566b78ded736830ceebac43d033559e81364f9adcae5096244fe5b7bbc3bf7dcd620df921c1fa5feab37c8c4d2ff97718fbaeffe79e22a6588054edd9ba4555977b2cb5a97e14ac626fc4770fcc8c325b4e03472f8f6fae7c37918a48f6edbe5c1bdeaea2da84b4b7113a74bbd39bd3318c23624d1f2ce5fb95875ffc55bce76c77c3563d40fa2794b92dd9ddcf9f38c5809c29b4b7e0e38c340e458bc0db44d8ae1594a87ca96bab676f77a7db569e5c21f574563da3dd139ccafbaf9f8a79578a7afb0a3dbe8f8914a17415ebcaf15de3f5b4d37aa6dc70884b43c066698cb4a004aa9e32a4b125da98c7d8e185a5b4cad9e4688f90d33c13c24e37a2b61e19495597e90d35afed82aa0f996eb04f5e344e4cb0ec6dbae6de0d635c4822dd6a23d470469f62e0f8fa6c383417ab81586ae5cdba77717ed687c99dc9ab4ae2e692e7d679e0c4dae4be243294146d6bc1bb4b8d6b6a3e8eaf4a27c62961ccef556359a9486db3642103cdc13aff4b3cd35792649934de0153ce503e7976369d5dc54fdb389acf6d3d219e3a25538ae1e696b74576fa7997177343914f459557f8499b3cc26c768a3d476ebe7e20b336baeb4c65c7fc8518357776c774cf48996d6ad206cd92c9791e55c727bac7e917afbbcf994c5f9c4330976b1743894ecd24dba7997e33efd944405844c01235d4308c09a75548b43555a8a6ea1efe2f5da6c8427862883e49cb6c3ce8ad7ea39af30e7a7505caf3086f798e84bc7e965ef96c51899341567c1324b6b07a984cbe7aa6b56cd538dffb106b1cddaa02e5d362deef7383d8e3e93a45cacda352dc4b81e67d9587a4c2e88b6ca993b37800c878b5adbbaef794f4f24abfeaa40eb1c5763fa55b7369e5be8754beba6be9319cc3a482a53ba93c417bc9a5a3030cb2a247177eb11b63a672e0039fe71735ca9cea99168d1634df2737b45324034492e1d3c74f10239564b23e39585734c86d98118dbc944dec28869ca8be7e17b39bcb0b0e34e257bc9ba42cc782078945094eb1336e516c62b00871d12c6019700b478b5db43ac419b2c7a50442d9458ba4b853d5a29ca946d64b6a6e6cb3485439abd4a9cf34b5921242ddf3611289a72efac4101b208cb7598894a9ef1ec38e34a58b2c071b3e6738138bbaf416f246072ead83b354a0832b98b551b7210095fe9323e1f75bb99905e5bd961cd778d32c1be94512a7893c062f6a66553152d1c820b8825c25938c0348a3d2206897ab903e6472193b5c2aa3f1bfb22bce88bf3723eaa8292d5446546865218d5827a5ba0da5354e2f6c81eb96cf0f28efae54935138273447a953aadf9757319e03a6ad19d7e613c2cdc7f5a3aa1891368399ab5c5337881c782bec48f9161774686204027b6fd895ed1b800db68c2d9d529156b0a8db90f107964d8f5c860737db2a3375df20b7bbc7f1ea57ab6e2a2eb44b5f8e6980d5233a0791350f4ac23210a4bbaa928273294691b7c441edac04909472e8f6714e99bb7de1076a121576eeb1d419122d4366023bb2fd66937ed940566ab07d7b480b330937c341106c3bc01f3c26eb7388ce7404222bccd7cc42e8a56909239a2968f2da3cea3c6695cbc909ee481b4c619f1e7ae6750b4d8f691d70490134ba02cfc97327c9f14db4bbfca7b4589431e0b8fb8dc61658110dcb675dd1bb46db49605c66534ca53d918aee579557e82c733a3841a7338f9947d92d4379b3a2d47469166bbc20ecc4de2f7c768a0ba4dd788cebac30eccbdfa11ccbff61328f92739e12160b83369d8466421374380a1a2c8bfd701a869b49d09644266d300493badff092390e894102028768a4592e96306130550291ecdaab48c711e8a1822cd278b80357856a739174b3da66795fa8375333554fc92298dd92b3c962bad035424f418b9b626d32b5383005564b8cbad0915a977b1c95710ae490bfd158a2c780e14c85ef92a02a2601c3538c1297772d1045bc4811e4e7893310413b4121201eba6c4db8658378fa3a6b9b919c9247c40ef39a7d564bf13a6c8ec575fc3b58f42426ae1a4944cd638bcf8336504577c65a7b75b06649802bf898fc3337ea3f783bd58bc85e33c51c91412c09d99c310ab9802ddeb4e977a640eb05a6e01984186b62f3237230b33cc4721d984382d003a4472496c163a0c23aa7527a7a98b45260794c109c3ef645fd352b778f06c6de40ae1aac577698edc053e951931e88b75619a2e3a795d9d7a015fc39978ba6832da41dfc1aa36d53351321107d33d00d934ce079f53c1ad114b622ef09fdb70888a861e8b9334610a9c2a5614325b9265219dadfb7eec92b472c87c0f0181e73c580b9ca8564bc1e3b9b70528a30d0c54bbf48b3001c46b536c51e15c4d0844fe81bc035351d919212c699a455b7f0900121a77360f4aaf09443e9031ba9286c0ef18a72a0c6afb2b380452379fc14dde6a20cae7c703b8c367bbbf4ea43df773bd6a3a4c051caeeb66a236244f7bf5a837731655a73bf6e7a3413459cbac0dde329e59fc9521fc2009e480d82711496a5871f33d0378223243137486504a209d9012574b10561fc04deed84999baa3a936a9b1234ac4c4afe451042f828cf40c49e632c6153684448154a023684af08ce13b204ac025991c5e44b63201073f22a50c935b9bc1c488aa8a704bc178ab0a752595cfe050b341a295f9b851b67a3c09010ecf297791c746ba9247df2a1be5a82cc8f904e1553b31d53710b0b0b7372b8e9c0b7c15636097316d46587e07753ba05e03f7cb3c6c78870a7ab21ca99db30217245a29fccc3ed80364ec661ea93194d472813a3cb0203b223b909c5774f2dca50e8a9753e36c33d92c278a52122a72fe389f0f962ce5d3a1d9f5c07000919e4761a07282e016854579b1c2e7c608630c6b2a6a1bd96c71392b9ef15e04f7bcee414cf5d9a6ff701c4d2586506248f4bb6bd4ea4a45fa79fd92aecdecbf20d7ad8534673832a0d6ca13c561a446aaa23539624487767e4a195dce0e2bc6a3fd1a73e918f297aa031fcd8c14925529ed33b83ae8e7ab9b3999082be47443720bf6b573a95207d1eee1b3be613a1985b3d6f48dc648787b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 +ciphertext: 74696b4c1a221c93a233381becc649df53c59889beaaf8cc06879dfeabfaa190fc9d7a9b6995bf4d9571d3277188c4db8552bf90a4b51787bec3636efcf8628e199204f230241198f517345d76a105ac070cf81591bd22bc1e566205b7d01c16c2da03f1ad0682d1f32ddbb6a2ae8f35351cf5d5bacdc727d603c3ec4c5f51a9906a3f12bf064d27a5b573a1b91f652c4bac4155045d69669158e226676c7049a439fa3213ef20cc61c8f0b89c194f131e172ccc4c1f6c37567bd910eba09c21abbd3a8ab275ab15136f6fc92593766b930983539eabc66e7f63f572fac05348c7cd6ceabbd1c4865e346298b6df6959caee42fc1b60df6373ff46fc935e881b478a0983c1467c1a7fd343693996668ce1d8dd147193d85fa44277c5a21c57d1d420e1e5caefe51049285ec812dd0d4de6117ea2fbc9e9d74221c4e8340895ecaf684081fb845ed994279e1ab22ebc0ddaa9eb5066052aa9cd371894035d56d125f40bf836ff159a14dbfc99d397b703824b1a7b74ac15514905fdadb8034c09f018d3d87c4d2c2d520a2bb2a240050fdfa67a157bf1b17931106c859256b5f06da1ac1666337850dd9d4fb1ff879fab3a87b645c0e1d22b11599584e67e44eebe9d3d6864538d86df728300268f0c2fabd12b474c7fa2bde4dd04353cf54874663a029e2ca6017a6a59d6611a862e3826a1f1f18b20be5beada3bb1edabf9ef0c0ce83ef22674feb2147c769b7534c4f50f80f48cde1db0ab0934815e39f963430ef4f6b4204016363e105e258e733371c8d6a8c517150cc75cdbc6dc28c98359ff083306a0b5215ba1bc17e660dcde16add252177d931b6d8bacc181dcc5dd285825e083abef17438904b46d21b2c3914543f34e3d958e41e8089f89f5aa1af040fb1258ddc663925b55fb486dab814a45210f0ebdaaf4bbf2115b0784862c640677fcfdfba3d05c47e2c5ded2f6c03b42bcc9f87fae722e895bd4f91ed91207f8bdbd4f849c73e3b53e8a5ac14b500ad19fa5e9675592595250c8e54795e829443d9c3b924efa8d64a3751e34212205ea88061071b7b4fb8309e0dbc0bddd329a55e30d4eeb3369e9bdc2d949565f6c4ac214530f926b7dbc5b6bb9a645635b3ad1056d36606c0bc34089f50646f0bb948e3ad50cec750de11a3b4436c572c10608502d8ee43dacd12b20183006070aca57dfff0c39edb760b29a8d1e2790825961f8d3d2b27e4be8d06ba613f80422e40d77de5b44793262fb2e5c5d613f4d66f8d6e29f5aa312dbb80eca37d9faf6b98ba63b0dac2622ca7eb1a53ecf7ad39a78d34dd787ebd686c155041adc742d8c13480b36dd8c50856f2fac0c8fe532260b6e5e8f79d4836033bec19a96b5c272ec3505b800b555a763bc7d673a876a9ecd4f1e64fdbb6bc4710066b5c1f943a53f3e934b1f9d30e8edfc2aac8c775bacf9a447626838aefa0200df587b4a4bb930341342d9bf4af28e196abfcc98fe8c98ff3ef9a318304680ca5221fb7f8f408e6f5e56ba69a9286afbabf3d733ef1b958cca8bf57c2b7e23c1209ca90d6e3e8f10ddb54ff29243fc340f28b97013f15cc21a92299e4cc45bc007ba13c69f3ba4af497aa17b289b3379f553b3ff92318d7f5f3fd55691a094761ff55015be61a7ac24128f29f552ac8faa5ed8ba3a8654c035fb08180f1a72ede79cb6c549475cb1da0de23e42fb887a30ff16732131bad9014c58364c5e91bc12988ca31a8d9ea5dda91411f7cd5e8f4ca503ec1df40ef53bf0893265241aef66fa85fc15c07726439e741ace97300bf89fc57ec746e34c40d9e6561f69ec2871ab520723fbfc72213d7dab6df13cb96311b502423dd0109659a93b5bf692eac025369a9f2ed7fa6a30a824d29aff97a5299c91280c4f9256677d872ec35df835a20d621b6e407df36ae67d769a30899d1f3ee148b7a8b2b05ebb3fbff4046a08b9691b5036d8176d72dcb6227416f68ce7de42d9afe1a7b20cfcfaa6803e043a0b11d614473b46c09751538cb9acff02767b957efbb3834e282f439565d3d144d5823653701c19a1ea7bc0a204d72ca7641377f241df87cc98e0e355877fa1ae26f91b23dd2113412bb7c03ec8f27da2612e26ea61a911a276cade74d287f57c292b4991808a66c8c25afc3f1ac370333fa9c9261db06e9c6dae2446026ac9b95641c60ba622f5547653ab4b654daf578458b0 +result: fail +shared_secret: + +# Private key not reduced +private_key: 09e4c3ac7c3e706ac8eb1a3c09ecc4c26a683a4bd141298052f8e871e8f0ba3ea79e4a329265d098c93be9bcdd9539641825928d8398c1d5d8265d489e1aa671b936bfac883e23ce84bf4123af8b20b5908b4c5d65e4c8322bcae55755892c8896d9ad6c4b78f1e6e6aa37c61f4be17ca77643fc65d74746b22edc6a0c6abed7e31f79c62a5b90d6daf1139682165ac044dd63b0d4644edcbc9746c498a55d2cdce121996cd82769c9f388e2c37e7ea3b5e4e76da12c4121bbeaa40a5b8a045e5ef767ba2bfda22847434d49e73ac213f7333a9664b836abb08650e147dd4e3693898a802896300b0ae5ed3b62c8156f76f6c5573946754c95e248e36f3370990dc589c38e76d76d946581c554aa5e6d8d614bf756963a3c05e3d823afd6d4afd428601a1c5c7de8c58d47f7b8bbcd7b7d4b2b33b161536affc498e5d6ae2d1c9a3fa8f3dbc3f664d36242185c6ead3c11fb5e229d5dd374641b569ba4e3d96ac5833fbad641e4dded086973a49413d8596ea97c76f4838c37824db6c8b54ed3126decfde747b423dc9179f7fdef6777f7978f3ada3c89c93439ca7f1de21c6bf074f775acfc423abd458038c90e7eb45f83899c8bf0be9eb1c697a12eb958f26e8a2b8c5bf1a8b1fc765c7346b53f2c8dd41ecbb8985d93f9e84dd73ecb6d36b1a73abb38505754d0136dc2201f3fba5dcc550563c2f5f40a09f3c5caa5dfeaeafa84b23ae8420a6dace82f4954ecd80025e3ed63a4896c96f468f4504341f8b8b84dbf979947a923e3883eeb3ce3fd6ff38a72485d4c8e1c6ad1cde4847dd1e137d5534847a676b2c824c04e7e467a58cecfa97672069df0376db9cf3d150dce63fea0c4af58b763a58077a1fb0e510b8d71dd939ac1183e3cff2f880b5102878b1317a67a874d8f3eeaec3a3addafe272e756ec16b4695cfe398798f2ca8d7a668ac527e1329b304848f8f42bfefdb9823a957d601381d2e86ab36df6810ed14d67887a99d337cfe8b2a4deb70f62f7ce593c6ddf46de8d2f18eb5a956ef6be81735d452d97e28f0de36b98302ebc3dac33780e36db6103ddb5d8ebc6a54fcb46fa6408d5506c79922893e889bd6d2fc16bade8b9b5f2749950bd5ac613aef6e0bf409be5e2f61d6e3e757f749a5efef79a5959d96b47686396e59a47ae22456257093f27455c402574fff7f5b59a7afe89b036e34e629d928d7db1605f5daeb69c72ad8f207eedc84748cf2e9fa38b89b07ae5f576885ea73a4f773932fae4823c40503dd4c056bbf6463269aea6192443dd06b92c8cb0d11bc9f10f9d6b4c9b453d4ced0f8c6e46ba3248b7f3aefa1854a1aa1ff9412d35f25e9535e53777a494e5da9ce12e95d7646ca2993b38d4d9f6cb3c9baa7f461bac9a877cda53ee1c5f44ade7351274bc69353437f4cc975ee11ab74e07a734b2fdbe390b3421a598ac9e770587af7f16cd043990d0d73af2e861b10fe7b53865d42c8e8e1baa52735f694f48f14b802056ed975cff79bbab13dd717dfd8d72c9a9f9fec60b5cd1362cb4c176f0b6ac560476e72888ee205ecbfb7cabc34f43236cedcc19394bdbe15ccfa2e6443527f7c446a3ac04c58dea3db5f19a9bdbb34c61c3c79a2ba4770e73cb55c51729d8aea5c1e696dca1898f51174c7f05de92e87d989a36db4d9db70fac0eb8bf13655ea8e9b46956b9b80a4e989e8623469d092fe4971b4b32c34c5bd9bc5d299eeff9762aadc8e935816e1532853952af0d7a6faff4849e69bff49494ce3a594faaa5c3fd9257c30bf36d5397dbef195dee68e9e185a5db768e950986cb8d92ca47e863b442db96b62877bbdb7e79d6ddd9aa6f6c6c8537a114ccb67ec714644bdc9449d17dbd9b45d78fe7ee862aa59d57630b0b3f0b17361a05aba7c9d6f3d66c2a1c52db0e35742c40502ae5f5bf69c66683038b4bcc9aa5fae69edbd765e8cc34c5c3ef0f66d08a04c137f9507096c1a173466a8b496e1c7165cb9632edb039ea8bfd55374d674a9d2ba84edf9cd30d600ff374ff1f8a8ee4ab3c8f4126ec3450367784d936f09f7e4339cd050cd23d57341ac63530c8808ff734531c5e812e61bbad697bb9b8f2545e37bfe55958af41d4bc96ef7a8ed5bc5a24386fb73ce97b628da7feec87d3575c598b7a95f36c89586474ce4e3396886aea374a0c4886e4185a5ad8ca7f1a7df73c6af1282397a6a9b94c95c8284a0d65c3e614cc73159fd71bbd699006d1b97da241c470aa28113a24eef9856ecbc3619bbdbc25bf1691a241414cc3a816433c6d9466037cca4dcce8851aa9a182fa9e7ecc47e42713e9f81189cb5b68b52389095544427321ac5bb12000371a1e1cd96b585223eaa02218543c6f32a777d79c3de28d13dba32818ce41d13e2eabbc3c1223eae799057c43a2977ecff4a5966a7e52d0554a8907cc39495fa80339160fce96742fe5679cd4c4648910ae0715a9899530723be9b551e404b88a1c272e72b1b3e56144a4974df799eeb20170862305e647951645de729da99bb4fe579309d4abeac03ea4d029990b3fa8464f82e4472125bfb98837e275508d161dde593b490461e6508276b344bb18b93cc3c965e084df68a68af14e6bf37b4dca585d0621a4f32263abab1684ce0b1a5fef971e8fe18928d38477572e55596e35ab6270880c2e6abd0ee9080e75850155273aa38c0bf588e02006f5837c01063360773ff79376a72380d9e123b199b561007f1873a4ddb715abc93d95c7a8549407ec94cd0b928b30e3cdb15804cad99ab2202005675e68ec6f71f70082139b42e5bf02abcd4a4988ee0a16415a095ec8b94d2431070a710d72a596e30ed4588fde91670f3ab70f35a5f0870e86927d68f641faa10f962941e0026908ea7d27084261d190cb62b4354a1c8f06ab864031341637929b1274a1c97bd62208e681f3a96333871c41916b03e668d7559fc0a67deceb0d2f818f45d82a9e4a679d76436bcbc45f1c971e966a6cfbb4e1948f2e4b0620a28d633b78951812fa15c4696a7bb17a9ddec0329e927aa1294e5b7974bbc7008a977e0e13500337cd62b281bf73920f02b19c357eb57b3c575265f1e73a16b455af856826f29be11049a7005d9aa401aff512e8f8210f296fe64ba0ee77b1734bae34000b85c609d8bcb39260690ca9b82e105746acc35fc49ba6d1461a748206361ec179990c1b2ec71387b51c1c7ed344b816008c384eba96432ed66fe4e7225c0047e2b2979bc359a891b258a2cd40ba3694086489088b42452682518ec4c1bf8b56b91519c8d02395e726ad48696d5a2809d7f3021539bbdb38bb11e823cbea2e7273742c87776457a1804b89d524acfcb39e19fa454753908813815349a872e131a5fc91c51579b3a50e9142955ac575a8a528ffb35a77a6347f119ae0fab07701cd4166a0144963ad69268bacbfdca7bb18305efd006e44f812d063b0b7e8b1fd75b5b1662a49e26324f89415a51fbea41b75485c53b661c97ab2b9e193d6f1067f518e8522a73447aa1be8af9cd722eb8653e1837279c5194eb21bc9127f1eba895f9924a254c6b38caa0907018197a771d531a506713d3434c23a3a2b996b7e11c83b97058af811e974819da2147a473686869f4d04bfcb9786a0f9723dc67e70e4ac0f565b85f4bb30ebce82b21950838a2102805550c9fc1607ab93a7e42a0c9e79611fa7829beb0254050ee730792e73975a7b38bb718ac65064ed7090471658657123e7823631e802142aa563771bc6975ce2722f0e012f555c3f021a7fedf78f51020935d01a92362dff154daafbc4ab6c8d32d2a11525a474757c690b21274b443b58458b83766df851d95214dd04bc0af73679249cde1055e1977559d26b3bb60bb306503879b7fbf0b2eb2508aef52049f43adf6275d4db027b6477d6479cfbba91ae0abf1dc8126fc962ce9921da1b0005a09c30b6894ef6b3ff79a0c088bd2d6074988ca824aa18b887073a10c7f21982f802204c220756c0bdf59ba855a63a026125bd5c677db08368b475b52c3559c3031ea56040b9590f859f6c2560f9170f5fa759068678b9e22888671cb0a693e825bafbda853c0b56b79a63aa198710b6246a4aa58b226086416d3ed82c412b282cf38c71348b40eab105ba23b2f3720ebaa6f21c9f7b23c4e324c4c3a821de7957c21183fb48c4c127732ab169f822c3003a803aaba857c6b92bb22d8c10251ee1a6838b18c650cd5b8304f886240e16c8cf4a74f14938a21a8f3e87bca0351daca3a8d5c014037ca5665a2589eb7ec6f29d18d891c0cac822792b3408617166b55cb1182341a309f86f99f86b4e7c54e6c2bcd15b15b091274f185cbf5aa7a7a8ce437adc43de798498003691147635e787ee4e145d000a02fc34e2891d2047f787ad49b9adede43fc52fba6803172487e191f48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 +ciphertext: 41f7f6acd3a13f0f0e91c0565efad496157e3214fe0389a827ef01e586b395079a7e4149d29973233be333f2ec98af0833a079fc604df34cc4b979237327d7bfbfc5601a3145dee46b7c2bff3b415d6c133430a849f9d2899262c0b5878a7b81b7023bdce506753692f82f7ebbe11b9ab07f090ab5b5c25723bd3b41f7984f95aaf9492f12f1901c5eff906515aa974b0bc342e1474aa6a0e838b79ffbc0cbd9af44684a29aac1fb249194c3b81f37699d959602a4870bd1cf6cf8a56c05a10c0f1d3e3f61735876e9d20660ff520a42632c19ab533f38409fd85e8b3005577fc86e06c36d6a059742a3a915a67d04094bd32606201b48aeb2d2e986a15688a598dd618f3f8d530a855167f911a5121bfa08da8afc95ae3c80ce7f9b9250b0cd7dfc44ef05cec340edfa9b34ec510f1b48aaa1f5442540b506be68a5e1afe2d8333238f7e7bc5c1ec0cb469d820c1d4d1e385064bef6424df8e4c1184fb62f92aeeab255b5514c18de635cfafbc5c2af129733fad7fff2d30c6734c04d49951148faa8864c4e4e854c841ad05e3f1482e23eebc714aa95acba233fbc6f562478548160be934935970de913e3d448915f696fd2cd36eef9f13e529bd04e993d632e2d65e3b589891d0d1a4885724a3802e8513ec68360f03fb1b273bc7715c3d675226793313768d4b1937cd5703eff763a77b66bddd49b77482305b3574f0c8adee13e35d1177b9ce29ae279ac4bbe11f27f59261351f26dafb041788d9e57d9aef53ef156635e5bb12522ea4454a52217d8e20961b39765f3a689b9827245d0653dd4a23e628ad08d19812639b62f4c278b5733a618debca4ea65ce7e4ebdd2775ee90db0f5ab96f57be14691758f5cb8ca89b656d1a3a591e9ecad9b9cea665c2c58cf111935a2e50d61ed981340e77f89a12039fa8b9fa6f226a01238f5ad3bb87b7c83506265785a3799fa58baf5ca23780956d4727eb907e327ee3d575899fdfccd80e909b64dd70a63848a5bf36c79d539145c137e860e714617bc32e9297d16c199bed73b06a431c4a974c621e9ccf438e56fdd4ccf89f1b6073ada4b3f586cbf574d91a76c5581cce76ebb3a54f5a60c464b25aa0b43f5521d104a0cab9eee9ba3c4582115dfe9fddc113b3064e57cb95a59e32e7a2fb22fd19f86771fd3c5a5ff430d223442a797f018c6903461242b7cac41ffe9fd4932f25901fda592e52ad42b03c258092b7b9a28d531ca802defecf7f934a04e6bc0a736b136e1df01cc6db426c80871b9dc2e8bb2d76eb258182a3160700d3ca0c72a1251337200bca137147a6e901d79c49fe663a7a43a0d056d4f9634d563a1f3650ecaaaa20e520eeacc863f204420eabc2573eb85d76a32b894697bcc246aa1d9bc7cf5293f405d22eb21411e6b9b3bc3efddc5213a0ef74e32845626092ac8d2dab463bbbc31c8697c265a5b005363a3631aaf6a12459c451c1196c783c0bc8b76454c1034c79a79cd6bd54ded518de741c3df1846532b3ff540c6dced5dbaf4b18583b7b214d9123a94571e10944736dc8bdb7bd747c509d4d33dd3066bf78b07f440ce1626046e16ee05cbd09750340b1ce080bd0bbf13fdab443117a21f5928c27ea58fd7760a812aeebf3ed3fa601ea0fd92f217edfb3423966a13deb3755ca26002142f7d624034206e022a0b230e5e0a84e38c60332b79497fe7a73982581b14e2676cfc5746b6771f0df2139c49a0e06fa7ad0182ce6f197c90b59784eb18a83baf25c1628d1b3e92e4a52a26c97956341416433d94be539add37e4de168f87e9eeed8038df0d649a1c50f6185fd0f144df1c1a7d08a59f6a2fe6e3767a0556f322a1b5f0235e1cbf61a4f567c95a84f564d17ffbf5adeb01a5a2d81f5501764aaff6009b00103dc287eb5ad4ee6d04b8cdfd178e38f9f31d175fe86e22887fdb97d47538f0aa4118f84bd56362d08f9fdeca3110df7b766dd5e3b92f1afb29e583358d1997713aeb3bf88af40585462194cc4ce6a60c570e1401eb93ef70d0c5b4ee09e4bfe4b39ae03d6f179dd5e5e861d4f26e3bf7a03f03fa83c1e0d1ba095cd2168a32e74cb834cc6707905d57c3771fa85ee2c44b54008d660068280f94bde10839ff502f0530fb245f9472fe9ae5f9e252e0d861724fedc5df4dc7b6a0c62113339bdb1405bb039adb2e2d5246383e17197ef89025d9028c05a18526 +result: fail +shared_secret: + +# Private key not reduced +private_key: 0b57a478859c311d4a9dac5c9c5be5ad6afc3dd362b50c7ecf4b4f596eb60c9774994752af9d5563ade9400fb53fc3cefdc6864b9845186aeb99745ce72fdf6df5898e8682d2484fd819e06caad1293f51569a67fd8692ff3df99539db6c54cde2166a8926a96864c2f2efd9da93d833dd52762dea889ea5fa7b42feed6d7119d02d68d701ec45777a5cef2a961316f44f64dcfb5ef0aa146269d8b9178c34b009d96895cf4376c10176621138ad1216bb1e1ae09c0cc4db4e67a5fbc7497a6663a5cc2853b3489dee550eb2846b7ca0233ccc78b2b7acdda57ae85469618065fa05a3cbd024668e593a65143de0a969acba37d3da4e834375f564379988e21aab89f3ffe0934c5a5529ca122cd15474afc1c8d5114ff6899967c616c48256ffb588bd8f9d606e54d046a3593f4bc1fda596067532f44d469bac9e762f6b328c49151eb941ef7d196c872d3630e5a396bb47b38a256f6b376509eeb6f09fc15915469d2b781a9cd9bb5382be765af57d35a58bdbc96ef0d02df00f98844d5edd3c077e0bf7703bdd90fe58a7763c77881761fe75ef1b8ca7003a99d7f4b9466db0b61ef4202dfe93476dcdd937331b6a4163e7df973c2a33c98d835c19b78f548b314bc5933484e32f89876dafd4e33fea6108ee150d83df2aba9a674b098e56c99a71f14674b2daa435a85c4dafcdf5af588858cdeeffd51628ee3537b1bc0d60b448a306c691e93aae4534d800b390e87e63f25b8ca78a7869cdb738a671f3a78171a931ff164b5b0ad68d58eaae6f45757bc47f4fd38ac95508878070bb6061069e2a1ae369c45daeaaa04b9766b21c354ff3e635189c4516694fbafc72fcc8d15c9162ebc7bbb98b07f5fc296a4087ea7eb8adac1233ab108c360377dd3b15ac539e57366e39c4ece9c5ab85c31c9b3ef491196e41a09fea8d7afa1929f5bb76aba02d3a2e34e874bf64eea8d268fe50b9b9b836e88fbfbb79c50cff738ba031d8b51439834d96c75e7de7f4e4d4a004ee088e986e7c72a99af702143265be53b94bd5b08b414b3feeafa3a733b8ccaac737cdc6497edd7b1725f5730978d02bd222a54450334778af658ca37bbb6dafe909896f57f17f45652c2be670c54098b962e49493239b62b17365b4aee1221db3f3f3b6df83d08cbf38fc0f9e47cd6e489bf8e0d599efeef2d345dc75ce68e79592de7c31f443b84815ec8b8bc159e3d1c323ac44ff4c9e064570de9b73aec238ef5f8123d47befdb687cf54195db42d9d56c68c9a95c341306ed8b7e3dee849732a3db72fdcd65a3dcdab8e6fd2db8db2aa1313df418f94116efb654aad1db9e835256d7cfa78f798fe9a4c88ec0c391398f42a0be6962bfa8f7bf98b25bf503254d660d74646fd30119c5c1ae53b7ecf04227a6424e7669139abc8d83f065fcd3af4e3cac82899773bb77becf49aa6faa95cc33dc9ecdedcb7d94d54f69c4e9823dde7f5344bffd2c999dccd11d466eaf987eb4074a0045997cde8da12e3d5805afc727845903e251c6c81a8b54a3a656252fa4133f66d66bb47a1ba3089a583f5e7f92d3386407a4d9849fd6197581b43c3cfdaf002fb14c9f5954459e0348ab52c5e20e24d069faef47c97d3cc9a865f56a01beb6829dba332aea73dd6b22847af0248a224f4e8c08426e3c5f40ca61a27d5fc36c3a228332c26f6ff9478c349fd59126c9af2de278fa968ff7c3acc43b326b9d0f7baf4f979baf64fbb7dd476aad5139e358161fe0d8ccf6accfd9a4ee7e5b6c85a5d5861906c943c3a25bd4ebaa39f157ba5e1998addf38b6d01cc4be39c91e8348b1b38fd93f4cf423e25badc6c0df749ff43c8edc33e4a68b0ee9c6d5ca31b6e3c2f6af61dcd8d4d90a3cdf09a1798ea69705fb9efbfd81f48ef29e408fb9e5f6ac9602fe9bd454fea75cfd9a5d5a25b36f841dd236a73de7d776b6e57f7baa41258af61f0d8fa4f574f809ddd9865671bf80d2cad2ba647d2eb6c7e8beb679f85c03597764a59e51caa147c63a4d9ab99815cb716593fbc898bfa9ce15f68d938ca77ba537f02fe5bf26d5543d6279dc539dff395d0d437496de812b70350ae5a2aa711eeac5e666ac51096c531da3b744681944a5877b917f6cbb7c68e23c6372d88be2566ed5cd773c86249ff866a24a4fa758bae8ba96bfc11884b9304cc16b669550cc08a2828dc34e704534fcc057a45b25ca8ab600372cf6f60bfd530b1e67309d5004361acacd392d104c9d3bf66075d5949ad75815bc9517f13208068ad5250595d76caebc3b188a268312353e232cbbec0830c45b44e315b4e037f66722f2c8c58d37228a7b3c81a8914de52757947eddb3a99ad35bcf1bbe82d9249d228a15009bc2521162d28f91b70ce3c05c4f027cf638053776511fd4c24e660023720370042c6bdcbee2cc853e1345268235e1e31d41106b1c359c8c4844274a42059724b1ba455e01ac4b800d79d4050c4260b862ca9e30a3cb876852997298609c19479b7ea35691ec5de9a16b09382cad755cd1a008c06b3a5d347b75a06825d4a8077cc6a61543a6e4c362e979a6824dcb494b7f510c1a3557664b8ea3d681702932ba284deaec19e83bb4eb0b4e916670c185b8effbcba3252959714462809d54049561baa71f13ae08d25fc587a01c853b32681cf1fc906fe00c2cc58971f8863b803d9752310a18303298ac6c188b46ac03e3a24486b6bab54306fb1942b908635028238622198882989f712ed3a30ef5970528bb477ee6a670d031e5dac2557655acb2c10923441a77959923bd8fe07745988efdf48bf794659bd34cd8941733f97d85178021e8b20b185e0cc47973173c15a681f4a0ab52c5c4c6f3a2364465d3c727928853a5a55998743e58695feeeb9f06c2cfaa70679c00cc6ea329c16bb4943418d90017beeb03852400b7e87d6eb8be948303e31306a4116fea8ba59d30ab6f0a5060c2aa89329306065290466508c17eaf7687c551100a18cdde6600b9e467e3fa7b10dcba2a722347349c2ed9443c401b6749225f38195c04838ce8b96ab66cc2d7235c8b0316eb7e1ab1ca956c5780fa491a7720b073beeb48b98dc41a1b276020256ae6d85aa3cb2d60e6375b44aeb6e34503fb0a73426cf999af33e89f1f2934c3438f47814d76413b87a264ffc67263e3cadbda0366f13b82d9a789d55f05a30868c6a9b7bc7ca7e69184051d9f2abff4ebcf0e26290e69c0bad83ce3ba19d71133a0d8b347e1adeebb8a8b915247689311e5378d256ffa867fba904217339976b4af06bc3e5a9093e8e45cd615cbacf65bf1b0899da61790883ebec896a095959af55d0d7b39a9611e439a26caf8c71cb05a57ca071c719a281625c2e4615cd4b74826323b163cf161bf6a0424eeb2381df549b050bfb9628461210461a9a35863bc0103c8290244c6ea5ba381c421421c91c010645ca365549c7aa09520257634442b83e5806d2a274df4b8888bca68accbb5350743443d8dcb471e25ae4b748338a922b7e11f761b059bd5848eaa441c812951729d6e7013fa98340ae9a142b84b6a98c6577369053652b3b505d4d8607737b49fe06c5ce8b40ec680838a182e34296c317df67826f4ea16f4547b4fb9cd0778b2e5c66e1e5382db0c0c432770d82a1e20f59ce1eb1cba29a1b9d8a5e2dcba6b04022bb72923591e79dc4f0616b2d4637be08558a212166a97588e128c08579859d1012088a7ef26355fb4b83849aa3ab06b886aa45b9a1824a74b05f090baa7cf2969368e6a82750160ceb0107811543ad0bd25031a285c4186719d9a30270fe1c73ac8bb64d912dff5bc324441df18ae94d03c82b63cdc9085d073063da296627a5cc754973cf296f11aae6bc102e940740c853fdf2576c24b3816e60483448d9a28c3e1b295a4e6bb36283f4706290882b52f7babe54b95772a174a4a0a3767c2f6aa992f5904350071ece661d94c868df7396c1a1588f80f78f82babe28531d97617335cb098cc530c5234dbb4db98269d60b271376a52621fa40a464bfc620cbc08b2ab0198e2bcf6912752b39caff4938b842b1519455bca30c8b15f6e2942b1c6798b584d89382abb26af5be574fe12838737091611adf21507e6803a88570d19e34331f07766d39d57f80ceaababb0ac5a29991a1189a6c9364b93a53e73c13d91c656de3038302279de8a0d45d46715d78a8c9aaa5414540d9cc6553cc910b24cc941769ca5b8c576ae8e559969720d8048291c9374913ba79ee9cc3cc217c5f1a590a7ad9bf27b365881366c2a529a85ef8b34d64792bf786964831da9a38dbd81a573b74a8247b040f60404a038846bc2a3117bbd025b0f7a7de41806de885d79e49a5eee5db12a57b1a7da55ccb00b5b706781da8dd5f11267492109ea905a77270a67315eea1f5c223aa9378bfb8116e6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b +ciphertext: 32381a661b39fcf9ed796acf47b145bbfb95995255370e072dc8690b72a0430b316712f2fbfa1c70d95a3ff4a81a054280b50a7366972b7fb7e3342006a84979323b1ed528969e2d4a1288542ddec0df9ff963abbfb483b204324a26e1c21a9e1c6089962612915de3824f034653eb664c837c7db70b35462fdda46e1fcdbc57d4b5a611e7391c669183ca58ca8a7dc015a3f7c4647d5fcfecf87df2534b0517da8d8a1e3585e918ae72822b37c25633b773c2837eb28d8c527ee211987427bfdd7e93909bbd43783433b587c6ec5ed0b9e75f673884fe22a63a16e8e5c1945905afa2bd194a2a16062523cc0a5c873b02583ec65e6999a20ccf4ba76031773ce2efd50d95e841860a727055de7247c24eb610aad0c65d4c40b90c10452b663538ab81e96879d5757af125c719ec3e6489556d20be9bb28e6c894ead6fa96b9bd8b1f15524dfb1d6c959724b3b46bcea58805a0045b9722b1930a3bf5916b4d8a8712f9af1c40589def2ad4d8aa99a415a897eec81c5da5b0c933ec04f1f9d02c0907da1b41e6bf043a8f85fe5f4ba76c29ce2c8c6503e975efce053aeed389035bbad720d05bd081f72b395890109250dccbb4ce195c9ea46d55c2f44a7baa3e89fd04e909a81d19a964539b58c1b7e034b74babc73f35a34ae87a0d6b44498d4168c65a29841adbcce73e3820674fff1a8f45b0757d206b1595371f0b394e1e70783269fa75623aad43461c8ce8fbdc0592d0f1df8188c66df2c217037391666c2b95e59254137f26682f9c19a2e665dfdea3d79e8e8ec2c0cf9de2559cab184f3acdf0135cc8867615c9e2a7ef4a8861d33f62e89aba5b831add345d0348811324c0c934600993cc6a3e628d28c18c8d416b8b9960d621e5c4062668b60204467a5ed85c857dcdd057350c9af0d6046108943a10f8cbe9da835aa0bb0a803a9ef69e880b0cfb61540d161ee4aafd3a60fe8ef6404b1e06041eb9b6a91bf32f1b6be7857558bf240cb16532cfc8cf5d1e41f18531404e9209f99ad2d2134b07117f49d9d2fa6e7463697593fa55caa39b3dee39c2f377fda9543d90f591b5716cf2f8105f8179cd3995674af5ffb1b91e4d65aae0fdbe8b473349905d4f31bd864e65728ce2e0251389bcf8bb41ddc476f0f4ff5dccf8c35dc66a05f3f85d470c01fd2fa37ad39d187159981276ac684ea7d767a2f07b68063e7cf984cb2c9de7ce3aa98cf2ea1cb1b6b3ea1f42db3ff887653410c5b6109f1f29a272e590bd99145754d238c5fabb1c588c0af8b6e95b698a0349a7a218292f0360b5a32457fe8fc6eda0fa51781694947f97762b1b08704fcb6beefeae1f1af76a5acb12323ca14b92629e323447e4d3852e1177ca219c29e3d68216f19b470c57c9e57388dea6eac11a9c512a3cfe9ebec129e6dc298fae802a13b22b21372097cf60fc0db70be35324152afaea7e4f42bcc30adbf67005104fceda73238eb042b5e42f5f99cb802044edbb0aeeb564cabccb0f356d7e090b175a4175d44f3c06f5796d0cb5054e2a6a73b71a5a0fa4528e9b49acac5cef1a90070d07b0a45c95e4fc046321f903defe1e08b102b5821f53c09ac4d9f1de76b93e6fae303a2b695706c025993e396279b15e29df2aad1e046157bfda3d61e11b7136c82dcbbf6c115b6d8578eeb0f3a326287c64ba47a01ab8f680300324edac1cc84a147121c30700e345509d6d18ab26febd02b9b8760167aefcb05f92f128919f6b2c3e39f39d2404139df30e4176f3d297ed2cf24ec2a310900ca356a6099cab367a9677f110e4e2fd7d8d7734eb4d6d0c9ba07b96248f05793d3ceff900dd3f03ae5e16a95b420dce402be568faa24e6e3470194d7adbdb9762a832e74c788cb97e9c6161837074267ee67c83660af6bb845947f248a88c9e1ed8d3f6bb63799de261f77ca70ac129b60f6dc1cf22360d5e132db7e1b7198d8de3791cd4044573b65f82f013aaa642bf8a93e55b5d9334bfebd549665e20f4e496b25281816ac761f4f4f2064b8c0fd31f281bfe5fbc67d60a079fc7d024657e58475916031f962792cc7fc457cdac76f73d0698af97e218e4aa175411e0d1ffd0188e0e89b45c0948efccc3d9631d0a15db4d55bce5ade1506a52e7656c7dd3da4122a4392061942d694d46a20189559bb03a9436f2cf3e47106428043563ab0d0a2f967173d63084558e20ee065 +result: fail +shared_secret: + +# Private key not reduced +private_key: 455c59bac459203a7beb868c8477cf5ce391d994f619abc685ea791c1c905cda7d92a4cb066dc022bca55c78ca6079d4ce666b79366eb3ad6fcd75f5f6075f80a5c23e86f1975f92549775e935de8f7b6f903adf5ac93ca9fab1c843b0f71652cce35f8a5dcb88a8eb5eacf0b6c639d2486dbd08f4641836e453b4f3b3732965b8b9f64ef8cd897225cd495c8d394d6b3b48da71cdb499788cb22b5c6859c2569dbdffd578396372c47cab58effa033e3b23966e2c2b6f84f49fe69b7bff77474b0654bbd7eab6346002bfc11f446819cd41656d50d06e36e037cd4cb8a69206a7bcffc6e4dda92b68a1e7caba00a6a7065eabdcaccb618b35a3e96026b6499735bbc8b9551938680978804b1735f2dab7bcdbcc3c4cc15a83d53dccea7ae967ec07386323fda8f742c343a0b48851edb6ef97e6d18f7bbdbc674cf24b6290d6a7a9577745ebca38859d5a7c7d1e54cc18983d9a9530911ae0ca8aae777336cc147c93a6f2bb433ae125484d35e8ca45c001efd04bb7faccb4f88d49e103a9a9f3db703584451a3fa02dc46eaf3e3f563d5e5a9dcfb7766060df68b643d6fada7a4337c51b3cfb44665b94efa2d77d9c0b08a172db7ea65edb2c35fa87dfa08d1aa9126986e78a910b95fa12278b1df95baec4e966decaf6798ef097a5f7d9bd13c83b7c87aa29f4d69a376668f730e1d85f693742cad56a122494f926944db6c82714d7eeb7b0e4ffda5626e948baa86f2e8dad47d3d19854e5e475223476d2da9b146953142fa1c769f577e7d35f144ab29a76f76e803c1f5046e33eb33dcfb194ce38bff8cf35ee1d7e90dacf31bd5bcf66dd3595b4601e05eaba1f32f745c8182c921d937ba8f6a75ae5f4ae1a84aec6ea1bd4647e7a3f443e5445f7bd6dc4f7c03d9fa6f7e5cc1354bb3a66052a7665e53c8218b4afa57b91e9576dbb562efca279bd4707d8760ab7379936dea89be0071cfed6fa545ba8a43c3d6d326abf705448880fa5883ce9848ac8c2397e42a7f260dcecbf6b66cba994a038f785cd5acedf5cf4e99f70aed86e777d3b0449aea69d8567dad3ec609243d086a5d2f245845c43bff69b83e1ec790bffb610f7cf09c3456c9ed23dcaa497277fd44733fc836572b7674438daae6efa9468fc0a6caef93cd2b81c646583ce8233e83bd4303a84ef6c85fb8604be7b8b7a0903ae91836d39bbb1b9fb864a86636977b1ca84fa99d949818b535db3ae8aa4618bd7d2cc5ae7675eead6fb993008a0b8ab46a0bbba574dd6b0fc82c6be667fba4775fe76cbd667068c7a5dcdd5603ff9025b3c99b890c1cb6758ce4e748358d91cd40f44a6dbfdd25fb8f0c6dd37d48c31e11892ec496833e4ee1d0ff7c19341fbab7fccca4b121e60122755f35c43cbb7506356fe3eee6a4629e39fde78f78686b369d009153c18de42e44e75d1b4c1d2d476c0ba4f907e5f0ec862138bc70a7a919237c2344ab8aa8ee46b0e3864ac61293e5590c671b1e6c1fc3f9df16d52f88fa06a5aefd8a66eda148d04fd4ecf878a13f5dd667e67db2c57710f78fdde813884657caba453dba3970d5f5194961944fe83c6d1eb1b85de358617663656bbd06abcf9443c4ab0696c498f4db145ebf9dcac02f32fb56ed5151c936c48642429758979b108acd697ed39e8b4cdce179ed2b457e65b3f9d65afbaa5885a377582af814feeb049ced20a9e8fda1b7e2fc4368b5f5626b6d1b72e503a0bde3f883b95dea41089c89c9cec8198dfbdc3e2e72983a38471a8d797b67e9799a8c8482c9a9abd7240438c0146ea157aebec17619b6d535a745670ebd6b8c33b84de7f9134d76409bf923d595e23f2137c3deb17b6da088fe26db83466f4a67ef331dfd42b98b13c7cfc829e772cc37623353d4edfa9e3ae56a30a7ad2c3461f6548d938f116aeb115e8e293cce5598ebfb49c5d16da815ce4ae5c97eabd6f828535cd8c4a98fd0430711b50d468715368a1578da6e0a78d088660e0364a3f279266fe556c7a711493b666f5b20bf3d890cbbebbc4f9b5c84f3f6a7cf6085ea05ee656c657728d6c69db98169bf7905d6ce4d385b95468b1e94f6b0b6dfbf77ea7c8b924d8e44963d161c6eb1d0a3885af3c90069837a386cb06b4caf3a5bd16d8d7b33dee7af5aa8efdb33e961d73cd6d3b572626cbb144988961cd4a5b3797911772787768b796a5157c180a1264c1bc6ad588139028f9f28b3d8866b8964a5253b79ae86064b5979a0b468f87ce0ae843f34765982114bf327ff08c801a3a99af0c27c72cac48614620d373b23c01d1ebbb3331c4f0ab6cf7a03804545427547acc2a467e895d75486f23cc23c779a390026e41b56cfb04b1e22190894a3c1ee16f19017d7cd75151047618b49921c8990a580a03e1656f841e95101eacc1106f0cb94dc2789bb1a2b3591134b05e7d983736f83cdd985d160a9caa210de0813ee78b411c813fb3008742f793e337a699b3a1180c5a48e12d92b9709525858a70ced2d2c81efa2401283fbca4c4b4f1904e75ad66a894aa57cf240118c73643af435f024013d6664543888f7f30327bc65e3631a4da4b6629131ec5067ec5a8c354f94aa207b587f139fd3583b3cb51e6f7926b9a914c15928738a75c9b618b250ffdecc61061618a8038b3c65841ab3d5bf203c122723b087d4ae2604f5bb6c9013c4f38903f65248c9783db79b98b9a827d528444c26c8fe408d785530d90123d30371cf46307e1c6a81097ab96280ee058d598207e666ca0dc213fa48892c3b7d5f49bdcc894f2a8659fe882201b4eace22e1713c06d74156a6a04d84c0b29f6b53fb61773d19f5cf9394dc03ba90923d33055b5c089f43961ce810a27f0878f4a77e9d60a2a1842a0450ab7208d24cc865a6393a9820b62f96abadcc0650b171b473db3e91906720cf7ea3730435f639c1ae9fac889d76bca6602ba96b0eb98aa44136cc3a978b747acba054032d36509a7ae9dc30855b2b1699628601793062c5705c5b103344c3a77947992a2071c35f6393942dba3b8545eb9a58ded8a5407a270b676061dea1c5d490f25a05c0f82750ae6151de2bf028a28657269789733f1e4c279203e2fb837e6ab1f30c04daedb3ac2809791e8ce988a4c1754c8fdfa8be0fb8c94a240ae3b1e73ecca729b4ab04044be1b97972a1a27bb10bde4240d49a568114b938bcc050b26145598905735ba2a3198e3a375b752d8f5a84004890e25916871a34469a8cdc8b1077482f785ac3e497574aca642d74a3625ca37dac98565ab6f4c95a289a434c9ce9fe61d129c073b5cb755306d47873fb186bcb86ac00be265c320c70788bca0f462fbca6db8805986425a6437304ce48d59588489561d37b60d1f171f03ea8ab817c93ea7c3afc06447eb823e630acb4213b50793457aa8f0b9b484d5830399bc2c98a7fa452fc30713fc85ad9a7707e8343e2ed113ec436625172cd4162cb7730e5f327e9566a01df27d06b460d155c8717469a365acd5ea80b935445a6610efd3062ca954276c70a8085c42aa7f82628655f97a06c098aa7ba8a1783060fb819de027dae9256e8ccc9a72539985144830c23ddbb3a1860147bcc0edb69a0ba03bf9626c1f35a611f686cb71801e130e0cf363b795bdd9c32e82978f53083262a703f85398d0587c2cca06ce1c83ffd614d1a85d437784623814d804cc00778978e0cd3e2704d34563fc23494d84b6a4482401b009b601582bf48d7521676023439ae2c48e5b54bae0c592b64d038883a1ca9a4a843c100a58d19270f8484da82ac633c3550a1634d0a7cb8bacaa19d4500af0ae14499ebad63ca1d2afea753e762246a0834942643050b151cc9aaecb587808754e2aac15d5b2c074667766181309b113211320603499d9b2a5aca065d8c088b24482200c0eb26c3f7de8751ef56850ac8097581852873b396b05ea4c12347309c7814dc89929ea6c3f09d9bfa92bbfdd0680591a69dd855269fb77e8184ddb4aa0d3b2a7013ba06d447598e95222774badd3544b6c80c229392b0caf13a94eb3bc920fdc0ad3aaaab352554a15ad0aca4d7038c208eba4f4b181e8194e21575687e55b5af0c2551acd36824c73c950b1d9a8a76264adc88e6e220396bb1aeb6ac835f2cb3167c7f4db6bf0b6552db314bb91584b86c0d7762041075a432583f8f357a77731edc1a7ea932dfd40a8ac9c09d3a687dd530ff1ab95c4e56537dc6e82210c0d3c582049a180030acfc3790fa1b437e91e1f67262e03cb59a87485658182d1a518822f678c266ad70fc1622c5b206ab7c61510f1c920db37ee852276f1961e64614ec8167fda7091988c176e893ab163e034a7e92d569882badf4976ba648396ee00e3af7f5bdb9a417e243a93c5dc84bb3afe84c380645fad6886c5614a8735a6f718acc565905e35325a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 +ciphertext: 1f4d4173d751f63ede8c9347d3bdb775f629eecfc284a185d9c633ce212e168f1a1716096e7b86ac9d637bd9e31a82582104b08375b5a4804e67ef72e1aa69f5860477c11aa0bbe3395934912120cd65d178e83f4eacd7d68243545874b3e88b670768d7e73b8b2a3844abfa49f1c3996ed490d19513d93576e212c357e9a1d38de0b59fa52e86da6e519d4918d09bf673430f59cd61c7f31754d1c56c0f0be72abd97e744d859bd39c6269f12a1e8e54fbb546ec4fb24a1ab867a8d33ba986366685b43eb5682aaea735361e65dcd7375a20a6f1511e5f2c1815569e93631839d3d443c7ce279cadc2766db0611d5ca845466c4332a5f0ce96c68d4c34e58b8ff81b1b11c2b824215440c25dae0f1d6c3c81f702a06444412c307f6db4765d1c0adb5c890b4655f0bbcde0fcd031297ba9d05e1796264cfdf138f259cf503a2410f87866be23624e2aa7292aa5082e263793e6d20801d238eec7e9180412bd118a6b9423dbee8f313aca37328454ae381a71afc476b993b3c7a2e738981dec9d6c005db2d04138d1b116a71df068d2e146c31aefcebf381f077b276c4e2693da745d90657a38a39311e875737b6938a58d0ec6a3b43d00b86ce3a64240d27c96f1b2edc705632b5035640e7164adf3bd698434c63af5f03e3b62ceb05903c82005800c2e8a5128754d5d74171096ccba35130fd7f7ebb8f1e9413b2380d1c40ec05e724fd24ce8a9f01792e624ef9f77fa1cccc8477f6bb87dad3b13ec15220d408bc6d98fab7bc7a46c16efae45f60377fd2086957dfa9f3837237e7545ecd0a0779686a5c3ff7f842e2480667c8a8c07131f54a1bdfd820fa5067e699459c942019e2acdef021393e8538ee32bab41813b64437609df35ea1b775a5c69e94fb34059ed4a3395abe419e2534cf450bb053f0f227b32969d47ef9d80ea2f68d27817d9de83aedf06fc19aaf3e1e1f61f15ea41ca2886d6c43235d47376c02bc9c061cd4b556486d502a724a05786745f0f39760ccb3c3cab55297696936a835f4415deeede9139504c483402577730ec1ac7878635e1ef482d441f25beb2b0ce79af6691ee0b41f8c56cc20de0e85da79f750e087ac1eb1684ab2b3884ff126b5cfc21fc322475ef1c3a111fcd98ba40ae5a7cefc8be88e192a60089247064a3a705108ac38c3a0d9044a74e6247477233e90175d83b10e4d49881196f0c50096d6750dbe10f11ee263420d63de467109f98d3a3aaa0e577e07c83c0e2b6281a50cf3c33286306601c637dacc6915fb23af9151395ec5719a692e60ba8ac123d16684c968ff534bd91d4ea0144c13ce513f962d055a4320fd31eb096655888bb4a834b2a828645d66c72d7825c8e995a2d68d9b59ef21f447298fec25221e5b3274be0d73bef1633c57323a745d426192c6b6fc8d195c4be182ee95e2555b07597d76cc8755b58eddfc92d08117a262d0c80297defa70bed167c7b4fc03729cb91f063ec0c85b3ea34e11d5835219516422e0b653f1a4b6c6d85bb19238e16b5405491f482dd517412b00d67596587dc6d84093bf681ad17cc293a5c70800419366796d6403259a62ff5cc10c02fde2abe8bbeec6e1135f54579d58f0cb8c560a15d90f11d289966f081586f3fd0476e90a214ccf66b55404400f4ab2e41b9b2ec1d1bbeeb61c27bf8d6593ab65ea06b5628289d0abb1296d37b17f17da5ef89cb180a1b82b73aed5469864e3b751c9bb45285c2caaaa904b1f756d3e053be1fa86f5fddc691b76714170b8be35a9c6e8f180965fb84a430a62f939eeb4c3902211e9e602c205f57cf91607b459696136486dade5099a9a2a0c20508e0b4d08c35f7922fe548a4313b246f902dd7384f5d8677c150b9b4c3ba3c985306450cb0267d34bede536e010fc8dfd792861f8f34890b29b92e7e6840cd05a41a746a3ca877f6a1ba79808b91b21e9ded72342565e651232307f6afea7601433b92ede5d4e80cefaddb313a8c6e08a3baef45e675773cf201e6b86050a85c6f3b602b9b47edcb75d35511e2a4079d1584c18329a43be1a37b55a548b6e8504c0d3818950070d6880856c5f7e5ef35e62b3f8c1d8f4328d522ce7be164a27ff263cd09e8c8e365b92ed898927bc18a534cce4984f36a8b42b4eb2ba7dd26b660147ce5933753a2959b4071826f1caa12b13aae83544863c2a46260592d0479e9b807dc5 +result: fail +shared_secret: + +# Private key not reduced +private_key: 63efe0ecf64cdf77865c4dc9b663c2d30a39bc89e6c4d7beb52dc29dac6e3a8aefdcbcfc69bee7967cfbf5efaec3a7895cd83f0f4f6cf826c8d689d55773798b748253f34a8748f4b11e53566499460bbf16c4e502e97bd7a4cdeaf4dab2f4372c755bb0b6f4a32db774345d3ecbf35e06afbea95669e75dcf78502f68439a485e734f7346ee7a856ed9d816c3bee592ad8fc7b289d2e43b31b556de37a43a16fbc98075e25109c9afffc8f1ccbc99ea57188e595fcbf7b9ff6f62c995b0ed82e46caca99f9e5c48510f05b1c7af8ba6cdc652ecdff7ffda5a3c8d1979ef0a29be46246eed49b66d2398379beb3583656cfcc1f1cba0423bfa5e474c5f78547256d7cee3955f1d8b93585c3794cebaeb8f6e5cf4b653988a84708e3bc9649394f52fc25bd88ef774aa17f8bf9cfe9aa64cbeb4d343eeebdbfbcc8b0743d334278aa8adef8b88e0a1e49a3449bbad23cd188fea53ad3dae18f2a4333c6896a304cf63570d8aa03c9f9414b47d8e37bee6922f09e70ca84d9a1ae1e444528004ad471598737699ebdd95c4a9ef99257981a7668de6dd97ebae270e9073657409bcb8909c3247bc7973b798830d9aec8deeb82bb6b568bffa379ffdff35470e43ab7a4624f797eb3f4e16c675717fbc0e5c95166acb3f9b30ffdb46b5c7f0bcb55209d96f4db4dfab0fef2b9b5015dd49936469a63940704947e577d310178c65f9c7ba44a6a6eb5581bde74b43595933b19eab8c4d978d29bb8e7ff4b380aeba4dd9af62daa5ad879836849b88678bd3549239ef674963770a657c1389b023b75e8b7f62e8c97a94444fcccc63f3e4c17db97c623eb72166ed28146521f3afa60bb75b0491ea0ff7370e7f7c2587e8e64a8cf4b2d0c5c2dd53322429d38e239c806db10c66905917c2c7267303d565fb4de69914e59b8afe348cb64188f599787d7c63be7a536890dcc858f7a43b7d80bd3593f6eaef4c5454e745cb4defac2b5d51e815fa3616b9dabcbac6b5c43fc3c290ed505ab8f3fe3f4d7afdc1909cf720b37cffdb58c7f8f2a48b7052748a9a6d43c31364ab3b997466df64fddd7e16e84bed485cd649374632ffeb64ed749e1bead52ba4c0aa7fc679ebe87a345e8c055fee5cf8df4537795aca7b7dfa243b774a9e46f659f26f73991beb88544ac439e53c2f16d952bc5fdc3648e8b850526837b2744d0e83f3a97598e01690e04c63d92891c64b9b1ca6f541755cdd96e390dab893b3adbdcd4d53fdae194bf7fc948305e5787ccfc27efa77c7b6823fb7d0eba383c97ae19d453036faf966988acb289a325ad2272a75acd3a4551562ca894bb63c6d38b671109d537eedd7b807bdc017ea88537624876d58ecca8adf7757c9acde58dbcbc96ca3d338f014b6db5f51d9578ded5aba69c7d47f88a8c75860cb75fc744571591369a69ac0129fd9a71bfa0689dbaff6c3605e5811e45b9b94a9d9b4add0c898038cf988858eb15bafe5a88439f67cfd537a317da1304d394cd86afffa967b2d6a5ac7fafedc52acc6add22ca1e1bd816e7f9d68d67bf1b387eaf43461a5cd28ec6fb70ccea58f8a9dd6f37f04681ab4cd3e9c69138b48459769e07a3f6ca684c299bf3cc95df9656df5968ce5bc91c87487a71df36bc64ca998e797c6f6b098e903a899f945716fb3fd9567e1f289328c66c518539dcf9b83f34e347c2ef10e4a3dcffe516cfeff9cf5e4c49fd0d8757220c3dca95b7682fbe6f7b3d5f668db4a764c2357dbf159846e656f62da82b8db482807f54608320f5860d038f1dcc6e415249779d4941a06bb88c64fb14b8fba049961dfe18cc9473f66ab577a953e283732c689506b4b4c95a4ad1d5aa418a145bf90128d876ab4e28424baa807354f1f631473b8e06cd0d0e5d5ce454bd425a0a1443aaaf92ff2237bc0f7458eb7fb673fa2b8b760e377ce48ea5a60e8c4dafcd6712dfc4c747493ff8f81069cd1d64345553f8cac531f23b6567de0f79b623ac6a8fbfbb68176c41d46d9e73c65c20d6de058d4a10ff32433a2d1834dc818f8fb06c098565297c8e5899e61a59cdd187454b62aea2986ad7e07a6eeff7fb56f627799fbd22d51a1cf63e6f94cfd388e1f3fac4df3d8ed0bd80ec6ddcb5887fe7ca44ba4a39ba7bfb363c98c0db60a4c7781a4dbb69998032c5f6a930c1f65420b0c2bbab954ae55ca8282b1da2a61f1b111df231df1151504e9031b7b28e793109ed49d46702d25b37f58fa812f68508fe2b9efc319a1976064a648bf7a251a948b74ca3f1985c5f114033e1240bf3691238b507bf28956a52204459eae072bbe10431a56af24ac15f8b546a62c03740c16ecc8afc58871537c485ca93617a324f72991273a0549b377ac040aa12a46d366462ff7b76a429bb781922f7a5397385421424a24b366651b72c5f8870c21835e0b2949f61eb3571cdcb780db683c95e23b708889303a4b9f2b862b68a4e2614eb2d8169ecc1349d9b71b5206973487660b6e4cf544baa688202b0e8df9ae88d85115f9a183fc95265608661993839914d9926cbac8993013c59e979aa8444a54972b99257542e4adb869cf56dcb305455bfec5bcf64137b72b2a6c9b0dcc6c386ed616d6a25259ea612e89c21a170b64e379458b0abd725dc8f53a55e57604282dd474c4ab30c4218a32b4183f0df24475d01fc9f8550b0aae3990bd414561463a023445bd23c7c321dc80eff509a6155cd6b2059fca448ce05d1f0062f3c21849e38a7a90bfbf15b192265f11b5bef91a6bcd0823e2e1b414750e057583401b3a5f140ed7bbcb87bba4b1aaa1aa75a911dac26298a7b9a1830a48332f139f7a4a12a528b9486197999b5717cb8552b38f7f759becd04970eb64bb4826a5cb47bcfba7cc46ca17039f1da30dea436de4b6ab76f43c06d1a1db65a9001a1e0f510d7b4755137bb4c08a710e9a9d7fd8cb32d64152c0b85f40b9cb433ed1d7bea1821c6881309642053f993739e3bcd38951433b291ea26f0948cb2dbbacc3088d58d42de008ab581b0b3a9341ac18c28b131fd4e49964d72d65658c684472550a06e68391f8d34bc09a2f25161745c74d68681c3b333ea58c412f68b44d066e33cb7ed17253fa655603dca0de7a13c7c0c78c9630f5c57ae925ac97a823102c423d0b7a3af864c7a95885e574d570895540a3793b3cd0c73b5a21660b64577d6b146e888a113bc44d78c175aa7ee72760f3b62ed7c971ae62a3e8f08ca4ab7daa43c51a18cb72158de398326589241f07a9e78bbe0c4cbc5dc388b03a7c131c885fb63841445469c42501d198d114c31da36418985ca5d95196fa12b59599f90750e4567a76a767547baea91c6580a628c3c052c3c8bef8755238c2b31d52621ea5579b649f6328695af62aa8d28402a554941b11baf7b54ffab7bd21918a0a6d6a368516b4a04354b6a922901fb8a0e9bc9f7713b977226bd8477d5c7088b8b90afabb61d0b32de98529aaec904aeab8d0240bcf114c5e3a2a44f0043b628f03fa04addac64c918916a3031d6808104539275901c8d8cbf17741a6e185250c7eb9379de46176d0b6cb02621f97c083b8fc1dabc9a0cafa9585aa848606c9cbc58b96da5a8f414bc9a6ab4d9811cd3b3b512925bb5b352cb67f76c810b3fc79113685e85595d4c62d41633fa092c31fd3102102960a0024d1f460be791bdb0b19b6610604fa26d6423864e93493066f859b86b6c2693a899dbc36cf667ab5e4d8278371cc411abba846b780090c7023a09409cc4541b4d8784ba0f643aa62336551525b315d6fb7086ac604b2272333c071b23595ccabb5459b6307b59786731008b14ea142c89a066d5e5c502724bc384013b5544a99aa872d5b65e5100315f70091d9aae9d1aba29c18a5549d11aa195d7046ae51a864eb4d69192da8248300f985fb5742a8f0623859b2a7aa600fa835a0aa647efb62b9309ba89a9c4b7478a8a1086d6c955834223600b65a80342cdb6788f09b138456773aa8a2b175f477b800c2803867253b06b5c5296d8ca3a4c85496fd9b413383c0cbb95880545c168099926c175bb6008b1abd69505b8c782c9ee06877523802a936830c9e58145c6591c66bc56abe2804b1ac28394b9f0db695b15c560bf48ded5c54a47244daf089975065b8aabc77e4a6d1178ed5b503a4ca40c2584e878c5c15fb41307ac297da94a3ea7e204b8a4156489df3577d74186d5255156aae92f77512d0b54d1c1559b8866af41ec7db75cf658625f784ab26089a076ae52103ee3053acc22a21a2920c65c10ed64372380292293f494c2c663a87d7eab6ef126a4ef50002924497e70154426f8b9801b09ae930907e6284e384a1c6554b2bc594591397810b18d01bd3777534ec53d050d5a81c049eab8f93e7768c39323dd805f12c6553c204d58cbc47d8e8b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 +ciphertext: 5dbbbbb0482e3df0ce0cc4bfeacacef5a8c408cc33fafb645ebe51452f7e1f4ab58c0066614ac8ed6e71a53200ed108c6bb6286b97618eea3aba554f72d4074edddb457e516a4507eef3f5615fc111a5a127f6b28b925fc0b73431c3eb24258e671338fdb6b5508a5940e8b17771e06f3988051549aab62c21180592f4a7d4ef8befdd0760d48284fc977387b2592fb31d638e4bfb0b8b40d00fd8a5ca33b1ebe235c3b35749c3ef9821d4d571a3f32212775dbf8f6ceca4f21ade85dfe5c7d06b11b93217aa165937ce8ab6d5fe513074bc7d05d846694be093dbaa95810984978911031a0313ee25452151d04b57cc8e1c72f88400f1ab93d6b929b2e70e5742b95bb6552e8b228954dfcccd4a009662b7074c2f2b116b1a091a88e5ee7f15bcc0736f00d8af3a430f75adf20eb30297c3928c7f33396facf62bdfb42ae261b95d6a0295906598f4f0e5f06acc2dd390b0e7fe466edebf06592b8a238397aa5c8807dd555003b676caa0de103ca3850109d42c053474e8d8cab1853229ee32c9f65895e73f64da4e485db143ad754a50d96f01b674b5390fa1a5a644eedf8fd3c84b4e764b3c4a8052d6a3cf45dbe98491dbcd95a173031b33a2928d50f3a71728b9b21ffaa4fbe87a8e54ee00a154690739fc1feec0ca8899f225a3e92e04121165b092669f4ba41b7564f65b158c401e8895a365bb1ffb9d63f59e1de277e387bd519f60c466114823180c75427863465cc9e8ce8713d76d531cf8ff75d66573071205d69ce83b5fbef5c6170f0bd0c84db9e2d18171b52eee79ea76e0f960f80e783cc5a73d3360abeb6a5fbb93798a8cd301ea9ffa1c0fbd93527e2ea37230b9349405edcef15862f8adc9c04d95c6d7d0a134fb5a16f8dab7db9d5da26c56829e90056929daf41de948d968338537c80ebda900be95ebed473025c20c1ca8a0a2602581d4c8b17f01060f767c461c7da84751bb75de30042e56919dcb6d429833ea0ad72aabef9174a0920ee3bbd1dc216e07b5333092cd67d4cdf5d7c306387aa6762ec4e285de7d2be4d26f15e775fe4f7cca27ebc4c3b3991540975298e83c922123d8e6e9994f3542703a84cffc681722ff3fa15862ddc062515a2be78b60c2522c4dff01b52dacaffe074c573bc360856b8e8ee656b609791c86f192d3362e7ff47f616d53d028cd3dec69e33eb1b4523f33bec0977a504626940f4491362fa46888f8729a6883061f530a5e587be29bb1569d41f2c593d7b5209342f59f118b79213fdab6fa145b4aee2ef4b6edb888afb59688bb3688e66a0366e5cb0379d679cf5743e184d7978ec9ec58496e9c09a209dca53181c8e07b8bf3b4b8048110e16fb4cb3573700acadea95e7ba624e293e8438512bc122dd2f71e41717ae965e56ffd8aecd15e8530fb5b40ae25ded10d6fc5c72596077dd918a328bacf4018896c8ee24e18613f149316f39ead53019c042c872097de18f282a4978149539df1ec47febe6c352916cc804fab02b84089948ad5c8c2e94626b7b7b9fef58453727f534e3cd5a3a30d7ae1a7be98220c77a04a447ee7b65b36890a4e974d20416449a6f48c8efc1924ca17f44d28bcc7d76d795049ef9a0eb65eba9006f8d487f5258af3647be025a0e60b8998b5914df9c1cbf987a32d928b410b028d45bae13a4b3e5d6ae0b0770b634da807e23b0e2cedf13adaa0f87cc1553f40fa81e51490dfd072c05c5f9f86d6838bd177cba78c36119413f7fef19af1170c90888ff9432992473677b4cfd3b87d227809282bead69d05ae6f005648bea7a80f405870ff3afcc12f87cc23e56fe31b200ff47497963e407ea244106d54b0578b9d411269dd7ddcd0e801bbe9fcc0accd43ab0c88f6ba1ae664c14c231b6762f1fa0a1eafe23d9663b85818dc8db52e35ecb420f8faf2120ac5d3e5d51cbf5fad360277311cc1e8be2c9150768ee3586cfae7ffeb8d376984b86b0b08d4f85c7688132eba1bc272dd6f1a6809cb925c2d27354a87a39f0e1ed129625ddb437d5aa798c674c17f671401434b93cf1b6f6e17f73f2a286800471cd7861f71cc9e15d09ff533b1a34f43bed647f55759e85f706935c3ac7c16f851648de50b238d648b0a7fb15bc9f258bf0033ee19fd6a8f3b2071800ab761d4c3c66f71b8c0813214f428129879cccec4e697bccd2b3d5eafd14bb48c2bd46d7bebfd2123 +result: fail +shared_secret: + +# Private key not reduced +private_key: 09deb85a3b6262a96eb593935cf9aa03bf738496441cef7303da5e8a5badb5cf3fd8cf873c28429c7778a304ed430786dcd9fe41e4eaba8df8fedea87924e90c3eda0b1d8c74c86598ff80af4e95b3aad0d7a35a210b80d16ceaa54945887634e7db73de2945366ff7b86970bebdabfb8baaadaebe8f4382e37cdc3bb972f68a5d7e089ed53dc977d4836e4ae8116584e1c860ca9f77c00b51e658dbd89dd4ad76dbd11dffbc5bd4eec53def499da12f741d96ba4277a2defeae2e3d9cc9cc3c77cf8bb00e80b03b4d585e572d2f53e6ed33114a81580b960059b6cda77a06d990d20af95d7694036b3c714acd7d8da6e8af8d8cbde075b65772e65843e679702879e4d77fa61a7018eaed14b6664c0e33506bae194da6f2ec8897eb72e22874ce275ec4b8edc27e4343e3ea0e99cbcd497dfe5376d8e3caf40683f759ef1fb85ef9a43588ed7d21196161b831b11fdc643845fcbf6101389ffc83c88eef9def6b550b683d375cf6883c4807c5ea242edef6b8c16ec95e0ecd3f7fb6a8ea09a83cc4a82ff4c7e417f71adcffb3943a3b1ae572dec060e8d97787dd0cce7ed94679381984ddd7460f88fa8a596646a49c48e59b099da99768740f1c66d58a7dd7f88f27dc4f42bf8db4ccf40adae8748ee10ed39871ccaae2a7f653db39441f793468f08a29ce6a676499bed0a5199ec74f853e4661248bdfd06da21804f5a693eeb248830064ff1f354863db3e32878759efefea35b06c7978795ea61eae786bc45008085e87eaa72623cb42af8200fddb4cb86e7705e1f55d7c6d4fe891d455842750e93396799dae10f9eb0eb5b23789ce5da58ee22db966efd76593df9d4d79a64848708a51d28f6ca44f5e0eb3e7281d7c2bdf8d1e9bda6569d94cd5c001cf71e70b98949359be4683085f6f683a32e06eaba19feefecf89aa273a9166abfb4abdb7cda66cd444f349c8c30e5ccf5cb3f72a561cc37bfd3edf8ee4b0b89873b685d6766383d279a2f2df8077f9ef6b4ac289d3bc3934766af53d2f238ea92f7e9faff6b4f7a8c47b8fc5874dd30c51a1e6e235bbb5ddc7b2261ea776359ee18842e5b8341ded45f6cc9ea7affa0bac7db014f17c1cf34c5fc53a33c03c9be991ff9fb38e6d7aaca9f633495fddaeefcee2f28db2d84db55065dd8fa56b9ee659420a3575ac40c4efd41f0ebe4e58824b2bc85685a5bfd7f894a4e75c8e626c7b88530bd031c68cae15a76d6ed311be61229cac449ba38809be3446734a94d80473c80a58c3e1a56ae4abfee90fa896c3c051e9fee2bc7dd9478e5954ab993dfa2403ce6bb3660f2dc4de2c54289963f2cbcb692349a8a7b66774e31069f3c6d3da557c958bee6c03d7817a96323079fca16cc8cde66a8b1ad1b0d63b58d76b7d76b078ebe351a3ef0c23673c275a9fa87fed1a758ba3d2d8e65567ca50855fb3068a9f3eccbf53f44ceae8e03c4bdd5efe6d605b7ff929643479fb2a9cd79be8659c05d8e8d59663f6e16bcd3b43f545294f7176a354431fe2fa2d8abbf933679c9c302c39fbf777becfec1a7d65fada38b9797586f6e327565e411e3cf5a8da32936b57bbd719a837d2a394382f30dafd3a9abcdc8cb6c5491c7ea47ebb1784dbc76b851d77488c3b4c21d9c510b49972fee874ba9c46e3af7b555163339b3c739e4359f91ea3ebb2c9cd86fc44f1ee911c08864cf3bb74b3484f0a7a347ca8fa335c59afac4687a33787c1b49b791d0f6c7d5beaddfe3b4c7a51e705c1af1e4e527690b37e3235dd89fc35b8810f7215784d27f5de6b5e3598ea7a47bbb574b3ed872c3549e3d7850b80e0ed4350c8e4a297340fec56662c7131d99ae573800d0669ba2b85711e9d6903dee12535cf05acd9e8b66215b6d2979ea7a64c25a4ec69d6e400b6faf414e2fbfbe8713e9b37bc75d939fe2e6a76659c87e22cbd01fab947fec855bca6d4dd52cf4f659c8c98d53674c848d0d1776279a494c456e7c38e631dc9a338545f140cec7b7b407944786f9cf5f69ab5e50c5d4d73e5505c5cf03bc23b454d2427501a13c813dce1cc76681cadf6422eaea8594bf087b474e8f1eb2dfc7014a7974f9a05d38a1a4b8e6ef850469ebee10a3a7fcae9c9e8e22c4c66503462b4ae4e991442582d3f76ca484fec606dae58a9ef9d944760059a381bd53c19d170642535f7c56a2f6bbea8b824a81339da5945f7175d08c69784e67d5e079fec9129ee799a1860ba58485ed631cabc19ad60934c192a27f9266bef098ce2d847407826afcb0ab43057008339c534b9e19c5a3542b40a3a88d41533b346754fc09fce920ed73b2fd7048e540bc9af49247122771fec129bf133c3c3711a679353a9a0ad47c4094471aee9619eb58a3831bc60257e07d09def864638498d3a731f24a814177801ae900b5fb6cf3374320a261d57c170dab6a473c86036733e85f290c9aa4cf7b56011c61723839b1e7c629c7cb5f4e4bcd1d6c9fec583d4b78670fa7a53f65b9fd0a91cc6620a5c1129339ce2a93a66618c1ec69e584a0e9c283993268fdb1c8ec25669439472d409447b6a04cfd699d167252c29af53eb27f6c3950b456861b7ad273887bcb3b41e75bdf2962b604ba62852a92f7b192cca7391accd0ad0bb65672e66317ab82bba06766917455f7fea8af660cbf6e3103f7a60b9736bf897b3a53c9be798ac0c493911b835b4514f3e095a49a474c0c907987867cd11ae24d22d20ea24ba028f02d1b295605270c00c732b1c19658af0424f2b01b7c4b8896e6706ed564b87f21afb1208f9f85e1b40244d622a5aa461c25b0319567b7cdac03d9bcbca028ab108837150a6426138b1073c348a1de7eca92acbbc0a95aa88864d734bb90cc8b8dbdcb91c4c333ae46dfd8353c27438abab8a60572d19c5bacf6b35a50b86e80a7b9b44bc74f74b050c2d6965298d33150c63c7a15150fb66082c851637568c2e5a9952e7ad62436e8401a0545c6415a948adf1449a51779005bb08bb75fd518c2dc02ed5c0b63dbb35a37612ec44b2a04a3d3c15414c0193ef5c09aac62d1cb212bbc7bc7b380bc88a37ab103d872605ba7883cc0bc83a20b2ce28a31a3b0bec216b7b1419bca5425e255b25a86ddb5ba95900c108f036a9ba2e941a1966b225b03cb7335901e6d32613b54806c0c737984da16284ab0b4594b0734fe5c6018c047d238fea777538d49992992d1a012f4a65008554405e3c0bf8d386c2eac5e07470d4d6015de45b3f99cc1b9b6f8e459e9987b773d69e3783b520d1282b177edd9c631bb4a76052c8eaa8aa1bd62269a2b2d7a6ba35b1670d27be1eab28d1571054a67e94ab3adcca05ec609b5171a1d4ac1b3a2876e33b7218c7b1a119812479c4974575208540a0831446a7be7ae0150859ad521a0d891b7a6cb9cde236b48868c30ed26391410548eb21756c3d9efa564df5780ff7b1b1f830bfbb70ce7181df82abccc941f1d79b6db3a012d5b7ce5b7ea9ca24b387cbfc34400d47200ba07d5f82c28991b289f56361f31330245f264149c9567feb569f4e2c21cd9b80a10a1ace3804b899410d912d42a9ab68b76c2b4197ec5aba066453fce1cf04d2a315961126cc04fb63361e137a258832679865cea937cab03534746918080b1b92cd099622ea137e4d6b0b30d18ba27582775398027bc54fa09d7a23655655c491f23181816d45437be2892eb73958b56899f25b3e48874434f12a0052518f3caf11215df0bc3265d648935a68806a75617506fce900de0cb07f7686223b9990719af5252ac61a6c44a7655f54585abb4d26e2ae5192c2381009b4796c87097c2657095ae03b924653bffaaab6b9035d176fb34184e58227a64059f54b44fe62a68c7a0e798362de1966db1a982ec3af25ec20f3824cafdb53cb526f055bcabe72a9e807079046b57eec2f681ac8ebcc0734a71ec65224e4a80244340ea1d339e44c7e2c5717208a034e9a6791888c9968987e710fde215207eab3f38aa49195190a885fe75074e17920ea64b6fa077336aab211fbb757880dbe36247299bb8f65c132e48c54d47eccc7aa124547c910831bd98b07bb1f435ab7c96a4cb9b46b36b6b667da4eb7cb2a12f1bbfa88b98f3c6c3704be3f000f65562d7d4c4977ac8c98ac44958c28f65280ae68466f6b7495650cde4aaac4c68e07767d09f44917b29df63352dcd76c1e393e0d5067c76855a989b04547a625762c730624835a6636191c83d3836bf74593839a83847aff3bcb3ab169f65000c6aab1df08994e161861498fa2e42d1203786300adb060a9c2429bc7325eca24279404ac3c934ebed4991502bd669309e7a76cf09507b31fbf659deb7bb881f5358d70595c01fbc7ae7183540b7883122d67bafbeea6f8085943992ed8b051cf758a8b8166c1a1e5f818f0deb30fa1fa06190424c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 +ciphertext: 9b957d47479a6dfd155260fbfb8752d27e19f551c55ba9b4b6629d8db47365a328ffe7d1bb1fa7ab7294c9ff449cacaafc8b4dedfa54339b5334301f1e17de9e27b5a5985420fcbe6b163d007830147ca38d9f9aa299ea2a4cda106304634ad47abeec58fc06528b5c245a90758a81ffb75648d115d39aa75856b64977ee1a7651c826a508174a7ab9c49a119bfcd973a4cddf2fdb4ef2186c9622c9d93fffb7e5581b4d28add151aee63e66f42eba9f3feb05b4f86f8410e80a33cf390721cababa5316c37b53e5afd955a90ccff287e121c64e3950d6d3e90e4cff61a638cb058648d19c2082a2802b92b10b91f4a0e00fbdb835c10f70f3b87c8b45dcf6615bafe6f059ad4a4d0b4ff94260b8fc421515bc0160d9b3c797df18f735054470934084c287e45ebb56d5464d2669015e2a072d48d46571bc7bd1eef75338d635c9f2bcab03c196d5d1aa5910f10e299f87988e1d44fb42b6ce5a8d49464c3e36f52af37ddee6d39a888f3121764342fa80de26763fa424ea3f3f961074688e200274cf047838027aa56091648793af6d7b0c5a27e308fd3ea090d531d5e1670e7b5b47c28e6751dcad317a5f8effc85dd4cf323653892d1c8126ef3247af8d250f4b541b446339131e90a9c307c93f7d98a17fc066d34e2457a6b3a6e3b4ad1c3b10649e69b11ea90d5b79a501d8ad68937dafcf660703df77375a59378fb3ef8d22250a848ef5f4801472ef39fa6e57e22adcbbc22c2e8730d1e23c4660e3780b6dfaff439a5aac5fb7e9ecf2db74c4ed16e487a68a08bff6918f5415c2f2f6b034428290a6555c6c12708a2883c121194b07f7e55ea70bebe1fd2bb577a8c52d91375fbb7d1561534215d1fe34d4931179c15e46b5e8bd7ddc045b82b09151f68800bcc3a612ef003f12f50df2c00aa2f4e371cebe4fceb0c9e7ba3200c07b04be526e71b859ab8e64b39b76d47bf2960083b66c1218aac27bf9d6b06cbaed870a0f379ea957857be103c3b2d254b72b01b049b11ce3a5c1d90ae13d4811e900cdbbe4d4ef1454bd744e798da49eedbd278483c9c8db68169951bd0063aab7166bb674cd78d5187f1cb5f2505a64687db7b54951ec6c064f625d6a74e86b5dd935b94077397cd434d28824387fab8413ff9b8295e274f869fdaa3786c543e8b1ce9dcb788687c158a80407dad0d4bab16e6dae51a4166f093c572787065954d4732deae996d58e6bd79ee17dc6d78f7721c23b8ee7f2779adeb3c7471cdf3006eb9b642fc9cda393374ced828e4fd4a8af9e99890f322286d08fd63a604a61d5144d9ba88276afbe84ee7c27ab956d253734d5f880974b592ed7174a0ba743fdac3c8c943bcfc93fa14e472c77b5a2ea1bfddeddae59895d43bf3e46c477c9023869beb1e07b7f80a7cf324684e2e0f67ca7843a10a30f7768bf838ff428efb22e4c71e177efd2181c9e4a78e3bc180736e9649e8e9663a76f01751150b74a48ae0bebbccfddaa449611884fb6fd7c335cfc0ca789a78ac1e1b465ca866e905aa971e6b346859b018316cd0bfdb7a3b8ac17ee08b044e71cac64e521c2d577dd5f4c6ac8aa97463334b9485f84b9a19e3cd99d99f911b7a5ae949545819fbd9bc5bc357c07c45801835d06aaa1760c09b450e77e547815d7e8a38c8c46b1c2442ceef1993827832bfc417a2780dcb788b75543b4edfda1d1629f7e21ebdb5b19e5cd72cd1cdd95cc9d6067921a7e23d68c26713e5db7443b392b7039b806973775643ad704376e8e51ba68e8d47af6924195421f98c134a016708312da306c275ad375b1605ff1fbc1a2cf8a6101c4ef45ba9085a6c28c5998b1e9130721e398dd3f4228791b0a09519072d46cc19ad5dfd824575aacdf9aea052c757cb95e7040028bb66002196a5cf9e632869c0fec3849314e6124a290dc4fd8a124a0a3219f106af488e135cb89dcbe41a33e33af79c84b0efa25f6d488ff56d49435b25cbb7f9d76c9ae7fd86f40773f8f250b59ab264eb60c702360813d20d9cd94526cbede732811475c8d7a3cf1b11d4565abaf8d996bcc023bb95601b88e316ffe8e3398b2a9f6e5f6fd80d66152f2f9669b74a4fb9221298ec7a7881ac8197466ae63a8642f641faa8bccb832f2b52b54d2dbd8248ca3760b912950128fee065b6ff2d9288fa9159239f0def0d06bc6dccbec5e5ffb967eafb5e4ffd8d1e53379 +result: fail +shared_secret: + +# Private key not reduced +private_key: 59985866133caf63e40a2d5b859b9783dcfcffb66f52973ff226822187c58234ae920a4cd64665e6f6dac668a79315feb07981fd99c65a2d90e2286f0d4d5308a7dddf93857e1c8f212e73aa886fb55cf42ee64167f9e88c797889deca756d4edf7af1f38a8787b5ca07b49a7c59ec250d50d8fbf34d99ea3f2fd165ccebdb28d0b7c3fc2559d0f9e36e40cb55b5dfb366d99f1c86304f6a970a4ebec4d48905b33fc44564fdccacd60993353af15daab12a93417e5ea3db6c9aa2adc9a7d7b4a2fae21cf483090bb855048cbb6c405124d7459e9e4bc651b60d7e8f3893c6ab6d745334919af407a75557ec6b2ebecbd819509958c255776158f4ab1be64e3e53eefe786c8ca4ead91936f1e37ee396b8609b4e088ece842c312b1ca70cb8d6907734565fed50f49402ae6fbf57e92ca7649e3989e0546a662a84e29d4d82133dd2fb83ceb959f33c3e9d46b69b1d7eb133be1297749386ba7cdbadefcd508256b12608d2139ae7a0488cccea64a0238384ba53aec7b343cf47257c5fcea471d71f3c942b312b48643845eac4b5306c6699bd868087348de9ff2f807e4ba3b74ba9b9c63b9d98e46cee38ffa4db9c5b9a8a9f663aff40bebdcd48caaf1b5f01574db18efa354f9a8779d6390ce58f984434ba7e35173f924a60de8df08d74443a2eae4805b03c77bc48bb7b3b0964e9c743d038d1b7b7f7025a79104c8eedfb80df6552f7038a383f83d7a38b6ce430dd8b46ce067d0b699ee28be690538542df8743bef5bd2bc801a660410492707abc717f5662fe6b9fbede7fcafda3df56962887c3befd2839d7220456ce8a82ec163a54c97f4b7a9393edd4a64731ca6b883c94a837ed539dc4ee36d9471dfe3c0cf343ad35dd06af6966898506ae61a6aed132d747fdad47b5489a32245868778a6814eb6b7870b083dafca761e75dd59e3ddf7a8948294991e6954e4804ef5f039072337aa6ffb3ec4bc2f20efface4ba3a7f30861773f06f8d3f1365445fadfcc7c1e925e0e22a4d0ad799c94a88967fe45f1372ab85baea9ed23458ad1bb9859b8deaf3dfe49813d58f435b4cce8e8b6fc68c355c8b8450dfdb345d47a2585382e13c7d2f9a8adafc4643f642d4a463abb34c2544e5468e6c16a5f7641a63d86cd180d74a0abd70b28fbf0a2eac8f59c5dc194ef8b93a0235cad649b781c58037f6e53128bca0699d0b9494db44407f5455cc0e3d1b9d73df8da129ed4cecbc639c64898e1fff3c0b514408c8035cbca60c4eaeeebc5e9873ef26e2891cda253a6c35fdcf9f9cc8afe657385f3cb83a90de4484720fce96956cdc98844807e44ac791fa44c0bf86de08bd54820ae543f7f506eeb2e4e73f6bb775c4bed72be6f452d7994066e01a63467da751168fe42de7d3aebb4bc57f3988c334f407ecaaaa8ecc764abfa43273eba82b46b53f3bdf59f88cd3eee3e49b52fc84dea0b5d26be88739aac301ef810389d27ca3b54684e3b348457816faa7cdefaa1e86bae66d3994cd42ce91cbffe2a546354c7bc22d169def7e32a8c53fb6dbc4e81ab5cff448f5e7acd9c5bdec7c61b14a8671e4530544ea4b94e67a8e38a485e5410db1424b4c2579a631ad968dfb7595d9fc4239fc5798b6ce4693c7566878ef725dbb5871d5efde8bf023ff8675eeed5c86c0a18740990cea2af6b4cdd5d84323ec232c59e6e48a21eceb8926b40375b6eadc7f11a8713e08c0a26ff0001469da3a84a8b8d2b2737e596bacaf674c29e7ffb1d463286cc3917bd64e076d53058a5f96e18506cd99e8372996a8e32a36cec3e163694bbada95e9c36f0295ed379a3522f638f737723f2b840663a60d2a8e25d49dfa6670b997b361394e9db653b269c352f5e35aecd08bb8fcbae431f654dc8ad9774c28edc1cd7b0e0a326758bc536cb94c0c4d3e5490b607e68c93a1b949e5ce7dbbc78631d9d8a34cbfc383dafe1a59859d5e306b5db8db1fc41467c6a89cb6e55d6d1db5e77b2b443c644777a74e96f65913589582a8c7abd99876f48efe64dcfca7a88bbbc7785cf815fa82d4fe7645fa632017c4004a58475d3c9be6f9850438d964892e1fd8b689d3ddfc5476f5d967a665b4c9dabe8795c8af34b2759826f9b1ab846d5f763007fc93108beefdc7a2876488b19554d4d3a9f08b82128a170837c0c51758a801316881c56d436839e5778e79553d97c6c48587bac980e17632f7c7af3de5a9b15ca6d33626254a9e83009442289274a4c860f42c86d8060b2821c873aa5cbccde4540a8e5a6784ac15e6b30cc71a8de57a83bc5924d0117bbfbace8ad5cdfeca785eb224baf8361eb64c81453fdeb54e4e86ab4a397ed6e84b9ba73a0c4b8b606318ccdace61b70df22c4518f463d8342ba6faa846eb55284995f36a7467385bc8b77689807ef511122d12066e12619e37c8ad0872d5710083a2b9dc7107c955623cb209139034c9b3c6cfb7b3133502621662a61bb63b9c3a4586c2201516ee6c3f2d25026f932fc13c5426d64093cbc768985fb8f70b6871755f8811c60a4317a21ed8b5a7e51c1784b562c2a244065451e22935ba9c3ca6a63dc945ca37489e317abbb02c9e87b6b7092b1b4049c603f087d3596169baa2c6e3a778e61ac5f04962b61aff07a70ea72800a0143e9c43f2972908a27e0f3b627bf14841693613711115bc19659c5b3db6bc19ab7be40c24d5887d93e6b7d31899771244c756790ee881fd605d1383409d608fc1a10d6f2511ce815361a66db6244bffe1b61a46a888a06f3260409239abbb9c717d76ac4d658e728977c9f09bae86105d796f0bfc4b87385efcc791aba5169c679dabe34e1ee44ea66ab3d58724c3e7099bd80a9d52cca8ba95f9699c3ad8c90199a3b9613cf9652a79cbb93c8c949dfb0a6a7a1fc5e4a6032247b7885b3843a7af4c7bd49068228875a002321530bc6b5076d0853be448a8a85a8be09b94e5d65d3bc2194a977396d71924bc5b420aa6283b7ed9ac822c27641c811777a8550168468892987e936488d71c9af0a8732b6ac23acc23c2bf8719be59b23aa96110ff02af63858b7405482d684848d83fbf3b317217be6bb750cae74df77a8dfd32539e8964b764a100688301ac20a95306163ca391d33052e7488cf27d4da5be786caf99e294ba1782d462c446613a15f97e9f5632c524cbc0430382e828560315e6bac00b35c084740dbf159809849f8e104eaa28abd5f6978f071d53279c4689c77c43c0b649b8aa042a9c8ca968f28c81c211f8bca19269a9d79985478707489caf7690b529b988471b12523405db659014138d9a6133171c68961a327099477759261c523f9ba6a008d3c14b0a02295902637912bf1230a8b763ae397f805c2cfb4228776443645274f5c01515986cdba31285f9c72fe7634c0b44a42150b1dc75d8cc512d503b3ef7487371b70d50b9650360f073936398356cc3419f1225a3946a61bb38b2e61f0ef85d1686a29e56192d8a26d42a22f274811dfa1c1c4cbfec8323880523288805ac98000944b667346e173611fcdc3d474b0c30b0620f69b3d45321d9c91a130cb6842659a6a0904ba598ab706336417e17607e865328ccb035bd0646b023c3545c2b437463cffa14dbd86ee12b8ec24375f5b4a3a0548eb9997030ac092a579bcb6a0a984c9f354312931c653242678e98502a519d15e64597fc224101cd9462ace9ba56c421b692668976b3a170d88c4501147e6c68ede8a29fd4951d32ac9dc06f700cbe9b536a476736b1eab14e2493c5a94a07f6ab5a323ec3e9b9f639258275523fd32071739b585b5d8657aa502262700998f0c5ba71974c35573f14c13a70842149c077624737e5a06d52863d63f815d57acb4f0142c9167d2784365ed78c9f6b235c7368f2b26dad962e05f2279ceb44784901dbe87e413a04f462b4395b5e2264784c2ba356935dc1ab3c104b6be09b08941a02512055a1d70ecdc281e09c78214a0e57f2ce035947229181b943c5380b7e6f804fbc815a1f3023e4aab03fb4b0e2c459f58c348249adc6b4a5474622c3262b11814acfa872bb6c79b3614e3ad2a1516a0b0dec98f863cac0b061670ccd8d0c6f7eeccdac933bad47cecedac3a5231ef1c040aef8bc53025e0dfbb3d5c6cb2ae96f11a05dcf8885aee9756a13ca0c1280c4d331d50b850b6c00999360dc585e1d849114b13f3849b361f7083b5b3db470796f5761f7641a89189c748b4f6b88822ec85b04228f04a669c495af4c091b54a3835b379201d9c7273557f73c1e357588b68baf3e2a5c88ab0e9e057cdae06ce672c84b2a04503372c0f370d114ae10f97052fb3ba450d323fd3bb1b887fc4da6dbfef06ba5a2d5344feede346d1f04ad60895ab5aaa698c34e1b3b6ef69049a883160c66533c8a65249aa35006f003d4eb4350a43afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 +ciphertext: 3233f4cc3f6ec789ddfcfda18b29607feb86a95d113e2ad085bc8b00391c70ede55956a82cc4a693d9ce7f66d6955d281a33b19451e9998b28cedec33c45435e6a720ac19ce7ab900fd16d239ddba34bde4d0b4cd5d307b261f8ec893dcc93b635dd7d608586c71560075dfd15effa71782616fe8679197ebb9f98469f28950634a1c1a90f1cb80cc8d0314beccd8a8768e20eb715c2e5f6ca3908bb7b18c5242ce5b22287657caa8dd787c46cbc30f843a9dc0f0dd156ff016bb21701345dbb673fce26277bb49188102b49a52c2289f18429b4cde4c0455bc809a8e20b6d8c779b47cb585d5f9455b416c44b2a8519bd4159d5779b4302f1d632466620ac286ff8bdabbb37299ef5be3984759269af8cf2530ba8af630d4862bf4cd2e4a569e035590c316f9a9346a8a0ab271b7a6a8b7b1dd9d2bde91f4690ebfe7b759f9614412bc76364285cadfc7a4a7b688c08b2b769e7ea7a53e0196dfb7c1e26f447b1a9de9d587c032ba60fe7b7298d1a70dcc96617282cdadbcebe809affc49cfd635f273ac9f57ca1ffbb7f0c5bb0f47d180e562da14d33c9c2f7ce5849f1c68037c31c0906d7ad6adb228f3e9d68c3ccb51d2900c39a2176fc86e50b5c8faf857ff1bdc9a4d6d40982444469ce4b918d435e1878044ada54032855cff3fb9f0841a412336e6407cd8c142c137e81a113da062d061ab2f817104a179f2452ebf3b92612da3592a74054d01f17126b217c58a6023a7381a3d1b63d224fa552cb1087ed7734561fe699a11b073c7402a801326229675d6ce72706ba7b69b87f5316ea80cd5470c4ef45bbc4c0253c7b5d9b2cb51259f791fab2b9fc9821fc76b54107edfeaa2717ceeb9e8dff6cb2a4bbb22f012ff1f87cc4703f52653dde94db328dbbb35b9bb5da3bdbc01c3acf4b2601d9ac1f9a98d189fb1faa073b52af448a6e933781017c38aa87070b4b4c2ace0b5af9b0e5e6eea43e4f7681baab39cf40386fc503f291d45050fc6283eddc551010cdf583f8632d69444d95ccbd15464833c724bf9d2d82bd30ba3874174ac4c2fd6168f282a82795f60486c88bde20f67e645394dbba2670487f9748bf719fe5dbdad7b98cc8dff4a1a4b9bc62da1d7efeeedc0c37d5f95816ffffb78a77ea756e53e28ed69ad661287ad919af2de3f9b53f7a592402218527d8522e8b82cc235e3d5f41f2ac909e40a7a9295fb28d6cdce5a70eaa2fe905e8a1bb997d06ff9eb9b486184931f0f3e8a59ebcfcc814d31c69bcb6eaf5ee9c9a93b7feee0e336c8dd63bf5ead30f419ddc0360916d945609d30e008aa5f7a8b58ae7d2c7855131bb89935c59370341297c896c8278521c4c3eeb558a58114895d3da678249d0862f0ee3842379f59aa2eb4d12a78552e4b6f31e014cfe27b354484c53137630bcb56eb5d19320310b5d9c309bf2c4ef461d19adb919d7958a0821026c5107f5b028d6ce5069239e1fc9230bde296b2eda8fe7b723bd1f5ae93a24e62194438a9673c0becd91137dacdf9f6fb00da48e1417df117d21640dd92d98dc7dc139b6c445a5e275b74fc1e38c8550b3d822c2b2436db3ae0c1f3c5bb86f33f9d36e9af17114f52e7c9236b5b7d2e6da889d5572b8460bb002442d062506e66085e8b90c76c700f6a7b56977aebca7039e152579c4ee27b6c2a1f7aff87f6cee904f3e87c94fb271d074b66be181d11e15e15c4e101018b6ae70d63fbc42a2ae48994e4fed115ca3c84cff62a88898087b5a6b1874da7e14b39f4b09b8e2b10a7428f336d82a39e150dbc37bce6255e0a5e8fa2b74b5b24a8aa601a6c671df2dc52e13cccdbe32c4852e676e1a77468ae66ba1dc2ffcbde477041ec452dcb78d12e3c3c4057b51c74464c41e65718b25c8ecae2fe5c6e069d5163689d2671acf75002839305752512d0b5c977b9da6e981b344793b8b162e78398290425009f32441be21418fafecf2b2c7aacf0dde97896533c11ae8b94a698ab8cf8cb2cf3ebf19a358bc121dda105498fec665c760c7ae16de69f0098fc1c9481ccd817fe9cb5ea31947a35206d9c1f86b8bc8766373bf2aad13233a001e1e8cd865f8edc67974849ab0e98699fbaf73b57255afb0481cd55a032c533ecfa7219cf7f9987679a180a2644eb4d373278f1d45f8d69759319e1ed80eca491ea1df75c8cd98d694fd2480617170cca06cca20ca4650f02ee58c53 +result: fail +shared_secret: + +# Private key not reduced +private_key: a1ea441a0cd541cfdc73eeb094ec447843f5ba58a537cbfba389b1a9fee1fa85ac497e6073df345d789b2aaad751a5d6cba99aa60932f1bee2282531a51f3c99b8b4eba967f8c8fb9c8ec3b913b05c05eed96f81013eaa7938f42ce7b0aa4d4bc024f747be51eb4bd02d67ec07893507b7487063a4d59453ddaf93625cb45fc8464eecd322d3c9ee8b8c003cf27d97b3671ecc612d4af3d88352d6bd6c07c87b1365c8c58d3a2468d31d3be046d4065734780765e4b932d7bdbf3935aac04849b0498a7087c7dadbcebc167858c778e9ad913858eef7074afc688829a45312de6077e5a9e38744c25de59795a2822d6998943db63e559949ed3a0d7c2558ebd79c8c0fe55aa013397be3ab862d479297f577faeb3393cfee4c90b54f640f864bf16d5a7006d9657782a36cb78bb37d91748e1ccfbb388880a3b9ad78235ecbdf4b96ffc0f98da59775c90ca4681a4dddc0cb35ef0b6aafbaff9234bfd8fdbf425d7fe0166f7a4698ea9f373b6867705cfe7aea3344288d99cfff42888ee4da9ecd5eeaa089f53309a2a9483d2fef906518661e64482bb9cee4dc314034741fb7377728831664ad3a333106bf61ee87b1088fda5da79bb234cde3234364973237e8f5d9865770a7e5b71a4d7b78952406b56265b67576e1daafa48459f4a79adbbb4cf5ffab7f5b94c96a3a90569cc179fd6c884934b547a116938458e5bae70eb49754b3e0e48c87fe41dfd6f4edcd823ec6f15476911b4b9d13b93fcf2fd76573b995ac8984b5a0dc33826d3b87ef0a77c363bf3d6cf3266df1f97eff28eb50199d666b4486aa7fa3523bd7e2ce3beb539e741e67bd535593796d68d6547c89e3abc73d892fe43bcbfcc7ad5909ded3825f655eff8fba59e2c757c9671b8d0167da5de9ea5dba81113a69d15395c25b474de8e7d96fad79df4566d7989b3691fbff5b88137f3c683e9927e52e9b7d7228d83df9a0e1fa702f184d745b7dca658b07b4f495df7c15fb44f8dee99eab93dbaf6fe3d5406c09ad407b6d28945493db62aa9f4e756cf9b8be873f34ff7c637d9fcfa222b9ceed63bc73543a5729b93e6e8c09738957c8368d5da58e0ea7ba0bd06548b763a4b3891641e74dc89af573be0382055a9539b471c76e646047c10d5fc4d92febf32bc8963fb763656cfb19be7243dd4e7cab3053b901be62ff58ddd60e8c930fd0a41a4185fc554226d65dadcb01d546102d9debc4d496eac65ac73ba274d41bfb43db29b0038ac8c22e64fa8f6c20ab8dc4248dd87e7ec3d6c2bf974da48da31323b1b38678ab08db32f832e74fc31fa69a163b4a3a06f60fbfe2e8033378dec596b7f795196de2873bcd0dc21e8b5d766e9c31cbb1b1e339aadbf04d9e9b43cc4982b3405e8fbb0c97b2db47d231cf413418c91eab62e30b57b304a91568a8dd29506e656c6785bf4838d7960bc962e43fa7d8ce046690459f4f8d6f660e6adeb9c4885e739c59dffd754d583189c6c9f5eaad37328a1c605bc44136f34b3fb8fe24764743a4398309e2264e5c2f5d42ba6393d2159b8a9fc4188ea06d6c5745c5cc3c0ed886fe9ba1133cba89c260aaf6a45f4daac54d152b34d62399459cace7ddcaa2edee7794eab153387c64c5dbccf9bb98f5033ed46f9f7f6e7a4d85d5f99887ce3774a726096d37d6e343aabdab95720ac89bed9b7ec2aae4578e78c9a63eaf1f68faff9d9d4d80ce03e3609834bff34bfa775b4c3d78fcadcff49efc1d79674d13c9a0853f8aaebb9a87529d55548f3d3d51e8d04f539f61de7e3d858037f9de04dc54a2f8bba79a395efc823e085c93eaaa069c4a288fdc16047935efceea7dbec418a02cd9eee82a399997dfb29d855e67ec075445e2f53c8eb65f4a1884413fb6992cd98cdcd69ff55a84d484e436ec7a379655baed2fa461aaf74deea4603838b9e8e9d8f9b7a393ace7b97cc9c43d438855c77c284270f8e528a745a7b97098b55e7b2fd79159ec116e5494b39934143b194eee84be3b6f9fbc6d55db47b7589c1571a22f370cc98794ae3d1f0d8d57e955999cf22a97814a1caa5fe7c336ca331bd6f66dcb85d3ebcada0593c04bb91d3e55e84bfe0a8a57b563ff7a9f63b0c3e11c1e46fad4f9ef4c870a1e399f8e58915b7522477500a4eb2c66dcd7a390012e9f2ce082fee023e6c49fe0381cf056ac1bdc95895271f4e245bdc98ee3a87f651191832b224b3c5528562f9498979c4485c3206eee0a6f5cba8fdaa70dec105bedc40e4c6b667d1739c8580f2d246371f415411c803ae0b52f0b5a6cda5fc3340f1bfa10bb29accf402d6f06472c14cc52556e5a97b56c190eabe6817985cc346baa02c76afbb6b6dfe33f711c78896a529656b4abe25516e448bcb41dbabc340ef4b483b750b0180f68ec0020271a0e9b9f466a4728c19bdaa426fb82294ca00261cc0c3349b75d397674644ae5ca363774abe8a290240abe4039a7e124cc894657c9025e1534b91b896eefd3af2d559da9f8558fa7774708a7fd535580545bc68c9cc89ccdbcc78ed5203ffb653965e7b0920574b7907443b9931472cf19c17dd18ab87842c853462366646881592ec3f5cab67b7e768472a08a43681120f491bcde05a9805c6787b96ecccb05d7d944fc858b5ec3828859234da88d8d00542b104883e824e7b630267111e49b1bb5e4103ea9ac2b187e046b4cd109709fca26af813440f30318dbbc34598ee5dc2806794c4e0a8c6b9c2310c34636088da92147d6b32a7bb447f50b898c5a3e5cb43d6e3c147ad085652ab9edda72f25b7bf250ac84d1288fc188ba645d88333b65b1150722334b5616429b608a0c93d0d946c15576c82093e0b263bb521d9fda997a461f1ee47098861feeb8b557b4656cbac57dc61fa9510bc1c95726b561a1ca4000f28a5720c42eb932f1ca8fc9b647d3740117ebca3d5587816bb48cfc1cb4e9caeb7834e1814a7c478fa052640af253371242da9575c2a66bd01c5fca4b958ea437e6474301069d0ddb254bc4603d3ba5b7415a96e5327743662caa7e08f608be974341b70db77a850b2c11e3b4cc6525808238cb097611e77cc449f17c63da122966394e79518fb6022ec470e8c5082a945c73b52f05c38e2dc3419af4080e890a6e819bb1b301046057e548894f511989a40e854aafb62ace7e586793921e292cc8601181599977d9fa457aa2039b14488d5698a8f03df1b56479f9109ad105b028219b3c90adac962369ac1f0043373bc243286c24f599de3a28684524988198971c1f88419ca09b3e4f22b64a221df8d32afdb0572ba62c7387235ee2752903535c9c912ae30c9151a3b6c415d59a4969cc432d088196f22c518037044236eb441438acb6bb61ca45c947ab98a53b44c48119135f776f2aa4a8413a1142cc4eed8c2948f8ca5db39388dbcc15c12d13035763a57c523b99a1912d0fd29b952776eb03aeed697320c66c0f65b369e13c7eab1e98b281e7b17cc2cb9ceab725671bb5df0933eb5c70a3d39e0eb5a55cc20af912af87cc23e10ab77a9c9755201ec393b523f51d5307b176f05fea16a2dfcac794f834f60a712f13ac8d5174d3a7627ce66fb862497cb95e36da3f486c7432e5983c2cc8cc3a7582a6b22c5a7ab3bc5107c831af145fbcf74ef9523bc7f0ca5eb97b34a3872b9870eefa3fabf609475c46b1e736cff313f046b6050c13392571f2d252959aca2f8418f7489809ea51939a1e8192bea5719262208109b37bae2424ec3655ade90a9ca235f69c8a3be54793655a9e8c6e9c64354a842458067295f08b6ab3b938e6b188bc252d4569589282eb703f0cb237a67a779d8957c4602a9bd80f266303898acc60439a975c8e9d8342f6f1a7d6c92f11606435878739d3bd27460fb5e735a73cbd1cb6c657d0a6074633de38647035b54bd10986e4573e09820ef56fd8d71ee778822f72194237c0b5344cd8c888f12bb34fc86e6147161143365fd45960396bf45a8868176c7d0c440fbb71b8c6aca11b6ef3e33484f9bc22d090011918c3525cd0f0724423bd1e1c2b46a66552926a3a6a0389410a3e5c41d66b07c1b41c645787e8503c613343cc73066bc85b028025c3bb6901e33e242a0061e001ecbb7ac690837b02282a457ccae40dde98934bf37dbaa00dae287fa0a628c42a66a7e05a6645b244e909fccb6abf0075bcf0974b97099a7c67a2c71090c7bb016210d0ab69ff775dbc47206429b347e6749eeb3e23983759a583e08b1653cbb5ad4b677f9b9b365287c1b559c199c3945653a3bc7b0da8b41914be5b411268080396795f1b95ae14871397e14f8f3bc940f00d669886668c2dddebf98e5e270510db63b9982ef818d1253d74a644fd56900607545ef85499cb370a74dbc96de89daa52e6af0482648e3995fce28f7b7c0daca7b78f1a230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 +ciphertext: f05495bf998983547ebf417fa81ee0e20f21bf5372e112eee88c6b10b7e92b488546cd524e4eb6a674f20d9c2b0c54245be13ae593a1b894690554bfafa7f5c4b51cf7778d52dd74226637f0d80635dca6f838cb29d04182acb82ced6873a63f7e35da73f6a1c80c12be044412a2c6fbdcad994727b8c613ca1f7c71aa730c195171e929777178188852f0238d30be6438548d5a58178895847e3ad3995fa45a4213062b9cfd0337dc726fff4a71077690015d9f59ea6e206b3fd06a59b792d20cb74c4a69e706daf0efb0e2002d194aabeca9bcebb2e6e99fb3b03f4c98ae7444af336222753c90d43c76c73e20cf4276b8ddfd81e1271ab0b6105f0390852970d90d2d662fdd6675a9a44b4d64fe8e19e43110a5707f0123993d698e46901e78a7b9c015464e387a62d2b07e32ec8137af4b323b6785ee7ebe0d9e95f438fa79389d661820227d1279782dd02bd0afd6d1056364e786322bc17679bb8626f13ffd3e00adec533e1f1bb563016f618a0482c3e8f8dedf903898dd9ceff7d7f4b0ad53e91441a383c557dc5b61af80daede143cdb67ac4976ed740b006deccc2a60b4bfa234e3b2594527ef2acc10edabbd8cce6b6d31f7a2375c147aea1517f4ed29a3fe73c525974c4b0c02917a12e417fde222770ea9f8ce374978b962e0e4ca5c5a2dded62f632bd5db71e80f91d1cda3ccb6861045b35fdd136de1106d5d7af3ace8b7af2af137b63e396fd74d81a804fa7ae1c0b244eb567318d4a446518baba13342bc4290ad6727fa0a1105dfb3cde778b47e8f3886c3a93e2877a41873de3301c745785dab0a31d6b3429abae65416fad5f4853810e9a73c1298e98a8b6b5c6ad48a2d461ff62f114f8adf3c26769f870216a52a186cbccf85beeb6e189e23df0cf457b75aa9744d489f4b703bcdd951f1e8501cca99f299efe177cbf05814b7329b6f3e70f019551f16640713f24786921e42535ba17c246c1a3bc30aa50101c3ba30325e8a14b6d9e943f789103c2498c41634e14ca58c4ae55332418969f146f1e3f3123690137d54533733e7b4c61a06ca59bb99cd2b02c55c6c83948c452e1780bb15f95e05329fdda527cae208c698408f6a4f1d3d081cde45e3e2226d74d280177a4eb64f1db5259ba1ca7f51322b414d199d994c0acadba583fa1528f57da7fdbea17523c3c2659219d735b0b7add995d074a7cf3401512df7bfd1594045e78c9366cf0bca693eca3c0882fcb736eb318f74c6fd122b74db92262d933ea95ba45765f4d68d4cd2a46cf3ea603d4409a709fd0cae87abdc1e07b0f591f6534545647693ef6b8441ded679254c11037380a0b049642e6b5f7fa3a53a84303e24abc20df6537b41eefdadf9052bad0894f467c158b2088cc397bad26dd1951017b9278fbd0de090f424ad58d5f576050f3d319ad6426ba0a6bf3e5df032320b0e7e0c1eaa2662b8c9ef163715cf44c2580a1b36d2442582aa9ee05b0e6c88533c4fb75d3aa37d9244f70af8dbb12df6945baf175a00846f851eec8e30963b0b9adc6fdec86d1f4327138c10f699becd1e346aaf5a18ca4b9f377edae3d0754907b5f62b589cacb24aa60f5569b1e9d80bec0231aea82576494d66f9e31a010416229480db8579e7f9c967c52ca8344a3b2e7161b1779477b83a4740a22c27d1524223c9701d2a410ceae55da373c3a6a84de254f73c917868c59d95dbd07a89a4c41bdeed5dbb18505ba1eaae4d97470768306afdf30b5de51ccf87e49eed389fc3f9dd571b1e29140d248032d8715c178ca2e2b6c1d0efbb59b53972dcbba6ebb8aae1b0f375152bc63dd5a67eadb83bead97c73bbc5b3f9705cc1a83f95a7a15d79a522c7e825388707d63fccc08242b4d62cddc5a3f5a0be9e27efe2528bf26bbe47726cdea7366834929cc06745d57d31699b0e4fd6aa09718654cdade02a79ee69278633e3b80327ad2e732e24980907caaa989130fb7364f313df57607d47d4be7caee53990a1e7ebae03044412b01d35caebab19d9809f6ed2bb60eefd6149d2cd4b45b0fd6c901154546b0cc4119e89e15e2a3e19d3722e46fd89b1692951607debf04eff35268cc6d5c54a5dfe000fc56b5439a3c34a2df49cca808fcafbfd7435ec6c70b9b48ddbb5ab27170314d61d41ef71fbc54d5b17d279c092e920a79cdda050ddb9c320c24e27344f8ece7eed184579363 +result: fail +shared_secret: + +# Private key not reduced +private_key: e8e7e11a4f790185ab64776746d835f4f3b4b8458eece8cf8aed8b7ae974bb84c5a63f5faa7958f93dbfc65a3f57b9bb3129f8d939b7bec454b15eb39a1d3aa8f871f3d87d240693a3eed58747ea40fab0a52a3c1319e710476a393a90a89b3ca8ec955f3b42288bf3b35e9cad3fa1b8ea619485fa3c1d83931adc425e59db5e967ba96299065159fe56d41e89c797c1513d6c2903b1fa4639252aba2e23eb3ee74917faf69ab4ecfced5915688b9e73780d46ba643f5601895aa064d23ce760347bada029e6087a700963aef293a40a0b3e4df6d259ada687e367489a684b2fb86f2faef5e5976989b09f1931d3e753a6265aeb677c0fb3629329c28c2d61bf3edb3c156b46c5364df8b74cc95b416341af5d80488b895e2c4e7005901f5397249a3fc1747baf1c8105eb433227c959b6ac8776f9bcd9e1eb77e68abfbb33d8b6a1cbaf90e8ece40ee3013e4dc0a53b41dac824fae17e25852f2339a33934278cca7edd797c7b55af75ae8f7aec35ff88c21f4dad0ead5399c1976d49e8569efab3d5caf9bba4f9fe15154d2b35f1d1ff45aa89788687817afcac1963e5befb50eb77bcfa487be2547e993d6fd9f9fbab57cc7945e68018c57036dc93e7e2e3058a843aa36e98e23815a8485eea3d4d78e336b2bd26472be6b8bec382898b57e12d48e63eb335894ccffbf4eefddf9a46a34ddc67f9f73bf5d98a87c5dfcc1e5694e7b3dab7d67f287dc665a13bc58661b531385de404bfe1a3574a7a59667abdf1f8458c7baabe9e0ae9f308fcdbdfdc6cab93bcecfd322e8dfe0c451734f26a7ee89b56d958a9bd12d87446b7b8dbf65ac7e9d8ff1c9fb7f9f7ec1679da95c4b43cc5a11937b3538446298cc7b55b188d78026af29be58a96ad727928bd347d901b28d543d7823363d186c3e55a88e62d3969bdd6b6a12d4a25066303c495fdc9c9df947959b79497b8d5a42ffc71e96efb7f8c6cafd42b39b4539ecc87895d4ac6fa2437c9aa7754b54a48cb34c1071bd8fe2cb2edb974ba633cc6c5413a8dca5183e60ca43cf783f0851ae2e50fa0c94881d3d5deb503e8628c4e0477bb4b1b962c25d81b2662d65c4ee1099c001835df7e6ac6b9f4d48dfdd2d6eacc2487852ae4ef06c36c79f5f9e671439e765e8f72bdbce1651ccf6848975d57323f599de68dcdfd99f209c7888b7bbcf6b65c1d3fb5a8e9885a29c16446369fd5ee4155b9d518ed9c74c2eb2c545c17f7806d8616e8d0e3dadff95a655c7e89c494e2556a8fdea48e080eb4d1e5e75d0dd98c8dd42b5678fa1e64ec5fd31067814ebdade7bf6c606bbf8cf596947980793ac48f7abee21a8550fdd551e98ce039734dbdf8c8d8a3169c9922dbc27368dfd5cbd3a865d8e024eeef13a37f8dce3563eba7c9d0599acdd38ece729c4f2bc6b898b47622f5b559e7cbc87af6ae6ea0edaacd3aa638889f96a64e3dddb78edf347879c4c325ec69e2bcc7710b65b59fe489aab9ab7c8ff9e6b8bfec9d5d6e967b1c77f88f3cdadad3a70cd5703740dbb4f1c30b8ac1894ce58845ce9a73b34fec662f8ea0d64c68d3c7a6533837b6967ae3e39b7d9acd95e7ddb693ecb75ce3db51b7235b35cdb296038a140737bf77ba7af9ec9c59f00e6f62a2d357ac49dc744bca28c9ca4e3fa2dd8b456715907b1b42e748ea606be6e5efa021e383f5dd51f859be8e83b39a2bbdb9987a384f3b68a7e8c72365dd5b65d27deb497d79567f4ea106602b6b4c2223b1439d7195855d653ce3ccff93407539127e4f82bcafc0fe78d52bae8b9447cef9745a7be8f53bb697bce57516c3123c526073cd7aeb35511f8b1243b95f178705accb7efa2fdf9c5ff9db4a6d2ce71aa7b6232e51375796b93c8f39c8f62d66e69f69ea8b3964eb2f8de777e0698698f24ae47f4fd6a874ef5c46b7574beeb13b84331d4fc785ee813c4005df5c2a05e3c5a47bd4b5da381f9d7b0b80ae65e145356ec304751a8ca143a57c6c1830ab67e7e396fb5007dc745b33210bb73b44d154c6e97f24f3f9ccb88feca122ef4e7a7dddc1bd47a37beb76697fa06395ca8769763443695852923572566abf8c5c7097f6425beec7e1185b1db5ab75a9856217ae82d6ec82265e1825ef831b65a5b435dae57a8abfad55c3cc0207e0cdc55901069a2e773b4f240d6d4ac24ad53108968ce43555fd4bc4e3ba3df7a1541e0764c6a387de455a564203faa38457376a3170360b5303be69450acc7ffdf638a90c7cf4031719eb27fad55e4c901cb7dc5fb828ae50730609b80d5a92a89ef1963d836a16685881028759d06c55b9505e84b1aedc5e07d5294a084c1201c0109699b3009b2c67603c055949f400ad487167c1ce048b49a98a8740abba9291618f7c395d77b0649cbec1a2c0e2d25c86c70320e92be7595e103013c4974b7a3b70d8100d61b89a1ff43c30f48c137511375ba781e74bcbf322be908d09fac8991b4213db7a298c2c29455b3a5092ec8610c0325187434239a8b651f0a164240ca4e827f7bb7345848e01b50e34162a359c2ef8c8c9e6e9b7a18bc371a20d2f086865a83a2ba3545943068e173941e4875600183fb19bcf8242fb576f908a8d805cb0909054de4cb6b84b179478a0bae353d8b10ecd278a310466fc0a00c68784ef246f1f0847ccf72894549806c2c9650c9430b02fdd5cb0b3a9608bc85f02dc32933811d87322dc4993d3d13177b7440822c62fc7a31ea174159814c59bb209356c5dd20620b40d08169df1a12d913105225cbacd9c6054f1499d6204cee06206389b05057e579a9e294b43243ab92e136265470786b256f615cd3540c5ca675c4bf68f7da4760105367ad3c6d71a2a4b209296daba2768223aa30845d4ce7d67c2906156bbc4c24410176652765e294a9e22c58cb031ba06a11b5a8ae035a37db36ce1771999061d722cc99de03e96ec3216543ef74447dad96bfbd386b3154b35e08dcccc88791677053a0001dacd8eb6c34cab6eea355a10c517c45164e9eb4c714091bf129186a6b3bf33a86049671652ceade8b55ad17472b49513a79f2b867bf3157d5dbc929974147903ac69a6618f67781a450637eca5d0950948ca8f3d7c41983b8942b03d6a04842a09a4896ba3cd345e7d72a16ba3c63d95a1e85ac4fbf42efb588b088749e2f66bd6f06d56bb80a818c2c56c5d1d1b5580863d1ef10ae2a97f5f83be12491c7fd629d112823d728a2aec939e163436259367473ea0b63ed37bac19934da906a21e5355a3a2277519c8f53c96b4f1a8704b8d79666c1224819590048f5b9a8b767ffda0a20697caa075ac25b5546ae32eb2959947b11fdd384aea2692f7952266267aa559c8ef9168a04cc57fd8ae46674b75e785535a2b1c0c779a553f4ce5c1bf6094541363bbda825fec4b42035325a3a2b1a8135dcbcbf1122b8fa1a37e925440e95c2e4c0ee1f69318d04282c0bb5fc8616e99c9ace80d27a79b64c843b08cb9fc7a27d20309726cb50735cb3450be54d86860d7708b11a615dc662ecb229997004f9670e27898e78a4b3732b4ae5cc459f28e78741f9355a8ef9b394cab001c912124a01d27232f060ca523d378a5d42e0022bef2d2700d7c6c14da09736679b2a0c33c035b3f0513bdb5b46fdbbf3a5b80d65c4be918511bc8631e35aa5459793f858f364c96f2010d8849229acc89e8a50360551afc8c1d481a1c21ebb100079cf3d45ab4159371c49b16cca69fda67aed5881f300c5864c03a9391ab1080b92601f23a417a0563c0c14b16b0255c36529f74a103036466fa9290744eca08cb16b94f30340c49581becea5b64088fa7498e02b439981cb4b4ac29ec4684152830ed82864ca833481323fd8a8f66ca34bd4abcef70c15c926fb8b6323c609efea710dcb6548c06bc13d6bbb41b40caea5745c68cc550873bb467f9dc6b3e720ff4649aad171bc5527b0633cc2709932f0869a0702da790a305761f9d146c1b24005f6c1c808b6dd5d97c647232e843cd61e39894902b76624b73739e3a1bbe4fb1b4b2348c836592a2d31dc9884394628ebae00112643bcda9a01f34a8bfa828333b32e8063acc5344a4b36667691c55c50b2e3098bb4c7069846283b57fee61089654a8ba06797c57c2e7e9bf1404077b80928f5a1bb6c6a753bb8a95bc46748c32e0e1c8f7aac1e2573a47d104ff9567daa2c0732c501bb9ac1315a211c11593fc1a38a69651347b6aa1250f3895a7844e1de2ae45ec66214a8b41da464baa5fc50100c5073bdaf5b4a88c70450256b6d65413ab3ed302ccbee864c578733d40a796981a8c3849f465cacaec79898cceaac424fcd9b57b426caf306d165d1e0ba6573a638fd7df6b3f824f240e7e0eaeee7d7a093875cfb4f6a03bb7707d37c80474f92c12748b37f448186584df115ee97c195d45a81100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 +ciphertext: 26d223332fb3dbce267a1f4f233b61afa2daa02cacafe508d152b22f30478e423e7a2343c857a7f8deebbb048c4ec22a4ba846eabef5785a4c81a3001a2cdb984efaef5f9e3ac845252540b62b861695266e264600a8a284c048e3194fe84ef07b16f87bbb0194a85369c985f3f84e7f12b38d6d48233c930589af674b23fb36eaac8f07c9f60c8df3cba30aec93a7fb646d25e2fe31fb6746399461f3abc0965ee8eec0f5c86dba92cc394bd66116e4fef46be8a645b5d842eb097c6b8532f8c3be8ba1b1efc0d8915a2a3f10544f9fd10e3f35f7306482bba8e9e1e9e51444a871a26ee894dd35bc67439ac7e5695a32bd21f7645273f8363b6926eeeca3e916d3467e2b5ae16149d7d7e008728fb7956402818dbd1c7244b7ad61332ebd9e1ecf6f70e964ce9fc3f3ba70e9d48caec8f4513e7b78733a265a254c999928204f4c581cdc5865da6fad0e9e9df36a5d4e3c45ad4bf985536c21bee5cfe4f30b81cd966e30b3f09de1adc14ba9c9d39cf970455f4a64ed3abdf672ceff6de1b50459c8c84ad3d1f7fd63e529b6aeda25ca573ff9ef6b21bbdd0b9870f2a420b7dbba0a22b2e5a74d7378b6e560b605765f433fcef08f46e8d3be9582233d66336416853442194136e59968a8a93ff47d767d577258572b70c7d64924eda5722b476ebc44bc4db3f47eccfe4e124525ebad251f94843f5a0b81cd8a6082d15b49598638c1c0a87b8a6ee78cb2930388dbde1923a762eaee2b217c5543dc4ff32c0a5bbe4cf8b17dc2f0f1e6999c77253a770d6f8e1b0930613a50da18856ee2186230ba3c2e7cb13f0773fc995e4ce177438380a38e454dfa3152f0544ea5200004e1b23df4264087bc75e63acfc806e248fa11f32d5adf8f8b53df4ba9e074f2114e8d40fbfd2eee1c6edde3d4847161224bf76ab6dae50c9d277ef3d756fcbcbf693c5eec17d3128efdf95626e0a8ff831cdbff506fcccad8c10fee500d12cb9cd05aec3785a5e9290f580b8d69b4379e143f3b06befc67420975f8937af5573e3b35ed5956fc974a1108f94c991b5f20623c7d484af686e00f6860331ce47a75588d7cd2d5b0656a34ff38b5a0ad9bf69e7168fe6fadc9037b443aa72d2c5467fcaca05ec9fd3a634b37ae7cb2fd82cc329fa0786cd612cd795b776ea96aa5a4c2738e6a9c4bbad68c291cad54c40d566f72c1e4342eba719b50404b48b66e784f068309a1bb52eba27c9069a75816e572b983ae94c3a3589e5619862c38e591c8c02e7dd836a67c5483dee238e881e74be53bdd36fe710dd42e999680db458d4adf6b1495c8647950e2a27d1f3c77542675a80b7fd0d74e69a79b508b09de328a517c1d6b870f40f3b0e6a2599eca98112e97a7b72df92c46010ef119ad9faeb2f854f8680b86f8e84dc87d8ef1b78b483585e2208c4dcc1059a5f2973540d20b17101a22339de1cbbd5ac4509cdd4e6af81b4eaacae4a0778b3e8d4dd9c586370e67a2e74dca8a249ed86f0e402b1bbe60bc05cccb0c02486fb66dcbb8456f2c5f0b38dc4590088b2128c5a7e32a3980007a139f66001a8886778bacc6992108b27331ac25c18d137cc5df933ae5a8fd37e301c512c0a4663a6e1b446589ea649fd840099c9c0f6af432924d9b92bd7af6e4f3bc602831d5c1ebd62b3075a6cc6c2191c09c3545a676f3fef6bc80def9b1803479691311744f9b03d965ef39d696df935b5fc7838cd32baa57d2b7ddcabe2f9138ce1f8110562f524383e3d70c51bf06c231e76c37a68cbe5aca313fabd677f846b7be2e5d646844d5138d012f1189a1b4a43d1e624c4d20a319976c8db0c41c44a5e50c982a3447cf0a0723f4e2fbac00eccc6335e24fd77c16b9b1dcc25778cab0b6b3bbae720b471bc817d778d422ad01933271140d8cc9afa066a01cbaddf93259044f9e4cb0980cb2a90ca03e81e7a9e7444ecd64c6d230c80d12ec95bf3930775bed59af076c78c77e692f5cabb3b788dcaf7115a155bbb60aa9dc0b648df006cd5cda9b12ee2b9ffc37c9edf086f0cc78a303aac777fb7a7383385af51c1e53152d746712bf714ca05186f752533a17859f2926bc9571ebe88af6f8150366f89bf0632fd31773153f57a274fd1b5e3ec61ee6a4a372d4e6208e5491dff3205b5d298afb1dc9f2bf850b2f9a4bcb0127edb08ad68bf851b2056d3b2bbae51f32faca7ccf5892bce2 +result: fail +shared_secret: + +# Private key not reduced +private_key: cd85bacc99669cbe9f6403f896599fa909499edb70077dae7eacc07c89b4659cb7c3bab323f3761728c79ec675162df092be33e3536a214fd93eff4531874109eed10194338b16475f63e031fdd73bdd8e168976af77f43eab3596b9975b3af16f8e46a529f577975884dfe646dcf0c036577de7d9edda6abd44989e6a8e07c555474b3d152e5777193308d56fca4aa7e2378a9408deaeb4788f4c87b6477193d7a5d0bb6c4a4d7ae0bff2e7d34ca1abd46dbe4a37ebfcbe88e288584f5c386a2e9c4fae79a107cf8f27c49ca35dea0a375664e8850718e4f96c9048993300065037fcd6e1e692a97835c129b06707cd501c6c5dfe646e8f365a4fcae6fed4a5bb71fd04f618485c170f838939f44a49b194c76cfe2bad0e7587022e4cc6c938aefdc8e58efe0dee48576961f3c6e3537a843bcd72449f6a92b3f4add5fb6525fc6a6e3acc6336341a72f81d4ad72c540df4dc4bbb8612ad3ce937e680aa77bc8f7d7b06faa44bca142cdce0aefb8b47fa3213dac978da2b64ce9307f7001d6ba184736d67ecfc89f82cdae3dd0aa3aece4683ca9bcd89b72d7cc280963f2d37925d57693b947017e6eb7176f6e45a5c6fbf95ba0963f2b9d86615697688383ee8775228afcd86dc2b9dc85d18c3fe553edd7e9926bbdce6f4dd690a53b356f6c7ef8925b469eaeac11209c7b01ad3f12dcc25176fadaafad2b38fd17bd4758a5d379630f3c9cc2b18f4eaa882fca6b1351eea0f3d35b2ffcb19346304ae7837d3db610ef0f8795593035c6d335496734c491552ebf4a38fbedab203b1403f5a4e0ff2b9dbb7ec0eab00097846ce335f6349cf5dc15e64a02e644e0598d7c9b764badc44c70fe845d8db704f64b1a7ce8fa65657d75d5319807a9b5bc18bed76ca64ec93ee114ceb8e79b5a10cdc33efef839a64bd3ef723ee664b9ac5c39a3dd0d8961d53c6dd697a6c896b664a6c7c5a70de6addf2745a64cac12447b70b1ab16395b71dbb810d763fb08e7d42149b9928ef9b9835c8e947cdffd0a5a5aa573b44555ff6b26d7cf58968b48f9de46d952a93d7f7fcb157c4affd6dd9ca76f8f15f7043ef35f6dec1a91bc17808f98bfc37b2f53077dcdc7d4e4e59f57e78d5357f447871579b555fe9871e6c6cdffbe94d80422c9b983794af7d304e7dee2dfdae2906e82a65f9e8a4a14a89b064a3b142c4c90f5feb59a48471e4852c749b9dc4867c677e52e44363b5e31eb5642c54e5f5248ae4358a3fccd1bfbf568c93f1b81ebc3199814a2b9e9be56e267bf639fa920eefd4dd4e518b19b8a9ecdb5bb3f90b46fe9d17edd62cd41b4a809fc9ff0ddfb25bf94f058de299ab530ef7d4dcb6ca6a6e3439c4c288e7a0643ca3ad4fed930a99586c85ae0597b2c56f9a97de7cbf60e05eba7b6fbed6859d7159b56c3eed282b7e1bf85d82cef590ddee2b9be5e48f9bafb34aa91d36d05531d288a0efda810646fda9878b61a4b3ab78e3f27ab65bdb48105686ea3594fab5c2d83aa867055a243d52a5d57c751d86814b7e4ca39b688669d4688cfeaff03dadfdc1d9831d36524763f8c99bca41a7b0f54a7795f8c2a409e03066f6e4f3eb983c9fcb0748aaa856630a67399b37a30fd5186388dcdb740f8b8b00dade328958a92ea9f5e9a26d39c60a37b2a513b79c37930aa9ff381dba1f5744720fe85d2a77721fa4f5444d37db793d87c1c1e8b4cb37bef4dd6f8785ab65d8bac8cd7cb50d3fd4a9933d4ee7e347664e9fa18f13798008d75dcd31aeb8b1a99bf4666d31c3b57d3689496427ed706ee059ffea64bfd83fdc37ef1848379ab86b7c53eedc941d26e74553966415439f6944393660c72d9e59a8e662387a1f8f7b768787b8b46b685b8bb3c7f175a367af89b5f3953f4a636f9bb89b845e866a335a7eb4f2f9e9c795af4372c4dfd277a5ba3af531a4703f6d827f66facf95a8193991c8f4417109c059f9ec4fccf89233b081adaa8a4b3e02b35cb6afe6a9c37509b9e726aedcf9ceed6e7b985ba5c0d95d73a99b324d0583c7f8c73a0e847f4ec4525d48a7556a0ddfd671155064a9f6514c96e3535ef6194a38cea3ebfdf3a895edfd0bbf0efba98198dc19fb9d4e7cff80b4b8cc4d31b91d6ab6ab33b6a37b3f8b5d143f44894ac86929b4373b30f6bb4396cee914905ebe26c856fcce2c623156e43efd0433c19858c986436150968132591db37eaff112c1383238c0767316c0077a00a4714e49d694d802a510dc960c525bf601384b96b90141b846dca14f34159db490479205b30800137819406bc6e14786dc4079e0481d098ca4a3f15f593135ca64cd7c32c46b45b3bdea0d7fd70dee467020ab49d4360355146d7f00337a1cb452357bd01074234b464a134abebc14f7557597bb057c4972d2f012b59a0b83328e88d76bd257ca5aca8912c2a9f90672903cbca16b9746e135108638c388676cd189452325dafb4ddfe435e13908b177a5fc883bc233679df34e40a09fe384654e6a857e49c5f62aaa30e123ed71a4d79a65bab40eb2ba7e1c497ea28c069ce9898f3789fb1b03cc07a5789569496a5a6b84966dc3b601577b07b01e2bd6afc315cbe74b03cbb51bb68920362474819a02e5c60db441a3e0a2a7299ab0913a92e3228986c18639ab0b952a01c77907e6a0b59625c01b1c406a4b339c10b0c8947fdaf5c14f6721be5c11e3a62a7065a78b9b1176e64ad075150b67aaf70820b9a62848378c374a3aeae6c63cf620d0927971c0188768991734754368bdebcac2d6b899e5ecc20922059641566b4996be455e90ba9aeca1a40ce8cbd68a6ac0cc708458169c624ef80a25ccc7c931d938687ca4a12290711b1e72fb3793a760a5c29942896853e26dd1606fb48c22b53506b4413e8f5b3c20b446dfeb586532a09ad602e5c54d5e0c0149ec3526758f174ba49134c980ac109e711ff658b7cdf0178b8c861a71c700e90b1ddb9265e9bfbc07a253726fc9c54419bcc39932555024af651a277302bf383cb67dd2a929037fb4109c69347876751f4f83955a4768fb94622390790796084215b6108c72e10217fc9134b7872ac6ea3d07b989bc70a23a826676718f31338c68a5b1f9ecba4b18bc47d3161419530b67041b3864686224d0171dbd248a48527950f2c4c857aac6f7a3394662afd84f79d5854ea77c26e7c57fd8a3aad0399ccba0ae4780ecd2481ae065e3597cf1868c327c14baf36d9711a3a8647d26ea52a4f9139ba835f380ce9cc599f6f11586f158f941520d143f75d00125a3806c56108de46c5ad093872ba5f927bb2a4a88e668c40af5b4fe9b17f80ca75ab58224ba1b485a9e1c3a6e82b814a1b23bb0d61ae14a9ca4e95d03746a564087f9c53a343ab7595572cf2542d7a9cc90060e6e99cb2d18880f082d3ac91fbe00c5ab141c6385895c626d9c143ccd94042a27509ff67c802098415a49bfe163ca01a20a45add4916aa512467db549e7b0c898656cb4265df3987998c8737f3c79bedba48b9c6b8967a9bfaa0b22e6858307977903001867282cd38a01798d3b71bed21459ed4c4ca6e185d55525baa096c1897c55789b9e19a6b303af32f493cee717bad70cedd67c3dd89bed6926a0f20b1798bb46d173452a31d7543530311734422f3cc9561d5360b665ad87a19da71a7270998b87d62d5e7b0a5ca969120b4c610848fdc6afc0e631fb2abc21096347221971a08b94b0ca4116c2f5a8188cd982f3e647ada99eeadb3ac25310dea91fa724cf3e1017c0c86c2a979791d30192bc3163ecaf73c819dcfc113535bb3a40b252c8bc269884cf7407fcda465c2aaeb19681dde0c99a3853a861ac81f77e1319afc6f67b2fe52dba6b38523147f4e589ee716172650c7cb44e0b760174691217093ed4421dd5a38f2ca2c41604c592366a89c4c70adba149ac63de1b5e21e78788f33d9e135890e61d69529dd9f658b340848623b17447998bacbf1c315b1fc5bdf8fc357e89448fe7a40217205c64961cd643ac6bc3486c5efc003011e80c4f4494cba123c2ac45f7d9019cbc7018669921fa76db3cb5436763b48a8046fa71d186b57c942f6529930d23737c49698c15404de20f8f357d5da523ee3a117fd8b69ab80335e388fcc661a0c8b583f94a8c7869e464a0544c84d160a828f1770d97be7bc43cdfa8566791727b7884e99a5d9fc549369a4ec5195ef1285860cb263085740cd466bc24835ae33bdd1499ce941f8041571ab638bcf896201cbf0b7324ec22c6d3c00f60ac6e6f0317efe14efb13440330b50cf86227fcc7bedac20f9364e2593adb7599b5142174d6b999c725f7d119814642f79de48f28d8b47d06bfec41fd06e2da9ae905005ad241ba55ab42a993df755120179b32e6faf885f946898d545245757425d719681b0b2ba24d49340f931cf87a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba +ciphertext: a047e3dce5d5e4c323b3b4076f1d4d188e291151696de7dff52f9e2391919e077021eedfdc8750cfc16d8bc28e56faf53ca3bf0a00f80ec7740d7d32cdef30faa00b1d074d70ec64a154101e9be710969bb91f168d25079d67a861664bd4605546296cc4e6e708aa043f2fb2dacf8071215f80c9c710a8b0e2dff75e42b767ceeb643208c909646f8880d83b5168c07fd36cf9502c3eb170e81f9df2686108e001bd15f11b7a2f99b1ec6ca9dd0206401df24160a975ae0ea179da5b3c9756ace0ce3e9b42f32045ecf6ff10ab387cffc357518560905ee8f31c5c577111d0c50b4a7c131aa18628cd1fb61ad7484b43310e252437cb20dcccb807a5777cba2404ff76e54f10638cc66a925eca98f9340c7839c12ed1dcb23d39b4f99b1f731be3cc5738ed2f115a0cad0cfa0ee7f9aeef3ca7485cd221a61848922642de62d248e18743b060c42ae934b0a5e7ebca43e266e0a58f7d951fc5696275807916d552a372eca27c535525933630f0a5f3369be348021a338e7074292115fc8a786ae736cf5203537088f97e68c78271424a67a1f2632c1539d34b7f90bb11051d9825e911b42056f60ad0d28cb70a4a20a13009887b8d12f8fb07dae59e2fc621d76be8f8b28c6d31b4116e81ade5f973f44e4c819ed374f45db6e68e264ce5d4973b666cc0214ad7a51b1e8fda04a41ff465f1603a427c92c01813fbf54bd5253c53022652f78a3f6b88331192f0cd8c1ba24958495c98fe29696391dfa56357607936b9889123c5222c92c09f9e69c6b2a0e6b389113924a1940e5d82ac13091e47b76970d0a06a682c5441fc20114f1246e69f486b3030d42bf0e5b8480304eb49e8b4c2f1c5d5a11f77d8a25a0ed106c665610c2a62df65026845ef99d2d43d7d3a503fbb702c4806255cb5f0a458c2673d9de010ed4e78dd8fd1af0bea91b8ef35246833117dc3517bdbd8e897ea83f6ba5442fdc41e661082157ed9be5da8d8f911f8982e976812f5d157c83f7dc9249c4e32a7b0c6b08c653a014caa4a8e9903027c7ae748edd7e026f7f3a934fd7b62799b4e45cb9b14c4b3fc95e3df7382462931335dc7e7beb1bd806077e1d36fb231c76659a85da15d87fdb582adae063b3d3584af6416a153272a2f27fe5205d827fa24693fd62848bd2eee681e8d539028a6c81c4753786c4b1c991bf6730bed5e14a9e4f34bc80b8b598fc75cc7466b986aa92f976c3322113ddd84913b3e1b364dcf01731d6537f56b2b4eaa45a4063d23e61dbcedbd00435b4ed3b5b79de52363e1d40f2aa6450493875c6ad3660bb9ad68d4aac0ca4e5797f6f1151223840feb154f9e6c749ad66b8f0a0bcac22859e1cf3eea7aab96db9aab863168d36958381c5c95884dfdb8e4fb69c5c1f079c7271e3687db754d2a8a9a9597ee633c18255326ef63a50ac58fcf188f729e718a959fc0320568d36ade385e67a148152d1ba4ff009b056ab843471bd94c7a832fb2b706cfaadbbbd8aa42de9fe7298e53b11d4056c9ed043bc514d3e7da9f7da6726f267d584cb185d777dc58ffb0e44141bd24ddbafd1509387e9bf9aa532f6dd5f1bc83b6fcbd4eee3e9ef49a692818b644209030d944208182a394c10aa61c1869c7824f028ffea498bcb87c0c6fc5df46447f3607b2fdcdcdd3ca9bf885792d418563f404c39acc8f7855599f0943fe507e5c02cc947762d3390ddab882c46a604278359655b399985cfb3aa434a04f0716d2d94ad8c9f5a5b0dc448c0f85751ead9f22ba0052810f66205cbc7d7b8440441a892bbe6487da07d482bce368372ffac7db844daec7d5364d650f70113f86346886c93b948985a4187226793ce3febe4372ec6394201011d6e66c342a304576f33ab5de2428bc4abe940dc78d90c3a4238f7f06189fb440ab3cf8fa36fe19a0b03a2c2a119d2ec5812b999a277be469bc9ad6614472ecf1a70ccde3a4dc5fe647574b4827b2aba6e1d65a0f37a696b9a73e0cf3a9cd3293e36369363d637fa22d484b3c9d451bf96d993402f442591079c0293275216ff5b46e4170b9459ae31a9a7f4397112f0f9e1c778b79520aad1245b611e920010e12ff14bcab2a090767803fb30478d813d4cde9858befa2930572c45dc2e1fbb117ce98e81734806d1106ff3d256cf58d7a3a6efddd9ca2b1d87de57113eaa7ff1e34ab7fb98514abe99a268c8d87307fbdc9 +result: fail +shared_secret: + +# Private key not reduced +private_key: 6b4bee9e6771d2b6946533c210a8bbfe297df569cdfc56b501c54ecaffedbac3ca24335438b7ec456842ce4653ec9b4ed5ba80ebe665b40597241fe3f58951104c7ca10ff6eb535fad8c5724189b49138c22f4478b19492403c2c41c45218da2625654beab411ee59f1f47feffdc5dd38fa5b4244a8d8adadf3d386a13a354de516ca38991948497a4ca83cb9f65f5aa1a6ac85dfa634263d68b2b43a1ac8c42fe56e0acaf4f05505edc57a1a6bb1a99dc15d35967b86e85fe6d2b1d56916c8f90db83b57f75b28ca3f0adbd4f18b9caa5b480f8d566cb3951e6d6887777c2c3bcc88640a7cec826ea51b169c8bc1ea7f52bd84c0df56f93990f6fac701efb89fbd25b5962e9a6bf36564ee9b483896bfecdd669952eabe9cab8820771e22e719a2f315de86780bef14e43f379caa11133a500af3dbba75c659e308fefd1c248e2db0a8d006c9ca9e7606c63f557c8555dcedd61a4f84c8ef75ca84eaac5de5057dfc9e8c2954b70ecd96dde69376176e8bb9eb1fa8583366d5c162972495c4846b46b693e477dc565885ec0169a5ba0c733863555f62c5c1bc5c83bcabbdcfe438617412bebbfb67d5623cf58a40ecaa76a4561099c3ae34ea5fde4f89431cfb957c6a930315b7a001955310caab13d76440594f7a66c1385637b79e35ae5ddf1934a1bc754eec983dcf351b306a14fba9ea5b6a416fba9b46a40c99b640048aed0e4ce7487e704a3b3a7d9d009c964e8bd55f4753bf16f349a368aec34f3bd7af78fdcb3dafdc81ef551a12ffa72175e76d5970fbaa44ff8399fec7498e59dcd685a6c4d38b3b5bf47dbbce204ad99b8945bd3afaa237af16a81db1ce5a906364e1733428bf8040539d32832cc5a7f0cfcf82ee9d2dfaadaf38ecf14256da8873317fa5f6f9e49a2d6ab544c97697683032455591c75eb3adbb4aa5eec1c3499b64b797f9b6cb7553f1653be4e81224cadce6fab80f5af7478b909a4ad9ececf97f6d8234b48b2d9b005a5ceb80ccafae85e432af58c77601dc3764833e77ea7dab5763b154447de89cb2c6cb11ef5e195f59977f983c26f9dfc74d026a8c36c9d9d4aaa9f9e0b64224da35d2a5fe503a07b9ddc62cb4bb7c6334c056501de4337dc984c7730fb37891ba737f2a65546bf943cdffa509934583fa1129bbe22e88b987aa1c8e339353f3006eac14f03a9970cafd6ec587d15544ed9950d5a851c63898c4bf33129fe0fd6f0937c30a5e8b56355319ccac8094ca137cf37941372b17ac5367aac78269658f4b40d04b33e84961733a353baa9d5f4b2dc69609ce6a00ee6af8de4f5d3bd4bca94e411473070d7a1f414fa8167cdcd1386356e9bd78c5c386eeb54b3857a897f170ad3de663854196418b4b23ee8d008b6af535bf8b20dd37dbb41ebcbb83c9cb0f018dd5e9c8e80a83d121add679c9b3eec7d4f94c9046832d947a622f7509e4eae899ed7f5fc7539dcd054ae365dfdd5ca06f8f8185cd1355d4ae65639ce8510b93eeb87642cdc87fdb858c4a997bded963f6b3a1318c206635289aaaf73a33cc7d76977e3570aaa98c515436ea39cde485342a4503da9eab2e374ef2ca8e32ec7194db8772ddaeecabd485f33a51ef2f293f19304dcf29ac1ff7ec1ebee767ea470f3e580089ac09cce737fa3449b4b9912dee41926e4599a8b8f1fd60517c57fae3baec5ac77b34b7bffec2c9646fb6b6f9a0a378786d509e3cd9b0fd1f8cab9daa5a4bd7a9c816b4fd7d3c0906af3482e5f5fddee40d6d5dee7debf57fb1ca4cb694f72dcc75fc17a3a151cd6b06eca0573ac03473c395bb35b34bdb0e3f97a5c472aae4345546124377897cee976cf6118d79970c761296dfd474b8828b3b01a9bbad637f8b8593a254734ae2d8f2a8fffaf4d9d7f178b4a0937e86542538fd1a7e4c14547b59a4d8552a5fcc76ef8533c4207bbd47287af05e9bc5ffdb110e4ce977660cec3adf16fa155cf4cc86494bf6bff3f24f4f42a7309edd57f14ec0785f8040e82295a67c284f2b06e80a31ede4cc478444b595dad65b8b5dde1c775174bbe870a874beb8649e8fc07a68341165c11abad1fb5b7beffbda26ee5441d815857ed94c3b59bde99c868bb68ffe0a724909b9452dfde68597f47977a70da79b3750c39f319b44198a5dcfd47cf6e8c212bacc3413ae8c00a2b78cc3b0c7958e349211bc64f036a70aa16067882330a36aa4cb183497c0251b2b942964a922c25525ee9e3834504a085540b36971963e09106fc14125659bae0c96e6663a479a381a915fda7b8a404061c90b814c3146a549b517a3735760244ea8959eb2d98bc37e2f7309e09749c4c689f6b640d28a7a0b8524fb9bc0b544eb219683be91e79baa327b5c0d2f2713b78341c9682f6941327959f853195aa36b919e07c1d5723d6528269b360984857df1636f2a80cf1383a775c230a9991f8602d074b5f0bb42c13ca1eaf4b3c7336a4fe61a8310c9c27f37454f9af3ff0bbb2232689c63ce4b7cbb880886b36681414902bf77a2623ae5f0c359c038f82433413d2cfa88373bbd17bf1d5503774939e916c415c8b929b5c2303234501ba642b75ef2823e42b71647014044a9450a55cedc0592da6554cf74693429d2d526d34851fda24a64450c785510111988982914fcba3addbd0963c3bce55f41b3cc71c0300ba32b02fac76158d673ab1ec7a23b30afd2a53d5aba3c3c87e0fa54408864037511dc3ec113153681d28c45b2a25e7256b6fa90df8b8ba8435b2f90727d4394eaf49981b397916c1642abb68f5006fbb2ba6c2c53b6dc5795a261ba674778ffa7e9daa65ac93366954710419c99fb21a46b029242158294107dfa28c53554aa3d79878b53506ea03846a9041664bab6056f7211a337910f77a2f37b993324927d64aa0d5085840475039c04acaf0ce5721b1f182b53e96928927961b8a04500118a453738c78b8a796ceebd960473b2fd2c9c825593ff4a95f3f659ef00b251449a253332171bbcb051699b100501f84bbc64c4e7f9c7db1190c4621664fb33c624910078155c1f2035d1755f7b10112e4521d58cb9c89575a3a2fa6caae5dba470a9b4d3fdc9b7ca6ac28e0570cc92647d382d04a5091d8a1ef749067848cda293a47d772372820f25245ff457580857eadc0bda0a059ecf1a3adfbc6d7e87184337e94231e8e3774c9854ef1c6b4c872bea6f939845942ff2732aed903a23b72cbb5122c43c8ed303ae0d33a7a704001890f0b378039ca271205d052fb594c526e7c761ad6b0cf14bb251225c7ff42b4b5f651ed55143ecc05cdb21962157e28d7be4fc4b5aebb6cfce5396fa51af1bc85fda50b00fa63ed800d60a5761dea715258bcf597a434e48b23202d8a415831c0417c6c43a659036df10772e796a2d70515939823575cb5c01d35155f7399bfe1b3ca9bfa47ebd69f5c8cc8879b87ae34a7dc32568817aa3f923df22c92be454e99d83023d3caa2e80e0ecb8818414b0241a6315ab20b63c422b6be8572b5e7f249fa3802fa647febc89c8ccc22583c144c191b91187257235d857b9bba3b13db06be10a35d712c540e7bcc62373d76e5828be049b6462d8da931f24a6827d314f5c0ad266a3529fa9b47cb6eec425b326ab0bfa032b6809d82c1cc3e2427787a413daa7d3976aaf83ac08d87b34da219a92a631784bce31cc66693c75aa58c7c87a9e3a926b5229a4f008b85090f351694f66743dae3a59a86299b43c20522cd82f96284623ee20b521794114d1459fdf70739558123f18ff8304730fbc63f198a2eb992e7115e07f509dc58b1e2a00c314714b5162334861ec20acac85664d14057d2788207c01a7ae383c93971d850102d60ac0d042c648c100ed660ef8a2cad375ae1a21b11998264e86ae0561e19d971689183968a98be064486b8abc3634021f770e2581b4383aa3c938bf3aca4aa2a337ec06647aa47428bc027339f2802b9f135820f3a8bea06846beac4c1a2702c502e50d338fb80a590a564f48a6606a10b51e839a4034f2b906ea34b4d3c875f1ff6bb57797b076638e4b576fe8c5a490806bfd178b4569a69626001c8a5fa1582bf4bb7bd586296f9ae74724d7b6c9c38d25273e114fed525ab008b887b9e5871172cc393938902914a3ace06a41cf92f6da963e4217f6b1363f7273cbf4a342865a761371f24285113e74f7a770079157c0ba0700e6bb9ca99ae10b83299ca9445b8024e450cb6152fceb79c0c433753c0b88b21c71bcb38c643ae5e16502fd14c0aa8939219005a15180446a166e74933f46f41a68675692e25816e7a227808764e20c98d33d6c3ef3801d21cb37d2872fe76749aeb09976580ccd4feadcea0b16f00970f92acb21c560501728ffd648a3b658ce84640d17ad1564189385fe895b25cd30d122a90decaa0583b908f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 +ciphertext: 7444dc5528743f695af09c910e1a574f43aba4282a54f050174a3d219c33694c05e6cffb95c7b43ac76e56e244b079759e8202b6425d6c3a124750fcd90eceb029bcfefd2d7ab513f5bb298aff940365f5064d68ce6c485b2f99c76cfe75917280d66c349b9d16eaad19b0814a8ee783e52ec7a964a66e2515dbfb50877f5fbd3781ba5593cd8ca22ce1531b4638c2624129c2a557764ca86fbf735cfeba58ce6b0bff7f039dae5a00f8faa86c463cb1176985ebfdf9aa6856d05b7b657760d5905a735e1cca3f033225da99a8fb631a6c710792ce7f83d8e4bdbd713c072f2e6ca08f80887c9631c325b8b853161843810f4a82e1cb49711e875a6328167170d796c365a6754bcb6a39237642a3a25121759523ef3224a74acd8c182e114a709552478c942adb7ba0133944490d7458fc4ef364b34fe1cc94f8215207a939c92921778ad986510247255b0def4baf40810ff5a148c46984f70b67608991b93125688af498f53a40a9e80424ef660c6cca5e7c3ff1024691f67659a31ec331e3b95a9a54f31c84257c12665e684cc49f4dfb13dafc414fbdd7148d9c9b21d84cc58eae523fa9b1b55aad27c95fb35696020fa7becad60973177788670c785a029567198a5240ece3e80133bd446080e29a749c7e6eef6eea00ee547428961353bb063a175426ca066ec2aa5c35c6ac6ba77a2b16974de8767d7ea028a83dc127f05a9ac0e46ab6784bfefc2a0e9d2db662ac0fa63403dfb787c63d57d1e3c51bba51233415af6ce6c3b6cfcfed555fee4a90f9368a5db2d9aa2a847efa6a25b198b69046314c5d43778ec30dcfe00c62e04c55051071de02976dda6a7f3c7495b98b62b0005850748d5b5e4d413f6bcf2f7a9095836790781d946b399b3dfa087ba6b02726e3a7dfbcb3b50e828b747a2eadd904a14a85dd136f074b76b17fee0d68e62591b8bcee55a3305ad469c28f6372e75c698ac8b5038c700e920fdaf2e02b8f87f91ba8b4b8ac1fa95513567a35ca4328649baa1fc68cf975f9ce53bca91f3d536f9d3dc85968fe18726009036403b9fec674a8aa4d3ada1396fecd59212e2dfdf7b185e5cd90e8749891f11a4ee5f515c7ee2f2d259e397be82ec63eae4935e9c43920c3563b98b17f1a29bd765da90a8cbbe902ef9b467c161dccae224f1b5f263cb6f5dd1ed070e045279f5114180169ea9f2c34a2d62535ea22ae6eeca384c9d9862d618d2accc856e2d5295709d4a66dda98588cbc1637e9dd5288129b92ba287833eff7353f57ae273fe0b664973058b88d1dfeea2c1a14485f61ec761169cb73d10b04dcbb39648f970ede927463f0ba35c6e5885c6257516d87a32e4e7e7a7ef58df4e03a5b8850e3113bc3c22de934b1c5a13c6ebc64d1c0adeb1d80851ca12adb496551b662bad4be6acb3059f5efb927f69b711bbd77429547ed21fb14d9c14e87f364fc7f5335ab0ed3312ea8670a92a58d42106f6969688ed106d2028c0b0393f2b2d4810d574eb76ca14062c7cf0fa284b393553de48b98a237679651535d1a8c20dc04676937a6a35ab0d90ad1ddd5f3056508d6e4dab52709a4bdc50ebad3c549973a278f920119e7731ea497d31428c96eadad8cb0f918e7dbd965287e7aaa60f6fed80d3ca2d4a0228893ddf8a36ec02354f02d7ab8f8490a6be91eff2f5d50013fbecaea945a7859296109eb200e3a406b96bad84846ad7fba8c519a25d224022b1b21d1b42ec28ebd8a280970027270ceada0a98107eecdc6bf3a63c5bd59d739d6024ee83d18abab1d27dfae98ec8c270caffb87904b2abe8aae05224ae346a4b1cab500aebce199c675792a4185ea761f1ae81b43dfc0530e6ec253cdbec633befa4f18b35c01ad3fc359e7ba70bd857f5afe83d6fba06578b6147a454e12bb9a559ef838163e906fdd089b5f4d302ab3c8449350243f48e09abdae9b4b499e709e03b34a2aae069a9011a73199c90e719b3f9993b256542c55d0bed6a7fd3e0e857bd7211b8303fe2d4c38a9755c546ea391783d960c1fce230bc59e3cf151acd24cdf85c785a6f27364567f200d18efe9bfd222a160924a16f198846d8636a44aa6f0c5027663c5aa6a76fbb6b077d2aa98c541109d82e4a8fb0d76f43af57a26a4d642396174d15dc9a10d15f01fad78b9ddb2c9709205f20c2ba1807608d25af4b0418bf2b657e2808efb341fccaa2d +result: fail +shared_secret: + +# Private key not reduced +private_key: 42cfe693eab3711e385259ee389e739eb8b3ba69a2c264fa85b4c536d840d4c9d800a7a6062b7c9809f1feceeba7cdf62a647dee2570f52fcce4b7673c5e670ced694083c23ffb380035f79c849a92de47ac85a3eee4c8acf5ec315bf1393dd9845bbc56c9a967a5bf26debd769d8ccd0a5b87fe4106998b27b4ea38c365130a420569975eae3bdb3d555385dbc5b9402bc38646857bb50a97d016749cf7394dc35ba1f69c18bd80a6a6e2045e4eb36fd189b846d9597d3e443b0178d28943bbff8db1d0e4a32306e42445faae686b1aeb914dd33745da83f955eedeee359a73da4c79b4e9aa7cbc464b1f49f3ea8e65508d922e06d5465740938a9484137077533f4f7c37941f306c7af6bbeed8cc16c59cc7f9fa6ca21ffbf3660eff3f3fc75b95cf930ebcdedfd46f93893eceee361d3303478f6a76ee4747c854696d70bddb47f3b18f3f469e3b93132f5b1a877eda6bff17699ef4bbb5054961e2a7c445f7dc1bccbe6613a4f43fb3800bf2565c809fd593e7076c42b9b891da451384fe45fc4e60934583f888f399b4a4bdd54bdc3639b73f756b94edb5401fa66212dfbf7d7e4f527c48854a73ead89940eeb3a96ed48aa638b2a5538848912f6672440f73e838f0044a6d6a6b4b80ea6a12baebecf8b64739fa2e3f8878dedd657d6de00a677f0399e30b8842633e2256e09b4d7466fd96a1e4b9f156d5387494e3f3cc803dde4398b2c234575f1ffbce0961b0a8686537cad6054a81fc83b6167c7a855d54e662aa29358cce92a19f5d01de5a4634453a494c96758aa687476a8be5085d45684b51a93ff5a66fc2d2cf8b36ccce25668ced9ccd0cc58522d36ebb7cd368f67104f6c8a34db976c59ef5b46c633f3cfe74bb95a55c8ee3b934253de20ea1193fcc91d685cece599eae7362763abc4a63a1ce3cbb3ef3b76b391e2d592c8799bf96d54203307d87dbc87696457962dfb39fa988a95463f6728e8f6d7438ccf3c044599486e6b781933a4579fe1fc79fad5a7d8fd8bde635ac05c631aded40f383b9e5aa69bf49f43d8ee45506d6ddbcd5ef9d5aecb6c971bb85c1ecbcb695810b7e3fbee75d7146fe5b67773235f8bc54a77b6a979ed7c48f9f70ada7824814957563585334998fd6ac4566bb22da8cb18a425bdab55e6ea1b94f7ab1c8e7e8853ef10fcf00389dc36a8e739c601bf9d7d749b4165ca166e6a42253c897b6e12d2994a0f492126e81081356ab447787d3c8d399a807d48860668dfa2aa8890ca8a81f8cd38cbff5eb5e6fc5a46d9d3eff075ab70a36b85958dcaffca927ff53c7f02744cf1155fbdee486d44b3920636bd7a6fc372f633324a2bb5b82fe4ff5a0d83b9ffa6b434be9b4aae1db3ae9a7a5587553a4832a4dd35ef502a575660bbdc1d9a23fc6ac2f7d47ee9941ed3b99e7a5ec81d6473b54d417ae83339e4d97b7c6897bb248876ad757c74d83950a5ec0d157f4d99caf73de7463edd6e5edd64d24d57a3ce488c79faf4cc08114c9eb2c6ea79ff0d64735cc06d4bab7e8bbee7d130457846de9e7e943a43347f7c3f53e85dbca07eed1fda63e9ec7deb97e281fd9aa4fa9512b635f5c704f93d64a9d9c7d2ed7986bcb7efea191366f80ec694c179bceadf9f62880c70d61637d78b2e3f7753ee69e45ae35f999184de59c0d5f50daf57ef3b1194b46daf4f5b9d67e179fc9f1c94da299a19aeab00f45c62449af52d8e6344d3e2bc77ed685deb92ce7365eea32a9bd469df9d32ce673c86db6eb6c74adf1bf25d8ea97b903ae4bbe298f686f58d936dc9f83d5d6eef4844fd6953f941ad759f3488d3a2c927793add8bbd8bceb6524f8b6f61d3c2abcd69d0c46f8d3e4d1c77a86b6d5db2a773aeb8b44ec8d12477970167ce70ab3a459f76a75403149f7e71f39e23c79bb36daacf4c7de036cdd5a55a45a8a7b898fd9cfd9c6f643b53dfb16187a8794fb34fd5750dda4198a7ecf7b46282b8344ebaad63ab34a75fc236fe562ffc74a68c485f4cf22735cce2d3a8265ad5fae73ae4b8fb0cb4ca979ce33557bb1ade0767acc4b98ef24fb94cc0ad18b1fde3cab56cba5c3c6c87d4bb6a2448a94c55bba200681d88878564bd5454ccc727ea42abcc5456494844e8bfaa6c3b1e568b35e962a75853b66348735f9d31b32fa1cf9f81037775c727839696adb115a704f10199031d9ba3d3433ecb50702068392ac97a2db354cb311dc39aaf9719c4f5a7c0401282ba4697ca8c70ebc4e179893135179cbf02820d6bb7263708b2339f777c242f4c34155ac2452cc21904580b381a964c281d750c15c42d8477e7708c45c61bbefc6928f191260409ac31a61400350e928a3b24c313a71020fd186f6e9afab17bb065132588c115c31ca8c630275b4baab7a98a778b97a680adb4611e6471683352b6928b7f0378105383b5f981923e800ff11ce6b64904ad3835c270cad0cb0a6e1b8879cbe152221e6e0994fea9bfeb9cf4f582e4f429170295a8419c984283d79b882bb420876588ae6403f207b3798d89ddc1bc90d7c91d7d07aeeb2bc0e491269281cfe93129c5283a03630542a1312ba5c896b969ac0aba14a289c0672b964a6cb1c4a11c3617ab30e4beb8b8864285087a15c574c833166c759741f493438a535918c0ab0e46926d195802a5cca3078fcf3770ea9644a69c730314f3d91b5e04150b670b23448008ee55f841c148a699387d919dcdc63a23966a43b2927fcaf47f2cb36935d65622214403256753ef3dcaf73d183c79384e7914bfe597363684355f25ac1042505361a04798e377791b5553c449927efdb48606a272c029a2da819a48749bd66a32091946a2a7a0649095da1193c1650aef47099456861519bc8701477bb5b01359c4772269735485b829835861496e437a063838a0419ae6877d0c493b5c3aa56777f3a727e0ee5825dc83ae9f4a51e612002748a5d1a21c1f870f5886b39a23e0cfa14b6151053580a8d8a306af04a7418c88bb5c398c6cd8f6529edfbcd601c049872c11381ab10c0267c0c8c2f614b16d92800dd0989fb2a23887ccf46401b864552105dc79bb0def57eb8b6974723a9164c2737abbdb793bfbf00a860a185d3a81a2257ca91e09f547c6acaf35ac5833fdd9a1f38a5b4f5e227b3fc692677766bb81f85e34de5b200dd077573f0796175140fa9c920522d68040518c5aa8f84b1ccacbe5be03e0a0789372c338a1b24b47a8bfb0941aaa8601a7937d5577fdab4a6d3094aee7c073a7632f417b63383bd035a351c3656b0a52c6e435d6d6699946585b6ea9e8568307c18c025a80e9074629dd70dae6bbdba296e0897c8ea895fc6b5b446d1000e4c880747798cd42c860c3bda63607b69a6c4fb88082593c1d965ac6cc71125cc56a72b60d1297605787819749d43be46431959ac29a01c3ebaab30d9a18c1c7998d9e29415ba0cd72c0d933086dcc1c20c537a6f296d88f29b5d2a21fe314999cb6037d539081120d60206eef1b1e1a498eb65268e94366cd8912d269b2d12a3f1b99572e6138bc29fa5520c8a6cb23f90859ea0a494c17fe7ac09beb658f260cbf3a5cdf9933ca1659f2a0551b881055406cc6b72baeaccbbc4b6964751afe07754da9a8b0b151f02972df2bc1465929c0be64e38e6c55ed237f182151d1a91e4253c42d05badb82cf3457e01cb59a96730b5007ae0fc37a3a322115c8560f0a2a1395a88464728c18a16bb249c168accc3165305a6584939105b594af244c2bb41405163e5bb50fde104e7dc604a592b9e22649c0686be9a8860794cee458a73796ed877b18e034f2f50b8441609cf53280f9c095fd67749871245a4c2bc9cb008ea3e44f424dbd56a7c734b1a322de366541c732fd5f74a0663a61f277301723579158ecd08bd014c5cfdb7610b61789d8b84da23a58e571a72981cf63cc49c59ccf045acbd3cbfed4571f6daaab9b23bf26091bc581cbe301674972ee4420e7e0740bed617a3c94c3ca3be7125c7d6242185163398458311937adad8462b0cb3d5900994f5906121c20f6731ac81a32a864ec383bd8310bd64a30f3d575d936426e721228b93c0c482c1be106f4ce41c5e0057116b30cbf44aa2a217b08b690ff891657188d3b6702ffa9d8ed7b62cf78f6831a13b410679e60fbf9a3221906b5885404a7326589681c1549b9459745455bae21ca799796065925ff980aaa68c206b17aad1cb9511201e53dca34d439167d55924018e7e513fa919a4573b5500a91c8ab61f17cb5bcc282939172217365ef694c98a440b09c883cccc114769b84ce736c5c9c52b050ea16a0e4b8c58465438b7aa11c2c98ecf4aea6284cd00c4229cb6fe2f90dbbc05eb935c85f1ca2afde0d54307949544b08a2ea8e2ff6fa677e3c2ba136c16dffd11094ad7f4ed4c5e7c11e3898a284ee2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 +ciphertext: 11c6b00acaa538f146d7c8dd2f0a44e1bab24875544ffbcb24857ceeae31d7f44bf05624541b6bdac79eea7d55d5063c65c5d003a8977ab872d53c77ebcb8d9d6ab8a17cd7e1969667c1600af54a52c49881fa22c15d8bc5131438b3165dfb158a2b8757539c2b5331f18aebcab7ad3e90c8207aebd1729905973272ac4d24bf86ad39a4b38801b449d202aa338332a0c5d284e5b62d1115eab7cfc5b415edae163c0374b7fa53c91a0eff51d32a2e76f21b208f1af7537de5fb4fcc35e770e84e75cf7547cbf23ebfafd7479897e8c30c9419689a267cd1931cdc7044fce50d9ad606f90f5f5096751ee2e2e7ef03bbaf9caf7481f2ff7432eb5b40f90d23453289e47db76a4219aea192d66c09dcbb9b37b5286f9c3d138fbc712b10c1b8d553c222e2b93ba268cdda88386fcec1a209f384ff6da9837f62aa0bac05cfe490492e96a7ed8377592252d04bac953f2ee24d48a0208364f5543a8389f19ccb7b54597fe03dd32f019bcca2c5307732b7658d04b0524e3656d0d5c71766ba0f11700070399d023842f4f7f90186016248ac1deb3d0c5c07e7116422b2ffb18a87575516143d6b12ec66571e6a0a3bcb0a482b45230901e17dc5db38347b7a7efb0d6adb9165dfc85376918cd78e93ff0c3702c1e37ad7a03430a5f076c9cb770736003991a558770cc06971dfbd61d52b1e46a89dff239c1d41879b4c80fbb74506cc7c5e48785cab3260b4962419e997b9c869d9006f7ca166f63d2876ff06c6316571c06e9042968419cbfdfad551087c824b0511487d2d696b25a8b11ce78b06e9bdeb48521c7afbfa4645209a7e74053e313b65902e11962febc482a093b10d24a0d1c13548332dfd7871524aa269b2d70303a277465d7a1cebcaa796398772b48473f5b6159994351abac4cced4d2203f7846c8802023e8939b197a16cf1c839494f9adcad03a4d3193d159bf09efb4588c9d9aa53890553d2cd5acf533922da4184ed80a17c1fa916e049a530e2fe330e470f8bd4feb429a537a006c6f759b1e98e73084a58dc05af1efc0fde60ca440a5ee8f094d10f52b64bd825f5c0ef8dc89463f13ed9c36ee30cfb72f2046ad58198cf374c2d039684debe17b34d9c82e73cd6483d5a9da9993eef118308f88285d8e99d132f5af9bfc6df2986c99b9dfb4b1f512a61f28a2ce8a948e292d027b5d9c320692332de93cfb794adbbad8747c598d401d2b7dde4f37434148268a36d4400e953bf61115de643552bfadd1ee65ebd13c87f2a5ff62a8e4622d3b093fffcddf5a897e2dfca8cd94aa1c2ed67595241b3b8a81a6ab46d950f17a4d5798a74294ffa1fc044736bd3050d586ec4c3a80ac2fad1f0260707d97dd3fcafea1c5653e51fec2b5e7e681b5168b2077b65d8935d2aa497f6abeababef6cfc250ae6281d6ca1cb61bcb26d62d40b01440049628c902e67c9514c7b2e6da7f46f4554ae4aab9bd2336548b3d325ef734855fd1543f714401c12e9c58e5f755201aa1ccee4ed0173dfa3aba864760104a671967c21ad30a7479bf513627e7cd21e91e7d0107822e9a1d4dbcece8ebeff33c0fcbf7a08c81a5f69c09abb48728167528d37368da4726f538696796ed01af351c4401649f0813344f8a04cdec44f0483bb69158dd89d3808af0bac71ee3e000a1bd7b0d47359c4896c99d1fdf6ebef54bf57b1631d62cabe02fd0c02515974ab09fa243364f36b2ead8add458c840f3e037a13bb678fa061cdeb302010838e5d92545fcf2310264ce64c00593e0462c62a0c1b35cb3baa017bafe03225c91f2d55ea4f6657fe8772bc8f438c83e4827f444ddbdb6abc05fdf282bae61353f239c72ca3027a573432e002745382b024bd7d3fcd7b6195929c24d3cbeb9edc90c9f61ea9da77f9d63a148d85d77569d721e6cb7415e75fe1377ba54b1e971f2683554a845fcd41567757a6ce6439ae3a4fbdf2695a654c4d83cb6fcca6251ff2e05923745ec6e746dc21ecf273906e4992e5c7f0c300e09422e0b15ef2f85789296afd12ae927161ba51c648a0fa8c56614d732a51667a5041c814c4ed7e4058b727b2e12ece2e6f3cfd43cffe4aca871b9b8eed8fea56eb64e2f30b0a99382d7bfbfc67fb4a571ad991919a07b7a67834bd31f23c0ade5276df2ead3c39f375c8402a83b4e2c405f405ff34b689b29a5c8de61577dd77503314cfce43660 +result: fail +shared_secret: + +# Private key not reduced +private_key: 79949cd3da852b8381b94853cdc981b7497187abd555d5b51d5ac57707a8d44dc2070c93962e4d3a7cdafbfda675f45f4fc779a744321957e570d43bb73caa4ca5d1f3bff000bedb60695b049b8543dbdaa94884bf5ff76588c4a31e908dc979a039fa9b3c891ddfc59e39bc11c7f5d66ccccdcc9d36ad3d390ad0656bafd8f9a7793ffc8fa753f4d78bb189fe8764fc8fb3b71043607d77672b1a6a7f7840eb953d339dcdbfb78ab1535aec0544bb6a6398466eb28eef9dfdec43dfaea90cf65d694bf5ddfb7e1cb6764bf74807b1802aae3a3a95e57c78002493faea627bf5bacb17a3b1085baea7802958c9bdb3983786f9b8c8c03057497bd542ea4c6b29cfcf0c03e7ce9fdc6cfcde2ceef1665cf52b0b570826ad1759d36333fd731b4f16b68291c78c3caf52002fdbd766f25cb8fb39efb65d9979bd2b7ea0c3dd8356ef6e19f19bffce1309cd99a87de718cd46f4dc0926d3cb67fe6de993e015ef84b55db3ea6c7a64b9c67bce6c3c6a0c0dfdecf39e94de49ea38b585d77bea7f6e662860dab465959588ca2f5303c8b4ed935dee4f72119674801d4f03ce7cdf45f0f2435ca0f963d9ab8755fe3b22fae57d1cd61ca65d8a363c8d4f78512888f07ee1619ce8bf8fe03df3f4cde4cf17ff6f6a94f1af6eaa867b3854d54e0163811a3843a7984e816af6a135ca44df49d17c9d93f8a742037db4d95b2fe33fa3eaddb12b7247d665f7488ba34ac500becdd1fef3e91fb6854739bfa740793bda5048d37c59991aab615f937caf9b89e4b9742a9fc5534939e20353c8573d9ee399280984b446a851868775a7a0db7f9d8c594a5f65e8f078ee22069327cee46e2fe3fab35b0d9eed990b529f7c7f7e1e645da77ca1fd81ad69f291cafa0e15a88093fed8fd2fc719d8366485a966fcc45888c23d4aefaf6e9ba961bbb53c89f79265a962f2d7fb39f9cb441e8a22abaa91e96fbffec42e6334aa258ceb739bb18af4afcfa8f59b972cc7910647cb1ca86031ea4b80c97308697cc404e5f7575154e5ece8c9bc9309c92c1e3da37ae915934a64cbb35825edc38e86c707eceb6d3c74fec5aba4a6db0e7f11be6053d77cc92751bdf8c5932db5eb574e205ea374f337d673f13d3756f9096b6ba4f1a79fa4820943576ac2a20f46207aafdeb8acf6dc32b9a6cab3feae21dab2a678a309ee38299aed957e51b5743d8eca936973f71fae5d5195304d268d87ba70e2cea9dfedfef5eafe077cc8a576b4347e6c41a8d8bb187c9ffcf37193fa0946d525b49d89c84f85dec10f1a7514077d155e5ea649e8a76577f1957cb0cc393f8ef2c097b51039869765342aeab810639800ded9e004d4226bfdf37c3d71f93c78763abb49bf23e7a1c4ae695986824a54aeda43b3f7dba478097cba0e9390187a6d9b8d9b684ad169ace7feb0fdc9e84fdbe5b0f7f4fa17b986576b3f5986a5fc603b466d242d94403bd571b8f864367dfdde7a53c3c74ae4ac0455af20abd5381e74312679ee5a8d1a43f6b80f46642631a479bbe51bb7368e549f7957747b87030ac019b454522b31cfa9cfcb85e8deb670bfb4b62cc964109c6773b885692be99259412f49b00c5ba719db71638e9e20984373175170f7a16df4fef887de55a6bb6d98748faade6ede335e2669764bc2754c7223b8a23986b5c7d49d3ea4a552a4f2a98c7b4efef05465b358aec8fc188eb0c4797f847602cba59b2da4a294fbc05a4dfac46b1469be6c434e6ffbd17ceecd216f47b684fedd1e41f9b54fa00a8f757887a5dd4d0fe892db899354e73442265251c3dcaa18496bbff8074f5f0eae93f4a3fbd057c8c8ad6ebbc3cf384fd5ddead4efab885e1f396b09c1df636dd5d5c7220ed4c94ae8b62f7ad0e3339d44b804b65a6d6f8f71fb5aba0da8aba9e7c94a51540a7b2f9badb405853ea8f3d30a80aba6e3556555b42734879f7427a4fe7a6caa1b7f7dfc69d89f64da2beb9802d9ef324668f78a9e453ec62566d3c6fe5642f6da0dd843f8fc6110fed2716333132ed5bedbbf161b77d0bbcba23f96967a68c14aa99a6765718ba3782b3835f7571187f12e0763a5cca4492b94ae59616f9b583924eaf31a774fd3ffeefda3409cf1115d948c24a722a48ca79e3b333d5e7b5e94b8ee87bc255f3618532075355227748594cc5ac52decbb390cb6a9b8f989c7048017f52231125d91c51ea6174ef4a37b7cb505b4a029f44079e14b957ffa2f8f325e7334bcfb5b023b4801f5f576333c54ef0440b4f7c8f6b3afec2524e31943fd6323d8f2300ba1b8095309e41c1ea6016de8f6ce4af647db19467e492c1cc12b5b5426b8339ea122473d1b84c603babba7b32534587145b360474a8483be8b06a6086bc5666a9b5af8b4eda929fb60606b85305c89cbd26a4be8a6b4866808fc2120649a60a3da2c64330a94dabbdc4cab2b956b2a5b7dc9e7cbdac88a71d5c06df3b192c5cc5dc6b7d10b07846026a3f5cf0e5b2c5d1c80bde5c3ca231ac908bdb7054190e77d54d40b9e7534dff0b36eb92652449aa4305967e57c9e358f8114544e0a5b8ff2c490c4a3267a405e38653449b617f26c6a3a74033ac483c074d5d0029d882f3507a7936845a6ab4d33bb4dda806759852488a06731222681326e9c6691077a35a7791734bc6b8e2511ab961bb1f17ee411ae86ebabf1b4968da61faf667b507450fff1a3392425457ba4625086ab1a871c8386982a322b82b7cf198ad639060eecc1c2e40bed7462ce4c6792764509e5cb9cc28b5a71a26d52658c0b5b951180f903bad708ca9bf7995e4595b8a009c614406c669468c1b4fa3740a9e91c64c03ce4a3adecd19a716a82530a508970cf16fca38aa10baf9810a8c3334c7b4a29904b7f72bea3e61505107e641c2be03ccd6c0546d2698c110caf2f194789c616ada3103b5c7f015991d473837e9451c9cbc9dd02333636bbbc825dd0da77a6731fbc3a831348cf1a3550166b72b4d0c59a5bb31de1829cc77c235b73bbdba937e5b45a456198b218b641be8c05ccdff9746bd64fd5a759a4886d3022cb63167aa3f37655a55e9acb9671262aeeb99f6d5618212419b1a41b7c260213b86ad9c995294b9e96e77ba66a40f9b5243bb38e6b7a7311d7c29c9272f98308a5f68c58cb111e33964b797a151588ee515fc0f032b054c7dd35ce5c734b8887465b0b4bb58c491f9953b1133561977f0c25401e6b577cc1cbd555bb8ba7760fb972a6b2344d2222c0fa575717501b3191ecc598bc93bd145800d9924c06c36d0360aab9678e93138d266572b305b7ea69a6ac8ca3ed647137090cec1227169754b49324f029776ad3c6c3e33e14170265296c1a7056282074a64690450555945a87ba57b54eb3595df82e81c1552f19c415c6cfdc0cb5fb32c3db060dcc208b6beac782668eddf9986e0a1bb5a0941a3745ee0b73ca0a5f98f5928bd7189ac6b20205555050846edb51a75573e9011f2d7738bb8c58bcd16795805f03a42aff1b854d3981002614b39b90c6f8bef32bc0cdc085466c8f55c7935b96157a624665404468783478d4b121d6b6a026818dc04515d0b98f9a1634977d3521316839253b7a847224c3819802d6b84482988122a7c87d069a13315fbaf56c9047c03641b4b008070bd885f1e3252f16918cf03af8634a8f7291e7b64df4e14feab909c10c7fbed446bdf2557d8a96e2cc17cbeb91515a2ff0b78bf0a21abcea847deb7311e2a782a567a6b1a57bf105a4513de2c378b1c0186909838a01abc000a829a9503d8c12f374c0d48a32c6f539a2ab28ad12bc49507e230c9a3881153113c1ddd446ab513608a567aea199624c98845a3adf90a5a89a3098091f207b46f28a5659f54c75a01347e18a11db75f9247749c03c7ccc6b9ed722da1b118d3c2760216c792b7f2f406397bc9a7f18343812a09e97a0f6c3c3b87179888a6d69b01b9d8c4b8cd215af5b76f7249747aba3537044f7991bc30854eb68c2f6f8b404257cfd6043a3a327d457651f0b600415a977d1cb30904bb853b4dc380ba4802b28f7c479fa7705b3a6cdf8a99ce2604af2670ab6a751236e08321d61d92a27412febca600fe30850f3c86c647746a65b1a9210adf34003a39c16ea69a626c73929567f1b001923b4f0726337f90124b74e500007ee8938cebb15e1f993e1ea0726d04a5e3b52579c625ef79ebf66485083ade6b1bbd0c9a953092fa80755f1471ff7f063a2f0013f429f155609142a685039c0aa540b3e410654803c7f281ce44b9cae5842f7347b29336b5125586d151117f3afe13669bcd7991068bdc68676a7f30708906db24033fc5822b8cbe33012f5e916c80ec7dfb3661e433431ccb796ba70c5a1ee85d63dc27bb236759e3a2af7553c03894124a6bdd3e3c87def1f1bf3e01fac4709aa9b393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 +ciphertext: b102d7ab71da57485f6d6fdc4fc78c8bb17afb69c4f5f266e402c18a619367c1ed5a5b59825162633e1bf5ea82ed986c309361cae4def129f3226230b611ee9c81d19cb1dd83f8c762e3366cbc1ab58222f5889258cbcb1ab9b47886eed1c843b39aeb6ecdb1d1135756ba2d30acfd553ab558bfe6eab9a1596dba1d3265d711f6388a0bfaea56c87bab7e88fdd6ce8111241f7ac973ec4b689b88140f237cba5a2ed5270cccdf73b599e2740e2f05139bab15a6a0083e5edefbde36558a17dd50145d32e7573cdc74751cb15859d103baa9340c4b784d92170d230bb46a2b04a5a20bf6db3bf8b7be88b5a7823fd6c0ed36881c3e630e5dfea590e712ea81f7c242cd09c0f51f3c73772a92e8f95586b5c10abd53cc9a2bb2a90a6d083b7af422e36d0b1c6b97e3eac3036fcc4ee7402f003473bd10592914e007cb0f2921a219a5cb0cb3f756d5d28bf9280d55664c6b5436b3349ab07fc15ace7ec83831b1a54b5bcff901e47dbb49fc68d1deb5f3c254d1e4fa2f6ac962362df8277a274dbcd58ce920961a4b6d15e7edd85e5315bfe6233aab84bc73866f2d5e06744b855ee34667890dc35cd1c8bdaff4b159e4e6e5a3f53c333ef9ce8301512cb5df60928fe7d72a0e8723897c5ca57e6eddc4dca47084b7dc830b88862898f56f14f29ee286c9e65ca856431b16cbfcada1a53ca163e506d1ede9d42ec3c6fedb23de6da3c74a69eafef6bca75fa5bb33974633017f455403c6f09e9474c61e234edd8ce301fd0c53530b54a5007e2ae6e0b8afb7e23d045a974b0191a5640728170b344cdb4aba753dcc5f86292d1b3437cfcec6bf22471f8086098fd4e94ff9e6521e6a326684df5c8204c9405bc7b5ce79c9bece25a9da57e1ad7e076ada0372fab1948c0a9fe326b53c905015bc90873517f436d26761866666109b977b6f1c12aef71ddcfc35075dccc3863566aa39f1f568f7c70572d5b8e45e358be7473630327901407b53520b483efdf37ff810912529334e4a5d44c2cd568c2310c14a1236fcf82a8a1c0eea577d4609483334dcac7aaaa39bbf3491e3ce0f9a975dc15512c028932d9d83e1e6263ded536e2892605516d1b37aff7ea624f1db3588c6e82ae7d591cdaa1ce70b261e61541bff6f9ca6a426277dcd33431c119ed6e36fe8b1c5d04edee4850138fb0d968bff73cc6a8ff4ed1b081403680428b6033e3b01e1a197912666e881e630d3d675c3c8f3d2b3bfe80370dbb2c4a48917796f24eb89b50d0f8ed19be24c44f6c109bac0f8f93f8acd596412566e98104c0b68acc2142aa486249717b427128a0a16efb7ffe7c2cdc06af88fb4213188e610de29a116d792360f9eddd06fe560a948bf87511e5bc76fea7d5ea57d42f7dc1486c6cd79b90a0ab66a1a4f6c3e1ecb0fec8ed361c9f952efa6a09a635d18f1cc5b113e1646a348e34c1e3f3b0472d4a5c50fd1d9830d00a3455a25c73347196111b6999ee332d66a26087f7d3b36ca5c946157039dc06909acba5a9e458f7e487f36c2d41d9fae232208c7f345e8f6909b0de4932ba55614b6611e369de0beb2f9c574336fff0228665698069120edf08cfe00b10f13ebd12ae0c52e4de8b8e62b659fedf834d9d8f14a5d53ceb47f076472981f9a89c208399e583e86b73247a0a44ebd3bf84dbd397d0d66b86619cf5d60d5b9aca7b7f2b5ff84dcb833b757ee0b0a38d7262926f315a315b1eb0419146c242195f5b4e5f25dc8f4f4418b855694f9c1f6ce65c4d48d6d0a1800d3e494437180a1770a4d41f3f5651742336918ef49248762b537c948ecc94fcbe6663a749c0cc67eafe7631c183da90d0cfa69a0c4be70761538722a6d45e4ce53fc31c78e15e5a5bb62f73c802cd8b1d102fb27ae9403fbd2fc7fabf5a59c5054dd699d49fa873aabc070c33045e084ed1b7f863882bd12bc874e9ecb080c00b47a4b322be1793c06672b11238085df22202ac1eed8d139c83ca5cec9887fd9f2f7e7da073d42f4ba5cb9400be47cf30aff2c60f1b38ff13e4e2c95a233a3a6c295767c3e59f86b895850b44eea221acef869ebfed4689cffd6d33f88f62ea125d00c990e505bd984985565093075bd4d5eb0beb8b6a0fa5e378d2a9ea5453dabab99657a74472750574cf1782fa3369eaa34daadb6d986df2e9848b4b4e24350ff61e92b1237fb5714c1b2003219b849c70624a1 +result: fail +shared_secret: + +# Private key not reduced +private_key: 01ac7584aed1854fafbf29af226cac76c6bcc3ff56e0454802a968d79b90ebf3f52fc57781a5fa00ff83ec0c7b11ec71a6868963335826dddcedd8d89e9ffe857d978d74c75806654ed5bf178ab7f1a658441bdd28996b50df3cc51d4f811882a21f9fbfacbd29bbff278ca869cad722544f0d28c87afdb16565f5169a723a09bf15cab7d4aece845f94ae77c3d55c7537478660cb696025cb0db431fb4f349ef5f66d5c41d92c64544a6a79e9d99623b51329d947bf4bb37d7259eb40ad59510496bd4eac68baace4058665a465578e2bcf28068f54b47c957a7a1e2dd4649bf333bee3c86bd262fe474718c95b95553e083b50b69d455764c77e8fc286348c187fb0f8cdbc8a7c37db679ff4ed853769edcd3063baedbc2e5f045ad25ce98767e7a52fbcb44a9c67b65f9e3f9b995374de525471511336d993b6e84ebd9e8cc943bef1a0ef3835384ac0f990f1646e487aae455d65cc0bedee5790342b4d9594687bd53b872bfef34c6199a4d93f368049a6a484ddd7bb1e5af85c9770af87888d5be0ce58f64b50de04ab3c8fba0276f1ae36fd25c4bef55776fe7ccfb165f4130e71e806bd4143d0089490d233c010efd78373de2bbc5a662ad700dde182cd559ed5712e0949c82dcf2b15b77634db7535b76a237e37a86b81f6b59d54e8c4bdd62416655aee80e18acb91157c716cd03074d522eaa523d76f074ae279b570eb08b14bb697c93345c3da33b6d65f5ba668c80477141cf2a577d0feaabd7309d337c54754f377695b83a7d5ba8ea4cd9934cc83a3c7abecb928eecb1ed4d5b58a7c4b1edd3effa9b49cf13d0b63dfdbe5347dfd276e4c08995c561a3bdb4933a6ca3defe340e53af0e3894e8bb95657e8ae363b928b3648ec266193d44c11cafe48ef656d54c3a13558510c9a739c7f857b586f13a5efcc403ad347eec8623a3b41f8447302eebb512766ec8d3fc156dd0598dd837fc4b39ad3895cff42bec4f08a416cfd6b35a5d70e98576823fbed0dc05f5ccfefca9a195ec9b52dd11015ec9787f9b7d3446eebfec2edf821de89fc6476b6aba6e19df1e61ddfe90fde8c48b75daa6d8eefc0456345caf6d309589baacf89c6dc664328b500ffd610a5b2b05ed53f2ec8b58c7872ca332a8b6d12e75f739a6bfda88e8579dcb35c5953cea239dfb82cbdf16a44a9c1d346188ccd3365b0f0e66007c6d6e04ba1d9cfc08cb6a901f491ae6c44434e7a86da9d715e812066a652ccc179cdbe52c3d4dfa4b6092b8d5e8486d59e8321b6537f883661cb8ea4596c804c6534d4d404f9928423d9f37fcb61ba90d7a439de2d4d9d7369533d87fa38e8dd56a7132f7d970df7f10cee4a4bf72475beb2cda398189fd49fb0112ccaec57d4b7983c10da4b1735ad78cbab8144b486ffb721193b1a9654eb734dfd2b42b60d78db163b68ce92f014becf74847bf47f19e5a70eb6b28b7e7ca908a944ac6575f43d048950016b69bfb86e22fde2e15435ce0ce2e5b6813ad37942bb64685fb82ef9c76f99a77b17d7a8338a7528c01a8eb2b19cc64cefade4e384aec67774aefe0dc9c8c5d431c099abc663bec1f640515e7acfb8584333e69ca4ed1dba6c0be940df049e7bdaae4416e4e9c389a68e7e558ddb181da24477e46e1f4a12c9dfcd18a964a8ca0b8883ab26916ec339d49e33981570976d83dbea80397e6d6a574a048ed477bc7776f7338c435c50ff7ea3c4fc3167d0d327757c9fe11759502649fe8526ae12d5eb2785f499dcd2fadaf68594bedfd3637d78abe703b4a47564f7d78f887f6e6ab45e814493e91d3aa0255c26cabdd24fe20565787856dafd0d5bba5f482d77ff8f9c419638fd5568d85857a83bd43ca768d5557898d49a9afb4e4d6d2ab3165d6cb2879ff86f8982588b63ffa429ffe516c47757e36a1dfdf36daad74ddf928c043066ca3a3358b6d8065d8ac8458ce374ad7ec0f6c6415faa870b86dadfde6690dd9f00edf650dc75b436f28d23b57a2d4843dcda2d9e70b1155d7e445f93788308c3e6b90bfd3b3c6ee8adf6eb06e2505bc91a476baaf65bccf860921eddd14b7457efa2ae9bdcf7e655ff35e515f6627f0eb1279bb0ed74dd266c4b97986480be7c09dce8402e70e9d8709f537cb6e7911ddcaf969c438c55623b89b0387d8303a595bc577a703b4201253367762bdc7a8d14e60784e5bf04ac62f5cba8327c781122427a83800c9b342792ad6e93bdca2491720894dde616a9a9674e771439b8704ea57d70e9095e05a03f3155c3007b1ae0467b7c7bcfd67a5dc679c8f6ba53b44c110560359c65ef6425f667b5ebf967497119fc3b0bd0600c93fa269f349bec1397c4b23bd851a0824b80b664070622860aeb98f2b2c9349c8e0cc824f5b0386348a77857c277496cf10046dfd59765dc9d00b013c3002060737e668cb6440aaed4f3220f789826b579359a3338b91f6584b27dfa7324f61859370795568de4cb39c4b1b015fb693f42c09e981c7c5658d1cab448a947f3a0caa999625131c9118258ab7635d78caeb86ac5c100b30a57216f586901d1863e27262ebc2e3ffc09ac4b6ae45c968fa81aac089a04e7393409799e853499888dcdb29690c12a7e512891421f111a2189cabc1d00a2fb9878c0057144bcca25c9a3f1a2c3b92c61261a3557177628a252347355bee55dcec7be730639fac28e0536c0636bbadbe97674d83b6c209442b34e37d9a43d508e849b3c21369149a7270e56646d984effa143c87777083bc54270b146291d8b4cbafc6ab7e72a871469abf3018ecdbc0753b94ba98140e4956c80913efffb22ad687921560055f466b1744e9bc851e12648899b7665a18a71130c1e4a47c26cc8f1a4972512186fb89a740cbebc6553ac3c088b01b21bd9c47cd5578cc58fc4697a0c756e7f860f91086aefb4cd02d184d294acf1f2872191851f585d96d3b98a755bdce648e8d7ab5e8bbbe8ba0b752973fab007e5390bcb6ab750f8aab5c907042ab8f49acdc47271d6b2a2ee148f13518243809fb5651f6da4379225bd864597aa65343b21b8f8753ab2994d981961cea24b7f780643b5674520b7fd11793b1a4ff110aac7516c1861ad54296b917c72e281692797af7a594e50c35d958436816036d13348f81851bc5332f6e1b55aa575af0c0035432b10abc89ca5cf19170d9537c413d1c7674992467323ded94c4c6b694558cd3ed45447bc5fd3979a68427916a9297904b02d48918d914ad9e88c99b5c28a6ac037248be9d3054adcb0f3746acc2c0a6711cbb1401c6d08d07a947d3bc35eb7b477ce19068fcc744772a126f98789d349fb7c58d9c91cb1ec4830ca54e2e44dcd27b45c48ae07e84c045487b2252178075cda577b26704803a94f9b07acc6e815a75696fc927c1cac2c5be290855247a4546288a383c15b05714c1eef845e9bd70ef5d3284d5800df8ab0a6522372893618d6a28a922152b1adc2e93f60813025d2b15667947788b93ddc34f05374c9997a0ab8b72023ce47a50c86ba00c86a37e33b7516437a23d37d6dab5197a88e823a5129d656af31b755a89c4df21b520b3cbda5581200c9695b497ac2b0f582a42ba28b537a7024d30c127907bcc1667547b79ae655b4143723dca5ec494d851b3e3eb763f4809cb045ca69407627cb49aa59099b050c26151b4d89cc55e762c1e358f1679b7f30a8cdc531b80580beb1b8495487d2d0ac3a9a240ac1acc457b53f6aa6a580b79d9cb953240e9bf90e54644253dbc79b2b3028e26ac8641042f7715d97190e64ca4e13624530a882bc53b2c724f68511021641ce277d0ae32d329b9ff554502ce25a294a3829c770e9565512d52f08211b7fa583ca675491533d14813ddbb96ba4f05fd9b95cca052b7cf098000882be1c2ad9865e4b9b0834189f91d5444791a561ec7baae5c82b09893a900920d6bf6df1391cf1a2506acb25d79f6d441a17bc5eb4d133f5059ae52565014939aaf208882631a531582b486bbd72850a0724dd52a225c40fa2a33f312c16a426a3162993cb7370d23c300e2a5d2a70102e9aaee23b715c11860386c4be5080283a4727954f2c5197e6125bc2c28757a63d46c0b322299e5f483edb10caef28c44cdcca5a9bc9505199e7da28286815757a63ff83c7149bc0152a674404b3c2c06949950f7b073f537728514b20c676c53176002a8c7af2865ebcfa57f1226fada60eeae67fa5417ea4b863d82c3871c4269974bb76e3338328c00530122e38c138e42df370cb51830980f9a6b4829af71a7149a28379a251530306d0719d0d6794f89750ce06c27a913832a9595b9a9c1728bbdc4515cf1afe1dcac211a3135eeecae628aac9538ef2fa7dac989ebf18207def1330f4828e22a13ca5031217a3d8e6f8ed708a7026e1a96d8ebc4fd2f54b5051eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 +ciphertext: fa50afdd558e08fa0991d99c7420f9788265d682145abdf4d579799783c509f63c6bb3bd9fff32fdcd0aa4528f7461154bb30fd2bf34d5af56d3e097e64330db512bd8fa8912cb54e2af9998e625270a63feb2483b0bcce294384e0d213360db0b6f9968c61f23fec7e417795bff16d8ffd89ea6a4f08f9c9eb49f95094b1219c1388efa157a885c12ad226d93d2e1df960b113e43f8c95e478f30d65a59ff9e6dd70fbb5cbbc523c5070557c7d268201c974ff1b28ba585e95b8e6bef88fa0319c99d8d18bc5f1363eb26fa36aa0619ba7a73d023acff3dabb02358e16f271f5d5034b15480b15d8e108bd2ce74b3e6cae83d683fd5ab321f30eba9aa098a28523f2d91defa57ad07d2fe89330b4ba2f95b7823fbf6c920c38f001cbef83d27330a0d646cf8705b3a3b44ccdcf7d16af8b0e227fbb8fee4cae2ca5a69acfb01a5ada1ebff06b58199e4efd713bd915be7cc1216c7510fd6f1400c46e6805b8c812090e47828fdc0565b1a4b1be10101722d788658669998ee3fe6b019c84cb8620ec0678c03e44bd67218312924355e61bb71b7398970cdbb0017da227b68f7c2861f19edc80a8c4f6fd2f6770f3049ad7982ca5ff8920c934d6ba6bfc5114d44517b9d49ae2e21b4545ac386dab5018a04d32e11df835e6d13ba7904fa269049b5b54db5e47b9db426b6b0bbe7a1109c3c968d3d1810c94154e3ba163f3865039e43f74b925ad9e3a847da0bc21d8ddb3e928e5107b68fc0b317a33777315f0ba2b00c202ce78797fd7f95d3712e70bf742c9e8343a6d00f24c922f0179399d16f7cecc79ec8930c8c0226bc057633cbe5829880ea52513d7adb29d330819151c1ad81be030e4e0f48b732efdd315657ca4ddb8018b79ecd5e13bfbd1e1357bc33324cbb95052da6d7570de804646eefb932f39e3b694da67731c96531e9a080ac0ed2cea4dbef51372f4c2b4810cb95e157ceeb06dde752b4786d837af8e1dc2741f0816be444bffd29943c535a15bf38a33375a5ba97636dea4c93883fe772a0c459aee9fd452e115278feccf1b07887143c5c6d5d22a4fda4563b178b795a3d686b2bccc04455fbae584f9d0ab687e6cdc32c849e8b7bd0826d9ad7fa94f95a788c5900e9af7c6d9d36763d76841e186434cab559f8347c6b5ae3a12f995df15be97d8e7dc52c1c0e51677c0aea08ce2cfd8e3b14c970fb1e0e48c139c41aaac31796ae220a19c2e7ce341c2d2ee6555988ca1996834197bee7132221e2864404c662df7e1c942b516c7339ddd143e48899b5b3bba4975d049816978e9fcdf84f76f46482fec4444cb65c97946c8eafbca4ac386fca82879e3ce2d3592bf18357b98335cd411b9bb60a26ccabc081726610d9d30bf03cf95b9976672cc61cf34930acf1725fc4ea57e503c42d2bd4aa110e5a636c34d5a26e2cbb91ec68ccb10bed5f16a685dda63083a786f2ed583873a7983739f19824772e1ef8a95fdd9b30cf4fd92c33abefede7d5c7ab5bc723c800696a6067958b3f33eb785ea33fb7ef1c1c79cb69b1d78d34d29a4f2e938140c306b3061d9d6b342560cae88a0579136f7322e9cfa01c57c7895637afcbe3509c57277a5035790085bfa881a78ee06f34e9d7ab771d1337b4d5804f09caa90f61c1bb0fba34b353592fe1763786db69ac381483b48088c2a29fa7144b81948a9128bd569a35e83871af70dace9bca084e6933c350703ab4be1047f6a583a509a8b6b42279b416fd74564b8143498a639d4ba9e3ab0a7d0ccdfc4066b3986aa18d0cafac9a6bdbd49762e351d7fbf5f75eae5a4f8e9a68d1ee21d1694c3a9011f9baefab8dd4479a0e76ddacf3adee7d9764c0078b0b1d720be9a0462c96046a6096cb00877afb8a360f221d25ed5dc148925be426f2bcc99dcd9a6cee6ff4f5db923d0ebcd312957be9d9d1c3ac7073b15316d46b8490cc131ab6bf7e32109af1f33edc9eeb14a124f9179e34a1e8ccf8805263d57cba6212895a3f89212c3ae2dca1616de55c3978cc0e550a06cb0f257205f99447aca459405e0e5b1575f48d589a90651cec6d9e36bf0374ecc6825947945d11c3c770ed4e950d7ffb789f9630286335276b6187775eb92c8b2b009d98fe4bf744c4b24b6dcc920101f4a4e190ec599535b3e0ae28b7169e2ac190b27ba5823103a61fd403776c0c9f9739454e9b6ec20dc26cef817f1780 +result: fail +shared_secret: + +# Private key not reduced +private_key: e747a3e56b5da1fcdb2859be85084ecfc6d144b5ad600a4bd503efe866b72ceee0f72ee6541f4f695b75dbca4a5aea5c18cf37d3e5748d94f8300afd87454960bb6652f5b0108332f04df4a2346e5c9ab71d4466331cf761f7cbfa29bfbc5e931a7db3a3aee79b1e39a1ef3e46c6fdac796eaad3fb4225c7bba9638fd4f8d3d4b691f5f63c3c586d8abb56b3e3bdc69dff3f3bfa237f28bd46967cd7491f8ea32c9f0b44d15e6c3bc8578dee1465f63c92e3ee97e5efab2a76a9a41bb57b97903808472255b2f98bb24fdb4e8657ca5fddcdd176931c934b33ccd8f97646f6e7ab9ac565b8cd4f27eefc452f8e378f4838c84b2e0bdc5dc6e26b1b546155f1c55455aebfd02203b12954652c84b3ed36e63c7dc8cd5c76986d75c03f3d1f7984e2ccba310af7fbf8fa61895504abb81d76dda8943bf7cf9f16c7fe59965813dcf18a8635390d44d40bcbcc7f8d9c37c375a975e619524e5ce0d7a73fd8d4d0694ac396b384699bae099cd7ba1483c834aeb40ef32d753758f34590afb579f3a157dda27554a27c9e92ea97fad9a83d138aeef1f3445458761348ab704da0b92fef25f56fd9e7cb583e8169768b46e7ec7d4e914de73838fc4adbeacf5f7778adc5cef5764f41b8b5b1eeaaaa594eae08b84f2bffa8caa94eb46e2468b09093ff9afcb4b543a61a5b572eefb79967c03d97cdfb6cdcde5e66de2fef8e1552780667377783c8ee4f23bcfa4f2a3de89735caed95dafbc72fa8351c05f13b7c9e96ebff5926320d8aba5a2750ec76684073e9871ed1d86b92d40bd1f0fc75d8e3b344573d70449fa2fba847d399eea8f540ba92a8149c24d4e1d5ae3154ca92ab5a8a2cef942d45370a1a56e3ab715dcb7864b9956f2aceeec963d34cc3ea33cc9af7d0b59cd9541eeadcad8c115574a377a71bfcd17c79c12ca7a9362c6e4049edbf3ac98746f569dc34d21ad7b043d6cf7577cea4d78f0ef3207bc05e55a0d1d6368ef85874caf1a019d825d7f0467a891f2ed6a5dff9456d86bd7e937904b53488de41bd7d36175c81d8f87dac48fe7fc37946b98a9ca8155ded1dcb5a243cad534d543234c00dce46b9ebbcc0dc57f5f963255366e54f4cc595a1f8ffb9a0667930ed835e97390c97a43b5fc39676af8cef393cb8fd64039e6ae6a6ffd5b5839e5b23ebef308ceb18d9d086263a9ea5a87d5470b1584c10ff72e6cc3e1c3b59b895b048db369bca70a4eff26348322636fa7f15b96ec3e6dd7fe78b5faf191da7fd35767a2fec78083acb8ca1f0f6c395acf35ee9d1e32366364d87162c3c878f8c7b6b86892fdeba05e0560ee2950ba79093a3c30f9deeada007b73241e3d024d897bb66a0653386bdb344d10c90e53f49d10ad948fdca918a414484656d5cdc246350be57f2b43343a2f3e0ec985476fb754ca3f56a93f1d9369fc63e495b263a441cedb25b975d0a74d6b6cae1686a63b64a20edc51433ce5b886c34d9a44afc76143f45b40fa2784d3ebd46889e4b845866e5d658fa4b0b5d528790e40538d57ef646a690f0e7a451fcaff648583fc7d25fbfd3864dacaddfb30429a550c980257e88cea490e535ffdd0481d0b9837ce69e03d4798cdbcb25867b9e794ddc945d96489625bae6ae4e50a925aacd254a6af3d986aad1829ec9e6f9411a6b375bcc9cf829f5c57b99bec9f921ab932aa87c3e68c50017df5568757b2b8e86035f717b88b3735ae76fadd2334184e6cbd2bbd26b8a9d420effb42fafc154a0b21330ca5ea4bf5c54959a515896adeeb73c42d94218d4621addece056bf78fb88902ba686b440c20f6bfda645571da1fb0d8d45cf8bf22796204850f1fef41098e6e39b3c55c7ccee889effe88588bda12a6cdb2b4de52e98c612c6eb96cdca8fb3b203dc850ffc7f876f75c7c851b67333f2c37a6b5b999b686fd6ec67ba67c9b1aede95f84a5e9a826e16e723afd6d94b98927c418cea516604444978c24dbbe9f0c63536076e9a0841873338767b3d935cb527cd4c2ac5d15fbaaee2b5f3cc07e64353b5282c7d9af78f55a73857ac5a71ad3a584a8f1b0bb762f9c7265b40404888527de6f78d8bb3b3b7d0553e2877726ea63312f3afd494b5c1c6dfc4b6bb6c8a68fddea6cfbb9266bedfa4c4bb76b8b47d0bb34f99b612a595aab9edde62c02cbc473601b03f5547f1b4a8078aa079c4cf39c56f88925a9383b9a0f57b58741760c58d2629c5d70074df007e715a3f9344755ba908a4a310de73150a79a9ee3957a730687f4b2e7df025c1d699c254af6642bfab84809ea9a3b35410c7688b296a3da82c6cf6790b48fa3f66f5b651912e7939ab76b0935f49c1e0a25422365974698c9532ad00120bd2ab10a8d1a78ecb392e6892624a3f96b2758a423246d67933eabe6ba2bc019a031431338ab546b3154a80945a9b31bb5f9c4071a4b0ac4b1b85b3a11ae1371db39771259936a27ebec742e7d6282f19c4b6ec1a70085ec6cc23186c8a29f4c3a1d3ade8912e3e238f024cbd30e61b1ff2312c91a2eef9cdab68446bcb64ae505c32f0ca5d02547c3b2343962df8d384bac81d15fa3bd2a116b4d9aba31041428ab688f950809c94404b5c35f303d9852a0f029e609126110b64e310c81d634117e3b3e1994ee2a2799600aa38966e00aa9450f24657a39b4901764c3a267f2018363950256a69d5b0240f368bfb238fc3abae22dc2f3fa6c9e7f055a8712cec654adc039c49aa1d303158e05b0ee4f1ccc0e07cae74047b603671b9704e70646cdc0b1d1423bf3c4fca6612360269a26b9731524a2117a2b686131708470ab6c1ecec857465cfdcaa5b1506abdcb6a5e379bb4e358462f802c2a81b26d0091a9a281a891c06737fda60afd65ab7c7bc4d97667220ea69896a46f20200b0333546713d9e685d8230487bc39b68b170105231839417fa92aca1cc38246b3d0da638aa28c907c823a1fc779b7626a1146645db0582e23115c64ca6468bc21a480385b27fcc28c0e6b8430a270c5061012a619da7138ca97da7832807aa4f338a3983170b62145f36a35241d21c13c61a1044b5bbd2232f5c16f106ad476818f83920f650a87dd80c3213680cc1572b0625391a92dd423e53dcc0ef58ca376b18a46b8ba4506878f38c88d814bba280575235b23107bae8c1f443a5e9c1058c904a09366b50e7b531451f8416342267352fcc7fb21c05bad69bac0967778c0c2d48a60980ab5b7901b84b54f1a53b6bb09b37d48dea04838193657cc7b47b436d4dd36cf9bb4bcc552700f98a88a850dc009b00bc41c9f552e5b346416024065634f4d768cf49bba831758af42e408668aa712f93f43658c48b80a72bfecc0258ac6fb10c51ba665e8f25537116ae53336a8f3a0d2101b705642c5891b4500ac61d023398b35a21e37ec6c9821eb46c348c594590941fa0cb5d88ad32c3165cbc3569e15960dab8f53c16d02320b7c8394971c14c5633ac5023d572608c60a726d50b22dc3696e7c352fa6faa0c8e73127ece085562bb8a86ab6628149292a750588aa90d268f5fa618b559a4f8468218985db9f4cdc1f65b4644cf585a1a8057431985058476cfda6ca0dedb2fd77917fda88d799709c169c01e90c5528a9ffa144636334d8cb3a1cb27b81df55c9205aa1cb43f04ec29beb19539992846db361de4bea0a7b045749609571639933e6c105221782033885385c5036153ab3ee68156f0abcebcc67c9163fd09cf2a50910c8a5e50ebbaecc030ff38b041c3513da677f78b253d7c5d9bec993f85aab56a21502b1ee66922ce9995eb83376ed309b1f66c9e9b46436399364496a51851d48ca06e342fd40a6c64748d6db5a9bf18893d65a9fc3b227401c9410888287100482438e604cbac435abe040598f5cb7f07aecc23b6b38a95f9cc8ebbcb4f5cfb17a8443f89ea8eb592456da09fe9a36bb31a98e9e5372d4bc83f9a7509da4ad87036581b27844b79a9753bad9a476ef64661ca2a5e49797fe161159aca36f017d947b66d87833383c9eb593313054e00867a81e0aa6b1a8493a082305a387f8c50024a9f682c69ca0aa180eb8dcdbaac44f4a3fa830bb056352095c2b8b65eef62775a470638c252f40c8137d05cad7c9508c3c34a6b29e6c6431b34882a3526ced7143da2bb9733c2ef816e28d3a1372b418ca595ba593b18789b7c6a411e27acec3b4246e8659a2330c628436d21722536858548a280588cadab316411b5edebb50ddaae15c32ecd74af476b3d4d834c1047376001cecac303f5c1bf7afc7b63e8372c97a8fb68837064294527799a8874684a81f6145ad7ebac7a5cbccb696472ca98fd95b9ba4db7d8729965aeb56b8ee101d0b32b6b80a772fa80e70598b17e84fa2a35c723556eb2782c7cf77ee75f8928f8038ee66db41346741fbd6aa1daf2b43fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d +ciphertext: d2f9087631c7583df5f541588ac0a0696e83c45765f3eca327740dbde9197ba2ca9d072aa0089db2f79746b0535fc8a77bcae1500e3fedfc3d911d97c8ec22fbc1f61a5bd6305d736d68061072982438c4f673ea82023e56b42e1385ebe4e85d5296e28ae0352d5546cecc6f29cf4e25368a6a794f6b0b33fb1c568dab46ca7a1353228ab01184be7c0fc603f5460fc1cec63c240dc96ed5e346ca6ad214b00c9e0679619ac924254f5e75c8f96a8f8d6228d3910a662c24003960011e93360c27179f826393cea762a09549950cdba847ab8f676530d832dc16d4e479c4207ad6f9de68a0d4decf15d46d98da375b5730a6a8322a1126b6ecd8d42772b76318708a9366b8da5c7eee8fa928ba2e9959a1889f4eb63cc5b4c1dbc06c728ee16e93b8276ba862e5ec1b8cae91582bb1c90893e96871689edd35c1cb12ae33c55a69d4c5e5bb6d553980e0ed3c131d2d87b52cc3fd176b92425bf6a90fe5f5cb88fe69bf5dcf827bfc20b3c6a4145d400e4ea80e9b519df58fc3eeb0e9579d147505c5eaeca51f0894f5f1050c07d53bb715671799c13486b8ae5d26216306a974b4efd27d8f7b534dfe1e25831cf74693f7469c64d09f63432a1b369a1b122b1f4c0020b30c1bc781f5824aa91a4d70db70b8f121e3615faaeb7ace2b53de58a56fb44cc47e5b70172d0849957f5a1ba90aba44504249a5f8fbd9af379f0cd256a8dbd728131cb2b09274bfa9d7c67275fc502c531a02879eb7715b00f2bb794c2cb357917ab53f6e6a85648056904641ade5a0f88c2fd00f4933c34e9edaf34050f97863c36466741a5ca0dd7d9425278a1079bc9351cc6c45a1e80d3953fa60c502da6533188fe91057feb940fc926feabeefce97441becde7782f365610e1565b6a5660d22d34298df8bb679442bb821941743ad5e8390789f3c262c6f90b4685a0b7381762a9aa21142e7fe80735832918330967fa9949e44c30eb06eaa729a108116f533d72c3d20eac2f1e8fcf5c39e86d7b453894ef01681f0b46aff3ebad2927d3af51476543afde23040abbfc167cd5a9c1bcd980f2d2c8fb09bb0b81f4c778a6fb4e114c874f6bf0a115ae64cdf82bd3aaaac90b004c407aae67371ac62d9235fefb47de6488627e3c997fa0b5b76289d0166cfc4308a4b9bfc674ecf643ebaf66c2932a792a360ecf2bd4fbf4c675daa7df02eeb54e2a2f0a5979c33474832d509c94895c61a93873c4e699a130b1fe3dcce9603d56755b501440167b09b6acb9e115ef4133963cd702f9097f6ff44887bb0e230f80e97c41d1028f36e6344c7c1e4a19792b9c8cf838bbefd4fbca05e1edce7eb9bc9188d89d784305b3ef71a3e097a7ca675a775656fbe3f2219941a0a70a777260645fc2198536b585d8ab161084f78fcfe04dae0e1816f0bad71581eee3d663536680b1aadb31a6711832a7d3547d97e7e1fc9bdea77acb15d7d82bacff5769da9e7ab730c8db6db6a9b51e2c419756159ba73b6a4ccaa8cab4f86e483237f8c6ba850155d5e0894f9f3105bd11a33ba4c07338bb03e67d59dfac122dceedb28d349aa26c61cf95ed6ff2f7056b5af9947f563fd016d046c9c2e9497f665702643d42f5a277e3e4b8f905db9ed6caada50941473e3caa26f70a9b68284c09159380e02b64d7a4da9070ea4b91514041a18036e7284407456bbd8a5718a9125828183dcc65fb0807d2a53eff3e8b010ddaf62e0496b23fc21ca0996a0a625839793774a3c5e0597e00fb4cfc6fbca08d94e809969710d091a45156c1b883935c94b1c8c514fb8fbf6d0dbc00fc4038d05f92362e5ce0080353c61b65f201f079ab708d86feb9f6e25e0289abcf52ede8e241daacd90a6669c17d1f1e257569a4832cfdb2917a64619e95a8e6682e83ce07b01dbe1e261ba31115e05b2405809e123215ea11c067f059c10851cdb00fbe8ae6c9508ea8dd9df624eba5eff018880dcef0171ddaf375724028fcb2b92a8aa1d6418162fe994d1b7b2bfadb2c9d72529ef51711745fdd43da7675ee19ac6b6b2833c69fbb7dc00c4572bde53014877cb5aed967a7f9477417a396f77302330ef0423937e5d4893d06662e2237e5952911627aacac06f37eb7d38239d2623235efb3df0a1d630de19afa599b66f41db7381acae5664deb979604274253b7ee8fd840e2a324e3db89a711ebdb5799c4c31f45482c5a7 +result: fail +shared_secret: + +# Private key not reduced +private_key: c35b3d0a5e4951ecf32b4bf61cc77a4b23b033a57012277498f66299f98b2e58a618cc8b68caf1d1f86cee4b72227eeb8e0d3010c870a4f8510198a7f496f79a168ac82aa70744cdf876fce35b65ac836895255089ca97e4c6ec1b5fb7b6dcf4b434b25bf5e815dd9b441fa1150931d627685917b8535bc52afceeae1338bcb6c087bc419d3a30f625812bd73fd3e3c798e6ebe67b30d0d34e34434878f53102437db096cdeff6c79a9f337f2ef2902c803e58c56d0878c5e891fe47441f95390fab44d716978a0c4af218863ba783a8c7b5b9f74ae77e6850af84e1399e3ca469acf757f6dc3b6306a2b35ed05214554a7430dd976470cf6f4b45ceb9ee3fe47bcd2a2bdea558caed29be60baa18048d8e58dfeb6f46d93dec36c5aa8a0ef7346c56d17c5fca4394ea573d2265e922923b6c5d364781dfd92a88041399f33b9d2a039f56328fa48145bb389ee0eb45708b4e32fb768850c83ca5e7d26be954939c8584eecc95ae68756aef37f764cf63cca1bea95ac4bde2cfc531769ce89419edbab9614c620583af07f5eefda51bc16b51a3f41b996d73764c4503b7b497a9d77587443b5fff488d3bc4d43295fa1e4f6a7f10bdb473d4da84a85523bba9aed6b304583bbbdbaacdc98db48643a9e6bd3eb4fa77d6c8f26682e7f8be9b8ffb96c6f83aec7414c5fe645b833ab30b515a446e54e5389a972e6f22bee4209d9634af7bce363a0dc4ff2378968eb589f9ccfa5032c37af18a9dd8ff11b5858585e47aeca713d2e6dd4c748696ea16d9a56305c812564d3be295de819b8eff7da1abef01e7740240aa2a18e739946606f7786a6a745b79f9e70f552b8af8f49a9dc83fee4360b63cf739712dc647fe8a03b9a8ec6afb4f8d3d10cf7eca964a1a89c61729c3c18bcb8891bc2f98dc9314ea5ffb9600e184df7ad7ba52838123ace350de199d5507e88f0acefbb4f9b67012a4419934d13db839d36aa6de939feecae90cc35965e64d9d9c8a078909d4cb22016854c37f9634bff2899302f356522fd427cdc7907b4529155c87177914906d7ba29aa0d9586ee05baa1c78d12b9807ca995d49ef2c43b9672be6fd03436fa97e43805c71c4656c29b8da8c3f93b44be0a0bb873647f7ab9f562e470647fe10388c9f15962cb2499541f8a53f3d9999e8ad547dff42d81f4053d13f741d036c36fa47e8a97b15c647272b5fad956f0c4ba7adfedf59333d67f8b5612fcbe0aaba35d6999339cbff36dfea693b44606f7fa05b5f3c9dc746fa38d0a710b3fa1e696e4b1d6346928fbaba57bed2a462e879b7a27fbde9ca930d85b393a797e339d4116c3bdaecfcb26f05ad5c0e68488a21fc34c66b4d617b856ac8c66aaa98ca458ed5fe9a747930f3394c56f3a7e5dfb567d69ab5f4eedada6f65a82a2c95aa816723bafcdfa94e107bd336b6e3420994580b94b336ea15799cde04ca3a758884be349567f5828ce5433ee94f624921c674ed10877cc5d78d2bf9a52694fad7fcc2aa435549cc3434f906fdecc12f5f3d6fadce55cb8a0acf2cf68da76a8909d3c3cd749bbdae9c0601e7114f4b5ad58533e5edf8c3de0fb9cf5fc1acd38c69dbb5d803b3d662159e4cf9a8ab056a479afe97dd5d78317f764a69d8b988798aaae3f2ceb2a268312bcaffe2539414ee033c64d21ceaeb61ed29f873a6afbed249945a99781975ebbc86b96cb0537e7f8dc0e48fdfa3f606bd58ca4efec0143fcc66cec00c3ec34588d1c1dcc177bfffbbbaf2fa95545f5ef0d7445cd0e7c4e3e78fd38c9d96ef3040a702003af65b749050f87548f5c7f7c6843b3bfc91fd535fb68892f7f6b03fad62d3eaf8b8a399d716e563578e795ed566d44bd71859be336165544ec566acb361a8b8564796b8934c8ce253c409677c2d456923d6301a58da9cafd06fdc847684e960590f1a5c60217c5ac9d5cc8a95e9cdf63029dfba9257370b73e63d647f02cca6d58907eae759cd5c20f7a8762e56c1e09b95c1b99f2bcab69a3ef03b7d7bbad580a896c022a53c3c846e5dd551f6afd6f6b4d22ba779c0e7fb36546440f92da5dc10ef4f862c749bda5e04f133253be5771db7d3ff4a7cd4ed0379d365014eb416d9d6aace6e40ba12e6c390a388b95a5db1df9facc7e396e5adfb799dbd8eef3d81da5d0c53790651f609447f0b18434e5b31f2b2a3d1233205c11e5841daccc2017203be9c26db2ea7de30a6671f79c1c424052a784e727c36a3b9dd1d71ba80a542dd42b17c85eebd81406dc394ec556acb00932fa9a8ae610646a973de42f9fe29c92b35c04884be2a5bd3f68b2083945f8ec525d651877d924482b024847938eaac5690cb33f0a878927bdb4a84ad627092f046a2968437bf9a675d91e25e89a3f246b38461f002c3d78206539968d9b7a83745869ea8accb72ab1dab78ff0183c2ffa338c819dcfc1178ad8b928c68abc98209819ad705a3fc264bde3047fd2065c3e1806a9318d75a39c6e4541dfb86433bbaabd12762f521c842a2381dc78fb312b1a6a318c5201bed68ae518be985746b863ccec279836d6810178c54902619301467bc986a735a9e93678b1f433bcb7af36da821dec7546a4957e413d30a4b1d75ba216da71af7a7b17a932c224bfda459681893ec103a4b56c10805a24543741ed0b1f5bf84daa018f94c07434758d32d80a3d8c6b54774da822451b12aa086782f9c0622c2b8ac9776639084a19a509124b5de6d77a83bb6e123b8eb1019a2b203f87896f23018568da081df72e460a1d8a2815794966aac55fa07cb7007ac3743a0f2ed5b6f377286a7c2aa4b9655237b3f1635dc25527357bc4714c3a47285c9ae3a5a84886c7302d22ba2d3c15580be7b1627c81fa1b0942e85a3a075845e47dc0674f4ec2c1ed9ca031ac1cd934a01c022d26b6ce5c038fbd541dcd4ab4a9bc17c06842d7645935b57587559c11b99af337bc629a45ec37a3a20b1fe905510971b6e0926126e815625c5d79f677ebfc69b1489809172f34e075c29a6e9fb4b536f892b16c7aa97623168823d5b1afb439cd2603c9758904b942971d769826b169936ac108c6caedb98982098d5176c71cbcb11b22b96143433f6c083bf83f6005c5c8b93562e081c940903ae662a8f17fd0882fcb399161d2a2bd2b8d1af0731b0303e3c9beec81c5473384b7a04c1c841f60e27eca0977eab4c750930a2bcb3983daa99cd4c2e2414ab8f77857432036c1a9a65c493afc62ef80758830417375c697a2a7fd0782ac011014733e51f088bf32b7135b5db727b147936740e320c603365e280cbab502b64412abdc4d25fb9a96ccc96f166445f6a6c3a894a6c10ac7bc074fe7b5a1d2964ef0531e7bc445e0a402f45b0f29809a84795848812a1b935d220670c2cd0e3332abc68f57b98f24cb9e68f8b1663b4c793ac4212177f11c594671550e44794f84705fa4835d918b317a1d5aa39e65026d3888aaf40cc247023b74cc4e00fb1c011c6a266560949c626e08263891608713c12e75a229c5bc114bada81395b00a5b6e695096b2790e85c954028c5b288758c9ad634a3ae11b069790bff9428b425ab70c5c46c2150346235814e7af8576af3071c6e6d4b56b61412d7a5cabe21cdbd0aa69e53d4d223d72e4c77afb927958245cd57967428d9f6c81cc604fadb43dd56c8148664942e2085395b17a1c53646287fa14a9bb208aedb1a7e6f73828f0aaa5918a69c211bd765cc0f93615a57609b5aa91c502b851c4a9b24335d282348ba33a802170524ee3351b6c780a3a9b46cf472fbab34be9f508c32a64bc37b6e6b30f37a7a9f200c34811c2b8553ec3ec091091bb08ab02ca7680867244fd3c991508902e84bb5e177f7251057c38784c0905cbe7041f12bdb77c07842228ab569fb69700f9b3a058dc5791b600dc48855fb1cb938b2e2599c1f3411628b64094ac20eb6c50f5f5cfdfcc10471346de9429dd29953e7b139e2a46f04127d7225fd46723dfe19522a4a76389bfe6414450b885cb211ae680b59ef46177d50b0b3306820a9d57293ae6753e65097f8de97c898c465b07b6e89459f446a59c04145f2c30dee57368e0479468ae96bb2e8b0332bb7535104498ffabb2abd65a6b8a2358d467eb8376a795aab40108ed9b0967a710083acb476c28a01b46e68a3d64b12dbb49146df48f31e1531cfc3295e4cda083af7b3a17617286f60b5ca9d21858508f8f009878916473c85360e8cf6ae8360c80aad7a10f6cb7a707063ea9b2ac097155e6961388f87327d084baea61d5ba26e1d5bd9cc25ffdd46a24d81c40532697b4cc8f58643d41afb6d29b7c857837a1e385a9106e3bd9911c697c8709312db4ee1d9b023e39fb4a92d9d95ff01560d717ee34e223ead8139db400078cb308c3e1bceb046cd9d53f1a2abdf8f924d7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d +ciphertext: 8e1b874c5239db036b813ba1154ca84f8219a8a4bb785dc48912a04e5d60175821c3f7609567bd3a11ae75bf88025cf960768bec53b0350531fdce65e204065e23b58cd995efa449db59eae436e84b4e7cc80dc78cd4ef12bae5c5522c7e7e8a977270b9868acdf57df9f67128e5f26179e11451a81c45778fccbdca9e5894cace05e2e512b07270e97dc7258fdbf8b0f2d532683cf0578bf0821e5c96654d9b166c4aeff1899cac0d9a898cabfcd572892b151b48da4cea71222fbae06269d2ef9e564670ac80965b71e7263a0a14ce5a1411e29c043668bdb93af3b9d4c2f86a917118ce0b147c5c99562463cf9d907623b3b5c09bab327879c8e17bdc16f6a559aa855c5dc90adedb3ad4b642d8a84250ffb2a70a861c6ce71b24f8c6ec9199c060531e365f6bded0dce14f5a42a572f3b49a9f9696ac3da5a842640edfcef5cbccc85b3563107957183e1004443de9e416500e4254e3ca7ded5535c437b098c34f3e10a568b12f30f8d0ade71b9e2e666393e61fe757da50b9c3d2a7682ef24cd9aa296e1e92267d9d1fd686b11507b984f4f05d218d98bdd7bbf67ccd84bb4def89865a3cad879785c449c517e29699b0f3d09737558dd4ed27a41d065f88b7a07569d28616664bc6923ff77337ad3107efef86ec513b991fb5d9a58044bff3412cba0723a83fb30c465f9cf4a4c733be247281cc56e8ed00ef84cae631b2bbcf647227002cf7c7a400d465d467188c3402d7b9afb67c7fa7b2a1ecae21ec56124392be4f33df423bc6a29d1bb8641f230e5078d5642be440923fc761bdf2835fa99f505f2d9f3ddd90187ff278c2f55792c5ac147785a5420a72fe9b55bd7a69ebe877954807abe351f950de6b5766a516e5cdc0668513440c695b3e0a0c9ce68ec0e036e3e7efcf65c8af343c03802ed7b84d940b796b79c08f8fdf86cb956fd9ad3f6336a39f814d7cd68971074a9045373462f1eb03c216d5431584a7b77e67cf73f30d4fcd66ff55141859fbb48be45de1400cc66505411f91faf600999dbcb50937486c0e71722d8aa11d1146cf2ed009c1888da11e14787ecb008aeb71e5c2827135c930788bd964082c147d39da28d15382aa86763db13c0d48257d8a9253dca4d1a1ceaf5cddafd9ca74653f833ad22663a5b158fa142bde1980f14800714ef5222d4d97542cbc0750bcd24d26dcebd66edd7daf309dff500cd2dc924f651d5deb9142e81434ac9a2ce80c8155d1975fc5dd2a1d9bde9e40a85bc77942b916d4cab359579cecbfe32cbcc639cb8f6840405a4e2003a6587a229811556ea15982d193d5b84777517e757acce84f30f957c019533da3eed6f51fc3dd69ceff6bab3ecf918dd29eb0f741284cc4d4a17bd111d6e2f964360e6cfe86a95c58e0d3b3ee14b11d15d9f1354c3f364430913cec29728ee2b8cf391d012a8a48064731e51ad86399788deea1138de74476fe3a8da432aa9ff654ab7e71a9b33fb08a9f7e8d703ea3e831f575c13bb0cc592bd6e387f1c960ab82b04b29f03b94f0daf0b56477517d47aecd0d08efe6e61f8823b0621cb83a578bdb6a9976593bc825991e887a59caea6003b11fe23ac1e540d2a67262807e65422fa8f5b47e5c8b452ef29ccd60ae85448daeb744b337bc20ee87511312c2cf4aaa76f0080e166ac4d0cb02f3456777166ff968efadf6fe78dcbd93c8ba8aea5bc0f14f65262acf72052fe8d23933e4847a9eae488ba2049478b09ed9dcbbfc9ede10454744b5ee95b6381a30d838bb9060a67636b7cb75c7394e02b1e58ea3736443ad43dd540f52212f686544481504224d8d50b1e009c5ecee23882c8090fa0c7f0ae1b9f507dfa76329f788b0080f6e985c7e02886487b9379d1229b0a6aa23304a056cb9f893cd89addd87bf0928f42d4ebbb2d90e82f17d88cb1ffd34c0e90d6126cd8a8b29e2e6454c212034342b204b6ed5d462c3402fcf96c3ab79d4db0fca0ca1adf6ee0407c701105ad9884f178b979fc55ea74cc0a176a7be6f1f90f675c4f687b44b2d6923a6f8e1de0f5e6f76c4516fc1ccedb1c4c9bc51c72979270cb972385191c83e8278a4c8279a36c528a91446d9fdb06fc26ee7023beae01adb417a11176839e74e6766745c2cb8cd0b74e8cf020cce2648949e729626c129bb204789542f74bd1defe1984d43c9b046604d223b4a10511248daa39bfb88028b +result: fail +shared_secret: + +# Private key not reduced +private_key: ad3cc5e96674741ff00dd35f1e8d35098364871dce0755f591948a1c6a9debda4190ddad79da318004aee89acdd62c689f88a5a87fef7ef3b1f16c5bfd6ce7438b98f029906c276ef23dfd1f65d4bed6f4406d8438047e6625c825c9d2cf3fe4125fe45378f98d0c33ef857a45c872aa73308feee2726847df0fd12acf730768abd1d4da8dca501fb6eccc737d8fa497091ab5ea63fbc83dbb9633becdf9d398a391b4f6df5a5a31a46d529b1486530b98742780c79cf762cd9e655334be04b71d8b9b04a7b7daa7ac4d2a98e2ba49a55cfe920e6be56f418e73fa4f0f3bc6f8e62419f7c747d3fefdae2a1f787626c55f56e4c93731c9c679984738c96b5cf64c7f3919cd4e2e7f44e668e9fbaee063d949f63ac78e37c94eab926587b26ec56e2e8e360d885c8fbce07668ca95909389f507eca4828ad03d26cd033f4e352388fc86e97ec546d69db00f646de107681ae3fc708561546bccaf04894968f1f8d43a437cee4d9ccd9cefa5b56f32dd37485328c3ade9bb08e53947fbe6afbc6ac2bfb96b496f1a0bf60277bdbb0b6186c6eb88c8e24039f880d9cb9a43352546a5e906d1055e53ba033c3148a5aa78afaabfb7c8b86e4de7da0516a8a3e746e83ca8b929e04015650da3a6f7ab9869eec8e34bd39c9f79e478db5c2a382799d49f953fc28764a15fff00e9cac3ec794de5ade0b432d294a9c06941a814ab0f89bf88f7e9d18e520c1e4c9d9fef772a7a3b3ae6edccff1417f4e7ece64938e2345d7187e4b87fae3803bb8e2364ee177cecdbf38ed2bff5fca3f716974829a6b8403db3f587804eb8720f2df278d5c7a2668f158ec42aece37896d4d60c9ed1498bdda86a974dbc0c8e37f3d7ba18edbba38e67ff1c5e3eb86b6eb5c018ac766e25e93b8b4f65acaa3a3ce91d646f98fe9b200ba58888daafcbff1c68fde05ed5767cb93fa984c5b6cb73dbd301e9e83513582af59e04d9c5869cc99ed83677d5a0f54d5d166a97cecadd6e0b8692cb6ebe23df780f5a24264bf695eb2b5fb41ef989b9f890cdccc3867c3ae19c723885dbfb1eae52dc573e87554b5dd88e78ff15f9be504bd5e2b53fc55ee758854f5d79eac806ca00136a080fca538d3dca8c935d98c87fe476fa6da16a5de148bf40c026745c894d7eaee97bc7b2d89df56806efee554d3b95f9029349076fefa09bf9b6c7c27c6867677e68b796b5249bb442783970e7c443469c540aa9598834bbc4bf8ec97a191e9b496a56c3fac7e36f7b76ccc51fe6dedf764f68fcd32bdb7a1b64f4be15329a54c5389ed206ce5ca2ea34a656fcb3647dc7a38591cef0a9de41d92ea20349631e7c48050eebf9ab9ad59e7a27ba99ba0ff87f3a8afc059bac0d72ea3e31a1936f87c8356e3859fd97a89e17affe27d6943d9eb5ef9a769ab2ab48659f635acb4ac987fd8f1b186bb6b7da50a6cd4d3dfa10ccff1d24ab4338b2d9765ca263ce01295537dc56bcb3e5db1c652e95ddfab5f2cee677d2775f888d37e6ce7da2e6c7fb296927c64ce9256f8895ed31ba9658f5bd7bad636dcfbafb1c34952ede7fb8683bdcb3acbaa7274351b14a81ba0bdb4f3fd8d4dfd4e85cd0921cdc085ed9a824f6416bb805465e429641bdadd6b56c75ba1c75c5ac4113f95bce7843344749e969ba280fadf19d32af8339660690387f547365cdf835a5bcf69d3c14505b5472475c97acd88ec1ca4d53ddb1291d86a5bb3bed1cb3996f38385391a0e59523b5a16756af4e15b58a07426b574ec18d893294a60e1e48dd4e8c141f673f89951ec94e1ebe49365b33006ecb2bc372773f77eb97c5c8884ca85fef681b90b259f75e73e918aa57a7ba65b4e6f0cbb591323dec9a3c5e070ac7708fe4e1678540ee6c6058a9232adf5cf6933acd463d39d457fa47d0d949bd7362b6cdc22378f6e434e354cfae7833c31dcbd3e743fdbf47da637a8885cab1badea864b98bef6c81a27c93cd3d6a27b37bf7a4e90a3cb6d55bc581df95af6d87d05775fd9df19829eac504d1c25b39102a54820b5ed12e46d6fe9586a8c66126c87ceffb0e9c7857c3426b57d768676be8f7b827bec1dc486c9ee64d79c33372e33ad498df367e96ca95637d8d66815dd22885549d1a98021d9a96398f1b8c62480fd4ddc4350cf730892b53037b4a13665dbe0a4aa46bcc40862f1e3621f2596ba293466f7499d9954eb6a6251483b350072ce7a4910f008166e62476e383f0151fe706c23999b71dd2471af759b99239ec05996a94b7a3943e37f10dbffa1ba205b2ed836aef025221ca53ac612d41339770d80b03f0220fd1580b786353c9bf15909242494253684c8e2b5a28216501e1b4f1820d6312cac1bc02c122bc0ed71350a05457f4c40a29584e20b70a8739f1e733483b7e7f8ab62b664c9672229980536d747f3199a064ccbd66e7be173641808a93231aca8a7b54dbd0c593ba85df11c54bc2894c6a797bc0557df513734c74f3641a6d2c98fcd8c1ed356c2e199c28088ef495a54fc1019b736f2fb8895eea391c67c895041f97805bfd2354ba1c3dd8e98467d302366a616d280bdb4747fb5a000bc5781bd8c1cf2b563db206e6e512248319d2122f5ee77802d88466a61f5006239c5001975b00dd634377705274629f16a92f13b37049698b12c39bb1c3579d693970736fd72c8d8654943e5868c53a51324abdc57b330ed30145e92ab82c91d975244288833ff3a2d9d92aa1f53d99b11d191c99e06434196318e04087d9aabd03d7ae1cd2887cb2197ec4b09f7699861193d8eb77da9c9e33749e4a0c5bab3bb64adc4436b7a6d84b9463c4887e4642d490052093399b2cb52a73b5904920a601c327e2937ac439fcf3b78ee830b4ecb795376dd263a3cec91c6a6b60e48001a0f739e217b5b3c4ab0a676131514bb62c9fa1801bc80b6c8c7ac70110b4860cbf221543f2aa61e0683bee500f98ba4fa93c2865a28ba4820aecc3a6c7b56081869c701b1bf741152c0ca0a753a211c3562ca26a15395a630a4a92729ed9a3092d23bea5433447139ac0518f75d11af6113b8368cc72891a5de08dd7689b2592256a8ccfa524a2344921a0e887627bcf7965a1875c1ea5c255c36978da7c4f184a1cbaf24a2df142ef80c07750b87269419721c48d8014f4ec8b4ee23d95ab1ed9f8b5ee9943669007d48ac1657454afd466e8765c877a54466171b649188a7c205bc3073791b832b6a752625809919db9258ef1b7a15d2c54c6c02f57fa65751438f4186a8b576d7c561d649a7a60d1928e013df7d69f4dd7035485107a7062bf3ca84a93a5a0197ea00b7522dc769ed45596bc5e712954e1eb37ffd69d63ea2ce5e33df8088545e3a738b864bb61b916d29e45ebb39d8a7a6fb3cb3901b9880ab0547107c9073b19258e4e290156f54ae3d44d19d8abc5fb334ad757c7e24986a26a31d458edd45c69b9b8d87b0622166e66c76afc49a23e1c1abbf357b7328781aa9a054b24aa2645d691639f141981c30a7203623d550c31e2bd4bb95b2e7b518b44512dfa6a5387afd6c7ce162a434a6b9ed937cd79222134310a2420934b357e72e009ea8413a9148698240aef2732836b5659566d21111331fa9bb0b762c948247cba816e313109270eebe826ed722322f9841f33a935209e0df273f4e2237a59b27cf85fb3773998a295a37714ba074d1093b0f096b2eb5133bb273e50e17de75b45300c0c862354344336fd028a4a631da22b285d4435082667ffc21fa01b79625c019e71cd0ad86032fbaa79326630692b9d02be55315543d83c0b84297945406c339699b1093e4b188511aec19b3c9069bdb8799a2e077af4308c401982e96819c7f17f6bca98054688c30a75dacb90ad342acaa9ba227a7f6784100428cda9d6890396cc19cb90a81153bed281cbcb1036113250206b59208d8c75839b76ab8425211961967396c696f05d913598259334c742915dd183f32c5a4e957013868634459f038340aa7761ecb628fbbb435ba642e21c538b907d8710413ac10d7f0a7965b03cb8c36d39336543193d0d768bceb00af79069e7c85b09114e77e6063aca18f27376beb9ac4a0b976ce745fa7972e9fa74d0055ef490cf40e11e6cd785510bc4bc1231d88abbc9b22fc1e2577608580e26635070702fea437f8a13f6fb37343b488c1c0b2560027bda77fc6a97222319b66a86528061f21019aa73674519420bfa26ac5616efd714cd46b7b7751922175a1dcb22831609eb40b4d16107c8438f33e203cdbb85be910b78a99d766499d4541b91567fd8c7a85d983080b91c9254ce3c2a9feddb8c8ba948f0986a90d02681341fac1cd19451956432b83b79d115d32a3d4f86f902f2f6b0c95ad7f4bd49566debcfc9a4f48f6f60ad57731445a7861bb9c371e4ee4407b35df5a730f36db2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 +ciphertext: 2c5bdd1856863d324e1ae5352968c7d4d39beb7f06ce366afa1a831eeafeec2bcb99cdaf79355b2eb34dfcbac2705f30a84ceec1c23d2c42418c888c7a76aecf36c2c924576a87fde0c4ee2754e39dd6813abcc06f24790fc34a9b80a6fcf712886f5600e0444e675b8787a9ac8b0871e00d2cdbdc031b95dffc25c3537b5a3718ffc8ee03944e46b30dd986ea6207eafab87fb4bd9890a230b26a777f62bd7bef4264c52ba5a38cbd7bd795ed352777aca856a195784f9d433ffa2549383bd60468a604c069370031f787b743e087bf0c544a1ce2be61f9d19a5f780c9c9d135ca083e6b315c693e214e5408685bcb24a17886751d1e0d5233df90d1cadb41165473b2b9e2778fd88ada34b0ea9ffb1c623090c221da8063569d8c2943a0938598486c6ae9d4e4c7cc2b0a505ff8e3a1fe057dd34419de75381cdb15d4e0ac372c92b2434b6970e5501792e632af78bcd3853a380719b7497f669f5bbc03aa2b04c624abd6f881630bd765283ebcf64d80e1500767d3d28666b407d41628c5aa47649705cd5672eac55fde509601ac6194edbac2a0a7519d01407c435391cd1518f11839a908f6276cd9252a6eb401c61cc1c2c3105736723d47390bdb74847aacb3bf7275c1c4a2383eae54d0bd38dbedba95a3dd32c1023129161164aa29049d3d898448f1bc6a64895e01271924e9d57dc804ba8ff7162f0f55b4a6f9a71fbac28f1b5cf5e269a3ae8dee58e7af29f4105a862db54325dca76509682f8ada8a427a902cb9c98f8a0fb6859142bba23007e9be5ec038b4bdca79bfdc0917b35506235348b7b1018f90e2ad5d5b3530ec9980d059b4dfa136f3dbfce5e3eda2caf6124c5db8f59dd2b505fcbf9b4a5037894a2461145468b52e7fbdeff9b1701ce67a14dec2d9df763f56be36e5d8ab4c5c4f2b37ec7fc8c7923f30799b7a4f472b1f7f8be36c312c4619196407eb2aa526d07a8871e37cf8022f54109e3cf49ed1a8ba013f16998f5823732c28cef54518ccc758c2fb3798ecf5ec0d1ea918588b6a0002f1bc8514e4b71bca70863226978716a0a5c79ade76a939b998f9582312dfc840f226fab3759f2bfa76819205149a6fd938df2cc2da48d44136e69885882f131cebb748307c837d3b24e5707d464403de00d890868a413fcc737b30d96d4a01c51e8494434ad0f4df1757fa07c4e044f3f6170db50c302cfe8664e400d59deaaa2100167009b8f55c0bf1b447bcce8a470375cd54d2a88f103a4558d4ff4dc5be27483d2425eed2fd223529187029846b0426224b895a9dd34197205b8e5be922cedd0102b03b0ae5ce282db67bc6a9c643a27d4790f9ff1ed5cac1380504bf356d08369fa115a49af41ae5425ca9d60da1ea123ca3d86805e539657a49e001ae17b7cc89ca66c71406d46c9318f4fad897f241629a81b7ca44139fd59f187824f98265f227ebb3b40e9673659e56c35a56a298ed40a68e10f5aa94599d2375b47007df883cb56a47610cceb5c99b1f97b1066c6bcfe50899c70bb8f06a030e85c42db7e18a743a2ba87e2b0f81355838e48d604ad884b469463cc4b02cc75a79677978b3e665d03d2a38cbf9f907a0d1f3674b195f46f792a9667b62a0564a6385b962f97ff0f8ecb5c38158bf68c410b00277e07671229a27e81613eb88c60f1540e615f15c2e7e14d134ec83b6d9a8e1f45d190f8dde5bf2c2681d186df1f24dd27b5019c63b2c05e4797a52d792d9ddb2bff9e4991082dccb007a269c64eecba2043c621965668266d0f1f366ce4a8a1c2315c470a5c638f3b45553bc74582e4c1036be0f1db44db4a1fcda54aa4fb8388ce2b59c9bf90abbfd76706d50a354c2ef55403ae1039e79a6298e5d542cff9aab37132fa5f8b60f5376cb976aa58f4962ad445bec45a0ffd828292eb9e92b15d47b650628beb48ceb6777807c0212ca943b6177bb42db90de28dc20d76031d5e69caf18bce7046c562b522eff42ebaefec52d139da4086ea9c8612ca1562d7fc15bfb42b62cbaa507127f0e780a3ceadacd74b2e5f23e96751e8a78539e88ecc7058ff72cd4f4670a8297877d91c8a34fde5ece933c2e5bfb002f6b7edcfe1edae249062a444247d2d24abe422277631a36666b53e8cd3446cf1388297fa61aaf0f9cc86ace67c86e47d1021b965e393b54282eda8eeee5f592b53e39fcb04e1f1fb5910f92f3046 +result: fail +shared_secret: + +# Private key not reduced +private_key: a11ccbcf239bdf7642937b7d38cdb33ecd667f06b13d8ae6697dcb3c696c94ed38b324f76a135cbbc672f93d585a46c31ddd9c621bbad1f4c611f3349104857a5be117f47142d36fa8f7383436dfdc337d7427aa0fe9db564658743dcbfa5a56f304fe222ff6c6b6f7085b86cdd73c05838f4679fbe1de5a7d59b9c2f8d39417d8956f93adc5c339af9913c489ee1396df0e62588b644955f25aaf43d52fa92dacaf5ed9a88a2ea3760dcb0c1d31467c494b4cf07acb6d4fb444cafbc9dd364933a3488ee654b7fa866dac82a53acc8c15464a29cacefa9432256934c7790e1b99c85c599e3c5c0feee310ecfea6e8e3b505a6feb4626048bb70fdca8a1c418bb4512008a94d863a6f7b359e0fe2f16e584f44d43ab6f8ac8dc46017f57283a6b515fe8967a56e96f30d9b58acd6e25416d64f03b6b25a5f9b7d6aef68e2790566308ca35b19b3c6a7a2450a56b164bdd29f78de85a5779e86e7c67ea9dcb7e2b8f23774ca6639d368f67ef6494d2bf541208ee4e7e930b7a99beb84bc69494e757ee27fda4d6edc4959c375b6d8b4822e31210da6dd05e1504a84557ddf885f3d7117ee14adb676fa681428c31d7cc0d259fbc7c94c7c4f30931e3dbb2be23a3936c1de846057b2970a37d1caa6e53988bc0565843be43d0ff17bff316718d257a3397a5e41318562a024ed1f7b59f78e69fd1afd7c959af20997197de23e5b30464a74106fe4aceb6b322b4cdcbcbc28285aa2746090a8595d4371508735eb64f3b94a54f6bb8aa30e9b76bb76b26ceddf4fb56d13819123be6ed3bc3d26b1de5e5122af68d3d3381ad4432713868e7d59a076d9864671fd9a6a1777803e4b46d9ba6d4515dfb2d8df88f450a3b655843872f727a68aaa66c758a8317a3e2aaa55beeda97deaf9a244615ea33469cc5ff82a6c2e0982935c9737943b45c77c3355900ee3f785f59fcbde4b937ce708baa6b5686b953bd7684ce252c99d8a59f72b053faf69ac090a8c0e3adf639544ca196c00975f77667bd64f89445cb62367bd7aaf906843e9dbfebe3cc89a5e1d506afff1b885d75f7e62b12b320373debdaca13bd6768cd9ab497fa7ff54ac4baa49c378de372b9c7e35e24f6a9c62c498adfbbe9b9da79fdae9fa358368afb5a24b821866402e43b93dbc3cce1467245a42caf4feb72e7cb757d159af4fa225467dfd962b399741c4743fbff22f265a45e7a94ae8d0735ad50635aeba1470233498553d5c59276565f3fdfaebe7b3183723bec44af4c28953df6ab53b416ca239c4d9fd1584a799ecdb77b742b3fe55875d9b2da92f877dde6662a1cd513fcbd875973925ce6dd283ad5ccbe8dfcc37fcff89157e3a04ecd5146a7d5399adbe57b60e7dd3a81a3f9f5559450483d51e6dbbed470e15ba3f73f3adab47b04df52da7bc45e38759ba99877a6422fd4232b35cd3b372c0d3ded32c64b0d74fa70c7e6095d48c76c2e7e9b1bdc8b0341fef770dbe3135b78559ecfe48932f3da89f34729d1ef588374fb23d7c819ff8db07d5f9a8c0eb8a98765a8e4c2bd592dfe2d5aac9f9593a1418afb84bbb931349b2bebdd9eedbcdb66e7ea7f99a5bec2387df8ffc8a09ad39208f6b5068f40d345fffb4ac4c03483b74626d049f7fb5f694be8b548ecec5be3dd1478c5a1fa3400d9f0d533bfe67e05755392ee76df7dbab0db56fbd2733487b511804bd63ec767464c110eff817d79aa89d9472be4c1e0445723af40918c2ce8f9d3c6c4ba82cdb6493b9d0dc3910cad48e5e5f2f4ee6142c5540df30d21dcd71b449f72e6fff68839d93d96638348b4fa5edfd986d6fbf9315d68ceb799daeb7b98f6a8fdaa131d6b873eeafde468aff285aa818c8ca08dc9ecbf730f770fd143d81c8681acff3d4059ec5a39f18ab538624f464195264fd2f9b577105658ddd8da1c7fcfd82bc8c658bd0c3d986f836eb03973844acddb626f07676b9ffb36a986c3350b698289367ca28cb404ca0c1e436f0f9e898a4ed72e7c1bfffa9aef3305fc4c73d7acf8305f58766a95f9a5b97185ed14c7508d7c8f7ca571a534bf4b8431457992348e8e0a65e0b7d65ae5678412af5d966e0dc09e9485e3bfe14abbd9430104ff619fbcb0b03857ffe340de5510156579b5fada87deeeda662b62be6678cfc81f998869a9e3773a7c7942e279471a233a05d77899c2a18f35ac98a3243fa6767f076976529b75b75b070a341dfc95bb85c4bfa1394081141fe1b1b31365e3c2302c8a0296b9769de04024da48c2d7a3e5b29ae58659384fbcb4ba2ace58c4ceca5baa5131bdd465797664276aa44e8331e2f1328aa6910f68a6a73210e575ccbbdc689199559f094bb62380f436a925a7305fdeba6c53a9193069873e724cb1b67fb8820e75c27d175bd5f5b5db020c91eda2439383b579c14da0173e1704a318a03de6691ecbc600097b41a7a9a429ca1a4d8a34dfc6c85e034e8a17629181fe7c993ab018d135a73861405186763b0f70c80d09706c9af971313e47bb917761a0e3a39f7b96702c288254675f6a07771768f3939b7bec979cbbb8bca011124f08347b7bc7c70833197b192fb26589098e48834e8fc8551a1c1fc52a1701323d98c4bbe7779b867b813a5a2a5040d8e8845d4a2b03efbcdbbb3083831b1ffaaa9e21c7a3ad77053793b1f7b7475b021e2c1ae25f194856b1594228e938a29b832930d5bad3667c854366f83b48cd3501768f086b68007ead71b2f046f630196b8237967c940d4727d388800dfebb3b152cf57b33068803c1d55c59fba14e31c323e820265c8826ec3b6018c8f60445a11268da9b44f8dcc512b860212f408d3baac60cc6ca42211d2ca3a41271f745bc46fa70a9a8a3999ca83e8635e7a4843ea3b861194bf00909e4250ad1ddb3006f86daad2b8fa720d969a7d87dc97ae214ab3769eac0261076092250133726265eb7987bd4bc01ec004e71bb8f7b06ab339ac9c0849fcb23c4bf35b11955c52d30fa0eb56dc7cbfac95704e51969ea45ab01c10e59c691dc3908c083263c3565766a34b216f55f8284f219dbc158cff247e2296c86ba69c922161ed753fdc1471834270095a85a5fabb1db91fe203113139526961bb40b41e8f913a36461ece86b37fb809779005c4312727f68923187203d001a378c0073a240190a144962bfaa89b1c384083178a1b44461926a9ed135abae505c93177f263996de9780fc573619b63f741091ed57657404644194a25b6cd1e5aab45e9021d9a8839546a9913752621bd79730685397d93ec49d86910c46a28142928a054599ba18cc3964cc4db8bb7a87543e8a53fa23a95bb5b6713478f4b0b5ca6248018a729469a3794a8ed04a315f3783e667c0cd2ac80c68a40c35d64c90e5e8a3135ca15cfea69d4a1a2e9b562dac51409c6485e026001eb1196a487606404b6519974b386abfc9cf4a0305aab4a627b6c22a994dfe46035447f0cc09d1bac0397a68fd647b0b13630d1439e63fc8fca2b01cbe66bfdb4315230b06a9797b34a57a5db208061195813073c7a10ac95b8755aa79b2033bf90386115066f177ea1421ab0267672b91830a26c20b4a8ab9011668cc46b49a2d824067102c95dc842b4f423feabbd774b4a4be351bcd8cf2c486ca70a5eb502ab5ffb8d77c2bf00fb7887fb960c089210d673679a0c71428b5ae348ff293602833b6927add5b18f22acc4ce01517c65c848680d59931175954ace9689fb6881ce17073e113cbcd53547bacb3946067a1a46cf6b4969065c98c17304d53ab5804501711c153a1b13d7cb442221ee311466469ba1225cbb312708c7b5e0055e3b476264b2244fe9590a557f088c9d4fb47a3d598a998a1b5f821d19909220a229ff020bc11143cdfaaa90e00b71d6c8b7622f24584508ab4d036792135b750eb9ae091b4baa96a27dfb1aeaf605122060e5268bc4e9c08d1bbcd451a22e44a2d6201c6de52baf940f14956aac311b5c3782e64377c645b35d210e1ae043ad6142bf6c05aab07d3915500b67989709b7477432b947239a9c7abbe747b2238ade292448836b87938e804a4029f24182941cae500d85aa7ab9556ca98c7808d90558e771d8709446bb1069541dec34b69834c857215822f773871c4401da04c70503cee82491b07e8597480b6bae6245084a4b92f9b015a158295f237a6376118868486d9c1a8389baed937b392ab840d4bf67e31df2c073a4a8c691896b6d6b623b95670cf404dd499773a54210975d1ea72667439e0fd8c112f33470789f2899a64217400e4b51fc501362ec98a45620ff6ba180a211ce5c154bb62a1904cc13a64fb6f445b48ef88ccad56919a0deed94a2ab2d4b6442a71c288753f1dc41ef5389e394976ac9cb9123b99fcd75201ada0fd5daf1a51f1d069822d795f8e736abb8d1fcd6aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 +ciphertext: 80b2121c5ffe5e10fbe5244fb9d79f6c1a5cc82a850a9a347e439f9e8d95b827f59c74bd2e92338b7edb992e8e1bae6872f51b0fda5e14cfcae8e789428753e97f4ade4213b9f1d88d932bd829ac8fc47952f455ec61a75f7c42334eb17bfe2e1991b3a97e3da5f3756f538e36845d7da303d1c41254c1ee9655d0eeb9f93036fa50495bb1dba1ffd7f879c095ca6c62d9a7e28a19538c1fdda0abee14156a298d8473dfd64d90813e4e760d1dccd97475719c15a973aec286a46f9c4176cf816d1495a031bd971ac9ab58591e6f1039c73835fb2cc82ea9f48f8aaac3e5efd3062d3dd1a349eaba7b792d1ae4ffe41c11a2dda1b1e66d40c38e4d960b963ec220b16b7c3e2cda012ebf1016f616c78b64098592e061b533c09e4437f41e2c9800641cb74704ba141bf656da410cb886e9a4344e3e0d7c442bc810322762d052a818677ee4003e0780fbbefb32b9d791f782485bbe0b25d0cdcdade1ca5f046f5778402fe555575d3ca829712e1d264db9ba1986460043e654ff6683a1f59676922c008dfe4903408f80f6e3604f50716f83b9b7ccd711d03a0167690eb705f8f79ea3a56ebbb0099c71e475599f490beef33da232f35ea5e7509c25c76040637d6a50110e8ece957371c4600d382372b89db1427c97d8af57c5ab9b1f2ddfd1ce7c6fdef2083996da61e00676a79cd0db2a6436939c33086f752bcb0b343551f6a29c258053b7e17ce1b09f54ec15cac7333dfda71e9b4fbcf740107e76ebd8d5207da82fa7b41d8bdc2d9a284dfb8e4c2032e7913d5703743c436535f3bd0df97f961587dce17a2403bb6bc3bac6a97c45a0e32573c81e919e0117457af4d693eaf239f0958cd9a2d44640ebe107ca0f34a6eb7703153c07b5568c143d211e9d31f1665fecae3c51269e472160a89c48af0a74123a9f743c1c0bc964bb3787646d307b1508c1cc31eb2ba4f6271c5522e81cc3442315945a94f89ed18aa5c3bbe2c552d55429cae27b946664a33d35085dcadecb1484a3e25e5bb409c8a238cd634bb03c80f66c7f539eb41513e06d2c7da5418d9ead72477117e7ef732734d6f90424a5d98a444ae95d3b09237b022a25d09b9de4c47a9a1b1ec5474a19a9e4f53a9f0c330d71651f8071f39b0e806a1dc1646ce155a0b4708076238f9e269802f707f0f5071b1a3f97bd63c9c89501612960a16fb6a2b74c183ad073c6bd59123e72608eafb1423fad10df3d3c2108de8f38cbd283c220288e34019bc96330745070a65410c523e5423eca7fe43c09edf732ec3ab8439782ff69bd27771f4e88a4c9a6447df87f222b3af22975189fe9e0741626b0b9ba7a9e81db8a4f887964fd8cd94e90d6806648140a39f2dbd76169c3fcc743ad776b50f89e9fc4a6ba71698fc35aaae3c9eb0d98de8e29efa0f4d07b59451b62600af56dd95a8e5b461e57ef5ee0ea3b32b5d8208b9c7c7e68938d86fb9e2500dfbfbec2b5f309512d4f1d145751f5ed00b73f38e9980056e6b8a6b02d4eed3b6158a61b6505086d5b1900e9b168e9dab5bcfb63a0018facd763fa6f53de39adddd9cd1a6069f0ea28ddd9d7ff2f37e6ee73d31cb7526c1435ec97eb6671f7e7908871a6570a5a8641c93cb774d87b18d435cf3eeaff0155c309286a5ef54b2a068029911820896facf98d1fee9d6880db48a3158be42f3243ea88af5df7ae3b9cfb2bde9bd6430006c8685ab59579104cd32ef74f6a57341b7bfd9bd89d4b697c496859e307a830e225c67ab66817386f617e4672f7a91039a7dce039ec5badf05d23c4f9f64744744cdd3c03832bbc99f7c19e60acabcfef41258cacd781f5979017745b10a10ba824606a10e2648ac4f97ae7af9fffb80e3801106ce9e1b264fa86e3b3294420564a65b5e02fb4a79f078a4fe4903c26cf6c9902999cd9b3a3b0667172a30d205b94998356d4ddced92c0bd2ac68afa9984c271f6446d66fc9526f064b90e9645b5b8ecfffe179e492ade63b51fb77f7d0b84ef059f077f135761c7f9c07b0a4f429812593dbb16155489a1a55be6eedd541dad3003f9e853aed5625c6124d345e71fa7330868fe85debb7a0354e81a6fd5417ffc120a9a4c757ec424b96fc6729cbaa654c89a479dd9e453c48cc16e5321441a9378dd5164ea34a34b0ba92faca01903083c0b21c46670bf25de670056792534bd0c9c7f10141f6425c4af049 +result: fail +shared_secret: + +# Private key not reduced +private_key: 161bee369b620e7891965a391bb99d9933bddd1b407a647dacaf89f1fe650904efb62576b3ccb404744d2b6998924ddb119cb1bcbb97c19dab419ec1d15454cd0bff0e28eeb67779714eb47069680b9f9f85eaf52b34b571467b564ba72256867aba61d9be4561b7a6c6dcdbd84ff7a3f5c841df64ca45cbb4d6c52a3f9f012bf235b83fb8158a3966643c5664e4b4d28b784aa3f84c2e2ea6abcc5f0bbb51613f69649f9fb3296b3c65502a34c409ca9ce0fac5376ea77a6ab85339364f0a999e3ee47958b01276c31454c1451d989186496a5aa52a2f3cc1d460a729a5d527dfbcd3c743bf67d5c6aad204715473dcb859f55647fe928cdff59de5b52fe966c742731cf23ba3ac0d9553e803d53c84a19cd4d657167a766d3a2e467699eee7e0e96beb199ebef57ad25b91be9bbbc314999a9d68d4f56316cd5cf6a7f7f7ceb09038ce4e3ba307fcce081669c7f666934a9feef4465346691546dc926da57388eb0be59f23e8e7922bb94548d2518b52250b5bfb1631f173f7eb3d552ddf6725d94718ed98e9c4d55aeefdb67680f52aa19dfeeef22641d214b1d14689263df7e68bae8f4ad034189c255fa89b9de1b10ff9c2f4c6c575ae8ab49d9ba5eb7f534c5c1cd2b95cfeb2def0fbc6cab49eac02e7eb3b6eaedc75f11324e29ce950f4f8f531ff97f1d6b8b9fb6f0d4f3ddfa842f5f6667109caf5ac5db26af6ff46a771cbe731b855e909604dc4426d1598ba26b94fab7188ca788c1b473ccddf7433fd787fc196e3be43dfdad9a9eb156d661c85a90285952a5565b939dd500cf921a84eb80680c5efd4981851882565e20455e707d115289033de792ee5475c499c8bb7d1bc094cde789b7647536ceb7471db9e4fb5eb1b0a97d2d94f740f4e83077dac6facfa13f89197cd5e9df901e34230d47cd5b469d30fad64e98f612cc287af67d17596bdae634094ca34ed9b9fabb5ca27d9218d4a3f68f33fdfca6246fcdbb4f4124f75c1faddf1183c343d3efa559bcb7d6fc78be6478dd58708b5a97c6f18acbabd1eed90bf30ed66f65c6cd13bda6defe9fe77cdab04fb8b1e07580743f5c8d6d465678537bb5ff489f3b39a800cf39eb5686b653c9423594fd739d745d566acef735dfb4e9f7454eecc53b60be2be4d7d37e49a3155cc366ecfbf8f50dd2d7d3fa4ffcaf3cfe62f3104df475d0aca6809ccce5b8d70c7aebd053f4c94bd2b66c9e1eb68b7b6989f6babff68ff86dd8b3926c0fef7ad5ef6ecffa8fb6906899974e2514f84e65bbe781f3180f78efcddec41b8f62fef6765d39e955dda1a27ce4b147ef6ef5d314c69aa86353f9a3933b73ea23ebd7f0efa79b863ba43ef151f386f87336b9d718da6c9275f49cdf5e8c39ba4e6ab83ab53c2d2c846f53d41c4855d9309993addbbf897f2d873bdcf5bbd745e9d8e05d355c7a18c0bd5197e47ed7d6fce576ce9fe392863db4336fcaf6e8f09d434fcff9fb548dadd29c3a7a9f613733fa83da17e059c67297598f44fe28b4c50bd4ff17bcc7f3c8e516b557beaf8fb08fa71f8e34f3d82bd7497995bb2e09cb398254a13edbdfab5a1f3234853d3d67903a64bdffe528963eecbcedc68e49deaae0975e85b2cf588c4d6691d371925f016e833aa5e84da5be0958c78b2d4ae2dad74678ddf62fc687fca4779c5d0ab9d4a0d95c93464717b4cf1e58b9e4c133d793ca5660348ac0e98a81937a9fdd0225b87284779238e3b9f79325f788bd91fdf0538d1fc079f3e6d4b3ec830d2a4d7aaacf169bef2434b751085804207b2916fb343fb904273e9998a98411f32f4ddca1b475d1575de7e9a42f498a7995c4bdcb893d09531832a4fd12c8874e4c3c76dd5d7cf7a1037f5a91e3d2ec9663b5df55fd4caba3f8b232d737f13aacb4646b49f811eb3ca733d7f8a9e95261d7be84a5cceecebb9e3e3f7b99d619cbafeecab89bdeba78c688166a6711be2a57f4b2c76e351574d7b1ba6b9265948d5a573bfc74a8fbb6f8546b8684cfb79e6caded93caec20509fbff8dceeebd43a04b67468335d28a8eb34d6c7279d700f7f4d773b40f4875c31bd56f9d4ab688888195655e1fdddaac5d1c3dd32a9b65501b51ba036ba2d48e5fd75b5c2a4d8b65766bb7a341247ee92fe961f4dcd29fc6c126a3ff9f488d467212b3141c2441f96a053ec568c7d2b7e1229fdb620d905119a05690cbc9564bc9cad3a66e05f641302a38ada62e07380ba315acb5a3af9f02aba7811726a3ac94723d6e66428ec8576718c4da712846d450cb428571b1786267487b353b37d984cadc2f51aa6fa58c48b011360c5b1989e104b99671ce2985a174aebf31cb5f803d29d93133d2ac1c9851031b21e8da4021b44b4064ad7415786022bdb27a187495908ddb6109489ca2a67dea269493986565e33941c1012e5504f4e5abe662235bca3a144c149d970ef3815079e2bbfc26066a7c8dc5591871e83731139951a262f9f7a2630c0e0fe635cff95b792a6b9d490f0ed14b125b652de35cff994ef341a15bf57978211ca4149fc389c60f915edc45610b9c5883080e96d77267268a37b4338ccca90490cac44a61f2795f943a25147a8943dc545c0805e5d39b70139bef006df10c695cab9cdde3b7c3a2afe823c709936d7c3818584abce96950c06b248b858859bc2231622426078e480074bfb011baa6b11336206425211c71b48d134b7b0b1c960c9429829ac5191f8f8aac1ed70bcfa4342a362c68a35591db506f2b69bff31033f5ca4654421f48afdd736e25d810add97f750530c443618e674a6691229c3a17f3b19e9d3740ae4a6aa6b77254b27374b246381483e52624a473035fda0eac427cf0f7244b3b8fcf4c835df23cc5b729bcb1285ac49529c1241977741ab15c2984343f5139e1219d65992ff75637fa3a486232c1069cb49269305057080b535d4a624bdbb78ac18407fa8b48caec62459b80cdac45013403adf41038fc0b97fbb3b9450e9953718cd82b4e951b3628c7c1fa39f5629dbd074548d156437253ffd92f7de9b292b00d1812cad1ea7c26a295e373bf80fa6f173b68e7149ec6a454db833d00fc462472ac51a208341a39fa8ba8f7c8243987cafc65a48eb30e729a033cd8929a746ab6eaaba19388e9246ff28355bcec0249fab0e00b722b91bdee0b8fd80377509937f201880239ce9c9251a9d3b48d455884e98acd948f0aea095155b360620f29a279116ba08a5b5ccd6c86e0e57f4b33c5787c38b7f0b924d71d7c06c58f932d7c68422085c8e365c6787b8069d21f0fa5a414d44267b40a5f629b6cf82de5588b7e828868c5b6ab9438af030983c7c37c1032be605936002558e161ba0bb2b1b4c6b1fb5fec029ec389a375d563dde64eaf7b95e4a05e2cb7b1a4809e4e98893fbb2d79aacf0e7a0718a322ed8296323681ea398981512d04f56ad2bc10667187b2ecae2e9aa5e2922fdff22eb9651c37c75f6ca87aed6213e0048e36984e2b9b6936d61318da6b7db7c8b1538754b997dd325052c21d22328f03d5774e711a51ac6d3c333f0a529c1568840bc92ad42603b4a361197b36681722d45b497cd94f73d90fd48570b445c4b166a02c5a3c5928bff91545053166f0fca5f7b2229232a301484ddb25854d522f546c477f43072814668a734786b6810770b227487a21abaf17e79dfc365c3843363ec53af3686cce7429104740a327ce441bb8e3736af22448016b8e69784d3a2c92e0f1787e818139e19e95e2a9db2b62164221d9b77ab2ca91dc221ba5533322aa772459c6c5763f24a07c5b715197a20c7357cdbcc18840aa7af18c4684e275cb3220010386095259c4fa71f94662133622a2945d8cc6572b2311a7fc0e1091ce19d8c5d7913acc490e6c1751d5aa3e5c7218ebcaba43a8c0f6d78897c15a20a87a891bc2ca94779525499a2958a60b4878db537d9b148c01b7c2a642fedc0624e594cc318a0fcb52960526af556198fa028604a9f0181be16399edb84b38405e33b43c13d83e54483418467a57f8a796b4032d37a744fa6200b0aae04899c6865a66923eb173906b26c33231a90044c9c4d5215117ca1d50cbae1120471c0462eb1247f07a2197680856428ba494dc721bdb3760c1a97d2e59735bea6064650f55212117659380052550fa311599923dec097cb28d601cc4a117269822a2bb589ad165a8587893bec2b0e22030dd8736d387673a67151b249c49e7abf96960f5394fb255be8cd9927152211613c5242a45e87028745626de709542338e131678b871955582014f1074e2f8be14a634ae5c40dad64b78352febcb21bd987d7632c16e03261c4771bed2bac280f77da45501c2ef4d97f2faf650309211985bbee4c3a85865a7ea65e4729daac39a47c305ad3084af028e66f759e0e22469d0386c10bfc23a0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 +ciphertext: 7b73df5d74dc99937afc0d6f6a0ef62e563a69bbcea3a3fa5ef58518bd06c122995eb5c937494315af7b67c3630f29fecc06a73c54b951e159efe8d72118352879a6127f2a640c4ada847db224771e3cc45bb9516bc72a09102cd800ff110e6eb37e14f7a15a51d9362bb543dc8e783ed874198a312f9894ea60d707d0e9ad04727471f40a9c19bc4b9197d48d6663feb7b2cd9eed42eef4490961e6d90aef914bd5f48b449f4519659e12c4407ab61544da3d063271e4b1674e3f145aec8a9ccae7b458b05c3d53e0f99e8f138a3387459df53289cdf5dadaa3a3dd2ff6f190648fc43bbcc1fad38a6eaa013b7b09ad69d0c73188522ba07ed82e8a34ca49a04d056f484155e2850c978f8a5e4f026ffa7aaf387d1c14a489acdff0bf348c1116fab4411f2b0af7642f88e64778644411d218c31b55503bb9f3645ce3f6b213624a3a8e646e157edfdc2e30a764f71b8c23fd95330805d4b2ac13691dfe436fa58c3d3bd05765f2b501b9ca82d50c58ecaa1f0ef930b20919eb1b00ee2eed99ef61c85d22cf2f72324e50655efbad70a87a8c8208239da0151406f93d39ecf642f0ac388f6e7638642803883f8acbae1f54ce221675a4efc9f3a35df05488fb1def243bad65057646a5e5827fdcac36bae4ca16f66fd4a3130dfc358a8d07468a6b9843b56a02d9af6befc9fd0ce94f3db71769bfe19a3a0066519f967fa786bd397b33d3e930d464ad4a1034cee019fb86bc268e91c9d8c97bacf53940d906bd641b2b67e0de90452052bd0390c45a565fddd931deb1723edc2e1a486e32cc51a8442e8c027892c1e7f6fe6eb9757a1aad7daeee6a7cb834258d2f4453e367db1a4fc9d1eae40a24b97e8b29edf5aafa7ba86f4cf8ab25dbc32d8287cadf895ca3ee539cfecc09ca4cd8116cb6c0cfb62a6d9693e6c2bcde497129213bf13efc82b0ea9aff794e18409bfe09b7487083cef1e33a59054414dbc4e72d264f390fc945d3a54e926763dc866bc92b77a6fdd82a285e69c63cf4f634b6d4f97d088d3f7a8e53cdd8b8bdf21acdc23adae7feb36b3f14a638fa5b4c1289718172d11b5e8400549929fbf1dcd7c5d413111c4dc4857110a5e051d7c6250e2036b49583322e99edf2d9276fc4447a9581923a086a59e4ef59aef1d480117ab5fa76330797192ef0f281f3c0a80d1218ad485d68d5d36724418ca7d50a6c4936b692790884bebc9e1531af6e3eb74dadf702b31d54ee524bf50407fe425dd05fda0a4e9fb2ce40ecdc326688e5c77de894377868bd4c2e2139b474e37f2c81d5cb114aa7a011f4245c6db4ce78c723f24969c0dcfb8994185663fb1d2e48e337706a2194ea212e0e1ba32c8dffefcb10b4658167dfa163d4ed8eba694c7491d4640dc7dacdf23de8f7c7338616bd684f1e514308a1812e04e9568e857f3204170e67f105f0abf43459e9d07c1a0360031b7fdd3cf03e75a358453154e29f211f445b202de15e190801a1cd4a56e7f3c52d26423d1d92fbcb486d6580d8d2ebd0a3065d2b5c343247384804009768aae6be410ba31d0189c9490f738756eb4281b205ab8bb376a53b72c425492b71ef5bc181d79b540cbc3c6337e4b8705c3063e1ea4d326f14c22b4ac67e8f00d11702d02ce1f30045453af30efc07f53c13de8d1cc0197770e094bf8baaa637fdc544850b870d1bcedd4c56b88fd8e1dae9197a14665eaeb97e11025a21fd21e6c40ee5bfb3f6da5f6acd5b2b2e47e78fdd7c777a1538647a96896ca51c0f1dfe06d3e5f293ee25a289291b664736160d9d925f5d45073f4e6bdb39f891d07589d129fb7b6c77113aa3d3161d45f6bdbefdf494a8be0e03c4ab518ea334941ca62d4babe3f5c79c814c1abde6366154f1e82ddaae9dc970daf395bfb416f6b8e33b0a85d131ec429070737b1936121059cad2644c5d759ee1d1b646d53993d7381b84af391145e86084b1bda89b0c71171b8ebb3f2ceda08782f8a2dcca9176e651dc182f1d888cc196eb45b2e664d88a3562df9a0ebc24826de5b7bf674139c961af36a05aa71baf645aa353d439ddc81f4d18504f711a1be110c3ec4f134ee17cfeb3d60f85987c37e966f887cbb3dcb914070e1424e9232920cfcd48360c217416d9680a9e3c6f1009302fbdd7f49e12451da74794e80c623c5467b6625c474646e2c13d1539cd8d156f4852aa6b60f027922e3e +result: fail +shared_secret: + +# Private key not reduced +private_key: 42ae74fe5ac2466fad78e74c8e65930e7cbaca48950adf6ebd09a742548fd3c9d407bfb8a218bdbbe4a5223ce3dbe576d38cdd4edfdf3f4e6dba4b78459eab7a534d28c9dc722e589dbc55bc2e4af6475853b74a4c048885a6ceb5184535a5cffe6c3a1c43c305fac42dae7ca7f64a258ddc0048447154cf16df5636873d42cdb58829db2e0e78f12940f5eabec85a59fa0e79076abfc3e734973b4074d7f1a3e4eab31465392841ec5585818eeaafa93bc148fefa153f5bbcffab9ce7eb7872e9d3b7b6fa94c2faf0d964388be5e44c237772eec6a7f991d37a55985d78dddbb76499b6b87c974bab79ec65e3d839cec29f6ac9c5a7e45861e1bff6e7ffb00a95bd53ae7eeed93f574ce9724c593ed7749e64f287b6fae01a40217372434f469463764987e3464d8d290db5a03872cf6c70ce848b8dafc57f93543bf7a61434a48f53633815ebddbd92dea6690ff3b6ea99f612ab5473cdcb9e7987c3756548937e48afcfed69ad4444cf3534fbbd1b7d65fcd2903ee6507ba09dbee4e4cab4bcb736ed6ed9823bda5a0f70d3268de357bebf983171ade85dc8fb6c28cd4d7838d9af368c9a31576eb3554b43a8cb4cf376bd771664b5fafc50eb929eb768bb685812ec4853a33a4a5e9ab99ceff8d4cf38bfbf5b97c2e1afea0d769abe68c7e19a87b50a6a572f8f4fa4915c2e92d1f4f25a58b3d3fdca24ad5dec8bb5006f3e636c95fbbccbc5f86d49e447d11f4631f52fe575652f88fcc5e3a376bc868695868d17b254c797d8cbc543343804c7b5bfa731e03eef49cfdd0a3db19485531c678328ac647d2f60f616faf02cc2c1778833b6fb4d4dbbc095b286ef82b74eb75c5cbaff4ea0ebf88b3cf890b13b5b8b13f177754763454ef7a4d3b7affcb12fd13ae8e0cd6875759693b298a57e1d7b8b568778e6c493239719c73249545ccd15f0805ace115cdb7b936314a6af1f37bd3876322ad855877448e5ba7162cb7c7457c8d2a47d129bebc96d3a61dd6b044c7611239ea91cdcaecd9a4e8c4cb0ab386debfac15cf741bb7ccf7cd387e6966ed8f4691855cf748b690e34535397ed4f7df2149f270be5fe8e4d4713edacc858c52a5b435b6d9b8c8f76b4dec0486d2c77db5e4878adf7adeaa9b753bd350775ce1b9b590a9695c4cd5c2feda6f2064a363664df04e768c3bfac27fe1ba87e3d3845d21e9a3605fd394cc328d8ab249e460acd58b807fc4f8851048868216a9b13c7cc55177ce559553bdf8ebeffc927aca49cb9d143efcaef59c9d457387e8ec55739e77c665de9dfae21453f91b7663b3bef4304bbe02499f79db95bee8977bdde325ec570c479a6e5e2afecbe35afa2f2b7cfcc13f90a15ff01ad93966d91c237f9e67d44dc066f892799baef63dd957296865e0aafc15f4ddc4ddeb1d15d67fa1483c6e765c65e425efc7d5b15517be9e1179afb979fa1fae74ef4dbf785e561a51c498ffcc20f039e0ce74dc62c3a573d3774449662fe71487cc2cadcd71bc3b2cc54bee99332d655ab4e6b8b9a8351397a398c484ae23af9a4187c6f5690bc84ec23e9c2af19e6f8f4becd73dd481ed40295df321e930cdaa5fea74e3748492e7bfc589ab4af6ad11bbc8ccf878bba37d87214d8cc56bd83859e62ab95dad5c17da830111d933fcf7d190df418fcaa9fb5336bfb608cba4d0b59cbde5c8318dd9443f7aa641886201b62cc4bf33903ba98cca9a40ab8346cedd886bfdd87cf6fefc50bfe5bb0539ac2673d0ffd8e58bb34e3a831980933810ee135e38a0cf532cd47a45ed7cb95bb9420aa62f779345b6c851fabd9de8c79ee1a80726d763baadb26e74ebc3faa304f97413e928526e585a7bfb607fa4669cce51ad44bdd55d2f747070aa6cdd5e95c3fedcffd5c43456dd2ccec1784b397444e6eb397f35b5e4cb8aa04b7f07633ac1526bdcb9591494554d03557cf6d820335d08c4facad36ff8a16fe1beee7171ded99e8b3a1caad0226878099947a35e1f62a333b1b97f6be654a35c73f0c69fe9f531e3fa33cc5dbe67d41ae97de160e9a103dc35ecc8f33ea39af2d9d7f65c5937b5be1b8f192c8c335f35b36d6cbedfc953fbe40e29ec81aadca16fa8775d6719226ea3fbea509bd695e6e971cb9b4cb6eccb459b8fc3748d7c9596a93a88b535a5cd35cd8f09ec13054176c506d02a7258a84eb685d14c3352f0b0051757c30d4184ab6a37bb6058c4451e89106ad2c259bc6791de49ed9dc0bf62bab1201429035c8716b864552a26b0549b1832a2bb01cc8f8cb55630618a525f885cb6fb407f042610681428031399e5666d56a9656e1a530460ab4178c3e957d22244b1366750da084f572399a33bb452c7c73f3cbe9a7028cf3849b475606ea2c96958dbef17aa08b3f15c146edb65de9379f62c11226f9b4b85802694614eb229c8ed44198542685610f53885f5bbabdd95c5597f89d825b0f441b21aa476ba4970be900a2f40cb742402c2093803f27ca37d06347615131b81fe6ac6ac9249459c92d92133870111aa5176c6bb828a4198c865a1730a84961f3914379bbfbeb46411c1705bc86f8a38a5f817f1b4c34e99784773051764b3f55d38571e98d744043287a19dddba7d4eac3f0b98173d09f0cd10b22a0bc0417a056c66064c906b7559ab134b6c47baa7932540070811d3ab8f5f265822873b4c78af45514ffdb6d03d79c24a88531d4ae7230486977b612cb05b906ce19337ca1f0455718569e80c2c2c795b7a156e60c5c65fa19fdfb5e4fd96727947fd66abd94774a5bc45fda822146a12b67534ad93aabae123af9cba2b2a376608cc6335aaa99f759dc964aedd80e432c6f417a1a65c63f639b5312c35038faa9c45051ba31c66912538fb51a85189d846b799d8c2fedc439ec8685b547376be49a83fb60281accd733001d729e4156badffb3b7dd8cb40411ee7a3970a168357a89dcb75535ce341b5b47403308bd87bba01f5cef30634c9d27d56da4d4373234790acbfb5051ca2a8519a42e610269b4b32c64770a5db4caa1ca6670c432bd74745fbba2f22377c729446954a6e067454639c3771aeb626871e3558a0f141a37c2732b13b13532cd16462f7822ba2869a0b20717e3675a328625da796e12c4403d380cdb54930db78493994c0793fd67b0a91140758fb78d229051e696c8707cf5a1c40ef511123b7c6de51ba4b792eda810762cc114f716c66a79dd4f5b0865a1a2a1144da80c4106b72aabb0a8f8036bde19b204992dc600956ab076ccab601f4250ac4b2cef77c38d6b6ef8907feec307ab29502b269dbc063e337ad43958d893a36318c6c052549bd907313c2251744ad02c30f78d0b394635508951856d1160706cb042275ba20a4bb6a734f9856aeba164af669f43c5016f1305e8084389581bc146168c0914d1a65ae5188e19082d585af435c183df28179c6b2278491dde450e7b1bf64075e0a9a8301454b5e111e39b0cced002680e173c5db96de082c3c399e398210c974b6f47449dc9326c1a7a79f893f454834e6ec1bcf0a860d962a4e05a1f51825981b18dc4ab661abcc98d4313cb40baa402307895460139c75b6aa69e27c5e69273141487b849a42996a55788b3b42018da0ab1c315d10308f05c54176d727a04b656ce6859f69471a186a4ff6b17b877070924758c83dc681292bfc7618f2b75413c79eb9b945d1b2aef95a47cb21cc8982f405739c9064975b5ab875ae5ddac05a65a43cec4ed80acfeb15aae898b995e649f32b98613c77fb926879ec940bacbca0696cf6c6749604a1a59979a623477be871a2278d22134a95ecc1b116c48340c6c6981adbe742ede1426bb65b942302162b8164352f918679d53c06beab47f07c8a37aab0a7449d45e01cfdf9422a783e06f645353cb56b8c57e28840e074629bd58b5646cf1c96003181b915a71caa00a35fb4533df22b2367c9bef95ecc85359a236e23a425f9c975ef842ee20228c66673f1ea3be278b0fd43ad4c004655532654598f34a257bc7c81dc0999266c8c2f40a4d9364f602bac27145b5be7c4fb0759288761ccc586b9039d6ee57858a21a05676edb52c937f11c35fc091d3baefccc15bb953bf5c50b95b449b8db449810680fcc53169bc8403bc70a5b2e3dea7af89aa0fd662255197360b8c7325545b7f45f2dfcce05d939ee5556f5c63cef52cd68e8399ec25726a316269374eb94bc3884011c89890e828b5c726d149cc3446b8a12d76c35545eecc7aaaff17030a0cf9c993e53a88ca000116c2b206f0187f725acc696112b5c44976a22ab617a0c42a64d03b8ce88b7a8aa7cdba28a197a5d3bdc64cf089f922345dae5a7c6bd86d17444f21dd9b1a5c82b9fc906c4ad49e021cee8b1f3fe43508e7bb3b567d02568cc93c39c3cc347e2dae6e0144714d80cb28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc +ciphertext: 1db1afa16d8fb4e47ce58533e1022da2bc47db14d7c6e7afc7865fde201719c50f722cd79c2b0da234e075a3211009efb905d45fed0a83548746a9ee3159052015761baf021f52f9f9aa19f495db0dbedc911d357130420a5ea04516edc2ab8406be562181944b816458e815e0958653fecedd6a19193098c301a74352fc2de472ba7be44a513807096f7a0c42be557bf3f831d628ce208f33d5c797da2166c95c88ddeb42c7d78ecc54f0088f9e76f1721a4d7d088dc3b5bfdf8e39febfaa0e32c4fd4215c4816731bb515a96e6498846fdb6d58470a0148196ee81d3b7c8fe01f6b0ed7a20fc3f0910eae4656ac421448aa488a52c06b1385d4d1d73389e724d05720bf3cf5c7b863a0791b864b8d978f5fce0403263d73889aa0aa476d8a760d31494ee6a69bfec705b30a5bdbfa3dd74cce40c0ecaab83db1eb7172ae07689db456c33902175940c66c18ea93eb7ba50948cc27ec47100fd60404302d607b6d1a9374ffcd6cc8cd449455baf194cc71888463ea98ab3aa855546696c4d0b38c3058e97018cb27a7269d95c3835742de93d05fff40596a60c1408018d8d59d41c8295260ce51b09ed49ac79ba2115582309ffbe504e4ad56fcdedd57e544a0ba8e09638fc8da99948ea71d6cc75e2f03ff766b03c768c50cba64d8a3bd961161fa3466d5cefac84e7fd9157fa37a0920fc411bcaf0ff85eff2542556d02945b71198ec612908c02b14f9fa4905e1270dc709fec98841a5b3cb0a5b0108e2fcc0ee90403429110440f06ca40da8869ea802145f1cc2588b8d7f2cad465c3384ddaf4e0b7ceafab3b30e1d70d9eb812902562b360f33cf80546e1105f2bdd6496986324eff2c11f2e1ea54c66d1a082a8c19f705df7ddbe69f9cfa95431a5706850fd9a5a395571839ed73e2c19afadb4deef4dcbca3a75a63c83b22dc81466b09e4a4ac71c59bd69a6123f1a082e536bf1accc1afa6655e4cfe66e9a990e1a5b96a52b315fc08398b9958dd5965d5dfb4abafb3c63a7ce553c372d5c97e59aca1a6fe330db286ad684fe42c4a56d5729cd6b68b6b60bc924588f3cd09d95dd504773f61ebef4964199d183cfc04dd580132e1620b7a412a6e210074aaabc788381e98a9ff5f662bcf9214903681e255173c8db36a16388186456142fb49010978a984216a1d0f9afbe810cf811b01ab3784acf9ed2cb47452613ec2b154875de5af387c0ba3ccb0d725a0ccf2ef470f670d96bce6a5154a3cb7e78d786eb8a01bf066dc2f98c190273db023035ba3fa9217d366a6c5b421920e61ea44781715237b561f08471a2b98b58c4f0f45e30211a132006d089417f5272fd571de7520ce852e76f367ed4262e93b26e905ad8c21b92017dbf2bafa11b1a5fe15ed1162ab3392c23a930883ab50273aefea408dda64580f3665127f08b468bfbbcf702a0724b85f4a3242c13a16c15917f57a50fb63e0864975c0b10bd6e53e26cbd089fa7ad92172c2c03abc151c7a62a342963debf3ff960ba2beb2ca796135f3c54ab8441e823eb884360ea6ca9f81977b86be07feae2afc34c422c8c0aa76229d1ba7dea4ffae74149f9af18efe2cec31618abce5cb9ecba8243c7c116952d2439a3766f83ece57cb8f069fd5523b4bff071e844b7c3e0dad013dafb16575498d86663b2c8d8adb379eaf259c1c39953ed4b6b3a13e7e92db9a57a330e0628633040fbf324c1a86aa1e6bc9ffcc2a1b76e42fd71ca475997d16d385f02a860a001afac2e1ecb6d932a80e157704d6df6f3b3e9774132f9649ef81e4970e69b5bbfe8519d1afe7fdd03dd5d59646d88c3674221d1d2959b5806bde1339e88ecd181411b6776e1c2a8fc4055843232c9fbba7f26de53c163c6438e31ca5184e075510774b933f111f74a7931f95cda817c2c4575065d109263d24e9ab56941ca9ef136143e7f46f33b35c486efb2ef8d915544b8dd83b3a5dce577fa578fc90d7d01b6bd50f1a49bd245ebc3f062590be903b7a421610539cb53c8154e09eb4e26b6490f31efa406657ae5f37452d822acdea9040db94a1e20adc2f2e6ef68ba390cedca1d3df89556c6f4460528e04ed2cb4436312c50a428f096de7218633a8b1921924c96d64c32a841dd894da56302b56cfc00a7da32be9b28b94d7aac13a00c04c98cc440d449611fa0bff1d43d9281a52bf230d63ca2bb14dd5dd1d8646e66 +result: fail +shared_secret: + +# Private key not reduced +private_key: f1594ece355ed897f28004f3ecd4b02c1c9fd37e6ce375a9c02be72b3c735e59d8dc96c1a58945e718e3250a95c1d48f6cfe59abaf65da94edeeff3d0bd7e809c6bf16856a0e3e6f59955dbcee8a39175295d5899b4abaeeb6a7b309f77426b6191cef3c7372a0235a645bedcb577065a6a2e6dbe3108e50a8633ca8f388ff6935c2f3584508c0da3898e6aebe4245d6e71f982e9de79c4cc950aa35e03ef44bba78e3bf4176769c935ad20554aef4d43caf04f13ed5351b08f36968e4cc0ba1861af7032cdc9de66ca3675ecfbb3aea48496b2e79e71f4e755656f25efb05ffaad353c93dbd68911cdc7346f183063a243e83db38d175cd648c44f2361954bf9ee65148dad3975305bc6e09b9736faeed6c65d83f63347e2584e7af6bf43ddc7cb9c1d725f2fa87c684bcf08b8eb3f11f98ac3e5773dae0d8243f475d55d8489d5ce385e7c6c0b5cc741d05fc7f6fcaf745d9ccc8e4e9644f6c35bb394a4094745ba69b6b8f933b715581feaeabb0f8ac9fce5dee8d3a29ed57e4d87bd7b9c53af6b944bdde3f694810e3878e3359ac1d9246bf9a962ac32d2ad6697fa6874a4e3b7f35c5157250086d017ede2147f218859f818fd7e219e1827be533c851034d54452de4bbe6e8e75d56576aa6405ae499d9f68397feb0be52fb3ae720fd2f4f895f3a4b3d9becf2aa6f7c6095957f86b41395b98b947e471eae496844bb3d83ecaff8cd0f77ce2ec051fe81d79bcb914e6d4d5c5932f5643766a3de1f95cc38d5721b58a0596a371cc1eb69c987cfb230f4ab6905468ce77916d8e6df1b7668e6ac5bef429cf56a9fa6a7327892556c58ab6bf4be7a9beff69ac35ba63b1ec6dd15772c6dedfbbc6d1437cb2fef9c98779131a56a28258b8de6f37639f76894af0b46af6ed66c2c7f72fb3ba9b946d27b43de302db0814af40d27c7af1d778b1ad777ee7751f85f410c373a6376681dd7d8eb78a82e3a5ebb8a8aedfcca0fa62dae5f167d9fef9caf5a558168c9dfae5b5f3919f59184c20a0c37a0196a38cff32c34a32704301cfb56066ca60aa65a6a459689bab3291e4e731650cc79db805d814da97dd2495302fcb61ee375afa57eb16f47277ab8ab96355ac4fc887e4ec71fdfb6f95f06bdfe679abecf5d69356c70d24440216feeaeb6376bfd630edcbb1b655cee8a734d577353d95e3f93bb7e7d3a63a9d50f1fc1e41340807cc91e274971ff7d7ec86c0e7b63229da65e886b53fdf827795a8e3ba1adbffc80e5976556eb128543ae34965a2f876f2c418a47cdb457e6826dc12cbd3e94fab4001ff846ee5bc17985a38c7f3c6b6ac365adc1e8744b15334079bf0b18ed3e2a95731e950199f537cbdbe15f49661a5700bbb269fe53603aae095dcded06a4d7b548550797469e41beca50dd6d9111cfffbe6ea2ce84c4d437663cef7cee1b8f234b4e58bcb3d8b63295a5891fcea63a933420a33eed084626f83dccc8f002d844a593b69329df439e372dd6428c7b90bf9a97019b7b1f9bae23c87f152b6e514554cf6b97046d4cbb2c864c94a024d54b7f4af709ac878a9cfa9ea74c03f9a028ddb4974bd62a45340efbeb08baf237cdf1f9fc56767f37cca4e1ceed98aadc935f5f832d3a3101268ca57b566c28d4ee9831864bffabbb9497833c2e9d97805b3d125c96c2eb3bc37efdf31e829fc842ee6ca3770852beb38d48399a195cb91fab32e0b6752836cedf05345fec5144bf8a5defa2510548ca95666c579f36e477e67a6ae6275ad338e3a4f3795b7dfd24d6372fed39e50844cd1ddbe76d9cf388686c0bf06e775951a6a2636d95b2ade9181fe14bdd8193e7e4abd3f849a5a33858b1fa5eb0a0cee5f2f848171dcca8cbe4a10b54e8e364c57eae4e67d37c3baafd9ba276fea4bab8fc595f79ec0e403b2669dfd6b1735c5b7d85c5efb3a1ad9cde8e5de98ea4b4b8de427c39660c04635ce59619b5824d8db84164641ac452588e7c0dbd38b3047c30ec460298c75b73a2f8fdb82b6a658349ef58cad57a6581bada84b5978889ee5e956f952349961093354dfa34c1cd8972b7571fd99198be3aa9be9a7f79f0e5e4ef516e3a5c2a6036b79c0047e1404ea3146ab6d723518505e626f9b56456fad4d7df903d346cf7f82635783b9850ec9d65ce58a272193166834aa6b266f0964efa45c0469249c3fc0faeeb19d1508cb7c409b49a7e38299920c3433da3929b2552d5e9a1f092383e3b4d3d8a16ffd199f7d933eaa506062697c29b1fbf10292a4758d26ab61f085c31a0a3b85a19e956860f93a3ece8a0c22426b40bc8d0c1191754803d0204ff048c07f6c778fc685b2108b0327dba9361b00c071c8223aef0949ddb804075c3a0178f41bca68b676ec8469e417547617c8b8ebb6e19e83af1ba27e2db7d08e11f25805f959285add216c25a029684160a880fd2dc5753709ea3d81a59a91357205cf126c24f8858a3757be1c562c65166a0800047949c062bca79e03836d05aa6a91a30856a367b087b455169a7c3591091e72c96b7432397b6a257723508661349265c4c475ee7251e4cc26d739b33190cbb07a993e5b72288a55d5792cdd2c9177c9541f0a70bf066135e06a3ff1700af24247aa61e70f4727e6a9fdad70c470b671ca31a21d236bcfc508a833714182198c4c41bd1aee23b5acc9720a3e955adb119e9e06fb6c8a7ba5a37bea21565f77f7f037f0ad71d6ad13301a547fe8458c8363feb218a3ed5bf594c3bdc7a03003641da15479304810b5a0c949417b9a8473f76ae6c13144d7b3673074703da0389e82ad34165f0c258457367b5521128ec318df886eaa203e259bca111b68e13ae684b1f1b3781d8305193e094c20b1e91b473ac9992d1e77db85023cd043b147681fc9c2c9c2c1237c27f1e459b953ca0711a318a4b76d924baebf599d9eb852dca1dc5f80191b91281f8345d774a29053513f159164a705c954e53ea26b6927dc57a0fae5a19bd33bd67339e8eb925576a2eabda6b0a4743abe05545e080d5495402eb0629859671e130cd048235f254fff49a7d394f3b1c3de06a7847473119e218cf0944609958300b93046869c026cd93e21925a30da0389e24ba6f08d498748730e2b40d1c73452de8b7570027579c11a7417f2bbc67122c9286d1219d7230ee5b0c42d724d1b1cd4b031500958dc7124177a25651781657904fd1267f2bb69d5c929f8967cf216924d63696627c917f82bd2813563cc443705b0a1b279eab237326b4ce45504ec710ab95d01ad812559b2b8be763c1e9c55449a1366fa2cdb6d0106856b080a16d7e3700b0771a422423c806c62614b047820ad6876d7740b35fd674d99605fc61638d863ce5cc6a55d62f83a4a68aac10ac065657870b5c623970db1a40773500757178f29d54548aefe92eac306fa8f926e5f84b15f339f4fc388a554b79d87325c81f9e9989c690920f018fd4440afca405b1b667e489568121178cb7a18ee2c38e10ad4f5a09df64a76c0badfd08627861144f8a449df4089a08c48cf1b110b443d16386042b6f24730c921643a6f8b7aedb9a7036339f1b156c1c4de7f4a03acb57b1cca827146f4bbc30f17a32ded42949ca5340b0494cd29098260a87bc7b50440ded82befaa1a6c4c28bcebcbb16990978ea92a3709b817996f51a6e080578f2d060b924c5d9b93098725eea946ceb84a0a884c7fad252bfda7aaf374e5ff8703941a8483493a5143e0f9b6f5ef45f683c2ea2c4b5e8b92a46984064b97e28d339789a8654e27e38c84ed7e4cb204412a434bac227197528c6c6e1625dab98c25557e16cb5b8249ebc11caade0b5fb505527d45981864d4abc8e1060cd9a7467465064c9b8cce823b6bdb9c702a7a30415b4fc6979d2476b4511909c90559f70597375c050189ff2932852a51e74a21b32c834c734052c61137025c20708263e0aa71d87b20263bace0c0c98a58cdfca4889672e6b654c003a7e22465f97021ac7c11fc4d1c0525ccab768c6dbd124c8c533f49ba88629c71fd1cb6ebc4aaf09ab6db011348b2b0691bcf8eb1bea9588b640cf3fe97e35e92440284cc9607d49a3891283ac96c32a2a223d1c372b509b1d9401ba6bb13ebd5ccb6c44ba12e392b4d165c4940a714359ce122f6b34bc1344af802992c6fa2d85f1957045bdbda400b526b21bca1a0ce181531c8bc644799ee8477af16fbbfc33879868135a5adc748f88799d23476aab0643e5dab979f3658cb1cf19292ac6f30a486353275cae5fb941b2d49a0d0349e65917b4f4cddb9a976f322d8917b70278ab9cb16ef193cc33b312e1689170532f31b001350225180493d7966e2b216c709ac1bea73f1c624a081620b7981c1c95ae0387aea62fece8e4c1277c5b64512a4b2bb7cc80044f98e2b654e5bf0f4ea520caaae1f2efd8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 +ciphertext: 9014923a6bb3766cc008194257fdb5ef86a601ee1bef6189bad5f73394a590a44fdee7b3792b124f19ad9d5d468d9cde7defd8a741b25a84d9e2fdf4746fd47a7c6ef65e14adb90d0ee45bb269fd513c0326bcddccf1c785eb2b87ffcf12fe00172bc0346a1c19b8522feca6dd95e19f71d8dff6ebadc5eee0b40a74543937b7475874bd327237f6c2021b86e4da652bc6a9312b184ee80ae92a9e5758d2017376352c3cf3e60beeb18b2fa25798b13e88907bff06ac2e43562fe3bf658f0a48f39ecafc5f74265d61835c79d89793841d435ba1deba46d46bdbe95f24b539b0c860796f8b8537c8755e480b3bc14a0fae4928946607371b79ee10a19b49cd7ce8a34179bcc6d3c526c34db107dc24a29fbbd93900abeae40ec107fe3de3289b748794469d375e4f0f2e3546c40c73b4d4f7846fa37caf3d6afa1b0f6eee1b358aaedab8f41c1b74eb5d77bce45f2f3b70eaf15e95b49681569e5d29de8ff9a7afe7ac65916cff80b26aac57d8d88864c35a12ad1572a4f17c6c58304c4b4fce4fb37e51504f6fe2505fb142c7bf6c5b7837459c3ff55225736a263fc5e49dbbfd552efd7208d8f65e8ed58b48d9db43dcc13117bd2f80be9c78ee4162c0dceb49a974975aa0c978d40f2882a1f547ece2450cf69ec2d31dbf271b2606b45d2fb7ebaf324a7e37a57c122f3c397b0ab84ff860b1f8641ca5a957d3446b56ac074832b382cc8189a5d49c9a53a3161a8eeef4f275f290133bf6a3b401df3760fbc5c23c94678b3a552dd95a4b5e45d5a7c657e0e27d30d5bc3bd5e8b78025040d5314aaf1c18a27cfcb9fd19ab5bfa906659aa8550bd26c242d9f5af54a4605e4178689a9405f3a03f15715e0c4e8a9d0b69b7a005469b0707906ca70dcf9d2792aa22aa4a063d87f7d1dc69218c5553cbc0a2204e81b97541039bd834be57580d5938f7c5e170eea127cc10bfbaac51ff8fa2394bf36ae934c92f0869129a876c8a6ea5e8b1173885d6a632f7bf9a0864d8adc1cac3c39fc2ba3bbdac80b608c2d617ed136db694bd951656bc7899e94d69719bba791d028144d857c01aa8701b50c53bdd47a0ceceb58ca6a019b09755190f47466a10a95389b9799c3baf1a55e51e7ab7b070359abb607919899c84ec4c636d242cf3d86cbe8dc76488b6852d5e9695cf03bad089456848080a929ad490ebfc551c43c6294e956f15fb2737fc1cf90b3ee67c38b9b6b651f651adce59de4434bec6d805c7c2efc36fcaca87015d9e9f994de4a1e708dc028cffd7b512091e8cfe2d97b858fc30f077dbc8dee63595e9175d3bf37979587f29256cae0c84469e4c7db00ba7c61b09dbbb512a42935ca55ad40ccd0259a6400eead12d9734632bf78eaeaf9501a77ace2a6f45f247d3a30a80e95049705adeb482a884444a22772c535a19c3ef50c9d3040d47131112c2f71d25827f691e410cca40ed6ad581f8ab0e9cb7b78f95044cffb2d8bf43166b31caf0d4d5902a51239d13bf6d5be5dead1f4c62cc0f5fbb56d1131a73551d7cdbf930daa82c9df3e35cfb5a7dbe738ca215911e0f1229c22e07fdc1037148a478e537d490390a593fbdd921de127fb033b1631a52ac9a54ac072d49cfedc0bb1370d0101ad40cd98f4d1b2530d2f12b98b39fe5ff96ca58024902fb26aba400bbf32983e15ec43f1194d79292839034e161c7ea3c81c9b53e112d035c8c6321ba150308cbc934470fa625802992cbf5d2246da7af70b9e371ce112fc984052ba2fbe1be8884fa85692f343c5be53bc472a9a18c899b157b32bfddbd42f761fea66708ebc3481ec5afb6c7938bf4e3a3c8b6fff32475391193103c53015880b5c0232fffc8d605402240a48653f84a54bd6c0d366455f012d6ee2f0c3519632bb5a4f577668d1eb97d92787a26f86bca10a1eaa55f9e7c6c2a4981c0f7cfa4702fe1f72e4fe112ae248425bdb28d919d5c97ccb84007528d527135255dd8cd5f230d35e137fafcb10f26e2a8c57b941aa32b63796ce2eaa9e0180b6746dc3c1272a855a101026704dc55e8adc870ffb6c7fbc3f41120fa2e7be78c5f46b72a03eb5077a43f3b7811230b5fbf43753ed2d08052414826a715b08189b311850064da249f7bcdd9a179b946d391e6769fb44b7d32f2b44da31b557bfe940ecc1d9eb99a9c083085b62fbcdb4d5e0695f1d1c177acc57d86b68f1aa0ca5dd +result: fail +shared_secret: + +# Private key not reduced +private_key: 6cc4f7a837b55547f99e1a8836b9c79afab583679fcd65663b17a3019fd0d9035fdbe5db99449ff7de4d5e16e1c02ec652743d60268c8aedc75c5b44467d7215b3e593349a86a6d21afdcc07aafe3afff1060aa5dc198611a7d49f8e7f692ca55f3f8ab0d3fec8fc5cd25a83311bb49ec8929455330764885d7dc9d988a5dfabcb1366ac383be8bc866e5b93b780736559adafc068dc4af75f6b6c63f95a454f0bb1076f7a2294af460dfe949ce0766e8b90cde2295deb1fecfb66cdfb5204d552b86a1b235298b535b7a9dab75565f66568be06aea98a6a1e4744c27f8915eddcdf16cf3da4dada784e14eaa3330f6c2f3cb05a7793c4239d5638f81366e70b28eaa3ac98afa3e93cb6a9bb6a682eb5d73f1ec5fa7558c907e4b98a424ff86d84fcb5238b825807652a4eed3c6ff18abda440c4e94cde5344b5d44216a52496facd53f23c5e682df641ff3876521cc9373ce9ed0ee8d505b6e2bf6a33bac9b82ce3b3addf11d849a0843a44d3d61ddee1c34acedb3b98a49874f474fddbac92d969597a635d651d9ba5d55a20968b6517fba0bb4349046dc4cf5cbe154790d3353e68dc3855a7562e5aecd7b9c90daafaeef816135f810de1c088f4483c838d8e76bb58cae9a8e7f2dfa538d694481df1e3d87989f4b31e19539f1b60222df2a3a74df99fa08ecefb03f3d51d4b3ba9144927ce431a87cfd0f5702a8ae27dcd9b93ffa1d474b013cc9444fe37e0cbeaac8fead975c13bf69d6c6af726afb2ac88b80d7b8079c8e1e978caeb96a89f97781dd7c42256ed6b3d9add83cf83d563d2bb3d382aedd4147943f76011df92f77d3137eef7840c9c4b63fb86d46587eb54eb6e3e542645d1156f5b965c7739d5f90b3f5198f1a2be8961e6eacd8cdd40dd9df90b9a1bf993282b7de34aeed638cc9a26ffde57e972dfa5e946b70bccaf00fb76c02a520343b2501e73d5df7e2ac574e2def3e7d663bc054cc53fbf1eccb0ac775377c65bbc2f91c9695b56bff65f87323a7b63980aa0f1485776bf369ec3a3eb6adfd126860bde4db89f8a9618c684c779071dc119adaab2b3adceb88b278a3fceac58dfd8dbdaffc7a2d55b35c8ff18363a3e577737788dfcedc6d995b3da953a9bdcb46b1754e1ae87f97fc2af1bdbfd7d327646ca677892902dd5768ad91f7f7d6f287a694e99eb36a21b5a42d0c9775baafcf7dfba31ac7678dd75cacfd7107c79a863c4ef47aa72adce5b4d9d6de8b9549366273967a87de01a67c3aaca617d49960fd658bbeaa372ce72114bd17e1445fb2d96438d74867e42b077829259d9c709741238dd45a3d561b8dcc487f0234c94cd78fad4ce8572e5becb94e3b1868f7f3941e7256b0138d3317fd05653e911a638838e62eba4c7df9c4c5c537b9738643f7fb04f5cf80048a4cf37becb58a83dcd913ec58026b59136de5fe8a5d832daf7c1459cce17efeeba54106b89cef37bdbf9515f25bf9de37363e6eab6fdffb867bb860af095b3638f1d5310258548a7986bdd4a33a9745b7ec41e783a3b86bbae1f3a4b9971cf6755e7ea7df2a5481d9973c079ae790e747ff8b03043944ccb8b3dce32016856617dbab8ed5bd998f3221be7d8084dc77ab9ed4331df4495013e62c009b24735c736dcac1836b8603c7893cac54caffe50e64310196b08696b42fb8872bd991ae8d977aa3de42af5d6d9e8f2ccdf76b940a0ba85b06fc54a6bf60807c5e77ad62277a6d2a87e42e68e7f66b3c60936c207a57195cd0f4342be7557cca765094cb7d8dbdb04be34cdad578cb6e619d67f44b9a0c0843dafeddfefb3d0c8678ebe8642046c454a44f02b6e7bfce69128fd7c6987ccf0abeed7e7c7b603e2293b575517c8cd8fdf8e2643c626f69f6bc4abeae17fecd31b93588b888834fdc791fbf862abb733dc5691b670d14eb171788c39d5b62aab751b5361ddc4ba7a0a6691eff05c7cb2cbf65ffcfbd830383cbd134bb45e75760350f5f9a4b4f67390e671bdec8e3b6eaf35c79c4d7c72ffcee2aebcbc23cd74ae77b172e5b5dbd3374adbff031bb18c174b02755d8a53a8824596963d5d782e76273b5301edfd7fdfa272f9c7babb545a7ceaa35e72f21d96af5398c9d6c4590730ff05c74d8e308ae5315caf4b17fc738b3d718bdd46d16f7e4c8eb214830be3ea225e8161039550c3c320e6c57220e076224aa8fd48b4db59a30f71b2a2fbbeb05b3885819b672c48393c5fe1865a4c113b736505c1199b807c5e7669b7d2499931d899b21b8c1d9caa129761bfa3974c4a85677a0ea1a49c4ee022cf3048012a3b108b4380f10ad2c327a009717a64704a62cb31446c5c810a5a9928e1e4564f95b027ac251c464569344f0086106f7a4dfac13eb194abbd64a8e7db2352cc07ef52195de869bda087cf838fb42862f6346754f1744de8a414464ecaaa921bf76a4ee344e3055ce0fac32c15bc9ff3019c7b9205737426cc29239721ecf65ddc241f33dac59dba06db577514891f70d020f5b240b03493aba381f6716a16646a8a8343efc41394a90cfc896dc04c4fba8aad7cd66005e426a3113dd1a4be4a661eac59cc2742a229c6bab9ba26cfa9194ab41674e89a410bc7e8a25bc410bf95738f8420c64de5715ae624368322ec4a513647ca86a231e76b62e52753c939308f8460a7650a28d258b24c4662793e2ad4454b5756e1692c6e6822a8dbc070ea81f4a85d6a2a852c452235f63816a08d957cbab030c33b5535c87c5e7851c55503898f21138b61558b38b04ce78527658082308117978bca146f8f338c4b4b623177a0b1a51b5f134ba58c19b4db69182807f3bcb29838a0729cc2d34200379cba1f751b6764c27d471fcf7a0b3f9a404fd3bf98150150b540d79b1df00038ce770424838f58e10aecc304f29a9103177752520ae3d967ba33ac2526c85d9a7aee03845b911f9c0a516f10a06a018af24319385a81c153653fa81808a6bd74680f684a52b8a72ba5288b6e75bca97a0304f2c3d8e940dba7239869bf68c951ed8884dd32cdb254755098cef7abaadec1a47a7a0fa646b1ae78af8c608ee7535bc43371bf1206c8680634174426e062ad9c28f4474a01b6785df35df57014c3e8858c2a2ed9d911cda8303c318bbdb13370b07bad82acbad0bf04c3ad2c491328a20790c39292629152dc0e6a29199251b5bdc956a2c4272a4b894a87359a11803a8b67e236837d25a274c97eebb6a8a9e7ce73cca9dc91a1129236730786de0a22286b71afea28e01abdf69cbf460ba2d7d69143895630f526c5f2c6fe9a289a3a058d84b64228389c94984644bca5fa1f61004a3edcb94557093345991bcb9bdea45915a5bb95618f4d62cce22717a67c60042856fe8ab437066aaa733567694dcbd301307b4eb02cce11124bcde6a79819b95ea621f1b11492315e60f774bc5b207f42c178708b28a18c9883561cd66daf17bc0bc42e0050b2a8157354f7945828a488a941363b3393a1112c691e123c6b5699a5c945038b6b2dd6725e7e619bebf1c34c7c32245461d32525c5f49a763944cb64581cea3a178146dc759c29c995ca0793df62cb2153859a32905e785e8e6ba2b834918f2c2dc5cab10f8b95867467adc87111d7beaf69099400aa4e908fe0a299e8901ef5f9346fb07ba287235087a1aef51bc8933823d22b8a02c1fffa56ea5b1dfb143ec1426f32959a4103b9e343108c87aad2fc0bfc7384c0101afcb4740f01b57b483c0300baba66543adca822b4381e99870727a75c491a1129af47d768e4f59fdf05c6f491aaa5dc11b9ac7e20e541aaea11b6ec8b27e94189dc1be939cebfda109cd53f38fcbbee7aad3c65a3c51aa3970ccb31695bbfba3e3b10cdd0d37d848309ebeb3ed8601ca2d1479f3aa0f2766d24b0b0feb01d34bc5627ea8dcbd935a2303bd6aa6d01e7605d23217b98b2ce8564ce077032abc35aa6afa046254d9a63be6c4bdebb95e0020ab5fb89aa5b01238047a3c183188bcec1158c0cf901636b3a459a223a73986afb886787cf93a8aabcd9af1e4cc585cac6f6f424131a9e01fb49bfb38ea664ad31dc16b2dc3c701753a2870cf9c27114262167763902b58b2f03bd906aad3b0101b7898e2663bd458b5c4bb7c5f49c28fffb97bb4393ba3aada4c023e25427dd5016b089591277b13dd0c26ae3ccb06c088fac04b475477ddc1be06620cf3754548a6b2a551aa1b97df5faa296c6a6ecd052cda5903533c93445778755876136c193fb0e3c937bf71ab2968a25e8d1c9e49a9962ba0c78951f64882c826016f63b97e6f8ba0242a45d69276fe0ce06f14be7535859c87a9875904870890c5a620d8632f30f55d3cae33d1c6f5896e6b12354a75c7894d8905403ef5c4f316e67ab8b72581b6eb228a8f357b716164e0388d504a7f1aafbb06d48b6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f +ciphertext: 0187e1b558e87cf7a8b1a050fac3953c8d3038758f8e909e57c479f1f52cff138a78e583ebc02aab45781641aedb6786e7daa2693fefa5a39cff0a2b5359e4c09fcb167e64736752bc3f30a9249ad439689d11dd325232ca64af152f16abf8f821d144d97ab82df93bf348c86ac75f28f00e7b259494dc4efa7b125782bbd9b88583248e49849c08854e08ad05cbdbd6cbd911bc3482dc234a6ae89f9d7b5cfc9ccc8b0c3b2f38b7ae14c067d4e0f45e0f531a26cd2f49c6ea2596cb1a7b148df8ab01b0a60e4150d41ccb9aee48cc05ade595033682b29b6156d1819f8419fea16efe54c1f742bc2848d4351f7012d52a064d5ddafb007bc36a37d1de88f6e7a19a3f293f9b18f4dbad2604cc77dfbcf26f409535497bc0f9e05c830d1ac52f43740554008f032126e8464cacbf305d482a00ebbd737ea201cdcdcce295199150082c3964682584d3ec1da02f9462b84f36f88e81b93df3bb13419da7eb30a60920899caab1153f888941d88ab042d99c4c7accc20593b95634becd3124aae533c258f7b466867d7401595533dcdb941a73a72aba52abc9f614e6361381b8b39c3028cf8d65e518e7e098d4afa39384db1ca6aebbdfc4ace6f88649ab1d91ab0418cf5df4f93ddaecd76448528b2ab715633af9c8563b9f01955c0e86fdffa0132b62af9cb6adfc47f804cc66ec62562c51bb62203326cf812299c4d0818ed5eeadaf737c354164da0972a34cd35fc891d81603ee4698bbb7b87a6083ba2bcc6a52a574a5fc909d6bf3967ca3860e2f6e589201fc874e246052cae6e9d6cf9348231f7f30415a2703ad119758aa8a7d6a88b3ac897b25f7216dae443808ca1d76857f7faff60ca0d0855703f3726efbf91cfff5bbf11019f43ca3efb3851d324dd5b344ec0a7307b02ff76b92f8497a5e86ae94bf89f0956cd7ad30cd2a58f37af5452f356f53aa606c7c6ec7da7562e995ce3f9bf9e76c7f957085766eaff21ed335180c5e0c01c05b011ab76f2474234305038f7e6761b82ec6bbf19eb19127c01f1ff1a1772867350838eb666eb39ec6221488e7bc2dd3350e57a842aef984e7d00390d056962908fa2d3ed3555cafb639e5538dc0bfe712dc75e8f19a54d3c96866f0b40aaf200daddea384e4f736d41a7488121ec88b3d3e17768c5c1c1e089fb4c61c2da5bdbbf04e341567689b6162015d4203b221a0c32b336753dc49b7cbd2d61c2f044ec6b911c8f5adcd6c4ce68949d3c16a81371c5bfefb8e75654963cf2cd5b65ca9a08426102df9f8bd9c95a3bd0994f29c92bf978d82cbb6e7457967d4753f88522560fd64cecd04dbe4cf1a1b89cee7a34be93fb89dead659d73c881aeafd709da98fff4d5b7834b2a76d7943664fbc5c9641e11884d89b66b6c54015a8b2bd883d7c65f83d219e658b20f1321c95de44ff46bdc8aa6ca0a33bcb79841384673d5cd0a2cdd77d46121512c1b22f0f42d87481b8877fab7d26d2231631c69c4d296274527c5072069173ec72017f8c9ce6a83f944b64e9b1b55d2b714926f71e7e7795c5665c6b931e72044bf2c070df1ec4b42c530ee5e8b8a8b5323a82ea79f7d6f301a0babbf9a69542008ad7731fb985e5b8148275c92969a8a543945ce880cd22141ed171bb00ea3b396040664451e14833b894e4ee1c301bbca9540c3658b15a60da505f6f1fa625ce7107352247fa70bebc22eed0a0e073c70479ec126c6d1b7479a5d2e5159a25548448ca3edaf620f4d6fde071fb77621ac03196138e212b0c161daec7f12ba17fe5a57e6edf4ac4e2a8e491cef82f86f0437ba48289871684d354577e391743267722540e1bfea234b0caf5af9f4a3947dc8deb2d4d6b64b68f54adc2c06ba24046f23b40e07267bab085482aceb644351e255971c82fc73c792fa4420ee7e1bf42b2dcd5aad71f66954e91d4367c8505e1cc4fbd2705dbab906b56447bbfc73296f1e4131e60273f33cff963bef087c4f11f8077a500b3dc082e1bf6eaad76f301d7d72aef47816f0ede7c2c5f48305719076d4e62c49ec6f7535eb9ade87ee094ee3d81c0a983b38e15b1da0545d3957687ed5dfa834e0a3c1061d13d7c06a27a1899eed333e7895e7b451331268e5d661165b0a4b6623d8e5192468375327081558f15252bb8c3feabfcd480a802f3e671cbe98f78b870a89e8360cfb62b67cabf971c59c2fecd55fb54e4 +result: fail +shared_secret: + +# Private key not reduced +private_key: 343cf896a97cd8d63c255d462ace55597daa710aeab668a559efbcee667a6c6e463dc465484e9dc8c458b24b5f463ca8399337783bd2df87d4e53bc2f2d49f2ddbac73dc3c857f8739af9e6f1a906229a05bfc4673c87a2d3bd894a67c549b6631b9f5c67ff58eebf58534e52b88e6aa4edd99883f4a583df4e582ff16acd9846b04a957bc54665f86c237bcb092b5d5fb089a8f76b866ce30c10e529ab53fa3c6ef45376561a781c6ec75d19edccdf44dcc0d55bd7dbf98f9940c1dd2132e5040dcd8b31b90a395acf41fa9fea3adfbfca17e3d9ee85bf5bbdd86ef669986c4bbf1aa6f694bb74a86dcd235650e69f7184ba6e4f9e8a1fac4831d9768eff89ece6277468ba27d31772868eb6749175c9a2755c18d67a0f6658fb6b5a27374ba2914680d83d372f7f5181a6292ebdd1d7e9501257b0f33a152ecd77188673fbace2ae568bc1a890feae74edb4a1d1db825b85a79bf6563b9429fc7caab1e6bf5e8d8428cdbff488ea625d17ce73008e9cea01747b73733e91ccdfb5c88611a94642b661d1a41a943bf065733fe2449ee68b4537cbc8697ee1268cca564b5ea6fe88f9daae25988f79bb7077d6aadf4fadd3ceb2a5eb84d14de097b85d78c3c5c1dc595879784c7e639bfc70c49dad308a311a337414af0858af16e4ee34e34f9cef7fbe2268cc38ac8617b7d46df651e0cd7c4bec1d0c44531f5523b7d7d091ff51576ac2d6a91b463a68348a2674aff74cc7c20a79b73cbe916637830d9ee701bb200166d2a63a21b5b8e52c7acda296d80d6c897c86334d8424f44677f9f46ffb3fc5c1754b73f692af6bffd05458d23ec41275161cc50a51ab2570746048b45553dd53193b6f2cdae02f83ecf364e50a6694285523c5372a84b6345f484d1bfc8157cd5e9f3c6b76ebf1cdc557318f313c5c05c648be94b7b83b68ada4de9b8469dc93a51e9f47a533ae5d924dbb56878984877311a8c303b7c2cb9b62cb34c207dcddf8fc9d9e76c5037c46f6e96904bea372860110a721fbbc844963f2889d9e3ed93c4b8935826dbd6ca892b95a910565fb67b640b8d3a4eb7c08109cbd235b77309edf54842352b4a7677bc310563e5fa320fdab95517c61a5fb5687379c7fff9f5df96bec53cfaf346d015dea64650400ae2d6fd4e997932ba3dea117b3d552bb85326ede6f6ae5669ae9cfbb36d0dba5415fe5b8dd71398b0f1858ee5e3a6740a7b93a453b09e550e7cae362532d59490d70ccfc9997da45e96394dfbe6ddecbdfcac7c3fa984049426acc6802ff83598588d68a46c27f0445b6602e4b60efd864ad376099f403b575e622fd864fd3d0d67551103d02a8386b1abcbd2b6307c4fa62103a6ea7dcc0b1fee5fd54b659b6c0fb8641c6c74c12873f5348c3feae8ee264af78e316bfdc55dcfbc91d767344c7047cd455b36b67369e942b6f2fe2fffd75d5ffb4a3fe62bdb0cfebf0c539efdaba1adaebaa254a78808f2503bd6db85ff703ce5227c4a600cdabb28c3d2165c9527ec20ea6e8526cace2cf39da3705844c860c35d6dea477bae339813a9f2d755a22be4372462152eabf6d5aae62c591bf7fa8f8e7603d942a35c9e7a49ebac5e4e89ceb54d9830ef7c490654f87594c834d898a51cff6e18575454733e4dce0c0fd133babb661c84d914da12e4881e9947bb5df3b0eaa86f9984f4158d825bcdbd888e7af6d84e4bff49498fcfbedf1db637c92f87e6f8cd553caf40b7bb00236450243eb7349958286f380bc456c7f08a2fa5d8887a075acc0c29b231d5ecf9839e1fac91e4dd631b865bcffe68e71a4a54afec5cd9aa768e75c8b94a2ceeaf094c5a5d5e8ba3c7ad0a0cc1061f6218fd4a49c674b7fc3e6a9bae73778c034fd513dead3b8bf50869ddd544b03d3cf1d0549eb6ae46d87c3897a5525df8735079970afc8b5804eabab8b3b513844ddd8165af882518ceb79abf6ae8cce66e8afbbff8db659a6bee6b82e351ed4646f2a3cbe1bcedc0b6a0838532a1bfaead86dac43a7eaa39dd992ae72e5aefe1e860bdd5db51e58d1837fa942a9045358faf279a916663cdb431c08ecb30777cf105a0331d8769475f84c74b20668a991b53541a45071f36c33fcc85a56292ea7d471bd0b5cef8e45586e163ec02f364ceeb86e5cfffe6d4a049399c70ec588f847ca3ea21787531444355e26000209110be1b6994c3003332b95b6aa30f8a0d047cb6a2d9cfae2977e08962b656255637405057c233388e018753fec08442a6603878a6d4f8cbb2574b9dca1c32dc0964e82606739ddeb92402619649bc143950b753993e48da443b1bbc8c3a0e2edaa2710a541ea6ae48022ae1f48af844c2b32707733916c259ab588241ee58aca3538a0bd79fbf3589eda9ab08906d77778649f0a2b2a7898a651bae7013f8b863112c4ae2830a43ac421434236151b2aa7a5b3be77d4c85c89e3140f52804ca470aa2b929e8e8bf9b4278be1657ce321572d2196c4bb158ea891e627861dbc811525cb5f07a3377be081b4651eba3c311bb1c0357bf7a7923a524f003b02ebc030400b4b1e1711ef633b8921c101bcabce37655e8c651cc9458110e68566d0871659c3072c509538c5a6174063469a25c4134baa4f136e71464179b004fd361cb2b19d955376d137284039a6820211aa578189765f15a47e4b52d4af9447c4a8343f84edfe7ae76901d871b0a0d72414c4b01f35a38fe35a268848e663263439b4dfb9b3435537f54bb1e2b132528fa5942da8563554276d466e97a25cea6c7841729cac824dc3ccefa91c7d0a377f45b10b8f8cf78d00657f90e114363644869612bca78e402c8e2a6ee1910e07b72ad43b44edac06ec2cb3c448b506cb0a09746ccd84b3b993213b7a76dd681d6e7b7e9916276172d15538209b01ba5149bb0aaa55cbb04ac89674700544ec7079a8277a3dbc298034e08716849c0542dc42b7e32319b0b7efb43cb57f951b4912af0141965fa6e1701cc53d08c1887bb31fc93399823f1371712785ce6cb549b91099a2245dfd350c374943ee6826cd3c9bed72e7012028b938bd304ba0f5255ca664389335962f35bdf253e2b3933689070145462f245696e4b1d852bab0c817193679229ec684979c8f17965f4411fc1382309c28e98c095f663b587e967ef6320a84a474ed415e64381ff341daf491a9bd872a019a112a2ceea76661015b54181b8c325977b50993a5c26a7d992cf519d64f0a013f517664268d415a9c7f178c047a684495464332fd89071da200c2d70ba68c68425b815772b349cf4ace5dc1437bbb21e3283d2623cb58680fb1084e50685b99224f8c91d167590d4b03fd9a62d54695345217fb08658f1f6c25d0652cbc8cdd858ac9ad44616a8be03e06e14288c1ab27e4d3c15b156732d246ef8492efd508b41e6438c1c899b339874792f2bfaa1b8e55dc2740b02d23e8da9c0a1b91c61db66c92cb8bb3c64cc68bf4af341892441085a96f3aaa1a2217bf6c005a3938c2c61a15a701e090c84d93628e7cb6bb0e49c170079df1c0e364a4ad3622033b762593586549c79b764710b2107bd0c0acf106c7f7ba9accccc6ddb15d2b68a9fe7a2e8820ee9acbfdef8c139bc8b5ef47fd18626285409a59479d517714637b9d75aabae29cbf3418bd56154fae5195372299942271b0c90f0bb7f0c2537df6a433a2350127a24aa144d30b95faafb39f566651cc1bf205814027477c46b7ff1b66837c657af9cb0e7f46a42b4a74a69c36e716e2e993ad3c574aaec31a8fa5a950a8ce7823a7e032cb4930c95d8483aa102d1b20926a6a324b9062b29192431bcd61aa56488be8b9491ea373fdd276bf986ac01e6a9683785d3384acce6297da89657c005ac086687161bc21a18d6d325fef6059ff711a60782263a5dd87552f3b6691708a60459a81321caebba42faaa5593982ad4e0956aa42bb03867664470c8459a511026c2b8791a37278faa906b288dac6a1b7aa9588ae9062a31823076864800b08396aa90ab0a48a9798a146a8e77b104125ab1f1b5448cafbdc749ff085f06b02a2c25174f587f6c2583cb0384c521990b6c15cd926b40712bc503471d4b807f85b7baa361138312f1c62d62431297a451957375607bceb0009d09ba904a864be363bd220cab37d13a77daa42454b867307ed7c2a956d41a62b996e0e78c34b4ac0e7aaff8d8164b4a11f8aa4379fbbb34f14e9fe13a7f4ab0025586f130914c6183719a941b0338e1e11aa3f167a421bfa38c9142e02316d1ba4e64c60320c0a190cec011304f0bc58af38e492937bbd0ad3a5a904fb39ce365a13dc902166c864a972082fd9e2ea5548a3b6c7d885a3ca6ae2e12efc2ea3ee4ca0b0b171ee93a198b42191fc1297d126ae957ec70b3e5cc940f2649f5a8cee53a1feb5e68e08aeadddc273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 +ciphertext: 513b90e91123157cbcfea4a884bc01e7126867dad5849630204d7659363db9741b75bf90a60fb1454a58a6b9218ea88480a9c3784ff905ec79dc457c1bdbf42949c892d62050c4a3a5b1934d9efdba27709c1448f561cabd43ebd07992fe9a3eeaa93d2f85a58c78501ede9066448fafd52334e63e32e257b857434f1ff9d2bf2126f73fcf7a4f4d5fb1a9d3ebe75553e6f663ed451cee5c3d427fba5b362a554f3e25655de48f690b6d9028425b00598988fdd3fb41bc3cf7be9861b82b9a1bfcdfddd4da0166408498a88eb2e9e52ed8b0bf1685dc6862f14b59f9f9017459aed302a242f24f833f03042541a553340a99c26288d4d80257b867eb75ee67b949a09261c5c3575f688240595f90e95c5f4aab0d924ce0f9b2a4d6f7b21f1254caa24b0498271cc57f83323dd40d0f1b566cb72e435ae8cee0f502a6900651ba29064ad72bd0d2373dbbcb96938f110577cc08a90f8ddae8c897169262d3475ecf8ce5976a27a84ae6840077a21334bbec3bdb120323e01733e4125dce4413487cae5d26cc1439b07fb3c2bbe2321c12f7a9bfa3cd37f282f8909656470f8dc01aff581be3b2b5daf242fe8075e3f2dc7cb1cf640dd07709faaa95f2a210e3680675ca6583dcd36c15cf4d5b1234d76729a3e181409a60aeb6c3443eb828ea034cd97c7b1917d80cc3f4b6b94d0623f502ecd1095d2aaf6357a15c008ef838487131e9c0eefff80d64b961c56e400d9a0987d6002d787a733669b8a14f68022a47a7f1a7d5b0cc2982cfca20ce49b9910f656c8493431220381da944da3195acd40cd3cefdafab652acad95d1b33c45d69dad1349c314f7e0a5df35931489e3f0ea1bba8931c0ac5a9ff1900ab0b3319b7b32323d8540e6693b394765178366c2783a02de21196ef15b562bb0ddf92ea35f37659ab026b56c1d74c6e5ea282106b8e0d3910f0611ffbc00d4a2bebae4229375be72aa985211041b6be3afd316a7b237af61d591bf19b7d66e7b2141518c36394458d38397f8619f0939de57c53e116aa3989fb875cfd60d7c2c8f9f95a9b03a8293735d76caa4bee486f56e127af5319e02e8a6511fe1f4732b707198884a461f8af105658808551b3cb59bee524a8122badcea5a014855fb0ae4f66543bc1de0023432db13ba03b161da4971c9a647a9e944f04291d40416d01ae8d9e8789fa84456deb8e74b8deac4a4adfb91bae56ee88cc3e44d9227d356901351ef3b2ecf4d4957425f5744c09e57244ce56ad2aefd84a6f62c79fb22d6c165b969f9a2856388fcee1683265467b5e56d2b55e01d907293f5b441cb38d753cf85eda74e0a33a30f22c12f99f0f79d6a431f6d749eaa62c13b56e1e327ce0531d6495f043b6c77a697ed0127618e8b864e53b7155a63f76d210a5977a3432ac64dfcf93eba99e5308aa9cae3a2fc2692a7aa05018e66f1347e2131f3cbafafc14f6f1d6b1e2ab5ff905dbe8c0e0602ed774360c4557679d4b58adb444388e396e30d59ea092043e4d9bf9c4a07837dc6d30134428e827278dc13d8059563c6210f2192cffa0443743a829679fd840a6d2ac535caa5384a0002e2467f6b1aa0fd92c53531d8d885e947d1573f248d9f2dad6b009c511964f2eefed5e1fe6b37e5472e917373be0b2d1c9e30844f39a03b6a2fc3bcab6753ebf5c59ed4acc740fb56fd14b3a5b41050fa63ca3eb8c68a2742890bfe9f840323366e0fd40bce50578e5030359befd7cb00341d35257e959651e50afd875f2f59769392163ad2bde60d0e2964caa6634d6b2baba36286f6afb652d8b497ca74ff24b7b106f21116c67133ffcb55c2443ebe91b2f34c37fb0168b1ce69316c79afddc9095b2dc271e81088ab56442c87f1e7ca7fb7a38f69c184c4dbab3d98dd058e6f3f253d4e5f943df7b6e0d720771ab50dcbaf26d180bcdd6859ffbfaf447598b36fdbacbcd85f596f8d0faa0e5453aeda7270a88149b2513265a99cd2d12d465ba7ed2f2c2917e78d0bed73fbe3cf0e368585e58444038a443ba92f56f14034b03f1a3be51a15ffbb216ebd23eb533a0dba7e84029ec4f24f686ac968b7d77bd6c4e869e0f8a80905fb88ac04db1035ec0c7bfa8effe39f9a4146e6a4fae014e7fed997ef0a58e4957f81429ef52f08eb2c5e62d2cca021e79de0453381bf40e1ab17b8f88ff25a4b0a023d3542fa58aaa19653d99d65085 +result: fail +shared_secret: + +# Private key not reduced +private_key: e6e5ef1ff8939b5f842f19fd10a9cd020aec795de47f3a5417da6994e7663b536d253b627094b87da5e583d6eb8ed8a152a5f76df7b080d7ea6b2a4fb94bf9512977f02c7f8dc36eeb2644f4db64a60ba2083b984b1ede0029616295835118ce049fe4480ecfe9d5a02bea7fc8ba9ea074c15cba8f2a87d6237db9818ab99d856e3c5ce04a66441eca4d7fc74b148a37a5eb71040df2c955826048a1ab6a4c3619c1a2884fbf4495b1469e3377ec845a40314ca87c4bc87e8c8bab04a1babf37423f42a83cc41517c11e5db7124a730d7b54a78f82e2cbbaecad896b2453569cf2b3e779899a5e895d4250afb68af95381cc5ade59b54d7aebf3feb16ee59375b3e4f91ea716239085a77bc5ef9506589a420a6c0adff06dceaa98ffaad03657eb967c1ab8bb73a87a4863d35d87f85c29c788885bf21d8fafc5e7e5ccef13f89cd5ca97d71ce2b5f64b8837646633d43a0f6d73a3aa9e1eb03ecffe542cf8e33cf2a2976b245d8717379ded0989e2345cb6fdc7d9c97a81cad9515bdd27598554189f7e8b6e977a5d3588c979aac19ef6dc4f64ce5ce73b438cdc1e1e577d539afa4e58b946918085c689dcb227e7f240a843b2bc4979f5cfdc2791eec3bd168593ba8beeb06b829844b9861387af68b466498c84e8aa31fa39488cc67607f9ee1d6aa9e36846adf8ff04fb004f8320498fc283b8ce96dfd2ddfad2cda7d0e9fd61b6aad7deb939bbd396983693353f245d7335ac5fce277df06559dd3a6961cc43247cb0f9f7f69c438ab5ee4ebc0ac2907bb1289741b31ecf41ae5ded58b8d18c4948294b774c6edb047114a9e981fb612c6ae96354bb81afbf6efb713aeb72d5f434f9c46d14dc461507ae5bacc7c04789c1dcace99d4cae0f401ada5348aad4fb2e40d1864c76fb91777bb9901bd10d7a6f2d09868504823d83c5e98eaa7b5b408f144e02ffa83effe2a7e3e88c845539bc6b062cff72b5c771f8b7377c678ce473debf5b345e8cfcc7ea18455acecdfce73433961a98d94dc6bf844014c7c89cca5ea58a629149eff7dde35f1e911b6895567e93dfb84a97e4b8f1ebae016947a70b8b08e5c57869ef0874c6a2b7b900a490d34dad36bc745d1e3778ec3777d3f20dbe9fb49634cc3ddfb1f67e5decafd95ed0544c86ee79c000169cd908a884344ed204d962558819458d5f87c4f47e4fe19f55390dd3a7d454c2f438a3c751a1fbb13f77c85d7efe17cdcb989f49518b82b85586df793db403ca567d9e1f6d30366d48b458a492ec56e1bd8c661c5ba04b805cc631b12a741216448f2fa22dc4d6c04935f7c6cba45cf13968a5fb6ca9066c88f719d0411a43e875e641197fcef47470299c51473f168e75e2e7857716ba8005d2e156525dedbd05cb3327673385095d144562dc5bd06c89b0c6aaa2e21ccc7acda7f4bdaae87e42a447454b65694c6a5eaf3a7761b860189846a97efb89fa5ed67e5c8ec3d4299dc52326af5edb7de3b578dccc61283474bb8966b187acebb9bce1ad8031e66cec0bc57fa368af2574e7397a1177828d53f6a66a80944e5872537099d77eb83b9cbc5e6f41df35c093eb3ff663d3f3a9db7cdcb61d6c905cb55ebd721e45a7ebb676dffe37a585ccf4a3d02055536c3ab49a17a68793f90fc9366923654f4edb18cf551816a9196497ef6fade57bf4a2c4f1ce48a583d46f329fbc09493ed485d2b75580bf0ecc94cb4893f32fd6266fdaf865f5fe6572de8c8e1a30145ee13d5c6b5916ecd41f4683748f5d2d426288c7bdf8ccd3efeacbfcd9621ef83534cd4974978c1e7bec7dbcb5fc557d5b7482d6f6a49da1106dde65f8af72b3779068b24228c37907477017327026324fe3c607a86ef7fc453af88c2dba51114cc6803fbb46e58cb7995d4ad3ef9b1cf049bd5012189e7366ffd2baac0cc4795e55b5058b9a747a5c34c63439ff767e3f35501fa0ba546c76f38cb54ca63203f2eb39ab052894264741609ecd0748e90fefdb150eaa0b1c4765674df3e47756bef427afa30786ddd9d39c2f87f8dfdfe3b2559cd31f8181e74426595082ecd066afaa132c72b798aedde6a7c2ccd3cb0539ed6ebbcca78e5116d0faab6828ac6a60f58b6bc894d177e2b34892fddcbb695c36eb9c3169543c61969c22f95b6eb5fbdbabfed0947b8b21912d062783fb94b458013f34480ba83178c87d9ca4575ac9014ab22a7cb92b1bf41ecf098f735b3401e31bc02a43c447220da64ce22b17408ac536135641100d1ea581a14818eaa4c77b229b31511e0a403229889fcba0a2d4d3c845868816b79f56d6265d678c9138b716213fcfd7acb2c68f4fac7914d140cd2a7487b34146708115689407a9bfd24216f563a6fd220893c1c5e2c657031b43a29b19471b084485b7f739af017459ae50423518460266cf449b524406b9a2b80a77093afb1344bc1521e0220c5a113cc0c4a4321a77204521e3c758927c83398aa1f4bc43ac61487e7158ab4053fce98a74b14632054d3d3aaf018cbaad771326b7160247cc10a114434087faf515c7a39b0705bc374b7af73c5b60741e037bc69b10949db1739ad74a240c2191b3201a020f43890cb16390d6c27c39d40af0043b57e8a0f978627fe1b36c6c83fc97b49ae9268618b2c96a7a3612002b2673bc1ac762a37e07fc6ef3749009876399862d67b5b48571caf8b326a4a80b4544c03ba811b3501518d5caa107be696cbdaae79caa0191f5678fbe14934609aeb501bdb0a525ada654d77cb3042159686381e3677edbab5f7dd87fe1c4566dd7382f03c2acbccb14182b9a65afc0aac41f4c3095675a316159b0b7271f0284e160190de000fe4076b6e3073d302a51c7a6f6486c52c97446b506dd7c76ebf08a5f8c70e6e8479735c2ae79a6d4a99444a347ba838c43a1ace485a005a7531916c45181157c955817c488ccab9aa4d55dd79a5e243504a74405a8a4ac01cb1b9f2917fdab3b2909ca609739859383d631b65965affb4490d5b9be84a2902cb34cc50b5c49cbce43f8351a68b3476387bf87a16b9784a0e801e1eb39ee33b8b9ca82bef596605b59f33035a05a012d8549f0b68c93b784c7a309dd71425d3175ba50107d28aa8dd42369bcc68a8aa074020b4b21c3d537ca25b82a50dc875ab76b35a982b0792fd84b60e7db48fa0b80cdb90e1a95038842404a78c17d6c73e42951ecf2160db816cb7323cfc0b8b0057e6e66a36a856eaa60735433bc1680636d137b8da85f19334bd0ec9617d8b484986af31bbaf7e81a050c5b4dd9356563bd2f874b6b82a6e8b088b2ca59ef3866fdd4217efbc5dd66c72b66137ae65e7dc5c541c42a5c4cc1c1f1b678b7941d37ab5bd7292c665ea89b9679c5a6f8248f9fc61c2af282ec048bea74cccefc2077f370d3979b83e2a65d64be85742bb9b66308fcafc84038e72950e968b33fd98da2750484f1138aacc0e5e8607e352804316b26111c5a242c09901339fcb7d304c749d9205f169d2663a03bbc82658a0ca3025ec4d0a1e445be8fe3a72c672333188abc3010b6a98ec0f01d698b87f195b2e398ca6f8038ef0739af347b22076a58391c46573b0f782444464d9ea0645b4cc6f7136927c34e51fba618b082f826b29fabb8bce80bb0f05524348104eb4732e0ab4f4040e104b78ab9317b558330d4995168752ee23455eba2cc4cb679687be93860ccd1848bac42616893e6e710645b354a657e4f064e2d3266f89bacb8585e6d927259723e7d321aadbcbf9638b1bcf917e3c203fd06145fec0be1059c4a52ad751986d0f0bbb46bcccd365ad6b614dfb87dd7f97ccd731f4f9b280cd321d7d7679743833823aa5a05b1b3d0263858cb2ec27677da6928b26d3459573e25b0ca4964d6798cf250860d055418761d7ff0189223a1d3eb6ddab21572b58f0f5ab03a1bc047d7928c060844160e169b2ce072a89fca5b384b81b89b24741674ff5223d4116ada77797234ad3cbb1f6a78cc33e27b03ebb0d5a18427f625a4311a9599ae8723bacf392b7c915aa731c943f49c24f189055143502cb35318432c8b89bd2b9243f35c4b443ad48126207559a2314a77bc67c4d79a3e010fa1686761509e6774bc2df86eec6c5e3cd547f9a5457fb4a984590e57ccbbef3b38e441235d90bb60a24a691425cd65bb43b5868d128e3428b446409804a25333a7ad1f5c6d712169f660798de5a448aa393b5c496db978934c6eb001112440784db13825167a33206f76b05eaaab0b89966150238748c492379b387ec863fda621ada4296fe16593358ca0ab83c15225dd26691da0b00554c2398a2c44f171bfe63d48db72ee6cf36f47dd054b8f7bec5a4bbb6b0d62bcd24a3b8a6d32c53a51bfb7c57ecf5fb124740e9315cedb69ebbc969314e2b7469c2d2e2bdf2698af4bd116f0d12da3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 +ciphertext: befe323a205445d0b526d8169b8499bb6d5e557381bd3dbd8fccb9705743ab4df3d5bf1e83f78312a87d74389813f2ea4249e1c56d6727cb6e1d6cadb74c331652284c68d81087a237662da796bffcd14239e03d2e097987476f62c3757334a724d9b9518dbf2a82d06bfc12bb1efb86a1d68e638ca37cda0ab9fe2b0bc0e54111b11bba4ac4023decedcea63cd038a9c0a1ea66968a9600943b68270e653a38bf08536dc6f8a7f67fcdc4580c08ffd0eda430761bff7030795107a83ac82754748eef53621cdd138128d6773c411ddbc635e4851a11f4f01a172ee11ddc79a525f2de9f2831f34e55b679a21fe5cc96095837d863d515b257f76ce9d588dfa6267c93711b98b37d9d2a4222b250b7a452102b2f3a33462b828608531eae54b2b3688a68443a77088b93fc16cb7e59cc86705b371689790fdd47ed4699d959e82cbe3c90209a54830c56b0acf1c20b2685eea9c2237d2ef573d8739bab9d4f3deeb7cb4320ca1856e1ec8759c23bd361c18046fc43216b46269a076bd8b02f1847e54fb6faf7dfc73536a2a06c9817c022814a61dabb29d6222af5dc508c08999136c3631e33a09c485bf6ee6ce8a89ae9b89ae5ce5f7052291f32c7d18e1e082f1a5f208e049157cf7c3d5c007068fbc74bde86631089f232a176c03cd596732a00e720900ceb6e48bbdb4221fc7fc414c81e699064f97129aed58229ba7e1ca800c759c1b5a16e18e6744b327990d087346d70f535582659c77ec633756b999075bce6e996ea47a0e6b5a889173e9af7ef022a626d1037e8e8a6a4ccf10cd84440419a95d0fdad3a3058c3d308f3c47a2d79285c97ffd67138e6b44b3ef332cfc5874764dddebecef283ebd31be660ecfd8d5a4a5f540b6e297cf7c296ff88790e64886938f28b203317dca7e870f7f5c115910e250c66530bc9e127c3c6efb5fdbaed54d25c2c5f8e07f4b21edf148ff413066d2fa44aca9efc06609914b1dead69a60db93a3dae76ca9a588be28af1a5700afc4abfff20ed9f6757c5b23856e91b103daef0b5416d7e31450a0f85470b5954848b7e21e982fc083cf7eb181336bc2d91a0fb7109bd14a30e076ff633cd6a539b0fff5103e5bc3ee814d9365cbe0c8915e5d7fc6a85af830840c0246cb348e7bef496482bf3127b04ad2cb151994bf0f3051ce41bf7734cd555bf1b41ef517a1918931e2c2a1118aa0ce30475d081a8e36b2928cb83e86c7ccc3ab9231fb1fcc227338229f16cef4f6ae922d2310e35b34d1be490ebd8e91c03beccbc38d264f9a62cf8f0dfcd539ccd43469d4c8e6e088a8815c14d49a69e3b28ef990f319113b5d39d2b3388a2c6b8daa788482b78ca6b24a6d64cc7b0def3a3aeef1d2dbb8692dbd82a124638cfdba641f0d9c7d7c45a2593a4b46cec98184fa3067970c190e34b135d07328c785e489724ba1576e5768c6d1e2148e44168dd1e91647b8613233fbe9c9d4021194ed8936fc6d3327cda69c02c3cfed6b40da3a9784f4ecb8561f34179a3518aa6228d37a9209f502bf518f641daf5147377cd65e20152346151d553e748a02c498417cb2920c429d3251ff6f87eb6460cc5a70866b52084ccd68b4446032efbffd3d87c6ee663a85de4c6221413efbd940fb2722aecaac71394f245c5e29973526124bb1dff567d3eb734789ec4f49c5c4b96142f0de143792f15df1bdfb358eec7a5916c9bf22aade6bf7961c6cf4cfb33bca6e0975311e75d3d90a1923ea440911664ea2bcde517be31be414312ade1604b96d443bc4807af3c75e431668a95a03320d19785c8ec3f05413dd52cc18d01983c70e9654abb28fe90b795e8f14dcdd44d0212de2e6f9b3bc21f5ebcd50ff4bb5daad6fece570719d0acc62f033304495abd5cc6dbb47a08b1e94480ad4e009ce4401a10a997c981689f3041f8ac66d75fb26548a4bffd65ddc42f3eea2af680512bfeecb605aefb4d210014682984dca65c87567193c580db8f9e74574985eb71f8db1172515d25089dbc92a90ea463622ba1ae32d9146d59372e353948495c3dd09b526218834a064ca56a041bcc4d2f6284d3d87c73243ffb436cb3abc12e36a8805d15ae524a3c49de249190f4d245d67804344dcd052aa05ea1cc9534e4f8b9efbaf1144272fd82196cc6222622425e202a104e6cfefb6cea45cb7936aef4cb46c0c0fcff6e3d0544fc2ece9524f5 +result: fail +shared_secret: + +# Private key not reduced +private_key: 412fd8d9cdddd15e5a1f8cf3013c9a8d58d62f38e437b3e2e94c7a76055580b894cf66a7796ce82d889a1aa4dea054e12a265dee346d902758ef7b3501bdff8d0d9e3d8d3aa0efa39e9553981ff510ed5da8a85fdc2ccf54cce7b64d947e38d277ad84de678fecb73a5d1bc9867e8c09ab5bd87675736bcc8eb858cccf46fecd7f0a7b3dbd1656f04c7bfa3854b60fa71ecee1fe2c36a269e0d37a5c357ba06684e7560d71fd1bdc4f0cda4b37b67d36f734eaa64794c5e0d66d0ed96a5d7c7f3865ca8579b89c2b7349c3e34e43a67778d414fbfd88587c7329fa11f5d88d673e65fbee88fbcefd8aa72c7d4521749a384588a70d9b3f4ecd83a3e3ee0db5b5ae4236835055a875ada5674a1959e2746e3a38a1cbc7bc0cf6a2c9ab95c145f87bab8b7e1fbd8dbc79d2e6b36f0542ec73bd66f6949f0dda75f74ec803ed0cca8545cf5a431c8e43a9c0c99545a18ca7c6ff8d4f0e73c55d5c5c4ba94e1b87a3b4b0eec5759bdbb22163dffdd9d48527e02f7d745fbd9079f376914b643ecb3fdefdb68d384e2fc7f7bac38148d897554cc8eee5a986fcdc218ea2d583b73db69bff054134ee8e0e7b52e9e9c5c1ed88a99895baa375f6bf7256feb64b38b96c9eb08afb5b3647e802559f240ac4bd4f34d8da75b6839ecd9ff721a466e0f7a2937f3286f38646e396e7aa3dc9239c3e7fefe71afeb14c37139b878285435c78fb9b5489903bba677a963509c5bb5eff8165bba039d84344445f2ebfb153ff98bf7b3387f52e0efa208c71c42ae0955c79c6b6507c1d67dddb8e143e897854897b6ba01f79ba706f73cbe540621cf7d83ea86719903fdb5534bbbd9b9f75881ed3d9bba74b694595188460c8d491fdf69dc678fcfdcab19e8c59958ec297bff5e6572c3e33660936689a393ac36f638883d5a95e1d78c6460c69214da9a28895fed8d8ceac9590aa855248fb31a489ef167429e63c7387b79465fcdaa7fd4dd3aa41835bf2a3e5bb095b95d4539b76d08887ae15e66fe66e534fbc973f56f1c404ebb9498d0ea667637c5e563accb3bd429d68dcee038326a841338ef03b93607acc70666c50e34c6187dd3600043ccb4c7e19bee82ad39eb4acdbcd746833bead47bb92495df09197fba2b68d26cdb04064558f9453df6f8c4c983c1fcfd2fb7f4a9f373c003da76c37743a55fd8f765d83cf92469cf8c16c9b27af727df96b26673b191b3162a7da557caa648f7b5a2b631abaa861763664dd8b72c7e2ac53990a35b57f99b5b7d4ca3035a590ebf87e25e31a3e77f697e57ee74ae10b73e7ff4e8838c3df29c6d8b78ac6c7daa1faeb6467b6d53e9dbe98771ca752c9986006a687d19efe9e46374563a15ac3fc7c7db58b2ec9778e6192d36f04634fa0b46fd03dfb44e684008c62501fd9ddd6449718452413f982dc6550fff751846a250fc17503799e9a7d6873f6873a4593479b616ce3f91cbc3abc952bc4792ded4f7a37f922de3e35ceda204cfc06d65ddb9d3287887c29cccffbe4d59c6befc2c3b7787cdea2e49ad8afe36635982103473657ca2e4b32881b6ebe8c4e7c63594d34b34105e6689b7c671b4f40fbc7d9eeca6ce4d16bafd0cbb587410bf2ec94d30f6cbaa38fb9fc43651a6d94dd39bc64477399a9d41ffed55b373689589da7a6a23b0d7145bbf08bf56ea51c3d69efc3b4cc4f0db5e8f9089d4e0bf9c7f746f0b948a2955e26ebfb5ecb7c6ebf694db5ada7a7aa94aed9b2dd604c6afb654a4674b636cb9a5f668eff404b4edef5d5094befd76b627c3fc4c439e0b149dff03c30a5e79be634edfa39a2d9456c331c4404e7a159b8a89f1d588e3446c725ed7b03eb6ba3df0a4efb5d798dd71c45b2273f513c8279034483ca7010a9b3d597cfc7f699e649a99238b1283a935b199f57f6333c3ad8c553a9bb8c3810a3e9486a4a44e7ea5317ad4ecaa9b4548b86a9560969690e9bd2a38bbb628391eafa6d2eeb4a783c661f14b9754a8c2faab853dbc10793a61defb1ec7fc7e6be57890be985e7bccc89c0345da047c8e1c54738fbaef19744ce5166a48834e2c6898fe9037b827d99779968eacce26193ea6c0a5f308431d99d4cb9d4a1bc8b79f0fad13a5d88a5377936cf6906093a35edbd61199a9b9ad6512bf12744dc9d0e69962ad8e3658e3c8607f9775ea3b57a481ca307a36b36780efd410873f9067ef06a6f75b2f695620c9753f97b167df14f4b59a66ee953aea71abe866ff3e34cae61b53f5842a9ac3c811abc36798059db5a51bb1a003b5687dc73e279236e69477cd03c5143b6e22bbde999379ad131215c9c46e37376402d434a58f4ca4c5249c537b15937c38282d2759a45243ce36d24eb234c5bb875b2594ac89e51564e43d2869edc93cb2143d3f72c6d8672df16a08cf94031612199c224e25bb223fb646ac5997b806adc1bcbd49a7833409515c05238aa2c3445a290eb4e4cda6fe1e61fefd58084db9ed675b608ea1bf660195c226a6b70cef5a114ec584903aa427a34c4f75b7d0dbb4564c72c2b252ea9b99173659ab3639d3476332c74aebe0b6656e3cc3f99206406718e5718e76bbc2dfb8b409780263851db783979fc5ea3e4a18d6383762c6d5f782e7333876c10414dfb4548296d33947590534a01c399a3731ddd4c882012bd0b1448e066c528f28c52d3c34f1ca1e2da234f571ae9921084179a9673091555b9d671aeb33a3c41c22adfaa8ca800b92e9401fe31b35c311d7820284fc534c928bfd575881e5678fe81803ed08041475b0f4a36c7644441a067cb35a633a2afe385ce1a1b5c4f9c4a1580003d1aacc548a4d5e7c94c6a4799cb843fd4c6e6209e1eb1a71be32b501b004ad9c0d7a6b44c2970140a021416483dd835e7987b779041aac46806a1a538152e3b716beab69a86e5291b431b1eb68105380df09758871335be0735b4a22de2c4593da03679622c2af78f4d888fb178098486602b743d72f25a57b3533623b57cb905ab499835093b1c4b9d40d361fec791cf82a17417981ec713514ba50b46608c1307b7939ad5f9b1ae47ac2f0c76162161cf0677aeca801504512433918aab949c078d46399d873b0a6e9987e9aa71e52c5691232b8bc68c55508c9bec555d17a6293525d297be94559671c0209561c6bf7859c3469772c25e0863c16c9c4aa453862e52ab3ca942d887c959850cf4fb2afa3420fe55660c22516bf8c940ebcb1ddab9a36a341cc144a646321037c07231424e040ad92c706d254e56f48012601e0de8402221711102be85f54d3bc513481c1e2ae6c50a022d056967c6b032c99ba89070847bd5aceb4669619c71f2b7581736726dc800a3148bd2871d8bf60708da4cd13b8822209bc09cc2a88a43defabe6a24986d697fef253aa91525b3a3cc9f102c9ea158c699745b03af77d41d4df72be7fcb6b7130f308bbeef6ac699388976a574ee1a74e84b48649bb32ec763227584ee24c0248b7f5096c72ca172d2b81982f676dfe44a896618c77393475521eb6a6fb8ec6e153c72d7f8c9067a765cc4149fc58777974f96411739168deb8a6b0e905997563d7f13590ab30173bb23f7b7440fcb6db8f910b12958e0b62fb6f84fa5aa931b118ab4f1ad6374a34721c053224b04cb07982988fa3a569ae9342953165b012f31728960f89d589613d07a2b16c71e0ec942a812a72cf90ec9b23118a59c6bf7c273c6163a8470b18c8c2ee76f4d2975e7d79df7e80e759a52e6b689ebb7bbc7abbf6609560081aac3aba2b43aba545951427cc35dac5cbafc7d394bbd57a2854e84b5f0f3059a94b35f3b0f1ad3344cc2a40fb89a87e091c9c0125c0052e8b28cfff0c3e0390967e1364a4ba8c0b77a7fe83a65b76255422ba7a128fd4b3c8ef85fcfc16f80ba5701c9a48ca230e455b02b28641b98a67a851f31621733c0a779170ebd690111f395e7461127481fd8e1057d35b6c20b1f68322e72e92a2363825566445544995dfc08ccc492f6e19072e398bafc32eff92c7e229f87d1327bb1884cd04849569c415860df59646ec59ed052bade3a0ea6bbb8e9d924e6c43aea22cd4969528d50af83b977d4f8681fa52ae6f5a60ec1cedbac91b14b70d46c5ea18551f288690c3aad6428939426326c54a80b1c6281d51b3d47462f18c6c5931c60395a1e74826f6c258f5622f689c4b5470976a961934104b41100142854bbf75d40d09bfd9a0e64575a7546bec19108770c19a7cb48208780e1c657863163022c910f071c59f239a23cc9f1697cf5177f88e7580df8c925b2c405a3360d0a80a6ea1486136faa9c48aa3801ee87b7cc5c638d67be57548c03711f9b2b31ab319d45c578e5acfa30dc426ac3b194230a4bb5ee07f4c5b86efedfe663032fd6ec053e7ae81ee85ae4b3f808156cd357c2b36db2f7fae03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c +ciphertext: 47587ab04e0e551845e526234cf731036de9817d48ec4510a84cb183e70900d2ce322c999a9d08e654d466beb2ffe46ecd746a91882bd73176f6077ec0fbc4f51117805b7541fcd988faa8d02ce31eddb953410252ae9caa86e2a5d3079ba87e986caedc21c12944c88401435ba434bf0770446a6c4ab115f22095592487f89f38b6d659e9c800c3c901c140b6e027a5dc357ba6ff5489b20e3fe72ac7ba203b1655942c663cc98a31e7a745ba46ab052fca73acdf9f898101e8eb8f4d08a8f6352911e90f072a537d29f512ecb10b6fee65b2e4d8e529190df6ae31d5989c62ec4863513f28444f470abe04f95f2c0e79891710002572b43ea8de4841f13d72e97eae417254511bb4c69bec2040887b01e2f4991c52cf5e165fd922692bd3efe666af3a5e3f3ea046d160dbbd10e2859499e6ec260dd4db9b4b706e889a699c511ed02ff2a4cd562ff56039d4876573a6a380e77d87fa880d5d8bd7c8f8a42e97df4c80135f8d57d300736d9bd9ca9e8e9849e8d8d7e48a6e89ca52a6859615b6ceb2b412bbbe4ed6ee4c9f5c21c1574003261714a4ab95bb2086c88c441cd3425b6141a016d582269c2cf6fcc40f5fce13b7a882c978119e0c839c7a0129550155312c90e363c7ba4276114200a230da3f2ea0bd3b8363a73abb07d3b31f28100da8899809e529ddd346c78a9f017408656c943bd7a028322ada4240d47d33c84a0ef2bacfa1adcb71bc142d0e6c652b1549271c9dbdc4330ebc71581c1d36274f893429d08cd966e4ddceeda95e3e8b2e79c4760342dfb8620db4632fd20b885e96d07af21d603781fc4b39c7ff245b0e8c29dfd0b77e108a1ce8f42b5ba5564968d7cb77fcf3f5bc7ade80e6fd1d6676edcf06516193e481d3df21e36fc612e984c63a1c44d2a7614760f7b07aeb9be403912f8071b1a8c2b13d1bbce9e67ac29896cbeb5dae6f87431b39c55253c1b929f837d74d053be5a46d56880d96f4047a271861e418f870efd8cd26b351a4c15d7f9633706ba8fb5af7e967715a8a94916af9a015aca2331c77b95546f48ad8c8ec3ec00c048fcb61ea5af8191e617294e92e5ceb7a19b17f7af42fe9972e0166395c812328e59042f3f2790fc85106cb87ad2b318e201ee9a597f0cf982cf313196e02a5145a83ea1a0fc8054b42ee6d32468528232240fb914e0178544d6d200c1172feab5722290195444af68462057799dccf6c5b2b6a5add344d66d8c100b9c3ad1654ba1fa424c0a23772dcb1b60d64c624292b24efda70875ad9fad1210c80f6ff7478d9a14926da1875bf614eaa412c14d01cdd9e790d9c8488edfd005c9d3e1a034030eca417fc99b91a199cd3dfb4b52deffb565d4de0c569d92605276111693045fd8b3b3a84cae2a4616c6f249a06c3776e9cb4a59bf40e64207f180a4807220115e139c23ad7a3573f3012c05177a4511dfecfee943b650ceb60e4000bed6acf2ebbe270198306d079c9b6e5e5fb1199dbcc01e888943e808f414ff3704169c1d5870f5d0001ab5e844d10a8f0562103b79947f244e4eb9cc03fd261d9dddd5fedbe4592dfa5cba8a642195ec97b991bb52c129ab66d428d23a2e9070968604772783c2a4f215169f7fdf3fb38df8434e28f02b96c61cd6b86cf37aae45f637b1ef2aa07ad59899720833bd64eff30c485a8629a6a416e577ebbf9e770bf3ba067c00ab935a98ba543bbbb3cfc1e8e1cb51be7b62d1c8d0a5fd56fbef29a23815e053e16b5324312d060d4b1985ca0d855ec1dcc61a755633524c0a3d685b147c5a5209317a8caf4d6c22f549ab539ff79e32ea1f04e0a7ddbfc6fdfd0fe4188241f576c6e818e2156d64188a64548d5b19559702bcff4bad39f5af66723358804567bcc9709d0d4ffb402b48b4ebdb79c10400d43ff175df89f60051d5c1b608d87671a616c9589e76bb6156f6561cceb30babc2231147c7e7d3ca1756d02a401fb6412117b0b6e9a9e0f6dfe9982fb4c736b9996c16c390c6a0ae174deb550f5486dab3b4c2bf54c02e7ff67e9f3f00627d1e9b4762ad6cd629e765af4b026d470bcc8cc7d55834527ad061a034bff65afa62ca6b8e9a9961721533f318050e1ff4a67091fc298c9a685b74e035b2aec08ab44bb2f4c4e30cf788ab3ad83e488a517862cbd9e62c20890533af39c006f140cd24b5e0258e7a7649cad69a86c0bd0e5378dd65a +result: fail +shared_secret: + +# Private key not reduced +private_key: 76a86ace9756dfb462fdce3e1d0e409b79a49c256d8a75a9a317e2f5f9e3e48f40f46fdc11344f4329c3372ace02ce979b75c641dc5f10afc2ff1a8055dc61deed933169e0e13fced52f48ebdd82e9b355a0cce7cf349b2659555d5844d953e0633b9098f3ad6353a4ff7e809ee99d05c5a055a68e83a35b614361d4ab7e4b03db80cca2edcb692c25bb35d7d2854c55939b88e12da329cc35f607d3c94740a614390d6c89b20afd324681ce4b600d87b0add9eaef5d6b5004d740259928cef0df4a3a2a3ce412eea1992dfb8fbd3fc1569b83daa50a7687e1f8b7e3ee6b5d13ba399d5ceb285a585e3532aba8a235c4f9566d1bdbc64be56e4b088e76854868377665cc922dbda402ce41433d8e895eacf4ec8484177eadae6ab5164a37f8bd12f4b514eba7ff555ed444e5eea7a4b7b4ccb1ad8d507992adf4d1af6a60426972d5f8a19e7fcc2409584c4473f4e8d88e34b3775d4345cf42c6d7e63ce6ca351b3b41afae3b7c45a96ac3c40e36c98dbfce4e66014736e0d575d72c9c2c1f78db53e26ca5fb393c47b55e52b2c7c59253b9b8d97e1a8e8a9c0d7fae17765cc6dc683fd14c6562aa57f3c5a33ef648f1dd9464ca298b72c68e812e3613953e8aefb0d3a4b18357d30015cdc1a6716d8a534c5d31a5367c70184d7daa93533b46ef97a573fba6b7c39c9a7eb1538cc1b708b921196e97c7a3658ca9f0de670b1b79356df897fdfe180be001b7a8b9c8e322a5eca267e4db9dbacb9f4c5623fbc9ad9b5229fde647f6d40e86146b8b2c233f08acb4619fb5ca654c14d9fb6aeeca9478e2fd4bdfe56ac13739bd2fe99c3d6fc46ad3b39c5fe4a3e8f20e67a719ae6901ca82d5acd8bcc7cf2b6a3abdf995ec7a38c078d1b1afceb88937a316442426e403fb63a0bfad6947a7153ca7bb8f90f099a7d6d8322458e27adba4e26c5972ac4ebc95905f7e48023bb74dce3684267123f57243368f0c24ece1bd5f29b6e866f99a16afa85437cf651ca4ee7e8e5787a0872c536f96e9901ef5087bc898bbbb47acedc0cf3231db78d47b61edb37f3b03981bbe5cb80e81fc3b9a1366c9f98acfbb3b6e1cab49b52edeee3cc87edfac8d97f0f48633d1aedc2eab7ea10bea7d3431c8bebecd3dea22ddfb2e4b5c9e85c5a966db2105b99c7b7b121842a89e79057b6642976ef5e650aec633b1bfb3dd14ca2d1fd6746595113c7a241443aaad52152eb21bd7f38ca77691c76be86365ce2dbe3d1c8af7c559333b5f94a344c299e467a742be4a457064ae50ed355f39e0a235f269d6da2de7f3d6cf42a055ce74bfc29e0efb629ca382e6789cc95f0aa44bb2ee7107add56e5d7392c9c004fb907adf7a6695b762e8db6533a8114b6691845d7f9fccf189bdc4d3ff06e986b2e8f706f4781908d8032ba5dce871f355433dfd5ae859d37fb6455c0caba5a5ed4dd7757593fc4425cdfcd7d536f741b1a4a1ec47b600d430df473f2ada9314ffaa9ba7fe7e68c2a2c84d7cabe7bdbc9aaa44685994e2c9dc325e3b9d8c545b81ee3767373ed61c9ad5c531f6c391f293ab71a5f37e4afd78ff685d5db2aaed9afc18c18678b97143bbd538f3218a60a87b71f42e429a5b7ce32a48d5b3a4578a9eaa45aa66e6444d534f4ed46acedc33325333bb986028ddcb05d93e659a6dd6ad9f409fddb9be751ac3fc46473b4284499c5e65196871eac3730c16fbe358fae8d969a8ab5cf4eef34859bea98476942439e228dada967e4cc3d3f8d884ffeeea4998af1b3be113a9878b9f90f1e846d3ec68a21c8c4026ca25844ed1464074b84b3c5e351dd5a7de685ba338387ec6f77f9de8091cb7b0fd44964db896fa3a64cfbc9034a3d99990b0c34d91d464063c4d7fcd8dce0a4930a6e49955b5e06773d89dc618a881e91ba94d276e034497b433a65d393b3b764201583a3b57c9cfdaf0e35f6e477d725bc346b143d880d4a4ae34881395643a8fea3d1a5b797e622378cf73554e0d33905e86569695e0e5cff74e79f35fc63e0ef78745f99237cf7d33e676a626c7a679588ac7998e2332b9eda39ca33d5d099b087cc967bedc4005fb8ce89b905586a96cec6c35f11375e6db69ac7e439e000a97031b7378b99d221fad69a5ce78c46cc2c6a9efcc85fc3932a956ad313536f3a5b9810ac8bd8557528725705c2bd05331fbc20f5560259fa82d438392c7299463710357160f985555dbb2ae4438310e3879982b55f03018c17101c2556ec377b15fe6507488052cd2360b52b8cbc7856c8894cea237e76214da481ef0363c877294399cca9e38c249392d61a2772fa4bffd98165d24760bb90ce22614e892a9c7f350706427ba2257ea7a1304029a6ea715bda9b2fd682c6aec65f70018c26c3a41a30f53976ad8b83aff7268f6d9b3124a15b94528024a179dd24b8c56cc8605914ca89815f943c1c568f255b757220ac606d06a1701457b057ca323ddb65ef076cda0044cac79455798b501463d38d24cb9c65faae94410f79995d917c49319e898aad54c620291491f96362d4792bc3639b6551e5a8b7030e9870896ccf461b65fd82ed0f69dad10bb60805c553a1a195336435303c1c8834c3a25c2832bf7b62e1b50c603951c12ab6b74eb72f4b15abb5455d9f681a0d5a290c0bf0ae79b03973e3ca80d9ed283272592fd0a64938c26803441dda5907be52aab1b9ae14b62f9db044cc0c2f5f48f0b8348a6b26631433dfb00b180b721910b8fb533cfe4a8be1d250d75a9cd492ca059fa115132ae5463577de070c87944bc48695f3b4b04014e9dc29185446e4683ae2cf5b9b3ac399fb6c6541925075b7bca7b7326861dc105b3b57ab55a8117ef69b33cf79665663d3355819dbbb235f9693d7c0062e5293c0a32d7342c18648500f8cb3ae925c530b6507418da33a819e57897849bf3f36f6bd68287f7cf8b5281e9e5af40bb5f76c63d4a14cfbdb8235c6a95415c4aa157568c34ca9f58b3991a756bf5ab9b658d9464ae207206d9d2049d9145b7cc59261860267806a23aa513f3c39cd7aee8e71ae4b3a4a6ccc570f179148c2aa50bcdd612bd81f8206fd1334389b9a726208db920944530ca839f316161b89a59350b2220a4b6c67caaa2425d78da2a3b454e396386c5500f7726aa38530b881640a6870d2e5100ec0c25d5a39bca206ea5652b55a8a31cebc84fa62f2ab6a57a2658240a0f14841e48340cf158bfc639149921632047ace0cc2aee5a3e0f647fc0c671f648c689002d98910f78b34e80c523f9073e4e4c9e6e102818e996d3a30886e7bcf18b69d2a16fba1181610b6bd248035cb90d8d440f6d4729031b21a4e1237d710bddc5040047745b231a22246e517a76d76a0ee7985ebc794fc5a51c17d9a9e9acc471f89cbe260df5c4676d870b8713bca53a400cb9b4fa6c36df97a023ac03b08c621e7329635c2e9828719203852970c2fd557348f5365cc917fd3ccf71d38d5d96336026c7d33b885526632860044237b4a6b09ad392414b068144ac67972b3ce7a25753f631eb1a03b4fa2e9f553302a22eb9c721e9f2bf74a06673fcce5bdb77eb4b525d63906ab2c4e8518322d3065121a20546a8a4eb45f85881ce25721b0058c2334ffcf2946c7b9d6ac05806fa778b2041bad1c1250883873a95e3d5b76a3480d8da8b48683c5db2757eab9193750649e74440dc58a56b3ccc27b2a8177bc638b61e0136a215c8079666c77857018784f38bcdda0c56639c03196b54cbc80b49b0aba6f6a9df352cd09c5cc6e05f62e835f7a125845bba2fcaae4bf61bc55ac98bd67763ec0214cc1b7cf91632960c9ec01e0f27a97f909d7fc2486d0cabfa146b72baa14371041a5336c71305e6e68a43577bc1665c0d66c76a239095e13921c00c4ad11cdb69050f7857c3a1b70e2a2152ebcd0961a936f6146d6a58305086e934061ae32bad1b894cc27949f280320401188775aa5078b1497315639288aa2f1f826b48465613a73c5301383b69181cf14ab3a05035a79de39973ec5c1fc5869af11320350c3c4208cc68db8943a017215b72b3353b77003fb0d513bf677b81f66085e8205c17cdd6b603ac98310c9a967a7b99b8d3af10b66821612333e50d72faaabcf93612210572e6710e482702b17bed5abb5e4a57baf365c39b59dc7cbad13601de6b40f5370a49e5b48c9580a0c26195013e6b6889b99b7ee5d93fc8b795cc62a37ccc5e3de2692ad66e903c74bcc45ed6f16a68ab17d8e5094680c428a242d2fa247985a0b7d7a300f70e844765dc30437d032f216a8d99dcc54da34c0a4c25a8a120b3c32f45a3777467b1e639bcff1bb9839b6b45c7895bcf62307460df309eb4e61aa9cc8941418677001064ac161a607e24e15109d06641e916a660b3e7f849f08b9dcc32c47e4a7df2d5d4a374d3e5718a459f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 +ciphertext: 86bd45c7f9fd03921c702aeca836925f7f4b3357a938b39e06cf93ca6bc8fb51b72546182fe2108eaa9a3e2b3e182797e9b2cd3199bf716a8d797a4362cdbe2135197e5348a916f1071ba69b6034a81f145f242d8011b303b872f3a65ddf91d244722d6487694e0834c59bd1262eed11131f44f7f7725527b662f9d6fc872a290d2887486f920d55ee53c68e764324a9141b1e51d83f51fc41f775f28102bcd79e6ee8a6cb7c5ae4a4d9ebb81d8128bffaa3089d3c8a28b47387c3d128feda9e3bea9782557c62890364f1dba9a9f40f3151bf2ef0614aa3c21d20219304b4ba0033f1da2d7ef2a986682aebb48cc2e414e87372b7eb6395e12219b9787ea6337a866cd1b57bc1f92b3ed07b95af0949ed4fcd5a68cac94cab44d41d8dde50b4b952641f9972519943a9e676ae8326b244d9ceba9a777f133fd61e48ee6091181f0eed4fef74ea084d7ea18e1a5dee64c2fb45f7a79a173a661ab047a965e5fddcd09bebed7997aaccddb5a428050ffea4a71ab65a812afe9216adcc0ff0bb452ce4e05350499bec8bccd91d29d99831077bf544f45d2b47ed0528e9a8c70c75a6172d8a356ab9916328076ca9838c9088a70af666bca5a43a854b0ac6aa3d1ad17d44ff57d75f3536b55b30f0db350b4147609a0b7697ede10b73d1769173dc618cab1ecfe6b42bd0d4417165b00008f7a1057516bccf53e22a911d6f025ebed8fb25358e4df02c8d7dff9969f8e0cd317db8c97cea03bbea44a3e54ceef4cfac42fa7787e993ed1168d63766323ab1846bbf80231ca255c47c69e102a5ee0d46c76cbf440edaf8dbde36c5d1977a692ed34428e73a4b5229b73696189194c813819724d60ebb1484a805455e938b74790651a9a4b823a6fc1205c1e96e306c4ed46b16e19db187145fdbf22c37ffac2f754ea752b816645848965a5afcd4b51aecab597f959cf7584b919f795f921dd5fd4eab2adf52f4582dc8849eb5a37f171920413dbd6a114cb5fdae452b0e16353dd06716f4b24b82deba79fe3af51fc98c7d417ac5e735ce3b19add258fd6e0ceaf98830e82e273335aea870e9744505713a083655c1295cb6bfa26c07fa2b8dd8dc97e65955e2001a64006c62392b97ec5df62c88e3c2debe1735c0dec98253e7ceee437ca1541f3a73209b356fa4b2e38c3569cb268afb062319f05a8f2853c9f081c5185386d5f5d8336016802d805c536a72e13d54c13aa3c1e1bb79e2f0dba1c143bf4d903b18cfa956c2b5276def5bb0bb4b5f89c834bd19e8badedefa2f0274e83df07fa989537ba8b8cb8af458f7a02bf44b269d6556dfa91ecd76636e56730e35b07c45a9143afa4cea876258caf6e724d7fe0ae0386b9eb3f2c45fcfa31e8f9343e771e8cedb9771fc864f0a728854e3b9fc4b04c30f8c8adeb13c6489b66c5f68aa5cccfb25771b666340747d0002bd70f76ea5aa52446f20894af51a9469f49e16723ac9e0602f1ab9297f072daaffa8b4104264ae578c1e3789fb405f01b44c46548944a46c87b3da0ac08493fc6e0239d86568b1132c2ad430ac0d76bd2046bdf31e98b3bfa83eb29ff895c05cebf28edb792e7678ac7379578c1b6738ff0ae271e9de818f7071ab22798fbffe9a94e728abbcffa249be1f0aa11bb428740f2ee39bf24858bc583b1aac546c1ca09fbc87a5b46df572be14e6fa9f6abc4cbe3bd41bc100e8a4d2e73e60f5251c931cf133d2883de857dba56c945b6b80a8872ba0f505e889f9033915912642c5cd6be706fb39100f3954b93498f19c6c880215f179a331859af35da03b3de56f3c18fe2f2bd84ac483aa86fca3698f82ea27c15fa6c844e225aca5647abfc0747fdc5570fff8209c288d01c7f405bbd4d2da146b79c4e394f999ca9ac92179680943a62fc5b7af0e4cc71fc15e639af6b70d4df4e2cb2c7382436cc62ed422186e5f88219571786bcf60f3efd119dc9e06d2cf0c9aec122072658525f86ebf99579e5733f4f8429bfcd75f0ac58bc9823eaef89deaf510503b51af131a81a58a7eca063c310cbaff194924e98c4402beccd0c7e83c1233bd87c6b32039db84d961508e60b108fde7ce1b5f74ecbf28362c1db18414d66a75742c5f2d6dc3069960cab26d2447d7fa3140b017bb3a4e06a0b8183873c4f79b54f9afe05c7885a3105e49b30dc6beda36118f074af630ef7766a34d2d14568eb02de6 +result: fail +shared_secret: + +# Private key not reduced +private_key: 26c5b889fbcfb609edd18d5ff87c89368c9cf82c43ab7dc6f5abd1e297bbbaf7b8c943f722cfbdcb15f6799fd4e7674eb1e975e3f6d9c82a97988787b8bb8daf49763bccdfbb9ffa3deae9509bac10396261134d051fd73deb6b64ea8e0e98a560afcd38be4c1e27cff4e64c52bacadd3e9d57246b007f45aeceed06ca87f2939478fbd94a06361d65aecc9be48b653ee3ce5dc618535903b2669fc4c344f4576e830f15638dae3583e387d92c6cc21ab77eb3cc13969322c8521809346a873ee9d9b888b695f695bba983645f2fb1a6b3dbc05baf1cb49a51dc9eeb5c9c7077495e78d0fdca87d4ae5ac0d8cc2f2bbfca26f6107b3c2a77d039fce2aed5d6e92d40d07fba510881a408595e2fc88c9c8d0806a079fc6f7fd3f996273a0496c61b2fb9c889f6aef37097c947eb587559a4d1d2aeeb175a770eadea453ca20af484e9735a27a7b4cd3b52a34d9a567a36990e818f2f314ab369c1fb93aaffa66904d38128bf3b9f9424d84ba9cdadf8cee1a46bedc653dbad947a4d29e52719d01c069e1b0b7c01ad5c3d5fd479ed5e49788e27e7e2aea9d29037c2e3fb4173dd594d69caceccd5c5d87a8bd9e66217ec3fdd7d85ffbd477454e4fb37478e51c0c346053a3adde76c9575386f63bf44ab4b23d3852e274cda84712a28777d69cea67463e563722d9da956057a922c72a69edb0e5895f09baefa9473937f5c431e89828eacf158e5ec3e6855066145063b7536da4c38eba96538073971ac59bc5ea863161a7c0aeca7675f6b9d6f7d7175f1aaf55173fb8eb83d8805b47c89b5f0404548a144589d15490477ac5eb56c62e441d728a809afca8dd74982efd5c128e3ea165e05b938cad77be35add171fcb2ec6c90f6f83aed35065e74a4da9d5713bcab4bee05297e62786cd7839537f186bc77e7f124fd54c58fba0765ab95cb2b4bc4e167d4f5818e08244bcc159d338ab97cc94a2a038e4ad54dd34bb7ffd753dd5535f6b8bef35bb446577f622a5f2e599dee2f3ae36a468c3c7c21716411cbdc4fb1ea3e2baa335ce49483a404f6ff0cea6926ac56dd1fa856db5ad60bb86f0a3cc731b8ac0c48ce98a90c7dfd617c8c142697425a7b6017555c81efb63769d6e8e7e0b9eded84cb437afcb9b2e67c8adbe998b9a42a435456975782d9fd0aad3d5d9d2e918f092ddc933665ae94d68d3384067be97c72ad7c53d7fe9baefa17436c41550a0337cf70c68aa3fddf095fad92853f70af6905b81c528bbec8f60bd1d654589475b1883b77a672f7bbfe8b9bcf5f8b2c53f994d975cf6ca8cddd9f9089cf806fc49037b3c815f448b65812124c82cfcf601268f0e998bc41854de6350f56b4c3e3eacd427910c8546931e32e88a8d1f9c573388cfa3bc93f57c634578f387a69d432db756f7546d5687dfc9586245b6bb08a9d78f63e68cf11363d1ac1ca2c09ae52323fc6cca56b7cd5c91d33c44bccc515ab429d9a812693eb1f3380e69be20fc81c76b57bc99498d5f784ef3650cdf96d6675c7ccb55b67a59cccd9d44d9499b6f43150d40f2f3dd1ff3aa0cf66c6569cfa7dfca8517a1d5c87fd1dd693f0fde8f2eba5a5afbebd77cf55698b2ad9b2d05bbf7d973c5f5792b165c35cce7f873a9dd95a6979f9d104ed6bd685fe83871ec99772ba3c21ab5f3852e381925f7cfe7646717c65cecffa2a9ac97f8e8625455c2877346b378a4653aaccbe644fd75762a9cebb5d0f0283013269f1ba7dc9e0e588a149c1d98f3ec2e4e76dab3966a622f8e5ffc2fa39e2cb7898b4245b8fe72557d51785f3888bef9bb9f1ff3312ad3fa0534e15bde897753325378ab94c5ddd527fcac3a453535af259ad5d57930c035a504ff6af358c5385e9ff54cde602bb8266abb0a1854524b5311d7488754b51c77ffa0b3312e356a60d6f203be678c34e439eff720963a0bb5ebb454ebd3246adb35e1ddde32abbb85c18ace9185907dd3e75dadcc978ec52f9e388ae5b4cb4acc4183c588a43e08986e4ca45770a5a40913ad353549c975fd60d540039fd40dee7af243614ee4cf046bfc10b6845d8a7704e4e73e5cc2b3a6439acb9b2efd901cdff9c46945c2b8ec7e7742fd96a71076e18e6e8154aabb8e7c9c46bf436f23fe3fd48fd5fcd4f857b24737c4ea6cf1905fc562345af7a1521ddb8ce3e91a2835a177988a4e856467f6ced236ada9bcce8ed885b19b862b952cc8a2269f35826a290a90c170b7f9195f816dd631b1ce66442469c42a420fad3970edec539f11826a4a917ab105123b4c14087f7b2455202a5455159e828cacd84767e5b9c024f4ae6d37596ca7570fabbe591082de627fe04a97f45409fe265054bbb57426b6cfe71825837b4be360ff7b48af3a7226525b77c450cdc4a483a17d77e723c8b1282bb40fb621731fb504277ab50f171bec369818bc3ec22126f6a47ca2937f907890c7815a1e115143f62f58550a0459ce7e04695bc7737787a972321578222f5622449010287ab844e624699a1ab50bd872cb29bfd534b401e538c51c12dd8c467a14c24f5c9856234da17ac5fa28870dfb70565ac954c440db457214016e301736520b5e15538e92d1cb205776f849cc0b23211e6a67ad5c9fceda1577e625bd271587f939fb3acee14135613592a7364534c77c2a1564151c12e1c6a219b878180001e2c94053ebb1282c5288a707ed7b245f15054d87b901c939373244f776ca51b3b9d00628c9a8165993974bac2c0b26715ab1a1b9706e8264a0d210a0e627ae60b59ba58a4abbb61e93f0cf31230a624591e0d1a368390205d6526889640651b7cb71c26807b11913056629914fbb1bc2545b55b2610f992e73812e82b73d10a541a7c8621a4690b2c00149b5b952e91d992c52e8426448e5936dd41ed7725ff1c5bb54803690e7b642805b168829ee5696b5d51a13560a36409a1ea41f03ccbf6bb86a1b205bec128ef81c2af9701752fa54cb3784081b5dec67bceea87a8864bae5bca2aeeab4eca30d460b4015870c0187b2519783fa030a3774277e018274775ea2ba027b8624c1dc569416a3117b57dc5b34a1056e4c9b1ea54b6e5f55bf1cd3c027cac8f5f9b9e4c921d98692a007ac22c6b044f6ac9ae5acc4aa3062a348eb2cad9e77189131bf56aba2d86612e01accc76b3222b01d30b079ff5250e0869545641213c175bca181eb738fc7e80e989b43a0c4c7ba0b41404abe955c3c01859dc17b35f48cc39e9c6ff84625923c1229e9b7c3c2ccfa760c8808b43225ce4fc96bf0c0affa26aa43341f7f14aa37ba5d48798c1661319b31325d04afa0759c35153ec77b07d5d88050f5a1f55262860c94990460341c6eaa32055a480547bb0829d5c3398208018b4c098ac686f1b18870864e2cb0777a798c221a659a0e7e9c5c2936afc4897a611c55086330ee1689f7817f44a6c127a53597576f37b35b4f74c535444abf5342dcf256d04800b04361adc83a207952fb81caa20cc8dd07a6fe8864e562844882b405b5b4b65c948b237b385974a9d4963068c3e5b18c51d42a7a9211d4f274ee5208e530907db49db956b8e10977e2357223523a58b511fbf7993bba3c38a95bc0b98062312a1c9449ddc4082601780ea65a6bfb1467a01d9e326cd10a8e202320d2a29e9b36ad09c44127820d6d024b3ce0c818234f55d7855b0b000462b198a669bf924bc81c99ae0b32a1c21f448ac6084c71a59a90fb43aaa73266e69a077d16a8d1443de4c2b61c3ccc731437ff744b7a7cc3a02a948da951d5763f078a991cb64ca7b049fa1b1eecb534509aafe04437e5f84e974261957ba746705eaf4528b4ba3764816f45045d40e807c14c3577a25f75f69ccaa136ce627742e33db588bdb5cc339ef916d7a9b108180a637586da55085eda466e3c7734f85e6a903ef0fc91ce793910231a8f46a7e084c595177a501b390eaa818c0a9fd37c9be78160c7a398f0e80d8e58966140639656890cd08f7fe92fe316cb1e1517ae7741445a47c8ec3ff8f54f476146f1095f9973062bc17f6723542b0a48e12b7e4dbab100f3bf6dbc219816a76a3109ebba8c823cbbd9176061d072d57726cf12908747bbc267c59fa71f6c719cc7827b91919ca3793d03a73604e1c2c98ca2e99877b6c2b93c97965c06b2dfd71cbbcbc7c81cb56b36587a174e899306acf88fd2689e345a78657c5c0b65b0f3f8206e405dae4738a7061d54db38bdb2ab87e8cb6dc93f2ba0c11b65712840b740ac90ac3404b69cba2123cd335004d8e363eb08148a627b66b4142f66b18e460b59d05091640587212f4dd60b84e61f0db00ac05b15e83a6e0ed3c2bd281161cc07676e12ef19a936d073d684c1491518bdbd426eb5a1463cea8b671c02b230ed109318ca7c1470f5a0ab154b74ee3990ff20ca8ccb835adfda4867f03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 +ciphertext: ab3bf275721fa888504426dbd58ac20a234331510daeed10186073ff9e2d7b156caccc8acac8278c19968e136956b745d6ea41832eee321f9ed5ffe78b15638b64f4e467c8b02b462baa3e1a39fb6ce67a53699dda3848bc4707ad980be6ef1dd837a3bee0f2b5c1741fc83c6dff1fe486f5aff17f19596b5cfa50c48661285c395c5e74191f37dc4eb0d47bfd5224015e7b3443e2f41365b338d7806366059cf7cc8041d63c7867bf425b1468f2844b7c37e4a2a95f6be3f971002edfb5d9cd697a4e04ac19e00cb1bec5549a25ea22d581b2f7dd9fa57dfa570ecbdb6eaf15e96507a1f8eabdb5a56c93ec3b2d935180a26ce884e69e550edccffb8d5511a2a67ea30aec2c689f9209e11607ffcb3d3e59eb43e10864e45ceef642c74e065e671cf008efea88b0a6aee56e3208611e05b3251ebcb23f75ce7dcd75dbd3f393deb4a6cc4cf593f3c19515739d4f8fc3f567bb73fe27261c600608715e599e43f2f0fc408578b2ff7bf13dedbb9607e9fea6462cf1490396db33d1e86f002dd0ffd8c04c6364f422ce22c6a36cb379f6a8f75ef6af6cbb771b9a45f5093b3f0891a1c28c90577c3ca9c7e72bacee041ccbcb8504dc94d0e61c707c2bc25ac907fca7e32323f9b8056ae7b655587e77e3101dd9c7901f81472086851b78b083cda5932ecfa518547f23702ac75e09fbc45dac81c94817908ac1ec29aaafc197b9f743b87cbba8f5733730dec689648da1dfb24685b79b4a4b78cf9b3bb844fbbe52db29e96e71d0c2dcadf6a9a02fe25181e87ae45686cc857de917a7b60d6dcbb3abaacb2a6c6f8d59e1a052a9120a85da873132ab45dea2cc5fdc593513e172e970af99e73b9717e2e2e85e25081ad945ef3397d7338254a60d9549ce995518d371c0c672331405bcf88d6b3122eb55f876753520166622e6176436a9105655a1b21468608070a683bce0d9a959553a348591138c414f40ca3b7260737d70d79f5ff67327cd0811f695143f48c2fe55ecbeb7b66823251f97e7ee1689578548430cd832eee8701855c9a15aa932290fa9e19c688be321c4136c2dfa9fde8d7ad97bd1fe0a1829066616f312b473c0c996b50fdabdeea8fec2e88df7d7c8532a493baf9df9846292803fc682bc89104dc1f83540f3e621d0d8c348f0ff85f11a2d0d0d702857d1a68124ae30ddcdc38d38bc351873ae574f1c7032c524c87b7c38609840444f73c048a23abeee5bfd4027a26d2afe6a51460ad081a8ae98e881272c39036a07dd34b839076484b4bcde7ea5a0c4beceaf0d0c7e491375c5c8f796e64643195960243816a25f6f7e5fa1ec23f5b42c0b76ce60e581b53dc8933288486c400eb837f660be01982b8621aede8d15ab7570b6abdc9a357b338c681b208ba9ce8ec3fbf70994d5d6050686604dab7f87a27dc041acca71bc9376495ef033135ea27b9e3542c2cb980e6f6b75ea5740b1e049bff28b4f33f486bf8bb952762994df7c12b2907457208d700b485da9cec56362525562f7b967725a506d0926487f2994cbfee7f4c945dfd228894dd9c4dc30985bceb0fb4aebb36d8a6c0f1977593beca4834fa25b24102dd56623e725e40cfacd5b058dd7583fec862b5dc44ce3ed116e24191d342aac3e012285e511d4987f0183d032b37d24c19f54f35944a6c131f0558aa4df636ccc1283224aecf4c3f5b77b7a5db6405a51e060c960c87ec15cdaf5e080a089dfddc90ba709f6769c28a2be186bed959ae4b6a217b51c607f212213b1230e7015ef77a893e5816fdb1811317e321be94f2fa0bf398b8a52acdeb9059c37b65fb6ec48074eb376c522abbbe9f91d1e5661681bff86fa11d1130ff8e03ea5cd826bab22facc03ace0c7d66e0439f58f90790f1de4ced6a69b21af46c09116fdc8cc439c8e64d83d400326202921fd5300a3fc4688b9bd2fcb193d91e460dba2757a7e6f8d98aff772845df9041ce5ba2bb3e820b7af7a77ba40d0330bba2d48fe5d7ae02e3bbd01be2acec545f003d02e7601ac1ad0cc7b696905e420202ba9cf8afa16fb199a920aa8f95115ecbbef6bf031baa16b02ca8f390aaba0a9c13f9742b3b7ae7e9200307b76b79108022798a4a9dda95bfc45992575bfa04f2c69d1d887e95486438b6b19c51480afedcb28712b2ca165c942af6d08b8051222e24ae7b22dec5be1843529866fc2a9ee3af64b27a30f +result: fail +shared_secret: + +# Private key not reduced +private_key: dcbb8186f46c07bb4d372d3fb6c89a5a487a0d16c2aa674a1b7a4724176d0a3a3efa4c42a258c7566b39ef2e72b36b8102c9d0327b5c97876d2eff33951c6ce26366c264b42035d8fb4b37fab78977c76cb927d7c32b41af9e6709ced8c2d3d3c5958c3f8a84c0b44ed504af57f3ebaa86487197e583a98c446da8b467ab79de671596de502eff4ce4a204ee54e79cf9af4d35f6a6b3df33a0118b6a70d5af8d9a95c65a6c223398bf64e87945e9445e5db63a4c9707f6527ecd45c34c804cd2668c73397c4adcc7874b2346ab7ef3bc09d60d2f942fe7605606b745e6b375b35ef4b3be364353428abe7b29a9ca3d72e24b6af89d4d882f4b4b877a214e80ddd63281e7f11c17b8dc2ab00b5c71cf086e79b99cf1f7834e85b7c8f4d3b6ed9c1514ff5248c665b6b85bf84169ede65ab990eedad36f9ffbf6499f47c6e6236eb29f44644c88f00a09bfadb8d8a8db9349779570fdf6aaf342cd768d8f68ab2eccb64d67710995ca46fbe0ee5b54d069f501a5e04066d6633538e45c91cf5c8d285a42eec3cba225d9356cca48633e41bf6ae5689e51b6e8b9bf481b88df071451d6c641921e83184748185aa629c3e6139bbb8b666b9d165a2438dbcf695b0d7a539a7950b1fe33737e416196d5c7d8311ec5c61d153baebe4117b5d2f353570c15ea7975cf3f0d31389ab13409a699ab4b881ec5b5188d71e4e95ff54a3587b8a975f80326afce6d9e7b133da87ab115e6396364ee512a6a4966c9ba569f43f68877e9c7659a7f761eee5c9757d6bcf3782b957913fa2d83848f2966a6fdd7465cef276ed589269acd08de2874daae1fe42d1cd2379fd3c80ca9d6274a66083b1a5fd0df05473a056b20449d68d5af4ae6e7699ce126666276d38368ab87b114e58e1cd25dd5b7f8835e9757929c75814179943f05467eb6984bf4600bbc99cd8df2fe0feb174bcf7d25d4a69ac7694ce75dcebb3aa93dcc2cd599b73b1fe8cb3daa93cfd63dbb3e5a5bd84d5e13b59dfe5b86539037565b4e753ba075c9e0bd496935f5a015428f07b8ad5b3ec2ba89a479e6161e5b647cbdc9787d406ee09fd4fa3d7dd500ff3ac29e883c2683c6f45144ef98ecd57f63c9bef9294d7a7ad0a2737475d46e0927cc2a4ce72f5affda6d470bc4ca50db3b6ad5902508bb7538b7f9a9a42a3fe04403a0d22bad7f46d33d9eb6acecd3205ca686ee44c08ff78efbcea55c7fbedb3799fdc2ac2969e4a9c742e643550da9beb5c2a7874d971a36a278aac36ee3f48faaeb0877a234efc4bd89e929b806e7f6140d7924c65c737eed244bd0554a864367ce39ae842797cc5e4f70f297647f1a4bd97f36de55c6f4de343e26708b6f3b8a03c3d3043055457a574c9b7b7ad13e6de18a8f8c99a33d3fd7e5be7cc72e27cc8b0a397b95a79fc5b78bd5e79cfece4407eb5d699ba35af71ca6740adee5bc67b6a789dd395df6246ac0d5fcc0d0f5b92bdfcdfe9c5b3dab52f07590ea07ca292cbfd2c44321c4687c385760988c063fc3dc237a9fcdac139783d5caa0ebc76d0c25a8c2adbf1e1ca106466548558291df683bd69ca29671117fc6dd5b95040a5b434b81930bdd7b0496f9334cc875f8cf04b77e3451ae69dcbf3cdc562e9ee24ed989bafffe7b3bfbfd9deeef4a86b765fdc9d45919c2c70965f68eab16b9dafbdabd47efeedb9b3710c392f108e25eeef3784fe016e9633459ebf6b4a5f76e797f9f92665ec006dc5a5db6512dd9e5430de8bd1976068386435a52f6684a0ccf57ecdd86a07fa5a269a46e5aa609dea551d8e92a7349885b95b3cc38d3de34442c69eb0655d989fee8d3518cd7841b0563198a9f5526b926dfa02a5b3e7ea358cbdba5b2efff9416915d0afe9c399fcdecef70a99e0c534bcc35382f1b4b4283cfd4575a3fbedba05c77f316acd1a7459ec4da6639781154f5e084d676e483c9ac833f98e5244f7335796405f3a0a52c8eadb395303f8a0f5ba2468a59500ddcd67392288fb0210a3d97b546e4d3333b8ed440a6f57a6de6e9dc57a7e4815268a06273cfc08661276d5110163d6efee7b65ec986ac4614df4aaefbd209db97bb734da4bbdc9eafadfe2ad58b88b2e64ee118279443eae85abf3a814b6a111f5c7c2a7b268646594dccede3e9810dd88629ead43dc36f161381cbb8ff776b4299a36c893aea783b541b50b2c253c088683aaab40ed421eb113add58b322fccacbc9aa91b74fb0657e7a2706ad9c7c7f7813be9008cb07980c310f47c764b4ea496af60e8e6a534cb49852a2c17b4c7bf096c52c72264b7855b7a5552aa93d9aeb47f5ac34e340a094d411cb2cb962b90588a1b32dd68b662060ffa2ae2999525424114ecb4905a19a1284928ed8c42a2c5461520437f93d3cb76502201412a65983dcbe4c70b9f9320418421962005b39ac65703442002d52d18a83b08574895c0eeef19bfeebcfcc7c308f960090e9be93a01c36044220858f671bbc04f1a7557897df2a51adf85a0f7b25f1480089855f1a150bd8207edd0c63db7b99497aa03eb33a8068067d43a24957a20fdb6e11942559087c3ff343a2f5503b33756d55c9b9f29f6fe83d80cc3cbe9a00e8a31d0b986d1ef7635cfc1cde434f6c826ba5445a5933845d1cb8047a8e2f263e1a86b4f58433c5318e6b86942ca92cae767e2cca9111bbcd8b582a81aa5d22aa29dcc21f374a96e55302b837aab8709202141324386ff7f9c7d2ea068b057cf6954e6a433a5502785bf43ec8854ee7982002c703a0d6c35ee79a316a1fe3148b0d933fcd450829746c70e26d5b7b4792c40ee5c51b80cbba439c212f1c66cd619408d654aacc9c1de097a9d03478351e9a377e08710263728c08a71ab3db7f4a50774f0b99c8306f7d39c1aabc4b4bd64356476f85d6945a404df00b2da8988bc9f6b34579447dc3bda9d1a686e2c8ba67666f179f77217daa8cbe47a40b154c16a773627ab06c66b5c291b8616bd675c0351db13938c0a22c874b33d7cc128113642ad1321e5520a636681ae188f962a793b072badc69316b96fb591a99f53ce160c1c9e56384925afcf5c2dd74069f89580b3c18bc15ab0c91578686cf801b25c56c3e37847be52b5869c2b3f03b9b5b6ab0d2b5043e56bddb1c793d2c0fe47544e61c12ac0771a48c8249b3649d77ad9a4bb5d20c3ccb0ac05b51a0d1e29cc791677693b2d96b83c0d599e46b238063c50c7c101f3b3bcba18fc4da9d71b23dc133148417c2f4369b0c92855e538245f44496413c741282f5d7b1482167d90536b89165226aafd7e8aee821b22f69b963a87e4bea84d5ca3040464e7293b1bab723dd393ee3606ca2940431502f56183cdad305ea19cc3f3974236310d05220f233b383c5bc97ec1544a8528c1c74a6a48e9b9b31097477efa632baa4bc6a8abd6ceab5d774bf988b7d708926275227be2c416dc90fca4720437425ae9b4769443472e2b54ad8924935bc0f65a4740699f2051c1e53153cc354527450c8909366f696c8a323a300a28388bdbbec532afc1580faa1f7821c5a6988d8386265bb9dc1043c5ec2a1c51a35ec910d80a1a4c41755fa669a89e05de79b331bf13ecf88bff92ca340d5b961f446eca336af53a95173cbddeb643d4831c2f563950736fb912bbe370daff28cddc319ebe86958fb1794a97001a14df90b01b3aa0c6e952e79c7af072905f552487bf255e1f61536dc93824c7709492bd133516ae71c1b057cbce6a4a3d48b0744a5ceb1604e41a378e53a9afbac28c3cf97b1b03b31797c40654fc23666c34f77207639faabce69c1e98262ae22ca956bc043fb6748f54310379e975958584579fba4bd50e04b739020df78849aba007a4a23da8a18d449194073903d1a3ea4f43e0e76b299c233c5fc8534d831e69475ab6b611ab02da3251fdfe6b92475041f7814be839fc39bb06912799c553b4647a7073482980090c2c9a96b2866d6d8b65db1172bc062f3490b708b239fcc8a39e8175924c930825916386b463b645b4832bcc399b69a812a992d09d260cfc964eef5c883027a2d44743fd538d05b3417a26974bb639f494131803b10678c725a389aa6abeaf83bc947c6a3d031487488c72b1700b76f25f42ffff6595d87426b67258fb6b993508189e9b37f16c2efe87e3de705ff794b0a50cb7d8bba4059ae2e3ab4297429a3122c3e0568a64b64a401aca8ba2edd807dc0c0656b60b027290d23bcad4ba71de7f9989cd85ff43a1fd519b7eb40352d85b940208f9f8596f1946dc2366736a345d9c7501511101e81928380591c19868128a921e56383d12f19446577783e0b1665396c56cc9046c4c7c08a569d8edf0b76096e3c0643e13acf3d522c782871a1f0b31cf8e5a656d13cdb067db3640acd507a2fdc583369ee08e235663a202af6720934c3a59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d +ciphertext: 43caeabbb0780353630265f7ec031e271d21eb33a99193e5103482cbbb2be9eedaca422f46f1467f31f75e4add80f18ba0bf5ba8baf7f2e1f3f53a10a49a8744fbb5dcbf31fd72b8e2f43a3ccb1297495d690dd23c0cb128a080321ec598f9b10633d3b00fa818d199dadd8234dcd421fee4720e44b5b090a844fc95e37bc7e561507ebaea139fc9c2e137d6fc7dad05532bfd714a50afed3e10d6ee30ea4b53be87a81a2edc6f41545f1a4c4e74226371b513ba31a0a05123882c8709885170d8b52bde2488ef13627d3168af330a914219cc1c869b83a531e573025839676125100b376d6c7e19f0a8c39a84b7942a8f493803ecca439b8b0d6aa984092e1dbb44552bef183812235bf7c1771883e56ec1064166083fb23be4a7a5ddbfa743109a692c282e0be159447fd648417801281944a32bb68e39dd18081b9c2bfdc2828fab3089023acbe74ddcdcad8ccafe75030dddef45a3b323eabf4b5aa07ea14a814fb80ee16e8208fea7a21ff0ccfe155b5547fdb330c90aeae7a9fc63090e784d894b4dc25396dd989e3a0ce8fac844472170db804106f76c360f666860d50e4d9d2e44b32adaebbb84a276fd41c50067bfc7f158391ae6df38cbc70712d6f185558bc295135fe35781a73ad1ea611f33f465feb4201336338e37bbe146f966818902db5d9a8073ed3306b5946e08bf593352f9edc6e545d477834c77ae2239fb89b88650e1c3d7918426ddaef8445b7a32d6ea77dd761ec980b5167a3fa3613d5c7edb02227fb57d7981290ad7891ab98c1d127b75f5ebeccad787c9f6d2d7b3fe5db6ae2838bcd9ee58cf4ace6de6febaeb2062b1029751357733ca4946fe95c17ffc65c5ebcfc0a4049e55a9cd6ad190572fb5ab0d36244d01fe2a76ed4cf1fc6e709d8ceae012e613f81befc46810dc9b745f918d0587238d304840f7068c2c6f646f569eb5aa6c628a2ac4a77f270e337c3e7e809d83ed3075b9ef199fade755fb0ade87d4458305cb06a1fdcc77888fc772efff4ca7588499615e18aeaa17aeac591bb93f2bbf3d8b363fec4f7f62363ec2bbe9707664f5a18c6ff1d1198dcc42740324183a530b401b3c480f10531c2eb23b2b2fc9b4fa5891fe3c38ce751258c58e2d36eafa05b434b78018a91a7f010d0c8aec5460aa4ea0c474d888a7719c8fed5a1a171bea5b7783403435855b66f0054018271002342cd8927afadf5901500ac05f86c53f245210f54d4396053b5e4cfb140c9d850889f022447e947e039462f169dbfc6f58ce8a8aea3eafbb0bc57c5c34bebba106411e6606fd23a31e468e34677db5c4e9fa3897b05a4e9594dffd4c3c8f3957fec8fca9d6820aacd586d280fdb364cc83b001d5f4a167444fa461e9c37a131bac23fff2c500bfc4779bfb9e6f07548012df8af569f743aad0349c1ac04bcc61f949324284db3f9c84dc37e19508d5d9e4afa3c1781ea5bfbdbaa0d40f54e53a8146ef1bd01ca96fc77ef2f06b622dd645bfede60e92533b15d5eb753142cd2f845afbf41c3e309bb610b9dcd7642cbc64e9554b5dc09e3cec0cceb778d66891f6edec41e67aa4229fec60ae15f7bd3bc5960e5a6a8dcad120505c4071a722fdbf28fdaa344b132fa97f601743151eacb3bb04d071f4c566ddacaa02f226347a9368545c6f821293e6ff3dc6ee11c203e8e02055072e0cee63f0b062faaae446e595041561d57b5c74c6457b58e747fd63d7b1e9fdb12a1ea7c7c59a5d9df42de4c61c0fbeb55d946351ca5d78f41f5d569ad82766a6c386010d6e93bbc3b50cbbd06658bd416ae16bb3147a16131892ce84acd8871111c7e058f28f401518ea00abd0037d6be24195d0844e17dc72509aab8d39d2bd47cb43605ba4dfd475e603ebfa243ebd56a1f6544e705e59899ec3982140d8b783e523d54e2998bdc59f6f7e76a729184f09d780c8235456a595327298c07a146d4a52ab9f24da8c3bdfa6e77f0dc216762884adaff8c582a300daf4e3c8a532817a3b6c015328e6af6f948e239c257593c61da28d00b834c1b23ebe44a61c032b96b435d5a1648d2796e500600450ab459a1611b9dcdd78afaa382cf31f1adafeb6c49eb3ca4af14878d22f9ce1a567b1e502127d5f4ca85afc070e5f59aadadd86b14ac6e6076d247b5807e14b935d7b05c3686e47edf3f9c03f0aabe274232953e2199073d78ad827e77739da +result: fail +shared_secret: + +# Private key not reduced +private_key: 7d1f448f6c47d923c2aceea0d605f69c0db5b0f84304fa9192c5ae32fc6e7d0c6d2defe62f2fec4e3dfa02ddc471f7a959f3941fe5665508d9c139b4728f7d24d97464993bb77b69a46bd380a6668758d4de793a2ac3ed759d70bf174ddc9ae13c5dc8d21d37dcec6ea71a7a37e84e133551495afcfb0ebfbad6dea379eb614efae77d7883c74fe70954565abdaced7364db5c760afbfecf34c63b39fbb597efaf5faaecd7d326bc079e8b201630ccde66e935cf713373bffe749f0a579b77c185a9855e444a354ad804065c375de14d29b25e96ca34e8912454a2c9d39f364ed3ac17b7d384f222f6d5b60d43e06350e655bda46760e6073b081d69117fb5278ea81557930fea99f2ce3ae618930466305cd56e7879c456fec7f24dbb37dcb56d8d7956ad84a7866b3858a7847f487a565da243c7c328c355cbee22df5c499bcf2df8ffb77349d81fa365b395d4aea82d43326d464cabcba97d634fa0f542270f9d5773d4ab16f29bf59be0a3be83c4a927157db10743b9cb4070896e7abe7484bd7d185aa097c790b1c8e690edaa02f47966feea1f63587cc5e2d66bfcf418dd8bf8d609edaec5d98a788e3492e57db95cf0b3b4a29a1f466c2b693b2464dd8f48757b808a3e727b7f70feecd6d86339886a90ec6adcd5a66462646f66a9bfa959a5c89daf13b777f31bb0d1a5fe1c1af41aa743b54bc2cd4a3583d735a0774a65a57a1db99fde48381b456b2e4e5ba066ce94c8ce2f144efdd7e465f3aa19bbc8aa2cafc86adfdb06a784a48fb617bf3b7847ba1d37ce83fd10dbfcb92331c49dd3dc87647025e46adccd2a3761284cf2209dab668e6107d69d5b58e26a0d9f43facad5e5f830f53df75be72c4ec1aa693e2bb9a2a1bbac5a46fa9c29df142b71ee7fe429b58e89bd5851668bb0193df47d402a8c6dc19591d94d90a879b0c297c2b45fbc74bb6a91a598997cb8a7bb3ad9553b9fcee4e4b44e31ef698e83a38134be232995a66644e2adc309cde4e1dc5dfd7ec580e6eacc478dba4d52341ce0933973172df23f3efcd7ac3e7be983cb75b0a9145fc3ad58ead5f88a584ca034f58a596bdb2a64b42a471a2c40bfbff2cad464790d7cfa8eae7b179f1864a76d0b6d3cc3324735bc2c7474a7c9778777b01cc85c67fb68f577ea74479b6a1e37a006d0d563e014ab4261dcc4c89cd7ff298eba2d9d3234637f1b8bb0bb506d68f467247fe6286ea885612b0648aa593f5436873646406cdd3e65a549e71da6513ef1c0c84ad16c7da90f6b2d47334553967f749cae2d421cefc67efe3225d694a4f84faf99c61953a5199a556b8b6e86ac9dfde4f23fd3adb386f3d5a6c8a39fca4a048a7b7fb7cde58f61fff7efcc5290f5c55e85f7496d813faf94971f3adf577d22dc57175af5188ba951a7d597359c33bf4032ff64fd84941227f7c7b4940ff4cf12f4ce8bed74273adce97d304af5b274e44eb34c8aef4761919e7b0194bb76af3be748c15a69525aaba908baafe6f67b424dbcc9f8670b16a84ea855d686e0ec1a6cebc7ca15534bd84dbde128e6616de09415dfc8c58a48f4b87f98cda98e569d03be5ebea4418b86f93aa5f18a9e2873418d5bc9cb849aadcbd48849e4d4139560cd72b27ce7b02f7e7e3bb41c666c8caf69e5d6c9d15ae3b458cc7e7b37918dd3e5ad89f2a4ef4ed3b3b7f7caed6dba21389571fde4622d88db43d9592f54e7a4667cd3755f4b3e536ab68f36459ffd4c1fcfe0e27f59007f4ab9eed52a7cd3351a829b0fa0f9267e706f912b188627e9d7d11a85237ac296e362925e516e495e69c9bf93677bb168f900d5c3ee554d9e59ebc1a7f239c96d17937b094795e688db84f7baf963d95f9d9c11b9dc2e8d3a3d8af65a9894d9b76988f9b54edd33d5cf46111dd87987a1f82af028ad36138c42e0fd656e4338bc7e7b0db9f2e677b1d6447565f5cdf30fac9f7f32c2b9626277f9c1f683696f900b3f688ad6d716286edea3f086df37756eff610881b64bee34b77b25f3dc757f969b8bff50bd3a4fc46218ada563bf7345eb8039cff1619e3bf658478d089a88eb9e07b559d268be07ec3e9f9a752f8ce10633821fdafee9dc3b94e9a190759c6c4ca9aaa5547c1c86d714ccbed6c41ab53d3379bbe8ce89bd1860df788fd55f8281fb1c51f687aa1438a329b100805f99f016d9119d2d06c1a6978569e7c40cab47ce5cacc4d35aadd89047a3bf7175cd8833540b8a028c27461d334b3f8680daf57313d7713a35075ce971cac3cfeac02774c3589c21232d5a73d959705be77c3ca0884f8a1c3a89a1059972f115257bc0ce9f13271fd73e7293bf944b82865986a5d56e6c9c825c83271f42908c0953fea66de4ebb820013fe9aa9522ab4ed66334de641f8e66766bfc47a7a5156c182c0bb3628b81b59461b05e3a11d945b36a3923b12abf8f698d1234593d0c784633cdaf09cf8f4148f6320b15c48aa81b1fc3e79fa4055599935e1076c8c1780b1910af4ac9652249b0c64c94137132a12ab62dd265334cc46a3444437a74b076039f39bdcbe2016d8402081949c8e6066f09839cc0adfb5215590aab10c51bb03b68701b0692d1c5c47c58d214b139b83562728b3a771f25cb7638077c4b6b2f83b11df2369ebe9b4e51f36be72bb04e1b591852aea0cc31d1a774768940d73801b8ba23f71c542c8c01559862af4950b7e21f5d4abc3a1104251574e5597076f971b46c370fb1858a1cba35353d29a23db9e756c57a115539824f5375080990b3835023f448a2314d08c6897da5ae35325f9a6107ad4ca05d653ba78c5769e51b368c200543c2a2884a2d504a73827009d166218a981189b5556b38df395ae007772c1222c3e2778c34774c87ae0931bd116c82ae33b3454808e07cc5c6d16c5108c155a451e046260067c6fb0181ae084588017fdbb7ae63e96321290bdb4b3867074e6e684b700b7d5b1074641c5702e287d257b8a54597667c1ccc702f735c30bbaa84bf405123602572962ed89c2d7a3817ac4879d1392f9199c003e63666f1cfc6f91cfc9386b18615bd36913f010270e8a4a9a99e772cbb994b4ca926bf8a04cc1c20c885d2683301cd8c7b381190b0e3dca0d6c33fdd49465fd265781a16fbb546e9b6c6ce0462c604b9fff09cc2d4608259284b8a83a877b9fb18415cd60c37b0b3d6a48c803a61b0a5c9675018f64a013062440f0c40c62055cca7bb6cb9a293193485fc529922478e4c620a73144a57833d3b5b9bb222f2f4b452447cc06638fac1b4404402449a3cd60bcb2fbccdaea42086682ad7f972008276e4e5449217088b485ce6757eb3410c62796d0e7a643a3c72c612ab165475f6e51456d498e858aff563c1f7781035fcab3c85cfa2f207d1e4703d3015e14689fa0c9b1f57984b678baa10cace44a2fb23bc1f317d5304552306183435c62012b2ccdaa9a744575f959b57b9ccc2c28e1a94959a812da6f259d11479fbbc97f54a57a986be61f49ec42124da687221aa3eb3b2c0298249746b20cba291f1633e784608d5897da13a20ea377df6b95198132a7fd526d065250f97525d809bf9cc7270c7b723cc95dc9c8ddf5113ec4c8b3cdca07a7242034741a3cc684a998514fbccc435a8a2d92675e6c3f252a7019a74818689574c6ad907080954557cc12e1d47ca23240b78c2301f39c78127180c268b76289132aab01f457adfa649a4324a08e0bb5345cc2ef90fe6e33588d6adb499b04daa642fc01f5777bef8a7af04179630619d13ba0991cb36e8c23f16baab09a72e7388c93385331f7b5bdf420f1e75c7ad28c54df96df3f1086fe4120843af7c7878b4483956b022ae05112253b97e6a61780ccf4047589ea04000d57593622983e8187a6232deeb59f5e147ef1628a9f692b8bccea069cee6f49533b7301728a3ffc85d7db98398ccb38523254f843dd79bb58b4796a1fc6d68095b8faa7ff9381d01d61bd6694f2c225c46086031a86105661033948c29278e422b304dac9817401af89540a29a1cd6093c86a3878c226fcae156b85038f4ac53579143f2f5854f825b0d45bb974b724368814a9487a60a6e41261470935a90ebcf45b53279c67d92330556e99606dc22a2419021896b2eb750b2479aae7a706b1bbdd9514173f23dd3066161a0af8a6a9ef6aa7efcfb1306b9c421f63be2e376f747731a233a45a8309ba8182d24cf6598c26d65c89da9c9e9e6b9579a4817552a8d355ede798e09781b387c9935333b15d92998a4c736d266dfc2ab61708fcac7b821c01044492f7f4bb8f37b5026790f3a437cfa63af88341b95a8899ad31b37491ce3e42fd9b3701a63d537569b75a6b4b362c14f1b4ba66ab7914c9900187f105744df0b816ba22f5d471848886dd490d5c76169a14af42c03b0b56a7e26aa7ac4e99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 +ciphertext: 61571d32369b0173448b4bbab36ed34c32b4ffec1ba3370a0d7f9d7bed5e5ad086e8bdedc51267f09f4c9e442e42a8cac476db901c5cb6d9e599f64aab780b6b7fc119dd1ba42bff5b16f54e9379886baf6cf4966d99948f0392ff96fb1e027af8f750487b4bef68a50e6d383e927991b6932eb9c0435895c4823e9dc1f3ddd167309180e82da6a309be4debb3dd34b86bb545a24d20971f850c6ee2d21ed70dca709b78e43bf011ae7a00bd916b0e5fa520622614b5c4d0b8852a72f1231bd63cf5e1b72ecc8b13a26a9af8092852db8a3ef4f9ccc31248a5732a6744835a9554f6a14f8778ca9727ab30efe3cff4f66ac0510262d476380239f9aa249b50aa6297e5efab9e2f407559990c60e3816410912b0cc3d480d54c28af0b81c921d9f2b79fd3d22a33c566930b4f70cfcb23196a9e14b9bb3593a3f995bee0e9bc64c415ef3d9b532d531c9639e233fff5c5360b7ebb8ea11616f88e1dbd36b6c3d9037df99f265861b62ae4634b66baf884c1b72f581e4b2d5f1fca24385a76a998b42b5b9a094bbac9ffef15b795fa007d0840d4755a7bba1417c2e09095c5fe5cee4ecdb2548eb73b8d6296a2e4303e79ce65ef9187b7e7ff9aa087e52eff322f7e4ab56fcb8f0732f336318d2dbc2e485a358e36d70f91ad7149f6d7c80401216397f32f10928a0572896583c0e0e2ab0b33906cdc8b59a41ccb83e4ce9e1ff09598e45c05965b3548f5233b8ce34456a373f7ac51547a1bfbf91ee1947fb2bea228e76a46cb1b6370247adfc245fca831a0ecee168e16e71f87faf6c43f3107a2183d4e5b59052707f4bc2075730986d7e637ba5561feef9cd68951e45898b3d6bd107f236442cae0bd583904f53008ab5d291167f6f53f1e4e4040332938fb59d8b71a48b7274280c0fd00591b2140650b06b3a71efdadc63bd8a6b0113cc763fcc97f367f6c57e3e4456953b667f6b2f98adbcbf85d1815a6a7491a252b6c63c40674fc8529a263f64218b7f88f86fdf5e770e78743ccf29ddce1c499224b0263d080b7ff5174f332041f94972a927adb8c6b9bbda97852bd077b8958e83629530ed15eb82f46751d0c8a01a41efb9bc6c3d989eecbb66719746e218a9ea7c988efedc9b9d9cb42595fc3e836b902a1281a823cec78d6bcd9bcb8fa2f3e0ed6139f007e65c9b380f635187c66d80ea2d1ba706c7678517192bca307ab3bd796eb48a58e22f5caa6c2dd22adeb8a52f0e176d54a3361d0f71bcd46c6e10bad4892abb4b9bae96ced17e64bbf8f99f7ee31d18f635d2e775c554a6c5f0a7545d9071b99e35d0b3e6a943d1f42d977ece6303ebdc53f4f168ffed2ef618ec69967e376a111c39102e9a72c79ddab5fcf5f41eebfe9d6558a5d1e1fdeb7902a56cf436b1449e1b8fa89d5e2c0ab0d3343a84346ff7a9255088fefe8a04718c4a7a010732418694cab282592804dd6b808fa66c869624edc3bf66ef4fc81b3271e6d20ffa7b17e3c7df0c1d5c7f7324176770f8bf89b8f127308fea0bf4f42f363eaa11fe83e790b493117da73032446cca8bbe3ecea86e08ba7bd64f09f48ba3106a7a8c30ea9962d2bb950bbfc4ab12e0b7aa098c763973b7ebace2a7541fecb7b380b84c6ed706f0db059d952f0b3b25c650b974ccc2afa8f53ce2c746afc6e51e482f8d38c7d51ba2f304e89e4b7f5d3ab0784d891aa20ad7fdb03e718f5a092984a82b6bfc8f94c3ad1959d59fa163deae47091768e923f2aa072c8705f19e3de919598e85f13ed240540e329faa942d60f489141e55a01c49f69ff1aaa6961b867ae13b77325ca8c4fcf9a85aa1fdcc2f35c94ab7765f3db7c1502ffe33b73046238d7a38a66a8a21cab1af9ed6d46c39c8d2806ed98949e60be6864a277da88d93fb3ea64983c8d492552bf108b6d02ae15d295b3e071ea002517aaf1484bfe02f20f9ea52a4761d7bfbf220620ff5ff5a5728251f31f46efbc5526f04afb170766c06c856a355e831ec6bf4506812711314c96ec4ee7a25243d96c768048b5b2a527d970519809abfd2f0ae56e0e4b20dce86f28aadf9eff31caadcc7b4b52c0f285bdd59ac272e7a8a900e346612e2745f51700ca7694e4c85b13e25fa4380d6b4f21ffebaaa63aa12e3796be74ae4569ab7a19f7ca8adc75a4deb44281cad9baf579ab7e1848a30b734f85b9a2e335101f6227c9545e438e84305a50 +result: fail +shared_secret: + +# Private key not reduced +private_key: a9a6320957db02c598d426b6068ff56c3a610ef7de66efdbffac56f547ed8a6f55fb79ac3934b43c78ccb0cb8ca428c976edbe2fadec8509fa50bbfe2f3db75953656e87c5108beae1cdf75c0ab1e0b9d19b3681e0c9d9ffebcb467447ea7c8a4328c7fd485f4a6c6aeb6c73101dceb68c3a3974bb5c2a37f3c588e6f9d58dd458f478b702467155d9a2b1df8b5e6dbebbfae6925cf2efa742f5ace0ff235f3fad5c51b7f1ab75550207b3a6f36e34683e7cd5e2732dd1603dd82ef4aea2cf73ab3ceadcbf35ba69df038df8313b9fcaf656e4747d056e422efc56527657783df23f96d0f9c3739e185c98669cc76af82ab8a663285afab5b1b406818c19508f99c9f36ad1144a36fb8a68f135e6b7fbd9eed336bb0440a013bf79ce9ca10ee357db7751e5b54033a74fb5ac25dd7fe2a547a0f9882b83570fdf9e2af4d3ee09e2c48f7cce4a3b926b4c5fc579486836cd9c78cb53736adf70798aa6a67d7a29afb48a93302f4ba79c8882e33f56a335bd7674612749383e8399c87e5bf53945e589f7c2abfd0458ee43e8a91d58511d975bef95a305ff53fa0f7d2948431db7eb93cd319ba5e2b5cb7dc79d8a9fab80d1ff5f192d7fa13f3c7a5eba437fc05354dd0b9a81fc84708643b1a298dc737fa9cd0d34246430cd396d4e2e34fc1477ab0f61ad5595a384cf19a6c37be499274b870dffe120033092f7da38175388645c8679fc5f2e3a29d9e0333f70c89d376a19a3d11742376c797e55628adb813aa4ac11df659b4fa3fd7aa13c9c67ccb9fd0cfda380dd93a3267892bca285c93c45ec65d5eda63c3bba900d51f35a939f1ce1b0356c161be4921b4aff79a127b35b5a27c43135fabda5a570c48327fb7204d7ba38a79f35ae5ae6af750e27a3e62acf8fd87329b78e427aebf929d1191af9fe9fdc7656969ae737055fd7c8137d8eac5edab4eb607bf57a53af4d0acca2266619fd81d743ce9803c1ecff9afe1cf4ac83bf3ebca2bdd35b98355260d3e819d7c4ca9c5550a7fb34ea388ed6fa04cb6d07fd83b06c48518e4b1b4b65e3a3ee2037c4d89ba1314ca2c47b7dd8ad6f1125dbc5188178584f836fd5b693cbce5e612c13385c98b57168b0c4f9a488b8ed31a3429968310496a665446fa6a988b7647b95ab582193543906b274cc73935d73c55532d7e9af4066998eecf08aacc5a1ef3431255f1cacbfb48d335046cdb04e6417c8dfab2bcc834bb9a377709069a330f654929c39a0aa95126cbf26fc320dc34fa8eb706234878c5e6ba9854d2265acfe5ca3ee0ccf5b4e3b884a97586d84545e6a524565346bd2915fe003f7eef74ef66b1fe4893d3a56998505cb4021bec38c859f33e9e4ab97a0bbee3f621ad9108d382be3a40efa723bf42fa10aab975e485f8c6d3a96f1a863723bc4ae286f7c18287d0cedeb839381920dcbcd28b4173c35b0d874dbbb4e7e3793f16785743cf82e69db4b4960c95d3152a8ddde8b5cac7e86fce546a874fe7a43a0e939c17b25c8f7ca3b168e4ebd9ecc2149f0bd35848d8b412d0f69fbd59f7448fa282d6f2886b33ffc71cb896f235e70cc83de0719f031f6dcab064be5fdd5b09f428b8bb522237413f7fb18949cb06588dc3fc5b53570a93796dfdf6a22ec8e27b9a042795901b97507789905d4f1b4fef60263ab7059f5c7d8ce3393ce05ae9486559eea554ec40361010b73544c590157f56cc5de7da4de9dd859ac8647f41854837d941a53bc4e1f6f060e52ae557f15756563ddf67d26c1db53e3e5ec6e0f76a2085a77b0ffc1ec5cc4d6299591bace03c5f7f3fa71d9786dec5c9c1547c9e1665d707b565bdc93f1adc88ae3aa5b0d975d136a64a375f05b9e4efcb85775627619a0410db1ce5e8dc88543638e9ca583c71f4c6cbf6f4d848af6517766736dea71e3717f249b5a7582584be8f006530feb7d688555930f6cf6f52f374dab3313fe7e6d9fb8d3cfcbfe5d3acbd691e478d528af617de4bab3c15ff5cac8c774142c9433d6bd192676cc4b7230b66ba55a50427cea47ea6118b4913b46ba408ff55689416cc47caeeb470f8372de2eaaf34687bbe5a66d5df762b64b96b4fa3bb47d14554c8dd4c31d4c7c1d8d71050a41dfaae377d6457c44ef6f1538fc84f4768e640b5d5f86ee51f1775885d7b655a15b77118695a2bfe69365a4474cc5f1bd3bc30beca40fa5ab05198b708d58110aba64fa4a8e5f955bfd935530b95f16ea816074ac23f8435eb22e85b7621481444b699278082693f073d623c99764c759aa0d6d3211fea1a61b048519e142eef86ec20430812c26aa3812c42471cc8799b80915222111c96b09ea063518c42786569101f81eafe3229fd85900da5abac8a84a688bd58a03213ac8019929e089a24ff8c712a1751856722fc7af3c57bbf95c77c38c85d3e481916c75ffa371d2a0c583b03d301538cf49c744f429d2c80e1ab13c5e126ab6d3ccd733177e469e6a30cbe0c3212215b66f57bedbca118be24c4a3267a1e65c8f924588e9b10ce22157650e64314b7643136e87bc141c9a01dc7b746556a1ea01f5aa8d22671be3177bcbeb605093a225e1a847c6ab78ca89c4d3a4a618932025aab56646a974b088429e182308dbda27fe6a0a7f5a6b36d681cbd94ec205a018319a89345ca5715ef79266d1f67dff2a1867366d14bb60625b9883740f4b3627ac385fa728a51c162401d86c4f2385bb9661ca891562523a7a66111195bacec69abd4c35ba6959397664ab56a621a25b00c5aa2c0793487a8b1b5847a29844d6e8cac42ba2aa3586ce117b010aaa324236855771cc999929f0b948c671b4a7ced082358fc94147f86fb01c3b1210bfdfe266d1f60a72baab460aa7ce7083d4b913635332cf559b121a26fa643fbb7553781847787c8d78e9662cb82941627bc863bc79799d4681830d3b41d156384f157e3ad27192b92e47c106ab6c1304a3b56723162e933cc28b220f45cbb9615cc90aa3483cbb9b510e7aecbd80b28ba3a51e1264b6c6023c30843462f33faf090e43555635c674a80679fbc88270ab53ccc83b79673e296a1394dba0bc2b421b02a0d4213890d0093c19384298b039b5b8f4f61a2ce286bf11b9a6c164bb5a269427999d707c3e62ce88d66fa283218ef393a4ec7a35e2a927b92866e5976e1b95122236c2800d2b4989e0759ab8bc1f37da21288ab22fc4a13bf8068a9abac80c814d150885762275c638087b643b60b4673408869156d52ca257ba50ff1354f4164b4d29069a99c7805527c7674c2dbbcf26656d110823f082bc88405299e093195038f7562b11daaec75668b71244fa6769a18b2d4643930704199f0105082ba91ff44f7b6bb339f243b524979ac51fc92c6b75711193fa29f898141a6c444e2850f03353fc6ca27f0023b9c88f6c0b8aafc9cb9981c460e2b17d594c7a60b6e3451c9675c923a7b1645c4d3fb28b1e42ae1f93090b86659e1a7d46183d26f380a2c046d9028e9906cbdf1ab605367be6a5609e79cb8dc349c739b7d4f74007fa69b9b50c94223e214509b2e057272476b1653d90740b0c059b1d2845ea9a57cad384a2c7cc2b926979f60fde47bfa01a217cd3c43bc01aae86642b84b79ce58296700427c78b7f32116823ba964379f1374e4b164eac108234b12139d580ec4bc11be3b62442445409204e1a9459ab3d7d33815e76589ca4009b27ca2e6ca470b61504569d0e70155d988b80988cda1c9ec0da673ac2497d6a2fe1cb8539f5262bba5104a4cf7659a616755cbd6a1cfd42a9ee1c115158a66af0bbceb149dba4af4ed2a128a988d8aa5c97164be56483e1816e52402b908b12429c505d0a3a4b2366a7bb38169497e7ac0e3ca8ad8f9636a54cb4b4d667d91752d6658a08416d552c3ebee80a613c41de4478611598bd05b34a66853b079481885225941beb4b67218013a3772a60e55aaa25ad44575f45a3178d37af2786a76e20a5a8719d84e693f693507aab4cb43c55a64339359b8075a643b7a696c373144a743288c37ffe36c454a45444c2a48c3c7d0415c125d133670ca1709c7f80897751fc8d07f30ba0a3b10f7110b03863e5b040b7942c6a527008f7952b89cff921280296955261ca76f50d1dc0a0d2b8b682d8459fec291c27c1e281bbf5a17dff0c0c75a3bb4c987f30b175c293931fc444728ab8590c6095c60542e6bbd2a39e324b96af61328ecbc54da1a44ca7a175c61a131610bad5144b702380d45b5df1622f3b2a4e640457ac830c8cc05ef95b4429b599983bab346a47443575087e975a57ab91601ee65966b51838108117934a5f334979349e3fdb9b49ca49252a4214b6e298c3b12e5f6e85ddfa7edc01a03b27468684972318831ae360d6a628c3b1b5dc926153f22a88c7b953085255edd2a72799bda15e49dffa9c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 +ciphertext: df7c965dedf9efaf8469f3a6b7a1a1031590bc2bf82f05c498d073a2a4c604ee164ae8a135f351723714a757517c138457e6272f7b7666e59a5ee0bfd374bd364d8deea94caf7d807776ff1af1210612c5a95a8a8deffdafe4a5b6e1aa85d79808c94f32aba7b9874961e64639b52a790fb5a24537e70b6a0070065d51b7684425558c34b044a598724c226a7d1f45c8a0f4fc1c07e7ba45107820524272915b31a1ea3c18b890d3057028af0018e0d8f50214a78fd8c666e567b65555b91a7167c8c3e738444377a109742129cb53ae56dfd923d3b1aa40e4bd0c9f35f1346d622355b23bb69f4fc09f28adc5101ff08ccccb9ff384a40f1810fc009608ae901913f8f7e3386d63298ae6c34bfdf4c17e8069d72a8b490988c9808401c7de5b804733ddadbcc97d9f94328931d168380182d823cbca3542439ff2e82bea058ffa5085edfcb9fbecac507f50922fe1fac0854edaaf5b003f921ac0f95b710c924377742ef3aa4494a2a65c561754145914050df0d8ea009366b6a75a40034fc992f59ffa93921e4b8db5e46116e04f25b648118f7a5e226675c1e25abaecb5c2492dd4092bd2334fa5a4a14c067350cb64f566c4997af1f4f6901d70c2f9c4a3cc0c6eafb6efd830487a339c5f63a51788b13be38c3ba4fac0a64fe7e1bf513853b785e98283763ff23b730168d1debfd411a6d529f30a93b482150995abafbb8fc3a712f32127dfd040459e947bcba53814bc9b512e857b94c6d1450d26fe17674b7db6cb33afba1717ec003642769380553bec6003eac872b8c3b3cafffdb3d7c0601d493f10bf5e6792e9a49e86fa7393a3c8bea7bf9d12afe864e7201e2887053b67ee445486646981e0bf3e6d93eeb178f6f5a7a10a3b596168ae1ba4c1f093acbfa879331f4483657e43f9200c5aae4b0557a94cb01bd9e2dbd6cc0ec6707b36565c0faf3619ce98f4ad0866f9f7314aa5996383d04fdb08340a889f3478dce0d0a3c0fac862270469a535ae52a1a06a95a58ba396e1c8cc4d7da22fd5f68c240653ec20c39f705c998bb37ab0e173207c49970d6cbe68d74da764e70a0432907cba6d91a307d5e57124d405c1928b429d2ca5d6e2d0082dd0548fb0b5c41dc65968d129328935b169c7b8d401d29588c3dfae5419c4afcccdc9a3bcae8853fd47226867b9f864dad3cacff59cbe536be7e5f1ed1a705798874db514c8230483c4dee889acceade05970292e7b649ea429420bbe0cf166d4d022cafaee141fa08baa7af787cf1daaeae2edaa53f764e6d233e89f770c647473823b0db4bfa8403655d1734b276d09f58104b5892180c7c6b8f818d9a924900ab3c6cd6945d5cae4b6d876ca609839a416843d202d585ef7983181df3bf7040962f266a2f09f85479fb8f67acf20c306cc1bd191bd956bb99058461e9361812b14562207ebc7adb0fbee7dbbe7f9adc9bae7cf759835c780caa24c69db6d7922aaf0d9174f62d10ab7d42bcb152991b0673756b522e95a0a83231797dba4c9f486da9667506e37cbcc5aa42d54a6009cec6da6830154a8ca40aee3d4e2fbc4d813036500fdf5b2dae8af33cd86726e8b344a2043684f3cf7bc991d86cff533c6687df082b595d4d6e705c1b0aa28645a1077569343aca38f19149267f8e8be8a862cc6dc9370528c544bc9aa31898906e5f64b2db77e3128f5b59adc526f6f076ea70942eb44a2d2e6151db00c3431b39bafba841d40a2f686155f588e41fb1dcaea9156498b1ca82f1c68c6660abf20c6deda010290cdcacc2990132483b2e4d90de9ba0608438638c459038773ea3f1432c4fbaea491d5513b633a04423b60b3ee6f920ceff200fe71a8798adfb11d5607c57dd6e53e7aa8fe80375e2a76f82c8d73775d1dad6080a9f15eb51e2014a912eed3216695270bee882eb0559141c47ed66f8646fd3259297e1daa6e1b6e93ec7d170d4c818bc53b01744f4fa613c4484f1abc0ea225d7c15a93ab1401346e72baeb992b049bcbccc641a142ec39c6cbfd554f9bb3acfa38c5077a63dc7b2912a1eaca455fa295f9377c993237f44263c425bbf8ef5dedba0daa909f662cdeccfe2c67be4d03ba13d3090796db0461cf12256bf65e849e07a808d0577c5ebef283f9000a0b136f50e1dc35f29b01584b2285e82b1862779d76c59a8ec6200fd4901996d18932916c9dea3ac8ccae015136f9 +result: fail +shared_secret: + +# Private key not reduced +private_key: e793e320d38dd66f9ccd557808a8b26383d777d379caa64e1db5ecd9cfbaf8ab930118770cca3dbd1e825c867af55fec8764ec5a6788bb93b560948dc8555c8caa659754ee1a73e3ac5a8ecc7adacc25cdacbfc59b49352cc589f23f69ca48d94d3af02abd70e989b0a3de5332ba43658bf3f278b1a253c4251bf211bd905b4737f678a83db4dca296bab356eb59def74cadce79e5562733f42bcecd86839e32e4302e84b42ceee8fc54e5b71c92e149cdabfd6dd12837a6cd3aa41b60179ce51823dac4d7d17d78c5afe9f2e83ac2bcc3c3d94b6d8dd8d62cd54649339ec4b75c4a7d4d2e5c86aaf48295de9e4d28c12fe45cc56898c73da253ed9e707e8c36d7ecf9b38d38a3a9731c4f700f528107c745277842bf9d7b93bbc4b5c860147777f79745faf2962748579e5d06944582055b3184ef291c66df5c4a2f0935141ea6d56a8572aa6240b4fbe53fa5e4d98cf239e95feda72f6c67cb4a9c48a9932d36cf701643649882715d3573e43e2b83dd88f94d243e5b6848549525e0442dc26e93f06ad5c33ac98c922b6bc0c961ef36d7abcff3a4fabd82dc7670fc99926399171f440d93a2e3eaa8e65961d54ea8548762c84754fc4880db9faed37fe876294d1c086efbbb52cd35fe2f14853f7afb7d0bc9e20ed5ba7d3a27779733049013eae812257bb8db3857075b665c8e772fccfb1d667de3ba4698d8fba7b6ddb9d2a1337af7ec59e4aabee16c8017674114dcc2a067e731ce4a9d07485658f28ff8528c155f6266b79b3c76a8cafed133401d6bc56394785089abc368b9d05b4a116591246dbf87fb6ef6f7985908e9725ea31437904398c997d3d092daf1c43996815f45905add90ba86593d9be2b4306266888f5564b73ecb250569afce886059352bf770e1137f5297d58ba784645f3c5afe4d1846b7e1764ab03fe0a58990fed7528bbbf42ffdf94953946a2ffdd0ff3f921b3a0746b44f64a7aa08f099954ad88b67568ce20b29eabde6c7d54aab5ce7bc87a6de2fef618e24746f24c03b153dc988b0d48efc43efde152533bcc9e4588a32ffccfc44c4d45f07ab79ea5627045f46ceed63dfa3bbf97e57e8c27439418bf8d0a667bcd35435b687db8223ace5284371f5b0d8a3daa93b8a3889984c8d65f408bafd0c5d5d03ddd3e5911d9845c9f687981ae609198dde43a52ee970868cdaddccf114e5fd91073d6ca5e56f7c95a40a575fed7229cffbdacbdb177f9b2266b13fcf9bbd7d486e1361237d54120fbaf04a96b259d0b06dcdaaecaa1bfd7459f554b53b7806a65465fa8ed6cfbf65e3f410caa887b9d527c8fa9697738cd7ea1926478bd4cbd80d67a50479058bbaebcd5699be530a1774c0f45001ec718e15d53ebeff251e5acdd76bffa8d94f8bcb45a6de635377077b6d9225d221c87b60994bd783fe24c34b55bcefe76d450af46b3397a0c1c577a31bffe2cf63545cd2528fe64f7c5620b5658d34455757c9210ffa9217f9265ae59c2d658a75496c6bb48fb9d90d88be51f754988ab5cc774d527aec2746ecf3bbe73326886fcdd53b18fee9279c27b4f8d6f7cbf9fbcc15ac4989de3dced43e0055e67d33b0aac4c11c383cce2df5bceec83bf5c43ab6836328959ce979c49e45110f7122bdd062fefd1d93eefa13dcddf9aba24754bf556a99f6510993fef12ca41ed9342309c24e8ad9cfc93647c6cfbae5cc262764aa64ab4923fda03a6e7424c56ba49bcbdf7affdca4b88584b75cd6242f4541c8f419e563db5b90ac4d787f94f5e4b38bbc5739192f4c4d83e49bab4dbbe350641ff9a71fbacd5bd81dad5eb95a62c50453695a65763461586c8de2934d31093297fae384d3c2f208e2bc75c96023769375f388ae3f6a6f9a3fe6f53529f7a9658bd51f5c723e77959aa82ef3771c03b5bd68d5b7d56f00d86fecc7aa29a7637cf3bbea377ee7b9b1f94836197a718b097f510c81595ade1148ef01584a884e9f51f49c120b89514754dd85a6be48ad947b816a9dd1f1af56f8b9fd0aaea04acd376d236a1afe9bcf53ea90f94b028475c128d7d14c5562e5747f1b8db6bd72028df3bab895a084e5deb89cb3cb8a9115b63216bd69243187adeae33bf4402b88bd18cd04cff16d24928ec8fe385684bc143e0d5745893bd826f89f9fa8a931596bd912527e2c965ce3344b4621190c106f5084836006296c37949aca196c426f4783b65221b9c50827c85b7067a9872a6d9277828ea9385f9b512a8a3e897628d1aa36a5206b35fb219ae26269126b75590b2d1067419b27fa6852a3552d6ce48c9193c96a3131397166d47c53eebbb68b949a5bc3c7d585027961aab89b38f5295ce7c60d3d9009508769ee37a48de0685b9228d998b883d871985108b49c908390cb68147e8bc561df29cde02b1ed5236ed77b23b3f32e687b859dd63439890d8735640f5c073bc05cda79603cfb37fc5ccd28e98b4eb169271408a1cba57d21afb87c97e2044766b38280b6911b95725d5a77327764832603fe771aed89baa1c8b2ff49b741081884c6326fa0693fe64551402301a0552f49035a262e9d047d8a2075fdf6636c726f8b6098fb2b8f01c89e87478dc1112c37f1b857fb13cec53673e297b8aa9612d26a4cd0c6168c9dea407133acb939d06a7c660581a877f046b9b1138f6fa6156be2a5bfb23d04954fe32b1272d73e39c79094864cc9e36e46e9c8f1db330c17a0ecbb332e385769c4c0ace7c0b0d49fb89503cbc13ff3a1b19f421b80855fcb947cb651ccc0a7b55b5100c09aab9201c4ff8c56a2d90bac255a3665a731d07b8ad829f7a7b556ac12acbc1073a40b7c36059edccd97a50c493359c8ba390e3716921a69998b9b111c4dd283456f7b61ccf97c1dbc362e2760e2928227405e449c126d7526516298f6315302288043085808195ea587118d731543f09479a2adb96884b3a620d4c86123818cf848b295eb0035211bf614b077871db1d8c779d61e90257730e47bba178ac5e28b8e47794517727e4049dc759ed5a69cf7c66de05c0a5a00c366a87f7f2914e1e059bd1921eef61da9cc201f016f1cdabca2d2cd99e1884c114100ec5fd0f415d6fc6222981d8e4582dd138d71a368bd5590645359cf767146f2cf5f7a58e0e1becadcb1da0c87fd385c4ad15e02836d866025d0d815af61b564e803f0f0bda9a1ad0a3b86dd9a79b29792a713c78f00c55668aa2a0962b4a9be8bd9cb6966a054f0ac39182ca4d54fffe197891b964933aa8d60a87ab0af08c139a8e79b7a5773cf189caa615f64b973eb273edefb27be439ddff2a1fdba7f2cc3c65dfb0d0cb177b7ac49ad1b4da0725a3f3a2741fb2c82347dac329657c9bbaeaa948102295c1828b01c22ae45cb0e0b46a68837ca5c8639ab483eec5b4dc9caf028a7bee18accc402ec6aa57a93a1c53a145e923194341bde96296857890fa616d1bca0cadbbba3e4302e55286c58a283ca8d1626515e6a84881aa692c662a3567cc294a23059392887ce7a835f8b8030f5c1060518c71e0c5621812d54d50043b73182fa67de92768c63c4a2c562ac151342fab8fc9181be82301404792a94258b98411ed093a9121699ea13fc822bb5a317b55c1167ac12bd8c3ccd9bc743a634ed6a0961e13ad91a779a242dd0b9b4b41a5da11cbea085032ee2382c4b8ce088524075cdfe7b7c06cb6f2ae128f4f7a6c5d58011b42b8cd39a8a0aaaba14a0ea8c9a72f322693410cac54c3ee5487d726acde02f9cd0b027844ea1c018e2744571c3a2c36b4e0da088f09ab939152e30696cfd3473a085be3eccb53eb406b66c95ef8b1cfcfa1df8c8238b8c129abc9176e0864415852cc8ce13970fe8a76ecfe246800997c56668af974605e748e3054700d7b75fa182278309e41cbe5b4a17696c843fb4ad72471bac747faf30c99d2433665433ef29b64870ae8a3593845ac211ca4af0e5aeb9b8afa5b4419559502e834f993543353835596985e31529c1482d0fcb9c11a1c79a704db1d531bd0774f91b6810b98766a83387387c0682584c94793fa771ab8b4216455f7a117c65e5a481e01b5bd8bd0a9263635815f3c13c7c6740d2d1778ab47d56c9a37ed4a660249b8a4a02cbd716f6a09a646456c4b54cad68c86f8b998855379560692cfa68b5176309162a7a506b28e042c25850a7e6357ebcce387146b94a09fa82ad2cda8123477f926757d552929ea72e379a9bb997bab0d1aeb5f02568e7715d959168129cd58048ab1299eec754b9080e7337084ddc37c4695b75488effdc370edb65655231ef1091d762b8ec53a3283b3f7bb5114429c788a2cbdce1c0454466882448990d0c963c4dc08e6955a7aa5238a6347a0d168a1ab143347ab4c4e4ad5295a60c2d41e0b7a7bc92148855ebedb4f2b77da0c706a1bafd6429d55fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df +ciphertext: fab59e039993ccd4f50ccbe8c886407e46508fc6d007172a747786974d2eed73538e8c47ffd4e3d961be7d83ced37f11f3db879752f36cdb659ce2b77c1c3096a6406c3af929526157cc49ab365f9f5fe8b60c1b67ae8db2aa260485538ae844c06a121606c3422910dc3afbb4119bedd73a800ce1cf1ae6a4955367a7dc994fcc653b4f94652bea15f60323e6f2dcfc6fccd1f79085a8b846a0ec0f334db86482b15738f011398bfca13570f97c2e5801b60a5264072a7011b98b9e1de2651f78905842fb8b22da803f03211ce0e4b39c6ef8c7c73e611aa8e5b20c9295334e9319c73f5f78956e28a008e0e681a193ff229f375ddcb2a9b9a750bd97e055f6749af2ff6a601133fc7a069c4f72f5ad4c930b5d37e91b208b4e36970087ef4200972d204e5a3fcad1f033035e39202dabc309263834e8ee8c45f6d3a8ce7861e8c639a61b0a12b950525bfdb6b45d813797bf73952b7d6be33c489a4be615bb892b171c3b831d609cc7a5326409a80b755d08634ba177a98ebd56fb89b87678d8be5bf508dc131ffb01500dcaa087e75226a6367ca24d0f7f2f9d4a8218e50f30d9d4a8eae36bda94660c194eb4fa91881632d2e8f2211dc28b7fa24766793eb3c9a969fe08c7ab94f655a7f7ebc5599a766ad576da9f0c9bf04df04118e6511ca541512f9826aadbc59c431fcac0dcc1421cabd3ec85ce5fbe31fee445ae4a418462555a22ea3900f29ad77b231e2ff51cb4d3713d83ae0d5581c8db197bcde4ca4e42be102b3bd240694c82143b683778a868d574204a1d02e34f2fe91130f283ac40ccc2efe76bd100c780914af245efc5483ef94965dd8e166ebba97883cd7f1ddd5cd623e5598509c858f4249f4673bf6a21e037b6e804b7e2508dc8ed0cfcde042b5f307c2faeb68801ff7e90738643af5fc46ff1118661341caad34d327e1ea28c8bd350bb78c277403129ffa723e6839f0caf93e9abcf672f8f4a074ba3fdf216f040fda8458a7d9581f9321cdb541cb61c7956a3d75f279c1a832b0c656b9de198ec59ad87ffe29f31224819a7c57c178e52c7209110fb9c0e63d2b99b8257dfa6a1bcc6edcc64d7a64f3840fc2b343175bedebe7db7aabcfca4bcf744c7a0ea8d2bfbeb451453597ad97f76d553bb2bbdd523462cce707cfb3f2d0d4bbd9ebafe0bbaa2116b2f00d6d543678575a1a86da89566974324f6fedcee53702d341aa57e4653757d291867c2e63c8e1ba98942193f60d6da8b7232b672835318e9ad102eac0ab89dc06cd4dcdc74f19848dfe0ea55b4d9d59e8dbc1a53f0d230e76524c658f2e12c01bfb4ddca8ed4f6c21b2204caec44a80b5a5768bbbeb65b36107f34f3e786152d6e0d33b11be83e255b541cdd1ae99dffcff273c55b665fa09d7a89de5bea528e6569e525f683c32a9f01f4a8349b91eae519efb2d5da8c111886de94111dc6898527ec85181e974fa77130ba19e251118d9dff1149610bce6c8e5507a4b266859c2e71cdeed75437efeb9db9b6e7a201f7a32cd5d0ef378588cc6cea5387d3a89d38c93fb3f2cf990796a23bc73d07f427e90173f173dbdc97ebc03a557daea271d2ea56cbdc5f19af6683e749a4e25b52d876fcb2f05a4ab8b616ce7dac1dce610afeec8e5fe12c6a703698049a32fc3532ebe1520d95bb3dab1c89e430d6a4b87e7520aeba06cc7dd15ccf6767a9ef0bf331f6869625c877b6986157f39788b4c06e96f5a380f352f28cb62f911a72b5eadec6ccde6adc51f5d18e56629c831972b3beb4438b8cb5e4f64c05e841f199459c5557d7b3a78ae92eca093f417131f237e4a27c0f9154030e451a9a587d95e6971183e059ab37ecb9ca97d8ba4a945dc35c9a21a97fb7c2ac30646e8c1e7fc1b2a7d594dbf45b6060073bbdf3874d7f627e599491bdb11f33fb0475dd07aefc14909e78ddd87f68d085880e8bddc6b39bb7621cbc686803821e34abf5f82b9077724652defedb728f963a957ebe369256c18a09992de7ac7647d14f7c094bd72b4baa651937da84c137d1f407147d335957a1ebb86e1a25eb962a50159b6637dfd25d5d3ecb417b4c19568af0f6c00fdea172fb7061580363434d08fab0c04c6f3867bda85851ec12558bad21ecea88361575c76e423fbb1ef837bf35b1937bae52eaf838df96106468b8e16742080d4afc19965d4f2ff36de956e77a9c7cdedd7c +result: fail +shared_secret: + +# Private key not reduced +private_key: 27dbd6cadca3f6235b6b59c5a5e7499ea5e30ab431fc7c4745dead414393f5acbd05de5b23c8867dd88ae7cccff8ad3122b44de4a4becddff51744c5180ee7b413a18e6e4d5bc371df9534eb76b5fdbe3485f6d3050df525e37a653c76e18d72aea5f7e449783cfa72fae68c27e4abcd59ab364b49e6045d764581a9738e3f6443239e96478ca62abf8dfb5e9400149a1433b716564dc0959956c87e67f8e79b46b1b1b4b9b60a52641971fc9e372e6550af2c4e1be88e545ed8c069f17c4d714948d7e3986d182cbe461d47fb5df1e264ccdfd89c5468d8593fc7e157676a649e4533a91904ab61e875bb8e80d8639c836ffa211787b4a490fcd587d93a7ce9ed8dd0094fdf07d9bf23c35e1b904ea56ce14a9bc537fab935a69e36cbb15ac1afae865b87e0aa7475717d4627aa79a1075d8adc4d008d45926b8b55ece2624b6e66f4ce361fe50badbfc71f543065dd595b6627f9ad22243a12aa70b55977095d9f9edd9f5bdf3a4a876fb35ea4700e3f06be884aab7260fe786a4892543cfc0b33e50bd6cc3b25427f4b76375e93d008a0757e5b06f7e3a4f7ee3819776b078390c8d42e4ef716bf8f1d44a4d64dabfdb9a2b3b7660b8ed1b41d30dabb52a05b7f81a488a5f3d6157af68fd7396d4394a43534d9c4beb209e7870e4ee0d7c103733fdb2fdb62ba668f0955db0c596365d9110fb4afa9f9394d75d6575938468f9567e397f8a2f227b57c8599ebcf586c7f902c698800c78f4b1b99b7284aac64ffef2f9f33af5312f85469f9bf8c8eaac654dd4edf6d39ddd1f2e6f5d21577d0ca557016405df6d3b8ff6dc7199b301be20a1cf78a1475b266354bdb961f5a54a5edcd71ad5e23d7a59debb4145ee1906a9f6f5b66715df6cf033b98d6e7fd5f8b114d60b867308359dd6c238ed1c943a217533475b5e8dddc871c812935e6763b3936d3b99c78d695139e6534335bf499aa6abbe10acaa6afa75f659babaea744eff8935ae29beb65159ad4b52c99971fc6a8f6d2afd53214add6f386ad51b6e8702769ece33229187e0f6470285fd418d560329abb658aaff3a358c5577115f437f5acd6d503b154f380c56efd66364c0dffdb5f0a75646f6d9f36f0f1afd8adc7eb3e9ec94b1dc4ec29aaf99fb8d0a9ee7f699bddda9c2cd8b96de4661674b400f780fc6d921008ccddaeece7ef9a771cb308e86415f4b641d33bbe0746fca69e2b1dd15f9932af23772abc68abdc5ddae66e84e3826e3cba0b7f34df3868fbaa8b2a0cddac953be237eca2da5cc674569dc6fa2bc5c5447966a0553eb4af58e0ad5ad763850c0ab1725ad1f3efb4a2f3640398bd0b8bbe8af79adc3ccdebf775f2a545a7e8a8685ca73d4c5bf0d788d7bfeff00fc241b34f8085ff897df49966ada88992768fc0f60642b14fb95eda965c8873ff8e91967b3acc13457e17d8326d96cc5db856c35a7c19ac64a85a03f9b81e9a756046b901dc9491947c078ad5e5d9986cfc3dccad9d02055cae5a47a6969653bd56035453c97571138561e28b3b0e0e60db4f8c9104810ca69c76de5ce67be26a27b96654c6e3ada464decd4775458964be2e5a3bec68fe38b64c8bb68777ce5bc39e9d5ea9f59a68c5c8f4fc38bfb4a7bd351c18a09d2378f054d3a04aaa7a6ba6589b63062bdeec8d442ada851bcbb5b0aebe84d688b315d64763dfcac5af0f9bf75f036ab0d3549a1f65fe1e90d7f5468fc3578e15723214aba66b855b0b5ba20bf8c9beb7dd37790a8c77120a6c18797b5bafd450f8714497fd83e8afec5a72df7a61b50655f518e38a2f5235389bf15444c91ceb332b5395796a186bef9e8e6ac1b69fd1457e1ce4b1d717ee1956ae938f645b8458cbb8c3f68eee3064a4d05488104848a846aff5dde44534edb51b81549ab0033d621c8c69a0be3c94679f805e879ccf676973c7418b6d14d9963426819768631abba1db17d321b3fc0edc95b36cf0637f9470fe34b0bfd93efc76b299f7a948bc4f1931e2afcbcdee8ce9c93c8c0f9b1339e234e76b0055fbb3f7860ed98ca00afb02ae673537fb09c4c0a1bd8904f5654a1ea93709f47818926c03cdb0a98b167b6434a96fe74796ac2337176f59275355825e6ec42e7382f6e710a9e003f8ef2e0b8d13a8f1f3bc631edcae24cc4583a8abd7e9bfebe65e89997ce4e680ce385c8eeb2862175fbdc9b25dc7724f641ca14b1675e13465d634915593a228c35432b316d295dcfcac909b9aaeba2e93f6028be9045610ba38c763c08308a1d6b9b8667b500c649b94cfa703432f8695377462ec6159313a184f7349be26512759a112223af1b12127f5566da94c8bb19765849f9e849a4f235c9df3783627b3e548242fe2cf506ac1fd09cd5067422789ca6bd3ceb0e516a2e88d0406abe03b65b0f064d7600ddc227ca460cc784652fc1168e8ea53f825851a222eab10bb9c8598e6930a2abb627ec5640d4a3c6eeb225561ae19f20eb6d0536ceb93145c7616fcb46c04b2076b9d8a4013a4bc527848a8972b0b6577c50f63194e6357bb2084fae54c592577d6c7a61b79475fe1c43e70980762132806a7d25482ec2a0e19778aec2685ac19490c303cbee96e2992b836305b58270553d07184507b12c06510437b5c78b3f5cb1b57627da57611dd3361772a213e033dd5519666d18bccb13b3f751901d601ae131ff3c061af87839692967cb88199f1770ad0ae196388ed6b9746fc6e536443afe04a3b92352acc4ea04173d00ab9e3eb9c1cc137b2d6b14fe36dff9591b5300853a349dc23799d8209e811965ac84090f34d36382020ba31531a0dc909b9ed725ef6120929228f48a94a5e04d03314993fc8b306572a4d5a7063110c051011c1b09ee2d09315196f09192c329565cc5a64405c3acdc234acbc0a78e81b3c9523c43a2fb961873eb207464a302d8349ab50167ca33cde091be57801b6e850dda6c5baf498ce1897b247bc7e1a84c6b141fb00286fe864a9f27db6475ed24371cf0c19586750cf72ac1cab46ce08860090a0c1322aba42cd902b6c05f4c4bab667b54b0d5a04332335731544675f80a2ade66dbc075d7a9b4ed924417677b6e195b902842fbd4390597c28a1504e161175d259ae7c44333e742471b58756c0666900cb94d87f73043e940a5733f89ae3e8cf037b83a51b4768a19dd1a96729216c7e317bcbf60b3b07cd82784d964754a440ce297b40e3f8811834885ae76a9605a249958f02d9bf2ef0a195d3603261560593a636b15dddc681ab9bb19ab7ae95d32ea474388d81585e49b463b47033f81964481f46c229f751a930f6a632e8aba8981cca880511164b8f09a8bd9ab8c07bc8a28636d0d32bed77b2cd032b18090928f01e192943e028af329b4b812238a3362b5e2a61cd7b3691d06148703d692080a6c755c560490cd5b47606ac9cd9bdb927b6e3b26d9060921757a0f85a2f82b618bba9008b7073f24a88fdfa922eacbd6631c32157b36150be06d3ce2c4b64410543ccf280143c1de73917b816c86b1a04204a8f3fd7cadbd20b41831c8229788aba219ba59af78388c2b9865eb3000089c6c05c850e91021a5328149cb2a1a27e075a3ec8630d8f515cb77903fb5531f6e05ce984296669b0bfe8af8ae59438b834d4110ba0606ee426799c313233ca9487ea35071871420c6825889c07da0f87f1188d75650e36ad21a265d4b44c01361c0653b55f409ff3c290d2c2c212319297d5aef2bb87164b7535b7518ca14469fabee91c81384025f6914c19018a0775598ad4bbada98e06c87c9af309c73903ae1b84fa9a3c3f668042883a8195cea1fa5bdca59c203178eeb18041aa2e9af770d180be044bab1c8c36044a70e50281540501ad6b165c021e53b86a5f368728e2aeed1520a09a48c1ea0e9419b313d7c6a9e59f17121c8ad47410abb73e008c1ecc16c32b4a46f39712648cd06196ceb8a076f5c7048a3aad37393973b8679c55393137e6b6ba2dea4d50f65e1ef12116598de49260112055f4b0acda503395e242b990398943c18c01cdca993b3c9a74e19ac6768581ccc9a0331c005ce873b241b3e5e497493ab134e18569e80a6d12a04616911f9072fae6a30e529cea1bbdbaecc7cc64a7d655a730335e8a22b4f4250e2c54976c69a161694aba04456bc14e2bf8c13b1ba2a5ac1a6b557bb061805c903d1d1aa3367922fe0c51dbc35da6cc8593b8b3cdf741220126eea9cc5b9c0632f75c7aa3aad60a46afca4a6d166f2b2ac858c2a572e4cdc2d65bca199cd73367b83909fb324855c4899d920a32b3107ec56789d63c25036c35d30be5d28d54d725f1eb3f924bb991cc4c5ec2e36585c0133b82099b8234cb459a9fd8aca37c4249a3b02025a466c0b64a911e75243db16841847a8ac72dd835486e96a168b2f9fec46f3011eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c +ciphertext: 7c00e16d0e64a68ff48151fd02eca316fdb77ed8e12cc3cd318b692e43db05fdeef4ea363e297d9c32f8c079977dd3915db9892dd78cb2b2fad8bceb72a953b03ecf93afb749d6486b15bf456e83d554a45c0cd8d981494a0f40a511a259d1d6890babea2f1c770900c03d66d26331c9fc126eb32bb5135ad7b3b51c70c64923b8b60db51d96f87cb2626626282b8bbf018047e5f3798041f4598bf7f6ca93e0dfd8f7caaa104ded188bb13ebd5fdf6cb21fb9cc9225e63d0ea3017805ad509e7d23e76f1351fdc02584f65ca06687c3db9964151d6964c6799165775f60d4a91b5e8b41c920c2394e4bc587733bda3107aa33a7eed8d62997634591ebb7d69ea547cb2d74ed7a7f6f0d036681e4e7d0d5079e544cb657493ecc0fdcc8942f93df4a8f404a9ee4f41c44ba99ce3f236ec1a62068bfa6fb93a1e20dc2740cf9abd91f31d9caca34f4c288be80492cb589e4b12e4bd73b664c4cc33ed3559325af26dc8de7b0548d4a26cb0bd8fd587e871475318581056c95256fc4e95a84ebccbe9382ee1c095a4581005713bb77d2d19a8c1ceb5a1bfb4005849f0365d2503f7ed6d849f377ef66888402df896ed571de6b06793da6bef4f6ea029bc014065a7784f7a83c92e21cd1c7001770b7781e894b46aba2e6fa40918a805937a9b1ea25efd59cdc26918921b0093001b36877a010209fdd9b4f5c61d4e7b9d43a2f91e72d4b24281151950b73de9de304a6c1cfa8e33cb5034d1031a6ab4d3dbf771c585654663bf592ecde6ad53a5fce007119b5b73a4103134662cfed595a02677b220cedb31b78c3063470b17a56af64024ba3cba30eac461a12b79a9ddc2b439ba2eb649defec5b2669830d6aaa8865a4ad999d8520edcabd5c23de6faf4d390afc3e9978f127d087f14d2abf2951cae4c62d7ab91cb634800c7db777306403c5023e97b3a0fe0aca6466b6d8b58f6f07acf1f2578dc30d283ea883fc3508679806febcee954a9a285830a39fba3781fd179f5068b9a7061cbddbfb466734334bc6a7deee3bb569244782bbd3c78347ebaa66c84d628a0c9b26b6af95a116ccefc57595f786b17967e2a21695fad4e76a51c1f697e8069efaa15bc10bb0c28b468d61c492bc4e037fd612486d746fc2217093fa025c80d87cecc99679887b50e31fa553ea319075ab8a2e27e87a5b7be0d9b0c750674c440235c2ddb8f6c496bd20569b52fd84eb264c67baed5ca95c0dfe125b06f4e68f6354c15cb41514a45a2cc62aa9e2e4a18cadaef473c983b0f952fdbc00cc3d5a960d7644484ba38e3428dba2c81e8c76db05fa606788fe32b95b453bdeec8cc778bb3221a082d453da84fbe4d4c7996fb2c98d2b06ddaf26c759106626728e6db392efa97f0c9707827f7976554d6479413ca8ea2e764d5992cdb7dcd64bb5c0bc7b213cd08d15af938c6ddbd1f2d5a0cfb0240fafdf31c0e9857098de9bb7883b8ae7e78187ced571a9fe90edbc6ca0a250d842b8a2b83adcd32354c66861784d7355c1a93b8b26fb67ce63be71ff7700352f3c5eed0cff007107a47847322f70d785b260f74afad72c98cfa9b495de53ce8b0bfc3bff0d88717ba8c47569e1f85ef2a87302976fdb5d866cb156152aaad33fca306839dffd063386303c568425ef47613a0de42023b1a076961c27d29d258c24246212883803d09e96ae41e6aff74812b7d55d00d6b83575aae548395f9572c90bfafd6370cda88b222a869c117c1d4d8276c176c44fd9c2533fec2d41e0ce343f60aeb7a8560c2241a4c97c1c86ecbb26b487c5be4ae37d69d465635db14037833000389b89fa9721b7fe14a3099e2dea671c1e63452478227c81575eb229234c469dd52494607b004d9380bb003f94c98290020569c244958716e584ec0eb7b4000f9223eead95e371323033a6d7d966e55fc5b38fb3881ee162d0e04a40c448a42587c99724b408a89f1db02c57cc8c0074b117298f9fa7eef5cee82d256b85ae755dbaa5838cecfe2e7da59956b0333478e46c409b493b3760c8cf57a8fa6521132c9dbb1ee36ff60ea6dc7a9e1af615f1dc6b81bdf00425d24e4a1431d1e35698b0267eb73bc6a512eec505f69becb384367a1d3dd7720f1cd8ccb582b39f3a66e5a0090ca722b8a7f9ee59651091d241a623aaf4588c8945c1c8dde04d2d7a48023c6dc3f3b764fbdc23609f0a9933909def +result: fail +shared_secret: + +# Private key not reduced +private_key: 0be83a886381009553ef0faa63cee3eb8f9ae09b3cf11b62d31d91f21e5cf548388f7eabb533e5ca69a4d1e6d1a29fa4e7b494b1e3e2773dcec313c15c9cbc91693376ae776c5ea08b56b31f38783af9c052b34b7c0cbaa4eac4618aca24dbc8444fffbc666f0737fa587c5c54b778aa446b349b88f34e6557bafbb9e3bc74979f3ddf87645435d2ab30acfdb6e094446e95536d0bddbafaa2e887d6739be92e07f2eecefd6d9a3dc376f14e9752a4e8b0ac3ca5a69944ff0aa86eeaab62ca34b8fc7d74bc6eaec56612267725ad38a47982fd6ab6cd7f6ea1ed96529476329843ebe484fc7f63b4e97fc2f68eb89a65ab8750ce193da03e76bd876b69f9a826a64dad2e86af796eed9469aa79660c295121367906478940099e51bc36ab67a72558425e153821ec43a66d558d59b136255f656ce61e7f9d7d2eca29b7db7b0bec5ba66c0a2f947dca55d854863213d64c5f896e3a412a9a5afef93fda86d1adc46fdc4aed2576ddf46437debccbcfdc78a0e9d2350dd83b496d5b586a9f8b36988b33ed8fc8782ab744b3355fc934544b656ed93eaa36734cc4d217d680ea85476fa98d3b5dc86b5af589e85249b9a7ae0eaa4a0afef396c5fda437546debb2c6e4acb5bc716ae13c48fb6667457bd3de79e58b41b7511f1ee9669fdf2fd6c5280caa7a35c13eba576555d1d6d3f6eeaf5b7a96ad0236c663e7df9b46cc798cb2a4d335f6c68181c49d6699466737412866f6b078401928c467cec51a2fc4a62553141a86e418ff671e98b07539a57f83afae8c0cda348385f01473a8d40fe2b187dac0dab8252468303b909d0785250edcc3d495907d37f93db96c64c7f3a89586f3f54ad8f3f8a4911a878c93a4d06439e52c7f60bccc60d56d4d1226a87cf434e49e58db5557c897f07f1aa4bc9b3fbe97f1dd4c96e294c2b68ec78ab3997e84da877d7888b6929db848ee38bfb75ee111deb5dca49dc51d9f6286f126d9a7d2e46400755513eca554665556d3ad2c047f021d76e4fab77579c3f905e6500c7ec9747ee5b56f840994d2eb91d13c523cbcb5070de2e35dc23cf4f43795b4e83a8f503f308007610e23c64f38aab3aa9ac0d3d3edc77443afa29ba6bfb46343e32c549d043371ab941c5982feaa30334531f61877e25e544979ddc4c6a94de7cb3739c43a53a8a04eac3afdab917ffd41b48f69567c9ba5c12814e426cc367bcdfec5c3b082936dee1e8a50c7933de5a5fc5ea07f04ae121ef123857bce06df5f7da51f1d9383de7fb1d461a157c6b10b7eee63af1b04d726b6ec2f94af7ca3d41676705fec9db577d777a462de3659a20ca8ed5ed60168c06ff9f5cf294cd2175e769e6005afd18ee7dcdb9f66a787f103fa43c59ef9a1235ab1348bc6bf96024da46063eace9cd1e7ce36d69751f623c29ccdcad86d743dcd401188f7911e5bcf9f6202575fddb867ddea38095fb2420a7555994f925f5d4a5ab5291983d87abc234d73266e8b04b4ff901eb203a33353245f0653f779cfb3eafd8e309f34778bd0493364ee48cd5c256f15e6fe03b5fe5e5fa84add42a94f39d65ad8f86a7a20334c77e332d7f886620461f1cda8639fc1528d903a9da68dfdfd4dda33f8d34cf003a4af8da161af7edbbb300b693f02ae51d1363cc247b41c66b3ebef5bdc76609d2bcc604f9540543d1ecdec811e37a9abedf325b88225bdf5e8d2c84771df545f807adfa8f85779f5631aef5d262b37fa5fb7bca6f9129ffab4f98bd65c97212d8f6b0953b1e6fe51937997b480497cc65644eb2fea7b812c3db41e784c7ae77913f1c1cc5021543ad7d54946e7ed58cfa518cee87054725f7d40cc55d6df1fd8513366c024e16fa4444ccd6cf6fffe50a993ddf89f19bae4937443ce2676fb8e7ede59f8f81394d08fb9c06f9f8d33b7ec0c6b3a35c6aefdce658dbd837655c2297833a8c150d45611bde1b68ff4ce3b5b47e8b2895c95c24745d1e44b0dff6eee87ef916d89c0c864e0fe5da9e6c53d6f371de987513dc534daa8be57e9fb9aedbedfaa136e7e4dd3b9e7d4d9078e7398b4fdbe3384fc4a4caecd98647ba4c0035774baed9fb85cd6d9695098f7153e818a8dad32e4c493ea358f863854efae8be6ba9c978fe45b37a09daadc4b59a4d9fcff8f88a3073f320fea27c546b8f148cfc133aa807fd7c233c7b5a5c3f6b8da210ef7dc5c1a834fd1559cb2439406895223991a4e682554c63ac3a117d840aa4848b1b3864edac960c656046e3bc6d3b681e1e6b49bb0259f1aa2a4329b2598b932e26c00fdae2cf4686803ca7af8bf0f1243e64544d51794583349f9854dae778894438805793b085373d09a185cda5489d74274eb7bfee433b63a56e14b95941440924cad32935440b46235a8576d11b8d65a2e8198b64b510fc1f942bd9b0f8e077fe33c559cd987615263e9b66c38c5683893c3e10965f18aa755e1bea6d1789913cf2cb21b41b23c4eecab25798ad13a26321c59e35b0517a78743c4469a4435970bbc2b9c15498b1f17cb0fccb446f67c2f437415abe98cdeb3346413539961b3dfc1c40e243296695f27152b7f7a32ff4b185ea437b275c6f617523ada8f7d2a594e277b9318019abc0051aa399642cc0a478ac7466e0729848a516c9e86bc8ad85be985b395e3b28ad89f71e3b584d857bbc1915a47a2fdaab586b7916d9a87a56235db0c683b9bbd5f000e6a218e54464043ea1e882bb906c917cd4449fdd5acadf5b017983c87b4a8b0fc9ded7a1e2e7ba359240009b06701b5cb29fa3b9250715ea31bd8784dd1d91d26764f32b9a49f934c8cf61b4d4a8f36f81d3ee33023959427d889e4a3c796d284a1fb0895184ba4351034a0280f34af119004e9b06fb1e69050fa2db039a9abc6ab00484b9a2694980197b69b9730da0b8455bf591b2eb4f9cef37a06e7c107bd56c3f7ab10ebdbc60de87bdc8c22f62c2e4db973140c5fff95631839264aabac5dd4873e44b8b2f7106c083dfff8b6403322f467a91e52cdd359293540a45134b97a39aefb6252c9c928adcb231eac0d790422a9e3bda366762e2514758badb2a2114a9ac924553d42e05d3769350e4ca047d4219f1b6fa953b60cc67b07a71dda85649af0076ec5c55ef46e73ab06613a84b2422c1bf039564a6873a9385fb18c4ab92ca7a1b205e8ad57728ccaa10b13268ca519c2a0da39be15918bc724f7760e826ab9d47cc288918b60aa87e037a60809b230562ce18c1d76bc457107c8bf80574a2cbd0f945c59d4371af14737983fc089a425d1ae74993451055ec21435a8114060baa6d774bb6ca82efec1a40df1877011163108a2b20190135900a98a337192088d8c66e9e774b02c6d55819dafd9bf3ca886d39165d1c4cf29b1abd6b185dee9671eb941ac598e1b0240d92ca7bfa119cca15a643ac29b30afeddba1acacca8b83a123102ff20b1bb94ccc16fbaefaea4fbaa36f3d46b7f5706a7ef60e04125228900261271c9ab11b04971ca5315e6f3c9eac795687da91eec532476bc66b2ba7a5650eeee119ea13c91bd94b19c31fdbd80842d25dbff62f928550b1f6183ab64443e6b0d9653c5379158af74a6436ce3a1150ea31367aacc7558c201124573235a5997773064a621869707ac661a29238421c9ce88cc38e733c75539443613d8d81c60da70e46035b343577a1660e08a67849558901d539ed84cadaecce4da36c4b9940e106011b872d1b9748cb08c2e3db4880638767bb67c74311021b6c46698a21aba391c65b9aab238d93a4ba80be911c3ba8319bc866cac3e67fee11b773ebbbb8639891809d555258dc9445fcd815af355ce2cb38552c5be069b6c7d0ba83f8495f1230f50bb57a8c4d82ea8912608cef0ca6cfe408052b736d9c6fbca2ca08e76300d150dba48080421c5a6b13f74b8f705b4eccf9c1a336a0e7a47263d30b5d1675df4a2abec7522868ba4c6139a8d22c23608c40a8bb5e8c65661b94e008ba442b9dd9883e8953029d7c4e7b46206880b48214a84cea0b34560f29054756f427d185241d946efbda04956a3972f974be20be202314d9c58dfa3543acf894d65b6f22047032e408636440024452f6c2cbb5d698730907c3271774da95b09421e499b17f670caf8585e2330394302aac52b0c1d2b2ad16656cb79257b143f555757b989c79a49730354e42299f28a166ece2a03e1a6dea08b01b9323d9958d9e320f3055c9500625b731bef77c3f30fb2960974815243f7edba28b64a58bf5afebd76b53675dbfa62b05b89f85f945c00b3de4f8ad2507121bab1a86224a9db9afe8c26513219ccc9b19156268d159097ad048f7fc245fcb93edce592a8d415d4a38502632973ed98b6f97f986dbff7e53ac28332ea3f161cf5dbc077e44f725b05ff0ac4abf95f60c5713aef1bfef4d11136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 +ciphertext: b6aa20edc9f8ef7fd2fc2dc864289f6c98db6c4e7be0afa4539a83ac0bb55256356abb022d1497988bf0a664f8c2465b15f867aaaa9af528943000e9318bd733aeafc681a9d79e1a1466bba45d5bff19a5f4120f35b1c3c47aac4aee81f61119dc3926bb6c5cc1543cdc914e515b1258a22f07a23a6051e29894bc11019029af844a442f926d27b280f20ec61c4b633edd12c37542d93bb6deb907cbc3ad5ccb72a13763a1a91da7dea74966dc53081d789b6040f65d08c2dec770dcb3b5d37cb8387a7dd953df41f06b097aa7e866b08cbdb1b226477a7502846881b1bf22813f9e4bbe40d80ed0cbedbef9651a93701cbfa15384819df097306f7a8236c7ccedf62504303160515b72f08653ede849d19732335d5c4037252968566c78331afdd1dcfbc1336374e10cf679bc4b01289c46536da48c485ef54c6cf2f40b85cf272cb2d379a1ffa239b3870d488d8d2a18ba80d40d282a0b23073ce5303fa7266c329c03df33565c4178e99e2e0aea2290c846e5eb37fa293e4b7c7ab2965a67d76cc233f418e4711aab7326ebeb2f3efcdb2b79cf12654ad1cc22a748d4160fd13db4fd9b0e32a0cf6a5e2d03a88439ad1c3ec2d190cadf463e03cfd434c0a351e44950ae3f0c52f1987d69a8b6b7da85c445a0149e60c94258ab92cba1ba4d0f43da93ba87a4e1bd0bc62aa1d3faddbbbb6dcff737ce8bff4d108a31aff8ed870b0cd7d06fcb2a34bb9ef25f18f8bbc3848de931456437fabf9402d1d9b9932aaeb890fee4eb4b60c1d61cd7345d7a7a80d091566c9270a8e24a77bc26133a8964527e9b5b1fc8b376d5b65c9fb5bfc9d36dc6538ae8174c42a54940276a74a2a4d1aa99d721a113e65eaba503b604ccaf41ab0a867470244a08655211cf86a684292c2d3170e9dc2207a1edd0fff62c81108437354b1edffd0abf96c3a577820e7f4659561e11e57177564b1745cd240743eca37b0f827af298d25f5c352ad29082aa5a9030b69896d47e4460c210ca9f3ef1981fdce6fdf13a54bc77ca902bf35e31100b06f336690bf2f9a12fa1e9ae2b2a7d7caceb65cbbfccfa52c69cdee200ba34da38334356b7ec4d7765c3ad88cd6f4b3af13827240dd43c9f47b7f7b1fd918fb828aa6a8af0e8f7d3ff8710124dda6e6cfa923ecbd60e007ee6f2b4865937a411fb4859d40feb7974c9dfd27b41880056e35427063a1bf21f1a9ef1a7f05f49e41c74813452ca3265ad710a43be1afc528682e256d24d5b39fe2cfa57c9bf7f728e2aca3b36df31a9618647e4291f603b87a5a82850a0ea288a926812232e5c1cfc3b2ede5b9888a4a039a612158315bb55f2fe481e47dda46caa0f5f1db4fb78299ddfafb43bb55edf77b1402a3d61c4b9d84fa2cd3f9827b1e73a200888aa7ea2b4589400ee0bf389c3fe530e0227dfd7c7f9b4fb5d3f8d127a49b7fb33f3edaf19a1f546444811f5fb83e4126ac5062ef352319abfd9a34a8961ad1061d3577a3ecaa9220713b11bd6311ec7524a687dd46bd067cd8fed06e63d364f4bf4082d8b41cba87a5bc713fb1de4ef661ca05fdc40a098c56184e4e8e63ac7b06a9dd2bf6da4c5820d4f5a8b476f930801b9fc4767a98c0c597c4ef5a3cee795598c7df3911ba71153141b3f74e68eb3afde37c40bfb6a6da19e73cfa3fa4f8f9d622f9f9b7e027e686f872698ce1c415b4ea07d19c20cf40df424d01848e65093e52b049ffb8389626956965a1fa19f3ac8943ef2457a6c31cbbae469846b29a3b92ed5f6d37fd3192caf8fcca888e0fcc45612f0c8103eed3ce543d4e4f2165ab64100c2d1b86fe2c140faee78887df0c34e8520d40a7dddd8c6d423121df5688c91ec5186184dc4bf5db4aa1dcf071c0446f33f3fd37e14ea8ca77752bc73c4ddf515bf04026b68ae127efb7e63958494a13a0a0319f46ee9cbf92c36ba8f15e16ae46c5e9b8ae654f332e36713236368734d83c9eebac4a67c6d142ba20dcc83060c37733e6b9d98a75f7e367c905fca0f8b3bd9b53968d0f7ac129afc6a1ab68642bd5db00b4cb443797a239f291e77d75ae8a8854cfcd916b71cc53a135a96da844e75cabc2a455e7a17257a94ce917a2f92d408f74a09adce0705606394bb3e11db5554bd5ad035b28e754048d832eaf932172d942fe144ee7b310c2db9a6385ebb2ac085baff10b1dcae517a7ea7158dc00c3fa34ba0950f +result: fail +shared_secret: + +# Private key not reduced +private_key: 974b92e8755220caff34234c9c59c29df4ec7b9967d54334aa259f05a73e43285e4a6ab005a36528153c5599b79fb680f2e8f559b68bd3a46b159c3f2e28c960d6cbf9ded3ab2d5fdd885bccefc48723b789766038678d1507ffcb96afbd44dd4a17ad153a8f32aec6b008fa1f6b5a1a4979197ba6cae9dc27ef5f6424cd1e856c0fb5ac337ad1c7e5c472c575ae15a5274f63d308fd11b8e11ad7a88d536884c664c4b5fd4adb85f1a3567f48cfe068c038f5c10813a99ec6c606afdcd58ea6d7edba5409a65d6e68f3d5a34e4bef00df6bc66ffd796e44140dc5511ffef3235c85f5a1fdb6b7c484fa4245ee957666a66aa918d959a50ede24533abb73e96f44426f19302b4cd651779c690ca0a108710f4a8fa10ea25f76e9a49768416886c5d34dc8ec3eb4a89825ed4e67cbc87dcc392d74d04b5386f40796c72cd17e133cd7853f2965f89d7a52d7388dffa436ad1363c049d2b26ef8285341218ad833fd94bc37733826c13c0886e123a49084eee0859923ec825d26aa4a3ba5c094728f83956596a1501fb4b0958fe01bca0cf557265a5b5f367917d3841e4ce6b1dba445038cb95542f7276f916e36e7f76c32faf3d88e83acc4bbd4067e08e3379ca47c2f37a4afbeb2c4f4d23b9bf41993bfce59fab70bf7950b4ac8c5bb1f7bc209957d73afa87d0b37e0d74c08268bd828f2d437ff6048997e9449579b4f972bbbdf2af083f499977f5c68693eacd63d98f3bae3fba88dac46eba99ed324c5ba45f3c5398df6035dfdc8fe48a49acc15b823e5ed812cafa9ea7041cbed6b848cc5cecb0bc67ef6a7a6dacde3f3356f354bedc5c5934fe48309a3d0a90dc82d85e3d8286e64d5b8798fc03c0bed982bf613d59820afd26f46403296e36ff4d27294eeae68c34e56363226cfaf0c7fb4a64fd094a7cb4beb8dfc7bb0cf552bf98ec7e8967b46c70e5cdeb649a8f0464613dd8b69b7fb5a89820f2cefd9ee9a565f6f592a79dc1a475d26d99fce33b21c973dade60d68cf4ee7f820a6f65d09fab44bdb265982b4a78a733e7cd603c0a07db623be4c31f52f68a6572d749b60c9fbcf4a7f3c539da10c8c3c3c4131ec88496ff5955b63fe96e7703c49a0afd1bdb583d07cc0077347e29bd276af6cf2f6d0122b73d9cffbfe17cb4a58e8331ea4c7a83f811fd04dea91bc2863b6c9d86dd7a8965795392cbc188739702ca7ee84c85c867fc45431a7579dad1bcdf526fd876499b039571174c44d679a7475a156ea73c25ee3ab2d6223f9da63c8b450369a89fa59fb65ac7fcece8e93db84a9a330e63f7f494a32867f6b8e5547eed0fec948287e871376ccd5aa649293c5790d792275349baba658a3f7dd883053f59d13695c41ea73c8b832a66febc234a73bf668c80c7665a9aa99cd560da4a6e9ccb0cd7c77ef39670a83ea53a85607aeeb900866a9df72abf56f31dca4d15c7ad19c8d4bc3ed9e545c84687fb50757f54ba51d283dafa480c2aacd8d1fd6877948e1c8f15088ab3c1bd19ec4f957bdde00e875dd4594175ca709164fea5adb408e9e4dd57ef5efd16e799e5d645e8a57f67b07e5c98d80d83f9a8f075af91fb3c7acbfa0dbb477b93b789b76ce445c58b9b977a681e7cff730e35a8295ef40649a333ebd80aea19ff859ad2bd07b3d413087c0b98a31ca4f3753f3c2feec9edddecd2fd7a9300cd9e91ecf4986fd7935e3719b370b7c809de37bbd53879b533fee6f95e43e8a03cc94c108edcb563afbc7fbf6643c9b8dc333134c8734360dfb4f002bf7f58b625cd5de20acabf8fee65d1af2bd96ac403440ec9dfe5fda4d0653491979b332fdce326a836538eb18ec83bd33319bc7e49c29febf3dfc6e3cfad6a3e3c12bc1c0b56599c9dbf07da8e70b60b72570bb49c2085f4850e8a7b549bc07b660e6df6ea8d94a5d1a59a9c8ab17196000c97f49efb3f16dc8b2236f6cd6df6fed9d019cc6328d9c91da3ecb2544cb4f37f38af0c2b8f397e3be1f0cb7af6c693b994c8c9ee537f9d07ded88f0fa4c032d3b9e08388b186e3cfee094ffe8c8c3763ea8e0c986de26d6c90c74d0c349cf22069b86dca993f36a303436166bbac8ebecbaefa37c155f0f678dac5fabeedad48b28e3d63b42b2a986ae296e400f7854393dcf57d04a4fce611b9a82a54098c5377fa74b86746684a02b2cc8694852594b62cc0dec3c240c49b1cba8235b2b7220cca57aa380ca7f6ff96688b70299a0a52e34805ada0144632ceb704b0f08a3ad9c78dea9a9f1f556bb830cb0345ab9f2503342aee2944879ac0103caa1cfb1932062a04cf473ff372d72d500574660435b756a99635a9626f9f085faa880f8c332f674a76ab0196a3326b0e88ac19547b6e8a4cce3a3a60a9590d524e61501a41262cc67a3cf036e08e947e11c33d34895a2d4b7ed348ea8329f8e8775453a65ec242ddc6b33e6374acd4064cd8c765bb3079550c05e0054dc11b4032b33c4e9371630aff59986b95b7c729402d61c7ca3bccbadba94ecb5151bc60330379e24eb3fc36358cb83c55f18789c37c541e93b3b781d42904ed910aba5f6a4168336dc351aee66761cd17617db2962547d77fa238bc415a6f441c0f50fc2cc88dcc7049fc58c3bf3a3091458278087ab81569b607c66c6b6e4f677b4e0c3b4188dc3d3741ecb585ca68a72d0b18f18739e0194448a1da0d436f2a71fd08218283c416a0a580588932fab5903c289bce9a1b53328c70bb943660ce98773ad14a51783486268c270808cddf713160068cc8c8682ba11d4a21a3408b181625bca33491522949fe6a3ae6a2f046619114a0318fc69a3d58bc048c45ed4ac3a610ad1987629b2bd66200bc0e7b083b1b26cca00f576a2d2b8ad3c5212d956a5ee0985cc4023e9a99031f3a903934f2ec24e2ca46f06a26efc2a19fd28236e9097420337ddd61bc2b7c15fe9949acc7c279708a7365ca87b72b635aea5d67541853530f66be8da1730815852cb3c62024be50288c7ab08a3a2c442307667c8bdcbd940c0a6b91ee1657be599f13722f1d21848d189b8b389741a5ec86560f1b862eb63669753558190516964c610696e9b24a955d07bf388ca0cc4bd0861b388e5a9f1c78014da35ca594f9f1b766494b7ab4377eae61bfd8cbb5e775a4e627e2dc80c17128bb5c314be217033668c29198ce8bb27bebc79b1b4c5fd81578eb32709ac6badc3cfb7c414584bc3a38ba2ca1c9eeca55db9bc295791ba22ab54f9d22cadbc83efb58e243517abd4a93a11bd083950ec71536bc49b39c53d17b8a301a17ec0b90188c800cf2400312b76fd85a26557022909866f5591eb8017440364868c459f9039ff053e6e829ac73b2aeb81c9dfa78703c7af8efc6ee88c929183351f752a47e608638c7016026a031c289b936e06f46889e827a1e0c99ec431c763ae80e72b8e8cb87c3b7b74159596a9cc5a6c67253738e6889f5259a0ec87555e975ee50c82cd44428182827faa7b81a0abcd009a05685813e3000f9623e1c4536443811c98148fab9c8941163a57b8c7377d55a994d6ca310ad58012f51f94bcc9fae366a0591adb9a7a78e78478d1076d65c8f029867d69be153cc7f7b7c3f7f6b5f1832bea256f3f9b7f1165978eca35728115a115500677c1bd232fdf7145ed07810ea4651985a3ad7b5edb37bc21e33115d4c8c8b5094419780831c65b88a7d934bef0b9a52ca4299adb84a6d9053eb4999a92c92b353d9823896d3759c3daa69879782785017747c102e7afc0a330ae96bc2e7a4e6c4b5a637b2d85ebafc4e6c4cc676f78e29e6eb5b8a4bb942a797d78cc708ad3cd2f04217f18bb3677318d3a917db689599c009d3897d95b586e899e5855253cf54974ec4f6fe8be5a4c6804c99dbcd7c3e7407fa99b90a5586e9f180aa559a81978adba7b770a4c601980ad940ccd42eb70010254848b8c4a2886a1d835abcb9097253e2fb817425525cbd37c1b8b3a2ef47e8a15147a6a441be37e7b2579e5f74641c4731ccbaee47b1f5bd744a15284239179a70a70bb8217b1371f928b275e14c83554788687ace377888321c87eb5403cf3c93cd4c9e302b63533591d96af9aa5c47353c03171caee118bd868a6fe29575f5881c5a5bc7f67a2dd5457efd71329473364d509b02914d543843cc3b36e213e27facd6f0369f165adcbb314f9c4c8930564b9f5aaf21c82860035e9f729dfd30584b8cd6735aafff819f9d244cf8bcf9ec15770903a3cfbbfaa385cb960692923b88364100ff67a2dca71154700e0594dfd66ae557ccc6ff36519a2252adba29881b7dd1283d3b621b40acdb3bc22fae51c5a64488a3993ab8fdefb1682784edd39f0fd80883fa378cde6eff656f57119177c56a90b6cae64de81b6f1395296905389da76ca7c5435e1c4b2d93cc5c303d31bc0536ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 +ciphertext: cda962ed9823fd85e1279d4c2855e9e16b01e1228905d7a7c243f94adca4f22a33ddb85ef0cf052b8968e3963757c19d104fb566b9188006da9ce5b5c57ea9c30858aab0776459ed0272a0492705c5643dbd7110ca2c2e6a4dfa8a00512f9b2cb730d5b94cb816587fe6714ad7f69bccc08f45e78170be9cce0414d096d961ffb1a180442f510fd65c5fa8ad49afefb8d96a8d85077dca9ab501aa4bbb91b121927ceb461c6c7b907aec1b6e874db0ec7171522122824975b1eae1f4319ca046edc531055034a1fcdfd37b05248ce9a1fd240e44dee1264989e1380a5970e533e10a41498792de3390dfbebe2ef26470276046867194bde9858589c8da307b3093f9fbbed633b628973e9073a9a2e204d436bf4b5509555e0e06d5bc8efd56f2e3ac2e2265987811b396eed0dbe7421d01a09dc97b90cf3df6dd959edaffec7d0bc17e01ecf78025dbb35b6cebc555f89e87e68e272e260fdca9f7c0b886f85d23b7b38fdc565270c52395b136b8f1ac289b8d37358fbdcb9c516eb4bd0d9e75afdad371c1a2bc693c3dc6f89a5c731666dd5d93c9dcf59be90a8fe8c48a41b40285fc43d6ed2a9112f43d7f46f79788642518039f9e1e51e8c21ea7e0c6246fd8395177b271d9dc6e3c5daeec361d2f168d3f50288f4078de91eda0b1396809f9dfbbfa54e6803894e802396d50accf38dac484237f1ec851d93605655d4ce0ce900982618baaf24b3e7521838b9b4b1ec656684d82b3a2f82fc06d1d29d3f00c83fcb4c579dfce129156b809410074fac770227de7a1263a8c9b619781929083b05918faddb75a73ff32ac0925f7cc336dddb1c03ffa6e7d4449053e3d9452b971bcaf7a914a28b16ca4615e76ea00f3c15507df347254a10f4957a560ca28e518a5569d1d153fdd625b538b4065c6375d8cfad5aba472ed15537c22aa8febcaf408bda07bdb83f737440dfdc28da8ce43bfa5edb7798921e0c70dc6341117e70c825f7bc9b83b8c5c036bf3889eba5725b7e1af2fbc6aadd190d3ab68f94f80bd71a4b79aac2186fba726d0be379f1669ab4a91e38c680e38f1495b96fb45533d73d62685621092eba9068eae3ea1ad1c27d094fc6c3d5f52c958391bd58aa00eb55c329452dce85199414e61abcf3608133dd72651c01cc7a7c0a1ad3593fd227d714025bd57920e92b1a3eefde9cda50456aa257ffb85668064c5b3e22c1b0d27dc0e41a8b68d9709615b5138e6272d4f8b7fb26ef147dafab88cae1027f0ae026a413f1f130fbde445df7dc517471223e5b0a5fd96fec3294c66fff3799597689e1e7c84c8913bb9fddf91bf77b339c8cf4412e8ff8d496c6f6d97ba772ab8b1c44779eaf1339e87bb16799c1291ad46dd9776d4d3b15de11931c508a6eba012182784e374a381c671d26ebbc2c744247438e5fbef7021001c233542d13e17fcc4438c4be9310f5fbbf9ab2cebb2aa2097d5f2d30c0471512e8b022b43f8025408ba09c31a246a8ebd9fe904ddb03dda3f1a7a74f64befc83f89375628e7ffb587dbcf904b8d7a5ce52407eed130d42dc4554771c2a10b11c09373160463e775dc2ae642fd76e43441fb544ecadae0b5d6221f4b65b458f02378ab217b4e3e980b0d0ce70f548e5b0b312133dd6c5ab74fd947109d5753168d395b6620d4c9134d6640f216dc86453360aa47e0be2ca5a4431631acdedbcc50e8bfdbbdcfdc9fcdd9695561716ca01f2a872dbe7704ccac7fa6d57bff833335dacdd3b3da12c5eb03556271355881dd2a7d47bf45e1dd87a3a7253357af6a4a92016c5da1816c089be187895f3a576c23226192ee5b66fac243fde774f645552d87e6a50d75ea560cedb453730b7b4be30c5420e2103db839ba14e6c35815020046730762ce2bad97b004db9632c5368fe4a613030eb6830767ff15bc01243158c4ea0033b8989b18f4ed2e5885313044b81d03a0ddb47404b815830c50922a79882e0fdb75ea99428435e776add924ea6921a01bf5fef8995904d09a898b095d5aaef5d46d253ca3a36b4a89d4c34d3a4d6b56465210d4668d4a201d0415dbce1170dd3a52c5c9179aa1ccd90619613ce8a09d09a44a8f042c652eb1c4836cbc1f8d5f4849e4f25ea5bc313aa79e48fdcad067386d8d1216273f7476da2c64cae20c0bfac4c2c4c3e2d05b080ea5c2b14d83d3f199b310f956c4a9345c57265e0a50ff +result: fail +shared_secret: + +# Private key not reduced +private_key: b3d43c1965522268cac63edff79934c25fdc1413de9da56e03ef6afda978259d4fdf3ae07a37baef774ca7a87031be662b97cf678bc3bcf7586d88f85bc44a9bbc546a8bef4859ef31ff939d1e516ee6cced064d0647950f0d4cf976d45b97e093cb8a42b9c903c5802bacc2aab484d35b319b1df5c44df08923f20c2a8033c4e52eb39b08fbbd468c754dfb47cdf790a40dbe562cd04047826a03a176cf85b5ca718919a119fb80f1f43e6ccddefbd44c1d67c854dee8604cbf2ba8dcf41fcaf81793568d50ffa5bb3643cd86788c6f5734cf75feca45301ea97283f6c52da4adcbb7eed5eeacd3499188d555082aa43fac55e8e45bae1cd2391ee33edcb2a5665bfb88f9620ba4e21c746bcfc1e46c4000d93af973810a98ec174d562426424647752f26fd2e65bba71fd143ab7fc2486401b3df36e3a8114db4442382609ad2c413ecdd6a956a2f9fee9c87e668a77e9bce3537d4b93fd136f3439c37c05d9e7eee0578cb2c689b9d7e2b2544d26444b2fda11c0c34b2cbd807ad72e39c6953ef8a095e5dfddc80e1a4e3a2a3ae7419fd35cfcd71e770dfbecdb2ee5a498addef06b14b6cafd066713f44a77755a7909bb4e913d1a995c280a8f24a7e4a72773494fd60f6175a5106eb351df2e7aef5716661d235b5ad1f4dc48ea15fb356dddb3623c53fce0bd966de8c0a5bef0297d4d513e3dd0bc80f674d563588eab3712a5c4904ff7c4a9a3440443c32cfbf520ff0a9e6417a5479c2b5be1a34fff9ab5da17ef4f754417245611558ee854eaeb7a8a0202e8e286b9b52d5618dddb05fc99a03af4420a359c3a7a09beca4099e5d4ffbaaa4865f3777df8744548b5bb8ceb9bf1deb799dad6483e5f1e44b63c9e485bb75c8e32c42247b5fdcce37856cbce035cec7ee323caad4aa154585f8a9a7cd8dccd7f0a379dd629fca6e63990a5a9c7e05ea808c68819a663958f9025543bd3a82407f9b98175b5e2576bf55760905d3135f4691f7b6bbe9ea878adb297c7fac05da67059e30bf3caffef093bcf30505a4d8d8963dcd527746ec371b4a50cc63898fb068883de6d69ef69da33a384deff6b61809ea9099734e7b9c951b831813da9cd9f496ebde03e738e0a64d1d24afe6274e5e58b364bbe6260be98b9eb35eda4156c483831cff613e38a76d310cb39dfc59de510b88b5ac4aca0d6e6888b33ba9fb8343c71085ad441e356cd5563e03c75517c99e9bb59188abd898d55addb8fa39d274dc6fa70bc97fc552f4a76b902af12f0364c584717a39a6e66568bceda277f9bffe8355072c75d6c4cfc7ec7bb644b8932b41d29ea059ffcfda77cb3e876d00ad4b3c8daa7e1b83b13ea4e3f891ff747b1788ff6343f4aff6afb58975cbdcde14fbc9f90584c52bd49f6e70b08fdcc36c9ace8dd2aba933b685b34c665e90b4f19d77f1a71b79402acb2e53480865b62dc97432e8d0be255e7565b5f7ba6ca39c6fa443ceb7a3d8ecacf527a799cc7553518fbfb4b5f46e08d36e09f6ded7e64bdba472db791abe7458f83386764b84e83e52ffdb41346d424c65b7949a9db6ab7abd91f3a980449cdd253c36ea8d8d586c6e55e669c40bb9634ae56733c76ab7d9b4bc9a8787e7b5bc4b0ce9eef76cd2731e9370b8401d8e5c129836ef785faf0bf6ec78718804da90f986961c5e785b9e6627913f8bf1644d8a7f99329314305c0b330b0bdfe5759016c4f32e06b627b84f6c5e843e34425dfbfbb9fed566f9eb37a3657c2ca240f577125fd094134c934f936c4a76582686dcadd16367f3c63795451537831460d0c4e40fd8e1ca977fa2eb7bab8a597a26f33689d697ec94ee684dfdf649e327cf62ae5f2b6f62a41dec5a44face47b3956f6439c3e3faffe382987ecfa533d09c6a48abfff84c63c0f5b4c3f8895e2f83cd59305cb7f48c7bf93beeb4b317ee5cba90597d6a1ea9add7fcafa2d5db86dae0e3a951a5fab5a10e5ef0a9d1b36b4f4065d87a5361ace4a1d2acbce00ed590ee7bd84b6c4ecd5bdf4c453d18c6250a8ecb69b3da26cadde7711c15f0a59ac94ee57b77a6aa13db76bfd4dafa0e61e3634459c3f63bef33178796148b59237e4090fd6b5fdde2f6cd82e107510907bb36e330d5c9bdd1245242e7f4a6d438085a30705662efff5fb465a9aa584ee5bc009432c97a66bea57133df41cd6d6095a69192226c8a1c6a0416dc13bcd39cee2867e991102ab5c7ee37ab23d33e113b3e7766b7c652cd0fe03fdcf38653149139b532ac46b7e80229c2576c44834080b75d9f2490d79a23e6d6cba707458c90c7bb758e3c7049d5868b32e2c50441b280bb1fe7528924181051a9b35c6ac779645e6554b5deb21959754f3a47454837b9512820d04722a884b10e01b5acec05aecc2a778091bdab81f0091ed67a7c7d062085866df21734959206733257294a4c82a7295a739638141aa3821c764891fdbb64dbc6aebb67a8c82caf86f7248afbbce556055405ada63ac9f6423de12447d89746fea494662a69a021733592a0fed82749e73d4c2c9d192c994a535f126700a6c4cee988945353c9e9d2240828bb674bc98f22a298fb6750da5ee76345ee1b2dfda01862d2116e6607d3c251ade46ef82974ebd2a14502684be1cc3eea46cf3c2b3c4c14178a79fb495a44275cfbdb5a23ac7b8a911d7ee2ac0672b997cca5d4442a5d80be02c149c0c333caea0090937df91491f3e03ca3f8c85357001e4b0c1c9a73be64abbd7c68776179d4696fa138834325715e115584c368b720ac8eaa45aa4176e9860200cb56c41143985a6bae63aa16733464acb2cc948a949528bf6a91156a3a6bfb55bbe1980d499543720cfd435289c880ad10a4e990cfa2548f17bab1fa31a45eec41361198daf50f22a271c7f1acb7f70463b9b4c82b71228644b3421325b09de2946b829b31e56b0c95727c762b5b5d078c1bb46ff2596b4db6863987c69b26225bb9595d612a5a464d84b6bc775701fa5559d5c8cb55bb30e2e3bad532125ce9c790774dafacb19f4c9dea8abb25b26a6c6a51e27205b0d2031938a9f1700d353c2997e935461b121149a16f7a133af9a103b34e2d3180516a5421243769eabc81952a407486e2111238d99bee90554c32aa12e774dd9b17a5d98cd68029f1bc8671a9015591cfee86bfb8712a5948b9455caa51074db3771f89e74695524fe030aecf998b6eeb301d865f67b9bf4718476026ab3161c77f677fe77a301f357caefac5e579bbd0b34b51b8b58eb71c44c52dc669b9341670bb653ca363096d691680c95a0086601448c619050486b6c244eacaa0198f77d987c5083853b0b9b5531a716a10e7517484a36e38e465e4c855164b2091c8a23e5b2f220524285c739d8b519f55ab1d6c4505ca6a00f6cb6de0a16e1355c1c8824ea571611b8a3925c4fc64a5de44a2a1bb189d48aafefa13ace52290a615b5b4339008181d428f3d33267cc135a2649eb113c023432132a0b93bf08203b40ef0e6465c1ba8a1fa517c37c3d363b80d25c70248c52010cd995a866c8004eba1ae03e56e4783453e52609d6c84264c836857a24f2955fa955041a44c6157bd2e627124fb102ea2bf87b1ac628a393fe09968d707c0f27105b491e19c34dccc207367ae309cc1a0f0cb0072781c63642823623b2239335a73db76bd449b401cf5636114a22863b50ee32bd4804006f13dd66b44058b43be960e9a3a5adc3437298b05c7b314d3fb9d4c7020b64b6488f70a73811d934bc0a81677d1664bb497949b757b02e074e76c8a2e65410158973e30a2a9b6b034c0baaa22cd62a421bc25c7bfda61d0578c1436b808540cbb608cfcb78c8af6a43188bc26f637ab479a1ce86242766d9daaccd93c13d1885c7c994acb657fab0a75de17037f637076f2099560799520182b8265f9ea8440ba9e07b084efa2a6cb244d7db1a39b10297eda34bdc82bcb6a2ee871bf13c1cb8ee602c0b3818335895e754ebe75476ee1786d4ccb52c7164c33a76a3b3e2b57b170c34d37295d22e2351be21a95b6495432a1a5e8489edabe9b71a4459a4ea08b8dd65c4fbeb66a5058cfe7706d8e09381979b608230c7430879bbbc30a6150af273cc4d52c5f1c43e723a036530eddf0cbbfb6ba091b0861f1c751530ce52c947743a59595c15e529104a892e089b912975c7c598b1de528983b5a66a7a66c459610f63e95a7b1198b4e42710d69ea7a8fc3880c0876da82ce872952120a666aaccd5b1001b6b99877610071249db481117cd69f6a252ccaf1a64b45c84c2004eea971ade4659e3508e7b623fd9658f1ac8789297a8dfb3de7b385d927b522126a05aaf40635372f59af9ed4e64cd55048057d8b30c04fe6c876b8a67009f33aa451c6ad54d556d60210a23da8fb68662c39a1e08d893e1d1e784fb71702faeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 +ciphertext: df6932fbd48242f30e3b1ea4ada5d8bb84e27babdadab801a1ed8d36f93d123cedddf0da50035531fe9d7abede9969acdeb76d9f26648a1d0c2f4a03d78e7cb7321adac80135603cf52b48e6b9e577b167c8b4227a325bb9eaa7bcf517eee62c0a30206b140ac27023ffc1c0ed126002e5c54a146f29f615cb320b7d19e1d32704717bd271264852d8e154fd4739b54ea3fbae78eee7c6297dd59489bbb35d29994353caa7ae27850b3722f56ef241d6e2479fb8423f9507a0e232cbb0554af598ef5460e151e2f69f04e8508ddd1e86dde600d645906b5800ef8cd70f5a11b9c9db74f65b03b0c57b5d9d3ff821690ce41ecfd9e2f80593591b48ab8fff0671ff47f58f2ba533d9e11f6251384c3b3d7ab0176e1509a274af00df564cbd89d5145b9640249a80aade7e6c6695ec3628e1a035216bf49b7e4f034029399d3ca4d60455d20e460005a21393c5ab7ae4ba564cb4067ffe1f51bcdd7032e339db7875f3bbb99ea2893fcf2e055d4226e566260646a09d66c6942fc24f3a06c8fdbe46e95db21400a75501a6c10fe94d5fd1de7d110115525428d641a695f79fafa86a0fc6d2bb01060b9edf55f2efa42ee9a3473bfa966c98a2091f01d8b85b48331a727ab9573da40b55d15e5f68d227c7d8dc803fcebaf3fb171b32bfb30b82d812ddcdfde1c1833043664db97729967431194ab78e254886c404a2aba5d2de25e8e5c6d98f797490e8b135ef54c40b77967a58cd733850adc1b56fc39a5d1429ec6ca0158c2b4b5aad303834e148aac021472b10e4e4696dd73c49a7e2d8e6ca56674cf267a116cb76cddffce8ab6f44500d0dd66a0ae460571199d17b87d3dbaa3832e90f0e26263ae301ab6df79a461b91bd149a1e99187c09d259baae83cfa3c9f33d4bc700285f25a423d05c0e9a50e2bc3efd291c8f74f21c5a2b7e35f13d3e13d5e78c84e2cfb449dbc02ff4f1fd5e98164c4ac30f6663e2ce79ba97997370637437277bff8b2b08b1a8183e4b1c340bce2a85dbeddb2cdcff31152829c294355204fefa07e75fdbbfd48985ede759049de9f1625d43cc83c895e6b0e806874bd74c75f1088a48b2f0eb4e37f70cf38d6496abed79ded46ec7c6ed709161f2996a8fc337bcd8457f155252c0d2b5dd21937259c11e769d507c713b558ab492bb055d2cabeb8f5206eed3d75daa508a1533aaf3a44307d542e7c25fa8ac6a38df6ae99148a746f440687fa5822c02dc6c2cc625f90ab9ebe52162d2382b851b14badf23737e5e94ef61c8401025dae044d3f6033b257fd5a8f8b8ef1be2b03a4045f9da7fb9bd0efcc0f81dbd526c9c4cdf810bcfb3ebe0ed96e0bf69b0d1c311152e715e542ff959ca7ef7bfa072ccca22a864bf3c4514aa23867f1822be589e1776849d1b681832f41f4ea2109aff5926abf92a2d5f546206bc81b40305f2f2891acee0f32443d8e709c27efa376522d8deac407202f258afe4810fbda7868e916a683a6170bd2a221f33890d37db1a9deb131285549c13bbcf858953298b0c2c1a2a39eda9e7ba0c4d550709f17492fbd138df32c5e3d99d7553a3d5ad82f4c81e97560c1f0df2abaf489ca7dc841f12adfcedeb8005d1d90afea3c6b44e646b2774976074262364341f447a34b0b2ad77048d426b8502c3a0a66564ce93f75ffbc7589d774ab33e56a5a2e96c060f60396b7e6016031826c1bc0eae28f3694ffc582d63e1a7ea78c9abee8b8372f7acf672efe98e383d06ac56f03de79aae74c3a9b82a9cfb63e083dfebf2df0a50745c4f41b11e894d192a9fdc272df804a0cd577a7dca7b9b17bab29d537396de43a4554f2b4ecff541d3fb544fb12785c3d200d8c5d75c9113ea2a2a8a0e8f6bdf31f2428de88bc71ba028e06654d1e4aa78745c1e9dd9e5530c3037578bfe6f5b3f081ba5276b49e33992f2ad4494101ebfcce435943ec8c948eaf0cc109f82d0fcad7372fc9791fe4d99c4ba1cb4bb76072e98f76ff1c080ffdbb1790f886c9769c4011a36e9d88f33594e90222e1bc14ed23f53014a0a2f26344c7b4af10cf4b5dc14d7f3a3a9ea3674bfd295c6a78343fb64270824b10d79dee3d8152366f7c4bc99336d69b5fe117dd526744ad5e3dbeb255bf4edb49670daadfc69373ca1e70ba7a3a0839b95afdac0d293f39865013f9746c8eb4295aa6f5a40bf85300266fad6ce396124e71ed5583d +result: fail +shared_secret: + +# Private key not reduced +private_key: d246b3612b31d93efa89f347bc74e1c7f73e79ef3a18fa3972a98dcd857166cd70dfbbc8f72e97e22b40e31fed5cbe38496fc61a6380e14fb3714695c515c5a984abfedb94a09ec0ae23c4eda48a276c9cc9e6911fbb4b217fd8761f7704ebce55db5300ea34a1c76de7ad9c7933a1740552763afd1d07541a3de9793ad68a4f574037b94993dc222e639e73d44abebfce0f970ea8887f4ba1cf278d81abe4f9b58be74566846c742bee50a70380fd0ab9ce2557b2349890969af0bba2fa05335c28b2b125806c637ff4c7d095f66e42ce36ae3b400323cb059d9c035b3c6aa4c5676590ab448c0e6aad6f246a6c59938ac3a56a0adf4e2384432d741c93507c445a9efc53c7f6f98305c5dc6f3d6469c15a4bc598deaf24a532aa935aacba42da1831b8fcc344088b091aeb0813ebb2364e2923afa448a6a7a56c45b9d1825f7776b7d85873efe304acdbd37036c83f976991ce8aa99d2f52b73c6e54ca89440e832d1f9dfa45b59b0f3ee56ff9cb8b3e358d5b4d4590e857bcba55ee9b7cd09abb9a93ae9b62ffb8153f586078d93403d947b5895a53db843969b24cb6dd1c66900569088897821aa059cfc814f3b7a1be4893f96fb35ed2924ec90f63954719e87186538b36c4c44536513d56d84d536e9fe22379f5df8c7a5a19ab01d7da520d759ff5b46aa5c78a8833dc58f88bb432b2e741d1746f109ef45a8f395c39ae716bb35eab66552aef3c59b873487097d8748a285fdd1a6fbb963e3dc4f07169f5703ef1ae7fe6df07628ad6d7c1faa3e7be58c6cfe8cae892cf457dfc29acf3ef4bc377fd58fde4f4143d301a3e01ef76f0066178ccd8d66cb163157fa534c96e3d4e48abf2ecf8d509e8437e23b5572e7c42b64be26a3f9a445dc93d746b47c011ba941c1e8965f52f45eef6e5087c81368b43feb73195cecde34239ff300e9d99388fff3d2c999daab1b395851db4cdf425ffb699c7794977d81998812d836a185f62a57e1ed656166ccf2705d582d5e7d8dd9b66fdaf0675efb25d52aa65813b4bebd1c33bdab745daafa2d7373e9d6b8445e9a35f17a8e47c79fd768be8f37dbe19a686ec6887e5e0f9ffe817aff82557458678c6d8d9dcf22d8c857d798f4799b6cfc63e0c350b56d91b1a40286c7ad955ac7935965d944baf0ba45beed512c698d4c6a117ba3133ed6813eedd147d8285948bbaaa728d2b74e71fa5a1f3545fa937a11496ade9d8ca3f849d577b2b8ee5b4b47e67e543fb36a809d6cc36aaecb3ba357e43fb93276b3a09d3433b81fe546aa47a322b58e2d4955bac7365f4e33e777d68e69f8119baaa867740068351d07db75e2998b6e77ee1e8d409d6b2d97c973296ecd9acc05b2aefaff8a944537eb57bd6c3d5f0365bb40588dd130e6baf76ebce454e6da89507267aa0fcc880078729eefec0e6b364d6de6d589e50b7371a66caad36fb72aadd35bd8f0798951cedc7d6798aa99670da1d6a197dd1b93ba13756ec0d3b8da7aee94f0a9ffbda4418ccfe97076b8ae3a4fd8dd531d5d2febbbfc776e31dd4b00556e51bb8d4ef08998ed9346c596d804473c54ab8d6f64ae654890a54a3cec9f01a74816d086fa23ed34a6661a30f95bdca444b1c64c9b77e235cadb5cd8d75b5c0306f40120857854fbd45bf615d3869f95f6fc607eb08b4a1e2398b81e86fdf3b89a3453569a66e52d5bbbdd670f173529e3d950bbeb91678f1e8538e00cf4960ddc268baa07f6fe2fd4e385ccda902d85f602d93601c77b43bb865559cab77b4e6d89b5a8ada6d069e5ff839a786d3ee4ab29a43ec6f9b64ab6f6755f6e648a9f003a556c31d345f33c2300c3504f33fc57c32ec196b1a9a353f14d20cbe6818136d32737dd4d9ff7b4656a83580ff053ad4d6a13ea364431ab1f3d8ac206edd40af5d8c43d84b1dba42b5d9430af3ef5fdbc7d656492952e157a689c73cf8d45487293b0c8c4245c4e0848670d66ca54a3a3e016b36fd2ff7ffcb63ba4edb8dd73bfb4d5b3da64c69a64174ce5000f88dced5d07e58bb05b8e673fdf4157ef829cb7e25637a77c49d434a44f4874bb5ff7b3584cf85b3c73e2b9e0cafa92b977e9c194585bd4c3e8c37d9b7404e77802c05b50b3acce5b46e54c7354087321b58f2cbbe48137459124caa95197546f8b65e8ca56e95a1b844147c6011e93057b8d35b6d6052ca045cc1d8444c1b603ff211fc67653a03cf7d3930373206d4ac62090712be287eb6404843c5c1208b0b993c028a445be50550e2b5625e3124bc58b256eb0886e74ec7f0c4d082a143139222b80037b61649e1b4f3079c3f12cd9742486de788ac1a987c158f5d20296742af5953617a5608b5b965ce1cc261139655a09936f555ad8882f3d7b823c400fb7056abd05bc4cc18636141a3f0c0688b5cc04455b768be41096eb7676315f808953c8aa95656e4686c89078e36290fb0b01697c56e41a0bdb7c9c6c6ab8f50eaadae889fb9e0a41d757ec6756bb6e690819b95bd02386398817e1c9ad7db807a842e75017f5bc6b46fa6cd1580993c1238aa197931c9b55d333e953420dec916dcb00b657b5c6fb538468a855e830f1afb9eb356098e12226a7a0718919dfee4ce6e275211804079bca97f291355790aeff36f7baa99c79ca6a4fb1979331494407b33cc6fef3663fa018e28d76e49eb1b5fa828fd7aa270f917e143a9a7938bd9a05d9e483a2d7725061a88588c3df6935ed6c411a149c634d0376decc87d2988954671c8e9249f517ea3d939af8a71d505a628958c634221f11ba962aaab9fc91565fb647973633a4946976b379199105eaa8e8721a12ef43325f08fe6e173bac2243ef74f92074d7e96124d70b3327839806876a6d6b982219bbce5499bc56df2b45af9cb67e3eb878d02b881a5ce9ec55b98808c48a2c963d8854f0172083c9bd2f55b15f6ac7ad7156af33fed0a5b6b668d654b602cbc3e3f9b81b3eb3c476b5bab8b6c886528ae4699e3768b51cc7f48ea9304d77cc8a708ed08321e97228ecb97aec4ba224baf4e684fcf62753985c8ea07c86f501433f40c21f6903cc8166a7332c0b6a8a9c121c41c35690413e98a1a0fc672fb1cad48d74044811f5c7363d7b03fafe2a6a3634d850cb4fb505547b72daa710babe7165b50ba090338f6001d8744041b5b3db9dc2bef60c5b73928889975f51548ab72b4b88a85cbe2457810115a9121f72a3d8dd6bd0c0b2476b2bb9e69a7e613a83d820670596353944a26a16115fca33c505a4dbc5c1136ae3a981da1d1a4b2c25ca0d5474916675ec8817a969e78812414053a4d0245d86119e1072c8dca8c211b9bf3c91fee350f2a0a392c4017c5705655f26657c5090206270140bb93718c37918b4ce79918a9356161b00f09a43aea259ff94d0dbc95a6b83eda5326397750c68cc6b498ce974235484aa453334e05c8232dba3dd1a182ba4543b4a944a5220c46d56812e125c06bba360ba7759cca24a1cc02b13ee9fb75ce8459df3c601da31ad552c153f789905a105929a223e3101f32431f346bcec3a128b0a3c3d4290d270b34e643e17bb5d53b6d248455502c71edd01654d028525576e3422bdf69571e9c10cf3c3c30227c89e2ce0c62911e5014b78b0cdabab060579ebf1a517414bbe5343bf33311c0ab1f659b3d30727184ec1aa8f1c3a3db45fbe215aca961fcd8ce98429d381995280ca0e5e78cde55442518476e0b404a2668424719abe71d64083ff8b63f285396f5989dd4aa9332426eece567d8098951e141ec43747c17cd9b1805f9245e0819ae416c61f3c60818ea448d397211e8b97e755494f0403a133abcd0882ab907e55a130528a5ac535ade736081d1cabd62980355cf85f84559ea36d6d3855030c341babcf65a20c9bb67ed4901f8b2617c7b9c8466976da39c6780003b71a74f6a16339082e6a62458835d30f1b32041bf9ed21c65ec59db3044dae0654e743a5e65836a4b9c5d2c9c4de859b1a6755ae7860fa6053de71aca0a61cdaa34eea773867a7ce66654380219c7b756d117a81e1c1f81156c6d5cccfbdb285c831317e5cfb8fc50b673600bb46469bb3c7c6072d87cc3b17bbb65b95e81875548b63e3024a24a329a4bb1404ff862ef10bcbe6a997c847650b5402b888e0d71c900d4a4a4cc429d717d3860a6615869f734244a0b25cd463371b189a243733469bb5dd97cb3e856cdf2ae64fcb519d9be1a75aa8794542f51bd67878e9a1b8f6d70a650b05b6a609ca9f477579264b127230966a289295719158b63931a3c0cb764e4847c9ac8bb91598b905a650a0123c7c0fb939f7e3943a2f3bafa20a221f37dc17933cf5e868b958e4e7cea4cfd021ef0ba63ff7a7250d21513171d5ecba1f135207bd2ab61bf7718dc6825848e742ad56f9f8099bd43905ebd9d6ba7a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b +ciphertext: 266487d97a7e78c94cc702e1869784dee13c887088707aab4bfb065bb5ca21efe01033215c2ea740d838bfa46fe849f697786ed81bd42ada9fd509065daedba4738c5299b3fd20b9805bacca7fb67777b05e2d1f25b56335b2176b59fd4e6cdfe568edfe76fb17d9ec39474983f44752e59eb2e18d8aa659f7a0dd9ed701ff05f94576f9ce83c4f04e2d47c13a2b3c407c6083a486d299c7e335bde88ff84b6677938b2ba4f6d307275c5e883b06ab66de74b5613257cd17e58409a8ea521a81b43653f652ac178c3bd19204addb4d6d66e9fd34363c7a9359094600212baddd2bc5b7780b222c5acf0e866e16adba183f12410c7cf91a9512d567bbe8bba633b363ecdff1fa198abb376b1ab479fde329ea207d0c665a0cae43350c871a20bf99f3b867bcfcf26e144c64b38131558cca0cddd3afc9c095621bfbcf789af1db138a58c5a2e97dedbe0c05d1d2d9bfb3ab3b1d87770d61882ccda744f67e89cfb89385e989e48595b975ee51d3631187f67d35640aae07eda8f0ed815b3fc2bc952b075db1856c84d8e20dabb7b1ff3f3fd8aafee26ba1cd69ec1c37073f27cbca57f1e493a1833d57702baa80aebcbbc1475ea314135f1598dc69737f325dccd2c817746ffe03302546ee6a8dd0e66d2487fe0400eb0278513940dc453e95b1c732bfa691459e96d864e342d532f39fd1099d2d19f81349c92aaedb560d2ae2b97859b430bdb4662f1546056ec29f80f582af1ca3bff28aadc309e3e22f63ff8944fc2a2ee0e88935a6239a68704eab53e737583977a66798436acfd373eaf5ef04870ceb6ad0077075287892c01a914408dc1703eb332bb66c4f721264c2a582297bf4853a4d402193dd48fd80401e1994685f600bc1a1e4e6c1419fb944e642ae4aac3f3b28ed5ae13a0fe822a019174e4aba84fd0f84f5623d54ba6ab820859827ca997039018fae104fbb95756e4a308314dbef967add842940023487d5100c1d146d5f5fa270b1ae998e08c8370b21d4fdc3b7e56ba64adf9f8f7c4af431a0ab53611941fe5be38abd05ec13456e30c48f80ec39e111676dcc831d9f41c1a3861ba29ebb24784686a2fab5a50ca72c8d7600b2b833683e7bfe2bdf9b63eba575620cae84c87d7e9e0393d4f146ba6c8f4fbd3276567a0b45377f55c5bea463862721be3a02b7da77671e48891551c753520b52962c2d1ef4ae3fa1133f7c065328db517868003a28c59562d40d8cfda5327fca66fc54134fa303b506e7fd55ddc0263f72a9579edc9a8491ac33145338b81e1960fa395f808ae09420734fe952056fcf038af61ef94983750bd56c72ffd1dc13ef624bc3ce95239a71e2fdf9e403897cf45e581ce8af63a245223adca6a3a31132dbd21d55482871aa606345b27966e2e07f175ee4be7cf0efe4d84ab6fb979e365b26ed749eefdbbf2148eedfec6871420bcda1467d8e5ac88c3d023585d8dc980cb6d0423f016eee54ff9f93a62cbe758559207e9cde870ba5382563867973491735e0c2b745eb79b88f1852d585e90f572cf3e00c6dd2987a066ba1f742dd7f58555f5f9f3973334ec91700cd21bda10628acf624a31f9395a468bf6ff78d4484ff60e44c13af103a81d8d0ef5e26efce7530983527e95fa7a5f6a4280768bf91f0ea21efb607c73843a6d2f80cf77656f01608c3102e1bba81f2d72b37fe34cf35bd7150de20d30da1049499d775107c306f88067977231a06181b3700d602489ae9327581cd431a1e83fd3dbd92bfdcb787743fcfb066bf1446fea699f75f9eb3906cf829e31497d74b92c7bbdfaf798d2f54b91f35bf2eefffe1865abbe4e399e27a78d9e32c683590bb77fcd2dccf1ce27523adabcb3edc0805fe5439409f9ed2b90537ecb2066d7560226d352a8e67e54161ce51c380b8ffb176852d132d0604685b5b267d01be16fcc2934b325bdbcdbad79cde7d4ba07a3c63a2e645fc143d62827730ad34118eb6ce61ca2cdf890abba3f9169e287417c97d0719da6b9f1a45c179b1641dd0357ffee577aef94efd5b498868d91d19a780e2b65dffcfb23d01f6536d91bd49fc0e634b79449bbab49f612d41afb45060b448830643a0f246ab5019ce2b1e08f871eda66bf23ccdda8a421985b58199dc3d7e42207bf830b2b12fd859578aa2b153bfb93e65ea210a5c0f024925d77fb096b50c1ca77758fc67118559dd7f +result: fail +shared_secret: + +# Private key not reduced +private_key: ffa253d9738c7f3cc8d3d9645bfa7b3dfcc72227dccf53f00ed962315c4a4898f756588b0ff85656bc8329c33d81dac016a5b049af5204396268ea3e16b63aff88a6c1bd3450beafb0f530ff4bf858954ebbf8e55c287b3d0f44f3ba7aa06ceba3c7bec896ea1506f2d52d653a44354415a152b774e31cc0d3ab9b08486ae87a406f17b063cff4b75c81d4febb1678aeceb9da9aa5df86ec8fa357984e697d21d8fb71ad933dd34e289fe89fe64f953f5bc4dd68f9a56328f6cd0fc93e7456f640998cacaaa7d4bae7496c4fa14e4f56efa5601b3651934cb566594027a9ba5a77b37f9165b5ecd457907a25786d55e0a6ef81c2dc3ed52fa40cdf3a36494d4825a32caaaa244685734a543c8c65b6bcc11db390c24c57e49feca3bff9052846fefe55a786cae0c3474c58c4cf6a4fc4fdcb414da699198fd4f9519fc9533724b9d5a5c76e8c5f39df8f034cce991dd86467d4ad2b5e2f985657047554b389cbcf53e51a862eba7491aa76528ff4d8df47eaf35fce78b0ce3c8ef14c901e3ef2e364449967446437416e15fb8fa6671a04a173559f470e5fbeee6c11657c7f759242ec69515f3be14c8e403aecbf973c91ac94e004c00bf5e3ffe9dc189d71c6bd5fd20a3db77f7b913f55920ad7b33de04988916d558817a734395beca7c95f2ead93003feafa8aca0d1ebffcebf43e986b34c7fd66647d05173ffb7fed0a29ee6e69cf7dd33c252a8267e5db57babe73cc84972665db7343edecf926dbbc17f44e81fff9ba494743c6f01a0693f418ebc71f4bc37d67f0a566ee95b455f6cf414c6621536f1486fff9beb3644fadaa6c381656bf2fcafd973d4f895b6b0beca0e70cd3603671d2b9e6a2b571cf17b060994c0d296089e3804ddeb76db57d9a23640bccb4adc34baa7db9fe23e427538dc80c41b299ec0a0db2c16a42018696490c4dd323f9577542e0b5677838ef05379cebe49f7276ac28dcd082bbf3fb983811daa72ca4db8ac9e2aab4ed3ec895d215bd4335f68bce37ed7bb980ad9f5c7aaeea47b822ec676184d809a9b5857dae5ba7dd6bfc37c319f2512e8bfe248e235860027db8c0b3444527947ad5e5211b9b2d65328e13cb33f4e3847cbad815412ef36c7e7a42a7fd97b0193af3cbdc6049becc3d51d61ae0ba1c6cf4b9cd1058388627ffb35f7d85daf714fac6a745feae8d50819bb08bbd50b65f5e2a093ce296a0dd8ade79faca7b2d9e08fcc4366ac22bf63393eb32285a5dfd2e98c0f3ae7f389d4283ad23e86a2e7972e6e4b22fcb7c5cf543546ddd690f88be0d4a60df8a281cd9acd35dcd245051545b46598524bbf18df38044f52f048f81b43fb2d77edd7fccb9f35e73b48c8a2b18b3dda8c3b0abc4abff8ff2b4a6acdd85b6d8722caad2ccdb96a0dc90922691f96769e2d9800cf5818b23c2f913dc929c3f11995c68d5d4c91b753496cf7b4bd0e46a78babc61043780ebfb9f037668e3c5d39663c8cc39edb5f5a4e345fdb5079387e5855d74b84045b1ecc7b0372ad48f484c6595d2c344b6bfee9e370c78b213f60f6732ea55a0479453b4684454588c90e49d0a29ff2644d04e3f62931eef1d53b0af7ebb8284379e9f5fc139b58104d3a938dddf3da9f5847fadb7d582a7af03d7ed0a8a31482e9f986c329be6d079f38f22e99dac8cbf4ba67ad78bd819334136edd888f476985441de439df0c8e673e3f74db4faa895ec34ba304b4674424d555959e662443d51f9ff51ad56d4fac1ed2357f015d3f538dda64cd5609f3cda36916bb5ef36ee3cb17476a879bf88c4d6dcf5eca85475b7447c0cd6c46ecbd722a8cf8e8f50fbec5bbcb5b9b654f38178e51ad9ad156c7e0edeabeda37e8e6eea34b447195a897568b080aad2b52d7aa8fce2b2ba73d64bb97a5f3290aec5c1a8d1cebf37ffa23115a774592c5f644bc60fe3b5b97ae689b9dcd1d6abfa9a50bb53dae796364cd99d8f6f61830f82204a8dc81cccc40b67b92d67fbc38faefbd68ac7fecf3a6af5259093bd6b2dea6665b7901ffb6c2a243a3d2b423565f935d3f3abbd7769aac9ba0a8c3813c5378ddca93f3ed76f954adc5bf91ec4d09434d0046566363775f4965f6f6346b6bc1c5d655efdecc74fb7f984c926ceeb554fc827ecf8a004c38ee59d74dcddac334bdffb649aca864c32b4f082ab455c94e6fac7ac1c6c46943e0d4b811e48a80f18a22130589937a1f4e4097dfb8c3342aab55648486701ec3c36ed167dac427c7dd54a6ef844468a481595b933701a2db33235439d702967ac1b77f47391e6700596d52b534b6ef33357322ca6f1c6a6917b1d8d9cc7f83028437c125912b4e8d33db0d00b6d475452f41a5088a9e5d169d1faa564b220c3aba1d6c27a5b87aef7f4afb75442c0565cb78c7b81144aa3c209f9a808d43132c75399293400ef70551b51292ba501fb613998011a35153046787183580e485bbf5b81bb9fc690ecd0cb7449615a0b0134f559b6e1062d9209ca62aa10279e2c7475e48837e70a2ddecc66d1ba5dac35760a5a5de0764136618b78516a0c711c3c4440c1f0117d617cd64b55482c952e7617176443c802c8046012e9b774d0312a68c49c85a44d430984ec510212316d43ecc3d6fbcf9736cd3e712d0d3011b645107a22b9d8f51e8dbc30eba66e98624473880c3378b8bf933d6577cc31d0105e19565f848290059604f9b71b755e123b7401f204356120c769cccc2b1660e03e688a75fb370ca4088b46d955cb24b7073c8540ecb2a537a66980332df62196d8c6e5584b7ba8a4c8739eac585a812aabb33a5f591b428e50c7291415012467d49b232989c34711009806249580a557048dd3dc0d2d6599cd556ac325a5c00b8820f0c9dfd3336bfa5f61d6baa5e26b848b39ca02cc542c1dbe90ad8d355cec4c9f3548868e9052618c86fb729998cb4cd610c8fbd86429621e34d11c4943402c2598b80aa98f395a85a180ad402587111de30cbb41e0c5f6044219d6a243860fa8da94f2fb878c8625b8e8243731aaf5b511fe7b3c34ac3fafc68df6d4be563727f705ad41245fde8048d184337e662aeb85135df92d4c1a3b36f1c984079d50248f88523483cac2dfe959162a79353708d09b399e6534aa88aa5bb3cf3eb59eec6a5c8309c6980bb2e4681bc47b7dc2939ffd5439ec4473606166da1053e9467c50854712490b583ac02a657c61812336b47a5e2912cbfb4a1acc84991116b9cb1497f199ab41b98bb54343d188ae54a269c89c36a61be71898006bb9ec531d6006325a47a13995492f41498790bdae9a9e41c0cef6fc78f8e027380cae57c2372308a1b0c2321f8ba17867a1358c5c13095617c2b276aa3c0b36588a9c62683104db5c94643c69c1330db1fa9a66c107c62567f2898419008b9465355af511afc923415c545ea44f15e7b98dd09ec0d79da5893125d6125aca7adf78a32f918af2a41cc6377c04a627fbb28ad5bb65bcb16e3f32622f45b5600cc367348379894c65f494f79948e6e1941c10afc4cc00ed871e529c8573b36debc7c80364b01ea874f345271517b6c399a6277b80bfc1a9996a3748a0bbba5a24abf84d6a714695202ab7779637f85774c27a51446e72fcb59ee684873ba60315a84988b5936674833a93f06b283c6cc1eca1bbc36a02c8197480c24e17e2316eeb58b81a3f5a063b1dc4b20239818c8aa67fd96cf6ab52017979bd82431c862837a1b796d0744a27559e748db8da63676369795ba92d48bb11f9bfa5393c522403b6379b0d2c82beb17ef29b37fbebb387aa695d54c241d51fc3d5bc7f8316100021fd805d76a601862473ae3996b2840ec274bfc37bbf5119668dd0bb0e909fc2a28f3b3c469a9b279bc4810c040b70781f3d67c584a965a94ac1bc088cd2b61c54f301f5dbb82f110c20d51a6c882cfd3c2ad1e6311fe4041eb6cefd7681e75a72d7b0cf39742394e33328374e5ee5b0fb3b0e2c709365780ed3191e56008280188baba9c745fa5a8958c0ef28c1fb641e4ec13dd77404dcb031ff3b670a2092edf848900818c7104b3e457d4189cac8082b55c55573c2021fd32e4b331eb515092843c323b02228737b2c8915beb2718d63b8020c2b3a957fa5029638846abcda5c3c0cb2aef55d05c38cdc1755328735901ba53d685b939b168b9cc55aa0ae05fcb8815400a9dc36a58a1f4f90b3eda3060a4490751413d9c1453ec8cb64dbb679fc69073c9e839c40e8ba4cac38124c3697528404bcc6435c9c21a5b89cd05516686b4df7da8ed3bbbb9afc428a842a90bc09666804988c7386b794b460105fc5035dc3018dd494d421ae46f978b305738d5f40faa6dd68ee73df57c41f89935528e64270c9759d496204f118f77224920bf4ff7c69db5ebe12eacdc6012d57e2ccb3d690db251204dce3ce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 +ciphertext: 6b0bf99e0b0ff75905ca7bbfa272c50e2603e7c2c8d0d7a28aeffa277c279baa6eac0dae07dbaade7b9e47f863555ff913e0c55410e5eebd974cb98e3aa0f73bd7d7bd52c451acea0137df60c19ac883f92bf27fe16d086457c46820ab90192cd4f1bcfcf62d7904f8af6a028e4ea5e490f404e88596d0af72f3b2e1da4674e20e7a437f921f036aedbc3619fc9f0a700eb103146fc8ced979319283b7b32d58996c7d430fa89db2ac9e717b51dae25147d92e8ad5f01d738b3eb308087a4204377ef5bb35f8d02c707bd407a2b706e7832582b288a082b238c3bbcba73604537956c3d12614645539ee1aa5449b721776fcd829209e2961478d154f122af4e4e42a9a88a02579e2e60af3df04d56189d89ccf236c5b51d5dff985c1abc0c18cc85d1e01d8f0a95e88df078c296f50ea8efd6d792ddcd8d694fcd935206850f423240f860d94b9843822a8818d9e24589ea80be4ee48341b5fecb9064e863f33840e7f48d2f2ecdf64330ed811c3e9301ad48cbf5a8969470d12cefd1a927636f8f34d78fc1427f9e3876ea2ad0979aa967f70630a2c0347118b8f2fb54ce3e61a2538b57a941d3c8b14e8c7c10af9bfcabc00af5a5eda911bb1a489b45f95ae1e621a58d4c1a287feb55a8deb01adaf0321f2c0979faffecad7fc5474f62503056582157d7e920522adb236dd7a27b1d5d61f2b13924b78ae8fbd8c4187be30bd181cd57e138518d4914893c6ab475d23191b25ca3ed1ad74c0a519d19b3e269f0e9408608a898df75cc8253dd36641f280369365d532dddefbdaa9253e732f767641616c2d2232b0e3a7afd1b46acdba3f1ab7af1e422bf2c4c9b8e6d1585a50b900888dab0e2d7f421d213d8842ca007b9f5fe7f76c2ddc963671cbc896f5569a9531b5c22bc085f944edb6c95cfb6797586c8d8eeb40055aa002ca3110e9254e1af1a54abe82a0418bbab6b2325ecedb6056b7e0bdb9108f2f8443ae8279e0fc3db874cc2c0026c2b265c2bc9b406049c015da6c8d86a3d5b23de546a63b8d8d98d9e3cf0a621590e443d8147640621addae6d5c1cf2bbfe3427ab820ac18c2a0d6309c29568e064bebf72ba372b3ea006260b3b1b84363e1478fdcb8e727fcbb80fe0daee1cb4d0b47f3fc5690e8885c9e76e299ea74edf30610cd418437128bd48991ed47010b3f7a1536292da3dcf44b9ababbb2914f53d35f2a1c2e5a3ca48d96ceecc2e92089101e8ee50c9d0ecf93e9f4a68450a3fb23b34377aad47381188517d8d0c6a185a07d1de4a30ac45b328c8104b5fc35eddbcfac173e4b668d603ab703abf600d3043d6b64c0494fc757e530fc99b13296200c2016089472168c9230029ac155aa5d6ae83da44880a86483ac0a8384862747947e585f502e1b1e3aecf4c9c4ac62f8cf348b23e0e015665d97ab654f51f624e5b54efe23b83daf84df2812eb434393193d0ca8f8c7f60f354508d5e46c97c775417cb82b66a4d9a683c2d9397e3136ba9264ff9cd7676995932d9f803c6ebd2d446990bf5313cd4677fa10ea6d9c5d5f3bbc00667fca3009b69b953f22c33fcc800b4e9a96627c838966cf00e2b5647725ab18950de4fdda622b8d19d94c3b3f188068b4e538c1d8dc8f69d32d8708efe5bbeab6a9a3fd9bd58f2bdb4691bc72d933dd6b303e586987e57a212af80bbb763d43b9adf32ebdb28113a6f3911d95a1b75656efc36c4b950f4b523bff785cb5eb1ade5878d53c74e113a1f6f97abed9bcaee8d5a012d9453720cb4217a359d5b800569626e63b74fe4439df428f380aa00ee9563bfd8fded9d364ba45ef5477a4f27f6ee637435bd5b7c970e181733bdad678dda5e11969bd2d15504f705e4a3fe34ce6d6457dadc0300f6640a8d6c53fbbfc993c42f2c26a9dfecc04ce2bc6e63e1258868f1c787287e03dd4698d2d400bc5857a56ea37d8f02a38a7fb02c98f0c084aef51a83e8c4853043f71fe70bd1e6d758e673260aac5b305028091fcc44ccf993fbb232462dbdd6694fec69487fd6338b4a7f0aa0c3c4286223566cee9c4facc6faa84fdf7fd41dd1072353c51f9e5d99b7a15b9a7fcd960bb747a8a4a0980b99c847db7e6793b65cdab1abe753fde758c55d6ef85bc81df59cacaeac2368c255374fe9d1f94a2c482f40855f7cae9dddc131268ffee6a5616312893b819e285390ca57d814c9e3790989a29f9460 +result: fail +shared_secret: + +# Private key not reduced +private_key: 3724c5ebbc753f55535fc5ac0069c238d8b7c21ebb7efad8b59999349bb352cc5c18f9926bf676b54ae5c75996502d5a323aec89eeb4267cfd6b4ee3852e6ee6e4625c15414b77849716f92fd79753163975a4be5ba4e0f4df61e1a3ec934380263740d3af666d96e010036251f7d61f04a6e8f8acab39d7eebecf0109d7bba7fb53f79df07b3ae368411913976e73360b077772be6489e83818b6a1772f3098ef39753fc9fb4bb014bfc8fcdf815298b0214b97cf8b740aa4bd89067ced36be138a3d096bc5206d6d386541872dd83d7e968fb4e00963d931da393aea3ad975423839f33bdb9b0095c2421a3db1e9e4e60fc4aeef9c408c84258afa1b3ae00839600a659026e6362cefacc789a1293fce5d87653396fc0e2d844f9d3516448449cda600b6c7cc9efa3857d37c0cddffbaa582c9d28528b5268dc956d4383e2de55dd58bb84bba99cbae99055575cdfaea64828f5cf8b9adc19b5dd9d6e6c58c76ebea9a84f7ef73b9d5dd9b8d48ab144f1699e2ca1c5efbf87997bac38353d0960aa1599ce5222aea0de795f9385fadca44cb036972a8c37dcbb61c793d862fe4a80eb3f23645a166bf1a1fa827934a32a58fba6abfb41a4ed243ece1dd83794e7f43ce76403a9ca5eca3047dca2d5f3e7a294c7f9a7cf87b941ea47b1a9f8fea095ae52d38217b3fa0b54caecb60ba03a8a99745982835b0cde935eebd4c53ff3f4cd41e96c08c8836e267a30b8883997749b66d47d28f758a683123b9ef71ed8b1c5fe21b666c27d4c902939cc90442c29d79e53b87b834baa609413aa3698d365e5be7eb247a7f0e5fe84b166cffd532b079e563c7874e9392fb1c9c528387ef3648d72cc063546cf23bf3b6e68c341af3895a657308e030e3ccbeee4f56aab4fba5505314605d63e1ee89a7eb5cadc85f3716885b425dbc083e8902657ad20e594c24c7339dd4a29cb8caa4a3f49ceaaf8cf89a063a6ed690f736f5c6ebc7c10bc500b8a0f5f8d7656be470a4802fa6c3d90bdceee3386858328ef97e0b94518a455c5c6a3020b7da9468cd784a38bce99492cba4be53624925c3f74c533aa681a858ffbba5c15c0f6462956fb4269bfbd3591ae338244f5ee57398dc0cef7f3a53fdc6b031267e5afdc82bb4b7ceca3ceebf3cbd29af7c797867493046c3de1274e41535315c24a03f08c8127e6da71d72658fd3a0cecdf489595e17ff717a67487b842a6c8b2cb33eea5fdec64f8ffa6b85a84ee014595f409ba93e9be0100ac45bda836b6ffc01c78fa8c9d4be5ffef17a93d1767f32cdfb764dac4ebc3cc70f5884ac9fb0ec996e537608695b84c350f0ff7a16ffb83d76b1622789f65e57bf7f74b73378994a997d564b81955238a9e8b88ec19317cf85b7fdfe66bf8c44b0333edb9395ae35f9ce62edd2a2e4a0d608f4698698a0d475e6e9dbaf596b84df628b5b34567d680a13b56c27a9a2d7be01ec655da3c1c93886d15b6b6f28404c85b37b09701aea3c51ae46be8bb93c1dc65ba6f48b0fbaced8e6444c911b8ddf7adce6497c536ebffba6995f89985f5aedbb5a16984b0d5f2c64584ffa868da78d33b44b1afb5a25f85c083ccf6db93a5a8fdaadccbf25a8f28bcc6da0676fedafe0958d548f5fea619cdf0b5e9750d846d58e8f5d1a625b877c64e9ccb639aa69186b70775bdd76e2c86d7ae6149f52d447aabf946af664b493805de93e9a4846b734c09478f2e04e5c446455cd037fece9302eea5a867fd8c1a3bca48c35e88cb32affcdd6f56a1b89cb8ab972150d93f2686a2c0aefe17ac413ba6f3f83723bcbcd933947389476ec07ed676a3c327c9725048dcf5ddf791c9eae184aa96ce93e94d40cda88f1a497a2c9d201c95248abaad0c8848e7f80be076ea7b4ad3cfd83656948ca5f417ad3bdd298f1c9d9fe5909dc568fbfbeeb560469aace1bee7dd53d29f59f12b767356ad79088de1a7e6b589ce50603bf378d464f15aab48d9ef34db1769f88ed7e9b64f7a184b890060ad066b4e924ff5ad87b55ae89a1222b4bdbeaee0773ed95d7d4f6866b1f9994f94681c21b41c3d7972cdcfb842759754ca826e433497b358c17ef306a464d4bdf7a5db55043d49115f9a6e476cce974488443562cc11ede3f45bbe926859952b67fdf277ad3cb8966cea31e4205e8fa992213c49059a409aaa3ac72b85837cddde4c4ac42a9a35ac7fb80ad2d8c1eae7019276b1f3f3a6761602a01d99d4d050c23892427d6267efa092b587a5d2376012cb755627b9e63a2a04432260aa1abb2698ebb6075620ff11b01e4d049de698966fb49bdfab73675586583c744b5bafbe9692b6c6c1448899ab72a8821b52b4bc061910fcc70beaef424afeca7d3737f4c7c6711b38dea919e1a13c78160c1c652a81210c010c48908b13101b04334e6534aa0986ec01a86b30d41cba67e573ab6b0cc1a2c973c0041bd26721b508a667bc28e010265b762a223128e092eb512bb9d6150af6840581514470212d0e5c1f4696e45ab102a91a0848497e8a7a52ef20c85d7067e6a1f99e1c0de84473b735bfb001e860c3194029d5a06484920bb0e371114ab2f3bd775248a9449d2c19de5023876931de00dfd609c95c98c133bcbeeb52c0f713a19176dc90b5143a6876ab45b7f717865d4b8f0b8a2e6a45f123b85c8fb584cd3c042676ead069cf9c23682aaa05c1010e122473907547d79b0f8b61180014b1b3a56b88b3b4fd97eebb21eaab37883889a37676c61061d41b40b49dc5e68f64ed979bbd3da4a7824b32fc0bab9985a94251fcb740bd2b103f9c21c25bb055043c895531e68b17a3cf3190683969d6299c850b7d11a6b7a183b4b3a3daccc41d3321f5c088035102ab68b2938975ff180890153135e284155f971ca624c19f15ae4a3023f20cda6d404406c39cc26ac4df1665a3c19107a99bb289176a09e4a7c197ba72d6131980264a907b605c1e1791305974d49b604c81a9c8501ecd0cdd32a5f94dc3f64481164323736435d1043b09fd1ba63ab6956e4216ce47f719bc10f0c2b2830c17886965188534205c3f8818369aa638d5902cedc28b56c9723aa4eee8485151a270d3c1d963404bc265b912c6e52099df9ea72910674bbb8493f670620645fba16c0e6c73ffa20a99d6378433c6c55ab20f0a40c74ba37ddda39d2ba4d7f34c705a4117c618ad91408ba3bcce9fa9900d2650fb109fe2221f0f6219c226b74e7968f5aa0b3e3575be051446b1b76b8a7785a43c824c73688ce495681fe723d97b249e5a65a961abd0d61527d4b18027b00dfa49f4d213253e80ff2a556c48ace2b6a5122b42c2d15622e158e2613b23e62c6398838aa821cb05a4424817f0f9291f4ccbe6578941070b22b9c36bbe89ecad318e4251451a80202a70e1b2274854809e770677ab76c9e9c5cf4e8621e4338a279169ab46a6e5344ca391b80eb12f9b8a582105380384f2fe845b7298e52803989211498b42537b8b1cd22a59085bc00941f190a66fe77a1a6745e8af09762751c63656a26692bf1870df08cb861abba73b50ac6b03f880844a2c6811a031eb412501c79201e686ae528c84b7606aac09bc42265e77b56fde93022a71374693f9ff5787fa0855c79321d147831ca28e7880dfe1c15c66bbccdb93c0e7113a5eb9b97285ae8717bb87c1f071c284c0089fbb5a7b5121770950d255aabfcf54f1c18c8d9b2bc4aa253d5ba49bd2944a8c440d01343f0770f690743dd952f4f6692a60bc3360588f9575636748e3d321050c42c11d75b69d316cab62c681ab48f1880a9d787449440d1f1cfa0386613c2b3d25494e7c17d3e4b1f5a5780a9f088f00a9d6a79c6b1bc0e1d501fdb398421a19e316489bf1105d9f79c74433c82b87a775ca358965e8b1248134a94179c20011121aff04b95130f2ea20a0deb2d3ad8a0f6086481d8297a10374602661ce031b99012be53c70110b53d28966d8009ce6857f778006a304fb402769065c04d25b2f3aa1bae18a692d7552bc9805897c9b65a930ba11c6f3487801284d85579a912664118075b7237e66183c66510202188dc8abc1aba9524e0450b7a29b4d6b5076769b7e419fa4a63521619d1f76cefd0a7de67c7f5491724d063a13bc27bd20e9d486fd5158d3b7c04a97b95bb06895206058f94050dd8c262eb70a73746cf279350125807c52ae8a29db743099f259c9748318f391e524c9d8b46932157c94a8179e02897f33226ef1964f4cc92c7323df35a7700daa10170082f0664e4b8a221da0b5da84f43b79584194aa8c18724a6452760365c316c1f36212811a8e1936578653878b2372fe58505e7957a3e0e0f1ac0d822a80287d204eb6a446a74afae0ccd1859a2544aedfd8678b1f242830fb21f34f7beb20a96ebbbd6181890cee3bdcab29697c5aefd707f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 +ciphertext: d93e928dc35a487d9008fdcaace3165118ed7938a9a119b07fc9a2110843cb1f43a8353b000f2ac5b46f989a23991c018f9d43e53c586322fbb7bf31cf3d28d93eda34863ef22f6b51001879614bd8abdeb10d9728183d0f2e6c4c64f9f1ad6790e5f27a6fd601620526f0e5380778bb087e2dd437ea330340444af5a65eff203fbe231b0fd1649218fe4592bffe22f6d4427d053f22cba52c25559c5536b262ffc21c1c384bdfed79a974429f9e7158eb23802b3b4d6131817a65efb093629d3ec4a0cce7c5e8428954489a7c9f10d9efeeb9ab60cfa1785fb0cce23cd7ec12882a840a56e106e4f2251ead429cabcb92a1de08c9e79776ea090e195a80b755d3807ce234e7ca665b3dffdc34f6f30ed2a67e246f8008ddb9dd29aee41495151549c6f86d8233da909dd49fe814c8f3213197bb3300e5cf5ae564e55b0b71c4016067d416d3fb94cd4be0f200d403edfd964da3372e7cbc1fedf96ef3bf3f4f2038877343ea9ea1092cc40249aa46e5a307945c639f9c653b44957c8f121dc4c84cca6a7a2c240f13ea6d9020233f4f75074501f100bb53dd3b7f9a905c7534edf518efb4090c47bd52f09cf98190308eae80b12957f42562d2038c85d1f1712fee26c66fc959577cae0d1e699f00aff7ad2911d6826879161c9b9b12cab1412e11b8a42502acd2baf888b82b8f2e06b03c6cd96d8a2b44a9625d029439d2e0b8f7723bc252e6edd566c394a9ef0f5496ac59e04f34eb0eb7cce7c446ed2b0aeae5ec63d27d7f2a257ca71763af1a5e85fdf33afcfc1ae8f7c7b992b22bf57a8f62b86e7da0aa00f2b2fac92aea4598b270284640a285db6a5a37eb74300f7b2814278e5813a213d89ba2e3c8ee000164d5e14cbdfdc869fcaeefe3a5d4763e5a21c2b27023f26067f2612a5f4f2603dab06a9e885b86aa76d920ecc59c77e9c26b21e5ee02cd31cd740732032c9bc29c1e21b442435db3554edf0dcb8df0c67c0bd2c1c9a822caf88fbfa10ef7bd4bf7423433c5b24cd61f8fb6c527ed516d64890f4a376604b9eb126a83b435ea7e8592252ebceb331e94be13bc4a7a3521f9f6ffee6068312a9ee6f97a9be5b86a8f6e4ab6a9174ae67b05151383bb79781a532f6b6e3101c48612ea76e98de53e13f3a7a58005e3333ec353499ce107dbac10dfdc83671fb506378febc6debaaed17c71069e9b9a51189d76a8504950682305c05a9d53b32c1ff29d7d8ab2b79a5f97a304696c5de3076504d0118d85d0e02c1c961774de4412ae6016108506e038dbf7deae8201243f252bb6c9969ecd50dc198cdb7c48535c1d86fbf56b8e138cae78d1baf6d76001d668e93600032374c1646f19e89e73318e74e90404b3091626767a7fc610771e9cc7babd9407c1de14d54ec1ea0440a320d0a050fc547309d5e65b6be2ca147f56140750e36273b7a0b36d689f90c9c8f7beedd56eecd931c5ad003a7e7f892d029eb5752e19464c273084490bb693677d448a797e2edd6e60eaa484e807a5207b6c0e5959aebf4830de62bf03a955acd692ad37fec58d531ecf49c75582a77369af12502dea9c051237e882dd7399ac9c6293c98cee53895c16efd7447cf15eb50d67469e9f34d444a049d5ad57116454b322c75f67f36da417393341fcff60d5b46bc6dd4a14bb53d7b9b2a70faa788c8da1146ae4964ff5edfc3b239a435c4c49a3a3313bee21295240eb2c2781626b96b99215e356be5f56c4570ad59812ac2944465015fd5f1e098a6969233e0a5910aab8096e75903023f3d11aa37086bf41760d010da3789b157175a4d255631f37212bfbb5a35c0e914db64d31e5cff36dcbe9304115d4f0299599b6b067ebb541986495584181b5f02a10d8e51f20795f2a2ae9e6da72e9682f0c39e70a5331f34a3e11c0f184548f7775c1ee7aa1759a9d7f8af4d876d0c94db0db580f720d0477e48ba4a74430b14635be23632eb1ea40cb7264d786e3d474753a8b8b6c009af2c6a2600d0fde3e03d108ec237508b3daa6bae725f8f9398b8f61c17510d135a80fb939411606080b9f972cac3fd4b1b0cdee99752f42f41daebf3608a70a66e569fd37d849fc469ded909c8cbc41b2c598b3e5e1e301308f2765eb68f1544565f1e1b950b26d16a127601c0e94f61920806cccb9d97f6293271a11cc0de7551ae996c6abbe317bb7f64ddc6bdf63df09fab9fc83 +result: fail +shared_secret: + +# Private key not reduced +private_key: 081ace5135f462bb622ed578c65c864bf5f10bdecbe55b6288a8cc23df97eebdaaf549bc240963f0c65368cbccfec732a7345f43d563315442aa97acaffed36c58a4fb85f984ac6e85c4b74405e87cba665fffe54b5c6c3c0455b4cc602d9c411186ccaf6cea1ed5e558fc5eb27e3229faf13f36ea24acf25566c5d9333b9a579a918de6406b709b8c97a1eff70bada11f7fac52eea5192545c75e5154ee93ebaa7985cbf3a57e38bfdb6f96e47e8bda4042cbcd993948ffb7ca2673c4a3773e9ce5a97c34c543faf4eed7537ba8a5604ca316aa38b1bd4becaffc9d6faf8f1eda8ef9b22ad9ffbb7a6036edc842c3caac0efd90c7d6cac75f6868b26b8ab652476d520662faa46ecca9da4ebe66263ce95228e7b3b8fdc3b8b671caf1dc5bd6f325d209f890be83788267dbc86d3c490f6c454e5ed948e46c57b36c46eb7c1bde04bc81f63f494a198afa7ff08e0785ec26d1b57967bba750d4a34bed69c1c5bf982b97a1fc49b4e7e970317d87930b32a44ca7fa4c4bcf5a91e1b86a2d8c60e40e9b7cf98f634aba74c84911ac4b159636a4d49d63bc81fc3fe0fdc4dbf4bfa467dbe01c43c68483d46cc4b6b84ebebe7eb27a56ae4df7d288d74e6eabb2faaeb33404f84e7369b86e8b323e6f5565f88ea88310b97ad7c4f5d15fb21fc4f48743ecdaccc4398bc0a67b4a28a77a2396327a95cc6cd98b54058428d9a9d7a45f83ea5e1cdf6222d6dcc3f77e0cc874498369418e5279ecb6510ec5bb4a59987e848f1da64d8c4ac30b57c6638fb11bb1351bed5fa341548d4556266fc8e7da4b66d67718c47899a134e36a1815a7927dda14f43c9b2d65ff786aaec7a7c467e546ba339dbc41bd98c462a85e5c7fcdd07c5af9979f74d3fb2e6def05a57d5d659958b78f26853500dd47f0cb8ae6cd8db6a6a97c23e2ae4cf0bb34c4c4afa9177cbc1b25fc2f9940937433b44e4067093375fc6bdf44b8738b4ada5f61e74371ea2cb2eeae3b57579cd2a939f7c9a9950a32ad07baf64cd2603a626d9c7edc89817fedfbbb376dc2d5f3b9a84e45dc811d736789647c5c39eaaa9a3d026eeb9237a56e36e30445a4486962ef8682f724e2104b7ffec39b11fc713a234ae3087182afce5a2a3e7bec354e39f1806b7c99c57c8f5bab84a83dd76be6147ab62a49d64b63d462f4dd38c4971c18bf39f469d35ce2dce7707ae6ecee073c70cdcf6bef59ce16890c35f8a499b98ad8f712b8aee82f5b78fcd1a19bbf579f366e7375917330166e6c38f3d924044c2f65ecfe2c90755362c34abb53c59fdf8a50c1e392af8ada739a5626246e655991c41c9a002fee2d2ecdde5f428015617483d6fdac5b54cc4e76543e3aadde491cb24fe353b45b38de47cb3e05693ca5f5f88b4887ee514574f31caa5f33d776cdba9d6ce8323f8cd2ffa3e0c82f7a38ce72392a85f4cf34f73c52ecf48a3385c310554c0458ed28b59185b8cdd08d437b14d87a88f0e94b95e41e89f2eb4a02e4cb13e683971b9d9eaefd2c369489bed37b468ca98d61b1a96bb8acb2a21bc54c5dfcf84798019dd6caeb9266b9783bb8e4830dff19eae85aac95e23365977f479e0fc0e1b4e8862f30f28a3faabaae8c058a995cb843d98e048499f735de1c4dc53248d917fb8157ddb5ce338fb6256e3185fba16aad5b9c7e1027e88de86e51aed9586cbc5a9e6993b5f26c13332bea339716a228dbfc6b9db48554da98d6cba8c5592b79f763f853f56c35949bd861ed87a15a78a134c3585cb035fe35a2b79d2ffc73db89b6562ff53893cd2aa937ebaead25ddaab41e845becac9f15b7ec1b6a51aac4aa45c337b44644499cd464cd707e7473ad8cedb8570c97e4d088a2cd2ec4efdacf8cc59c2df9e76424eacb26851cc5844857f8fb1f90a90338468aaf944c943beb9d7295cc510d54615ab7714f3f8203fae3d3b751d7d589c693009d7c1634b5c43ba5b795ad3873ada60669836ad34e6e439f3a897d1fea0586e6fa2ed87bc6f6ebb5a9e6d63e896371af4e92c93471b66ac0554e31ec38d74cc6a12b4364fe46fc2fc68f359a7313ac5d744989bc33b1847afb0db449f85af73738c9f2d98e6bda993de5e4f17aa047e8b72f4e3bae7495f0b58b38c7ed85a8cfc2fe83eaea4cc38ea5ba6a876e7f33108bebeac2871f16b152d08e74e28a250999db0a6db7036711a24370401ab844cd39b124b8d42e8a15b2bdc85fe3b11c9caa30ee666f260ab0f0e230a5901229b974446428a9e24680a884208a2dfd3899ff1a4920b798ab275d5a10b01503d000c23db72ccbb3a91ab0186fa7850de3055e4531439bfa9cdce3ac888066d17469dce07f76d0397bd46a59c29a4a776c8b7310021128dd248beec9296c7c5e95d13aae21303127778b653131babc17494f0aa63c18260130315bcca7a8c8521e7b9c9544c1260bd201ef23974957a6a4d3658d96a7fd4cb7daebb11e5acec216042cac64af05c8a7db570ceb09393c7a24f5ae305280b1c22b9d68b02a0c521dd6393c20cb3eb798db457ccbd869748aa2cdc8336a58162e56528c3ac7a7bb41e2db1a35257b6135247c7802024ca258f03de2ea93e2f6c42e539617d27fc62510ea016deaf787a2b3b930165ff1fc8e20413b90ebc827581b74988937a018f612ac4098514480212781c4ea128680448b58a5a296b35020c6668acc7a39ec329f3c5eb00c44f43c9ddd612c0860031669c911e0b4d5d20f45ec1b6c5b6be399c2bde785757215be7617aa6a57eb6b797c8c5cf774274b2463d0c85e1343554ba052fd9b36da139e13e04ff18427b418282a5642429825d15636da6c45834375d543714e80530deaae0b006488eca46974642c8307aa5297d34619dc39863f276189a20b75673744fb934420a138506fb04b0eb2e22108c1923784523e767dc70ca546fb820de07bb9663333e623889279bc596b2f559f5699c272c3040602a0ea98c878d2af1d7aa697aa83f1dc10e54017e2e586b220804588473c4b9d05aaae6ff9c038d00f953547ec748e62ba3426001c3f669941596c6184b353d3919e591df898831eb11aaedbc49b88c8187cc13eb79eb09c7e07545be6041a9bd0a70519b17b5479aef79d105b83d74c08c719843a94bd1f76baf7e3bbd6795e05830184c53f42061f4b6b0321e2561b4c474865a0c825c96f9269e12742771c4c9b20b9380540772a24b43c2ab3051b88ec4760f794c17aaa55199e39eaab54c53aef32bfd339c824501972eb5ed299908ff0ab3da01460f106919b450bf00678967e45c18531d112b481918fb7023efa1617da59ff391b84b03ac199a1ab31208b918777a2c8a9706cc8359d09e4a817386ce09757c44350d10c4edf02625ed06dd3db07514639f67828c5077f0eb722f39587830c506c4bbb4bdc60a1b256bb157ed4770e603211d508165edccdb2d6cf37f039578176032c2158eb3c9d48921cb387339267bb728eccf97bf31309d08611b91271ec698d8920ca3bf334fd8765b0170608726a6220a3ecc14023f02aa4f31446b22da93597e4a46d451cada3965ef2148a832221c4d8a7d12157d9b3bc69fac8626b2dd1c44aea272cc2125dc79a4f90b56ea75144037a4f0060c33c5b6eca4572142310ce956fd6f31d23c6c9f6235057362b884a014fb5867b2c1976127a5a287ee371b7430caec5d35b63789b31d176d2553f82c8407f585c32511e3f0cba0ba60537780edc6ca22d1422ec8c3357eb203ee68c8fa135b0ac2836e027fe3161769c6838e98cd449c14ef2b07afc714cf02d91d387a27472217c9ea6bc5cd1249bba38842cf1b28701a6074ccfb7316dcf345acd84660d02381040cbe8109c5d423921b84771a1cba981c5fb08c5de08ae6cdb38fd5b9489357df11565d48a7797a6af82553225d73cebb362abb1ce335358c6776d9fbba731883ae7cc517e0a0a3bb5b970e4cda95a98aba47d9e2397abd7757218c5d7bc4ca59b70be5aa4d7b62afb54048ffb0c64919afb746120b383958b715d110e5e6ba666940328ab4510fa25e9b43537e566ef760d2cc52b07e5bc089b8ea9e166c513bacbccc332f36d6afc379e1a838ac24ea35c1260726d029651088996631c55e846adcf36c792c21011320b2287973a770d2636470c080b2893a09bcc8705306c5b364837b7cc89a9ad1fd9c1edcca9a0b4b81846c8e088b36fe361539060cc08c911c9058bbb0839183b0c59302171826dfc7b6fb1c623dba3f0f9b30768346a7714481b741bd0bb7ca32ed73a00a6a1874d8b7369f695efe75e00f03be6cac1476815ad889c69ec6bf7fb38ce9609c174b902b6047ead37da33285d1009b83c39ff67773cc46f7b4b2cee35e8e95100c31dc59eb9d604833a540d9922a7dba53d67a38de1634cddee1b169b45bb9eb3646e55fc0dd82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 +ciphertext: edd9d2379c9063a3b97781b2f9bb06055ee94cb8182157eba71b983ccd18f237d8f9449c156ece2064d19ae1dc32861784c7e5829217397b27df13a61ce333f9d48677f1e4e6cab1763128d2b94aa9ac7f5785314289441fab4da9d6d021fe9fd21a53b0d18b58c8ee916232aa19e08da9f7521d4f959f85f32f3bbbbe741b021c915d5702a97028019c7dab562b9fe01bc3fa954e71bde099de02c842ca8304f0214c77741c901c0add89d96a78b1245875fe0a1523d1d03b7a6637c2fd6dc919e45d4ef10ba5e01996a43169dc5cc91293e382edffa16db90011f2aaf64c3a3533628f5739a2887c56af3dbed3486c2eabcd3c1d2c19667cceacc21b2384a2f38ef0de2969884619bd282af2cbf2091a959af8f26a15471b1637deec3885ec81995fb516e63c7908eb189bca27aa7ce70e7ee6e289c8aeb2ea4f79b9fc5bf0155c3cd09430f8bab8c70033afb42261b957ae60636204ef70d401678e14cb08767b22b8e22edc120515d9203abf4af7fd12a8f3dd908c7ecaed10e3cfadb3408401b6e96ceb58f71c69492a3956fc1d442ba092477e98696cd544f52410614622296c6aa73557878dedb5c5ac21801648cbd5be2972252774a54cd44b801e9cbe9ed13f73f3ff472d3f36751f7cfc5a81b93c0dd7bd825267ae0613a4c26b2d677712c2f78068e61ebbdcf955e44edc66910160d0981b992ed92c91a21fdf985d2934bab8e864b34fd125f85972e36802a0fc32fb2cbac4074526d8341a9098c9b0a91ec9d6371331791af6f6fc90fa5fbcaf3086377cfc141e0d972df44568adafa6bcdd9bd3792eeba068d8f07903a9fcdb2e6b29c5e56bd748aea8c06d502bfad55f28f750d0331e24c96d3760f796f12c4e6b97c5ed58b56836899c81ab3ac0f28907709e8304c95f6f67c80bbcacf1c94aef29ceb353a55005cb3fa48c9b39973dfe495cff4d483b1c1ba3976eded81e31c5325c7b6e177131d0a72315763731bb905cbeb9ab31ce7d1bcadc0e8cc9d82d5ce127901578bc742cb04075622bd5ccc85bdda27326e5f114295c2b31033b01094001634aa55b9187c5fb4a1e3be6b71f361325a54bff9fe3380488e0f09b407e3e53f2266133b8bc80bd96f7c2842430e653e7461bfcc5a21a29838103b8dc509cf01bb1984beaf43d0e5a45092413d396d9ce7f2d96762be56e45b530bdc7ee477337fc4318929097a60bb4bb88df9b4bb01b6cba86c148f841121cfdc369083fc0accc80d4e33d582427c84c34e134d06ca2023c09708d848a7c5cc6dbdf280c1eaaeab8d2806b53a28194b9a95a1e2509f8fb40333564cdddde4bc34e6d2c81ffdd07bdb5546a34af69347803c14e19558c82fed568f5d3da003618c6b570f59c1913a44c281e65295119219ae5427fd7683913402e41d60775d27089ae706bd00dc94bff715a2fbbafd9932645f90da872167c95ea89ab446828230b0be29b93e214caaac2b49ab88e420732d954ff24d0c6b0d07b60c34d9a25e5237cfc2950f01c10755631a30166e6fe742a316c3c952bb9af53782a255aa58fb817107de7bbdbf589a8aa1f1e48c7ee493117a3c76ebd891185ce21250378a39a495c3977e5a14ba6c1ab47ec71e5a8f3266046e50009e09d7544945d71a423cf320cf7e18d8759df9a027aeb38799a1590d74fdad410e39ac9e1f654d69ef624a1b9ba1639d1af179930ab071501f0df65be8a65327cd97cf028983077757f693bfc4fab29fbff36fcc9cbdfe23a84551f9da0c93c9905b31ada24dea830932525402db03ff3dbfcfa562ec028495c5fc1325a2fa5ca9251ad3853cd2d2a21051afd4b14f6677dc897dce4471adef042f067802b4f60559c0b592f18c33d6ce638dc2a56ea16479835e447a77956aec7b933060ca8ae1d5a79a9e5a8eae8631076de019ed933ede4339f6bcc01eca00845028001653f6c61dfb9a9089e4a84482ce83f1188f84498df81aa890e361a1ef0d226e6553ee3c079e796f7be70651b2eccbb38c7fbe22cad04f777e4f73d11569e3cdcef469e703070c4a195a499af2e41488f201d9d91d1162054bd9cae3949d7054056d487f8fdfeb1c6389ccdf76f26233d3635c4e1c4b7c831fff636b1b63e9d683b4e06added2541b5c40bd2d455bd50e2867840add364897c25daec0ffa4b065d78c6f9945868408a65dd78bfbd3d4710e6cbc5693b501570d +result: fail +shared_secret: + +# Private key not reduced +private_key: 18264c57aab774faeba3555c7895e1bbc7bec9dd72c953579d7b85594f5124ad57f94bc5670c85b11b81963731fd7eebf85e973b2ed5c7138d9c8ca76a559d21df5c79b64b70b9e224f8e1106f3da7097668cbeea3ae7d8c0851292f5af35d6c405fa1f68de1f849cece6d53417f4aa418ca6a96f050bdfb0e0bd202e4b2d6f34a2817643ba335628f7b3eb9ffe037dfbfe89c3f84438c4397ebe8a735a77cb8597ad73b95d27db329d491bb6f4661bdeedd634acaf45303133128feeb4a3b958056f0a7c6b1f84bbd916744d18487a5d9a54697716a965b7a9530dcc4d6ff9bf76787ac9e846cd037a0095f662a6b73e976807615bca2dddc1554ad038fb544daab0533b1aeacee7116edc18a79486c7ffafd771b8e38f93983134c5cf123955e748ce224ce925883c3565910088fac9393d423ad55ba3faeade2faa77957d88573b7f1f47fb2e3fb977df3df731e6090dbecf03bdc1ea68cd23cc593f7e5a6a53493759f17af6a5c5745798ee5abaf33ed3d5b65b846c775bf36a754c8d563e25ab9e778ed589632131b8596b36a4fea7382938e121c38d5bfb218c9dd4d7df354a3bce5b58c494ec8da06f08573b7b1e46f39ffd3bdfda0d0a8e576a45216ffc7339a6fe91839d899b995b839b9b465aaa4ff9959e3b906698b9a31531bdd4f096de5aa3e885c6ad9468e1e674fcabfacd26c4a20ea536303fe746adaf4fd37adac5351fd7c5dae7739af43a29564465f906028848679e3d634e3cb6f8aebff48885b7517033584ed5ccd55ac272b8cf24fbcdf0bcea1a9c271e747c95d7fa6bb89b2fd34540dbddda4bf13c4ddd323c861ff37d9ffb14e03cf02f9f3990bb8bbfe3fbfd355cc3cb46bbb41b3ff65a403c58e54d306c7ca5b1ecf2265562898b2ec28b5c6d396a1c668fd95b02e3451622afd731f793e19f1324450d70ea19c975d877c84a91aa4b1e381d409f66c14f8c338d9858becce8b7ba51fa3f7d4b3135954177865677c451a1f94646f41609c533d548dd5f8e31be776734d68a69f42c1263e55abc515e4b3536c6cc836a14016fe11dbb43ef9831b1efb8c34714467906b78a5ed8a8e525f58ddc6abbb1ae10b6451544b78d85cb0dd78894d9ac491a7a5f19ee4833bb9c86f8dd416e610944fd3b9f205d7be722a8f2b5ea07d75ca671ed7254c88653a79a8d79811543dbab5f05c39da506e5df5af4e7b8de2166dd6dba7e5cc07e3fd65876013a6c60efd273ce12db75e0c29834793f8066496c34bcd7647d3e12fd76f85564719a4b477b8fc93845e3dba64164b280ad35cdbd77a457f029b367decd01b8cbed87eb391857666ab88672b4bb5e4b653b8d35225708b897fefd950f8d9614f4edef1b65942d53ba146e1fbff59f1bdfc1cc357c36870b8b747fe1c66a5097ff4a6d7008cdf52a74017d798dae4e7cc3d8ba9bd381f79f081d5efda6bf1cc5a471f63f1d31f8f0867714b24ea37d983f42fe054934b320aa2b044ac971870e1bfa6d25ff7c785504d44ee3d09dd586b5c66243b01c4ff6686afc0c8b6a2faa636e39a0c65da806eac5af769e2573cea2a8da6b8adfb03b12c74b331cdf042e8c2931f39c45641ed1899376c7939d5ec09ae5e23493c9b8a6396c44bba04f22b05cea4668a2e95ec56ba56aceee411ffeb7cfe8347dbd20c33429c15b6668f48dc85f24189cf5c53b920068c856bf4fa8d9cfdf8c61bc9662ea8ed8dd896c8b99ee667cef1a4cdb3fe4df05435efecc3d974cabdb8edc28e92bfb39ccd144787bb3a615eb06c1d82f2b75eee1dc4db0e32d27c4fdd854b306bd2c67ad4dd5d407e7e60f1d54929f9ea6b0d8d0a28cfe109be1877474435dc69aa7ee7bc41944597311c87438441cb59b082a5348f4efb30d66f936585f356c06d86eecb04b48349d82f1542e3f3cd885aad7056a02d075aa825a3b99848c3efba518aa4e676f198fa871f744bff97351f6e3cf2e7505e3ee5be9a738678d301cea985b39e0eb3769f73576eeaa28ed8c0f3b76ab5acb302877bce254fcf3636b4f6c4e0089d5a3d5d608e9be4f380d679e86a34f14eabf477334c26df39119d7240ca8f7e27f0dc8abd39efb88246be2a55c72f7cedb394d370836f93a9f893b98f4209e9077879593dba5afd9650986e5197a4dd239f99e7b5f8ca36bdd81e5969c6e2f8a58829a9b7697b6b36983e896e82b40738740fa2e6b657616b0b4cc0b15c2292eb5b42550f812673194b944b830051e4206670bce9734f53232b408a6cbe7542712352c453cac39741b5b940151580482b4752d16f58a1c090b101cf985034299840a186a1061e59eaa300b66fec19a3abac920a1a12e1e4070aa37893923067614f9e53c0d859917626c6d6658a0324419d0b0d16a647ed57c3cee638400875cb0436671a0c9f472eede423125a95c86c60d2301c85660807f43f35208716905ab4153b6510c128e038920a3a13e957e2e209afb46c7e0c9e92fabbb80063b93c0a963b1aa2d49f48174f86c761d923259ee04c65f4b85dc110cb04ad4e26c369682e213ac4114824a526b2e6a21705174110b538e3562bd93cb251962e71782d89e562482a51949707ac8337b78627d489b193600636fc44c44898b2dc7c87332f3dd9c7579a68e0c01211fc1957c43d781473fd3bb17ce14456e62d93c236bd9656f5ea8088339668658ed8cc1e909a026fb76f0ec747d5a570ab88aeb44750710c0d10ac86caf73f8e2238b7e51da8722317973bd544834fa31571f48744b6a7cac95e1d3375949038588cb1d5d50476629432ca9e43076bd260b1a6a3472be2cd780177c4750b4080c09c820bf9f1ce2de695478ba26a216ba2b032cb7729770514f71700864ab0e3780cf94cb7e94c88dd673dd03b8690ac65b8e0c597fa8098111d36ea9fc4b166d9e6bd4935993dbc8f21acb9f53a20ee118a721541425a31705a5d67a6196c91a96dec2b2b48536e118afbd5c8fe46455aeb282a7a6e73b734001b6d3a997ff1d50ac7d3c97eeb4338f13f8eac05cb0b6f7f60908c0b1ed89682192a6ca384c7ded2170674c353d9aeb8696648cb83ac986dff669e23f49c47e9208df49187c1155bb1c876d1242098bb7951454e677c67042dcde2af77e8090935b5bada59c4252c6889b16765a033d98452f25632710ca5553559d76358c162c70c1b5624abc090b59960c65889351529bdae24170751a45a566ad858444ff61cfeb7003b08605f3b2558577f0e12b31a447d377294e7e4060ec12a5ecbb9770bb8707240c1237b08c744e70057d0e68e2fca1cced27a1997389bdaada271054f72b849329e9a2321aeb03a940c44239844e94181b627876838671bdb3e9b4061fedc74741b4b5e9c4b421167bf420cc8077c5bf02721076c1c5462d7624f8350af75c50eb7267a96359004166c84145e72b731d5a82d43469c98b00a0c2352b7806313c60c04dc5f5c8b39d50376a9461f2a8773fe06973e852a04025ba6592f632bcfc3ea0ae572a50023c684a4a7a0db573ad1494458990938c624e5928c028ec48a9a26492420781071d13a85a332dbd8abb8f318a31596a38c7efeec28bbc1aa38198aa66ca68d811cf5700d9e093e34f38d0cc74a989459ab0b200a8caaf6d40ab5e5cd651c05fcf68e14a1ae602560186a10aa452328218e41c49b7e5154c67099ec790e88ab641ae03dd6acb82c33a6d4034a775515c52859bfe354b2e881c7c577bd5663b19b124948739be90addb36348912710cc12102553765c580512b22ea35141ea4ffe681045497fca77ad2e35c1a5b31baec2a8279c783d28241c923040607d38463a9b615be08ab87acc5e31b84ed8376d75f31dda47c869f82ce14022acc6c70429ba854b58e942635a12209240bae3137ec8a40e716655a0a82bd02003f20428d15806594435de6c39b746298aa9a693577783c71154cb31b7b31283f46733d199ae627ddb7947c4f4aaf1172858a97ef6140f56477b80450536396399a14a984caea756b1b5c09ed1f43c4e1754f40ad0bfc8c5f153346e0113930a3c9ad215f11c4ece2875c41516b0a8452e948f3f3cc45960bdd8b23f14eac17927142eb4a72ef6c3585899efc128f53b022015b2bbb9642b5675be352b9d442194d54d5b40a17c236e8a275dc2358fb31471a3f521b444040d983e64976b50f71441982f29fc690c41a954512f82a3abf85235847a28982009e3303239454ce0c7a2c3840cce031ad37516e6a3ba59b79ba4478afdeaa8ee8ac4731ccbb34125d0a7c6504a8d7e285171a464129b714d8521c69b8d952b4623aa8967f644c8c08bdef96117198e56c12602501201e036804129d528d717640ea33c9fb4885d61fa43860dafed4282b108cac59b140df7d3285c832994e7a4ff5491c786281fdbd6f43a4c3902d4eac0d28b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a +ciphertext: 3804e49185cee41c6861a7a0941d454024e2310333f1103d73334739510be6a09619c5229bd73c4199399f0bc7e43ab79b06bb836cf443912d2142f98a5dd284c457740a4da361946ea3138a9be5e4c46a7f0550b7a807627ccac5e0c658a0a57f70633758f77f555fbcbafdbdf5a19f2e0efbb7e932b262998f179f7aeee18652d5d572d5d71d0af89e58a1fcd401287e046b1429f504a4759b56fc90735b91dc640c55ce2f736f1ed491cfd3fa25c17c2ef4afea940de20ebadd1ac456c5c184b660e3a2791df78e4a4716fb09a78a3ed4aff107717b8ee823f689c31c1b7bcdade58567a8941a64033738345c6e7f11378b6c3b680b94b15c12e9d291ab54ac66def4f97616bcf996a840b93c960e24e5729a92da64ceb8608afc9ecddd9190a188fe142e7796dfde0b44b83d37b4f3103dcdbe37f0db2c404517be707b0671673e2f53c59da7dcea24fdf2ceb22a711e1081ffa529df068e8e2285b17e81c45d43d672f02d49e04df68f784be77625131e702f12d907e010b1c05fe379e42048620f533c9e17e0ca8b7aaa003695d085bdfc2c74f98dfdc9d7290f03dc00d89c2d94ad8b390ac3fd88e4c255242e7420c9566fdd6693f94f86b3317d7901305e209794d0ed5f0038a5e5f988b2497a5732d05b0372fc27862b339d3dbb6cecddeb0fa5da20e80edfa5d8677301eab7ed43159a1cc62b25f10a4a2e1c3f1d08884177ea74c2110f8a496e73d732f02f4d4a0c091aea4b4715e78bf1738279006a4f8e3397743998f334db9f91005333776a6521b8931fec72e2231efee7043517070ef977cc6fab6bda27de97ce4ce13554dd35668ff0f753606f2687ba5b1a12b2b42607e0a767ff95e962144e7e67065efbac277cc1695ac1e12f1a82072f9ba15e24af37e36b345fb50cf7bed32803b63343ba5593de883aeffdd75d92cb42e15efd70b944b8330826b31b1d69453aabcc803b3f1f390548bee070b84a38eac4fb244247ae4c5a26024a8634bfbd9c7eb94fc84a65599805e9c150e215e2978064d7dc5bbc4bcec8e16adc6f55190fc11496028afec6e41881e0a0094bc17632249613b6e95cd210f7763d2ee99a56087938f721abbfd09a72abaab9cb7aac78ee1202f3406c0dff5a4f31e70760c7bf2f7cd4f27fb6f7d6e9e9eebd737f30c080c0ea8bc5bd6d7c58cace07bc82f55c65788624e7e17faf3f4d54b0e5845b8da07cd51b589409b2ee4865b908367d1887111c8817ffda5fa7ef26a5db54cbd2b51777865240284aeec8f7c40966e9589f071d875858133b1496e1e5b9ad7447156b60067fb0e61441015ab474d1539745386ef550becb1345341a8bfdc2051041aef1458da87fd8ac4016b9b8ad24f9afe3f5acd1858639068512af6fcaf9e9522b98027dad0f6ba914ad2c35b99528f6a812257cb21b6ddacec678c2bb44398104b373c984f72dac502cde60d2576d3def63438697d50bc6e912a8f6310bac01ebf890200904318b7efb9616485539c472220735873ce9885e6651a244c56b296c1badef19af9dc6ae5ba8015efa52ce5af25768dc10b32ee36b637c4048ad832316e20e5a929d0dfa8d4dec7d5e195e0b59f52a4e39c05a4fd2f23962c945f04876bfe5f0d2cb1b66b7c7ee3107c823b4c60d98521a24a7f82f39e0363e411c9a5a3c0cd3959029a5f86844e08d13997cecbb483f24060bf1ed28892a99352ec3c538877ae85339c1d05523b483f676dfb26b3e3d154ffc3d33c46d06b089c6a7fa18266afaff1552266f5bab7ba6cd9ac64a1a81ecfbf5f654428a697ef439cb6ebe8c005f7685df5a0a9f475500339ffd92e0103c78549b3d4984268288501968f0e21c815a7c3f6e6f50960f5de64ca611c584e53d7c21c0d002b699fe330456ef42840bfb8b475f56deaf67cdb656a7938d0b7484687ce5eb0261cd67607d9c822e9b3e4991c32ba9145c6d33ec1fa4746c27c4e0d38c000495a8934283ce88e7460e4e6ae32b16814703cea8b0f5d34610b401677117bb3b78659d2402590b2161791c10a7c975e2892e316d49cab8f54ca1b4cb98d2f1ad9ebb8f91e57240367e1ef5831d77769e73c3876361356243c120c224ad8462504a1ae0904a707348aea1e29d1c6eb2a9c60e1f2bc0ea4a9e0558ec177030aa14c394cb946fb23f1cb0c2c6472c13fa3405a60434956e9cf7a686fe47a08f5d8d5a +result: fail +shared_secret: + +# Private key not reduced +private_key: 6a45c4d75d7cd4abc9be8cc42a75bb672dd7f8bb7c8b4d8e51fc9b63fb8575683e3ac77aa696ff8095f982afe9d8639f0c36eca5afc20224f6b54ce9eb7c6dcb554f39a5fc0f4940fabb4c049d3c5cdf592fe4e78a68601a8c4b4fe598b3b874dce5581063351683a6737ef905be7bcb9e5ff26ec26aa8a27c3efa775db0858736c1e7d25a987c9127ee4465702007b4bdad5fef15e86106b895d6fc42f33aaf449ea0d4982c56f76069a971ed4e8c58ce53356f18a99c7e2a8b1aa7e4a64aacb42338a3ed5f377b969d8f95899ea9c335ce1faf4865fae440d99038e8f035cab7d11e508b9dfda9c5ea0029f344ab9a38a59a2c2d3b448639b89a80b3cfb3f6163562dbfa0105f7c09ef181ac466c65d13ca4e9027fc087afcafbb3e530ff47b9aef0efcbee957a336169f4c35cd260034a9163c3da3bfafa53d2595c4170953864a9da95146dc03db379f343b3ff36c03bb4851775da2a50f9b4d12107e17d184d410975ed743fdb674b179c396b33c809beaf0f7e7eba6dd0b635f6598879fb5b972b54668c6f306dcfc19608e213c7ff6e5bd433b442522fecb7b872c54656a9ffe1b30b57c18af9fbd9ede1a8943fbfa0ec7cb04b4b3d4d057c1228e6855e9da9eaf71f8e89c8b6e720aed8740482da39c8da064f5d2745ea95857036d1514afc5c23f2fc95a7ef15ad1c4353720d80ccf396f30dd7335480ac1932408bd48f7fc0ac24a10615ee7737a1e11ab0905ab82a4d4b5e37bca2ec9f9bdcb370b684048750620ed45978a3c7f79630fde5aa5cd19465cbf37c929848c335e9cec839f18e159030ed45e6d43c845b99a8878ef7a73238fa87cf0c58dcc3913ddbf92399f8d948c94bd54029d9651b25401e64a29df9a04c15bdf047a3ae857d74a5a22b383069fcf4bfdc3e0d85aa892c6e6975ea07eb61ccc4dea2ddbf625ae7c4b849fae348f8a8c326f875dae8e227465689bf64df9fa195635a690b3d6126989af58cb7ffd5cc8f53ae8472e2e9b2c8e7e1fea534bb4ec1090ffdef18f9f1bb4372d7a76dc4901f07aa413395998734391cd7bf8dca1dc6cf088be100bf80f94b86c15eb50585fd27ac9ff0af9fc849c7730eb9074e90659fb54cc595e1dc71738a67855eaeb9d4a30b0bf876435eb3d990f94d5623856abc7980b0a4c65e4dabbb6f78fa4c7b3ecbb71828dfb42f5b597acfc7e43caae9413fe858359334499a921c4fe6a044d3672b6b1a2dc6f39b8ecdba69d87ca5264fcb0898477587aaac8369f6e39ac86d9c437456290434b10fb2c303fc05d4ec208f7accf461dc159fb7caa9856438fc33fa5b4545c25c66a9af5c1f34deaabaf6402fcf5fa86506c5efff385affe9eb6ad8bb599633264c3ce786670af7d266f898a58d40639ccf344e88774c90b08b99e2ad7be3244d7bb3e91477e1fab9f1b647c7227b6caab7d1538de562e8ebd2deccefdfe8ea967bdff454fb176f6ed5d4d7285779c3866763cff23cad65a8d3b41448c0ef53e49ea21c67b89a1ec06e7c78b7bfac56f737ab0f7cb708e0ccdd89806d781767980b99f66e44fe80c97bc2336be308a7ce393a229836f775d86a77d9191878570c6919e8f5e7cfa8f3fb9b4699d79cb8e4759a8234b5c49c19623ed637859b991335672e168b7b3eb788667cb088c4da1a6431a8f4f31dfbe6d942c3e4891b13fcdd34736145fffe4df2f79de7195ee0518de7243c689074f5c893d93ca944eb1e8b20b3de05f740fb86c9684fcab3cd86c53d9fc53760e77a8500fc6830ab9fab96be00b3e96169d5336ed3113956e233728a8c8755789f0b0b5f616eb321fdc32184e5edb6e7d33758fda34c0adcd7c4c46a7c457ffb2ab6962397e1349325b9ddbfedaaa5977047549f28873e034aa770064fcd4dc069166061b5ad66277320e989712a30a8969883ef75b27dd46bd8d077dca73c3d7d71979c5583e741f9e6658aea471d4d511b7bc8378b833350be93c3015b68a8c651ba7df38853a294853d206da32e0e6722cf5a3064f3684f6fe3bffb45945a4d7ee17dac71cc04a9ddb9b86a5b4b25569a05ae9d28778e70df7ca9763db9e4b40a773b1fd53dc0466ca2086a561969d94f310e5bc14c0cf3fd3a5b4a969801ed36e47c9f07b3aaab0e81cd8cb43c1e534e267751337bfecb7ac19093bdf18070e37b3ab06ade8b14de2b34ca99763f575e8d75177c72522c6c4eced8ad20ac6bfc4aa329e765f986579c373a3a333d6167c2c7440e8f4131ec305188c989140b63b65019f2949c81c36cbc45939c026a42a1554f2385a738a229534cc6552d5e76076087c9e5b260baf8724973b9152b3941fcbe19227bb7987d74856d3636049715beec638db8e3b1d4e3ba2a440b46445369b60e0ad3c9c07c3203e2716ffa51eb5005d1a797079089f6e14d86d988d7f960f0dcc553a83f7433be60a463b04423a6977599b7c1f7730265807b3f7b2bb8a625e0b0a0f3f1171d6c4e7a9a6cb5803b4871501453ac19b576364c3bd7e01f1bf475a9e71d557171e4d33bd3d14823672f27e356c89395c1476e0fa065dd168478bb710394116de27cc3b0617ef5b74ac718e8b8c152c052a4d57828824af38807d91295a0da9b49dcbda052317f5576e52b51eca732d8d260d08832918094de65ab48d3351b1327568574dcc82e3e8a222044984649271b3b45861ab6f5250a770b59071309d118adb32322739cad7227ad2b3460d156c065713f29a05ec48bb21ac7261aa6a0f3f19d05f0aa577cc8cad6a7fbd25826a3cc6ee225c1b183d8e124055414c54469e4e410828bce94a5cd95e22c7ca3770ec5a023f0656447621006929174850c786fd6357f36188a4884cadc108485277890a0114b4c565747c4165196e3e90cfa659662d992c33bb2582970ceb60582a691d66174952841ac5a64e53b31566671054486ee20437e245e234176ebc696a55a53308abf020b40b944cbf382155ba02fb9ec298aac3c2b81278772c9e0c730ab13c6f374ba8c886300831adcf9ccdcc566e2456bef479f4ed08ef803ca8719c382dcc667a21897db1f81b41521790ee233020f3301bc9910dce2202bf4329f632542f820bcabbd2bf38962e6810bfaaa5377a83b10a62495029e99c4becba9f0b3a54f70788f97ae54f01781b8505c27c23b810ee9c7452952af9339c4ab88aedaab3b9f951cecd828daea0888a3481ab39207a6851c0285226136ee392996c41b7d93221df711d44531c8818bf3b71aa65aa0a3b5055634699b007a47210e9583928ea984c413598868bfbd021cff817c426caeb3a77c9067b04dd3cdaf2b840af6a44e5a5ec3956b21697cddcaa035c46159262524e55f9923a5c44c1c747a1e35889b20ac2ecf5883577c0722316d6a82a88b21c8334ba25a442101b6828b10b1d9280f13f867e10c88ff3cce3af457a4ba82ccc4c231ca991b79c66be0c56666c80656845789b45f0606539149cb12b0917b297fa683031413d3e89d3e38544ec40cbf288320bc3b812311ef69125e641232322e3f1ba325b668174179e38868bd50233c78b0cd8721acb23b0b065a13f36a2b8b8245095cc785c64997add4a33b45e9a602b10edb318830a046d8f700b2e76094228a14a251e8f48403914cfdcb9e3ac0795f907cc592ae18d322ebb882a1473ff2fc666b7a829189a4910c60f8b1193d59515280bc5a9169ca6433c4e560db8ac756944fd9ea1dd1a0c9f9f57a474c32b94730460046251aa7d27a9a3f2c617816386207449d8c18f04537084a3f464b737c1a49e59c9042876e0556b92139225fa3aadad3b5f18752dd614c1fc200923c0e0b4804fc5b26f7c6cdcc684da00289ce344518c7a480936e46ec4c01b36a7f2645074b26d0414fcfc46d2ada8fbdf1c50c128ec5d2abe11ac78205310ac8aea724a117f00246046c4360662101b191228628383cd9047a28025cf8d6a47dc161af353e9067ae4433803c48b3cde24466d00aaf68be2eb1a209e8b1f6264fb14873edac70f834c710acc18fa4c6d16a627b03406fc7501ef71e62963e01869c80787af2d96a4ef8c72d273a3318c2826b8bb513bb2f6739648666af720fbb4b7785c853bc1aa4cca2c9d5852706b7bdde4c06c78c960265ce1887b5e13275f42377447751ac0bc811e26c2f65bb19e058d573a64959bc0d74727a4b5ae8ba23f2179ffdfc171563712eb028d9524af43c6143277bbd537f1155b04c0006b66036161472a199764ef7283e044c62a7244593564b15436b435da9e995fc803964f631f8332fc8887e49a87c5812860cf96747ec5891a9ada1e769af720e946c9727731449cc7179f73e867c8a63b210d73ca9f8d4eb44b5da3b57dfed46bd22ab85b9bd9155568513eaa3de494e114c2700ed07ffc1c2f8ef741765e8a42579da4946ae0a201cc95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 +ciphertext: 02c2554bfae2f207dda53c0c9957f1002311f18d7adc29263a5cd54ddbb844871d65fc88128c8e0d7a569d0557d352dfa0443980fd4b675e8ddfd43cc330f23f0c8ed0a344060dacb235cf748ef5652b2f91472751c950613ddc48696ad0268f1e49989ea267e4fed6e5df8701704abdaaa36d965e5e94eebdeba377091d9a6d8174e2362bbb17d4d4033ec53ca3fa57887ad7190892867e736f55c07226cda68d4dc6b518e4910d8a1eed5658a5e007c9ade97b270bdd9b9f18d8a98cb235e3a19e808cc015d3f90639e6c6a6c33e1dfc21bc09f7e7ce8d490d746f7f0d08e22bb6ea9863f8365a1c1b60ee660112b3528c6106772fdf0b2c795f637c35a3c77c63bbdd6e905c49b8ccad39b7b1339933bf9174f0f753195e67c1fdecfd1e3264d277a07c7a67da8665fc992620bb34ba73b33ac373a7a8de1ad27ad22de16433d3d43323f5690ac1144f0cf20ae1e94af27e7fe23c0f0b822b739bb473039a50138390f1d3fd99ce2e598cd13177a5877256e092f25436eb6254b82c213d0c1ef35e1a141c29ae4ee1dfe8c39f2e70121a852938167e930cf41d22fb9e22d3698b105b3e62bd4aa3bfb1087e5406349b2dc9f4101c3cc5a7104d8d4403afbe4f896b640e03a194c30c401fbb2c73a54fa8ef1c2519ddc21d8d5c0634056d749eb10c41394eae0d6d4b73c6fabc27fc2e346390e2c771276f0551d27a20f98089dd6557efa1cbf4f020797c5524590191901e52ca66cb74173a2da456bdcec454d3ffd45691dff6a70dde3437b30794776290782a265bbe3a1c07688d4fb3ba1fad312399d30c7fa9d3d43a855e0cdb0e02b1a76dc3fd8c3e53b3c814f98fe7d24493bd6e854336a77732747f809c0782a926aa275637c29c041f284170b870352aff1e0bf77c0776b33e051eb539b864c3d9800a2f082899db3b22d37607080b29486485c0e6c92c1b00df67ca5be95fce1b262b32ffff00f04b17435d7cae7be5f9af0d673e4536b383bf912d68cb1592a01cd25df2039f826ad43a137c81ed2ce0928b1315c144ea3a1fc9c12aa13bc9564be273a58427b467936773b6555e05682cffc87dc8685889853237fb0e3c5cd0c3a4537a9577fe47a8aec0421f023628c941994dcfa7e699fb7828e125ff08a58e24e3e63801837c801cdf5e2fd9ce710040753da43d02d383acc82abd9291c47ab4b870c046af3ddc9bb68697b8e89ab550b9cf0c6c98cf3d3781ce0a655c6bbd8dbdbf9db669eae8d3610d23c03fb0f364f489f02bff1d42e610fb3bf94157d1ad8fa6a7063b02e910c145e3d9582b1efd64d6f745a733afa5c8b38cec2f748768bfe9432b612c73b2e7887fb8a06aed687b3619f56fa3c750fbfc35fb5481a0c21aac19733071e1cce965fdd5198c12649c7d5c8eb3d519980717665786aab878bdbe6240f58d913ebb9993c3779b5e51c6ebd3f95532c42df3a8025ea1cd73aacf40ca79b1a6f8e280b97d9c2d9b15f96ad265c6382c4f915b705068710b02136b98d0415adcbe79228f5b7a06dc97ba2b35dc76d37fe4216d5a896472b2f60a86759e596fcbffad1910304d3ce37675a4e6b34dbd75e52465d3f71aa7a8e366fa915a4c2544060e67ccfb4c839945d5dd9548fe8d63e2381055dcbd9cbc8a2cd483716ccf3902c78130419d2971367304e0f25097b2c0bca79017f6c12b428c3f47b649c6c41f1a8e6b17ec7852debfbaebe46906a9c0d8019a3db8ab0ae6e02af82cce0acdfdaa01e66f8fccf3b0600a256aa1e7c0a70e49fe22e1ef12a00b7bfc3b37b8f8fc65a382a873d29b85756ee84d0b9dfe2a20e062422b99163dacf5f96bdb34aaa88377495abb000b5fd84c75a9976cffc3732f5f989b40c4353275212a740206e575565de708f9892144bd2323da14806b6c8d590b1bc845541848c990c56ed334de9a59cfd5e7ca775644ff9ee3969ed606f0f48565fb566f205dbb4633b62d731e0498614a5fe9ad277e49557ea1eeac5e9601b205525a09d3ccf146f856e766406f256e2cf44fbff3f911c4f34dd94cea64a143d23fc6ca01abdb42db6fa0b426ba8fdf846629d32748f8981828e64332fc6488cca38faa48c36cb212bdcd6b969df4008f55389dfcce4ce12b83d5e80b1d62912f3daa79958381c0edc39479b1f525a17271faff55e9d8c476d17b7d33556da787d1c4e47a89dfed6f265396e05ee70b +result: fail +shared_secret: + +# Private key not reduced +private_key: 1783c5f7f498d7d8c421436701176e6349c025a7df41744b369852a7cfcfabd9d96f48706b8dfd3af6fd6a2c79e078e43f45ae3d57f180c432d6ac68976339838d6c885f6ee2f837deb5f1fdc3c3a473a6d84d5c2cdcbd1da9e42d097ec5ac782cc8d909b9c47b8ae73a2fccec5fc926f4b5c904c5f44fc460356c7285ebaf37ea496ba3dee9e2e79edb8f498e79be94a02643b855aab4a6c7df2938a0ead01c56eb538f9cda688aea5cf1ccc478c059f3406acf8a7b72f5c5fcb19eca66d769fddbfd2d0ff1c3eaa73db7888cb37ebe54ed82ddb53b04e359433923aec6df67d62c3ad10bc3c190e7c19167f07d1b607ee33469334b3ee4500bda58a1785b2c247410573d6e7d3d832e49a5ab5a4f9ee516b69d76f3a80fe8b84fb8ac7f3568cfd69521036541e975e6cd9f649d5e5715319859f1face59cc2964542bdb5596d270ac7796fdc26a3b9fbb6d3c277de322ba61ac86722b7933eeedec69af92c783a56d55c0254439e936af5b9970241c73a9244a271a43d0fe87baf4def9cc6d48ff3f3b68cb4bcd8180537b16daaa329345f28ed2bff856891ac52e25bae2e95ec2ebb21b9330077d91cd8bda963588ea8ddb89fc4ea40aa6c5afc8b63568663b8c2ec9ac281ac3d58dd98f559f49966e01b9e632ff63b834a19ae5b3d7de5050a8e5684c300cd483c3fc475c3f4c8873bf5dcde609b58bf573cce0034b1a4f5edca86c598aa4da9bc4ad2cc78545917df6962ba4ca07bdbbdc4fffe40d984e16b982773a0c2aebba55a14f575150484f2cfeeccdf97846a33aa868dc22aa647c7d89a73831651c506045a05e785c1d78fa0af364b4dbefd704b1c306523d6a7394bbeabc34719a0c97f49cbe6ce9519f9bd3556cc9c72c613f5e3aaa78d7423d456f2ac4786fe8f8aec35fed7f229a7d59994f6c9d9c382ad386cfa6d1bc8d7b6da1a113442de3cd785b767933dca6d49d18ffc7fc0bf0c2f7e21f2db87cbcf818ef6854c392dcef5b31753db9c5923879777364530c4551c28a3a5d83c9642dd8572cff889889e8c835eca3ce30f8ec03cab74b3b5b198458f008eddfd6ce88e7cb7907d5c0159b8334523264ecf4cad4a2cfc2a929c3687996d25ab65fd9a93cc6590846a861c5b72ce4640b47673e5a883d54e6309e4a319ae63b5c33c37a6330f34b29cffaa639978598c3c6ac93d91ec60d0330ac6ddd41f950e51c9fdf1e561a0df3f9e88f799fba4143d018da30704fbcbc8cacecabcdb0f5d85bb687fc14c55ba8630d09fd3a2b7867e951f3bbe2f8caf417b7df766c60cddc85a11fb60e368f7c75a6102684f0be4d21a6ef233ec03955f0eb8e3eea69465a8a8582e89beb3aabb9c4ffbee8bbd5addca62f47a42f837d58c9c8bda9e6df46178862253c7bb02d81d8ddf367956a7a68554debac141c634058d53e7df645a88549b94c95e9d7ac2cd2058c66fd5b89432f331a5fc4e214ab143ea3b2a83dcbd8c74753e5660f6ffb33ee9835961919c659f734c665636196aaaf8f7bbe2c30f736384f74cec5ccc3df7ff879f6afd2adc4735d9f956db07f5f4bdc65cf605a36ee35cd6267403ce9eb8ad8376c77dc3be6b4eb4fc3cd46b275b9394dc4ee0b38964256ed443ba0163b7d764df43caeea65af7560e3956f18744a673606089fd71ec9b5d4b6e9a5c0927632b269d56da5f35ed5a04904351284d5cb164d8b0540bbddb706a431fe077d2e385e4b64beb3a8527c29f1d119c6676bb4e59937e17ddc08fd925d665a9b643e034478def83188f4caa30764394a3fb0c3b9f5dff43b0a53f9bfccc5d96ebb0478201cbc7e165fefb565ea149bed93edf5dc4df16531461af8c6f7d8a7686f622ded327a88f9a8f23c9abcc8effb5ef78766ed75ae4aa4183dc3d50783718dc49566e4e898f6ef4a8dcffab0bdf6e5683e50a7f36ebac7bb4c793dbdaae1f2e765bbfcbae6dfad2239ab9a2548eb2dc47458b3a998533df6b3900997780e53c73955d30d656314b90bd49d6d9540740fa67813a62ab3b63e6eb9a3195effcc87d6ca43d0ff78bcc65ee0cbd6c3eaf96b1e7b3cc86c79ef9c33748c0d293e244cf5898bf00f4bfd7a5b962168f2d41d805a35a3326e5c5927f709baa171d947d2cefe2c2699fb56db82199930ad9d539d69c50e38f24cb4cc9a64734c470128056a7b5d374435c099752edca129091770d6af831ac7805a7dd5657bcbbcc9d751b140283a2ec533c17ba38a392bb98421a4f0731390c30a8701c1396a4c17cece6cbce99949d0279119e8790722b0e2c748348a8a5a7c760826bbc0d395313b893a796b9d572c10432b2f5363b9682a89d1174f822bfe38b05ddc5b68ba3ad62497c3ab8ea6d13b11a6a69ddb1f1340b41f013952da1ee1e759d2d5459a01cece819e5de09b8d707c7d59519369660306c4174505a51846d5476d41d00393979293c1325a1b6673f16c32550529b21121e95f99f503cea88530e2c72b038aa641327181673e301dde28b0ba76b2b88453d1812499681cddf932370c864bc6205b6cb13684455fcc5e008bcdc16597ed661b3732a60e329df82820af51b1ba4647a7944c4dcc7a8f1bce390c44a9a7221e0c0943cb4ff6f048e2362f89f4113fd3636b97919e41acf042189e02a83b580e5d4a996fec6d6b7b33d690825f366d89f8952898152b3671685a22d8898bd62c83c32a1e3076aeeae845900ab2cfab51ea76c3022b52dc702d05b17a76609c88e69d12d7694edc3e91420737b17bb6844a1a28c0c756038a8c6c6a74906232b50d74cf532b5266d32d01034c56aa898d624727e5363e0bb300203e792b3afd39b5376998142acf52f6933a594c9a5872ab619a8a4317e86a91d419a78d47245b1780bef14abedb77ccb97d550ac223e5001e0b64a61b8fa0526331b409505a512b4b6ba7e3b4b630a112920b431292db5962b577af8d546b7465673a8641ab5807443085a9f0849b914a31393c1dab0fa30b3b1c1261bdc9a8ca69cc0f0432e91c1d42b6a8346cb6fd9cb49b189d125c8be422a690dc90ed4a87c70ca8e35caa16a35a3120b9716bae021c861267aea4244219c60fb1c788ce8264c0241156340daa3b1ae7725c6552cdadd4c244079cce22aa083a1a2c0810fc7ac55d77bb6ef934fb73a8e8f4cc299b28c42c5d26f36518ba4cd3b320ec3158b8b36108bb6d4f6427dc46653ec24927a833853b4b0af5723d8a3c5f37c17b3476d86161c57579cd020167a70c1c310325c6707fc82270f0c73d552363e2343b371fc1448b2770bfae474707305a9b32a6aa77c7fc7715cb35826bfa1696d67ec48cc0c9554691d186dd025ead64a9e39657be0292f39829ef696d3584b99c7367a00034395252f2443ef4692c163a5ff1863be79273a93192d10b661b9051d57572d5caa817338c52374ddb282d4722b1efac7339f1ce852867e4ba2a4d368ccfa58fda097fc59244fae273aa7c63f891bbbce875624800dca2b5d65b5a2d414a81c7525583c0160a006be08a68776223aa97525a1e97b241f59c0dacb50ec89b90bbd58e8f27c9f19729782b2c06bbb91725c3b6ca991e75bdc7850a0107674fabab38e28ac5b9b717ca7542ebb563d078e4c856447a0ac85c9240d77210e4ce850570ab693aca497819b5210e2cc957fa9b4542070171c56a2c1253e006cf12162e9168673a08d82b90812c8cb989394ca862aedb1ad9885598d39a42b3ac25bc914fc15eda2501d7c8c51aca0c257cb8b0c16de89900b2b12a875116cfc967553829e59510a00998440b93d8371a0b294aab2b4697196d397a9ccedbcb2f5414dc8c764189cbf720834327a9557cb44a90286277c54aa424d080822814626b753cb281b9f2fca8680c2e197bab18643c9b0aacf8445618a45814389466f67a5c557aeccabcf083cbdff5569e39cae20584ef46bb56456386f3c7ef5a5c196c51646b69154393bc7a6a6d0869e06c3f8ababbd7aa070f974e682398508a356c78c74be8108b42c6b53744c3742f16c84e5bc6750546739acbada819a2af9c5bbae2ca34f6215df82c10ac8a5873a2a8c04ced887730988c14f00a33821994503f9e3555f790715414095f05bc7d5c20dd9313acf98b10daa4053c90f3d2c0dcc676dba1cc0ec92427d4bbf61425935314494c3e65b266f16411a1250667954388fc5b750270e00a8bde873d3d58c627c6b31d8610597174366c8052f21e429c185bbc4c080122b4b25d00a982101b4b44c18bae64b7aad2a2bf646e39bb241df17d8c5b42db08ca0d6571097250072420ddea731357154e861809fcc1ceb7ad01d843ea928dcad3c1370b6b517f5473b94bd6351e282f01bf82a24c3ef05658b9e66735007b45f5b008a7bd627d8e894a4fd9228571ecb1041a11f23220b1b83a46d7ec32691ec9bdceac14e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde +ciphertext: acc839c2bc7a7d56a8472ece2cc56b8cd74eeaa4b37d366f3fb119226553304fe6673e37db7fc7a0735ab3ae10f6cc38151b7f3ece0a8dcb646c571aea0656bf0a6ec1c90023300ab33169845b8a64ffa012b890e06d691d82be4b5741e13d4920079b3d939215f3e7d73d4b9404c28c0bfa50cce06e6288ffd58c73326b77f7b6606ea5d742a32c54cbcded3f92f8c210b44242df2ab8ac2ac906860f632058e90d2ff90251efd91c9bcc9fdd0180cbf824f4487cc0fa6a812e2392eddd62d08c4ef62633b1a914f410ccd7bfb1d66240c035bc97211ce567070ea112a17b0ce6cbbc02587626b266caa1b06852661c5be631b24fc5ba4717e14be2f5ce7f5903c89fc56a46d7f31d840e3efad03c29869ec8475c9844404ff71380b4238c6da7c22cd500e6902fc962684b5d3900c23bd871ade2c7ac0cc004a3ab60d70f946ffe660f3d731a831190a03c20d66483d99cce14133f3a3e7f42a07b985579e0e77bbf338dfafcb0a850794f37f677c61df96de1fce1ff240775339eb9c97a92df37d7983bc27977dd2e54eb22729c495d345968fafabb96fc4592f89c89ee022bb477ec8d48d810e3b1fafd37526303a0430092ab6d43b253a7e0200cf45b037063ce753af83469911634aca0f890d3d9bb7671f5a6a171fd2af27d94155bb4c7e7d5e18c788864ae4c0e3057f6f6dbcffb659ca48113797b66b26e46449b197b72f7f5af1d698b654f0de61136e99bbce7462b823d86f4dd5e7bef7dba147a5a9a6dfd7aa70cee2fc7d558f0a25d5f111134f2777fad92840f2a969da17de0de10a5f74a665a7eed83382857c0f9e3ac4e686b712fea2d99eee8422508056cbf988b33e1bb1cc685a556607ee1876f53bf548ae9deda1fb4f1e0c4e724e4ad1ea9ce3da9af39d5fc7a6fbe8f76c89f7bfc22aeb08708ac6ca7bdf730b7334ed58dfd2dbb82d56d085a553ab8fcc9a3fb865fe9dd3743f33b0c008b48f3c1212ce04a2066bc1e916470bfbf0225745e695798c6dfe308f433c5c9c8eb6aebdffe47ef0b8df31f702f1a7fefd6b6ead7b69b22d55223e8a7ad096e588f941763b744ad565282ce29ec6161d5934e5dea1780c940033f0089d762eec127663d9b4fd5c5d39498f6d01c0687733426db733c9e6eb15798530db3fe5b6915b7945b80aaa0780d8800d9bc6ad02281a25a33450abde1942c0726c807ab3d46d9c91c03140444642d9fa3c2c436287d1abf1350d45154a38594b1d881be08437f27ae1763607e4f7836f562749c399a74bb7e8101875e47f3f4c6cd06b715e6e4cf3a8d7ec0215706ccf5b627c763df70aeb3516cf45976a42fa302faaf4aa0db5c1ea75dd0399449ce029f3b766f9b58a0217e97f58cd10bc4e79d228e2424d57cc423a09a5f55a4934384a0fb2b3414fbd93a4d1289096f8dd2154d919b1894ab0b38f484fc69fd9674504c829116d4cfc8e544cff6c74b44086498a0266cd9d4ad9c6b9e863e0ad7738ddb22fcbfe642b5d30760fdc3142f31e27aebf763926909a720465ecb22f1f7b9676d41f85a5cc407f6c52bd849891e16000ab5c5b3a369f71b1abcf6cd302809cf2cde77465fd823fa85c6050c9d5fc83cbe0d9de966646b679bb9af2c1d89fb4da1bcdad86e2bcd2b7430e1b33183c3192697ee2c902d3a68ba250d633ed6ca044b0c0b5e3776ce445342c1859a9159737304187e14f608b091ac6946fb817b9cc4afad0d7dac61b653620aa1f695bddc40113dc884d762e399f0df4fb6637f1dbfe3ebc32c5e37fa915a1105a01fbd341070c771dd8b3247c99d935157c5e17218aac87bfa024f3d344e9c33ddfc0a0d5d8f39ed4cd2ae97c5d40097548cd79ac398ad1200dc7762e0273dca642462e76a91f242da10c8c38cbbdcf44fa45e00eaa1fac8bcbb67fb138bb5dccab1012b881bd8148049c6aedcf4203b9191ee1b181f34f73ba8107e0fb5d3c93698dc80a70e6f3a23b4e080f0ccacf162e318149da1c1cdd3e64e8de6e5394c29c312272c0110a1c29e2b74baeb0988600bca03912131528d24595841d4fc442d9dda00570f86927dea5447efe93d60be3fa106bc50339d81bcf0df550e317acf652b286b8511d9b75ce32ec55ad5dfb5bc574ca3cdaeb83f975be3a852149528db62b127cccf15784d482f271ed0b70e78ccd779a8be7ec03fe8f734091fefa5eab7cc6154a0ecbb2d +result: fail +shared_secret: + +# Private key not reduced +private_key: 214a365e155f2468311aa7feae496d188b7d7def81b8dc49d326c29368f9653bea8e936030ccbee7989dce4d7dc74a5da47b7387674310c37da59cdb9474a7dc5a5f97763211c6f08ff9b7ad343b0c0b58b5c3b2ea6fe0a2844c6c0e3d5c46e0f82dd6e8d8d6bd6ea9017ebdddab9dd214cfc9f6501f6570305b5f03c38fcdd9516e73b76f5b6bf2b7665d7dc31d763a182e628f7349050fc8a18ca4c804fd8a95b81f1fe9fc0c66dc2f763707c44e555924fa385bbfe2d4c643e605e3357f8b47c37e68ffbc559c92b5b6f48e9cbb8f197dc05ff1e8fb938a4881c22841077cfc2ca6b5798b59926f3160148a8de9c4c7667fc4bbfd30b8917314d11015400654d79be43f61fd7b860e957a53a0acc6952097e013aca31fd4b3bc246f5f4ddd8e84340927a64563fb251945a9dad2499fb0bab4769f7cf7f4a7f06d1598259aa0f2d649d66dc083cefcb1d851d757cc39eeabd7a6c38a947b36e95579eaf9a25765f2d85d5f6de6e0d9ed25c6a7cac3cb4e5d4bf7046b7c3f646cbab6a3eb8fc1ea63017cdcdd74cf63b8c86b89d660c94110e4c6119736af99a75ffc2f98c7cb0ac653cc9dcf69978e0859c61046fb25be4c309476c53b5dd058c4075c59c2c753aa76b7e055f0f235d319e4ec6d6e839224d9908b6df6fc8e7d27f96aaad8272debe755dab3babea3d5f0b6735ea8d545949988baa98f7a2684f3b3c62e058b399af1a505d83177798d1c44ee5c94ffc5643587e8b7fa59e696e0aa08fa4efbd61a6dfcda583f0a744d8a03be0a6c9d6f756070dbba4ef85ad98eebd79eb489a3a2343fa6e766c79eab5644f4f378cad5b9bbdeb6d790ae65c2dbe3620c26783b9ae1ff59850fae82e6258b533f833b4538eab3306023b2ec0eb2ea15757189ed0d37c6d7acfcaf26d1528b6fc27dded3db72e54e482215eb469b8b0ea6fd95ce672f3e8797edcd17fc5df12bc1e7f6b91c5a344ace6efffad6999bc5345ce9b5d36467de8f5dbc56d7065a924b4f128639ee5acc2e37c02c5332e39e9c1cfdee79acf7e18bbfb84d4c6299b2335b6b410c4cf28474eb6ca8a4859f0a4a587ff6b3560ced340d41c72765fbebed2bb779ac384c53f77124faa4747e6048efe59a43f6799bdd39cdc77c4568d655da0aabc9780aa2b335fcd3da838094a867ab89e12c342953a3a0ab33bf7bf7d5ad758c248ddaffb0865cd8d1083e3213e283d979ae8e70a0ef466e8be5c7cc4429bb4d97bf733aec85eefac63306f7edd8cc651e45736d8408e6e4e4cda1474cd46fc5405f46bd229b3065a5d5094a312c27da0d2eb33628a221af81637b3909e4e8268bcbbd746df44c5e94dc5ae6db45313bd5f7c99985b3423755c17f9acbd7d831f5c3aed7f33284745f0aedcbd0f4b841fb84fbb6cd1a0d72773388a334cfbd05a45468cdaa249ab02c4395cf64c276be8dae64873c5d4e035b043c86d9ad9d0aaa3e7f983a9ce3e08f56ba545847ed27c29a1a84bc1e310e55682128ec4cb79b4abbaf3d1f3053f9c92dae5f6d3f6e2fe67f25bfdae584bdfe763db45ac37ca8a2239394cc86ba1ad976b7cb41b63d4cf6fbf3a5b845658df3783e882bbce7ba34ecee78b740ab91a4be3b716634cd55c4faf9c80da43b44ee3e770a90a9743f151958a267a8a77ffbc57aa51ec356caa8d34f836f6716840ff98dd29da6bc5d9d011fe1ad9dfc80bc3b28fcf0c84d7cb898980f0ef6b0fa34a898e2550477dd267d37495930cba3f9e43f920a42ddb34eb7c7f801fcad310daaddb473210436e62edefc05f891c9593607bfc6a440a8043ccdd9965099a200c7a4aa93944bf7ac5523fefc367aaa358eab14fa6b0ae35e19759f469ee064e47c58adc98991d09f693708c75534a13f1f5b9a0540e423aa29059103c7708eebecf626a95e2ac9e34b96953f5e9c9546e7fc566b0e3129cfae932690447a552c2bab22df49cc6590a10bd6ad0cb90edb8b7074bd7d27fb1977581dcd840f1a69cc0abfbb1d91927ba9cf88f1aaf3f95ceca3c21cd18c3590c425ec10de395899d195e761fb0c5bf9decaa0b57087997e8495c430373362b7edcf77de0c2ed8ada374e0cd8b58adab687a7d5c8e72319cde4fe868fd68a7da773dca08a71a49a4ca1b45ee4bf23b785f2e7bddd195ce7aaecb3685eb60c06a2db222a10a620d78b129042477537aef90b5f0f20a58b6005ed0234f3168ee927d726733c3221035f21dc2a95471fc5aff57381741c9ddda97273909ec4c68d4b2a22019cc2d58b0f40860cf429c20757c91269979a17e5d01aedfc21d3706369c3294617628bb97c2655656301772007414aed6a9113ca543f9b027b2aaf0f122d1747a800a49da48239eca99fd4443566348a3f8142c6ca511e769cee83d0513444e7778018211f3a683ceda1ba2881a37f92586a54806858058b37aad546d48b4a5f3e6289c237a041814c0531b27045b8716c1ab1566ae22bb1eea845340791e2899020c8ac1d6724a0b8b432222b204b0b2ac55d924b4afa5083426c716ca2de71c99687748b56342ed726694ba5e63e42911f66f8f8b3111261ec39bb3dbcb9ed5c729b401a23aa26015d31bdf8c8301f61abe695066eccdee028b11322aa437c26a785899817893cb321e0b72e7a7131410772799500a116f612838d7601f66f29567e8a0f0b7477114281df703ca76326b8aba041457004156854c1b81092ffa869eb46807e6a1108ceb06f65453800b72ebb4613e2c363b6190eae29735d48e537a717e335c9f7b456c923c42a31b8f4b4dbba96f59362743d516a01400b8f1b3ea71954f85b0ccfa751d3428fecc2663d509c8b9a211c011313b5cc8e8930b223d08c95e5eeb47127a4bc5482b0e871a758893e9b64bdf4162332b8da6d7b29152a914f5c748a404fd865dc1224e0b64cf782b7c866833dc8773b20c6eb28ac57cf5166895cee2e78d41f97b5eea14400c1d329363915094bd5650377924c15c86ec833b0ea0b3e476aa91398c108a6e99e7ab64990513e061ca52756cf29238564cf0cab366f8753aba1fd3e9ab70621a0cf161b398c413a39280a268c1d28172d6501d313ed15284d12250e6b75704d1950bdc5af1959bc3e93156346dd3b47450f758d3e9796cba90598224740b33b239b97c45c696323a05cb15ea44ca4fd98ee589a2f5aa1d1ee00a476533d5baa58027aaceec151c9c5eda23b14367b8bf7571e7c75d197a55ed3a349de636bf84ad6d446e2c3ba5657c683622b136384be3b89c7eba095a89697b4c8ed9215d1e5544f3d957e51a86efc098fbf272a6140a17530ef6e703f272792371b7c5e36a83c61c7ec18e6bfa7752c095639420968b91aee627c3ec575d74b49fe13f2a216c711508a4ab1fe84a20bfb019aae1b8b3c8750edcbc30cb47ab0b567720421359a0c8c08295ccb705222141b74b8361004d9c484061aef8c19de9f8c809b90050f3345d65531070cd36d5b2e50047b97b61cdea5c3b896dc0a22f6ac2a2585295ae0993be023a498cbabd6b37d56c2f8db63804d0ca52a169f5d003efe695b6eaa2c530773cc4347d4b9e0e46a822a980a9f4c8900070c67437576c572160ac7b297bdd074c9eec3a368297f0a34772b8292d0b7a29faaccf7bafd2dcc6999b0766d106e04a76bc9118b7875c187b1f8cbb00b3c882f3bc6bc65b294443610c65b19aa72f90c7086ec18f228c36d63808b0aa253052c1a44a6842568d82b43a994b5b6c69555a449ffd0c3959870f3b679e4643842083b20a40401c51898e138a092ba393bbaca9fc6f37f28d88560a7992c5b95c228b3388a622a6f2839da96b121dda0c75c0b36ef162bd7981ec294ba7f91a97b34c69bca54c2b7e91548fa7c396f3d783255a79b3fc579cb62eed83b430c45377857190d06e5a26576d92af1b79941f922bb234a68b21309db9aede9765c78c486da51e400cb46cb586c33c46db9ba99b983b94815fc5b52b7feabe42b4253df9cbca4037819a47f8541bd5747ccb34ca74158318664b243c81b85484bf050ed3aa81ff37725f29b962f901f5f44b4768cd9db394fc7370d0ca72e1607f83a0cd82793ec3a23d3510ae6ef3375c3265dd8268b3f31bcefa83f8e5aa3d1077cc62a8ed858e6ed4639447aa3d705a1dfc4cbe7c4b74d67183a5875d24552ae74e546ab15376ac54f0582f3a92a1e1075cfb682a16b6a46ba93f31165f32654838c9e14b46476465cfe45bec653d2c0a1cef96cf01e123f1a3116c93b1d5e54730dcc5f9d618b53a7917a71abbcc312cacb170c10e454c41869717afd8aa4a86113ceb654d582af443a0b6a74173f963d99c8d44e5520ae278370855c0e9e01df9b37d13e35124e6c2590e9a231a219c07ef6c49cec726e5bc6c6280269fb608e754d097ae818b16b386bc895af3bb9f5f2a4481c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f +ciphertext: 940def77ca2ceb3a5493b53f9f11b03d8714dc86580ad78129deb2f2f402c99f49d8a37eaf9841e9f7ec3485eb2b830298487de09d7387cc32db2d89ccf1341d5a58f41288115b8a9950e3771d7ef4b722565ecf49c40838848262c72cf630dd23a29175a30d589bb271d0059f038ce32fe941da9a687b76496d4dd1b040e013d129abba459d7320a43ad9f5454d22058c137273c167e4bcca4c491d73322cae90e30bd1c5d2e672da993b7ca42137e33e80d51ce3e6f07a0e2d641dcd7bf1ee96861b9d05c99304d3cea4e06df0ecacce42121cc86566764c30c2ffc5e53fb9c3a38c346018953028b0958a41cb7d22640115bc576859c458fbfaf66a916d01384a335bd3e5470944eaa3bd3f00a4d1311a3b1e2b9db547e20298b5145a302ea0a7eb9373822eea0facaa85d58133bbe1d5ad4fcb32d60da6db4ba4d5b0744f7b85413d551406a93bfbcbdeac128f20b5b268089ba063d6fc3c4700f5a1c36dfe179e71ec20a628f453768a2bb70ac71c69b1beea25199613f6d8fdf24d1192228145313d4c6c405071fdd41c61b63b91daa197dddb02806d131365b8dd7db229a47a84d6768ba308ca5f26115c723b68c4e040aced7dc5ec5662ad73fbf958ff04aac4d749e2931a9613e869dd50169bbdbfcf03b4d594e2ec327ea1936f64ff1589b258fb7cd1aa31bff2d0561bc91a6c945f81adb345836b6a028ea7216ff18264bf67e68bdf9e586d07fb6876dab46825aea47415d3ef91a3af677ce277c4d5744c2dc686afbcc30b5eab9ab02280f6ee99c181430ef7305781e42a874d8e5591a6090a740a7c5c5a0bd3b960e0458d270a641c7583b00ceedb6dd7b3dcc16ca1605f46bf799928e5a80f7ec445ced534b02c9ebc3aaec035d3a24adc4cb6617ef8469e98352aea0929d3287ca56ac8b7925074702570920be595df7717f3addc22e842a1d72e2864e32bbbe97d8717ceee02581496e92bcf75158868de27cf0b4b6c5508a9abed542f49e01bdd849ffff94056b8612e955d2e430cae6e34e8e45c655ce37e1fa49bd3fab70ac5c84f14e31622d079088e972555ab850d8608161dab959300d64d6a9e963661a0eb615bd1cf87252c64ba41740fb9682695e4fe11e7318539ebdcc0d29d42c2ae0b764da06425f0be9d9343a43fe1afd763d93b2af27cfbc6adae24f52a87b57453778fdf8178280f4f05cd59b31833af437fafa11ef5c7d3851e0010b83379986f531090e62e36222fac7a8e94440d7bd101264c5b3400224fc700fc0fe9600d90b2d6b1552e66cf6cd14a3dea3b806b830bcda236d93a3d4164db43a96db6266b4e25df70747b421f6e8cc19c37fd3c903e4fe7c22c3bd1e56e60acf7f635a792209e06cb34f5ffa2a882e4e1a4abf4fa1805fc06a72cf23481badfce075a6774430d68d98504d75b87bd3c154e3363c7975f1363fac01a04f0f3ad92e081495cbcdd027ae81a3a8adb35d3cf13a09c04513ffd66544ea4bce399e2ad4c243148dcf41ca01b0f6fe528f598d21704d4f8ccf850d852883b81cc1914fe50cd09d4fe795cfec90652a9dea7bae10244ae0d870b75549bf90087a6aedba5f92bcecb15f770cc14018ad150461b73d3a4fcefd70e1ec8eebb428eeb78a665f4e180b312d0d7f5d88a9e5a17f6fd48cb92147b4a2bb2f9332d8af37e667776b4e82f850dc58f1173f3dd56c5ffca7ce5b5b516d77621ff3a78df6fe7a88479aa1c3b8bb0d40466528e4483d2a6a60be6cf32ece2e91bc090a36708c1b7f29f3318189bb6a05f9acf730d2d6cd20e1fe3739d9179e639ea34eb7eeb35daf32b78d94cb31da90dae7668fdf6d06b6ecdb331415272d9496d2a78b4054f9d59054a07f74cab7697b83ef03501d1bb1ab250ca9caecc8861d8f2b56090e2cf7dc32526f249034891a54b2a8f4187957c374567d741b3d2ab260663da07330621925b35d020c9ef6b354c646891ced14e0f9f4172b2eb9cfea714b7a296b4559a99a6b5393b343e59a00190cad70247d670b0c22599119a545d3140b240e486dbe7fe3532f4e0c23975fbda2bbb8824e93af3f9d2d76484bd0c1f130ebe1a61bf20be7f667fe55b8cec87ed597f8ad2402a0f0786d0cf5141a6e11c4d1eee404aa252baceb67a323a8b091a704dd774ac79be50999466d12caeb95bfaf9324cbd0610b0a4dcc630bd654e9f63a9ca6e72cbb940cd +result: fail +shared_secret: + +# Private key not reduced +private_key: c73842b1f8a1f7cb343c67dbfb8de270595100a58799df35bad4ae8ac7376607675de7cddbbe432f6bd4fb1d45af6af644fc431d6d4a2c794d58becce958707f5d8c0f08dfcd6cd01439456b75d91bb75daf5e8b9dd5a28fc8c549e4450ed9b92a6c77c584983605fcada4e43877fe06786cf26f33fbbccb192b5c07a9a2eceba3967e778b665df3bdc35a2d6cbb34b33f2e5d1f99d0c0cebf6dfc694a0f57e2a533430a79522957d1677a1a5f6a44e4bdac44358ddf83e60376b90f6a0d3899133f4b1f37ab4293e56b9e3783df6d7696827fd55a2d636afd5fe73f86b0373fd91e489d55f74db20c846b1cf7e8cec0ea97f9b97ca5fff5f970ee80aa2a5728f7befd4fdbbaf64c0e5555b1f35bfa2d3ee22478138ef2aeeb4a3d983fef6fe9dad3b4dc5e97ad079be38d3491238bc0ddd3e3fffe2ff98f0e1bf389c83c7b3da870e63ab55ad94b27adc04de527dd444acef83c1ff54bbfd74badfe67b978c1ba92ae0e4c7a15c2f678bf3d1342fe588e4d7b8b674b9b92699d8c4effe0a64c0eaea7d94ce6f59e7a97fd3e3ccfee400b3142be7f90d58a853445efd63e607cbb05036ed82dc784fe87aa897cd538fd640ce29da7882cdf8dbd4fccd4ce982e1ac0b4bae497dca5f774f17a068acb73af404a5c8daa35268484676e99d786eb1b9dff5334bd1bb4b05c65d1bf1c4a1b23a35e3341e86f3f181546fd3cd69f63554a67c0d85a479123680849a17fce890ac6e6de357f17de4b3a75326e13ccecc690eb66af0216921043c31a2c8a44688b671ad60006afddc6cd13898dda8fe4f405a24ea5990e06b55c278cc77ee5f8655d4d8381eb55a0655655966b3f2ca433d3c78fe4adaa0f6e96ce4b355425ae81434c27e47b73cb6e034d65fe2bbabee99ccb8459e1ec8bf77d303243dd403bf155765097f650691e35a60c6fa2aa74cc1490de2f525a7a65ab85357a0f6750bb5fbc645ab3c796bc798dcc09f8663c9ce92e34b9536a9ef38d54fc421f964d4d2dca8d5b9a5795bf1cbec3857954d92cf71415f8fffec366eb41d78bbdc773b58c8e420ff36ddeb3349375bf1a3933c7a865e3ee6cbffcdcd93567b0abe8c7dfc9dbef500c8be9e42c62327af79cd75cd7aca7eabd8c08b8e0881eff76ef78a38ec9c58fc149473cf5f8965acc8db1b74a216ed3a89686bfcc65d40576dab5c33a7dd69db6c390138647b53014486280debdbf68abc6979a03f47652ae3c098386c665ea89fb9ea39696a828fd390388b22d70d4e378b71ce3a4f6af1fb860b8fea42cdec83738394336d9043ff4cfeb9ee18e4e5ca4b57af39f84d53a4f9a7a3124f1c9dc7e412ce02d2d7a35dfe61d7d99e9cc39d69d8ded696abf3fa97b9af97c28b86889f30559da6a1f91f5e73ca8163e5baae7e8e4e7b3fe4aec0e7a2757653b6b92aaa73aff638cb65eff1508b9c7aac9439787f288304376daad7f94aef5694d3f94c157edfc49be5326e1ec7863fc5cff58d7e41418b286cfd9f6738e46dd9f5956b44e7ed6ed04b59174f87efbaa28a63cd80c59636896114f61c10ca8c2c8603fcafb53c531cf7a8da7e3abadb8e507487c28b9bb07477e034ec958584e6047ba1119783e6fc4cac3c4563c628a65d3236c7a997377ad53b9a4cae53645933856671aacca85d55adb8fc39e9ff80eed7101eecace49a6dd09c22f3ceda1077b9dd437d56bdd7b6978447ae9ac1d6ce195f9609cfed283c9806689b16f4dd01dc6a866594835daf84e82da0f3895a577c5eb880359a046ca7a15297b3bc3ad227972bb9dd6167da7c10bb26cd87f05736a4934d5b4267fdaaaab816fa5b10bb65ac597d8c5a5e123a0f34fae257dc1f0d8829dd73fbecb53076aa093b73e68e35a3bb649ce56f1bbdb7c95ccddcf997b84cda65cffd15a5465fd1f73b599c7085ff0786c306f57e7fb5d936ccff418bff47dfaeaef7689562fcfa9cfdcbd9c344047984e9b679863d7e8f64a168e3cec89b8b004c1d61a884c3f7badac95a15afd2bfea7a5b5ca6e47f2d25dcb4be7a37647fbeb7a99dc94654f75f7815eea43f6e9c0643d266a8b1aab98218db1b9aa52e007b1eb6b76b3147b14785652b5cd11586f6904ce3a9554f7459480ff7e88efc6addfd5d7689d918d68618d533886d0c6aa9ba285738b9372c75c9083566b23acc2e981457fab1306b04340969dd1081f074a2a33bb85b892750bd34336a68362e00302712410eb8fc8f37da6530a408b17fddb0fd602c2e40a7dc4c94ea843226ca79b167b180f3024a273c57f91cd69629c970617720497c4308e10f03a038544fff13a3afb83fb2291dbf177a003b0197037a3c9283de78dc911beacf30e6c4c6740300266c6ab69893aa9e112b67903df849a4bd59ba106030b62b61bc293fef997a8851d06c956631c266ad533791124a4e09bdb06c0ffa681cf2c6d43670e2a017b9a40c13e85bc1c24ad914003aa69439d401ba605d013a2baa0e0b010363574b71242745e9d709a3ff3b0a2ac7f374684bce9bcf0200db5a09b5d0c92cdc7bbfb3c24a79a8a4a0a9a64376a0793c1252362af170856046471b1a60eb33f23c59122d0aaeda79caef27df971ac8764986cfb2617fc3bb71355a56867c29795f46668f8166970b06c6ca91d8651ccdcbc23fc1b2f0a75c45fb3321151953315036d52322c9b6408152bbb595129f41a8b8570f02b8ccba66de5fc36d892457673a9a096c556c9afd11b06e1ca9cc8b3a9e9765e38e711d039612c4bb296061771e42efd68c9acc8ca61012f295251ccb33252e8b0e6486c5a5bc28683347571b8f0a42aec4873cd3549324ab728324030196035b29ad3043ab9008da6b924bd376cfb103fcbab9450b44c299b4e27165303786944009418cbc66fd9a570468dd85ab652d86402501d61f5272cd880056521f72a362170580675bddd505840378d96334a704282934527f70a499ae99db81516b1d1426d233dcf9855880022d72100e14858c0a226325338b33ab5ecc5a86e0ac4e8504e168c5e1a4788177878bd569d49dc60b1484f43134e2bd39efb207430aa564ab7a88cd40ecc00a10e4b6c663b61a6054323429c0722b2e4464ec0d43374234b4884bb8ddc0a28852600369635531ff943194cf91937b43afd418f8f964cf9c9cc66988407bcc7b5247a2372980035c8f8357bc3db948c0c4b391ab47636024dcb79f094c62ccb64893c0c45c1bc88cb00ba85248253606735547d424797b0bb302c5eb9631ac98060bc47341e69379bba5b5e44980970c699187f62731f2b1a4bb4c7a33f8a20758335bc8a3c4c4c0900b3c2cfe35356a58aae233b066466b34c814a4cb6b9f916581b0361e78a2971bbfc014a7476ab2f7c291ba688d5f75153c4ad7ba4c664a8002058c9eb195a3ca7ab70638bb114c3618bac3ab383dbf292705a478a35c31f06a1823b545366cb6900c59c036b063727504a55c2ac940606c7bcc74643644bde915d83c395023c8fbd069f9ec50e1fdbc8edb0387ad1074b11bfdf220edd7486082a4842d6c737c6a1ed5b98bb78cd6de1153480b3bf095b04a7cbccc19102964e34693a6e492fae134c9d726e49532236018dc517bd94232d717a408af43fd5c837a21cca33ecc2a3859eaf8a74b63c36fa70168f241e2ff52f7197a615d04357a7acca269e47848375bab1f82ac686903d44786d540a496e29642f71061ee76054b5aa6ae67cfa01704b386a657a6773b8509cc1b4e16bbb92cb204b5bc6638cc5dd868db40358dcc4c258915d1e93771a12aa7ca4b3bcd854ea2a111c09afbc60cc91f5abd63ca5ccd11ef2c1b06a38925eb9a4bb569d8c4b859ad278ceb006a3d44328636809a31c377c58957aa5408b488445bf1fc4ca378c733e410e3814c4300850fffb052df767743468c6a91d81dc3c4c34b4b5a06dfab7cb6a741c91107758859f2e1c2d06881612e05cd7444abf23c104b6a068988fb794306e90aa1ad2ccf76482f0fa7067467dc105c27ea7192d0c6fc50b4042934e81876e121c6c295a5432219345bab9ca566f0dfb6b9d4728ab7187f311ba22d55b4047b9b3a17632925ec31bb2322257dfea3d1c1b4331467904eb2bc1f7a4369aab9912531a6835358b016889ac910a7c398c18a1636976e04c7227cc9fe13d61a848eeb60d56635064ba07359730a0c269ed6cb25ca2908f524ae3c9bc860a062192421cdba741dca98f98ae0d955c78d141fedb59bee95957e035d5b05155f5792e88ce43342f410ac92eaa68cd055fe28c4a217b9c2da4ba64d4a6605565d41a00acf377eaf80881d9a5305766747cb076149866504db6b96ee4cc9d4bb977165f0b04d3c03c1f8150a265215387c7983d37463a3136a1b7c694b79d85075e5a897a948edceafc78b87b7fbb43b11f82831299a9ee660b3d40c06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 +ciphertext: 0512de1ce921b93fb6e5bc9b3c41ee032b2dd86806cc50d2529bb8a79fa67177246fe90c67b3303bc92b853f645968a3d196b869145c83acc953228cab2ec6171c7bea6bd89376f7f20accd881a38e498f8e01cff9e6b291d3ca3e478ea2b710a3305c812c467303d84332ede16cf30ce7ced5cd1a1b3467e727313777e04f7e6c66acc22dd3d079b2fcb0b519f5f86be0d201027e93f4b1757ff2b23ced963b2b01eeb967b71498e33b47ddf1ccca9de66c13c733f126606907bf717e08d4c6adc879f6a59db879986e5e3fc01340c3b1122ac08beaba9e4cfdc912c738ce91fe440d706eae8233260082a97710df67622e7e5da4653f52c76571f4d707469b2de6ab29f568c68b750fc55cb11a69385b1ccf86f3058f9521a1587f87dd7fe581b7419a75066c58713b3b350d01659045d3f66da70a8a48fa42fae43311028b0b61bc49e756e55cde70befefade922d01b943f9f3ce870dc6f6adb1adf53134758804f2e20919913529bfaa187b37f4115a06b0ae8ad84a28c5237c070599eec2064e4905d584cc6bd5216b193286392977eab85fbf357b565e6071b744476c9f9ac7c76d8a8f36e238d75fc69d8464537230b18d73a3a0ae41ea6c12796978d2deb5cbdc6305a6287541d4e443483577a1c1baadea774c5c87e5dd3489bd7e9ec4dbeab1ec4b3dba80c28d599d2992209f5e89b057d742a68e3586f11839579f34dc314264ba9538550aa6a8141370f4090078be5cc3d06d9b355b478d0b16ed945a51a25a6b8ede93f40412005a20fd40eef736cd1fe8e08fb564479be00e59e1ec273c82f92a8a816868b45a4a40b965cae14115668afe9c2d5848cc0e5717b05fc8431a9cd4ccb1208d35230840e32bc8cdbcb4513914714a203890bdec25c72f89af01ceb2c2f9073232c5464e7ff2dbc3687c798ba88d72fe9a1a47fd91a0f17a8fed16aeeb3a1b5d13df78c2580635f0e2af0e439fa35b1e7091ea821a77bdbc7b219172ecad5bf43db870d21ac01e0954fc4092ea8e85e1fab1c8eaf5322e6dae64b224df3b7c2b7f31f4d6101a82bf17e74b64bbee7256dacc3ece2ab95d0ae162118c5c7c6a1fa94a9015fcf76cdcb97a5af486139f23fd48ea62d4ad5c84125ff7044756016a84654b2ac4c2c0ba6915991575dda35570fb23f1a50ff61dfd88c1e9b14ccdbc48015b49f773ca2426122c323eb2dd2a972b64fc2718608a16162c6f38570d30c1d39dba3bee7367daf206594f6d2eb19dd72799c2b9351e5825d5ff453c5b650e0906bfa5a48f6a12b8d1534c60d75b40b48c1e457da5c9bb7281e503270c5ff5e247471fb14c1af2012d52ea24f48855d51daace8c4e8a615f825e8e24203613ece54deee01a0aba1d0fde8e5ce495c382382de6e95fb640483ca7405d02fff7c4d3799e9931ad3e6d64230d6c9d99afb39a049ed44ec2ddbd7c793202168ea54c60f7758c1da23f6c2a9165b6b5581fbce1ee7c41eb3830ce978b20af2eb4108edf93e27db402ad68256c1f53f4066902461fe8c9dcc92e553f679bcf19b8da57ac0d15e3e2b4f6d57dc9d5a870fe2dc252ed58171f585168c4823320daf7c25af7be123382d6d45998b53f6fe29a2fdc7e6851ffb53f63c8a2e0ab0866d7a680d65c54547d6f610207dca369db3b1ac44858ba5793c1270d8a2bd41400272dd6a19ca3fcd8917a52f65cdcede7aea00731f6786e16362e836c197a9e2b3c6228e9884ac942d66b67bcef075d85ae394a9b6b7c2c4ce43e8d940a0e888947d041fdf98c879f550705e2a7ea4c33af64c56af512ea79b94b865d4eaecf93cb6e03d454146ff5ef8ffe21bcf36db1cefa6ccbefece8d3e9cae9e03f259bcea9d65b23fd395b66c9981d6102d938913d6997772c2582b8ee09f2ff1675c116d04669224b6f867d0cab6699be7b03568c953901e75b67a1da01248c02ee2ee4d1bc7c3282c7b55f511e0242ab59b69a90300c5cfe3c80f8c382d9259a3ea1804211d02a95d166c17cf3e0319b47c4ad1425dc0a9338e6eac2eb91ad3250b6e69fd6dc5b193609c049342531aae7179f3fff718f62d6c1752b5c2e465fb6c625a299364a964e56a9ea758af79b3958a5b016442c76a9554cbbea5833c921e356d6fc6a688a55b2d37b29fe8ca97d2c1926f3e9da8ccfbfe2df9286c821b13e28f39a9ffe42f41075f93e3dfbffa4d3fab09a8ce3bd +result: fail +shared_secret: + +# Private key not reduced +private_key: 2955db559ea0266aa9fd363954b83ffb586f34256d0ccc64372f5516953bd1a8faef5ff4545abea8d68e9edf4b0f354f83978d0eedc5639acd6cdda3c37f89d20c9d55e56013aca5dbc7d45d748077f4b9bc967dc2259cc79aa29a5a7cbe66b9484ca64914feee3b440bdb3f6475a0306ea85b2b373c9e338a4da2883fe3913ab6088b319d2b509ab46cd19aa45458dd966dc0829af4b695cbb166471cedea3be4d6bcbdd4e1dfef969675bf0884adaf9f248cf9fa5d97927490b5b3b72d3db59dda7d2b6a54694aead6bcd33794cd0a4ebe1c38998b488091a860a69c5e82248b5a4e851d8553f2159782dc7c2767c09b93671fcfc90684a4d4bf7b6a88be09d5dedc55b92916561788d3461b4f312a6f4abc5ed1c97a6384356c549e081fd0245c6e39eac4267a77217f93fed95fef3cf9f3d93d2f1c6a60acd7a3b8624bbc8da6cf538c25affefb815dcd675d88ba2c86f9618a8e47b98433acb57c0b8e6499c44d4ee288c34d8566becbbce5afc9a5a3d7c4a0ff5892a7a758b77e764dac9f6eab0128cf301769dc65bd8364fee5bf87849c75d64ed2ae85d149dd839425a4b20f43656397c17bd5a969e8180ee8e79f3d63584eb6efc84baffd9f89b554579f9d5f6e6ac6e2a096a2287dd40a564649244ab8da3f066a4f0cd6906d83ca49ebae1fc49b00a5c36776c6f1aee2237dff7f2799fd4de88294e5d8cfac0b98e16dba3d0e1c62db0e365f3fbd1127d9fb8cd7d09d5e061db9da4a61d7254d9a9c92cfab50039f695488eae87bdd8876dc94e6591188c629a39e2d1748f2b44eb0a6ec7a58d768e63d066db6580fc4d89fe93b7c9a8a8d7729a3ca0c5c737e15506fe79913bd5f25767fc53b772ea5fb6caddef2b535beab49b6acdb958a42fd47b28dba99787f91994598a64586cb86c8a99ae2cd2d322d2cb1a98e9caf36bbcc387265b57819e496cca38b5c1bdb6f86c3b2e7f2d4eb3db4d97bf5baffe1bfe2f8f9b14e39495abb305b4dc0c7ea77c315a2eee5ffc31a75ff2f4bf08749ab8b7a5858860de3d4f966d8988abad00dbc0daa7f03b57bfee8d503b366aeaf38313ae55d398e2659eabf1c5b11efff8ee568d6f8867256684b15d0d02a77070b8d54cb35056dda1935577cfb46123f77943e55d089c457df8f28aaaf076ea4a60486c4f7ba720f53f753af6d75cd7b265f3365b2213878bce6c9f806c9df63fce2a5a657dd72e77f38e0c74978395552eb88a0b9b49c4fd5c41b3027e4db1a8e84c67a8d5d43d3d25987e9598de984a2f2eb69da7b843d6f77ca144c2cbcebabe34f119abeb5d6c1f688dd54cb511b2795aa1e8b469574978fcce46f5cf7e85a00c8ff59ab33185cff6b6559085ae550675f72795e6ad74b22d57b903678ec4bc07ebeda05bdc0cec9fa5f2f4661c9688e3ae41d0c73b05f8826f65a330ca36a1bf20bcc8021bcc1fce4d8fdfadb2e7d9bfd368fdf1992f4df841256647e2d77f2a39c587da11ef945823c55616cb00df3adae6478cafcdea15e71aeb86eed4fbb56c53ce37f62a5db7e9aca343c036d8a7ca15def3ab913e2c94ffe541773ace463a048d1c3c44a7aa397240fda2a6c86c4fdc7b316865c5da13b84485eba71bebf420bf351e21ba1b1169bfa4e4ce0fef35cc6d2447e450d9849ce8997e716bdb26ee19399884069bf964337dad8f91c47abe45ec9156f6ced0654e8afcd6579de3fc67b3cedaf745dc0d09ab978eaf07db5cc83adfd6f47d5f8b672385cd743e8ea0eed871ac4a7fbc7bf1224a2f7efb1cfe9df37e75f62ae7f7fc9ad14b35ac0f79e6567a0209cdbf049a6245662054decd268f511fec19eef45b25394c8fae405f7afd7b3f5bad6dc9307d1f78bf58ba5b7177958fc8664e5f4fd170dbba29b63b27d46882af8dde4742dd7b8ef476f50186ab287a9f7ce732186da243faf66fe36cd675b63695bbcc86082bed365aabfca0d8db29bd123534acc645f2918d5d8b9bdf0636935bdb955555476b760495dca5b3350d20b9269a3898fd45b162be65248830bd952b92a4c138feb67e7f4336c327a46753dea31a5c440f86c94176dbc4f7fba523e3d8294fff2fde75aa3c682a973f096e905fa995487df83265f800d94750ee9b18ea24f9492d7d7408e0fee010d87b9e8cb88d5437c59835586a5b224aaa6428374da6bbed37b0f67c3b5352a5ec2bc072247d20c7e83d83ec162a3dd00b44c070577ebb614c97b06e15d7a41ccb6a45fb2205bb57ba4dac40a12ac5f6bb522ed863daf67379d230badf71844256cfc596d28957bae0c050b9182668857951a38628b83e2082659317ffdfa0e279644fed9877d6775e131682b998adb000ace652f13fb0b9aa57b9022b792bc4bae5ab5f07372bcf131ab93523ff42e5a328fe465520bc57d62f222e0a3623ad8b034f164b1800926ca8a850277d0054f34b941e6388349a87eb853375055caa0305309a06fc2016ba8a3c9bb06bbe7581946755e6c726e9767330d639ad4ca467ff670414a65eacba93d2b33aa628f9eb2949054c82e62774cc13f013998cf29465e8b83dce66928b2c9e1f4cebbb91e2d8b2278879073411358910ef23c66c3115af8ca4ed0b595c8a49ae8eb955a86a2549132cd65a2f6a44eece7b43a40629ef172b068aab1c2126fe058ad02183dea6994abc7daa71414666c57b4c40a17781ac4784e6ab2ecbb8fb2101fa1530a00032b5d1b51b57ac1537076faa54b3b9bbfd9dcac565209cc681b73d5a3c7138156b258321c05a494345c9aa72197c9d3a9552e437e891c437ba16c00c76f0a6252c8e4cebed86398957088596ce28c5880db1b90306958c12a45b5a14e1b05c161c5a3aa78099154a557a58e6c2c7758653e3209edb90110e40e037732a7e44d7a60736437c7a3e872c82b20478083b2592ea7418b75b002f1da834df8624f665df2677e0ae98c62636f603bc1d796935a11bd18fb851e8076c7e4c58b41abc71481608281ee4c572b612c08b8cadcd6b7dc83130f161edb26b1335662a5161478eb5d5a8c61faa175f54166ea2741d27c0496292380e93f6b77577b494c463c9ce8960bcec25f43f198f0552da73819bd7131cec101fe6448f7ba3fb03637b351af9e284da6677b53b71ffde41ee41518b18c39813a82ca041f2466321ba9531ad4b576cb8825978b565580d5f000b9a56a943c2cedec578f728785487abc0a8f2d28af8aa3237022125fab084cd19565816d15f8bc6936959eea23f8279c74946a8ba37d2eec75622c4f911c24839b78cbc8812fa55e19e10ede4931f5d16bba8aa44943bf9720395a8b1328648b887b28a98423e4322a69a752d1d2121d447c2f05bc91e52635d06bb1e05daab02f02b6ba9ea8944d9344ef68c23af10144b93a40c456da0857acdcacebf1782d63a0648497c91916a50b3d0688800b968f1e2200fceb4538f7520becb0fb86368ada208c0602e1ba5d2ca85da8d36ab8782a80436d69f65622279d8145aa5ed9671a28699ac9990d738c3b67ba500a731cda82965a01b4c16144383bfbf3334d159c31831f94301d6a0320a4c7a340aab3a18825516b819a285dbb82a28f164091516c2519b9b534ab8d116cf61303dfa4091fab8669a417a9862f90491d251277d4b7b0523b7c4e345ebb090e5ee581f1933e7168567a857dfaf916f7747550409889bcbfb7e32840537ecb7c050b18552fe5aabb6794b27505f3b721c0b96b738c844f816160d3c4349c4463f12d248a6605b52bb9f8b370e958db55b9ee0663454104c47781e8e0a6eceb2a2632acf0082c4e1806c0927a25e7ba8f1a395f1a352e72ccf72093a9587299e5bc23933395836bcc97832360a992b040a7b67d4e2caa3d227f60d4c8ae293070b1878c63c8e106267a8ac7bcc850dabb5904769fc487b4f417388ce6755058470a3a7fae41b56f009b01c74af2c0a7d252b30302a7b3585864c84c8aa4ac42e82b1ab44215191284799c40d5ac80079d30625dd09562e555167391a370fb6841a98ff2b85713b75ff58b984efaa29393540fcb20e3c1cdb1887be3a30fd3861d62999f2c376704983f969197c9165f19b498bc169966269e3af2300847c908a4738c8655f476238fba9bdb05c3e4f1c3aadc7432960603c36f759c69e4ba048c76561ab4831b40341ed5c05c7b8a853169f2d75713c97a883419457193b9889724d3a108c1c3d083404d93a25a98babfe33d36fccf4f6623b9e378fc5c731b0a20df7b5c28a0c86c065017d37a65d89e8e127acb630f4304739f19bb2a596bf950c996805f73d79ec0aa09dbb0561c3a3bdb13009f672b9f2c907c468d916c305d530fe5910a3c029a722a9e1e6048ef23454bb64b1c9eb2d1c1fb4c57d68f592a778a0b3bedd71c5d4f75c2e46b6088ca12a0a5e9596d5999259f13ff4f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 +ciphertext: 9ea5dcbbe778444d92c1162b8842a4a2fc33f2e4de75c1e5dc23569c80479384067bc22205b47bba218bb0c8f54475d71141a2e66dab38320476b00695a09735ff5037008e16ebb9f5d5865a479fefd25cc29e9661569237ef9b1a0f3f857328d857c1052490b533f46b50653e95b7159cb7373ed0a06b86229d0cdabda69738c45e9ce6339c58a5206ec77b73e71f29c55dda3b396ecea3f5dbd533f8e5892608c204518174fe2abf933b4d1a734cf0f0b3e53b566e00ddc9551164577ec0b9b698a35bf949fedbab9ba066b0bccc5611cc57ddac6cec3307a51e9af5ccc4aaab97551d005a68c968c5ad29ac12681672910919f4f3708c839f68ba43ab6ed9b3fd5ab913c156daca0c79d4ce04604d49494ffe53e204bfb04810cc179d830b22b36563674fda54c8369e412160d3d5f1e5494ec76e1714f70b5d41312802dc615f06a22159e762f825052d1de9d1a43bb476c43ab6071a53dcfd1575beeb415a58902a22b9018d1fe86b664d8676b2cb145a3b86756dd1dc7c0c8cd64777064e95f3e47c54544a0e192116b54ee581444e8a809f6b4e790888560842609c2115b6851cb388eb3d441c28ad517eeccdcc7fc0f5a487bb38995143fa2f0f99d0ab708df86ce26756adbf7b75844c8e94b628ec2b117e07180b7ef46bcb04f9473903e75cfe8c34eaa3fbc44a9da3568b06ab5b8a2196b09cc53c0d47d28a118c1ae014ebefb782a4927500a57c8a4f44a9051eea6cbfb00a20f3b62d1101ee1d0a9f7a706774b9aeeecd91daaa82ce8ca7adcaa2727cfc2ae37c1d05ac515e37108678272226d1dd0a7a4a7aee2be99831ff18864cc3d438427897f22043cb5e193b27465b3627fd9d7a0976268f2c2934050701783e25b73537aae506b6dd8de3a03381b96c9af1e0cb477bb1da66683b832402c829dcf20e872ab79f5f4a658af4f7d53430b415d0cb50ed334acd4ae8693bb27a0b36b5f2769674758585d03121c3636ebe4d4a55f23e0fdf7463385fac3fbe4827a6cef0e814823dc6aa558c1e9f18ece63a62820bfb338a5929cbbcbd496c601892a9f6b4a34fa43d3ddf9fcac8e0069a733e4a9cf976427979bd829c0d394ca2b09ae53a4a3e7582e8035d22b42f0f66549ccaeaa5809afd1c18b22d5570e4bd6a872dc534b4a1c404e4f9985aad35422a27af913f8f8f39ba3535ba4339710e2869aa150fdadd00ed2ddcdb85404bf6623ae56f8279b5f86f7e3b28643c8588d7900397b567cbbd62bf9399aaaa1f608b2be7f0caa251b451b6186fe58b49d4b7e061193ee591da5bcdafe08fe03e3ff0bcd7b5327817e8d155859e77bb84ef616897e15ac38b516bc53421230cb0c256fa5aeb72455300983d2114b64d61c9b2f2f08e5c1f3af7a00f47eeaa36c9de5fe9487533fb893281607bef7b7c940216abbec21befdf21ab4e5078ce57dacb96b9b46281a483a11d05df9933a1e09385e6cea10a26fbad604cfdb56e82e6e7fe146d34d935946e19dcb87dd0dce2d2110614027e7ec6208bc2ef5d0a1f9554124abc026233d41958d683667a20829811d224f978d5a3fca48340dbf8b6bf0953d90eff929431b8c312335ab4c5a8538d6b07dd53fa214974183f2c0f8b2969f59881c5a7a90605a8ac2d47001a9177391a66cbe2f26664b5b446e03df736fd43ad9dd80d753e0c7cc9c86c0fa36fc0edd2e5515683d88d30f16c0a89fe72f855bc47c0cb676b2be16be3f93476df3128d49e8107a05b8128bf69a8d4ef13ab3805d78c2dd2d27b771daef67c3958117901d0f23f4432bf07a45cfc0ee2345363bc713c3e34980c6b0266f990e33fa25cf7a6ea84fdb6eb43761d3117d99a1e44c4996787d286ee5776381557ae949499ed5ffb3834aa30585aa8f782aee707e02aab97a4749fdf26aaab56068b35ccbcd148db9b87e07174600338942ed289afe3cbf81df1636dea87a53a15e87456cee2c8693d2f727035e52d89f4919575c7843485e147c36e9efd0831c1ceb9aa70bc6f0dbea7398e924ca07fc682dbb2b9c419e693267c37255397ae89f3c76c6ce634d7113eaad6474dccfb0bc914b4d11371f4730b228dfe89a4b0db7753239a9959a3b250ccf43be6207a12e588529019e72c0b4f432e377abc4f29449c45e987bfa765a45ca0fa39d96014dc447de4ccd3b0a6e07def8afff4cae12af7673935771be3aaba37060d +result: fail +shared_secret: + +# Private key not reduced +private_key: 39eeea53967018af5d662fc53add5bb58667842bf7c88c5f684597c79950739b4b3e15976bdb84df8f9fab2a74e888a65a336b5c05ef57c3c86e6caa9d9a4e7eaa69f9b53a729d31a1dd78f2257522ccd83184bffc57790ba35cac0333f279f5e87696c7749cc21f9bf1e4e1fbea5049fa56242fe7feacd73e59cd389c7b90cdf40f568dc815459bde32ba3f956288c3d93aa36d26f7ecfe947d7d7a7f19c9d637b4d4b7e2e9c6e4456d4ea28eecf08a91bb2ef087143b8893abc4db933fe973c65cb1c76ef519b38e7385a15974d7dd4850aaea36f9d4cc7564fe96578b733dbd785d40d7cd3ef4b5b79416d63c75b863b5e488d395c43f62a72f68c2eeed53c3e5820b5190a94c889faa24f651974d61acb4f12f55fe7566b21418a9c7d8407506dae7456f06ace05cc4eed9f638fb4e7e73f55f4d0ebb554cd85b3740a3bccd2cb76fe57bef1b4892b86fc2ad3c6eae18f531b5b50e265ce6fed4e8479087639369cd91d3ffd87b1db5d509fdadba3c1b64dbbf7945dadd4982ac5bbaa342ac68e7b3a982e98a5e9aaf49566fd5d827b5e3348b31dc34af06b84de5fbc6d771acdb3b77b4eaaaa5eb7fb5f61d56bad24932531c35820943b1bf984afbca425d6c4b3481f98e7c295e36c7185d8aa4a22f48920719b4d525ba8148e142e8b179bdd19313bea53ec7ecdc7aec54662f69ebe66b74d95d70c698e7bd0ec50e248b347c6eb3a97a70da43f51aca3efecbe23e6f93d5df4e0f424578c6d284d74e13accc57bbb93ffd87db597e6c880cd794a94597fbbedfb409d2218f44c788afaf18502e3b7fed1e351057dd39db48352a7332bf4a3fee5f986364a0f4faac36bd6b8fb78c8d3571f632a0a49e6a97ea9fce7dcca396c1d57a49ec5b46a981f6ba316f28e721c4df17266121cdbf64a9a1da1e6e301d4a0728bdfd54570eaf46c61fc102d964c3c84328399010ff6910a9f309aa78aeda610cda4cf12aabd3dc7a97bec26337c1e2fc858db6be464fede76aca80f4e7c85ed283634b3f6e3d6594b87499e7b60333a1268e6f943746377ca9c5ab429adb6f37b845cf5a8b0bc52e25cdeca953e089b9d787a739aeecb70fdabc3b85c415b1d0a3630115aa4a7ff7a5d9bbe4a67ff06cfc8bbf909005fb9ad33a06dcbcff047245ee70a9fb9fa7298b073e3b80d4b1ca0a61d163eefffce2c784d5e198d540cdaa1a13f9c01e39cfaaa8645ed04a5ae1c56ea5ab48d36fd777affcdfc8965ef29e44f008ef40065fb23986dae3569dbb5feaa79b4c867be5a536dc9379d0365b00f9ede1ab9a981ed11cfcd722cf905fad49fd3fef39a7a80bbee114e69e7bcb3822b3c61a46386c19941429e8ece7d6847dba638770fd2831dc758496056d15b8fc6f0e96c25f592b2e6749fbd2d2099309573fb9298e6d1cbda57898ca8788f0df80934b4b60f4d584c365633bc7fd19edb45a644936be33953d4675c2fcdf70ecc8fb3e65dd2df36eb6eeef7f77f6d82f861468cc2e93da11d4e9647cf8e5cdbedca6f7a0cc83ab9b9d4e3b320cebe8c4165c3c3fae62ad5aa0869778b5edf37b9c135d45c689972425fc7ba7a6536b3d9f9fac2c63c29189813f55b5919861f38cb6d30845ce353dd1ee99503785ed6b43ac6dc0b6233b64265c7a794ca19838776a65ee97935cd4a6397ff99297c15b7ae7bc9ecf0ad393972b8680ceedc2ef4ec8ffd5a439f5ad337874c3f63b8dd8e6487ed09ce4a8b7a973f6a341ffaf81fa76691c6343577e8b83399fcea356b78d1f9fccbfa54cb79a31115eeee92e61578c6a07d5746734710ee8a65f69780c16bf600737be4b48c7c977cecfa3a67693023f8f7af7f38f297f16a897cb3b76850e544b974007c64be23eb45d454a25bfeaf854d79273ed78fb3ac537e12db6f22bbdae4759dc8247c847b5aa980dc05f7abf8f084cdf97c2bcdee414aab6ae26a276145cab54e2418d8d1d3d69847ba4a288a0192fc9aae799dc44328a749042bcd6a49e30c523f35f2567a34b52868e99fe59758338d10ccb7d8df3e1220335b4a555342633e5ea60b0b599e483787d34e77a0f82012adb35de3152bdf581d939423c364a0a34908e412d07738299cc7ceefd42de642d3b861c76e338a3568a956ec7a4b5d855733626b5164c8c2fffa56897a656180d96474d83a849634866a5cb0e6e00b8cb964067060df339cb2ea05fbc6021057978ff3baf47ccca15d90147473e8bab23693b6b70872b27b4a4c0730c5374a260e7cbbe9a094ab50e6fab80c32875c2032a5eaa8f2347c313409ca19302a0437cdea621da1ca0082157ea362ef7907fdc5826f067ac4a4a1e4b997d240c7d3df9ae6db528159402d1943fad6743e6e18b345ca2c0494d9bc956888ac85c021153b65388f04c456608e41361a6d3525a1143f610c21b2a9a7f5a2e1a461552904e341ab427028e567741d9906982e4b563d980b68871eef012f2c3639a244cd300cd0030bcf4a2b1db5101c1d66ee28bc3bc276b7e9922d0253904f30bb676777a36a897d35d381292915a82f9b2b7705380277916e16a137030198032b865c823e80a58c12ab39639488d65b0c80a391102cbcb4811911c60f618323c13a0e967bac6561483026c32348502927f70cb2f780bb571f861cdd5394296436e37737a8ac6cbdc42a0f9b96941907be3abb5e7740e193d590c862130283f0711665a85fff5158c968578781a7b766cead81633b6a2560b0a740752d83253a04c7f17b90b63860c19f38b78866edbb79482d8af6cb858c8a38fcf1c423f10cbbd9131ed87116b611a75bc109ee57eeacb6b2e1201e488c785b87f384c86587844a921701205979c1ba17dbc1519dc0908c656d7734a5a354e05606acf7901f0c7590e3a324c30a905b2462da7cfe478a4697601618bc74070a9e30707219c53b48c14c01a8fc745098a27b799868166c26f51a12a9a24c9faa336f92692c141961ba4444dcba2a370a63f533f87ca2b1b9537987b7b71043d5fd090300a7d4673a38cb781f833897e94955bba19d428cb7f71710e98901b3597467795a84487bcc5a1180482fea1205a0a854481719c12b11054ad3c85175a04c27011c29c387d0e571084f625a6f73cb5986945cccaaaac7d9eaa305c31535877cadf213d5bd25801438717dbb5051532f5f135f2f79fbd093864439507446b36f349ce4748fe614463917864eb90f3f36742f026ecf32e82f1cb90017099ec78380b5aca2c7e82657557eb66c2fb633aca3d99962ef8927a3f3c9d8da538b89525310664dc2889410465e90b4d078c7dc8f030729555756c807fe228623a37a2b248ba55516caca65256bbffaa6cf6457dba32336a71221659358f955416074ad0131dc4d186bcca317d193a91d12900c477a00490cc464a119214df01882576b41ad7b6f29b34dbb3b03a5c77b2d4162d985530c908b186b7e168c2ad69830302283cca078f5816a9c79add9bbbca9b3fee02447dca3ccb82bac0ccc385538208e49742da9616a28bb3c20568838de02140eee3a7e5a94a82563a90720c62ba2f32f05ddea552f565b4e2597b17c3b8c24168d4484deff79a25b82ee1253049e619829508b01a7891a10db5c5a532f4880c169a38c7a0c99715a2a696bf66b678a0349ef02c7002a5e5ec3db2c3647b960fe9a343b540069a6c228e024719e269853535f5e841f78922dd85c3052188a2db0b2a453b5119311747386352a437d0a0e2fa474aec0bdf1090ec169cf473b9cd153c2131b2e7e001d3525957a487a38c726d710a6bf6a1f0027432c53a56a96c3a1a100ea69103fbcca441a3f43002dd47714d397f7a3a02d0137a0dc060ea0669530161c67334b8965faba455b81a6dcb37c8d2ba97c9496c3e3bc984c44a7b2611b51794ee2347cc489c07b4a89e8c5c620221b9c98c08eb5b245819a92cadeb684b82757e00039079e550a7c7a14bc856e0d347d28861921277bf18932183cb9c40cb07d67202a7838b500df71b1ebaa87202a0943d982aedf41260b38c67e25173dbc67be8b33d10724b08611857c13870bff8c0324acb67f498b599db59515ca863bb1016e87d07b747efe8c903f50b3f7468053587555163e7f5165740204b78ccf2bb11dc32ad1cea844073b7d4667fb55b93bdb4a708db296f3bbbc511119db4479737578859075c320e55b0a5185552cb9426a69b0bd11b4dff716d5cc208e3fb46c3c4456cd63ef1d598bd675d55b1adc177790da6509dea49aa958d2ce9a9e6ecb19fe96548a88f7b489433147dde00139007b6bdca9b3c6c0eff0a1832c10a257599fa50200b167829bb34ee72551bbf3a650c7a34ae6ed516d401d89486d438a0515a537077561ec79e1a3963ab873d11d816550a4c1b14b584703531dd7cf0d97269125dbef3d73e443d017f57e32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c +ciphertext: e93751ffa496e521eb17c23e50a0f6760223fd2846317d2e479e6f78088daf421843d2da3581c95bf51904b3a1716bb0c0f47095622b02ed4d8a7ae681d50b91606b597fac2c506380b94600919c4d3bafbfcda50717f13cd2d149f6992e48390333fa9016604aee7a8680b6e20003f62d265c5db1248774abf9a37b47cb63057486cbe378767f4f43a1280b8abf9678a86ad0195f915d880b0ddb336924c3fcc135a7a34517713d5c43a1ad0775530dc1429b55dba7b95dc1ca7809b5e84e905dc12b47bd82289af59ef73ccaa232b34e68a2e1cf445f657fa9ba97dd8164e39937f19e5d3c185098683aa7a5ffa27077a2f2f898c91d0dd71f8a11c6fbec90bbb3777da4e6184b24d8aa84280d02ebc034e884d53cd00f1d7cdf5d1da8e0139d0bb23e02d82aa50c65067366478176bb3997e0ac5ee7d499aefdffbb93d5a809e68c2d36dafe9ddb1fde88b9aa682fd32bfd10994e4636005aa3444f5d69434ce963faa32092f0fb99e980b1b3e9c20d322c8dc3be47365823084740da3358ec916d9f73e4e7d14ed93b8af46636564e34302906c2056eec89a6d5b80f464fe052348715f341e4463d6be386f6a00c9f2195e8528f7874e802ef1a67eeda9f2d88ccb798afee08312f50831c7464d8eb9477d215ff6197dd0c527388ad39f285fbee3b7e7b3577e5ad8c9a3296a3336e20d0e488a136a12d216f956f431098d4851bf0d5a39a6c9816b793e02f3a0caa80b12d75a6d3b30dfa8ef2c5df0b7ceae707589b11ba925c389b91335b7108c54baf166b458493037091b9b03d4464e30938f40963c535ecbc15911506a392f8c810faffb3935d9d8ba7cfa7f9bdee26dc7c8adf4cf456455aa4a9fbc9923752d9da4373b3e4964ae8fc35d47db83884017105d83b403e265e707e08904ce12ef68be7fa4ebb2e394cea40f59d149e4c4c36517b4ca97715811d263f75f3f0fead99bb8237c1ddd87f0c97abec768b6778ad9d7766b59110031675a710e2ca58adbed88f60ab224f438d66803c824a597f4788f04d363b01993fd1d781fade7473d9642436a6903a4f90fe2c657210543ad430f380192f3fec2cde08ffcc8ddf6f06b2ec6ded6df90cecad837d216b8a2430fa202096a874a8ad599ac981851b3d2473e34cfeebaf6c80c83dce157e1d48dc55fa93486df68761a68cd4ac25598e7aa592176cb2c129afb0bd1605785f677ffec08ea09687aca6862ca2553ff6ab3b06efd9d95d9e85b9762f7d6c69765f12f88f5c53fd27eb2f01e4befa14cb806ae36f3e03279e63f9654fc6117939c821e95cd395233278f13a9383ce09098d908ea7cbf40601f69643a6570eca6fec04a20eb27c621edd89fe1cdb8e5a92ecd5a79f9195832126e3bf6a50d5fa01d9b6b421497d847507cf1f09f292becdf91857b8e5b3be40400095dc02624bdb895dc54c59294806919a370433cef927d816cb8f4bf1fd8d86e1b997176bdccf4faa3cc2015612d08003a1a20fd0af157192fa4e5242da1375ca707fac2eab67c9f9c8d7dd0cdd555e3ec7dd475655f6d5a02c5956c3168ad4c0c7b2b661ac2f02898594fe539e09c2d484bd179f4d58a3c2dbf64deadce93d6c5941a14b68caec2d6599bd323ae520c9e388dae37c28ddaa92ec49c725ada348b867014b72f9e18a3020dac6438bd35b0a5850fb9f60f2fdac1a7d4c7a1755c898969666778fb16f13621fa171efd844d89eb7c687d429e3e35eb353acc6aa2d85948527f4f704c4bc7f96ee8ee8c6110859cd798c12610ac35035ff371ef30e20622339805b8a09c8a10b45f32e1f67372bcf47c3b5c1c3f4786a01fa6dfd40a75859e60ad6e74b1bfa906c5f72c0631661943aa2d7ef701ba54546b5bdf6a057e4b4354442a8188fa6b2b4d316a59c3f7512266e145976ba4a0be6b65b6a70da0c31a14810f27ed51dd30ebd9032583e65c3f6e7efe5f6ef9b311e2984c94e88007d4e810c387135175bd7389ea96ca37b041bb0e1d6143b3f4df77e43ffa3a5e2b07c3534b774c2eee8ee2ea2b2f672a7fc40c73f8fff21b7feaeedd7ec5e34047cd6665a58eae2e42f9ee1b52429328c961449b1b712c2d8f3a637878acb02801ebbd15158c1c86ea656db183e583b297fbfb6a2f64ba68eddcb2dc61eab4cc180b0efdcee90dfab0feb0f49f833cb029f8a901cabf2ea1f7de4b8aafb630fd56001cd +result: fail +shared_secret: + +# Private key not reduced +private_key: 5cca6a37c37872ed4cfaa6fd1726d88fb9df4ade76be5d77881b53d70fdea20f7284e94a28058a0e249da3c36c5ad6af6056c4f8774af6343b1aadcf5f3a4c594489a653d5d3196e71e390538e41a735544b9ba54cf64523c39797153ae27fd087264a5bd8d4cb864c9288eac4756c4b2e6d6d14eee6369436dcabd1b3a33fcbffac37a995fff51ab9e12c28ade186e151947314134ef05679638e9ad9e47f56e7724ffb8967ebe92dbc50e0358d4ed578db4b88f76578196799341af1686c747b4763ba4dfeb4d5648cc83f7558762776ea26a8d1001e662af7e3a03b7ef1ece918493885f8e11649d2c7a8c5cd5ec639c5750c13abc126431dd85d9706c945fb5d747ff4c5456d6da493652be48eed81618ee6437a9c45e6614f76a5c76dfb66aeba5b3e318893bba3b68e3cdc368066dd23cfb33745a4acb3a8af56452c8fd1cc4fa0301c9a418483163eff60bb7d6cf7c8647cc7acf68b81959a8a6a91dfaaa41f3a679ede36d50d46d7846f170bcba2648e08185a6ab380246e58452f998988e4923e96bd649a8b735d124e35aa466804fabca31d84c28844c00dcd18d6c8dd0b48a006e239458f0809e3dd28c4b4b6b012f6cef86e740d97cc8144ec8029da0659380dad4934e3b4426c7a22255815646affde65f78e86db1fd6afcdb8428f8cd323dc5903fa5ac8d614ed7a85b599bfa444364a569496d75bbd7815c74b4729a9281c6afef55fe7737f632ef8e18a355bb89c3938e7c348aecec895da29e25af968bd1b496834da026bd51c496505a4e10e96547d1da127148ac26fbaf46f5094cf6577174586ecc30f4f34b9c6f6c593f8614bf1bd4a8fbaca56ae9c9b943a7d2d89f30f0ecaa6d6e35a0db33ee8925ceba22ee6b660ad9056e539e72bf0c58e5b448c70ba87f302b9cd6e7546e756a85c4ec40916f348c334c6ec74c23da13a146757b8b566d33d7b19e8ecec6acac9c579e5cc7e3a33c5da79d86a36b0e9b6ce2bf2cdd696e1e793f71d9da575e37e2b66674ef25143a9c8b95d8d4af1c467c1dd3cdce774a45006abea578845ed9f8ba8ff0ebb53436cd941bc7cd8df7e8336cddd8332d62c320696f3bf18944643634e8e4af239a12e3aa0dbbdf7a834e297fba5bdb4deb773dd1c2a4acfb7529963aa208dceba0eb716adf0ba1dc252bac2110a6da65732ae359ae4edd32494885c6a44874735d843cf2ac6a5e5f5a625069c0a49a66d8f70b8e5a00eaef93f0664f64594d7493f5399a3ec7afc4f4a31be6d4b04449c1c2e5dfc2f7f43778d9fe33f52e9c68755f926e46a508c8a2d7a448af4539c05b4c06efb973de7782cde157686b748cb77b36a95c459cf6de1da0c88f58a518a3fb5f7eaac68af7d89b6d884d8a9f37f9509db5cb76cc6f6236ddd19e1d9d4ef536d86f4af4e0e26d192577b8ad9eebc0860f7ac88426ec6b62b87301f9cb80be2d56ccfe8b9adbec54ffd23b02e57e284dbcf508c6a1a2ff13ff754f1ece95f97b0bd798d8ae8b44114c4dfdadf76e479d39c4a19ac674465f0ebfac92cd3d0fd6fa9464eb3460edc0f79c519c576c2037998564eb25d6e6c9ec8f606cac8f9b0d79f7ab0e885b57d4ac54cb14c6794a05d6000ec9e0685a9684b648b9dfcd8b5c8ce8f860566b2d6f6de2144f9882ab51efbccbbf33f4f8adcf57b6ccb9af7d95936a888e4e6e8dc466fc7a753c0a8ed3b3685891e77338034713b7c8da5dd97281753e558f8cea5ec60279a729376ea9eaac62dec6de3ae87c4ad3f4c75dde5e7978bcaa4e85deb15c10ff7d1720d67d26cfda778b4018c500c7368e58c550ab5825ffac4d58b87e745bf10e8e18a787a5c5694bc099b38d89ac7f890d25497a8f5f1c95d5e65a5d6e0c65678279bc3daa95b8fc807fd4219944c5e03d9315c69bc753d5059d003dffe8eb89a65c93ac11669247d59559fcb626a8b5b64c291f77f256583c0efa2372cbe80ac5705afbbf4fdbd0a55e5cd23e814c6aafd39934adbab22ec388967fb423b643bd56cdd3ba2b9cfde98bc8afcc33d78c9bb8e466047a6eb03e3ef94b783ef8da75075d4ed3a723094c461dd7adbc7b4ce258f917fc687e6346c95dedefa4d370dcd616c6e8138ce6c3854a955f393b9f66d2e41b1e6fd421eadf9833e2f2ba9bf4f89db53e7cbce69cbf017d8e336efbb596130b73268680be4885255aa6353a39f04740be2c3910a9ba91700687088aeca7fd4a37feca45bf29a27824babb327c49f18539ed20c1755983e6b1e03f98f8610227362c9e12246d2176ddaf48dac31955e59a7d69a8dfa582f8c66b14db7259e6c4c63bb88c995a71fc44bf964b1650746ff672fc2716528741dd8174aa2326e21f025367a0f243ac63728bc6ab95dc22a9632e18cff13cc6e38a1f4a0a542259d41db0c1dc640e8735dfbaca58c3c7f18e39c74641d477099ff1ac96c924e366b16ae423de8bc9610c855eb686e8d9301f2c08e96e3a2776523ffb93cfa3726c1d03d0c2c634f1cbae6dbb4cb987be8eb464190056cdc29a7651c79773b1686269c1646a65786f667986e7a552278713fe5c5a4f9c23633c467b8b63b408c4229cea5f5a0664852729a7474695137c0961783656df45277092226e232d5eb929c8bb57781cded3b7d5266bf5c2ccfa992bb9d8b59746319e6b5803d00a84e2a99989c08bc9726783389fd506074606a0945c7e3e22500d58fe3a647213b19beb6174c72833dec8ecd036499e53b0a18a1d6e471712a1d64a903b1f3634ceaace56a906a1336c9d9708768a6bcb9cfc036ac22607810457e8560561a38c5cd84c6ca021a98c15aadc47e874778a81423d669ab411a72aa4a661deb2b8f4a06600baac967617bfc5dc8d12d44d9a7f80b46d9a40b91a66e3cfa0bfb5523c04922db21c4120717b436c6dc81030d13b867e707b9a3891791c756800adb41cc9a29260d98202472b733611037a98b454b6b5af423df236dc079941b160ff1c0b8ed1b14e787898da354cf79ca4fe506d5742b58141dcf624964397274737e4ed1aacb76a92bba8966ab24741163893587c94cbd4581bd0a110937946051c572f2232a149667794812039ba9e6525a298531e7479a161123da95b83ee746dcfa1d880130af080fd71480a4d51a48c48abcb62d4c7b44b712bc0ecc4eb53a929a1167f3c49be7b019002679123348af5b7ab18a36f86a23b309154c5307b003966c8755047718b32649945c7865f123ee60198af51dd591934ee02ef7ec218569129d03b76e9729dacc17e4407eeaa4820e238deb307d819528b932bbdd74ac25c0476c037cd8200ee9231533676f3e1b11a6fa2511a3160f10b26f2cba2966572450516be1a39ed8bf651b961e58be810bbe83957037f1671c128f91f302dfe1103d624b97b4c331db624fb354178047ad4b909ba93211908e35014d896144356c250df2248c5487ea11b329214b4c3b2342e64244d684ba914e020228e0d9b5b0283b5c96a22b510f31974843b21df48878652721bfea1b38054ba1b39ebd0a03746ab5d07ba3d80b5be050af1282bf1ef87629ea0e2f9a272bac24b7d3b464c182a8032dc2acc0b7ba3482c5cd7c0b5199522634f61d553534020671baca3534193b2a9585f47394aca1c8aff24c05a7a8b0f59745e56e12321fa1a7b38db38de3485f017626eea474e3e3c1a6bb5242f26de2529e517928e547423b79cec6452f14c17ac403c0a6e23d25d334ad07aabd8c60310082bb4a194d656b2e2b64ff3475fcc9226a526867ca7dd03c75351ab921eb35e445b144f4a7e743acca85372a03c4cad754f1d788a1c919efc198aef95baf7768dbc94f36d5a37db440ee403b9b8a339bcc50c0469f51681fcbb294a042147f895d9121701071a6ae8b85b3ca4a7f197f06cc5ed4e40c5bd1ba18f76a8010857bb0c3f8c15ef8f89fcf22afd560445c8576b8a46297f1cbf5896232040727eb40b78c97099a09eae192803bcdb153b7c9918b8c66a3e8ccb0a928b2505b3034886b452bc9f7719246d62ad183a292a75f4d6715a42153b8f8656b2c397428803725bd66239587506e9ad5694ee0592918a14346cdb0a9117b7969345bb11be07b82dc4361b580fabc4a91d919fc97251ad1a69938b507e066cfa6a251d98927f2bf2a9806163c07d1a96627265776105126e5ca5872c61e4bba95220ed45124e76b334df40fe0cc4f193baf6ce69581313616c0a9de56824f007d65692d0f675aafe086b6e2621bfba18ce1adc4337553c81b92ca4a9a2c9712416a168a7a9fd06450589641e952a96b122b4c4bb63721d6e76201f96e7403a908819bb61864f9225185678741da30f96e7973a83811b94c50bae593d1da6d3b306bf50669e590eee255b703fe0b2aebdd29f6ceb606f15213da5f478ed4605a212f52358e2046d5b05aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec +ciphertext: 3e9c6cfffce759668c9ba24ab80658675c29e84e998e85c476cd6854af0964756021a73b731c075391093a652e118d97f33128fe1fc8af0184a7db5a9c9ce619133154b530b34a32e1bae01226994aabfd137ec3ce15f3f83b80c78dced99d36b689e94c39e740b30c3b60f9df1980d0ceba60a721c171030034c8b686b8ffb86e14cab112da3b734d6e7f402540377546d9f46c90b52693986293ba3e96e570ec9bccac78fd3399c1a7ec2bf01492da9a54df0d106b311014af8ebff9607ad85341f31f8f389f0f780a24a84bedd3e62e5ad282c5520a7a58508f32241817ed1d673c344fa35e2949b50e5812cf2029921d4e673703d056b5a99650feee6d77ce424003fed4b0583a0b9e7331613d566399c244b2d497885cc4cf7f067cfeadcdb1702ba29d1407ac4986a0e29db84866f003f1d3f56c01a42837167ceccda9b6afc39b8ea1859d587a092202003fb06da60bc4928ba839544954c1c9bcae5b93dc808d7f312ce500ca22c7272dfc7a75182c020b5004dbe76283bf5561bb5c0bec93de1675f2e299d977433cf601b46fb52c4f7629b2a85a687a465c16bbea40c06b36bafbe2bc16bb7bddd9be6b4b710fdd63bad9bd37637f46b3d4503655cd517327ec5e32af5faa3cdbc0a83ee5fde307547b80a5da0a047945542b768add53f4d159004dc826b7469d944e802461d2a9f04857ea16b29121fdbb84ea84b1cbbb5c3accbdf7b756be7e01d25530a315848d7c5fce23e96054a5c253d4ed5a3c218825b707f97e9ce17a6e5d6c7771085eec55068f2c19591aa2324d0ba0b2cefb03fbd8d26c7e9a37cb9aa7ad69b782405606f32b80c47e54a563a960d2e75352d7b4eb4946b5e744621d62e80602902380aca323b31e52c013af38e3ecd9bd47fc632c2dbedf7948aab5a10bf492362a94eb8bcd4997899e7e6a888befb98d618327dcab4c69b25a7cba0c8cd1b9b675bbf0c051bf1b8bc1e88785b10fcc67b6bf0f690df552c2720c78767b79b02355a19c56751a007c36480e3cb90b9d91277feeb13b437b35b4ab6325113317d0129d85a386533dc8d53dd3bcd38d93cc6815abb1f30c1a3d38544e8ce0d08db592c5688598ee73eb89402b2966d736e728b75e6ff5702454b31f5c4b68c60cfb64bcec551b92d922b9a418c12b021e847021dcde19401ea9e277b136f9ebc4e066935c45280f546c806ee6a2e5d38a43f64bd467ff41aea502ca82a5cca6d26a9c688e23c0543632513279be831a342b9c00b2518657059e0992beb4267aa2a441bf252b01a92e65269288cadf6bec7f17927f01cb88d8b785baeb4678c16e20aab4de33a458356ed74471507c15dd95c97377a08485f8ad20eaa450c65e6620c40cb569f429dbbccf46d5ada1ea1ff01dd0a4cf1aa1c9b94490c0a216e1e6df250620fbf705b706856bb03a645709d82cf3fcf6f840f98b3fb4b8161c06b8a1ee5ff8360423bfa725641fa779d3f24f40c8b348f68563dbae52e3ccada99cce8ad681213c046582875ac027e6ddc210636fdd68d3f6b250ad9f9c789b76329c01859917f8b0f10b5ce451c821f9ac8c060fac028077aca46fdab43ca273d98a004acb81976ff47a50afd625d5122c7cfca554048183ddf5e34342796b17b9848071359e5722a5e4bec026733a57b1fe3ca8f5af95f3b7674d38110bee4d2c0ae39418c2b6484ac676cffce8781904cf3202d9e1767599fe870d1856bd52ba4bb1d34bf623cddcc67b9f967289b02b09ac41b55cf3a66b1e5c4a972bbea1494a4377cb0aa1b51596c5fd0f874bf8b2acbb5a0c0dd6c7c41b8ca66def9b190db9afb1fc24eb91208ecd17b8cc6e4f563c7f7d81c6188384f09ad34f8c3a6e1f1a592390780df959e0b7ab7cb255bc8ee1df237b361c88001fd1606bccc88942cf7810201bc62a9963f8bb8d2ce4592e0159950451a4d5aacfc1aca2cce03c54bb1fab96cf1f79ce3195181daaef8c527d504f5ed6bb29efdecea74202c3a7b9bb8582abe579720226df3c953a8d4d19e680aebe1536efab43379f36c215527dca12c395f71a0efcd74c6f2be3979b45234e3e16abae1a1f559470ebd9217050e6d635dfdfc410962e611917832575e1700ae85e6c79db04ffde6e7bfdbec672e5620f70d4ad86bd0b12c65de71b4dea5dc97d00e0c51d3c7707360106da1f7949fb7d706a97594224c473b77c699a +result: fail +shared_secret: + +# Private key not reduced +private_key: ae7abea38c394ed6eb08f8b73b4fafe3acd510a45e50a3c3565941c54332e613c5687c6b7f1ac590c7a2472597e43ea2404ef2e1befa8688a9da75eaec23e981aa6c623aabff1b682ebf525543afdb53b461853aabcb955445e78d9939c3ef62554978b998aacc07728f29a6ee7c54f34738db084c81b6cee59e4b0706ae0ded56eed5c9795ea0c96ea9204f938678ba9383b4a8ecd5157fcd39dfc85de9747e9dce0e46bb059688cd2cc9083ee87f56bbb695c43d6e651bac876367fd78b4d14eb4e06aa9e6ff378cab25e8801455693e75aa75af0619a6eef774f25568dd35cbe41fb80ebf9ab007ba079e82a0369d8025ca8fca341dfb99cdbd44b1ecaa19979958ffd01b0ef7e01e59f13648bfcfa71ac53a8cdc957b83ec09d84249ec7a53b3507327b1fe36bb79a7668dacc9f898698cff96bb078d6136d3347ed9dc29664635b9fce33005d7d4eb45e2df2c4ab3e633881f6146a56c01ad49555e6e386b554eccc45a848c8ab79513e9a7e2ed692315714b39f091bf81678b70af0847d43eeb97f89cae5daeeff5660bb6f03037f4eb34d3d5cda8de0e5e747fd77e0944da2b5afbffba08687c25e491192659e483631446d0ca16441a678c7fc4da77cd8761ded22486d6f6eef8dc1ae3a8a86f7597f5d52d5f1a2393a7479af603a2f173c842bf7b5109d933363b87e8e34b9d4dcbca542f76caeedbb57f7352302f7f72056390939c11df8b52b8f4ee7fed861c808076d4730deb3d79fb190fa7bceb5cacdefdbdd649724ff7bf9a53f90e420c14f1cb48c3214755917ab0777d9232af7dca46a2a603649caeaed077960e5ba1d44bb3f2bcfc0536b8dee5be0b7c68295e553eadf939a775d564b38aeadfabe4f9e105aba00433527b3ea6f847ee8ce66769df96fb7c502d83c2d540582bc79dfc3e8829d5b9ce6b5ccdc5c5c468819ffcea44dc960d6d80b475d0485c1539880e5f98ff2de8fa4df723d5b3e655e5851364e8269a6bd8f4c66fa29d9de806289d82389945a4974d16865889bc05e4ff57ca85a6499ff0e5534b9cb8041cc0d503dfa83ad4746b51d834f319d980d284e02b997b70688f640e4f2b473f14b344d9dcbb08d4d0355a53b923b7a5539b2d4eca08b3e556d3fc683d3449bd88a9ac95005c74385baea7bff7cd535be3b58e97aca21ce97f89e6c635de75274b737c74a8feecb38bb587778bf7ca47fee6c44592bcff556e8e77eaa6f11342df7dad66ead80ff75d557b5e052bc4e6e9614f1bf3c2b9a13e64d637444585b8ea5f9db2c1178881ca41a5863c4504f6653dde7f9b82222430e8be85ffaea5338afbeb4bcd059cad0c2e41feee3060ac4c2bb4b87ccbaddbacb43ea9bcd15a32e02ab9446c7086f64653f45fcb9e90b0037fb5eca9acb9c28b757f177a9ef74bb4ab8cc527dfb4074b99ef4b6b3fc85cbb34383409fa497ad43a037e7e4ceeb723f3f5cb62a57b3b7cf64d63acfcae9f623adae95a43b684058f3437e3eb76ed78a59ba2b57fdd7a64d2643add5738dfa57e576ae1bcb956d628c85d16d51109740b7d6fb659f03eb7daeeb4cc08eecbdecf645e36e3b6f9dd5b1fb0b9b8ecba4e52b106cb4d25830af5b76de6ed98bbb9a6d5cac0de3fe0be39aa0f86379c5aa87faf1d1d812db5fb582437b654366505f3aa7ab8ecf57e5854f9cb74abff84b9281b8fe0fa540f64f59a5f9506edbdd117a3550bb1fedff5a35da8781ba42d45a481e74de5598f4153650a4c85a005901a149c47fca69f1b8ed039884c74b3968fcbea46b3116e627368bbcd0c4de55a593077d274b6bb33a737c9b376144b81c16b9b2339ff2d15cc8a3aada3cb7475c3425f8334fbd474a71a83ed957954fac29db49983c8a82b04f0dc0e88152c5d20c6a9ad9bbb8f88693636ae00c4a61fbfbe93f95a9654ea9d7bce5b39ea56e9f640c4a22c1f51ebe36379954fa4a6d5216756b8dd7944ae76707af0f01362b975d1dee8e0ccd7d9f54aa87459e1812cfce4e6490d6bb5bffac3f077f78755bc8d57f68a8fdad0f98801c6f55bb399ec48f72bd5daeda5d291d47ed97cc0cace542944afb7d3e3565c414e1893463faea253dc2c4aa9603eae44c4fe713387ba046aef6fa3dd54e6d004d81ae6541efc7f827d995e376c41b57b729fc712a9be8945cc28753a4f3771a68a9000944d726479e1a79d88675fa13795fc086d79f82ea5dc7e2da5ac939a42728963bfc3659d50345694373b877b0504a864247addc746e98126cdc71d0e3b0c7f457c046ac8b8c1458ee70c82905ff5183d890845b21c66953c6402cba2e329886ad51a92f7c673995fe255bf9462b2edcc899125b1820125590024b6928fa0c79476ccc407312664b83c9c59a806989c3252683b139799561708732f57804a96c0b58c88cb4a83a1271a05a9a58a4c187b45cc893b9621e8c5543a02221efa2617b0a42bca1880959e70496cd1452d36191dea226b49f76418b1a44079c2d6392c37a319ca007b65f57743598f2c40a68dcbb603f11cd32c368a0688343a25f6a348c0b260b1946abbf15b3c9ba0ad1cb302b918e4285870c9444118598ad60dd6030c45f33239abc79a04a05a2cb8e62128a3a9ccb61248f1021c7ba5751dc60d50919862332bdd0bc371e4037063879fb5bb22290328c9194aa83716316b7747a5130a984a249e2e124ea0eb67396a3197fb80bd672c6e6cab6de2cca2e3ad70d5866fc878dab1cd654729ecf9ceb733a1b81890cf51c2ac112a52b6a4122c27b86cca81089afa1361c4015abe68c62d9a11bb10358459882f58461761a7ecd3b9b3b17e32a682a389c4328bbc4aab01f44ca93f150e72678160243130555ac9e964c784c33943b5ecd07aa8097be421b796305f05e196ae166559ca5c59a445bc98092be1182f8000d5c39b7c074e016433235aca94d7162b853e45367d42e1604b10702cea82d9004259d130ad5117ca24c6ed411d5929c3f7a6bb35cbcb2ca6bf08c06d1a1cb63aa54d4164a838173b82b45523e00559994e8ff5a9cab63c6fc3266998ca8bd5820e7b16f8f86ce149c355e49451c89624b4b1f2fa7f09c5a15bbbaeb6a641d561830ba25ea470c9d7c397499c9747994bb8818bef9c1ef7802fd6963dbafb6e6dc5a3ce1509510578b96983d08c53c9384e45e6a5bea7c943d11c5c46cef5d0566c4c1f99d00079b0641636bc31913034a134e7a4b0cb959ea4662be55157fe89a7eae1a976f30517ba7e019820984115e5ec2e7d00267240695f600b2eb4181adcad96c7605d5c750154a41124c6f23696845b9b5539ae30b1564bdb2b41c09feb96b31b0796fed8503028af11b02e68f342e3210845525a52268a1b0b4f7648600b455c5c824c49e2972371808bf572017331cc8bc0e11147bc10793e096144a4187b196abde288b134bc54c5b3b85312e7a9bb90135dca9bc7396615ac979de9800c26057ae3064090174437209ede210cb2c733302c4ae9c1ac1462024d54006835ac3f23611d1bcfc945a58401c6a6da42242983f4e712a5080bdd13633b1c98f32835f179a3d011aaa46b9b2fb810dee9495cb4451fe0ba20f71992a445e0c16486d06382c8cc4051647739762257a00d80956475b4521493df79a28319c2c1338c9cb3791980785c2a1ec4a11844b608a7c7c92b81015534a03904cd5a4777fd587ad8004b61ec40bc9aa7a4268ef445900522759cc5057baa2a5729bcfb3a0666126a90d56b7527c32800960d9586e93579eed18189f0a762518125a4317649a3c1883c6ed8b047b5444667b4d53ab5d5b952b10ca1b8aa4ca5e438ee3c2e79c2132bcc257d8585abb609ff870d25826a67075fc38c32cd1c6d78e56a4f18cb59c756979331f1786820ba297f4c26ce251c93686506b26805286cf5919ab660092e6c1825d746c8c9478b408aca024376233ab8c287d709d02f7b8c6d80b4430917fe546ba774482b9b77c20bccad85355f562152a1593cf2bbb02014df47b29d1ca5c1d300445cb4835b45bd59b92caa1cadfab9986869f5a7875967981f1267e615180bf7952a27ab3527a60b130d69e155ff88410b1a10a705b14df248cca801e3b7610baac9d92c75e4c759cf7c8f644b610a350a9a9b5b59eb798a1cbf42d02f211a27aaf05ab8e19baa600f3babca5d82c9388466c5aba81c32a7dabc9775e73a77432f9b96225db1698a2c7a6c9b6949c59d7796758d24c41872802a63bc9723b17f703903c84e425383051abb07e94a1f19a258a61c66b56f46cccf68fa4ad62c528cc1bba2d579913ab754268eadc4204b887bb764096783301fd30ef9d972acacc01977d137525d619df951b0f9a5008bd9cb4524c5ae7cec747696489a8fc0ef65c68e808974e356659cf3d88474ae8af1480f2c4bf5f053b0a8c211d43921f735e63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab +ciphertext: 6b45b47d66751eaf9909cd0edbd820b9990a7fe19e758d8391c34f5839c9d883ffa86690b4429fd944b2ea3242fc374b007779138a8148c80349b13d098bab8ba58e7c06fa8c7f06e681402dfc890421cc926b7b6e1798eb43ad3e65802b9b997a85985ce8abec4643de68dfe0aa48abaae4f1a91df524608cb6552019cb45a5c42bdacec25bbcde3fbf357258dc908d513d9868a5b8057b12a68086c13aa259c5b53079bb6790b52f7fb8f0e5b220f8960e337f1d60f72819551c9280910e340d3a60c653f384d9dfad692c84d86c3921f427b396a8de54c846274005115119ad5dde417ae74c49dbed1fe8b34eae4091f2d5b8316f7015b74ca8f18be3ad970a99860da876a68fba30375e095fb96fd31d770b290bac3289692831b813261d357e176d39c4e95aefc2d476c2bd03c85e47893e6d730c57f463ceddf1b519f73c56ad3fe2e8966dcf9df718d0589b4d6c78f74c06d0f6b0e3a5d411b00026e950822f90dd1bb91bcbbe81b18f694eb115ea5b529aaae5837a3203cc788b1f25f5712ee61503a2e433cbe61b5242f97c8b9b6ac3e9ff3d50f6240b486f7b127d4ef67fd7db5fbd37d6954ca43764bc9e93e6895455b3b97787b867d47c3fe58e9cbfd916bde745aa799f6c624e66b9ce6409343844cef89a72d50885019be04deb1b5fb94cd74e3fc04163ec07d3ae68e6109543693e6ebcda3fa2921128e53f13536398b0a233c82b31c66ca4ea913eb54402628a1174bcd3212eb460006b872fc5955a998e20d05fd8861e296ae371e84fb3641caf9a64159b9e40b140d9e676c5fdd40f1f6b8050cf2c96a530b2e7752a6587144ed01b585f8c6da4802a4ccb0444fa9849f49f5bd02acf084063639bbf440e14da90f0ec5ccb0bc3a343a6edcc5416907a78ba52ed607747d431b1ab2aa2a166c75af9773be3c10e30c0354596cdf55036de3705c541a0e776e5c06079fa77790da400608823ff5732da88a5e0f04daea35c2ee37b2e852defd3ac53cd0bd411206eb6172ab133d3864170a2185bfa97daf434b1a944501e278bf9696cfe7d5331ab222fcde6237c765336d38d1791bc6f94364699e1fb040ca99633d107998152a78b918e58925fa510174cca3eac4db336ea9eee5fcdc4bc637273e221d6a6a23acbcf63b90b2f12f776cf1aa7449365695d487a7d9d1c84238556bc5a1aacb169f0be9ad07d796c7e0065497c0dc4eb75b00afc7aad3c14b145bc1119feb43a54c00a79455d92bfeb5637f55507f6fabc9643872423a71c791568eb5cd4de77bd5dc3bbbf3fa866f1481d87866232a30f8d826dbbfe440505a2d72cb314d15a8831c21ed690e51ac7f78b2c8ac79e4c1b0b8df49c1b35799d1f9f67a7d0603dc7b7247de7db7c9b3f1fab9555a8b45369aba7111a3cceda4ccde002b225b2b9eb02a0291672fcba505e0e2c7dda86a41fccd3ea865460c734778683cf73cbb420e0bb0a6507195c45691367442a823d0c74c36ad52e45cfe3e458b098b5a535dff6b90d74247ae425f22c4148ab53085ac3165c63c689e7d09d0c5e242b41adab8d295c7a01bf343221b831cb7915d2127b076c96f161949096424790e2614b73e6d7b107d6628d012c8c6f7de8c4577a8b8c67c50099595c104a13012c33de38cf7db732dade0f1cc6da14e785b104ba024920222a00b183f1957ee8a11b121aa624fef83d80e112da47e80476bbd73a03e579b4fd821525ec0768d84cf9f1e75f09852eeb3b13df721b58d174fd06e8f0bbdcbf8dd194d2a5393f22fc7249448050f29b9b74c044bdb8aec832ca049146e3c4fa06c0b4e699f5ed8a3a0f630ce91f1091c827dc7d790db09d2e93768957be071e6c9dceb41a26916b6110586e85d75fb45691cecc84022e0d49da6cfe5d178e798ab353541bfa947a2ace7765163615947c1f4d6b06d8287194d08be3b5708697cbbab8e2a875f3f362c20ad3a92260a80d1a24e72a0392766b5cd759e246bb8150b397479d43e5a4b0b568786dc50ff13f5acd640e975a89be58dff8be1197e33d7d0a0e10922878c7377d09402e888ba06fc11e0e0cbf5034b5638a7b043c097d90898272ce306aaec09610cd2cb0ee870bbde1d92b6d9cb5c46dae7e5e2ccd08565f6556fb2a442fa74b898c18705d82f011a50e0dcf96d14d7dfaa7602d56dc53b54f907b6b1feef5845a5b27c2cce78ba138ff +result: fail +shared_secret: + +# Private key not reduced +private_key: 533d9729384894d97de3098b746aef88166013ec7422c3eed4ab74e69c3b7b094dfea8fa7db3cdc5d4aaf9e468d057eeaa8c8aa3148cc3a49cb1eb4e4e5fdb497b73573a839824d32f655f87245dc6acafba7df7756dd91946ebeeb7b9fd4688fb8f38c9dee1705e970394c39354a3931fb95098e5df0aff884e6269c88def88a639dbeb366dbae168be8249e8afd8af8e4fc3ad9b43ce33428b7be9d4038cd13e69c06c773beef95fe5c06ad97b17ec93cd639732faa7b99df9ed26d652a3d5967e9e5c7344210f8d60d6e80263c9c7db51a2bc5d53bf32d0279ef9e7761c1a4579bfb2c21778cb8d6deffe8f9c8778f0c5f04d76e425d3d23c55ede208d7c67436fd2b7e2f0fd9023abb81f87667dee7a78b696d65630b1334ef853934a39d9d959ac8a9db674534268de2796352b0b4e309bee0508fa09df85aca35e37d597a34cd88fa4fc496998a368ad8473a49adbfbd39df7b7bcfefe80959f3bcbcd0488c5bd4c42938e55ce5a91eaeb437539a33a34ca0dbec4d1795418e6f0d063664b599fe195ddc777ea8836cf6dfdf8ab34e3c8c6026e58e8b13fc6c8fd324a882a66efd502880b4dfa3df38cf5da7c5fef955524b451d5c7ff24c926d0382536cdecfea73b4e736a25957c84d844493f4fbe462fb0c656b074ee596abffaa67b79fb770e734f56c53a97bc84613dfa6ab726ef7d97a49a64f098aa3c763953dd1c79991323fda4785eef3ac3cd739f38c77ef5f05ebac99e01b87fceb1ee44e4695116df103f7da68bd8dd968b218189346a3d37f653c845579e25c5be3196e180447210c97a9b7f4863588d5f38d20a8c5123a6b2aa549d50a8b03dab4536bc658c8b9d8c782b4fdf321d9d525e56d3ea8cdf91a7340c88c8e9d426414469adac2279fe4434cf3cc078a12c5bfd3bbd79db8ab632fcf6f47c005fb84775ac60b6d6e1b56d87ade9de06e92941e3b80598e87658a0268f4888541c2246f9397d271c767f8dd99e81ff7ba7d91d0d4c72b1f48e47c80b9abfd817fcfc065fbb833f0a6bcd0f14f32c85d50afc9df4295c98cdcd9414b40288fa0ed168d32cfcf923f88e67f45c8ab998d99b16caf6314dd5d51ee56170adf3baea330ff717ac486ae7fbfa679a5a64ad47983af1b6544c94d5a4513af233bd0907c935f3b452619b91ba35c6f6f97d5f4abba8ea6654b425f7efb431359c5b861189a6ecdb978ae3b980484dc7ecff013b39da72d99d397659d847e7c6a9121a9edb5abc317c8f87f2c9f07d4bfd9c3780e29441865458df968187763b9eaa8c3c99c22976d7786df31b5c36a9e7249a78875ffc2277e446d289f996ba3905f35152c366bda9d50f66235484df4f6b0b9ff43776bb09a7958668b77faeea5384f8395457873d6be96868ee474c83d969d44edbfd6976e9a75c79094574595aec70afeea49d202dcb289f7823a35ca7973f343c96e917ad97e83e4f0ddd27a9d47c3b6d8b638f9d2669fa7fda95f594533e9e0ce6594e9b8e86444bc6826541f3c834a08e3a39afd8a87c8128837f68c93dc49b6658e3511fc64cafa56e324556b38d3e575d3db153ecec99d274c889227bfe8a6b4ceaa578ad37684984a6de966b0f9cb884dc7c533f29313daec6c4829cf9152bcffe0bf9ee8d7f1731d5365b465d1bcc2c3ad726989539794ff2a839467e49a422657d0fd6e242dca5687c52dea39470a8b2b84710fcd5bb7cce0e7f3542d4a9e5e2a377dde5d8189a4523be07c866ebc4b7777f6d2fa4a46981339879534a92b679be67de86fb2b1dd7a3bee44353fdd74acdd3a556295757c748af48a4bfe172a9f7ea35f647cfc2bc3615bbee0ffefce89df4ba8eeff10df4d209a6fc44995ddf957ebd8d014c4c904947a5c7a58a503be4d18a9451ce0a4c9de93b780d17c70746f3296d6fa3feaa30b14e4e1c8566d65b95a7c98890b36691333623dcb5adcae604d518325cf2328680d9c3e430bbb2b03f854235a4787f80c934d34cfbc571a637b965583678b838d779ad6a2ad9a65d849419de930327b5b00ebba96ece40a3d8803898240aaeb9b19c8085a3bcabfe783c5eab266a996b5e2c4ebb551cdc871f58332839ccc0fa6b25d9a89f43a54e3d2c865463cceff5d87c1f0989322c48fe29f7aeb2df9e748593995a8595e4bfab5cf19743430a247522566196826be35c3ba55053ed8c8ac04211931a38d5a100c7097059bc058d551672542a8f1a7ffe81e0c43b1636572f4608dfadc72f9a786c4c2b2d27c576d29461ad56369b7300d3b0a7890ca3d8407a8a1a90f796558843202152a7131919d9417065360440ab8516909087b2f4ea408baba0cd5c0af2a85634e88693b8c121dc8121d462650f2b417a0c44a5018bc2a70e68a590b757b4c0ac70bca25923049fda10856f62ca42701ab9a75d9991fe3d99856138112ba4f52da1166f410e3f15baf7c3062563dbf0626f76c4ce98ccb1f238a8870201654a6e551a5de9cc24fb36dff2334f2f7bcf51b8b6f8c2d07b4892a657e58637011624076040c02ec59924916f5e49956534b0b7a746b16663f33cef4440f2eb5be9fe4034db153d296a86d83bee3b08ae5341223193a7febabc53956049bc1e14819391c5be5e216377438b0fb56ad770335a97c8e574c015c66d99c59325a2edafc7a6b4ba77fb51050a2c400d754d71c0fac84781af78c03c094bd800fe25b7f7060bfb4252643d97ccc6002a1568d4af181e992b1ffa8cc17bb835f0b2e6b72026478729275b002636cb49c9edbf4373912961da0b913e6cfc1959b80e711cea276c10158dc43b6887042d8d58402cc54a671275fb49a7920c35651aa4d81aebdc772112420db0162b94648ccc519e369958ce40adc90413d9802e621b6e8ccac13d846151c19c6813259c5998f40710f3162d006c5d3a9b2d18861789aa7854831a0314eb74a03b84921ed73ae13db7298288ccec07eaef97716d14a8a296bc3d0b95e4a78e1fa2467c6ac961a73ce63085ca1a4b101adb7f2a4059a97a24bc2dfdb6115386de5e95486a46e6697a17a88510c97a0602205e008088d269082b2c1790c02912a9f03383a94d2127ce1a0d7f558434a6300513a14e2c4f6b33d8a159a06d09983688f75265a84637f07846f0c47441bc6a6a8e48142b39b4891bb5c321c8bd307dcb6326dbb960b532d88f08f8a299d914824e46189378c635cf2088ed8382fbb4164d01c867c1f1c4973116c3629b3cddcb40b1832a0f06b6d04ec8edc46205da3b28f50bd1730bbc04c5f927209a4369b878596a2e149767139e4a06493ea42034062ab1ab037728908c07f9bdc820495916c9114f7e95683c945c19354dc06c5b7888244ec179bf88ed4e68bd10483918bcea652446b7333e71a403e97446564361b5253d0b225d4155682123725f61ed5d4655bdb7891c6572758977f0b4e8de021e832ce6314c25e82392cbca5c794cd20241b87ec87a85a017774bc3da18e77e0b53a521b2eb0a7006b35edf5b0a85b44d3d78dfbb476861997714330c9c5ae5e0027d7298a64b62f2523670c618051629c9577abc2f456eb0ca33fc86e94d910d186144be3a886230cf3566cc09c2ccc76719bc349cfb70c35b24ea6b4bf1c0394527a529641a2b45b60da3a976d70012e48b5df60a7d8382ab149760cb5579f0673f78a52c01c8efd1a667d86635bf15035ac32805b56cc9a1cff506ca38b3df7a3b860985fed84b2b4f1c7f3a88122630f438c565660362a90887a9cb55090cc448c9088c6783aa890cb51ccc3c8cc7c097d59808f06675e1e826869abbc0644a612d471d5c106214abcc1115b106ab3405b1de14c664a773e6e5667d8177ed736a967710edda390f0b105f9c5ba3a2a61912a2414397030022035c533de16c634a799f2b72fc3112071e7aaebd1636a3603971020e2f90fb8113387ca17171b39104595e5500b50c99c37aba1fad50fed567d5eecc00db3ac14624675c76846b42327b9510ddb882b24be90c9661f5c46eb5b1991d25920c78f35807ec55ac2827776a54ac4ee272b469ac65aabc6ba199dbe33724e5866e24a8058d5908e30bf54325745907752d324490b766f6672c4c8443ff7647dec597276135a4789dbab39355175bf3a63ca6a359a879d648c0b388270680781d3e732efa5c85f1c020e4384875954b50403a4987ce54a6f24c83e541491b7d144012544b96b00b933c51704bcfc2b20ada6c481ab32d555898174526a266f70b7939054a88256a59c95a0ec2501cbd45f0ff2ad418b82ecb514f7ebc3fc33647f5c43c5026fb547a33bf2642c9279dc39ac6012a770267d6c947324c6d45b65393421bf4bd7068abb93ab3a36081a303cf37b90037749a046d478b6481b87d7f462e656db85d6046534ae44d82b1cb737a0194eaac814c7b85493fda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 +ciphertext: b194cfcd01263bba40476580d27f88b07b884d31221bf0e63c7951ff897d292c0fff18238fb1c563280953dd81591e55830ec1430dbae2c77a8b116679a80cf79d651e7ee9e820ca0551511f525df28319be43fbacc67e58e3617852e7fc9933d49826837b88f18474a71710e58a5d0ace606d58e596d63843762964e98c56861c20cac9deb2f4e8ebbf5d522e6d059721d628ec00e988043587b4472d630dc65a73ca4f218e0bb8045688409185183a6c7263c6cf90e00b1016c70a70ffaa02fa3ee39ed539387c67b92a48d5c829aba6906b82f322db0b632b1e557f9af22adb324fa555a44caccef691a57fca147707d973dc9f4fa73ade6bcaed8c7ccb789162a632fa1c9014b91950788d6d6c3019d2143c376ce025726c3cb7451f506784ced9baefca8dcbbb3a52151611d8a08ff87fdb67d9b5e59e78df8cf674cee8bbe5e4c513089f6a91441dadfbb12c869be7c805a650b62407dedcaa5e4bbe7f25cc654e75335016f53e5d73046358f82e457c2e28ac678ca8eb67c25b87e47bfe02bf16aee67d99f6670560ee4a4a6ecbb0c85695c3d89b6448e02b47aedb9901ba5406711f7583d3a9ea1ce672a06a243763855cf17f900136b90b478c4b4f3ee0028b5608fe2ae58083cd079dcc47e4fbceff2340bf87310278a4eec7ef794b576447b87d991d2164815d05b93b7d4b1f1aed5b536dd57a374312b801b3dbfa9822d9e381ccc160653c72b1c129ce6c61d94bc2e647cd86defe3210ca3c31501ad31aa38ae48c0743360edd1b88d6dd6981657283a4f745fe69949e1b402903efab49cb71072280e75b1ab271aa84f9ae18532e90eb21279a8c11a4e3539b0ac7e5cbe6c1eafba4969a65ace86c355c8d0d2e884eab80f3073e6c26c8454a6ec77961b02018739fad9ca01e4963532450e5f477685c82244af62d58bc3d932b2c34bd30772a0d0ea939f7a6f609034cbf27aa308cf90efd2b3baac238b01bdaab0b5f6970bb0ce8cb0154461d8ec9239c4db6cab7b109d48695120d9ef3e75977205c7746d1c2bbe5a4bc4799e62ced8b5e4d2c924aece66c7e3c93859619c4791b10adb6e6f19cf0437c86cea08e3fd1d8dd35200598f5740461ce79d75f72b6e1ebbbc2ef5534eb2a76f6410c9fc338ee0ed87427df9efcd06df7cd29f4cd4273f68c6bb6d22c9d511575f25ada1ddf2b497537fb2a5fc7b7370c741a355b5cc6c19267d2d14b75b3fc6797268bff49c5e791cd085abb53e309f1f68cf25a6c10c53c2b7522739f763c2efb08c9bad5ea5c4ad37dec829fce7e0c1838c1fdbad2cdf2e9ca493f78429e2b1cc23cda79ebc3a559c06c771264fa69b42985bb6b51408ad7ee0a5f5f97514ce8505b1e9f442d3a48038d7d258a98fc64a2ad5973dd69b88939bf3fe7760aacecbaccb546dd7fb0630194a4456e214d931b9d12174a9f386807ec46683e424dadec6f86e9becce6ff2627ddf9b65098a26844cfccc30b9a822201d90448d81189547e9d6383e392f661a61b9bce01d765cecbe8ff6f31b9daa9a83141c7b02f993244c45b8262eab127f94d6304a375406c31de7cd51209e64e3172caa871db3af0dc3f7c806665407790c18f533d7dd742f43961e55a646f6661936eee04d489e9adc7c241597683814d222c5addae355666deb5f118387b4a5c4d496c856b001243113e9ad3d099bdd50fd177d72c86c1ca9a039941dc845b6355a05489ba51b7c0d7169883bbdd89d2a3afd97d932f6417d14c7d48f1f3dae337d070ac8d297ac3dd4886c3149de9e1a3a082f1890e01ee224bf8cf49e0fa01d5cb9b81cc4b1763e02b8fcc27231601a6768a55490a6ca280d78999b5b482fff4b78c5cf2c20512bb02ba980b50d138bd6fcfb42e055b7f93b814b3cad013c38282c25a9beff303963c33d91a699be48b6754087f80d39c7cc5d1fe3e5b0a0878d94494bc933119c0f5562ebbc1fe7b6d68df2ad51ea2f055c045b048932cf6df144db0dd8b04f9787932a13e91ec19871239a2d650055e8ce262c2aa3caef9a7f487bd7c53d47f899b7dce9e99c12a3d4276e7988950d72e7a7eb099f954311b0a357ea77df6e8650dfb872fbd64dffd5426485b9b60058af70396298ebe82f0cf8f2cf7b4fe82b0be28888339b09a13b9dfefb41af339ffe33f37c539c67f9d15047acc6de9ee6b71eb41d2bd7e04fe8e1704714f0512 +result: fail +shared_secret: + +# Private key not reduced +private_key: ebdd8feb35582827eb57c7a2c83f8d0a736fc5b548309af2b877fc19d8f01a2f97e486fa8bea6c048a33c0248677ffbf0b8393b34667de1abaec665a886ac36a4fdce3188f66d6482ccbe84ca6b189d7dc531661e10784f4c5e16bb5d00d1bd67153f0d8c7fea896f1094ad338e5b628f441959f521a4d6517e36d14096b2c05f96f6981f8885efc1ca4075bfd5f0be28eba8f1e7aa83dc8ac1aa9bad3b5cd257465bedc943fdc9a899e5aa573a2ff63bbc3ef9abe33cd919bcd725bb24486b848ffcdcdf36fdeebc79d1f3152bdfa7f4a42852cdc57ed8cb5b6cd353d9200f8de9344a22a9e7dc533ee1618e1607ef0ddfe77da2bbffcd8a38aed623d8ebaf62a3033f99ac10f7540c93d217e380d5ac60d894b86de8b210febab5e51657b34d6cef5557832febd9dd1c5bedb2bcce9d3c71e84f923ea341b1657ac89d8ae474cb744dd309e7513958ef6fc9bc4997a9b9e66240da610868840c7b868bcd756eda3c16a9b8f2343c33d8e5e256ec7d6d8129ff545fbf0c3c8d77ae771bd53e3208584551cc2463691ab1ab4d6dee2fea5ebc0b9c02e867377dbcf421e4d155391250dd0663d8457ce31474eadf2038a8625b6311c3b0f98aa1ae37caf188f4448a6b5a78b747adbcfcaeea30e6d34059a3dc34fefe9f61d63d8b5ed3c567789592fbc9654e741865ddf787545c8dc519f59265976f187833969f29cfaa95765a41837b21076ea1e16e37014b08039c88cef7b9d39fac3969bb9ac396fbcbcd46f6f3ebc78fbd6462e673c00ce6d490b7def8fde5723dacb2aeedd9c4e65afaaa209f511d489c9fad0b68a7d30d347724d59487b8f838cebb517d261bf52174fcef747c602398902e33c612faffa2ea25ea4e95508e616af45f6e7e7d048a3081fd055e988d86db142ef3a16f767260877b765ee9bd8d8296f6829f94e20d4d20aaaf689eee68ca5c3a9f752644ae7237ba623b79f145ae18f5cb41f466a27cca78b2d8815538290b8ac4b086cf626932869b43e4b5477834606d9bf8f3ef95e6f84d0cc72e64875d05f6b8c48d73198ddd01cf0fc2a314a6f74b94aa87ad54de79aac54995c952ae371ead9770b8446baee41becbcb57ba5f446fe01f60e9bca676dc3dbaaf4c5f99cc300b7b08c9abf72dbb03e75d0a5b872bc79cde65df8b243940737cedce36918b61ad0ae77553a006edc2fb3e90a895c2ef4a53009ea75a879cb0e9855f38f6ad7a96085796079d4412bf5ab46c61822d3756a93c7a9ba7c2d3b862889fbd153a394791d3c481fb64aabae3e4c7d637dc43bff1a6ba7c13e699ff45c39f94a533700145a905be7fa03d85319da0f68574b2b4a095033258efd5a4e59af68db362a5be3c13e1accffe665c9559ff9ef456cb3aca8d3a149a021e8f7ce93d87ba57a814cb7e7c84dbd6e4fc36e4ebe6892e6d37df49446d135a6ddd5d224786d79ac87417626d93e134b95d129a42bc4663ef19e84c53c50dcc9d2dca8efd9ef54aa76a8e8370bb03ca7d4de24d6cf24759dc03488484dce10cabe233e482899ca444fda4b44a6fa073ac87f8f688763ad72bcae0db87b1a5a62adf7f8bafb11793b47d8faf1486c97f4eb7ab3d8e1a23af4b68be5c8496262f4aaa0cafcfc3a21ba49e3cae68d175e2a5968d5d1ff2696649d7674332f884f41f59cf9b477d1445ebce7c4c1eafd2fbb6a68aaece5a47ad5d31e5457d32dcfa601b6b91257b64ea7c30b6b32ef7b949893a3bae4ca1dea153c5dbbb6d398cd4d90a9390f714541f34bb4c93a81f734809cc86b8fab6be5539c9f6a968fcf07eb577b27ee6169565b87cf1561936a467a435b88081f7e925576350cc964f5b37fd73c421e7a0777d3fc308947cc5a3f3ffed328b8c23f3ffc8f5c04faa6d72395fc7c8b2d8fa72c6f35c9e9ef71ac34c0daf685b5c5571f7b9b9245133c58b3cfe55e6668316dd899bbcd5e0bdb8671f41f22772dd39dbd973d87cb94c9fa464788b8a87c637f327ccbe3ea34328cb58b5c7f95aafa05eaa5bccf850bf6b40cc438843a6ad4ec82886a2236734dce8e584d8ce18184b91cffe62296acf4e91efe679d4e5fc1245ee3e4ebb2e8e5035e6f380c45bf088d25d5ae2885ac092057b009d6c3105ac4974ece0edc48bd4ea6f14c0a503e523ec378fbfd98b48557665cd15516d767a980e05ba44d761fe17355c0aa302f3826dd25da4ca4d044c299dab608da967c1e253ba77108df51914a15541763f737a89fef62be1f7b4e1b8b77eb719a84377be0081f7d71a6e881e15578603867855d87ec04b5f1f133368e43ec6282fe5eb16935a04ec9916caa90031e40d98b0a8ced98979fa7742a20dcbe84c67223eb6925d7b1b12e07a47677b56e9916029204e91408635eba66a6a844de5ccff6aa63fe15190030b8771101b456288b170bb117584c996c8515262c684a4718f8b369011865c756827d3038d62355f4c994a539815f4d6b6dc9455f4d7ba24501029170cf1aa3b0944574f6642c446a3f121cd08c7bb67e7239da147e0e9c9b5c57b8f2182e00488341994f620c99978c818aba5e4516efe23690636cabf607c438cc288e944b3446b41a264b88c6e0371a08a1c02703c21a0bc5d73e6b95e7b5fb87c6cd43415aeb26f92abac0371b9a7a70ea51c88e12bbcdef7c3cd3a4bcbfa3bb83606b25c85984021122400272a616fc4071db20560654a7ca099a6d0754c43687d9657b1b816a04b8d4cb63d0e3765e228890e0907accb4734cc557fc96ef7fb6b463cc2fa5b73b7fc231f230028201483e66efdd4570365865c08028f96609377703a2300f7e1b9f4939475541e0cda2527b28aca7374d1827206426637965870e9b86cbc115d9a04c0e73e8b7a866c277da3c58e0d2094fa285e2d05af7ef64f8ea6146ec4321395b7f30a6e52171ba28984b1e49726b48ed259638f6bacbfc5c2a4baa3cc391f0be917f7ba3a05dc911642a63db03fce58bc6ff92af7616569d04415a26eff8c271f9921ddd302787959f5397b70d7a388f7569e010cf26b67fb2c3a2a52714f5666b9726cb775c28a79a41531213e4766c9442fa06498f6d5a1816b7338f9afb779a40f2670221bc5ef319786762fc78b1a25fc9db8e362f11c9f374b04204940877bc209b25ae7f461c40a0193f66a95ab7dcc80afed9402ab725dab23c1abeacad633c461a26790865c21a960d338a7e485cb2b42a8b0963b8689c9d4287643b8685a341333dcbbd7637fa2671c1048638a547815f07b255ac115c8bc32b61a369128c60076c3464fdbe2c7c0bc5ef1e383ddd2ae8b0457410c19ba1c486b702a9048049e85cd1e7569eac6b3be8287ec9c195c3bb0b4f28952823832c55257d05ebd8a8bff9c372095be66359c9ba7384080a7acd9567db7905c50c36734cec7519e8e57195247b48a65a1e34cb942d741d88b429d226a4097beed271dcbc8a035606e056a89a8487197039adde30f78bb17148a4f0bc84bf1dc0d9057c97b028296b9260e601ed1a675bca781c53bcbd6866b4ae108d059ada7c6b8615195336c2df2e71ce97528378b2fdc4b6501f2443fd4b6248429b67a4624769236e32c12e3116ef66ae2554f55c7be15319e803b8ce0089d3c04b65ec8340c483b2ae4c2b8ec7daa91b39270ab7ec04fee436e1c008f61c46fa854363287573c50c63c3b1f94d52feeba13aec5c926257592904b00ca8615469df5539e8f4c627b11be02e96d17189a80f37da5d08db81baeb7c34b5c58ab3ccb25af3c29cec9364175b6bb4a04b5958079e18d5440bf24538598c1c548327980297efe531d4c14a9360b8dcc173f6536b760b2a6fd59bae262087989269c884a966c658017ce65d14519a2c61266b344f6648abc0a657580130c6fa0f6565d8100f0532011945c3fa296de184750aa931582a90e6bb9080971cdd6b470f68db4e529ed61bf97f62bfac5cb534c1570db606cf0351e1866d7e199dc329d70316d7fd849d5c296d76a8db20306bbab609e7a9ac05c7896b150d6962d2466158f8697e532901e421d5ec00671344640623891a9221ea17ebcf6b290dc54359814a86658e2c0159c2374e1dc5f94dcb30ce01f3633129274585e304f0436396d66660f81c4cd273b94a3740f9c2fdd081bc309602a2cadd82aad35a46684547d01c74c38547176113a697b49e6c98c1c017b25f817e19c2a0302d083dc5c74c4c38b6706e94c10d178369b375df9c118130824fe99ac49f24a682ac23de429f8c7a6d1a89c36f82f0a47379e7aafadc744e1f20b9186c67784c3e6b823306896fca303baf61309cb498a216431862f00198c26ab6938487dacfaeec6906ae45303ec7dbc2889a8eefa511b82609b980dad54ebb3e7091e9d42a9b1d5b6521a7a4527116aa7c38f6ddf99acd4a7b9837317d99f83732bb7caae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 +ciphertext: 2dc32e31aec258d6463c8b3a5b9464fad89f1399b6464d5194a8704edbe2fd1abd7044fcc1fb2781c4ee362beaa35ae6a1f8b37ba5d58610092cc908ed65ea0aea8b393781be6277d0842fa27f9fb97b61b33eda5e50c1254b0410fdf9dd42306694b158bbf9a2acc025ba0018448e4adf4a1c9f71c7086750217ed7afcd3a2a2651797944e8cbfcbeb6e9b67d2ed65dbbaafaf3bdaccbb12e17d90e91e8cc1e0c96e3ad6387d95e2ce0b74ce9238c400c75723e8100af62a9fe53732f256d410f16de8c88eb484e45062c60d39fed5a780af738d320097139d4f26f9f39b8b1e777d5d0eba2bdf08d7950ba817522ed34c4774976ee6210f61393cc3c3d34da2ae3ac491db3c2de20b223bd73ce0c45e4743996e3ddcf286d7ac5e2c9b42f23afca77956e39c7fe65246863465de548f754fa5c07ed6bddaf138b22fae3b316dc5571b9a452c65fc01d9680cd4a6f04e69cfc885f80d1850994d85d4cd13afcd51ce1470c4c467442f845b5904b54f53b6b9150689fa40670f00b78f1a40735a2a8c4075520e1593fa8f2624b1dfa86b60c37ef09d97cfc4ef03002a3cd104f7399204c5849a860bd2685091364aed298b73e44f414eb62d093317b710da0e3380167aea5a87c071495a57243542f1a8b1a2aa433b25a9778f3224d75a8e5b913feacb83ec1ce53e9de2d53f6ccd326c463c0b82bc41f1532cb74d95b820a2cb1ddeff87393d219ca1c58a6bb742fde0787708cddb57fcccbe523c90674857074b2875cd961e8144aa6c2eb4f33972e695441f659b0c066bb7bba5925d26811c794d4a2c2c9c5f167cc92d8bef403151cc1f27fd0addd2a1297a07c5f47f9f8fbf72d0eb08158993efd5985970de5938382f4b504dac300ba12f6e733fd8f3d5fb26ae306164fe0ad0df2ec13ee8958ef7667a88d36ef9b7a521d840c69e208eb7df5f862de630c74c1ab65909d0fcc6093022d7f475a2d095801c1b12884b9f97643f714865d9752e25111a5c29ea974ce2532301bc0920de36d35abb364cadc0b3941034ddf459bde80f28c1178df12f50047b73a7370d380a858430e0eb7a3589bbbf578559c94035a6aa69b5dbccf09d2ad755311c97e80b75086462fa35027d72f6205e0a4b8ad20c5b56f91dcde31aeb8937d23939115ae4b76833dd5265e1019f8126069fd0da3059e96df4209efc730d4cca140076418c1f1fbac6b6a5422d56cd2d9eb16fb23d798021aa03292f34a6d302e119e4b3aa104e4856689dc10685c71ee038d02b8a0b965691c46b014184e20497f05d46e6f955b20a67ddac8f6d0cacc5f1e0ac6e826338026b58de71b2292ffa6d1ce333d124f17735fe21009f46fd2009829fedb8ee018e6d773a0bede891cd7ff9acbbbe9ea5a772850d38b89d3f423b0eb53458f28bdfd57184f6aa830307dbe8f8e9acb86dde8649115e0752dcbb4ef99437c488ca7dee225ee999ccf8176e1cd8a735817b927baf1e4d602c37815a086f74f27d318ba91c0bba5d6c52a4fd3a481373575345e660db150505466e9513224a540c33d9713b755c82a67dc3482e6ecce3a46dbc189d9a71a7f5feb091ea1e8b395d599cf0ae5c4ed6dfde8fa12bfc93de992e19d75434ecf158be6a3a22607b4a54b702e5822575c28ddb1a51500c5894f3d01d6bfbdc895bae212e8ce78ae75a38ad93123fab702a2c3e64db8bf44d05143aa87ca54c66fab032142b9569dd21f74d67148f54d513c991362097ed325953f0c621c42968806460763c211b4d8b383a724a2d53b7b7ba72bca0fda2ccc816bc74935d66b408e174994d856a20cab75fc8a0ace390f47c4f26c8a513c21fd3e8ea5d0ab19fe2547fe4f1981ea9133c2d9aa06580369ac4ce8b95c78d57043dbf444daa14c0841d84c2dbf7298e3df9e21d771265c4471778d0522ae99ca9c86e4cf568c8e18075bd6c6348455b53816a673d56f6fcb63238f653cd8dad471721b272585b6713f223afc43d05409a1e032642f8f653304696f758832db360d754666e1bee5a33c6c52027fbcdfe51abd5e4b3c165d219ade2a527ebe6d77096de845e09316c9099c7605953a31dd68b936bc96144c8120e00dc00300667fb8471dcbe770f72a5e3fbffceaf6edebfb8d786f7830f7aaf48e1cab9372ab7442176e8e9eb8d71df0001d5fd4afa3f4b1179d4f50fd338c2f15bbc27c3419a931ade3aa +result: fail +shared_secret: + +# Private key too short +private_key: b19f329ac73c63553826a883ca9d6770c5a3a83b3fa56e8377798783b9a5b7c697e587ee823d60b09e536a4b623c4f361c2307526972f885f41a13eaabb5c0760f075c4b09760272118d5fab168078ba4a1a277a6a9e07fc3c8fd0831af6a28ddc842ca2c99f8abe73b57ba7134d298c1ab340c1ede59296208652b48139db71c07c75d8ca838ae0c2c51834840935199964125b1817fcc1eb9b597cc1611498679d03963cc5bf822485fa7a1fa11645cd85159e895ab0cacb9ee28d63f6a55a7babed6734f95b29f0a2313c4a9d1709b1f91987435718538a08c901af737c6e4ab11d23512a449c023b100d65c2b7329cab11c2a0ec180816ca6994f208ee5b983e54284c754bd751101fea2fbdd33352e26013623012418144b4c259943089db43a064a6e6d334a66446b395b2e2808b287398ddc49b82476e71164d2b301463aa61978826f98b4d50bb7130e9c47f195bc4bb171b5c25d377bc739302b74c526562591e643156bccd1f213bf3e89e58da547d3c66dc479bed1c26e5d12e61b537724c55830a4e45f34d8e55cc41a82600450436a61d0771b9a99a93437ac5fe12516c0bbf8b218c97831a85c45c0e93b8e7c27e654b2ae1f93ec0cc909fb5072c1b88ddeb58a820b071b60ba9cc5099f6654f2c8e625748ff12c4e24051e348331b1ac58576aae3708742140715c03d8b30b68c15064b7798444947e32033e239be8491899cb4c67df515c7f78e96405d3b7c46065a08c1c70107ac3776b73364c7a48434475f408b42b699d9ab870d155c6a030a7e29b090f1958feccd2bf338f66926308a1d80f8b9c12a954cec06bb5b2df8a7a6efb9b9c4b86215ea14abc279d6bb870ed25e1f0caa6400596b96b8fd19ba03b924b433c58c50a4b823b365bb1b229badf509796bd80d9860b980e064ff099f632713d9f57d9a12c04511cc09c0cc634806f3019ce8471d831b5662a986b8905f6a0703798c97d2736ee4192f50137ce12755a28c9961cb5c6a827ceb8965a11c3139cb74a3a21b1ef09eacda5a1843387835155e3c510cc0cd3d8bbf58348943d2b499a870202958199a7d7e0b6070f097f7b6976af8126ca40e65b9590d12b4c335cea7d81350cc569a2736668822fa4b861a66ac9e6c25499c1bea9a020d390d4232769b4ba3c730798cc0445c566c5e33ac877574af21c71819a1f523a628c657d7a39b416c8e668c73a173b3ee604ab4c32986a3bafda3c29f2a30be524c51c6050d22b976734d0c411cf1a6924de6c17348789b1870afba1c18c843b873bd3796c48afa484567459ee77558ac6fd950214e99b237e8c02bf1258ee18667e34c4b4388bf1960fb8557486934f18b9b454813cfd3775033cc9830c8f7538fdfb3861fdb20496964b3a35bd2ea7efa9a6795f2266a8879316905fbdc81f27b4c79a8cc49fb5c7c10493e267f3858bbf1f63c25799615034d9c43cac1b1caad475b4443c35651ce06e7b7fce59448219624d97453f5876e941794fcc7984796a72ab2e3809297c0a1943b55a5e329f44556f09c17fe07702d354e07a415236cae20e242e9b43c3e129440c181be428f4228c3a9fa26940962ada931cd49b662b351a416444af75609d9c586a3449b1c8a542c27f8452903fa1191c182864113edb90a452c9ab892c6df01440df64022e536dde3adc0c336475864cb010de9d295aea5531186b2cadc62635247a5387454858c9045cdebf09ab4bc71e87b25bc7b7f5c324431679e5db38b30b459d353acce182069ac6fa0b19dc5daa797205bfb3210432c0ac6291fbe87c3da0c452956ab99b0073a30adc3ab0c78f449150586910942804790ad0562979283ab7c805e694611426df0b108eed8722487108ffcc2eb9782449bcb6bb010f4740b1799b245114113c604f16087cd5c3ab8527102280b3b066026268412640b463a624a0850e028be3f763bfbf876d0a43566438614fca947c09c13aaa2b5d38801b73a84d7538b7bc42bb86a1caabbed952ed0b165d7107e2ad84b3f21039458b9f9a9 +ciphertext: d4363612d9efe201ef8fc93120bcc8f1bcce1c527960035ef975397ee879e371a14cb9d5cd9eea54aa8f21c30e546cee783e2df2082e10a507f0ed1edf8d28583e3a0b011f1657eb8613e6fa96387fb6bbbbf3f0d09c08814ba75a14760c2fd180f055833abf0e5da080ab039d081c17466058f3551f8a69f01d453c8a5ff495d5fa4c0c1bc885ee3f93cdde2797007f9b9fad2a81fadf548fe9df9656bd00ec34df3e868651e27443abdf006900cc7243ee25f4bd7cc9a28b8cfad32376a8f77c94d14511b4fd9046e2e0cae96123d2d1823dda2564b4d307bc7e9cab9a6c5b2cd5d0828e3be267106509c15a1ae6c73ddded5a1f40a70774db576bdd991618c20eb3b67402fa4935ff2604a19631dc99d0f7ba50fed9a9144a79426ad3af36eeac06a4f9c340ead21279434c53a709c4e4fc66e7fa9c9d2634668e96d17f8c8abe04387c125e521adc3fb803a8415801291e6f0680fe27bd4f9bd31afafae03dd84b3f03c288d401869c4f98effab99aa8b509715fec7df1bf04551373131fd52a3066e0eb7a295509ed5ea2ad8aaa85981b235328f40886a0a51c81c1a86fe1411602cd27763727589155e3a963c8a48030d144ab95cf7ea2f6faae7b3b336ca71e0bff934238514f3af87efa3c5eddf64c6daeb56a2dff54d96631cac90edc0fdec799e0ed1ac9a7a35f38881cbc06c17920279d02fc36d10f53094f36995192b7d13caa9fb1e7b295fd8eb6149f441a0d2d99cddf43b815ce945f5aa54ab2d9a4966769b3647532d42587f4ab51d992dde4578b65e9626d383b8f2f7fb2e5629baae5d41ea598f7f43ab83e27cf7dea88deb0854614fe8be70b0741a503944e559852c9ba3b1dad1a722a035218b9c4cc51916827bb1211382fcd8313fc3fec47d2fcaae867e534a04270794cdeb5affc8610da2535827eadcd72b73e44e07531d00109f963fbf6ae0cc0fbea06f06f65f31f9c686cf0dbec27cee3e5dfd5828a8b5deeeb9631e0e0a74d79561a241fb5b0ce4c1e2ce8580a7c7a7a9c0a02283ad98b79cbb925a68c954d4a060c893b5c41cc727bdb0cb31f470a8c41b675d28af27251b4d0c932fa8026a200bded34768bf38ba93ff51ffe7140363165210f08b9406da51cbdaea3051cb9b63cb7f2da3343ff0b61d1ddb8748090c788e1f590f653dc27f9e912f13130ac1ad5e0673ec8d0b9e5e1133794977e552c7d2ddc96f36f37fad1a44c04a1132cbe496a5f959e7530b0b86b15aba009b662704469d3eb438cb13f2905d96962b48b4bf2a0c086e4a228bef1ed393ff6fe14c282ae099b27c1226847d716d98a6d09f1107bac8f60f5e26b8706d16874b5a40489976d7131c4dce1a011cd67a0c396fb164d701b01e2df2993f69365924e95d6e16ca3f7c6c541a6249a62f54b0989d2bfa73aca2d4160cfd26712aa3b9998b9bf6ef252997c7f6b8233fe5de8bf4038bf7f43013a7729dfc0cb38735d9360bebe47d98347eb96b4ff9ac536258ad6de41f7821583b7fc1fdb24e00899b69a8fa959685a7c1922c5f5ed31f14e75ffe29c702fc36233ad32e308faacbb28c0885f1d84b91b794ada9fe00545760636c29fc23a6140185f42da41f5ba9dce00f3e3b3569b9ddc88afb0757bfb75580efecb1d0cdcc24e84c5016585d160167b3038c2ac9f61e19ac9635f2c699cfecd3e19f7e622814663231d3966667efb8fcc0533fbb3eadc7dbb0b0b2f15b33e17bebae81e408536ee5d87f4de84856bb04d584b6713f845b705e4cce1b90c8c754ec4974b8ee72493ac8e2d1bbf7fd90e4500062b0641f7d608ad1398cfd446818ddf8c7f4775bf4ef28b2f6d732e81900bce16fc2935f6c7a430cb91aa61f16c0ae7e4594704c77be0bc3731a4838754e0ddf2922679c94f85450bc6705f9e7902f9247058ca5847c61b0583aca6380a1c9016c0eb3d663ccf2ac3b541877df22f6179385da98cff4e3e1ef20e4acbbe94bd85dcf83705b221f5cc248d51b64b0798a035eb7a968247ccd9c0d804a122b37b08495cfda09e89f4d9d71bbde8e72c89913ebbc9f2bd303a842bf86402cd115b351a56df3ab25b399b046da18cb792e7724a7fd6e34207a8610d46bb35aec6afe568edff184efeada49c90887fb4671b8105ac5f851b180aaf247d2d8923a9d8fbfdb3d9c62887ef9bf0849fc134c541d0a3f9c3f67f945d36e649ffbf9aee +result: fail +shared_secret: + +# Private key too short +private_key: 77017693dde1a9b8f1085510567d894e0c66811d8635a33a07cebbb5fdc12adcc0180df572b33923374870d766419f8b506069568cb9cf923a54fec8248b864b33f42259131e9e69be06c279db8c23e90931d2ab54485c9179d0032259b0bf87bd634410c1199488ac5b7c9939eee01148591a10210fccf5272708a53a113f3b14868986a97fb32dd2e20c178757eaea02c3e730270720ead6a343d6913e6c5bb6221661ec7a9582478b37600cc5cfe6fc75b5218829b185911c521b59733ce2a04f03155ec4cae209b750d235ec447d6088794522960931a0997416ca2b84afa4737ad604d65c416c162752510e35eb44b40698eaba40dfe68af4ac5e6463849fd63584eaba6f1aa8e89a1b8059c627e74ac2806d9d7976f4757856158839f6200d2ca2d126120a06aa9e91af7ab429f965015dcb6bc2e63998 +ciphertext: 6ce8e8cc3d0f1907bb7fab518f2ba8105a796543681960412bdcc953d1efda97b5c7c83bcc2bf9b0e35b5b4dc3ab79cbbfb25963f856f55c6ee34cf07531ed3896b32d6bd67bcc5455a563313e9455c4ee66fa81b2c271eb2f4b3cdb95428b9585ab271ef4d67abc6baf80ae42f2eea78c447df9e80f4c5525c797ec3f1e5e2603c8e28021df6533331159976a6cf7d89b7548dfe2398cb6327ff1aa1936536fa9aa6a2a01954cb9d503e03b0a4383687cf57d2b9184609db7ed2521ec074e033e983ea8ce175da80ca22c2c13e397ab6ca73f7adc7b335013ced5eaf49b8b440e4604b5c97fc0e7202af4e23855f4fff1f69ed63d5acf78b6806c89f090a36fa92a64fc9837f521f8ea289f83b44892086c1a544967573a53f74aa8ed36e314bc78d8f127fad6725ef6c53373fa82b3a2991c876ddc9828438dbc65ceaa937d6d1ca9f57c2b030bc8ddef72fc7be67bfa99c71e683e2a5e1e34438c8e3109be2ea909e4a2c46daa07f76c1e7f47334036ceb4fc24081b637e334e1570a0aed00063a5730ae8c48a0d08ccabb63eca3b3c9747d024847cd18bebc5be1e8b2dbb89b2c0e1c308fb3de2e8f4a39fb813b6a1724e0b5f9763085dc1b1e2c98e6cb7bba6857aa7f8881daa10fbf30b7c62cce883eb6d7bea8669b12fd7d1af6f9c5d9dadcde398911fc3c185c0631b81d8ecdc73de21daf45c8d7b5ddca8e0e8ddcafb861d9d58bb52663340b7d43c60550b4a32e8e3e30549ab7ddcba8074319f5a1663a38e12af43ed179153e3c25fb610a3b4bf510478a2934453a58926c4697e87c9c9b2560fa8dd5a1a9c745ebf112727b6c56682c14d10ce19e45314c8295428b442c7172bd7c7f3bcf7c9875abc3005d88fb1cf92e74b00519ff28e3a7bb460b26c350808f3b9b5105581ccab546e95c4250b1b05eea4a2cdcda2807b0997eed074b292954bb75d14191649b92b03b43d9a2111cc8e694a31663be2ade36112d002925d36b4d8ee1794705dd049a20dd2899af72ecf6a3c211ae76dc8111a7c25e36d277d3776746a66f1eadf30a5a99d2ba43b3ba9b0bc736df8fdfae0c36d9ab0ddc856edb0e561dfb32afc978e4015755af4f4a462ef657e1c979d9782de474576cd1f7ed7dc9ff9e308713032bbd000d92e976ed2c70549cafd868e53c78f0a904281e8a3ff435ecb154368f30ee87556299b7d8e4d2da7b8f6013c0c1ffb59827363d5f1bf8d7ab09bcfc3a6e980611feada0fca68f3a4403e479d3cdea726af333ef3ebc4b28781ebbfabaa1a65c4a2762923f9694b621e029de211d451b46cd724924e8099d5d518710386c2e141be891f30cc7cbb066ab879f077a34cfddd258c9e6e955a0f4235a71a96bffd615e9eee72a52e2636cf55c00191a5c19b625359c8ffd8e3352809348372f3775568895d0491c20c3ed7b500506e2731941636c2047f32d42384d85020f7be3065400d25b19560e2a78a112863a6ccf1e3f4781654d978b632787f0aa0ac80fc5388e3294c301358b66a1c6fa905670f724784b0aacdc4ca27718e8772b48d9442efad7d69654ad5aa05203af56700849d63096c3ac798d4f2861426b0600db423139c964af20366ca99757e1cde0377d3d67dc8a0589e112b3772119d084d331e64f13902a664b021e683805f78deca0ee79c0f42e28b98e84b51eb6acb25d365a8cf3345d936898f6613f9ce3cbcbf23cc7cc5521eccb816b5ef1ccdcf304a1c873c950326486950ea1234aec4273314efcb096d14bd519a789396fc9c2e51e2f27cbc889ea81cc20b146887c3d3bf4c813e4bc4a1cb03e0f253ece53a417c7ea03d60031c8105ce7be5d53eb74e1211d87381c7b420e4f0ac3efd08aea1726f36f27a5e6d5a170ae97661da274aa91ec0f5e2284bfb68945ac900f77e045130b4e0d97041bcf728050629b754fe83280c6b398b6b064acda5943670878deefa3fe9d8a3f0565354498313a766c58eebcab4cc678f75828eab8baac41d249c56b9c228c9a8367e8212b565f5598aa9cbdea892bf5a447a5db81d1ebe294d0651268249a0422d9ae3e1889682f89ec184d5bcc85c5c7f822a488ef7b2c976652daffab4dd68bbf38a7f45d0d98d66314a5598008fdae35cdf95beac6dcac386c9bc42d10b0e74ef606a39dc78054ae61ee538ff563aae1d4d5c13577a3c7b1c2c14fc658ebf97e2e2b4482825b7 +result: fail +shared_secret: + +# Private key too short +private_key: cb0f1386cceecb1cc089871325b38ef5359638af6c38ca8320b682549c42889daa8b149ff1588849a730b3958e8a9adbac837ba88761065661f680fa012951112406f992b4090a7520bff2447deb387ce04bcfa18a380e95a258e9c4c0e19c1ce3b4476435a7dc10d3942e3905673eb2939b7a742f344f8a226c50b78dc2818fe5e69bba8160b4c57f5ea97116e06eac61214555b8562462b2108be6fa0dc5268781a86b235256152a57363bae7e492d729676294c60ec633908869b2e529dd267c20f54924cf5acfa0031e6679cc82c3ca383692df45a9ec2661aa856e585239bc59ccaf3a7bf128aa468542ab58e784a55f510879a28b515c05d42f19c6b7a16a34511fa9b294c712a4f643710c0848846c9d5284b24b88425154cd3764e2e21ca98aca653fccd4984cff861bcf436c4485c0175f34d28d34775d8a23b16aab9d5638923ce03c30733c03c0959355ab046f7ba121a67674bd1ab4485c46dab36dcb7773e106a89c1bd51b16d7a2063e73a7bf99547502132b1b5646d0acc07678a3c559232827169597f3b50486ee598879caf0fa713bfdc748beaa1f085b5a964458d6c75de0368b3d88659f0a59dfa11f90543247068360792ed0a18b1cc528a6573a7165d13bab8c0142ec3e2133be68f963b29562c7465799028e7cea13949b4a9032d035a33c6761ed888fb28adffdacd4fa83ab3456635229546c7c550530cfa4b397f32a7671330a4bbade5d37fb67982204148fed926ad8b9a012952fce6019d943b91fa6685fc948bac2bca6519e25b25b68bc576073463f0797b43739707149bf1bcb5533e59113001834330dc30d9234048d106c0ec740a0676770b8a26ab3ee8f62d76e701d32bc15442b023ccbadce591a3623ffbc0114ba267e2a48358c071eb1c1c9448cdbc2630720662b4c1aff9d3576ba66a52a22fbc680ef663805f9b34119543b5576d8e50ba6f7614b9ec9789a657bfcc099737618a38aecd3c78944575eff5386ff4beab1390edf6cf2291094d771e10c7b60cc4b92926cd815b8a90d3ce5e714b53f4cc071b989ab06b1b141104362f00b103478970de698752ecc46490cbbff312c0663054d7699b4a129aeaa2a74a0bc5c8707133b539a9b14f32c1c4c2c5c1fcc6f9a8351af51f46f28aa5b69274716106c4b3b29cbdecb5cbfc1cb5e047547a8167c4bcabf43ba00f57952c422ef9167e26bb585bb20be505b03e0012a13042f492acce77c0dfc22a062b636f9bad83d19d07eb2ce26ba67a1a44c84534ea4a48247b27e880796f41cfdb945b8cf921f11b2ff77a1e6978afaee49f305578f1678f3847c1309ca527a5aabc4019f361adc4f18dca513c6b3a2240b403a22cad5597a6eb09ca0384c0bf1031e7d82c59230f1b73bc72f82378c5c64ae4b986628141c31fd1faa585e4c132843759a90cfab1577f7965ca5a5cdd1788461012c7ec716eab372fd88b2d1aa3ae023d04c99ef8f395dacbbbe7d03de492a30af8365c74ab87043620977cdb69914072c80b08ac98b015ee9771 +ciphertext: 15ca4879064b75eff9f417e62c00077cd116de80f8b85944dd3b075d651b8236c18b96305e1592687da8ad98f80be47754c17f5cf0a8f02f0fe2677aa82bb4fd5b8f6939c3d79b8ecd4047a258dd1b3ace46492176817655c7b2ba7affd6a8453f6ad8eb947ac6a46bdb79a5bf66eff779209ac460bc5a73a8a8ed6dc249982906947e990f6fe36b72e4d98ba336daeeed949a3e4dc50445b71cc0f5fcd5be01bc4ae193c2cc87e78516ece0880d9f9398aa7931dde958bb2adea30965ab283415f54e1a24fc9d5af6df9ce654c381860a56046d2c4dc5f9abe070df32abe8e3546145967fe21d676a461c351d5215b24d09d89cfcefef9fdc9a2ea3775f9273d312eafe825ac0c1f15445e5eaede5e9ab0bd559f8481e34cfdb892e82199b96d32a0fb7e877bb54246b57c535829478aa12c9fc503205429673591929878f0b4acdc2d9311e1c9511bc33c0c28564b56258f5ec3fe2a82ddb05e3d54eba3154ac8760d0434311b8535b3ff90cbd2465f35206a78c01d0f1fa3b9036dccea423f7c1e839928d2813378c0126e3d4f632f05af7bf2b59f543b315c5a71e803480527819461785ec8c9097938014c663abe5054893a478d6be9ecfd4edfaa621827b5f6a498e34acd6b7e9a799647755392f826ecdac90c41f59b210816db991296b7a0ecb9c0f7459a16693d7c2a73de1d4ee6b9b74a0361c2b0dd07802859ff3e0924d57ea5cb1e8bfae6ccaaa280b5afd954f84017f6f168adc6fb8c50f8e68dca3581409216a1e1d7b71c5995701c685623b7c0c29fd0d98f4d2d4ee186045f7ea9f0425c31efd74ed16ebd3f83b9daacf1b5d6ac19bae22e2f19d165c6b0aa53fd61e3e9495dbb9f33ff8501ef71394eb2010747bfaca27bf6fc5040fc30369375bd320062597c5299541677081e8e2014b3e318daa6e53a0634de4ff8229c56fceef128457bc9ecb7bbb45f25129db1239c2f1b99dbb04d286103b3d7a9ea8d93938131f85d0154307d1e6dedb00c0cb9b689c84b4f1a16f7705d5cdde01cd408a980a6ae1e84e8d7680e443b1eb528ddae0ae8d5e34328292764f792e80fd0ddac949899823aa722a9946d11e48374e915faa7be61840cd9bb69f4573b83935d20584a7bb61a6b003e07275818ce4cb5371231432830800fe5e363291f015c0bf8cb7ea267c369b932399901a20044419292023c6faf5634573a4421019f68a7d2336038c3164f7468219e055aa41b06a7431e5bbca40b9f7c59b95e07dedcc54bf965ca07710ba4b641585896a0ecec6aec0f6e878611f2f01525dac28fcc7742025a4b1abf578ceb9356bf7b94eb6904f03ff2a7ee8f6da6812c15833b07e30d5a3397fc5bda3fb60adcbd1686cee19f2b08289623aa87d31ca7651a9a2d8e8b98e090b0c58ed6ac89b1d3ab597fb7a447bd2a591f68658c1bb1c3ff0abea1f300465dad87e4e4fb2ff61d816e577d87e7eef5afe9bee51d777430cd366045678ba1a463fb23f2edbceb3d38d83cd64de418c45c632d2aee8487cdd7eee5b5b9b5da5abe883b4af138dc0d75cad3026dd0e16bcff2f13140728be0ade7bb95365f44a0f20e419254172160fdea0cdeb52675342a0d104e4719912f11157f241e62f3287219670f1b9cb45a08eb8d019f020d00f034b19e06a0be5f80332115c25454c782b50768a2d8a2b08495f7bd3b450e788e3ebd28400a789eb711bfaea56180a8800b03a2d3a398e9ba6dac14e87088f4e52202a02b3f2812878a006f6aa79c2e5f3c855a252f07c6e0ad01f98d954d74a9dd42748814a64c24e232ded9f0bc9e2d539b8e5593aad6d876e9be9f082ab53ac1650f160a48f668e1f7e2b0109b6421fc2538a8783cf8a6dc9d0fa1b72ec590e841f870efca6639eee38df11ca4c482fcebc81decb2cf706a77253fb4b6e9f4d78e86e5d81dd645b8b81739c812f60369048bef65a4ccbcd7568aae7faf7c2cb5f527f6c466cbbd4d31f461af2c7076780e1f85568e3fa09fd3f2d1adb602fef6bf7b1ef7114354b94feaf4a1ded87e88f09d60ec2b3c3b3425f129d56eab8ed62391ab9c6c3c67197c272cbd4bb4cccc7253c481c61a0b4e3bf5288fc2399daf7cb97d9930dfcd1dec7a7cca539311bb09dc47eb2236535d7b0ff8586c5e1b84551e3b7212cafcac2270bf8c6de06851acf09c159071983b0b3524601df7a8304d63d7f7dbf4c4c +result: fail +shared_secret: + +# Private key too short +private_key: 4baa406d5baa51b3a808594f3d3acc114858859c19e393ba6e62ad7ae4b572d73d14790bd17671d31212d1ea386d874d75260b53d2070f47b49172612f487312713a8c858fd2ea43029832328c73ec397826a870a8d8969b3a65f69867b51cc7099164f8d793e72909c443824956ced629345002133ed3c52d034dd1197e2359ad12d10d619926ed8bbf69b6b2ab33087004c3da804bac569c2216a139869d2c2aa9159399f5a313833b53ea2c5cdfca0632236c698944a562c8a03979e4f39f779a82724183902c203408cd038378359330542065fc1c49124b6c4c8a4051fc5ca66723482c81b259a1dae78871635e4e48bfcc17196bf24643243a +ciphertext: 552e5cb796053682dbddbd46aebb81c4c102fc52c2b461bb397e597df85c7c51b7525292367e4375a5bd49586a51df280a5a66e2c0f183680b46a479fba0bf65d8755e1fc010dcb6ea429db65eb4b9cff73d38d8308db99f5449dec4ba570d37a8834cd030ecb0080e83acfaf9886880a6f6eba806d2c564a85998e2d08c9e08982d4d82c34b4a1020d9f6c4aa6a611f7662f88d570766f432e5790ada98fdff0abc05df840cd714a1b5584f104dd4ca7806782fa67bb7690dfcd7a87524bfd96d95cd5e3b191e017345618c8be2f141a35748e2ac96fa103103a485c7f950e045e26da5e8827b640ab5dc2a832c60e3b985266037ba2dfaab92efb2b239fb963262e572dd04b087d1225edce1279a8583f8cdebb8e36ffc8036a648eb123ea046498e871021fd97cc9950db4b475e719703aa433d4636425677c1bb67d8fa8b783af89a7a4f6a7bce420df22e4884baf3b961581fc1e73c7b0ea2c121b1fbc04a07bdd9220ea9cf8a914e189a8a9afdfac79bf64035cdf63656ec0c226dc7d843b9230c9b371e942153991d00aff2af78a4051203ec0e10344861425e108e1adbd211af000a9b0881869665b9e0da4bdbceb6911f301d9b5f46fe78ac3b63562bc48896f3b06cfb56050e88cef6444f64550126230bab6122ec673178c9d9040c0bf0e6feb7d2db91b8b7c0ded913e3916e10d7ff32d109819cd0a51f262b69cb61fe6ddc7d126670ff6e4071af2095e688cbd72e13ec6ef27e6c3a6a22bf95abb7dac11ad0b71a72498d6714342843869a3aa7d33b4f70460385e844c8792cd009b97254843ceb97826c305f4cc0b87aea70d0078b2a84736ce020396fd1f3c5426a9dd157bd6d26f8012dbe96e7d407376170f3c68b0e03f843f0ba0c892de2d3dc5b7e27612cdc971a4b1bd85aeb77f410dfdb731d107ae17379b3d8489dc694fbdda084b891a051edee04460393d4172992057b329f17b4e14ce62b6fe681437b165830655ed996e289aaabd30ee451011c6573cdd8e37c02df5acd0c9fffbdbcce3e1659180bf6ae668dd160f988724055340cafda4cd481f8a88cb9793016aaa89bf2f3f57600eb230474b998f3a3c873eb204241d4337b42537af0cf389d4aafbc025b44c3e57742ddc43f80a8242201c4fea8f5079f18ca472963ff7d748c25926d792a329d94e81c490a85915448c050765e9290b23d7cb479cddd3460f5134ff71a19fa1dc27eb04f0e30def293f17dfb0be6bac8d4ab161c4af6e46d38832eb67c486d50fb05cec0cf6376fe845d6b1443760285ee615c802c5d364e04df7a1d3d7da962b38631036cd62530a7c54f8e5f19f26887647a8b13957f49aafdd54fa992ec25ce2428ee6c9b03289269933d89f9c453ba073b326ff3c001f246d137b2d37b12aa4101815e1074a16c610b9540047af89bd6d0ae4f976e55ebe8f15971e1f8b58d938b15567080a0e28a1dda875471b58282f764974f0d39f4143355844d8eeba0cdb187f76176fc4a91ed67b45edced33fe1dfc29e00a70152a9d66e15aa13910ea1cac58873a6b7cf9dc617f8bea013d344c660c1b2124b5fa16b400dd6441fb71cef8c724fb0f3fc31a0eb85194a64426745259c4293e054025c77d7c8e3e787a0f8f36efb2ef7ef4751db9d6164f422078e4d6315fb86d5cb1f7c997afd21945a197e67a6630302e7ea8fb4c0f5bb7dd355e5a646cd71d61dd573d804b8beef5e0ea9a3e94abd649f861665ecb5b61dc4461ef6278258d2b68a90804da0cdf5ec33eb624ca3f68432e72aaf24ad020d37c5615c018926e567078c3c107e4324dea0a20302ddd2d71b61f7b010f020b4468fd619bf6b38d2d9f2903a6d131396586896732db61ba6105cc1eb1bfbf711295ef2e30b8964ccaaf326f8dcd332d3a1aaefe017b677b617f1ff67d23a145d60dc5df523922a99f3501a6d0f8d444f9f6fdf167909cbb2092243cf7cca5d0b374c4e9a0dc1bf0d1fab22e2e654748c6c7f600e4490c8f21f82b0b0ac3a6cbd821c5f524d315b072af90c4469d23dfc91b183819e9648a5b3aa3d92489300a51ab155f3a7a2aaeb9e2e8b554133fba3d899ed03a782426b74cc232085445e94464be415d1c7b5dd9d807e3806cd99a903dc45eac9aef0d9f3a26fe510a246fc5cb81b3cecdedacd5a175c8d8ddf38afc8fd3c9d1116dfc865a63b936bf2e4acb8b8bc7fa +result: fail +shared_secret: + +# Private key too short +private_key: 1abeb7b25254985f0a3098c11d8cbca61ab61250343393e4b42aa75ebd4440219161949c844f919d1438a3b655b47a5ace4a47b0b0f44f59346ae1c2820612b8fe2398810ba962b95c7423a64ec122b2492fde768107bc739033b012d36fa27cbd6df9168f3b86d9505d2a75a97f93 +ciphertext: a03c51acb217497dfabc7839876370ee7aba6139e328d61be329fb05a2a91c42f0581ef1cfa8542017c5934d28dc6a3fb47987670174b216606a30b8b38638df5b87b0c4316bedf85a662ad9ad3ec76871622cee9e9bbce95d027184c6052a98b3833da48b873f54ad307f88dc5563838d51d6069bf63270be14a673efd4f29648393da3f03d01eb269686dac9a4cbf33e4dbcf4237e1d957827d18f692c99564fb5041395ff6f6951c43364bb7d61bcd06bd1843ade3bac7ee311689a169d0133cd4e709f0afe81171014e5cbce813cdebc0f6745c63a3bdc489f695d7b2b6913f3d3caf188cefbb569a209baa8ccef2a2e8d430a1f92ede589fe20302c07853c5cf98c9191c5e46b7f21b74114adabf494eaf5339fa8f7673faaf50b38aea119aa498b331a101659f9cdbe9c40969f196a176f6edd5ce434d7c5decd80cfcedd6ad8eff0115e08b61609509f9f41f22f6b27d0ab6742a5fea491096968a37c10fd4a9e8dd6f98f700702cbe78f38b92633bd6b4fed71ba138a4ec909b3d88f83f09a16700211096e237fdd430cf62a711fed8b3b2897fe4c3bf3bfd235befda78539bdc6f920ecffe02c1bb6ee436e21a2ce986747e37e25ec1fb18077b93f9ffbfd93b5eb610c8b4127c561688e7567274b31c55d105e0780b2f4b8f7e5d78b4cf7dca14de411ea01424438b72c4ece7c42121dff9c75d5741f88fda6be56b059fab2498d13d54854909daa4621f15af08b3b913937520823af4c80ef4e5c7d7b0e593348e62441348f02562c18945f20ced7596d6554ff6b21e295606f435edd1d030a910c4a63e7aefb7605911cc08a9d4308d9a5b2b1ce23d40e155c556889feca6ca3f251f314116292253ad027960eb78744d53aeb700e463fde4466fdd2b321ee9916d0d86a2c51a66b3f24eac1096c0d0cd0376be366a4f86e5ddfbf13d42491648c21f11bd750d5f2fb5103e6301ab34792c458b230878bb5b7a64b018c7ebe438805d08dfb1f921547c0afdef6e5592a2d93f616a1bb347dd9e6d84ad869a88dcd59f2b1060e13d58d2fbf66c43caddc9a97bb166b7aad3146c9c6761c9a0448eb53988adc5d07010b97ac8b5b514f0ccae70397e0c8d93628f16f3f7c99aa1fb6548fb9e380f733e3d497a9b7f66e4fe86f3911de1f559a25a20a8609d3e785198b8cad9ee3b7015c2e8d73ccd4149012fe3f2ae5d45e24e504cff0db5e36e881ad36165e458deb3da96374ebd430bfe0780693dfddb3315dd27998a5133f59a24ea14ec097c07c5ad5f179d15c9acb6ecf759133be9d345288cb222394d1abf8a8cbc837e9de5fc090a16297b5fbf20edd51126f728d85586f69feedb4a343118d0019b9495b91c514bcc5b7ccf1aa7e7f6defc3f7eaf9a5f3e983171cbfa7c1873d86d323a74af2ea4815f557ac1da14478bbbfed41b970a95583468467d603cc80248291b7983e9a26ce52dea8c0e4eeca5a19e730f4428eca568dfa4b08d9ef09c4fa0e7673e02a624a93e2914652f9f4486a3d47abe6424d3762dd7c55683bf04dd7fc13a325a8a238c65b9d18c68d12cf6ac876a5c556c70e5aae0311fc3c4aabc0af8f5964c743849527fc2713e870f886be880b6f68c5c764585238282dfce9dd7ce5b85ca12b423b639394d8d3e252682a46c192ecf2859cef44231514a993fe48948b5d1ab23560bb48ba1ca79d8bcfa77be1e4eb6847217284f82b6b29c1978548a83e4e2eb739dffb3798215d88f07e40dc3cc15716b0d20646d9122f0de177b08bb1a2634281e099b722362f677785b7c05c57517d7cc0e8d22f65e95042c008ada5045b219df1417df09c2c073d2da24f2f292ff8f44558ff6c882e4ef9a863cabe982b05e7dbd6f0e185574f2ca2db6b0695a585dfff237f9d281fa1219a3698d8b46538e78114688de68b68e53f629e5f40cae7ee7f93d34c842c139e2c3d9b5830a4c5b755fdd1fe1cb7a0ebeb66075c61934818b6048c38c89e6c975dd414c67a6c96087f082efa7188db5991850a9c65b1dc76273c304ec772c626c31a6ec8072d4094160311e2c2c7946ab0b240ac1241d510ad4807f79e72a87c900bc5b8967d6bb82912049bf05f282edc8d2f755a038362014920cc7931b546eb80befb91ec712c74dffd9e19f5b5398cc00c99826571e4684ac1ece2efa33e2c67dde4f05e2a297c6200651dbfcef248241018b3 +result: fail +shared_secret: + +# Private key too short +private_key: 200486 +ciphertext: 85d45d88132e803e21f4ac300e3b30e64af9567337c2e157c45aabc946fb2edff08ce54a594d9d2a59ce79cef48610678107c51bc1c6dc6c06335f64c3f57a5594a4e8e4808d54adfc66cf64e8e8f5770b9d2ba1a747e525c0aaa6ac3a60cc7b4c1d5bd821f43551dae9caa2530f6823424b735a49683bbe9ec55d6fd02dad2b341f63fc46692636c16c2bbe0a80cce636b773e4cc52ff53963024b9420e5ebb5fc8b514c07edb1d1c9b765b1a356ea85bec514fed8008af999ec666e7d1908e40f0951acd09fa08d7463ed8d162ad0b5a941d2a59a32fec3795c19de06ef4ad1ae7b5176ae96aa906538d76d808d821a01c933e8c74d91d5666e479cb6ec956910e1638d5728536641faa81ed4d56e44200a8400eb35734e0cb0794b542c1be64e936a98d28e1675f6be05260c15ea7e05568f3ad59de8587284870948ea62d6192213f0c9d590d39e26731535c8708860b5119c3bc5b66562a1dac5f78d8d6261fe49370e7f4196f38cb161fd8934478fdbd20f66a57253a45dc5d44012cda1f9604586c25b6bf43bf87ce9728d300083a20f6fd1117aa1edfa790bbd39f8c48980e1cf362f9bfb6b22d8f84a700e899f754997034a06a5df580edf12692704e39a69f7b3d1a553a44b616c5dce6cad13d9c4fef4596841207afd9e3432b795a2bec777311442cb405e955ba34869af82d644dd1a5414b71af6b56852ec051dae0c92ad0a86b0c4e03be656feaf52510c1a3f3fc949baa8e8ef0b60e237513ca8361e189f7feb6eef922b0f85ec971edd81f3baf8fe9cdec84b79e864461189003aa0be9ca4a241ee9c49468fcb68d0d8019075d6e1aaf09b49b3495733b5b0026dab0828244bfeac8542f415f9ea1b00e4c42f456bcfbfa23743af8ea98018e6f54b28d6addcdc0263e0f8c926ae7ab10275954461e3dcff08c843a38fbb4fd41b2dbfeafc564b5fdd58bbd0c3fa11d99766a23af371c6a88907a930495c3898e72e4cd09ab556e923b24fdb527d75d5629d9392c63954713cd62c4358a6c584da0cfaa5bfd201c3bd9c52a323a705a4d2feaef4df4a124e5a0f6404d16c25463dd396e454c2a7cfba47dc4fc2f8de712db8cf512a169029ea91c878a9f9eb1f1cb2bf67f06c67c84c3737a7c8267ca00a70ca8d3b357db9cfa3f4b56d1107112b49c98190435426eca9333c5805a848e83834e9c2b3eb975a07f85d3018200c654c9db3c589b36d421893639cd0e3fe30869b594c663e4dd1680f362806abb263db8bb961a64305a75a15c7b13fd5237f3c8d040e0586596a5f177f078c4d9f3296b90857db7bee12ce9177703f29e0e2833907a58d760e73b5a158fef535dfa12a3d0c30a2c58ddb8efb5e347746272cb3ff918750fbdf5e7834bf0cf3a9c01dc89fe7a7c47b66256e0a73019e51478a167d9b48248b8fe4e3b6a4dbcb8f25a23cf0f5093b98d2a60e535b0d2e0bb3d0e6abd2149a20ebf783c19184e1dc4d58818591703e3453ce6660aeae26154bad7df5b70fbf9365084d8a1526d3446ade928ee4bb72cc32529dc5739758737d14591c1c7beaa86e71442e6ee8a243f0dd924834b5775fe3279416e62b4213a51a40b60f3873c52db2d6056f4f81ffc816f65ea18f35f4fb0cc50b671d5a29abf68f49f49d6477f8e2ff93a81e9473a80747d27031b6818cf62cba6353b6c48fbce6528c36149ca8bd60c72e55a5fb6a2ac4c511bdee4c65b146c1c89b68628ea6b51181916b187c3cbd5971eefdea3abbfd51e1c7e2a7a85ec7ac5c8eaf01ab17837ba585fb8d8a13fb7b91b56ab913dad8c48a328bdc0d86131fda65a3684ec710fb8ce301e3d54abf4f2b534e896d33f4abbd831540559dfec2f956227d3574516477b54dafa697a29457cbfee84fd545742759cc4bc04346b356fc36d57cf33f8b0c14c26f68b4260692ce7a47d76e680b855b1e6658ac28cb6280a06892152bf3c9193946d59926f51fd477a30665baf08f2e19a3cabe106d572b3e73b3483428fb1273f6c80e0458edd140ffc415b1c909d397705b8f7cfbc5609a45b28f79af96f2a9a5ab9577c45d1f25903d8da70be540e537759a37500f7a46c8025431a72fb24ecfffdd0ea4ad831af2725907c0d22f3137e772a421a02c3de29d477d3991cad1fbc458f8a600731ed0467009f59b56d6761416d852c967029746d2ab8b5ae8da21e3f385ee8d48c32 +result: fail +shared_secret: + +# Private key too short +private_key: 42bb8f194cfd802a772c073b251eb67a8179106c37ca242b0334e269400ecc5a356237489645072bbf34d0797a612fe437991b22884239a42db97e84108b886297dce7bac4eb610c68861b7bc418e766f22bc73812c28b2c1b5a550d9974a3a3e53a8a4676703363b2444b54e20cb930c86691c99533ae9ae4c5f7460b4c9b98089ca7dd82ad379c28a3ba44dc67cf9bf52f7ce44c31285894e35f8d09c856d109062c45fa26b002d08ea11bc925a33bdee15fcf185875fc99cb360dbd602d95089b2422593ba7affd138047b966cbd80dc1d04da19bb8d135330a666989cc13930a503f888b9b9b7e3dd9247b7318ada93aeae3b3 +ciphertext: f5708ed5b8ffa420f0d65cabc437cded9d4eb099df8aca508410cd89528ce4451f587b74850f1634e2f3efa3a15668cf66b5bb47ff497edbad2023f9b0d1f4c21725a0ac3f9b3003cdaf6d0b8be831eb2c0dccf466398241701f5348036cf8c1b2fbf0aea67120e41581d236785b1346abbf5f1d4b761349768f288291649c4afb7914ad1223331d247e1dd4db58c9a5b52e8299fa37776fa99284a7503d3ab8d5463cbf1badbd05873d7182b1a12ce272fb55edfdfedbc216499323f23c5705ba6718f030abe31a3132ed080d62c82b581917c28cf31bc486a6f446eb8a212165585129be4547c8660aad725184b1fa22992c4f0f89316bf5cda7c20677d3cd4e4f23b008c65434b5bcbd188652f661fbdaada750dac202414a49ab23d3f11e3585c86a978dcd1088d3a3426b6148dfbe4961b6b7bf0cca81689787aa8744119535fe6e9ff5c58a70c50d7bf10fd5a318881a4dc3af09dd25f71452cf8f8f0f71b0312f1e504176c8ab4e22b8b963fac543f0b54687cfad8d05b3808be9deb3258f94e0b6c7ff6b96e374a09e9bc29d0698df305116073efca195d0167f2637e1d4c92e14f2298f3f856ad135bdf8c55f1d6b7520a484c793fe07c2aa180df0874d6f59a013c6cff6d1bb4e2a999a04f5309a068d03e43a4fbd46e5cf6d6900db3bb739527ed27e05354f2fd0949667b90ba8b099ae24c0cdf22bef1ef2d81cf368ecdbb924db0a9610a6e9edfee73964d9b1a9af47a551a96c9a38688ecf01aaac04e7f56748e2bff8aa9beee6b64fb0d6a7273cffb4c45218d75e314f00fb6bdd17d8b9fca00f7cb59f9a2514309f5d2cd854abd947a91abee5136e0be22658adb8f07a3d1b2d6127f25eb6e74a6b9368efd696cbc3a01be1aa655502a3bd46038279aae2b584032c11ce3102e80b015d299a2964536639ea4126fc894831e986fd1bd2267600b9635a0bec6e4505f8945736417a8765fe57bd4abd84686c716de32e2ae96588a1352d641a299122efc2b443b63843d3942516a016c4c931df4531651319b675cd48919dba8324d03eecde3a32c2b8155925dc3118779aeac3ba4da0519d4e10a5549665e518ead9e9dc7f97024c113e4b5dee7b9251a6c97e287ed9b8ea99b97b51de0f77e364056a4bc4c2b3ea934ca0bd8d316f5137a4445aa15aeb7fb906254f777a8725baebc18281e3c80362806718363e97c8532c5edb6dd13e4c99b7999a1146da94427619a579f32a217dbc99d874036a148b8c9d2db2acdb8a7cfaa14ee4b3d0e6c1f7166aefead0346635a045755c761fb9e989b75ebb0d0cc7378bb846dac71b22c12f9f676972fa47fdebb61b3e58f5a86ab564be0ac7ae25920f76772b74b03130544801a8e9398142b59cba5581c2f268497a4048e227d67d7cb04d88e7e72eca2c5ba1363bc4f3e8bb0949672cf969505446e481a389c61073f1c77e8a97964d64fa46788a7e079a829ab64e981b0cc34b2461f5b862ed8cfc7e838e7cf69fc02d8c78f7b11808cd0327e234c3831486007e1f63a72a482704c7d8ec804e96f2bf850e9fadf7c09f2119738ece8c73a12990cbd34899edf3966278a4a410e74d217ed582869a3808a079261fac2b1642aa3f285c4e7179a1a9871e2c0dd5b38e75b8b3cd12fb4f2120137c1d57f49a88caff4f4453070013852cce37e93e29642819a4f25afe842a8e712f3f5720c66bfee08f4a2b49a300aabaca212cfabd8558dcc4cf431388478b717ae51d93b852c2f1d54eb7ad82598800d19aeedbe0a0dd919d1b9f5a5be46065061012c5021c975e501510b09b14dad90725b7a899933c7510ce09060c5cce698a1fb9f9565d10c784ca440b0c370786e648751b0c6172e1daf43e7e85ec560f21290e5cf904337ca8a0d3da950c01a858f9597d0ebc189190388b52d642690d993ae9e7daaca8db1e5bebd4de60f8d6ab351cd872e56ae2316de3349634f3ebe550eea2305da477a986d0b49fd4b584e2ca9de39276014c119d7493661fd075a3f5ed00b42ba4597587fef183527b6db92eded63977eeac23365e0cffccc85afbbe63c3a86f4eee94587f06d9b630f1ff3e086dcece458ba9c410b7445cc0dea7a8dc6fd31bd40449022c99840e20032e43e872493a0f56a2635c376bf242dd423284d6ec24e9326f5bdade5204ef5a98efe31107e841e1d2b9928b0b5eb441d6e171c04023 +result: fail +shared_secret: + +# Private key too short +private_key: acde6d0092 +ciphertext: 35badddea137b4f2f121e6d1c4bd8eae148e61b3a050282e12e03cddc3203b81cf89e1c58cf5aea241062256609321f41e4e82393e2f5493316f36df913b80f6476b964f7f645436c86a14e522a6e5b49377051918c6bf1cf9ef2dcc33b3907933b62a1dd0e1fc304fd284f7c5c8377142695898751dad4b0460b7e7c1604307dea01a0e10b3c40a5f7a80b9960ec91b6ce1dd749568b561dc1683c9d88bbaa73c40dbc9863e7d33e783ad2d0b63176c561dd497690c36ce1089ff0ecf59e51a96026964418ba0b4bae40f9d6c14efbc5f238cb406bfc3f62fe8db44a874e698e57066f1c9bea23062eef3c5a62bf3c8f863f6540977bc603442f1bf7cfbf3d976c3e09e3afa06e5ec98f836f326b685a1667741b7a0422dc485c0424917649eb8017185fa070594909d09c0a1032dc225e557f75248b1d567dbcf765af711d75a2b984c7d4293f4555420b171c3a25ffe07c16baf1c444a643719f8652d621631c1d5c46c8cf536c46d90d96ea648827c29942e2441e245f3e61c5c521bd8b12d1c6600268b81366c947f23a88fa5249ad0a5b79b32ccea6dc7ae93c0c9cd1a6eecf1e8274ebff756cff294bd7bb6a78d004e103cc7ef740fbb8cb14e4f7c53f269d4161ef7715472f7421892ec5b3b511de7bf461c8d581da02d6282f3b4cd3c5b587a983c4e4052fb975d29972c9ede504a1f881fd540241e66f318dad44de7a3b1025fdec664dc8bce4f08daa8cb83a2486cefdc48d03fc2622431eb2bb52397496109c0d4af80c3731952eb34f38258826c4aad54bc6a77567955e84e4061549d7a1db32d4de6796694f41cf3df881747779cf522089fa30f54b259bc02a851f372852da97ff049c6ba9fd5d8b8ab0d30f78d97810e30514a5fc70e34add5b74c5f68764f04955970916d07d61fd508e80d37b612845075efa4e01100f3cb6d57aae9b409c3cef38e0014aa07c053db578cb1db65dc925478e10ed33cedcde9e41d59f2511d4a30d98b56c21d484f39d7746c9800fe34dd4e05cfe573206a16168a6c507450d4a4be208e9022f55b4292c72ae42b4fe4acfcde9088ff4c43556b9c1ad047b9bf40d30667830de924caaaf2613c72293ddbe0c24a86ecdc586a9198ad3a987a36e4c9cdfc16235f9141145b401679c82fe98fb6d8c431e558b9177617e30139dd1ff2b3145c5eb9118c88f88de770281e7518b41f94b500959a2b688268b272cbac253f3b7d2c9a195356266be2175e2887cf8e25e2e5131994b773ec3270cdd585de041e5f3b7a63a7865a752e2b82fc4106a26ae5bb8b279d6984066c975d901f143f5d56b0b576c6e1e8e1fe3921190b06c17aa64fb7cf5db0ef301e413d5849db714b64305ffa301281784c4e479c3368320e1b77690a6cf95e736da5e3a881746218bccb913bc16c57b5b0d08f0039e8a4686ad0c3c3632b48fe40a2000d85a8e9e3549b4b1bba78a55eab3226a3f7b8c2dfc8841a08ff3f964ab03169c84e4ce5d49a7191f642a86da457b4260d7edd7ec08d9cbcb403b3dc37c6945d1fc75f358e253f20715b769abb5f022ec70da9a552c79886e5164e812796d9241f9bf61a5e509ed77ca57e0caaf81b3d11eec8a4a7da4899fb1adde712bf455d77ab0d4af43b387dce7c9fe92f36fe42a12a50e3ec744a5f8b568efd16731e240c5aa0ce2393d5ff48553db5383509c1b7503b466c138fbc029b877e83ae1e58c893eedc75f918d0aff7d9fe9c480b6acc76875a44117c20695ac61403bf26dc7267d9d69e9afe30c147c1d447026f5cd3c2cdbfaac79b30e9c1eda5e07ec4d8e57412b679caa3238b7f1194d4b4b661dd0a99fedd5efc3f3fd2ed4fda18f1a596bb1c98a0ff82bfd7f07b3e55a929c10c346b9fc754d8a8e2d4a0e66f847bb63e6cb166817c6ac6619aa3400ef6d0db6deeeaea64335ca4719a30645e542e5447e9853a8d64c64ff06f58b5c642195575fc079d13cb055c7679f817b3ff05c644a295f304b55e182c70d8f740732ca26a404e103bc2772dca716a458c394facc9c03ee9ae92cbdd546f4abfb3aba9bf1cdf1230b8da8ce84537e54007e65e8d23a7551eb7b8f81e6cb99ee128543800b765194da6e92bf08c4236d9a0cfb782ed109f107056d29b352b4277ace2af529cd85bc1fa5e8fa76758a0a3e6215fad8a7b64e0a9ca8fcb4784ef9ca83af889572600da1a87bca8 +result: fail +shared_secret: + +# Private key too short +private_key: 854d758ddc1a57b44cb0f39b0d91f2cba355946ec07a456166af892b435cb0a1f34c9342135d7a1888151fbca80fba4792a88288da2794b2b89a1a67b55c2504f0956e1b71cdfb478fe74473cd6badb901ae1e1abf56cabece0b7aba96a8502100ef3738a8746f0b762a309c3e81852fb185c078c633a6fc264b1a8f55fa7d4d14013da3477879c9f2a03d9b869b7862ceb84a163ea00f53f47147260d53a44185f0ad972269be8a85f8080d031c150eaa2d2cc5684e0aa83fa0ac479b6d3fe118995a6983d9a5166809176c1b3ed614d1752ff94c4918b189237bac5632 +ciphertext: 2e87cfa58e20b4b86f3bb3075ffa8bff67c087b0fa15a845b17ad77b62d99a52748e9f410c9ae221c108ee50f00eb88272208da1ca2b19fe9c04951c58b417edd5d358448652468c4de59c1c03ef5279441e47a2318890058babedbef90433c82c0b3026a4dfb2cde737bd156b4bf099c715986106775197a64e9ea47e0b56e434dc08e4bfc8fa40670ad0d85c97034d0b8783850e52913472482676aacf436c27ffa86e7b8454442e5d4f9e948773395461b6dbafc1133fc4f271d0bd741bd833f5d96b56e3a2ace9bdd6461f3c0be2e15731e62a97e24f744419e942037a991ea3f832e27acd1c00d3367d26bf2552059032e14903dd5e04345a52da6cfeb8c6757be2af1b9a2956bc584e83333b8ef0481d18f1b2c1df9a850d368aba59b5ab53f8b5a09f1f6aa9f801da2b210f3d33f435b0376d058672a6a618fb6c9110311d8e6249bad19e7ec1947f038ea9a315667ca485f1d786dc9417d9057a1a0f1eec83f364d6f72ae57a5200d54e70fbe4661b97c6db3648f33cd8f3e8ddb8199305a4aa4f111c879dc274eb24786bf4e14ff4c0cf3cf5232d4eb3bad45f320fbbae76944c7d48230f57ce567e8749bbdc06cd39250ad4b2a4658646cc1d5cfde359c091cc71461f7fd45b512419a4c5509ba03a2fe17c098842d31327aa42651352c1acd86a055f9222ff6024d0abc44148b0d913a55fb03fc9ca57efaedb3a5be323dba66d829105f0dd8ffbd530cd9c9c64fedca4b0da54ccf44d3ad6b3c3d9af85d068a5ba30216d05a1afec314983812508dafc4908330b6164034255b73bb34f5364e25ea8ac13bdd1a604b55c5aaa080b69225f36df2b9cd1eec8d19907eb29369b5ee44be5a958d0edcce82e336aa1452e9a3f11cb1d83eb05cbd129894d183dbaceb93e627652595226739438a59de1386b4064a27e7381df04c0fe2e0979a915e55ac77a84b67dbab7bfe5e831a770ffd2a70dce2b435882e54284b626b110efa39bde7028043824363a7bb1c3d139961a0b0ff7b5151cd1854396f1d95710ec4e80d7a17ac451cc6b9971d94c7542e76291d0966aa8e824b467ccdbcd4744633d0216ce486bfff14e8364022ce73853335a2f57b7efebfd874b16c0b98566b001665adecf57c60121b4db4b4daad1db27f9de346b7c707d73c50764d1fabc8deed424d679c38f3ead2dfe219505acea7348ca503d5badcdaa45eef1db45f1166e065456374f9b6b7872722ac5fb36ecf8ddd7b472c7c2544e30cb1fb67dfbe0177ced284e1ed22b8b7a328ed707e9932da82e9fc8088029aea71af51d5a81dbd1b6e221c0eb6c9d6204130373f89a3b9a7f67fd62be22431d0db9146ef02aacad312785e836f1ab765e0845ba6fc5240b596e63465f49d62897544ddd0bb8f98fb8831ea8f43541ef356a9ed7e598cc7d98b8e03e68abdce9047e1eaaf312993ff0694e6f909d7e93b168cd006beb05fbe67ef6db1a3ce479f9ea3f32cef37ed88f157930b06156a371aea6b7e967bc205f466f66e5498b5117e32537e86a9c165b9231d4dadf5b874ce6af7b6ebab423bdcdf2dc3b7414617b651ccde9fe3a2e45055d124f91ebf4cf5637987d37fcb2a6933f33aadf30b804d56b5af140c5e1d4eb70ded2a52ebb72e7b685c7fac7f385560e5f2df285096138c4bfc6f7c2174ac4ab7a65205e27ab22ea10736663d32c757f4c538ea1385590be4e1424ce02c124aa7339d135b97712b853cce703bc7643c2f64eec06c4f0f18fbfc837c545b31c6b4773b93006542112730bfab2351d11e0c9287fde265477c2368d04e81488d20c8c0becfb249361d489a832b51b6ba1bae557a412af3f7aa9bdb85451968f106e2540aae813cc33800da3a5c60f641b89780427c8ae23e4aac3e5e4b9192275b4190f3fbfd1b0fb33b5c6c953c98527fe06260e9ba66f0600a85fcb999730b29bd94a58213c19c3fd0148be59cf67a965e013d3fd6ca53c0ef3714748baffb4f52750c58906e7d03fead22e3013c90bb32b2816a15d7aaa11c887d1dd1b61e906e2129c67baa7ff9f3cd30bf5fd47a29e2133721c4b062de465d1e6db8d0d03267677180383526d963cba399b4274f32243de160a99dc07a5d92a874f2a45422f3334dd0a205d92a654d30b986645fe36586dac0c9cb4511a7eba9440a5e22368716d6525cdae619da10c0f3bacb5444cdde3492f2f8de0 +result: fail +shared_secret: + +# Private key too short +private_key: 3c5d5405a7a63bab8b51710e1a63704187163c7549cbb5d2227220c06b82c236f6582215c63d3fac46e82ab1a7b11533db83435b1c5c35a2db58570b75488ae844f78378c9f6c59c248f86c5246382954752959b8399e1255943588bc3f40f760720e2d375d581b0711c6a0b703946d94dd96b3b1ba77a85b6b5602c272e74a23a912e5aa78d1867ae5d4c4383593cd838ce4766c488a524ed96b6fd5832dfd35645e5385bf97ce6c148bcdc60ef8718fa8ac63dc23038330e53074690f728655011e0a666d3b15dae632b04dc2c09c74fca06ce38f093f4529e6b728feb896957c10014d702b6b7915a651f0d3a02a46c1d200ca8278c1750ac6f53596eb2619f2f70555732cde1c1baa3b6354e943c0e1b621d9acf1730107b965847c6af3614402f9c06529b6b399082ba693dae7b7286b67c9e902d997301a7d5ca5fac7408190d5d8082940c89c7661b07ca03e031cfdf6bc8a4d41a68daa6dd197ecfe32797e336252620cf22752ae63c64d94167e83914a8b4d5239b172c85f7d0229f00a5818543b6645d47b70416ea036463c711e4539a34810672c945f56e3e3367dafb087586725e964d57519ecdd3672e79c9467b255bf90343554b86cb16dc96c99afa562b516815680a70bc0977517f0c3447d3256f4914a132506cd447c8780bb846950239722c4a4a3864a92a75ba60c9db88684aa92e9426dc633c87c68d069502d0f851559b4224189e1b40c364f59e9a3bb1dfeb7d42d46f93827e2a5c305bc98f71a5c269895232db2d6fd01672270741416f6f677432ba6e52a4c35136127ff733896ac9efd7b386409f0d071e3e44cf0c8a5b8e66c3ddc2864315bc7260b02b2a0c5a215a45f9624bac0e5075c8d6327fc907c76a2405a3c96372402e0c221fef662828999a5679142d05ad9240ba96f645b5a022a6b86ead58c7bf3a2f1b30b4146701a4b703b77b75bb746c004c811eea59824cb46b92995394c6fe057393c01c3024463c09aa7a250c52141943b5bde8807a870b1fa5a64693e48c2ad43fe5166e4bc1141d6c62404669f6325fa90cbb9d34 +ciphertext: 59d2a996428a6ea00ecca56f866b924d5cc36ba3f1d6dc03bbb02340776e14d4f7c748cffbf3384bef25ff4ec356fffbb1411381752e860320b0412bf5e8b397a877481a5cc318d89e64ec2bccba10547e2d0f6bd7f65c22804066b04478a661c12ad97f1f1fd5c047112218b3288d1833ac89375e1127374631e210fbe6c6db8a154f4a47d21b08cdd1c2182f5cc00ce6437f91075e952791486efc5d8d7478defb1582fb8eef016b7aa3960588e1e898898aed4ad9126737047cbb6549ae3a0bf08260d5c38fc45de6e1813c3af63ea3258164bfa8825752ffeced7ddcfed28823b1bcd3df2d1a50b1d4206591b3af4c0cd85d3ada783d30e370ec7d39a878e8c823a0b4900120624a338140bfea5d672296077815b16f1e8adadb42a14864fa23d29bb3b2e43c529e3e36c05a240957afdac1b68efaea68b8e499970daeb642dc9a1aa11ca0c18320b17de1ad0637697af7c310f807df3d95e3ef43bb74c5f92dd0df89272d62bcb46f424ab115c8edbf4a493c21785b7349278b3f2f7a9204e51829a405636804756d294c629c977ebd271018b10307ffe2137a5bc768e66565eda91a13783c4e2c9277b508f5772be1a0df02c22e2cad9ef3ff1dd1a9df88b3488710ce0229a3d275535758be9ed4263b1a8db327f5706a537f46c8ad36eff5547e898c3fa00e29fe9d5fe50d60c82ca17967f1a541ac7cad294527bd69e9adeed6e779ed8308a72d8fbb5579c06172adead047042012457420cd882439ce866529e1437aa46dd0f4e5d25d15ce2b523ab831cf8488906ad74a6734fb8122c25929370aa76f5372e5abca9df8279f67f040bdb382149efced34bb83b521a8b2bc0ef45ddcd4b25baf9cd3a759c26b8b062e6d5267251903bcf8889a08f7a949a5a92cf406288b9aa471d039c0486c456de6e33489ed8280540a817aaa70146224492230c9bcc5e8dda70f623b94f97ebbf90d6d61bfd6ee3ce994b16be9ba390d6181d34d3e8dd50de413e51c13fe4f0fe41b96abebb5d07be8141971aa1f357dd9878ab17527d77385f5e098e08433dacc6e5d1a377364e8036b3b59b9a890b7bce0695f9d86dc8e830b274e5e28459ccf5d5de97c3a06c0b92c690fc44dbc353c93dbad4d796e678f6ae5b1a5ba006e4a97621e0c80407dffdbf28f2a07e3f8a26dbdf4214e4a1a2b3f9a886219c59b20a1238d2cf5fc7dc4bb5b51e2279f5f5f517177a7132a3fe88a3a11b68ec8071cc12a28ad183c5e55e2ff8dd6f4cb5203bc44a3684e9193e1273727914f3094c243fea95b4065c4a1f2ec77dba52b9d99b54b822ef85aafe8b1ba39f89bd556896e886b00c4387316db23d45b459cb33680ea97363258b023fabc5bffcb7059c82512d5455585998a0bd937b7889014bb213dd9fb58610b16c0b058e9c9472c4e6ede771c1cb93b880069e625564c56e2f172e8a66d94ff0ebed29425c34817bc76b5feb778f76902cacc1c948f6ae93b11cec8c2da420d18ef673f89a5952631feabd8fad8c2700d3e25befe67fe8df7205be2f8e54fcf9c5f13d98801c53dc4224895d2ab94d78f73491390b73e52d363f18dd91671f00561d5e184c25034afedcd577c1e10d9552e1d4a59d8a935c94dde058cac23bb470f7f37f17ed0a47ed4a1ebf1e7dcddde1cc95b3be4f9fca120a104fec91048e0044e7c6284ee4435e37f661bfeea8555a3eaf724763d2a0ecbebbb9aa3566bc4684293c289ce81381ab971da1e4d006f521a88ea8cb54323b67da5610fbcac8fbfe0304a5122c2136ff96c6522b04ea866102f908081cd8833bd32a8cc64c65ab7f1d093c5bb3d843519bdffbeaa62fe4e3ddb1ea7e8a338964fb9f677d50787a099fc26137bdbceed1a3228e2f42a2f3fc86241e7f7e14812d35f6aacbeea43ad65e33c9dcc9305d6c32c7886edf40b600f168783bfbf7a81b49743c80e767db7c5fc3e893b761017b4580ee9b5184557efa26d590ec5f6aa7e8b4a54506838bd2edbb2930f312fb7f1f1061d71c1ce22b681531d2e9122f63d0ae33fcc334890f8d714d860a1124aefcdb98bfea081bb0c4855ad5962c1643ff6adc9e1c07160cab5b3effbb4ac8d93a71d464cdadf23b28dcd65ee27534cb7bbeee9071f8747366a0342a3c462d62db29f8c41fe2c0558174106c3bfc72fc7c217705d4ebb322474d09790f79de44090ae8c6723c1412542f0 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 627201e8163d7ef175d3da079bdb38ee548d2aa248acba193fe742ab647bc12bc27e6399fd580ca4611df1036a880418d74764024cb660b3a8d12ba8d42ccfc8170e27890f6a9c8c29212ba0e55e6eb8bf219cc6b23b676cb9ad12fa6c0531c6e1ab26492935e4457a505a646c84c9e6b245d4a99e5404a85a488ff6aa395645104272402ee37159446d99471cf39ab002133da920a1aa0196b9264b1765880cf2afac369aac3314196a0ab3673dc1918e3ae6520242ad113722fb53b6cd540ccaa12c2dba9299fc3bda66438a358f35b822d3d84654a387d7b48b70217304f361a16b858b424ff9743eca658edd307b76da8f43366db90045eb2b6dce0b1befd0a46cfa54e4e4c6aae944721155b1749bda5084627926541590ca19a0814ba21a4a851ce9b08132083a08835e438279934629319ccae577d2533c5605cfc4461a5e590b432c1608599ec1f3290d25c18611a10c98bc4e287786265736460b6746a96a4228bf13722050b3bf822a4eeb114bb96a9329cb04060bcb4a4823a59ad26143a8bbcfd43b15cfa758e911263ce9c92a20c6b7530a1c74462513bd6f36099d9118369248355880580364bf1ca630581fcfcb1847282a0f7954efe074497b09da719b57a4432e35b0365611392032e5837b78a52fe9521dbc06928df56f91eb703ec6c24362c69c47678db3ad4efa593fa6974298c7ea9c369517b1cc38905014792482608de1cab3ac249219a52eb0b9fe13385ed7bd9b7c5aa22b24b0892a8e19a061a6141d2047068a2f680b58a7e5cd74c3bc306b63e9603e835112b5fc067e522686451c3260759ab157aa9059da01bf7e7656eeeb7f16d9a65d77c5faac0e49a4bc44e9cf4b3794bebcbd464a768929a0ff808ed659b3fc0c6b319c416e009deaa3a9e8e6a608ea1b44e26f6ac7a032333ebdd57c743967087204eed6753a3a9e19a41020d274fc68c442135da75557c9ec31e4b4208264867477c5ae47b4f207c86746a8846557b4f69251a11d64e38fdd998e025a2d1b0923f65a5d3f222ffce046e1831baec73a5504a4df80aafc68c4a24677696662a44aa23a31a9ab4061f6b16902539fa07210aa778a1e3451b301afa9e848c0111f78b3094b9964e66ba4d2d8c67ff88c227775c29a93d28c74f13b7c29ca47974178027c3badc6a35bbc031024093eb74c87c28de568bab5674da06b9029555bfd296517815ea8fc5e91566f8ba7694ad844a6702510039651b40ac651b2c75169ad5002e0b66b6e0a1d56fb0d1ad0aa7f83554ed036543641d942b574c261c767517d54a66a402c45d173009c3a1a0873b9b87918a2408f14be87e734eb8b178d27191a5037934ba9c1096a0cfa247f236c9b62a61d2c6973b489d210c3e23b77bcfb3d15480fa883ac593b560c83781ce453962b0310868c20bb01726986680270940701d07294dc792854c20af37b4941fbb5213c3c6a6abe3c5139e3734ad6181cd3d258a2925e9675941ce08215d03fe0e713ad152bbc654631692b489babd19c1368a9af95e6c7b2158d67e9250959103ae9cc9f899fae56b3b5097fd47a438f806092b3cdb97133aa359a22f6b5ca615d74c3582b646cebc64455770d39f9b66c0a79dbaa1f7ba71deacb1d6b970d658c2884ca19fff3c9c8153eaeba34cf530b7f68573de31a602ab3932ccc3fa17e0822649adc6490447d3d6733ee090f0d64ab8eb6492d1c811cdab32b07c8b68b99ce5caa97d05b8c40cf3c179fd1b46fb3123539454b914ba492f97396f0bf0b54b4b5255db954cd78d9cbe83c57dfb3252d6a7a35d316be7582556c83b592cff2eab56b0bcc3c73376f353493627fa9f21d56e7c108ca3c0a56442235b3f9c1768992392680a6317296edb52e32c84a34a135d8f883581b53d1ec70c656cb23fa7de956890371091502b210852443da1501662f50570e063bc9f2b002790a14b01c7fbc268876b33a87214dc4aa467c171950c65010e6cb5d8baf61b537d7862c2591654782b7a4674076a82f21f54aaf3b9492201fcae9a05aa3cec05040e1d2cfa1f808834091609a7021d65ff649ad3e1cce0253353bc31d5f021f0b02373ff4139503160ea5534599cfc6ba46089705ea05168c4c8d82f72d12ba1323017ded550680ac29dea0698e7026283a1a71f796611c17acccb3053b80505721435aa137264eceb182ec3cb550a1b75fc09748750952fc555231112b005ae62c3c39805d5a7829fbe1992c029c4c59530386343682b9a286bcdd423e5f96ca0a7cc31f367cc7f724aeaab5e8cb4554bcac023c5b98b2631aaa42dd4960fcb977b7915998153483c169421b5a6bc0bc2f543cea7a960960b2bc23c32eea6d72448afd74ba67853e4f0c5adf3b0b40f303b35080e2b22817355082774d9e25ba60c79f737b8e0f0c97b8a44c9049881e2c824288cc85a4a898061442e6a4186637e00734d77b94bf1aaef534c3baf5c90c3a114adca667002208349994040f6a621e77c4346ed290097354d4c8b9e67bad3bb85ace57726e3125c020ab25d4bab906ce7a2a4cf3f16af6701bd0fb9f03674830111a0989203a363b53fc939a30a7dcc558d943a2bca611b48625c761c08578114326b258095dbd893f6dc79c03b6ac74511de9736a604a9bce7897d7bc79c1eb62b8f56c2aa50a2de4845449536c400157a20f604a13bab6ca5c717199a559294710461290a8b7a618720375983718cc9fe1866ccc38a1a7891b462ca678bc62d29671ca378880a59d81b721fa47a8380b9b1631854aba722a20c982e65c3bf269eab89fe164817db4adc974c63e260d7a957774285be4e3bd595443137071af7029ccc324036c3ecc2234d56622f7749b8ed9986972350fea0dcaec15412bce16d2bd7dc83954d75fc023c19d30a33c784542f0bb4c137456c68dc6b51350b0c5d8527a6c691813a216f85a1219d74e88955c03686f5b784950295723522a4f958dd913000a2c48c9d984b26a632944721750be22d0b4cd06c78dc7c27c160aa3d5bb13234dafaa9ad713207551468797846d997f4ffc4ed8e32d5d6916d8a29a7c768244295464b3bc459c8411fb08acb4818a591ab2508675eb692a3824ec460d553262be110d14968e129c6086326b82124a07e8538fcb73f8dc7a3ce909e28c9897432dc401be350a687aeca6b1094216bbb0ccaab18e41b1e6193536e902e93a30f43b6118d4ae70b3788370a1b9606bc0742b085a5768f593b0144c2dcc7a05d41f4fa132d224a41852c0c3b6b75da2000987509c32124cb0058ce35671bbc4cb915fee96768d06c6ec680842fc8865b03b0456c4d5918381562b2b2a5c5e309551ababf6f18ce6b3b431a60d43ecbf0bf0672464868b301e554119a41429d65a3e23578355d6719aeb6d4bf0cf98b6952a007bc8408566d65e4d503badec4db7d6b9de8a2c8efc1674144f28b02da7771ba161c3b08791435092b35c67ac95c58df12dd0c3c5197c343105bef13ba6e4e00fbe1b6d359c61180245141b5ebc4ba3370759f1c42af6f56bc332ac3d148f99138083d2c53f021e1d115256a33d8761a03a032cc6b10b13c28ad23c303b13b5cf48375bb1810c3888ebfc084904aa52d69ace006438350f053c53b68c3473ab0a7385c4e6943d9d00b8fd18afbbfbc2eadca7bab71319153d59917fe7512254820cf55b95efa031a61210cfba42353a84ab6393a88066bd299f2099705090b84f73be16bacf9f4cb752414274e87689fa4e73435a402c700d258456ebc4ac4b5926866010b59c136341eb6988d9e00c8e6171705510bd5a0e1ac51732c25a04663d2c995f2847994aea3a8b55af886a6dc8f20aac8652533264e3691a3e07c06eb70e4838429491764ed001e3198727d21352e7112d561393fc51955b48a6b1b9beb0cf4c58014d56239e209e9aacb6cd3253cd419b4dd28cc6763f0b23224bf40bed6a32ffb48fcb778954945acf66b67c96bada679214831b2cd40fa898a541ea63e6260f10f76cf2e502dd49664da631915b4581d1a628231d1a0509e0ec5cda574d4e1955844707d9e12071e8c98fcc6036d540f0694378a01f83b0c16abc80da311e3c2ac3eaf88d5b2ba090855b8fb272aed60eb2f678d33ac06368656c9a4af042c0a381a79fe38f51c5329df1494fb850d55c93b2d751f37061fbf25112f5741d2cbdcf5cbb60f54f42ac95b934cf74247e10c56fa7d39e7e15730389ab71d8345de7bbdc38b2ff50c9a871bcc11a547519a6e742bcb449bbd9d9a0757a9a0f962ed76b106de91f26c7be377c722de73050b562bdb80091ac71c2f8b8b1fac255f8465dfbbbc22693d357852657597328322b25cb36d3ec6b98e976248f6e46d2b26348b301fb9ccda8fc23adc5c9bfd80d880c0fd263b61a8d0968b625b6ca1d01d44211b30dc46366bff023894a96e3dd0454b89de274dba12f0e5905d517cc68f553ccfc +ciphertext: 37c154290fe2176cb062128655b31132c99c585416e1b5687704f8ea4baee5923e3d188e43fa0a64865886ea36f3ed6540fa4e5941b834a9eb13b89c56dc71a2ea17ebc619e2177f4650a8062ff201688f11f89cbfe02c55be2d22f33ce034e617cf39aeac825658f93e0d1dacce2da0edee71ce0f5398401f0a9bc2b137b012a1b2a96e7697ed0220fe54b8b019d6fe584ea0a4aef2d7ece0bf31286a11c99406e1533ade3d971ed90b6243b17abcddeaa5c4e12c28d1e9fc2064fdcf66491fcf226eba5f3a3e345b26804d01558872e7236eebf97ce7d31088ceb72d466d1597f4ac61134c9e7ccc835e977091a77ab1be40f9417ccc8545619d6e1ab94fa5d24b3080b4f7367d772f1ab2aa33d8fc8db514ebe2d072a11abc9dd953bc3eb6d385f01e023decf7e731ea22ec7ec35152a2b808370efd1764727bbf40c2d3d2d288a1857dde89750f1844dfc7ff777ffe67f1663555d3c1ecb734b49dc02553c9d4f7cde6cd653fa7602db8a0d0759e0dd4a03f3f122af3b38b499e9e687975ed8d037c73 +result: fail +shared_secret: + +# Ciphertext too short +private_key: fcec9a9b4b26d0ab9e46362248567ea3251d3e9c25da408b271138605b47b343270bf396ce052092ab89579c97d72bc627651f3f17b8d42c43cbc7c73a7a7fea6b9b44b902e25445a1d781d3d223f82a19dfc87d1fca20379360af7120f10306d1508c6fa8b530dcbc996543570678590152d9ba081cccb59b3c10ee74551034a52d755a69d54073a277b04c9004f0c65bac6a22d2428555cf030a7f85c3183ffa6ef16809497776a6348cd1255d1f9bce497951655789aee1568f789689e73633eb29f0948a28062fc08858c924b7e51462152219a6972ccd828f7e7b6de6d7b2c117b83a0692e3906c53047145d818ac6b3a133a0ed9433c4713cd069780bd86c9a9f579c1981d08d892bd52004104001085b5b7e1029a86bf88bc90fa59cfee6a412351a5b882b43baa755dd3a874d9aaf0676a68f2285aac96a8306d4a2861788973216a96ccaa590edc92c054284cc3a1574859a271bd38d18b9478bae42bc31204b20918a2ba775342e0b662b252943325e666c6de6b4e7c25532296a1c88c299df6a1ea28277248224b473a2df57693c785d918af86428f791a49bbca515f61149fcb061ea378a21b8ca2e932011a4784b34e69d8088fcb06b61b21b0bcb458e2a0ebb04ece60c2f114bebedcb9d94104ab732212cb3db5d090cdaa259e90960072c7d2285a1e85961830c06077158a111a7403938bf01794d13d33544fe5fbc03e7a941ce1bbf832a7329193d095a442435d6f3a60db859a68e51f4ef458707b9777c0231d5c6e265180e7fc8435538b45985f663780e70946fc33b37ca90b347c5595525f30b18824265185f3ad408cc30a73ac1d86c779e913fa06b12b1737896591123ab445928746a9b728a8554c1a79d95cc10bf62a070a38ea5680b9d82cd9561fb95b24b05b095c9a4265146186f512d7c328a5a7b491d42f4292c9c87abcb4282068b424557397b914b7b83342f385a854505c5fdb4ee59341eb94a357a567c085b60d49ad1676abc13c64b1a73fd308989676b102829b66235b686600016aa9c6155261d43884143ab2466cae572f4c74b9a7c490fac5ada1846096666837a902fa045debf40c9bf4a51c59b37b3977a0084471827f7f6151eb57509de6a201fa6cdf577379b04be687a06d4504f08ccc41f6c02d928441321fe7b65b91555f25a9754bd481771c87203b1b95569168e9c029d8b5fc1841cada758151a3ad53a9f2052238593b71cc083a236f6a8831d41094079a0607d58320a5be8e71c264f668fa6059f0c3c9828a186ba6bed51c050fd8a4f0a72ff67675a267506eeb09c8d8243b2a7e79a6cc39e466d674b4d7546e126cad6ae83ea8f00fe9873758f4a0270b5d0b3935bb709a723320192730520b7256157d17276e6ca81e2e30cc5653ce247917f2e4335513598d0306a674a8b8ba10d290697c0ba2f4b11917882977d03f48d17ec605c85fea2a559320697acb4d7648f7151e6e2ac8009706b4a78dddf8a5ebc40af0338d2fe515fb119c7ec23154f033c08571a28a8b6408589cb46a21359eb4e091b79b9e208272c5b1c0122a332291450cf6089fe8141ee222dd14b37c71bc49d7b035221f950978ae329889145b8cb72aa8536cb8d95d9e74a7da1478e5e93a015456d7b93d44458710b5a5a8a048adfb8b9cd165b0687377da4cb0d91408c8ae8ff48b45155455da393c882777963ebc2c37e1d29a67ac6acfb7c23978b9646847dc671841a5756ae4a0076a3217e16f11d68e13131468394489b7784ed692609a51ed13a159364f34f1c63b2091ad52c686a680b182744a55bd15c2a080fcbdb25475a89b394efcbe359654b6c8870c22b168664769f1315c299f32b34f46d1cd851aa85dd88dfad5c75f431dbcca3136a50611d6013776b899d234df2133e9e2486cb59095608bd5a2285d7103ff733a51111a5557433383a8cb2c80df9a2e298983d7f0871fe71b3f9495cafa3881dc8a09d371b8c33bb600cd6c664d74aa4c1e100f0bb56703949a34c7a118b11d3f4b7c5e902c73e351ecd8515608090c2cb3d42822a98b03d85135a6017a1dcb123accafa3c126d4dc6d341128664921fa415d1f554739b0bfe5678ecfc6a477019fc3eb7ce3a46889311354ec27c8427a48c046eae6932957a989dca5a30296efe84f0780b257796b3387180af812ff7c14c952a52419a095a34d90960cec450cedd8763db4c745aa6135c30a1865745c4b0825a51e09a82e2b3697f7ec6fb1c372be69794ddbbaf2abba81d9020159a7094cbe454c85df7b4c1317bf6c4a84c3cc90bf9cc40e42c940d87e80144ed9240af350c80650cdfd3412a13594009c314daa213c23be6fdc15b8c2271d94284f86ce3fd61ac6a35b6de92de46620d9181f279c5477534eeecaa436d4be6b6522495c29395bc8dedab47967932518ad4790926d413139ccb75c4b0d7f225309838136b57f8bd247ea0597ea72a9243c06c1b67db166a663783259d137d881b59bdacdf98c6c0d536af7b5a70760c4d3132c61b6c943b87e5e381ceb4013713803224853c653b30b978e65a9cea8843951eb8e9d9170b2747778aa531fd3c3c149092a043d083a9840f253a630063875c6f7b13d67d51390e883d73957c5b1778ef9b4738ba5c36b5e8ae49f5cf170afe84f71777a73b3b9c194cb44c8111a02350fc45fcaa138f72bb227696bb1ea7eb68b1c42e9632fe898c1d27272c1ae131b5c3df711905052d9872716666048525290f5a71db093abf8452807bc71e74f0948572a16476cc15296f263335ab3495b8e384890a80a3312da5f3ad94840db92ef30ba214ca6e8600a24299ae5502de5fc0ad68c1255c6a4f0e16aa1a46f97dcb252329ff995c30d7461f1aa2ad0a99d2ec80f0a78743e063445d613406914d7753d3ab74e5135b70ef9abd61565ca1cca9551b37a63ce1e418348f50786110211e20a7c685b37f79b5073cba1f1bc0d2ab6cc346b1a51526a9894b994af8f4614d60826876b90dbf26a7a999430558723b1551990735d022b935a750bd81292409ca8168619dc41c899477f7ba88d4394c0da21ce8770394322c5915d861a4b41e34dc3e17fd938a7a96768c372161b457c981ace700aa72f49ae11ea14fe7288101393362c54e7116c57a181873a92a7baa7688b8f3a5ac7a4facdbce37c23e7b923a4b7fe1a23039a1ef0fa4c0bc0ae5e980c306b951387277e2b9110854c8d76409c65026ea6ab8f3c345eabaf060355b2e9422ba867599ababc77a1282387d838bed6198a2d3a9f0b7c97162a914936a17a1679e8e51b093cae56f32ee990191e24cf64e0088481b68343331432989831bb60aa558c9796906c51e99945384c575064364d9b95060c4c2910471c697e352737e98c78910258ae6cc9c3a882e717a01bba6f00982204812c5eb4c3b0a56f8fd67fc922069e5253a47c9fe04cbf16700e6ad91dc856a3da5650af2851428a3a7a6b24b425b069266344427e66e75aa775c35d086e89991c8fb74ed0332d29974ab32a3eb1775a139b66bb695194e54d73733cee195b79a2988bba978d3a7398d5ca65e925328a1c860173c5850c32f2209a89046f7703c71808fe35a6bb3068e1d77faf0b8ae2a5a2cfd7b99c664778e9595699080b284756423b48b23f81a56a025ba984502ada4a235f4b366f9140fa5760d23b1a66409fdc312579751c0f5cbe6c40c67d1482a55a93727874da18967c982d62c4b5dda3b0a4ea0b68dbbf7dd03b3cc402bfe88550dca816904490548dde930e73242317750d83e32893dbab3e292979399bed70798b3825aa0ab4e9412abc59838af7ce4b599850f02956918e578a5fe17669bbc9b12fd513e9ba2c982637a81b1f98e26957f127a7f344bf230ee3e5160d537ee8f818e1d677941483c8ac34d09461c9142e8142ca35f980a622536813ce01f91e5c1178ee26b3f51180b529731a742ec44b46ec9c6776b410c6660e9e315022115353d308bdd92605205ae514b6ae992026ea2b7999bfb4fa3f15c0a5b5ac60ecab535f7636dac585bdcc38ab450f1a02c230903c1f5c0266599aef937864d25047fb777f944f4c8bc2906c4934d27668b99f4f58a2f54143530abd4af28d2d083597069f71c48a66051ba511c5ff927ec41603cd33432b628f3c46c1b5c158fc4205c41889fd14bcc7031bc6c9a1cde66f663a3706e542d20b5c9d74c1640b5154386c9f399f26c206a9c74de2b048e0f27618768dd6581b2831c0d6224950e289b68ab8e5692cfe6bbb5b50a5896a877f591be413bc6b37988e752d62e90d85848959874fefd970f98159fb04c4bc91ac6b87ce09e1ece908f5031400ef3536470b56981a91efd4e75dfc4281eefede2ff626361207b60ff2882a22901ad1b44090b75408f4fa2e07410ded432c32bda7158909f042e07c6c5e97efe3d1400ad36df29c2476901db09b00b25d4540d6b8 +ciphertext: 96399aa522ce704eb002aff9785ce09c0781b40ddc3747505f8bab19c4191bbd118e48c75efe9e032e741d0449036216ad3f4e7d4f2dfc7b03d0823aa6701dda322d85e38570718658caf753be84a7ae7a6295effd20f10c4973c8 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 75ac8dc1683a7c154456d4368dc2ab9380c6233517091414abd735eca30895ab43a6037e16d63aca79c9e4021b8815664df433025020b73224126b634ea524ea2074fbb6b6f7e76195022e2cc462a0023113610cb6a27b0d9c15b10b99841b002e74c758e6b28cf26d19b60a8e0a3aa075a03077ae7a21151398438080c4f71b3ee46a4af482ce59a8aaef888358fa0b22f26455e5178ab3c3bcb4580be2666db9a02c6058c823082069576191643910b39a262c58822ef1a8280be410e60b0af16898efbb61af91646642053cf50043423de58b781eb70450b9c270bc7d49c6c316202b5ae70e989ca780a3380dd6776ea07ada974bfa4105d1bcc1c753b7f2e245b90018a8061f39cc7af6ec03b277aed8423e8d61a1fb7459d14b6d02620f4575b62fe0a773b4002709671d197f7e8b3cf1aa9927dc93f9ba2fb8b408ccb3727e193184fb9f6068605aba10877594c61badf30657d9cab8eb3282d0311510d0c09e4499d59879c29b410a81af3cb37f974a5b7f27bd1c9c30446628bd2b6c79d6a580439cc82caf3367403b2c6499d1607db14c42e15851c9236b5113474380b2d961bcb80e5ac875902762fe993d8362560877202c8c4f77452cc260169c766c064a714647311989cf9952391445492862c5a5320ead18c21687ac6b735895f211f39ba84ca9089c05221249bc2f414e7a262b9b309edf84940c125f8a53a46d1aaa161c6ea36b3e3db6a919b664c12928b50163a3528955132f9fecb4f221128f89aa3809267f5ab43aa8ad5f31b8ed049c9c24bc7b2154ba7b9df4b42ff2359c1337750bf31dd5a7262f353730f987bd226208c51b751a412003be33521c3cd30af8a29b8ad1157fa1cd9f26592d0165429597e93c8765fc4bd46207f0b2bbe1f6c56f0463691135054809f44cba6f3acc0540cbd91a806dfc99cb193aabe7acd03b7804c08e374c9800279ca6c821ed076ec30b8c6691268b8a4dbd0c080b031e1851c18b289defd1416fc5b1073887bcb5b9e1ab7ee9231295b348ce462051a8427b0824381cc17c66a4e965adc5e112db2681e2a6511ff058d974bec74584249ac9d2329d3e3121cf01087853c812418e6a707032e0bb2545b6c4cb489c017b55355823595a7d1232b325c09195bf693723e8275a188552af5b6ba8e39f8a82ccae666c32984adf0a53687abfab6931141a14b83536903b40439981cef0b1b4ecbf5cf87c8856453fcc1513b90f84dc88396ac8e0d32e15628573300f78013ce6a06c80324ad251b08344a30b0107ceeb56d171b14e3539aa190b14ba4bfa912475272674e78598f7880b51440df6bdde277b4f8b36d9d3bfd8a48550714aef8c003895476139136882b1c2f8054641047e24cb11278b6661a888293a0447b22114ce53b1385dfb30ca87c46896cce628364c74743c14b1dcf2aeb25914977791c633acdfdc5b20444763b47d1df7cfea0b481ff91448f11d1959764e2c6f36bb4339c354b49a6ce58371e0aa994ca4681816a12b0bb10e8c9d34dacc36f2513ad357c7b985ea8488a2485b857a05cff6ce46db31fbd58cca182e5d8704e0e45eaf9a4055479f0ef148bfbb232377a631d82836203da4aa7cad47c5d8524844d8701dc19462c2265cf975a7e2908a09616d03593b93417c916251c63b1bd5662932c0a2a7be42a868b45c7de11154599bacaaf84f57c08414f15c107158c8a8a9235c0d210a4a7468b6cd3734a4bb48cd037a9c382b9a300265543e96646e2aa3c191d779a3360af4d1069bf2972d9b09f3ec48913b3852b64d9fd2a2923317cd626e902302561b0de3e97387dba8b978cb421932135c3f5c67373408af0b5300ac834d9de57c4e75b856a7b56be7ab2f8a513cf49b4c6a6a4499c91a3b8fcb133368db90911a07acf05986799b68f182ee7493336b89a6fcb2e17589686c2f56f04cc5e26759d651efcbc779d94be9a74f55d3308dfa7ee5da4a971b37320a101915831051767b4140c4217e63e17eb4b923cf36bce4e43478aa33d7fb4bee3ca879d150bf827ff807992cfbc0b76c1ed7bb94d2d8295f6c73bcb923c064a2037a92b7244a92e17eaad43fb7d260fdfaaa6920ba7594c402b2923a0365135c3724c53e79cb605ca37a75812edae253b337ba20c33bbd225caea500d1ba93f799654bf8bb9ca9c0097539f2e4a624aa0bf442c02134a73e2a611f436d88a231236b36359aae9e49a5eff76e39748954f7abf8343724063afdc63d837990c4984f7a5254562a6827746322d504c3ea0b094291a25643fe338d92b5c9eb65031797046e448332567a4962cccfb32f5777b296bb67d9a7b8c2229be1ca514a1810f915a23cbca7e4e0bbd284848483961677b87d054a14da154e499ef8321fc5699d31e120e3e680e62cb773b04826c84008d6439b7c567ba95a07f3775fea14397175c1b40516247b3ffb020c3a409b005f2249b2f183416f9c355e7bae2b6a10eff7b901b832633bbc5d64034f24b7f7c98110b4720a627f1bf170a1028a0b70456f8a486aca1b80d0013a4b7a198c0eecd21d91809b6e92748ea24128db0409c5228b7719658c9a445ab54b213efc6a59e79a8f00318a505a781a496ca337950e5b8af8e26ecdba3c21ca880ef48e40b5b2d83753bf7a08fa43a24422029ec2135d846555d2c041d0634e0538b8b176548293a6b5c6a6489dd21a87c6e202f60472eb4b6550d37f291527b79c6461198d49009121b4282fbb58f730b9645bc447fb4f129980fbc4a8aeb6a6296b9f86710dc7c6bdfdc08b3824b0c87502ac724ecff9bbcb034af69c25e678c61c823a47e86f8e9b876e48209c40567d25bd98a8175c85c07876c20b872bb11668b0583483080c63c3764b612601a4b5a8a4c6f2baa18c3701c1164aba40aa32b12abc07b8d31887ad672ef58b9c1ff3b2d8ba77935c035c0cbe705561b8b25762c982aa2487f8e71343e4818b9684644394aa24c746e8c96a599dbdb700be05232bc393d96b8898496bd5037bc5e6b7a99289c44c5ab2f8cd27ea1d6597b99e128240ac1d585bad477a650e4a2d64c32f7953a73644b08a632d1ec73a1ed683a38971a66211c3127078108e81323ed817b0e28664c575166fd532c45546d781355ff2764d05885b554f84803d4fb128a018644c1402c96586e7180555d2660a795077b3cb9b48195ddca2cdd213f1e4c051194e4d1b9b387a8e00728b5d903778713cccab84029144935613e2e5580bd231081a2da44b591fc13cd7860ad480c575a0830a5006c0372b49c9139f0b9570d3cc556aaef9910abfa225f2138a87412c5fb264bde590a6d68558ea82a4933bbbc54be3e70a3624cbb85cbeae35935ec0044643beb148c9dda4006d8b8cbec71fdc78baab4b26e44c5bb9d70306587dd0f0b4ca2284364c9eb2557f89299399153ceda23786b391c8d2137b3bc5acb522b3e71c16e1c577154aefba3206bcaf390b656cea35c766a8c78a7a993c64db763c2282445e7cbed5a5368b54859387c985a46b32fb0ac654a1ac1c6c87454160796d221800dbb11e8c78a0efab2ef5647ca7fb8cffd38fbf5455c9027b5c88400718baaddb6fc1133df7f449062c2667c04d0b678fa4db3d2fd3603ec39f531489dc65968273b15ab60ea0e25c53f204f7b8a9fd18a45e24c75e9b78c91cc1963ab06f024312903e40a5201750a70274c9b614a4518b357a9b2eabd4b61e1bcfbb179240829ab7e7400b94722aa6b15424b8f5f303a6c148834348abe5a798f77e754c00dfc4c359739fa403a0386964addaa967c5a7b598370d420ca634219ac200bfe4c6941441596b6c500b93f537b21ca5220e47b50dd58ef4ba4bb7d379ee854fa0f8b55bfa8825229a63e0427e10b4ffdcbd928862f44733214610edc0cb2de3538ad692eba23a4aa848dcf80aef7cab4e39b1cf9050424b4d3217ac2cd432f0d87cc8a524e66a09d9023fe630cd3e68abb57c22b82c5908b6490916850442bad23801282bc2aa396dd5595d5af55ec5a660dc8c55af2b2ecef1aa4434935bb98a509279f123a1fe47ce81ba61170c90b22303bd92c0a96b44566908c8a8cbf2b81c90429e988aaff47378a48116c2aa1a4676aaea19489b08800bdb5fe245a7b8998d3d1344f47ab5f1b53f73055c5d5889a774b1a7778bd2ba000607622898a78162a74dba4a80a8aef00acdbf682cb0d26564e707cb196af1a089c7ac58e306cdbccab351d4920b6ca16f8ac9ebf883882488c68a614e173b3ec94f33b724b1c63a6a375aa7f71554889ff8894a51428eba739b15c44c0cdc37ffba1fc117775ff38332a265426c04c9dc86259b9283f54176bbbaa4de5d7886bee1c914af49dff046aa232bd7f0cb95089a3b323f0bcee8f45293c7bb50e4cfc80e641d7d53450763624f9c26d211f582c0556ea7067e0fff7e3ce04ba9af9c9f1d6fe561eab828f8ebd1227ded55 +ciphertext: ef13857bb1236d85f5fe0b4ebb7bc742fba5e95593e6e4c6e0319e +result: fail +shared_secret: + +# Ciphertext too short +private_key: 0e54b0966b4797916a5b6c5f931b1a51498cdfd7786d059dfeea9a784573db09a401858c5456955e584271287620826f2f9ca5e0f708897702a850bb5cf27f4020cb61c32d0329cb611a58fba74d5a89b15e408922990140b7bda9fa06371208182bbb5c7969e2d2ceb1b61c46534631c3b2b4e54dc0cbcde21c1f49287f0f417c975a5ee2140c34809cd6723a6f1b224245a99dfa7a1f13c20864c1d8f15289943f0bd84a616b36a0c2844543cb03b5c8bed2766e731b3f670f88868423e95e2f2a24f2c2571323ccd7f37d342349582c25993510eb438699505305334466048073fc2b5a7007764350cb610fb2f12a2f7b7e94b65c653a7e2e442dc4c2b67f85c65aca2a1deca3b837bfcd77aef409cd6168300684541b88a747e982be237aa38c5d5806af49c9a39215c6f260bfb53544fb296dc0ea93d4e1b51928ce6004a2199b3f9992446e6111aac097638758689943c8296d1f0548cfbc803f5a310da6c57c93bb3ab446c7f8bc0cc88afd3aa14720b03e972338c44ea50676ec414f5e2b2aee04746b3950d9d53b9ee553b18657e4606e9760725f433936c57b0fbb1b9b0a8ddab26b8c787db203aeefa6111e242001924f90b82862f1674f2071d081cc2c4301afa606df3290158b55c7f73cd5f867228060baf51a945334a116a3cb4c08bd9b96aa1922e345cf83ac1ac6d30f20b6ba64943f6a8b1c6b89ba26048f3789980c035c3960756f7c745dc95a871420a01b6d37148adff2ac46dac3b8e90362579cc1e1b8aa467556bcb0e24955ea1a0ec28a6408744db9b5b6805b29b43a2374057e07314a1748447cf9cbbc0147ea520a72e29de76b2df493174582a62c76c9b95b1bb95364d0a063b3a98f42069ac0149cce8c8da1e8ab961475743b1b39bc93b0bac5f9862a61452b9afb57cc0622643b1ec2541a3b21c272167c85f3481c30818fa53844837a01b443cb179be1fb04d1519391369fad1b4dc7800da02196d3bcaf45e289117067eac870b52308b5d9a7fb3aa200b080a59b7b64ccb235d5a196165a26c90fcec89748006b1cfc34a526675846c5ed9297ebd2b3b28b8840846066194f61fb5d39d32e12301128b701c990685c747f4f29571b03099ba97161e62557ac7d68d3a20a056abf5808c05699eed34c049741c0459da4f71755e988448c10a8f9c99c9b7fd54bbd4345169ee1677db02b3585b866773ae0922dfdf48df7e337cab83f76b752668b6790fa6260435a7bd43fe7824f534cb95ca97a2d48b3e4cb18c879247f02915a6b8196476e2b8672876660f39248a547bca2d5171e0197dc111e84d48708040386c9a267b94734e34bc5255de470c2f91c51519bb41292419b236b22871fd8c00024c457ec671e3ed23e546599bdb1712ba4143b5189043b0236114690375bced2a4177625b2cb8c73115c24c5c29e1aada459c6f0a76f9dd20a9b02b411679b9ab0459275bae2d35060f91f47c2b3b8c010a4c1bc61dca21a896e46b1694515a6633349c46a5345b6c191243563b5a3cec99aef9aaebe194e73bb24af7ab6028a9026b93cb0e263ebb003f3168ba024be2cf50d16ec7bfda8617dba04e236023f54037a54954e01b702c3c585c80ade2b9ffebc7a91c209d6267052a90a523083ad6b98c783ae8aca34b437319cd02adaac3704b85cceb3338ba7551293ba7220b89e820d475bbd9b29cc3c29491070451deb6fe664cc8c21c6597928376b8b3f7c045fe996608a76ea068d8db577899924b35c5786c98773e3b83826891272215c83c4000c431f356f6366aae7ec745804809f754ac6673704831e8caa465b0981db1b552a0313a208671282346f710ec1f4c96d976d2792cba8750c05b61711346ba74ac87e4378a121b46299aa22d04d7a70c3b230cdce2727260bcdb2cc415193c0d68011ac20cbc7451deb4562b9e2298624a37fbb195b1b3459063b04e79d1be53f29e2042b0abdf2f33b04877fa35b2057ecbfa4c44ed39a8041d17c3e1a5f08057941341fb3235d6979a1c0743935615015d0416d145f532b2361d84d6f13635ce403b39037bebac7fa83b26ea292d75a3522fc7432142f6b06685539551da4bd5028197bc1261632aae81066d34b26f7a69b9c44a2f4f57db0b453f6504cffb7119722bb177301296c58cb6b13776543fedc98656764b317711fec3d3110bc2d6658ba7bb0f342a695a61d1542c205a40d8d27ca66d3aecd8b0e089487dc68975f02b25b6bbcf4a90e30b59201e2b5594004d90b82bde57f15a3632eb32141a60cf1647c24c755b4c90d5ae45788b43ebec09a550532657001df664d46126794326ae5820981693fd74c7fb2d73fc912825fb4184f0613492b626fd11ab481aa71683c200b73649985467a135df90a183020e2f624d9ec690483bb740b7d09aa6e10a7b2b05a1f02575228ccc31114424e1a83bdf35f4e337381271748123d0bd79bae393a3a820325a871a071b88ef18bb7229807961e8d829d117261d1140c584a636de539db20be63e17e81f41883d508f5d219cbf98e42c86fad0a3d0697449d83ac403355cb555a62bb3113463a559b5e6130a11c08061ba15c08d6963230afafccc56fccbdba34b606a1bb9de0b9c7b030af8a201a913998f249b8205806e3b0d15b1093072c8a2c2c0350449114509e17b397232367a59b9d6a4a4a1957b2607a1f992e967c497cfc75f05b217e1ab072f885c923b9b96119edc89416c22b5336300831bc365484604742018b0d0c84250e2c1e4ef50a78f9bfeae8af3252075024397f7985fc6b894cd34073c8ccdf6574a3f82fff23bf1323a740e6bf6289b6867c4d5c3a28720330f177298fb9b00de8077147ca94f141a49371d843ab1e48456e596b39f89505b182da7ab9dc9aa707d61cc1c38be0aabd95c433c6b77162a5a30f91b0c84287b5036af2d906001cca3ab9abda2b91b2862bcfd60cd6c7cf86627b577337f9875dc0502d4dac265a64c412fbaae2da37bdb64542e0054c4c769b155a185785d153a2dfb9bf5df118d2b5764b9c1464fb758304714da6a72415003247a867396624822fbae31776214a3a9647fc06a96ab16ce54a351a5b80a19ab4f0a34f670b08e114a632303e04d43823f62a63921873d2befc33aa9aa7bdbc395ca88035795004ea6957b00a10c296881d9776cdb738f9bc1245999e0269805e5bb37ab547035299e8fb6318d3251f59344354983424c5adf44118a44812fb781d6c8268d158c30543b249bf72d249e38aaf85947c965cbd5d20367809bb4549cde3d70cbaf191d3cc0095e723a26c2afc255171a014d92a521aec7130f017f56044f2d993320b0e4be06518325747822edf1c0d5de10961471942cc9fac344895eb2d7d013c61f409ca15a8bfc9752a307774033919294e7a6532207430ae34cdc12b7c0d7a91de9b34ed75a6e07753c0006f42a96744ac8f72f0c4be25031e27114fc4b25c968d6754c7d5815902b551c9f9285f507faee61761f4ae1fa0464669bd811c5d29499a8e2a21877c4f5db39050cace896038f77a8e8de15e3d4a35fb338a362451bb37cb973349aef97862d31662c63c418a000b10bdcc1b20aee83fe98c8363bb8b66d6cc65186fe371cbe6c374d279829f0003341c9a97b1a24730819f1150fe244fb6a594f7ec032345be3322cb0635cdcafc4d3a138670b760fc911ddce75eeb73b6e4b634cea7190756acad737a865a652c011e8a81017f1cb974c41f9889a09e24804a842014d7949c2c26f478694573bcd1d04d944084f780b4ced2cc277624575144a82c3b91db1581fc00dc854578fbc36ec993c44cb43b14c09cf4ad3e214c32d97262e61579b874e662cc742362f630797cb237e8cc7613a434cf0933b06aa1bc960553c671c5e486ccaa18b8a45e1edcc0c7059c6022b686351fb2d5ca4a155be7b4bca38cbb134829e7e39759e05d2427785b5a40c69caaa743b513f16e6153bf00811238e3407a1953d91615a7c38b4d791f56d81903c7caf939a795268f9d3a763391450e687cf65a01817a527bb6a8143a662a5587490752bb03438dea2c83711dfbe0702d9b0f2d3b644665687946b0229c46dc59b3d3c3a7c06c4286328c8be3466a7bac03d4a55b38495b97a8c7650e9d91c42fcc3def6132321212f6416596d9ae3d75aa2d3316100a9406303429fa56c629172778997b1ab65e8667a13080170b87835b2996080674278d409027898538044b35ddb45798451cc920a557e82d0b2694c80a13c0f5847e8944587ccc0f455f801b6aeefa80db454d8e707e3f7ba0627a821a1633db76435ef45b1dd190ad5540f9a7b0ecdb8d09fda5381b83f70390c0218c280823858b4a1255871173f7a60875105dfeed4bf8b4df1b53c4b202a60e6b0be4c4429022c19bb91bdaa936a2c34450d6bb83006b2c9f8df1358c20f9ff0b576b6fab3f5eeb729f9061b42c85ed +ciphertext: d8e6a4501282f7e2435bbe634270dc0b86af64c797cf0d442f156662bf1a54c6900e4a3e922678e9908b416299e45fabdaa0b681dd904160779beae7c572a9dce71b7ba1521371d8b826edeee6 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 2246b0d795bcaf64acae2a6be1c2b0396866e801a4310c2347c34d630519ac8a5db2a6b7e9daaa5b447e36590f52a040cf554c703269e816a1e29872d315cfda110400b12294bc716e5b8fd6d998d7062e1ed07f5a707c39e6afec586b6f12304fe963997795a7643741d0a48174096f9cc64d977cb77a5e95e16bea650f44d5c052c5235c4346aea1079f5b966cd71efa4b1880a5cddcd67ed81c133acb290a6a26ecb1932db9ae32a70488c350f8b48a41ea389b71af28286ec9740a3bf9a94298a74c606376e3972c2bb13d695a504635815a4c9b94ac74cb5f3fc045ae85319e042fe52aa261c502b0f18843736a66a481200857ccb70399639104862ec7f385a41a68bf463e9bdc973e465beba56370d0bbeb6c28dfd98cd62405228575b4f1baaaf5b1d43152505879ca117b169576ab3230bbeb6e16838712e24a18e174e0f397fd53bad5914d11d4a1662b14601cbbc3f1a27ae5a176aab0ad2b7f964930eb385f980772e8b7be7da3a595825d25885a47422d68a5668f922bb5d3a5b6a531cd927bb3201f1567a610217d1b3a9edfc591d1f29aeadc25cc93746d8204a3cc57184c37420a5da5014944e44595904560338488d249d9ca378f262b7441bf2a612dee114cebea9e6006cc5e3c08619738935b659726a6df03655ccbb70a559182f70292dbb3b3a1141df496c8e8c69599b9bde35730188820650656a53ab744b1d19585a69ab0bd7002ce1c6c2724aa77d033178a6bdee5c639b60945695f2ac169fc720571053736389eb7414d71d3cda18682d551861783b314a62a0a1065d074afc8cbb2e60898bdd9891f39644bc0b68192b310e25d67c23b8f0c47737a4d0353b8ab992e8345695e4949ce912ae1c69e1977cda9d17a80456f57347ba97165ef68c7e30a95df8b552918738334ce0d309551854e9735cd946896ddf86258f8483b8382b22b4d38f456e0ca42286803a7014d0a475ffe342945169920f46850961ac50bb371558ce0b31b6d180b9668088b057fb66816ba134577b8ab5a95be5d365751765a3708c1de126950d68608d55f89bcb73a411c87633361e156b10c21d8066f15096153c135bd25768dc533e07b1a4fb76e4e258b4660bfeb0c4263fb3d9142c16a15880d161f77b8769060889bc85ea0c953ab029fedc48845f990e9eb6bc6a22210cac286d9786f362afdbc08800c7da7f1affe0080b54574218407a28bbf0c0a9ceef795e818b408ba231047ca62d304b9ea33323195f6f144edc6754a2a1766e4b4b4f522383a288d061a54ecb110893d49a04207f897c29712852671c6d2366791337e9352e6b8a9aae0c1ba283cd7434de5193cb9b6ab9e562d47fb23543143f2405072c4753cc318587bc43a52538f12592dd949adb8481f9c7dbdec99e303c24ec20a99697aa47157f9b738d6c03ec48a06fdbc7ab4530d92250fc9c2a2e78b84980aaf3b104cf81078aaa9122f4c6a76e984f53189b45588ee3ba821230c7a9c94d9133776e206711877ee06a343d9168f144231bb16649a00c52c750016c4af495cbba3a46751bd729574cc0b584da61a4dc8c9f51b7adb75072bf65bff23877be1b5721bc2591329d8e705bbb55322730cd396ad0ce21d6d6aa2c971991519b52bb325675453b437804c552841d37aff8755968b605e64a8c7b732816b006fd87f0b5b40b2e932666c4e565388daa78b5ca14cea53594ee664f932696c587bb52465a3d10d75f7b39c9cb21cd702c7064361d9c7d588820db283a4124b4c4a1504c78df018857f593375284d4910756303c4267b11da83457fac9fa6db02f9f4c28bc594df9b70bc4178d11711b680b01e670ef868c642faa73f78bb1eb87662a8379d732d5b216049e1a2ca19868d39bb85a71ffc8107cc7ac3c418a166ecc2fe4cc563c19d67417bf1d065438539fd582301241095b783ef139ec44c3f1fe2bc83c5a0199b13c6f3aff1d50d0ee61b4ed2a55a15681994649e837a54317b37c635359a4587da26eca0be77b0b80f4ca6d40888f298ce8d519fb20c4445136fab3c8001356b58fabe5c6c95deb9b19aa8b091a16648bb6616347612745efa7a936e85757536b6d2b6223fd117771344e423b6e0385746ca1e08788ae9b4738f16a3ea98a79ca06398a2460ee448b28c3a1bb28719d2b59fd980b50077779962bd55ab828157d59a6d9de8164457cac691a984418e8ff8a92ae9567ac55fca9922c65b342ea6558e625271fba756c3568f4972a381bd50e7508a64c395b8316a37ad9d7683c6b909c8fb09dfd01b83786637d71fc7318b114431d5e9b061abb41e03136b333d9abbcd5782a7c5e6963bf90a80580cdbc77dc3bc22d76bb38b60117b27a74e8320853a21f5d53eef9919c53a460737a65e252e60d1943ed133debb3343705c9ea770d1b686f2daab12100146b3142a74301409a93aea90213cb3c0956f5fb786ac8960dabb685588570a80063c5bb2df2a0e7f0957f6c71e5579c511a5b74355bd00ca8f976a1fdc61675780ce4fe12bb5588d18352ceba8865f8a77e90bc338e8028d038b4ac9cb259201678754f30198a33826d8e442e58c131b7b528b0203bfac2552b40eebd739e012015aac19508c89b78c118b1b32e634c157f1031f28ca64ba8ae44631a1207073f505a2782500ba4c3134145c2c82f7862b0bf9b161f775530618d2612471f6704c677b64b61227e5452d8196db91c032158e6d1c1c144a250cf58e0b8584360b0483f55964c54173e43e91705ca8761538306685a280329690f5c573b97c88717734a4c69bdcab8df84120965962f6143b590378ebe99371fb6d6bd406db6b3735a5b31d624b5f0a557d3acb049723432152d881a088d230bbe714bba31027d7387ff4b8c2aa504e0bb801691e2263918d82a59f26bdebf2a3e2037c9c58169666046b00378990c7fcf203a1e92984544a64338c43928512521a268846fe3ac46a777663802cbb48bf90433c6bc03c8571612cc36c852478da106ee3b7321d87a70310b3c2039b6596138dd511c33c259924c24d2aa03939bb4747901d17073f6a5541e498c5999c4cc51999e491bc71258e330bd0c772d12008757540a7f143c87779b1635562c2936a70403e66aeb6d93389264a00e850a6390fe642508d4610984150f8c7170e82b126285ed804318f5249a862335fdb72d03acd8211cbb75ab9c11360f1782e3fb712cfc17baf4416d2771238dc02f2a2897e030696283a2cc5cfab6cb55087a1999682671740c81974e64c8781f0b020e5a07a647b00c8409875b65e7886c50449962c902961cf75548a3b05ca574c824897c1304a06188771be447b21097750da2635c097513c7ce9fcc3e25613900113a3da64dbc36457c8434da48a23e2845be8289de29dfd6621ecbba68a328749d4be0a89007bdbb9f02ab3395213d9f02983ec90de9ac138243f46d65e2a11a57d7193b595c6fdf1c60d4c60bf906f2576c3c6481e46fbbdaada37ed037493b5cd0c7767b042509576743b76a96dcaa9c13c21cf461655b32408733c35475bd6527d8f23282afa4ff5fca4bfcac0cf406b9c586c9dbb006ceb804fb5c53e76a8b2b64f1949985c398e0d9484bcb6499da2a6d6880a29b99a04e3713bb177bf479a22c8cc3e9192abd190e76b875fb2521448acb7a565d6ec4316aa8878d0bf55a05a98e7373e234f1b902253c8c1ba201ed3877fa6f49783da98b088c5396a69bbe367e59aa21923379628439520b4aff11ec54930de0c6a8a94950f72bd678b93eac7a3b7b46c4a994eb4a5c0170bc3bd4497d5f809db0a9e4e020e7a94b403a6894ce1a361a9acd1d586d7d83b8b6aaaae98ba20177fa555514c686178ba8a4cb650441366ab1c3e3c16b48125a892b024570a83df625cd2a174a03a8cb88a111958a7a5403993006aef8c68dd25cf3705ace230caff7375dc8c4055e23337a5a477e2ce67952086dc6ac085301785b2f349153937af02929bba8b0aae9866dae9737f3a11ee884128840f5db57545600222d7a5111865830831b500a42266110e022f6f11b1fee7b113da4d84693615cab9b59cb8815991fde46dc9eb26f0925302b9bc2249c5bc5754ea6125e22ba505535c2c86a55f2a37689278f98499dbbb3975326e76e473aba05374fa6b8282cad88cc3de9135c4b16ccdc7a77516a60e0948a7c75af5310ce15765cd28b86f2a23da736ba5546730641261710ec59479768868c34691e154243d877f1eea216c3529c3d01cc13b60cd9caccd33bdbdbb4468e5a8e4f88f85a83c9bc2058a6937b8289e8167482be19891e43e3b42178f89a33bcc040d33fedf7e101fad421543f8a6c439429fb5b6b6cc83f47a5670141f7fd00bee588ae0c11622c86618e4af257be7e470cfe1ea44baf69df2106a0ef5aa580d702bed12b9b57202dc7616a14eb242d580135f1166d7bd00d152f6bcb38ce0b0d8 +ciphertext: 68fe12f93ec2e365d7a84c8dd6c12520bf01404da17616a2383bc0449fef87e4d5bdec482266325a3a5102739e15e552b1c04067a17424869ae90873bfc8db117dfe08b7bc8530c76ae8d09b18a791055e050737dff63ea84eefc8203bf4c3c24fc10c1f2494521628491bd9be553e03999f59d19c510dd221886f915f744a6bd998195b51cfa926c818f752ab8eecf6e9ce07c25cd9381127e3acd984c43a250dbafa52da708b7f02beb89eed47ddb5e3b3cd02f82a83c0f1fee3f26b76054aa5ec466ca91910d8c847ec8ca047e892ccb673d48ac5fc8dc183e22e7e4570f32c87b7902187a33a9146cb9a686ae995a4b68d9ad554a9e5b54a095800502bcafb962c6022fbe8c2ff0c09e816b3881ea5e90063b00c9fc3344b0f7874e3b27deae84dd2e741e42731a89466027d8539e5d791b249c594ddb6294d8b10a2ec72fcdc93999788cb92179207969d2d666025c096e18a4da232966f70c976a20acbcce0de8519e011d0d30e8b1cc61a4ca94a73d7a035f452050544a88ca5293441d0f4a8c4f96c32c1dadfe8a8fea7febb393073f2b481bc +result: fail +shared_secret: + +# Ciphertext too short +private_key: a6a36ce6066098cb030d1bbbe3da58da50821c23c7162165f6733466948d5f31b2dd6c217e745ac0b934c202c3400107fe224d11fcb542c3a0af65c5d66656e6610985c18056d1b7928396d3e46c85f20d2791b5bae1b41bb07398452edee20a8f2a8760c33ed35c38b8057b1f14405c0708dad1a4efc8426dbc148095ba2e5c62d6d80dec7a5c84a49880480cc91713f5e06d50709add744c16cc3682d510805c2bb5564d40e38e1c60610a127233fc93062b4770faa617ab7e822022f3b951e0cab958922fc64bc6a3c2cbf7c50828b55945095df374b7ebb237c2998b7796ce58851768825c393678b5a19d538654f294881bbc1a45945f0bd716d9949c4e0a681b657447373a4ed12a833b4b28e81eeaa1b128681ff6ec01db5632aad9368395179d5a6ec8aa1d3bbc106c13a165481498b1552c9065a234c2abfbae46672798db74281a818b879b7703509c7776a93c4ddb9a49da398e87634c2bcc1c340cc12649bd1d463c71385fee3208a27b40b6c21ff69a09e9c69dedc58ba7b10737a4795d64176fc71f75735b6c332fd4c81a6339cf84f29e25b927ec8b77aac19c2d5808c5b16470e0c9f9d81781d2cf3338b8613ccef624c5e41a70d4fb6679c875ba3990e5819eb67642b19bc4a2d1859074c4e2a4892f1110e1e188b4a57b1a4b3eeba50f6d9998ad53184a476465515a1440aee39a723637602a548228c00f6e8405c68381e86030ac648db6d8c42f3b21f50c19d01722121bc6f33067faa05e905b4a0b3285c29812e604260df41022f519b400ccca02a5225896fe8498ac94bdddeb9f89210a08e37c5c9955103c1fad902e85e4674aa4b539935e2869525ba43595d7bb838a4d38373e04f102074c6a08d31a11bbb33c79a5431c1bcd6b363bbb80e924bb99e13c929b202aabbeb89768bee984d5d905b51c42dcfb6d83e54f3f04aaf4d672d193a1c246af116a228b63c755ea6a6f3b70e4d86980dbc041a8b5136686379033b9678865ccce46fac4eb651488e070300133b2982eb0a5b988975d1ca079f8fc9144cbb2508a85e332a35c0b1b67ea3fb1f9134ae7b4bb448af5576d60a175cb6040bb315d50ab7ea2e44ecbec45bd2767b5dcb4e6452d7b96399447a166d33f553087c8a274645a2bfd390d1608b93f568b5a652c19c1b709087c25b7bd1737baac2c020d07ab59ac896bc59d1e8c8033b70087e3c41ee49343e25449cb872b1c049efcc503d01ed4ab4c4e555187158cc6f0957ff51db019203c79b6b99a8c3ae13efde4b76a3055eb65382e9a6f708a51e13a3c41dcbd75848f3bc69535d6514d281f817bb50252c306026a820950e436578a61530d1cb2fc6476a96b120da1b39d53c8a1671eed52c8ffe55025658cb552afe52c94d2f889c9fa0bdcbc594cec2ee326c75b102af3bc361b6b6442e960365401cbf0bf3c5a91073c14961932d4d545d74aa40a62666b2c0823119ca167202cf612f6589cfa647e2e719e14e48055f3878024a791a6b2e2f564afdc1939a952baeb381e4011a681beb6958e3c1a4df184780fa70694ab3bb166524ca08f701141987a1ca08ba5cc1613c5242d77b020061123b33733954b67fe31cfd9e582a7d15576fb1186532cf987b405983ddfa4b1cdc71559981e73725b202b9f34883dffab0cba8abd97607a8b97b72f3490033bc3da149f2810aeeefa3385c1a563a07b9d58b731577621552272199cbe787806792ac34c862b14a913863cbd10461c294e962ab1caf569a093234db8b360b564a4355bf2106a89a8921e75a4067971ae42622f9b063c1b81dc57122a1b382294b5e25a8469074e1db8cf4d4acde37c353c9434c6e0a39b4a672e800eeec722a5d958f178a59840b2715578f6e3cf613a126482a3fd216eabf52389410a266710276c1fc6192c3a673df35c959176259b1697d4376b6a96b3263278a5d17e67f29d66e1cb68682c1d6180813c81877634e6d3a8f935a9605caab122130af199c1d3a591a2c67402a6ca9c15f0a172975a7ebd891f6b39244dea31c07921d3fa9494a386932b0b9cf2877acc114fdc4224059eb6e8bea2189fc8b21199f30775e44d44e2653b8115fdb94ce05b0cba66b464036f03cb6d07a89b0b8742b24085d60c76392c7dbbc529a3bc3e6bf8bbade4803b356aba6082f38683e1421b0ee117c13034aaa4a768c54257f1426ef4c16ac8423c0503bf50853718c2ba8ba1c247c263d70794d8b23fe0bba6703c4c704952035ce6ea4f2d5971728a53208ba22ac481e10590a926398433bc53c5c4a2999950ca9dbfb94aeddb8081535b1491b3e9a36962aa20bc09b8445396707422c3db620af1a11dc679bd11c4de05a9c0928f61c828216ca7fe2aa4aa4c5914d9161acc431929b2690048aabb715660bc2ca15e05d82117e6953f95696b4ba5eb40bdd01c213827859ea280c1f0cd4f22705a698f5b5687bcb45a318186db27a966b6bfb9d56ec05223b6251d33bba83666911054c660477bc3474309408f7b060a6b1bbe7b1467cbb45b3de32342158b04bb3321eb5bc6f188ac9a9b59382896bacc5df7379f5511725564c25c74ed7a6ccd9800bfb57b831269e3d55719cb3b3311565d725a894c0e0b954ee26580c1d35ec99a42232b7a52b5b2aab1a45b095147526ef3e95f9c57974f15c984f48824a25b9280b84ab04efce7166cb83d1f9a7807b7cf2314bbdba367d6ba115224b1534341cda3999cf52c0332584f972d21059ce859c264e251a2a79c4a2232d8295c406249b4a98d3e643953731408a79869e554e28295adb44b95b5b75ff15d52b54588f347a8142250004bd7e0bd79e1ca321905b4a6aa85e69ef8a10e553c2f2ab9097f947492a3287b675923accd6278523346ad1ff777ac554d3f71973036849d411e1580283d437beac1ac35dbca1450180f3779f4d2298a837c796b1f9afc8b9fe9450caca6cdc1a733bb5efb78a7139abbfdb68fbc096f2f4c2e78e926cc5b590ba65c292aace1700b11399b3408bce04976ef90b6489432af01b5ca488c6afa8d30a6432a7a88dc56748333cea06b7cdbfb9b9d4873c18881f6ec4bf03b353409c914a99fde4763a1e22d00e244e31bb7f07b26ec83b28f94bb16e106874a2e66e86e525257f973a8bad10e326aa560db8473c917fc1084daabcb9b66c1efb85c88c855ec071f9b78cc53e8bf37070c7b326cc110b84b591e64427563f83aaff78c42ba380aa5a1f405902f9ca46ffc2e89f59479720272dc8f91a23917b01d504a6cb2facbe709184c9511aa319fe1bcbafa25625ab622d8692ec61aba631a1b754a1b5c924fa09a8f4f33c064f9ba841aa7a9f54239a5749f2c437c26b37ce3c882c1076746943734cadc71b56fe19728b10d0f21c0b68402d8106cc0ab5fe942c2758040ddf559d345355a14b6b0cb2e541836cd3a9dccd930ec46a91ebb50a7a62ed8967c4fc48ccf19005c782ba4d92febd69168a87e3f87653bc0b999201097b968a20a8df371089e95bf416b43a5e0239a3868d1b1bff3782cd5e23ba5e42398b8985762afab52ccc38b40ec25502a8c0a038a727653839cec593a6a016eb51f2eeb543cc84600b99cb7d0ab32ba8a2a822ee5786087885fac618a0079824fd7912f9646014ba886f75426e0b0356497c9d87f276c1293c25bfda94641e9c568e670ba15305fb75955d40e78d32c125aa07d948b69064e16b6a07cc173001c0ebcc0c6bea48a63d88814736c1089c90e60b81c2047f477378572678c78cf614301d92436cb56229f798f1cfc1a82a30e8806b747188f7e0cbb28d87012dc51bd70a0a8e5cce7b67204569eeada78e57274bd4226f7950c1835817408c2b1a7c581d655ba0304a9d387e7030a24f4a0373caab3a48694f776899a4a6ddb80a7052726876a747800672a041d4ac8b808334a394ff085c17be06162fbbd27da2f39f27d4ee55e45264033c27029eb03d816974c0221ee479e5ac04b294b927bc04bd078b7736849d9052eff623b725129c462bc91a98ba6f396b87a0c487cbf91391deb30879f1b38efd666c9e759c9360abed64467bc89eeb07405501b115a219e63aae66ab006c480c71bb0c2fc32ee5242e8f4ba37b4a23bc09516220f834426c3f995d9f88b311708ed64a63d667b7055ccaeb188100390517bc856283542845f7d2484da832387761d89042e8c0763096cc407e8825ae6ca28ec8fdb62983d70b167c66b8d8408acc29d65d4ad3b2cb2de127856f0a718ea6c9ee5be6672c086333d90888c5cfb34d4d740cabb6291e964fe57205f8a9d9f0ac2ee558cde756381127bac216df3c222885e81f27af7d6b70dc623d7474f0493474f7206651c5bb3f7d9c49f527beef61995f5b1f986bd57f650214461c69e1f46931b84f60e9d134a4d24e3795e1f3eeea3d752a428e28ef80a37a3827bacb1d89f7743bc213ff1f45ad14a855296c2 +ciphertext: 06b26621490d1c2fdc9f4cc5824925b1aea3ec88cde1192e826794959ea86421e504fd82cd08dad8dd0c1dd47d9054dca3cfb660623bb7b5a243b0e88b332a6a754a908df5d4f8dff0ebad0d5df620534fd6e65c66ed0e9a63 +result: fail +shared_secret: + +# Ciphertext too short +private_key: c8128f68d6906646a6ad026def611720d5bb29605a4c470063b19c98ab8b43fb7a88daa661579f4e1c80a49139a9e623993a4610050fd091019792bb86a7a263c848211c76cd0a354190bd970818a7e8144d6b661a362e29a72f80f7a960b406bea5bb91213088a764d72724dbe6b920048248a36b09dbac561a81cffc5bb1a30273207f5648445a7cabc005265f273d3de82a68a3b2905793cf31b1aa39710e228db8c801e99909a7a1c8b1398504dbb4210491620525f36c295f405ec0e51f31b2451f99356f338456060f17c29545129e4e11558453a04657b78e875e5f774cd1dca36e405d6edb1c7b659c0897158bd4867c656af86774fa8b6911a9475470a9989c25f122c06c82a59a1671ff304353b99ea81b75a2aa5b8a678020a903913b48c3a65c06a8c078591d0ed515ab5306669cbd9167b3a7f06b8e626aa78c301fd8499ce22d310a8ee54b123d1a8fbe5b1f77c807ba550b38a85c2662349b841243467e6acab783fc9e6190b9b328b9b22c1affe779a244168fc60f302274a6a37cf876a5f669c2f208480cf98eb79841a042bda7d659350498593a817044a400579d5e545726005f5e51c254806a41c2c3c838a868a72d74533101e6a7f44268028120241008132c988ea55795ebb6022c29259265009c5db18111d5565b54a912b88399af4a7ca88a9b250862e6367165f7c067171c65ca660bd61280e039517c1686b2c1d6e580e0822ea1e215a19cbf605bb7bcf34f7d6231dec93df58b2465e0b319b70772523940957482a03a31a36b29874c06228595a5176bac9caeec694de81b16524fa37aad247b616abc700ff3592898623d951cc569662c1a3edda1bfe827607ef7343c778b80dc79d2ea57823b6d196c9c440411c712343032bda8c94927ec710c79bdf9cb5e1f0c881b26a37bc772575acf05b780e11456cae286bcb10983b360afb1b866db3ae5082c64a37720c837a1468623fb5dd293a8e920669543551467805d794e6c474e2a4451e87013ca9898dac888e0b17279f4b661d35fab802f41d05ce9928ef0a619eb2339983cacb56c5e3cc47dedd83399a0554c4614491c515925283564809a3b8d9359504b364e64e107c08bcf1a36090a2c11a9657fd6ac459c137c18e481f0789586a83fec08cef288c4e3eb6aa8123b6778285044558e3b18a9c49673921b97c8ad940a477bf31802808a03d356abc41a7f33ce0086a98712521a062447b527079a49ff382d74f2cab6f7a636d19539197341288568a160bcf14fc32c8be72bb4e82594f8c5994838b843440272b9a0633498f5c4a320c3c5b4860287c3bb0b751e0255c1689cc351b44c511576b5673c3d98008e867735d23d62f222e8b411aac79efe44119c398383902b2793c59ce24235964caa2240c7c22c141281b7aa1dcb5877d719cb4bc44a626891edf98c2e228d23a88cc9390b724cc0877371fecc59c4c5a3ae97b7dbe0bd23c8236f16b5798c6ba8344c3936a8276821634cabb9b80e4a522aa19378bcac9f37fba78ea06eccb8971244ca94932f95fc46485597956133cf9071e3bb68ff71803b98a9145b63e4c12416c63cee337187427ee5c56dd7b558fadb5a3d8869c9624f6a355c4214a609da72435b4f1d0b724f224dc0c5181d483d37752bfefc252b1711ec182771d349cae6c2cbb125c38a4b6634be0f35c7aae7651dc1172f41074139cac09a25bfb8ace8187ce22a64c1ebcd27256750c23e40bc9c641c09dc468b985723ef83c1c746ab17c2cafe973249516b87508a05155cec26957690af76cab6f37797176496ae8aa436a19a8dd0b0198362bf035d5807533376287dc8175e9a6e7ed12d3b6a679a910e0fc39181ac3462796759513e11f46edee10ca753b44477adc86840020b7f58820c225c304b54bcc0f948959ab5750bbb38cb4ac4373d77a2b26e5c45f8831012b645caa58d1b3b8ae0599dc6663dee186f80f56486e2b52f227e3920af48a431fff3b4a2f257f412cfcf75a235722e24d8471329342e85c0f0b143ffa11eec3c0b7b168807772f24a045a1e6105420365c39c9edcab2d02bb8d56612e04c7af509654ac322739c079f56980679c1a3b9b39d5b188d014a01dc238fb7c11c5bb919112718a97e650c5537e70e1ba9198ff8a102b8762996189239b1196ab81c369810d79e81b293e6761ce3348c23e535af0bb10fa2c179b6988de5002f983457e10ea6d2a7f10842cc3490e7506c7f56120b88925f7b53bf392dbc48ae75538d03c4b9ee054a54734ac6b2269ebb67f7686528590296fbbfd2ca16a3ec62553197f0345ce0f05cca02b1a097064962a83249853529224d78ab43227564239195f25e5670634f9c29caa53a2e57706e33ba4e8379f23a28253cbf59f8665ff7aa9f2a6d1ad35e4eaac2892a1fedfa8db755af3e50802d23c25d71286fa28d5df5ad05f40f1cc91b9cb3a6eeac7db3f63c6a448793705f34883b2e1caa5dfb47b45955a02299fce18c9189b89f060fae8370c99a8b8257654e9a3be3013537b83c507901855692cc0c7d4f263851147db75c4b48ab4998c981f532787e1ba509697110a9141200c2d408198d2b53c9a01f3630171c8c914eaab5de93692fa073a4434d1f806480186ea44370e56b51d10a8325083f361520599bbef3d4c78cf90e08e83b5927cd51f48d83f1c87010198f425d0009535aa88d2f832db655673c985ea45a567b5b3c0ce8246769a0fce64351062a59f05e0faa0d4be76d21f46cde1cbcda4539e8ca3ad13b39fa30abfa437a266c047bb652a639145e4120d994650208b56f62924223b86e67483f6b1402ec29046765d40b830c6bcf18442dcd830419577514655c862811c9295b134946ac19bfe9c70e90b154dfd49557c27f2e86052d582158d712d34986e9054ead6c322efc9f5760bbd47a17f8d35cfa23c3c182b14a61cf8a7286eb618cc9e4adfd628d59d7583b658ebefc169239ab02b1690ec7321e08b08595bdf91787459094ba999c0ec97a52c5ce5dc2a23748a9ac5564055318ceb9a2f5e7ccfab734275770a7fb9db559b6a6f7a5223b9c60a801965159bafbb23fdc5828071bc9c18efe3b7bb8554b68517a42b11a6c5337c22b34fee9aeaa77694a879587ca627f8224aa876ab23980ff95aef873bb706a161318882ed30a0fab2ce775794269bf58b202af9b8c3429852f27c2b605afe6e9579de573bbdb1037ab56f6b275a5e68c8d332ba28b8ee02909d8270428006e9c330196db230f6287c74472bb8829233a5552f1aede3047980066615848d67703795736dc5c69b900bb05545a11724de26174857049b613b5e7d70736f8142d6b898e86a434c4b7e66b13fec4adf98361c0fa53989c6c66a5ab997c3d02a291bfd3ab85452daa83c2b9367c358ace92d87aa0197d3fd49a81c87a6d1c0c31dc51dae223e5c363de845e499202ce437c27dbc01cf15bbb635749476c93f99dc65605a0d25170db7937e72988c94fc66c9630b53aa2639748058474b184f8843266374d57646f49139ede093135aa0ad44b391d6703a3e89b26ba91e5ca9d53c5407bb88bf5769a8f2553ccf426835cbc62d79fe4306ca1bb42b57aab9b58a2647b6ab88551eef1835fd51ca8314a837752f2cc217554552eac6191261a76579017ba216f12226eea3487e928179a38d274182671452f7b8f0eda3b6409a494189d34aaa5d469a80cac5c62d652128ba18a99225ee7cf1f4124880a9c001457d661ae076827518a0885325715258d1ea706597b88e46439c80c8d1f8902c650c986725bbf129a169319a20b4f054b397f61b4f7ca8e17b3042e857f7b7723e59aa67f1c5fe1736623611794792fd36772e8d236256232a8dab178498b0d17063114c7234826f6c31bdffc7118c4bb008746444c34f4754a9c22b7abeb9a47706a20d20273d05661789eacc8c73bca9a1d9999c4476f5f849c700a17b06274184acfd919122edb2590029715a513a90162a4b18ea7a866ec223dfa5041917a837ec27460b2525c4248e3d06cac301a3fc4a930657d463bcbcc537a99755b2cfc9725a9872e48b3a1d02227b38aa5e73d6ba7194c8a6fc0571ae614c005670ee9ac8f3075aa37691a2fc1460565ce56446f17c0ce027367d4d3ca499b12d60c6cb63505bd00c2f8960c22b6583e82cedbd392ca0859237b6d3d540c11d022a863963320c23147c05ce67c23a8c97a681f80b53b34d9065ab27c65765999a597b8e432ff0497ea3786d0ebcc40f9581bf3cb1ab06798ba471d358c82106f6c2b89621c9af2057578a82f3f825da500a3e6719e54d237b5e55a6db8ffd5d45de67e06ed0aaf4c93e6455f5cca516ba3494c811a5664530b14474b80c2742b0787938e0dfe710c97b81081181bc3b9fd6086ad66ddae0947ddd9344e5843fb890171a89dad5e95ff78148496f44957fb917fff1c1d6e615bd586 +ciphertext: fbfe3df8e27e6c6410cd11525746907de540b9a5fd9edd77ede1026fc40c5f2fd81091cbd770df33d1951265ea41dd1e5c7d30dc80c133062fcfe7804f541ada8dfc490c46a2ed96c40494754f63d809873bc6c3a1d00b1cafa0d1e5a1e913404c86da206c28a4c9772d653525e4b8a8924052d520d002a0d7c7bd5c029650c686c37482e554319dc477 +result: fail +shared_secret: + +# Ciphertext too short +private_key: ab5237d4a41e84777ba4f50349735fc3434811f90608a372292abf81cc01f9334b3fb6b08ffb80524436ff63c03f3b332804ad505c99d1b4b19af423bb584a8b91820b1ace39bc8c71943060f78cc7943cba6abd9fe507635302d2b062488bc318fb89b520377dc286e60439024a2c0129260a474500793f9fc9464c799efb7029692858a2d2cdcd9c1352104d9cca4496c7039719513bd8c94b138c178c792cb2a7cfc3c36c2c7fed35a8e5113ab027ba5a8181e0e143160790ec27cf01217b609c772ecc24a4ec1a2bc66f9d946d019bbb286a384d7ba1e92453b5b7747de067a62c5cb8364816eb03e8b335df5c0b1a4189aadac54d24a886ea3403047eb71b7f47da10f12b4bd463addcf6745131b9ffca214874ab89d834575931eddcb2f67495ac6082dd2572bc3c32fc692f57a15cbfa68146108490fa2ec4db28ff841128063b61ac93b83502db266151d97a2e2337376b7267530061073a3a53249a3975f1266adbb37d9753a237eaab75bc2bee9180845abab1b132d0e8cc09305ff8c137fe48621fb02f3ae44705da1b4c41953cc73bea66b90149afd17c2f513b39a4fa34ac1aa8fcbcac68955936a35f7c07452760616c19aeff130c2fdc87ec9b0425378ba9fa238d081c8d9bbecdf708344972027322795058194c5f3132c966a4a27881685345abf70c43b6cb3fea813fcd6520fa5195f499321292a0d3921975585e4b654728eab8ac6803105352e8298af0d88589458476c5b54c6ab1c41741dbeb244a6b7a5ff4744097be08b0a974581d32f4268325bd23f37e6a304cdbc89b23c90c66158200b4853bf9cfe25376e746b99db15a7616b3b2623440215010aa04f2915b5bcb08feb5b6387abee385b9df7208b04c4398a742e53b503d2684e77a669dec2deca17aa89aa7d48725eb24156a68b73a2881397a905adb5cccb145cb6229bd68834e3c1a687b05f55bc50bca273dd93c422359a0a7903d51935f586597850cb039b641171826b68e835446f58741af0415a05aaceed2069a4b01e6d16da2110240835f257c0fe1fab0d5f4160c348b85e07605e1566f229404d178e73ac2c038ae468b82f45a223c78485145941430c42e468e3c543ba85aaa9688b142db6bc42210ea198edc4c959a376dbec6680f97b41270553e047525510832c2629ce3b00a3966af5b56f47542cc0521a9480ba21b4a06841f6deb369ef77e00dd4b5d792376e2118ce80c58471e422168f57c0621e15963307691d4436fab749ac5a7f273c673a40202db7bf23b91e124501d484e12190233181263e82bae1b7be71344e25b4db553af91589ca29c80744b6953c5bd115042c9739ff2421b09492d619c56667a4021489527b23edf2361719632ff14a76d97a6152c3dcd367b711b1089bac694737880234e8b6c93249285353591a2490fd2685bc38b16685472f2a5c718802e91ca4008575d116527aa89421f1b947cb71796a452959a234a24a0d659949d325c5d11b91e4093951324b6953ce8ac0815e0b7a5a51f518b4f4db79c52c65bdfcb8b83309e7b0622b806c8aaf58bdb1a0db615a987ba64e15a3ea1748f2e3a7922095fa6b10ff1fc997ed23eac12837a713eead413ac927a0dd882d0eb5e4407b0a6fa6232235aec70cd33a72bb8c17fca119ecab37822e6acb11c44c0d891eb310cf870a8aaca887e2b6783026492694ea912928e93b2eb611624197c60caaa5054970c034c9383187b4a7303695b9b24828c49cf2d5577dfe0ab5e06516c4acc87d79f96c40ab300c4bc6c1bfce5a22c36a99a025787c58ccb2c8dfc52cb4b8044e4a5291a42a17967767f957a03692315b2917b920ba382200b6831d5c4090452259d5c5d15939d2b7c7e94a71a95d56e8bb968c10490f201b9b044500b16c1ca945489b24186a94c55305058545c1708275470b27ac44174e440e66a404f845b223325a70c0ae044c8a1d45c5bc0973f7a58f3147f433c8da561247019a6e5d3c5975553a9822411142bd8b0ab36f2c8c8784a56f444a0d95cf64225b681a2223b65a190863054514a63291072cf19ca6433044b084ba3bcd974bfc05e1c824c8f6770ce25068fe4a3df942bfef395bd21362b314b49630c7bb98770105362a6a528f6bfbd0a9a0a5622f37a60d5064c4780822d477ffdc0c84f48158204c41d779459e17d6149264721ac2000a289b544b0e970c6e59c63db870a4a7313533c4f94bd7dc389873455ccc8aff709a087b94be8cca8bb6c5f36199182b7769bc9c3e1422680d704187c0fbea6155afb91becc3731bc9920c48172080518141843a792b5908d2f54b67f5607bc7b17ff6b33fbbb4cc40c10d088c4ccf421d016770d2bcc27943e3aa7524ce5496ae7c6690bce08339a4859ca15b072d6183a4eb4b9481c592838ce965c9a6a8356fe84b6db7433e1020dafa8803ba9b2c8fc0ac9923a07540d8a4c0dc274bae9332023618aea750b2d4a254cf7729bd49dd54c9171ec491a239ab14953ceb33e87996ade72160e20cee7e3152569b6d3fb8b639b27a7b805b79138fe29a5d7492b706391d7012d907c41e9809bbcd53beb4ab26b32abb3bb71c6b95750f01a2bd3b7acbb287347892a1123381c7f29d35d01b7a1206cb48b8a310f80853fa29bb17b6339b4bacad75c8ecc74d6e8af6f7a26f506364aa401765599fe99b0952c78ef3c4efde43e915b8688b9abd63a7f98c4aa5b211ad48c5fd039916e564d45b04ad09389b8246c51ab87d26c9dd149b1595b6970d2b417faa080a65eba108f1cbaab5e8517d0294dbf27314b1887ea23b503dc4e9758962ab1410cd8a8d099071d4815549c7ae2e6ba5e0789df893bffb67b2f68a280e9a7da2491eda7587803cd7e6c5fe3d4ba38927026b57364e00bd26b21900015d03915416aa4dcdbca12a38b82e3c80bd53d15c4bc95a0104d23303d7564368cc41932013d15817e025a8dc04a22e170bf190f12476884060cdd0b9614751453878af0d3017fc7350db3bc75e745ac00426cecb29e728658260ac9a78868023e64945d3b1150a4b607ca10065fd9478dcb6115648dd3db7d03a85d2b21c06f65acf4c17b128891a1d669144aa83c952c17922e6a8b40219a085aa267bad48f0d047151c64bb4b69ae5d719af9517e4b8a936388ffaa0381ce43835f608a8110d76b39501aac2e921086997abcd692909b871432491b9662bc5c7ca791836130761dbba9af1887ddcc97329868b013a6cfb5cac49c86f5ef303c6c621869802ac4a7d7bd3666c227b3843c05b3c07a543bff49802fbd42f8cbb76296229502a956b80c7f61042ba698913cb5f9d893791c78e0f2ac8b0e578385cb2883024166475904c0dee0a3f9177105e88b040ec566cc8b5d45c0141031f7e9720221921738a6111bb979b96850d50aab6582a76f05f194b18637c4dbca4a380e9a84a2cac5922c51e93c46c337db43992f5976016bb27780b59d5d2763cd56c7e4743cb0573602624c5b8ad4c487d53800495d36256693c46e768a61c763b6482f141ceddb28089b558743848f8c83890d5cbd78722d7816d55e8962047141f59bbb5d1700508993b9a725922b4df678939c70ab1e3968079b9b9340cd4e22c6692568d6a329d74b7ee787cc5e7a28e770e4935a8d677bc82bb4c81647a71798c26ca86cc5c087bd68a81c1adf9744d70c41268c7170d394425166de9c62ecccc2e80c00b4890825f242e47a395630904d8e55542bbb50aec8b95181374b39ff313aa3a75980704059fdc2cbbebb096cc0235e537bdd0b221a74259e0c71a4cb2a6fa9611365bcf9022a3028f16c2386553801aa2029e951237ca0a5e72926862c3bae62fc13082eb1c28fd5b7551876fd2846617416b46a5489c1b1e8960b38b8c96e981ae24ac8bb1d33194f2874b6008fcc5436d2cb6ec10c3e23787924ac9cc72cb5f8aca184a4b4783a875715ed0f03fe5e318d9ca7438ac9a0835b7dd506fd0a15affd0a0bd9069f151952d384490e41d5601971abcc7d8c38478f51a1287a7860caec49a72364a25e88a3f7219bb0a04ba9d1cc95608be4de663d77c1a85dc1c782672c20c15913c5dda478ff5704a5e0ba9cd204eaec09420251166b27352cb77c2296e6438bc692488a614bf28d15f0fa80cb0441491fa403e118b77fb405d2a4bbcd8af88a26851202901bb7e0084bdaee69d0130a852c2bd353c3d21b872ad4a1f07961fe6aa59150b62a4e915132aaa6768666896aec6c9367b48aeca8490b1ea2f418c61d148717a334df548c601e12bcad97d13bc67dce3028e525b31da8284677c18fc9d7b8982eb47b1314a9e6e11457343d057eba5f6d695d9b3a77b7d909e3710fa5adc954a5199ae3b8379efabefbe6b087584645f2f146628eae5671e9baebdffbbd27ddcaddff6ae578e469b87a6af65766c839d85ec62d0bbc39d319e412fa073b1a4b9e9efa0591802 +ciphertext: 414b841a6ea25953cca97bf591e27039690948e1b047be79cdf3502d5c689a00ec0b84b0dc349373d421b80e4d11b78732592137a068ac552d36818a79a5f3dc8c5bf5e01bad4f028ee983bf0edb77bc11d5ba897fa2b1539536afc1eae08a14960721b77976b4ab65331200106bee235af897c1f934887ac6c15b39428880beeed95e29cceaf146939c71881cbc3abf4714ce608e5dfae063eb3704f741827ab62cca4357e41624f15ea342a2c801ba05396b97ff5ed2a4f0b50bc778cbc8310ca94d66977bc1192d7c090d84313e206fdd79c63df697ace6fa4753191e50008609fc5bb39717f25860d4d1dfde0e3478d6bb7debf51efb6102fb00c49212accec3b2e601b632d19849f44d6947903192a64175dc9bf07ce9d0fce2f2f1266e9d +result: fail +shared_secret: + +# Ciphertext too short +private_key: 450454e404055bda77b1496c032885dde1a36e72ad4b296469a1a9dad20a7253ab6ab78020acc9a39a645e09ad4f5c2f618c8799b23ab0c1babdb437f9ec4f0a0634c66348b3863ab6132b0e1a4ba71b2455ecb11bb992e6e11387cb8bb0c6b3f6928bc5a96f61385e59186cf8200b483a5bb5e58682277fae778295d59d6e1b94a5b18bda523d8bb8ab08c9c3f48c07f6084128a9bf57d06325054ba5d696e38b652d8116dafa730cbaae950833e5ea59d18666fef2b47dc781e2b131eb89b989130a5bebaa8f64529d6a029a242e38176ceeba096a107321f900e461c8156197ecc0141e05cb1467c74389c05e19bbbf001efa6a4ade4461bff9a73db7154fd7a36b517c8c2b633b958216a10182bb999a1c5f8b6a25f091b94b04b4e3a9c3a0a8aca3ca7b39b803ca4bc933336b5ad38390e124c9584be6bb860ad2592a789f907681a2831e267a686e698b831c8603239284cc3a2d78a327566193f31f0e99a0ed019ebd4378c5781803eab7c1d4291f439b39aa4abfe25377d9a0d3b216b0924ceb346323d613f0574fa3f1273be11ec1173fcc361597d4a7df3a6e8bb2860d891aa5ac9136876191652659728e851bc0a24511d7070977095263b7afe302a0ac3376ed48b16b141e0f8115b5366383c06d80a64e21655f441b79b042ab4c5358ae97b4a7d6317aa77fd09537176c9d2866ce716a582de73b073102515796615c384c90ba26646f3044a3f1d82e10781ebcf4905ed88949e454e3d45ded4468e17c8336b58f9c8a7cde5b66b55296e4f7323ae0c39a564859c417aabab031443fb9686788039cd271a0e3727048fb7e8cb205ed220c033ca38958a60858ae91f1b007988a2b2c48bf695bf0ea2ca02c3c913386cf6712309bcf058c1e6b365e03d7cf0503274dc99c99d788c10c8aec6a714dc66abfa66e71a91fe505919ef651ab42082e484899e8870ea8067246a78a6ac834cbb80ca72ff73040afb8c411076367180af32754c23c993b13924db3b6e5a041dd6b4596b20368f9ae55410f0b0001634bb04b739840969d39b61d58f2a8e61706f6424897a53790c6a90f042a7e32ab6a3221e5cbac70000768fb2532809d1ca5b653652450e511109a57dce443eb2b7b735529316b6e5feb0a683a29e5113de918849ecb4b5d9667073b85d1b029e2d9360001ae83422c1501a6d5304fff3a2576a84416d63d06ea34aea6bf18dc2e26a1af590b8e30838977c1aa5a7bb88d148761fabd871c794f17195664c2b731a347b3c6443bbc299901920a631956484ffa5fbaf1a2e93b45d66636bc756dd7fb8c15b25b413cc9661c82128938dc627af58153f54b1e3694290a7a5fbd0272397182c159bcb4b9064bdc93c71a296a19a3dad0ca006a9f9fb18196fa74912270fe3abd44c685c817b8a23bc195894f299052b0642382460505e0a456c45b7a693c041757b0958c1af85be2ec0d87ab7d18131e2e7894095220b360bbd8995fea9b67b32abd73167ffb28b3b71baf7edc4ca5da8d17b25272ac5f449a0a263231b8a8a92595cd25f24fb21c296f6cade3852a8f5c697e1a760a293cb663a48b817fe76b0c2ef12c59fc039541942bb41b5103c22b166d4f511fa61a738a0305967a28babc2ee0c01e8f72c3fd912eb85022eff8902ee046dc282c459400cd31a98af5ac06269dbfbc881a677e92c94854401e3c4c6f1df895b0301ab0013210308bacf118ec19b47f341c29fa07825b22ad23c9efc796ab557e7e7784d6481c884728a1fa67433815d749a69af6098741c105930c91e37cd96aa69f7ac908063140bac0710c27d3178b967a6059db9513931ce8747564ba9f2e660f8b1a108657895f6c303452047f3a81bedbbb424514f3e91e0a61bae615352d303fce3c35a6370b6290cc1251cea9830307202e80b09f197b435a64008128b9dc09c81027007d474e28308d40c9c86cba01bda43f8af97a5ec6b61cc2a2bae228d186c937874017331403c2b870e3b5bfab6b197227470cbff6fa2ddc32870f9c4af7522afef4a00f386980595bdf165bd29cc466fc313e6c761f468b9c482a3bb1b1c3c208fe9476b6e5c8ecd562e6e35af89714205632171c98e1fa6839ccc12c280eb982cef9ba3adbf4bea37c759744396be213ce5922017a310df39ea52776bea87f0a791dee6b66f9ba815d1b90014a61f36469f0066b49dc99497521d0b33c99bac52e735b37e00b4dca7ac498acec443ad189412cd478a0564ea067ab79acae66872177819299fb14feba9308fb54abd35061972e705461d3a66cd974a57b57bc3e71cae1b1382a658456d7bbee1c688d614fc9ab8913a230978b74b74b913a7bcec0444c116c5a222b98ead35eeb586f78ab7f64a8966dc87539303c37b353a0f14bd59c4a410432c5a312be7ccc3cb880d4ec0ce57c1836785660d38033670041d5463baba4c491812d147b5ad40db135c14a4084cd4bb4c04516096c30c2945d2e0c84364acf86e2367fe5c88a8a75469b2a6a027c27e529e6067a4f05cd99e17dc046718cd467a6589111d9847084167a3745c8453433b668a921c7b41c093f69cc18a0bf8169cce6a3c9192276052750deb61cc6270ab05b77bc40319dc4cb99c73d2c1499180a1b23429c2c565527d66d0e4c2d340417d196c51bba56e989ac5b379dc51506c557c34243b509f96b0af03b71a341614c8fe67715802381fa85cedcc1907d9b29ac4ca8f67510d2012e83602b6f29bd11692859180b9d59bae7e42b59512d68e47e8a9c85c25bbc1f961b12c52f44a0ad0ad0c9683c6037701eb9f265df803dee5704fdd9a4b9c475d6745512ec6ca7d83011374edf70aabcb626c38551a95936b9ca1262f6b28bfc8a802a2a1bc55b7feca41c76ac047a5e9b38b82391a5906c2877e08764188c244b7ee9a02eb0806186e7adbcfa9e9eba3edb70a5db21a200cac3db4cb3fe109c30829ea8574bdfe9b3049323f2d427c34931a03595fe50ae9f9678850b70f827b5f0f02203f9769983aed5287749ac93b2dc2bae0b6992cb7f8a78835b9031e5933e15279f6786873722aef00b21412a60acaa2a91f98f6cfc41a8ac6d4c703ee743322bf7b51c3aa542687dbcc2b9ba882de9c40eef8265e24622de76531524519479cedce610e8098965cc75a288545e725eaf391a03f7499c15c8980a03728401e7121cdb39a2c83325c47726a7659f4066b78d9139336a7460a82e2c062c26212c9bb10a8d623852d8b8e2dca3bc210a44d699829b8aa59069d6a406ab857a7c56b50a576f15e23719578a5e2233c7336ef7c69427a21462309e588790a5f37b129662a2ca056c822faaf573b23c77991bcb8a1446009a30a4056a487bb875f4992b1728ae9a8ece54bfa2294312ecb599a3182048b77bc4534175bc6c487d70964746b965a5077176aac34cd608e8b692d6b606ac8244f3fbc4c78cac0a1b4e9ddc721759262c918a11084768e95bfe542f83f79bbeba658fea5c3cf0bd7af1b9ab049e6b188c721c386327070262c4f0433740442f9f126a2eca47b530aabd857a11ba0705536c667213bd0b4adcc2a89e5a5cabd59deb905f29e1b7a52b15036aa07b971c5b49c3488c42dbb60e65d1306fb3549524c59774742eb606df669d88a00d8ed83c4ee960c3fa409beb4e1b557e6477c0c15bbe191c07720a8aa401b1cbb5004ce44462d92396d776bc473495586c409482dd2a25c958a31e9cc21c142d5a0b4eab46a1077436a6683c8f805636d8953a664085e14bd24b2538c90124b51ca5e38bd809b2a9063cf06a9d7b480e84042e1a5c14567606c8662375baba963a5436b481d8368e17122180f83b3df5a4e95a12469983785470e16ba9a6b1aaee5ca7417b9ec65b29ade15f0b988602f60786d83de057a57693b87d335f9e39c9e3a045694a3390a59d89b56e3efa724e167bacd3a0c3a0be53f8b81689897c3c980ac58cbb3a5d69e065143619473a6dfbc568de73257f6a4381757c1b6036cf0c3115a35466f6867ce06be843a990e50e77740bb1c21de36513349a0fe33091154266cdd6297213b926f4b155aa4df5b79447fa6e40d51db46032206571ea3564f28349dc1a3275ca6349b5515a121b0f071c2d49c9503855467bc44d0259e2ba078c170145937e0895a8853136e58c5a78056aa4ab9ad13a4095bb5b73e7c56934139cc56f00f5469cc63cdbb8a471144e3e134090c4721ebb8dc4bc17dacb252e325482a4423cf7885b411bfcc5c94ff070788262068916d9d61a1e424d0fb272a4d1cb73e38a60a3a97b698e4a266234c20ec6facffcf38198e3ba40cb4ee1e397927b254bb549010a57a328d0da93d0fabf5647c7308c43d278051faaefec9d088573a9e17a4adb4c0e3fe566f8717dfba97b48c27cbad9733b99cf815cef8e70547ac52a6117876dcbf5b32373ce3ee2dec1b03181f96b5021e606e0d0f5147d +ciphertext: 827a7490354edb1e9e3cc45ae3a5099d9e05190b4328a35a6acf6472e2328bfecaf22c8b527cb2a6e9651f162d7669b5ff537fb246f897097e413cf1b6a3bfb95197ea039ee20ce05009ad346e30d68e1ad590b6318ea9c99d1aee20eac0b149bef60d78052ca20f1a8eb623ac39ea521127c78a3dfc82f6a80156eb4cdc087c98c7815d19f046a02c3a8db667c2900eb79681c831acc36344ad49824ac5f1b7e7fce6a28114376d87368361f1973134745a51891a6ae31c5f9a4db306477596748c7f96b713ca9d3538f9bf7474b38294f64dba891e4a71090a919d9ef9d016f989e0476053ac9064d93f6f79a0738d32b7d4c07e3e399d7da9e347e2852c9fd41525d8c8aacc081ae1d54c096a2ffe16fe163ca92611f35617fafbc34ae528f0abc799965a1cf0a5e2507b54a5e3fed4bd075949dbe077342acc9a81745f8fbcfc98e02f9c57ba34afa6852c97b0406cb0daa1a2ee698fa2ce24c14f365e97f70a87af8585e27c749bbec6964e477fb7b125086af87c6261d40bb5c5a13d7e1eccd0997dd0ac1c6610e39aed2f860665061bfcfeeb098ad27a1df689bd1d8f35f7c605a378203671d9f89bedf8c81ae1cd2f92221b10ea7e4b11df0ee651768b2fc9090e487661291f8cd5aa8235e715e703115622cbdef995470c7949f840019b21963e6ccaf0809d0ab0e062f266f73e8f07663e0aa03f3985221ce329ccf450bde333b68e092bec32bfbdb77370f0538b680037101e29913d64901825e128f261710769e0f7cf8a712efd3874aea36a0e31ab80edd68364500ec4a239e19ca3adabf6dc3a6cd89c588ce94111c346af3f011400c449318a83c5903eda64e751fb708ac9f6a715a3edee84aadcfd4a032b8ffd6fc883dd39f47477c8c7bbc50ec8249375b9ba931bd89fe571e57999df1e3b06143e98812bc3974e88252b47ab839e9d04884de236d0e83d6c469812e48faedaccc56725496c1abf7a346446090c639123405867e594577b85551db57347042d1dccb265c53c9da864f610cee100bcae79de2bd6d34cffa220784fe5cb295d2ace2599f6be8c712e7b07ea53f07ba8bed5733ddc067963fedc7b89acb37f96bcccd92fdd75f223f359317216e78ceb483fcb0a5a4512525fe28b01a64109d4adff56cf94e10bcd3ae4717089b4d9391a1f2647d5799f0f9f4aea3538fcf772cb52416d395ff7500c4bb151185f253fc9ff062075e1671edef5e23d41e42217d4a771ca04bfd51d5a04ee5e20981c0231fe2752db32a6e276a585530f40b07c59b925f6b15babacf55e42da068aee256707503afed1893841d0 +result: fail +shared_secret: + +# Ciphertext too short +private_key: e90713d249370b932ca66661f28003062754f603035c2a7b54a116e479c3c83ccb4681c26d7a975c0a757be243325b3450cb9f9994679d0a9628e6421554a1df4c5934439098804be1c56819b0bb1b84acdf85a82a37079448a015c9b8d35bca28d77a2c50a05ba4266dfa475985af70a24098e630f4d49ffa2b4a0ef667b2a762c622beaa456f17263d07f5b6ff2a1cfe5112c834c88b2793c7b49146860e187711edc2312b09cb17262a12161a2b5758c3177dadb1144bd40531c71ec0d19524a310f509b8f9a180574ba128b00267e02d5a2812cb55c965015054d4545f16328eec7316e77af6c888428737e6a37582dbb5f628b4c602b1e1abb4c094694c31939b9a09e31a6999201e33ba4c8af3740bcc3bf5c657ca46c6137b932cf12df9f8cc492b490bd01919fc0f63b485fb72b709c81e66681a039bad63a261655161a603cf63c57c2db7cda558bbc73c2aac75b00c530e42f7809b0c8de56c928aea3831671933623c5839c7a40b1b14cba1762b65b87b249da750f183b12e400fe03531d9d1b1889bc1d97b5ae686718d5c5776b0094f671266535147206e65f7b7efa6174878c37c05b9633c84dd48212cfb0518fa77c3db1021e6588f96588934b149674912016abc7193ac779d6f98c3e0a49547bb2646570b69b26872f772c3bc502a8643f2f24124f76f2c22aaa3cb6c95060694a9ba1708515851c09c72c5fea1cefce61551d62e2697425a0c14cc529a30105856eb6ce83a19f50c7c2382c104563c455522e1b9a79fa1163482be374b84142b903453cbe7b2748a1887442499a7a58836194a67c7342b20949a97c4a3d9b8962572d5aa797f34c51fe72335eb824966c8a8bcb7a07709ace0b54d6b267063ac9de07a5880090670bfe33c33110877feb1ab0e28450640a171966fc66b7c0d43c20dc614b10aa3e54cbeaf7946e70927a4235f85c4832a9a2f26e25b40c5a332e3ca9e71430d29889f8a04341b983b4792f856a2c9e6b8cc08a3c3657a83fa630f53af09c2a460f93f5ea2572eb960453ba19201378f30240f99897a08a2cd5349bef47f4f176f3658b226ec5631a26ec95285d159593b06b37d7b0af2d61e7a566097c25acf23373d862c8fe965b1fb7d12d162054c299487782d1a8ed5490813d943634b5a0e16ae8ecc419deacc4189be3b4b20054589cbd669fde39ebbb0c8747b064e1b39daa6bd8694b429cc830fa85faa7883f41c2bdf801b09e332325ac37984ac53e06e80566be8b209a137905da10485596f63e8ba9124ade520b9d9194a5be81669528384728429a4b0a4b6a6c75169a0d88f6003840fca6976db470d214881ba7b23dc5e08c56b519674123c2a94f25910c18147400ecfbc9d16cb07c35714c2f7321968062e626d1e6aa384324a20783603c1b9ec098e46f1c052db7b679c1f83c4050cf906f7a8b80a4951173339ac304833081b23c242b752b835ca745f800b1c181a9751909680c9e96690f5b91c8ea32a2c6133b6238cdfd50530f25c52995666e595385b9c97877bd0958bf86253476cc5ae0c2806ab1ed74335b01b8839037164c4aaf428681a309c22bb61db498f1edbc7e7da9b5ab7ca5331707411c36de9551ad9a18ef44d6df79ebf2a71b1b7415e6428c7992508d2b3a16bbb02aac0783092aee4803172b08cb4cc05311cc3f85544476e93639df8f361efe28969b93d4059a304a177be781dbd8c30dc998f9a539f751bcf163b13f9cbcd96c5b7d38b81b002889f82b0e18c379ed59fd20584ac6b231341c632fc6c8b58769e878950ac6742087d2cd4ce46b21443d49fd62260bfd534e126b1d9b9439d389e996a8f8592291bc2bfdaa3346ac2bbfca781efd64d6deb5106f11d61754701c4364f082a29fb6208d36b6f7b7c2eb61de12262ccc363f777c0a6b0177bb32a30a65b61c25b88b4a57683caa42b2fb756a875d8b6ca522ecfc21d3c47b5c09ac2de2024ad5183299a80ee072bffe2af3a445ca2a815ded349b421c1765217df2388129663a5722a6f4317452982e806519127b6a8a38604e5cfb4513f4ad523b077199ffc304d9b306d9015382016dde712fe5c755835c327e561f4dab890887ca4452437492062024ad3020e9aa6aff26532b2615da2982213fa4659d606ee1bc71ae8424b7802d046899049c98779c28e338de6b1884f2b451e0b62ff2cb761ec920ec77d1c63024c98ba73a19db44ac56756296bfa19daf34bd5610aee727c8d53af99a5c1045465118b00be96387bb3825c5b524b59b0731462e1c0a0c0507927500055b291d38a37def47d15db22dc1bb4dab12963d0146215b0911a04a9f0829931578d6ca26b512637f158d1377153a7352a06ca1cc7bd6d3b25fbd4bced49a2f453ca21d703e1150c957b0b4ac0a621c518cfcb3cdcab11866848aad3a7f9f3853c854c89d591c72bbbdfba6072f811d0492f14b654ede6817963984e2411bd741c89e6ce50910c5955c3de70794141b33e3a5bc28c543b08a146a470c22025e3ab314dc29c960300c8621fd54ccc84b19c2b73be425cc91d92538f803ea5e6a23f2c8f0f74cd0d216a2cb807e62316770820fcf43464264b7e497cb555005cdcb1a723adfa846786107c08538617bbcafe4214c5d186b09c7c9939204c10cd967319f7e098540084174c75f9cace9a799a1d46b7747b9192999fd727622a537725fc25322640b0338c63c31002a3b9c05c188bb202929b9b20691886079a37c2015a811952a377f55098141bb31e11b03ba8761440257d29567c190ba461ae55611a7ddb1adec91cc81a4ec12473d4775a693bb3f50b8ff533c924748b9b24a8f8f3cd5ec230ad1a7ded8a3b8bbb0140636ee25a6ebf97bed34399012323fce09348a6bf6b016d90b46a3e06afd817798181995f21720e37cd49bbbd458caa5cac23d653357090c1cdc7a5d005c513a23b8fb1b9e3b7ae6ecbc1bb53a961b51d83844a52220935246e43643bd46c63e885873bba8920b57561b97233760b7540c36d4376386704bceb93e7f50eb47cc51d260d6c79111039506c6cba79914e5da5ccb593b0ce4c1e3bc55c19ea2cb4d240355745b9c09715310afab1a6afb84809ba81169a6a5fe7235dc1517ee5505be92b6a8201521371e44280c4473900f1cb402b4b3907719c92cdeda70ff7a481ddf82c76fc7cce18bc07510917dc8192f4011c7945dd81a6c0c3bcb646101b756adae42c34bbb912a78b9403072279081b91752892a9f39b02d22853aadcc09c2273cc429411048bfdcbb03f92001e353ec427c939c5c04519c7a2a58f4535c62f832463898012d8374f2571fb558652a591fe1034f3bb4462e5095f0b69a3855b63d6bafe749389e196e05766814839882a3e66a16e0d713ce1a6cc9aacb7bee8b73d47178677301562a41b907f4b451859500bc951a252693d485a7fcb7c0a520554eb96c4a27308d0b31205b54803699f8bf4a106c4a0fef64407c530f9d183fd233ab3e4057aa80dc2ba89e632611262cfca8c9004e0656d56a0fb1696eaa381ddc39fa89bafe6e51de20b8fab65cd51265927b371b718a6e9212e992b5c3bb56326d0224f3c8f01e22254d12b3c9a068dc111ba327c0fc93cbca46d69785398cc7a89a19df267b64345ca61ccb27fd57c60bc2ed5550645749a9b797cf11a3572767ff41b99e58001ed664ddb781deb1417bee8957b8603b6c495097b03fb67bf522531d1b2c2a1fa924445be56034b4982782d357f278973f2d8cc0aa7419c018cec6c7400e563c6bc3eabe61df8d9907414398ca99a2f76c4fdba4413f25f928b416a83bfc6203401278ccac628e009af98a2b7e7dc11367461f4bcc53a5b08603c0bbfbbab0b94720123499ef63b8aca26bff9c88b595f3e7b9a5eabc209c2a511b464e53105f6ba3f489c1988c83f03f76f5f06a1cd9bcee1a2381ceb85e9976596e83d5d8c72c9d7321477362f483ff831040934c764a2a8292c05c8466e7fe8c505d48a38758523997c7c973c90da8c1b798c99a03362f8234e7b697249404295b4e9e69b4b8b9523f5b952657085eabf5d731c2365b2259c660b99bdb166a48bdcad43551e0ed67340b039843a0b9a241c2cd8a242115ac07acb5e67533230c97d33084a6cbbbc99bc8dc232d1b709faba1cbcc49ef41979e8d13e49535a44f57b17153c1dd889aa279fcfd635a53b76728ac32288ae42626b6ee11889ca6c20f58b08f1a013865d760a8efaf43d79c9107a14676fe7745a3a0c802b8605a7262f7bb900f0531e108fc9d54b687c4dd6fa5f8d18a2e3640603710fed63cd49d5362fc12608551940095e6c4268b83907fab590bbb39e34eb28e9ad780f5858859cec4141d017298f34c298ba2fba41ccc6d1448cd27a87b73a9984be0f80989f17f1fb6deca2c84aa6c23c51d269302dd1fea96ba10d11e6c284a3d11781d83178f96cda7fa1ef64a13e +ciphertext: 4f935dafb35b25cbf6a89fe7d8e60abf189e5b949e049961937d518018ef08c2fc3f46e76c8c8bf679f1d42aed17c596839d1780aa244ade22d72314617e6a64593ad3f44356fb3959404c260480951b3434936102325fbc2c8f229513727f9748fa92cd23dd3778e52c6aeb38b33e0c20c7286077917edac56fe8918ffedbc5e70b51d752917b4e079d599c49e1eaa2de73e2b19da0068b82f7512aa3bb805ece9c5d597ad5a7fd1167803d9dcd4cd1a699bd36903227a2cca8ad71739f39e71ab2d13024fa1f76442b864f45c8485551d151ab410a739e96670aacf04b1e744e1abc5faaf88c6157316c6c7f3f5466630ab876880d6ecdeb5797ff70569dfa2bb1054e3b7b97119e8891cee427e538b14adfae51bee876b9f91a1398309306f752cc1363235697ffddf688f77b84e827554d319579f632d58932bea1da87c82f98f278dde755e6680d2458a9f756796904f248c68407012f26df16f1ad20599baf57e9d414a4f43c34c9f4fcaa3193df821981889f0daf11c79edd4593365e45b82e6dd3cf83c806ee4fb0b4a9264f85ba2511aa88c3abc45e82f514c4cc09e073a2c81394cce0cceab36aeb27551bcd304ba1663bdc96f83c390b5e2c0f29276c93c5deef1cd95a754c3f490bc09bb26528d51b5dd36a7f45161cb455029e13306f52aeef77c0d9b1666ab88d0c04cfebcd350e3e96ea5cfd05833c86efa20a063f911d473dc09976aff3e288dc785e6e0fa7025fedccc12d60700ec4d5adf9d43a37ce9a8bdf48f59d745f1555c8a529bf8a13ae16bcdce7bc637ad5ea9b14b5563768a1cc1b9795b1b0892628f0415129d8633ebd9dca07269fbe1f5664828b913060d6921b488a8b25fe91c9245ebccf879b948c843b824524ce7c5f8b2df748c393940653671b8e0b02803fea5e672861b69cadbf2d991610d132f5f20aacc8adf9b9bafc2625ce5e3082027ef23b97370d9b0ca1a973d9a026f866093fd566ef52f6083dd59724a3eb6d4b31ea5ae55e4bcda519b98007c41c0627a227ea7bb427900aa7c358ef385794022bf72d2dac2837706592ff44b334d03fdf8d6eaff688342ae037c699b6ad7a96a17e7b3436713ea5007b59c2bb98531ae0b232a89c23d4d9a4d9013dd8a17f44e0cffd59c623c5a360d00e25838cbc6b923b78f3e2fa0b24209cfdeb1df726aa7205f93fd4a7ba35251e007b6b15c87beeb552342d656765e96cab65216ed4d23c2cfc8d252afef383e208c379dd29e9f7d541994773500d9243e50f026e03f6619e2fee33369a4064c113ddf2e5ef16de65c08332ff39baa1658a4762875ec4b1ef1d6ad32e8069ad7ee49a979042c071ba69fb491db5476e2f22af5d19ec9fccba0bee5a0f6e11f660f87c9922f245a5d3f87a27eed6f7cb25cd4e07e9fb95961fce65c233b864854a1a5cfff01e2cb90532067b7b3ad20bde7d7a7b4e14 +result: fail +shared_secret: + +# Private key too long +private_key: 943c606225a2c34aa11c1987da884c20e0627adc75fac81895e1ae64bb0658cbc2b3946b15584f21147308eb2a54aa8cf4f714147c4bb85323d7b6a13353546492732576734ad5891cf28186a2137f453d748a30ce6546a33073cab0789efb1f0df53dddeb26f35304d6c621514830a7103883c4b0b4c41a382bac86b5007ca40a908620f686b656706131967a62f25eb3042b9f482ff200ac85712e06c3a158d032ac40493882785fa428aa81bc3ca62157276b506b6916f2207df3c36624060490a48a1615d2002dd9b0a7c8a748804415b7dc80fca8102d213cfe30bef5fa62fe371fa11b6a28bac85b55c7af82395b3992845b0d056a7d9c16b908b42787c43832640cdd4414f1d871c545511b36c95168ad6c722fd55a4f39381276563840abb49b822a486c3fdae695f7fb1014528bb9d5b13af278d2c7b38b6466094b6a27aa87bf865970e674556484f2464485117de3e0215eb91dc4bac5a18745983c4409427a49304c479136cd95076969902a172a0b4405ba00016351c4a5722078bca61470cd68a4571cfa4d203b3301c777273b8bf8c153d2eb1f90fc28ca4832d5268f9d8576a9dc6b4a7c7f8c742ab11b7d980c04ef6caf88b9b990d718fae8a46e3979fd2ca95d25306138263e348faa64a507850330b09e4e95c96e62570bc88b758b78b86401e7d8930e2abc345b75220563bcba985d14c477342b9ff1bebb6529171149be78c8eeb5cf0a32214586ba683501f4c10e09733a4503b2e40a9fb319163abba3984a03d514bb420a932816c0dd748059f9bda8c735d996bc5dd8480cd92361c58b341aa7006c2986a5a08b7cb8cc6a6db5f83acefc206f63ca81ba669994a303f8155b48ca0944556b034d8b030cd648773aec4ceff499c802c9068a7144c5a8fff563c88635f1396127f62f093b7e12745566441f7f02079721892f62b9424bc59a06acb61060a688c1b005821a5516d51a1dc0149f4212b6a5101843fbcc4da1b8a1b13da7625a337613195a43e6c704d422a428a3b6734a0c7034219692898b3a82cb8047f864ad604cbed0ecbea1f0338ca4055f95a3ced36c2e28877a572e1e09179433cafcdabc13a9b7c487c9ed383aff0b52bd96541e65305fabbd07db88437ab3227763dba16ea41025060a9fd17362c212084c17994963b394086c253c7b74e082178b8092304b5582630cb8b30dd8cf93a762d3520a6366ad32430b6482cdffdb627c37066db12244d8573be747c3a59fb8103d9e013a5b2ac9c593331602130f838f99e08c9cbb524996570e93a7f1cb7acf671014b87f14720ae8ca8f56b8c5a5bc50d7169c309b71d5bb5661e45eeb8b5697a28b684003eee83821a32aa7a9996b848f7f81a8109847323513296ac682c93893e4005e4a6b5d8346dc0a079b425d914b68e7c3670628c529277a496aba4c3ab9e422805037306114245f425567dba6f6006687f96d8c868d30b9aeef46c1d19b5c1b60c5569b9c3e14520a38135de72693942afb2aaf369673eed59b1e3087565721f7949f2d78b31322b9345765f2710ade81c34d20b68d5a43f43996ad911f63391e46225dfef009240625f4f8aace8a9996004a28327267d920991476ef606b514b5a202cc3eb5966e8c7cbd8058de666462b8621f172655280866e3a0839340b9b558335b40de38ac4c413b998d65f85ac0b481530dbb79a09c884641502df00082f9529ec15a09871044e1ccf83f271df934e4f130396089500b4959cf1541c359707a15bc54b29026a53fe03a9529077e4385dba1724c78795dbc26ab4e488004a442261af66d6b0dfe58d86eb4460fcbcc37a982b75cf01719054d058133a14d078a9592ca811548e7245c19eaa2bd5b519bcdcaae3a5afc579248196181384bdc8d88929faa9b825ae1665b1ad269387f5c0c49c00b0632761006c58a6672611cae6e5050ea50b996a3d9dd405ccb12a202351ede91796976daacc5bd1443d0f130af6362f93c43c80180a50cc8ebeb6a26d212714e1cf41623e2e06b5c126b8433119d828617e78b159dc48bdc79d6ff631175a0cc8ba5e9e2818ea5a8b82a16c577a41eea50b81899fae49ada6239f32669cfd77af377b1898da85e4eb9a65c7c29fc486d8b27a4b96473759514ee45831888a24157db777c740965912f2abb917626f3081ccf2c98977ac2fd6c5a0fb51ca1a92e6398595da255b61903011bec91287de905099c6941459b4ab75af8f07a39f0076a87a138495916a93197aebb0442521abcb8649a4765041b10a850b8b708d8f8b3e4e2aa1b0b29077a3144b4c77cfb8b835b260ff03784e80063b6773742a0534c55860010939698738b3917eac3719a3b786098fcea8b5d0526db1f28db3e5435a4a83418a29fafc0a5d5912e6095cb80b4d94f92cfaf4c604b246bc2ab495046de02b1719c4c4a3296bd37bc09278bacd60ce4bd62d6ae123169a5b7f370deb1424bff8bc47f62730861288eb6eed6b8839f1b05a3961b18964a2042c1f393a0832b4b48973f5d4505f417219fbacd6bb5ce3415552c12c2b1561275638cfb9c80e08129f9336888090e7d99a09f6cf48a0a5ebd16a04ea814ddbaef22b2ed5522885f64f46340aebb58e81f694a3655655855fe92c0a140bbab9a33caf7c7eec148bbb484e46819be3b56b11b757e552164322c15834930b12bd34348c312c43847c9046dc8d11b045fee778a3eaa6b94228b40378b4d8c4b4181aeaf257fbf884fa288e42e230f767ca1ffc5631906fba06a0a2d150d3a5cbb952c1b965b5b3532291c93d500390f91a62766cc56929210a453c245ca0aa305a9df652c1b21ac9b249625656b0378027618a66230351bb9e524b91b5d6a6a2448e38b3bae321acc20669ba40165c20379674368d51741af77b6cb53c1fb5ced27aa56b026664d79d75ab7c45b5a9c222bfd14421140ab5b4c93a533cbc91e4264feac2a21555486c05b0165791a51840c4427d140a3d5a536b077e5c7569ebe7863640540f5c7efa1a9977c9c1346807f233897f525d09bc741d6c08ecdb9aa1c60f632cce037514254595b7991d1a89ba6ed8836ac9664ebb2af0f3a7a55a42342a8e2de751b2775a18778dd483347d6986169c2ebf313d15634178ac2c73c09c9af147f2e40e8f97baab58ab507452812211c7ecbc9b5446589976f8c385e92bbfa3caac83b24f42d5c1c2c66648040bd6d68f36160ec8d65aa2977edc22b8e1264f477511d571688ae1a4d17389c98cac151a97d5656e0004bf5ac01483d17061955a59c1ae35c4bf59081f9e7214a42015c241ad3dd677008099349595f7b0bbcd5baa04f126f105b1c6082d161c36fa307810b414ed02b0d71880cdd5ab8354749545b549db1979e63ddd5978e4e660dcdb966db650e0b7b70ed89b641869f2639011aac6f3501d1216251e41aa481689da24117fdc2585bc183407bfb043c0f1624b79f2b922ebb7e47916928403f5a71ca55cb50bfbbdff94512355cc78d208299847dd4c353f1886dce25293ba8f58a58773f062c5c8ad937c2f747cc015f2bce8a255e0d2303160b6c4c274f3ac0ec3493c1173262358bebd17668ccb586502140b399f89d70d53b0a2eb09c55a64618038989bbca8b6a79efc8b60b410c3e6256f5c529fbde92e0029807ebb4b0f4999852315676b0cdc579f9da4a3c71012c0140a50a4c2fe8cb0e73cb1d7393f65b63666759864000578cb5fd8557b658bcde1aa67fd495d4bc16f4cc78d657627e83618b8f78c838b17391c321c25cf9ac24dff5c67f81067acc082587449e41053580c5e44819e9c580ca8b4943093cb39418713f5aff88a2f4e1c1e81c271be9436a23111e63a6e79654b0d82b71ba2bb84393aa395084e60bcaea947c033c421e1166ac41d40a80d2f2251e1c5162d49707b5702298b41f0d641379c7092fb904bb5a10df4750113aa2090aca89517b42071f7b471dcc9445d6b149740282f0113443b810533351d529616002b71843ec973aa0486b0d5d888f1d170d046b82d65c2dba60886f01cf0b3797b817c435cae649064eea8107f0c7836260fb2f7c9a461ce2ca16100370246011c8bcc5c00592554f6404dd89c2afb0c8c0707ded591e2282cee3aa802cc76765a6e29ea2d8cec8265908155d43bd3d3bff1089606a9c63cd98720fb9a0dda0176383c02b9ab9504b6ce7a5917654f9b5333c6cb435c1708d05c2921710d7f288cc01b4140c369a1a291a5a380837166f2ab2f17bbad71b67f891b7d14c18f03c6045ca0083f6c00b75b9e5c32c4216a0b1eb22134d8418b885e6e157d99c89e6243935d4b14da8a5ab998c96453d0afb7ca5cd4b1849023bdc021d8b6ab4d33ae99841c5bfed631dde8e3187afa61b8bac7a2e866555ef933b778675f1221d329d19728c2217917f9f21dcebeae089207ec643b5dafa02a2f21657873a39d4c291fee35c09153ef8a081e5a5deb19265e00d4c1a12ed39f08e2cd612d +ciphertext: b6ec6b1a529ee870502df40aadaa48ae39d52048b16bd3f9b17541df33bc9d0037966b05bbda1a78f7ba73c3ca2d54646dee58f9aee6e33de9daf5f72c5fb36e154ab263cac50412ff27088ad5985723bcae5d942883569fc2ed01ee52922021380ead6fcba80547804756e339cfb7521f565aa1f584f63a40933e00271536b3e23dfaf0298110009fb3e61e9dc6fad251a0794f3457978aa8eae06ff33c43e985ec0ebd5137c93dd47b4e9f1fb8f25eb1b2ae27faf9a7945301b4dbbbc9e3c4e62e9c72b59647ff8f6c46f78ebcf259046afa4bb38d91f09c812bb7bfca60e3a36f692f6e598211dbda5ca12988267d6b80895ee443e63701e63cf04f9c11b9b9c79ac6dc8df00dfe8caa6c1904eb16be612a3b66aa213c73e422ae260b901fd6e5ffd5749ec6585d5a8427a901d5783461487a717834347c251540a65a7e539b42afde0274772aada766b9f2aa0cca424320aa447bc8170957dd395a1922fc4ebfd048bea4f18ebc302ddfeda5b0d084c1fbc3e8988cfee0d1dfbb6e43c75508ded1e42a6a842104f4aed51c025a25954455faf376e9ff53386ed6577436cc16ef8b844e72f123ce08d41daf6e8fdc3eb53b37e26412f2ccccceb91d0e0064d1201ebffe7d2087d03436d4f12c5e85f39aea08bc497fd7c85c37f3134ba893e91182f39f93deeb312230391be7aa5c83bbd6bc186edb84135b14af24a4eec618c4f9eef4e053bcfb7918046482a91c3a14be0028f27cdbda0156240d4883a69590396328bf0caca5cd6f1331275b36a7a6921fcf3b4c6f78025d00ff82cbf73154dfa1540fb829b5100414e6c7d71fde1fcd55870112db1dec2c9910f7cc9618497c2eca607d1202749019f37c99445f881b906377535e138c91f5491f05ba2ccee00c23d2d21a1fe354c3722fb6e1ad5c659cb36e691b13b9d5f041a9264ffd32055dd1cecb5cad46c11da51d6f9630ca4e447159c84bc457431c8b8a90b72589c023f4fab1543855311fa7c3690d2fc0c51238d6c606ebb13f52e59f515312926404ba60e11b684ecf0fd721fcec0a21fa596ee4f35690be2097bc03179830e70ace36297c244ea68fd9473b97f29784c96f1271185666e195fed281557a4aa53de909fd89912aa493891fb67ee0af077c2e4b08c390d79ab13944ef617cf1556a69e2eb20575af535c5e34f378f205023b07b34c9476a245eaaa4b6dcd9cf4ec481f4badf1ce698324e27f6d42117a6879715188b7a7d354fb96e3a2198146fe95446a843b3773cb7c62b693523a88c500377ef47530ec3f538a06cb450000db51811e356f87e4cf25d181ab6701f614cafa23142b677720c5c1184873cb7ea850bbeff3a0a8cc0df7e80d4f0eae1fb16a1137411cb521a66827bb05e6e20a25da05cb0f54d3d8e2fcc1abcd5ad2614c289ed731df60cce1095229af1d726185c03e1fb03b11a4feb017252f6a9093ca3f6f5fd15503ef8e2cb8e43c2a62f33e642751deb32759a490b562b576a25c00d838afa64b1d9a1102cb42b02ad7a75d9aa3c2415d5b8c2ceb989c67148e470af603a9d61033baab4a0f302f033e266a125f1d8f3a62a3397aa026b957e4d2544e7f7eb156d148688ce1a90f94afd4713d34945b42e2497bf8ff9894b28686b60997ef17c41d00e47f8b12365fa254625e80a4138c668e765d01939af2503725c5b88d81ab99c41e6bd7739e5ffcb0ce25a371dcd45f6602425b8dd7a461f59071846e18ca18f2af9604c04c728cb4d245746f0e2011bdd468b7daa0eed790b656c7bc8f5ac9bd1cf968fdedbeb9d4c747edd71b79800966e6447784ee353a792fb7824d9505ea773e4090f80464cedcdcf495acb59da7b455a2c5d213d0780f07af9d13a4ede3959847800c7869e3bb21e6c393197fdf4b6ddd58b827ac524f614f7f3a953bf78c92171d6aa4dccfc0b3a05545444451f59589c988c7ddd5333df733a0beccf4688ac5f1d6064214af15a56dcf0af758ecb49b53496bd34bb3988569e87a06fa8e790bcbadb0411f89f20fc1083523949683dd9224ee60d3db68bb94518ccb03f3fdfd078a61d950b563ab095d642b8567c2943ed310768e5b469165fe7b811fb7a856790efbeed015025bc3db7f9c18266a3e1bff18cdfce700298d4fccd8bc6ab21008536bd1aab19887566844ce615f590b73a4f49b409b6ed8489aead97701a6ee2469535 +result: fail +shared_secret: + +# Private key too long +private_key: 291195d04bafae2c10b0671c38a5a9e37800750b8f550c0962b1607a63c5d1e2a01e03570585840c7433be75000c7c024ff8c1a4580c98dc2aeddb140c578447f3150aa02d311a2de8acc5de2255d0369bc5298fb3805ae6e5473a408d623353ba1586d891a3c4a483d8588ac7900842c294e8a97e6a015b672493b0f74adc7bbd4493a944c419a88b418fd813b73a3c3dbc6bac0bacb2aa88a85b4dcea947da74112708b6b9f85c9307446269c67582b21d889111bab7c73c772b862464890f155b2af00c9238b129261144dd7c627e6c12d7539bde5453b7994a286b730e212c24fc25950115610b83a8139de0306b9ea1955df7b2e964a8beb548419878c714b273a2cd1d586608c2750b5ac26623bfad6b4d0c311a15019cef4c30053384f457727886bc971550b19304250a019cb1866086b6c9ec1e63c273602659b7c146b3656dae9953a0478a9d283488ac220529cdbc9432a482c3386c284b26032f0b0148dc0ad4aa7064a4ca75f073d75ac202b0484a80543f646a5afb1ca335b8d677770cd5a3b1d58b5a4ba074028541d1a7bc5c095f636f040344e8a8c03f838f58e705bb417cde963769eaa785f3ac2a732bd7f59d058a41a26a4a2f16ab9bab98fc45ac49eb0fc8d76c27a4ae190413873789eff846ec116e2471be5b128675483087358331256c44d53661826a73b388f2c269bc7c17e9c496229ac111db20fed085e3b3a5cf234ebc0c0b81d8c4be625c0c676d44f14a81b55272780991181b3db767160a55dbc05104a09da0a4988de2c4f585c7a4393fa1d36471691a01b38302310467b83ab15721ec028f3133bc1f81764d14b38ee748e7eb5dd9b703e29cab8e40083db09dcbc6c23dcc4626a2c436803b82ea5a52e694c9b41505b7cc507c223ff307a6e7a5b5e4c9f30546a0bc20ecc0665ba9a35b79855b994b137691d568c9b847cf4daa8a02f6382e0c9d0430a992651436583ebfe2af9f83a450555507910f18bbc3e3d90460307d573b55fe7b5b1aa70b7e717f679c39dfb669ca5313e204629047975ce26620966cc0c97b7cd52aba6a368ee696b730a1d4e714e8a1b54f4a741a91ceb107b649d13931384d5a180ee6166314887d49760c521c050a81c50e4020d3046ca8b79e6e839de268245144a78da484a3a41f8c996e73eac33ba167f048a63ee075eec501c2752416a7b3ad5568a207cd7682c1f191a1c748b82e9860b3d48814e57d20fb5893ba5ab335c70bf4cc6d33c335f4cc87d27f521a5568445e0ad775acd474442427e5357e079bc7ad283fd544808b385f2ea717aa41abbd7c4028d97941b78d096bb6624c6307167f04204bff703e3a24736b5cc482f5ba6b9322bc5b33e7119c6e3c9253236ba71c7bb1b04b6c305c18dc9042fc7a55e110057254bb143249ac44ca5b7e6a8380f91194466aafd729673a8438ceeb59c7abc955a2bec748af98124372038178274b78b963d9b7ccf7bb431cf8a6e9901194ab3f40e78ab15ca50ed146a9f9782913637c2612e1e522eea605afa72514c801e9b8a3aa354284b0236c12b8f049130b33601b93467131132fda720d01a54300348c9001bc36afb8b03593b63b33141cd4c12bb46a89d3254ea3dc10b3902260911325bcc4b56c3585ea4c5c7cc469aa8c1723669cc2430e482210e73560c83e94944aa7f507b9526db60caad2d008d5ac7d1edb218f9a1ab55bb17099a23bb32d7f61a8254012f8bc3cda9bce3302c9d0612b15b02e809b18f640c4b888834928984bcbb6b4c17c56208c64b1bc747152ceb8581f87641e86babf2634fd708224e082a0d36b812c4633405c72ec8aae55350ed377c423b2d8d866cb2a09b75b15f17b49f4e0791b4b06e11018744204dcd0ab3573a71e4860b51c0dd1782ef706c0388c24e0f6a4d41b787505c330546c9b60bda0486c9596c265a934f094098017020163033ff97c697231d90a5c361b077d9c7da9c83d4e926589a76f057ba325c02ad04ccf1f4a54e01745c794083bba49b29c0ff7053a22248ebcb0af5446a71e59cadec30627f7880358c7a92bac7d7919cefaaef5f742ddacc2bf92344800678153706c188767958727796d8b8368f6436b42d9b11eec0972443a7bcb36640561ff2c0fff8228608119d6484a1551291f6b2822d094dc739b087bb440d76ecc654791c396b1d59c3bd31cb4a420ffb16db2fb794b0ac443e9b562f8257f6c4a699b46d5fc02ea88267b7a023b290d11618b27826f1f5161c2fc9dcedc80d6b4cf907061870048ed0540764577bac81cc18446eb0a3e94cb2bb9621f7e242a567367c3bca2383bcb3f584de7dbc3012a06520a2bc2c27e7fc31b661b9a56060024d42ff6c3a779729f309b63acf07289a678ada6b2c864c1b8211fb20b4598033c4182ab8c778c79c4c1eec7209d141b901b3481637e696c4886b54c1887553db9014267a968c671d4617bff858aaa34cc10467470d2c96912135c6a0c69e323aa787b30918267734d3aa387b0531c7a8b8dccd7539b8b115e791e11742434e193496498bc98c18bcb288ae768c0571d93102dbd974624087b84f9c35f4623e52881601cba333651856bac46466e6728c8dda601d8a6c8ac96b16b6aa2ccb374ca2328506b92a1d46ef9861aab6034cdd4b338c2bd901c4197f50eadea5f6d103d26c00dedc88f851406c0b666fa2970eaa43ffcb98b233ca0a3e96ee2fa7498bb80830024debca6097b500c234c7bb3587e4b486cd34dc2944d2473056bb8641d327731a5170e827e2947ae3389a0f65b2205349987e06f83fb3bfcc643eb67c5d074babf72ac1cec481c7533f60bccfd6b707a33a838f4249603ba77c6b70fe3cd4b2b5ed4542462fa2611d75add27b1cf453978318a79d3941b112c7189a9a5f4a73ec99a179a2763c804fb28ca69c2314bb02287d533a7b4193e192d7d431972009b10c838eff366f2c13d1295c2c3b4295280615ff5303c3975ce79c3fa54c6a7e0b6621608cfd4c8d1a999b94a5939d53e46d668b8e89034b09db0e2642e513744f71433760ed5703bc0d991468a0753b9a7f0f1cefec60e4416c59bb17d064a98a1b4896de23eb249b118794536387b8a9946f7f787c17585c9515fe2098c0ae585f5d69d5afbcbd9c62d1d2b2cf7877a71f78ba7e44bea89c045a392a4d701e2363baf25bc41a403b82c1026bc39add450c4448c6c6a9b40625272d2ae561946870c3289299dce9b9a3e3722b3c0257ba7075ca4840079a43c0658c47c40a6d6947b122965d081e3c22eadb621d8b309a36b3a4722ceebf09cdb606d4246c009409382b98ff65a4f9253324fa448ea332383cac40a57cb4959bab6dbac2ee18b6c1958fab67c679771b70001c2fb4c5a18c3e8d2c47a91b37c525cc1e4caf1e2795ff6a4bd62a47bfc4f6ddab0e5c5826f172d1b151e54782e0ee25a7a795101f0ca20eab827582fcae193596c5178a110101a0dee9a001476a223d75602c73b38f910d0536456c1123ae05dde3a6b06582d0ec183bb4577cd74b684a449d479b057660ba42a05ac1cc39cd50e15ebb4ab3534cf2c662a7986896b74ee038935fb240daac5f0032f2e00a6f35087aba77fa1001acad070dbf47359fc9c081ca6ad0a2e2117446b9ca099ea07e403659686965f4ca7e4711c5a716593d65433ea559d1797b6b3aebf9c313f9b1f34b8002f307047792a4589313b9b91c5bbbf9f85797bc08f317243775b4683c976b89b662a6310e2ac7edb88ce01665f177a8d3353a98c920b7d1745d4c681ef977ceca15c8c740e8faaaf6bd9906653c5ada163c0803e8b9c612140992dc3a0d5ea1e4adcbe16a9051c6a2abdd37807b9475292382f03a6b815c15eb403d105667c585fa6e1679df44983741995a2875bb01c62aa4713c7697fd7491a2918051010cc34ca9533362720cf4126415467919d0865f2a4c5f4d3365ba15e9e2c3745f6a4fa399d0823031fc7c14b1abcab1213c1080aff7cc82b4a74c857a0dedc76553345750bbdc51596da708931dc2fb4833b8cbb1be90143c5180f7556582be6cd959c0133d641042c387d334978685afdb58004d0b8640b3c7f4ba5d0223e8baa7a7a16503d83723c45a2e6b36290802c4e04c81c7649a32c6f7c100c8f782eb2039f2de8a7c6634c6429248cabb4ae7972c7d336be7290a66a253a562c9b3a5a5ed04f5ffacef243b9cbc4275ff6ad8a810dda0a4ba9a93a44e02dbdf58f45913502a8629767b3494ca39f693b7c4685ea328de5322f0ff0771d9c08243883ac2898a859c48be89cc03b3053a3077b05a5639a8a1a83b87b15987932a5f7906cb12f495cfd5a5a78748ac5c06d7bb4f6e48ef2cc74191e34c42f33d9c31a638b8f2efb488e478fe06e84b2fff41d89f53ed68b927137466982fe3ef9eb880245de1cba1e527720db5504dd7457f8346a1ca7786c7e146e58d831eb8227b5d9ce0c5b3e21d6a3e14a27c30a92f3a49b720c5aedf1b73d139d54e504854f73af +ciphertext: e650f128a267bbb58a5b49b1e7d15e006c38a214e44d4960ceadb116fe5a2512e0175a7924d1ccde7e667dd394f0f1102be9a37da2efa9b7fab4eb350dd0623e9e42b28951cf1cffabaa8a85bb53c7aa6d7f51d3177d229f172fc60821aa7abc9d07872f996ec805502d79537d747694a1734f719f3feeb38fc4a9ad90333ee572fe47cfb2d2e2dab7c0af28a00d7e69110f51c94e7d09e1ae05ed31de5a0bab408ab7691a40c50f9e8c7bf2e4e78325a2cc7cdb020f78e6c1a88bae9e961cbd0f78973b3cf8a37d530eec62238757a834cf03cfa298d25364fec8f5954ff8b98bf273dad246e081e644f8fba63b7089ab1e90d28e6cb3090388e8df9bdb6c34bbf2ae1a4f6f3c24628397d369d7d21789452562d9bd4a60e591e83df8be2f92db029228a38b2e94eabcf4a0680899f3f4b3d7dc7e14861bce90350dcc840e6e4fb051cbc443809a24adc8e2fe6e77cc99ae12d0a615164b6adc7bfb26526a535564b2bab8f43c407ed4b28ea60d855a4a49e1e699aafa416aec315725df01ad230f0309c29e431d3abf21e24a1c1d000c78d57c039bc04a2173f9fae5db98e8a94e5bf3f8b65701479821e2ffbaf3bfbddb0e0f9d22eb69becdf25a5b55b060db1dab8acafa7a5de0c7dc87f362bdcf8e15a431ced32499807729a9294f54c87b011e6953ffeca6ff11e5574831b752624927456716705dc1fa905dbf0ba17303cc681b0666a5788a9c46cb0ffa143a1c5a4a3508c1683accb999bd2914ad3ef298d97adae48ea3650494f829ff250549a21828f52f751082c75604051ea749fc063ce96d3011d95e7ba74a0a901c74823d601685eac697ddf8d202513117a528a433b7572ae463824f7fd0fd58b742948f4d2d1693a17609397f4fd2327480951bd8f11cd199faf0750de0b54f8693fe3c2291d675426d2f02552ee8ee3b15b3a073c9bbcdaa313ece42c2d3c1f5b9dcc3d272ec1ef1ade73e5a4aad0da88bc8fcba43ed2c9065cbcc542f732e41c65e147d6805cfba1a3af7d9cce504d0db08331fdc98296d20698c79646665a30db153a8a0430252059c831f5855b8a97ffb3a59049b4337f1b7565e6387e4c9c55e5c4a837711cc050c4f08e86ca9243f05be643f1001ed259e4bd8c1c6b7a538565a11264eb446e4c0bde9efc64b46dc8e3cc8a15650485a3db63ecbc535b0047742b7b0eb0424fb2ed4a8fcca53d47c1c87593ea8cbdc9827ff3b3f2f50b045449220a6e06d772ca63f08044e69da097bf082b423f393141a3b193d0d6439c79a183cf86e66e5488a7aa07d1e0089caaa12de61650182886c128e8e5eb950e9e818eeb4ecadc9d253946624149829877db04bb651bec655cf5004b3d9ad5e48c94b6a99a7425fad69da35a521933650197d055b3c1af142738b684c4e6956b6fd3504c894e40af278a5eab5b7cf340c0912bce74f6bb56a5fc27f1d4c812e1d91be11b871d23fa44a3ca916a11f27bd04e6c9f911e4e771069672a5aa5749f0db6f97c75383d2bb41f624b5c18ddfedcf6cdf9944420d9863c90b76589f1e8a66e4d4db57c7e277cb3dbe6ba185ae9c60d506006e7b28c589a10e3559d0ed3e9aa1a8ca4291450d6ece3dc83b25202ee51d856b9eb112d804bce345dbd9e26dd16936f59c4a2f82189622a6732c797af57cc98efc302dbb62ca1fa63f76dd2a22f5b8b1c69788188edeb0d0012cd9dde80058b1628e2fe021303a82d65f29dced70c0b75ca87afbdd813f27589bf8108ea77adae498882e0653d53b6355f5446ce67fd03b7a979b2542fa23e562834915e7be090c1ec228acc1ae7200976b0d2d3028e9eba3dd29a290aa7c25342558ee079b865e5418552f58084893461beb566feee04ffd95342a32c4fe096fa5ce6b22fe5fce61eade9cfa590ade9ad28c75290d9779784ee1c43cf1c7c0bb60bca6722ee58657bed58d70a7f5f265f7e54e11cf7b3131bf68e19aa711b377657e42c75b60f71100cd42ead732535e9008980e6964e4818704d48b579ce5f28f7643774aed60d41d6a481435ac79d0360ef1d1d4a42aff2de58d44d4ba5d2642fe13fc941a6a6d2a3f04e64e687fe6874320233587fc8a59e2c5e89fe49776855bccaa81e1658330eb4210ff38ccec2ae4e43237bac3b5212075a2e61822a8373fb05d6da352ce4a3ef485caa0b3a5e8d401745375d08150229ba0ca1797e84c12 +result: fail +shared_secret: + +# Private key too long +private_key: 3484b7386458206b9dda1b51f6b73bc7e42fc61300b92133ac58a6f6c27dba5533d7b826066ca6805a67ab30877e4a9f6d035872b96464a4c26d34a74fa64642196d204c76f24885633a1abbe73fd5702e590c80b1b7c6e7bbc94d720ceb4965e8374c6f861abec92fbb4193ba829a2968aba643875d25977bf1c58b3416663acf646acae073cb70b704bdd468e2c44f475274ff8c66a1d28201466b607ca5550703bb2c22b58a20144037c7442941177644f230fa25ba0d18c3c77a4c4125cb5086b698007dafc82d5008af2cd6b2bed11c5f6aba8b322ef819a74d06674d468ced928dfea08114b193908aacca86b95c475e3b15098b5aabadf113760bbbc04a35e7b36376b10fd3acabbdc74fbc87b28094508897392d55768071912529682964210a9003556146d327b477bc5f97eb53c02394b6240a383a960df8c36cf48a1799c2c4d30a4bf84d20386f8bb515b3d9a904543d9ee69111618ff6e66f9e1256c1305224a74b72a170836857d0b44da9a05d31843f26b2b1ecf3103b643299eba5ff4073d9a6a22b225cb2033a4f356d1ec6a7f6fcaf3636683ad77526081c1bf6892410034f5a8fdfe9987982c10a689870c00a2876be979479325bba43ca972f58147ebb23e174c151f47a147585b595afb3c30a7ada88eb1acb0e0558b39abf948591cca1cb436070afb46fa0e8003d1134835b0ecb7599828a194c6a1b9dac81a7bc1a905c8c9f1c1340b6105dca213d41c3128803aeeb5c72f0c02f39401d05063b64b9083544f8e5088b716200769cd2093ea1b9ce23f1a4536129cdb912fdd191c32a38bb212461acb8512562e9e215034a1cf8862530c3bbacd0b60495ad8af6a3723c88c53bcd6a843fab762b711abef779ab45a96a13bb67a88609ce4a10aa190f531b7ffcc94a22a9a0f161975ad5145c08706d197e19b328c3b13cde572e898c3cc2c637feca354126344d4204e766a1382633ffdb4928e3a24dd158325a500b56af947074468493381423f3a75a4e9505fed382fa850592f460b8738f7631596623666f6a595de718da247a7e411cc79707810a48eac713e33a4c62e83378a540d8c7aa12074a21ec38bb928652f3a933b62853c3002b439cb8f0248e6cca81054c21e0624081be63e2713399c0c4f570922c01c3a303e415090015c63000c4c5f7c6cc7b3ebce47d7281ba6de6470c5b61ce9195b9a3afc74347cb5b517e8396dda9884c508e551a1d2a057b1b00abd402cbb8928610b88eb00a5adf784a17ba647a7c7741485a6e6569b3e9882991b17443a89402b924504a7609c54a5787ecfa03dfecb0be1904890384dc9cca6a1b61d2dc08a1964aa46467a1d59e0c77b26f810215d44a3b984bf3d7c358610de69cc3c6111733a4a6dce2907c3a3e9d9a992f9a744ed7aecdd05c7604cee3874c1e39c6fd27c680f9175cba109aa1b3a065b3547197b5e973b70c3eb68126229757c9f74d5304025ab3b657c408d406cf7ae364592593a539b75c34bdc822c508e850d7e974c1f21f02292b1ff1c13f06566c425f21b02b8421a6a3d170c2ea3f9db8184b461d1bf41df8e5342ca4112c7940d3432770996d99c4ce18fa21f0b0590538bcb2d81c4d15444224995888c655a8c6e9acc5a8d43b62c986cf77567518728c8b8643d6cc0dbaadfbb87fc9fa310e5244f46a78a9658a54568df076317c69083f988673549c48137fbccb48dde487a59932fc333a79f376c0c93510e30b9cf6446af16f64869f27933193872c9af6997987afa3216d93d96618e1a1d3527f3891473f6963fa39cf757841936b6154ec223e892019fa6fca40b11a80cc9543997b9023d337a00b948f1dd44bd40ab1be0b62795c49f246642f3ccf053c1b91c5b7d97480a1c18d891baa5f87915a950b01a3b272a87cb6cb06327b95e6575584e4aa9579521ed95fecea6ab6a47dcc34c6afa20974d1407de24ec578c85074476d292c5e57331c02a7afa72f4c64a2022962732538d288cc187aa6fc70700978c51d18ac4104ad36724853805f67e5b63bc7b284229c2011b7dcc35da048891c90c29ac84695413404cc6231084e8ad87554d055e9568d338a786e4c86bd029ed57584f050abf56b6cf573a2e23b793e31536ba618db208d6b120960c3819ad07e32043512615a47f83cd8c948599b52412754ff68689d131e31c439a6ec270e79ccd69ac34c274aafc2497bc61d42e589f20751c607627b630454e2b5f5bcc1e9e9278c87cd27d13cd2c6b04d393e62c61c5f866ebd36c2a5e5cdd6520e68375df0e5c55b8269858a87452b4f6b9b02de074493909a21d35cb0e4cc9c4335a6509b720b7e4459bd94648389a76a117010d9e410b44c9425d51c15502291362c6417ba84110703354ad2f1a86f671de4102e6d549399f325d48cabc0f68951c0b991722444515487f44b7016c5d2cc34ab970de0e57fab18b29c22b439a55f76932aca7b2e9d56189481617b75bfda5336ce87a2e53a09da17003dd94d5adcbbbd0837aa6a4ea597b0dab4b14d4c34c21c61ce67246b2576e775447087493d3683e7da7d11e5c57aa30dd460b617cb7bbf154ecd1701dc4600618c8101e335605c4a1df2a93c460eb5cccf7c16826f076e772681d16441e64cc62e0a424d8237d25c883904a020dc015310cad8383fd28c4776c4b04231858631989287bdc6a47dc7c26768c98292b5930b7c8868fb187db66ae25899b6d96b24da11571997e3b39dc4326f1e366c9ad05783fa1201619dd02a7b1c6ac90133060caa1dc06cc2c1379c1d44a9cff2b4c4a2846d3a4b71fb2e5b0c3a246ca304c533453961a5378c1ed303be477c8a7b381305be4d2961a96ba664102bc8398f4d7b69d4ca788e4b65a35a1470a12590ec075fa941d1cc754af8bee8b137bed9bb4ef3c8c44265ab49883b39718a97732e93816cd78fb706a9ab860e0e1370fe82a7877b9412ab563269b4090c37aadb06329b47f3865d233c1b655b0b9061a833e81e0c219731ab9ee8c10ade2794aabc0c3e3746764305c6d6335248459c09ba50a5aa39d9b0f8817ecb1b146bfabb5ca7831cac7119546a556baa9e50861107284253b5862716359919c9c6b26aca8b33a94b1964367f4ab2cf6bb5ee0a5063784b42467b6a4433ced777bbb2bff25203aa4a4027498fe091467ffb6a31e9b33b27b8b0b976df2554ded151b5598a5314106e128e1ef99eb303a0390a2a8c23abbc6c4c2cc37f6adb0a4654b723da2490742500f92b40b17e830c7a6ca6cbbbd415a442751ad0a2c634b6f8b9136baa5e3188528452b8abf32d1e42742c3a83eccb4304a0c61a13cf4614c355d350c3aa498a21bf56a3a8f929a89bd028e0b8641f5a92644c2a0e50cb6ae865b9f3380db0ab9e8c77af75839a41aff8bc3283885e1dc10a8f204122bc45e795a50c3619adf8933969aff8aabb994a3fd929c7dbbc474960ca9ce20afad68d26669037433c3579760630bc37539827c7c3a9708ea2643d6ac7cd9ab85a8f82c870436c499888b1e3918264c68bd42f522840c4463b8089bb1e90982ed20db1137564f26c5496c88ad60970e350166622dc49c8039c791ab78c7b39b9d5930d79c25481fc1fd1521b8dc43d67f9b592473ff8b35b3f20b62adac1245969bdd3b0b9a05a10aa4db446713eecb110bb3eef90c1558228424637478373d463008c58142eb38f57c47a8aeaba55b5c2cecc36a05a8a88d420c1eb609c418e5368c362681a63e7b03dd84779445806a7a5c91a11c22a7cf60055313635b584b0d59ab8dd877a415c3035f3589769b1b83cad8a2b9bac7a97ee7607aba69635fc8a645584b02a0da4c63fab9387380c971bc2c3958cb4a2b57ec4c1b2b5a307777156d4f81875b82475bba863845b89357b33b99125193bdd6a341b58c5ace564ab0b21411729b9cca319ecc82f78302e6a95f8b8cd67240b5c95cc23a7521ce90ca8f44630661ebd611726f4b23c0998c63b528e3919ab17402be117f8425e7881bbc6063f883aa10043b70d78add80b1cd33b2ec3c12928f351e70982aeb2746ce41aa2575daafa5a3100125b8c19bb663857288f05956dba3b3bbd632e4e17ad6ed5b24c462e78a47a45b94634c44d93221cb7e6b73df7bf624656c3f841e90c7a7057400a46cd3038696ed6372ff91de8895527b08fe5760634a82ca6ea770acbc89aa302ec1330ebe93314924f1504953b16cf8706226b8686062ac4f6834e3f8b69b8f293ed287710cb5553c81696a582980b38ddc55643ca17f558aba8323a99939cfad5544ad91113905823e166d6959c7a8969660525e7ba311f905a4515ae2fd01f2238292a2e9f5d23e282588477235f344346d7e83e275ac972423cd1ae276c382d65074d4cdb9e84c62a5f7614f84b07fc5ec5eae80da892ba7f234b72b610864f4488e38bfa35bb0068f332254b941fb5692078d2d9316a9620085b730cb3cd2661f351f2ac8d69bbecf54cf850ddd2d69ad908f9 +ciphertext: 11e867c8cd67c870fc65eafeace62566ae056566719d5b199c08bf552a647a8ec4018196a4762131573f62d1d74ca9a94f2e2b029b7ebf067a44ff1481480ac2e9ce27fd9203f8d394a1daf4d7c6f504e20536b23a8cded27992175d0f2e3c0eda16bfb7f65710556545ef42dc8fcc7cabb4482fb869d9a7bc1e971f9f17ff75081ee469e62c52b1e13441189627abdff3d1fe964d41406cf0e06ff95242e1940bb740716aeb2527bdd8b994819daa3b51d89b32083bdadc37f9194feb5630eef0c31e61cf814cf6b033ddcfd04d21cf1f753dc8a1b62dcd2f800d80c9f550dbad3eeee978f359331658495465d9831b6989b4298ce0fe122b5f20b7a04085f0548b68d9cd7686089a6fc35beb626896d44af3149251e282d7a991e66d6b359720c2bf93903539554626bf2fface45dd543e1a320acdc134e4476f0bb86f9634d1e587cba4882126a4df8573ec82ef6bd0a622010723f1e744cf03d548c8e9fb9e6652952c5a54a6bcca42147914019a3d7f5896d3c7aee584f61ec32779752bf68bc5d5847c37ece981b9720c90698e9f09b5038c9327533f74c5748216188fad541ea10f4ab37b03fbbe832648a99f26c4c511425cbb22eda9181d9eaf212a076158c4d9a09d56f35a00ddedcb40e6cdc03386b4b034d5f1d9d5c2cede7694e8e6ba379a1d22a6b9d6a8bf16cbfb3551139f0ac99263fb7ddf30ad99483910f2e29d7103487685d90dbf5fe7cee254410c93e133edc880a49c8b1cf9890f3b0fd61d774947f5f5ec1bde0d4fb15caf27e0a580b443904f7cee5a45bbc982e0c70b38c6748144321c6c034eb77454a26fc350c7f842bab4ed1f0b1166fd76ea408f100c86c5a3b9a624a55bb387aa88713b78a11e0b724ee205e3d817aea8c92a9de69cc86dc2cea422dc19a745dc48ea5ad9abd586a6ee8f96f37a8228e38a914fd74a377d46adaaf11aed08dc6c571f17586b900d6cc63615cef2c1cce944eb62e313ec0c970d3bc986e5d6f25021d1394e32677ab88c6636dece8c3d9024870faafcaf9450cceb727a83c5fca75fc6db96843f15b02f31d21a9b8a9e17b898fc223ad4b7e04b24a7954ca350f2b922ca497041cdc3f5b83a4855d2cbeadbb1169a3a122efcfc572d9f7a73cabecd315e7eb4c6b7c2c9e3e38fa5b363406394cde05b66fca1d0a01bde6cb882d415caa3c6bd47e7447f692e2917356ae84fe153c9b886ace30f9b007bed974a6a9a63b39930ac9db8a636275cb105a61f4d97ac88f5eb2177821d067dd19c4083a5a247288fb18c273f5d9185287bdf77293b1453e8ec6fed821d26cef42997e8783659b3d6032dbcb5b11994827a1e76c0d9a565834c8b6e3e73d5bfc05330fd45ba401821a45daecd04cee244a4204437af1fb90867c606a423736534e129c92fac1e0962e52856822f22b7684c5d142223cd35022f9c88c0483cbd13ea4d3b530e5ffe4959cc250d482c07307712628e549928fed460570420da7ff20727a0753e457d51c1ac8ded69f396f603461b2a0de7b1efb887cbacd433200de393d202f33c90ee5c03afd7910bd20f06bb1b097706a4eea7247e4a18b513f910345207311c49d850ba32a0c438886b44f4312ee0bcb7eddde728918988dc062f968b54a26aa06c5e3fbf61bdd37df34c0fffd11fe80f49ac70a4557fbda48aa8801bc5c467099922a0429ed59b63655f274ac28a093d90f6737b7a5a998b20fd0b82f51180122ae5b6e0b009fa95b9e512027f4fab1629a25b0d72c30524356ec3ed4423feb3e9bb42a26a0c35310bf0b1a2cb8f62b6509fa43a6812d1438c31cd566a34d80ed9fbe2645f02085f655effbad4c0d59d93a8fb116d5f69a978043b36a0b5b5b7f1ee0049016f72d5ded211b1e911ee666f4565c8628ad57c96ddf8db4bccecbc080a423356c312510a25bb240dce478087656fe6929725a72696961cd74e59b552e648f80660de997bcb0229013914768f0984b512a6157ef857e04c3ba2ef9c410a03a5cc08af63373354b2fb9de337c53fc6e10892c3dad276e8d73dd2591fdd87be87506c497cb5d646dc847b952d4606300656608c88f6e1fa7fef73d42a46e48a9d12544dc43051f276fb77d8f303f639d8c748f7c5802b75260e244b1e1101c1bce9c355cd8fa36195aabe9509dddcaa768b73b0deaa5627b26e7b9ca2006c20d89ce986f5439cd7dd75 +result: fail +shared_secret: + +# Private key too long +private_key: 32686edca224739014bf554165d0b8b3392339a7467446795c540a98ca68d6202157f07668b01f02f8512c8843944a74961ba0f6174f3143b1b262b62a268720a38166418b8da6a74674b2c3f341d713842e44072b817b1c00a0660b49ecb0c72a693d60bacf06385bddc80a8dc6c1c1982d9f1b2bd8a222a8c94b7b902f3e20289b991b63e9a1e06a35cc322182eb8345b8acbef0b0471779f82a1762e50f8567bf2d75228e081d585722c9e401a68806296bbbfc98b3878b1b95dac230ccaa8177870d52ca37506c29f7685ff051590b2bea400c4dcb86bcd9b24f8502d671a1211a7b0db73a0ad93cbc7b59763259cdab602b8c46c647b484a91beaba80c3aa8937038f07da07b80ac4c9371b8e66183a7810e1893319e8760b6570e7a00059020e431a34b6a86d00e83ffd7c66108490880b7e407bc421d34fdce543c8f15cd76339d8d43176a408d3a32eb503a35eca422b4467db74b840fac5bb75557bc1785a4c3afda76be4667bec7207411774f1f61e8efc589e517896792e2b52aacc4b6720834bebb09961435e548bbfdd60799e8c43f81ca58e07533d763802a16f17249580364f8369cd407ab821599e82f130f6d90d5f0c5e8141693ae11ff0c24f9de7b952699d75886302696582425dc683b000a4c5149416ec1b6dd9c142594001678a60af07706ea52404e23d48e65ca9cb9ef9f98f492a42f2da8896e5c835f404e1621ce0952725102acbda68ac40a5813225dc472d78626e7ed008fee74b4cfc2d202b8e01c4356a9794ace66e9a37532a80982722186ff118f2a762e8a149775903b131bbe2c39db61b8b5c8bc583d21a7760352b4816c254b2d27457188103616b2f5e43bf9a7b0643b026b7729e1bc55a955bc297b730e10a19f7b83a0542a8de10577c710c647b415a10a882999ae303979dc9afceb30f81d12f2a9c0ed8a15426ab3707438681f3c175866019984465469fe7da2f2e2b3ff2762d910c3bb123035e5342bd788d346737599c54c19c2d721cbd8847362b64a4e9f5bddf39b3364478929a823cd429d62cb12c468a50e116f695a4bafa8ba4db46e6aa44d09a944120480b0620216b08c753c921705576d472534c5b78504c05ca30541ab790c9a0eebb83d682660bca92116b49287b6a7fbb6998476b8552a1c765c217b84923a055afac72e3b1a3bf730fa1828e9605b9efa61b7fab522ef66783334ea2301b83d0afd8a189bc75870931c75af3acc15855f0d8ae54a485b215379d92c339d6b850b7581236b2d9d4aa5ddb6c9c39b2e5f9c26068731972709a329bc70b1bd859379e5cb4bf9902648169ff546c0d9c29dd10ac89d43b351238818a0e09c18fc59a20cadc668bf14a1c18b98b2974d65799fc4a37ae438006dc0d2a43243611a776b117e1e725232505a4206354fa46a4e174482061f97c618bd479cd596bd6cc5ec523017bf59fb92351ddc676f7615ce103be3a4053ec1ab1af481a039788fa31397ba6868a1c8d6eeac861833f14f6a4e1db09aa299da34b15c90bcc66d7a6940c2d192003c3f35a65f639a2169362720d15f3cc5f58abf692cf50532298aa4a62953dc72babbc761cfe94bdfdf4ae96928a0f39a3b80ac5d363193aebaaf39a3662397d449872e3e3a647c705f5ac60640819019a8344e4b407c70e9fd43e3eb1bac993209ec30ac1c798bbc56c489ba902fb7779228bc314c0ac83bf6c22710e42b1473a29dcc9c3a4f3c52e994ef7f7c8af1a531c303ae602ab253b54e404320e5827f804a47ce4b30dd32d259a58cb6747ad2b7a65b32793411edc35cbc49a2b3ecb9617ec792589adcc636084f99565bc063294962426250e101eacc721b35141fa214120627b1b43051538aa78801363d08ffd54cfe8c0096fc86a89b8ac0d252b3077c98d9a2b55d16eae57b65553188461bcc721862ad3c5c7ab341f6380398c6dae85778938bb7347b8960b6082772e6126797c74671842cf9bac6a61880e272a8101661d1a82af83c8c30dd32b01d2c97bf74cefa3786db1c17edc6ed1876483db558a834a8b379e55e5a766eb1a5b7c0dd0ca65db0a9392ab166aa91c065bc26508a2a54a9ec9ccaebdb5115bf17e36b76dd04b2c54780f2ffa08c4c32811031f2a9362f5c7274f84545bb528641705500c9f4a8289d7411b401637c52451ca76476928c4ca672a7ef8447e320db2743c8d88a0c2d74816177bed86079ad8141ad264264b6b0857b067d229f6b2892163ab81405c1f177bc319928cc85b5801111500b3bf55c7f5436888fa4fb57bbd5751083a2319aa674d5e1b8fa6534fa466468af739d5aa2bf1bac103bab8f6f546022847dd2443cb99c139744c2b52383b47add9c63350e90a88a2a3a418a62d7b6c980792e3f9b1336292aec40ec37110cd94429824c797d334aa9844a0770ec5001dfbcb5e59a717ce29a19ffb4134289d3a437b3da75d3e5a0a1e9135d7258efdb3b78fd984ca704d880308cdb202558305eda26ff9e172a5767a0d93a33cfa9a03544678482d0c268789ec31324c2885d95e9521754e6ca513d75c228b887f3b1264d9c79aa60c56e9a05f844f829106f8b585e6ec674cda1af8136ce4b5c30098357491a9f0027451cc8ac2981206907c203ac700fd81317735cc6380fa40ac8d4579b6a04fc73233be3a27b124bb47dc951ebcbdb2c9c4b2451c2204c6f8b2a543cc362e189a0e7692fda13f47d739779b4c0f56ba04d84e78c06d6d076956002482d3b0646bb318665ea3634f17d621119b3763c13fc4e07ac54583cba67292bc68ad8a81e1078fd4fa4cae92acdf91994c32c3b5f58880048c3fba052a260dfcaa922357af83065d203c8e97a0528a63318edb1fa8724a10b3794eab6c77738e2d196e2e2cc65742399c584601660c524c54a297793b02360380628de00c1f4ba4b3d2871d59b46a4c00c64a9c3ab773a26c97cfd87a354a7125dc6fc98baa9c3c85ce8989d20502ddc3a8f702991ef93189a636603c8f9a75c8d82518bcbba55770c4a81103c0fa34d7581aae052528321cc3c497b09b06b15b3e8fb3000ca20cfee5057fb5949f1c77c1a79f55618c2e299a27829c73e1bbff4a4d45105c5d1c3975e06719e32d5f915225a28252f519180bbefb274a764c292ff103ae18a68abb08952c7e2ca9bdd017576e976c74507dcba24557c6b58c8664a1da685b0602d8d44c6e7a3b0b27ceb775763573a8fa33a2ea5c826124cbd0213d7879c61581a20503a91e23a41f46a453852e010276b4d287050b67b44bb63b0ca4f29c9ee827ae73397ca1e75dcc78ccce5bad4b6a4fc7eca29afa647be7ba39503256a47855b030de2069fcaacf91170710e27213b1a208066c5e087c699a81372ba4d3507baed3989d46cbca9aae669c4a2bcbb668850b1196230c1bc6b1d77463f64290ccc9e86b56da72aae797517c0b5ef5c5567d118085896c67b41179310d7b48505cc76c1bd9885ce42dd2b81321e35692fa744670a443fc43420a5242933b81c3bdac6290bff69dbc479b52d30f1d0a1f97089ce4106fee3c4383776ac375c4d401a984e6c6fa98a485bbc01d3baef513b0f4b33d147c49586893e22a36b992b90f936c2fe7133d93a2ad93a741c791b65cab53b92ee0228ca2c0169abc2e39788e269918fc5c00dc869436c2b20d908498e5ae2591829e58038b9301e6c9a089299e551a3a3ea53aa56c469e79896c60bc3e718508d17477602f9d801b3733bcfcaaa5e6dc70d4b91c823343e89077dde1544a40a597982e46959614224ba897a769b03024d68ae1911eb2819e2a3c4c91856752a4b1502038fc459b506c69ad9b2d3b635cdee751c2885ffc1b0a9a27272ca2ac0a026cadcaa0e26b35ef85137fe81ab731ac1cdb9bb0b0bd402800cb3b401557afd42c257fa0b769485ef4003fab7966c0305addc97a20a75ab4619c8ecb5d51c98429f387d899874e754d3f9470031bc9f2501c63f67e7ac0a0a24c3f29e8c4f43871913018f4bc0c772b54477bab94fb4d9413cbbaa3bec270564e8a1a7d39291e94a416a0b05b9963ccb851b0723b1d1b6ba9535bc94b6c6ce65c235021e6bb88f766bc6590afc4a0b1e624ba54d8a2dffb0911e61fd5865a7eb4b00f1c4420326d87a4417c905ccd9b1a95a6b3047756cc0894b4b60a3e1bb06951a83ae40165b04579bab91fe1b5a8876f75cb6c7e80381e8867d4c72930369d8402c7c7465f48d13c24e72dddb8b3ad872e0948cd5e5983a98c4b4c35427a83c35cea70ff595dc8065cc82c9c39e4771a29658c676b08ab2597e30e3c774b2a99931f020976909f28623266ac2876c34f097837e643ce4a535971257239ee1e8c5d60b8b700831d71cb3bdd4f6ed05bc0fab17a4f1b297e9acad645ae4d021d04e1895edb6712565c778c907c27f5062a87af6a54da295920e852bdf3a5e7ca2c079038db94473104aff30d1a868228d95c167019524f2e63e94840f9a9143d203321 +ciphertext: 1480b136c48d326e161726fc880a3b46eabd298b679fdc298605c36f25624ef332b2c9298df2b2415f6db8817c52937be7aa9193a04870889f7b24d54600b64f941a5da03727c6dea98b70156861beb83b2bd688caaee863c19deddbdc686db6ffdc7ea5bd4c86a4a1bf4c833cf652fbbbdcb0b7e548b997fee0213a8ef9e541a660b5b780023719228e4560f6c239a43ebd4d01966545445f828efcfae6caf25938d1eff8d3e150e898a34743c2f6a87ca50ec00655d5eb03d7d0a4c65f3d87ca5739ec2468763f4251bdea55ca93e490ffeb4c2718de2c6c5aa942992de6af0ef084581071b880a3a8022eb1b17f9f7a9ad31952ad26ab000b03ee421c3a00dbc7e407d4a04e75e2c9a669c5ca0c46506674e1e0bce3292b220979013c84fd91bc4cb968eb31fef47703eb8afb0d91b3f569e96f3dae4cc5041944122bc73b5a032ff29ff7e2a26bd48db9fba3f72d4f8cbd97bb07efe4cae7e8b851dab7634c498ffda99797fb2b9c733cb24fce9d6a41cd4179ab8bff5dc0a42048034de221971d22704ade995c14a26923ba5212b8f63abb57127eaf1de7c98a5342b3c34cf6b85220363f5b0e36d42fe525865b31d60bcda0f030b9afc48437b92a1e29a49089fa41b3f54716127dccb4719c01d74dd676e194d0df7fda9ef218e1b5ebe21543f60d4257743b332a9205208265cbc8045b3a4816db599ac64520c9c59dcbb67f85e575a775f1cd78b38bf942d142041387d040a1df5f4e265424c13cec8bd158004a9a219789ba9c67bec9018d0584985e0094ad7ce376525a8875bb56260faaa376c7796e36c1732fb7a8f634a91445f94248cfa51b816a4f1169dff864e677424185cca5ed33684145573053fa5b1cd01b9a0981ac6e42f584e5a8051872ca13654a71b3ebd4ce4918bcb7b05e0369b4f77cfc7372abfe1c98230f9e069404b30dfa8f23475dd26084be6ba217115034a56ff90fcb5752162c9ecd93762fe9b37384bfe2c1d00eab8b36a5d1313d9a336eecd11c9c4b874e8f66634342480bd7cbf17aaeda11c7f80642a7dcf888813c4bf05ba1292adbe8edc84c26fcbc07c22cfdcddea49fe0eaf6541c6dc7bed5ac9e4d92f98447ce599e2e843982c202b90f731fa9fedc7de92592c567ffcb67fde2793e043a6b7b5022817f9af748f404018dcb06ec20f895055a66b817fddd4cf72c7bbc8cfb2addf2d2011bde9690de9459cd1c7117d0dcf91125b0b4ec12fbd972bc0d96eae358b29c743f33ae49c816f9b511b1f1dcddd42ad5c4abfa62b774035dc22b13478a9daa5dd2c41b5283cdb46b3b561e52fe79a2324be991be509bc98f504032a36fb0f35df0bb16bd32ffa69519051b3a03f6d2bfb6ee883aae23bd2393b634bdd4904a1023ad08c4869f1a5f2a1b12a47525fad816c713934dd6aedae098b8035b9f0b9f55a9c66cf3fb1bbc95d223cf604fe22a1a775a08421d987e9db3d66542d2c950b40c23824f571a6f1053fe71f465c42f34792b67c61b67bfafcbfa39f1b78a3a549d10bc0e07e493c2a6e6321ea420a3bdb0e083d52052458447e9917bb7026b350974f0b44160fe9c64e01dd08097f133e812897034af0d233cafa29b87d623b6e8be55c3a33922ae4dea493125ea7dc1500af9ab5607746ab95edce2c02606fd0d3ab4ccf1642ead61115116affe13f63b94315a1e86bf28d1bbb26a53696d1c7b8d1adb9fbc10089236d14a30e0e9d4a8abfbb0f1780f7899dc78ed41ee08630dd92d2b148b9bcd326234f18d20180e126e06a6d71777abb02ff4f49f3f89ae96c5ea7f4255168111988f00728a175c097877232c0d5a589b163de76e63f0302ba9dd0160ad9cff9754c2332a3f2a7855284c0b246a8fd231e283bdbea7960fc7f87823b16d9e49800e93a6e0121a4b6bc2e25d9e9d57244591a76f5c64024f603b622f8f650b577e86dfeea4ce121fbddf08e87a7d0c38af7ced583bcf14394496d1e08d580aa7e9a509522d12f19ba71c9ac1eb60a7d7a4fcc9639ec1c90633b46fd57ca67b3a57d042ad82d51a7aa4e92cc6e728489535c939463f19de0271c1ce1fbb4f3e84c582ff2e399742e9bd2f7d719efeb2d5b95defa163c1b4371d4e90a16ec80418ea722bdf256799d1e71cd50d5e8bc4b240d9d567016b2c728840f068282684f97866a8887dcf801e682240af8a3732cbc450772a63889882 +result: fail +shared_secret: + +# Private key too long +private_key: 4596b574c15fc86c891fd59215658c32607a79a54f630c9582163180f7691c6c01b5962b672c18cf3479b96453b4756cb4931e1bfc32f3ca4310b387806213084bb11412bb355585d2d5a8a0ba0d17fc2514d050d5d877ea3526f6914fc0c01779789ebd0641dc66cb6696ac3093a24d00976f73c6a7505bdab009f2a08b6fe751e80413460b1930842771ec3faf527e983c3c0220aeaccab99cb276b0dc4a3405488e4140f8a10927875ba2e39979583b3f5b94ff0c53a19656e0a5363e438f0ca197b601b266b2172483c535340b43ba7aa16527eac2c7cdc04b0777a3bd7b6cdc07168cca95b88480f514ac75c61174271b1db53eff4708b2a53ab4a32ca13cc9192397fb930a78d491c857033c383329da9bb5715012f5746a18907cb6b1aa2a16fd66a21a925995975319039c1dd65514992dffe330e2e84d5089ca3b83ce39558de340984ca7350815bf0133b6b8db3623a5477a4bc77796969aea4de206151f688cdad67972faad9f08124e43480b9a2a4ec806044114b031886f992869020397a1caed883b5565aff3309752a76cf9a0a8cfc00103a39989f5b64d109502fba9641b2acea6bb86e80c05858d34d025f35712704637d3d65074e9235cf93b90ca4f1110a34c0b31798244971bce0f95b1c7e0ce5f56c7b15839f8e55c59bb64f2aa9819349c3ac0207bdb0945e585fd838975a62e0a3850d3505faab03eaef6ac4386c80ad1a3cad189aab0866d5a61962a251f398efe49a714fc791a5696a7b19b7fec00323b2e6e9462c3ca5c94488556390f7b83751b1ca543410829a5c1ced84cd0316940e8603aa93a9e5b42417483f739ba63943d405a1de18196259c72b0ec9e8a0472d88c97bfa37a984ab76293bccf3043bad774d3f0ce80530c20f669c7b08841f2990775cae0702b3ed8c73f8b8a8c362c3a35410768649b1cb5c4640eec76b797d630443930bc1bc7755b0a632c7543b41cdad1221a501a188805d1a0b09df69dd4d7c7da203e8c583838e8b7233c5f07b2a51fa47686a46c05414eb8154850d14796d7c92fec582d2429a440144de657b706c7c202cf338937a293485a08218e3996c4a4183ea341f787bbb5071334f2750a5c86444a26bdb87368225b3769498476c261686eacfaaddca99be705c0ad3acffbf3297a5aacd7333406b54203d3029f830c9eca7185c28bd9b531a02b85761a76c0013c500388d85b5f7b66892c14306d053a1a3445c0729f9d672cc8cacf48d0cae0e11888820d069564fe2922c49301b1621320f428104232a6c03843876daeec76a9839acdeaa1427c1dba8c4c2a07ba0b7a4b1a53207ad968ab081fe26b7adccb014831a652e6c668d96ba62b14e8f04c2e5a69b23c886e899f73743fe2b51017d57540a621a3c25e5e3117c939b0dad38e69a042848cb7f106b589e03bfce7bb8c9908546bccf15c8c63aa06657a37fbd17be361458df87a05caba3bb90ffdb11a8c41149f9a14af6cb24c507e88b07287d1a49898c4d0f1070c67a81fa2ca68d356f4a201e2d78f6ed58e84967dd88445172cc6b449af0d0c0e2b470e999b0d4f6a0f21c54c24c5b309b387a973c4f971708921756d23522407d03e01abccc53c6116684d9799e4b9cb1ca9a60a982dab96166e154a25862b13891b3fcb6a47a37f1175a9978b6df8745806f889f2621b3445854861ab0af6a7364bc46dc966e2c5ac570c9aa641127f9b140cb357b4e1ac7a19af1d4274276b1399e369b31c76f0cc0abf8292fb60088cd7619f492847427f1b9c5e9d90790b3a40ece3a7d7b0bd4f233de0c43ce2e003f20325a3986bcc0bc33e58004f1158256996b2670693e77ef90a20248a9ba80358a9da24a0162e76f8657642798119a97e93b2a518743f217e8a9145fa6bcc9735a9aadb070115b9e1b8a0bf381757e98a27ec9cc0457c63ca4354b612be9c4e303a2cacf776dd91a6b445660a76a1c2a5aaad90344fd9012851a598a2400cd8906294bab62195b3e4b0c1b7c0f609d084dbb14b885b2b75020f958a0d02b57d74002fb87bd97c800c199333ec31b04c6f42b9adfad626dad4a9c26ac3784312834a467059b56b520dbff3a44b256e8ff7cc692c8371561c3510a5aeb903b3c7bc942038d0657d5b0687aa4449923b8f77a8329493c9f874c46f09c45b65ba09092f0f753cb1f19654798588981127723dbb7aca68811a0a808a943bb39c433e4eda35bccc73ad3127e833c131e6c79218177285105302501dd40caf00548efcbe130c935137cfc32a80632798f066af15170306d61c0ce60cac483b49836066f7c0fa019d5d2400616729c830a4ff356e46a6c1d1ab4f17789a3dd93c04d0cc5ca24ebeb31d26416907d65da7477e4988493550b1ce0773cda82c52db1e772857b79673bad41599cabc74285dcb275988a2a745646311209c6e262e3e6821becc86a008c25445668774598f894ffd3b0eae7976abea9fab58bd0fbb109cfc7954696e0bd8276159cc2d7c41d80c5ec4045b9e4b097aa237205b6e53a23a3baaa355ecaf85ec299df566180a43e7270d5717b92ef62895a2c64e481ce3c9232b7975e2a63925c8786ec469e6254d38a692a877a47fba9009906fbce70e12322322152da96a023ad563b0d08f5f3aa2746c05c9365bd5acb258511136057825207de1f8576123c7020a16521a503b45b4a42a75cc495b877a5d7b0b71a2da1f400651c74705959348099ba38b721a07679ce5c773ce0c245532b5fbf015ded01062203918e7bf58985895971d0009410fbc54b1e92ed2365596135fcb756623eab8d757791d4921709b0afc469fbccb836cf84a8747c34dab0bdfc952fcda4426085d02f7b6eb1b54aca4ae1dcb970d89bd73a112dfa58fdeb7c07291483b345722d125abab92338634606a403b25276b2b47fa83725dcc21d3b2614bdb563b9982e67447623590e62b1fbca84acb4a9caec0214975cf19aa5be5d377e8d41dd88147b034ae44f17d1fbcb7499899940b84003ab3347c170d096dc9998ccfc61828e524739520a014b731e28d5617404dd0458fa538b7200f99bb810a449d4e956771e7428985cc077b04b5eb082e877095d8c6ac6caf1cc69953cac6e63072819b1818d84b7a6572fcac4103eb6fcdbb585c61287fe5b782971d5a3bb226a975b477a9ad74b08213661295273e795cf330c40b18078a4ab614dc7f55706fc6734c123176d86713a7baae38a9a1ec75a6494212d8b0c062e27d01123799b69be918a768e03194a28d9cba80e65b2a3cd12b7f025ca46a9ebcb0313019a7f7382c4de2996651a741219c7272b5fe080ebbf5748e1196879c147cd73ba74a277bf7699ae9c19911a07889179414717692a28147a83af73e8231531822651da566c7272fb9c295ef4c268bb33ff143c258435072d145a66cb67bc45255f6617cd4a6397830c1157f248c816f76c47f8870a4874cb129c63c705d67dc0023e1c7f3e284753563fce64be87761b8b60299008a2b135d3b89b6ce3ca89f2204a3d97ed6596f7c530aa26b1f07d58d23544afc480a4ecc6d92db5a4ad851dcf1146b7ca47a7ac36133b4b6926baa266a16965431db799ecbb147d5b163453042bb2700a26d51b1197d20048e135c5b555ada003d1ec2434f3b7c3996b962744b57c31cc71c3778370d2409bb1dea86fdcb602ba25be2e1bd3a768ef1401d41778e08b4baabab0e85e701e88115559831a873ba5d369111297131f74fa0cc6297291e29335a9f3c91fb9569301b5b5ecc36a1e8148d957f41e56973da6d21070e3d05695af19f640926bba553d5fc0e6cc3232d47839a96b9cff128e7426fd4208e7d7ac2c7e51d3e502b5413534f334706bc31457a8d3ae56762f551e1350daa2acdd6168885d9ae5b055e28022fb3938a06dcb0fe75603ae598ff068acc038d1e938624eb59cab1b2af33256dcb34418659f11c3abb9007d752c8a93b0b1ff5c2fae348abea538b577dd28b3a54106ca6509fdf8ccc78a914f2f88192273bfe285a01b1a83b2a72ceb5718ac89e7df042f86b0c7a3a217f5c0f642b535ac243a9f31d126c223224a4ec5994c751b0410123984056cd927710faca14c02c6dd0960e7a9eb0501dd241cdf83176ae638c38645b2146579671938428cc9d7269f36bb77f26b0c60283dda8aca9a6448cf64ede024f304b4af6f287e1b988086730939cbabeeb24f924605a298d14399d70976886b991e957665d644f9cb5a44ab6509a8b13589b1743ab844c622e557671f771a1de72794029956743c4774913dc946499a36a210b3519e39e54f086e0092f56b9214aabbdab0cc3f0a93a12b1201f82714a62917f906973ab2ee93f3d56549636d3e201c1a8d7bf879a8c891e27fa8ba89c73819f29e9c842e47fceecd5bc09d53d514b82a70405225366e7519d72edf8d0d00bdede9f96ceded974d68dd4eb87b94a37867f8f1a28d062560593d36cc5883bff028785171ee20ba45d +ciphertext: d3ec04a79d779faadca46ca4570086e04bbe30142e906730206a1f8b9626ca41593891305c097c2cf94ae0d379619d74f1dab585bf9c1fe907d8b020e03d3b5c13db26029f9672d9c54c6c012b537c1801cb4d91b68fcba888f78bd634a1d854bd09a2f2faf3cfecaa7af769bed4cb8407af0922fc95d9f85dab45c8166db1b7afc5127c04e3b362ca44ed6d92468f7b6b52870093513b2488e6b86749f42b9387a4e046fafea3a9f14fbc9c817b3d241d3c4c6c7d07c78fbc22a934ac6ebab5231b581bec07b9d5c5aec745666e95e5e9ccf9902aa7ed0ff5a6c7d297869a65199efea83082d287397a3a52cdddc5119c0cc5b913e5a53ff6fd6e132be1933e32d377f2bf0d6d984e2693036f5db1d3b0fcb1dd4b78c7f832808e0d6db38e3427c9496c6294330238728d4a278bdcac8f1a5ebe57def89f56d50c7bef994a3e36df3734674379a89f75cabec45c333c6c08e0f53b27485c5e85a847e6ebdd50b241f5939e89cbd472dde2935ec56e3bc96e6d0e59e1afb1e6cc73db5fe6d4bc2e3d5484191ab6f7e9b1dca82a445bf2a3ac6bbfbecb162ca869c33ac82441d9dfdcaf68e0d481ea63670fcdda0e503b198431d04e797d8682731209c8ea2eb1cd7d7e91c6b213292c92195c5e7885a9007a331fd3c35a18124a53145aa9f09c2c047e35500e9a76be7a70823711cc3469590fe602b7c92527a215d4279fafa52888f7a55f6b281cf3f146b1c1bd20a173d508d045b1b5bb08861a230e3b75be425aa16c1f74efe2c1d20648a3a02cd0a5408948d35d3153384ac822aba0f90ede799a667d909a3146783afad82b993fb98da36c3a937440668142143012fe9afffeb3edb68e78829ba6cac4d161e66e14c6749835d0c6a420186a9075fba5b9340fc822552930906f994dba37a3ffdf23390ca0477b403c592ab600a0a44783d315b9ab1c20ef4f9a4eb54cd2f70304c50bd178d1289c7654feabecd1da6fdc73494cf3b98ca6515019c8c71fad9edeb71989008809d23239a0a5d5c4646c48f676bb667c85dd921cd77e767b2e31540efd003b5001f54c1a08e64b9997c2917a8d16db490bec3f72ea978a15f53717e25e7be08fc93bacf88d5712c55db6edbf81ffaf3dfc856ea53cbc2514ac512edeb56013fb374d2e047d9ac1837c924d9011c790ef7a8a684d34a5a5a64049cf09bc2af7fdac5efc12d22d5977bd668eaf33fd213a0db8a1d4e84ffdeb004e7e31d79ff227a5de6212488636a59bd1573a5ee39b32bda5c0a2a0249718e69ff6b1a48d4efb29593161d839094bcdf0b3f85e6bab1b145fd6edd9dbd12ccfbb4f66930dd5e1877dc8ffafb9f2a6c0b072c6ac3d6fccf9b568038059dbbc551a3ec0944b8be6a2bbb08eba930126cf8426087252dd373cb278ef5230d8d4baa40acebbe1412efb6fea8a17432737ab2d4cb77cdc4557bf86613995cc248db4b99c94f030e3687ba0397a84b8c364d48eb46c4b4f3dd167f1f718224f3bfccdb026599ebec634176477e459a2ecc7023f0051203a39c3031dcfe0a665b75e7efa20551262b13cfc5a791889ac2b970d509217bc67cbde45899dfc585a2427c63a91e4cc7c84b99b8ed4120aab11bf35611b9788e8ce3e84049b71f1f445425f8bb6335c3f739eccae8d7b599d3564f89b8b145c1d1d829adf649642fc457a785dd553f33f463ac6e85a65d2da1db66d342c0d034970ac461e75147330f073a4fbe8f90b7b1bb543282aa9cff773f56725f9a882d534d4a23488b83e54538b01331645ea3d08adc8da1091ffc2107d1becc9bbf8fffb13b925e8282ab9ab7a71e9a309131b8f9fe3d7e249cf9bc1e3b106e2241962de2b1f3e45c7fe2edae645904ff84787d80ac0cd62bbad0ca3594c51033e8b5ebdd504aaa5b103241b2cff92f45451dd93857a289687694998c388be0a493fda0910f652e535345bc594cf8be3cf77a9a483716a49e42bc427f78a1249d20c2ce34afc45a1dd0cf38aae9530c215e8bc52851317f8e4be5a050a10e2dca4f96972b4efc81f38f97374c92bfeb3c7ebc104a3b5675f5b4ec2e3b66eb642081610c36c29fea5e15a07124ca3bf59c6f8cbbdd4107ac441f553a8ba06d1ace05a5817e2b74a11b7b533004b88e590426ce9c578ca045b15493afa45385ae5c767c3dd0a17f6b297ca79f6e07da0a03b24f4f6ed5282d2951e3a03ae324eb1 +result: fail +shared_secret: + +# Private key too long +private_key: 08f35840387e1ee901a0e1bc4ba481bf0039bf2213446c7eb4d07230dbad5d1748a0bc489e818257919d63e1cc645a5e84042d51eba55a881d625863f9186352a13cb83a98fddb077e5b4257fb11feb513fa403e67e10c053c39a249c48d688ebd3566b841bb41721671c51961dbcab9148c2eb3a232a39177d81147b766d872405e9b4156d66b9ee68257c895c8281f5609c53c268b0b14b794a2a3ff08365918146a1337d8a67993a53c80059feb396af593526ff366f10a7737f68b7a675eabc01d46667cf73981642c53cc2b7de37885e7ab8da932af5e07cfbad75f0a9c51bb999fdaf0c38c34604f01573c153384064f0e05214025158e6c7959dc15b3408eddd82842db5ab6535c148842ff2b3a28fbc3b04aac28fc084e654cb0f2190873b8f2d277c58165097a45e2dc75cf664b470622209c4d76086ab12c561bd793c85a3d62158374a94c5749bd2d425579294bbb7163efe409060c0d143428b5b764ed5813c80560c8282c9ac81bba2c8ae194a338990118c12b0aa18b37d4c337218de5732a05f3848ee3be018b364b7746b7295de9019ba3e3518f742a95142d75536664e0779459b1ca8c97d597b6c5d8b47ee46f22fb59b8976e9fdc808740174f0bced5c55617a4492a828cb74a0c00176aa1e370631622b06a45f0e23c7841bd56cc058840bf86d67f3051367a7501bdd5904f2a71824a1479b501d6e183c3ea35028604203c358e5a2221c6b9101c3d6e13bd482055354a234e137251c822419a00225a358a235cf76a681bdb7b7641176ee3a12071a35704cb22a79cb5dba464f5cf26db2a499968fb2077978a9723536187715a839bcbff3333f4669d92b44cd2d80294998ef31397d5f19fcb2877be559fc82185af733a995747506c2a49920b258189ff0c2d67495039c7779dd878e538aa674640aae7906c88896b849ff2dcb50ea6999fe45d84ab90e4675e800b3c645c811be13951d6889eb4cc13194a8d87aa4b0129cb969609a232df19676355028ea12b2e8832cb08725398ace96681be9c2317d7487f212ef0ca647e667ac3ac5cbae0994d18a2a4211a0e5b1afc01771dd23742c57c13bc554dd0495e8114c8668ea3b667ab4005fbf8286eb3ca61bacc919c93e6f4a4fdf70496b5c0ac84c9757b81de7c93e3c52100a8091bac1b501b230803c9106a38f87573749bacc0928c9d338bd959a4b1902495f731558a09408885d09a5e7e592603b18a98516f97d4ab0121066d0b5449368b400cb0acd17634b2977316abaeba8ec6b52f33b167ef455480c35551c30cdcfb9d00323155bb3bb2e94a64931c64b56267893a19f5326fa5969370840f3b89320b938c21bffe077e40b168aba753c3bccd9f224f47a12f0f999c36c2191946639febb9bbf72a9ecc4f035169e5a5636144a9496a0df02076bc61c9a3350eaa43467826c6da39bf906bc3043523d3fc953d2a4570ec3b829515f6a43bbaf743c491225a9277039751c136beabe44e95d982c393ba85c14ed01539d922068ed82082627ac716441999bd7c873934b59b61724523230e95c280b1fcbdfb6b73017980c471a6f9e08c80711542787a0728bd86f2b00d04a714b16c111314dd72943d466830781e5c74a80460cc7430aef758aad98053a52c727a49c51e89250b09187101098452213366cb0b15c30736a3bf49693da898c61a67b0444fa7c2b1719b28ef371f0769c13f4b9f796a26328b2a9c378c1dc49053b8c190fc1d322bc6ea1a15d1983ae76c7f42982a6c36622fa85e1e1301f186774c9340cdc056ab598bd03cb224ec62894c8528737042723c2e02c181f6923962a53f2c039208400c1cb8ba6a71e7e21fea602cf303a0f6ec7a17850433a792b1162602b4192953bdd770887218018a833d8e615db8661726a46aa8b5b324038cc398cfb705b996faa4fc3ba057d76aa3ccc5fad98157a99532255c4ae41ec0743cdf69b4bea239e022966a3cc444a699012b0c685c6dbfd3070328c1b96649002b0b90501b5b2b0f7713b8595773f2f101f95b297a8192997735aecb4168e1ae56c6507b056e899c2d40759806e0a99800204c300d137541ccc9b2c5869ea271209e1bb60963a28b35531b368dcbe9b7db69266094566df542ca164a09804aaff62b253b32b31b486be30d0a5476cccb19fa9b451fbb21519c77757b3586435e0288bd7af50bf27209bc832ae088a9ca736755969fe675a7fd5a2597c11b007c640ae822f36b356a2b88432678c40a06d65a55eaf8c39b26a2b211b9d57badb820c9c11318b003c855a80688b8638c05cd64490cb7bc698ec657746b1b0ce24241bc6372205fa25148da47543b643961d2a479dba82999aa03d743af5057414481c20b0d5e36b2d2531c3b237445f2cc97d5148430666cf85a799276125592e7f88130512f84a96967c661612b2d393315815346799967a9981b12811e9d139891c89b57ba5514f9a065da2515441ab7198291575ba9c76c4a71206cb306a6b1157a46aaba83c419d012492ca69bfc9ce2682c05c06f877965209217d6db66bc347defeaa1a8052a641119385ccf3d404b98fc745bb8183b30b77d382c60154cdba5780c98633f2106012936d3e893a2c67ad9513da4a65642447da2c74906b7a914c9426ef615297b6428e77d80e93ab714adbe998e4ad454c6acb61472ac66955b627a0cdbb50ca2b19d11a36e33aa5a9d63742d085e3b8773df4873060a9126597b05282077d37dda98910d066da64a6c4f3c6b393a7a85cc6ba5e0731b116651281142c47536471c5860b97ab6cc0836c6ac01131cf46cc9333bcee384f92405233c6834c075a27618c5c37ee0201dc73b8df9f8c300f45e90445782a22d56f932f9c54789bc4438f88275c3103ae957202c3b71a4247bbcb9e8327d1bf62d066c3df57922fe207eda052c1369b19e0125e6e71cd8866803763fc68546f5d9135d6c3e97403eab249cde45cc3af4cd0caaac5688275edc81faf05b2a59579e222c4bf746572a0329e7a6af800b63a6a68b67664858aa3cb7832e392d26746781334302e03d3c4877dfb09fc791c3aca91693e02dc65bbdb2c85b9df234df8087ea415ffa4c2d1f5864ac8645c7296e3671abd360b9c78b9260c95909089f1b8c823d7a12a390cfe4072da52522b1a329483b10dc132205dc2a380c203bd3308de40e10b058e5627c54107cb6248222bc8d0e686058f5a61fb63e1d5736c5f60d2995a35c92af73797c716954e97ab68a4aab9ee299a93094ada0648798cb74f80b45736872a137baa1787083329ff818d2d22f925302e3b2bf8855080d13215b40738598b8aceb404df03b02c492dd5925058c6646417bba03b3d6d44ad07b0029daaaa3c637482a4375ac7ed0e5943cdc5d5372128838405cb22ce44858f309c99e282c4f23b189579b04a6cef5825dcd8caf76c9136268427b40984ab194dc4a9b5e0579b6eab49c6b907376c32a1b56bd951649a3167c25b3aa9746257b6d190bcf1d317f44a920ffd5a462eb623ee9650c75018a8198e9e227c96c50f2981399475ac240b983b559716835ca07c32762b08fc65971629b77c1af45059e889432be0106f04a63bfa096bbe86c69a3addee27f56b8c16de576f39c0d00c421f13300f95a7c39398b4355b1c3964ec4a25170595191f80663520beb583423678f36f6c422079404541c036bc9d1356faad9265b9127a70acb2203387d437d58fccde1092c8a608ac131ac9de077dd0822ff314f15c2b035a2730b53b23a629154f60effcb7b5c67a3833c9098865dc0e76ba3284c01e65b0a3b7fc43803c2e87d76e3afcfd9679307ad3a689351831c85732daa48ce06d163d5a25e4409a601d788b7b053d155a2c2b1004112af8e457b057a67755c3d94e11c9d3668371657db067319aa1ccdf33dc5b6b711a692985c9662e789ae8a960c21158a057b5ae07fa3b555f26aa251623d16730268837df6014dc27845b9c8066da53a39047cfcd57d7da3a547411d76651da9e67923f1cc22824b059147264462a05a856fcc9ff1f9a26afb46e261139804ac98906e46d423cfcb83498871be317c3791a89ceb1382340fe4c9504cb66ad22834b820a1b3031c4db732a4949d4ac561a44c1fcec321724674fe1835e63232dcf2b65a235dba0a3281324223228383f68865a48f78882470b7550e9640a8121214027699089f4d395f6ec3c48aba6821324c2b39af5ce1c818821f7c5909bb59a12e67c3f2338cbd722a121a83bec0723037a5da652788b139d9e92fcd603fec89901a2614deb75d52894d0b546c59266ab64005de5015817741bd4bedff0c7298c31137e14035c9f03fa05af979ee98f495dba47edd1e8b447a894d7c24b374efdd298b33636e85b70e24f50d532f7d5e4c56fbc1f00b0ae32d683079ce6b2931771963de19ae21252c701921d88a0d35327c39c4e75667eeb1627653c38e1c01da7598db717af222cfdbe72505f03229 +ciphertext: fe7e7ee8fb5830bdad351714ab2b4fbc1eea56a56a868ced58cbbc3d13de074da11102bf7d2e2e2f1991a19a937a7a10b66d5d71228fa6635ff88cf858c70d5f9c0bda3f16e767b5092c5c3d187c4f95d402c189e29dcb94456c387d3ae6d5024ddb822e718356978eb7f9d306c1a7bb420c2dda12c0f4dea1b00f46021fa190aeb60a72a178904bc791ba48db3e5a20b6f5b78b4d0b2f526097bef7fda67abf336d7d220b68a5812f827e08e3b37f79cd56ef0ccbfaac62d9a2289eb3f6287b8db0381a6285af08cc92ff81622695fe4051f1bc91b5f66ee067831cf34976de67c7f573a3f9645dc10fc1cf714b3da7c278c6870e9b201f8ee80ae6471e71a52a479832398ceda6362fb43a76ad958eb6f65d2c7e528f502cfc21b337f8dcee87754ea13ac032c39b9a27335837513e2b4a7e6602e329e5ffc8cba614530017302b6581cedeb9c43fedd3eefbf8aa0bd37a2416bd6c99ae542d4f19eb57e8b4406051975e06aa5a95023405369915f0b1ea59f6eeca91eb2bb9126271e01cac6431bd290bdc5ee3805cc2af4b7c93a9a752fd464d92bcba72b2f1d488f7d0923a4ffdaf94da848f81a1be89305ab9bf95ad4ef9dab542448d4940a98d0e5016907d40946cb4fc335dc043a036b33b4c15c4e886132220b6675d0c0d2ab5d0414dcfd639267ee31aeb79f8c7e338d3e075b2cc061f019a42b42e5d9b057ac2025f1424c56e4ee4ad48ae71863255a2609915cb29236f487913c4661335f688b202d2004eac200b44e3fb0e402fcc8946adc25e02dcc9c973274b65a12e56e32355a54a997b742d05a9e655d11c5e42328710e08df268f0fa01047c816516cf3f691f68cc78d48d15e16806c0ae3d969497521bbadb71f943ed540327b395f93f7fc1129e1dcecaca0db21dd504d4b35951701c92b131851b128fa3b48b728ea36bab98bf4f6c62bbdb31e10a99d1638dca8956c5b79baa8c7f81c3281aa465b8708cb0386c56debcf386fd4de23cc32dfd0a4b30057947b18f0a2f57534c99102b2ff1adc2dcb373c7b6015f61be511c68baf4701f03f666fddf668543328f79164038686b64af2f91e037c4348c8799e6253dcfe65512c0efaff2d0450f81e8b4166fdd7769b7225135a1116eb62195ed5584b7d3ee3977d7ec1d7df8e8418e0d8f6862a28901f44cc9581a20063808ef1c9ad80c04eab0fd5a4d20cc289b5aa382434b913ca8192f13ded0a8eb00d5e524723643592e95ecad20a8b81b2b06dc1b2fdb1043c685b1c992906c15d6c9fadd39a33ed7ff666e9a5e430be51a064b3ad0d0265b37d5931d85e92abd6572234b3583ebd251eae8d66e309940b4b6148b68bcd1784edc2ebc1fc0981fdde9f8015d353970442814559be3903429bfa844247d506029cf9da933fcff85a69d9aabd8a1e00e2a78cc5ecb50d20455bd925375a6bb70fa1b188aee36705132c9d2cffd3b0091c530063ba298696e58d8aca43667b7fa39a40bd1337b561b6d21526dfb1e4039ebddd8b143cacc6b087183c5538014890b6e54c22f963d7503637af2b9f535849561d9a6f939ec56457837e66ce03d95adf7161407b33d24a44aeec1dfc4a1ec67785f27c2a9d3de418b62dd6b7575e2e9e33d6a7b97785e5aa05efc85957f711da1d8e1c0d413fb4e7918e964c0d29f9a5d77dab1b74db798f88d4d8f0ca723b5c73dfdf5e74a45bfa98d5ff022049c1525b0cfa12484a354e1ac3e2a09be200061974f0c4c3a5eac458ec47b63e9b4a10dc5cfbbbc479e65781adcc0fbef9b73a4f6c82a2f34289ba120ec55faa9484080446ac6fe632d8f6f727287f4faac9e616e8349ace9fedb5ce15287b067103312c213f7e5e3d218a81d1d930ba618db0ddcf33aada1f8842e08218649e27975e70ad011445e88738380dcfeef1a54fe6467196c8d28d0a24c1453ec20e5abdcb7d50f3b17ff5eafbbca3d9610723571d5c0900ddb73ee714de87913a0347cfa1033d83f25275426f17d6b66bae280dd9de959ff1e97ba0c51d9506b09b1a4e6e241cadc7a028b3ac4300074063c6c5b1d2916cb0849b348177b6f13e9ec5c6db4051ccea5f068f64d7266d9c42ee167028ff3f5376e74607562536594eaacdeed7fcf91712a8dab9491283a10cebc6aa2e83450f7cc7b52342df46c78dd30701a514cce6f50a505eedf14bc57f33cbaefef2808abc931f1a4 +result: fail +shared_secret: + +# Private key too long +private_key: b9da48a7e0727e862d9ca102046b7b6d43acc7234150d30d3bc539c12274854c83408647f71ab01183b46bc581b1ecba38b3bc02522078db1e12149f79f4c209069285187f19a61fe58b673bfc574a9329c5098f765c93da654f4dfa9ac4ab0156f1161983b896076631a794d28bb2974687fa2c411ee180ac7056ae8504063b30cc050b146336c6814075b0714ac942b6a425eda59855f57817fa99cdb9611246bf18cb799a86c9056bb696e8ba152569559b2caf517bafca71085c26a1255b76a751d27b41a9b9684388a2bd562e6f021f873199cbd03fb36a65dd5c486c7b1c46e9132fb9987ba23661b31fcbb96e6a9277e294c6d0e66d2f52ac4d9358c2a07b0a3cc6672c8537b05e7eb166c245ad787c429cb8362ce1924c3516aeb79c89960966ec1cc1707f55a32a11a15043cba7ffa96aaf93a54b477e12720290611aef710006d180ff6c56a05b45156392f039ad200a61c716cf3f339b0a098715c84f9f5bce5dd2cf1ff58218a70b641777e7894a9580a17ddccc971a358048229b7b162454beb4690edf6492f1a200bb009840492166a15b6403af006371b1d31cc56b5c04f15f615a8240f705a8f621f24129e6a9659c4793a74c44cac8cefaa20b1cdba3c6e95cf49b4979315cf148bc085640cc9ca462f2c4946c070314b3bbd46e6d50353d322292495e1c5948bbf7b76bfc5c67240199a77bb5829720d95e3052c9256880e6623d2b307d1b6b6bfd57b81f04ccc3287a27f5b3c5746433e89b00f57e2e33089e944a28f396ab24c862e1c85e2768ae63ad860661c5664249facf9aac3936c119648a1664d080b06caa07e71922d9c9355cb2bb405d2ed8480cd9b27d11a506698e79429af992855bba084db6bb9c96b9efc677c929bb122360502201d7410e4a78100a7ab03413260962296fd96e736928d2e54e26b51675f4389616511378407d455771fa73a487791db7ab1de16fbda16613d7a9c4e8bc11811e36ac77f96969d79539b11b71b0e5c0bf7a901045a678d03abf7118733388a3e3000f7610a4b77161ca143966b2b04cc7f2924e5de101d8989673138a1ae75e986614ca2c68cf8165504b22e76b71f318957f469859f437b5bc63424759541a87ac883859767319317c259718ffdca77299c342579a5704b1613b021e94058974c45d9293f9ac9b5c296b12779f22166c39535b0538466a29a28969c4ff90b6fd11c2bad943df40c9bddc27b7a8b5a17648e5c16412d2c51fa93ce1983719f6ba3c85b2f8515852a0bab2e47fea35c5624176e4a83955578471c51128cb49fe279df7fc89cda82f43e7988f31888e1906b4b9192c0886738c187bc4496feb10e66c0e8e6b30978866aa09852a2874af9b45ac4c16954059e92b2efdda1e54f8680dba69b8e6b54a680321282d54221ef26a79f49a91f80712fe9899638778ccab3039d6a0eaf2117a5589adda526037686ca1bd4f35731475880b09543d5454cc916578a3aca400c4ad17b42b83502828222b9323326b4931107f56c455d6ba401146b8d241b773172b3fd09d353c35553c2fb9b24239b94d409cbdf6140518d401545805b9a94a01513da73148c516c8de492081505ec85834d7b0539bf64edaa026bb00207b2c39b14656e274c385258e7d185840922c7741b117f48a4d22895e801f32f6258d3329e8361b790c1e70912b38714d7284af3d9a1bc5f9c1ad12c7c6f5798c5c487a182f85fc0435cc3563473d263acf2ccbaa33d751c1531a069bc6dde929ba50488ebb54b7e47eb834be1e638815e057bf653bcb2c82f768195798c5b122c7b0d1cb2257098fb84b80a9b902764f08eca1b0b717f5a98d4ebbcda80475f19c673d524ac6f74aa90ca07203c6026a6e8cd36ad746b5728643865a230dbaafb3e277cd99322a8bc437c1727d23763395a241d88308e26eaf80a31802cc79a9195db31f7934477ec62991e44579fb92684240fa346976483f74d421816900936423e780cedfa578b81578c024cc13a182ddc1af6a8bc61e52b0223156b3233cb0d81e2f2817b04497f7f0056855546a9a87acd5313bca1cd8cc23128a759f32a0597582d77b1d1dfa7a63b31fee316bc5c6c0e8829c3f55410e2312fb0530a38b16fa3534dd733188b9c243eb84e69950166a681ac50e7d3c9ee422213148cd69ea182b21bd656a9b4025465592b50fa0bea65c607705848bd55cd828561b024160d9aa8158a9e4432db011961cacc03b835a9decb91f32cb2409b02a6618b4180159dc79c29607cbc12089a4893a1c1093b5432aca9b8ed96fd7f423d86893168000716338c3e7ccd340ab420a91993a1a8a7c63573a5043b1448b376d5a6b2240baac55964b3d051c67d99f69801c97902cdc256108859d07759f4b71701794b36a9a9fafd7ab28e25050595d992a9f0b116e78499aca05a900a04299f864e345b5813442df21c12212b1cbab54bf600674573e7634294d6909cad43b3e874fdd661b5b4b5a7a69405b23ad2a484c89e5b616eb232bc706c780b4ab240c7ddc78f193310a57237ae91d97176b7140b57fc1756d066fde868d2ea246b74b13b474491ab6537b40a45afc4dd62047868b695487bbd9251f1a1565917382e085aea32268fc110e7a6332b6cc77f9e5b78818c1d3cb42dac50ac9342643b25667f085d853a867f903b03563c407123784a850e913fcd33e1847796b83b5e2ab02c09cc31d2291eed845113817e556783e59c8fcdc3c44c8086e7b8ef85cc35ec943f971a82559b4fe59a6efc725d9c91ff396611df739e2791932dc3398c837e22c95fc0bb40a9b5fa726131db71aedbc3a0c53a3615ac97149c377fc6d444b5b22729ca9a442a4614f4b24cc68c4c7888c46e9c5a6c13080b4d04c5813685d02bd426200088193273a2a185c6c8d8cb80cc788e3d8806ef17548b1a60c86300567b24cea18ee3acdc351412117caea8625a62283f32836532756c26772038c89b37068e6dc2c10436a4436c0ebb3be2df914f3aaaa2c77538994a9ba984611dba548789904d72580a1688678588388a9718c7e02ea664d472b24f62a50e945b03c6c15471bcb414e1620816c08aef6c1962c4ba16cf641daa6c595812e21d3c47cbc21b97c2b3d9746eac997ff98032d10b1ba61b8842a868ea0765397b2de806c12ca266f80843020a453591c35614d6ba3c60fb6836ba6778964148fccad592068d11109b5974f6417497b8ba35414b0a385ae7b76499e7b74f8d569a20cbd28db186a2c218b24a167155aefd237a204029a1b288bfa68f5b8ab88b785512cabea82a944100a18285a60034fca013e73a99dc69c67e5e89bc8c2bcba101591ccb8dea1b94ed296568acac07a2cb7c30d1f98a475b22a7a298b348c0585418a94373b64807c82b6873863243a6810c40bc2d909c4ee49c7d30057cc1948c2a254d97186a7a6b9d3c3bcaac058cb4939e8083a18ab93df0234980a4c302328e59a8c9d3177fd6c7fa85c7666f8272dac2fe2076a768197c5d732f39caf927ac608064992fb0b0d5689abf564238c494024383199b8d97776f228219a504c8093a8e6aa6758ea672f212a011aa2d40b6c51347f267336a795789baa06bc4c09f0929aa2a24ba42a917a823961568b28ea7bc311321fa023ce02b2b8868a82fc0bb8355b35ecb756a3388ebba3933454206a0172cb6c61d81a2bf2a148914c99f0ad699b19f5663166e630f3369289bb61f6b63f5df05f5f420099c765de195bd95849d21b5e7155907f2877a6ea340b9885bd18a5c145bf57f4764e812f0e6a6eb3b13c8b6806e3b9c995c337ff365a0f33208acb9e0a337f57286ed389a97c19744e2a679d11782e019171670874298329db2f84728a5790867c51c8ca12baaf4156e12576bd51a2a30160f3b20cc5ebac439419c869876daac4104b35d3684f47c0cf0026111c31002146cad2d47fa1ca37030945fe725c56714cfbc96ee7c4ba8c3ccdf2903b98c08d87084b60a18c28860c152bc6bdd800af5a89ff730f4b5c18c9640ab4d929cde9be47c21b20cc48302b0961bacff7ca9abd218eddea14f64c26e804637737b5cc4301ab38ca427ac053128097c30cffb9191c2350cc34425b7a12f355382f0266da3a3072dc259d407e7a9187e06c00832c8109c15e4efc15203c3e7fe3502b979593d745d35a997dc3cf7caa033b0b0bc40a4cc1737486bbb25ad5a3984a0d51f290646352c61a5bda92894334415d3644042733fd53496f8b68d774015f37975e58a5d4634b14e89574d439ca3042c0b955e0002ea4b93eb16b43df342230b565f274adba4a179c52865f9932c5fff269c6904a5bd9b50712f8a08044a5e4930c26e5ae7e1beeef85ceb2109fe2abfee0e82be23875d8757dac790ee63ed48ebe1ae941e02196134aa4cff9af76a5bc2acc97524d9ee1966f71bca094f7de4a5d6562baa8f72e0d63ab82a06f16b3f4cd +ciphertext: 735379a4c54eec4916d33c3bcc77de587d62cd4d27f6a3b6b666a2bd34fcb348c79d5b12bc621b8c5ccae22d20cafab6500ccab21d1f5e968d465a7695008f55d60a1f33b73a1ef4e8c096e021425b1e65dfce918661b578682db2f0529772def4a5a8dfde1e4cddd91c347a57537afe6b92a3faf890e7ecf2420213ff2826465ba682ad17b9e55441fa7a088984e12ec639e5df42b3d3cca47e4422e6024fb044d9f0164f9caeca887b061b5d18efb72ca6a42579a0a70098fae8463454b1019d933c4886389dd90a724fadbecbea872ea4cdf905e86a6a85d18936d4d06043da21c1c50613a4413ca5c6ff49233f2d0a8705db55f00b515705f5f053101ecbfa4176427c06d77308d5273a1d407f54736d612ec902fde6d0b3f09a4361e61d79641989bad2434b7523591ae331cf9a07a0f16c106e986b47fb1dffd33eca39a9c3ed2e9e3a7134d8cf7b9f7bab0a20fbb3b9039b1f47a489884e505fa87ec223692f59a1dcbf2acd05c67a61fb1a1d126dffa0aa4b8fc911fd0f449139391e9e2a5d6ca008a73aaebc10309ac2ab3e99c7a7c6d8198f578fc198d56043b9bafc61160fc5707492902752c3e214b8c7c7b34a639617a2f699f9b66f6f0699ca850b0b8cef70c0bdaff0b201fb1c6be476c625feef93d527fee34625561ae95f357fe86064af32f5b3e1fb24fece9b0059758164121eae56867d8f9f22f6f335cfc954b0e6ea51e28f42f9ed04fee00ef676d5cfbe36b4c4f820dc8241e532306be889aad4987c269051361fffd4260a7df11e10de5d0596bee6401b8d41f7993668c02cac70554527ba03ae3132ed7caee33763ff172a5650ef42f0ee482c7244787f79dce097dff035cfb7706746f088fe8a0b723fc25606bf2eefc8e683cd4300a17f7fb241b48b3b3c07999ce4cd5995d1eeb93db59441c70d0eebbf1cb53c90169226f0669d6fdacdef5a8b28cb115daf6bf36502abef561172ac09c31464cfabd804e63b63f2fd2be248fea4c32cd5b1452cae59b5d9c20f4bcaccab15d22a32723295fecef7dce606dc3926914d08a398ea1972412955764123142decf288294749b1bfa2f880b703317a425c8de9e6c3fbc562c647d142a1174d8704a385e9610f60c922889ec7f35d10fb3b05ba534f43858c7fa647ba4c95719c7b28bafdb974871332a9a491156566b5e7488dfb0d7f19b4ca978643cd2475eb31caaa65841fedc9ecd72a863b8b4e7dcccf649b7cc541646f1d08b3498c78118f9ffd8827d7a4be92ea5a9122a2959c8ab3b297873cdf5b540bb63f150fb051e6821ecc85e456bef57311237e39b0c3a5b77d0145e0a120fa18aadfa7baf05bb88420f3ed0692748f800dfbe68091124af952271b7695b2e7f5045b47ec25dffae7da51257c569467e1e61becd76c7db093ec122b6011daa6241bee4789a81f42737183b439cc8db019e43e1c23f1c53e8e14d0331cd5195ff76c4d65021590e3d74210c46c66fc9f87b41c2acc775a98d990a5633523a0042423bceafba09a0b02b0713ff3eb8f19dfb935286d511564ff745932403486c07c8d303a394613c71b014b863aaf27a58c4d12a2e7ce5b985feb9f8c51d765add06548d56c1d320c3adeb6160d77caf94e7cca02c09a6df6a88af79b7953850f8439393c7092a8e5fb2937b5a3a089930bf93621cd34fcf98cf5c3e9215e224257ce0f814ab7c75c89f784d3e6a21c991d5bb4ec062af36e2975505078f231c62481d813953a72e5420e345aa676f81a747a316e5cf728d0b0a94e8e48f34e19d9701bf63be3d57aa173308a915135695b5f2befa104d3f834b99384ac18640f9a5976518e6aaf47380e79ccdf4348f199288db3c3ca1faa2fb04ce66ea13a09fe3312494af03e57076766ac8a06134241d1f487248893d4cea39036bb3d7f806d9fcfbe9d7fe11dec883ed6dd3642d0923486131c038822296b8aed98445a621d307378e345590956361d7bfaba1ed4dcd54f9963023f32d903c01db6f8a86b21cf4666a7fadaf7de10ebd42c56895c4ce6946b528ea350fb95869082b02af6c855533beb5fb2a902d2b0efd595fcc7266eee77ca156b6710fe514e957605bf4171a812782867b14c8a247b7570005463fb208a18e66a5cdfce39313367c55020ffe76d33c87c1b1d665830275682f82876aa9f65420a932cc91c33c766cc665dda2443c01f5499 +result: fail +shared_secret: + +# Private key too long +private_key: b0cc83331b1fbf300bd4bb069bec445e6882eec64cbcec9237076f36010d01836f3d907f51e3afccba56197c6486d387c3d76c678c195475330edb761004cee7ba634e2096acdc0dfe8108462a04c4f7097aca68ec890d1b599d8e11b5be1c70d1ab22ef1012638516e9959e316b1e657709e8919cb3e28c452b8aae2b3ed3bc25670a9e849acb9b8374d70b2011f867cbd7a4e425925cfa9d0f0b485e290e3ca625d6dc92cd6718792c2af6566c1b8cc6c1b39259686715a4a94312cf7288246a0766d98501f8f10fb7379fd9f72a919c12f89a3e0d7a7163862e57c785dfb6b3e3812402e1ae56a9cc3dd60dc81072e5eca94922b80e541622f54e5f5a1ea5993e57c27f1f92b1f0184eff361f80b8409ed07568128b580a8624fa1d1d350127eb269305ca0d73ca6a9a45a0f990f7ea5dfb128e75d09b12c74b760a049d34883fdb2e451077f28739a903827cc5c4fc46b9085a832d801a0198cc6331b00150228a9499481bbd47428edda59c864178924b853dac3003995e860ca2bdca0a4dd171215323c5ea6fb9f45140ebc6202a1094e56542ec4eb7854d8db1a54f5c3f5649232c7720a672a8a9f360ed78b23c1065bab317f625240a95123c85af192aa04f33157707342d6543f8702267c3c1fe4048f9ea36414b93187c76b2787de1444baf66841700b4dc347ace299e482ab0a931693240048cc17de765a7fe35ca7d5462f780a3437196fb848803f0cdcad1c1920275e3f74eed578e0cd38c8e9b7145909d024acfed89cc91f13e943261cb1128e7ea0e606a7cb891512818b916984552214bebb3c6b200c8ea02ac68206550ec6c3f523ec3e535dfa3c375229aa86a98d1a43c97315b06e4b8889548628b044e5b828a66b0937064df3611456b95e7ca9dd4c490e12b28202306a46c69fb255a85ab1ce3e03c250bc68a485dd3a44ab2d877dfd2042a3b99a3eab71ea1807f96a5b9623956791fab13c76a5a6dcdaaa64d2091507045be2c440c595077a247149b4c8ba47324431443b47f7986c413320f73fa407e629cef9aacf6921746aa193b336cd77a438fcb1f14c478db834756b63907a101e6f0487d30acb47671d849ccf2d401e2362c1ac4646a1a2119f26bb113ab2ea509c4da58f094638192cd951668d59402e0ec382175538381511a515af1d0a6846c919c229989208b40204202c5493f779ffff04498088a44934ce0aa488f120ea12779a9380a87d56981c4a561718c758967f8c98e7a6724faea96a9b33ab7f000d68b81c09cc97cb278b71324c613c4b03928d6db001ce95ba15972306066b9d9929e5a88ae49509c9b984172c0ecbc1671ca21536c041ee2128daa26f4c059bfe73901a208a18a272ea276005cc411cb6455911bab71bdf60c5fcfa07c19e45561591a1111b64dfc7112e550b7bb8c90f232d7a77fbca276cd89677dc2af6b9123d5b841ccd96b9c21a3750518fd197d8a6c8e589862b34b00acc5188005b96b94954a713e3cfb70fa6a398b5b179a82adcc0bcfce25057fc3b44fd56e48f70d10703b26e18a3d9a991ff99e507723ec092accfc79bc0294fc024ca2b20815710144a72fca130e4c57319a67698a885a5c55ce8db79577724a2926bf52a65d95b569f0ec3276f9bb5bda92a7857082d2b5f7db5425d5cb08833497174fe9c51fe953c06357c201d03ed67a9617a4514cd47bd16724b5c99a59139b1a1c3747ea3a56d02850691a95d015a9818b1a6c3d43a6c504618af5e88872cabfe2832e6c725ae1f2ba43548eb32c1933e516b653bcefeab2fe0abce337be29890ee68aa164243b2a00c594dcb5f2da3c142c6471a24dd1316153c2cd621b8e3bb4a55ac7178a5750066ba2cd3c00485508b67b293feab48196c37f817026d1337fbcbaad662fe2e14016b851d8c63339e95b922b3572a50c1d88ce13d33ab4a1a2c243a75640473bd8133e717d101992faccc390230a3cccb865964b99067fa2c59eb4377b21d33cf979c846546bedeb079f08b755a71a81427698c363f83b91582a9300dc49f4e7750497624c75b8f294979572203b84af97972afc426f06920c3eca3918d93b1107c512d49c722a9b66300bb9ba71e0db2dc0c203c9296a3acbb46a1a9a6a47a7e998222ed348325754ba4b4a6311ccd3b890a9267840e31e9b8ba2ba029e09058af0e2102041a8ad0148450749d6c4378277b7c482aea3683214bb470519b51feac481cba2c82560ca07080250c0a256116bcb98a33b24441c7f97db9445d746da049de2d5be5e9c7025565e48b914b5e92792e486c7da9e6e88a2d83448cf4b3e9a597958e841fe5aa37523bc8748431814c96cdc6c35237a2ebccaf0680b2f1a1a95237da73bc6ccb96e3089cadf36793ceaacececa0c3a226ead3c293075931213992473323d67b59d67a6572402cacba7b1ccca9e4b488622d342ca864d102c24627ce415852a593bb257b80816c35a593403987394c091bb86a40441a0eac2aa8d01df2a2a29de15db27c501319be59e7ad0d158e43145da40a2069d458b007817a741deef8ce926bb38519506dea01d6523841066e76817e63a8c38a57c5491c6624fc3c59c98015a38d53ca6444c84436612d3b77c8fbc58f89ca73d47c78ad63a5305685788a92fbc0969582833fc9395cfb6cb6a60cd4616b376b1c306cb88c0212c8fa6643d02f4836622b82806958610fb377a1d3551a213731b101695369598c48c91422e7d151b83c73edc59c5fd25890490b02ca8879b17a4b0425cfd8af21d95d2c72814a18abd2e1c6b6aac96dc4bb766614362532ad18c985c88d1770ac7ab2c5f1f50db2dc37ec1732124ac46c593e1d9c319406027c9b60398063fb450033e33fb9d71b3afab86156b0ffd18fcd0baafd7446c51292b49b8440690f76e71e78946bf1464bc1e28a565517234201b0188768d8adefe7cbf11116dc6bb49e96b28e845bd30215b4ebc06fc7abd67c6a3e5248d266b0b62c0c196366f540c5f6998a8e9a182cd38e8e613bf1c01b56009d0155a408e1cfc258215c9801f1ab05ea1bb583b03130190bfad261ffca3ff0a121c97404e69922d0e774ade86ebca83a536c6903f68a7e0157eac45434369dbd045523c3ad664b2393f3442cba91d2e412097b9a1cdc70560a303e38c376c86fec577d04581de7ea1e13f79843a529f23c8c45958369d4c7d4377e38c478e7d84ca24a58170273c4c23e0766cbf2337b7b37c1dbf85f37745b01649fbee0066c4273c57cb24c6328b0e022e3435869a21ed034c5c9abc007b7b61ae626d6744081ca5dc4c72e857510eb57b2722917dea76b7a34789e037dd1719339a41c77851023eb59f81ac2035964a8e6afb67a5531fabf39079b5ee2542a2c0e088396ace67b3b847d14f31d8958571257802d33581c5849d48c6a323412b7a4baa3b6522ae8c1fa9208c2d748a6083953d4a31fac3aec6047fe520112b13721db964463a545543d4f49beb52c9862c904590448d386b24a07b7f6089fecca41f61c2419f695b576301a78224dcb15e754a433ec0985181b853a897fb9a4e603c20163925eb6256739022855ce9b53c0b5d6ab30545e56bb4305c553cb659195b875cba681ae682a46e056fa37931242405c76b2678b7b1ef22a9a39660307c1aad896e8f3798ed3498a1c7924d6afc4b206f8859a44157c0948225e132d4b438b330ab964ea5469276a53672e8fc61d191c36e01512503636c8e5451eccbdb45bb2fc208c4ed2135bc6c6a1d96f3d76c7b5cac9b9277f84d86e047a8222cb7bba6275784b14669c106e16aafcc138967183dd3aa60d02586ce57d980c8d325811a6382d1b0112f2c5be854c9548a71b8e840d47916de05914f80aa5a8ca743234b27a2872d2e49266f08ce5e5ca977b728a8016c7a19b331bbe5516952dcb7705d775814aa79fe27c4484c32b7c32efd5407e5a2d2e785e1bd4340a684355aa4d17184ad02c6d139041d0198da447233cd58c01738743ab6a18a3180cf61dd9dc7738f4c0e7294ddf1309452a0ba2b9aa032b5ae33382a67c237d5612de8c603c13b6690999c391948a2026680216f74946c85acdbd8827e78825784187ebc6882bbb395f4a626a4b4b0ea0121e2317308a98c723894d5719241a75a8b631193c99f3ba87c5297b70b4a47fa0bd0c864da9ea54dcf05f9f1986acf13a87092e3b35ce274b100c4613a0ba8d82b8232c20b892e119530b811673cba1e9c1865c7981309df26a118f06b7744c16a1e53ab3ab3a78f76d48223d7f6c86b5fb15db37706f86abe9d82dc8264150808bd466288f0469922137dc46769f3c66ca86110a3214f0c6d9656f6fc7b601a8b37feecfb55f8bd5f2b182ff57b959781e48b118b7b55fbc18227458f0ffcefb46c96954494abdb892efad0ac9895ba811e094196be1890d380a5708875a68d5ee470bf3d46f0c983ed0d8430408bb7c79a8db6343d4bd6ac5d25ad5 +ciphertext: 0a15ddfcf8d37c696823da464c53645d4e571a8ac0194f200a00131c64fb3c01b8d1a04c2d465c78c0aca06fc5d78165a16b82336cb06dda813b82ea359a775ae91cbf1d0563e582ba14f97b952c8a8693020dc4b7840b5c69f9dda3f8e3b70700ecf515ece2419e4f2097fec66484812877012bdb1fea423ac151d5c1958d60a1a7fffa5e7cd40e0c22b6b4a99f3635cd1a0b0044ec5a824ca6eac9118d0ef9ce9ededf83fd602d7dfbacbf7172b84162f217827d39c5c119da2e87f1bb96bc893ee7a556f40528627f4137000bfcd17f0779593b587bf60479426377890028ebdd4fdb0cd77fd82b9804e1694acf19f9ee01e4185013fc9f23a326d0619ff2175117ad0ad16399b510388856a6a8ca031e5bc507a7feeb39b322f3cf38712e681d129b5fc54ccd934b9abe30e7395591a73cd7e58364c4a0e8dc6ee921f911fe107c5f40a84880ec396fa156a81f1223bb898a030c5711260f69d2f4a220755660b4fad91200bcaa89e9e5daeae9458450dd6c10540fc5eda95333b19cbb666b829d6b437ec6651a430641cd4c202a7ba1ada0a9f4d8801be452d4b43b999d07857fa39afd6f0f42202ba169a79cbfd56b686c596b4874dd1c23ccb46294d9f61414716c2994ce104cb46e430ee37b5a26f813f950d2015620b43c780004857ba323d7c98632165b21720ad4a0669fe0ff16dd2fb5bd5169ae502503c0c2eb6fe2dc45cc0f906bb52388bce746d2c015144b1084dbed42a5251b4b6df899946a66a670180c2afe4713634a96893adf4cc07190bf3b63418871c08db6d74ab05a8db57a0f2a0f2680f1e0d5d83285a25d27efca268220619dce257d0625067a8c45c00f717d0db2276932107fb2c454d83b5119bba0fba221d4628e2798a5fb3dcafba93040e7bf78d7a43392b22d70313427e9c27d103d68a68ce72008ccb221b4604b73a219a67fe91cb90957d99bc049dfaa50bd632765125082bfb6824a3425c5a18cf0c5fae4840644bc4e394655917aa7e5eb7cd01b1a7d913ae528c589fea66994f78ca4c0eb4049a1729d3fd9a2e4c09adc54defa5239d370737d6d2bdc676478bca0c7ce8fc82f1ded9e3528a3cbdb2f7c559da14db8afa137e6d5002e011c4e230c3881c8b98669dd9283cdd16b8fe7db43e276d69ff3e352927d7a9fae6a4b4f2f936536114277ca491233b51c218b47eeb12173b994dd9c1b75334641b11822b88718a3c9965c03cccc349bb28951848ba2cc607b042b287c54a95359d6dab1c93a8485c0184e9c6db4a22de243d5e424fe6961ac9ab3a252011b5db9c12d149092f048b65f63dbb18ebd81033dcdced0b57fca1bc7f2800a5df19055c48096c77f2a421ef7e0e460bdbba81521b1f1e971d54d7108c897d8ef16855093e59bb5ad396b6f36bdc957932b4a66e884e537e8f0f66fa056da0f35e2b6a0da79ec907405f6d031e04aab166365899b734ddd3e6e27259170cdd0af5c0f8719c88e6dc78bdff86ea8115e9f9c38d62ff12ec35eb3a95c5a928c32488521e0ef8243910324fabaa1609742d13e31e27784754903f66140e6a82ace7826cc07f220fc4044deef1a900ef227053683cd6e04e153a52ee06ac04d50ab6bf4b0cc9c9582c98ddcc2e36bc0435c464e0a5a351744e4c1f24c8744aff6760f10676b5a303ed785501bd7a1a089ce788cc7447e950d29cf20f861880b24199258cbd60b5e4bc1241512a042a8f61d18bb2b1e785ee1e6529aceb4156c5dae291d01c8ad84a60d614ec53520b5acbb4e460fef83652b29037fbb61e5d5e50970863f28842395c9b2386c64395f8c099274fe5ea1d4750016b5f86d5eb727f90fbdf4f41572431a440071b6f15f95d4e94014add1e5c5565dbb56d0daf84dadd1505ce739de1dbec458ea0bf84562f2247e6f6fdb5447c1dd66f52f1ddc3f20ce7f4b540f62f22492dbaa04cebee16866a9a5dd0a2078ad5e31c2efd6f120d2bf1a3b8d970a441921315fc4d56d4b5b30e5730c72e2cf19dce1bc6d7d71c24a0798bf963d69338e8d1f9fd77708188ea3e28891be584a4c8e0effd64c3cb09b7edb0a8a3e1359ef36b2f29d9a615fbd3990d1293ccccf9b32553056c8e56c5eb964354f17ab6e06f5d9e82a9caf9c4f48e49611fcfd73339aa169f21dc090d5537bf7392e7d7e6163dd6e3b4603ba2267c899c5380db400f770c10874a1403318 +result: fail +shared_secret: + +# Private key too long +private_key: cc9a587c12cff00856a3574df09885679807281bb8ff1a88f3d98f94505cf9b951fd89aa7ba18f6d91268e1524e336c3db3c2211e7b0f6f627abd46d750ccc25f02450fba651aa00a1d54a8be2a715c22cf6756d7cecb36f982158c7392bcbc786a664b7005dc708732592233eb880e3c77decea557366949dd3b8dcb248f6e7864e69295d3ac7816066438504803b0799c7605feb28fa64066af42bef112414271fb43a174417b6ac34685a1839f847bc66a9236f671921b0ccbb471a5b2b69e3e131a66785afc8cc4ae060e9a2ad32e77dc03b435f29bf72920186296a1b2ca5e19b76b7c5a67ee42b4adcbcedd49a2581279b045a2eb7393c63c75497696de09e70f17c52a60876f651bc870550146834657c238b3a0d99b32d07d0aac9aa6ac16d1da02938a204a2550db4e1b0abb0b3f421b736b755d32b674996cf3d115bd9304c33248f055672f665965c0b3d19949b90c922a5c61ba8c4521ed81a4d06023bd572fcc73b7bf8aab21a25cf6032713c541189bd57ecb9a2502f02ac99f07570f26001bda362824c65ae59bd00fa63cc96532cab64f63cab85b208f98a3292176a53f1870628512d4944983036ebe8bd84a8114c683a87481d1a91a16f129ac3f3832fbcc9a1826119a1067cfa859cc86f752c920419a3e1a21e95e869afd7595664cf57f2cc1abbcb20865c6a36bf906532c348c8d89272ce3a994cfa035229059a3170337c0b46a28c93826a056b241ebb6fbcf00d6d264d65aa82caf57970ba56b7846f340b459326258514b25df93a4dc9c688820b582226e5f4511438560dacb318151481e714cc5578b3c0a919f4a34a9aaea1ea66b4d309e4c963b6d84b06b029c16063f0c759d18c2b58572e0a111e17ec5b3506213d8cb7c87ca647a9692eec6d7d8252c20bccdc72a9e113415ae74f1a4718ce1c47a9c7cbba98a09e31bd4ae9208927214b448b38248183a37d7b9a7973575f7cb1044c5203dd541724892fc0347ea08a12bcf6a353a381856b700e12a9d6c83f02626bdf73ae1d6867b349a067b507a32aa953b6ad3a793bb7ba30a1b045a4e3501ae22540450a17a84c7814b2cea04315490ce812251d7acb76a9c990baca1bf3b8220aa08976162871a531e8995d700448549bd48787b59269fbb06bacb4cc2ea918377731ec24a6aaf80c7fcc182a9267c9e89aa0c6b939631bb077b01e1a4b6c106759985814c09ea1b9727ca56231d13f9e27a2d966abfc99946ac043fc4b3757db5454e0025fd79c577754a26404fa255acc89bff1246e9e2972196201173214e338535d512b1672685647312b09aa81ba128f675c2f4a42e14845c70796f576733b861d2fe560f665665c77b868e9b8263b669eda1b95667ff043408c26b0648b12dcfc6617b5b6110b421d8cb76a2c8423208cec85a20efb066ff3079aa18f4bec9a85419d2dbba4397662f92a25ca4741c8963c6a3258105a5def58b1e9607399f292b9377b7817408f59c458f3bd726c8df3831778bc83d8fb076e36918fdca7d2224612657cec2a29f05a3b0634cee64c3b652962568c739a3b4c08f4ca0ef22a12d55e4363a6969ccb09552586710bfc16675d33271196cc03752dc146433d941635c56ae0e5b84bf124bea402f851bcec849e565185bc61be9a60028ff51613cacc261509905a363f82cfc9f8275ff6557b38369604a4fc4406fd8145fc94865eb65df02169f4632a4c986bb17a3b1eac1a393349e8228cfcab943a1ccdce155a7fd29f699766a3f8978808780a0ac8c62929f7e4210f8a95f58cafedda6fba222ff8bb84c7bc1c4accc354272281c30a4234bc4a732a0ffa0d1702b1fd1a23b1a6c93e749cacaaae5818a0cc50455279053f7b9179d80235124cbdd48a000c86559ca37447275827ad80b45eaee855c9eaaa31d15ccd48c7cea51467c1a906446861d483ab1264a35a6fb128691392808e8ab9a2079dda4a26dd192597435d6868a8e533c8ed1560a877b20e7a831f5854ed3186203c7b3fd474de356ab7552894cc7ad262268925ab256b1232b8320819252c255451522a97fb59f07252ceb55bef19c3c9e07921dac64d5576f6ebc43ac9aad94c398a3a8de269c77d9719f95b7c02d89850747d05b596d3443d6567c0da8a0424a545ded104f7ea16a08a1c576bbfe33bc69b556dc3ccaab33c4adaaa9142d8988b6ba494a48f3f3cc5a80aa5caeb98e273a46cc58e5f1b34ab3c65a6a99f20087b44e871b619341d72379a86296d4210b65a916c950fb1aca50337b9147a9c058331efa01d37b77e04176aa2e9a5a4a58aac8a2a9634765da4ab7d0a310d081a73404b7e0b3493d470f5c27addb53f1244c5e55484421c88f06c9ea7e6baa1d60d36e79573b54f24396b4601cc15514d4008c74b7923aa4a11c31a7eb571191b9374b5cb5907354cda5778e7015297470076b870f049633a69683c7c453eda7a37d13e01d48c4fc3c51c577614aa73160a0e4907bb01b310837c215367668f808269ba3499c00b46621d1ba1977a68b9d9f453acdc33b9778be6e63c19366461ac769c789b7e925443221d5f568ef0b83edf84b93124c89d1a28c9e83d8fb33b1aa60cb16b4c8b04348c674cbaa0bfb447439efc18050b016ad36f26acc981a272e4a224de6b35307a7951c948b3b0c60fd47e8f6c80681387ce66a5c9a9c3f145ca3113a1eb1b801a9489094851805c791a215d19957eb2c7a4939c566ba8313520cd414c4b217311b6742cda8ba7668b38b5c1ced565c0fbf51db05a221a636ec2f65199962aaf74372bd860fdb42222c63945429b57c147a14b342c0b5d4d181b70801de3f93c5e91c42c9199b1cac12464404d678eac06218b62cbf5e978fb2b5a460b86c1ca932bb618cc1c930f3499b9b7b7aa5417ae461e4129a5699a50dc095279327fa0186ae9e7367ba885a9bb49fc196205002928a1bb1f4765e36b31f1ca0995da2acc26bcb432b0b223224da981db31619a99aac4b08bd40a545e097cacc73a2cb3815468b3faa987dec64458dc0c28e732ea18001072cbae440d2aabb5324a257c9b7f4712c6442103dcd036940b802071be877bc759d688851071b52ab1416a8eaaf19066659d3a53b4c1339be1a60f60f56602744749b063bfc73d1856433f861068744434153a6a539b31b63416e3b6e717227dd268e2f51a75c4352f7b1b92e84e5dda8c752245d8f21e2dc096722313201b6498d95b9fb019ce7b7fe9f50ad9990a72d1b7be40b349774ab0431ad05c7cf4f42809acc0d4285a7c8564985734267b97a061a84361968a47a800d16edb6b894a362eba0c160c3a1231f1cb2930a8eb9ab73b5cc336d63a6bb6acaee4ce103989a0691f2093c7c7d14c391c0dddba7309d9868a84a4963c10f497564b74250f74cb630b1a8ab5a3b0b06d9502ae9e0961584670f29abfda627c98f7ba45dc37feb10fd4b869fbc2c5d2f8505ec71b0e4665e7f71bdb605584d96105fc2f23665d58d49284d5b485bc5f996567658a5d5ef9a01ae33d161247cc3a0c2bc53e237b542774879884b603eb8e48e7083077af643b1feb6a4379b6a031c0a4c1226afe4a530f912808f8b9f78901f1aa075c10832c673389bb3b775c7fbd641dcb7470569ba557697855a8709671675bf85c817971d8a42012604e9053732125658642be9a018a27960867a58069dca4f4ecbfe73802bf35ac0efc54dc5286de9b2ca8d91793f0abeb29284e792a3a850cd45794ddc88f1794c713e18ecad2b7ec1b0ad7c173eaf8bf7dabae8a05ca2251c3f9e5aac0c178b6b269b724162376a1d3aaca0a223fc794b877b88ed1f45d0a68013ee2af6e6ac3829ac2c6227aa4ec35f54c6e38f129735100d76a4547a8c30d0a7cfc9b40512c245817cc3fc4755dac08f6d578f7b82f38a325d0471d9e62039814ae4c3c746a184e5fa6c53b41abaf638939267f07129687c16dea790b3f7363bdd04a61820f09f29f862029ddf5740c609a1db2cb553c3908cc6cd821c2dba46b55b8cc6ddba42cb69462649461686c6a365396e41827611821dac663fb7b3942b74e106148931e0baa2b9f66548dfa7aba596d70d8186b9cbd2dda54c346aa11880f8fd76dd2b71919f080754b2299652064d429340a694e9a480a392314a07c3e7097cd2a58eb356013129f46da2f8c1400455ac02d14696211be121b34b6b56f158952ebd1821662b66ba1182a377c2b5c367f0647e9588e91cc915f52938c581a56677ea8b2b03735b4d0e42b7a528d155530420aa520f066fd6b1e4d950c3b91bad24a3bd68b2a139a9daba10d294a8588e451a585500e903cb24ea4db6b11ea641e04e0b902513ba47e0df3a725e66085860e6d014a4ca8f938a76353f8d7bc53b93d85f76551d5d65740f742c7a31577f5aa910a2cbffd9bba925a230df8c3aa6e7e32eed5fa7ba8676702aec7444f11126dbce2cc5c3301484e4148a6e5e157bbfd3a4bb924 +ciphertext: 2b3125a0c94677e1b5fd39c10cf469db488fe1a5b69abe530d403747d7e4f462b5558fea90c52522d6e35f316392868a5234d6095a576eee8b4d3ee01d1103ae0a56d471e789e9c587d2468a456e100d89bc5f51ad624413d7a1a08bbf3086289fb788e7e1efad34e5bfeaebb06b9197b20e133ff5d551e6385d30ec38f1de0d4915dea13ec0c6590ee318aae9dc465fd8792c827bedfac4f40f6a004de6eed825e876cb6eaa20bbb4ea4301bca034805e5f58b2f679022a4f93700a9d16e551c2742e49ab708571a5b6d8cc725690484802ded34fe7e1f3b24d37aa7da191df6fc3f32d991687d0d3e3585563231bc57e3376a95c1fe15c33a7a626c5d7feadb6d71cf667085ff2dc7982f1b554fc6b1082df7e4f591795205c342ef0d2d228c9ced71a1c96fd91c846b4a8ab5bb511865656782620d67c3f2d1820b9dc749a8ff0582e0fa6cbf3263323cc9ee3d271448de5cafd97ea567c522bd37396554368816823470a1caac8eedf4cf6e18294890a820be5cfb53a741434b5e4c5392f37b61f658fe7b9d36a1f7c98490f3b319c4e0f0f26c4c1b8c89b66be83b03497287994d8e88bc9a1bba38268b917d4540a928be3fdd0320627e9953be313aef559fe5b82835133f502866d4b3ff31be510ae1c97cfdaacd28b381afa11d65f25e8c26fb689610ebd05a7be347a6ad6653cf2be6016bccfd2063e8db4f277cc27c52d10aa3905fb5d043241f341ae2c81f89aa2e829c1068e912084ede81bed49ec293e4915267555789cae27c5fcfbf9f153fc8971932bfeee7c26594dcbb752e30f2b238c0d270936e958a554c8b0baef454bf61cfddd97b7d7cdda03da9b0169ee2d26455f82206f77aea61c93bc726d2eaab1445c5448938f84bc57d82739d18c8b365bb8a5523c35b6d481fc1cbde6a417670fd59d28485cd5a6a16cb09904f06a82ea581fdcad06501da6bb0a67b31c379476ce16874b6f0e64d1ef2d822fcc318636481a85b58ee51e20300e8273008970dbe2ba2aa1f0d702e64054380799d7c14c569ef88668b057f8efc9b3572e53c19b34d60debe2b58e156ba99532015b8e20721e29fcb58e16ddb1ac4c64a108e4e501f5145888ce76f7f6735745d71e7fd1db035b9927c0c21799e9c4a215d042eec1b21c8321d9d56006082e7eec931b0adee985f1cb2add03881fdc7f5df382cc83adf9b59ac224abf3a8046b001e64d1d956f9c85881b7238ebe810b5f1f151df3f8437b8e2daf64ff1137064b7135f2b9106ad7e1d4444cb4041805a9777f6ffa44d4a5e50988210bf019aed179b6a56109ea17147d837f836ab262fd55725396168e0fb1b6b0378937e545587c2d053f77749c46d1e3d9919c116b25face7a1cf9554b695ce4076355e091723771c6a9268b155b44e04ecd411f4855aea9f6c611f750a8092ea28e8f5aeb0c6ccb62e93bbc7871f894b1561a1f3e1bde8bea8d130770e4a1175a0cae506752c9d50688263980f80a595006e4c3c53d1e0738ff7bd3fa51aeaa121442b9f3cf75aeed7553bb8d7a8ff58e1cb5c175f62f2e15fb17deea1d9975c685a64276ee441040b0a378fa74d2a4e0b6c61979538b9d04ff54aecf6493b11c4a1eac79a187adc122e4366449d36be90c19a8e9443f3c556125f344fc7624439147e08484ce043bc723c0f0ecc4b862688d985b782116988121dcc37637242dd37769cc0091e1eb7466d2dc3596d51d078400bd0b3e9a36009ccfd15d23385e296ecbd58f95e9decdc3e24dd962187ace83fb0da481632682b83bd79d5f83936ee1eb61253b4d412d1f34762d80888bb628304211d69de598884961f197120f4a3c7e396ad3b5cb9b6db3978cf02419d318afc38dc0e1601f0de1cf8e471c70de0833582e3f75e9ede0dec8ac8d65a6d9aefc776e34bef9266c4ce1687f7c3a6e708dab6ddaefc311a9b68363632fd1945d2e9e91bae0da815cc9b7e95dddc54477ea572dc37166111a4d6058afb7d557e846a86600ffd905e79339b73ce535fc065cd44a0e802854e4047fc702fc86fa38c4f29c3172b5b07588c326fb4645311f72d79af95cc6575c5605df80aa540eba5fd2a5d8720334104454525ae778b5e5d84310770dae0a21d34c736c1f6e7abb2b04a7e2d1bec65b20aa4b16865ccbfe4f2c1a0dfd8f54561d37a061e18324613a2370c2f6ef4bcaedc7933b1a03597762 +result: fail +shared_secret: + +# Private key too long +private_key: edf7a3dfe4a4f304b90ac7182a2b7bdfa5ae5a048f31ec4f94224381a1a66bb6ad93360ecbf36df6f04e4a4c971ca84048cc99f32684cfa56cb2fc0ec19cc499e671d24951b6081c9c446ad1588018bb236e2b34f4b87b0609545bc62b5e6873fc6958cc00c916715a772247c03ab807ea4ee958be40197259c93792fb07b4171ce7913755630c17142aa01c9382924148b63da39658ec052076a422c7938a1a26876a562761e05b3f959c587847cbd3726f6798b91b94e079baba9a63315a3a682935711b0d08611c2bd3a63e80ca50ac4a76275a8a6a2a932575785304aa56a2642986a4348b59058e50c29dd27922ba8c049f2004ba062383ab228763a0e7a7a300c42bccf2a0f9b64cce234559bac183e760619a1a9f38a5cfd9780df87b634007fb904995034a4f96bca8ba74fd652642f7230d82c44b36acb3a02ecc7bc55672ae89123f1a626374c34d746b8640b22deba36251f68273128ce6d5b6189c13e803ce0ae0417c96418545af1e954db626bc3995a640f970d7ac1239930d2edbab045b7459f8c06b9902922c319c2836a99620b0c04c3c841c3c306ee64024ca87207e671d4d72b2dc9c42f3f8652911c9105769661b9c82523bb1938711f1c9b8c92ce77615ffe42dde007f7e76c748c602e9a6a8b2416477999daa3694960cc50a0a6736d0723f61a392b768b3576dc4f8ac04a600a860a4b7a91900c19f2e6a1be0195a097037d282353645cff6226cb0fa9d8cdb4d6d2b7f8d54582f862d00990170a93aec255000667eb7ba11ffa837b16a40e713527f72cbfd24c92b506428a210daa8563e235bc7d95a7510c5767578ad7a8e2c9a82cb6519adc8b4792a5d74249ee06263f439c87c16222ff5b649b0a4b53634984436fae322a7255fd6595bc9fb251e34a1517528828497bb618842f3c5290bc8cf83a2a858818477389299a0e17cbe1d013a49fa6ddd2a2157d6a69f78101fd9c0afe1142a8aa3ead4336942cb86ba0f9fd43243c07ec82884df0b0ad6bc47d65502c03529e92c9f52d45375e0b07a3c8cff95cb9248c09f919ceb1c0c4d452291fc6529497939a2ba46096c137761af3cc577c868da065be1017bc8da235ef21d32701a69630256c0940b9c5668033df48040f6e23e99e2c947aba54f3595cc17bc28a18352c8a20c4c2110a7289dfc2d74e4602f884573ba7e95818eacd995e1eab3a21907e6f19de1e1cfae911d7a1aa27c90a93a2ca8df35a2d2c801166156c43580821b099e52430e1b17f3f8b6dd493f85dc1029d72ccb9414a0b2c94d8c176e1b6d4499a97c073671235e26c3bb363aa390aab93351be1c05ac672ab0bdb113c1aa000d329aab912b9ba1a74ff70319e5b8cb7c5569234a92b96b24d6981ccb4111f5b3bd38c518c17802b6c5ce0c1676f539837710659823da9cb915cbae2079b75eb06fb0c71c554c5b0c4790ef19303c2491f8fc9659952dfc572981d392f69bb70cd412867a1c4669409855a315c41cef1417883cb33deb877163471e501e17f8c2c536b718e46444d621249399c5fa5431a12bb7b6c059820fe25891016ac15da972caa22b987117b313916394978a4569c2603eb6e480a0324839626c7fa2a822900a86041a99f189aa401a193754376b2b0dd994a8f208fae127adc6242b34281bd55a8f4373e41c182a382b8b87ab38cb484b04a2ffe96b46748b88b63b820b4a327324a48442eb959276227726f89baaa2c2d684832a2c69caf2b8ee9267ac588dabc6805844191a7c2abc24b50ce16a16715000994017982ef2639231d0a986b415e8bab84c5169c6d8af3bb70576237da9d13797fac37705774adb81a8eb86313c14266c6d0a231334c8add5207af9b91ce05c4bc7366375bb812e77a5a276164cb96b678bafb7028d84a19ca9f2c633150cf6b5b9cb7025f59b6001466ad7c8bb6b75aad142b2a995c483dcac96f85872738febd28d5ea8279b26763012c4c56262d60ac5f981113c5988b6ec4911102b31a81c7a5a40d896bfe12c6c65aa455a86977d46036224b17c7ccae7e746823081bc174b9a20c257bbbf3eb2ab83c4488f0c6b28a74f5db9aa01f250436990624acac4c79f788c2f1ed5b81299447fd4ca300c7170db6e7d06014ee263a88c106fa5847e41c76f435e45ab889d88c46c512ca7364b95243c2e765e41b90caad8032fbc381e99b979f4c63c219b93149dd9d42de2a83c5bb43887eca9b4996c69a42cc9723063031947721314a3346bb80ee1d72b3c869e4c442583a5371ee47377a0498df022f71114e1d70f0e7b79eb96a847368b0007b8f4b395cccca5db2504d77b28f5f519f912c59ba06b00575ce286037fdc87138a3a1de58054a9c54ac463b844bec4ac0734d72eefa0c58e2096937ab817093713c4047302bdc303ae30a7312236041331a547f2c2d633160928bf824c3539f6972b0501dd2b8d14c86fa7960d9fea6ad9b6c0518bc9a9c02b098471196469e8448d8873a7538623c825973c12bad8c7864c572676e35254a0cafa719f0621a698b67436958e2c493ea21099c4b6ced6395e1245bdb5c9c13402206b02bcb985bf0ff89625e2353e346892726db8eb3047c152ffc6c3893059c4ba4383b48a0c1c79e4a3042796b72ef659f2f47b1f2140039c89b7ca335235b811c18c8c0ac2e7260018728ba9ca28f8ca5f64c508600a52081ba061e6a1d3e27870bb2eba5c9e48574187662a79147787e473ee694671ac783fc5bde9b1bd57580671890583b82138e9b152871e9981133c0153c4c6729685293fdbb987c22131003c32b68f2e664402f49ba46c2a95673e96052fcc8788a261426e55843bf9aa36161cef0357d2d31bb9f8bdab15a33d56b8c05a1e40099330731717507b40ab787ad611c58c1d09dcc8eef04b68a44f3164cbd4b2639d9c12a3435fedd9470b429676b5aa630c65b92a3a0586b18953521d0ba5ad838a0abcc6fd61b2a614bf8247ba3d3aa0cf6c764e3605793a2c682762413123b83c7f99b499db188e31c5c3425065aaa00ad1b7126e3628a6cc244e5606d979a601a021f7f9cd29db5dff1357a1e2744bd396ed1b4875b68df08c30a24c8f65d23571472a623c7ac6a2b9e02320cfa611e9ea395d9441c0835103218c859a0bda310b70f3432bc362c9c10bb2f251941b4e49688189709953b6679458aa72c5832822a76547177bc883347ab2614bb81f5754b7ca8e04754e4a7ab76ffa5a9207b1f95219ad5247a93b28cf46adcb081ff9dc08e5400adc194e15c613d1833f3ed1ce4a2813c8750e5fa5998b0c0efb9ccc00e479c7ecbd85596da57c6c47f6c73553929701440e28bd0a639964d5c7f8a1ca8bc0b436b371f0fc3ada10aa7d048ebcf6c091470ac86b74dc4b14fe441fe6d6672fc1744f6b4f2f26c58d0b1b942c5530a20b9b988a96d104115a461b02771c144d82b36e0f788d13177a6caa3ef5b310ea110d0bdaa1a44b9a26bb8800279c168642aa719280414c32c7836c8894c8e701b06266c50a445bc36b87c0c4f6f2223000a36eb1891ccaa454bc51bd38b845d8a28ae761542ac8c15216e18ca4c52900c8531d1ff28692e848ba05be32593a810144bff265a69a08814415a72cc2cab5c7514a79d5457632c56f6efb4713daa1aee19366ec441d884eb621c098f8825a426aead2acb63a2db0c37bf3b79c08d919462c84a874c0cbdb8d50949e06da61ffcaab578723cacb59897542e23c3ed04832da786d1e4557b3c51cc9a967eca35d2c3848d9ca42918396efd780d3811f674260075b5403b945c3a9a1bee6c01a905c55b41c357018480937da60cae86984f28778f5987693acc992a9309887ba9b49024ab60d548583055c3782214deca8ac192b55004703180aa19fe08b873198ea480fd974a95816af3dd72bc9c54b51113b8a15b7227595a658176a80c4d5407f39e6236268b79a220513314f47f1cfc3a9ac3b5c0a6ab6af8c1b8e0ae554e0f79e63ca4e856823088113810545847ccbcf0669f3140a53b83f35d185735a2de68b9426a687f4cb73495c39bb8353e6536779dbb4d1c15af1d30b8ca751a5f25375315e41b120066b7e39a4b5e5f70143d85236332809d187004119f044cb92407e8ca4c211a7a0962107636ccd7e486be83398ddd368b5ca3265751a01525d6ab66c164641debb34f8794ccbd27975f89bef0c5bf41a321917ca72fc0ea5f1491b921be8b5be76190162a22f844c7e25ac14984b9f6f4c23417a4d6d6b53b37aa607eb092c945c3111bf9e3a19e0309e4c25513feb242795395e84a5a1850bcdcb12194678245c6e5ab48534f39db3aa9eac7c26a289fe0194196fcc65c3340cd94b7f10bc82158ab07f702e7b546b6c7cbee2c8e0f683d3e6f1cf89e9e06d977fb045e1cae9dbb568dea707961b5c805719d1a31d4f0b7fbfc1ea7aaf7b35495e5eff57b9286a2b814770c621e8d8b09408eccdcb18ac735c00 +ciphertext: ecad29e402099da49faa446258bcf3317548d93bfb61f019d5200356387f410a483733a44f2a9d1e157fd0e97949045d2a13d9e67c2b4047ecf2d0b1174de98c35e903687cdd48d216318b4f3d998ff7d3ea63675d3433d8541ea673ce3d97105f8e61d614e1b4b4178981fc60cc9ab780a6eeffab94bc85530bf3fdff9bbface393fe0517786479e4e8e59a91391f1ea648c5721bb409db352821ecfc3ad30cac979006a9bfff87eaf137d39b9896eb78559eeed7402dff1fbc34c3d3305b9fc29c7597e32a8eeed7857c31ac0c8ef470bedf60d2adbd1586bcd3e66063016da306e35c120608fc85a08cf43b4b455005dcf0e2f3ee43bc537738e70ee8c01fd1425cc9692de0a4ae1d2a93c2d0b89e46c9af94b3ef99f8ef7a62f8c1cc72c987b15b67956b9f4e18b3636d1fdec2f86125c0eeaa12be10305797cb7db0348cf13191cc5bfd271f6553a20bb81d4e4fa6310255b6f13cc37be8004652acf3c19101d7a5f494b995e5e304cd07c5e7b703ef7b394f006f48eeee0d9eb28ac43142806a29c06d0cc99271fa63de7be57e3d2b2ecef016dde89a700284fa8e87c7f60a7ec3ca59e828c07eaa68b45a0bb0ff73bc2dbdddc280be549b9583bb4efb15fd52830ecaeb9d9525f30bf05b86ddfb88d29d4d74fc002bb851ef2775570a1d81974172383aa8fae8c21cb0202693feeb4918804022dab0e602611f703afa0ce73c29a637b5e2b6798d2791ad68c37f068e57493d5faa9b74ab8134e1baf5d9c0d8c647ac0f63d39f301b0d200bb88cf6a734b7411aa12e05724d5abb98d9f3fe45e9c79526c8244de90c5b0809aacdd5a8ec88426eff2040bb01482eb5a2097b33dec0b37fd989a6301605c21310cfa7c0ff6c24d6dffa8e857f9b28736fad612f479a52d5e5219ded0b7b1ccae53c6770bfbd28bd65eceb72b75baf4d8d82d341f4bdcb0f6fc40cd6f282e4721f034ffb41fbc8cb8cf8107a35d4ed2060d65877c6de7357a609a4211805dab3e7288904abf010e0078fc305f793f8a79a2bc68fc8a1a366d70df1fc1902523825ad5845f8fbe159b83cdcae5466474f678d47a59da85674bd5fa7aff70ba769e8f0f6e7e2037d528f2428bef23047fd48020a70f59902d6272155176694662e8898a61e607dabee413e2a31ab632da000ce5ffe91ac22722dba24125042fbecd270b8ba9c20bd80ba8df9c946fe67baf2a91155c80c8f76a21d4cbea506998df788e7ee87fb395e56bc97d7eb8dea869ceab13339d1c4e528b323fc19e76e7fbf263137e36412c0e6ea3329e50f6a913b277685c44c9bfb3dac640c1272d66ddc85e6e046134ab4df5bb038a58143cfd81a3bda0de5c6e8b09b3995d6b67d931c5876bff2164aec1348f561c22fbfe6745efce20c3a2db89da0bff15ded262f061c170045a2b9ac86df8d59f2aadffe5ddd3c64f706b3d10e1682e32d062e5c98be70e7b5246fb64e2972deb6d606c3247d1a6805fd3a563da99a97b1c57dfcb4f0929a1959d82e18db9c3b584ed80a5ec04587d3727e9f282bb879da287d1b9ee87d72753028ee71a7e3cd5ef38ccdc38c1281ccc6e1223964183bb2d8f0b2420ef0db864e14d5cad81324839155b678ca9f48809552e91676adb1d7d7c030db9c1f1df39c6ccc8e01f67a49c52a0a6d283ae1efaa5c3b34da7e1b5478d67cf5eaf7df0da1b6da598fcb289fd828943760e11024fa76d33797cbd438697dc089e862643a5f781f0a81a3a2ba34cf10b67805e9b4bc58c1b675a0413dee14b2dfec729b6d2a6470d4bf1314594ab66bae5dfeab5f958f2a60b173c40960509032265a81c93edf9331e2b9c1472dc08d392a9d0cb177d3be2cbd4e007314504e72b2a50c89657422deb3644bae123f339753a144dd50fa8e4e1c301a1abf5f18270f4ffb61380c2af8206961606445ff9c4060dfae5769e969d1a927564023ae3ebd940f9748f5d2795355f3510859c0978f87c36926c974878b5c58f695f97dc0cf54e464c3e263134c23d31a1ac346dd9cf4271cad17f2be81011ba35d9f1593a979fd5fa04c3f90700c228026a2f3b88f5168305f99c7b152edb221254702d794171983228fb6d8e3da0cf58658c0bc4e7c08930eac7842d6db069958ffc8e1feb50f0d78b59fd049a8f8dbbc105ea35d2ed895671407fb38a2c3605bd778206861292337f097b57fdf8880243d7e0e +result: fail +shared_secret: + +# Ciphertext too long +private_key: b4e974f19338a8963d1fdb0acfbb3a4185b84ba266d7d2a2143c7f036207c85966776b6ba4188cee975500a9be2b908fd00bbed9cbb83b0b07ed85a08a926356eb8b693943a721512db29c2d6a8805849b6719727aa647b9b450d09c14281ca400cd4938cc90109b1df3546dc3485d2104485560583ff13f4297ca64ca5e469156e20052cc5b94f70133d9c48561d2ac1664644537cb5063b437e07522275b4a22c949904b53a23030864c0bf93032da0eb52b75beb78354d012925361cdf79d0731a7f3ea15972046e7a0ab6ba8464bf06773c69c5a2a2aa778366ef9731f5c0242392e45548392bc916371ca4dd40cf0b7866fb43931723454961240c5cd1ff98d14a964f7d8b1d3b979f0a6abbb1a871a3206927a02607273bdb9a86488a5164550f823b5b11c6305d44b57609de301284f291146e540cce672a02847dbbb03d8a0113d34875e3420d126a2da9458d2555649c8cef12410de77a184ec68c2bc1b6cc33acab227f65b17bee8b25bac8667c389651089e8688855f1487ccb8876b194c8695d3b63cfe1114093177a8ce2ce23303ba285caeb710e00925919a22fbfe96517e34cd0093cfb1c36831679f7dbcb8e07c38e1c55296c52350b30915135c4544a79f707f11b1eabc315331b4fbccc58528660c1a69353bc874329b74e1a2f70cc5e54c13853d801b20066ee11b17d07b79eeb6b885b2cba674ab03b973e14c220bb8e769159cf7311a616ae25821ac98b11db97755cf247e5ebcfeab1421f2cca39a06385742b2b90b48ae4af96260f9c0ca4b04092f5e7ceef280ab309176a3248e9ac01074bc7504b18b4fc92c6714bc71c794d12308a7a98d5108d5c6a3f4b086698197fa5a7ba8e7ccd86641608d8bf0954aba20a768b0351984556eb955e2b191c1e32603d7bc4f717902d26ca92f9549e611bccd7bb13ec25042b57b3121bfc401ffe7b0c36771537c25ea9dc7000a0532a399829180097c6519aeacbf10c3d197276521bba31b230d77480e2eb142f06698c385617e6af8d3636274c8686b957d8f68a1c1a6fd3bb4c32fb43dcc23b41e6006852ce6f323b046bce0ac0854242640d649b53d2141f66cfb0f2023f80556aaa380455a4a70a9a6750317379a831fa1433eacb544c962ae52584691bd9118e01a6430d1180d433562349bc4e4c10c49a61a751c138ca489da73a0e538c3b0657b183b578aaaa91930949f6561be9b609d261551a18a9748241da75f7598ed9c028ce85b8ac7996f7846cabac7d5ab2bc75b3b123a2a26df834db703afeacba977567ff761f920a92377737c678884698c96a4811bf4a8486ac0c4816515b90959ab5cb3a5bcf94e82a1bf7185414348e1821680623c001d09f037dcfb26cd8d3261e85618557bec59853eb5a1aed115832c76a52b18e65698c107634b9d590fb331c8ba01b59a10bb4940854c1c0bee8b8ce1033892a805e5a727240082f325780fa6227b3bf22d071c13322a202aec8c2822de5664f0873786323cc9527fa85034d877274f24ab9c2be2aa554565ba7447267a15a27f67b8b16a4cf42a914439a14b47cc724f59cb4d0c747914f2ff2a2100771199b13f3c027eb83b84c8c6b30188dca3633fc882ae890897393b1951442a3a040d62a48127c3de1f4593587c8d75848df55052b674bd89cc8f53104533907b30cb25185821856645b91501633281e565ca527ac13546c6f4402bc446a1369adcdb5997c45639d212233b33bbcaa617211556990ade1d17c83a25199b0ab72d54b8961b52b3455805b761d0517ec5cacd5118754185b11f42122394cff880f9c653723fb71f876bf5433add7348063a88dac705726501470a2671d996f85e995f500159e3a26d249688afb6e71c999aef1be4cc745b1f30b8f0c1a4dca15a6846a9376676c628d174270f43278c0602ec577426a86ce6d091ab4d795311573a347bc34a747d0532ee0656f3d539077327b5c4b72fb22caaee090e6c921748ba94b22318ae798755bb69cd8241f01caa68248f2f3848f30893d8ab004647129e58a36457d312b476258675b30a0a88a24e2116a8ccc0f5120cae8903021724d3b999e7022c607b50bdf6abf2e048ddcf55cf6e51eb0c34f65740a93d2afa8ab405e2c71a72b3460b393beb1349ea227eddb4f04b73efab969a0929dd5a298902b37d5ab6e989a19451c26e0b13f44409098d8af7ec4496f03c5d28003b72c5d8b421b37211c1c1a1b6c40bca49a376e6b436ef439c4b4143e59b88bba5a9d72a0c25583cc581430cb38f5a320d08251a6808684d53e77951937f6cac0492cc2b0598818ad7a9a835d520b2619b28ae1a26f727615d4483ec85c7fa03a108b80e776b0be5411c9da0744090c9075375183669a557b0e4b952c760f4646151002ccb44c7534f91f02c4910c6c7e2b19835135b906a4a731db0a7173c2085480c4fa86156c3dbabc5df86b97dc19014b66910ac77634a905e9c04c01699d153075c8a0544bd390ab2710988c829da01613eacfc265998ea4925b3a98a2ca1426790e6de625532a0e8c1a53938b56772ac7cb395083f757119442797196d8a53587ca7addb5a33857661873b8da530e01f20942281ef8721227c75bc9e69e1c85b5051b40b07cb345d7a642c0cfcecc17178130ecd02d1a52cd4ab66cad528f2ab693084060ec2027e3760bd9886b5f19a921f7b2513726b9740f41335a5da112a1b461faa84e8a7407caf8c1e588aae1bc6c3fd40df32346814c068aa219645818802aa0cb23074a8bb669f74b8dac5201b41aadbb09c640a078b539b7f841d8044dc6dbbe7e805bef5870e9587cf24230df21c11a9649c57c427fec4247cbad6f25418ef92d0cca5d0deb7007e1bba9f841cc613ba93721ece4ae26813fde24486d79ba19145fdeb20ea5297e98ab9774066808722dd2db98d101272fd56ff7d37606ec8902dc369d77b379b40392f16ff0245d05ab392ce3afc5352907bc5abcd150a1e456b3ab6013cc5d8dfb8f46fc891a814ebcc67ace51bfed4abf2cc926d382336527b420a2ba74da46e4b295a6abb4f45c070ab90c1b6bc1d9fa1354373e6a4b2927d38c3ffc9406bc91d23441d98a548bcbba84f515dc0b108ac9b407625ee9b2bd9d0436792a3c626b060d220d49b80137d17a0b68464152626e9b3a2bccc1ce887023b620950444f91809c165cf00d21bca4a81b1266d39419faca162f1a0b64a1bbbb83992d03c7f4853b5fea37a513376281c1aeb75a4d879a2088b4451941fef34100056a7a11056cb9a5125563341e7730c56940df06c71d3637d23436eb5cf6692c575202a06c25568f71de72a7321599239398da6bac6a94c324b757c6f4a61ce625ba49caf180b57f62735fd1b0c32f22e388cac5e534c111a148200847ca45c31b197460a9530494d0d882b4254cda8c69dff9787ae44790380197e6ab2eac79eba46444c88b0f20c5834ab6e7842b7cad070605ab14aa3472a93374cc7c26406500815bded77b79626b093fa759806a021c97789ab6c33aa0c69d36b85230640a37b73ab1d9584723b1c36485ba946a17d86588062e979b80b2eb815c941b480461a318538208237c579cc5cda21862fd9c47dbb6278d823b46c1bb107a12d2285cd4994a3c652a064a156142c3bd68f3d5855257407d7915fc06b499b7a24e9126c9aeb5b3001a1e7c97a68fb19f1a5b1502691baab04524726fd589e488b7c5f52ccca295650f223d5fc28a2f98118a1287020681927c92dd40226b00f39365c2a20a2919976b8289506d2a86998066f939965f20dc44810c998522b2064b3553a90b958208492bdea63442884b5f85d41369df6bccaa9081343140cea638fe4694e2a9b4acde985cba4c3b0c946aa539f69d77d19a9c060262ebf8a96c1079152478bbe387744eb7e78a7977066415746a2f352b123c07ace5a89fc13aca08134c671a768a5536a149c18e9262d8ac7bf4aad3d4255af01c2c376939c19c55093262fd15085b60237b0782b45c815376f50d38716542b26d5b2624a312d364ec64aa1c87127d0232d4c29677e2497ac3054f43024a1636b21f83943db2f4438a7abb54179f4b0261b8b9fb420e714a16deb58a421b198c1bf41d5754c1606f7b6a2a875a0e94aaa4cc7693235084ea407c661cc68a6379f8a3e9b80a0151c549927abb3083a36926d251171c1a5a28668af35d971e7006c02b30c40181300498a6cb15b0f78933d879668777d93972fe1e085be8b0e2c9a814776b22c172e178c21fe5655092203ead695f62981dafc14a4626c3cd520d3701cdb8a2dcc4b48f3c36a4b3b559db1acea4b9d0f05d97a766de74d15a7dbca71494f4f49305e227959262ad6d8f89f1b9d11470516578e5b301573e0dc81402d7096b3abb2f1a1ad2e678886d7bcf7a64ea8a598bef7c445bb1342674d2ef66a84e9190eb1ac4e31e50426f63cbb50e7 +ciphertext: 5884eb5cc60cab6397538a3832677576a02ebd67e2686be5cf6583c0730fac5df47d3b034027cdb7f4aea7647e6ac7171d29b2fc27fa5a4d94053a2db9434c198dbfad446de934d896c7dfec7708d41e38e779231316851503c1cf6889edd6d35835c4e160421185c723e0386d85d1539984dbb7afa64921b72f02e1c731fcf2a82fc48d9f9066dacb271ef8508709525ea059d6c78024a8ecc0a1c9c810abe28e432fd8166056b5a4aeafb90a843fbff0e5718f327f8a1f14e8136cc8265a0b9a9a29cbd4c81301de8a9dfe747e4baf9a4c178efc899276c792d639f6658bd612c9feb7bcc8d4a40456f32bd292bdb6b509a2bcf6b2c9e731a0cdaf30dd4a42c55c1c61ec202e450cfe8e209bd2248e8f9f7ede36efea06be06edd983f8d19a95c7676539bad8e1f846dcb4e533ef72b295fdbb7ded89962241fb435bf83d44309ea6df348ebfa1ae929ccb7499342bb30184ed1ee852ce39e21754ac574b429347235549da8b97515f40ea783442b8c3aac86a6834e68a3254ffb6e33274489dc64cc5dc2567edd9eb9ea97391df2d8a1a44d1f276bc3c9a71eca58c546f0e77849258f3a1d33271b61e48fbb54dc2faf23cd1eccf7d63855965a664472e3a74327115ad2b2ed135b4ef5fbfa03c57884530f8acdb5b8261a1697fda62228e2be9ea1acf7c8753c863bc9873915d2d56d87426bc4e78b9a0836d974a673866e966641a9b77c22ed4d81ed1a4401fabef27eeca2cc7f1dd7bbc97bdd8b5851f356a3965e1a5daa0e96845757c721b52b10cef4a9c911cc8a51910984e143f7ec3ff77aef6689578dee49b6f458f89e72eceac2088b6645b412c9a76b47ff56a8704e14cb8759ffcfcbd80d8bef0f8be911c1a4ac16453c15690b241147a571e45d6a722de01ca9c31afba801decde145f73c33174f9986a8872c96091d7f7da2006dba3503703c76a31c03a1aca0c0764ca66e2e43e97ed898b5f7388e9ee7dff99e647474ce6464db92c4f3380698bc59f5b6cc110b9f9820730cf64db4d0ac280d263e88916cd363dac278b9c5f6b24fd226e812df22b508a01d768c702ed4db92a34bef06d200a808450f77545a8884625572ed9fa6890557fe437409b92010ae76fe8eb4c38d4afab9997c2563c88a52c7b19be768e3242570877198fa5ed540292979e9fbc629b60f6dc2b787a03a4bfbf1eb3df31941e260bbb87ab36f39404a23c3886098ce7740e3a0edcd857f3ef146f346fcaeb0df8e5e031e21e7104e5e8f5f2c194b10a467cfb8d89bf0c030a674ea818a5a948ef20180e2b3ff003216cbd5aaa7790e15fedac7b44eff8b5bc563d5667ea0361b5710376ab72e18cd2483e5bc8bb17897e4c590f4cddd51a8507a8cf523a6ee43c030f6968275a46470c5369ab16bcd52e17c9460a5c4dc5e06df1472ab282d1f3fd80269b5efe0a9d8b026fad1e922e362ae236a06eb48a00e8f9c81524ddf4303abdd3f60f46a1450b00d0befd79220265b3be0360bf8607dd35026766471e28cc24b7b640e8feb5ef00fee900c283e99ccd1c896a081058149bbe006a5c0983d4697dc02ede35e2e96b4ab1daa73ce3ff58fcb72c86c42740d0cd7bc8ca97847b3d1b0b763f5a120637406af758964685acd7a3d1cc8c426c543298b88086a7d9b446e880d60d0391f23388d39ff5666fdba013946765054902e056999d2eeacb8e7d5768db45933da4d0ae60cbe95f93490959923b2c51b43d89191e248fbd8fe8ec16e570120489c3daa8a12f22ff8f3a28f22641a2b1fae0b68f4ac57960b9582d9b01bf7286d7fc34c90d9757784046981f6624b1fa195baa8bd45aa30f2fc60462edfd08176ee54ccfb19614af30176b9937b797bbe7d758ad77a8518cad8ffa230bf4f4c403f7bcc685c62c7c7e598bc9e3ffaff08bd7001ec65a8df4730b8f37bb72aecc34a64f0a845971ec19394a50f8a94eac8fe6e8e3b4dc567bf30ecff795d1c208d7f7911ec56d36a06e2753678b11f651f66f2a13553172e52af9b4680f0685f677b1f0b1b496fac146e98f3bdfbba6a7b2e979ef52d20f5efbccb5940b7435221be8b5b63b50e0c0b1e652f98ffe3de8e59d0a2169395c6b691ca1e7929beed5b4fb72d4eca1ec8f8fdafe95a44c2d2b93de569160c10c2269ee48191f8c31f698b471599a38cb405a54eba360f2c7d8c252565a9a4a4b33c5543df27a65cc924ddad2e72e642f184d5df441010ece20c32ec4 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 91060e33058f75969b03139b38cc683711a605e0b3e33c691d3110f01017e9a5c6c0130ce23222dde1abd0f49ac304a97ab6ca97d8c2ff30a465eba4774206cd2308bcd41c4e545aeb764e6fb43607aa91511b1f104791f504aabab6133e41bda7e90b4565473a2b5c5fc04486a53f38a791cda4b7e110c60f8033717abe11eaa4d23b869295145e9225b94871d7264251a82b6ea1ae1e088b39e6bae703658f11c2e798153f9b706c4ba1521a5daeb7b7eab659af231275d89c4dd764c351be634967de3a1de168317cd347397cbf33e133e6b8152f096858b025c9602e8d353252705bd4a1c136d657616ab6862907006097ed1a4119c2372b20c850616d37b2107d48a1ce057aff508bfbe221b696cba24b76862322d0748e6f5b11e439996104b2147b7ba2d815802860984769fca816f82738926bbd04d6a22d393487563066b988b8d434edcc2eee674a02d8a6378123d100321f188efc4492f8c98ba91074d5e4902f9ba52332a7e893c88bb930480a53e513afa1404824c33359fc8abfcc3da689256bfca7a20cb7bf65815d378bad7779f07c55308a71ac4532ac300b5775484060736f673afdb64600d2ac410a259292bd2cb62a8ffa363ae4cd5c0903059b039df40377db51e3abad06cbb6f6598bc3835e9f5b1538e76276794ea951b65015a408c05453c51b4ad5954ca7bade2c2a84e5746f126998f214e884c09f47a5d79047ae830de2b25974c407cbfa0d7b5479b5b43fb5d6cbab5816b1c372e3f6204e3ccec6270f0ce945656c47e716baf9b66aff382a4a6529ef2b9250b90eef3c18da897493c898f27610a3d267fba5216d130f24139acc870c5e270274f920cdd820cd014457183d873308616671c69265086aca2603b7857c8caee45471841104baaa5517c70d637fc8b2719dd3c6dd641a96a401e3438e139494582b26bd67abe9e3752fab8db0a1abba747ed3f127d1b7b7b6792652337280d2c5e7969a0a89c6d1d9bd49f170d8fc09884923142058f7c2c616b14ce10cccc1c11cf7883bae26bda4435dc676bb8de48149b02a4121a384982a3c42253682c8df75728588694072be2a9c1532464a2daa78e201752c052806f63fc735b5cde09570a59560d1504c63836fc67e6c35576550687e98175f234cbab2413f87a7fc2c87bac0694aa43639f11933f55b8afcb137962fd4738efe5a6cb8ab8be97a44f4c0955093a53c64781b9233560384a1f584bbca2905d2cf3d21b4a509bfcd3c56b0e82f4bb82c9928287feb93a38171c9ca6fc090cff4881e2feb1da51019847a03c33946fc1b42859cba50c10a28bb1588b60ad858c6df621490767f6124bf07dc51cf064d1bd04e7b9ab101d1a24987cf55e8938765abe2e59f6ad392eb690f3ae15fd72b5caab78bdb04590861b63f7636b358aa0e5378a35b06adc2808b38af701491f15198f1684cc277a6ee259f626614c5840c68dc0a352316a0c80cafb268ab9769e48704b2a61c447b227e1486a1860785854827b575f779397229020e8c141c20424105142c0cc2610c8827b62f2937469217cb4ff9042ad81000159663c726d1d723fa73279da650b08cb88d4189c6b453d343c380a04f9c5169e5a87754f44a941bc56c3174c6d622d5ba3162a31603328cdeb39cf72b22869cc728c817b2037e1896910cb445ecc190e60418cc3b41a48c97925938a47b7b340348c970545ffa579a40995230a4d724bfdf989e44443120971ced72894f852d09a3517a24be3a3b18b8e002c12330b913bc91693f3275652905a02060b5772aa5b5dc439f377fcb898fca2753a94c902ca4a8808459fb18b9e067743263b1dd03204e184a2e9995efb0313542087905c48de819caf8a669dbab9fe89cc7e87b7ff52a7e340cae17b32db39faf44c230435b853c798535c6b93c99ff75579a573a8842833ba37d8b1774e59616b9c174b4a0703eebbab5098a45446a93034ba66088e7c4b75e17bcf3d2560f3843d3279752f6cf40b97f10eb0226d59227e55e78e31b12b31b2f897797270d0cb35147b815f8ab81d9f1a59b2334d4346fd507393aca6e6fe2a0bc24afdf07c622c929076b747f975f13c2b3509a78cdacca90ab957a2bcc8edbcc98d17cc550708375bb7d2995d9e99214dc92fc9364e0e5566f73487c2b6dff96632392a94191c5f17c803166a918488d4aaa301026a7beb797bf3077313975e9c3c37eec97666312d22b8444fc11ba042f26251bc8f92116e750f352c5eb440e0ee49e92690fa1c1a70e70b40b2044fc629d356a98353818dcd6b379176538e40d734b5f398375757888b1773693ebc10f0013b2f20fc61a0bef53b3b08c707e4849ae385240a9626e2652f3c0898bfc847b384a458a84bf99c147fb1f46443a64d149b671a65d8017ab259887e000a4273b380a9abe7413289b2a456516720c4df68c99e0d0a7aa756d715a7899471f83eb1c81558de2a3ba310889a5c0ccf898431ca753656c9625b14a61d7b8da5b120941364b5aa76cc9206754c91372a2ebd955b957755b008153c8c7ea851e08f6a36f9916e5dbc18dabced6f3aaf9cb99083065fdb561cb657ffab3301f6c19db974873f60093458b4db75f9bb442625c3653339281b8bc1224a98a05b7ec942a7d03b4523bb9677308da763c6152baa22786a057868cc2306da44e5c0cbea1347a5e261e206c6d95b6cac7bca61f95cd91ccae9513795fd31cf6a582cdeb6ad0282094988f48791923b6807528423c20219fa951f841cdabb30534579b6e7c38471105b64244f8e74a3d2174c25c0225a69068bc593aa3b5b3c758e6e699b05c3331ab452c9aaedf487414b414a42c1d32f1315ba1cede5148c2fb3bb52819e507913f92c4c73a2431b24f03931a622b7e1ea0a068cab2efb66ffa6ab5c560a9a4091b74284cfe1537687bbbec11ac5149918b143cbc4715132ab956e8bb05fa8639c346a12b796d970813e5cc14fb4e066c88a35105b5a63a12142549ba95fba613b1f51073e617787b55323752efbc4e58d25ff20c68f7cc178cd5cf2fe3bba34983218134f930281c00b2d7025178f661cbb0b403bbbb9ed477c6f7353a96b595e8c0221a443f3b1cb2eb1e9d01a281976cb65c462145b1198c31d8f8624857b1e0f441b5b7438a9ac3817b3a5e372b61ab1a9341148d42a9b3c59dfb3c8e4e6887bb1361de4b9824c78e579721bb2c8aa758204493c050ca6aa1d305a143150250b9e61201e207050da7aa8ce3cf2d3618b022527536a5a37833dffb395755bdd5043c06fb83d5935009189c6061b1c96a304bf3847c6c19591c918813312f41041566acef3884f9f6c2bdac25741584bd365131c08c92eb6578576db4623b77962d7af1cbdc8c4a52683497c7068d964f7563c2f883113e6c249d6436455a50e533a4403110801ba73c169c9a65cbdfc87962523f10bc4a1a241739c7772ab243a5175363c0635f16bc4057492a53149acb9c04a495422b0c66e4bbef8a90494b37db4a4e0937bd7b4a9e7a6b3cb6258ab58a38d1878b25777e80e019ad0305aa97c2af40b161c332fc0307384a9681f540ac3aa35fe4316c7b1486fa11a5f4699264a0eae75167595099072d2d9792003824e44295020a9f6e80665886a1ce446b20bb825c5cc139cabdbae4614cbc2a775ca2e91718b7e07ecf3a72c858af88758f1e12273d2bc6a1d50cac6bb37b1ca0ddd6af6938126224311fd9b9542a4abd6ccca224875cd1837464406332115390c7b02a4b54798020471483a5c5fca0974a58327bf839eacc2f421a58c41876d9a582b5ec57a3244d594c85e8e4a609cacced900aaea811419a3e948b0aadf0a543e63ec0a34854f56a70f37845ea1615486e069a960a17bfc163ad4573c954e65fa0d1cb4da8537d42b6f8839611a40a664a73e19913dcf21a815c10b599b8ca246e6ce98c6db61df7ab775c335002d7bcd395694f9a1c21527c52c40e18872cbc982ad8ab11e6610da1b107fc0c1c87cb4f3551817efcc2e99b8db8e722623b022e4b108a84b77d335debb3ca83327c3523354b8b0c8b439321a8b4feb4492ec749d1fc817789b928b27bf5e3c411860006cc656db027502cbcf519c7456256cefb1680532f1cd93e93396e9154b0e969c0045786d50ccfd323c1601585728c0c737ab5465a3dbbe1a30c0a9d9ee2182ef18bd9c07368b8a6b97697fd5188bf885931f1ac64532361e172797a60f9a4043a7a9d0c9ccdf1b348703a6dec5b073b08623568af8f998d3884190c549250538890daacb0163540d01bd8503c71b34c3a52137c5ba8ce661619241c730a8aa12832d3733aff6f7f2e3f6ba886b0366e3ffa438692da3064bb249ffd5c0a502b4db714b010725832b04f44889dd1689020f4f9053e8209c635bf85df27f82874001079cc74168084e8c4f9fd5d88d4bf1771a7a2941e7d291089980acda69eb101e4 +ciphertext: 229e98f084f616e19c5fc106984d25b29288b0fb9a8445dcdcb9161599c114487ee0cca0961575ace0ec2db778d7c113373e64bf2d942b907d51426689ae77f9d2fef05837b484e5f433cc3a6458323e07635f56a1c01d66fb7432fff24c5dcf48e46f288de946c96fc6fe7038599eaf15df2df17dcd38edf7f2898bbc4ed572a90c95b73e8131fb1f154232699fb1ce28275e77e72f6eef439691e4f845a68ea002b248160f3dd8c6935529a348e230e0bcb1f33d2992987c23e5aeb555296098cd759e031d370bac6c217f18c3b3f7580ef073fae428c7ff42098ae4b8388e1c130b6007b7ea0582b71c95a11b1e1684b48a59e0a7e6cf723e17eddbbfb36f4a1c4245fecd3cb480bf54586bc81b154e9525683ace2fc05b3364347ee749defa238862e96d8aa4444e18261183fc2713e132a36b4b8b79b1ae07050b1bc11bd67dd344230e41991927e1fc225868fc906f85332c48a43f0f5fadbc1c322da4c8a66efee530e8bebee43f14a4707c895955e584d3bcc460f357ffc08f7e72b1744009ee7c67180fbf7a27f9791ae2ab1436d82463d3cf63846630ca5fad6e1c169bfd970fd189b4cec3367ebffcf9195b1a940ca1b91d64b9e3c01ca3020a5610c7821cc5e6fdadbc6f522c72fa6882e89d96ffd68a939edd31a199c105f9305d14b34f16706a1a17cbf16a85426ed3f53cd7f09dcf8bb3d7732d40aec1c4e860139bb865cc91638e8f03cef55bf54c451650b7cd13fb15640011db203b601c80b562eed03186b5e23e31255853b1a40ec6fa40e17320cdfc874761a26ac6dcdee0eaabf71802973e707c7902be5bfd23cfc8614e667c595f00c6017aa3e4f77d7920f6f4e6e121fd8b80dcd76fe79df9ff53192de8674c53470d9e1d8d86e15e7449f65f462418ce6ca6024e310879467b856c98cd1302780da5e06fbbc6e8f4e0013f841a1f79f4d1baccf2ac1f1244f042c97c20892e802168f9dbca921bdf290a99ee11b05b80177be97d39810b25a3fc42d3008b4b5fe6a194301cbc1d6546dc358801f68eaba5af70defffa4306aa98be6c8827668e8e0483a108f9096aadeb07505338cda9a6e99ff15310516c4dc8b127ea38e88272c17504d47af6a7dc8a320f3031bf83a33636aafbadc630e69e521ccea754878e717ff011ad27148bd2ec0688cfff7daf2b2bcc96f571d03ab614948655fc0fcb0f177daa91ee78b04762df611811e64e34eecc62ff0a79c8c06c5d69d31ac1f7d51cd9992a6401a074469f1504cac944ebafd5cc777eb88d07a831c3fd0ff1b83f2396f62130ab49732e90423cecd9648912c9c9da8179d2858aeded411cb309465f3f25bb18895f9f04914f714a530628ba6aecbead4bd59527fe7d1d9d75b6ece79407a9282f76be9dcc981cdae7089d117159383abb4fe2551d1c4c6a060a22db9cc980bf7915d769a2502074b5b13b75c593f0551b0faa32cbc58732a6f62a7f79e4eb315a20002e8b16365aa3d984cf161c7e5f53342d5aa2285d7d3c8d0e7ed06476676226f93aa5da4607f38f68de9fd7b64112d19a3be49b70cf39d759908e13712c1f271a63fddf30a37fd034b4af2086487e21056e341f0408b60693d8994fcbbd236e8961ad28201cc870690b5028ec89560105a22734de95b4b9e363136f05a100ab594dd2738bf02dd8b879a2eb3a3fdf6f83bcd7bc7e62988c6134061944bb10abdaf3f2f053819be77b21074d67c1e7208750969a50b50f3eab2c474c6a65b26b7d64eb71d44b426c11c90fed7d28977262bdab2ff829bde4063034053d69d7996e0e4c3fac6b508e3168bdb40d55a92b8958004de843eb4e70feb4aeb0b68580af940edeccb091ba0199480ed346f07e855fd27ad3ef397ea42b2fc8a759342035f6259999d107e3d39ffe68a51fcaddb097b0f5ae1c679550eb0bfb5b731052377fa6089933ad50d4fc476d6395a94fa22ba54f81905ad8c6d90820e2759b4c1a073201785f18c84830bf915ad2381d0906b205dd12d5c91ad0e9710970a54fa4f2410115b2b127c179c8b35e3e9bb4075380e83a93012101da93b8c762404aacd9addfa3cf570ff7ab974fcd8d4e8d8baeab08cfedb2bee948f2e25fc8f1ab687e99a3f980ae0e6b5ef542dc2fd3facc3853afc01195d9eaca6efcf6917736cb33579206904f40ed2279725ff26a6a0b58403e1b3f44063f77b5fecf469b61b5e906769f39b3974fd2deb4b667c2ebf428385307ce5629eb1e +result: fail +shared_secret: + +# Ciphertext too long +private_key: f340a0afe4613b8341c58acb10ec6bf1f90c4b4b5fbe050370d715c73b7206825d73e898fef8425e91972efacdd90a63000acd77628b257b7e3aeb8d8dd44d235a5a6532a70130a51cd719648c2eaf9608606a7ed9eb87bd1c7cf6605fb2c024a3b24a77c12c4aa091bdb74ff107c07c01b6c4a72e2bb6838d7c8026995f63f6309b86a67462bce6b101b1c62a24706b17c8122e884fc084bf9d0c42b4fa87bd2bcafe56afa6171b2c537710d07b1d9662b1b81c82c9461b223537b3a8b4b203608a941978bf1ea6c951199a6f9c92c9b4693bac8dee632aa46b6122013e94e143d7e8b76fd871e558b80a0560dcfa77226aaeda825c79cc06f869654e8147ecfa5ab6540d1c986141d9682f7a3342ca16aea29e0b583cfcbb439c4312a5cbbaa213784c786f49487e61b811abc667c6a2229ab01bc0a63ff58942f330aedf9330e9bab2a5d08bedb22e94a4679e82a6fda0be63026ec33ba92927189d4546804651b09869c3891f534200f616317f2653e9c360c8ea754c9710d5c036824ab591363f6b716345ba269f704352e820545cb862368cf67211b96854df91374c52a95c4b23a8ab3fe992ae0cf58606710c03bac429a5c16262c7ab910a4da635c9678cdb7341be3c444d98a6c59716926131b2b4179a0a720f2c99d0dca2a7664fff7467b6423d5a2a0502996834fb878641c4bfbac902733cf65a19d4833b5796cfa673ab2b65a0e9243e70c04b72884a4f3c815272518d99c295e554d87a089cf83a5e423972fc1ec14b016f803ff3627152491a239b883da2c04bb3a4b0e817d5c3260e021de0b1c831678bae3447f7f6a540d7c756475e423b92f9a39d3134174f954a7e087593910fb40307702bceb9e127963c742243b5b61aaffd64cf561792da35c82e046a646405dffc8ba95078f0025c20158d7cb49ec73289b74190240857b906b94710bc4a4b8141f51fdf9893a8d166cd7c4bc0d487d7823f34f1bbd651b3c3559a523b6e35c894e879902c4b4f6e16283ff4307e1c6a18daba2a20b1e45c93cee02ba2ec34ba00766a408022b78e469734a7c68fee8cb284b34f622a997e3ace67731b057a8bfe0b4da989a2fdb44778d000cdbb4371ea1d1731860361754120504007211f385b5775a0648178ffe39347329bc9f841d1ea497031aa5e6c3a95a8565e986836b4c731a711adb86ddbf822dd0429f304c7a55c6a99f3319190cd3a5a50bbd050bdc0922be1757662066a056a91fb9edbb7c28c946e2c9b534d53134431c78f74046fd771e51c6043ec6bce51a3f21aa49a5b6355059935d8392c05cd0318a6fcd511651baf4966785391067d2948fc394ad4c56b701b65ad4901c29bc329a77556219a4336608c8c4d1bc0686fd95138082ead62aca3ba15e40302b24209cdb94bfef55c25f3a0b7e280b0eb169505005a39b3b9d33659e86bc0239f57e5a2e3b62f010782b6c0546817b47ea136842334b865479ae175bc55b101c1b3a804a758253f58c5a3268c4aa1e37d5917a5ba89ccf1a592e2720e43a7b92401cf1b006786d2ad65914e29b2949d08744f879e1df75b8c3138590202d2d01f16527a42f58138c47064912b9f703998ab4d8e0984918520c0345a858c2ca8313f48d95e147790c4c794ac6845ada9a6e4f4c48870089395520491bae25491e5a487fd317a8c64a7e2d63e70d3969d3a5fa6daaf999662b444cba11b594ff66ce7a9655aec35b854c9071369bb35429f705ef224a3b00a1ab2ca4fc043875a951afe7860e4e601f47cb4e6301f3f003621b729cec0a5fb070e7d382327e0b66e6a3dcaea3702395f474b6fe25a4b5b461b762089688a6344191f94b941506a95fbb26ac4a2ade4a3871ab92a14913eea4290bca5442ae994e0fb148325c02443be90baad3e239046b76c73eb872da77d6022773737863540bfe33a67af55100ef8693a08393bc44a0474ca5e956c92a4017729897c659e9d0b70ce3b86d2aa4f9e004403838895a7640a24654628c4576539f5990bc774cfa08b5b69672933213012e028be4396e2618393084374508b2cf217863c8bfb2c3dc3ac1ce6c6cbc8c89d6689ac2cdb314ec6605fa060abc0272a29076eea0fb22498547ba600c2acdc895a61f70266955efd272e0db94e3082404f4178dfd56e03705ec5bb1efebcacc0589ec97279a0b7b831e6949585208f3827136220c11c9712cb32b9249161e3312f95b55b246671966c2af7a4044b7bb9186e3482090fb818e71cc7a15ac8f664881a0abb9bf726d596432124ba84908d802b1ff4d769ccec3bff602cef2b6a38a649d3c997d6743866625368747fc689622e55970b079ee4ba2ebddb7df331856e3a49663a058b978ac7b865322587e51525400b624855153357aa61bc04cec356c3f26168c37dd0e80eeef92480f116bc82a8ea662090ec4244235f9692b3350b67f31ac4c33ba9b5b52a41f3a0206485978498a27179170b859402bad6721e06d77f3fc5408389ca4194198815b8aae06b6fc69381d219ba7c8db10898d8255503d0661a761a3622871a8456d386aded050413024b324aaf3dcc0fea223e3ef84ed4514841fb8d0aa41e232728212193778983a5d4c1b7a0767439b8eb8c899f3ca782a395a8a9054e0a864d37b03b556b75920fc0007c10b527f39a7180085ae5a02964f20ccabc38f139ba903c4c8110410e257f3390c645b69e1a0498ba363eb8c34a0a7aaf52b3384f5c61a03a39a8d4717d758dbde318c3c3212214380cea542eab46a4acb7bcc04d3710395d111b0ed53578d88044a52afb8040a4b049cf5c79d4a41254534bb81a2d6d3abe5b18bdc61504ba8c7e2e46c0f00aacbd3c0e8fda50c7f0321dd95377a59eba9926ddf347afc644841a7d45d48eff3729415ca1a012445c183105fbb7165c6182e11b65072ac825787b0442a0687eea885541bb4e14382600ab4ff1ccb7ac14cfa7ba596efc8733aa20c0202cda6383918690ffb657e7c5b05412abc7a7ad5190a0afe11b2dfbab36bbc0b8f05d32b32ac387116f545d36aa8f37022d2c228191193ea698329c26cca3667bd128cd7840a1358322a853c8549884d9a193416c9ebb328b064b1ecc2257f998982b4709f6e020c55c8aed36125d7acf1a94bb2f592f07812fce1509e1f408493339d1827f39b5041526c37fa996d6f2a8a67a1660b01ce70c48ccd814d7009f0cb8087824607f506cca143efec577a38572ea6262b11a966215add7c0be1cb058565475c02a62ceb6a9376b92d76b1051224dc1013b3291c6723c155489966ecc93674a06ced2ad8dd1cad5cc50b08264efb4946ce1028bd1b486d546c3249a1139643afaa2a5441bdf9b85290a0bc3f830822b8778879ae8197d1114be7610830efac9114632d09669eaecb1e8e82da35943894065196ab67083059cda9b545838f8556141e363a0d73bb52b8539a7c518a10887e5359bab741b59a64a441a0cd88b3c4655844244c54b2dc59535ba617f1c0b4eebec87786306adb790ce827368873233d7688ae15652b8669dc91e7d64174435b8199a0012596b8b1c022e39ac46d67978909c8b6145ade0390b80180989319886c6a3817be6fb3cec660e026096d0b3777e30b29269227f7891e2e99886b0269e0b20c562add0a664255bb0c684217b1998e6459d55b9c503e8ad9d932cf1fa1076c6a07fb17d61958e10b37d8d87632469cee72b88c3202a2b6769caf43b9dd5c37e34a87964a8dac425f2ba61edc12c20f81cddf3c3b1aca87fb08191f96199142a30505ac5d417c40aaaf3e72c38467f63a8432d352eb61c05c63b8501d289655401de848a6545543ae690a0b1a9b97c828da66eb16386ad0784f2989033fa82c6d130e753c5588a7928760fc2c675a01628f558455c157fc2d07cf9289264816221dc7a09f8b91efbcc85013980dc131c2166e446be7558abc4763d39c78d6ce64516dabc00e092c3a1364dea46211045f4ac734a400d47ccad611277f03842526194583ac5cca154e5c18d54911b5cb8590a8ab48d1a9248977fd70c92aaf32fb2dc92c5a44c8d34733c289b99492137e340e89c09100ab374b2840950501eb934eeb8460a017267c6b1b78755ba46a4bc28a74d870af60bb41700cdbf20266053c88ee686698c78f328242a8b22b08b9e15875e75a968a4e7b6f663c0a9750fa0a9067f55a0bdc52bcde14b227ac63ed1500f97125afa0dff88b7d727c1ebfa5472a61fba905362f1caf40677c9f72007468a3538541c08b67479b30354cf21d608c3292b25c9b3cd70466e6baedda28cf27c0711453b139302ac1a3ad4689929557601d5b95d7e188283b21bd5c465e99f5e47e6a9816b3b7099a10c1270eff15c8ed01837ac6f22b1c58ee59e4c7cbe02f3624a23d3993b09e234fbea9f31442ceb19fa2cc61d85b3883547ca863f3d7c4081ac6cd13109b30f5aa1ac8acef5c413 +ciphertext: 4f19d49369dfad406fd772df298efdee51bf15adf72d4e773d851ab7d07a06bf5856f5da77843f0c3db926ffb63edc0836b593b12d7b5f72b938fc363fe2021339d5f3b61dd866c9745ebf0596335c92b0d901993db87dd565690460e2ef74440327be7428d311d65532935b266a02416cb0a167405c7e69d247eecbb4b8cbe74f234e8bc721074a51e564c612bb66b0f95764d5b74a60bcca3ac7948d8a106c6d11b764dd789ec874f35ff161cf1c9fedd2d3181a05ee0883b624cde0eab9078728260f49b003164887f8e03110ad74fe97cf66248b1642ba2adb5214e6d8b34332ac09db6fafa0ba19a4a40056f9b469962b57f4513081258e14238e4a5f91742488fe7cd07b7edb6b4f46a31284a41b4f797845db1709f2db3ee4454c2af3fe39c23f56eb4701019a14cbacd6b387804a34008d0867275322a5c661e7d9f3b5f953189202c67b61b065212e4da00763d9a15fd3ede0f0063362df7b25bdb5ebe33f9230ccc3da073820524557cb3a917f3aa809ae4d22bc0f87166d83a141716f0a138793a045bb1f0119eea8efc3cc4baf565671c730d3d5faac9f7dd2abcde8046b10075df11f191c2a936fdfa1838d68e4f1f138b663652af452e1c8e2309ab6e001e41c85950073de84f7304edd09e435ae34317d451eb4396efdf09920fa9cd5725915f6220121c8c01c4b7abf41685b34d8f3a849936188efc4ed26b15a8124f39d200f513e1f78d647c0daae5dea9152bccfc10203b2c7f93cefa940bf6478cf29cc845074df56b21b50884d47f81aa6269cea1a7501c04686f920af4cd76ca1f74e6ad172ccb83e869b77b459abc21264b76b6c8f739d30834d0802f9bc208de6148c26af646a3dddedee27343b8273f91da8749ea596f4e810fab0a052e9d4046d57ab77e5db342098891d176ed7d90d6a6b9610aa849331543cfab461da067c3d16ebecdcff00405df086157139bf625ad663c3b86795c783e0f3fc791423fc7cb57cedffba416621f5f3ef9a1818498dc855b6fd4aeaf5ed6fb65d5a656df77b731721861e4b7d58708d3d5ddbb9165f12768b3159d466c24f76dd2330668fe6677c776fc3a3905aa8336fd23e0dc4b4428bed5aa48778ea544a3712b98cd6a0f400780e6acfdc0b17c74939c8a990ab23da5214964fd175fcbe7ee8e4117ec22ca78c18cbf127c229f34351928d786d174c1a1fb4386f4cef4739f7496839b9ea47a6f988282ea1038cc844fc01d1e84036c8acf1fe4b21441ffbacf2e12ea5421c841dc2f19e3e27f7cbaa9103502b1066b79be9e51be2cea2a11fe09d5b4b119374a9981efaacf5dceb8af1a59aada3e3f7b33ba07303dd666f7e07e374f61c802f4b5ae77ead6a52e08fe711a38915b4e74fedf5597892204142f9291cb2e14d19480cf630c59214b6ccbd556aa2766670556346e3e49f7e979042c26c560713c5b4aa393b37ff7d3cac9eb6f40a3ee188457447913de0e7021f7b6c9d2d3c279af2ced577a30b2de153ad3cb9e295c6fd614623b968a5569c7e7bc89199b69996d3809551e9d402e9745489bdbea7fa0cfc80690c73d6e81cdf859dd4acd1c43b848eceac521d59c4b46a507dbb18f38d35ca2cf808c3579918a28a485f7d2ca9d094e00ccc1491b57f05de6b9dad6d038246718cfc57bf317c3ccaa1bc46aff87a4cb007f52cfeeb037a72299e4b5d903a1c25c04e2dfa41838437779ca97516f5163e5d26a794ecf2ce09a316d24029011c50e914eca01e21885a574e6eadae590fa0be1543f5b6d467a54bf8d1d49f03fbf99b2b16d8118aaec1126f809100d9f487b36365975950ba0b5ab538f616eebc82c3e335c5450949a6bbe653b6447ed86712d6a47b81de3655b7188028e262f9566efd5d9707c2df0d83f44a84087973e64f0d488d6b2eaf988d704bbb3b4806eed4c654aa1f565e66797511a5f79cd15cf347ce77630632512b5eb04e7e76eadb4e2d537ea3824ba34aa8f137dda9219ccdabb4d91d5db685be41242612c92890cb0208dac075a874c65b1e9c4a50ba878a81c726348de4ae9f99fe4579ce8ab2cd0932665bbbf5208e804a47d9583b1ef6ecd9e424066fee1b43319ed97e60c5e2438ab924883cb6e3b79e9b7c5af7dfd5bf1a871daafcefedac2c9a028112b47300139f8caf35dbf46b0c5b4bda607441ab6df4cff7b1f67c4d46019d8cf44ce21e3f1e66abe0e4bd853394698de620530e29d182beddca821194529f7c7a +result: fail +shared_secret: + +# Ciphertext too long +private_key: 35a864584430e520c9098125fd91084af53a56a02f5f225e63a1ae59f601642257549449a211852ed83ee611c7e7306a36760d4908bc6d6524053503446357092439ef566eebb949ad83554a2c6621b9b8c1b07a02f666ea25986aab7d4da39e823b06f62ca9fac440445b0e89c93a88413cb7e6483ad731e649279a5647fd0c86bde189077a66841925eb37c0b1f068ea0b519e91514560b7f230b4d8b31053e3cd931ba6516caa21696313726c67fb34e6f1777431809f970595b0c811935310931a4efa7574fb79d0babaf213cbb732c1c0a6199d5086edc606eaba3065da1ed8e73aae413b5f29ac24825e5cd43538d63f0fec982031759723b7f988c498152f52d9b01bc7917db705bce6c1340240b94c7428acc517b73574c610bb5614cca582ee315ed8294074e1b21170447de03a38e09a95167c5a94307c527dbf3c5773ab105cccc2789047023195260c4a677217cf27ae8433cdb111865a019b1907c915ac041ed5b91a54c9a02597eb2b0466eb204a381e2fd3072c44467e6192a465acd7849d13ec72b769132bb78e7915a8015b5f2f4b5a8b64cbfffa133822bf1e670193eba854e7cc9115c259967545896862baa2491156d2ba5cf00b4bb7787ec54084d8ecbcacfb23292402110a7c24a58d65d06da152a443e545a7d56fe0cb53d0e6189bab948c22b5f02859de96c240bcad241020b73c45cef2638b69a9b1d2af758b059d9a9488873b9a91028a627fac9ca8078a54dd3152d4b96ab8cb29e6859881f959f6cb250ae390c8eb0870712ec0c98ad1e217a29ab6258c235914275fec07f8a74660f5a6f7080d8bea704f30330556b7d2c17ef917a99a18cea6686767733875b696a3e419f42a5996c1112c23ae72023ac2ba6c7e6250b8e4acad2505c9c902777726f4965e2a4bb685e7aa0d66353dbb7780da2178881643049272e94f52109ef0d211dd8b164d1053f6c15ec2939a3aa04ca1693117d94f2fdc011d943a0f10227fe46883c22b929cbf2ffc4f87e42445dc7d7e89592ce29084f2a8f8b3227bd765f6c2774a96890f6750680b8b93a967dcf42982ab46051721b1703c73a738e64044f400a2d53c57dda4359f093d953007329952f3327321d05a2ef445c3f57a29f437841bc2930a80c494c95bc2c3b27cac7055a1e93b5f70b515128636d532a82a6a8ec7a5b7249a80952a6577abc91f923434b503f8dbc0c15b7324c6ca5f60c1d69231dc8b8b608b8e5ad2470ecabeb5087ccb8151b00b242ec2140fec182676c0ee6c981e172f3638b501356db4fa9276788dfc7aa328763c2c1839213cc0335c92961972d0a908c4116034663585ec614f97cb45c3c336c07637f23ee1c44deb5b2ea20b9530c3308017ab38a9b1d4731600a4a26ce7074221a89ce33bbf32877623b2814b1532bbb1747020e5aa3b89c1bb977c5b837a8354f6156890a6e9cc8fd2aba9fd0a6db946ad0203b0e6da2f2b5031b2acb38fecab06833edf3c93102469893cc23c749447f6bb36b448c848561cb53d738a9956e74f4291b14a89537ef78f9b4cb7d85a6405147c660a2e5a92786c0b1575304e545c12be3220eafc423d384bea461b1263bebe4bbafcf08ee46c48a7812ac34a9dc3725c03a007a3f95ccc8157973b811f4714d3db5764881da6103c741b6d4b071b0836a93cd5c903847683007d67b9992f787d548c5ae9297c30908661995afa053438447313c081fa5517aeb4647dc46e9dd70e118c97606ac3f5a760dd742cb9f50dd0d17c03089ddc0b421444c17381bd2292bbff1c936bb03040d0b94650846b4541efc695598bcbcfa30b2a6cc81fda3fbcaa19340b4639291c1a60a22ce1cb0aa514e0ec7a0da23249644059c742837641689c703763379074a9a6fa60ed2c6cca9870020514d695c89ee5a30166a6fe19907ce39d5331c675062c4d166800cd8696c7418975462e689573046805a628ef833a4050b93dc3bbdc85430130680fe53770a590874ab18a98919ecc850ccc97d96b931d45b4619a00188cbcb4035031842b810c51be270f514c20be6c6328010af5f82eb4ba8aab652a05132807b298343319352805043aa190f61c0bc59afcf5ca5752b95961b3a46a1f15b38b25277d01463d16c850915c6f40f004d8389d26035d84f36ac0824cacc911566687cf1c8275b6a0fe7372811a7ccd1484edf8c298fa95a42663eff70e2b54bee412337b13257425130b73ac4d306c4d8076d8a1019cb56e4b390ab5a7939b885ed16cbb0f94171b7aa4b4986a0bb47045f163f1635ecc6a255af46e03058ce2db308bd705e0f84551e839e938490522351c9b904e76c4c632bd0581312ef1c1fc44a35c345a55fbce416bcbc0655d15e66eef3418883a490fd922c5192dde070cb101253de20fb73151ba007ee1876e9f9b249772b021e53eede94462a59c61ea633f262fe32a222a36c8103826b7127187386ba6604074030c10a0861fe7c7a674a04752aaa1505c04c27514a2a06811707796a8a116c651757404d54a3c78b0376533a12c0c1647b5c9b3735331cb1ee13c716bc2b911b86a3ca5211124c2bb0a8c4c8ca3867493670490208fc3e90860b350b8c029f99849b608269d058538985f7e40928f4287f6d18d1e42acd4a9541a4511154c5c6d274bd387877142c3f0e33182ba6df5621a7d373656a3484913bf0ba07a8c570055483233e189d743c2edd3473fbc1ecce17f97f102c97a4d26e270f18b30b6fcc9b925032383291a1a2e5ed0185af22cc3696b5c2231eceb6e553b7d4bb16e7543c8e2520350a430610913574227db246393bc0b87c98ec9795a0cbbb3d9e876e2441560161d0931c57333a644376aaf3c2c3b07844c919dd678a8ce08bea680073870aec47ca05f534a11bbabd3458b15634306107eb0551f25f78f068cc7146005bca9a5c5d28cf38b263eb37eea506c4968b635254a34947dfb444bf6c970f6414f0d14b4df3c0118578ec205737d550e9f5b1ec6d1ba6a2517e41692e00c97a9a83aebf10f0584749ae4ca5bf467637075530b51e8c7807223c82b9488a08c1986c7b5cd659de882ca70b99b5545c5d6a439430bb459d48dc82cb88c98596e6a4d0aba8788c9b91a6c17e6d4b561a8909bb91136b94c598aa18f068d80e96a1ee1af1f7018572a4cc8b2a8cd3a2d2b1a9b3155ad4d7b2979d800a6f64044e86fd0f77d24daa9982706df0b71c1f5a7ae8749195961c5a457602a79a2499e1b97bf13200ead439b009bbd19713a5ef674fea65200548d1df487a728ca21db3911d76cc9e30e69f09280285244bc5a4166cd537943f8587b181175e2118034d5bd984b35c4e828efc82f2af2c82aa0898787924ff34fc4718a9aa9284bfc9912b57277c956a2c44262e7069d2a7472b49d7879cd1c0c35b643bbe1d52226190e45180c44686af51a88caf7484f02812c45aaa6bc9203c19bd09462445968df8236d300191b651ba72715eea97e1d91a11a681a0fe19e9f24c62b65679d96392d960e2ee3c71658a133e9405cc9c884420de294acd0b8ca6d7bb14b892b0ce4257589a003202154a400533bb848dca299f4a670509047a886d390351ef32952a7779c833057b0049aa0b9dbc8cb9e657c3a42cf48bb92dad276343113a1161b154292967596de6886e0a0766869376a721ded479778e281cd281b268222c0d10472c5b710335d21300c27e1ce61c0b114702a9193c44337128e213f38eb9144b4159ee737335ba2c74849c49a6f4de929ffdabfd9db16196a0b81cc85dbfa0683705924e04f7194c5915a605ff26a700cba2161ac1720a6cef8333af2adb78c8a57f5be2ae41846b3b123bb74d9ca6aaf8a023be38df17cc530bb429dba718f41aafd771f2e15c102f31bd4e713be7bcc8a0b34d3b151a1340698b8331776b2207a4a7868264c8244d08893b7ac04288a04189502ac06095dfa2b6d245c6fc5493a0463d99956b9cac9b9da828a467e4bc17bfd348cf26144142a8e6513b8b032ce81e23b5b5b5a855192eb1342b68a4316899fa7e0947f46aea611ad35966faa5a914e3b5f1da5514dc258bfa8025e79a524fc831c17018ae043a74603f8bb64f31512bd120a2879c713489d12b2aebb4283312966e27780eb091df2e4220187977fe54c2086403d059bc2b1a90a5235dd1374b564816d621a79b8bc2e39bd792b5032e36100e46e610795a845665f119ca1cc82c1b52203564b30701e598a4518f3295ed66ba7718998c41e76987e856cc5e310ce7f89a1b5e8b06464ce4658291eb0838b3a0127f054533cc75385b4de0c0f82d76221c69b7ac687f67b75d9a56f21e8a9ed756e5b3532f16b1e26f65550bd0502d3fd313cb9ddc6df4b783980fe3f5d09622c2f2040e4dccde4f1bd0417926fe92ec3bce95e68215520dd1f969ef07cc420b6164d801e28d6c5705a895afc84a00ebe074cb5b7b3895ae6 +ciphertext: 20369b4c45829dfa00e7750ce14d559660419d37b57d0ac1537e0a3950758f218fff19145047d46c07d9b03172d5c70dc0549bb5fe731c5a70e45ff742de183fcda935e9cf42e75dccdeebdbfb8e7636dafdd70d3184b29e8f779cfd00eaee9a1a5b9cba50c37576baf2b8038a99d53b9b4e74e7ee60cbea2198332b35e8812dde7482568022e4050565f8fc44dff7987c76d232fafc209ceaecb6fcd9f94c886196f8a17a6fb2f0b781371c83db71ee482d41e04dff1666139f8c4cb5c5f5dc9ae3a4991bc906649bd11d0bbb02ccf54098819f39e443f6de68de935eb8168c903eaf6424ebdfa531f2210ee4497a245657c96391a91278733e3ad1d055c6272bc4239998d9db21b3935e152bf01e5f9208df66280aa68ac1ec19bf21a602f229fa1a3550dc79a09b7d3069cba34b8b6116a56c897fc2ba95579070c80908292c9053c7b8bb17207b59972da9dcbc967aa10c95f64ef2321826a6cfa691a429bfeccd299bb3f3cb27de9808c55cd150ee5ffd31231c894f25b737b568c0c08e4f5ba9f3f27c59bf5b9c6161229ad5a659449a3e563133df544ef788706fa97213697eded9fb037ab4567abe600ef9e0ef1b966b033e85f76cd0c31be0a4c427fbba320f3534c79d8be66a0206c588d387f0f6f5a68f9096e5fdb990e833911f1a69be4dad021f1c427912a862086ad3fc27c4018bf714b038d1c63775375b7a0d82e73a795f12485f65d294a64d98c6f06e9de2187b056896c60fe1dc72ad78e871e094b48cf5c90eddc51ae7847ed87da43ee3283afa88b1cdfa36b905ac7379b8dffdfd1dad32120e998e562a203fa2a5d5d22e88e4c5e72a57354dbe8b6ac19ef044ffce9cf84b3d19a434928316355027d987102dcdda032885b0304bb7f371ae9014e771c5eac0237fecd6fc6ed523ab2dd589739a7e8f8e11f46e23ef99504e17373bca6d9a225b321c597ebf43a4fcb0203b2a90d85deaa5932fe2d34ca60ecb74a07a566fea8962f37c3b7db7dcab47bf56c0332a3ec520348a2dab314d127e3b225b31bdf5b00ee18ccb5532382b37a6f0f34a8da5b0463ff31ff930fb5707bbd923767829799ab9eb0ab594e0ed5046975a1163a42ea665180eac3c6698e62cabe5290a517b37d47bca31fbc4c9fe19a73a31f8f07b0af953956149024c598b638d07220abee3b1f7658145ec8a5f376b8e5f433a84055a5a752ba47b8fb1572091933975d825518e116b1b5cffd3745e0c9c25864e7bdff744b3def4619a92ead4151ac2dcf589a9107862c79287c335efc4dd1634d2ba89dda9451fea471ca9947168039b7d41d127d69da615f1695f269ef43e1f36421d6871c28d1ae97be689137f202d6b65d7a1ca4d6e2fed802b9a9530f11b4596d42f6b442c454b2704c2a82f7f21ef4b89ae06f6d94e0db0b268fd0217d8c51e9e0129399ac8e6c2f4b2a8ef60d6b7c21d201a143fed50eef6f7f00f64853fca8569b368350fe4fbc71d2f094f52f274de8eaf0da07855fe78127134740d3fa80c479a92d4e47af37d2a9c4509629d9f9e69b0c3aee1a044bb6a19e98aca8c5c8f91d2615ad3c198e793be0d1307be4ee04652a2a7056888f473893d33a710726045761db8a72bf814f0dcfd7a53bf46b6bc73e45d5e1617c85a3a04dffdbb0bd873638f429a33f53128566f6b667c9ff6d2d5a78a43789294e9d0b363f3b535c0348fe584fedcb9a9709f02a46518b0fd0538b58f7db4f7d29dc2a35814583537dc37e2a453880f6e2d446d1932011be16734f1aec5e2d6f312c7ae5c3e3082fb754918de18099162f88acabb95a5656a9e64799ae548a78e8087d9fdb6e4001004dfec9f6f2db9140841059254ce5da8fef1ab9a34040127e37196c8719004571cfd8c1af574c69eb57fc566cdb12cff50313f86b1879f7a19510a84e0740f8efc4ce1940d6df83e584b90c73915f43f4c3d383e191e2d47d4335712de3e405dba8e9e4c270a69a5226875a6c8a62e00790e5aad63d1d95a2e42dd3c29e75dc9a8f660ecf6113a50750258bf6fb96f7e93bdeb0dae7e8fdf54214c6e434fc9da517761c41dd360d27964b317d27743df07fcc3fad1064959a1e475e246beebb431243b86e019088f42a4d51dca9f82d6e2b39dba4d2b92b5733088ed43d69f5fc31fff3af196cfe58cc63243d0177174dc6d963c085833b9d77d7b8e546d9906a42655735a5e +result: fail +shared_secret: + +# Ciphertext too long +private_key: 2d1c97a7140f3cec635243b0c7f81fabe71d5e014350193eecd26e8f70169e80473337667fa91544346de422a6b132bb7e9871aa729540771e6a48ab5feb1b1c60b65f05296f1070aa059697e29371d3bb97a3c2abeab996f670f7660b5bd32bd28310d09062ca963f09ac5320266565a3b2065a5a027c7686b5bb6e682e98ab737decabe1d36353d08588b8c51f51c9945653a9b768f4d9390e9cb3ad9183baf334dbe7a8d3d137ec4cbff30b5e59b894d04283b33071e59a1b514779f502abf92814ce2044f21ab535e08720f39c1193871c024ff46897a48562a5ca32f7c01dcad51cd946716c788012ac889a9c6f28419ef7a9408553a733933a9a9ca81ebb9817f8ced3c30aca058e4a7c9755d9680cd852a13521eeeb441c83333e625869802be6d19134a4be4ab14adf270b2484a3d6603cc574b4402ac0639971f6a949112298c05728ddd60a62cb9bd40855de611b7df7776ac9182870b57b28934f3969c40006282a5c042b0fbb640d8fa093a3a09833f52b01e4cf3c2bc0138ac9428b6b0578a901f9a623f4c799a881a54a7c02c448496600cf0b2903953882a77c47147fc78c2046e970c592ba5b50a94113149377ad3a1188959c8192d2bfa5767b4ccb3fec47182090b058770ef15877cca7206c9b0dc1232d28e005404a29d473002db16dbb17485ca14818686734014103990306e9643d7b769a9bbbf5c3816cb0b0a8d644b0dc37090cbc0d9c74bcab8dfc536cbab3bf485a12535383ff9cc7108bc3976414c5660b402864e6423070717fd70c8dc9912c7799a99226c75bfca0f3f2c279342bf881b8f30131f9977f21650b584711cec22dc30b15d6ab15684c54f854304982ad929332959a11b15ba237698b55f1c5b6bcc40ee050700479d87b395dfb60e56c9f107598fde64330d1c29e962506465602f816685254a5e4197ba89690253314b33ed2b41744d7220bb825ab5613fd0c44763bbeb2e55cac9cad21f901a113a730144abae646f378ab031119627198bb108e61f40eee268c67ea71dea7c4f578575ecb4eb971957a497f1e465fe1534a3788cfc0b60bf541763ac2a2e364a1a3f87a1315028d51c663148259115b7f544c6fc71420833f8a6c9ba1f874515a50118c3ccbd239bad169ad267179207e15a1330cb28569473544f764a81565bff99b6247101b5c7465eb4f69c3240ae7a6c4404e67516ee4174d84f49e278c36f9f268a87964e4ba837c078912f59d04e6565a23c85ff901136397e8ac3ac5e23f4dfc1f395a85bca9378e382c93307fa119359e086b1f2124db4bc3e66904c62939d1a67e9e8334d1f611446438194351a195856c9b4a84671dde306b06f5a9b1d17b2ac8277d77c916c101e4b80e00eb1d7a4114e9d02b92e56edb018b681526fd0126e0d604ea6c091a1b20d4ec201d177a48dc12737b5b1395c275b4319e0345121a96b6c26a94a8c038868cdab684bc270e9b886d70b30ba0415a9a091473161f88a2ab150a057c597928857830164c3c260dd2d318af968ea42c89e9f7083415be01f76368d623e24740e1cb5195e508b0f928401b5b85081f66d2660e8325c8f8b17e50417646c0b69c1cd2da4dcb464b759b2bbea16bfbf0809e8b21f795676f272f9dc747a65853dd56a7589260dc6c69fe12b4ff83739ff85de5f263b285520770021a254c4e9781a13851a47243f398b522c51e108250946a3a8b47820b36af316560b8ec42b4101b2e60c367c69956ba5e4b31ba8e3c93dce7c01014908e57c4d5d2113709069bfc80de593fdea8c13102b105030915f7c698047142dc437e9378555569d274647c630f74109b07e57ebe08a4a891be36017df76969ef371ec6218e39370f358a2ac1275083d07c5df10b95aaa06f8411e432538cf660f4ccbc3d6328000733e6c60571f979062b421684c0327647ed361c552a365087a931f2ad1082262cb255a2f33e101368cb6b1ef2d3284899a1b41c56bea56c73b6add13c0c6ae6300008cfee9c98f7491034d88f7ad40e54db92f9b7868d7243ee33517fe37904b71ae9696882792d67b91f74c4cd66d5104e722614655dce1c7df7c0b2f8b47ed9462d7cca4398578b38e7883767a306878d74f291ab8175494b0917ba92bf438901b39892b91324787c82a88feb031c4b2bc276588ab7255967a3b34e1bb80c16a97c2b36bf7215936867571b7ed2f92ff4f313aa376dfa766ee08383dbc047604cc564d016cf956e2fc7360178a05a8212fc2b9c792a80ebc426aae828b95b306e13776a79a8bf403c11b62ff10a1c0a51469560898640b99fe578d9f259d82a273ffa789f694a075b5f3684817ce0bacd62649463a135b40b0ffaa07178710af61f053c50eef240a5b955297b946621c7abd472111c1e61808a00c071da27cb56473cf9036e8f3c790b4c0c023306ee40075341549fe4a298e59c1587aebfe6c06796b520b645b532c625b4b865f8711a4839e87a68bce984fc352c75a60528cc8a82b440f328c771e789f2ca9cc6944b2f501950db1b6ab19cacf5adaf91b0206bab98cbad635c31cb1c1b6f570ad14c3908275e227747a1d84a01fb1faa775870a0b561f8abdb0823ea449f69b218d2969f74934a73983bfa4852537262b1d4a71de30597bc08799a7f6caa94a5cc2d8f1223cce3982393909d599284c44f41378df02652c23767a0a33ecc0ac09d527a3e6b35b5427a0bc66d5924b97232aa64dc8ee18c62f6e0b8601626d759b45415ba43a9bde0d83e09269fc4f07814ea7c4d4359b1193af2c90bee7b9ae4157b5a3962b0821b2df8c569113fe7a4913a4c6b121921438c9fb922ca8443a638579addd927b5c3562d1200b57b8ad5255d3634c0b5a78d5dab02b7e6cee2937c46d492c458abf3842c16246bbea5c66d3c25b1dc0c68b64e3ed762c92c42746b7e16b726ac879ac6a98ce825c99bb0bcdb658a0539b89ec2b53c15c765e84864711b79c495276564d98b76c0360ec0349731faca0773a9484a16b9f615ef20b44d5a5e7975cfaf4a8ff5361289383c39e944e8da31d3445d41e6bb97724f7c6b159a6ac8be151dbc4800645abb2be0936417c5d2327f64c76fd08293a3c6442514102f3663eba4097e7127dc39437a43cedd45a27f98b016489ee6b903d22b3a75e503d525ae0ea71ea33737bcfb109a7b0c9b817208a1cf92c14d956a7e424515bb6551044a54aceb9d27f6c37500b6c62c939eb96f84f98f50b33a69f9861b9255f352021596a53d8609c1440e02196d05f83b1de359b98693de7b4cc92301f8b88f01eb7bab8b486994a0f3583a29d0198bb64c2d39b986532c6101705d91374c576f95e6041d39657c9c459126aec83209691c092b403fcf371a3c324e80d650d2d932f36c7528080c32406121ba5f965528e0cc2236a39a6587548a150f49186d4c7c3ae32881b2647f09a06da6185d28f2b84ab3a9b1e26def276548f29b62192325a8147f42644345819f79c57e8ab4f3656ad38340c34593ac99072b5b173d86c089cc5781959905d65443f378c4d231b2389eb8baa9884c3dc8437abbb2b1cd097fc114272bdb21f37133ccc79a2c243328ea2fe208cc5f459bc0f2281ca656e72babb6b3599f83a97151056cac8570c8aa04d58b8e175e7c785786cbc404784e6d3419e0119deca16a4b9901f7d46342dba69d0375cbb68919f7110e374ba13641f27b88c6daa3059a9f29e139387a06828ba5025033c99780764a10ecd9bdc02258aa7b8e15a62004d48c575424cc879419368c87886587c676056619aebb497bba4f8406531e312d20773a3170a0b5b4b6d3b6ce9ac9704ce824dcb664ee586b69a57856c43a8a8825e5ea717912c2b143b91aec0507c448982089d5fb9407656e04eb82cd952aaf917b2478c09c236daceabca276a49c462e78a9c50645951df845c9d01cd863a78a870d74a535f6b6501932530ae635447bbd386c9802011ecc38611f802741c91dec976dee73b68df3c5717ba1f913b0f2d65dda20936044c3ba661ebda64795dc791e9a2741c8b4663c42725c19947866fb20139e84ac2d051aa8d788345607bda09ab76399ee0c7be24387dda0a2a3f07d78a0a8341202625ca593451bdfe4a1d81a141bb14e2eaca61c9066267b6acad89661fc88f934545065a14524c27f19598c64abd6dc5d0340912755ca92ba3414e88a7e066e64a27615973cc1534d141636e3d8c6eba63ef18752194b5ae093b90f3cba411c07bb523097703eade213f41a3699b908b44b82416539e724a4e07b9aeda3595fc97f4448706f3076e5d6ca49cb82f048311812928ab0adfcf8cfa700e58ca1e1855ecc8363c49a2d105d321f481e41766614d86ecb74cde0a0f78a6b5a2d90bfad6d4b8e7219dc388f7cd713c31c23f99147d08bd7889576b74dcc18080711a4b39cf52e72c617eacd918c35618d87fb5fb9c949d85a58 +ciphertext: 2d18c331c8e5598a431870f7b0457c77e3b7f636636704689fcef6a9c71a7af0dedec8cfc52fd3f7083e05bfe8d4517e3585ca6c65d13d0e0cf64d264a90ae40b517751573da6a795cdbda29f60401623439fc08bb9dd83d960dabc19b260855e86057b0962af41446ff0d6d782e04b87f7a69a40274c960e0a42df11ee44d0c62e06cdac3973c4d37b5b9684091a67a09eb6ced8ce18bcf6e7a38001026ae245b11942732c6847738b1ccec96f565890f27f9bc5db44fcc55051502017c55777bc4f136853491fd7925db4a657fdb4120f38aecf7f0b05e016246af5e0c7d03af434421bd2b29f66d400de67f13ae7cb5eeb31971184c40c67a25ce3e987a401f45727cab7c555a4c780c934861ec3715a328c59def0966a23ac95f2ad3970028fac06649019a30d46367d8db351888dbeb99c45abaaadf5a97cf605efe18b1c8407112dcd8535f66822c34034a3f63ab96248d3fda9ac13baa1fd5d4f99813f18e6e7fd088b2dc6aa3c781b3694b688e41f98d71991504e3a8984e189b17e7078aa0f22fe2eab068372c2a177814d86be892cd594df4c0cc29e13dee4a6e80154db854fc49c8a623ad685c3102d81ddfb706d20bed8b348916bd06caff1765ad203faa38c434f148b6fc16c05610fa50ab7b44dde4d297c9e05b6b4414f34496833b70e0f7326be868050b22e97d16a67ade6a811e0066c39484069d46fcafead50dc618b3795246ec17f0d84685a04bd5d314c4d18c6aea37cfb4f8c0b8529857056c9c3695f0e4cbbdb3a63355808a0ca78d956f095a8a0fb118d282bc6a5d8db77ffe6ab17ab174f9b3b7139207856c5c00e65ceead1ae910e890a9fc82c9d3da9924a3d7b135c81f1e46f90224c94100fc09f02cb5f32b71e5843527adb80273916aaa1d9c6c239b3b651965e0641e6ad4b82b9bbd63ad0b5932e8ffab0772879a789b50bf9a28af9e2dbeac11d959f7ac38b801ea550d9d8ddd3ef65036be35e57b64bdd4a39a09bb836056c2219974b9974d0c3d1a1d7e511333511f326280e3b55b47fac7221553fae83e5611212b06ece0d9bdc4f4a7b5e3c3a391117c09fe6377d58ac598d226af52d24127a0ce957536f5c622b84e7c2f43f4b10efc946be52d8190f30bc5b739d670d082e22982a39ff1f3ecbba585f7932999c5a45a66637dd963dc1601cf269e3aefc21e5b0f0ede12eb7568c1ec16992476dc92635b3a637048063d2c50a08cd692be18b3546324f325b35b7a039785431fe563e969b0234933d6ffc8fc29c8082ba8b0dbd68a4320b841dfc9cf4d8cfd631086abbc76315854864bb717edf10671e9f84119b6e3e4a43a5594723eb4f721f890291bcaa22ceaaf621491cc853373079ae4d1ac78e5b9258eeafeac60029cd8696af3e62134dbccb8b2dfc3071ccf0741a5a09db25aea2b13719515822180eef347f69b3983ea07cf4aabb1de3a4fa0a5069fd4f5998046af69c726aa25c7e3aee3475690783fbe353bcdfbbee17e645ddf1c678a5644a9eca5b6606969cf72159a0875727cad6c0051c1ef5f6df8a379989f736712d14e4e045b1639fefc5d815e573ee8e99965040ef85bfc34ab50c2bae38e04fdc74bccf25059a0b63bf270ebf1503e96bbc1125d6aa233576162392074e86f2307aa1f3582f104415d08b2359ee6c6e4507a9b64bb11a895ad14b9e81636ba62305b3ef568bf717ecafb030ca7f85b2b0c48d6dc4a0af177b7c7afeba45564533467f767d017aefb2cb96057abe53ab69db61b97202aca86af2e1dda83fb7227bbc3d183f7f5c2222bec32faeda904b437037273aeee936918d8eda40022da624c1237b89fbffb2b1f67a64c37d5e25d06dc401c3bbc61d0a2b25e863129d7e433e002d5d06936cd65f74b847f9e9130731c1a706922d8700b96fda457db36d369deb6472e5344a863f072e7ba727da3269a0e4a7d6c5dc635ec5617dd3bafa0886ce4574fc6defc8db9cc47de36d49e7f676aab98fa222aaaae53eb9db6a92b70fbda8a973107b664b168557272d00cb8348cf4293f3716245ffa74aa97a04582626d50e2617d003e41a22e80573085c648157527c74aaacefa522af1ca609949ed309a5db82ccf062accf05edddb59149b453115be32265bed2f6cf5beab3f91198c604e6eda4d9c2d99b2d4222567599c45746c861c818adc2788b11d9893e7539f60aef2bf41624c1ab62e07103f0f9eac6b62336af81312e81a +result: fail +shared_secret: + +# Ciphertext too long +private_key: ca1a38b3b2827fc21b87409be70093f2bc967b656073bc40a1dac7f4fa8178c2a4b7a53a07b381cdfc63e4a66b9077405c00356fda5d44144eb917040af52fd461501638b915669632e40e86e664ca4711dcc72326aa305c90b1037157e67ca0e4410d771ca1dbc560ee39cb5c8a26f58bb69e1479ae7c3d018a1829d3c1f91824233b5b1efb37f3c016b19605707849c9d80f24634646f317fa603ee203a34b111fac7546a0008c24e956f659ce1fe56c64eabf9b408ce8a26a0f06b0e22a90d2a479f4fb7def12877762c7faf41da7f1675227110fa82d2af3450c64b51922a10812bcb5959097aba1ace94b434a4dc15a27b9e77d49954da44bb21f3430c61cb0b1343875c94283233c8c20b659376fddb35da70826d1281f943714d4f5b71487b44d8046376a8759732ae40c5ad97b68239a9c62ca6b551872dd15525b30474ac644543b246d055d79458176847db4a4283d2a8598706a5928812c92bce510c7492300c11c723df763bef940f66abb50f5b5f89b8ecb8816d40c55fc1c184008ac994984c6a76740366ca6d08cf3c488b8e54bd4d33286d110654889607c171cbccfde81799533ca6909092136b1f75407fd5713cc31cc379b6379a88888d3b727412e7aa7b5ab812c09445f2f57a6c2549db2a631a8b816f8787fe5538860d2c3cca8949b7c7843a918612c17c91aa94a53bba92647d0b4a37c9aa87b62960f9222415255df15779574b86b46cf96b0800474ca87e378816a9facf7191d9721ef1522c3416f34048f627cc7c0f1c8686aa90fb9cdfb2447be2c7082861520ea889770a6d8430ed0393f7e244cf6f667b5207e019c9e1e4134cb2518b987a4a5bbacc3f13bae0c78272166803c2a04aaccee337667101cca856625d07b80c493c4db3bd6135242e895f236488f868d319109dae9165ee297419912f26c1662902f1decce788842b5035f93720c636b1d59003070ac3c0733b58e59b980c0463fc221a1955a41a54d95376ba762bfaab329ab63bd56e55486c79d279181aaea0047823ea738910aeacdfab489a419cbacf9557e198f138a7522d0c5a1240091ccc69796774e55250ef65846ab80e84893a9f8425f86a4f86a74f3521638fc8db135b5c0b481c31a29ca63163de48e3eeb44bd643911808fee880237674dff7b14a9b49feac0a69640ab1e7622bb9b2b22b8027d339a1a30758ba5b084431f81972581ba7f017168ea5494cf75ab233705efa0b9f6c5840ae587933240b2480151dbc809614b7f93b0221771d1698ce8a9b2cbc4751d509e446500fd37675ec60a3fe3c06036522ec1a848f417b9d144dc9707ef211c71d4ad594284fba268ce07b3796932357c1a848329a23263b9d75fba1176ed6c54fec6c758b7393b7963a0798803f28fc5e81042609a6800bd411a3226da32c19a6173d10fe42673ca2c477676c05a638a68172492599fab493fc2b182f0f334f26bb42837516aacc49651244aa57362134c2e4ca5043a7683c33c565ab9d9e514d2c1977294193df3866d78b9365a163e8c9da14752c5e81ff6887e721596b2a0951d786f4c397fbcc489365442629b7f1b7584075b2ea14481a488957b276fa526529095008c65106a0871bccc6c5aaa238d8455c6b5baeaa79d8af11145692167663da3b1bd7103105ce16606ea789e95bdbb09b1fb9664931960e0f17eaa5234f51a56f9c62b63335595169d145a1e299156e083825e96b709e93afd32cbee1c996c3b97dd0c76839b4c8f0c09c3c485bdab0782d6541f9416285c37dfc57248e96db2d4a807057ebec164e5da3f55287ab480aedd4c54f9f9852ca427baa64658b49602349ff7b8c10b326af2b2761c683b2e791bba6280476436bc50a7a029565df504b4d42762053578c08c108cbe0f9300f850b899f6adc8f23fd1a93a7aa068f08134500a98563bb07fd263b71485e23099951a3d69d7266b02a331e2c5be7289d1d09b74d19a7f267a06b3bbe4b102ef94cac9933e5499ad5f8cc12a1b83c2327e65e741ee56bb9f4a7a665718ead702c7b435dda737f179279c7b0372f73b58f26c764b8d4c986e3dd38711f9c09ec4cc7fa0479a88414727277e642ab629290e5b232dd80f61217487546ab448aa1a487c3f370523e42dd7a77482a5c3d46b4477d32db3665ee5c23004953b7e8c2065616df3a7aa6ee08f3761142285020d359e55496fbf33912f0305d225451e611264cc02cf303043744e82a10e8d4c10482a6f51c6ccd07b87213026cc37a91887b761789cbf439e967817768b9c45c549df703dfe14b65474012b1268e105452d9c5c91bc55e652017b060a2f39c0da174bfa3ac907b7ba1894a8ca264015a2a986f42d2f9a6770f930c448ce7a29916490738bf34f7663b501c0466e725c5d455b5299ad2b777154475511b00bc2381de50ad0f635000c3a4406828e29a7846aa086878578b370c686a62d061b079e431ead21a01510b2b325868f952a0f793decba5a7d8c6315ea8f940238deaca39f7597c5a6b31855881db4923192305f716b68dbcff7a8551a6c6d4e53a2ee4a31b5763ab05679a5f539575b386c7c1362f791b313a76c9762d86a9ec80a4edd252f066249a0d73a556086fa98922202657bc41b5c615f55dc283ef1569d1c8478d24099b670f332811b9c453b650c3214692b9361e1b6a1ad8a45e960c045a87cf7a2cb306c6bdca36aae89b87840c311cb277dc5b7a058788f7129a9bcadc75ac2e0a92b3fa021fea23499017bc2d713f7bbce02bb85a5eaad9b1991ac9b9163830e5aea80a2388ea80553332c5c0bf177724089d2603aae5128a8a404e400a4a355ba55a691f0096aff4a2acf798c5509a27a61194503be57487b39c39ad03639bcc17e0f775e396c5e72ac126d08b69cf66ea6d525f10a06ccd6ab601b0a62d0679ff86b4b8048d7b61378310d3a072525c21f2df1822aa38949213c001456833c58754cb39b2778f4b558b56cb74a91a5ded48e980bb9124a4f59f8785b629e8a14acd21ac77612c276706a93b90b766a8857f3405376a0dcb684c8647c51f08885cab2f122c6e50925090703602383a8b129a9548e47158a1dbb20017bba411aaa2d122ef186aa432008a3492364e1a17c895a329cb4ab01a09503a05b3b380aa2602dd2266a0acb63baaee9a74d5992bcfe01ba39a4bf32e2a546c848323b15afb4263d981497752a094c6854753997a5a40abc32534c95a7f32acf5c4eb74956cd97942d7561bffa685ba882370a703ce2936b8c8469a5305c517c141c63e4f0ac39f76674851a321b5e5a128566fbb2ff555f31bc63c56a7110db71d3638e6600beff19231dd67cb81c97f3a21df099928a47b7d4431e14d45a0a802852eb2f8656122c128260dc63aec0805232af52f41258e282bfc335efc3a22c996be5d773a61463ce3303e45106804ab68a544568781a1d8642aa701ff8c761176c5ebfca2e05647f95d4414f04b11f7cc9875810f1636da98a433fc964e1748c1e55c75766a73b849248ac01ef019a0a3974cd7708f81394a25a2e5568bd311a74e3e33ed6ba5817530c768706786b7380a87d36b23679daa59b9369faf9a16f69bad08713d0b45200db4f83c5ad8e821256e44de1d8bf60929549314b12554454219e0590abee6655615a622411826c45ceeb47123d786484b502a987782943bb0f2154a944b038307608da2170d00570378f0b5985bc01b226591ec68132f35262a30920544c8dc996b3f074ac48ec5b90607c24e0ad17d6ad5f1cbcb39a65fea6ccd7578e5f4b4d4de6232641ad69db4842a302d1187628cc166ad1a7cda24645f0123eb39247e3ad056515598a384bba1fc445276dd08ac77b650335b22b717849020b3923b03b95867ecc463317cf359016446c7a41a306524b05b98746e6b230d7c3018c83bf474a43964a6c118574bfe55c1d8ac2b921b719cb48c4f6a97510b67a247837ab8c04fb4541f9043dd104cb1c4c63f39eb54679f97766e78424b56301c066552ae28d42e90de016527bf4784e278e4a1124dcf7613683059588356416c05779c2ab3c5e97264032384c40014f1306c12b543aa0f65c4dca536e830bff1bae3bf82d2653b441e4541fba6c03a8144e17966b738ea429a8d39701f51088bbe9bf496509c29782c024930d3862046335f9f59f3be7078f43178de074793960ce96bd53db70912594f8da6f39c32b8b168ae317b6aca135ff221027bb824bc4ae5e5c8ccea3c55afb43877a7c5617cc98f3c1188a33e3537ff9c160c8c9bcbcfc4f6534894ea5447d210e9ef75021dac231c42e1be22506f35f793791a0c2c43b789616bb3af0886fb39e172e0d3e2cb14d4c6846208691880d6b9037755c84f7f777d56f6a4ccfcff1ab98b748f706f2c1d43d31a0e93fa57783b01661e1829575aa3f26903e24c57e74925f4704df7e8ad1a08ba5cc444072e7d040 +ciphertext: d95fe87159673198b4cd1dcd14958da70578d4292b25acc888209e01127bf3e031d875ab987408153691709f3595cc6757774a8227131bb32e483680f95e172357c2038826d6949019477eb1d81951ebc87c0ae944505aafaa39562b00a7932251850788b0c6cae96b76dbc829a9bc88bcb2b21c35ca87da3aeb90fdb4e82ee12a628d116b56a75cb173de1388c58ea0612107c020733b9c94d3a862c9d4b636aa7840182a1125c10861a478d90521f55d9bd169c82fb06825b37542428c883d4f2252c3dba804ca83699c6cd2ebb1298e313c48bc8f66915cfab083b25092392fe4e925add085e574585cf166e57e88cecee9e0b4ecc7563094bde9c8df073e4a389d7f61fc35a3e4155ca2f9498b64a3d994f6fbfb3020a6764db1bb692d5e310be55369795430d4742ebb302ed6349f5b91d3967323dd2fd25ebef038217564f1757ec3606ff6444c8dfea0315f155306358a1ea55f4360c17d254422b125f6b466de31d35a43fe95fc960c6cb2d990286426e3848998392d11590b42ac583475fd54356463512e5410cf82cc0393e4d3568d386f918455558d8e8f46e8b2e5ca25021139ad172c1218eee83ca884d51412e0de018a4ee3882c10e413a9016ed597dcf124a549e2f02eaddbc9e67ec83e33b6eb2bfb195753aef8cfe4ff896eb2e6633fe25f17c03fca87d97bac0533af769e5a31d51494ec2710fa5b9a5312e578b13a198e123a2307b89a1e9d9adc3f2ed2172d7c14d70e5289740fbf030ff60042d998999ffac979423eff068ff12bd9f48363692516cbc15a171e6cfe22e970a8606b5a2fb4210854c2251e2318572f0fb405df64b120b8fc0eb3476f7c0db9cd53155c3ddc8dc3cf1a69feb75ced6f5f1831063325e2de9525275b5ce1cf9bd51edf094d4b381007d4c2e800e88328acc01ad873b3ecb127ad5ce2d63ef7ddf1dac4e395b5a3015290615ab9cca145351e98b6378bfcbcf75a1a5074215e34775c9bb1ae258288d57a682f525190e719fc31f4715f7bfcaeaa60da40f62b798ed07f151014ee2fe4f2b0bfe6f9ecd1b7619abdb9a64318c3ce347de032a3ebcb49f2c1c4f2998bf0e1bd970f5867a806656f114145c9705d7d2a83b1ef71a30db19c5a4663a19687c56b4af18cedfb36a7b620f2dac6cb6a113178d2f979732a4d51cd6b8f619cb8bb4938df413257428e70c5ed0a911329ddfded3ba29b8f5340977836f4dacd54c7aae3ccd487262cfbbb35f5d75f540dcb4a0872e437c8d5f422965654f07b90e2902c79cc57e0fba71beb6e4778f0d918d3c04a3fcdec88e4aa788365ef385f74554cfd8822c00908f1ef4df01dd1dbee66e9781fa373ecfe594f6aa9df5b1ac12500309f391ccc8d2368190ea9baf00032c66b4878d770050ed317b50db34089d176acc3be3478ac765e5a13f290958c1a4bfc7dc279c2831f5fb3b541e2016666c8092b013a72609426cc8ac7e6e0c5824f6444eadad5640864df3d7a3d958270112f27c4133258ffeeb05b218aef5d4d7241fca58930c871f4879e8e1fb9b9b80730ac09d40f257b7c22ba954ad29a9a4b86047f2bec11185420972ab87e6a5a736a2eefcfc16a8a2b0233f450811061a59e1a73a0b11709dc5e95e57153a8f7cfed1a62fb267f8345448943c74fc00782045c0a08cc59ee5487a86a26cda7e278feaabc29351e2252de1aac675b15fe1ae5cf61a348c91730c101081291fd29da7d102d743110999078e3af2f27654a6faebf4360dbe08d1bfb5aaaa91f8be43748192c0b2fc375115b16dbde2befa20bdabc021b99d9213c6957b8135e32d7960de4c09ecf8085ee36d5bcaa31f7f1b117baeac21b1d4075be0a9d7b6c4afab8866d8f6df33dfc48465c0fb668cdbb303c6650ff7d40c4d817d9aca9a2a50dbc99b7e6c5138ee7f2862ada9d86727c87aa3e3ddc34f00693f618af8bb6ae8bd1aa95c53217a97c9d745ac745c29a697afe9b01fe4b8e365169986c57de63f06db8cba19c612d3e7c1eac2a7a3d453df80be0d35e1c91173b8d258f9331271359c6287981a7df914dce3f013ed990f5ca8a5eb501d0492d09e16d7d652be4f6219e0dcd7ae4be1135d69566dbca3c4b6c53b14c67785601a758258f7e3856441bc425b96222a45c00e77901681069073acfefcdb2ee4238e7a192f5d8268884df6990e78811bb12c3ea1499085064f39dffc476a4 +result: fail +shared_secret: + +# Ciphertext too long +private_key: b8c2a6476b00475b7cd1043fe4837ac1abc1db362e2aaa9b6f5c81a53c61c8e04ec320bf28e63fc4a6c0e1917fc1905a51bbce57bcc85151643fe0ac61c0be75149d1d19b10838bc32a6a5967b6359a99202937e4b950f5028ac58ab7e0023a25c406fd1e632a8a8052ddb57ea40a80e16c40429627463a3ede1a0a992b660911cffc08a215ca6ec02cf0d895df4752be6392fef47cd93853a13a564be2404bf53882c1386ef7b154e88897857487d4a31c26745908a62bf97675359c83ac89bbad66ad86cad27dc05a2130fe69bb3ced7b174d825c9208ed2d4a5545b15e9325340ab2ef5ba48ec60276e748d5134aa1692551447569052486fb0074c11071b386935661025831844f3a78bd391e9a3a466e218da19b974eb234a942b8da74602d06ca33258deccab7b3695d8239d4c5b6bea766c5e4592c5ec0532b1642eea6a6e07127b395e34436923074a78b834d1c03be296097fd7a6d61392bb0a9153c087c33a8949524bd1132595597f6fac8329f67a43b37d1fd62ca7479cc7e89935f5b8d040218008452fcc0c0f8b6297555d0d349eda5503ef9c137f492c9168c6b6b97f6c1066d9b97931d3ae815c145115864d0b642201674e328bcd924f8db26f9e5572bf8c2ebfc4231944641792a527a465da094b86167b63e596ebf755b0c56af2c20bccf72fc5e3095ef16a3df70810342feabca827f5861cd950c4d09f4229a51453cd7a2c93f77bc95913bfcabab4a6f25b0d0227e1121abffbab706b845cf677be089bd1da3f6de7029a98801134c358f0493000b1009331a008b29af24338e55bf276cf22329b62b8620ec117ced77c73960aac559b49e91c5a5953f3995b9d5393bb205455644bb7056aacb870f0128d386c92ccebaa0163a29060c6d2f2bdb6f187bc991254d7c86165ce055896fd0c547e607ecf92931af7a69474082b958d9a2866efb075f6e4ce0df19e96fc9f3439c5a7e17ed785aa0d8368943a79bb9477f3b913447b3975d383aed7505c069cbb6cc2ae79c85377c78adb378bb3c717900038403164c23532598da3e344e59735c777b97955ceadd39b76f614273191e65ca243294284966aed6a1b57684ab692330e91b442580adad83664b9a84cd61227118abdb94c5b128e55a847bb359a3b245898d7b529878cfc3b9772031c4602b272857d929c5068d248d30300e5917ebefaa3265c609585b3a90c4b39865c51b42fd3626694bc1da69648e9466a6948adcfa9670ebc51d724267d7019c48183aac63816a9097d228ec8a667e852b5aae866e24b173971b2484031cee095ab39c8bbb2acf1a631199c258870a6c64270fd8a0806478077b97ab0bb255df83f08d257b7178f5d704bb063144d2b68c40b3706e6377271765dd81e4c20bd3c6216fb5465f466789c0283bab6cd1fd05fdfa880213a889fd14a50f331a0079bd5c94817d3a47ae80bdf722c0f57a088cc59be89c754f59e7db545107977bb3572b08a4a4386aa9d7b40907628b3b34705fc6ea67baa2912b6227139217c484260b2db039ec17b8edab435f75128f412c77636b5b3c72a425514711058e9d78e48b6534b8c91ea3c3d3c898a3e759cb51310ae9c560a03a558822285986658b9397691635d99794b7624b3e2521cba7a1fe4b7687b169db514599b81214c3c1872adb3a2a69fd48bd8c513a06530930b2305101a0529078835874c3c8701aa1c7a5b7136e89e50c6ca4bca06a544a2e441a7a0e1b9fe70346b961d2099bd1a2939f23875281070fb4190030b87e8f08f44c541681a8c9ae2789dfc5b2b03a228191462804f5d3c2981a9ab519497ef8a99616618333c3651f54102898c72a806f8254dbf124712bcb96eb218fdf80231d04f0659419d101a15e04def709ab061217ffcc9321c791d009d81d4c09fcc393a4b2c3c169846c8171567074b53bce49b05cfb85b3af77a30d20ca6823eda8049c5da9d2228c868541d701030413117f01966809763e7805be5e8211f806f7181561455b8eae14c35a156cd7b9e2a9b8225f788c9643f1128af9e28b456535238fa3440913824d16a31b3b6533a91e2c3748f0289ed3b66b0377b63c4ba33a1c8d484c603436e4dc685e5db2a61c640c29655a675603e01b631620ef8f26c0ef1773e137847c414fefbc336d669a8f02f5e86b9f3ebcfd7da95922b3fd5740522a86431cca86083622145c9269929b8e607d9b18b99307e09b091a54174beb8c471708c0d086082f124d28210c1f3657e8876d255888d975bc11569abf14daa38b519f041b8016d18363bebd29fabab8b4ce75e0d9b08b6e1c398d3766355674aa9a813a794890627ad4615baecc80dc06927571a2cd82c03aa065e80bac89c8d49767dbe989feebab843c86eadf82b7b792b8190033b227f1b8ac6ee6761e10145d3f49d51d277d8e55401c4bb29a35f57b51217764b81111ffbb73e53714321106a27baaea4d957bc80888510bb5f3c71af443d6ec32db61803dc302652446faed94bcf1c2b7872ce7f84a9cc8598208a49890206bfc25cd92c570a670cabd700563a5884a1484de61632c334cb72a19db7a0c90c9047ca9e5cc9c748943e440c5150b945ed2801d090c07ba211f53122266683f689c07bd3cd8136c644d9a31909b10255b8cdd58fc16a4548e0736ed974c3349393d2b5948c7aaacb371f8824a2157f6ca7a3672c04dba2cea4e255648907cba6ba0f938ab111431c022d42e2488034b5a8ac63c27c6cc2b951d3b994cc058641f6a7794150ae93aef24c7ba0108dc3e850ce7c7771449ef5255592b20736599385324a4de37a6cc10706c36803e13e837a033628378b63093ea1b8a9273c45eb561a17c6d852b9f36089f87bc6867c64c4390192d8b68d24806a0373a7d658f5379a4b0b3e8e7a681723c2c12c741c6a359577c33da673f8011f764983be8300f3101a9af0bda89bc6c021620c07ad284646c9914382f26ef2082d79a967f8a52b98d90a42f54c48cc4d537b79ddd3bd339c9ddb86210a97b0d55238ac95335a483bcbb543dbc14751f89c6fc8137b97c019618b7a2692f1c02c68d1cca59abb5e45b879398f417abc9da635376a2794a729b15bcf67456cfa6805ebf49e37fcc2aef5329dd291ebc14e76908074bb0e66b9ccb2d279d34200006a44adf2a6cce87801d51ca5969a1827a799f22d52a68a2d2597bac42b38da016df93171c20f122ab62ee736af591d1ccb1212e9b93aa3a776560ed2e38fea46443bd4c48326114bc82306e445ffd53a5f3b406cfc281ee66afb774d5b351dd1612e537c72dbe472f714af55b6c7b35c5ff74805c7ba0c7a7b3f0bfb94e423cc9cf52d7f619d87d560e259ab41f94dadd50e32d8000b126368c023b2dc492dc51c186a952672caf1c8896933270ca2676ef7be967095ab99b7a0828402a3241a962b496a5d0ef58eb5d29fe8e63baff34ecf220b88b6cd7708576dc70a6b69cfb2b822bea81f78cb32cf238ea2d6cd6c7a813e174046067169da3d756b899cda6fd6f7a8b5c75ee8499e4545cf7e282e0e5a40609351892677c910a6abd9733d2231a50c87f3a446f5fa7aa74320419cc92c479251b83d385818e02b9830925e5ac844e0fcb581db5d3f25394c55ceab7c41385a0d7fc73ee6e59c6c623ee1974547f2a8dc090dc7663985a7c726e66a66aa3bd3b61901529208e3b34bcc29dfb61f4b59878083abc1ecae70958b6098999b9c48a5251849728f4de8554678366caa4151795596997a2ed23a6e9498f8c40df84733ef35bb5071b5e1c909baa0bf71a55340e06454d40f361c54e04c09409baedd2b3dec5b72521a0c11969a42e8b0271a736646b57363aeca6c83f583ae93faa8ea55ceef8385ab48c418303c40ca4a66a481904248464aca29e02d6920694c2cbcd5456ed5979d01d94939e158ad12ba9555597918591c1c9cd6151f47a68b62569138964964fb2ddd6b4c16542aceab5c638bc73c849ae546cd5b50241d52addcc72bcfe42356e8b24f0888f059b1186aaf602b3d30b6b6009d9f638c872e90bb994ac7012678f7204e4ed06ebcf14da89a434d699b4c143d6415b04e5aac5626c1625a81f2751e47625131a62864763cd0bb044df22d2a53a3f4e8c9bd918ac3854ac0385d2249545e29a9484cb2946b09a9673b9887710be36f4fd822fcc4a5f18960e1bcbd8411c7b5c146c97cba7b877242e186ef0563324c03ebf9074b337da0e60831b185d192b05bdbab4e71552ef63c41d55749a7cfe7047759d03314d912b7e2a9fed3ae4ce1b587e33ad81270e1cbb48c4118ed3a588f8283e6c916a1fcaa3ad12a2968ba937d340a6566b8ecc4a465a82be650f48b46284ad2964574d7c9664e7c8e4b3971be3e5ea8de28c9a44c9d33d3eef3a1ffdbbe12aef3c333d44728d0846398dd74c974e6cabc0a993d1ae16deb913b6abf90681701b83649c6e3e2e6ac +ciphertext: acbfd09647ae0cd78750316a0d305881f3940fa858eb621eee8bb3d39524cb28a332eb75332d3510108744383715ad7bf3fda28f05583a3fa1741c660e27c16a60ce6fb3149fcc1411ea40502d2f6332fb91eae5e90ffbd5dc9ab71f4735a4250e20d159260b081f902dd2358a3c962f4ed07863be05de9cf229975af415a539b77e5855aa8fb487cb56d6e153fa54b3cca0c18a188896ed9a484f6a62280f4504da9e2418443298f6a886c7538030313edb91bbfbeed7e37226e2b6f6a2e6ec694ca9e2175e0ce1bafd519e1b5b5a3d8fc107f5cffba3ee0bb063617ff36bde74147aef830e5627fff87c0f5f51c939333fac1d256aed10d9bbfee57a51767d364c29bee53a196cf998f68c4169826efd0509eb7b0d426038f33ac2f8d01686ee4a5804b189431bf45efde265c33b2de0364ee98b841a8a93db233394383c85439d07a9bf9eec4af3d032f6845a00b0fcbd75cb05e504a88f3b869a30b31e771553c6d219e6384207856d5a64f2a6361f11924ec0cfe74245968545c30075d3b1e45ebd4a4937935d06ba8c3d6b5544b5e30b583566f0bf46a38e30d2250b22178befe5f5e3b8b3d765c378cdeee388be662c635c53ca83ef2032db71512ca859c1b144ef984ecde0fc78d7d4a57850f114815fee517114456f1fb3ffe8cbe3dae122a51e973cac8ba9c0b5f7dbcf463b4640b4c170c9b58a77ca0dbb4254f2bc936c432567f66f8705ee2ed0612f1b27e92a6dbb366e25928125cd042ec1190043c94f02f106716607a9ad4a0d1cab2059dd7250c42015908b2d6f1553c1860aee4c23f8bd82e7a76c4bfa2805cba8c4c3faa70283917b2cea010f035909428bf617f75fc2a08586a9f93ee9431c7b466a5950e8275bf4f653fb8acd8b43a3f85c4897fce34315936c09f3670aa886fed03e23d8d7e80d0e52f3ca9f3ffd315712a4b821b6891b0f7765e3d96f6548eca92103e3e0d3032eae83564520bd93b3555bc9ec60e2c3a0b6ffc7cf4b6a9f92901feaa875fbd4eebaf382dca1fa555174f686bc197723d532b0317059e83e05c827f203f7087da9e64aecb8461a6645a27c7a255dce428d1917842a794d7f4754e84f7312e73087e170f5062c3669cc2ca2e7ebca89c79f55793634eb9185c04281a750c59bda918f27c790af5fa91dbb2e6aaf7c8f9c2418401d98c37db708b1f3df91cc1f44ddaff568046cba431705829acc73783750ca0710d94d03bbf62fdc90c48abd61490958f428fef5a9ab322479b2c4f1dcfed4087c00bfac3d4f27b0f015b0db27f8c6997031efd1cb16c8a735266cc4b565cd418466723130a61fdaef5fefab408432fc21a9dd785646eda9a95bcfe8544b8d3ca6469073546d0451adcd7304e6e500f105c1a431b405efbe1dea7ffea17125f7f21d5acfe4475fc3109f9aaffa584da678c8b187ee7f8e4b580c68f5a1c2ba20afcb3c8bcf4f0237dbbf9772e275024f78c5fd4d7e91c479a144584c764328b63774e4d1813253ea1a3f0028db07d0c35f68704ded687e3d475018f611384d5c7db0c80856e1cd779aca1854c30ea2ef194b0ab0cf69788a458d2d31b1d0a9d6aa864b6f31be76854d5ae74c27774f41b597daae00b3f00a69994a77b061093912ab2d569ced7c68f3f010b52f1643eccaf8402a8fb9ee5d16a944d2f94972e282d9a00c88ce2686dec4e35ebe4e275fd8a64092ed6a242627412b1ea66dcb61be48ac03417adde1e7df42f6a368c1af13d32fb4e69a9b84a7361363da196be530572bb306a1dff199a213ce0bc40b0c6083633c68278faf3acbe4f702c1dfef932ead77634e42e25e98a06185c0ff1120623d0b9f3a0efa37287710702d98d87f49b0e8a171b9af390417c3d2ab23728c49fb334e225c8fe6500b0189ee4dc7d159a4093289714818ca98da66c1875b467cb981cdc84591fc14d89674c5a47a38952c8c0f30173443e6c140b51d8cde98e7999ed78cb428fdaec3094b5a66bbd4858567643e3e46eb8352c4dce195688b00e3014989c67942d75c719f69c1c053afdcc34313a25bd6e4b6bb84511071a932aceac256a59c01bbfaaf791bcbad8cddfc48569f3dea570fae83e7584e4b44c97b1ba80cad0207f2f161345f560e2d7012eeee364c4eec941f0b97bcd1187e0705548df7a8d93092bb2cc726842bb1a28c1d0e5b1e18b1c7d8c21c9d51f2047b43be0d833c2b6c7c3480be9e3390224405cbea20b135bfefc391aa4d31683bd3fc84 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 02faa0c561b03e23301489390cc5697f915e430b4dc8ca50cb0253a85117e801cbd8c56b0b08c7fda03daa9a96c8244a213c2084952b38d80232534f1dc87705f0a91d54201e465b06e59f090a722119a1eb8a06537897621b096138406ec20c28f67ab974889e7a1a640ca617a085ab86cf7fda7b783310a48a7d2bc81935ea44b49a7220359fa0b884c6f1b8b9599c23182e1c19b0fae59e51766c965617345c1b5f69336f46a743f0046239433aa35c1e1b4d1142662f131d3b63be6e876ff28420269566c321c9c2d5810b36a1fe23ced46c79b95c506af4c6ab735b914c6c95b08847c5219c4c49947bc0cfb3b4105a1eff4b0180a8cae5673fe9a60c3e0cc558c050212b4f5486b145a237323ca8fb532a5884b52008cfcd1915e702a5697b010ceab3c43951d7120b3c00211ad30ae781409c30c643b139284872104105037135a3784aa98164e53a1b91b2c2fd4a79c015a42c3377bc860560db41251bc8b251c4d3b32a89b2c4936c864167bbf22589561bbf4cb5b10ee95baef82d3b4bac7e3cc004219b9125051946ab372912717409cb09901c86ba0521b9b8a4aad8954e84ab52f5826b4171cea3c594ce04533c190b77d9cd73b1538f17274df3745161a381e4b42c841f63787c1584cb563308b19b3e2aa0c3eab2a35e39240207caa7e68de298cea4173b18942ff1e98eb5f947bd635dd0aa1102ec12723a867e573ebfa56d80a5b5aa842a05083c93e2340a308cb7643fba3577d554926eb462bfb7072e7057a1481570dcbc925bb0fcb84b0c5905a0a9c2e3f872b349226cd463b7f193652b1de8bb82bd6797ad453cf7a64544683d5b51ca6a4322ac7379df745ae07c6c7d6bca0201788d47bdd927372dd4a604694baac2b88d51b87cf9ab475b952ee72450e9a453ea2f99b68747dc6e77c5288bb10985607083d945124b80a0b97d4c322a33ec7d13eba9b9f469bcb96bdc745fd008377d59b9606129ad2708858866fe79118d2abfce48c21d0c73e3e6aa89f67a36b523a384cc2bc549abfa96aa74107f656eb096829a7992a9d45d77f01ef8057e2383355f3631b82a04e7d7bfcb612ce57710ed5c26fb2caf6b125123ebb2fe78bf99b654aca1aff6e3575fe8ccf5e05e17a85419e86c02243ecadbba8d8055608627cd6b2001361a65828a5bc967b7eb3095fb6f3d939be4b3c2b32a3d75b082a5a141c6c526af712d9ec57e05bc86a4b1731bd026ab84b556c8c988f07449b2c960d69f76c55b7b3797bb84ce31c038eca53ea900443f8088c3c8a54a2a5bb2c43a0ce7b496b1291cf482bc2931327229af790895c53d3fc3bb37103d3aa877cbbb2b76a6426e5230f1d45f1e96681398cd90997814a300f69cb77a234b2be39623e13f335974e21badb416b94342c9bbb3a068a919a47ccc2a828bf3835b7e8740519c11f55611e646b34eb012d3553e8f4742baf3c036c9980f9524aab147d6b5760cb092e3f7c0c2bcb6fda0753087380f7407ebf89e9c633ef8a3a0d5088e6fc742be8b6b015ac910b6cce37900bab1ca86dcc998b73165a80cacd119107b61f27aa8d4f65548f7462089ce6eb51275446e9804b659404c4391900ca00a9891715f028715723e995cb508ecc727d291d747a283845086a0cbf898c306f9a087e0b1b0f5b8a91bc020a55fa3e463f0da23e3003e44774524c403e096b136528647999b65a06cf176132e42b5b501843525b5ed3385208c089c2565212108616459e7d0a9bb9b891999b5dc557749b02c092b93aec552d4c9b06f851437a4ca4aa91580698943b91cc9ab204d5c8ce2bcae7ac0727c439deaa22b4264758c74308a6773ad53688bbc34aa6c855f3aa6a3e22fda949dc5f05c75fa70602153fe519d8c203dc247c95396512b2bbeb5a8575f6b5d29da2b05db8ff086264cb8699de03e2b9145ce71bccb80bce96b5f6a3636172567cb9b8fb505260f7a49d94b6736f410af422a2a04cbacca3de3855f68106c51da2079b215b14a1b709763e6b79d6a6a618fd39742ca80eae1573b10307c4398e04ca81d556c32647b4cac1d6b1b9bc3d44e1f8971d9eb4606e7397f08cb06f517e1d7cf899ba6d89c73562b317cb40e5004777686137db008f3d985d75764f2a79fcae6b37da83ea2ca907333c9c3a5956261c9290411a214008aeb24f57357c319476e2594b0fc253da92a744657ac8a66c081ce67443a173ab06d379f3360bd6457ae7bd6757fa224af42714733b2faf6635878131142cf2667097caa1f32d645a3f74b3472987819040954c8f023ae6bc504aa939a05066d962a37594b561d6b0759cb02c3f3be4219b28f4c30751442f12c508b0c5d09017b203b023533383a15484e2a615fa98a8cea34c110303ddc4555d5308f1b9ec474a7c25535b44b3704ba29146bbc8ad2a60bd40063a9c6b42267c0b58ae826aa9b6078476a1766776a8425672a91cffb9497a2c17789d97747643117420a01fbcd0f9252cf46693ae999c9b4a137f9c87ddac4412256b37a5d77f511c0c8bbbc377d25b0355dc8168418a0f8876243e4b0ed316ab0a0667d4210eaf21ab52a76d061649d9885c2313efda5bc8b1b56d3ab546b4bb9d847456941a58872a74c4b7e5ce27d31951e75a65f329b5128485137863a9ec216f6513ea2d05de81c8321f82cd782085c1a7b51717b04952e0c151582c279e1cabc9bb55a91966eb943209c153afb24c19bba2d6a38537182419fa195e0706f18e9bd2b23615e276b5551cf1ac8c4cc246d416bb17db1b335db0dc67853ed866295916924e5bd41d56e96177c1b69753a55829772808f000cee04152712808eb8220d86570728888c258d465ca40076c9de4330e76842ee432ded122d57c42d5ea7be9a7b2f2af7ab377c5c3dc0194cf1938c559291e9845bb765b5230e4a872e59241811830d24e35fbdbc2a3a019715032c1b038f8cf15ff5330cad984234406e82998f16930171a42a62c5bd6ea61b1aa8a8f0bb321069b501d39ca3ea551b7caa1b602bb44bc353008b71f421cdfb1ae0b5442c2a7a3d78b3d1aa45a96009f18b7fab3770bb9518b6620b501854ffab32a7c65e21c7405216cc6529421892bc16189eb9806764c2abe6562daf71a95a509391a768b1b69cb09367bd476060c5b3702a7b41751ec4caa3e786605839b014767ce6c6cfdc469d6327472dab5f0b077ddd4b7c1f7c36c708ab27f91860a9554e6b41bcab4e629775b82bbbff83594396054fc5904595a7d9b82139f6787ed6bc2745083d96779a7b4cb18aaee0458ff293071d64adca68cf8972b6e15ca446a621ce851f7d63a78b81730d26b599c39a08f1495bb66785e33e02dcc0c6086739d287c2da14d6d5673803a11f5a451024c79cb13a91d08ab791b005fa3ff18b0a4919017c40acb89276d7c72be25ab3a1c70d2359bf54eb9e93b74133806ebc99cdc2fa047b5c179276a983690a3a073a7eb013b612ac5ea7bcfe1c42ab489011319c1712a7d3f442853c291ba2a9273a060118cfa0bcca963a9749e935ceecb370913f02089b06530bb59a0d2b0a585ef1261502bec930bdf1098f8461c277404758a43f3d563d83f43ce878ace5c2cd73d30c940c3586db9b8547cd183a60da1385f1309cd0ebb6343a2134f10fd2bc3e311818f3b74ba8ec4433054773c165eb81b5da68ae34e4beabf23e44d181fce77808d9b79523693b77388193a2f33387287980ce372622a31359007475910d3b9126e988974e1156c5b53f274693862c710134680c134960396d33fcc61982ae77d82ea3cab93f90a8e566b82cb260c4e95530e963977b4f26349ea96994190c53560722f20c3c3468a33b534e2807be61020adf6735b418b04328103192100be9945ee99b640482fba270467750f3983c0da8809297361c9b3758e27485bbc63f399c7a90bc2da027a113a23ce180d6622d90519fbf4869a871687b5c8e00b388eb2353d8847a243b949848a5a24c8c9f39143712b991e040de02723deb8877040984b0bad1000bb9533d3a31479676cad813c3150202f3f4ad6fd71ca2ec4dfcc966a1068423c5bfd9e30e14e4b6a886b99ec8269c013f50d398bef3660033a97aab4ea4c003784b32fac26862ab4cca5c973c07c3b46b197e8a9964650dbc07974eb52ec3eb6c14a56c32f91fac3188ac193af0bc465481810f618522f236cea595e788712bb60ec766374af88ea711cb77fc5ecd203492c90054d394c5dcb64060032250a53c8a3252a3505bd57c9852ccb403ce38b3a0ce27bdf1c15b0e77a6eff0c87e586542382cbe0917850bb3d50b0b66348ea666043a7868b7c852a9461814f0daa635108b3315ae9e359cb345b4adeec9b9ca089a59605d2fe8038488001bf97a824fffc99d408e83c878cb8f644a011f861ecfb4eb95acedb8352e0a76f802515e77843ed6fc68d2c7a0ab2d940b6dcfbda574965e2f47 +ciphertext: 5269e11a7220b4f3c6e9f86588e00f37b5d4025bf98de1cc7d56edce93fc7a3004ea2b96d40e34ab664acda415f63a62d247dd797da1230fc0b0829f4faa364b99da7dd08b26e4c0e3907f6a956f372daa0787cdd56d91b854e3e2d51bfbc2f69117bf43099fec0c304075b62f538dc79b6bfcaa23252d4bfa30ac25d340ce2577de463b432b18ab04c3e251c39c9861c49147c5f093dd56af95888d4935a6f625f29d1e04fbb1d1d8db81b60949bf8838c097932663e232d6e848df633e0dee4588cf4bb2e1c18802d5b32109b0e8ae9655e73866bca22969a60bf4a2f97d577133557e9c656474e5b4ea714fec22dfb4698fba81808c0e770667fc18f0525dd07a7d07443e9c73fd068ca75729d0c29062809cb4b54bb99d0c1b5e9867c815db329de3baaf1091e1c9710603e25c3b83195858dae8645cb4c5b76c0811865bc7ce6823378381ffe44f606bca4f1b5d3109109d673f62006f09c2e565d0d98bdd005a73d5962fd26d34a446d791886a1100f2902668b4e89c02a91f907a82cd25dbf32b465151cc4b31a76a7f89c4cb6b64e4b868372a0d5c1cdc9dc1157b87daf378fad74216f54f6197f0140beed0f622be0d0896b281a8792c94fea4448473d34b18e614f6b052cb4ceda5a00d12e1a3afed03e8647bead76f4c8b0e2f22ab7e3a64432ae4b8a14cbf4bb5f4dd7f10ac7e382c0e053be40408d66648eb6a939ec278d5ab73da42e71c0e0985232b77b11a23460610a76c13d489b69518402cc001ec3d556a40abded32196d29a31b8f00b0c623e623fcb54ad3b486d407a7e5e326f5ebb5e9c298a38373cba4fd9dd9a6f5071255b8de2706755fc4b2d2de9dfbe0d3d67fe340595dda8a4022296ad1b04b71acf8b9c35c958423fa81d51105b886d830f4cf03c3c61f0f193ef64fe6a49ee6bdff3998a41e85733856ffc61383fa3671872b8fa830232b50bfbf7264aa9a967645879456c8c350e0b99d36daa531b7e3628502e5edd94f8f6eedc5a21b24695ccf193daf7eb4a984af5071465022a2ae03f685c93104f9d7136d55184b23d9654021a742f52a443756f0d779c2219a03b0bca5ac00f136cc297bed45d7096dc42070e0428896adf6ce879d502c93f727aaffac9fa291b391f381509d7e2de37d9d9098270ab672d719bed9abc8fb4e3cbad84eb6374aa64c0d1fbfe9691b3a229e225dee148bc512586d6b360d911e4eefa92dc5b310168f7e4294d837b4559c1f9addb38eee0b3c1c5a18892e555d5fd6d5741f5d6ff44d4a3aa3070e47e1b179a9fd69eddcb3c1abcc41171432142d7f13ecfebbcf8bebebc8870d2223a145631d1b05f5c7179b18d25b2416a465af0a54a95448c1202c0facecf47848e728a04de4a0921253656221a99b846a768b9fccad29507998b87c5aa70c9e8f18d991b30f717df48703e11ccd0fd704fbd94b5f7be58c4a2b0d6c852428a3e7db897d6cb58b1cc01cb1199e88739fb4433ccf9a0067ed63a0928f28a825f8179d2e15c09b38c84551420b2e89d269ce79ec909fe574158292559e88a35957bde237db97093dece432f9581b397e4046a97aa8a77b6fff8b363bd73c7aace2009f2b2500ab910cc87824f474295ec8cc241edd8d21a60b2bb3b96a4189f66b73a063fe0ec03c021b6afe3fb85c84c8995657942e374ba68f23b99803bc73dffdb2b390191de4231f75e14996703ad3efdb36a45d6d6c873ff20a089d3f0a6d5a5c48330a7064b6937638a877b9e1241245e61061c140bbe5d43130c7becf55e2ca33d3c9db00033b37bcdc0fbf3b6b30d32994da59e14710bc489b242399ee653c72ef593f571afea5306be7df38e802cd6bf5eba87a814cb7bb77ba931cab19b5bcb7dcac609f187239c9b3ec50e19eee0d39bf4a3f73f4f0eec00a4c909c24674f2162cef5122a1ab616ee9efd621fa915cc772b755b9777933388f72d999fb3d44a8b18ef4e693a5fb141c5d6bf800bdc695cfe7130b2d45a5dfdf582b0ec5b749aac1888d366f2b1f3c44f6630b06cd9eb75583199e711f64cb1d5eac595808c674be95d0a285c6cbf9d1638c44dc7fa761801933ee83c394457aab6f6ae354f1c6ffe0534861a2c648870f5803c90563aeffd1ca08a84ee3576db4f42d3f90aca0fd30637faefe58ef9ec150f86d66f78524987f84d8f1af6e09f9c4fd207f084306ef1d0796bac82b78bdea3313a069b1bfe2e3e8ac +result: fail +shared_secret: + +# Ciphertext too long +private_key: d694a4d8b9237ddbbb0f0b93e7c0c77bd09b2dba1f342594e8b6be67e1c4371241c27b378188cb4e63a041f1a679c92b6693797c5b5ad990b29b255f0a9b873290c53b044b81e02540fa1c6c176d00e85183c97e7fd7ac5f3ccee5d26a114929cdf991927a003720be7a4377c0ab726c1acbedb9910709ba290354aacb483b32aa064142aa3c77bcb167a9513acf5197c0d7a2c023bda7597ce1fab02e008318331798e86c614cb934ec4a54f783643411a57a080835454998caf824b5dd651a4b0c7d0cdb3562fc82c32033c4909c60c301c821c793307c17bc664dea3a48fbb0e8f1be1ccb76483aa32cc80bd08b5712437deb26031758853392a78d45bb748392d1321d6769ac5ea1681f4a97a812cb00cc725bda371e7a3cf8b968fd37916b9688d5b342c9a704bdb8c19e112a8704678785491b82437a53451d1a5d01849672e61fd809bb54614d72808a0be77fba7929f2f87b78397c14d33660d14612e1a711d2b6db0a54ab2671c2f28a1ad66d28c2647357cafa859198185d7424686ad25f4ebc2501da5b702c7177c45331f027330b5fac9c79390637f73b747bb84854506d1ea07893e9c38f630f755cab27021347c868c313b31383c8e10ca0bcd280c8f392932b273ad01278b1255d9b85d1ccb55a902f989741ffe57007672dfefa1019ea4322d62935f86b67ca3aec310f685a3ef0abb5d46ac4da2b02f977820e31c489b40462d342b5a3927478909ce38b1730515a861359a947cee8a846c18cb8077ebf047fe7ab76a9db8fa19c86dada938198856554c6ab69873ca878c687b30a917d11ca2a09687ed6fb7432d2427ca78935bb74cab1c5f04324b7d85e4bf06994b4351303242d858b27b7aa6a8cbe3986cf78c2c7cb9b279be856bc6c24b37831a91ace78070193ac69df5b4b3801cb8904537f112654cacf08796bedd2824ed4b85a561b7769765f85af1647199e5351b7a9902914a5225a92d2d376d5696dafb08bd4f7b561ac3a0e161e0c818b2375ad81a228be295e2de597220349a9f5783cd1bb2bcb82cdc8b2da4c1cb8a08263220bdd501a0d45bc74ca1621794c33473fbcb84008e7514f617f0a0171150aab207a1ddd1c3213870e0a6a26bac78305d6a094423deb02af5796cb7a21a3d693c4e69a423af6b440a99508b430b38cb1ac4a86b0a351e44608e357ca6a448a3d44691d9c6f66304f44825f305501960b61c34c3fcca727113664611b456b005e9ceb4faa154e77bc9c82d75006969d1bc76ae78231b4f70afb1283f02305fc35ac61449b5956ba280100846041c6f06fd641a1cca62092a513d152753e09a1f4fab7d4e13b8035b263a54cf1504c8f728f5d995e263bac54c986e380cd8b99067cfa635db47d2b150b68424fa1c76af45636ed841fd4d92007b35c970bd0caf02e08884f12719ed36961f248c7ce91a9b34496552c4a2bfcbb2ce530cfea056ef46fdffc07ea2aaefe915e33bc4a5c789f22063bf0d9549536c65ee10e4470396c3b2bc0babd86f607d79ca11b949aae418fa607b0c1c1163cc34355d4999fbb920a26397b09a01a4ca8c1677d6540ccc103a79ad147931ccb100baf31b90dc1505c2b776abb917606b9a7eb15aabdd8b56954ce65e3947c51422b6864421272d8651289f5286eb15bd68436c0a6306e049e82c3622956887785b9ec6111942336cd535fc6404d11e0bcf0e92ed79623f2c8580015a286a97b1cb805f59b5d068330f3da3127b09a8debadc4d7353ac4077f47a38971c3585743dbc8b66d6c6694dbad272c2320e40107c4130d86cdbd6416490b61cec7744d424d0385212d92ce32394f110872eeaa9fca5874313cb379093ed48a02a616abba38105ea5b17260ae4f814014fba7b8f47890537be54196b33376a76b1193c23e9ad9211b47553524827755c2f2c79a60f2192fc32a64363a9d5b4290c7915a8aac04d763b4d4660d31cb0bc83534c9a16d14c088ea11d1935402679be18536339287e22381e6fb6a17329c833710065ca665e7875af8bda412b4210b26ec2045d4bb2156e71d0665c7bce89b83f276c6d818e129b68c7734cb1b2f580c8d7a7c1b9dd66d346871e6b37bd604214e4b1623c15927f875e75c2c86269800b2273ed800f2f863156bc2bfe14802ccc264052c0c6c6216727113204716ac6863687c36ecb59268630e62199c436ecc9a13619a34eef569c527aa366480a4a31e82d78df0235cf2478b20f934ab768164b93487a5074116c6dda2adea141b719c8668893097938c914329abc9a7113a0912f961c789b78dc683da2ca0d42c2ebcc86e4e317d29a1731fec97a93111de7424431587f89486c8a0c7316c9e548607c97c18c6c7255597159f343a70aaa4e1f9c1b2b09f83d5400ae43ea9fc5e86b9752c2c373b75b93c4b071f26cd2bec5ef7c6338afc20404186d3a264ea3a8a86858c5847ae75424ec398cef0306b9ad4722e71a0b92a84a12891b85ab7590242cc84705b8cc412e3b6d51c649371a29dc40b5014b05213a0cad1b625a0612e319e01e071f0011eca5467bfa15dce071d158716f8b1a7bb1847c2d6afc6497f2d2b5eee08a7c65b539d606940cc0fe849c59ccc993535bc0e0c9270a18766991c192b668f5c237e39410f5a9e1a043cf60c93d55809fc23cb8dd82602584e02b07bb7f43dd4bc8739129426566c9dcb25f18b020506321336941f880fb2005f3de3b6357864a40984456c520265394490a885e920980c2fde86ab6a03453fea5261fc43de7a7cae42336e438d805a40ce678e3ee55dcbec0d65f18ac097758b55683b7078dbfb7ff3d43277e59ad800bc7adc12908a48f66b754a50baccf2b65a7bc2902730c5a643b96845a1f40ab6a44489d3c7bdc1002ac166bc82843ee45637671c2e631db80cce26b737aa76bc6d7616b97c20015c6f8c5245f920ba9359c99105974cd33437d335edab40157236ead61eb01c876d173fb1458f80c272f0775bd5c14ae5574293b638b15a1fd43472259915a0056f48a0a6cff8015624af63242b5f751a9101737299872334af8ed7bc3f146de88329f40191d8dba8184351b5d4737e654821e07cf046751272bfcab81f9059233b1c0260268a94839085ecc719eb51f8f2206597042640bff801a41178b6ad0836fe896b79726a4111b422f53129eb966457573e2027054a010a78b08e0222a2a78addc5b220cc13782c2100dc43a7e9addb2b38b6971a4f7349a933bf8a520173914ce333b22dc0755b39531492b16d3058571a573f29c215ba4911458166928cf3e42bd4d6a94143882bb2215c751bf0d3354ef66128503ad3b18db2e199fce7cb2f44bcf59bc9fc94afa941158318645bc8bb7b754ade749888265c310969d679950420219e642d75733b1a979f4dca04ab04c25bb6b7aec7230f3c6f4daa895153182cf41a5c0286c5d1c2af989858c440e550967d05c831270af731193e02ba83cccace61c529d2b991a43a68824c4e245355b1bc55789c5e9702c031936c3427e75b4325f32d92537f6ae58f9aa2bf01d380343347da168e50e334f3454c367151a33a7ed5a4852d623e3c39aba7557e57b97702667116b602a263b3b08245e96a5c949b12d8826611434f53da03c2eab5c2ea15a492bd677675fd82795b23cc3c1395cae1697e13b9f1bc7dde121c0a679cf0e20792501d309155cdbc3ce1504ecabc278d3c2b7c223cdc181a72f3b7c6c38d5ab09c64c1702e4b2918b22bad068c1fa98ab9d81d1df5b3ec9256afbab44155812a8650fbe6a37464bc12d8ad6f29c80f16a5938355d6078c3bca9b87c7529c5031b1f60a29866703a9b9c7181f95e7288d4a8eead892afd42ca009733fd372e9459aec9550f88a91ed4b7b3b677df8742cb177c4e7a90d183a0681dc84c0095c3e81c069e0589251079fdbccd3552dcd30a00bf57fc1635301e79d5b07a91b79a6e7d2a3244b6ec4d27e4152c9cb5024b1047687fc654c197b5d63bb3da2372767145ee29be1f8b83b3611a2316134617077d5bf66353f5e70c77725ab8e37653c2b90acfbb69e343061661e526ab12a3a51e1a16298dc5296591acc805b7c3aaff450cb550aa09e022b0d8912da9857ecf8cb65e3a6c2c171e865a472c8693a22307414a16b341f21f4059438cc8de79c657485efcaa1da14295a20cf33433be7f6be80ec13e38a93bf1b5298ccca644687e945b142d01b09dc94bfb91babb13127cc9694d88b15988472587f30b12d1df72220222643db5b2728af29ab247c713abb1b2040b20119ebbc991aa47825a8729c3bcfd38aedeb7cc260408f23556d17a69d334544016d9aaac488b2cbd2a0ea8d2694cd06b7d81c6a71703630a11a973b643e8ac197d041821d8354714f05c001c1948fdc135d26100d7bd32f8ad48dbe90c652c9d9704a0a3f00f4c2d3a74f679a0f6f18c3a039ec2a6fc1f0f8e066232d5e84 +ciphertext: 93f420ff58ce1cc3dc37d095f83b6dcb5107ccdaf3c82056ca5e81f3f2a6a8c8ee1d12da3d530afbe18d3683e07d476bd2ece42bbd8a6ffd52f4cde038656ce4b88665ecd19388d5b8a5568ea7dca934ec6e852c1abff0e513c51b0d983b3a5a6863d61eff3dda87f883557125fde434d3c36202b16ce837aacbda09c5ebb72b04bd1bab9dcd94f4df01fa67c0370cab939627b705b63a0746d483000f37ca008f8059198d3035bb41aa8929c0ffde911170152bba155d88da169badb62646614f9e07585a4ae20fb31ab98dc77c74c3f959a1f2520906ee38dccec958f4ae179135bb45019aca98652c4653682bf939112529047a00af1afa3948224b2f98940914f1777a9b5d1ec58ce7d33f2f1c8cadad9eb4ac4e5d59ab93ef0948dcec6ef4d1194de754f96ba40d39928ca62bd24c2fd5b31eda9bcdf9ada1a7e4d87c5e1fd974e1fe36db2f06c8d8ce0131d1dc4b076cfbdf6ae91f27e3c712aac49e0305cdf050f2b8bbfcbfdeebe6e3306a75791a238a2197260d8386e9973a0c0b1131263c0ffff1bba0ac2439b2dc5057941f0121ee0b4734eed77e23218ce7646676c6eb4f7e602f74ecb4dd183dec5892207302d8d3f839b6bff5b913af2078da57b74993dffab269b02ac3c0ac043f538b26329de1c9111cefe938b5adbd975c4bd6b5208f585f66c26cc62cba6f78452e18708df192cc2252dab39b897f582a0fd1a1ababe8935824fbd9119e2c6e2c163568e48582f58c3ed6557f4708cbd81cd9c9bc34e1317f1e3043ba21827d8d203acc126afe768c155f3d3f187b03e5a0d4dc40d781b733860941212d15418c3ea9462210f31494d6b94e631496a5ae9842de52c8accf0e59d56b42956949634aace4e0f4ac2b632bc88bef7d5a2f970a364e06715da61809af0d65896c36af4a59352ff7e0007f9d9316d67ebc5f1d3a77655d1714ddf724f90c37959ed2fc08791c29a5f5a0b41f2f66d22478af2e08595750c004acb688bfaeeaad41fb401d519cda9d5e9189f5412ee31724daf94cbad65545c7451df365ee2c91538f3cfdcba39958dcecb1a3302019ed970f04ba6c4bc27f32522c77ede3d6626916838250285e506179bd1444e0ec5923ddcaf7170f9759f000624b9111601080bd517a59adfbeebc610da858d39ac4f8b5b0a568c2faf821870fdced16f07857f30ac6e62fbb6258f7ed0ab27c4d22a795b5b9bc12e583c8310b9a9851236361ec1acf9e9a23d60006cc2c76b209bbed02e0638c437610dd1b23f45bc80a03399855349a0404667c5f680c41d6d2d8674b8bba4422fdf7a3636ac41f1a6e63665648c510e274a654de344ce55e48bc68a2fa346f9357a44a17447b137f3adbe35686ca9be9d8c3a04861ac4fa794523c9ddaf8246567affbc2d5175a18efa015416aa9385f2dc8133c154cf9b282a628a16008e4e747721726e4d6ffabf1a4204609d20c71341ea4401696ee9528b64cd69a0b30e21ee1f9eb4f587ed3e1ba003cd5105f55a7e4434fdb2741abdf6a62847c510d9d1984b94ed1dd1316bf4fd0ddfa86962698e2f0490cb8d512a1a31ffc034c45dcb1be51cab1cd6680782eee618b13b7389f3b40bf6232a9d7b254270a08c6a2a28c0229072cfb57a0c24eeb5d6d5fb7d4653bac5d47f3aa72f5c00c5a459ebc658868c60ecf8b5a1024f668ee54462ee20851c9fb8e521ce918a8b03e5e3699d591ef36dce81daa9360a25ab541e8db124d6cc901d67ec001fda05a924bfba8d17e62a7859aea0ff279a45218670a5cfd9bb6947f893fe7586ddf427f3229c30dff0dab112c4727f12d0a36599667b4452b6a2b0dba050fd05cd27a5af365af8a2b96ff1e6a3c055b84d017326415c39790b322b17f04ab703b250d064eb3a3ff80b7f0030eaf05c92cc26094f83737b3e9ba772f95d716697890455c670c08050d1fdb6a70b3506056a13b5e01e2fb30b94b5882f3c96450ca7f940f8c547e4969f0906462d48d1df182f6d4461e72ad44f72f5edfaa133d8ab98970c679599a233909cf535c46855cd82bf769d26c293f08c0d4e86acb4a78f7169597c97071ad2b1d3e7eed30fad0db8837d3c29e92f7b55a3e7efd396f4113b3af30a7d70d17b2b2bd2adb519705ad4401dbfb0a2b4ff279beea43c6e8077dbb34e59286c6c38e080c2f511882ab269307f35b01ed2edc9c6f0e8f9d0d0d2f72404d2107a5e142e4c0b3553c3fb12bdc33dd9a37cd +result: fail +shared_secret: + +# Ciphertext too long +private_key: 14857e70115e1c1b8797858fb5406ce5d35380dc7c9a440cbc60745888b71e5c1965a28c72d2bfd11578509ab79ad123ce243971e227f685a1168678e7e76076424d9f044ee72074a077ac2679a1d792b1fad4cda5ab8b2a786b686b1484d71e247a6ba84c06a6e307c4f348ab4ca2fe0b044e6bc6d2ac21ecb4bb42c94fc72ab033335129455a13d6348d822fa1005afc6a9ce2abc50bc3acd2c70b971093d699283693a431d76103a70ace102a381838eb0221d95933dbb6189010b17776862bb09465261c58455f41a96163d46a462aba1902901972c1e8110373855845098e78c196b2247e6586657fe39dc45c7d5d698045e79deb39bdf5942fe9511132e8a458b081063b79d9fa79ffbc660f939fd3b4617396003b4b0a0558619a53875eb2095df801920372bbb17c7212341b6b3da2e4a19cf075abe029a1563c83f8140fd38c57f999e8c25d3642bc534b454c515372579340f4a42d627c89f38a1196a821c7997d1c4accb7127b8a090d3ccb7e779d56e71f10cc6c4ba162e894936104bbbf913c6471303f5c82b0c098d96927c7eb232d41a70b130a1b761d98c620c8d81116b4a6590459a6f7a252422053672b1a870ac41784fda15a86b656fbe76108a1147452491df1659b4a886e1b5112022388f79c9424cd057c576da1bc11caa24663a1c191571ab271259653f7a2a28d818a5afa0c631c668ff3442a137811b83840633616856471aa11419b3409d19bb76013a3f9299d4c42e647cea58605b27a68fcdc064073b493e0307718b037681ba9ca6fef1ab92797493ea1a4237235d14b43c777900f11932470b31da2ce82a01dff8b5193144b82ba7588418509f8710ebc984572718334bdf960889c5391380a82dc7759dc4b9cc102aa865b51eb086de7e51298a7a8b4522cf0d6891005b7021bb84aac462477177688b17a066a1715b3feac357e5437f9c145c9d0b25a36313d0892e0990d28ab344ef00231623697e46c4d4aa8cab318fd634e82982d04607824b3b363321f5a4898bdc35238501434805296606fe993151ce52c1fd287a6c88658a968e73702dc143605b67a8a13303e2ac8df77607106c3bbbb3c512865cbd38676a4cb8e9418f6d95fe896290a165bd1a18164875db4026832ca14ee79aa8d6c51f74982ec2b52e586724d4184bfe234acc51be3403fa26031f36a3b79f33a394ca79db3809310c791932bb20330f955507f864f06c97dd834a98e745f36656f339ab3ea2c4c69a271a9749546648c9bb70e58674417765a32a61ab5e6937e9919aca80abac075957674b1648abef42ddf46c95ca87e59fc9356578a03358251e014507512b578aaba1c8ccbd20183a742ff4259e1f05db9738204423f8f5840cfb97ea776797e8b08bb76390240bbcaf7167846a4d1f003add1bcb4b16fc3921e983b9396357e24071d991c673629149f52c21eec7851e24fa64c705c08abaa391f745879c67242f5e96f123c5014fccc55b36751c8cddf64718f13ab7550648735a1ed641c5449c87d889711d80e4351789bd60846085a6036910c20591693bfe03a46fd1c669745a0d705655a46c06059b967f4153cc589bfa5b4b5a6238f93c1a19c91e4a433a9c9a4e3676884cc564684797344ba0f1ab133539164c5a2da622377d5620acb2d568192f6f98454837681f40843f02313d7750c30832f7777600014cf7971eb43b5892a29f66072cd13bc34f205d325136ccbb7e578c614b76f74d4a194b72e1c9aa1a6ab0a8fec47a458cfb58948cff1094a40892e6060f0ea194d153dec67a46b882f2da3b1e450baed178e4cd21c4fa2be65823911176887fc2ac609b6ffdcc5d8d787bda4956db218b0c45c4a6ca7dbb05f93684cbf67c76fb627113b858a9c7ef2627e5107cef5511e42178249b2073a3cadc7bab10821c2a9167739f1112a887ab1fabb94dc091082b03f1b8fa7e62d8dcc30ac67bfb429a01a61233f2b1a284b5bf1fb5b3903b50142643e932c4779574989cc2db574679701c1f3c7f90b996688515781a7ced170ee0576fb78393afa9da0738f11128299953b78870b8cdba0d6a1519e5a0039912d12c595ba346e9e1507f0dc048fc479177b50935b1edbf4c94ce76cd65821e95ac41e8a9da4d3046cbc63caf5420128847688892d7215507a0ce8598a56a78ac2d0a2439bbaa9c588c4f0681ec54c8a4ab13cfb369560932d3062427c5bc47c451e523f6d16058e06978b22ca150ab7c5e788d5f64735c09d56d6805b613a8e622187f8a9e72aae4e7cc6a2d62f77715541d8904051679bc913586c11893a11a980b5de08282fa164e0c66f89a269f0d15ce931ab71f11e52a9af0872a79c716578bcaf2fd588b9336347cab96f6c3e64f8aca37293a7c738dd766124fc9b172ac1dea1427d343cd3dc08fc4bc1620340c8037b47725013baa539ec4138d0426ed02eaaf4186feb4da614aadabcc74ba6adc6f7352d0c3ab5c38288063d4ae7b12ca725b5139ec75c9371d7989d6367a50b07620a00cf0b513476057f67ac8bab36837c5c86aa30d4172cb8519e54d91621057f09d9abeaa51de26c00bf5381dbe40888760b624624fbda9f4dd7a1f900c02a93aa8553c8866ba47ba61723612bd06841fc422cebd26ba9f7810fb8b14daa9ac2676da6c78ab33844c27029cd0107804b53b2285a4092ca313326a2b269df5097ffc4411b158291371fb6d299ce58616591624b260d200b6fb59850b18c7cf0d39b83166ed0fb46668c09e1161f537972e9a12d09a95155576ab16a2934dccee062b22963cec6529fbc521f0a8745a9e361a2d07b75f69bbe24c1907678cff29607774b7f5146d20986d95653fc193317c9540549ae74ca2b1d269044f77f22c796b442613268467615887c5822b651306848baab7c5cbe5a7feaf516955426a74bae7e773c0da03cdc2365c9cc8885e3a037c67d66b56c532b6317b4b9e5c6bc95e9399ab12a62f296ec759b9ac32a3d4a11a19cbf69928c7d01771a7c792bf0ca136130f82c7a437334e32402e869cc3e2c6bfa43abe4ec707be527e8e39e9903b9600abb2cb542b55c66595ca68317027c9c577ff30552e59e5b20bc44d1604302544863a054c48b1395ab03405c85fa241e7c151d60c0e57007ec54b7f1873f5eb365ab319b1a04672494243a7c792451a0bb1360ae38884e7b33002a38cfa56f70fa465fa00ef420b55397c0eb6b4a3d0929b138b43c9c08fd55652341b3414662e78468ab893b3240a09da149064801f7358b8fa60b5b84590b126350726ccc168176d85b6d90bdd843b676e961e8d4509d27cdc84aaee8d95ef34b7d77f909d7c83a2c115c52865cbcb38199f9ba3abb852eab4b87e4084ac6cb6a9b031215ca1f2a3e3a2024b0490e72279a79d03c46d474389cbb66043b5f60cc1553651c9c79339c317363036c296e2a66119e19b983d56118a93d0bc5a56f63c0bc54a2cb26418f37bf440320e343a868057e02307550ec19caeca76a9499553bc39bfc06685399f41c45f861abe8576a59a4a9dba7cb6c0408cae2515ce0379b6154786b006ca9b3c02979c068bff605605981706044b0c4cb6e8d639f6f89566dfc0945f64a1ad10d59d75686f31bd924a3b1083387b82111180c8789ae9ba7297919c779590228fa45911b55630a33985957676b49672c9ef2bc0687696e1119b23f7acb45a9078bc9026f89021134aae6501a3cc365885518fc0375ace11ff9b81026175329067ac1705310e61e142a6c7cf6c12da4af06806a34805cf7083dc63b91bbb5278711b973ab20f4d26af66c32a1ab77f0f4ca6ff24aecb42362ca3595b5a05d38984bfc5d2f8645dc5967995a2e063240ae764d5797074735904d5b8b7c5839a265a94aa21738095b70db4669e57193e6375d84cb4ae8ac5e596ab1501754b992eada39265b3c9eb302a9511a53698814d7ce463130695a1e44218e1d528dc8bb34be80277fc706f4629b7a332c4328628e562029dbceda348e4abb7c61979473cb93f5c92877a1a8d498355a5bb5ca11808476b89a30320667069cd2461f4999bb69bada819df5bbaac8c51896b64567eb3f4c5452c12415e318ce4866829df68a1833a76d66511e69545b231a11dc51181cbdec94be2ada35b3c8bfe94050c9ba143ef2325ef185e845b728488103d6173e80811641b03d1a9d60d05a36da81978997d3a93dd3bb6b62512b8afc868117bac511bd02799f3f4569e4b93ec0518b76fc7aabb72a3bb961dda820b4356c22f9a7cdb63876c57cece79141a32abb3b59d5a7139f8424b44732b47a6b8f105640558e90cc5db3f8548709fab584fe00ca423798c0f088f816c5674662619a46f7f4ef57e39d5add1c086c21a29761e82b7b821d0f6402414bb3a3bbf329d2fb00c790a2437fe133be92d0379d7d0561f44665b60252a3fe45c495fdf1f0f88f7b3c93d00fcc553dfc +ciphertext: 68fa356265ad575e5c46d426563eacdea82337ee5b83084d0b82f64e6943af7ac8c71c5928ef219748ca2e97af11f552737e06e8bc05edebeace9b1a941f1ccd3d605f4d7564563864d2f7d338adbe3801b35fcb0276452bd3cfa4fa174e86870b71e1a219ddb33ee88c6260550826c21313a85cf78989949038cfe9c799bb434ce160af6eb02b46cb7a0b3b005e5f27cbea0eded34f310ee10a33a73bb0404c16dd3e18e6d483c981c038a3bd117cec45fc5621bdf70c9a58749db761d65261c51b5264cfd8c766c9d8b6acb81ae1d8ffd643b19eb01fefdf58da5a21beeebb2fd7c08472e8a86c7716bf78b109ac558ceaf9b6e7930d5e3fd30618bf54754d51154f7bbcd3d49e1d67fe6178bacb88083698228c068c5801815270b4296209b51055215d2b97b6449298edb4726f80b3eb15a5a418e3bd6429e014bd5b4d969f4b332962be557142129bcd9416f41ed3d5c99fd044e02ecc929737c5bcab2e0c1e4741869581773fb3210d91e35c8c70ce05bdfe3e84e8d2bc8823256d555ccf9abfe4c58a55b18a76e3e4f14b6f6839b40a00697ab2c561056546f57501046f585a31077db1a6e9c2321c2917a30b8be26cf720abd1dbeb0666f801e0a4e19281f448c35e875c288e5b3ccf92d7f142e219f6d96133c88c4f38b8b57edda786402631845e9d16d86e76fc19d131e219cdaad829e17d3f1f64c637373a3438cee8c4e9728520d13bc91a1594dea5f2ad7ccb072a2ada834487cd21c5c6044c4dbc5b1d99c90d383cb3593dc5ceb838d0312db4db2a8ee0a68ba83c30fa0eb9ec0417e42ba9c0d83ce405b00cdae188afc9561ff76051e49a610b88cb9be546588e12efaf527e59ece674a29f80f5d753d575c2c0a2563c8505c3665c0a87921284a97e2ab3127aa97b2e666b52a22e1d364936b51863696162d8d6d89135eaba4d9a89e0b37f6ae1205fcdf3585117f9caf89133da22314b2955b9473a576a1127fe40192bb09e08666a32e96736c3ac479b27337ffb183382cc5436f25746f5863ebdc95302afb0d520ab9f7e046b2ba6d5d69233ab636724c60852a1a618e64d829450b44b9df917088b2c851c1686ee1e8bfafe38ecde54754e39bfe7923babaf95d3432359afd61cd0ccbf88739d6dc86c66d466c007454986fba80cff81e9e70106c0637c903f3ccdbb7f913a7c41057203d0656d34d35cc193d05a1696a0fa609339035d80d0166a72b87282651b7b0672aeb42ff1d3858e0e7ab7cceaf5b92a30046607f5edf963f73d9565c4ca5abfe4c48193cbe7adec8df98060cfaf993e46aa49a434e2ba1fa27841cc30ee3cb0ddcecca965faa0f4fc9b6b4db318e32c3c68cbe6b54450211575b0d5e1554e986ce33982e07510b6814956f62eeaa437d1d5ef3c949b8dc68eb881393486a20986049273d1f8c5317ba37f5f86128039751b76701ba6b9df6aa54edcd9147ea86d1b0560a1e4af8dae5b16a79667d65706f0a17aa132e8b4b9c64d3ade47c3693abeaa57e0bb6194dd4f18f3748b7cc69b74eeede42293f14bd56ad8e7038b5de7128461a631de0aecb9e710caf97fd3cee7bb7e9ef3bc03ae7c00505fb96686e5ce795cc3088c8993a8199cb9584576ce2cac6440a0c87e5186fb01050fa22b38f20ecae87bbfb442e5dee3e825202003f45c8f9873f59179c5a568c3c5cbd618290f74f7049dcdb0603050c5d2a0b8078ee68ca395c6df80d3e3a49ed02834696d99af04fcc0c8bf840240db45ded36638dbb0e3a92a314c0ed0774f401aadc91d53ab198af9bd1d4dbc1c8b1524a88bac33674f81969a350564a99d005658a49a767911169dfdbb24de8dcee6476fe95b74d6e3547e48b63a3bcd14d4d9d1a635d95e1e9f22eef897a74a5748b271f216f5c2785a957543476d05d89c736fbc678abedf0f75f3893fb9b8102fe25344731edd9cba796ed11617b6bf3df1e7905fd3d0bf8a0443dbe7607b8ca96718a7511994334e2ba6fb81723f5abc5649a09fccafd6586ac1d627682c3f048ad9edf320eb3a303b5eb0e45cf15e4ac33a7d21c60431ac7fcf9455f3faecae1ff9c963b0926bcee4c9427b521803fc1333600eec18882e75c3f74b1d15e362efc22302644dae6c5b75de88d29dc387bee6d95806c36fa0020e0756e3205ddefaf8da69efde24103df6bd010f9d88c323d07f241df5fb37b311f4c41a00d9014118f3939e3df6533e4694d2292663bf80c69272c8be61f4b9c2d70de7f9 +result: fail +shared_secret: + +# Zero secret and error +private_key: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef29e29f750f394807ec879386317ee41abbe06c10bb51bfcabe2f194f9687c46d211536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 30a0fa10e8c0f94f9e11093a8416c0c21c8d76f192b2c5bb48149a874efa1dd6ae457ab33900dfa4e04b117396c5b8cfacda8d01bec1eb08e83c11280b885b8d883344df96cc32edd098b05d3ee2a30081fcea4cb7f6bfa4658a0f3cd3299be05ed2ffaa90d6791469d383bb2f07d61e25d5739de0652980a072fb5803c361d81413004161390926457e7384a6d7c37a7b0b6ee33fe95b6078b3bf085a1b080ca03ed6d7729750117d41880c8ef0e402bc15bd81b3cf4272cb84db3f48682968f683ef7bd5c07fa0f85b6787e83b9c6d9e665befc7d0843a0b911893c9699d99c36c8a95f1f61edfce6803eef39fb2d555503809289877a78ddd41b7f271b8d8ca6f01bb6a2262cc6b459488677c67fc2035c47fd20e33bdd9a81d279fb7f1ff9b5b8d3e000c02c68d590e637fbfc899c9fdc7a10fe7348e2bcf4f1f731ced7f5741175ea484c85f8304c37f1949980a0ec0101935f7ca9bbdbbb4fdbeed3a56238344419655dcd2dc0bf0a2abdd81fabfe56440f44c615992d1c1b9478334c199c40d4b62494be60d0d18a2cb1515060d884fd39e4856cc2c8b4030b46a00c33804d3d2d9b6408ab6a258d4ba55c52f9eb7c864f2511899d28b91fe9c1e328d867f404f7dc523c89ea66dbf934f2d231b63d5b4329a8f09a336554da77bd22c506823a69341af85a0561015c84cd1a52391ecbad57667a2a0a99cc7bd0e6a18dcaacab1b6c7f9173fc1b7bf247bd8e2564f74fa9d0e6a8a7cfcc5597e27d06962ef3f78d182e21a7eaf77c8f783f916b170ca79e3f1032f2ebfee0b9676806fb5ad881a6db806bfff8bb077bd1e0e988de526469e3ed6970254781bf0d3f1729958bf73f59da6b7ece2e7e3b7c3b558bb63825111422d7320086a34e459c9681bad81cc89db23a376bd620588eb381839a5f819dd826b13c060b48488cc857298b614dfe1e61b8684efc110fdaf72fe0c79d0d1d4de979a75a5f58a783fc074a1b0f3e5251cac2b0a798a31bf9b8e5c2f84ddcf2ba8a7d81878aae9c53ad2bdefa5cab9c2f1637ffb2299af62f382e4dc843c0e6c989c6a983d86675531e3b297ebc8254250f052addf07df3ea7a104bea20052cb7037e68b52bdf205cc8b77bb90c6fe671182fab394eb62bf39733db9fc1a18f307a788038d3a58a18e6661a74b4a2e55c24d42cb2824856138c1898630e059087837409612cfc8a7635a1e6c985506711c737ea7aeee42851c9edfce69500b34d15357b14867fcafd459e2de311b826d8c3819eff5ec2f16c6f6c59bfdbb4d9c63997c1e0b461170326cca23cda09f0c0f978ff75800ee67916d521b87ac96e09d8230a9df27626420d17842aac5e20aad404c07e1c1bb32f4fae720bda3ebb8652c5ac9259e9bde7b0430176ed477977116cdf18948d2e117be3a5bc996ea9738c4709b2ff9f625d34128801d696f6b5d0730ed935907b170d9b1d0099a4a221e7c488aa1b341a212a12bfb44f89f13fd33af275816b2c8a56b8a2ba19893efab7809efbe92453d339046e6cf08fd6104d8a487b385975eee673955e059bb997ebdad498bf4c2825355e5d4732e78d4d9288c247a5c4d2e53d5d1d6dcdfb19a82a610614abfaf61e982f9d17bc10221c3ea5033679407b7cfe22fcbbf9e1a7e8900b29b9cca73a8d3461586f78733dde42d12e9bf39d14735dd4c1382b3613c9bcb057feabaf0e90de42c9c16fe87c704c0b03cf324b4316653a9c1257affe86d5bba7f17d4973ac798e5a4ecbd6227b2da17f4eaa462faaaf6cf17adaa4b3564c0a012422480cf3bdac498dc9750a486ff54662135f72e23addecba2b49d85a254259dfbf2579a1be48a93a3a31045046936bdd268c2aa54cee82c4148ad281bccb8bf3677e3ede6dde20ffd2b61836fcd80e106c92d72a35b57d4ea17366f92743ac36b77339077882491a1288c8744a435cdcf21dce1eb4196e076b269d2652152500aa9bc2b1238e910400820801040002184000000010000400801840042080000100008018000020821041000002184104208000400420001800040002084004200008010420821001000002100004000200410400021040042082180100008010410400000801002080000000008008410000020040002080084104008000010020801001040000000104008210410020820040040000180100200008410400021800042000184 +result: pass +shared_secret: c5aa00b1b6e55e6aeecc23499baced296d8576f3674ba6a9da68bb14101194ce + +# Zero error +private_key: 76da327e31334a81297ac41a07b9c1d4e04ef3fb8b06e9bc13071c98f6a80523801d0c6e5e7848d143a5dc011eab319ce6308bde406c4ca459fd3c20c5c76dab11c3eff0a060f52d6c677242b6019ea40c0709d071f587c06557d0cc36f7c428383834b69b877308c55e8c816d8195f614336e50357da66fb3f03de7c3742fb23c2398c7868690648122afe321a0b2b55abb99306265b8e9c4be1771b7727775a25adb2108a8d62bf5c18571267e6c1b5dfc547019c331532a40550579e79426304b52c88cb722da72d63a8da549731d5625a6e28db6ec22f3d1733df7775d5771857382bbca11dd271fc35b4854f58b6ffb25fd42286823790b1bbccb40c105e38092f5a744e19d7b758ce2a5379fcb1f401aa4db967fee4bcfd73811b214516a098d1cc726ba418118e14970aaab00293bdd9b18de001075e2a1d25183bca677db703b010a7f3166b7a4bc374b913394c504463a42cbac84ea799d70db4ac0db6dc3da8c78149bae1cc5e4b65f701bca315866d6a67e9bebbea36ca91fa694929cba572c60a1d1006c95941a640d472bc2b30cbb635087170381a4328cbd462964c80692f224ca17575fd7cce32425d6fb19a363cd114524d8c4106cb628253bca70377aa242751b626447fc43de18333dc21c841c236eb0b2073a2a8f9a268c931669daa4c9036228394fc8a0a2cf809a1a2929a5ccc98f924a9b7282f922c5ecd96cd1436b5b21692610a44747a2435807c50581dad25268d737fee3834a54967e76c3e7f537023b57f6a7b58c191427a12282e06421289448c97f7cb042ca66927a417e6747b3dd501d119cbd4dc43d18174aac099ef85839c7d9425d87a17cd77ccd568bbf4bb0fa8ca4e5005f9ae815a307471219a9aaf60bea631e07162a1818c3c5da6c29385fbeaa76ff4804beca79d1f842c46b9fb29c81fc4875afa0b178564d26b26cb21aaad891822ecb471b76a869b83838388b9f5839e0c344a7eab55c392c99019a0841b20dd14f36875853c6150fa46c2572828f51b9636b00bad5940912923252be3c49190577c928d5bcd6983bccf00875db487287ada1849d3339069195380c1a3ea34703792251e5c7877523c1b6278f9e40cfb1614a04c01d966c41bea36a10492edba56a90e370c1995de2203aff43002446a30f3771af65924b8354e0dc2fb4aab0295925a23576e4e9770740845ba541eb23610125c782c6c82af506d9a25d148373f5f48537d7b0df7c9e72f10938f9cd66aa6b2dea9322412eb01cb04de39797f78efa29186af03d90588d8488914f94033b644663269435e2c26b47297af4a324526301f2cea3446c2507717e83c29c8a53f277cb739851bfc94db3db6c6d2a35df897ad06420452281d1659e7aa89e3062abd2a1a7113cb373e6856b7acc402abd86418c554858eecbc2b38b8b9920cc0fa091b891c8a4248cbec13d52984c6512a025ca69b34477dda65e12b7839128427c42832a1c5f31e5c3ec09497667ca7e0059c5f43889460344fb6985441afee726b58172e2ba2312aa10639737325cb82e2947299b94aa8bb021857232878b45b03f9f0ba5b0ab75c1773c471ab51e666231c3c37f1bc4630628a9b1272fb9af6268b734e27627797582803cfe6006230901d074c72fd0755e011d676a8e69d41459c31fa5aa5de74814d0eccb67d6151dfab3d83927623242d78367f20249ee924c2b582d9d775a1cec0155a64f058aa6741867c7e491f6b53f1f8267832b7a6a8494dd249680a5b147579503425a55914580810673d507a2b0cf003cad1ca3809f6a06706ba72034ab8e79340d6232eef9815e761f6343a3bae63004c57bfe876b8d4a6a8b1550db541b359aa0f192a3fc2937078875ef55aaedc2115201c721db56b170239582cdb5c72ac4c7c94508210ab0bfbd1ac7cdf891fb370522ebb8a087709b3803069843dcd8bb4ce28663019cb470413e78097d933b44621b1f3a0930839807a13325900d0536a8f280225afaafd1d76c0e7aad8fa3af38884440d5b3a9f56922720d6854979b835c4ff69af290aa94d662fef6be4c46760b200333992f4df215425296f8d50876a94753024dd176991ea8a4b4256fa25a7ad7429303172bc7c06382316a61c0b2746252d2d7b1f501b2f9d6457e09955e29542a2b8a9b681139477ce641c0e766a4573c65fdd08b74038ac64021fa53ab9e2801743c9cf730b0609985059bc12ac92c61d86ee425b5811c6e4b144f0ba3599d7bcc83ccc4462c0aa17c7dc9d55598aca3a48b6ab4479eb4f4584796c64d2c74c360a34c901f08d00d4e4cc7e70c7b816bb0fbd323ce96416102580ae89095d4cb5ae93cd9b105d1065402a4a2681255d0821a21953ff851c23648a849ba27b267c0e70558d54146031482653116570a0fb6e7a63fd5b0ea9212a920c43467740642cfcb53130cb77a2a3bc678572235920191973075fcc1e769480895bc7cfa3c4c8068c3907c8da657e656bd8572a54f80847683639991952ad7b978e49d0022c17adb021030c54ed691e7b0b738c0b7078442651b979c46b0786b45ae446f73b56ce1b64042f5b27bc470efaa8ace21afff35487aeaa8d635bc607908e3f00236c74017dc0b515863ae690984f56c5156a70fe97f72e913ba74a7d04cae8b14364e2baea90695b5e36344107835ccc4335552f228c32e861f21357bb345663a1b9d70ac37ad9b4a937c304fd887048b8364744536a443540b7b5e572522a8c969b8a45068622982ad161c5ca1b69f9084657bcbc36025a82cd416beb15f037c045371617a81bc9bda545628804e4cb0b9ab7a6bc959ed6616465323f9b861521cb493da674c579b6799584af793459a2d1513345e67c06c1b268930c6d4dc0cc56c93e7f01bbafc589e178491f6206f9c89816622b8d5c19795c7c3404b54404629933fb6bcc03f99ad2155c332eb4181da3d07c35c048920f35a7bac1b465545018b899a5248b53f354cbbe01a004602dfac254efb3bb42130f55520921a712b20cd250bbb0d7949db4a05f5a64797417158241ca40c49dc83186cc236be4774e51856da828a5143588d32cf17c7a8d44aaa7be6aa96c794773b656a622609ac22b7b302dc88ce0d317c8a18877db8168621485edb278a0561d7abbbe33560b2eac30cb6b05f850418e1293d8566b5c370cadc2b80c10c9a84a47bc217bd645df4d627d9b28bc898701d87a07560918ba0a657589660972a7d636df533c58c02cdf960a6083c5a1452ab54673dffd2769dd8b95fc761b152181e2484be9c5e7412a994b81478a863e32489ad294cd7f60e2648a42f8890c740220cf4564725b290355cb86834b08182b54ccad880a4fe3617d0e04dd651334c00ab396c42829a45e149b3bf584f25e1aa674293e132a2a75b5e5ee4c6977a2b1df64220683326fa3a7b3888e42a51f712c944f9cd5aa6cd992c7f60b0858a638862b178080c5ccbe45ab9e07b35d37c34397cd2c6280226402784c04bb6c1d8492d5c021969108c13c7b2d1e605711a71256a3216557687f69a8ce38e8e3c74c12798e7547653418ac2b41133b3172a734d3c632930e2638750cab4d0883261598df19f1ebcb5c1baac516a4167f3c14e271d6348bc92ec1da704996bf9c53177855028335b834bd0340123a67632598afe146298177668c967fc4461ae3237a38a1be079a460a7a5d7d6cab0345ba945708d604b2a037198aa7209a9356270010cfb96f663b35601c92dfcb202d027e753a662e060ddd90360bbb38f4301111c509d624abc4752ae1898cc5732a518061c4ba4aba3ab5b9a66d9e8a679ca31136aa709e14cd35a129e693436990836c0648aeb5815e34a91e0ca3ad6838e859b2169b6e482492ed42bf2026b0508b733e437f1c6cdee0654c73b98b740474e2b9a19d08878855564893059904623711c42b62e34733e583424a9d25fec3b20b6345b28801d3db830cd503aabaa5120a040ab31513af89fbd0b8e11034abe120be9f99756bb26a9952615527ba4a1c0cc562cf565635fba5d2894b846b19907aca15e1979136c79b737821ed74839584de5b7493121c7cea71e6b744e42fa278690a6c9f434c0d51e28f5ad045c6d88969bc1e7b68b1b13a1d1a01e0a913e187eb861023a8268061692c7db71cc1272b63094e4c28163ac636fdb5a9422757744032b329e0891232a60cf1d5b71b2090bed7807a2d09ca1192541290ce65605e4197951e87c85ab3a41aa7e76d4b9e4d691c3d54aa27595a86a218b396fdd99642515bd4dc38dd7861b17e30eaac2c3e139381e2ba17056b7a7a07f7c9626f716c454e66c0a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef224f69e9f571543a7fdc1819f44df00286533560a2d7c8e23d8d8c811bbe9f90d11536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 8702ea652463d333c0695063d67f213d9e150f2e3aebe2d2bc992677e4492bb95fb116e17e8c5caf5067ce0c9c2d8c81369ec85fb7dcfb0ba32dc924a67eee3f92e13251bf1ffef5b1e3f98f25f7a8446a0305296e097e51bd157e97d476258ab146f7160413416a86f4b2a860971c1169d3b01a82201929cf2dd258c693e2becc839ceeb97c9b570e26a54cc1915ef8f17c47fa0b1d0b6bc9f25379514fd234425d02ef22cbc151fc2cbdf4549bef807afa1ec7e5caece5a8f4b62f2b388c210357c998e61fb205dc975c8fb5814345671bb8a614f911bd4de6eefb458a74d95093ca17549940c65101d62bfddfd4aae3c9a7adee294ad409ef778b1c25811cca3ece5928dfd6f3bd8a4da41a81b7973d5df2b1c25d0610ccd9b61e477785908d70b23a6ca9ec11a9c63ef6f52b624d66243925d2f5c2f90538540304bd3a11c76344c2aa90a12d8aedd1c6517732a15948fd3bb6a2e736b33bf68e816f19905b1a96156e2431da5525147d35d6b903708add85dd102658ab1972aa19cee456b7ba1c7847cd6b4f132068833a70cebc4b23a63771f4afe8f2aeb077572c76132033b2575c1dcfd12521d1249a5e38a8ad06979601f18e156518157a7c8e6526b957f657f8489e2224cfb73b2d1736837507fecddddac860a587122a98a08c137108e5fe9f9b2feef6b52e712e3493f66c98ea9cfa08aec95b27220f5b219689216b8e0aba6ee8a7e758730108652776d100680e800d6613aee85f831c3d92fea5123136d204f8983a7aaaca63d812234da3ff596ccd4970467f24217565b6069b6bebf58ed984a2f0476cde2319aaa792e46eb6b84f4c3c20ca27183f1e3e2be347b5d1250a666a81c5936b8d0f569db64aec4c2bb1099e6c5aa6b726a1617026c2c8eb5e72925d030759677863cae4f09018377636b69f2aad335200934ad4bd622fee2780b11bf1373000491724b37fe82d8d26a869bfb4d003dc0f85961dec623dbac4c55e7a9c439eb91ea01960d3103b7c0aa052e81acdaf1286620229f5a2973e8b0a72eb423cf068fac5c26190bc90afc16938eedbb5ddb3c9b5bdc8a595ac12f9c80dcb9abefda4268b8d74c7462104f105cf3437bd2cbd337dc5d71b552936e9df0e47eaed472f1162e2bb1b94ca19d449f7d1fcaf0e737a07075352aa6a45318981f9e67a6b23c2d03b3655147fb0d2b07462d64277b6cd11f4ffe969929a20774a885831ca24abddf752cc6133f8211edb3b5229218c9a61fb3683be29c7a2beab256efed36c6537614c77089ce44a6402a07c54cbcc105c4c1d7f35d2390ea2248fea06f472ed018548b1377738e62c081345659121a3948afd758c3fc764291c17f1274f6025c802f42ef00c6d692311c27035d7ed2ffd32d82671aa31429ba471b605993770e093a9ae706d523accf9684fb12a7b6e6da228e9e781a8c28f6cb6da9a6876f0e5dfe2fea4b6da856dc981ad8323dadb1768aee416471b87819d3685564ffb3bfb3ef1dc93289416b540f3a2f46f29bbdf9fe05155ed8d12adf5f85f372999b113d780e3034715f6e143c256cb2c50e86b044cb5449d09576e776520f8206ec7f9deeba0db6a4a131f0fc99e8bc794ed12e45bfdc9ad5e40a7f6825ce57f3f396f20afd968574b6ad34f3c150dd65ee11b7e0e396067e7d3931b493089ac078a812fdb2e6a56b04058a53d0c8fa9d0e6497cd89b0f35abaa09b3c8cfe7c89caa9325bac5440e971bc0ddaccc7390456b7ae38e51862522193e90d0d6452d19c2501edeb37567a0c6a9f9aa9b6dab2058bd08b3ed4f90e823ec4fc4c003e137004e0bda32bb843defc50ac4d0e6c21e1c8456963db80c3798319336723f4cad669696cc3ba07c98f986a9b7559bada4540b10fc50ea11d4eabb00baa323f4a8f4b93bed5561aa3dd36a0c8c9f56a684b65f08c7e725f60bab7f786b26921f9a638f7046fcd25ca266a4cdf774f29fd683d97750b7a9f551e99b04b3e6345f831cff027bae6919beab52eedcd93a2295f54cf4b14b010500d18493f99439a6f528212681d240adf2cc4556daf03ed57e19689f09f29a06b618fbe8428bbce371514c8b15cd9c34da0009fb854a8299b7d02f1c8b0350628c901427274f6e5c7f34c2097a56e0251eb14e5ea5d5ac0b12c778476d1eb4a85513387ecad05510f64bf10d1325a91f670ff6fed9c4a8421ac98c0d06 +result: pass +shared_secret: 4aff47d4682e6b414067b3020720ed442d0e2fb4a2b15c38df29723b8bab7b85 + +# Zero secret +private_key: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076da327e31334a81297ac41a07b9c1d4e04ef3fb8b06e9bc13071c98f6a80523801d0c6e5e7848d143a5dc011eab319ce6308bde406c4ca459fd3c20c5c76dab11c3eff0a060f52d6c677242b6019ea40c0709d071f587c06557d0cc36f7c428383834b69b877308c55e8c816d8195f614336e50357da66fb3f03de7c3742fb23c2398c7868690648122afe321a0b2b55abb99306265b8e9c4be1771b7727775a25adb2108a8d62bf5c18571267e6c1b5dfc547019c331532a40550579e79426304b52c88cb722da72d63a8da549731d5625a6e28db6ec22f3d1733df7775d5771857382bbca11dd271fc35b4854f58b6ffb25fd42286823790b1bbccb40c105e38092f5a744e19d7b758ce2a5379fcb1f401aa4db967fee4bcfd73811b214516a098d1cc726ba418118e14970aaab00293bdd9b18de001075e2a1d25183bca677db703b010a7f3166b7a4bc374b913394c504463a42cbac84ea799d70db4ac0db6dc3da8c78149bae1cc5e4b65f701bca315866d6a67e9bebbea36ca91fa694929cba572c60a1d1006c95941a640d472bc2b30cbb635087170381a4328cbd462964c80692f224ca17575fd7cce32425d6fb19a363cd114524d8c4106cb628253bca70377aa242751b626447fc43de18333dc21c841c236eb0b2073a2a8f9a268c931669daa4c9036228394fc8a0a2cf809a1a2929a5ccc98f924a9b7282f922c5ecd96cd1436b5b21692610a44747a2435807c50581dad25268d737fee3834a54967e76c3e7f537023b57f6a7b58c191427a12282e06421289448c97f7cb042ca66927a417e6747b3dd501d119cbd4dc43d18174aac099ef85839c7d9425d87a17cd77ccd568bbf4bb0fa8ca4e5005f9ae815a307471219a9aaf60bea631e07162a1818c3c5da6c29385fbeaa76ff4804beca79d1f842c46b9fb29c81fc4875afa0b178564d26b26cb21aaad891822ecb471b76a869b83838388b9f5839e0c344a7eab55c392c99019a0841b20dd14f36875853c6150fa46c2572828f51b9636b00bad5940912923252be3c49190577c928d5bcd6983bccf00875db487287ada1849d3339069195380c1a3ea34703792251e5c7877523c1b6278f9e40cfb1614a04c01d966c41bea36a10492edba56a90e370c1995de2203aff43002446a30f3771af65924b8354e0dc2fb4aab0295925a23576e4e9770740845ba541eb23610125c782c6c82af506d9a25d148373f5f48537d7b0df7c9e72f10938f9cd66aa6b2dea9322412eb01cb04de39797f78efa29186af03d90588d8488914f94033b644663269435e2c26b47297af4a324526301f2cea3446c2507717e83c29c8a53f277cb739851bfc94db3db6c6d2a35df897ad06420452281d1659e7aa89e3062abd2a1a7113cb373e6856b7acc402abd86418c554858eecbc2b38b8b9920cc0fa091b891c8a4248cbec13d52984c6512a025ca69b34477dda65e12b7839128427c42832a1c5f31e5c3ec09497667ca7e0059c5f43889460344fb6985441afee726b58172e2ba2312aa10639737325cb82e2947299b94aa8bb021857232878b45b03f9f0ba5b0ab75c1773c471ab51e666231c3c37f1bc4630628a9b1272fb9af6268b734e27627797582803cfe6006230901d074c72fd0755e011d676a8e69d41459c31fa5aa5de74814d0eccb67d6151dfab3d83927623242d78367f20249ee924c2b582d9d775a1cec0155a64f058aa6741867c7e491f6b53f1f8267832b7a6a8494dd249680a5b147579503425a55914580810673d507a2b0cf003cad1ca3809f6a06706ba72034ab8e79340d6232eef9815e761f6343a3bae63004c57bfe876b8d4a6a8b1550db541b359aa0f192a3fc2937078875ef55aaedc2115201c721db56b170239582cdb5c72ac4c7c94508210ab0bfbd1ac7cdf891fb370522ebb8a087709b3803069843dcd8bb4ce28663019cb470413e78097d933b44621b1f3a0930839807a13325900d0536a8f280225afaafd1d76c0e7aad8fa3af38884440d5b3a9f56922720d6854979b835c4ff69af290aa94d662fef6be4c46760b200333992f4df215425296f8d50876a94753024dd176991ea8a4b4256fa25a7ad7429303172bc7c06382316a61c0b2746252d2d7b1f501b2f9d6457e09955e29540a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2390505f8fe5464cda5ff3108cabeaf9343650b2c810ac7885a566a0e966dcc7911536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: f0e103c8bf553c2dd0a1043aa1c6eda544ac9ebefb081b1724be5cc4bf4167e8f59c53e11c2d2005310f3ac9e470759f8297971fbe8c08e7edcf5501164ded5e40e0cc9883ce1a8a574579cc7f675780e1f130ebfd2a83fc6fb276da2e6baaaa80b9b27cd19268ed6db19ed2e5f8467e831e5b19d6afd169ca9789c58b887214fe589a0fa5ecbcd88866dd2f574c39813b4bca5de8ee9577af32ca11bc6e17ca841d7c565a630c145855dc974b9584ca24c9979f46516440c2f5d35f148283cbd41db73bfddffb5a36420cb3c0d15e81f1d6e0c5e99b4693a7c83a51ecf91d7833cfea740e2e53f294c767bae0982a46532c35737fb5a23fcdd46d530b7b0cad6127a66ad052ee518006c6024bc2b2944d9b7536d47287dedf8a1bf6dfcd8373444a379fd1756d1189ea101e7c26f579b32525973eec803b074764b13d96d60f68a279e34c04f3e43bec799fb0fcd25da9eb14c4ae21d10a1dd7cea23b2ed5724f3ffa5d37766a34bb9d3aa8330a923a41925a7aaf071593ba163913aeba546c75d889750492ac376acf12e841cfc53f28a82a1ce65d29289a57218731c0b7ff814ce4ea7cdc087bab5cd2d57f0f1a45d9ad7096323edb3ef3558649f8aa2fe49a146244991f1d0cbf2c2e74e50038d6c47d80479e04f6cac03e667dad2c8865d6c8cef96cab4d3361e3def6e0b45a2dc81a4993e05177f2fcf013d992a943cb0b11b6a75861bfc8ad534065aa832915b254fddffa898c69c24514ee452ee1f7d8e052bcf3f6f598fa69db0ce6b3397994cd1f139e665d87ddc69ff6a4b7368ec4e5d026fbb16c44a62a33c2644a93128cb76397516dc88f664261bd09409b2d0187cb73e3744854ced4d6cb1099c56fb325dc93232ba353e421c3e318669f821df71c6d8bc68cacd45958442575b9960b0d903406c2d6c8577bb1a3ca8e24f47c7bcd2fd6a4ab83a3caa554c6695b286b115df21699a78269b25ad7013978daa30290d541f3060b01e9c3fa0d703322700227d84101c9d50dbddd00c92f57154ec9cff10a3dbfe6c2d4b5a0e0099dbc9b4883dbe2d1ad748fa6b5136d8759b9ed314d330a8822ecd74df76cb605087875150b205ecc1b73023bc185b8bb44c8c3c32d76948bde1249730aaa1f52e11754b2037d2cbad433c9beba44b6c8cf19b15e688360dd2cb7d9832926ae72b5533cda8ef08a0f92c5c1c5c287caa02b79eeb8073492e46cc4183fa2d4623a36e0a968ccc6ac29ee9ee3582182c261c7c0960f163b290f2ef893da422ad03fcf3926942570c186e7a90bba86ff792472911cb04bf72a8067190d4d87331d52d4505618c60de95142db27f784c012e209addd58bbcda062c590296be66722e175ac6536c58bd10a68b6d75513c78853d4d1f796bf477cf380c7f533f741460c9c5c2d1ad851db4b761b9c5eab3fd9d291e7921039150f8d2b81f86f1f997214660ef4cc63eca4b6c76bb5742fa9920d6e2db3480ae82380fcfb8caf51abe21094736f58cd7e6706b5d10c4b33f021bce59d288bb41faace2411a0ac5c766fc7d87c5d6a4f0cf2fe16cce09dc7ddf8d968366ac293ddbe9c0c709a4c0b28eaf2e23b4212c1191112fb9a316aea3334ff9f4645245420006c406724cd7f254a46097daf669c2b137560a25432030a6c7d6f4732594f21a277b610b870222b4ff561a6401f10b35cc5045020cad9479bb449322d37df22c9522c8b7c5c0c4897b1175f0dd40038a477c46e10f10f4289a81477a07b8ea223007e25f5b871d246e585083240c56c3d80d4425ff7821f17acc96121ca9ca50b95ea46ef8116734d015ce88021c620b57fe83b5022ebd980856d5102e4e80d7b176bb79209809cc32a7d246df9df5b0375bac96547962c413f516f4f0c24c8921d148f0a168ed5e0434b72538b9e5cdbc00b7e7984c243872fe44baba62b917a3f0601b81cb1e6cd89de2f38d0fafc2eade0b00a573d59d290586f1040082080104000218c000000010000400801840042080000100008c18700020821041000002184104208c003004600018020400020840042100080304208210011000021f8004000200410400021041fc207618010000801041040004080f0010800f8000008c083300000200ce001080084104008000030020801f80f40000000104008210410020820040044000180100200008410400061880042004184 +result: pass +shared_secret: 71a637ef1645d00719e56ef39217bb4d8b2cbc71db826affc2529589830148cb + +# Random ciphertext +private_key: ca72833ad0c1cd646e55e3b7f1b9576bc10849239af513bf9a6b254b5739f79bb926492b40acc649dba29735635e595da7d562e8fc30b45c052c91643a663fbd3196e94a65e08071c42508ee1347edeb541674399665b0019194acc73f10e5c021448336ea636c66119b8b120f2c8b19bc922d32065e6938b0b6864a19ba69cc3cd9904fea7b88dab232fea39640577346b8ccffd18d364a56b41c4ebea4973a03c942150782576447baa6f7dc6c6370c63b81407d149bea345fe6d56e47a66435e603450b9bd8e7a55c0488d5fbb1c5c9bc9b378c84379cb68994f334b6646965438708174a1fe1c9b6bc8597c2e359f20b8041dc2d013aa3f4eb6f62d72c64596dbd0927557a1a75249f6d51144d23113857766ef315a2d0b6953c92db8b60e79b98115389536a5a2aa048f345156faa0c6554bc8c225a3d0bb961a494b33c8e046b141f52a0fdbb846137bcdba04c0c04b15144ccddf4311d490bed914ca73a31c172c5c04a90a3184b27e75f91c1c635da8287c73f7ce4633c988c60f62fc8a59a8361319d7a1b4e2ac837a94bd1da72a053a2ae814a30908c69c0419ffc969f7348bcecbac059cef80cc3d19b0a9107ab17d661646688b1d6395a4840fde60b775237a7012029b55c2440ade5f065f72190b6524372b61795eb3a4f7249817180f2620de2071d6b0b80f6f8108473a70cfa51be705adf2ab2da7530d82a20cd038079a96b8ea3371fd6721a74cf1698085e322b7215a445791360638c0dab2bedb94d8939395da399710815b821a07bf6adea2948bf622e0ed899a8068277fc264bc883c1675fcf6b115f93278e4b77dac9a4c7b5abb336c20baac2ae68a72a3b94e811b90876687a77a383b881cfc59e1fe8992c0973aa63a7fe7264d866b39358c50ae650796baead09cdce0745146491b44c88070b25a5c0a11157b469518a82d372a652545a537377941c38e3aabb1b427d0a87a42b78842377deeab8a40a70133993dd77097ee727ab791f6f577faaea177fc435a9631edfa32a25a41891c03854454918c692176458ca50a32da910c5c39c3ce474c05662699875a246b7501a90dc9ac029e59f2f94c4c1509f7be3cd43e12263a995d7f293fd9759f7218118eb1be64248bfd273204a09a7c61aa0f6bdf562802d42a034a539b2a72c1a661d7e7b061b0b331d6a26aba04518f495b800383bc63b0df260f33692b7545d315c9c58179a2af67e82c1627f73285c3a5cfc807d830ccf84484ea78c863178a96f2bba07d9684bf712b9d55bf939745e0a2f9b4ab4a61b313b35149c5b48e50911dd15b5ef3b59bee9735c70328e35352886123a107f54e00d20655b498032dbf182c631b3f1b6917bb772001949510459f94040386149a4803bc0c1b1d187b354d61668514fa0087b8a6c7e6ab2b3e0661c42e70d9a4c777b601fee41aca9632fb09b0c81a9883c885bc095a66db2635384bb4b8abaccb86f374a37e6ba760d7b1fb3112b236029ff4aa6e1c52d3f3c0d69a25991d6cdab2c75092aa34c2726fc476577121f4630a8c42062c9f363a4d1c8ed73867a886276959c98b07942f39036e9a026974cf6a9b2bd109395f6afc8a7220d5878ecd311b03ac44047c61c99653a97b41fe8b66172064a7356551b78b5c94e30d82d6bc495d4449a9d3b0ebe6668eda08d3a6b971e6597c6a1a30218107ea425743bcdc0488626fc5a6dc8374a64a295802c657791b68b5d55923c727a9ac2d16b6f410387061fbbc8738b708ed21a6d75275478b22d96691c9075ce7ab356094599253391660838f5ca8294ba9e90b5663b26896fc57a8cdbb1efe35b5d3c14175126c537a71ec568f315c33d26028c837ae8face3aba73a28371edb84262084ff98b566be3785c915ca3132fcf496b51274ced320e99053a3773ba31d9458fa67354c2aebad442c9e29aec4722b50c60612661270c6cfe8207b6e91f474636ee892fa4d2346d20681ef03dbef75184dac971b135823b6212771e10c28c48400e6fa96c4fcb9563d553b6a3cd96066074147a28994034920e93335c35a2ad1c22bffae124edb6a6b79c36bf87b9ac45c0838b1d0bdb1b383b62534357ea798aeb2104213a8d62b28b895b4009f0cbfb874708b1317698366f2c4593581602f0379f04752394b72fc53aa1ab2d11ab37a1d1b40cc17074ecb9f70a89643a4b455c9f7c12854141a4fff5c03a099a4c8baddeb9aaeb36a6897712d7a5ad8970279f531666d8b66a8431aa24031f74cb754c76a3d67d8ba469994bb9262762ed072f72ebca9f6837a3962bd3733618f81bcd61358399afb4c441d22c8725cc3a66798907c52c4a14be4c851a6a9a1166119c5a3799ea60088c1a2d4aa71ad828a072f51e8f54410436799a051a5e38b207334d9ba442ad27ab39a739d3046b7d73aa94babb6108981b89aa8225c81377498e437de0a762a7798227bc17cc54a090dab0c7d548d85c6c38e2ac5798538e630bc12b00f2859defbc6c24380f28ab5bd4aa8b50c4103dd9b97f87ac57b1501e1771eb49c493e13b7719582eec85dde51eb17b5df97c50797a6325e5b22fa5bf7cc08d3555ae4123c99c6041a97692fb7278358ab69152226cbc1c4b73798c23af8738c2ff7514cbb82a004157a2857542877c5c886179fa091b23513fc1403860c3f469797c050fdf19ba8e8a9ebb2076e469309cc449d23a7320721b2727c9b29341bf04c436336d7ca34d78b8b441fcac0f10793c2bb7de5942e5fb271435824421699e67bb647bac6be1b2369b0d26e31f83e725cb0b0c43ec96a31c67e5493cc7831e9716900b726a8d1abf04b4353308be3fea5d57a99ab8300dfe55b90b1811719a18a30307f291591d8a05567bc9632a6336b688df55ab5e7375927863af652c2b1c80e0db1b8b4972b781685f9934065919abc07205ca40d3d7b96be486f0a82a4ae16b928083f333121ceb441b3c5fe76aabaf6915d7044969d2af27304c7caa2554618309884ee10b3e56f0c4013a263e27b0c6236cabc990baf5c3bd837c8f379135c1964108393bba113c208d0660b5a4065b32aa6bb95a511b93672c42af364b0ef4259b1be16c3e4c29e84c9e1da39910eb7395228227cc06c539b2017acfb69c24672b4040bc4abdd04301f54d432c8f94d2c57f087dcc0ccf3d81a6b560a463e988312841b52995f6192a142493efc16222f2cd6374b75c43cd024ca3d28c39a0ab2dae961a3fc8214b963d2ba1aa959a05fb453558251e1978b30d46a4739363e324357ad64a7ee25a96c43b1a08599192ce3ea7976f01cc643aa5f2db4772b64b662845f41a1ae3681ee451349b6502d68b261cf87ddcaa4fea2c37fed526d8db96c04c11ab852473e87e9c52b8f2db29fca4484a116829c6915f1365176110a2d5bf2155262ef79e81191c408b222e5967403b7bcfc296194a01fa179665c391d52c90ac8c9131931f7eb630c6c134fe74190e864d5e705090d687bcd8910ec1406559ad6dc7a10dc9270973b0987a1ae38603317c362993499c052546ab5e24acca143a8b8f529bc8f733e24479eee9c44647b04b6b2b7dd969f9d33236696b60d4bb88783cc16600ad1936b6599b716440b35c077c82734ba26c8302b9741044a805ba9ff21b38f3a2e7c48a2ca740373138917cb29460964108a8f83572c9b6c4979c8a084c858f47b0ad19b344d8a7ead606359770ddba420d7a9b35cc2a034865ccbb7c91839da6e29082d64a18bb3368e7a7802468ce05b75c355e9df954e579833db4a3c8019e10059c66ca91ffe31c01693bbfa5cfb32071bb26773e8378f5796e0ac082d7f3c7674b956845897739453288cc58d482f37cc45fa6ceb803a4edcac3c1211989ea89d82833b664133968cf18b6aed7b457025b2936387b81179f402479c2169787eca14ea6bb4aaa7daa4a94e825a332ca0054e8a37fd58a9e503ff44ba943d458ac3b9798cb72ac670f41e09cbd93cb6f916d94e089d6c449d3daa9be3c946d68c7df58be34f203256753242807225b9211291439847a899b4337ea1b865557bfa98c51f2072c034cbb512cc0f6a781b185d5a51c4b344a60f5244b009c49340ad713bf03ca7c22082fa8fac90f619e6732275db86b5bf54568d7348c7145d4dccc396209ec8c2c90d20308f6789877a7e31797a80b9653ecb2a4db65def895180263ca8ab72542cdf4c46af4a22e0ef4b1f61180ae04504a7848ef0b40dcac8fefd28a12d712e19968b294c9f1a1756e4c6212e9925efb7a0a777853442e941ca1aa114cf8228b0748941fdbcaa9a496a12386ce9031dafc2221885e0da28798572b038f43b89a816abba900ac97f01a31dcc630b3435f8660c89fa5e78de9aed81c3aac96a00b99111d03d3062cad579c1fd0190c242b27bf4074986b0a5be204501674047e7e7a1649482e1d9b0de92455cd14d0049bdcb7cea4b867ace5c8922b +ciphertext: 542acf1e3c7dd990f1879ef5b5aebd32055618c4e5b958995f0b22a78f9e2bdd8dd0cda23893c56f48a20d4df878e1cdbd39f50310f2ac0cd502e761329da00d49e7b8721f53af649ef7edfe74f259ffefd492f13b1ac396eb65916e02b3348560ca426e9b93beccad58bcf0c5804f0a10532635fcb74e45c1f8eaa83d56e78d8a7ee5aadcb7e06eddef900b484632bf1bdb0e1a4ef8b6fe34789934d9baa887ec5a39dbc6416f66008751aa193a9c313ef8a57a515bfe046953fa6a1329a770e9e1bfdc33f3a68dbd5cec1c2a55a0e41093583230ac35386645e6dcd166f25706efc779fec0cc4299e8e7501b93a857378713475782cb0b31ab645940f4c875548345ca0138372719c3cf9022034f17c28bb90f6090d4b8be957ec63c297a0ba95dc02f8761c18e7a948c1c20158230e2f9ff809cfd01b9d020b7164f8a3c54a143594d7d35b8e1ad6cb25d96c11c1b7f47f62a8d90c0e2b3d1460b86a463579e7b44ff74b6a29f30521588a26887797c60d86235e0bf4c2bc7166bbeb275996e1f50cfc36641710a52fe08fb5dda30f6129d3a304e336ff0d8698515b2cc450cffb45cceea7ef51a989d036c71367a4d26cd6025479d2f7ae58e700928e176c59b3040b054a09312d9fe529ce784a71513b44c1cd4073209a93a4df73b7097da88cea0b31c3e77e70abcb4b2ba5edd8db8f47ce844750158ddc5609dde43eac393eb5909d9415ee4698d923d8ebc28612f8b0676565010360b9406091ddc881fb6a992b70645b6898d13a8e3e449be589cf17bf9312e5cc58b03d3c181f7f176b67bea210337d6c52913f8cfe145da9426434c1fad0da7911bdb35e68b86b5bc6717dccee9222c4842c28fb13115278f1249b213498791082bab15d32f59481b29b9512945602eeba8af490af99fbb841bd1aead2b4f6f57f19dc970e83bd3928ea2d33ca3c3e50cd5d68e6ef516371cbaecb6b73f57fd5ae5b38a74f20759dcf217066081fee51f0fe8a93aabeab4717f05395e304e86bedbe11d462c1cb9d4e32e75b35fb707e7b509e43b450d6025b2d3e84e00f3d92b717578e820a33788013b2bda42f2701a9c6044ac2082e0387e141bc97a60bac45e0c1f4787bb5b892cb190e4b6776f5139082850494bc5ac56a6f759a0505ed4757009c35a4d36bad276185f1fc75399043168b22cc668a4b1202e03407b9fbb6a0799ba6a396ea78e137f7c68996f18f1636037179c4b920ef68526fc9008aecbfc0a2b02432e2b15832b35a61f438e06ce977c4d447612c13eebd0549edf316f64f5e7f3ccb0b46d19b79d103c1ab8f1551b6b3d22ab75a85660af2a9eab9c734875fef1d526da819829b66d65c8459a1aa404ec83842aa97a595e0271630644ade4df047f06778fe1bd1466bd413279940f15b9b848fae294bf4964286629682abed221e1ede635f315273854d57f68872bd9cb503545ef7b949b36df853eb7a4f47805406555d361aeeec6b77a0b6030b5a124f34cc121a927740aeaa6a381083f4e645b0d460220a8a5961be7ef69f60d3ed3c49c3348db4924373a706d7f16a4a4c16b0e3f4cdce663d224c20cce901801c4b29f9f9ada5ea9e5facb5e9cc0621b297f94d3cc828b33c530656cdf66ba0ed27a4988eb019065c508991bfdd8af7678449353506c0202b288d4f6d5693ef3f8447e7724c9b31f7e50f54c2f0933c5d4d6b4691010f285bf58b5a6b254f2dd12936f0aa6789351c7e61f046fcff0770df8cbbf0cfe6565700bf1dfd4d7ad1dee9368e2756c6e0f7de2d0ecb0d986b2b7631ababf3c6ae3e6f4c891cdff84f7f9aab7f3ea7ddececa4608e2574904fee752f4eebe442940a688efe390dd97e576349569f83d02d4627dfc23d65a8e4b9cb6bb66070e0fdf1ced446bf9cff064f1b113bbda51c62f278226254d15f44005fa271fb9fe3613f640253206279ebff909986aec32af0bc00663e10fda8b419f766eca892763bd3c4cc349369ee97dfedf76845fdc3ef7a884531edf2cd0ac840423688feb8a0519343266c2168b3c93c17e754dc4afb47dba4ef6f31ebdabe58b10168b0857f9899f48f61b08e809809014ebad6c1336e671b9abd3c8317942589ff517c3460cf81d4f103e111c15d09b878263ab2d4b4810898d3a654123fa96b1c694ba7b212712709c9173aa34ad098f9f3dd1c075af8d47c72952bfac2a196c +result: pass +shared_secret: 66e9331f3ed7e258aea053740f4b38f7bb53eb1221eafc8c59f5216491aeff93 + +# Random ciphertext +private_key: ede7009cb4410c259bd9f949554cc34bf0880fc3ad34abb9dcc0715ff2b5efe5553425cd24d6a464da33f55027e8e90b979203ec258dbffb002b468acc658757e3cf0cc9c3517b44c6f7171682384b36abf5b6b8094b000e8100f22c3883350de95333bc2b05bc0657ab322be9a2a17c5b0965b34579d0caece5b5c6b3ace0a874ebb0b9db4464ffaa9ad360ca40e2c6280b9844085b6f0c3531d2bae7aa4399a25988d26b89d08c3ea08a1fcc6b3d95c5e16b9f1b16b257772cb0e975835c3bfb81a28d9b0401b7c96ef37abbea4ef5d72ceb5a718993b06c45a8b729c8dd07310a71c2bcec3fbee75345c4549193b663eacd085603bba278ef7275c760051d2b61a1da0093f72837330bd9ca3de04b9dea5801a5140bbd979a4ef2a74c6c236a7875d4848083d633525b6ab31c33f5640467f43e8964ae5c982dd1d48deed96cc659baac961e8e62a569943b68c1c86f379f6a6b57c4d81015cb7bfc4c4930f6a080ca874d67520df38c58d878e51a81fe910d75e0c0b5400f42e412b4770ba645308b3a83ab9230ed69b172a3145c1560f3c521d3f4571aea01c5972c6f417cd1e9028de932a54c3debe549d8013c5c452870d4a1f615b237aa426eba5c39bc2151dbc45f0b3ff6f90352fc685ca87a77a9728ca69df4112b0994a646202f6e56188be631ac9b0db44a42b87cbbf8076b2cb73c22f509bdaa2f7bc03e7a2a124646b1a517cda2961a27a7840ff42f584316eb26abb2fc5416b95c430c1dd8d100c6829f19ca1077489e7ec48ccac18058d0039529c1d77c43bcf4cf68c026aac00920a04cc87c87f2a0caf6173cc8336cf6871501949f2a947d6f3717ba4952dce6c418ab562de7a4e358293a420c4f57bc6716ceb6b985d2eba89054b3c8c035ae334dcec8241072c2225484d85ccc6a726cc02a12b962ca3fe74f6eb6815b054170e20ce844ce5e716ee4f29b13623f6f05c2b273c3c1a70b9461cfe85a0f97c8340e182a3e741ae27b2c44c033553b4b2794aa3e5995f22758e5717e57a3ac9754217e433b46f19a755325698a5e2f2772f9a07920191188131446539422450b0e185aeb261e9ad6ce8c0b2b1563677e3885469219b2428cd5faca05080b97ac849d8035f7d34e19f850d97522aff3a811d1ba3023022cd317840ac868577a5274b3abdb5775f95579fa126686473c2b8038681f90f0539fdca0a9b6bcbd04ae285526ad226961bb81f586c26226a269a042747a290e4722e88853f2856160266347e99797b89a2868b4bce493522a7795f6cabcc237b4d467f763a58bfc719f764ae183b1c5a477bcb31106e7895c17a9a5d554d4067282f78932c9648c463881931bb2ac11ff6298c81c760954a8418c05f6c6031bd48f8522cf8c22730bc7b397c5cd43c3b6ec45537d494057cc09ae654d7473469bea1d0ab8c930caa8359a7834798e50935804367b8a319dcba7903853798485982353083a5b94ac0a63c393a2ecb3304b2640d5599e8b923eee3641e39824b86527a697344bc2b91d0a6be5c59e6a2b290bd215db41cc54208edc564898a956d824aee52448ee459df88c4899d52d2e95131f4c4d0f02a452336556120bba28917f780173bc6febba156337cb4801990917b4342238ca949a30cb3a8618ac167b15d5874a4d7100d3999e49f8ab111b6945493a6db44ada619299b25680119a8a0592c198148fbc125e80644d0c894f491c496c20eb871163a04a7c358027a218232203ca0bb5e6bb52a9dc34d380ae6b98025723c0a73abbdeb5ab68e0768f862053c4a75f74a0471c6a37a2c2658a41e91ca35ea97774d1cfa74a939dc1370f12aa02090ec1db0dbaf03a2b03d0dd050dd1e59001dbcc42728c69d43ed8072a85a035e6d70a3b827b02b54764968cd82c2e4341a996379e25e9a65087a08a973a9f43b328974b0ceb9f2d0274dd7c9d4598be1c12638813170ea9a79327916d52b84a747ff3f9b5ab6c044ecc63630443bf59ba1a6b0597030c7aa0ba347b1464c2ba1882714b725922966a9f924a0ac5928e83668a355cfa4c9fbb14c3d9e137abe9163a651e6ada1b8d5a58c94862d616aef9f4cb46241b10520f4c1719c601b88481711311055f860763ca78979822a1433cdd4098afd36ad0b99fac09cf25d8643109303939cbb1ecb1f8f99740942e15e1c385b70b8612c2149b58f42a688c766f6dfa81ca471ed551636aeb85cd505ad62954770c97aa7c1e7f48800cc65a5f2118e1ac48c9e72095c641c97a092ec20f4d5acb8cd9341a6c800e6a44a16060a3735e16c57fcf182f89c42347340c4334198a03ab7c410900b014b1c3cfe9c4bee733965474393144bc6d0632c114ce40b2262544999ef99ffd67aea9f39d77e29553e16165ca5ad486540ceb7916a1bbef23c80a544436ab70d479c1cf7a4d7f881436224914c24dcd8b818861bf3b0a4e83f0be13c043109079382073cd80836f96bf7a4c35259869bdf634ebf93a7778c2f271c487e187ee9051a43a586979a18e55c2b667c388f9c6fa392eac955f793987e79494e488402fd5b402636423299c8ba12921e51182493e752988bb9714945ca6d9c08be54c49f7d415253c2e00c7b61af09464f4a61829389b499738238bd87c64e5810bd1d9b1a762b67c1198684acf078a7c2f7bb832f13f4a4139cdb16a9878090ff15b3a479f58da73f591543f70b2b78c64f25cb2eedac51f4aa3fafb1e79739589b75c7e78924a57b5a9d04ab5da84968a1e07630f9cd15a8f55365ab782c3c9ac8a8b4e03ca87931838ce71bdc0991c03f725cf16800a3cc01e5556cd137ee2f730e5006dbda0c8d1c3708093289c6446ad71528962c59e824537e40427fb358168987cb79b8812561f3529c3098853ab581f145da29c8fb4521160acb4fe8c3500d3cd0963b76ab171b181aa887c51aa65c7fa202d74192af868601cb5c2d1c20fcbe09a429852295c7197a61b12211417b8ad2d75aa85e281cedb6dff285910e07a10936cc82288dfd7067a4c77dea3b6b852c357332cb7f1afdb0a7ebb943bb17380e13728a6ea90deac2c9708bd1e598d82bcbd7332ae1e6079485528e0504b59412a226bc63c927b8c0c69e493462398c28c433a40886055364a2c6c24ac1bbaf17b823d1b60ca68c92f67433ee28881957b8a657e879637653175c18aade5647a2ee74cdd123c103187b518731bd902e428bceaaa0e94f4c16813621f9466b45a59f8e046543c2fe18bc7d2b601d3daa15f882e426a1666073de34ca9efc5beb9260fde214b2ed818a716ae54d4af1640c62a836b09b43c44fac96e0c6969ca78d00b40d026c0875242d0392e5e29998b7c034aaa05b7f191e936338049afa2324885775575dc1c7ebc745de5887dd5af06f3751fc79c5050981ab211114705d16587beb9940ed98c5438c9da6cc2e6d743a3b4090ae67b5a14c6ea123b855775b7b781f6b238aa2bbb83a6a126cb997a892b1790c49a023dd0d2636cc13ed63b7a1f338821b60dfa5748c5e93abf452429ec76ab43b77313485019beea5b6f2cc98a36323919a3c432d12914f211900654dad94315a2599ec55c93a8865dfc68eb32c9f7708daf448408c635c085332e3248aa7c07ffb77fe0002686b62b0bd6bbeba1ad2ba9237f524c7697a5e89cc670577977d6b85894ce25301889f1016bda5e0e282ddd516b61ec4fb274051c6c07cf15bd6294364e9a33564b15176996717104b408377ee34a5bba60a2647a9c8b401fe694890c08ca9c12f1884fe3617bcf3c880dd088a3f6a3a5aa27232a4ae8c874b978c010c776fe842ee170227cd5aa334b41ea52047215a0a491cc3ad954495817097ca9ceda0849546f6e0032f7cc8e9e584b959909acf439cbe87e9c0323cc32663136c51abc26079c758df38e2c2729b58a63f90c17076c662f9c8d1098a08811a0356a9ade6b0ad8f220e1cca870a949ff8a3cf860725595a02d58a6341b222dc48c56c0834a8498970160bb7527f1024dee02769325a8fca95369fac27bbc7ea43658c7f891a949ca9ce6cb7b029d595618e7837c2923c8f2f95e81600b26f5320c0a3616dc9e3ff150b1250c1b52c53332b7dc7aa8aabccffb275ce4b1bd3e0c3152d841b7bb28326660c955618ff43a749734527951e417cb780a7226c1135ca4359f674840c30030ca16d2483cd7a51a283884d4eb5b9a752dc10a24c064a6aff9c19cbc4ecbd7b3b0b642e4bb615fd61265e7c60f81b341a9a50f5136827619d91bb3d958b6c3a5b5d7bb93c207aa298b61ef6bb68ac54fa59c37d6c9440b714faa326c78b43d59f533bd80a7104a709d61f95cc5bb37a8ba3f7d376880d805bfa9759431a938417a89572a98236d17de7035e342777ca92df03b8bf0623a03c84c33fc01b963e2065a78003fe5e675f05d03bad55a85a8927878585d61357b744c4f64f21440f301a8d449a30d5a18 +ciphertext: de374fc747d2eea9c6b5760d2c4c8949a641279c50f1bb01673742a582ef761ad6f527948a32e77a10f731adad289e30a81106c0fd4bef81217c4cbfde4bfd43889c016b13d4fc3c20472261b635a40a77b9507e19598a1846544580cf9e25845378cc5148395cb564a4ddd5270233fd3a8f11c788715fced0ac06ee790c68b89f3ee8efddef02f2c880ebd2f94039a94d25a4642103cc94ca522ddb443ee589f7967d2cd52dd5546723356b74f8ddc270291b5619f15a2fe2502e099927c935fb44cbfa2960d035cd809abd70dcc136de631c812a65d0f7fb9652f9c72c0ae61d45b894d04d56a668f828d4fe223e62761eff354811e3c24ce8d88cf466a8e0a1743c8fd8f4f4b9ce2130a41db05e0fc62b68bba453a1fe846bf90e45babd053aaf6d0548b2a97534c1eae8611bc3b15e1cf6edf719adc5e9cad4ed50fa9a9ceefe7b1ae9b7e562eeba6c1d82e9d80128d2dab6d18d037edb13e185d74b9180761d881fc21030546fd2a189ab857c55a2fe3afc768ea009894a5319075465c679685fa926e24e5ed8e35db073c43ad636f8d039c6441d48b6f7bc31ada9b2955b4f5d64ca819c2e9d5026e235f9efb3e32a98fe0d8dbff1150661148d72dbcb8693b381df3ff6677cecbfe0e6d1c18d415b1822fcd1887ebe0f24f04c07d5e35d36e18b840da79cafa3e48c7043ce3f20610d0602a009b7fc4ecd1b43b72cfee6ffabddf251c6db036ea72a15663867ba9c465ba864e7e52e4905c69665ce12dd54da53a07f2c779c1fe306a453d3ff3cd428623d16b2d4349dad5b325135a42f5ddfd6112aafee724e9bdba9dbfc2cfec3ab08c45593e65f9d33742b980852cc063484afb3f5209ef8ad7a441b51d35fafccf3d15e9ae77f0a3019c742412063985b1725774106d6b47ab1b176cf7f029f7435c1dbd7c1beb53c3fa7d028f3ece13d86584b03a680b81538513cfe206c6fb42bb2f73dc0491f85455aea06478ef49ecdcf7177960f31ca5bfa9ad56a0d6d7005fca9c477868b90969c2aa02d1ed92eee16ed7ec38dbd0264028a66859f6a6a7826cb879ce653c3397a1ddb4c7cc985c11f6b9c8bc842e4fe424b3d32e638a218b17d7c6eea35bf8ef40d6a81f4023d9437b1724ac25591eebaf8a54811a70d4424c9e44b88a30c27f8338399666c381165ca715e965f87bc764f98d897beec42d2df9f72bd118de555a9dc18593687ee79127f0748601bba7638289b9bd5e74e5e217dba7181a78f6a6bf2536a867e3976b5e12bb3917631655fbc268b2693cd2e8c556a1f94e4799331eec89e46cf17f1fef00f49a67af9114cc3a55347dbb522d9d5e0498437561511e2ab533ddf58adbcaf94c48e5135652d2ef9071666e415d57449c2ddd4bc228579b3ba07453ebf80e4a74ee867b8e1c5f15e88880b830d62218abfa4571d0caad89cf0a609663c1eeb433d71692d7aaf370b83c4a9b99782382cc0ee86b03fd1962f79d1058e9cbcb99a3fab011e40ad4315d1d221ed8b1aff92d0c01291c56d00ff1266d50abeb188c47cd405dfe4a8d01e72b5f4f4ce31afc7685225457e9927ccd8e152869ee0eee5fdb10ff7d5265246ff6feb543210a880812dc3bcb80b7d26457b0250d4fbb341539b8f1fb97c38a0ffaa3ac3cc9fe2fe4d7c62ba2a09593734ee849dda1a0fdf61431c52f1d611fea3f6089057b2b0f6c8fc792ef8caafe567d12107dcfee6ad6b0b67c9117d6a5ded0b7bb7dda5b0e6ca13b7e7176e04782496833689e72112c2870939e5972fc1df47d7e3eff50228a2bd753037308f6db0101bc08f18f531de2313abdcdad635fa1f773cf1948cfd9ce01218ddc876451c350c391efcc8b4d42b3897207d49c6d101977166ba7f75f3ce2879bb31e0f5dd7990d7878bd13d8d791151dc3934ed3d93924a02c6cea0a045d270eef832206917c920439551dc94224208ad6570fb09ab27c5cd862f954437f223c8ad3aa3924e7159e267f7793d84fe3f5b5d5309d6d5cf74a82d40424ed2dc318c6868470798f75d9d60d48cc7716f1bf7c3d3fccd637b4284fefa787e3d894278576132dd6eebfd103090471fc89e5a8a0b368a7238484ed9da1aee5b16d33ca19b8285a2c6ee50581345f4067f6419e56cf97c0d00088333adab0601f2b11e2f8e09acb37f17c85bbeaa0582ba586cec37e961f9424f699f55355ec300a363706bf59b +result: pass +shared_secret: 8f9adf2155235711d47199027291eb4cb2b2cfebb1970d0d436a2378b85486f2 + +# Random ciphertext +private_key: d4a1812bba91b358b3bce85ed4c2145808318f664df0b9767c1949c11b346ee753049bccf5187732e3c964602a73f05b997844feeacc0dd084abf37fbf15a53db3b846e09a466bcad57b3bde344722b13d375677cf4cc47f750e0df340a5b669e235cd2e007cff8a9aa7691c60b3c1c3d98f4c27b068bacc1a341f8cd4672d0b9483b580de142df7553a77096a974c252d789110cb2d213770037b5746a8aee5f2331d8b10c0da84a2192575203f9623827969cf89e05dac178987d0796755ac34782f7ad0430e61374b4b7a6956cb088907eca39d6edbcf0a386f9bac0d9ff563d90bc0fcd45c42b8811abaab4308332cc2c4e838b6d064724fa32bb3a6107491a960832862097763b5bc0e29cbd8f823572a73a4033114136a202671594223870c21fd158d69a78d47437bd67a8160e15562260b4f8c368c61335e504fdfec42ef5285106817d8c52e441aad20bc79a087cf74069421b71030763a5754abadfa3358da0573410bd74761f280b72014cc471704c760b14a1a2933a16de2648cea094bc8d8a2cda1a25282cd137961d7439a67464df1955458270f2a5775c0f2a971b509d4cb454f64a12cf70a0261b93d737a172a06d89b40ac69cde3c80156fb14225250b3b79c9de834fba14bef33bd5e289ac2499b9cb926a4079d3d030b9211aae6d4bf23bbbbba25a3ce643f374caaedfc4ac29b8e263a3710e76b1950ae3339b937f20d61e996107a9ab56501c1962831d99b8f31670cb5609c321cdbb353ab123059a32711fb5407d859d8222b95f7b3e0a5c8039164280640a0338df3e870799c737750545c352dd90ac1e92c19b95583266216bb3733581c150033997cb76e4c41105679702f289b5ea19d6225434727807231c6fb1b4552173ce34351c0359e2fa5ac5f4c57d77c2ac1771905d73e2b36a2b4b34f68b75b2521773e93b98a2a50f1a1c5d4865cfae1114a93453059c78226053984bfdce2c8d44a57113a552f4609bd246533267b4e376f4cf26d0217683af72f2cbb426f5a2290560c583ab54da17866e53a594a6f40d36fffe89ba580aac588c9315bb76432128fa66d8db61631e1aae47a5eb2b8bdbdf74fa75617203155ea98218836502605011da5aeed012939c61ff46574f28731b3e428f8f4ad87dbab98734878d2c11dfb6c4fc06ca0aca525b796c310af246685403211bddaab6300b70c001bef580ae0d63315e8170c1295adb02706156645416c1f1710c334cf2d4c0c5b259a68304a0267294465b337bca695158f3e79cb403730000646bf34b55ce998298722e801ca0fcc0ed227c1427ccd5da22e5dd723682942fb90cd79c12a9c1abb651b8dc12b0502e292a3445f5804bf1325262090b4fd8590ec0660b2392f1876060bf283f771309b567cfcb18d8595bb45aa70de45290ff57883e867bb24c41a19cb3a424d70dbbb9b0856e3286c3bfa72fd5a54943294b5e4aa8afcba95185c64d97c97ebbe1385475647316ae067cf59a1bb6a649159aa2b2124b82c8167d6ada9f85402a46db6bb736e47503afa45e3c830078220428c7c756b996dec165833ad3f7064e0ec084a38a23c02cee6d1135128bf59ac4773d036ad6529943c8c8361517e1b4b2bbc4e57c482b3951e0df04b7c3b66a512584e9408ce9c63654b92b68a4b606c42ef629e3b332d67082ec2c89cc3b24227e88ce2500e2034c8944294c6e47c3dc0a50ca47b62d12546960aabf8852d4711bf177474e37786867a23a69746dc59677766ccd49df4f3718d214bbe8a6aa42c5ac1d21bb723681bca9788da2f903c71da5c55e98b5240c5a8eb826313271e0a3aadea6a390d23248a29402de7611ee87b73b269bc75359c8195c125b57f472756969c297a1db38113d0281a70f51b28a86f951b2ac72c0242256edc92cf84f2270cf8828ec73269d7633845c477ba2097c132fb19c77ed1c5a0d1749fda13a69571b6f2356990c916402604d9169f146a9369ba8cf92a5c6760d69b67797791c9c23037b433e1559029cc7cf5a177d353a06b20245f92089f696ac8dbb5d2fa6a3838533fb49c62a2c33d463d02f7a658c648936a1e09394d5e8cb0b79650cc472cec977c44c70b597c596f889b00a85aa9757a2cfc3eeacc55b762c59b0453e990600a970bc4a9244042603c58594455a06d27bddfdba3ee9b0a9b97251b450ac7e08f1b6b832453a04243a1ef15ce62a7af72f90ea03485fc5c38b3425dba526bfd412321507ee149088ab1150aa1c2be1944e22aa8abc092ec925e35226c3ea25045922cdfba17b9db21a3114cb65c63f271776dc1246db2af97ec4cde9a7acc8622276538d653a984e86e007b2ef3535900988208423b3ed3108811a31cb8442b92a693660da1a92012373e0816189c9bbed67c70f993c22ae1807a093cafd1b4009ac6c3b169d14308564c9e752a29d4d15097d82456d78426286c2c938e183b291eb90d9e86852208ccbbb52a9f22c1238a98e3481bb9703b93055d67e58396350484026ddf7b2df89a5ba41705d378cf0e9881bd5896076a0451497baa3a94bbc594eeb20ba3b4144ad90981193bb57745893a5897487bb6a03c2f427f9284093f710c93a91bb47269339a8b4d2c0056984a653a96beb630a97b4e38e697f543af9278ad90f7846537b5e8a83599970f5d49af36a61014e6c8e0bb900c8218f6a9ad69a397b3f33a4e470d0d8b761576cf417c24a6a83192744853672bd2c2c4504b4ac4ab488f5816c46912fbc546694209ce293a6e0774132c2a7b195ab75c45ff4c6307390ce5109f36019c31363103799b2324a479f8415b546bd22832793837dea9647c7b320bb76d2c5ccd606c250087515feababbfb9b3ee5b3f6816554278b90850f34d7831638c7c4d669cfd9c07f4367055c384db80a3a0b9636697dae9a30ff384e947293feea9ccb673a573170dfc258c8c456f5b188de355050b524fe3c6a6aa20a876b729231a6e8b9ca1fb5769fe7cb5f0881009b8187f97c6933a2c9e5b89aa66f44f5aa3a5092ad0368230c75ceb187b8a449d6e8b43c56918ee36a27aaaa5edc94150b536edb1cda742969783d0418758c9a2eb97415eaf2b283248b3962ad60470540986fb787a02a954e68bb4b064301d6303fd8532fd355bab2a6948c24cbef679b7d401459257291032c47e4107c79c67273b4ac1a042978bd18574c24a99056014a706c8bac74285b2920ec5533dbdc853aa14ca66503a966a4aadcc8e26278f69291c8f53655e9a55c139cb3f95b6e215437c400646a94f15a3b09f2baf544872c594dbd1c6973c8a11de945cc870900249a57d10492c0bf81d684e71a80ca429408044d9ca0425ea039388b69139a3a06f2ab7c808d3883cc341a5651a38e398216928cceb003abd9fb69995c06e4c8c9af05946cbbc8f9f23e01862f8e92435e4038c1bbcf21ab66cde656e4968f2d95a0035923ff845afbe2bb8174447607cf91409edb05b252f5290d84c087411d5619130d2aa15ed5a55d83b804f78687456a67d0c07bfbb04438365d7b194448c46f4b2273c06fc87acff6657da0024474b21aa45255a156c8ab2220714bb5de0c0a026caf2af24b6b80c431404bd7d18615ac94ff3090b63739f455a56be783ea4cbc4d320909e80cf17933e9d5958a9a76cb057e51d5208dab988eda5b04647996453663f6c07f516ca8fc7986c15486e663d966b7261c2fe319957e8c67605c5b71a88476d5bd6d09a76e937b5dc12a0d048d0c7ac7584abdfb7297f9e956e4941653b417bd59832177874fc49f8a5c908b2b7f038bb0e9f55ade47997cd805a5c79bd1b582e82b0138c4cdbdd27251a9192705aeefcb57cc31023a9981089a2b005a616b4346c5458fb2604bbbb43787b289e676310a308fb1e434d1c4cd22e9cd56777f1780a1e8989217055b9409949d542dbff25bc3b1c024d6bc54f24aeb5a74e68449003628e7f001a19c00e6b52c8055ae59f37cf7e412153893e22489069a5491d27bb9ca4d26358e731308fe94343ac369ee759fcda279c5e58e979cc59b2b523d466b3a8157c6276e118885be34c67f8cbd2633129e97345f266aae38bd695943bb70b61bebbe138274da36c3abf6a73a0630998512f18b0c43d53954e33f80d46cc2b49dd39396cb8566ba184504a6c85aa91643e42e12981aee5308d866c3cfb35e08514b323328bee0153f74b9eed01205241c49a1a100701087e9a369b80926a26743ecb25d9237fdbc8d8e267b02815e3df7a80618435d13448f3b9d49379bc4d5a6f4599c235645c15c98e53902ff92595ea2ca327b8ca8166b580c0a306630d0d9290bc92736f62473eaf53df22da16a1ccdaf3eec880f5be87d5ca3aafabaf4aa1c25c103cd98489100870050737de707a2489119f9229f914211fdd9634c7049968d7ae4cd80c10e320bb6c694880425a513d1eb1d5e90a608e55e6a3674e31d50 +ciphertext: 4ea41466fb90c96542c58668800024d8ef0c1321ab1b6a2716fd06883354ba9331d75f3e02953e60725c42b601981e822833dfcf6bf2566e42a617cef05404eee8f6d0040501b54d519449017f985c9fc79994b9fa0c98ae9b953531dceac563bc4089476fa6fc8a6372427092b975e016fa32a3e0fe3935c394155c7eba7db71a06e26d9a0e9677f2e800bb00a9de6e1a5184a2fbb528493de19453ffb92624844243f6976eb47f5581b827ec07b5f667b54eb0029d7f6375e64e1afe9d21f81bce8ff1198c8380d68773bcf0fbb5bece87dc76f4beb583eddb9f55326b409bae7a1b81259a1d6cb8dc980ddd0a84f543f02a65f1475b4be47a103a7fb80aaf1a112251435a445e4413fef3a2f9beaecb947828011c4c5343874c475e107aeda38e77576b8c43778469a8c9ec1a2f1cf3a64d20a1049875158728930077e5197928e2745ecc62b7f874af8e2872a70bb6c8fccbecf020f28f448f25900be52410f66f7d9e16e1b36f9f57324b9a4517c4f5d58b4db4b57e75859f94a94ae53a09403d9aee91d41e349a7c8fa096094bc5cde588b6fdcce903922c49bae5c197f9b918b3578c706868a0d945b74ec58baa3181a0d7868ab7c68e8496ddc77d0de0e1886ea51e37411d2078578f14ec95180d6bfb7099f565b60125cd8db15d0abf8e3282ec78bd37aaac9c3ceb4ee36f41ad73be416fa61eaddaedb2a1cb82ee165e619f433b4539bc60f95549bd3689b40022af7eaae687738b72d2072cc095b61594ec905a0a5cf76b8ce803e9f598e2b0373610040e172640afc60a431c04aa376601a3c4aef9f460213bc7c82ca3c1017b657b0539ab635348df5f4f20888e29e6e7be70c89a60ace9b9834374adcb7780e12896deabab24c02b4afb19af2b4e309f3ada06f9a4a5200ba0134d26c752cda1cc15337ddfb7eeeac7c2ad2984a792ad24c1e653b13c52e937e2672d33a01ad257799150fc815d2352fea62cf1630cfd01f70e2b90f295dacd3ef9f1efd7a0055c7346004c7dd25b3d3a8bd5b9297bf73d3babc9efbacba6de8cac65856690bfcd270411e6eabb8c921e3ae797d05cfdc73929e42aabc28fdb193865462f8dbf7b455f5f9467a542afa534ba03cb9fe3c4c0dc7400a38d2cc03db897a978315f0b8261575a9e5912a42436b77fe42d7d05bdfb78fca4790a6fbbbc6058967c48300fe45a573944bd1d2d25b0d4025fe95201d774ab92cdd243e1b934d67bce29c750537aef96ee63b624ae4b87425254cd7f42380d7dab440042992db8b966c2971cb7517b6fc833f296f6939036c72ddd86c1c0d7ab6c54213a0e103b179bad5fa2f0d3d15313e96ca2623bf9c91ae30cda87bc181a7d6ce272aa1774cde9b544a7f1b4f519356616229fc62e6b7397751a2ee4e45a880584cde5fff47ecc52e8ab8e030c408c484bdaac223b76fdb5285626ef0874297d0ea4ae3f9c034e0387f7ff53a8771eca821cb3ef544712d1b8e144a1d6737f0b119fc692fa72b4e423cf17b5ce5f7aeed53a3ab97504d61eb48a85aa723d4e15aff062d272d9fb6ab7d54eeecdc23abb4a018d76d9b029c29230428638d32e47e44fb544a68d9fa20e8b3d41fa1425443cbe30fa48189b5c6b1828d6e77acb8943189d9f5e9cf72e22f17836cf7c77127a0329414d230c23edeb8f7bcd33612f64c755dbb6bcec3ac1adec2c56aaddf27b88f40c42a964291caf2428b0ca9a451fd496e6389aa244953c38600cde263878a23b947ff1a4920e2ff29c422ac455e7ee36f47e8aa9275384c60c34a62d859752fc6b630bac5c69a252a78da4f318754a179b77fb782ca109c215fbf4d7b040cd5fe78e6e129be318a449678557830cfc2d001cf79c4083117d41de49b4664baa77e472043d342f5ebc456e493104c66973cceda3ef07f1f1ef4b8ec69bdd565ee373dc758cb88f0f3aa9d83471ef95cfefcddfcffdbb9f907ab7d59b006e9b2e07b02cf6689b838c6272ec0cc0b33b79f2fa7b8b97c100ff5a41581b1a448dc897023d497b165e72e3967021bcb9c490b6a258fb5eea351b590c4c053726dafd8213d1d98878b07bc460469e313b5289d0d1dd07086ea6b1772143124f681fc448d2c3d2ccaeeac9d4646f1b64932cab2e90e5980b86364a4d7195c298c0db16afc2b9b434de3195302a355756fe59123cdc5d6084ff0c4a514abbb5055a9d9ebff9 +result: pass +shared_secret: f3ba1d5a1d96a4a59e87131ce0ac876b5e190641efdb4a709e72a5b772d68459 + +# Random ciphertext +private_key: 9e456a22e0a2d50662a61ba014690196265e1f154c1513bfc5b32f19fbac78fccd42b36bd9f539d4b5a7a2512a7927681c3a1af0c3107f7437b17c6b25542ec541c098f202ec3093e1e7139eb7896c611575962fc4d0984ef73429d25972c52bb8873be758643e367a7ff61513f8845c7b4c268c95e4366452d918f3d1b2a23c24ca6953cfacb221648e997a1ce3eba7be41a9fdb3c63fe39e3ff95905a88457ca199b669a58191b427218c39613eb094218d4bbafb96a6f6b1f9ca32796d52d1e01729cb389a1053d66f211410575ca3a9291959e99dcbb9c615a63fb3611b4145452612603cd924c4db5b97db3524e5ae1a05769b25b067bd1a9a1599515aa72a4108628a74c28e8e001d06088b94c1d60b360ed46455de44429854fc8c48cccb87269a13a31e12127c335ecb3152c97a1efca7e0acbc19f44b9a09a170e1cc9d8956315b145278a7edb7232813681d194a47204addbfa246af5ad8f896a7db17633f2353552a97c475231b91034b05cb7e01d951321e73b25c59a78efe6bff82241b3913bce05a94a67018cb88281075048a91d8b40b2e32791d14b5e47cb43a4ab7fd1ac0507872455164b4816ab6e38a284da2efae81034316681c590a60a6d94ec142bd4b87fc884c7989551cc23d4ecbf96d6603e41a3a61a99c9575d05a05b6914b0cdb399b3b235c7f9b129427ca5dab283943721db117a5ba3aafc9200f11dcc3325e885a46576461642314cb2a9b36c2160c1427f07c3f731b2ec2b4a1de0b9a384c61f466f805143ab81b7abd8b43001cbf1e61cd5e119b0701c82f75f9e251783cc38c95318b7e946b6586d9ecb459eec03c168047957999dc055c0a2b38e0382f10b0e41495ec1b6976dd05e44356522053eed725506cb996ffbbd9c3a9b337c7fa07190c1dcb2dbb96ff9840b8a7828b709887ae6050101a725597dcf1246c217579d176857557e64923f829870d897333ea9c686ea58bcd3071fac7d37eb99b37b6840ac03242b51a5971587a46ffa53bd611c5c1d8083e96bbfe923a3f042b96051846c698674e8389c1a32a5a45e1cb0928a28653f2a6b94bc31fe5b8e864935a2666487470d42c0bac84876557c857e1a4116d6c7132840d223a7c4e3c88474aa10621bb4166edc24bf3df5ae47a876f66662b8c3700438a31f060410115f850000a91688759330284482d77053ca8a44d097185e569c0e3119c6e5b33234186e52aa93b9bb0f4bbc22acb32969b853da37a70588adf68a599a471daca73e913ad3d9bf64882985933aa5895ca7a307af58522102ce872c91d6814bc3b1c78eabcb2c739c06c54d82508a158227cef9750698292269449bd011c8ea4fa40a5e436acf935c776e555c5e953d12c15a61a6716b61a280731344f2c3689b6d44b5ba74984cdc241dea70a99147be3167b0f9f3a35a442fdd44c47fc386274323914a608732865e60a00e34230af7acb842797b4219930bb640a5bb0f1a38e9c566a1530f0da4cf76a391d7073425c21458259691b01d02244e1d656e91677c78125fdd89436a0a5af9baa22150cef9f796d25ac5fdba048dc0886fb5a2872187163157afd1bf3b6bab48d9899ad7bf741bc13ae58579b6963d3251e0f478929b836c043719eb3e9fda1c9d954c0d35647e948e94614c6bc0c91bd009f4887b80e88ae6c79f038c9507b21573700f38f93fc7f07b07b944cb71345df68cd86a224524bd75836408f87cc9077ad6d94f59dab0e50b36081c33fe92cdf5eac9f66b5ffd6588388b0711a5cbdf0430dc429d197c974b9c76a9317850e7c3f4f8c8086bb1b3fb9a5e3452432ba2789240b68224d3c854b29196deeb7cefa112ade466befc5c9d601bd0f687a7499a86b44f2ec86435f78feb4a68d167cb53caa78a8b89b9147f10a93f76e1bc69eb4cb09320bddb20d913163dd0176b54bf29c7af57a5b3b632bc27427d7501493576b342c10f81057cf11a1895e0cb96e415a1673058ec52ecb0c129968e9b5cb17cd19fb293173ab28c7be969677c9e309776aec124b4b8ae48740dcdb154add851f158379754198aaa4c19b4925fe9747155a9f1572133b688d333c401bc68aa7290928b2190a00649b9ad3eb9710fe78bcc978192140059a1729612a653b79e3d099ee0b0ad021432b81c530ea6882083045653822ffa8147d02a40b594cb18a44867571786b14aa690e1344324ac43a0b16672972f477441b3c47ae06b0259c0243c48c872b41fb5197deac49b9b0334aedc02ee9aa8f7127ffaa50c69e0b8af91b36e3b3954f8c2791abc0e175aae399777b83db0208c0fbb0ff95a998a1a0b8e9949456b7c81c4c9234080956576c1b94a01a676f75b3a95accacdf283ea4b88b3e99e98e139490b856cb351df70be59b1069c56a5089c0f71617fa9265d11f3465b502e03b100f7406d5203822a53a81d5b0b2aba815227c92232a776d6480d5c7b53c34b61636a283977adc9bd710885f6702b14f808bbd691d22167fb72b4b830a2992c9cc167ce09b518daa453531233e766be36a1ab46cc17f0e0a7f53791e8ec8471894e83a878e0b2501f462fe519076fcb2aa8669caa271961e156b523acdb566cb45c49ff656e61d49e4417819ce69e7e2a224c6043483b4728509901b410dac08bfca59ccb693322acbafc7b25944b1ff514cf9389470612bf6ed73a7bf61eb2004b7ccc6b07b9b7b2180d4271c03524ca5752050700c40bfc545bf8c01e4b1bfb3b1c90314c5b4a9916e0a19b234f6e878e04da4b627b0d63c5836e587423367cba885de0a9915d4367e76467fac6b936596135f09c07a077cd2774e8e879e48b76a7ccc8a0a066b8a9c4c7905052f0c43ff6c80630b1eb488f96e1731162a38950c77b7509252ac7dad64c44a34c0c8814446001f950503ef84b64408dec65c2d4478177dc4519798695d17b4ccb61e204bcb0896ae94c36aa3a594fe67ee5008b84c879463babf49a8f67ac13a28b4a02e81cdfe8a7b96a88ff560d3de53d45fc8af799ce21d80d978b4efca00e0d25af7ee41d847b9a365c516279a6e38957f341a474dc7d2297c97f65288dc569412a1d91226a4e569bb3bba427c5ca71ca655b9c3b99cb14eb306e4c4646d9173b234c8ea1a342c526b39e356fd76b419090348e1cbac34a5acc37096b936e89d09566887136c71712a69184135a9aaa26028c306ed923ed171536f1bd35559aceac0169113e57173c2c4b233156c41da276f02c8a177565066a2fb6a662a2d4881b78c457b50f5c12732ae86ae14703708184db2719ed425c4ff9aafca826e456a1057b71e1e2cd5cc7544bc6c255fa6b5b482025296210b76e4554431afc2589747d411481ab40c0cbb33086065fd070983b7061aa8a289ea5c23cd9ad3ae3553528931cc6bd2fa5063e0b29d7d64d15616477972d15f19ec0d371e382561ee4583ec4839b243309c00776179eb2fc0f064252595644587cbc93131faf9ab7fca924b0e343e12b5c43112025639c11fccd50718f15b77fa72aabe4009d0e878aa5834971540342dbc7f5c4a495d913e013bd1b3577d2fb11d471234535c4c4c95d49f8b6952742ff66a2de694b6d9a4b0350cbc0d6cc0a031e6e66c696bc24f7836c0672964a1c80520c1ee18778975682ebd72c69576c7906740e425c0603571139249e784dbaea2725d01199f8bcb185b6da15901ad6726971183266b5ada07c15a44c48570227f116f7648ee2c977938342cb09a75e1a402c11857797452f36bb7c776e7480a28f211ce80523bd8c7a26b232a57023faf28d607cc772e788258bc5ace87c4d50729ec9ad09c54c3bf94abb66ad25e9b12d862b981a1529904cbea775aeca2ae7341a96361cb1f1000ff9c143a6b07aea1a2ecb0aad87c4d5abba008673a153c3b0ec9b8c100f8bc789dfeb9e09da6be89b2d56f71f92b811b0110b7ff12f160c9d68ec5de40312ad9299c126c0ac52985f698886822f3beb4237259ec8f70f0d29c4d19a4162a40d16e047caf02680a54b229021ec890dc437479c94a7ccc3547e1cb95417641bf3a9e2c375b01636de564ff81739a4f1acaa210413b4592452b52edca0bd925c998b63ba4b680dbb0496d65ef8044aa20893373310f6b84d8de6578828693af0c46ab0aa9a19241f725c7c9c26a0f1a8292bba7246bcf81b2d9e45027b673ec17776f053a763d619020200a450a0d9c0b079ac85adba15e13a0e2eb95c217c4ac4b951769160ab55b9c7c942a333642d888c165aa30d49c038429fbcb55780480504e6184e046daa36560d9ace91732119887f93526c34a6601d580bf31933a0318df8615180db802a8c2c418c318b9d8b66b979807791404cf8ca6d09584627f1a500c43c3709a113d8627dc02533a4ff283e345bf8fbc6891495a364baeb892fcf8ff1f4768f1185f4d6be77f0f8e564e18f5c43fe41d6235ec7768e33ee28be943c5e0b +ciphertext: be1c42f1169ab5cef58b12b7c674613030a5f8012d2d49cd11dff0037d19bd9d7f308a4b9672171fb0735e7eb36b3275cbe3dde4c5b7a03f01d97ea48ce9e8fd97d5af0abde80a82cd8d2b1d3c6b60d7f606e65c207a530a7a4d034286c02ac7b51a7e53eaab6a79a69596fa6455e1db2e011a64ba3a83ef73d6198028181af4352846e2813f8eb2a911eea61d2d98cd2a68a5b6f87e0d70f0abe7a553985715157d641de7ce14261d2a0380d72688280a3f7d09eaec352dc4b5f0c12ecbba73bccf18636e85328c99510e762f91633be24641b95c485ab0b26544fbc185a3d3b49f74432b95e0858d230bf86b649fa7ed34587bd77a297e64f8f78f346287a567a2564a895f6ab3adbad948b83d3f8fea56c7a7c78035cb791d9aa987983aad848380e0dc2421150d122d59b080eddba90ef249db71d6ff2b198bc8fbffd31b1571c9e6659ab4d784ff6e0e3fc491a65c7bb461d51d78c1b6d27f141e7d62c988db570caa5e4cbbc5e5b4fb95b0a95e1496d8ccd838ed352ad6b6cb69da18bb75b0d2c7f6e8c46bcee21e08a5105ff634c584da39c0479e1292f7cc699d321c030987825b0e68fc4a8985935b1337ef9a1643008b194fb69a80f1f97528cf00774bb95160b5e70e4792081d81d4d9548e74ebd67725e4f97f0660a59e86cd9a13f0e1e39939c12f596e191ff40a824ce3680c80e68e1445a8dd5684fe4853568e84ce7052d0cb8ed38fef633a05f4aea017eb35d8864891b01778a8f70af45ea9b288baeda6407fba5a6a726634fa2fd15c41a25fb82b21f15f6afe64abe4d62040c35204cc740036aedf1d13c53c4288fdd1be324bd464e7f2731c7828509171ca4b3759d9b9f54de869a575b812675867af98237944f3aa451b072806b581935af8611206db9018a17e334598cc7f12f8a769e034614e094afe0485244a474d2a61c0edf84a1eb3d360413f070e970c4c45f75096fc2e7b1ace59ada18b2cef19c05e96279dd89709d97471d1b6a1e88b8fc1d881e43a4d86cce5f5addd0d00cc9b522fcaab0aeef4b727e1aa132bfcb6428a3d58a34ce60d511718d564a89b0431abbe8e9fd6cf2b993bbb6ba5f0ed6cc399bb8312c8c2c60274bd70550ee18fd4b7bb0a8597cadd2075d1b7babc66c20d1b54ca44b5d687bd8d16917d08e63fa1bc0fb6478d090bccca83e87602e668dd3f056a8116218f2b08365f86ba481379905bb6018b54c5e6f9e160495f54ebae84a86bcd5468ece17aae829f83c3d5b532bdde929b7e152396f84f0a6e32111b262fc8dd968f7459094c25a89b37ae1ed4d91ab62ead3ac3b339acf0b9111d450e0bf380efcd6717679270c90bdd07f0b9efeab6fc74b19a86cbf4777220a9c6f85e23de592195962aaa2412c3be4ab3daab3808bf917a4dfdcb9cad03ce757efdccbacdcaa6f4c54f849378f12574773dad111d80f503fe477506982b3b26bceea9921b5bdfdbd22328172ba15256fbac74efd8ba037030994a70aedacf49a5326d30c10003a4e93ef334dc83d607631442421a45336deb2b344a6fae1e9011fbb150a4dea94376e4b47924a109bc20e62e8571afc012b6a3b2acc80e30480341a7bfd88209775ae77bd199a44801573be788525000aa77735865adedf0090f9da80a8e76114e8219f289e5d95bc56718548c31794784225a15a4a3e8820c1aa73b8be2117590082b89e904a5dd8c37e07fabdb1e1aa1f83bd1301705a82be70ba0cce458eb9a240153bd8775104fa3085da878c5b329e829c1fc5e344a61437610eb75a48e7b6072c207f2cd909d9c8bfb9c6dc565c9242e8d9cd1fcc9f31bceb77aca0fe1adb723870761f80a47d77b1126882c278145da3e1212a3caa4dfe7724b1d3001ea1c9db9d40b367661052ded65a60b1b5cae2b5b9088684f30d707b49f4212e5810d2d1e00a5eaa67c6acdfdd35e3959b68219bcedf4453b228f02da0df6d9ecc2f60a2e23b6dbf3f83798cfb16c611980dbca7ca713a042b27e435d35b56112efdde5a0bb49db415b0474b8f577937944d555d1fcf9bc628252c69e0371943dfa8ee6ad2e2155efbd0eb7c05aaac93445271eac4a52cb48aab9407f2f727b24e4edf3a98996ea0e245159f1133d9193bb50ca177015e198ddc577a219441fb4fc0552fa50fd962c0805979475ca5a352d467c5a63d74ae7cb028623096121184ada1598ac5a56 +result: pass +shared_secret: 0875b7ef9a48d579171055f3551abd33943150d6590d4abb1766b7e1f40a58fd + +# Random ciphertext +private_key: 20589c2d3489a2f199c844cf2ea7b2a4d08e2b331fabf98d201562c5373cb6a60a5eb9a077cb973d89371f348216f22332ca915f784176963699e11ab0ec12fc0a088df3058c704235280a735a4d325a0886e118fb966f52e39d47c674561bc0c196b7922364ba4c42b22c9fb392288bf07779e5a0842b703f02b5a4ac35b842bec6f5cb3b2b31e95675420363c7d6836c5aa67ca20684bba573416592b6b85583568e24213575c5a9d372ada5507d1910dc7127507c3be01ccbf8ab1709eaa75d293df436800d27b93c2025613b9536201c09c45f01c4ca949c8a7512a2025025560511a2c25769093b07fc5fc610b958426e32b88e3f875ca4354a46a8cc674b94b96bb03ee118a72b6a76706e56519e842b3593e86cd6606c3fcb87cbc4cb36d5728f57863de50bf5880bc55345d8025033f83a7e0730e4443fcf83bdea9030c3a9554dca5aa46b29709a797de35b2e8b946f0bc2f07154fd3b2eaab27b4d9437e483bf26950691017f2d819d8bc09f5892405671be7fa51cf45b31766020f00a7ead1848ae79b0f1170871461b58cc1e0ae9c829920365c38f7fbb9f87508ba5007a12518191a2cb4ef46f90d05b69dab6cc4a10b5e49f50845f1e65142b0b7b9f52c40e17314b7a97d6e803732203e5542b4c202a7e0b69e6028796eb078c1062dbe8c2861608b35c02b2ea252eac899f554200b291ea80744e73509535a945214264527535451b43b11261d7bb9a6363a9c1aa8e2a9e3a472a2ed726eed983c37075b299a6c94a229423add0c30f23faca65676290548608789d2e279dd68b531d3a7dba63494318a7420a4ba199352f911877db34d1c2060c76a58bc8841dc039ca1932699c3c335b65444b62fa9c4aad62822e7345cda26f163c44b5c6055f019db2f653a708ab8da0443ba5997a2a16bcb7a01f446847daa63804a7193728758814176071dbc17a01d03d611244bf14c1ef1306fca4a66f68938fd816e27a00c8d77484d3ce87c69bf84783c6a9acbf851de7240622da79d09060f1b5003042096db562bbbba370971c0779645db9b6ee74266b85831408bf7aa931fb42450224420af925ed5abe21106620cb9bd1789960784f47158cd52c04f578cd91bcbb1d855d55f0345f3576a7b83100560d2b877d30c84bca1893040a24fde58eec2c7d990a658d42762743027db8634d6b7e84d795f74b7e91b205d7a73f2b1b081f970335265837da3956371c6c941652aa66407337f5406b6eb46effcc6876119210789a033510296685f71970319a045d7a5c6dd863943b066e49cbc81641b6428be5c180c0470d5edc650a9433edb25e69251697f19f3e84578fe68fb67974ba2034a997b9223805d4793ebd75ca386493d2e42fb012223a729ad142a017688ab5678c46767b26e53b3ba76d39738b5ac8a95687c95edac4751846db27571c1596b3566e4018aeeaa6644df9a3dbd4521be87cfc0291f9bc8cf2331e8b85997e90587c90795743bac7c567d7485f17442377a313ff176a0b0128f8a517c3c349acd8b08b69711d628650eacf4636a541e57247f8ced9f862406455eb86482791a822080c63b054f770ca34881c4568334c2037c73418fb1329b2ab9ff2602e4e8ca170e5b9c3d8c0fcd0b2e0670912950b639737261882b8491bab1609dd35a17313c0429329a73842f33301eb519927c09197331a11b747fe610b7895772a2bc38aca483784b411a858dc5cc68c8b0f469c10e8c2a25412cee792c326917e0d512910f46de3116a38c59370bc19e8d23b29a84135f52360ab5c633a814c837c95f18762921c83506508a57ffcb78153a5a9db25c0cce280ce358313529b5adb457de499313996ad59abbb41429703b577c74044c426cf1c629ad882116222a6238556768fe490c79b355b87873377660281fa9614c81740655f5f370d06d94d93bb35e6ab64a8f94f1ba1174fd80f89d21b23dba09ca241b8041bfa2c56f447acd1e0332e143eca498cfdaa68e8d25869aa408fdba1dee198e9688927f55713913d40ca7731158026c32d19105d283b6ed20c01b38b75d96275ccd9456b2ca76b5accbb4a706fb5197bb6cd3e889834f4c083a10b5acca792527e9010267bd319ccba3aea4cc090f2c08a31b7eb2b8a7d1aaef7b44acf00cdd6a26c13d24c2be965f48c1b8e3590353a1c7d7a3559d11fe796385e2b15f612af390a6f723ab00a1c5fbc5482d5941dc2f999c02c6476c30c9d462b8543a6f129bd9249bc9953162e9c14960032d8e0cc6c566b1f121fce609312c73514db586ea9c9f0a0c51529168c520d5596a2849a759175640266a384c7c704171d47636c90ac52b24165d0949c8ec22f411a14aeb31e59bc11bb1c66da50aa8bf1a32bb39e4c799e1b7c364c89bcf8873ad31062ac203a99a65d74d840d8a4a13536bf71361679f3a4f29b2e46a292c4c1b35cd52c361643561ba83aac496de75fd689a909b9751775a3afbc959d409f35f058f1bb5d4492a42d1759f5663427c76eb9e8472541a88b0c3077d05baa5313a9d965abe0c23f5734aaf77167a475ad0797fe4c47b0849cffc263d42c1caaa17f1f1b8970cb95f5e157b0265ebbe1122b16404bb9c573b349f0c3143a1c7e4a46c174b9be442122eff58c16955441f069e3c0c8d99b249aca4a82993086ba297d3c7ec32a75c856258b4a9b42ea5ae3c4a0ef56825689a79af39881a6710666764f6bacaa430bbf159afa3b72b4308544177516598171737f06912033744c735b275b8b8122867dfcf1883bb0a612f7a824c28d773c51f282459e48a25e601f5af28cfb611b7b95441e1ca0e4d80dc822c65e73c32f7393250b479a854f7d386ec840675b639d3e2587cd5509fa202e6bac2893c9c49d6094376866dee7b7a8c19ff9ec810e7c775e99485f6b7d436b7298666c56ca9e5883b3ea3614d555133e2abff147bccea6b79f6c50e74c80dce780b2264d92004848f249fb46a130f6c48e3c5993d120b183cf2432c08fc9a754e22dccb40933653eeaf4b463869cfc7511155cc415486c5074bf3ee577f2bb93c64c06b3b9cdd7fb832b23b011b1483e3b40f6c857be1ba5149ac130571fd327c8679942851141bde28eb9085ec563b2d8353bd7a2ae49f52bb4243b81cc5be62877224b794c0c3888121f80d1bd7a1baf2d17057a8585e7e829d0ebc57d51a409033c29ac8c8c2c4d516a3075e8afee4797bdc6009457a4e3d703344a5b6075281ed2a31b24b30aa70ab29c1b87a8085b49533250372aa41c09b68842e6707fb4b6bf41b12f21080ed22e3fd845726644d28338ef2b1e0208c410ac135a573c3bc73552422117a65c1efa9349b19fb764a7d1182ca2540c9716441a591160f78f8883c192d8324e572a7dbb8ef99c9d50998d24512eeaeb220e0c55e4d536025c1263db71085ac3ebec715cda12afb6342b176dd7139828ea910b40b2aeeb3f54c69e8c03bb4f7c8b9b679de051994d8260e3d3a83bf23c90a1a9418c8f66b0777a2192628475592b7cf73bc3bf537e1ae7483998c805172003148c4d8c8ee472a1f4a34655b782d2cbad0b2830a236cefc497b5120cbcab0b2fb72186275c090d49438cc9594a21408489685ac8ad427182ea78f7169790e6b28d1862d5541348904b9c93b5a47c81e9b6989f71a6c95f12331c4c6fdca6ad7e0ae0c7279416066d78b0c614a601c84003711106fc88f1e0400fedcc078a9145e709dbab50432c79dcae3c798d78d05f1ade7ec4f84e6a358a2608bac44d8b43df4837d6f581dafac79cba80eac255032b749d50a532fd2906d5030bc1754dec9c9cd68104134ce5e55436c119a706c9675e21c9bc8c98ebb65218578ed1a998c2bb60322abe99bb5d751c3e4e43e91cc9b6e895efacaa904c94268937662b596832189252833bb481609212b10d512fe1412c0343920f1cbe47c7c0f85278d031a309002ee95badebb79ade79d64409451364b0c037c53f836579c7ee46b8e856c4c0bea6ea34c77c8caccba6241d99975c0259cd7854b334a6785447994ebaa8307c1317a340b14cce8b61b24210d15fbc57e50139b93765a4246cc521a45ac58aed41ed8084f5fb0acbe133da8987a77d4b044f22a77d71159674a92d8cd45ba28eac18d3b44267527cf11273d4fc3b5bdba021a1aa926c15e6ff9b9bba4104a0cb59a7b4790a114467ab8d9297d0d4326f794acbf11bb918abe81208e5205579c04256c18697dd79341e58442bbad9b293d69328b37064845414ce1fa5476cb207ce424bef547fde91670e974dd42cd33cac02144b23240c622d342bee26ea5990588b4842cd82de47cb654e472b9cc3fb5baf589cb4bfcf1808549ba453239ff55c7a9d8af4f81db38a89b53008a6b993cbf81bd9e1ee2297113f533206539563b6fa2ce48586fa62598b97386dadedb70ad269694ced2046f66569a2c53b620d2402ade1ccbbd +ciphertext: 59efebc7d7b940016f2401fb3f873cba05f7eff8d95c6050908d2e2820a9dbaa02db475f4fafc8a76417a789299cf1e79a8e63b1906dff632da4ba07e04a9dfcc0fe0ea6bd6c45ab0cc6dcfff5d9b3c392e3f448f7b34be47b56b80c39635e8b0ea072a0d5b5d45bae005ddd20b68b6589b2dfeb9087267a25d3b77cd8e351d9cdcf9583b2f4e1a8f3abe347bf1561c64afc9598e29e4f0a945ebe605056f821e25c3fdf9f44b4cc7c3fa23583f331db2fac4130992c97ca4c19b7c9408047c69e9e6e577fa1b110941de1696b9218b76610016a2fd949726bfa9aa970bc107d26c1e2e788804ce6f204a56feb8007c641287f00a5d2891373512c4cceda5768a405de8466fa8ea66c855a236a95df1c31a4e99308e1db049057a22dea64f01e51129d8c2d722ae91923ca4ecda2148fc9ff717c47f77a6fa011eb3875bf2a6bbee576fa81d638e6681faefc169c04e287209eca0bc2324e03feb243fd744324c257d510ae6985f62c50edaf5b34618aa562ae04e79a151d0ae26fb90d0ca280e9c105aedd1ac538188950719fb5206eb241308bbdeaf877b39066557c461aff0fb1d94b5050e18fcf9c34c8f065f9db2e1e33bd2ed5ced24b744575f7c423a1c1a01581085053cb8fb91f0bb33b8d928dd0f5d8e9f3d2bad4c2d317c3015f0e396ed1a6c34ee570577484412490733c52852deb0f32e8acbd22300854cf02d77c63468b45de0ba1a7062586b2a53f991c5dbdf7541efd7bcc8869685a49bdf84061568c2c2b3a47d28a66bdf5acd92a72694595aad03c87b17e8ccb2413c5bb047b907ff60653b175c8f9cec9352bbd5aae3d30535549b68f2a682b5cceb4039a4e1235219afceea0dfc5767a9098f81b5c11f8291eab9b7edd7dd095c97de7c1df956c675bb9f7095b5cabdcee54ea95554fbfc1642905de35af5bfc1dc3df81e7167d4dcfed0bdbee6af3ae676d99bd50983729bc1698f28e89cda3f67dc56103fe96f056e4aef8be628a3ab2cf7917b816b3e3f6965dbd96edbd1f4d1f047de3cca5df7c1753c14abb0592a68fe5a7ca54834c947671712fdd56fc85370e46bbef9a8f827513f47b6b296689ce515571375a217c7499a510ce6780d74f8a197597b35ac0e10dd815531f2b80df12623a60761566adc7b2966fe8a149a89fcdbd392241b0a9bf1a737941550b5eef8d758a0b96a34226573555b05631e13b8abfd4c6a8f20bb0640f0d1c82e0a534400277a71eae9e815c1162fd42ad6a3e174f399a729c25b2466f3555d39fb3a4a33869146614a1532ffb595880ab1a692f88dc24b80f57bab4c09ed3c277f63966a21599367f37a1f5b04fe4c38f27fe0fc3e6ba2da173d9123e459f8a6886ec6d65f3127ec35e91ef89f4a6e0643ba625431bd27842220d8ce23325ad9432c58de26d7214e9f06bddcd8dbf0f6d578820115c3e631b15d30d153d9a8742459039de2acdd98b15f424c765e3fe2f219ac89734ec3f8a52231aeff0c0dbf1d3e4cb78ee1510b38b5973d3b1e687e625fcebc2d7bf678f8ba3b4da39014dc84d1e7acc883cf0f0534d2cb5a1da64293b84ecb70b4fa6580a3589764caf6e7ae8a97d82d7391066ffdf47ee71688022c4b06cc0abe5031499ab22f5e15a2ca67329dd872ff7609e3ca2fcc95f9a61a8aa919ef48bb6520b8c0f0356e94aae616c86786ddf7113483a1014ab5c7ae8cdae8483230941a37859a29551fc345f4a747f88b892f52f175394312efe1a5d7147ee62c82af8fdaf10312ab182be1fe37cf3294c1483487aa1687f9251fa5497c1741d689b0bf2f326e63db23952a9bae084cafe368da6a83fbef0fc5c8701300d7c199e62e16842380bdb37284e7296492693dd33c6c5f6ef218ced8e7ca4cd82d46a2bd9fcd63901695784b8afa04f604cce41f2424d59a09336a67222b6d24d3ac2286617c726d5b62920f984b2b6a1c1beccaf6c141fd2a64d63f3fa18a745f76c505107ab0d74df63041eda039929bbd31528eebd5037a15188186fa0c0ff7f9cb2b2857879a8043f22e7cc2167354104f17b2e54fe22d762eb035b30e71acff8331c1f99d1eb8004caea2d8954aa90e9deeb66089eb1975687a6124e1725d458ac71db6f39e5ff3a5ffebb29476722f3d719471a8e4e57b50c36e934f2393c22d53bc5e8173e0adc56f8089263f6a69e369683514c2d501b622085443bc103 +result: pass +shared_secret: d7be239ac10fc094ef55cc8c2f9ba566e2ef81618abb075c2b2604d8392e5e8d + +# Random ciphertext +private_key: 8f44604dc0b3e08b5a092bc488601632fa1ebf008f7e3897f5287003d149cbd49b90ac7a5c013016321e233b9ccd69142c875806157d7619604b88239aa0c2075b2d1a2ca40fa75642d6131f22c20fda022d5663d5a01b2a683059e8bcbc682177d4b52e15632a553d84d949346bc4f3e54050f99d155c5f1aeb7100582ceb514d3b2a1435d1b1160a3ab52a29b1c3cc81800a9f32b9e1c56f4e7a0d02474b8d49cdff1caf34534a2a5c813c24087db57ab1ba7b29b48075aca1d59b995c5b1877f17e3f995cb8ca085a010e35479302baa30eb3af95e95b99e581a3429ec02a08fb4aa61b035b28fb59d7811725aa38179bbebc00a820a457d2f55e625c8aa16036d8f3b353c45486e5b58c9082a7b8a32318acbdc39eb59a8e3cc926231a864979817c6a78f7354f99451d35dbce5ce7c094cb2c7c1a8313328ce9a3110b862c1f3640db13b2cca7bb77b54e5ec6b56182305fc3c40c18684d09843661503f69c391b4363db564e5f2b24cbc37058991c67676da4c609478252aab922160631ec72f879b9e912b71d7776ef62ccaef990e03696de831967539b5c0774f901a4b421c4ea1206ad0ebbc2c511c617a03379523e2cb98b0a6a0f5a388c2b02f30407653e0b1d0c712be836dfcec63971240898aa5068b6d614b9083b16502e74800b4cbcf93147d438e24388cdbe65b84a5234150b186362fb1924a7b66658eeb914e976e17e2b414973743558faa6470f366a05eab7fbb41cc91f655798abda006266ceb279da9761416338b121116a07efa2918e3f845e6d51ca9c718b150a026687c2b562f5787335fe2b08c0345745394ede2cc2e74b6d5b4150ce34cdcabc4bf3b00fef4a82089aff1b9a79b1c53759bcaf1281fb92383d2b36d995613529b1443c98c9615c55501863a89793d7408c3c44f2e07c8f823366ca28f7a4a36c291afe378769f071140745f5971987c45bb29d0cf18c84bc1c8535760233b20bbc5c6709df3176dc6140a4702653c42ca68495b1b5c9184679b932cc665b6f5a941e169261bb773802ba9bdc50a1654308ca123954b5cba88ce76538a8f94bea8f90a002455b1da5da73ab247758cc8b40af3508192d6922bd40843e9cc1bab310023ab43e37bfe481e0db8bee372801af1687d47bd91d25a4ff760f61a395ed05414c966c3c26ed7f75067fc0b2695a68835b6ad6cb2ba1b77aa928514ba7645cc49aaa30065881efb700a71286146f1a0773585164082967a2d1d772f9811c0b0505e80e07af0621b12a740f70403a7cc42c9699b8a9b4c4dfaa7bd50a8e48a78dcc866c56b17699069c23135e5924f42d39996c1a6ddd52da59a2805a86f3f761687296435606a1f048bc6747008b21b98c1638fb493ec7551304a845b279e70060841856e7eca8a2d831d4d1a59a8e1ca66e45df56a07380a557149202db2becf40a0e0fc372c83bfda3b9023e850aa4a51d707b37955bdda14646bf64b4b385496eac02cf597b63854816a9aaf89b0cb1a00932329e88c113b79cf9800598d0c5a8456b7b640b540694e76e63805c2859d7c6bad42522392bed42813382257ba940abc147d52437671859a57b6090776a687e54565bc7b64b59d3286c978c08a75375106c179ff38481d1988c962619f3594e0c1a613498279744bce80005be4a5a6c43d22157f9853bd02fb0a30716c8af48a717a15253455b55341747a09691b6d47c0b9a5b770db9566a308413c82b12bbaa51e752a8903a9bc295e49239ed778a1f3c65705188888b98119151f9e4069a434c25ce6992d6a5e97dc88cf24760c1aaf3f1462d2ec35f860401672447256c25e265e0c940b5067c96cb7aed00b246296949867814277afaf3b73adc972e7291f601bc7960570c822ce84463267eac351f0379112764a73cecc41350b60ceedb41998e1b99b775949f841e0c4c5a62437c499a543449e993457bf3ac09c9ac18268200e39547efa8de1412233a9b2a788c48fcb4071f6407a228c57796014fa4d7efc6ab5996fe15378326bcb2ad93e75164d787c3558a566d2578b23d5487cd499b177a6f7d00feca43ad9b118a2e14bf93b387326046d85b2d054847a8353ffe3b321f61d37626cddd65c3e40c84fb27175ecce87523069ec4e44c284bdc5352ec9693767ca96946db4e902f1b25d87320268d9002db248a9796b38732909aa1c24e9079e0a63de338ec451415dc6203aa1c3d4f08d7fea0d29e11b23a91aec395d8e7b0db5e119515403f453ce1258a45cd5cb49e86ebe2545faa514f9b853c3f29035903b74373b4919ada72059ebc615a3386bec048c6f5462df5506fe5422a91c3716b1a3a532bde8e91eda38cd4cc83166e6c0c1d386eafa27ebb4aa0678a036162f5acc5e96e062fc9286c026ccbac9568a5754da124e67489132849805e19240406dace49dd8746b8e10978399c6654cc0fb7401f5266e7cc81cdea6c2c0517e26eb798fe33f00c0729206c1bd011ce9942803a9af2c5319f3c760a200a8b2d231f798c013794e98bb815a100d7a5bb9f9abb3b3446f9535419d72561b7084bcd131f2e4ba13c483917b793698aa36a40eea3378e6a74e26f0502be47d701949d6064ef31a64d4d64e44315378c361837402ea33251cb88f1c080a8a169b9e3aba41d21d8259a130883af57abd294ab3ad377a379788d127bbbe9041af629e4a0272c6796fff76951c71852f724c14d29d9840849ae45cf559553c756f3b8acf3bb4a1be9ab5456b501b1a790ce2c1bd7991f6ccb66e0143947c9613d045ff260ba80266a5315ccc7896eb88481b938f8459c2bfa0656af2906cb2398fa65ea659307f9073fc9b8f89a61476a059a52b7b495890f93882e567248f715255f656c2f941b4535c07a2859837335fda5cc1ebc2bd3671fb570cf556076e7cc18d7622c243b2c2bc96c5d07cbb371a31726b7b307cea9cb82eeb49bd5c11cfa1197f529f33d18aa7da13f4f87b4b48affd1a8f1fca33d8858b80328513f886802262ccb11a41f6af0460140fdc21ba5c5143418cc4a701d8d2b11952301bd7cb1082946a4859b782b1dfd0663cdab90d16ba818727c53baa09b1458481299ffa641a37a4d063c3e48caab5951ac112412932a0f98188ad7389baa40d75054cd0724dabe78e736cb32a6b35b4899137468f48bb11f5170ce20051b9e7a86bd6062532796c07bf8fca5cd723be6b4c7f22e8c699d1481b25554e88ce676a55a6f9be21888a76cc5d9725cffba2b2d72481ef9401c9f930d7b84e5c329028d7ab64562a174c3212f63d2264973964278d55a7dfb4cdeea434b711cc6ae4a041f871b9b67dbcd05627058dbc6356550923c19337d5c5c77689359002cec25cc440d643c0b0b7d49787e301117f05926ae7195d173797383895615287ec430de2621b477e2cda648466c2999c7abaa5254c699fb922390326ab7187a795a04bd8aa3424b87fff884b67509836061069f13cefbc9b719c877d603a448a280fe255483854c2005046b778f4242060d42790406a523b0da76c5d837249cdb1ceb4438dd6931820b493a63b1d1fb12ebf4a7b8c41460a5626711b5a9b634bfae619360008492882ffc4c73a476b14e9ce7d57b0cb95b5ecc1006db88079b2129a44bf0c8402f50269bb295ccbe855b8452838e9bfb3bb8b3e7b4b5d3b403c5c671ebc6475c43d6785765340bafd308886c734b12258d28b6cb7230b59187d11433bd9511460b232f0fc2c3cb806befa4f9ab3765752111192adf3a1cbf9dac23ae7945a0ac3a3660d96197b8b0749efa5cefef5556d28315f6480fe702e0bd3864df5662b48481862686deb057e421f9f35ccafdc5e3aeab354d39b05024672e02b97a5979a3434ecd2a04ee8c22e8505c5820b11571b1c6a26ad5893d7c37ab459b98215908c920d29ab4e386b24f67912b50a1fd6f672ccd250fdf1938735accd2aa2efd9b894f96e682a37156a269e998282a53c5ae287bd0552d2f4020c19952b3246fb94400710b4b9b3381fa26f15c56358dc3afd876cb820095d00014b054f304b7f9697a41c6797b4a7ba0bc9be4b4342aa792bfd449a4c3a1e117b343d655488e521fba104806059d6274628d94fcf8c082d5cab60ba33086b61663048bb9305c8f67d0bb59992e7477499c5fc4843a95998d59c6e6503bbdca66fd82a3f7322823abb5f6ce3265528b41da7927059486381b72ea2585f729e2b788dbc7bce924baf65f25520e56735d906c0406595b9a960a281f442a8376c2326e1a20a2699285b514972cefeeba2362847ba92a2f3b30a124449a6109b8b192743c7173b0b4cb9952dccb27d4b43c8ab931deb50530330c0b7196b0621a9ccf15a2c2fee764b86e93af8c536acaf13874597504d06f194af8ff69703f283710f0229471e575df808cdd343be54ab9003e1db3c098492bf78b0deccd7811e0fb321faf0851f0061818e5b571a +ciphertext: aebbf3376082b5c3f1f82df785281328bd869bbb7194e0fcd0db3a3969e26131f8b10ee217cacf0fa6fd36c3655990fffd96af4905a9e2914aab741ceedddb079d61b6b148425cd93a20ddd15dbec759aadd354379bf65326b255351102ee69c3a99eb2da32f3a338faba2702e2f90b10646596b0ea932d4c595f176f44029a14359cf50f274f876d278574adcbee63b89de977f5ec9ba9f76132ee96b4c532a42500f798c1e518bf31af7cf76357d448fe2c943ef46168b2633f15efb23dcab65a4b3c2d0695cdc490126d5821f7de2234c9329d9afe38321bfcde966a0bc12d0c5a8e808d2375d8b32434f579a3476fb0f0f35a4461b615de2fdeae8b72034d2f24e5e78d52df851b65b4e9825dbe408367ba2847d82c9c74c62218d8f64f82d6a14102e99255309f74020d4688936318f11ebe217313cdb28cb1ff31eaaa71add125ecf643b86f9985efca8ea63438af460472cb794142912b87b2b33d4c7cce01731562f110fbe3f9a65b65b8279f4adc01730f1042e4eb34bc476c534e870d1f9516781f5c0b406d570b00a86c718e6f0ff1ac28087b09934a709b166d867b3ce5c4161702a13534ebe81a0ed13a7f62c29d4997f42b2d8bc0160af93fa7f2e7128bf38470577715a2e4ee6dcf431ce0de7ef517e1edb722fe75a784bacf33c18314e079addeaa1e8811ba3ea57ccca8c4d9e4e73e03b786c9a95ba65554fe0caa3d92d32f881ada6e184c44ca1a17216c1318e9fe3d08883646d89a912bc97b34b80088c308dbc89628e5926505a7415c57b247275a0ef62ed558b14eea6666668f533c4ac98e401b99f24e81407b7412eeaa61a5596f95900c80e7e6ad8d4a1ad7061073eb8c6100ee8cd1d410863fc1bc3f92fcf3f40428a9ebd32d9014f33e67ccd66a476529734aac311dd83db025c1e89e9a15724ef2ae3989643cbcd1fd51144c21811deddb92a7c01c7b4b023b1a5c63191652e670faa96aa5e6170a7aeb8a0f6727c135628ecd5c1f50b2420288422b2a7c9850a0d358e30803e98db3870428bab2b9fd9fdf1aeda73e8989f2c0c850a78511e480b0ee403d63969a47afdcb9da21b824d984fcc4a03642447adde98228be4dfbef1a08dc7ad1ee145099f3344d1fafe438087cf0782c424dc90d66bb0b70650981b525241b072082192f3d2bf75587f3303b14a41a69813e67d2f9447022eae6c8143231093e51f197c8992e7e9e39ce129b236b119de21f2c08967e048f16c2244b8ed033f21b2d64906cb3932b3aabe7c419460f44c003a6a6e78cf013d543cba56958ccb0a6da8515a3274bb237758278caf3136efcf29b62597e0d4bf6cd278b4bf2b2d27bd184f80a35ac66c8cb1d488229a90d5eeec65ffde3cf2acf373fddebabc43b05dd16bd9589fad47f92e6ef8d201f66d2e6eaa969b7c5e861c08cc935fa1a9df956581e527fbc2940bcc65efb38c1ccbd56ff744108bab3891ecf7173037fe0fcc7c3ad7eab8ffb3eb16abe51d378c02e9153ada8df8fa13fce73cbd710e55daf869054d6b40499900d5a3df099bbe5e9928e9e287b8f3cffac86f56a5619f535dfcdd333c2d948a54578f92fe2d60d10425167c1bc2d7416770bda4d449ae74b441ef204501e2ea0fcce8d7bde18d4426db0d0e3f3b05de49ba57472162e8d062aa3fcc781706f205218fd34419659ab3b03bd16e86569b5b12bfa32c44d3dfe7a493030d53b9239064f3b1492ec1eeb961f8f9f36915e2c5e3d2148a04d0c55da4e83712adcfe8747b44c35ec17c9da5e938eded9abed64745d6d991a27b512ac514fe7e809031189e3bff9d1bde83769d528b24f38ac52c1d29aa34dc07dc8dfa6701ee20f0f0346b4896ee4587dba6e7f5e95e57d4b3a75ac388fe92b5a94e5dd823dd21e196b5294b480de0ddf60309f6ad48f0ae2f1c349cda2dc9ad94a7c7638ad1a7336317f71b68bba82adfc3269e42d3418c77931f74d85295caa1aa6f9d525dbcf71632730ca3dcbb212a3f7101c240daaa891c85d89bd22450f9b246e1ce927a306160f21ede002ed442a4653ce8552f120e10b2b04e2a441a4c56216def1163655969a7ff09ead197936d46b743130f8cedc78e86e326d96fc658ce6d8241fd24b3e8a199b07f87acec1779695a2079f55b54a175fc3c79f8da180e64bfe8425f2982ace1a1957465057ec54b5a1bf0605e1ed59885d6acbc +result: pass +shared_secret: 09571d6c8ef610abfcf8bd96cfa87ddb363b9e4b1c25376eab6e4bdc58bff9fa + +# Random ciphertext +private_key: 765095c0bc56c8610830fb4fe74182b54ab334939c0ce2515b6c9fcde365b85c41bac197c3a313f75928178758156382a10512b5d918562a7a6ddabb3112b3fcbc745423ab00721434b0591c5bcbd2e168dd05ac150bac8f069670c5ab332aa72cd491e86b5ce8b0bb247ac4edf57dc17043fa83be85e98f1a3c99c30aac57857f3f1cb337479a488422a26cbc65878594288bc0e81fbb6cc00293838896326017c1566586a6c769ccf91786bc16f92170b6c5612944995d46b4759b4e047a3ab1da01f0ca4b494c510b94cd1f97bedd9576d5e5719d842372c56755184d726c644a4a7c5ff53a98c320bff526c1f0a933a1a46ab98df10a3d93769823d88302f15efd7600208bcfe4e2777068ccec877de76bb335847d9e5778bd284099386c050bb64c3bcac551719608739f8040da6aa2db180539c349dff190536c003a4b020d1cbf4deb3bf9018931503d42211f0d32ba19f6c439fc722d43cb9687065e981856caa40533583e3bbe994600d391105d31abf2922d582437e51576932acf0d432a2be98b39c4adfee2185ffc48fbd380df383717d5514bb7b6eeb284e2689cd7c716b50bbc79874700ad610af33b36b2a9b5a91ce7979236ec92bfc68fbbecc966c998420a4841a8b6c08a3caf102009b5a51591c85d7528c0617f222548b45823521469aa37b33f3705dae71ac2a28ac4a848068a931a3a7e7136b22c1b0167f66a42fb5b57b92d09617af07aa9ea609877cb09d2228680c88668ac97def4641a9bb02746bdd7465cdef084ebca61f72b0321406983e995eae77ebe068cdbe18acada95b4a7100787891060c78a8b094052b40ee201c6b91b50a6a4a1b5245c3a08bd168612c3ba36682fcde027454b30f9e22b9aa9a9eb3868e9b34a9ca37bb65023f1f3a4f2445c1519051e133e868ac4e04c2bb977c016db2323e45abdab821d12c3f0fb7a00d571644a477dd8a7e8a2a25a033f11020ee701ce70f16134b20829c5b41de6b3cf5c052f123021587f5bbc94f9b8383149baece56baa093514f7aa0f15ab04d881e0f05a8ed34bf7b1c2fe694e4cdc2371f6a3182bbbe5e1274129cc346157e2b31fa12469b930439f96093234c9d2cc82a4a4a867abc117e159926a7f436cb8a8eb4a238b4d78dc20c9538e538c44afe410114770deba08a91b66ee52be3567522f5c8f2817c46d3865a73108736b0b78f88c73a32f31821e7084834506a8615cb09d40793ec941e425475e9831d041295ba77a05a551a68b81ca5b4df3f8255f6244efb8c849714f3271c77db30eee369df1a0108133c669d86987901e3053cdcc6a8da14050306377798773b342457443bc268b6f4217441e26c21eba60036b8a7bf1208a16c9f1a14f97c37501465c46d52d835022fa676d32fc59901ca8c6e300f6c5c8d8cc390e2a1232cc85ab48c0403c6396eac363ba043ab7726828136799c8aa793cf0a6487452a3280ba2ce0a6a41a5b90cc161fc441a99e33c0375c0a945505b839d3d7b8fc8905a903925c6a58f690b41048baf2aa797073ab1bea6c14ba3aa0b575bcecb05eecab23636b97838cdabe23818770ff07ca9d12534d2300c8b8cb5ea2311375c56ab673f9d591c5fb38f45f717855a8e9c4a3dafb9a2f4d82f44591ccf7c0651b8b6f37a9419694734a21b88836dab867f7775cec5e844ced6c9f7f5015f1bbb82c82d70a12497573728e17c1d6b300ceb5aec8657df093c0fb27cc540299d711762f0ac4755479ada28142c0d74764fa75cafd2468c304060719323251c7209922f01b537600c1042bb302068a8e3904dc678c50f65ad29c4a19dc20bfce44c05a395b6d2cb69e88507f058df8729316047b02944a0f23f96699cff713b5a69b126a35313ea01071207678877bcaa0d77d4cac4e10a28678f7c567cab0496b39983c1379ce6a5cf1c0075c6d01af4d0837c074979242f08da97f15897eb4c6debfcc30942a8af347b73b08c907bc6b0b2958e5ccb22c44290b56565a31c9ce6480a02cfc431ad7ba4671c04c7ebd55290531b985c17fee42edcb285aa5947656c31edd77d3793705c575101506353a3528038674d3411c7c80bb683240bd69b40fc2a35a8c11f65cf12881d59097b395a357301780c04811506ca181342a87b2493dcce40969d29882d4c596a29561651587297ec26a8982f60f41b523cc77c98b4d3c61496e614fe0b1e0ee067c173b8b63b548026a090c72f65b4c675637771ab0f11a86c62666b453363658c2c4724379136a85ab74e76176f711a4904f0ab124111b226b525820f83f29306029dd0e5b9e5d28f4aa1255180323435373fa757e28a9b874653a18aaebb62bc0f00ab542c44815b74f3e09e0123736889a252e2ad3cc065deb03089b743b7b2a47695c12d0a425794bd0139bbbac9531e75cbe7d1221ce161c2b05c2f014f21a264fd0103cb6a4831bb091ae1a382255116440e3d958f87871b53a74e4e6756f206104babc645c371e7058c6fb03368c53cd6d1b0ef9578bb22079a6518ef7736f643259ee181f3e4a6ad151c8ffc55a5b89a7a23968a585f936a6e79da376f4368ea86c128b698cd10b7797a0387d94ddfab3022ccbefcea86aefb10e3217bb84705de981086824c47743bb00a7637a259bceba365e64df6c7080b3215c6a41119db106884ad19f9a11657794e1a0c956a431a42cedd31071da2b695e15a47db49bd0a47d0b4aef616c7f7453acd41206ba124238aa186c4a1c559cfc670a09b4165e2b978f4432413fcacbe91baf116842181611182c2976164f343ad7e949025067cc95b7c42602bc2b74dc9843749a7b483d94354104da9055a75e6c2e91abc19b6722e347a3eb58f46201b7d191223d72eb932c683ac44887c70a359012bb840c89c5b3802484a97968981479980465f9b274b593d6d4837939267ad80c4bbf64f53697ca565a78af35bd6548804d42fdce5bff2a58af7e33f71c9a2aacc76f964ae28b7a85e37a878d4bbe374b0e8bac18f769920038c5cf3436a99a8798cb2d6d877fb1071cd3652aac229f1a78e83e2c7c11873c4e0b0246c80c8a9b862a471a98c847d7a00d0a207c4594433d98c3aca992a672b1232b8f36a8744a707000351889244f413ced1b0ab3299c587aa72d4796c47f7119dda927eb3bfdd3060f2cb08a746c6eeca6ffb25c811301dadf3c5bc2b885f5b3d09d7924d8493db7a2ad8080a1994a6a8c742ccca8f9217b8d02055368b7945c4c3af61cfbcc202c0d99edb210d24c66509d5b5c5f19a7a8139be4a0b20101d95f31ae9f74272538ec5278c5bca3161d4a1ed277200e638dbd1a75462548cec5e7203972032bf7e13c746316fe1f843033b836f74998e1c5ab5961a90014b7455776a3a0af1e7883fa4afb20b838aeb753fe1cf0f7a5b78f0378d934c11778cbd4311ea78a0293a0e65316ef28c2baee7486c9401a087c51b5bc43840cae2b43e072c1c9b95575139a0151074333b1273612973180a9457886eeb0e0303496a7832b896455ad85b30f7a54507c8d3021324c3220ec2a2146a91919a4606a4ca4ec9a3056a107bbb289f036474b803323b3f6858ca5596119f8856a331892f5329b06796cbab9a79a76831d207cf407076a9be01e128a73a3724da1a2c7a3958471dda50399be78406e342ba06a2c9199524b081333761c0cb94b48a6d125b222bb0a1d5e2597967073027adcd848c55e077edc44b19c904c8f7473c782ae6fcb2a5a5a9113a649d4a3808c1025d58203e5b3bbe72605e222a3fe3ac694758e6c92e042786d26bc762da6de5375d48bc5cdf0385cda0215a1750dbf54bd6196707a067924b1d8edc0d5b527cfcb313aed687c271cbc27ca8d41515a32301e28289af0b4c2e5723e5c0b0d60145bc53acce16804a461dcff187ceb7c2462776dbf89451f64d8a66a021a717f5d3300e69b792594e3c033e081c7cad48398b76792d40cbd731095e14836bc843a3b93eb420602f9c2658ca55edb5a88bd8cd92f1bcee4508495bacf7b4cfb966483d1a309e80bcd457ab4f43a39b060694d49f2e535289a30ff50a6684b3bb87d7466fb0b22cd1c791da8035809d737a98bc1298cb714677d1117105534da41cae939ffde60621cc9ace66571221aa1c82ce9438c3a3691395d508b8b81e08d77621d170a59a2ee4011a14f5870ad196c3b34050d643e409c68c660903a82242335ba9369416a95cef931e0b4a39bb194ec7e9c000bba7e4f2a002ec37ad00c61bf34d202b7c6c678f607975d0d518b02718d6369a5acc356f72a5c059c8a7b997a8c78517a1aa6b723e832a46b64b940f39311b895482d8615df65bea66f8bb8314a487e3074725e621907fc4d0b93a4f87d68f3a8115e0c1bf0cfd540ca291a975cdf4264c4e9eecc1e41053be3417714684ba57cdca1a9cfbc7ec67e2f9a2746003558aa47307399416cbadee27fd0db35bc7a549 +ciphertext: 9c0a52bf981835dfc163939bea10728635e3e519077d1ff0d74913bcfd729d349624c04426e62da4810aafa074a53faf63c6ade5dc72d993e0ab07760f68555125295192c1b58f17ebee6d54a0f5811e1f07a8b764ad64cfa33d23c5e1ed4cc9162c871986230288f1b382352a4abb491a9dcf4b4e65e0d8946c49ef1967f3d5850f33a6030fb19e697a049231f32d0d7bf9e9ddb8bca3ed7854dfe79122052ea026e69834bc94d20f8446351dcc6ac7d752928416a90773faef9a1b64bbaac3ab43e144f8084883992f7105ad79517d7e700d35d06950a9b8877803a797d97b8bab85885fa9329de6bc3705dba53b24add6122f4d01a574438ac243abcb6c2eebeebecd7337f585b080217607e42f26174ecb3df54e87c43c13658f04d6684dbb40f40c7bf98b2759aa5fd31d720574424352640e195e3532549c7bfb5acd26234a16c57e9ac4441cbb59ab52fe3e6c2ce9afc46343568a1ad18c4758b37da1b5edd68508409aec1524bdc3c8380cf3559438dee92a68746e2c5241972dd6572a357f9b5d2d5e855fd522f5cced52f25eb4fa039e8fed919a9e8692266f7c1b2385e24d7385819df1774e5d32fd7595b153300f04f0d2fc9fb3730a52ad49d38961d856ad8378a2eb16fe7c8002ae6fc11e076d50aa55ab432952968a3738aa6371485da0093ebb359f9b4b2027dc1a4728fc866e2f66f1ab8a437a223b2629e1df8cff41fcc23a6af4e71aa61a3198ff798193a960df229cc1e61727e075084384b535c956879535139113bcb6f8d2ff83ce4948b6d2ae41436f6acf2660b55c47c8d5dcdcd457da821e378ff72ee42657f2f416132e5321b2839c218c2ea21db244ff5d2ce38f0c7f8cb628377930338d1cce8a788f4f2d9a4c9ae4485cb156f0701de2132f1ef3b05fff1c972a105ed5073ffd1f51520a6de361716bce86389915b7460d23c4399dd0e6d30dd9f775e312d6aa5db008525ce9ef3065682e5b3d809e21578a8821de7d559e28eef0dbc085824031a762e241b75879672000a0b115d6d1d600c1a6c537e94e3a7d8ac8a6a570d48a86505e51210b98b00ba06d79986ab9e4254574bac1fb32916169c4c7349197c8fc731a8dfcef31046c2608508080ed5c9ab64c832468d517879860f62d65f52b19c3e877c08b5857c64ddc0af4b378e0ac65a745fa9e7d79e646132b64753bf70c7cf3c0d5b0deea99e27ba3c2393fab254bbae7729ad8c9047a063721dd062e3993c1567a0a7890612b5dc7f08b5f54dc5cf934aa410e94000d6508ba22c099115a53e6c64c95e15becfc5560ba96c1068ee52f194b7fd2a605f6ede452e8d99c660ec633d33ee5d851bd1a495848554b1c2a107c7072609ef1d88c10fa0542586c2423e40b8547bff339b8fc92db0902551f26dcd1ba8a8708f5717006b72723a8dc0b3b1733bdfa6ea2db0e8699682675a5ee8214fb259d33f6c56c7c648dbf503d3cb744ca7a58fc8e85257a1e3e4bf1e4b39bb2d97a3f80af7000a3b6512e436af6b5de59fb5c57a0911544a8def9e1d92944fc1b9b057695ff60c62c4d853282d33c189bb4454a0558665e4dff3389fc5841131af71e82338877c87491c1d89369726b7fd1d0c389105b419825b8b29033a72034d01f521b2ad8432eec596013b403a023f0925f211783899aa8deb471034ed8c8a1a94e706bc1b6a04ecd9396e63a3f7e9fe3fda8e0dbab0c571febc7ba0e890015480af94a89677ac8de00447424cbbcc0222450999fc7c6f21bfdcd740163b8adb16360fb53f65c87616f93d1a342ac828cc6996e2303a6585e8e44b87bdd5375a4dbc44cce72ec05371aa0f00e8901590df6ba8cc86b54f887f1cef2ea7f96eb11d04ef5bf831d88e62b78158cf4f7f1d42fd3973753c7b59a8555ee5b2a756b0afa60cdb44e34bea6731a6826bf120627660f1783f8f646d0456df101373ca12b8f393b66dbd33f73c3db0ac80fea3fcc84cc3719ea80994e1593d8987d558656ba76a30999870d1fc2b2d6c78be7a25322e68fa424a1e5ff23142b6401b44c13c844207ea16962f80e23b2b4733ab32bd95be7f7fb487528ad3b342c619a5a71d0244332e95b53fc33b466f18fcbbfeeb370b3dccc6056d2d2efe8c4fcb671c38a8c051c985ad0c11df594f422110d57234c60bc30a47a8c8dc3da893a36869dd8bd72b029a01a4157c82847f45fe09705 +result: pass +shared_secret: d9526adbec8118a81c14215fceb333fa396f954c8f98984160adce1e86c933d7 + +# Random ciphertext +private_key: 920b10ba5a84a1706c9fc264016a334c9902329207906360b3a76d12c15227c298c7e702ba5939ec53223e22bbc75a2460912f9e23958be23f5ba70d8a9c8e52980e106126feb064bc4546f1e7c4bd71beff28574394902656c59e664ad6499bf3fb03b4413fcc2c42f38b5c8504a619d994e2b05cf3964e52a69ac1e588ca03945dd3913d6ac7ce971f4729459bc760e6782b5c40743e63bd0262b938a88f7aa70893425ceeeb31b80a5ccb232504f47902b56442814607881efc684b8cfa3fc2d6c7b8fb5053da58fac84801434c2c55c25d98b16c661b38e942bbf12a772443f8e0be3e81c9778b4389861eb204aac0528546f1a838e8b4a021695c177a5e8774f6bbb87b68a651db6f5ea57717292fd761995b335e71a7625bd535f57a0410341e9e345a7ff0904cb20b599a1777683ab70659088c3cf705c2851cc4fda0b3daf55e9bd70fa8f6b7cbd64bc6ec17ac7918e9d8be5fa300d9a86dbb3279d1408471a5102dc54e0ec7a905f35aa4c89e3e2856eea9c90b75adc23937fc5c0546cb18df3972fff5c7b2b5784a0185a26c1c8b0bbb0d512e4ad0cfb6c1b5fd72826dd74d7e8617362668ef2b00c3c64e08d020a0f487199b59421a4491843806568a3e8b490d461d0f3cb208a7c5ca0a14d3a25e74fc17d50c28db4aa20ac00d6a4c643e26a1af6a1f082735004764be6983803917a0ea694a0497e7f68d2c124dd3e70188e68ca135a16560af75754db2557d6e4c5bbeec7bba4a1fe704464d3a319ee82b719735dfe5bfb06649ba238a76049fb7383d0bb2004bc433db2713cb7c6080113e20d4c58e5b4ef8cb490f6801d0f26f9e845c1903780f4346855a73aebb69f8849226406db4f1320979c456f128cfd31d9d8caec6754e5800a3814c10d630164077505c856230cb9eac6ca8e7e6a0659b8ffca34fcb691923c380428301ec7a7a34ac9c61c1acea44c13068785f5b18f2cb73177718eee1a1e3760e0af4b69843041e14c73a0c20a4e0ab9ec3075bf077550051925a624b1b0e3e5c2092ec1c92b7750e9324656044315460290445e6e937224b96b190649058ad43314b3862678b8829004c9195a234325375e6f428f9b18999c75e96a5c76a9aa62e772939f79a87d69e20c84535ec744c50c8fc767bb7bb232d514bced06f505b4dbf1427d1b28a14d497c9dc0ad9e5bada1cbefec68f5d2b5b4fb9c975bb26f11b94e42c3d8fe26c34b72bbaa36dbf6632f1f76f9a506f335c919e063e1e033b23f7a09430581f81b731c333f535c9080b3e46aa5aa633a5a7088bb49017b771be754b6393a3cbff904d318b84dbb42f9ea98fe775b6d7615b2de62ce5718e1b0193cf638b301160f1f7019347b5b240200641903a11325e8623bf578d2e2a0d42b3b70ffb7a681867e2f93bc45181a21993d2eb46eef799f0ab87e0da3890ccbf75ec02e142cdd6410aaebbb9bcd877018a6459873035b3a3421b4915414ea5444e9d7a4d67b8a63928557f284968127127aa5f91039ddc4b3e6f1a61e3f88b2fc6b5447c11a9a281d33c8d38a3aaede94a5cca7d34b5540dfc5741f3bb712baa07243ef730257924c7e7d743e176c6b728ca61ea57893c863c68987e685276f2347c93aebfaa6a5c5c58e1b12842e82b064890f3ca3d67431449a07261bc7b1fa5588cc48670727c7486258f41150efc8f6e3cb480f7557d9c0704ab4d23c2a9d8d67986eb2544505b9382ce1e649428b84ddd3c6053522ab5b5663ef21b3a66914a840d6f94a63674711504069f3410abd3153738094c723b847c1e24c8830746abfa009e940997f432b7af6928756959a7728fd673389a795a0d9ba7b02a04967627d58602988a3760154264746bb219274c1331fd7c83f91256d96b829a73a078553218c769005a33b30ca64020c41b2a6b1635b7f5d615a2274551e8a0622a1789f9018ce35c2862557e6ba132d0a64ad5966031343ff985031906f966a56412c4aca82a25e69fd4b092871a858978c219bb0958c93847f47eb72473fc5a417c304e68623e1c694d7df36a7c160d2de01194a409dcc9305689ab4aa26d647773d1507c5043a21c19305e86cb042921c3f83f392178605183487c3d28ec219c43adcfb76f5ed53a879b93fea05e91d4ab65339af3040efb1c63bdda1be9ab8d4700347b22332eab0d5f68443c36af6db174bc0a3fc5c0a915c86cf340b5493305e4b759120015f75262f3251a8b7ac534b0afd1677bba37ad5ff1a6d8e873c69671a477ad90a68b2770aa3fb91e7f865ff2fb2e28040b1c4034488b30c68455c35125d1ec7b89027b1c943ed5c9bc837a481fa494a5da51c0f43fcfb015671b197fb632b903bb0d49256e88100264a4c0f56a9ad8c28198b4e0850f1ae1c034952ae07245b7789cdc9a54eb5a16481934b23b0bc10b4f6eacc37c2c70f5101261602044229ec5024a616741cbe471ae8930fc4b57340c71bdfcc2ec5504cca29e85140c1c6cb49d10c2df38a960c731b305a79b63be21f5551c4b538c5915812086d4b54f99b43848fc96db5c486f40a54b640dd6084002761819c8a8d5dc8bded860297a89ab20713b16b03029a80ce7077948add0739beb85a394d1499c247f6768661c9799fbc1bf4c73ce2a57505cf885aea46e3259623d96acf85c454008afb306078304c0a0186c61642755b325a9e2c91283ab0cf4942d2bc898c1129138ca37bac653248f61b0976ac36b87f4c3d6614d411ac61f778ac898a2c1041fad24a9e6431860f3338ce844caa452e6331fe9b159cf687e17870194c63461a7a4a2b99f1e7a13ada920ee20a7adc8547d50640bf410adb0aff71c761ad22e2b045b61527d383788dd74ca70e514698521efa56b61324f844520d459c5202aa790314b8ed7b7aa00240e600793e9a142d985d2b217a51b0c77343e400b7f8bd15352459360082afb2b7a20e898dd0ca235915e7ffa3c6008059c7a1f5a453c821b24cac48a4afc3b84b0469cfb79ce131ea1444e00960b9bbca3cd2aae8b221dd4f0028f89784743b151eb75ddc3cac0364e7a960dfd449edce56f8d71adf1f4bd3239bf031aa8b675a20c2850f6c3436165a83ff89900605eeaea9b2fe22ec86088c07b24d4586d2cd860f238a7e5c14f3af54171c13ec970cdd672769e490543050dae95a795e6994eb64ee3cc561c62667257a010a13deb6164fa2b192dba170026a208688d885b415856ac8b790f2660ab56a64ae3e8a5548a3a22f5aef5c02b7143aa44bc2027ec485ad0103e2479d4fca180e67dda64cd1b61888c5a8177094d26ca4cfa2b5d58c1c8eed9613b707d8db87f100626a7e72e20b13ee82cc31e4c7aac6bc9cd806e7b316e4659477600ba14f8a77ea2720fb96219f50766b24f18b31f70603534c0be8614146126173ba09103f02808dc00b105b1c8793d2157b2fb9581c322615422205f83a9f77168199b694cfabb57db0075453c436888ebb524b7ba2009e677464447f6985488b020a1f1168eb8787a0399c9252242358ff6c67659a7131c39c908e20eb18922a6ea7b2c2c2679a2abd47736666c37894a347fb51e081b8775537c1651a1251c5f52069f32e10678d739f7522b40a529cfc31f95e62efba31da40221e5819cfc406edcc9225799582333238dc00d04270468b303d1791b06d83198c406ecf69d60c359e879b7b70797db907db37143a739272688027b945e9cf497e8cb80316170b51631cc69a48b114e7393339ebb41b31929f63296a63706e49a2aba6a0aba8b7071c8b3bfe5bdbbc71077932b14b4605f36ba940766fe69c998d829d73674eb909473b14191a459a15b1cac34b1d0209d0bba3035e7aa718ba13ad5cbf0993b5fa3824aeb10edc72d101c346df069a12a4b490586a374ca6e7abe16b4c138a5548c0c89d9a91da9751c71b580e12480b9c406053c87c61c4a6060bc3e922b9ba9b178a52438fab5aec097a29ba9b6f4c9f7142324193e0c330d1af425ba114528c82e273babebc81ea4ea76b47016ddf6351d602cd986885e04782177ce54b02b948070793017bed85ca397654020382b293f568707e30a4e6809a3b9d9c652d05378c773647253d0fa0676744c15a26b08662b70dbc72ff34af7f3c2d30319849a1062d33f31ab0d2a8191a381c7e467585caa7442d6b1ea486bd38a15222bce2f4947c842a7b824735f3b5e912a8278a0627ba347b69524d3321567b650525222465391ebf28f970687e48c8ed5b754bd902dc5b63729cbcd4f1b6b76b2989be04445384aeb0a354bdb01719cccccb392d45abaccccc4fa946cda991c20b13ce4cc0a321b81703601a6bce819c74d71a726ac5db7f69578235845a8ddd39718c0925c2d3a4ba4d39cd01ceee7e96ccedf4b8a86eacf6023ff749289b61f1fb89500c0cf6d25874b4d817d97fb451d12454502026570e72bb5febbaf60623be8151e301c5e57d26832 +ciphertext: 98a00b988bed0cbc9a9358c8e62c0c1ccdab06dead794726b4f744632dc36a76f878b6f932261ba2bc1481b0d3cf5fed40e083c44c3f73ee1851cbb660d2b41ded9a2baf8f2ac4fad4f6fd91428a8be6d2e5dde3e4346408b753d3a786ff6dc78650337d8a5f97e496df7435c2e890c4b8024ffe17a8fe799cb29b2c24af81b7ef8ed5f6a83927fdb99c2d45fa57a5843133206d9df90ee0e01b0b81e6c6a581873c260a38df508968f6220b0f367992216a9ae4aaba009284c44641434d76b9a193f4b16b50914ee593b8e25c19a98195bb9c5a2c528755ae4e3b6180bdee40ec26db6a3bfa406dd080f79eed68e447cf36d64fcecad23cd26e6880cd8c41670d2361417726da084d2effa5ab470227439a3c9c5065ec1d6e5d0bcd03ee5fc51c9318cbbdd57654f93109577339840eeccd2366487f495e9f8229b559d74f0bff8761cc55fe85d6f622f36e1dd42e3b775f26555d5b22e550706c4d1c7751a41b56715daeda1342ec3e47dc83d5ae563ec0988ba626dc2dc95d676322e6b35a89b8d51734e48a686a73aaac53db01d6d01951cf2e0ed9594c23f93dfe840ba17735f6c161440aceeec4c011e07a35edc5c9172d620403f797468fa62499b0e4a065956cc1261d08affcc754f2a93d638d821d76b307a154cef647c99663955c02349280f7f9a55d06945566bda40a541df9d9241201e07251f54c3e7f6250f9fac64eade774e6005e8200a9351add42b4ff0d0ef98039790949e6ce8983a7728ef8ab7f8c955d79c81745ba249300665571ce18ff81f21b7485e3032b7e752eabd6b6813426f19895c23736b49674ec152bf214fd5d759bdaec98b7fd46239f071fd91bb48fec7ba700ae25d8780664630b6f5cd8c3ae0fcd6164ee11254b487ed5f90a1bb1b23df5d5d02dfc032f0073b144d18f0eca02fe04bafd235cd42c7d7d0bbb8dddbd5c986035846ce9314b51c670e3ed8978d9ff8307ba73141ec99de955ac0f76e54f5f29f372e8f2737ddf420d96207ed9d022936e11685e16e9a081e3f3c38128446fe2a33934a16e02f7605b98eecbfb110aa0e9e8f1ec000936513809aba982ab3f143e641a6aaf5169c929e8370585f1dfb2b6432327a52a4f61e5b807dca10e6ee7c9e7244baa32388754e7b69c4684731723fd3f913a14b57091b0889bcabc79781cbbc387484e18742f6bb67116f54b42c7b78e7ab8fc2dc52bfd3aa6d6b534cd06ada4ad8b79c24374f5db79340cd654f46753070866cb0ead62eee4fdfe551f7b612e97ca3941eee1dae9493b4970e405c7ca082568fd9c1d8cd1da761d5b3353dddfd114969369ea1544ee8be4d1ce48edb61447be73b286cab5872499e1138d6ecf62d53cb2fa6689c2ec1b8e893aec65dfdbb951ddf15eea93958e74a2e48bec0cbea9b6c5a1b75039bd09ada8c2a324f434f1aaf3b741171b1b972657e6e50126af9af8702e961c543459bedc4d4ca3b257bcb55ec055099f5f47982f2283ea3313949da27c516d7ff52e42aece66dc57dfc544d5785559b7cfa49ecabf8f8b43d1099768f96d4e6507dae943faefb7f85205ef7d12ff508b2d43072169c6f8ba4913dc7874724185d4efe8ef3a6b65b6acda0416d569bc4f96de3583d3a2f1969bd7fe30351d9ccb3ff39bd3f7c55a2125012f0493e9e84f323f4f918c8a490ca45ff1339215814c26e0caf9b431d339199aa2c47ff5417b461feebf15df0dcc94863bce27bb0e2a82e6e693b0ce21235e4261a926b29866184ddc3162ffac3a4e3d7090c4c857937b3287ccfce4f9a12fa88da5495e67834026d1d573f047eba7e16e75aa9641f26ec24e288603e7164c52daa913359782ae0fc5785795aa17a75d568f8b9772f3aa8d54fb210dce8429dacedcd53f4e6b7da5d6d06f846eb7cfbc2645a16417a38e1cb0e5df68b03987e32fe7e2e78b1a41f9dcb138e68c41956d97755f4e12f6933ab43e0460b4feda7b350ab20094237f839392507911bda1cc26829e176625e7c8731e665eaa5e7ccfb4cfe97efc548a1d587d864057cd682134fc03f302f4da29e38c98e6c8dc385731766c1dd34ebb8a25356ba76c717e69ea7fd766e0ead57cedbf6c1946a37a005b5e92fdfd913adb5c63387ae68e361a00c2963dfe80016b7ea70ed6c4e85d234b5bf00ba6bb68b73acffb1bc84206d62260ce4841590100078bccbae7b2c52698 +result: pass +shared_secret: cad9040e83b00790eab32604fa0ef20dbc6c2184f10135253ca02839bfeb59f3 + +# Random ciphertext +private_key: 5cd91bc4472f2a32805731021271146eb2bae328a87da2ae89e4b4d1d498b9b87b6c34c54f24685e2a822e35b7d552376873909789ceef7949b7e550ae2294406070bb22a12da296a57a2df24455c731c3afc0c4cecca64eb80cec1ac59e7166186c4e69e0b98bc547c45496c1a37775f80680822a6ab047cbf0a16c89822657416fb19808242eca388b00884aceb5136a9591a30894a115061005380616ce6e1c8ffe38c338e966b07b3c16a91013557e8303aaba23254848c387222736d39f17aa4f6f6aa8ea68941220cbdc5a62cd6663d5acc38d844d7ef2c3e0561e6fba45bcf36a5d0a6cd3b5aa344201cd2c1770c497ae845f1879583a9a89ec5acd055ca692848a16db49a6a8a415710ee065715aaa9fa4305982b81c5ad84ea4d965dbe57280fa7fd4279093953e4ef3c6bf23aea3acc1d3c260632c7e91b39ef02b42ef695cc81bcc709a62667ab2d75996b25ac368198bbe157bd5f43adceaa81ec5a22f3c06307a3c366771adf4107c002d26bb74b36236e1680bcc7b5324c99e538a32fd438fb0fca447741f34417831cc1483610501c566cb5266d5219ceed67da9d5b870d4b704b2c2c3092af330c058d45de22183c7a12543a62c57853e797b344bea8b291979df51b094b7885188a8b1144ac62b10ce4b9f3754a82ea301df6034e4518c0df43be77602c9972a61794b84897c5b4203cb46c145f03337cc3bf758958f5ab5a88a2d06a2c289a127fcd6a40d562ae7d2a30141898dd24ad83974ee08a4d8359b3fa534253813a2657f796bca9a2b4f653373070482f2ca2ad1c4103ab3a94fd37ac2e218b9c47471e49ba1f8c34163208e18819734ade6c791f6ac7d5a8994ea225f84697c916b26bd2935202ccaacb733c8076b7eb9927a0058234ac2dd906f277b211e28bcb241ce9d651907999c4f1ba6c7eac50e8a0c5ee50504761a57306f54b18c4e7037c7b351d5fa183fb96caba5a4d74ac7c5e7812474279e5b8f2cca59f6d0a9163a4eb765a8164239e8550ab5262a2b850c6dcac2a3f9a317ccafd63951804a7ed53c4081da8982f6846860845d4098323693c86c94f38aa2aa4a1c3ae9c6024c3d01e78b746b5d21c25b19b92019e1b64dc82f8c2577db3abb364024ffbb25351c66ec369bd29a4e24744545a4308a676b989663f5e730e2c90edddac140f978ee577c857924778c83ee95750d2666e4a1cc0b56c87e42112f12ba5341cd9178aeca76917c201825c40578e67d5c516f75288ce5f695f8dcc999452d84c05d6062577f158cf8351bdf768b4c95c7e76c0cdab08e0e83a0458b0b32d5621c688d675051dd4c0d94d5cd3a7a64ebf437aa483437313d3fb2c451972ea9072fe3ea7ec6652299a04f04f97f18993a1f426395b9331687aa033b2a244385a9bb928a02a93756c7db86c679a34016d86a16e5c396ac31ec92a5db94529884697700721ef9629c703b3cf33a9732bb2419168f3349b11b8040f898a73b4f94283129051c110817bad7782c4228f874a169c65078b48b6134cb09e8375c085f7b93659da92f35e4c68dc3b1aa05a0795c91b8072d04c96036928a01884e58013f3b7205a33bc5c7ba4e7b240f278850c17a0e4fc3805bc319afe8564ba6387ba476c6f81f7bfb0bc840738538773668ac02e880b588330a81c1aff09003ac6ae4d739e09017ac49b3fb9a0e43370bcb917b1007c720918738db4cdc68c41ff13a83981f1751273fb32eb8c091f629ab449438c8c515c451552b45a8ec316d5a88060e8ac7e54ca1326c2974e40590179908099d262a8f7187125ed951dc3abb50a46a0565c91f8c769d8c949a43275e094c8ae805a7caae05d32d135709d5c4474e031c6ffcaa701a4994c77a2dc2c95e113d0137a1e0b70f41a4c9497814b887cb0898a6bca0849240835c8c83f5a72724e320899a09fbbc790f3a4596f6bab0499d3893b316010bc13399aef463b6d02043aab6113529089b195964920493acde5009fca59a152b4048d7ca2dfbb00b67ceaf51309d3b0d8ab043a7f3a395aabcc8c8cf3794164f5c6b329223b5e426c0cc4dbb050acc749b4d2b5b5758b05bf01227529d40eba0d60141d6e7753965cae367489de61cc846ae6e700f75d69eed69b00c4782971a1bb6cb21ed0745fd972e8c3c411c81c2049a1a55b48d0b3078bf916e45f719e23a835c83c537248fef084627897e5a3c9c1ee5ba9c7aa230514194b50a8ba857bb87052da59ed675b275b02ee4645de605302bb80c5d4a9b2299cb82a608f5d88e6ba3b70287333b839835618174639edf688ec1e5cfaf62a9940c84dbecc2f6b02d0a8888ce9ba70c660597eb9f33a43b89893b1bc62748f711e93347934c85b57c80cc2c413028a67f3b22fab904155a3f94671519a746a9a43fca8c0b07fa14c887a334191af3112f56724c8964afd27a248d99a4187725b1940aa40784825b059626b8faea80cb2714cb6092a9bbcd1f32aca763246b309a259196542583e722b35b3a9991e7adfec40d0571a9626215478256fa16c556b146749794c4da623c73804b41119eda69166c2748402c0355c897a71a59882e9ceac50e4c293437b472c48ba0f57273782b0f862f7b8668a6a2aacfa16bb5572ff1c55904b27630ecbca6212ce4b96e674a7d403285b326121497625dc80a08852c8488c1f66c364c93bbe5739e1be198a6dc0fd2fb7909c275fc819fad2c4cc31a597dd56012110c09bca1724b91ba2717b5d71de79450c80b98cdd8cef96b963483b80db768553acec36bce7fda4593e28b15ea7a62a476aad799edf6c6b718ab1043c09847c5ddc983f745bf6c198932800389ec3b58d59b26ea9638847d4dd12925b376268364c4e77fd8ec8c988045f17405a2d6cb652a920c3bcd6e4999cffa8e1e205f0ce58ea445811199c384c1c7dbe2c740a62da6436a13bb7df12202d4e95cc8d96a4356a0ab8a44f6f872b55598007d0c3ccacb630b5d3baabf76f58c076510bac26e69a7142817a85dc4862ba09474443ac9999e8d380c89c605c4eb0129a4abdb662aa48caa90f9aebdf84d860b7883d42c0b20cb7333526a3844b0f40f02c185aae7a4c5bac72f473548b40e6e906a4ea799a5616c06cbb5167b27bcd41105b1113d04b685f933d408291511bef2a390bcb094f4638c87d15392e235efa8432c1a3f0b66a23b190b12d15f32b952e8d2c5135a1e02b63830939033581ec3e422f7f4a63003b446067659ec569569039da5914a7534f26219102bbfbef6923ffa89ccf044ef7bb904f5794fe22db8cb1dfa025e48845e0d179b19d2cc631c74119a52b0557f90064c181a0ed54754bc84439e200208125ccf73103c6449e10073c0913453192a7efb1a822220309338b1a2077e9985d5741ab69ab7c91a35c6e15f10308f46715ef082b2dd87845dd00ae81b6d17f5202357302b0630f036256047c40fea5e8627395d7877d9db952469386a1949012165d419152508a5ec67c88601494292679963629edb7f6e1a66b454cdd704a32e572b68da7e7d2c394bfbcab32c89ec8838566135714c0069465fab654cc4b7bb5745b4577b4303300e84a0aad9fac533286a01d13c4da4a67627420dd97e511173ac63125f5a8e9fa0af12938ef6b29183d254f8099f44549bab850709bcab80c35507467986a55244522fe1ac4b7e13b9f3879b815384c7475fe1f24973132a0c78af34d45b29f91b61a55da4916d4a987afacc942eeba991766717e888e9d63420e54519942ebee62d25a0c05a148cefe31a8c5764c022948a123e0e8b44d5547da39c3969649b27c6299614a01fb03843c4cd040a51596c9d473524bb5815e341c8bb02c9d9a5c4a88a60262785844a8d72b33b34e03ac60104a80c03b422abda9a0c51984ef9ca27c2d29d39d8b567bc2091954cc1da3cc57827e0251741058a44026fd3ca7e59931e1039bdb06a8eb45322bc3ab0995b0d526751453a52662b008da82b090206b55b90e464cb874b343b711d50529c375a8e5b04d082a8a317c602e244200e00541fa7ae69e54922eb5791b58492197d31f970eb90619c7a746976649e27030b033b6d0950bde99a1b45a383946cad7286982b86f66976a6904b2c53b7720069b0d4615a8890325933f8e6b9196cbd08ba52ccc31a3bb3627c1606ece546992cc9ec401080811298ec7b723670193a3fd83180970b8629ab786ec21509fbc2c87656d6654740398762c3963d9b56fef269803003d13c9b7b54bb5a90c2cd7c100ce95d2360bad76320589611f3bc71de31c838b291e1d7994e9c583d127748e944b3a3a94ca2a9160b05ad993cef1d503c812772b46e9dfbcacb8b8fcf35edc09b2bf68a31cd5ec9796882db23b2c26194545ffed2e92401f84476174dfdec31c7e94afab71739109b4cc9032731975033db7b90529245319e6a1ff86b93ba4d8f19340c8ffac92a2d96f315e3 +ciphertext: 2e42fa5e35bd7727f039f5b4e3935e65b0e9133e1088aa52945f5c723b8cf0faa5991a5a29dc788042beb590a8aa6f8199e2fe6537cbfc668abfb79f7c7ee5a0983d3a5a5719567663defc772c9dfa6558a4aefec285dc2ffe4410c7de2956fe8a8fffae852710d540a819e2a886cb39bec77d5eae6f0863dc3760d038b205c21068f4e5d4214bbccd66b14ecabdf7236933c642f122fd4bb88e5a25338c5f4f78aaad683d21d453840d26bff234f8701f261f5d2e328c048946755b002f2ae5df6d86a07e823d0f43b808841fd0c04229f314541c5178e6f1e96d3a6c2a2f48ae5c2d15b45f31baa2ed0c42e81145ef7fbb9b345a29fff02e2914ec20a1ebaf6799cad5ccad08efe7c976cd37e3a4e3bd98b5b17d61d655feb7f364fac60083ea60c40e16377bc4b1bea1b1b190b07944017ad2f79821f0dd881cd81ec73da0d29c0c412923a9f52153a7cf71ad290ff670edac81dc837119784748383807696f2bd20d853d6da34a95979229d8fafa6cf3f3af15eaae61f8fcc83554a291f914fb2b7470c9417d7909432cca8b32b7f5195cdddce046cf9aa150fcc441c303fbe4d8c9b134543ff85ddb1bf6ad32e486e6415d083b102513960906b250c17f1ef1838c77ba085139b20e7b2139a06c1cb8c395f6bce7246ad76fee25fcb7c1974a4017af4f53e369f2e9f7545614fe0525e7f3d9518e330f83e9dbeaf4cd5653e5d466307a85f85deff93f3718445b684eb5d0044f4c6469d722c5a186e31c09aafcfbb0c6139ab10973d613251ccb33def17a6f3e3b125b5c1da885461b0d723efd1d9c4af7a70096ac7cee96d12e941821f8dc4ffdf25e36829111f678c46a342614b1071ffc366d2a2dd78761fc91e0386756a8adf38baa30997becb8a910db18b014e164a0af795898ee7049f8e943cc474b17b752311c97426a90fef44f9cec08c840d824d6e5479ea6c57e4c5dc602f71eb2c845e44b4df36e139d048b8f54211ac12f430501adf2664e71a48bfe9d2ba0883228e0d1b171699176af81d9171b49bb61ef87ec31a64a1a0b5f10e01f2df6fa036ae153c609a4ec34e443571cc345843f6429f0da9676db7d1c885da4383304fcd21f01989cc6b3ebc40911853888dfcc6eb246df23a660ace311cabcc5805f010dfb3a5fe5d7c6aa1a3456f20fc391d35ff25b9b9870b0b9e22a4a533c2e6cb685fa3c9e24f08591ed554cf67f7df403066ab56a10f0b8ac5c9a1396a4212717f16b222b44cadf3d43337d0251c8e457611927e2756f42a3991cc1e388ce29e4eef7d20da8db77b014f3428476ae5ab1e5af36c5e13cad8740cc2fc96776fa8fc2a861e04ad129d9c2c521100755bdd8797f98f2323f16a7930d945306c66c902339757539048cc50256d85335a7861b350b740ad730c71d9aeb17832be247b3896489169c3e866c081c7b108e8c6298eb76522bf2250ae328fa9bb7f6bc29142e323ae9d30a794347de4ba00666e721630949c63e9d5ae5cac6c195a8480e5e3c992d801b5f264fa1c148dcb094587e9ce37564bf15097b2fc649d840727a4a11233fe8067f820ad697400269e98aef3d286da3c06e6a454a93d0b18c709235e2ce361f93384c0fdc91a68b7406f503a1871ec38966b0ba4470c0513a573e958a843b0574c7656083e5152972c02bd1e6f8ea1c6037019399b68fd47bb0a8a0abf0bd1332f258aa5ba8670c34990d4ee6151c0b536d111dff02a435eab7e30864619835817fd5c2b43c89d3a376cb7c58bbe5c979e694ea97a16aac06df07078799c8f288e5884f32bbe5c3afac72e1d57d5638908e97b41e7000ff1f89cdc2797e021f8a929746ce8e8fa73d53bfd3b5896685e8db897f5c3a23b14105730025407972196dd7f7d9cfce6a0b7c502c2b1f5535f25bfd7b8082325bfec6d440ca1b91b128281eec35d80612765ad49e43ee136179988ba9412040290b828c7cdfc7a82b70862797f80646fffe1ff2938ef2475e5837fb208d99f1e635ad1af8d9edecbf5a8505782acc71cfb84b54b2cd03c6bfd8bca2f0ef77bb59a814e8aa784a1af0475b8caa31b57635c9537416268145009500f4469ed2b1051bc2a91f205f7b598b9cbe64b4306ffbae88971e6163b451fce9f132bbb1d626d446e018dde7f60cb6540ab66c51c416a22cdd0543a1428b5225a7d41749bae89eb09678e14aec7c8bc6dd2d0a +result: pass +shared_secret: 269df7273fae3797f0d5b5853f563e955f4139acc34f938bb51019d5229c551f + +# Random ciphertext +private_key: ff3c6e4d98687fb91bca421a8c689b998cb83108cdc0c484fc750659365a0b9383f9624b69cb496d405231fccd4fa41bfa55a0d7b82ee3466b0e5b5bdab679da52c1f68c8000371593d78a20445eb89c6cc65bc79a41461f0bacd5374404968b12335f6dd70b9a147bd0f3235b9b7b75a63c70e9ad0bc371fae05db0ab04c7c5cfa5845482866b0ed86bd8218f24c921c9524fd68760d640be7e785b96e42ced37ceb02bac90521ff557223e4cbda2bb853703c95cd44a0e4061365c7a801954be6c611694be9ba46b5bd0599dcc8d30954e36b5c606b8045be4bdeb3987cb06a818b3b8344b5736ba1878fc5bc3063a70c275be4a73055155b9f43d77f71f7b9ab8c04207143825876116e1c49123c59bdc25c6c88123a22995924a454bb3678ea856cab454ab0834895320b9954ca105bfaf9463a6669fafc9859f6952ca753e5bc19f9a7536e8036d44fc0c9f4130c9c227ad9c616888bbd2164174092a25b816c69c94e646071c562230418c0fda3703b215d6c505dd2557052296e2e575c5b460323352dad6b099e91a83639777377ff96513bbb3ba7b8575c83c4fee7940de00a8a840c74d424e2d0b9785ba68c35b7b53a89639299194a03bebf2ab7b70bf55f635b9e92d7f36a68531cb469211aca573de657969a60883dca80adb0348010878370f1cc4010b5b3fa76a8d460c7e6b60acb0079b293726968b000f032880751533f13cb35858e39b0d2e89a1cac51a2068477ea11532a6c5e01c0923d180d4e0502206797ed66f9255cb40919feb376eeb9450e43491a9854376cab82fb0636f512ce7c6966d00c990f22e804c506f60af05d91777a01505465b0d4c7b770968b94a242cfc8867a12baa557f3415504bfc341d116bc46bb738753252785570471442919101188b460a7e7accce13249230648011410aabc653c0266455fcb47ab3057b99956783333d7216fc64baa5278bc8ecc38cdc097519b8301caa69f9778af6384f3945108bc1ecc9321fa14f73d38f01cccc346b7b21da1c45380e113212dcb06f7f182fcd5427a304b823e402b6717e686a24570a72f2a03f66951d232145e004243f6690388b0e1d77ccc07954d88cb4b47770a6753b6cf060135753a5ba57d96a1d2f8143e5b6a3170514f2e6cf111803e6ea3bd61ba1599b8201941e56d64aee377b85d36166dc9b29d26ebf807194d6692e9607d14c2fe24878d48c7ae284a4c5634edaa034ca0acacc82a3844216d308a9ee3856d4469792a74fae237e096b6662195f210a6273e05ad3151562bac496ebb3e5c6969a240dcdd7250257af1ec18a9276c8b02909f62ca0f940c1599a4fb9e9320bd7053e6627af6987011110549b7a71400d6f0bc891f220b4c76a12d827d08b897b5c144fdc7818d0b9f000474f814c65842788c5631ee32ae9c22f99483ec7a7037fc56ebd91160b8371e0d27179cc566f449649fa6682d2a3825b500819b16e57b1fbb117b0ba2f0c6b8d3fdc9431dc1dfc808a008b5d5018a784d6a18a15af0ed16a35d8c2286748408b5b87435c61855312739e4f54bbec18433e4370d2d9b9b00a5a5c05b883b41d6cdc487f51638911902a131a0d80b04b4a13418589f7744e9dca7b7c184da01450cef83bb1a0bd20aa3d5de77d056c9d6dd57d6bf45f953c78aed93610928a97a84e74559e1ba322fcc496c2aaaf11209bd6226ea3c1c6eda19d509ab25bfb2e5ebc1d67d3a858ca418e0b0eae56263c3c958a159f279167bb412b188cbaa2b749e72117642b474af0a42bb82901d43ae3eba4841b59e594521a252dd661cf9dc87be7108b1941be6a0c6fe0eb74dbea4d9741b9dc17376f333e7f4575a28b2459c840a311ae1df48c7c33c238434d4df7c8bde28221d655e6237e067cb2448ca1b212c590346d3afb6624d07db5fb2b73675eb775336b33bc622336cc2bb82a972fbe28c40f232d6cb9b014d65713aa9b83925837f9aeffc1cda26c9ebdf3a97717c1d5a3ab2b740bc697a6bd5b11ef380ce0a0497e1b0bbdd959896b8090b217352a9d7fd00e86c47342c23fb932616a8c7906e362e64a1dfaf6836fba76c383775db18f746a25111539753a4ea91c82213cad3a4b85e8c38034e00c7a183032847bb9f9cc8f20a596b66259e339cd949b48c9c13472c3cce20dee452358319477226a37fa9170860ce5cbb28434cd9650bf264b45f989845ba06f0d2cb947c74d5683139866449bf54177081960455940ca457f2ac9c3411791034b75591a7a2668010053075379920963fc49c3144b86e3227307d425dbb41e559a3ff4c85f566cc777005f39e7ceb4731ac054ca8595783990ca11a61f39e36f3592c520989214eb54c026198c785b3f8b779e28cbf99c111cb88447659d6336ca6826a91f22c7462487caf39032f056ad835c8b2237e499a81a5ac825a68f2751876171b736594ff6851ec34031ead097bcd14059ac1748e206cef80ed9a652fef316f0e7b009978afd058ebcd831a972293cb04657650ec829438aa2079187283da751a1856f1e8c67330b1351d1b506c55fdb81a3af41112a262c18da2e96246dfc785fc0e853b1d243808822aa77034d9a848792a23edb5e9df0ce885454b19a6155aa7edd8235c9a86a4844856e8947976a5d3250107411968683a00b370348685e87a92ca39c7620411727f26e6eda9611107fc354375fab54ebb28fb081883e224053e967765469427b13b94a7d64ca26a4a610d0628b855178a6199bf78128c26249ae1335eaab9ee7ca58e859cccb81b6e019151c697558f160d5e55c0a8ca0d772cde8f7298ba056bf7558129cc9b5ec9d578a3c9452cb3f942fbf4924ce4588494202c87cc37681cdf5c7a85470bcc088c5159ac53026a4cf515ed894c531f434dd08895b8bba07c3c6af50b8ba2316a346b175b65687a50d9647399fd1c17768a125b5cd0a5ccdcd0986c53bc5ef16ae95833ab7948559d7062bf51b13fc5dafc976cf7a87ad419ac380cdb875767600940b3a3a602a289d1636ab2ac574baa0ef50ad4d6c7256153c8326bc5b2029110b60c583ba4bc81997bb17535c151c00b98d4c631a00aba3eb24982b9ae0f694a76c22159337b020c2a7796ca4dbb8b497606f7ab3e8f4768a73017b054adbb96eeadc0236d3c49aaa3430bb0d4e9150bc6b9cc3211c65eb33abe87de3c576ebe84cb6fa03fb4426579c7c65ec16b041478ea0a03c30267f369819367b9eb7348a48c42161bc584a719e1644da3caacbd55b92f3836da9584aba92f689611db22ad9faa5f122735e3794f6bb1ede97120ea49cf2f4c7b4bc85098a62807a7b5264623a97c0e862c655a2258ac55055b5abe52c7d16693051392642f5179be0689840120f58ce83e28ce840a67894c06a323ac3cc8d4f2221727422550cb30895703fd97131a60145218d3a049d20f75a1b383c74a96af4ec6ff596be8c7607e4f17b9e1222a0c3535bc17171822a3d4c8cda4127d98abd3312adb410cfbb34584cd820df4a8a979413536b7e0fb9ad9fb2a83e8929e1952f0a113416eba445b1c945142fe98905adc5247cf63d15d554ce563f9053b2564567ef623849fa79eaf996b0f78eeb14c372d69fefc008886a887a447e8c49bb57f69572e883d085105498b8ac73bda46b208a24885a96a2dfe1b9f1d0886f8cc35f3a067d7c16e67c55c4308a03f6570cc6893cb4cfb84277875c8528da8d444ca6de631bd361bed30ca66b79194c8c54e2489416714a0b1cb0a099992b242dbdd80862226a17820e82378c1b9a197184c3ea0c4c3b535be0a075d01b150db1253ac4bec0a69497092decc6c294c4226b38ca3a04c76a8c53563439a26a77b2b102b3186483ec9bf602295ee7a28969c308431f0d34c8f6e614bee9983728a741392c7ab133e541ca978c30bd40b0bda37029b05a25288a97d3b807d11ff8c2c3bd0509954ac526759bf34b38e30923e5528cf5b61bbe534079e5c8e712765e64118adc7009a8a994a9c871767cbdba458027a218c862bd90aa118829edb4b884218a9f596503a13fcab8b78f097ffdac44460605416723e3c95b86b218dbca0e733c19fc77ccb46601c1484b78bac62c054b60f26361e6c514d2cac56b580e93c2d749c48d2347951877c5d139d6840fa61126f4e4b9181131dba6a1b26ca1af2a363f813d13aa523901b8b1f89ad8e51b0da3611144a7dffab981d4958d327956728fdb1c5f72dc907c236392a93953fa13d4360d73699bafcc6d7ce14f68ba860e7275558c2f32248fe0dc14cd0116c6fc1563b53cf7aacfe54715dbf9366e9bb668e99b53376fb22b0cf2e84e94eefebd0ee35b822e89ee8542c4088ab2c6cbaae08b4edb1dd62a8a76bc0c242c8df739d7f1013370f13c2607d125413285f63a8b49486260e0d48e1b42413bc6df948595b0c240e25a7dc10938304c07f2af0a990aacf12167d7fb646ba36d +ciphertext: af041736d23d1daceb0069cf227fb0ec2a27e13707f194ceff556f3b593a9070b830e0fd9a3e3a1745863be6981c204ff5ec896d87ab64a75f25d78c9566a62e98d659af4291ef9218a8cbbced4835dd937f9e9340d6222ebe20d2d50b28cf557c619e0d889715a4f7f9d00da90b1a5797173a3753a0fc7e81caff030a8cc2bc81cfa868869454c3d748dc2b94de61af2d115d2e662c4f5d593cd66f4e74f8b3d6b38dd5670d3eec06285239d54bd80f9b029b20deb0bbb982a55e218a656c55ce64192cb5a492848e8c447532bf252e4645ded1b42b90badafe30d1d2f65a5e147bd53488e0acb4b2cbf7323c87deff83e8c897deb5abe5645ae490a6d90d64343e8c89cd5fc2eb7d70f3a78a0233edd6aeaf3ca519a7ccc2a1958731a37d74bc582e53165499b77f9807a40d55f871a91b48ef302a90288e5587699647f3bb93961060bd8b3cadd218a3f25da63ca175bda7e23f90f2ab40a803f7b71055abeda7c2b30b5732ad861a764bd7cbd942e4af691fc3a000d028cde477f976c58ab35ab137f5489502d1cfe2678f5467965bd15f8c5fe0a18fa4dad2be45e7b08b29f73919225d5de877f89d6d353171ca84a3ee34ef5aadee4557134748c5a9e78b3979be2a8f24ba625c800b87bf49690baafc40656625f700699e61c68c0578f4177339c9cb66a0996298b5c110e26114017d57685c24b0c39832adcfe267be5445ede68e2235a49f8f99fcdb793e33e806db3292139476b9240b131cddb10496e24583a1ba633deed5dad9d3a42801b5c747db0a8ac59f65bf663397d22432711524f65328c9c76dd63560d23e2894c0f2f5867c9d1d0e44bfd727fb984187c362fa9a386a998b08bc349075dbb0f1ff603d34d4368c71f936ab2ec8ba0dbc814d33e4ad57e00316e2b255f2c7189dd9c4fa90fe9ed7c5f11ff2f81c81627d6a178ee323678a5ff3edea16adfa74d431a3056815a573c1158d06a1e305bb8262d050c26b774406cac0a591bffc4572a27c6b5be9b16e6efa2ec43a942aac05d42835e8a29491ada39011fd648e2d75247da22e220f019d39de2dc0b2980f925172826d44eb1d49f3e002f3fb9b5a69245b96f097744dc84746141b4ec97ad77e4ea0ca7d68f039809e956ddd689ef077a981fcf4c824dcb66d68551cfac6ed3befe40160ccb1d87141479c5357c090d7d476a1608c89644dd5e4a96745ed64f1a927fb2f922d5878b68987877c5d5a30c6df18b263bc4f6ec54c20071c17cd5669ae25974158e4f734ca99bda40bc2e4d8a76c55a5d7135b9679f1ee82aea90d7b2177ed13c958021ae54ebdd5f38d48cef6d575dd2d81727734d940fed2c9d89f4aa8134a99524a9e526821ebcdec8331e80cf62a2dcef71dc888f5b79b1cc61a382130de2a9c53c2e7655059c80e0e24836c36fba9be265498a24650200e09fc81d079deff57039ab7eed350c59cdd4984bc2f7572287e610666fecaff9a39c245c35439291847816ac2488d8c01586f88a6f99640b303c7bbe7d4290cf454d5e546c94e86ad860388f1553491fecacd3c73839437a1c3d1f51e195ca391cf8eef2b89ba960082f280201dd03a2689ad3a7522b1b79c61887ab37da51e978e943333cc18cb56b8888868c332350068ba5913473a666fd10e4478e7778f784b76d352ee7b07e4c93fb4f430a900ffa3361fd0ec5f27afc38db91534655f735743ac857b6bfe2c107fe458e6483191890ff4e344f2866a52a0ecc6461718bae135528ddc77dceec6f956505378b6470edc2377991d4c00553449efbf32111ba18a7c53ce71dc72f8228ecda82221fcf21964d58907ed680b1d7adb4213f2fd8e37fa18845c8c02a065c85d360777d722f91943a6164977ca03d70c867fd95519b4f1f88351bff895d90aef8e9d9ac4a87335adad1527a9e526890942f881f8776e474867a1a3d8a30a6bfeefd182a1db762182f60612bb2c462dafc1b5bc2f797e56db04294e19c7dc2671ed1510647bd47ecadd5754e9bd6ef9bc19153115d31ebcfb8e11a9c07b19797109ff95e37f912a07da55da65586db800fcfafbd6a9c18e427af47f1ab42aa33385fa91255f6a5ed3c9ca7ddc9fec0fbd2e4e14406897bc0d405b3006f66638ff34e31bacf13bab665404d231b4a7e345a55294d7c7efdc844e7ac557b94ecbb2f75bf73fb327e1b8e65294c15e6b6c6a257f033c +result: pass +shared_secret: 69ab30770f491dacea2e37f3c737b2f49cfaa211f5726436ef4bb49959625f24 + +# Bit flipped ciphertext +private_key: 88095924fba467b661da9b9a24882b49ccc21509a04fe9321d3c6524760d05599ad3b306774b9cd4a4cb402632a7229caf081b6d1120e9f042ec691d2e63c80cd2b64a457d1fa38ecc5097c41a22dc48c9b4c7b7f5ac4020000f26b6bb92e72c3d34293f60ca3ab91d1f7aa83b2ac6c9f20471168d267824c810186de4be6ec0ca47e30985108663815666624b3ac355605c77e93a7c6cb05968418734c9ceb4480474c5226c4504a9909fdbdacd49eb3db7d7529aba4733c6c3966481a745455382c7beb3bb73470c91cc5342474d933a06aac1372aa018f2a940836cb4121b5b889abf62b40f25a8a41337b1115617d02883383bcf5511b8fad3032169a35f14be15537a29d64a87763991826271e250af391533886a1b9a632fe6a8ae63186a62c573e01871190167382fed922b4e6550557a1b9be3a473aca18ba96430988476113a7c25238e6c34d03cb1db883f10a68082a23f31f3b24675607fe45a04236451ab15d0b6b01a184dd4e467c18445c5d04079071efcf1753a6707e7fa5ed0484a67cbbc6275c7d121516bc320d1c955ee2c62a93bcff324718ff94552619310d90b43bca2b1dcb84886bb91981be7008e14843e1b63073708bfaa1b974996940bf10d8f188c17c5c58744799dc6ad4085cd1f09aebb4603f9cb761aa140ae2875f83b9574b658b23c18ac8a1ce50413b0116417eb8c072975213b7e09509b9c3706d6f2511984a2e5692560a0c868d01c7895c0ee3a2409bc4e9471baaca69fb2d4441cfb87ff4394514233d32a049051416d79a96373b97363602f7a84baf880d0b50910611d81e7b5066544f6d17cabd479200b3d070b4496f01f18b0af16410317f31d61d5a1f44938eb5683ab55366490ae072084fe7294237b034546a1148c6576878426807046b44012a120905c6d627ca85318c0aa6649785329cdc841c96aaf459649ea5423c5126bef27afffe80c2833461345937b94343c20793d0946f0518b4e9b606ba1067c7038a0263ee99105bd88790829c0ff6142837b7fb055c5d846b792b723ae747503123616981aadac9db2f14e7cc5179879644febb9c5ea148fe44b5370be9df10960209dc49931635416d3ac3df8ba2ef3f63a553c39fc964f0b964fce21781c5c4b3d6aafeaf5a73ae5726b191709712c44d037126143bd16c2b76c2f092c4fc41768f0480a1ff32649029a4864786fe9b3629b95fabc40c5630a8d4a6d20c73a8114036cd1a2ed10895530165886351f75bc8afc35513a4a534018a1029f13f260a3d8cca101c431551b00b3134834477d31263a32373b1464cffc0b5cac21534c45fdf28ccdcb5cd39617c82a627e2cc7f2d4bff8581e5f02a6a602b04bdabb27ba489f45bf60730ce2d638c727142954b48c327515b539f0e895bf3596a9ca043da98e47da9b323a5a6c77b9a72c4f291537eb4cbf83dc561fa183dee9b612f975f57844cee064f0d039c8120c33616bc2d0ba14088eb99ba807dc404d18b27c741189ab7dddc157aba5768af10c79b1a4db4b59459cac6f241e0ce8026bc206e06ab267ba82f33b5d3bd83c0bd2bbf55cae189b6cb1ab60e68911fdf81065a90c2679a6f5f899c9f6c078153922d5761d35ca05d889357230e62c625d410d3fc63f355146f26c3d98d16808b5539fc71d52382d49b09e5925720060242f3a7043479b806410b5b957a7e75454ea6b938711b920194ed81ed4e65e7cb866d48a66ad0c3d4442ce887c9addcc87bfda49e78a3a196bb8aef891f47524a97008e32a5408f0675f1b1c26fc2e8d94ace86ac52b58afcf2c3a12d254eeb481fafbb53ec677e6873b5813cfa644c5f227bf70c96130ca095294b859e928ae21ccb4e848869a1d74a3509ce37c713257ed9209bdc84e7ab240ed03090556766972b48a8abcba8c4509390b415a67056754ca82791a845d9bc261d2e3035730ce6b12c678bc9dc30a063a5c0d088c3009f666700b9de0f6a8d5f78bca7346248243bf27bd1e31516edc3bb5002b3d05c47a23a1f166978400c49666c7f55a79b770aee6ea7ad31a61ed9ab31fca586a161d6f2960618c1d50885058d926c89c4ab69685e9c76105e765dcd4c55f52b49fba5a11167627fa0628a78477fbb483c16fef5bc129d16d59f157bffc62ca9b83c4848923b5602ff123909091465b22fb849286f8b56c2b39392aa9cb28229e2228806a46cf60608f15663c2a9556629ebe5accd7242535aac686648253cb72fc96914c6518e2fb7456f54e94e1b0e2b87ae2f125596a2998b60e30a769e557820ec95f9c25482f8a7f8415ae7aabaa1a923385abcb27474a71881ff3e307c2718b96daaab8fa482fd8ac2ce569ebc913db164dd288c25039366afb9dfe200ed130cb71913b23623780c47a3f79aec955440c18ac6604756e2b55c112c33a7883c4954e15f723e2587989c741ac95399b7b2537fb686cb51dfbd49c4489c2241861c24ba239801d9cf03c68776019718fbcdb12fec59b2b17c33715a2a223a260841bbe5164daf32e1a15be2be706dac1541bb23b1c09044d9520662b6a7932941ac24d169893bbe16ae7928f16e442db688072e95163253185398397847a831463e98073d81c081f71950b265f9349cec3b004080061c6d1c4d8f63b460b187aa032c77a0ca49085b66493e4f5387d3896de774232f56f70c39c25d0b91b59994f01b96c410db7eb40f18733bf60a6db5630730910dfd28c5eec71f19111c3a2227d2b2ddf3947f6c020bd632d3b3c8c3f4018a939269a1b6628b2ab18270b27925f60bb6b8db3cf30b8b6635a10460aab7064b99aa0acf119605fb854c48070897b6d8f2b433ab8c0279061753aa93c9506d8aa2bc8a96e293999a4eaa4f759245e8600a989c6c4936e60d2c7fd5654872aa9dceb6726645b2b788849477d22f59a71039962b2b7bfca6fc8528b0ee856cfa22238736afa4131ab2627328b9f89f0adb6390017766b17b70bdc749140b7313bac637567c827bb1516b43e09174653649a82e28e72b9344b656f051cc0d895cb28e989a86bcfea69610c435eadea28c926c55c794b013700fcd49ab2206a6b3c0df7c35827648124c845844c0c61e01da13a5730253392785bf53849c090cc5b0c0395f337831bba250550e81b3ae0498397836abbe2898c56685cd692d0b65519f9cafea6af2e02adec075e31297a3010317ab2829e1a8ce73a9ee80b4602c70b3172cff37b172d1237997146cdc14aefb25876ca10d3f5a11dc70d3545cbd48c72b2a61dd8a9c750e50fae3c219d5316483415c1119b08d358a11830a5320aa4143e8429404a3899ec5763c1780b1dd96eedf2b600674c57500984129cd3485238c83eddd95df2d21cade9928e06a864c2c834661bebcc9506962fb3925dcdaab40f0a702f660ad404a84d3a37284987bb05ca79f56a06a417ea2a35ea9588018cae15d50a82ea5d68f200cbd16636c899c287c4fac98725f699fa7b25b9373642ec32a7d0701e92c3d3859452d65539c5b959e18d7710cdee248ffcf7636d96a87e28695aeb60cf61b7b5dc3a66956cc9562742386249370a6cc6be1fa7b6b1e432a78c95116abc2ac9a770a22313f1a0dacb602ae936b5808a2c403cd016abdd7800a39b48a8a1ace44bcc2c82ccbc891f98d1a9b77712250b9a51facbc797a00a0a5c72557cdd3a2760d62cdfd441f4a009beeb21895a6ffd7b5375632fc59b71788068883698f8b64c1cb55feaf30606407b353742094934bc5274e89685ce3152c1fc038aaa43d409003f523dcff56f8848133e93baa87a7236f93a11052d8cbc1fda46221608bda5e3bc3600ac851a755c57643875b720946e26967e8b60508f41a95fca91cb74c7ce2620cfeabe10da2094273907d5b2450a43a0d53befa77ccfa749f6c9033244c1d9b07d4dd019a0447efee477a57839d31b7d8cea940471bc95814148d7cc8aa8993f8b715fc2021d6c6cc7108a2b3a0c5d18c9e473c5a184c4caa49f4d3151ca145089f34f96b1761a95bf38693b8e911fa6bb01d4499d8878961d8670b6a5b50ed525b5e622ab266df45cce22389570999c6090695931b57c0b96c2a7cf00c69b851228c82ab3d2062895053d9687117eb17e7c4c55ebd3aac6f80730e335964b8d999b1217f1a8a0ca44dd3278e416ab36597ed61cc29a87c050da01b359b96d47bedda8313e0bae62a240f4b42ba1fc01fbcc55df53a2cc32b05c9c44c0729b753a079340ba2d9b660ccab43d2442458931e5db37b3533d3ba863c25b3681f1709f81a13d3c07b29950c82b8368a435e7628f4729b51c87932a57839f26a3333535323b7aa84b8378b3af7d38995d1cf44626a2ec90630f5c83684042b6adea9e1f7a3cf5872e5b211e0ce7d0cf37b1571acdccb2a4bf39d2e783ae850afc9dc2c7fef0627add21d6172ed739d3c57117969dabc1e3e9b90ceb39f0a5ec2c12f1fb +ciphertext: 9e012af9b504459c483a15f606183a7a6ae7c90fecb5d09166a0f7128e5c7ce147536ceeb76871c678172e80f08bf2f5ac23c09732459b82e7df9a7fac8f0c201bc9ebfc814642debac4a8db9d4200b1f7599613d7ed5cd96db9aacec63d2ee68b3e997d9c083609eefda47ec8b232b4f17e85c999407d0af9b5196d033ae27433671c0c8013cdc57fa61245dcdd7737c7934f4c471f16cc8b47641ed59f4c2f63f8498227d97e2b2f824b644136438a47a8d48b9a460fd151a30854bf8ee8e1a95a5e1886438421c4211e62b880964925ea1d92ac969b43a4f58e6f30e06eeee17321c8a2ffc16e7bd029375604b03295082b1cf181772a9456b77fea677201ee74efd5a4d7b19d36854ac96e0a9fd5c452fe2a81b526e7f529198a5a31f33ba81a2a0a32c05164def01968b01cba6f385fe5090d5402d276fcc0c6ef2e39889f2d30fd423edcdab0a649559b102d5f1fb6f8f5ba317dbe1ab0e8adee21cdf0e84c03111f5a885254ae7e20ce70d13fce3ccad6282eb152ccc9872534a77d4212c064c3a6a69fa7778b05eeaa07fa7704458e52ece113fb5301c120b787400b8374aa180965ff9f92cb5063a60f0323b1b67234068a06b11747322ab7934c4b8a34daef4f4304a49fd390dfc6700c5c61bdab40f6824ae01c642aa2cc797c2ff16ed39e76a97db34dce1b09940c845ed1551adbe3584526545a09e052113f0b3a5cf918011c569191c5153420731c638b3b792207eb44e22783fc814e2930c7fe4fae1e2b2f2c4900f5b0584af3f1f8c44074cf6aa8ffd71c500ca0215d78e8f786b280703256780397a71404ce8d05561d4ca6d7fdc79b1cce6236ffd20cc95b24c891574fb7868cd6fa9eadde20806a0c5d66261de7c6d237c445ff686b4f43fee3f0da184069c46a179104c26f834709ccb1bb701c889c1d93c888ad64710d330c00cc5fb3823ff3cfc7360b71ec59a6b791cb5ae0b38b9bea1c3091a15cbdd2173e5405da827a335274a8629972a5598719eff4d53ac1792496e3731f0c3f9d04ac727e525013936bc21f883144cf6dc77a4a84ef34acddcf58531afa75bf34e0dc9fc3b922fd9d224c508a5fa5fc9ac424a12cf4f29449ad7370aa553c51b08c5b671fb425c2e43dbf48916488afa2476619c9d618310f862732a15448844d0d6f3812a97600885c3d9c234be832af4533d321745b40b402c22910a89811a091451c8467a6a778ff44742c8f237b1e6a90572db32141ae9bd5d48668c89a3a31c8d2853d21b7a9af646052515f65e2da138305e0e0203e8047651c9df3b0dc92fd5d61e537fc823404cbadf883350328b39f31b21482fd3d0b73b4cfa4d7e3b27b069ce798fe7c54857e63a2fd65fdd002e65cc540075b3e6ac48dc8f9bf2db1f72ca79795ac38f9bce58a25c62348db615c5f9f27ab3859271eecdd5f34016b601b8d4c977de3f5cc3f5012257099dd198df80baee5d5165b3c4bf580ff48f4a3984cbf0094c5579b3a1736e9cf7c120c6b80a5e70710a510e5e1338dce4aead2d818dbd88932b7a7a5f893d5ffd6b8d96a8343ad5a71cdd608de86da194d9fb125a0316e57aff5d31df6467f82b594831f3d8677c691e1bc7578b4ffd60a3bced67ed37b696270b686cf74c3b0117bacfdf39bde759d689773699b7b78b0b2e9a3b3577d80d464941cc0bb1f048cc321aaee797e2e02f516750c32cfd739ae4c392ea6fe308bfdb7bd8f773eef82b3b135fdc6acd8d807c5bcaa8b15f63fab2078788c3da8a4528fe55b341e03f241bfed883be65538b66ec2d96f7bdb9425c0ee66af050d35e89c9d67e439f4f4a0d02fd8db5d3d064304f07472b28d3f426975bcc53fe8545b090739db7db17cdc1e6d9a90b8bd58f23bf8017ee6f2a6cbb7890cdf82e35d1c991ad1e6caf414533707949e50425b0d95d4de9a2bba43a954eddee274cd0891fe84ac242539d5a9e36329b0099655fa34b2f5a17f6d66f568a9b0c2d3ca8082ee59ae5707137fc5a232dac6fd86f1bf897f77162ed08f7f2a3ffe425df099a698c138fb3b171908c7e36e3ccad55545c0c496f0fca5fe1c5659d527f3dcc7766e7e58e2ec83c3b6fe9c850fa095f5e863eb3fcb6bc44f0beda8bbda43d93117d5592ccb9bd323f385ae06c5ccf5e7f088a66dad360d33053c8d73c71d44d35ddd5aa5470bbd00281e919b4cdf374ab11fc5199f98 +result: pass +shared_secret: b13b4044850f8e5ab79bf49362b52419ccbcec3d3ae02522436e09fc63692f74 + +# Bit flipped ciphertext +private_key: 32342a7c3040761c93b33c1c25299bdcf01548f08cc19166f622a137b7419f62362184ab6c6a7dae16bc9f7b01307a6396e58953a3935627b4560ab1fc99cd7672318396450b64a54f99b1004286122a339d40acca4442af2940428a4e08498e0acb60a189196efabd8a73784b0b8ee1518dac2acc50a4adf43c825232bba2f3cb0614af48199b1e58743c55c0fae676f2c83beb7cafe2a927d35452310a2291a7be214c8ab5761708a496b2a235c6e44e1e482adf8a0a400c6499cb97a06c2c9ea1c946cb0361b27e733582208a3430d11f75a5a29b3110a7517d3272c96a5c88d230cf48730f5e804a52d5308b47bc6d9cc71356017ef08d837805672b3f7d833ba977610b70c041102df11a7ce4654789c154ecf813ff4c9beb16767a993a4041bd3b82304cd80415d2b25f858f12022d27338d128c8dd2785c25b4b9014b73a72541d927360d85387dfa30ee46cd5f0178f5b998f92bb157db7599c5c4ca580a4a039ccb409bb5336db8d35bd5ea07243c45c3d33d495015a3b08fdff990b9a17c67c00c901842e70c08083c99737584189c49c42a497b55cd900c158e80b46c8a6f01aa219c96682e809ac047adf6b863ed4614cd580d90330abdb27a4e4c4e4d30043f234947f68ea8d7a3d6e7ae930363605720d8a12e7ef685dc5272c43b91ded5a6ffcc93fc39005a94132015c93cb48025088628d6811bca4bf54947e3e5b6b617b4ba442b274b1837ab90222b512441c38c06b1b7db92064677e2c4143643a1c5dabe51ec279498caa8d84f23172062497052075618e34bfac88eb5c0157e950da6e75e24472c4b593395920eda041afb9389c33b82096b9c7b169ca6c6aa93032ca86aace05aa3b81166b1117607c05802bc56fb55942f747b35f0c70bc3a9c92bbaf31988833401a6cabbd4b53e65acb84500c97b0b6c4524cfd84b1bcf3631b3859052dc68b8e07c2bd533fe418d8f9314728b327ec09dd55379b3b15da6da6d0d6394edd38304ebcd35461344e31728214e450a162dcb2289bacab88601d390551960115186c51d931203939ca002b477ec2590db72f6a085aa902bb848a72c42251987aae43368cd9ac3733b2d891aa087f15a55b96b5a167e8ab629e985738cd2c45efc66299428006dac5a70bb88e13e5516b5dc4a17490036d06a83ef544195cc5ef4d32c451909b61712cacac164664d80a2cc742a724eb68dfae5a5a52c6b05229931b98c36da17f12622604090b9901a46b444ed7624f50ba679c28c74c9b40795823526276f3a7507c93c0b20b998164d264b5bcca9ceec67ca74721e0c080b2a3043ef21af6036079d458747668ad1c36c76b912b587a1540280e299966c022fdd60bb42e785e1d8c3000480d6eac150ba400f5332b63ccaa5c64bd6d49d582602e8372893d7b37696b55f214e41c82eaacc885fc197608548d52649eac1514096373bb182f7d24ef4d6c7c8207164506ad522b3eee75f820702dee0949a8749e48025fcd38b2d82224ae743430a8210e364c445268df27f64f0b0fa3a036c829eb2c3590dbc7dbe563fa68b698f302fb6a9ad91212b14a3b7b7aaa279370d24d0ce24023941704ad9a54efa2523b66cb36ae33c8dd1a68e42b48028bb564b87e0e31d4258126c6999f9d8b54a42157ce0caa5b17cdefc41c5a74de9230513389833db2e7ed7825c6a839a79acf38590f389ce0e577896b901dcea4765d992cdc024354096983099e3452c68c1bccf0186c9e917485b178ac6a8e2f0c97551431c10842e3a873fe4b34a46b74123b3a4f9c8a12a1e87f01ebe39bf7782ca4ac4a8d73822629cbb932a233edc3e3804b62d30342c995c33f14378c4be45737a84fc99ffa032e2f55c08314793f67c3c5547bdf95b6b8c84e5ba3c377321d817033401b19dfa9ffc8a1f9f5cabdc61679185a9f78066cf11be164b7ccb92918be800c8f5186db843499a9496b31bbf21c0b3809732868a3f19c4c4fc58f701927840c24b0bbe7018a56a3859234c027c165e303ab8d975addacc84e220722d970b0b56747a8c2ab154622db357dd88088a237cb5d3c7a6b2999b17973208318a92992099266ea5356c077718024e0d3943e5b10766f82c8eea170cbc7b9c679f8d930305208ec165982c3a5f54592524b4cbe5b850ca4572a36a605ad1c0db477ee265b47ab5337a523a6b571945a7a440500ef50bae9f5a4433d407d0d459ce2bbd1835b6adc224d5c0899a00c29905896bc7c155f96306d77bf5a4558d2aaf7583c516881e683758197814d6b86ccae268f901b78b3a08c41c35a5a33796f9a633c3cb84261333a829180a94c114662042a1a5b50e0ce6847705205105846f2084c6b35fbf5abb53b434253408a42a30de4108b8839f84c0a46758ada38abae594a9e9f3b673426f8e7c8fb8390668d60c172a7f4f4b32b27215c0b391fbec6738a04900e0aff2d75741a4155d5817f58313d06c84a9bc00d71b919f59a7e186112d39403d92261135ca1409b1fb1b1763a17ad31a40441372b016880df362300b90b263c60552ac9ef828b635cbd6686235031003b6b4ae770893a4965c03c3505a81ccabc86211cc703359b89ab6d5035fc08c4f28511ec220872e4761c7a79623b523e7f076bf354317899145498bf2cb371ae8a3fe671dbd6a95492a3bc6aa967de1190e3648ed388d28d92dc50064758c73eaf665e0c81325a918b589ccb2641e2c278345bb3ab4a7cf6f435045c2a70c7683065823b3b958f9714d7ab4b124870a4fc2686f714f9fb38eb4c08b0fd3c534d41271db05a90b72a9793ab1c10eeb298485843114cc062e6016a114a8f25b9ae1830ab90ba766532dffa3ac7f74335dd65efd963d879756f0f0aa44805cea852ddd211ab8798b289ba88a335389ba5b8510cc34c69a293592f6081664553a4f93be4d36067db6aac6881b426bb8cd35a0e14109f54c967b3c96b4f01d1c7ca18f1596af9a13f361754ccb5bbf04adf6058e7087ba2fa83349987416eb3c01f19ce91394c1578a328022b44c131d8b51a758ca6101b7d997266c62ce41652f8941ad331a191f33074b5539738c02e5fa63ea340f9dc44e7fa1c9d1a51d91d9a372e1796f02205bf864ec05c9c8d41df432c1aa173f9e16ce593a63a65abab97a86ea81aee832534728a92f9cbdae5b9bc7b298c0e4c75cf39c745b78f6ea0b1ee78a12cb0a3e4848aed93d8e06bf9ea451c54ac7f1eac4399b14705cc0562347de91a59d76135bd08ca6514dded91741b745fa93b899cc12f5cb280a61679e885259c7c581f6c17fa9925a4489b2a00f64297e2ea3499a7a07e53c3a57f29e01fa13b2677d1d85c73a4525a2d4c4a8e092dd9b71a0384fd8d4be009c3bb12244e93117f6d9c2286c55aca4b7c4f7728987a349055b46f55d9a2507c274b1394390269183a1274c09e0a234f94e0ee143d6c2a269178ed881cc0a05c132b91020bacfd8805da3c7bfa57847c79846ceb73368cc579bf39fdd245ce32657a3349d5126bb476587b1e4804c7691d4dba90373b8d86c3d6c74925991192504acdfd00a70d4ad465ab1b35828fab328b25c61480128d6c84057ab520bd6614d253a5a25ce924296dbc888eabc9b119b878956be68a26ea3823ccc01c3d4b83d13f600a8c1756e692d1d7050d153c8ecb72aefc832d6a0a6c3520651b7207a590c49d071b9bc9c3285b147ac2b9cd43f2bc07097e02310a5c61014c4f36843a2317f1e1a4bc7a80367f54dcab99d8036c16e90cd33e3348ae751a9b734d00494287a3630f1157c48962107b5fc6053684518e7c7ab2948b5a28c8dfe411dece153175b3b9a6ab1f29aa80161a460a925ca99a85d650156b65c9b57bf6005c1de41cef231b753b1603fc54db7a2ade10a487a0bad57ba432860a1cf8a821c9756d27c325e262f0e469da066aba86b736e326de0a9c0f263b95736592b8a5f45e940d0465365557d2d044887439c0e7a5950176b714b91a8574d0b10b89fc36ffb934b04b604d4d1a1a4f13550186b2ea63f4b00199ba31b33d687e6b199d7691de03422ea1873b65cbb3fa54c3b5b9bdc95a5a6b787b043316f44cf7792342fb999a2511dc0230298842189b6228ac0bc26e7554d3a57bb30bfd0c790a9c6197d521091a80ba4998022790040b9aeb9750e71996bb381ae7ee027201a0a8148939c7a9ede95bf11e7375a783e391a6d9c78124aa5a9346146a1988179ac59fb770f624920d863b04f55576438783e945caf150d22b253190a6d01db591ecba6bb927fef8b1bd6169c15e7ad412abdd56c41c5baca3672a3ca1925ea3a0445331a8e0b17806f4cdb4945cc9d04706c93c777f7772f98d581811fa980a4fce9814bdae05bdd2287feeda174b341234f512fc83e85ae1acb6bc7a4839dd85e923d3115d4467ae25f3807690fba44222483bd2abd7edde3d6241c9f8485680f96a71c9cf252 +ciphertext: 03560995b8aa3a6fa5c2c86a0b86875bc980f8405116faf9e003d056a7e1a5091bdf598f4c2a8ffb1067dec155a8d4f81d2e4cc43361d236a763c4d730c4c7f4e077fcf17a48f76c4c2c896255bec47b67c25dbcb45f1870923fe1ada6e5ca79fa1aa8347435f9a14677c0746491df025b1bacd7fba8db4a7861d78d9f21cd0fcc77106447da9f6efc89a0977b698b12c006a3ab43f7c4512c49d53a97b34bf2a0adaf3a76ac6f4f889e441848006aedb633485eea5989fc68288964b86fa26754d40ee784bf749aa199d23f5ea87a156c020579d421fbaf87d16da83e982f56f3a0c5375067d10541a737a471a95d5dbaa5935b6e2bacb5d09a89e16fa52c42c4cf457c1a9a08c4a04cca14b24104ed1d25a298eae865c0cb7f2af46ce4cdf028cdb50262d17cd8d9ff6106e0710ee1b810fdd6330f63ccb07ff1b338cb0596547aad73c4f61b34d1aec7b8a2bdb904c2e83b494df2386e8e75ff4338ea5302d88b06bce1aa9069d39eb959ba084d800ac99cb1e743f2585755e075f7c9325d9cd7ba095895447501e99022e09e6461707200a097c6daee4f73356ea87c20e7f2e2e3e0612dab5a555ad471b2c0fb87138433e743aca91e16af40f13aaa670ef42f1961bc3217af9f7a3a5f2befa5821331cb54c7d98815bf80e7511b82b36a50dbec594aab0bc8cee24cf1c792ce2c97216ad7a6a9211fb2e9d2ba7a77445b84c53e530e821fb3e7b171601911095984306f03233119fec5cf80a72a37c93f5717c40c645d87c58d5ac79a0ee8b37e6849efd1b335c70b362277853cb5321dc7d8bfcb3164576a8b77fc15d9f9402304c86437e9a585ccba78ea210036ecb20014899945c4b8a730f1a5c894d652ea30bc48e7d9602a236fd7e9d91bb639557bcf06b950a688457613b337860e73eed1a31fb697483de88be8a29ec862fa670b463429615052d379db7234bdf472461b11c9e04b94079b1b0cacf976c0d2c56b6d2b9b7371b2b65e31b3320426aa421bdcabba90e2ad7a18dd4e10c000f1042e1cf73f3a650b9610ea7aa9072f03d115a4466d070293e2a575037d02b663172337c2b1319e4948d968d7d480218d17762af5ead1b44b04bf15c3b6b16440241d6778f8ac8a443994caf2f17be168db9283b68b2de2a2f12b786b911621c9da488f00b5a15c327da80c2d32c14b3561b843032ac7844d91a63c4c01d4e98417c60526c081f3de77dbcc28aa8cad1c2390c2ee1c71ea75dd3d1f4e88fe911a4acf1daa3cfc31c3836a2367c78f1a794a2a133de7a83507a3ee88a0995b5d9d9cf5252eb0192e5ad4ee50d4c7140b9fec54f8279007608482d8edb81d8cbd09048565c6dfd62d12b81b9f67c8cb657479f281a779f60c12b3c09feac9501ae9b5f404f7fe6e64f2dff6787d7fa5c4384f3e91a108bba28d9d893347b5adea973bffdaad4bea7231ca9fb4e94e9546f21a0f0c2e9f452f53b1118c17a5a2105874088d69a252dac061a1f015301e666b60bb82f271c22f7f70c3a130e5afe6ddefef8e50d3db015b4091c250f18d311456227a2baa734e1ec7420d3167201c292a7882949f7a1f293beb6ca064a4b87d550d05e19a2942ad2b13d1530a3ba82916df9a09eeeeff237e26e536d1c0effdc59ff27e479144865f1848e2b289c85b00503a9fcc868332336023afb63136ab05ca05c2f4cf768ef765230b99e9ccc4ea90f30b270a5bf3064269dd21732d1be53c665d17cfb9a015a2e9914925582091d6c7b059fd418b3c7b674e61620bbb2609dc95072a357771a2782eeec51cf82b5d167f685a6f24efaa9f8ceed2a64f0bbc5aff2a83104b43745994418e0357afd70b65816a85e72e30c3f5aab75ccbd2ed92371d8e67f9d867cdbd28d0c51244700ca212cb3fe201df6cef5b0b19e53515e55e0bacf0ebd617e78c2e2cebec7cac14bc76f62068f58e8168ab21b357160d10f26fb2929aa8fcbe27ff1c2638e6490e1c2cfd596427a2dbd0f112ea5f1c2b8dcee1c1739963b93b48c577fa354e98a33835ca444669b1b5c3fe35b55b7bbfc2e8c998d4ede6c3e76cd9b09f68226c80fb5ab7bd7aea3e5800ce0b089910b1e0a950f9721a2517abd6d5d28389bbcbcff898cb8a3162f129d3bb259c8d930d6ba993745bc6a2c07da0d49fba8c0afeea337aac7d6bca6d54e34d848da035cac2ce378c50ec69e9e2efeb8519791c +result: pass +shared_secret: e46036340b63624c69495d40138b330089c9b7db54db94cd339780c6456c1801 + +# Bit flipped ciphertext +private_key: a1010218302d91186ba5bba9800a2252975464d280c9e8b123392f5541bd703396e2469133801e8cd684dc1735e889788beb892ed101d66b0b97072bce27aff6637cc575245fd510c42374988570fd097557a0830ed10b00946c2954bb46dccd365461f4b40a70054f02b2345e663a697765dc11630bc66d86fbc21d65218342621f1a4e2978562f8102d8d52e14338f2b5844a4f2acf6c39b266b1766a5cc4ef815749328763706f1c94bd2173f3f5ac17cf2cf928548277c27723bada3c1ab03d375bf418563b16106f434bac87e45d567a73b0cb39c3d9051a597dc0d4625068f07521be5aa8f284117a68b47668b212a6435126d3e853036c45fe8266d4ada2ceac45f78415c28026cfee8352f51702d64cc0b8573bee42a392b2ba5a5b7f5855b267689626854694571fa01d01f384c6ae0a907f84933e87e86c3bacb42c5d89530e78131b968792547bdf63a1ad0bb0ccc6a4cc16831ae22b023ea52ed2660fc3bbad895c74478b272b5bc4bd52a1ad3cd6e3aa99b80cf447a3a3227542f723967214854a86f1c28cba555514b452e92ba504d70c5ea5a7b8482bf50d338af84ae626a8c33e38443039f545339bac42998a6122f4a4ef878cff7dba252ab861f08b710867c1a476bcd576a69730bd1313a1ca88c50085ae711bc9310a45f77885fd1c7e2528455989b79d01857411292ba24a7b62642f23c73fc0936fac1ed5286ce458ebd941a6e2c98840a288e0b31b91716f0f138b3e26ad4bcbb3c82708da272f74392dc905a02202ab7c662b1085f48b4cde23a396a385beb73867b882dcfbac5c7938cb6c01237721628134bfcbc157870342e6201860608afb5309f6a20d51b41f720c580677b9359b6f41697b4615ff2559fd7da8cc18742a1268d15e3628052cb7ea4a9874caade54500fc10d9d2c3465a07d2ad143ad19a05d28a666e378b0402e234506d039625291cdf4849950f82ba2d42aaf9247044070ec1c7e78a0a8663c28e4a991da8638617b075bf186435b6e511bc458175eea1b45afd781e2c9acbca654c3748f6f612493fc61ca46851c9a8785027c2a9161d7da71f773b6b8fc30789aa0cb262fac68aeb2e169c7c698de0a5d2fbcb346aabff7611a48b09fec98182f1a9dd99729fda72f741a4a8f9839649aaea8bc5258ec5d31a2769dac007ad23085e62535762bd4cbc27ee829f90a8d36a37450099a9a647b5ec93051e46f6e3a5262d3a6818a47d61297f5ab8bdfd0895c5c7ba4828de05b0e64660791b7bb2c1877c2c87dc07b704eb2aa3b83267f631755a4c5e205b8ddec83054a2b09a34d1a9852693399261898e8db93d7620f11aa3e6f9619cdc63cfc83ba2f365d2ed7a7f44683613c737eb9590a3047e3b53351761bb95074a5488ffeb267f9557fd30627bd70c9100736c9da8e382723d6a07926993e3fc285404277d9a60f94b46bc708803c35cae71156fd3c1a9bdab2eb498c0571b1eb700f7f4534420b1671733b52540925b9513ef6443628a92bda6aa29c7e95511408165a969b2dac25bf50e899e6cc47416098fbf0b23c738786b24aafb3c968c952c4386e51dbc03cd4afa52c53a1089d404ccd01d67adc458e94a3157309585f624b5b728ccfe52ecf17949bd93a18e6c14119664344c9c4baa218544c63b3ad8245cbde0975e86baa2fa83677014410fb2403283f736a3cbf521d574412258553f7a02452e00c23fb98f7cc353d5863c4d1a5b9ba441ef7b60a86ae2e74b2d0ca61e0e23917a26ef9ac9e552762254089cd6540510cc4d1310fcdc4541f19ceb17928038511692c943609ce0925ba48037edaf81895442cd4d1432b148d8ab2874eb134acf7071e10b01c8a892f10941e323a0e7bb5aea62414a502ec5024917983c5b0632d25be7a2bc2c0b88893045625fabf2155b67d75c8118b813eba5b25f172f7589cb16ca4d845664e9377bd77c3d212ac06b7b04023822169c0a4ac5c285b11f4220293193f2b31bf8bdbada803790ba339f4f5c94afc4aac928a8d3873d707bc897a1c73017b3a03793e38216974304d421286b3ceab7a9958a17e7a5cb01ec8218325b2e6a0940e2219d4174cb8c35a4b3a5689d0ab13e04a34e96b805b75aa449f59f68cbdb32404190b30c6aebb1765cab921f205a83787b93c947b26572713b00bb4aa94f99c255bd1cfe4430531214dc1c98cb6d6382c55090b0664bdaa73f302cabee71151e86558673d0bac3d188c2b9649c644fcafb2510af4667ca76706ac37292dc9a75a2c9946b5cfc0d91398b50bd17c8a34b45981e28c468654493c5411bc8190d4c343ba9ee3932bb7304bf414369ebc51d8b59cdbb0770c457b49e85e694476a1b25145962f06154096b697f1861f7b43bdaa7598f003a5c10a1961a8aed1460401fb25ea7a8e4a5203f7b15a7697ae6e10515e221af41ccb715276ad7a4a26f67ee973699d96be8df59744e71df147ab2944b7319acc27c29deb57b0f2e3b3554181ae9517dc965da8ca5deaf889c9e39b9f134c5d6519d7897df633037397778166c5f86764946aa58aa0ca03930122637f06e1021101c93b6760f5b0b2eabc67c2ac0a57a97939803af384486c7390ca7c1c341c34d737b689725bbd8c7f6aec4a7314134582ca8c786c6ec275e2d3c70120b57068175c595961409f17fba84e9277f2d2c8aba827b0ea21f2c602c538c684245f1fd14cb0277ed60b61900573a554af67c6bc77b6c6ebac042c2a3afc5c36d702218a05253db27f4b1a69447c9a9e79502c6a9cdb194236fc828a353402753df9fcba675b98be6777ae5b2c11dbaf596328463c67c738226b61b0a1c88ac8924f38c58accf36b62e212dc6136bc31ad75145ec2d694184b21ef09bd668a98bcf2cbfbc5a7d095745ba0b4457098da335b3c4287d72755306589fb12670ec59664587cfe567143110f4885a5bbc911aa590181612d8059a1939007e4e0944c70412b754b92052ee36a4f3230a58bb2bdd7e7c1d8cc6d8658796fe56e090928d4611fe69237df5b3eb7361ef46cc7ef7a6aca1c3648e0c27dec25b2bc22ce8b545f7278eacb9939ab997421459d92c0d0ec32b4e83eb1abc82d662e425c446205050c59027fc64c580b3c4c5cbb3a79140ee77fa26144b981b0ca2397d5a38457823e9735768a412ddbc84d75c6991dd2714a435ea6514a997b404249a58e960672d45ac51b9a534744327abc03a0446615ba6db047a895a804238a32ab273bc71ad264763dd2b98a345360698f48e29b7ee913496758f5d669825b743a3499f20273b6b32aacc477c2113fa7d10afe48062f3887147880c2b0442ca20201ac655e9c7d500c8e2522a9ece7c4d3ab259b526b698a7832d943df4b6141f45d21b98bf1214607c04451ca7c90a6167d7c6de018205a4104f375392d035ae95b1b81e448f90356d3c7a2927836c7c26a8b73326dd739f812304592b03167787605258dd416dc1c6587f16d0bfa4cf4a9bd1057472a068505c503b1195111d39484722964c6b366d199347bca5074720dc7c80f43506e201816357f903a5e6ff8489e896310100bf9847ff841c675f51fa5b48036999fb300214fbbc7af49caedd40b0f01433833965fd5763c9455f2cb28c930b606d254cbb5cde7d2008b644ac5521d4af85d949740f9da28de0c00fbf79fba778c40a474ebd6abef11651995542f247650a07f0eb5a4fa4c2d5acc96bb8c4d556a898ad70f379a31117ccd089684198800b047c06fa62eb8e3c1a4281805609a34501f14809c1e13ab57015f8e610bf355c997e0aff29a4d783683dff1a06a6388207cb77b104cf8c10f66524ef26a7f1605cc98db56499b0dbc042de35a6357892b0a826d9a583f5d567519c2b68e692b6a0b4600a72f3ed0a305298b03d64edf46a570673c6f6549d6871f81557ce271b873bc7e93da7f5d429bd1e1bd4bd9677f95a7dbf393caeb57c8e0be479ca48ea7a70b5036aec10ede2a1aed91cf5357bce5082fbc221cfc14a3d8fa200732560c6b1ae7e92535087e96e9946a9c3f28c844482223ca08647d84804b61a1d15013ba1060a2c2cbeac3a2f0e2307380a018fa8ba9e73a63a4a443bc5f72d72649748215031b70734b524a96b5e4000487622520bbda43cc0ff004fa3145a860789ea65868c06d896b3d77172336068eb4fb6b20e21405d8449fb3711583cfccf15297d75e4511939ef75f38552c623630109c399d6646ccb514349671f17c24568b33c2484ef4984135d2585db51eeb901b78fb49c87218433b0f5632ab6b74597d2893fdc36ef7c1b425a68ec59397c6c4724ebcbc93c476f070c486759430465ebff9bd19376aa6ff377653604a993e5fabd2f07171c850155ddc942c2d34c4a8cc1a24291472bb881cb9644047e1ea64d4cab3be749e9709d20d392fdd31e91c40e7a05707edc935426bfc2db0d6d353a71cbaf96d365b1b43cc +ciphertext: 481d9c9b751a784534a2f427bd749abbf998569c861841ee080f3e0bbf9a383cb208f8b6b9773ab81a03f0464c4286fd0e1642f2eb4dee38843283c9a7265ca2331069121bb8159684395a0d4713c7f176a34bfd268a047898a5633e4e665d4d59e5cd1c114cdf5006518a9cd4e4edaa585c037c32100c1586682c974f629d8671a9f0eda0e574038607e1dd3f0c2f7f3c319f14f4f53663c545a0e5ff31b1afd8c787c0642139e070cb6dd3cba6a423f5605947b8d222091514672aa6dcddbec0bb5c8267d901deedefa16a392369e8454b1c2ed9e2c1a0790d1310e3ec7b6f5c9f8520d394133018deef2d1a1fef0dfeb82da813aac6e6d623a4b3c9fa6e2af8a038b49c4eee10fae146130f8aa9e901126f0ff2167d9cd84aff669d67eb0302dd24849a641ca2624d2851b1f6b2fd7da61384f67af43d641f71ec7dc2bfa616af3a47b38813edfea5859c20d7aa819b819382be89d11e834edf2d6b259588359afd94570f98681bcead6777a51327dc2679612ebaed72b18222dcd3ddaae98d0047136f3a8fe53d021044aeb29f67951617159e04fe0c79598a88e651dfd23e889b6183644d476ff61c9f372fc173d4b9c42385a5ecf31fa34a90278fcf91830bc283df6b26c4ec8fba5ddee2ce55900631b6735eae33e6bd19715d6cf99c45b60bb9b6a6821f8669b94b539ed69b90882ca22ad2a3e36d9d7a7b8c89938f366e0778e50a47eef1aa246028487e5a6dcb77260167df9750c0beb6bd8de6de1dd52a49435963297c26ba63000b1c40f5dd2233539ae1dd2ce5775b10ab2ec2f3796c65a14529251f40a7ece0cf21cecc0c70e9dd5a3b1559963fcb74e75c0fb4ce1217c05ca820a53e53fd2c939c9703ce351290947a93aaff8df11f3a717e963ffae0677737d7950ecacaccae24574504bb765336c1b0f7252b726c1a3f306a9f11c05a1790e8ba6bd6ace9795e90486e3ed26db1b59a95ba9e25d7f4b8024f2bd4e69cd08f6d0ff4eec075ab5eb32c7c278717e2eb8fbc4b3ea1aaadf9c1c402b3b6e6f9b235e5656668f1b454bd5e69c276adcea8fc4dabe78d71341de1af4e40048e3ef5ac76342d49ea8fe63e63c3c95193c2c159c2c9f7a4b3f94f302dc5900ab8a74b99cb61df6da4cd79072395ccc0ef758675caa1b7e020afc09ddae0b6ef7c79561ffb799acfe8248318ff8f5bb99dab5a06dbb93d5bec20629f1059263e5e1c501382841fb46cceab4c27a0d5203783190633a99cdd248b9a02818c357e4a7e400daf53a4b2db01bb8ab468d05133d78cefb41c92fe1e6e59051326620d31d0eadd0755447eaff0cef1a6a2b202050679cc11f4fa89916a3737e4bc2a4911ab07b5bdb105efb9e8a85f2d3ec14a38b557359f05bef7e75dc1fc37ef70ebdb6dd233cc24316293a4b10ad1568324c2931c14f7e106f35e2827e921c478fdeb445075d501e83481c9e399f86470a93b5798c47c5cfb6abad353c3232bdb42d7d0948768dc7c3269c57c1d98a2c613a8a73d2ac1fd66094f8bcb6b1d235ae8938a59aed154128485149f389424e98b94371167e48b8ab4c28314227e92f9913be2cb0a29db4cf2ddc40d3f0b79fd2f34fbf8d1e02188f8eeabcc17be8116469df1f7f0badbeecd32b2990632cf56155465ad0b95ebc755a428e3398953c7e543837022ae5111bf5d31d2d9f4b613c06cbf10d73fc9af99eb2bb241d8bc09c9a0432b6f0a998cbe84692d5a559ddfb2fec6c2f01e74f9a3bb52248b0583eb06439ea498a3ad01f6b89a4fbe55343a9c2c248c0f2ecf71dceb0a8430a0fb86dc0bdfe47e0f81b0ec285516bb9fa7f38a3b8574a3954927e5d870e7ef9fcf6e829d9deb5e7b977a8c44a35a2989ea1477a8281bd41f03f6caeb37fbe6e35589e77f4de2660ecc86370524b224a325640464a0b2327ba917add4540328d04cf6ef5587e3eb884df86189e50333eea3f08cb7f6e5b918a09e85b8340e6a0b0d707e65e076a262386a4664eb49e7ca4391c1ddf46f9f0c841ac597c85511b0d8eeff9547bb827ab927516ba04a8a5c11f0fc746600a5d211cc515c2b966c205c53cd3d27589cc26cfd95044c6532f5d921b2101318397752cb048e7b213881168d66314ebfd8fe42846796df24be63b014db99f383e3757ecd3f161f225e53cb7a0ad9efbdd29cfbe8ad28fc7ac62d115463061723f77deb67b4573f58b9 +result: pass +shared_secret: 676a8af45f8a92287eeaba78d0a5270cd56cbeb52ea51458eb1496b7f128ef62 + +# Bit flipped ciphertext +private_key: 23853a2105199c289a24b976ebe08a929bafabb374fb0459e136b87ac75ee19acdd45a4672b904b5911bfd637ee8c451c96a29bd57bd1cc04e62b55a0c61b1cce5568d219e9bb6185151142ae5aeb9f49c70850f1d66844d736a7c5a10b373b299374034948d600c115deac3f29ca175291679b94bfa832532da5289e25abca6417e188864443fcc864f0f589946b69175ea32e391bc35b588dcba1dfc4248b993b90136ae57373432a23e691700e414b8a6b408732aa085b91bfb05ce4e449ee0838a1ac953c5f87a64a663b1f628e6710a1e5c80d1c515bed73e692190626c07a213c82428147944871d0c808c28036ca9037f378944897257b121f0d0a073d07e9c9c92a297aa4da0390b78c5e32b21b2e72ba917c5eee7c3d1333d9d53923e7b6f6b264909ebafde47b131aa65c56078bf0802e8613ef068c73c71278f623d31227462f3c700227b3cbb89300a880587786ae279c88383ac2409c284581c8433a64591d63964a7b9b653561fe7e238c72bcdf9b66b39d39af2bb2bdec4bc22c9162ae394d8b60d2c874d81c14370d5206ad22ea283c2a838962b445990595075893e9489c7d41b174a90cc91e6baabec85e86707de80b89844a03ab0186df3abbc40baa86426fed11e2b1c453dd8befac51423b5a548261f2a52c7b53c4eb93a49cb8384ece1b973031b4743869286a88156879b098a17c56d95b59e102b6737b41943a14aa7886067009c1d7b5e27800f59329c4adb1ed993bda4846b4cd47749221a573c0369607163e2addd10825b8421f987587ddbbc94b999de2c1474fc2d0ee55b18c28fcf626a4569849480bc730a4391fb6e0a0467f03b066932318129b460e908df5bc1f4498aed60ab19f9208a6c281207628252bceba5ce7f09725cb82355311abb37ae32330bbdec1bb7a06ca315490a478e7e589e524a7759d60bc1043c72eb29f3337d9ebc0ba095027f753de5763486bc6aa336b3b5b18c5cc3563879b66f625836b21540cc0e52599ade443e6a0bb63617c572ca6313b56e3e4a10f99b441b54717beb735a69c8b276ae3270865ca8540078481415b682b25a7786bfd1a40996d849669195b0f5c1546b239180ad0905055fa11c871a8f4b4a120ea13a35da212261a4e92903b2a1817c821025cb704c00cbbd078502ba42f6c0439bb42bc110ae5b0b864b6a2def642a66f4a82f729c50d5738a8793b76166c0d94ca42bcaeb8c2760f47aa43ba206104de6c517c8e4a02d755eefb4c6307c20dc475f2b0042e7610ab65426edaa6251c9c9a367ca55c44747b41e730b979e8968cd43bf142775a55075724cbfc30910c05cc13c273d310aca4562800b47069d0b155df6a15a3bc9df54c9e074857c3257742c02c70482770acea8f0c27006a093d65747854650c6a5a6b81c68db6781034cedfc29c0287b050329edc56fdd5040975b7d96768b7d54846f0490c2473e89b5209b5226ebc69d9c6124aaea80d265378a383586e09bfddb846586106f115416539604212adc11a55e4809c4abb36207a0351506a6c912ff1b8948777a85f70016819968344e30bc093204823c9b41814354c5561614f29f44424cd5984bef6c0efc1bb6a60b07836a16a72033907a3ba0605a89c2460f6c6104698dd5a4197cb58d59c222b3f88cdb5009b0dc42e2411df8e7a05cd01a3dc98c6c7437d2f900f154742d5b08e33b7789271b9475b16e03598e0517ad8a14e0743ec21c0e056c328245a56ee66f98b9873a8926ef857a12365c17480210e39038b32d9863a4694081491a9a4d4c815dc534adf74784e1bb7c14c81026adbb9ca168fa6a4c96a8d0da7a7f2b8148831bce1ccc388068571797a1788d51a9405038879c239adad1924ebb753044b71ca03973a8cc1712bdf766c1875a8a5d6a062bba709ac47a4c829166455c76b0025415b49e418023d075fa40a6056abfff7c0136251517b7bbcc666a082c74ff2aab702c74b59c716cd092e9ca001883619b95cbf60666f3911086c79b4a601282712e15064401d34f20ab985ed26c2e711e6c703810746c91420f9eca3a7c178172e52f1387a84381a6b1dc69eff189fae08697027316148ef86a0cbe8130c0a9b01689bdec821d8602997bbc16e6b323eb3b33ab5c1e0de27ebaa4a12db1a16ecb870e075635565149ec91187810f203a40620a91603ab8654b1c92b50c6f01d5ea855b6f159f0824e60f06b430653fa0b6d7435aa4f42bad6ac0c0a664ab509b0d10253d17221933a101f4a0fe451a20f18158793228f17abbcd27d32a1271f858bf3867c3b93c5dd84cc2acc8b8561af04452e271192c5c745e873b92e1acbf06530fe954b09043c7ab5885a7b4807650f250b4358f92dd6c44aafc5bdf45b255ee94deb028cc96348ffe22f2439ce7c584d1f277c3ae2ab8f284c178b0c63b43ebe29abbb1a8dcea86a19b474c3c695b1301223723a1eb09b6220561c629647dc7206a664d77551c030880c224d5798970aabb94eecb494253e668c78d15b3a994813dde010c2d3c42e4caec0453b5b2364e9215efe82b38a040412602caefb0891f49e7a9468808359c40abdcae4ce42ca13b0e8854f8b1596335e1a202a4a259770969c4274bde15811205b8847cb6a7f10a8c6a484d8a3688a535eb2e4804ebb2d4e9815a8e7136d996bfc127abc609534029d4370c3c2113a780a23507a86c4bc4d1dc6121dcbcda584230f259f28f58ac9dc5e4333a5f63b2cdd4ccb44797b359ac669e71ab964c60ed186d790ab3b926d2dd45f4c46cdfcb227bf8c6dee8a85e63188e289979d848d4a9198a480a203a95541e4b0f11c1aff76a93755b8355249560b7606a66cb63743f34c3279fb42c6656ed2f1117811cdf68c51fa51b2fa8a76c5b3afff9b7c15ab01fa99b6f2d36051c2c215f2a3ea799630d0aca6b8c9e8e2715290bf339534dd3103f35bc2747c45428c4456ea2e6d072e6d2935d294737bc97692f2aa4f335deafc00820a6967ea4286c889dc958d8331736b81388c07b32d9cb507a74c88cb82ac2717b877ba15b93768042aaeb132742a3f52351b48140a7042296212c10813c510302d4d5471e760bb3fd14899b09c616c24e0d543575947eab449bd413bc7d34051567047783dcd633479d77f7a833add96ab8c4c74be337c3c9c42e33845bd09623e976580579935d41e53bc6557a91e0c79cc8759805d4554ee7a1c218576f29a7279a459ff5b802ce52497902d6ba2bd3a12814b02c26e80b76cc4512748b728f77e74a534cab5194432552da0cfb0aac4c8e68fdb559281206821e698b7b10960310f9bbcc7a8aa9bfd2c61fc25c91243a90da5cb20221c5279cb34884833a2224d814f911b525b4a15807022067100289a9ae947313f891be4acc4f2bb4131b3551697c9635785abe215e2193e207a1d9dc29333d5391a252de35cb65b124f073c36656ccfaa5a5ba373c05eb74cf7895b2d6c51cd9b161ed629fa08a77a04ca40f6b92a6a06c5b92c82b339b9c781da1b0702a9c040f5632ceb1e0bb3a5a7b72dc8a13c67e2c9f90293ea5a3450d473d73cb9ded37c0dd4cac7e76419ea28b1e7282820ce7145af61e3767bf2c3551a73ae2b2fb65a123d85490d7352908a5eabf0c6a7c848bc01b13104777c77646f44ce35c491ebf6843ffc6d5aa4617565147c989ae8da7e1cb442fe1838e5507e332a1997877976689290c0a33afccdb38c4cb7e4b069381bcee860d84b59cbf037a0b95fba9245ffb7613d2c4927a7a8713a6c26e828a05508e9b1afe85b93c996503c86387dfc482f071e95820978705cfb481a8d8b9ac7a8bc0db6c8165966d6c66d08731a2d11c032c33a974605d5ab0e32fccd0cd32a8877ac79bc42a293bff8487db488b95576ca5b3678c148aa108b39858861d8c3978cc845f3a7a5d4e6ad356739052296c5aba4f85816077b0beb4a2703daaf7a2c007a10ba00abb013ca96b7c1621f31b1dd284ffc0c5574ea2f995c41e415675cac68d3c0a8eb4879fd30cc5e548fe413c7df97ae491200c6808af4acb63bab0ab80859723a289104bec8354aa4b68af9c34f8ce20d9aa41d6d448d871560ea0444a3aa66eda7505511900bf455a35b41b07823dfe6433b128d636a5ef9e0b8df1c015636088d4c4d257cc9412301d6478ba2e9aeaaca0ace665594ca413e0701f784042063a25a55126774472fabc14d99558f9a426e21cd87b4255651af06e50a4e8050b61920675293ae9c194e921e4be5352719a95e04497f72cf5ca484c4f47cabc8ac76187f1018379da37e64e464be68aedfea2f2ae7bf5cc6991f37acef86986d3b738bfe7cb40c8db725d5e357c7990aec5bbcd5b43bd13886f4617c895eb1bb45b47bf2df6f054550ff6293e3c4358a84354afcd4ebbf9144552d5eb0ebf8645b82bee5d2ab2ef7c57e89453d5768c5123b28517b07c071736a33544c79fd704d41 +ciphertext: c8eda20f121ffa3d9ed45031be465226e71c0d4c2f06ca346d86f7f8eba39d9e454a4d399d2638e897262c727c8061218b72c2edc224dbe73b6aab0419b5a1d50fb4606ed3633c2bbc9006e7257ff73d84c6cc692cdc08aa365f61e8b24c3b14af162333dc993b657e8dd85f87a6301219c7c5e1312c15229eed3e3559d79c0ee2a8ad5deab23f67130bcc162debd65c50915ce93e4a0c31d078cbca6df5ea19f4251bfb15393d9d61030e04f7b14f85fdd877b43f2fcc897396cd80a261a1c300e7fa738ebe484faa2acf12b2fe9c65bb45328a1254dc175ed9b55780e5846b1dab18c58076ac43167c2bb8341e343f41fd6e6f4b3dd5fd32adf04008036150dc674f7527de8dbfb1150e732716d8565543195c49fe14a5f8177de3318d477fa2e56f88b325e5be1333fcd8fcef8147166d92cdfb11199e0534bea93cf7df402a769e2e42e5bdcf67971991296f7cb9ac75f60ee6e3732a93c12ab06b948cc5aa4fcb86185f4bb22027978be42e969517aa0e5683b7fa91ec089ede4d0ae45f47a6cbea7087bf79c3776879090d33d74aa7445cb66cfddf5b871cf29b166acd2ea31ba8ec4f5f51904e69ebf6147afb37ca15995dd9d8a09ec10c650c3a6a4866dca01fbdc8b5e3dba02b86053c903c3e5129871edc26ccc519c769b5b4834d78dc7fcfd869c2bd781cd87dd1a36927075467605c99c108ba6a4a856695041e06e2206a8e0045d3ba364da44abab87de584d664f53bde51eff82f721aa181700eb7798fef397fce51e8684d1e138a654b4419228e0a3765b22f37d1c9e6f966877d86e74a656dec461f9764e8bf295ccda847890027aa43193b0f4e098a3804a9b1aa8957995f1e4418efb57c1e2daeb7cced47cbe2be0c18441a8dcbe1cf455a7480f3bbf0a9f2635eb668d67f7ca13ba38439f9687dc655b119c465930299c2cdedb136cfce88219a26459e0a79edbc881018a28229121a90bc5a5d70b2390f1833631fc4a4331d1a8e7a75334d8f7098884f2626785ad9adf9f42b2cb9640b82a9772805242ad42d07a37ffbbc01b402e1b8644ce5ff5c3b1d2b222a6439b78a5479d71530579158d1b75fbe31fc9335edd98f5791077f2fac78c5767ae1667b552a0190d9cb4aa91f13ab7691d5562efd86b5412f7461b35b7d9959dd60feca4986076577f607bf3052f04face29a67384fb9abe9db3cf5ed1162f9bdffeb40b6266305f1b7f379fc572c9fa830b051db41c1509d47a34a1e7a23c83cf33237a5e10c751984a91701ab81c0767a057540d916eae6eb76dfa51cf9b4b680328ab330572c05ffe753719638e3a4d753bbdbae72368a57de42490487e81ecc5e8dd738956e36247c26f32a0250697e2f32c007902060e9d2a04f5d23c948058f14647f336c39953ea3138731c719070edf046f98b84c5f80ba449320299500a4fd187dabc03fd4a14975b36bc00efd777eddbe28e04cc9caaf6019119de157c73db58804a9502d67da69ea957cfcf15c540d4de9880b77a9f28b24bf000797f4e6fb0a815988bb2fd1def22422d579ef213633d88e8586b9d6e59d8b2faa93d78e5e6786c11c8e1e35a98e89004a0e8ed44622d8dda6a36fb9fc19d2ad43246ca1b55b9322365aa7f69e6b7be51bffe96ce31976e9b3b1844888aece006815d1773722497169fc91b175e87dfb1b803bd266b92d6aff6033b6be5760da8f167800f128626ee578fb52cb28bb30e83fc8fa90724840c1d94b46fb3899dc66059789f3813014acb7fbb322e9c37ed1efed124aa75fd5c17f8797049ef62ee7cf01d538e75e6d694b2cdd63ac28209bebdb2b32e94d6b1c555617e3a0982e97d0179f629e97c137d5a09c3072cb984f9d287f598697409a2f84bf9269c2aab1f4df01e9194a3d7a8ab2122a2e5dc54f2f048ff27dd0f2b55661ad0766596126ba1a5f05a4499a788a7d6c5c0473653936566980cbf30c850eea56e1698e95a7922fa10fed7e49dcbf4381906b7a79d81ceb966294b6dab42d254d31f6a52a463497f4e05174caedd8cf45dc1164ce062e08a187358b37428c531fba063f551783dac35f12be43cb316ad88a8ec50e89195fa30defa5fcda3db7448c4aa39893a767d21e6429bafdf220cab6c63d8bc608c10c303314e8855db60fe21822a09e17f0c5af74b818b69b9d5200b5ef02cb7ae81b87d865748344915c69f5bbb1987a +result: pass +shared_secret: 34258512defa3d63f65100f185d469472c8b96d47077e59f6873466378c69679 + +# Bit flipped ciphertext +private_key: 65d8b77974c5ec3cc4761558ffac6f2346cdec812488865ba054319d4c27c7c8c599945f9650bdda73133735040d676e8b0949e41c5b264bc68736ae0b4149f6515b52375330661f3c2360609254d6b09e091924fdd40cf0a520c445656db8af02dc188519880ef0b8a9296fc6c9bc12a622360077e042870186c7f82b3884a02a65f08e22b57abaf0cc75c9bf1d112eb79b5c625b467f1ba16637738014c0ea84c5b0765db2f98d1cb6cd74657c22ac1d3d5507997cb0fe1b1ef2f78ea271171631a3f1e560130405095c012de528d339c88b8a826c173c25e95ace86bce3b05415a8375b1cb80a539e3e4027f0e7ad79e71799e7173e59a9c078b13ac70ba3498afab0b3fa099b3e29644dea5a731c0803c2cdd5988ea5d37eca50b18330855a24af669b11ffa1817d36796d6b1822e99cbad2477df0633967708391c7cbf567ed1a7f0bc37c2d333a1a52a2370814198450cfb23327098c27f19d9afaa3a61877f98a0c82c461e4b63170c80ce2418334cb713b21939dac4405528b08718ab2ac2b86b59c54879170e48063ca686de99f41584d395c5cd94651c0aa5f8b0b49fd604df9f487fc4ac5f72266c6e526dcc80955474b53574bb76a2b28663bdca606142a94bbd28cedb62c8b551116956b7ce228f4f7be6d39500ea550833680842ab62c384b72d2a8eda3b15d246cf5e5afd68a0375f1a46ee08339f093a12ba072d897100c380c071a57b92abb34c32050825dc627c25966e20a30c4ec571a6079ba39a1e381b4efd50761506347a6ced95c7a3e7c3d5ca01ff40354f249607f703deda19ac7f6617ba93ee88734fdc795cf413c03363def64c0b92c4290cb3f3e621f05f66db6005e23bb18872cb70ef328a1829c85241eab872b80047d9735be2f368d724471024434a6f60bc1083bb441b1bbbc65a7667bbaa670960aad6e55b23953849798cea432978136a742749a56867345b54531343b15a32c00c0514ed6c23c8471ad94034970a0418c3d4cd96835567f8f4a0469290f029548bf97797ea0cc7b84417c316151acaff725bdb5f8b942780f29d3b006a2b8729747bba953ecc6a8fd796acbf720f61b95d717c4788612ae3b68927b3298c53f76ab2582b3c2d379aa351102fbb04e0d81a1b2ac251e18cef25aad0617cf85272dcf7cc5383b2c67c12185272fa986c342ba7ff5a84ee1a6956d839c938cce7e512e96721e22f02d5223ca7d2a8ce4e1c15fbba18905011d572e4160423c5cc347c16ddaa2bc0195192183c2609a1bf42a67efd5185731ca9c46434430c1df05cc5ba490ffd729871c8e7ec10d1aa35f7e3b8056093997abc3dd1c25af33c51668b8148b3cf2d3bfdf662d8fb235358c897a944201a5614a796226701bc32903f7912eee299a156792afa321862c3012377be7a666b111323fc77f68d6c62c2b5fc3491743da561696693d310834f65721bb0cca31af3f882f05fa7764e66feef88b8d871282b992b324ae5ca31c05839df9a279b63078aa35787d467bf33b7d41985506b4cf2846c8132b4292b17b51e888dda2790172c371a4790a451ff1511ab704c5ebb5272966011f07704f9322a5040f415347033bc05904bd012569f6f1362b2c75eab4aab71b134f92056a2bc027b311052757d4fa3f756184d29a59b41c670af66e6ab07b1fbab3edfc22c57440f3084978aac854593303989d491714e69775c302b5db2a36b68bcef8cac3d5757706d3c10e60030bab9767a1021cb9863743559f4990b3d9bb4c94b70e314fd4303817a3651d35173428ccce4b73ad157ef6f25131fbbea0bc38b159c9a33aa014197ee5e4c3c8fb203d39cd3d272cc59887db06890c45a851bb2db3aa07e40461aea9b0fd33908bf326516253a0173bcf4836106c0de175b30f20761f449791b9bf162537d6b31ebdb54cf29414f23691e6e178a81c0923bac118440f43160677fc4ee84827d240c4efc416289aabc3fa938161bfaf981b624222f0642b48a60b4ef4965404ac2e83540bd426795523e5d39c0a002e8c7c444f1aa3d37c71635caa3d8a4adbd68ec957acce19b929b85fe522a07134022803378caa46c1eab7d44615f80b213b258177d3c7f3cb1dccd60675d65ec5dc81d90ba40146442c3a0d277b9aa493c6530007c21839e1f22289079e173580a97941bcd8717a9c24c6976da0085ab02cbe31d1cd58639094651467bbbc480c081ab62135b5a50620b76c3345c7710a65571646c64493976f721488c12333352043a65680f8c215905594dd55bd51166dc15463b9a9135420cf2230b9cac4a30991cd18b49d885bbda8a5ac23b2baa078bd5799cd7bf599dff15b1f13cb8615ad89404899153729047f6be91f18a1b80276c197118e8a31a3d99b546f888c2b87cae1b5afac94c4cc03b57829b57117346f580490fc7451f6479599411d5586bd78a420811a34854f7ee3896d2146b6c87a54452dcf51b057e7bda7e909edf3aff344c518501d68b21cc4b05a85f70790915b03a652b9105223b7977641addab52afde214368b509dea861600c716866467a510d0c073dbb20d8013ba23881bce4cacac6a8a10d97e6af51948211e8be0508b3bae419b67789456eb84c615f482b77060a6ba9f19184aa526a776b89d3333b7a6e53edba16cb02271852ca32321be754606f05252582214dba7496d8bb9cb42492659a3507a6aaf8927ce52884e178425e5aa4fca73e2f0a2dee3181b0c855cb320adf1af28266cc7388c66a99ab877cc8d3434b4c3911387967e3151357b1efb0b76b6051859377e40901603031aed015d6efc7a0d5267bd486c0d7b4d91c1afb58349af8020bc94941a92c44479678f648a71284d3da29b31a725abc1bca0531a40733aded83b1bd4bf7b756f8d53ab736c91c0935a5e3ab801e3c913f188ec80c0812a2460b93a83eb40f223a46a0c02f2088b93c702c4477c3033901998caa5f8ac2cd59427ba11bdc12987743e8238236b9735562ca1897bca039caa6c0c9630707f5ca7b72e095e4ab5aef89ca64f089d13b9c0ed0c889b491524f62093fba66f058b0594570a8a3e061a64a170cbe9b13cf4b31d49229b900653345b8a714cb8f9e84e1a897b37a7929f6c4081c860a1878ce3230600984aff3508a65246488ba6f3b726357b4fe6e6a66d20042ca331d67923be51c741416e994386fd21004023bf0351899b094271e78669b4b6a753c958571fc7c4746366780aca3fe288a004a8113704bee0ba1734043b47b0c013676b56a58a7aa4bfbfe372f6fa1e6baa01e007209637cb7e90753ec69fbc378ce7f8b79cac28f40b09c3104018d579333c9d65600b3326bfa6a8672134a5d8a919457a96329b7df31493be404d622a548f63958f0c175d9c6516f5622bd61cc62345bc16a4f924b663410da8ca53f46558db74971659a908db22f3f04fbc668507b24d4be299a364727e941dd34cb9a134aec13c8efae1b6d5f93254a52056384c7e09d0b2136262c2bd2f748b171672d6e9cd5ecc47f7f78f574c5e2c1764c01a56ee34ade1919bf6090b669760ad2a4977bb1fa9a83ce3d60df1bcb6ab683a432235cb6974806b8f201830586996f984bc0078bc3b1624bd8689ee668443d37cbe2794e73b6ad921274037a8c7c17eb947257f17aeee7b8d72540d8c00b1996546f3569910c4952a861ebef27f677cb029a53a27140d1f2b5026c601bba9c4f6293f37a68260319995da07df28b929d52eb29848b207b95395890e631a2cd0c01a345726a2c522044a3f464ad69ab99d5683e36103e705c6bf2cb7d6c42e5e5187be6a5890790efb165d339ca243e6689cd16d5b0b89a9d3392c39a1a5901e0d66c425339645a25af12929c82718b5c5857cd3a0c603c3b74359b87324e8c58b425b9f697315e4d26c6cd0c4318ba961b98c802537cc753b0c13cdcc527d446b109f724ad850b0cb342b7d9914df608ad3157cea6189797c98ccb54bc9b96bb483aeb6d975cf61b8ab0448bc27966a585f6ec835f555aa4e16aa624b28d246c3989966f3ab01b736281c3797b4f652bfd753e793a21fcb26bc7b247dd195ad365621c8c2d4e606c714b63502832553989a16328e58231ea77308da8dc06912a8656250c89f9d550917456b39c4ce394709bee3c106f58c17887442c51273b1ca31032daadb54ce25522149613ff6ada435a05758bc7fd06c7a1659f63cc1b3c95390d1c973d6cf9a545380c122887aa8c6d53154d22566966722f181893a64432a64493716520351d0f62b91b44273b56de3d7ad5b689dde495913ab54d968b4fc405e4591b6a2553c365073df84a2b528c01eaf93b953e55ea41963bbb5b7de39ef8d658a75616478e935e4b04317afb99bfdb926ae573fedae42da3b5eee0083749e8c8796983fad927d27427358bd43ae980f6619f7bed4e826e71ced90764e09dabcf43639665f67f4a1e2272e6d3767 +ciphertext: 45be14dd0f9469a90e8c33777a41bfd99784465d582789f2e3d50e8ecdbda6be55c3131bf5135e93827d4810fa3634c385b2712634e22f4d39d1773fd56b56ce99911ec4d94f5ca8ec92ecf7b4651b634ee983cf4eba0f9c3b8fb6954cad2257d27cd38214a2e27484f09fb5d4b7a19d1873d588de92e126c86a42049941588e4b15afa545c1a767d90dbb89e0194a78b6061202fa9a7a1a53678887524082608977452146f3130f1e97646a068048815150c63465354befaa02b854306faac23a47db6828bceb4e81c24d729f13e98b85bfc80e32a527ec50d2ede9b1274533e94e39741c993a7c135c323980bfec2a4a292eec138ca8dc11c500844e95c8ade659ed7808524f51f4b500c6919bd374b66abe1e9ef16d33c355eb31fb8fcfe7474bd2706c9fabc7a7f6e682fc26c9135a5d1be33510100d1917e48bb158143e838cd34336e7d992852261f0612474dbec1a6231224b6e4644a871094b355d78664b535bfd18f4b970db4d50408dc3c42d1605cbd0047a25219e1bce983d6a3fdac7c93b84f0c2a3a1237f2da313f981b3df2519575eef61a4b324cf684e25c0a14b60fd4890cd1c8e41495ff0b426f69a676c7218b2291f3726939da93445d0b221045f3a22676d4a5e4fad59b513656eb66dff218804c3c6ae357ee461f8a0ebb2850691b99b18869597e8bdab5eb80b324bd04166991d0869804d4cc3a817df1268606919b611c81b98f93480e24a4ec8f0babdf9e3795c080b1a9d2fc5475808e5dc459b5cbc09ba52d5c6aae34e9ffe200c319135634c8267d1c0899e94868925eb732ebac4cff9cdb2e101fe83ec5101c0656df62c0b09204e117866635bbdd7e8b98ad6f510444e3e85a926eb7b4054fd04e7f5798c9cf0c4351c5d9e93aaeb81b96c300a8a29934553ce1af893a49c03e13262c496d67e60a99d9dcddf26631d5ba56416e3f10036bffdd9ff80a6820704d1ce2425a3740f1ba4e23c2bf3207944669a5731e21efe937855adab4c1d30a4c4f04ab2cf28f821e7f630ee1b6b6fc3c627144ecd03ba9f89f484643276f70e421baa4d36ad219dccb0f93a0e9a02f8adcb03c5925465f4a27a4fba34f7540aa0cd8861cf7f75d113dd38d4a318f09cd2298d405fca07f5698ea08d7b2437a05ef3294fedcfc958c371daacb4744b7441ccbd8f2c4646e7b819c5b200977bd23d5ba90dedee501f5183d9c47129ee28e5f2e81cd69623cab46205aea6020a65c95db71aefd7f0f1bdfa65138aa191a42263450320c4011dace1dc71a6974a17f6ead9cb224f4f139acbe6283ced68f64e28acf918b54af931d3999490672c99e1cb019d0ba172785a896fd219636b2b2635d4a0171284577d27901c80ed1fe37fe19dbcc2b6647ed2bb46fab32ebe7cd71b146f43e73c9105f7644fc266af635188ab450db51fcac0c73e0dab233e796cd096f22d5758f954938e3912f05bd8654cafe6b6b4c4cd797d1e4583ec7e831ba7996fea3fdc591cca16509de8eb131de2cf35b64c4e90353bbf8e4df13b6e8feede27798fe0c6551b7666b5ff5ca9e4325fa0018416fccd9f581e60d2916df7f4b13b788e52795ca6238bad0919de169ebc48bcfec7371cd954268ec3879290cb42bf43b0060047decbed6f2ee01389a4b19496d4d2d70ba8986714779bb9d02c381ede9bc1cb950bb8e90dde343041c6994e6cba290c69651e95eb140b9c59461a28296961a786d1da515db22a4ceca82d8bab5aaed7c597ec9008250e9aebb4c162f932f76fe832ba7b0fc9edceac02759d1bda6fedf4a09fffcae25750860b9a69c4187d61f96bfb7021a6a40cca3e78044f1b6dbdafb9ba6df3b2defdb7c288035d787de44859395e413afff49c003807ba15af07958dec24867c9077dad5a6c1d00bb7dcb03607caf61651c3fcdc4c61ed14b82a2be698157d35c70b426e54018c73c6bbadc5c9588f01484dd53bd7301456baa03041846e551f71433927cb6fa07b5455772df03326daa43185f2a0c6d114ab6a3d555b69266e4e603a6338c3a89b9c881d5bcf01079f00db02ea8f34dc355706fb610983c92e6f2251640db640a71144974e6ee9b3735f56af8f2b6f629d380b9925b442a585fb992ef8dc044f8aa256db349795aaa790abd9c14cb2a810e2913c3e1982d7a22a2cb826c13c610271135d8b721153b3e8887eceec6a6656b806b3b7ba +result: pass +shared_secret: 16ea6f00b342ed5a56030a39c84d7074d85d07f8ddff70342a387da864eea180 + +# Bit flipped ciphertext +private_key: 024b71c111860a64324ff37f8567981cd5285be1c93a0c5bf6a3036a223c8aa6ab0aa08d80a024df1434b2e99ed21cbfdec421339c829624b6d5e46f19591439c7201daca16f45cb70285eebb7b51352a3c14b05f48b059dbb9a90573f1ebcad1744aada02bb663a0f0f8abfef8bcbdbe53d5733051a46079bc1a084996d1fe622f32c2572aa2f651940a4418f6502cd14696acc95a2003c72a84323186cbd5c836e04732ec71528e567b7b3f46da918bdca51ab123b9728d626234685106b9dfad561efb708c27a054bc41bbf4a34f891139d27488ccaafd5503506bc1cbd8c55564300b8f82856d3b07b0077ffdb7a681501b9a8bfb8e969fad4b6d7434007ab55fb939a39b8c7d6c37ba90baa0f4c693d9755341067a0e2470f44bf120a9c2f9bb502b4befb277c5be346c6ba2be47ab93e74783ff95975a2c6efb9ad3912522de612597bcfa3b90629d7a9fe71696d774097fb38ae6b0606f7529e5aa51095022d1b2ec3f5017b3c037a04b7fc152d954899f672967de2502907bddf2610165108938aaeccf21434ca7537e896651a66d518a77a242a010b3b7f178cec270335e804e4f26401678e6465ab7e1a6b446a17359b70cce761e350849cd684f75987c96244d35046c27a3a773412f360601b583fdb88ab1edc3c732423eccb79a720ae3b4b706e04ad3c12359531cc8fd486279701c25a160956ad1fa97b9c061cd601692e4c0818b760c2cc4cc8f86b8a4a56502a596e720ba80a0a12ab25c9540e4a2b05687c564af63a9718cb2954ac01902d432653321650d00b0021927c28e3763e211a295b2fe82365a4d380daa180e33349bcd452c5596608e81654044763111b94378e9da17b9556969581648b6cc4390580c5260f17a88a210cbd72b1a3ecb9c7cb853ab30a179f6224962477a0f220662b1985945381434304d3c3bc83730431949b52a46faccc5a58afd5d29cd7b35826b2b1398c243d2a2b1354b654808c1c14a8c96c537b779e0117cc59c11bc3106c34f47d7c28bd6f573484b0904a267550eb5822244c0c954e61c4483a09d0083b256e834ec1cb88fbfca1e1245a7b87258a612e10a5784f4b815826b68bdb49cc0077bc776a174bad0c5a2a9fe80cbbc2a279635f63854a02e6bf8d687764928e32f42af2da32089aacf99314d990a2bf44c9b482848075438d2a3d04973a2f70c31b0bb7640384e4ac5e8fd87159e9ae8f3c4163b18481fa8888562a03a381490b288f3cb3f9884412775da402a68e7685a04233a97b85d0142abab5173d117273d37c28b339d7eabcff45119cc5b9ac24cbd04423081a32e107a2a212c209b8c0552270a13869f2476d06671941870df462cff92c9d2d6573a0a1a0c12c0914c08e7ce26a66e92001016b78880c14209426a9bba97ba871086ecbb40eff0265ce5ab51172c5fa4799f8888f7a4527866936d0162a00169cf2844b43a44c743b13b9caa44fd47ed693cef95b23c1d6898893bce6764fa82b51d272a7e4b13550236951185549d810e0968bc0a0a370257b64a898c26a219ffa131f7028d04cc119db06f607ce9b4b0f832377b223650612758cdb942ae4bcd43cb1f88b1253d9582039c18b026211f171a8a720528c27e6842c3f662a1b7c5ae8d4a26827212a25c87176c61bdac01fd9499db6b7c7700ce0d2878254214c4b9caba4b930b84406c07fd94c8061463036c40a80f322d1d66e12a239cb31cdaaa9c95b76b6f6a03519da4807724d9d9a368bd59ff50920888ba54520a764351def98850d857a12a40d5be157593529af28b2e87ac77576491c37b3c7abc26991762d0c22845328750abbca153cf4d7688d6659282aada9a54044c21ef0292b0a6cb9d0a3ad51659a146c08bf66343a78960e37c76ed3606bdc9c2fc48ec83aa81e1bc0e0ca956380c8630a756709565396cacbf015fb130932b94194b7007ce344bc6473acb16135f646296bc996062526258e0c5407f3dc47613221a4d45e3aaa274cd91d72b553152a8b4e102a64299d138468b0fb89d0b98e4896ceff0a1a2e20271f139147967ea2568d9b90129e3219ddd2884823702519acb3cc9d91a112718ba91b8411777c74606c5050187bf107a83cc6a64a51ba8a5580099bcf07c7a645039765995d4df27266f6a7806c06574c7e3138a76897b344596447453b822243d1b43d25026159145282d4893968ba8168bb4b3974a1a6b63cc567cb7c212efc084155b41f957f85881795f1a8297c125532bd29452755870a189a4b98677cb3092756615cf4686c8eda1c19282848ebc736993353b14497d02c5c27049e500746e2bea6009f3ed36a830cc555c76000986cb41a94af965446d5915910b3142c926f703658f6c1197ac72325632d5775ed76be9cfa419994a4955138cf57a9f7142fb109ce06948b28f804dd7c5eb3408d8f86b83ea5391270c8014907d2508a63a4842bb4c8f6e98dbc2766fcd02ec72a7fbaf386d660b865165eae06b6730323d2593e4fd7426cc09af4e14595a3152fbc4271371491533aa8059497dc90293bcc9aa9689db40321a66a34361d9900ac6dd5398c35cecaaab613689d18b89c637a6778dabcd428237e8b0e77c5314d07544e878a50e4cbd2bca07c0c4a8ae1c885da16ee214dd20b0903e7ba3229a8674457077447a867769e0a359487b69fba5c14db922b2973b79a98e1b6280cc59a7c20317fa4290a1b74b8864222765bf2f844bfc8196c4128cd4a6a49601cb985b34780aa3cab0723b4810e61831a1a4582526e46b5ba9074054aec0283e89e4d68227b69bd1b23af80470aebe38f712b8fb1fa0d72e8032a107207c747056b94f235a664d6b2887ca709967d6cc61eec47c2a5f55ed84b48d84049bf9852a4251841b81340008e7b70ce486b6085f7a666f2b7a956c9f393557d535faba8b6de77b3db477901b8183655025c8311c7687564e8420df0917bd27070837f64b85e23a0c43f8848abc42e2590137e2a1c8eb8bc3b5ac54d0a6924742c705ab5ed64393ae4beab2687f941a443b90296c902fa1b52f74c336ca40ffdf27ca1da0ccf3337a90b38e035263b731afe61105229c149f78758eb840559b68038c398a920ccd20a8e38308c559c1550357df4ae9724925e190fe55909f38914b128849bba7e8e61130454744c9a12490b7a50733791e3086865abcf7b5df8c0a20ef54d738034972367f1f0723c57c074f1c1df881f073235a496431e865ab5555c789243e3011e4fd0349a282b582cca1aec85255976cfc6b576708b90136132022c52747facfa1def718c28878629a86da0cbc7f60b68002da2f0cbbc21448e724559b7ea3be7365c03167bbd2c0c2ab5a5771c88212a4505a5ca8daa3910922cd0233786b43fedb091b754480669b23cb388b751bc56f2594fa57f836b9cd87a1de0697b000a269a4b7a0e59386ca22685370a1d42852dd78d55b8b1ec68241e5a18e08941f8790681b96943f758dd82c032a786757b680c5a1222e1a0f7416e7ad185cf46c46a20a24402975f62086f082fe29765e45c9760e53528588412e4191e49bde2b66ff37232310793eb21849e92854c66974f2a099958ccb51815c7f47eda295122007448d771b995347ad1948203a70de40b570ab4b535bca8a721ec833c36cab579585409d79156d279af994b9b3676b4cca4372965b59377788547822319f4c698f3419cf4434653829510a91df64b05cb3a21d0d7560d271abf2884bcb57c468b2b0b4a64b738b3e2b5b9f7f10c94f0b9a8379c09b695cd3519bad934ee70ae99a1ccec52a005a601dee3957ea66c5b41ad16312acca2ad1061a98692b5a13534f26936fc255692003f285899fe560c8aecbceae657eaab75dbaa2c036a7c9f3295b0d966613a8c26c5be6e47492cbcb85ee55120d865b851963ae2aaa8d47937f2849e311b46cb4bac114b7bcc1e4fc70bf06b7effb958393bcecf049ad6a73f3c9742a36ab9ebba211d37b002fa375c81674013bb1a3307f5bc7733761e97184e6a9a6d65251ec303581af6a15181018f32b1107c619d25035013081496c49915b90b0b2f4db395b3f00e212cae0d5203a2e97f0e8479ecc6c70513499a67770b633eade88d86a7b538db8e812b6e8a7b0474022ddfd99819475b3491a5a5e9a95923cb7b49cf3aeb98ca8154f6394aa734a229cb15db973c191a7f9e6290847a185c0a9b2325729644c0e74b7a3ff4b58f482ee2605395ea7f650cc04d673e68320438bb6d4abc04c3931844c77cd9b92bf3ccc95bec3bea2b0b6ef6c23e694db9a8adb9bb087403a311f197597870f4d40213b91fd6e66403282508e9bd7aa6b6d33c20ef1c1ff1850f565c299eb23c88d352bbcc339de0b3986741bc7590a57a3c150586c59f6aab7c38691828aa406e3014db8bb8897eb3adeb205bc764cc05febdd7476d0239075876271f3da24193c5224290c391b7 +ciphertext: 3ea40be7b4de855ca9f88f691b9d379381d7d7c0384269672e1251f701397ab5aa4d077e70fac30c6a3ffef7701a1a6261a795912ff23436340b3b1288f54754f34af4a06e87b24b96402a90307587e7ff855bc4489afd38b0fa848f11fb9b958a334de85832ab39239fa7ecb1c4785d211f50406d7e949bba8f0717dff21e97d115a52620050050a52235ce3704863a2acb541360f8e1c1db82aec2380df56ef2fbec1369414d654f73b181d45fa2c26a316aba8ecae7e9650fc2171e85281c6cb2efcaead593d247ab0c1d5b5dc882f2ea4d2ba76814ce57ce1593b0357b51c847760fc254bd22b5c1a8be1c7f2f82a68f37b2c28fc6a88b7daecedc7f50953c4c63f8333c0f7a046f0c9ea7a02ebd9e484ae1bc24b2015f1c4a5e6080b7f8c13ae8e077017343e639f135639ed20845d98137b39f42703db8d4ed27de589f60fd8a1513a842e9786c5f4b3680f3505200c2bb2e3fd6728b8386f0f2760e51e3612e6be280356aa4155f1b936e3a13e189d09643d2a0d1f74760a17fa76fb2142a66f20bd57f21c6876b2a4b7402970e314d2148e67c3034bf92739969ba3fbf3a3bf4920b293c4efb016377412fead775e1f0b88716384d0c4dbde057b5520419ec5959d7253b354be5524cbdf4ffa26e0b42d97160453d362f17e9c1ce8ef199f7f6b9e0590925e2961e0d717281d4032f1ac5451661179f05ffdbde73c6f8cc72b619239f05ee6b53109ab7cb7b7a672d1ae8e1a0bb83e716b8691c64b85d6a21611083ea7567363456d7987748afd8bb92bc46ee55208be977ed73898f8312497d65e46e107cbeae6520ddd8b487977935b75353b1bf769a5f06208a445939ae27bbd7270cca7b23b50fdd4550dae89d35a9871d75ddcc6074e8659049e36a7a005117d87bc8a6613492395798050d86b1b93da151651ccfb45ba4ce6c6d8297d26dad5e8274ea18a2a716742499ef849b183962bd6d27511805b7505ba8a2b40c8ad06b54ed6584678ea46b73bf502d4372484916676fece771576c7154cc217738a4fad3a7148d433d9ab3d5a514da3e014b36556de1847f5628ad6ccf313bf45e51a13ae96c0ec1fd3c3e91dd08dd5114fc21850aba1310374dd48dd4651d16bcce2816cb958ad698d0ba1ff0d5dfbf6c180a49102ba3feee1d683dbe0fd57ef3b8ccbedb49721fdca79ad5e32d80779171f29eea35cae409ded2bc0725057fd401b8b1a243c54bb0d499e313629254b0cb1d828b464807e6792c94b92b7343aaf7b6cffbd2191e1def9a5df5f6b4cc87042491a2f48b656121281cb70a70deebc1d9240f128d98209e1ad3c5ef7cea152ae187d74b505671460398e63ac684458b5cdb02cc60906e23fa3caf48ee21e12ab20e63ccb93324b3771caaacb5a62c8a74c5bd15a9ea22538c49c6ae51f7418116dfe136584a4b30547ef2357c44f8f08d0655639234bb6e2c8d15c85e96d733bd9a51045c040c3789cbdbbc826f31f4838ca4b55ffb4e08ac625b3c2df69ce050cc778cefe2913a3f5aba12419ca92e04cdfc85c6cfb392612e0ed9a52a05dea96713b9310fef7912758614d1dc925b338244ac768cd17a9c1e95d4a28dca29bd876250976e82b0a570a1fb5cc880cc21d8b41d562d521635c497e899e055966f57446dd1ad63aac04e198ac532bb08dbb2522fae4d58fdb90f36e6d0ca457b26dde2b631acbc0163a28565c6332eb56d5eb6051768883a1a128c271f8f40ffac1f103cbc9720bdb15ff315b7230c6b89e4168345f905270c78c8e2fbd44a656e70e45796e0d25bb810c07e3319edd8a4c5c288707a6cda661933700659cd080726683ae8b77ef3e14f727543e71df6d6f51d5a4754298e4368cabaad20c44cb6dd0ade6bc3d8bbd4502ccd2b11967fe3f0b8c15c5dbcc72943de87c34a86ab0597d6d8aea46369d4354c7debae40d8bdbfa499d7c696fc8d56267176e3dec277dfc20680fc081c62a65df8df6575277e0b2af71972a11e4fcb396f00c15c2ed317ac56a2a73c8e962be7215bb1869458d026889467ea8648db7254d06bc8ffcdb9a7a7722f5f89f01dfdec4426ed51267dc22e430f1845ea372d1ca262817ab0c4f3e80faf4dffebaa8b1f27f39f772f1cf1528b12642fc467b0a76e57b9defd96f11fed6f4a969174decbb2ddec13caa0b0045f80a16a1143ebb15c0f05ccbc738c51028e8da1a868 +result: pass +shared_secret: 60a4628136ad673ff18dbdc57d04f5ec2bb90309205f7da63cba018001ec8f28 + +# Bit flipped ciphertext +private_key: f53092aa0c974dd37915b12d13747ee5ba65b74507d334a657415717446c0bc63f8532c43d7cae65e222e3453bf1bc50975433d76515ac893a05e28d9396c06bd3ac56d03e4f3707fdd32f98d99b19940203780b91c50a94b8a24a264115f5c3a42c58493aa6cc42505ac175c2111401208185e180a1c6c1fb0328f4c9a541f1c9b3fc30cb08a6125809e289155a2c48bf73a47fca353579054123bf00a37e50c616ec9517e9820928b68bfffcc6b319a95ef0613eda21820b2a39897fefab640b105c40106273205d96278c588885e3f94be75899106a8a64496e4747079c248f161c4594557825e673dff86a7da4080aa079e0135c0159589b65adfee218fe3567f0567dcf67aa02308c007027934832960b71b088432d357477a6b837b86fd93a7779496754cc498a2a90a5e430a693879ccb7f3ba2214e96c49ed264c23c10c3383785f0c450060424a54f3d19b5608561394c49c368bc543c8565aba08d4706d07125289248de9c40ea52cff22a4472cb7095c91b1af3205a72282a5214ff148cf4814b725c88a092392a288f73776af3c026fadc821132c4c348a89bf63488639e557b6853702ed503b7290891ec3a6b0f8a7f5af100a818a34f104f14331a9090a6a262434c134a80b3133d360e5195940874188571145d983f0de818d07804fabb3a06d26ab227824cfa99ffa9c21e129710d1429f01ac67e39a83b2953faa9116207cb5c228beac1b6b6bb624c75141eacb8a3c106808906d56c298b62eeaf374ccc930b0c1ccfc54a7b953c6c741477795872c03180dd18f6bfb55c33738d2d54849db67a7c6ace4e9b9fc6a330dc1cab626acef2841ce71832a7143c722955d33c2baf906b314b37f5aba5d7c3acd5b705481b80b81b48fc9187ce3aa3dd7683c987ee00964e622000eb9ccded809db6b2d40e1af876bb237d8915a4c48d58b2e0ec76159ac03da5641ae29615bf20b502a42f68b38913baf18fa1fc1b112854b229db36bd3685560360452d72ed1c1bacf403426d5518b8876a2944496bbb64ce5788c958f4327b20060313c75059198c6ff5c85cc8c37de738d1339a2c665b939222edf64a87ea26956389ba5a5016f776944c70193bc000bca2420c2227ad171f4a5a23733c3dff1638b3695f2db870213c3e1d4b922502e0a74bce9347aec06620948b640105879d599d550b6c00907a7707b35a673daec1d7846b8ec3a0507c02512380a59b1531153a150d510d2069ed177257dd6b206901d12b8bb95b5aa9e34016bb462eba973efc2c0c5d08c7f8b1b2b30c2ad458e76524f36a62763f11a61928fb1747e4e277060c98648315ae2f3c8d6527d5ce62169041603733e7166adf27c43a5a03c7271a8c765c852c652eb1139f6836669e5af9667070e4a26fd737670620f33e49ffa105f07d0bbb1f3aa30764422072cb139a5808131188391627969f1d39d861045831a9555e3817707b26835781afb3c19bc6d78c91d2d7963136371ac0c071d5c44329b0bd26c81ed3a3c4d5b8540d81a2c5c66d935751a248c2ff0560da49cafd63ce5d49ef80b37ba34517452c9d1552865f0c24a8930e4b625a412283b2b8da87880aa40969f1a99935bacc633c1c9f28ffa17676eda2c3e7969f138ca12c84d087883e47371bb5b464c635412696f21b565c53113d0cb75710111c06b6ff2bcc62f0c651ca05614e5694d4295337834dd84341d59b8e3d6548595829487a098cb8cd4761899fc588c50867b8ac79aabb012660decc16bb3b23074d54152e045e426ccdb7b5290b9175f332906c86a9df92ad4222fbad929181537e3d49565d09bb72167b958c7608945fc21abb4b2b51e300627281d9e8b4a303aca387983e15b1ddd17a0f9d63b26fc1e3630458e1cb63e035608c58a395283d44b2da7c345aaabbe81d26137bc710c62b5224445627cc5486c95b83945626b7eb891299c7a75ba53492a97063351bf371a60c1e32b9d267b1d569b1931a1f83b3da875a50f6300c9e9b76c438f6a60cef99b7f2e14b224672d00655a16c6742ac70aa5a5215189855fa98166079f9c5245915437eff029e538cd01f3994550c7b4652d81620420e60c9f897c48b345cfe8586f144aa319c39b726846a89817f5a306196a9c6707ca9bc4f5c6b053218c2c4a5d7b9ac0cc4521bb63b6707350ab086569278d50fca71a0a9d9fa829e4130175e17b182ac8a060b10c1ca935838f08391a7208c853392ba13293f0101e75596816b24c3b3a433bb823d32bba17887cbda7b20761035df39931a182238009d5f836be528258dcc46f1cb7b7e628556704dc688f45d48a7d894b88c81bcd3a144422c70253338b933f2b2702fd41639a702469387d61420ee5bcaa569324db3b1946b10ab6ca6a73f02c128b81c2bc7f9f8685bda4858e074723c38378003288b8b5a35cbd9343afaa96cdedeaadacdbc6d1533f17230a3ab142dbf156adf3c9dbd955575b3fdb19c80f4562b852518da721e00b678e17621f619c9258172b4181004a3d690085cd4864158a23bb5a23e9e49b2422377e59a97c640a56225ee6ba99e711b25214174f91793c8c0d15f280367b0d711730f0d73e04949c86300fe1c526b3b04588221990d60fde89b559397b69535b1e00ba32c611f9561724717fb3b8aa46212e291770293a44baf75eabd012849182237c772fb4cdd70593dde42954bbc2fbc26f5fbcae029917b0529083fc226da55379f54dc7d3a45188bcdeb726912ca8c1b1376fc6221ac4c97fe5c32dc472f2660cf35c72df2382c0e13bba2989c736148a17bfbdacce1420049b0b8d10555f42985996419cd95166bca79fd8363b9731273e7961d34446fb348e0010c41ed420b58724a1992096636623e8a4d8972cb3041d0a0395d0941c03234447f567a819b763e6a44e69cb0864b424747b8b67ceb8169697351e1bbb81c3f534bd5a87fd781b2b3c3267f9808f753e71c419762583b58b242b332239e34bfe186894a410341881d9f25fa55bacc21172a59c42d19988a5911b1650622929a280f1bb3f4b272fdb542fb23da9d5088c3a69f4d5117ef744c48c64a2a9c5b1d47d080394fc90244f94c01933af9e0cb7fa73a2f945aa538bb4d5100c160c901e9833b96314c7e50bec969303bc61c4331728a7b04ce0173b3639fa76ad29958247754491354601cb6622bb80f0b864ac36c4b744a6c89880dcfc4040c761a0d5bf1cc4ac431041f148a93f640cd3273b43bb27fa799fc514572ad6245c754dec0c8a5b7c7a933ba04821a747f89e7c29273c4508aacb9e4be00836a929feeb2c2fc96e79317c82c55162948302f18784c6cdd58b74d556272274072b2c9413f77507fac1cd040102a22c76b7b11a2b0e78d313110283cc29c52067b20e54a0409779f56126176381e983523f794d95284244177e8fe9342be9957c50616ba4bb63a858fce835f8e28543883894f40b171301a3009fd4299feb2649e2531960280f9660b0525b1dcde99fa7a19421385fc24bc0ab208e40ec73aad03625c447a0a7c25bd175ae8a1dec4230e06273bf48448db28cad2bcce7357daf5509222b04b344c22c853502c368c3163f24aa2f85390f712b4c2bb5c118887d5af8a1b6b5c235005c13bbc6398c778a2871bed7b2b1c40706c3c2ce484602a74f8b7091f0fc023ed59789fba6eb07291b270be7312cccd25933f09b37802add109f8f139bd8f7387ec94ee1c87b48159ce4fcbef8741f06d875ad51884017bf5d64a68b230f2aac5f24708362ca5018aa898dc6adcff568b22254fd2b0c94ba5308c536ed838918d7386565b13f9094f02a2442fc9cb7d0cd587264d02750d0c9a7a5525cda939b1a4186914b525889bbbcea970438018bf83603e6c74d967481e14288687f9762aa54885af431c32619170cb1772579c15965c5c7accd16811675515cc78283b56ab031c0b619376c93857b77ba3f54e5708ca0628c13012de515d3eca4c753b02dc60c8b193b04575a5f535b758120138229bbaa76840b8afd9c3ff3e11bc6845c00a04a63c9a4055c513453ced8f71b05103bfb15bf3ccc38d4d62b58f3201845ceaf02ba93fa88f8d8712af290eefa83f5835a69bbcd19d38fef977b7d2766db933dd3dc733fbb3170357a708a90b97c45fe311f8bb7ae2ab3967b697b8d8459e3a709cb392d12027dd2325a372b72c1c2629ee776b9e067feea6868ec77a4e1bb62d39099259efac63a7a2149b9fab582a15473065d7af18e96133bef6221db398f7b39c63e0b7812a1653247033bdab5e56c6b6c513439b2321a7439492994060ba46b63cc01eb70e3da27d8019b089badd5cb8c018689847179dfc75e9719dbfaa0be77afff58f873ab1374758b06e0d8fcccd1796175706da8cf303fff0f9c76b5d09a71fcc1ee57bcc8d7d66ac6eb6f840e8dc361042af2b5380b7a10ca11a8a4b34f457109e02abc16 +ciphertext: c9db278199428cdcf3b8d175d610d3376c2a24e19c196ee5292a9747830e4d5cf06f1d340799e95838d9adecb23ad3c24f15fceb48118e98d55ca419a4021ba73037f707cc23b8e3dce2d14053af739dbb7b738d4b4f5e837bc19039f72685217a987276d78c15d2790a601a014c42cf66254120338fe7cc912180ead70852ca5d0ef2629c1e8e94cb49c91e99e81030655325bbf7e6f7174ebaccb9d333fbd22d9e6f1dc6258f12b9f042822331be41a52499b820a11a8a652dcde657e03e395c33f26c75990c9884f7d4c1f44d51a134dfa3f5d6019f019742f5521723ac2280ba3e6dec584ab758d424344481b16151f7a5dfba772055357f735c27d1c7c20e790d28599d422b4559b4a40af8a0814ee5ea905105937c480ff6ecf26c50025420681f6f4e660075467737c07a73691e247c740495564eb1542c4d5b5e5e7d69ecec034e7e57d5513fc7b6333d84224bd333be86eb7ac5a223c70fed53e8289ff6cfccaf637804b459bfca5fd92909c0ec804ca66c0b1bf12a7d19db5da234a930412a1660491aa685147b2e853c0a27dcb86360c684369152ac624890e81e55db583b7ef160684564c6617a904555ff969a1737305a26dc918b25230fbbe1e8617e969e913a1f77f3b7e693fd697f3d6cb00453ba4e729b762fb2bbed94cfb5c1385f9b9b79b4133734b002c9d1c15785a3e8a2dc9420880481c35ef4c333999e55a93ce3ab5cffd86808cd2b5d40100522a238010dd029d0ac6ae0baf3c28a9f3a3783c85c96913b31eecdfd0a0928f5af51cdbd9d6cdaeb9b1dca8b27b59a58c6ccee22c25779389326585e9353fa136b3d5e8900dca57b23d16bab1522ff076d049d5451faf2c1eb734a6aab09aeb924653559e5edc84fc80cfe2bdae5300ff6ccf39c7fa26e3c61fb58921d0a49e484bc135a93e87bb89870f4d71a305fc08a1a85ba6b0684ec953911898ffc9ed0674c5cc4916af88b89955dfde52c2f23bb6a2f1c26087a81ffe8ce63715c8d411838114d056a5b73e0a15de43f3aac5363f81fbe51cb64fe1f8ea625a1a9763a35c6ab0cef149cf35176db963b621c4920093488a7ab747b5ae66c09b5c6f9177a0c6ddf27e3986def2a169b784c0e7c81dd5385e0898e43b0c25e78a67b18cea1b9df5e5e492ac092066f23d3ed0fa09c26dc323d1c19c6e486de451de0cb8583c1063dca2483e4dc11612107063516533e9f323e6dddcc065bdbe693cf5cce72f42d8a46ffc78bf9ffd88ca670d3087d91cecc6a6e6d4f227eb44afc2bedeb4cce20ef00db93a340369a386a15601270b8439a19e9278f265d1dbfe01a3f0b3123d309d91d97bfbbd8307e245cc19ab457b34ed410cf4b44714877cea2a0019e975aac83d02fb0d454afdc54f3ca7ecd8e1c787bf15f278b6480c80bac3fc4802815e4017e190c565d4563e4e313d8fdfe55f41d5c3aaeeea508b0883061fa11ad9769f9144090b778ff2f1fbc46fc3fff159963e11bcab0a0022de7eff562bc46d39943cda429818cb927185336e5aa1eddf3e55225e8a7ea365e4cf4deb1b0bdab2c6702c329209175b5b4934e91397e746193a086a304f90954691696be3e0dd433e005185c783163a197fcac78e26743ae4ac6b6de0c834e40727a1f849de2ef442293b906b44af37a015eab65ccc7951cc0ac3eb34acce2af4256b09ce9397fdf56f5321103ecea96515736cf5971d2e86c0bd2b0b8ff0dff29aa6dc74f02a2f1f51f9ecb1853a7c1cc097778a2768abacae3b9a7be72fdf0af539cc22592a0bbb5aa4b4d77c6f39405c7d5776410314cc97db1fea6fa6266a8b64be59c6587ed2431ce64e5c2c4de477df7fdbe4bed22b51ace0ff862214be6e8387a5e176be0042c3361e8774ff387cf0815bab1390e656cd36714d7743302581ea5ef7a141d9d6fd0747970ea9402e6557df8ae8164d33e29c8fec3cd1c59be99b729cdb181554f427c4db211dee7f3d71e924ebf759564fefd3882d418941bd2c3d98f73e0ffdf25c14b38482b49184f3a4308bbd30fdb83e3d57f841dac6052df16b343d808eaceaef82fdad1793381bd67c532b7d865352c3133725716e2313e48faa4b9eceaf4c13d7b2af93951da7718011108cb9eb960700d2954cefd2e699cffb3997b1fb5a75868a5f034b1398497d0297ba9025fd02b64e20f5ef525697c0925e6acf6a1aab01f5bbe83c1 +result: pass +shared_secret: 51fad159d6afe93e47d7a326629756b974f26e752c6ff0d078d23e7e30171bf6 + +# Bit flipped ciphertext +private_key: 7313735134aa7c548e7180116ffc344c783859f47261c98347519d51891b7d441255f8bdf45542705b0cb13911f1538f75258903e16fc89a4bc7cbb87e530f359a4355fa900bc625b51750ba71108ffac9a6e4063a716bc988428fd4aa69db5a43b08b4971693e741d82b79053083ba927a1f25609d194c32735360f795dfca859608845f4144566a5135bcc0c4304988479a47fa1b877e0ae866016dd437b13fb7e0c26bd11aa8c1c358d8c8146f2f716cfb10432422c0fd5cdacda365518ac4fe5449d3b538c6058f1633f2c7145d6361fc1f27af09a7e87c75436969ff431b0cd153d4011710908b276d62b2fd93e93f5b2a9796be4923a5b13b464297c208c20c577b869782f4d562275d41957b4bbb9e9866ca2719ad6776c457d176439e7dc5cead63438aa6fb4b5711107852b96738719707260044c2bcd1d8c1af01702a565b3e3d1a5db432ba05c88e93008066c2074e16a96eb29cd02b539e7756ea6bfdbe99822d294e5d0a78bcc0b7bc90fa8e4b1971c3b02799160da6acf1262f7941557b8c661f20eb915109850ab959b3fad261c8008a5e666ac02d19f7ba99d5937c53a51036ce15133b8bf5c4340d543baec841ed8e6ceb3366953bbc6530893c0c0c9e6763453d7c06e96bc73961631c456bf981b9d8a884cd87fc827a95f16c8131849a231cdd76a69f4f2423ba43c95515cae623423e242f3b08caf80362a2b9e8cc4a99df53d71a8c569156a5587ce8671bce68721615b57e41927ef270395f493ff4ab6ad44703af6a52d4a277f56be69ba2dea59964181acbfb450bdb17255726802ea99d064536470c98cd0ae3150b14e4789eba9940ffc4da0e39fa13bbed1785f761a9cbcb50a366141dd0bcaae7090b05b72a4eb8bae03c0a7707a66463f046445ea302cf58346763336cfc2a47a275106c818c6b10f4f41987004670a6a11ec7083fec99f209b8188222596d65e07bac975f90f34573e08c6c5fe92382bd4628923a4a3e9735253be20495fde4436e1e71428d424c283c77c6c261dc62010d8103deb1ca2334d37230d814a159ee48a37d02fdf0c8c01313bf7b8bba66392ef061225c70a7c71091ce90d05a1ac4594b3d5428416082003a810aa6b34e6d2afdbba4d322a2c5d608a80616737a98c1933b9afb20a7b1b33eb496f0a651bcde97df276b7e1a92c7429b85f3388b28467c063a67f5960436c2b0642031b01bbac058b08a8a2b9ac5f16f6a3a3914ccd170003362392a7aa67c7c04b8695449324eae0aa74bcbb60d984e7dc44aba6a49ca1c41977a8ae5b1899727c98b4ce7eb14141eb8bd2d01a641574ff809764d7317a2070fef0cbbd5c1535556fade5ca9597b95e785a34f72f74d8162dd17f4c4a4fa3d1410c112916f64a1f7abd674b6523f77c3ad9142bab3481cc9c639109b8cb1b5429b40f221ade5acc1d66202150c9d55638ff83871a6c0ea4606a437ba6ecc543e3f6b2601012c692b380fa3d905a683b400426b890334a9c0c6b1124a71654e3681b0697c3a2caa3e1539abc3a078b15952a25aa275e5c25372a302d1cba6a980b70b5c8587a65ca0a1ca51c0abe17521a112a4ca374cab554b594824e489064df525c9d71a13b37a33f0414d710917fe40166dc37a8e233148819351996aa1ca064b07bee4b38f5417c5b4b03a8b27bba5b6ad4037adc51c38392371da5a33ed119206656ee7a5e87b8a6d8a2bd06b637994305204b2c229002cddc751364b783742c82ba0d5edc9ac471cf2c5877bc833aeb1ca95c5a8074b33592524ab609bedeb98e11abc5fa489f807aaf8c89c109c0831ae50aff4c054b6a48a64b9f1f952cc4a4121c37566e31849d6c619ac36307151d1c163a4f886502479259332418f1082d5b9c2aacbefa2ab655f02390c083be2877a4615d1de5a1dfd1b34ff32a15d121a9877ad68a1e839582df283f78d8b1d5f5a83b8681c026cd7d793e20d96f32c3acc1511bc0fa810fd98ae2e586de2312a845a61c0a99759560945c72880b59618153139b3ccb23a6f7c0835e60ad34757d48fba8fcb758b37489074202ba441747b1a3082834904322d782703e38b5ac1b7b79c1bf1faaa8431702b794ce9204008b3679b1c518ced18dfbab91e69555fed681fc2bace453b1c3c6039113ce9583100f875035056a7562c3d7864b620558f95bbc7f4cb0268932d12b3f917ac57e954e9a201e5b20a682a9935dc6a3a3469940250023655cacec865f38cde6a32191d7a04e484909b105771a2a6f817a1728ba9b9151fe63a07f077669a87b7d08a20c64cb5ce560b3660906a3357ee94ad90519043b5514fa6e830b658b9b298fb59ef964bc11986ca60c47b5b8a7558b6a3861492fc8aa030539dd6669959576e725ae7f580220a43a38933bc26a82d9d632ca708d3ec29d92453757315c10860709c690e1ca3fdc0701c6d90906215b905b6bad831100c6648f5126080a0d74719aaff13c51ac64d40147be1b21ed2237a337cfcadc4960f29c62135fe996c04f497b697b1155b2bdbe4b002c7c0bfd509c6dc390b6021cd266930dc256ba127d4e0377f3417cbd5a4f94cc092f6c0c0d22add2086c5651843d14043e733fc3e4c8d75c21c8eb3b5fa767c88a2ee3f91cc1b8a8cb99caa44b79f4f906e2f15c85669e69dc6de20591415338c2393d9b855c38974434175d9ceb6253f20a5128ac4ef4b2b294806da296c5f85ac5d54b2dc40f8877a2adb8412a17319d19af9f50c4fee3b527065f5e528072e1c2d3852f4b294058674ae8673fb08a4df6e757edfc1b86548f2c4104457b0fc3d4c7b71a43caf628d562634974a7a4ca3620a8b98e328105116da61a4d2d7733216725b6611eafcc74a7f6c168f2874e56c18913427f122b44788b322c5def07b4e8a94f1c269be05252270128cf7792e56a45d1e1160b042ce4a88f1388cdc72a00057594b2378bec0899742b1c5db9861c703bcb3ab69c2a4e13248846062b5f997aa1cb09ad878c660a31b13bb482419f37a87b10b20fbfc5080d5bc8a94055e2c84da54171e5eb50ac68c3f6431d6d173283203371dcb188e9bb03fa3a3bcbb975229e5d4523085872f75797d04542434351b743b535f06bbbdc8349e0bbf2364b62324513cab79c8c59d611b6afa694cbf4576d2b7a05fc363482a2a61776fd2c2273f063563c99338b7d019cb70c715ee5176e39f58ba704cd46a65a592866da66968b2b7973488e16a517dfc42efb19c08676b102536d4bb3cc75e2936fc76fee9853c881144949b373b3717bb9cccb6c43e26b50f2d6c4d44a8932d2c9eb4bbba2f9caac975170d821d61ca133c376df30740e185469f998fa488b3523b029b1a45f753ec80b1c7373cb3911244792a8c80a9594767d1154c5920136134c5c6af81799e96765503a8a95ae990474abd36ecf434d639115d7ac78ea249ef3e41231f1cd86e805c7436c19f92903b9631e3c0401a6499bf243cd4648a5cb319be9189d2c19cd40c637db76a5e9bbaeb42c47263cfaf6cb523c568d89a8418730d346170e5463a38027d56b35b8c45196534059a3029cb4bafc32877c562f2c8c784f924166d85abaeaa421e572a944ce376093d21189bfbb689a9a246a4524428c615caa41cee7aa30aa69f5a52ac551b09ce0373f139e2885be2d52afadb85e26a967502a120afccf06274bfe7273d65bc525d7b280898e46e68777927aefd217adf4834ba388f4f9901aaac200289c098317f4d460fed38f61a69f15d146ea070195864fd22502d8551cdfe83153c316153249fa71304879201bf0481943cb8a1138cc206ede4515d4433a4267b6c771c9bd9abcf5f93959abc757e9b8b5b018f08842bcec4b67441c3220abd3326d5ffb61f3ec867e7878c8aba01326a3f212671c03a086b836cc893407f33b82853bb0e803a61775b18990860c060e1b7d73b0573613a6fe936a0b54b27904bf9469b81db5a4e98731db89cea23932fef72fd482b2d5831e7483174c7c87c9740fd513188d3b7f36304882212a20f57bbf99244bd51f8d94b9d7948ca74914afa1c6d01869ea420d5cf618d8bc00e2e05ff5306bb62103c284868aa8b6ae68ca95b9cf1134546e0187fa139ca550510ad43bbc07241967ca26ea97deb9aceef05015e42acb4c1d4a4c72fb9a74b8b2976fd0cdfcec54c918bc44e07e90b26a11725a3c4607bbaabd642b014d7b1aac35c88cf9839bbc872d488bb816ac79230e35b5a2f5aa31126b3b90d89f4ad684f26ab5728763b52258f20bcd26566d83740014b657e7751dbae71525205380159318c1a2816508f64385d39852b6ab4b423abf1fcead78a7f4ea79d557a785751ca09105a45dac6292afe405b9dac9715dafd031f235a2cbb90e47ef873a381dba1fb05ac7f3872fdb83da0a7de9d1f7a13bd8d2048407bb7f55a1ad1c2d427a500589c54c269e7ac90345cbd419bbb73599dc +ciphertext: 836b728e21da1d7da5bc5aac17c020a4c3762ce51e23b962b859331142ffa7a26ea47e3aba3232e0a62d5140fea056ce4f9afcd9692801975b639dbafe09e801e509f7516189ac997de8ca87a26b0752a1fc1f77a484be1c7661003d64e2f7304c77b04dfcffbae242e63ad0eb15e08e0779133731062751446084f156ca32c6f16da398abf07020658bdb226e46953fe45eea177805b783cff4654d78b67deb224d779297288b7874d8cfc4bc04fd21a0452d75b5e776f3444041110765ef26782b03a0d15460c300956d31778e717c8b6e81d477c2901be596e3857a0ef981a067770f0aff1259b9da6a7d7cfc740dcbfb41df9d4035302f32bc9a433cefa4592fc4681a0a2342d23110239e90c584406ef17dff97ad970ae77994d1b15471ee7c1d20d523ffbfc5d04e10aede8d46353b95052e9916d341c1997a05d319e976c6da858053a0dd90a9d5535dc93097165ef3670d76ed62fc252b2a4e4c9d6d5129c35128832a6ba64a744355e3af1e09132fb85b681b941afc68f0b8bf57333f1f8828f8c4f477c34171542e7522952f938a249a22b6313fc2e88aea073fa6cfe86b978e08e62ccfe023e16b71d45e378a9dd73446e400ac602d1fb4e367685d7c94ee076f7aa9321580db171384dc7320918f9c4c9c44bcc5ba7fa3b72a63eae8ad5110b1a0cc8a75e811de3dfe92dd12c86d302dbaddddfebda4c93fb0395665b219d13da974455c0fcbb7f52432d30da3bd2f13f16fdfe26fcc86ebed83bff43c617308beebd6088f0ffe2fe57c911bc36c9514ef6d702b7daabc743cf021913975671cd03e9df0159467e66764eed5c8f8020a01b75b2b15d3f118252585d2d2968fa3e9626fe8dee2b74ae36ccf7a3dc3fcaa13799cd4536392747d0c36d4061c8b6d9e87e01fe322d51ef68998ea96c15ac3d5f058066238f9897903ed890a6f793ca68757e918e531d9567aecda4e98d40490bc0bc769823252220d18dcb9e16db1596bf631b459009fe1fe0cfbd8cc9c8b2b52f178f343089382c0b9a70ad1c15f1e05bb6e1a75be29d5a34725181c7eae35d8ae453bd245467c7d2c6e0eb60f0603a140268d574dd6ef53ff1ea4c6abe9a57695c93aaae464d4df3c5de7c7005c07e767cb4e08880646beb3d08f1087545fe1d75b0393791b5ebba3b9e83df5852bb9ddde2946af31de5a019b6ac872001ee9dc0eed32682763c2ddf22698b87d94d2df33d193a1b3e4aa1996bb0e9b4804889e051f111df2cc1635aa9f1cd38a36c8a127f95b51b74520dc5a41fa0f0ec59fa6a41887e08183b4625b8943f1f7d23f5ff2c150e4cb9a0e7479664792eb62c24e06746a35e385de0694fc7a34430fe4a095432e976ead49595511b60c62c73f6b48c311c886049ff6d7972e4942405c5abebcaabd97e6d941b6158e0ec5cf7f8ce25459a522ff4284b75a5d22fc5ff299e5ae0d45238131137f23aa2aad4bc4fbccebe01f0bcda2cbe31a19bd316d70619ebc16e099287c8cc291b2b1805eb22a2b72e072014be16ae4a891b20e196cb6337c1ed6028be361ae82fe58ebe2f14733a09cad9302162bb3d2b1a211d88c3d468ac08812ce48db9d1eb6005bc7db84f29e8f11f188afec2bc45d1a0f1a5b120ba1adab5ab51cd7e6bc10f7d289d019f489308437488026981e5db6ce7a42bbc6a4ea20ec0b22004f3e8fa08cac4964cd69e13610e2549b99da4f6c30da4996113f730c8918a1a0c4b0c5a3939304c9e546fc278ae7178a321a4f92e14d55d46747094fdb0cd9aa49b1b807b315c81727e3d5391ff607b84b6f486c705d9518e646f5aa0da9e239299e74d1d5d533f0348c8c1496a575535d500922d11d6de7bb342e63a1ffbf9d87d25fe0fb28a5b8b30a37aa578a3ada690eddc141ed5674b80cc7decd8e070a7dc660b4f7b82283ff911ba56cc8c8212e903b5e1ef7db5b457a0cb917433bc5ccaa5f2aeeaddfce9de0fca5e2a97d773ebf7218b6195b7b07413e064ddace42e3821392910696a5a3af9c85d73da860e4937e012147c85548d058ce53ff952e1b4f6dbf5791be4bc2a37928ba61f4677e8fdbbc71009649e424063d2b7fc88a72569820763f25ad05b27a76ed0a08f7d6032021c4f3bc38be599dffd6210bedb57ce26e41142f1e2054864dc891008e1fc4471187fcabadec12d20168c078ecb299489581d8aeea354e7977b25a74 +result: pass +shared_secret: 93613598b6bb7f77e5f1b23bf1cf7716bfdee8e9debbf9c395dd23f7ed7666e4 + +# Bit flipped ciphertext +private_key: f2ec7f1e23898e7b8b1aab76775332ea28a61e49594696141524b0a1595f84c92c32ac49f381331e7751ab3aa7c58bc0ef1ab3977a078dd1781367c4cacc359889425c4a9381f30a22ec126895b4a5366c206c40e1d4585550860b7432857c0beb6b567e9b7fcac7490a4890eb035025152d2df14365fbcdd2d6b3fbd1737350340ed02d06dc81a21832a94c5292c602df76c8b71b29de0b73245c9a8604325076a5590b244f6b2f10662e1930bd949c1d70d3ac6ee6a3ed3612207c0e13451d032bc7a0f37e55a4bf2bd5314c386496294221aa8960ba4f8ce190bb12c32721bc11078d0ec1140109d0037aca39a431892b5f7d566c2ea05eb9448cb1b134f2d460e04823ad59b95d10bdc480a57cca36d7ac2b81a4446461b534f2c893015a898280e701bcedf3409be426b3521695d29d56292470976c33bccfb4700170534197034fef8b8ce26a371830a7e841a902e10ea3e44675054771d3c879cc3555f280e94b2b36f538f1372ece4a2536e1a4ad2918801b7f324c8d93106ecdeb944d8c8d9c54c96d4b7980c9ca73e365f88ab0402612d5cb5985019bbdaa3b37dbc902da062cf1b8d0b8637e1b60e9a48e0d9c2c303b37c6b24fc4b918965881a5e1359d4917cec9485591ce4666c83d6533dafc063cf2cc72933c2239ca57287cb941ade9b8c474e030af495ef384556232623d0b67cac41f39fa42b5600dfb7a13828b1882661b660470c0e6a2d222672185872751978697b9c72352b016c719707412c145769157fc1314d043a82f1b65ca265edc7a641908c7a839875975ad696c16dd054fddbac19ad29850664449dc803c0449b4512a0b9a3fbd098c3cf97a2e0410be72b7cafa18c129a878781c987c989f896cf7862d9290b5a2c8464a835a8cd74af575cf45d0ae904606d5cb92b1744fa34cae78b1989ba75d9b87b834b3265b3122d6b9c457e54559477f7e61712801c434d052ff55518611b88039cae3711cfc7263b4791127b6baa988c3a5337db970c5245a0d1f051a924643712277231a524c743b4809422fac9aab6287a816a4ac34c476c64de4b25ad329948002a5ac363398265a447477946b7dc9abb4e8b72ef802130015c4d6a026c253543611a540dba35c7cae11709de2e78ec7c0b819aca40af19f4bd0cb733a5187390655d46c882b9e7e8235e7e189cf93824ba6a53df14ab4249a85b480cc7575aca92b0bb7cdd8359cb1a90c5f9b6f58818595d7b237949f40755015f117e24683ef4773c97b3d0e285d2230043d393af99abbd73868c5752a41dcc5de0016fcb7949f7a76e2e07c8fe519532b8204c2c5694735a0b2aad0a2386480709ad50f4c5039457c8332e6ca51170bc6422eb6e27152307d24a7c15ba57ae4260350132e1cf484708754a7957e68a4b941a299819464144b1aa1274fccc3189e4a2525a26890f70785418d1a30bbd4b833d1dc05454b2e953116a0985d1c3000e5fa7c11c48abd2406fab98de9fc0006f49a27333a09e088aeba9f82e3578ea95bf67836a91742168c335b908fdd06a9df168a3f3588488abc175c188fbb738c3b849da47adb8613ca28c9cc103f08f83f0072c4f7cc49ebb12022991b62871c15103834592ff238842b496570d252c2bb39cd8cae6d72262ab0aff3140e0a10a61404b23fd464e0977807775279f7c980069f98b73413007c548973bae47ecdc9b3c0a6772d63ac832a7728040e978b12827a6b236c757c811c6c132d7a07084e066f79368a311270572223c24b605737b7623a1173e612e385a666b92f3c043508ac184e096a5ca72afdd88f73aa6f008d57bf451053d86e26231878731e91d5ca55a5cbae9c289f670578624b9cc303bcb983007322405b555b659311aa292d76cf86f31ad0018e10a4a45bdb466ae4b988f102912907b26304c6718ac6200cc7dcba292514917238fe58738eca1cb0c832e53359e09c1df4bbb41c79372f233db8fb2742762db7ab5600e8ce6bb5c59b7b56ec548263d917915929ec85c8e2e938da91496c116a24db19f9ca677ef48dea1754bb2c318a6a5c201b9f81b1937e7097fbe39a80da7d3cc94d17d02b4ca5249279221061c030ab4b008b5091527f9c05766fd75e4e58649af1ab45c21bce2a1e5d5108f8901357194bff83137a127ff60490e8db7cc0161304a16608f9398a5b7339f3cbe25c155d1867000b29125478b6d9367adaaa94e6450e956e80102c55d73b3d03024ce42ee6f3487af83b5ea3781e143386144c0c755f09f57cf1a32da0d1b0b1367832f492bd144441367e114ca67af5afd4c7385b64c857c29a649687ab429d15ccb38620c49bf94f12634dc3067812d6c2c3b0c20f558d75e15c6ac0b362a6557f930a33f579ee98ca72d4adf4758ec510874ba964a9568008a585e832a7716142cc6719b88343381abee8576a885c40d4d7a3624a214dfa4f52b31af68b80d705bbedc25cddb9b95236b3efb63feea5b9286374c4a22f4a567298813760a9ca7df2b7e4115507d61d0677a581419e4801bee86b6c313307c327ce61652d7141ae3a366cc0c0af15baaae0c39a9d27682c1bc7879a659b09913972847775af415688547bc7adcc078ffa4702698196eaae5f04843e3217651a596247692f034a8d975512435eb6180a0807518d737c31855362d2332cd197fd910511bb92676677095464c84707cb64b97c6408d0b7a6b5e20a8aeb439b70cc83140459e582575a29ff2987a1ba632c2687312c3b976aaa7e004e4f292184e87c31cb5e0f540898d32202088e84a6c10b9b336e9caad406866d947439db90c3681812e719b62b46aaf145d1356eca898d02f95f7de3658ff3532736c30bf591d688054e520b4d83c8364b2005bca22f8771ce95b02fa221e18a28fa473da0e28e958a0c5d0bcd838161d2947b66a70f76a453eb34405b166b16e28a8223caf3d9644a3011ac23685479b9cadb5d654bb540100d9f3035ebb55bdef8c6aba353eeb516b8b38880168b2888c82654bfdc881a5e818c1aa1381064881ef5985c6b4711354772246be8b53838a68b04e47e26b3a008ca93425015f84c7079c2ce82c495a2d58845732fcc3956b3213349c128d33c8d3d0c06affc9eb0c92b3544794463029ae9ce07b45b857523965382c6a569e6357f024a840f99012cb0536d5b317d97c85a051bda1acf47ac655b96bdbdb203e9fb7b582b65eb86b790f6c50d5198e2a2097ea78955e3990d80a0bb3ccbbd583a0b5bb21b5482b0270b19d6803a773c15820f374b3e1942279407c4a742b0ed986156e5648f36390ca870eb9aa0edeaca45c51908625bf2a9a5311c6b80d9ce876748ea9cb8d4a6ac1ac5ce494130acc2584f1b122526089e96ab1942a91881c433fc13924a58df88770c2ab0c6605ea11269e3257e019635c9977f8a7526563181bc3b5aded062216b5ccbd5c190157157452445407177d90a383b0fd4d90892d4b92c9630fe3bc754b5cd76466d747621e8d6c8a2a68339d73339946d79a3864d7659c9a4bd304945161b8feae8558da68284d44b89a25023274abf4a272cc6369f7b9ea4278e96d35ed2364c8e6bab29b56885c8bd6137ae643141d9d4c970872171d6ba34ac01fabc700392393c91aa7f284fa217565f7a00f3a2a0bc687724212bcdba2349212d96e3617cf9833d4b3ed54ba1c0b3ae1096518cd76f46d696c47331ffdc2229b37ced101fe9e97ececb07a177167f97c5850b39c88363ca6879e3e0b802ec22488652e9b290c7556d2117a1ab459be1e3a2fa88b56edb7f48869ac0d91266660e21c7a7a7e89667fcc7668c3b66cb7cf0206c28e044d0204cdc149b246c2ee2a243a7824ac8d56ca5fc10e8369299c36ef0d02cd3fc37bfd7b509e53ac1e973873a3a03c053c9ea59967667748963fcdb6bf0299c5177a823c5278d6243b85ba19850092b061c21223a900570a9d27ff5840ab4ebc04bea1aff85b93eb1c4ca76ab58204df20637fb3acfdcd8aeb3030dab6c41e723040dc0554928c0dc11383216a2840c9b2b6c6cf0786e88bb78d5d4861a7a7efb32b87c95992cf40c20c0aee26c6fd86aa687e110b98020edf71ef44c1f4dfa0b52f66932215c11b9c4d98414fb1486b85b3b9bfa3a6972a7d28184c5b6a0c2c82f875c1a17baae9b20cdd700b68980606c8778284c2465e80f15565e69c2c45732afa8029ab52a5f69e7aa927a1b1ab10fab12ad12c89349d7af0c1c731eb1b74a11a842b832f58038ed45cedf9c96a2bb3decf77b6e21aed44c0739e6ba4351a1b1dc18d26ccd1c920bcc136d90e2a62e6a620c46b15147a5b540aa86052fb4852aef698f624186f87c2b33e72c8d444ff0fd73cc16c909264dccfa2290f93b867634185248c6b6941e82278998324f40130eeddcfe5282ef19429819cf5da3ca3bd41b952304c77b495b6a6aa6ed8f4b3ab341c46abd79b73108ed336f90 +ciphertext: a0e8a0827bc1e2cef90177b7b0e2e9b6aba88635a691bb6d13575695ca5e74198ac6b45d6c1bce9fd6c7b10d334bafcef6f61bba11a957e3a80aca4a2690aade86573c5a5056ab7715dafbd93de0429d3867fcf2ccdc047c43ff0e1268242c8d84901e58d6ead84ea7910089c9cbe778691292a1c7e4cfa8b63f8ebf98385e54eddc7295aee9a26b8b69e3f0e373834587fdd2486cd871e7223fa27431683a439919fff595753dbde3c8d49bc65839958c9502fbd0126a0eb575acfb071b3bc4300987742316d3448612a3bf9550a4f35959e00a30e2614b52069e18ff187f27dcdc600bb48cc20cadd18844737edfff0b541c0acac18b43f02153c4f87a7e1720903c2a25414bb0396a1fef200e4c5b1775b85bcc17441bcb9eb76dad5fdd8731944555697dcd9323e9bb117ce4e6dc9bcd62e3e899daeeef00d0f3e34a864eb123f25ee8be5342a334cb4e06446d9c5f76744b494f8bb70d70449f30819e38c461c5fae4838d0f161190a61c965bbdf7f0626f11c37b5bd89efdab1cc8a24a0cb9aa8ae79b746461ad517002ac58b4f35db8bedba0d82c5bd53d2e81346b8f7e05057679453cc08d6f60bb4aec8257c0929e7ebb17f4fe5858b4f2fc67b9d80b5e5555b98962370da859bdb9200c095ee4690b8550a26d4c0dd17bb264451339fc24fd52f910cd5decea55d6a44571208c049fd498751dccec8c314e5edc74ea2af4aaa585d888764d53b4b98f84f33486c3b554c11f937796884ff12f82086035a44e4b3e32213e48f90ad88b17f3963be3516575e0da39a7d2421a4a6929789fdac5e98afeb31d1bccf47f15b2115964e102be8a3f164dddf8377aba62788cd272dcf8c522a5b1d6c6ee1d5e4ff47fbf191efb86804495b950cd5587e4b9fe76e7e58370dbd1202919777abe74db35b8951a200e3f74eaaa20bbf05d55aa511553921992a447a098ba994a42d7ed957eb9191f0fd77eaeac5c99e8d1d4fe2b760c26a9eb593631445cad83f222e6caf2f867497ac60469d0da32b7209812c8204a5dd7699889f5f9049d8d63c4727a910091a4a04d55517c4d7e5bc2a4b85281645415d90dd4c5c3849f3c14a8bfc30bd6c80f45196abcad9d33976051f8efe549d99f97bc1155c7c112f6d47e972966fd27c1b7f4b0a923560c49a099d98210c5b7021813ebaec76de6ab1cc5e60f72989bcdc989059e1179b499f835ef41440f751f70409ec133f4a46d73024367b7416977b5e448b79f1135455eb08bf1ef0a4e8dc657011597d20c410885056ded1f215f56cad6eb0f86e7831b16ea105a0836ffffe6ab1cc68b923047db754745626184bab0f2285f3dff5bae197b3ffed7d0cca67416ca828d034cc055bfebbf600f5f95c73d37152b27953163041155e436d84adab997816b030e7779454b11774418a16126b48c187a74a2f97213414e6844ed50127e993d4cd0dd04a2bd75099ddd20df31ad1aa2d071443cc4cb7e3632599f59e217504a83b6836e6d0e6232fcc514c39589001e7f60893107a275fdc7f63e72ea2b9ab4db7270e4275cdacb95a677a6d28b7921a5afc646111ece83c444c7da4b4491871617daa9eaf9340fe417e4def34c7ab0605b2fa019d6c2343c1a708d7a6889fc2c81a712d938815fd5d2d4c6ef684d6fb381383280b2c882ced64d0023c033fd5fc5f7144e536974f660df15ee92918ad463ac89cc66d9013ccc1bacfcceb9b1c70e033125ec826a356e0a2ca875c8bfd04f0e65989201116d9ccbaa4ae7f80e66ef1f91877612b4e3821513880ef650879e543d787d3b312193c8f19cfbc0e9e1edd9e28c0a8d8da84e5d26fad828afb32dc0ec1ee73220241ab90f8c6e4476838180489ad01288916a0999b2ff3276653e3b5f81167ff901cd08583c049e648f32e0d98a9943cebf7c50916714f07733b8fcd58195ede97cb40fe1d8138ea50714977332dd52641d719a9826fb514b642c86a42fae0d008808eee5af5ce04302deb5361153b828752f643aa22920de61e4238e4468958ddd96054424a75884a834c71eba64a1bdc655016cb1bcab722d9a3c4ef370f067def2f26982f1bfbf14128e9a92ecbe81bfd9e6a29f7bf0020037ef17bb424bd2ed68765ccb882e9c5474c1d2456028e27c00d65a5bdcca43e2c25698774a75d8203ca83ad35a02e4b7cec67755872ac83c9b278b1360491dbe80a79d71 +result: pass +shared_secret: b1b70b3ce3ffa1cdf13404a7056665c8e88d198cc6f5dfd28b71b39de3a95d10 + +# Bit flipped ciphertext +private_key: 1c377ffe329415136d1ddaa140b865f5f313977b292fbc33cf15bb650574b5fa168936a290f00b7ea74f12484352f778eef31267d5c6e66abdd3953f39015aa81c04c1771998186525b9cd97624d3a18beb1f822130063fbd89852782b4012bf47484c7186a001b20a1e2821fd700d32a4867282b824b258141ca21373ba7c765fb71682a8c3c78b955df6123f2ca6b7e7422c5beaa96bd49ca39ba1e0d4cd6dc883d9dabaa1a90b2efc99d767ae8cac84fd2c2c38b89a98b976cbd8a5fe0627553cbec0db138c272eccd1021b42724829656d5a402e05a3e82492f915094657c5958b93c48719194659ecf00ed0f2981449a7b88391e082699a80384aac446d73b67f670378e07283811a5cdb6129c64639709f38c9774414316d134b602bc39eb7a132825984b750b516b89672b245841a3eeacb8ea60dd1c80ee802abe6bc466ffa9b2f3b9acf83b8e085097c261b52d290d3bb48348c1bcbdca446c01552b13551c4415c460b0ec8208e2392234724336b14eb5bb704134ccfbca61035b20d567c27733cf834a334f6135f4387e4b12d3293bf15d303d1e656c01a9dcf5494ae5952ed72626ae6adfa6c8ddfe95f6f037e41e2afc5c20934765363a212afa2b1165a81166043f0691bba71658a386b1bdc5bfcc71dfdc9308bcb806f94456e4cb1c66c921f17705582b1c6e86b95796cffbb35a2b5c0b07137e8605bd7d186f6f5a27876a796e206b2eb19dc1122bc76c3dd460bbfc862bc3c441b0c5c5e41b1d442c132b3c949378124c014cb675eb8451f3b72601fc272749833f842ced8537e04a2913ac771e879358d84a5b655a0fe064546a582249c5054b61628b356c47465f3d738525419f768366959227a245ea6451e1a534376497625131a5fd1affd9a87d4fc12cd43521d64460ce97b868687f877aa397c5e4820bcb6e2a2d5c9a725693170a8768f348750e5af086b32edc23dce391065054af7b8ac1fa3a81db15ee0db9e8ac7c93a60a86aa36ce0b25919506f5bfc6457a0c1d5552f41e7533d152fcce480d959cc72e6cceeb68530b9a725b927fd57c2c1014c7740cf18284d6fb452e0eca00da8bb4be38d64511ddaacbaec8981181aa720003c770abb66b5a26f78ab667b49ebb453812720c1f313a0d319f012950679aae7535a06c616ac12b5f0f65c0b5b142fc50e37346b6ca0c0b1925d5e854dc9c23ce362a454845b81b0cc7f37b5f0047c559a228b8008f08a9610981ecae8cbccf36df8db147fec4fd7464f02933bd451108b26400e0115e3977f90542492a17b90400202e2100497b6eb7898d1138e15e8ac68f5bad3732454cc73d9ea469ee12b9cc5c000677e3dc70e767c5cfca0b26b8979c7d994deb74d256c1fb3c283ba2bc0a76bbaca4a531e9844a216487f2b006be6cb4941911bc28cc7668328026a88954708f72de52b1f42c512c88cb8268016101ab30440cb628c7532b51b47d61caf5590cd795f7fc1c787b04090ab0e05a52c263a3030801e1da009e285c38b825d2fc8bcfad79b8b5a73489aa8fb7891fcab4fba78108ee88e871923836784b2337a025cc29db05e0e0b512700c908355502b270a30b5e704a02faa1668af0554d797fa88c9d24f6733531c66a02ae4c08525f75658acc03be68c597f9a20088748796b5922908ee95699d436825eacd6b5141c7387c2da71f1ad86a935c700c6b86d6bc344186473883ca16282644c94ff6191cf0d36a53559700d7ae6496459ec46c65c711c0949a217c616df47370d6cae329b52dd5a90a99cf42e1346e526962e1a399aca9f3ac398ab479bb4594be91aff5e8534197358044b2222a6e47fbc297776f96412a57287aefe9193a21023f92b9ebc30cc4b7765daba83e5412546686745acf1211c41a4c7d92037ef3072047a359388639fab2c58534228ce091cc8717ea6910421c2bc0672b98481414f08c25a2b6aa58a8c1f769ea229a85ea7bedc154042ab2e412ac25b3b34698789d1533953935d531ad77e82cd6c289f28843f84a1268503f8064a09e8b59b56a6b72030ed07cbc7a646de1b8ad4bf0235ca49e1421babfe44274a7122f9204c29b5adf504302a075ed18738ce8902d610e118b0f537aa4309604d0075f6d848b7ca98554cab054778aa82ac8a2ba02f4ea8da78b682a690fbdd187122982dcc1173ba3b9965c93cfc11ca05ca64ea77449325118d6a3bf507b4a845497b3294c0904f82b63fa779f758b947c21356b220c48c4b552f8b03d97333b3ba12c8012cbc9c848a89c52b2b12d757582f81923466dc31990dad36eab98267d2595a8c5785d88a854c065ea2645e2dc04f30009150316b2a77cff8b820eba64cd48bb3c891dceb8b6af7475c1b34778b1ae485cad2c6999513bb2405b9931d9932574467da038e1a340fbb573e1a157747c186385717b8659f19429dba03a36b2c779593f71455cae77132d2a4ccb2099a43494f8376bbcd2afed81c64f187ddbf8c29c2c0cadc65bc4e82a2868b02e3c17a07888ae937311ea9fd2abba601799b537b1eb9871f8955cbe120c5d78788099a3fea38a9a75bb9894b3bf189fbdf473d2a57f351116cf671122e0359b753266f686c7dc5e2329109c375e45c846c40b811ef683a1ac10a5980a77d97cda5773bb9168bf478f37c3084fd7ccada9733311595124100e7354bdc8bdbcb84508d52769b09e7d68be8f1a1f09041cff704d1f4a305c24536a3049baf770c157324fb064be5901ae479da69269a409584cc0cb47833bd2e0bcbbe92300e57d55432cab113bdeeb080e50c9599a6845c91478738de6b9c16a9827da9085be2bc8c690af5a028fed1b33c4e8c1fb1c9fc3a33e944c10e1f938a15b019581751577758e0c07ab0bbb0f6519d77519cbd20736e516954964f80b0f90b469cc72504e946b091604287c69abf33e9d987753a67bdc6b14ffbc27e2c9903b5447aa1c5d6b0988129177c6f81a7bc81b842bb80325cf14f018308cbdf7d33537d39ee211ab7cb6bdf8d4ca9969b7fcbc171041551471b22c003351da46492161aebabfd21684f1a29cb905b76b436b23caa25b47298325cae5f2cf4930b7abf3b079067be4cc0ca4a14777a756ca047d9276949ffc1ec6f008d1d1b266f4cde4994988089683782326338a6751307f7453bce6a23118541246b86219a9c8818cb64285dacb69b33a91cfa8566dc9aa2d933886f38be9f1813404ccf5a8288736bb43fa0788eb2184f488fc0636bebb7c96f564d7f538b15119c451a3da384f8a35b4a345c79354353af8092003025327b319ca599f5a045ff7904c11425d85bcd3a1ab1b574b4f18585d7b6b15b1865c346078114ce618bd36bc2e09f834e58c4e165547ad15caf6c01218784abaca1cb63b9669f8b70d539e8d8a1496383bfc4c580629938d7604cec76352545bc9a61353d3092ca21019201674f325124a98650196b6214a89bb2a67a64d60d645224862d03c37382acc88801f13ca2b1a0a1f0a706ab2f16aaaab6b187b5ab8d820b253cc43e37c3d7572ff0316b5cc93cb3674b7933dd82c8d3b0c00de589f03d3604b1831fbb9b0ce00ae4cac3c385a9f7b8633d1743b649a64f9ba57768473aaf50f68b987c1982456356a792677a9918e52e6473ae72aebe4990caa415269aeb3d4989dc1653f290779c389749b9422d510bd99148c56469d303282b19d3e719519278ac4768ee958adf8476f08f4c02fc86cfe0b2ded04a3a76111eb0255e48837226c1f3561638eb3a5b4c62b6fbbb347b405c4aa5283295dd2d854e69895707c55cb2837dc74997394148dc20ee9450a5a00afce74983be7914205c3dfbc4cb8f27b3c0bca60f845a45c0f77ac47bdc0b8f412409b953d1d850074fb97805aa03769082817773ffb111235c3e1ec87d59c12c9fb4d78668a4b76633e106f1a22905e4b77d9908162b979b36cc924a1a155a01728629ddcdbc3a644a43c073c4a1575446595ede5291d4b455da5075fb3a5e3935334cb4118641d10f6b73fc09b02013127bc483389b811921c2cd9228600969bd3aa9d417c4d9c430b50b39618af3d908983556411231d98aca4e9eb124456cd118742f60365dc47b0f3890b7bd28044f2211b9c07b0044589d4ad48275da5c1b09f391b27607f0ce1949fb80faf7cb23e15a1d2ba56e36bb7475436a00670236308943c28855caf9261ac4a3793c233420e404fe74c9da47c45ec57905b7193b0ab6561e818d1636d1cf877263c7163783b193c2e103b349621260321b30c20021f1a05a3253ddbd27878d4441c51073377488d656fdc374ab629b99dc012eb547f2617540b785d57d29a100aefb763442c3cc39d8869649dcba4f35e9ed9e8799be9cec296be40ec89487d0ac6898b1688ca74eb83a6718a03576178e8349309adb63c7280f70a4862347269642db215780f05c4a6b61089a2a52b35a21bb69d998e7998 +ciphertext: dcf4fcab6a4896e42289dc0e1ea356e2c4be4cf09323b28f9a5b364bc3a3077835b50ec2a18321b5e5df656d048ef6a716965b9ad3576e78508c6a05f91f65e18d00c0e460d7da622a3ba56357ca359ace7aab76547eea5d2cd9f9dc81988c6a7648ade5f378b03c1de96cbef0abb98cf75b7ddb597b0a0193cb0e2ab9feafb7823535b84610d6a98e35eabc5a71b4cf371f843d2b8865f11e5ddf5b2a93bce2727a2bf23c1b0d7ea700f31bd907452f82db7b8281d7a46059b27ff7860e2af5cfc942e12af96d1e16da005fee1b1ff560746f9d0ba04179d5dd2d10b2f7be64bf4d74a8a598fbf50da7979a0cf5fa88140927d45b03011fc5266e3896f36c11fca6fd9b889f90bb26d8b8d76f7911dc3946ab1eb002a128ce57f20d5226b15fdcc8acda559766803dbaa15c4d8f09db6c6c37f16820c3699dc196e8c5047463ab0c768c0c1c9e7b91b8a05578ea1ab8dd0527f846e57b91fdfc7c3e38b0df9775ee7c25c02a9e3adaf92e1f83795f5484626c519b15334618e8b89b515bb6a96c7999297b5f73832da6abdbf624177ab994098e37f7167d9bf8bea88bb39454007f10d0e0aa66fdb59aa02eb937a6408d61899bc5188c61a539abcb60f8fde9515932bc3c823e752907a2afaa3fb96473d2f92b2ad7709f9ee5aca26aeff7c8b45e25daf67d469cafbbee12061a93839e5ace55f9ce2476ef1182b5a6d66aa9af21b862a58013b31cfe666851ce092c386b5932d93bea949993a06e0888c7132f8e578961d5d7862af7f302288ac967528541983f98d3bee1790f456cc90dbe3defa87af8165db165c3a10bd339a7220541c514641ec9a2b079b91e53f09b6cf4c9c1a154a398bbc54b205245a3d5d5bb03feb049e6301b18eba5fe69ee22a4c3a873e16e9944447e4212a591d1d1ebb68cd9e86e3c31835b698ab665761a2ccd1bb660c9375c32c8a360b65e68e4846424315a76d80b4bc54867e90aea83db54f51a24f533b960c96a28fec70fc2e43b63f322a84c156b565aad7912890bf89d8aaa8fb56b2adff230a543f2d69a61b3b1aeb224f0053ee8063a67e63edb8f1e3e31c1a80bd8599299251a6033a30c230243e72ffa22ea219f322177c763a41519bfb42041e19c3b15fa9080d7e552150c1b751852f46feeb7dd57602ea716077a8986e1fc513dd4e4816657ad9024c122a5f5a00a382b271394606e616265cfb68e9f70a931a21b2f560c90c30dcc86c250e6279c91ac6616422e7a7ac3c0dc161e32d98fb4582f99be3a69dfbdfb5ae94ceb954215e4f7d385a33c7d0d9318afe2c30493c1f1ad92ee5360207c125ff7173a9049104c91c4e86d410a3773e79a3a54252dd2eb9d11e864e39cea7824b6400367a227213389bd283ba5e1060c635dda373f2ffdc6903940d1e903aa43131fbb02e64c7b3b04a5d943eb01ad494833abf7cc4132fa2ce70ea511481058610cfe280c220051443844b6a1c1937f2346a0fe16c335d4cdb0226b5b0df3c107462bcae635ed8747d317eb35a2e88d9283e4c7c6af08ed786197eae77177712f015405b93d0760554eccf0a4ceb8505e0ef0ffb013baaa01ba34bb4346e67548d473096ff16482da2462a72d47c14581189bd608dc52a43c92438f951edd3c0b4d59d835bbee430adaae0822d06c17067ae6cefc770d4917d80f01282c36edf00802d6b11f1dcc1917e37019d8b2aa27c3bd97e9d49c99c0dc0ce6edae4fa908247d1eb62b4b279eba878882319931dc3c435d75f731b9be36abca7ad290ea5efd16b117732b7abe4786cc70ec062686a736fe4fb8e4375eea34c37c95b2ff523fc8fe3a9718a73abe3de1511460dafb61e09e9108a754bd1b6337bab557ab2766359881473b75485dbce6afe15eaed18027b2e07ed707edd15797d7854c14a777a140913d5125ffe8dc88aab4eb25eec478d339f206991831b44d91c1aa858bd0f675b45598f03cdf9e0b4b62259ab2d11e30c27f595b398fb2d6a1723cbe2bac5d712cb5a3e6d878cd77ce60e6cb32052afc7a5069f866ac065cd2b9cf9995ab5e911aec00965297b8cf026f30c061ed5390fc4b0400b77cc085431f174a34180c86cc33081d617ee6d51f8db9d95b45fda164e291b1444fd7f57468d6eaaa6ebb22da5654c04a24199123c26f6b1227bf7eec1d9c1bc623aed646b78cfc1e627dd7ca58e6be0247b92d795948 +result: pass +shared_secret: 2606dd10e825351bd0bc999e7f1a033812174cc74328d190e6841b4998e2576d + +# message all 0xff +private_key: 88d69a6168a4e014c6f1f3a44fb4bff122738176020026324c543df0038008968cf0c494eb593d0dc686f05ab67f04b30a458a43c40f7c154fafb177d601918ca7168cf174e2f09f64d3a11aeba33eabce106b1f3c682f4d521956966be5da08e2886603a990ab3cb3828898534a737cb8bafe321592c5ca27a3023a876655318c4255064dc528e8f43d70ca6905f8561d1cc5158967bc8c398d0c5c0a59af004751ee49c8c8472a83046fcd19cf9181055a49cc1c106e4a118011781bf2613c696a2229979bb0a04ef2c6b8075b77b8806f4ed528dc5120bb81a0dfb8b45b08119f3c9815601ed251188bc722f941028ba07eb3921163b97aeef22cb23b673f09b51d167274871979312dc47594f6165aaa26bd907c7bf5b81aea010a0e834360f8b5d7e0a38aaa88ce1bcaa132bbb109a412b75811331e62d83d1beba0c72956e8dc8ec1707242aca395254ff1d1b83657a42cbaaac660b5fe5a1bf84c4f99008a89b95f2a88bcd76778ffb9af1da30d9fab938c06b27f60497084c2295abe41eac5ec747469a0a2b6c90f3b89bc9212891212c8a37b578f064d5da750b7415db3a63d9c78241aa89b08725239f95a588a915f59b3999a7d4b9c6975f4b154330a9ce91f91f54df9c33627fa17138c982c622e8875b822e523fa93230b6b25495a3f0c3a0ba32bc438e97ac1f6c9cf0145d1086711829dec59a4bb9390921394ba1760306c1f718cb3f69369ac67b0e9080477b889842a4ad4a977c1b7ce9060516fb3b3cc178bfafc2efebb7eb68896d2e494ce9a3b137b780e351a00707321e32bd9ca44c799401e9c5ec390b83bf72be17903a2ca0a6c057bfe8994b9a96ee905571056543fc8c4db0478c54a4b96ea4309431402841fc18b86711ba40ca8645053059ec853b8f8a5315234deb2a7b3e162815b6d73e0a7c83b367c0b1c5a1b0b6cbbb2ffa63bb5f4bc029c5aac61c06f378355a5c842585b95d87c26458efe43666f99340c08cbd67c9dde421ba2b6aee8e25c59868e4e43679723067ae95f8b910defcb71c7ea5e1dfbaa8da9a6ae319924411ddb7572da8178ddc0959f353f173c9b8cb178eff663e3f74a85055f834961de78b160cc94142a7710545e013079aea48e458b0b9f66133001307d70137361b4c6581ba2952176650a49c336a80bcbe5d1afb577bf996908a2bb324ca184000c7f37d323e4018fd3d089e13a9736863cbf238d97e594e63b17ca949e34c69d128a228668017d40392d5b3a03847f49e30e0bb232b4a34855b8685f6046ed54b122d254940230cf3b4b2caa26f6039e3372531097578749a35a39873f2c1fe3883d9f0a6cb14512943530ce3ca87bcc77281b6735c1689069c7d69baa3fe07fd803cfab86c5bee2a0676b7cca07a7904714561340ef975626d90abff99007d28fe303014528a3283a2e72364a4f400e350a3d64f928a9f00b3c7b654c17acef845bde08528e09595e4bb2f1911628e3be9193ae26c08fb14953ddb18af142227fb7882744b903f5861ddc98194a8af763c2a763156136646bba8ca491308d8969e6b2af25922b0afb53c653a2d14b8ff7d158bf8245a4663814520eca7608bc404e58515e4128910b1936a7b28a4b3261eb6ba511ababd33515c4410dd67492e3da3811aaa1dca011b5909cde5c1a02f960cc6142485b12c8b8a721b073f2882a043cae7a9a57357a52ed07aa8cc94b968629d8ac4a896c0d4f2a6e34c973095c3b1b932775ba5a25c41292a4bf0b996035f9cedf4cb8e5e45e6eaa17665c77427791073879e2d08186b33b5d8a773661604591236fa00bd5f1c679a2a2b67c274786b5cde29bc6214f9ce3ca04e3cfb0876b857b5d91e537ce3c63ef4498ff4c90a280a6ea1b3b227983df9c5d6723696b2243cd27ca2d1413cfd871ac64b083e11dc9114872fc3378b0478c3c489162b6e947b3f8010ec554428cca4b17c09924f5501a380d11818b4e00c9892c87cc765285b72eefbc44ff355a09b65f34c51c48b81d2eba1435f40401e36e473c6221c64e70b91cdba7525cd401ac1785aca80f2a1438ea8906a0458c543c45e0348baf6a6e4d24b127370f89b016e2a433c787ae131b56846b4a687ba905c644a993430d857c15b93e1f1b1db8f4881a1a47e437689f77392a730bac213146352319bbb254017eeed01a004d44d0ab4064f255a8791a7fd6c7f5aa8aeea26bff6b258b240108d852ed11a2922b08e7aba53a714b0a3bafee78236768666d851d567aaa5f61a773f5cc4fd4812be2989ad06af4a17899f9ca247a88b7021f94448a10142b1c1c851abc833ec5671ba92665081490aac3866669b4457c29227f62525b4df59b92f91fc429b652228ec5b409ef1878e1a4505884bfc199b1bc95b940f802a20319b221787a10c07239336756bb237b3cb0cab9b5467afc947d625c50751418479aa7e3418896644279db440ff20639d65f88b257f114891d11b7d6bb8c0971a0e2ca48bd95c087a57f9b0223b749286f4b1d95b49cacf65068b6b4b8c2497a4c7cad84274504c60743badf4ac452a8bf6191421ecb8b799234dca8499508b9c10427c6ba0adca91905821db7443ef612b8adfb8106486fa6942d4a1117fdea898dd1b93b46c3d56cc6c8ec7a807b776f832e8bfb24f4ea41d98a28eb7746e7708078c46479d752ca863922aa5e847355c7349e27f61dc02915d15389345c297cc91a955037c3c2313be35244d8c2534c22d9450fb5231ffec6654ec278604b364daa2a81c0baea553f047b85b3410aab6a7208b1baa6b0a261d7480a90abdb429145041386d080770a0200410fe4b868b93c7eecc033920a556b9bc3049aafc7da6a1002bbc7e89c5921b2a2811bcc91c2a1521a2c817764c7c3bfec9113415567ecca7fb317196aabbf8a34b77b8b94a131e042219f199b3e38c32a3c3edc7c093ffcb93f73860a0a3df05b30eee01f06454f38ba0a4d68299c5b8a5c6a3a207cb81ce1c3740681d1339680526600cc18996c4a1a545373d1201cd561c183c841a36a5aa0659df1c3dfb89b996c3e65b102b69a58f40123a955aacc616a010c6e9b54585ab95eeae1cae99161c5cb6cf5c1b39d0742fb862dba3b8f2b2629f9d077eb8a74843a119143aeb990b0f181c090eca10c214b59874bb2b32e4c29514acc041a6ca3b29b4d9c36bbb1ab35156abcc489cb55571f9e4771bd1084b841982ce574297b53e7f312cbc59d1a9717a2eb0901b32e088ba3fc624e741932b15654c7e9183ae6042a93151a9684dd1220365c8bf57640a5b52e1956056422ccd63ac3c3c72e994371c698bb4d14147345a2f876cc71069c582b41ad4c554b10a22e85318a319f5437be413255862b836835916a632c7a6a9f5b236a0e7c9567faa75ed2a5f69bc1f4754eeeb9b834da0c4d25b365922023b526f3ab8686d412d8334f85e2b0e10a9b2eca859c019e8b683628a14028f2b40ab918794c9b20a81b85964e0d583ab6054c45272a3ec849371232a82b4960f9661d92b03c00b42bd39cdcb22e202641a555457ba7558d6c60c471baa3d5681079689153a0f51a6f3bf5a417444dc3734499f943b2977e4e4429763b6fdf7c500741ce13b8c7c1db833380931a3ac6061039f94690dbd05b0f92389604b79542ba42b73864bc8e31c50455190b7bf191875456ec4379abe0c72034194ad5cdbb1a3aa2337e41b116c20209c7c33083914015031d320c86c3962ed0bc3ca6c44e6c1b0b43f67322e61b8204835780c8e9082f1ba5bfa4433c94eaa4fdc043fe2390c8d17718684e3c5c393df54a3a8a8f118c30c7a3198ce96bdf917de4584ceb2b886072016c958b47f530ddd1031e85b044e523895c332ff006b0776a6820c199043152d96c4ddb277b281194c763f4c78c8e782d673c7fec6b08856868c6015b02a0976154be400849364c262f2c4bcab386d81cb65904016895711aa79cd3604cb940acf8635b131555a26c23bdf13d62f10e293ccdf96c56d8e63c3e28320aa93020e2276b35555baa25895caefd86cf458506cbabbca430b1803b3b42e4ca0edc8ac7e52ba9843e5356c870657afa990dcf20718db61c1e63ba8966cfbc4c19ab925264265e1b26a6cd065530c19658600cfac17a57a3039a4a2ea602cc72e885ce3b1a6d53af66fc1d3c1cbe80420a3fb16aa509cf0ca406d50c1f746c941ff262cd5c420d57902e985231cb2675e3364e116eaba3987d940c6a089e8173772f007caddc8ae91ca2d5b23eb5e7cb936a417ec028df7308ffa00dbcd6066a0612291389733bcee83ca5cb8c47941c70ab155b48b394c3a49171da4a0be3b1a2495e8afea17b07b5bd953d85e6c118eceea4458f5d18ef7c0f64bf902b0a6c59462f53c64dcaaa7af1fac8f7cdd452889680dfe41254c03f94cfaf3e9849f9bdeeef3d88f92e6d31c6745adcd2a1ef162fef80fdbe3666449a003d7e +ciphertext: f3512e7c3acd19c1a329a41cf1ac19fc7780b19f479568321c1caba505aa4f5e07ce3ddac083dc18450edf53a3d3d2f1e79d7301b9148fe17ef5d48950b895bfba33d475a1f2d646e3ca384f0a0fec4f9310fbec9e6c22deb2f5b1843de09f93317b75ce37dc705fe2549cec2fc0028160adbcb7b36d9542af5522e4a599df41baac1553180ba2c8a0386565a902ba69e03c8121967b92b7c70b77cfab0b2ab6c49a6b942471e26ba28b1d49e97de823bf56ef979b3afe807a460d3feb93e13816f54cdd01a301ea1579dbea7b4b30cdaf0b3731d7e9fe732b94a59a871a2954ff70fc34925ad2bb2e450698d03c2b13297ea0018dbadf72f1d36ff21d79e950774f11ed585b6075f7a1f2b187d4a269a339a04df9503c3327f7c64118773d9985e6ddbabb32404d225a31765b7b1a0853bb865a3dab6350c0a7022d39160da0ea0dd0ad3dcf3ad78f21fdb077069be7e211d0921f82c907dc9279e14dc84e67f4d74eccddbf4c2babdb8ba03a44bf869b24ff9b73d1abbd94eb7aa6ff0c113d10ca62562d493c975fed8ff10e5e143fb4c1dabcf749fc6a03542614b689dc90fdb33b2ce95a41ba53e79dd9e1aae42d376f0c4910822cdb3ec4ed5d55abf6f4a299fa0dc05856fb210fab7b9830716e9bf08d5dbc272d4a78866dd1fe34ff34e7c6bc0c6a9fdfc51ac7fd2e102b41e133ac437a0e1523aa3e6e65a3ba5ee909d2dc7e6aa10e02cfcdaf37e5bc5738ba25cae24fcd98aae3415449dcefe2068fa406eb6b336740ff04e1c708ef5b2e71eaa4d43ece8108bab6c5e0ef3d51a91844471f90e1177ce54a3ee68a1c26c0f495f0a4d5bd034b72820bbc9df9c7af3eb16ae8201634a9a42e63a9d770ee021363c6ee4f8b0008f32a1cdae4ad7a0bf1bef6b6519bafb8528e525b1478ea0927952dbc23c522c117bab6d30dfb9998fc08358456732d80410649d5942b6d091193023e51b9643efa51d8b4338d1820dfea791afa783c123bda35a6c692a15dfa034a13e4d51edd365f9f86ea511056b0b639722975c4f62d965444cb3da0cf06343445b4078bf39e3c47584593d41183b07932b184d6a2b583eaec4e24e9f668b0d7c51d8a3c1b6acfbf1976286cf202595ee376e4c5afa261416b6cdd4fa0c1df5bec1e823eea9c002d61f992cd375358f5b44dc99c7436fd29af0c1eead703b0f221ff9de7d52e5385400c02b62be4779942aa1c4a58cbd4fdce5cc6dbc15b8e2e4ae7a990780e79ef522ea7777b076b4704bebc27aa191040b48205f699ae9d7fed04d0324e5f9fbd8d6576eb0c79ae72f88d20cb263364d1a482bfab87b56fe7faccb32c06f633b24632b974937425732922dc5db0332db6f809aa71b4200576c55d5cf172fdb72f0b6eb53a85c3ec3a34bbce334dd74bf6096fbaeb12f89e390868634bf60e5a6418851b8b0f8d6a45a75f158bb956026ba829fefb911bdd2e7ec609a6b4f420d49b78750420010f56459f77d53e4ef7a72aee31c3b72aac04e41ea03ad553408ebf8f4ae5feaa5b8548ef3fbf798df6d58642ca0a27c46b48034adbf1080d2d590b1e6f8677af09280304106b3ed7d25462b8fed4edb5e26766f15a01c8a65c3f59bd0aaf38e838f19aa39257ce9f16da72dffd1d94a99ab5f980b4a80e26292664b5b4e8881c691930ffd12ea7e45b0e2869fa13989e971a580e7ba78580c7df4ec93565ef949b653a5eaad144535d281dda9d08ce60107a3228506fd1ba8ae42a5ecea63f2bf6b66494ec4ebe9715fb7ad84b7dbafcacc86d5e43f20fb339841d0d9a0757b2cbeaf99e756fe9ea815b82c550b430a2a0a0ba3eefc11bb836297284bae7f7a772c01c8d374d588b9031bff480b48f84ba197dadcbfd0f44f58b7e5f8bf28b42bb6b1126bbfbcfcbfc4f0a77aeb909c02e4685eefda041307e4566587db39eaaff80427f4797c5568a505c6e1b13c531ad82344f3dd2a7b3365ffd8c722fcb09687d0ce4450f464270eed6ce03a6e65a9b4f4e07a73314a8581a6f62c3ad0f1732eb8f41a9864eb6628a281b3c18b01852207686e3e73ed17b524af35dd2b65b62a12a335d467921bac0f37cc9b53c29046f9eacb0dad609a151e6962c5d1282330afa2dc45011fa9c65e1b4b501ab90e010d3170164d5e7f8e331667ee5591a11f814aa9d16cf18d9d02a60b6926154f49d5e27220216c0d22c5ab0168474c2 +result: pass +shared_secret: 414aff36017c23c167de6447ea65b81b3df13532cc54a0426ff1c00c2fbef371 + +# ciphertext secret and error zero +private_key: 88d69a6168a4e014c6f1f3a44fb4bff122738176020026324c543df0038008968cf0c494eb593d0dc686f05ab67f04b30a458a43c40f7c154fafb177d601918ca7168cf174e2f09f64d3a11aeba33eabce106b1f3c682f4d521956966be5da08e2886603a990ab3cb3828898534a737cb8bafe321592c5ca27a3023a876655318c4255064dc528e8f43d70ca6905f8561d1cc5158967bc8c398d0c5c0a59af004751ee49c8c8472a83046fcd19cf9181055a49cc1c106e4a118011781bf2613c696a2229979bb0a04ef2c6b8075b77b8806f4ed528dc5120bb81a0dfb8b45b08119f3c9815601ed251188bc722f941028ba07eb3921163b97aeef22cb23b673f09b51d167274871979312dc47594f6165aaa26bd907c7bf5b81aea010a0e834360f8b5d7e0a38aaa88ce1bcaa132bbb109a412b75811331e62d83d1beba0c72956e8dc8ec1707242aca395254ff1d1b83657a42cbaaac660b5fe5a1bf84c4f99008a89b95f2a88bcd76778ffb9af1da30d9fab938c06b27f60497084c2295abe41eac5ec747469a0a2b6c90f3b89bc9212891212c8a37b578f064d5da750b7415db3a63d9c78241aa89b08725239f95a588a915f59b3999a7d4b9c6975f4b154330a9ce91f91f54df9c33627fa17138c982c622e8875b822e523fa93230b6b25495a3f0c3a0ba32bc438e97ac1f6c9cf0145d1086711829dec59a4bb9390921394ba1760306c1f718cb3f69369ac67b0e9080477b889842a4ad4a977c1b7ce9060516fb3b3cc178bfafc2efebb7eb68896d2e494ce9a3b137b780e351a00707321e32bd9ca44c799401e9c5ec390b83bf72be17903a2ca0a6c057bfe8994b9a96ee905571056543fc8c4db0478c54a4b96ea4309431402841fc18b86711ba40ca8645053059ec853b8f8a5315234deb2a7b3e162815b6d73e0a7c83b367c0b1c5a1b0b6cbbb2ffa63bb5f4bc029c5aac61c06f378355a5c842585b95d87c26458efe43666f99340c08cbd67c9dde421ba2b6aee8e25c59868e4e43679723067ae95f8b910defcb71c7ea5e1dfbaa8da9a6ae319924411ddb7572da8178ddc0959f353f173c9b8cb178eff663e3f74a85055f834961de78b160cc94142a7710545e013079aea48e458b0b9f66133001307d70137361b4c6581ba2952176650a49c336a80bcbe5d1afb577bf996908a2bb324ca184000c7f37d323e4018fd3d089e13a9736863cbf238d97e594e63b17ca949e34c69d128a228668017d40392d5b3a03847f49e30e0bb232b4a34855b8685f6046ed54b122d254940230cf3b4b2caa26f6039e3372531097578749a35a39873f2c1fe3883d9f0a6cb14512943530ce3ca87bcc77281b6735c1689069c7d69baa3fe07fd803cfab86c5bee2a0676b7cca07a7904714561340ef975626d90abff99007d28fe303014528a3283a2e72364a4f400e350a3d64f928a9f00b3c7b654c17acef845bde08528e09595e4bb2f1911628e3be9193ae26c08fb14953ddb18af142227fb7882744b903f5861ddc98194a8af763c2a763156136646bba8ca491308d8969e6b2af25922b0afb53c653a2d14b8ff7d158bf8245a4663814520eca7608bc404e58515e4128910b1936a7b28a4b3261eb6ba511ababd33515c4410dd67492e3da3811aaa1dca011b5909cde5c1a02f960cc6142485b12c8b8a721b073f2882a043cae7a9a57357a52ed07aa8cc94b968629d8ac4a896c0d4f2a6e34c973095c3b1b932775ba5a25c41292a4bf0b996035f9cedf4cb8e5e45e6eaa17665c77427791073879e2d08186b33b5d8a773661604591236fa00bd5f1c679a2a2b67c274786b5cde29bc6214f9ce3ca04e3cfb0876b857b5d91e537ce3c63ef4498ff4c90a280a6ea1b3b227983df9c5d6723696b2243cd27ca2d1413cfd871ac64b083e11dc9114872fc3378b0478c3c489162b6e947b3f8010ec554428cca4b17c09924f5501a380d11818b4e00c9892c87cc765285b72eefbc44ff355a09b65f34c51c48b81d2eba1435f40401e36e473c6221c64e70b91cdba7525cd401ac1785aca80f2a1438ea8906a0458c543c45e0348baf6a6e4d24b127370f89b016e2a433c787ae131b56846b4a687ba905c644a993430d857c15b93e1f1b1db8f4881a1a47e437689f77392a730bac213146352319bbb254017eeed01a004d44d0ab4064f255a8791a7fd6c7f5aa8aeea26bff6b258b240108d852ed11a2922b08e7aba53a714b0a3bafee78236768666d851d567aaa5f61a773f5cc4fd4812be2989ad06af4a17899f9ca247a88b7021f94448a10142b1c1c851abc833ec5671ba92665081490aac3866669b4457c29227f62525b4df59b92f91fc429b652228ec5b409ef1878e1a4505884bfc199b1bc95b940f802a20319b221787a10c07239336756bb237b3cb0cab9b5467afc947d625c50751418479aa7e3418896644279db440ff20639d65f88b257f114891d11b7d6bb8c0971a0e2ca48bd95c087a57f9b0223b749286f4b1d95b49cacf65068b6b4b8c2497a4c7cad84274504c60743badf4ac452a8bf6191421ecb8b799234dca8499508b9c10427c6ba0adca91905821db7443ef612b8adfb8106486fa6942d4a1117fdea898dd1b93b46c3d56cc6c8ec7a807b776f832e8bfb24f4ea41d98a28eb7746e7708078c46479d752ca863922aa5e847355c7349e27f61dc02915d15389345c297cc91a955037c3c2313be35244d8c2534c22d9450fb5231ffec6654ec278604b364daa2a81c0baea553f047b85b3410aab6a7208b1baa6b0a261d7480a90abdb429145041386d080770a0200410fe4b868b93c7eecc033920a556b9bc3049aafc7da6a1002bbc7e89c5921b2a2811bcc91c2a1521a2c817764c7c3bfec9113415567ecca7fb317196aabbf8a34b77b8b94a131e042219f199b3e38c32a3c3edc7c093ffcb93f73860a0a3df05b30eee01f06454f38ba0a4d68299c5b8a5c6a3a207cb81ce1c3740681d1339680526600cc18996c4a1a545373d1201cd561c183c841a36a5aa0659df1c3dfb89b996c3e65b102b69a58f40123a955aacc616a010c6e9b54585ab95eeae1cae99161c5cb6cf5c1b39d0742fb862dba3b8f2b2629f9d077eb8a74843a119143aeb990b0f181c090eca10c214b59874bb2b32e4c29514acc041a6ca3b29b4d9c36bbb1ab35156abcc489cb55571f9e4771bd1084b841982ce574297b53e7f312cbc59d1a9717a2eb0901b32e088ba3fc624e741932b15654c7e9183ae6042a93151a9684dd1220365c8bf57640a5b52e1956056422ccd63ac3c3c72e994371c698bb4d14147345a2f876cc71069c582b41ad4c554b10a22e85318a319f5437be413255862b836835916a632c7a6a9f5b236a0e7c9567faa75ed2a5f69bc1f4754eeeb9b834da0c4d25b365922023b526f3ab8686d412d8334f85e2b0e10a9b2eca859c019e8b683628a14028f2b40ab918794c9b20a81b85964e0d583ab6054c45272a3ec849371232a82b4960f9661d92b03c00b42bd39cdcb22e202641a555457ba7558d6c60c471baa3d5681079689153a0f51a6f3bf5a417444dc3734499f943b2977e4e4429763b6fdf7c500741ce13b8c7c1db833380931a3ac6061039f94690dbd05b0f92389604b79542ba42b73864bc8e31c50455190b7bf191875456ec4379abe0c72034194ad5cdbb1a3aa2337e41b116c20209c7c33083914015031d320c86c3962ed0bc3ca6c44e6c1b0b43f67322e61b8204835780c8e9082f1ba5bfa4433c94eaa4fdc043fe2390c8d17718684e3c5c393df54a3a8a8f118c30c7a3198ce96bdf917de4584ceb2b886072016c958b47f530ddd1031e85b044e523895c332ff006b0776a6820c199043152d96c4ddb277b281194c763f4c78c8e782d673c7fec6b08856868c6015b02a0976154be400849364c262f2c4bcab386d81cb65904016895711aa79cd3604cb940acf8635b131555a26c23bdf13d62f10e293ccdf96c56d8e63c3e28320aa93020e2276b35555baa25895caefd86cf458506cbabbca430b1803b3b42e4ca0edc8ac7e52ba9843e5356c870657afa990dcf20718db61c1e63ba8966cfbc4c19ab925264265e1b26a6cd065530c19658600cfac17a57a3039a4a2ea602cc72e885ce3b1a6d53af66fc1d3c1cbe80420a3fb16aa509cf0ca406d50c1f746c941ff262cd5c420d57902e985231cb2675e3364e116eaba3987d940c6a089e8173772f007caddc8ae91ca2d5b23eb5e7cb936a417ec028df7308ffa00dbcd6066a0612291389733bcee83ca5cb8c47941c70ab155b48b394c3a49171da4a0be3b1a2495e8afea17b07b5bd953d85e6c118eceea4458f5d18ef7c0f64bf902b0a6c59462f53c64dcaaa7af1fac8f7cdd452889680dfe41254c03f94cfaf3e9849f9bdeeef3d88f92e6d31c6745adcd2a1ef162fef80fdbe3666449a003d7e +ciphertext: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010020001001002002084004200000400400820040002002080104008018400000801040002080180000208010010420000801040082184104200208010020020801002002000004200018010400020041002000100004000210000420020000002002000004000210000020000801040082100104208018010020020041040002000104000218000000021801000080000000200208010400001040042080104 +result: pass +shared_secret: a935f71eae79fc9629cf51d8f873054e4329afc1486047270f23739a80fd8c63 + +# Rho leads to frequent rejection on matrix expansion +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca62e0b7d8cc8d1d861dd052bd9bb622cd8b769551c2307c82aedc92accc3d2c67c3ecf8341290af6c93a295fc027895809a081aaaf3cd0131174c8605c7fc29ece47036866f7fc326f7c947f70852356410e22700b5480897f288dba24c494685ecfbb624bc189dca10d9307595969145b21ef4ca1c435b3d39555434e133f8ec8c00dc49f02788041a6deae40ad5c9a3198804fde6230dc25b7f86a86bc00b43da73b5b40e3943096fa4540a019817881b4421961e293250056300e273f3d87153765ec237a79a16ba89a960fe42aa887c65fae65719766c44b2b8a0e54e97aab5febb1c194939e11928258cbcad6281cd37ad6033b1c9982df721200e36cb70326403422519f3afc3451af15969c2b26957c452fb136db18357516617892214c758cd9b556a827434c9510a5f6094bd32c8633966eb113f9e4902b6306c87732b96542979159ab49a170fe71a23093c1aca70202287d8288fc2f56072ec7aefa293015b6a58a2899ed79d4a09701ba42d26c599d8a2164204563fb90ff7372e1ef7040c4b37bda74af8a45652510df4d67b7c618279d2844b10815913914c392a4119911d2b40da79b882534a6daa1b3b8679eeca4ef2b57bd48507b994a950b98865103cbda9b6fd38ac82b64859863864ea023fa6990f0898a8d3ba8a947fe859934ab06ad545133f57a3c692c19058a07fdab3f0daba0bb7846ef3222ad4bf62d995a7bc4801e5114b5c131130c58f76bb858abd1303003461442d64762cd5ce3421b52f492ed5660a4d632af3d24b9b5a1af291323429896fda2e21494e5630502aacc91bacc2902880c99890f259c1b9fa01e7a716a0a3a0707581acc347622369a4e610a1336047f3429ec16e7cc97607a11ff59473b5191e04586c1b32cf82da6816e47c72d7344e84a0d6cc42099781e5837eb6ba878e489172c41b4e2c3d0370874c0bb939c485a05851cf351652f82f1ba0a50fb235a6f10f98655cf2cbbf1c21acf999ad24f77ebed4297425b59072ccd1b6aa6467874eb014b3c911a0a9430cc86cca1aba84cbc709824a5f3abdf7f927d8f9a8c5d6cb955661fc7bafdec7cffd720fedf95353b01743613faff9b4c94c80472894c2322f641240b0d60549e4a405e9a20c0b794151a63a598e26eb021e1717723bbba58302096b563ea4217a8863350a7a729b0c1f8486a8faa7379a41515103f59b773be06a6b3b01ebdc67cff93147279f861114f97c3b9e7abebda5a51ed4518c6a20e679cf2a48b8bb354095b3ba14d07f3a61c18964cfad11b6b814b50c07bd2c6aa38c6c4b20d47778aa5c82fc575bf02b8967ac79fb9c1354bb1df83af95a839015c32f8b4387795038720c53f1780c6a5a42d828ea42264e55594732419e450afe13ba956581465a686a1659bdb21bb2083424d19fb0682687ab005f1111c4a43205db0633d301665c635dc016ba2762360474e728362ba46b52b54475140fbdbbc491ec5141e7947ba42053c4b63dd1032d8b8d3fa2c593322e5509c01a1584759892a910581fe6bc16b935a5931627b67e77247df0d3c77b94190920aea31c093a1a9146f75e51f07d45a607c7f4c38a5a23a3198cbaea7baabac8e70721b80596c015285f20ce45c9bc86d67a1942c139c9acac70bcfb7a1f0b993c7d145b4a03be0a86ba201647d7831c6d960420fb517ae68f3dcab3c5651f49d221037283aa4711bc3973ecdcb7c030c24b084ccb850f91d35e78e381970a948e376d4bd7b670086542a61be4c670aab7257fc58dad24a3afa727dff967cab9088587385ca15209c18e06b68ab8c66db7d680fe40677f8a0d6edb9d34b4b1901ba729338a7bb90f98ccc61676934d8b87d7ba15170017e9247a6445236512aaf23a6ccc629e2a2a7d748b0a67b2c64cb61aa549b7befbaef6ba45e0b6c3a72270de5497f6ea95059238d0d28aebf1cb4f209c24c8b83f19368c495ee05638f45b7002c12a23013f24721501d6aaa6c337af9185d8b733464229a8aab8eeb50f8fc5b4d9880897d3128387aae8ba6e2c116a63b5434be0503b77903f98a7efa5b919c4a86f39671a477c4569acaa07b316d8402a1580df17736056acb05379cbc1228aebb671f7ceb2a977e4f04ba363538c4c28f5a585d712453556b4cc74894740b73c5882bab36f96c27dca7caa815331ad4425cbc732ee3a56db445dec2cb7b3c5444e95bf796b3e69999867307af7c716aabca5854a2118eb78e92c9e1da4209ae0c7d61a0920e58f50f62aa4321d541a8ce7d74f456abf09b293f7da5d1549ab0d34044a624cd51c5ff3774101fc4e77cc76a0f3a1224c3ca2d42f92ac6a23862dc2539dadcb396dfc41e73996497879d8c396c3657c379acfac04a652fc4c32aac57e0368ef606bab471e52495369d7c616d3a3d01b668c7a0f0c305efea09a2d01b602c4a2ee47027b0c5f18994c3e369c7b985832a48372fa6af929605b0c1806539a0dbb2b1eaa674ab8720b9381688b18e5136330e303f0b4a9d6b5138a07cc372431c8958260c91c655551b35538860acac1f047905cbec0623bf9c33968583355822dd563af7b71a39113b3024074f865ba8073b412672eececcf8af0669413655c318bc5684e7a655e370840c59666ed8a6884c05060072fd2c0bde6f39c22c1348200855a66aac2155cc13233538aae893abbc3cb4bd2c87ca6f78c49691829a6cf40d7000000000000000000000000000000000000000000000000000000ceb5bdac24ea7f4ad6d89754c2feebb5ef0ac07688d8dd5ce8d9a2c87b213f0011536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 3c14f18e865f367b72dddbccd6c535fc2945bab3799b9edf5dd5da57f28a74aec23c5113f792f0a92e096f9c7af548e96c6a4157de843eaa0a0089e25b8f85ff44187a662845fb8cab374c143f4f96c6482ce7cb7cbf8f27e06dc50e0783568652043c45767295f860e63093d53213c808692d0bdfd10392bab65bac43979fbc5aaf04c824df2383154bdc30362c28d0fdc353f4f18bec2620a906426f744d717f04cf108aa91c82028ae847bdd5e66eea3ec0e719cd1a3f0d36965a8e2a1a03bf4233edfc4b5cfc7fdd8ec969037b3f02404e3bc3933ee3c2e910d86476d9b7667772ac75ea46e181e95b9a3157c3420ccffb064de3ffb32c1c855040eac8cbc15c9ae7ca1aef4c442eb54c3e574c9155474e93a14a5295f66e9ff6292dea202b9bb4738d7280128057586e0a9635459119df84bbfb083f0545d4d8387ce9a502f2c3addf0a7968fad11284277478dea0b29c96b364ea62ae83825011f1ccc6cd7a58026a4250e76696b836bc06f83e74e528d216f474dee938e78534fe21423cea6f843a70096f83e144208700d156261c091782fe8787b32848ab55390e1968370203e59a9a53b1c48a6a449a55ae997d5f222712f4f674991e8a4cbb62b67479b56933c290f701483d2dff855797323f19c06e692940fa32c9c2964f700b4147e23dba5313ac247ee26ca05d147e469b6e870651878328c79fe28158e29a6c41ec48356de5c2374c2d7ca435330264fba31bd9c1c85be3afcd456b3345a669577c996062026108891b8cdd099d91e3c662fcd1a2f28abf1567b519ffeb46e9580ad17a5b13c9c52c544fad1648495b77394232ebaf7e26c57fedc43bffd6021fa165e526627a80761207ea3ef172e8a26bd65bf51ae6ab9071c61c17b19d02e66ed12fdb851adccfb9ce73ea98839f96ce0eb6e1bdcceb752d7c5ac5d6c4bf6c56258048a21208fa289dd517511a5849899ac33d50e1e94fddbcca5987324230ecaf242497be400d80541101793f8fa5bd896bccec92e425bc63500305d69a226a165d070545fc2277a9faf16c5b004aa8c7e8c3147890cd2ab0847afffd4026ca76cc6b5d6c9aefec6fb1b21794e37c56aaece2cee1881ce64c9941f904c6e0143f0332c5b0b9ef7fa394070b73a62b2f811ad53524fbf9a038f185daa3546715acfd63c95594a7f18924c3da980d8996885b04cf7944477b2b9b1d939e81d14f84b129f76046a6d78482ff8debf21315f412c234cb776f529829e07ddd89806e343112d82ae23b90657ebadbb1fb7999c868b52f907b7f8aa131dd334a5332b4b2d8fa664e18edbd89b4596e34eb631cec9e81dfb44fded66b9f236add78150415c3feea074e34b43284765274defae58471f27a889c641069b436ecaeace548b03e95cbea4a424611b79c0a26502808b8e35a1b285163db948692afb29d94367eb43ae5df88467e4cbfa92f0f4b5388a975026c5cf0ad2b8d10c53f3eb5d6d94e5082302e8780e5a7dbe4eeb7061c02f4a46d6611f6599fdf2121bafb38789cc789f2e1730ba6be17caf12d5deed32f731126b3a75f33b86498e1c739db09c3fa2a97fd77a16ce0d6947e5c69120e1490b75cecf695390255938c9f884cb0248082b36ba19580130dbd292b34bed650c4eeadcdf15685ed27b6c23edf7d218bf7d98dfb3018fd7e14e68242554250886dcb6a0496220f8b4c4aed6c87dbdcf62b47bd8c07f6347773937e0bd0680e7e0d62720947ce2a2bdead1919ea3859bb01e341b814dd13615711afb12320cd914dbc97f6767c5d0d69f0e38b46e4bf3b132466bcd89ba1ae98144874c28bf476702975d3afc17fe4bb1dec671b85111e5f1e359c15d6b0421935e26a5d4eac269b64d122f9419a9fa0fd5d239fb20fa31192ba2acfac52c92cf5f339aa80c3e5a2a4ece0b077d5114df54349cc8f2b6daff625d347f5fa60a37913a1402bbf9790eed6ae5b67b87e076479ed1abb258d6a7e91ba07786d819ee869f5ac216341535995799e492911a9b077be49ab3538d3a52fe14e19b6a0d6af2a7df2cb1e5904a3941b079489f574e066f6c565828d2a312573fb6e90ea67a7747c8b55b1f117482c77022b38ccee1a397d82f272166b66af0ab67b631b2dc891e2ce4404e6446563489077873674ef477e9da7d37926489ef60b5a028e8b6ddc871bf5c224be846b9299f02b82c8dbead01d +result: pass +shared_secret: deafeb0bf0d0634e5acaa34966e58df8b9bb63b376e3409db49b4b117643fdc9 + +# Rho leads to frequent rejection on matrix expansion +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc8cb39ba3237b6f13c80ef947630578d2d213f1914f94c61429bcaea77c646f1b99d35ac8009907ccf604c1211ddaeccc2f1001b49776df94560e5ac35e0a7ee3f39377e252d83558d6e57651b0b3c0365e6a133dbe3002270a0bfdc524e5d298b42c1408e17d155c82d69c256f78a69937843491153ec2117ac40370934d28783a69d0a02526afaa8600d289c27e9481cb737cdc4b9ddf53caf313b3c4b862b08045dc38428b126622d77ff3864fa93919427b049786042d234429e9858ce7b1d57a2fe92979851b9d4ca23fa7a80aa4738c9b777020b857b8fa2e442522423608d51b78c574569b9746e441bed403ac21391fe327818dc81355bcb2f5758320965e10946cda9a7c1d329f7c1720857c8751e57b87186e8dc21199e3b7ffc1c4c5607cc3c258a30163131c5db5d96e2e8c2f209419d5a03dfc618a53b1799cf102348b89ba289fab2b206f61688fd974023619fa5187b8cb28be778b666294bf029d7fa9abe3ea739f131930a13629bb6fa7221a788591f595911d3c8a6625a032f393adec83a1bc0379bc0fc42015610c1e8fec7878cbaf623959a22008ebc81ccd02b0847a7318b414f1ac47ab2b0dd88049c1047e4331767f3847bef0750ac4623696bed9c2162d2b84e0b4b606180a6d2b6dbb5190bc3c6a51780de86071ce2a0f05758e199983ffe8349c036d6667870296c76930b34260af449b2a6795b4fbeb3309f017e9f820c145716a91569057a22b44bc38b368fbe221e1f92d0d5430913580f534b8373aa760d47a0ebb6bcda55b5cb62797b819cd185ea798a1b9e21391381173d2a416eb98db74895085ce31c868f52a2f7654b3779a0a324126c1b3aeb73c073deb19e7925126aac8d87bb09ca69b68dc4fb17bafe16a4315677d57d0c36e9479fb03a30609b7456aa8e8b76c97100728c46ac8f39588f7062c1b27fbd12f4c9bcf95f24f1a698da0e78ff1f4481691068ca7070d341dd519c63815a2fe3286155c741e20a3bd8c89ee6bb069bb89b7aa1b1c4b4ac85699ca2c786d8305cf1c4527979442fb4f3823c7dc887abaf866fd1b20a9933707c23036e653ed99476c242c791744cba152f45040f6bc3414a13dd8670327d50e446a22b07a42bc056a95c94d911356e276cc95d585aeb25f061b87da78550805af57414cec34083be60f6e7b0ddd1a9c60f5725681bb70db9390014df9dbc5e022b4c24563efbc2b32604aa41225d9993f924cceea9c0196a8065237cb47035142b0693d090e6ef48ce85aa33b57c9bbd4c1dcf4b8314162e0f9b44e01732d6cb7876559096620e974cdfc263adfa1c8d94ab6080cbd42fc1a585009662640eed3353117017e754db4cc0901f3c18e6452667312386b8bc27c32cdd9c11c14403d390f80f121c02500a1d03942c0aaf56a83f3f062ebc708003d7deac3a47f33ce9463381b19818cb97c8d61c320da588105651f5496b2d38615a5929e50234a54393814311b52b678ea8b50e3ac47c30ab2f99998a481602b4aa701384ed347878b85b8bc108eb90bda44423e620613e223ea6a03708493b7013be2b926daf33fe3d81fbd9795a885accd8b4ce3ba33ea57bf04530afae5643bbb4b22981ff5b097e68c5615b70b4213b3feb020e968734ed33b6ed87cbf5468c5f055a1dacdbb9b19d2a057a6fc371d389ff6084fecfcab2f0bb66d0931ce29afd098ccc4020af50275fd5600f3b31c063174cf5a63363752cf5612f121bcf549993132c71dc5c4835c396f2436a70092244c82b5497209b779786b3a399237e0a7237e550e0d784f1258c540ea91bb99c915f052fc8164b6c1b88058242f7b13a98cbbe1646274105f330ad0377ac65e6acf89987979d44bcff381620335ef93b9f7698527f2c55a39a4858812e9cc8c99aba640c7915bb1475ae172bbd2251fb2695b842d27f688e1e23f607905bd347c83db7376706f68ccb72c94519e426840b412944c7181f72f98a56c0c5ba302ec728b31a43d6418984c47dc0276bc3cb6c2817e658ba9acfaaa1017659d10beeee7a399e6049dc62f5795558c082f273949d9f82cab2c3977359f510394720cb9815c240ed64ad4f4c4b27057da3abc1486942d01c5852658a267ac18e886c410031bd9aff0950165b53e53cb28b21172b1866d2dd16f9cb59c9bfc8aac8606bfbc2a0861a9c7f62d3d41074e56a73615085b9053fd2ca533470c06970c4c6a097d0b4661c2b001e9bad5238392b811a1276ed0a65493080e94b7813d9baa3c05c9f7820f77e4af8891170a6ab302e23287932b82364fbf5abdb4f2716e5b74705b0756eb6e3b1ab9f96707ffa05d3afb29dff48a004b86bcc784ea003727a49c072cb3cc6cbc4473c40965b5f76670d8cc1a9fd3c4982662b8fc2d9e982debac25d891217dd24f798346b2ec770c427f49ba4452a1c8d49b9089e751931bccb07557db36bbc13225590cc94586058c3c1ba406633e650f703a44aef3c305f652a4f4c785b02eeb40cab763731a7c20d062125a24b2bc58ae6c4a0aa4e4c5a330cfff7a46bac4ca58a33127a8bea7d5598b29c49366cd11cb4d60d71c0d08cad7145216a8878d6c346a32a948b52300c8448d55a532877daffa805320bba26a9f6197a08f71b4f9210cdd9c3416263f5b921191084b87236649a02e9f0a20f09004bee065485088430924326353ad90077ff0a10fd3c077111e909e000000000000000000000000000000000000000000000000000000685787f0aef0813a97602f4a313fcf54eb7464005d6b50ede43e1b99eece8efd2e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: bf6a1a4a5905e3b6bf5d5fff91790e56f6152e31289585d4209cc364cfda745e4da6ab9baf213a75f7f6ae50b4570298035dd17a7108ccb8a5f511a0377562eb37eedc3426e5ceeb793eeceeb5f3ca4935c68d352c6b1ae2bff892c04de562dc2197cec88133bd7384679a1c7cdf80a43aec446e60c8690c50207e54d1d6771bd41ca54654b835cec7bab1efdd6c0417d06cd74ee851c4b0cbff894dd245ea33bfe28adffbd0ec8cf6b34148c6a8126b988f83f5517125b998859abfbf4e9eec1afba438faf25238657d0b9a370df6445dd9527e85502ceffb25e13fe6cd8108475f56252a148ca7d11dff8e83c760a239da62f994dfe5a4d409feba83005402252491e87b5d585168dbe6c4f9b257bbdf7797526a208dd05687e2d8176655848e9f171d6fa63791b02e6508a58f70f461c5de34ca3713c1c0b0b280db1d493ee5103e768ae38482a38692425f05d91b496b47743f28a12d34cf26a7ce164bea186549cd4eb1e0e9558902aa1b63fe90b3b5a1ae952676d37395e64c873f042022c7c9fffe06e875a7828af940e0c4bd0ecff75d8154be5bb5d3dca963f35b0d5d45020c4e793c4f895983a71a1f48d8a6a03cd58f570f56eb3affe3514f89e46dc9a91cc466da782e976aaee83773a481788cf872ce552fc56399fbc8f802303a5e8a0215fa3822d21393d268a15e617edbb9de328ad2d92633fbac21f5efee93588b8f8789aee93019e61602374bf84e004174aec2a98939d3fa29462db61e3cc1acf68606802fe312336e72ecf9faa23177235d7fb3b00b5c8639ef16af505f42943c3c3b8bf0b1118ee78dc8143fc74d178b4db2e4eed82cb21930e67d5fe265e2c095aba86991fd378f5bee637e0a6e283440d57b11cd6e44dbc55e06a574fe959d946b54619091a4a0ea394e5d00c707bb11595773241b23731cc741bbe253369555934daacb06492991e8e5238344e75c7b3b6d85cff5683a75995216228922bbc0e5932bdde90486569d60decd6dda4cb4e8961a1beb45e8e0dda5fe91c2ac9e709f4585f4ccb56d89979767cabfe7ad88094bc975388840c55c8379ead9374b5b368ac51fa7ea08fed2519209ba78dba663a6c2d352bb9aea6bd24131178c52d4a0e161496c758fb8a451001292b56f69180c18aa5afd1a6c0bc1c141aa68fbb9b74a75f893036f3ee4b65eac6a9a67694d8473db851fe78d0ed544e2927c9cdaa0e8187389cc0a15612b1ac53c59ca1deac4cfd6a3944b7df446a0121dc81fa7ada3660e27f6c2f65311f9e2e9a1f97545a8b3c6e226ce547a3d9d283cf37338c07e2f426e7017a6a513fd104b88cb8b9a92cef6a1aee3f12f258a5d059318830a6d842563134e896d577adcd229548396e5b1d3a1bf80b49c064cbc20f22eac0a2f3da972c580a92b293d99b820888ac9b3c50f0c16ca80147e5e73694da824b0e1e1cfc771773727744822e933d2631b1376bdd88f37d124bb6776b83c5918ec63c48c8b339b62d1e487cefccbc8e9f3276d1c29f448c5c37b33a2442f096286e64b90dee751a6de0f50197805a6db4bf77a845df7770dd34a44ad0344caf560c77e7edc655604a4d42e591842022d64c1ae605c749479ba401a31867b4a11b978ad690b4c2a7cb6d0ea262e15ddae9025b522312e08bbad67038b4c2e272bacd18ecc2317410901ed69b6b9f03a6d5575efe5a9c08463ccee314a522fb24163630f888c9eef18539e5a088e80f4604612515dff0e0bce97e9788d70d148431e8eb9cd49f52a42e21e36c392dab9aa3f3c80e6e8f812d18be435a1b073f9c346856446dc5144f5e6776704342cc877b6bbbdb01cae23a579f5238241988a9ddf5cc7f2bf64265b465fe34d911c10265cf7d2208e526d51467de5fc1dff6228d771b643f4e31ac9edd95929eb89c98a3849a34a8672660f8464c42d6566d5ced7639c2f2165d505c7eefe844649a605a3622e60569676a41cd7db48ac0fc624c1cdfbd8e1f07ec14519023b068dd1e58e720d53e61560b1d00f7a1b0f59c20139874c4d0c35004b5477cf5b3880a95864eed75de14c8be43a52cd46d6e4e510058e58d80096a243e191471abdf0f2ed4d7d61ec97ca4b7d2658294a15cbd40414ff3e185a809522ace539bcb806881019930bdab728fa2f2d773f7997db7aae3927500a4a9b9508d199fc622bf62f445fb0c0df9e50e34a833c0a +result: pass +shared_secret: 5a9c3568ee557530a57078310ff6452b09049f55f30df0704f9607674971e033 + +# Rho leads to frequent rejection on matrix expansion +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca584a4780ea352e9dc85393457e71ca62e85abb2322aa45c4fb3d29b15d55a027b8a74186000b9a05550b2a343a3ac21b0f7a2b2aaf736a1ca49df5b61fa749266b0696ad7b6c48b0dc82803b10a4b64d6caebb33a13c60effd699ad44c1985c9e3f8ab21a0cbd728ab52e07c4bc5ab3f6c698ea307f435bb7b5545c44758fee3b9077b5a318c2b584012cc9b57560236be789bc4b026d1f26a857365b2d1a6e809a9f71e140ec56c4db3829b74539a90345841483daf6840141100c66cbe057261fc346ab8c36b03cc2b2ac838835cd373836bca05d9f57ce2231980ea1bd9908111e79b602572ab37495e9f6025269713f4318dc472d06b473268bcc7c5cb956b5a1ebf419aa18b9d6f184849240470607fdf6325ed561c270b095079734fb61e04c531be893c2621c5ba48bc897868126b995e75777c8ceb100c67556484b71404be802ded5299cc41a83b0c7a99c8d36d55f7fdb4697c446904c2420d667f5e58e0837778ea960bb6605890b8437f24f7d35acbccc41acfcbf2e35270ab36880d67fba099be5882ff1e53ff300bbde74cafa260a124624df72a7f73449b253525e75b658656556422e26352900a0b1ab258dacb5cc3ca0ae9da2826f15b8aec76676920168492ad2b9b56714b3881103634c1cf299403864cfbbda1546d1031e022ed172960171bf94894dd48331f5973bb509d068a32a60f56377b911f5226fc77ab27ba0295ecc70275a0b311284eab09825c14ec7826779039f3319877fe39d8f938068b9916fc60a7359737a918286b2c943801713b78a8d14a558994fccb48ca20065a013318f099917bc930d0ccfc54b6aa0a7791af5c0443c96c17a5a59666f73c395139268024a49bc7285aa7634ce461814592e74081c04a99c84a2205420a5a9777a24b11717011d897c2ceb02cdb79b94d26862df47cd793645b6288f4e7a1f5d18a1bf732dae8850f289307ab82ed5ca025c1553b5d40c6a776946016016ab5913845958904b53fbce279979dc36a0c6b2c483864b33178998e090d0e01d263c84daabca5258027f57bbb99c00d817749b14bfe4902ccb65258d50559d6678206ba44f3c0160dac0434a1e2d25bc16b407b0209b1b08122c68b75a6a4f22e50387f13a3f590ddbca358fc60e8802a25b31bc4ff327c1da127b20132f0036df997b0c7a1d43f8758b4330452ba985c9241b1879c0995247569bd1a1c927b52bf318695e73102e892f9588a527c68196b625ae412b4fb35ebc3c147a4c3860348a414875b60233f8061c38000401452957fc7223303930e653051535e647943b1a50d324108189955e589d837b1ad3fb331ca7b0993c0d5275b2f9254fbdc87ecdc8b28378553719b1de9297bb65abe703294d11aa41f7a5832a7247c100002b2c3afca68bc729f0f2432ecca03b83b6c748cbdc457e1906ae03f25ac5e37ab0880cade4c8aa6904862484e985a88f54c0ac75712ca9706d9c6e130376a14549a1a7a9d2bb155e797c98a22076e00343a55f1d488941a6527e808a65f3b79a73b46c3523f71455c0bb33d26690bf657900d549988cb96069cec0822b1127cd9456c975cccc86486ea3686f46e0ac92b35ff2cb881106c1803823df12163d004ebaa45919dc7a2c304868885badfc4baa43bc386500b1f8acbb0734183b674b338cba409684f993d8a6068d466d4ac82dd5e42f336badb7c78aa41ab2d0eabc90d9a6ce033f1dd9755939a8854498c7415af65b52934246ba521fac2780b0e1586e351dd6266e93ba9e3955c753841373dc89504c7361081034f02e18311fb2297fdbf79d004ba49cc916836209965c6ddc2c4a55b667eb1c08d405b01bc6204250159fd55485d29c48da37dba05a6cec2f856943f383a6a5ea09c947c4c7ca849881aa6f407a1e86be6954b221acaede360ecae49ca9222284695f93480ec710365c68847e7b839aa81d84c6bca8c7a71127a750e078cde65bdc649b17a0a928c8cac51a9e5a40608f21b3254b3e38f81aedf4c69bd49aeecc32089634450c42999357d432a82a0b96a789c3001c7b9a5b55501a7f360616ba7a648648866228bea7520fdb11c70d549fb958c673825f98923469fac9af62c702bab67f29815b331a136b34b29bc54302bf7f35721e722a01cb7a327b078f590864841926214a3f068fddfb8cb196c7a8d8c78358488723bf508a27729085ec4c9bb7337834212b2ab082ee1339a8c64e267517db35ca687826d4b62d40b60aff89c720ac62fa2c3091eb87c3eb1f33272585a6c91d8c669b1a69c9211c098105a0c58960137b3563cb16da942cc90e47c95bb0f9895af845024692bdd99e87269c15f82468454791c7682c8962bb8b85430bb6ff067df8bccd78a476779b075876350b3668fce84af7e5b6a90911f973144740046aa7bab4a1bf2e6961540990d159ac6884c85b28309336ba18ec9e2455cda24a1c25246375dabb21f0c252b4319452719c84756d730a33a90502b4749d36a2ed80b755a931148c8074065487504b5a7c2db6f648adf92d8c8258d2689f921123ae5495feb095b5c4981a860df6478340bac21b700601d324c9d0a1951353fabaa885f00b3622b59d31cfa2eb524b3a5f33e520c6074382ac30cd9636f9c3693f17595a4942f2bbb5b168649fc35a3ad63d11179e64c0a7cb258692087f665620dd0125e5a8901eb8468cd2007020d53b720000000000000000000000000000000000000000000000000000000a8dd5506bfad75f5a719996c4d3372ebc7315ff25049b350b6d52dede10546d5ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: 516f535f15a891e51513c4f47d87634dadaee540c8d5c4970f199679cd8faf38eab3c2369df56d5b31722036fada3011eaaafdf4f83acb5141e2054095ba0f31ad2b89532ce8a55908c9349fa23ee04b551853012e712538f02c7c6cb9bf3ca670b8a3319aabaa5f857586bf1cfba6226144b9b40bb90a706635c1a4d252b8f3bdbb3eaceee7c0dda061b9da7a3166c1464f970dadfd92cdf2f6589dd8c07db7d8e7071978c7cfc432e668eda06826facab576af7213713abb2c3538291f9d09e59f956b6f2946d67815956d3b9a492bc2bb1a2942e869245ffed653be70f0e39ff06ac55d7f8282b331404bfaa3ba7213c17f7939238f7f00931e39fb5e97bae2d4f392f59ccdcec0881d75da5933c31f20d66b60c9383d36aa12b1a975fae04bf808f6ba0099a838382b844df1bcf1366e96c462e2219ae96c3d25d10792c775a2d488b27026e17dad61745fdfd44772116092743bc74ac5bd519dfa22a39f90f4bf38160daa52caaf71778f1c2030c8715674c2aa7191c988b6a5ecb02bb68126816db952393e8c52e91249f14e920003a6f803b09543342360857b2de0b227feb86187bff55245d6ea004d54527ecc6196155d0a32fb1f97908c2e61ee1528ba98d039096eaf8d4bff977f05a9a0b53436b55d2b9322cf1b0f6891b0573d44eff7515f5005f0a12b7066180436c24bde5ddb183652b1f41245f812981fe0e97ccbcde1c2f3ef7423d1bb5e744c05ff49dce1af51392851a716834b4f059fe179f1cd31860ed8ecdcf440f62333c86a6cb7c21409fe20afafb972cc3ef584cb76b85208c56c676f21eb27bb490263fafaa2e23e8f3379023df3250678d0287badd7cf425c04632c1b688ec438dc6b3963a26e69e093fba5ed940e672bc8ae109bc78dff824a04b90dcd5a5a453fecf60c33596b4a89bf683e1ee5a3cadcb0a6c1371cf21ff75335f16d94b67c0b774c38c592a498a9d7ace89c5cccd998a339c84d3ad90e2fc96c0d1d4caa6cba13c5a11a9e04936f3610e16b36c2c37bbfb73517ac10ed3bafd6b9424c2dae97600458553a243e124c85ce66b414129f3f08cd48b33af0a633befa2515a5b7eff8b6ba70710538926d05ba1fe341426278efb17b2b3769069cae9c051168b5e5deb437550e1eb7c0bf88c2514fd51d8d511b7ec90c233b846a103c0fc516e8dd0805c5a2b0880b9a5e293e0511926802b252b7781332fd73be09f02a7ef234cd1cb1effe32cdd7e3a37c8668884cb8e6cc10033f42786c3ceae1754dd4b7b9e69fbc8273e27f977b0e1c3b320d2dde5f9edbc751b742ab24cfd776a67f3a5d52409911d1fc1dfdc1d35771f5ad35d19c36401b2688118efaf1c71f333528ec6140dd2196946d69c6f1b6f53428904dafa316bd4a28ab7fbc9380928abece9ad7ff6c6a9c26fc581550900b7e6e4db71118da5d5db5c504d0d45b310abf0057523d573f868aa04a99be48cc694e194737a1502c2a379ad39ee8d6448867aa2c970c84f00c446236ab4908d791d304f69089968ec5412a807501f5a11ddb06bfa598ac07ec27776415da98efc38326973d6908c1b8cacb95cf2a04811ca39bf1ffce699e4c6d8bd35e51e4e02b89a3545391354a8f4d46beaf9864794524bd6c975b15ae0dceb2c4623096d75bd1ac8991880b3cddeced70fd3b27af44b2d36147c2e0d34048e4f30de879618e7208529d30122fcb179f754d2745169afea6e91d5538d67c54648faf2b61ee1e75154db58d17160dc5a5a36fab0a8dc86e421c4d99f963e6822802adc7b261357bf34fb4ef076d1d617e3ace0b8936139b52bf6ad4ad26205dc206756ca54c972bf932d4d0646df0eaae7a7bd2962b26df4aa54f4e9cc353896163c8b48355c7df687941949ed03b3434102708f881cd9a114163fba2263e29f992eacc807c2a96dae2cfa5701122f8426feaaf2d739802b29f1d70cd6a46d1a8e15bbda052c2ea8d1f41d4a5d856c44ebf9c7fa22005eebb61c0f0012e4e36b2ac1926db6938790e1319b9bd66de5ba35674bbf22317731a8133eb3c45cde4f328275592472ede408060462ce06623926426e5c2fdcbf725d5bac2b34e0c887e668e0be3c1cc7ffb97dd030295f8739c9813bb429c4ad0d381bf8958d76780beca5b9f559deb25905c618fabdd3bba6a80085b2e5b048a93ee2673447a70a58a09f06a30298ee8d4170fcd +result: pass +shared_secret: 2b5d1e7837bc6877b4bad1c4b7e04276d96f318dd248017846f71328d85e2eda + +# Rho leads to frequent rejection on matrix expansion +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5dc9ba816e19d8a177de33a855960b7c464cfd51a7279a48c80091ec357b9fd118e12f00736036fa8268079754a4d565773f2a5d5c913109a4606a276d07372eb96474c7722d85a17a50a956b3ca8132415b2c404a0288aadb44fbb00217c0005ee36137768c3d4169d300ab2876c1b2a92c0cf119fef5018bf7acfd2031929b9671898c64388898fb74a483a100ce2ae67275e53b00d94c2888f831a286631450308aea2580fc5cdbae53b7108a9d3cba88a437a5c0917dfa3bd7fb2266f2b2f57f52724b67e58cc2781a95191f60a34d74199102b5fe941874a4433034ae6c9aff9e2bf16f01781d72424508835e3a587903eefeb0b0d218e11183cc7293c81c09cb5fc4eaba4cdf22284206b23b87566da704665527c6c587aa3070b01e79094747a87ebb2b9e5296a2405528c224ef45ee6fcaf0c537fa2e2479d579d71a3400793188d895323f274077416f94c4e68811ad9c73598d7ccd53bcd18f8b1cca8bb5591298132258f4210d36722217c2fc5925330d03d1c037cc7d520f52b7774187555c00026e85418aa30f84bc81607376ac9c2e64a98a4c024c7165610027967228cf5f85dc88ccf5df023a8cc0e76723c97b99934766caaa3bfae25afacd39eaae56cf36023c6e368cbf38f27a268ca24845c48a85f2198a6c1744c73c62c830c34b8248b52b62f847c3ef87b6458235fd25cbe2abe57aa62709452ca6412c0932c3a10bce9181628631db6a7b525d1c7e5231e33f65470a31371023444926a19f80a67495a9fd1043efb44adf3789c576577f5ae6d136b3268606fdabe081509fe1c4c05077a6805b22eea9f965666e82866a47444721a3e7647250ccbc69df06b3e3c3895c30f6d275ab624913173952d630aa72240bc4b979ee55ce8505f42f1b7ae797f53f4b23616a00df2153fe89c94391a35074946764275e064abaa01487830839616df9485423029b470401cf010fea769d6f237cb00bc2e8c13f6c49f740c9544aa6519e93dd824ca395076c184b2b2078e4a51622401be47f089d2668260b1b8817052d0c407a76009a0b61abb0a0b3c481d86d4c4fe19b910d1b34fd4408098ae5a599e7eaa04321c44da53297f788d9c2a0707f8788780343a80cfe6119bccba711424cd8c453649870280568347ab5bed10b57222c213e55c703ba7f154939898c89e43643635ce47534f770c44dc839f295b1361a9a6bfd494baa2b8a3264bddd204f1f063887192a0f1849e2b0b3fb6293c2cabf6fab1aada5ab9c35a6ecab7b4c605d6178b26203ea82a76a9fbb7d95c8cf0230dc2cc57128493d0b47324d333ace21d3b3750ce6584cf193a0aaa25f8f865d93495598109d5b07450bc9c590905e9a19934e28bb5bbb149f2b68965056b989338240d1fc52e87446d3ad6617927cdbd268249b785695311458909c62a724db618fc28114a904053ca89d127150d930d583ac664ec1ba08949a027bc86c403d0865b9d3781b0d4a034067fc558033760672639697d649f8bc4cd2a90ccf2435fcbd98b3dec0367f02889991aff7709bb0503a2c732c3869b4f969a75f797f32a323d546a5c47ae6e3292872ba85414c7cfb28078d67afbc42894a92172ec2270974a259680f659a03147661ce4ce94d608b62a660c0099ee1460b71b4c091110ad6ac5e5c5978ec04a203686f1385573663956e8c77a5c29ef06235b671ecff82e49d68f8e0054409c68858954d25162f0177fb08b29f5d9afcd4cc512d8b0f42877a60197837717887849ee127d5f76871276b9a285307e96890fd3569c9ba5c58664cc20744c9609bfb859f72c85363a34a721bcfbf2b9c48c1ff8d813ca596430d62370f91b342516e650173c711196a50396e43b46d6661087c4adfb8639c0cb17183dae91b95e1832ac14554909390e087e3bc09e9ea5ad53670eb93c4fc653a6798428be514d6d00509ea1310ba84fe56b2eea2006817b31bf661dcaa3b26592898bba2ea0379aeaab254b9b62c4421a06254798b892272095a989513a2199c8d90afd753b574ca7f17c2c96334f32a703dfe4735bc2965db62a5c995e349bb1d6c63736874180b044dfec8c83527731781dc193b68c997b4f8637a7c86a8c38172e42cf4ea46dd43abed5b0b386508a00bb0203d6a8a0ab5edf228a85aa8f9152b48bf1bb92240c92059b531b4206abaf3478c41d0c1c054422a7fcc405f7bbf453cd9e133208e2475738a03e1ac2f18088cfcb51c8ba447514aa59fb54066c979de9c38c43cde0162f30023c3a1026a2a2a18cc6c0cfc390b7336548a06239d287b6709ba92869a8673448e142f74848bb38b1ded527b0a69370910fcffc53cb875b008d7505428ec11b3f93c7ba27664ea1099f6dbb3cc1ea7d84e1807f3b5cb1b2bac0053c8097094ea73aa033221c853f88672e3ea335a5499502037dbfa227aa458d5ea59d80fa4a2eb72fdf514f4fe22763d227c9a69a5769b63168c4b4fa9403e3a1ef54b39e6568479796c591afbbe1a911f92df63aaa698a2f5309a92617242999176239bc01b8ad26b02b6d7446d8067a52d40c424b99bd353de13a6defc9a92855763fbbce9f648715aab80342beaca6928a036c08361643f669365105fc6853db1a44ac0b574a842e58a74905c9c437fa375fb22d7b113ec4e91319926168516618139d8edb60574774bd808f88457609127617c85394c65f2e3d78ca47000000000000000000000000000000000000000000000000000000007aa0d0036620b783edcee3438127f41dcc173ca5c8a67d52254a308b80bdc28bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: e831dc3e5f67734ce3520b52763f64d8f40199c8dd2e723441f9d9fe9b33a1ad8ec79fce3745bc53ddf45990ee1f86fe0191cd5515093eebf6357409891e4822b543373ff83f3c0f73b67bf1e15cbe8b95b0e3dbbb20f10fcad2bd05778ae106e8ab813a131469bbc6da7c2ac3b991c6e070fdc7781cce3cca56fb572ca822b8a52592d24141f089a4dbb842a4318a223b947aa7684be12273592e0d4b6fb65071f9292293a85eadee0cd22b6b893a683d504906923abf3b25e0e7024e7b499b281c965fdea72de1f02fcebf0bdbbf6e3ca02bd05089f79f641ad199300cecc03d88d41360cc895e77ffec06f835c5cba89e8e3d17906bad950b85542bcc551588c32f0376631f554cef3de448afccf8efeefbab031f1c95e569c8b90bda0038082185370403ec340ca345c7cfb1e82a2c5c47bbcfde132e798f53da8c33adabc610272e7ff2037a009e3d3df4f521e8c9b5f3ed7cf28bed5d25145926edc4ce783b11896be3ed184e3d9b92b29dae5510fbec4386e89bcfc033704d05ba91bc6bb09320bf017ad7c567f8eedc273f992fb6d6dbdc9fcebff8007088afd5c9eeb3b14b152185a01b8fb537530b7369b30ed437a280f71597d09b07c1477d8680ede31997c8b125267777437316c44c3b1a1251f608ebf5b37416b5a2914edda779653010685c0d391f888073bac0d4f9b197fa009bc0bcffbcdf0fe2335d6062edbe8f25f87abe8f75b80e9f9cb6709057271ed6690c9b6bc6044c218d65c88b8aba768350567374b66e0489803a9932f77008faee9a83402269803ca5c90592491c686bb25b627dc997a3a8c6db9e5233e02ddb4e5fafc182bf996f741f6f34933d7ced8eb86da62e2739f8a0b956ea7bd854b1c6328671adcb0e233ab192e6f77594a2a3a11dc534a21b5e49bfa45122e24d878c4614180b230836e95a9b3dc8ceb7c826e83a66bed645bdbdc0c4257cac60406306bdfa30a8b8f5a4480db8c75b68b31604cb3eae19b3893d3600932523d0c55a4ed3bf8f86404764187dd4214de1d9bdbdadc7c9fecf06a823d3b3ae16561b3b1890fe1b9689d92e478120e9c38262d312b3ae2eb3d773d946ec99f018a6963b261fa65de5887801882c64f5598003aa4dba947022112cb33febaf8b224fcd3ed10cd2f6b4396c966b5a9709e69c7b7eef4a926171762ad9707af6ee93d4c17b04af42fad670cb7099393d8182045a22e1a7bb8e02da5d4e1fe2bf8c8bdabf7f7e2a3e1fb5db003cf8078635dcbb3cd2b49cb3b8d84e6ed64944c2d75cd6f557deb1b51029df2320ddbdee99f41153cfd7ba46d44c63c90772c3d60531f60e7e761913dcabedd57bfeab2fd0d8bf7df560d8fe30763e7d45c22459991ef1583e6e937edaab7e9f1e8a68552336993460c3dfde7f3a3c5b8b44d6afd57f04d62feb97290b488286426c48c4c87fcaddef7c06a534b671698718fa326549ef5e8e724cb11c21f7b362b967caaafd8205a3eec0a52bcb0d6ed6a1d0c4f433cada99e021047536782581584ef2677b3f3bf75983630e70d57f90b13c369bd4103fd643953190a536b05ea60b47da77bd0f6fabd0ded8f608a08d807234b54830aca2fe82a181626a9b9a219246b039036d1cb04748a2f84094770a12de1411e4510f11b5d090e79d8185cd8718649d88000e6f9571bdf78623a85c42afda73e637bde0b5a5e73aa2ebe2cd0897ebc09ad6974d825a5540627b1cb0e7df03a73b91270ea6402927bc4698cc061cbbec9245024e0515bc27a52714e2189ff3a17caf5b3530b781f70786f074d5c01b5a108cf7d13c2363cc54c73ce71b4b33eb354dc377dab5807a7d05808833c270d5735fb1e75727f66d3ca1ba467545590f3c2fc1218d94bb264ae313930ff8485d616cfd5a64080837ca618344559b46ca89c8b29f83e9a2bb62db57cab70be4042e01f68ef54d3a915d0eb51f21ff89b729ba4d63c6b2fb1b14e5e397f13f0c277dd81705581de763d3a3b8e2115156b4766d40e8bdc0d68bf76e14233d8be21a68d881ca6f5a11a1ceb0393f73a9276eb78bbd740e4a94128e6f5eb00aa10974cf41c6a4cd22ead82816a402a50b306b5312ba196ea4df4c5386668079ccc95a75893b834415254b2feb5b25f0c7529d6954a3657fcef64a8eff497b95ffbbf20bf7023cc62f2119e2f06b3e5fd22b39feef1acec8bac4962bf52b90ed35 +result: pass +shared_secret: cce58b5d736b86aad09ef4782fe87a0a4555c7f0a4b190de6246cfb21308b103 + +# Rho leads to frequent rejection on matrix expansion +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00dfa8bb9d8c58e33260020a33fc04021baba0f6375ddee4a6023846a2dc73eb69758edc915ab2446b1c59fed89bbb86a9be2242c117cb719274873c8b0a2857e4076b3a792965011675c23deb8bc0cf7b2e3ee38493461f8a2068bcd899f1822dfbe8444a612f9fbacbf87a0d45f98a541c5141b230be12763a3563f5d47e369b65c10254e5f63934a05c8ab3409d7b4207dc423d537abd4404a9ec6afb1cbb529619bee740a4c71efc952b3b871043c24c0c919f74f508bc23a9c1ea8b76ac449e28379af42bb6140d376c9a4ec76b34042c7d711efb559c8c87170662788b4cc907e4882d4332d90c43175cc56eb943d589a30a5ac1ae312aeb8432a1d7b2f7448fe0f48ad069989e908d28616530246f8e817aecf6ae638acd7030a596d5be06964eeada35f6175bc0d20c26636943f1609eba3b8852531f083a576231c9b222a9f96ab1fb79aa0149155881fae91adf26c4f1e463f6f603511311351c6c1d1832f482306d66a4a2e585b7e223bd539fc45c5b29558e3110cc268356edf4bdfc2177e50618c73948527b9073c885ce0873dc47350eb3a421f59b4cf27438ca36d3f271b4467f61a2bfde259cd4a67674c4a1827a7e23e24e023b08aabac3c8855d4c737f0e73600f368a8614529aa4217f198e1eb69696f2bbb829835ffaa069f31b1c9c5100ca1ea6781b47c3bd788ac8a3831a56b08093fa64f70a1d3402b17b184e96dbae2b84aa75c2116dc1ba6183c6ce5a3cf1e1c65807245fa3211e9a49703498451916a8a04325bcbf34140539b89acb550565525f99aac5cff44d25c163d30aa6d9f36edd44a3b2c6ba5b54ad0b0b28a5e0991fb41b909067c1300fa6d174dea315f33434b6f79016b5be65d87333e606b2243ff524a01a754adc354ae2b444271a1ca5d4c0f06761300715ddf58cf16a41a83892ab379348b778d1a62cb4b806f03c3f219b8419c746b1b127f5cb8a853955626ba6a5130b19022845cbbb250759bea234592cb294fb7c97777855236659f48b59a21c99ec9130baad818536ff238b33234c718a45de873a69d693db31157a86c9a123b5ee11b715b90a409308efe93db1e3512b012435f26e260527681bb939216ff5409002dc4dd8ac83f41c745509a82036ac3ae524cff190e07998b2e93bac316932fc0a56f98f27a7189ed4449b875f97a2950366754d85a299a422e7b7405b629542007ba5c93e372ab3d6b2ca26db5a9107cddb34408d0b075e209239c2c52e041c2889a625b86282ab8232e10cb14c04ecea6037759f8a6057d4c2037527bae813982128205e535a855710e077cf4b3c94db0683d462365f40043a328cc0991b84e8066e44bc2cd020722157111a76970a521f85a24708565c38babc003b1f84739ff5c7896bb3b9515cea8074f2eb18592b2c9af9b67d4b3f831093bc49993cab27f4b8a47c4364c2855d9cb2cc7e5c7f9d6b70076057e3b989fd314e1c16161a4b1e83713c1fec8cf29a60271808c03814e7252c52c1440d933c363b9878b198ad3641c92c53e5d4bb240b03fb81086662041c03189e43c7afea6cc036a12af28b051792fca44dbec68839d3ce6de4340e88bb4289105e162e8021c169c81aa462866cf20eca2206f7745685abba5636897a8c8ba1292ec1106d623b0e2769244f702a3c295dae415602a2b313da54184aa3c32992bf3c7a846b30fb046c816ca123854481ca1a6d1076ba261f0f969003a37a83e822b668006aac6d5ea3be1f91c5f2300c53372668d3059ba8b8f6f020d2c5ae135811c395138f4a3c17f86f20f2bf704705f7b7acb1c617367bced496cb3ee5bb23e34eac352d60459704ab39b7b2b98bd2c7d5f809382331c3f29bef5aa25b18adcd821dc4d0854638be88fa55b1d00babf77ac42b6e256a1fc3030870a8c612dc2dcc686ffba99093b13889da8631a60b150946cf85188e15826f22866168600c3629494063f1a16ff5b90d6db24cb08c6b6d0257730970942ace54f0a0316b0518c1810c860b276b510424163e6826dffb02fa1572b96a857af935ac8423fb9179452cbea55c3fa490148793c42a0450dfc286ae68b782847eabc30e3652bd7d998324b6b87f7b308a947b1bc74683c02f73f2b130219529950bbfbb6b103645685c8461216e8d51bb2c1266b449657e63625af83743b584e325866ad14b0d5361975c01462739139c8ced3c356a21080d5649753a5ac4849c7ea42820d712490a174243cb744b75cad06f4231ad132321c6f91469024a29d7ab8dcac97a91aa8a08adf39638c1053082c3cc4e38adc7950e280c17ff4781600a95692a76f0c53456eb697d30a354f738cee78b5ab7ca72f99b8c224e44d3337851143c46907dd7cc6be50f6f3ac6f8d8537ff4bd12618b79881148a9791bfa77fd062d65c3a5e9f806770664a050570ca2858175867731c2e2e49ec3a88015b96498806ad52580dca82a37d34b39fb5401e45aa7f8ceaff25e6cf94b0db972d1c21f601041ab309cb7e757b2d65578b252585bb6c9456f35a89024306cba79886cb05af6cb230f56025d6c31c325bd64ac6cef327e66f6b4bb80aeee82043468914a7b0b5481ae7b954789836e59dab088b54467a85fc042a26d0581a1d6059bab0f5d0050a61ca1ef1c705f4bb9fee243b8452ab7ba022bd6a3838baacd8725e7b37bb09580e371813ab53ce7746c7ae67fe6cd89411d000000000000000000000000000000000000000000000000000000438256d8a53ce5b5b7f8a459eaa59843deae0326fcf80a66f567d501988ab521e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: 04825db8d0ffc522482a8464e01d1da34eb0984cee438850ca8e3b8fa37ccf842aa33ac29ccd52eca6f187be197907e7f84ef4bfccb1af2ca91e7fa3cc6cda0dd3df2efed4c3980d9fb011ed301a2117176d5a94c1d9983fde14e4f2e45f28932df2ef001341e57053462edbf03f4f6133918787ba1d62619eb818655091c7660dd4162a1caa675b125ba8461b137a55296b968d1851c96c455809c1d9151403e2530b18ac186ca769cce801f4cdfd181ce90515dc1cd8c1c66596248099de2ffb8ee5486d7674ef326338dd55b2fec7798e34f57351cfe5258a52a6723c147e9908d05132636795ca6f0bd682a10b100688e4d9f9d619e2e8de507caa684208bf8bf9e3b63d473b51ada0ec4424021181128f55595c2fcde65667e5221bd895eb9560944f7262ec89d9070c19b45393a69502a602d753b97e8fee4f1ba1762c21e87d04d3a86c3368b15043d36906472bbaf160130a31ee3ae005e1711d68e07b176349a50647da3746f42862d1dd394b75f4a4baa3061544477cbdd03a37e34a2c57992cbb022df33f4525ca3589b295967976d8f46c931c047b9912de175f2afffa428ef4e68f2594aa88ba839e9c278b23af1b0d1d7094ceeece58ad15d92524baf693c0aebec574c10d67596dc5d835880cc3c79263e5ea520e6d3dbb32ca894f6b37c07b7077e4f807b1f931fe37324d237be301f92798c1279b73e1f57de6825588f5a1eba171b85cde0e4b137c84967af4f12f26f340f0269868184c4b2e01648f68db166ebb134b67e135d3f510f16c450024968106fc8fdc6d49043a1206f89a8ebb7a59a69d354440ce2f6ee4617df5acd396e3739639094efbfd93ea89c436a776c910dae04317c3c9c9af5b265d8e8fc3934a5527125bbe8b72ea8f9c7ed3e760107b313e4855c799e8013a4f29dd69d7922cb76a5cbc6b2d3a6468d74ef015da8c9c3f3c47da81ed7f1491fbdd67c800aacab404e88df2c7fa383ad3d07a1139881db4e99cad396769148d143be6ec5832fe8574310b9b89644865bb206b1f75704dc883c3913ce8f4a3bb0c24dee01548727957d85e42139c16b5e9dec16df089bc07f7466ca38a421709e4cd86ad111d7ed7a317764d13ef73fa4e65722d955d97e8f37341bc511f9596f2c46c356e5366162ac33dd643011777fee6beb5e8b03ded3948e165db06fa89a1e576d1e52f7785b6fb1133ee82a283766cc81948879815e8fa05cf29c727b8820b39a4ad80ef57e919b71d83657331c8daf6cfb1cf7f883ad31fed93df35abb12ad6781b19c0f4223303d39957798d516d09dc00d8dc52fb60464e55b8db1ba5e23236873c1c4001bcea552f5f633ab42ff3124aa5d62592a9405dc1277e24a9fe610de9f3b2321774ef6b6dbd91f1030561ccd890a99df2a039264c74a3cc5bf97ce8572a4ac1a34745e55f9d31bdebddc04882fb27283d63cea4fbe6e5f5c660a8ab5a535c44c56c39664206e63b11ab9f7127579e9e7bf02ca8e249c2d21639f6e09c5e4b73ea45351d0841f87aca886cf4b171981289096858f59a0796d04d2b0e1dd8721ff246cf53f46b6d6fa2240907440319e0fadded6877a1cd9be7347a2b757a11e0563b6df98bb12c79c6fa60803bed991bae7524f7610e77026d5e75843ec50e684bbabd0b37b1c1e2b1b58c88022bc874e401828d20a013dd67f1e26a27b440b3a85292a65c39ef0ef17d26178fabbcc21a64e4b90daeec7a763402105f42a819fb9096da9a52fc3e918259fecf4aec6f54f167ffb795264ba7ca86e7f9ad67df0f79ba29a83534354a66b7c9c32dd386809e3245b3d7b4d353c3ccce2df45d30a37a9bb5d197d1ef74a31b0e9c9022298ef0fad317ea3990af27d9b2c80c1a123d773aacf759dca2042046014b7e228c963977cbf7ab81cfb7870e9d26049428b2eb88d1e4e1def593f087adc169e46a36869ee73ce1f5b3ce962636a75b1d14d1423fcae3332d2cd6ef6bff1b8cb7221c04b7a27e5dd7adda864826444c94f4247601004091548f8e3fe14db0e3cca9528e76e2db9d5686fdd51442f799e41d7f63f93a17628b65233e9882b82916e02a0f84e5b0592ab1b8719a0aac9428e2eab67c95738c82e4b0a2c1135bbbb9d243acf146b2ee88aa84ac00af15cada505528c1eeb3c7bb23dea16992c489febb1e242a67dbfb454c95b42740baf31df72eba9351e1c1 +result: pass +shared_secret: 536cdb35f0c8ba05ae954b77f6b04849704359e9e7cdc7ff879f4b70dde3fbd2 + +# Rho leads to frequent rejection on matrix expansion +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697c6b844a5959672b08796868e7107108ca4c30a58be4ff7b37b0402697aca2dc4839dc51a8811c34c8183442711a8d055b640cd73d2caff9357bdd9ad36835ae9d55d1a291e040652d020a905027a616b3b5c63c0be2c1068e9cb0a9b4abbf346590237f96422308ba86b055872e156470b53e35b2a604bcbd2b97849446684149a86d9980c5182f1a020c32b14de18c03cd0633e303bf9f8a24ff0c95d5a65c031c18550b7d7d5b8ec672c3953bb3be0c3f13925200394aabb26090a3b9a12bde30418b997abf310c1724a88b9782418d09552a63e2855b7af2196d422761f5c8a877426976c90552bc203f5657f5370258b936c3706f074c11b3b2586391f4c4bcdd959615a819aacfb48d2c799a9abb182c7a9fda6a80ee50c4a827c9f50835b1859033629a9601b5b8b357913b6de142a501974a0c191a071a95cb8c45fa857736a93400141cc325d1b4518d3ea58a94c14f9b261759281b00213f91652b1e52bbc0c488bc0990a136e8e3b5e20f41d9f218646d43745245ca4c277709903c06b2d1ac8bfd7d00164a4122e50441742702ae38c2d422f6d956a214375485443b11c3a1d705a03728ba53b9cfdea8c83550ef17b9779220885b993df38bd50d12933d3a4918c92813490aa5792659206569b7514a413db3506c28095ca4840f964312ea8862bdc932bea84fc19749c026d0e3c620de5942006b47083514f141f2fa81713bb95523ba5df235a78f52aca7a8b86256c64933baa18342c1a3de1d3a0697809f6762290b0474e205253bbc80064a8d60ab8844324e20c1b249624bdd5434efcb46f52a1d3881cbf0055c390a91b286bf0dc67a95a4acf40cd858427f805b057d85a5d121a7888626341a7e475a512476d8f15993f58918a22b92c23908bc528dca6c3239794b802335174b2e2246d579b5de3a17d7f1aadfe69906601730f4b6d6717ad98d6371628b062750459fc9cc1640b8a584a92d10d4adc136c8c7bfe76748a91af2d644ba95690a34114ea574495f967f4b951cb487f4369858f79c111e8671a250dc0c053d857b3d02566e2254df7c1be3d1651bdf29d96829a5f41c691f4c1e4d8a5dc5b4fc9dc772e4411c442bbcb767508b7585116232b8b4210bb01f7bb24f54820b29a494a07a4456b785b90b29fb89e265985133828e8819f3c8437449748c7cc7b5c40ad0fe193ed6b1f0b0ba71339adccc7020b9334107c32ef765da84564f8ca0efc213e91219a11c495a44b905acabf18720f8396c4dfaa78a5258e980c6011712188bcbf10d9cec3028bfc85a2be9b7fc879cb86175900a66df3128843c53ce2417be898073b362b98942bd52183fc0b54e5b84570d59cdb6282ceeb3ee9226c5a5806c4646056b4aed3a09dcf4821deaa9e2b7623b0193d2ffc25abcacdbd6a39615102818b9ffb6a6ca89911aaba7f1ab6cc1601bb056061fd4417161b9a1678be6f5558d2870af1d18219a031e685c66cb74ebe7a2f177b59038656ffc56801c839445c61035bc54ef2b2aa451ce494acb9574c8fb4a6e6399f07ecc2ad5054bb23cbad267a9ef4c350a2403c06bbce5bb71f2865d905624fc0c84868a3a7f52cbaf45f9ef27a9a0a3e83da93721464a910b9f0399fa1b856bee051ab84ad33113d7001af17926b70e758f8001a790968178c1b9e679e877591fd177384519da0c94157001bdb6b112a74241a447b4fb31126ac94e993711c4658f20b81a7526a55e9945f53878dd64a09a481023b385de41b763ca371a3cb5c927549b112fd73cbf2012a5b334f446962111907c4b04a0c06ad9c69b85a722be0a33860997ed58312bc0b1958c4a016650eed626661785ca1e8766efc09732a7c3f8044d18564e2dc8ad9c62563a01433d8145b13968835111073cb134a9b0dc80f195ab12732514cba1a66929065e3159c4a6e7d40b182f420ba56aa6d4446eb7bbf49db265cd22c189139b50b2ad4ba1fe8a130e4d9427cfabef8a946a51a5defe3642842365608b0af110116dc3bb1db7b2ab137c6c3a9c04253d60c72e696610dfb62ee841d7d427842b032a254c3647b0812f20175575ec1f1c0ea14824aa687c4c52f6d224c289862e015634a815dadfb1ec495c4cc968ad6e983c829490f1905b55a1d4a08b50d3114ef6cb4c780cab2ea702b8762c89492a29c452ee35e00c366a7e932a916977c7aaec8908219466864f8b0c5f8a3c46c745aa96550a710203055e90916b190872c186efa16172399240e0801b3166810360db1c7788a33be47062aa3310b57c1220b9001491512be0366bcc67ed80640fbfc7fa5199d261a3b9204cc085baf653635c77c80c39a080dd61b3b095c9ea24c8cd270a722bc16ec5011e2b6494b0560f8b126b943b0b56fd0f82be5fb615d724c74002f8aa85aa91cabe3d79e39753252b847843aaefcf56e08a919b7bb7bb5e404770a46e6bcaf4d278924f85a49a496aecb6ef2ab692590877f2710cb642f312231310926eaf8a96b4ac13224439decce0bc614e8050d698b015d318f284109e2103d1e877a4f43bda014291377172c6c8e1bd7c80aebb3ec3578cde5ac745335b6408d7cb5150e26bf95641441dc06d9454ce9e75bd6eb19b4a49c0b70adec9695c6a5366e69146aea0a6f27c53f19c4c718cd21d1601a8a1bd2c26f9b5aa984abc34c4bc9b0e212e1b84b2e41547883378681045145b341cd0933ae00000000000000000000000000000000000000000000000000000069d5efec0bac9641295efca3f5b6600f3067c8f4d8492e698ff0dff4983a8dcbc975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: 8d6c45548a028fe38093d0ed1c1f89f921d823750a65a0f4b55eec20b6144a6632427f53b6a56e7419f89286e0b958d63d1b5ddc633edc0b08414794b6e80265b426bda64347c7e6e8071a7076823bcbc9c96ed247d85386dea5de7eb551fcc92d86f05c121d16fe669afa879faba422c460c1998d150fd0f2a27b9928b66c022f879f153f604d6372c173afa6e3bcb8b9792db362f0b3ca28c7cc4e128019cdeefaff98cf247f3db5a35b59027124d440fe7c3f523e36e48c343bd10acbb4faf3859e7012469779ecd010c6a94ec63021be2c22290ab1e4bc92dae6dccc71263172172a0c527dd379453e053050b79aba7100854473abeac7c0f7d29fb9f72059e5b64f83cf8a7be5c2524e0d87e7b9b1851851291534bddb128d69cb025416433d006c7ae4e1e9ba95ea63dc614a8677ab1472cd8ca7d9fde895a658e0fd4755dc340e46847265454d16e561ef12af68e4be6db09c58d91221cdaa5a2188fa05258b0089c1d66ac890d8c7b9149ee9e27bf16cf78a323c831c5f3cc063a2aa48f8306bdd296efd061305b1da2a696bd80fe90d2a873bc9384231a6edcfc6a83bbea524eab04af929d6d489ecf5480e67722f5e67ebf463d36a6b26131e9284e40083b90e0fba3db9e347b7470405cb4486ac1ecd87c4ae8893d65dd191466863d4d98226c6790cb8a176b53978e726b5494397d7a7e522ef31cd40e600f4156384a2e605be4be6be73b57aa1120b05700cf7bcfab4aaaa439cb152da52f4129b78c50f5d7994591b37fd444a907981d029298d590f4d7ac3bbde8d852e65d85a0402ef680f348146edcfca9886509e8017354daa6634a4880ddb3db205aa23b7f1934a35464105fe852911c7729fdd5ae11b8ffbd3e329c7781bf9a19e8a25d2f15787178cfa6addb4f6d739d611dac67d64f01647ccea0a02f2f03ab1dbf0e45c95dacca0395b3b2241a2a4ff3d82d8fb02218dce04d2e00ec60208a9835daed88c91b75a94d80a5c10054491d48574766c40d8b2aa96836f9965117310574168eb234ea516df470ec12ae167c4b618162b6b7d751b9e8f7ec84262c8a3d442577456023d2abaf2f8f666c7e7c2b230474597e344fad49eee580f429a65e40abad25eb45b3cd9df1cd42aca2693be05af75241638df4a8b400e2df9342c35f450b359c1b0cfb5190453863d412061361ac6fb7828044e55302bcc6134cfcfe6247034a65e7fb89da7ea05beb35a386950957aafd29c4d60770d6d150a3c97e50ab9e6430bec496b9255aa054383d1858956f86d600ca56f05db5546af09b81a3a9b473d9b8b5d83de010a6c4dd27bdc1e699e998cd2b2412c732d21908441e7e9d43b571da361108518223b1a3e8f7c9f36599e4f933c9208a0716487c89050b473a1d027b31044ebaa81f8e62f4766c3887fe15282e84dfe303ed273f96fc70b6f4402a5d97a59058d016f3f6e9dff119edec4654aeda2cc011cf005ba3d6cb562c23d8ab2aa1cc1bd362ecb80f3e0b2261ef518b77664f58e90747f273fb19386d3602164e1c126b754269a6b5da31f965c36023fb2eb454e6fe0ea83c83c2033b49cf54056119660369a499da230a4a6d528729809dce197ea36b27ae6324197ba3dedd5044069ecc9f5ea8a02ec29089dd9e991fb828b87f3c573a0bd7b9490f5437d18f98526b4fb66ccbf2f58bb8b27441fd5a8b54e23861115bddb1ef115075541d6187aa3083e156a61c4ba69613251e2c0800df9ebdde17ae7643c3d6032680ed73b44711570a8b269649b33360a92206b4c4ec4529287376d3b0596d9dc94a5a25a75596fb3efb449fdae50f3446592d9a0fea2e9c68de91e21a09f85a3889635927414d88a5f413578d2c2e79858ab9a2a75f9606eb8d3a4fb582429bc5527f5e56da5f0e24cb3afab72925b3a9cd2443304dcc1cd96d0c496ccfe6941f870c230bd3831e7d6c25ac1132cae6fd7d874192514e7f812630e0919aa735b5a7f8fb04fade34f1a478b3b2617f0fbb6aaa1392adca2102518b4518e40919ae5f7770be298c467de4663cccf5349ed38056ae429fe00d332447e12237394b8549fd8655b31db77bf72388e58369248e9682fd2b306178bb7bf4aa3bec18da1ec50f5004f6fc8a92f56b4b87ce71e6709a15bf5f1442ec7a0b55c70507d3ff42ce190eecb930a2191fe764ad8c3e1ed2118effa9d8806bb091b8557 +result: pass +shared_secret: 7fa8518febf294de03c48fd26404aa1736aee3eaf19d5a55311fc4d367d56447 + +# Rho leads to frequent rejection on matrix expansion +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe331704aa56092a4204a2293e77935390cb1d2b2924e0bb27d4aa471474fed2b6982b71a1c14b2cd3ae12b12d5d12919235caeb8aa3827c844bda40f5f57e5f59c75c86b645224b3a861eb9d9773b01cbba45122bfb1e4a60ada0fc10f133c546563661064adbf4a89117657366789cfc282f9bbdd0547029c92aced02963f8cf462326db19bdc980149ee0823ecb1d9e22a5effc6cb588b17da70789d813b749be180457e82a5c958b069551748e12bae79cbc0dfb5ecccc85f565c22eea1836b52435b023959b4f4fc12956a09f38d58836891c4c2b0b4502b012b868fb9bc0455c12e83c182f1637c05469708279b1f4af2c275e174ca5ed0a12b39849f49535b8ca73089acd5067b6b57297327c4cdddc7d5c752a5d2cb04c659d04f803c72507f5832e7bd528e903863b932d80c51e8b2833684a084c7100728ca33a4304c85b8cf7b61412e76373566c34a75ca88004cab21a3274bca1ebcbf34222e351a3df4b557f09904173065b460d54210511f4515180b3bc0a87f9125a0a91252c11464dd98b98b790d85379e8434858571ed2261eda1ac35943b4361abf24b92af0723874601a9dc98a6c872801c54e55981024887f9dca26f6531952055f0ea90ffa859e6c39aafdb8621ba078dcb4884de4bbbb0b96ef167d5332c00cf79f93d30807a44e60e68dcab05e3167315f5b71bd2844017b417af2ce61e2a2d2713b7945cf20a39a0cbc92a07348cfbca566d04fa6983c3e37b2bac33627abaa656c873da54a46399ae61117086b7798259a11315dcf411eb7b4a32f375596485dcac61494978e3ce6626b8194211bb134aa82d3b28997d25637f4a9bcf828f7a17d04bc15eeaa809d582297da9f5afccdad46b71983a5f40763d709c2d7038abbca9dffc530ef293a78a43aa2979f53d3a4ff184d2aac5cfe7ac114d378c7a4a46212a3c56c7443d5b4ed309d7d356e169270196159ab428b6dfc5441004fbc019de1f5aa0aeab64c850d1e9acc000a9628d849bdfc7d8a4b29664b65a66aa4ece6a72ad5136a7ab61f8c85eaf798ad7752b1c5908f931699c35fe2c19a7eac2c73f512e4a368e221381281c6f3688965d55969309ccda49bc38a558b605e38bb593c2bae94cca262b37408fcab7cbc29dd0466b7e7ab4a6013bcc7a3d9b87045f7609285aaaea16ccd1cafefa5a22b33043d47ccc0b0c9a0487691f93f92ec0c9ac47756e3cc91b3331866afcab93966c2a1d1490238c79c61d757e5c383a691b2a241c6c19bbd5c99655c4c632d95b9368688ed9294a4865c602c70b40ab6b1cc6c6b039206bc560c302394e46c428a82979b2288b30bcb813e6c35c35565b67bfc1dc4804ec8462d54709a4ce181d46abfd6554afce4204eaacee5092828321e1d3132d7d0b4f2444136117ba1dc843b440e2b644ce6b5cd1cea7ba6fbb1adbb0a4d9417cccb68add346446172ac0232727a6fba3cb59c38057b2b8be26b56d974483d31019fb33d94449226608adbf1b1571c34f5f920565b4a791b78836aa50687ba6ba49b4e280bf037b6901770db351af99bafa9dc0cab14b406561c101478b4b20d4f765d70f072f1d6676c43a8ee432426f2238d37c11a280adb094458fa6ebd2269da310438503e15b22da42a7a24566881d3cfd41bcefb34cff01328a16a01459259e5406451d831f9430ef7e94d4022714c007de3fc0fd637c16cd14489f178f54aaa72529816f3158c601027dba98093712b54aca5d33954077e3b856e4588432c510342e5c99e90995fe7604524a3d066196dd63e98a3b325d2a8669013c9b10cfed68b24b0973f0c286e59605bc3c0d34094ea667b780288e323b334463dd31c7c64b10f6479430406d04b4756fa685aa30a61bac24ed5451a63ca3299606491644e76c765b8ec2dac478192a685210a4af4397f7646309d17b1c1543346ccb884c28418858a5fc9866dc46f5bec91f2a73c02a1585e620b7f9045ced60827f58123274649048477c70f4b57ab8e8189ee8560ce4b84b2d57eac13270f00cac1e0a11a394ab4fbb0fc8890af29111cb87905c09c3d3170806a80063258a6625a24b230c502460f5c44a6c27457e43412a7671cd24911b23f38013ea1d7771f6b4ce483803778be0e5c447b457900133f4fb882d2b9224f2997a532360e573fa626543e856f6b8760107110cfa28815e71b0b1430f02bb857005193875caf86693c1a0748d3a4d3469be2eca0db34b10f692ec1b12d84453fc067cdbdea8bf59a2b00b083a34a5e3061327263be41ab8012e8283f1b86238a077cd02c79845fb71744a0b2306c29a541d6bf2467a483a03324d87cfd00135f8a9bc3aa97ccd68d0fe98bd7bc260976344cd9af0e6c911f3589a09695064769f5b92ee1165ee7f10031d5811274075ed14069d391b09b3b0fb80280767fd04b47e755a1eb3cc3bc9084db2b79e5b506a4022662909c135083b5a12a59c6328f6ca9856b0befb52e84624af1d81b52068ffb80c58b837134f49990632354799ee166461a916b170a5ea397c319b0a492f566257a3672101038a88be2e4ac5781bb829423ca2429b8238150743dcd43025da8121298b8557c410993828c316265bac2f6c2b0e3340ca5dc4c01045c14731d7525158ca89e35e21121256d08b8ad6c850aaff8ae7b97cb1e8683befab96678b6c0c564b2d41d92d24460d75461c91b42b62112ae783c1d0000000000000000000000000000000000000000000000000000005a5da723bc2449073c0a117f8b3f083e4aec897237ff8f85dd3504f47a4cf42cd48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: 182bc48cfb7ef59210e250816725e59be1f4175faec6003c718d88e5d802c96d95e024e9cae147f6cebb2fdf3a98b796a1cddbc680095fe1c4a3ee780b61dff0d5a208532a836a90c919b32e23ba0539fa28ad99c3200469258e444c55237ad4f25651ed888a9ba538c90a94f601d0db2a8e0ca91b655c7abf7a4c5e2578a6de7eeb68dc681dbfd4fb042c6c36dba421a81dfba5c2d8ed9649193905692db183a946dfb819ecfbbd94494c36331b1d65e6468c76b28e35af3b5fc6503b1a7407fef9c493d8f3b86ea00900c5928e857744ecae5d8b486f755b6ef655a1fed4261daf062b62352f88e8f41b4d3a656a5b8ce0b3c7d44ccf4f9e901c9a77b84240e6ac45d941cb2d9305e9e78ae39213e825381e2cab3abde4447b2742677fd271d0e53fb1b6eacb6eebc24cb44444a58488fb8e114f4a771e16e96c350518ac2eef03e1c116034e7a5f82dab805994b791af74c9af4e0e80cb1d543779ed0edd752294652869d83f43a26c9198b375b621d8ddb9897f9b2440505372aac898adcae00762e5d46f189903e1e3d21d5036a3eb74c1a833e377050dba79bc2fe909b1f4df99ee85265ba379b83ea67ee9b7386dab1ea2dbf2918c066fea055b7024f60e9e431619d2282cd207a06fe2d926f96f6d6d92906c71c5a9cd64451abb4e9d4eb4d02cd394740a0b6c3d43befd2c4edfa6539b1f7e165fcdfecb8e0a5e52744b050b5252df3fc3a39badff486164c1b238e315362bbc9de3e34d9e10f44931fcfb45c47d368d922c56695ae3bff0d809b620f28ae16916432f7627c2849ba943556fbac4bab79c8b939c12b78eba9ee62c256d378ee912b124f6f7c56be139b9a5b85f6b98aeec516d1086cbfe06dd54c4bb2910a28206554d312f907c7462f6791f07841d9bc88a96870719dd548197f3b92d22b8789656e41cdf629beab410d8a7a5c65453949256892392d9ea67730007cee5482f6beffbf49dfcbec6f76539474f34d9b803b759780dcea2ff8a307998ecaae255cb0bc464c4fc4a236d3989a82b6e86de2d1b9df441fef56524cba6cf996ccdbe18e7dc433a938fd0017a912c44177341a42cca0e2104094658b1a2822cb0d2bcddcf37770efd18e41c6d3c9eeefd57f7d350104b569cf270681f2656f8c561c901a17c5453ae0a8ee6bc7751d8ce737166d2978ee8f38c9ee07bc785dd59ca6956f850dac891e1ccb25989dd3d347a0194a1d44d8c8fe9418be7e0ee631a80798c2003bb4bd5bc76269fff164ccf95eeea8c0c2867bd5ed4838251768f910f9b58f21478509bec110926cb886ac03f6809de328311c7f66636b46fb04e2b54ba2b09cdd06c0b6ccf1f0d744f699f281e8aa1fbe90ea035924777adbfe3fd28d21935ac911be0c8de9e2393632d07f140ccccb46c4d625821b08f55335a95c2dffef96e1feb13091d257313eaae7d911e5e120f2192c29450e32a101738fb6a73104d9ec0a2f995b7b134f3f748efb82e012d63448bc417f54e3f354ebf584b26e4dbb85c75b28fd9ae25885170ad64113e8d5b47d54767ca184d579edd0b0bb30bfcd5d1e44838df5431235079163075ecbf30ba6d5ccb737e732aa16624abcb42f1c63f91862471c3d8a14697ab74a28b4d1c7a7426732e7d323c2518d82968d7237c76493fd3dd169614a756f7f931f29bdc89055688c142cd71dff82a33f4494e36a64fdfb377613c92d58644c5828997849e19ca5de4dfbfa1ad860644c60d794f0cacd1d8b059d9a126d56b41ac2f03d8c0cbdfe04573481b5d7cff7ce84d757b3544ac5162c600808a331fa671629a6d140c49f4685727f087202a8ca5186d2315d47270cd61ed96ef6eae844194dbd3eae320aee0338beb0d163fb668b22451b3d5a8fb2b4c961a9615a6b1bae6d257bc5baf216022f6d2bce09adf8001c9f8e9c9eaab2d9c5af0e81dab1ca14199646e854bc7b33419490b91c01914705f5b4d094f1b71c8557958f01430040eaf2e06f427135e439f780ce8184e64b339537ec933c8a896716738a0986491771d4d4e6e98d4d33e2633ef2b9dc3c0fd83dbdc48a2c8aa53c70aab81bfb13c0cf11f1d5adc9aee2b1301b6e3a7e644deefc7f1ca260bd26abe04797f7b87f32b792a68db6d7136ab6c4a29207ffbab0aceadf8dafb1c7cd28a484049e91bb900d01a10db39398f6943969f82c82788ee1568ab6adb1c6e2 +result: pass +shared_secret: cd7069783053ed075b29b8bb8f86ba6e723df5d0a8e813c585874f5b39ca2d0a + +# Rho leads to frequent rejection on matrix expansion +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960116a338d74bbaeac359ab3728e268abf75a8d30b118141bbc56670dc0c5b2d05c9c2f03952338170754e20287c99177c66b810f009002c244f213891c5b980aaa23d15f413d4a80160d24e692c450b68c8c43ac60256ad748ab6aa85aeac5c623d199928f88b04ac7bad2c1249c18fe1b867a02a353a112ef71368eee3210f7082f8b216c975070e9a1a27dc265698bfe4849611716d0fa1b1f9047e8b0905d184b1fdd863377353fae732a5d0388c3c6606a773360734c9ba915d49aa7d358263d7abce563afaf382976b2ca2e1328d4aacdfd78851eb143a1b81c21713442421bb1abf77ba25d4355dd10602ce06754dd9a77aca0e25b1260e994d0fe1b83088a5d385251ad5c6a54c45d93a7d1b25cfddc1612b8b30e753814b505524a5b0b26747645c9b636543ac7a871b6a7cd3865f1d8636cb5210ae9157b567b2ebd17fe3f59b73379d086348c9806848ac3ccc1547e8964f6a1c4b532787dc8620050b7e628274683b79e133969ae154da157bbbab159941484cda4108c84aeef56a453578e606159c2c0c8d25857a72912297b678d44e0b328bf0d05a1b096d302c6edf39934ea185d1577207264f0ad6c098f6ae59759ad045726a03c0735080c6b1a7f39ba84c27b41ae555f3e93133620c81674a8d9b29501b8bc19ba9fbd375875843524194858a88a57ba69f719c11b534b5055ac821216d2a54be9771fae1bba5448e39a1c6ab667ea0fa6df038a1843675aa5ab1ea132f797490c3da86b0d58474db11417645e4cc68d0294839513b36db91bf3ab32b2aba77655c407240226bc0baecba66c40dc24469ee617f06f739d7d2249a5802f69285053c74c98cbfc134706e535a34fa03f0a697d3db3e3d2240958ca40ea9545369bed2d44e75592154967b71956d35031b8b425972544b63b8bec1743608c2ae16444eace5395689a02d0999b189065342166984a1799bbc00b7b1cfc33bc210433fe86464093d69b83e095b74d46b8786e71732c6088b4753933b77d40c32570879525b20b2b006febb8d0195a6eac5aa310a38b2fb1506d0bac2857e65ea29a210bdd3ca526d59a259f7cc6ac20c078aaefc8537a69516a8081a0e6313288cca716869ec4a47b7b1afa40a59f9f1b79a2307582a2537330dcaa4167cd848bd51725ef478fe98c6ab616f71a43f24f323f536c6fcf67fbd517ed2d61efa9acc8b9966d25848cb416df944a7f8f900c395884062ce1553518abb314b446a85a0a58f78b8d9a8cb7f027ec87470e9fa05cecc07328a6fd03b8960582e47e97272960802013be71974e83573a0fcce793160949826f376492e3c4bbc376f60ab1362273a918bca4fa64c13c290af3c59e7b0279f410a14d5b1d53c1123dc1e6515619da1405844b5047831e4e0c2c0eb890ed5660d7b98f01019cc98c513ba29ff89101479bec1f37e81f84b23d907728665dbe96f4c2469105c3f3261cc4972b030c58746258eb14494b39381c8c022b4010f6758a0ae85c10776ca67c8225ea9006d8798cc90ceecea408d896ba957291166a189619447ba3940379308fc303900a409b333c9c5cc54a8829a4b36241ca9bf319c2442093c1c22dc111b64e783511c7b38e7481977a56f5baf2ee28e15fc5f46a0a83a26b3edcabbd8602938b2c320f0a384228f1d1c86c0a41c2d238af906c79c5ba65e66a2e76626ff50bf3acbc24b5891e0f4370d764b6c503997b98c9c4656ef1c6ccc89a6794b5913d829e87194088b183bc64eb55c85342a3d12a08c0518a69b4c711348291df114c8da5adac6661197373aebb3ed6b8f9940a127527f43b0857d9c4888082802acb374824791d9c3684c2fa05cc965b9481f1cb1956b4cf3c84fd92083f371835c087371ab840d90b93bb3a0dee11307c66a22c6c18d86a3ffe89434d5322cb17666454482f06d608a8a0f1509562435b10bc3432331891c6c759b4a8517247bd8ae4f950f09638dc5206e39db7528e63d15cbb7484c2f68183dfb234cb393b193e134a470adda3a497d6049b4d712edb380b278b79a065f0bac8ceb654c0607a387a689713a5553755b6121012b614910543bad77c21ad8770cf78ac789c6124369a5766a65e89a8921520febb92fb85e561140a4eaabdaf4809052434ea4a9f5298c3eb4c8a7a98c4c5811b4519402c55102f6973cd13e503ba847874c76754ed8cb92b1ab398661367a3b21f2d0ba969347821cae1f475567700c8a0b911d45b3ee10cccd2544990a6a29d0140685a1de7696abfba58f1577cd84713dd947b9d14d83901c19436dee843021e75951e6474146b355422a80d6a67e4c4ad1fca2d8e607e28032a7d0ba4ef916989a47059922be992381691e0580b5b5192a210acf95285a9f156d14fb3ba7b8090a6946b2345123477e96c373814b26f12b40f0b302cac522f3c07763b82b53d36abf2c74dd29b8edf0c9bb5c749af9ad86542ae6c555930a7a95d31e9bd13ff6971ef6a62cedb4779dd008ff5b165d4b4c4e10ce512932ef890bbd5331f445ac68d045babc39f1f528d73210d0f526fd575af6e80945c92f95448972dab108089931e99958f28ac08567cad714a4c737e8a37629d64deb5c8dd8b313d10a662906bb8e958a60a7427cf2b0c226452463c1cb716bcd9b93d0ca0f3e2a12c5389e38983d11e7534d77525fc6aa32e4a91d552e3cc5049ee74ff2bb98ba8b60c134000000000000000000000000000000000000000000000000000000ee98b001ce87113fbd028ed9f6c1bb51a7fe0f6273a1159702261ce2cfdfb5b3a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: f47ebf9c54267c3ca90048612dfd843904470288652f4177601e6db651ac45682f0885eca62d9c71a2526068d57bb05d65188f5265c5d8c6ea66eae04070de6be319e67e08ebd76c77261c7d6a684711166b62198a4b7f2cb77f5646af2f0bc24212b2c6155b1181b75d449930b97c7fa700f151e7f679b75692d4da04a47864b307ec54b1288550f4759b25a34df63dd1c8db38b9374c6a9964abd7e143df3083832e0ee46521a715c2f5c7770904715feed7c927eb1e424f5a27984be052d36bde159795e0f5c909c7f7f5fc5f71e4fcd09c1a24e377af273fb9f469c7374e769d49a71ee13faeed93253fd3346e0b695741870b8bfe1046572f9a64bf52dc535a2ef548f932c8cf574e456705bab088768336e5422c6827d18fa0aca54de0b788876c48010249db3e874b448032390f384fb67af94653bd1fcb64655cf467545c2939ad167e37951a39200ac7270c6d7101930c05d417e7407e8003cf428f8e0f4a516fddae3ad998843f73d96d97fa84d37829c0072b75f2ea0c61472a23cf99928511ac3ee0031c61af06b9849541c3e87fd7b11bb1fe7afd49e0a07f01e721dc975ba4440262b96c90f5f4a12fc2e2d0ca6b7969c24a81cbc8d87e3086339959c7af99b690240740709bbc09e41f318c977c5a9431a977decc1cc2808b529d40d8a823f8d2428da165dc21026b73dd9e60f48d1900807ffde3b903b667ed20f71e71790d2de970a13913c69d2dc72041152f44be8c78735ab1c7cc473bd598d7e0a671105e5e26da1492bf0031d7051698d46f36c3b389048bb9147518efb3bd57e85ff5fdb2b606c1504d15eab114fb7c144b35c60d5874b3a6adbe1193f38113fbb78416ad9ea7e896ae57b41881b91e54552e3e7d17891759802e0f49307880eb3dea4657059bb144929d484b6a573ef854b466225a3b7e33f09b4a7bcc04c7ed3bd8efc704812cdf33e450b1a497f99d6c5b7267f0ba5cb250d0e62cfe4d18ee03a11132c222877f3d3dc4a12d89b9bb805bf66629a2c14fde7c7baae60e7634a61e9207dd9ae6ed80da7869ab911e0c8e3ab90e3135de34f548a12ba5a20faec23212ec4014ab1b624f516cf95b1fe42aa33e136a524d8e1955ea964a738bc3d7fb66d92e3926653587f69d421657c1765707ab8e67ec50ba954907d03dd1a5ec5c5a78f044c9393b028417e2919664003a96c7ddf2aa997b5ef1e1f3d9f333380ccad84df867c22eaa6fc2fa3defe362cbd6d068166935c67d6b498c853fec2ec699203f0c1b5ac93d4e1369d8b9776fd86d8de47d8cb813538d613742c6de64e854b9230e427f0a2982d69563bbf7237c9a88b06e67a73baedafd7f7043c9ac7bf3b2d3ff2f9961d62fc0d6a0196ad15b0cbc2f34b1cfcb1b77164a8f8fae684bca6507a1cec731820c920bab97327908736fd552ccfe0f1d075cf15b58970cc41e9f86f28702f4bff59b88f2e478ce69a2f8746673e25cc38971713d018f7b4dde544b05d02921a6ea43ec5992bc3e9b2585cceebfa3adf5503f0d8c2b63de7230221f0e53d61dea4f9e153e3e2db14498a5be638b3177c14d4bd9ae54ddf24aeca14bf1a5a146ee880e181cc8eae9e61e514905fb80f5fa812ffde64918727f2c00541f7ad40d8f2bd2e58b28e1bc21f075eb185af9186a4875f99738a095066f5d2c3b13dceb5935c48b1946d7c45536a122ac99638262eec4cb395cacd6458f6a2970fe400df59d890a3b7dc63cdac7a8f74e4546354c830d45e18f1acc03da15f01dde2bf31669e8d4479921196c826338c18afbb553bf5ef3ad5492dc7e0d4530590a5a09a17629d50dcc941b6a31df1aca559ff490a197e912cd01a4e6385e25513237ae611328b07ffacf6760be6465a00cde8cb8ed630b27cf36cecafe59e9a32c68d28dcb853d346ce4ae872b97abdf85ad6aaf05694eec608cd38799f9106d0f48fea705c0abbf8421418d4a511230c73340461f3a0de4f69b141d00569f61403303542da36953c26def5b2b322e70a101d5fb53aa9b9ff1a940056212e30eac32d3b7cc161ff70e74c0c4a73bf2cc722cfb9c30fd1c90276a8383dd2fc625e1c8d728e16306019ab61066f25ebb9bcbda68322fcbece63328501581e71fc71b7e31e0b57d2c4280100838c439e48d6358c370a9ca5301953d9b4d00e806ee3a4d0fbdbbc0da4ad72833aed64390e03a818bc307 +result: pass +shared_secret: 19a85075ee44b34ff0b11d12655036af401478f0e66d354ec9d17a6c197a69c3 + +# Rho leads to frequent rejection on matrix expansion +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3969fec41d1311ed2545f5281a09df223bc4918e55551ec060dbfeb41c777c79acb7375215002d9afa37b5a126625f7445c3fb51233650037e070648c924586bf7013c203e907332901ff722c35c1991acb2da41cacad4b709ee242a9e71eeb0ca1d05595fcea8d175553ce689ba595b8f98707a68a4d20f8a1fca8c34c3482e88c8b043a9d42e4a9e55a6cdd867e106b271031355bdc71c85c80713c0ef7c3ba3bbb9ad4e32615a2b104e52dc5e7481e258351385f9c8932a074529e327e6c0949756b57ef47094e184517819d459bbe35ac6154a70d004490b03803e58c9bbcdcbcd8451c2b0373656373be77a59beb2d47410d8a8631745653a02956dd0a0fe99ca87d78c273230667f25bddf3a65a216921a12844b8c98c197026e14638a97fa5144b44189621f00c75857fca20342a09ac44a4aa6c336d9ae58a15972f22555139e2b3e00ac0bf67b15d64ca8ae77a79b44e5b47a72ea06930aa9695b96987aa0dfbe63d83a352c9370247f6b21f225e096480b17333009bb7858246413061f4c42b57b1625ba25249b9697b09985dcb92d155c4a7db3b2e77464ef901af38b930e0b5fb67cd7a4cad52ab9297b383dbfb7e7cb32bf674b24f92c6f13ba50afb2164173282031b584828f8fc835a094bb4631193258f8bb1aea8949a7cb4abd1279ae3373ac36108eb290b1bbb205bf81f907873de0466179787394a48c72bc100192d8a0a46f76aa35a2c4ba8430ff976caa5d2888b7bc054bc07ec8a0374a5276dc01c34918b37795369b66493ac0e3c1362a4f3217d240ad438b7472172474a377b715eb0702e3b1652c3e35873904ee3b139896245c0a05133e873b5183d5ce54b758075478874cbcb00aec3a5f82c03f6ca9783ba3f7a6a1c05a41b0fd30f24f8c47309950282b7aa9ca84dfa20c8a9c5b9b3665ea59b2bf035159a20eab110a862c4112cb697c923311387b99a15066c569c300772eb44eed03e25903e88a84cc5f3b6b982086563a36f21b3f9c434f3200b0b9b5852a2aa75eb54426049c264b73891a28d9412b9c3bc5b87cdfa6b07242a4c1aba32b229b374071d4aa33580b52dc09093d9c40d95801246561cc70136c389ae1667bb0ff600fb82321c509121694c4298c67b36a21264201ea1c97aaa757e5c975195067416964a3a250151337bd489a4e943c03bce82a7b447b134f25940b345166c5b498b6431c159c829434067562f7a331b051854b32b7000c42a122974beccb36016459c61a97517c80c763964c64f6f72cfe69bb2c87c63bf610dce640702e99affc20d1ce934cf1c70683090367673c7422e57389394e7c2aecc13b23733076c6a50631c69106792492a6dfcbc7963998d219f5be767b180568b76658573410ed41796a9affdbcb5a9991ae48572f1d2a78da29a6eb85cbc50329e24c56b41a4b9b313a85abdab851886fb45f643b6774c7792b89dabca1d54b1c728b38dbba6887b028d51715e131cac8ca22eded549b54c39733309efdc2b5a5b3e45968afd13392c29a519328c57e259e7aab48d730175d61479b044fa019cf86681ffb7a43770c7b3e22efe3aa45c61246c368e920b8183b7446475c32f739ae4774c4430c5265a3aae3104629c31218c7b424c3ca25a4e9bc8cb5067a38ea4cd6f704c5cf895bb676489e8995d15954422495e82caf1484fa64264173c5bbe8138b6132cf45b8f6c1b2a99d42fadf494f90730ca9286fc9aab08f3b006622a9837149f30275bcca354136d876a728634c6ccf48be4034bb937bce815b291d9236da83700b494082900d435151ca37258d39c816704f8bc1373aa2f6f1a916e21c983fc590473072ea0039630b016b963fb8bc95f21959538854e9c5fad4212d80ab30eca4661d1aa6184a8d7a872ca6682a85773c6ea9006a64ba1b44205facee36c93b962cd01d700ac7a088c7c43fcf8bd07d413a0022fb43883f9351ac675508cd89c50f06eeda01830c42a864515fc88c9693026e785ba2a163dbc819541a61d98a64e95e62937795290440769c1049592499ea0726c18b943040fc9d533ed38655d05264cb0531d23bec531c6726c9dcc132e34704752ba240b4c4ee506bc15150932c9038e164aa22925152c52cd59ad3c68bf6ac9789c01b7a87b8a5314354f36038a3b2bde93cb73b596f830bf84f024458641504cc450d510791c43b9db3ce60127f081c8d7f61840eb75522590ef57391c3a4189771ac293770aeac4ea031707d6c38a2334d44817db05cfa54aaa5540c3334291145970903160f85cb814905b493bb995ab3ac79bb62e3cbda3d4a0cd388517547cb3b5a6c2ba9ca5646473dba10104a2bac7b4a8f79cede97d48a94d0080ad5782819d8c4b19f8860b711285ab3082784420863487863e182a09d30c8dd8198a8876829f1c336e583d27e4a06b091c4627022da33f06a201cdf43120e1a6b396bf26324d32c73cdf531488650b3b899c1ada8bccaac08c3c6617649233501839628e53c1ac7ae51ec19b1468039ae88140feacc9027c5f9370985a0932422c0b24b849be7a9bc497cbd3d317f48c50009a676161901494a52045afe3b6c516b18d31aabcfb27b2024505f758c91f441b8139889bc6ae3440208f34508df8a25bb4b3fed3929da0572a5a804b086ceb74020894b534bccbdf485fa769aac8e9577e477caed5b029c86b4682a7e74cba8c930ff80d00000000000000000000000000000000000000000000000000000049805cf685e4bb4bff7412194d13b4e36665e21e561c596fb7b7c099dd9d978e53f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: 6d12517b654513bfc072c7567a03257db9f6b093bb84737dd5cb2861952e1936bc84892a5b7c5f70c5349b4af1ab9e8b65a2107232f26100b4ed9fa413bf04bd9cf7598763fa3c40b7a2b2593a4bd51167a64d6228dc5bd20d0cd431cdccba3dd5b97a56b12b422f666fb817c1a5fdf9d1fdf8d69640826aa94ad87bccaf8bbe4f1772efa2604d14006b45836addb7f2935697c445b4fa69452e74290115a623e8758803000e0f4261ec8d3a68f4e82df31c8da1a59d74aa956a4227ef6b59b430345e4aabd96fb0c336b9be15ec550cd964bc15f2de060b2144648d71e7ceec4881bffab6540591f3837f935b4ab48c3241c95edbe3b7be6de17f62b6a141048b6663d6316ed3c1e8320f3ec5b818eb890985225a33eecae76a813f08b9deed452d34546b8f806f8ea57e6315ed7e305c420d037c2fd2359022a92dd3b0645e00551207f578158f2d853f41f09680fb226b08344af892ae470b1f281b58b2129b302f2da1b8292bc851b0f274365ac410ee178594fca317d55df1a63491b92d8d1c5be3b2814c40ce082702b9f6a6e6eb9807325aac5ad656523e69732feed01e4a085372b72c604a201730f785059709a6be4589f8e523d254abf8004bdb615d6b45dae3e7609b94be0878532e1dc124e92b24b677276c66d62fa6f097a3a3ba029c56cd7b3af092abc02ae18ace1109e47beaf478a84f34ac8bec69e67f71e9e8713b2e04460de25503c8355f26bbd9a84e8f136c15e93d17c8da50e0ef1f529283a574f81de5ec885b3e114f4b26a5ce46c6d94540981c8e8c38fa5d6a2dc1a78d4655a255a915903e88bee5f30bbe9e730d9d47084500cfc4a5cf5979696508cbb3a20ad11870b0871ba7c579846e67c5d504edb07bb742f58684c7af5b247c5b1459fcf04fbd3f1b2f7caf32a73325244d1febc8bb93488e73679e1171208597d50bff5f2a0b1b0e38004f93facc8daef9865d35a779ed93f4e9e65413733b01e2c4aa7f649ad4774a92422b47b1610fc003fb25b62ccae811e8bdd91fbc65c1b2505a8226ee96e275ac3de93bf8539ab14ebb5f3eaa536a96ef7042a4158af84c80e7b5f161172ad08438fe518d32411c9e9fb2213515617f418477ea1b69d767ebfbbd99fc7ff164da7a43f0f1804f7e928531283445ea517a9e1e715bda558807d2df4a636dc5a0cc59353a33b4179a0c431802b11f676d46fb3a7700b08558c409ae96af58ada7af081d42d6d0db42371baf3d12078f61b88bd09cb9e37f51e512d8ed1f44eed6113600f705f7514f5d14a91b1089d7b441ff4166f728ebd4072bc77530bb85ae0c6b0233d47f9d474466d7b5d852c20f6c5ff936efb6842fd94a4618ed11086ad6ca4dbf9bd6eabff8c230421c486a3c68b440f2e9a28c580cd438ab8da399f8ec2e7e0a38aa95ba39acc9ca8bc928479779c0165cbcbe292690015ae10db2edb418fbb148925eab905a3093bef13fefdb1774bdcfa7b907caa321a5b9fd149240a0ceff340ad906fe103f6bb111eaa53761cdd971dd61d463ae503e96df8c457e71065a86ea58fc345d73646f5c9261701a7264f119c29faa19322af0097a3f889cd40f0eb7884c2b2716342634a640f6c6388a68822cf38d93f159f67048baa8cfbcf5ab5f8b45d8786206a7ba497fc935d2be5644fe5d90e551fae7ae2bc0f237dd03352f511f61bf873b33d4974e1936260536ca88e0dfed5bb80700b3300f781439530b4569084297e38deb96976b66922a11fe56e5a14a5bb01654f485e1f87bd204433dd15871e7b9f4ebce48775e117f29cdab877d65d601c2657b407c26b33778491ebe4944056efc8bf547fa7bf534b56c363d4a165210feea4888078320636e50b08c46168953db0caec119f38188666dff40c056b1f70b4cd956ee8db8309c406563ac9d4353b36f51ebd760670250c556d9f0f2556aa153c0b8416b26fd723429ab0357e32725b2ef106b3bda98afba709692ba91a2ae2708d9d67a79cf615f8304cb4301e8120ea00f1372e429d873b0c7161beadf87fc12f06269784aecc7f6545345753a5a55799269c9276125633252501f0d313ca9f8e06e4e2777e6ef21e78efc716992ecd979fd3ba00b4c3115b194f3b84f515fbb0b4f31b279f3e776273715c05aa9adbed7e12b6f2522a397cc6acc96b25dc115835ee824a22a21319fdc4514f87b4c5d48bc7e83c2 +result: pass +shared_secret: feaca519e19182ed57d07e8661103ba82976d8a079ae871951bc678c73a81379 + +# Rho leads to frequent rejection on matrix expansion +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d74933a0cba383545cf629d357aa8927a7bd4f6575059485fd455be7198fc01a509920f6c0b8c5a565b4b86c084a60bd9b9b6037727df67b83ae06c5e47aba5d263ce83808f40a378aa43b4ec5458b33a0eac8c816abf5bf76a1220a99205258cc4a9236b4dc252cbbe8884e8ebc1fe921ed408582182b273a199d121153ec38b7f183174754f66332ca98b87a31672720815ff7bcd0cdac810db905ea76e6496742d26b2989b201fbc2936f5a6cd60c35e757f8c33b75277560ab948bab2962df9c38c91b44f08090e5585d852c4b729c52de88fd8c54722162f2d7696946c7b710079500136a28b9abf9a5c0294a5b265865cb04f9796b648f85858f8982f15c2bf31626b236b2c3a6493910be2cc8610829d96693cce3686b8a63b91439118fa661729462ce58e5e28b764aa39911569d1ca5c1b33885400a16f169858930c7f135ab6a95d08ccc70d057f9e73a4c8ca2da7185df37c8a6f727893bb6db74329cccc4692589128867cbaf28694fa747e86cf98619e99b221db88a81afa73b348586f87a12c4aa441f688b2c0cd16a89e315b3553a16179db0e01d01e19bc1574c75a13987b2600ba2ca68cba5c1d0ea69ac5fcae7862ab218b1a94b22030b40f0b3b16bee7c6d6e58700e150d7217bd7721afa7702023786f365a43a60226068c5ef3323c8f85488e77c106a243e96ba538264749539f5874d55929b72a695ebc3366589b04880721180258eaa095a950ea13319c0302245d86219b79a1dc61caa658fff790f99d2c3f25c11eb34aef2e66234e2116274ce54e5ae335260fe3ca3e0673128d064a39c82a3a9ce3be0a2c501aaa53175478b847f9cb17ceba19e120144534dc1a9b38afc864913a8dad5a7ba6bc9ada898c60b63deac87092275685820131001911b98af683248b50f1e2650bd299c9628678ae542e3e7a526620d1f78aaff445ba75b47d0ea0af4a3a3e7447851377f40c248053a88f5706dc119712a5001b8f035436c7d9eb1269b845156e60c5a714026cb330eda7f4ff1980fca10f5b87666d5600f468b11d81140b27498a10715147167fba6c8c58680824b21e97bc982b61aa43f2dc4866641b9bf6200e7a8afc3c1b3c70226e2a320c603797330c952050c90508a4b36580fb5c83e7c9be912891e7849db960f83b134543a3ea1c40d7f0029118a855a926f8b6a2777172ad5452fd0a38753a94bf3f6023fd631c3e9a49be1194df4c7fee149698a2cd7b54c5fb33b306ca72b6b7b4280cc5db4c452bb8abe365a3d16c5c02122be27bff2f1623294bb6217c201714e9868b991229df1569d7dbc9ad957379bd58a41c990fde349d50a3a2102637b18be9f4b10cfec0fd3fa2cf4868bac98a268891d9bb208f489c1163a16c4d68a13156ff31a0129839a6ba4436ff735ad69161d551cd0933a25728360a7668f166516a69ace60b8283878cb22394fe8beaf153632999d60554725c041f5b089dc205d4a3759a7044caa82c78bf50d63fb3d72172622f71c31fa66460882a603d02b798470b24409b019a6f4b85f571c5122b872997aa4c389fea1195ac349014660e619888a50142ebb173f95011a716f1b031a7b860d1986a3c43a65bf5654dc8376d2dbc8d25ab90d139a18167fb73b758331ca69274a2d340e59bb6091975407b4039bfa9e2a4480ddfbbc8b26c0d1457f39a38f1b8626186c469b48007fe0cd2472a3b4369d425518988741507912bdb12901fc19c49932cb1b1558862291a63ad878cb6afc2dd57a1593e80e720a0766a031cea2528daa3fa866543fb5a2ed8a1c111593db955c36143ea38a43d73024de9446ca2c69923ba88d2c5b4444cdd94a3c380156dbb0346a02271237cc488c89d050035db74022c7c924921abfd86f71646221ea2c61b123224a1b34fc5f02c6849678313fd86a7da11f3ee681ae5560ad42cb3a86bfaae100478b0677d23dacdc9005b17af54515863159f6072937ac882212cdb3e82f3f811737b81928b605a6142a9195211fb73142c96e2cd309b22a8191166e33d39dc5a26148179521a4ce69d4c55988966ee2b278bc2564c62007e75da8b1ae169595a9dc58dbf47da2e0c192a915a59765abc62e375588d8ea3b72850bd0c584614305218c729628a663399dcbca2d30fcbb6e99921f5c22d1e06f6dd99442a27c1342afdd2705041acf8df78bc4e835d8e400cb6419c52148f676354421c5e7268c84501fe82b851bd87bae738ef5c67032c746356010ac03caec13b212060890a38ebd28285c990021a76cf3a417d538167b782b65a56cefcc2ec6015ddfa7ad8f2876a9b3bc0d9649827abc33d7ab21d5b20e4a84577311ac7b381741c8238955e630795c7a3072d23dccf4ac689a781fd783fea7592d0a629449b44142b56f440ed00b19bbb976234439da01238640890353b8e14b7a0d964819101110da435c9b68e73b033c78b1efeb9d44e27acb225fa1e07bb56299d54a779cd5379b7c02fad52f3c1a2cefea9636d850c6e05ddc14b4bea669505a94fff87acb2ba0321541b2d78d2c58abe48b62d4d828c8ac0f881baadec1bb30d347772729a73390bdb85f0e1c9b93123f7e44a541740c5d0598015c1433c96eaf97b5e0d39c27e60b9ba6cbcf8a2dbbab8259e44d006da65869c75b711939cb38a3ea83dd3c8ae97b4e272a07403c40d127956e969f8ff3bedeeb23c406a20e73a2d589000000000000000000000000000000000000000000000000000000948eff25ea7ec304cb65bf7722f1f355eb12e712dc8469da9b8df5df12e0da9be366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: 16160deb06f8324dca1eb3093b3fc501dad316edb4d5f8b2ec591eff7b65a048b3333532ebd3d961e363157ebbcac231aead8e255abb462fba12955310c6c925b530ad2f4a761d2efa5a3b9a8aaf1929d3630a6244e9ee1ff5839198fc9b4ef47e450d4026b5044120c13eeba48e8fd9fcbb02523814c44874ad950a83bfc21b1ec778c1d5b5efa0f2a9e028b13622fc0c2c08d7acfdc45788e0805aaff92b51532139416982f0fc9931f3fb12ebcda2f72bd9048621208a4a91d42b56f7d810e89bf6e4e7d5171c82f09402d2906b692bdae3088df4b686b9c1925143e07212e13f4a3732f84bdde9074ebf3a549f0d90aa152671d88d88af39364d33e8e14cd0c71e979c045002c3c40f897bbff857f1dd82141c719ac5cdcbc944f6d38978e8f39ab0ea2dd9e8d19e6cc95e0bfab01f8bb1f8330e6241c3a937c70c40280cff3bb6a34b5b247fa970e50361447bc5b163143091f766387d15033cbaf8b9cd208a2548f42f00dee7ab81838ec03aff5d4ac446a55100934866163e3f53931e1f4b86ddc021f39f2305f59c95d336bd070d089526af38416e61cc73f94baefadc73794da7a7c9eb06b1cacef4b37626ef7d1dd381952ef67d8a2959021ca85f4f904f912187294acce58fe364f57e113e1bb4cbfd2913095ba6039677046645cf84e4069bf5f4c0996539eb1d036cd4c8f8e1c2c8e0d775f11d0eab393d9474220186fc3459db73bb864716418cbb90f55abbf9ac57096f566702bdfc668314d98ba91677bf74d91547c7b5302c725b890b4f3f2a8b95f65521a9199a4bb429b31e7537733dee03f7f2f135dfe88e38d1c301ed65a3d5788dd593531c639eecd3b947dc557253b993321d76a61ad4ea37ef2bc43b5d410c7837aa3b706a28051d3c1ade2216cfcd719ceb9ea9aab4d373d535a13da4c9c27c5612b38badaf16ae3a584cb7c057f1c2f4a24a477cfa4a1d834b3ea4f9254ac3f89223bb1c8b9eb514460028ac47b0b38d0b4dec9aa4c2b4ab16e66780ae8589860006ad4ab72bd42cbe4275942f8476928046134b89922b39e3e527dc48f7f5433620dae3ac140747053789149cc1434053923ace9f5205dd3d1d7057dff6b316535fdf508bb91b4eec6503db29bebfef73302300822fc4ec4e39f5a5813bed54837468c739e43a421b2d6478f12ea5a5f37e26bbfdd57ccb11900bbc3054687edfe96f88b59af5856e87e90e594b5555c03add6fdc0b62ff3c48577b3a9ac720a3bba2d10958d79651c3d5e7db9bd701e072a25799197e615f4f4258b7c0cc7982b8ea89033304a0c2c23eaa24d26b56f84d82b139f990698906209ef8df440144941b435c891f6a2ea0276df6f9e9fd36ba636284574d49eae6c09e82e4c0a147bbdb2a636392bb1671862f8c8ffc0929e4f59da3dc02d7461777ba48acbd062c933e1a61857124bed102865fb4a8bcda191894ce19953aa6f922a351702c570cca0e6d95cc4757ca61fc76507b82481ab538f418ad6b225abafb0fb824d0b8f1baa9597e5e095d5deb5a70d7390e1ec308e2e3a15a62ce03a73ee6a827e50d68b173a7e1ca2133c26f2a0b922b06c72383410b75c8911203a7c00a2920ea891c0940d33939e0d5098b42cc31d6bb6c0dd8c03e8aa2465aa01597ceb533acb3059763273ec053c5fe1b72f9db066a1a5fe216004b1d8577849b6d5cac89101ec453bbfd8d571fc08087d0353c0413b02fb8956522fa871db4f4d734e0677339cac50199d070d8f592b66503be23ff44104d5e02ea81f17234cdf33db122b5f5540432610b4700ddc6183d4528288d692f119bfaa81a33e89ecef970b514355bfb0f4bee9800c8227217db2514ba6396106bf603296b17b3b5e9c6512694de41c99c1959398800fd9f0c0cd0975a2df0c477b45d2f433fa28ff3c7bcc6c543428490e9c2f6169edf583775595f265f969dc11d5f1679a8cdda1738e64e2d250dc8b769b08742002f22106d7f752cdfb1af97e4236cf11589f82816b065ca8d1b159f49c9ea06a7b5153cffc0d703a94ed67dd58859311b72b4f032ab50d4b10556ab415c8a6b2bdffe62deb01c654af6f8c1f29a4b91d9cb1c6663485965c0acad445cade15282833c0ba20e821fc443945eb783d4d22b0283522e59ac6b8fce4b00f5a7837bb7943417288442c286f2c869f99cf41c9b91e70307d2424b4b831f0cb78729c7 +result: pass +shared_secret: a2b9e1dc08b711d8744a6533f3c9ad42097526e8e7bdd375b95ada3e20af11d9 + +# Rho leads to matrix containing zeroes +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca62e0b7d8cc8d1d861dd052bd9bb622cd8b769551c2307c82aedc92accc3d2c67c3ecf8341290af6c93a295fc027895809a081aaaf3cd0131174c8605c7fc29ece47036866f7fc326f7c947f70852356410e22700b5480897f288dba24c494685ecfbb624bc189dca10d9307595969145b21ef4ca1c435b3d39555434e133f8ec8c00dc49f02788041a6deae40ad5c9a3198804fde6230dc25b7f86a86bc00b43da73b5b40e3943096fa4540a019817881b4421961e293250056300e273f3d87153765ec237a79a16ba89a960fe42aa887c65fae65719766c44b2b8a0e54e97aab5febb1c194939e11928258cbcad6281cd37ad6033b1c9982df721200e36cb70326403422519f3afc3451af15969c2b26957c452fb136db18357516617892214c758cd9b556a827434c9510a5f6094bd32c8633966eb113f9e4902b6306c87732b96542979159ab49a170fe71a23093c1aca70202287d8288fc2f56072ec7aefa293015b6a58a2899ed79d4a09701ba42d26c599d8a2164204563fb90ff7372ea1626b61157361758af813446a455edf8346004c8f1d8882c6833b7d6bcbd86abe3e448006f0598a288c813790256b0c5f0332e06ba2f7f61fa405752f509550f86a18bb5483800a7329486f310228e9b467353957291eefc5ba630715ca177ec73602b1cbaa4956b37f1c6cc8714702b882686bbb8d1a19bffabf06068f72563437d37b33b38c476366404a4a6d17232e437c7bd4b56656b80eb7180e29613dbb4dc4b45f9d6909b07bc479126a4ed1b60d276962c060f725406a6641a29c7b87d17e29209c5473a595f93f6f0b6c4473afe95b2d0cf13710b12e4cc094f71b8f6c3cada16370fa4037cf721d56f1c5efdbaf1c395fa77175abe6c9fdf3a1a0b88f608580c1024dc319cea9836cb3f70e0d7101117a3d8e8841a92990d30cae17b676287795dd9c0a451450b7b75017881a210175af8a6ed69900070192df3195d27756c303bc82bb93a19bb805820177a07c75c5c1c04a8e61566ae62a357d6016e313181a260d678cb646a3cac063caac952ad4830deaa1b2bc4161b7c23c31356442e2c851ba64f1e99abdaa55b3b9a2fab0c172a3b9b26918c0f6933ab74fafc700255a59f3871628d291ff56b8f9241587f5a8681aae851b73b0a26363f2263035a271e883c5fc8bcc653c910924c202b103b4131325273e6246579939dfca8c6e78bc47e686841b629c93cd7dd16339d5b40cd8b34a289de9394c40d63409cc97b87860ce54c647929d2fc84850443a42a74a5dd67cd14b715c7535b28b01dbb3c0c3793b438b6e56f60347bc4220e695459c402c94aca43b9382a47091b0569601ccd7a74b75b868b035a39b9617a10953e468558d5850acc0a7d83532c9a6c5929ca3c9bb8fa16775457c2d9b320dda73bea9d2047a0c8f62f78f5e52ad9188a851860d1015c15f89395cd86822faae4fd2354610a608b36607247956e68bd4c252d7d68a4d58c3107465748a31de880be3230ac6714a33b4c62dbc711f5c0af44a36e6ec7ae6eab7ab954dc1f420a569b53966141df1566c73290a530d4174c198e5c5f427838f1884a2108c85688a16436270002207d58e75412de7255a1544c7d8b43f60bb2b93f45bacd80f2900cb324ac271c98a95f3917008ac3940853c13a516140fdd0064f646aad67b5bf1b966b68a6c795b2f6742a9d68228f86a60cc210aba894ed84859d990c10cba5671161caeb59c497c1b2ac52df6913a819168f8b8343654120a459ce5846a6fa777e82702fc8987368c05a503b57ef7304f862c55b9848a461af1e4383537154da27866a8ca4ab4af01ea4c30dcc59ecc0c9215a141996ecfe34aea6542b3b8c917c98ef574b1ed006977fc7b755b87c6eab128f6bd4b089359aa74eef351302335561303d26c24fb327319b8974c165e77277db30035c84a36534495ca260f7f76bd96396dfca983c89a8b99735486a78d34c9580b691108f63846183659854fe8f1168cfb9d1f5a05ac8106743bb74c1b72cbfc0e8ef6be184751fa449795bb1d0b7ca37dfa8f3979bbbc09a13d4c47163a69b04cc013795d41b0033549c3d84b00c01b1a9d7104a9d37751d08cf0e8132eea86b2462f37d660df4a3a095910b5ca2ca0da78163bb79a181e76dc619283b6cc670ccf2b1f3862c57e69c2b5cc293b87578b190710533bd4fba426f3389848919619c5b41cc5244a368adc40ea2647e4413dc9114e22749684923fddf2192036b83cb870eefb9afaac2961e3869ff0554077caf6d1aea720ccc59734c0a5465b7768170b323ab8c65a2a82f1267db4555565833d9f19ca10400d513bacb055c956c622cd7c0e5c54b33073be531c6586802cc11b75e8b0542f80b99639021d89caea41644029a81084129ffa66a66238c65c0f5562bd74b861293549a1c7cb70b6b3ce25286558a43f318d24052a196639c8b247bae6c59cd27d0768492b6b6ddd2011134cb9d9964ead020fe8da84a1f910aae304a9c3756112331e62ad8650544b5111a0977325c6c9ba242271ecb0c1a3c753543413685e46a31312c68bf9175a8b110a6816b6aec9562b8322b0d932f9692b1f29c6e3424d45686272f00f22db854fb8157594ca7c7b018b01c1f1a23028a4663c6b258af445f83c97f652954d619d7c68bf5e10046e7079f44b05b9c74591988f328443c1df34905200000000000000000000000000000000000000000000000000000072207a6317bb50769a4b1b8fab5169bb689d3c5defdb61fc74b2792eadd54cc011536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 1b5fa7222ee14e61e4532b01189d576a2f0c0019705a424c3a68c27da592c2ad20802204e58a40e5c4b88b34410e000dedfeb719c7541cea51bd176de9fce964a96006c7ac87219b0114d171d89a261a2c08220ebe532c48ce9db09c791824b7373e1237e82a6ed491d71dc997baed4622b5d4e87e5124267a3b87cdef166d6d1109e2258f5deca3390e750f92bec1795f84f33ed51e071cec46baf3704afbd37be4603bb4fae6795589228be43598b1b055cd696377481e6e4c5b0e9ca39358312a27fc1526814d2acfa9f4a2a4820294dbd422715ad3957cc3b30cbf97a4453d9d6e2b340b8a6822963b19b5213cd9707420cbe5183ebf969d9a1d7c02ad9b02e7c0f8e15903891a506ac9182b424e4025c56b8f8adddece1c62a9593c1a1b83e01239f3582b3e97fb55a639b29bd7501c7008801dfb67716540cd9fe51ab5340f6277a57eba60f3fa755b141eca72b5cd33d1f51f32c32f15459a60dcc0cde1ec97cd3574a70fb835a8080ae180b76c6894c01dbc81429ab00fe1840b4ff75887efa840fc89f3baa828bf860c6c394577edd9490f14d9bb25adf5fe7c81f2e1d5ba110e3271ebef0d42a158aa51afe9343036d86273dfcc01a414d2c89a05576545466c1d2e5f238ad901d2b1d042476c71f8a3889202b25a8b73bab3209d168812f2d495849ba309ad8a51195c32a8f9bb35287a2c2d3d75976748d3660db6c398d88fd84693c83312823f886d839dfc7e56d93ccef2c8b8b64045347870489c3a7e95383429dc78978038649742755304daf1289c74eafe56675cf8d7aba5b737c4d8476748d31b2c02fb8851bf719fc36bc45a42dec0a36c0d9b0cc12a8baad50b539ee36db0052942c1a59081f0463a57792e954f609bc14316f674877eca906f3bbd25607a4c076c9fd0e85eec2a02a767478745c563fce06833144074de383ef1c50d1a135d51fbc499267b2f224fddb0c8d392fea01764e38eddf6ead2ae01f30cce05fd7d62543e3dcce21c76524c52afb252eac36e10d8f9aeb3ddd450fe18bce8034e154d4b0c5d5639bf745e2c8e5435c9ba7db121a780be2df8ca2fc98d41348f2830fc5e182e5c88dff7c88429762b0459ca7977d977b14cce7c84ba39c8cd012a3b15f4695338cb3d6ed991ebd20c853328bd81e037f75e82d85695d56e10973c88b33c88d70b321818e62ed15f697c3eb949d1d70e91fb8cfc3cfaba12dd57beb2ec6a2ee80cff28e54ca18e1686b2674156bbe57a9a8a1152b3298c56174550818fff9beea0c2d6ce74785a0cac87c7ce8a11c0a8eebb5070ad79332e15961bf2413a793beb17ddcf0cf805de33ba04b48ec1e3abc05b7c81aa3277f39d40a1509232be61fa8dd5428300d60efa05329162b46fe3f6973ea3adfc6c11440240099a3d65dbc1fb0996fb75677bca40dc764caeba053106f74f2222482ef6f7617ab0ea0f97bcabfcaa8442657419eba2970aa5031245760b0047ddb8868997edb5a5b443277d00f8af3ef9b024ec3e0ef2ec199685d44ab4e06cddbe4dfabbf336488fb82f64edb55d8f7e52f9b21b2f984507170bd4b8881566ce5308401b6a06e06f2217f1160f5550555527b71774b47e619a83d2c129beb5601ab34810fbd16f7cbe6597de399e4bdac009c6d5e891b4e1b776ad16192437ee0b3d98f528a6e65d17797debdf367a202a9cd017332f6e36c4a6a83481bb859ca6613e0d2b34dfbbae2c583e4936dac99f45956b966452a9c68bf1dc3a326d6d38a6a6da2b6975fbecbde9cde0cd6af3e1cc8a0efc7cfab8d4ec0b74288bc319df5c4754c77c5071a68056f9019aa1d51d6ed28a99d7fe9125d04df0d7839810f2d6f129ca61d117169b0f272af6eaf080924c42c52acd3f28abad80c8bf0d2fdb79ec2e22c6967c044432f381eef520d0f99916fcaa184c81e820d894f9c668261d78daa3a62d11f6a82a2a803166b98cb4568f4cf8845fa78322fd07b0692790a80889e0f54c042b61737aa721b62c8b1f1cb5f01b6d41861b1c614d2f42ab82fd0c878f2212271429383de3496757158b50c451542751ecc49b7b7d3bdf697d66b042e47c33cdcb9a084c275fba27a94c349565532da680efd1caf40a4dda1014279d4b6a530206bd90bea3c14c1039b570e351b13da4a1af2612fe67c3ea4ce4c623fc4026005384addb19be959dcc24857de3af02d5652f9770 +result: pass +shared_secret: decadad640367b73f7c6a9e5d1f9e6dd576350f841e9d8eabd8d525fa8b0e1d6 + +# Rho leads to matrix containing zeroes +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc8cb39ba3237b6f13c80ef947630578d2d213f1914f94c61429bcaea77c646f1b99d35ac8009907ccf604c1211ddaeccc2f1001b49776df94560e5ac35e0a7ee3f39377e252d83558d6e57651b0b3c0365e6a133dbe3002270a0bfdc524e5d298b42c1408e17d155c82d69c256f78a69937843491153ec2117ac40370934d28783a69d0a02526afaa8600d289c27e9481cb737cdc4b9ddf53caf313b3c4b862b08045dc38428b126622d77ff3864fa93919427b049786042d234429e9858ce7b1d57a2fe92979851b9d4ca23fa7a80aa4738c9b777020b857b8fa2e442522423608d51b78c574569b9746e441bed403ac21391fe327818dc81355bcb2f5758320965e10946cda9a7c1d329f7c1720857c8751e57b87186e8dc21199e3b7ffc1c4c5607cc3c258a30163131c5db5d96e2e8c2f209419d5a03dfc618a53b1799cf102348b89ba289fab2b206f61688fd974023619fa5187b8cb28be778b666294bf029d7fa9abe3ea739f131930a13629bb6fa7221a788591f595911d3c8a6625a0b69847be058806d916fa0a458891821a0099f3618274091336ea37fca742ffa5bf85a845bc772ec2abc4c9b05aa7e51e8291aeef2a05cc185aa2f438d56026fa0ab0a0e8ce682294bb41238d358dcc1016bcb97ea4e01918a516cfd658ae753f4e7756f08b247edb899ac8b2b11862cbf92a5966b68e4cc6fdf66f0f14a135753ae0f5472a3614a46715fdc7cf69bb465c66ca82e65bd263c5bbbcada701844104ca821a6b5a914301948bc20987229c81d2128754122c1cd3c43e2b4b6aa880d0c203cd9490b7796c02109c2875ae7bd284dec49ecd22949539a2f7c792d351bff0c26f8721a86e1948e08a0fcb2135ff7ba42e352ad3c3a4d1930a26034ee75b355cb299f2dc375f7462f3801c1a636a87d71fd0e528191c8b1d6c4a1aca21edb82825056f8623975c54b1aab806ec623ee50c3c9f954b29212662b7530793c4e3308fb5610429519ab35906834923b053b595f19d6be33c5ba4624dc72fc5488a98e0c7cc9835a161ba97e72bd08485b2c59fe2e56cf1c5a091f389f555c7049c9a74b57af3b1af1263c7720880e5d9c3270b338488279a27c9acc04409d612aa8b195dc5c15bca57a4d24d8d10ce661509054a23c0a0b7839c7ca0f77b0524721b06a8f92570aa62091de06d06783562ec9a0a795100c28fdaa06928dc6a9fd106ff05c2c4d4c3d193898661a4a39583eaa9b62cc282c04c872e145b42058de4467e3f22cdf293723299565d452219c3740bb65bab60387a3321bb2b5ebe585e85e4a2a5882c72919caadc9b46495d100081c88964c87521ac22127e891e1b9709954326b45cb35f5778420b08773b926bb79173130d43aa2c586689effb567fd165334b82ae4c6c98f93b64d99a44815877f5476583ce363196d0257ea472a9bd630f2fa64585b9ccfa1a2012822f6a004cd5959d5793adfdbbc5596887b5088bfc5c5af9aa35e5b9205686069c55aa7437026e75ac370bbd40421df7c21350da1a5b13b651159db592bde2078e2d8cc374d6833cc91bdfcc1f19d9676e060f2baca39cda1dee758ccd096545e21fe2cc082c00374d593968fa8eebdc309698020a29910f3910a1679129791c02f94cdd8aafc8c007c96411835280e148c4109743c8d168ea645ade7c23b5bc26d4bb083d0a4833f87e6d5b218dd73b76810216f9658a9547dad241d408bdca43cf792bc2a6438df858ba77d01c34c54ee9a31c83e472d5f945fa504f054443851a9c0d59734f175795a86ee2847d7981654d89633f47a420b5bf65920b9810c5512a4d8e19aebbcb13ed0a87980891799650a88b8dd4eb7985506a581110439a0f5afc8e998a7477e8c4b54872b9479b36f2378a4cc97b3208be2457326988e4a13b02812616d5add646cf0f5a8f5458b8960839f93581db651ccc5238df417b4ec6a445127e29e44563a7b49eb403c10a6edb624395c58738762009a073d1949149ac8e69e8014478a6701cbe140411d2f1b95376afac6988737a1b9278a2ee5b7fa4c1cd89b69f56f2686bbb59a54c676eb357a0602e8f8a8a914c745703bb7542c313461d1075beda6cb685832fea735d0c573fe744c16bb52b8e7a7c8d049ae34891ef0ba338614f300033969403ab4677f2179c8224bb2031b8e891a8d0806819abce1356cb2c906fa2a17d4f3c4ed0b8cca831376f67487847475a5b27206a18dec19d29f6a8d49737e7b14f2034209b0497474a3b0e94b6ba190d2793c945cb7866b3959f7b2721537b77a45ba6a259c0153889141a1f9171e4503a503802b4e856f90433063b37ff00b4fc3347b99539efe3cf29b515dd7b700b37871d926f699499d6699831e18cafc00619b35e58555a40034c22bb430fa23854c81ebe12823b92c0bb05b2eef1cef35a75ba6564db9122ec125952260149cbb8e524391aa92b82d13de624c0368a9df175c5ba9b99703b5bd1b918eacb53d78c86b362729a01c2ce905c4d5120e690911255be11b39dae9b8a9b60191790b59ac5421473237508ab327811ebe955e8acb15ae72019426573e314cd775f4041658e85b3261c3f04c32d04e58b3393a81c7b4f6b2542b2e27b042027f9a0b40947a919fc80e87a8182508d2b4264fdc9ce9786ae8ad3cb041274b9fcc575291d74c3b95afc31acc280297841fd5549083120a2fe78991e000000000000000000000000000000000000000000000000000000bbdd2fface390c0376fbaa97281a683c4dd79d3ef4d3421f88849415c2c37af12e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: a9560cc3bd566af9beeb59a300ddad8de5a70be9cbec8777b625f9df541f3b7e3432edbbae58624ca393a7c8466654ad4e616f302946f2b4e848aad0b16d6ea8d19faeff99df0577f422b17638ae8fc1c23b90de0d3b0aab0e7f77d81d4411af93fe1fb038fcbe8b5dca3aab65b63b767360ff8d314dfd9adc924dd5315a591946d7e3bb9a8d7605d4168255e2c0eb5e5fa2483505cc5e7e25203728ff51504c580ed157bbb7ea59702fff5f39c67334332d5ee17ae551449ad402b9d299d7519a9d60efa56a1bc39c1a3e12936ad533457fabbaeb5f4016c39deeb95bde3d8b62db69aefe698e9ad4597762589f20771171623c3fae08176cc6b9904fdcdcba42b1ce7ac5a4403ba3f38542160bd235f2b1a9d2c8735e86ee7af2e749508252a34a4c36bfc82573b856ad0408a95b7fbbfee254191f744e0f36d698dbdb0e9905e2a5e4efebe76dd2af71578e5dd28974f393afaa581e755030a137ff7a912648e6c1c9cad9a11c2fb22a028cbecb24909ecd07a53b5094d035664ed822561daeb8bc09c3be6f351dbff20f0bd69c6dbd8495460e55710e2e26ca39a1a90f05bb44e74cc0fd932296443a39b968717b5d7bba52b4313005a7e917a7eef4561e340e42c9d4730a8ea2500db48da0aa4c8086a038c00a5698b1675b398cbdc8223bf2ab069503e574873ed015338cdfabd2c4c8b349c6889732dc737501f9f4804c67d693722f3723fdfa21130fe621e1e091dd6dd63cee53f643f105ec486fcd4bfcafa03bf7662b2b31f0b428ba30636e2672b4114c381e2ceb631ee4b59604a656de5b13f556ac60747f00362ec577381cb6263c7511d1b4b6b5d55dfda1861bd8ce2437e47fe8661ce3af193a8ecd2e3fb249a7b82c9ca905f38f3072b25262b50ab205d7c210ac62783f332254ecbb013e0ad36ec963d62e69e085aa6356e1d2027b6831cc7ead70301bed933823d1fa5d157573d9828700668593dcc60e1c8adb12f14d61496d90d38b9be0fc78654762c4cb32ec66fba75063f1d8f7e83a3e78c33a5fab61c80e73af520b6d013daeb5d48b0308a5c30f86aa19e64743d1bca73ad7336b7cf2b9a309e3d86ab39882bb6d3f4c2c2533fa3a4c650463d3992ad0ea1732b2371b62d4c8c98dade19edd0eb1462c830e67ff7413d890d30d2437deb5abbab57d24411fcf49a2cdf997263721f1a36fd7e32ef383c3ba460a983c61b2463279330f24b75abf6d2ca977727696f336220192a827d13d74d833d038647dc6720769cb316ed38e9e60ad35b00f21eb4c9076b16c79f8f3bbbed9fcbcf1f0bd70a4745a697f3a7497996953604f29e4ef850cb96735153fa3f2416229cbb4c36e85ef8f68a607d77c48f4a14e00a080c62bc2094dab53d39c7a75403f35c9f58aeb25b075c9258c2fb23afe18cea496ec56b3f17cad7eff23bfde253eac130494c0715e5dbf5a565bab2998d8d0dfcdd278b863a2776e1c97c8deade022f3cbc190517d0ea91d0e8b224e3eb802795f730fc90284b86c265ff0d9b7a5de627859be4c7c8288d22c19a638fc80836aa30b948617b3d4f086f337443db0eb6f1dde7e854525ce5028d3fa8d45bdec7aea94fd2c4586ede8a23cee74e42024c8875df7c2d22a10dad2ab7c677242bb80d21a52ba9fa299c046111838c5a0555f8d11880d35e6434bd66433dd9500febab247e9c220b2d97d523199e99597d0e83ad6c11846c42fd04b2831b4688b4b338519037e90b68055c4d10722d933b0c90197979be263b884e7ff11d527b532fb17e1f8ea94e0a177308c6e626d6deb681b2083f9960b6d9845069b6bce1512a001a8ed694b16a191023cde941a525b94f225b55d12ec40bf92db4c04c957798be6eec2c1f377be77499739f48c9561e83a01c49012f134b5eada3d662e02127ddddc7569c07499fff9f8f341adf25ce79bc46315c4dc08b65ddec14275df0c38ced826ec2e21e3acac3ba78860bf829b5775da4ec61ed0dafd17b79b671629c0f10a497ddc3734586e8c6689d087ebbd63c9ca5d2edf349469ebcc31e81c2d6d58f2c2ddef32b4b9986bb64ef8816986758a616ca4c4155d126d357f0571b172fbe6b7308e357436945bbbdc70c831f60243dd96a7c617d040a6276e4d9ce07c880cd4feca2537127eb0eecc6febd22c3c92a3110eb4c4080e88923e56bea4e5fcb76c450442b89a5cbc230f +result: pass +shared_secret: d31df13dfb22d68333814c817ad444cfef6378fcba2edc372ac44ace59e4e9d7 + +# Rho leads to matrix containing zeroes +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca584a4780ea352e9dc85393457e71ca62e85abb2322aa45c4fb3d29b15d55a027b8a74186000b9a05550b2a343a3ac21b0f7a2b2aaf736a1ca49df5b61fa749266b0696ad7b6c48b0dc82803b10a4b64d6caebb33a13c60effd699ad44c1985c9e3f8ab21a0cbd728ab52e07c4bc5ab3f6c698ea307f435bb7b5545c44758fee3b9077b5a318c2b584012cc9b57560236be789bc4b026d1f26a857365b2d1a6e809a9f71e140ec56c4db3829b74539a90345841483daf6840141100c66cbe057261fc346ab8c36b03cc2b2ac838835cd373836bca05d9f57ce2231980ea1bd9908111e79b602572ab37495e9f6025269713f4318dc472d06b473268bcc7c5cb956b5a1ebf419aa18b9d6f184849240470607fdf6325ed561c270b095079734fb61e04c531be893c2621c5ba48bc897868126b995e75777c8ceb100c67556484b71404be802ded5299cc41a83b0c7a99c8d36d55f7fdb4697c446904c2420d667f5e58e0837778ea960bb6605890b8437f24f7d35acbccc41acfcbf2e35270ab368424b6ee6089ef75bae678c685b685315456ec584a93ab25f67427be85bba701c0566544f8133952936a203923e07d5aadea1130d906daaa1a4d9939ce1e147cd874ca0f777f9023d156070f8998a9607940d15af47a4919c52b831748af51b41712077bb4836d383a33d802c80a133a388bcf0f3cfac305a7fcc3199ea880d271242a3a6adfbaa5a894ceab055a6594436818ce10bc8113c8ce0613fca2533088a9f35c4a161e0035d690e48b4677273ace7d2c70e378047e7b9b7c49b729a612f5abc7551756aa91239cb16aec08e2ee53659954cfe1a5ba8b47f36c47d6ea2885b8332baa61b71a9bccdca58e2f0cd25e9b40d38867f69574f98ceb03c3d18b9b6d5c2ace4a8b1bdea7e5e678f1662932c267f117005be498dda33b97b0c520b1375c75829d8e7cf268524f74656d033bb986977296b4997fca693281896681022dc138fb24d9fa5270626b1dc4375a72c42955529922cb683c225cc76ad1b25c3082b9d2c47491bfc8b83767d274b0473fa753b16b117546b8a755e94b6b6f7048079985632b33664aa50eb072b47a338ec12b3501b3413e6c94488546f2bb142d851fab8260665aa88a75856d1ac719341ba190e941b8d6bf53f76b968fedc28d0a524d7e366efd50c8929cd9362cf4ad9366713c2dcd4b91c45b6fe654fcb87a6674c2f3c9447cc546aa645a04cc3b57d8b1265d91028c3756d216bd671560e29467805a2ddfacfa651a2fe32731ddc74ccdc243ce97ebb7b2ffc7056b334a0fe7813cf5825997690b91073b7f9563749b8eaf46cd8b93161c21543592c21855f577290b9a6616e2c80134a3713f04e6c2cacfafb3daf78b9ab671337931ef7eb58a48a73a96b6739850f2af60ca0917e301610c5731b032ca6cd77554b7a7d7783c26b2cb43ff1c1fc3716fcec4455e516d164c561776a03c77275d52d1ff426d76240b8b5a47c498fe836736a09cba0b32983387f595593800a4e37b3764f054bab91731c748021818e4d149db358ce8b2ca2af45c6e070ab06fbb3a3485698bb955681b95e8932aa30b9d8242bff3618120038b3ec776dc3b635963ab24b8e5f9761162737b04a59fb38ba1b3685b3512133e25e7810c4cb26a25be67b314924728528dbdcc87ec53cade88b1e55c7a9ea43b647655c697331db555e7881e240cce208ab189265db243cc97508889a2fa201a0d1066c5d2a7370eb8137d04fe035c8510b9f21e6bd152872ce6c7cdbba87ec85341c9c23bbea14f9caaccf56cd41c60931a1970867a38fca93fe6a789f5b1cf99ab23fbba5abbbc881aa154df05e9dfb5c92679cb56b0f156c3b67e918de09c5eaf4288885c91fa5366f0854e320451e14a48261cba3cc671ab590ccea69693a25ba90accdb715241754f2f5adb67a6e6491703c0b803d8c55f6364cf64c3f117206013ca309f5c7b4b40774f98ee7738f70b5b9bb19737855bae9958f6b24b22d643753515f79b884c223cb9a734c634306ba20cffa79a5c5fa46e1501aac245523e2b1e42a44a953964727b13fa01b65eaac6188a1c9ab974c613cb5971bc8680e90181b3ae927b3b325a22389c204470e4c6a97e404437858910c61897cad27f00e2f7556639635e3775f7ea351921051684cc6ac224df9ea98bde524863683175447d25aaed72c68b15955dd1639dd978318a8347316690c24bea1d3c64f031aaa2a3b48593a7593b2047a8c29c317c9766bea878cfe5ab947f12d5fdbaa267a18ffe966ce629c25ac16b68aca3ca000e5081faf0b07c7b914dac266dd08109ad52408c0cc06524ed424638d1b7d3175bd977b982b26450b7b3111625d2f64a6055a59168c9ad1cc13773a8f4a2c79d92c08de3567387a2bcfac1186960d3c939f2a601bfa96bf9416022385b2d1aa2dfd570fe54cbf4cfa325bf4a87e734b2bc4ab576387c63590ec3171b41a5b621109ff0a7617030e02962224903d40c5c396413d8793c2d2044949659a92b4480e8123a8738f3cc12e45504dbd40a3a497623e70600378bb32d66dbce08eaa28303e896aa887186ef9107b023b69c49c0ff802fc504431ca0aae2008fbf39c268cce17f1a75dd8c880a34467963cc2ab4d60d78e96dbbc5e5611d955658de04b13d5ce6cd3af9e2bb3caca8e6a088afc7ba31f951b920318ee4f3c26cc000000000000000000000000000000000000000000000000000000c9f4f8131164a4f1f11c42ec9d4f305390b09294a7ecbdebe3659c77e737a1975ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: cb24ab9d59fb286f3ecd5908e34b4e5860bbd08ac3939825156f619e0c005de948e8698deb7a34462c5fb7730ef3ddc05b017b58edd91e6fd6d4df125128d20ff619e3e593364eee7e532f3d962108b31f77216f71bc9d5163acedbdfa48f94f2f587bd5c16e11b5480237e88f1260f7c2fb25d044d5108d199e1bae51f8f14dc5614b75996ecc3d067ad3cc6b294ad60fb9fa21750c7bfb53874c2ee99f73a494d0df220f054a845f2fbf85d1a5727c087a65436433b73013b9a6f26f08c1ab443ebffaa03a7f8f185f33b07b99400f6b03ab985711fb4ea97d058a8e9a948101359b610a6d428a3d10594aea5ad602bd83b05ef6b6aaa2f56b655dffd3db5ad2ba51d8d3138d355f2550f29b40bfecbc43f1a3dc7448640b5b3006b87a23f6b71554d8a54fe0d4db52732e8260c915407286bb3074d2dc56e4cc50bb14313a4117e78e29d83c3b5dbd93ede35d2a47b46a0ed51fe72cc7b86f96a3d9367949abcddbd9988639f8a8555534e23fad9f35fb132396a13f3abed73fed757363207043a84bf5fa6cc2bd862ca46dfb9a124fc0a2958a09f1f35fdb5095bf48b859255cf49eea771f10ee78ee460599342bd76ecc8ea35077c4adfc3e05c37abe4b45cc00ab74247ce6568b0395ec681de4f96af9fe4f053d08ab465ae580bf2e4bb54884bc90c75758a6c9fdff87fe56990cd3d0aa691f97e03d46b5e25bb6a8d2acdd458bdd60aa803f4a2e7652cd9901a385525eb1f2c619fc2ac3bfc655a40102e0721cb842bd1516894e31d972adf9570365c2d3acd23e998c9aa620bbd0f98b07cfc103389df202660a9a66e819e8ad4872cac9d11667ba07e49d0095b1470d793b0520d492b4524521f470c1ad11a917545c3e90c0d09c57153b9f01021dd9af03ca73f0d833a0f7d6d8cfc132c95bdf9713b055acd993f8070095cde23f5782bf1502268ebbbe18e0a2c2579f4277d2487173fdc03f787e960b351c0b0c8b676e6a9a1b2cbb8b88ed59ca6fa351141711349e70f13175f5e1e6c40b495c283f7f10eecd35fe77330b52b1dd5c198c1ab5aa82547b822b59f2eb18d3f70c2fe6d78a5eb960abaae74fc69c573948212efb77b7b58ac24f23e39ed35a0c52f00885c24bfda0336ae6ad827b83a0520710d9a039bbd2c9653d8b3ec38133f06c4bccd714087f5291a37b1ccbb4fa71aa04b6ddda1cfa0e4af9d531c053b4d3b4546894693e32feff3de7df191517c89d34bb3bfa4215d98f5c72bcccfecb97144f1abf05fdb21e2a4017e9423019a26eb70022c74d49926654e986781d9acea4d8008dabd068ded76190b76a6dea78e2aa33b33e5c68b43946c0f83cd3c162dc23392d47e6dff8ae4dc9ba44ede5ed59d6bd399110c513e52a71bed8073d3b791aba2dd34ae5fe07bc9f0b8efd5a275b10477773ed26687be2df6afca51aaadf3df873b7b87b221ed25e053de30b529aa920b14ea96d955ed4452bcc4f40389a9b8dbd8bf25bc02a99d0c1fa92e8d1f39013210268f766c5d9a8f080756791e2b9ecb7c81b10ff643262da8e63870b6e910c26e10c20643ee740bdb73c3ecdae5bfbec98940ae2cd3936c8dceab8c6156840463786e20770d7c2b89546a41b7bf5dc1a441dd8089d03b69942f3ae9823a29aaead42fe77763fe0b51803cfff169b5303594823ee70e56b4aa0d8d77a7a39181169d4c9910280edc3aa6841e54427b962846df3fc73b71ef19cd6f24b74f88740347ffed1c6b299ca9aabe8f17c9425da19518f490ce73b1418a41d7f5d60a14f74a51dfbe6170b4df1c908af859392a4df8e27168a35091c20b2a3ecab2e0713e26f97d7d571dbb2931db0d36997cba78a929f06480326a8ded29b0bf1199b654cf6cee8e982ce057a55ecd2be458bc8f55156be7db5a39dd5b5e62c0b178c0b500d79bbca5330cd21c4e213bfcb2584e2fde2e7f19629710776affb99fb442dfd517d49305d1980069447b09fdb411e3ff2df0fd2e76b35ed65b6abd6771e6e05977ae1a86145a24ccf8b8ea28758921a0f202cbdb629254059ea8f9b5f6f4cb4f69853e7de7cffe70c05c5588ff5e77755852b6782f2565644e6489f62318a7e2a29370f5ea90c6628bfff320d948f715ea88958974a0ff700b08b3712100e73ba7d134f107c304ee0c00c65dca2853e739ff2842beed8e5df18fb4bb3e7edd7ab8d7d6fc0f2afd92f5d15 +result: pass +shared_secret: 751052356086210d8df27a08a945497eab163ac925b059000c89b6e82b2c6bef + +# Rho leads to matrix containing zeroes +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5dc9ba816e19d8a177de33a855960b7c464cfd51a7279a48c80091ec357b9fd118e12f00736036fa8268079754a4d565773f2a5d5c913109a4606a276d07372eb96474c7722d85a17a50a956b3ca8132415b2c404a0288aadb44fbb00217c0005ee36137768c3d4169d300ab2876c1b2a92c0cf119fef5018bf7acfd2031929b9671898c64388898fb74a483a100ce2ae67275e53b00d94c2888f831a286631450308aea2580fc5cdbae53b7108a9d3cba88a437a5c0917dfa3bd7fb2266f2b2f57f52724b67e58cc2781a95191f60a34d74199102b5fe941874a4433034ae6c9aff9e2bf16f01781d72424508835e3a587903eefeb0b0d218e11183cc7293c81c09cb5fc4eaba4cdf22284206b23b87566da704665527c6c587aa3070b01e79094747a87ebb2b9e5296a2405528c224ef45ee6fcaf0c537fa2e2479d579d71a3400793188d895323f274077416f94c4e68811ad9c73598d7ccd53bcd18f8b1cca8bb5591298132258f4210d36722217c2fc5925330d03d1c037cc7d520f52b7752f8b3b253b655f962e9475e8cf792f5f99b5c4b440a166e0d18c79de23173d690cfb697f1d072f269b94a78bfd6196ceb655354c31f356806ab5c42bcb9030c6c61e3c3a023327fe813362bb69ed9e783b086a94581c41cc49c03489ed53b585febabaa951bcb642674b74a4ce35db92894c6db484ad10b0dd84b3e1b9f88960f4d7a9b36e580473692930a83a5233dd07a027c8cab7b4165c860cae41b950d970831105902b90805d066da6552b839607880a1bbac123145375115c647d10671e84b85f94206d534cf44bf59416f01994b8b125a0e098a842c4ad6ea108fe5bcdea005a1e3985f656e34c431d456cdf9f624a7d221c2c242cae4c9720a048c760cd2927591db67c951905c67bb42900c44f67b99e508d5b38839a0b31443ac8c241ff7b9ca0a06ad744813eb37142939248c7163262216a4438b7f3aa5eb1c9ae329c0d0bc63b2665d90b17e7a27308449bdce8a861fc08c982266ec83c9aa1422135a9e9be99c0a098df9a5568960aa2c727a18c15e7713c289e502bfa9170788c6a2d01711fc9b4177a491226c4d6a05b03baeec202b98e3af0c7612d474c6b7b912cbb38990f29fa5f15fb12c4a5c417bfe30a8ad88aad5395287376fb3b18b234199273625fc23c79a775586d87dd9466f1cb816466807e5079a270954e8fc8851738dc316369f8344bd1019f6b6624bd50f0cca851eb57c48b126aaa3a97d8044d3800bf344c4579361e3096ca29506b4b125143b2d625c21bf0a001aba2e17aa6075d8177d55324a08cca923339bf5c7c00b5717e7007cc94b61f3207dea1e3bf24b79a09ef07a37c4476e47f79a674693fe00b78d372b6ca76614ec604a86b64106cb61d4324e99873b241a56e063960b5fce306640bac5d46c88c85678c508452a806de60966006663845692129123d2846fff3225529475f51521e3f027d537877797b511043497706f3bc3b77ab6823a112597567e6b4848acea62fb09181fcc556beb8216c76ca6782e2d1234bb8521ec40a0f6d511bf8774d335b9a764a89aea93cc9b21ad62635c1b8fb6a4a4130572e41bc13ec627ea2c631d33a81ab1b6c77078c564957b39b0f9f04cc91b1b9ed89240b03a1c787347505fe4675af30a09d6ba13074431fdd045c44b4754e5682e7c5d49492e0ff2bc7585b631f3cedf98bf774427df7ac847954a139545d3643b1aaac31b49571cb7ac65554356d8aa555a67faea89396aa810a9b1cc8312be7333003d8e1f854a7e35ca0d75b06c499b0ed2a35699114d287bca9571e93948bef4c32de6bbb952a5fee5ac42a14c4ada7ceb5c8bdaa873076b0f7ba4881bd2118ae67ea671482312a35c7c13b1d7af2c9291a8408c3ce985a6311a2c702cbf306c9a7b4eb3ba169992831899c6870a8fd3302079748a835b04791720cc4737c5b7684ff612abcb477c7032a88262a37845f2c46f9f0066d19238689b1b53dcaed0544c06755399da2ff4fb570b299290497937126672a41ee9fa594d40551246cebbca8ab1f5c30ad6bba9b0aff0f06b0dc060e6b58a70cabe5ebb464b3562f1a10990d12e5da525c43040d66461cc396ace7c90c0f1aba06c94dfe7426b922c91744310ebb4e33251f1c47e2a415b95a895666333aed434edcb69dc69a513194ee2013a19164d49a519e0cb3771247e65664dfbc69c46dbbb6ab2193bc5b56abc9034790ff43909e6563c42545bd6ca31045c2228dbb5601895cd397dfd73473b0609bd720f9475482697636df216beba0d1a85b396e6ccb3e41fb8d52b1341b08504bb00a5740a80228118adde4c7d0bfbbb0fe0b8b815bc07885e496324c9806f9d07762f123ddc558aeb387b9858b2117714886bcb2b18b182b6ad2f8a21acd50388959f3b70a258a025c80a0b89d6321f222913484990549fcb98c5c8c88c2832075be378410b70c9b9494a6c1a40e5aebc88ae3d186d0b3896d309710c17ab96c93e629166980325bdc946e022ab80c47f61e01421c780ff336d7ad11a3c28721b09a03a5337dfa6cbb76acdb1846b62225578d17fdf062839878196d1819abb7f09dca6a1d225e2e0bd89a5578730adc5d53d19623203e24597c1a2015accd07a6f83938810bcbf2dc94a99f5b47082336fd11a45ba478c750f3e638d064144818a17f1586d6806353409000000000000000000000000000000000000000000000000000000a0128d824477a674d6f8e08f3b9cbde943c99d33bfc5a722b3e426ea18389e408bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: 6fef277df2e04e66e489b1e04fa87580157cf1c84f0b3bd8137afd87cfb0d726e39d9706f177f605e9aaccf3a52e841e4c3c4b5d54935c5a9eacb0e6d8a2cf17ca416bf7ad3cea42c3533706c54779d62a0c8a44d0c0f920db72b7d072738ecc07fe16a8e257452e1197604054866dba1d12cf4745a2808a435bf31aa64db6af2dc4a3af697911adcf9022936fb5d40a9c553774f4a589192d98bf8289c09ea803807c448ee3e99c26799ac051a50ce5edcb57f3e13a13fa1af41befeeadb7c33e513ee8cd9364025ea0b4efc5ff8f095db6f0a9783acc57b2ed7573cde2ae2a8e7b211ec9eb6eeb34bd358d5cb009184c76bd7d1bdb4a920464d1da993787cd284ab05b8d5d3ca474847e64e1e728ac4ae3522cfa3a642eae5c47a94783700a2b758b2342d5dd261715db4f3156a5be96fe219dc8038f2d7afc74fb60e6cbcad3ddb6befd0625c4b2de1cc9039c9486c5c18aa8a796169a93cf8e626ac47e82b752f2e6537287580acfc1b6460bf5db3f71fb1a4f57e67e0d914587dfba55ee5bfbd5841bc04d041526a46053af4de2347fefb071465a7f9b00396b66c49efda179f13f07dfd0278464239436d8bd39dfd048329c89c2c8fcfa54c24ee67d124dd0b2f411772e480dc2a8b40a6792d0cae8ae9c6c883908a0d33e931053dab157d49e11e76ea3a9bde1c24eefff37379b265a52a4a26b507b5a4eed6f60a84595b1b747c96e8656e7759392924662fb43a40f8154b642dad2d8a0624b413a15545da8bc3dd5a5f8d304eaf23299d5a4574ffef0bd5b3d5977daceb80d67df682979abe36cd7d74c063a0b7214336c75c6d047f2bb52a0a5124658b9b53ac5a67a27b001aeed0c6dedadb3c818ca99e52b18dc0a9adba7f88eaf4bcd269132be2462be1a42ed102811b376276780e7a4b399f02e6c00605f1806987a6c1b3d4cc8f9cdb85b2c833702735ec6a61b9fd2c9ba220b108451d1fb8ddc5a07baa2537f71bd82f1f06d7f27e4a374336743c40466e11de367ad4a256e860e6e5f62a38cd2911bfce65b1b29274989dd1016ee6fae7790bdac6a3e1ee05fd4ea743c5609c3e4f1a65953421be132220b1792404d80d68db00ac5a94feb238325ffa44b376a9b6bb3a84928b065995cc7882673f1de566a78bb80b61beaacbe138a5a7e2cb5e3e276057520db7424405c69f719534983fac6ff483b884c932f6b72fd1878ec2ed1edf741159b973e5ae846fbf59ae1aca97fb855c72dfc5181b09a5a52a1f8012629218a8b00968a5c4ca733a07893cdb1ada1380db4b6f4f211996bf9fff20227f7d73aa552d8f9fbb6ed0d4dd278aab1214fce37dd76ad2ddb90e7ec49c4c4bfa61602988bde7f498d5feb0540cc0d6f2ae75018115695482a4264d513780a87bedf78e256f99ad0ad37f910215795fdfbb375d66ad20d1a731003a1ed52014b6183906fc6a0ee544f1b238563cb6eb407875714ba9d2fb48e667962b45127deb0180e317af9d2fefed19ee929b75c97088ba9cf525ad7264680d3a9fda47a6b5168a846a1bd63695f4b3342ffc828f8fd1d5614fb4adf9d64447984605a8846c094f813e991abfcf01c0ec330cff0aa9c8680d424196f173f63e2d0ae359e5e1968fdb6fc72721c23c239e88957f107eb296d7967701d4e9dcdddbc5962085616cb641c17c86d8f33d73bef887a160065f48f5d7b456153c4d2898f092f6a870c49ef615fd22833131b55fb46f73fb399b046248723cdd15d37c46e0460a81840dfec3879a49eef63e3b331cf53c8bc5b10570a7fa23e3228ffcc20cef18ebf8ced22dd37b50f79aea827dc37cee62a849110db97287b366afe64b4b9379586ebe34b313e260e84be654d83dd3fe4f31d622132c06875ddbc70629197f54b400a97180b81b2cc5aa430e3dc6ec4d9aa37dbf811ba2932aebbb9990f0048b4f04930e147b38f3f22c4f026b806d9dbdbfd69914346440d9b37e7ffdb8bec0761e49762f4f87485e2ba5beeaf306253b97cfca2637e7f7cfa175e5565e9df8741b94aa8d808515086a12606cf207878080b7cadbd318ad5667b50ebae48bc923b4b7a7c7f7145f7f223f2afb9536584caf2e8df28bf693c2d4d2ca71e38361f3db5108e28ba11aace9bfb85bd872be837916bb53ea66a22a605683cc112220f894a8dcb16098607ee5e2ae33b4b93dca707fe7f96f91defd1a6105022 +result: pass +shared_secret: cf115ea5c334c9374daa083543cd805b8070de6688c552b82b256628573d668d + +# Rho leads to matrix containing zeroes +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00dfa8bb9d8c58e33260020a33fc04021baba0f6375ddee4a6023846a2dc73eb69758edc915ab2446b1c59fed89bbb86a9be2242c117cb719274873c8b0a2857e4076b3a792965011675c23deb8bc0cf7b2e3ee38493461f8a2068bcd899f1822dfbe8444a612f9fbacbf87a0d45f98a541c5141b230be12763a3563f5d47e369b65c10254e5f63934a05c8ab3409d7b4207dc423d537abd4404a9ec6afb1cbb529619bee740a4c71efc952b3b871043c24c0c919f74f508bc23a9c1ea8b76ac449e28379af42bb6140d376c9a4ec76b34042c7d711efb559c8c87170662788b4cc907e4882d4332d90c43175cc56eb943d589a30a5ac1ae312aeb8432a1d7b2f7448fe0f48ad069989e908d28616530246f8e817aecf6ae638acd7030a596d5be06964eeada35f6175bc0d20c26636943f1609eba3b8852531f083a576231c9b222a9f96ab1fb79aa0149155881fae91adf26c4f1e463f6f603511311351c6c1d1832f482306d66a4a2e585b7e223bd539fc45c5b29558e3110cc268356edf4bd5be7aeb3f7b944d964d1a7cf0e1a686e02b0b30195ee2bc6d5c78a8d73caa7726a8bf2cd62f33ec676a2a0c997541a386ebcb3a5d845c0a9b970f35ae0602a4282136a0cc832f34de426a08f05bb89f05c4f23a1d7bbbc81628040fba50077569d99cd7b5c7f19b4cd5ac618a4c489cc08cd55f567a203106be784f6824f276c5b4407cafc0836a69c8d90047803c598db03491110688029885ca112ba18026a339ba7e47a4dbc2386710e87fc74495935b6c408ee077138476b8fe10cab556bd1613bbe8ba72a345f157641873651b314534a7c4bf2979fcc062593c652441340e481a76df717b21061620c946e1250e781661bd10914556552ca3204d44d64972038a68a60358126305dfc2bad91289ea150162333bbe98874930abfb3b13922b2be9fe6bd40c9caba8b9412f85ef64348b6b46695184b212b9e35586df10375f0c0781b6245e2d8c580196a025022388a8b1422a847d388b1cc17f785772d5ccf342c01ac667ca866c49272af0127b8076570ab309fdd096b007843a2dc167837977b459000a8378fa4aaec320874804698524e4111bd1525be985a959ad3c8ee8373511726e88c71f2a839067c4a5a4235ac4a977c444b482087c612752ef0359d1041d3740ce4db971071c0947319a8a2c314dba1bfb118fd093f323c4e41d618f0cb73d6023e7380bd68b9351a825fdb952f13f48b64d99bda8701d040b6da27061ccb36f982611b851cf2e795f02161f58ccb973c6c3b0880915c31b7d59e3ab05d14d7697ba59245043bab406d0286b71f72006a51aba92c8f53e39333cbb273fb7814162c4d87244933ceef702d17db03eee50b48eca264026d19191800e47d1bbc7ef57a4fa0880338922f75484759e2a926391d1f993ace7756fd03c13002950c33cd4a882d90131d5ac4c436bbca02e22c608a3537d21971672b49963a1f867fde42c4b464b8b1e557be884862a68cfe361600f39d38886f8fd97479a0797ccc95c66289a489a66aa9955d1985d518b7c3dca884db56a6bc01d1d21818fc25f43a1b378286eeb18da2706393026dd8295e4e20a103ba97ec7618b119154543875f43bc08d76dd51730672321bce866ae2ac6a6450215439c9510174c90b58a416375e935092bb7469624337a5130c30e27905b0121678480b75d206888c706699b555084a6cf21237b102107bca8cfd4809e3513886b271c45cb162a189568ccf9389ec8017355db91ef79afb172cdc60929d071c6ef927f641a82937a146d85ba668701f14183a5136df8d6b27a87c215363016a21b8ed0bb27173d067349b170911c0607c065b173a429f244199db3affda480d7e3919ee616aba4165cf1040544739b3b2669817ad6f3335c96b731ccb2f0765552a71ab3a32e6509c7d53233b229bbff40c8898544a8a26db655275500bbb265acc4f8cfadecb77465c5c1989680fb37b554b9e5199c53759f27409df229034d9247fc965d453a206197cd840c42b495483faa1d62571b27190aac9c56bf5b992b8019ffac1366925d2b65230e2a88cb3c209ea13a1f273c9c512918637d5e40b92b9546970b341ac0c69a264b90a414a43270e442665b59608919cb8ee7234d113bf6d14c89a7a1a1f489420bcdcd96123349c65984aa9ff083a73c8294a282fecb16179c494ffb33506947c9b59e39990b9b516a3751aae6cb5499d196f6402f7c2a88459639e6c2105bd565380184b3e48691b11598b5473c02917558911afc73bada907ee1c124a1086a949fcd45c0f0c37df0863f45d70125d02ceada9c797a80b1692ce7e7c180079023826f0acb5c80a44a47f724b27b652c10bbe4f6258014a03dd7cd84ea2fe0ccb4c0744b76fb01f0f42d3c5862327c6d2980751f835a9dd741cab5042e685b52f45ae95cafb6229b044b4a3e056c242ac7a44587abe55f8de5b2fe0a9cb8f9aca9baab8b423a2b7c6afed694f275c5ae2157288751e95c2ee45c03935a45a130156a739906f104dd931a6498960fe27aa15a0679d1bc68c9850c930140b6a45bd2c2b5cac0a168aa644760f3c8af61b8bb184cb7dfb784e0f0c5ce739fd881c1856815cecba44a3c4214f7825ac44e77e97c8b8b32c405292d508d2f8709428a39e9b60016908b1ce6847f84b14b555250451be218c2bed841584b3627fd0000000000000000000000000000000000000000000000000000005c9554bc05cb53962ad1017e802d691c6c2f5efb5acd53736737ced8f6063c29e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: 3fbe35bddba843a88d1401fb50ebc9a3ba2b42cbc5795ef3f29f3c641287536a4999325b99f6b5e9c2a36f8127e2c09a7fc6140a9bd68300e40e6ffbfdf112e9a50a21d16a256dc2b9b94b2e45d249c40810a6978963b186d543e2154590b9007afcaf9d1791f4b0ad69283ce711467f001e8580693bc7a59928f7b1c228dec882e3a37f6f6ca83efa2a3c2b2aa919328a4b4174c00c9ab4af6d16de60859d3b4cce874366fa93c26457d029d20c186034ad8c4c30a51a2a5547e90456ea1d43ddd1b882681e58fb8e2db2c0ff36201e0becbe530be3cc8c6ebc80b9f7904e8a1009c1aa33fe35649ee91c558882f84c885183a6f226db7dca9af61babd423d2f749e98133744d5cdcb36b541a6486a43a5c39f92e0949c6204237ea64ac25faa8129af4a10f9aba6a0b647e1bc99b19187d3a2a941df726e7f8872e2e4064702ab7bda5756d7ec0afde524bad03e5f80a4bd76790a46bcd2556c31aef335daaa780c2533c1aa5fb2109a597326fa9a88be25f28c0b9577fef5521761802236e274c790891b4966030d08319894e6904745065e417e91d8f06722b159f21e4395143a875b2b6f48fc614fc06aab25f676c665ab98971fd28a7a9674ab15012517860b2a532fe543f50a4b467b2246efd85e32bee86dd067963edac95b2adda65a7255b7e83be377f2831c0e1a2cdf491bfc255bc417661a581ced672ff02e61c097e8103966b7ebd851a63d5d5b5266d2604bc350711df665fd82152a47c723cdd0d43b226145aae4462a233b2a8f91975c498d50a6f4f368e8501b709c0df403ae23b4f559cd57c2597f6e30b1f6047be7630b90f94f8b13b26421386b62ea16fbbfe926b7cc08aff6a216ce84b850d4b3fd2646824a3a95d26480aca8a36dfa1925578eeda4dba9bfd90fc72419c648223d259886d72e728d90cae21cf204f230c57d00be1444a891d4da82a9c9009db64c8fbfa922c205e2d51b50f4cca46ef3c19034be588d305b21d4b91dc2c806b12bfcefac96c6f5294d1d43c5c33365a0d5d21f5067c4b525e1fa20742502441b8d7595a309c7ef52f4bc96d3a4dc09e4480a67aa9ca10cbe640197bd824099448cb7a2cc6d8ed1a036c3dfed788fe64905a0d6b850002b932503eabcc1dab4695b33b48f0fbcddae3b8235333d29080ea2c1b58309c014b13dcdc2335dacffc003e98e2bb2259fef78ca1d136ee25805d9fb757a292175b0c9edd0452effb49cf3cd43aa50009e55a4919d2e1031e17ef2ca0d6d2eb660c159580b1ec821b0dc9af97603bc27611adab6fec6ddeb233ea4c5d068d1936f5e2d0632052512bfbba15e8601f5cb8534f543997d268146799abcde181ae13fe13d1b17a4785012e902f3bf43599b0e287ad3abfab70c2eb79a60d9c7c9e3856d5205b27272e16dfe157f36befeab28785309ff0c2743a36ee66b7b036c6df71c116fb4ba983f80b07817982e084700a24245f377eff62536645699e1ba3072caaffc45a7a3668c4ece26d7eeef7d7e32be0e218b89e88aabfb7a2979c0ba030ce36c47b6c0e4609315fe12b25f66f33de60cc9334a0198e00a81da412c9ad39a036e5e3f9d39b4a5b81543a7001caf176fb1964cbb1bbcdf7e096d762302baa502f0c172ae4f22bd92a969381ea476ff67ff3c96e9be48950b51fd01f3160b5156b66103b40d3274f041640e14d6579870a6bb51c5c27ef6a3f0f5260cb29982becda5fb21114533b5686df14885c36b07907e33b2462c17717f85a700d8c209fde740af48652663d4a67eb09f22322006a63a54fe50a9310cedd9d69b6ba52c1c991b8b43913d97cbe5150ba103951462140bbf02da88709af263eabd1a6db3a1036d2ed6bfb3b035c108b5df06a9b0e64f16891e11460e71707c6e0d5eff6796ae7d054a9026ae1a9daf1fd6e6f6ba780c852b7dd164711167f0fa71ede289aa7e77aab847e9b8852bca0be1e0b22201158f8ef8ed7615ef65f5bfdc3cf3b8dfe33d94a0b4976e621df81f699d0b7b61b3a1881698595a06a46fabbfa2d41ebbd7467fef258b6676fa8e89fab9103cb1505b9a4a2a532ca2c146dca4da88586ebe6b9116e7abf83f0042ba7a8393ce1d7f6ef50d443579eff34a4bd08642441f98ffa908a4adc4893a5a4cda1bd08e271a317950421be1af54ebce11f3928dba1d5c72897f896a9f11266062b5abfe3ca98be59a854 +result: pass +shared_secret: a0cd6965a9282d1db07120d6ca59cbc6939fc4c64c6f980db9ef85b07c047e95 + +# Rho leads to matrix containing zeroes +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697c6b844a5959672b08796868e7107108ca4c30a58be4ff7b37b0402697aca2dc4839dc51a8811c34c8183442711a8d055b640cd73d2caff9357bdd9ad36835ae9d55d1a291e040652d020a905027a616b3b5c63c0be2c1068e9cb0a9b4abbf346590237f96422308ba86b055872e156470b53e35b2a604bcbd2b97849446684149a86d9980c5182f1a020c32b14de18c03cd0633e303bf9f8a24ff0c95d5a65c031c18550b7d7d5b8ec672c3953bb3be0c3f13925200394aabb26090a3b9a12bde30418b997abf310c1724a88b9782418d09552a63e2855b7af2196d422761f5c8a877426976c90552bc203f5657f5370258b936c3706f074c11b3b2586391f4c4bcdd959615a819aacfb48d2c799a9abb182c7a9fda6a80ee50c4a827c9f50835b1859033629a9601b5b8b357913b6de142a501974a0c191a071a95cb8c45fa857736a93400141cc325d1b4518d3ea58a94c14f9b261759281b00213f91652b1e52bbc0c488bc0990a136e8e3b5e20f41d9f218646d43745245ca4c27770990375a9865fd5889a51a706c80945812c122ca0ee71178b4ba808bb7a28ec91ddf13affcbce77c1111f692e50f8b6f54b2694266f10c5cf411096c36aba5a292335592d975036db69a823b5ba1d003b98acaa0f6929701653058627e444b63777b6047957bcb749c889b1426b34a10783507bc5e3fa7bd75abf62fc236edb83d65061c2a7671703758b04d0ec738e1841b8256b58ac448285f1cc0495928c78166ec0a5ab8471d8d59606e375935c0211535ee2a47f051b310de23a153451f39179105997841857f7e277918b682de60ea5d70419b0a2de9c6ad708091148514e94249d45c8cb60215996abce1c86c31a780246b0bb937f26313e6fe1ccc963952352c717d303254b5c373752be849c027cb6d3c616fb52375492a4848732756247397a238cb63a6d50b9317bb939fa594c881497f92f5783951e03a3b1496cdff20e22256319405d44c9553f91018197510db2956baaab22009ab153370b25a98ec2c2645661e748ac85976872a47d9716ae7f865ed112c4c522c1825213e68978f0c1654812868c00050c7acc412aabb4a9683ca9c673e129d018a05da0105060931dba7eaee888a2b233cc567d722a447dcb880a46c640592837891d6a4770a46c267f104811ba47b19031bec2a7510933295752d2b28de55326dc71c4caa543b70372938087843bb63d74953453057a3877d2343663c058e218412db1829ed9aaf8574681bb2ff9e217e7d44b2c260b90c18a1b20c5842225a66c9afce760956b118069a4a8ba057eb204e03a85ea1701b85c71fa6ab590345140f58280121c58b42fe74922a99b8c2be04dc76c1173016b7673bf870889ce6520ec537d356c9b55d7680324517ce3066d8551f84c7ba9d70fd9f3ce485b6d1e38b5cf055b38e2b83730ca439a14b7fb7a043a390fc652f74940ec2b906a41b5304140cb5b5412f996cddb40f8ab85b087a42e6ca00a275975495678890ea6a51b6d874235b48295495e951007142b703463c934d10cc88145886c5e7b6a04dfa9b435e27c6c729941802b9b682a6587907254c5b93694de13aec3d93043e4c095e4937e9506867266ddcc601ab9a2649822824aa12846563350caec702f1b493cfce645e2a0758bd5a9e29bc3c72ba74305577c10266099bf884477ef111c6982826ad7b658e8aae4ac69a2025fca407f6b5275ec6572b0a86a16a787a413cf919a39f65074273c54d8fc548b2abd1a7c9fff406c84191a8d4c2e9916b37e652e5e83c879942a559024fc9008e8d008dd39768116b50bf4c94031cdf45cc932210711a443b4d5b1b40875924576e864335f130f2f51348333c0b6538a7efabfc8075306669e7b47cfe5758f7387526e666e93d16777895201f555ca916c5907c80cb003f6b31daa94851d0199493242a2d4ac3ebace84d04b7663a7f922bc277562d984244ab894bebabc8d8b43110b4b1b0ac3f4858be1585a94c46b24252d3bda105521b0c625979b6b251726ce2848b327d36ce3e8502ebb9e67c102c3e6250bc605d71a93e96472c9370dcc3626bac07334954bbbf280c2e84dc2e61b7ebc0035897516d75cb6cb6994a06bde802d0bf986633c0ea0f3a4854059d3e251283bbc3a19ad83902938e2b976c10611b62441f7c8d147023fa88c1803a8f4b5a8915b3454a85e66345218f6c27dec0444d4bf28a024e8d82a86cc40edda2751db4bae70045af8a450c46b49ea7ea01b70424810a5187e2057aa7ca2a36ba56cc94917535c06a827a704d3088a344125215d0b5944e5a91830a663f8a8c4f8e20c6072759290946f153422a62cefb33ab80b037b145dc4f5c49426770c103fd91539b42b52ae74a6b50c50f60650142b39cf595eb520592c0a4be0c16d4f766c29eab0edc03a9b864c19102d08458b1b94292c1915a4f191f6674723285caf177e339c7c8ec7c6b0a502e96a74db0c5102eb519814acc3a6698be62f97e82bb57535ad82cc4a8b90c2c46827ac0adb013954e959364c28e51284252466be14c2141231caeb2bcd975492e500e6c518d22a2b5cd667700bbc741c155ec81481687e4dc98a6f5b5efb9188c028c01b2c94bf858852603ba35924e1ba3fe08c50020b7d142a8bea70aa5ef57eee5ab904b4a5d1b251e93ba6d9fb955fc33e5c961289ac040f2b4af6ec2e27fd000000000000000000000000000000000000000000000000000000dc19745c0fcdbca71ddf4771a35bb3455b0f83c36c9207fa7f3c94e8a3a861fec975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: d7e07ceb0c6e77b3c5adf2682470e7a7b874f6de85bf8a43a6b08a5c9a538058b8c3bdcea97479c5ba6d7aa64a243d739c22bed27507968dbc74427bca924f61d6fb5825c5f74592dc09eabc65508ed637b8908d058790bb97f05a1636f42714e7d829177b49c8b464d0491ee9f00412c38f0a67504499d119acd85a3df5835302ac2ada18cded22f36e7a97f18643c1181bc71fc636827f9b45639744b6dd5d121c2c5651faf11e7752be2a91488fc684419d394d13fb8d8b566a2f4e72f86f6ea22b45aad8f52e2a4e0b9e4b02e216a1c2d924dcd258f84430047c2a999c7b6548edf5ff36bb14ff79534dd18c89d187dbf261db5abe5e9a4a98af5d1d8633690a18ee5ba00b8b606fafa63c9b5a4e58fc32f32f6917436f8aecffa64f70bdfac2d9e5963f0c841a9a2a40bde295a7ee21d5f84f88ad2dfb60482f5224a1ca6f4d0bfc3ff133795478f8d58dfd086ad5bd93571070865723e0cc1171e8ae93c13d565194ef6cbd40f5930c88a2e433120a1b773a9dc93daf21ee0f201fdc24752693df11c0d86115b68e31f4edf4cc672c2c1c75f45e534107317c5e353dc575ece35ae6069993999c2fd5a0ad534682edf567e1c0a960013c7abb691dee608eb269825a71de35bb3441fc422e4604ee2635f73fd3fe18c59b04b30954f81d4e8b6e63a12287dabc50c26dea93a5aee7fc00815af233c9fd510a21be7c9c0fd7276c7edb2130545c9e732980a1402aa639dc713a540fcba2d7d0c2f7058cca6d503c1d2a062ea636e78cfced18a17914394b340f7cf3d5cfdec1caad629133939f0fa0d7eb093ca8bce074716e9b5a8fa39893e1841a14294506b921e34b7680ea79fbf88328dc55b56803411e54a172585e4d119c6b42e089744fdeb34d5c3e0da9a61ff73dc9d41d5483fb7fa90f31aaae4ee2e9068f00e2fa0ed7c37722963639160ec4aef8fc076c4224745310f3514ff50fb36611eeda4b14034c84ea774f3f864dc8d43656648c514ffbb59969b573af2daaf209ce7b99d6b2ea076acd3be5ade1832b8f074e6c721218b99d64c499a26c1b33f2b293900c9d8a5b0b6380610d49ff6a55c6fb9e06640db1e0181fc39a070fb1573acb86ec8cafc0239a913727f8b1f4f58bbdd522f9106afa5ece1be2fbd5259201783c0444a95a4d04aad6fbfc3c514a4c5959191a8baee6459bf086f31204d624d7a8821ee7da353dd95179eb6dfdf95ca7571830f7459f4ce6a5237f4fdfc13e2455a3e94996c2fd08136fd44dfb23d15e9bac5ea07c270f62402cda12df927bac95647d969591b7ec8deaaedfe34f8b4731e578b1b7ad8d0386885552934f6a8f00ef304128a369e78ec7100f9118f0ffe8ad237d2851eda280b3cd2b7f46d62ee0ed52487e951592606f8cd0a2f463781bf3fd1503218d4872a18ece06c18463c075418dd4bbc514ff4013b6a49b4f3676a1654c74552dee3faf897f3695db1d3b75e3336146b78371fbbd5fc135c63bbcbe019b5faf910ea1709c24c0819e34a54f03c27f87b040e07d0f418a04d1d1a9508b70d6f0b4315f37d0daaa0839405f4b781606801b4a5b0d3b2087965e194d513ca64c310ea65192da9179a483adcd1dcbb21f389b1a515160391c1becb9d7ac34f75386c9ba4ef487b4edaebca3545a40cd3bcff1362d5d27a38993eb843bdd2c7de9e81ee87bace1bb4ac6d88a524db65289cf69c9c7be3c1882a39b8fb038ebf531ccb1538985e51b9b494b113933b1b436427bd1dde4540ffe8ab7c4c426a384fe0d9a824ed21d645cff1afe2bab0511e6dd3b0554843931ed277e378d8fa56e8454b8318447712eab10c102588ebb12b481fe8a613bc1a5def7883d0681ed90ec5f3004d04020700848885f1b5fc542fa9085641a5ac2d8b42cc9ca6a484d8c0efe93850d6896dd7a2bb15e3b36b8edffcbb9810cdcf510344070a264d32166ec55ce3764822a8da2377d50749b415077112a1353327bbf38d89a0611cf7e95d0a1a5cc6173555d3b76c13456e7e042dbe22b1123f32528953d2969a966aa37affc93472fad39949ea8db080d58a4460d6bedf80ce4b83a8eb4fe3e29cf72da59d354055a364dbf013d4ad0133fea1c690d8b68e9eb3c01b7a14bf1bf619f8f5fe2d2b3001d3a14eb07e9fba744c4ea8e4700492070bb2792c8a753251eab737267840e4f8b65a8f533aaee2de1bc20a4a2 +result: pass +shared_secret: c6a7a9d970bbe63973359c7c72f190080a27a02b95abd0f588fc163eba9f82bf + +# Rho leads to matrix containing zeroes +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe331704aa56092a4204a2293e77935390cb1d2b2924e0bb27d4aa471474fed2b6982b71a1c14b2cd3ae12b12d5d12919235caeb8aa3827c844bda40f5f57e5f59c75c86b645224b3a861eb9d9773b01cbba45122bfb1e4a60ada0fc10f133c546563661064adbf4a89117657366789cfc282f9bbdd0547029c92aced02963f8cf462326db19bdc980149ee0823ecb1d9e22a5effc6cb588b17da70789d813b749be180457e82a5c958b069551748e12bae79cbc0dfb5ecccc85f565c22eea1836b52435b023959b4f4fc12956a09f38d58836891c4c2b0b4502b012b868fb9bc0455c12e83c182f1637c05469708279b1f4af2c275e174ca5ed0a12b39849f49535b8ca73089acd5067b6b57297327c4cdddc7d5c752a5d2cb04c659d04f803c72507f5832e7bd528e903863b932d80c51e8b2833684a084c7100728ca33a4304c85b8cf7b61412e76373566c34a75ca88004cab21a3274bca1ebcbf34222e351a3df4b557f09904173065b460d54210511f4515180b3bc0a87f9125a0a91252c114654532140ab6140d7a6265c3c55223229f1520da71b88cbbaa7dc7b6f79cd6ea1062f9ca88c47b70fd5b78d5a38ea594de590b49ba0ac7b5cc2b324bfc4d26dec413467950eb7dac40f5a60f054662bb9607f8bca39fab368526ee9980498180afc1b6954cc242cb04aa8a01a37c16a805792872b2b1ec63bb4b6bec174cc28631c37953241399edae60e66074dfd9b019fe97e00ccbf5537baacfb6bed8b6d3d4cc9c3b54e006c70ec2269e5081e8bf17371757b9dd40a8f1a388d68226d46bbe0b661a2b4521d143b77e2cb2e567fce825ee9338c12f425466716e67508f7e4882229a85766079194834df17440d0a4533cbfe24b05b503c75dfc9dd4e7a067ec9901b504b5a08a9d340f9ea4b036b218ff6353d8732d08d74cbb4cc19d6123cc237e31768845c628ad754ad9f484f3c3c0587a1b9883b0abb2845fcb7a57b42493d60eb5793926acc86b1a21ffa1a790183e1ca56aac8256c98546c69523819790fd3764ea0670836078dc5105ffc04fa83c50d1e933682c54911348c8627cb6f776d6c79f4415ac0a91c46bdc68711c10b0e34770c4b2d39194f95b2215a9bd453828871789a45164e57215fd4096d9ec05054bc55e2a49206a69e4f998cfc68656840065d242ae067195a5c421db21db766b27c29fcfe530c5e311408328d1b69eb415bc4b30917f957c52c14bc1c01d3f0588dcd58565f500569c539fc67e1381ce86904bddb978467c24352032b975045747235c8932f42276e9a36ff89335d6a042699827fafa84ab12b17db956b0b55c38a1281f5a5f2d9c9104cc5af03a918a5b26fc5585f25cc8ab750c47684623dba4f609827abaa9ad668427b63e1b347f00957041b6b62509259a35542ecb99002c5d388c98e86b7697f41398a3a30aa69158171a63e3397526b6fa4c72008288bcc1c2f7d4572e449d228ba05646a946b512260b6eea7218e47642cada5a9561b867648e41c368b1796e2df7273a7208f26444871756e4d52fed089019fcb727189718f02122853c6ef21d6b3403e50c0cfd447229b3457d7cc63737c6b72c384c8ccd4fb451d82a1b49e88c90c7be28311c25e3be7160bbfc42865b9003d84c1734d44adc8b590465986089bd59f1503d888f7ac2064e03447896074a947487c2b08247328c933cc31a9d9ac828962cc0b7807554f661a7d64ac90009bce5bf00b19c579995df27401fe4bf0dcc459a8c2dac1c55e50bbf0e877abe5b658d128b7f434936e273268442e725116f946738d810119531637b65e14c9d3ef26fba358df92319598c092b936e368a3e0d8a53f438708eb47de814bc90f49c83c87a282640fc02a2f30b56f659717f6234b611b4465347bd990be4ca01e550524a164c6b97a2d64cba75c3aa35924e31d92f008b42c2f701b0d99addb39a045a8cf7ebb868822250db42408c0c0a60785c182231002b0bd9884fc89a0ad60af9699e5d0661b514291b824639517bbf267decf078e8c35dfab769845a2cac1ba4c0e513454151d942a8d4163ced994d166c144ba81b41b1b64b74220b34cd5185086a797b7738a4a6e48100ed5077c1cb4401ad5f173ae4d047da4b5977f3bed56c6c318bb2c11883aa3870b760bef4a71ebcec54b49430ef0b792ffa503947187cd382c49c130dd32797740f335703ddd9703ae163b069cc76d50aac06ab01710785fa5429f79d8cd0c6f4f8711e766796d054b8a99c7c800b4f5c4f75a329c147649a7485cb61c19c0a453a9774585856e65bc9b3d30a20094be3d2767fe0431ce85e21eb9b35d48ed5fb2c2b1c17b13a4c67b09431d7180dc04fe087c827b6a572c446dd5caf68f0b2a1d973fad4352f3a5b22ab45eae32d17a993b24200125720a1255f607a1bf79c3928230dd3443343694bf62b996c3273323997972076fa49c48f094d2e122382b36503e95729e41be8f19eb4d962828959eb56491115bbb5d279a110330b818cb4a139f2290c4771399bc041b5905531b76bf817cc283331e860ab5566b5e7023d3c6a28f0d7151d175dfb9c1c8cc01a45522d0ca6374b8718d04b77a03635ed23c4001145f586a4f252a10bccb3cde193fba4329867926ef0b1a47b8bc130431a563ca97bae83111d309167caf354cbec2e51977094bbc6cec068d339833ca9c7b6492043450792740000000000000000000000000000000000000000000000000000006d8b5ab5e1cfc312b1e6d63c84e3d91a0a378d5b924e94bf13f06c2e9f9b6dc2d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: 21c66edfc81eada5da6f03b40842bc67acc6653a816c35c9279cc4b1e956c94cbeda12013dbcf99a31c8579eb911171bf6f02b95e9a75ebbd255f2bee1e78fbb1524cf32afb999b4f39e3084e15b6bd4f6aca7f8cc2228ae48362e3c069426b260e0c5efab5f260f7ace2f1d29d0d9344c56b0a2232c7ad3d0dc963dd6d6bb24d956c47f8ff0dd7c5ad88bfd888de6f81cfae46096dc35739adfba6521fee79b4d74c4e3673ef9d91d26278404af9afbf26a8d8663dd722653c993ef20fb8fcb22057539f0a756d20a4a53710b3076aa90cd7c9f6deb6cd5fdf50b320685a6fde64b3e0580edeb49b63fc0038433088deeacbdba4bde5e07a1952dad8a822e4659ef39c6e32cf5f674591b939cb17db95cd73a18f3d7b4e2305d890d3d8134e78550a06b16eb84d7214748a50297dc409e7b60638878cb6c051621277c47648dd6aae6829b23f5bd6df5925d435fb5a4eb852f2bff1701c68d451760f254ec59f7fe900839afc085adb69b6d640a98c10c49d24d75046b4fe7a945248df6be5331285c42c4d714fde6fbb83cb7cc2c435b5691abee38030da34cffd895cc8231a8b39940e55437bd2856e3adbf2e48807aec2c90452e02d51731eb5eabc223d9eb47fff0fd59480648ead1b14a380bc1a0433a14ca0d815cba125b21b00e54d60aa912ceb7f4976d2a69865377a5b884e259001626303a33c302e4878fdc75be458f1ae041213e85316836f2574394002d248159b74e127012085b3043ac53637ef55ad9941802446d5c165b336a1bdf83736358ef62efca6c3f82bf0ece3ef5a69c6817748091826fee0677995584995e2b73bcd7c185e1bc88c4fb9953f61fc8c3bf3127bb3787da572dd9d99950557120ca64a09a1855d651bb6aed9cf9f791fdcbf92a742bbafedad28112787482810ac3bf3c6c14755c9bd75ad285076e50a30a232c3f6f0d7c4efd1857c239b59552819524690f8b3b3d3ab415eb36418470565248bd10657ef4b46d2b42dd769e386275fbb4ca289fd095d33a86fcaf88cbf5a374e272221b2e771b2e7f5546dade7e11616a722d5ae62d87b9ef777039977d1448e84d385eef27ad070b39a96a610c238945b530f0b1e2ec2aaad1de6c669b60aa1afa4616659de42dcfd2b7437a5952c7601e803de19fdea2564765cdef8b10d300d4df126fd8be3b0e75dcc935352b0e942723bd302f7f74b434618941b02d7872b17be9814549e72326b6b098f7dc15b4dea4806f9c713523a6c9c4166e689fc09bce2e61eab4dfcd82d0ffc0bbac3c419b56a16739d68afbeeeeee17b561c8ed1d26c4abf375e8fbefafc9f9a039bb28e4146a2a6d7a80743c92ce938c3fedf05f2addea12a470379d152eaa1be0d997797d880cda4335d325c2a8b1f4d04afd1ce667ba24c6bb66cb361b0eb97034d6a26bf02a1fbcc8f02e865299ed5cad65dcb1a3fc71966bac09633955f4834b0d9b3222176013aeeb0030b2623bafa7c2011777a6236633a719ebd6c5aa6347c9c8545dc8110668fc5f4bcb9cf070e4da0d60933f8b064271a4b70dc03e813329e421b84ef778ad98b59dedad9b1ef3e1115343100604fcb7f95b1e448639a6a35d2c0a49eafaf18a19f5d6f3c528b6a9cc14f091b19bb57643eebe1deabedcd4a20faa1f308eb88132774091dfb4a7b17c012dc9521ba4d5a0023f284abad7570645aeb798dd23863a66d02c68a91b87ad060fe813dd9894f56511ba7b40436ee063fd67109209b3d6724e4b1dbdb445c02324474399bf144302b9bd49e73f1801304a68870ddeadbee49ba227f7edd5fd288a0b936a7ac25290aa1cc57a0b90120b8eb89bf423511564b764991750a5ecf42938e854b1e4b768c61ecc871ad4eccc18d3196e15ddf3afe4bfa59a01344289a8d19133ac3b63d4e700591a3ad63b3253f6e25705585c56fad7b965732de47fa92ecdca4f0914dc1d78caecd85b6f9a71d057493cbe9cf27fa0923f642dc94b917b7ac52184f75530951fb84d9bb189c879cd75c93895ea9a8f53ee91358351a68eb4af66a07bab5e838dba00ba447642eb3568dc472a89190a2e8204c715a0475353d177f32775b7626cc2f3430dc488a4175d1a574f7be8a7f3a5c89e6ee97a73a5797907ed8c239ac3d93e299e74d01af7651cf3cc2cc9d92000edb5b91f77abf3f5da6500e04ad76ad016371779740b9cf845581ef5 +result: pass +shared_secret: 784ac74e14797b27f5d98bed3d61d66a017ee9ee37a5b53038820b55b130a2af + +# Rho leads to matrix containing zeroes +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960116a338d74bbaeac359ab3728e268abf75a8d30b118141bbc56670dc0c5b2d05c9c2f03952338170754e20287c99177c66b810f009002c244f213891c5b980aaa23d15f413d4a80160d24e692c450b68c8c43ac60256ad748ab6aa85aeac5c623d199928f88b04ac7bad2c1249c18fe1b867a02a353a112ef71368eee3210f7082f8b216c975070e9a1a27dc265698bfe4849611716d0fa1b1f9047e8b0905d184b1fdd863377353fae732a5d0388c3c6606a773360734c9ba915d49aa7d358263d7abce563afaf382976b2ca2e1328d4aacdfd78851eb143a1b81c21713442421bb1abf77ba25d4355dd10602ce06754dd9a77aca0e25b1260e994d0fe1b83088a5d385251ad5c6a54c45d93a7d1b25cfddc1612b8b30e753814b505524a5b0b26747645c9b636543ac7a871b6a7cd3865f1d8636cb5210ae9157b567b2ebd17fe3f59b73379d086348c9806848ac3ccc1547e8964f6a1c4b532787dc8620050b7e628274683b79e133969ae154da157bbbab159941484cda4108c84aeef56afb0a389191c8b5857fae399094ca8c9af399152a87ba77181926b78f2b462c92b788ac988303cb8d2a9855497543fc09c7a49055554b9a9b6d868a31fd4922907275ca978fd0a6c3790a72b438c4203641fe2bc4f5f45f492c0abfc9267fc6660f2c4581e53d6f8b57b0d89b2cc29d97aa315fc7c9ae419f38f425c45271a29a9aa3f28f5162a92e317312f218adc92b3c46b8ab8a4c598a78da54107df7720b734f58d63064088766b06fef11a95e76b2b702b3eb0aadd0a23b66429572677304b024f34a0c07c4cc02d51186e406085a90a7352cf9ab502dcb65b24881c6a86d39c49c37f77a15b1b10bda2fba45b5c6c0025452bba0233040c11103084e95c8a51b7743fcd984594208deaa223278c12d191a060ba269eb0083c00b60daa0b8169188ec35c589652bc21da1c3c21ce5b7d6fc5eba8bbbe13216497884f09a1ef04b529805a80da578d8fb3724ecc9b861a3fb457fb47678c0809eb9e24da241900903a71ff446ec4baf09305b03ca1ea1034686f533813921d7137848e962e32563c9f80cf6f564f12999b25c4826699f06fba88234b1d51b77d5583af18868ff1c78a502b414c49319461749b91398832863821381fbcb62b589fd665b78e81297d34df7b44117464dcefc863f850ab12ab338c359ec9383e4957cdbb810e7d4c73c173c23f65ddd8bbd31305d868a496a63aea62014fe21c8ed2c80e8ba56f606a6412a9a34a98c3c0219cf054755b44515d805dbe4879c0347bad7c7cbbc08380aa297623cad5029634b025141b58169c8865c206cf7232c260cf88aa91855a581b750a1ac168fe960e5ca283a1245e0b31abdaa58031b3bd51ac295850772dc0b819cbb07c66e734597f6387ced79392594723cf39c67763e3a3c2c6a009853e510bbf91c4f4b5828a91328073683120919eca166095c7bb4bba5f13b43bc8b7a991ef855399c6019e5a7a83057982e43b099016537760956304479a4a73b57bb76153f58f51d47dc7706542b64e73e00513cd838bbc9800d6b90ca304b06a31bc493035cb1d116ae17c164f8c758f5c7be580997d155b2494e3701137ac69119e47a2f145eba891839f0baa084af96d916a9a64752d4b4586c0626836f549317e4b6bdcce1196a09761928a968a4b74b611960ea2eb34bb18a964c18fb10a15319fb9468134395fef8a40a1b144fc31aa536a473ec9f809c8fa1f74f90262fbeb0b1d980be7a2970563cac92565d6af60be699ae8e692c311692d8852c0fe0426624cd9a0a1a18961a1be613b4a9a03d275e4248809f0226179410fd190c858a41abf5446b2cc3fc1815e08149d5c81c924664e2455fabc46f108259073520446b98b697c36da1602ec8135bd053cc034ee5db4b7b58ae8b59256d93a80b69c6911b14fbb68527da6a3a29a8d1c61f4d7c21f0dab9a5b266c875610437365e2a2a4e38a2e1a8835cf7237fe1483ee01ead6aaf2fb072f9200514a9709d6b4ca51019e782aa590552fec8b5ebe40a0c99ba17c57a7a460abf5ac9a4869f11c7c1bfe8b8eb0b7618895acc88b91ce273df7353b3d083cd72501d0163abab80120a317e870c0a1751600162d633a4a4373fc988ced65b6501844da162c6a4132d8e690246898e3d2a6915ecb013661fbd763a624c8c7c1672f88347d6d28ff622427b669332aa34dc590b3244029912694721551727cc36725861959ddac230b5781ce2f9b5147bbd3b70a499c0bb34c955a1245e7cb16287f357f464aa11e44eb433b6745aad46551e90935be4c5b2ed211e818480e4b32c2af84c61aaa6c01a7e16a08761d80b221772d234c68c97a3355637e3535ffec5bad36b5214a22bed5331b5ccc55e48c4a2a76d0f68759442ca54075ae0accab8f3c9746b129a152343993bc7db74a7e027a523bad3b7cae347328d64180ad396897007a098a590d98a8fc5816aa5ba805035cbc24c685441d5c754efd879c327b56a7194b5391696f0167c0677c48bc8d3701447e052829b3de6c840ce0b7b8d95b5f46695b85037232a7356c296e854842be0a48a758d34fc0d7cc2808d7908667c77a2630ae8a52c06da9215653cf41799eeb5c517f65f6d26152a656d03a685109a955811bf05b6199be9ae97fa62ee2ac65a6354200856c6538646d47f9f974289f0ad6978cb5dea00000000000000000000000000000000000000000000000000000004248de593a7bde030c902d7afab9d96bf9675f28b7f3d93067ffd368d6a7a84a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: bada76528c6a07c80d5f8363c32338250d6ea541cf8d1177bfecbc469dfb47c28ffc75e102b25b880bdf0c8e9977f41592b24b1ccabc2e2de5f38283aa30ac51fe3b4960ab8810ae05a823b52e76f267358a56124a54fe3f8cff35dc8ef24895c83e90773733dbbbda50df879fec084be456a1250980f4ef12c78ff2b59231a944d4c4449956c635d443c92845bc747854ec6e92b0d9339684326c5adc6a07737b27a6fe207639046dbc623f531217a7d6fee0f5c8d6397d05dadcf53e43823daa7a0afceb87b718dfb46e4818f11d2c935c628ff152a0361fde8458e76475682541919b517ddcaf0eddb918c16539a8a04f81ff07827a47b5d72c92b566f4d7afd4db362c855e75dff1c0bd83bb6543332218d33e8f9e6fd38d021f961ac98525371183dbcbbd4875861d5d9cc65da0550279b8055b4bd099109e193a32b862d14faaf1534e29a4d9963e2c71eeee21b0fdf66bcca905c691cad611e4b55329a9bf8aeb55a1445fa2f6ed7782a6b3450f6aa7aaad82dd5a552f5f3d333c49f1677fb34cedcf4243cae779143fa555690402302bc47bc8d386ef9969426cb5909dc7d180a02374614b2bb46fc61988984bcb91a307c40848f7c8fb058ef2712c2bb5aa42c1027cc85f22e3ea91e59ab33cd9bdcd80de2c8ba1879ffe9a79a17948c0a27e4dea267609e96e5c84195d5b0c41178f35266df867a7d32149dedf2beee8a3f7dfa9fd91865e2a1b9e738378304884979f667055f755444c73ee53c36c21c2c9638ec9c0eb4f761a9658a494cf2213b70e9c19e5ae51a3750a34f3c78487a7736623e57e320e63162fb6f41cbe19af57aac75506d59350488368b443269b98300652412bfcf66a37ee5911d9ab94e402abc78515e5e0abe59ce7396ee77c7dfd28382494f96defd6c2d00ddc19d40f256e8656c7eee808e01dda0e04d1e13f3bcb943339934fe9ef9dc3b4a6b2d89ef7f42f9ac7a9dd446715ea4b25d14d37894ec6ed5fb8ea97a101e2a6e324989dacfc10d0634198aa65d65cd7f4e8d60021f288124a4a33bf9cf4a8e3a44c8fd44f6ff7d4fd69c645b37c5860c1f86d87c16e05e16e3e8fc84d4948f19cc8e8cce3012d94b6ee94bae5ee701d585a9af4b48c70055988235861279bbfc1663299dd6ed22a61d2542bac802ea9b0857b5afabf44008a8fd2a46d5b5f6d27be8ae9b13e4522c609f8244bf9b3049a8b49ae60445db69d72be3fa1b5d7756ba8a1fede16dc223cbe27e2d36dcf275e3e42be48a7a4a9674b71a4483d6c6b8d2dab1eb7851e089fb94fd3b18a37243828fc1f40658024200b1284c82d9e5dbbff6974d68db1c4e95532441a4deab8c2904cd5bf210dc3ba1e35073ddeb346976904062ae052c6f5edd46bcbbbae8e4197fbf8a638576618d77aa80c8d83c2365426fedbcb2c5781e08138d700ee544d07267d392b081a281408e5dfdc303dc7940c61e64aec119e0a3b1a78f7c703896d2f1d53ce7fd13245ef67d57963cb4c9231aad8464d2ca36bfa42f282234461b4023a842220c838b1fe7157223d254e0405b81536cc06a3a9f8a6f175054d31b67223fb59ca0df92c84473291e87c9b74bc5207a7fdc966dfc36e503cde19ffe7b284430a865334968c2ad1c1fbdb2951d44d18c898a26ae480f31d55b97190481d48f395e34b4571e2fa5bf83ad9b16d185f34a5b55d65ed5679775f39e63085e67217849b98b54d251b128e5c232fb3fc355a87caa3ba457cb49ee1f0ba692c875079d1cea754f6ca91d28bba83392b420135423420cb680dbeb047c45f4f7bf998c9084900448e8bcfcfcfc87a81d2b586ed4c38931175442595ffb4088ae657e66636c07fb47bf2abd0e32b3d979b1f32c2b3516b9831a57136e4783dfc081dcf8e3666544f2e3f9af6d85b2588811f3335c1260092af225572ac7722ec3a3c00f987b4ded3d1a9d278cc6151ba936fa02d66ff76ea12913db49830283890ce5b87ecb6270d71418d9c213206db87b116eb58eab2530a1bb97ff7d57546d83b32e4b351e3da6c619670974722b6d006e3c288b3a6f684b1db98938bc864433506e67de883749a3c052165720a833dbc412556ea35c437a582588d94eab42f5f7cf9f841f839c7cad07017634e70940453213638d9efed5503def0076eac37c82ecb46b194bd22c6e7db7bff4d5d75e188518d6479fcd34dda34eb70252f +result: pass +shared_secret: fa3ccb03eda9e8299be919496cb2581d3127472eb062a8f2447241f6b4a66d02 + +# Rho leads to matrix containing zeroes +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3969fec41d1311ed2545f5281a09df223bc4918e55551ec060dbfeb41c777c79acb7375215002d9afa37b5a126625f7445c3fb51233650037e070648c924586bf7013c203e907332901ff722c35c1991acb2da41cacad4b709ee242a9e71eeb0ca1d05595fcea8d175553ce689ba595b8f98707a68a4d20f8a1fca8c34c3482e88c8b043a9d42e4a9e55a6cdd867e106b271031355bdc71c85c80713c0ef7c3ba3bbb9ad4e32615a2b104e52dc5e7481e258351385f9c8932a074529e327e6c0949756b57ef47094e184517819d459bbe35ac6154a70d004490b03803e58c9bbcdcbcd8451c2b0373656373be77a59beb2d47410d8a8631745653a02956dd0a0fe99ca87d78c273230667f25bddf3a65a216921a12844b8c98c197026e14638a97fa5144b44189621f00c75857fca20342a09ac44a4aa6c336d9ae58a15972f22555139e2b3e00ac0bf67b15d64ca8ae77a79b44e5b47a72ea06930aa9695b96987aa0dfbe63d83a352c9370247f6b21f225e096480b17333009bb785824641306126c5792a30b2ce4856623898d79ba97c3076e54100eb7029df333b5190cb28a8207a557cf78cb88c11b241da951ea96dbeccc90029845c7c8071f584095923266964179910a64c835045922fd520535b35869a147616970424835e913ad8382faae3b756aa51d65306c6b6760cc3aaeb7958b531293e6a6daf0382db834fc7e16811643692ba162db4266e3b2af1dc9227aa7edb2a545b8785e425bbd982cbec02514924844da57e3740881ae68d9c104afc33a8c27782c658bbbff5ab1da73ae2ba267326ad3ad61183e792075033b448a36ab3bd8e8429f9cabd5e3a57f45464487871a02bca6752311d607701b89aac021649f37ccac9a455017495129a45a6b24f07726c0b633c7a333a2c589967c85e7376929205d6291a74335a89381a4b851bf758cfc069be95847da5d6258123bdbae08fe0b39d55c11044d1c8a6d70421333ebd91bec10b73532a6c00e090027b3480e796e69209bfea7f3945350747af2534234fb0801ce11c73b934391b0f7c6574d8c8c8086151f8817bb2082724c733d44837fc7c24355c463bdc0365b8a0a2b15f63ab15f42c6635a40c6d8a502d5000a6b7158a16cbca964363a4c7f9da5d51c2289d7342d885bcfca1123c324e36273fce5c4be83c343e84914ac382fff92869dc11fe80824de3b745e68f55bbc979a0759a35cd91a75a7c649bbf7999d8726134d75691dc7d25b23cb5d16f0d505e6e145f84a4644536827ff982b5b9326324132edb30e02a611aecb749685069baade2545d758aba6c5220bb244e08d01235faa1fd5a0cc4612139466d6ab26093a22c428252bf8491a6794728ecaf421286c2ac5f4117b16d145977c4232f8564fcc5996de99b71f896b5d828105c593fa43ebaa2cd74712d769814d490aa7e2140f942b6e86b734c32bc79187f6275b9da3bc621ab152c8a6148a9327a549727ba02a9a1465b3b9a32d7cf6984c610691061e9c8a55badc65503158bb637ca4c55775649caac535c345a443b27e88e3b0c435dc33aebd5087635be061a37f3a0715c37b0b351681614bae36460c5a34eb7e763af22955167b85542519700511c843e56476f0a977a5a720aef292e0ff94d726a958a63cca8665fc9a943d235a569da3e2a4b5964d457df1243771504fd26527b94aba0e8b547207861b8cfb79bc6abe3054184922d477840a4c221b420af50608a265eb508a651dacdbad403484b59ef9a819466c66c458d172622609065a424024811b26b61b74b8c0adb179d2dbb7cf4e336677132052b1b7a6c6eadf63a15b484a3240c7bb1c9e1160dd6832c727044c012936ea43eee4ba721c489d6b8a6fcc2bcd3c3ac8121455c845978364148bbc9498542ac093a4d1b7a6a666d0276adb218315afb4683d6956459833915862e18056f7c02f9a492388a1fc65c5211e7742cc656bf2a82cc727fe3516288986da5e4b74ed8abda8084aa90285a86a275f8a18fa99934e73f88f42aa6ea3428b6a9d936af53438e51423a9222b81ce7b27d7b015ff06ef98ac62843703b9828f4a0c71a603b591888df2339c8c5b8922a2ba8ea1a85a6163d5205824056176b2cb150bb544667635788338919c21578faf64ca0c980e5a554f1935410b36b5f29b110121c35424cf52cbceb53134f7569594b0677db53f97b570f842a1d27c3e0971343baa872bb2453799b1e5b433a2361d2f1931c185f13cbc0a0e1ab1fb310f4664d8a49289d15433742aa439483d8789a25c2ae77a3689a17807fd544ff4c7d022c42ec9049e683472b490bc7dc8c9766983e32a2620a611da65583479fdb7670d329c33d51af50dc3234e63bfc1306913c66c587b9e3a23143824e84227505b0b34a3399746554bc6037f87b84b0a7a41da3b366578fd6d79cc9a03d34a227e8095b9bca636ae01988dc2dd67722a5db934c7009f812a985598e7e309cd7015d24a5b36cab65e8f91c233474e1473fef76828f2b245231605d079b308a732553600b549314784690d5ab5830c36d824b68881d6a440696d3938f328bd755cb833a8af037a4bf8241c5d9aba41540a015aa0b110410a05e104881f5e41471e70029a9c42ed2aa4e3a5012a7aca6db06b7a847ae624ff7e941ee18bcfce68c58a8c47db56bcbf60701858e26943cffa53661c180a3ba0bfb25524bd60000000000000000000000000000000000000000000000000000006f9b4142950d620669a33b7668565a96eca6eb4d6e843758c2afc1371df63bca53f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: ef250a35ec80dbfe58ffbc7f7f0a97ee1e77dbbb601ef38a8599fe1c50621a7fafb3c2f42b8dc17058d2c5cbf965d1dc6e45fe0f033b1e42326d024ec27eddd00f4af75ae389b6e2b95076862e11c63136698eaae4a9735ddad9613af997976cfae920dc0a08b9bdbcfe7fb168d5712c7d372fa29a656adeefb3cdf8775cbf38ae0134bc024dcbff32ff2575911a98bc19e7ba3b8fa7e5a1df85bbb4bda21427195206a07a1f8ca8b2550fbb9724df204be3cd5f3231da0211d79900cea59a6e394915d208eadba3feb264964e269bbcae99bf7d8caeefc00976687ed7ba1a693008aca00f0e9641293f75fff8e7169e6e149e6695003c544b946898f466a0cfe7a2ec2b531e771094787c75c05712b6b27e55f1fd3ee3bf4230c05059d83eaaa2ddbd4e9fbdc8fd4e694f17a5a634daaae4c125e1373e8103a1feb119a5a6bbbe7d722427182e867e6bf051653d28ba59f68d52271a29bd109b4b55bef30940bdffe931cca17e2add03a2e808c4c2b09cc4978cd89c078abbd1b3a0919421c0e86f1294f07f5c9ae8c6f66369702aece6f1a368dac179a64aac92d445c9a606103b48e2778237178e407de8d576e5931d123caba6f99bbe158ad4878c5dc78bce1c519f5690b12b5421607d5819d36c5bded5a23c46578e564b1c341e47953b80db58830ccbf40edfebd6bd92b99cda2c62c0d3117f5e84f9f7b8dd6871d045c4cb287e689e865a9d1d1f0b0feeab1ff86adcd1952261d94a994869d33cd083e28f158b918f22f0b8a1fc4cc79d800c38ed0d9f746c3b506e6ccd58224886083cee785b1b1ab19eba46e706e8e89abfa36ded66bb7a180250202dea8366b4695434c81f02e0ab5c4cd40451cf5242fe95af132191a89d653550cb76505cf5792efa6c8f074801ee54ae10a36d75160891fc2a670f1f7f1cd628645980376999d86aec88d3ab55a06d987ee62ab7feffee85f8dd7bb925e3a60c8b4c63dea64777e3dfd19eff0c42371820aa81e451b50e6183e762798270a20e94f11efa43ae958f283e05d20faea378d9e94f57c32c47755c400c4a6f17a94e28ccc0455726e309d1b65d920b185ec129088071f557cbaa3372c9bc56d16ad33fb592d8af9076920ede91e6ce659f76b6f8dee15b1ca5a5ef9e5b20e7a136db652c095c883a5cc638a79fe5dea351a485ca8ac83373dea459073528d138da4eb895cd201d88b8c1dafd0d344a430495632e82044b4bfa73237857b5bb2e260a6bb2c7583fb49826ec08cbdf60128677ff1f0c44aa55901b5b9c4eaa6defabd1f6633ecab01cc0a79229ebc22c7451d81846844d229fa74c0f9da3bbd8135630f2311341929c146e7221af95c8f569858f113f32773a8d3cd10f71bb962364279a023518daf7e9a53778c228dcbdab239917a4f963dd221b00a940dc1a1aab798820aba5005b7d80cc84c18e91b6087c7c966015cbb22c30ba409e5fd93d4bd843b35572a8a629e9e2713659ce0b893f1c995f1e61d502b50a62f166f2f3bbefbb534ac139580fd56acfbd232dc507065830377cfecd3bbb377b72450fb615c7971acf1548a2abc79fce191d1be1acc15a8102b50923a8e596537eafdae404d546a90e444e47e04aa6a7d529ce6c74710ea4f8140b3bf7fd8a468aa8b96445b413c9bb19d057bde4ceb98a537f736c9deebcdedfc58c9d5ebdbcdd975b762a20d6264016cfb8bcb57ffc4bad83a5b997ba6263ff34270c10eaf932f85f5cf10cc2ddeb3344ba5dd654eebd67008c3161e4c9f79680c375b2e8b031bbd1293e22323abea7bb04f9eae988c8a9a9d9e7f27cb1f87eeeb5151566e8d22db6389119d33cfae07f1bbaf14a48f0c082e325f2e8d397bcf3a676666e7c2edc85727da4729c1d15b4b820853ef49434372ec50c8d207ff252cefe875f5971a6b102b661d150a782e55019d9761728b752e208bd740fd148e9ed06d872ebfde0489315c46a62ebc6c0a5ff5cd57eadec362a2d8cf87492f557abce463e100e6df8981573e54358c3996209b8758dffea3847eccb6aeeb5c3c5471167e1aeaf6f9a660cd281ed06ff4fa11cc88e04b162e72222c4fac1081a9f991be6c4ca4b1ae02de3b514692b8c144ddf40720c1e1394b38c879c382861bb2285a28975c26a6c1fb4e542794a8e654faf918f79ebba577c5cedf72431ba7d18cdb0da6e90edc2cdb85175fffe80dbe7 +result: pass +shared_secret: cc0c70663e64be7264620b5682f2506f2084b66faf8e8d3916c8b77fafa924dd + +# Rho leads to matrix containing zeroes +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d74933a0cba383545cf629d357aa8927a7bd4f6575059485fd455be7198fc01a509920f6c0b8c5a565b4b86c084a60bd9b9b6037727df67b83ae06c5e47aba5d263ce83808f40a378aa43b4ec5458b33a0eac8c816abf5bf76a1220a99205258cc4a9236b4dc252cbbe8884e8ebc1fe921ed408582182b273a199d121153ec38b7f183174754f66332ca98b87a31672720815ff7bcd0cdac810db905ea76e6496742d26b2989b201fbc2936f5a6cd60c35e757f8c33b75277560ab948bab2962df9c38c91b44f08090e5585d852c4b729c52de88fd8c54722162f2d7696946c7b710079500136a28b9abf9a5c0294a5b265865cb04f9796b648f85858f8982f15c2bf31626b236b2c3a6493910be2cc8610829d96693cce3686b8a63b91439118fa661729462ce58e5e28b764aa39911569d1ca5c1b33885400a16f169858930c7f135ab6a95d08ccc70d057f9e73a4c8ca2da7185df37c8a6f727893bb6db74329cccc4692589128867cbaf28694fa747e86cf98619e99b221db88a81afa73b348582fb1b863185bc7a3bd95b15f041c8e3aab5b08d6c32cac121cf003161c05c64b1d90074090605731b5c6c465675ad846cd99cf3fa08f7aa45448fb2fc802529bd69e95d1a21e98242c66266290bfbbb2ba58fb320d660e297ac416b2b0d1c5968b53a95172450598ba30b96472d14522513caf0332c8eb8f846bba02870ac989594f9141d56813a68aa5cc43666202038c29621eb658911027663aa0155262cd86798079a257621ab73a8489fc531f41c1483582a1c92cbc6b329fd09913b1a6c5fa0b3f7116a9866290d4b321cb639f544b0db81a6177212b798f911b0786849b17259232ea74a9963a85d90aa8636a9f4746f7b8ce423a374039907591a54a503f9298b486e907f2d93d1a2868a1d47608a6aad83c1ce7d216dc0283ad56426d7b5cdfba794ffbc3654235501c960b8c9613eb6126d1929c55c1e7cb8cffb180e0d942e199b4bd51721465ba8de1cabb081f1f55218a86cbf6b7ae038421b5278f2d8086041480ea9898880a84ad25ba631b83e953598bc76ec9b36b92a76359fa1e44209139272fb0c9c5c5f0af6a0cac4d4529d18b8070e76b8b173085c12d84bb2bc4eab464a161f5ea69e0318d3719249d112cabf827ef4a4a7c813d384b62c02c608c0b49dfdbb6f34c4ca8db3dd19142e5c53e3d17010f931d0f9c8657551deeb53516149b459238657295cb5c66dd6466f9c1ab7b711ad985a93a46b94f2aa2030405f0b013e12bbd380a6ed98840c1f484ed5c5ef9401880f646f424c052f20278139fecc3a3dfeb7c3cf99979f8b8c6c77eb4d20d9deabcb0648fd07bce67738800a2415f3722595c4267f7a743f5562b1a26ac168602a84b6864bfdc770ebd792543455055a6055117cdbbb6cbec340b69493c7f0648ece7119b8bcadc3282e5a8b0a21b1898fb20781c298ccb750eab8bc9abb3330276639bafc2d9c00315c690593c67896b83d63356e81cd4624c4f39591cac40ac49425af7a5058a651eb4800094b0a32778ebc025910b0e69450cd0657c296c986fc9559b1c3d0a605754b266f0f28a8d5470155906331693e425896a7644d6f340b0ecb4cd2268b536b54a38431e69852d7c443ef97db319879d1b7147411db40a0d7ce7cd358463d8c5be972ba5add85b4f6a47b6e59b58312dc0500457a1a578c93ca9356354834599c41a2853c53d6739be379b9c669e7ff7460a29a2e5126e90902b22a29446b3275dec3d891852c3d3175d8bb3526466a662a163095b8c3587fac94dfb78cf1f3968ba9888f790cd8d7338b2c0b55c12a91a32381fb2427227aa66935cb0a07575c726ba16c92275370fb849aa548967a1077cd2801b858111761230544184883ce385541acb0033f0a5bfbc6779506f7f0063fd5b3136232302b46fbef8c94cf384fe50a97d24a67608bab6299d1de88189b612a43b897c612e9f44a0451588ce9c319b9107fa3c1188986869fa0fa43c248c91c4ba5ca3bbe31c3fe4a5c3147914234aca96b0a58c52288b174aaa5c9b156bff3ace0604aab391411204714ed067e03b38b6654dff57354a311653c40e70017df6b3bb2813a19bd2b128a5001a38a7698386e7f5ba1eac57e183034133cc83a152bbf0b321dc5a4cab8cad524eec35783e93956cd59e1755773f321ae6427b53c33cc91c920448bd7734b57672c9744164b22c9bd0c6258dcbc5fe22b947f6bce1b156967b65b1910c0c57b3076148a627a74f5a42342cca8d757cbf227adba4cb954a562ecc9557c45b76e83a88f9472ba8a4c6a0b670952f173c85e0d033ed74a48445670830c493c8c89b321b26a1c87db34707e5a21bc7644bfac385690fbbb63db72b2de6f684c68b494a461d62f19d0580bca25a878e5077e8617f69c446da1ca1ca81adbc8a6a4055b0bbd2138be99617c9463c873b7a0a8d13f8c228663730171c19462fdf02a164ccce14e53c8cf3baac96af911b328eea6e89d91bfdac72fbb1846e6b071bf7929d486363bb66cdc24e5fc93965e3ccc6f5ac2692087eeb884ed6206c924c0b1952da48a84d919805a7bbbdfc578dfc08020b0ef5e4a49d013a66ab449ed91c3f8390b2f2a7461123ee3b6cbf965e71b824c808ce142995fbfb6f9b0213b0b83c330281a26cac93f94f32c30bc22a13ea8337497b408a0ba3aabbb1c7c48225cc0000000000000000000000000000000000000000000000000000008003f87b0144661a918f149e2341343a53918b5bae7c9ca7ce36d3ebd0d4e1cce366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: b9cc6d4403baa088e562753c1a21c66f1e9ec19efde0365ee8e696bcf2d1e68ff6acde8394205be0269f2cb9bdb974660c8041dea23912b0a154dbd31792e2495b4cfdd1c772b12398b279ae755af3c525c700620e8a30d9bd54a062d8f64b029dfeea3d13ef53f820b71c911eada200b3f90d019a6430d382c187228cd85dd229ec0dc125b0643709486535907d69d11ecfa15b9be98674e3e49c25510b889052d0f53dc225def026fd7ea783093f16463ae4b4f0e1ddac026cd9e00db7b168fe0b9e3a87db01185ff52443ee1cd51a89ffdee88f476de7641b31e44446d8db73991a6b491017ccf55bcef6d6d2b6be1f69f789c545fe233e09da0d5137727b4e7b437c57a12dcfd26fdbe8ded090630ad6be805aba4c4230daedc645616cce15662491117feab609c89d61e0d7bdca2660d7f36dac259e4a100efc4130870f0c2bcf64137b43b7695a1a8790b365aa3ced0738c9e1d170860dfd3229145818ce8cc786e60b1d3b159fdb9dd8af4a2c8002b24c30be007233eb5fffce3ece5f8fef18286851f89b0d741cc2bcb4f8099e5d7c31034d7a3634eb7503b93fc9135c2774127ea1d30261037bb18061fa97fd44adb8fe69ba85e520f3930ce991d74ab849d0af667b6984b398e6b392648b0272045889df3f1f47a17361ef2afa15fc15acab23d4541519f0a8de6d9a82dc3daebcb242706dba34408e4fef0fb03ac7be98b331c9969e738e2e4b4ede9ce70f59ebebd3b9afa9224623aed04721688f8332b1a214c2c8f39f76ba631591f9fb162d867cca0c65041ab7d4ad9355210084813d8beec36783a2f0456074e35d43014d44d8254970f8e279b5e2d7762e7a51937f32b50eb140ad9ceb23bd8101e0e9edc34c579249bff46251139eb54ce0e533ea720c4bf3ff7a73793d83d94c4e2fb17745c18df2ef1109ab6561dc91669600d046dd1e9d6ee68b6fa5b16fb2bff887f4aff76e5bfa6f2352da18312080b62f09322211b54e7ac1a382ab2de1b6e2b2bc0bf15ed700415ef319405fc5946bbece863dcb0728ffbbebba11ca578293f0a1886f53460685e778abe01bf1df7d8babe44bd48b0cc6f69e1d4389e77049694221008b73a8da2761ed862d0127d8ba8f6e4f7d3057c3e32059ab1bb762038ffca50fcf2693d78127b2a65c335905e1fd6deaa5bbd14b350b8afe18c00cc0d4a4271401fe78cda6b89c6381e566c69bc5922bb6a43c10968d754703b5602c93e6f21b1b7432170ea5e62eb4e0c0abe6f6a3317b19e19b5763f8bfbf74f4a910e5d271062fa79fa9682baa5fd0b9db3a5f2a069fdd10aade60a618dffe2ffb2a89bab137cfb73e92a774f57606a30080cb1bdcba5dc6536e70b745161017639187a7a495e93fdc48bc24bc565f603484127ccf13f74130b8466973548b1157709c9d6ddf672efbee69a4223f164f8309cee7d9660a323f834bead26a7cf668fc3e033b68c7abf3ed0e4109ec9e263efd07b3b1bb0ab26899067971158d0cd9ff7f91eedea7c4b7e88728a1177087653bd6517d11c490d9dffefa52d4f09284921edc23b5230c109d3697c881121db8b85e1fb7c2b9cd2fb48db52f18a51374b7e4a6220e8a50d82809c6666b5ae854c2848bf5881cf834ee44171d26b0c0296477b4299b38af261f9ca6620b57fcf276ec790e47b778cadf00fede43d03e70d6518cfbd6581fcf84e81aeb3bba3bc7ab26e562b65e1599d4e8ee7a23992c5039d612855c90dba4c90cd3231d01ed150b8226a95cb87867a2358f11890914a2016c78ffbd31e7ddfb1dd97f2e0e01e3010d6633952d7c16c1755594868702215cd917b315a54f35f92f52bad10b3a7e54df657dd7e168eb8119b28507cac71867180e0914d39b8441b3c5c20ac22ffcb0ca2b201e4b350debd73a0c08b37fcd13a3957d96476d31d26153e7b4bfbb826f7ddd5b2a7d29183a579f05fb36d459026963ed9a694fbbd9b3ac3c5e2be41336b48ff5af60d9c6030dc13981585426d3a0a946b5008ff5cb3fbaae3bc491f536dd80e747f5df92270ba40502409d9b24307d775f4ef7c9c06dca69cb5dfb4d0fb890a816a7b50bebd1ae9e55ced79dc36bcfe04ab83fb2f94e10910f0086e0b5bcac717c5bc73f5e03f09ec94c3bfe05d732fcfe0d6baef66064cdb02b49eb5d938d2b9bb077b5426905865b170590f8ae3a50f823c9f56fd3b390fea9 +result: pass +shared_secret: 5772134d07e1befd82268588f722bcbc7c131d7bac8921fd55d7bf5201074bf3 + +# Rho leads to non invertable matrix +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca62e0b7d8cc8d1d861dd052bd9bb622cd8b769551c2307c82aedc92accc3d2c67c3ecf8341290af6c93a295fc027895809a081aaaf3cd0131174c8605c7fc29ece47036866f7fc326f7c947f70852356410e22700b5480897f288dba24c494685ecfbb624bc189dca10d9307595969145b21ef4ca1c435b3d39555434e133f8ec8c00dc49f02788041a6deae40ad5c9a3198804fde6230dc25b7f86a86bc00b43da73b5b40e3943096fa4540a019817881b4421961e293250056300e273f3d87153765ec237a79a16ba89a960fe42aa887c65fae65719766c44b2b8a0e54e97aab5febb1c194939e11928258cbcad6281cd37ad6033b1c9982df721200e36cb70326403422519f3afc3451af15969c2b26957c452fb136db18357516617892214c758cd9b556a827434c9510a5f6094bd32c8633966eb113f9e4902b6306c87732b96542979159ab49a170fe71a23093c1aca70202287d8288fc2f56072ec7aefa293015b6a58a2899ed79d4a09701ba42d26c599d8a2164204563fb90ff7372e86d0a6739947e5cb25b2b10d9573429894601c1891ba3c78f2814e1273c8d2098f19172853b3b590487397692ecd3b6e37f58875b60167fc208e6b813e0b26e1b42b7af60a64aabfc156346c78a225738983a03253d679437504740b872128949d971c619031b51090f54abf0ba2cec479a671d43ddb33c430c8056fa37768f8551ffac4682cbc4755267f7736c3c97002356edd676e0f26c2c0f80bbb04c26a09bc337bcdeb68bf25d183dacc4d17cc68cb8b967b31692b2b6a035c69460bb202937d7ca92cd87651bd7804a1d24826c3be2232310db3cb08ba900ebc4f5bc4052dea72e272596f6373b97aab10e8b9ef713550d9cfd3610432b6710130ab394830bdd4129e0232263bcddccb1dcf9a4f023865f24bad1080c207e02af3b56f2eb1356ae45466a61905807a5156958782b02ee86f69dc3ae5e2b23b8a01e6e30471a7c85eb18216d751645a893ea169f661230d1887e77256a4944004b8415a3bb554e436ed2004f30a19c6099a573ba752f2527e59b00ff8943cc65caf4ac07721c702e05d5ab2970ae55ba7f8a1335aafd7542630f933dc7420cd054bbae009645231a1362c74252e649844f413ac83e544578903c310af5660cbf3e4c4e1b4917eb2a0a8bac4be184341629d0c9b3b1cf38b936828abc520a3c13333c0c2c1c35185028bf1f791fc24a1ba12c49b252ce82c16085623984368269b6dce933410f5b6bf61c13388bfdd87c0b547690d3cb2910b05707865f9ac3c1872a7cde62d2ca43fc391af8328bb5c853c1f1cc06c165394874405734746874a84b2261b5032bf586fe9939a0ccc980724759582669f646406097270e2cc1371b0b6d81e575b5170760004f593a0c377c59b1705bba52eac083cc597a2d03510e8a0bee8c5e39546f193cd8e4083a3683602cb1ddae257b1c1bfc409942d2abac0586e63f3721b4bb921e135759b1efff0306105a71275388ad69c75c5056fdb443e3c708a8a107ba0cae4955e2ae7a310d97a6063690e5c8ba84891e0a9c62eb983578ac0c6a56b710a2d63305d931293ed42887284904c3cc4e1418a9c77b8158916bd028f1272518c0917b7f4b457fb09a31b63bcc9278b529cc98c4351436e02e30b639562c14131f4e7903136157269235508a7aba15519f911fe061d9bdb7b63dc91539428bf1c72861305deb39ee8e226cff39e448a9cd7e50589f85430655d0d027405d991cf1c2aefa28d83d5c7ec8994cdf39ed49b5cef917c55f0136a1a9d8cb38715cc0785d5cf5f9c5db452798348c70c52b5fd89a7fab54b75d22c6958af84bacb21621694d492fb90b71c787e9fac0ac9e3c710739d67598b8dd6428bc2ae26218eedcc4d9015363f8acd9ff043d0f7105bc7c75eb9c376da757f1b9aa2378da73a7a6e4571eda670b8287f4a333412a9c94ca39bba9759bca1c2e4649bae51b1cc10913e0cafc8575629ac866a729674772a16660c1aa53a77f002e4136455da31ec28121a7577150cb3fa0ca2c0d8b6985543d7f90eabf2bf4b85a3efeac5d0b28f70e93dd08073a5529b41ba4e2c736fe3e0192794b00fba1d429498560b2eddb788ac274c06f43ba9da341fc52cb2f5755ce3c1af65027c143f106b587a1b6f18201d9c3b0f19e4b005076834d7830911c449aa913dc6a3ef31c208d014b41ca6ef1b12a796be561b006630c14c03504f87c600ddc20c6477b5b02c5bd337f56a9423f516812a594fd4b2e794442bc8057899aae012c320b64eccda7681274adb72101ec41f99d63648763158323c753b0acec97d96cac9dd35924ba1c0555b09a3ea95d513b138a444bee8608c7ac1e64240d15028cae552855c47beb0c9f6f10cb4a3b9f68c3552a301b6a8cfb9487c241964c4e167e2c1b158a6b1a7c303c0e38fa7e0c53b376b5ee5222cb574d72734e7e90b531aa4ec656160f5a23f6b3bb2e3c72a453f73ac96ebdb128dbb8442b5c7ea842fba805799c811afebaa4bda82b559c624322aabf5a3910a152d5b8402f33ca0176fa5600b8d358d6f5956fe6171cb841ccde5bc76a27550878b5e065364139cb891065467c630d8a8ec6a002626c25c8aa00bba4be3c2305f0b1b18e79dd1a8475d2001324c898c0a43075a7c06697c2ec6baa4d78258e60297081869503b7084aa73756b74776af98b0000000000000000000000000000000000000000000000000000008956b47f0597a8f2c9a115f32c5a1177f8ead69dfddf58fcae3c35bb7d71181211536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: a64e4169d49c70374a2c237a33ac42503c6ddc7239c53aed99ed033992435ad443153362ad3c9cbdb576fea6b87ae15bac3f70c457f5e84bd387f358dde9c5a904db99386d2f5cfdb29454c978a89083c9095b2a2ea1fbe220ed78cf34747528e7559c6b6f6eb168e878046afb0526bef2f966fc80a863ed6e138d6ef2272ff9dd49201d746f82db8122247a3921a058fa62a03f259284177d518538972fb8e3d83c4644c8ca3377801c719f55277894e1d2170719782c6b136b7612eace3f903cd5c5a98f001b2c8e351b0a3f24d48df4b3f639b749c3771d38dfb69c586c44477195853255fd8d36cdcb867c8d4033e5d48a9bae96ce2d839311a5620af3dc42d35126f222b9552e1c36ab21c461cbc7ecfc6eecab244cad16ed8b48cc056ae98b4a0b93c1db5b5976a40a4b5bf58ab01c2a32e045f3db5c5ac00d3d04718c796895a2690b126120222a786520de726b43fa40eaed49f7e86dbae56c7c1d782254277f438db81e56236535b36a1c02c54dfb3974d1ac1f6c814e2fb890fb3c1364d1544e87aef84e3ee3e47e6ee32160393f9610c5ab33ab9e1b49aee4bc8c91bdcf79fd831fb651dd80bd0cd9cc439c811b736337b5ac64d61e6eb1abda5dc67e694f2350a92422faeb7774755fb8bafd5c091b634d229ebae35e3bf93c6f1d79f54c7cb6cb249a589a6dad72a4551b32e1463dce1f50e636b60b70648b81ea9febcf79a3fc8ff35ccafedb3bfd48fccef6e6fa5bfcb44a2fda45ce7df150b9639a9615a936ba1c2fe0c6f2f660cc820b414da22a3dbf9e8139ab3a0c5c0946dbba66a02e2c5febc88d46e6f79d0e669e60fc8f6df1d346aa9caf90c16505886b48a0c6fb41883c93b6e8d307b97f1ae01e5e4af5b9be506dc4a8bea249f50141accce764e85e9121a7cd087b26f5d248113ac7b97517d575bb505fe6048df915fb5e0cf304d636d4767042c609ac823d9d2812b9cdf4207bfb3bd477ec047c1987162e250d2bb57791d1b84b4341bf55f0f93afd75abbc90cbb23e47dde24583d1acb6720e1722231f9b103b0a7d454182b6eec57eb1e4a64fe7c92133302c22d941a0b17e86adc350b47650cc7a1a953b78fb1a80aa44735b3623d2da25ed5691065a467ef15a3dda917d80c1d47f2542a0afc383e75b0e955ca530d61df1aac8da5f1ed8297a6b5fcf950f6cff8521a7096ec2391669742087139cb5665cdf525c7c8f157af19779156beb2fd39c34ac614d2b0a91d87b050f64aeaff74bd894d3a68c1a52da47a42ba04d06debc14d9d82e9bd94aeede4a35b6bee9732bae0f76e9d07f742a430441b9d8af5edfc290a6f30050841c5921084d7df1ecbf8b70637090cfa784d5214839977eba9ca94f3432f47bbc4d60c465edfc7a931e7f569da5e6b4dda05913f7fb67263cd939b15d7a8f7c0d15b2c9c50dfee128ab50821b3fb9b724b643a9464b0ca38d51c751d8d4fe5e378339c9f68d51a245fc0ae76ba14d9539a90e3174199f503231d7bbed22f977b37a34596cc8a3207b852d6b09e254d7aea868b29c6506881644f493eb41875d6c51218b7d79f7f1202c0ae747694403da054128aaab773e092c04a2c34f4a73fba19d99df3a81e4e60c1635f0b34b0a5fd7d0e5a5a236033fea303e819da88131223fee2064e5981d596d30ccd7b744e183bbbb58bbc7c84d4ca59cbe1f52e2739fac45fcd0a706a1123584167946169c3494ac911a02deeea2b487f5d57c4429210cf812f90eacadb7d51ac65a6dc49f9e51ac3b4650bda7966eec378df60e5c98723bcf7cd63d65a93569be54d17a54df9502f9b6b9f6deb46acc37da4451883f7ca49d4075d045296012b6f2584c972c087bf948fe7d9f0fb561dfd91c3e64f8190ba77202331e5988aa9d5df9499eee4119fadbe2b5530233d6873bac60c5da33f4f0de0262eea35b2041c3864731c3a3fcd9aadadd6eadfa55249dbb5a8b63d4c6f69ecfaa9dcdd293b7e85a3062b53e7350141ff7f6d622a1f4978ffbe22bad117aeaa425568cea246d0da900568c70a412fcca2fecd427d14d59ed0867b6905adff8cb33bbf33743378d4a2d0ccbf79e721d22d4c1a9921e296640639a5dcecd93a1ef94a06b25af0628a32647127c10c504f77ea6ecd31c2a035e8baf3fbb1434c59d28d25221c6d71cd063e3d6000130ba62163566e2f8ace8e2031a530787c4c9b25856 +result: pass +shared_secret: bb7c4b5d4fe3d2e310f176eda060f614672dd307e94766a8043b914e9f3e5c25 + +# Rho leads to non invertable matrix +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc8cb39ba3237b6f13c80ef947630578d2d213f1914f94c61429bcaea77c646f1b99d35ac8009907ccf604c1211ddaeccc2f1001b49776df94560e5ac35e0a7ee3f39377e252d83558d6e57651b0b3c0365e6a133dbe3002270a0bfdc524e5d298b42c1408e17d155c82d69c256f78a69937843491153ec2117ac40370934d28783a69d0a02526afaa8600d289c27e9481cb737cdc4b9ddf53caf313b3c4b862b08045dc38428b126622d77ff3864fa93919427b049786042d234429e9858ce7b1d57a2fe92979851b9d4ca23fa7a80aa4738c9b777020b857b8fa2e442522423608d51b78c574569b9746e441bed403ac21391fe327818dc81355bcb2f5758320965e10946cda9a7c1d329f7c1720857c8751e57b87186e8dc21199e3b7ffc1c4c5607cc3c258a30163131c5db5d96e2e8c2f209419d5a03dfc618a53b1799cf102348b89ba289fab2b206f61688fd974023619fa5187b8cb28be778b666294bf029d7fa9abe3ea739f131930a13629bb6fa7221a788591f595911d3c8a6625a08eb82cca6371fcf0392e359ee7d96badf47a3a46aca01aa9ee8816ed4939a8da1c7a6cc0c78a2c74dcc482aa9b0f27234d1a418b994fcdd4864ec208e423b97c98ad541878794770730c4e1662ac60a1140a6aa9fe425fcf9098cf9592725712fd995a952a73b0f8c4c312a1ba498d3bd9c742cb7f011216bc816e6cb13324c17a060361b01551692a7456a46c76c994ed067d102947f674b918e5c924c86a5e6172b0f1ad8e7336409cbe7b16afbc48aadfc4a77bc22ea467a2cdc9350313af150a9eea3775a78b45d743afbb33bf2ae2bebb19b800eb18e59a74d79197d8e36f74790645e77d2ec46a5df081bff73ecd31c0cbab6275710206fab518230aa749cd4f5099a304017e937a264010620b80f1d0c7244480736ccc623c8a2d7938de85411d7acb1ea00cc8298d85a5443ee058505b5aa3d88ffb3900567a31a9b25a3082035f5c037e571aa832672a74961e51290cfb0b55843229d11213d18feec5a35ff2160480887ff03c16c5a35e367fb6f5561ea266e973928e3b1304d13b3924be68855cebdc8bd0c3511503ab8e50c828b04ef2934c41207c725c8f1d589956e259a9f3120d6392851469b7fa49b8452389eb2de3497586ab043448c14a13310ab5b352a740bd486e31f0655dd472dc3b3208d06a79cb0dceca7c2efc8cee019c023232342810e3448b5d019859da0ee25526b81422f884438547386c3c38dd707e9ae18b27838556d2398b827dcbac8344c7cea904640f9608c82b4b86d27b3f4ca4882c6da694bc78bbaa08c900abb62379eb00f2ba692b167264802d47d74ab3671620194555b8249857996a25bf8b44892914cce1433685ab210f92253e00a355b96d6716af32e6629cb26771f57c4ea7cc80476d3af5a851f191f35ab646961780e35d6ff449e3b258b57375c8a43718f05262c274344c95ad251ae8619cc6714efa12ac9999b085390fb684c03028615063ae5f472962d49dbe7a65e248152bc73476026cab06733fb57182c9c539553b223b31adc966c8e41cb0e9847236c38ca67c13966c915a9b04088c72d15ad221950e65309a2bad8a58693168b5e7d7be403137f4130f8e911aed444c84e469f98228a55a2c2c22c0061861d866aacad343ba3590145424ae886b52c862cd0036eebb6fd1e33cdc957e2370ae8b42c2c7eab508540a72698810533bdd7a1739e88255e86c8752974986bf36d889fc172d9c434ef3d079697204b778117f1acb520c63462c07679347c4604c78f5acc99cc58c245490250c811bcec2d2184cac261263581769044a232dce38c6802c359e154119c4874fd95bcaa5a67eb4c8c3a5104f15962a725e5ac34e0dd363f5aa667a22268afc4c382a7968017331f4cafa6b76999640283ab672985a27dca0d39c4b7ab102fef1863b06b67d9bc01b8040e1156468960f1213b365d2ab2a877468851fb627b1ed7154c6b83e7f62ccd65ac410e8c97adcc6e37c3b5d7893efd6b2a0b995aaa9171391292aba405b051f5125c8978a15fc479a55ac296d7c278ce5a3724535c91209e1e90cb113423d27845c95aa1258afc49a43532ab873f2a6d967796421a8da73cb2acb14c3981bcab14d1c7647735b25de0ba346bb61acdb8be7f513ce561adea73d19c34d41d12499e8a843943bd21610e3749cddb25d0fe0959f8c0559f774d5ba347c30430684b7535302e4daa90535840cfc9263fb126d23cbe85a43404050eae4badd99a0a1c24e1a2b4df41c8a8593a6763b31a4642830e797541b3ffac28bd7b7a496053fb1e0b4002433dfd705251900a636b7cbe3858874bb9585715bbcbb74dc992f4a5636fa62c2a56989529f7de46bf10845e9e9c03d282261715c7b7c97b4786387411cfe36565c2159903959444c68a0726fbc5a13468714b92cc3f953966fc3bdc3cb1f606a5548e4bbabe2755c56a35664394fec77d9f0646ac5736903a537d29bc6e905bfb5650cea3a5ae0145605c0d81191fba11da630b5c6c866cd09681ff16950b495b9aa6843141236b079ec67cca7c554fba14e534bca50590c1bf40ad5403a1c12578337b55a684038d4046f2c8d4be864c2025cf182592871909e824c24815fe1e206e37001022ab475481c56464a1d258997887c49a052b43108f6b7b8b50271eba002c3d881b4025cdd3b000000000000000000000000000000000000000000000000000000aeda4ee0487346c360ba29019b2937a8010621827eba9d49bc43daa9d25a94552e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: 2c2a21b05890062fab5c11d3d55b8e032fbb07ff61ba147998ad1a4d200fd8fb17defce7723b268150ba8ce7a4d9a3548538e2606377e91658440e10b048c8c4e42289a17f398a664986dbe522ba68f42b14f40f25be762aea2049c9444dfbddfe416c04ca7139471f185a441a515e0d08fa24991e9f02d37520749499266d2d5980f35356c86dab927c39d9276aa745f4f9d1cb33c386faaf84ab03a67e42fccc7eee3818254b7799bf445a491b1f4bc64de499ac4171def329cc94f0c4b0ffcd6ccf9b140c776993ce1a0241d8113c67d852c24a0e4e070ccdbada47e953cf65146087476d1b0dc53c039427f1ad7b466304a4f4b2757f661bae492960f667ac439e3d8d4595d7da06367e69015df630a7292b0dbfcbe2629808ca08e3ade11185ded915fb0f5c599417d2d2c9fe742db9535ce90e49d2e70cb83b29490de8db042530e16d3d35b488ab1693ab4d9642740394fcf6b34d74ed47a16cd2e6dfa80a94eb1261ee6391687ba0bd60ec124cb1c3785c2143b48b6ae5c2a109169a974599daf0c682e1bd74c7fe7b3b76fbd5347750755195f73af0a5ddc35c7415302f34f331fd976a84426c3f1b0bdbbd0fca925e7b2e9f78e77571c761f896ed51b66bd9d8d4dcdb5a8d28c382f322dca57bbf1bd6a4131f162f4d8c0983a0140a3bca10d947efd93774edb8b4d0cab98e83ca40a327d68c8cf5fe4b48583d04612bf65e61f00a4a56a63fadeb321a033ad5f7b65540d74ffd144495ccfdfcd4afa7739811590e4d7357a9f80732cd0ca6355c31eba16fc0671de573de5c73d43999477bf383e35387db6b9e236850cc5a286d5a93e9906b6c53bbb822a43a59a3b47676d30d4c8c4665d73fb275ca0dd493afb80aae9e503518ad8c7cd5486ac10ee2ed63913fa20c4e3ad6231b39ce07256f0e8ab72a8281db22ff9f8c2c655209ccddaccc1752f63b1967b218a872a36f84f5fa46064173f44f4a0133771abf6183923eb11b7676ef55726f62689b4695fa39130718c21145dbb8979566dcde5197bc3ed8381e4bdbbb881998a60a772811c50babd1f7811def20ce5fe1937a28ca433116d6c85d5e8046c7b7640ce5b7ce5e3c11e13c2afcf6c20a633abf9e4b3d6323b71acae281ba73d00d9da20292fd6e6042dcfe154f22b308e78ac3decac8afec89ff500534e6e789459b42358221b37e180d3e0aad911d35d381732682c2b5a50f29d41e7b21f7958ace59f56fc1ae6de40bc26a78ab022b5998c324340e95aa424677d2cfec90ec8785339d20859687272bdb581b29ed49a5463be54770a17ab25214806e9acdcd650d9007f4075659271c3b288c9a6a8a7e8291103d2b750c7c088637a733fbddc39cf0f0a9dd6d9dfa6102d12c5dedefd12ca43e43e807635993be1495c18be1c90f3a620074b86655c40b904c1bd97526d7b70364a2af22ae002844c6741ea35263f08d6be51a6f1c039b52dc08c89b45db2c4091c55b3ea13f28494dc0c131aefda9d3b111cbd1df48eb51f68db738d31e73b03799a57bbbff09a0018ee684b6502422edbb80022498ef6e26065bf5ac7e4992766fef1548bbe43ee1cf9335fdd154a6731cddb9d50165d28a62774f23a8f4cfb381a71e488cebb6eb4f23d97a6f6e3dadfd0ab3e146d0873738f1e3f9ac9f6ac38ad1566dd5d33e263cae86e9162bfaf0de296cbd8508ce6e1d553ec6d8915e69ecd0d460a9d839f66aca1481bb17938c25e6c1839ccfa09e5660452b4de60ba32d3492d2e321236fa62e00f56f9284c1cd2c994e503a69aafadf18e631f5d36890cacf5950364dc8d4f564352df1da0ef6d7749108c27d63f4de76e0805db07b70f35adc2be0cca552bf5211cff3cce4ed17fdbff7351577c14344fc4aea63a3e659d615f80388b2c7d1b75ee007138f76a42a82f8bd948a06cb6d8c2f9d0999063e5dee458e0d18b861c4e298c8a61bdc11d54a3c2a3b50da518bcc39db9252f4298c878d2882248cef7b7b600c455efc13bb3f0f0d16380c86272db86f988465611f208f7d1b3e2987bf60a432428a0fb810d29c1c7ab3ffab55819cd168454603c7292efc59fd7164ba2c53f9bfced9c3da9a4dc9a9f48def429489a5742147c79a3b7f2be6d20a2db79dc808e0f56a721c31b1df888bd19acd89b273f169984109b381a1e449778d768aca994bf8e9740b0dbfc1654e2a7c14e95fe5 +result: pass +shared_secret: fe71e2b85d231f4abf082d4f7ca86f042ba259b24a14a934d79cace53cc10b89 + +# Rho leads to non invertable matrix +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca584a4780ea352e9dc85393457e71ca62e85abb2322aa45c4fb3d29b15d55a027b8a74186000b9a05550b2a343a3ac21b0f7a2b2aaf736a1ca49df5b61fa749266b0696ad7b6c48b0dc82803b10a4b64d6caebb33a13c60effd699ad44c1985c9e3f8ab21a0cbd728ab52e07c4bc5ab3f6c698ea307f435bb7b5545c44758fee3b9077b5a318c2b584012cc9b57560236be789bc4b026d1f26a857365b2d1a6e809a9f71e140ec56c4db3829b74539a90345841483daf6840141100c66cbe057261fc346ab8c36b03cc2b2ac838835cd373836bca05d9f57ce2231980ea1bd9908111e79b602572ab37495e9f6025269713f4318dc472d06b473268bcc7c5cb956b5a1ebf419aa18b9d6f184849240470607fdf6325ed561c270b095079734fb61e04c531be893c2621c5ba48bc897868126b995e75777c8ceb100c67556484b71404be802ded5299cc41a83b0c7a99c8d36d55f7fdb4697c446904c2420d667f5e58e0837778ea960bb6605890b8437f24f7d35acbccc41acfcbf2e35270ab368480813ee095bdea49d18f360a690b145d96b0ac56ad8007ffecb7cd198a9f6178add5535e863471cd5198c565b62d912fd3a9040828ac9834ea753c0d77b5f23637e5891a92fe7508b672deaf212c2711137915249b50ed9bbc2f7e804536b382d3a29b6132337e68d363903aa84b08a989f2482c56418b59dd351c54b0b89ba5266d354b91b2fdbf26812b19c79a12224b723bf0b0e6967bb1413cd439789058091ef95c62852075e464f717ab84db9b28b23934f625f08d0a05541a5866343a04216dfe83ea37abac6e273ebf649f7e391df2829ad2aa45e634dfee00fb465bc2b7658b36556e7c813d2e4a92eac6c2b84c8b3ac8d13bc4dec0615199b63860ba29172bd8ee51080071553489e850b1d8026a898c0941ac62fcea1cc83bc02fcaa3b5e76938ff96c3c682fef30c320d3a325d633f16888613550c120b9631235281c6f531b19f8ac1958eb531d11a857843c02e37347c13d8a216c1456a9405111d7e00d0ec2bba81b0a4062908883a3f7e088ffa10118352646964be2ca3ba2f6a4843b836d538c042c693ba928fa1651521894a7f83311476faf50add5952aecf663686a07ac302d5ca15e16baab85230e077acc0ef4b36de2613a1c210fa7c7c37188f1685f067403d4babd15925c470b8559e8abd4db4cf965b845f22156515ce54643f9ec9645c53c5c830344f6c7c537c87f2b6c70938c58139fa6e2237b03aff94b48abb8441d8b0d4c108bd6f4114f98c22c412b0d559a25c0845a68bf6266b7b9e17d80dc6c3631ab0620c0582b0705cc686bd267e8309ad1e33ab0bba9fcb21b13e7c455887d07a83d34d836cec3907026911d799653ac0298fc1bcba7c941823fcc88bdb39541cf989bcf08a0468451bef079a627cd31855667e97e3eeca47e2839ae32bf112b71af0003a42523390bbddb71cb1531264113b990ca286f689a3c660496f68c5d68247677262eb36b7b26ce6807459d7c7dc5e4782964122bd96d1b5b8ed9105ad2e72050d874ca1b09b7bbaec0107c1abc025a557206446745ec8d462a83e6a53c5ec6c0b8133054745762b5b4bd142a1e2c2471a81ee35cbad7d6200924cc367c3a3c55032631418cb6a3124200209a782e2a0036ab9723f511fae105049579bf1051b9b41d388609cbb81dd1191b857699d04486e018779a4011471a241fa9401f9009c90a14ac6a5b691bca69c3c5df7b45a7e77267f1082f0418a8d14bcdc29bbf48758af83cc9331e3fb34a49a2570f75562d0bb7213c230a549498751b2cf0bee4561546907f2aa436f6060bd74c3b06a7812fcbc63523a451b90b4c7386cb5614a97a146637c38cfb77ee1316d0ab981b4874a9d263185908fbfb1aaf9b9939fa2d3d552bfd577de94264740ba291ca4c0f732263617dd8d7bdfbe80797c68932664e414c8ced3a48f5287dddb04655b76cac5ab725763264cbc95dbc2ad7976eb5508482389e6bebb358097c79f2b3f5f6a0249881fa6b932e6906816038f239992fa23e3f1814003c48cbe3542825ac45a00d1c104d76424fac824478471c0349cc7fe5ceeb21c5bcd1c262154fda607fa811aec08856b444544366a62a57860e71b742b61de0f129009924af08a92799213b933739a3a81e7a65002596da271bb19675c02302a0a2cb2d928318c365cef3b828a362166b9a6eda5bb7e610a5e22afdd390c6c5a0e6f955d1740e8fb41347a62abe59752ee6ab13f78b4a3c3fc0f70de4a46d276333d5b51f139cce889ab9e18643f9a18be7349a319913ec923233311d1473b37f39185d872a9547b1702cb096526a8596127411bd1e611d51816198b95bff68bac6538149163330814d4d34a84cf2c174c96b21787348c037ca48aed72b22ebb24afa3924dbe43a36f50f55f3bc5ef41125d400eaac4376daacd71398dee37e84fc007f93b245ab0842015cd26671ab840f74831954d9886e2513c8d752ba15943945109b601f051146824181f258417cb393e8761fed36c5fe36590a589ad52675a9b2c05a1565cf54453c7781d01709ac331e5fc454bf222d4f70517f80afe7d90038987df37990a0a42095a517979a0fbd994fac3a42568687b20c8d4857321edb8c320682638c55c4a352d2e843b52278f78953a617b08b271b4fec05109278ffa5b74856188cdb6e30e800000000000000000000000000000000000000000000000000000049ed9ddc17d39eaa0ccc036cfbc33590cc2879b83448a701412909421ff0eee75ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: ad2de30126428ed97dc602f7d15fa00dbee9bdeace6b9fd7579ecd9c015fae9d9d752b0a56fdbc997528f554879ae42c40259eb4f0d289ad7898ce21b45d0f84981eba7a48df5be7b6c3b07675d5f4c241c04281781e80a9baaf183570f47eda8e535a39f8e8dc562b28c1cf2b24118d87f5c528ba93cd5f4757e23a2a9ded44295ee1e706444e62a94e04df3fe4d2e6e77f77ec87de4527f20f93c62939e08b0bea1a8862f01f7a884de4f77f7f32b6ea6fab67635699f2b19eac1d1c4902432e1f2851bb35fb1e3a1ab79bf2d2589d34eaa4294c4305090b12e3625ee42c8f2e6a6a0ff86eb4439b4fb3371ef04b61f5b7d75217ddd16dea7977ee763f07da3cc3eff2ecea8d4734b8cf67e4f95874fa14ae397854810ab1b593f7eaec2e87650b11079d5eba756ba7282f1bc735e9dda89ab226148552a0a6bf67436149a2d79e1212da11ef87da910ba69e1499314f3cf90fbb4c04730cea5fb1e5d35eb1f522e09590522d6294f212c223249f8f7ff82f3707875e66621235c464a7564df4e0a825311cd915e6ebb0834f6f8a709636ca137a32d405550d97f9dc1e8b970394003fddccaaa1e98185d3dd354f3f390a5e6ef9d293e45ceed7be1583c983eaa6f9489a994ace30441b252c375cd448ff4c7059f6db14d1c65d14c4a6b1696381144bfed51a55827db14584f54eac1073031d7b282fc5a48eca5b164429d9bbf46803cb079924c971aacb0bacf3e58637b813b15794029740f06fef8d80ab7013041f3b11e04df8c6737bbe842c8271d584e5c84fa01870c9ff001864176c967d8aa39d6f3585ab0b0959e37ac8e9cb06e3bea1083c2053cae238c6cf55e9b6052592ac075900eca92404af4a174a2cdb94e202c31807cb5bee36fa4e6e6f67ad4eb5d60a2edaa101408a8e16df3f3ca8cd6e2239b079d70b5dba53a42cc594d595160a3ffae9f16121383ba5b778397518095a4a92d26eadce6840acad84610db923b5583024a5fa682a3e224c5b081a75d9903a870642151329befb6c7f83d5ff8c0001303e7349fdedc44067f894023dbf61557394bae481cd25bb48ae7785db5457a90fb1644f16b9aec60baf5095d4182b10eb12f680b37b779619f59108b055c7e7d0e33f2ef4a8911ac876dead82cba65def0c3015274d14891d1f726f3397f0ddec9929189f7d5498b41799f6a4cb8289744a9ef7d9c620b28ef6cbe88188111a5ca0c5a320c47bf7c12fc1cec6a3dad012f073966ab62ef5fd71a7dd05d774c322c8163b18a6461fb321d77fb26ea2afcc9a7b30bacf3d6bdea1daf3312192632b9a5a5f3938d42f3e7b5b48b4b58d915fd8bc63eb5135e5a617a333a21839e47d7f61e6d206ad88332c1fb55b71369e63d76e9bbf8e7cccee4307db753533b61b7fa2edd1a2fd434ae1ef841c87f6250dfe40d8c045e47f9b93abedea1c4ffafbd0d61499652e3b636e0b6dc559bd3db9b764e4d46c35f2434f23ff3628e9b4c30a65d485d29a57f5a400aac8df42593b33833fd138408e63fcd8f4f1fbd189c05d651065473a88c9e259029f752848d07f80954af01e8cb70ba019e902260a612c24bd8af1e484b280449f335bce1a32878a0af01641bab8901ce362ddf2dc31a2ce8aad03e8931a427b07fa2688114feee300302d193b05db582ea6c1c68c7c4e405e72607dd4df28c905ee38f5dbb6b0eee1864712a1489c974764bf7e79d5520d2695025a04173049057b54c23a3d2b9e4367f6ffc7be4bb3642b7fcbc639614c3e479bf755c343bbb925c7e7336d567eb051479521319be75831191c8321a5a887611fd8353463f245f91c396fb0b5e495dde71b124c875dcae8fb4d597bb84f9045c17949692963aef558be7260973589ca0760fa7980c85498946f90c719adeda096e111ac8b3a215084af549f4d61f8253f4acae2894c7e880111c1bf01124bfcf829ecf809b67b08bfc3fd9c8afc04c330fd67df9a07f2b92f19b56bdd5c621b62ff1b55d7dd0ba5235e72d5e88014c16016178975c14d4b105909e547dfa6486043025e55bcea08dce175cc10bca8c56abbfa688984504f5176a12d975a99d49c30ddc265f1f251bde72ae16b36d9ec61640c4728415521872967a6521acd50faef7d198e78e33e0585a14280ecb2a9f8a75744491d90616ee35b34f50ddf9800dd80bb39fa9e7b523bb03760550ede1a90aaa775 +result: pass +shared_secret: 365bb81ed68c6ebaaa58a3633b096874485c19fccd8661cb2ba8c2634efd0fca + +# Rho leads to non invertable matrix +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5dc9ba816e19d8a177de33a855960b7c464cfd51a7279a48c80091ec357b9fd118e12f00736036fa8268079754a4d565773f2a5d5c913109a4606a276d07372eb96474c7722d85a17a50a956b3ca8132415b2c404a0288aadb44fbb00217c0005ee36137768c3d4169d300ab2876c1b2a92c0cf119fef5018bf7acfd2031929b9671898c64388898fb74a483a100ce2ae67275e53b00d94c2888f831a286631450308aea2580fc5cdbae53b7108a9d3cba88a437a5c0917dfa3bd7fb2266f2b2f57f52724b67e58cc2781a95191f60a34d74199102b5fe941874a4433034ae6c9aff9e2bf16f01781d72424508835e3a587903eefeb0b0d218e11183cc7293c81c09cb5fc4eaba4cdf22284206b23b87566da704665527c6c587aa3070b01e79094747a87ebb2b9e5296a2405528c224ef45ee6fcaf0c537fa2e2479d579d71a3400793188d895323f274077416f94c4e68811ad9c73598d7ccd53bcd18f8b1cca8bb5591298132258f4210d36722217c2fc5925330d03d1c037cc7d520f52b770231538782738a75b631f992d3d74842714f03c31164843609092942715aa4227254a57fa5325e39e2763ca679ce680c528b162d18a3b60c6485e4aff926895b4982a64c40b28484a32979d849b380ba867d355ad55a148f811625bc1427c917379239203cb59230460c880754234453779eb7032ffb3b98071546e3300a63f39cf4ec0dba9018c4470c63e920ee79c000f57fdbf504bdf709b70c82ccf3c7f351b2b35a9b94582f61455b8f24bd43f1148b91a123076562e53b23fac78dc4ac6d257b3e882842382b30437e5c208fc7dc15a0eb4948e902a8f13192d401887c4f01a4924248af31db0892ba9dddd6704b6c696870bb87257a0e357d0c908995b0789079c414a0424855c47dd73becca7b13b029afeab7a7860220e4cefb361edc19c961fc2b24d4311803727e5c0669aa5228e907f6394768e7a3af5068b1b7a0bba9a2aa195ae052233e92ba6382548dc201a5d1c9bcc70f1f50694f56277703138787b34f63b407125d402369eae548d12353220b50e36583d9b0b6b33b8f38a8b7c0f20a4c7561d6c80ddca37d2e709263a54b4abb4577800705f068f21b8a4b44cbf4e3c4dabb1e78865c1fea7064f6534b1c1e7d088dfb37c4b5d362f6d19d90db7b9804cc0b5b02a3f091cd073722c82d0113bb64ab2762411cfd91353a8838ff39c2b1da1fc41353d4f02a66dc28930b9aa96088489c6a83822664679457f9868a0ab58f34bc16cc6fc8672e1f35a21891246bb201dff207148b08f02c7bb707a150084b93c44c021ca3d56735744070d0b26d3958c87218accaa424ba20c3522a6e17b5b99a26650c410d6042cefe6493c660c954484a6fab528d034da0d5a92200ab2c36262f074ba54432dd7054d348ce54fbca9e88043d3b63f8193ce57b770f05079c3946f9c33c2c9285422756b3653b4a876618773de5c7b0f2b019dd7c23f39759cec53e95aa0b87609f0ac794632849e5bc76c1619be9688067d93cb87b1f51337f45bc9ae8386d7c98b88cb0b96c583b010656e7f017e972c812635115335af17c2c3518346407c94e25c628002652e2cb88fb0779427fad957d394999c0c369447b06c095381bc909d93a5e0e0c087d71965e296a489ca5a542a41a99529592167e2bc1dda7bda1c5026ea15cdb4bae4b7500f0b1aaac059f0ff8381897c4f3a144728a2ff12453feda091503bf603b16e406288dd89be4884e4f86baf722269475c874b1133de17ce1d51b694c7df5b9a87f19c2648170de3552c7990f68ca7e16a913b6697b5f848c6c2a92a9967d7bd180b74839e233389bd334c80c7772071d84460c509c092462cc1e4072f8a3297558784b68c7359c0adfac975ee4798d26c719e25c16e47850d11569866e3d610c0de0c68e2886e2675f7f59791f4568eb60583a28ac8ff2430bab6e5fc07f1637a59be1cb9b33c93b3ca98674492203a9e9514ef5da006854037b4b4c2a1ac6ea6587d208b505d206f04c7a8df119774657eb549992002bfa75b480fb576d3a0484d695f6fc56dde369154c5509f346c501c12a699354c14478ba95601239a2c48217219013fc51eaba658d4a5662e469b6547f74eb29c10c296d1172d1b0c75df4b2459cae31b33d7e9164025478c75586e25730550216c549ad05c3660459a2653397d60c27b342a5b51836fb1a33bb8bc9cd622af6632245e49c5b129307942eff7c3157b2180112843a61376dec7f6294029a441683a996fa538bcd07a35585558ee09123b7c3f6291ff04cbfb5d9a85607cb086bcd36f3c0a8854bd0f58cfcd5a1f4c51bcb41bf0138c8c7e29d7c43a1b4538f318532b8f30351967efc26a7a683967d770f3c21ad3dc85b7da94c64ec6e66d83f01490ad6ac3567c81b55941ed45a6ed4b2c87f473f900891b5c69d5092087559407cfb5e9c2aa18b491d6ec7424aec12675aa6230303521bab27303244ca2716e83b212783cab442c909c8760ac2d341a24df63315ea42726912fcbc0187d520d70022eb6872c8b1158a804ac86893ac7741e2118bf721c5225853a8e056c0d963dc0b2500147b0f632fbd27594656866167c5bb28994833ac2031bf4998597f6c1da7a0a3d70c3d3b01cfe6a87ab57419491140ae9c4eec0b4bd91a1946233f3cf88a1ae27acc03cb551294ae5ab7606431923b000000000000000000000000000000000000000000000000000000bca466cad40e9531e154b5f4cc77b7b4a5557f7e36b9863c0ca186d8785119a58bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: 5afa8807bc581062978485432085e6af37c06780538bd96f798f641949ba3793cb496b51fc455413e47586d44e379daa9058a4bbd2e329e7083db3c99074287a3958682fe1c94c88d175296b78e880eeb27bdd5b550bad0577e9b24ea5f3148ad58ab81a1bd1b63a24c0ebd31f2198cbbb819eae7d30eb8ab49b08451b4eb4c16d1dbdbbc1da5933c284c2b1cf37d9d92af41ff4ebc78f4418c6b9077a4888a3b516fafdad71a517df1b8818c29accb9536f9b0998c3a973b91c87a57a04d48d5f8332a67720f92c8692e8b2eec3fd62dec973b815a18a33e721617110e636301b737ac3268252920c578e18c50b8517c34b38117fbcd282392c14a61dfd30b5e15e10f05fff96f15359a73b8c29ffc44233ae49856da73426bc84305f83e540ecce3eb1c386572fdf2bbc18163c2dff137c05754a43e50d5103c0d7b4cde47457d64dd2cf1b1edf208e225fccd89a47831a7aeb0d1ea313d2dcffcb730532fe151a2ff28c1dcd8212a10dfaa0a6668e3c66c67e20290b285411f9c9ca55c36369b11548048687282e6bd9abe13f4b621a2545d50f530544602626d524306a97be439004d670414bf69f07cde6d82576533fd01fc9e8d8d40eba682f88f228151d5a87097a8ae33ab845d523f709eab85835278d8c9ff1ba2fa639f61726267b033bdc355c5e4b844fce265936e7cc009a99caaa3c76c4d73ce84264b15d1eb3359ff7e8ea4752bf3cd2c9365ec3f5b8fade92e7c1768814b0566bf3a2633b0f8ddbae1da24af6b42bc80a28e9bc1b601ae1addb0d1ed1666fcc9bb3e9fa8ca2dcfa7bd53c96ff0732a00bb1fbafd01b239796d658437c5a42297c2ef395edcf90a521a2ac2a852d329c95e9c9dac1be1948777f794c8e5c5728d4ec2c95036bd7b8aa5a272add19f5c10fc8171fb027956cd3c9e1039795bf6514310d4c2dec7e363320e481a33179ba5930fb20fb351ba3f4c6b72985f12a43d133530a8122e4bf9774e62e064eacf8266803769fb991cce898cf03457241d2bd7f7d104ea07615d8be80f3c2e86b015be16a7e0d0015f69ce1841ebe279233d661209495a728dbc6949650168148227ac08f88a57f3b3b45b7f99552467076ddcddea388994b2d9e4ad91a384ef053b2f7b5f0815d23c3a5c1de5751173353f88b9b4d8f2cd6335f736a646e370ca66fb911525299a5ee382dd49c2b34b654ae7f5b4ac07ba6af9f3b903407eba86dcbda9113fcd00ec8edc4873ddfc54adede668df06968ce5f63335f3834d6172d40d0a7086c9d3e68dac3efd25bd08d4a72b0e19455696c45f1a8f5ae0356cc86e0712aaf8c32393161ba47e519c8fadc19db8f4db41651c1fa90b800172b41fcb88f8bf6843c0503a1451177303f5269e804a73b5ec0b45e46522fe1f939c2f1b4b0fb6568206524990809edfd450e9412e76498109b7b349379aebd5cd6cc9a3c57c7eab0f57ad011f2599ee74f75ba208a1cdfe7a52a67b9a1af206013d28d01f8b4a5680735c8c6adbc3af20063441d5c4a6a6395da2e97151e92da944494c639638d6c2f1d5849ade57c75138a462d3a97adaa4599db5cea3f03a89e4f6c02a874f09768c5c38cce9e8dbc7c4ec5fd6de36f7a06267199ade0e03a2b9c8fe1bb38e4aaea819d9bc2d9a2023372d264231bee7da2f6b853f3441348e9875aa784162c9def07ac747135f445b7645e713e3467856f35fb4179b01ebf0baaf840f4b56681a537afeaf1c9a6f86fe6a9ba6a3f4300d222b9811d4d61f03a8edd7d2a4c1554587bf1e82f97a25dd5b3fa145ca4d92660023734ba7242470b7d784284002e3e4ff3b1fa12a50c159cafc3446747f57c860c7d1755273f9ba906f8568a650a9dd4cc2a31502be833fbaea86bfd4c13a2bc8b713d68c6cd0d6b0ae7ef14dd58fc68c558cdd337318365289c7e5da57bb63422e431d86b5e7e47b71a3d2340c619f0598f5af80e97a0be519d38b03c826ba8f87fcc4b13f8827baa22c46598861351595f8274688919c972b884882026ab739692f9758d12e5597b8e3f5da9cb5a7d903bd8030dc468b2c4b66416dc56ff18c20c78f018d7102bdbbdc9189cba86f9eb1f57b6211f9569cd34737478f6946a2fc2f34da0573db8968690d9ed0dbb2cb6bffaab6d8b28eecd6220c067e1ae1c5e4c8eb2ba179dd4c56860f6f38f5ed3f0fcbf7e7e67f5c92bb9db439b4dffbc +result: pass +shared_secret: ad8e3f1d0b1d2640a6f879f697c81f353f8e5fe17d0d09bd5d21c068b0720147 + +# Rho leads to non invertable matrix +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00dfa8bb9d8c58e33260020a33fc04021baba0f6375ddee4a6023846a2dc73eb69758edc915ab2446b1c59fed89bbb86a9be2242c117cb719274873c8b0a2857e4076b3a792965011675c23deb8bc0cf7b2e3ee38493461f8a2068bcd899f1822dfbe8444a612f9fbacbf87a0d45f98a541c5141b230be12763a3563f5d47e369b65c10254e5f63934a05c8ab3409d7b4207dc423d537abd4404a9ec6afb1cbb529619bee740a4c71efc952b3b871043c24c0c919f74f508bc23a9c1ea8b76ac449e28379af42bb6140d376c9a4ec76b34042c7d711efb559c8c87170662788b4cc907e4882d4332d90c43175cc56eb943d589a30a5ac1ae312aeb8432a1d7b2f7448fe0f48ad069989e908d28616530246f8e817aecf6ae638acd7030a596d5be06964eeada35f6175bc0d20c26636943f1609eba3b8852531f083a576231c9b222a9f96ab1fb79aa0149155881fae91adf26c4f1e463f6f603511311351c6c1d1832f482306d66a4a2e585b7e223bd539fc45c5b29558e3110cc268356edf4bd0bb7ab955a1d1ea4113173c05093259a84c8f055148d301f1c72c9eb2ac6e03b8ec47b955fa429b138ab9762705ef19cc3d4019947c53eb361b8a6798ef219ecd086464641a642660bc0086bf97691e81d178007731511bc632097e08453fa02e8a2cbe9e858a20835b8090f56119bbc000c69f0ce0fe49c4e80b41e040f3f3c84388c6eb5ccac37b19420139e19f88b0b99214d06ce660b844b0604b49222e46136539c7084260ad0786a9b790d76c5132068ad6d1763c0207392760de1631783d21c2459c8189c3099245de001aef30a5bea95609759141e8458c3e660aeea2a3f721d15302e46e1a92d213d1ed16168f71e9b21b5fbd62355fc8e696c71eab7cbeee9258dfa4c1b876583f56c6bf37f770aa7c3e317f50ab01a7bc9f7a31d8babb0c9d2083821343d6990e50a06a33985af449c29340b89a59192b37a2a7aa3fad830725aae61c52b5932a2d9eccc98612997a2b76cb70094e62f4c97279c2044eb5b624097c4f2d6a6232b526b582c9897a9ac734096d88639fc4adf548bc9f8905a4a4d13aca80e952aca037cf71151042429a6f30e3f67802055b217900f748844ddfc987623b27e21c869c16396a57da38938625b9298d66d1da767810860df4768f9c26cffd4b0fe4693cbeb321ea69243fc0e0da0948e5c9ad676c058826b9c263c4587b104350e29fbbc9dd91e876b40396a67fe874177dc5013a18c9c1195cf92436c03b0e06b86c7773b0ec37aadaa7bab6214bd296ee820b86d4026a5b13bb0d79df7497d1d27194f3450bf38b9ae7a18aae876de5b74fac93afd26750b9817df000b89c113ae700102fcaecbb2a0f52035c6753be93ccb6e51c6627ac06a121d55845199a69e9b8b14f4f878d7fa9d3bd901fef7b250ac713ea823eef11cfa041bee03abee508f45a828dee681c077c8bf89433ac4c58035a755b27b495678fb051282299f8658bcc5567429798407192e8ee59693853a37f54893974c4fe64bdffcb6d2c660f88c8f489c4ffe716e27d3a157a539a8a6c1c5045fa93b7ba5f0b426d628ab6a1efd92662f802d9287570dd962f44c4a8ff37825444031ac27e26669fa15a90733ac0352819722724419642875cb1a143b5b2a2dc8e31cb4aa171798181feb539ca8407e06120ebbb2aa5a3bcc4600ef64577ed0bf315a05bf4513e3739282732c94997ebf91ab6293b909d935de20a8939071168c10f1a2792b4911bb212914e5781e3ab5b0d1c7c1363bda387118a2b130e07bcf4768c0fbc43cda2d58f44fcce9910deac4b2d11cf89285b1a604b2d6b6832ab2449c35fab65b9f1b6a22872858dc8fa6923450975f55bc7099e355416768af41c657352eee743d51da6133231cdc5c2db54b59ba6b092b63362ee2bf3ffa10f1897b75e329040c31bb3b76440ccc0b6098930072a1a95c70d0b5bec7786c3ac69dca40ffc687efb75325a5b0f9b67b642007ced66b31745828aa89526006be500edc94c69d9351e9139d3d826a3da4177757b100460f0cf223c23680bc233de3ea7950d0b21a3949e3e278a3c058f9eb7751a2ca35e35f88f121646774960574dec686452732d2ab00c863ccda19698456a08de7b4e129a9f2fca3615001720406d3dc90e94665d501246e446cc6225ffe44c8dedc908d7b28fa1437c95323630cba8944c0cbdbc7f1729919795c5b52aa1974647c43297efb030a99a6b0d5a0a9d3679c20c28067786f580506318bfcdaa3417366cc9c93e34488dde73652a6b9ac562747da8109481260502fab5c1bc4636c9d6b555f96462e940cf0b58202d049aac1a3c87b5d950b6701846e948550bb8199831c461e7436a3713c77c0662ed009df341d5de0b697770f12082f04449fb2868a69c68ad14c941130967f0b06b2bc91c0b840c43c20e837147775853d3baf7094c51ec86051b1ac73753f032374e76cc5eed8a0be466c9fcc1ee9a80c04b566decc5a448753c2535fc9c0b3083716d5b049f89c9f191a807b933c2ab912b7127b4ba04c85386372f6bc5db69b972821d54867f440c4697220a12cb5769cb7495a37acf99fb0451f6ac7807087ae83a0b564924e84428cc94538fb0357a7e222f8606ef0404cd7e29d2a4ccdbb22a45f9a7a51499f9764a063788c070a93bc0766923297fe438c6fea2971b887fb4c00000000000000000000000000000000000000000000000000000089f2311ece0e5169b8ae5c1c3567ead089c11f1d703bb293bc1e32d67e3f3093e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: 20327e06aef57e606fc94d91141d35db28ab5fb1a7a1c0ea51eb1230a4d8b7b0439722c9b08528ac3c63e93c1f1932e2602e96bb51d8d34930df8198269997430826c455c1feaee04e96bc91c5d19d5ae236a2e90cc23cbb802d4075aa7ceba81689bdf1907ca524a7582f7f6945812fb8f0e07b0a6b5bf1a7e879f4cb725d8c2a11df68aab2447374c9721a13225e23ab561301d3e1627f9973a0e37f76a3b4c3f824fc26f249f8b4cbc9d9f5ad11b93a29167d6f6df17b47c1144c0ee807d296c49e36e78805decd1143ad46b29c310b9228c8d66639de571542806115d8e55143139f976095b88903831a5b40f12772a7aed5cce13ff46c97606abe1ae98f5d43ea40d48d8ae94e89851c4b39d4d426b8a1d5622d1bf03d56739a9f81eb4c62fe026dc51edb57874572d04eb5d3b43e4e17e8d1554444a98145e3bbf65c900a7f378e5d9cc71169e5fbd59259f7a57b1b4c608e863bb6dc0cbe45c402acd789cedfdd3200e2c4e9ca77054e391b457f011486bc58708c44166bac944ab915ffe993591341a5d07bc0b66ca063c5294c3de876d4a57b8a9651e9a5159b1e12b9005bc44e757cb141cc665a2a03158308e7203bcb43a5b913add9e7c1f2a33319bd25e8101e9bf21a4a58de0653b106f22249a05f43c61780f9574ec4180a0d05947b0107bfe5bf368e3b3f9c7a7e9bca0d848d7b76ca57bf0876be4a0a97995d00f7cb65ccdb708e992efac5f1ffb990e107c854c5f15b8540db4573cc52aedf1bf5e4350c4418be50c9664c4bcf113e8d78bfa116a287e5f174770e7f9cda3ee4f9cc4f3e2aaedf97f576e0e71282479ec1fd4801e222893ef7d34919872ab79315547bc687da4ab3fa5e8d330a4ebb79be2a2866788f0e24fd946b689998c5226c0c241d24e3c6dde149fac94311031377dadf8fb263b9d8e055824fff8fff07820fafae7aa9477e42fbf42ea1332eeb572c0070b48ddae20822b45d491c819756afb5fd6f9564d3f71c043229cd9588d0292aecaec74d537339ee37cb9d2d365ea41bac6a811c41b9946dc1963bb6302c6ec01627dde1c2024d5dc9f9978cb963dda825a3bbbdd75dbaf04ff70f8b905abb70bf4bb4db15467de1f37e7a22109395f7b9cc60861888c41c8efdff5942ac6758e8466029cb6378eb4b79ae5c47b8c13dd9176d64010c98ac111e9b9ea8391a1695a7597ad38c016d3d28d44a22847c551159ef9a473bdb98179efb294e85d7819e0a100fd2ef92a0ccaafa07e5320527dc798886a4e49911afeff40e45768f18fbcd79f6204f17bc19cfd6b86f0405e0dd55ce4ff9e092825f0d83cf3a7767c49106dc3b996d011535c316ec78433810173b1cc8e280a7e23d2bf2bb615f3ea576bc8ab9c7ff5cc7d79cd093cc031a58fc7d8b98e7dd127d67696ada28f14082a779398ea6c722331783e77b26a2a496d484ba8986c497d5a038542e192a82d1a1c5f02ed3afa81ebd6348c06a897567163377bfc9bcb41fc3b0a037565871ca9693b1023fb0aabf770571be26e847f9ef822681ecb407c467309b118c24243ce1b64b060d48ee545c094d66d032c9249f877a1b034e9072e5aa63d05a9ae2e7ae037b70b68e0851ad8d99f3a6b6edca98f24a4070f89c92b786db50802cc8bb5d7362e8a17de3a4137b01269d53368836ba7b7e9651f3073f32140a5c86d88ea06d8fb488e20d721a198d43fb530d83f9f67977997bd24af8bbd6469f377e8fe6d4021204869813e11407a310ae89381f05b30257c608d3b6c395428fbef8c5d28a4169c07885c3858de23196e2e3e67819e50fb0bf45734d1ee5e61520cbead2f716f58fb7695b00cc7de362a149eb34ce562b93806c78efb67a62c7abfc5f2a7722f48c496ef6d641a710fb5dbdc0db58398dd401828a6e5ea1387386e9d67fec705df55ab466e3498b1e7ae78fce4626e440117dc16a5d3b849a60a3b6e0030b483ee04c7513c0effee19e63ea7f148cb8f4de75c0ff450bccc5cb85a3187881f3b396e4cedc685894d5ce799320f01b7aff4788af6e90ce97165f3cf7e9eef7f8f86283a99de3864843c6177a8cdf90c50c77d1f81e11cb42da9fbd3b495e7528453844f315b18a3a0be78f3fe0801b1a8f89dfd5d7eae27a8eb608831eefe5cfd0ad9631dd8be45add9da2f73cdb57f062fe46be28462d09c5ee38feafef94269344d765203047b8 +result: pass +shared_secret: 957ed68960e9527bb32460505e0a8b69ac6dc0225501d87f46fa810d98f2e31c + +# Rho leads to non invertable matrix +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697c6b844a5959672b08796868e7107108ca4c30a58be4ff7b37b0402697aca2dc4839dc51a8811c34c8183442711a8d055b640cd73d2caff9357bdd9ad36835ae9d55d1a291e040652d020a905027a616b3b5c63c0be2c1068e9cb0a9b4abbf346590237f96422308ba86b055872e156470b53e35b2a604bcbd2b97849446684149a86d9980c5182f1a020c32b14de18c03cd0633e303bf9f8a24ff0c95d5a65c031c18550b7d7d5b8ec672c3953bb3be0c3f13925200394aabb26090a3b9a12bde30418b997abf310c1724a88b9782418d09552a63e2855b7af2196d422761f5c8a877426976c90552bc203f5657f5370258b936c3706f074c11b3b2586391f4c4bcdd959615a819aacfb48d2c799a9abb182c7a9fda6a80ee50c4a827c9f50835b1859033629a9601b5b8b357913b6de142a501974a0c191a071a95cb8c45fa857736a93400141cc325d1b4518d3ea58a94c14f9b261759281b00213f91652b1e52bbc0c488bc0990a136e8e3b5e20f41d9f218646d43745245ca4c2777099039eca02981ac7be932e01087b615a60afe87ff8d93d807589e1d351a5033aea9b032ae80fdada8fc4ea6a72b82929339f23870e620b836634a0594906f5acabf563c97abc1da988aa4344bdedc707e4636d65ba034a7c2a29090e30f677439247f753ca9ff93303a52a9ffb605c7b8fc142b576f14226c2c20828a258bba28bc0b680e60f43c08417946b77d29ed1ea968aa3a268e54b71531e680c09f5b08c01500956a86edcc05633dcb13e173e28e8c983fa75207b537dc37c9356b8ebac5d401a28a6d937f9ac49c3fb267d9a0ad9386f9ad4397442b05f191314356b431892f590290e488f12bac3faf94ec0389ca3d88924671262845bc022ab0856242cdb5fcaec474565caea58395a34c709aa270955104493832d2805a8e05d62437df6993a0f6cbd35040580871aba994eac37955f73ac8b057060426eb068114dfcbf20441405a2322156a5fd491f24402f8b73ab88f2498b04148cc2835901604674867947c3fa24a2d821963ec5180cbc00bba371fa3879be800bf309c0ce9b6ae90c99bd4b9eed787a539c90b31cc4ac3bcd1d2bad5fea1abfd7383a7497483b089297722d27ca0b325bb09272e4ea1182da4a75cb0daf7a6647b15ff0e1cf4a55a061921e55d6c8b5131d88da828dc800eaf4216c283af147939f1cad02351ac8ba79515167d1d2b582292776c300230a9cdfda2ecda65c1456884a5aaf3ed23c8242a3577913cfda45e3bc2adec6aa281051d0d94ed0320397b7ac724b8679aa29a85b838ef9a3c53021b0946c9933a5c5669b65b789e349055404b134671ccd105b453066fcc9949927798670bb011bc76834c37f3b98d2f992fa493fc3850fc64a92c6c17be8ec3ec5c46c4cb415de2c1a7f42700e415825c4376998522bc05f7a61c77f47651dc8a4df012d1aaa85ca5899f67994303c5e870b38557c05eb2a09069397c638674cb868b028b96e4249d2d935abd80278d35fb9668ac0d9999df99a78da32eae376cef69546fc71e3e2975221c49ab03baf048e1823bb8199049443433eb6b42a32ced9f15a9f4a3503598a43582070fc7492d6c1a05ac47f4a8dd3802af68c4aacd778d7693ffbdcb3f5b77f81a1951cb43597f5bdce907671d43bd4f92f70fb7c2a9a09402cbf0b8798f662550e2413992a8419d6a98e709c2c2caf9fac14fbe558b0597979810d62854205530f9b558ca4488470a39c88a37a152b6572c2c57d337a4b7ab261520729132afd067e08035924a14f28d32f6a258dd59472b5db2c6cdc53b9d766dcc030bf54b62a100cd0dbc9b99760df12ccd1e61df0b624b593b004f6712a13aac6934ba8339fcaa64f5d45c05a2a6f970400020380c320adf23377c6f5691dc96cdcd4864cc8254c929c080232a01b1dd9e7808e076d6e729926e81ef57970447c46f6ab942b90505afbb98edc344c47a3510c358bc63b76ca0ade7589cbaa3800e9278eb16a691a54de7cbaedb384ad97bc04a7666c4bb10cfc6ea85855b1c4c18005cf4939130b3a4d55a954805616678671a6353d45bb23fe847dc992cfef322484f7b90b3a45180a214491505ba24572d596cb6a48dd21748b770ae5a8559b287c76c29f3c5636b4400175b8aab65b91bdb09d43db7cc5805673c5a3c509ce77184f4d5ac4f674c0a602363d984e2bd8336d7877b436b6c0a8b68084a7cab956d300c498a86d49965172a78972844f37b5ab703731451854d7558f8f307d74a967282bae40806597ea5984899b54d31d85d159ee245a85ba7181c5bb051c49f2391acf60cc7c211f88d11617bb4a62446c635cbc09165fc590926cc7c4b67acbdca1804abc519af0c7268c0a3ab92123f15ec9f148517162e6d2a1083919570834cdbb7d7c23556a1cc11a55760b0470e6466e595a43a25b27565524618a6f0853781808bc14a97257b6ad9ca5cae8c294fa26053dca2c5fb300e0982df766882d80b33af645688c7a57b5b1a27526184083af969aa4aa5f52d9874a09b8dfa21cf5376b8db101b2b218412a400e02aae7a186f3b226fc018701533ae10c37b3836bcb829c7137a6252c9fd73723ab7169667b8c8ed4401724b36c71c2c8e56dc3785379a55219e63b4f7159dea9225c8b51cb4c8e435c3e19b7413345b12fa3a0f3cc6146860acf104ebe31a52aeaba9a28000000000000000000000000000000000000000000000000000000bb4a30f46e22141ea3a31265e632fb940c98d0609e8306ca0c00b3d2ebb259c2c975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: bc99921d5e80c1f9d343ff32fb4a40a3706f750c4f7b0ccd7656ab6111f1ab8dad341e30e9a18c570d4abc4195927cc24fbfc57b1467d82d2d0cc1b7a192d769190a29d0e0ff672d6771910ecc08b2e8559c8677cb8c5d2109c07c67c639db57d9f83e0e67e2347bfc266bbdaea1436afc2ffac8c753c33a8c464c2652fd6bdbb7b78de3c851d98c5903a26d253eec7af773f7060eeb34f721178f8f6b4fb48ed18e0a614be5b35d9059ff8f096796d1c750fbfde317cb9bc95b14a25fb919a9df07d19aafcd52dea0a9b37d3d4d5fad67bce77f25358bcf3f90c09d08ca0afe83501bdcbe63160b7c8fdd8afaa7ef023f6ddc2c966118602cbe64a5450f1cf3d62d7cba4cb2627ab954f65f628843fa661b55a9e3f0d8a1c710b068625985405b29ab4472a4161183795032966e27080a8c3042d616807b49a68f9df5a8f466845b0948b1ef85695a631bbc503f8113318ce81e436e4fa69749bf38fd1a598e6f15f0412519363b76a6559fe068946925da95d5d00707ba0da8bebe3121f859fcbafe80796109a067c4e1ecf970bdce85946830b783e9223dda9ebd84ca91ef9ef096e3174785db6d4aef47043476128313195cc9fb3c009c41a2b859046f9494d37e057dc0723b17d7c1ed99c9ccdfa0349229151b584081bf921cd7bdef7215125d5ac2d2764e1d0c5671845164a77bfc91be29a476da8bbd5bfea6d102890fcea3757d9b323d12aa050a4653a93f5a29f2cdfb30e7df5d36f8dac610dc401b0f6ec0f63a022865f10e119b68c017d083ae4dde05598e02cb22f2db9c69372e23cef10e92536e11fd69baf27e41b578864c7f1a552b739b3369e2fbfdc7a7b6c38a1961cd717c4c8a4ad0d3da4e147766ee94857d0914aa7d18879ec6c5ee0cf747094ef3d681699decb917280bb76874e90c5b70e8f2c3739a22874dedfa8d8b1c5ef0cb72e67a55165abe7c3513ff34286ab8dc690b95b914acde3f63bafeffc2a6672e280acad66e757bcdf9f6650dbf39035c2a0ba75c100aeebfb8d0763074b191e6d6ad86d50f945400568f61a4e8b400a41a336e1179934ca181798f159278146dbd5f6a49481be03dd9538539dda5cce2eb4c149f9f7ef0f1ef5488c4fae38fd49c07a07976ed93e57a8f978e7704a1b316e4dc3482e6eea6181ace8e6fcd37cea7357740b9ac7a3c6c4cc3b1b7f27f25ba500f7b430079ace631bdda634e421b457fb9a951616ad2a15e7fb7af4a9d05473d94bda20fa5b97cdb6bd54d028ec81b09757036bdca2eb2fae32a00a50b21cbf7b2c9e0206ec617870bd18e8e5c05c4d93ebb88f4376f0d4d8629f5e03acfc6c5903564a3fd45529ddf45448174d2b9a36dac4876e601a26b0830546d3232cca2c2a4a5f6f62fa9f9c6c8a88ba83417487c2f838dee3657f4501f46f99467a738ba552ccb69ce20fc576722a5736d30cd2d6f3fa2e6731db14f4db0ec60fa134d2cdaceca19aaed29ed3c9905e98031470e8f06e5a95e25ea98e712b16028fb0641fe92ddd6012b05d3a2910e885135ee75fb9de08ac97fba4b42886bfbfdbd9c831996ea58d3eaa0cd712602d65ff8798b80001a5deb51a4823216d85f8d79eb85bfcea1805571a048f0ebb6944b8b32988014601b161894f736ecbd4ca149b8ca8297f8bdb4d4467b776e96df55df1ff8c192d7632fba09959e18edb38256f13519ca331e61a11c43a1f83f0fc668a62a467d3aa5da3b2875fb0befdb947f57e90f9fd9330d6a8b691038afdee461737f4a1b21f3409c71a09f8e5a26f4b82e7995872c13b023e2afd497eb4c95b949594138d4c52edd4cb446974e26740327d9ce438d3c7ea4e786e74c9981fdbe6a8a63fbb814e17fdf517775ba6946f9e4f802e39d03c829b87a68abfcf25b6b5e20f2b6b2ce53d99eef19b44bff5f76f5a055897a9695d6f83e7c16cc395211a672639134f960f986c75fbdaa7355bbfc1f79da427ef0037d4ce4cc52e972c03886ea3e1e9e66ed98033ee579f951b46839d3546608820bbb1e4361144214c27907f000c5e7866eb2ab5c3902395845c5b3bf14186eafa490d74dac8f1be75904f56a385c102ab9413022ab6da58d2d170dbad5c2a7c935a9c0190bb730448fd3e50dcba8aaed162a4aca6d4d2ecd8c9879765f87d6630a204c05772ca873fd78a7bedd4b6217d3731c0c51998cdc630e5a256200395053d0 +result: pass +shared_secret: 713597a2ec9a4e0cbad958bc8e4929877ae01d034c78947399b9cb1a383ad7a7 + +# Rho leads to non invertable matrix +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe331704aa56092a4204a2293e77935390cb1d2b2924e0bb27d4aa471474fed2b6982b71a1c14b2cd3ae12b12d5d12919235caeb8aa3827c844bda40f5f57e5f59c75c86b645224b3a861eb9d9773b01cbba45122bfb1e4a60ada0fc10f133c546563661064adbf4a89117657366789cfc282f9bbdd0547029c92aced02963f8cf462326db19bdc980149ee0823ecb1d9e22a5effc6cb588b17da70789d813b749be180457e82a5c958b069551748e12bae79cbc0dfb5ecccc85f565c22eea1836b52435b023959b4f4fc12956a09f38d58836891c4c2b0b4502b012b868fb9bc0455c12e83c182f1637c05469708279b1f4af2c275e174ca5ed0a12b39849f49535b8ca73089acd5067b6b57297327c4cdddc7d5c752a5d2cb04c659d04f803c72507f5832e7bd528e903863b932d80c51e8b2833684a084c7100728ca33a4304c85b8cf7b61412e76373566c34a75ca88004cab21a3274bca1ebcbf34222e351a3df4b557f09904173065b460d54210511f4515180b3bc0a87f9125a0a91252c11461582ac34c94dc4828091253944b84b01b12106432fc87321a15688d6114c5486aa6d90338d3260de15633028a9a2c501e3e7a88747a03bc4c41f748778fc06adfbb70dd01d706789c49b847b12a2e369341c7b5610f2336730cf1c1bb07df6c1e9a035c6da4f01ac38570256ea0bbe73832f2ef968635765e7b9c823fa326b57b1608c50cb552c5c4b6b509abf2ad9452b76660e69abf2f172a117359b40cb7e972790f4b9bc05b0e866474ce6c2e37a36d74b49d400ab37486e47597afe6a08cacac56a654b1c56cc2dbb944cb6ab12338444d15f0de20265b57f3f7331ce56b374d13d4c89213117a15ef15ed6356778a6a6579356378cabf268be41466fb82c20845bb5811a2ac3609f3d556002148dbda989d8668ed8c26563595da887c657c915bc83923b46034af134a6a71e09992182310b061840afe058556738526469f76b91ed6081bce143e5e223e9a425bd645689d37fc867006092a7305a44537b06c60b168d039751e6b015c7c7d652ce121289920bbb1fd30304124819121af20600c4f0b261ec014153604140a5b8a97ea49c6c065429e08781c7377b73d06eeb909e9222007a7436a8e8a28edb7ff9e78c76683234092b6c97b256f2942eb01bca52a5f192ce1b890bcf0052ee905d66bcbb7ff44462e5c2a92a58313807b884a719cb07a2d8a3a0f5c2bad57cfa692a3d01345807213a2b5cf6a1234278256965464b48bf96fb6d3d0980d2c89dc3171093e80b6fb7391f203fd0e77475b8c8b8e913abc7066b5cceedda8e97acbcf3c6a1b5a590ddb0265b2abd5df28c8d7cb1c6553049d65808a0021d671622f45a5e834ba8498f97a10a15f1c8882b8c28e31b1187207bf5b6577053c5f7af3839bb2997bdfd761154fbc683c68259eb2e2367b2832a0c26a53b6abb06968a05ccf236dd8aaf3422c427368400dab1683832b9c73af3f63827ea16c1bc832f115ff3d00eac20cd353687507cc6d8f97ba12941bcfc714c735b45aa33dd3451ec56c4bbd6c363b3b8f65097d6e0ce03b29fd5039fa0f2a8342514278aad9d4807c1b25fdf035596f8548ca85f2291207694b949b42b00fac43cc6394ab85c0a01c583717d900035463acafed05f6717057e577fc30a92567a080fd942816157146a70ef3427a71478f404c4f613266f95a552578af3b4a7bb8383b1f20a6e47157277a7277086b0c38dffcaa911a1725fd34b04d545cbd924adabba3ef705c6e44c885526dbbb55bfc8a772453397902ea9a2b279e379f65151fc3450a1f471355a97ac0abd0af32a4694cbac06c32069c41fb6af17d684aa05a84689565ec05292d61aa374044485a507ca3478973b11008bcae4cb0a2975c2a471db196dab32bd71397e87240043b1305362a62fa6843010a25fca317993660b705f2637988494b94aa9352510b0bdc352394ab627e5937892aea86ac0e7eb1c5a2b2eb403994df5bb8cf144f3043dfad619e0627c2e661b70d1c4bdb30401ccbba87c1e8e0c1a83802abb5910625344174b6813f89191d23b61f3aa4c458a1886233aa29d6473be06f0906b75b1f16b1e5ef34dcc88007cea76130a70f6d1aae5028ff71ba38e047f02fa1956e7439ce37d13ecb555635e3644cd8c51b53db31a8254b2698a76b96300f7a14847c9ac372820ab779498b15f965831965c158fc196f56aa9dd37b0972c834eb0705b266def50b62636546b96a87ff666b1d5aec3e52679d4ccdd5c9b0dd50a7d916bada24eb6bc0ad94b9ffc986a4899303fb95107a90313fcc3fc0374e0c53c8160567f577402515624d84b15a9b4f18625c7d732aed4c64ad4766945155657b93a81283172850ea5417bf877e5eb95d739079377913529657dca52c756779876954f864b7251a255dc58b723b5fdea551aa299ebb8af0bdc2f9ef1b78cb42401ba62fc1992c5ab95e6288b584bcca263912c25a72a69a3d895aafafb38904a7ea64983637773dac77f0752909161833d3185c5d2824319aed09b0d27eac30bf5ab3849cc9041c7c8bc92e0c0b3bd657e2074963f79a4ccc42ec823c8b0d302d85371c4e928e5cc9d11d0889834622041bc971ac40e00871b27cf052647fab656401782a0685a800850100526cef363fd550cc491225e4c4a0ee319afd39ff2e2b581f728cff590a5a60dd5e4000000000000000000000000000000000000000000000000000000b097441d1eadf6b43e80f795ad83255273dd5995bfb1218e563d457264bd7b43d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: 51256f7e688d03d9c716d923b01f95c6266ec20da79ba4dec7268f51319e8bf0b37db4c07ebca73a80a06c25458e7861dab9e675c67ca9ab940dabb117a7e2426a7a81be3dc6ceddd27f073c2daafdb9162b4409ba741c6f16ac6892d7d8b06972d39f22e38c6f2cbec7f0506a5f86c5fc708a1d9a36391019c6ed9281c986103b6099f87ac956b59cad12f69db134f05d9f8f641678da42b276e754a31a77db16b5e85110235c4a4dd8ad1f6be34527d01115b072b82e007abb4e8bfbef65919c4309b8417c4bcfab963ee1110614e57b85195359f48c5c471e24fe3609a5314b5854b695efe31aab0a07d29ec29a8030c2a7a005e3d7ce06a23bd240feeefe6320b7c994fec0134bcd88b2fb91ec37b0ad802e45003049024133f90ccf375abafc7e742542576b026f71dd8f00e8f790178de9912fa850d6c24830354c4927d711a3314bb389fd01341c270eb1cf2626bc19042955196358421c559a107d4274c9bfe232328e9571192f2209035c425224a240f6a9b3dde07b6fbd18eccbcd7b00a6904a801b0ee93011644d64d0c3d58c0f9699af2d4e7f9578aabeaddbf8257e41c2512a5e566577ebe94699e00953126ce91674a772108a433c82b05524c1ac742ae513087f69e67543b93f03f8bec5e5d8dff5251f4bb4d17e721fdd7b9f6c06121eb53bc06a730d482aeff1b09cb6824eb52838d85af90a685e4178e76441ffbe7aa6fcc3126fde29193aaa25cc850cc0e8df7c9699584fedc15ed5e0e7d49f89efb61ae381e3adefe8eae1c6d6f71ecdb418ea36a357f20ebb4faea2ec2826b756daf9a4655102064d036e745932fc63a0fcba1d0ffb99815d03dcaeb5c156f4229ae0b07375cc4d8a9cd22a583c16114aa613dc38ebdb8c06721d32a6293aea51dd7d31ed3a101ff727a938bc70d78f08e3847145c02f4f0f8635be2bdd8958c4265bb27fe915a9206e70e9cf9979f9b47823708102ac1cf12863ac7dad149134824d3f23a621446ad907549b082ab099815e1fff844959bda476ef642299652f2bc801a26b9d4e5c212cbc1c1f23f23aa334300cbb73bcb9d43344cc9b6bc2aeacbf90fafefcd483b791fc3e310643f910de193c788c702f359cf97ca07341dd6f088db0c435bb300f23d90ad23264f9c394d56bdccc23665ca8f802e2907d08e7c825dac31520282c1713701ca29a3175157d7060bb9244f4a54ce1ec2b736e73aed3ff4dfe979e89e241b578197a0a8f37f0d811f429b5b1246ac2205b657e7ea051890bd62ab11c34e1373e8e48d449ffe08dc36e978e4b0530411d9249cbd5e38182e9a7922ab0e51f7feed86201fffd39af6dba54d3129a7ec700145f819499d4bc2d95a47e09e3429a5803f0b2f35d9467671336e3289eeea89d233f9c2a3562e277a81af46d00417106b1d7257b1ebc20cbf7c09f8a5c4f035a314be27fed58571d77ed229662c946b233feebab9e14891fe6e8295c945502c114e6f2117de50fbf7c116e5e151b12aafa3432a2532f66301292ee764cd9dc76fe93dc395c110d400e8d337541e94ea1afda991ac7309de1149dc78ac843317fb95eef99e72df29a0a88f788eab75ea8ad1dd0c2b1d0ac644cf180d022ea8e0b7d7ca12f65d0c1647b2267b971ae1a7d45b3f5c6ae5b5c239bf3b59260005f24cca25a883245d714ffd87e357d987a49ed565ea729b0c9424aa4116eae2e8ebd62c69fe7efe6dee622d83d620ab2a53b24c82ba9aa0406a9be7139092cf97db8fb4c5647bc14e3b3890d482960c7e8b0422e4757feaf66426985d07a0cc39f51faf3269fbf2d8db382cc35f5845e7dd13df13455f4b3ffde636acd70c60e3f3a814173ae1167a69d7af59d61ef0bb800a371e79b60681c20882fe80fd3e6f5cc21b03b0b70686e8b62e5efa48f46b48e349f20b3f0b4212e8eb1d7b2120c0a0fb8f11852dbd144ad22c549914ae1aeeb990a317a6c942ddd07b023352cbd33209326a6ce4d751988a4c7ceb6e7f718df7e9edf6e2b2675429798b013d321da1f0e0c2f50b2db93d9d451209b4411dd6eae8b74a63342785dd492103e9ada05d797ee2027c9ed0837a0f4e9175b6b508cedfc44e00c944a771e40fe4de1e609965a08e2434a4ff5ea969a43274105b631375c4e3b38a7f40c26f4aa202771ae2a9179141ef005aa18a64d6e97ecc1270be6cbb9d5bcbed815b983ff8c2c99 +result: pass +shared_secret: f1b9f6c6304614a31639f9e63a019e699257c5e60ecd5cc9fc950355e0981772 + +# Rho leads to non invertable matrix +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960116a338d74bbaeac359ab3728e268abf75a8d30b118141bbc56670dc0c5b2d05c9c2f03952338170754e20287c99177c66b810f009002c244f213891c5b980aaa23d15f413d4a80160d24e692c450b68c8c43ac60256ad748ab6aa85aeac5c623d199928f88b04ac7bad2c1249c18fe1b867a02a353a112ef71368eee3210f7082f8b216c975070e9a1a27dc265698bfe4849611716d0fa1b1f9047e8b0905d184b1fdd863377353fae732a5d0388c3c6606a773360734c9ba915d49aa7d358263d7abce563afaf382976b2ca2e1328d4aacdfd78851eb143a1b81c21713442421bb1abf77ba25d4355dd10602ce06754dd9a77aca0e25b1260e994d0fe1b83088a5d385251ad5c6a54c45d93a7d1b25cfddc1612b8b30e753814b505524a5b0b26747645c9b636543ac7a871b6a7cd3865f1d8636cb5210ae9157b567b2ebd17fe3f59b73379d086348c9806848ac3ccc1547e8964f6a1c4b532787dc8620050b7e628274683b79e133969ae154da157bbbab159941484cda4108c84aeef56a54c26e3a0776f2db61ae55ca140c1056156469333834633d88c59aa9207774343fb3c0bec2aa0c60f25a1761337e9c3823a3965028951e114003dc86e1cb701b3112ea048672e5be40c6b319d88d62731a02290ed9d7429b71afa05964a5f775b855a271759945532eee7a1e49c1518d0b3466d2c5513bc84a69a0770b8f506c5203336691a8189ff8672efc68163b895d7a77b4a50668ca1ebc4bb703756e15605ea9e9c7dbd398aed773040ab89639aa4d005638a839a1e47e113564a33889d72682794cc68304d0a21858def7c8e5d20cce503909bb2064b7775db64c8a87a9e3ec79580a4493a0a845db33afbac74880888dd3070dab2ace759f777c03d0194d23a3b655713932570fb3686eebe97747713050868f72f6537b1b1e80e0a84d24c4a9a888f5b7c3bfd9380362ab98806812d07403463c9438069eebc541e8a8afcb93a18285d0f1a319e2768cf1427123ab458a71f3a44002b93cb84b72856a6688b99be6f2c764f81af231c87b7bbb1f3002705ac905f9be3d4aa584b98927902261f2c8bca677a2a77e8821a1afbc2b227603a75c1bc98aaefcb22fca6908ca2a8b28c813702c64c8fcca8af5c29e3893a1d696e3609312e0286c47bfbd2a562692a8fa28b17865aca8a7b00bc1356c489c4a9c11781c5f465c7c547b1cc464b5e56a84fe104501399a5ddc47c8b3ab0914584bb54f3c7107dbf0a3b8404e35fa22f3474aaf6b24ab562d65654e3889723c201d68f0ca9074769c15613319beb2449b4c2cac246b4f4687b09205c239fa839314a1d90a71c0aa9c74423873b08904a263adf2101b02aa222c2d06e42819094a60fcceba022dd9f50dbf00a96a76528785830fe453d539c2f61b0c999cb90a2bbd3db831cccb813ff1a7a70ace99976bf4308e2894cb4232441c0a094dc78334e2be9e6a830eb9c6458887217a1e6a7cc679838ea84b41e5b45066b32c69731ecbcc4d73f68f964958fcfa6a64b8b05171be99a78c31340486174566f4bd108433dde695762328f0570fda1cb79d60c67b510b7b34b0c341ab8cf8bb70146e0cb2036799368ee78b330a9288625c366b0b0d9a1eadf917b2f7159f25c31d34b422ca5d70d93de8e31b7a6736677c93952807314a2e58b685fd926b4555146ba41bc4f223b42821bdb22a99527699a7c85eb52288a3a4c56296bf20c2be811830fa689633887b8512723c598d8b1f9e88671fe77d9ae923f1b85973eb6ccd7cb5ee15b34022ce5078ce171837472101bde6915c97150b3b712f05435cf975b24b51e2395ad667c7f38a8fb3abae833a939b1a86f4545b3b55119c10a19983b089276ed7ba25c910a726ea3ba02344d33cc666a280bdcc2f99e3991d2491861c3b295668cc0a5c465b1e00c2be482a57b9c4475b3c11d9850e6684768091480e4a1dd0d71e88c17456ca0049d209d1e1a92ba4331dfa7382e2852c98390d4393f4016a98d59ecbb829a0f4b7261b12ce796844458fd393ac69f050317b66f7208afef2113e682552e81d99b3bd8bd30648b1a0bb153864bb7293233230f0b164c1a60d834c2a4a41bca495b57c02113281cf484937745b4ee90a55662860306df33368d7f2390c2b600b0a0314d1741c1a1cfb0940b39070fc1001142a27ff752ba7fc83e296cf62bb76f8a3b06359705ef1759702ae9623b6d365344ba2578ff4c00a4cb48db88e9c5acc8cfc033210857abbcd6132140eb372b9c3c1b69c9fed366efb33b518f99c23d7bceca7cb6b427623286f14b55b6fac869e8a229bc342c96727917a94bf29549c145fe9d95d35e518aa5776ca3678460a49bcf22035d981a4217b6044af11c9710a26466be948f177820d26957573b1575a09c3a87a13552f16234db5152dd2fbc764c88525e3226e2b5ff5571890db75458363bd8791dbca67ae112858908a4ebb7d0d847ecb610541c0791ac73f2432775207a73544491b7a5c03199ce3010a05f764a09cb9afa27023f72d9bb0b3252673ab714b792a35a78b0cc1593f4c5582406b4d44f6c67fb06972fc7a30e937d8c7964359376d896e9d54c05eb6864e583539a348e6d3abc256ad6443013926831513896cb5636aa1062f95bdf5b0acdb49a72581b6d9369c02234ab3dc5e3b4419f27318ecc3c7dcc60ce888b787a3458c342cad1c0000000000000000000000000000000000000000000000000000002abee8bec42254848914dcd794b5a37de56f09de31c30871707a6233f826f46fa9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: 6d7218616fcb7c0a8a0ebbc738afeb35b63c00897f8557500d34dc984338ba4d4e9a4228063774f6b19d60e68d67f14a63a0777c4af4b9a0387c8165f368cfc8d603ed70f6df210e9f540cf9d240006bbabe17821d46700b8fc755c5074d4e558d80230b50c298b4a813f6652f6ac92427c168bfc6b63df821d1566b56dcbc48e96e6e9de8c011a3f94e8cb3b11e9928a125b2acdcc5323da857ffc0211dfaa59653a14b408635bf1d1a1ac1f614a6946c98d9ef55e8d5f6c66b980241a0f65c14e5e6fc1c116ae9af9961a7afe535332c5f922f49521672e84d5e28974f8df7e77e7e07e4931f827d94c7576dc16b6f8e0409d4eed15ca747112ea1c9c16602799dc37f31a438f7809db67ec184fbeaf917a72e8ce7d0b68c4eb69b3e4285f0dc3d5494b6ad0e6c9649b75f58808b8cc54258837eda14de7e2f900e8dce47e35df2b529409ab78952779a1006f81e32726d9a6d5a83e541ddb249054956c3a0ab4520b4315b8cae764e42c97af4876ece118e0392b6063a8b38c89dbf8c4e1f7de17aaffdcc9ae30bc71ab4b25b26e0a2526ecce67cae66c6eff9b9a11e8bcaffa5cfb21cd5c576275b5603a852aa08ff1382cb047b1bd6519a6fb1e505fa4fdd06338bc9567d78cf1deae827587006e220777b34fad307a61e955673bb539abeab976bfb545c3e002d5af5581819aa9c932bd2ae210ca29dbdeb33269439f1553f86d44287726d74690e279aebaa526653bc24ee5a94fe70a83c46378d4b2aea5f4da0ac4ce75aa7d21072746a7bd5a4aac231c977e9365488410ed78cc357c9cf36c71c8608b2e233e37ae1f169b15b9b5d5de5c225b60c3ea32eca29501da353218b593c6793829f38a852ee3c575e468734733f8d87f677b5e425a2f96553d554dc52a8ca96b1d711406e04b2d12c0f089ac1001b00e3ab5ca951091876813a1a7fcf4fae9859991f8abcf40bd2430326a0f0ee7582a19416bce4a95f486b146283641091135c7d71e89ae8f44daebd43c7d179be2db238ee7f7723ae782eb4d0da34d35dcb4b8831617f1c82b10dbc8682beb97d0c58d4fafc5fbb8720cfc7718df0883473867433bf7a851a225d60c9e76dd7a7efecd15534dd0e3d14d64f86c4d9a696c61dc520fb79c2c8cb081e72aee2119a3ef76c4f49e9616ef6a85f9b779f99177e0ef427d9a6ba6465f230e63d9700855065b4eeb5ef471698ead0dcf7a55fb1ea54073bdd1d67dea4de22469c317984f21fc421171fea81ac872c779c62bd4e4e8f1ba4faee4e701458a2e21222e9b45b3ba2789d1ddc34bd48f16ef6e4625b1a73aef185f62c73b79dfd40ae3d6d838484b3d9a6825a2a4b9870d87fac0a4b2c8af548b47766e3c92f7821484c406b74bc4b4b88c4d7ac536767fa72dbe413e5ee4ff8d4ca83cef9de71590e02d07d9e830ed7f315d542ccd1d0820374c19967f2ec7b73089a4438e5a94c6580d689bd9cc25bd900c275ce9aa450a5d13fa143e2ed6d2bffd5a1ed96e4c1073ed92f48d575cceadfcde1f0a82941dcf4daaa5399b3775469dc75f150ab41b446e2e3e17cb8c89b54be85dfdfaf1769d022332c3f819536ab3abd1d89f9de0b25399ef5872130255cb0572da109496b44c5abc4b8fc5ce2a9515ba12c38c4e6ee83f4d447badfbf5842757aab335b62c89665a1c42f829a40ca8c470bf79c65e29ab71358063594e21af5bfb2f6b53d2c55a2a1f05652ec8773b437d68ba897c035b781b266b90ae3addcd603febb3f0ad2afa0904cac6b9c04ecfc1547bbb0278c024dfea4c7ec8df54d24c4b7e9f614cd8ad0307cccbf298092ef27add01be5f4631d4e1d7afa0d8bc34d0dfd4922abaf5952062bf86916831d2864404d565ec557ba7753480ada5eecd37e21808cb7e92bdd34b7bdbcc0c93f39e9a4f515ba7bd6071c2b9c7d513b98802111c2ac67bf004f211e4daa201ab61bcf174dd83aa5d98ea1b55b19391ec50b299a56899f51cd476021fba5f5f997a0103049a71cb20da170d38bdec4964acff514b0c4fc77c90e8ae331099f6863b551bb980ae547fa41c12c31c324765bdb09f6d9eb734708b6c0eddba22154b3dce0acf3210ffa58fda8ff718f949da8eb7c7fa4a67775834c1fc9e74c5f7f765920f2647572e9158f6bac6e1240850decbc4772cbf54ac754af22d16ab0abcc3ed51bed9af0a936b82158c310ac457d5c +result: pass +shared_secret: f72431bd4d76ce666c68f35918a601983e117a666e5009b4802e904d0b32d9e1 + +# Rho leads to non invertable matrix +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3969fec41d1311ed2545f5281a09df223bc4918e55551ec060dbfeb41c777c79acb7375215002d9afa37b5a126625f7445c3fb51233650037e070648c924586bf7013c203e907332901ff722c35c1991acb2da41cacad4b709ee242a9e71eeb0ca1d05595fcea8d175553ce689ba595b8f98707a68a4d20f8a1fca8c34c3482e88c8b043a9d42e4a9e55a6cdd867e106b271031355bdc71c85c80713c0ef7c3ba3bbb9ad4e32615a2b104e52dc5e7481e258351385f9c8932a074529e327e6c0949756b57ef47094e184517819d459bbe35ac6154a70d004490b03803e58c9bbcdcbcd8451c2b0373656373be77a59beb2d47410d8a8631745653a02956dd0a0fe99ca87d78c273230667f25bddf3a65a216921a12844b8c98c197026e14638a97fa5144b44189621f00c75857fca20342a09ac44a4aa6c336d9ae58a15972f22555139e2b3e00ac0bf67b15d64ca8ae77a79b44e5b47a72ea06930aa9695b96987aa0dfbe63d83a352c9370247f6b21f225e096480b17333009bb7858246413061f4e8aa57f60972f4421bfa448cb92525f41ade71a35261551547b97eaac35ec9607a061483874b19714ca7f443abf4bd34d2729891383cc0a52006a4bffa743cd910d4927fbf792c20e07e9228b56247c2440a3eacc0c231ec949ee7809ae4aa00c46a56aba6db5218c588bc9285261b278b1efc62e52556b130a61659cf09648b57c79647b54ee9658913caa76eeb5c8a6b6eab8a7cf9f2707dd4195fb3939e91bdc5856372b5cd571983c9709c1d854ffa56cdaa34b3c2a51bd0d304570a591f45c2f1e4cc35fb5a00923d71a5acce485b210b39de54a8adf82fd8682fac45430ad513aca5022611038769b29c1a3f3ad751eaf5b058370927e36049d1b0970650db914249d7a2997446e1b746f47b5fe6057bd55801c8c0af94857776d0b60be8a66f46440ba766046a1e08948944525e6d078f1177a60fa3acc2832121c7a428d5cb3ce316a986118d006ad5aa7e54c4c5ab5492e894b484e594b14b8f65752da0239c6a0784e415bcdee96ca0546f81368d8899bf7c372789f62a3182bfc990c9da414e0ff346a4c1025ee1bbbfe99099fa29cb5b744d860e6630c132e521a65a2e00d1561c98afbd434be0f92da317c89926a87dd674afdc8baaf99661c9572ab800e14280b3b08f5df826dcc051a647b96009159ca26f5aa2ccb770b8636b432b564b4183a50ee32a80318c646c7b29d083c718c27ed989535861c385bbaa44b836dbbe49432f63b29bf66923dde69c6d742aa2fb28524abd22433ceb87a4eea71a4180a370305173a8a597aa00bb364bfc167461e33cf4e764d4437e5ea445b7334a31db333fc2b3754bbfa6bab6bec208d68274a4103d16f9069a9c9f6b0901c2281112bca50b475b4d6cb612ecaacf8827b55b6fa8c1821a8a9f602c66cb719c97337c4364450ec2a8ca6b01fcf2420e0b0d27c0bd82a721c74bbe62c5ceeeb906d555ca90fc12450bd0522ca52f4598f3701a50710fa2e53561562e8cfc58f4596cb9c8b8df540fff63359b24b1cfba7ad559a583b04626d03bca5247be964b457bc71e324ffdb758ebbc695b919517e045f6e1162c333c30526bdda31e5f4a6eacab3d97c27025f32e695703bbe7ccc18a87b8e347b7c678f2607e24c888b85454fc738ee0a74720ba03a7651d84c4223b32277b5231bdd1b4e61361a451420891c1a0dba6fc4508119237fe113aa087772659b64c122382bc9aec39bfd2b2a88b32199d38728ca98b259b85df75ca4ee5a671130ac11ccfe19a1fa34954387035c8721e2bec713e635290eaa70660b5b79660334a5d56544aeed1044d6a3f0b88a1c900cc362151a3e0b46cf5a64a5bc38578bad6d0c467028df742be58c3c4c0096c20ac9f5799aeff295f3939ce61a92148ea2313195525cb3da93b30698ab893964d23e72eba952f058c2f74a00081814497a0306a51aee0ac1cfef00b7accad91448f49c8530ecbca5c5cafd66b1b03515a5d6a0ff5a10eceb67493506c8a514b72babd2036674d1a493b598a2850342a52a163226f07568c846a4bf35c502255b9ef4c95c87aa6088226a8033af1f6bd93e642fa8a5ae1263de5e53de8b419ae066ac3d28f159613cc63a163a41b95589249f0747c6a179ac9830cb5c14bc88efa708100aa7a5d2c7fedf0c550a5097f764d948a9e4e821a4c64a125d9c54677848b806debfc2cc5b9c8187b52cff197341904cb21b9061acc7c12aafab320e2f468244852c3720a0ec554d1219561e954752495c423635b92975ce327c18c346b026753a60c5159a33c584a2d297a499a294ef9c1c8b5081f859443f53625d6113ba1a90db33d7b5a32fe399eb0e84e0804adb0e29f4f063892484110121fc6c618a0235a22014dad868ccc55875c37af10062fc8a029a0c458dd80578680757194a75c4350de14100c73c40b616becf89637508074baab38acc741139b31d70bf0568ed5302f3e356dffa01f6da50011313b78016134e4cc15e65206f1ba865180d3f7736076c682566defe87bd676bdd149c76c136d549049990b482860a36e321426e79ecdf4c9d4b0b4953073fd8472268929b8694f07bb7c20f2900db8055893607428b1586c65b4ec7e195a431249a9d1480400d0825c4a655e257ca20175ca47ce081938e724c138592946f344d9eba69db96899f5afc8ec000000000000000000000000000000000000000000000000000000fa011a76273f6f5108afd91aacba2767649faaeafeb78456b5e10131e2e533a053f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: c22bae19c43331e5c52e16ee59188c1fff71f15af20de57409add7604fe7c7a9426ed876726ffeb416a2bc7c698584155935d02338aae28a12625d39b8410b232da09e83c1c5e4b12cdf2a6c540575f232d5e5bbabfc299b9e36f3cd658dc38873fb3d5e9b3c8c292e28b7367299a12dab435bf2eff2602643e13cfaaaf96be846785b3b712a1f7de9f3fc1c340f32d069ead5b68ae6adb183c5d7589bec7e2eb96715ed3f15a336c63b3955fd6329281d069a041a76e7d4bf6d758dab0f5eeb27e74a318c1dcb3a645155c62c5d7710bf019fb0667d88da8d41a226bd45e4b6015166631fcc9f559d405145d49291123baa069febc3b720c2edd2dfbc29145c6665b0a4bd75e95d8118ab1367175464fb7a9a6cdc0aa7818466721f44e6622b40fbbc18947652a1940f885d3977f9a177caa17634bcc528d71ea678b387284f9a33f549052c331ec81398dc9f15bc3f3eff791d31f80324e21e86317e1ceff20791c8c8bd590d8ad3f64b3efdf432efc0e374506697728c84711f84b0f1c1c386f8607a20cfe3177029824df54caff1c525f3b1f8780490439a53a3b0daec32289201c81e4358f8549bf9ddcf2b2991dbc54ee9bb3ec0f7344100ab900a48d0a350546953a52a42d108de591cda14cf5471fc38ca8babad6693b518fc8774f351bb29ea8da5e2eb05f3190a97cb819ef91927e6f1288872a8179a99b0c071c429c5dcc8250d5e9c5afa505666d8b95712605cf9fa557c6c26c574f8fede993ca03ecabaa144911468f8eb0549a5c0f9b7aeeb94ee26d097d6b7bb76360d4d5091feff29843f256507f4bd743a5d2a50cfb0d0d439197802a44f53e74bef67695bd08f242f51d842ecb3c24a05788c75315a54e1f7035b86171b3258dbf49427cc2b871b3664babdd7db14f4d9baae20171ca7798594819f5e2ffb31c2589c169dacfd15b4c890441f0f87a8e503c2135037eb62988aa1fa610c6ceea56ae48017b8a9ad2ff5a86bd1a9d17e5e9a82fee0fa21b7722535b2eeee10573f9dee78d7b6667484f09c8353e6099c09ffab08994d2a6a20344de0c359e8adf05732fd6862a978ad9614986a2ad87cbd87015b2925d6a23a9f02f27fc7507f852cb06539e00ac560461154005a9ac3dc5ffd521abf8d584a1df85cfd64922e0d1e9e4fc731b0728a50c02e184e404b3c5e4fb8fad63a460e45370211bf60e7737df85b373fbee014b11706c9d8b09b1433a96ce62c5c0c08c484cf8be95b7426fcf4878a4eb15e668786af45712c82849f9146a2ecc3380bb473a0d619dd0295401ff9d1f57f2fd5a84bff5fa6e1786466b60169c1ed7e4083cf1816e116e8d0bae7ad6bbfab7625a47eb6d20fc1fb2b91c84adc23c6c14cae79f4fc3f3ca90c3c15315720fbd15d1a70298cae1b6b03dff6a1afaec2018016616dd7c890066e1a36562e55773f8c5fd22ad1f4f1b2fae4e8ceef92c681fb40cc279edc2a834eecb1e49efed02766b9547bd679634940f247eec42b790afc45a77f5e4f6fafa9eb1323fa73fd40727ffb6998cc5c8ceed32252e5c26e57290f336f5831689d54b8797de208f0ca2c75bb6d7f9dbca88946c1192fcc99fbf906c592090d3cd183eccf714c52c39f63cce1044a7e15cd574aca2cc7d6a76a56e945f108d53c51fe67e8212abb7849e7df5ced062bab608b445ffd9422e608ce096791a1cfd3f2b2f61d4e5c800e33fa3a8a38114cfa02385833d435551f2cdd5fadd3afb949437f0c19d7566a5659770441c7dc09768782f574caf781855621099d7602a6eb1935317d25dfc813d12cdabc3897d0493b88ab2eda981c407e0bc4a62f6d18c96bc497c6c9bbb5401b77a77413f154fcd309eb6c4b711e41ea4ec1c7e2f4c503086be4d96394d5b420a813cdb5798b00831139eb57678b790a90aa731ecacaefcff840e0d721dddbe5cc1c3deb03620615f79760b92384fea781c8971820f9636d776bb2c32d596104fb30e0295769acfc39a3101db88a4b5b38a75e9ca10f4071660ae869063cccb409fe921dc1596a517391184894b45a561621eb7c1184f5e69051845eed47021da5073e078e0f872566cff985ed3b866f273b80ef57d88cc1e2f91b72c69b1c1a766b4f8db2e8ec653a618f046fda32cee1f06a6e8b5895b578b3989a4e86dcff4cda1d0b573ec52b0b53dcb1024ba58d10253330fe3fb7c19c6bf30d +result: pass +shared_secret: 0b6ec01df36ce91c82f78ed1b85ab731581e50597253c08745f0f2891a97f942 + +# Rho leads to non invertable matrix +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d74933a0cba383545cf629d357aa8927a7bd4f6575059485fd455be7198fc01a509920f6c0b8c5a565b4b86c084a60bd9b9b6037727df67b83ae06c5e47aba5d263ce83808f40a378aa43b4ec5458b33a0eac8c816abf5bf76a1220a99205258cc4a9236b4dc252cbbe8884e8ebc1fe921ed408582182b273a199d121153ec38b7f183174754f66332ca98b87a31672720815ff7bcd0cdac810db905ea76e6496742d26b2989b201fbc2936f5a6cd60c35e757f8c33b75277560ab948bab2962df9c38c91b44f08090e5585d852c4b729c52de88fd8c54722162f2d7696946c7b710079500136a28b9abf9a5c0294a5b265865cb04f9796b648f85858f8982f15c2bf31626b236b2c3a6493910be2cc8610829d96693cce3686b8a63b91439118fa661729462ce58e5e28b764aa39911569d1ca5c1b33885400a16f169858930c7f135ab6a95d08ccc70d057f9e73a4c8ca2da7185df37c8a6f727893bb6db74329cccc4692589128867cbaf28694fa747e86cf98619e99b221db88a81afa73b348581cfa5addb505d4b3155f44c292f958f02c32de979b3b042f85ac3354fa3190993040a01ad5450680026d7e17a0732a54c09329373009a1c3087e8c892ac0aac4793fff2b98cb96a3d0671f998749d716a78c4cb6738879d76307a3a35738a886606a236c92accbc09ac502c03b41ba0a768edf06a2c6162467581eba5083fce8488414068ba06158a9128ff5361ebc06fbd492d69c185d0b5568c1973bcc1604a4c0916a1c03aa9e82c98cb3f107ebf239ab50213db93136013dc11c44f2e55871c7bc34fc76a4383477410f73902f57d229e6851aa182880e767e1386082fc77f20c7a3fad8677f9ac611dc40494ca66917a6a227b9e6e71a325a3a4925640ae59c96d9bc33c919be595aea76a47bd64fc291948d51409d99008073b2f3356a040cb8a27706eb5ac08d8aa71c716f4f9420b5974078f235bca67f2c8161319824eeb892e56a3b7097068be52eea909805863057f1163b1bbfe98b1963e83e1edcc65e88411836a6735b50f8256d54dc11fceb52ea771930a3987a85b2a73a6e36fc946a3716277943aa935953141c167a8fba5545089345ce8a8682672ae718c87dd63511f81ef1185db0c173159928722202b0b161f5b3a1224766ea1264166c2bc83229fe273824014adb8c6630cc3fc8b19e4bbabf24bc9bc3c3adc5e3774c11a134eb1cf491550c9cac68ec89e281b88709ca688597679a2ed6f73160fcbb0b9cc696da6060864c2e0108cf225323129af8958cb5436604ac0e184a68d22110afc91384cc7735d546e6db898e163cdc62a3e8dc4c20652a947396d5973ff8f0b1141bb361530011604f8f85b911302064c69493529869c5284ecb64bbf00612b259b859717f89bad2bb71be41781fc011cd26c93c7028ea35389817bcfa09b727c66f86ec9497ec90dc0a89402611b71ca6a513cd4e568cb02a7f9ab84135f7c1b43aca898780d150636af51b8e78c754067f872438ac7a6270fa9ba3ac47dfd13de72202740ca297f284acd317282733f652ccfb805d628887b1ac6b22fc0ee4748995a685a151aef80cacfa6497f23156805269bc346eab122cc8a16883fb42ebc19dc2c81065a773444617d0fc0cd150c3afda64aac933823864197cc28a672893f926b562cfdfdb7fa62bcab40157f26b0dc0fc805de81719759c9af0abbb998559759b35a58daabb243fc2477caa289fd194c171be2ae5b66b84ca5c480be10887948aaf86149c5f47b137eb3d2a6ba5738c1ed6688ee6eb7a3c8bb022d19165964ffb2746c5e81b39ab7e6f5b3ad8c65b0bb3b7315484cfb62a96f76cdbd715beb261574bad950660f1f155d6a62d29449cafc43e9b0a4b7a747aa65a825b26282a164976d557fa8a135ee58e9cb1bc0e8bb38e7b931e528c7e6a2139b2061d605909375934fb3fd7273cdd7ab28d17b892102149f6cdfad1772f0b18ecfbb9c2583568551bfb33a1eb0cb91cd5609db35379f71a88e1035d875942d646783a8f11e4314d6c97934595165b23df05c1ab8bcf51783b81f435c4c74d652b44e077c7685908abe138755763974367f0ac2a63f5cac37039ad7919d3c98e88f89397a401d7ea1b06c08a717b582238191f17b9ecc1782976ba3737526e4bc152d86f3d4407549a079fb15dee5232f01a05300a72c073be6147053d712887fa909aa787c401b7b08c1e8395809876bd6d423c3e489e152696c12603f0d27ec9e4caed1bb9563a19547400efe30502d99430bb378ec397dab2a553330a34243839876b5ed532fd469a7df044ffe90354205303009cf7f252dd6b0aecba8da45a8c683413577c787ec8ace7d17a277561a7f271283895b380cd294974520556e072a7ada4024a2842e3f20c38cc5da139a1cc496fa583a1b1410a15038002f1a17352972347ca22215739d53b27e53dca17cbd2bc616a804d314373cfcc1d72c0736fcc3f041455443c443e72875f968d095b18a7f111c1ccbbc0c1a5d8485fb207223057b8d4b754076a919f96cab4db533e2c48dc134c190b478fe6635d053c476959ee4b7ff2754bb4e7c8b9675791d1a84845491902c7cc99a300d4a1196a9f43c816d7013794e1b3402622afd8ba997cb9aab2ca302b8f3af098dbc62d44bb3c9e35871554c6d30840ab3c7127a030e19b4c1e382228b5bf481b0759fbf1adff00000000000000000000000000000000000000000000000000000077ff9fc5bb5dc787ddbba2b73876efd905154fd9ec65b71a6253c625d94f53aee366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: 6e78c7085b62594c22b881c61e63674892e8b15be6b3137030cf91834ac0126295c6893f0c386b7670821cbbcafac5d4211cfad5c1f75deb8e7df047b950fa504c189fcef6806e16c7a447187a7877ff91d5aa1f89d9f4c2f8c726dd7cbc688e247c929117e01c8cf93e62440ac3f9affd27ecfd76d525dde13ec8b3a6686e25cea8e46fdb3a264b4e1692bcb1cbfbf6e750a1faf99d8864c1a9beabe0d436b7ec5566c92be999b165ff4f30d6ba43347c326edf4a41ecf2d35cb825bafe62184cfc28b30419f509b631f9affdca2b3b78771fdfb006f5b6cca6d0f5522308543b4a1fc65463d8b0ef14fb3fdc160178692d598e59d71110447fec3d02a58556bd1d17d212bd09d4dcda359fc4ee60dd2f0c73db72ee684a28b550f6b17e7dc8e2bd1867076222033023851676c0a55956e14f2c67874217e5349918243011ace52437a127c1a743a52c7c6fd8a0a007d5d020ec1bfb9f98b0ae36561eadbb5e23b7202d909c7d5fad270542c2e57dd0a54fe7179050b7ca81d72fc8c4f07f45fb2ac905e209a3ced970bcf5334daf441a0ea8f250d41be94cc33d96a42a067654f43047cc500214d0a54920f61728b6e95a014926f03faa1b27f6f5cb4397347dd0744c09ad92608ed7cbc0bae29092d6846fbe0fa14a38529e00c165a7ba098c16e532d43a8e4bff1490c45e0a33bc02738b4a1958cebeb39fd30ed7026b3a015863c2e4a2ca00635475678132e7fc114fc8e891711241942b787384ee22352b2811cfe1a22fb7e8f2e173df93e59cfc98a677a136ec29bbd47bc66070a7a8fa3a709aed2123ce55bf27ff2d23eb87b9762659d16ced5e24b7e825e0b4c2e8a6b6cd1596e4fafc06c9e90a8f0137ad182662f54288da8b590d42c6fbf9bb14cc8f23fff1abcc5885ecccb580d93846b2ebec01bd528547765fa2c231dc1b5ec3b3263617d136a102f6e02458444b158162b80e9acd39ce90db232582ecfd679029c6ed4d5a17f28b4ef2a120455b5933b51d3751728ad07e9d1ae3dc52d690d5838cbfc8c8d5bd7284dca1b753be3cc485aff60a120eff28891e902af0ec3358785a0ac87f99f18f268d73c05ba725de2cbc82d2918f1694c3f6c813d02f341c9f40a7c75bcc5984d5ecc1cc308eb16a9c1971d4f8e6a8d5ba59e855656543c0c7e5b7e49a360bc31c9411da0642bb815703bb64fb550f19fbb0bb993453ab8f15ca9ebddae7ef5acf2910f130f95fe1e4ca602f7e09d605a4dddacdd3cf5c2830a7bd1fafa1d63f7cf4ad511303ce42fb6348397df469a813c822527b933747f8f419177caad0787b63570cdb807a35a190a46f2150fd19c18db91c9435908d79449b23430c1d26a7354b6b9d1d21f31d160e767681580c770bb264dcc24567e88a8bc6512831fba35cf6aa4fcac1040b200df1c60b88a3d7e1550f0a27e8232dd88a9c751624198f811ddbf1c2a833c58b91bab501e7cfccb5374c21482808be44877ed51389234f3bda65c44ab5781da9ee3269a0cd4a3f13f50ec1445c859fc164774cac725a3b561bd63a97170823fdc07bd6ecb46bcfcd76384e7baa0ec3c1f4c89215e26b580962502a4c06aa26068c041ff1354ee9ec07da71b163901784ef525c65bd00c403a9445ade4b0bddfc30e04d278b4873dbd1f18f4587cedf870d958b16be02ecdf3a5cc435b49e0e56775521579530013aea6a081aed4a5774bf72918526eb290a5bc1ef3f0ed9440863c1133a70b1481d46b6f0adb352b3cd4e50bba138570b8e5617e3a10b6382970ace312b95d87f5e8a6baea10d2ea19546acb5fcbac0d20e964b7c0bd0d1825d3955971bd657c316710066d81ccc421c786f7d21df4e748b47111732f1851dc992322d5b50cfcb66321b46588b39184c503666435d620eb03a3535b9611e7aac801e9cf90ecf7671f70eeec6103d6e00a2ca5a6a8424e645d4fa89b058b5f77441437e40bba596d705ba522fae5fb1240d9f9e25c9bcae741b514b9ff33d0132db5f06a73964f05dce8b41a568413bd7f4fc78a4c7dbd2f5815f3dff8f25b2e82a508f5f2fb02087bd23927707bc729574777e01ed0c93557867956d8493c1cd9dc86ef3c1e48986be905101578c8e7a11ea96709929e5dbb1560bd4d9f9acb7957355e09fad7c97712e890234b335fd950e25cf59a4ccc6cd461e6ffbbc43026faa7dcc6df33a8bc5f1dae7e5 +result: pass +shared_secret: 8918cd0c3eabdb8267e24b79272ab6b67c9ea6418cab15e2e3070f6c747b4dc4 + +# Rho leads to a matrix with unusally large entries +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca62e0b7d8cc8d1d861dd052bd9bb622cd8b769551c2307c82aedc92accc3d2c67c3ecf8341290af6c93a295fc027895809a081aaaf3cd0131174c8605c7fc29ece47036866f7fc326f7c947f70852356410e22700b5480897f288dba24c494685ecfbb624bc189dca10d9307595969145b21ef4ca1c435b3d39555434e133f8ec8c00dc49f02788041a6deae40ad5c9a3198804fde6230dc25b7f86a86bc00b43da73b5b40e3943096fa4540a019817881b4421961e293250056300e273f3d87153765ec237a79a16ba89a960fe42aa887c65fae65719766c44b2b8a0e54e97aab5febb1c194939e11928258cbcad6281cd37ad6033b1c9982df721200e36cb70326403422519f3afc3451af15969c2b26957c452fb136db18357516617892214c758cd9b556a827434c9510a5f6094bd32c8633966eb113f9e4902b6306c87732b96542979159ab49a170fe71a23093c1aca70202287d8288fc2f56072ec7aefa293015b6a58a2899ed79d4a09701ba42d26c599d8a2164204563fb90ff7372e9d76798256925e67ccd5ccac6d69a85343825b6a20793095e1a29d1b526e183611bad90cf6440bd3e79f847c6b912aa1919a9e7d9357b414cfccb206180067469b294b2c4233960a40e17800ab0ce483c40b653392488df837689fd72da0daae74575da747527b2a116984b2adccba04000ab72402f09c749341be42c79a5c8198488124fe750f66b82cf272826747c68a946d2629a48ce0a777b4a9673ba9c3a2a402305506f4b65b65b327e62de16c696bca3d0b8ca44013cc88d9444a83549af17a3f8270565359b168ca721027479a6e60a28f11b33d88da4faa084b576ba5bea09c2fa8a68c0aa8a309c96119aa52443bae570abbd942d193cc8ccab6e5643d0e362049f1ad00f98d173849afb1248ee2a67873950ec849e9b7042b94222b60bd50720b94d7317053cc86758cfc0bae9c9856c0c4411e74730fb65d8b7b838426123bf68b9804473469c6d8717dff450fcfa208b8f53e2cd8987919a5defbcda5a422ed82b495c67b46264106a613ec138097f05a2f2c5efc2076b9e2475ee162a5e7242cea1598088f8146bc8ea65909723fb7a60b1db157a4f43158457d2d157a1f980925a396401450b670728b2c7ca3aba3e7d4b4fd34b24caa87d45846bc2104e95a1d9a5676b734736fb00f7b3241160c2299b50e5517bd4faa859b79c8590c4322115a7c724f0767c056620bd006c01b5b87d80091bc483e5d341d14149095045d0648acabb46053e78c84045a9606bf82f6124fa9a8a9104ebaa734e3720eb6921553e353e66152f2e96adf34534a06aeeb677fc4f901bea148d28411f1f856b4d2cd261526e3a8139788796690413a50251dc1763703a42ee708f932cdeb9b7ecfb2c7d99002bb93cc248a133b9a4c8e910a045669ef5bc75113ce12f7963d665d6662246d383767f74317dbaaa3d0b855bb0274815442f0b66821cda6aab15672192d20c6aa8537432699ca8a22392a855323ad70f75979b56b392c29caf9c072885710c33967120aeef0bcfca1293df8181ce50dae21577701b1fa216dadf19fee4c35e0d435ffc83de3f92c2b276461b66398c75c98d92628b32a2ac3b571853c4a142bd5e81a8770c9d9359c91ac41aa2b4b063a9bcaf4592cb6626c213bc89c6eee3b75c59a21d6d748825b336f4052c6bb79f4ea13f51b672d1abb32887f1977505a75c13f0b66db14b56956050550ab0d85a814640dd3a36a825682c9cc6d6f13cf132780f5fcce87355007f9021ab5a5a3a69369c7876a5158654bc9f9400a1de60e71e34a370372f24cbc84166ee68b6433b6911a76bd78fa249e850bab6aa96ad820e0dcb438fbcfd9ea81f5f3c0d5d53653ba288815029202807aebb27402660e4b3cdb609bb7145dbc055fa146466b121e673359a8465073d99b63e799cafca95733938dfc2ad7d6007a36a8da027ad396618f1647b1287094737fe518b779f238b1ec0c9351b3c408b8f66b27f5262693826b24842a9153a9d205a7593665fc172c7c835354daaf90574686a8ca7fe5824ab94f29d6a5ac87cc40b999e5e7ade2744e1fe7048e38c804472579d93309986c28962b06e80d0952ab10d1cf1d945b99432ef5074dea9c6f4ed97959fc904e23a3834cc30de35f5350656d027a1e6620925a6840a337d14a82dd524c2077302fd6b72e97a959001d3d81768ccb7937f4aa07f00eef0aaeca877999e5598d30a81e920e2e8489970a31fdeb7d921474500835a01530e0177a44852cba38c3b0c297a0c5bc73db986d24cb0b323402d5355b543468f948976284dbcaa1c87c8b27cc62ce2b8306da3a5e08b0991403e7b0381adb0c897c7a994997a69ac1f5092f8edc480e77a82ae9bdedc724883b5eb3da56648979fd2337fb42aed861859aa6165a800d4c9b964e70195927359378073a84b80219613873a164324a04144c4a5b551937c23ac75e3a664a773966b512a01f3a7a60ec1ee06a068933a8ab0844511488f058b2c5bbc1c8dc07e32b267aeac8285543300bc66f8514ed6aac59cbb9be835b3ec68987a5cff5791643c60841da8c172c1ffc07110c77a43ab34621c474a60a385d153d79831922638740657030481146ca6843f6043cec1de4b0b307c52b288b98905b918bf3af0e698b4ea261db5895f7d02ea0fc59156090609764d09b4a7ed5000000000000000000000000000000000000000000000000000000ab115291ae8961b14e3b7681e82897a566fae64d7340c19370d028ed1b71881f11536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 02c49972f757b82c1f5e7ff048b375cf05adac485075ca5a1eeadb615de1306d6712f0cfc452db395c57039fec57708d0a35b7bb238d1e4fd58301473cc4737d72ceab2b097d513ccd17a7f54d1fd145bc28aeaefd2157f2a8dbea391cffecfc2e1fb86c909b45e97a39b30ff59f176b2359a92cab56cf8d04ca42a08c70051c8d9405fa9aa2aaf5724d8b2a00528b7818671af4129c527bffa74702f02172bf51cb8e5b7c07438c785329807bd022fcb5aad5286642b1fbaf976af9816d3f0a3fdb79c2787f6abc1dd20fbb2995bc2a4b2408f5900c68a60f38f78037c3ddee01a3861433a7d9eeb5e7a41a56d2b2a11615d8ef8751d19cf7bc5e5e46b0944dfa61cee6dc16c490f5c7b62ebb6bd9bdca7dee23c3bf1529a4bf40977b307e945efb6451d4ae1c1aa507e30f653ef476c64610edb39201492434dcf36053f668b43746cda8fefd4316425c92f97e1900c62a91004405349c69497438aeecb876ab534220a4563138ceeb3d4edb0d70330ad031aa82dd62e19d17f62bf83dc3d4e2c3850d47efd50edbab06c9661d1ef274e856d8ae58564909625de2acf771334ffc3a3d7a0b1a382e8a17c1a1dc0f29401d9a3dd198a4ad70a740700301da40b468fc4232ae841489a1169170d5131d9b0a036149eedc23f2abba55883ffbfe4788c887e3248bc1de1b3677f286f1269d110d574d01199524d93263517afb76759bcc2728ac595b004508946618b55b0ca734431e85496f07e153f9707d876b6342cc99be864d9d603c645bb9731890d497d85d955e2d80e2e660c93968873eeca1a51157ceca558c0544040db61fb4ac4e20effdccdf950feb214971dde984cff17a75973b8d3a8cd27c92a8686fb93564def326e3cb617411892469be218d663a009c37e2d573b59beb4c5f62206f3a0df818608583e73d12366fcb1d685650d72ca4f533b928c0b4772ae645f0b0ad71bb8313a601723b8f90ffcc53dfcda9d092f8931ef168ca2f53d4600677833b9443fdc05db07f80c03bcf6e364fd4d85c89fab6a08cc9399b10afcb908cc4b6b6a3f6a4725bcf8de94e6515345e333a8324765ca69ddf9c61539d36c67e91ced0396ab2adc022ae9fa8e41d5a00168cd8c9ad0291f653af63e67b90ff2d448fdbb058702c551d323f5916ed90f6b87e354944e167887c5ea4b37703c8b0a94edf20d188ea989999deafe0a6de995434275b18d17a33b100032f2796749a385d972542dbc9989311068e84f3629bbb797f7c6f1057d99185009b5ac0d43d7b944b2e5f528cdb26ca14d995671e72eb725bf2de60289da1f06d78b137a79ebfb75425446c20b4310700053cf3ad58ce01cfb4d97325a27e5b5eda3cfe1009cdd186313ec3d16f005be47c8f38051cf2108b85ec43aa0d527b8d3bdae4e0a7a711c6fa69998bc26a9a8d2f7433f24f79c0dfc74a56083b42de7860b22c45f0c6e31422080c7a21c8d672fba60ce7652a90a3134f54594eb0fafe5a953e4f179ab06ea6b9795bc31a4f6a7f18bd5f1800a5263c48da4ad48ceca613fadea7741dff9d90f6400aa31519bef0b01e3312a5042ac35362df5e61c8e04eb52bf5bce0505ea7233b516321a08185fbdb9ff8434b4c6a88f880f594d100f46924a26f468c754d6af07f4868cbd7aff2caa53e5146df4afde9f7753484fa8be36baf89ebd4741b7260ff1ea398d59e503f5fd6c5c543ae1d318dc1894a48025c76e872fdc3026bf33a91b4618d1618554393eef6f7816b7de65c4bfbb55353cef9a53ad35340049ec65ad5af27db6fa597eae6499a3e5a192ed731915f6ffac811e35555ba5ffcb6628f812bf71a268620c161fe2a571921f5bceb4d0cdca776c7e52f68140845f455d247cad416c4de040bc37f5421e2b8bd6a049db84f0b3c807c3bb9d47cc7ac3ae9599ce82cebce8243306c0f3de6af1526475387c76751b7412a227571450599120570cf3cda19264136e0a93b4d25a160dee03d3d812dbf172618f58d09645becacb5c287b3b01ce4d1121272747648c50112c44728f66d86bd421390f2b36ed7e18b09a985a306ec52f240c0bc0957335483439f146b6c340f7e062a6059b1d47750c11cda575f8a2aea78ee09af0e06dbc2b2ac2b2bbef17fa108681dc90a7b970306522e521aa987e3ab6dfe2e1b3c6d9fa68897efc9e998afe55620cdbe9ddbbac8a0e22395d5628a +result: pass +shared_secret: 6e63c5ca8af98628c02c8f1d520615a1a2c4824d5d155a6e51d181e8eb44c7fa + +# Rho leads to a matrix with unusally large entries +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc8cb39ba3237b6f13c80ef947630578d2d213f1914f94c61429bcaea77c646f1b99d35ac8009907ccf604c1211ddaeccc2f1001b49776df94560e5ac35e0a7ee3f39377e252d83558d6e57651b0b3c0365e6a133dbe3002270a0bfdc524e5d298b42c1408e17d155c82d69c256f78a69937843491153ec2117ac40370934d28783a69d0a02526afaa8600d289c27e9481cb737cdc4b9ddf53caf313b3c4b862b08045dc38428b126622d77ff3864fa93919427b049786042d234429e9858ce7b1d57a2fe92979851b9d4ca23fa7a80aa4738c9b777020b857b8fa2e442522423608d51b78c574569b9746e441bed403ac21391fe327818dc81355bcb2f5758320965e10946cda9a7c1d329f7c1720857c8751e57b87186e8dc21199e3b7ffc1c4c5607cc3c258a30163131c5db5d96e2e8c2f209419d5a03dfc618a53b1799cf102348b89ba289fab2b206f61688fd974023619fa5187b8cb28be778b666294bf029d7fa9abe3ea739f131930a13629bb6fa7221a788591f595911d3c8a6625a0452bab83196c047889f7eb13897b3d73db6ecf5c9687c3a97d5b3fca3071a29cb82902c7a4e673f56842129c4e27254d50c2a9741abedcd925a62796d9a98733262e45366a5d7b81cf7c9b3c42a6b2f70626d0adde9311239061dd893669404058da8d209ba6a6825e796c84e765b348414447246f57acad8c933dcaf752ef268bd6246f6b57377cf82607a522dd7028b572319263c9a9805aa6501ca4ec2a182a25cb751ad6f0a0a23955986155e0a1b0957bb9afb35320da2b20e29210b2605122791db13adb91a0fed0b36bca7d6f03b0ca6c8597b56a189c10ee887b4429b0cda99d83728aa6f57a03d182685b2266ac1f70645b123c0ddf352520332fb5ea06e716b010f82c62858c0408446afb0ffe23ae9241be953b3d05a9087f8738143c3c66b5b3c61ba1240b99c2f50b620038d775706aa58cb0f7094d52c755b992e008c2419b3b4bd85a41f65bf633136867caf5872d551340f377c06546495b8882e4e14df8a958a501161c547146fa2132160fce98c830a5b42784cfec7410bfe87f185657a29508bf339c7871ab9de91423d23e90ca2bdddbacf7f4af0f616e9626a3ed4a87b9b900b2412b0b5328104479d33046f54a06cd88a3d0c9780af5807e3517e0c72d45b17106a136e68a49521364e8661636f250fb679d3fb649a0491d349a6bcb49a4e06552ec60b33f947e37fa11b6742ca9119f0c6953f8175deac4576292165f42110c99467b008f53e25308e560fc845df84b28eff321687c45d6d09d96533f1d0078af998a9db59cc51b1ed4ec6c13695fd33a768af521bc9c39bbf6c27c6266ba271e5d8cb89982077f553b1dfb5341b5caccb856a7608cfee57ad3dcbd782ababf70c4f825cbe1279b304c2cf134beb0268655951cd76079b06410737cc10550c16cb9848612b6b7652d4ca9bb5be64f08236b69a097cbd10014e561469b7a68723160d91632d67f4908622876a29c59682579b34a298cd01597887c1b4d100ea724ba3fc8960356b499825c5223585024a478d34561a98d0c23930473ad6da637666b454c7882f0a98254f41caee03e03067b3a001f303c651489c1d00a825537c2412826a73959f085c5d6a836836582d938b9d999b591019219c906f6712fdb52b13bb8708d0c570a00bc40f1168b80b9c11a4e72430943c2544e2bb910ca5c4f0b245f4bccf0f0c3a284757bc6c535c6a205b34cddc15abcd92dcee9717b413568b461e2b9035756a312414e2644422112b49a3a23eed98e07884c80a6291df38d5bb039df15b7d89b5021d691f1a165eab9242b34146f6b223195bff19c6c6197a5e424c59572502f69c7a8b633534786e4d8c1e280680361b8ab5657b74336d72571bcd12af7089d4a23c09a167d0a3bcc540b8be036b24664bdb3a13b62c11eee93c4ff5bc0bcd92f186741eaf56a5f6111f161b9158bae9691b8c99cbae21c9534da07d11930b96751e3c29a804195a18781e016b6af45bd23e8297759a1d1487c6212add88675cc3b92de46c09b4315c9a0cf6a5a20e7fa9ed5d594aa95cfa3681e42a3543429b9ec551e1e74ba46b79234b8c69c0b5f9553aa12455edd971ac29199c04a40d702128cb77f63d50f11184d2d0b66befa6adf7c2bed427c82a632a81497c3831e38256784802fb7195e40b571c26a925de84f6366b3d9aa2ecbe57ac61283f5ea3648b652f0c742b9d7c2a8c00ab5b611fd36458ec71f1c49579f96c1a774a3b4179ea63b4fd1e3b172b39eed1bbbf0d27aabd1befa0232440b336b53230bd60b88da4c116ac47b971de59a214a0752e75888172386ab2ba525ea50492a59467a57713985475108501cce687bca50b6c8840b03bf2a5072e8585f33625a9a8c17160fd7d630ba54c2dce9bc0ab2cae4965ddb9110ad612c65c8203e7b462ff86ba28abedb808f70818f022413ed5a9a3b0ba6aa24685fa91d5938a69693862e31aef5054af2f9849d3b1d22e121fec251c8f358a0d320efb9299df6194cf6cc5cf0c11363114abb8069e57634ba173ae199b080c1d935558c16696c97a5f316a4b8565c20b266802c60d4272e49c2a5ff794bbc914240f81317558a8cc862d9783630d90d99f6a68738219c44b9ad5c07b7242e85d71f2a958398e25047f494e7f6acfe339f98cc2d65c114a537b1259e000000000000000000000000000000000000000000000000000000db721a7dfb02556d4951dc5f3410ec6a5b8b78df5ec7b511533cae60713fb9dc2e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: 841dcaa46434e75228b0bc10733771ae67fdcbef99433463b2aaf2da88a98e1bbc748e1d14239a3a91bd2b6752b83302265c58d36f176b15988a3cdcc0f65cd72eb5486913269eb31b42bd0ccec456b72ff18f3801a1ad44c3ae6eebfaca59f2ee8308bd6c4c05a7262a01f168662dd42153bcf885ca7e84adfbaf6429bfacfde0ba36426b17dec09cee0591eca54dce505b6f23d2b674fba0a9dffdf7e77ee007e7570b31c71723047c3e8a271d6876261fc1766e1e468bbaec2a42960c2f0a3ebb7dc5d5d6d75a24245a375d160bfafb01cfa2c08831b1ccc67bf9d05df3a14d8f4b170e145311a793a92b1d59602e45328e58c5842dfa6d7021e1c65a900e0b04a79b17edec62c5d1c2bb8679174b45da0cfa336f7a0973923b8812d7b2015e73c42e1219900cfc3cdc93824b55724acaff2158d38732c429883b4d461b74a858cd167ba9e47f8157834f2e758cfc1c8f0fc5e762d56ead723cac0759cfe5233473b9706be8d909c1bfb2cdecbe7eb15b74b181e8fb949aba6b82e2c7c1d40bfc43cdc758051d1ad428a43bc7708ea9b46ea3f202974abf44644c7614769c9fb39de6ba9fb3009cff125fae0ebf0ecf5c9dea4ef2b9a8f26fc5d27d875e068ce3d319f816000f1dd560d03cccf97c5485ce65a77a326ed0fb2ece5cd5a55661c7b41f4b08486770cdc510f03b2b85c73b95d0d77b0aa75f677682d0a383a6e69ece0d5bd62568f2f50dd64ce3cd9e51556043323729b165e4c6726dc77c78025faef0653e54c6474834b9e2b51c66bfc8fe90e6e48fa217add307120ee0c00e8ac8988e5765e66dd0dfd92c80a3b19eaefb46585f0078f5f2de0b9c83ee10996b27b7c64d0f7b4d3be78ae18030bcd792e83bbf99529d1e7917bc053846268ded779a622e83f5d2fcfb0c15bdb1a2621188037acb8999ccae846ab2664792b043903c3e6b59c2645ca44e2b19cb21122035f7f3b222bf382800df1d1d8926eada144f880ecc739bb5644986f0a3c1b7cabcf3c9cbc7938802274ba459c1b870ddc516b5ea871fa6bd87b8cc5e47541f1dab3b9fd63865bb514b85155c41780b6ae24a02a06804a319d3f8d81383e7c8167853f3e24b35e220c105dfe14c33441f928c6dcf63a606500539b602f3b3f547a49545fa43f3fa6bbbd6049d9769ae5ac0964d00d68409abac87369f9608f2d244935aefce11e009fdc9a94c4a803eff45f989affe68c4dabbb291de0e7251a82bd5e5d19bc165fafa25465066e23dd905dd456e0d02ec3cf229c330d404b5f214a37363bd997979fd171584a296cab6e37928940f6bde0d1ed593903d86524449ad42248572680f1b573ede4ae27237e56755485657a5f542577700680308cea4a0d249e48138743017078e668e9ee556c7ef5a83cca9f96ca22beb7e30e2df1a793c6e2f402f109770ce7763eeb057f65bc0fec1fde8ccbeef1441dc98d059d1589564debb2a993ce21031c67d4d8c61ec53160be67aee11ff4b901bfd7c91f6e1faf7aa525aa8d15c3212ebdf0e3a5adc57690d446fcc9435caa5b1ed174b96d4da42851545ce1764bcae48c5fa580802eec2d1b83e4307c1da0dbb2a0fa414d2db8d6335f898fec5e391d0d7c2098e35dcd68afa8adc29d5eee9a9cc6a517ed310897e69eb23ce83e5ef0535c0f64d4f8d62a962e8af80f47a7f76cf735ae4ab09db0b806a9c4b2fa9ee493d69e73af045e6a1eb07b5bbd3241ccce8b5196080c2953cbc50a2052126ad754dc971050150d7ad4b319fd85cec8c4be05b55ddcd5ec7e804083278495b1601792464202969dbe01488f876d1655e0a3f4879ba41712c9136ba0f99d4bbf3145f34bd6f4edad036e6db0ba2532e35c6c097820d1fb069f9d69c259fb17b94970f2cc8284e5fd80f4e6070b4389bcb49ca99f207d002e44f6f0c9046fd89c0ddb1d86b01007c02920acafdf28e49d3c209e3bca054b67398b6c6c2561004c129947d87d33390d28489855074a6777dbf72816f0e1bf9488009bb0a247784c8a9b8f13a163d86a614edda8d205058071c12845b21e82ead309ede45872c379417c536ba446272ffb63d924d0055a92c320739d364e3eafcea6d10ee09a58a70c6c9a88550327070d6de72034b8140976856895147e2a1ab4ad062c7d299228a50b605872e3d20daea3e918f2dda9f8182aed61c93b4a47c5796478e182ba54c87fe +result: pass +shared_secret: d0ffac51bd8b7e6192ac5954b26a5c64f4d0ea746b08d9f73602062aa8aaf7cd + +# Rho leads to a matrix with unusally large entries +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca584a4780ea352e9dc85393457e71ca62e85abb2322aa45c4fb3d29b15d55a027b8a74186000b9a05550b2a343a3ac21b0f7a2b2aaf736a1ca49df5b61fa749266b0696ad7b6c48b0dc82803b10a4b64d6caebb33a13c60effd699ad44c1985c9e3f8ab21a0cbd728ab52e07c4bc5ab3f6c698ea307f435bb7b5545c44758fee3b9077b5a318c2b584012cc9b57560236be789bc4b026d1f26a857365b2d1a6e809a9f71e140ec56c4db3829b74539a90345841483daf6840141100c66cbe057261fc346ab8c36b03cc2b2ac838835cd373836bca05d9f57ce2231980ea1bd9908111e79b602572ab37495e9f6025269713f4318dc472d06b473268bcc7c5cb956b5a1ebf419aa18b9d6f184849240470607fdf6325ed561c270b095079734fb61e04c531be893c2621c5ba48bc897868126b995e75777c8ceb100c67556484b71404be802ded5299cc41a83b0c7a99c8d36d55f7fdb4697c446904c2420d667f5e58e0837778ea960bb6605890b8437f24f7d35acbccc41acfcbf2e35270ab36804db6353d04f4a88b97b6aa5a6a42a101a535da323cae6c7dd757de67c24fc0c1dd894ba24c26c873172bf2c1ce63c56cb98189d60587cd76c2ff70cbea93a0d0767ff347a071333986226a8812677e2b5e18a15fc5b2d23bc03786b2faf8a9d2705bcb6276d2c140509f67a123a34a98bc879386b5a596b4fe77f0caa5145d766e05834658961a4aa3d5a90bf9da5a53ddac964e62216d0a6e39934f00c6ab988cfe6334a69480bfecbc7b100b621d471ab51725008a21f404142e489cc30cb1aec8dbf99038c8989ae8c477c198cefba1f3420951b660026c820fb406d19fb0878677cbb852bf5978d99d33f6fd7c3aad87585e68e5dd5a444a8369749ac03902b91000c0d986b26029005ac6daab8b0888a75b75bb667469525a70278945e2847cfcf242b420a10af98cdcab58417400b9d58b68f3670aec0ade93996a8e16d63337444d0b7de449f3ee63b30aabc9ac2b77d5bb13d672ce9db86770b9c21e11ca3f42c2117654c657da94c451c319e1139088d008179707eccd6a47d68677c692c9bc7790a6311dfc244d1c67eeb3420109404a86ba668e24c09b6308f3b09e546cb20db4117c74b4124946735ae70ec8147bb2e24784c3b4a24eec5ba8de3269054399a623f0050b5d0c10b5f5139b0786353504216850c85677bb596b2ac6a5fd4c224bf61ced0fb031411a887066d7a5455afeb8309058485386a023b6c58b5b967557a5b291698d488a131826b958df717caf472118d96a3b6882c1e95240909886895a0f5946aad1c690b7a904121688f5685ae775738307786c5a6915baee72b3d71103a96860afd696bc70b880c019e6dc77c38e33817db195ffc2f7cc37b4a6450a2e787d2e65c55748be376af57251974ccbd8b398858971eb5ac62f7156e9f2b43d6c54a51c40c55156971804e21869933771b3ef64d16e48ec5195018425d32b56dcce1844f33600bf366b9237f6ba451fef0816d17a00542433dd7312c474f2c1abe2e3a1a12b303f9d42891b12954473f6eb41ce2014bc083732e7a4a7808831ae478bf2865934437d4874b6e5132ee99c727798aac4b99c7494fb555a594d21bc99a014001b7d06612c2b3a8c7170e99e037a2d50f33e61156c519a1a15dc78a60afd1c2c159375ed570878c319db912c1745b90321ddaa48bfb80411197b2fa146315bcaeb292714ab7576d946b3927a280319395dcc4a0c431692c7848d10a36dbaf5d78af33f62c25e5c4fb009be83a5b93e054e587393c48ac1c65a524a0cb4e6637fdd90e43346fc9a45a720898d05b4d3743a0e2e40f4cc77237e8913ac0557db49eadd7cf00c3695379b06602c332f57da6409b3b888e7c06898fc4412444c677482003c73fdf07ba45ec968591c3445b14053a8077e664b9964956fba6faa50d680352a4c8378d208940722bda766910403970e3b50d863d28400512d7adfb372052f1cfd3b24ff4e46695533449dc232a14604a08b00da1ad81e31232412e72d180826b968513a2dcc724085a3ff0d5c3a7361f861a3e02b0308b897ed9d35b14a4159cf646336ab8c0e273a6915a14297abd937afeaa3f62005a001417d91699e4166740764cee25b91fc2c44753a3bcc2a8144174cea18546fc513028018aca8cff714d6eea7515db543a192d8695b1923642228394dfb428cf167201bcbd1e217ed1e2391c616db739b09c9a0996c5bab53bb5e1bb3aa547937dfc49223897034bcfedd55599e15641bbcd1b0072e11ca24ce7a828776fd0c94bce2738eaf13075aa7340d51b30fa0caf857f1c5b7808048917e7490ab0739147b7cf229953a633f080ac80c495f5b03355bcca47a94b60e95d72a29147f2b677c6a106f905f5349933b0b7600358fb009bace2c229246aaa51a95842cee212c11a205711125c4ea14d68a833c2892e8bd265bfab3e7b16cc2d34adeac46aa6e92598d45d972577fd76a9a7b954ad1bba6ed63132a375aa29b9eaa42366e2aa8da0374a19b16389a1b36c025168584a91a4328071de904ff9162a06a8bb9b9030f4571b1166133bd11f9fb9a2214c3f838a0a6106359e778fa7f504c6e719ed9c2ac66479eb1b662c8571d7e398f80941bf2ca0b8791bfb51693fa95894f25f2ba53882e450eaeb0b3ca706a936bf22f6056588144c1c3219f0eab96c000000000000000000000000000000000000000000000000000000209ba491e8a9350c68a6cb643fe16e7cea65ea4cd099b14c90e7a0f627f502f45ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: 8106cd6746bff4925c2620882d571c50b36b066a5ea43fa6528351d97dda7dff1d9e9ee6ddc640ddb88851844c388727c918152c41c814be39f274183e116432a61f9a7c1885f07bf118e4ba631598fa9b1e01e72a68ec43dba62235587c9b9dd1c8e806174ad612a2ffd477e8d0edc2ebaf4036393283b55144b9c83cbb31d1674565abf29a56980dc4a3803a389a20dbf78c78a907a5d651649c27c9771ef436c189d1922564397f5b5594d7efa951ba7d05962df80c49c1f73029c3d7899852d8a1fe03d1245a228028cf713f4403abc64a9093d782cd1a6dfe12a79098e07f40904ad146dbbdfa919058149b051bea097a60aa0373cf9c0803e8da99c03a6b83813f99adea8c87e6da09013947cbbbde8edc3b7ca29f3180882cb11bec706f4048a20c5938560ea83380be5cd75f48d77bf3360fc131509317dd72b9340bab91fc6bf7ce099bfa58d6c5a413fd2801a15ce7ac6f6f2c0447cba39987a37695468cd0fdc982631d9b0354205194323e74d41c54e0a026c4e67467b5595aae7c8346d1bc5538ad0acdd56fcda32f95dd7830b65b2d98c05355a3ad9c84cb43c23ef9845250888ecb6f992da17f769a13bb7bfd621571f98b42a9aaf19d0626d7d59355d9730371b29a3868b97afd7013142866e0b2f1c54841de47c47775940c58475c96a4881bc69c6de346e05f55cab15d497392fbefd2309a834c733eb3ec8df4ae65ccaf690af492e39d0b5c91d09b39966b31b47ddf6751b481966f19758dbbc373debf284640015cb197e53120e0a36ab02203e0992f35b4c8347021f8c4663c996597a466b416cf271e04a20045639635b904b63250817c29451dd2ada5f3011500f705c2f0982d236ee1cd02944e35cfc6704f0e8fa30d8d2d595340b4245d3f3d5246d368062b53f06ad365dbf12c0fe7f492690fbf3389d234e76a618e63f785af41b2f4af70be0bf0a917df6a5f34683d931604c6df9288cb9e38b8d8396ab2e21a1c9a54f4dca2a4985c3c4aaf20af5e6fdd126860df422a894dff4a857f2a8aa54c4bebb70d44a4ad15d47497be7e0b7487003ecd6f92cec84bf4c459eb5f480dc20bb6db735cfaade1ce33782aaffa6a39e4f2ce9e7df44347b91d75bbe71b824d6302608dedab325d00163cb9e0a274ce49717bd6ddf4b9c02fb6986a8f765ed565f48c10dc90f39b93aba1a69a832e41f2b0dc2113fee500c99471ab67e3ab5a1cccc0f92273739eae4747de461ca3ce6161b558577b56af9e695a978970473dc671efcddda2bbd8d15fa6eb8ec0ec9f479bd9b8d3dd4865460846733856fd57664760bbd5ed354696ce6c8b44c6ebbcb07920cb6c3cf769c005503add472c7374b8875d714d25c74e2d4390ea455e00208763f56e475b630a30875bafc70f87f541bfd0a28839d441ce567db3be7a20e2773f08ae73f9686b95623fcfa7b1b3052d64448756f9a7481b1d9c6022898e79afd4c2290a9ed2e0658c6178826ce94e0ab460798a88cc54558c51239bbcc5347d59ac87fb6580f84aae6492e1ca700093438889fd50eb7028153e8b4675fd272667fa022b17029808b88df427ac048d8b410f60a56ac39220f8b509ca93c34c7dd62934f62a7e29aa3b0918299fd5c56b3c3158775a3b3d5c78aaf2f656257fdaaaa5b7daf83294b5fc48d08922ea6f5487d647c30b1c11a30d2b1690958fd90107a0d6cc689441a36d04039bea83c447e79b04bdbcbab04427949855aa1a32790075438ca6ae6f7897581b4489ea1dbc4c025fa1ebe698959a8145e8f11aa1cb6f742d1be789cba73fdea457eb0abf1e814c931922f451a7d59514c3e2526b1378be1ba8ce317ec3fe2e3d983edb346874f5251d197ea02c7b16fef2b7ba8cd3b0179b1f935d4aa4d463bda2d5dadd6ba96c0ad630f1eff86e34dee3f2eafb9cc5f5ed13dac2149a583e2af8db3a789c39f751e645acb58743646c6f65bb12564b8f26697e80b8d9636b0833d71433a0465dd501eb313158275608390568c7130ae5f998d3819ad7f3855d26ddc9f4ec07a36d191450dd6502a28665eaf8235a3f10b90aba654c70974038cdc9b3335d9b865da8a07be70d53f6a5edc7c4a5f4b5220c8e7fc01f5740360db072a4f8d7e80246dced5c75ad642ef1b41841f43e6e422f4f9131c1b3f505197f18571b057ed1cf2dab2f37dcb88082f8d8291d13eb7abdbb14 +result: pass +shared_secret: ab923efab9857dba5a68f9198c4318f54a42aec38d194133eb7f5dc172478e79 + +# Rho leads to a matrix with unusally large entries +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5dc9ba816e19d8a177de33a855960b7c464cfd51a7279a48c80091ec357b9fd118e12f00736036fa8268079754a4d565773f2a5d5c913109a4606a276d07372eb96474c7722d85a17a50a956b3ca8132415b2c404a0288aadb44fbb00217c0005ee36137768c3d4169d300ab2876c1b2a92c0cf119fef5018bf7acfd2031929b9671898c64388898fb74a483a100ce2ae67275e53b00d94c2888f831a286631450308aea2580fc5cdbae53b7108a9d3cba88a437a5c0917dfa3bd7fb2266f2b2f57f52724b67e58cc2781a95191f60a34d74199102b5fe941874a4433034ae6c9aff9e2bf16f01781d72424508835e3a587903eefeb0b0d218e11183cc7293c81c09cb5fc4eaba4cdf22284206b23b87566da704665527c6c587aa3070b01e79094747a87ebb2b9e5296a2405528c224ef45ee6fcaf0c537fa2e2479d579d71a3400793188d895323f274077416f94c4e68811ad9c73598d7ccd53bcd18f8b1cca8bb5591298132258f4210d36722217c2fc5925330d03d1c037cc7d520f52b7761e61727c66c5cdab43ea53041e25b36b56a323a12f70c99eea25fb4d387c1aa2d871244021a45ab27a0709583e0c8652db31167da21ca46b84002ab009a8659656876a037e844b6c027545cc66d783713a79b1bb5021e7a2c5deaa900e595503cb1bfc394cf65707c78a97ee522be49c2c08de89336b4b50270ce189bc81fb6a464a853262791c748714aea70e79a6967e62566492157b4bff737804b014c69f41eedeb07e47cac957b4ca937cf4c907189606a9187c700a7b6756c5694b285ea6171625038f1c729a7897e5cf853aae66104fa1e6c66b86b643b1e37838f85bea35132a4176afefb2e6254433af76d5eb455b11a0624fcb63f7310b0c9b171d62134fcc361c2a58b12b2c53530fb658b83107e76006e43ca74d9093fe0ec4127f5866c306b791b5d033cc834652e6ba485efc76b5289304b3c774e88ce0173012e0203eda7a71eea170517114ef93f739501c6f9c9a4d56b77494f82c06753a996f33721a56a003167bc773c44d685a2aa45b61744058a1a097a14299d7a5257e27f8efa796776249878854f458d7e4b70db914e888567e5aa9cf238ac4187bd783570daa77c3a9854c11c80bee12374267da446cb1a3b5177c112a3945a92596093f77c3ea9bc2f95452b89879bb6c0028b653cb6c804d2680da39cb99233067c7b9124a27c4c6558a641718588709ac86d5c57ac7a1f1aac68c9c027cd2c0433a139f17b2972a5a81fc8763ad92391e818a8b77c43fa7e71930ab5934d58301c723825f9079ee9ebcc8096a1c4eaabfb5b73f070b43c3112af289c09d908fb8a2ab48786db29c2dfa82a16c6c8a8b34f83583a6fe3a630b639631742adc422a71798974727e2a80b139872df5420c60954a453633bb99dd40098be6952930cb35cda52a33c4728eb31fc7048ee5176ce947b194885395163af5aa5f2f53fe8c9246bf6143d199d2a797dd62b0fe67042fd455acebaaab2bb61ff778ffdac5edaf8778879c5517911a468a583286bb4d11a7f852ce921cec823647226c96110063d02a2708364e585c5ddb3914a27123a8c6ac89c6f98260009f172f644b10a27201a73812de28eb9f04cd0e4a19080001d082189b7b85c788e02324b2f4b07dcd4aa298b44b0f49efca0b9c0811b57729ec7ab7f0a6a7bd14c220394a2609832a26b3b8c29139af994a5c96bdcf13d8fe21c225b5e5f5aa2e0c7a21ec3a8017c885ab5a694aaad999c6ed14b77dba90fc666c0ef88336d79b3093719df8179e25bb59301a67548cf74122954e34fc5e94fc70b931a3669314605d609cf06f25f74f76fddc056cfa4654094b724636f49fbc3964a5ccd79580cc8a15eb07eb4061d528a32de192413d388b051660d43507c49720ec67ae41461b5ac87cbf91dcf42af4d38680f450acb9c6cec903807153b71613f02900117ccaa11e2cbd2885187a49089b63c3f1106fd5a3070a38b25c9757bb9b40c80c6fc4611334c4463e1aca784af6bc38584a72ca4db482361314fa1b18da660f440ab6c9167a4c18afe6395cbdc5320fca49aea990e12ad6863a0725863dc1009de81abf3d56ed4c70258096f6647cd3c5b1033512a742984af1a08617aa63e1b754ec93e77eb1f379532cebb7d4421a58bd133b9ec264ffb252bb8b546961e2f602aa45c5c20756f51c0ac29983ed95036758b05f6d90aaadc464e914004ea81eb74162d8a1e4bf986120c1e9d13cebc774677577f86c10addfba2b9486f9123458fb20e73c32c8a36a60f457074ba640309a7c9b744413a5622f43ef3785da0b77739e00f1268b50e04056b0c2071f8ab5451cc0d2861310806a4f180867310b03c0fd0d9781b3315c0da53d30b5a84f27962326084b4cf8e88a2087b420a9299c34a517c088e12ab2f54f35bc4542b85d455f6e9307c949cfd617dee8153a46c99fdaa1c00795296e9816e557369e34bb25b1555199dbe0a089cf83cfe019e5d013c6507294ce27e51ca5e805b894c13655ae6a0f9da6051706d46dacc69ec3898fc58ddd5c75e82345fd8137cb606a7707b4d3bb801f77b615527705399c8448f95d3c292662957e48bae0004acb52e55385f0cac2a9c76c471e2654968113c98be84c89e0a49040ef23751521558e677e32089a6969beb0897f74a52aefa2a087c454ef26efd08a555d6000000000000000000000000000000000000000000000000000000d2c662773707380b77713c51b59f8f1c67e6541a410027312c5dea82f0ba5c1f8bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: c60d4aa71649960bedcfd1ba225807739b82f912425f50d32153167826926e51f8ed961b5439fcc7a3804d55ff46d5b873e13a0c8ee7606fbb21c5e121fb8e60377ec46ead034bea9c44a685e7a588875e5bc2dff98e5529cff460ef5fd1ede8d4cf2b02e9a537887028150d0d79ee6a0ef2f0d5507c42ad1d788a75899d0b7243f7179af88cd6b7fa41849f1f49f782eb0bb727a9b0fd51ebe3f05ae80fe7259aac42c8b0a70b7b74da297c03dc1f06c44edf72773958e5a0d38aa91c35e71b27155e875f3378ad6a2d064d6d7cd56689b1a42dc4a26ce2cfc8012e147940980403bb6bc164f3a0f9055867efd0bdd3ff4c36ad8165aaba00c8365d217d4bf208312f3ce9fbd7bde30d6e4d3f1a98b0a20f947d03b45f3a25ad481fd1dc271a0cafdcc04f02d314ce3da2e1aeb00c7d3a88ea3ea2783b75e16768f0aa122db015492b0ac9bab3d3f85fe6d8e32cfd66fab8e3138402f690bfd3a5fcf09ca27cfaffca96181b8a906a67d93303069ff91c2e3e6cb26c5608bb04e05ddeab18ad3ff916bded7e9e27c99492b7525f95e02833ae827c48b1f4ef06b77633a66ef85520768b64641c5b1b3bf319c390006a026b3a77331c530aa5a86d0e329d4c7bd729992e3c574876ad9a29d79b09018e850e2e63d51f75861af33e6acbdabb722d41312294a9b302aba8e3f04ab1f04688e373f86e3753d84070bda2feabf6b94617cccae0fd427f90f43d3b686fd772292fe1c93f355fffd2683eb8dbdf171b69bb6a5c929b7109744f542a21539e04151ac7e46f5d4b8b151981d4860a366d3500c3422a2bb5c24fced0221e1b84b9e5b587e9bcb87220dd92c127be67a396ac18cfd3470e715ebd320fa07097122f696ff81923e4c2d3c0310bb8b70690dabee4e17efe6d871b32eeaeebb448f7d65fd60e7a3f32cd07e61948be330179dfdab4d748d01694d64edabfa95647a21ceafd5261cca24a0548a135ca1f7c262952bee7a291857062d3546dea97cd745050121c82a73ec9c0095847e0563229ec36046ee1564ef3747b49812eb2bd015025f077b56d63500bfe523689a6be7b886fd8aebbff18cfb6e4ca18c2d0dcbdcff8fb7a9e852f81ffb39245abc6ebb9f58a28beb15942cfd5f797dc867f7a855a3e6ecbdd9a8123ecdc30c7240d44dffcbdca05bb17d524a791ea32d60c65dcb6ae3ae3b724ae7da36b88d3563a63f4c059fc83c97ad79602cd7701749f92c02bd65f505f407b64ab3f8417d3de5631804eeae565af62d7fbf95bfe25126aa2494368bab7afabc23825d6cb03151222bec05b09a3fabd5937b7a0ff17246564e163d049e0724456576f250045d13d99aa07a5f298cd76ac73f69c3547ec9a344998dea3448a96480ece462922f76f1fab68d030796bcf570298013001414ee238a8ac4d7047514ebd5c3e55e051846403acbd3d7a581c1d53084eef20edce56c2f50443440ad0fc77a955c1e5c4d610cb45f43435b1a66bcec638ce88126ad88bd1b0d10cc5aa23789d5c8f4d9c63cf796e1ee6f7fb309855f332a648c731775edbcb4968592f1f633a3fc74bc5fbfe9c0e74d8379fc56f869e63d8db3b9ffa92e9b470e668e10acc1c7606839f2ec0abd02629007e3b1300e558e5afd136f949eb1e6ae56b5a8c21d15ec4b62b22af89618501c1af9992a3f002242288fe01140e2476ff900afe32685afac7baee893bcfaa54c1bcae65b2c9db04b1e17dec3821145daa041150f3282a500ca46c535ee47ec02b1a1639713354bc4ff7217ec169a63bbf26a26b2c712b02c76b56a8ed0535e3ee1c3f118f2a68f9c699ed8702f3eb30328118922b15b8399a3fca410dae21e7d762e6e45c8de7ff023a75211e42d1acf1d8f506223cb281fb9615b2de1848ad674236e768a0f315041daab6f491195453081535f9235f6d215e5750226ae7eef4df26469cea1d0541e7932ad917fb360f4a9d5601126b1c76bdd1696e6d59749635b844c9d416a12d0eff4c4a9e7f40860b047ffad7bce7439ef0fef50cccbdcc848b02f66bf67f2d3cd795242896c5f2cff82864b1d1f00974c9142d0b0ef2a8d00289238e822d352a924c689ab15e6e5b201ee7ebca1253b9964a04efb4d7af21c6ecdc03365b4275d72502523d562209a316a88163ca33ea279702309f8c2373514d459a5298ce6999571072852d996fa8421fa594069645f034d3 +result: pass +shared_secret: a6ac9ae3077504c8a7b1e5558a0fb1e7d60cd2bc3e59d615e68d5165e4903d07 + +# Rho leads to a matrix with unusally large entries +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00dfa8bb9d8c58e33260020a33fc04021baba0f6375ddee4a6023846a2dc73eb69758edc915ab2446b1c59fed89bbb86a9be2242c117cb719274873c8b0a2857e4076b3a792965011675c23deb8bc0cf7b2e3ee38493461f8a2068bcd899f1822dfbe8444a612f9fbacbf87a0d45f98a541c5141b230be12763a3563f5d47e369b65c10254e5f63934a05c8ab3409d7b4207dc423d537abd4404a9ec6afb1cbb529619bee740a4c71efc952b3b871043c24c0c919f74f508bc23a9c1ea8b76ac449e28379af42bb6140d376c9a4ec76b34042c7d711efb559c8c87170662788b4cc907e4882d4332d90c43175cc56eb943d589a30a5ac1ae312aeb8432a1d7b2f7448fe0f48ad069989e908d28616530246f8e817aecf6ae638acd7030a596d5be06964eeada35f6175bc0d20c26636943f1609eba3b8852531f083a576231c9b222a9f96ab1fb79aa0149155881fae91adf26c4f1e463f6f603511311351c6c1d1832f482306d66a4a2e585b7e223bd539fc45c5b29558e3110cc268356edf4bd6328240b1a7286c71c5cc17284fb5058410381c74456c1ae3ad93735b6c7d0e13621c924a67a44937039df4b4da608ab49978109f077c961c2e6d02cb0f429fb04bf7b32afd9e0748a50162bf49ab17602717b25800ca3c762145636adeeec6543c43dd20a2a194211030971f16139ab86a22fe07664b425e47240ee1101cd171bd681a681804d38bc4cd562b7675a1a4fb113ab476fb7e67009c8ad5edcb053e77e99d10a348851f266919d29204f5bbe27e8672ed92e7777aae4141a8e81a39cd83a30005127289092929a41b42db3ea2c3b9b4e14a02a45906e871b5ed4c5067180aa97a6967642a5ea52639f27665a78aa24511ec6bb8ec7c3ca2fd34fafd5b5397c75c8144894b56d61e57ef77725ed8909afc703c6cb858fa1c600556babf3cf4fbc089595606f450753c727b42c7e8a8c470ae99e40e518d73684f2810e1ccb187441873fe14cce8628efb360083029fad17c1a9809daa08df859a0626365e0f1ba97ab9bb0d09e3b2632812152ec6361cdc65307f916b1782eee7873c2313089f3bd0c5ba938b80f1b43c7fc6c3f801444a34ab9c167629076442b1cb34c9b02941368c6377098a7618ae352d7cb1ed9419d56158f9222c644f58c3efa5209317a165434b86350c1a94d21fbb065854534120e665bb73266b6a392a60fda82b096701cb100aff65b44a40a4d8c83f8c63621f44a6de22f9b4817a2772085a95597c309b6423b9710cf72720598064717b52a336a0d3d9b6092e9a445a3c507e37ea9ca126b1b8f4f702d55959faa7b80322045508b2025ba64575049738699e2e1a42630c80615724dca7e98acb40f6415f6907e3649962c451f31164e88601cc2c37a65c636b6c146cdc24e5ce6976bc3457277a588118712cbabd8dc273fd0c8c3835fdeb500fe035116f6beaf437354c39e9152c3c9999f5f98281096a0f1cbafbef24e87bbce8f88377a0a3541eb128e31a0d77c247dd32180b97bf6f8bb2f611e7a7927f7ca25706cbc7b52598b4865ed8b520aa53e6199a96a0bc79a09002e07bcdf78473b273028b34e7a7c9f71ac38bd6327ea4c9acba59a07b59433908a3b8a4cc5a01d704773621b4c750389e8557498747ebb3b8b41b99105756205b2b578f668de8c293ef989a934cd1c80b18d700f7666986fc445854c9a6bbb8c9ae050c6316bafda5e98aba4ca0b92e3c3a43c504e214193b43c9c9ccacdf4ba85a57c6da6d1a8b310c4f0b7390c7001e8004beb92bf55cc8eaf37ae07738a090018e843288a965d4e8bbbf9a18730106c52758367361f558272f3887762ea91c35a23a708394b8a3b505098f7ab8ba505bbd1763a0339084f3ccdb2e68ce8b032bc217d51110c6cca10f277142a844ce5e7c8800b5bc857613deb0e5e59b4acc72f0fa1bdb0f016ace9b02a43a49e83c207e8ab82e98fa1144a47809a5dbc5be622b1bb364e8000cfa2c203f247706b3b3dc520bb308a62bd893c3bd890102bcdfa1b6ea91cb5f86758d5339396184b2ad4b36d6c875675261658615e55c85839cb10ac8c789959cc675a976c4b88146179d38820344f319b1621248577294d4550a33e723d65f11f3f654f11f206a7b4c4b909a4b1490f41d68752aa4af2723ba9c092d371c0e2459c9361230cea1772ac0990b6626a9914b20769c51b2df3996639fab765164a7b61280049ba14d55a98537e85ca0d8259b14ea4151c787d49c9b2d291c9e2b005c13a3d93a88840f9a19d30c346b14b413c150818850bb8585ef0263b515a74e79032b3c561ea543d652076a38fb4f769318378510a8e277334c148bbf38868d74ab56adb16f75a6c4ecbca6e1ba200874567fa5d1bb42527f123faa69bf2c45e4e79022799a717c21260e3585d6a86b7582a1f166dee7015abe11b42a961d60750e2e40ffc82588448b515bb4afe246c875297ef87740a775fcbe0bd902c67b9830c6d318523e422b0060bcc5a5a5f7b267f5b53e111c7121b86a6025a0fc2716fc11025c857ae1926fa7066ab527045d8244c75bf13a1a3c6688811d35ad23c1435b4cd536c6f14f78bb5d34b4bb34548a375b93234c63645d7ab59580567f9517604837fa6f98b2b4911d9946a54d0ad2cf0747b4081b904a2d6f953c70065b0c4b698e556daa27cee3b40070326f43c3d93a7cfc649000000000000000000000000000000000000000000000000000000bbd7982687ffd48dc0a8badfdd4788bce9b1b4242f5ae1d14b1ba97c0642a6b4e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: b0ea35919c0560ba7caf9fb6352b36bba962cd45d3d2b7f6bd97ebb2a3ba6df22e018390330f75cb4eaef8c9ee9bde4a1f25110dadf363df31f3f8702a3c14d5d2da303bbaf0fb199384a2702f7089fcc63acfb29d5e53571102566866898055258241e5ec4f1a325175cf3a64a84ec50b4e8e511ec24dfdaf0ca79911b1d84b5a0872fb1618edf364ea06d7287c6ac39e842c56d6630ef38f4c812a8d1fcad73f2d4ecf8f7033c1f5ab982c5b6b8c5545237c4a3ba8d5ece30dc93d1d4f4e89d3bba0b8149ee5c2df793c8779d45de92630b292714582387e60769209ea7d00e2f1173f8817567f52fe53d908d11e8e77375e7d2f73f44a01ee3c87c8f4163c579c40ce70dbc006ad2426667650c35d80ced3df0f3f626fb52f57d874625d414aeaa658a220a4ee6350900dd7b1b9e165661b41cd0c96c3b665d789a297f6b7b4f261e6dda3f6b027ed8a308f1168627f71656bb0ad456ed2b197c672d88ea6bd61fde6dc3df7e4d8b505afcaa35fc1d9b5df57b69679811ab5b738d62a5800555fe282dd4d06d5ab25a3847b4f22725a2360d8b47c69458b55f485a1ee75918cefbac2b4945c20a7356d1b7c69f1c047ba355496e21eaa2123b5b545e86c23d4cf27011e68611290161366d6c12b340292113d3973efb312b1474807f8cf735b76bb3a722aeaca7b865530fba177f9016d1ad1a7bd86da6f657c32d6662e57cc691f5acad0faf4f21027fd761ae23456b599333c9af918166927c6253dabe508c7d931d50cc824c589881b39087e02b52276b9d4252c08199dd4943d72b4fc14e603c9e901d0038da715973b0d168b13edc26b20e2649f37d27c9cacc7a8508ab340a1c3ed8d26099171bfaebd39b0b9fedb3c195a381b55c13365139063e5525400127cc963d9659c964ef3415b31c3a2a923ed3b96ffd327d6eb4929ce1d0d26232b46da119e5e38e71a2dc97bb953567bb5dde9c2d19bbd208c85b135bdc885121b5f7195904d2a9141bf5222e98f95ead571db8fe2df9a93501b8fb9a06a3ce0338a37920fc4268e26e71f94cc218d6fad6c2cfdbf0a5855b186ccdf10f66f01f884f22503c530b3c5ecd96d9b55651b1eeb3af62cb7a4cf4cd185d98afd1b942e8f7eff849ce843e113e82c3a875fb996161e0d0185aa99e21e7c99c9636cedf0dc9aeb55a37eb1f744841f5d8fb3eeb5eef76039a40a5c643957cc81dba3fe556234acc512efa07f3a140ef28a93ed9cdd2088456e3bfad0e8377e69fbb3dc67f3864ab36f8f8422837e067c20787b80d77a30995e5d78f84804cd7c897d0ffa5fe1e7b92f17575d94512b6a4b5888a3cfa6e03be3a50b8797f43a87477982fb241f24af59f13acf60ecc4c11e558b1a4feb81f69acd5a67f56bd698888c9f00430dd8f8309629f7c29e96d2951fcd8b521265c368e13e22fefa30bdecd51407387c77259e64a62e5d705d3d46be5b6f710ad86e844e509a3c5c1dce0efe4b1427bcbe56758432301a14d8b882a70cb5c587e1636ecf96c61998bec7a9b6b98eab92be2e30b30174c87bb8bd66d13282dc4d1b67757435807a90a0b268a9f760054c219bef6c8811476a56a14994c760e21a1b786efda3fcda5acd859967b9874eb049a9690b0acd97c907c1ec6b1bc9790b1fa6c8f15518b9c18b3f0cf672d26496be193602d909efc2562bf72e83a3d8244eea1942c6b6708f006963ed1005615abfdb57cff11b985134ef3ca90116a7ae35299d1627fc05cd40cb32a83c9f9e19570ab0b4e079ae34402641e47e1f0bb20b63e551dc7c090421bb1916e970b33a6cee4be985f28ea66cbcbaa21279b45a4d3927eff26dd1d171f18ba8c5e78644d6027e7ace96ab62bc862d8cd69bdc9c07a4d8d66ce2a08601783e6d40665fdc637aa813a447361ccd9d843bfa05f5e88f1f74a4d6fd1bdeddb1c50523d731cf6cb4686018e8518525a83c2aab2fc5ff97ea1562c7cc7347482c96675b0b249f99428d68f180d6590c67025e41c80468a3edcf147368f3612456e9d73bc4d6e0a70364036f75cb6657ea99c8fa365c165d7fc912bc583f0f4e57ba0f531544282e21dc42e00f00fc59273d272a711748bf62760377e5c30c1776542936a10fdfa8acca0b4b5e5c9cabf461ed5caa9124c59a4e867859401c158080970ada9cf76ab49e250411a61ec5e83c781c269b75ed1c193bf8134d7b0dea +result: pass +shared_secret: be6aaee5bf0744e7ca1ca0e545171f3075aba9b4d10a71ae00848c8398e3c52c + +# Rho leads to a matrix with unusally large entries +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697c6b844a5959672b08796868e7107108ca4c30a58be4ff7b37b0402697aca2dc4839dc51a8811c34c8183442711a8d055b640cd73d2caff9357bdd9ad36835ae9d55d1a291e040652d020a905027a616b3b5c63c0be2c1068e9cb0a9b4abbf346590237f96422308ba86b055872e156470b53e35b2a604bcbd2b97849446684149a86d9980c5182f1a020c32b14de18c03cd0633e303bf9f8a24ff0c95d5a65c031c18550b7d7d5b8ec672c3953bb3be0c3f13925200394aabb26090a3b9a12bde30418b997abf310c1724a88b9782418d09552a63e2855b7af2196d422761f5c8a877426976c90552bc203f5657f5370258b936c3706f074c11b3b2586391f4c4bcdd959615a819aacfb48d2c799a9abb182c7a9fda6a80ee50c4a827c9f50835b1859033629a9601b5b8b357913b6de142a501974a0c191a071a95cb8c45fa857736a93400141cc325d1b4518d3ea58a94c14f9b261759281b00213f91652b1e52bbc0c488bc0990a136e8e3b5e20f41d9f218646d43745245ca4c2777099032b1a5060745e8525bc617900d53b414dc995772543cc58a6bb7c4868f8999509428a3244db4081ac6b3f3c685865814c318032a678ce19866754c0774b31cc47a6a8e3cc90d6a15e54c7370c0360c38409b126c06d4b06b7d652318cc810c774f0e66e7e547305d03109030fded56940d472ee123438551d6885922ee91889f97ae31954703952f4a3951e8003ca2836fce071e382373c36a27b947ec8766bcafb1a3105aa2b082802b9bca0e4c50b80cf9a4033b44ba4b8a2cd6d480a315b08e7774d68f8ca8778894bebc2ab431d63c931e61c5366699b65ea448c127b82ea493034616fc1b6be01243bc84dc92bcb50aa4c7a417f1b5268e93b35ced9cd6263227c849dc8b107b10120f9f690706cb0ddec8fe2b20a26da422604c9135c58f0b06aa5180ccb55adcce07e51f885998398c4f16162c33b89bb37a09b84dd0a9d0e8c90a71c2851e33b3e9cc5531a76f81992344161a837608872355d57111df72412e58c5ff85b97ab2016b41487f56a9fbb48d2e498c2e12d3972c677caae5e439c598b67520a7ff6ac9c2424482988153b145d6b40973a1582b90a5bb76716c9878dee223046f746f08323ac3a5390a6148d767c3054524b7247c26c9339c0642632710b8a4fe0502dcbc32c35ec2e1e22510ea4abc7c74980ab25f9fa58caf4a70eec2d22c1957f162f5f1c5e5ad0a0fda4c342885081d3070d773cc972928eaab2ed604503257bfe448ef2a9c9c933055e633a339792d24a44769b95123c1f9588c8759a469c049a75bcad2e6087559c8afa5b6415a8825567aa44f63ce5b49ba4fabaea311918b804c7fa2d1742945f39bc9e8256b537128a9735a0939a1150c10418551723154cf4c027a5355e1751a9866bf558672fc68324438f12d83551ea49b358cf873772ae7853b53c9627ec75479c746a116c5e66b20ce0478c490946a0af4a3a3138534c2c94a44bca955e84513f548840b929f4b4ae51d53d52225a21b320d0d8b075358b019720c325814303170b627fd6856a149214eb192659d21001d5ba6953288e5a62d141ad5ff31c413418f332947f1441b8663f95b1a8ea35576e725a83177126719889651e8f20a8fc2392cdf55976651f1c177c5d8bb035993b0f2ca020a8b22b27080c4161cb86abda574deb0c858d14ab4261b1b8718ac12c56db9071a5acb00c4b1fcc9b9880917f53cc12bdfc77103a45ce8a2f4875c7e3711b659b967c5c26497c6e2903198f36b01c56ac5d054672d6914498643ae6b5bdc2447300737883306e4250ec445b543bb06b6113db5369da2b02dde3a11b2c080732979676040ddb2941956068557e65e0c4ae9c2834671f9ff65c246b31dbfb82720c8f014aa35d343b8eb762219b0eb802637574724595ac1c92b85e9a416089a2366ac9002d01af606ee9b21868e72ba96c6d5adb51f97c778cb8653e30a253b333ae5bb600a2b064cc387b38bbc0379c77dc45f7fc45fd060c60bcac60bbc794d18a5a8ab680a0ae202c97c3f153d07058017bc0b74458959c2a358b6c3733c60374a2ad540c75785ec95cb0bc125df1e8359af2bff55026d18348d0eca6672a87671925a8568060c09913993fc6f89e2523023544938a573ad208761e3ba85354cec6d999ee1c5f909bb973e0780c84101cd3cb42319b0d5614b9d103be8477ee9713cf943e038a04259c0958376c1013445731b0a5224402845499f30449f0800de86b614718bbe333b4b8245fc1a8e0c43eadd61f11f532ddb7551686cb8b054b2e90a19c889ccf68394cd501fb92a7211b9b599b2a2b637dd4246a7b8a5f713acfdeba03fb513f998177dd8cb216aa12c27ac3a5b84491738e5a745cbe7a3b5006bae6a08b0cd79a2b27af3da8ab021893e7727192e28787a052df8b434abb0f3a5866368991aba8ae3c891a0870327c3967eac16e8bd725bde990ef882bd6e5663d50b7adf75048d3202b39b44606ba1ac33fbb7a866a59a8c70988705974ec413abf660d5e98b6d9c60454a8825874953d778ac527578769aede871242b04561ea2d6e5c8aa04ba44228125bdb4beb90ca152705716cadd283ca2fd83ed9087ac5b2c7cba9334fe936c69586e3399fa46a174170aa8db62bd7095736012b49111e73bbcbbc89391bf70af7bc3581777c54d74ac2fd37b45300000000000000000000000000000000000000000000000000000057407f828b076da9179f40805f8392d4baaea0bac363dfbac88cfda8ce1ed279c975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: 1feb4f1d63f08052045012a21c33c2951b16c4b5ec02c00093d54ded6f94309e44d558787273bf593ac4bd77a56fe4dc30a54eb68a2f473c31c239ba18c9ca489cd50611fcd3be42f6f5069facdbcb7166a64ba7c06ba953142e5914ce20ec69038895c9860e69ce6cc3dac6c1b28d30fe83487d40591995f091d4ea116ad2675e32bb83325b7f379449dcded935027120d01ee43b2208deba910ca7ee635c5b928e5f6167307c813c8e7034096878a2915ed2d20898d8412ae61a72378a4eaee2f227ad5467d04ab884340cbfde2400cbdbca7e07a2f14016fa9e403a2b0ed27ad1dbb3cc492f584a6b5a7525baa628303039f69cf1c1e4db920ef7882de21eda5d2bad76231c88a061fbb2829fe93149c69204e2e783009beb4188fb876a6f869eb11b1c32c2ef15f9aef62f699f9692a502a4d87e5a497097ca73f8fddacbc03dd40a53abf267f749f9ac0f7b4ce9417a0f5eafa91fef75441ff7c887dc2eab2336fd257d4cda373121af864d4707fd20965e063fae456f0bef8f587bb385f8e5c96592c9b7d6c284197ca1706e1961dadf16a2264f74be425ce117a95dc9466474c856adb20931cc920177dc3f8c93d2bb3ad5f7c5517f0b7d141b87a8c287207e64158934766c8845ff0a480da124716b11d0e257206f68f2d4334e8e260895ab83e218e032a35f8d792be7b413b2679f8044e1c0ff67c474ef4c9b7e0dfd3d9bc4252fa81922cb146417dcadae7d7a7ee96e13bd480c96a4314f31fea83eef588bbf1435528c51eaf05cee2f193c3fc234d695ba32546ec77a16b1ea8047498125f2bf78dc9510812be57fe0ec77bfb3e28f42a4d15c2a2f0b54aae023ada92395cf384a1524a24e36ee2e69128fd2ab78b5af77d28c2e9ccd6c706315d46887db0c0c4f28666da7437489e3b245a19fcee97f187327a5806d35889e63940b19249d627165727f66f50aee62dd9496d6493c1f01ed0091e985048c2aa85a3b25a4f90f6e9f9cf67d6961ca246d763d3437ad64e7bc5c58b10117a66c40be088c58a27be4bc1360d114e61d002e271c4806b872f5ef7127217d5af6092e4aedf8b5c40198f266f9e10c560d4873668d58c912ec7ec18d27249f5be604a82d50421d436a3230780419bdefd10f049f404184b3530361c5c0644c3205c32fd451f6c6919487aefb12a75c821cfddeaa14c2abe20db3ac57ae0ee8ac4567db2d1e2d0920fa036351e8bcadbc14ab73d0868df6ab06e675ee193722f93f64a5344bd70593c23647152a81acb4d1a08b62b5f0b2669210d5d7845248d95fe9ccd796d73e34af955d1c94edcd2bba91be211cacb0884a90eab8a0125130ae65318f5419810f4df129c8504def662df4879e2a8df02d881e9990148065942c0d52865425f3239c4a4af51eeb85e1baeaf647e794b9fc04ea16eb328b8b1d0550e5dad8bf6248782b530735f8f5da40cf21241a2d62951cc9e894a339491f64b78d436c635eccb855d3a1f7d64f63f23023620408df6b3d190e7965d219a0cabc0933f7d50d9854e4d4aa7a5cf67b37e0475241a5af8e5000d117ebcea40b526c5a669dea1760d7fc30519148649fb00ca434f2cd84862a2755a99531854cdc847b7d5af3ede653ad6959f49c921d4a8675f7f3f51416c39e026488c297d844a8429caab43671093cc3ebf8730a18bae06f10ff8047cafb8d80edd7630c95d008cefca78f2b08ccb330d36eb33b18cf47bfbbcd0e2f81daa87160f421603d10409b8eab53f1561623f5167dafccda4f9a4e6504a0b5e67ab5dcfae98672f4cf62e4f152d09f2c64dd81e3476839aef8538a86f3b616ce55adf1dfe9451ca48acbe210c32ea1cc574730b37d4747b580c66820caf475858b4b6ad0eb7c06ed56b8f16f83595ee3466bdb8aaba3bbf35a177fd6645610b9dc238571e81b27b94757c9004a4c512cbad25730bc6f85255ffdcd052447766219e667095d4058e5f0045e16c0fcae1aed8dcb7c25fbcaf29a71a8abf72c398a61b1a57bec4b11a8c746bcce3ef0f82b9b2bd702d92a7fabc1efe0065e662270e1ab664cb1197f00983f1d265ff738f63b93d5d95aa4ddef2ea3f473440ce7ca1558b28fd68ee09c7b97e9d4c2052fb1dd657ecf09a2f664de0902f23bacab5d64bd449a0ddab34d4c0695c67ff5f6e11044a0db15d2d19a9ce2aeb818f0ecaf8c1522276521b0193f76e2 +result: pass +shared_secret: ff81d45deb69b6890f147710945d1b750cf17e876cd4e694158efcaf4fa2cb15 + +# Rho leads to a matrix with unusally large entries +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe331704aa56092a4204a2293e77935390cb1d2b2924e0bb27d4aa471474fed2b6982b71a1c14b2cd3ae12b12d5d12919235caeb8aa3827c844bda40f5f57e5f59c75c86b645224b3a861eb9d9773b01cbba45122bfb1e4a60ada0fc10f133c546563661064adbf4a89117657366789cfc282f9bbdd0547029c92aced02963f8cf462326db19bdc980149ee0823ecb1d9e22a5effc6cb588b17da70789d813b749be180457e82a5c958b069551748e12bae79cbc0dfb5ecccc85f565c22eea1836b52435b023959b4f4fc12956a09f38d58836891c4c2b0b4502b012b868fb9bc0455c12e83c182f1637c05469708279b1f4af2c275e174ca5ed0a12b39849f49535b8ca73089acd5067b6b57297327c4cdddc7d5c752a5d2cb04c659d04f803c72507f5832e7bd528e903863b932d80c51e8b2833684a084c7100728ca33a4304c85b8cf7b61412e76373566c34a75ca88004cab21a3274bca1ebcbf34222e351a3df4b557f09904173065b460d54210511f4515180b3bc0a87f9125a0a91252c1146101738f8f11e10897f9b1b16cc7c57ddfb3e4f6b01ad6239982baa07c56c05827e838c1b4bc99f9cc40608e74ed2d123757aca9d8030a0857ee2676db47bbcb1e10badb32508b87aac4c066fc747ad09a52177b378fc1446ea5aefcc30b0d744d2240e5e94c6f12254945223aa93abd8e71fe926a4fafa2a49273d618a0a5921cbde9c6f9648c6c12bad96d080e39ba128464d8f496b7cb020ebb03fbb2850a7118a7edb1bdc438565ca33850c1b1bfa6be29b88bcbcbb3e6675924550a7427035f60000841603c2b4c9f22040f9205c9386cd1b457046b4fb1521e4fcc47c1a0e7fe072bda26946762167d8bddba8c6d04470a2705fc05a6b00c4cc54409499a4859c4148b2a7596c8c7b2e597f0912742794495491117fec96486035f270363fb88511f756238ac9faf98251ecc06e1495337529b209031c0008e4250f550c3d476352ab82c8ef41c4b8203caab3b81335613016cb71b6a1f2c9b71158526cda75d9057c7597099789782b05164d338593b0a9b5ec85e0e6263c6a54d5a06ab4caa6c8db5b40e099f0ec7c00628373c3189e6c129b76827d160783f183ee14151b3b92e72bc4c65a06296a88b9f75948a18d50f53381f59360a19daba36939c3af104362d725c62f51b72ba1c8526c0be6a36930e19de18c2b1e470136cb7f92d246dc45992879b3762c92da6b97c10a552ff7a8b56788985814d2f9c5cd316dde3b2c7329b42f7492917c9174552219719575196844144a04a0b6718158cefc7833a421016b5193a5b965eb7b689698d14a41c03a408f8713aa46a077eac06a6106796c64b67117acd1bc0220125f4408222159503864eaa8824626c5651959d0f4c250c0002ec513c0817a47927ed99467c1eb6091f91773495d70084a7c344f41e0967925734ad846d360bc2a73c96f754b065112f1f472fcfb331eb8a286bc69cc1486d58b2d4932086f40c90ec601035c3016985962da0ca3571f5f36791a466861527a1ea52dc5a6254303971ce841d165985e2c02ec5b6a92278106117fcb377ad2c6c48bb24899a519626c74da9a3b026623417156aeebadabd418a0a8bc0bec5b43316ba7d7c4145016ca515ae19932a50819ce609b9ee9997c29a9af03a05ae9aaa89aa03b4ac5ca887b7b05a14d283a42da27ed7187369b0108165ef403550c99cad5c3cf7e28bef8a83ac8867341b331c9c02176520e0555af9b8047b3753e1928c849a13900545ba7a5c16bb9b6c689102aeb73eac0c5aa093a1f92810472c29642cd2a549a32bb9029961f6c4a20876ba8f4ab5212539f543c9d247355a300467b5a0a9d130613549d17a185fd045495f06820684c86aaa18a89317ea34eb0923d5600146497729fca9a66e9a544a55c1aa6841c556cdfe7ac0959635281c54e044c025c5b466442f15655474928c617a646c7178bf5b679062ceada6c6d702c22d339e0d3a9563a252e36287fc7975725bbc1a68122f4579a34c9c84318b13a76254c6be35a1ac3b26a8c2b373c6378cc20a7de414924a38ae7e8423fa1a66367a14b198f9980aeef068f346b208aecb13d827b3b5ac088878548171451109ce1535eb0a18ed1c1c677f9ca7f60501e1986ac19764849633c408d476540d6290738633a2e711eddc883ecb5111ce01bdbaa3df0f381facb31389249e261786f79aab0a80992b9a74002c9a7432fe88243f4276599389ce8119b846a75dcaa8eb300a7cfe266bbcb3742bc1e4dca77b986be341a03a75644dda25805bc50818a05a8495fb351c0709a5c37a07759dc0c3a253a3c56740aa8095d402bc65554880c2919dc6375451be6186d18da30c2f35ee4f1abfdbc594ea6ac5799c1d9912fb173044ad995d675751294489be7674d84181f4aaeacd9951dd0be79b919e585560d0b090b750f2f667e2ea21e283577e3aa4f6b11ad2560212f8309fad233ef87c6fa37480217a7b3933147daa29d2642cd582a3ac96ce5026135d5376a586f4604a8d511bcf5d09dd3e895fc3cb7d90a2535a1c31da1b1df5562e1b2a86a116212ab10a6328d2b80921c3c04ca9a4a9424bcc3a75e649ab34481561eb0a0920b71c245c1789770df5a7fc9136d4b573b227614dee4b23276af4b6c3537bcca67b59afa0119e668c910060e04e7c94a1a7fe0e191fe22cc727d12dc6d0000000000000000000000000000000000000000000000000000002d1ca62c220d1a0581d585ab445c7e001ad9056b3d6a44c8f563f136088de171d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: d4952da07911c8ceb643e6b3254f7fcc22242a88df735c9aa9a91fc692f32544b7f30fefed3311dc8a927930c50b17577573f858b778294929b123b180498c22c1ddc92a11cda9c0da3cf300664feda28bff6f1873a682451d24e2c2a5991fa8aa29718a43c2b379ebc7387fad5dc9e3681d233641d1b805b167ae52631b3b6ebb0aaaa6507d4a87a808a1c3b62c97da49c02dfa2c729693de194a1bb1643fff14e0fd8d3749ad33936e8b4f8f6f3106c08a8098c6b903d1cb70c2636571253564fb7dbe54b96b1f999749d0c81c698934756b455bc6ec918ec267b5e54a0a812c62de971d8ccd93e4c1d6752afe3d5308c5257abed2b1c01d0489bc1d5fb5b2f4b199cfec784b2bf92dc85904cf78a9a6c0fc3a9c5c1640f905fb8fee2e08b3c0d5fa029062a5d41c82c512ab0645e7a1d728e7fdbcd95ec59d121fe876b1e6d624dba73cf68f35b23bfff7a435a5afc81947587b60d588c54ba0c999242830e568c3269bc96e001a99edb6ccef086abec634d0febbbaf72d872eae8c5606e86d9bbe279395c5370647f245351ae41358cc26f5447c37f959396dbb03e484c80dfcfdf93701e849e081232e85eb15e034b5421dc63c62190ea54a83ae06c89f395f7cef8eaa41517345a3a0aae4705529d3c2c13f71418817287c860f062c6d0c5ee918c50e613164dfd241533dd08928fc695f3b3c45cd75c740f76f6a896cceaafc9afd64deb69db89cdbd589fd6987b1f5da8b5b9115d675d3ab6cabcd0f793f00418c97b673fa31b851c1209140f76492359f3580c0e4de09d2a3efb2b3dd4afd4abde0e97180b7b24a45063f07f82771991fd2da92e12de7a868e6e84dca6a318dd8ef3a1ae6420d63051306d0582b058b7a96f25766aa0d863059483e9c7a17748a268e896f0d02173606e4381b639b480fbf0b3541a7c1790e66810e064cdc9d4e176cadf3d64ac27648467cd0b8643ad1255347cb6b086788f6c4dcfb3363cfef54c3ba5c13562ce884b53b09e6f149a60e1fbb35b65261406ec04f4146b2de7c61c2fdcf0f714981308774af933b710d1d4f315feefa97a581a98dd083a4d31749e5d0af2ccc2109cb739f8bfe85e4e7844dc3907959ff3c04ab9edebf3317f354c5e0aabe4de2e0711ee771b8dd70a3008eb9936f8b6924ec0dc9897a801e00f6738ec7f31cef0db9608d2c3d3683e97befb02f0ecff93068a46e57c97201608756dc45ca8bad93e0f562f5d74790c87d4ffaa67613b89c22339115d7499a2fd038bc4533e46bfb5eef28b06b8fe9a3182c6a8b18286edd1b57adeb55bacebf7c842d527ff5024c0ffabbf78eeb956a5127555894ca8459d99df31fc0fd1e1c5f7050d2cfb427dbb2f67530e049e23f8310b88c39d25dacbd6c7dccb9e382b0b471980d54974adcdb082825a9d6325cbaf90030a58193d5ef0a4e1e8fc885f04329253408b4de1d25acd097ff10e0afb4ff344063edde277e49b18996cfa57a7617b395a54731052a95a3cced450d38a31f19811ba278c60097aa1e3c91e87c57486b23ccb07d687c48fbaef4e814f9500b1e6f679a749614c86197239936be1f7ad2290b9a421c4f2fdbd4178a75cbb9cb1f7eddaad9d369f79c0e383fc9ccbbfd5e4cb93b211c477cac2786395e92385a4c0815d0ff6849e961395eba07c86e698d5f62466492efdbc326ff7c955840ed2877919d1cf95cdf5f557ad069363caa905c97471c85c5d0e65cea1ca90df82a0f8ef5660f68191c1aa19a180d18ef4a7b0dde8250ff3ff0a97dd4d65c3faf1e3a426f6c4b64f1f2d65ce9c5e5921ac20197a00f2331e810acf4f6b71878f1b785a28970d844ab4b6d1a604824db09f15e96bb711389114a4680b1c8b19be73aa5b039116c7a7cb7d2c2b026f5847afd6d2ac804f4ca24554f5ab27db900a159579efd23d78cf5542a038744cd6bdd64a3b59d233b878b383bc0ef38a0a2a8ab60869b64634df1cfdf3b53a367d3bfbbfb741badc819cb01823a8e8e16f6b4a35c380f99cd45af0edabf9de4fe2e5b0e6c34f7dce2c8d9a4be2b2b8951c27080aa965ae3afc422ddbefe0da8f766c8c63823050d1ba055e42352d305385ab932f99c0309dfa8d6362ec1c07e33909ac63200787f5963653db6ba2994cf308c9763a153b6ba824fb8ee94bd6a38f2a12047f7e0b01d090aaa41b4acce8396c18aece73cce364a7e6d9d +result: pass +shared_secret: bd452a700448a4542a31dcddcd0bf285610aca6570d8bc85e20e163a13db5663 + +# Rho leads to a matrix with unusally large entries +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960116a338d74bbaeac359ab3728e268abf75a8d30b118141bbc56670dc0c5b2d05c9c2f03952338170754e20287c99177c66b810f009002c244f213891c5b980aaa23d15f413d4a80160d24e692c450b68c8c43ac60256ad748ab6aa85aeac5c623d199928f88b04ac7bad2c1249c18fe1b867a02a353a112ef71368eee3210f7082f8b216c975070e9a1a27dc265698bfe4849611716d0fa1b1f9047e8b0905d184b1fdd863377353fae732a5d0388c3c6606a773360734c9ba915d49aa7d358263d7abce563afaf382976b2ca2e1328d4aacdfd78851eb143a1b81c21713442421bb1abf77ba25d4355dd10602ce06754dd9a77aca0e25b1260e994d0fe1b83088a5d385251ad5c6a54c45d93a7d1b25cfddc1612b8b30e753814b505524a5b0b26747645c9b636543ac7a871b6a7cd3865f1d8636cb5210ae9157b567b2ebd17fe3f59b73379d086348c9806848ac3ccc1547e8964f6a1c4b532787dc8620050b7e628274683b79e133969ae154da157bbbab159941484cda4108c84aeef56af6036a8efa3d74327dac2417e6fb05e2f1c178023b70214296c3ce65151248533f43a4b50826b181bcb51fbc54279397a6e50113635faca0cf7439be90867a4c548a9af0704da13d12c7549ebcbe5b279afc266fd83b9c4222b717b86fd4724cd0a35238abc2c3390695ab975bd38e0681b67bf86f36cc91af700277998ad3d700e6419105dbc952144561137711a0acaad546e76c66ab5722bae1cc110abdff7044b662beb6acac276317a7799f7ec6bc1282c87cb284006b3e74c361e5c6c8b899ad122880a1219102404fad458170f8aa3576750a9682c830c7c8796daef63042f3607c5c059ff98b7a093ebda2947b861f497202510a6a2cdbad3d7ba3b8da61f02671be3410549aaa9c3140635334f6b4385cf4105ce791db08b73f3ccebac9ad93f1c7abf6289721568d601c2cf5ae2e4690ae0c77b66134f3e1c33bf82771491da4d228ebbb7077312babb47e1262009457a3caf60f0e47145e29a3ec3b37a67b9b418625142937278c50344c05a0a606fe43c229749415064556a55dac28321be77a256637fe2b8dedbcbb02a29ae505c641b004f970b051e028d047cd152477db673875148b71434a80221166698c3cc589374634c06110320b0f249a3ec4856ffeb478979533be7a333eb144550939b00164b6b1b545905612dc24775ac2e4bbb531c6763f934121a8a8d804951b05c8f9c9237046245b422272288e333970f7469a78d543132055c8781ee308382398a7bff70f62b7357bb8093624a3ebe3169e957f3a33019fb0296ea1cebbb484e87b04eec76a3e29cb38b451816a8feba195dfe79e820591d7e73c50139e2beb847ef43e42ecad64b533ee3857dcb35413066c7eb19e8c1bcc42c9959c13ccc4bab6ac81b44346261ebc74af482e34f855e08916e0c1bf33861fb6d706c3a5c03bc62c6d97cba4174b2441a32ce47db7b8703452bc4693be69a4c539c6a6b744211598cb644209e84a711a05b9116574c7a222bf459305f10a68d4c48eb72ea16526ff7619e8391032685e244693ec24b30a257511e00ada5a69b6cb75c2983d53157fbd708fa1e54057757bfe6067d242cee6492a51098913a6b2bf888ccb280dd3cc48c6a95ceaa5a844338cf4985978929e9ed153819b97dbb944e18c0d7530a09cd420aa7ac5f5910325d02368c602d531289db188d30c6fba407f32c41e80133cea869b52e8091f701c3d7a7d4b317e9b0291f05a652165695130c6cb783b18ab1ffeba0f72d2c21cd9844f8ac2826267081a4315927d9ab6123fdb0193f723a3cc3738794f735b1a145b83189b71c597bd8248ba511b9463b9262c80790a09167720473fb77b1da2af8632ad793c10d1916868b99d2d23a06875769d7151c9a524aad51eb4f20bc58b4c572cab2642769fe444362533a04c7350b3c5eb418785e13e05b5459ca2c856b1b4e1b266e9677a27d29f6dca61a2776c92dc9290c04d77d7bc7cfaa8a31a581a623cd1c046a488080ffa8c13f66f4d262aba53cfcad64313c5c2fd838f88e903fd3c7da0942fbb3c84f4581457252e8248a75e185d4b5b64e0634b2ec5c5a088a6251c9c8c76837c95c066a565f9fcaf0cc76a79e1a20fb05a5bc1bcdef32deae76105c581319bad317b7991d062ba1761cf1accc2b969ece35274d7b6a3c8c79142c43b14772ad96fe2f296eca5c9aa4b68cf14c584792b1e4ba1132aab4de7788dd642e307a6b2476caaca69a1f7a3946404a440764e4446c20c216da5965c88bb9e09c165b93845c68a5674105884c46c601d35737649815de052cabbb31b39f95531286e08e64772213280ba64b6467d03ec43c5911854498656a831a366cbc256813d451153a3610e6979671ba7bb7ba41dc832a81885589974f8ebc2e57a1709eab2ae9931a09bc97d486839d6a16b29b7de642aaf1861c31b6ebe82891896b4e75b2360a776678aab892b81c5e2175eb588885b980ca02e9ae7bde1dc6346a13a5964c4391b4a3cc776d9311f0a9706c2c04584d05b58624906417eabc95738407ba197b2a14c6e4655396575b585f7c2a8b262cfc7c7d6f3a1fcbbb4356195b502ca7b278133614379176f3f4aaa49a040c7672cfada79ed5a2400dab4d050560d8a30c3e57ec6411988e941622c64b934833f9225daf42885a5b1f7909d65b5000000000000000000000000000000000000000000000000000000ab6452d0cdf5872a6a7d3c97f59f7d2be589eb4ccf832936a00151b5443fc707a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: 021a27d9ee3c76b205152ced9c68003eedb09245954d50316a14a3e1d877bd9d6480d479265cf7a693e77b8761f11a09c1c30d2fa5f50497ae6a4d2afa3e61b0b7fb4b3504024763ac6c10fc2e6bc77dda7fd837ce115b84b1d0c749e8e4a961d3e7de1bf6b36741be282f9df710b46410df07191c3207dd9e74e8c4d43e3c75607966a1894e86caa95cba51a9c3289b00ad0fe59c034099b822654caec138a1b06635d1de59fd469ca3e928deb7873cc3dc2fe03aa4b5729f91b940f01ce83ae5aedac13d0a961cd9420584346346955780974ef21ccbe3208cb019f050fac0b80076b48ac6c0f3c2aa2dc3a13b914ce5343c7a140186728bb335a47515d361466c2d78f3fc6250f13a4d4fe6c8a587512700fd5272c9de73eb698045708e18b86d6b6692e3afa1b73e5ed55614dce4b8e71ba9dab03a246b1469c617f5bbf3e502632b060c7c17145ba7df290ec310661480de58a56cdab7a2e5a8e298746eb1b7b8703c5c650456c567056451e209148059a59af315540e448c0c6a7f48df9e22f373aca8be4df3bc9bda80e94a92634a612afdbfced39194e124c07748328698cc21f39de459b4cb08c6c73e80fcb6d0d86adbea470a207b0575f180ddc0d658d7ae66b2166cdecdee265a02e56bc4880797f0fe09c081788f5bb507db2406f37a2743a3c22ee0caa51ab62ceccaeaa9e189ae412f8dece857b0faaf61f81f2bd968d0f6c9048fca287f74d954e48ecf05806a695d06bfc66ed8b5297899dd4b3942424cec559c33ef0da1ca083e7eea98585f89003ae0ba98fb3f51becb80094ba0091f97b3a32c635a12308851e070f4a94502be51fc6f4e11bb7803cfbee43135c82bdd3bc82d58383636eee387d2c13c1866982d7c4f15f0be3bf5f87c8fa5d43daba703c73135ff3aafe4cec43abf9c1bcd16e56d6df85fc38dca4d09245677ed75b585722a9b20fd5ffe9d0436b3fb592ca6982ec2b96a8af589296b0b0ffcae14ec9027d4815bb9b933470a357d0afe5aba5010eb0d93a0fab2c28f84d7091e607505ecada258a551238a2ff68621bdf5ee1246c27d6e8673f1b785f7abc9b88310e3c1ca5e266f2c974d1c88a31e27a102330f924fb3713adccfd09c4415c1773c8da37e4e18ef274b00d462970873b54ad108f588c8bee6a7b4cce157109aa04ba0daefc9b5119b3ff9f70d4728574cb9f57573f41760248a8a8cdbbf7492083cfbf585c844f03ee2e08da4a08d04717b6244b63bbf80d0f4f0477f94de7ae6b2883388ba05b27ffe8a497541f012f16bd9ec50f64cd0d14e1a6c2be8c77ffd39d1d19ef402b46c0c41718ac406acb1b71fc044b1f93a4fe98fa8a0bbf09caf9dcfcbd8e8ecba42e4bbac9bb5de40f089b86ef71003b92a3fe385bfe603b098185d05f43819f8686b4f4e14a75463f2026baa66789edc52610ca8d3d5b11f10672c70c80effd7ba0352b2079de6910221ed21c487a7367cff076e84e1cd3ec625065d7a9b8ce4eed9d91c8a72b16a4a50d96b8a00921695a00167b53471e79aa445c656fc0d41da64d836ac21a34be767c514d1571e500fcea435d1a1d59a6d07140ee4d1a4014cfa8a6f0be9c334ebdea053c842a06124dfd165232c1a2ce63babadd8a56fd78ffbed64b63bac3b49e5af81c746253bcfdfd045deec785e0e272ef8c7151bcefdad6fa2bea962d621abd97f9b5cbf1eab792139d16b51e1f732326a5e02926817ed0bc4c6c4680e42e7d5847d6e0195c402e59290ce8a8f040a70980eac1a0bcd3867ddc0f2de9b204514011491c8dd63a371d331b2edb870e76e7ec5b27146a0097b969a6b157d00f66ce53b71598b71869063b9a29b23f3623837385571962ac29ac868301e2ec0643bf639b074c8a28f0a66acbd0ad77e5c86d01cabd8fddd77a4fce6185768566a6d98e679986aaf9978c49189a2ef1a218977f4d2c34c5027188d816cc918061ad13421be77fb910ee5aef5e159fb74169d7763b446e523470409c4fc4e76aa6d98f120013d4af284bb0a8e9eecff71b8544f9d3815062173ad6d4e9c4727cd6395bd3da54237501c73390cc5c48683d780efec478d2a15a40a5ffa3455f52c092993859fc8ff9c1ebb308ed03b5b88f6de341c3be3ddc96f695d68c1562b85806e162f1b07c5f10a1213f8d85f6b7d92e06d664cda2ddba47b93e2922d30c3bb110405fc7dd9213812 +result: pass +shared_secret: 8d99392e447dbb7f7eefd329325bd71d1d984cfb01fd609c3283a84fdd0f0138 + +# Rho leads to a matrix with unusally large entries +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3969fec41d1311ed2545f5281a09df223bc4918e55551ec060dbfeb41c777c79acb7375215002d9afa37b5a126625f7445c3fb51233650037e070648c924586bf7013c203e907332901ff722c35c1991acb2da41cacad4b709ee242a9e71eeb0ca1d05595fcea8d175553ce689ba595b8f98707a68a4d20f8a1fca8c34c3482e88c8b043a9d42e4a9e55a6cdd867e106b271031355bdc71c85c80713c0ef7c3ba3bbb9ad4e32615a2b104e52dc5e7481e258351385f9c8932a074529e327e6c0949756b57ef47094e184517819d459bbe35ac6154a70d004490b03803e58c9bbcdcbcd8451c2b0373656373be77a59beb2d47410d8a8631745653a02956dd0a0fe99ca87d78c273230667f25bddf3a65a216921a12844b8c98c197026e14638a97fa5144b44189621f00c75857fca20342a09ac44a4aa6c336d9ae58a15972f22555139e2b3e00ac0bf67b15d64ca8ae77a79b44e5b47a72ea06930aa9695b96987aa0dfbe63d83a352c9370247f6b21f225e096480b17333009bb78582464130612970cafb137f0e7c060db72de03a46d8a860b0cb2a45b462e5530eb566bcddda2315a633ae5054957cb74df537c30777a547b0c6e486787c74c3d242ee34158b212f4fe4107885b2d3da2224803e73bb282cdc8ca0365eb70751c3263531b31dae5a29561316003b2d781790cdc2ca09b65ed19995765263f06c8a1f3378d46c19b1b46a43932952a37e4c828e99f95404075b013b7471070422fc65f9c9965a1c0cd0141472fc7004f6319b548c19929f792ca0d588208ba4628cf2bbf7377ddac05a058308b7fb92cf55584a381204523a460310bba06a88d4b69cf62fe2a71097461a8c3b5eb212337887a34fcb278c59931f28a0000227d9cb9b1b3753dafa63e893c9783764bd01b7f668b83cea1e7fd94913a405babb301ffb6b57b2845cb7cd929c0acc7540e1bcb196679380822c7bb67f732a3c9ca778b60451fb03755ba151e6b0bacd1129df5174ebca123805beb8e91b840b70643713272ccbcc2b80008a46b3a818ccfa6ece2c3364f373fc8c10ef4b4c95955052f99202362bc3020cc2528486784784095fbe10b4a44732a2c6c0b2b50d199a93c544a00980baa2f5cbcc6a3456eab71c2798d04c9a85827b8b654c962b7e4125cfc0f82a59632462d656b9b96188cc89373a6165c287bc890d5ed9500ed08ec1f2822d718bb94525ce81cb48b4999e288b5c90bb7e3647ab26a7f5479199f9198fc950948605b9aa0c8d0b133851abe4d77aed7455b70410b54a00bdaa166f0b4712e3916a70846840c8f3f9c80c8a95c912bfef188782974eb372795d96cccfb6c9209cc2cbec64bcd064e238608ea46f841ac02d6aba8ba9bb251a381777b50570a5c79257a964190e56aba3b27c708803a2e6909a6920f546c509a7524d138a9c2c839f34a6a814b10ba4642b7214e447844d553532804154b36f688715b203cd576274445c98abc60192f603d970c988b42d6cc250b4349f2d91b50c123875c608c932a7f85bae2cd54b6de80be13914f2606cdd9b03ed83219ae5623748972a657e0ccc41579b745b3abf6b04b50b945f2f2963504bae804a261254ceedb767e252c64908abeb94669a94cf511b992c475d99939095ab9b19f74f75d30efd58beec598352108e1ca648b5f31bc7071c86aa97c5fcb60bba8884a3c72414916bf68a277a82b78857de531611ab7c7a111a632a64704458dac97dee2442b4b05a378baa74f34154bc8c191591eb2196a4d3174c3848b5f02f2351211f605b2608c9fd8a101b658599b87c65a3c2c7a266c02b3b8beab84feb0071c25a50b23ec8acb1daa290cca2ad6fbc8280c5cadac42993c083a25338150231cd134548661d645c678bcbc0e7815da41a14e8eb123c482e2831a1ab0399ce02cfa1a39a41c714bd8c9206d6c8c922043a235cae2bb6dd1ac430e22947444ded7447e00a51c13308365aaaf4da9dec03495c73295aa9259d4529eafb67dce58b374066796983f06c91d034226aa75afed116c886927e135564e4000cd86016346b56d9864c7abc6211a72cdbcd32fa869cab01f1da8f6bcb84cf1441781c6baa263ea684cf96a1277e2459ea07c6071b06093985b047b791ab6e6593be230099308a79376bbbcd71492a4a4de83a4d70c290aa05b74a8c80fdfb9293317d10e07615acc85d762ae35b187c55060c912d9a2a09e995afeadb874a5526cef75fa4701e9e0a5c082b92ed3b8887f0bcca362b492369881373ab878d00054027c4cef0c07cae57b30fc51e744653316591b5845c0a47492378764769cf3846b263ca6e086835cf0197b5025b2a960097e57597327f28d4b2fbc6bb241863a2c96d3242a031171042fb40afe8a75cc2976903a603b96019f4c7420b77625470b62287e03239e5008c1297888f5322937457b9467e52937996157e50764537ca495ac75fbff53dc1e8cb77002aa7988604b0829976c8e49649f7446495a7548227ce61d963da3bbd2705a8dfc73f091c20e72b77f6640a14aaa30134a1b3fa7083a50cbc720bc9a802a4208568e2a2ab065db245628ef2a138ca1d71fb3f66d6a8aee513f1c80b64a0bf38f01f4979a975054dfca823c4165aeb1876a7a81fd6920974b516d6b3a1aa71776a264a32447240855b84ba0fa1d35f07a8c11361040da933c4c44e88417b585c1a1605c68ce4000000000000000000000000000000000000000000000000000000c07898c8f447decd9bbfef0871a28f3bcaa4eb22ae145d00ea63a463ed3333c253f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: 6899d650581d8ddd73d6e7095d24e2962ac573877204768c66a78047649ffd373d4e0cac20e0b98675e6f50962871c33957b5a7ba2af2ab800ad728c2d0e70877cc3f459ba53d432d45f4c9ff4c951c35f14185e01a1fbd735fc3ed84063b579e69c230f41af67c9cd7481fea81ed64bf248c63f56f81115ad8255a172fc99d87d8fdd6db00ee407618c7877a2486b6fac3b8eb7bea62c24bb5c5655e47388f2108ac36d5e55c5511d72bbba65706ffdf297cd0788b4c34ead564e86e78c605359b6b344380a4ec73a4f64b7866a2eaf36a494c76adba39158a3d1d3b41973cad055780ce211982fee596ba61e5e5f7e44cdd8b1d6f866c708d20403760b9fd4abf31a0573afa130aab5bf7493b2365ef5437b7824366fb3ec967016e2da547eb61276be7c5509c2bd5e16d8812c034f6b4c5a7f5f489137385ad5697c4312042303a5d7f62e398bf5fcc758ec1475e7ba671c656911bcc32ddedfdb07252ecd0eeea696046e3fc9e564b2ffca11562191c4a1e4b31d9494961fb66ad44f24c4b0d8d7422df106663600ba380baf53007b6146c923412228936d7324a87050e62b185bf3700959e262fc64bc4f2b55402d57c63539c57272240f4725ea23d389b17d6af64e864ce3429c9c0514c9b384d79b830a9c6fe12f8781755d53b8af9bf81e4784d9780ba6ba0ae36f89a99289307481bb3955075057648129349f1e0ce4e750be53372f82c92230127280f0f393150c89715a43eaac8abf538a031155661b489b066e915505d59ba40cc0b5a4b8de7e731533fd06dda44e65f22b7931c4b8e34a72331d32798aee1c16d81e06eeef892e7858ed2e9c27d21a3030567e40a369e21c925a26712e1ad6344474bf8e9539027040eb4b0cf65b627623ddf81253c6cf002f837673d2389cd296f9abfcd38a36c6976b03432c9100c7ce9bc862d2c98a6dc2f931f62e471369bbfab644f8ae37deb65784e6f5414bf88cba9e6836d3fa3c0ab7ceddd81d31e94c612224270fe79048688b6d8d46acc7d656a647888a469fdfb6ef8c8daf78a2270c5058e9b87d2fc0e4f8a098c1cebf96e06ff1edb382e545387b2314b2f7d4a669dff20122a0165c285258a39e2a1d27c5eac3d79ce0cdc64dff98a8633882db588a34b93a1403f6a739bd056cd2d6531af36a2701acf47617024cd1cd4b9b60a02cdfcc6f34e4693eba3bfb32780c573b4482a5f6bf109c7ee51792252dc119a5e41a4ea8f25557b64e500a83a6d8a839c456775a9ccb906a733391605bc487bbd6ea7272325df31cce2093649fa8a379f4977801240ea2be8b1e6a5ac95ba613bb2798bfd1cedfc34c39e1c43cc094f8bff34607f8419bc3ef2fc0c37075dc49280656304d2f642c5ffe86d5cdea4fe96cc8b4451954e5d898f6cdf7e7ec5af447dbda66a254b964df9e8dd565d46cdf04dd2d19ea1c7400925be2105e45343baa9855c5236dd70e042d0153c904d30fe45d087b0f0863ec603ad74baf1836b18c91d98455f3e6477936dba7379a6072744be6d4c64bca89ac3334ba727e0763f0ea52faff3daa52de9fad1f27e566e7a6e85914a02bdec5f7a8509f80a616f6ed66848d4ce8920757fb7611ee7c70366ce847fcb62a94452dd2523daa21c759f36cd31337afe1a5c8e8ce8799c6f03873f58bac3649e0d0fe6adea0199ef6eed64dd1e2fe0bc606b97ec8ed1e0b567baec2816273b7280ac91b05fb25e7467e934bf79025f5b4060a813c221291cb307f7783d5877987124ecab1d9d8c8e36c10608871a92e8878220f593cbd4ba61c35d2805500cdc0b145cd6ad2cd614481edbc913733e3a5104b0006dd26e871df58f32047701b2420d93bdc2d0a2474f7d9927e7f196993d9792e30cdff67ae89bc6a27236a6f0ce0439d4b04788765943c2be5c9fbc0f139135ded84ce79d876eeb37f30371194c8eba42659c185a10c8941f9fe9fcc722183ba7e22a7885a66d8cd10f214f4534171e0836d86368cd04d87737923da8801166afb398bb345b5bee89eb512cbae07f192aa50a932a5d92e909e65443f4004fca49de5eb19abedbf57d066d134e096e7c63defe4430f8e1886bdd3cfb8077f7196584398589ced5670c7be91d715a20f51603db8ef35724805eb1c270cf16b282ce7c79111e4577a0a1a27a435c070d6b3e89dce1bdb53826fe9a05d86e586ecd950d27247ceec6d +result: pass +shared_secret: 71e358b21b3b98d915b70e9b877e94159aabe9df32737c71c50c2f99d7a074e3 + +# Rho leads to a matrix with unusally large entries +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d74933a0cba383545cf629d357aa8927a7bd4f6575059485fd455be7198fc01a509920f6c0b8c5a565b4b86c084a60bd9b9b6037727df67b83ae06c5e47aba5d263ce83808f40a378aa43b4ec5458b33a0eac8c816abf5bf76a1220a99205258cc4a9236b4dc252cbbe8884e8ebc1fe921ed408582182b273a199d121153ec38b7f183174754f66332ca98b87a31672720815ff7bcd0cdac810db905ea76e6496742d26b2989b201fbc2936f5a6cd60c35e757f8c33b75277560ab948bab2962df9c38c91b44f08090e5585d852c4b729c52de88fd8c54722162f2d7696946c7b710079500136a28b9abf9a5c0294a5b265865cb04f9796b648f85858f8982f15c2bf31626b236b2c3a6493910be2cc8610829d96693cce3686b8a63b91439118fa661729462ce58e5e28b764aa39911569d1ca5c1b33885400a16f169858930c7f135ab6a95d08ccc70d057f9e73a4c8ca2da7185df37c8a6f727893bb6db74329cccc4692589128867cbaf28694fa747e86cf98619e99b221db88a81afa73b3485846e77cf311b99822a8fde459d7d01210db0ce68054199939e8156f8f7c33adf5bd5f2c54c6bc70054a5b8e305d526c1322e49f57c47264091e39eb0c72a596ad5575434c4de07c0bbac32f7ed30a0930221bba0aa75140b0c97a6e1775e1211740c23390f0094d144632169e4a0c2534479b85546a7fa65694610b2fc19488a5833aa7bd0ecbc6dee36997a900fad18b1c13b7cd381b1ca598038c2a4e40ac374615ffab46b3cc992df777eb0781aec573783b75cb426283ea01bdcbbdf8f8b30ce92f46cc7d4ce407bacbab2bfa27fd7792f43ac0ba74b58b332bb915be649a573eb22c12b6037b4a8cc109cb4495a337e42ac82c48dac2099684bd01700b7da007dd8039bd6b09900776cc783ca114358ada02cf5443c9bc6c181a6c86daa79371bf6e6c5cb68b7255d592796bb7b38c5f8c655b2e480cec127a2dd4aae4b23c44d4367de78e74797b64b0ce07a36e73613ddee8a61c5c32f865119f1a60b44ab5a28374af3324e68604bfb33962fc1f06d661119c0a081c45dea91190c4cad6b6253ce560d4e7855a64c58bc950bac88ce61b76691a93be4b81c202768c984ba2d9122cab4880942c40d87022b91c5ad817dcb5037b835dffd916a2b35c09f782ecb72cf63239b6c33bd73c0efd115357b283bd6512c1eb3ede4730284328a86021fa805ddc55c96c1caa3832857cacbeb5353453638ee70669c4dcb6a10c723b18c71dfc44fb5600c0f8cbb35c6d0b075335f6bec7ba1306766591575b5d2b4eba76a84e326b1475b5ece6c3ccea5e555616d38c03fe630c3ce56d3ad73858539d1718b915fa703996ce39745831b3c93e4829cc5677e5a79d3b1794f81816dcc2c5babc859b0966c76c23a4e66f1031634c93b8a51550d7850d5407b4e2d00ddfb5862c1c570b778042986f66ec940c5039dddba773c9a6a3c10e370714d0a4a43300a7b06b01aea6b6a4b5c17e7482d59bb9e1fb16897cc0340c5b65b9239d973c06d41f6e7b9f351a22b8eba6ac1148d91bb4f8959395e6a6ab996fc79bc8f0f7309be14fdb65bfb0287771908244033a3975ce2ec096abb9c15fb40d33a074fa2c84bdf7b1ee94746c42044be55484a179ec5c7edfecce56f9845f29c7c535282759c2d0a2546a13bf56dccc6d4463376a46ed05ba7f54577f26c78e2aaefb0928c36820db23a999e4b399b9b4fc864444d665e58ab24577533aca26acc5c512970c3a84bdd6fa7c7fca6c60eb73a1ab79db779c208c61a2f5311a694dcb7ba37ef7c7db92587d4a77fe3665036531d12c1adcd29cd2ab733e1b2d3ca56a2c7c9f7e3b96d6355b73c4bc4061ce276308b449cc0660b0f9c30fa4a62005f836e182a77e0b74d2b86e3bb6a63fb58d362b9496025bc5485a086808d3779ee28038d1939c5e39b645db160059a04e1b8e0e532686f29d34467fedb02236f3bb0b699c68726961f49824d277c8495c9d804a61f5320e61bc57a85bef199700d18a69e25331c41646abc434e6033d4abb30f114c35377365c51f5173769c315edf076e58710449763af61cc316b5a3e75346bba705db322cc683d5258a249a22524db0e88059a423c9b55d173eca88ed47cc4711a2ae295b846fb113834ab688bc2a42435258b9b1be648c5889230dc153273903e06aa2590ba5d77a63a16853d304933157288e03af785bbce36067c296a18cca79a18aefa33855683becd7b19b3890de40a24d6d389460a4a66378da2b82980e61ff0b144bfd64d0ce294e9816b9105c20c2076ddaa1026c68e50982cf79ba879f630d4eb8df663390307902207950b8b9db571c306a033272ac8976133a641c585d43e730a4969d752072bc6f180180e0ca0fd9c27d7845be15cbdbdd44c7c525fd70b5479c18a24800833c9338a5635034704db0443307c616209ab2172a0bc42c239d87ced11779625315ec168c3716ae62a209ed7096ecb83d7939593e519fff06e99a6a09122c5bf20c5bdc09af2402a3a605318d68c2b31a284b33b1719a4b6c7a5fbe4500ce23f7d858456f47d135a8256c9b40f52c37d07c728da600f127738c027d131b19b0070cbf9322d1865fa515471d461d17c424626b305d68e34838d5d7a35fb91816b65a1f9403771fc3a8f22403ca8616f89995b52425d618a63a789a0dcbb9ac196bd6612fb69000000000000000000000000000000000000000000000000000000e07f23404b053d03c5dcbfc340f9406bd010d254685ac2e204a32e68c7ac5afee366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: 09ada15058fa9bf500eddb096fcd572a056beffdfce251252d0e9a8ae0300272e289f4f8868c1f4909b0502fba470989aefee80303e817862fb74080dbd7e872c05bd63162ada055a9f5dc88e9504ac344a517e613113f670c16415e2ebf5ecec2056620d4fd9b905a14a92d4a6af2d34a4aeb21ed9a98d498c25155559fc1b3046a5ea8c519bf320a8e2c0ebfe02cf28bfacb9a6a04c54130d93f1aa33af643d2620060bf578f525b1ece5464114e56c5d21692cb5243f763129a44deb9835f4851cbef64e0f97cc4ffb322c2f3863b26526153db89dca3f55d6727252de17c2021d3da9c1f9e3521f03844a066b047b318baa867c3201a1943c3a8245182f1d3a36b5e4beead76120470b2ef02b85ba13a1dcede19b5e4a7adf09d13e4f873fc5756a37f1ff240f6554683098437a9c374721088c0e0a390c435d8196d94ce94d988510fca6ead810a5da834f86f7bec0e41d83d35d1acae4205dc00a7a9b05779d41c893371bd000e308f70badf03e2f9066540fe2ad85f312db74fb48d054061c869f80bbf9f2c6c28fa691eaf8df27c7e13e076d8a793d7ef70d6cbb3afb059ba176888f569e73426765e4b866148729151dcd89753a68a2e1b76be36559dea6c7e4f8aac70a417698ac9d546f228ea36b01622cfb4405563a43e75c6baf2c626ff14b098ee33b1e9200d7b7fcd2cde35198b3332a3292f32bd1959132fa1510d8f1a43956b1d93820fb9dd88aa04597f65f86166033abd9ffdf9ce1ad4d8ad60d05f298c11f2816a0d375a9f8095aff0725905f508d20b11dd59b7145a101810ee140f86644827f31c64b2a7401048a8a5654934d6e5eb41d43a4957db61f341f5a214d2d09d4fa6fd2cf709264c4a755aeb0aa171a8286e94a354425d795780049f097b3c20ddb6cac39a78f8205f11c4744972263c1a495ab1fd563524f9822deb74a70df9ef5486ccf54e737fba48e3ee8d1c69ecd1c843fc38f4986f8fecfa42be99b056f24a2156a14d10998b4edb501f7edcb9df12bf1f235068b2961455f3513facfaac92d7d5093f00af6834d3e33c5f0271feb31edfa94bb3dcbd1221fe29095d6832f5a5155951dee6ba7a379f73854cf10ef5ad39b1730bb01e315a3c642321a52f4ea7efbd4519ba2192d974d445d6894feb9356a4c4b7512a0b1973568a04d7a45d7a4b0c73cc9df8147a2d0e31d2729c6091bd7a1c1985649795f2cb3b40f4df43e3bd7069683a737347bbca94239bd1e20badcbb702aefb93391c852108708db4949579eb495ada6840755a40fde96a009ed6acb54e98e0f4a084924ef15b25a917d497d25d9032a895a6ecae037af1d6e9f36ba56efc69fb893506a311f1f80b746c8ba0b8e08cb6c980c476a5982ce622e8d7394ddb0f6ba2c6dba68b7c5cd8aff2454dfc92362e82594123d9c200609d2372a7ce4df6e1b7ffa68df7b681c1d5174b3de4eec7d6f1321b13fbf4986b0c73ec6b9583229798801aae096bc5f972e1b3b07b0a40e1280070b2977d6e31aa8f4894d6dbc967a4d0b29c736ab33db11c172d9b771ffe84a8a803306a1b59d7fddf4975e6aef83375299d97d364a7629cf69ed856c689b09dde89fce7ff9e273bb72e768fd7d671d6591c6497f3da0eaee46feb58783f9d0495a62eaeca8e054038efbff4cc599529a9443b9496d1b0734eaa278121ce64d2a59c352b0ade0ffa907846a0ae8bdf02426f270293f1fc40f2b645089d621c18d11fac3d073afa27f20925039258e9d5530137f848d8e3e56f970d523544485cecd847dbc7fd8033f89c04a542f23a12e8e4bac7b9ecd76be797d8195b8f6f4e57b1b779ef41f03739175f1ac5e336fac71cab07f7dc760e4de2a3296c5acdb01dc5096f3f2de463980ab26e6d84b8a0754578de9b0a022281d6d1ae1a4ee40b781f49ed605a387b5176d685d1a29d3581eee4b1bcb050c2567e4f997330105e67f128c28577eee5ba1d170365cb81dafd7b218c8ad0207bcf00a38ea63ea404e3482a110fe16d0ddc8700e185670fc1df89ccc8a712df0c4f69c4db77390f72bb12dd627ba0159afa309e17e3538c313716f7d03a07998f941a7d4b8280975b2c353495747d1e115b770951ce5c924a8adc73eba6bf4146aec3dd27f828266fc3e1fc23f3b5c501404ec19c8030ad8b07d26aff71aef4bd7228728442325c5b880120e1c4492c1166cb27 +result: pass +shared_secret: a2334b0bf4b86c60c4bd971e673427352bf08c60e7730fcd94edb8c34339028c diff --git a/crypto/mlkem/mlkem1024_encap_tests.txt b/crypto/mlkem/mlkem1024_encap_tests.txt new file mode 100644 index 0000000000..8b7fd485ad --- /dev/null +++ b/crypto/mlkem/mlkem1024_encap_tests.txt @@ -0,0 +1,1840 @@ +# Official test vector 0, seed: "061550234d158c5ec95595fe04ef7a25767f2e24cc2bc479d09d86dc9abcfde7056a8c266f9ef97ed08541dbd2e1ffa1" +entropy: 147c03f7a5bebba406c8fae1874d7f13c80efe79a3a9a874cc09fe76f6997615 +public_key = 537911957c125148a87f41589cb222d0d19229e2cb55e1a044791e7ca61192a46460c3183d2bcd6de08a5e7651603acc349ca16cba18abb23a3e8c330d7421598a6278ec7ebfabca0ef488b2290554753499c0452e453815309955b8150fa1a1e393386dc12fdb27b38c6745f2944016ec457f39b18d604a07a1abe07bc844050ffa8a06fa154a49d88fac775452d6a7c0e589bfb5c370c2c4b6201dda80c9ab2076ecc08b44522fda3326f033806dd2693f319739f40c4f42b24aca7098fb8ff5f9ac20292d02b56ac746801acccc84863dee32878497b69438bf991776286650482c8d9d9587bc6a55b85c4d7fa74d02656b421c9e23e03a48d4b74425c26e4a20dd9562a4da0793f3a352ccc0f18217d868c7f5002abe768b1fc73f05744e7cc28f10344062c10e08eccced3c1f7d392c01d979dd718d8398374665a16a9870585c39d5589a50e133389c9b9a276c024260d9fc7711c81b6337b57da3c376d0cd74e14c73727b276656b9d8a4eb71896ff589d4b893e7110f3bb948ece291dd86c0b7468a678c746980c12aa6b95e2b0cbe4331bb24a33a270153aa472c47312382ca365c5f35259d025746fc6595fe636c767510a69c1e8a176b7949958f2697399497a2fc7364a12c8198295239c826cb5082086077282ed628651fc04c639b438522a9de309b14b086d6e923c551623bd72a733cb0dabc54a9416a99e72c9fda1cb3fb9ba06b8adb2422d68cadc553c98202a17656478ac044ef3456378abce9991e0141ba79094fa8f77a300805d2d32ffc62bf0ca4554c330c2bb7042db35102f68b1a0062583865381c74dd913af70b26cf0923d0c4cb971692222552a8f4b788b4afd1341a9df415cf203900f5ccf7f65988949a75580d049639853100854b21f4018003502bb1ba95f556a5d67c7eb52410eba288a6d0635ca8a4f6d696d0a020c826938d34943c3808c79cc007768533216bc1b29da6c812eff3340baa8d2e65344f09bd47894f5a3a4118715b3c5020679327f9189f7e10856b238bb9b0ab4ca85abf4b21f5c76bccd71850b22e045928276a0f2e951db0707c6a116dc19113fa762dc5f20bd5d2ab5be71744dc9cbdb51ea757963aac56a90a0d8023bed1f5cae8a64da047279b353a096a835b0b2b023b6aa048989233079aeb467e522fa27a5822921e5c551b4f537536e46f3a6a97e72c3b063104e09a040598940d872f6d871f5ef9b4355073b54769e45454e6a0819599408621ab4413b35507b0df578ce2d511d52058d5749df38b29d6cc58870caf92f69a75161406e71c5ff92451a77522b8b2967a2d58a49a81661aa65ac09b08c9fe45abc3851f99c730c45003aca2bf0f8424a19b7408a537d541c16f5682bfe3a7faea564f1298611a7f5f60922ba19de73b1917f1853273555199a649318b50773345c997460856972acb43fc81ab6321b1c33c2bb5098bd489d696a0f70679c1213873d08bdad42844927216047205633212310ee9a06cb10016c805503c341a36d87e56072eabe23731e34af7e2328f85cdb370ccaf00515b64c9c54bc837578447aacfaed5969aa351e7da4efa7b115c4c51f4a699779850295ca72d781ad41bc680532b89e710e2189eb3c50817ba255c7474c95ca9110cc43b8ba8e682c7fb7b0fdc265c0483a65ca4514ee4b832aac5800c3b08e74f563951c1fbb210353efa1aa866856bc1e034733b0485dab1d020c6bf765ff60b3b801984a90c2fe970bf1de97004a6cf44b4984ab58258b4af71221cd17530a700c32959c9436344b5316f09ccca7029a230d639dcb022d8ba79ba91cd6ab12ae1579c50c7bb10e30301a65cae3101d40c7ba927bb553148d1647024d4a06c8166d0b0b81269b7d5f4b34fb022f69152f514004a7c685368552343bb60360fbb9945edf446d345bdcaa7455c74ba0a551e184620fef97688773d50b6433ca7a7ac5cb6b7f671a15376e5a6747a623fa7bc6630373f5b1b512690a661377870a60a7a189683f9b0cf0466e1f750762631c4ab09f505c42dd28633569472735442851e321616d4009810777b6bd46fa7224461a5cc27405dfbac0d39b002cab33433f2a86eb8ce91c134a6386f860a1994eb4b6875a46d195581d173854b53d2293df3e9a822756cd8f212b325ca29b4f9f8cfbadf2e41869abfbad10738ad04cc752bc20c394746850e0c4847db +result: pass +ciphertext: c9bead6b0c1114389bd4761c73ab9095b5809daac9f659bb564af226173052a4a3e7f2e5fd47d2b02aaeb5189e06b9f4ae98b619cb63efbdf3989a94b36e8ea0d700633b950a0ae2a78ed92e85c85c70e13e626fb263fac9681521c3ab22fdab29173c9616a2b037083ff7b2e019b5bcde068fac257ef8f12798411693c1bdcc65420997a513a8a69502620be8e4ce7362e412a76cf51c1f2433f1ab64ce0e5d2f56d7c9ade994d0e35d0aeef3ac515b482437664d8c1d25e5a5507cf80f970d3ea7226aacdc457cbf88a0560aa35bb2c5c455867e2159910a35810befe3aa10eb04d8d57147cb8f66d2b070bac43d1f1ffdd57a9399951f64965727bcb9f66ad42309dafc799c1c540af1af93eff68a86d61f5115db662dee7ac9a362677762b6a164a0fa0a4d859e4b8c8dbdb4e183f5e6808fc52229650caf7cf3e16de3d895d148c35448ab8c2753c9831b24bd4921497eaa192565cabfd83c0c68dfe7d392abf5e5e6f84bb9f5af4b7118c0b558105f9c10c9b6d70682e1de6e0689d7106a6374bd34aed7229e6cb356f2ea65e680ce7b1e2c3704e116a38542826e8a001141baf2e34de37a03040986d4c0cd5d57f0701ce930986fd9525b58e2e59f45b8dd04c0f35b0f47970cc67079618eb9e6d91e9b0f8c6d2e165cf448a2c1ebf71b6537e0f375185dfafef698b6239bb35580b315bcb5ed408c357f192def89bc1b75cdd6aae8b5faf0c3e13803f6bdfa76fb407fcbda790c329b3ee42fd3d3b03bd5003f0bc432f7ba39631112452dfd12140433ff8980eb6a526ba85ef99477378b4dc76635a5cd5040e43b8c1fe4ee5e158e423bfc0c893c1d5613bed08da719c9073184eeb36fd357380fb1873d8cbd36e2255e985b1b76819743a6584a9b3a580996c9c2eed9bbbfff78a6204b5e5eeae5f4efd2660078b37f0754ab5da862e666b145b5f23f3d0977799929dfa2aedda53d152eda1d0d0e4ea43f6ed889bb965eefe0a7c685bb36770eaa874242c0e229cf6ce56defa5aeae64d0c40dda8aa26eaeb31458f070a3bc72e1619ee9b5f642291c56df5b7e43db6c802fc74f4f3f9b5c0d355c3aae520aa31229d12f3e7cc5d48e691191a36b283765f4133f0ff1fe2f01c6648b2798a74eb5d842a248f524a7e7f8974211297b44f0dd19f386e86be6ba782de77fde887226f37a1c77bc5eddeee5bf46b67fb7478d559865f262caa84d64a8ce59e4df0818e14861526acd3483600f3dae7959d35d8181ca6a81ce791be00752da7759446a2cfbe00b8248b93491debd520220b755416d2fc6b7c8af2ff75e5bcbb8e7537380a5721c77484957a69271d8bafce0f166735ff869232de5d381afbf0e44d69172b79a35191949de09703b94222b13c385c6081e6d2ede1e57fe184ef8f60196b9a3a7b7eff7497191ca8741b5a01e79cb69a61142e6f5d080fbb3e566f79e146f75c8a1097860841b4747df604dba954e4a8d9e0dccc1f609d05cf8d31219ecd60c312de684552f09227cb829291c645732c5f5d4d711639f42a23080aa34fe1420f219bd6bcf4e3b29b9d02293b2da81383e0a51d2bb186c7b0a211a0cd63acbfc0210401e985d436b3803d5601c24136afd1562522e45b457cb439178be4a87cce40346d34ae0f3c39103c8a3ebc9c86c8db8fc5561eb0f3a143d4e9fe93a5cba6f6fcae5650d3f43d2668a5956c922893b816647ded0afc052a6c3d9d01a3d3af0f1ba807ff10491e131dc15e165cfd0650a1f2c313d7956141edcc61cb90e9e7abf2fe35fc9dc1bde88939fa11f7bbe3eb4d8ffa643b074d74f45113586e9bb12060003d71941f2da098dc0e96cad3255cf328ea2d3308c1f4585e89c613c426b7e798e1ec4e98fe6c71e7491f5eca0cd05115861bd160e3fe73a58a026ba538e0e256b92f1d7a2497570594856860ffd06b601ac575592f4ac612b5de7866042123ebc60c55768e3a7600a3260551f2bea22bbf6b6c8246e80f9125c4bb9db354dd64ae695c15f5071f4abb9639207cac7331b310f69a05f54b995de529a023f033b055db95287a14ba30a7cc526bb724c417fba290636a996f286e3e9e939e4fe1c398b5c6599959d0b4445a327ec469a1653cfaea7552cecec085ccaa68938ae4ac3c424f7e480439ebd2c992b5f6f95ec244b657dbdeaa9ae110aaf4d68bf4e27410d43ceef3e88e9c717dd44c9ee +shared_secret: 489dd1e9c2be4af3482bdb35bb26ce760e6e414da6ecbe489985748a825f1cd6 + +# Official test vector 1, seed: "d81c4d8d734fcbfbeade3d3f8a039faa2a2c9957e835ad55b22e75bf57bb556ac81adde6aeeb4a5a875c3bfcadfa958f" +entropy: cde797df8ce67231f6c5d15811843e01eb2ab84c7490931240822adbddd72046 +public_key = 938a454364cf10a4c719113a23b242bc013962f13421ec0686e32ccb80840749643eb4b5cc4182cee2366717cf77f97da296a185440113770b6f755bc596cbbce021e94306b1e4ae437ab7dbc29527142a9223a8a7cb269391cad8f70c6cf666118830485ccaebba1bda242176559904713c6722c413d5c2b9c2669d58138ed5b23506a71c6182af6939dd40c51d678639238c8c071384c1256ee6a307475bb72bc93976c8976bb89c736d8fb19580cacb1f335b97d16943c0706f78095408cdad77a9fe967c4bca738960b3a3c171680426528a21578b79b226bda19a9bf132998a2149c463932d630b0f131e8096be462080e6d17107704f3b0cc90c3908cd645268375056e6072425b51a46c27a48b9c0db67b025a58ee37b44794430f3ae6cc74e1673c2b1d4b29db5370f590eaf6165e5806376f6a7d4825c74038792683f38893464103d82426593f366f96b023008be21956e6be8a4bd612d4f85239d62ab6c39069aa210b47b37ca85394c19327e5303cc9c54a5c63aeb104dacf67a1c1c3142710dcf682edac82471ba98c81a552ad2541b7338b2a0ce41354ccab879f549cfa58995eb8c64a8b30b6f384ec2e04dc1a11ae04c967f744024d70da780516777a1b1715f22cb1eb3511f5c4c99ce577836489a0f813a99a622390b52e4757843c772f6e75f470305259833b3993919f3aca66563f3eb7375f5883cfca72398b049170ebf0997ff277e44501fb0e83d0c5ca6c701048180ac68d857e0dc5d24b1628433c737b8808c290839d42c6a322250e0c22b81b4c018260d288c47976bcb84bcd0856c40448ca40b723b8144837965ad46b521ec4b405c28589b8536621a10678a75233e2cd59bc6e03f49d93925c5bcc133bea39a7e21907a19840c80225f1f154c270a4bf0206a16c241bf42cbd351055adc8519d38fc9d3b976e2144909053c5843c36b7b247a6ecd04c9d792a6fae968cbe11713592b287cc8b07b73c334bdbcb91d05c7ae4e86aa7547b4cc6403504acaef4c6e5b758f4e261c7624337000c187648325f36ac8854d4a8a1c2c732a0811b39439340e23c33af0ce5090ce800070306834321b5af9e4be13b22ea6655da11427f995a115dc86cda737aa99078407b9f78b914e831a6bec2c85f922f972bdda971b66761045813a852a0fd990136840835f8b5a72c5c8e8a65ce8d3ce957b06698261160031597a29e3388a4f5a5f0b96b70481a2e5738d3a50189496c75a856643899947c955be8871e808030a5757d6b46079454b54d51557cca964379bca5a8191698275dc51cb164f8e508fdaf480031a28afb1c9ccc65da9ac1cdec625131c6630188ffffbcb726133ca563da640c76a6c24105502ea3c24b918c5b818121cc68e2f1b62112a41594a6359876b91d058fd66861b7633d73cc7226b8debebcf90fcc390f761360554acf013ad03911b49b641c73687f4a73f8c290a2890c02c56e2a6567fb03826353d87ea41369673e1f9b920b36203cc9aa464192d01b6d859307927a629a24b34132cbceca487a0cb3c7442aba47c4a077fbe7442c2a4221a200a93e726518830b11b690f0497ac0851a5b27ea20253065a9ae7e6567fc26500edb11346955aeb2d9c6c228f1644f21b34e3694c05016284bcaf746ab6344a10eec87cd0f76a611ab64ec86288c339294aa15233abfb680036d2155fe77363530c3ee0c4b8b74a54e9a2453ca081d01f9626867632870b178d25b831fd133a2ac0596e688652c1772e2979305c5e2a10949bf35bdc08cecd6771b7f659b61960a45054998472163c21d31024c0c24972d5b145608c1044718f60894bf5875a453d4a7c4569c63a2b38c2db6a4fb8dc9289610ef12754f37cb4dad3b66e135d1f75759622cd7fa03c4ba81d71ac9938c9a97839a12d7a4622943c381a048edb26c64926b3a807b644aebc9110c54b06d4ea1cbf6462a55b31c7f5202cca8b7c698d9559276a1a3963cc56dd26ce3c051167f299d80c3a8ee894f134567cea1032c845d79ccd95313f04d6459d1ba72e00cc604365a9c5c5185005f17a0397a559a0b28f31b41a5e0948c81501e902b9cc253f6eba88172bbb92024984fa99c5bab08dc01504556aabe8c81bc99c56fc771ddc85d37b7c50182345e189267934564aa9dd80bcdc25b127f1244763644004e5eaf06b095b892bae095e0ba7f9d2700a50 +result: pass +ciphertext: d0f902d86e1ac0a000f40e508ecb36f575902e319cf05ebb6de2ce63e02b912f9cfea50f513a4167a6f8973a656720aba76c83fc8caf1b9b922233e0356c9bc2b0f6fd5f083aac09b965c01208019d4d0f458f321a07197461eb3f71a136ab7fec0d7c1c6c868d6b2c890f09019f5159fa21642f44b8c1b89b9dbc49a0a9d294fe670ba0915a78c4a5a234af77b925e582eeb1437cebdfd3a86c98abd5723bd2fdf6b54fd79ed0dd867c5ff16fcbfc30bd1b739a912aa87c70e7213a3e42218db247422423089ead4e87ba998da1f354a1d1a65bd8c481c67c7aded64ceecbc1a9bf413e343433ba93fb79350187825e984f6e23f5dfde9b56ae1fa50ebd1e6c6b0141e3b9be3a5d1502dc21656d26dbce6eac70a596f23824d512ba86069a2a28182bf71275cad1639e947666a7c71f04d72bcba3036e774a23e95216af23b19d7af41f8db3f725d937915c72591fec65e902b486f9ef294608624d93da1096370c56a7f340629485cf0684e9ac76609b1f3d8f3b89bd20b87ff3805af4f2c62014a4b3f7e25c3cd12f505048464c490363b40ef68da9da2f25ad691df7bd4402c9e2a210a4ac9c2e1eb9f5f787b876e88ddab57ceae57741c9eb633280995ceb65a6871b767bca78b6569aefa1059d16c90a6afea36f5bce1d6928de55c9241c3b0f225ac7cd55b8ebf663b7c298f41c23fa8ccd279845a48e6614d500c6669cdc232b92178e7fd1fcf5b0b1a9c03f9bfaae1a8bdd856d91616e913f82a124bedb501dfb68d91f106b06acb3f9b6d473d8815ea27bb839856be5e5f26430615b97978f6113b042dad56475304aacb6d0ad777e63b4e8bf53a0c51c8e8b911147ea7404ce6d1a70770662b439fbd3d4e4c2788aef534ed19012b9387ebb9be3323daec6ebe149264c0253912f4f0eccce2d4cf5a7790e035c3a52c6a1541a5ac5be90526a5f031403227ee76d0836efc37a449bba10165ffe58f111dee2dfa288d3da3ac84894ae676f265b02bfa2a809fc622c3b8b4201ad59439d170e7022488e4e6cfd0fb5efe962a704905bc389001ae16ec46af47ff3a0ebf900a21fec6ccb754a89450134ef6945be8fb68960174342121c36cfad95025e336cfb15262caed34b3605ff9b305d98e53a0e1eea5f4f35ad7588b4f5ea0875f7a3c35ebd13863b299a05ffa14662ccc10cb949a56573a419bbab7424f7c13e537d497f002689fc6190d5a079019deeb265a238c1cebb9fccff0a3203783b03da50d589daf28ec573bab47207adeeaff281e180dc499d62c346b2485be4776f163361edb2fa9613537adaa4838396e32a91badc75487be6a1345ad93351bf4ba3b46084a2ba9421f0bdd9ef47be8fc22857cd0c5dc6b83e6a7ae7d0026bc61ca0361aff37b0d878400a1637a522a06fecb7be0e62b60fae2df2c7a1e68ec2992cdb505a5fd1ca7c1f53f0a8ea4162639af6ab32414b33cdf10b8aa579dd827c30b8c1780b3cd9d67320a11704057e0a77e998e1e4c12f3e5d8a13185ae6830911f88e7dc5cac7004abbc512c6ca69006b7dba74f147dc49785a1847a919a620c892d5a8ff3bd4b664bb73271d8d069ea19bf0e924e2869688cf0f26c1349abc29ce6b7fdccc1174f1a4b4fd26158b094808fee9d0ddbd996f785e6a1caddbc3293a1114feff09a19fa71f286f48721e810693ca9095d7b3c0b9736dfab4364dc1c0075e3face4dfe2eb1c815f713028312f1d106184c1bde874900591731dd75fa8f1505d816d51780f53b9b759b295cf5616acc7aa02ebe6b90252956275844bff4865637eea40969fef0ca595979b9215edfccaa44e09e67d8419928e09be7eee4d240d24f70db6bee802729b4244c619f38df99d0635a3125e2cc7c65bbe41caf795fc6d474ccb000f54f6c4daae2b62e62e2211f1258985e55fc5942d8c738c7df8a184ad34308dc798f4933031095ffd01997150899cfac81c533e6b1d92002640babf3ae3b73371964dd6dac95d8927ac33c4bab3e7a7d115fd1722b8c625da2c967d29764ef85240cec35bff4f507e3d0a02ec6d26a7ab90b8c50f392b8160ec34ddbd389a15bd47558b5b890cb45aee2e7c9f516201ad9e603c71fb631d0b930147a8bdba49e1dd0ca6fa3a8a089b520726dc78ac914d0c41d5ffd5875f798eafa2554c1ffed8b4e03f316a195c95c9a7c1351a06231ac84ad6269280ecf63a73 +shared_secret: 425ada67204ff5b30a9d1cb545bcb4a6dbbd923cb3ca284911a1c5fe491ffb39 + +# Official test vector 2, seed: "64335bf29e5de62842c941766ba129b0643b5e7121ca26cfc190ec7dc3543830557fdd5c03cf123a456d48efea43c868" +entropy: f43f68fbd694f0a6d307297110ecd4739876489fdf07eb9b03364e2ed0ff96e9 +public_key = a1a341b578b4765c4649e6bfaf5c8b2ad80de5200e4dd30da0b693f5ebbfcfba9f0ad2ad46576a7a06b65de6bcdc432b6a753f3a6326a27073436483aef170b8649e2ca022497329d071af4c25968cb0521a118aec41cbeab013786a1c2984cb2c649da0fc94fdd880fd3a05239b84ac053ca0f822e4c94ebfe1b6d6898da03b02e455467af6c89db7225ad653a5ac0c8e165f3b9b68b01270ef0ba7cc56322d5c671805b7d333b899abbac120c010033f3064647e4a387649c272a32c2dcc2fd62793d8689cf59619f43c87fdeaaebcd4c3f21483863563ce8442a7f581009410b3c506146390fcd44d0f918b2903940a321c66700ca4e205d4501ecec23a4d17157ce4a0bac562533273fb8071ddf960217696ccd98a59e6c39dac5cd185a0793a9190e25a0460837d07d020d72b5c5ba9840b0940832fa3a483aec99d0d629cfd67a1ce77766a23b2349947968c238d0126f6ab9422b97d6dec5657a20a683544ba07971bc773a5da90bf471eaf12310283944c723eb1e0600eeb2464bc71de7233ebfb7be64202ee21088222a48ba200f04b6bf6a1c7f6404295764e6fd857d747cd985b07f4d83f8b13a901ccbff7b01e21b8789c05b635bcc14c8128c379bdd52029efd660468a34512bb78da224fff9a223371e457333ad464c6fdba4f6c5451b585583655182691f6ee817cf81ce6e7a5cc6b9cacee275c473ae1c58aa38e43de50796f22475fca44270e3a46fb5b8bdda74e3e05b88210f54f36e79fb05becc76805b716154a6e2346b0f4cac241748fde93f325b4f82f3b681136aff8056bc7304ef22652f1679c816032bc35db68b64b2848351da88df89166707b194cb4759e6761032aca4b7a54e8064f5755d36288fc5061072da1ec35a8491396c9406446060347361bed860b028b57250f0187f45a204fba678f587ae031ac38480cf4c3fff90188d925bd4c7c6bd0b758698bcde97ce3958697610ce05e4abfca60eac13b666732e8262b36b7447c0c93f91362c519337052865927a9862d2c1ed186b411554275a24dc9738751a4ba243bcfe46109212b711aa453a35b09ba20ab405b6f0f3457321b24017261b49923225b3620678c4f474515396113880df463138abc3e820c65415c593d74c01e5136150b02f1ccc55a6c1e7e9b121588362d784c3e85658532331bb596682377c752e7c259608b629e74a5a470bad77d3c0672b23831a217c1ac82b94a82437643807681cc1684098b86de031440a79378a229bd902f2996f326a0df16354778a4cd5375c756a34890ccf0c92ba07a61546387bf54c2cb0c8548d4780aa72b667c0a1fe400b30f194465cc97ff42511e75457d1a8a9712a6ea971d797baa894b0348561df068a3455a89afc3684081ddfc0a90fd8acbdc217c83398380267776051cf3491542534b1a74b409b69a8a142c1b437b5a8561fb064ecb591b7334afc482af678cfa4e11e970a48bdf822a0b45e1c591d07792884e4bd057a15eecc5cdf66c994cca765daab1af377a14b98bcd8918fe3546fa4438ba5322da1ba75543be245b12e228d07c1cf1091499a2c57dd42c9f6ba3240c053165ca3fd669b4c3944a7d003d016a0fca826b5e615846c48873cb7f222cc12462023e38f14d98fa0486eae480f81a7376eb6380a42a1a2a6123d8a4efb102ee7b900cbe7a9238b59006abddf2ab25565815947b3bf6b14eed43be91a5687b339e6bb6614387583c585f1456372aa68b17449c2a1c6269a05f8659da97585f52421ab74b9d705ba13ac139f15be9f41971e0a6e04ba167be9b681d294c706d0477a22d64565e71979009a18c8086059f3964ed327288aaa0c8a2b2d976d5fbb50b842bcdf3c9d25656ed7224f3435c9bc9b59b17727b46a546eb8553dab54ecc6842cba94fb24592ed077fc56bd5dd2cd798715fe0c513377361d263c6348340a5018b0e9b43e112bb6ba60503ca954f2bb25fc585c021b57fb3d1acc80a3b20ff4555ebfa223f90762e2008ce920a420b48cd8fa9606ec5834051d0904847466564294cdaddb25cab5cc68008f96971b2711ae8d73b754cc8ab2bc13e07708e7b555ac681c0af0961a19105bf62b93267b8c47c73526b8c2d08bb13867be10211347656c0108aa3825234847519a52b6a4599ccac59e10e945eb7bd579e0c98d12aa9905ed85271887a974ab8f04a783747caab69d +result: pass +ciphertext: cc16437e7453409e7e200c26909b67a5b0da26997f8660fea78caec9503c6d1a0faf70f017ba882f42d9f8b72335b4a3a30ca14339fb6f0f291ab81d13f2a18d4197f1d5f72fea47cad6c1d3dcaa6e4f43933abf3be44d98083d4a4e34e46b9844560006b42259963945e99ea39af5e56d6299e4e18b555729a12d16779359375d74ceec3b24ab394a86186fafc84a4dfe20dc024527450bbc57f2b1b0fa88d4a46cd21341c7efaffd5a05da3e35260ebe19d79509fa7067b3a498c439f5de384b0416a437eecb7cbea64a6f4076fb94f7f8dde4ccb3743d1b3dc11f7c866e637ab75bf8099599c0233929519a5297a298c95a1b6a3cc3fbab718f1807065106bb290be1d61d5dcd5f228f8355b47058095f599f9b34a3710464b7e367c58f34ac6cfea3462491c78667cddc66faeb43ca86fc1c082cdcdf9139ea8246b871fb5f18d82776ae4c6d73104d2e4a1a6bb11cb59fd39ef66f69a99dc3ece762f9f4bc2303591b0cf8cde08512ba2f47bffafae181ecb64c4818a64640a4bcca3c13e075e82d7f3604a0714439297243d204d0c99f77c804bc3eceb1197e389122021abece24f1f68b531e3f56d46153ede5a3a9ce28e172ba71b30ae0cc5ed2857286e4d8cd977f6a939af4948db5c89dc19513a21ab4feab4246e42bb61ad21de0d23bd9bc2eb04233a27a81f5e5e487335dd4525eb230fc827c573456e0fe77acc292e5c5efbf38313899d691b21e627d699f50089f987c7227b4a4d308ab2842b52aad8b020f045b437e35d9de9a7c273276af986af87023bd3eb59d34d6216c4e54a143b3a678f5ab5a466a323ae973c9231d595b8cf7285d32653739192f7f9c0583301f87d675384068102b05ab76f59d45d6155b678cb2776115b44b5209bf7cbee2b98bc55fd8cc5049e419b35fc9bf23c118a5f30e017817d9c5c8c8e1fb1af2e40f5087b182cc2d313a9a7defd25ad69fb8d9a4f3b6d0c5f65da88925d0794c99b9f272645e88ee81d20b4381750fe8a5a53d766da8d054b4110bc979f2524bbbec13cfda3dc0aa8417bf599128c4dd8db36eae44ffdf6102d3e1aa56276b31cd8ac90480fd658035190f781c91ea9e4eafb6f39a24cf72096f48530542c4ac137ad4e7c4a207c82905ee55b698c42a84c6f5838938457d577dd6e3640bacc4bbda63cb0a2b8299a3a06b49ca7b91c448bd6b2926b139e3202c94108b0ac240fed20a3d268280d845bb635288a07f65b019a22df9f31b5b4f228be8bc92539f284c7a94c5e7d75933f557000b75cf2f256d2a32e4c53c33419a5a2d71b635257bce405111a95592ad424edbf7c5a5d175cfedb0f51550cbeb07ce2dc5b148e3889b3bc3cb15f6630c2cbb6641f10faa58a945414cacdde1dc9d5c578d526f3cb2e23491d69271fac2deca3d78cd21f53607ffaa9a9deae490f84a110002cffab17a12c88e07935fc95fbdda51fdeb372014016081500c927c227542d6282cc8dd7d708b3e834bd3b73137e11ee50759a4f83b6d311046f9cc198b2b618dfd5debbba8bde77eb6636985238faddd7ab039cf3e7bf1d2bd21596cf6c7ffc8d0a8cbc0b14524fcbc6f3b240293dd1c75d4a7c9f241f933e630111c68483f9bce89e1a7068952411d6811dd8a0b00cf4664518f6695107ecf569a741950cf278d416c8d200d434f6d17ffe98e7eba8ede594b9ce64c3f4763f2dff7ac81290dc18d6d5a5107995bb7569b053c7c643846d5379e71044ebe486ef49e48af47ba5c520af0422a6ab0c82677f62ee6e9c1430571bac6898d3b78d026a04513d036b855ed51d13047ef6193beb15490babe0567b7375df71b2311a501a14a57ff376bc465e1082cb6f2b9bb1b6ae778130ccb7d93db187d6c79fc6a506d8b2e1ed2a33af3901bb5da0cc2bbd04fa0d10c8f3b5c2f1ff2e790766fcdee2b62be2265a40d6687214dfb225ccbe572f586d54b2b145b0b960c6436d3abfc7c3360df6525d10ba48bc5d6fd8b066b61fc151634689b20d20cf958d187532e1208179c563b9f3b81eb915a0efd8663477095a01274b54a899a37d0ff662e8a3149edb0d8e59eb85a95f3ba34afa14c9cb849466472e4c6b6931e9863923b525d40df418a424618ccb46c8ced0010011f1ebedb5e669cd5655da2bf518be53a42d3ac480be0d8b6cfa7665f54547d129aa88ef6ddbd5ca682735fb075623557ce79b8f1 +shared_secret: 2bd0703c81210c5d9bdf59f8cbb7c32e30e042c20743c96c74db89545eba4fa2 + +# Official test vector 3, seed: "225d5ce2ceac61930a07503fb59f7c2f936a3e075481da3ca299a80f8c5df9223a073e7b90e02ebf98ca2227eba38c1a" +entropy: ea74fbc3c546500ed684bed6fe3c496d3b86d2d6dfaf223969b942e9a8c95e85 +public_key = c8016eeae46e2610a5fd252102a480cac2bc6e7860620259e41c64591584f1e6ce8e3312dc8862dd806cc2181a18bb91fb184dcf045b030807a5023c4b3779f14a162e0938743b78c71493beda7826022e78ac100e7892fc104d48e25ce92610c072a3e9e8208c93cc225c916a2941c13838eda382f311a809c19b9ca60f188910a1a1bede4710b6b72127e48a5454a457c8037439572c558378cc784554171f6a0c78c676db8bb8aa380357fcc1f61859b0ec72730c10f8c3932975c70e6329aad34a56797a03c0297fb4aa6b97a63be19f5ca6318d0b2c8b4c6d9ef808ebe364d0a41a82dc768be47f44f300bc9b2e4cca1050e21a9919a9b65a07a6c8bc1ca5622a441117a1749211571c462a40c94c3301081867b3a8957ff45c1c3f7c00097a35af93438d74c78c061c2d645e7f6c3be5fa6da749085dd12461fc517e0c28baf93418978772e4c723c071908915a1a5807050c57d2a3d56597b1e1bae4b437632a2522f314b39fa6ab7a047e12b6502027e334b715b5b0b17bb76ae608acc0250d91a859c8c448b27bf4c44b092350e260b65c20c82588c8c1ef25affaaaf150479e80801c82cbea73a37dd1a7df6d268a9b0c4fc753158c39ea4e90960c20460804329f58bd460a37357ae6515bcd505c7cda55b2669017bec3d51816e7001b0a64837f9e07ea26735e830092a648f828cb3093228b98a0c92656c1a14cb3a306929c6207751cebe31aea4c0372cd5c06cc637dd9b6894f00dcb3796d09ca87884412726a25bfa9bf6eb613e1a2a19a196e1e1634e1ca0347a9bcc96816923092961b69dc0c013c191f7ba4fb0b13ce5555e8c1b07d8568722155287264b5fa990e92603aed71df778832ee3bf9a767fa9e650420a14f5ac227df497efab89511302d231a521c5353bd425306a14b7d2a566ab3b32aacf353c2b04a148e4c93c3e470605067dc7590722c452245b3d750205d2c0aad03b0e2ec535bc6cc3956132e329a980c8495d765ed1eb071c58680a11859c3cc0b1e986486a5b543949643b83452c307df477685a4d0a70a7528a55a997bea46780b26252af157fe5d874cf5c420b5b1a324a932ba52291428a39672bb359abc4b54bbfac608a0135cc99a38e102da3e088e4ec5c47984a636c7cb99a6b6304cb0350052618471f716be06b899087aa38053111e35a95965c04a7c42bda2319598819aa0aeb5c39181079f41982e05223c8e89abbc32fc1487f3cb99a167ba694b0668a5525a88472439c89179147ef831022b45f6b8553c8150e32b5421f75291c830a8698a916406807f201141a0ea1cb28255a9ed709502ec7851a56a86cd3b7f05726ed6a6e50fc52706104e829b02f7b61a1856c9b44b8d1214768851ac190b46b61c053c371a333a95b7806eed16c033790c1563fb823204e26ce3af87750ca639e605cd435024336751ca0bdab99ce5b45cefa04caa29ba33b4998da0aa832ec22551821bac055961acefa077de544bbb80211878c6109b512b6b4850b5a8d0bd9bea6978a0f920c1fe8601e1123a98aa23cfa30090817ee849e654a0387a185171a43047758a578a02ebb557904106eb3096d3c1f92092f02891f1d3b0659f284188b7119c14896688ef2bcc8086c604fc140a8fa24c9595d020269b0355ad9a44cbd803b59010a1b85b12fc785ef0a0789c10b3a30925cf155ae8682859a8f8164cf62fc08df577eab2071db87b029a16ec90303f5b97117761c5f20033110b1bdf7388895b30aca862f22adde6930430821dccb2b1ba4cb923652309b4f16600fc9fbcfaa8553cb45bbb53035cd28526ea8449844ac68b87aa61047b94244f126bfe2323af5f30bba9c1b96a426a1d84c2da35fbc001e20a517d458b4291cb36394cd9a074e51d8a45ce623484a3aa7d575977242aed535d46b74d8645aed246692ac1b8b055d717ccbd59769ff9617bcc3aa7bb9366ba51a736b2ce79b971e0c204ac62fd09755b4e4b233e94a9cd3490f4049ce6cc96c7c0fa1254c4eb67748b337c41c473fab4a944364531a6fe18652856797787c804ce1c59462b8d145cae4b97232440ba99cc3a66c1e019b53fdb272d000c85ad63d686a907a31700fd4a29e5936a53a4f2d2486751851edd1b70115adab07a29b15594566221b329076a5a116676d3534044965014daa0d13da178581619dc06df40a02750beb995480eee9 +result: pass +ciphertext: b0175b6f547277d58f329d3b7182bc9a1d18dbbebfa3a5e24dfb783ca9842ccb7c3b26782f6162d9f60971e78af2dfa1a7d40b181ff92872dbb387a1e9d4b962703c7e42778552093cd622686c4b12842b5edaae5265d802e5c2bfb4f4031609661183a55027b4b4ac735a0c3d4d9a8faacaeaef4e0fe7964b3112877d7d9b1cd8923f30fad9f70b5cf480c83970b0aea28107fda48bc67cc0cd00268037004d053392a2522a0b2b9a08bbb678167c2717d9252f19d9c5c6c5f48068ea0b7bb9f0db9b4801eaa168d398b37cc0032401f808b20c8414e9d4ebbf573b1a86e304cec6f10980942c56e18b1e390d43ad4149fe646e0ff8d15fe8f41f7edfe56211e2e08bae7956015b961ff065c06ec846e1ddbf37e77b7dccd34ae270aaa5f01fd92530da96ba73e2c001c8b2ff8a59cc1c26380f796a417959d18c1c97668fd77bc82fbcbbcf1a71f95ebe53265b477f9eff4bd91dfed2cc4b3696f1d6139ccd74d13973acb599debcb81dc3723931987c969da37d90d196ff052c5a6d223be15ae7dc4a90b289a7e46e964ae3035d73d0f958f9c4955c9d4ab38b085291891995b0f8e3239f1408540a8575acca7f0da5d3afa4359a7a403f7c4e636d7fd1a95b7571e430c9e44c14acc516f3eccaff00e2e2fbe91abbfd0e96dbf74f36675735ad70f3c97d515d5d413780f96fe8da72399382e433c76b6deb0bcd215e5ff4ca04968fd7cc0470c10e5d22e00800069944f2bc6ac4988f6eebd35995862d530f3b8478f4c13b8e2dc11128258901af0e4888b97601dca5da385e9a787341c9d74ea1ba2d28b098a9ce395d1992c5ada71b9a6c1b15e20f57da963a9307a3f1b9073a2d9a990832f16ca3aa50ecb5306bb75713c25798a8cce4c529adfc3377e44cf9f10262c3295b01c5d3a4079bcf7ec873524ee7dcae5f2a8a42f5b43205624463ecde93330410c410dabc0eece6bc480a61f6f52b10ee14c8dcacd6daae06c4eed37e3989432490363282a10d276c484cb1013ded7bd58f204c63e78b45e1889b685fb5b37110b5af73ecd51eaa4eed3525adbca8f6d9bbfc19239ec367854342bf02fcadda8d668a30f709299f184c89865038b445ed2079d675648c73e40d90425d787d44e539cfb229bf7dd039dace2f8eacac46c410a2277a93ddd34de171c93e504f1bc3e45cb468cc855228eaf4963a63d6f8f747ada4928b0423c69adc0f88b5277a2decd0eb1fa44440138388073f6ed52309fea034bde1d1e08851cc11a82fffb6b8f34eec75eec9c6237570861a44d679c16594e4031fe6337ca398272ef43176a082958b3b677f1416a55692ecc6f16a6ed4f9b5a51cf2cc5cb50666121ba01fb9bfb89d1744403700faa063f67006b28d579a685f16a81a5b2e87efe0614094f737c9c6e341470cf4ec51580f1023a14420fdc45f83356b4d5d80ff53c85d32067a40d582ffc87792b5b34da52510629185b2480e841f8714ccc7b5b00259913936b097e0dcb6ef2bfe42b084359d68cdc80acdb206afbf419a5718eb1776bef7aca6950519f3ee39f4021af387c8f251d3913683d1d0cfd89ed5ed44d38ff47009220a5b7966a760ac78012e5bc1f6e5684bf39cd0c45c28e0a884db323d647bb7cc202a16a12484b226680ff2abe1b26f8a74f697e4fd7c2132bb0318dd082d3c7cfd7fe279d1940a4f20854bb280498d0a3c76ac7d9f10b9a13205d278d6bd1252df84e75c914916bdf1e5352ebcda297e77aacc782ea4717f07a1f521086cf4debff71ee155ec96a22fe759aba9c0f282a707a8483a11a37df4a947749dfd434359884b17eaa6616fa80dfed1b62f5492a51bc572392ca7cd0708d37a8fb0185202cf7a850fd1954e4cbe7f2973a2874ebc2a2bc4d1821e2600685c0667a97baf5bed4b7a222e9cdc556668da7703da0f03b7b904f0ae942aa02fd0f22dea1337e98b763917c6fec9b030225fae085e050a5b834054fc69d63f72702b7b6aed8467ab29734a7b9f89ad70028b19a25f6ee6233b1876314c7bddf805f55e8a79edbd392620e1ba20cdf6f78f75d5bbdda5ca4215b312cd4ddce4e5c986c7f03b99fe0c835db9e199493b0d54bed56f5dd1e52afda6821a2e6df36f6d032ce33075088b5d6aa9f9c07090dadb5350408804cfe5b704c3e1f8dd9525e7fcda26c0c79562b670cc1158925552f28be8483310f4ea53df0d +shared_secret: f6baf98028ce4f75cc14f6a75dd50502c4adc4d1377d72671c9396d4c26fac69 + +# Official test vector 4, seed: "edc76e7c1523e3862552133fea4d2ab05c69fb54a9354f0846456a2a407e071df4650ec0e0a5666a52cd09462dbc51f9" +entropy: 64efa87a12cb96f98b9b81a7e5128a959c74e5332aaab0444fca7b4a5e5e0216 +public_key = 2f7a733c9c0d0a05b6ae91776032105bfa99d149062746ac1fd2ca81db9224518a39629a36d043e6a398444a055a2cc28ac785e22b9ada469d2e3491174a4e16e11824d32c33326f7cc2b73d417a7151496fbb6805a79d5d974b12f3c0125b5d7bfc7c6f244b68e2c1ca8613e891322261b4789898a1f858f5991b2b1b177769aca1453c57c43140548452f3053d3b55fd2c3062a0b11939a3c14a81c59432616a5700c775fe98c6fb88c1eb8277c469be42f541dbb79808479e0cdb11856cb7c1cb6a5b865469bba549d73cfe581bee85494dea28d6e96a5f04cd65e561ef66a2482c806e39257b9ba9581421708663bf0b45b4131eef3384eb53b8733c4957937161c3ccacea5cbf91429e87b8b2b6a0aa44cab94bcd02d14cc3932c3ee58b483b1d11e5243fea0d34912b8d45bdf48c1358db3fc163ac081c23ca6c43919a649c33911c5802e2407e9fea350c3b64f302c5489005ec87650de428e60b790489a17e96b9e1fa91b33bce5f4b8d8dfa1610b39fd2858c25b898c1386c6dc021bd3414bf213719867f8cdccbb4d2bdf12207860a638bd41a05b9697a3bc901e9ad0075c080243cc0cbb3d389977c522230a42125b08d41839986a60acae28bda183aacc32dd5cb149af2bbfc60b0d5ba8ad89b1acc0863ceb24faea37ef3f60168cc96d766642f07a116225873e651ef693f2bb97339acbcba301e975405661b2aa523168e06c86f9bcbb42b5f12d79c3c379afcc37dc4995b11a4afc3578a30a13ff57ab87f022fd5c3ac5dacc3462c7e7edab63b889c22e90d685733a1a79ec336c50c18a5fe4408c2c122e34a60ef56a78bc16b78c3c98ed689e0c9276697cdd8aba667109cd911b77e6930c4f58cef1240c1f7005a7a2b17390988924cb0604b4f897d19c5b0e4a557a6a23470bc71db15bc99248d42d9bed4117652690124b1bebb438473619c4919c6c0e4071ca990b9d005eb287b15126e5c3477a98669f0856242dc073bb2673c7c1b1485799c300a0648a83142b95a2377d7e2b1d994209184309934c914308b7371a307a3bfc825958a98a12524b847ba5b61e5a279eb9f7cab5ce030c45ffcbcf919a6ce1059dd7c6aa077c2d2437408315db32a800c2099a92ab682fac6461896d583007b97af2336b1e6d061643c62f0b5122d48a230225128c52863c9aa7837ab4f254f92863efbb3b379f87e40071cb6c8b74ac79af4ec11da6c028f1caf9545a7d0a984bf6ac8d4067a7ff29325daacd3f9470d529f02b00183586011da8a0295b678b18d7572cd4f081317b92c21803f613bb959170ad3a4cf465645d3e5a1dbf672013bb935bccdcea51393bcbe7c975d30a9823667bbb155bdccd14ad3d8b453b30ec2b0cbd703485975cc571530b4cc521693a9965139fca21a90d57397f34c46822ea0e0ca0f56668b8692127bc93322389046c63fd08ff82b67f9778964054b49ab0dabe24628e771627ccf34f46c6c820e9d890b15f396a291a98eb14a23575952abbe46374c74b812aac6b9ced932c078ad3f2a05c821b720305773d070b8c86d7686c53b81ce241586f5f752fb4a2774152638f04156a0b24b3061141878d5759d12f8bad4e98aa5d41895b91e122074b31aaadc30a1dff707c32aa0dbfb2fe0a519b4289942e99754034d65d7b9eb5c0087225048b5a293038969a944725a23475b0681ca2177c5bee023bb7e0abe99a630b5babb5f8a67c8117fecf20c1187c338a97b72c1674aa302c3005037631ccfd51a5b10ce837911d8d8372b9760c0498b8ad8218f832fd8519476ea5673d6659b558895796e14cb5a55e7a3d0b91cf5a6228a3c93175a2ccb06c26bb00d5224a402f119a3a42356a37cfd82162c65953b798d9d96cf4353805ddca537a9504b708d16424a3c6209c2d738e25c357256833dd14375a65e1e32868bc4c4e5e062fb636e27f4c746eaac0f641330d235d909a128c890e531be3e0cc307e632baab0ef7684cc687bac9b966efecb85ed1030a1b1e15b71be5a263fc64c320b145cab657a14c2749dcc9961952ad5489c6485f208933fff0203f3c31eb6a389f072cc3573166b9349ada4d7dc66bb12c18a7d96a86f93883f83822ec0094b24751388a51166da6b24a0b526935817e1ad73b4403aa3b10b5d1822daf198aa848a73c9f9a866b634f939c2179ce55edfaa1d5d48cb3127f0fea3acc7b163d +result: pass +ciphertext: f3637bafcce8675a7f2491e7970c65625bce13ca85362c62a0fb24cafa33b0b388b68b12962765da682203c46e6997d4c9c74f13eeba96273d3fd105352e92fcd8f0a4455e23444811c519dfb9aa9174dc6719a76bb6150aeb243e2166d9a63c6bdb9c42ca73604ad748b20ee8d4bb2e414f7a33337bf500a8a354b56211497c6eab1040580215f002f97371a383cb546b509653ee598798b1a9c2b2391d066dc45c69af2eb07d7eb89c43f26c4e553afe4964e0633c3dcb5a6acac36ce88638c17d83cb6bb90f24434c0aae0f302d7154fad1e698a1769d82ae7f90231cf5ae0fd5d7d02503505b6e12bc27ce6a6283f751481a6219d2b01f2e00fd04341ee96a4bd957d682c6b413d2c53c81f6ecea90aadf4482631a65d393e6a80199477b5f808e83be7eaa7b4439c41ec87ea6c69e9a6ee28fc9dec477d7a66744f71ea35cef0d86fb90534a26368055840320e1cfc54ab65fa7462475b541f19b259c79114da9589c8caf1578e2d179efe5a398936058995701308ea61ba4942bd35b36fc60371888a8663ea8eb456f654fbc51a0f701e3a318b64700bc8545685e5fcbb01034b717b691914fc7de9d1c229e16a759b3d25220ceaf72c9c7b5dba5283154098295a08b95efa11b02d7f65ebc6a3ce97b9929456bdaa60854481c6c3d4b851d88beed43b56b0d65533d55d19bf79ae57bfbb0567d4dcaab2b6cda028dfb140c797fab973f5345a55b8c3d5b10b6a94442e1ced434d1c37ae2ec797acadf124330c9a04977b29b0e76672f104e918b2242e0e4a05691bc3ca663b0327a38bdef7ed38c082927acf9d9dafe917d1f3c1c6b6e590206d12c4b0ad7efae9d4e28897da9811bd1210c19e384d9ea2a0b93605c75430edcfc66782421771774072843f8d4231e3dfbe61c5dfd99ae12d3fef73117d9cdf6e7707f7560c212fafe1104edbfb36c4130941b9d6f5a4d067255db6e6bb3559d50a3cee2ec3b57b8a379b93ec32ccb743e7588a3f6dc75f334750e4705a03eb7d75ad766db7a1a88ceb2e5047342a37937cec465ef93bffed2fc238284d367ff320b466673a01fd485ec23e7e21a814c471fc60aad2de49858673d8a5071d00e4b26f4709461b7ef5a74e8c52534bdb6e80bd4dfe09f2c491b20600235743d61787e93ec601d33de9a1a36786827584cc2f33f04c6acff0637b5eb845ed6ca36bc66a2edfe989d2b668268b78e1ffdb1fe9b737cb576385f2be449fe9fd176736955661a330a6fcfba361dd4935715128227b443518e6a27c421eb653168fcc21cc6c4c268b84da4c1ea3162ff85a3754064f4354026f8d99de2a76c99c52daa051e032e766ebd889d4af961edc0e497ee31021f3a38fc5ad1d4ad465d81ebb281f54b1a8c22040ce0099bbf55c9a3ac7c766d65c8cf0765e850404de6184bf81399795d2cab89cd2b73d747903c52140a90e2ecbd3de04c1bfd82c8ed5786b2a409c608568bd7b773dd6086021e53287b46ab5c26f9c04a3157912b079686b29e527bf65922e3b7498f7781978b12da9b938e4f83f005555a716c494277b1d1af716724d35e72ba387efc5e633d2e8ef015a02218b11be67e7e7bd491c7e9c198f18450db3254934756b8965d8b6c60b65b18c12ebe260202c044a40650714309d39c7f5b7d28997cd9f77469fcb1a7a5bd237693e16e6e4e2c645fdc77e859d2ee580ec4c4ddf475bccd6e31092643e62998dd523366d2b28bf4dd3ef54e023544156f0fc6a86d8e749551098ce1e288a62baffd642be9a2499b62c5858250d87913c1709a9a8578a430abe8819622b1d9e800875c6408356b597c3d9a89e164419b6ec3edb03d93aaec5644d3b24b26c1558775ce5e1773e644bb21412e43092136e3cab817fcf89bea3b9439026e625ca19018dd34028afac0665c135b1f2a5c2e8d2e3e34b5eb7cf947c8aef9d03cc20d6d22075eecdc9a44df411c0ccc3d0fc0f32277251c38466cfaf28ca47824194d9befeac21b68ca89c79c672b21bcc4a676ae015676bcb5a93f6b2f22ea25f4422e2a4ae637217f33345ff381d1f8241c251ef3e4be839cd4531855413e775e81d1c0a2774a68a15730d4149b1749471bbacd68ad66bd50feb37e2d97b73e001776b8b46583e9cb581e7095af3a1ffeed83798ba211ab22bdc4bd80f7e5026a373984cc20af678b9ffaad3be3d515a914c501155257d3 +shared_secret: 52b1d99af018531b8f3b6226d7ae23843ca7b84d8f9cef28ead85ab3840906d5 + +# Official test vector 5, seed: "aa93649193c2c5985acf8f9e6ac50c36ae16a2526d7c684f7a3bb4abcd7b6ff790e82badce89bc7380d66251f97aaaaa" +entropy: 8a95d71228acaa5f9ae6f9d9ca8ae55fde296463b41083a39e833e37c4c90f88 +public_key = 69bc82661a9e822624d2a644e1767de906658569ba68922aa5c18996c58b3325685bf3564518afdbb99aa67acabca017283bcec3cca9075cbcef02cbe57ccfc73581784bc6fc1b8b7623b9255c20f7430887c87a5f6873b8789de3810ee4841447d826706bbe47d6c4bb13380a03a532d240adbb8240847e6ed68eb5abb3452584b949b8889bb77d2bc87a11c4580919931509e8fb931b50957fb00b972c8f17c8be0e0565bd95b16799606b825e462059a701412ac2704cdba91ea269271519421574f807206d8a65f8b67f44117b4c742e7bf4209668cb013975a9317ee847bb09db3c44d8029e01c4ff4954d5ac7557941b4c12c60520785867cef3f77214805c96d8497b508629713064cbb04d0b9abe21afabb10f33eb38b6b3bfb34908ebf048ccb239701944fe64792b8a909cba14bbf50d03b858bf4a318b9860e58141b7f114b38616533c96c4eb25115724e6672ec20937fab6164aa4a9818acf072c90ea4a5ba34cc95270a330e2874d76a5e0fb085f1aba5917a6e6c3a50ae59659d95703d0a1e9c76c0f0055605ac839f70f6868bf0727496f38c4fd042226fb261ce27bcfab89daa192044462cba31297a660b191bf4440305c5235ec225018cc92480c19bccb480d03d08c470ab20c88c7a1b2a9f37dd7b911cae469de0c7f6e08aa9d427a8eb90af2649aa28ccf1bc19c0fd84842e5748f686278631659a5a874377347ea3894b035a5c139ec8cc0aa63a960535f8e3113f668bbfa9a67a82ccb03253461d3354eb81d0d112fd667a1f133c054730f28ab50f54c5416f65ef60b6ce8c86f6608456c819a7e10ba9232322e4bc73d8370874846643275622b3da6dbcaf9fac7001cce6d34565cbc6f34a1bc9ae904c5229320a3755c4a439f035b5f8a099c70a6a57b5e3e15001bfc19710878c5db0930b21f28603ea4087e0b30a2cba02118fa644331a81312a22ca0721ff266620bc91fe318897b77d3c9b7f9986861879a3a9c349e16c72a9b2bd645915fb05a94ba4c57aa72e93c3decc55597e664ae3a683274267f486452e089aaa8679234c2fde99327a60a81e687cf4491de4b90528492b6c46eeb7725d876a91987025af06895279635e98183bb0ef7267c6449913ed09ae1ba77bba0010b03b900863119011b1dd02aa969ba41b6b684fc3976c416342891cbd0588b5c6a480c04d7798820da67c9142fc07a906f2517a9217398c9611b0749f5556821d93368014d9d01cf2976af6bf492e2e59b66d3671e814e466388e2039037313ac690c3dc534ba77281613560b0fc9bc5a298c87b879835b386c6b0e1580830b689e7b005ae950d309c2e264556685c54c606aab7c0318b2c66d4513a707b8b5800ad2ecc1567807f28122525b69b7e1cc0d1646efcc1673a156429a205e4016887464c39a6543e722f0980b81f524203b45deb45184d35351be963d3906e7b0a98b49167a2e0bac9c7a50db62657c4cadf6985d753c33f90bb1a275be17a7342859415f7855384975775cb557a2eb92801bceb7f63cb97a40837ac159a37c2935157160d518bde11c1fbe18c32923d3049b50b50c2ae0a325281c7a4bc32022aa7835630198103b25398d613631860b70a6536bbc66ef6fc9ab856771652689527c5f5db1d1b4243e3f06460eba75c363715378c99019d213732804b31e30cbe3e93c6f83a7ec239560abbbd48d96684f17ed61c9dafcb55cb168e2ba1778ecb0166e7664e9412f4ec7353092fdba5cca4585d173023f1856836619e57b0052b07141ba9507b042c5d5b89ab429b3f237f0d80c5d4126cb4c59d9d19bf0bfa9e3eb42894228d13a05125b36d1daa647661905cb471b08405207469ebb35ba5375a40b923e6b0cdb3f1070bb6728a389ca4b89079467732ec3cd7a27d746850bd4908e401134b650419e639fba07d88eb2bbb755b2a7ac2bc6947ab8907c80a3b5610a771782daf790874563b65a1236baba0b6fac1e5f242919bb4519b637464565467456600882532457e1249e692bb82e16c7f21c370a29453a95600a069a54b0b62087f09ea7ab3da48348257877864cb080f7a39603e284063da75ec0b9219e515021ba46ca8c573b306e814245d45cee5f55d0e5c7e36a31166634e7805a413a062a7b5a7ae75783f97c505daa8f9113507a98a3e8ce6ff046df83fd23815de42eb44b586845b55b2d39aa000ad +result: pass +ciphertext: 12cf783cb284a6655af46ee13c23e89b13e8cacac077ffc171c51c3ab7ecbd38853da0344d2d2cae3137bd41af52c1978fb85143bab78f9595971c2366f4d6935124f9d78ac2b1246d12c51858b51379782d2a7d0d7f04bd476bcae1453535cd4e0c3a19023861955290626473fe8d1b60f077c9c79360c71e64ddd5c39fc56bfe4b85b4f565a6ba165cb418838eda6668db441839f81b0b8ecc56825cd5e64ddcc69ebb9241283281866916020d18cbbb5abf1395841c96d81bc7d4bb89fc62e6c3d9dd8acad7ed67f6ad572a3f8ab67c182acac4d2267e46d8577afe2d9b04dcb5d11e33a909439c444c694bd86873bbe6fd6ebc3c293cedff1fe356aa4715993bd716f614e91f44b19f718a467d8c8d345e9759544c3a5ac885b296ced708bffc6c0bfabe31db65f659502cf859114b3394999406656d903ad8dbb543288edc97b5c5c89a58545e3f650030abea8dafb360b15f95e88d44e7f5010ae2f9b111daa6023e4496055371ddba9a83db233104348472056c4c6f50daf5564ccbdb33ac8f02a176e9fc74336f6c0d0eb0f7f78d55f052dad641cf97f4681baedc52611db70a0065ab680586e4dc6827f4e5a913ecae5627ff7b2cd69f253b1d6587f9961e61e75754f3cde176107fed8769898337c84d446ce33dd1767afe323d930e82784ceb7b1c38ab00192738d9bda2b21cb1a14b71a2aff00fc778200d2bc5487d56e88278ab4d6059d8501ed5cf53079826c66af26d59a9ebf8f102164942709736e203a745fe7784a03abc0a776b18ffd23a81f79d26e434a2e99e65b25c407c2d1891809527412e384523a47f3990bf4fe3f9580c0dce5c3994e5c299bb0214516b73e39062f9054f743541fe824840bdd3631df12fbbbae6e1ddd98dc320b9f3d0645ba2f7a32eba11ec9049cd63cc90d9164ed92b945b459200a9fbc2c1e346c88b975e4299cc5a811f88f9ce9633695144495fc98ad1bc1689b6d0fb5b4b9e90a7a5a7ebe2c6c6455f8c4945e34ee2b70e82503f4d3161e517e09ac115f5c0398fd043b2c8eb18a5aae2d2891e0009c5bd9c18c63a8914ef64e4d9de132ac55ff9bf24648361d3339ed8541d3b4543b754893532fcf648f49532382a78fb037d218756c012e2aa99da5a77328c13fa1588c9842c7ceb2318f7c15607d10625f78dbf378ee1789d6885adb50f5c334a768f45406d15ae898621355b16dce505877864802f532ffac78e8cbfa920bab7f1061cf11c5326372506ebf554987db1f59413611c9c0373345be3e612b3581adfcd328e283c1f8881ad1c09cef665d1e668047ac2274ae2fda0c7045019040875de7208ebdf48fa4fcfe533fbb80abd5db7b06fb00702fc440dab58bc46a5627823c55e39a5a3178e72df204f8346c9fcc7b212e81d47d8c571fcfa257a63f75faa6f50f3957836d1e0b41e7d2daa533a8852f1d4bd56afa2c189d4dcac7df6440911f87891371ef9603d9df1fc3859d549a2eb94ac3365acc0265fc9c2686a2e36fca53073ee1b65bec258f4dfc9d5e341cd09a88de63c15ab953ccaa12714488e23b6ac383e8b1bb84a9c7e1920d080f0912dd8cf222ac1b9acbc31a04374ea494ef68283ff906d0ba6c1f63071a86dde361f66bd4f773d43f3825f20c666899dd954043dca2997533dac459ee0fd602a1c564637b1eb7f6f726806a6d1c9e22039b85ec37d2119a31046487e21395182345175755e5b3ca698d5e1f114d66a67353e232bce7a0f9407909b0fd87f7e0ccebbec2a51368bb3bfa5bca5e2227b3abf6e7d0690f732d708da63dc58b208ba34c91bd7800e30a5cd653b09b6103d141f4862e41a3fa88df43083935d50b85fbf4708c96bdddaa5c0df9b63aa4517f5ff87e86f5e31ea9b3ec0d3fc4bb79910da9605d032090787c34be9613d68bbe65dff2acfc4f89259fc61ddcf41aea46106de8e312f1432c838d1acdc98874fddb34610168332bbbc9da4fa8d9f8f41f9d64d384cb7f1ca844197952b5cf69c3f6aa3a981418b9b41571b1a60ba7a14311c5beef82f7faae76fe3c6c9ac342264d3261772ea71d785189d3a9d8bf07efbb3f01d84da2498fcd3e5f62d8ba41d5ac481719200002de59cef1b41439715d5b7e84f37fff645e067a32db5164311f69e1d177e42893aee3d7478f52470f5a62b37fab65d6b960651db061d05b3969f82531c697011e4438f910d +shared_secret: 392242412070b869a67b7ab071fd796e83b4e3b5af669ed7a8c4fd1d8d3ecfe2 + +# Official test vector 6, seed: "2e014dc7c2696b9f6d4af555cba4b931b34863ff60e2341d4fdfe472fef2fe2c33e0813fc5cafde4e30277fe522a9049" +entropy: 90d79d75d0bbb8921cf70d46bab497022a8e750efdc99e5f1bae653275441c7b +public_key = 55f39e77f0722a726811358dc0f0b76aa90aab8c2dfdd3a4f3e31cdd076947d2b503c73b8805b26d6780d75b86d5f3b50ba899bef229beea7d18fa9016878f3aa8ba392a4b42ec4f92f42ad08ccbe58a18bbc7c8639c04016b9c663ca32ebc31fc82a138970c0cd238b6d1b2f2645fa407504183a125b1abeb622245886b9dccb9f2793147a63227236c9cda173c0546739bca51ab24cf3287cf935a8d870719a62b71728fc5e262662296f9984e485101860679caaa02fa1209e7703e0a5678c496a401cc5c1b834ae8c02d2a61b8c40694c634c80290a2f5b4a63f865ed6689a54201589a3384acc299c054d1cfa25be6ab278530b93616efa35cbd0ac8fd367923bd89cfa828f1e8a10a6d027ef2417422a491ac1bdd2702d688809b7455824ac902a70b06d54c92d73b2047567a25336fc74a6d8613d6af0a51c0645ed30c19f3231c147ad98e0276654b9277b16e100a2bc1327ed41043b61900d48c1f51c70725133ae31190b90b43da26335a323c13652a04a2e084827f190915548acd4d96323b573aeb2633be0b3061544cb6b80176337adeb4c5eab7c55bb612e9390419a7598dba6a79523f5764ec7fcbcd31b85c41548e1db0cf1aac1dea8031b0c3b9e629b6b9c06ef29628afc979d303355fc4d1a480fcfd0bdd9c04168e772880a4a53d4182ad30b760c89b2787691b40eb56165f321691f3c4880b20a81d08834c9b2d7b2aeb0e537f5ebcaada992ac0a3402e81e18aa1fd1391f00fbb333d46c7ae50373eba628685d15cb1867b952ed05bcaa8a7efce7c825ec58054b2c84d5c69dc22c219cc71d5a92230b9f40f633029c30bc6b266b37bc5e994e14f96d4c568d83db3491e38ae1b4a320d831cdd5a8e582a1e8a43153c347a3c91919ba60d18490baf18ab8a530066a9c35cb7e05915d208294059b161b09a0b8b446c322c9bd6160d7413974a1b11d0b643364432a1a2bacb1c0d70c642b68811b39a69d44974b125655a64075b35cf9cc0d632493ec46307aba8abbc1033eac4e7ad3329c246a08294f3cb141fad16f10b6804f70597dd6ac34b2b40190c36e17325742a4e9386c08b69cf1e0124bdcc2cea6ce77b310262a71ff7017fa1b70deca96dec183f2981975036117656955a5c4f1c674b09c1624c0c48ad2c2584968f511ba5d070ead9c7889e79b1e123c488349a1f5216f351070bc459f3c8cc8314e16b97266d37675b809fe962914d924d0827cf9b41c9fa169612b70ade609bec43e04345e5b97c330d9216a5a7e42632f09e95469e9b3422041c3119de5e845d6e02795806aba9203da928201905e2fa82c6c7229ef074a230a05401cc9e22076e1c372e742c8eeda0fe7aba76ce5baff468cfc93482a1ab5957cbcdb2295ba074038e539be24986cb8297a536fd479b42c8973b7d03d71d74346625f96234b32323b17c3769564a1a82378dd5c4d23a551024c3468e50ad5b97ca5641272711ff4464d62b9619d130de8491430b5ccdbc928b7e411fef80fb942ab322323da20cdc42b5d17a9406e3612b7970b648817e060030d338689665d3aa7cf2b97314f8237afc890b10097d8f304a26b9664844784ac8d00932ed8b32438a28e5b078484b5324d976422324fd0f217314102ea587d6de84b482992d9e6a6cdb3112599942fd76434390c060321d326bc702376d466683ad546b3bc2e47e4b891f3b7d584375dd3859ed58fe94255fe421bbfc7214e3abe265a1465e58c1067bbbf214db3a94c54876725fa0fdd048764921d5b6ba00c3382d5064baf295b30029bf27a88f8f630d5558d595549b65201793229ca2647621648297a66e92917e409cccdf5cb1378b906c3ba731355d57cad41f6148f7a706f850e99e7610d2c78d45b9f699926a4e01527a1a49886ba5fd25ca21c325e21034246c45785127f4859c0a67cc7b76259410b2f408f4e1569c73c54a4da92a40476402573a2973963406290549f4a41a2226131251c5d59d85e1d5123d527576f7c794842974d884e79927f7bf6b09b752cbbfc442934ba461429a3ea921aba995ef12c21116cfe66b132402bdaf690ed95483aec9785e6989e934e7858bd13498f4e994619ea9cd55a9504e40b4d0ccbe8f8cca1f72dbf74caa3975595623c12f22c120c022b59b2cf3748b17199c44cd37f8ea61ba5d8c1bbe50789ce915df9fce1b4cf3c5acd7ce52dfd +result: pass +ciphertext: 1a2fcfde856f6d8e741237c5e0d0fcd7b58c9886503131c09a9f5db0f76c91349fba53dc31df528f684063909218140888d39923b52ea6b06e55590ddeba2b8173a2945e40c08e965780b225caac8d2b9a66eacb554bde430120b066c6c57ed75b0fc43c08fb4491ea446daf15661ebf4843a22a81059a049fc4fe3d66fcc103b7aad3780f9e21479b75a4f5038a07879ef64d7d12604db56b1f10cbe6ed755e1016e803cf83a0fc5d41354d68bfbf55d65d6c2ef32dfa88541a9cc13cb2beca4786be168e6043afde254a060056259afb94c0e858b59fed243393b7c10c5453852207daa69891bf3054b3af65449bf7a17a2222dd348a06db881cc12c29ac972e347eb8ae56c6008d0ca4927ce7bd482157f123634941db84bba10c7552552362b1d8d08e552f92897f5a75636f649609d25c2a83541b6e3115dffdace94c947036866e22f79b59b7b246e5622e21c4f0914352e09a5866b8dbb113c97c0921ae3e1a1ea0bf726805b4606d15298df0e32eaa974584909ea709b57f8ea6047d908b95a6db05a47b26de1470fc8fecb7b7e53851f732f55b0e4b1c8a1c993bba9a7d22f125849511f124478d468e6b8ebb50f8d11e0ae7f6217e19ebdd57125c04b3df9c1ee65f2940a8b8e24b0a52c012e5c9e2c09103d97477ecb033d7dec5d59fede37c6f95283ef76806926371562cd537c19d6c6fae9bc88d57ea5eb1c8fda0bb8803791fe072bb22f83b9eea89e5fe25e5ece6ddd7764e2aa8cd293b5fa1acf2a831e4bd24e4f91ad27687515f90fdb378c4959fea17ad2ac14721734aebdb0558fb65e88154d11487c89d9880041968a963aa9da09e64521260132f82e39ee1d44f8bacc3c6589af7e049996494790f6f9f5bc6e2fd5518c145dfac55fc339b279552843afa411f6c1d48a940f0c5ceebfb9440b46b8bca9e5a9a7373dc1d003a9bc7e0346e93d440a1ec63ea44ef732b0bdd62febdcc4f7a1acdaf487855e55e8372f6f3bdca58d3c8bff9279e9bde009f1cd6fed525daa609436c55048c06cfd32b5aa0d5d85a607c28047f1f79c74571bf8fcebf00ada66195f0118975f99878fe53bab4e80fd4888788401a5660cf2c8137c553108e1529e4e19932c9d373e72898f5f3a5b4167156834ab1f125a443feba98e898f5336c45027c41d5027e7b319418a6b96fc697450d60a4d8ca418687fb513d53343bebd575b590b1b608b262b1e0cf2e4412e4d659271198c6d5e33231a9d5ac9009b3b275da170470950656844e6e4f7cc0582c9e43c9144b4910048e90a0ecaa92d6b2698914b91c5fd652b1ed6bd624341046c5106e6ee7b4a13abf3e80692af298e0346a383dcb833f615ad69f87fbd1b4f72cd626d78f5bf37b8bdcf76ac984a09ae1a78de07f0e387e455f6e16f37e3ae00a815d997832a86eac07d54767b35e1c426c0fa4cb4df76272045f1169d1748411fc6d79a45bccc476b3e8967981fa9128141b1c85f591bbc239fa68514e65ffc56973028dc9661f1a69e67736ce870eafd4c87c5e2cd3f914e93e5262e8a7e8489b0fe0fae1f238fff41f71574d115be7cacdf1bde432a1e58f2d333860a6605469b5328ef8222ddb9224e1333b260e30d90b75a03dce7c3e4edd4272c3cbef31250c04544fa97ee7a399058a6f230b381215186281edcd6f40ccd84aa9e9c7abc0808dad707bcb93b6cda47d227aeb88930bf68f5723aef9e32e960015dddc944503c131e541771f131a2fef3cb9ceb1896ea98573e2a9f7613c7665758bd3aae087bc574411db82b3a4f7bb71e869ca72a024bac17f41abb843551a28cde20598abf81a82d20d4067b9ddf14208073444755c8bae9420d9f4c1b72777410cf6c10cd7944a158bc636eda4a206ba4a18d3f149af59c5371872c786f7b89cb6b8ca1515250202303887217d7c41ed5ecc66a5528a072b1112165c6339ad27c4ad7ec35e04dcf925903e0ed6bc2a3608c846908cfd0e5ef3c7b2a2fd66d1c19bd79f8ee3ebb1910d010879ade3dabb9cb531247c9c881b1869bfb82e291da45c7896bdcedf7ac87aa72e6270f39951261d5fef37aeb39a8c94f62c78a7cbc0b2a0aafb2046eec47e5012ae49bfd41f46e5428cc90284cf0600a9b9cfd0968650903137ac5091da2aff756e1e39ef133ea7dde4d8ed9943acbeabd396730cb96e3f41e3ad13a94cb56ebf13d3e39597d65af9 +shared_secret: 0472c7777196fbf335dcbec891e291c5666791991a332ea676778e01b7379e72 + +# Official test vector 7, seed: "aefb28fdd34e0ab403a703b535296e3a545ca479c1d8148e2d501b3c8dd8b1034bd986f13f1a7b4671be769359fd2aab" +entropy: be8a32f97b9a8d596382c02fa2a0eeebc15c083e970ddaa4f2622b91d6718663 +public_key = 07f76c0d2245fe775fc5cb525824bf945b31bdbc0a86b88d8827ae7fc0a3db8bb9f534a21792637765081c4669832bb66485133f61bc22c55f03b109882b9ad7e75fbf12519873a18d9472087a6fb375244b313f6a81b608d88b0f79147282c9c37084b00138e8bc8cb3bbbd2bf9c5f95766040617962651f0556756bb9121a6bf09a515c6836b650c44e9db72cef47e08079945b8cf19d8bb25641186a8c8999103898492a904c5a7f2befc1614b4482931989ff7fc83ab40781ce54fb51866706cb04ec2c1c8813e963c70b0f15567b41ffdda8d02a94d00d1348911be52163f5c44188b6214856763a409040e8480c0f263d966a99ba7c7d5724f225ab99327a962d1497e9b265bd819c2959b1cd7995d138b4d71804fb122730b6133713d68c95d861a3c567c803adc403cc911186327e1726e2881bc9b4b1873091637c5532951c0c01a0999e7740fa77c1c1c847feb3dcd387ba3974e1ad0310f889d05e3508f02443491261c367c94e074009103e8bccf25520c4546c4bcca7aad34aac89892524219ba9b715c470c72c6c67811764926335f722c03b85c509105d6f43f65ea9908d4c61f7947cf70c4ecc08da31aaa6ac1887bd388720cb36e10521dd88d7b2a483fc5833f8694be9892bbf8bb19b6ceb08a133f037371f287956821014b58c6eb9351946303a3b7fa920e32a471f26a18a0b939ff137927c2a79c27a991040fa0d29b5a89124de37fced8109ff634f6313551140a873a6b76245a2538aeba7a234845cb4ef0c9707a4c56f8baee1329864591d09745fec24b1b392f86c47c38a62b613a8e6dc022ecf58d7d81c0f1e11a27296290ba0cb5bc04516a50fd1361c248ce450b54698c28a59274204427c53c68b5f73c739a62f9d57ffbd17f18c06994f0cc58f0979646a7273b9f0d3493db0a23df085524845418695edd526af36ac6b0b4c3346a2f61317ac8e93cf54351e12a752183c7adac04c3a943c463599adb1f4dd18a69d6a933a14447b73c2502374682c8209706cabba3a2c27b2a108ffa23a6b9732f5bd14ff2ec25e9a384a8bc83855c043a372687972112050901f12b9c0ba8ae7676b1446cfb376b1ddb89af260007abb736b5b223044e73dab7b3566c7e361c5eaa54978a6f3f72c31bf499c0854e272005ec603d3a50426b24a35721c0f1613d55e68e92682217401b9a21af9296989e75588143495907cae38c231c7521197258ecc60bf0409e4729ce5bd436749343a449a9450c5b2af817db83210f9738c0029ba26835c73c4a2b85255b42af98703d1d47106e2b3bf3f6c90c1b0c88e40f13e18f4870aa42555c08e00aad7760321c6fa8151768930cd7c12d1b6149fb679d35e981319b566108b56b98cf1efb9ecb9a3efbb6ac471c6f0f207569eb2022ea0fb0048207e96a7dc805d0d07de1541531848d670817463bbed673b5071227665a157bdb5509eb09873a00b8c98c48a3c131e029576b76f49b7d0152bceb0bb499ac6bece46f54f16b5d7414c8bc27dfdc9948077c090304acd20a4955b350f22253576780696aff4998daab028632ce4b3a372fca46b0bb33f23a52a93c31dcbba882a925c9c6c0c4546ac152a0eac489e9b27ce9c89aeab652920690b6b9944fc6b807d896cce9bf0a0908f05322e184bb7c5b2a4d7459ea75bc700424f884925a2a83cc95241e7701944ccd53271f8b1992afac3bd3f63af3228e9b84a5d1a9483d5502dac28f992531ece7ccec18b14bac48f1f62039861e90cb8ec0681d059788ed147d1e10115aaab25b6b41a66a5e1388557ad56eeee6571ef418a5f0b797352cc013a1176c3b131b499008319c121185a976c5831bd3258b7bd7b3852aa12fb77e9db085389c0a9e1033eb224835d4793c8603296c965bbc699f87b328db504b335fe83010432a4ef2a0b0a4300e29309e3370660f9b21bbd79382970dbf4750b3e142d5f7c381030901e7c09218636feb3062d43ec75a7ff9a640005c1f08669c50d6a41fa86790f2bb41e7cdb401c06c3c035fb812ae2013604422a7e3c1e6aa437ac4261f7834fa95be9e71001b65bd2e0417164142f2bc80366a8e5e1ace65108771b321da81100397a117f00515b6a2c934599416cad1d5091bd23708e45eb6f90a2fb5c47c8c77d6e395a6332a45f4178b0959466f648ec5c43422397d4e771f902db7b8d876a028f1708e233d +result: pass +ciphertext: 61ffa8da30b8111f68c0776905a752fcf8f1f80af8eabb1615649d627412682dd49d521db32e66c36ff89bc7ca88249eb8fda2ff7b70ccf84c79f851d0c7179d3f2ec1b53771c7ca92fb2f9ae2b11d10696a6fc3be2b07fe57b634611e7b3f5d940dc0c9d8aa9a8824b454166c71e50b391ddc109647b68d12e51271e24f64d2d58a6f0567d313781d2c240da9eb8354578c3288eb08ea63801d5364e2802179087c32bdaf8287246ab1a63ec11dab95eaf2a0a41c73a4b5cf3105909dacd0b2fc166f27a287a6aeab0dfb2447a707d880fcaa73f6db886a64e04e2d3a6a8e95a995ec17c39931abc21038efb704750c58db92a20d06136c5fe0295711efbe0cf67b9eb8c20825a77e840dfb7126a3957784e7a6bb17c1cf75fcddb167eb13103f51017240e5da251a498f34edcba91030439821767f969422ee72e27e83e64ba70bf74749ec86c7d6dedb95533e8e3f749650ccd1dbc2e13522fd2f8c70d8a8ea2bcf60b66043853f787d0bed1dfcb0191aedb50585e60b00332cdcc870b467ef5d5d233b2005affcfa5b38ecce4402c572e6b22d3d7535449c8073703d663cb68a91cedd532bbadfdb8a51400d478e33e5c8ff796977e56ecdf74918616a435c3df762f67c2d52c0c332d2498ab4505e2fb5ceefdd16ac5a49919d11be701f476be075e9edd9152539d08c842bff9d332c9c0e7c50c352c2fa96f2b3c50b85f61bd4c21069ce034f9bc460069e7498489322207ce5b5039243a454b9ac824a250fd9b897e1360b1a0cddfaa2544cc09248cbdc0e511bfd4b145e12c8c29b4ee81c3fb0d0c970116b1d0e773f463946ba0215e1afff098fe0c47d9e27439139c7210c419a8e33e0a13fda22604a72872d6dd55fc9be361c299cd32cf5e702967d7c7be8372f6144166bebb05e636268a728c1dc562bc2acaaf1194fc53913ee49be9e297274e690da76a1ce422bf60dc5569faeff4c134c6a72994e441f9ccbe2be5aac361b18ed89ca8ffbeedec74c3d6a3f47154896ec2d5194777d294e9b2d9c23a9b95d3d32800c2b53c166abe25e6949e20fcaa274a792ad6a798a3ef1ab454f708075c75352a6232c5943753f2d164c049de891ccf7e2f0e7331b63f55755566a31f8c8783b6d23c04865187e8a5be7d50c0ab3b1a08bc0b0c8563ddd763a27aa88b67430c5b96fb35e8230c77d0fc501266329c454b9af4c1717f30f145b32a576978ff8c177d738c02980bab45ba5d1932ab73dbec31ffc8dcc66b79b17e35d1a5ca26d10b7a95e859e4266cd8bfe57282f47ef22965e8dca78ca6e4d2f29b036b86692d425528c01f14298069ff40a423cd2011ce382b06d8f6a6b903fa2375a9c9e1123d6af61e7117c5af42907cd3fd04659b239c64e8034cdd351f0afd0de22f3b8108115f9ccb0e977c7fe72a62910bccea232d018b0619eba0871f3b0f63dbb70b852c51757c7da18d971406a86a023435e4fd726746f7da90cd78403410636ce370ff08f716985d7b61405783858d9a8a93f8c6c790b276379003dc2f731694958fdde91147f0dce55060d2bc82f12fd59679a4d5cc7624860aa953227b602316fb8a8e7f4ad7309740cb86866d8748ecc7d46acdb967ed1346ebf98724d5308128ab8dabb6e7a92da6b34654e9f5c7dbc56f2de6eb26a411ea831fdcef744cecf3d736bb607e4125bac94f6ca0d2fc777558be89c2b89cb99fbcc2d213ea8639f4c2d32904628825b3fc224f107b78e2ea7cb4a18e6d74a67d9dcc68012b52e89030b1e425d3c09860368278b27fc091f4bfb87a118916d82305314167c2dab043b3e24570e5a652c4aafaecbe625f7763a4642129b20862953633f8cfe5dabc9f83b8ea99de18aea3110d025e7ba3c8ba128940747fce99d0eb824a68f7724fdb51a721a167e8e791db9d9a1e10e5fea66f981d2e0f33dab616d1037635a1c36bf85248643e5144e36ab80b759e693d09c1cfadca3488eb5a6b141b55e46358414e8c0755f2b5edd91859b02fffc3f1ab9eb6569e076bbd5bcd0f2fa6d97a95b96b9cf21f31030b36dae0115cb6acb43ecf9a59cc53dc02627d31d5f17857061491bea48b0b01d2c73e5bf8eea1333cfcf247895347d7e473a551307c0f77b3065335592071dbb0b2a56fd5a52323651999cf68efed856860a5cbb84bf8783b790e6a5833f70aae68ea0bf8d220616e1c4b40fad5e1ea5 +shared_secret: 1518e22b08f28512506461e0c46e60d73f7211cbba08f2880fe612817ce9f933 + +# Official test vector 8, seed: "cbe5161e8de02dda7de204aeb0fbb4ca81344ba8c30fe357a4664e5d2988a03b64184d7dc69f8d367550e5fea0876d41" +entropy: da2cfaf69e25b2a89ff2557bbb6f69e01d8e2e7bb27a7a1ce7e40fead16f33b2 +public_key = e4f12b6f27cc55032582857549f3ba0d6bafeee47ca2e2cee04b023b066f53f75a5dfaa0aca416ed16cabdb510564738aa08134346757f92585ac112c25a6e0723958b7b23bed41a126617b4dc30de275bce903a1c6c2a28c5c58c49a5f0c447fb0c86f5b6a6e9d271383588ec398fe6928f04b67ead2633ee174564cb2115a55d8a53971e0c9fe2a209f9c8745467bb8d9944e6c1bbc8a54a5d28cf82e8815a3615dec5695d00c0e72b2f7c483f72d36d2f091cd169311a283a42d608d0d66e020172a6a799a66c10aa9b93a9dc5caefc805cd77d567390bf017693db8b33392bcf96011dc88287375bee828341e5a515a97c019895c8e68d41c0675723af42b6a50da91d04c9880d21a5af9929362411f5b36c75199211da655f454539aa399ec276af29011fc2b5e7f5534461220ec3ad3869178109a282e8a960b6119d0a4ce801d05150c636d20d70dbb092999bd2ab9597a0b1de56086c27ca8f5c22b86995e5aaa9f6514323a31750eb794adc1ea1247317f82eb443604ff254e99a895436060291afccaaa1fa26b20fbb9f48e462851513f7707a5c3461e3f4b3b4e72ba3089c53fb85b9c0576c06b2dc832fafb929c3b34de6974021378356fbc4e1282884d062b831b9adac1eece03f5be7c9c7e8b69b1a7a79304842231f0ba1107079416b388a074ccddae26b4d22693f95a8bbcb2f3445ccf74abb702428fd3a04bea9ce55b6c251c57b6ff10232a6a85832530835883336a10992cd30144b757ab6a6377389e36093e218bd09cca1504400a7a473e248ccd40567637183ccbab9bb2dde7198abf35df8f8c836e1bfe061448b133898fa6ce3abc79beb4ac8d9997c12588c908aa1002b2570a64654c8bb3c1914583748b95d13f9619659ab4c8687f872030df926ee04b6a74047b995625b1a9a929a7fad134f989c7cac25c42817bd9f45327725474a629df0944f5fd3bf06057355f2843e8157115361cd627ee6d548230a89ad49bf1b156e50cba74fc19a63ea2e01796b6ef4a37d4212897346da865f5c36cc49a6954a8a868ae195bc4625300716d3b3692e683a10d9192e2ac5d096c465126730a9b72bb3a729a7cf39922674e39900dbbf91b2785e301ad8a3843f875361b5c4ee0953ae34a583b36d0f54cc194800be6b0a6465479c51999d5029ff50117d5498e8c6a0c81bbdfc6c220b21a310993fd5e7691834732e358faaca460fa26ad20044dbb7177c47736c412bc9011f09a0ba4d22aefb485a524bbb8f74bddcf78358c8addec550b86895fc3141682c0c323210ed756864910c9446c7d9983cfa98ce9edc644967cc93b7008e3c9166ccbffad008cca6569ae913e7327c26032744758f2e82a70f8a399ac72657995ef2754e3184c263ab93ced1510bba1d0838a13aa2cb9d7a25c236a37ec37fc5c0093bb47dace9944d077f5c837d78c54e3fb1cb0e8a70c4a18b6e8b95f6b7be2b79b802055ad4ea5febe770c39757ac42a09feac48b6174bee79621bb3af7d0a0094895cc8b6aacf722eeb76abf6b6f0d66bdc545c68c845b22cb167f96a0448b0cf812c46793a28b55a600a1431374b570c93d6dd7b4f789101e578e29d96b2384a8e09115f9e1c8dd008d0047926c17285dd996690b4ee9957cde5ba56451bc2de46371738e65744fbbb558537b33581998dd0525ebb9c17d9777a701a676956a03bb4911070d83b603f5169f66838cb671627b899e9706be9460ccbda50135d504e2709ac31c48c4fa67eaa740bcba4173ec25fd7766bca198fe4122fe93be5b646b1a475c74ac276bca3904a7c119b057dd2bbade1701ff249f484a4bef04392122c416aaacd5726a273066fc510f394903b5f34860206d8c45a4cc340440179694223b8eb578c5bac2cdd183507946e3d02c0e219ae33008e19822d77acfe5c85bfee7a0b6aa0eada58ad1ca5ba1e12ac92063c326ac4140250be091b2095f568ac7b483acafd7045a229954b8583a33376ca7b19a948a10c4a45a5b80d403c89773b7c2c67ad1358bf2900e8a793dee71b91c978c389b4d8c824937e921a17914c6d1a4bdd6460a2c7cac50cbb2f006ce9c98c7a3342f9acfe11094b249870afc3e15800701d606471a7a0dfcc073c277bb74706e5571f81cae7331a7d1e36dfb437d7d52957526bda146bfa3530dfc93063fecb103ce58c30abb5bb70c6dbc92e5f3bf4060 +result: pass +ciphertext: 77f22646c2e9df7da84340db963c6c521ce4eaac3b2ee0b081f60f15ed977007439c1f2c1a434a753885d909ca9397c4676653626ef814145fe6316c30fdefef47778f3b98547003b3d3cca6351d35ca4eb5504710ed90fd32f0b91ca9947f8521b567419646e075202f8ce6c2d06e8e26700d7dfb2f29a2c1ab60b41aa56937417076a5788fc5cf1dbe371b20019ae99c33c557db0142443e3cb2587b51c8839e47060dab64d9f1ef45d2d6f49a7a586f9d1838efb3c2fd1d733995f87e2dbb324781e8086248024efd5a916ba0eddc2122d362328c4fda90a294722cb1b547a78ccfbebd6628cf16dfbd94c8fa743bafbb825b792823ddf247d72db72d9b600ffffa0df9e5a45bf62e42fd3f46d93d4d10ebbc39851dab8b2103a3c643440a2897f31cb12ef49dbddf9250c16c148d05eb51874b214bd400f959ccce73d41b3e0c1cf3696743d47724f40cbb1d6d2f1515a2df9d18859628fa4674c6b1401d03763f9b2ca9de2820f0ff5d65f25d3acae5fa0b2d2b970f50fecbbad74f91dff754543a7986666f123faf6d32295b1c1fe950d507bf95ecf966eca6a9abc98c9b08ae039f25ab5f7835e533ce17b4cd801880b17c9bf942796687fc3ac888578f3d21be15d3cbef45e196a81a19edf3d87c818102c696c230dd028f5d89bac044c02b0735877f78e6e84c6069bb6c6624c381f063fe3613ff2a1d2393c4517b8658d3a4ca568c79b6ab1a6c8e06a9fcdb3c8e15d679df23187452007dbfcddeb1dde7583293c98ffb87f83c4626833d941b2eee611696763d9779c31ee8acd31e8382f1aae2140972fa74f9aee07d9d83e6f2ba707401783342a8a133f57caf9cd88e41ff752df945997b7ee91c450758a73533e83ff15f6f3ecd72eb1f33abe1651cae93ecbf4c28fb7b4de4cdbf957385e84a19f0dae52ba23097230f4db6bef2cdf6939494a68042d821ef4ca2872c9a13ba4048e202ba5ec21a0eae5e46e20829dd889051910e5df7d78e7c0f24d62ea928ecf5c952098694e7828d59d3bbeb3394e51b634cdd39f4f6cef6f02a8d49dece71660445eab37573fea3c1bae06a9a42d42beefd39b9a6576fe290483150bba21255eded67cb351338e45906e80a055c21ecdd1e51b05164f01549af64978863ca3c5223a614a8d4268f3b515b680b9538d33490c1092d86af2aeb8e9cfe4a786d69dbb27ce746dc775c544fa4a05ffed255cc27926d6beb5e61b97c2711c7abb1c2dfc340b89d8a732fa6c06acd53bde442c97193cf60e1422bf32679d20417a0e56b110fbc6a6dbcfd4c56fa7c7f37acf042401a59f0ba1d8b87c0d3eba3c7f058a45be0b4743a18fa88dabdcc198ac263d9f449bee8aa06967d007be82844a9416d7c87ea940c1874fa99d2a83706da36713ba539211152dfe78169f39b0e74a8523e1211a102fece7b25e56da3bc708686e288415054d9562bc326cd54e564c57cc9bdf19462c1f7c7e04f6202d888837719192db89bd81f3ae7e5bf97e38ff27af9009361e6688b2316790a5062865d0e1763e7578fe78e02267055cd39dfb9e662791ba909039e7ba88cfaf04ac4a3efaaa0caf3c35049c6dddb2776633c4d2599c062dda533ae3efec032d91448b5e5afb27d623724bd03070ccabe02cfe605535bb95dee8777e02c28a96193d74abbcac8ce7ff28988ba448ffebb5910b414c1e9aca70f2e6f8b8d2405524eba4bc0b0620cdcca7fb794849f10be427a9910b5eb7f78ed9b2a7d682dac5fed4c79385e3521d69d8064d065a4fd796e1ede3d864b007517690074e6c07b8cf1da174e2d15fe638470e4c3d7486e6229d9cf57089bad78558612d4dd0d04c0701da389bd8204f1525ab377d5416b0153c07237f54376d35ad4afcf6f079c9bf9df8606b6c2dfa775e2cb55ec807303bd5ae3f5a368c1ea86ad311e697d199c8e4dee3e2969ab6c726a2791a517d6f705e96531e0cf06366b22013117917ec154ffc93596f56a9dc366f467f52ef12c15de01d744b42d1fbc0958c85d07003f2f3414fca21edb4a428619df21034d8babcfce9d4cdc48c55768430053e039f6f757911b6370971a673e435cd36cf1612bc7711f6b0246bdbdd3a179d6eb61b2057db48e96539ba542d4acdb1498e71e9ba15c6ecd960a4f33fc9247b9c20ec5cb01bc1029ade985cb196e44b7a5b787f94e4a3f88307ea98829bf7d36 +shared_secret: 31828b1321febce31e35e6843462b302d13162eed40f0f495fef0654e67faabb + +# Official test vector 9, seed: "b4663a7a9883386a2ae4cbd93787e247bf26087e3826d1b8dbeb679e49c0bb286e114f0e9f42f61f63dec42b4f974846" +entropy: 511c2ab40782322c06111e144e505328c4e5bfc890a5980a2bbc44aeda4c738b +public_key = 1e778910b9afed44842d78417cd027f819699af6b0ab475a18b7359817b50c306bba0728c5a9088e667dcb7944af6c10ba86300308165c1242cbe8708c8347c44ab77478304efc0a9e5328f203b90108418fd1b5b7c3b085e74cf500729e27719c2596feaa689a54ccb3a5a4a74acf36c652fb97ad49190cc6f08382017db7a910f816701957cdd8449ca075b9a3c18bd88469e3f51e0c967146413bdaa15c38284a726a8935b3987e774a182023cc0acc18a80b8b6909b52b8726881380b204cf1c069415a99556476b0218ebb4217ff33a0593be5f3cc47ef89c13397d68933721c5a6f1241b88f452654c249d35c1a8b16305469586435c1a6156f8520ad33938c8dba429c118154020205b0235262f233c36a89b384d82bbc49b6d6074517a631c5ed285f56585b286462872503da5c3df9c91340071eec625f8b29e4c416e93b46d37f95822ec35c2897417d7181dc9a7097aa74f3a02bf1420b1a568e1d7b1a743c0d07623e2296071912f7db25d67d751fb3b9ffa671403f29d162b635f0c7ae693578d2a752984914eb9036bca365a76861a05075b4b2a95077b6600a42e071d60e21618a689e3f7b5c9836b7451997ef80917f6351f814e2ef1786736a703012d3c9ab9db50b5b9f08bce69ba50a2c48f059dde2181f725cf39f426b39028402acac36bc0797c918d30a4a6d4bdea2927cd75364d167f34db97260039bfccb64b0003ab3532f77353fb6a0433a5a95570c2ccbc77f0e4bec1584cb1a88735f27acf58120d01265cd7236f18af3c00b4363cc372fab07ef3a87030b19b07af020320f1f747e32a8bd1f32e78f1a62960a43327307d8c212d1044689805be15c1c68682d0a8a24ea51267058dc4b15f36e12104ea83e425c248209a8d193911e2a2dfe3a47f485abb226f02919f9bba4014262ffe6b4607bbb511fb5fcc205134f8aae2310245b9c9e73957a2b5b4cfe0916dc1bf6ff891c645b28e63bab6c23e5077a8c3954fb5978ad8e07dac5c5c1fc4759912524566785df222d04435a6a24361178d917b53af57438b46aeeac546bb5207c186bd196bbb6277216d95ab6e545d78e04b82669d19093241b808aedc5db79a9e54762074a0aed86931497917969ca7f20942eee719287c887b3508f23b919418278be0236043acb3e4abac940c44c3aec3ab8c78bcabd84c1d373899369b515c2478c6085ced3b08f668224f950d3b82355468bff0534cc7660045e96ca40067de520091437309f7030f71a250c359f0c71c2f8819b62cb39646b19d63669f679ff9f48ac7a426e3fc1a1d358b675105f28586726304adb8109e104715b6c330f053961207eb96148a866c12c9349fb6aafd1b42f5f80a2d827094c3b4def6478212332d96359fb3450cfa6bee8327ea707b8cc61799105358521c6199607d9b769b38ad15e4b638d12d16aa90aa49cd90b9047696acf9c14cbee59f82b46de5bc644402400baa2e839ac801c70a368a3611cb11a1484dadf30185112f52421196d1797a3085f5d429d286343953ba8de676c381aebf394d0453bf1610905f3b6afdd5299a750f2333b3944067d9a9cc201922f9b5162cc41cbd35400a275717228050a97d05d0c1b303bad3405f36a1218c5c089c98467aa37905b334edb31f667a88c2129c1749784f49b83a329275e1b5fff4798d4b1c5779a5d433ce716bce5763572a29cbddf5b40b464f3e163cd5b554c5612c20726f57244735e2616f45356237263d69a1e1e03cc4d9ad57c83b3075cfaee45418282261d8bb531b685c766989c28ae9f991415907858308a1fa027156b6d3c8c0cf926553b570fd077b6fc419d8f4556655ce53f6802d406781b06463042304477bc8ea19757bb54f2cb54b9276fdd575d5a00c267b1222d4c25de11860dc14a1f3453423caef02bfe8720472c194dd234038f8aa0d3118286b530247b88a83318fda0a9c226cbcf22510f681db3880c2208b70f67c124437dd32ab9120894aa287c7040e06f6cdd0121ede209068238b57716db488335564c316111cdd90741a197646874922ec355a26a7e5ba4af5873f974b2626b40afbbb5c59501fceca0c9fc76fe9b8786ad1c5c76b071b6c054aac0eb8e0535bf8a4249a9256e4c1e8ec673fb5bcae20063a90b601e047e9bac3ba827acfba4a7e9b040776bd6f351e548ee005d759da86c9b2971f9d6d1cab8d +result: pass +ciphertext: 5aa2a84d580e3c22578c26b98e9ecfe5088d3af1fc9e3a81d24e25a30df69803be604b3fdfbd4709b7924d39ec03bc1384b0c5b9e601088f96d9ec6a34411126dcf855dd55a800052705656471c5f7e9247abaace66cc8746f5379cb31346a5e0007c52b186b50ee3eec28f8b39ade1a9d0c215d30cd4814bf79a0efc5e18c8de7d4116988f060cf5ae420706f19a88345bdefaa8a59066bcd0ae9586cc338140b77f3f33a2c074c59225f1e649aaf8ad20c39a1bcada26a6c3e4b2cce106dc82c14bc17fdd34f19e757b8436124e2382ae28f34be75d8dc98fea5b636957f7c9bea48237cfada97819af6c1a34dc91b14ab7d694e4f4a5c1e34ec42140f18327756f36594fe64f012b249f4c82291b8fe5bd3e1ed410d80deceabe5ba8a09fe819d8e6a3c191e2390fa0f3c7ce59197e7c070f308cde90cab5498c6dcd6916b44950a404c4405aa24f67859556e35966c7b80c61a794be0199a841adc8a2911d947669c44a38377bf884b2eb0215cb465781c3b81d35ffb677240c86ebb201309771835c422692a82b1e3bfeb4f7cbb64f99a2db5c8bee93759799409c422ae930937a387886612448df9b1b01aec237dbd0f9c4738bc421694c873914568733744cca7e892258168c2ebeb6b307ff5e35546f16dec0c99815210da6dfed3ede3323c9fe2c693dd31e3ebd003197cd497d7af3eef133d611355509af3b9a02aaeea73350472e06de207b12cba089f201866f2d57d27b056d5bbc2e4698412544f88b2a56af7f802b2d5982e4b31997492f8dd419b4ef3e8ba76b52e43e04f0d5bfe24c8854f335a47843d27b42cf7c1f462cc2e5f938d0b20a29942f2d83c232807e021223d8be33f00f1373ac1891f1612d45e26920486b4abcac66f4588accd7e178d2baedd8539b4d35232b0d121939bb664cf9ab70f5a87d4b4cc2d3daa4a37d064e4494174975bb92dfa3f965afbb76535df9cb5c0de541672821423780d102e9152900306752c2bdee5a32dcb375df2ee84cbe6a410a5249c292f5aba70598e4934be4295b9997251c28440f3f647946fbbd4dace8b2be424ad81114236f2fedc062d5abf4f2beb2b731647af6cf8b07646805c69e624906567da4c75968fdce86c9966090f2b117c153e3a5cfbc4c3d52a611a5936297a60171151ef3a97b153484ea0ab1efe8a4efe60ed47e0054978e152bd9c026372515a4188d02bc1b93ffa5a6b145539b6318d75a15a5521ae042c8756cd67c5fd611f8d9c44045b7efd5e6348fcf7a6b56adaec686eb5692549a33466080e5886c83c8453c9e4e44fbf0b293b45da5a3064f7abd6986bdf3bfb9000e8d24574f5f81991ece501d4f725218d6a2ea009f525c3619c8685c2c2b34fb2ce1b93764e07dcc1d3cce5d535533fd7dd28ed24ee4dea9f95fb2c0edfc347ec9cd9b49706f70f2884df179759d200487c1e6000a91cc9229c6439c32901be5d357382c9e37b7c6154dc06127d3ae93dcb4ed8fdb44dd109d1256123ad3b3030ddd37b7dec4a715f0bba2514ffc88876e9dd9d66974ba8b5637bd7b829ecfd423e0137685d3d72f534721082b65e644665f580d23599cbac81a283885e41a6e85116fad15e53dd301e38317e74b468fb3f1eb6d54184c5dfd1d8b9f82b36ccecfe689c39ff8dd6dc1d6138aff0057fc9246608440ee5fc70c095b837edc79e31fcf61ae2b07714fb3ef5b2d2a5c1b9ce794b207879f0c5395a6e880ac7e566fa9d695a5180d406f1b1ff96be6b4091d5cd378c6ed4efb3b23a84fc78f5a5566a170244fdaa6bd324fe6d567ee403fe93fe2e4e00cdf0eac1b16cc4ca2df1672f7907c6b240f8d9de657e8a2aaca0c5a9ca982ca0f9e97c92fc273545ace9875ddd46fea0997ad92998653cde6ee29d042422fc33a6107d47470ffc662b2d2dd149778f2170fb509a2bfea4d7dbc4c22635c16c70dba6c180e35a911b67c3f139b4359382690443c06f5dd7b75b78bc82c1e06de357c8f63bdc75bb10cee006b6e41dbfc24afb6d6d73a55e411d2ba2f4a45e635ba341605643554c7cc53510e8aa8520351a374e27265f2d62e0381ebc130561ad53c7e0a6d5e82d37b719162d5ac8580aca912ab9e48243572b52e6283d23f71c827c46b56fd0be4b27d7d1005420e83b65cacdc52f3bf3ec432c51c37af64fb8aa78c35c8728e7e6a7a68ad1060cd8a6fc22e5684b8f +shared_secret: 3c2d5cd46985e0e37e487c51af3850c5516673fa376d128fb32e63ae84d5de70 + +# Official test vector 10, seed: "980d0ba7c8f8b23d0e948a6029ff2659810ea1360064663a8994d0333c8543ee5ff5d6d5c9acf446e61dc464f792b9d3" +entropy: dca92dbec9b260dd97e8886f876862d6effc3b91fcf3fbc986cf56ab93ae79a2 +public_key = 1cb3c6a7f721c4039b10482990923aba0427e2da5bdd30bd55133989a5b43bc371d2105415e76ba18786237c7151548b26005961fb2a9e737e39bbaf97f612cacc3ebbd216f9f57873f97c503a95a49a1a113b0c454526a082203b1a27e2fb170ff1b59b0657861567d5565555f11ea31523c42898d6ea1ae260cd98b9cd69f9ae4d19a81365154d24c008bc15d1482665c313c3721cb701c3a407373e1bca5829cf45d484721357d5f83b5cb58b21987d9fb7b77224c03c017e183b31fb4c407ac23312aba708e8bf7f905d68b4895a48cd7a70af6ab9060d959f56a02d7e3672a90a6218fbbc6fb641163674bd736af2764c72c5bc85651be47350507ab81749bb2b6c744520b5b0a3b6633355c0991ce4e1a813615f2e8300366521040049b1054a7741b29af1c300e2c86977af90e820dcfcb8cd967c27102d49fb1683c63553289cc0c62de0e26f7555392187009e0cc5896acd8c3c9a4a7c637a107da325cb7a694e9a1107e889cdc6310671bb6c5b51a35a0169ff7b5158bc6469a71a3e8740e9281f5869180c91cec8e1169e2b377c8174669ca67418116c3cbd2ab61d8a874f9bb767de8973d8425cd118bc9a320453db9c64183248b22af3f489ae69159a056ad113833c2a9fbc56b10d013e911210bdb8cba68a0ff0f0729757bdcdf68b3fc7be480481ff64c4c09825ee52b274e85e544091c3d36f40444d28878d7c19122957348e3c27fbe74685fc1a3c21126064242616bc4aaa5284f5588435140956cf37bc72daf5a73ff6ce452ca689066fd6e118bcd4988660c7c8501c34dcbf1965c66fd95fdac910b9e48093fcb200564b4cfb36c72c3096c5579f736059534d57b7168813439b722d5230b255532d838598d615c1b641a9d5807f33653a1be96835f474d4f1955e3c5bb5c621497c3451003ca76275af98b25a962765e5bf2fe754330a77837288810aa53be9a2564451319405cc38b13401a7f7dc960b5b2096f45a94098a2fb39dcd654f846388cfb4b57b4b92abb321a16a83b3e6953a0724afb47902e581acdc278957100548c735fa5c04a4147e826a77030284615b82fa60bd3619b57bbca10872afea091fc6288ee434d8319f028125a0b5006cacaca8ca6eb95c7ad87c7e499a4ad81bbf79d144ab16ac9cb49743258cf0c83f2b006b1d0585efa0ac7dc722ed6c12170831f0964cae2b6d2f808afdc6223d11b510b949e76a0a4c262748148ce17b38c55cc7eac2bfdf468105bb89298c88c8806b124c7488d606b52b217c81a17ee5ae67cc27f6a3382d50705a9bbb1d3c59f68b8ba9a45ed1c97ea1eaab76903d1f2a1c71a07420f47695d1b68d06c5dc85114ae83204fb4bf16c09385934105c9e2fd803d83542f4aacc3af6b949a63e6d0b0c46ca8a6b4633926c0665bc09b69ca250945c14366d49705658f6cd76964e107497bb42290f4c1471a4ac29a60c3dfcb701770619cb45b0613068091a68b58c7b2a19ca9933cceb112e234014816b7db43beef660100a19377a4200a0806be78d30169c4b747e8208780a14aa53987065936ac4f06b7a710870fca3b1bacb04c2af5e3005a9208b3a03929b864d0e1011cec63b93220e96b480128c20b7675c9a87c1c8e2bab4a7422fe9c16d367928117765458a3803af02332d1bf654e782816b15a5bcc3bcf0213dcbe07c59a92d1b1baf1f217061e197c71223c12746cfc0b0aeb99fea7b29bb3a1300bc266f1692fd8641d6fc594b9894dfcb0c951b8351236087241f7cc3506ca74ccfb4c930fca1be940af6606ffc76bb92b53768294c30370b29b795de63caef451a18317384299168b77793e22fe0fc03e4c064cbb6979b38871eb11c5650587dbb31eec0cf7ce128f535b0545ba98af5ab4bc186ea1081ae15bedef5945410c800553d8a2211e8e16125d4a7cf25a91f13858e1cccb8e56481a5a3bbc3468bb624f282069425c8b5462725a813bbe53c1cb11bbfa242c2a1619763448af184958cc333c3aefd35c4a4861c5cfb2ee1b0c39b0c73314aa3d191b6406caa94d8280d8b01e1b73e56f5bdbba80fb3923a4b608543ac827395cad1b050530b5e908231c324132d782994753284927f3a379f71603036a172ef58018cfbb879f29a42a106bb32a384db6e033401fa46045b035ed2b3f277ee6bc7b69ea2a0946112498da4ee64a2be6ab49596c4e61553e1164d +result: pass +ciphertext: 72e827fd0a9213b7233fb4f586a9e7658e4d9af82f46552bbf29cbc288757c90fd64f98f0a9ded011ab822f9f9555cff8eef77867af89244230e81ea24a9a8bf3fe80459b1462c163b50708c7ad66bd1a2d0b543e0a1d731aac2cbae9094daf15d472a3e4e4e215c8ab38ebca960e4473214f7db59eb183ab71c72beda92eff09d995b4d6a94da0db0cb91658e0747c09d74561a1d5d1a7f983cb0a3672c1c342fb5bc8455261646195143f41e54e83a9efed0b3ddd7173640b2a8fd9b4adef0848d94129f45b09bbc88fe7267e4855b1058e6df5a73901d44f1099d48b560bb3fc5dfadf9124973ea5762183b952766a11fe1909342ccedb0b14d56571435e38a43995e19bc5d3771b0e28d87aa882d052155dc332acf2dbdc2fe6c4b21b719735fe77998c837e9b871d15f6863ba17d28e371e31ee2a066bf9d3f9dc25969c78936afb7533d8b611cccfe77203895340020822a82f732aaeab1263163d68680f8a229ae1e80bb4422dac4c4c4faaba84c054bad0d9e1aa0992c2013b1cdb7005939bad0e44241216d6580479f6ac6066cbda1a580caad53434c6f2a537121a549401cb990d4765812ac1eb27cbf666f5d2d96f3cd804b43052c1cf53d2b11a2b924ca1971bc5e30f2e9a8fb05e28e474fd34563836ec9b19ea492bac7422392336c2354a703ae054995ec347e563fe2c5ee48d0c2bd9968556dc41e5d3c939694675ae23112f64cc7ff1df4696a73ebe472fd76198998626409e8f8d6c6fdeb9bf589cc60e15253cb985be0ac507ac8076f606c11478e78a481fb749adb2420ee0f6546b518652b905f328c712305e80d8669c5dcdd863db97ddad05b86ad9d5dfc52b8a41cd2946df58b7d5032eea4efb6e8ca780b02ac58261bd3aaf04a88f482e242d698cc8c55d87a2e178c741f8b9a03f453d844d71011f5c7677541fc25d58a138348df949e4cad85367f817255281b49116c5d101dac5fb26e1896d97f67cb712dbcb5a573b146904af4e9b2a7a02018c6ad812d1b8b1bcc8a062c5a3fbb9cb9ede7db4bb39e31a8296d2b4d9c34ce6b06a88425c75a3b53f7398edef454b9b2bc24fc8c8dbbcc4ddfe2b0e52b7b9f6f695d5cf8e7706f0a67d0132a4234334376996e71c5a9bc41e6ed16d712a1fa83031d774ddd45d9701584dff472e31f2bbb5c09bbfadbeac285b313a8b32e5e78d10ec59658210bb346f0f7c50c233c7c1d018ac200ee64cd512f849aa8cdaf3a1d8cd23fcf974ebd05a5a29acc5b4bbb594fc967dd500a08020c10f4d1a613d55463d76ba4fd6e0230565ac45a5fe9b1c4477cd40db46b71c111b1f66bd072a28d8d1a43614e785e838d3217f52233883c73a1a7c4878290bcc97e47b4694df427f2ba787eae7c495b2455504f4168fc70189bc77f01bea35f4781d45c170bd7747d7d85438442ec70bc40549f30b1ced6e00d9f3bd1473f0df98527873e775df348061c9f4b16450a518e6ebcf6aa81086d1b9e9b355d405f431dfc585b1a82fd7436fc32f9f90171b0ee2db4431ad5090d61b8dc41f4c1f806f56119fa6bf4779c1dfb1dd9ff535ac662c7121fa5fd36c2f85895dfb4f63f32172c8fba3dea868b02cf2c23ed351a71c5cbfabbc4bb9504533a67d6c7af1ddc267ed430421dd15ef27ad4c30f4a384b6b72c4c4e3ebf5e254f67e61f84c0f7ed2061c92a504fd662a1e4a191afb56957c8e11ce0292f2eb49f71e106ff5e202add3025c0b15c9cf946bfa12d17761398223039e2c19d270c101a2303a276d7d7c81332a285ea94a28c4325fe4f323cc6ae72c306ed5c04c7592733522f1b16ab3e5ccf7e50c6ea926fc9601c3f27b66363bcaead3d9e2b66a436d2b77f982f7ea36d124c3ae3483a09d3be896f183ea041eecd11c8245151a17ef5daeb94e4c90a341b86cadd49b58357115d1a305d8e7950e1a7d6c604070b2384cfa7d05ff8a578d694041d7abe179b456de185c12e0bd4354e419231e5abb7542f814fa307e4d82e8194dcdada546d09173bede3da358d5c7c2c972e5bcd1487961d4023534b16b71ed1efc8c231df1c218c42dab650d4c6eebb5e0eee547b897b757a79530ca47054b9e42d1b6fb68c2fdca74099e218863818d11cba4fa40f32d3420a24643d32e387ae9e0c21119387817feab0ecf26bf68b32e3b2b34cbe08ef0c12a830ee0b9753ecf3da7a0995094ede649094 +shared_secret: 8916871d69a1d3eff8176775f01e75198ca74da4ef8d8f410706cadf9bfcbb91 + +# Official test vector 11, seed: "6c029462ca42ed520f10a579f52687101105e0b90c6e7bfa582a4c112b579d5ad0a0abd38f72abcfdcaaf5893a112bdc" +entropy: 57c170e691d7a914a901b9a11c62b8b569b3806427557a9dbac9faa720ec3641 +public_key = 78d90b2d2b06c3c74e60306d7e0514fbe0111a930a10627e5b2b11077ac78bc32c46d1406ee73acc41b518b2c1a8cbc93990b9c1d0964b1091b0871dfe594aeb6719400c71e96893a7524d082bb5b7b3711f586f9ecc4b65f66fdb2801495086969a6a49961d563391a24b1029a7a3c9e2399f605a37a4a05237570160976b658da00b57ced318b4c7025ceb071c269ec9db9d6a2944c973cc9b427d5573c2eb37c64e4624216c290c5645b36cbb3e82713de383daa5cb4029c6dfb14c43f4aeaa9c93843b784fdb63957b75f39088820694bd0706ca856864fa031b682031581673608dc9ea058dea014ab79eaef74928d4cb33308fcad06ed303a1ab8b6cbbdac332a24ce5474013c90c5b1b869bc9881323435a097d09e5910e39cae5a1bc148ab7d8aa12c84634864930c24ac4f375731cfb65d5992916302640a524a4a52c9a2281534956f946473541852d0884e6461614f9a1dd95cc923c6298998b21c2415518443f86949e6c390f9463b69a63f2f9b328053c01872ea2ea8fc45185ca3bbe74b713528cb3525a60f7639f770824686c1b2ad719fbda1d4c44c9dcd0b24f5277fb6720e686270b5349fd3b1215008c6b24c26aa943ae71146f063072f0c42ea114d3986ed1030260e88f2f2c34e7385491565168e1c18ad324fb13482f5b83b2f6020a6895f9d24b93805fd5556b4a048c2e3106eb02a53a774b169106a77bc166137e7dcc4b60569e77dbc6d5f9c276a011ef59bccd08793b695eb3a5bd3c1b64ca3bbfecd1adb5f97294d8909b31772929c693ac396d412549b1cf910aa3c60ca0250928ea4350b8c91df7d31474ea07cff56dbe417b16603c6af97329d53163343e0af3a84ed37cb91a349bf2af7ee84d8ee504f2a73e9dc3301480bc6f144a631bc3c160348773cb0b6a3b57fa1286e2107e950ec6a682edcac892926966e28ab2a482bd5991f8c6c6f5e231b0826191a8c8d3c2701984980146bbd1b8a629b548ce578f5df90b58305026aca96ef20c77610a2da79018b0047f5351858c2c99a035f2f339885521d09611a219895e987471a2c10ee576e07320b7f9b5d678221aa995afe550c0f72f1b647f3ef429d3720802d7b53ceb917feca63860337ea126fe41777b85980744025ef9418bb4c1983c8af0109d2a0a0ff47c121de1926ffb5b3d8bcac797a0f5309c8629605a757a6ae91beaa437cfe184bfd3b703052ffe8cb2d7e57b411719625a9f1e11473aa8a4814788c0280fd179596db23d3003461314896d38a9e8fa75e93b65cc76cdccf24a72b1294acc47b3e7843b2a322e82c98f906ba369b7e8b588d2dc8056b70e8588c4eb80ce8300630d265a8f6a74306374da0622eb125f51764c81c55b9966c27b562c5e930a30207f825b27711c3124fbb98d4a8351980a04041e99f7af63ac015d667232162db0e793eebc70dea04eba186d2c14381ae886f7c6b934f587710aa095b206621cbe4ca1bbb8752b5489626ac72290315fe9a967ef6980f9486462b74e7938800b020519c5c0a684adc1b82f0ccaa3988cb5a28264ccfcba1e8119add64a58da88bed5cb01f5b0410a3ee03c9105029ea789bf65bc9ec58b4b2b0c9aa9c7859a48cbf0c12cf9e78049528118d366d0345951d0aa9102b5c12b36c6022fa4c7b4554178a8800c1a968ec74569af3815acdc39bfe029807a8ffe1267a69073744a806161bb5ab59d5340b8218054a252560c188314c177c5f3300e86863eb97253e6778415b77f140d498aa104eb291b21bdc2c5693a39254cb01c8a3a9e8e14a965d107a6b98eb09a26c2851059a290b6e94ec10138289148086456047750a3f8aadb5b1693c9642a8ba89b89c6f45c18ba750656c151cb563ba7260ca09c780077b956e5275cf998c86748d2d332a9008f8625bc61939b18f0c063f171175338464c0d402915c6e54682fb6876c7338f654d1916655fb19e21f18e2c0629e0962457cb62bdf3c93cfba8a551c752642016f72b5479615da16c1622b21a105da72413df20b125c48b0a76001472780be292a98500321c007b1a0273108be097ba0e5972a2394861c5c9f8e0093dac8aed47a6467570299a5501c6b2f281283d0013260901a08531e737bb6baa0fc13895253ac4469519c483b591d28cb8a9a0ecd051937eb8d82bba18673a17339dee827be4156633d8a2c376d41fa4e7bd70d4e199 +result: pass +ciphertext: a8ea9ae69b53329b2bebd1fb1e3a67c0b693a15630c57550e31e59fe4f9b617dac6d5e16607b7433499cff0808d4bbff91b2ca7ed0f05fd3223e9300e4f251ce24b9667afe7f88c7fb6f4d7d921943fdc93d98fff7c4c7ca1c5f68cb44365682363296da5985dd5270007625dddffa50feb140412a6bd3a777b3b9a6b6fbf43d8cc90f6a1d24896c387e0487f03ef8c45bab4aecc0c90456688799f7a5417bf523deb8af083a75429e08c242587d01e6ae78f7b165b2dbc9e67a8e1fc61f95d1fafedc77e7827eb6e718941fe091138f9c4afffd53dc7b632403f4197d53c8658b67c7905a76abe466357f2690ef633d4b20d0dd73e489b0d046d2a684e21f95fe1d19569b076a6ec0e0e2ba05e8a838815683d5cb3b84be0fe3e363a7a3761521c2e04bcddcdad2c956f66542c23d7446984f6c169ac4c7846a9d8afe236d0c8ee7dc2afea49837549f91803142f889b2ae4a629f2ee67c2fde6032866339dd512896e8ad025d7afe1c797630c2bb4d01e4f5004ce288d1d879689331686fe6934b43f34f40210006a4418a54c3e3cbdd96a09ec364cfdb76b72dc12ea17e7061a3a1c16f04dbfab2cc69ccb244fb46975218d8e15a5eea8e85249d901a2379054182e2af17970328cbb58c99049afac91606aa090bad9aef751b76ab1430be40f62ae0a81f6219d98fce9f71afaaf5f68389d07a2da75df31a2bf58cbb4feaca21a775ff92917f8b32b72d0b880a77f9bec1074b1d1cf9be04912a8813f5579c911d46d06c66ae1c943329b246a0cb80bbdabdb22063754840da03c3c3d4a072f805902054327963dac5d17074f60db1a37a3d7b7be87b953324e964041964576e95cd9d7adec5a5f9386538912e7140b758d54aca9b5b6adb631fadf6db3cdbcc6a2f3e475bf669e0888f5c37967feff2c73fd4498a95ffba69a84d1bd2ce7524e4e5f8330a4c6c6b0714fd7201ed6efdee9f08fa2304e9999ec2dbe6a4756c67514e3664fde289c1d73bdfc65d24e1d5c6c1703d5c466df114a3017ec38510f44ea50cc7e883ad24e340f3196263c19a4d9fced324d0d1a3abdd5f3553b6e3c14ed46faa97fc18d0db7edb064fafc4fe2a018e2d1943301b734ed76729043f4a54d1fe75f0d7d52419b597e3c6a33638e9ab1d3d5fc971501cecad64f86b3ebd05e372d1f56ff635839914f4d202094942ecfd5a26dd59135f574d6924a7a64c6079dda2e30d843db9ab000bc67fb2aad73d0a142da2f56cda206845cd433dc53ea67b9ce78bb9a860f34f72770afe8bdb6d0bab4d2509be1dc2c435cfe59aa425cf607b550ee8e2c6e6ff885c4a95f659ff7f1556f8a02613f6b12e0693f285954a84e13996342f99b4f2dac6852f7d9caebc9a409121a86905c4f540f5d88b44b065cabbec28f1a48ccf635d20f4d0c7e3264888049a7983411a1bdd2d393b7246d5ed0b74e2ea568de1674a3339e864d8a54a32f65f2d19993655e04496f566b5c8e6f793fcba6bc2a583ffd61e7d23c3c986d178b8af86b8e4714bcd405be30dbbafcf5aeb6d3abdc9d81b73c7c219e460a8ea5b253dbc0aa97e967f2febfca583c2ea23810ed31f6a1062741f02656ebb9af490b43c3c935e008236b9be6cf7cb545726a59dafbb769d31555bc1dd747e9800ae5190a48eba0cdfd175ca609be6cb89e6b91ba78c761a53ece35edd41b9f61e0c521b848aab26c557603c120abfbc01d1d252a6bd31fb75ec8d17fa0c15727ae7d160581b3689a365854ef10605425e18e28562aa104c7bd1e7ae2e1dfc902928261833cb6da12da185ecc05cdffd69d3419b27b329819e49e41e8e64b0f9c222ff04249f9044d16a3660e3cf13e1769f9d4f33f8c39f9c491e2085b608c3b430d4ca662175da3d9c5a6dec274ba37e0bf2b0d034ec067d614afe9e7cd34565dff83bb1463a8c0b08d4198bf7b5495ea294478ffe57c994e1c99607a3e9a00d9ea4ca568c81aba09fc418427fcf343ec9d3ce37fdc1108ff017ee0f4a32d31a824a97a96ba6dd5f3fea36984931a433d774950800e6a8dbfd65431c348f14c7762d68277f9eaeaaed15543fa041c3ab72903370e947daa93db55c9dfb71270c5be4f74446afda6c63ea115ef40c3ed2f62c38dc73165d156d26514bb11af35a659a007673fc6acad7043c967e3370d8c5c37f0183ec064dc08f6e2b687b736fbb703f810d0414aa9c +shared_secret: 3ae3603ac2c25b00d16e4db451d8e13dc77a3c0fa4f775c74e028abafab70164 + +# Official test vector 12, seed: "db00120937570d62331f4c3f19a10465231eff46465cdee336a0d46aa1e7493df80f18617f9ffd0476cf7784a403ef4f" +entropy: 6b5a14e1473abf5a33d44975ca2088bd8fa6fddcb3f80e8fd5c45b9d90c24a5c +public_key = 81f27e76a1562bd2c206ba3087231983aa0bd65420e2b71b749605960c94319abeb1e80aebf274b27a9237740c07114614658c51d0c5118b9fe6d0064e9b47641ab189b2ce2086293dba6054a1437d00719b5c11351a9901b0a15e4c7efcfbbe9a3a7ac6ab157586c8d5b68b2d9b747b2461f2a2cc3179a70926423ea5aed845407846bb9c5c57534b66a6cb8b480c9a18453e047c58ef00cf652867b474c7b1b62fd7aa0d7b4c63d881b05f6a8d8549257d7b0b7153525d5b295e8bbbf3d36da46a5d425601e9fa8ee7402535d553bb60547bbccb7777b5e48373f2b38f3c566e7b98a85465590ee1c8cef16e4515ac3b4c69f99ca7f3495254c345b0405fcf975bb5cc26a1faa82fe109f8d670f17164f25878a9e8834b4271f75338dac56ca7b4bb3b56ae95444af369c20b582edc204928037434c3c5f8c372fc9449a773261ecbaa4ddb929f148bb6bc471d2a72706a1f621ca295eb8b44a83a4b99c6f3bb04002b2d6ed42fa5418bdca5a07f743754882e2ec966f44235fd3b48c1ba874d8765ee30156cbc0456e610c5b02c8fc3b6d305aa23a5528e77aebf2bc3696a37c438a2a1259054c3537ab8798ab9c16c2b9bec71a861a96ae2387955cb95fc4c984d2b936be897cd05ac3524b845a2aed4bb981dc47120fc9e4c6476e7847ea69755886a5c85cb059ad0cf05b0aac6609104e0449e36815efb9c0b232c7e5b9b80e386a8ab12be22a72e0a4efb447b253c65f619c2c85a878a54457d272d2e9a32d2668d9a02089a434a1bcc4cdec25f909640901ab4ea97128850335e63882f363eae699599a1bafea68c9987882751b545795ed6428162993b17e7a7fbccbd2115c9cdb83c9852912fc21baf53082fa41ae41723a8e6a8e6a3c008dc8b8b6250c7c740ad2a3b92676960db68318c3cf24b855b62b237b97df54c561b72b0bca0877925734d650c0824ab8081802f166d8a294ffe8328fde34b02436ea27086b870009545a71d56ccfda986d00ca3e6931b85a53cab3aa85a2184e55718a9988e11aa2f024076bfb36c0d222685977ec39702e4eb7045229e5256890ad87d84dc8de5c44f8e73c65970216c6312bc22920fac8e24a6b251103beaac8b4a911a1bf62870a33ad9986d81161a3e44b0f5c9508be97324a97107cb15b2a2b9f6f71b80fc7b59d199ff7b04652644f10156c2dbc33ee34cea079e6b718ff4e2ba10858a2b33827f7019bacbb952ca83a8f38d69422431fa722bf31683e3ad6e1784ef9ab210391ee600c2d0c690d739ac5a581c4f5660576bc743d79552cc833222b43e45201888a3ec82194dc2307a07b8549c838bf4a70f9c4f8cf5868710cadb4636bf12a257a57c344061b9f83dbe9324195651020c2f02574a2db4aa4ef527e5a66fd4758382f96e52d84472852a30b49ee7d60698f4b9b6e9003f475623e345e1db767b143bd30bb5273636ca7926f434863ce41813767082873ab5365dcc72a251c035da426fe6db4aa1f34ffa45c9277327a7125c866546bbe22b9c09c054e133b3d8b3fbf18832248e5a3198c89794c5ba4e6486574de79cd67626ef2953007431ad08895ae499cc17111f76c002322a6602b677a922fc450971fc90c0b8ce16dba195fa80196569fe8b87fe060311867e6c6abc87f2351f4b0da1f837eb7830b9319498f36ff707c80926158b84a934400f63911b5650c6d205686f7bb7d415ca9dcca9a94c5706945580f49eba773067eac6c989a8e1d84d2586c58e70793933367da73ef0509e27a97f03c28a10086d782a3ef2251d08793748357f411200b5803f0c76c886b35bfeaa68544aa038374f868c474f0a6df1061de88886a1241f090ac4c7c17f6a429f5ca400e8dc98554c56363c8fcd728a1fab7c0007c67915b7d793c0ec5514c8f6a394c8502ee3c63b73b26da015c370826278aea16ac479884ab77a2d3c0b147e93181167bc1980627b46b7d06509d7725cf1085850a53f442c226cfaa24c8721db0c137c7a72b5898cd2137839202db535cd8ae76e42219e49eaabe2fbbb643742ed91551cd54f1de16f63c953fbc7b5849ccda3167660fb28f2a6ad8327a6d6ab649eb22ccfca574733cf01663fbadb3be7c33a482c13e50027d76a134e114c54380c1e84255060944dd10321b29149922be789eb0a8fb7721fe98a1e0bee89476e7efd6ba100e4d6c896905fc524e7f985 +result: pass +ciphertext: bfc010052e4a98535398330db6929dc14274ec2eea49137079453747e20d8348d534940809227b777a2bc15714782c05453f524ca3fdcf0df3ef076133b33a8205c6efa7f0998f5af79e7ba4a60d09b82975c6bb4939202082da7ec4d36ace0474ff661f27c127f088948dc789263925c9e66366ddff38156a7f29e4966b14b8c97e7ec42a845528ca6b6b3184bca46a10df3f0cf97f205f3e200028655002e95ddc121e692967869914900253f021a2ac4f57ce80b877650ef17b255bf6ebe351177ca540991e5c9e1bd2f11d669ec68e9ddcd42acd87738aa5b6907f957ddb88972daac3ad492fc42b34bc942a54a8e95ae810114e91e56bf15f2925174d2a0ffcdc143f60f32ed7a78d1267f9fdffd8cbd7fb786ef9080849a96115cd5447a0b5d939b2cf7c72c109e3a1e001e8c0294c6cde41eb8cf94fa1984ff8a69753b5169d83dc7daeba17c044d1ac0b75a300d604819989e55334cfc159c10c10d57b0d4247bbe568831c8446fbd06e61d86b36cd6cb6928386993420e6e4cacc75c302ebd7fbf68c26e4e47ee9b95d55e6fdf84ca11a20109dea65610dfaf2409cece66b5459d5ccdab137785985826f1ce139ec6a85c14b7179028e189abb634ddd65e90e24d0956185e10478f655223a12c12a58bea556d1ca83442024590e7552ef3de5b507d4780d2df02a8d1df58ffb198e7ec90105260c3b4690fdc3aa3eeb29a7c35d70e17e95ee80dd29e28d3f983af8e56a8e5a4e342f7755dd63ac17d760112ae33b8ff4fabd99ea81d5bc055ba05b14bb2d1bc5df6535c669925f66bd28c36e3e138a43f5e52aa8e3bfcfeb6119c2bc2ce1f07ac342d376df5955dcc82c5e1ec98053617dd269f94218d7e04f60db5f6086b517caf7e378e4f997871002d13fb034d0431ce0ceac5790f9ef66fcbd576e483da676dc2656f39e13ef9e53b0f3af715ad68ed200c153c3d4faee4726e40281fd3a8645d5c44662ed4a0cb2b08a546e4465df1a99c96d6d8792a49073dd33b265bff415cff1870ffc10baa701d18acfac906b93ff266bb0eeff4f9e25ff31bac8c8d55255d5968b63376236434da60619240ede97dc9a8e465993cf6154ff9bf26b0c30b5b090742e80ce28146c41d24a1309826a50f1c0eae9a92741d87da56c4a3e5565a205667ae31e284158709d3c606e4019ec5a0faa3dceb1125f15f7366e03801974849d4393e8ccc539f1731c574a072e8e1f283d2a58ba2094c7e1e20aeb9bb7eb597a2af60a51de419ce403defa27b952aaa1ffbb7884099d47a1f7fafe2bef66c2217c39b2ddbd0bace0e6399680cdc3dc1584bee8803025723a9ce96861d5ac18cd3ac86f88e6cdf29bea502845850913bb4ee3cd5aba6d71be09a6e8baf9afe06a4de80a8dfeaaf6289f484d084a7c47a28235eebaec311feccde4f2564665f7d100fa728e608606b15f3a2f0933fb2ec3508a329f388e3c19fed26e4d5fabe83b36ef8441d0e6f96ce9cde8110cd3b208a24d15b71877d54a7b0a9cfa3724b05d8f438b1d70ed5811ea82609a7e3482af67d380e8467eca9d9b03a0168240f7634f1a7b976680f877c604775e877fd07231ff766f22cebbc7971cb545df0faa77d78c35d1ae13439b340f30436071064e18f97399422484b12116ac86a42132cb044f4757623d70f7508431e3f4fee1be9d13e77d2a98437067a18e0b6dfd3a99cb43aa6900382ee5d3441cd39749d7528df82e964e4b42cc0b10b1fb47ae4cb448a57304fa0501ea3c171d6c8f82c542e144a56d7081e31fb0ae0592d9e7f1f207d4465584996e100c3cb7760f95089f73c19113ba4c683174d8a1830f2e2f8f03db4b9c988b160aaf6b26e1b49bcd0b45b2ab61338bdeba09b7356a647b77d058e046752ceb67bf7edc94f0939eab75135dff909e164c96de4e4e8420f20396e04825cca4f09accf33cc2fc313d39bd65f9441b991ccb9bfba1c548f434bb75824ea31ba21e8a0ba90bac70f3ba7e59b0411fa4bda9f68db7f2df81ce7ffacc8ca1b7b39a2e408d471a3df57f39bc662d8ef050c1638441fa49d60bf74be7dda58cea679f90e91f8d7fdb400ef0e8dfd0fe2e9a6838f76101e2edf3fd83b3ed722b12ee03d0fe632814466806b882581b5638475f160e4f8f6eec6d302f8ebbb2e847aa5978909f7ab1dbd57170939a65e74c27b92235ecfe9dbb67051f763680a0 +shared_secret: 480307819049683defc30e7eb2f711a150d8c5503e52d93e95875754046004dc + +# Official test vector 13, seed: "bd26c0b9a33e3b9b4c5d7ea32d5bd1fc371015be163c86f584e49bfd5362c8d8341161cd1308115b2a03b7e5eaddd418" +entropy: 40e593754e6eddb7f9cf176ba2d5fd1087c90ad377556d0b0f686537b1a3165e +public_key = 33651904e40d7b863a34774ee1e401a9a24a960045d4537e5124921355cce831936f307c7cd807eb376ca1b640e7a76964c0195b6848b2cc9f832ac0c11c3c3c7290ee182c46bc1608c49e809b1c24a7c738845e9ae972d70c5ed346c46ccc73e0e251b1b57368b96dd71cbda55366585011ee659a2f081a7288c873c8a98964131c078aada0ad1662bb0d2b0a1555a3c84555c593231d167d378ba606257fd3958bc24b47e8380dc370c374a869413547d0703d28e4b5ec85cc0c897f14d5b03d6520937295183ccb1059821c2b866e755e24286634ec088522941516c592418a4fa872b2f911018843d7c877da76c1822246cbdcc046695a1e93aff063a577fc0eff56b27a2bbb56f76dba2b34b6a6765b78493f514661a4a83b58b42e4b96b471068682bb73f535e32c8fc7964a978b47be9b23cdc2b33ce980f66a033f8154bf24b73147152f544939377ba2ecb5a288276c712f2317ac69292eea9005a74a3fe336aacc4257e46395fa9a96a3fc9172b5229c393021e57265d017f6e7a5e92066b459199957cf4dc653ac222bf0b953c3c4ccd5f7463de539c024bfcc9475cb3437c22502fe16b909f73b6e733c6dfc6d87cba8a13220e823a46ed900c7649494006766a23cec36aa46756d3a7124bffb2af34c586847162735ca2d1b259f5c1eb0912afcf6846641984763266bc0add6d60fdf5b6fd87343a5d59c108cc663d8b700ab1dd5c0ab60fb66b764201722c9c2f5b2ce9a88162c3135d44ca9a735fc90b35058bbde332063820f3085cad54c4a8cd8708d43b871ca2b41d0cfbbc066ab45bae33cbf2700c67a5a62cbf1ca19c2431b6c52ac476fc2ec4c00ea9c14cbcee11b1232d523aae8af555958c3089c6c45b47ba58cf1f884e77893fd296ce80584a76abbf2330ab058c2af770e4468097cc20748a188b6620f128912126a899d7b0df24b067a73c4329314c3f6b0b9b83fb450414cf0a2ffac6fe2aac17359b20288a14272a952642958058f04b24a69b93492bc0dad67a7552b37f2417cf7e5b889e97b2d02980f7336f8e0198123c855dc1a40bbc5a93779c7c7be7089a8440214b3542341e56499ac1f6ee61b981705258c5ff6e74637fa0e48556bd3542ee342891ea4b4dd5a4982b0471ce63d61b3adcd1197dae05627c5993b502bf3025f6cb8792f32264184b362909be8ba74a1b6674e253f28b086189115129919821b867cc84341e3ab43b350a5c79d5af47b4cd228856189454538d362049c710953f33678c28f3cd9812d731aa9f95004b94425c60cff24186f644e749a6963b77760ba491744ccadb72e23653a3a08a1f7bba316a9c83e3113cb49022dd2be9a4a69c7db6145377289c921ea0292f3e4ad84e99ed72696dbbc97a3644478761d6083aeaa59004a9694d545835549ca3357cd9d63007cdbabd6e1a0b661113ceb370fac0da48b893b3c8635619e79f4ca14431cd9a1be2f34aaf3bc059de3a3d9b630b5542f38a5a1712c67327c893bd64883b7701636b0576223c4868f2195716c3499a4295b0387715c9ca4feb3b1bc08c6e09c1e809988e2f414f0b0cce5515f43b50c2dba028e9ac11e6368062c360370bb7f5655a3a75c2e7aa86ba9b892019db150bc7dc881c5e3b24e414780512bfefbce95c914cf060a76fa4c34359c634a1a11c40ab7b56af1d19e2732ba6f3cceb93cb31e08c93f2a9a33841d667079f1715a56013c0e68386b639e414540cf2b13650ca9378234b94c24bce9a9cee8c2adf4356f246dbec0bd9b371ddd296ee623603edbaf65e734504844aff0438d163b27c34d52163d736bcb42b0a1a67067a6e84bc8f849531a631fc55046da2b31e0b99b938d4f8b239384bc2ed54e46e17e9a8297c2a16775f77859ba69c759638fea8fc2057b5105952b34058b329ee7b2b08a69b00962c31a5106a281890ad6257daa8c6ad5854eec7e8a203cddb935ab5545e3e57ee5f78925b1531e5c4593a7afee319c5215645905b50cec48961b2b6c1727b4794ed382c66c11b67804b18c3c0000868ee4e3ce4e9790b681161b2cac3f8a1a419892608814aad65880e683fa75ce66335831a7bbcc236dd6f2b8c63560ff1939b2b56b97e87049eb4c65f42d640c0d8fd5841e48bcbd1815ef0c62da099f5478bb93198ef28d89ec6714b0f142ece80c6a6050d3aa936c25bbed1dbcfc99f39b4805782b +result: pass +ciphertext: 7cb3891440c7d6eeaf5300ec18a786e5179b97b2c15d1cce3d4e5ff49e6c4494c165bb4b5d822e1e0d0dab2cd477816452c21d8efc981549d4c6ab18683f19c29e3a938ac1d6c0eb18ad94b9e1e8831aa8e66455fd0b91df49384465d7ffdccc9e023584089e7e30676fbaa0762672babd2a360a8038da9bd50c0fca9a5dfbd0872d8777f829b3f17c757ccd44b22af73ff4fee09fadb5820c5404154ea71cff70fd5b3689c52c0cd76dc0d8a4c2f32d32d9a914453be5ad2a3e14e3f5d846c92d50c4d65330b1d15d88d7b8f466d31f3f51d23fec066ced6f751495d3737bfcdd87c27559b167597d0fcc90e66dbd5c5d92a9daea58d05ccf286e2c27b04ca589ff454a078c4b5b4e5110d9d5e3752e9e8025341e425099a08045cf7154c77a4204280feead5353780c65e6b799fd26eb26e1dd50181c9bf76e5e2984dfb0deb74a4ec89b9a7e12f6e124b2ecdd82fa6d34473b9ead35b28f6ccd9709ac1aa317821bf3e92d952f39d9bf98811328698fa2faed3d9dcee31e334f7838fa82c397999bf7372f825cefce367b800d3369cc20161da21ea5f49e9c1704e3e9e6e87210b684df8a038b2143c780e4cb7bbb072a2fb94463ec095816bd499f6b5445eea99646ef1dcf4c331671e0948f27bf8bdc92616ce200739c86a3901003002cdf4f6c353a0abfbaa8cf9c34a8720835e6b366be22933d7a965f97286f38e9e8d21620a20131be8b97e7a67a2ef535f893124a9d2580222db771badbedee98c79d716bb3dc091101caa5e17d83ce35bc364ea143cccefdecbc0c4bde06d47ccbf59f3190e174c738f10433db16355cbb1644ef2ea8f33ae8ac8456afa4f488ab1327885a635fa2bc0df50133f053882d66f5fd3e649905a3d1495e41df802c216d254cc519bb78c70cf0fb0d28092e7ef4329c36df72b98f37165c229722d5e643817ebad995c8a361b43b7a6ba60a645104ffb57e05f70b65153965f0be99f76f1f798f9043ee86acbbc8102aa01a304014f082425c86e88f975272fe2a97261ac233e5b2491f0113fed7d6f31582d51f5bd27ac0f2f6a66c5f584607a8845a88c57d3efc64e07bed4f31cdf73c63bdc387085e2a50b30c8d4b393e055609680a6e39e3c19c764d3e4f01a536e2c112f3ac35cf3fa0ac77bf2189299f0de958876b65db62ba3d1b6b55b3f11321aece3b41095d284c4c23a6f86ee0c68e7517536e5f7fe09c6b3d543f0356fb98a75c2e06a73eba011679e1173009c9a5a1b7944ce1749264a2879dfc797edc0616862f582acad6cbe3615f6096f5b99e5b339fd9109b56ceeee55752145e5a6660ca4c948f1ae4169b54563f3ba206202f548fbffde7e505bcc9fae4929162b550bf5fe34af98891d57109b19bf31c57630eb2b9532df07bff6097da78d5874f2e9b2e5e01a35f904218771c8dfd6d230b4d1780875b45a1f846854cd02c43b76774ca8a0d2a1f7afd7df4931c1762c3fd5ae6b401e12b91641e64f3203159cac0aa43930c8fb14f5a9c7658a28399e9c32a77e738694a900ba0c160d8837b587be3042f412181bf2103b94329e2e143916323dc8c18d00d6e35f6f7e2441def99273d36cfc9685f07a7d34366a92e1f447e463bd085982ce62304a5e3fb1830b59292e94f7a887fea83d7bc014c94b2896207836042394ce50c0e7e2c0c9de867641a22e3c421e5b60a58291862c91b59e7bd4f90fbe3b83240f4b28ed38cf3b8ea899df3e569730c8a7a4f2a9fbec8cca2c06661e9058c54be3541c73ea24daaa34a659a564c51aeb2234140a5f110dc40261ad594c2121780b956d039d23a8e3a1a12aa99e5fb88edd774d8e9d22b3700998f91d05ed60bd0a89a3224c322686f27932713dcb24e363955a548ec5c625b7e30b6dba231f64934a9431336e74b0e891d5e1866965531a84761a632e0eb007095b90e8f8c409e051d0f4843ddab0e84f2711e4038fd6e331f53ce194823f4444a77ec73b082f73160fa266c4037fa02e20a2d01d617aaf7639df69a8fc83c84cc350807dee143c089adac7e052384c2f1460e9b3f3209b53b3e89156953255eab169715845f458676ff656689f77ba16ceff3e5b285c70515a1a5074231a02a97ba8492e64c70971f522de003129c517aac123a4509ecac5385eebaad022c7c5ea1b29f1ba4f68e7c5b88528b7731d1b46528c579d5346b4741ef9980e588 +shared_secret: 8d0ebe7aafeba5ef991b1647872cf097d625a671203c53a05c4dd624c087855f + +# Official test vector 14, seed: "e2819ef86853bca1b9dee7ee1c1619988964f9a913e635aacf0d96ca6e0300d084329dabd8f149e24176d22757404260" +entropy: c152523abd8248bed40c3827bcf0f8e8127037a55c780695e2c28ea3e041a44c +public_key = 24e5249c820c83a86b66536c8fb371772408729447f8f2bd61fc63db224d868b70c8e8ac6685c8e3bc2375049c25f941169291c38a0eb0f3cf027bc8324398fcca99feb47059e87db1c2b723522d3f09cb8a19bf7b2b35db5516a652b837fb94a6ac6701c479686ac758c381fa242d8e67b1e7f6b0cb04cee5fcbe2bc5b266dcb55f1c72b091039596c4e4e50db8741763c35365931bb37a3552bb3223938c6a876e54121fa489c502e14943aacebe7a5e7747bddf5c6e916095bea36dfe8059cac7adc0dcb10a64bbc2812bbceb001e22cd5438183f9b3249a27566098af16782c6b503b987a6a5896c1bd82ef7d3c5c77b82cc797bd682849826981187a1530b4fc07173dda9ccb8c5248583503a8b974e8b1ca39b1beae9ab516087a170ba4d12ad5e555f77f27c55c519226cc6b3246ca1328db15648ed4394cc038245bb7d9ea48af2350f0961283f195bd51304af6653bd133e241729b5a62495c8c45583cd4c30bb1c538fa4f86afe799026f86e1de0024ff13ed5713a8806cb9eb6cec9c94c4fc4abb2569d9486507137733e681a5eeb479c8256ceac1ef823b34995c65cf43bafa250a874b743388cb6541d8346071f075b439620bce761cbf1848953200543177e0154c9343b47ba3f5ca025fad201bed145b7e8abec99a404621a11372c930713a013b0cf4b346ea6cb64620859d458d0e08b5d416bc86552c79b087f63539303c6fa96aef18c6a61dc37e1e8436fac43763c9acb9b5955157cbdc15d356936cbc603f6eca2e2a53163591b3d2257d67335caf60b4223b8c0cb7c54454e3b4812e5760848ec0babd9a0d7da9e83719bb0d7395418c44d86bfeff4c8a8548cee6780a5388e36eb4f5667ac2182c213a577fa2c4616814ebda8ce8a1c5851e0551d356471a8051d179de078c9f12163b0234fd729c9b02c302997c13974b47aec7573604d8278783bca1a5f184f77047f3b1861b7e1c2dfeba290e785d77ccc37e0ad03c199322c475191aaaf87300ea43f6a956b7d03b338b147cdfa14467b2850a73ba99c6b39d89ec6fa3052a9bfd0f6922f9b37ae6966c940370811aad1572039ba3365d089016c21fcb64fe3d924f805336d49683ed262410594f8205bb2649082642314fc7065cba9b8c4421f1bac52f69ea8f96093f89342b879eeb785756587a4027680119d41bb559c758197d360342bc3845237aed01aeb8104490b9bcb4ac158f154b347a49219ca5a401f90d1c1f4f7ba521bb33ae0610767207f3c9feb991e7ce444a42b33ee5a14710586523cc98aa53de01801bf383e33ebc03900678750734311c349cac283ba827fe39f976b3de28610113291f61325b870384280c58ac9c48bb65c5d8a672c86b218e8a706d3b87f2341b95199956886ee0ab068d927ddd109af491d23e991f4e8619e4aae99053c4db3514d380133105ad60885a9fa5fa80c144a3949cc8c33b591c776d5a7a6e9c8d12417b4c1661c867119f7006e6520462b63e1770aa6424dbec6b9a0c2cdb8c8945d653e62c790d7857681b479fda12c8894640aab041a044d897c565ce882aeeb8caf42630e10afd12293fbec9d7ef259bf881c92cc7706ac41626bbe1d17373e57b3a86a3ba62cb6084869b58c659371c110930b6c75626651971641a899645846f96081b00f6c29bcf8c646210676bf266467d90eb393b64a1593b4579adb0b549e6648da5c9e2eb3bddbc78c468912dc674b126acd4448bb40bab46ebc8620288253156d8d39ada1b639c6f69d34e9a25e6b6bf4241bc00b5968282bab963820fac7159001fa414dbe2b94a74158ab43c6a43519f9a34a716cc07908452e5a0a517138cf46220243bf2e27ae78835b73e0720222700861136b2a405a241e58f37f132c588a1102a5344b704619666900c73990c2145497565d09e984f2689e315ab204c59a360534a641228768a9f1581532ea9d7717b8d8069158605508a24ad1c71fee5760605bc2d619b177985ce89cbae0ea5ea335529a20225cf83744d807b886ccd5cbcbb8393d5bf144497a4c454a2ac7589b5315937345cc02372fde21bec80c0ac8912d28b3348df2a88c35b7f384809f24665600583530226b50a6429217ca211946ea66451c9092e7c42b309a922465561b307f8912f29a1ee687b1d96d8c201bdd75a34e09d954a4267f21490c0eb74ae98fad1b5a3b5d2b9f70e9 +result: pass +ciphertext: 98b43ce1b5e3f4f7627465e5147c9ae5a547f3c748a683be0c41c952bf9134ac4aea57db428e0c534c8df32bfde046a4bb694ceb92ff9368f22565c10965512103c00604141bb05572e4d9ce098ecaf9c610ef9f9f371991b3ee605fcc8562bfcb8ce12b559ae3736e617846b75449a1d8640d8cd81b10e0e1e16d37283fd693876bedf41f4ad3acfb2c7fbac12f81d45dda3db5a0bbe6c79ebcf83f7328e5a2a477dace62f9ac8e8a82211613d7a59a0ea5a25c92fc868f1f2853b030028a869e8035800bf110436828b851b91a9af639da94d6dcf5997b42978f02df5316dcb445caaa23b57eb05cfaa8cd70de8035cf76be6d812e4e48e3ee10d3d196f40478eb06b944f6696bc700953897498bc73020cb6d61f86dd8d0c32d86e875fd67b3d4a506db533ca7d49c996facfaac18009d8e5876cf108c9f64f14cdbe1803235ddd328b1de2eeda09e1b0f2d46137be0ec466b9be1790736d38c317c7db5291accfe7003aaef4bb4fd6c77ba7acb36c9a7da91917ec5989559516eda9556aaf4059a31ec6a4b119b80e35a1d974dcc1cb12378c97e7b98bd42fdf0d5f6e1612bdd81246fcec86ea81aa635d8c1e7475afcaaa0566ad8f1c2fe556c0399da36bcff131b5f5af6a93877d4f3a69e1d7b51667bf90c665c86018204d496fea4869116035efebd7b7ea505f77fdb6fa8e5b436ef053c6ff72d4f11a40f7569f46394a6fee11092e37fcff1b881148738ec0eff7004ab9bca6c3971b1514955d6436356510018b90c1954cab172ab8cc852c0aee45f2d44bf5e4e5ca48d0bcc683af70d9fb5e90598c81e70c4ef11ba0fcc3f3bc0979fcbc3555379400a858e2ab05509a207a8edd852c8ec0b64a616cebcd0c90605d10b451bc2ee1fa6c4320193002148f7e0eaf8fe480d9f1865777515905f5500447ed1dd9fb96b0da711bba70efef9ee86a3c1eb0a523ccea666d4dc8e6c6e00725cbaab126cc1d0562b4d6d3d08efab09a1e07ebed940d74240e12c171fccee0a22df8dfa768979e5b8bfbff75ec945c0d86b3c8bfc41be1bec09c1998e4d54bd9ff309b1b8a14123bb963c39902478fc70010e43dac70cc799f439b51fa0a56f53c0b792931695820ae1aeddc75dcc4b8b695409e4d5d91c5170dc8852a68c0def37a69e0e449bff582e1ca9452b9a3109800349d3d8f648ea219e22d79363bb1327f459bff8ab2a98325b3f2ce2a16d66165f3e3a353d82a254177baa883efeb8e2bb4195444f90aa595831d059988548535c0fbc70a3ceb954171000f300d7509f3c306207a92aa5b961891417e97ac706eb7be17bd21d144fe368449fb0104a0f84211b884314fd894b4e227c81440b37e66962b80723823b4f0ba3584ff8670d65e07ce18d1aab6058a1f42b33ff9e382eaaa8a6c3ef1bd8bb3ce9bc940b2e9593d54f1cb6b8ae23488c67ab4e14ce11592114373024ad4fa3f946a187edb673a28731787960e096a00b956acb5912378bc794179306763661a8ee183cdd786bff72d946d53207b409ed9f76881c2518163b0215a78a3a0b3120838ff4103192d2e78bfcbb5397911c0b3ad281762fe4b760f5c80f6bbdd55205032b60aa26781c23a18be4fccfcbcce7b4ea8ce9d285df0ea24507994826770387ba75fe9cf229a569970046f7c927aaae551e40e3c56b2c00be3e5ad6c364eee23cec1f4002e9678bdf12c52300e374be3cde9a434dc4c015c985d63e36327ecec520c0a7f7ce1c92dfe2b780a180b42b6495d1b49d83e6602f853462c83817dec59b9c67ba60582f20b7d7362c04b5f50574fa9bfc5221087e94b760b6a84788b4c563f5c8e77b173098197e2d23d060187cbd13e11fbc252c7afe39b3d84bfc8daa8fe7b208bcc694ef7050a6d47dc7de96f54b0d56017ad92f2344713486bd9719232ea99f9d049bd9b1f221b7dfe705fd5a29d12f1a08f4d02f4811683f3d7793ce079f5ea02d6a2b05e2f82348ed7f5e2b94cdbb3eb9558e9fa6c6a538919cd5fdf66d7c56358740c76ed0af28e7ea769a715d4e56367c9a2411759508a4f761bc4a76c468345009731f2584427f648e8971847ac724282a4d6017b4715de7645559218c3a0d9a96ef78cac19a05284d98b7e403e1845fbe5a2c9055bb779b6851d7321a2489090b2b1289298abe26e98fd1bff494f021485114a8a44efa64d6c1e1479a36912a6dcd1449b3 +shared_secret: fcd665fd50eafdf62b40f8eee25c6f38b5b4d110e329399460596d4f5c0bee30 + +# Official test vector 15, seed: "669c4ef8a051ce201da65fc4bc34d398ec1f806276fc5d987ad71d93bc12dc8f107b58be6e8422a0795c88cb9a0e7488" +entropy: ad6466dd59f26b762fb02b19eedf5f79964da68bce0459b91c3a6ee5a7e01183 +public_key = 6820166411abe7da1944fb933eb009de46ba60e249664722776b37ccf770b187269cb240004aaf74c37eb027c62536ae847b8ec48a6b2a9ac68307802db576b70226fa1b951da9cfe094a0bf4b0b306c5e030baaa25baa591b289fa24148c7ca16a19e0a0039eda555645bb65685a75a57028bb29456e4c16ab48c06d346ba9925db4184adf635e779522c2670dc5bc1ac86c662eb37975aa806a2b2e307904f6c6a0d094828aa1c07891cf098223ea78967e7af701273a8a1859adccac61bcd0c103f3c13aca18689397bab1ddcbdee2ab113ec6932c68622c513b0d66c60244cd77441c7aa964b5331ec11a088a5034e064a1d95b4b389c15c51426fc9a135464416881858511fc894bc2a3b0b742366dbca062f2c3eec28bc3c38c809eaab081c5dca65bfce171057ab8467eaab50987732b9c85bdcaee647342c3660950b9ca7c0bdfb3bab69268fc8486397b540f0831efb861ac11855dea4a588c4935847a644a470f055a923162f1dbc2b699020880cb08b80621de33a9f0aa83fa2b5541aa2cf41b98214a5fee14785661a63603f0492163b47829c71a7afb0b5efe94e8e225ea2c0179539772a510a5ab5456be4670a076ee1b25ff62687a96284166576e3e773adf2c061258bf2d28b1ba00fd485b8151076eac5be6ab7ccd81312a9ca938f256b6fbc8ab6d3c3a1da5c75e1806c5c4cd4202c0b20816e368bb2443684463ed43787a89236fec32fc99891166462852750a8c1445ac407924470a56b1cc75c7a378a2e40c00fb35c0d4f65bd12f49911fb923bec1b635baca8428ec7d13b36079732838459c669f7f0c26281717ad45eec972011c66d63a298b95566afe11baac79a67dbadc882815d014549cc294b658a8c00a2422c0d23f6a0be9bca232c8374e616e749623e8a99b0f96a08c95897e88900851076b1b470732ec2462bc9c943255bc475da70b44b134e0cafe8f3cef42972cc175e04fbbcbdf4cd151639155a0469651408c9292de9383e63c08c8bcd96a69a3ebaad9b2c1940a37f6c32b1d3b702d28acb908cb2c7b88b89a7ad4c87cfa6c53987e4721d2302bfb53ef3e9bf7319219926bb7884111fe2c4a9aa4c4c1c0f8be3bda890c0342b56f826a6e971c33f900408292c5820c92b66bc8432cf735388ddc35eb004506d8a671547b7f324741f609e2121a0592644e7e0cffce7280f77c34d05b930b96ec9c79838da4a78680da3b07c1485081d14b9d880bf3ec61d852114d738580918c72a270d7034412305ba10d6a5629a931747611554602f529f32356d9e0331de2232e65c695af1b597cc816d001ddca540a0fa3ae67313853b6a46606c1bd3b32d193bdcf2cdfc2c1f9006724365550632bae19bb3d60804d0c80f17681ee020c6cf3cb7c19a22b1d4acaa8abb40f308ec2cc6616164e106a06f700bc62266ccd40d4a414dfc818ef3ea39540247c0853309d45fb99b84fc3ba114c240915a19e96b742a234ca1e0183e60c8acb65ed2c8a7d239b408c33fc5e31ae83caaad17c24b99238b2a52181517a1202c87a17f22bca93e758ed95a895a6a97c163cba8a4c0d0b980e9871fa8f595a668adf927c4538374c7e65fd052196a64cbaa23969a1c07145352b6829aa9e93993c640e0f62b5bb0228ee37400619eab437434026df078bef452267841bcb72844e836ac95d25439567a76f69a3b2c6cfc1c4525f340b40c558007b4f76864e8367cba7c71edf2aa9ec56f25f606cdd66cedd0937451b95422a509b12553a8cebe7b95bd97b45564c98d20a9ce8c51add836d8c00af538b0d0528507bc3924a731ac05a688a1680e050b770c3a8f49c654138bde367f4269abdc4215175799a6112bbc186b23745fb0cc3f2bcbb6ba1670b1834e99e10b2fe25003243284c59ee4202ee28a6ec2086510697240d60961398c77b3b046a23a55b89151673e1ad8a9de959923974c540902716c973ea402b3576f5b664da2a104812a6101996980d68baedc34f9856effb6c457c8332487349ea3b8bc67acb7fc509c22a476c331af75374c57b4c010675d490da92c7c60ac69d89a25e0d67351aa5c9e9880bc1386b77019436abf526b319ce44cc759b009b93f8b9c3059bc7c63ab483a749e1a761e90587f13945674e85b7c896280d15d2d20bcea11db480755602348b4616400faeed3c143406ea9c1307e37e2642ee73c442a +result: pass +ciphertext: 5e0c732a103af159a069419ace2a1d915ad5c589beae24c7ce3b5330c10c59170511e4beeedfd369fc2001ae60466c3be35a244469b0260c39d59eb33dc744eae2691eaa75a34811054bce72dc3f5dc7cc57fe96913911e27e1dfb7a134b6845196175bbf4531d87ad6e8145950df2a98cc571b35d9d20f638a40a3cbda7d53ef3eafc890696cf511cc962fa48513534877fb63d69cbc4dbe1471d6489f5cdfd83222ae0c45abc143554e148eb3a0030e9bd687fe684a4218f2371640878b80dac9242aee40d7d80971baa2e34422cf0083e59ab6be20f3c8aea270b273952b8ea7fa0c0ddbcf55769e548d549f4cda9b161f0565b87c7cbbec7ec157b1c578e03bf84264c0d4d84b7660ad4ab5b009a3c85d995d4c663cc7eedda0f2aef0283143bbd10ca643b4eab50961c7df5a633860f735a52710bfaa27b3a3ac4dbe56a82632bcda5c5f70b20d241814e7f6e9e6b9b7f089c30294a0899e55ee74e366425849483138ec5ce41fe4760f94e630e9030a5add852d30f2ecdcfca1f431f943c82299f5032cc79f4baf2580d15881567957fa266c18efcee6b34085400ca89ba05f696e39f4cb552944f2d39b4a0bfe9d8df6b85f5547f16cc3ee8e0460ff7af9b4a236e463bc9922d99507e069ce84ac77bf56366bb1a6eb58d1cc7b560bcb47578661682aa24240a28208bef802e6df94b1478af7c103ff756bc661fbdeaff6a841af2c0b39f75df4e078a62e267fc1c2d491d589e0f9091e764568691f3fbef675d466def5098322e1313435b689005bb8af98865bad6de64083596137ff4b36091716445bd5ba416ee0fb961f65bfd243e841e5d2cf0d822678a1605e353a8dc0898d60dc3fe8d2f4ae980f8d135a6a74779f85e77770830417a6ae47cfb804d4b7cec8961ab44b12636d0a9522cce47bbadaf947fb91542dc71e059a669029dddf78947abc8940873b4f882dd3526bbecacb737f2af651c0ed0d9b01dd198328e31d2405d58dae57e755a8500ec058a36ec66885eba5bf5285a048d913df95c9872edb0f19ff783f1d832f9b24ba194b2ada14410c6aea961ea029e4179dbe05ccbf96b62d34ccf1148ea799c644201d6df9c14ea208a38b7783c69f0ce80131e46d5523f8ca82229652585002a66761b702a3565f62d4955124e21a29671e5e71d03059f341ffeeeb4959487b7d26a2da280c340583bcef0f719caa1817c785a1816fe68f32ab5f426c5a0b06694974151c7512e9137db5e2dfdd5d7a29775464ad44b98aae9e1a930d2b35cf0cf119ba74752bee665e65d6e968c286370eb0ad177777c8b6504c7551a57aa6875f18fe54538fba04a74a721f07c893d211723c8ca608670bec9be28e249c4632ef63e59dd790617e9ac0a8bf3c0eb419fb435c346803bdcf2112ad81edea320202e21718197e4bd995ae7f7396ad00b9f8bf11b0bdbee0061bf06a298eb1a837bc14b0da80395d676140fc7ab22bfdcd9e3c087b122c4fac6a9a9e05706c93084be7610b3a76902d846fc93b782d582a548b3bbf607b30bd72fad1781e765ace7861547188757ba4f63300eb08a19bf7597900048ac1731625b1db936b02f56225b5615850c97e507997eb402d9a26b6a6b25fc802e506537138481fed4151874929d70d8062af6f1d3ac6ea2120ae799b124b3c7cdcd639415382f0c9792efcbef2fef5c9c514266fb1cc704f1ae0966a05169d342fca180363d43b9a0f6366f3d8006fc748e1c5d29eb65feb99127b25ba8340efe4c7f3886edfa6c3e05b7f9075cc66a9e93e7db6b8f57bb42fe74de1b1b14c3836cff9b7273729a7a7281cfbb9cb11dc8479ccc3fa6344271bbf1c1f03648ba971100abde22267b7681d2e7fe6daafc539cf8fdda1ac18563297be8f48c4ecdf91eae21a0bfe5c095151891c69f01c74f71ba54d4bce13cb0268c87dd8335043b210a680219634d9fe00173aaeedc4ae6f86acdc0e85157006aa48bc20f4ddd6e90b3e1eeddbdb84af544055f7f908d5f31c559f8ccc592cacfd6c550ff92e1166eca53d170767656ac402dcd437d084433a60335e3a59093cd2b434f7fe182e68f7f4911463ea2bd23e01017140967fc045d377f81e1ca8c3c0fe2b649386dcbc20dd243448b2a0b0c7f9b776a6be6aba385e2e61341c4d3c59443552a99797171077317df925a6961398db170c14361a15043b256e972289e +shared_secret: b7928b922df5a82fc6217de5f086de8cfedf91cc521f1207f3d912b2274fcebb + +# Official test vector 16, seed: "9debccfe818f6b5204db4ea09c03ec9a19dcf1629c1527685b8a29776bb1daaec45f8abf8f0adc9a8c8bd6e2df6d8048" +entropy: 1a4d5dff5847cfb48333e33bb00ca7301b144aa89dcd412ff5a3b1081d775b7f +public_key = 60045ceea77d8303982ab9b039dc4c3fd0159d46c89e618304fb5d4cc53e9766138fbcb061b56ddbd61e33873a953590f628c122d049cf722737b54d4430c312342189b59364e14fdf8cb1edc540c39612f8e2bf88710c26425c09dc7affa63f52fa01db7794aa2c2abca69145e89c06d40189fa704dfc4b252811b939118f1b9928d0b0b6767a1685804f502a19254ff89a45d9539c9f968835013b69a362f634b269b911c4327520673049c00e0fc437448c2849089918ec93c2ea270bd0699c85898c0148f4a1095039a216a51143183f4d695aa456c32e8a35d351415120725ef995010409e1176806da6b6e08ccfb3093914c87c107cd14e11f937a9f138b928ea5580494c6eb643ae33b5600f7726e2004f52cc39ab24d0cc9c3f9e57a0b821fdfe8404e6532bbe01609a61def2b4f452a1fbff381692975e05121e2330c789055e5a4ad696678bbeb1a8d3247d2257ba246a2ef966c305a8f4fac73a6fc08f71ca500aa9d00962caab7a2780cb94c209b1cd43151f3248dd344bc9898b7780950a10211d73aa0ba20d89b01b36623ed8aae48845e1d7372f12b9a692b3d525263dfa12b3f312f91b5802d3b3380e58be6a92a70e77cd6134103496dc3e9236ff17cb0ebb04a1783379baa0a3c54cf1c5eb1b4afcd9a7042c50d6405b1b610a9429aafe61a5423055af9f61d3617be60bb59ee8019e72123069614e738a46703af5bf25d31ac4f1357832b1232cbb9325e522e79571a1d226397e407e4b08b44082e71e984e463747a230bed934127e892fba29b88857606983a60b9425008117ce17d20c82b6171165e940530254f2b0cb4e5c235dce373fe1450ee6457da59c331b17f8d4b5e0bab25aac789c04acffb957724783d00dd24eec3375f97ad838ac0c261789cd3afcd68b2d53c0c9bf944f094bf0875c0f08c161d3618c774304ab25563981974ca2e13b5bbdd210ec10ba39c64635c9025b9610b623c2f12a768e03163d75315c7097782b69c44b3a0c33a552228c6001c5ce194346a80824627b974d2c64fba994d2c62f8babac47c51dc100c54789f737c61b9b3420469b11d110dad9010c6c67ead2329d3b4c665ac528041bfd028612c608f87f3ab74b6b68309317e1c0ee5662f8dca46c26039e2dcb1fe8c42cff0057d4bb3e4ab3bce13c142e589592c0850e117cabb2cac88431461a5e6743695e096099a8249e22f4033c15e9266cb00a9a36103ac473123e95d373b0dc92cbdf6b2b173b07a3771456d283c758ab963811e5168694cc20e64e8a677e05e3915c4d93c8531b75d430b3709753f899b1c45434be196a3fbe5149dda2ac0912afac619b4a45f3df262f7d617322a9e8221a79f2319e6ac59034c80b3214953419a191b0e4a25247bfaa0defa001d5529b1cbb9e63ac03768404645bb8ac7ce25687be70796bdf516b76039f7b689ce6c3f569a04c52875ecdc9fbc97447e0160e75a89215aa263091e7cb5534a97660cc8515ed61d9b624950c089d9aa647f787a8ed7c89216694a83c56cf278fa94340d790015b914d09ba91e10ac5b7ba95792bfe779966ebc07ac6916fe1aa4bce56cbaf506563319c5a4c4344344b472226f59b7fbe7982c08afe9a60a80c446b8b341eac220fa8a664b6b1a0df72684b67bf2032d75f5aafff7cc724acf3f1051ec3cc4ce8768fa9ab51f960f3293a1fc527686570da34404b5681967258799fa26f22179e18221f4babc2b7c46601ab7ceca1a345027d44783e7d6c511615b108c4197bc0d9ee49c91621074a907ab292d4575abad75a19f10c2a493af902252bba57348dc33fdab3217778429680b4f352b52445eb662101dd22ddd211f314577cb23bc47c7176942c5cba072996c048408a5dd795907bb2e2f49acd0e75a93cc4f7938136d7c26da0691c08733e8138caed6c8cb116b900869f9fba9f5823b20626980ea86e6f487af758830c787bb1bbd8de024be9765dd04b969dc21589312e709cd6780c9a38a8207fbbe74f220c3c33e2a127588b64e3170999d3a77c8f67eec947cb69649dc64010a3119c9030e1fd0530cf5c3b73b631917719d0983ad0a06d2963741289a282a717d7487acb30354fc74b005ba01101a1c8b52c130a00339bff4f480a4e890030a709b28082d3c501b2aa2d14fbef9e429f8cfb50e84c327ba02edb7f6abdde459896eac77b5d8c7d7cabe +result: pass +ciphertext: aa9d348a26143a9b7645f5ca60b8164bec6c46f77160898d42692dce57ba70b1a76389cb3bc4565939d9a05b0d8c80b10981d94cf593e001ae86bc722eec3af8fc152737f283b23c1f87beb4750b9edca2f0832a902e91a3fbb3895f915c94244189c7e3ac05fbf3214d319744f8e62e1218d29b501fc210e5defc4356d38d18f20a2a456e770a2e50e452118155c57569d85b566960dce62cb650a6476145b5e26ac71d9db03300283d5ebfedaaa84424c3129e4ffbd10d5a995cc6801118a13cd9fe635695a01ce0befa9865e9f940d8ec5cd9b5aa4163a525a37bdd5aa2240c071c99e5a55593ce0b8aa1e46be7682175ed83cd369a4df3072fabc968dcab66361a650f8c3b9a85ce39db4351ba975dedd52825a2cb3392b2ac34cede2c17d9bbe8134705714832e55921fc91a5b7e126d0379004a1d2aae26af0b169da33ac8cb56352d51e474a078bd192e7388ce8bbbc1c03c7fd129cdc21bc529a3c6ae161b68765338d3473e8e5ae83a13aa4f279d72c836b7876e0eedf1cc9f956dd9ae68d016d6f64ff585739c0e6eb94f7b1e34433e4a52dc7653c9334a94b8d52cde4df49addc20e62bf8e682d762a94f539fbd059a9c47a13a6adbebb914eba693ab9862c5ef480389a4b7a6540a24f994d5d105415641190395edb0f9085017a1f1a4c399b45ef13054d9ab2c2b288695e82e9000ace60967501e0030144465edf4c843b82af76d4849aeb1e357c7863ca92287996b9fc794f5fb9593c5a31fb296443a89007f1ace1235e2553498c1e9cd67efd33502227ae657b31cc603c6be6067c34c99f338e08130404b1100bfa732fe449ae17ab8b3cc1a8e8c96404ae9675982dc6269a7dd2bcef77fdefd5e767ed3bf80288c8926060a0ebd6731962d3ec846ef0784a22900335ac90e68054afcfa4d0a373b1993a42df0a6eb1a4fe4f371d6dd1bf7c1c73fbebbc2bae4497b9391d9cb7c1293059f2f2e42e485c4a1a6cc7adf10da6559643a11a6184aa62ef65597d4b7266080518c646ace2a4863040934169034c1a1721ed73fdd2ebf704480c0f5aa885ec5be064b9889ea9566e72a5f32be32a9edae3d8bc8513f136fadaedd0efedec6c08e934f3addd073f8a6ed95015ba1c240f85de99d24053babf604e6466d3c61b8ea2b19d413a173d33663e36e8871cb4bb8df1f7c2a0eab6b1d985981aa61abe005cb835174556d53281699e1dbacf6ca1bc517540d942b55d0005cece29365d18720ca24f05e697da16be5e135fcd5df9ef9741da03f1c76a44fc31f7dcaf8949bddce95eb2634439c5cb59a07ca03ed199b6a79970724b731b6bcd34b20d83f097c47d56d87e629166c27a0a888cceac6273d67e8f6a62ae0e515d96552cd8e147a6e67c6fc4fb6bb1928ae70ac7271e583026d40d423da81b0621a948fa966616e2d5e5375421c715dc8c81fd58b3c280214ff5cc0db1bfd2311f7d126d33553e0fe2d195efe85c42f56f67cb9486d279ead1bb221a2b8d83da105c5733f2b9ea60d370f4c746e1063c1797c5e9971d913ab2708f15de5b78b26414d3b53ac858a901a4c1914c89e8c147e5f30e875938408cb3ce54eed5f7e6ad9966198ee24cb3be353bdaabd1592c1886948c17466adf039c20bcfe4db27a1020fadcbf34ac7cb36b2b6757d94187636ede4ba456de96416373bfeafde43ded757af3e01b6ad422a17d330f3ca8929a28a163e7d045f149baada7d7cae24b19a04f06490e3cbe658496980dda1d82b21d460eb1c46bb76ead1d13fcc52ce1a1a15063550669afb3b20d16b7184e68dce36e5f9f7df838e5ad160c6748105cfaec014f15714748c5a10fc377bc59a24d5d770031f82e0925f184de62890d9205ba132800731988122d161de63f0313ba563233debc9890752168a4a0fb24465a8d576772ad7434e1f3a1413244e397ab1d0b0607a429178d247d1e8910738c1ac1f4c7844a6352e95bdb57983fb36c318cea8577212f7d010f30a82f8e86fd0100d0c38204b99577465dd0c51c6a6a0801cd977149985f7fe6d71de1c0b130dfa4e127453c9adaec1e8e211f9acc662dd43d4bf755bdb651457dcd7370b9e88b84a38c7c4cc94ced8285f4ee8b0e2b646d5aa2682d84ee85a6505989c757857a71bef9d4bbda0f1593de4ae2858a1d64a9019b2f9b182f37cfb1435390991c3d0d93d2e05c2edacbe117fa7 +shared_secret: c653e05ceaae3783b2cd20961c12a4331f920ed695b6047ba6eaf5d256b8af1e + +# Official test vector 17, seed: "8098ae7a92c10f707d405f7dea02c2efbef44efa132ba8aefe81bd45e543ecec74f10920ae48a40b0653d63532517f2a" +entropy: 34f44ec2092eeaf686f2ea170591a98527cbb03a4fa9477a7aef6b41a54feeb2 +public_key = 944633d5f98af3845ca7c37f1be75a52410da5d2bf9d102305eace09009e6ea21b6c543a25032612492b58247f13f01c6ebb27fd469dcfc83ac93071d3368fa128a4c71475ac1817a8b1744c9a2085e54ebb8455bec286dee50cbce87ebb0bafc32341e877aba7a5ac10dc99b65687aa53cdf2585976a06bef586e8993953d5a3cfad8a7593349f9c31010e6becd32cf6ec70f4ef88b1ab955a5d6aac2a877323181668a2c731726236c4c1f77768ed06a7358744c91c690029c4c747603289874032fe6730d96392805e10b7a50a6b849985083caf8d64c1fc257747613b9e6c85e455ace3755ca9034089162d96346e3f0cdde0a81f6a7727babab5f1401dc1832bc175e3576b36747101ccac305d28ac5386ea92447f483408aea6ab22c1027b99b9f14a1b6a67a24fccfd5f52295dc11995b9503d76c7d0ba51abac76777b960c45ce8dcc24ff6031da9a99174be42a381654b5c9697b13188a38c278d94f801a2b94685acb0935074c06272e0ba87b6214f717c01d9508d77535e444b5a2b461d02acb855d7309b8ac6b7731bab6626921160e1a35d0bf14deeb922d770be063198d5a72de076216bb366a0889773bbcdef5872934a894c7664f568ac7f1cb5bc72587767025a271db13a0ce44697aa4c0dba80a730c0c1c2146b36a50d23926df520ab3460b18687921de988c2a7c97dabacc5aa849068ad76f10b361b9a2d1436bd88c962ec724dc15a6583ca8a41704f3946da465042b808f2513b65a5009da5b44125308142478ad82ac64940164c24a599c96eb69ee5e4bef1e45066e2cab719b57fbcc03c1985472cad16a2699e4939b2e2850c1b24e8049a41362b2b908e52e2a9f7808d06a6298e059bbe1c5a87a8610a06af0262bc61390f90d962ec95bcc907c850721778a947677a226c0482b5704e7e0176f1e28e27150ad84093ae862682b4a74e8a7d330c4c4e144c3a39c3a3da3c75873dbaca4880c2940ce30ed10c395805c0bc043cd2861b2e9c0da1b59474f8c492024cecdc7676d4b8c4b3311096270d29057d05cba6494b6aa07379b73bdfac9a561a8ffdd3a43c5877d85749db9c8379abb29f7567fa1cc57b09c35e7b6ff3f735cc18473049ba2d5837edd8176531b67e04a509ba811a9467c633b962e8392d065a03865658913f494501fe9c0a6a649dc8f3256b6274cb6235b0cb278132676d028a24e07595f56c4727a7b11830c1c9840c002db53b6198444e5b63be4c46be9548bf4e1598ea6371686c63da774270b82c95f0c9a12b5c8f9a591ec50971d897b3c1c4e0701da5e26be2760ac99b481151abd2a20ba343bf46eca8699487d14a9667565ca4e30eae468ac5e6cae54b4adcd5acd74812ebc3b4066021b0cc890099b911553b95c794643a97f99a512ce874f10a3c250a513c005a70605429f5943600cfb9e4b2c5e72c821149d9c2c554c43d9bdb271806ae8b58506571c061240b6e7967417542334773178424d46122c7212e0ba7b5bf4388e8f4a3f60caeff712c1e3773fe51b357584a917bc3e4fb950c442ae17abeffe262a4a6550576b6e8297ba723943ae3bf60971b9b86cf952c806fecbe937c7b15c91c9e438ebee95e51d209e60105bc43be345167ac92492bba9549807361a06f525380f5f19f7d1bb926cb1c2fa726cf371174caad5034037d07ae2f305f4ba52f9415b0c624398b936333d68625f533d7da20d62507768a73f579ae71b2193f52a214b30921dc121b6c94042b386f52a202794bab835a9391ccbdbab2ddd94b3b04acf71a12de67cd24d1a85e7330dd36bbb6b387acb6bad3a59c1d292fc24aa6045c8c34ea4771b8137537b644997eb45bc2ef2a1165b308d3c926a0d23d09e749a142493a99ab1c3a80a87c3003990956729ec1c6c60a47a16f495813cb75c995aeaa481875830f1e906fd6eb993a8b3365189d1b50627466161451a21ee45397971d8f56634d90cd0e136c9d82729f8a76c61298a1a240f611824173abfb52ac1aa4bed85b4b18939988895075e888ac0c519ec75ebf693d3903560445414ed3bb3d262074981524e361efe44945b14daccc62e2c335ec40bb4453cae2524229571eceb64a25026b3e1ca249c127aacc08cde4203ebbcb6fb427379097fd222b4e24cb9cd47381c6b780553dd196bfc6c356f031eeed6c85b57be19afc39dd1f929bbb2d627f5f19db +result: pass +ciphertext: 6d412e5c3964d81a28ae3bbb3d82723f10ca2f9db3fa6322598a429b9e108652885c174ad8bf1339d998b1c8cc2f17911a3653f252c6f68f4febb61279cce5a424cc46bbff959ede8b799828b2d2a7d224c9702b20b5fcf1a69788d470f5f8bd351a9dbd7e1654cc2883f9b261e2c73f40d3a97113b00673dd6da30a1e948cb1dc3e7a7611424cc648c2628614b1a047bd7cef9a069908b4a25daa193015f8d01a99dcec1256686aedf007c09870cde994f5f1b353b9349d57ecd449f5f6ca036f60bfb3f908e63c8fffff202f0132c8992d4d14a3f1c71dbbbbb1cea6746cf77bfabf8e0ef00202f3627b8e16ca61cc37afbfae596a496906ec3a4687e4ad72ce7781bcc9004badef6aeb2f72cbb2cef5b10efc9f39ba2cdc486b5d077592570ba3306b0ba79bf30c4486b313cb8a44162b3ceeb16390abc7762ec20b5e7a8270abd0468ee473bb3d1572d5df8e5d07066c4e30af725c74552d88d00627c32542fcbbb66af3eea4c495138e6c6a9922c96c587a51075197422d4a58d6acd810059747464569a4a50b24d82809576b19bf93df1f311b2224d4cb86886e2739c1b3f5f4edcf9fd3e6e4d1b9df3e2fdb2a10ad9bcaa1184d5131d546aaeb74c344f309db617bca6cf5adfb4b2bac58b6ad1d0fbb1cd6936461d32e58789c3b69f048c68121bcc1e00bcaf1a1a914caf9b56c9c72bcd9884bf1e763640a6a345534fcf0fbaebfcc5774550fad937240a84619ff34df18dcb909468212c6e68c3435d4989e1cecae914ebf5b0b14d0d512f3ea72b8989fbdac9feffac66ed5ecef1ecf41d453a7f2341207ebf6973cd2d6fcabebb815d5bbff4fc8ce850ef3541e77bfbc90d302abd12eb8cdf3d877e413d82aa2060668a6c9c7a88a3cd7c4ff3c3b53ddc2bb9631a3f36ea45180a6af6ebd040aa79e80492bae5cbf5ada46bb40f66f4b1b2b01fb22c94468469d96826ea4c120a1bd0040dfa49ba3bf4ef40d6b2b303d7542a3a021a9591849d7eea8aa29efeb8b591fdb86abee4dccb8b4006a509bc4f35782096aa330f973bebd99ae1225d74d07d7a9c1ccc1721a861900c0b0fdfa777a281f2cad68f70df6b1cbaee12350a666900c3ed1b0adcebbc4b9423f4f05469428f774519b84622078e4c23b73d0774ae055619355bef69c1c619986c13cda903aec68a851c5308f19ac98ca11384fe8c55d1ac5dddfa7c25081e0a1c8a8206ecc6b73bd33372fbc6bafa2764773a55a9b061847224ec50800ec2118de658b7bfafe47d3ab154b6ae12cbbb94464ca65edc616005e6b14e919a2c1d8bd1f5c4f3a1b9ec9d115d68c87d0293607a87d9c7a02123b71bf61e3d75196db377cafe14da53ff9c6d7f01eb3f18d43265eabc52ca49a8d00bcf7c226fb2bdf81d8edfeac40ccf3f88dc1aa74206990bfe44129e6b4d4b032ccfe30505d0e3d9b1ac0e9022698f9e010b77f47c7b37f3f272b39eaaf12fba68a4645f9622efd080342ae3c48a3a32b1d5914887c3667aa4028504f03ca99f13580caf672789f68427786513d23396455c01e5a0eeac158d1463f3a8ecec9a2bb94a027b065923e62ae458e42b62a0a53ad1cb83a4b8ce253000eadb124222e2ed5f5b9b86e807a427522a32e08d20ed45c6287c664a50bd48dcf4a9c67d30214a628cb5f6281b0091d4cc5e4305457c8162b475b7c10f93fc8c4753d5fee5b33ef22ca6f01940004b8b2f81751c4b01d4fbdb6453edb0bbeb4eae9cc5304556235fdb85a4f9bf011311ca85fc0114b5ecc8be9e59ee43750ed6b5e3d3a8a6896e91ef3e46877ee51d1561811f06058dda0705523b6fd20685f982ae9aa18b3b58a117563e2059abfe03c1bbc5a30220604c3184e51e6f626def6af264de64724adb2fc188ebde8f11a1a550afd6dd06a7b5847b42d5db0f165515c6793ea9138dd23dca2278c805cda53604b42cda8ad762cc5a5dbced461af33a9b83b4c1e085f1c4efe174b101a1a43c73efccc7bfb0b7a3a1b5fc20ba33f34037f25cb2b729af2dbe46e253919b0d70b474560eb4a7b3c9aba5575ee6f7b94de0a09f9e595c9ae67f566d1fc14ca01fc8f468411f642d37c3d521604ab26069fe9adc4a70a4c859502b1b717eafa31fd2a42f0d80f0f0804475de384a208deab52321b03f2bfeda30795c91ee7661d7883aa9d456885cc9169d4eb90903142e07def749d9a46c3b2ccca0d +shared_secret: 9fa99f495d5ec88b908a180594ea391556d73b5043fd53e60413cbdce7512ed6 + +# Official test vector 18, seed: "d5f23808871544e9c1d6eace2028362b48e225312f77663e9f78cafeb512b908cd9e25875d61a16ec615f4b8ff826856" +entropy: 6250c81126572eec2da330271db36ee591f060fc7e53eeefe2e1c476c675fa33 +public_key = 6d3b096a7383933c0cb6615824885499f79dc06b5e874203c3349b2c3b27b1f1012e52bce9968496c068b6e6c7244722621a1a44349314845b1d8831d9821eca386eb8fc254587be5dc529438485b3fac44af0613732509cf225f5c127a4056cd5e503eb742cf03154511969e7a743834708d71579e9ca4a4e281aeb177ef50cb0db826ddd17873e63a182e3b001f659ea3cc73cfaa5d7d7b5e7e9cdaae04c9944978dfb7ed34248d976190cdc0184930e25c6306312180a0b8758395d1febae95b22e0945c5fe265595a9ae91616cf9f35b588b7a02f66d8d49800c50017c7272bbebcffb10a16a5c8560130d96fb0c241a286ba949620ab83539b83d862ddce2507ec4b4bc4330c27517172b43bdf09a5e6a5fb684166800372663544859acbe07424705809587a08dc50fafabc1b2f9486ca6415266c502f7b998dcc947c7b5f5584cd34cc90a4c385f30a2cc051237c6a85d4a5571305a5182c970b9bc87268484f293464545f4c349e8b2ba3e5b4a5e7c42237c0e6e1b7722b04e3d02a27d0597d7169a49e340a778179a924a1d31c0c3d53bedb46868a62ae17847f130ad1478b8428b09fd71b028f1933803318af78103723ae7e1185801872f847753862f9f72323f980d6ba9744cb6c079341b02443b52e4becca891fffbc6084ab40bd17af7c6b2b21c09c170455c52c4c7093c44aabbb1a0c1d11b12070894f7649112f32a98d976c72291100a3bb4948f928771b063839a94a614227587d1a9bd25479bd8bd06e114894bca10814f0c516e1be41b81ccc6044a8f3654679df531c7220982760aa39a4e982ba3247b009d405c0b50969c694858889b4058089631c57dd1c5fe12acd5b27143d09a2d90c8abd8930d16769aa44a3927967b2975a329bce9599bfb170e02a7994fb90e0b1c7bc7db753c065cacf820b80c6c1d585624c93ff14a26afe6245ad8a6b2c082ec871dd1fb10c3acca1898520647b8ef8c0e45580c87f718eaf18ed4e97ea1516acca657bdfa16493115e6c90eb998cd31e6ca095066bc75057b2b71ac2a75711a7820984ae9306dea825c80f26a1ca6c686189c93550d931a1f73fc3ed0341ea703c033bb463c6260097c54bd17996a82abb0d32010cc53d81b7b7052b86abb6302b57d6a34895d09840b3b6a50c9962dc248edfcb328e94460d3c82819cbab49a79f742a86e85577ec995a025fde616fad52c4f092bd89286297d8a8912294faf7c959ca392cd40989c92b8229ad3ec91d352a6bb7d757d3709c5810b40157cc0fe006bfe843419b8a1d792d00c1505e0a63b39c7c2ca2c96f695426073ebd50283572bace67c01bb7b27b09be59e589bd60acca376a8630034cf87e9d49411648a1b05c329af92cb29942cb2369381c3ef761a02f8c905f963f0b08514a7c1302b4bac9f261fa37855b67250258c003e5bc9ad07035e667bcd6a537f35a0756bb2801a0aca56576d72f3a8c0c2f371e5aa036af3a987bb550ac06980bea73b938ce91715a4b19620a08be52695abcb3c833eca2824b60de483810857aba0a9292911c4167159b023989d061ba81c94df979917c72c8eaae518ab0e46ab8927b5b9db690bac6720667baf711a73952b033abaa59d5c4ccf676007044e26c2bb31b5aa2095f2da9724570cb04174e9ac174216c1390a687c60b6c396aa48ef849d19234f36886205b0b28250e7803502565523d0cc0bffb78efe64dc758cf3c93bef42103694b434c4819f82bbc42ab45ad827287a560ee43600b87443d8bc91ac5b15fab2701f05577c32678e06790808d4a6965c30a0915ac8fc7950b274c428a43650003beee2726bd31a09de14e892b54c2605269b8c22f146afe669dc9c4775d200aa9534af5612ea736b01543788b13c3fba608ae90aac0da9335e6c115fbb1d67938b86849d5087a87f3437ea29d7b899144fc3e739a4c079628597c618b554468f56cc6745ff6500d3118c55a8171e42b67ca43ca32135672b22286f78d0485b363d63a2ec737d2aa98ae602d3c485814d2c195db5d7bea8b3ae5470ff7a1e8225f82d565414c6b59379cc5b26155f682f6098795c52e3e8acfed87743737c1bee0ba875a95e9509d89f3667d741cb3aaa989378a2425a0e5f218c02763de4345a208c5bbe4949a506dcd5b01c5f8f4ec5f5bae6946c95ad7fa4e1e5f80354b5112d882796092029150d5d621 +result: pass +ciphertext: 29a04526a0c95d33c0ff721ccfea7e7c15c88040d8cbcc77759871674a074b97bd18ac3918db551fe069642f81f09945bf219c631d070369d50a317e95fa46599a058cc549b706584dae3d4c46e697876303bfedba4a19d83dc9bf2b9e0b6067303fa374b47548f70137324d1a3b0282af3e58909f5fd542bdbbc224cc54de3740e9e9f97f027e065e26c92e35c5ccecfdf6daed38b5901771eb81e6cd1ab7bb2e1e3bbb4293a64851faf9b0e9c9737710f5b38262ce26c6e01f5ab14d389bcf5b529d1fde7d8373ca6b9c073cea78836047c35f95e8abae2633c883069e77533db76dffb6a736fb2a64bc3189f9a82153787e03a79621c57fd4a110d262617264c94da4b7c3178f469790a7d2b0a6fe1126294f798aab1a41af2ae9e348afd7af13ed805228f378a4582810753c0faa9b7caec913a32275f5b9b67b3779e268bc93db076ab774c6a171ec6733a61373407707ddb539b8fde040ec617b841d41dad7bd094f3f3fe46a8953651e58ae11f0332c4ee155b9dd3330a910d7f188f12e823016f4dbe751608e8704e2508cdc0ceec8fb9ce26f792d0e2469e4b24d275d6f020cb39fec52f92672b6935e15a8a83a64ac080cc4f488343dc3d5fbafa73f26f44cd1608f96c799336d84e4a82c9c06f019e49ae3871ba14801d43dca78cc6a05978919c9dddc7e8371546ce205b9cef943e939586a07762feaa427effd373a0affb7feaa691b960edb8abdee3d62b6bebad516cba6d6533615eb25194c996255bf2c6b04c8ca1a7d425f1ecb11b28b2ba5af11d4135092de06313070d14efcf6794d3a200e05a398da25149c7635487d32e74bf69491d10d2a17b712316ce5629787b740bf77673e9cfe9d7459a4125d4e0ec93f69e0318f0a69c36e597a65ae21957a6cd659879b3a6a9d5348eaf378ef2b3efa893025b906f2b86bdfb1d52e00b64b26701d4f3a88a50c24a8a534d70c46c90cc1e27851c11e679bb95de1eed93b827dc9fcde8b7ffa43c98029877087d74e6f0af2dab01aa4c018c89ba3a4b0cf0bff09c1f7b0332d15c8f929dfadbfbb2d272f49fee30b68bcfbcecdf22b739d4fe9e9033b94e545c1772114e7cad746f14885a67f1ae72a94cbe4fd6087efa70b0f3851eb9561e8b737897022b3592b2562292e6fe82eba945fa2c55afee464753d3ffaaf43edd0b1342f9f8977fac2e2a00dfcc3954c3df9a0e482a89166224cdc26a29a682807aa24842db39d7c867fe2a59d062dd7e58174e6fafc0d0d9fe9dd1bf9df791feef3dab0d3e1e0f51daa5c2a007b3c2cab400d0da44c7c1339c403f4a0341fc73bef02339e9f1447f9de95129e3442ceed7adbaf470b795d902995541333a1c9ed5a3ad6ed4a6c7ca0bba221a45e7e640880185470b1b8ac00511d455670e55b84ccd8097687729c293f8932e608d279dc0bcecc77a986de4010290ceb2a28327fe93d7e191eb4f1274eede3ba1bde770fb6c7542cd9b3147a574ba092a05298299d6968a4585d727d0d5cbaa60d0c7e165f20ff50fdccd56996940f8173d9887b75aff72f16ed907fc5a95666f22ebb127c439375257b56adfc30f4c06585019f941636429d8ec9740cba71da5fd7c4d76d0a0e75d0b024a61b8ab66881ae9e48f063ec6191592040d896be263c4b7559d3d2d218d11dc8a3d4cd8c17b19e321ad796e9a91d69e2dc9c165be0e35825ccc3f83bc1390f2e1edad44e16ecee5eda90ce6c76a9275207469575b11c113cf045496941fcdb646ea8766e98214b8b2ae1a43ce2d7163df57600e6be191c60d65b36cd15363f55718fec02d3e61881aaf99b7c6fc4e3335c9ff93fd9a4072af723a0969f0be5458b29c5a2e7bab4274bd90ab0e66527d09fae43ddaee47a122b9610e39476c0921b84b7f3fadd309cf0e166eeee533dc99e7bf38f3a03c4eb8aa42240607488971f9d7283769a289c4531c37b90a2487aa9ff876cc2dbf22e340edcc0f71cafe5ccaab8628c024e4f3ebb2582e5c7f1483b6a3c0384bf9c75d0be7913430f876303649e14c43d9e2fbb83f85bab7f2198f8c6dd01f95c09bd876c853b041fceae938f138068ede7ed1f2f195161dc657fcc45c367cccf9cca84a1d5ebde17e33e5e225590bf0cc4407929ed5643765ed351efca55a5b834a49a482962d8988473165887bcd57f89078a3fc68d3ff12fa2ed354a23dfaf3d189cdd7831 +shared_secret: 9b93f91e8134042ed4915b713269a6a3239b08ed049def076439151344e508e8 + +# Official test vector 19, seed: "822cb47be2266e182f34546924d753a5e3369011047e6950b00bc392f8fec19ea87c26d8021d377df86dc76c24c5f827" +entropy: 35d470bcc5880872754810dfb3f2796da2fd7f397537146f6488c27804072b34 +public_key = cd22ca9cea98bcd401164c349b35c8b36424f294b11ec7c7d0a3953fec20dbb283ef99a3452496d9b86513e33633765c10b45c6612bfcf590f6036a711eb3dead00067649eedd14491716caed40a3db26d7b00c6e8396858c3916397166d24370b033ee54c3d3b85b5382b1f3f1220325aa2f804bba473cc70b15d443548491416bc1698a5a9c39dea2ba59171f35569ed6946621c1b3647598becbcbbc72a0781c77baa5ba128b1b7053b2de9c122b8790125c50e003a119964aa48392a96b01d7675af541b46b4369b10c38a2c68ee5425c5f6293c2255a19a7cc2607774d342af773a22c3943a9b411bd69a92e1c756993a1a392698a93d5f4772c374b549c15a0bd636be908641a7b8ed758e3c341292598b82a7976f45ae4fb0bc2af0352d92751a6a5e5015444d3b82cef064d32c3bef9b2292571092360e1806b5e5a892586029ab421ed247afff408f7fbc9b5cab930a6896b1250ab1c58ac4231fd6d0bd9b990b649028e4c28e435093b36462e28940fd2723e7bc20e59914e1c812bb3aa912318f15472a64b75c12ba361b2843751611183870a6028496195cd5d219698a89dbcb2c1c06ab2bd5937c1cb5a2da7774bc3facfaa028829f3c3c9bd6c584eec882ccf3ae1b00b1357692ed377f09712a30fbc73f17c0bc462a88e64de262c24e7a7f7c784dbc5b615ad57e58484db23363433a4680126c2eb5b9152c162e3277c0bc4da9693b22daac51a1c6107242b7428ac3f21f2c3968810435f9aabf3c65b7db7b37361218b49b9c76695b53c9a227963ccc1b60d447b3b7d15765bab6b3b73585f26c2f0862c927b6f23624f360a4f6c537b09563adf7a9616a4dba03732c707fed845c35c660b5317ef652055843cbc28ac501dcb493eb5d6bd5c322ea2f2a8b61418b9788482f51b8135f4c1f1173895057ad3218387d527133890fa3a9425d73ce03e1879b85a5b120285b823501487d5c555ed2b7bfac82762b9262d3d4b3b64736497899a768903750bff4a82e6a0097f3c230dba5bcb0ac95006852bf60480d039d1fca9fb758b5562a384160acd9c489a3b4bdbcd96989c57eb7a411ea3540ada882aa567fbb340b518477839925577c780953bafd0cbe2803626b89cf1c3b3056c4bd78c88818211fc836765fe813c7b18e5dc9725978ccd9ea8c7e1710ddeb883ad93e2cc987024b817c30908ab1ba7a658399dc931a4ba4fca5a10398289e9718e906336b148c328c2930b843cd4ca0d4735b633618e8c1c327b29596c24bab053867747883231f11005ed6987679544b51c45d42cc209b7061a91a0c82a92c943c85c149b79c1a190716c03f156d3c22ad27e7b8b87962c8c5421d3b01c7eb2220452b22d813d2180e7a38be15b6976aec7659d25b60d3c780fa75c3654d7f9b6de0d33c8c28c97b6b95bc8c2cb517b497f73a98c41a64f312fff48fcda7b07e86a8136c05720a8740d866bc024ca1e22d43f6470c8a38a7301b3ce74585e6ab8b899b13ea39c163ae79e764e0b846fcd57029a73708091f053212c6f93f1173a854b26d7e49bfae38046e43193b98460d171fb48283e736c7a1651deee6272387cf65ac876feb4292bbbc9200981299c9bff13690d6c2017bbd3e257700a111fefa33072ccc8e952263e4867590c79b558187e3441a930964aa3ec0441e91e7ad198cb6e8959a35051ddd972a43a020d0f968eaa8696b9686dab01b9f9b8095522a7b411d486444b16ac4fee7b245f50ba1a26d81457b802bba966ac8eb300cd92773ca26908a91a2e23b21b0116dfcaaa5f4a57514dc2ad736cc788904c29050389b80cafb0d71b131b567551f6a2e16390c55234e5ad50080ea6268047618b333a49795b4233bd07530a89c275bdabc4ec99d84a812d9e20e2c27072196138386ba42cc4998314905e070ecab69f2d12aa204a32ad28658da3fab69223521b81461312cf88700a49077914af3c28a2f544d608209e24cccfeb46ae13bb90e8b86a4bc85d5f41a9ada7a957ca8763acad6713623ec20e2f199b1270966432bf2b8cacec65776d8a63a471cb4a7c891a01bc92c8c28719c3ff9a8a7a350d9454729d2ce932982e94bbf30b298b3353ca6c459ee5017fcb724ff430a9348b9fb46abc86374b245668ac71096501a7f3313823c5749e01d0e40444111bebc0a6858891224b08cfc8e74c41084fd5c03c102480537 +result: pass +ciphertext: 63d6fa95398bbb5cc6252d3f85dd6b4237aa349b547e8e797ef542fb715f07e00e226a4531c7e73f37fe3e087a03ed41c2f0959aac4262b2abed8ba6c6fbec26040f0eb47abb84a3c6e88ef2f821cf78d4cc51751083006ebf5854086c9d3f0faef0debdbbc1010af6288b7aefd203ec88e2700da503101b6c470267e109e96717404e2eb97f499bbb6749bce23274c649b25ad90bc7829f1b63a4b2c26811fd9add3d29d1818f00969f73f1b6afdbb68cc8423dde3630c679a0d8c934410287719c7ffe1b6eabf4415d4f4e14746086a22bbecba104ea27f7efc10a40bb1a87872ca72a80669ab1f02956bfb0311f87173df960b2417381b34cdab574efd7f4c884d879606684d344431c57c1b46b07c8bac3243e4969f484b9446946c7c0af4e2e5e05ab87f527290ff9fae3edcf5b8fdcc0b3de2034f26a19f0844839fb26e790e38ee44e21c9a01d96f4bde5296e021ec68352d938c1ae66154b6efb60ac2f5c96eb0c269b0be10f4cdbcec80eb739e7d4c78fe410fbb427b95cb1c09b7eacc303993a25b38aaf91962f4046597da21956bd98f9575bf1e9fac24bd420ed299f8940d92988a2f44647691c616542f8d617b19363570510a643dccfc58dba36a7aca98b277626b56672d21e67ee3af62b26921e48c2b69b766dd6b30f942a7025762554c9bf05bfeb960e0696bb2c7b1fa05e388fc5e5f495c2a853137eb15387fee4455a54dc30aabbbef10018e4c135df1e6fbf2d5c2399478039eadff9151e9ad56f8f0cd96eeb6423224df09df74438176fd5dcaf7e6db01b89204ab099802b94755c0740975198a4104001a2724b9889a60411997040938895b9b7d6889b17d0f79b97cbf249fe33eec67c1d77b84694979ea0e4f7b5979486ec187ece4de8d017b01d4d65ac63fd0c04ae5d5c073b15fc182438acecec41bb9b277157a2d023a9a73394491d65b3f103e6f498982645da202a0c8978d4b06a406f8561b819a8f4305deba7a8fd67801f62e10445de38d45b487075ac0eb698525ead41e8a10047625922f197530cb6ae8a1714265d322f22fe4fc97f74e585452fcfbb49815c793e65585522847ed4cab843e416c777b19958346fd716378bc78ac25e6d2a9f8f81f504210918261cb8afaf27ee2a97b53a9e044a17a3bbff44b7e1cb843c01bfbfb7d3f3c014c430753308ee60ebed89cb10f55541560473b4481a4d7d414d6784f7a6eceb2f7b68eb8eee39d093b7f5c98243dbffe414965a5eec8b9c6eaa79885366ff8f414cdc290ef8a9a12f89dc48aad20325376e81ccc707fc90cde5a9d8deb4dadeb06a8867e3f0c9589798950be6373059772a3b9f68912c227a37266f34d5bff7119a1dba2fb43596d239c8367f5d3aeeae8c1f87dc2a84f629ea5cacee50bba554cb1a17ac7e8674ad6d9ab7ba149b621f3ed1889e904248f63a94214806a4fb634ef53d9ed39e18eadf6cdddfa7e88d897943226b7555ff9b0773ac7f538e377cea881c5561d88fd8346d21931ef7eba7f87e3da5582a7939cc47bb5817edeb8c369373bcca25ef3ac10aef2f404a70abce312a5c7443bc50f63d516e9b151380a8d57ec19a65c3926ff2e5e5e6be8455bc3b4bc543cb0cd7d057966ec422d67565be74fa0b6534f90b4271d2786c553839948b873b2dc6fb18b9e045a75cac00d98fcad5098d24014438c717174a5e62808d386eedc22cfc6ab5c94ebd00b164f0c86fe25de8981850ad8d965db545166eab7056d23944d0d1a25fe0a77c33df334ef7dcffe8ef353c724003db5cd42e1d80d2bfe0a2531faf2c5d8408608ba85e1535f4f5905770559a069167c1b5c90b4644e4420c3ca700a33114fd71dc2f956c958093436b77805781da06bac77019fa8bd04da156a4c595f33ae5de0e16d4435b227c9d2783ea3fe02a6a9d273201cdb9601da483e74d908ed10c67576dec23164e33b890fedff26cfe273e650c731df6ab11d010dcad78a92de3399f4dfdad418026460eb361b54cc4621d8bbed1d95de9ae21a0aca3d82c33848b84918ebe928024b2e37217c19ef27b80cfa368e439485886009317483c380dc822a3cdadac0e0f2f2fc0680ae72792a4907e70bb5a12b02ce1ce7c39af82880e6fcc0fb132cd07571aa16e94926e0efe2336018e01dc021fa99588d3c75fc31663e2a25abb66e05ee2034d642f4b2cacad9fa5ca1c15d7 +shared_secret: b616ad16ce3e737184ea0f5b25f8439ffe0bbe9647e0c2c725d23d4eb2f13464 + +# Official test vector 20, seed: "81401db81138d6874e91b7c11d59596e4ace543f5a3471b6fb00999221765fec3ca057abe20f03b2d59003375fd71fe8" +entropy: 8d667921c5db401a86fe1c35dfcf164a6bb2ab7400fd6a0b67eafd4a0ed11940 +public_key = 17a1c1ca6b5b6bdabfebac339a5c121792056c508ff99588d292cbcc1760f1eccbf105281116a623c600e87b4231c2a94689133ca16b6d99796700b917262f4d776d10709a26123a5af9af5ac7455882caa4d220437271aa5c9e30877a3cb263f9048a483a826774c806941939c44274287b629b2bcba56f19e7aab2b8c6a3f72bbdf5820c774c48a151c381a5a75c27337c60c406cc1ae36a3eeb25d91521918a780d75a69f94aa4005771a5c22ed4466811834fbb238e6351fb055a70c32994442297f273752db6f03f445804c0cdb380f838c484c50250bb2c849e308d8f608ed942442e85bae7cadf4c6c3a49cc1cc107ff32154e61a99df1244f8f956c678ac4192aba83b5485f284f1510b816c26d16922412738db9796cf6023e558741c7ca293eb35fdd71f9175b838377fff3050d447a35e208027881406446061686621fab300755a15921be9d24b721a50976884c76ba928405ea9e6b7b357baa68674bf412f66f54a454c03fc2a64b1c1142bc56cc535911efa578c5a097d8301836cc641e078bdf1245e5359a0d7ce3a87012d199880a3ab5d61753488782b9734c26947b6c925e4fa6ca38475905a9f45a88221db62b762b4c884344cfc7d81e55fa34293dbf49e4e8bce0bb95408b32bec404a245c153042a3ebcbbd8598a3f9537e1403319a5cc6a006a37db5a3fc4960ddc5381a1b0b85657d41d085309b47c9e21a0641700a14150a0b3e00823e76c6bad867c6f3e6568eb840b9a9c4f4f45d35e733ae56377b9c2e008b66f9436b59320f3107aa43dc123bc2a89637637dd3a26ab0abf355c0fef642632523611a196e2402ac16c38562a0f8c65b6a0485dee1492ce2494b7230422abb2d705333d4c3f4e10b28d3c4b3266949ca4b95062e3d600caacc77655236181208c0dc4487063ccc528961661dc0e474bdd88faceb2ec448c1ea8a6f14206a33195e30fa4efd463b7f438ecf4ace66090bc268b532b251d783bb380380e12a79ac044bd72c0d9478018d98b6e4e36f234142347b919601521365665ed05111f39698c43f5b62c047f1ba861a91a1e29f6bf1b8ba376280db89feda41195a9564d17c73f4305d73cc6a606530179029e192352a5aa9e58f4df6c0c9d8846da4518192bc360544f734340c9b072cf399806906784073f622ac18c766de49a65df56b6ff99a6e896245c7aa5585723d1c6981a0ad2fc09115b8b8321941961959a8e40b37c24a66125810223dcfbaa093510bf0b9c631e65021d64bae6bbe847c7576826506f73493d19da8d47f07898d179697aec0a1df3cad227cbc83c33c6b72b450731d943041f79136d34c7f039558468c3de1e3021e509a2d898ec1245fa9a966ba457e5894691899521362b7f2d607578b01f230365a84c7ae1ba12ba53c1e216933a34e53e75e252c52087c615fd5ad705743494b10042b033468af0016274df94f2e65048e9a4595a4b541b082bcd96e6d90a44af778077007c069ac9673cb4a559820a2a9992c4500da89f5acc48a6bc9ac1922be9c211f36c468986d0704121193ad5e2732d693c650d867234c9c261525325157fdf94d89eb2da1949a627338c0d07b1cb9cb45d95b64b38a22b029bcb87c928c7c97984d760bb11b9666271aa914d3cbefd723d40928ede94af17516ef7a72c1fa978584111f8b0903c544dd7c81d94a3b8502cc08b21cd89c8fafb94d9eb57f9061a51e9aa6f3860ca3da018dec14d46981062b8ffd542747e7c83cf815989117ac14ba1654be4a92b396b01fab274a082609ed9c685f125fdc4611cc8c00167a8be5f28f0867397da186ae68a29701b4c1885235faa006d45d30b990d13c479fa5b1b76ca2406a46a0c42f9c63cccdd187f5e93b16f20bb86b5251b00842d28e58c86dbca41ad708a62c28846d0c983dd60dc4f5b018017fb1276eaf839a2898a8caec69f11037498c5a621c05cdc5bfc9ac9dde250a7c4c1531b813b3f84e70a43baa43950a9cacf07c9dc6c8b8c4a660aee6ca67159a00010a3414c87fd94ad197856d9940ddb47ad0d8700f635e58408a5af8213fe4636fcc594ee677b3f205e3552202ca8087922402d24ac4f42fdf5c99ba1356f14cbff297192a40b48abb531912b8f853a07bd241b19aa1effa784e5746905449b1e7436a79a28e3f712507e5bc0d026037001723d3443145bd066cebaaa3d000c9f0ca +result: pass +ciphertext: f605d7f505e0fe8ef088c83ba4fff503ef6cf01cfd1ebc1de439deac5a95f4e38b9538d124635bce71eeffe55f70a3674eeff62ad618bfcda3cd2af15ada072885cbc36b5693deb6aa5e9391478e37f43a4993451a1d2ca8b1c7f305eec6f33cd473f5c0c32878f04697a215f721821adf39a35f1e6387cf545e34b2e6e7752e0c4059d659c93224110c42abd2d7661d1dcf8ff3c911b25eefda9878494336447ec650b15ce1fdaf1895b55b53ad7c67eb2ebfaf8a9851d0f6456b79486a2499b1cb0053d3fb4b0e2a71cee95ebf420cb0cff6fe121717899dff28bccd41e2a501e5667a502491cade70d225666e4a37a543a6336ee70b6a8d0a9fb63d4c5e463b54a0057e9b787b4c06707fdf6444d6fa1b3c93c31761b30b72d8c4d7367f97d50a466af778616748909ccd7e7728e4a4e572e45dfcbbd4527c11adac3717ec369d2cfec6dd81ae8242b82c35abaa7c960324bfad3f852b4e6a322b90e9dbd614c233cc58dc0fd676106990460187b69d33e572e638cfec27c025c507cd991d5282c83b48871ece91b7255e9675aed2fcaa4199a429a6bd8b83632119bc9771bfa14480f3b37cb7df7f80455df8f9367c216480c3289eeaadab9aaa845f5d078b756556b3cdaa03c00c984a32d3f3f06faf156981a26df5e3f6a02fded61977e366c589fc795baabb8858bd8bb371b12cf4ba2c0d432df56bd431d7a218067eb2373c1fa69e3a84b7d5678119c57ab67480931a543fb81bc087ce99224eb1a47f9d592a874d56eb0c4330554bff08da929f9e95112c1ee6ace229983014efb098b074df89dadb5eff8b6bdd415a1501d0611b6afb645a03d964ca2ed657e8140c45fe6e2dcd77c735b47c944867c42cc482376fb901aca1b16a2206a1a64987a321e7ae1b93f64750a3c3a2f409ad5415bf829c7721d39326fcdecee96ae1760e0586f38966e4950e7aa8ac7d7b9a376705cd7d00c7dd16f80b2f43e51494f23f4878a6fecfe78fc829fd434afd2a92926a00db7374bfd914393b649e1c83106741ba515c935ab17efd4cdf2f2f21266aee6895a863d4ec76e664ed6d4aafe4f6a93209d65bc4e07d1da5390931f67b258e815d7e690382fdc30ed24ed71a4ba493f414a1bd819e03954cee59536f246f491d041fe93eb6fb304c73efe1ff24c7d27b1cfb13434693591dd1c703253dfcba6d2f259856c57ca3fff6e3945944c11572e639aec5251d5bdcaa95cdbb42c32c46312cc8da6e4cfce716a39b507ef2edfd550a4d3ce610811b2908e7921c86edc26ab8ad7be77a218a5196a0f8f7747f82a1cd7190b3c5e2dc9ac9ccb41fbd4b285c549957392d305fb73a5a383fc1201488e979e15a96ccda773a0cc4eeccfb66e1a4c0682d7d5999a1a764ad7d0985e9232fb703c7621e7ed0c8ba06f772fd64e29e5f3972e49326052807179242ee5cf1d56120682c73c4ea48c135024a3c75a62bcbe17c44b6777d0c3069589bcbecc80c056bc5643664cc7e89ee9ce5df543b1592792a58528204bf6981a62eb5f19384a735d040dfc2febecdde5b7aca54031cec4e3919e54b2759d61d47d964b17c4744df220d86016a73a04189c6ea4be973191b65cb695d9de8d7445401fffc8653460cf4a21f55dd57c740756a8675660c71e5c47dae0d2063d68e355747bdc3b71c743dc4f8fc6e2296bde795bdfad9e7ef9be2cab791dc2862421716744594a1f5a92630a913779a0bbc2dc8c55daf05a7010a24f81faffadb2c5490f42ba265242d34698453aa40788a6def27a7dadbe839e4ccb23fcb72c10d7748a86422dc2ba55cfc2f79adec0363ee4b8d2eaca8a0b23ad4b6a26c8193b9172ae25eaf52fceeef855a4a61e4a0247abc5a642a435463f6ade5fd978328883966085aa2371899f39a84c18d70463dcb9c04f3459426f43d3e23e3246baf6693e4fd216835be3f5f9377de1d96c7d7062d0c62a700b24fef99c6bda9e8f818773ac4ca5dcce6880d30c9ca28191a43629a020e57a32c04b3e198006f47a8098ad93fa697548c33d02ddb81578504ddcacb3693afa604ad00edebad0391c3b73b4766c3ed02f9025aa39fd4c368ae961d44114f3f8f7c422117d494df0b7031349de637cf57245cb4a818d95ffcc488cd887b1824ae61d3a8511d95dcbf495d9003b7a3ce53465dc1ec6fab9f6c0590f76372a6e51e00b8d11135ecdfbdfe2d89 +shared_secret: 634ce1c824fa766f69c30548e34a772e828248e5ea4c4a7780ff38e2d7d3a4ea + +# Official test vector 21, seed: "30b5de5b73681ec08aaa03f6f2d2169525d25f4042a5e3695a20a52ca54927b85f8bb948fc21df7defc3910b28674994" +entropy: ec750b3939385a3f8df868119dc76f77ca845567ef068de6ada5478a56bc78b6 +public_key = 9ea32a494182483627849169e2006e9306448025229ed2c14ff825a43976935a8a14b8448d6c4db642a1726823a2053f4f75951b80b47056bdae61ab68402d4aea6ead635f2262082d71c4ff5c78e6a6345a72505e23064dd773118ac985e49e4d88c64dd894322b0d2a712f0cccbb506436c3f0bed765ad0b193ea520580be4c12cd65f2406cbe1fc9281d37bed1988d7488f3925244454b82982c49fb522a2f83a7d131d1cc65cfc7179f8a043da781959a815b5e45f6e0b37269c84237424fcabbf4dc16a722cb171984e48864ef70c0fe14c69ee385f15eb7191249bbe3a3888c50fcde9302ac5aac6105503589b3748938eab5614d626c6a301599b623ada44f432bb18e359c7b223414a34945786468628c6579f9b004185cb7590e22f94e83de26c6a9b69702f704041da3ffbc8ce5fc2367a3a97c4b997bb06a01b8964a8534e2f713c289a0dc8c072dfe4a42f305785a99c0dc898d3104e0dcc62c0e600253c218f0511fcd94bf78497b03a08efea8bf7fc0e45d3545df2c6d708435414bc00e64c76a523bc0ac823fb56da247da4643fd9063748b23128c6ce4316bdcad4bafbca77b8ea6c10e54ad063a1433333252311f68c676ebac53aca8fd70b9404c1cf3c979ca0c492198a2f92294ee5ab4a2ed15100f20e5eb948916ca7bac7b28fdc904ab1911afc19a454af45e6a265a726340291bac80cee679e009c02254a6c6130227464b2fbf2a95661bed8b348ae9c759fa53a4b429c0b536fd6bc85d5c96233f90ca3057839a47b068855283487c90a8088e271a3e33f5ae5695d044c4d14ae8440bf03b318549600e39cb9d9d58ea2d2a5e3d08a11484801b8167d4c5afc20c56bf970a230231da8372eab0f5266686b4a3da0ccc6b57cc81aa29053142cf0f35cf0c83282893c25983ca06606cf255cc1b41add5947ff9322a4c23bee47cc49656a8581ab5a99a3797798ea77a1db18c39acc97e6342b8770550212718856398878900d6cc9a5963a71432e5678a12ce86257b0b32ee751eb181fff62ad98443f7d79cc4f85bbc67190a68504a24a3166c588ac7b40fed53318b8b452d1a738e59a2c82442feb013f9b2429b6c603f71619f386118327eaf0c13ea30fd620222af064c61aa8d9801d53192c61575e3448b265ea9987bcc84ca825943a4d51a9cbb5e76e4fe88cb6d92215f60b0941c46b89a746cc96c74cba7b097bfcf27533a46fcd928f49d670f85179e6b598ec595cf39c3554eb5f93ab9707d4a559069d24a4005cf28bfeab0bead80363ac608965141e252de510562ccb5fdf94c30da1247ddc4c80554d879b62d0b49eb3b21ebad10a50794545577be4eab070d30365dc9c34eaad1163b251b223e8ba45dcb77dcbab0a07fa635d8b841179a354304e0d249dde2319d85cb724245877a549ccd8230fac8721d82e8a2182e5cb63285ca8a0d049cc7160d7116d5c1c0127a9ae5fc808eee88e340a57a80964b21a353b08bd35da0dc1d7020d6cbe43f49547686546391d94b9a2b2d63b23fb2fb8c30f7ac371b3a80aae0470d93b610ba1681af1be2871a49419a23610843bf940804483dea0ad8d609500d8aa2426cbf0ca5aa353668a7151bb54c7c4e4ae3354c598cbac6e90949cf6b79a941c541c652351306f810494dc0ae743cedba7904d34c2e0b32b603606e33156bc750bbc477313219a97e184d695c701b2009aab8806709b8d376b9cb6a24f3b6d0a4157398c740d08809328aed069a52fe77cd68b9dac62cebe3649cd1b139fa84f6a2333ab702a30414425f50e25e41bfe9a2e277869e17c035652237889c37e3c86cde41c7585776d14682f3c0309a09c1ed43609b5b82e03508869a7f6b627c3710c58198ebe9100f433ac0df22d03934c1eaa10aa98b88c879fee60596a3ab29739b613ab741ad4518e6ba5edec190678b20e6544f469791c64629657b9b1c51eff1616e29a1b3bc25a55cc9c481995bbe68abbc383dcc02e4c8208ccfb57e052ae86017dfebcbd2165810151538e7a9af3a4c5364c02208428d2b98890923b7bb92d66a2907b5376906a61115c979d4b34670a91339008bb466928b30e807cbecb307becd228657bae78f5869c3463d1b73e09aa7f6274c7fd2a3a9cdb4160da310254462eba30dcdbb5c30542463266d790d0fd79c3c76f5da348753312e4949ff2955212edc46dfcf9e6c37a +result: pass +ciphertext: 079c990481efd07ae4b9248272683087f09cff5301fd533ab46d3391764af358e5d1a0a656aae24c92bb6e6b95c3689ad3cdb2ff9a7f4377f9dfe6ac4a56b996d7e1516e5d2127eadfd3a4a02caf6ce2b3d7d0cf37604bffe3b44c759231e485a298ddfcbfc7ed7d7d9bc4628153f47c06410e5ea8d2dcbe4178eecf94af9315f446ce0526005556fcae18fbdf92200fcf0bf528f07b066e8dd7154cd1d9ff02fed80e7c23213ddfa05698843cb3ee4da7de296f7882aab57b39cd0bd77d4d2174ec9e609cc8d9910dae1339f5b3ff84ada38c897d79771258450f00653a4df57e61c653819926307db435c67877e3e9d0990f8ed65e6b72ea8aa4512ce96c98132890449569bc164df74b94e5542c1ed573e82b5eddee80a2843478d77cb4691297b4d31a4ad9c1130aa9a98216a4e20b286cd109871d929b63404ac069d065a40bbb6f48ed46d719549562cb70e0c97a2885686678d4b2f9debd38be8b8eec6b57d48ab39bbc0ca7d859c090d1a45ffff9889a2e0deaeb28f16b8bc5870976ebc16f2fa9738465943942f30eea8510f3ca526fbf3876330fe9acb5e3748e04fe20cc7f170a9bdc2b55fc95d489150c677402f6b894d084d2b80051f093f5c9a9e0dc0dd0fab7d4b46bf5e6bd304c6c1895a22fe9a8c3d6b5f8a7438e93d2aa50a2da9b9b42909a54603ddd942df723c7bb7de5cd0920569ab8f37c5aeb7cb03c24f2ae8f6227454e298219cfadd873b9077b2cf8368cbf0581698cf6706f1001407313821d1d1713c9eb465aeb6ebd83ae07e57cb1de96606afb1840bce415a775070586812045ec8d04149f84b032767632c3d29c6ed58c8d8d1d914fb3c66338764e44b1be25517dc39d20d7c0da787da0a700d6d49edc99944f9d37b5741601c248e5457c5772d6455079cf0eeb4981a7d33179f99fe8e2263db64fffad5d7f6b9e2ee0a0d2efad1d7432aaa93344059847697f3127cbfa062c8eef3203a21319c3bee0c21a2ab0615ed7dfff5aa1f8ad3b13b26c6f1df39d5b7bb80d29e0b4387faa2322ea89d7ce888061fdd267b75926e128e31c6aa0f8cb6bb2e3416652c6ab631fb5592e4c9526fabb948d53136bfd7cdfc292375826e55d11f2fa160676acef87bb052677ac22590d8c1fe8723434aaa2ddaf5c12897e5c8c5a241589146e3c0419eba3ce0fcb7c2cdd59b2b936a2ac1ec4e16221485bd4f8b477356a005305b987f179e690d6b853361692f605f826c46b28b5ac821d7bf394c477e976645727ff07642f1f45240775a766aa9cdc1883b0e211473165e6f7e8ff9f8b2b6b8b0675c13d1c6052190506cd583b02d961476f9f142a253908eef2642b882f866828e9acc655b931fd69f327aed8967356471e145e9e1a8a40694aac47a5f6b3aeb522ab90006ca85d41864c305531ed12312071ccc9b05e0e79adde137e636832a0640b3d0577f08ee9621b8154fec9ebffe7ae0b74925163a6f6fd1b069e8c0083b8bb6d0c9e741a0c59caef40af376bd1a3b9a7e71e322cd09a2bb4c218dbfae2fdb6c2f70a3c1a784ce9a0140e94695edb8f9fddce3636af525a0ef75da4be60124e8cea81417bbda781548e03f05609850e1719ba2bb4ddb545bd279cdf42d89c13829cbf730b5e74ca68438e2547bfaf9040451c045ae998e9a0937fa9913d0a7485a89cf8bfbc6f78920d788778f27f7eba2d316aab1923ebcfbd62dcf592a731c5626c89b6b76893b9c16c2d53b8f1ae0841bb2562311fa87436b1981d342d95513f309b77279caa06b14b76e4dd6c23e7f6c482644c3af40d3de7a76a2d0df8fe958c1eaf402da41b5ac87e173a8fa5753e35e30de6d106a02a0651886b24348444cbd8ee46900a946e66a0adea73f2ef9aa0c30fcf0f829348182c34bee6528a15ba4521b4386ddcb4dbf96a33710331d6ea0f9cddf04bf23eb0200ba87baa2bd9fd6195c8e017a420c10259f72d916d70724f3ca6a1d8f2de635b1a385835c4104a244a1c8a936247c90320ff646cf19682fa81e9cc63ef05245363dbf42c9fe51f20498c267fefe512388e00997e12edc50ff253178f3fb56293cea491820bbc84bcad68b7ae1fb914e6ca37ef626e04e7e2a65df199e4f5275245b25e2fe7fd86ebcfe582908ea88fac778bbc75f43afaa961104bde49580641fefaba4609fa2dd098e926181f04248e26c951a0d14ad3c65aef6f5c +shared_secret: ee1b62c612b20db1f35a37f94f3cdcf4d3c02f1a7e2ed944764ca65711cc7cdf + +# Official test vector 22, seed: "e335df8fc0d890588c3e305ac92c7160ff199e07c85760a828933750e3fed8c83b0dbe802234481ecf890a32d7a2884f" +entropy: 74f1d52af09b12c36eb062ea7528550cb4c18a3ce8e4f4ea9fac43ae383bc925 +public_key = a1f055f88cc36236016d4809e5d9096762571c15863924797872cdd77370917720776b8ea9b72189f237e9d710da6906ae25331b9c82ca0ca257dc980ccaa23ee61ce1e681ae09aecf967c33505f83078bda132d1ad623373252b72109f6e6b8f5481dbe89b6033558b90a70d3866930a3c78e024b268604c8b3beca583b8b531a4a6c094591bf173107025ba079c3062a607e30647308987084341925531076ba04e03c8dcbf551b56885c383a5929a54c207b39e162348f7a7fb375f38896e7c1c6641b56557f52f4da23320252aeb382082b8560cdb83c34614c40b8e4dc4ce54b4c009d9c3cd6884c11c616520ae0d220e2cd03a869147ffa894d5b02c75007bb09b51c8f59a53eac1af1a0195623217b578bf4c3bf59459fe3c9ca7b677155436336176a99653fe677d0d9bcb266b2e5484a72bf8a86f1b250b5666e40083bd24cf578c4f9386bce2f034d2e9347835632a1ab39726c2f467a864f5863c0b498491111221bb2e83386da51c764b8597e2b503a21eeedaa6350683aa82659fa276d9b8ad3875a019ea6a00b31193c9284832c581555d7c478f81e259150c41e8c23047eb0599647ca403a7f19273a765c439535efb20a6861a1b7fcba48927412af6c9364670e2e44c6c630a930b9437529f0afa7534a08b7606a512fb737a50b6a08c637087314da4bbd76c35a312c091fa3a863a3b8c7874501c8a9233212e592c828829800c9d174cca70761bf8188ff5585fe1d59905373420120848f22ce8d4bb8ea253d3499e0ae59b526555a2245eb0fb0ba2a38cda009a31f89bb46851a4277b808018e8f23148789b8ec69d8c622247e207d2e08491a3945a60aabdb7b5cbd260a348818c8493159199717bbe5305a5c785c4eeb26dad73c76a04bb28b740d2a761c8c02096e0b6dd297485725ec59b107086bc40e71f61b90ba596cc905b564cd33d76e2b1624bc3a2e75440474daa778b79f3819d237a41d08d9260226e63231b5494da150093566f31cc3a53f581880512c25826a7981241f4c90ee3b3eda1c277b5c157226342fb7e3622b0665109fb7342d13a96e3eab49c53074b76b3a2aa26c899bd86c8a26159ca278c034e323475a0b12f447df223aef827597eb5422bf26cd48b6a40b40200898430ccbe1a6b8ee1635c761623a956b270dac22e3a24fbbc8cb62710a197110491aaf8b89575d68b530530cb2380a5e65cdcc044b52a922b346e50005da16b8c2189525950a109f74b225213c28113bc793857e9c384914809cac7c8ec5667a34b007c7eec63ae9ec21a46497b6b836cac1c451b03814b7c47554a9e6039842418468fd5860ed6cb13311c638b86680ba1628ca09afc406d944cb0ac11b928899cf333ab54be5796a6e0db7cb2b2c8c9b9ae6f300a3d508eedd292c77c589c6682e2509b8d712c6b41669a5b5363fa06f6bbc0bd272abf0c423e0c719ba90cff3b0dc2c390e30b46b38281864b5d8bc2ab339c48bd9cc8fe70067358722cfabff6bc907a457f84b1bcbd6c765ada9b5c684d290c53614123a02660ffa22ffaf602111b7612862d2d204c65e82dc232798982652ea51a362743bea629a8324f76b693124b2c3772111c627e9db55c49fb7ae4204222d850311ca5d99213173416df4bbe68b6b6fb514dd4b821bda1b50f5587b7bb254a65a2d9e6a2c5baa0e71b0be88199096c516f84a20f38a9d32520a0064e955697008a9bccb6524ee56825bcbb776092c99a040b85c2e6e1669f08932f63635f1c37e989a4f8b2190c335e31a03aa06a755022c895485780bc90a969c834091f2cc64960d399ee65359ac245201b948bc2827943a06165255b0492a7236e7b69b66847824d8873a24b6267acadacf330f306652dc766df9269ef911068b50dcb199996a294b8f935df477f00b99882a5a5fa8147023737592a2d797358bda228bd62440fb0c3811b73ca1c8fe4e1c070498b11bc816da770bd895a96338fd9a6659ffb88df51719bf3a4b208647063cf9ec985ec087fa643608e0aa23ce7749ee3c7983783992961a409729a1c6f416a0a0a5659e8320f95277ccdd31de6fa3e41ac9de3293e3ab36971842d6f8b2ffa9a26de29b0c1a26815362a657a5571fc378425b23089bb94016ab2e180888226d1f7b448749280b978958198cbc626539abaa520f4c1ffed3ecd10dca6a4d6edfa0952d6e2785cbddb +result: pass +ciphertext: 5ead197f374db8ac3b0108c6b48be7d7a015a2f827d92c6686bb717bf55d48f1f350327627f184cecd044b6df9f775f53006d4e102f22053bff4fad33013d61b1b889a5e3e905ea297252e2ff8ee4d099430b7f0876e39a2202b3a2370253c00dff9cb62a1831dccdd4b95d60469828ead71c71047e90420e0b89460f9b5c5f0dd9c83e47c9551b227d7b54a0edeb79f129d150f8753e92f69ae75919fd82daf1eed6954c9429e39130265ccab4865b0ed1814406124cd9d1177361573267c2fcd41b793778cf3c4d23a41177eb8258b599f095082ef1e91d36bceb56a1c3a932e512c5a73b6f73255a74e76b7ce114002778a3f00e291592d76c3dfd33f4e5d3f409284f6a4fb654ad4855d5184a355d7e5a78aff17320536d83e3a33cd14f6cc2376e7697fb712bf0ad2c9b719edf9aeedf66ee481983fa551b973c3f7b17fc848a39606dd4fa254bd513bce300330adae0cb923a743730c83db40670d0c9a406bdbadf4a25cd11ba16b8b67ecc0aa3d632b4f8892b9d1571f0ef3cf09b29b4d956345be438a1f07444c5b83db5d34b2a7783f52039a27a771a2d114715e6778b6f970926626608423a91d485484dc14665b0cd31f7f38e017ea4408476345ec571eef240c9b04b023858b3e7bba470c21f1cc0883dae601d107a870e583a398198e41addc692491d11afa17a8f6041ed6990e0fb1ddb13ba2c0638288200c94512f0e74af90507fe23c69577ea17af0db97a32113abcee1c6fd15a0c524b72ae35d5b7fae7f9461373a0dce13d5372bd6dd3b9119406ad6837e1b3a05cfcda080ce1cfe8108c050764a2ad8d5ecdb5130bfae0d3564ba8f48742c3080c59c884c2fac31748966b2e003f14962803b4885625467306e0b0ac4009b377d6c46207a04fcf17e507a6fa4d37ae47bf7a646d202d378a387be5d4a9e2a25389204aadfdc4eaddd5fad5498ab1f908c36cd21e971812904bce453bba6287016fb5ed0e9266da7e7d5961555ead3fb8df66ac598889442746b75bdc9f5122037b4b6cee66aa613a239bd409ce747d53bccbf7ccb27d25067f28d851c590eae2a855999d5a201c79d83c63816b919bd22fc42f8a173fec47a71f5a9e42103738edeb4eb6e933cffa23cf6edfdff13bf7ba4494ec055b7779e0cb82a99fb739d0bac382eadbba1c8221983f11554997ea752a8069dbe7430d795350199299314aa476f5f22595d429663d66b340e0f58462f94d8809d7f798574dd7424bf21282fa8301c809d6efc94b5f9240a65504614ccf509295de40d8dcd1d6303e2e116de6b0dbddcc79a456054b4375f20969c58a98fe60e6ce828ebbc3ac91721abfa9148ee24a2e08c342c58dadb89926e864c3df8c16e92955b2ecdeba9ea53286eb27dd2348baa27a6115f216e2d7c7945d095514b31971028f7344757cefa9077a8a41064c52df9e2fecb7a963444597c98ff1c946e60607c3d3fff8df8723029769cdbd0f3e5a9a07917dd25974f1dcba2c86ebe31c129b553ee528f5ea636ba87ea6da7a170e7a4bdbc300e5bc1726044ca987bf24de6051e55289aec3881c16d59bec4c06043337b1b99fe2b6579947bd41d73bccb9509381a8f29d00a101397732f4e49b1753f464d1edbedbb278912de0cda6e11f4da9ba519302ced79e23e3e0b1a87157f4b7b8e1ecfbcd1230a2e1308a683c3be1865b58c79b01119f2df07cba766ff6ad23c0b2fbe2b664aa113067a19f221f81cfbad093e873c224cb34f3d34acb4d7a4b781edaa6042119924229718dfd348a72a7b1ab35a5d877a13b9feaf34745bd60839d13ef6c0cc1e7ac1897869fc2f3f7901f6a1e5625727dc19ac44c74b67f3d8d78bfabe83127a9b8f16345172632dc2698c299541cfd96ac5a99bce1eb768f52840d6b61052458bc072862ba936a9901008b7c7834111a04eed9e10604404da2c2758dae053ca3011d1bcb92088cbb8a4c521bbb9be7f81e424bf3d6ba6dbf8959a58207b6993570a6508420799795bba2e987483026cb94e16834b28715a7812d82e8155ddc69771e6bfbc43a0b1e1b11ecbe73a4e509d70ed055812831be7330fcec915f06920e89f0d6b6ec5a75f036ca9818d6145af671fe3f695aad955a3cee0e28dc66c41e2c0bf6575e51344e9110ff33125f445a5c2a9bef490fd0d14097ae84d09be325b603264c1933cef9d0956a51c61fd17e07f +shared_secret: 1554300d6dd3d2dbb7a1647991daceaac9bd28f6bc937cc8bd3246c48e219f65 + +# Official test vector 23, seed: "fbea1bc2c379f4f8fdcb0de260d31cdb064c9ea9b1d6dfbe91b3692add1d34dec9c9ffae7bf5e72ed2743ba3f9f2e43d" +entropy: 4b3a70d85f640d1a2a852fb6fe96704af56a7415a8ee4282e9207bc3a2dc116a +public_key = ada7c7f6a193f8174b99e5b0c249517ac47c4ababda18b523a665587579d884b7d98f778758c48d28c89c97441e7ba1ddcd020455c73a30377402c13c20bb8bcf9042066424a9081c9d44139e53f3afb7d9a687c3510a2f4f22fd5ab37bb778267053055f38158c3762694aaa89596ed824a0a10490c49619960b79db3174a227c7687ac0b4533197799969911a24bcf1e19a4d6224e2fea4c4da636483a09c39c0e63531e367b7b74c9734313bad6056228d00d90f8806b6a06dfb45e4366867c2175d692c66ca91083b5ad8566bfb4816b40da9971bb4855b44e13a04eac687af1a025863b8878827c1a06360e84c24e8940e404716e665e570a12b0532bc663001ae8cb94aa658a9394b60a6a1c8b008ec7bdf432002dd43f34fa04665278057cc5a0ec65b7315e831681e4d5ccc2f95588089122b18b4cb93df740b2910ccb49142942b563d2027c8552ba5bb595ef35943db0bc2c912d57f2cf166b2b9d219222a6a71bc55ccf7cb9c7c8c23398761aa58bd8a587013841a266000a375cc14018cec577260aa9d962799d9900a991873b175194720f50a90310c4b8b5248c0f08a0b609440eca877c708e1941a15af6407d5873fc62492bea381f431c8a727e5fa235b39434bdeb8e0918c4ab82a5d735b0f676aac18463f8e65cf2b30ee3a97969da994105d056d49e2245ac4fd1912a44b6f3647cb9c377df2c7f0a99016725bda1fb78670013fb25061e11c09fe1c92ec21a83da9a2ed2c95636598f63c264c972a4365e6580440b0327d3638628e06cbb7ba024bb2481f64bbd39a5e79c46b43abf0f405fee38076a600468f033b9c52aff5c3ffb6191ab8b37dbd8730ec63677e6b43afc74331631fa0c5263268b17bb0a77f2699e839e66489a8744230aac9c77ab765cc9094a8077c12c8e8dc6bcfe900e831c02cf01161c083b14677f01878655394f31296a33c612a18121cfba2f7a1358af8904b5e8c00028434ef812ac1a5d24bc2e09eaa5929c5e6e05683d292428324fe2a021e238b2717490f4731aeff426ad085574c9a1f7cab392d662fd25b4390a694946c6684c0a02d85da187769632b6a829cfc24999a317436d4b47473bbf8fd73f9576c6424acf65e88a4bb230aeec1f5e08c7c05a1c84aa3af9d44c25c81e4db436285a4b1a572f950437e277294de7c0ec087b8148607b30229bc97f7907076d9842f5a77fc5644177fc095e7245eaa7ba8f9c7840c99f852a109257b04bbb3679f80a617ba997f5b5b22c14d13807ab9bce20cc271c9b2cb5dcbf67e4a0df65a5adbc0f8634670c4718feb06880293d7c7184c52601c69c58f110cb1ef961aeaa95133483714b11b57b71cbb94e6a483444f65f293b7d349a02950079ecc18ce091ab09d647141065e037c2041c932ca092ac7b870e4a64caf14069fc9845cacd62549356c38fafba2a7f7133c5f7c630721fca36ad23767e4d86a2d1ec8c41da18355a9375659c9b7c04539864b1098b8c862dcebb94785370430498cecb064dc8aee2e385fd775749f47c1f38b6d6d08a6c3a5b2e148204d50048a3c8e5f13e2e3059e6a3554a636acca6b634aca6da71977e33a74f0a56e78cb856b816b73681a3a96f5a4328a1911a7e063eef31440fd21e5f281e9be9954113acbc3662529911cbd8221a7227e2d38e9bf798de61627d67b8e8f62f2e10bf66f24187d2ad2efa071f0b2210e53091e29be859857e801348092c572b91b59102e325104c6c1a49c7654c2bb4df431c12ab0f88e1132b63bf56c1616028994a304536564dbf18b54a16b50b9c75d3f347d8cac3f3bc2dc9827155c507294014c8c92e4121386c936f3bac661f4c4f8604a2b648053e88792f5ca9a48719bed781ad4a7bebd8306b5401dcba9a69a35128a7a89d22b97ffa5c2336cc5cc090a6cac001dc560aa25f8f65093f0c2fa5540b51f56862380996a4c48d90a68f8956ef49019ba809b84496118235e02535a37b1da0c95845f18342545ed12426a6e5ba1bcc7b348585669c003b02033eb024cdb70405f5c5e6077449d8c4e6e66d65a23b9bf51f40230bd241bac33b708ae7b2147809ba2a14005038d0d197c790491ffa5c74626d2f6c5e0ab2c69ba55ebc83195044cd7c4c00d84bc716d02f8bcccbb4f85d5e50c6efec71d667cc0338e6a6ca392e61bc1211681ce762516ade8bdad2f1ed78a9731a2634 +result: pass +ciphertext: 2814c86b427bab251a952ad9e541866a832001ed9859d12101dcd24f0d739e08a6b9a62d1aab7a2818c5f9dae38ef61423844427a2b64c90e1ce73a506b0302e531dba5617f739a4fd960602a9124848185aa176d57301803d2135c299d4be766607a219866d714055f6c6288d364db1e8bca2bca23f9f2a4e2af7915e556739f5137ebabead85315fb456f9499501b519283db6c67bea65bc915ca50ee1c77b9f035a15ca8d1ca5bedae4b5762e9acae10554d0eb6174938c786bfec3128bb65ea86a60379b477b88ca97df17539bfc142c67f0166be78a8cd3cacadd4af9f148354b869ce61bf39dfae8db4109b96a6da80f3c7b8316156234df427843874cb33bc4597fcc32cad20358ae650e82864fd407f06750b4c3015ca0d831e76cfa0b6fbcb5c920c9729fc729fbb1c404330bbe965848857966f50835b6f39a42d465563ee024343b0f81e7feb02baf0fa45cb866e51fd3153e79aab9866e91417df875341515952d5fceda11c76a6c3b4b885412cdd880becdf1613a05b3d48396e64b6446f0b39fb10ab170e5325bbb2e08a650c2065f85a7b4d5536d294e6aaf2350828a922f6f565ccec8cfb22bff15352b81dba6f97e929f7637000f46ce8279806b21ef3890b1e0e99228499507093dd808d4922d86d4dae2ae50a26a83fba367b50cafa044ff72efaa1ecaa9b759e630f254118b5aa10d88837c8add3aaf04da5f214765663fe46eebf244e22a3cc2ff30ca287b28a2cf6f96d8fabf68963ded2d72493db9dc71bed3eb4dbd6f9c2c73ef8d1f7250fa95d40dd27a689e0d020989b11d3818421101d6b850b6b3241f503e464acb922d2dbf587b69fc560f180566669b2ff16032a898d15bd79e4b0b68d8f9485eeb58c65c8e6b6d2e35d3c923fcae3c478f578beb54fda3dbbe59be441072b8e5b6ebf0f62d275d09169d02c161d458121358d3f5558318af0bc73547cf0fad3ae03b6fce3ee42907bacfc1656e3c1d0dd54e0c01914f4869fb9b05b890c6f71854f059903edebac8b51f7b68313b669adad1abc2c65d0d6a4c3aeeded37fc07770ee6604531d5aa3319ea94acc1755913e8b36d4733809460e26d3f3d99862853ee8f9576f911efeb47c6cda258f1926620375526cf86bcbd3fdd0eb0f848fba9834ce2499cf158cf772f56cf106c4d9d4221a5c47e1c387d39dfc0d80652005a0d4597f309bb39c305b02f73095510e016832014b6ed9210f96d4270d7da0591d1800f88d90639f4aeaa80bce27b46d18fe412c1d1293891278c2f4a0469439513622ad18824d8fbf924bd607f475ae2bdd27f1d867f427cb5205f856357dde8a1de80d497cb63f882fc316d9a6360462c12aaf05e08a96511fb06161b1107aaac9b5c2270ccee41ed68843fd279e31fca518e5829c3f01da85e8dee3c1c236732b5c945870257d6ee824884e4d949f4529515e74c26d4e5fbbd0c7639b4c9bc521d555b77d180cc770535a4d0f0963bca767994c5367d9bde70a966da321b3152b5a13bf928776ca66e14794b1a9b366b26eb955480cefd0048f3ed26405d2806d1200ec8a2541b1040741910a9f7c4dfdbae85a1b5a323b12984fb29bd254410662975f8976ce79bf511a418fe0cdcc48dc4228981e6f37f0dd4e0b2991baceff40111502205d77569bb9fb5487d03f22c7a852a0b6c620ea3f00b03fc13ea0220c01ef9dde592c99e8a01ae7604949a4cd9caeb936c7be6189cf8a332d9f01c66caaf7a6a17bde66d97342cb0f92cdc225400cbfd4b1c5743b65cc443cdb7aba62a951ed6a19f978ef15d0466ac128f51481f44e83c9b4445b8cc6851802ab5e0f244df4a231c5aac27b4ee4290375df1bb99b4a6ccce29bc0fb14d0ea5d1cf4083915d1448883fe4b6d081d01d5647d10338e2cd33b84f489d31029c4a9308bb6426443b79d27be8d0b11f058b7e214523cea5b443b783f54b29858336532bbf772991f0a4b0b67aa00def079fe2b5ea4a5f4a6e141346330b1776ecb7be83e2897d6ae40aa9c8cf0f5a8bda5a3a114c2f01d97c8795c0f93d396156f678473f80a3ae82db82dbbaab52a9c4a77ece6c8557463448e519ee72889f16eadc57c82afb28e4247443f0bc48278bb4cbaeadd6527e25b587425cf3710408f626b87344578990fadd2ad8bc2855302857ae91ebaf38d45eabd4ed4c67465f38f38235dfb7af77518e60a +shared_secret: 321f4ce476ad84c9f9d3b906a733b8bbd8aa0c3301d81d9cf7587345c098157c + +# Official test vector 24, seed: "7e87fb886bc3c7c9fc12569f465d2ecd12532e76cc27c65644c8d3dd603b0cb2d036c5974e675058f271d5c82ad7a813" +entropy: 26e38ac804fb5b4d59ddf747715e7e6041d875f99c7b638024b4af82d622da60 +public_key = 306c0e7e44a625f44880cb0d125bac36b650f8430c647c68e1ca6306e39c61142c2a5924cd0c9cd5a085f4eb5dc4815711e4aa7e3a26e521cac85c303e420a18a3393d996c1cb68dc9904588301385451788e57842305c064807421034ad845df2baaead84acee401fd912b191c89f51c436ff6bcf4b33b0b2120440e65777f4bff5dba7560148364046598acf3d46b70f7960eb9a7c5fe893c87c6dc5741cd84b080b7a4d0a596effa363b6441848d849b72a7cb9f1597c99b7eb6697bdc3181db25ce213c35725bcca20c840066dba39420763572f187758d05f6e43cbd41296f7c7a637cb49a57b00a2a9cfa7b2bd1745b5cb0255b1a68892431704f4bbf5c4844d0c1e9ca5bdefab042fe1ad30d4491427543cb39fd11717035690a77149e09a9173a433dde8a29c40744cd4a7d2ebae568a392981326fc8bdc2989869d6a56f6715ce65a51dc9a5e8f5c304ab6937f41964e80bcb259b9494bb713b6c882b94af5528a6b1bee6886f1da41d5a10b8cbb188aca7a820761e10b6797a8a5aaaf54b5f724c8fa9a41ad09bf9c9875df8ad40781ec93748b428cb0527c9257aa83d412ff1755d835343ae05be3211a447011944aa8952f2ca001153f10bacb18ac64619689ea6562f23c0fb5a33046c5dc5b7c37e2133d0987a44c207ae5abcb38ba68e13505fa5a05be45af5887606704b7b4a4e18e5b78f518e8680a4c3a678b5513cdfa3b18ddb285a562f00f29cad2c984f60c005f73d23e3cc617148d6a53177d10004981fb7e8a1cc362224e48d0cf69d28f213082b4425368c2757ac8493393e5495f35a41646225b3741e5dd1bd6e354681e8b47ae5c576b19d7c807feb4abc89ea94f2d150f946920a0a3d6bcc3d1799332304035515273c2c4e3764ca04e1653bdabdea77819e0490416211ba7877ab8028f8416fa08918c7a7791ceb4a65b567838283cea96997e3ce2564cfa0d41c43868bf6f6828dcc78f5c03afc4422675b9fe926c5d2cc197046c38a30cd5cecc076ba9bdb3c57a4fc806e835ef6b52b44070e4689baa7633458e0acbab3a781aa83158b31b1c949338b58ac034ff2c2c80d3bb54ef7c10c5281e0d5930f3817b9893032246f6aa82f7f6cb29a467395340c6b81347b2997f5514d90c95e7e84633813861c488ea27200ebe7cee795b560973effe3a19c32950e821ed1140b454c8d5da64453fccfee09565c7cac7192952c360232861eaba924780895ca022737ab9139645bcc7b6edc67050c5a90a4308c44764740279107f2799a455a8e4b2d384012d66956384b0cdfd108a1db088fb34cf0824f82ccc7da6a8824a90982a92ed3b46aea02837f57aa0ada783e8766887b538fba4c33b157c2138e9a9155795399cc99613bf9b707519f001241ab2336e96981aedbabd2f41f6673c4bf28929f777f2500cf0e382f8ca2182b9b8e4fc36be4ccc4a1293aa477a76625429a68178733380ce950d5871bd7a0695254cd4367a1d8a94bae95304f23622d07650a17341d401cc5133a772c8aba82a63feb19db78af7fd850c2104fd207579649b0b9eb38c9f2236f1669cc31a5a116474c9b66897c4f6d96cef6428974748bc066338a510621d9690e4345c1a3756dea7355148d45c89a16da8867e164ab538e01e35489c792f79a53a967277054297fdb4365fc7f9bc15068b70b6702a8d0aa9968a005a5422c30596dfc9c635c189f9d2ac1f9481167558992b21ab4dbb54f88742167164ff964c64201da9cabdce9b458dc8cd7489684d4c8ac7951a2147b7358098975837083723eb85a4889547c3847d7317cc88a1c5ea19294358941467fc48bc6bb38486ca05715058171c7b2a178cffc838de1ba0a02c02d4049960d477d9f79a0b1b17ba9345afaf641aaf80218d41a71b9063a5680579123992cc4efc596ddbc0e1d2c66f035963f7b11c7d74c35158ebaf6bc16d6798a24ce928274e125cf3d51419bc6926e69aaf11562f541446df6b77c625f9ec820587b68f1b50e590132d9c988b65c0a86b6c721384b9283cbea128904f5a8dbb6b6a5fb2ada47918ae3544c7978fbf9381f78468b0265290181b8f57ee043690023bc9dd4360fd13514c79cf9e3639b792aa1e70c763c52a43773fbe6732d262f9385716528200e37054237c04504a8169baff63f6fcbd8988928266537d344dd44533e2797aa03d8cb025e705a9f45 +result: pass +ciphertext: ff7ff6f6c8d57f4b3171c626be53e470c28f8686823d6af92427d22f30ef064312f00bb7daa97c68d5bfde9abcae3f34ad687f914976410d121ae4790852d0b8a0d607dc39f4deedb8921a58946de99ef1a5223db28cb3f2ba6ecdbbaff27bbb8bec11c90b7711b7b2fa139b18e49054623fe5b08b6f5e416018a6ff6bae5daee3b26bc0b46277b79e02645f16d84ca6dd362552ecbdaa6901ed7f4835662bd22cbab1405e8c301f6bc807a8c2f31741cd617a652767f3fe575d2b057f00b91503c457a60766924a2033d1a62c8e5fcb882e1cfa608f4ec15e74a893e170c5122a86a23187113a73478ebdc71b504a9890bc5056e973fb591e4f2e2f26c8143cd9c6568fc00296b0608eebfd14956afc65ef01a4a0feea97dfb7464d10646e1d18ad135b0f920fe274856dcaadac5d4f2dcd54b73181997b9d1f7521eb70c20edc40815d4a28965369a7af6e01663e163814d01e7500ec5143910758bafbc990bb4b9b34adbadaae3e46110aee4c3dcde08e51a9fee0c59e90c4a45409ef9226959e9ecda9d795dda6b2c3f3ccafe224167df3390e88b16f909b031250df56b821e0b1087a9512f72da732004770aeaa08f8738784f3da8b8f33eb73b3cb7430be7ed3ecb27f38261175e340a15090b29eb6a48470d434092cf937ea238b1537f5acd76cec471c2d4562040beb08b9b81715f5732c2c427cfb44aee961ac73cdedaa24b71bc937463a83503f251a03d6364fbb4604dddd584423a8012f9de10c91ec53852084a19ca71471c79fa158fa47458b198188f9f21ea5e5534f7fbbcb0d32bc5ac2ed288644945a5890f4a86c50609cd63e372ff1ce093056fc12010ed854c4aaf8cd2c1dc711cab1037cf36579274e42af5f21499781f9af2c3d1be65a6bdeb0d39ed227d556f36fabe8cd4dc33b94a1ec74029c2c47abbb3841aee0356e48baeb9e2d263572170d6349327e24836e55dc3f816d1b91301d134041c12798eaab3ab38796b10a17ce183b913af67e201e8875d8224468f2f0289cf9d8a3f196fe2d4051b8f5a9dac0fbfe9426f4521cbb622a8b3c46a5791283d6564f6f823d2b97f6bb58fef2b40e0afb8b6e3deedec06dcd4e55427ffef8538e18a95cf43c0543e7ef731fd6395fe0c42203f168f8c48b1f9dbb61e9958529ff8de9bd8c2dd8509c048c3e54bf8f1433c9d7585b3060b21b624b70d11632381f30174444346b3ef75956ede16485e2156ed2917ab9b020cc672b8ed2ecc6daffb7eed584705d405a515d16596c4701cb89557d9b46a5ec6302ef6eb43cdef5679b5618e376efe26254c1407b70334b7e3ea30b5def506191f4b2d7e148d94ab9e1d0cbb52284e90eba2461921d6fab64034c05d3dc80c92fc2965abf4a60d8d3f50cfbd13f3469fbde1737ea5f54911c590a4a008b3497a172cf0463d83fb20efc9cdc69e8910f5755287b9dcf6946bdb27b814813c6f515722d7e01abb9a137fa37a5e86f05695134c51a12b992e03c8689a91fcdc0ea6d9612f4d3098d415c199051b68c3df5f101af6929711c3487acac92391db09265034498a5514b647cfeda149cf5a0613e5ed29749470026fb622280e5d43f131bdc2e80eb1ef801a636ac13748dc60c770f471e514905dbfac4d554f020273d64b72dac4caed2d9ff446dd31e39d03d43a32188d6a03def8e22f60beb1e21a32b0d56c8eb19ee6c5ea6b249c73e2036afdcccdb0f945263df3cd25eebfb2f90c7c2804f7ae9ceef277c0cafb7881dfdd9b43f43510a78f36862484c70bf3587b981181c4340141379d50922fe43390c1433e5ffb9578f957f2aa0be393baed2cdf481ffa9d5914856ea4ef2f31ab5ac2cb574f1983da1796d8706d70b904e6962afc2a5270ed319734bc6aa48bb21d51a554b98dfc0d73f395e648ec0786e03c7a69011544e3d653338e8f272d56854c91bcb2ffa84a060cab98d5c4aec1cc80ffcab9c82cc551b461564d93aab81fa8457f2a12b80d26bab3f4519c01be31dec9c67b4aa00b2124ef81f25bc71f40af090297e8bfd9ce5da48c6c29318109927b54d7ee2463175cb134d8299aa645782b7bcf1efe4a7f00a19f688d0e0f63f262ddb7890be4a2b60fb51b00d8693d12d49bcd30efdff4a123574debb51ae0847fd40d1ae298afe11b3089b55c130aee7b128d07a90f0d4c27aec2565b59ec01e1754105c5bc95fc01fd3 +shared_secret: 3f9a0a1579989654c58a2d33470a0ab5b6587419be2e9cf4c5027ed252c48494 + +# Official test vector 25, seed: "ad1424e804f306c7ff513da4c1e8d445afca7bc942fac5c0b335733aaf70693712ecbde26ea726ee0f9fd9d52a83b1a4" +entropy: a319d2b8f114f1acd866478bcdeba6fd164dc4e37b0adfa8d8034afb3e197376 +public_key = fe3200f3e260b8bc589d0162aa2b1eabd229f9ab6f64e528e0f05b3c69b9c9f192964a3a6d2c96b8d525f0bbb32b848e5c244409904f1583c7d58209b91465b9e3a6f2a515ecf55a778119455bc57af5aa885b64100acbf9746787b9757a17c1416c4ee317b017348f5299661436c1fb5c8aef032929fba046a601804b7b4474461957c8eedcc19c609253c23ae1428674b5ba69264ec1ea74f825198ca71c3ad929465b2769338a6359132027aaf46173415b31ca0624d7e6c258a91388742b0f71917df814b75c38b06025fc9682876b597cd65cf21943cbcb4e77b1314c4b487aa46493fb7d5f734d0da891bc51cc8fd0454a7c9bfed5747daa43e2c95fea422165e02819882a535a7e3127396120a242412bbf7384bc91372f640202ea9ea5830002654d40f346c1f2025dd648befb332bf9ae0809810445a2c91a6c51c68ea19b01ca287e3e967139f58ee66b4632346cf4240634095c59492fc3b919be49c7f32b00da0a9b95625131e24a3b03c0b44c0cbcaa7fde1c7872645950818c69a62d864b251e54b10fb6820b9678026353fb3bc09fc90cc5842849252d2c6208dbc7754cd70904f15434a8840104b6a74814b555c69897b4b2d2a69407715f93ab337a7005007218b5536a89020332998a040599bc688f6497c520b73ebaa40b735f41d966caa24e655848fa66a2b473437d14c4f80357e449643cfb34e1759676b0b2b3733bfa6b2324357931a72866e99430454fb1b65797a90e5257037744c0f06415fed93540a68fd2bc5ae74247940c21a061923c603c4a89309f8a7d1ae48a29370908d9137db01ee84c3fb6d4bcde28ca63c34cf1012bdb060d830c2aa6da19ecc0c0a8fc0272e066a8d6225f3a2873a52992768ffef0bd9b109ced760dfd2c3ce7d17cc95095f95bc84f448ec51331066ab0126505df1273741220a869b518cb458b00b5e1e503f53c639bd2bf11d71c45e8866582c71c0663ccd19b0519330f36594f1385ef82199d76b4507318fde59b6ae4185f3811f15b873be902d80c44a9523351653365e369be2939f6f17f753c776fc3421dc75bd0ccae0fab9bcc2a8175408950fa32e983cb736075040a857501b2e543b043b617c16001cef203ae164effc243d4b1cba2f225f361a7d65949cabc32b3b3a782bb18d03627cd2507f1d122a46c3e35f91315ccaaea110709f648114220524b8fae55c8e6caa27a693c3a559496d30db2458674392575accea61c91cd3b9188b94654d15e7eebb383e19d114bc0720b7552ba0d42d85863e984a220bc4632bbd7d1c33f925836e117b209351ffb01c8923edbf4a54d500ce7dabda45021601a5b19d9b0b736c8b1e30896b285a633c647658622b30a9b476a8fcc251e0971f8938063550cf39718c86b6849c7b55319b7a4e817b4447d265bc5189614247026c82c557be5a4e1d302397865af7277646b442874a5b0d5ae60429e4dc5ab30c132052030d747715dba66c16316a7d10d180b6ea88a6e97601ae1131a2412b5e83039c75a1cdfd8c0764109d360094882725c627a8f9395cdfaa7bea40263c8479b3a3e1d68cfa5688cfa19322b833e0eb863171a3f48b9910e5289611c4d51554574cb239934cf870550a0f7a4e78b1ac50b59ac5b1de0f348f0315e627cc2e50707827b9f9c6b943010b46a2b752500526840a13d3123621462bf5486820594c40318b86731e1258de6215d76d68b58083149a041394114caf69198277a8a57082da4a440f799f78064310660350b0ab34970e6d9c9e53a2a24b2c95135971db128eec54cc21378b6067d648c85c8bc21bb9551a0648825719d5fcc67717083e9d677abc523340cc24da5b489933ad7d1c1d12b7004bc1a875244a7b9810b29c77826aac6daa1753681e2b9cefa4aa3a5c4cdd63a844166017f8aa79db97115b86c447bb7e66b7964a19d410149fbc475ec1bab8b06cf96ba0861062f89a621776507ae40849b82615f0b6d81ab82a92184ce9b8b07f69311fb295eb83cc5cc4545d89362c33c8dcc7453a70051f40a56691e212897746c17f5002d8c15bbb2b625ef267914d62759cc01da4c8437eb3facf336fa0bc0e83a9ff51c793dc44007a63432309460162257d191ed8872ead9a8a66296a7e55d30d86ddee023ccb84744bab7db9c015a60707cd7aa0ebe7b8cfb1d663d8b18c5bbf06da994e7eff9d64742e2 +result: pass +ciphertext: 404d2a66e2815b1dac12b2ac170bd54d035481a4df94a2773f03cfcf3d0100524e7fbfb8c41056b83d967ea669e174675b908d34dc4d1ba8f7e322ddebb1a35a38d3243e7d3b55a65915e2fa9dc43ab74648db1e10ae6b516c3e547343e85914db7f1433f7747c8519c8f3a4c60b579b6fad545e1c31b7f92032bce8b7862861c87dc8362bcdc54c1f4d57d0f54a2815edc2bf7dfbb2691a84dc970032901033166084de5b4513d3982d3a0324220e432bd8ab501934ddd9e02e9bc8a47cf54fb33dcbcd71a6d7eaa605683be12efef95aa8765a593a3210ff202cab70880dfb359c57dbdd4df350c5eaae4b19e665d5f14dd12661bebb33fa574aa76d118b058a7cdf2cedf0ffe46e10ffc0e0237ac9f26553cc6e576e0ad8b563a41519d7b7fe2d84710470992d36a26f29ad5edd385707df85f73de32ba0eb4da2877f8881ded4a46c8471c506be310b70ecefb3852459fba07b1c879f2f72ca960a7e3a09c02315a7fe5e66359ee2d10d7112b41987db9749a48ee25b30e2c8cd5b16b9b72970b4f632960e1365968dbe1de58cc7afe07e8354c9a80aa0fdf189cb47ad8d257cafd6e7272c3fb026db7fa0e114d04be0523b149eda1e1158fbff7d99db920dbe5c8460451f76e124146a8ebfae8aa27c0971ff4e2955fcf243775c9ddb08d88c250268e01aee185287681e1ac7790d8f6a21ad61cdce1a7cd4ecbe85bca908ba7ad56ab27008086d7d351a4d1eac429a76a8591ee4124507a73ce204d7bdfd1f36f36966847726e44a7202a9181a5714896350567eef85a7d19e62b210cdb90d43e8b54a1684fecc4941993e93063e096df50b911bfc6cfb6d1b56b06a2c45c0cad9229bbc4d0d44617fb869d17dd72a0aae77a9c04045c125432f48c092fcb641f8165ce30ac1e382909e7bc51e057957e65103f1d9c24b6243baf375e45381c7447479292d4762bfb7ff52ab0d6c2a108a1ed717dbd8029384b72d554b7bb178ee6f7685a27175a595a03dd65a5ea1995ffc30656a4bce5b7acb0709185795ac106204dd4230ee71e56a53389c7a634e1175ecddf88503f24ed7066ad1b5b523175b071f2f44aa3b198b6bab481e69cdf1199cee43dccfe7e6cedd1e371b147dacd1f572373e2d072e3c6612b7920a6b71186dc35070d98c614a9a82fc5da515148cb29b5f4c4af120fe1c5d1b8717960b6359af4ed0962c17c1e28137702176fec18311138927493231228859770c4eac31c18ece82cbf769a5357e792da69aacf714b41c138664902fb556649cd93ff0cc3b57c8eecb81be7377f4c8df23048d530009f16537c2135bafc07d6ad666b8dc24d7385c316a69df4e7769ef16814563f1989d7a7c593aa4a25f3b7b3cd9baf3659831a4b9871ab96d07e6c6f71bd5ca81aa66ead3aa21080f8ae78d8fe030466e931b50e9402511bc145caa0c30b0d1446e2a8ed36e60efc4f86371161a58d7259dd748185c30b445b49829e7baf11b9982a01e64378ae9b205787007029c8673cbe52d93206503039731b7943334a58682cae94ef5eb2c39c8fb91615fbb0c18a9452b478014d89a5714630316d66e775294ef96bd401a55fa8ce4d2894c1a1182d81c89950f366dce9c271c4be3dc0a71bf48b8f9068e798ff1ea2ac3a534dc65c591fd14d5f53d68ef39550515c3631877b9e953ea7690495e67d3abcf1e5c7ef3ea1ada99f3233fe47180a9ad000031113e4faa26823615b4b6f68325bc88ad783b6376c166a91bd753e5162b8f5f30c68c04d85291e119f14836100335d57f78033080d9cce8932ea6f81f546ef63e59f9d4d7ea4c2c459c69c7ee7b6f7481cd2d584f30e7d17cc9909bda2fd14247595953748537feb6e9007a5a7f58f916901164bc91a48f63c92fec8d2648c83102c4d1f0b10cd076320e64aca3e2501ff913106900fa96aaef968fb677f92325a16bea0be578fac616dd0da218b4bbe6bf1f1c296ceeda0c30bfa5321e5cecd626be7c4275c1bd9dafa8bf53d634cf36983b958b6af3aaeef9fb1499433737fec3f7bdbf5e49f59a456f529429eb6ef83b87a7a302e888aaeeabd73a80936103b7a256bdf8c01327147accf69c4428660902a5a0e4475b47d94041fcaad68b63cb417fa951599e1205b7f6c9663aad90bcc31f8a6cf3c4359fe2d68936d6fd7c567cfb0aa4786884e498eacd740a27045c3f1e683a1198032d +shared_secret: a28945631e9d080f64dea8dc345de2a4cb95048d5b78cc573afac0fd86ce57b3 + +# Official test vector 26, seed: "7c33ca0e987226c8524dd56c811fa4d1ccf9995b1e4e4dd5b1481974e88cfabfbf6787775c2611cefb27ed4403ea9b46" +entropy: ff646071b2509e6b75790917e08e4f0b0d9f0116ec6291c0b59eaa4b583ad830 +public_key = fcc42e1ada20b880b35f49a312180f66b866c4952d92f2bf38b08f6110850224909413938678c8f9585a0741b561a36b7680644947485b2462d984ae5ea115fd52202643014607067b9540457a3405e7127e841d004b86c094468a0743b82bc70569c3388338e0dbc6abd1456ca3afc4564ee9d361ca0a708e417aaca1af12151d5fc93db4b652eb990a0335c799a27b713172b6949be937b570384f3627102dd2bd784c97d46c8a2ff2a1d2a0c438f0281cf29971e3c58df77c33b83b5252cf0e72c4fb9448aca6a3abb06a22677c0206609598c544781598fa318bd58da2625ccaf7ae759b774147380f0304163b0786a9203a1169d943b54b9b92f7bc7be5fb17e87a37dfe73712c33fc0824ab448a9b2295a7364629956cac2cb6ed54ac085bc3693fbcd9cf7b44d4b318e248ad737aa1b821fa985bf7f219828b1cabfe66deb269a6be49dc3f74af594c820748fca60961fb04f22ac2cd4787b5a41a91195b8588b3a74a1a188f95e50ab047cf42fd5b63fb88ba57dd24528f90c2f966a1cc91ce39ba848fbb2ec4576df188350f587e59b0ac0848d71a93cfda63e3ef93745c6516cbb69a5505b1f900aa4f91094306c84f640050393f1c751a05872aa7b027f678b1aa2cd5f97ca25806a53016eae4412a7f23ebd8a7359e5a706a11415951ae2a45d60fc999b66a255cab76ef85601b2974c462ec4202f83b2ba85190aec7c6fd6263d72e19f7ef71b6fd37694ec1e56090290549d002c2da8b18beab345f969bf1b23144486c299104dc7dc367265902469c45d7788c5d23941c6a1608a12586692eb759eb4835c537429ef287b6709b87dc22653d7a92cc314a295a6a6c939e33b3a87394cc40cb284b17987a088fffc3f401c2b072cb72b467d59f930d82101ac725c79d54fba036aad5760a615cd5fa1a323a87fb63a4472228f124a3ef72a086ac74245cac6b7784249d17c7a19a126b28c7530c1ebd6a806097de35177a5070abe84bbe3b99ee7149c57224357c8624d08ce6467b144e598701987fb460b21e53957f57ce98343a564c63fc466f7e04bbbdaa63ce79448364ff1d9c05257219d03b2d90c9c0c299026d3c0aa4845050092fc7424f1ea03716a456bb2b935a2be5a5570b1eb467d54890493c4977300344887718bb54aa06bd890229359ae33395d7a7b08a71465297780f54cb0d2125ec1311d6bd31766470dc18810848706c0e79c8654c6c6cb35d4f62ee70541e92982ba570dbc289be8e842a31b7e7158660744992d6506e1d1c8bb512f98015270376158228319cbb7a2411253a98cbbca8a6d86c2710631e105c217b2ac05f813474727c1b089b3c8ab8779ce91619352d86b38c5a622c73d692814fd36800d5c009af0bf0eb6734eeb382f70412c2469d10698071c772e62c6243cca236c2676fb0258487430998ad99a1456d29d79977c810953b138642754c0bb993e8b9b7e3b3b7972359569c44bd6576fbfc212f78c0c33362011225d2596bfd2ec1a4b721a36259fb723c6413910219048596252225879bf301c20d305dd3bafb2e62ccfb1c3d300b5460ba561f3c61930662f3641b763b2f5b5b2682546cba9a15331b8afca63cf68b7a1fc2e49c5b4042a3a2b2148c427c9701727dcf3371bc7b13aa62878c8a358f391f02b1fd3d2ad663c4f71c36cbfe11581e1995d976ca37440ddf9c4de2b48ed9c492730a977e017a7065cbcc811bfd155d1935122e12325732505c6c568fa67bf7968ff6836f765c242b5b9966c333ea1161a336164d72cc5767e40939590f07b537788c46265fab1bc3078c470e98dc1b7a31cc53a83a0a7e95c4634754a069007341396371ab79f6343b601b50966c5999144cc46b6d06089a879871bd1bb9c2cbcef84cb8fb4a031786bf778703b164f6787c5cd63ac781424f8550e1ac992a6c04bf7953787047b043632de12698e80526c813e08f36dc1db592f48968395817566886bb2c7d3fcaddf331273ec7ecbdbb3e5d70c823323fa8a1a15e1371534cd0462cd052685950bb6b6833600243e35c7047bb20832f09e1d854739c5b425bb32bf86029e1159d79ba70293badaaa25385563cfb4babdf4bbbe341058d3817e9a7941e69adcc867559b822bf63d0034c15de1a9371945bfacb1caca4fad8590f723014cf5355228d850d99c57f85c67295a4afa0b9d8e1da6065ee0e9e43b6d +result: pass +ciphertext: c8940c3e69cf3837c2792ac9341408c5106afac1fc3985744f4d0289f745add955784e39e345526da04ebb3af35ba4b4a8cf8ab6fab0cd9c27b03266dee9d0c224f6a3e481e313af21e485df717fd89bb60ef6cd991896095eac6d37c20245223c5c2b62358a0d57f255e53ba44663667aad78d564c0c6b1a3cca8da1fc81ceec31d3f347d890b5d829f2c93b82d25b6642ed1b911ec82b7032ce5c0e56649dbe11582097ce456352f842095e8ea4a14dc3ed29958d548b960380f4c50dfaab65accb98d74862dba822c438dcc4a21ebcb3a99f89496aece9d7ab098e7deae6ff750f979e32f16d5796e5b4a68cc10a396d1894066c1a335b4a15069916b0e81ecbbc526192c904d857bfacb6434b061a94c55904d20e478a512474ecd6da3ae06fdbeb4d9db1d571dca82e43934160d0f36e52cbbd8f9f781c07067b4e82cfa9ff0ab971502d9c09a323c36ff304198af9dfe121311e207d9a949591f5e6e64accf451bd14c06e165a177dc4a47414528c85c1375ad952cf16fc1622d32513405d0959f333cc139a6c27a68976f06b21d55f4332680dffcf12d636f68142e13e5f05f2a8dd0ae56328f1b0e409eec89323c4b03f693276bfe99a5dc16071d034a33cc0bdb6a533af8d2b755d4e4f89521762705d0cf88a69238439f51a2c6982a82272616d34aa986db27404b60a43b18b565faca6263a888e506ddafb1e8898483ed24422ff52af414227c649aa280e7b1ecfcdfe6e9f852a52824572964d9a0309e0eef481852f344c727be41f136f5acefa62275b1eca25ece000949e5f93412deaba1f35d979281fe2e687b3ce49fa69bd2e70fac2dc72dc546ff68b2394d5066e7dc7e1e8e4461464235820b54a2672ea3d541f582e8ea28efd277e8cd22458962a3d9d8d1b3dbfd978402e20b0c25dbe8093632454498620f27646fbe1ca40b07fdf986399f4c742ed706b3e1c3add52e20a971a3bfd97e7b77b557da18fdbcaf8d1a53ae79a08dabeb69bfe5be215a74791a2686c8d13f49146cfee7eebac74e8b0b35d1e5d638b10732c2077594683425c11600bd90a61cb7deddc91cd16faa1b4d80b33e37cf89a73c5a2066831fbd00a6c838342adea2cf7ffb9eb9117024a03e10331d5faa00478d8c9826c2df0f44480ffcbffe3e4eec957c2e95c135c2ac2f1bfc9d9c241d1550869bde95c00616f067bc85cbf1a58b3d53ed57dda18e2668070f9524d22591717ca7426876977447bb4ab0598d52ae2145b389d5889f414c42236e8ce34677a3948214683e4083ff91d96562a72395d3a3b18262db82cd484a5351dda702a03431859e3832c4ddc46eae03250b186fc1ac8837a1407df20a3cea689d163067cb3915a067f8e32d1137d08fa382abed6912b0669c360b8bf42de50a596036ed45e5481dd6e42f984110a632ef441a92489444edcd716cb9df602755a60a94032dd528ad2627c0cef727f5b21efda54bd27459b3e1d8b311098f10a1534b30a34975c86110e3b8cf37dc1087e52097e5aea8e4cc49c62d3770b4d9d5aeefe42ced080a4c946c3ba70d5e601a18e0f0ab985eb0973ca252c65fa89308dd7c2ee239595f464a290f570046f31a9549efabcad5c33d6ce7794d08cb3a42f594f89489eef9486df572dc93259e412a9c310f878d785ec432c373801cc9319a008624a3d2619d74f0caf877322d52d091a0ee4e1e845637e6752f610870b8bd9c62e1d7b53a84a6d8ce169c7834f2239a20420d5724f1473dccb15eb74db3b6465b8dacac10d1507d403919b964df03eaf7be3d86b26e7defacf89ddac3c6a21f60673cd2fb9f4524992875f6c0f1e390b969389d6a79d06412851c5443ce70aaef5f6168d8ba1441036d197d4cbdab95b144044fe88ce36818f2ccec8b1769108eb7cde1d9ed6030e39e2be445e8573989f818d660bf94ac95f2db111e28a6ba839b94e6486dfb6d75ce48168b16feb3e6510a862ad777831ec3d2ae73eb15722a45ab65f921a2bd39c7013d39da9e75a80975c2c9281a6efa7c6d26bd80ab3de9980074d9a59dd41d1b56a4ec95a0b5a9f2aeb90aee83da8eea8ba2531f095b3f365aacc6f3321b624513e35fd3c9087ff0d32293ef2731d81d956667e0b2be7c8f44d3238931c69d022473059f5c014282932194bf30a392bc4f1f8e3290824ca56b0570af2cdc6a80028f88bd7641505abe9cc7 +shared_secret: 5a2913f3ed09c2f765977781f18823602437334e5a5c210a71f4cd734fd10b07 + +# Official test vector 27, seed: "54770ea1252ea2857d6635151194f5f520adea8a41e409ff498d40c271359858fe2b084d5b96bee087b8e8f4dd4e00c5" +entropy: 0584270ec26f3b9818e4af074d17b2d51037cc8dfdcbe3b140fa4fed5deebc54 +public_key = 3e074aaa7ac9f7703a87b72bd0aa050574b63fd80ef56c882109c9eab220e67041396a29d6977f9530c3628329a2e02a7850c77c73a4698145c837087f2241ae46a1b7b692fb5c81de38846a5bad7246b596a889eaf558d1d55bf1372057f1795b40076d53c0b81288fc9009757a9111ea26c3410d55217768378cdc94a3cb40af38f67b1b473b15205c58d876077b2c8005bf870588dd6318ac154dbd9aaaa6d48d1dc05118739fcc7c12327a68f8b5369a846b6aac56fd1043c5ca8675752c12549840d47b6563c703723d6b8791bdf14e0011c0605136a1521265c13874b9ba6064b85ea895180c634168774aa55e2df34ebd8132bac959dba90ffa656e7c61677d3b801ef3604814ac36d31657bcb05bf20c893a4a2d50644902133b9b16e81c1abb2b5521408f3799152ba14d51a6a7f4a231b5167b0273b22cfc606482cc6685bbe8e80f6aab99d7f55b50e093aa55b568c45aa3e4a0766a9228192e5e91378af608276308905826c6a24e7413aa98f57495dc2d5ed5bd6fb5c65f4b4ed7b9c4c7b504548b0306c892f547613516a9064417b1b96a95cbce5b502bc770356df5ad52b98adf01bd66175ab3747910c814e7b070205b60978aad90c43341ac6aee03cecf7cb8cd2b4842c3401ae1a3b60207af366fc7f78069e39fdda0ca53402ba455af5ebb21ef9a6d60501d6ecb1b5297312b280ab2023f2fcc42c2d66308f263b7d019af68144247c2dd93a05df57daa5a03e896a182b480f1f607ea668aea60b66964b2a3fb609ff547da9a51aa6848ce2a686406c7fcdb058595a807a6692f833cbe3166fffc73a2f30523c86db1b98ee7f477d7f1a8c7110076774d6147bb56a79aceb6804eb982a8d00356553a68ea8e91d8b86d676f394a776353bc830043cf209dead22480c08d5df25e80fb734bd6558f1b9080b09fab642808c458cdeb0d72e5b49305aa502321711131c7f848fd14811d718be5c805c8b254c8c556981ac8c1dab13cbc9e91708d99688e36599f3b7a23f7ab83f2a3b613b38287b2856aec5b4ee90c33e85b8d88cde3870759320b4c1c0d8d727c8e379f84da0221b2cdfef70270299bab0b7f9db8c69d7c9ea6d01df6107e04440bdcf945af329bc016892d8c01f071654ae3b19374946246027210cf9b1760aafb5e4a935c2d0b7c70db3721279e6fe43d712468fed532cad432ec30a1372554c97c3769c380c709018393364ca97f9dc37a0d393511990aabf398474965dc45ac2a37ad60163145bc3b73e7a6c2032f7d2216bc19b26b4cc55bc68ed996411bb00715473f4e0636282c203770a3bbdb26cc58aa7b4c69dcc01ee3e53ae514169859b632937cd8c355c560cef5c091f4080047929554c94d7115393fccc11fe397f2854564533fe9e66614da3afe15be92196268720f5fca36878797a2b045dadb2491fb3cdcfb7253f18750774d4108bd6c7c6545b801e8e368a1087e0f33c22a359907c1c75bd59db28268da457699337356436786b16bf6a25fc55141bca303faf566039991c700a227c01e6543bc173c06b9a8026fe07e032c30f5d4c86a950a3a7b32e6c67e51771d78c08cb5382bd4fa8068969926d352f7e5820ab19878197c25172e95d6ab6a05acbbe375ab955bc777977d2b926786c9143978113c490731438ea53c0db27bada4be961b38138b4c684a12d4b08b6f03ab28f6a260b01afd348b59684197002bc534836c8b735df139ff98c84ee03a58e02d0e6125f1e09bf7d7a91840226362a667627ae5f580ee50b594fa64892a508ff8bf80851abdc45486936e11e26beca14334454d66c0128663c52a8700b525950425a4ce7824b25b9e45ec6bfff8279d1503816ac76f498f8e18b2b626b285655ab40096ceeb229856457699b500b77f7af5c2bc8c545c4292a387583fd74dcd20c4bed85bec8c245c63608ea302d557199d9a70194a5e92acb24264532b02baa8f824052379395b3b4222536164823c379782837ff417b1583238721b8b6b4a5be982abfd35a90d07bade5c03c4c3170257bc0e88b41b242b146027baa2cc72474d00427b0c79cf294203df379628799452d3952d2ac709f20dcfe33b001022917a4678966f1d9065cad2bb9b6979817873e8d662d7ba8343d18729291c544c00fdeac5ead3c8dd2cf3e2ec7899253e7f980f9ab3230eb1a9a3688f94bd522ebe016e2980d72c +result: pass +ciphertext: 5740d7e2c1b500947e7aa2f01381407b5627047669bc3a89bb5040aed14f0be11c05a56d743b884f7f493184a108e2820a859bacf72be64709a6f57ac785d44070647596e7f23cdd66a2e0403371a0ae36bcc95212fcfd7b00af1dcd22efc5905c37501ede6abd9c7c7b366762a727e58ea82288ed7946fcfb6cb6f17cfab6c30622da11b4b6200fc8237beb65d50f2749c26c3c1b014782e8cf3bafab9c6efc12d674642101d5148e610d0b62ea6d024af6386f5ca7a15f1a2f793615e8b053ce0542ee0c622bdced6cb81c4ba9afb6d6b70cc07e7d42cd72556b8e2c87169a8fde513a8c53fa66e280a1b61e68a0a4a0103440826c430a4d0b55c8181f95c573582246c34b880fbeddc4e6e9ba0f3938004cd8d4b429f639ef3b214f78aad31074ea3b6344522ffc306ec466ec89c5919292d39d682ad3e62b398a2f7991ef3a1a64e94b72d7ecaa48e1ceb95ec88fff36dc28a8ad20485b5fae3694fadb942bd6817f79adaa43a9c747cf29fda10472797bd7736c0d92d56ef30e6d10dffbebc0ca4610279677fdd4b015fbb5f6785deea717282c4eaec871b8b5f6e93b197e37ac566348d4d80fa4dfbf9fdb33164f09eb687c5c445942813885714523166ae4d006e0a0204bd88a870df62a933a794a1dabb4646386c0a428aef1e4ce77fe2b41819ea313e3f475e69113d7db68bd0212de9ac74286f8f99ec35892a7ba5a2c6caaebf76683194ceee062243affdb66b8d31319ea1f72a04b29d96423fdabe01dc36feabe0c1f4e189d6704f7215903ca7e0a5c7d9e32347ac8eeed0430b634684636ca55cf3ee8f782afc18e76729bffe70a66ae2134a8d46bce987e54e407e5e2631b5838c461bc26366883b3a45a71e7e9a4559304bb9e0a0abc8594d8e4035dcfa5fd87b202222aa5692f8d6c682ff889c3f0137d88b56959f03e2b210151ca42af8f130777545e9ce51235cbf5e77a2c6dcbeecb42bd7ac91978c951f52e1e6fde74ce808de813bdd12fce935826a39426ea9a9485f3c11fa141ccde32ba5131f25fdedb7ec732e7716404c0c762c3b4b616eca02fd824bf28d3926d38817d0bcda5c2c3db0bee7b5075f140be211a310dc652130c271e65965ed2efecd53b2b119d531666dabd920da11861b68137ae03eecf96535ada14502c3dcfdbc6a224d94fb138e3ee8417f1547743dc618bb573f48984bffa721977fa26fc695f8053cc98c681f481b45321aee96dc9ac158473aa1cb4904dbc5614ab3b7856f0612f3b619f97094dbdae6da8a4af8fa0f302a85492e6fdbb15982b783eb1736f8667f84aa031ac5db11084db69d09e8caff7c52d89fb7a23e63c125ce4c39b1de1c1c5f8fb750bef864b57ab6483d49c99d403c47f1dcd5fab8e3e02bc80689ab7987a90c7bbe1a5f5caee65f16014d17a32eb9a6a963ece4fc691b4fd323384696af89e015a03b57638eede81d2e6716fe8ad838f1148cfb5175953846680c9ce86d8c786a1f6042ea39472a47e8ef3f81f07a35edb0378228cfa7760ade7da7a6849cf3b8a18ef60286d27f9ff341a4f1fd4f04633a277593ff38fc095208cc37628d980e8ec2e8b4d57c0529aab6752096968ca0a17d1abd1071d197930b846c1aae49b69cba4b3fdd2293592e6da36bca6cf38e03e666d30f33c581e54efca3115b69957ad66232643bca122dee5c7f1afaf155889cea07781fa92e1f221ebd9928fa4a4cda0d2d8b95529a153f965192421bef46603a9b89dadd13a29c56239813e3bc577373a7321e1df79f7b59b57d9e39ec44760b1e5fc72ad82771917ef756917489ea0f128211aaa31a50f9d380fa48933383bddb3b11e1b252e2d2180a9a7329ba501917b7efd21a7ba71e89b20f5633457792d08c20025b41a80d58d3f8ca1216d20f04f62d1d2742e3b7b6c77e2c6fbd1a4424534c72c914c0484304e8e789c83b7028fc0042fb16e5a30dcebf2eb01c4aea036e2edd975caeb8a32f6afa3466bb740e7735df8e1b7d1838c85b366b43dd97dcd1a66b7cde59de198d5e0d0f3c1d74ad06772fd41ccb2b568277f0106b0a41fa1afdfd58aea61ffad6de24dcda35c9f8e0e864d898670af25268b3a2ab0240e95a0c0c36821991631742529e5f8612bcc0f71602fbf5448aaab72e6e598e5004e454bbd056e76a54eb2cd7eaa92186744acaf865373345fc79d42c5cb08314ec7a08550 +shared_secret: 3084c8b9e79c5eea12b89c5acd1a5cc6d9835656138a1f5d68d27fbb56988d57 + +# Official test vector 28, seed: "cd6cfe94e9c0a1cc4ffdcd2d7876504be5f50f1d1ca5cf93482943465b268276056f2781f4de805c138976ca72621387" +entropy: 51e05c7b4ca3079781e8293f4eccebeeb2f8c8b4c59468eddb62a21bcb4ab8a3 +public_key = 10489b6e431f18744974e86c075394189349b00b1ffd5cac6072cc10217b0e3203e3f61e1d9281c2d208af83a7f071ba78546e273271ac1cc01a320f35e845f10c59bb8c97e1627603e51a06e532ee716eb83519c80a4833c7ab45e6951137c0f731964ed2197b033e17bcb5237a1128179a85d24f730a6b31ea0e52075ae2198b48106ad0e1225701313af1a7b675347bc0ca48d88c4ff054edcb1092e87ccf070e10dc093bcc9bd400490250b7dca3775b715f218448caa01a8d8c8c6577cc9f21a7e3e6208b2c42215794954aac57712a3845523c74960b57a97e0c310cf7b8798192eb9507fe65020f706be129774f10794f2296abd13587a78456b083a164bf23c801969a57591062d22bab23b61e7dd5b31bd54520f4080a4c6c01c6603f4b4b1aabb99681be0b9c671f496f8cba2a571502e0da35ffa9bd2c77a5e66809e4d54000b851b2226e23c1072253826f374842da312ff0931b7a85e6186f5e6a31276a2d40a81fbe135e2c86c328b896f07c2269f983b313cd92578882a321f0031fcb9a9e7d618fd3d543e34abcdddb98d4c4585cbcb67789283c442f8c5cc914427fb1a53f3e35b78c2110ba956defa035084c53cc9b6fa7946e11840087e8194db6607246c7b314ce7644b8e522cf494a6333dbcc23da197cea95c318797ef0a18c84bafbe968df375fd0c9981757aa8c878658722bfc2684e012af3b30a067ac996315b0cfb13ec45220c9447ad4374c78484ac652921328214ca33466f6024abb7a78cbb528c44a339638eef09d3ee370d3a1746053629e7a37eb2600f2f73eb9d572030598042315b093c0082456fab06ca2a4c9bbd4c651bb297b494fe7e38d5c8aa3c7cbb6f1189d4a2c02de0acdd0e2c7ffa22e83c63623a21dc137c00e07193bd28264ec0fee2259ff2362ebd1c252103d93645e92e398f46935109bc0cb50c619424db0461823d33fd8d271727554a4c86a5113a17de7bd17b47cf04bced6cabfa7e926993b57a6c0a693e251e3b90b7b17195ff037fd867b87109a8be90403060cb34b32688c263eb00194391ef6c978db4c83c8967a735895a70b6dced06016b3737015696f1a1945110a44f022472c0ffbd049c0925ab1d68ef3f775308c2a95e99865c04b17b34d28a1254c433313c972a7f51a48696db9d7ab71d4600c0563b36437fac1ba6ab9ad6e89630357485dac1485e2808de8869ae59fc6a952890c69695424e3bb9f27aac2199301dc6b36503699f2504ac5e35adfe08048f9842df3260abc3d209a1311d65c048b58111bc7fbd6953d21b56364a51d9c2419072dece82b9d93aeb99c3f0a5a6c3f276504c3697a7c19563abd84068e8a39373c1375d848400c663c44e6c968c3c61fb375eed10baa60cf6158aa7e39c99e609a8b0765e36a2fbca515e4581a0207ac3fd5b3b7a95f193a08511109f335cd1dccc09223129da93aeab93ebf397bb073bd6374634675b6386caa33f71e04b1b420a2036979acf22835fcc511186441e1f5858402af78ba99673125ce9331b6686821ac739fe41467ec22736463ac4415db238bdb9a32e1895e0445aeef16b12e818f33a435afa91f850549ed465fc026163f988582040274638eada37dc162bb2d2839ca934bfa44acaec450ab4436ee78a5e658134bf80f914052be1a605e69ba87005f4042a25569c29243157865c5bed6918da360c4b824c7ebc8157870962737d150ac5583907c0c0f0603b1dceca45e10467ecc3a4435355af8254aac26f411a37b2587f40cc023c1c497664de5d705fbd0c103e36875b168c1c732ab364e1a4726c1d8207e1830d73721dfcb55557352a6508469eabccca2ca706c1de5fab0a7647d2cf7b05e117998173c5b3958d483491f128f01889fdf00d0b668a857479030f0c16bb753794719e4e142f0c5a1a52445de8862cbe3377c383deae1817b8110e045321a16594fa7c1d1037fbcd2208158c625514f3464237d7c73b0dcc605fba342cb6fbcbc71391577ac3781adb39d4b1c2236a4c9579810d039c10fe556dd954d71e705c6fc9389f3be0089697dd6703d8bb8ff08c88bf6773082a56378b52bfb30182c9ae1512ae1c2b9f99b4f3d0b20f8593bc530c585d737540972bcea60e11441e07a9c6827031363990b383b6f42afebf55e5f20635ba731fa86c24d6908aed77e3a57b2138c0c83a5bc98ebd3a002c0a9c6 +result: pass +ciphertext: b55c52a5e679423c1ffd045386899ee3fd7a9e783eef9e46f2725ffffba09835961521a6891a76ad591526e27db7bc973b07bb6b4e768ee4dd4c8b49acab0389c95044b6c2021cf943beafb912b0a492a01aeb90960f09fde6f69a55356624d7482cdb2a6c4faf3c89aee8c745754ffaf34f69f4cf5423e752aff68d305a2dab756a20a37ad209ea7f9b4cc5e5d493771977bd8276c79c77c1ac529c1ba0972a127e0abdc345923802b8aed0c1fe0d34064f43bc57fcb56a54c29079da57ceea37c877bf5d888233d2d45dcaf897d729ef94d8ace2be06efcb785660bc14971f5474440299341ee1690f11f683515b35f30ada4a6944c1d379c74af9dcd1439a780edfa81f1167304467c5e5442031fd6b8aea5533e605f4904cd118bf7572d1526e6c4a18fbebdb268b1c695441deb5568eb417ce16713bba343dde15ba464064bb4a8e8f76eb78aa8cb15a2c568568eadffbfbbc248575a4a80cb58282fa6a0dfa766f542f844c6f282d9f5ff882ef41e65b84f684a2cbf4abe8ada244dba1a65830c1abccabcdd19a99f3d9a722ee10d59426400f39b92c385498f4f4677502683bb6e9e38f3ef1f33f275ae2a24cecf14faf4052a5f560ccc887045c74213cbf118e373c093372ee148b6b94e30bd7fbe1ebfc61d9161982db6eaff4f4eada119599f7bf111537c9d98f81063c3f2d78e447d4a142d1fffd144dc998a1b72387c64458c6ad9f585212e5fdecd3728f2491bdef0de8ae60aaaca1a774ba8062ee5383f818c2223bef3c9fbb39e2754c809e2d914c899a331688eec1ce36968be0d21acaef4be75a3bf5e1f7365dbcdc0c9dc0c9730ea1e9fa79357572ad04a8d2cfdeeac940de6268e24566729d34f2f257af4b7ce48a43d218ffd4fcc3beef82a114e79289a601218e2872dd9c1467849c4f6c386322508ac137e56949eb6e9577d4e418a3033654e1dfb8d0bc196b3fd3220a8e34c02b988bb84ff0e6c2413168d9a018669b602994384e84f16b3f90fcc174a9ed7ea15d091df8f29bae868e27ded0badc967be3706b1c6ae24a903c4913bbec392cc0cbc8344465cd133d6c682b6580c8dc16c7f0c2c277462479f9fb94b0fc2ce36f210dfcacd4e14abea15652e5c1f2ad582e0ca1f769600c04411411c63aa8311b59a0436cefd61e500481dabd7675332c94d03c158e15d052a061ae9de4f5154ef3adf4198b42e503b2ccd6208686c3d927c616a6d788cb938d435c599cf1f6b7b228a87dd557ec583740292da0065ea653ff9e5e45e0b7a2bb289a4f679ee1ec537ebe5be7b416e08a42ef6f2ade5c7ab864eb60db71af24d1282b222c7579fd9a083af417fc075bfea4b2fdf9a8403c4f3646f3d2c7535f6852f7ba49ae0dbdcc0e06fd5f5d5333bc70f971f1b8f45894fef181e65da15232065e30d3d9595e70eb276c0e58814d7f4455d19ebe868731c2e5a9ffe2cc268234c7e23f3ef61d72998e15ef32e410fd4124edaf55b2e40eafcd21f48430d87208aa4d40809d0e89599c48d99b1b905271563a3e2028a1051892e588e94dfe0d32f232c4995c3a781c95954433e1a9603241ac0c2d100a1805e06165aaa36bb70eaeb6b78dd0b8294b88dd8f1a1499c7b088660cf0d2219486664602711de0eb49424b1e46ef3c494b7549b5fb77270708c825a40f3844495d4ad240f6265a969ffeee75c2102ea4825244e547d4ce847a13d88b59229c4347e35bd35b0a22628ce51144f88913ddc94922cd930721b2091760c5e15886be1ddfd8fc7444dc8c16eda51fff288b2ba3fd37554672e953c38c96e4573e38a712fbb903e3d9193f7d89d8ad54c3d2d1556a664b7d49554161d98aa662bb78d71c147732b3e9d74b541ca4d5b7c8b383f2488168f5e3604c51a01e3684ff2257300013f50c88c9b7bdfbe1fd4ca5e2719e12db0b0a9a0798e74ce0a383853ca52ae166c719af930acaa48a7829267ff1f5b6954e6af6a6e7fafd23c9196e916ecc150d88093d1a495ec33b3b369471a0fce99178489e0e6bda2dc3ba9f73ac4ceda0981a92ba7895fe42fb85c0e8ff2dc822d8ee4dfb1766243323e158ddccf4d44c7e4fe3c1fb4429e28d14d6645ef477d5af242cd0e352e10dc9309172b82d4debe3331ae1e384c61b5972766a1c53d903b55085bed136096e573a56b8b349f88f3498d47046c7dffe1847a8aefcd1aa6bccded545 +shared_secret: 2c9aa133dc5aa592b7c73f23ddcb85faed4c69d249363f9cd7fdfadc7329ff86 + +# Official test vector 29, seed: "265eb2de7099e4bd5614e5de7f0c2a05c78ef3e8e2dd4ae4cb70f3e5e59c8d1d88248303f07de0c5508652da66b47222" +entropy: 9eca0fe36c80fc5eba171c3ae66a5b1c923faa50b4521bb055e7bf51005c93df +public_key = 0dc34b0fc991bea47b02a8cae2f81a10043ec8d655124b3ed56505296c5aa2227ce2ac04a0a31ca05575b2e55c01119d6588cfb529aa54e707155bb4f9a63966d9566bb65a95287591f715e6bc0d7fd1691129999552b1771b35a322c5145c7a40d79d6d9c3eadf941112c4f76d678cb0aab59b9a30bbb340e078bc2899951691f9bf84189a87f2af590f881027a489ea1bb89e3a8b65959ad503a5e051c5f398a654c708f9ea51bf75c6bfc25634145076a93aa6e6640e6b47158ecaeb621c606c065972c9f26a34736067161e6bd49fa2871631aee5b518ddab90f692929d5a7a6e76582e53dcd36acecb6a76dd9455358ba95eb8a70d3786c01960b367e15536b456408e4faccaaa139c8e9737ad6b8b0e380bbac446c73b7b388b319dc2047fb7338072a0f225b506253afa722c812419e9c739c90beed97ba8f684111900e7d1762a5c0903c390786e1445b615a1e054efb7b0b1daaab671a63cae7b55c8b6f13f10d55707650ea8d864c7e5217b572643e6c7480411489c9ab18400483a657185990bab58b6a734596a6123dfe5240b2f908fc8c3591490f89875e0ad3b06f6812ea973e6fb0a69886199b3b55b7d26a55501b43609b3d6a3981cab946049c10b5737daccfb2040e014a5f715b4c1f8b0406b3a3204602182450d10b019b388bfe31b5a5a9794b5863bcb34cf6f659b25cc95f0a42fa9305a0d647342845d5b28ff5c1727975bb48c5ad2c96b97ddc3bd4f0b40e9b6fe1138739f1a9ca3b969cf33ccb700fa9fba93ef565a8aa180cc3711974bda14ab85e3817ef4801c0c3b3f68403bc94cc7412ad044a220750b6ca963e3e052f310bb1474623f707157c8a7d67f95989492278ca5707ea6d106431fa5a3b88c39e3e360bc0288925932d44a2523b0980a221519ceaa65353a7483b7de6028744a2869bbc869a58bed2327b3c6a4aa7447a9a09bbbaf322d5914dc9d5a1ef8aac92b920524c6968289d7da06db2561eeea26fb764168c185ec20ccf2b57a89f2887720809e94c377b313cd5ebb7f71037bbf01bf85b675432b891850316f6b938231793aa3aab2972e979c7aa258735858434b6386cf0c5a9232f60a70624b4cbe9f10fc9e3a0d7605bcaa23ab49a222f66127a1a4b9f2bada03c8dcf330e1dd90131852b71cbcfcee91f528377d200433dc898c2118f7b6275f4e0b9a97028e759ae0c77477cfc26a1398cade7671ab89344140f5c3662c736107205a2cea71c3612c4eb063cac777b9d6b61cc0419fcab4908ac161674c6b4c58c53a5065c637d0a4c964e29729667aa949c39ea0797b6882951314354ac28d52c2096049df866bd028b1ac3b47cd2e648eb322134522ab2993db33491326a625e8739672551562b2829ca57ae6518dd4553146281fa57aa373412f22c2d0cd02b6141ba29f31612447deefbaf8f974aea75140db2b85de409db834c283440e377147b2b8204f09da14028f1960fd7c6b29ec1bdab0098ea22669d7123d36a52dcd634a447209bdccea731b47719745597955d3372cc533cc9b59712e770d7cbb63cf114cc02ac9933ab248617b9b284a8763a8856afea63c442ba7407905c6db13dde25a24062b7db428958e2b72117652535c1c24226266bcc7e87a721181ced66cd9dd1c8d86a1c28d0c335b66eaf7422c1bbb3a7dbc7f2a81c7a477a35717a23b486f307c766f1291be3afe8408026352d28a826a7e57819390f3341bfb8e258640213bb06b8aed87eb78b216971060b590f16d05d83801404ebc63b7304a0880062b4c1e235655b43c2b6062c28d4064a1a861a9844544776e8eaadc0ca66b2cbbb691460382b586e77856b8085a1d6795f82be8185c62ed79b2bb8a3ebf57150145892f99a27ec8d1701265cd16b5f5293955400a44192b0e47f399a0bbb9027f9d3aa1f5407465b8b28e2a87ab881be300fb72047f61a53b1282c13b65ec31045b1e0b779580017e1776e46a5018598799296f49c1447370af1227a7c000e327b40ed2965ebfc7a555803d4d34176e14bd6f9905c5c4e253062c1110dce0c22e74779f07846a6806eaf340bec965dcbcb1a2c40a5e6428d2bfb50ceab3a64cba6aed667edac0cbf03ccd8d8a56d73c70b122628f90e4c760ea21c485a0536f6f1632f900e1cb13208f442501c6cfd05027f5fae41abece025084a5e4598a766114b13b17dd16a4c99f255 +result: pass +ciphertext: 3a8bca083a1f082d72c5c05b6d3ec147cd1646564b8aa4915a4c5adee11141d3ec19deba2de14e8df899b62d842619a1e89b9bdbce4f556331143aa99fd8b244e439ece01179bb5dcc22d9b7296dbfa90225c218b7e37873a8df58578667ab8795e20e508b268f0075596d1586c8cf5ae079e6844c6bb0ba6e4335638894dbcb1a657cc96e432f04679709c508a05a6e4136cd79a1964385dc8effd835d7ebc71bc3f2e0d6ce09fbd2b9284c9d9126639e86d37139c974b7679b20b06a65a9f45b29c9d4cb88b42b8d0c3800b3589e5e3f6ecc43adea2a56d38ae6d4c5bb4398bfb3b67dc818c37baec8a888e57dfdeeb6675a9be7c99942337e3ef419e5beba7043689fc2e41d422faecef51107a624488ab2ea49eaf7b95aa1a526cea835fe8b6fffd2ce1c8eefc6297dd5ff418f925dae3a5dcbcf2fe937a97f9c07bcafacae582aac5fc3a1cbe041de2c8acb8f3d87ae31c678bdbc6e9d7473a0983d45f5096d45c803c0bea4686879c7b7fce5219748128b8af367b44a7d6aa7a9b7d1c3bbd6d677118e35f5cf69a9440253e494473cb86fbc1944874e8b358d8b1a92cf45fd0ca86cdbfbdcd4991915ab0b4985f96ee49e0771a6683cf301982f9ac9d8131b7d36ff527c5df10d2afce8bcde6a469db425d6c10dd08ffdf12e179a1d58a5e8ebec1176a70e614f06db5d1aaa93dce14257736b0d92689a1c7ed2c5614246c7a37db2013ecfa6dc94e8c43ffb382333d16c79d07100fd92bf0c7fd63ddaede55b4bff6f3130b5132ab6aecd2a8e25201496cfd7049eb3cf4b8fbcb4039666d5f1d7847e8e73bd5399567aee06035e4836a437fdc515a05101e0ac7caf2651a2ba2945f9128f5e979d05272701658d12dcd6d6351b235952237c541f0af1c35abffdb0b67d209375f4b0cd58f777ad29c42475c270514d4964bf2405b4a180b0ab400de1187bd5fd0b778273f3e87b5f43e72f3a916191446380133adfbdbc2a2befc11c787f8527f46f14880a9def0ac05583cd2fe0b44a67a1934698f3e10e63cff7e5b6ef1b2e380de905a29d237b1a5788a46fca785193f45f079b0f2288b860a606d332356fc758f6df5ff6b8f4e538bac5f04cf93b00834c9c96598994387ac9bac71b739a292173b974e1d96875985f3a74bd1fb65a60fe5f8d7c5a087f5e6b39c479ccc072d64b39c5d1b18cc909022edd5ad5407a588522fe019b5be8cb7e56071c5a4a510dde41a35916600714ba8a69487181da0b4af43f36ee3cd5a682cfef1b2872ffdeca351d3e126962737c8d8ea2e86a1ef248d5b95c39a58bf5d1b76d202010ae0a52965bf40e08120b7193de091996e0e1c51bbb6a66e4cb3cf6141b44afd07ebab50102dd90bda6f21674cb3a86069b1a3452c044279dab24c94fddc7e8a4e98718310bae45ed518d401e3e1b3aa76152103ef76329c949a0d51442f9214b1c09f8cc4180d877681f1ec8e7a0c6bc2ee9bd3365708937399bfc146482d0b78b445b74ed602cef450cf90f20e9890d4aa801cf451bbbe19211b3d8446ca5a1787d4e1c693eba82c51f62d85771d246cb1a4179084f6131aaa733016ee58bf9e0c71cdb00a8620dad38edd3be398ce030486cc504449b7ccc7c7ac70bd0eb60fa76d1ff7e4ec85902a70f10b3db794f432c95bc67cee8fb083d538c72c265e5c7eba29a14e79dee53a821de768d864fcce7ba524ceb3e85f66ae20fe7ac3e648b46b1c9cf5a1b1cb60dd9ec67eb9bc4e4ba8f30e08859a41240a0ffa0daa3ab1418f153afd8aed9b17f5a8eaee948b75b882d83719421ae259935a464c77189c808766a809522fff78fd92caed13670374e5933ad1a61b59de2b0ba82c6bb33b165ab6564cdb964ace0f5f8e3b4a42b5a463645581b3993bbb95847b2f92ebd01af96de01cf007cb0341d943f74af023f133fbe5c95eb885e9eaf06c71b468beff1de1c89a703b88d128308db5c9b717a190373d68774bb6351a108a3b2f29c2d168cfc11d62efa411efbd1ac8a93d85abc683b443f21a19b9bc3a1ccd94447e926e969503b239f73e5904635674e60dec54358e61b39780c00ab5341c6deaec0d21f4a785986298b5828951905a44d05affa48dc11d928dfcaf7364b8075e52127b5f89406b4e138537878fb81c8b04486e0f6f86d350d796e94263709390ac0566a9b5f666a7b4e0222ecfa3ef4afb50e7d420987 +shared_secret: cedbcc4a7eb422e8a50f22ff47da0bd8b6f2337cb2aea98fcd80288c14da7d92 + +# Official test vector 30, seed: "806bbd111f27c2668318387bd0830f65ec21a51af01985ef48d03d64e1958ff7ee5133a4ebf6dbf36329bcaaf65f40ea" +entropy: 0c5719261caab51ae66b8c32e21c34e6d86ee4aa127d1b0195663c066497b2e9 +public_key = ad4330bdc85f4699cccd373de5d7266e5530a73a42d10c9b327a57715539eb99030873689f47bf6871a00c6caa06e4b04a832c865b69293303cf838ac186b453d77088895db36163b1074a8e045911fa92db578cad284642bcbb44f844c6663f3f4c98cc8acfa1a96b6df57f5be10fc76477d306245670b2c796672331076f74480c2627a3a44421a01229509752a536e95ba97e85aebb920b4b1b1bc55bcb95fc76ed43b9805236cdb62861fba353f08409c91126661580123509c05208c8604389b2dd3b0f8fc94f432b41632c4ae1ca0bdac54ceabbcb743362725b839dc18add4b7795a025261139539641aa43a9c185621d13c33c579189244c884c047bab4187577c97639ca4abc631eba5e9b141e11b6aa8d562449c3ccd8757503a7ab358a24d2b36f2e1768fb24727801123354b6dc661f640883e0613c8886121b89336202eddc464204b1dc16b9fcd3906bb9a6cf8d6a176a43aa1b13200d67ad0e21f2f73186164a6fab968ea0427c82501c59c49488846489710d7976a5c812f78b5b7df2aaa6437054b0a03180c4a886b7d653149e8497b18b18e98e72f9815be90d252a4583f2de88c0d7bb10cea4d65ac1f59683db4ca4969a9b57ba65e06908f7e9267adc8c87e8b8d8d5651b234bc9ee1c65fe42a51368a041253e982100c25955bc39b70b36c67484f8df88c2066cd2a5339c471b60a1b81acc5922e274cea4a071eb71e788241ad1b7c41db1e972212e27c770e6720a7e67de941a1ca952bdbbc591ef78019c67dd184259bc873f045607d1440bee46f199a7d2274b4e40062c064368bf5c6d50046a198c89e1372950b7710b3b6376caa9bc32882a6b0aa9b7fae86cccad0574cd8b417047d30d41bfba0119b909142363d307a006265a3961c9c604a7b65384a5deb1c61f25f66fb3b7640b5c3e22b8ed488f08201a10c3b5a42b043965d4fba6f31b90c5a8a1d8b29a01d500be93225ab6acf77960afd2824f2283ce86288cb1a9b98c11b03dbbb0e0854731b22464331f6dc70e7e1771471236b5b26ce131649e77d46e7946b85593b2989bab4ce5d09ab8d745a64d53401bc0ca4855e54b20ca4811ae5d9192de398d9d65dd3a327499cc0ccaa9f9b2b547c5b53722b50b21c7bd2c3c7f67a15be8371e9d4583faabf2467a4d5365cf7d92b8de8a55de200b61185b89c83bdf817adcb67fc775a5bb19f1aa453b491cf1bfa8d51d0cc499331de7730877a2db14778052cba5d759e21a8cea550724f52bf25c2a31d7b117a4377f7a461ff92882e11a4a8c137ee5a4b7aa67f712838737a96faea898141a1b5165761401adbb650bbea1698267d324a3cb1d9933be8bc95d55aadc4a814f201ebf724fa024763563e2656b028053cbd16b32c20457349702702c4b453a277b318551c8b732378e3d7bc31a10b5ed975ab032fbff647c6340c2d5c91f68c1addb447fff01dfd4c0c9d925111948f001880b36588df16cd1b9bbe85973ce513662267214660340262273fb45f97f65da4e615dca4a6aa06c5e9ba0ff727775c84608611827c98c8b7717daa60004d2212dc28b4392a6e0333a77cb9400978b60a00a766f6264486c60af452fe92452156961f2467d013072f1c4cfbe08ea7885a74d0649517178412a1ac63261981adb7708dedc89b64e67dc2a8b25d98cb1ad74289372e48fabe360495b4a7472f3c8b7f877280ebcc6019648ef960ca23a1c49b684f947460e96f0e941408fa026c127900d84665768db52a8ec05696725b3dd82498226030b7189c9ae1c612e9a2c65c86c29426caf686d5b00ea0557466a1b04f8485a457bb83dc68c4b1cb01e7831e476453f084434151fc0c9ea3b7081ee00b4665048bcb8fab778eadf90c25f54d8f452381e252b2382d04028378e7cc7b3973cfb776249857cc611af8f91db8d5b9f5d90212b27d5fc9a794d53e3e002089a05a421a540b36aac5c803c8f5cd71012f176ca57a7a439db90bdc71ac65f0470d54188927bf3d2640e5a3a45d9021f876562fa7c6c2b37be9261393861c5f0336a47ac373e6874ec53fc9f90d856807675858ba1291c7134c4b8432f9782cf6855ae9d49226055d9c4b2f23c0238f20b516d6600fa72d8a5c2d06e1613dbb7fcdf9817cc299ef2614b6085517cca4006876de51659c317c7c9d15b2dfa3cfd29db64b6dee0f6e53b6bcee0ac31c086db16d +result: pass +ciphertext: cef4be98dc83da0b9570bccb0cd85d237536d29da6544e77e0ea894fb5a777f7966ce27f9baa0c2d13b2559906edd041641ef91758e5e33c09c0aa3657892b63b7450243e4c07d4ed5bead3239f6c3ed3c59fe3d302b1fa9360851a7f6057f3275899d48db6b713a9b221fea8f1830b45c2fdf9f08cc8a5bb390c9b31497bd35e6c659739eece6306ecd8d77610b2ebd9258f68de04671fcfb85199eb7c5593369fff6828c0412b666e9b969adbbb494702001ac8de879533cc2727260b7664edda4f06fecd7f775b9d4dfded03c9c3c309f16f91011d6240bf0f81eda6850f88e96ca462bc0c836e08408159f911f41b47a83cd8271bcabaf5111eaf3cbd36b5f7c6e61293fc1cb5a021f1438488f220b0bfd439c0b53d814a085ab07b8a1a751a9880dae73b97c5b45091ff63d1504298c7a0ca59f394f1d7a2064163cf8b4d59b432fee9c73492daadc5a3a9a6b132686b75db0805eb7745adbaf38d12637693a85cdc77fab26a48f39837d84a6be8734d28ebb50ad913f5ccd177ba3b632a0122345c1601c4582a0718254be614c8b619660a92ed1caf7f9b79fa0f0b2f1eea8c06962fa85d2d3699ba1e2cbeecaae9921754deac38225c9bfb23ddd4dba78a327638e1ca00697a4b93786f01b979c169a3509104fcb58ca1d7941f803263c2ae446b75081ac4df6c154b811ac394f87cecb719b6180772f9253e32f82dbe7ba2e5c4f1c8a8c5ac37075c3a129bf96cde8dc9834153ee49d17414826f4a4904b19f97f9f592ea2bdbebe51d72e112d600b795b788b1f742188c38a72d3e0d7e8f1a80bac86c56a8a6101bc3653fc22959580e543b0cd9eca89e077d9b1331e3d5aa096bdc2921fc5bba044e5f96c60d4088b54e5904ef842d8d160980b3bd11309ede2bce224cda218bb65a64bf5ec0f1fc6d4a5ebf01a01483ec968dddb1c1f56ac906853c69f90f9a5ed66bd13c13c0d5c8e74e39f6a3b7808a67d01b9edba03b391c8912ced938ebe7bc9c97f82a3efed9b5dd12dd83f92bb7a20e5f3d15b0341ac07fa3234b33dabfeb62bd399fc5921aee054dac42883990d7a6fb7e470ca11933ad82491983c119b86c35868276bf804ff5b39b1af66467a3f5ee835078ba96f2666acc015d9facb8153b3fea916985fa36b050bd3eb5f2b903768c390bbb917a85d14216c98f9a050d057dc4dccaf665b94a1d3a899474fff52cce5376b163c19c07cfd8046787f2714a14343b18b5bdb49c06e76d945418525cb46520a29d7c62421b81cb57188b4ce22e2402380e494a03744d2c6a4398e358efcf0ff62ac6d9479909be5e41f2a6e649835858168221f6ed1a857e3deb195a6e68917d8eb3e945f294ac6555facc46c558ef6260820575c3de0d896f53b9e864f76eea4cf2ad6243d9e4369ef7f22aecb1b349c342e428548f29e58e0096da1579c0f2d200fbfd205c4daa7d0420bd3a4b0dc7d5e6c9cae7ba37a7065705a213d4bb070e291158fa6a3b67bab4574a712e1aa9806a315b1b7c559385181ac322855d30c3c1aeac5b34be0f6b6a0a5d9ba07c02da1ed4eb279ca6ecbfe015869ce6faa62d32d32ffb190d9b3cf96c7ede8423bf33f3b124b2f9a2fc8990030fd1c5a3334d3feeb134c2b8b65b5f515f1d668be68753d5b980e4d37b20d14533c98974529bddd2198a1856f0c7555c1624942147946ea61dd511537a78b401970e493c9927a14f2f5dc26b397f3e0b28340693d95378c67af4fd4f04cc1fde17f01ac79a15c3da1bcd842e5f610cdc807970357c56e3d6eb66556054dcd8844323dcefa4281ede5e0657977ad4f277e3b72a326f7d9c448137e3b7c6bfb841116584f85b6b8970cc911829ab38719a0418490690344ae98e62d114965d8a9d154bc0c6b49ca0826b4909dd9c3c56348e34581b93570c7533e0dde9c0c5c5c28f4497c2d399151438b241af777b0a04e9317c48971e8e2a22c83e25b9ff9a170010b6487170ffa8d03e7cd1115caccce2fd41ccf6f44c1b25fb4ee4e105aa4e9c3418e6d998f8f738df1ae86372b0a383cd63c24971df937945646d4207a7b6042df82653450095d62154e115d13bf7992aec6e52cc20a9f430a0356436531ff985761467b8dbca0dbd15ed5760ef24c37d74c90a998ee3ae7c748d703411519b7004f38fcc48ad35cbe2f8218249c845d3a04a3b4f345421003200718c59a5c2a +shared_secret: cd0a41e85f2afaabcd7f00c2a9be9bacc6d6f79e0ae6b7ef64de31dcdfa02b91 + +# Official test vector 31, seed: "ad540a9ce816d6fb1661e5483c44f6fdd00c9e7bd1a8ceda4b4c4d3697d4f78ed0a56954996ccb7da96ecb8f5cb15809" +entropy: 0e59f6f9047c784c1f00b24454aa4f1bd32c92ae7e626549972f86fab90e7e89 +public_key = 2bf6a6fce45eb9d6a03f11858433994e304b2d379c43d4670be6c9d65a61e50c34ed26c67e716933cc5d9ea22d14f86e5cc54967ccc82e3506efb8cdf40c31f313135b597b3aa72fe83b01ec88a97e32464733107294270f82216e11688df6cefc2a9332243eb75059fcecad20a681aaa17402fb36c6e091728ab92efa891d141c251895f4c79fe2db4b2253114be24d22a38b9d14532ff80e384778c8b99a4303506d08303bab91d6e05c68a0c0affb5dea7344ef5ab21a559cdfbc3be395834b4b8d8d9c4af6a9ca37a34fbf05669f99af8bdb3237c98f98802ad76a26eb353c6612674e8b4f93a190f293c80da025da00aec20265cba37b0df43d78982e6ff49a9f464e7ff57680e7455f816f815c733bec25e4227ca3257336005d0559b647585379542eeaa8282d8a90b7a885b0360c4c9428951820d189b873e246e4d793fa94c0211630f54510f7f06d116acfa35c856f87913bf61cbdeb0554589dae65a2e25341e4b93916aa4b738714526653e798c11f24563b2200319c60343869579b74f2ba9ddb03c6f3479a0ef3a5e5f80183d69034968e25892c28c272dc501466621bc091c0fcfa09a2b56c9f8cca6cda208a523ea6a40a4907c1f390780d4a04624466206594ccdb1b19d2b9cc407bd172428316692e09229fc963710165970471e1b554f322c1548a118f84169dd9731bc8c49d1b0130287024c391ca027065591fd9755ffc2a68d36b7dcdac3a54e0ce67e432e35695a3987b1d4a1e5ea32934c1cbefac253da2ba9714ab6a4a46a07950b6477c303067e0e673fc6cc800a26fcfb59a01e397f944335eec26002889b08a26338947dcca758eac669929bb4c608f9861812e06aa61f5b8b56299efe95109d57c42c066ead511bd868c2b107522043da8356f617c26f7082b078234b435c478d48a53d5a369f7907ce2be8370c0ba7347707b7ffdb25e6bab2fa85b5922e0bba7269fb7a9799a158f9806bc3589268d8514134aab1dc83d415a235ef49586133de1ba59b8fa1ef5493cf9dacbeee04f4b9a94b3daae423575682311bc70c49e65090a87137cb327419a2f2d5481d6b10044c6a551eb711bfa828a3cbf22e026d2345dca2415b6d9b03e9479faf589ea02a12d1c03939935e8b225d7c18534a2cef060456bb58145337e81f7346e057bbb98a8c0a312f784351dcb11a1fca7984a2443b409ba903c3024b8da9a8b6aabca90b74a34b532bf01c7c1c1c7ce05bf08c5c65164a01f64c86797317dc03b2d69c263390f9e411df4f4508d7b03c7b473a7e195e8338cae5b89b85465779029c0ac711653b1c7a24bb3b9bff0c612887c12a39c2f5bb2920313cf3522396eb79065bb1e854a8956f7ac2143abb4136b0682bd01275506a765175c4b7648a0dbb875e2864d52aab697533512164be2659c57151c4af898d689a8619726406110faa69f61320e75d3a05cc27febf609e52026c10c01c30118ee3693a7293f4f7cc4d9f84ec37c5f38890a6a58afce1855d4d0ce1f0a577790423115c59228b96bd62d68d90f4bfac9f17a7597a492e5711b65d8626e568f0150a458201c6205a81fe74a591b547be842765723b57503c3b352478b304c39b22b147bf6b5bc489c2dccd44c9f206b7cf58fb3faa3c8891524faaa88479b0c4051deb63eab53822f84935566ab7978c1b9e5cc043767c109bb4663960a534a750cae177aa33315584138138d52648aaa5cefb09f5cd58d008d4c69a1c85a242dd63a997385b529a288758c427ba15b05642c230c8a0180938606c6e1465166f128a35ca3855657ac1b3677a0a15d094ec68caaf90cc1958ba0dbc22169f3853f3b7d56f4bde7bb2c1c71c8c4c95299d95873f89a17a4583bb9198e0279a45691a3107ba1294726a385ed95163f0bc3c609c01ee201c5900eb763518f212f14723314715e7bc84b75a611c481cdf858350de0495d1c020228b004624900c300cd018166fb4dd217cda3c792da49a87a3bcac52542f3b3243f689ce69c1946a134a97061c83134ac52c92d97a458b7b38dfb7f42476b6c5c272c71065e5159121484d4a541311c97fca3488d13b1de64610483cb3a9551cf4a3317d0c76766c777e526595539ad17bb6c184aff73b6c4eaccd5a14ed1b1b836975deeeb8909458146938505dba5dad77c1a3acdab128b36dc1e94a121c545e3515ed56687f8911eb5e172 +result: pass +ciphertext: 3a385d4faa2e13cc995be625819127959a2cdbf5030edfa42c129bf7efa22ecf8b2c50d0b2e6e7c3bbec34b609ddea036ede43e34ffc35a98661a78c3f29d07aaed7df7d8a04e53f2484d1c63b14644e134704dfd643e9f87a1a60e0a95591a6897f38924ae27812d9ea3baa5926a657dff1a5f2202e781270f8d37fa747c9b2f71767f265a86b3e9816d0545cff49ea6b0aa9297921637dd928ae528c90124b0d5786d6b0e77b1bb6f49fd8e0799b98bcdf6d39efed155c8b29ecc32547327ef733d644ae279b4ceda0ed406fa5a55f9cae0f5c97dc0bb12b112a4d2b4b24cf7d78ee1a2aee6aaf10c4c311278bf521b3431d9177be5c6bb414074870c56adb807331b640dcbf15d1f0e28beb419da866eee0581f25aa8567fc28dc7d8477cdff4fe27561519df585073a47e544708d80735e086c6f9cfce4531a5123d1b8071f34168349e4d35f7cbd235b92e9ee34bcf0e1f056dae77af055975f97f9a5a8880cdca6b1eb79407187f6954ad5c06fd5cad5ee2a5e4de17ae0d9a58a614a3dae0ba03bcf8990e47b548d94023a436d3066c34527af538aa01f62e8581c8f824b9c25e495f565fbaa7c11823f2f6b25b672a742626ec8f044814fec20afd555156ff2c16f1205cc4c5f0076db3f8f6a0b4c814371e96311c43c2e6fc3aa811d5bae3898d7497199c8ec0060546cd6facfb27138da4acad7129917d4affb94456c6e4842725b78b410b6b56a53b27f54792dcbbb9f32d7607e071f09e105fcdb8861bf5e452810f2917c73fddfcc8776cee79fd7a8711af303bd892d00d9b757a252c3c53dac6fc7223f6d480a277c38d6d836542761912a1181e9043ce70025ec14c79d01ca72f93d12a19a50a8021033ede24a361e3e152f97e9313fc3812a0787d61705365dfb3c115eff71154d1145bfbbf1185558aecba14e669b9a354d2fc9302904b13a69d1068465b3f969338bb7e5f9f819959eb1e779f04dca99f7a92cebbc668c5e8cc416d077ff12f4524e959cad611a8c175e4e9757a9ef9c42886c6851bd684e6bdf4e94d82e7b3c909b108174b8d0b1042a41028ca149caa29763ec56f2964fb3cf6bc4d8e3563a4ad320aab53c80aa41307e9942b45ec8dc17758750bc60d413806f65cf5a5ae12ba8f839eb8d4768c1fd86e64f1f11c5160b0cdc3ebebd8a4dfd19b8bf4f0325c2d23970fd25f1b6829d648a86bd035649a2b2084f26cc08506a7fe12f57628524d01d84be8b73f7bf6c8d030a617bad843866a430060b325b0cc5092fd6e98e5df5bffabda29bebd91c4bf1535275652cd7a7394ddfd0fe3ad8053a3db3dc4e820a77dcd81e71a7081d21563894234cb2f8759e1b239350bb9b2eddfafa555571b642780c8671587b86b64185ca9c3107e3beec412ed6029ab679903e356d449e4e8832b651318b7e6367462c0297a31159e9d1c0d2278280bb92a65ff6c946f6991dc73cf60fea144c6fa1026708ad9477831a2766db8bc80b1607bbd4193d7901e1a824785bc435fd8915d2d55c4397c2e0b6a9bab6f9665b27253e492b44fb96f604c16b3ef21da9d9c33c80e1b8e2fc11c53c37d7f465c44de890fb65a7194b8d1f348f3fa35a0df294ec9fe1639ef96c33633ebebb44c5e92b27d199d9a0a339ca893e3073b48e92813db2c7e572e0f5f52c1b5971d4ceae3a81cd420e2750e58b16f7b0914c2ee61cb239e1af94820a9a96c794170fd1397e04093792241d81f3df0827b8369277a1a139d723c5529bebcfd40a9d168dbbe9613fe08b28a8e98c317a6bb1392aa39e0203e1f7de6ef6181f96ec520b518375a362344b9e08a43c374cd2638e52a0c1dda322dc46b3bc9c1120d18793f96f0e911102312f6e2bf0b56cc3c6ab6aaa8c3bf7f61be3b1f9e410e540de3b0084f35ef7f8ce7426ed3713687bfe53172e7e7e80a409774fa1578bb6cdfe9499acdf29e0af32117bbaa40f7134d25c23bfa322b0279e1ec6632730d9768f27da21ff481f777a633a042c223505c263bbe5787388ae3cbd95ce29ea5ca08181383fcf77aa8ff293039670cca4a64afb79c786cd122dbdf960cd3b81b862a7473d72342b8f8d8c46d6b604245d48805640dcb423a417e619ec3ee38f4bc557a4c700f4e5df3a685ede647c90427724265e2473fde973b3cd3c0a2f79659ab360f3a051050ded822bd8ed4edc218a893cdbe10572745a93a6 +shared_secret: 1537e848472d0efdb11567f6ae943c8d16d37f91285fa7f77bf589ecc5e33d10 + +# Official test vector 32, seed: "288a5f2684d862a86d2790afddddbac6fda934ee7d2e6da1508bb550838609e8107312b28e00a6c01706374ccd3aefa7" +entropy: a3963ade17d69debbc358dda82c7bebe2c39d25b36813058e7a161542e3f8c2b +public_key = 26c68b1ba4659966cc95d79851f03e029a736c3b4809f9c366093967c53769b4796ee76b4f1277f1407b8c478fc1400de6415c2a231727303c86110af4b743aa85b73e38b41b819021b07d1ed5c6c171077e9c9b6a678d67b94958c66921e9cf0f573585bc3b47323f32979b91c411c9133b3b8b03199179c6f457f106be4201bcf2d142a4814c5e166c17680fdb2a1296890a89c802120585951a9051fccc4c42001346c9add97f93191c720466f95c5590b0cb8046a470cb50a3716a063135ea4a0219217b4d373efac8625ef44e5c0761bc0404f4ab87bd8abb068c07da5c832de7530be88532fbb5d8eb5c6023a5f0db1aee3a50d2864601a579e6dab597d6cd29208c48f075d42c6b27aa3c3cd837e224bdef354e20168c03172a16973224d50cc0ac7f60fc9b0afc7f399c29a9509f9bc3abe7298303db253dc04a69bc873e874a43dc28fba6339e4152e4399a3ef1055bd81099b33a5087b816ccc668a75bed05650d37966d058d6ebb2b3a819218036c2ba064ebac797c671ead151c121ab88f6c9395204e714310a8293c64bc9789864f93569ca043b856c8412ad985d8206b6e7485f1956d7e616104f720e76459bbb0c874e45479e67233137875c82dc6509cc124bc184a3dbec02cbb08b989103fb59c378670be58f0a96a694d71062e6af424b6745fd9130beac38d297a5f1ac783ef064084b84aa06ac9c2680e8db2487cf43bbe6b8574311a4bd99d733a1b6a751f68401938f4091d25837120664033770d476096e561a1b03e8cc878480a015225cdc1d0719be196b4aa94074c290590988e9b4a4ebbb4b3e5477483cfa6860219237924641cf9a2a7a1219a8a87bde9d08166f0c3081297eda4737d082ac5617cc7c36d428b9dbb7237c122676ce932fd01aac625b5db503a8042c0112714eb43370b5b5bb0d53378a5b6f738c874dc7a7f1c15987c28112857a4bb4310788375d9aa0e60c59958c7f0db809f688f7640805c334e9b1aaf78761d5107c12618b81ba12a1258c4b0123eeb570ccd9924084b7ae3473eccb429ae0c7fc059926f25542911a8738b0186c404f2f107716b5d2e228f91306e3bda12a9b281a598c52228330ef93962d085adeb6beb1076969844e1980295964f9f115840753c15674c86119909d111719182f880ad9ee9792bdc128a8c4df1da9b3cd43301037b192abdc694099bab87441113c77a7f7210764cfb463a96c4007108d4537f29d4859d305987930fd4d94c796cbd55452d10e9b8723a6165ccca8dd39741e94418812291facdcdb453529960d850a40745a022643cd1cb70ec330a6e190ed04963ee28cc774198914b5bfd7c43c6614007d49dda88c1d8b42e05a388f4db09ff1a394b01547155c79ff4933a28568e172133515eafab53b86a078a1a62b114b9977465342a61ada1a20c236d3778250eba35f8d36ac0d58c91198d4974610181bea1cca0724061976a7aaf161afa1b111f0b0e5b835ace9ac1fda361048a9b0008096b41bf7c619af3299c5abb04499c272211931f7b6528c17d5f52405097afe5e0c6ed2aa2cca7915fcc2543b4c8268256cf49936a858f7401117b80b18b081e08b45a0e828bf830c13fdc55fb468d99e8107b93616da437b90a5b52896330c53cf3e28bd3799f65f28bd5f0406638c18c8c9838c555a9b015dc99a61ac330fb11654831571fe667f208689d1c045517af836abaae37184ec603d01a918733362942632644b9b3826ed0967e6db05a6e3ca77cc1604174a2aab6ce72fb1eaa31480e235be79c1c25832ccef512e6c65261f2c485cbccf4062a81912abdbbb3c98c5a6912388a236161e7b8283965536908c0145bdc170bec33c5b2e437628b452aaba7f3ebc8fa730147469d63eb8294fc3cc9096781e58d0ba64d6dd6837812b530e9077a5c5648aa6cc024069150c5acf26d3cfa2d658ab18b86b1eeac4ae2422d41704b9982c8db14bc53e0721123a209d67999c9035ea07f3485ac50e35f85379396c620ddf159c3a4cd57fab15b53c8f2e6aee06c6f2ca02f0d99543368ab70b9bc3f655830d7cb47962d7c3789ddc893ab0a1ba3e1170590249a594445135aaf71a902d9aedd178d88d980345190d72b710ba08077fc868e86713be6bb45652a26c73ca91089040322801b9c68de70662248670f323f4233c1a3c0937dc86f0b6476d12f426868be1b +result: pass +ciphertext: 99ce600c4a66fb31f655570dca9daa4ad7c548a6617019fe7929426b3b0b0782c46bb60a9a618a41dc2adb77334e9e20b6fff08f9658767c818b415399c26a69d110f8a36406e1b9e4f18e79dbe98ef3c5be1c71bb9583e94a4bae18e786d892bec54bfecaf15d4ec112d034658d27ffe26cd690e5665ec07504934029eee4314f49ccd9c73747c089ca0744b2c43298a17ed480859ea7f3ce9ba577c3da53c84deb0d34d78b5581e76321b895697704dce1e36f30b3686b32cdb20c8f865b7788cb93459913bb3a623904e51a106785dbad7471e269c333ae69990e8bfce1a8f38ae3b2d5dd68875e5abbaddb4152178b84f62df313d6bf7e4c8dee49c84eb6571585b9b2b1aff78e5d5c2192ffb0600f3317d9a14217b45edfbd6af064e9468fd2838fd83a0ee27e4fe33df64462e5fde462c3ba7710b1439a96f4c93d14a97dca88a45151c4ad8bb7e400990f28a4b98bf6a4826058f87af51bd1901ab37e4a7067e01b7ba1bb65ad6efce8c79e35a7dbc707f64c7eed28a91976a7026a1037e353c2e17753571007ab7b49caf80b1f35958b0308aad971b0b36ff5b95a290c1a0e2ce9d299e8cb1be448de63dcfa467f5067736bb649988c020b1e2118633260e02d9aa0a6640fa15a85423c7319adfc43ed03ed4c0f7fb4a67ed3ed9ae0024acfb75c7f421af32f9559fe95e261d5cc1df7da8bded18b1f109325105a59a3ee04d1bc428abba2a3411f6220e51bec19056d0eb2da00f78ace86ce7e22a525ff0d8f0aab674174ad1a1975f5ed0edf8767733dae428d9018155de34665090952cdf1cf93297dd65aa50ea2e7804536f4037a819ef059423ec0d235cbf71b0c870c6729ac1241431c7a9a9300a9dc4386f6d9864e3324dbc4b0f7357b98b65d489fc05c32302d8b8f33cab4dd01e1426ee197c2fe4a2b79619fa9113d92d15ee3df01c31fc33a0caeb2d7448282bd56ea9675b56b34ed39072dfd1481ae524459b6bbf81d3acd8bec34a8fb3acf9100c5642b709dc8e6b8c90c5a85e975acb13e9ea501301bea7e9c2b87ae2c4217e4482c3ef609fb833b0258505aa7f0c65963b60f1a4500eaeeb1ba0f6b46a0c4b58d28b16d3b86073bb977f72a1aece3b05b4662448a41362517da77694802bcfb1c2b413321fc1fc992b7b09df003345ffc0a34f76963a3cadc10610ce18f7a89835216ba09dac2f0a2731f9846bab78a0edaa1ad9bd6f63d4a43143b31a846ce138ff97590f60ab7347fb272be1d9f35939221dfa49d9ea311536def8020bea5759af8a6fbd34947ff6c812076ecd9fb45ae16b69efaf9ace46c9ab1a162490f8552ac273abb174ac4888ec0db9957fe3db777a2936291762fcdbd52e0eb55f7787225ac8e0ce9dc89a124d975177404c6a557692bea069a87f220a23ed09d24001763b37c3d0e3fe7c981beda9c05a78d14d6fe23c6fd9b93b45274c13c286d8e4034696382f3517002a564f38577df0cdc2f80b323fdf0d0df3bafeba4ad6b012dfcdda8c61bc4d60f6f635fef5c3a74dd73c4fdbd2988f142e2cad4312c4431e2808e41ec844f736158c23e874bee4b2711be9614e8cf4541538186851696ecd991eaf3c26a2e88648e310b35918c27058303a6f9ffe23cbc189221841299178d54320aef48ee89e7ef580609a17dcf8d31d2e2b082ccd6cb374198e06239db17661614e551621219900a778019c8e69a21b0e0dfafe27bc2fa3f28dcb07697fd402fe0ee2414c8de7086b69e1135c6a8824ae48e33624add195ff04077d2afe4fb79b24155bcc28948e79ef03c7b5213a456765d7b7f3e204c33b73eeb70259aac4f92728eda87ae7676174233c3d7ab43b1c47e77506dfea9bec8b5acdf0dd6ef8fcc8a8ca8eed48db06c367f9be106065f75bc55c9bb7ff972551243148b41bc54ca633c1564721ba98e151883847ba11beaed5ca969ca174b3651d86e14fb765e9523201679b770aedbfbcfed91231eaeb3da9d76c52b2638f539e80df8036f5c0e4b14f01fff3cfe9562df159f22569ac29190800b514311d965c88ede61188ba079717e213254c6fbd3fb2ac9922fd923dc3543210506fc41abea6a6b26c62ab02c5112df3e3643a914c1ec0fb6e709713f5e697f8dde78619034bf0e52cda5b626d5f1f4ae6baf907e3a3ad9898eb13fb1fc5a251eec7d039ce105bec76332cc00dbb74b189b202721ba +shared_secret: 5aad40b5528d175e52ceeeb0e70f31d8eaebb691d69f87029c966f191c6e5a59 + +# Official test vector 33, seed: "4635dc5bb92ef98cdb6220df0dd717c7f8158375eaa2b78fc3f0b58e9c9653e92684cad3461d9158a481da3d14694c44" +entropy: 97beafabf2c8575586487c7a80e8af5fc50f94b6051c1bc66a5ae9f66be3cea7 +public_key = af6c50f1421cc8e1532bc6afdfe7acf2a43b34130fea7ca5b1409ab0f10dfaa5a5f0e7b9a62006f1c53e82b5c7ea427009c990bf31a939ea2705630164445715bc5c80b3906739c46a4c4cf1024776037bcfb0716d1ba00110637fc177fa1768e73cad8fa4777e13aac74338513c516715b645e3bed722382950b132418fee81639d448eabd55a94c66a34eab68ddcaf1c756a4907bc3f5115aeab5320f3b9bbe84e0d885fb784af7fd8c1eaccb37642cf39c8a24c4903a7e80578ac7e9f2a95cd806caa200e23873f751636cd606d819731cf1b812afa2ed24381a52b4f5fba658618a02e0418d6823e7f418294c81032936559a77f9c014d8a3b38df8bb17b7a8c3b45b53ad60b0d9929a21a4ae3039366f894b1082db5f3cf2f13381d53827b5a568fc5234e099d6b94bc1a013ddde944b4ea13eb52bfa880716b1a10d8827a033878986155b7f2944a63a2cc32bbd61907125475bc09b0ab76222cb4c9f2e80a00f9b71bf9705e3576b5a96f6229ba1ce06fa1b2079cf66c59f30dfb88c1f9412b0b2ac059dcab8782abe57209188bb938d08bda140a0eb08de0db3f8558c403c725a77aa1e0563a54a77f32aa30cb780f4e562716075763e9c5d470564ec12cdfab424ba970c51201081193741a5e358cc7d63064a7183d99b28ddc5b0f10374ea9710193385b855a259130bc490041f76a9d661483aa668aace51c616804b5e7c1bdb8762b73b39f17785af94b355b0fed72083c2b71efd1cd43c1a9704a93e0e5752e99a2ef115b6ecabc74cb03bc091038f5701659a0d4bc693805080d6a5c81a0273be9149861c461c47cf496cfb22526d3fb8ba5a3396dd19a8477611b814b76d5c8191ac1c8190ac3b12065ca4ccc879d5f34bc4479a5c8d4693d8771b434c4b8e8b8ae921e01a131e9410ed11c505d226722e011f2073b0db34d10c104afc2656dd053e43a8db7c00fe705b0ba520980dc71e834127c08077806cd8e82144d50448dd59a085776dab69e42db0e7e8ccfc010a140b50b50e09f233aacd3da972aa40f1d1241d718b54b6009d3daa090186cb167c1ab3979c8356397e598502422da2935edd9c8c44b90e8c50473119d26e99575c0c328307e2017b515f33d4d2821bf341480780b21d37fb6cc3049324eb12a42c9f7c9e086bd0f39a1949058f1d8c8f0739c23fb1dc542429933080ae732b750af73b05df6b46e0f27b678668f9450c193c861e7e38d65e5cb05a52f62b29d21b4b33d34771bca88b3149aceda8553c5813bfa6f8a99c656601fd6f4ca7e54cf80e48fa144bd996bcf41e49aec97734687a7d0da2c71231dd841c8fec9a8fb686a7cf81106b16735d6559424c1ae7a5a5f0515a8074bd879c1cbd6012a3b5a7079bbeb6229de7676a876c02f1620d04905341c95ce512d20c4ca11f7c08684473a31313640760d24b4946c0268c108a8b96f699634414b070444480800c6c3d4bbdf339c47e9b1660b9ea039bcc6836a6fda9489e76418047eb3e99d40aabbdbba140221333cf1cf2bc121318aab09022f95c31b12abbe67469bc34ccb88c8a0a965902e47494c7a0bd573910a97377b764ea7443e73346ef9bac0376711db236f89a025d9b09931aa473ad04b351a00c5d3b969134f03c1745f672138f52ba47a542942c1078892ca3b9509f435d8521a373810b12393c8eab18fe7b6f3f4ad7ea88b88b21db46338adac939040674be52e6c2948fd659935a86691f076c7f228bc5874fb8214ece1947f68b057411c218b776a332f5aa351b4d92560a42346180edb08bd57f5342773249fcb1f036955da0269695a712ed852a35a3de8662966c0b2c2038ea1ab7b4f9708c5849dbdc6a29e734ce8db1f447109b755af11976b73cb6c8594a5de221c44b61b9d425280007ef4ec4ce3b34beb733cc73a1a7f6857218476adb0200d96658c8456576666b6d7c06da03663191e649457d298b81b067789c285af151ff4b97239c35ab8688a8d6b4469fcc7e42201d5d57bf3cb98c883c5c9c88f05555674e7a1bdd59e3f327b69a74f0d4a250aa89fe1359e5724ca02c38784a14690c62d891364b752ada80402128c623d0839a0f09bd0e6a37b724070a4356641c538415f2a97701c5492d29a2f2823884496af9dd06703d8ac2c17c4ddf5561590b63ff78c4995a31a18d861a91c43c5dec3705c6112d81b81555f7a3b432f +result: pass +ciphertext: 6506597d34901eaeb07e2ba2d0a69f64a75006df37ae149cbae6232dccd9d62cdb088a2c55fa3cba76155241aa2827d1f98c5deb271240a165b0cf64d3b7584fb580cb93f4f717fe7b50c30e52fe8f9b1487baf0d745678455096949aaf46402b8bd5f8945251c0ec00458e6c347a123b47350f5b35a7c42f0d1a744637e7f2445134eb74949e95f877b9dd9c58c3ac30ffd248e72a8b568891d1e70e0d12a8ad0f50a8fd455ad503a901d82ffbf69fb75c629a9f6a689de28ba150eec51c66dd0d49dee6ef4e10d0bcc202420eba18a9884fd4261ae8537cc90a6d3d3cdfc39415151609e506f789d7430cdf4ac700a101b40e0b8142dec62a1c9cf29305030588d21a01fb51d6e91b848c198fb37f2489c7139882f032a116ab707d019330953bd8698ff5e54e34821a448a891e74fe2d6971a568d416295906a232dd1dbb5d7fadcbf2f765ac035c2df1298e46683be665cd8f8dcfa6e4b7034b468e0f53e01ec07b0622c1314d15df534fd27db47ce8b18c88ed6f04231db94cf59889483b29967c56a7fb98945cd3ec21ac881675f36593cda7f20433b1c7b2ce7e841b76878ae25883c0e579a6b4f848aacbaa55fe1478ad2a2e6f1893f7154b53f2ea3aa8fd05cfe05fc921852ef372ef28fc6f9a865c055705e4770b2f0e0af58bbf55c7b3c8fad039be3e9d77219cc9f1883a3307641aed538368f96b7f6c34324fd659e2981bb1ea35085c076853b31e8dcfe98099edc6f78f31a90930f12b7a02c655c07712d94470091e568b724dba0e53e8c726eac8018fbfd95ab92e5a8ecf14910bd306b6de6e6b4c95dae6257c0aa9fd8342fd62b96a58322d559146299e9cf70f193ad3dff5950455cfffc2cfbbf21f322ee48305aa55f81c1296fff5fd2cd8a4fd56b40a6cd17d2237880d08359ec9d1950dcdda8997db7ed75c3700d2b896bc84b6a52e0189d1f23df4d0b522c474d5962dde1c7a176fc3a3a2687d732bf7c4597aaf7258f40965d3adaeaf7846e3ec496f39ac1eb7e20f95ac719f22802ecd32e1487b9d8618238cc23ed2e3b9e0d76ee4272de5bafd3190e7d229efb57451270291ca11a82ad0512a93afa24827d8e6d7aeb86d9bb021df121273f424f37d4120872e3aa40974e1ab9cfb180b1d3795e35659cb77a6748e2c68c30f617f5e26b11d5c31ecf56d8365df6f6ca6b6eaff107339620b468e489c2eb03deba9fe98108777ef9397ea0ebdb7dad462df11c52456b0bf2f8f04c7c8d1d1831d99d9596d4e65dfe49446dd91503d909f04cd04251af58ce187027fb587bc9dcacc90145b7b0221a142aff0cf0273d45236f86d4bcf1615685f7cffdf96c29ca4a7ed8ed3dc0958cead9dcb5095fb96fc3afb7e950ed9f2fa342ee8335e32eefd5b932d3859f1408a6334b3266259c86640f8e0dc41f1c7bb05cc7a2f9d480c372a854270f21f13329f7b6e4c711627929c9df3381578acb54a29dffea14280cf4d85829d1289f4793daa4782538518dac82c44e36dc46dfa839ae7673c6388bde9842abe646177f92b4868441be5b82bdcd082a5f2cbfdca0c05ce14ae7689463ba62e773c1bc3d9614907dc86f2ae02fc2823b23000845177a0696a89a7a0b8f2ab01f2ed2518d9b20c73adebbd40708974bf59adfea03e0461ebba4210b31056885a88227e4b9e775339c2500b509e5a4c006115d368e3917cc539e855ab51c286fa71871a2f7c9d42ab8cbcc5a39976483f1fd7524250245318ed8edbaf4e07d8f7c7a5a0e34e0aa7f5d1cc2da7adee0ccbae93b3a723ee56657543f0a3642c01f13f84068856b331198ae9ad6badefe2238c7170cf884dfa96f4ab86a4c99903d285346575f19e8e8319a284a7f67d6f56ce78c5343e2bd1a25a52feb56769e2d1041679696fa45bb8d5da89e5f55844530d06ad5e1a2771eff0359386212d3e0d1109564c6c9176613f9bf2f994e7af4873b4179591b583eb3004d1c8e6082adcc155b3b916032b8a2a1e52907384f16af21b6ff4320c617187000be4b0f511c56116c25508e29fd0e76e6f062bce64c8786a3bb382835a970c2741be8566d1f7ae3489b8a79228f0897a85d60aff154596249143447db552577ebcd611a63e3d92dbb5ac57d87d9a6dc92cda84cd008d266c481b2ebc3affc084857ff44bd3e04d9c47e46ea8580ec2c0eec6f4f1b97bf4b020fcdf05e6cab506b9e93 +shared_secret: fdf3ed80a2b98a72be0cc079b8e1af0ee6491fee10520a1fa694fd692d70787e + +# Official test vector 34, seed: "5da2c51b4acf488c8bded5e985cc4702e4a7bcb248b5ac18aaba529f7f9cbf30efa776e99f76d5c1686e94f50fb57dae" +entropy: 75461decd34c50d6a094b4a64fb75e5e9479f8f9250d82bb7d729dedeb2d4b65 +public_key = 822a87a132c0b9e3c13bb45e2eb5bb47535099e37019b3c7ac3b81c6225dcc65476fc12e7a81cc80c9a508e507f201632be9c1bf27317fd97275cc3f481bc7c5c25a4b1462767a42cba43b152c276ffc8db55a96d418246e0bb7d5a15f0d883597e9579d675e816b8333097787c613cac29427b11739e650cea2ca8b198c0158caee9971894b67332baf761caf88c16bd11c9f1dcace7b83a6bec71f0ed9bc28f706c38b057231b7c330a4b99898037720cc88245f8982daea502ad30e315c2ca477a3f045084356cb81184ed90734e0cbc0d1553adaf5a94c2a6d8a51566997c735bc45fc408241357da2c38c8a0520fb5a33e1d5c06cc80c4e91314d08599763232517b501097e4bb09bf814a0cdba619c701d249c933d143bbd92c163724b523bc05568a410952380177ff6084c6416bc22c637b7e1ad586324103677101a74835c4255b89ea1935ec8b8382611bd4dd91931c436f9a909af4747dce811a2ecb63f046b411a201d1b4f12442e73d7703e22896a904736308453b946f248a6bd11800797886af555b0787d84daad7883c0e583a7b6530c7d0a8559906f0e423e9e6cb600b9917768777b7489dc173fc67551ad92a26b054ddf13c4f83b5805b9b7b9829513611e171b9ea358abf9054ddf02629a397489dc213705a9b86735577493b86c326e857eb816663dc1417cdac788900c8030803751bae22292af87cf8fda4f2991418948c0b4f54c19163dc4b195b76cc5def67b5288bad948cf214cc6a11c6e1ab1a5b9b1501baa75cec23530c091cadb8c9a02415e816ebe708422dbc2db224b74ba1b83327c8b25bda3cb7127f5c5b963cf3c9abfa15c952bdba2acc01c9d377a89eab6a96a65cfba3d722b6618262ea78770d5fbc556789ce4d13bfe02065f033362124b84560f462c64443b88f3135f585a3b29e450c1dcbaa7b9181133c915522a90f56e595ba11ec3327e6a83c7f1ba59951c4684995ea64edbb3451271a878e42be7d763b27cc430ab6b068173b973141e0a72cdb185b263071d20a8f5a37dd08ab6ea7a2639e0cac1790d5573053569addc1731a339488268873d89a1490b78ee404c2e8328004d44cb4521a68737f195634ab659b919a94e268131ca290e59756311b6273b5dfc2c3adb21534609cb2fc553906a14d8c079f487091587943df49a39d1b465952efae34d33fb9ade56cb6ca9cfa8221458d9940d4bb5f044297c4160a2284032458bf909c31e47a27c7aabdc9815f1ecccadc6288fdaa6c0316f2cdac38ce89fb31cb81b673f26e5709e08c474cc41f213b0fdbc5563851bbec682d9051a5d58148a72956721bb96224214d03e8b89021b98b9a0a87dbf15b491125bc07c6ab6353560d61814ea3cb2e72344104b06413f963091802413521441da171e6b6b039391842141c87c991a4157b428e35ce499a805e2c0954457582b6a8f52c4e102bb33cb01d1ba883ed4cb126c2137a75aadca26852223741c07b027a1883220ca9a65585a5e0c0847b9d0013f821bdad0902504785e927016328c99ca1f3d2bad906b3cef04a3598b2992b2c587100533bcccd15ba1aef877c3a565cb352b7b856880108fb828b42d3612473970044c6c4a057f18ec13deb2c398393c19383603c183b02a461bc9b8ac0969e04179e53c5a8f54a556f54218024041137448d08401fba8e4bcc09cf3b91cc28ed9bb700cc74523c251ad3a7c21f43398f85c7941387612c0c76a43db2a0a368101e88480aa1a5f1500b2a17b5704299d5639b477802fef34bcfd548274d26c476c50fff8851f29ba5ad66caf066ddfec2140dc97b83077a9e21bb4f87aa85a16a7107e3597a1bf4a5bdf008c14bba230cc95e6071bf0e6a25607566c9008d715223c483dfd6737e25a2dea490eb5606c6e32b8063128bcb6181166a93da7626c4273157c47b5a2adb1d88441e76ec9fb6efbda9fd084b496d5635794aa23a43a8c4650e05bcc2e415d775971922b1a446411f952b7e5540091a430882067c0f008211a705e4842789ccf653bb919e742b65339aaf4653e474c10583d9329cadc47a6ef20589572a2e6e4ad67d03abdf7ce1dc9015ba94ed9c69220d63b423cb5daf465d5e3a9d190a6c9d84fb28141f28990959250d48162c68b813460b04a78126e4b2c4514d83cda2735e3d3f1889578b626b002cd859ea9ba6fc856a8030f6010c780 +result: pass +ciphertext: 83fbe3b2e33a13730c0bd4e1dce1ef7c4adefc7d62d5bf91a540fef7010299009c7c2b603da43440fa34903d6b920aaecc99a68789b13ce11d43cc05b3b286589c2528480fa0db9bbccdc4a29a63a6482efc4c82612b3fc4152648a0c4a16f1d74fd2458240de7a72a878773c962fbbde1f83801c0a8044282185d20ade7882a67fb445440bc1072968af622305106ec5fd6884542474f7e28ad36101bdf31d3f5600ff4f865e68cf612d63868ca95083971c6aa06a93b5fddfb66a682874a28e5ce77d09953482ca7c917daff026ab259ae6a9580ed39cf94d345bced2ac41ee4bbf5c33648c4849e2a44acc344967a5f13367fa5fe3d014698040983ec41d09763f087496499086e8fd882eff48d7ff3655a9fcb87028795df440cb4dae831e45ffc80c2baed790819fab9ae70beb4f3b1a8abd7fc86304a95614e2fd59769ecfec62511d5ef0276bd4c7f75fdc8af140638db9e948fabd756ca0fd5f21959d6ba9f5c13a6981f83cb9808c660b3b67b76a6fbb5660a8997d362968134a92b0c14d255c81db897d7ceb9af1af1eacb8f42522fea9edb7587e46f50ba817350ff9cbf3789728d3ceb119642285a7a3d025488a3aaeca3a2960c7444f9c686530f1dbec6eb92dd7731e60c40c58c137e7bfaf027aed2a1bd28fcbfdf450a5448deda62d5cb5bc6a0cddf2453d34c7011e4924606727aadd0e29512f62fcd5f7f26a4be5681e2e598d281e0102ac16a5e87e60e9cf97980e8d0dbf8061c59132cf166872af741c08af8db9236cf3c0b6ddf926db9d620ec8f507e6b52bdd3a26b2bd39d1b06435b5696d388d8c7e287508c3aad29f8c49a580004090fbe1ee07a5821e4bba206a91472507a7a58aca5c54652d4950469bc060e498d38f0a5e27e7b1e47c5f1c4e9c5000b16899ae3fc31e0d0561f54fc3846fb9a618eacd102e39ddfed953bb5d7180dac7148a21c0832a2f9a9deac049fdf9a46fb5fb78cfadf42244ca05280302b70ff2c7c140d6b2ea6f0bb296f8231fad365b6561b2c0f7a6b8ba9e977b153f0f33bffa14a6f01c28a733d6a2829d407908797efe3cb345722271022311f1d2df6b8f0706f9ba5c423248e19a76fa65e9ac7df98a5286f172319e874324c92da7270cd97af76d43e277c59c92346cbc3f455b463101295de98109d344ca04049b4a3fed33587cffd19fe562fb146fa50483f471dc594b75e75d179e0d22cc294148ed3bbd1411496a2f7ae00fa964be786a97619ac789587fd34e6793a1ce0ab1b69b27e42fec77ebc88e5b081d5cb031cef71826a54c23ced97df258618f038d5c9aafeb0500a0f00fc3bd375486fdb1567b5595184040d951a925602a7cbca4ee8e39120f3358d8f6678887eb8aae4156536f23eb2c8e558be3b91ec30304066e84f0a7f77b659086f33a60b757c48e2766b4600a520a85823f80059ac237026852430901403a2ca29e3d464b59c65a910d54aac7484cb1ee04575562d19ccdc89e988a412e1fba496a7ae800b2e7c35cfa106e8c33a11841079cd824c17dc4c0cf0be4ec83d386c66dfd5660e00fd24cbb89e85df49b5694e8e985b2a3575adfb142baf10ccb255a3718d74c6e3f40afc0252e6c610509dcab44cf85c91dbe471f67753d65ea8c83eccbc4ebd8a0b31709a297633ea73e9f280eeb9aa4f49ee249ee028b17dc9d5041762bb6930cc94cddd248231df4da3e126e1f50c1df527f61622fa86de97fd8c6c21f8c22146666ce92ab682e0f7cab45b4901bdcdbb9b98830a97aef8bdf98b1573527b436850110a6139c5ade2e31b10ce7f1aa9d966bab3b7ddb49381efe266a94cc74aa38fb901f5161fe18e6476ad4fdc5d4943b82ae655eec0e155dd739fb84d2d64d72cfc2d6640f52206304fa90f05729ccbaed580cebe61a666e114a383b9f212dc83fe1e54294b1281518ce489eeff4b22cb450489bd8c9eff1d79f5fb3032463e61523a331fd92914dd83e50ca25417205b382b42421b4eee89ec3b1360ed68df782dfe84710fdbffa1bc6802ff8809205f144cca551554945695d447f5ca4ef8808fcf06cfec427babcd552ea0551823d12879f9ae5e322f1d91b8410371188dcbdd077cfba41b219a125accf3598c7ec40f866cf9c30ae13f704b800c19145ad5a2453261f02ef3afc8f94d85687a43c5712fe8ea3ebf7d5f377698a556435c90ef6213abbaf55f +shared_secret: fa205e16b79ab208250601b4ec37f6a13f6851b94d93a0899a395d623f543836 + +# Official test vector 35, seed: "4d2239e84b052109a78dbab6d80c51a86d38248105970476b74a0b78b9cfab6283e30d5a406fae1c7f54f8bae1110ee4" +entropy: 2607dcf4fd6ca1c614c21b5e37c24981c32b91c8c3e6955777da8a3f5d9c9335 +public_key = b9c82a0db31fb3c6458ef4c21b5663ef7795f4c36ae77a85ed8304a4066c48741323ebc5e5f50d50a704de206c4f6a5719b27b8fec3d95e77f545a7f78c57a9432a329741159808d255232d4288032d658bc483d4afc3d6ba94f8bf44b347a8fd4bb7e2e4000db9909c3720920a410a46905d3a34083c3484bd2448f232ed825658a8b25d99c995be0866a18c01274607ad6bc0154a4fdf70f42768a5ca86df321327b89094383648a236d8f74bd3e3854b110ad8d1403e428a73d9a13cf29a6240c30cc53532d60152ff560d1e3c3205ac557fc76bba0af547c69e9819d1ca412088a8665863f64cc98f3853e2ce115c4c3080e002542714efb10b8f51a59ab954885b313af6000fb8c0b23bc59ae73948e8b30213c84230098469200c8d3aa1f68160963b4dec95c20c8290783457c06b7ed61ab17077709591416a422e52a2afa2c61ec4932df188a4a0c056dc854acba8acd5298a6cb2de04c7c3bc7bc724157fa2b9d01c9bcb0624d79e52988a4b783e8a6d7c45115c548e0eb474368993d971e59e96d5c2a9341b40f461752dd73cbff7543031caf370130311c458684a80209565b754437926bb20840aac329392cbc4f7022eeb03580696b239b2993c9927f649aa838c4e88726f9633b8630977e85350bb25c130161b6c0298c03bcb387c38b4853ce8258166175623107f3d4c5a4b266c9978154e710f11337f05986e921b20d1c02d0667b42d1a4f09231d7d8993263a2cef7b3e5f153aa691a12b7ad28513eba123945f0651b83cd36099047b997ddc5128325213875ab7ac39b6e969693c4746f19a159b19b7911abf45a9215f5c9ebf60c46f254c27285e9491486773ca0f8848e23bc16d83155c302d0e42504762226701bb3a446316b9199860b824c1bb5bb2b4f535e74c493a80b3faa5b635d65364fc241a2e1366f3a2ae40ad07e6621ef64428ffb6c86a1883aa20d04b610ffea3b48e88e6073005e281e91d65cea99079e1846ce89c2fffc8cb38932c00783c9812d26f91937e6966dd2642bc1b494775f5acb46ddb3bfe70c62e2018cda8b16ff762ec3944909d034c27ccafd2803e4f392fedba006d672021a8eec76cd2c5b1f2bb65737a5369365c8ff6231b7866973201853d7538b27825592629c7812dda74b795ccc56fa684e8244a4b204c0b2bce93100a57c02dd13c5af5718084042e9d809eee01ef78166d5579fb0702deb07b6708c7ae2757a004d2ce31921030059c36a014df0178d59c7a7a7b1c3e04bfdca8ad4697bc2a36b5a213900249ce02a678009a4c9f8589bc24810e611a942ad468a2ae2d8af0b3b3a7d741fdaeba89f3b6c1fd302dae37f2d54ba53fb78e040991f4c468bc2b6f527cb985a9ae19797cf845c53803d13b267c8f31e4382791f0a7ed27a96ac609b40c8bedfb1a11d8c244cc85f4b692607d72f3cd05b070b5e8f4b7e0ba56657434296caaed3928f32d526cf0281a57960e5c55f6deb1636494e3d618d1e4431fce125adf544b91904cef045f1d088e159a6cff792ff5182386a87277953b4c4ba3714c20bc50e04c2b2b628b147d07291e24e18a6906b5300393180ed011b2c458d7e2a1f4604816a94b83c93c5160b740e3640707a4fe8f265ba351f4ff2c7fb75baf8980f136b2ba2e81cac3b27c2653c89b65ce236a3c0c28759b12275c4cddf5c14c7b69e951bb30459b150983fbc330db7dc3220420dd5e928ef5905a78a0b0e214bf1252765646f6c657aaec11fa775183c1ca3bb7261a2205e46d064239103203532556ca7fbf750d1f88ed6862ed02489bb30c976b4abfc0123583837a8db3f6a38bc5e9a44a990a471cb3e380b4508ac4162a4073f815507d33fffec823f9ccf17aa150a5bc7562a4e3f85995444c787d16901332989c15fdce4b43a215da66000525ab32f5b1d728846fea3ad2c092e271208b6f833e51c701da8854b867e0bd0234a3c9d98117c58ac1ac8b05f59f027b4a78e94771ee263792cb891e9d5abf0706f70f149482948eb6248bd811210765f93b4cd49daa19a17843e510409d6638dda571f680f02b17182e1c7eaa542e990275bd080bca0c793d3113d524598fc9dbc453a0560c556e7bfa3856570b570a1b43f82657458615be5080c89c0bc7e99a67a91bb9b8cb821e426b843f7542c5ce12ca13b5b7f6c716e63411681fef0ff85e8cd3fcde5abdbb9e4 +result: pass +ciphertext: ee3f98af1d174b594dc0ce0558e943a69ebdec0a31ef0b0c7fa26ba7d9c80a64208e66389bc232fb7847ce8f4c89e1f3b3d2a201ef4a055c07a82f6564d3f1baf47564d11d9274b4c69b30003d98aede74baf75c2d7d76f9d4a7af78031117732e4434dbde3ab4c302054dd8158e449de6759125718081658ce91de018cfe1c37577ea0e396244ed732c62d5471f7732c8826442a374c06ffb7bc6c7bdeaa70981e2caff21fbb2330d1013cbd5a37cc1651c3624d2b130475cdca8ceb4098045f63630c338c40f8bc07dfc5f97a363686b13b7a759163215a060f1f971968644ce362f99c4201b483d0bdbd7029ec1365efd2a621fa738438bb797aa2a030158a7fdbffb2a5f1b27cd4a356c7e1d7dcfbf1e8a8ff0ef52fb7f7088452d1d15f42545bcc78c1cd90ab4e4a75b10588d1303877e78d6937c009eb071493b27c27564899464288d4b65d2c3aeced1c7ce69e82935443e1f2560789e240ef213d4521fae62506ac96d3176093d79867dca89e5491cbe53fd78dc66e064b1ed8167fa6864de9f1c29cb81185bf00f6354a38bfae33d8f2306acca3131db5aef13bd0c3c55f02d1c069a21a663c0f754b9c4016239bfe691e50da24cccf54fb9588a280c89be25a48e77f9e4dfeecddb00a06911a33e9efd58ccfd170d19009ef16c3a54a986e55c39bce875a61786990a1d057bd9fe07d57e143969bb5553971d9025ce7bcc0e96d01a496491b0bb8fbf886d8d5527a765808f2a78590ad5c84b965b5535b82506857220fedb7a1bd86ee6622a31de73139fd143ea6b9845c22c215a890936af8765a58dcc24ae6ea2240d5a5667b268490dea3fb3252ba81e71953e4c25ada1da0191f26082d80e66e6d1469c01bbebbc096e2700d98c7b605593b0ad895962e183c7a0cf0ab101f65f2329eb160670dd86b215f27025ef96a72aa2666ad9873474844518adf83d7e6714951da83ad15c89882df4f27ddfbb8e270445e403213c7357c985a5ebeb1db03d1b34c971ae11c986089d1c7d4086954e7bb17bc1cf6d6c4b4df9190265e2bf8f0580fa9b5540ca0dbc635d1a6492cada9ce0ed26b029817e366a494bae2e7e5d618beb3e26f0b9d8985eb23bf20bf097a600d9a06103e20ecab5d5c933ad4e2c77d5e72775f9ca84c0e71d3400e0579882284be79bb3df2f9bee359b2172943b9f4c78e85843834fffc59ee297ef0fad3e03212123bb957f1e0475641f1b4e6771091871e05ff6f2d8313882453c0fc6ba7a2271cc2985835063c0fdcbd2947478b7c9c728f77154b731a1cdbf0d928c326caae6d3737cd478b3af92383b5610ae3109429487fe009411b3fa6eada1ccb2916b37f633e1bbe6af135e95b0f0e54f079fd86ad11129fc10103a0de8a9105480f0369d763161a366f78ce4e679f1a9ded37aa63353bc9f47a5f9b4c63f9fabb2a19e5003b703ecc93233637568d211eb291b3d03b5d0846a78b0f4c9aecf442f0976dd8abcb18a72b81fda3c8de270855587225539d117e2f2a7a135d6b879a3240673c2622fbb1db86fa0e5db9f19ded3215ce5c9ef0b8851109e0994dcd3521781f25891c6ac10b3a38b56eced9498662eb4ab65b8f3d3ce21837a7285a5a2d03c1f8806665b45357564cfa3035f2b8bd342a21ecf6b7897c8b3fd08afa925360c11825ff3e96133fd6cecf35151a95ec05b82e342f4657c297716131e65c3b346e6647de6c92085e6d2204496eea67c97f866fc1ca0e235ea457169de6e4d7a308e4d348ac34701bd8f990f8d15f3d7b5dd9cf3f50d41b9b2a10bfeac96b9438c75adcffd46a60b23f5037b8b2d0984be210bc58180669c7a12b2269538740e776f9716154a568df5dc7e6e3b329f77f69a7637cc78e128b991a4e1eff3d3d1409ce6b110b250cb8d3e092d48b9e33f3d2f258fabce5bd0957c35b47fbfc6ab6608253248c2cf3210b6261146bdb6818cec194f42ef1485ea6b467227a63d461eb7b617105ceb28126f99ae3eeed721ae0f1cfcd05206c207f895dc4183282478acdd1daad21dc0af197dd8763d943199042c4bbfdb84ca4781a3056ffb3031d3ee3d639683b01445a9d82e3a18a7c030da16375d7b69dcc5b533435acf8a3b08c56bfe07cad6795b5a1f794f73f94489579d70436a323ed5f10a9decd33f0d5baedbdb89d2d50b3aaddd515b9ab879e7e39e3e06efb9f9221de583c36b +shared_secret: 11e27d94d4dd5a8e8088e281608ed424a9384bfe96ffee3b6305d17cddf698fa + +# Official test vector 36, seed: "ee762f5c9021c36446706a88ef16312f4a12c725cd7afff1484337c91eda8e89f7007f3705747d29907b3fb7500e5074" +entropy: 38c89bbe7145c29e9a831c11431eb9929cb24fb4992db20737e4687d397fd732 +public_key = 35d29c0d6263d9020389240d058974e871ab8e433196680f50c7b88e6a3ec8764b4509c3764bb4db404a8e932413930dadbb5c5d60a01539763428cdffdcca2cd0554633367ad245e069bfdb397b803c68c8543583581bfcc9bb1147a2063262774706dab0a015e7c57e244b12406b0009024fc06181bc058b466ee12c3ecd1a983fe1bb030774db831ef1bb26539245caab4d9954bb01901c6bb66534b95cdcc92a1af075be8a949829558ce625ace38b1296a75058b9a3f90e74e04ff3880106869899e6844a6504b8a0cf99ba86c72cba26564739d0221fa20fb412828180a14bc570503a033eb379790a457f9277a221b75720537205cd19969149ab9d2b87a19250b595186454c99b46ab8f03365200424b4ef8cae2569ab4bc07b98acd2e50b0426032f967354c70b6c1f1a1df32406c296b0e9b8066904fa2184e0dd04ad5c27f9e952774bc82a923ae90888613144bbe376b38112a836b7d6b0606d25abdcec0b471a834fe20adbc78a68cdc5619089ae4f09b32947eaeda996adbcf131621bdb99173063f98f1380a324f84626212f8acca34205299399e62b321030191379b8bf96ccb336498d2a8bf573f44596d0db92792122026b61264693be3a3a7160a9e60fc1fc0897e5f602483d6c81f382e3e237d6709b82056976ce23d66b013ea48cb56d78d12c68dc2cc6fdc7aa1142548e1940e3d889c71e990fbb19d4fa0bf892b5cb873ced68516e544bcc4bac3734215201c617767757dd3ca2b0a5084002f175995abb6a7b88892d07b4ac68b974ca83f13722f028bad4aa9400f0b755fa3352c90673a44be327845d1dc1cada0996d57b62fab1032ccb6eb947646fa25d06495a6577a17d707b11c3e8fe82325d21dc2997d0ada9bf85b45d8e5431ce5ac571c253744108f91aba0b2868c7096c92b2f53fc5a0d996cd8414cf230cae4c58059177607040d871b8b1da28837c7ab177369fd2c05fe300da0d84e97497cf5f22a36b966b5872266202d207740d47c8b1fd118ab390cd5ba70bfd9a0bf8b59d14b165575a079d82bd0fb1cc015340a1c0a0c77c7f822cd2999c6f10b5aab063181775b7f42b2fbc813b2fabbfd76c0a5d4942df97c449cadac303ccf4790685438257a0093461f581c981bc61229c94a130372ad920d2cfa5cbec684f8986a7ecaa94275814cdc2d7fe403c933bc0038b18b28cc3eec9ccac49bd922c446267cd07b786de316012330ae70bc49216fcf6b4c7db2bbab55153e21089d04c3fde934955ba215d047398ac172c2b1a18c0597182e88a327d0f0968796ae0a03772adbb406a210f2e004810513f09712836c45cc11a0d8c8433b813e0e8aa380cb166fa93961a2b6765287aecace40cb4caa064f6b547f0084bcba7856898b221d362c9de766c7d447bc10925330ca87a8379ba944323c638f33b164e13731b0b92a134ee9d454684387790361b31b53c245328bb19185f9774e2764fd429e11e2a4851b222c4a9e504531fd962fc23852bfa3b4632aba9be4595cf5083d64522ac93b41c7409aba1b83ec51cb6a1c0bd0c24e35cbfff95088d7b6ec890cb5559c44553dc44822692a243d032ff75c7c08914d847551151052c6846e2f556201205dc130babd9483dc721d42f42cbabcacff1aa93d05a2ee54bd399186bfd4978a7a76d5d24008fc55ec40a6bdc899ea0a69ca22acdf8bbd14a5cfa2a06587728427865a3331c60e77b5782c37e79561cb622195656d8f9c0c8c2c560ac95cb0b986ffa0784ee17554cb2bd0d332645958bb68cde65b13d274ba9a655bcc8072d6681cf556c7931000b94a9436602f0a5a6fbf770a2b323612bc47190c9a88d4588d97c099ca04b3b7377867a6e68869fda2258083cdcaa41aaa798ea11ba7f6cc4838f2aaf9c5795f8137adbc4c17b491a59255e61ba078a9b4179cbc89cc3c9946c65efb9ca5ac5765f3570f673ac80c1d26b5af8f031266c65b4ef41f7923af49dc6eb3d0a0eac745aca402ed4b9b2de754bc3b7a6b54c2159baee1f560dc502e4ee6b3a3d6b4c1ac1e06dca9edb6775f5696cf91acbd9293be7a82244234de9869afb1b2696300331aae6c9332840145eb16b016f8714fc00020d429f75231f73b265272a936e404f0d57b79c6ca8c25cb7c8bb89284c4e7b0ba9eb33c0406a8c39eb0d5429fcae286a9c56be5839c10ad33e8a58374dff41feb +result: pass +ciphertext: e08924a91b398adb3daac6ee525b89bc18256d7c0ae328ee197c02c77442f97841b0ec33c6fb217d3bea65984c0225ab052b8fcfa3955809b56cc7565e97037664738cd195dfb3ec7e0a2ae1477664913a01d6d15362e847cf99cb88d3f8da414569b8cc5afc61490f2be47d4b54e57271f9ce5c8e592178f070d4feb22d003d0224551bb529628357cc896433a87a5cd7ed2c051bc8b0c4bce2256d04dd6f33df91c3af9820d4fc5f99a15669a0049f3dd2843b6ba5022cf0ee81f1e17601c1cb567ceca60d6092c100944c1e67eed0a6c9a7a11d697231594eaae2876077a47632c4714b4955a727ac32f2ecb48e23698b47583245cc7d830c29c408af82653fe37efa53d46f71d22cdbd477ab034386c8241f0bca25ab3a0182b7fd28acd4b1e633f9adedd58a069bf9f20582724f33eed04dbafb95553c145705bbab89796bc21ab9a0780a9cd392be274ad451447be7a195b23126bf18cbe75f12a12eebfc96d9b22fd19d57c342cb4bd3878cd69d21aaf0c093eb7b7a6f149e4d6c214814bf8f1690988b794c06a5b1111c415220cea0acc02b452c6f2678616e52c538dc71b10166067cb0682e6367a861dc6029cec249057484367b5be34f9b5593cc7f92c81cb80e00b1f7535237369b82208f5a8b697a6ef4caed276a16b1b2916cbd7888d18dcd22567e92de1d0acfe7ebc4a3f96014754b84fdd8d3d46203230a71104b3c825d71e4995948414283b636e98d447aef4e9e96d3240bc99607f1a9597408c8556dc37e9cd18bd1be56d6dc73a154576dbeaf710ac9e20afcd5a41db8efc363a7d26ba223a58e08fd1984073fa6f115a616b8a8e388165df7b1ff1bbfae32aacd893d0cf5c0b260f0d0d809ba9092823cd83e58848cb17de31bec1856360ff6a2568cbf27829998e741b9dde5d765e971cec53cd94d1faa6ce89a8a57821be0d7c7dd56f31c1de1f49c76520a324b5c978e075af190b620cf7315bc338a6b60ba6e896496f8afb86f6f67941ce00846a5ac726264b3b3fca4c201a30b867a36731058d67255ec0ef57222d51d5e915a79068e36a62b9b9ab84767ffa472100e21875e1dd288c4382654d1547d11a58be3911832be2a2779c84b8775bf1285eb7a86b98647f0533cc7b9fbc013d3f20b492e06228d4f5b4c859653caac26d2a9cc13ecaf229edb5761d094386ae4a111e56e4e13c992bc994d47aa9c45c0ba40f5afe8531a10a51f74e1b8a6c71ae55f4af1b43939f1d299e396b1e573a25304c5c8d700d95ed1bdc5d35c4e6776be305336b2b26fbc3c78d2a3336607e5fce6f1c6d7a41efbd0b1185ba60092e78e2414edbf5ed1d3785878a5c029ea06b3ab0a5a3cee467eb582064c9b7d29cf826c0cf7e828fd1963c39b2f3e40731f2bd6f2723aa94b16504156a405ad041c1ed04e4c00c5e34be37128f7b57efd9729c544f13e16b1eba33dcceeffb7d8547b0eec6703609b053a897c1cde85871fde1142dff09a55e068b30f694064035fed0889ca095afccbc8434d75456509cdc40e42021a4f196c339e0379b5804c7beb3963d941a3482c96a8f28d9ceffa3513ce752a38290765fdfc551b8b996e7581458659ae35549c9a3593eaf9b5d6705b085ded007fdcc454b35d84bbb583ed1ec2fb74a6aa26119cde1554aa2c6ebc6c74cb1ce3c06b978371c9103d638c37d3d1d1945cbbec11bd5cf736ada2fb8767bca80e88db70af0018aadb8e3e43f3d08ab5f017ebd5c7ea661ec1fab82b8446a8be2034d29fb42d6dfa3cef966c1a3b6107198291aeadb8f29cbd4117df8ef571f3ea2df5fa052e20eaa89c2c757be75aa657678f0ede06157903fc08dfa8280cde37ae23a313e1b501f3ad51f02629189f2d6924c2ed26e3c78c9c90ec6ea36cb0be8cdc0016c10eb728c03e8664901fc9ef25ba20fc8d058070aa17af214bf7175bc1ac736eb22948511c8cbcb4f0d98ef25a73eedb857b43039b4729faa9233b4191fd0700ea3a8b32d4afd55e92b8602a640b75da23902236ca97a92053a98a4ab78bad3bd5cf202b452b31afffa6393c8d28d5812fefa53455aafd8ce3f953701e24820c19f799746ea6aca59e38430edaf1ba46b750d8b2441538f59cf25b437b9c95e3ca3856470609e569d5fa08bda01aae9674e29f96c1c8e22cc5d7710de5eba022766492e265d5f24330ca833dfb3936f7cacba046c761 +shared_secret: 86d765b2917cb98458fc5f5d26cc9a28426655a73109ea65f61377532c83c280 + +# Official test vector 37, seed: "d882ba69ac8bbc88715f1c6387531f53273a5dab87e66faa8221a7f628d2bdeee1cbc59c0e08d0add84520a3a70c1389" +entropy: b2c35e33c72d90182791f0e12a0324f5b216efcab2c8da1bee025dfbe13f4152 +public_key = 349251ec123ce574a5dd6ca1d14a967e7177aae64d9678571d6b0b0769935a1a2a8dba53db6c5b7067210426c64f53542929b31d565bd25a480d9065d79852b0f05002964772465c3fca5f8307308055603039b1b56726eea02a8cc19c5af41309f145000d2aaed3038c17911677a2631242280c23e9816185c75e5dab43b4b04c8777a35721605aab1adab828f2640ec5b23173f6cf5d37ace602ce5af62108ecaa540ba46594181ac9869517502aa73ddedc4131ab152b53501dd4aabd79556476063da48c4978835f28500f810b77715257080d87247354302399485852314598fc6eb1f93feee6429eac96d37c8422dac30f473b56db0dcd2c64f1c18f91950e7984a88b63979b424c6d4a36220019881b5aaac715e426a6976a300ff171a29778c82a1520f42a2f0b10d26035613a1e0511720087be146ac9f0cba2c1929c0960bc16065748573d61eb195de53ab9ec802d247b210b747c70c45aebcf39229e4b938eff354fb9f65cc6b52ff0163494744848885ee577048b506a95112ed45466252783a4016f30e29b1928acbb448379723d51bc3b59a62df46ca75f64bae27aa2d9456c66e2997b48274f425004e6884e296e17912f7e387db452681cb32e7217566897287fe9c38622325a8c6716e5a767a626d98836cb779983c31d1802b0e0bca04bebbfa9e2cc02429f987a31f73274ce5320e1b0cff8154da331be8ee21cae8c5037a1baa4956b04833d4928a1c32147246002466716ea9c69f4032d33260c338cb13ea09e5e47957700c33bda9b147a3f3f64b46c933b7f4689d2797e4ad24df42c002a323ac0e781b7e8c8e679c949ca730826b3f6c28813ac24ce7ccb21136695c75b3d028fbf6ba94f5a06115c72bcb879d64cca29309502836edab5c7b2a79a1e1204161369c5e8b63dc513d0aac9fd366387f0aa2e736bc09b4dba05414659a6937264ba982b419342e8c063ec64b28663cbf4d12aa5a6ae5aa9056ae71c4f5643cff81ce6d7a8d29a250ac27be274afef453dd176c462791c249a817329142c00ba332851e50a01660a47e35bbf3890c23be173dec1a1d57a4837975c14269707384855e897cb44c4bef532a003409aea41d2fc889f572ab20c0409831ffb0222cc7246438a95fe4a6e32412688b2cc8c1963e38526201aa9d2b0963533b2fa42af59e61d53c4bac2bcc09e44c5f9c4963525a7c015244000749e811873a391f71315d1fa60c806390fb3aa80295e77e80158c665ead61283271a1997757e5c4dc6893ad71a63a1898fcda02165db76e252665153016c90bb9c8423cf8a1d371338feb40a382c2c3f99840ea96f99246044f4a5fa5cbb8d7473110b4a5238255e5c3d43463b055bbe46211d2e05812dc46bcd539c56a15199cabe5019220dccc1a828a5e0c37bf130a6df762e395915654b5bcb5c3eaa7142e1706697b9914a287513e407ed376354697144b33260eb966316c05dca8655a0436bf47967779d43cca5edccb932c023351542857268a57a74c4eb08b7809c289c5543cc3730594b3ea33de6e23a5600ae6a68cde3614cb1a80bd7c2379c1834c349c55fa73859c5a3ad45886286973f1363a5a536a0b08faf26a939179f873cac62281260868569372dcc744185a55feccb261fb0af1ee7a50dba2c49636e09687f4618667db136bb291f4b4c129fc7635182720521acf1d67c719a283c412bc9165d9f883db9049b98381a4412b6599316cb39986a9c3f8c069aedb9b5e13b82f3abc0c1cb70dbf0b5d1d66ea003676197c1be2c15bc6533a41804ce0c123fa55a87fa344d850af4f5b12fc0ae3610593e1bcaa1868571b2a618db9f1900c459376798341e4263c70cb94a9db42a04067f7a5310c606bd7ff661ef3508e6b6b6373c7ba0c872b8019676263bf912673c59a4c51372a2da860399222654518063c3e1f07cc6c93e91ac6b53f3c04516b76da65124325c59d4360091923d1883977a52b328c0d508d0f039696db843bc12c506b521ae34c9b9d145047293a6eb99686770dd587c92bc65aa3a4083b40e8fe2cf891c5152281744612b2598664e4368775572e4a03a9ff53e307caf081ca897dcb43061a404c689d934653769ad59d68475a8b0e7277bb280ac77ea7b1a1b6111c1574c6358dd6a472c49c264965f8cd9fab7d1fd2c5f4c3a4ffcd66e5b05a4879536aee3074b69c3d4e6b1 +result: pass +ciphertext: df97e2ea928ddbc0fee9eae81ad53728a6a3a953ecb6e3071ca382f9357facebc3cfef5cea739968c1b98081b008096cd4a4a6ca597ae85b46340abbb9d700add2b26b14f4f9cf68780815c4f38adba9b9929a0efa305be578c55c5a028cd3ba6ddf750546e49bd4748064afa4997f09254f33c68bed867ee934f8b0a5974894726446468eaeaa4129e05eba9d5d1cbc878be4d2d4a881a3a8d71c158db0005c30855059cdc29185c8512509dd9567a8605feb883994479426b637dd3c068d47c98e98f18b6f69273d2b168bdcafbfe90579af203ba597cc53ecf12eeed9b6ec7b177d665bdf90ebfd4a9fe18863a23348324e9b891b60d4c720e4f67241dc6ce5ef766edb36b3599701b2343f9406fe97e8b7b77a030a5eea4219f07775d41a4e613fa41d99fabede9779b9b957f8857b795538ca11fbdb670fe2d96131b0d7944f75944c99fa7d1ab90ac25cde6149dcb3b9e128fe2c46e79a26479008a57f6a1155291950d0963d5f702ec4c58ca46720987ede70518dac5f2b8921cd0f367f9e0950cb44d9016ba078e4e22609a849a2a34bcd8f4795a3c3acf8e02f25d187b554dc2edd9f5f68788a007e05abc44f5d3bf9126ed5060e08eab422da200783549c24103f412cb9da9beb8e09a96f83b73328347b6e2dbd951194197cfea6ec0bb2ef3469d50c991e0a348f34cfd1af87fa1548bb501bb34aaa69e81ae0dc314aa984144d87cfb9c973bd16ea7760c9816d1ac8cc745515aea51eb7f538b4c7abff9fb184b34d01fc94d82e1b3f2baf0e8c0a491b411fd570e1d02a98fdf9f0098da68c5d026b07e97672d4abeda9ef0ce886f83584bf212e4f46219e95fd33e6cb90521ff7026e57108e0eb73bcdfb1160875a99f95b3d955f444321fbeb431c8864f7d387ea52ee3c04088b731b53ad9529eedde950ac39ed114a92291c8cc7db0dbf1815d5066faec5c5c943657f562b43c0dfd6059d631e2bff45b440c3dc00cb032ff6c3ccd687620457910a72a83488ce93dc99204adde3d38dbd3e0db8996216b5d65a11215e0d5865ee6aa848d51464f28aaecf323d32e927f024abd06ec057403ae7c6e931c320c1eadf2cc66d30b5f854f52f238d20720f2020b1dca40405f38d3f89a19161d2cad8e85534ff5a2a046db25c804c53667d1239df5bb6052d21f8a43136f694f3590ab02bcfa13221fd80838e5da3ab0dd3c212a2ee094d1be5933f71fb62f74422d38a05bb842be8d82ef68830398d7bd1c822fbe6ceaf6361868f6a05754b1aa176c4b84da0f93e4564e1cf2e47d54ab5308ae66ff66b0eec00afe8da1773ffae4724822e90d52a12e174f5a72f5b6f18ddac08290cd4131c5b5b9a5a1f0cbaf71147c4139c45ab2f622d0d4a9fffaa258d6ab7d57185bba9837494c1ce264b8eec129510f761483875802dde735ccff53cf7de86ee3b14fc81432bfea8c98e8f2fbc680efb73dc3e14ed27400aef7a9e834518360060e0ccbbe151c72144507d389233b1cbff481e8d89754d59b213ccfffc657cb1d25fae45b28fe152d73e14c29e49f3eedc3823a7a75bf38e8f0d2e5872810af32e5ac4415b07d0379edfb869ce7306e8e74fea6953066f12cdece8cf01ca4723f5dab6d44a4a60e4bc79ea7b0d70492c10537fbe5d5bb3b61bc3a497c1c78333e2923f44e3fcfe0ea24f768093635a66d4278e5133626c2be5ced1e5fd6e1f07a47d2718f23e475a39c7bf9fe53cf26aa1d581e447d3df277951201a0f63d0ea7c27de1b51e472ab3668ca5884eed5561140db1e46d8442afa25343d968699df67b6ae7f17786c674d60579093988bfdcce853e48e1ce54a5930544fc6548daf3b7a8478014648e7b5625b87c68404b9a71fc3bb013c77d4ba91f75bffecabb32d0a9add7a13190718cf61e7e9903b3317e97df05b64f1e85ef0a164dc986b44ef94e250faed57c94dfca9991fb0dc3e044c9d8d13080955dbc6a988406a428e64398aef8a9977a0668edb140b38cd38e172aa192ffa82b0b45d3aa9edd568019b948aa10df147b1b60ab95bf9053e83d9881ae88ec0569fb7fb3cddb167025bf545083de9ad03a4dd7f67108ea4dab51ed24ab192087fa5816f057837e1c0c3fed094ccd52ca892e097e11e1ba9d2e827555d91d3fb1c19ef625ce6761c66a19eac07a3ee51445e5cd130cad23f5bfd247c443106d8b8f26acfa36d80 +shared_secret: 5f83d8b07d320694b387d4ac6084fea240a41f02e66a12a7280e5078ae0ce208 + +# Official test vector 38, seed: "6c3aff39f5d097096d882f24717718c8a702382dc4aaffd7629763fda73c163cf084807bbb0c9f600cd31a7135f48aec" +entropy: afb7d6dc2b7eb6d84acc080c1be63c98afe7b07786b5801f716444a3e8e64800 +public_key = 6a515110c076dcb486eafac9040ac0690b79f5278022f59bfc316494a782d92310489c9f93e61585b3bd292165f651a7017a994b2512f0a5bdc8e77e9bab7e5cccaa7bbc779d445e5f16b871989974d92d2c268bce10764c0146a683ae56c47c4644057ce8b4739031879bcc287b194cb36fab6916ff563248d04851c74a7fe87f4fea546a565eefd507457882cf288ed294783179577ee898bed18c97660bdb726867a2c9581cc13bdb263dbb414d695990ccb897fa31984734e3178e081856627b0a4bbc736a235b3e392b3996441198c41bf8cef5ec64d2f5c4b628490736cbbc076d8ebab4cd1ab4936935fa3aa40d941e85cb08774520bde23f24739400bd45b1b056d8a09ebb49a3e4b7209037c94a47084604697185bac8772122d1bcf22888f165546bb699b23b2262035135120cf677aa7f767ca049b869137999884e360518358852cbbca3f90643764cb30fa16cc009766c43b89e599203d6344b1081e97c863190ab57d42812d603ab56068283cd30e92e3f7a8989715479cc3735f3cb1ed9120e8b8c720ba35ab1178b426c413c5e89eb5483bb0fbed13a2fd0783ce4bdb1aca87d80000dd48caacb57c74b802c6b133817ab099c84f1c22383e57a759ac6eab76df67876e3591f32595a56a027f2087b63db7dc138cd820a84b09411da2284ac78445850ba820c31b1ca97f3e680e24201fe67154b935a36292b18857007953a848c49d0236406e7a320243fee64ac24b02952d0a02a57ac4fba19ce373e3382cff61160913ca55a091696d782f4134db83958ded48e681546ecf2be93c09a9bea7b3ff420c84a9107f4a75a2a1c40ba0f9e6060e936218f0c0904bb29add2305cd59e29d2b10fe667f9ea49cfd149d1d8bd62e549e08baa1ccc63b8cbc734a24017e4a099bc5a939828ffc8cac5fb5d388ac8613216f21942675cb714e32cfe666357413773ab5f6a2c405179995ef42635cc7db7238dd7c410ba529e7d7391556c5f604c38fa079a70fbc2e8b393306832fe2a8bca891d880209b9719eb4d2732581408a3896735143462a45f5e4267084bda97a9a5324a2e23a714c1322f4368be3ea5219c10f56cb560a78786c2a51db18c79f151f3743a7de67c43a35c63d1b70e17aaf4e4c48e300a73f9c07bfa776ee8797f803ca148aba782a2fab110a7c4440c5791354b25c1107106be979b2077d422a6d8edbc04225ac63c3705394c9fd5389c11855057572fb303ffa365cc2854a3bf620ce5203b21bcf7ad9c675427ca1294c7b001e37a02be18473d1b13d9c52b9d59bc267ecb1fdf3bb96c2b374e72e4bc0898441c47adac60c1955bd1a5096f371bfc709ef624078139feb979c9ef48bc0bb9100d0a97198b466bc5821978c87da85c4e4164ba61a010b5fd99435dd18129a6b379c3232f75c8789d486ee3b6c84e052b55066e81c409c182d4e84926a42abac49846fd7b6f7c305e234130026540a6571d2c241c2700ed4e073d0262bf196164c71a62b904938cab91cf12fc8d527a091c20a86b163aacaf2f25d1814bf2d435dc7881b0f0219bcf40f90f894e74392fea065fd1b69f2e959cd0a5850b002cfaa8e44d0867a16ba5b173711d77f355a71bdf7674299a91cc05f2c772a5280177f2551b6f4a986f3bf584a899e755464166c3220130e694616f76cc3722c999536b6d145dfa5a27aa591ee994332893fa87acc2df67113f8a9c438abfa667022b92842c73b15047d6db08e02930a6348a71472a5e04bcf856058e785c10d049af83736b2f78f8fa0b16b0b7e897cb695ec20d37c35190a079a57cb41ba5a0f010f4cb94b585466c9a802f0855946361237a0840d43487bf65bd9f000f2480afcfc03b3dbba6ff053aae4981fc619d82818251c0d00ddb269042902b4c28fe6578709374f2461b0fc1a00441b78582db2a76dee8729be071ea3c9957f5a3e75934628081eb8339ca5cb5ae83677d4c31d7b12b0463b57bf7aae0af3901a9795085b8aed0564d3755588a0829615785f322add179edf08204021b86bb3cf8f3528ad652437ba8b0c6901cdbb748ee8a2d854644cb694668b9ce322992dc43f2d8a7ee655be3b257a0974ad0649104b6b4e9a16bb8cb79a42968ceb1cbbbdfc6c3921ae35f6b22ac3c2f858184475b4f2a12db3158b3bbf2d64f07ee186fc57de21c26bfcf6b645f83cbd47cef72136aeb644 +result: pass +ciphertext: 80efccbe9e2d761ddac476b72e873a252a02782ae13d9b8f863e943ec06f26f8c080b9d34ffc22a8ef2cee0a4797d781da660eb80d6e5160d3d88f0ac65c68094abf9f9199d2f92c9fef5f8abe17e80237943a66eb26406d46ff8768233b9e8f059c61c8638ad84add34752ddb6fb9e85f784c8e33d2537712fd29592894cb1ceb1dc6f2aa9d26fff99aec7bf00763dc03ba44065848d60a8ee2536fd1761f209728bb62c2935bc1d28f4ec860df4f3f16605b31a2105e2819fc2cf0066938e3d54058587dfd4acc7d716a320c31ccdea328454a0e8b86e56da5f7da253955cc9558c270577ced143eba13ece0d597ebe3e0a04e48c704bff12ae19e7befe7d7fcc20ec3ad5736206c836afdba38ac4aab46f28d65edfda9599e69e1944d0ba65ec1807719cceae163c84bd3a5cfa1dfd2001da4c7ce8edac1b9c9ce15a22cd7cbd63c56eb27ea4c06907a896574f15fa98a1b65122fa94b720530b04509aad646b84e2620c8f511d9c8d2695c8aae14964a555d7e4b276d4d55667cf709ccba138b2dae4f6d796d8b146a920263b9664a99a9e88639030cc01602d0984c72a52b0ec87762480277dab8c3db42a19e9d8e183f50b777f7b2e2eb44fe34c8b3689edecfb3b94e7e7655487ba73e169c7066b81c18ddbae4bb949c329e299d37bdec28655ff7e1fab642c961e21e88442ea00648bf32b9330c31ae883bd5a359620f05f00d31b5f0585d6883d3f65e6644dffcf86342f9dc8a7ae2641fa3f7ea8bb72c1d9229bacc2a5730d77b04b2a6f54b0f935f2762dceb8ef229ccefa06fd885b022181fe5b29e90befc48b044d4636e649500b94741b3a4f7a4098514839015420dcd3aee122dc29b2216bf03a380e7dab2c56acc8c46bdd8d9f1b11a3df65933de2a419bb67ea3fb75cf6e56020a8075f15a58bb4da4bcc02182170c027e15402a2d5ab76b41d4a1b7ee34f7145fa1fd85f800d9635066675d4f91e5ae4bfae91dc172b19e36e17831c062b2fc0437bb14c3d1035f59762dde5df04cda8f16ab5cdb981dac9542be07a330836958c9c03795b08aff25c525f0f585abd0e9068c68aa205c1ba880ceacc9c8074711180bc790aa51fda9a7897a74539f79381ac7a1b0044a482db549ed4cb0328cc51e944fecdc1b956c5b63e177aadf3f857057b1e0d63117343dfb5c1fefc3934f64cf5af9a10bb8ae15b1c3266c49e05bce2f96d87be534bebdecd0b16dc534f95697fd4d6812bd098ef3e89fdade0ff4b1a93d77092d0d7324037c27f402dd0c434e55d8a61db3c2eaf103b6eaa851028b4191cb88e32afe42af49c6e878da887e7bb57ad417b1e1c190c434d79c3ca319d58bc6c10e9a16ff3bdf52b025023788e755e35806f52f7f6feb72c4b687aa72a1f2bdca1eaef6b496d68b361e56d552a0c8c5f8c2affc345a2f94ea62728eddcd207d5c3291eb455f0b67bb1fa96fa296de8e4f0053e47e2bccb90852dba79c7516354c7feb9b39e0eeabf64382cb4571cde7a4913e254b46e912350e2d4d7a01e825571b2804124943b025acc211224b06def37c8c537823dc24d26dcd28502dcc56559e08a160fcb4f03bd10fff9fa86e6bdd0327590b603b2064302e374abde67593c205d5f73e03aead35a9041442f7f0a2e1b534be07d0209c0f432939688f4e1fe0fffdaf2395a457ebdd59b7a5f05d79139eec13585607e6ed69a1ffec0f6d12b28d0988b8b09056c7ed48c8e234962a52948842ce7d53a6cf39eecfc533d40eaccc868d0699aff4b216a8f43b94a4b84534608e3f3a97ec7e84bf9dcd5a02dd7fe47d93134abcf78184ec182c63837cb16222282a499f9ace26d59d5de962e8b879b255540291017d8c3adde725727e7276959559d478d6edd243236f74ff49f8eeec7972af6dbb73839238068ac0a6c1937d63c1c8358161debba36f18e402e4045d6c5ebcc55d37fd2eb5e20ff13c2dd231237a049bf1cc6bac16f0444943ebfdbd139b521d0bec71d38ac891763b8ac87b093d9b540dcc326381aea049ef1ec5ec701df7c5e733c6f58291da9a53a611f7ce6acfb99d45f7374f5f536b3b0b9c80756c79944ab262f9c6536a80f51545d46277ecf7fa0b569721bb207b4ce8ca4f25c49a04dbfee807bff9c4008f5e017902294828e777131fd89b032e79648c08fd457010415e997c114cbfac1a6d496570b5cca27fbe192c +shared_secret: 070da4db5d59e004607fef8f49379692999d0d4cb63dab350cf8c546fd954ee1 + +# Official test vector 39, seed: "cf520b92a2e3677afd003ec1ec6ef136a709d78f828c9c0dd4946efbd451c5faabfc83ca66f9d3d17ee4220553b7a69f" +entropy: 28f5e9dbda122b2cf8f3754fe9e0c73a84ad4b0c093522e0b62cf815d60bbc3c +public_key = 81d55ab1318e2c501e7d462cea98864e291c2c727e6ef2349332680fb06b09767a2ca72cfc078163c140dc7151d869a9c785ac62c6ade5f7519e070a08269938c7796b54b482f027a0c63ac24a6a00f7a0e7c65843e1c1fd01bd11d24ecf3c8b90cb803626044d03a39fcca7e918ae418512631898f417c9c9618055340a05f67b6f1cb7cc44117af09922cc07e9522285d16c42a7b2f833b51e72ce1c28a3ff37ab697cbd90d96b3e460c56c1734f1b11280ac33f170b3447c07f99a68f9a6f1dac6083368555782f800bc7f4409abf76b0eccb6da8f0825cc0c696cb9119340f663317913a641ff369657207194b65fa6b1dbbba94d22b512b56877120a6edc10dafcb2f727349e5831a3dc8a539c0a55a517e65982eba97930020608094b93e481fca819058537bb2c051cb2c3f0e5a97e8365a14491fbbc03f603977273a035855c414812ece238d254ba7334cc5bce7256716077766cc21c617a9c378fac1786c1cadecd13948591198682cbcf0cb098c504dc4b16a8269d13a701731b29a71432205660005919721c994011ca3c0ba8c3178a6d80b2abcc9f6e6b7880811894cc6e62c0134011aafa69568a1b95bb43c815c1405b4351a7290b856c50e284eca0cc384a4551f455b503488313a341aa25f80aa02c97b9d3267492c31652b7654621a59f1aa64ae4410a1099ed7f14aeb10485f794e61157c1563ca5515684db66eb99b76836a2441139a0906b35553c9e3e317f5e2c08487697574464a9936aaba528fe2b0c0c6b058b791d94aac3bac180b0609ab36b27579864c5bc6d8288292387dc4931fc889a45fc8bad636ae2bd493a5ab401311084fb57c6fd88c2f0c504d5c463738ba7c5a97237c1681d8aad66307ef648748198f6ea0c8fd6ba7ec424052c8a9b070c571b136cfa86f199542b12cb2a77c6973494bd41a2f0b55cb0e4122d0958026b7c54bc42eddc040cea8470f738f9c9916c158a9ca6457d8d9a0649337a3ec7347475eea8c34e8127636b3897c547c0479a1e22bb2f7606afd97cabee179467880dc02c7b6f892ff3a7a29844476fa9843943d68ba4df2db6b8368394b62cfcd257beff5b8b54150407c5529349769824af105adfabcc53f936a8a492825d6a9b1108f1ea258c9dca2d739a600f68616b2094ad29207184607985e3bb784d7977c20dc0585233131f93fdfdc9ee151c6937c7bc7fa4af43b3b1dc4774ce6273ab04736308e89e21eacfb81845678a0c220309a3c9fe3104f61680f334227670f95f2b84c137a964a0a3a57525a4b99b231a8f22830d5bc588c0c705189b2e8a19c4362cb50186b99b5a783031300a26300280f279987ec058425817327b481cbfc789f659530d9c5d9c8432959adf71741c1f9353d9a84836a5a5487392d19b5073a72869ba4e454c14ea5a93751322b8592e8566236a86c6619648be1782cd03749d9b9604209ec66804c64913a143887212e7acb54d5d995d0cb17e3e27c6dac70904235f5c9bb29d908d8098b11739b16706541f31b53e3a384e594a7a640629543943a1262558530c193d18079426708117197a90b1c45e8b394125ac46238d2e22fb8750d1c190824828280565093999608f4113acc18370509201056d589041d748b2fc71da15490882805d3d3c0fa0a837400b73d25688c698cc8d78d144a80aba8372bf7c349b9c395bbb8adfb885906402eab1ea58b622ff45c4dc14c9d11708659596552b18a3c0a1af2cd7b558f15f461f0501c409a120b4468f2c09282ab7b25f9b028746fbc9ab77af4262691a64dc43d59139c21eac58e58a491e26e10974e6cbbb82af385c4f77e7312ccb5194902257d3c4a4fa1a9035a670b5db47ee67c1b07747b889a6c481490462829b26184be3c9b0d7a0f9f2bcb10c8176f03464772479e9b84dd28ce94199d31845dff0614d02841f4fc92f9221cff071551e82dc829c9cf991e42265f94f7b4dbe7b791c244e37c3ca4192f70c32cbe9366db59a9dd8582d6e69d849151cb7c6ab82ab8e7854c7b4c15b1557443cc2b1284b7fc7b16e415007427b5a9909b99f21c47956c45e14022374440b70415b896659178d3c98bc4f3bbe904a470e4838849bcccc2ceda8b9bb1e2af29169d5919145b3229fb8c9ee705cff4d91fb9729c6cb52725321f208f2d0b39ed53edaba2c350ecba69a4ee1f3159930f65c8baac80b2e0 +result: pass +ciphertext: 4583baab569c07628c4931763b142daa34f7bade4707b002a966dae6982ec9efdbb2ddf1b82f2f9fed20289dc4851dd6a6e6540f63ead0986171ff9aa92ac558be96585eb1b3ecac469f5878a9b271f2388fc213578eb7639d018850148ed9af6ac2ef136e48a148d0f8b018d00f2d229dd4b89587782e4d3308daa12b39fba3a8b82de3e5ce1e381fa8770067ef16551b352893e21098830c2c973c04bc24dfbaef894d3c01f4410f7c8dbd7321a4165f9040a2fed09497db369b406a159db7a642fc840547804dc77050fbefc8167bc17bef43022eb0ac7badd682775a8f6dade61f443ccdd1e649247f17abcf2453ebe21c4b3af4eff0996f7b5e6024c809a385503a189b984b021e650ac2d182b947d6f248104b8592ef66052d80c8d1bfb612ae1d58e79d17df364c23841c0a969e9139068fe1b3a51cb992c255c21008a08f21f661be10c4f5199a7bc1dbed99d253c34a98504d85954ba733217545807a7e85f2d65dc77a054365a275ed9d4c408c0d10d9651c99bfd789f00a29b95c4a91db3c479a7a759ab00eae24ee49712984a28888ff16534b59c33e160fbd8980ccac1fb6a4c9f20761d9c7030974ddf02346869d9a95631a9bd3c87c3973693a5e6c249278f3b85b7e8011285e6757b908a8842749e93d8568e8cc570dead4f2d86ae4fdef2852f156dc03204e32c1c6946b9b7aee25a96ad20e122c52e6fdea2e1e37aa92d8f50b62ccf4cb3f44001a1a7ce112bad5b9dd005235fdace0741ff622168204981514aa2643e3c2c4c03601e3bdcafa2ba76bd326a86fc8334d2a3192b4033316b9f02a7e9fab545fc5580680363779137be9c49329d1264279d6587f1efc8a1591021b13af1627c172c1279ec61b23d51191efb898d8a9214df1cf7f2b1737a0e97aa45e813549f42e828f90c1e914093066a0e94da503932f931ed491bc43f4a8a689f89ce5e819f0322464954eb154046d3f6ff3423d2a1dd928a1eea9b496e64c928d18f57953b009c74c9f3b83ed0b6b9fa99ccfbe79c47fde9b54e2df8e819488cc5534e8c61dd6127615f3442384a6770ec9268a9bff0db2920ffb63c8b0d375781a48d4a11d08854f14bae1d25902e54900568a46e3916290eb3e0d7b47ec6669c93ea516fb93e7228e3723630247cc061404bf2a8209dee902ed514efa1fee05dda7daa39667c3b06b9ad0522be960264d4c06efd899333d61e68964c3a1035d95f32a4135da95c720958016b5d17b6da0931e95921aaf48ddaf762069230dba7f8d570cf42a78e0bc82327258b71f073071b8cfd69b24f3de704173fc3157c05389bffe6105cf0e81602600e18a0e3be22e052b975661db56f3c500c1dd2a99258b203ee2ae7a8d5b1b91fbd5c5d7c9d6b07f64d860c8721dc51adaf24fa2e99ef8a80a5d41c850a255be2b686920a64a69914071be73a460e806eebadbdc5ec665a4f26065dbaf0b9721206f761376f5709bd4cb34af09208970bc1825e460419e223c960cd7f7fa20a582ef9ab90b946a3017b375763265f8118056c7cb929f1789fab3b10010267515dbd9e3b0e0ee4082afb9f780b740272037cf0b83df078d4827ecea5dede4352eab5f94edce1e88564311e91d2cb1893d4b5ecfe47415025fee66241ec51f0896872b298231a222409a9abfb447779c180898209df96a4639284bac56d8b94f3ad67996eb877f01cca0faf9be45d540e2b350c7ab293cc3d0c49711e2b7d7856f0a1e297e21fa89a474cf96e2a1028007f2d472f9ebb4bfbd3b3dafe8ddb17c574c09fb4d741b4480f2e525c75a712d6127af50d95ccb4622d344bd9c2163b9014be4a050cb6ad7fa065ff2464ef4575fd208f910445cb2e0771aa1c97873ddb95a9f0b33c9936b4134f06adb22cd00c3ce148ee21868d30e890b44a6c4cd1dc02d15a4e6d28e31cddc125cb3fcaea52a184aa041708c4bab098e387f6b4862c7569ffeafd128472096841596a6ddebd47d4f92719bde6e6d5651943b68c820b6bf4ec1394a259651d2ad460ff28f2a2b9063c686f3df62c6562e9f28ea02568058e27ea9f2519e7485ac9c4028be344ef015449ae79874d22b02d94c9d6fc5c57cd49e548edfc703fee0a68bf7039d8ce4d3b179c0df80270ba9efe440fdc1a31120aaa88992dce10110e6a7a845929b86c4aeae473c72ce6abffcdac33f104a817f86a8d470f0b8aee3 +shared_secret: 16d4d64c78114b5fecbb99dfeb59623cc33725e9fde5fbfe1f805c05ea7c6c4c + +# Official test vector 40, seed: "197e5d562de7e01bed4fc597db28dc6efdf0179f3a5bda5f94caa39d67bae730540534d59a7a06c8448f628da8b7859f" +entropy: b0d713cbef0bb1df70cbb425d1e9373e9f7790fdc7980cc96a240dfc53f1e8e2 +public_key = d4f7656b2b7819120a7cb68a80b91f2783979e1a329574272a3b154b52843bf80f88d947c79a58ae555e819674df71b13ea48741d103d345a8d4786eb43012fddb0b01c3baa6a0cf128b099972449ecb3de50020b025c486b4b5b115c78d927fe5e06bf8e29068d0b3d963c3b46cb9d1ba3256fba01f2185cb566556151ed2e1c993469190b75fa75259a5b1096d5a1647448013c21eca67a3aba096a4dc77f35c2447e81114f732148663a9439b1304b148b813f12c61654688d35318b8c0a8c33738a2f1bd2a1b6e8ea93eec771ec8c0094d4c6a45ba61579c72c2a41ffd468a6c679fc3d6b15d5a549b1614bc8874304bb6f01b775511ce5bcc7c055441ac72c34ca164f461990a57baaa98840439371c26134500377b39ad6d222feb0b67dff197c550541b63173e2b1b7031b30cc3772e97734ad3c5b6243b3269c48fe055a82c9f4d1c166c294b8077269304cecbc404ebf8bd82c041c911b09fd7c2cee33fee1bb754878d8143cc93b81c7e99323b5210e7a64c7a3b8d96c1594ff3ba50132484e663797246dc3238a1eb743c4a33c51c6587a224bec9bebcf5ceaf175dd37c3591ac7d82512e9ee7c4acba2cf5bb26d3a2188be321114a7724c797a2bb26cbe43b3fa03a8bc16dd5a49a68544e9feb51786c46794c9f5239b7584acff68a2f7561bb05e6b5505c249262b509a922e97c40b4736e8fc2af4017acce951cdacb3385f060cc1c55a4f79a60daaecc939036115d2f480f6f0315fed05387e99f9448b6155a51d66a6940519b361233b2b7b34c740f0cb64a7cf0bdc48677292b0d1ed5898ce928e9040308807cfc730be0d8c614d322735c1af2d2199ccca1dd80a96cb60247125cab18ce7a1c5e4f0c4b978581742c8550cc9c84b0632967654b968c01492557ba0630ec0caf04a443d9b2f616a9cb4ca13da38fd9d611a59bc697c20e8eaa0d2b96aa2db111bba3a05fb463bdf7a777cb91b1086adce17ded04be8b92254ec5442a6852134b5fde9b060fda258c18740b79970dc981cdb883cbe3297fa33ea988b07f9a581bd086d53507ce07536012a211c6b4de17b73a08153c3514daf12185416a81c61fe255a3e04b33e3c5a6a0188f6e09855ba504f838cb8417c2f0e97bbf5b937ff53848031274489b5366abeca2caa7636cdbe83f15980c02f207577b5efb947692fb40ae7b36dfa83b728478f0541511fa58aeb121c14056451654d0dc4421695864db64bc271a79ac0beff724b6bb2290cb64087b72297a6c3881765cd909aafbae72c9448b232093694ce522c72d2475f281ab1b633432175e3f78715de1082df66f74a351903b115d74489a32bb7a873aacf195f8f043922272cfec2798f52f65f4638302c62648199e7979f4740b30d38f7d794cad179ac960c838db4ad7038ab84955960b4822324c5d01c5985ac8f47138bab522db895af2f9a983494f360b061bc5120f385166a5ae9ab844c278008e47b655570430451cb606c24840b7a0e51268cba81998697a5653e33bbe47d43edc3249c32964e87bc8ccdb6d603c0f7387306b043fdb343e8500aaf0104683dc9488b0ad3d04a1c2657f11a99d46b040d0950d0937a4927012f4a78ee2405eabcac445845d7e88b54a8c57947b7ec0c12bf654059d93ba38ba2e50ca3fee8194053b2c9f10cae8c846710392733123b0eb0ad895216efac4931cc782e886fb2c87bed305cdcc690dabbeede21addf7468e4873919865b905b3149a4d686b7c96fcc014b578e1d36bc3b63449f467b09bc84a92b20b01bf70200e703a0ed084c860f40a336576274c7e5475835bcc8ec515050eb8215f397f6312c9b1db1ac1da29ff90a4ed58b8f8623d4b893e1ff94e3e48a0ddc5c221c0b34a798713897bbe16a4c298c5e9f44932b09806e554f76b76fdb8744cb38d00f24f5cccc75dbcb3f81233c454ce3664a807d82c68255c422866cec26ef6e428677b4db8f712abf50c1e11c9f014b9ad59077cf0475f925568300c49c08e4e17cb7a5581ddc17331eb3bd7bc04c933b646224d3386a3140cadd445b632268458f63942455ca1b164c9ccb2ae679ddb12524c34cf823b3626b224e466245cacbbcf57896b7acc6f6b702ce9000371473c622303db63b2744c7138363a832b2973bb3144bba8001999eef108e317890c4b63e857c6de99266629d3267db18fd97baa47b2da64fcd1 +result: pass +ciphertext: 930ffe1df39f897e44077f527157207b3bde1ab660a8ecf9d3ec21c73b991ce3f65539a874da5cb458bfab7925748164205723e059a080ec253a8cc03257a7f7ae9063d457578a4ae84527f7ec168496478289572405bf84a958214a776650db772fb8b4123abf91d396bbec103d0b5149ebd23148f2d97ff70d7979d9d0561181a0e8d866f8839238ad8281d601c9d855db0917e5f167b99c24033b44c598e0fdb0b1951d18238a2ab8c0281bbba81761ab4bd51ee9ce5e0913c76228985358c09587ce471014e21ac316828cf2e8664adacdf20ce6f7930e3f6dd9033b3b9f1a37d28f8905c21c8e8a826c9a9442ecddd9aaf5ebb47c5641d7de702811649b1aaa75b13ef896b296ce1f2af0a69b746cb8b5043a986b1320c241d42b6d1e61aa55aabc71206308a3735bef5879e9c34ec697233c2a7eedce55b012d9a1139bd3c03c4690f89fe825937a3d70d18fc14c1e067c9782018e62498d609424f34407b74dc3ce04b7e87ac33e877878c8b8ba19cb3da78bfb8457ab0c47a4e307be49fbfe8a12af06cfecf8784e028ffb00d181bb705059eb841d51af8c606cb241cb758c6ed3fe16bcb87a5534b4f805675dc03b47413856b67555af680f43f64b7b5b0094f70ac6555e0b517d0f661a0c9bb1d3e38730d434f7364c83adf7da670f1e2a26441c1c856a722764c0a6941823333f65e82bf77949e104daf3d9cdede1fdeab13e8a6a0142caf8da3c2d66cdb9c8726b8a85339f0f27b56bfb446d52e799de9bd0cb33ec0ef5848982c4c2dd9367e7108b174b8d3b3c3fb7913e55bd05b0d5afd3a035f24ab614698e94d2ea0ef5288a50fc98d521917e4be40aa038fd3eac0e7594f32aea68b4a4b046d89aad216adc9f9a824f0ee62ebba49e2a170694524d97736be4cde034b576590e3e955a946acf4df8c5d3c794132079dba476fea76b734e8224d6534a212efc7ad9af83c91128b8c7ab3861d31b2e6009c7d7bd0d1035b53f518e32d442583981ac415d9037901d222b5d20821c80964400534ab05f5068feef04256d01f30b28c66f5f83191765c54547a8c6242f55a0c3d5097593cda695dc83f646153ab958d8b0db0c4a5564399304b7227b0424863c57e8d8bc954df042050e8de966c2efd63a48ade9eca925137f3bb56b067ccdfdd44ff35a890ca7fdc1a8a86aac65a6fa5898a6f287f73219b43a0474c246d686d3654322e3f21de06ef63ba6bbdc85c168ffbd670f335dd9aef753407584ccf3fb0e96bee0031bcdabe0b2810836197489dbfaa17903afcc729e56012a85d74a2ab94abfbe89671e9c67eedbc91d7688c6e34e1473424e604961976efe2c7f3710016ab858e3bf1ab984910f9f79884c5817cd2052c19daa950f6ed873c9e52c0bc09e7cfac132e864aac204b0059474936eafa4b36a5a017383c6827f5b6b194df7b6bf8d7b420331175e35eb7ed7d028dc956920d4072c2d8a51cd306365e09145bb2c57c56aac1ec5e6147a73de749de38b3e635fae41402df3a0090a39ad95fade379a9fb3ae3cab24c04823f9e36b693ea722e65d53b7f5e6bd0c4a2f3fe760969e0b9f03317132812283f0a4b20b277101b2cf8b37e0e3d2a1c23aac41515348ddf0db3758244ed476cb6af9ec2db9b68ef1dd3196474c92cff905d794cb5f963ea78173263465f1781bcca7430e5e1776de8962db7ada24eb5c31ab574469dd5336c4b3efdea3c218259cf602b571c0cfb83f996fcbb6ae63ed4b7ce80f4813fae069bb8a6e296ad42b6ccb5f19da19db41aef3f10d7dbd23dcef7673ac2cd56216b794372e955c197d4e88734c11166f60d753341b76f866322835d226199e69bae5c40c45dcd20f8fa5f83438d760ac1d6fba0b8560c36a423ddd8980559e65ffda8d78c639eef3a36833f6bc9efa8d7b147156e6fda7cae1b30d98fc4871f4d71e3f52d0996b4ef746653ace05b60957ecaaa99deb58a979fb269e522606982cf00205c6a9217366fcb0a24d366f2861f8dc538255bcc24199626fbb4cfbe74b5163854501d5eccbd95a3aa37bb565d7d4e723732193069e558e72add81bafa75fcca810c57611c181a0619035a2ec73db33711f4a94d2507b1e0a0ea2eadd18d5ac25803ee01b4434eb7a4382455b00c3710f98d85281c1f27cdb212eaf82a865d0b454064b39790efa2d7c93b99a22605c618be3f126eb4408b9 +shared_secret: 7822319b0d51be73985bf8e42d01dba870be788b62f9fe8bac94a109cf202111 + +# Official test vector 41, seed: "f170583cb451d8a45d105457c02c01a33a40350616ed8515bd49067142f61efb00f07857e4fff3fe11e7164c648c76ed" +entropy: 32bdcdb7059fe27f6409901980c080308951ffd90deffa8317b4d213a5f04495 +public_key = 2829b04a621a204a4e63a2308d728b28c16652fa939d455181fa1b7b44447d1abc83e46f9d5c4133b104cbc1369812bbf9e83ae1e58f66f8b7c2e56d902cca69dc841f31372b783bc6421723ab0b2bc21cebc7cdac0cc3c55a3a088c0d21a4271264945766740af06ffa65275f9c00b44b1b3e6823d3c29c0a509bcaa2be1486972dc178821c40a203849a3abef402408ceb1e543c3bef193417bbc0c5679c13074063e83eff63af43464b3ce47e4b86953bf21583c2515f7b1025bc0e50454a08313e915882dbf556fe9b18ad27250030723db50e5dfb2380d8b74874c78862a1bc9083e1a8438e546ff9ca64c4a53bd17c1558067206056a0f222c8a4a00b2a92631179b6aac71fc711cb635b008f28cd69b51b5d7aa6839a1aca1a0da854faa39925cf606ae20612fc9c7573c73393a033cc8417d427db29bb6973546a967354fca3c43223a657713e150262e5621053bca46931248386114564cd4c0861d4ca648e789efc4221f7a075dd8b119ab7bb3f467abdc6cd3c808d1586199ea7be6e75c03916da4c012d8e81843f472c8504ff4239d3c0881e0e664f6e253bf2112beb301f19774e6998d4e8b68332346898087f1b7460b664d5d10b1ae199ba661cc460685d56808d6e66f3a78b6f5382ee3eb945482a1419a0a509a8909e8ab02990166c84905c7533159a9dc447f11f649e367486e2191a6c48b61331fb6137051b1410467cc440c8d0f9c9369b8803cfb33da7416dfc47db6726440028b23807c0f68804915a09ab16c47287d4eca5f19b98839030e9606815629b1e153a5cdb954f6e3281749040d91061df4afb67a5f8b19b30abbbe9b4b98b39182c4e48d514c35b515cdfb5bc61553c7ef047b17ac2ab3d10fe7d86a78386a0589072fc58983058a6959915b12a80ec79035c660afb04e9670cba471125e7a16d9fabea6ecbfe1d18904757b0bf6a459f0087dd193be490b4bf87bcaf772547b863eaa703ae18b58926aee14cca8015af2939a49e29d546b968ddb17eb62b9eaf9ce53949e7477c4e9893a40766a4a15cbc392c73b313a0ee3201431bf3d5555dcf73174f3299c2b88dfab4430c08c94183c27d1035c78769b143563a942047035a6c2373a03c0bcfc3973db4f8f25c002c46376d6a6fe103bc641608e98948d86bbe6e89d5405542587aa4821c30ac8756f07c593044570f536b4b07fb14b3236422d01789822aaa020e4acd92126809b2d47f49049875c15472a37b4b033fcc260fca04ab629474c9b82450ae6572d891a58629caac895bf2f52babeb6974be787397243b20a99f37b52ee77934ed2b6157ac3351b9c0f3405369885a54bc33b2c487200ba8a326b9d1674209924d3d50527517978eb040bf85ccc9569a6b3138f072084595825a994078a09bee86ed1e75ee9e759b31c491d9292fd2abbe3cba62661ad9440bbd392cb7d303cfab4bd6b0130af1c3336e2768907aff0633f18f9bba3706434b3bce7c75d6c40753b6bbeaf11c47773cff33b5067890fd5b8548e66c33d25906a066bc421617a909196a3986d362d3b80095e1077a5a087238054f2d89e0fd9a0d570c5ee2aacd3abc16111189aacb4d2e911abb7aa5099bb4a269d760174c324094fe944a4dc55d7708395f6aed8654831f7c3ecd85baf03c44390193634b16e1c91aee33979666edfb18d7713c547a90ff9514ba6469e0a6716ff4c0420427bf00b794775043e162e798871f710c87ff423d5580d873b7f624c96c7d63e23ea02b1c800914a5836fa73d7a748472b0b7af3099eb933f4a440ecd48262d4c9de4c044ee30cc51877352b53b0c1c14153c88b44931df12ee8520cd07117a1266815b74a431652d33074921c1d6dd6c0104aaa3f1a84e2f7cb24461290fb321d706113b172a2c7bdee921dcdc31640f9c749f4b27d024a7488728f605f8ae904571062ce9b36c009937f51722639782d56496fc056b06b8a4a6c3f402649e0c15eafa83e85a40eda43433c44b6d8f037487c9e1b66622c6798c94b9228c7a52bd18360e07ac4b057218469ac09b397477d7f5325ca47b901d0a5d0b6977194a12f71abfbabb3d910a8cbc52ca0dcb4f9f52d36c22b71b8513070c1c6c9a33397c79e4680862196cc1c3baea5bd04c58ab295b5da152a98a6ab3035b2c48478f30cdff392b47dc011e8fc82e0914e5ad3c8eaf0f76a57327c62bc9d4d +result: pass +ciphertext: b0ea256858a3db2e3e527bc33fd2d678666174c55219aedfab289dac80ffca03e3731f08f3499c6d0ac86b8ca457762ec1a49a8895eaa6a12e64314b43339e7b82b48930f148cb42208d507664f0c5e3d66f7ffa556a7370fdc4a1e07616d0ad0b482f624ec113d2743a4bbf2880bb9235ae5502c994ad277164d0bc7f4779cc1157dfcef551015d97cd77c8fe05c547be971f1aab0f0cb615af80fe622cf6188eec57bc3778ca72858ecc90a05ea89499a5b2a6e40b56b61cddcb49327920682919eee7abd4fd4be3b7e9d53ded77a9e5a543acb6f8abaa0d330fa8916d18a414c0dd4883b7b1aa3b1198e4339247aca326a757277463f2b414d46bdf5df3681763509e1c55ab13918c4b1a78516cc86403ba49950d1065a07f3cb124d059e5fd71d0617ea447360d6dab6524f9db46dedfbf4eda60b25274e14001e5413bfe7b7f0f3f503721715a03dc853fd7203b57c45237257a329d6c2479c63b4772bcae7761eae739dd12dc65d8d3786a8b28411b296633cacbe75395a10b5debbec79ebedb3993ff54ff04bf21cfecd4df1f1d791f5171ece67ab4b9d2a96fc8d233a778c9a597b294ccea9893bd9af82b4e2e10b1c159ee3cfc0f5eb867fb929ae518dba18831905ce0d9d3547ba1807dca5434edd9bce57cc1b83b8e02db852f63294247656269c5787b809a9358f96faaf07ec14731569e4778cb02ad894ca0383daff978a0ec1705bc12509cf33ef87dfb76a897f939cd9cd67685da6be0ee5de1eac34df23b287dd823bc13e1984ae9091ceebdfa0f404b617d1d973ecb8680886cc6bee5bd142b7b1d7dbc611afd3d54d14f8b2af838a862982ed0662b7c35d4566be24bc10d8d730949c372a5878e714f4750d276589e35d490ebc84444bfbe3eb3b9217bbc011703471b2cd518800b4d2de71f406cb304c11c3c33402864f81567b5a8d9ee510c7393726a8144ce5faf17ac318c117a9f8dcc18b44905534cf88894f9fbb9b6075821b306911a4470771bec3a1b3ec97376b4b62fd56a51a6a94cd74c75b731c53029a2cb1f3473ea2991d5d02ea7572b572381bb8d4acdd1844d1a9399cd3cf7b8fe1fd0fd3dbc4e9b15c92ea94f1174cf5ac0401bf24d9b2bc83aa3cb6e83d047e2b977ae3524b4c194b4a45a261743d055f73d39cbd0fb6fc80e65db7e738a42b470a075ed208aaba0fed3cfb695e8f5a1d4443db9a1a8c0084587657b8d557635abf0274a00fb8c9e2ef84efb8115547914aad99d18bc91286fd881dac92dd2a2edf1d5e6362b1f2b35a00bc22199b80ac5ad5ad75537466edae8c45e92f0238dda6a2481e0076a625f1dfc9df3ef76b2024252d612926105301f508c045d287e379391e86a24e49ea23ba017c4b771b7b77ed8a43f0cac5ed918ffcf5067ba2f59e449ac8bdee9cc855cee5fef36fa00bb9cd53aad816626b4f58d8342900ddd5133cc98a746d6888b86e420affad19b1a20b7ee43a30cd54398b6b9bcc7d2788907a2132c0832b032b46e189a1526ab44904275b7d1ec753964f739b9e9c2241a77978552e8c4c1417e9126ba10bfb854882a778b615456dfef1f5c50eefceedc61e4d685e1bafa09a1f38109eee2b047b7954cfa0937718c21c7ab4c389a57083ef935cb73179f4355906727cfd4e188e60e23c1b7c4800a783b93a8a22f780ef49f0b15aa58bd6a3307d6ab2aa2d801ec897834d431e23a54a832f515522ef77f608a222bddec7c545873c9412de81151489673a8ed28c7b914edf285f8afd4388bfaf257349686d840cd838b00dbd9c8d156768bf0f0c7815d6b4bee3f866aa79c07e978a58e5c9f739cd7508b1d050244a309d98155a711134f4f55aa1c324df55e0f39bf71e21171e2e540ed16ae2ba99f6ad2cf267a7f6f5770a5f1a33a4078c0e9873b17e23100f312939b92e70acf195a38495102f17ab500f8f02dcbe6fae0b02bfb9d290e1ff57956122dcf411f1e6a41e47a0289ff3aa76f94e565d86a0e13f0e49e534b9ad49bf538e53e4fddfdd9b9655482a5d935c38949f5d7f2885be3e80aa7050bce4e5b39eea1f966452afad6749d44f7524d0a6c8906acc07fcfc85fc92b5d1d5dabf514ced9984925356043b3091d05e8cb55753e699f3c1cc0a9edc1c0207c8ae13c1c29ab76ed3a46893879413007d84ee61de5f9b6acc654b25c994af6054d092a482057a8ac6adceb +shared_secret: 3f338dfaa091406b88dc39f5e82ec7582b90e4066882aca5ec4be352d4cff72d + +# Official test vector 42, seed: "44a6774b2cac02dff210ff861a090561a453db311f47b6fedb81811872d5d9489f5fc4103010139ae53fcaed209dc9be" +entropy: 4ed7c92d83bd03b2a25b567f17ae55542e2f6a4308ec0f3fe69f8ba5ae24331b +public_key = 68d31d58c83101c3626170b992c2ab3c181f3d58b554249aa9e73c9e691be2c6c402755ce0737ca2e2524ff59d3397b417965ed4c547f8dc97252c58f4367379f4bc9da75b64b4a40a329952623f0615117d28af7cfbb994b8ad70b2540978242ca0609a082dfd70aa5910778fb1cfe537c5c1aa5612029d9b972aec8235466098558c1bb4fa2b84e1cf9c16300035a57328b460b20facea43d5502958b968547b60a3c9255ea20faeba1f4e69cef343a6f3793d4b0418edec073909b6786a38fa3337c61c8f7af5a796f41a3731a4ca6096382423c941616452b6a5438977445ffff43d54e7b787cb9bc6c95c36003d87b9bf08934996f7301618c5a2a9b6d5d802d57c02018b44b0d95c5ac1c46b910dc518277be4c8960400b14c51eec975976975825b2d574965c338c121a056e2b9c9cd88ce4111c0eff01db722734b296540ab44a40214646c32713c87bba448d349cd5b160db48411a77593886c81ac1b59d10b51e8338a4178082ee858ff3987e58cb7e2a58cf23c28ccfc6141270c5ed0b883d01092c3095f0abafa2c43eaa7181136bd6e2b0c332b3e78ba665c73304df21d83cc3915f9c8073b7d6d907c13bc4a295432fb0a894958b98c9629d6a025e3368fa234399ad0aa5f8c8fb54b9af1d3a18d1a7ec1b22e7f5056c0d97595a801885202ff8c9ce2315ba340924d1c5e2efb2de7c1a468b684c8f7a363eb98dd4cce7ddab73447a5d263b2cfc4129be74174b50ae359c69f086153ab30038a13ae21ab5ef870c44490990806c4936eff553ccd9ac01d90b1e3d54bbf943b19236b935cafefeaa1059823b1d928cb77cbdc0ccff4024e79219852c0653ecaccc3d9292a18783c10cce69732dfc4585c8a45138ab94ef2c84de2aed22b98bee16bef556331e56eb43c3d92e55a7c1bbc0474251a70ac72d5cdb9b2a9ebb9be53c0cfc037c1678a1351cba5e91bcf7147002518b8c8933cca1c34f9da03d2b70e885059b259b499901b98345aedb9075aa1686e36a85c6337f01b4ea2f2ab29939eba618c68c5256eab4e6c1a1beb334f93e99bcf3cb31012b1252537f8d1a589430b46e487ad07cfc5c58a2865b0a92a621006248a46c837f095109a3de16b24b2339a509284c9055778816e9656c743a8929cb622f3e34f0141c820d231501c920581bc259c8be8b0928b58b6f1e2b34b628301230fb18c3904741a0f061cb613b560e972b406c44e154724f6af887a345acc63065481c4b468423742e742582386c00f2531c67835f3c679ebfa9aff871f0b006c461b760fb3171b99c9cc74a5378c3ac78c87c847a65f4bcb5043a551c223418114d58bbbf6aaa4422aabd4d70e7d78a61fb1af33882eb5bc886d154ee032b0cf300efbec2acc811ccd2c6968e90f6d146dbeb0932a569896f96a91ba3298c57c5ebb4aa130a7730a996054b9c058057fdb41825a2323799bb0a51fc0018428061ab3f3c12a6479c3367810acc4aa869867f5888a90a1ac51913292a194f1b3d8c976902221d3b0c607714f4fdc8196859c939b499e511f54e52d059a25449068c39081dd59624a6515e282935ea454cae482ca990a378a3b41e0b0adc6702a9533c0c479a4f6176be1a9a081a357f5bb98f835ed13ca29eb969f3a7c759b43464155ea78067752534d1044be2501c38387b31c662e6b9cfc4584e5dc43cea0805e273d9e56b71fc924204c8ad82ccb315207afe34efea97f72a21760cbb629d6391ac85fe28ac568b1b96ad8b888c9cceec93fc08825429614be352c55ab218383ccadf0bad13862778bca36285d67381164f5853340c0b9516ee3916700f4c3b8326e497ba7966456b6144b87f70c89cbc07a3a553c60b80e01c0c7e9297ec70e5a3017e906cf24593f86d3b6d1db26004b8ebd7047339468183c20df37055637995522a8322b04618b123bb3b1cbf765beb8cd17a302b88166fb84a9bf1728bfbc57853b7de3f113257359f6b7835e9953da123bfcf545e5e3541c8620f5f58872f1192b67424b5a9909d5324a342fc74caf906c69fbe3b2384a2a9bab153439241d6065e0f944ef67c4d6873635b3650bf4cc4a4b879cca63b6873c8e681982e4a183557e0465bb0f60a8b9d97625065d4727731e173977a95e7bc2ce3494b58071c1b89b1866c85ff814aa4843f7ab5bee6124c2166757943afa3df3d5f59581246cddf8777c228d +result: pass +ciphertext: dc5913055a1ecf9c95b554684a294b4a03cb3406842c86ee29ca36f740c42c0e5580dab3b289917c7e3378c630fe329bcecd5865f474a9470fdaadceb4dd94fe7dbe4e1f0cb8bf149710c96080d8752e5bafd195e916d5ab5a9af587645a3e982ade25373bd38a93a14b5a9f09d13ff95a2943229388a420e1592751b2adc2041091e265f940d619141cc1f358b91669b5018757a71bfceb76fd04700842a9b3a84a238e4677c1d15374a34c0302b0ab5d907e0ef4d43b576a839efb86df9e093dd25d9f4792a31a3bac22589bc68c500603afd6ec99044ce0f49b23afad853b45e1ebaf9f5c63ac00dc05d4c45cebf345146d1ef38640c8a3f641e21612203f503c181c31a43519ca123b3122897456a83124b4ac4ed88f822bfcf4fc2ba8df4aa9bc6cb6573b8585558775eff7e84b330f25a5c9c72d61b163f2e0448a2a5fdab6e3aeb4d97835a1aee23f56281618e6df02ea0094273728342f8b5651fdbb19e0858ec10c4d2e07535d3d09b7a2c91b786665aeb0b247ad1abf4bc3297d7de00d143674d84d2545c84ffb166d39b8a0664cae9abf621121cdd5009eaff969ca3d68a2f6864bf9aa13cc500a08d650914e36d22ba7e7b485c065432daf4791dfd606223cb66b6bcca6e90b3ef6603bcde3dff4cac572177bde955695f0d72bba2c0a06b65f22a622c9ea109fdf051411a06a295a34265ab8a733ba1af947984c8b6c3ee8aed5bcd25ff26ecc46b8e70528a38a86c1de5eeb6e5d37147fd8ce1f70999f5c59602418f16ff49622a3d0a5a02111f6ee16cef7207ecb3d651290434f962b2434e727a277cc45156e826d3f1d5cfb0b1508781c077c0199bb567d545312dfc0f9ab768e02db41e9c4830cf65d047ef6e24865f8a046748279ba29cbf078e05bf0c63eb24f0ee38de4efa3418f1ae1f925c848cfbe8fda802dff00516e48e5d77142f0861879d6f63292cbcc2eaaff23224ac5041a779a6911ceb196d4b747e74cf4b770e9103f0934d95009d5b196e7110532a489b78d6e6f084af9abc6612dc01addfe8387fd4cbfb826a816f6ae28d88a451db79f5164db33b82c0a4249005be545346cb91f33ef9e941faea2a64984f05d777c0a4b5e34400cfc8a181fb385a84099ffe714b91801bef493a914355602f07ae87f57bf07aed84b7bcdac762a670d6b6674b9cad3678b880005c515931fb4c930c3a4fe48e1d8ab7f35a352c6d6c63f122a01f6138b36fe0ba8d28203520481496cb6483005d9b00c6b828b320344bd9a2fec60525005cb1185b9cbf14b368a096c6a676a79869921b72078d21a3f00b154a467027663a1157c14138cd60a52f691e156c3407387575bb410301548042dd9208903ef2164522e32276ee0497a166624984747438f5ff6da89d7195c725fb80680bbe9ca6f98e2de2c791a966b216d4dc8096acc625193f550bd84000179de531221763e2fd5604b7a68b7df8e1ac43cd2dbdfe0046b040708010b7be729c6c6e705def69d7cee1465dbb7af3b4a3dec9340dbfb548b153d11e816fd9fa3f8356c0e96f9d1c11f72448b631b63ef1eeff4ffdf6f7d66163dd2f0ab41611addde395562d420cb16002516acc8ab40cf12f76f4982cae50c0685d70371b54a37716e5a950d6fce4f4de34a8523654e840396ca498ea90e044cc7fe019204133a55c902819496bd4818528cb364a5128ca1f13cdff549839669f3bf8f0001c0020dd1bbf91a204abd21eca71cb52167a058b21e35122b9015133a7fbe038cd2bb57cc46a06cee96de5b0f09ea26354553c6fdf4f00bbf750c16d452f20043dc5b58e8a3ea04a19905a39d7174cc8a7af304c8c69f3e3c7f92a6d450f8820dbb906c98842dfbc66964758bf1a60892657b445c9015f4b1f3b7a720c63454f61ad925a60ca5288c490f5f47de14a0b880b19fae871cf15e67e3d8fb7d7a11aeb91ef8fe0d957bfab406200a32d83f9ac31a4f79139005b8d3ff506e65556c1df42ed2a723df287890e11134c0cecbb80e44d3e7c1590258528e2cf2295acbbacb41a60c209e9e7d62fa70393dd3e16cc487f40e0425654fb451680fea99406974a01fbd4054b8d197b99c81c1d624aeb225a1c380aad745be460121886f7eaaff265a237c25566315fb8613a623a8de975393d58cb6af63f4243f12f1493a6558c33b383555076c1bbd0a93974ac38e1012e6cea25d54 +shared_secret: 59c094e831e466b4329ecc5f2f627c2bff4d0a1f1f3454f5b052fd1be7d6358e + +# Official test vector 43, seed: "49e1855588b6235df2a400c4a70aedf8ab17b6e5e2891aa745f132fa2e7ab0c8117c1df37c39f5d57624eb77c2b4a091" +entropy: 060ea5d2ed1dd88144a9885e79278590821c22917b55a48920f96b53ebe0e689 +public_key = b2c2247d98c617419adcbb5027b320e54205ec3b9c37fb528be1bcb29624f0851a9844b83c5788a2332c0148c6c982be4ba98be6d9a54623b8183a66dbb8456473ace4f18829a56d1523497e1731c524ba3545652be97aece915ec25cb8c18364ff961dad655e2d08e14293a77963e4154b5d52a6d424a3ff976b69fd6c073b7bd960cc397d7511f76aee624240cf6430d612385a21a33838d181c3f77197e530463e952662e512a538b81e72913eb32357577319d29599ea2ca2e088c91681ebb295c5fb3c4f11643be6686f62b259c737c4ed37b38901eb7a79d5facc426438f6ae228338439d136ab68ba7ecb760a3b45c77f186c177c2f79f47f7cbc2a43da4b94371e4ffc9f8d520a9c1749d5b63b01a2af5b7a10ee47505598ceba4ca724f22fc15626a5243895db48cd2bbee25c27b171c44fa09d9dac21a11803ce0a6492b72d16803dc793cabab535eaa44eaa14b2d81a4162c32e73cb38a7bc945d0c1d6e0022e2785093d66c29e31616ba7ea0f58def02339ad231c3806600ba8612080d6dfbb50353b0fcc98dcab2c07473b34e05a556d777cb1982bbe521b1cbc58c680606f352b1560e7e4589b905b50c299ae8d3328a3729ac0420c3d23eca06491c43ba8d72af0cab1a869002434476bd7527f27b751c9364670a3730c52d514454e03386c66406a4b4315c8201db561e9b79c2ca4c60b25044e6bc1253465b4d0206fbf695470b4b7b8bc068d391f5d0b7e9d8028f1591ed916da33157cdea92ff46ad98d18e1ce6c4b2f75854733e913c5ad2d13e23ba51b7f8c2d3cb0edea793b55acc3995c97d3c65c0981f12913c88b56f62623f41e85a84543d4e4520c884981a3531d200ccbaec0bf1096fa7ac429a9b3bc1a2b38de159c2139361dca3ea805d97e67f61d10c0911674fe148b33572797ace2138ab478a51057306f010661d569ddd9a4e55e73f67f25f0db09d61f1951279cb79d814d1a21a4ff311be441bbba97d81935b31bb4dd558544babb18175b893357504589fe79170199129e78874882aa89b87c20bb03591f321419a41c1a78f87016b4e551c6928a37fa7c60708afc03c8b5b17001aa3088dca6ac9ab93fe5665f1781e36d7813945471f6945198983815c2737713f9c53a8e717bed4d9a7a706ac41d339001c5d74548388a2439cb0142bb6bcf2e23442155adeb4269cb39432d31455f0191a25822f35c889f2962ff081f1c1b5c55b9af0b14a414b618c7366fef512d94077470440fed7c2d101b5c9ec7b79ba17cdc14653b6c3179261a9401a0b20bfd201bbe243b8cd1322fc872c4bc29889586a8e302ac26b043b605c13c1300a68c95f269b2ef49402786819668e964c921f765abf805477ea239d3b8b203c7db303afe5a8c70158874981c663f1b3f8a645991cbe42a2498beb4579b314918c85a8388f31e628010bca96858a09e49365725b31d0726c0379709529c38b47e15678ac9625b28a763b579af908cc1cc45a5ecb23e5a6ced504b9e3101cc562be9714bf4931cbab020fa3e10456d23d2d01af6dda8dc6e09ec6aca54a3253f5d905d4b34b66250f80324060b1609083028a63aed377a7cca6a929da786eb080db750cf906c98eb9a105f288a36427519c0087e300705524ac343b2c448ead7802404417cacb6ca5a398c7e9c2a7b2855fca298ab1bd0fa9c23af9c5079496dfb2996a3738d5ea37ccbc24f1744eb9f5c672d74968c872392480fba91daf0c60fe96b13828bbefc6156f860ca304970de5695553a631a10c799b29b2585652065f33c6b53179bac6473b4dc2b277284181c7a2a9491ea422c5087358ef8835bf5711df91b38ab90000d324e7b6ce841830bd952e18583eab6b6a922427b2d094ea633cda75c94bdaa1a3d928fd2376a876ac0306b1ee631fe38987e50421389cb224d4045e260a9d34508d1739f223765a3a8f2699a8919b30f80177d9e141d7d9630b46cf5dcc4ff85045e62a4f0f86bdbd6367c1471ac4b22210771eb636c2bbe564578266b8682817a9118d95ade51031def42e0d9cb273c03e3f93ac97395d9f09be36eb8b2c21a4c74796ae501758b222101634d1668656b02cd0026c9eda07c0f3bb7d99b7fac6a78793bcddb2a18cd4262039723f41223d336451eb31911219750098125d62110dfcb20e30c6d5cf75212b294eadf4ac273ecb8bb5beea59108851b4 +result: pass +ciphertext: b646b26612445d07ae9377b787af734d0f1bcb2ca61f9392d5b1d60cb66fd916a54da0cdb9aa35d59c7fed3a20728bbdf90d5f149600cc7bc4e36e577db66a69acebedba78142aa18ebf4c8e2dc5b1cb919d37d171ecf6a0972640e5ee2ec09d60f6c8574a4b626dce674cec73941c15bef59bd002a96a0d5c47e5c8149382c1149c85be6d96b0404858c1c5cabe68e22b85176d4443d491b0f320a63e6bee2c0459fea321b4fb70313fa63948e7391aeb9b9c28490d80b1376b852a33c7460a8227669c8ea6114665c91ea9bf6c90d7d92db6e8365d42f325be58a7094a40dee5050e53967481253a929966aa469ab11db9c3a388066284a5aeb6fb209a13c888c1abd2110d695acea81487cdc8620be72da3e8dc5548ad50e8da415238a96fcb0504568c161e9ae617b12409b25f27f2c6f3554136a429cdba75a051900e8100513c02cb87a360d38bf0ad7c636898fd98010d68ca8377c637562b42e7327e43cf6be833c1432155f86b28a0c5c7f70787fd021a2c5bd689f79f8062c94daaebcf499e89b73fd9217c4c428ae08db840738e8e3c12d13d2205b3b29ee6d4ba9c3593346d04c770d430cc3b016b6bb024174c5a912639f30f1252bb46b82c1cfe20c923b5bbf3ee18c072fafec4a3f332a80179adc86060b7ad3d5869a2ec5c88b10058f86f27cfc8d6bd3037c599ad60fa9ad7d922f788023bcd585046f82bcf162e741b1e7e2efc63afe4236c2dac92ef56508a7766cb6e3999ceb69a4379bb9f0768e21a2e49b145a028023863e202aae60f2c9bbdc34d65811ca1757a30ac7fae86678085a2b1c54acb0ada5b2ac82bb6ff15a4d08e3777f3fca2ee1b9ea69c4ac8eada9213aaaa0e3c49ee071ab9b7a337397a3f2d8c54df4ed13c242521b5e3bd80a2eb844e174a04803c68f8c45e0976e0042e85796346bf7e027f71d24b6ef4135ef05abffb64a2a8a92bbfeb01b733edc27c03a67d8f4c369080835d763a17f1f210b55d633a8f404d361c8de3c81da4118ebec9fb17b52a9d994e47b93bbe01a70b384ce738e08ce7b0b12f2fbf5a02d20d170dab8551467f00479d0a7ae184d385f6d74ae18f6329e149e8264f5f2e0b9abc6afa0d675af74c58468b45e4562deca3168a1e8d41865da855a25756adcb182c307c0c068cdb2ea292968109981d72e94871fadb275981a486dd9a658764fb01c8c53ec70fc52a90c4eab76cda5c3f5283c84324fedee0fdf9758e5094c00f81c7d9c239797abf10fbd53138f4ecdac12c382bba60fa766c7efd6482e4f1f66dd4348004e02209976b8934266d5360a85d73510fb3c40848f40f5eae1af28f85349510839eeab1beaaea9a5b197a60e8e130618e08a203d2d633bb88491bde3380271cafd119b84013d9ae0d373d2f6f5299f820d7aa29bc457d2ba102ecd9591e196ad1ffdf95fae9ebdb79ecb148b3deadcd0754bf9823a9a14a42611bcf20d77e8aad7d65bc912b2df657fe8ff43cee9a7bb34c1e119e8f69fa00d6a58c0543cefb0d35f970c1f349c7ccee8dc22a5c0fb653c394763695baec9c7ea42a8e7e7d3559bbf67ab7fb57707a48470fc54821de07bbc006b3ad877d7c660738283043952dab37b5bdb0c7f3e538f987396f9c65774efde07c0affe3f69360789a4ce7d681f0cde4d22361d07afa2b1b9906dc67c30a4b5da3d32274227768e8754d265139c54ae96207390067f97c0e1d791a413cf4e02f0cf9c65aaddc8d54dae6440786131ea9510649dbbc7aceb1a07be479cf6a7421c6ae1ae1733e3b19e19fbf3b6401dc6b4b27ccb1ef24f4525d88df1fda4f0b18d21ed6259a81572f8d4136c3d67a36f28e5cc16535afe95b1dcff21694c7a62b021bf56bde5a31eaaaff38e60ed4861282ca8d03cc5a869e0fd6e61b3275ee433784925f6bab1a9734949801dee45a9acd7bc074113ec9c248e4011646c34a321b0a8c566b88254449bb1db9a8a796ccf67f1937bc9624b7226e0c5e47edd520ea4cafcb0590b9b1129edb25c1f1ababc9738e7e7e0514618daede8c10f7ac4a26a402fb7fbe34b8c659c781d17e3305d7f29c43a4199d69de39c9dedb2183a037d576e985d1adb56ad3e7855e9dcbf48cf19c07a1fab67e3531d70c28e8a587fb3a73e2de6b0022e6ffe83c485e4d3cfaa7f480a419f23f0494abac17ee44dcc6caf8e196dd81634e1f07a18999b27cf6 +shared_secret: b2420d66a17633b60ca68b5c7adcf36ce7b39ea418b39e63bf68288a5af09112 + +# Official test vector 44, seed: "df0e41d2f6f86c1f79d31fd5878e7ab434fc0af3a0d5f47d2ab3fef31a42bd949b0e3629df9f575befbb62e829e51dae" +entropy: 10ef9426f8c4a13b52325c5bb4ead4596ecf2c6b5bd2d37d8350e90d4164fdd9 +public_key = 4e35c7f9aab819e1981647b85f7b73ac0b8ed44a9ebe203998771af684086e00a0ba098841e7979baa20d82b450bc35b88884eb935788dba47bc63247de5cf5cda3f069a02874598468c6651842e56464d9731cc027aa307da811c8c163d62cd057863a8c2764f81c889d718d10267200c8c2e7877d7d853a73287d8b1aef013c715f69083b29a589b8e2afbc72a76587032936899244d435f1df58a957091241728dbf57693f46accc214dcb89fa35ac97c77732d0768e11b15b6d5c915ac78d5aa17323bafa8262f75b66d06f55eb015a5774a3854d09bd130473295a946771652176dc0479cb862cc7b93494df1c815d754f86c290f44c1c828228d48a5573a574a2039dc9140ee8a55c6abba1986938a47b0e84859558399a42ca013450033c53b1e978d5a3ace10a87761d51a19bc349fd19f555042e0e2806c1aa76436bc32831f0935c51384b6698a432fd4a014157b8a9858cbc216fa784e66bc09f02258a9dbbc402422cf652a3e430301678283d19889c7b61226951bfab2814a7c7a2899f83670b1a396f4d260aa869feb409b0af63b0b2438fbc72baf0753fb2c7473d577618109a9d2c2a8448a0e756b4402c7c0e280fd1160f20b9b384224fa2ba06ed2274852b15e1b35851ab6e8a5bcb646ab45a85744141970f6c5af2720fedb56abdb65603588d73109630baa73f773f260c63d81c9137100b1322d7c21181285b773b7c552a4000cdb2830e28daa17ca1db9bfa0226e2c1ca720e7565e80bc08f1c742e453fb2230138bc430335c2965386323b269922e5713957057311ba3394320096075b492b641369236134095d728341db3aa13ec453eb4b9c986085e23453e878e42d20c9af4376d092da16c8a9afa9834cca64f16b2b1561a4068c0245c4b6e329fcb1c0a9b15660485672ce70f3f17b486586597e8aebf9987af18bb2ce3267722c549a8519527515f4129ba5c986327996c38babd95cedfc1305f4378fd2c8b6761a24334192d47596502c86080bb202946f34c08d7e201a3ac937844b181d739b9807ea3d6792cac7a7a1b4ba7fcb2c5833cb0101291523208e7bcd486737b982c1136381be16f75202757fbb86970194c4a32eed31b01ccc5a2f0534bda8ee61b0f4a2023ca58b415e59a8d9bbfa9964cf765b31fb0c565174bc7b006855c9747a66747e18e954444dbaa8272a15cae2b7749b08df9811e8cdc01fa46a362052f50aa06eb2249287abfda0aadb2e719f1e1afa3c29d7c855a6ca27aea661f40210c1c629f611343240b3968238746a245ace3994bf88b46893eff1a3a6096166e0bb7341900e73bcc36bb92d3e539e456bed44b84cc00bd836081704ab2e4065559896657ab31c60c3564981453b58bc7e238fc5b778cfb4aaba57417009a789a13bb075b6d9541692b85ab52961fe887c29289923797d18ab8c9d35230624b004457f749497267a2efd15fada244c1d35c44109add503328d063b7e8c0fb8c66bcb42c8b1c1eac421563c232e579431fd9ce4d572904577811e23af28109b2e419515260e0e1bf4a969d18a4378147c0334a5886046833ab8d06c78041c6b848a43810208a5fa0a202ec2320f4adb15bc299c6649c694f76311d8c0450ca829c3545ace79a33e0942f133c35e1e6be342c30fa9b8debe6820a3cad5a2995414bb7f0744a22194435ea8e5a534dcb8c754bc75444093af5d72490a3468bd06bfd1442870701896a4f1fc11fd5c8c50580cb06192ce7b90f81d920a3bcc52ed02fcf703428c22c8ae25fa56085f8033c972b47c61998db005b019032d7a83660803cd39014bb3165c94b9dba1c6e38abbf6567cd513283174c42bf4605b3809c29dabf149a650bc906a4cb1e33a469bff3820713040aa067701282cc1c6826008f8787cfd0796bcb568210e088f649349ad921b9349cd4998189b4b945d92ba6bbcc972155d26920e1a756bce6441748c41c6c7373723a9c00434e485216d92dd6884f6113068fc2b798790f41bb3104a513f0e413ced19303f396e5f7c72612c4f4112f41518ea77c850f7b8e64d1b6df73a40f87b2945b14b8275aba42b455253b9d522263e4bddd6c24222062ae68bfe5ba4193195ed026712e729d59c7a1f519a9c65c566a51504cb93355a33d83acb62a268e02874c67c89530f914761b751f03f3d2307ac9ede742f51bce4342afd3cb6ce2ab83fe +result: pass +ciphertext: 6a873bd2880d314bfcaf492967c54b83bde3ce79b864c718d15730d64eb990de99ccad48da0afa4e66c505c77656fe822218672b77d28e4b14f4b11aa9ee3731d6ec00c807104bb09aae7f2d53b91fa4fa9b651ece46b5d0199054f0d9b4646845d2fcddfea617f70c5ce3f40ff7b41bf181223ad2cc1f45a31e6bc9b822f7272cdd80fdb033b36f4f7db10b874c123d1fdbfc4fcdc167edd8fba63c519d66167bb44c70ecd648362d811f8897ec4873fecf69ec6881432df9e2d30f83a5bf24bb43314e0256065824746883cc13908add804632f501a0be1d6246f67c7fecece41fd4cd6670f2e12e238cace966f8b83e02cd8fad38b4e7ff7f6bc8b2f7c9c1ff7f6499305cedfc7d472e89df731739f2a9ea455bdf110899ea84b686b668a1f52c6ff2889f565fb55ae8874efcc985efe688d5a9f52da28ad4fbffa0c9d196637251e91de6d2d56b9809e5040fd0d43cf756cfb5cd14b40da7f2ed1e94aa9b384a2e59fa75f56e5f5d2c441ad4bad6ea25c76811b3ce8dbe2d7d17dc830d8dc57c2e9f110ad2a1aa99861cc7312b9f0bff661e12a15409cd6d5536d699bb099a26fc60d8e891578039c435fad1fed7bd0fd13acc016966456168b51e533166decb49912780a842778a5b35c638af3d4de8d35db9ec0461b2bbd585f756c8fd8b89898fae974358cd6bd74a31fa5e223d7925725b602d44483bc74ef47a32ab444f7108a7488a27c013af0dfa481cef8752e5e0084df001df2b1a8022428c9ba7b0289f4a3b8df3c4f4a6a98d215e1874abcc6b5094157707e015e79affb5bbfdc272e64736ebfecded3c18abd25da44a8df479489b3b9a9a5ef178715e1e132ab38d5a09bc66e68ae8dcf464ab675cca458c608a9323f346ebf6a5c0d9eddc61a71c1e13f85069a2c4586149702e03a9b263ea68964a7edbacb77e59c4873fb35fedbc0b78bb97a172a10148184efbfc0ae272e0372b69482871a2a1a04f7da28198e7cf8677bb7e9874842d50067e247a506ed9edbf3934546527345599f15d5dc8198b03ec44669bea78f489425357e2e9c5536ee9d79ab164ddbcd3d78c1b90dbcdfeea79815d3f004520ebccea33eed44e0a3898bad96f4ddf7eb7abda800cc2c11ffc71c30d8ce610d9a6e43e924d0f462d24c15728699105cd30aaf78f5ade69bbbf7ab2b10c78714121abb09918077eca882bc077c235395e76d78afd271a8b27899540cd4a8563d8c290d27f01534311441a0aea72f6b23761ed3745134e6a4a5df91d30d961ea410e18126983aaa9b380d3510afe914a56668bac76a439c5b610abbeec3a213033d642f2417aedf224a8ee0d96ee6d9a668f5611671ea4494cb9415f9bd11093b8befed7f38b53b4b7eb42d4610af8f02af8ae4704257323ba7cc4592c5e29810eab67f6ee85d14119a85a7302ecce88e7fe5a2ad747326fed534fcf0801ead1d00691b8df565c14d2e303583fc635b6aa70dc12ad8fb122b8cc7e991907966288150affdf1f507168dc8ec732256279ac77925679540a08228a74fdb8c8571796e0f6ac176691f20850624d5c4ce8276766d628d06d3eb40a96ec70a85701230cd39ed63a33ea9c6cb73e46c3dbb114d7294aa65836198a16e8742b1b4a4484d80c0d79e91d5330a067d1f2f7ea8e9ebdec57f88c38167c5ec7fc5f2e196fd5dcf02d99dc0e65811472feafc946decd6737fd7b101907fb6346e32ebdfde0d98a241cbb35a4b28b41f6abad162ced0c5a55ef8f634bd058d1f96b05dfe051a0075eda9fd77f119b861026b8af09725175943d3f2ea105fc143b962dba902de7c5fa959d1900f0eda2c5eda6b645c985fd49cf6e98f259a1474500445837797a6ba15b92abdfee1fa409494b277a68716d52e8a60aa4e80c9cdfbfa41e9d326d49997b74a081666eff4dff2cef7206957ea78486f3ed2e610431783145bc73753380a7f82b13088409871a5e4db16b4477e8a12517d05720e2e77646de5ce1c1a9e7f58b06b2ae24ddbf9f4fb281b5d0302cb8f7cc96a6703280e7468808911a28e93b99ea06d135c7decfe3c52c877b781f9ee49bc382f5af000d350ac4f4e12cb50241180e6c28832cb1aedb279be2507b6762773da39185da073d695d289b082d777c052a620bc3c3d41021f3516448f0533cda900e9b4cb05f66ac01fa657990a4f5f474981df918af572f01ffc3bbec1126 +shared_secret: a108c039dd241e403afae065b37d609b13afe12380471f5b398f5a66ccc78f66 + +# Official test vector 45, seed: "d3c9ebba6eb03ccb5c9b9d2c8d7f0cfbbf50841e24396cddf0e56525b38918c2fbe6c34cc1b93f7bcd4f4d5777e1a488" +entropy: a4bd30a64cbf29a4e290fa1cc1dfb99e68348713041e4409a1af23c5d80c15c4 +public_key = f39713c311077c359f42971b65463a8de1aed9879abd512cb55b6e44f5c690e0a3f60768a778cc9cac5ad6b897379507e3ccb994956284a7715970b0e3f6189f0c66d99c667119b82d87a6507141cfdba46fcbafa8a2a1352139b1024dbc64388a3275f34180ffdacc380132eff35eaf788364f3aafdd6af9c02cfa396592282cbfa110792f87b6182b2f36a0a895c0791276d789976cdf09d2c16a32aac669647219086bd36f6bf631392510c0e0970007a88378b647b52fc20ee9148cd4575bb8b31b06449994098bdf77680a48ab51b8e5732545d6b87112884e35a2302f60358f651f8a71c0789018dba79bf5298a9f6ad16bcbbecac4f0cc9888cf55bbeb38264c885ce098fa80463f63806a544bfc194b77895a76b22b81b1098a8c3819e035268d22f4ba0339067ab3bb30e65506a86e74fde52afee944df4e4c745f9393ad59117dacf74a407c236b8b5a2aa11b1c9f86163df31129e885ebf68040f822314c2bc4dd12751851864d743ea49b68a93212d392845ac46f95715796a488cb44072ecceca89878f37b51d662d783900b6341a65d894771476fb942ed058b15150bdc67a3b7f4cac93733f735b81f8dc4aa5eb1288d761b0b74238a5cd73c8bd2457bc195b785fd31804d654aae06eaf5b08a365a472503809b416904162c17942fd27671989c553ab5137488f385b7b9519a69cb496444a7a2db607adea5c3e128bcba31f586c5603f953f4fbbb4381cadcb88d6aa7784562c6ef302ed398cc2113abd257c9554818c8175db54baf20024978e167620b672b28bf24465d2cb4cfc6c08739fb9696bc84fdd76b136b39b85c7deb4c10ff59337b4112e32bb25a665e9cf624baa86aacb2a18ea3cb67462874117445f913558c32e5eb7e1329cfc2d99ca4d83007467b80d74d2ec9832a5785fc7293eb466d55cc8904874bca5714c776579b253f86b17187b9c19d702ae65aad9d7cc23afb041e593bc41308572825a76b4dfd51a2bafcaa10390a76e08458c384cd0089668955fcab00082759de9147bdf581aa4a81f8f82bbea84d255b43e30b6728fb7a705c0aa96b794c7ca28730c6a1b1b2c1040fa24a98ac862ed74453c03a3d842cb0bc87409a09456c739ea08717d7a1061041c424d13bbee299c1ab1bf328b42314263f186e5b198bd5b1712c04402bf849df6473b8e78c4009c944d05277c68d6eba8555ec48139560922a7a142632d4168dfbc6396d0046c53221d43b7bbe01bdffcc672f214217679853d3c0939acfa7b45ac81b145e5bc7d668a4466156faa6a44ae2b9cd6caa5d42cb1c2ac5aa847cc6501ce998b2896652e2c901483acdffa695cd1625b124a8a88490b12b72a5cbcb67a29aa955247fd17ef46606ab5b5fda6ac39edc0128e46310903b32435e2f02158f678462f2bb230246455b7d307b5bdb40375c6cc507987ef616816d3a97545bc0f6e44c025c961cca33a828beb6480494cb9049bb2e0c8734437ca0745b55174b67fca6abe743c7f9793219a19a88298211562e7ad85643b0b680c957eb6b740ac142276822900110f3998f2b043816c9216c416d64e482dc1053928722efda8c35bba98c563eb4fb280791a9a330968cd29360860737d3cabef87d158419cd8794d15771588cb049f393d3729fe3276590488e97f00e63b6cdb760c22fb853352c2eaaf7340b204d6bf8cd186cab5f786e7f967a4d147686a690ca7308173843dbc0bb17fa4ab2788436f43009827946265e86e782b97b2b27b87ee2c0ba9ff23d6d620ac02124189bb008d54da8f0118a081a70040b0c722a7b5a97194c5641078b22446d7ce9b66ab9332f2ab85d7320fc651eebf8b93b838421ac6818f87673872582360bcb903ab70972e8e589465660e6e4b9295675416547c277827d667102c99297f9909548c52621846f5978a5d6971ac97c6df5cf1a3a42717194f112093b73642cd757b541c6d5094931d97afa952ba80024b5d76caa088577f24b86208da3448dcce24769dcac3af496b4ec8e634294c7d323a85128d4e20dbe5b7bbafa8fbce12131f0663572a4c1a4885ac49cc607578042c0c68853b661b452662ae194512b208435a72ebad23519e07f96f59edfe2a5297c351bb38773478747732d9841b5c26091ce45559d7184e1ca01b7c388a8cb030a00f66b47988c2d7d195332662cfc7d90b279248de101f77e30 +result: pass +ciphertext: 5b094b6a42f9e8d31e0d9c28b18a5e323246ab6fb4a425fdbbd85e4fa833b4a589c910a3446ee9c2a3ff7964cc512f4623de3ad6fe3ad55f895c90d95149ebcf10a0654596fc8aba7caae1a59663ea958afee82518f78bb9839513d7199b10ca2c24f7b22169c17e7673eac8b858ad21d6aaca86017ef069af7170f5c825de5205994ff786ded53fe3352acbff1937181b2a29064e19dbfd316430a54b2369218365ce659e732dbb45721ececa352188d551ec1550938b7147cc5b2ae888146fe86b01750a85e8b4179e6c8a9c9adc0a881e5c5929299ed199964981e3c94b56a5e7720eb9ece6840d27861275e06d0be5a3057972604053d4835554d68e5a6f85ed8e2e101b2ddff770b8f4686668bd4ccab7a3fb58eb78e14e28f21443ab2e95717f8950e5b79de809c46cc434bbb592bed388d0c93ecd9144f41a7d053e312be740fb66f6be31538d663cc086cf23b66ef9771f3b2275067d553a0a1e6fa6b32673a1a2bf1dcffd602df83af95b5da97fb2a9df78a745f0fdde031fd21c0894234d9700889d825561c49c14134894b99a82c6f0c776db90773012faa4d7bee06877fd415fd407c7aa5effe897d70ba4088252fea08f56a5c16527c50283b1ee18db3e353196f8c031caba69ecaa877944125decc249842c140f30377c0c36525345dff045957be02ca335feaca4ebce4db5b5c3e7009eee36a4a9753bd2382d85082d01b954a0f207444e8a775582566a6928eadbf41ba235a1f0093eac2c7e27ea73af81849a66e2ecf8bf94a0532016ca6a43aed5f261dda9388de24e0e9b594b35259fbdbd46e5aa82bb52cf3d39574c46ed91257f1c49f93ecf6783d2b01ba5acee812a0b8469e5e4224821b17981b79670259a9977b54502bffaca22fd424a0f5566dffe1371ab30522184b533b9fefa5e6c6667f4e0b85ac805058a947ec77f61f50c447b2d27f4615684a3a914bd21b86a9ca58aa25526a4ae98ed34a78100a65a9124a1b2390333e96dc87460cb9e506331175fe9722f18761b1455688aafead26b76f13d852138d25f017279ad113f7b80b9f443973e13649dd12aecde5c7fcff30f89389fa138f6ce0e9e7bd5c383879398fccffa0505bb38e4f19cb6e65c21186484e9e10276fac9462f77b0fd7e251bbaa21ad855c8c56ee015ca8c973d31bb9440f98d9f7096bd2383720712eeacce4b8bdd025a9db914396139805b7d1ae8cccfd7491ca90526b8025176aa313904699babaaa0c76208ec9d3d5766b1844f8953f89b6fdbdba214dba86475633172fbf497c6f4343f78135db84c3e45e29211f517852cdad693d5882327f2529069fef977a7dea5aa0754597bb9793af511aefa511f678631ee1b94bb0ebb7e95bbf31381e499372241f0718fe2db2b8d4b30b7e4e9d7c9058967df46d8d2d160f6d241b8e05a4b70df811c43307f57f9a1f7d067994f6fc4e30d80a480842ba8ad0e245200efc31a0b8c6e3c39d01ea5d621ebec15a7a9ae5108ae12f8cca83f942053b31e4591401bd7e800a50d7c1389f1db1b771902e144d86bcf61de58b88dbcae5909431e81ab6d942d3af39c4518e1d4fa7f05b1a716006fe5e33d2c87603fb7de199a98252e28eddec620ab6df85137b8686ff0e2d4e76f4993825879c57c5d84e0cb4be1ec75f791e84df42ee7d7c3c77044f32996ee7b7d0f85c77d38f342fcd0e1be880c8bd2ef581278d4b75b3b80daa9d2c5c28a8ddd2758a3ed65fe42f7d4995f7122220f4ed660b7c2dd20916bdce54d2cd62b787f009993a51e0efc7aafa224fbadbeb6a719f8dadfccc0ade3fda88e7ffbc1efc061ef486625ad06ada94487874a7b3f7844918438729fcafa50a02cc7033266fbf052842fe95baae92db63899efe7330603b50f0de189e45e9600c822e1f5564c2fafbbc50abc2c4bca45ab2fb3425beaf4f3145e2dcda7e82da95b44b38ac19440963530ad99b6f732a2c06a98f12cfb8557b83dd515fc1284a762c8dbed28b21f52568295546b452c7b403096b78655c3d18927714e82380ca5c0593091acbd2e4ecf21891955bd78c17c90c58f27f575d1cd26c5f1be1e530b5072b95033ec174f1ab4c7fdedaf25d68fc7f4889d63d010250afa73bb30906610dc5ec4bc98e7f4afcf762e410a68f3e2bbceb37a1794c8b4396f5c6b06fce43c39194a042baa84bb49b78938fb97586732d4a1 +shared_secret: f37800ef70ba18d14be289229810194a8f3f6f8c3a8e71d85afc29d133663964 + +# Official test vector 46, seed: "6b3996e8bc6f52879f2b7be012c44ad555707cb7e5fd8abb3457a298336d6fdc9eb7853008ff13201d5969a315c7e493" +entropy: f4b66a7d3b65b896dfe100b2cad24b175a1168cfd2ae11fd704b835f6bcd311a +public_key = 2d661f371b1f9a3c88556374af9b603c8c1db100ac3e600c042672bcd971857232fbe70e3c1280f5ac45d0e819a8495d2da89ef5086b110773c7d1539ec94a44fc0cd6f4a39362731f527de3f06f4a78b0dfbb94e4977a564c765cf8ca68658fbe27937a7b15a8671cfc8b3e779533d1b5c092826b3038b213550421004012a4cb3f12478efb0c92bcbdca4259b153584bd4b65a6b8d66f578f6f408bfe246deb5304ce5487b7a95c6db5605818e26d2cf5fa6adabea9e3a48b6f889305c016055db7a02a34ba5e10573143ddb8659fbe25c7b621e3494aecef037effb36b2819a1816788a6b410918745c2a423285c7e0021cb8c8793b60b4c9061a39f97ff1212f02d387d224b0ec258268a374b6e27ac9c4598fb78c387a7daa439280d79a6218b3ceb0bfc2e685bad8801d92b5b1a42f64c8890709c58c95bd8ebc43568c33362a53b5a12c052489bfd806cad36dda117b2180b68cfbb317d4bcdf745c50324e19dc7b17ab7f31649a57bcce91fa720052afb0b0ba5e8b57a5e4296b1c390da9a4f76a869af0b9389c0ac381aeae0a779ba588ff415858b3300d71b99fc172de950a95c3a61c9072b6f2a7cd9245da690128b9c597c44903837b8a9443865c785ff6bc05854e1115b9e3d7a70c7c40216ca48b1c6497062d61fb8cb29c71e5800b8e752e70b9a8655baa8408742a511ede8409301620f3bbc2a27790dd7058841432cae4cae719740835571ce65027e74d85958db506a8e9601c1f5ba5728a6e710a3d3d93748a7a640c460167482dcd6cccfc238326171927c6a72ee7084ee97d3e7519744ab8df651b9b2b69d4ac7cdbd9437849114e29550ba3321202906e9331bc7ccbf4571da4c6ae1a0b2797ba4bcc75398e18505eb02dc760b00f687c76f2a35f707f609ca149b4be233b3ba4739e19e4462d78950138cd1b210904b10a83356156a63631d4a6193c68e78642e7c5c0daf403e8520cc2f7438ae950d4136ad32684f2881c50c1a508b0442bf6c92f030f82653578c79fb4eaab1cb60df4870d6966ca5bd8651400a5a6d424749c8cc6aa6fc90b6514a8274e633aaa74435542bd2eaa354d65a32591819b8233834abf1391470085c9144b8239390f97624fdbc645d3662f8a7a2b7ae412f8525884081b3282390f8c35e2379aa5d234dfe9c0c94098ecfab31dfc315413c62aa80fb8a9ad11d070d02cb192d18f3717c1375401c0713437b0868298205162a78f8b00fb46ca2ccc6dad2717185b72793b2aa009419a6330ec508c8c325110c53fa0512a713c500631b36ac410c5a966edf1656419740baaca6719639987bf5e17444b4122650c87c884069fc52ba082837158b9bb85b2c961268284b5d8636b2ed3bd1781296de78a1cca44502a779b2bacb6f86d676355d4d527bd050ca8d33a12d059e6d697f986177e1b95424ba97cda6b6ae0191ba70bcb75172c354541c7742556c5fbe591f33b9624452392412f3859953ac21c50d5a445a34d94d492afbb01a84c844fd582802391f4f4a5d012a8a62079e254363fba52c83a399bb3398f6807e6f03f74f68fc788187be6bcaa5491ff666c98e43c3f860470380768f70b4987c6ea10411ea60fc7e8cba0b1afd72a52713a41a2172804ecb9fb60315e37c544555a8aac8089081c6c2695af8011bd991e1ddc87c841cbe0c0357e04489785222930a5d75b81cde91e5804315bb30bc93294367a4623a0c4a0ec8ddc436c7992b157039879bacbcb590490c28ae7c9142267654291c06a75237b24b8895404cdf32a073c4922c202a087bce07aa5708816818564c68237136c0a98119c2a6244a59051071414425b9230a6113cab28b06a058e67b16b9b3287f001422c276c78aaf608820836c863a1555590bc802a70abda52e4c430c80992745945ebd343277c222836631c652dcc425e1fec6f22383eb78c9b47967e865c6382231b4ff42b94f281c4e9a849477706c339a48ac2c69416d1e51914c751dff0b74cc657a8d9b0d0e21cb2c3a72fa241338b11f529a0ea9cbb8bd310203b29775867f23b7a6ed35890f3014474b51a578110cb1e1d052d2cd03a19fa06f1750279476642752934201c0832b80b552c7a4b4eb1118e2466624588ac1d0148c1c0484352479ea604758012b5d49e885965bf6ec29407a0d9d3f1f08826007a5a3d32062d2a775728c35116642149c2d449 +result: pass +ciphertext: 5b726c1d492fbcff00124b62e2a5a166b83d928a64d0c68052b126d354bfc34e4f6b38edd661c6c407913602d55ce892fdaf631d96c4d94de045fdae852b5d7d88c73584663ade3e5432280d137af39c49aec6bd72caf308a6f3a8255b58997c8c189089c76a4d6c718ba0e01ba1b457d89e0413e89bc2b461b117c7fb011cc2206f027399c387bb3b8222eb56ccbe89c333ce3e46f2e507e3169a75f052d92c10eb3ffd04e5b59aea872c5a3df2bd23872aeb599fc0baa82c6fd2131357b0abd7638b9c8d9bdfd65a5dc9608dc0204cf88a9f2a5aa370f4fda768f7367ac51a5910f492cd4f2b9c05a993dd03f71b1dd1774c949d0e15f7f17831214fd0b33dd41ccd02aeb46fa66f63c17dd6cdd42b02ea18e1ad6183a2a0dcebd4da99dd49405be372047e4beacb32e237f37541e40e2daa91059ccdb8e956343fd009578e5d1b9601513ad916ebb324da5c3bcc5ea2162f507046477acccfae79d7ede561cc2837c0a95b32140bcd7e30c2645aa21a153d56358a8a767cf887f79e85fced38ef732b83a4c311ec77d67dfd164940d6263dcc00f0a76560102564913918741f88d22ad4f7aac99d560ac15b56be3b3e747ab5af9d9c87ffd2b5a7b964c2f8b3b87a13b64cf53a8731cb0d4e0535bb52ee97905435f1f7f0679fb55820160f200bbd6ac39c105387885a81f5c8e7f2d3ec3bdbd6604db8249408ea26f329e1faa5cfbb79f22f84da9095071673b56e003e026b373bcd97ff31ecdd4267ee8bd8e9865ab576e033a0094a96b391e9751dd988f340f06368edfca09403c2194a053a682e94524c955ed193b608a044af29357132ddc3d113f7bb680f9c0d2f8fcbae081bb211715177079e3e5d731c5f3e32f0703ec6c979d0601d628bcc9ef88bd70c020c05007cce62e1ce70d538b3109abd4c05e541b164d03ccf1d7b82fff255433a3357e71e4241354c40a5f6a6b83296e752697e34c77729ec0e6322f9f948f0764ab60842739debd37ee3791624ef110e2fbccd314286353d243b846b52ba87944ca8118da0e83ee94ae8e2e335016f57b704e379168102284b4e2fa4775c9949462863bac38393a7865a2bc5fb8593c856dd024daf88cfb786f98a63288429ba6b2963ca6d54f66fc49d5d61babace50df519ad4e24c7cfc246ec5a01f315a65ef60fbcd2f4d2cf0fe20a803834556d74b1a3fb0960b4bc7d9bf1494c6395c1ea7a24996b04b97f10a6907b66712931f1615c7b76d93e57c90b8aa57d70d2d8c578fc61cdabdd53b42e6cd59ae63b2beffc3e9414abc820191af70312d489f8841b66273eb164d9c3ef3a4d273eb11d708e3a562d113bd397707c1ad7fd7769d4e694270f250240a666c73295e541888cbbd10228b527fd78eacf305a5b7f609985bb869a97f642dad2b04c47310bbe6fca70ecd5957b7e12831c5c400c30d924eb99a1495de8f968135a5695cd9fb78e91345476ce1731443fa85ee0aa266ef0c2bfe720c3d27428255e01992e3b03a09d5c22a5f4a6edb203fad98ff5e0aa74535d6de951f68524f6c11f056897913a84296a3cafb5be71bd90038b8973ccfc2e58b868f61d95b659b16548e3f5a94d5651ff1921395dcceed2ca6afad67ef9ba1cfcadfe63533401ec05f246a453277beb31bc8636251b40310cdf38d743f3566f8aefd7b8d6834390c2035e7493e60bbc93a91258a5926424ed863f07282ccfcdf663aebc6586e129e1c89b049a78ba9c4916a5129a2727d5dc0a3dfb4ac9625096f27c476895e0cedf6fa75da79e08842e6b6df7cde91d4e090a94973c1d3c0da86e11c93adac0173070404bff955ca59822e7a3ffe600f58ed6c22207815d2c4e2ae4cf7df596eb99d50f731d5202232c6bc3609e071ad73cda4bb6f5d5fc027328f5ad44bc36aa9d938ab168f574966c493ddb7e989a04e1431803139965c296dd518bd5294385aff816c8bbf52136c18870ff530435a9e4c45855c6872babc041a2153d78151bcc7decb4bc80ca73c7b2724a1b9a934b3fbc2c5a310717677c939651f4252935dfcb2614d3223e4ee451ec0ffea2fec151ff43d5baacbc038629af6c684e401aa8bca7e385fd5a5d18b8b9c0f325109036fcebcee3483d2e6d0cf74c6d2ac07cca57261b6ed3ab8836e20c876a4a84499ef5e7e78b1465d2862a620efc7e21f45d91269458329d9e0b968183f720c947d25 +shared_secret: cfab6ccf400c22dd43b0094cf8161fb453e5291fefb299719ac2e7000325d1b8 + +# Official test vector 47, seed: "730b65ece22de27d573ce3aea7cb021c415df210d228808d91d4f380070ffcb0778b683c71d4853deb569c822765f2a3" +entropy: 1d7b03d3c5eefb8ae5799dc569aa668f1bcb8c86607b089d3530cf61d6380147 +public_key = 90c537fb848ea86c2ba929c7b97456ac4b5c5007b27631aadde902ae1917dba8cf2936427fa22504aa2bca42bdacb21ac9a497eb1cb8a4b096e69294620386abc48f389c7f14380b03b10c614c625427c8cb9962f3d75409d923a56717882169bdab15e4426dfdb26072952255eab0380a88277ccac1d24939c98900d0be4570b3df596aef0a1747b2b0106c31e9aa9164f7745de23bd1cb222178ba13f7c806c0b02ff9898774646417bb2fc3153167c1eb707655c548b63caaf3fb3f37771be2fc972d03bde5286586d406b00902dfa0897785481b95805ab79dac44233af99ed3f53bfd6cc36af1cc79006289563456fb71b54c6e5e894f47d715ba062e010841a9e67abdbacc31dc373ec88ce8eba2f96381edd02fd0b88b47888f5084ac264c755c62a663ca9e30bb2bb8c89dc2ba91ba652fb79008ad91090c0614d6c7c674139ba5d57d26dba05e7c47e2107aac4cc28405a7d0d415e2472f66c40d49e094add494c19175886474b5a6991e355738c66d9178c94bb4c05912bd9d709290a8b562a358814a14c50750d17054273c7587b7ad5e403f231964bb40014fa7121fdb74dc23875a148f0f021a8ceb3cbde6842714cdf1008d85b0af62e65ccda27d9fc2a12e415801bb22a865b861aab5cc3c9093c3164e6b436a3475e5359bb8c241b635c351ec3614f7a225d522f2a0b7b181a1f7a4ccc858014a2222ba5b19767154e27b2667e90aea352ae7d3c68e07b7c4d0482ec38aa226ac4f2b63a8da4be57842a4a65b6e04c2166327be09a30128bcc33c154031b94ee13aa5d60f7708347659b4d73bc500432bf2401861c183c732019576a672d0c10d5c18afe4364e9ccf67d670b29283d0f0b9f91130a0437d7450acb4d76af99aa4ea287a6bfc73fbaa3207f58fccc775a811a7e6a0b7a63bcd87f04f1eea0d57ab7735315324282b4818b8d4346b0ecbcea3ac9c0a7bbc17a955617570a511447a9b8475f7c602135f57255e2412cb6ddb0d22c30159b43b9dd58066d81d77f7a4e263603e193ebf671fa3283c69e71a4ac433297867da2b2b7eca19373a9b4d3897689031e58284ec8779fcc4cb742b8712b11a3d143b02645a99db61bfb19c26a5902f7b3d77302a9ab059350925d8e1a994b586ea777697c389f9cb6e25817e07c5716db9ab63f451dc89a852031bb3352e8ba53643c509ed8590694b6a07340ad0fb2f1788937a0c45cf9a441494ae447c44c6917f2d7b21bdc6b7d3853bd8e33bc7ea75e62535f95096a9d0930cbcc0a210c2f5b81090d20a5d7c0346bb43ebe6b77072859f13a6576c72c0553da80a4ca8f03292d86a98246151960e4b15b758b28e2ad2271c9ca70f92061c8a560be21a2d967c0ae1b0ca446a987bbfd888ce4ccb725b95050d03134f3441f853935255bce8473e88397d5eb4cb8d6acaa6bb8d5f5003a560b08c89ac890b77aa16304f5cc74822764d82823b317572c5bbee018eedab6cd93caa924279ca8932a8858079197d412b7283e084a7fb9dbef26d4530c1b6136619b06fbae495d207a3c326910a5c2ac9c7b919498bef5482532535d2551fee95154b2082a76c0d3b16ced88993697b344cf7be4742a3180c69f6fb589ac17fbd03489b13a0af951ec1d9776efa82cfd0276e58c553b2046b4594c9621e0aeb160d7923bbfa53f7c9c2a4a077d51a6f38473fb6d7a2b2b99c5414c5e646734fc48c56c18d30997d8073afcb822680b321c40696092a7a9f9072cd034523acb15154354d697f27a312348601d0d1170beb4759510330cb0adef4cf31ca82f7f15bc02310f22c92dcbbc059e34771725685955dd5490331e0bd99829692275598a77a310243a6225f392a9f83910afddc172d124cd295288a77ae051031f898b42d792ddfe8c0902944b68043bba48a25c27323f07d4f6a8c6ecc33f13948ad12463e834d23514af69954395a144d1a4df8f526c0331247d16d05e185ddf04a94a92047bcc976bc17f6b7488dd390eaac4b608390e9fac6c2829eed0903d544b3ff08b2c27a779198387a8112e374ce4f5b0f5f898101159462929c5417bf373420811b4ecbc034eb41aec0888a30976428e2a54463072f3c9b55341147c464dc88b55daa1fa7920c22fb6c8225b2ccf47692713ded1c4a76a479bb111e56cf782a6cafe938d47de49bb47e732223b0bd1bee7bf690d1857044eef2aaec +result: pass +ciphertext: 933b2c004331af9c0e4699fedc9fc3999fcb8213c308ecd4e33c3ff41ef3cdad8f02f0f0bfa8db24218e8c81f0934b98153497e7e36fb78d48322742c84870a8b470dca9ce9a017e215d33b9b09d8477b5b292263e4da46ded3ecf5afc0d9472d7690d24d07eaa35644cfd30b3b530f527b4dab5df72947af1a08264abaccc588cee00be666e987de5f0d84bdfac563879916b912a3ba625e16ec3458c08ba116d8411408a9a9044fcb2fb39b2db31bf446b840fa196a6b61134619643116b85d14fea5389b2b0aea25cae45197e14844e8c4b33bd73b85799832cdbb3b5fb031bba251182ad85492a071bb4bcc5476f3a9a5f4c6fd740b640fc87379daa2da4e0819e983da6095257a6cdbb2e4a59055d0251480ce14983e598c5c4f362e49f992cee925fcaf504020134f9d26bda51f88006a0e4df6c4229ce87c19139220bf4f27ad189d9c6b2fd3f3387e344632e497f0f9086752318615850a51730732009afdd4fcce3226645fc26a98de7dfdaeac5de30fb7c676035ac267ec29303b6855a458682baa9b6ae49911ebd981f14ec358857f34a3e396fb6c4cf83911029ff15f23ebd105fe6178adec98efce9e5bf79478a278fe128c7521a81c529fc8544d5c9344d16aefdf7a4da73f4155737238c3d0bf820e1ce3e26e1b5f26e6dc0bbfa0e910988d98c655e1dcc1dcbc4c434b2d2b9420f98323e19e2214ec7e470848adc7c77a9317ad64d4a4b05aa4f72dbb269c4d30c98b9e7a39787f7f77b519afcf42541fd9e2fcc228efeec98bd4a021cd03d5c3526cbaf28a2c075fd83e6c47017cc1837a936f3b1a477b4c955df76d40bc4c9e3165c672fc617b941743fc1d596ac2000bef5a4eeeef54db3922c27755c5c58bfa0e3f2a97b475345793aaf44f371dddbb8c0ba11dd2fb4c6c38d1eeba05d4a1224d59174a0fdce7c85cc57c913a47c1de5bdf883810f833d9eb441e2b9164fa00e84261b67f56c4cda52dc863396f9a7302093bd657cd0c7349309acae2e7ce7b40deeee285552e3c31976917774052dc8c0b80fea4d1c0382825d5f3ff1911c5667b5d9e727b1fb5ef17f2040ba56397d4d8f1bc4fb445a054a39b40145e3457597739d6bd8e5d194e3e6800504c9ebd25129bf575bd8a859a16c056c9bd2e2c8d0d9c0d5d9ad81c47f0f6be82bfe80cd60fb158297942a0ed963ec522c0e5f58a5e7065c113336d55370f006003986832844e940f160682e2f69dbf6edb9d4b6268a087ba28663cd002152bb20f659107c7fcf337e37ad086a5c072bc632414886d328d7fbe79d7785404b550f99510c7f24c3b6f455d3a12a820f26d6b2259d7bd0a0981af26ed4494f66bcdf4171fb2be6bfd9dc1e7a183e499a068a1791d398beeba47af660724656406f3a581ed42bca59ed18bdee126cf8520ad6e7a3c7f37d929f8a35abe5b46177ad34dccc4addc2fb354b0dc266f8a1966510a68a82c7571498fd4a59dfb0004a3bcf9d88c7ef458733577ae764d90e29dbcfcdff40cdbaa1f8963125bca7011c4aaa6246be182651d97937933e1cc74927bc67791764bb20d1a04805ab073f00a9a5c6e74f35e45101fc31e8571757d06df9109283152a2348764329724ac053aa5f1a2a885fb745ce92914790955436b9d4cb59d922e1c4e07525fbde26ce9cf4619cc83888f3790fbfffd1932ca4d6a1fbec63d72a899ed0897090ff253dc371175b8c1db02ae0ac8438cda23c5533a113af068fd34d2b23eb52a30118308a85b6c851d3ceabf8eac3c6e2c54cde101580681b90eaac4e099e9eb35c49e80ec4b08c1f6adb547ffd0618ac7300fc2c032fe82ce1a7dfc7679ef0c0db03b494e48ca8ad2251311761b0839cd3d576980461e4faf81cf27ae1d13e1c3886be97c6da2ccb43339048c2706aacaa160d28771325e90a94025faf4bf4cb7445f318960308bb59fb756eece70cdb134c7171eae241915712b7e3ce2f373cb2ac3d26435c13034b21948f9a462f1eeca57a9a34c4a7b270b9aa8eed19212d0bfefacd8c8011c2ac38e4a4599baa799a9f06f9dcfa1518e04f246296d85cdbcd341156615fab90d9713ddc433f73cc595916bae88ba9a9c411f506b9ed5d66dce3ef9f350d51baa6a11ecf502edd6a2e49df6c25c77c0c814ba99abe4df7208dc80f948408b4af3289379f1ad6cdbdb4165c683aa3428d83cd091cad7aa9d59dd8 +shared_secret: abdf30bf8e4ed92c05241b6f00895dc0d56759ac668245a88c7ffa59cdb48fdb + +# Official test vector 48, seed: "5522a5a891a9a9b5514f4556afd8df40b9cec63a01492f0cb8a1db073a285a963e4a9ff2376c88662f7d8d241f8acf17" +entropy: 554f3385b382f4a46314de37ee3885addfc5332bd4038785094e0a832e9e8c2c +public_key = 12e4c27fd191ab43b4aa8a66c4326e681cbe1207bc2d5aac1ac59ef0a8aac0c8b91f7c23ac35abf566c75ad3b01d6b1dfbc29db4a334b44c10fc25808f9b8acdb4a2ba67528fba8ee942a895d5544857473459763e92174dc640bf284908023146fb553b1b8b1e99a7446c5320ca17eb6bc497a330ded7b1016a1c28d23964f24f2188b2d7ebb2bbe954c9d9271baa7e429c02dab991dffa49410ba6ab20829ec41b03b8ba8756b5cffc640e928b24361f0f007226f2b5315a8bdf8a10aa88581ce5a140588b69b531f5112610c5306fe41d4c018302dac1dbf69863b6bf99d892072591a0168decc69f89823999095f256c52c6336acb063bd741551bb855678c4e8bf90191a38c2fc641957312ee758e73d88d8c8937b9c6912c59ca13854a4209924db71fd8b547a076a340560155122298e91328a71773e1cf117920e5faa8fbd847fdd027f734c06bec0bf479b97cc11d626122d1049e96c7643a6b323aa93e10521460c7193d7c85a1a8969dd0b0835b64ade28df777a1c70646b8e55578ba9da6d82a96b5bbca1b2e9346775d24b987535882468b3e9263a1c74288695722142d9ba23fd747383832b2a3b6720b21cfb5f00a178c51a878992d666872685cb1f346c77b86a0174ac955b06df96ba094101330958452074c57377f520bf0766881752d70c0a778415f9bd3b5d276100f00ad563735cce0952354260c153c3ba227181a21b9f8166dc0aa42acc241f6051624b88d1659a2a81f9cf92ce82c76dadc27bc3b018f953a5af66ee21401c02a4e3b8b4188a36be3818ccb82686cc21d50614f1f000721f8445323b4920b3d929c1362d91ef948371b531096186034d61f0401c09679c54c5a993ce85137f15f50466bace29512e260f990764c31648d6649d23c800750a08f759fa84258515c4625b856eb368d917c36768a8a1471a376ab367aab46295707e94080bce47dd4633c2b50ce0b19bf47d4a68c3519da21c205b0c9128606ef8a7405ac525a12b0c613c7ae96aca34743ca9679bf078d5d016405f336f6088a9652204154648e4b3f6872929f02670c7962f4b08bdda9beb2a33a2babcef40cc4de288460d0188fc29ca85b212eb40f7b158aa4a38710e0608eb150fa5252860058ccd822618961cf5c18a01bcb2eb92dda84597fe9b345e06d14a597917a4748949ce5f29e60a7ab29740242166c5a651501010bbbc73926a7c4d0dc6aa415240e0c0769774055f9882aa4330dac1d8500747bd5264bb7625c2ab58e7917cd122858135ec09a3f0128837669bb37911903854d57da6957d70407c752a20951535503847b17c536a69ac09a84ca64633a4fb9c26221296190b27c03781729456f6653639fc036fe17c4b66b390b2204a1361555323dd307572b2caf24148dfea74eef05880205c164da71980974240b2167b3c3200745ce778a4cab786a0cbb132188158c3111707058884358db6ef3d04480d7ba058c7e52e4052c1898e2918d98590716a80bd9a3a4c3d53cd8111005709e708b04c6d18bb1577219a39d26a496582384f1126fe491a2dab7b8adb4a07563c687c4a6056455113c6fe9b7bd30cb7fbed2839a93a584c76af5c1422dca809cc623079ab65cb146a3011c38c1a6f3db134b72583ab9331d418c7ab513d77b91a612053f217d406babaf4170607a1979ea637f8875154561f69870fb1682a62052fa36a21bf94fb4f24ea54c1658d8bea4e2813707981366a8d9655400db440db8c27af57ebdaa8ed897c7594712e6881c81f5b79557834e53c9b537ab69942830fa60a0c8bc7518192e52396ee15d945b9f8df019f8f32513817117834a9af58ff761a1830798edd48fb571be338b43140c44d17b272db6aeebb0cab160342b49cbe2b47a6a5006b5cac09d763f168c6a5f329b7d1b87dde69542a4437b8c426890b4a5487ab43a98ef94667efc881a943b33b42c776b3f8af853fd59c2d3031fbcf541247100d22219e67094ba89791186bc8b7b536fb6438aba5275d234adc5a9ff129fa7d1b5c5757483f02980fa40882aa0c72c0ef233b0c2931f1e15cb7d528b471c50903256e54a87f8c16f02b3bb904133bf60136d603bc57c503420a8b6701aea4a3b4052334f75bf820c2ed9890bcb812b20d9031c269af9598acdeb8a52bfa7cb804627acfa20285753264f3df670dc445647c881e112b71095f10934 +result: pass +ciphertext: ae2c5cb63dd84bdbf16f45be0e0c322955c2c3cfa3fea74aa30c6706a28e5861a92e2692df21654f0722901fc86576d0378f662afb915da4ef65df72c0d9032f43de8b69eb9e37abc502442fc3be17a539a4958350e42ee2a83adfa66d393d94356b2f81706483a2da094284b7c39d4c7ccb4c3c6b48552fb4a6df7d2fbf5fbb473ee164680217a54fef6d1a8da22faedb6ddf9683adbe5685c61e5410ca24619dbc0b9cb728fed6207f75095b73b4f2733401182320dafd1574b815ac1d92bf61fcc50baa791b540d25083786b221070b9b5ec97c69a2ab709a2dd82224d50c7223bc620a4f142ccba7f138ae06a9839b17f31b5a78cfff773595c34a7092c5c2a67df0392985afc227f171a22283e3fc5c12cccfd8bc98a1adec1ec8e610008dea6bda2067624a7bf003ccddb8b1fccaf84650a4175fbfe299f56191a3251fa0ec63aa6198b7b9f13490dbe41b23dd44c5015f82299f2e873a576b7e44a3769d5b1886b2114b31a5b2359affbaf2d9156e5ca200c36be07c3837e5a35be36eeae315d888da4cb2e5911ec897d28ff484f4a13ea45bb5e645383e93f39b90c600bd6ee8899c5436f18eb9cdc9f7670cd66c42dd182edcd9a1e03c7c7e6cd22bdea33cede3fe43aa7e9bbcee5bbf6334e516e4228112e3165a50acd9c00da196d83f1e71f97fff99912807d5b174377c81b5dbc734175085a1df2535323d821601b42bb08cfc508eba25b75eb878a175e69b9704d31d8d4c626705622821b0fc787d741da974a99c873b11c10157dd73728fa96d979bd825265c5c2fa198cd18db467e391ca1b8a1cd83a3363e763bd0dd1eace13455553f0d0a8b594d2f82443a377ca830540522e1a9ad2fbbc9e974e63dab823d347e93d90c18190a7bb4366e3fd0c81d4e10534056e80c483b998c645fbde1267a0a7e94a5950942aa114615d38ad0b8336b13289d8ab76ff03d49f419de79d309e515d668ba644aa43ab75919f1be4360c0eef3cc0544a80d8a46d6cd9f5bc7e50bf3d22cfa338fcfb015af7459dcd63b066077198fbf468a75ff1d4277c04c6dad16866fe79ad52873165078d3d8ad1ffc1453b6dafc3171235acef1a16912ae4aa7eb4e31e5a3664b19f01bfbb75172605d237c23d22a2251dcb9bac2cff63e54f5a8145fd2bbf63b76edcfd5e87400e50bf239a83693387780a182f4066d624b7ea1feb629329f80a0c9f07369a6a70a710bbbd80a189e92c9de920a4dc1fe1c90e2bcaac35e2b0e76841ea451dba128c0317442de8c7f95dba18fc667d9b4561302e17114597d9bb1882e35515e8a2ee995af7796b8d88215addc8d41daf201ad155e2dfce73610219477b8b0c2adefa24b27534d5ec7c35d0a2586a14b1a796721c532aa269f3859e50e2fe4008a2aa39f86d82bb99ef6162a7fc6a3818d05b69c4af85d2d16e4edfa291af1a9babfb7d460747770cfa5ff0b20bc4d6fc2ebe88f527f054178b1daad883f910d67f36787029cff7837bb147179c0869d2c87395988bb925dedb34a4b8221735131a558ecf6a4c5718b01dee25147cf12a11039ef6de8001bec3423b54c75db145894a412e282146f59ae7bc1d88f7586d29ad802e8ba080fa6bd38db67e09d8c3018836a6e2f48eabf60d2181651968733272db494aa086306f274e02292df35db37ec2cc15b2866617e9e4fb34144420bcd31ef50fdd42106547fbfb2453f9d7fcab4e3f25d56b502f04f0d51d9c725698576bf32b7a67e168877cfd8aad057bc4891f7d493a07b626c43be7610b5388ec6751568b153051dde7922b4003b6c34f3af807d17e9630cc452a49ae14f6d34b4934b81896f4daaded277c1757067c12f143c552a83495226cd6805a73d11724328533e087b980db0a6d22816da01ba0b8f06d4afebc893d1b6bf8dfa5039ef729d48bc274f3a8fdffa73054d8a562b2683c6f758f9cafb7a2b31dc596f628d081b659fdf08151a85a9b3575eed8978085dad4625832f803dbb7cc90f82b3186708a7f4cc5853ca3e1fe958cffeecd27b685d8b7bc3a6707446ac2a29865cf56d1958438bc09a4e8d11abb0d53e1e8f61e8bf044c6541415569815295a9ead015913dd9979dfdbb7e3cfc8fe520a79e8191881e617d78ba0b9ff588a55698b9deff3046009783e9d9ad99fd270ed0e3a4467486303024fabd673dc2322190f74ac36f2c5c0a3dc36b4f +shared_secret: 9ac4dcbe2ce4c1b26961fd95fbdc719296829c8107260b8a21cf3dedb292eb7c + +# Official test vector 49, seed: "1853e72329353b3f89ae6a1b1ef700da8ed3c10d19f9e61ee9252e28ebb0e15802ee43083a12a0b7527088832605e3ab" +entropy: 38bf0033b779edf5367d9ebc01c988af90904c560970815837380650e4749eea +public_key = 96f73135fa51010a83491b407571126d85002a60cccceb5393b459cb39b4dcf175b2134cf515c06b38cb0ea33d8c34a7283b99b6d0c9e90825159cbf4bc2a1c0f131580557f243184bbc7498b39266f669fc161150482de480ab196ba61dc526f8a46a2ae3336a7abca9e2743fd654e965b3b33ca0b9cbc8c96095d78a971a7277496a8c123967e8c204765a864890b762d34e83570a8dec5cd25333276555e7644eeb5ccf8004579c357481000ae9a930a7313468d3a8b6d5b4da4a558a7c1318da670dec758c98c5048144843096c2b781d73a9f215c2ca0481ea5aca259997c8479256841507717b7dd01cfe1755f8ac2bf1008c2c61b7bd13810787185cdf16a17c2cf00bab7eab737a641cc12ea6d8bc802e0661730628194c40a7865a3587cc2f5b0ac1d328307c55388970b96c4969a533e04b425e528c713d41821ca6cf1f5bc74e64859c49b914563ad193c626c6dc520143a755132260d5940c76e20a7f07987fa7c1a4d1283bd700c9759871f973fa6d94fd88015cffb046555b36559420bcb98ce617169465770135b15612a9884586d0232d44606632c50a9d5beb3697669c9940e1739508c360505248f501dbbbabf70e7cffb24652b782de5f4a310a7767826bc73886e60e51230068dcfdb2b3ef246f7701d65813e54d78ddbc34cc9bca025914883364c60576a5e0c5a863a17a9872b818c070647170cc46f44880d4ff46d68c4694442433c823c0ab39656b715e0443e8eab14a990c42a031ebefa6cfd54c32fe4521e218396d53c5554c60b93cf2f1cbb0062c6101686e5738896621e44b32449c297d968b16c80ac7491279dab0f84749842195aa3dabbaddc2457fc8b854752d33cb1a5499dd53725bf34bf34a68457e57e4b270fe0f07323275fb99b78aa90af27480b6440217b01867a1b7a5a5885fbcb931c524395cb11a406a492c4251f9c09e14a45e2b86a98c72f1532664879a2d5557fe9db6bcb2ab6197892e5686b2e1ab35a3434a77a65ebb6189aa00e19fbb045a03fb767866184c5c2e2b155f465bc7a135ab25cc5415b0a42aa17595a32e2a370317414913278c18837f346c3a54be5722520315332b2b43ed4089b427cc8e24f10f17610e40882b4c724c48b6315aa6f0c64a4032e4be75bb6b0702a2cb7a11cc6aa14bccfe91af25642513425ca475fd7e7c387214294a36fff09bb1388a5322910b9906491bc923a2644259086bc5131e5d67794d91f65b24a0da06ceeb63239456e6c3b1cf4fa04165879b5858bf60664aaeb45b3a238b1a926489a2d395473d3a5173fb37a51fcb5ba0c9cc3eb01debc383260b4f5033bee258f66a504e64a74fafcbd1a46076ea00a02246eae52ba6591a8ced21b58971f289847c508768dbba5ab1921c14982c9525ab4b64285723954d33c8a35396db137c0db48a39432da0abc3857c5369b236bc03ef562a8a5e4211986a385b8ab4d1745742411a9712256636e62976f99a72d75c654f8574737b6ad34c129a2eac22fe166b2682840f7043d4339bf699b68d51ecc32974c161136272f9012219bac6bfa8950c6016207dc6566d20b916974743290f0a52b8be51c9f3c239e8b6842278417a05dc789bc43fa1ee0671a51ba3301246ba780ab71295cbd20ada7a07e5593a3933604ef972a711349a0678a60d2af2434b17ee940c067bd89496c90d4b9903b9d146a49c36138dabaa405499ecdc02f791562a5d446fb358702b2a5eaec93b7f4756762b3c17b0e8d48ceb5d5244965168fd9c3e6495d1fd578ba2c168805897cd351202059b5a4b96687465741b077677583ca7411c4331583308da00ab5045ec5943beb2800b30978c31031675a84dbfcbe6d7b27b2da65152c692fb8727a485b9641888b1b36a25491ac76045792278125b0a3735f3e759901507ca4a2aa12dcbccf3c35c68873518a4fc778201f0b960c7b551f038c6201378ee101948629dae0364e38ad079320d2cc35bfbc8ae7cc446526447d60b19a36519daa8331a45f1e4308d564979a5179073130594cc5fc07a1fb6b5966277511544611e018f3f8b76567add2c94a0da8502063c66c54c3a50644e43b81a93c7cf0409b505c77f5d06d34432bec389a137b6fb9f18da05426d03477ff0b8185327c37f449c8f6398680c78ef7d26c51bba9665cf58b72cdfb115bcc2a0715b5b4f40dd01c7a0585bbae73 +result: pass +ciphertext: 3d0c67db088b150e110e9a395a143a94c0bf6fd9dab5ff681c38e1ac6f34156cdba2b28bdfcb62ad002b1763e31bcf6316df977e6533e12536bfa9933780de5cffeaed2969902df53f34b1026543523dad947decfaa8ac43b223a5bbc59dd5c7647fe3a17ec79a84e89e820bc0ccaa56016540d3c821ae453dec695b4a2232a896264e475cdc16cbd476fe8778d57e5a31e6b3e6e9dcdc96c69ca0d25da24b2a8ae65e6f8a9eb723594f8e989dc10078e20f058ef8e765c96093e9faea1a5919c27e69396b53c5e87213373ed900a8a763b9cfab262637f40038826fb7355e8f0cb8672eb3f478e577956fc339ec67de582e6d9b5cd578874d3db3d774869b291c5ef0b2a3393fc4dab94510401ae107eb65560d9685c14b06a788fa8ad177f76b176007ceeeef6da8913c82744ee66813004ddb6591a02e745a960a53a06e824a28cbdb197591dcc02658d4f7bdd401bb829a9f3ad2b3cb3093bfab0d8acfa0a66b6dea77e9c905f7fc3b0063f3cc12c190ea6e574b9b606fc5243ae567e88383b2d936e89c2e12c23850470d09c219568a9a8de66bd77612a4f13718da6f0b4cc20d9bf0e437c859ceb6468713159ff61ba9c26f9393fac3fbef93c6718d400ac9b5816c96e5258416df120614024bcb5e7eca61449af540993e27a067203237acdaaf8b0e7381e3413de5f4eaed01e7092d40b522e4508c3ae928996a960e4866f78a0b5b42a7bf43298b4d05169e815e82802e9afaa2bad286ed0fa4a1efffaa1e3854aaa9bf12121ca7c6711f6b4c838eeec2a9b5da3e4ff080d513e18b71e4a71bf9fcd544ea44d5438d4f56bc269c63fb2b4f4de5ef9551a52b7cd781d4a6ecbcbbab8825e2fe6693b41f34f0c07690971aa6243046977c0c48713b9f2c320686e02bb01c789d9a6e46f9a3b8fb480f4d7c755bb5c093f4903a5f332ed9a805d024323635c4a51667394813f01a634c90f6a82a16b6bc1a2b3dc7e25b0947900051da0e5101900fe7c725324fd5a316057955ad4aed9e08b67405dae766aa628f599776b0f3dfa2b12c2e40e480d7c6cd4562f0bbb206eb4478125b5febe34c7c81924a3fdf70ee2f21ee2b3fd0823ea16edc4a5e07f2adb10422e4df4051725c6a99e4f5b8f463eed69d8921ce36e7ce5b6d14a2be719907d7c547a16ecfbb733868455aea386c52bf9adc93bb1792bf0d8b056386c6311015f47d6319c41be520128cf2ad3e1e0e8a568c4b3c07e2b10589f6498d01cac1f8c2a50d20ef7b3ffae9267d3cf3e66cd57d6d42a87865131d5eaf10f1345c1883d475f7b29c8f07f04533f39dcceef2904ff0c6d86b1ca1acae4f6a20a649a95bedcac1d7e87c17cd75ac8b1a636acc3187eca7586db053a6595d7c39ce1e57e839065793c2ec2072371cefdfb9e62c559c3d2ef9b736a61a72695d4349d933952fa9796bb4d39cb5a88709474472a19da3b7589cb01a11de4dbd79e0555f6a290ed047fe4e31a6ccc35a904f4d30d363f10421f5a9de22c059a6ed0e404ffb62b0626b0b0397c30c59d56ee18364c8371d095d1cdb0ad08dea67dbeba8e2883ab4762d4b2ca32485a6747893c03f137780b105870284d523cc92cdb85bb94602bbcc9736175a3958629fa45f26e6c8a84fb61f5a0619ce2cbf5d4178aab325b393dc1c201ea7f751c8916e5281db2eaf733417f12c3cbae76a2c891e7291f54b8aa7e91c05f4bef7f75d86e7827dbc8634f7b4c19c88371087a5c80fcb48aaa051329e8b474d0ac5b606b40323327cab61899c0f12ebe3142766f70da217c57534983041eea96206a27926e4b296267a6f555356f3ec387b2cc21d541560f932e716de3a67fe1afdc193027a90c8b5bf14dc60285ca131a643a1231a5552d624bc930e7b5965871c85c5ba055191c23934e651c03570819207df6e4b467bfa0f2048838ab9658f9abcc6a0a74d81058510d435ef7239a334437cd0254eb4ae2760b51cc84733f18730ba68f48c73cf3a211c9a8ba65d61afe39cd6d5e72c4589b7a9dc4a49a2f05f17afa14c89d4ecf1fbf5769cbda70a570d73851694e1c3acd74f80a25a063843664930f168cb3d679ec883b82c471ed634238b58d43bf732e71368839c64fe1a54e0d8d4c58e06f20848c823f49dfcc17517d60fa56bd5e496990bb973c52596eae1077227e33b04cbf67a30ad91c510bce5f9c480a273b205446e +shared_secret: d1e8a626ea8c5fa1b89ae3c05f745517eae6a8710dc1173083209de32cc685b4 + +# Official test vector 50, seed: "027c3d5847ed4470931141104f25b19ae76117cbb64b224ee424ffb782e9a0e988839e0bded0df666fe8e5fcbb5dbc09" +entropy: 048ea516d0ebbd9f709b47eaac66f344c571cf50f0d01c9466aa061a50b66a24 +public_key = 3b37800c878b5adbbaef794f4f24abfeaa40eb1c5763fa55b7369e5be8754beba6be9319cc3a482a53ba93c417bc9a5a3030cb2a247177eb11b63a672e0039fe71735ca9cea99168d1634df2737b45324034492e1d3c74f10239564b23e39585734c86d98118dbc944dec28869ca8be7e17b39bcb0b0e34e257bc9ba42cc782078945094eb1336e516c62b00871d12c6019700b478b5db43ac419b2c7a50442d9458ba4b853d5a29ca946d64b6a6e6cb3485439abd4a9cf34b5921242ddf3611289a72efac4101b208cb7598894a9ef1ec38e34a58b2c071b3e6738138bbaf416f246072ead83b354a0832b98b551b7210095fe9323e1f75bb99905e5bd961cd778d32c1be94512a7893c062f6a66553152d1c820b8825c25938c0348a3d2206897ab903e6472193b5c2aa3f1bfb22bce88bf3723eaa8292d5446546865218d5827a5ba0da5354e2f6c81eb96cf0f28efae54935138273447a953aadf9757319e03a6ad19d7e613c2cdc7f5a3aa1891368399ab5c5337881c782bec48f9161774686204027b6fd895ed1b800db68c2d9d529156b0a8db90f107964d8f5c860737db2a3375df20b7bbc7f1ea57ab6e2a2eb44b5f8e6980d5233a0791350f4ac23210a4bbaa928273294691b7c441edac04909472e8f6714e99bb7de1076a121576eeb1d419122d4366023bb2fd66937ed940566ab07d7b480b330937c341106c3bc01f3c26eb7388ce7404222bccd7cc42e8a56909239a2968f2da3cea3c6695cbc909ee481b4c619f1e7ae6750b4d8f691d70490134ba02cfc97327c9f14db4bbfca7b4589431e0b8fb8dc61658110dcb675dd1bb46db49605c66534ca53d918aee579557e82c733a3841a7338f9947d92d4379b3a2d47469166bbc20ecc4de2f7c768a0ba4dd788cebac30eccbdfa11ccbff61328f92739e12160b83369d8466421374380a1a2c8bfd701a869b49d09644266d300493badff092390e894102028768a4592e96306130550291ecdaab48c711e8a1822cd278b80357856a739174b3da66795fa8375333554fc92298dd92b3c962bad035424f418b9b626d32b5383005564b8cbad0915a977b1c95710ae490bfd158a2c780e14c85ef92a02a2601c3538c1297772d1045bc4811e4e7893310413b4121201eba6c4db8658378fa3a6b9b919c9247c40ef39a7d564bf13a6c8ec575fc3b58f42426ae1a4944cd638bcf8336504577c65a7b75b06649802bf898fc3337ea3f783bd58bc85e33c51c91412c09d99c310ab9802ddeb4e977a640eb05a6e01984186b62f3237230b33cc4721d984382d003a4472496c163a0c23aa7527a7a98b45260794c109c3ef645fd352b778f06c6de40ae1aac577698edc053e951931e88b75619a2e3a795d9d7a015fc39978ba6832da41dfc1aa36d53351321107d33d00d934ce079f53c1ad114b622ef09fdb70888a861e8b9334610a9c2a5614325b9265219dadfb7eec92b472c87c0f0181e73c580b9ca8564bc1e3b9b70528a30d0c54bbf48b3001c46b536c51e15c4d0844fe81bc035351d919212c699a455b7f0900121a77360f4aaf09443e9031ba9286c0ef18a72a0c6afb2b380452379fc14dde6a20cae7c703b8c367bbbf4ea43df773bd6a3a4c051caeeb66a236244f7bf5a837731655a73bf6e7a3413459cbac0dde329e59fc9521fc2009e480d82711496a5871f33d0378223243137486504a209d9012574b10561fc04deed84999baa3a936a9b1234ac4c4afe451042f828cf40c49e632c6153684448154a023684af08ce13b204ac025991c5e44b63201073f22a50c935b9bc1c488aa8a704bc178ab0a752595cfe050b341a295f9b851b67a3c09010ecf297791c746ba9247df2a1be5a82cc8f904e1553b31d53710b0b0b7372b8e9c0b7c15636097316d46587e07753ba05e03f7cb3c6c78870a7ab21ca99db30217245a29fccc3ed80364ec661ea93194d472813a3cb0203b223b909c5774f2dca50e8a9753e36c33d92c278a52122a72fe389f0f962ce5d3a1d9f5c07000919e4761a07282e016854579b1c2e7c608630c6b2a6a1bd96c71392b9ef15e04f7bcee414cf5d9a6ff701c4d2586506248f4bb6bd4ea4a45fa79fd92aecdecbf20d7ad8534673832a0d6ca13c561a446aaa23539624487767e4a195dce0e2bc6a3fd1a73e918f297aa031fcd8c14925529ed33b83ae8e7ab +result: pass +ciphertext: 74696b4c1a221c93a233381becc649df53c59889beaaf8cc06879dfeabfaa190fc9d7a9b6995bf4d9571d3277188c4db8552bf90a4b51787bec3636efcf8628e199204f230241198f517345d76a105ac070cf81591bd22bc1e566205b7d01c16c2da03f1ad0682d1f32ddbb6a2ae8f35351cf5d5bacdc727d603c3ec4c5f51a9906a3f12bf064d27a5b573a1b91f652c4bac4155045d69669158e226676c7049a439fa3213ef20cc61c8f0b89c194f131e172ccc4c1f6c37567bd910eba09c21abbd3a8ab275ab15136f6fc92593766b930983539eabc66e7f63f572fac05348c7cd6ceabbd1c4865e346298b6df6959caee42fc1b60df6373ff46fc935e881b478a0983c1467c1a7fd343693996668ce1d8dd147193d85fa44277c5a21c57d1d420e1e5caefe51049285ec812dd0d4de6117ea2fbc9e9d74221c4e8340895ecaf684081fb845ed994279e1ab22ebc0ddaa9eb5066052aa9cd371894035d56d125f40bf836ff159a14dbfc99d397b703824b1a7b74ac15514905fdadb8034c09f018d3d87c4d2c2d520a2bb2a240050fdfa67a157bf1b17931106c859256b5f06da1ac1666337850dd9d4fb1ff879fab3a87b645c0e1d22b11599584e67e44eebe9d3d6864538d86df728300268f0c2fabd12b474c7fa2bde4dd04353cf54874663a029e2ca6017a6a59d6611a862e3826a1f1f18b20be5beada3bb1edabf9ef0c0ce83ef22674feb2147c769b7534c4f50f80f48cde1db0ab0934815e39f963430ef4f6b4204016363e105e258e733371c8d6a8c517150cc75cdbc6dc28c98359ff083306a0b5215ba1bc17e660dcde16add252177d931b6d8bacc181dcc5dd285825e083abef17438904b46d21b2c3914543f34e3d958e41e8089f89f5aa1af040fb1258ddc663925b55fb486dab814a45210f0ebdaaf4bbf2115b0784862c640677fcfdfba3d05c47e2c5ded2f6c03b42bcc9f87fae722e895bd4f91ed91207f8bdbd4f849c73e3b53e8a5ac14b500ad19fa5e9675592595250c8e54795e829443d9c3b924efa8d64a3751e34212205ea88061071b7b4fb8309e0dbc0bddd329a55e30d4eeb3369e9bdc2d949565f6c4ac214530f926b7dbc5b6bb9a645635b3ad1056d36606c0bc34089f50646f0bb948e3ad50cec750de11a3b4436c572c10608502d8ee43dacd12b20183006070aca57dfff0c39edb760b29a8d1e2790825961f8d3d2b27e4be8d06ba613f80422e40d77de5b44793262fb2e5c5d613f4d66f8d6e29f5aa312dbb80eca37d9faf6b98ba63b0dac2622ca7eb1a53ecf7ad39a78d34dd787ebd686c155041adc742d8c13480b36dd8c50856f2fac0c8fe532260b6e5e8f79d4836033bec19a96b5c272ec3505b800b555a763bc7d673a876a9ecd4f1e64fdbb6bc4710066b5c1f943a53f3e934b1f9d30e8edfc2aac8c775bacf9a447626838aefa0200df587b4a4bb930341342d9bf4af28e196abfcc98fe8c98ff3ef9a318304680ca5221fb7f8f408e6f5e56ba69a9286afbabf3d733ef1b958cca8bf57c2b7e23c1209ca90d6e3e8f10ddb54ff29243fc340f28b97013f15cc21a92299e4cc45bc007ba13c69f3ba4af497aa17b289b3379f553b3ff92318d7f5f3fd55691a094761ff55015be61a7ac24128f29f552ac8faa5ed8ba3a8654c035fb08180f1a72ede79cb6c549475cb1da0de23e42fb887a30ff16732131bad9014c58364c5e91bc12988ca31a8d9ea5dda91411f7cd5e8f4ca503ec1df40ef53bf0893265241aef66fa85fc15c07726439e741ace97300bf89fc57ec746e34c40d9e6561f69ec2871ab520723fbfc72213d7dab6df13cb96311b502423dd0109659a93b5bf692eac025369a9f2ed7fa6a30a824d29aff97a5299c91280c4f9256677d872ec35df835a20d621b6e407df36ae67d769a30899d1f3ee148b7a8b2b05ebb3fbff4046a08b9691b5036d8176d72dcb6227416f68ce7de42d9afe1a7b20cfcfaa6803e043a0b11d614473b46c09751538cb9acff02767b957efbb3834e282f439565d3d144d5823653701c19a1ea7bc0a204d72ca7641377f241df87cc98e0e355877fa1ae26f91b23dd2113412bb7c03ec8f27da2612e26ea61a911a276cade74d287f57c292b4991808a66c8c25afc3f1ac370333fa9c9261db06e9c6dae2446026ac9b95641c60ba622f5547653ab4b654daf578458b0 +shared_secret: a74e04b62bad015f2346f2d44395cf5e7c380cb5228c55e843ba8189ac2fd7be + +# Official test vector 51, seed: "450751d4401737459c6d93e6c5f2fbcc4a3af7cd7250ccf404bbb817a67bab7b4c9d0ef4570bfe25cf919da331c31d88" +entropy: 686c921c9db1263e78ae753b1c9c2e7936b8229dca48c0942c56c6bca4f10917 +public_key = 96886aea374a0c4886e4185a5ad8ca7f1a7df73c6af1282397a6a9b94c95c8284a0d65c3e614cc73159fd71bbd699006d1b97da241c470aa28113a24eef9856ecbc3619bbdbc25bf1691a241414cc3a816433c6d9466037cca4dcce8851aa9a182fa9e7ecc47e42713e9f81189cb5b68b52389095544427321ac5bb12000371a1e1cd96b585223eaa02218543c6f32a777d79c3de28d13dba32818ce41d13e2eabbc3c1223eae799057c43a2977ecff4a5966a7e52d0554a8907cc39495fa80339160fce96742fe5679cd4c4648910ae0715a9899530723be9b551e404b88a1c272e72b1b3e56144a4974df799eeb20170862305e647951645de729da99bb4fe579309d4abeac03ea4d029990b3fa8464f82e4472125bfb98837e275508d161dde593b490461e6508276b344bb18b93cc3c965e084df68a68af14e6bf37b4dca585d0621a4f32263abab1684ce0b1a5fef971e8fe18928d38477572e55596e35ab6270880c2e6abd0ee9080e75850155273aa38c0bf588e02006f5837c01063360773ff79376a72380d9e123b199b561007f1873a4ddb715abc93d95c7a8549407ec94cd0b928b30e3cdb15804cad99ab2202005675e68ec6f71f70082139b42e5bf02abcd4a4988ee0a16415a095ec8b94d2431070a710d72a596e30ed4588fde91670f3ab70f35a5f0870e86927d68f641faa10f962941e0026908ea7d27084261d190cb62b4354a1c8f06ab864031341637929b1274a1c97bd62208e681f3a96333871c41916b03e668d7559fc0a67deceb0d2f818f45d82a9e4a679d76436bcbc45f1c971e966a6cfbb4e1948f2e4b0620a28d633b78951812fa15c4696a7bb17a9ddec0329e927aa1294e5b7974bbc7008a977e0e13500337cd62b281bf73920f02b19c357eb57b3c575265f1e73a16b455af856826f29be11049a7005d9aa401aff512e8f8210f296fe64ba0ee77b1734bae34000b85c609d8bcb39260690ca9b82e105746acc35fc49ba6d1461a748206361ec179990c1b2ec71387b51c1c7ed344b816008c384eba96432ed66fe4e7225c0047e2b2979bc359a891b258a2cd40ba3694086489088b42452682518ec4c1bf8b56b91519c8d02395e726ad48696d5a2809d7f3021539bbdb38bb11e823cbea2e7273742c87776457a1804b89d524acfcb39e19fa454753908813815349a872e131a5fc91c51579b3a50e9142955ac575a8a528ffb35a77a6347f119ae0fab07701cd4166a0144963ad69268bacbfdca7bb18305efd006e44f812d063b0b7e8b1fd75b5b1662a49e26324f89415a51fbea41b75485c53b661c97ab2b9e193d6f1067f518e8522a73447aa1be8af9cd722eb8653e1837279c5194eb21bc9127f1eba895f9924a254c6b38caa0907018197a771d531a506713d3434c23a3a2b996b7e11c83b97058af811e974819da2147a473686869f4d04bfcb9786a0f9723dc67e70e4ac0f565b85f4bb30ebce82b21950838a2102805550c9fc1607ab93a7e42a0c9e79611fa7829beb0254050ee730792e73975a7b38bb718ac65064ed7090471658657123e7823631e802142aa563771bc6975ce2722f0e012f555c3f021a7fedf78f51020935d01a92362dff154daafbc4ab6c8d32d2a11525a474757c690b21274b443b58458b83766df851d95214dd04bc0af73679249cde1055e1977559d26b3bb60bb306503879b7fbf0b2eb2508aef52049f43adf6275d4db027b6477d6479cfbba91ae0abf1dc8126fc962ce9921da1b0005a09c30b6894ef6b3ff79a0c088bd2d6074988ca824aa18b887073a10c7f21982f802204c220756c0bdf59ba855a63a026125bd5c677db08368b475b52c3559c3031ea56040b9590f859f6c2560f9170f5fa759068678b9e22888671cb0a693e825bafbda853c0b56b79a63aa198710b6246a4aa58b226086416d3ed82c412b282cf38c71348b40eab105ba23b2f3720ebaa6f21c9f7b23c4e324c4c3a821de7957c21183fb48c4c127732ab169f822c3003a803aaba857c6b92bb22d8c10251ee1a6838b18c650cd5b8304f886240e16c8cf4a74f14938a21a8f3e87bca0351daca3a8d5c014037ca5665a2589eb7ec6f29d18d891c0cac822792b3408617166b55cb1182341a309f86f99f86b4e7c54e6c2bcd15b15b091274f185cbf5aa7a7a8ce437adc43de798498003691147635e787ee +result: pass +ciphertext: 41f7f6acd3a13f0f0e91c0565efad496157e3214fe0389a827ef01e586b395079a7e4149d29973233be333f2ec98af0833a079fc604df34cc4b979237327d7bfbfc5601a3145dee46b7c2bff3b415d6c133430a849f9d2899262c0b5878a7b81b7023bdce506753692f82f7ebbe11b9ab07f090ab5b5c25723bd3b41f7984f95aaf9492f12f1901c5eff906515aa974b0bc342e1474aa6a0e838b79ffbc0cbd9af44684a29aac1fb249194c3b81f37699d959602a4870bd1cf6cf8a56c05a10c0f1d3e3f61735876e9d20660ff520a42632c19ab533f38409fd85e8b3005577fc86e06c36d6a059742a3a915a67d04094bd32606201b48aeb2d2e986a15688a598dd618f3f8d530a855167f911a5121bfa08da8afc95ae3c80ce7f9b9250b0cd7dfc44ef05cec340edfa9b34ec510f1b48aaa1f5442540b506be68a5e1afe2d8333238f7e7bc5c1ec0cb469d820c1d4d1e385064bef6424df8e4c1184fb62f92aeeab255b5514c18de635cfafbc5c2af129733fad7fff2d30c6734c04d49951148faa8864c4e4e854c841ad05e3f1482e23eebc714aa95acba233fbc6f562478548160be934935970de913e3d448915f696fd2cd36eef9f13e529bd04e993d632e2d65e3b589891d0d1a4885724a3802e8513ec68360f03fb1b273bc7715c3d675226793313768d4b1937cd5703eff763a77b66bddd49b77482305b3574f0c8adee13e35d1177b9ce29ae279ac4bbe11f27f59261351f26dafb041788d9e57d9aef53ef156635e5bb12522ea4454a52217d8e20961b39765f3a689b9827245d0653dd4a23e628ad08d19812639b62f4c278b5733a618debca4ea65ce7e4ebdd2775ee90db0f5ab96f57be14691758f5cb8ca89b656d1a3a591e9ecad9b9cea665c2c58cf111935a2e50d61ed981340e77f89a12039fa8b9fa6f226a01238f5ad3bb87b7c83506265785a3799fa58baf5ca23780956d4727eb907e327ee3d575899fdfccd80e909b64dd70a63848a5bf36c79d539145c137e860e714617bc32e9297d16c199bed73b06a431c4a974c621e9ccf438e56fdd4ccf89f1b6073ada4b3f586cbf574d91a76c5581cce76ebb3a54f5a60c464b25aa0b43f5521d104a0cab9eee9ba3c4582115dfe9fddc113b3064e57cb95a59e32e7a2fb22fd19f86771fd3c5a5ff430d223442a797f018c6903461242b7cac41ffe9fd4932f25901fda592e52ad42b03c258092b7b9a28d531ca802defecf7f934a04e6bc0a736b136e1df01cc6db426c80871b9dc2e8bb2d76eb258182a3160700d3ca0c72a1251337200bca137147a6e901d79c49fe663a7a43a0d056d4f9634d563a1f3650ecaaaa20e520eeacc863f204420eabc2573eb85d76a32b894697bcc246aa1d9bc7cf5293f405d22eb21411e6b9b3bc3efddc5213a0ef74e32845626092ac8d2dab463bbbc31c8697c265a5b005363a3631aaf6a12459c451c1196c783c0bc8b76454c1034c79a79cd6bd54ded518de741c3df1846532b3ff540c6dced5dbaf4b18583b7b214d9123a94571e10944736dc8bdb7bd747c509d4d33dd3066bf78b07f440ce1626046e16ee05cbd09750340b1ce080bd0bbf13fdab443117a21f5928c27ea58fd7760a812aeebf3ed3fa601ea0fd92f217edfb3423966a13deb3755ca26002142f7d624034206e022a0b230e5e0a84e38c60332b79497fe7a73982581b14e2676cfc5746b6771f0df2139c49a0e06fa7ad0182ce6f197c90b59784eb18a83baf25c1628d1b3e92e4a52a26c97956341416433d94be539add37e4de168f87e9eeed8038df0d649a1c50f6185fd0f144df1c1a7d08a59f6a2fe6e3767a0556f322a1b5f0235e1cbf61a4f567c95a84f564d17ffbf5adeb01a5a2d81f5501764aaff6009b00103dc287eb5ad4ee6d04b8cdfd178e38f9f31d175fe86e22887fdb97d47538f0aa4118f84bd56362d08f9fdeca3110df7b766dd5e3b92f1afb29e583358d1997713aeb3bf88af40585462194cc4ce6a60c570e1401eb93ef70d0c5b4ee09e4bfe4b39ae03d6f179dd5e5e861d4f26e3bf7a03f03fa83c1e0d1ba095cd2168a32e74cb834cc6707905d57c3771fa85ee2c44b54008d660068280f94bde10839ff502f0530fb245f9472fe9ae5f9e252e0d861724fedc5df4dc7b6a0c62113339bdb1405bb039adb2e2d5246383e17197ef89025d9028c05a18526 +shared_secret: 8feaaacfb4827cfb8e45729780e72705d15cad0e7754231fc4c47260a740b051 + +# Official test vector 52, seed: "5de720f2d152bf4e1f96a61e7ae5f1bed6b8548e32638c2ccec9f43b87d1bb43dfcf334f0582984d27e440d519ab662f" +entropy: 2387772e50059cabda53cb93ba24b19ae529496c03b36584169451525c4a0e7e +public_key = ba96bfc11884b9304cc16b669550cc08a2828dc34e704534fcc057a45b25ca8ab600372cf6f60bfd530b1e67309d5004361acacd392d104c9d3bf66075d5949ad75815bc9517f13208068ad5250595d76caebc3b188a268312353e232cbbec0830c45b44e315b4e037f66722f2c8c58d37228a7b3c81a8914de52757947eddb3a99ad35bcf1bbe82d9249d228a15009bc2521162d28f91b70ce3c05c4f027cf638053776511fd4c24e660023720370042c6bdcbee2cc853e1345268235e1e31d41106b1c359c8c4844274a42059724b1ba455e01ac4b800d79d4050c4260b862ca9e30a3cb876852997298609c19479b7ea35691ec5de9a16b09382cad755cd1a008c06b3a5d347b75a06825d4a8077cc6a61543a6e4c362e979a6824dcb494b7f510c1a3557664b8ea3d681702932ba284deaec19e83bb4eb0b4e916670c185b8effbcba3252959714462809d54049561baa71f13ae08d25fc587a01c853b32681cf1fc906fe00c2cc58971f8863b803d9752310a18303298ac6c188b46ac03e3a24486b6bab54306fb1942b908635028238622198882989f712ed3a30ef5970528bb477ee6a670d031e5dac2557655acb2c10923441a77959923bd8fe07745988efdf48bf794659bd34cd8941733f97d85178021e8b20b185e0cc47973173c15a681f4a0ab52c5c4c6f3a2364465d3c727928853a5a55998743e58695feeeb9f06c2cfaa70679c00cc6ea329c16bb4943418d90017beeb03852400b7e87d6eb8be948303e31306a4116fea8ba59d30ab6f0a5060c2aa89329306065290466508c17eaf7687c551100a18cdde6600b9e467e3fa7b10dcba2a722347349c2ed9443c401b6749225f38195c04838ce8b96ab66cc2d7235c8b0316eb7e1ab1ca956c5780fa491a7720b073beeb48b98dc41a1b276020256ae6d85aa3cb2d60e6375b44aeb6e34503fb0a73426cf999af33e89f1f2934c3438f47814d76413b87a264ffc67263e3cadbda0366f13b82d9a789d55f05a30868c6a9b7bc7ca7e69184051d9f2abff4ebcf0e26290e69c0bad83ce3ba19d71133a0d8b347e1adeebb8a8b915247689311e5378d256ffa867fba904217339976b4af06bc3e5a9093e8e45cd615cbacf65bf1b0899da61790883ebec896a095959af55d0d7b39a9611e439a26caf8c71cb05a57ca071c719a281625c2e4615cd4b74826323b163cf161bf6a0424eeb2381df549b050bfb9628461210461a9a35863bc0103c8290244c6ea5ba381c421421c91c010645ca365549c7aa09520257634442b83e5806d2a274df4b8888bca68accbb5350743443d8dcb471e25ae4b748338a922b7e11f761b059bd5848eaa441c812951729d6e7013fa98340ae9a142b84b6a98c6577369053652b3b505d4d8607737b49fe06c5ce8b40ec680838a182e34296c317df67826f4ea16f4547b4fb9cd0778b2e5c66e1e5382db0c0c432770d82a1e20f59ce1eb1cba29a1b9d8a5e2dcba6b04022bb72923591e79dc4f0616b2d4637be08558a212166a97588e128c08579859d1012088a7ef26355fb4b83849aa3ab06b886aa45b9a1824a74b05f090baa7cf2969368e6a82750160ceb0107811543ad0bd25031a285c4186719d9a30270fe1c73ac8bb64d912dff5bc324441df18ae94d03c82b63cdc9085d073063da296627a5cc754973cf296f11aae6bc102e940740c853fdf2576c24b3816e60483448d9a28c3e1b295a4e6bb36283f4706290882b52f7babe54b95772a174a4a0a3767c2f6aa992f5904350071ece661d94c868df7396c1a1588f80f78f82babe28531d97617335cb098cc530c5234dbb4db98269d60b271376a52621fa40a464bfc620cbc08b2ab0198e2bcf6912752b39caff4938b842b1519455bca30c8b15f6e2942b1c6798b584d89382abb26af5be574fe12838737091611adf21507e6803a88570d19e34331f07766d39d57f80ceaababb0ac5a29991a1189a6c9364b93a53e73c13d91c656de3038302279de8a0d45d46715d78a8c9aaa5414540d9cc6553cc910b24cc941769ca5b8c576ae8e559969720d8048291c9374913ba79ee9cc3cc217c5f1a590a7ad9bf27b365881366c2a529a85ef8b34d64792bf786964831da9a38dbd81a573b74a8247b040f60404a038846bc2a3117bbd025b0f7a7de41806de885d79e49a5eee5db12a57b1a7da55ccb00b5b +result: pass +ciphertext: 32381a661b39fcf9ed796acf47b145bbfb95995255370e072dc8690b72a0430b316712f2fbfa1c70d95a3ff4a81a054280b50a7366972b7fb7e3342006a84979323b1ed528969e2d4a1288542ddec0df9ff963abbfb483b204324a26e1c21a9e1c6089962612915de3824f034653eb664c837c7db70b35462fdda46e1fcdbc57d4b5a611e7391c669183ca58ca8a7dc015a3f7c4647d5fcfecf87df2534b0517da8d8a1e3585e918ae72822b37c25633b773c2837eb28d8c527ee211987427bfdd7e93909bbd43783433b587c6ec5ed0b9e75f673884fe22a63a16e8e5c1945905afa2bd194a2a16062523cc0a5c873b02583ec65e6999a20ccf4ba76031773ce2efd50d95e841860a727055de7247c24eb610aad0c65d4c40b90c10452b663538ab81e96879d5757af125c719ec3e6489556d20be9bb28e6c894ead6fa96b9bd8b1f15524dfb1d6c959724b3b46bcea58805a0045b9722b1930a3bf5916b4d8a8712f9af1c40589def2ad4d8aa99a415a897eec81c5da5b0c933ec04f1f9d02c0907da1b41e6bf043a8f85fe5f4ba76c29ce2c8c6503e975efce053aeed389035bbad720d05bd081f72b395890109250dccbb4ce195c9ea46d55c2f44a7baa3e89fd04e909a81d19a964539b58c1b7e034b74babc73f35a34ae87a0d6b44498d4168c65a29841adbcce73e3820674fff1a8f45b0757d206b1595371f0b394e1e70783269fa75623aad43461c8ce8fbdc0592d0f1df8188c66df2c217037391666c2b95e59254137f26682f9c19a2e665dfdea3d79e8e8ec2c0cf9de2559cab184f3acdf0135cc8867615c9e2a7ef4a8861d33f62e89aba5b831add345d0348811324c0c934600993cc6a3e628d28c18c8d416b8b9960d621e5c4062668b60204467a5ed85c857dcdd057350c9af0d6046108943a10f8cbe9da835aa0bb0a803a9ef69e880b0cfb61540d161ee4aafd3a60fe8ef6404b1e06041eb9b6a91bf32f1b6be7857558bf240cb16532cfc8cf5d1e41f18531404e9209f99ad2d2134b07117f49d9d2fa6e7463697593fa55caa39b3dee39c2f377fda9543d90f591b5716cf2f8105f8179cd3995674af5ffb1b91e4d65aae0fdbe8b473349905d4f31bd864e65728ce2e0251389bcf8bb41ddc476f0f4ff5dccf8c35dc66a05f3f85d470c01fd2fa37ad39d187159981276ac684ea7d767a2f07b68063e7cf984cb2c9de7ce3aa98cf2ea1cb1b6b3ea1f42db3ff887653410c5b6109f1f29a272e590bd99145754d238c5fabb1c588c0af8b6e95b698a0349a7a218292f0360b5a32457fe8fc6eda0fa51781694947f97762b1b08704fcb6beefeae1f1af76a5acb12323ca14b92629e323447e4d3852e1177ca219c29e3d68216f19b470c57c9e57388dea6eac11a9c512a3cfe9ebec129e6dc298fae802a13b22b21372097cf60fc0db70be35324152afaea7e4f42bcc30adbf67005104fceda73238eb042b5e42f5f99cb802044edbb0aeeb564cabccb0f356d7e090b175a4175d44f3c06f5796d0cb5054e2a6a73b71a5a0fa4528e9b49acac5cef1a90070d07b0a45c95e4fc046321f903defe1e08b102b5821f53c09ac4d9f1de76b93e6fae303a2b695706c025993e396279b15e29df2aad1e046157bfda3d61e11b7136c82dcbbf6c115b6d8578eeb0f3a326287c64ba47a01ab8f680300324edac1cc84a147121c30700e345509d6d18ab26febd02b9b8760167aefcb05f92f128919f6b2c3e39f39d2404139df30e4176f3d297ed2cf24ec2a310900ca356a6099cab367a9677f110e4e2fd7d8d7734eb4d6d0c9ba07b96248f05793d3ceff900dd3f03ae5e16a95b420dce402be568faa24e6e3470194d7adbdb9762a832e74c788cb97e9c6161837074267ee67c83660af6bb845947f248a88c9e1ed8d3f6bb63799de261f77ca70ac129b60f6dc1cf22360d5e132db7e1b7198d8de3791cd4044573b65f82f013aaa642bf8a93e55b5d9334bfebd549665e20f4e496b25281816ac761f4f4f2064b8c0fd31f281bfe5fbc67d60a079fc7d024657e58475916031f962792cc7fc457cdac76f73d0698af97e218e4aa175411e0d1ffd0188e0e89b45c0948efccc3d9631d0a15db4d55bce5ade1506a52e7656c7dd3da4122a4392061942d694d46a20189559bb03a9436f2cf3e47106428043563ab0d0a2f967173d63084558e20ee065 +shared_secret: 7837d532d751ebb2d4e8debc55c324f951e2128559c9f7db17fdea6e39bda6eb + +# Official test vector 53, seed: "d71729dcbb27d7cb39e9e905025d3e55c8602efbcc483c9b866ebf82326157833169243c14550ad728bd1470f39c642e" +entropy: 155c29c5f0378df0cd0e847a80a07143cf7522fcd880c9229eb9feb1ce340cd2 +public_key = 2626cbb144988961cd4a5b3797911772787768b796a5157c180a1264c1bc6ad588139028f9f28b3d8866b8964a5253b79ae86064b5979a0b468f87ce0ae843f34765982114bf327ff08c801a3a99af0c27c72cac48614620d373b23c01d1ebbb3331c4f0ab6cf7a03804545427547acc2a467e895d75486f23cc23c779a390026e41b56cfb04b1e22190894a3c1ee16f19017d7cd75151047618b49921c8990a580a03e1656f841e95101eacc1106f0cb94dc2789bb1a2b3591134b05e7d983736f83cdd985d160a9caa210de0813ee78b411c813fb3008742f793e337a699b3a1180c5a48e12d92b9709525858a70ced2d2c81efa2401283fbca4c4b4f1904e75ad66a894aa57cf240118c73643af435f024013d6664543888f7f30327bc65e3631a4da4b6629131ec5067ec5a8c354f94aa207b587f139fd3583b3cb51e6f7926b9a914c15928738a75c9b618b250ffdecc61061618a8038b3c65841ab3d5bf203c122723b087d4ae2604f5bb6c9013c4f38903f65248c9783db79b98b9a827d528444c26c8fe408d785530d90123d30371cf46307e1c6a81097ab96280ee058d598207e666ca0dc213fa48892c3b7d5f49bdcc894f2a8659fe882201b4eace22e1713c06d74156a6a04d84c0b29f6b53fb61773d19f5cf9394dc03ba90923d33055b5c089f43961ce810a27f0878f4a77e9d60a2a1842a0450ab7208d24cc865a6393a9820b62f96abadcc0650b171b473db3e91906720cf7ea3730435f639c1ae9fac889d76bca6602ba96b0eb98aa44136cc3a978b747acba054032d36509a7ae9dc30855b2b1699628601793062c5705c5b103344c3a77947992a2071c35f6393942dba3b8545eb9a58ded8a5407a270b676061dea1c5d490f25a05c0f82750ae6151de2bf028a28657269789733f1e4c279203e2fb837e6ab1f30c04daedb3ac2809791e8ce988a4c1754c8fdfa8be0fb8c94a240ae3b1e73ecca729b4ab04044be1b97972a1a27bb10bde4240d49a568114b938bcc050b26145598905735ba2a3198e3a375b752d8f5a84004890e25916871a34469a8cdc8b1077482f785ac3e497574aca642d74a3625ca37dac98565ab6f4c95a289a434c9ce9fe61d129c073b5cb755306d47873fb186bcb86ac00be265c320c70788bca0f462fbca6db8805986425a6437304ce48d59588489561d37b60d1f171f03ea8ab817c93ea7c3afc06447eb823e630acb4213b50793457aa8f0b9b484d5830399bc2c98a7fa452fc30713fc85ad9a7707e8343e2ed113ec436625172cd4162cb7730e5f327e9566a01df27d06b460d155c8717469a365acd5ea80b935445a6610efd3062ca954276c70a8085c42aa7f82628655f97a06c098aa7ba8a1783060fb819de027dae9256e8ccc9a72539985144830c23ddbb3a1860147bcc0edb69a0ba03bf9626c1f35a611f686cb71801e130e0cf363b795bdd9c32e82978f53083262a703f85398d0587c2cca06ce1c83ffd614d1a85d437784623814d804cc00778978e0cd3e2704d34563fc23494d84b6a4482401b009b601582bf48d7521676023439ae2c48e5b54bae0c592b64d038883a1ca9a4a843c100a58d19270f8484da82ac633c3550a1634d0a7cb8bacaa19d4500af0ae14499ebad63ca1d2afea753e762246a0834942643050b151cc9aaecb587808754e2aac15d5b2c074667766181309b113211320603499d9b2a5aca065d8c088b24482200c0eb26c3f7de8751ef56850ac8097581852873b396b05ea4c12347309c7814dc89929ea6c3f09d9bfa92bbfdd0680591a69dd855269fb77e8184ddb4aa0d3b2a7013ba06d447598e95222774badd3544b6c80c229392b0caf13a94eb3bc920fdc0ad3aaaab352554a15ad0aca4d7038c208eba4f4b181e8194e21575687e55b5af0c2551acd36824c73c950b1d9a8a76264adc88e6e220396bb1aeb6ac835f2cb3167c7f4db6bf0b6552db314bb91584b86c0d7762041075a432583f8f357a77731edc1a7ea932dfd40a8ac9c09d3a687dd530ff1ab95c4e56537dc6e82210c0d3c582049a180030acfc3790fa1b437e91e1f67262e03cb59a87485658182d1a518822f678c266ad70fc1622c5b206ab7c61510f1c920db37ee852276f1961e64614ec8167fda7091988c176e893ab163e034a7e92d569882badf4976ba648396ee00e3af7f5bdb9a417e +result: pass +ciphertext: 1f4d4173d751f63ede8c9347d3bdb775f629eecfc284a185d9c633ce212e168f1a1716096e7b86ac9d637bd9e31a82582104b08375b5a4804e67ef72e1aa69f5860477c11aa0bbe3395934912120cd65d178e83f4eacd7d68243545874b3e88b670768d7e73b8b2a3844abfa49f1c3996ed490d19513d93576e212c357e9a1d38de0b59fa52e86da6e519d4918d09bf673430f59cd61c7f31754d1c56c0f0be72abd97e744d859bd39c6269f12a1e8e54fbb546ec4fb24a1ab867a8d33ba986366685b43eb5682aaea735361e65dcd7375a20a6f1511e5f2c1815569e93631839d3d443c7ce279cadc2766db0611d5ca845466c4332a5f0ce96c68d4c34e58b8ff81b1b11c2b824215440c25dae0f1d6c3c81f702a06444412c307f6db4765d1c0adb5c890b4655f0bbcde0fcd031297ba9d05e1796264cfdf138f259cf503a2410f87866be23624e2aa7292aa5082e263793e6d20801d238eec7e9180412bd118a6b9423dbee8f313aca37328454ae381a71afc476b993b3c7a2e738981dec9d6c005db2d04138d1b116a71df068d2e146c31aefcebf381f077b276c4e2693da745d90657a38a39311e875737b6938a58d0ec6a3b43d00b86ce3a64240d27c96f1b2edc705632b5035640e7164adf3bd698434c63af5f03e3b62ceb05903c82005800c2e8a5128754d5d74171096ccba35130fd7f7ebb8f1e9413b2380d1c40ec05e724fd24ce8a9f01792e624ef9f77fa1cccc8477f6bb87dad3b13ec15220d408bc6d98fab7bc7a46c16efae45f60377fd2086957dfa9f3837237e7545ecd0a0779686a5c3ff7f842e2480667c8a8c07131f54a1bdfd820fa5067e699459c942019e2acdef021393e8538ee32bab41813b64437609df35ea1b775a5c69e94fb34059ed4a3395abe419e2534cf450bb053f0f227b32969d47ef9d80ea2f68d27817d9de83aedf06fc19aaf3e1e1f61f15ea41ca2886d6c43235d47376c02bc9c061cd4b556486d502a724a05786745f0f39760ccb3c3cab55297696936a835f4415deeede9139504c483402577730ec1ac7878635e1ef482d441f25beb2b0ce79af6691ee0b41f8c56cc20de0e85da79f750e087ac1eb1684ab2b3884ff126b5cfc21fc322475ef1c3a111fcd98ba40ae5a7cefc8be88e192a60089247064a3a705108ac38c3a0d9044a74e6247477233e90175d83b10e4d49881196f0c50096d6750dbe10f11ee263420d63de467109f98d3a3aaa0e577e07c83c0e2b6281a50cf3c33286306601c637dacc6915fb23af9151395ec5719a692e60ba8ac123d16684c968ff534bd91d4ea0144c13ce513f962d055a4320fd31eb096655888bb4a834b2a828645d66c72d7825c8e995a2d68d9b59ef21f447298fec25221e5b3274be0d73bef1633c57323a745d426192c6b6fc8d195c4be182ee95e2555b07597d76cc8755b58eddfc92d08117a262d0c80297defa70bed167c7b4fc03729cb91f063ec0c85b3ea34e11d5835219516422e0b653f1a4b6c6d85bb19238e16b5405491f482dd517412b00d67596587dc6d84093bf681ad17cc293a5c70800419366796d6403259a62ff5cc10c02fde2abe8bbeec6e1135f54579d58f0cb8c560a15d90f11d289966f081586f3fd0476e90a214ccf66b55404400f4ab2e41b9b2ec1d1bbeeb61c27bf8d6593ab65ea06b5628289d0abb1296d37b17f17da5ef89cb180a1b82b73aed5469864e3b751c9bb45285c2caaaa904b1f756d3e053be1fa86f5fddc691b76714170b8be35a9c6e8f180965fb84a430a62f939eeb4c3902211e9e602c205f57cf91607b459696136486dade5099a9a2a0c20508e0b4d08c35f7922fe548a4313b246f902dd7384f5d8677c150b9b4c3ba3c985306450cb0267d34bede536e010fc8dfd792861f8f34890b29b92e7e6840cd05a41a746a3ca877f6a1ba79808b91b21e9ded72342565e651232307f6afea7601433b92ede5d4e80cefaddb313a8c6e08a3baef45e675773cf201e6b86050a85c6f3b602b9b47edcb75d35511e2a4079d1584c18329a43be1a37b55a548b6e8504c0d3818950070d6880856c5f7e5ef35e62b3f8c1d8f4328d522ce7be164a27ff263cd09e8c8e365b92ed898927bc18a534cce4984f36a8b42b4eb2ba7dd26b660147ce5933753a2959b4071826f1caa12b13aae83544863c2a46260592d0479e9b807dc5 +shared_secret: 5354347e316b6122fc62202a775657e779e82f6b292a11ffa2b9bb7dacc4f1f6 + +# Official test vector 54, seed: "a7c2c8edb3601396beb2df0657ec82fd5780a2723581a9e03dee1cdb018440439bb1142cab0487c5d136e9af46338ab7" +entropy: a9cb9a61a3324b1ea5afe693b32784e2871096b2ca14a11acc9577c52359a241 +public_key = 032c5f6a930c1f65420b0c2bbab954ae55ca8282b1da2a61f1b111df231df1151504e9031b7b28e793109ed49d46702d25b37f58fa812f68508fe2b9efc319a1976064a648bf7a251a948b74ca3f1985c5f114033e1240bf3691238b507bf28956a52204459eae072bbe10431a56af24ac15f8b546a62c03740c16ecc8afc58871537c485ca93617a324f72991273a0549b377ac040aa12a46d366462ff7b76a429bb781922f7a5397385421424a24b366651b72c5f8870c21835e0b2949f61eb3571cdcb780db683c95e23b708889303a4b9f2b862b68a4e2614eb2d8169ecc1349d9b71b5206973487660b6e4cf544baa688202b0e8df9ae88d85115f9a183fc95265608661993839914d9926cbac8993013c59e979aa8444a54972b99257542e4adb869cf56dcb305455bfec5bcf64137b72b2a6c9b0dcc6c386ed616d6a25259ea612e89c21a170b64e379458b0abd725dc8f53a55e57604282dd474c4ab30c4218a32b4183f0df24475d01fc9f8550b0aae3990bd414561463a023445bd23c7c321dc80eff509a6155cd6b2059fca448ce05d1f0062f3c21849e38a7a90bfbf15b192265f11b5bef91a6bcd0823e2e1b414750e057583401b3a5f140ed7bbcb87bba4b1aaa1aa75a911dac26298a7b9a1830a48332f139f7a4a12a528b9486197999b5717cb8552b38f7f759becd04970eb64bb4826a5cb47bcfba7cc46ca17039f1da30dea436de4b6ab76f43c06d1a1db65a9001a1e0f510d7b4755137bb4c08a710e9a9d7fd8cb32d64152c0b85f40b9cb433ed1d7bea1821c6881309642053f993739e3bcd38951433b291ea26f0948cb2dbbacc3088d58d42de008ab581b0b3a9341ac18c28b131fd4e49964d72d65658c684472550a06e68391f8d34bc09a2f25161745c74d68681c3b333ea58c412f68b44d066e33cb7ed17253fa655603dca0de7a13c7c0c78c9630f5c57ae925ac97a823102c423d0b7a3af864c7a95885e574d570895540a3793b3cd0c73b5a21660b64577d6b146e888a113bc44d78c175aa7ee72760f3b62ed7c971ae62a3e8f08ca4ab7daa43c51a18cb72158de398326589241f07a9e78bbe0c4cbc5dc388b03a7c131c885fb63841445469c42501d198d114c31da36418985ca5d95196fa12b59599f90750e4567a76a767547baea91c6580a628c3c052c3c8bef8755238c2b31d52621ea5579b649f6328695af62aa8d28402a554941b11baf7b54ffab7bd21918a0a6d6a368516b4a04354b6a922901fb8a0e9bc9f7713b977226bd8477d5c7088b8b90afabb61d0b32de98529aaec904aeab8d0240bcf114c5e3a2a44f0043b628f03fa04addac64c918916a3031d6808104539275901c8d8cbf17741a6e185250c7eb9379de46176d0b6cb02621f97c083b8fc1dabc9a0cafa9585aa848606c9cbc58b96da5a8f414bc9a6ab4d9811cd3b3b512925bb5b352cb67f76c810b3fc79113685e85595d4c62d41633fa092c31fd3102102960a0024d1f460be791bdb0b19b6610604fa26d6423864e93493066f859b86b6c2693a899dbc36cf667ab5e4d8278371cc411abba846b780090c7023a09409cc4541b4d8784ba0f643aa62336551525b315d6fb7086ac604b2272333c071b23595ccabb5459b6307b59786731008b14ea142c89a066d5e5c502724bc384013b5544a99aa872d5b65e5100315f70091d9aae9d1aba29c18a5549d11aa195d7046ae51a864eb4d69192da8248300f985fb5742a8f0623859b2a7aa600fa835a0aa647efb62b9309ba89a9c4b7478a8a1086d6c955834223600b65a80342cdb6788f09b138456773aa8a2b175f477b800c2803867253b06b5c5296d8ca3a4c85496fd9b413383c0cbb95880545c168099926c175bb6008b1abd69505b8c782c9ee06877523802a936830c9e58145c6591c66bc56abe2804b1ac28394b9f0db695b15c560bf48ded5c54a47244daf089975065b8aabc77e4a6d1178ed5b503a4ca40c2584e878c5c15fb41307ac297da94a3ea7e204b8a4156489df3577d74186d5255156aae92f77512d0b54d1c1559b8866af41ec7db75cf658625f784ab26089a076ae52103ee3053acc22a21a2920c65c10ed64372380292293f494c2c663a87d7eab6ef126a4ef50002924497e70154426f8b9801b09ae930907e6284e384a1c6554b2bc594591397810b18d01bd3777534 +result: pass +ciphertext: 5dbbbbb0482e3df0ce0cc4bfeacacef5a8c408cc33fafb645ebe51452f7e1f4ab58c0066614ac8ed6e71a53200ed108c6bb6286b97618eea3aba554f72d4074edddb457e516a4507eef3f5615fc111a5a127f6b28b925fc0b73431c3eb24258e671338fdb6b5508a5940e8b17771e06f3988051549aab62c21180592f4a7d4ef8befdd0760d48284fc977387b2592fb31d638e4bfb0b8b40d00fd8a5ca33b1ebe235c3b35749c3ef9821d4d571a3f32212775dbf8f6ceca4f21ade85dfe5c7d06b11b93217aa165937ce8ab6d5fe513074bc7d05d846694be093dbaa95810984978911031a0313ee25452151d04b57cc8e1c72f88400f1ab93d6b929b2e70e5742b95bb6552e8b228954dfcccd4a009662b7074c2f2b116b1a091a88e5ee7f15bcc0736f00d8af3a430f75adf20eb30297c3928c7f33396facf62bdfb42ae261b95d6a0295906598f4f0e5f06acc2dd390b0e7fe466edebf06592b8a238397aa5c8807dd555003b676caa0de103ca3850109d42c053474e8d8cab1853229ee32c9f65895e73f64da4e485db143ad754a50d96f01b674b5390fa1a5a644eedf8fd3c84b4e764b3c4a8052d6a3cf45dbe98491dbcd95a173031b33a2928d50f3a71728b9b21ffaa4fbe87a8e54ee00a154690739fc1feec0ca8899f225a3e92e04121165b092669f4ba41b7564f65b158c401e8895a365bb1ffb9d63f59e1de277e387bd519f60c466114823180c75427863465cc9e8ce8713d76d531cf8ff75d66573071205d69ce83b5fbef5c6170f0bd0c84db9e2d18171b52eee79ea76e0f960f80e783cc5a73d3360abeb6a5fbb93798a8cd301ea9ffa1c0fbd93527e2ea37230b9349405edcef15862f8adc9c04d95c6d7d0a134fb5a16f8dab7db9d5da26c56829e90056929daf41de948d968338537c80ebda900be95ebed473025c20c1ca8a0a2602581d4c8b17f01060f767c461c7da84751bb75de30042e56919dcb6d429833ea0ad72aabef9174a0920ee3bbd1dc216e07b5333092cd67d4cdf5d7c306387aa6762ec4e285de7d2be4d26f15e775fe4f7cca27ebc4c3b3991540975298e83c922123d8e6e9994f3542703a84cffc681722ff3fa15862ddc062515a2be78b60c2522c4dff01b52dacaffe074c573bc360856b8e8ee656b609791c86f192d3362e7ff47f616d53d028cd3dec69e33eb1b4523f33bec0977a504626940f4491362fa46888f8729a6883061f530a5e587be29bb1569d41f2c593d7b5209342f59f118b79213fdab6fa145b4aee2ef4b6edb888afb59688bb3688e66a0366e5cb0379d679cf5743e184d7978ec9ec58496e9c09a209dca53181c8e07b8bf3b4b8048110e16fb4cb3573700acadea95e7ba624e293e8438512bc122dd2f71e41717ae965e56ffd8aecd15e8530fb5b40ae25ded10d6fc5c72596077dd918a328bacf4018896c8ee24e18613f149316f39ead53019c042c872097de18f282a4978149539df1ec47febe6c352916cc804fab02b84089948ad5c8c2e94626b7b7b9fef58453727f534e3cd5a3a30d7ae1a7be98220c77a04a447ee7b65b36890a4e974d20416449a6f48c8efc1924ca17f44d28bcc7d76d795049ef9a0eb65eba9006f8d487f5258af3647be025a0e60b8998b5914df9c1cbf987a32d928b410b028d45bae13a4b3e5d6ae0b0770b634da807e23b0e2cedf13adaa0f87cc1553f40fa81e51490dfd072c05c5f9f86d6838bd177cba78c36119413f7fef19af1170c90888ff9432992473677b4cfd3b87d227809282bead69d05ae6f005648bea7a80f405870ff3afcc12f87cc23e56fe31b200ff47497963e407ea244106d54b0578b9d411269dd7ddcd0e801bbe9fcc0accd43ab0c88f6ba1ae664c14c231b6762f1fa0a1eafe23d9663b85818dc8db52e35ecb420f8faf2120ac5d3e5d51cbf5fad360277311cc1e8be2c9150768ee3586cfae7ffeb8d376984b86b0b08d4f85c7688132eba1bc272dd6f1a6809cb925c2d27354a87a39f0e1ed129625ddb437d5aa798c674c17f671401434b93cf1b6f6e17f73f2a286800471cd7861f71cc9e15d09ff533b1a34f43bed647f55759e85f706935c3ac7c16f851648de50b238d648b0a7fb15bc9f258bf0033ee19fd6a8f3b2071800ab761d4c3c66f71b8c0813214f428129879cccec4e697bccd2b3d5eafd14bb48c2bd46d7bebfd2123 +shared_secret: 634c1076627a11c878cb3a75e7026f50656e2a90614b6d76985998f51791ec27 + +# Official test vector 55, seed: "467f6158cb86b724039ff18c47950ae5c49170163c910fc9a9b30141f86e9c06ebcec91497bcd156d95758c9f0c6ef91" +entropy: e99fbae8a024ebbbdcef32ce213f6aa942e3eca925e5da4c09975d773b33a175 +public_key = 059a381bd53c19d170642535f7c56a2f6bbea8b824a81339da5945f7175d08c69784e67d5e079fec9129ee799a1860ba58485ed631cabc19ad60934c192a27f9266bef098ce2d847407826afcb0ab43057008339c534b9e19c5a3542b40a3a88d41533b346754fc09fce920ed73b2fd7048e540bc9af49247122771fec129bf133c3c3711a679353a9a0ad47c4094471aee9619eb58a3831bc60257e07d09def864638498d3a731f24a814177801ae900b5fb6cf3374320a261d57c170dab6a473c86036733e85f290c9aa4cf7b56011c61723839b1e7c629c7cb5f4e4bcd1d6c9fec583d4b78670fa7a53f65b9fd0a91cc6620a5c1129339ce2a93a66618c1ec69e584a0e9c283993268fdb1c8ec25669439472d409447b6a04cfd699d167252c29af53eb27f6c3950b456861b7ad273887bcb3b41e75bdf2962b604ba62852a92f7b192cca7391accd0ad0bb65672e66317ab82bba06766917455f7fea8af660cbf6e3103f7a60b9736bf897b3a53c9be798ac0c493911b835b4514f3e095a49a474c0c907987867cd11ae24d22d20ea24ba028f02d1b295605270c00c732b1c19658af0424f2b01b7c4b8896e6706ed564b87f21afb1208f9f85e1b40244d622a5aa461c25b0319567b7cdac03d9bcbca028ab108837150a6426138b1073c348a1de7eca92acbbc0a95aa88864d734bb90cc8b8dbdcb91c4c333ae46dfd8353c27438abab8a60572d19c5bacf6b35a50b86e80a7b9b44bc74f74b050c2d6965298d33150c63c7a15150fb66082c851637568c2e5a9952e7ad62436e8401a0545c6415a948adf1449a51779005bb08bb75fd518c2dc02ed5c0b63dbb35a37612ec44b2a04a3d3c15414c0193ef5c09aac62d1cb212bbc7bc7b380bc88a37ab103d872605ba7883cc0bc83a20b2ce28a31a3b0bec216b7b1419bca5425e255b25a86ddb5ba95900c108f036a9ba2e941a1966b225b03cb7335901e6d32613b54806c0c737984da16284ab0b4594b0734fe5c6018c047d238fea777538d49992992d1a012f4a65008554405e3c0bf8d386c2eac5e07470d4d6015de45b3f99cc1b9b6f8e459e9987b773d69e3783b520d1282b177edd9c631bb4a76052c8eaa8aa1bd62269a2b2d7a6ba35b1670d27be1eab28d1571054a67e94ab3adcca05ec609b5171a1d4ac1b3a2876e33b7218c7b1a119812479c4974575208540a0831446a7be7ae0150859ad521a0d891b7a6cb9cde236b48868c30ed26391410548eb21756c3d9efa564df5780ff7b1b1f830bfbb70ce7181df82abccc941f1d79b6db3a012d5b7ce5b7ea9ca24b387cbfc34400d47200ba07d5f82c28991b289f56361f31330245f264149c9567feb569f4e2c21cd9b80a10a1ace3804b899410d912d42a9ab68b76c2b4197ec5aba066453fce1cf04d2a315961126cc04fb63361e137a258832679865cea937cab03534746918080b1b92cd099622ea137e4d6b0b30d18ba27582775398027bc54fa09d7a23655655c491f23181816d45437be2892eb73958b56899f25b3e48874434f12a0052518f3caf11215df0bc3265d648935a68806a75617506fce900de0cb07f7686223b9990719af5252ac61a6c44a7655f54585abb4d26e2ae5192c2381009b4796c87097c2657095ae03b924653bffaaab6b9035d176fb34184e58227a64059f54b44fe62a68c7a0e798362de1966db1a982ec3af25ec20f3824cafdb53cb526f055bcabe72a9e807079046b57eec2f681ac8ebcc0734a71ec65224e4a80244340ea1d339e44c7e2c5717208a034e9a6791888c9968987e710fde215207eab3f38aa49195190a885fe75074e17920ea64b6fa077336aab211fbb757880dbe36247299bb8f65c132e48c54d47eccc7aa124547c910831bd98b07bb1f435ab7c96a4cb9b46b36b6b667da4eb7cb2a12f1bbfa88b98f3c6c3704be3f000f65562d7d4c4977ac8c98ac44958c28f65280ae68466f6b7495650cde4aaac4c68e07767d09f44917b29df63352dcd76c1e393e0d5067c76855a989b04547a625762c730624835a6636191c83d3836bf74593839a83847aff3bcb3ab169f65000c6aab1df08994e161861498fa2e42d1203786300adb060a9c2429bc7325eca24279404ac3c934ebed4991502bd669309e7a76cf09507b31fbf659deb7bb881f5358d70595c01fbc7ae7183540b7883122d67ba +result: pass +ciphertext: 9b957d47479a6dfd155260fbfb8752d27e19f551c55ba9b4b6629d8db47365a328ffe7d1bb1fa7ab7294c9ff449cacaafc8b4dedfa54339b5334301f1e17de9e27b5a5985420fcbe6b163d007830147ca38d9f9aa299ea2a4cda106304634ad47abeec58fc06528b5c245a90758a81ffb75648d115d39aa75856b64977ee1a7651c826a508174a7ab9c49a119bfcd973a4cddf2fdb4ef2186c9622c9d93fffb7e5581b4d28add151aee63e66f42eba9f3feb05b4f86f8410e80a33cf390721cababa5316c37b53e5afd955a90ccff287e121c64e3950d6d3e90e4cff61a638cb058648d19c2082a2802b92b10b91f4a0e00fbdb835c10f70f3b87c8b45dcf6615bafe6f059ad4a4d0b4ff94260b8fc421515bc0160d9b3c797df18f735054470934084c287e45ebb56d5464d2669015e2a072d48d46571bc7bd1eef75338d635c9f2bcab03c196d5d1aa5910f10e299f87988e1d44fb42b6ce5a8d49464c3e36f52af37ddee6d39a888f3121764342fa80de26763fa424ea3f3f961074688e200274cf047838027aa56091648793af6d7b0c5a27e308fd3ea090d531d5e1670e7b5b47c28e6751dcad317a5f8effc85dd4cf323653892d1c8126ef3247af8d250f4b541b446339131e90a9c307c93f7d98a17fc066d34e2457a6b3a6e3b4ad1c3b10649e69b11ea90d5b79a501d8ad68937dafcf660703df77375a59378fb3ef8d22250a848ef5f4801472ef39fa6e57e22adcbbc22c2e8730d1e23c4660e3780b6dfaff439a5aac5fb7e9ecf2db74c4ed16e487a68a08bff6918f5415c2f2f6b034428290a6555c6c12708a2883c121194b07f7e55ea70bebe1fd2bb577a8c52d91375fbb7d1561534215d1fe34d4931179c15e46b5e8bd7ddc045b82b09151f68800bcc3a612ef003f12f50df2c00aa2f4e371cebe4fceb0c9e7ba3200c07b04be526e71b859ab8e64b39b76d47bf2960083b66c1218aac27bf9d6b06cbaed870a0f379ea957857be103c3b2d254b72b01b049b11ce3a5c1d90ae13d4811e900cdbbe4d4ef1454bd744e798da49eedbd278483c9c8db68169951bd0063aab7166bb674cd78d5187f1cb5f2505a64687db7b54951ec6c064f625d6a74e86b5dd935b94077397cd434d28824387fab8413ff9b8295e274f869fdaa3786c543e8b1ce9dcb788687c158a80407dad0d4bab16e6dae51a4166f093c572787065954d4732deae996d58e6bd79ee17dc6d78f7721c23b8ee7f2779adeb3c7471cdf3006eb9b642fc9cda393374ced828e4fd4a8af9e99890f322286d08fd63a604a61d5144d9ba88276afbe84ee7c27ab956d253734d5f880974b592ed7174a0ba743fdac3c8c943bcfc93fa14e472c77b5a2ea1bfddeddae59895d43bf3e46c477c9023869beb1e07b7f80a7cf324684e2e0f67ca7843a10a30f7768bf838ff428efb22e4c71e177efd2181c9e4a78e3bc180736e9649e8e9663a76f01751150b74a48ae0bebbccfddaa449611884fb6fd7c335cfc0ca789a78ac1e1b465ca866e905aa971e6b346859b018316cd0bfdb7a3b8ac17ee08b044e71cac64e521c2d577dd5f4c6ac8aa97463334b9485f84b9a19e3cd99d99f911b7a5ae949545819fbd9bc5bc357c07c45801835d06aaa1760c09b450e77e547815d7e8a38c8c46b1c2442ceef1993827832bfc417a2780dcb788b75543b4edfda1d1629f7e21ebdb5b19e5cd72cd1cdd95cc9d6067921a7e23d68c26713e5db7443b392b7039b806973775643ad704376e8e51ba68e8d47af6924195421f98c134a016708312da306c275ad375b1605ff1fbc1a2cf8a6101c4ef45ba9085a6c28c5998b1e9130721e398dd3f4228791b0a09519072d46cc19ad5dfd824575aacdf9aea052c757cb95e7040028bb66002196a5cf9e632869c0fec3849314e6124a290dc4fd8a124a0a3219f106af488e135cb89dcbe41a33e33af79c84b0efa25f6d488ff56d49435b25cbb7f9d76c9ae7fd86f40773f8f250b59ab264eb60c702360813d20d9cd94526cbede732811475c8d7a3cf1b11d4565abaf8d996bcc023bb95601b88e316ffe8e3398b2a9f6e5f6fd80d66152f2f9669b74a4fb9221298ec7a7881ac8197466ae63a8642f641faa8bccb832f2b52b54d2dbd8248ca3760b912950128fee065b6ff2d9288fa9159239f0def0d06bc6dccbec5e5ffb967eafb5e4ffd8d1e53379 +shared_secret: 39be6e85e7c17bd9e17a0ecdeb3e60f75cd5fe7913e7556ccf166d24049b6abe + +# Official test vector 56, seed: "687c02de1041abac7b2c1e6ec2a7c3375552ed5edb10e3a8139c24cc76bda44d719d8121a81d47a0b762b4e9eeb85235" +entropy: 67a216f37d67f5e74f782f1badbce1cc8c80a6130aec305b421899a4faa0a6c3 +public_key = 128a170837c0c51758a801316881c56d436839e5778e79553d97c6c48587bac980e17632f7c7af3de5a9b15ca6d33626254a9e83009442289274a4c860f42c86d8060b2821c873aa5cbccde4540a8e5a6784ac15e6b30cc71a8de57a83bc5924d0117bbfbace8ad5cdfeca785eb224baf8361eb64c81453fdeb54e4e86ab4a397ed6e84b9ba73a0c4b8b606318ccdace61b70df22c4518f463d8342ba6faa846eb55284995f36a7467385bc8b77689807ef511122d12066e12619e37c8ad0872d5710083a2b9dc7107c955623cb209139034c9b3c6cfb7b3133502621662a61bb63b9c3a4586c2201516ee6c3f2d25026f932fc13c5426d64093cbc768985fb8f70b6871755f8811c60a4317a21ed8b5a7e51c1784b562c2a244065451e22935ba9c3ca6a63dc945ca37489e317abbb02c9e87b6b7092b1b4049c603f087d3596169baa2c6e3a778e61ac5f04962b61aff07a70ea72800a0143e9c43f2972908a27e0f3b627bf14841693613711115bc19659c5b3db6bc19ab7be40c24d5887d93e6b7d31899771244c756790ee881fd605d1383409d608fc1a10d6f2511ce815361a66db6244bffe1b61a46a888a06f3260409239abbb9c717d76ac4d658e728977c9f09bae86105d796f0bfc4b87385efcc791aba5169c679dabe34e1ee44ea66ab3d58724c3e7099bd80a9d52cca8ba95f9699c3ad8c90199a3b9613cf9652a79cbb93c8c949dfb0a6a7a1fc5e4a6032247b7885b3843a7af4c7bd49068228875a002321530bc6b5076d0853be448a8a85a8be09b94e5d65d3bc2194a977396d71924bc5b420aa6283b7ed9ac822c27641c811777a8550168468892987e936488d71c9af0a8732b6ac23acc23c2bf8719be59b23aa96110ff02af63858b7405482d684848d83fbf3b317217be6bb750cae74df77a8dfd32539e8964b764a100688301ac20a95306163ca391d33052e7488cf27d4da5be786caf99e294ba1782d462c446613a15f97e9f5632c524cbc0430382e828560315e6bac00b35c084740dbf159809849f8e104eaa28abd5f6978f071d53279c4689c77c43c0b649b8aa042a9c8ca968f28c81c211f8bca19269a9d79985478707489caf7690b529b988471b12523405db659014138d9a6133171c68961a327099477759261c523f9ba6a008d3c14b0a02295902637912bf1230a8b763ae397f805c2cfb4228776443645274f5c01515986cdba31285f9c72fe7634c0b44a42150b1dc75d8cc512d503b3ef7487371b70d50b9650360f073936398356cc3419f1225a3946a61bb38b2e61f0ef85d1686a29e56192d8a26d42a22f274811dfa1c1c4cbfec8323880523288805ac98000944b667346e173611fcdc3d474b0c30b0620f69b3d45321d9c91a130cb6842659a6a0904ba598ab706336417e17607e865328ccb035bd0646b023c3545c2b437463cffa14dbd86ee12b8ec24375f5b4a3a0548eb9997030ac092a579bcb6a0a984c9f354312931c653242678e98502a519d15e64597fc224101cd9462ace9ba56c421b692668976b3a170d88c4501147e6c68ede8a29fd4951d32ac9dc06f700cbe9b536a476736b1eab14e2493c5a94a07f6ab5a323ec3e9b9f639258275523fd32071739b585b5d8657aa502262700998f0c5ba71974c35573f14c13a70842149c077624737e5a06d52863d63f815d57acb4f0142c9167d2784365ed78c9f6b235c7368f2b26dad962e05f2279ceb44784901dbe87e413a04f462b4395b5e2264784c2ba356935dc1ab3c104b6be09b08941a02512055a1d70ecdc281e09c78214a0e57f2ce035947229181b943c5380b7e6f804fbc815a1f3023e4aab03fb4b0e2c459f58c348249adc6b4a5474622c3262b11814acfa872bb6c79b3614e3ad2a1516a0b0dec98f863cac0b061670ccd8d0c6f7eeccdac933bad47cecedac3a5231ef1c040aef8bc53025e0dfbb3d5c6cb2ae96f11a05dcf8885aee9756a13ca0c1280c4d331d50b850b6c00999360dc585e1d849114b13f3849b361f7083b5b3db470796f5761f7641a89189c748b4f6b88822ec85b04228f04a669c495af4c091b54a3835b379201d9c7273557f73c1e357588b68baf3e2a5c88ab0e9e057cdae06ce672c84b2a04503372c0f370d114ae10f97052fb3ba450d323fd3bb1b887fc4da6dbfef06ba5a2d5344feede346d1f04ad60895ab5 +result: pass +ciphertext: 3233f4cc3f6ec789ddfcfda18b29607feb86a95d113e2ad085bc8b00391c70ede55956a82cc4a693d9ce7f66d6955d281a33b19451e9998b28cedec33c45435e6a720ac19ce7ab900fd16d239ddba34bde4d0b4cd5d307b261f8ec893dcc93b635dd7d608586c71560075dfd15effa71782616fe8679197ebb9f98469f28950634a1c1a90f1cb80cc8d0314beccd8a8768e20eb715c2e5f6ca3908bb7b18c5242ce5b22287657caa8dd787c46cbc30f843a9dc0f0dd156ff016bb21701345dbb673fce26277bb49188102b49a52c2289f18429b4cde4c0455bc809a8e20b6d8c779b47cb585d5f9455b416c44b2a8519bd4159d5779b4302f1d632466620ac286ff8bdabbb37299ef5be3984759269af8cf2530ba8af630d4862bf4cd2e4a569e035590c316f9a9346a8a0ab271b7a6a8b7b1dd9d2bde91f4690ebfe7b759f9614412bc76364285cadfc7a4a7b688c08b2b769e7ea7a53e0196dfb7c1e26f447b1a9de9d587c032ba60fe7b7298d1a70dcc96617282cdadbcebe809affc49cfd635f273ac9f57ca1ffbb7f0c5bb0f47d180e562da14d33c9c2f7ce5849f1c68037c31c0906d7ad6adb228f3e9d68c3ccb51d2900c39a2176fc86e50b5c8faf857ff1bdc9a4d6d40982444469ce4b918d435e1878044ada54032855cff3fb9f0841a412336e6407cd8c142c137e81a113da062d061ab2f817104a179f2452ebf3b92612da3592a74054d01f17126b217c58a6023a7381a3d1b63d224fa552cb1087ed7734561fe699a11b073c7402a801326229675d6ce72706ba7b69b87f5316ea80cd5470c4ef45bbc4c0253c7b5d9b2cb51259f791fab2b9fc9821fc76b54107edfeaa2717ceeb9e8dff6cb2a4bbb22f012ff1f87cc4703f52653dde94db328dbbb35b9bb5da3bdbc01c3acf4b2601d9ac1f9a98d189fb1faa073b52af448a6e933781017c38aa87070b4b4c2ace0b5af9b0e5e6eea43e4f7681baab39cf40386fc503f291d45050fc6283eddc551010cdf583f8632d69444d95ccbd15464833c724bf9d2d82bd30ba3874174ac4c2fd6168f282a82795f60486c88bde20f67e645394dbba2670487f9748bf719fe5dbdad7b98cc8dff4a1a4b9bc62da1d7efeeedc0c37d5f95816ffffb78a77ea756e53e28ed69ad661287ad919af2de3f9b53f7a592402218527d8522e8b82cc235e3d5f41f2ac909e40a7a9295fb28d6cdce5a70eaa2fe905e8a1bb997d06ff9eb9b486184931f0f3e8a59ebcfcc814d31c69bcb6eaf5ee9c9a93b7feee0e336c8dd63bf5ead30f419ddc0360916d945609d30e008aa5f7a8b58ae7d2c7855131bb89935c59370341297c896c8278521c4c3eeb558a58114895d3da678249d0862f0ee3842379f59aa2eb4d12a78552e4b6f31e014cfe27b354484c53137630bcb56eb5d19320310b5d9c309bf2c4ef461d19adb919d7958a0821026c5107f5b028d6ce5069239e1fc9230bde296b2eda8fe7b723bd1f5ae93a24e62194438a9673c0becd91137dacdf9f6fb00da48e1417df117d21640dd92d98dc7dc139b6c445a5e275b74fc1e38c8550b3d822c2b2436db3ae0c1f3c5bb86f33f9d36e9af17114f52e7c9236b5b7d2e6da889d5572b8460bb002442d062506e66085e8b90c76c700f6a7b56977aebca7039e152579c4ee27b6c2a1f7aff87f6cee904f3e87c94fb271d074b66be181d11e15e15c4e101018b6ae70d63fbc42a2ae48994e4fed115ca3c84cff62a88898087b5a6b1874da7e14b39f4b09b8e2b10a7428f336d82a39e150dbc37bce6255e0a5e8fa2b74b5b24a8aa601a6c671df2dc52e13cccdbe32c4852e676e1a77468ae66ba1dc2ffcbde477041ec452dcb78d12e3c3c4057b51c74464c41e65718b25c8ecae2fe5c6e069d5163689d2671acf75002839305752512d0b5c977b9da6e981b344793b8b162e78398290425009f32441be21418fafecf2b2c7aacf0dde97896533c11ae8b94a698ab8cf8cb2cf3ebf19a358bc121dda105498fec665c760c7ae16de69f0098fc1c9481ccd817fe9cb5ea31947a35206d9c1f86b8bc8766373bf2aad13233a001e1e8cd865f8edc67974849ab0e98699fbaf73b57255afb0481cd55a032c533ecfa7219cf7f9987679a180a2644eb4d373278f1d45f8d69759319e1ed80eca491ea1df75c8cd98d694fd2480617170cca06cca20ca4650f02ee58c53 +shared_secret: 468a5377e8dfb3c0f0b79590876887667c470a1855c55d47ada807cee4fbb8d8 + +# Official test vector 57, seed: "4142237070c216bcbe245a39bd9220533c97651d84832b26727855ad994a0760c52b9319ad404693e4248b8c5ff324b3" +entropy: 52b19fea232c9154a3e431e9d69cda40013cf2d485c3cd027ad24e645420420b +public_key = 2ce082fee023e6c49fe0381cf056ac1bdc95895271f4e245bdc98ee3a87f651191832b224b3c5528562f9498979c4485c3206eee0a6f5cba8fdaa70dec105bedc40e4c6b667d1739c8580f2d246371f415411c803ae0b52f0b5a6cda5fc3340f1bfa10bb29accf402d6f06472c14cc52556e5a97b56c190eabe6817985cc346baa02c76afbb6b6dfe33f711c78896a529656b4abe25516e448bcb41dbabc340ef4b483b750b0180f68ec0020271a0e9b9f466a4728c19bdaa426fb82294ca00261cc0c3349b75d397674644ae5ca363774abe8a290240abe4039a7e124cc894657c9025e1534b91b896eefd3af2d559da9f8558fa7774708a7fd535580545bc68c9cc89ccdbcc78ed5203ffb653965e7b0920574b7907443b9931472cf19c17dd18ab87842c853462366646881592ec3f5cab67b7e768472a08a43681120f491bcde05a9805c6787b96ecccb05d7d944fc858b5ec3828859234da88d8d00542b104883e824e7b630267111e49b1bb5e4103ea9ac2b187e046b4cd109709fca26af813440f30318dbbc34598ee5dc2806794c4e0a8c6b9c2310c34636088da92147d6b32a7bb447f50b898c5a3e5cb43d6e3c147ad085652ab9edda72f25b7bf250ac84d1288fc188ba645d88333b65b1150722334b5616429b608a0c93d0d946c15576c82093e0b263bb521d9fda997a461f1ee47098861feeb8b557b4656cbac57dc61fa9510bc1c95726b561a1ca4000f28a5720c42eb932f1ca8fc9b647d3740117ebca3d5587816bb48cfc1cb4e9caeb7834e1814a7c478fa052640af253371242da9575c2a66bd01c5fca4b958ea437e6474301069d0ddb254bc4603d3ba5b7415a96e5327743662caa7e08f608be974341b70db77a850b2c11e3b4cc6525808238cb097611e77cc449f17c63da122966394e79518fb6022ec470e8c5082a945c73b52f05c38e2dc3419af4080e890a6e819bb1b301046057e548894f511989a40e854aafb62ace7e586793921e292cc8601181599977d9fa457aa2039b14488d5698a8f03df1b56479f9109ad105b028219b3c90adac962369ac1f0043373bc243286c24f599de3a28684524988198971c1f88419ca09b3e4f22b64a221df8d32afdb0572ba62c7387235ee2752903535c9c912ae30c9151a3b6c415d59a4969cc432d088196f22c518037044236eb441438acb6bb61ca45c947ab98a53b44c48119135f776f2aa4a8413a1142cc4eed8c2948f8ca5db39388dbcc15c12d13035763a57c523b99a1912d0fd29b952776eb03aeed697320c66c0f65b369e13c7eab1e98b281e7b17cc2cb9ceab725671bb5df0933eb5c70a3d39e0eb5a55cc20af912af87cc23e10ab77a9c9755201ec393b523f51d5307b176f05fea16a2dfcac794f834f60a712f13ac8d5174d3a7627ce66fb862497cb95e36da3f486c7432e5983c2cc8cc3a7582a6b22c5a7ab3bc5107c831af145fbcf74ef9523bc7f0ca5eb97b34a3872b9870eefa3fabf609475c46b1e736cff313f046b6050c13392571f2d252959aca2f8418f7489809ea51939a1e8192bea5719262208109b37bae2424ec3655ade90a9ca235f69c8a3be54793655a9e8c6e9c64354a842458067295f08b6ab3b938e6b188bc252d4569589282eb703f0cb237a67a779d8957c4602a9bd80f266303898acc60439a975c8e9d8342f6f1a7d6c92f11606435878739d3bd27460fb5e735a73cbd1cb6c657d0a6074633de38647035b54bd10986e4573e09820ef56fd8d71ee778822f72194237c0b5344cd8c888f12bb34fc86e6147161143365fd45960396bf45a8868176c7d0c440fbb71b8c6aca11b6ef3e33484f9bc22d090011918c3525cd0f0724423bd1e1c2b46a66552926a3a6a0389410a3e5c41d66b07c1b41c645787e8503c613343cc73066bc85b028025c3bb6901e33e242a0061e001ecbb7ac690837b02282a457ccae40dde98934bf37dbaa00dae287fa0a628c42a66a7e05a6645b244e909fccb6abf0075bcf0974b97099a7c67a2c71090c7bb016210d0ab69ff775dbc47206429b347e6749eeb3e23983759a583e08b1653cbb5ad4b677f9b9b365287c1b559c199c3945653a3bc7b0da8b41914be5b411268080396795f1b95ae14871397e14f8f3bc940f00d669886668c2dddebf98e5e270510db63b9982ef818d1253d74a644fd56900607545ef8 +result: pass +ciphertext: f05495bf998983547ebf417fa81ee0e20f21bf5372e112eee88c6b10b7e92b488546cd524e4eb6a674f20d9c2b0c54245be13ae593a1b894690554bfafa7f5c4b51cf7778d52dd74226637f0d80635dca6f838cb29d04182acb82ced6873a63f7e35da73f6a1c80c12be044412a2c6fbdcad994727b8c613ca1f7c71aa730c195171e929777178188852f0238d30be6438548d5a58178895847e3ad3995fa45a4213062b9cfd0337dc726fff4a71077690015d9f59ea6e206b3fd06a59b792d20cb74c4a69e706daf0efb0e2002d194aabeca9bcebb2e6e99fb3b03f4c98ae7444af336222753c90d43c76c73e20cf4276b8ddfd81e1271ab0b6105f0390852970d90d2d662fdd6675a9a44b4d64fe8e19e43110a5707f0123993d698e46901e78a7b9c015464e387a62d2b07e32ec8137af4b323b6785ee7ebe0d9e95f438fa79389d661820227d1279782dd02bd0afd6d1056364e786322bc17679bb8626f13ffd3e00adec533e1f1bb563016f618a0482c3e8f8dedf903898dd9ceff7d7f4b0ad53e91441a383c557dc5b61af80daede143cdb67ac4976ed740b006deccc2a60b4bfa234e3b2594527ef2acc10edabbd8cce6b6d31f7a2375c147aea1517f4ed29a3fe73c525974c4b0c02917a12e417fde222770ea9f8ce374978b962e0e4ca5c5a2dded62f632bd5db71e80f91d1cda3ccb6861045b35fdd136de1106d5d7af3ace8b7af2af137b63e396fd74d81a804fa7ae1c0b244eb567318d4a446518baba13342bc4290ad6727fa0a1105dfb3cde778b47e8f3886c3a93e2877a41873de3301c745785dab0a31d6b3429abae65416fad5f4853810e9a73c1298e98a8b6b5c6ad48a2d461ff62f114f8adf3c26769f870216a52a186cbccf85beeb6e189e23df0cf457b75aa9744d489f4b703bcdd951f1e8501cca99f299efe177cbf05814b7329b6f3e70f019551f16640713f24786921e42535ba17c246c1a3bc30aa50101c3ba30325e8a14b6d9e943f789103c2498c41634e14ca58c4ae55332418969f146f1e3f3123690137d54533733e7b4c61a06ca59bb99cd2b02c55c6c83948c452e1780bb15f95e05329fdda527cae208c698408f6a4f1d3d081cde45e3e2226d74d280177a4eb64f1db5259ba1ca7f51322b414d199d994c0acadba583fa1528f57da7fdbea17523c3c2659219d735b0b7add995d074a7cf3401512df7bfd1594045e78c9366cf0bca693eca3c0882fcb736eb318f74c6fd122b74db92262d933ea95ba45765f4d68d4cd2a46cf3ea603d4409a709fd0cae87abdc1e07b0f591f6534545647693ef6b8441ded679254c11037380a0b049642e6b5f7fa3a53a84303e24abc20df6537b41eefdadf9052bad0894f467c158b2088cc397bad26dd1951017b9278fbd0de090f424ad58d5f576050f3d319ad6426ba0a6bf3e5df032320b0e7e0c1eaa2662b8c9ef163715cf44c2580a1b36d2442582aa9ee05b0e6c88533c4fb75d3aa37d9244f70af8dbb12df6945baf175a00846f851eec8e30963b0b9adc6fdec86d1f4327138c10f699becd1e346aaf5a18ca4b9f377edae3d0754907b5f62b589cacb24aa60f5569b1e9d80bec0231aea82576494d66f9e31a010416229480db8579e7f9c967c52ca8344a3b2e7161b1779477b83a4740a22c27d1524223c9701d2a410ceae55da373c3a6a84de254f73c917868c59d95dbd07a89a4c41bdeed5dbb18505ba1eaae4d97470768306afdf30b5de51ccf87e49eed389fc3f9dd571b1e29140d248032d8715c178ca2e2b6c1d0efbb59b53972dcbba6ebb8aae1b0f375152bc63dd5a67eadb83bead97c73bbc5b3f9705cc1a83f95a7a15d79a522c7e825388707d63fccc08242b4d62cddc5a3f5a0be9e27efe2528bf26bbe47726cdea7366834929cc06745d57d31699b0e4fd6aa09718654cdade02a79ee69278633e3b80327ad2e732e24980907caaa989130fb7364f313df57607d47d4be7caee53990a1e7ebae03044412b01d35caebab19d9809f6ed2bb60eefd6149d2cd4b45b0fd6c901154546b0cc4119e89e15e2a3e19d3722e46fd89b1692951607debf04eff35268cc6d5c54a5dfe000fc56b5439a3c34a2df49cca808fcafbfd7435ec6c70b9b48ddbb5ab27170314d61d41ef71fbc54d5b17d279c092e920a79cdda050ddb9c320c24e27344f8ece7eed184579363 +shared_secret: fc48d9dd239e6fea212e83f63e1dec4bb5fdad92a33d06ec3b5dd53bddcb1d83 + +# Official test vector 58, seed: "bd334d7b7eb14e00e68863f2e5551a095f8af10681c28353fd19b9a7e70b8bfe266840860609008a567abc66316c77ce" +entropy: 64440adb05db3308b189bf999f9ee16e8ee3a6ccbe11eebf0d3ae4b172da7d2f +public_key = 4f240d6d4ac24ad53108968ce43555fd4bc4e3ba3df7a1541e0764c6a387de455a564203faa38457376a3170360b5303be69450acc7ffdf638a90c7cf4031719eb27fad55e4c901cb7dc5fb828ae50730609b80d5a92a89ef1963d836a16685881028759d06c55b9505e84b1aedc5e07d5294a084c1201c0109699b3009b2c67603c055949f400ad487167c1ce048b49a98a8740abba9291618f7c395d77b0649cbec1a2c0e2d25c86c70320e92be7595e103013c4974b7a3b70d8100d61b89a1ff43c30f48c137511375ba781e74bcbf322be908d09fac8991b4213db7a298c2c29455b3a5092ec8610c0325187434239a8b651f0a164240ca4e827f7bb7345848e01b50e34162a359c2ef8c8c9e6e9b7a18bc371a20d2f086865a83a2ba3545943068e173941e4875600183fb19bcf8242fb576f908a8d805cb0909054de4cb6b84b179478a0bae353d8b10ecd278a310466fc0a00c68784ef246f1f0847ccf72894549806c2c9650c9430b02fdd5cb0b3a9608bc85f02dc32933811d87322dc4993d3d13177b7440822c62fc7a31ea174159814c59bb209356c5dd20620b40d08169df1a12d913105225cbacd9c6054f1499d6204cee06206389b05057e579a9e294b43243ab92e136265470786b256f615cd3540c5ca675c4bf68f7da4760105367ad3c6d71a2a4b209296daba2768223aa30845d4ce7d67c2906156bbc4c24410176652765e294a9e22c58cb031ba06a11b5a8ae035a37db36ce1771999061d722cc99de03e96ec3216543ef74447dad96bfbd386b3154b35e08dcccc88791677053a0001dacd8eb6c34cab6eea355a10c517c45164e9eb4c714091bf129186a6b3bf33a86049671652ceade8b55ad17472b49513a79f2b867bf3157d5dbc929974147903ac69a6618f67781a450637eca5d0950948ca8f3d7c41983b8942b03d6a04842a09a4896ba3cd345e7d72a16ba3c63d95a1e85ac4fbf42efb588b088749e2f66bd6f06d56bb80a818c2c56c5d1d1b5580863d1ef10ae2a97f5f83be12491c7fd629d112823d728a2aec939e163436259367473ea0b63ed37bac19934da906a21e5355a3a2277519c8f53c96b4f1a8704b8d79666c1224819590048f5b9a8b767ffda0a20697caa075ac25b5546ae32eb2959947b11fdd384aea2692f7952266267aa559c8ef9168a04cc57fd8ae46674b75e785535a2b1c0c779a553f4ce5c1bf6094541363bbda825fec4b42035325a3a2b1a8135dcbcbf1122b8fa1a37e925440e95c2e4c0ee1f69318d04282c0bb5fc8616e99c9ace80d27a79b64c843b08cb9fc7a27d20309726cb50735cb3450be54d86860d7708b11a615dc662ecb229997004f9670e27898e78a4b3732b4ae5cc459f28e78741f9355a8ef9b394cab001c912124a01d27232f060ca523d378a5d42e0022bef2d2700d7c6c14da09736679b2a0c33c035b3f0513bdb5b46fdbbf3a5b80d65c4be918511bc8631e35aa5459793f858f364c96f2010d8849229acc89e8a50360551afc8c1d481a1c21ebb100079cf3d45ab4159371c49b16cca69fda67aed5881f300c5864c03a9391ab1080b92601f23a417a0563c0c14b16b0255c36529f74a103036466fa9290744eca08cb16b94f30340c49581becea5b64088fa7498e02b439981cb4b4ac29ec4684152830ed82864ca833481323fd8a8f66ca34bd4abcef70c15c926fb8b6323c609efea710dcb6548c06bc13d6bbb41b40caea5745c68cc550873bb467f9dc6b3e720ff4649aad171bc5527b0633cc2709932f0869a0702da790a305761f9d146c1b24005f6c1c808b6dd5d97c647232e843cd61e39894902b76624b73739e3a1bbe4fb1b4b2348c836592a2d31dc9884394628ebae00112643bcda9a01f34a8bfa828333b32e8063acc5344a4b36667691c55c50b2e3098bb4c7069846283b57fee61089654a8ba06797c57c2e7e9bf1404077b80928f5a1bb6c6a753bb8a95bc46748c32e0e1c8f7aac1e2573a47d104ff9567daa2c0732c501bb9ac1315a211c11593fc1a38a69651347b6aa1250f3895a7844e1de2ae45ec66214a8b41da464baa5fc50100c5073bdaf5b4a88c70450256b6d65413ab3ed302ccbee864c578733d40a796981a8c3849f465cacaec79898cceaac424fcd9b57b426caf306d165d1e0ba6573a638fd7df6b3f824f240e7e0eaeee7d7a093875 +result: pass +ciphertext: 26d223332fb3dbce267a1f4f233b61afa2daa02cacafe508d152b22f30478e423e7a2343c857a7f8deebbb048c4ec22a4ba846eabef5785a4c81a3001a2cdb984efaef5f9e3ac845252540b62b861695266e264600a8a284c048e3194fe84ef07b16f87bbb0194a85369c985f3f84e7f12b38d6d48233c930589af674b23fb36eaac8f07c9f60c8df3cba30aec93a7fb646d25e2fe31fb6746399461f3abc0965ee8eec0f5c86dba92cc394bd66116e4fef46be8a645b5d842eb097c6b8532f8c3be8ba1b1efc0d8915a2a3f10544f9fd10e3f35f7306482bba8e9e1e9e51444a871a26ee894dd35bc67439ac7e5695a32bd21f7645273f8363b6926eeeca3e916d3467e2b5ae16149d7d7e008728fb7956402818dbd1c7244b7ad61332ebd9e1ecf6f70e964ce9fc3f3ba70e9d48caec8f4513e7b78733a265a254c999928204f4c581cdc5865da6fad0e9e9df36a5d4e3c45ad4bf985536c21bee5cfe4f30b81cd966e30b3f09de1adc14ba9c9d39cf970455f4a64ed3abdf672ceff6de1b50459c8c84ad3d1f7fd63e529b6aeda25ca573ff9ef6b21bbdd0b9870f2a420b7dbba0a22b2e5a74d7378b6e560b605765f433fcef08f46e8d3be9582233d66336416853442194136e59968a8a93ff47d767d577258572b70c7d64924eda5722b476ebc44bc4db3f47eccfe4e124525ebad251f94843f5a0b81cd8a6082d15b49598638c1c0a87b8a6ee78cb2930388dbde1923a762eaee2b217c5543dc4ff32c0a5bbe4cf8b17dc2f0f1e6999c77253a770d6f8e1b0930613a50da18856ee2186230ba3c2e7cb13f0773fc995e4ce177438380a38e454dfa3152f0544ea5200004e1b23df4264087bc75e63acfc806e248fa11f32d5adf8f8b53df4ba9e074f2114e8d40fbfd2eee1c6edde3d4847161224bf76ab6dae50c9d277ef3d756fcbcbf693c5eec17d3128efdf95626e0a8ff831cdbff506fcccad8c10fee500d12cb9cd05aec3785a5e9290f580b8d69b4379e143f3b06befc67420975f8937af5573e3b35ed5956fc974a1108f94c991b5f20623c7d484af686e00f6860331ce47a75588d7cd2d5b0656a34ff38b5a0ad9bf69e7168fe6fadc9037b443aa72d2c5467fcaca05ec9fd3a634b37ae7cb2fd82cc329fa0786cd612cd795b776ea96aa5a4c2738e6a9c4bbad68c291cad54c40d566f72c1e4342eba719b50404b48b66e784f068309a1bb52eba27c9069a75816e572b983ae94c3a3589e5619862c38e591c8c02e7dd836a67c5483dee238e881e74be53bdd36fe710dd42e999680db458d4adf6b1495c8647950e2a27d1f3c77542675a80b7fd0d74e69a79b508b09de328a517c1d6b870f40f3b0e6a2599eca98112e97a7b72df92c46010ef119ad9faeb2f854f8680b86f8e84dc87d8ef1b78b483585e2208c4dcc1059a5f2973540d20b17101a22339de1cbbd5ac4509cdd4e6af81b4eaacae4a0778b3e8d4dd9c586370e67a2e74dca8a249ed86f0e402b1bbe60bc05cccb0c02486fb66dcbb8456f2c5f0b38dc4590088b2128c5a7e32a3980007a139f66001a8886778bacc6992108b27331ac25c18d137cc5df933ae5a8fd37e301c512c0a4663a6e1b446589ea649fd840099c9c0f6af432924d9b92bd7af6e4f3bc602831d5c1ebd62b3075a6cc6c2191c09c3545a676f3fef6bc80def9b1803479691311744f9b03d965ef39d696df935b5fc7838cd32baa57d2b7ddcabe2f9138ce1f8110562f524383e3d70c51bf06c231e76c37a68cbe5aca313fabd677f846b7be2e5d646844d5138d012f1189a1b4a43d1e624c4d20a319976c8db0c41c44a5e50c982a3447cf0a0723f4e2fbac00eccc6335e24fd77c16b9b1dcc25778cab0b6b3bbae720b471bc817d778d422ad01933271140d8cc9afa066a01cbaddf93259044f9e4cb0980cb2a90ca03e81e7a9e7444ecd64c6d230c80d12ec95bf3930775bed59af076c78c77e692f5cabb3b788dcaf7115a155bbb60aa9dc0b648df006cd5cda9b12ee2b9ffc37c9edf086f0cc78a303aac777fb7a7383385af51c1e53152d746712bf714ca05186f752533a17859f2926bc9571ebe88af6f8150366f89bf0632fd31773153f57a274fd1b5e3ec61ee6a4a372d4e6208e5491dff3205b5d298afb1dc9f2bf850b2f9a4bcb0127edb08ad68bf851b2056d3b2bbae51f32faca7ccf5892bce2 +shared_secret: 7f0ffa83f99901f27f121557ca2da03bcdee03d808e0e4421de3a07c86764d88 + +# Official test vector 59, seed: "a0264c58ab1f2cbcb212077fd378d340307accb31f1312137cf84e3d3135044d4eae8bd38bc3e540a0c14d46458f6179" +entropy: c8bb46b3a7344ad170c2052fb042b5a3b62e0590562ee82577b1081f6f114d16 +public_key = 14905ebe26c856fcce2c623156e43efd0433c19858c986436150968132591db37eaff112c1383238c0767316c0077a00a4714e49d694d802a510dc960c525bf601384b96b90141b846dca14f34159db490479205b30800137819406bc6e14786dc4079e0481d098ca4a3f15f593135ca64cd7c32c46b45b3bdea0d7fd70dee467020ab49d4360355146d7f00337a1cb452357bd01074234b464a134abebc14f7557597bb057c4972d2f012b59a0b83328e88d76bd257ca5aca8912c2a9f90672903cbca16b9746e135108638c388676cd189452325dafb4ddfe435e13908b177a5fc883bc233679df34e40a09fe384654e6a857e49c5f62aaa30e123ed71a4d79a65bab40eb2ba7e1c497ea28c069ce9898f3789fb1b03cc07a5789569496a5a6b84966dc3b601577b07b01e2bd6afc315cbe74b03cbb51bb68920362474819a02e5c60db441a3e0a2a7299ab0913a92e3228986c18639ab0b952a01c77907e6a0b59625c01b1c406a4b339c10b0c8947fdaf5c14f6721be5c11e3a62a7065a78b9b1176e64ad075150b67aaf70820b9a62848378c374a3aeae6c63cf620d0927971c0188768991734754368bdebcac2d6b899e5ecc20922059641566b4996be455e90ba9aeca1a40ce8cbd68a6ac0cc708458169c624ef80a25ccc7c931d938687ca4a12290711b1e72fb3793a760a5c29942896853e26dd1606fb48c22b53506b4413e8f5b3c20b446dfeb586532a09ad602e5c54d5e0c0149ec3526758f174ba49134c980ac109e711ff658b7cdf0178b8c861a71c700e90b1ddb9265e9bfbc07a253726fc9c54419bcc39932555024af651a277302bf383cb67dd2a929037fb4109c69347876751f4f83955a4768fb94622390790796084215b6108c72e10217fc9134b7872ac6ea3d07b989bc70a23a826676718f31338c68a5b1f9ecba4b18bc47d3161419530b67041b3864686224d0171dbd248a48527950f2c4c857aac6f7a3394662afd84f79d5854ea77c26e7c57fd8a3aad0399ccba0ae4780ecd2481ae065e3597cf1868c327c14baf36d9711a3a8647d26ea52a4f9139ba835f380ce9cc599f6f11586f158f941520d143f75d00125a3806c56108de46c5ad093872ba5f927bb2a4a88e668c40af5b4fe9b17f80ca75ab58224ba1b485a9e1c3a6e82b814a1b23bb0d61ae14a9ca4e95d03746a564087f9c53a343ab7595572cf2542d7a9cc90060e6e99cb2d18880f082d3ac91fbe00c5ab141c6385895c626d9c143ccd94042a27509ff67c802098415a49bfe163ca01a20a45add4916aa512467db549e7b0c898656cb4265df3987998c8737f3c79bedba48b9c6b8967a9bfaa0b22e6858307977903001867282cd38a01798d3b71bed21459ed4c4ca6e185d55525baa096c1897c55789b9e19a6b303af32f493cee717bad70cedd67c3dd89bed6926a0f20b1798bb46d173452a31d7543530311734422f3cc9561d5360b665ad87a19da71a7270998b87d62d5e7b0a5ca969120b4c610848fdc6afc0e631fb2abc21096347221971a08b94b0ca4116c2f5a8188cd982f3e647ada99eeadb3ac25310dea91fa724cf3e1017c0c86c2a979791d30192bc3163ecaf73c819dcfc113535bb3a40b252c8bc269884cf7407fcda465c2aaeb19681dde0c99a3853a861ac81f77e1319afc6f67b2fe52dba6b38523147f4e589ee716172650c7cb44e0b760174691217093ed4421dd5a38f2ca2c41604c592366a89c4c70adba149ac63de1b5e21e78788f33d9e135890e61d69529dd9f658b340848623b17447998bacbf1c315b1fc5bdf8fc357e89448fe7a40217205c64961cd643ac6bc3486c5efc003011e80c4f4494cba123c2ac45f7d9019cbc7018669921fa76db3cb5436763b48a8046fa71d186b57c942f6529930d23737c49698c15404de20f8f357d5da523ee3a117fd8b69ab80335e388fcc661a0c8b583f94a8c7869e464a0544c84d160a828f1770d97be7bc43cdfa8566791727b7884e99a5d9fc549369a4ec5195ef1285860cb263085740cd466bc24835ae33bdd1499ce941f8041571ab638bcf896201cbf0b7324ec22c6d3c00f60ac6e6f0317efe14efb13440330b50cf86227fcc7bedac20f9364e2593adb7599b5142174d6b999c725f7d119814642f79de48f28d8b47d06bfec41fd06e2da9ae905005ad241ba55ab42a993df7551 +result: pass +ciphertext: a047e3dce5d5e4c323b3b4076f1d4d188e291151696de7dff52f9e2391919e077021eedfdc8750cfc16d8bc28e56faf53ca3bf0a00f80ec7740d7d32cdef30faa00b1d074d70ec64a154101e9be710969bb91f168d25079d67a861664bd4605546296cc4e6e708aa043f2fb2dacf8071215f80c9c710a8b0e2dff75e42b767ceeb643208c909646f8880d83b5168c07fd36cf9502c3eb170e81f9df2686108e001bd15f11b7a2f99b1ec6ca9dd0206401df24160a975ae0ea179da5b3c9756ace0ce3e9b42f32045ecf6ff10ab387cffc357518560905ee8f31c5c577111d0c50b4a7c131aa18628cd1fb61ad7484b43310e252437cb20dcccb807a5777cba2404ff76e54f10638cc66a925eca98f9340c7839c12ed1dcb23d39b4f99b1f731be3cc5738ed2f115a0cad0cfa0ee7f9aeef3ca7485cd221a61848922642de62d248e18743b060c42ae934b0a5e7ebca43e266e0a58f7d951fc5696275807916d552a372eca27c535525933630f0a5f3369be348021a338e7074292115fc8a786ae736cf5203537088f97e68c78271424a67a1f2632c1539d34b7f90bb11051d9825e911b42056f60ad0d28cb70a4a20a13009887b8d12f8fb07dae59e2fc621d76be8f8b28c6d31b4116e81ade5f973f44e4c819ed374f45db6e68e264ce5d4973b666cc0214ad7a51b1e8fda04a41ff465f1603a427c92c01813fbf54bd5253c53022652f78a3f6b88331192f0cd8c1ba24958495c98fe29696391dfa56357607936b9889123c5222c92c09f9e69c6b2a0e6b389113924a1940e5d82ac13091e47b76970d0a06a682c5441fc20114f1246e69f486b3030d42bf0e5b8480304eb49e8b4c2f1c5d5a11f77d8a25a0ed106c665610c2a62df65026845ef99d2d43d7d3a503fbb702c4806255cb5f0a458c2673d9de010ed4e78dd8fd1af0bea91b8ef35246833117dc3517bdbd8e897ea83f6ba5442fdc41e661082157ed9be5da8d8f911f8982e976812f5d157c83f7dc9249c4e32a7b0c6b08c653a014caa4a8e9903027c7ae748edd7e026f7f3a934fd7b62799b4e45cb9b14c4b3fc95e3df7382462931335dc7e7beb1bd806077e1d36fb231c76659a85da15d87fdb582adae063b3d3584af6416a153272a2f27fe5205d827fa24693fd62848bd2eee681e8d539028a6c81c4753786c4b1c991bf6730bed5e14a9e4f34bc80b8b598fc75cc7466b986aa92f976c3322113ddd84913b3e1b364dcf01731d6537f56b2b4eaa45a4063d23e61dbcedbd00435b4ed3b5b79de52363e1d40f2aa6450493875c6ad3660bb9ad68d4aac0ca4e5797f6f1151223840feb154f9e6c749ad66b8f0a0bcac22859e1cf3eea7aab96db9aab863168d36958381c5c95884dfdb8e4fb69c5c1f079c7271e3687db754d2a8a9a9597ee633c18255326ef63a50ac58fcf188f729e718a959fc0320568d36ade385e67a148152d1ba4ff009b056ab843471bd94c7a832fb2b706cfaadbbbd8aa42de9fe7298e53b11d4056c9ed043bc514d3e7da9f7da6726f267d584cb185d777dc58ffb0e44141bd24ddbafd1509387e9bf9aa532f6dd5f1bc83b6fcbd4eee3e9ef49a692818b644209030d944208182a394c10aa61c1869c7824f028ffea498bcb87c0c6fc5df46447f3607b2fdcdcdd3ca9bf885792d418563f404c39acc8f7855599f0943fe507e5c02cc947762d3390ddab882c46a604278359655b399985cfb3aa434a04f0716d2d94ad8c9f5a5b0dc448c0f85751ead9f22ba0052810f66205cbc7d7b8440441a892bbe6487da07d482bce368372ffac7db844daec7d5364d650f70113f86346886c93b948985a4187226793ce3febe4372ec6394201011d6e66c342a304576f33ab5de2428bc4abe940dc78d90c3a4238f7f06189fb440ab3cf8fa36fe19a0b03a2c2a119d2ec5812b999a277be469bc9ad6614472ecf1a70ccde3a4dc5fe647574b4827b2aba6e1d65a0f37a696b9a73e0cf3a9cd3293e36369363d637fa22d484b3c9d451bf96d993402f442591079c0293275216ff5b46e4170b9459ae31a9a7f4397112f0f9e1c778b79520aad1245b611e920010e12ff14bcab2a090767803fb30478d813d4cde9858befa2930572c45dc2e1fbb117ce98e81734806d1106ff3d256cf58d7a3a6efddd9ca2b1d87de57113eaa7ff1e34ab7fb98514abe99a268c8d87307fbdc9 +shared_secret: 6674a584a85e1ef11565916b1779603295226e1eb7ce22a3e06ebf19dd468a51 + +# Official test vector 60, seed: "99a9cdbfc674ab3ff2c64cded7d697a6e27a767434a47aff7c3fbf3c6a22d6043d27868955286a13efe3de36d22ec48e" +entropy: 2e2b70609f3fe029a14d09d5d659871ac776ce2797a0355f16e2eb68f5613fd1 +public_key = 212bacc3413ae8c00a2b78cc3b0c7958e349211bc64f036a70aa16067882330a36aa4cb183497c0251b2b942964a922c25525ee9e3834504a085540b36971963e09106fc14125659bae0c96e6663a479a381a915fda7b8a404061c90b814c3146a549b517a3735760244ea8959eb2d98bc37e2f7309e09749c4c689f6b640d28a7a0b8524fb9bc0b544eb219683be91e79baa327b5c0d2f2713b78341c9682f6941327959f853195aa36b919e07c1d5723d6528269b360984857df1636f2a80cf1383a775c230a9991f8602d074b5f0bb42c13ca1eaf4b3c7336a4fe61a8310c9c27f37454f9af3ff0bbb2232689c63ce4b7cbb880886b36681414902bf77a2623ae5f0c359c038f82433413d2cfa88373bbd17bf1d5503774939e916c415c8b929b5c2303234501ba642b75ef2823e42b71647014044a9450a55cedc0592da6554cf74693429d2d526d34851fda24a64450c785510111988982914fcba3addbd0963c3bce55f41b3cc71c0300ba32b02fac76158d673ab1ec7a23b30afd2a53d5aba3c3c87e0fa54408864037511dc3ec113153681d28c45b2a25e7256b6fa90df8b8ba8435b2f90727d4394eaf49981b397916c1642abb68f5006fbb2ba6c2c53b6dc5795a261ba674778ffa7e9daa65ac93366954710419c99fb21a46b029242158294107dfa28c53554aa3d79878b53506ea03846a9041664bab6056f7211a337910f77a2f37b993324927d64aa0d5085840475039c04acaf0ce5721b1f182b53e96928927961b8a04500118a453738c78b8a796ceebd960473b2fd2c9c825593ff4a95f3f659ef00b251449a253332171bbcb051699b100501f84bbc64c4e7f9c7db1190c4621664fb33c624910078155c1f2035d1755f7b10112e4521d58cb9c89575a3a2fa6caae5dba470a9b4d3fdc9b7ca6ac28e0570cc92647d382d04a5091d8a1ef749067848cda293a47d772372820f25245ff457580857eadc0bda0a059ecf1a3adfbc6d7e87184337e94231e8e3774c9854ef1c6b4c872bea6f939845942ff2732aed903a23b72cbb5122c43c8ed303ae0d33a7a704001890f0b378039ca271205d052fb594c526e7c761ad6b0cf14bb251225c7ff42b4b5f651ed55143ecc05cdb21962157e28d7be4fc4b5aebb6cfce5396fa51af1bc85fda50b00fa63ed800d60a5761dea715258bcf597a434e48b23202d8a415831c0417c6c43a659036df10772e796a2d70515939823575cb5c01d35155f7399bfe1b3ca9bfa47ebd69f5c8cc8879b87ae34a7dc32568817aa3f923df22c92be454e99d83023d3caa2e80e0ecb8818414b0241a6315ab20b63c422b6be8572b5e7f249fa3802fa647febc89c8ccc22583c144c191b91187257235d857b9bba3b13db06be10a35d712c540e7bcc62373d76e5828be049b6462d8da931f24a6827d314f5c0ad266a3529fa9b47cb6eec425b326ab0bfa032b6809d82c1cc3e2427787a413daa7d3976aaf83ac08d87b34da219a92a631784bce31cc66693c75aa58c7c87a9e3a926b5229a4f008b85090f351694f66743dae3a59a86299b43c20522cd82f96284623ee20b521794114d1459fdf70739558123f18ff8304730fbc63f198a2eb992e7115e07f509dc58b1e2a00c314714b5162334861ec20acac85664d14057d2788207c01a7ae383c93971d850102d60ac0d042c648c100ed660ef8a2cad375ae1a21b11998264e86ae0561e19d971689183968a98be064486b8abc3634021f770e2581b4383aa3c938bf3aca4aa2a337ec06647aa47428bc027339f2802b9f135820f3a8bea06846beac4c1a2702c502e50d338fb80a590a564f48a6606a10b51e839a4034f2b906ea34b4d3c875f1ff6bb57797b076638e4b576fe8c5a490806bfd178b4569a69626001c8a5fa1582bf4bb7bd586296f9ae74724d7b6c9c38d25273e114fed525ab008b887b9e5871172cc393938902914a3ace06a41cf92f6da963e4217f6b1363f7273cbf4a342865a761371f24285113e74f7a770079157c0ba0700e6bb9ca99ae10b83299ca9445b8024e450cb6152fceb79c0c433753c0b88b21c71bcb38c643ae5e16502fd14c0aa8939219005a15180446a166e74933f46f41a68675692e25816e7a227808764e20c98d33d6c3ef3801d21cb37d2872fe76749aeb09976580ccd4feadcea0b16f00970f92acb21c560501728f +result: pass +ciphertext: 7444dc5528743f695af09c910e1a574f43aba4282a54f050174a3d219c33694c05e6cffb95c7b43ac76e56e244b079759e8202b6425d6c3a124750fcd90eceb029bcfefd2d7ab513f5bb298aff940365f5064d68ce6c485b2f99c76cfe75917280d66c349b9d16eaad19b0814a8ee783e52ec7a964a66e2515dbfb50877f5fbd3781ba5593cd8ca22ce1531b4638c2624129c2a557764ca86fbf735cfeba58ce6b0bff7f039dae5a00f8faa86c463cb1176985ebfdf9aa6856d05b7b657760d5905a735e1cca3f033225da99a8fb631a6c710792ce7f83d8e4bdbd713c072f2e6ca08f80887c9631c325b8b853161843810f4a82e1cb49711e875a6328167170d796c365a6754bcb6a39237642a3a25121759523ef3224a74acd8c182e114a709552478c942adb7ba0133944490d7458fc4ef364b34fe1cc94f8215207a939c92921778ad986510247255b0def4baf40810ff5a148c46984f70b67608991b93125688af498f53a40a9e80424ef660c6cca5e7c3ff1024691f67659a31ec331e3b95a9a54f31c84257c12665e684cc49f4dfb13dafc414fbdd7148d9c9b21d84cc58eae523fa9b1b55aad27c95fb35696020fa7becad60973177788670c785a029567198a5240ece3e80133bd446080e29a749c7e6eef6eea00ee547428961353bb063a175426ca066ec2aa5c35c6ac6ba77a2b16974de8767d7ea028a83dc127f05a9ac0e46ab6784bfefc2a0e9d2db662ac0fa63403dfb787c63d57d1e3c51bba51233415af6ce6c3b6cfcfed555fee4a90f9368a5db2d9aa2a847efa6a25b198b69046314c5d43778ec30dcfe00c62e04c55051071de02976dda6a7f3c7495b98b62b0005850748d5b5e4d413f6bcf2f7a9095836790781d946b399b3dfa087ba6b02726e3a7dfbcb3b50e828b747a2eadd904a14a85dd136f074b76b17fee0d68e62591b8bcee55a3305ad469c28f6372e75c698ac8b5038c700e920fdaf2e02b8f87f91ba8b4b8ac1fa95513567a35ca4328649baa1fc68cf975f9ce53bca91f3d536f9d3dc85968fe18726009036403b9fec674a8aa4d3ada1396fecd59212e2dfdf7b185e5cd90e8749891f11a4ee5f515c7ee2f2d259e397be82ec63eae4935e9c43920c3563b98b17f1a29bd765da90a8cbbe902ef9b467c161dccae224f1b5f263cb6f5dd1ed070e045279f5114180169ea9f2c34a2d62535ea22ae6eeca384c9d9862d618d2accc856e2d5295709d4a66dda98588cbc1637e9dd5288129b92ba287833eff7353f57ae273fe0b664973058b88d1dfeea2c1a14485f61ec761169cb73d10b04dcbb39648f970ede927463f0ba35c6e5885c6257516d87a32e4e7e7a7ef58df4e03a5b8850e3113bc3c22de934b1c5a13c6ebc64d1c0adeb1d80851ca12adb496551b662bad4be6acb3059f5efb927f69b711bbd77429547ed21fb14d9c14e87f364fc7f5335ab0ed3312ea8670a92a58d42106f6969688ed106d2028c0b0393f2b2d4810d574eb76ca14062c7cf0fa284b393553de48b98a237679651535d1a8c20dc04676937a6a35ab0d90ad1ddd5f3056508d6e4dab52709a4bdc50ebad3c549973a278f920119e7731ea497d31428c96eadad8cb0f918e7dbd965287e7aaa60f6fed80d3ca2d4a0228893ddf8a36ec02354f02d7ab8f8490a6be91eff2f5d50013fbecaea945a7859296109eb200e3a406b96bad84846ad7fba8c519a25d224022b1b21d1b42ec28ebd8a280970027270ceada0a98107eecdc6bf3a63c5bd59d739d6024ee83d18abab1d27dfae98ec8c270caffb87904b2abe8aae05224ae346a4b1cab500aebce199c675792a4185ea761f1ae81b43dfc0530e6ec253cdbec633befa4f18b35c01ad3fc359e7ba70bd857f5afe83d6fba06578b6147a454e12bb9a559ef838163e906fdd089b5f4d302ab3c8449350243f48e09abdae9b4b499e709e03b34a2aae069a9011a73199c90e719b3f9993b256542c55d0bed6a7fd3e0e857bd7211b8303fe2d4c38a9755c546ea391783d960c1fce230bc59e3cf151acd24cdf85c785a6f27364567f200d18efe9bfd222a160924a16f198846d8636a44aa6f0c5027663c5aa6a76fbb6b077d2aa98c541109d82e4a8fb0d76f43af57a26a4d642396174d15dc9a10d15f01fad78b9ddb2c9709205f20c2ba1807608d25af4b0418bf2b657e2808efb341fccaa2d +shared_secret: 6843c8212348defcf5017ec29c620642d127ebc33fb539c4d07cca88e5a3bd9a + +# Official test vector 61, seed: "c799d57b41f28c5c446dfc58a5ac6499c4bcf3c162afd2b09a16549826ec2a6f689e44bafc4acc82f5d6aec23f4a3993" +entropy: 4725dd8fb314bfd8ee23731c2341dbe114606d9abe6434c471b5573e7df193bb +public_key = f81037775c727839696adb115a704f10199031d9ba3d3433ecb50702068392ac97a2db354cb311dc39aaf9719c4f5a7c0401282ba4697ca8c70ebc4e179893135179cbf02820d6bb7263708b2339f777c242f4c34155ac2452cc21904580b381a964c281d750c15c42d8477e7708c45c61bbefc6928f191260409ac31a61400350e928a3b24c313a71020fd186f6e9afab17bb065132588c115c31ca8c630275b4baab7a98a778b97a680adb4611e6471683352b6928b7f0378105383b5f981923e800ff11ce6b64904ad3835c270cad0cb0a6e1b8879cbe152221e6e0994fea9bfeb9cf4f582e4f429170295a8419c984283d79b882bb420876588ae6403f207b3798d89ddc1bc90d7c91d7d07aeeb2bc0e491269281cfe93129c5283a03630542a1312ba5c896b969ac0aba14a289c0672b964a6cb1c4a11c3617ab30e4beb8b8864285087a15c574c833166c759741f493438a535918c0ab0e46926d195802a5cca3078fcf3770ea9644a69c730314f3d91b5e04150b670b23448008ee55f841c148a699387d919dcdc63a23966a43b2927fcaf47f2cb36935d65622214403256753ef3dcaf73d183c79384e7914bfe597363684355f25ac1042505361a04798e377791b5553c449927efdb48606a272c029a2da819a48749bd66a32091946a2a7a0649095da1193c1650aef47099456861519bc8701477bb5b01359c4772269735485b829835861496e437a063838a0419ae6877d0c493b5c3aa56777f3a727e0ee5825dc83ae9f4a51e612002748a5d1a21c1f870f5886b39a23e0cfa14b6151053580a8d8a306af04a7418c88bb5c398c6cd8f6529edfbcd601c049872c11381ab10c0267c0c8c2f614b16d92800dd0989fb2a23887ccf46401b864552105dc79bb0def57eb8b6974723a9164c2737abbdb793bfbf00a860a185d3a81a2257ca91e09f547c6acaf35ac5833fdd9a1f38a5b4f5e227b3fc692677766bb81f85e34de5b200dd077573f0796175140fa9c920522d68040518c5aa8f84b1ccacbe5be03e0a0789372c338a1b24b47a8bfb0941aaa8601a7937d5577fdab4a6d3094aee7c073a7632f417b63383bd035a351c3656b0a52c6e435d6d6699946585b6ea9e8568307c18c025a80e9074629dd70dae6bbdba296e0897c8ea895fc6b5b446d1000e4c880747798cd42c860c3bda63607b69a6c4fb88082593c1d965ac6cc71125cc56a72b60d1297605787819749d43be46431959ac29a01c3ebaab30d9a18c1c7998d9e29415ba0cd72c0d933086dcc1c20c537a6f296d88f29b5d2a21fe314999cb6037d539081120d60206eef1b1e1a498eb65268e94366cd8912d269b2d12a3f1b99572e6138bc29fa5520c8a6cb23f90859ea0a494c17fe7ac09beb658f260cbf3a5cdf9933ca1659f2a0551b881055406cc6b72baeaccbbc4b6964751afe07754da9a8b0b151f02972df2bc1465929c0be64e38e6c55ed237f182151d1a91e4253c42d05badb82cf3457e01cb59a96730b5007ae0fc37a3a322115c8560f0a2a1395a88464728c18a16bb249c168accc3165305a6584939105b594af244c2bb41405163e5bb50fde104e7dc604a592b9e22649c0686be9a8860794cee458a73796ed877b18e034f2f50b8441609cf53280f9c095fd67749871245a4c2bc9cb008ea3e44f424dbd56a7c734b1a322de366541c732fd5f74a0663a61f277301723579158ecd08bd014c5cfdb7610b61789d8b84da23a58e571a72981cf63cc49c59ccf045acbd3cbfed4571f6daaab9b23bf26091bc581cbe301674972ee4420e7e0740bed617a3c94c3ca3be7125c7d6242185163398458311937adad8462b0cb3d5900994f5906121c20f6731ac81a32a864ec383bd8310bd64a30f3d575d936426e721228b93c0c482c1be106f4ce41c5e0057116b30cbf44aa2a217b08b690ff891657188d3b6702ffa9d8ed7b62cf78f6831a13b410679e60fbf9a3221906b5885404a7326589681c1549b9459745455bae21ca799796065925ff980aaa68c206b17aad1cb9511201e53dca34d439167d55924018e7e513fa919a4573b5500a91c8ab61f17cb5bcc282939172217365ef694c98a440b09c883cccc114769b84ce736c5c9c52b050ea16a0e4b8c58465438b7aa11c2c98ecf4aea6284cd00c4229cb6fe2f90dbbc05eb935c85f1ca2afde0d54307949544 +result: pass +ciphertext: 11c6b00acaa538f146d7c8dd2f0a44e1bab24875544ffbcb24857ceeae31d7f44bf05624541b6bdac79eea7d55d5063c65c5d003a8977ab872d53c77ebcb8d9d6ab8a17cd7e1969667c1600af54a52c49881fa22c15d8bc5131438b3165dfb158a2b8757539c2b5331f18aebcab7ad3e90c8207aebd1729905973272ac4d24bf86ad39a4b38801b449d202aa338332a0c5d284e5b62d1115eab7cfc5b415edae163c0374b7fa53c91a0eff51d32a2e76f21b208f1af7537de5fb4fcc35e770e84e75cf7547cbf23ebfafd7479897e8c30c9419689a267cd1931cdc7044fce50d9ad606f90f5f5096751ee2e2e7ef03bbaf9caf7481f2ff7432eb5b40f90d23453289e47db76a4219aea192d66c09dcbb9b37b5286f9c3d138fbc712b10c1b8d553c222e2b93ba268cdda88386fcec1a209f384ff6da9837f62aa0bac05cfe490492e96a7ed8377592252d04bac953f2ee24d48a0208364f5543a8389f19ccb7b54597fe03dd32f019bcca2c5307732b7658d04b0524e3656d0d5c71766ba0f11700070399d023842f4f7f90186016248ac1deb3d0c5c07e7116422b2ffb18a87575516143d6b12ec66571e6a0a3bcb0a482b45230901e17dc5db38347b7a7efb0d6adb9165dfc85376918cd78e93ff0c3702c1e37ad7a03430a5f076c9cb770736003991a558770cc06971dfbd61d52b1e46a89dff239c1d41879b4c80fbb74506cc7c5e48785cab3260b4962419e997b9c869d9006f7ca166f63d2876ff06c6316571c06e9042968419cbfdfad551087c824b0511487d2d696b25a8b11ce78b06e9bdeb48521c7afbfa4645209a7e74053e313b65902e11962febc482a093b10d24a0d1c13548332dfd7871524aa269b2d70303a277465d7a1cebcaa796398772b48473f5b6159994351abac4cced4d2203f7846c8802023e8939b197a16cf1c839494f9adcad03a4d3193d159bf09efb4588c9d9aa53890553d2cd5acf533922da4184ed80a17c1fa916e049a530e2fe330e470f8bd4feb429a537a006c6f759b1e98e73084a58dc05af1efc0fde60ca440a5ee8f094d10f52b64bd825f5c0ef8dc89463f13ed9c36ee30cfb72f2046ad58198cf374c2d039684debe17b34d9c82e73cd6483d5a9da9993eef118308f88285d8e99d132f5af9bfc6df2986c99b9dfb4b1f512a61f28a2ce8a948e292d027b5d9c320692332de93cfb794adbbad8747c598d401d2b7dde4f37434148268a36d4400e953bf61115de643552bfadd1ee65ebd13c87f2a5ff62a8e4622d3b093fffcddf5a897e2dfca8cd94aa1c2ed67595241b3b8a81a6ab46d950f17a4d5798a74294ffa1fc044736bd3050d586ec4c3a80ac2fad1f0260707d97dd3fcafea1c5653e51fec2b5e7e681b5168b2077b65d8935d2aa497f6abeababef6cfc250ae6281d6ca1cb61bcb26d62d40b01440049628c902e67c9514c7b2e6da7f46f4554ae4aab9bd2336548b3d325ef734855fd1543f714401c12e9c58e5f755201aa1ccee4ed0173dfa3aba864760104a671967c21ad30a7479bf513627e7cd21e91e7d0107822e9a1d4dbcece8ebeff33c0fcbf7a08c81a5f69c09abb48728167528d37368da4726f538696796ed01af351c4401649f0813344f8a04cdec44f0483bb69158dd89d3808af0bac71ee3e000a1bd7b0d47359c4896c99d1fdf6ebef54bf57b1631d62cabe02fd0c02515974ab09fa243364f36b2ead8add458c840f3e037a13bb678fa061cdeb302010838e5d92545fcf2310264ce64c00593e0462c62a0c1b35cb3baa017bafe03225c91f2d55ea4f6657fe8772bc8f438c83e4827f444ddbdb6abc05fdf282bae61353f239c72ca3027a573432e002745382b024bd7d3fcd7b6195929c24d3cbeb9edc90c9f61ea9da77f9d63a148d85d77569d721e6cb7415e75fe1377ba54b1e971f2683554a845fcd41567757a6ce6439ae3a4fbdf2695a654c4d83cb6fcca6251ff2e05923745ec6e746dc21ecf273906e4992e5c7f0c300e09422e0b15ef2f85789296afd12ae927161ba51c648a0fa8c56614d732a51667a5041c814c4ed7e4058b727b2e12ece2e6f3cfd43cffe4aca871b9b8eed8fea56eb64e2f30b0a99382d7bfbfc67fb4a571ad991919a07b7a67834bd31f23c0ade5276df2ead3c39f375c8402a83b4e2c405f405ff34b689b29a5c8de61577dd77503314cfce43660 +shared_secret: f09ab02775dcc52cbdb2a5159181ab535d1ed680df8fe320856b547166c2abf0 + +# Official test vector 62, seed: "f7ae036a0176a9de9a036a542dd2840033277c44ae936d10b768566216de9d4395cd42b116873b69d9804ba6ccbc05d5" +entropy: 818d3bb8ebfb32bf464775f7139bac0a5bddce80ec5798595992f9403002cd5d +public_key = 5227748594cc5ac52decbb390cb6a9b8f989c7048017f52231125d91c51ea6174ef4a37b7cb505b4a029f44079e14b957ffa2f8f325e7334bcfb5b023b4801f5f576333c54ef0440b4f7c8f6b3afec2524e31943fd6323d8f2300ba1b8095309e41c1ea6016de8f6ce4af647db19467e492c1cc12b5b5426b8339ea122473d1b84c603babba7b32534587145b360474a8483be8b06a6086bc5666a9b5af8b4eda929fb60606b85305c89cbd26a4be8a6b4866808fc2120649a60a3da2c64330a94dabbdc4cab2b956b2a5b7dc9e7cbdac88a71d5c06df3b192c5cc5dc6b7d10b07846026a3f5cf0e5b2c5d1c80bde5c3ca231ac908bdb7054190e77d54d40b9e7534dff0b36eb92652449aa4305967e57c9e358f8114544e0a5b8ff2c490c4a3267a405e38653449b617f26c6a3a74033ac483c074d5d0029d882f3507a7936845a6ab4d33bb4dda806759852488a06731222681326e9c6691077a35a7791734bc6b8e2511ab961bb1f17ee411ae86ebabf1b4968da61faf667b507450fff1a3392425457ba4625086ab1a871c8386982a322b82b7cf198ad639060eecc1c2e40bed7462ce4c6792764509e5cb9cc28b5a71a26d52658c0b5b951180f903bad708ca9bf7995e4595b8a009c614406c669468c1b4fa3740a9e91c64c03ce4a3adecd19a716a82530a508970cf16fca38aa10baf9810a8c3334c7b4a29904b7f72bea3e61505107e641c2be03ccd6c0546d2698c110caf2f194789c616ada3103b5c7f015991d473837e9451c9cbc9dd02333636bbbc825dd0da77a6731fbc3a831348cf1a3550166b72b4d0c59a5bb31de1829cc77c235b73bbdba937e5b45a456198b218b641be8c05ccdff9746bd64fd5a759a4886d3022cb63167aa3f37655a55e9acb9671262aeeb99f6d5618212419b1a41b7c260213b86ad9c995294b9e96e77ba66a40f9b5243bb38e6b7a7311d7c29c9272f98308a5f68c58cb111e33964b797a151588ee515fc0f032b054c7dd35ce5c734b8887465b0b4bb58c491f9953b1133561977f0c25401e6b577cc1cbd555bb8ba7760fb972a6b2344d2222c0fa575717501b3191ecc598bc93bd145800d9924c06c36d0360aab9678e93138d266572b305b7ea69a6ac8ca3ed647137090cec1227169754b49324f029776ad3c6c3e33e14170265296c1a7056282074a64690450555945a87ba57b54eb3595df82e81c1552f19c415c6cfdc0cb5fb32c3db060dcc208b6beac782668eddf9986e0a1bb5a0941a3745ee0b73ca0a5f98f5928bd7189ac6b20205555050846edb51a75573e9011f2d7738bb8c58bcd16795805f03a42aff1b854d3981002614b39b90c6f8bef32bc0cdc085466c8f55c7935b96157a624665404468783478d4b121d6b6a026818dc04515d0b98f9a1634977d3521316839253b7a847224c3819802d6b84482988122a7c87d069a13315fbaf56c9047c03641b4b008070bd885f1e3252f16918cf03af8634a8f7291e7b64df4e14feab909c10c7fbed446bdf2557d8a96e2cc17cbeb91515a2ff0b78bf0a21abcea847deb7311e2a782a567a6b1a57bf105a4513de2c378b1c0186909838a01abc000a829a9503d8c12f374c0d48a32c6f539a2ab28ad12bc49507e230c9a3881153113c1ddd446ab513608a567aea199624c98845a3adf90a5a89a3098091f207b46f28a5659f54c75a01347e18a11db75f9247749c03c7ccc6b9ed722da1b118d3c2760216c792b7f2f406397bc9a7f18343812a09e97a0f6c3c3b87179888a6d69b01b9d8c4b8cd215af5b76f7249747aba3537044f7991bc30854eb68c2f6f8b404257cfd6043a3a327d457651f0b600415a977d1cb30904bb853b4dc380ba4802b28f7c479fa7705b3a6cdf8a99ce2604af2670ab6a751236e08321d61d92a27412febca600fe30850f3c86c647746a65b1a9210adf34003a39c16ea69a626c73929567f1b001923b4f0726337f90124b74e500007ee8938cebb15e1f993e1ea0726d04a5e3b52579c625ef79ebf66485083ade6b1bbd0c9a953092fa80755f1471ff7f063a2f0013f429f155609142a685039c0aa540b3e410654803c7f281ce44b9cae5842f7347b29336b5125586d151117f3afe13669bcd7991068bdc68676a7f30708906db24033fc5822b8cbe33012f5e916c80ec7dfb3661e433431ccb796ba70c5a1ee85d63d +result: pass +ciphertext: b102d7ab71da57485f6d6fdc4fc78c8bb17afb69c4f5f266e402c18a619367c1ed5a5b59825162633e1bf5ea82ed986c309361cae4def129f3226230b611ee9c81d19cb1dd83f8c762e3366cbc1ab58222f5889258cbcb1ab9b47886eed1c843b39aeb6ecdb1d1135756ba2d30acfd553ab558bfe6eab9a1596dba1d3265d711f6388a0bfaea56c87bab7e88fdd6ce8111241f7ac973ec4b689b88140f237cba5a2ed5270cccdf73b599e2740e2f05139bab15a6a0083e5edefbde36558a17dd50145d32e7573cdc74751cb15859d103baa9340c4b784d92170d230bb46a2b04a5a20bf6db3bf8b7be88b5a7823fd6c0ed36881c3e630e5dfea590e712ea81f7c242cd09c0f51f3c73772a92e8f95586b5c10abd53cc9a2bb2a90a6d083b7af422e36d0b1c6b97e3eac3036fcc4ee7402f003473bd10592914e007cb0f2921a219a5cb0cb3f756d5d28bf9280d55664c6b5436b3349ab07fc15ace7ec83831b1a54b5bcff901e47dbb49fc68d1deb5f3c254d1e4fa2f6ac962362df8277a274dbcd58ce920961a4b6d15e7edd85e5315bfe6233aab84bc73866f2d5e06744b855ee34667890dc35cd1c8bdaff4b159e4e6e5a3f53c333ef9ce8301512cb5df60928fe7d72a0e8723897c5ca57e6eddc4dca47084b7dc830b88862898f56f14f29ee286c9e65ca856431b16cbfcada1a53ca163e506d1ede9d42ec3c6fedb23de6da3c74a69eafef6bca75fa5bb33974633017f455403c6f09e9474c61e234edd8ce301fd0c53530b54a5007e2ae6e0b8afb7e23d045a974b0191a5640728170b344cdb4aba753dcc5f86292d1b3437cfcec6bf22471f8086098fd4e94ff9e6521e6a326684df5c8204c9405bc7b5ce79c9bece25a9da57e1ad7e076ada0372fab1948c0a9fe326b53c905015bc90873517f436d26761866666109b977b6f1c12aef71ddcfc35075dccc3863566aa39f1f568f7c70572d5b8e45e358be7473630327901407b53520b483efdf37ff810912529334e4a5d44c2cd568c2310c14a1236fcf82a8a1c0eea577d4609483334dcac7aaaa39bbf3491e3ce0f9a975dc15512c028932d9d83e1e6263ded536e2892605516d1b37aff7ea624f1db3588c6e82ae7d591cdaa1ce70b261e61541bff6f9ca6a426277dcd33431c119ed6e36fe8b1c5d04edee4850138fb0d968bff73cc6a8ff4ed1b081403680428b6033e3b01e1a197912666e881e630d3d675c3c8f3d2b3bfe80370dbb2c4a48917796f24eb89b50d0f8ed19be24c44f6c109bac0f8f93f8acd596412566e98104c0b68acc2142aa486249717b427128a0a16efb7ffe7c2cdc06af88fb4213188e610de29a116d792360f9eddd06fe560a948bf87511e5bc76fea7d5ea57d42f7dc1486c6cd79b90a0ab66a1a4f6c3e1ecb0fec8ed361c9f952efa6a09a635d18f1cc5b113e1646a348e34c1e3f3b0472d4a5c50fd1d9830d00a3455a25c73347196111b6999ee332d66a26087f7d3b36ca5c946157039dc06909acba5a9e458f7e487f36c2d41d9fae232208c7f345e8f6909b0de4932ba55614b6611e369de0beb2f9c574336fff0228665698069120edf08cfe00b10f13ebd12ae0c52e4de8b8e62b659fedf834d9d8f14a5d53ceb47f076472981f9a89c208399e583e86b73247a0a44ebd3bf84dbd397d0d66b86619cf5d60d5b9aca7b7f2b5ff84dcb833b757ee0b0a38d7262926f315a315b1eb0419146c242195f5b4e5f25dc8f4f4418b855694f9c1f6ce65c4d48d6d0a1800d3e494437180a1770a4d41f3f5651742336918ef49248762b537c948ecc94fcbe6663a749c0cc67eafe7631c183da90d0cfa69a0c4be70761538722a6d45e4ce53fc31c78e15e5a5bb62f73c802cd8b1d102fb27ae9403fbd2fc7fabf5a59c5054dd699d49fa873aabc070c33045e084ed1b7f863882bd12bc874e9ecb080c00b47a4b322be1793c06672b11238085df22202ac1eed8d139c83ca5cec9887fd9f2f7e7da073d42f4ba5cb9400be47cf30aff2c60f1b38ff13e4e2c95a233a3a6c295767c3e59f86b895850b44eea221acef869ebfed4689cffd6d33f88f62ea125d00c990e505bd984985565093075bd4d5eb0beb8b6a0fa5e378d2a9ea5453dabab99657a74472750574cf1782fa3369eaa34daadb6d986df2e9848b4b4e24350ff61e92b1237fb5714c1b2003219b849c70624a1 +shared_secret: 69c261cbedaf5dd46d3305a59efc0de94b0f31d8f993870b40bf5de2a99abffe + +# Official test vector 63, seed: "d995d38f934b6e1a7ca77c9522e3d037676cc939b0c8bd4b84394b3dc91a791f09d2d97199258c9943da955e7f7b26fc" +entropy: c92aa5fb91c980d9cade9ce99d4c75b2ffa7d6a6ff9bd59def1aa701f2a0992b +public_key = 03a595bc577a703b4201253367762bdc7a8d14e60784e5bf04ac62f5cba8327c781122427a83800c9b342792ad6e93bdca2491720894dde616a9a9674e771439b8704ea57d70e9095e05a03f3155c3007b1ae0467b7c7bcfd67a5dc679c8f6ba53b44c110560359c65ef6425f667b5ebf967497119fc3b0bd0600c93fa269f349bec1397c4b23bd851a0824b80b664070622860aeb98f2b2c9349c8e0cc824f5b0386348a77857c277496cf10046dfd59765dc9d00b013c3002060737e668cb6440aaed4f3220f789826b579359a3338b91f6584b27dfa7324f61859370795568de4cb39c4b1b015fb693f42c09e981c7c5658d1cab448a947f3a0caa999625131c9118258ab7635d78caeb86ac5c100b30a57216f586901d1863e27262ebc2e3ffc09ac4b6ae45c968fa81aac089a04e7393409799e853499888dcdb29690c12a7e512891421f111a2189cabc1d00a2fb9878c0057144bcca25c9a3f1a2c3b92c61261a3557177628a252347355bee55dcec7be730639fac28e0536c0636bbadbe97674d83b6c209442b34e37d9a43d508e849b3c21369149a7270e56646d984effa143c87777083bc54270b146291d8b4cbafc6ab7e72a871469abf3018ecdbc0753b94ba98140e4956c80913efffb22ad687921560055f466b1744e9bc851e12648899b7665a18a71130c1e4a47c26cc8f1a4972512186fb89a740cbebc6553ac3c088b01b21bd9c47cd5578cc58fc4697a0c756e7f860f91086aefb4cd02d184d294acf1f2872191851f585d96d3b98a755bdce648e8d7ab5e8bbbe8ba0b752973fab007e5390bcb6ab750f8aab5c907042ab8f49acdc47271d6b2a2ee148f13518243809fb5651f6da4379225bd864597aa65343b21b8f8753ab2994d981961cea24b7f780643b5674520b7fd11793b1a4ff110aac7516c1861ad54296b917c72e281692797af7a594e50c35d958436816036d13348f81851bc5332f6e1b55aa575af0c0035432b10abc89ca5cf19170d9537c413d1c7674992467323ded94c4c6b694558cd3ed45447bc5fd3979a68427916a9297904b02d48918d914ad9e88c99b5c28a6ac037248be9d3054adcb0f3746acc2c0a6711cbb1401c6d08d07a947d3bc35eb7b477ce19068fcc744772a126f98789d349fb7c58d9c91cb1ec4830ca54e2e44dcd27b45c48ae07e84c045487b2252178075cda577b26704803a94f9b07acc6e815a75696fc927c1cac2c5be290855247a4546288a383c15b05714c1eef845e9bd70ef5d3284d5800df8ab0a6522372893618d6a28a922152b1adc2e93f60813025d2b15667947788b93ddc34f05374c9997a0ab8b72023ce47a50c86ba00c86a37e33b7516437a23d37d6dab5197a88e823a5129d656af31b755a89c4df21b520b3cbda5581200c9695b497ac2b0f582a42ba28b537a7024d30c127907bcc1667547b79ae655b4143723dca5ec494d851b3e3eb763f4809cb045ca69407627cb49aa59099b050c26151b4d89cc55e762c1e358f1679b7f30a8cdc531b80580beb1b8495487d2d0ac3a9a240ac1acc457b53f6aa6a580b79d9cb953240e9bf90e54644253dbc79b2b3028e26ac8641042f7715d97190e64ca4e13624530a882bc53b2c724f68511021641ce277d0ae32d329b9ff554502ce25a294a3829c770e9565512d52f08211b7fa583ca675491533d14813ddbb96ba4f05fd9b95cca052b7cf098000882be1c2ad9865e4b9b0834189f91d5444791a561ec7baae5c82b09893a900920d6bf6df1391cf1a2506acb25d79f6d441a17bc5eb4d133f5059ae52565014939aaf208882631a531582b486bbd72850a0724dd52a225c40fa2a33f312c16a426a3162993cb7370d23c300e2a5d2a70102e9aaee23b715c11860386c4be5080283a4727954f2c5197e6125bc2c28757a63d46c0b322299e5f483edb10caef28c44cdcca5a9bc9505199e7da28286815757a63ff83c7149bc0152a674404b3c2c06949950f7b073f537728514b20c676c53176002a8c7af2865ebcfa57f1226fada60eeae67fa5417ea4b863d82c3871c4269974bb76e3338328c00530122e38c138e42df370cb51830980f9a6b4829af71a7149a28379a251530306d0719d0d6794f89750ce06c27a913832a9595b9a9c1728bbdc4515cf1afe1dcac211a3135eeecae628aac9538ef2fa7dac989ebf18207def +result: pass +ciphertext: fa50afdd558e08fa0991d99c7420f9788265d682145abdf4d579799783c509f63c6bb3bd9fff32fdcd0aa4528f7461154bb30fd2bf34d5af56d3e097e64330db512bd8fa8912cb54e2af9998e625270a63feb2483b0bcce294384e0d213360db0b6f9968c61f23fec7e417795bff16d8ffd89ea6a4f08f9c9eb49f95094b1219c1388efa157a885c12ad226d93d2e1df960b113e43f8c95e478f30d65a59ff9e6dd70fbb5cbbc523c5070557c7d268201c974ff1b28ba585e95b8e6bef88fa0319c99d8d18bc5f1363eb26fa36aa0619ba7a73d023acff3dabb02358e16f271f5d5034b15480b15d8e108bd2ce74b3e6cae83d683fd5ab321f30eba9aa098a28523f2d91defa57ad07d2fe89330b4ba2f95b7823fbf6c920c38f001cbef83d27330a0d646cf8705b3a3b44ccdcf7d16af8b0e227fbb8fee4cae2ca5a69acfb01a5ada1ebff06b58199e4efd713bd915be7cc1216c7510fd6f1400c46e6805b8c812090e47828fdc0565b1a4b1be10101722d788658669998ee3fe6b019c84cb8620ec0678c03e44bd67218312924355e61bb71b7398970cdbb0017da227b68f7c2861f19edc80a8c4f6fd2f6770f3049ad7982ca5ff8920c934d6ba6bfc5114d44517b9d49ae2e21b4545ac386dab5018a04d32e11df835e6d13ba7904fa269049b5b54db5e47b9db426b6b0bbe7a1109c3c968d3d1810c94154e3ba163f3865039e43f74b925ad9e3a847da0bc21d8ddb3e928e5107b68fc0b317a33777315f0ba2b00c202ce78797fd7f95d3712e70bf742c9e8343a6d00f24c922f0179399d16f7cecc79ec8930c8c0226bc057633cbe5829880ea52513d7adb29d330819151c1ad81be030e4e0f48b732efdd315657ca4ddb8018b79ecd5e13bfbd1e1357bc33324cbb95052da6d7570de804646eefb932f39e3b694da67731c96531e9a080ac0ed2cea4dbef51372f4c2b4810cb95e157ceeb06dde752b4786d837af8e1dc2741f0816be444bffd29943c535a15bf38a33375a5ba97636dea4c93883fe772a0c459aee9fd452e115278feccf1b07887143c5c6d5d22a4fda4563b178b795a3d686b2bccc04455fbae584f9d0ab687e6cdc32c849e8b7bd0826d9ad7fa94f95a788c5900e9af7c6d9d36763d76841e186434cab559f8347c6b5ae3a12f995df15be97d8e7dc52c1c0e51677c0aea08ce2cfd8e3b14c970fb1e0e48c139c41aaac31796ae220a19c2e7ce341c2d2ee6555988ca1996834197bee7132221e2864404c662df7e1c942b516c7339ddd143e48899b5b3bba4975d049816978e9fcdf84f76f46482fec4444cb65c97946c8eafbca4ac386fca82879e3ce2d3592bf18357b98335cd411b9bb60a26ccabc081726610d9d30bf03cf95b9976672cc61cf34930acf1725fc4ea57e503c42d2bd4aa110e5a636c34d5a26e2cbb91ec68ccb10bed5f16a685dda63083a786f2ed583873a7983739f19824772e1ef8a95fdd9b30cf4fd92c33abefede7d5c7ab5bc723c800696a6067958b3f33eb785ea33fb7ef1c1c79cb69b1d78d34d29a4f2e938140c306b3061d9d6b342560cae88a0579136f7322e9cfa01c57c7895637afcbe3509c57277a5035790085bfa881a78ee06f34e9d7ab771d1337b4d5804f09caa90f61c1bb0fba34b353592fe1763786db69ac381483b48088c2a29fa7144b81948a9128bd569a35e83871af70dace9bca084e6933c350703ab4be1047f6a583a509a8b6b42279b416fd74564b8143498a639d4ba9e3ab0a7d0ccdfc4066b3986aa18d0cafac9a6bdbd49762e351d7fbf5f75eae5a4f8e9a68d1ee21d1694c3a9011f9baefab8dd4479a0e76ddacf3adee7d9764c0078b0b1d720be9a0462c96046a6096cb00877afb8a360f221d25ed5dc148925be426f2bcc99dcd9a6cee6ff4f5db923d0ebcd312957be9d9d1c3ac7073b15316d46b8490cc131ab6bf7e32109af1f33edc9eeb14a124f9179e34a1e8ccf8805263d57cba6212895a3f89212c3ae2dca1616de55c3978cc0e550a06cb0f257205f99447aca459405e0e5b1575f48d589a90651cec6d9e36bf0374ecc6825947945d11c3c770ed4e950d7ffb789f9630286335276b6187775eb92c8b2b009d98fe4bf744c4b24b6dcc920101f4a4e190ec599535b3e0ae28b7169e2ac190b27ba5823103a61fd403776c0c9f9739454e9b6ec20dc26cef817f1780 +shared_secret: d66f47c870254f7eb7ac771dd6e7bafe94d0dfa62240da301a5cd05f2ad7cd4a + +# Official test vector 64, seed: "5929f02a271725cb40200de32d9d03d8bea53b53ac83186c42c7f565ccb1ca508305d470850cf86e9b2c61a5b8ca1c93" +entropy: 7e8086a01dc5b3bb9eda25bcc45d27f99874841b97237968495800e007696ac5 +public_key = de62c02cbc473601b03f5547f1b4a8078aa079c4cf39c56f88925a9383b9a0f57b58741760c58d2629c5d70074df007e715a3f9344755ba908a4a310de73150a79a9ee3957a730687f4b2e7df025c1d699c254af6642bfab84809ea9a3b35410c7688b296a3da82c6cf6790b48fa3f66f5b651912e7939ab76b0935f49c1e0a25422365974698c9532ad00120bd2ab10a8d1a78ecb392e6892624a3f96b2758a423246d67933eabe6ba2bc019a031431338ab546b3154a80945a9b31bb5f9c4071a4b0ac4b1b85b3a11ae1371db39771259936a27ebec742e7d6282f19c4b6ec1a70085ec6cc23186c8a29f4c3a1d3ade8912e3e238f024cbd30e61b1ff2312c91a2eef9cdab68446bcb64ae505c32f0ca5d02547c3b2343962df8d384bac81d15fa3bd2a116b4d9aba31041428ab688f950809c94404b5c35f303d9852a0f029e609126110b64e310c81d634117e3b3e1994ee2a2799600aa38966e00aa9450f24657a39b4901764c3a267f2018363950256a69d5b0240f368bfb238fc3abae22dc2f3fa6c9e7f055a8712cec654adc039c49aa1d303158e05b0ee4f1ccc0e07cae74047b603671b9704e70646cdc0b1d1423bf3c4fca6612360269a26b9731524a2117a2b686131708470ab6c1ecec857465cfdcaa5b1506abdcb6a5e379bb4e358462f802c2a81b26d0091a9a281a891c06737fda60afd65ab7c7bc4d97667220ea69896a46f20200b0333546713d9e685d8230487bc39b68b170105231839417fa92aca1cc38246b3d0da638aa28c907c823a1fc779b7626a1146645db0582e23115c64ca6468bc21a480385b27fcc28c0e6b8430a270c5061012a619da7138ca97da7832807aa4f338a3983170b62145f36a35241d21c13c61a1044b5bbd2232f5c16f106ad476818f83920f650a87dd80c3213680cc1572b0625391a92dd423e53dcc0ef58ca376b18a46b8ba4506878f38c88d814bba280575235b23107bae8c1f443a5e9c1058c904a09366b50e7b531451f8416342267352fcc7fb21c05bad69bac0967778c0c2d48a60980ab5b7901b84b54f1a53b6bb09b37d48dea04838193657cc7b47b436d4dd36cf9bb4bcc552700f98a88a850dc009b00bc41c9f552e5b346416024065634f4d768cf49bba831758af42e408668aa712f93f43658c48b80a72bfecc0258ac6fb10c51ba665e8f25537116ae53336a8f3a0d2101b705642c5891b4500ac61d023398b35a21e37ec6c9821eb46c348c594590941fa0cb5d88ad32c3165cbc3569e15960dab8f53c16d02320b7c8394971c14c5633ac5023d572608c60a726d50b22dc3696e7c352fa6faa0c8e73127ece085562bb8a86ab6628149292a750588aa90d268f5fa618b559a4f8468218985db9f4cdc1f65b4644cf585a1a8057431985058476cfda6ca0dedb2fd77917fda88d799709c169c01e90c5528a9ffa144636334d8cb3a1cb27b81df55c9205aa1cb43f04ec29beb19539992846db361de4bea0a7b045749609571639933e6c105221782033885385c5036153ab3ee68156f0abcebcc67c9163fd09cf2a50910c8a5e50ebbaecc030ff38b041c3513da677f78b253d7c5d9bec993f85aab56a21502b1ee66922ce9995eb83376ed309b1f66c9e9b46436399364496a51851d48ca06e342fd40a6c64748d6db5a9bf18893d65a9fc3b227401c9410888287100482438e604cbac435abe040598f5cb7f07aecc23b6b38a95f9cc8ebbcb4f5cfb17a8443f89ea8eb592456da09fe9a36bb31a98e9e5372d4bc83f9a7509da4ad87036581b27844b79a9753bad9a476ef64661ca2a5e49797fe161159aca36f017d947b66d87833383c9eb593313054e00867a81e0aa6b1a8493a082305a387f8c50024a9f682c69ca0aa180eb8dcdbaac44f4a3fa830bb056352095c2b8b65eef62775a470638c252f40c8137d05cad7c9508c3c34a6b29e6c6431b34882a3526ced7143da2bb9733c2ef816e28d3a1372b418ca595ba593b18789b7c6a411e27acec3b4246e8659a2330c628436d21722536858548a280588cadab316411b5edebb50ddaae15c32ecd74af476b3d4d834c1047376001cecac303f5c1bf7afc7b63e8372c97a8fb68837064294527799a8874684a81f6145ad7ebac7a5cbccb696472ca98fd95b9ba4db7d8729965aeb56b8ee101d0b32b6b80a772fa80e70598b17e84fa +result: pass +ciphertext: d2f9087631c7583df5f541588ac0a0696e83c45765f3eca327740dbde9197ba2ca9d072aa0089db2f79746b0535fc8a77bcae1500e3fedfc3d911d97c8ec22fbc1f61a5bd6305d736d68061072982438c4f673ea82023e56b42e1385ebe4e85d5296e28ae0352d5546cecc6f29cf4e25368a6a794f6b0b33fb1c568dab46ca7a1353228ab01184be7c0fc603f5460fc1cec63c240dc96ed5e346ca6ad214b00c9e0679619ac924254f5e75c8f96a8f8d6228d3910a662c24003960011e93360c27179f826393cea762a09549950cdba847ab8f676530d832dc16d4e479c4207ad6f9de68a0d4decf15d46d98da375b5730a6a8322a1126b6ecd8d42772b76318708a9366b8da5c7eee8fa928ba2e9959a1889f4eb63cc5b4c1dbc06c728ee16e93b8276ba862e5ec1b8cae91582bb1c90893e96871689edd35c1cb12ae33c55a69d4c5e5bb6d553980e0ed3c131d2d87b52cc3fd176b92425bf6a90fe5f5cb88fe69bf5dcf827bfc20b3c6a4145d400e4ea80e9b519df58fc3eeb0e9579d147505c5eaeca51f0894f5f1050c07d53bb715671799c13486b8ae5d26216306a974b4efd27d8f7b534dfe1e25831cf74693f7469c64d09f63432a1b369a1b122b1f4c0020b30c1bc781f5824aa91a4d70db70b8f121e3615faaeb7ace2b53de58a56fb44cc47e5b70172d0849957f5a1ba90aba44504249a5f8fbd9af379f0cd256a8dbd728131cb2b09274bfa9d7c67275fc502c531a02879eb7715b00f2bb794c2cb357917ab53f6e6a85648056904641ade5a0f88c2fd00f4933c34e9edaf34050f97863c36466741a5ca0dd7d9425278a1079bc9351cc6c45a1e80d3953fa60c502da6533188fe91057feb940fc926feabeefce97441becde7782f365610e1565b6a5660d22d34298df8bb679442bb821941743ad5e8390789f3c262c6f90b4685a0b7381762a9aa21142e7fe80735832918330967fa9949e44c30eb06eaa729a108116f533d72c3d20eac2f1e8fcf5c39e86d7b453894ef01681f0b46aff3ebad2927d3af51476543afde23040abbfc167cd5a9c1bcd980f2d2c8fb09bb0b81f4c778a6fb4e114c874f6bf0a115ae64cdf82bd3aaaac90b004c407aae67371ac62d9235fefb47de6488627e3c997fa0b5b76289d0166cfc4308a4b9bfc674ecf643ebaf66c2932a792a360ecf2bd4fbf4c675daa7df02eeb54e2a2f0a5979c33474832d509c94895c61a93873c4e699a130b1fe3dcce9603d56755b501440167b09b6acb9e115ef4133963cd702f9097f6ff44887bb0e230f80e97c41d1028f36e6344c7c1e4a19792b9c8cf838bbefd4fbca05e1edce7eb9bc9188d89d784305b3ef71a3e097a7ca675a775656fbe3f2219941a0a70a777260645fc2198536b585d8ab161084f78fcfe04dae0e1816f0bad71581eee3d663536680b1aadb31a6711832a7d3547d97e7e1fc9bdea77acb15d7d82bacff5769da9e7ab730c8db6db6a9b51e2c419756159ba73b6a4ccaa8cab4f86e483237f8c6ba850155d5e0894f9f3105bd11a33ba4c07338bb03e67d59dfac122dceedb28d349aa26c61cf95ed6ff2f7056b5af9947f563fd016d046c9c2e9497f665702643d42f5a277e3e4b8f905db9ed6caada50941473e3caa26f70a9b68284c09159380e02b64d7a4da9070ea4b91514041a18036e7284407456bbd8a5718a9125828183dcc65fb0807d2a53eff3e8b010ddaf62e0496b23fc21ca0996a0a625839793774a3c5e0597e00fb4cfc6fbca08d94e809969710d091a45156c1b883935c94b1c8c514fb8fbf6d0dbc00fc4038d05f92362e5ce0080353c61b65f201f079ab708d86feb9f6e25e0289abcf52ede8e241daacd90a6669c17d1f1e257569a4832cfdb2917a64619e95a8e6682e83ce07b01dbe1e261ba31115e05b2405809e123215ea11c067f059c10851cdb00fbe8ae6c9508ea8dd9df624eba5eff018880dcef0171ddaf375724028fcb2b92a8aa1d6418162fe994d1b7b2bfadb2c9d72529ef51711745fdd43da7675ee19ac6b6b2833c69fbb7dc00c4572bde53014877cb5aed967a7f9477417a396f77302330ef0423937e5d4893d06662e2237e5952911627aacac06f37eb7d38239d2623235efb3df0a1d630de19afa599b66f41db7381acae5664deb979604274253b7ee8fd840e2a324e3db89a711ebdb5799c4c31f45482c5a7 +shared_secret: 166b559e963a2f4c7236e90818442e9d9b2ca49f91d96d54f239b9682d00b5ce + +# Official test vector 65, seed: "905074033d7b75deb2d06a2f29144eb377b452534c5710632989f02d45312d156557e96d4486020826db200153bc4a8b" +entropy: bb321ef14d44d8698df879fd52450567657f52a2df8d111185dcd7d4f30a72d4 +public_key = d0c53790651f609447f0b18434e5b31f2b2a3d1233205c11e5841daccc2017203be9c26db2ea7de30a6671f79c1c424052a784e727c36a3b9dd1d71ba80a542dd42b17c85eebd81406dc394ec556acb00932fa9a8ae610646a973de42f9fe29c92b35c04884be2a5bd3f68b2083945f8ec525d651877d924482b024847938eaac5690cb33f0a878927bdb4a84ad627092f046a2968437bf9a675d91e25e89a3f246b38461f002c3d78206539968d9b7a83745869ea8accb72ab1dab78ff0183c2ffa338c819dcfc1178ad8b928c68abc98209819ad705a3fc264bde3047fd2065c3e1806a9318d75a39c6e4541dfb86433bbaabd12762f521c842a2381dc78fb312b1a6a318c5201bed68ae518be985746b863ccec279836d6810178c54902619301467bc986a735a9e93678b1f433bcb7af36da821dec7546a4957e413d30a4b1d75ba216da71af7a7b17a932c224bfda459681893ec103a4b56c10805a24543741ed0b1f5bf84daa018f94c07434758d32d80a3d8c6b54774da822451b12aa086782f9c0622c2b8ac9776639084a19a509124b5de6d77a83bb6e123b8eb1019a2b203f87896f23018568da081df72e460a1d8a2815794966aac55fa07cb7007ac3743a0f2ed5b6f377286a7c2aa4b9655237b3f1635dc25527357bc4714c3a47285c9ae3a5a84886c7302d22ba2d3c15580be7b1627c81fa1b0942e85a3a075845e47dc0674f4ec2c1ed9ca031ac1cd934a01c022d26b6ce5c038fbd541dcd4ab4a9bc17c06842d7645935b57587559c11b99af337bc629a45ec37a3a20b1fe905510971b6e0926126e815625c5d79f677ebfc69b1489809172f34e075c29a6e9fb4b536f892b16c7aa97623168823d5b1afb439cd2603c9758904b942971d769826b169936ac108c6caedb98982098d5176c71cbcb11b22b96143433f6c083bf83f6005c5c8b93562e081c940903ae662a8f17fd0882fcb399161d2a2bd2b8d1af0731b0303e3c9beec81c5473384b7a04c1c841f60e27eca0977eab4c750930a2bcb3983daa99cd4c2e2414ab8f77857432036c1a9a65c493afc62ef80758830417375c697a2a7fd0782ac011014733e51f088bf32b7135b5db727b147936740e320c603365e280cbab502b64412abdc4d25fb9a96ccc96f166445f6a6c3a894a6c10ac7bc074fe7b5a1d2964ef0531e7bc445e0a402f45b0f29809a84795848812a1b935d220670c2cd0e3332abc68f57b98f24cb9e68f8b1663b4c793ac4212177f11c594671550e44794f84705fa4835d918b317a1d5aa39e65026d3888aaf40cc247023b74cc4e00fb1c011c6a266560949c626e08263891608713c12e75a229c5bc114bada81395b00a5b6e695096b2790e85c954028c5b288758c9ad634a3ae11b069790bff9428b425ab70c5c46c2150346235814e7af8576af3071c6e6d4b56b61412d7a5cabe21cdbd0aa69e53d4d223d72e4c77afb927958245cd57967428d9f6c81cc604fadb43dd56c8148664942e2085395b17a1c53646287fa14a9bb208aedb1a7e6f73828f0aaa5918a69c211bd765cc0f93615a57609b5aa91c502b851c4a9b24335d282348ba33a802170524ee3351b6c780a3a9b46cf472fbab34be9f508c32a64bc37b6e6b30f37a7a9f200c34811c2b8553ec3ec091091bb08ab02ca7680867244fd3c991508902e84bb5e177f7251057c38784c0905cbe7041f12bdb77c07842228ab569fb69700f9b3a058dc5791b600dc48855fb1cb938b2e2599c1f3411628b64094ac20eb6c50f5f5cfdfcc10471346de9429dd29953e7b139e2a46f04127d7225fd46723dfe19522a4a76389bfe6414450b885cb211ae680b59ef46177d50b0b3306820a9d57293ae6753e65097f8de97c898c465b07b6e89459f446a59c04145f2c30dee57368e0479468ae96bb2e8b0332bb7535104498ffabb2abd65a6b8a2358d467eb8376a795aab40108ed9b0967a710083acb476c28a01b46e68a3d64b12dbb49146df48f31e1531cfc3295e4cda083af7b3a17617286f60b5ca9d21858508f8f009878916473c85360e8cf6ae8360c80aad7a10f6cb7a707063ea9b2ac097155e6961388f87327d084baea61d5ba26e1d5bd9cc25ffdd46a24d81c40532697b4cc8f58643d41afb6d29b7c857837a1e385a9106e3bd9911c697c8709312db4ee1d9b023e39fb4a92d9d95ff015 +result: pass +ciphertext: 8e1b874c5239db036b813ba1154ca84f8219a8a4bb785dc48912a04e5d60175821c3f7609567bd3a11ae75bf88025cf960768bec53b0350531fdce65e204065e23b58cd995efa449db59eae436e84b4e7cc80dc78cd4ef12bae5c5522c7e7e8a977270b9868acdf57df9f67128e5f26179e11451a81c45778fccbdca9e5894cace05e2e512b07270e97dc7258fdbf8b0f2d532683cf0578bf0821e5c96654d9b166c4aeff1899cac0d9a898cabfcd572892b151b48da4cea71222fbae06269d2ef9e564670ac80965b71e7263a0a14ce5a1411e29c043668bdb93af3b9d4c2f86a917118ce0b147c5c99562463cf9d907623b3b5c09bab327879c8e17bdc16f6a559aa855c5dc90adedb3ad4b642d8a84250ffb2a70a861c6ce71b24f8c6ec9199c060531e365f6bded0dce14f5a42a572f3b49a9f9696ac3da5a842640edfcef5cbccc85b3563107957183e1004443de9e416500e4254e3ca7ded5535c437b098c34f3e10a568b12f30f8d0ade71b9e2e666393e61fe757da50b9c3d2a7682ef24cd9aa296e1e92267d9d1fd686b11507b984f4f05d218d98bdd7bbf67ccd84bb4def89865a3cad879785c449c517e29699b0f3d09737558dd4ed27a41d065f88b7a07569d28616664bc6923ff77337ad3107efef86ec513b991fb5d9a58044bff3412cba0723a83fb30c465f9cf4a4c733be247281cc56e8ed00ef84cae631b2bbcf647227002cf7c7a400d465d467188c3402d7b9afb67c7fa7b2a1ecae21ec56124392be4f33df423bc6a29d1bb8641f230e5078d5642be440923fc761bdf2835fa99f505f2d9f3ddd90187ff278c2f55792c5ac147785a5420a72fe9b55bd7a69ebe877954807abe351f950de6b5766a516e5cdc0668513440c695b3e0a0c9ce68ec0e036e3e7efcf65c8af343c03802ed7b84d940b796b79c08f8fdf86cb956fd9ad3f6336a39f814d7cd68971074a9045373462f1eb03c216d5431584a7b77e67cf73f30d4fcd66ff55141859fbb48be45de1400cc66505411f91faf600999dbcb50937486c0e71722d8aa11d1146cf2ed009c1888da11e14787ecb008aeb71e5c2827135c930788bd964082c147d39da28d15382aa86763db13c0d48257d8a9253dca4d1a1ceaf5cddafd9ca74653f833ad22663a5b158fa142bde1980f14800714ef5222d4d97542cbc0750bcd24d26dcebd66edd7daf309dff500cd2dc924f651d5deb9142e81434ac9a2ce80c8155d1975fc5dd2a1d9bde9e40a85bc77942b916d4cab359579cecbfe32cbcc639cb8f6840405a4e2003a6587a229811556ea15982d193d5b84777517e757acce84f30f957c019533da3eed6f51fc3dd69ceff6bab3ecf918dd29eb0f741284cc4d4a17bd111d6e2f964360e6cfe86a95c58e0d3b3ee14b11d15d9f1354c3f364430913cec29728ee2b8cf391d012a8a48064731e51ad86399788deea1138de74476fe3a8da432aa9ff654ab7e71a9b33fb08a9f7e8d703ea3e831f575c13bb0cc592bd6e387f1c960ab82b04b29f03b94f0daf0b56477517d47aecd0d08efe6e61f8823b0621cb83a578bdb6a9976593bc825991e887a59caea6003b11fe23ac1e540d2a67262807e65422fa8f5b47e5c8b452ef29ccd60ae85448daeb744b337bc20ee87511312c2cf4aaa76f0080e166ac4d0cb02f3456777166ff968efadf6fe78dcbd93c8ba8aea5bc0f14f65262acf72052fe8d23933e4847a9eae488ba2049478b09ed9dcbbfc9ede10454744b5ee95b6381a30d838bb9060a67636b7cb75c7394e02b1e58ea3736443ad43dd540f52212f686544481504224d8d50b1e009c5ecee23882c8090fa0c7f0ae1b9f507dfa76329f788b0080f6e985c7e02886487b9379d1229b0a6aa23304a056cb9f893cd89addd87bf0928f42d4ebbb2d90e82f17d88cb1ffd34c0e90d6126cd8a8b29e2e6454c212034342b204b6ed5d462c3402fcf96c3ab79d4db0fca0ca1adf6ee0407c701105ad9884f178b979fc55ea74cc0a176a7be6f1f90f675c4f687b44b2d6923a6f8e1de0f5e6f76c4516fc1ccedb1c4c9bc51c72979270cb972385191c83e8278a4c8279a36c528a91446d9fdb06fc26ee7023beae01adb417a11176839e74e6766745c2cb8cd0b74e8cf020cce2648949e729626c129bb204789542f74bd1defe1984d43c9b046604d223b4a10511248daa39bfb88028b +shared_secret: c71845a26ce9635a0a37462bcae6dee1b2f6901e5986bbaef9660cdd5875243f + +# Official test vector 66, seed: "a3e2e511afa7bb560446bdadf67d2ee2e16ffc7baeae7efb8c5455068bbd4e91bf9be9d98b280072faba7712c75b26d4" +entropy: 210a423dadd899b810f011794b79aa7f860823ac1962370e791287d3a1afa384 +public_key = 13665dbe0a4aa46bcc40862f1e3621f2596ba293466f7499d9954eb6a6251483b350072ce7a4910f008166e62476e383f0151fe706c23999b71dd2471af759b99239ec05996a94b7a3943e37f10dbffa1ba205b2ed836aef025221ca53ac612d41339770d80b03f0220fd1580b786353c9bf15909242494253684c8e2b5a28216501e1b4f1820d6312cac1bc02c122bc0ed71350a05457f4c40a29584e20b70a8739f1e733483b7e7f8ab62b664c9672229980536d747f3199a064ccbd66e7be173641808a93231aca8a7b54dbd0c593ba85df11c54bc2894c6a797bc0557df513734c74f3641a6d2c98fcd8c1ed356c2e199c28088ef495a54fc1019b736f2fb8895eea391c67c895041f97805bfd2354ba1c3dd8e98467d302366a616d280bdb4747fb5a000bc5781bd8c1cf2b563db206e6e512248319d2122f5ee77802d88466a61f5006239c5001975b00dd634377705274629f16a92f13b37049698b12c39bb1c3579d693970736fd72c8d8654943e5868c53a51324abdc57b330ed30145e92ab82c91d975244288833ff3a2d9d92aa1f53d99b11d191c99e06434196318e04087d9aabd03d7ae1cd2887cb2197ec4b09f7699861193d8eb77da9c9e33749e4a0c5bab3bb64adc4436b7a6d84b9463c4887e4642d490052093399b2cb52a73b5904920a601c327e2937ac439fcf3b78ee830b4ecb795376dd263a3cec91c6a6b60e48001a0f739e217b5b3c4ab0a676131514bb62c9fa1801bc80b6c8c7ac70110b4860cbf221543f2aa61e0683bee500f98ba4fa93c2865a28ba4820aecc3a6c7b56081869c701b1bf741152c0ca0a753a211c3562ca26a15395a630a4a92729ed9a3092d23bea5433447139ac0518f75d11af6113b8368cc72891a5de08dd7689b2592256a8ccfa524a2344921a0e887627bcf7965a1875c1ea5c255c36978da7c4f184a1cbaf24a2df142ef80c07750b87269419721c48d8014f4ec8b4ee23d95ab1ed9f8b5ee9943669007d48ac1657454afd466e8765c877a54466171b649188a7c205bc3073791b832b6a752625809919db9258ef1b7a15d2c54c6c02f57fa65751438f4186a8b576d7c561d649a7a60d1928e013df7d69f4dd7035485107a7062bf3ca84a93a5a0197ea00b7522dc769ed45596bc5e712954e1eb37ffd69d63ea2ce5e33df8088545e3a738b864bb61b916d29e45ebb39d8a7a6fb3cb3901b9880ab0547107c9073b19258e4e290156f54ae3d44d19d8abc5fb334ad757c7e24986a26a31d458edd45c69b9b8d87b0622166e66c76afc49a23e1c1abbf357b7328781aa9a054b24aa2645d691639f141981c30a7203623d550c31e2bd4bb95b2e7b518b44512dfa6a5387afd6c7ce162a434a6b9ed937cd79222134310a2420934b357e72e009ea8413a9148698240aef2732836b5659566d21111331fa9bb0b762c948247cba816e313109270eebe826ed722322f9841f33a935209e0df273f4e2237a59b27cf85fb3773998a295a37714ba074d1093b0f096b2eb5133bb273e50e17de75b45300c0c862354344336fd028a4a631da22b285d4435082667ffc21fa01b79625c019e71cd0ad86032fbaa79326630692b9d02be55315543d83c0b84297945406c339699b1093e4b188511aec19b3c9069bdb8799a2e077af4308c401982e96819c7f17f6bca98054688c30a75dacb90ad342acaa9ba227a7f6784100428cda9d6890396cc19cb90a81153bed281cbcb1036113250206b59208d8c75839b76ab8425211961967396c696f05d913598259334c742915dd183f32c5a4e957013868634459f038340aa7761ecb628fbbb435ba642e21c538b907d8710413ac10d7f0a7965b03cb8c36d39336543193d0d768bceb00af79069e7c85b09114e77e6063aca18f27376beb9ac4a0b976ce745fa7972e9fa74d0055ef490cf40e11e6cd785510bc4bc1231d88abbc9b22fc1e2577608580e26635070702fea437f8a13f6fb37343b488c1c0b2560027bda77fc6a97222319b66a86528061f21019aa73674519420bfa26ac5616efd714cd46b7b7751922175a1dcb22831609eb40b4d16107c8438f33e203cdbb85be910b78a99d766499d4541b91567fd8c7a85d983080b91c9254ce3c2a9feddb8c8ba948f0986a90d02681341fac1cd19451956432b83b79d115d32a3d4f86f902f2f6b0c95ad7f4bd49 +result: pass +ciphertext: 2c5bdd1856863d324e1ae5352968c7d4d39beb7f06ce366afa1a831eeafeec2bcb99cdaf79355b2eb34dfcbac2705f30a84ceec1c23d2c42418c888c7a76aecf36c2c924576a87fde0c4ee2754e39dd6813abcc06f24790fc34a9b80a6fcf712886f5600e0444e675b8787a9ac8b0871e00d2cdbdc031b95dffc25c3537b5a3718ffc8ee03944e46b30dd986ea6207eafab87fb4bd9890a230b26a777f62bd7bef4264c52ba5a38cbd7bd795ed352777aca856a195784f9d433ffa2549383bd60468a604c069370031f787b743e087bf0c544a1ce2be61f9d19a5f780c9c9d135ca083e6b315c693e214e5408685bcb24a17886751d1e0d5233df90d1cadb41165473b2b9e2778fd88ada34b0ea9ffb1c623090c221da8063569d8c2943a0938598486c6ae9d4e4c7cc2b0a505ff8e3a1fe057dd34419de75381cdb15d4e0ac372c92b2434b6970e5501792e632af78bcd3853a380719b7497f669f5bbc03aa2b04c624abd6f881630bd765283ebcf64d80e1500767d3d28666b407d41628c5aa47649705cd5672eac55fde509601ac6194edbac2a0a7519d01407c435391cd1518f11839a908f6276cd9252a6eb401c61cc1c2c3105736723d47390bdb74847aacb3bf7275c1c4a2383eae54d0bd38dbedba95a3dd32c1023129161164aa29049d3d898448f1bc6a64895e01271924e9d57dc804ba8ff7162f0f55b4a6f9a71fbac28f1b5cf5e269a3ae8dee58e7af29f4105a862db54325dca76509682f8ada8a427a902cb9c98f8a0fb6859142bba23007e9be5ec038b4bdca79bfdc0917b35506235348b7b1018f90e2ad5d5b3530ec9980d059b4dfa136f3dbfce5e3eda2caf6124c5db8f59dd2b505fcbf9b4a5037894a2461145468b52e7fbdeff9b1701ce67a14dec2d9df763f56be36e5d8ab4c5c4f2b37ec7fc8c7923f30799b7a4f472b1f7f8be36c312c4619196407eb2aa526d07a8871e37cf8022f54109e3cf49ed1a8ba013f16998f5823732c28cef54518ccc758c2fb3798ecf5ec0d1ea918588b6a0002f1bc8514e4b71bca70863226978716a0a5c79ade76a939b998f9582312dfc840f226fab3759f2bfa76819205149a6fd938df2cc2da48d44136e69885882f131cebb748307c837d3b24e5707d464403de00d890868a413fcc737b30d96d4a01c51e8494434ad0f4df1757fa07c4e044f3f6170db50c302cfe8664e400d59deaaa2100167009b8f55c0bf1b447bcce8a470375cd54d2a88f103a4558d4ff4dc5be27483d2425eed2fd223529187029846b0426224b895a9dd34197205b8e5be922cedd0102b03b0ae5ce282db67bc6a9c643a27d4790f9ff1ed5cac1380504bf356d08369fa115a49af41ae5425ca9d60da1ea123ca3d86805e539657a49e001ae17b7cc89ca66c71406d46c9318f4fad897f241629a81b7ca44139fd59f187824f98265f227ebb3b40e9673659e56c35a56a298ed40a68e10f5aa94599d2375b47007df883cb56a47610cceb5c99b1f97b1066c6bcfe50899c70bb8f06a030e85c42db7e18a743a2ba87e2b0f81355838e48d604ad884b469463cc4b02cc75a79677978b3e665d03d2a38cbf9f907a0d1f3674b195f46f792a9667b62a0564a6385b962f97ff0f8ecb5c38158bf68c410b00277e07671229a27e81613eb88c60f1540e615f15c2e7e14d134ec83b6d9a8e1f45d190f8dde5bf2c2681d186df1f24dd27b5019c63b2c05e4797a52d792d9ddb2bff9e4991082dccb007a269c64eecba2043c621965668266d0f1f366ce4a8a1c2315c470a5c638f3b45553bc74582e4c1036be0f1db44db4a1fcda54aa4fb8388ce2b59c9bf90abbfd76706d50a354c2ef55403ae1039e79a6298e5d542cff9aab37132fa5f8b60f5376cb976aa58f4962ad445bec45a0ffd828292eb9e92b15d47b650628beb48ceb6777807c0212ca943b6177bb42db90de28dc20d76031d5e69caf18bce7046c562b522eff42ebaefec52d139da4086ea9c8612ca1562d7fc15bfb42b62cbaa507127f0e780a3ceadacd74b2e5f23e96751e8a78539e88ecc7058ff72cd4f4670a8297877d91c8a34fde5ece933c2e5bfb002f6b7edcfe1edae249062a444247d2d24abe422277631a36666b53e8cd3446cf1388297fa61aaf0f9cc86ace67c86e47d1021b965e393b54282eda8eeee5f592b53e39fcb04e1f1fb5910f92f3046 +shared_secret: 66624ae1204f311caaaa567dedcbf695f48afa8c869b468142d05da1dccb1d66 + +# Official test vector 67, seed: "074ab1a37ba5a0403d8f68d26fb787bc2c90f5ef88f2a6d286c3e6b168abd85d393d8225618608b8eeb301d26af53bc0" +entropy: bc856afe24213e3d14c3d6f9b89223bbcfb2c890722d770fa3492c1e46d1c302 +public_key = 869a9e3773a7c7942e279471a233a05d77899c2a18f35ac98a3243fa6767f076976529b75b75b070a341dfc95bb85c4bfa1394081141fe1b1b31365e3c2302c8a0296b9769de04024da48c2d7a3e5b29ae58659384fbcb4ba2ace58c4ceca5baa5131bdd465797664276aa44e8331e2f1328aa6910f68a6a73210e575ccbbdc689199559f094bb62380f436a925a7305fdeba6c53a9193069873e724cb1b67fb8820e75c27d175bd5f5b5db020c91eda2439383b579c14da0173e1704a318a03de6691ecbc600097b41a7a9a429ca1a4d8a34dfc6c85e034e8a17629181fe7c993ab018d135a73861405186763b0f70c80d09706c9af971313e47bb917761a0e3a39f7b96702c288254675f6a07771768f3939b7bec979cbbb8bca011124f08347b7bc7c70833197b192fb26589098e48834e8fc8551a1c1fc52a1701323d98c4bbe7779b867b813a5a2a5040d8e8845d4a2b03efbcdbbb3083831b1ffaaa9e21c7a3ad77053793b1f7b7475b021e2c1ae25f194856b1594228e938a29b832930d5bad3667c854366f83b48cd3501768f086b68007ead71b2f046f630196b8237967c940d4727d388800dfebb3b152cf57b33068803c1d55c59fba14e31c323e820265c8826ec3b6018c8f60445a11268da9b44f8dcc512b860212f408d3baac60cc6ca42211d2ca3a41271f745bc46fa70a9a8a3999ca83e8635e7a4843ea3b861194bf00909e4250ad1ddb3006f86daad2b8fa720d969a7d87dc97ae214ab3769eac0261076092250133726265eb7987bd4bc01ec004e71bb8f7b06ab339ac9c0849fcb23c4bf35b11955c52d30fa0eb56dc7cbfac95704e51969ea45ab01c10e59c691dc3908c083263c3565766a34b216f55f8284f219dbc158cff247e2296c86ba69c922161ed753fdc1471834270095a85a5fabb1db91fe203113139526961bb40b41e8f913a36461ece86b37fb809779005c4312727f68923187203d001a378c0073a240190a144962bfaa89b1c384083178a1b44461926a9ed135abae505c93177f263996de9780fc573619b63f741091ed57657404644194a25b6cd1e5aab45e9021d9a8839546a9913752621bd79730685397d93ec49d86910c46a28142928a054599ba18cc3964cc4db8bb7a87543e8a53fa23a95bb5b6713478f4b0b5ca6248018a729469a3794a8ed04a315f3783e667c0cd2ac80c68a40c35d64c90e5e8a3135ca15cfea69d4a1a2e9b562dac51409c6485e026001eb1196a487606404b6519974b386abfc9cf4a0305aab4a627b6c22a994dfe46035447f0cc09d1bac0397a68fd647b0b13630d1439e63fc8fca2b01cbe66bfdb4315230b06a9797b34a57a5db208061195813073c7a10ac95b8755aa79b2033bf90386115066f177ea1421ab0267672b91830a26c20b4a8ab9011668cc46b49a2d824067102c95dc842b4f423feabbd774b4a4be351bcd8cf2c486ca70a5eb502ab5ffb8d77c2bf00fb7887fb960c089210d673679a0c71428b5ae348ff293602833b6927add5b18f22acc4ce01517c65c848680d59931175954ace9689fb6881ce17073e113cbcd53547bacb3946067a1a46cf6b4969065c98c17304d53ab5804501711c153a1b13d7cb442221ee311466469ba1225cbb312708c7b5e0055e3b476264b2244fe9590a557f088c9d4fb47a3d598a998a1b5f821d19909220a229ff020bc11143cdfaaa90e00b71d6c8b7622f24584508ab4d036792135b750eb9ae091b4baa96a27dfb1aeaf605122060e5268bc4e9c08d1bbcd451a22e44a2d6201c6de52baf940f14956aac311b5c3782e64377c645b35d210e1ae043ad6142bf6c05aab07d3915500b67989709b7477432b947239a9c7abbe747b2238ade292448836b87938e804a4029f24182941cae500d85aa7ab9556ca98c7808d90558e771d8709446bb1069541dec34b69834c857215822f773871c4401da04c70503cee82491b07e8597480b6bae6245084a4b92f9b015a158295f237a6376118868486d9c1a8389baed937b392ab840d4bf67e31df2c073a4a8c691896b6d6b623b95670cf404dd499773a54210975d1ea72667439e0fd8c112f33470789f2899a64217400e4b51fc501362ec98a45620ff6ba180a211ce5c154bb62a1904cc13a64fb6f445b48ef88ccad56919a0deed94a2ab2d4b6442a71c288753f1dc41ef5389e39497 +result: pass +ciphertext: 80b2121c5ffe5e10fbe5244fb9d79f6c1a5cc82a850a9a347e439f9e8d95b827f59c74bd2e92338b7edb992e8e1bae6872f51b0fda5e14cfcae8e789428753e97f4ade4213b9f1d88d932bd829ac8fc47952f455ec61a75f7c42334eb17bfe2e1991b3a97e3da5f3756f538e36845d7da303d1c41254c1ee9655d0eeb9f93036fa50495bb1dba1ffd7f879c095ca6c62d9a7e28a19538c1fdda0abee14156a298d8473dfd64d90813e4e760d1dccd97475719c15a973aec286a46f9c4176cf816d1495a031bd971ac9ab58591e6f1039c73835fb2cc82ea9f48f8aaac3e5efd3062d3dd1a349eaba7b792d1ae4ffe41c11a2dda1b1e66d40c38e4d960b963ec220b16b7c3e2cda012ebf1016f616c78b64098592e061b533c09e4437f41e2c9800641cb74704ba141bf656da410cb886e9a4344e3e0d7c442bc810322762d052a818677ee4003e0780fbbefb32b9d791f782485bbe0b25d0cdcdade1ca5f046f5778402fe555575d3ca829712e1d264db9ba1986460043e654ff6683a1f59676922c008dfe4903408f80f6e3604f50716f83b9b7ccd711d03a0167690eb705f8f79ea3a56ebbb0099c71e475599f490beef33da232f35ea5e7509c25c76040637d6a50110e8ece957371c4600d382372b89db1427c97d8af57c5ab9b1f2ddfd1ce7c6fdef2083996da61e00676a79cd0db2a6436939c33086f752bcb0b343551f6a29c258053b7e17ce1b09f54ec15cac7333dfda71e9b4fbcf740107e76ebd8d5207da82fa7b41d8bdc2d9a284dfb8e4c2032e7913d5703743c436535f3bd0df97f961587dce17a2403bb6bc3bac6a97c45a0e32573c81e919e0117457af4d693eaf239f0958cd9a2d44640ebe107ca0f34a6eb7703153c07b5568c143d211e9d31f1665fecae3c51269e472160a89c48af0a74123a9f743c1c0bc964bb3787646d307b1508c1cc31eb2ba4f6271c5522e81cc3442315945a94f89ed18aa5c3bbe2c552d55429cae27b946664a33d35085dcadecb1484a3e25e5bb409c8a238cd634bb03c80f66c7f539eb41513e06d2c7da5418d9ead72477117e7ef732734d6f90424a5d98a444ae95d3b09237b022a25d09b9de4c47a9a1b1ec5474a19a9e4f53a9f0c330d71651f8071f39b0e806a1dc1646ce155a0b4708076238f9e269802f707f0f5071b1a3f97bd63c9c89501612960a16fb6a2b74c183ad073c6bd59123e72608eafb1423fad10df3d3c2108de8f38cbd283c220288e34019bc96330745070a65410c523e5423eca7fe43c09edf732ec3ab8439782ff69bd27771f4e88a4c9a6447df87f222b3af22975189fe9e0741626b0b9ba7a9e81db8a4f887964fd8cd94e90d6806648140a39f2dbd76169c3fcc743ad776b50f89e9fc4a6ba71698fc35aaae3c9eb0d98de8e29efa0f4d07b59451b62600af56dd95a8e5b461e57ef5ee0ea3b32b5d8208b9c7c7e68938d86fb9e2500dfbfbec2b5f309512d4f1d145751f5ed00b73f38e9980056e6b8a6b02d4eed3b6158a61b6505086d5b1900e9b168e9dab5bcfb63a0018facd763fa6f53de39adddd9cd1a6069f0ea28ddd9d7ff2f37e6ee73d31cb7526c1435ec97eb6671f7e7908871a6570a5a8641c93cb774d87b18d435cf3eeaff0155c309286a5ef54b2a068029911820896facf98d1fee9d6880db48a3158be42f3243ea88af5df7ae3b9cfb2bde9bd6430006c8685ab59579104cd32ef74f6a57341b7bfd9bd89d4b697c496859e307a830e225c67ab66817386f617e4672f7a91039a7dce039ec5badf05d23c4f9f64744744cdd3c03832bbc99f7c19e60acabcfef41258cacd781f5979017745b10a10ba824606a10e2648ac4f97ae7af9fffb80e3801106ce9e1b264fa86e3b3294420564a65b5e02fb4a79f078a4fe4903c26cf6c9902999cd9b3a3b0667172a30d205b94998356d4ddced92c0bd2ac68afa9984c271f6446d66fc9526f064b90e9645b5b8ecfffe179e492ade63b51fb77f7d0b84ef059f077f135761c7f9c07b0a4f429812593dbb16155489a1a55be6eedd541dad3003f9e853aed5625c6124d345e71fa7330868fe85debb7a0354e81a6fd5417ffc120a9a4c757ec424b96fc6729cbaa654c89a479dd9e453c48cc16e5321441a9378dd5164ea34a34b0ba92faca01903083c0b21c46670bf25de670056792534bd0c9c7f10141f6425c4af049 +shared_secret: 187e5b0a3b6f881c8c16f777d015d1e9e80917e49f39e4a5362539b7870bce77 + +# Official test vector 68, seed: "cc0c86cc0abf86fa21899be1953913c00e7c46e6b5f730c4e88b3c034012763981d7f14459d3081638080378348856ea" +entropy: 5fc00f89563e44b24cd67d0ce684effe5731619fd08e7d72e2406eb016afb66b +public_key = 12b3141c2441f96a053ec568c7d2b7e1229fdb620d905119a05690cbc9564bc9cad3a66e05f641302a38ada62e07380ba315acb5a3af9f02aba7811726a3ac94723d6e66428ec8576718c4da712846d450cb428571b1786267487b353b37d984cadc2f51aa6fa58c48b011360c5b1989e104b99671ce2985a174aebf31cb5f803d29d93133d2ac1c9851031b21e8da4021b44b4064ad7415786022bdb27a187495908ddb6109489ca2a67dea269493986565e33941c1012e5504f4e5abe662235bca3a144c149d970ef3815079e2bbfc26066a7c8dc5591871e83731139951a262f9f7a2630c0e0fe635cff95b792a6b9d490f0ed14b125b652de35cff994ef341a15bf57978211ca4149fc389c60f915edc45610b9c5883080e96d77267268a37b4338ccca90490cac44a61f2795f943a25147a8943dc545c0805e5d39b70139bef006df10c695cab9cdde3b7c3a2afe823c709936d7c3818584abce96950c06b248b858859bc2231622426078e480074bfb011baa6b11336206425211c71b48d134b7b0b1c960c9429829ac5191f8f8aac1ed70bcfa4342a362c68a35591db506f2b69bff31033f5ca4654421f48afdd736e25d810add97f750530c443618e674a6691229c3a17f3b19e9d3740ae4a6aa6b77254b27374b246381483e52624a473035fda0eac427cf0f7244b3b8fcf4c835df23cc5b729bcb1285ac49529c1241977741ab15c2984343f5139e1219d65992ff75637fa3a486232c1069cb49269305057080b535d4a624bdbb78ac18407fa8b48caec62459b80cdac45013403adf41038fc0b97fbb3b9450e9953718cd82b4e951b3628c7c1fa39f5629dbd074548d156437253ffd92f7de9b292b00d1812cad1ea7c26a295e373bf80fa6f173b68e7149ec6a454db833d00fc462472ac51a208341a39fa8ba8f7c8243987cafc65a48eb30e729a033cd8929a746ab6eaaba19388e9246ff28355bcec0249fab0e00b722b91bdee0b8fd80377509937f201880239ce9c9251a9d3b48d455884e98acd948f0aea095155b360620f29a279116ba08a5b5ccd6c86e0e57f4b33c5787c38b7f0b924d71d7c06c58f932d7c68422085c8e365c6787b8069d21f0fa5a414d44267b40a5f629b6cf82de5588b7e828868c5b6ab9438af030983c7c37c1032be605936002558e161ba0bb2b1b4c6b1fb5fec029ec389a375d563dde64eaf7b95e4a05e2cb7b1a4809e4e98893fbb2d79aacf0e7a0718a322ed8296323681ea398981512d04f56ad2bc10667187b2ecae2e9aa5e2922fdff22eb9651c37c75f6ca87aed6213e0048e36984e2b9b6936d61318da6b7db7c8b1538754b997dd325052c21d22328f03d5774e711a51ac6d3c333f0a529c1568840bc92ad42603b4a361197b36681722d45b497cd94f73d90fd48570b445c4b166a02c5a3c5928bff91545053166f0fca5f7b2229232a301484ddb25854d522f546c477f43072814668a734786b6810770b227487a21abaf17e79dfc365c3843363ec53af3686cce7429104740a327ce441bb8e3736af22448016b8e69784d3a2c92e0f1787e818139e19e95e2a9db2b62164221d9b77ab2ca91dc221ba5533322aa772459c6c5763f24a07c5b715197a20c7357cdbcc18840aa7af18c4684e275cb3220010386095259c4fa71f94662133622a2945d8cc6572b2311a7fc0e1091ce19d8c5d7913acc490e6c1751d5aa3e5c7218ebcaba43a8c0f6d78897c15a20a87a891bc2ca94779525499a2958a60b4878db537d9b148c01b7c2a642fedc0624e594cc318a0fcb52960526af556198fa028604a9f0181be16399edb84b38405e33b43c13d83e54483418467a57f8a796b4032d37a744fa6200b0aae04899c6865a66923eb173906b26c33231a90044c9c4d5215117ca1d50cbae1120471c0462eb1247f07a2197680856428ba494dc721bdb3760c1a97d2e59735bea6064650f55212117659380052550fa311599923dec097cb28d601cc4a117269822a2bb589ad165a8587893bec2b0e22030dd8736d387673a67151b249c49e7abf96960f5394fb255be8cd9927152211613c5242a45e87028745626de709542338e131678b871955582014f1074e2f8be14a634ae5c40dad64b78352febcb21bd987d7632c16e03261c4771bed2bac280f77da45501c2ef4d97f2faf650309211985bbee4c3a85865 +result: pass +ciphertext: 7b73df5d74dc99937afc0d6f6a0ef62e563a69bbcea3a3fa5ef58518bd06c122995eb5c937494315af7b67c3630f29fecc06a73c54b951e159efe8d72118352879a6127f2a640c4ada847db224771e3cc45bb9516bc72a09102cd800ff110e6eb37e14f7a15a51d9362bb543dc8e783ed874198a312f9894ea60d707d0e9ad04727471f40a9c19bc4b9197d48d6663feb7b2cd9eed42eef4490961e6d90aef914bd5f48b449f4519659e12c4407ab61544da3d063271e4b1674e3f145aec8a9ccae7b458b05c3d53e0f99e8f138a3387459df53289cdf5dadaa3a3dd2ff6f190648fc43bbcc1fad38a6eaa013b7b09ad69d0c73188522ba07ed82e8a34ca49a04d056f484155e2850c978f8a5e4f026ffa7aaf387d1c14a489acdff0bf348c1116fab4411f2b0af7642f88e64778644411d218c31b55503bb9f3645ce3f6b213624a3a8e646e157edfdc2e30a764f71b8c23fd95330805d4b2ac13691dfe436fa58c3d3bd05765f2b501b9ca82d50c58ecaa1f0ef930b20919eb1b00ee2eed99ef61c85d22cf2f72324e50655efbad70a87a8c8208239da0151406f93d39ecf642f0ac388f6e7638642803883f8acbae1f54ce221675a4efc9f3a35df05488fb1def243bad65057646a5e5827fdcac36bae4ca16f66fd4a3130dfc358a8d07468a6b9843b56a02d9af6befc9fd0ce94f3db71769bfe19a3a0066519f967fa786bd397b33d3e930d464ad4a1034cee019fb86bc268e91c9d8c97bacf53940d906bd641b2b67e0de90452052bd0390c45a565fddd931deb1723edc2e1a486e32cc51a8442e8c027892c1e7f6fe6eb9757a1aad7daeee6a7cb834258d2f4453e367db1a4fc9d1eae40a24b97e8b29edf5aafa7ba86f4cf8ab25dbc32d8287cadf895ca3ee539cfecc09ca4cd8116cb6c0cfb62a6d9693e6c2bcde497129213bf13efc82b0ea9aff794e18409bfe09b7487083cef1e33a59054414dbc4e72d264f390fc945d3a54e926763dc866bc92b77a6fdd82a285e69c63cf4f634b6d4f97d088d3f7a8e53cdd8b8bdf21acdc23adae7feb36b3f14a638fa5b4c1289718172d11b5e8400549929fbf1dcd7c5d413111c4dc4857110a5e051d7c6250e2036b49583322e99edf2d9276fc4447a9581923a086a59e4ef59aef1d480117ab5fa76330797192ef0f281f3c0a80d1218ad485d68d5d36724418ca7d50a6c4936b692790884bebc9e1531af6e3eb74dadf702b31d54ee524bf50407fe425dd05fda0a4e9fb2ce40ecdc326688e5c77de894377868bd4c2e2139b474e37f2c81d5cb114aa7a011f4245c6db4ce78c723f24969c0dcfb8994185663fb1d2e48e337706a2194ea212e0e1ba32c8dffefcb10b4658167dfa163d4ed8eba694c7491d4640dc7dacdf23de8f7c7338616bd684f1e514308a1812e04e9568e857f3204170e67f105f0abf43459e9d07c1a0360031b7fdd3cf03e75a358453154e29f211f445b202de15e190801a1cd4a56e7f3c52d26423d1d92fbcb486d6580d8d2ebd0a3065d2b5c343247384804009768aae6be410ba31d0189c9490f738756eb4281b205ab8bb376a53b72c425492b71ef5bc181d79b540cbc3c6337e4b8705c3063e1ea4d326f14c22b4ac67e8f00d11702d02ce1f30045453af30efc07f53c13de8d1cc0197770e094bf8baaa637fdc544850b870d1bcedd4c56b88fd8e1dae9197a14665eaeb97e11025a21fd21e6c40ee5bfb3f6da5f6acd5b2b2e47e78fdd7c777a1538647a96896ca51c0f1dfe06d3e5f293ee25a289291b664736160d9d925f5d45073f4e6bdb39f891d07589d129fb7b6c77113aa3d3161d45f6bdbefdf494a8be0e03c4ab518ea334941ca62d4babe3f5c79c814c1abde6366154f1e82ddaae9dc970daf395bfb416f6b8e33b0a85d131ec429070737b1936121059cad2644c5d759ee1d1b646d53993d7381b84af391145e86084b1bda89b0c71171b8ebb3f2ceda08782f8a2dcca9176e651dc182f1d888cc196eb45b2e664d88a3562df9a0ebc24826de5b7bf674139c961af36a05aa71baf645aa353d439ddc81f4d18504f711a1be110c3ec4f134ee17cfeb3d60f85987c37e966f887cbb3dcb914070e1424e9232920cfcd48360c217416d9680a9e3c6f1009302fbdd7f49e12451da74794e80c623c5467b6625c474646e2c13d1539cd8d156f4852aa6b60f027922e3e +shared_secret: 3c4902f19d2eed8fb7470fabe5171d9f4530208c50521e6df3e8c568f8a24f57 + +# Official test vector 69, seed: "6d5a7cc326ecf3983c4e7683f45263a37f692f3bcd2d920e1fd9584350119e74f9a3f905f70d3e20318c1413de2a0dea" +entropy: ea22a76065db4b565ee1807fbd813b43bde72b0e08407fb867c6a18995025e50 +public_key = 5cd35cd8f09ec13054176c506d02a7258a84eb685d14c3352f0b0051757c30d4184ab6a37bb6058c4451e89106ad2c259bc6791de49ed9dc0bf62bab1201429035c8716b864552a26b0549b1832a2bb01cc8f8cb55630618a525f885cb6fb407f042610681428031399e5666d56a9656e1a530460ab4178c3e957d22244b1366750da084f572399a33bb452c7c73f3cbe9a7028cf3849b475606ea2c96958dbef17aa08b3f15c146edb65de9379f62c11226f9b4b85802694614eb229c8ed44198542685610f53885f5bbabdd95c5597f89d825b0f441b21aa476ba4970be900a2f40cb742402c2093803f27ca37d06347615131b81fe6ac6ac9249459c92d92133870111aa5176c6bb828a4198c865a1730a84961f3914379bbfbeb46411c1705bc86f8a38a5f817f1b4c34e99784773051764b3f55d38571e98d744043287a19dddba7d4eac3f0b98173d09f0cd10b22a0bc0417a056c66064c906b7559ab134b6c47baa7932540070811d3ab8f5f265822873b4c78af45514ffdb6d03d79c24a88531d4ae7230486977b612cb05b906ce19337ca1f0455718569e80c2c2c795b7a156e60c5c65fa19fdfb5e4fd96727947fd66abd94774a5bc45fda822146a12b67534ad93aabae123af9cba2b2a376608cc6335aaa99f759dc964aedd80e432c6f417a1a65c63f639b5312c35038faa9c45051ba31c66912538fb51a85189d846b799d8c2fedc439ec8685b547376be49a83fb60281accd733001d729e4156badffb3b7dd8cb40411ee7a3970a168357a89dcb75535ce341b5b47403308bd87bba01f5cef30634c9d27d56da4d4373234790acbfb5051ca2a8519a42e610269b4b32c64770a5db4caa1ca6670c432bd74745fbba2f22377c729446954a6e067454639c3771aeb626871e3558a0f141a37c2732b13b13532cd16462f7822ba2869a0b20717e3675a328625da796e12c4403d380cdb54930db78493994c0793fd67b0a91140758fb78d229051e696c8707cf5a1c40ef511123b7c6de51ba4b792eda810762cc114f716c66a79dd4f5b0865a1a2a1144da80c4106b72aabb0a8f8036bde19b204992dc600956ab076ccab601f4250ac4b2cef77c38d6b6ef8907feec307ab29502b269dbc063e337ad43958d893a36318c6c052549bd907313c2251744ad02c30f78d0b394635508951856d1160706cb042275ba20a4bb6a734f9856aeba164af669f43c5016f1305e8084389581bc146168c0914d1a65ae5188e19082d585af435c183df28179c6b2278491dde450e7b1bf64075e0a9a8301454b5e111e39b0cced002680e173c5db96de082c3c399e398210c974b6f47449dc9326c1a7a79f893f454834e6ec1bcf0a860d962a4e05a1f51825981b18dc4ab661abcc98d4313cb40baa402307895460139c75b6aa69e27c5e69273141487b849a42996a55788b3b42018da0ab1c315d10308f05c54176d727a04b656ce6859f69471a186a4ff6b17b877070924758c83dc681292bfc7618f2b75413c79eb9b945d1b2aef95a47cb21cc8982f405739c9064975b5ab875ae5ddac05a65a43cec4ed80acfeb15aae898b995e649f32b98613c77fb926879ec940bacbca0696cf6c6749604a1a59979a623477be871a2278d22134a95ecc1b116c48340c6c6981adbe742ede1426bb65b942302162b8164352f918679d53c06beab47f07c8a37aab0a7449d45e01cfdf9422a783e06f645353cb56b8c57e28840e074629bd58b5646cf1c96003181b915a71caa00a35fb4533df22b2367c9bef95ecc85359a236e23a425f9c975ef842ee20228c66673f1ea3be278b0fd43ad4c004655532654598f34a257bc7c81dc0999266c8c2f40a4d9364f602bac27145b5be7c4fb0759288761ccc586b9039d6ee57858a21a05676edb52c937f11c35fc091d3baefccc15bb953bf5c50b95b449b8db449810680fcc53169bc8403bc70a5b2e3dea7af89aa0fd662255197360b8c7325545b7f45f2dfcce05d939ee5556f5c63cef52cd68e8399ec25726a316269374eb94bc3884011c89890e828b5c726d149cc3446b8a12d76c35545eecc7aaaff17030a0cf9c993e53a88ca000116c2b206f0187f725acc696112b5c44976a22ab617a0c42a64d03b8ce88b7a8aa7cdba28a197a5d3bdc64cf089f922345dae5a7c6bd86d17444f21dd9b1a5c82b9fc906c4ad49e0 +result: pass +ciphertext: 1db1afa16d8fb4e47ce58533e1022da2bc47db14d7c6e7afc7865fde201719c50f722cd79c2b0da234e075a3211009efb905d45fed0a83548746a9ee3159052015761baf021f52f9f9aa19f495db0dbedc911d357130420a5ea04516edc2ab8406be562181944b816458e815e0958653fecedd6a19193098c301a74352fc2de472ba7be44a513807096f7a0c42be557bf3f831d628ce208f33d5c797da2166c95c88ddeb42c7d78ecc54f0088f9e76f1721a4d7d088dc3b5bfdf8e39febfaa0e32c4fd4215c4816731bb515a96e6498846fdb6d58470a0148196ee81d3b7c8fe01f6b0ed7a20fc3f0910eae4656ac421448aa488a52c06b1385d4d1d73389e724d05720bf3cf5c7b863a0791b864b8d978f5fce0403263d73889aa0aa476d8a760d31494ee6a69bfec705b30a5bdbfa3dd74cce40c0ecaab83db1eb7172ae07689db456c33902175940c66c18ea93eb7ba50948cc27ec47100fd60404302d607b6d1a9374ffcd6cc8cd449455baf194cc71888463ea98ab3aa855546696c4d0b38c3058e97018cb27a7269d95c3835742de93d05fff40596a60c1408018d8d59d41c8295260ce51b09ed49ac79ba2115582309ffbe504e4ad56fcdedd57e544a0ba8e09638fc8da99948ea71d6cc75e2f03ff766b03c768c50cba64d8a3bd961161fa3466d5cefac84e7fd9157fa37a0920fc411bcaf0ff85eff2542556d02945b71198ec612908c02b14f9fa4905e1270dc709fec98841a5b3cb0a5b0108e2fcc0ee90403429110440f06ca40da8869ea802145f1cc2588b8d7f2cad465c3384ddaf4e0b7ceafab3b30e1d70d9eb812902562b360f33cf80546e1105f2bdd6496986324eff2c11f2e1ea54c66d1a082a8c19f705df7ddbe69f9cfa95431a5706850fd9a5a395571839ed73e2c19afadb4deef4dcbca3a75a63c83b22dc81466b09e4a4ac71c59bd69a6123f1a082e536bf1accc1afa6655e4cfe66e9a990e1a5b96a52b315fc08398b9958dd5965d5dfb4abafb3c63a7ce553c372d5c97e59aca1a6fe330db286ad684fe42c4a56d5729cd6b68b6b60bc924588f3cd09d95dd504773f61ebef4964199d183cfc04dd580132e1620b7a412a6e210074aaabc788381e98a9ff5f662bcf9214903681e255173c8db36a16388186456142fb49010978a984216a1d0f9afbe810cf811b01ab3784acf9ed2cb47452613ec2b154875de5af387c0ba3ccb0d725a0ccf2ef470f670d96bce6a5154a3cb7e78d786eb8a01bf066dc2f98c190273db023035ba3fa9217d366a6c5b421920e61ea44781715237b561f08471a2b98b58c4f0f45e30211a132006d089417f5272fd571de7520ce852e76f367ed4262e93b26e905ad8c21b92017dbf2bafa11b1a5fe15ed1162ab3392c23a930883ab50273aefea408dda64580f3665127f08b468bfbbcf702a0724b85f4a3242c13a16c15917f57a50fb63e0864975c0b10bd6e53e26cbd089fa7ad92172c2c03abc151c7a62a342963debf3ff960ba2beb2ca796135f3c54ab8441e823eb884360ea6ca9f81977b86be07feae2afc34c422c8c0aa76229d1ba7dea4ffae74149f9af18efe2cec31618abce5cb9ecba8243c7c116952d2439a3766f83ece57cb8f069fd5523b4bff071e844b7c3e0dad013dafb16575498d86663b2c8d8adb379eaf259c1c39953ed4b6b3a13e7e92db9a57a330e0628633040fbf324c1a86aa1e6bc9ffcc2a1b76e42fd71ca475997d16d385f02a860a001afac2e1ecb6d932a80e157704d6df6f3b3e9774132f9649ef81e4970e69b5bbfe8519d1afe7fdd03dd5d59646d88c3674221d1d2959b5806bde1339e88ecd181411b6776e1c2a8fc4055843232c9fbba7f26de53c163c6438e31ca5184e075510774b933f111f74a7931f95cda817c2c4575065d109263d24e9ab56941ca9ef136143e7f46f33b35c486efb2ef8d915544b8dd83b3a5dce577fa578fc90d7d01b6bd50f1a49bd245ebc3f062590be903b7a421610539cb53c8154e09eb4e26b6490f31efa406657ae5f37452d822acdea9040db94a1e20adc2f2e6ef68ba390cedca1d3df89556c6f4460528e04ed2cb4436312c50a428f096de7218633a8b1921924c96d64c32a841dd894da56302b56cfc00a7da32be9b28b94d7aac13a00c04c98cc440d449611fa0bff1d43d9281a52bf230d63ca2bb14dd5dd1d8646e66 +shared_secret: 2a9393a6e60be8ac438b247fd72c75c1f547dcae83c7ba7e791176523f4e5eb7 + +# Official test vector 70, seed: "f68fc0314dea88f66afaa76e6c9b6804b13d4876924410d1f526fac59a62e26c560b125b1d0f8b461f1fc2e351effb4f" +entropy: e9602b34fe73ad57f4bf6ead99743d645641553a5b9b9bf2e7016629e3e9bd76 +public_key = 66834aa6b266f0964efa45c0469249c3fc0faeeb19d1508cb7c409b49a7e38299920c3433da3929b2552d5e9a1f092383e3b4d3d8a16ffd199f7d933eaa506062697c29b1fbf10292a4758d26ab61f085c31a0a3b85a19e956860f93a3ece8a0c22426b40bc8d0c1191754803d0204ff048c07f6c778fc685b2108b0327dba9361b00c071c8223aef0949ddb804075c3a0178f41bca68b676ec8469e417547617c8b8ebb6e19e83af1ba27e2db7d08e11f25805f959285add216c25a029684160a880fd2dc5753709ea3d81a59a91357205cf126c24f8858a3757be1c562c65166a0800047949c062bca79e03836d05aa6a91a30856a367b087b455169a7c3591091e72c96b7432397b6a257723508661349265c4c475ee7251e4cc26d739b33190cbb07a993e5b72288a55d5792cdd2c9177c9541f0a70bf066135e06a3ff1700af24247aa61e70f4727e6a9fdad70c470b671ca31a21d236bcfc508a833714182198c4c41bd1aee23b5acc9720a3e955adb119e9e06fb6c8a7ba5a37bea21565f77f7f037f0ad71d6ad13301a547fe8458c8363feb218a3ed5bf594c3bdc7a03003641da15479304810b5a0c949417b9a8473f76ae6c13144d7b3673074703da0389e82ad34165f0c258457367b5521128ec318df886eaa203e259bca111b68e13ae684b1f1b3781d8305193e094c20b1e91b473ac9992d1e77db85023cd043b147681fc9c2c9c2c1237c27f1e459b953ca0711a318a4b76d924baebf599d9eb852dca1dc5f80191b91281f8345d774a29053513f159164a705c954e53ea26b6927dc57a0fae5a19bd33bd67339e8eb925576a2eabda6b0a4743abe05545e080d5495402eb0629859671e130cd048235f254fff49a7d394f3b1c3de06a7847473119e218cf0944609958300b93046869c026cd93e21925a30da0389e24ba6f08d498748730e2b40d1c73452de8b7570027579c11a7417f2bbc67122c9286d1219d7230ee5b0c42d724d1b1cd4b031500958dc7124177a25651781657904fd1267f2bb69d5c929f8967cf216924d63696627c917f82bd2813563cc443705b0a1b279eab237326b4ce45504ec710ab95d01ad812559b2b8be763c1e9c55449a1366fa2cdb6d0106856b080a16d7e3700b0771a422423c806c62614b047820ad6876d7740b35fd674d99605fc61638d863ce5cc6a55d62f83a4a68aac10ac065657870b5c623970db1a40773500757178f29d54548aefe92eac306fa8f926e5f84b15f339f4fc388a554b79d87325c81f9e9989c690920f018fd4440afca405b1b667e489568121178cb7a18ee2c38e10ad4f5a09df64a76c0badfd08627861144f8a449df4089a08c48cf1b110b443d16386042b6f24730c921643a6f8b7aedb9a7036339f1b156c1c4de7f4a03acb57b1cca827146f4bbc30f17a32ded42949ca5340b0494cd29098260a87bc7b50440ded82befaa1a6c4c28bcebcbb16990978ea92a3709b817996f51a6e080578f2d060b924c5d9b93098725eea946ceb84a0a884c7fad252bfda7aaf374e5ff8703941a8483493a5143e0f9b6f5ef45f683c2ea2c4b5e8b92a46984064b97e28d339789a8654e27e38c84ed7e4cb204412a434bac227197528c6c6e1625dab98c25557e16cb5b8249ebc11caade0b5fb505527d45981864d4abc8e1060cd9a7467465064c9b8cce823b6bdb9c702a7a30415b4fc6979d2476b4511909c90559f70597375c050189ff2932852a51e74a21b32c834c734052c61137025c20708263e0aa71d87b20263bace0c0c98a58cdfca4889672e6b654c003a7e22465f97021ac7c11fc4d1c0525ccab768c6dbd124c8c533f49ba88629c71fd1cb6ebc4aaf09ab6db011348b2b0691bcf8eb1bea9588b640cf3fe97e35e92440284cc9607d49a3891283ac96c32a2a223d1c372b509b1d9401ba6bb13ebd5ccb6c44ba12e392b4d165c4940a714359ce122f6b34bc1344af802992c6fa2d85f1957045bdbda400b526b21bca1a0ce181531c8bc644799ee8477af16fbbfc33879868135a5adc748f88799d23476aab0643e5dab979f3658cb1cf19292ac6f30a486353275cae5fb941b2d49a0d0349e65917b4f4cddb9a976f322d8917b70278ab9cb16ef193cc33b312e1689170532f31b001350225180493d7966e2b216c709ac1bea73f1c624a081620b7981c1c95ae0387aea62f +result: pass +ciphertext: 9014923a6bb3766cc008194257fdb5ef86a601ee1bef6189bad5f73394a590a44fdee7b3792b124f19ad9d5d468d9cde7defd8a741b25a84d9e2fdf4746fd47a7c6ef65e14adb90d0ee45bb269fd513c0326bcddccf1c785eb2b87ffcf12fe00172bc0346a1c19b8522feca6dd95e19f71d8dff6ebadc5eee0b40a74543937b7475874bd327237f6c2021b86e4da652bc6a9312b184ee80ae92a9e5758d2017376352c3cf3e60beeb18b2fa25798b13e88907bff06ac2e43562fe3bf658f0a48f39ecafc5f74265d61835c79d89793841d435ba1deba46d46bdbe95f24b539b0c860796f8b8537c8755e480b3bc14a0fae4928946607371b79ee10a19b49cd7ce8a34179bcc6d3c526c34db107dc24a29fbbd93900abeae40ec107fe3de3289b748794469d375e4f0f2e3546c40c73b4d4f7846fa37caf3d6afa1b0f6eee1b358aaedab8f41c1b74eb5d77bce45f2f3b70eaf15e95b49681569e5d29de8ff9a7afe7ac65916cff80b26aac57d8d88864c35a12ad1572a4f17c6c58304c4b4fce4fb37e51504f6fe2505fb142c7bf6c5b7837459c3ff55225736a263fc5e49dbbfd552efd7208d8f65e8ed58b48d9db43dcc13117bd2f80be9c78ee4162c0dceb49a974975aa0c978d40f2882a1f547ece2450cf69ec2d31dbf271b2606b45d2fb7ebaf324a7e37a57c122f3c397b0ab84ff860b1f8641ca5a957d3446b56ac074832b382cc8189a5d49c9a53a3161a8eeef4f275f290133bf6a3b401df3760fbc5c23c94678b3a552dd95a4b5e45d5a7c657e0e27d30d5bc3bd5e8b78025040d5314aaf1c18a27cfcb9fd19ab5bfa906659aa8550bd26c242d9f5af54a4605e4178689a9405f3a03f15715e0c4e8a9d0b69b7a005469b0707906ca70dcf9d2792aa22aa4a063d87f7d1dc69218c5553cbc0a2204e81b97541039bd834be57580d5938f7c5e170eea127cc10bfbaac51ff8fa2394bf36ae934c92f0869129a876c8a6ea5e8b1173885d6a632f7bf9a0864d8adc1cac3c39fc2ba3bbdac80b608c2d617ed136db694bd951656bc7899e94d69719bba791d028144d857c01aa8701b50c53bdd47a0ceceb58ca6a019b09755190f47466a10a95389b9799c3baf1a55e51e7ab7b070359abb607919899c84ec4c636d242cf3d86cbe8dc76488b6852d5e9695cf03bad089456848080a929ad490ebfc551c43c6294e956f15fb2737fc1cf90b3ee67c38b9b6b651f651adce59de4434bec6d805c7c2efc36fcaca87015d9e9f994de4a1e708dc028cffd7b512091e8cfe2d97b858fc30f077dbc8dee63595e9175d3bf37979587f29256cae0c84469e4c7db00ba7c61b09dbbb512a42935ca55ad40ccd0259a6400eead12d9734632bf78eaeaf9501a77ace2a6f45f247d3a30a80e95049705adeb482a884444a22772c535a19c3ef50c9d3040d47131112c2f71d25827f691e410cca40ed6ad581f8ab0e9cb7b78f95044cffb2d8bf43166b31caf0d4d5902a51239d13bf6d5be5dead1f4c62cc0f5fbb56d1131a73551d7cdbf930daa82c9df3e35cfb5a7dbe738ca215911e0f1229c22e07fdc1037148a478e537d490390a593fbdd921de127fb033b1631a52ac9a54ac072d49cfedc0bb1370d0101ad40cd98f4d1b2530d2f12b98b39fe5ff96ca58024902fb26aba400bbf32983e15ec43f1194d79292839034e161c7ea3c81c9b53e112d035c8c6321ba150308cbc934470fa625802992cbf5d2246da7af70b9e371ce112fc984052ba2fbe1be8884fa85692f343c5be53bc472a9a18c899b157b32bfddbd42f761fea66708ebc3481ec5afb6c7938bf4e3a3c8b6fff32475391193103c53015880b5c0232fffc8d605402240a48653f84a54bd6c0d366455f012d6ee2f0c3519632bb5a4f577668d1eb97d92787a26f86bca10a1eaa55f9e7c6c2a4981c0f7cfa4702fe1f72e4fe112ae248425bdb28d919d5c97ccb84007528d527135255dd8cd5f230d35e137fafcb10f26e2a8c57b941aa32b63796ce2eaa9e0180b6746dc3c1272a855a101026704dc55e8adc870ffb6c7fbc3f41120fa2e7be78c5f46b72a03eb5077a43f3b7811230b5fbf43753ed2d08052414826a715b08189b311850064da249f7bcdd9a179b946d391e6769fb44b7d32f2b44da31b557bfe940ecc1d9eb99a9c083085b62fbcdb4d5e0695f1d1c177acc57d86b68f1aa0ca5dd +shared_secret: 2d5b67aa0cf3c22c0cb58a11b2cbaeef150878a908f8d627457966ad96f2361a + +# Official test vector 71, seed: "a229218b0d51f58d915df549901548fb0722f352c7470900e7e4d8399205764a319bbddbd06c00e8c5932722ee5a404d" +entropy: f72b9080a6c051bbdb9b0abc1949034be0f89a9f73fe277ec4d4740c78d04a83 +public_key = 14830be3ea225e8161039550c3c320e6c57220e076224aa8fd48b4db59a30f71b2a2fbbeb05b3885819b672c48393c5fe1865a4c113b736505c1199b807c5e7669b7d2499931d899b21b8c1d9caa129761bfa3974c4a85677a0ea1a49c4ee022cf3048012a3b108b4380f10ad2c327a009717a64704a62cb31446c5c810a5a9928e1e4564f95b027ac251c464569344f0086106f7a4dfac13eb194abbd64a8e7db2352cc07ef52195de869bda087cf838fb42862f6346754f1744de8a414464ecaaa921bf76a4ee344e3055ce0fac32c15bc9ff3019c7b9205737426cc29239721ecf65ddc241f33dac59dba06db577514891f70d020f5b240b03493aba381f6716a16646a8a8343efc41394a90cfc896dc04c4fba8aad7cd66005e426a3113dd1a4be4a661eac59cc2742a229c6bab9ba26cfa9194ab41674e89a410bc7e8a25bc410bf95738f8420c64de5715ae624368322ec4a513647ca86a231e76b62e52753c939308f8460a7650a28d258b24c4662793e2ad4454b5756e1692c6e6822a8dbc070ea81f4a85d6a2a852c452235f63816a08d957cbab030c33b5535c87c5e7851c55503898f21138b61558b38b04ce78527658082308117978bca146f8f338c4b4b623177a0b1a51b5f134ba58c19b4db69182807f3bcb29838a0729cc2d34200379cba1f751b6764c27d471fcf7a0b3f9a404fd3bf98150150b540d79b1df00038ce770424838f58e10aecc304f29a9103177752520ae3d967ba33ac2526c85d9a7aee03845b911f9c0a516f10a06a018af24319385a81c153653fa81808a6bd74680f684a52b8a72ba5288b6e75bca97a0304f2c3d8e940dba7239869bf68c951ed8884dd32cdb254755098cef7abaadec1a47a7a0fa646b1ae78af8c608ee7535bc43371bf1206c8680634174426e062ad9c28f4474a01b6785df35df57014c3e8858c2a2ed9d911cda8303c318bbdb13370b07bad82acbad0bf04c3ad2c491328a20790c39292629152dc0e6a29199251b5bdc956a2c4272a4b894a87359a11803a8b67e236837d25a274c97eebb6a8a9e7ce73cca9dc91a1129236730786de0a22286b71afea28e01abdf69cbf460ba2d7d69143895630f526c5f2c6fe9a289a3a058d84b64228389c94984644bca5fa1f61004a3edcb94557093345991bcb9bdea45915a5bb95618f4d62cce22717a67c60042856fe8ab437066aaa733567694dcbd301307b4eb02cce11124bcde6a79819b95ea621f1b11492315e60f774bc5b207f42c178708b28a18c9883561cd66daf17bc0bc42e0050b2a8157354f7945828a488a941363b3393a1112c691e123c6b5699a5c945038b6b2dd6725e7e619bebf1c34c7c32245461d32525c5f49a763944cb64581cea3a178146dc759c29c995ca0793df62cb2153859a32905e785e8e6ba2b834918f2c2dc5cab10f8b95867467adc87111d7beaf69099400aa4e908fe0a299e8901ef5f9346fb07ba287235087a1aef51bc8933823d22b8a02c1fffa56ea5b1dfb143ec1426f32959a4103b9e343108c87aad2fc0bfc7384c0101afcb4740f01b57b483c0300baba66543adca822b4381e99870727a75c491a1129af47d768e4f59fdf05c6f491aaa5dc11b9ac7e20e541aaea11b6ec8b27e94189dc1be939cebfda109cd53f38fcbbee7aad3c65a3c51aa3970ccb31695bbfba3e3b10cdd0d37d848309ebeb3ed8601ca2d1479f3aa0f2766d24b0b0feb01d34bc5627ea8dcbd935a2303bd6aa6d01e7605d23217b98b2ce8564ce077032abc35aa6afa046254d9a63be6c4bdebb95e0020ab5fb89aa5b01238047a3c183188bcec1158c0cf901636b3a459a223a73986afb886787cf93a8aabcd9af1e4cc585cac6f6f424131a9e01fb49bfb38ea664ad31dc16b2dc3c701753a2870cf9c27114262167763902b58b2f03bd906aad3b0101b7898e2663bd458b5c4bb7c5f49c28fffb97bb4393ba3aada4c023e25427dd5016b089591277b13dd0c26ae3ccb06c088fac04b475477ddc1be06620cf3754548a6b2a551aa1b97df5faa296c6a6ecd052cda5903533c93445778755876136c193fb0e3c937bf71ab2968a25e8d1c9e49a9962ba0c78951f64882c826016f63b97e6f8ba0242a45d69276fe0ce06f14be7535859c87a9875904870890c5a620d8632f30f55d3cae33d1c6f5896e6b12354a75c7894d8905403 +result: pass +ciphertext: 0187e1b558e87cf7a8b1a050fac3953c8d3038758f8e909e57c479f1f52cff138a78e583ebc02aab45781641aedb6786e7daa2693fefa5a39cff0a2b5359e4c09fcb167e64736752bc3f30a9249ad439689d11dd325232ca64af152f16abf8f821d144d97ab82df93bf348c86ac75f28f00e7b259494dc4efa7b125782bbd9b88583248e49849c08854e08ad05cbdbd6cbd911bc3482dc234a6ae89f9d7b5cfc9ccc8b0c3b2f38b7ae14c067d4e0f45e0f531a26cd2f49c6ea2596cb1a7b148df8ab01b0a60e4150d41ccb9aee48cc05ade595033682b29b6156d1819f8419fea16efe54c1f742bc2848d4351f7012d52a064d5ddafb007bc36a37d1de88f6e7a19a3f293f9b18f4dbad2604cc77dfbcf26f409535497bc0f9e05c830d1ac52f43740554008f032126e8464cacbf305d482a00ebbd737ea201cdcdcce295199150082c3964682584d3ec1da02f9462b84f36f88e81b93df3bb13419da7eb30a60920899caab1153f888941d88ab042d99c4c7accc20593b95634becd3124aae533c258f7b466867d7401595533dcdb941a73a72aba52abc9f614e6361381b8b39c3028cf8d65e518e7e098d4afa39384db1ca6aebbdfc4ace6f88649ab1d91ab0418cf5df4f93ddaecd76448528b2ab715633af9c8563b9f01955c0e86fdffa0132b62af9cb6adfc47f804cc66ec62562c51bb62203326cf812299c4d0818ed5eeadaf737c354164da0972a34cd35fc891d81603ee4698bbb7b87a6083ba2bcc6a52a574a5fc909d6bf3967ca3860e2f6e589201fc874e246052cae6e9d6cf9348231f7f30415a2703ad119758aa8a7d6a88b3ac897b25f7216dae443808ca1d76857f7faff60ca0d0855703f3726efbf91cfff5bbf11019f43ca3efb3851d324dd5b344ec0a7307b02ff76b92f8497a5e86ae94bf89f0956cd7ad30cd2a58f37af5452f356f53aa606c7c6ec7da7562e995ce3f9bf9e76c7f957085766eaff21ed335180c5e0c01c05b011ab76f2474234305038f7e6761b82ec6bbf19eb19127c01f1ff1a1772867350838eb666eb39ec6221488e7bc2dd3350e57a842aef984e7d00390d056962908fa2d3ed3555cafb639e5538dc0bfe712dc75e8f19a54d3c96866f0b40aaf200daddea384e4f736d41a7488121ec88b3d3e17768c5c1c1e089fb4c61c2da5bdbbf04e341567689b6162015d4203b221a0c32b336753dc49b7cbd2d61c2f044ec6b911c8f5adcd6c4ce68949d3c16a81371c5bfefb8e75654963cf2cd5b65ca9a08426102df9f8bd9c95a3bd0994f29c92bf978d82cbb6e7457967d4753f88522560fd64cecd04dbe4cf1a1b89cee7a34be93fb89dead659d73c881aeafd709da98fff4d5b7834b2a76d7943664fbc5c9641e11884d89b66b6c54015a8b2bd883d7c65f83d219e658b20f1321c95de44ff46bdc8aa6ca0a33bcb79841384673d5cd0a2cdd77d46121512c1b22f0f42d87481b8877fab7d26d2231631c69c4d296274527c5072069173ec72017f8c9ce6a83f944b64e9b1b55d2b714926f71e7e7795c5665c6b931e72044bf2c070df1ec4b42c530ee5e8b8a8b5323a82ea79f7d6f301a0babbf9a69542008ad7731fb985e5b8148275c92969a8a543945ce880cd22141ed171bb00ea3b396040664451e14833b894e4ee1c301bbca9540c3658b15a60da505f6f1fa625ce7107352247fa70bebc22eed0a0e073c70479ec126c6d1b7479a5d2e5159a25548448ca3edaf620f4d6fde071fb77621ac03196138e212b0c161daec7f12ba17fe5a57e6edf4ac4e2a8e491cef82f86f0437ba48289871684d354577e391743267722540e1bfea234b0caf5af9f4a3947dc8deb2d4d6b64b68f54adc2c06ba24046f23b40e07267bab085482aceb644351e255971c82fc73c792fa4420ee7e1bf42b2dcd5aad71f66954e91d4367c8505e1cc4fbd2705dbab906b56447bbfc73296f1e4131e60273f33cff963bef087c4f11f8077a500b3dc082e1bf6eaad76f301d7d72aef47816f0ede7c2c5f48305719076d4e62c49ec6f7535eb9ade87ee094ee3d81c0a983b38e15b1da0545d3957687ed5dfa834e0a3c1061d13d7c06a27a1899eed333e7895e7b451331268e5d661165b0a4b6623d8e5192468375327081558f15252bb8c3feabfcd480a802f3e671cbe98f78b870a89e8360cfb62b67cabf971c59c2fecd55fb54e4 +shared_secret: 2dd5a204c2cc0e2e99265e4243221a99eb3c56c7bc25c442a1cb85ada77d40c6 + +# Official test vector 72, seed: "6960f21c7350dcf41b4770c551dc8692d8ba2c0b6e162c589166ff22e7a1ac0f94c2f48504a5f7eb0da094df427bc98a" +entropy: f1e5542190db8ecf4b8d617a04fd3783ad0df78bf8dab749afb57db8321d151b +public_key = 70ec588f847ca3ea21787531444355e26000209110be1b6994c3003332b95b6aa30f8a0d047cb6a2d9cfae2977e08962b656255637405057c233388e018753fec08442a6603878a6d4f8cbb2574b9dca1c32dc0964e82606739ddeb92402619649bc143950b753993e48da443b1bbc8c3a0e2edaa2710a541ea6ae48022ae1f48af844c2b32707733916c259ab588241ee58aca3538a0bd79fbf3589eda9ab08906d77778649f0a2b2a7898a651bae7013f8b863112c4ae2830a43ac421434236151b2aa7a5b3be77d4c85c89e3140f52804ca470aa2b929e8e8bf9b4278be1657ce321572d2196c4bb158ea891e627861dbc811525cb5f07a3377be081b4651eba3c311bb1c0357bf7a7923a524f003b02ebc030400b4b1e1711ef633b8921c101bcabce37655e8c651cc9458110e68566d0871659c3072c509538c5a6174063469a25c4134baa4f136e71464179b004fd361cb2b19d955376d137284039a6820211aa578189765f15a47e4b52d4af9447c4a8343f84edfe7ae76901d871b0a0d72414c4b01f35a38fe35a268848e663263439b4dfb9b3435537f54bb1e2b132528fa5942da8563554276d466e97a25cea6c7841729cac824dc3ccefa91c7d0a377f45b10b8f8cf78d00657f90e114363644869612bca78e402c8e2a6ee1910e07b72ad43b44edac06ec2cb3c448b506cb0a09746ccd84b3b993213b7a76dd681d6e7b7e9916276172d15538209b01ba5149bb0aaa55cbb04ac89674700544ec7079a8277a3dbc298034e08716849c0542dc42b7e32319b0b7efb43cb57f951b4912af0141965fa6e1701cc53d08c1887bb31fc93399823f1371712785ce6cb549b91099a2245dfd350c374943ee6826cd3c9bed72e7012028b938bd304ba0f5255ca664389335962f35bdf253e2b3933689070145462f245696e4b1d852bab0c817193679229ec684979c8f17965f4411fc1382309c28e98c095f663b587e967ef6320a84a474ed415e64381ff341daf491a9bd872a019a112a2ceea76661015b54181b8c325977b50993a5c26a7d992cf519d64f0a013f517664268d415a9c7f178c047a684495464332fd89071da200c2d70ba68c68425b815772b349cf4ace5dc1437bbb21e3283d2623cb58680fb1084e50685b99224f8c91d167590d4b03fd9a62d54695345217fb08658f1f6c25d0652cbc8cdd858ac9ad44616a8be03e06e14288c1ab27e4d3c15b156732d246ef8492efd508b41e6438c1c899b339874792f2bfaa1b8e55dc2740b02d23e8da9c0a1b91c61db66c92cb8bb3c64cc68bf4af341892441085a96f3aaa1a2217bf6c005a3938c2c61a15a701e090c84d93628e7cb6bb0e49c170079df1c0e364a4ad3622033b762593586549c79b764710b2107bd0c0acf106c7f7ba9accccc6ddb15d2b68a9fe7a2e8820ee9acbfdef8c139bc8b5ef47fd18626285409a59479d517714637b9d75aabae29cbf3418bd56154fae5195372299942271b0c90f0bb7f0c2537df6a433a2350127a24aa144d30b95faafb39f566651cc1bf205814027477c46b7ff1b66837c657af9cb0e7f46a42b4a74a69c36e716e2e993ad3c574aaec31a8fa5a950a8ce7823a7e032cb4930c95d8483aa102d1b20926a6a324b9062b29192431bcd61aa56488be8b9491ea373fdd276bf986ac01e6a9683785d3384acce6297da89657c005ac086687161bc21a18d6d325fef6059ff711a60782263a5dd87552f3b6691708a60459a81321caebba42faaa5593982ad4e0956aa42bb03867664470c8459a511026c2b8791a37278faa906b288dac6a1b7aa9588ae9062a31823076864800b08396aa90ab0a48a9798a146a8e77b104125ab1f1b5448cafbdc749ff085f06b02a2c25174f587f6c2583cb0384c521990b6c15cd926b40712bc503471d4b807f85b7baa361138312f1c62d62431297a451957375607bceb0009d09ba904a864be363bd220cab37d13a77daa42454b867307ed7c2a956d41a62b996e0e78c34b4ac0e7aaff8d8164b4a11f8aa4379fbbb34f14e9fe13a7f4ab0025586f130914c6183719a941b0338e1e11aa3f167a421bfa38c9142e02316d1ba4e64c60320c0a190cec011304f0bc58af38e492937bbd0ad3a5a904fb39ce365a13dc902166c864a972082fd9e2ea5548a3b6c7d885a3ca6ae2e12efc2ea3ee4ca0b0b171ee93a198b42 +result: pass +ciphertext: 513b90e91123157cbcfea4a884bc01e7126867dad5849630204d7659363db9741b75bf90a60fb1454a58a6b9218ea88480a9c3784ff905ec79dc457c1bdbf42949c892d62050c4a3a5b1934d9efdba27709c1448f561cabd43ebd07992fe9a3eeaa93d2f85a58c78501ede9066448fafd52334e63e32e257b857434f1ff9d2bf2126f73fcf7a4f4d5fb1a9d3ebe75553e6f663ed451cee5c3d427fba5b362a554f3e25655de48f690b6d9028425b00598988fdd3fb41bc3cf7be9861b82b9a1bfcdfddd4da0166408498a88eb2e9e52ed8b0bf1685dc6862f14b59f9f9017459aed302a242f24f833f03042541a553340a99c26288d4d80257b867eb75ee67b949a09261c5c3575f688240595f90e95c5f4aab0d924ce0f9b2a4d6f7b21f1254caa24b0498271cc57f83323dd40d0f1b566cb72e435ae8cee0f502a6900651ba29064ad72bd0d2373dbbcb96938f110577cc08a90f8ddae8c897169262d3475ecf8ce5976a27a84ae6840077a21334bbec3bdb120323e01733e4125dce4413487cae5d26cc1439b07fb3c2bbe2321c12f7a9bfa3cd37f282f8909656470f8dc01aff581be3b2b5daf242fe8075e3f2dc7cb1cf640dd07709faaa95f2a210e3680675ca6583dcd36c15cf4d5b1234d76729a3e181409a60aeb6c3443eb828ea034cd97c7b1917d80cc3f4b6b94d0623f502ecd1095d2aaf6357a15c008ef838487131e9c0eefff80d64b961c56e400d9a0987d6002d787a733669b8a14f68022a47a7f1a7d5b0cc2982cfca20ce49b9910f656c8493431220381da944da3195acd40cd3cefdafab652acad95d1b33c45d69dad1349c314f7e0a5df35931489e3f0ea1bba8931c0ac5a9ff1900ab0b3319b7b32323d8540e6693b394765178366c2783a02de21196ef15b562bb0ddf92ea35f37659ab026b56c1d74c6e5ea282106b8e0d3910f0611ffbc00d4a2bebae4229375be72aa985211041b6be3afd316a7b237af61d591bf19b7d66e7b2141518c36394458d38397f8619f0939de57c53e116aa3989fb875cfd60d7c2c8f9f95a9b03a8293735d76caa4bee486f56e127af5319e02e8a6511fe1f4732b707198884a461f8af105658808551b3cb59bee524a8122badcea5a014855fb0ae4f66543bc1de0023432db13ba03b161da4971c9a647a9e944f04291d40416d01ae8d9e8789fa84456deb8e74b8deac4a4adfb91bae56ee88cc3e44d9227d356901351ef3b2ecf4d4957425f5744c09e57244ce56ad2aefd84a6f62c79fb22d6c165b969f9a2856388fcee1683265467b5e56d2b55e01d907293f5b441cb38d753cf85eda74e0a33a30f22c12f99f0f79d6a431f6d749eaa62c13b56e1e327ce0531d6495f043b6c77a697ed0127618e8b864e53b7155a63f76d210a5977a3432ac64dfcf93eba99e5308aa9cae3a2fc2692a7aa05018e66f1347e2131f3cbafafc14f6f1d6b1e2ab5ff905dbe8c0e0602ed774360c4557679d4b58adb444388e396e30d59ea092043e4d9bf9c4a07837dc6d30134428e827278dc13d8059563c6210f2192cffa0443743a829679fd840a6d2ac535caa5384a0002e2467f6b1aa0fd92c53531d8d885e947d1573f248d9f2dad6b009c511964f2eefed5e1fe6b37e5472e917373be0b2d1c9e30844f39a03b6a2fc3bcab6753ebf5c59ed4acc740fb56fd14b3a5b41050fa63ca3eb8c68a2742890bfe9f840323366e0fd40bce50578e5030359befd7cb00341d35257e959651e50afd875f2f59769392163ad2bde60d0e2964caa6634d6b2baba36286f6afb652d8b497ca74ff24b7b106f21116c67133ffcb55c2443ebe91b2f34c37fb0168b1ce69316c79afddc9095b2dc271e81088ab56442c87f1e7ca7fb7a38f69c184c4dbab3d98dd058e6f3f253d4e5f943df7b6e0d720771ab50dcbaf26d180bcdd6859ffbfaf447598b36fdbacbcd85f596f8d0faa0e5453aeda7270a88149b2513265a99cd2d12d465ba7ed2f2c2917e78d0bed73fbe3cf0e368585e58444038a443ba92f56f14034b03f1a3be51a15ffbb216ebd23eb533a0dba7e84029ec4f24f686ac968b7d77bd6c4e869e0f8a80905fb88ac04db1035ec0c7bfa8effe39f9a4146e6a4fae014e7fed997ef0a58e4957f81429ef52f08eb2c5e62d2cca021e79de0453381bf40e1ab17b8f88ff25a4b0a023d3542fa58aaa19653d99d65085 +shared_secret: f672d4af4d2ac0dc3b671317cacb5334b45c985f53c0d6fb7c3a24e5f88ef643 + +# Official test vector 73, seed: "53df46012cad4a745b7a3c06e18ca95e0b839fd8161e3025749a0887549eb0ed6a44eeea08bd6060d6509dbf7e9dc864" +entropy: 74efa414ae171bf60b6f884cb7e5ce12028f49365daccfa23e845d551711660b +public_key = d0947b8b21912d062783fb94b458013f34480ba83178c87d9ca4575ac9014ab22a7cb92b1bf41ecf098f735b3401e31bc02a43c447220da64ce22b17408ac536135641100d1ea581a14818eaa4c77b229b31511e0a403229889fcba0a2d4d3c845868816b79f56d6265d678c9138b716213fcfd7acb2c68f4fac7914d140cd2a7487b34146708115689407a9bfd24216f563a6fd220893c1c5e2c657031b43a29b19471b084485b7f739af017459ae50423518460266cf449b524406b9a2b80a77093afb1344bc1521e0220c5a113cc0c4a4321a77204521e3c758927c83398aa1f4bc43ac61487e7158ab4053fce98a74b14632054d3d3aaf018cbaad771326b7160247cc10a114434087faf515c7a39b0705bc374b7af73c5b60741e037bc69b10949db1739ad74a240c2191b3201a020f43890cb16390d6c27c39d40af0043b57e8a0f978627fe1b36c6c83fc97b49ae9268618b2c96a7a3612002b2673bc1ac762a37e07fc6ef3749009876399862d67b5b48571caf8b326a4a80b4544c03ba811b3501518d5caa107be696cbdaae79caa0191f5678fbe14934609aeb501bdb0a525ada654d77cb3042159686381e3677edbab5f7dd87fe1c4566dd7382f03c2acbccb14182b9a65afc0aac41f4c3095675a316159b0b7271f0284e160190de000fe4076b6e3073d302a51c7a6f6486c52c97446b506dd7c76ebf08a5f8c70e6e8479735c2ae79a6d4a99444a347ba838c43a1ace485a005a7531916c45181157c955817c488ccab9aa4d55dd79a5e243504a74405a8a4ac01cb1b9f2917fdab3b2909ca609739859383d631b65965affb4490d5b9be84a2902cb34cc50b5c49cbce43f8351a68b3476387bf87a16b9784a0e801e1eb39ee33b8b9ca82bef596605b59f33035a05a012d8549f0b68c93b784c7a309dd71425d3175ba50107d28aa8dd42369bcc68a8aa074020b4b21c3d537ca25b82a50dc875ab76b35a982b0792fd84b60e7db48fa0b80cdb90e1a95038842404a78c17d6c73e42951ecf2160db816cb7323cfc0b8b0057e6e66a36a856eaa60735433bc1680636d137b8da85f19334bd0ec9617d8b484986af31bbaf7e81a050c5b4dd9356563bd2f874b6b82a6e8b088b2ca59ef3866fdd4217efbc5dd66c72b66137ae65e7dc5c541c42a5c4cc1c1f1b678b7941d37ab5bd7292c665ea89b9679c5a6f8248f9fc61c2af282ec048bea74cccefc2077f370d3979b83e2a65d64be85742bb9b66308fcafc84038e72950e968b33fd98da2750484f1138aacc0e5e8607e352804316b26111c5a242c09901339fcb7d304c749d9205f169d2663a03bbc82658a0ca3025ec4d0a1e445be8fe3a72c672333188abc3010b6a98ec0f01d698b87f195b2e398ca6f8038ef0739af347b22076a58391c46573b0f782444464d9ea0645b4cc6f7136927c34e51fba618b082f826b29fabb8bce80bb0f05524348104eb4732e0ab4f4040e104b78ab9317b558330d4995168752ee23455eba2cc4cb679687be93860ccd1848bac42616893e6e710645b354a657e4f064e2d3266f89bacb8585e6d927259723e7d321aadbcbf9638b1bcf917e3c203fd06145fec0be1059c4a52ad751986d0f0bbb46bcccd365ad6b614dfb87dd7f97ccd731f4f9b280cd321d7d7679743833823aa5a05b1b3d0263858cb2ec27677da6928b26d3459573e25b0ca4964d6798cf250860d055418761d7ff0189223a1d3eb6ddab21572b58f0f5ab03a1bc047d7928c060844160e169b2ce072a89fca5b384b81b89b24741674ff5223d4116ada77797234ad3cbb1f6a78cc33e27b03ebb0d5a18427f625a4311a9599ae8723bacf392b7c915aa731c943f49c24f189055143502cb35318432c8b89bd2b9243f35c4b443ad48126207559a2314a77bc67c4d79a3e010fa1686761509e6774bc2df86eec6c5e3cd547f9a5457fb4a984590e57ccbbef3b38e441235d90bb60a24a691425cd65bb43b5868d128e3428b446409804a25333a7ad1f5c6d712169f660798de5a448aa393b5c496db978934c6eb001112440784db13825167a33206f76b05eaaab0b89966150238748c492379b387ec863fda621ada4296fe16593358ca0ab83c15225dd26691da0b00554c2398a2c44f171bfe63d48db72ee6cf36f47dd054b8f7bec5a4bbb6b0d62bcd24a3b8a6d32c53a51bfb7c57ecf +result: pass +ciphertext: befe323a205445d0b526d8169b8499bb6d5e557381bd3dbd8fccb9705743ab4df3d5bf1e83f78312a87d74389813f2ea4249e1c56d6727cb6e1d6cadb74c331652284c68d81087a237662da796bffcd14239e03d2e097987476f62c3757334a724d9b9518dbf2a82d06bfc12bb1efb86a1d68e638ca37cda0ab9fe2b0bc0e54111b11bba4ac4023decedcea63cd038a9c0a1ea66968a9600943b68270e653a38bf08536dc6f8a7f67fcdc4580c08ffd0eda430761bff7030795107a83ac82754748eef53621cdd138128d6773c411ddbc635e4851a11f4f01a172ee11ddc79a525f2de9f2831f34e55b679a21fe5cc96095837d863d515b257f76ce9d588dfa6267c93711b98b37d9d2a4222b250b7a452102b2f3a33462b828608531eae54b2b3688a68443a77088b93fc16cb7e59cc86705b371689790fdd47ed4699d959e82cbe3c90209a54830c56b0acf1c20b2685eea9c2237d2ef573d8739bab9d4f3deeb7cb4320ca1856e1ec8759c23bd361c18046fc43216b46269a076bd8b02f1847e54fb6faf7dfc73536a2a06c9817c022814a61dabb29d6222af5dc508c08999136c3631e33a09c485bf6ee6ce8a89ae9b89ae5ce5f7052291f32c7d18e1e082f1a5f208e049157cf7c3d5c007068fbc74bde86631089f232a176c03cd596732a00e720900ceb6e48bbdb4221fc7fc414c81e699064f97129aed58229ba7e1ca800c759c1b5a16e18e6744b327990d087346d70f535582659c77ec633756b999075bce6e996ea47a0e6b5a889173e9af7ef022a626d1037e8e8a6a4ccf10cd84440419a95d0fdad3a3058c3d308f3c47a2d79285c97ffd67138e6b44b3ef332cfc5874764dddebecef283ebd31be660ecfd8d5a4a5f540b6e297cf7c296ff88790e64886938f28b203317dca7e870f7f5c115910e250c66530bc9e127c3c6efb5fdbaed54d25c2c5f8e07f4b21edf148ff413066d2fa44aca9efc06609914b1dead69a60db93a3dae76ca9a588be28af1a5700afc4abfff20ed9f6757c5b23856e91b103daef0b5416d7e31450a0f85470b5954848b7e21e982fc083cf7eb181336bc2d91a0fb7109bd14a30e076ff633cd6a539b0fff5103e5bc3ee814d9365cbe0c8915e5d7fc6a85af830840c0246cb348e7bef496482bf3127b04ad2cb151994bf0f3051ce41bf7734cd555bf1b41ef517a1918931e2c2a1118aa0ce30475d081a8e36b2928cb83e86c7ccc3ab9231fb1fcc227338229f16cef4f6ae922d2310e35b34d1be490ebd8e91c03beccbc38d264f9a62cf8f0dfcd539ccd43469d4c8e6e088a8815c14d49a69e3b28ef990f319113b5d39d2b3388a2c6b8daa788482b78ca6b24a6d64cc7b0def3a3aeef1d2dbb8692dbd82a124638cfdba641f0d9c7d7c45a2593a4b46cec98184fa3067970c190e34b135d07328c785e489724ba1576e5768c6d1e2148e44168dd1e91647b8613233fbe9c9d4021194ed8936fc6d3327cda69c02c3cfed6b40da3a9784f4ecb8561f34179a3518aa6228d37a9209f502bf518f641daf5147377cd65e20152346151d553e748a02c498417cb2920c429d3251ff6f87eb6460cc5a70866b52084ccd68b4446032efbffd3d87c6ee663a85de4c6221413efbd940fb2722aecaac71394f245c5e29973526124bb1dff567d3eb734789ec4f49c5c4b96142f0de143792f15df1bdfb358eec7a5916c9bf22aade6bf7961c6cf4cfb33bca6e0975311e75d3d90a1923ea440911664ea2bcde517be31be414312ade1604b96d443bc4807af3c75e431668a95a03320d19785c8ec3f05413dd52cc18d01983c70e9654abb28fe90b795e8f14dcdd44d0212de2e6f9b3bc21f5ebcd50ff4bb5daad6fece570719d0acc62f033304495abd5cc6dbb47a08b1e94480ad4e009ce4401a10a997c981689f3041f8ac66d75fb26548a4bffd65ddc42f3eea2af680512bfeecb605aefb4d210014682984dca65c87567193c580db8f9e74574985eb71f8db1172515d25089dbc92a90ea463622ba1ae32d9146d59372e353948495c3dd09b526218834a064ca56a041bcc4d2f6284d3d87c73243ffb436cb3abc12e36a8805d15ae524a3c49de249190f4d245d67804344dcd052aa05ea1cc9534e4f8b9efbaf1144272fd82196cc6222622425e202a104e6cfefb6cea45cb7936aef4cb46c0c0fcff6e3d0544fc2ece9524f5 +shared_secret: 25c89884be152d8641686c8334cd51a4477be723cc9c0cdd6092531dcdfa76a3 + +# Official test vector 74, seed: "deb963f8b1d8fbdf499d564ba8d2d47915bb402da02f17031b37b4039a842afb9b7e48f37200605992bd2429427a7a4e" +entropy: 0b4c3cffb2ba4380ead13dc0d8acad2356b448a810da1df29f264c44aab6d24f +public_key = e3658e3c8607f9775ea3b57a481ca307a36b36780efd410873f9067ef06a6f75b2f695620c9753f97b167df14f4b59a66ee953aea71abe866ff3e34cae61b53f5842a9ac3c811abc36798059db5a51bb1a003b5687dc73e279236e69477cd03c5143b6e22bbde999379ad131215c9c46e37376402d434a58f4ca4c5249c537b15937c38282d2759a45243ce36d24eb234c5bb875b2594ac89e51564e43d2869edc93cb2143d3f72c6d8672df16a08cf94031612199c224e25bb223fb646ac5997b806adc1bcbd49a7833409515c05238aa2c3445a290eb4e4cda6fe1e61fefd58084db9ed675b608ea1bf660195c226a6b70cef5a114ec584903aa427a34c4f75b7d0dbb4564c72c2b252ea9b99173659ab3639d3476332c74aebe0b6656e3cc3f99206406718e5718e76bbc2dfb8b409780263851db783979fc5ea3e4a18d6383762c6d5f782e7333876c10414dfb4548296d33947590534a01c399a3731ddd4c882012bd0b1448e066c528f28c52d3c34f1ca1e2da234f571ae9921084179a9673091555b9d671aeb33a3c41c22adfaa8ca800b92e9401fe31b35c311d7820284fc534c928bfd575881e5678fe81803ed08041475b0f4a36c7644441a067cb35a633a2afe385ce1a1b5c4f9c4a1580003d1aacc548a4d5e7c94c6a4799cb843fd4c6e6209e1eb1a71be32b501b004ad9c0d7a6b44c2970140a021416483dd835e7987b779041aac46806a1a538152e3b716beab69a86e5291b431b1eb68105380df09758871335be0735b4a22de2c4593da03679622c2af78f4d888fb178098486602b743d72f25a57b3533623b57cb905ab499835093b1c4b9d40d361fec791cf82a17417981ec713514ba50b46608c1307b7939ad5f9b1ae47ac2f0c76162161cf0677aeca801504512433918aab949c078d46399d873b0a6e9987e9aa71e52c5691232b8bc68c55508c9bec555d17a6293525d297be94559671c0209561c6bf7859c3469772c25e0863c16c9c4aa453862e52ab3ca942d887c959850cf4fb2afa3420fe55660c22516bf8c940ebcb1ddab9a36a341cc144a646321037c07231424e040ad92c706d254e56f48012601e0de8402221711102be85f54d3bc513481c1e2ae6c50a022d056967c6b032c99ba89070847bd5aceb4669619c71f2b7581736726dc800a3148bd2871d8bf60708da4cd13b8822209bc09cc2a88a43defabe6a24986d697fef253aa91525b3a3cc9f102c9ea158c699745b03af77d41d4df72be7fcb6b7130f308bbeef6ac699388976a574ee1a74e84b48649bb32ec763227584ee24c0248b7f5096c72ca172d2b81982f676dfe44a896618c77393475521eb6a6fb8ec6e153c72d7f8c9067a765cc4149fc58777974f96411739168deb8a6b0e905997563d7f13590ab30173bb23f7b7440fcb6db8f910b12958e0b62fb6f84fa5aa931b118ab4f1ad6374a34721c053224b04cb07982988fa3a569ae9342953165b012f31728960f89d589613d07a2b16c71e0ec942a812a72cf90ec9b23118a59c6bf7c273c6163a8470b18c8c2ee76f4d2975e7d79df7e80e759a52e6b689ebb7bbc7abbf6609560081aac3aba2b43aba545951427cc35dac5cbafc7d394bbd57a2854e84b5f0f3059a94b35f3b0f1ad3344cc2a40fb89a87e091c9c0125c0052e8b28cfff0c3e0390967e1364a4ba8c0b77a7fe83a65b76255422ba7a128fd4b3c8ef85fcfc16f80ba5701c9a48ca230e455b02b28641b98a67a851f31621733c0a779170ebd690111f395e7461127481fd8e1057d35b6c20b1f68322e72e92a2363825566445544995dfc08ccc492f6e19072e398bafc32eff92c7e229f87d1327bb1884cd04849569c415860df59646ec59ed052bade3a0ea6bbb8e9d924e6c43aea22cd4969528d50af83b977d4f8681fa52ae6f5a60ec1cedbac91b14b70d46c5ea18551f288690c3aad6428939426326c54a80b1c6281d51b3d47462f18c6c5931c60395a1e74826f6c258f5622f689c4b5470976a961934104b41100142854bbf75d40d09bfd9a0e64575a7546bec19108770c19a7cb48208780e1c657863163022c910f071c59f239a23cc9f1697cf5177f88e7580df8c925b2c405a3360d0a80a6ea1486136faa9c48aa3801ee87b7cc5c638d67be57548c03711f9b2b31ab319d45c578e5acfa30dc426ac3b194230a4bb5ee07f4 +result: pass +ciphertext: 47587ab04e0e551845e526234cf731036de9817d48ec4510a84cb183e70900d2ce322c999a9d08e654d466beb2ffe46ecd746a91882bd73176f6077ec0fbc4f51117805b7541fcd988faa8d02ce31eddb953410252ae9caa86e2a5d3079ba87e986caedc21c12944c88401435ba434bf0770446a6c4ab115f22095592487f89f38b6d659e9c800c3c901c140b6e027a5dc357ba6ff5489b20e3fe72ac7ba203b1655942c663cc98a31e7a745ba46ab052fca73acdf9f898101e8eb8f4d08a8f6352911e90f072a537d29f512ecb10b6fee65b2e4d8e529190df6ae31d5989c62ec4863513f28444f470abe04f95f2c0e79891710002572b43ea8de4841f13d72e97eae417254511bb4c69bec2040887b01e2f4991c52cf5e165fd922692bd3efe666af3a5e3f3ea046d160dbbd10e2859499e6ec260dd4db9b4b706e889a699c511ed02ff2a4cd562ff56039d4876573a6a380e77d87fa880d5d8bd7c8f8a42e97df4c80135f8d57d300736d9bd9ca9e8e9849e8d8d7e48a6e89ca52a6859615b6ceb2b412bbbe4ed6ee4c9f5c21c1574003261714a4ab95bb2086c88c441cd3425b6141a016d582269c2cf6fcc40f5fce13b7a882c978119e0c839c7a0129550155312c90e363c7ba4276114200a230da3f2ea0bd3b8363a73abb07d3b31f28100da8899809e529ddd346c78a9f017408656c943bd7a028322ada4240d47d33c84a0ef2bacfa1adcb71bc142d0e6c652b1549271c9dbdc4330ebc71581c1d36274f893429d08cd966e4ddceeda95e3e8b2e79c4760342dfb8620db4632fd20b885e96d07af21d603781fc4b39c7ff245b0e8c29dfd0b77e108a1ce8f42b5ba5564968d7cb77fcf3f5bc7ade80e6fd1d6676edcf06516193e481d3df21e36fc612e984c63a1c44d2a7614760f7b07aeb9be403912f8071b1a8c2b13d1bbce9e67ac29896cbeb5dae6f87431b39c55253c1b929f837d74d053be5a46d56880d96f4047a271861e418f870efd8cd26b351a4c15d7f9633706ba8fb5af7e967715a8a94916af9a015aca2331c77b95546f48ad8c8ec3ec00c048fcb61ea5af8191e617294e92e5ceb7a19b17f7af42fe9972e0166395c812328e59042f3f2790fc85106cb87ad2b318e201ee9a597f0cf982cf313196e02a5145a83ea1a0fc8054b42ee6d32468528232240fb914e0178544d6d200c1172feab5722290195444af68462057799dccf6c5b2b6a5add344d66d8c100b9c3ad1654ba1fa424c0a23772dcb1b60d64c624292b24efda70875ad9fad1210c80f6ff7478d9a14926da1875bf614eaa412c14d01cdd9e790d9c8488edfd005c9d3e1a034030eca417fc99b91a199cd3dfb4b52deffb565d4de0c569d92605276111693045fd8b3b3a84cae2a4616c6f249a06c3776e9cb4a59bf40e64207f180a4807220115e139c23ad7a3573f3012c05177a4511dfecfee943b650ceb60e4000bed6acf2ebbe270198306d079c9b6e5e5fb1199dbcc01e888943e808f414ff3704169c1d5870f5d0001ab5e844d10a8f0562103b79947f244e4eb9cc03fd261d9dddd5fedbe4592dfa5cba8a642195ec97b991bb52c129ab66d428d23a2e9070968604772783c2a4f215169f7fdf3fb38df8434e28f02b96c61cd6b86cf37aae45f637b1ef2aa07ad59899720833bd64eff30c485a8629a6a416e577ebbf9e770bf3ba067c00ab935a98ba543bbbb3cfc1e8e1cb51be7b62d1c8d0a5fd56fbef29a23815e053e16b5324312d060d4b1985ca0d855ec1dcc61a755633524c0a3d685b147c5a5209317a8caf4d6c22f549ab539ff79e32ea1f04e0a7ddbfc6fdfd0fe4188241f576c6e818e2156d64188a64548d5b19559702bcff4bad39f5af66723358804567bcc9709d0d4ffb402b48b4ebdb79c10400d43ff175df89f60051d5c1b608d87671a616c9589e76bb6156f6561cceb30babc2231147c7e7d3ca1756d02a401fb6412117b0b6e9a9e0f6dfe9982fb4c736b9996c16c390c6a0ae174deb550f5486dab3b4c2bf54c02e7ff67e9f3f00627d1e9b4762ad6cd629e765af4b026d470bcc8cc7d55834527ad061a034bff65afa62ca6b8e9a9961721533f318050e1ff4a67091fc298c9a685b74e035b2aec08ab44bb2f4c4e30cf788ab3ad83e488a517862cbd9e62c20890533af39c006f140cd24b5e0258e7a7649cad69a86c0bd0e5378dd65a +shared_secret: bdd73d5ebb59092071fd710a25275c1dc819f549b5cc34b6f8353d13be70189e + +# Official test vector 75, seed: "8e2995f1b3e43853b18916bb1212aceb05898e2b177a87abeb928ad7184e59695c56b2cccf5db80853c28a525e327d13" +entropy: 1c82471dcdfca3a6942061ab4f3d5bf0d197321437c706d9cccccce449447002 +public_key = bd8557528725705c2bd05331fbc20f5560259fa82d438392c7299463710357160f985555dbb2ae4438310e3879982b55f03018c17101c2556ec377b15fe6507488052cd2360b52b8cbc7856c8894cea237e76214da481ef0363c877294399cca9e38c249392d61a2772fa4bffd98165d24760bb90ce22614e892a9c7f350706427ba2257ea7a1304029a6ea715bda9b2fd682c6aec65f70018c26c3a41a30f53976ad8b83aff7268f6d9b3124a15b94528024a179dd24b8c56cc8605914ca89815f943c1c568f255b757220ac606d06a1701457b057ca323ddb65ef076cda0044cac79455798b501463d38d24cb9c65faae94410f79995d917c49319e898aad54c620291491f96362d4792bc3639b6551e5a8b7030e9870896ccf461b65fd82ed0f69dad10bb60805c553a1a195336435303c1c8834c3a25c2832bf7b62e1b50c603951c12ab6b74eb72f4b15abb5455d9f681a0d5a290c0bf0ae79b03973e3ca80d9ed283272592fd0a64938c26803441dda5907be52aab1b9ae14b62f9db044cc0c2f5f48f0b8348a6b26631433dfb00b180b721910b8fb533cfe4a8be1d250d75a9cd492ca059fa115132ae5463577de070c87944bc48695f3b4b04014e9dc29185446e4683ae2cf5b9b3ac399fb6c6541925075b7bca7b7326861dc105b3b57ab55a8117ef69b33cf79665663d3355819dbbb235f9693d7c0062e5293c0a32d7342c18648500f8cb3ae925c530b6507418da33a819e57897849bf3f36f6bd68287f7cf8b5281e9e5af40bb5f76c63d4a14cfbdb8235c6a95415c4aa157568c34ca9f58b3991a756bf5ab9b658d9464ae207206d9d2049d9145b7cc59261860267806a23aa513f3c39cd7aee8e71ae4b3a4a6ccc570f179148c2aa50bcdd612bd81f8206fd1334389b9a726208db920944530ca839f316161b89a59350b2220a4b6c67caaa2425d78da2a3b454e396386c5500f7726aa38530b881640a6870d2e5100ec0c25d5a39bca206ea5652b55a8a31cebc84fa62f2ab6a57a2658240a0f14841e48340cf158bfc639149921632047ace0cc2aee5a3e0f647fc0c671f648c689002d98910f78b34e80c523f9073e4e4c9e6e102818e996d3a30886e7bcf18b69d2a16fba1181610b6bd248035cb90d8d440f6d4729031b21a4e1237d710bddc5040047745b231a22246e517a76d76a0ee7985ebc794fc5a51c17d9a9e9acc471f89cbe260df5c4676d870b8713bca53a400cb9b4fa6c36df97a023ac03b08c621e7329635c2e9828719203852970c2fd557348f5365cc917fd3ccf71d38d5d96336026c7d33b885526632860044237b4a6b09ad392414b068144ac67972b3ce7a25753f631eb1a03b4fa2e9f553302a22eb9c721e9f2bf74a06673fcce5bdb77eb4b525d63906ab2c4e8518322d3065121a20546a8a4eb45f85881ce25721b0058c2334ffcf2946c7b9d6ac05806fa778b2041bad1c1250883873a95e3d5b76a3480d8da8b48683c5db2757eab9193750649e74440dc58a56b3ccc27b2a8177bc638b61e0136a215c8079666c77857018784f38bcdda0c56639c03196b54cbc80b49b0aba6f6a9df352cd09c5cc6e05f62e835f7a125845bba2fcaae4bf61bc55ac98bd67763ec0214cc1b7cf91632960c9ec01e0f27a97f909d7fc2486d0cabfa146b72baa14371041a5336c71305e6e68a43577bc1665c0d66c76a239095e13921c00c4ad11cdb69050f7857c3a1b70e2a2152ebcd0961a936f6146d6a58305086e934061ae32bad1b894cc27949f280320401188775aa5078b1497315639288aa2f1f826b48465613a73c5301383b69181cf14ab3a05035a79de39973ec5c1fc5869af11320350c3c4208cc68db8943a017215b72b3353b77003fb0d513bf677b81f66085e8205c17cdd6b603ac98310c9a967a7b99b8d3af10b66821612333e50d72faaabcf93612210572e6710e482702b17bed5abb5e4a57baf365c39b59dc7cbad13601de6b40f5370a49e5b48c9580a0c26195013e6b6889b99b7ee5d93fc8b795cc62a37ccc5e3de2692ad66e903c74bcc45ed6f16a68ab17d8e5094680c428a242d2fa247985a0b7d7a300f70e844765dc30437d032f216a8d99dcc54da34c0a4c25a8a120b3c32f45a3777467b1e639bcff1bb9839b6b45c7895bcf62307460df309eb4e61aa9cc8941418677001064ac161a607e24e1 +result: pass +ciphertext: 86bd45c7f9fd03921c702aeca836925f7f4b3357a938b39e06cf93ca6bc8fb51b72546182fe2108eaa9a3e2b3e182797e9b2cd3199bf716a8d797a4362cdbe2135197e5348a916f1071ba69b6034a81f145f242d8011b303b872f3a65ddf91d244722d6487694e0834c59bd1262eed11131f44f7f7725527b662f9d6fc872a290d2887486f920d55ee53c68e764324a9141b1e51d83f51fc41f775f28102bcd79e6ee8a6cb7c5ae4a4d9ebb81d8128bffaa3089d3c8a28b47387c3d128feda9e3bea9782557c62890364f1dba9a9f40f3151bf2ef0614aa3c21d20219304b4ba0033f1da2d7ef2a986682aebb48cc2e414e87372b7eb6395e12219b9787ea6337a866cd1b57bc1f92b3ed07b95af0949ed4fcd5a68cac94cab44d41d8dde50b4b952641f9972519943a9e676ae8326b244d9ceba9a777f133fd61e48ee6091181f0eed4fef74ea084d7ea18e1a5dee64c2fb45f7a79a173a661ab047a965e5fddcd09bebed7997aaccddb5a428050ffea4a71ab65a812afe9216adcc0ff0bb452ce4e05350499bec8bccd91d29d99831077bf544f45d2b47ed0528e9a8c70c75a6172d8a356ab9916328076ca9838c9088a70af666bca5a43a854b0ac6aa3d1ad17d44ff57d75f3536b55b30f0db350b4147609a0b7697ede10b73d1769173dc618cab1ecfe6b42bd0d4417165b00008f7a1057516bccf53e22a911d6f025ebed8fb25358e4df02c8d7dff9969f8e0cd317db8c97cea03bbea44a3e54ceef4cfac42fa7787e993ed1168d63766323ab1846bbf80231ca255c47c69e102a5ee0d46c76cbf440edaf8dbde36c5d1977a692ed34428e73a4b5229b73696189194c813819724d60ebb1484a805455e938b74790651a9a4b823a6fc1205c1e96e306c4ed46b16e19db187145fdbf22c37ffac2f754ea752b816645848965a5afcd4b51aecab597f959cf7584b919f795f921dd5fd4eab2adf52f4582dc8849eb5a37f171920413dbd6a114cb5fdae452b0e16353dd06716f4b24b82deba79fe3af51fc98c7d417ac5e735ce3b19add258fd6e0ceaf98830e82e273335aea870e9744505713a083655c1295cb6bfa26c07fa2b8dd8dc97e65955e2001a64006c62392b97ec5df62c88e3c2debe1735c0dec98253e7ceee437ca1541f3a73209b356fa4b2e38c3569cb268afb062319f05a8f2853c9f081c5185386d5f5d8336016802d805c536a72e13d54c13aa3c1e1bb79e2f0dba1c143bf4d903b18cfa956c2b5276def5bb0bb4b5f89c834bd19e8badedefa2f0274e83df07fa989537ba8b8cb8af458f7a02bf44b269d6556dfa91ecd76636e56730e35b07c45a9143afa4cea876258caf6e724d7fe0ae0386b9eb3f2c45fcfa31e8f9343e771e8cedb9771fc864f0a728854e3b9fc4b04c30f8c8adeb13c6489b66c5f68aa5cccfb25771b666340747d0002bd70f76ea5aa52446f20894af51a9469f49e16723ac9e0602f1ab9297f072daaffa8b4104264ae578c1e3789fb405f01b44c46548944a46c87b3da0ac08493fc6e0239d86568b1132c2ad430ac0d76bd2046bdf31e98b3bfa83eb29ff895c05cebf28edb792e7678ac7379578c1b6738ff0ae271e9de818f7071ab22798fbffe9a94e728abbcffa249be1f0aa11bb428740f2ee39bf24858bc583b1aac546c1ca09fbc87a5b46df572be14e6fa9f6abc4cbe3bd41bc100e8a4d2e73e60f5251c931cf133d2883de857dba56c945b6b80a8872ba0f505e889f9033915912642c5cd6be706fb39100f3954b93498f19c6c880215f179a331859af35da03b3de56f3c18fe2f2bd84ac483aa86fca3698f82ea27c15fa6c844e225aca5647abfc0747fdc5570fff8209c288d01c7f405bbd4d2da146b79c4e394f999ca9ac92179680943a62fc5b7af0e4cc71fc15e639af6b70d4df4e2cb2c7382436cc62ed422186e5f88219571786bcf60f3efd119dc9e06d2cf0c9aec122072658525f86ebf99579e5733f4f8429bfcd75f0ac58bc9823eaef89deaf510503b51af131a81a58a7eca063c310cbaff194924e98c4402beccd0c7e83c1233bd87c6b32039db84d961508e60b108fde7ce1b5f74ecbf28362c1db18414d66a75742c5f2d6dc3069960cab26d2447d7fa3140b017bb3a4e06a0b8183873c4f79b54f9afe05c7885a3105e49b30dc6beda36118f074af630ef7766a34d2d14568eb02de6 +shared_secret: cbd7e4a223241e16d0527cb926ff8a4c945f11314f238b121a387f9aae140632 + +# Official test vector 76, seed: "9218943c51fd2de47e509aac67eff176795102f37d7a2017e3afd768fcda7877af38739b00fcdf227c2fd62eb635942c" +entropy: 46fe60a18124125ab93e0c578f1c02f1bd1301595013001c7f3c2fa56cde294e +public_key = f7a1521ddb8ce3e91a2835a177988a4e856467f6ced236ada9bcce8ed885b19b862b952cc8a2269f35826a290a90c170b7f9195f816dd631b1ce66442469c42a420fad3970edec539f11826a4a917ab105123b4c14087f7b2455202a5455159e828cacd84767e5b9c024f4ae6d37596ca7570fabbe591082de627fe04a97f45409fe265054bbb57426b6cfe71825837b4be360ff7b48af3a7226525b77c450cdc4a483a17d77e723c8b1282bb40fb621731fb504277ab50f171bec369818bc3ec22126f6a47ca2937f907890c7815a1e115143f62f58550a0459ce7e04695bc7737787a972321578222f5622449010287ab844e624699a1ab50bd872cb29bfd534b401e538c51c12dd8c467a14c24f5c9856234da17ac5fa28870dfb70565ac954c440db457214016e301736520b5e15538e92d1cb205776f849cc0b23211e6a67ad5c9fceda1577e625bd271587f939fb3acee14135613592a7364534c77c2a1564151c12e1c6a219b878180001e2c94053ebb1282c5288a707ed7b245f15054d87b901c939373244f776ca51b3b9d00628c9a8165993974bac2c0b26715ab1a1b9706e8264a0d210a0e627ae60b59ba58a4abbb61e93f0cf31230a624591e0d1a368390205d6526889640651b7cb71c26807b11913056629914fbb1bc2545b55b2610f992e73812e82b73d10a541a7c8621a4690b2c00149b5b952e91d992c52e8426448e5936dd41ed7725ff1c5bb54803690e7b642805b168829ee5696b5d51a13560a36409a1ea41f03ccbf6bb86a1b205bec128ef81c2af9701752fa54cb3784081b5dec67bceea87a8864bae5bca2aeeab4eca30d460b4015870c0187b2519783fa030a3774277e018274775ea2ba027b8624c1dc569416a3117b57dc5b34a1056e4c9b1ea54b6e5f55bf1cd3c027cac8f5f9b9e4c921d98692a007ac22c6b044f6ac9ae5acc4aa3062a348eb2cad9e77189131bf56aba2d86612e01accc76b3222b01d30b079ff5250e0869545641213c175bca181eb738fc7e80e989b43a0c4c7ba0b41404abe955c3c01859dc17b35f48cc39e9c6ff84625923c1229e9b7c3c2ccfa760c8808b43225ce4fc96bf0c0affa26aa43341f7f14aa37ba5d48798c1661319b31325d04afa0759c35153ec77b07d5d88050f5a1f55262860c94990460341c6eaa32055a480547bb0829d5c3398208018b4c098ac686f1b18870864e2cb0777a798c221a659a0e7e9c5c2936afc4897a611c55086330ee1689f7817f44a6c127a53597576f37b35b4f74c535444abf5342dcf256d04800b04361adc83a207952fb81caa20cc8dd07a6fe8864e562844882b405b5b4b65c948b237b385974a9d4963068c3e5b18c51d42a7a9211d4f274ee5208e530907db49db956b8e10977e2357223523a58b511fbf7993bba3c38a95bc0b98062312a1c9449ddc4082601780ea65a6bfb1467a01d9e326cd10a8e202320d2a29e9b36ad09c44127820d6d024b3ce0c818234f55d7855b0b000462b198a669bf924bc81c99ae0b32a1c21f448ac6084c71a59a90fb43aaa73266e69a077d16a8d1443de4c2b61c3ccc731437ff744b7a7cc3a02a948da951d5763f078a991cb64ca7b049fa1b1eecb534509aafe04437e5f84e974261957ba746705eaf4528b4ba3764816f45045d40e807c14c3577a25f75f69ccaa136ce627742e33db588bdb5cc339ef916d7a9b108180a637586da55085eda466e3c7734f85e6a903ef0fc91ce793910231a8f46a7e084c595177a501b390eaa818c0a9fd37c9be78160c7a398f0e80d8e58966140639656890cd08f7fe92fe316cb1e1517ae7741445a47c8ec3ff8f54f476146f1095f9973062bc17f6723542b0a48e12b7e4dbab100f3bf6dbc219816a76a3109ebba8c823cbbd9176061d072d57726cf12908747bbc267c59fa71f6c719cc7827b91919ca3793d03a73604e1c2c98ca2e99877b6c2b93c97965c06b2dfd71cbbcbc7c81cb56b36587a174e899306acf88fd2689e345a78657c5c0b65b0f3f8206e405dae4738a7061d54db38bdb2ab87e8cb6dc93f2ba0c11b65712840b740ac90ac3404b69cba2123cd335004d8e363eb08148a627b66b4142f66b18e460b59d05091640587212f4dd60b84e61f0db00ac05b15e83a6e0ed3c2bd281161cc07676e12ef19a936d073d684c1491518bdbd426eb5a1463cea8b67 +result: pass +ciphertext: ab3bf275721fa888504426dbd58ac20a234331510daeed10186073ff9e2d7b156caccc8acac8278c19968e136956b745d6ea41832eee321f9ed5ffe78b15638b64f4e467c8b02b462baa3e1a39fb6ce67a53699dda3848bc4707ad980be6ef1dd837a3bee0f2b5c1741fc83c6dff1fe486f5aff17f19596b5cfa50c48661285c395c5e74191f37dc4eb0d47bfd5224015e7b3443e2f41365b338d7806366059cf7cc8041d63c7867bf425b1468f2844b7c37e4a2a95f6be3f971002edfb5d9cd697a4e04ac19e00cb1bec5549a25ea22d581b2f7dd9fa57dfa570ecbdb6eaf15e96507a1f8eabdb5a56c93ec3b2d935180a26ce884e69e550edccffb8d5511a2a67ea30aec2c689f9209e11607ffcb3d3e59eb43e10864e45ceef642c74e065e671cf008efea88b0a6aee56e3208611e05b3251ebcb23f75ce7dcd75dbd3f393deb4a6cc4cf593f3c19515739d4f8fc3f567bb73fe27261c600608715e599e43f2f0fc408578b2ff7bf13dedbb9607e9fea6462cf1490396db33d1e86f002dd0ffd8c04c6364f422ce22c6a36cb379f6a8f75ef6af6cbb771b9a45f5093b3f0891a1c28c90577c3ca9c7e72bacee041ccbcb8504dc94d0e61c707c2bc25ac907fca7e32323f9b8056ae7b655587e77e3101dd9c7901f81472086851b78b083cda5932ecfa518547f23702ac75e09fbc45dac81c94817908ac1ec29aaafc197b9f743b87cbba8f5733730dec689648da1dfb24685b79b4a4b78cf9b3bb844fbbe52db29e96e71d0c2dcadf6a9a02fe25181e87ae45686cc857de917a7b60d6dcbb3abaacb2a6c6f8d59e1a052a9120a85da873132ab45dea2cc5fdc593513e172e970af99e73b9717e2e2e85e25081ad945ef3397d7338254a60d9549ce995518d371c0c672331405bcf88d6b3122eb55f876753520166622e6176436a9105655a1b21468608070a683bce0d9a959553a348591138c414f40ca3b7260737d70d79f5ff67327cd0811f695143f48c2fe55ecbeb7b66823251f97e7ee1689578548430cd832eee8701855c9a15aa932290fa9e19c688be321c4136c2dfa9fde8d7ad97bd1fe0a1829066616f312b473c0c996b50fdabdeea8fec2e88df7d7c8532a493baf9df9846292803fc682bc89104dc1f83540f3e621d0d8c348f0ff85f11a2d0d0d702857d1a68124ae30ddcdc38d38bc351873ae574f1c7032c524c87b7c38609840444f73c048a23abeee5bfd4027a26d2afe6a51460ad081a8ae98e881272c39036a07dd34b839076484b4bcde7ea5a0c4beceaf0d0c7e491375c5c8f796e64643195960243816a25f6f7e5fa1ec23f5b42c0b76ce60e581b53dc8933288486c400eb837f660be01982b8621aede8d15ab7570b6abdc9a357b338c681b208ba9ce8ec3fbf70994d5d6050686604dab7f87a27dc041acca71bc9376495ef033135ea27b9e3542c2cb980e6f6b75ea5740b1e049bff28b4f33f486bf8bb952762994df7c12b2907457208d700b485da9cec56362525562f7b967725a506d0926487f2994cbfee7f4c945dfd228894dd9c4dc30985bceb0fb4aebb36d8a6c0f1977593beca4834fa25b24102dd56623e725e40cfacd5b058dd7583fec862b5dc44ce3ed116e24191d342aac3e012285e511d4987f0183d032b37d24c19f54f35944a6c131f0558aa4df636ccc1283224aecf4c3f5b77b7a5db6405a51e060c960c87ec15cdaf5e080a089dfddc90ba709f6769c28a2be186bed959ae4b6a217b51c607f212213b1230e7015ef77a893e5816fdb1811317e321be94f2fa0bf398b8a52acdeb9059c37b65fb6ec48074eb376c522abbbe9f91d1e5661681bff86fa11d1130ff8e03ea5cd826bab22facc03ace0c7d66e0439f58f90790f1de4ced6a69b21af46c09116fdc8cc439c8e64d83d400326202921fd5300a3fc4688b9bd2fcb193d91e460dba2757a7e6f8d98aff772845df9041ce5ba2bb3e820b7af7a77ba40d0330bba2d48fe5d7ae02e3bbd01be2acec545f003d02e7601ac1ad0cc7b696905e420202ba9cf8afa16fb199a920aa8f95115ecbbef6bf031baa16b02ca8f390aaba0a9c13f9742b3b7ae7e9200307b76b79108022798a4a9dda95bfc45992575bfa04f2c69d1d887e95486438b6b19c51480afedcb28712b2ca165c942af6d08b8051222e24ae7b22dec5be1843529866fc2a9ee3af64b27a30f +shared_secret: 7849697d9e1c731b82ee49f017fd67d6bcb906408a9b09213b075f6ecb658387 + +# Official test vector 77, seed: "542e20078add5296050af150360f057f6b9ab3ba835589dd56987de805f900b906505b5390a0d86cba28038992dfc59a" +entropy: 52fb7cb6a633fd2e83f2892bd9441b48fe59ecee6d026f5246fa7f2a5e55ee3b +public_key = 6f161381cbb8ff776b4299a36c893aea783b541b50b2c253c088683aaab40ed421eb113add58b322fccacbc9aa91b74fb0657e7a2706ad9c7c7f7813be9008cb07980c310f47c764b4ea496af60e8e6a534cb49852a2c17b4c7bf096c52c72264b7855b7a5552aa93d9aeb47f5ac34e340a094d411cb2cb962b90588a1b32dd68b662060ffa2ae2999525424114ecb4905a19a1284928ed8c42a2c5461520437f93d3cb76502201412a65983dcbe4c70b9f9320418421962005b39ac65703442002d52d18a83b08574895c0eeef19bfeebcfcc7c308f960090e9be93a01c36044220858f671bbc04f1a7557897df2a51adf85a0f7b25f1480089855f1a150bd8207edd0c63db7b99497aa03eb33a8068067d43a24957a20fdb6e11942559087c3ff343a2f5503b33756d55c9b9f29f6fe83d80cc3cbe9a00e8a31d0b986d1ef7635cfc1cde434f6c826ba5445a5933845d1cb8047a8e2f263e1a86b4f58433c5318e6b86942ca92cae767e2cca9111bbcd8b582a81aa5d22aa29dcc21f374a96e55302b837aab8709202141324386ff7f9c7d2ea068b057cf6954e6a433a5502785bf43ec8854ee7982002c703a0d6c35ee79a316a1fe3148b0d933fcd450829746c70e26d5b7b4792c40ee5c51b80cbba439c212f1c66cd619408d654aacc9c1de097a9d03478351e9a377e08710263728c08a71ab3db7f4a50774f0b99c8306f7d39c1aabc4b4bd64356476f85d6945a404df00b2da8988bc9f6b34579447dc3bda9d1a686e2c8ba67666f179f77217daa8cbe47a40b154c16a773627ab06c66b5c291b8616bd675c0351db13938c0a22c874b33d7cc128113642ad1321e5520a636681ae188f962a793b072badc69316b96fb591a99f53ce160c1c9e56384925afcf5c2dd74069f89580b3c18bc15ab0c91578686cf801b25c56c3e37847be52b5869c2b3f03b9b5b6ab0d2b5043e56bddb1c793d2c0fe47544e61c12ac0771a48c8249b3649d77ad9a4bb5d20c3ccb0ac05b51a0d1e29cc791677693b2d96b83c0d599e46b238063c50c7c101f3b3bcba18fc4da9d71b23dc133148417c2f4369b0c92855e538245f44496413c741282f5d7b1482167d90536b89165226aafd7e8aee821b22f69b963a87e4bea84d5ca3040464e7293b1bab723dd393ee3606ca2940431502f56183cdad305ea19cc3f3974236310d05220f233b383c5bc97ec1544a8528c1c74a6a48e9b9b31097477efa632baa4bc6a8abd6ceab5d774bf988b7d708926275227be2c416dc90fca4720437425ae9b4769443472e2b54ad8924935bc0f65a4740699f2051c1e53153cc354527450c8909366f696c8a323a300a28388bdbbec532afc1580faa1f7821c5a6988d8386265bb9dc1043c5ec2a1c51a35ec910d80a1a4c41755fa669a89e05de79b331bf13ecf88bff92ca340d5b961f446eca336af53a95173cbddeb643d4831c2f563950736fb912bbe370daff28cddc319ebe86958fb1794a97001a14df90b01b3aa0c6e952e79c7af072905f552487bf255e1f61536dc93824c7709492bd133516ae71c1b057cbce6a4a3d48b0744a5ceb1604e41a378e53a9afbac28c3cf97b1b03b31797c40654fc23666c34f77207639faabce69c1e98262ae22ca956bc043fb6748f54310379e975958584579fba4bd50e04b739020df78849aba007a4a23da8a18d449194073903d1a3ea4f43e0e76b299c233c5fc8534d831e69475ab6b611ab02da3251fdfe6b92475041f7814be839fc39bb06912799c553b4647a7073482980090c2c9a96b2866d6d8b65db1172bc062f3490b708b239fcc8a39e8175924c930825916386b463b645b4832bcc399b69a812a992d09d260cfc964eef5c883027a2d44743fd538d05b3417a26974bb639f494131803b10678c725a389aa6abeaf83bc947c6a3d031487488c72b1700b76f25f42ffff6595d87426b67258fb6b993508189e9b37f16c2efe87e3de705ff794b0a50cb7d8bba4059ae2e3ab4297429a3122c3e0568a64b64a401aca8ba2edd807dc0c0656b60b027290d23bcad4ba71de7f9989cd85ff43a1fd519b7eb40352d85b940208f9f8596f1946dc2366736a345d9c7501511101e81928380591c19868128a921e56383d12f19446577783e0b1665396c56cc9046c4c7c08a569d8edf0b76096e3c0643e13acf3d522c782871a1f0b31cf8 +result: pass +ciphertext: 43caeabbb0780353630265f7ec031e271d21eb33a99193e5103482cbbb2be9eedaca422f46f1467f31f75e4add80f18ba0bf5ba8baf7f2e1f3f53a10a49a8744fbb5dcbf31fd72b8e2f43a3ccb1297495d690dd23c0cb128a080321ec598f9b10633d3b00fa818d199dadd8234dcd421fee4720e44b5b090a844fc95e37bc7e561507ebaea139fc9c2e137d6fc7dad05532bfd714a50afed3e10d6ee30ea4b53be87a81a2edc6f41545f1a4c4e74226371b513ba31a0a05123882c8709885170d8b52bde2488ef13627d3168af330a914219cc1c869b83a531e573025839676125100b376d6c7e19f0a8c39a84b7942a8f493803ecca439b8b0d6aa984092e1dbb44552bef183812235bf7c1771883e56ec1064166083fb23be4a7a5ddbfa743109a692c282e0be159447fd648417801281944a32bb68e39dd18081b9c2bfdc2828fab3089023acbe74ddcdcad8ccafe75030dddef45a3b323eabf4b5aa07ea14a814fb80ee16e8208fea7a21ff0ccfe155b5547fdb330c90aeae7a9fc63090e784d894b4dc25396dd989e3a0ce8fac844472170db804106f76c360f666860d50e4d9d2e44b32adaebbb84a276fd41c50067bfc7f158391ae6df38cbc70712d6f185558bc295135fe35781a73ad1ea611f33f465feb4201336338e37bbe146f966818902db5d9a8073ed3306b5946e08bf593352f9edc6e545d477834c77ae2239fb89b88650e1c3d7918426ddaef8445b7a32d6ea77dd761ec980b5167a3fa3613d5c7edb02227fb57d7981290ad7891ab98c1d127b75f5ebeccad787c9f6d2d7b3fe5db6ae2838bcd9ee58cf4ace6de6febaeb2062b1029751357733ca4946fe95c17ffc65c5ebcfc0a4049e55a9cd6ad190572fb5ab0d36244d01fe2a76ed4cf1fc6e709d8ceae012e613f81befc46810dc9b745f918d0587238d304840f7068c2c6f646f569eb5aa6c628a2ac4a77f270e337c3e7e809d83ed3075b9ef199fade755fb0ade87d4458305cb06a1fdcc77888fc772efff4ca7588499615e18aeaa17aeac591bb93f2bbf3d8b363fec4f7f62363ec2bbe9707664f5a18c6ff1d1198dcc42740324183a530b401b3c480f10531c2eb23b2b2fc9b4fa5891fe3c38ce751258c58e2d36eafa05b434b78018a91a7f010d0c8aec5460aa4ea0c474d888a7719c8fed5a1a171bea5b7783403435855b66f0054018271002342cd8927afadf5901500ac05f86c53f245210f54d4396053b5e4cfb140c9d850889f022447e947e039462f169dbfc6f58ce8a8aea3eafbb0bc57c5c34bebba106411e6606fd23a31e468e34677db5c4e9fa3897b05a4e9594dffd4c3c8f3957fec8fca9d6820aacd586d280fdb364cc83b001d5f4a167444fa461e9c37a131bac23fff2c500bfc4779bfb9e6f07548012df8af569f743aad0349c1ac04bcc61f949324284db3f9c84dc37e19508d5d9e4afa3c1781ea5bfbdbaa0d40f54e53a8146ef1bd01ca96fc77ef2f06b622dd645bfede60e92533b15d5eb753142cd2f845afbf41c3e309bb610b9dcd7642cbc64e9554b5dc09e3cec0cceb778d66891f6edec41e67aa4229fec60ae15f7bd3bc5960e5a6a8dcad120505c4071a722fdbf28fdaa344b132fa97f601743151eacb3bb04d071f4c566ddacaa02f226347a9368545c6f821293e6ff3dc6ee11c203e8e02055072e0cee63f0b062faaae446e595041561d57b5c74c6457b58e747fd63d7b1e9fdb12a1ea7c7c59a5d9df42de4c61c0fbeb55d946351ca5d78f41f5d569ad82766a6c386010d6e93bbc3b50cbbd06658bd416ae16bb3147a16131892ce84acd8871111c7e058f28f401518ea00abd0037d6be24195d0844e17dc72509aab8d39d2bd47cb43605ba4dfd475e603ebfa243ebd56a1f6544e705e59899ec3982140d8b783e523d54e2998bdc59f6f7e76a729184f09d780c8235456a595327298c07a146d4a52ab9f24da8c3bdfa6e77f0dc216762884adaff8c582a300daf4e3c8a532817a3b6c015328e6af6f948e239c257593c61da28d00b834c1b23ebe44a61c032b96b435d5a1648d2796e500600450ab459a1611b9dcdd78afaa382cf31f1adafeb6c49eb3ca4af14878d22f9ce1a567b1e502127d5f4ca85afc070e5f59aadadd86b14ac6e6076d247b5807e14b935d7b05c3686e47edf3f9c03f0aabe274232953e2199073d78ad827e77739da +shared_secret: c543e8af9ae37877d6df73cb7c52819c2a252a85bbd12ca9ef1990d73aedf939 + +# Official test vector 78, seed: "6a85a61dd08c0733fcbc158abb49fe0b0d96a50dcca140a2e9f5a254f1901985844613b1c656c0cb0112620591b88ad0" +entropy: 0f81a5f97082121244403da3feeb734f6084b314b8d94beb11627aa6ad1914e9 +public_key = 81fb1c51f687aa1438a329b100805f99f016d9119d2d06c1a6978569e7c40cab47ce5cacc4d35aadd89047a3bf7175cd8833540b8a028c27461d334b3f8680daf57313d7713a35075ce971cac3cfeac02774c3589c21232d5a73d959705be77c3ca0884f8a1c3a89a1059972f115257bc0ce9f13271fd73e7293bf944b82865986a5d56e6c9c825c83271f42908c0953fea66de4ebb820013fe9aa9522ab4ed66334de641f8e66766bfc47a7a5156c182c0bb3628b81b59461b05e3a11d945b36a3923b12abf8f698d1234593d0c784633cdaf09cf8f4148f6320b15c48aa81b1fc3e79fa4055599935e1076c8c1780b1910af4ac9652249b0c64c94137132a12ab62dd265334cc46a3444437a74b076039f39bdcbe2016d8402081949c8e6066f09839cc0adfb5215590aab10c51bb03b68701b0692d1c5c47c58d214b139b83562728b3a771f25cb7638077c4b6b2f83b11df2369ebe9b4e51f36be72bb04e1b591852aea0cc31d1a774768940d73801b8ba23f71c542c8c01559862af4950b7e21f5d4abc3a1104251574e5597076f971b46c370fb1858a1cba35353d29a23db9e756c57a115539824f5375080990b3835023f448a2314d08c6897da5ae35325f9a6107ad4ca05d653ba78c5769e51b368c200543c2a2884a2d504a73827009d166218a981189b5556b38df395ae007772c1222c3e2778c34774c87ae0931bd116c82ae33b3454808e07cc5c6d16c5108c155a451e046260067c6fb0181ae084588017fdbb7ae63e96321290bdb4b3867074e6e684b700b7d5b1074641c5702e287d257b8a54597667c1ccc702f735c30bbaa84bf405123602572962ed89c2d7a3817ac4879d1392f9199c003e63666f1cfc6f91cfc9386b18615bd36913f010270e8a4a9a99e772cbb994b4ca926bf8a04cc1c20c885d2683301cd8c7b381190b0e3dca0d6c33fdd49465fd265781a16fbb546e9b6c6ce0462c604b9fff09cc2d4608259284b8a83a877b9fb18415cd60c37b0b3d6a48c803a61b0a5c9675018f64a013062440f0c40c62055cca7bb6cb9a293193485fc529922478e4c620a73144a57833d3b5b9bb222f2f4b452447cc06638fac1b4404402449a3cd60bcb2fbccdaea42086682ad7f972008276e4e5449217088b485ce6757eb3410c62796d0e7a643a3c72c612ab165475f6e51456d498e858aff563c1f7781035fcab3c85cfa2f207d1e4703d3015e14689fa0c9b1f57984b678baa10cace44a2fb23bc1f317d5304552306183435c62012b2ccdaa9a744575f959b57b9ccc2c28e1a94959a812da6f259d11479fbbc97f54a57a986be61f49ec42124da687221aa3eb3b2c0298249746b20cba291f1633e784608d5897da13a20ea377df6b95198132a7fd526d065250f97525d809bf9cc7270c7b723cc95dc9c8ddf5113ec4c8b3cdca07a7242034741a3cc684a998514fbccc435a8a2d92675e6c3f252a7019a74818689574c6ad907080954557cc12e1d47ca23240b78c2301f39c78127180c268b76289132aab01f457adfa649a4324a08e0bb5345cc2ef90fe6e33588d6adb499b04daa642fc01f5777bef8a7af04179630619d13ba0991cb36e8c23f16baab09a72e7388c93385331f7b5bdf420f1e75c7ad28c54df96df3f1086fe4120843af7c7878b4483956b022ae05112253b97e6a61780ccf4047589ea04000d57593622983e8187a6232deeb59f5e147ef1628a9f692b8bccea069cee6f49533b7301728a3ffc85d7db98398ccb38523254f843dd79bb58b4796a1fc6d68095b8faa7ff9381d01d61bd6694f2c225c46086031a86105661033948c29278e422b304dac9817401af89540a29a1cd6093c86a3878c226fcae156b85038f4ac53579143f2f5854f825b0d45bb974b724368814a9487a60a6e41261470935a90ebcf45b53279c67d92330556e99606dc22a2419021896b2eb750b2479aae7a706b1bbdd9514173f23dd3066161a0af8a6a9ef6aa7efcfb1306b9c421f63be2e376f747731a233a45a8309ba8182d24cf6598c26d65c89da9c9e9e6b9579a4817552a8d355ede798e09781b387c9935333b15d92998a4c736d266dfc2ab61708fcac7b821c01044492f7f4bb8f37b5026790f3a437cfa63af88341b95a8899ad31b37491ce3e42fd9b3701a63d537569b75a6b4b362c14f1b4ba66ab7914c9900187f1057 +result: pass +ciphertext: 61571d32369b0173448b4bbab36ed34c32b4ffec1ba3370a0d7f9d7bed5e5ad086e8bdedc51267f09f4c9e442e42a8cac476db901c5cb6d9e599f64aab780b6b7fc119dd1ba42bff5b16f54e9379886baf6cf4966d99948f0392ff96fb1e027af8f750487b4bef68a50e6d383e927991b6932eb9c0435895c4823e9dc1f3ddd167309180e82da6a309be4debb3dd34b86bb545a24d20971f850c6ee2d21ed70dca709b78e43bf011ae7a00bd916b0e5fa520622614b5c4d0b8852a72f1231bd63cf5e1b72ecc8b13a26a9af8092852db8a3ef4f9ccc31248a5732a6744835a9554f6a14f8778ca9727ab30efe3cff4f66ac0510262d476380239f9aa249b50aa6297e5efab9e2f407559990c60e3816410912b0cc3d480d54c28af0b81c921d9f2b79fd3d22a33c566930b4f70cfcb23196a9e14b9bb3593a3f995bee0e9bc64c415ef3d9b532d531c9639e233fff5c5360b7ebb8ea11616f88e1dbd36b6c3d9037df99f265861b62ae4634b66baf884c1b72f581e4b2d5f1fca24385a76a998b42b5b9a094bbac9ffef15b795fa007d0840d4755a7bba1417c2e09095c5fe5cee4ecdb2548eb73b8d6296a2e4303e79ce65ef9187b7e7ff9aa087e52eff322f7e4ab56fcb8f0732f336318d2dbc2e485a358e36d70f91ad7149f6d7c80401216397f32f10928a0572896583c0e0e2ab0b33906cdc8b59a41ccb83e4ce9e1ff09598e45c05965b3548f5233b8ce34456a373f7ac51547a1bfbf91ee1947fb2bea228e76a46cb1b6370247adfc245fca831a0ecee168e16e71f87faf6c43f3107a2183d4e5b59052707f4bc2075730986d7e637ba5561feef9cd68951e45898b3d6bd107f236442cae0bd583904f53008ab5d291167f6f53f1e4e4040332938fb59d8b71a48b7274280c0fd00591b2140650b06b3a71efdadc63bd8a6b0113cc763fcc97f367f6c57e3e4456953b667f6b2f98adbcbf85d1815a6a7491a252b6c63c40674fc8529a263f64218b7f88f86fdf5e770e78743ccf29ddce1c499224b0263d080b7ff5174f332041f94972a927adb8c6b9bbda97852bd077b8958e83629530ed15eb82f46751d0c8a01a41efb9bc6c3d989eecbb66719746e218a9ea7c988efedc9b9d9cb42595fc3e836b902a1281a823cec78d6bcd9bcb8fa2f3e0ed6139f007e65c9b380f635187c66d80ea2d1ba706c7678517192bca307ab3bd796eb48a58e22f5caa6c2dd22adeb8a52f0e176d54a3361d0f71bcd46c6e10bad4892abb4b9bae96ced17e64bbf8f99f7ee31d18f635d2e775c554a6c5f0a7545d9071b99e35d0b3e6a943d1f42d977ece6303ebdc53f4f168ffed2ef618ec69967e376a111c39102e9a72c79ddab5fcf5f41eebfe9d6558a5d1e1fdeb7902a56cf436b1449e1b8fa89d5e2c0ab0d3343a84346ff7a9255088fefe8a04718c4a7a010732418694cab282592804dd6b808fa66c869624edc3bf66ef4fc81b3271e6d20ffa7b17e3c7df0c1d5c7f7324176770f8bf89b8f127308fea0bf4f42f363eaa11fe83e790b493117da73032446cca8bbe3ecea86e08ba7bd64f09f48ba3106a7a8c30ea9962d2bb950bbfc4ab12e0b7aa098c763973b7ebace2a7541fecb7b380b84c6ed706f0db059d952f0b3b25c650b974ccc2afa8f53ce2c746afc6e51e482f8d38c7d51ba2f304e89e4b7f5d3ab0784d891aa20ad7fdb03e718f5a092984a82b6bfc8f94c3ad1959d59fa163deae47091768e923f2aa072c8705f19e3de919598e85f13ed240540e329faa942d60f489141e55a01c49f69ff1aaa6961b867ae13b77325ca8c4fcf9a85aa1fdcc2f35c94ab7765f3db7c1502ffe33b73046238d7a38a66a8a21cab1af9ed6d46c39c8d2806ed98949e60be6864a277da88d93fb3ea64983c8d492552bf108b6d02ae15d295b3e071ea002517aaf1484bfe02f20f9ea52a4761d7bfbf220620ff5ff5a5728251f31f46efbc5526f04afb170766c06c856a355e831ec6bf4506812711314c96ec4ee7a25243d96c768048b5b2a527d970519809abfd2f0ae56e0e4b20dce86f28aadf9eff31caadcc7b4b52c0f285bdd59ac272e7a8a900e346612e2745f51700ca7694e4c85b13e25fa4380d6b4f21ffebaaa63aa12e3796be74ae4569ab7a19f7ca8adc75a4deb44281cad9baf579ab7e1848a30b734f85b9a2e335101f6227c9545e438e84305a50 +shared_secret: e35bb159c5e2b555d89b163bbb2145638ac948d0b10efa8c4f1f385fed047f87 + +# Official test vector 79, seed: "7f4a56eda151e7b097cfb8ef980440fff707affba91867c89522ced6c5ff3bd7f5f00bb49ddd615d9361a7e4efa42851" +entropy: 31af9345365549ea0360169ed57daf98cc5444799d4c75d9f1f5d615e9df8a91 +public_key = 55a15b77118695a2bfe69365a4474cc5f1bd3bc30beca40fa5ab05198b708d58110aba64fa4a8e5f955bfd935530b95f16ea816074ac23f8435eb22e85b7621481444b699278082693f073d623c99764c759aa0d6d3211fea1a61b048519e142eef86ec20430812c26aa3812c42471cc8799b80915222111c96b09ea063518c42786569101f81eafe3229fd85900da5abac8a84a688bd58a03213ac8019929e089a24ff8c712a1751856722fc7af3c57bbf95c77c38c85d3e481916c75ffa371d2a0c583b03d301538cf49c744f429d2c80e1ab13c5e126ab6d3ccd733177e469e6a30cbe0c3212215b66f57bedbca118be24c4a3267a1e65c8f924588e9b10ce22157650e64314b7643136e87bc141c9a01dc7b746556a1ea01f5aa8d22671be3177bcbeb605093a225e1a847c6ab78ca89c4d3a4a618932025aab56646a974b088429e182308dbda27fe6a0a7f5a6b36d681cbd94ec205a018319a89345ca5715ef79266d1f67dff2a1867366d14bb60625b9883740f4b3627ac385fa728a51c162401d86c4f2385bb9661ca891562523a7a66111195bacec69abd4c35ba6959397664ab56a621a25b00c5aa2c0793487a8b1b5847a29844d6e8cac42ba2aa3586ce117b010aaa324236855771cc999929f0b948c671b4a7ced082358fc94147f86fb01c3b1210bfdfe266d1f60a72baab460aa7ce7083d4b913635332cf559b121a26fa643fbb7553781847787c8d78e9662cb82941627bc863bc79799d4681830d3b41d156384f157e3ad27192b92e47c106ab6c1304a3b56723162e933cc28b220f45cbb9615cc90aa3483cbb9b510e7aecbd80b28ba3a51e1264b6c6023c30843462f33faf090e43555635c674a80679fbc88270ab53ccc83b79673e296a1394dba0bc2b421b02a0d4213890d0093c19384298b039b5b8f4f61a2ce286bf11b9a6c164bb5a269427999d707c3e62ce88d66fa283218ef393a4ec7a35e2a927b92866e5976e1b95122236c2800d2b4989e0759ab8bc1f37da21288ab22fc4a13bf8068a9abac80c814d150885762275c638087b643b60b4673408869156d52ca257ba50ff1354f4164b4d29069a99c7805527c7674c2dbbcf26656d110823f082bc88405299e093195038f7562b11daaec75668b71244fa6769a18b2d4643930704199f0105082ba91ff44f7b6bb339f243b524979ac51fc92c6b75711193fa29f898141a6c444e2850f03353fc6ca27f0023b9c88f6c0b8aafc9cb9981c460e2b17d594c7a60b6e3451c9675c923a7b1645c4d3fb28b1e42ae1f93090b86659e1a7d46183d26f380a2c046d9028e9906cbdf1ab605367be6a5609e79cb8dc349c739b7d4f74007fa69b9b50c94223e214509b2e057272476b1653d90740b0c059b1d2845ea9a57cad384a2c7cc2b926979f60fde47bfa01a217cd3c43bc01aae86642b84b79ce58296700427c78b7f32116823ba964379f1374e4b164eac108234b12139d580ec4bc11be3b62442445409204e1a9459ab3d7d33815e76589ca4009b27ca2e6ca470b61504569d0e70155d988b80988cda1c9ec0da673ac2497d6a2fe1cb8539f5262bba5104a4cf7659a616755cbd6a1cfd42a9ee1c115158a66af0bbceb149dba4af4ed2a128a988d8aa5c97164be56483e1816e52402b908b12429c505d0a3a4b2366a7bb38169497e7ac0e3ca8ad8f9636a54cb4b4d667d91752d6658a08416d552c3ebee80a613c41de4478611598bd05b34a66853b079481885225941beb4b67218013a3772a60e55aaa25ad44575f45a3178d37af2786a76e20a5a8719d84e693f693507aab4cb43c55a64339359b8075a643b7a696c373144a743288c37ffe36c454a45444c2a48c3c7d0415c125d133670ca1709c7f80897751fc8d07f30ba0a3b10f7110b03863e5b040b7942c6a527008f7952b89cff921280296955261ca76f50d1dc0a0d2b8b682d8459fec291c27c1e281bbf5a17dff0c0c75a3bb4c987f30b175c293931fc444728ab8590c6095c60542e6bbd2a39e324b96af61328ecbc54da1a44ca7a175c61a131610bad5144b702380d45b5df1622f3b2a4e640457ac830c8cc05ef95b4429b599983bab346a47443575087e975a57ab91601ee65966b51838108117934a5f334979349e3fdb9b49ca49252a4214b6e298c3b12e5f6e85ddfa7edc01a03b27468684972318831a +result: pass +ciphertext: df7c965dedf9efaf8469f3a6b7a1a1031590bc2bf82f05c498d073a2a4c604ee164ae8a135f351723714a757517c138457e6272f7b7666e59a5ee0bfd374bd364d8deea94caf7d807776ff1af1210612c5a95a8a8deffdafe4a5b6e1aa85d79808c94f32aba7b9874961e64639b52a790fb5a24537e70b6a0070065d51b7684425558c34b044a598724c226a7d1f45c8a0f4fc1c07e7ba45107820524272915b31a1ea3c18b890d3057028af0018e0d8f50214a78fd8c666e567b65555b91a7167c8c3e738444377a109742129cb53ae56dfd923d3b1aa40e4bd0c9f35f1346d622355b23bb69f4fc09f28adc5101ff08ccccb9ff384a40f1810fc009608ae901913f8f7e3386d63298ae6c34bfdf4c17e8069d72a8b490988c9808401c7de5b804733ddadbcc97d9f94328931d168380182d823cbca3542439ff2e82bea058ffa5085edfcb9fbecac507f50922fe1fac0854edaaf5b003f921ac0f95b710c924377742ef3aa4494a2a65c561754145914050df0d8ea009366b6a75a40034fc992f59ffa93921e4b8db5e46116e04f25b648118f7a5e226675c1e25abaecb5c2492dd4092bd2334fa5a4a14c067350cb64f566c4997af1f4f6901d70c2f9c4a3cc0c6eafb6efd830487a339c5f63a51788b13be38c3ba4fac0a64fe7e1bf513853b785e98283763ff23b730168d1debfd411a6d529f30a93b482150995abafbb8fc3a712f32127dfd040459e947bcba53814bc9b512e857b94c6d1450d26fe17674b7db6cb33afba1717ec003642769380553bec6003eac872b8c3b3cafffdb3d7c0601d493f10bf5e6792e9a49e86fa7393a3c8bea7bf9d12afe864e7201e2887053b67ee445486646981e0bf3e6d93eeb178f6f5a7a10a3b596168ae1ba4c1f093acbfa879331f4483657e43f9200c5aae4b0557a94cb01bd9e2dbd6cc0ec6707b36565c0faf3619ce98f4ad0866f9f7314aa5996383d04fdb08340a889f3478dce0d0a3c0fac862270469a535ae52a1a06a95a58ba396e1c8cc4d7da22fd5f68c240653ec20c39f705c998bb37ab0e173207c49970d6cbe68d74da764e70a0432907cba6d91a307d5e57124d405c1928b429d2ca5d6e2d0082dd0548fb0b5c41dc65968d129328935b169c7b8d401d29588c3dfae5419c4afcccdc9a3bcae8853fd47226867b9f864dad3cacff59cbe536be7e5f1ed1a705798874db514c8230483c4dee889acceade05970292e7b649ea429420bbe0cf166d4d022cafaee141fa08baa7af787cf1daaeae2edaa53f764e6d233e89f770c647473823b0db4bfa8403655d1734b276d09f58104b5892180c7c6b8f818d9a924900ab3c6cd6945d5cae4b6d876ca609839a416843d202d585ef7983181df3bf7040962f266a2f09f85479fb8f67acf20c306cc1bd191bd956bb99058461e9361812b14562207ebc7adb0fbee7dbbe7f9adc9bae7cf759835c780caa24c69db6d7922aaf0d9174f62d10ab7d42bcb152991b0673756b522e95a0a83231797dba4c9f486da9667506e37cbcc5aa42d54a6009cec6da6830154a8ca40aee3d4e2fbc4d813036500fdf5b2dae8af33cd86726e8b344a2043684f3cf7bc991d86cff533c6687df082b595d4d6e705c1b0aa28645a1077569343aca38f19149267f8e8be8a862cc6dc9370528c544bc9aa31898906e5f64b2db77e3128f5b59adc526f6f076ea70942eb44a2d2e6151db00c3431b39bafba841d40a2f686155f588e41fb1dcaea9156498b1ca82f1c68c6660abf20c6deda010290cdcacc2990132483b2e4d90de9ba0608438638c459038773ea3f1432c4fbaea491d5513b633a04423b60b3ee6f920ceff200fe71a8798adfb11d5607c57dd6e53e7aa8fe80375e2a76f82c8d73775d1dad6080a9f15eb51e2014a912eed3216695270bee882eb0559141c47ed66f8646fd3259297e1daa6e1b6e93ec7d170d4c818bc53b01744f4fa613c4484f1abc0ea225d7c15a93ab1401346e72baeb992b049bcbccc641a142ec39c6cbfd554f9bb3acfa38c5077a63dc7b2912a1eaca455fa295f9377c993237f44263c425bbf8ef5dedba0daa909f662cdeccfe2c67be4d03ba13d3090796db0461cf12256bf65e849e07a808d0577c5ebef283f9000a0b136f50e1dc35f29b01584b2285e82b1862779d76c59a8ec6200fd4901996d18932916c9dea3ac8ccae015136f9 +shared_secret: c10f4e51bff1a6f49da4cf9504d8c0dd1832c0860090fa892d5de6be27102354 + +# Official test vector 80, seed: "09fc004519bcf85b20d25d314a0dfc79e00cb6262a7dddf9c52473641afb8cfa0f5dd5f53558184caae9ec34b459e98e" +entropy: 774ae54093d694ef40b63b62c73e6c98295f606feb8699807eda1d030ffb996d +public_key = 31596bd912527e2c965ce3344b4621190c106f5084836006296c37949aca196c426f4783b65221b9c50827c85b7067a9872a6d9277828ea9385f9b512a8a3e897628d1aa36a5206b35fb219ae26269126b75590b2d1067419b27fa6852a3552d6ce48c9193c96a3131397166d47c53eebbb68b949a5bc3c7d585027961aab89b38f5295ce7c60d3d9009508769ee37a48de0685b9228d998b883d871985108b49c908390cb68147e8bc561df29cde02b1ed5236ed77b23b3f32e687b859dd63439890d8735640f5c073bc05cda79603cfb37fc5ccd28e98b4eb169271408a1cba57d21afb87c97e2044766b38280b6911b95725d5a77327764832603fe771aed89baa1c8b2ff49b741081884c6326fa0693fe64551402301a0552f49035a262e9d047d8a2075fdf6636c726f8b6098fb2b8f01c89e87478dc1112c37f1b857fb13cec53673e297b8aa9612d26a4cd0c6168c9dea407133acb939d06a7c660581a877f046b9b1138f6fa6156be2a5bfb23d04954fe32b1272d73e39c79094864cc9e36e46e9c8f1db330c17a0ecbb332e385769c4c0ace7c0b0d49fb89503cbc13ff3a1b19f421b80855fcb947cb651ccc0a7b55b5100c09aab9201c4ff8c56a2d90bac255a3665a731d07b8ad829f7a7b556ac12acbc1073a40b7c36059edccd97a50c493359c8ba390e3716921a69998b9b111c4dd283456f7b61ccf97c1dbc362e2760e2928227405e449c126d7526516298f6315302288043085808195ea587118d731543f09479a2adb96884b3a620d4c86123818cf848b295eb0035211bf614b077871db1d8c779d61e90257730e47bba178ac5e28b8e47794517727e4049dc759ed5a69cf7c66de05c0a5a00c366a87f7f2914e1e059bd1921eef61da9cc201f016f1cdabca2d2cd99e1884c114100ec5fd0f415d6fc6222981d8e4582dd138d71a368bd5590645359cf767146f2cf5f7a58e0e1becadcb1da0c87fd385c4ad15e02836d866025d0d815af61b564e803f0f0bda9a1ad0a3b86dd9a79b29792a713c78f00c55668aa2a0962b4a9be8bd9cb6966a054f0ac39182ca4d54fffe197891b964933aa8d60a87ab0af08c139a8e79b7a5773cf189caa615f64b973eb273edefb27be439ddff2a1fdba7f2cc3c65dfb0d0cb177b7ac49ad1b4da0725a3f3a2741fb2c82347dac329657c9bbaeaa948102295c1828b01c22ae45cb0e0b46a68837ca5c8639ab483eec5b4dc9caf028a7bee18accc402ec6aa57a93a1c53a145e923194341bde96296857890fa616d1bca0cadbbba3e4302e55286c58a283ca8d1626515e6a84881aa692c662a3567cc294a23059392887ce7a835f8b8030f5c1060518c71e0c5621812d54d50043b73182fa67de92768c63c4a2c562ac151342fab8fc9181be82301404792a94258b98411ed093a9121699ea13fc822bb5a317b55c1167ac12bd8c3ccd9bc743a634ed6a0961e13ad91a779a242dd0b9b4b41a5da11cbea085032ee2382c4b8ce088524075cdfe7b7c06cb6f2ae128f4f7a6c5d58011b42b8cd39a8a0aaaba14a0ea8c9a72f322693410cac54c3ee5487d726acde02f9cd0b027844ea1c018e2744571c3a2c36b4e0da088f09ab939152e30696cfd3473a085be3eccb53eb406b66c95ef8b1cfcfa1df8c8238b8c129abc9176e0864415852cc8ce13970fe8a76ecfe246800997c56668af974605e748e3054700d7b75fa182278309e41cbe5b4a17696c843fb4ad72471bac747faf30c99d2433665433ef29b64870ae8a3593845ac211ca4af0e5aeb9b8afa5b4419559502e834f993543353835596985e31529c1482d0fcb9c11a1c79a704db1d531bd0774f91b6810b98766a83387387c0682584c94793fa771ab8b4216455f7a117c65e5a481e01b5bd8bd0a9263635815f3c13c7c6740d2d1778ab47d56c9a37ed4a660249b8a4a02cbd716f6a09a646456c4b54cad68c86f8b998855379560692cfa68b5176309162a7a506b28e042c25850a7e6357ebcce387146b94a09fa82ad2cda8123477f926757d552929ea72e379a9bb997bab0d1aeb5f02568e7715d959168129cd58048ab1299eec754b9080e7337084ddc37c4695b75488effdc370edb65655231ef1091d762b8ec53a3283b3f7bb5114429c788a2cbdce1c0454466882448990d0c963c4dc08e6955a7aa5238a6347a0d168a1ab143347ab4 +result: pass +ciphertext: fab59e039993ccd4f50ccbe8c886407e46508fc6d007172a747786974d2eed73538e8c47ffd4e3d961be7d83ced37f11f3db879752f36cdb659ce2b77c1c3096a6406c3af929526157cc49ab365f9f5fe8b60c1b67ae8db2aa260485538ae844c06a121606c3422910dc3afbb4119bedd73a800ce1cf1ae6a4955367a7dc994fcc653b4f94652bea15f60323e6f2dcfc6fccd1f79085a8b846a0ec0f334db86482b15738f011398bfca13570f97c2e5801b60a5264072a7011b98b9e1de2651f78905842fb8b22da803f03211ce0e4b39c6ef8c7c73e611aa8e5b20c9295334e9319c73f5f78956e28a008e0e681a193ff229f375ddcb2a9b9a750bd97e055f6749af2ff6a601133fc7a069c4f72f5ad4c930b5d37e91b208b4e36970087ef4200972d204e5a3fcad1f033035e39202dabc309263834e8ee8c45f6d3a8ce7861e8c639a61b0a12b950525bfdb6b45d813797bf73952b7d6be33c489a4be615bb892b171c3b831d609cc7a5326409a80b755d08634ba177a98ebd56fb89b87678d8be5bf508dc131ffb01500dcaa087e75226a6367ca24d0f7f2f9d4a8218e50f30d9d4a8eae36bda94660c194eb4fa91881632d2e8f2211dc28b7fa24766793eb3c9a969fe08c7ab94f655a7f7ebc5599a766ad576da9f0c9bf04df04118e6511ca541512f9826aadbc59c431fcac0dcc1421cabd3ec85ce5fbe31fee445ae4a418462555a22ea3900f29ad77b231e2ff51cb4d3713d83ae0d5581c8db197bcde4ca4e42be102b3bd240694c82143b683778a868d574204a1d02e34f2fe91130f283ac40ccc2efe76bd100c780914af245efc5483ef94965dd8e166ebba97883cd7f1ddd5cd623e5598509c858f4249f4673bf6a21e037b6e804b7e2508dc8ed0cfcde042b5f307c2faeb68801ff7e90738643af5fc46ff1118661341caad34d327e1ea28c8bd350bb78c277403129ffa723e6839f0caf93e9abcf672f8f4a074ba3fdf216f040fda8458a7d9581f9321cdb541cb61c7956a3d75f279c1a832b0c656b9de198ec59ad87ffe29f31224819a7c57c178e52c7209110fb9c0e63d2b99b8257dfa6a1bcc6edcc64d7a64f3840fc2b343175bedebe7db7aabcfca4bcf744c7a0ea8d2bfbeb451453597ad97f76d553bb2bbdd523462cce707cfb3f2d0d4bbd9ebafe0bbaa2116b2f00d6d543678575a1a86da89566974324f6fedcee53702d341aa57e4653757d291867c2e63c8e1ba98942193f60d6da8b7232b672835318e9ad102eac0ab89dc06cd4dcdc74f19848dfe0ea55b4d9d59e8dbc1a53f0d230e76524c658f2e12c01bfb4ddca8ed4f6c21b2204caec44a80b5a5768bbbeb65b36107f34f3e786152d6e0d33b11be83e255b541cdd1ae99dffcff273c55b665fa09d7a89de5bea528e6569e525f683c32a9f01f4a8349b91eae519efb2d5da8c111886de94111dc6898527ec85181e974fa77130ba19e251118d9dff1149610bce6c8e5507a4b266859c2e71cdeed75437efeb9db9b6e7a201f7a32cd5d0ef378588cc6cea5387d3a89d38c93fb3f2cf990796a23bc73d07f427e90173f173dbdc97ebc03a557daea271d2ea56cbdc5f19af6683e749a4e25b52d876fcb2f05a4ab8b616ce7dac1dce610afeec8e5fe12c6a703698049a32fc3532ebe1520d95bb3dab1c89e430d6a4b87e7520aeba06cc7dd15ccf6767a9ef0bf331f6869625c877b6986157f39788b4c06e96f5a380f352f28cb62f911a72b5eadec6ccde6adc51f5d18e56629c831972b3beb4438b8cb5e4f64c05e841f199459c5557d7b3a78ae92eca093f417131f237e4a27c0f9154030e451a9a587d95e6971183e059ab37ecb9ca97d8ba4a945dc35c9a21a97fb7c2ac30646e8c1e7fc1b2a7d594dbf45b6060073bbdf3874d7f627e599491bdb11f33fb0475dd07aefc14909e78ddd87f68d085880e8bddc6b39bb7621cbc686803821e34abf5f82b9077724652defedb728f963a957ebe369256c18a09992de7ac7647d14f7c094bd72b4baa651937da84c137d1f407147d335957a1ebb86e1a25eb962a50159b6637dfd25d5d3ecb417b4c19568af0f6c00fdea172fb7061580363434d08fab0c04c6f3867bda85851ec12558bad21ecea88361575c76e423fbb1ef837bf35b1937bae52eaf838df96106468b8e16742080d4afc19965d4f2ff36de956e77a9c7cdedd7c +shared_secret: b515a69280079b7c57997a183bdc160eaa0ecee319220fa690356aa42d0b59a8 + +# Official test vector 81, seed: "e3c41cca6f04cfe7732fd54de30cc5caac93e2f80e76aed7d24a962a3969c1b6a311459a3ec3e510e3e9b1e4291d4d7d" +entropy: 9f27a47604ab5146caaf0aafe6d149424f8d66e39ba3baf5e6c73b19221b7e21 +public_key = d7e9bfebe65e89997ce4e680ce385c8eeb2862175fbdc9b25dc7724f641ca14b1675e13465d634915593a228c35432b316d295dcfcac909b9aaeba2e93f6028be9045610ba38c763c08308a1d6b9b8667b500c649b94cfa703432f8695377462ec6159313a184f7349be26512759a112223af1b12127f5566da94c8bb19765849f9e849a4f235c9df3783627b3e548242fe2cf506ac1fd09cd5067422789ca6bd3ceb0e516a2e88d0406abe03b65b0f064d7600ddc227ca460cc784652fc1168e8ea53f825851a222eab10bb9c8598e6930a2abb627ec5640d4a3c6eeb225561ae19f20eb6d0536ceb93145c7616fcb46c04b2076b9d8a4013a4bc527848a8972b0b6577c50f63194e6357bb2084fae54c592577d6c7a61b79475fe1c43e70980762132806a7d25482ec2a0e19778aec2685ac19490c303cbee96e2992b836305b58270553d07184507b12c06510437b5c78b3f5cb1b57627da57611dd3361772a213e033dd5519666d18bccb13b3f751901d601ae131ff3c061af87839692967cb88199f1770ad0ae196388ed6b9746fc6e536443afe04a3b92352acc4ea04173d00ab9e3eb9c1cc137b2d6b14fe36dff9591b5300853a349dc23799d8209e811965ac84090f34d36382020ba31531a0dc909b9ed725ef6120929228f48a94a5e04d03314993fc8b306572a4d5a7063110c051011c1b09ee2d09315196f09192c329565cc5a64405c3acdc234acbc0a78e81b3c9523c43a2fb961873eb207464a302d8349ab50167ca33cde091be57801b6e850dda6c5baf498ce1897b247bc7e1a84c6b141fb00286fe864a9f27db6475ed24371cf0c19586750cf72ac1cab46ce08860090a0c1322aba42cd902b6c05f4c4bab667b54b0d5a04332335731544675f80a2ade66dbc075d7a9b4ed924417677b6e195b902842fbd4390597c28a1504e161175d259ae7c44333e742471b58756c0666900cb94d87f73043e940a5733f89ae3e8cf037b83a51b4768a19dd1a96729216c7e317bcbf60b3b07cd82784d964754a440ce297b40e3f8811834885ae76a9605a249958f02d9bf2ef0a195d3603261560593a636b15dddc681ab9bb19ab7ae95d32ea474388d81585e49b463b47033f81964481f46c229f751a930f6a632e8aba8981cca880511164b8f09a8bd9ab8c07bc8a28636d0d32bed77b2cd032b18090928f01e192943e028af329b4b812238a3362b5e2a61cd7b3691d06148703d692080a6c755c560490cd5b47606ac9cd9bdb927b6e3b26d9060921757a0f85a2f82b618bba9008b7073f24a88fdfa922eacbd6631c32157b36150be06d3ce2c4b64410543ccf280143c1de73917b816c86b1a04204a8f3fd7cadbd20b41831c8229788aba219ba59af78388c2b9865eb3000089c6c05c850e91021a5328149cb2a1a27e075a3ec8630d8f515cb77903fb5531f6e05ce984296669b0bfe8af8ae59438b834d4110ba0606ee426799c313233ca9487ea35071871420c6825889c07da0f87f1188d75650e36ad21a265d4b44c01361c0653b55f409ff3c290d2c2c212319297d5aef2bb87164b7535b7518ca14469fabee91c81384025f6914c19018a0775598ad4bbada98e06c87c9af309c73903ae1b84fa9a3c3f668042883a8195cea1fa5bdca59c203178eeb18041aa2e9af770d180be044bab1c8c36044a70e50281540501ad6b165c021e53b86a5f368728e2aeed1520a09a48c1ea0e9419b313d7c6a9e59f17121c8ad47410abb73e008c1ecc16c32b4a46f39712648cd06196ceb8a076f5c7048a3aad37393973b8679c55393137e6b6ba2dea4d50f65e1ef12116598de49260112055f4b0acda503395e242b990398943c18c01cdca993b3c9a74e19ac6768581ccc9a0331c005ce873b241b3e5e497493ab134e18569e80a6d12a04616911f9072fae6a30e529cea1bbdbaecc7cc64a7d655a730335e8a22b4f4250e2c54976c69a161694aba04456bc14e2bf8c13b1ba2a5ac1a6b557bb061805c903d1d1aa3367922fe0c51dbc35da6cc8593b8b3cdf741220126eea9cc5b9c0632f75c7aa3aad60a46afca4a6d166f2b2ac858c2a572e4cdc2d65bca199cd73367b83909fb324855c4899d920a32b3107ec56789d63c25036c35d30be5d28d54d725f1eb3f924bb991cc4c5ec2e36585c0133b82099b8234cb459a9fd8aca37c4249a3b020 +result: pass +ciphertext: 7c00e16d0e64a68ff48151fd02eca316fdb77ed8e12cc3cd318b692e43db05fdeef4ea363e297d9c32f8c079977dd3915db9892dd78cb2b2fad8bceb72a953b03ecf93afb749d6486b15bf456e83d554a45c0cd8d981494a0f40a511a259d1d6890babea2f1c770900c03d66d26331c9fc126eb32bb5135ad7b3b51c70c64923b8b60db51d96f87cb2626626282b8bbf018047e5f3798041f4598bf7f6ca93e0dfd8f7caaa104ded188bb13ebd5fdf6cb21fb9cc9225e63d0ea3017805ad509e7d23e76f1351fdc02584f65ca06687c3db9964151d6964c6799165775f60d4a91b5e8b41c920c2394e4bc587733bda3107aa33a7eed8d62997634591ebb7d69ea547cb2d74ed7a7f6f0d036681e4e7d0d5079e544cb657493ecc0fdcc8942f93df4a8f404a9ee4f41c44ba99ce3f236ec1a62068bfa6fb93a1e20dc2740cf9abd91f31d9caca34f4c288be80492cb589e4b12e4bd73b664c4cc33ed3559325af26dc8de7b0548d4a26cb0bd8fd587e871475318581056c95256fc4e95a84ebccbe9382ee1c095a4581005713bb77d2d19a8c1ceb5a1bfb4005849f0365d2503f7ed6d849f377ef66888402df896ed571de6b06793da6bef4f6ea029bc014065a7784f7a83c92e21cd1c7001770b7781e894b46aba2e6fa40918a805937a9b1ea25efd59cdc26918921b0093001b36877a010209fdd9b4f5c61d4e7b9d43a2f91e72d4b24281151950b73de9de304a6c1cfa8e33cb5034d1031a6ab4d3dbf771c585654663bf592ecde6ad53a5fce007119b5b73a4103134662cfed595a02677b220cedb31b78c3063470b17a56af64024ba3cba30eac461a12b79a9ddc2b439ba2eb649defec5b2669830d6aaa8865a4ad999d8520edcabd5c23de6faf4d390afc3e9978f127d087f14d2abf2951cae4c62d7ab91cb634800c7db777306403c5023e97b3a0fe0aca6466b6d8b58f6f07acf1f2578dc30d283ea883fc3508679806febcee954a9a285830a39fba3781fd179f5068b9a7061cbddbfb466734334bc6a7deee3bb569244782bbd3c78347ebaa66c84d628a0c9b26b6af95a116ccefc57595f786b17967e2a21695fad4e76a51c1f697e8069efaa15bc10bb0c28b468d61c492bc4e037fd612486d746fc2217093fa025c80d87cecc99679887b50e31fa553ea319075ab8a2e27e87a5b7be0d9b0c750674c440235c2ddb8f6c496bd20569b52fd84eb264c67baed5ca95c0dfe125b06f4e68f6354c15cb41514a45a2cc62aa9e2e4a18cadaef473c983b0f952fdbc00cc3d5a960d7644484ba38e3428dba2c81e8c76db05fa606788fe32b95b453bdeec8cc778bb3221a082d453da84fbe4d4c7996fb2c98d2b06ddaf26c759106626728e6db392efa97f0c9707827f7976554d6479413ca8ea2e764d5992cdb7dcd64bb5c0bc7b213cd08d15af938c6ddbd1f2d5a0cfb0240fafdf31c0e9857098de9bb7883b8ae7e78187ced571a9fe90edbc6ca0a250d842b8a2b83adcd32354c66861784d7355c1a93b8b26fb67ce63be71ff7700352f3c5eed0cff007107a47847322f70d785b260f74afad72c98cfa9b495de53ce8b0bfc3bff0d88717ba8c47569e1f85ef2a87302976fdb5d866cb156152aaad33fca306839dffd063386303c568425ef47613a0de42023b1a076961c27d29d258c24246212883803d09e96ae41e6aff74812b7d55d00d6b83575aae548395f9572c90bfafd6370cda88b222a869c117c1d4d8276c176c44fd9c2533fec2d41e0ce343f60aeb7a8560c2241a4c97c1c86ecbb26b487c5be4ae37d69d465635db14037833000389b89fa9721b7fe14a3099e2dea671c1e63452478227c81575eb229234c469dd52494607b004d9380bb003f94c98290020569c244958716e584ec0eb7b4000f9223eead95e371323033a6d7d966e55fc5b38fb3881ee162d0e04a40c448a42587c99724b408a89f1db02c57cc8c0074b117298f9fa7eef5cee82d256b85ae755dbaa5838cecfe2e7da59956b0333478e46c409b493b3760c8cf57a8fa6521132c9dbb1ee36ff60ea6dc7a9e1af615f1dc6b81bdf00425d24e4a1431d1e35698b0267eb73bc6a512eec505f69becb384367a1d3dd7720f1cd8ccb582b39f3a66e5a0090ca722b8a7f9ee59651091d241a623aaf4588c8945c1c8dde04d2d7a48023c6dc3f3b764fbdc23609f0a9933909def +shared_secret: cf55eba9c0e1be66a0023794be974825ce8f00444905499486176dfde1838c05 + +# Official test vector 82, seed: "373fdde922cfc416ed96b444e445bdd0962e8989f6c50adf9912a89937c57217d3600b06c95440448e3f601ae69ca5be" +entropy: 90044031b7597b5e60a4f946b713e8996d0426d2cb013243d9b7d8f8ef159a0f +public_key = 27c546b8f148cfc133aa807fd7c233c7b5a5c3f6b8da210ef7dc5c1a834fd1559cb2439406895223991a4e682554c63ac3a117d840aa4848b1b3864edac960c656046e3bc6d3b681e1e6b49bb0259f1aa2a4329b2598b932e26c00fdae2cf4686803ca7af8bf0f1243e64544d51794583349f9854dae778894438805793b085373d09a185cda5489d74274eb7bfee433b63a56e14b95941440924cad32935440b46235a8576d11b8d65a2e8198b64b510fc1f942bd9b0f8e077fe33c559cd987615263e9b66c38c5683893c3e10965f18aa755e1bea6d1789913cf2cb21b41b23c4eecab25798ad13a26321c59e35b0517a78743c4469a4435970bbc2b9c15498b1f17cb0fccb446f67c2f437415abe98cdeb3346413539961b3dfc1c40e243296695f27152b7f7a32ff4b185ea437b275c6f617523ada8f7d2a594e277b9318019abc0051aa399642cc0a478ac7466e0729848a516c9e86bc8ad85be985b395e3b28ad89f71e3b584d857bbc1915a47a2fdaab586b7916d9a87a56235db0c683b9bbd5f000e6a218e54464043ea1e882bb906c917cd4449fdd5acadf5b017983c87b4a8b0fc9ded7a1e2e7ba359240009b06701b5cb29fa3b9250715ea31bd8784dd1d91d26764f32b9a49f934c8cf61b4d4a8f36f81d3ee33023959427d889e4a3c796d284a1fb0895184ba4351034a0280f34af119004e9b06fb1e69050fa2db039a9abc6ab00484b9a2694980197b69b9730da0b8455bf591b2eb4f9cef37a06e7c107bd56c3f7ab10ebdbc60de87bdc8c22f62c2e4db973140c5fff95631839264aabac5dd4873e44b8b2f7106c083dfff8b6403322f467a91e52cdd359293540a45134b97a39aefb6252c9c928adcb231eac0d790422a9e3bda366762e2514758badb2a2114a9ac924553d42e05d3769350e4ca047d4219f1b6fa953b60cc67b07a71dda85649af0076ec5c55ef46e73ab06613a84b2422c1bf039564a6873a9385fb18c4ab92ca7a1b205e8ad57728ccaa10b13268ca519c2a0da39be15918bc724f7760e826ab9d47cc288918b60aa87e037a60809b230562ce18c1d76bc457107c8bf80574a2cbd0f945c59d4371af14737983fc089a425d1ae74993451055ec21435a8114060baa6d774bb6ca82efec1a40df1877011163108a2b20190135900a98a337192088d8c66e9e774b02c6d55819dafd9bf3ca886d39165d1c4cf29b1abd6b185dee9671eb941ac598e1b0240d92ca7bfa119cca15a643ac29b30afeddba1acacca8b83a123102ff20b1bb94ccc16fbaefaea4fbaa36f3d46b7f5706a7ef60e04125228900261271c9ab11b04971ca5315e6f3c9eac795687da91eec532476bc66b2ba7a5650eeee119ea13c91bd94b19c31fdbd80842d25dbff62f928550b1f6183ab64443e6b0d9653c5379158af74a6436ce3a1150ea31367aacc7558c201124573235a5997773064a621869707ac661a29238421c9ce88cc38e733c75539443613d8d81c60da70e46035b343577a1660e08a67849558901d539ed84cadaecce4da36c4b9940e106011b872d1b9748cb08c2e3db4880638767bb67c74311021b6c46698a21aba391c65b9aab238d93a4ba80be911c3ba8319bc866cac3e67fee11b773ebbbb8639891809d555258dc9445fcd815af355ce2cb38552c5be069b6c7d0ba83f8495f1230f50bb57a8c4d82ea8912608cef0ca6cfe408052b736d9c6fbca2ca08e76300d150dba48080421c5a6b13f74b8f705b4eccf9c1a336a0e7a47263d30b5d1675df4a2abec7522868ba4c6139a8d22c23608c40a8bb5e8c65661b94e008ba442b9dd9883e8953029d7c4e7b46206880b48214a84cea0b34560f29054756f427d185241d946efbda04956a3972f974be20be202314d9c58dfa3543acf894d65b6f22047032e408636440024452f6c2cbb5d698730907c3271774da95b09421e499b17f670caf8585e2330394302aac52b0c1d2b2ad16656cb79257b143f555757b989c79a49730354e42299f28a166ece2a03e1a6dea08b01b9323d9958d9e320f3055c9500625b731bef77c3f30fb2960974815243f7edba28b64a58bf5afebd76b53675dbfa62b05b89f85f945c00b3de4f8ad2507121bab1a86224a9db9afe8c26513219ccc9b19156268d159097ad048f7fc245fcb93edce592a8d415d4a38502632973ed98b6f97f986dbff7e +result: pass +ciphertext: b6aa20edc9f8ef7fd2fc2dc864289f6c98db6c4e7be0afa4539a83ac0bb55256356abb022d1497988bf0a664f8c2465b15f867aaaa9af528943000e9318bd733aeafc681a9d79e1a1466bba45d5bff19a5f4120f35b1c3c47aac4aee81f61119dc3926bb6c5cc1543cdc914e515b1258a22f07a23a6051e29894bc11019029af844a442f926d27b280f20ec61c4b633edd12c37542d93bb6deb907cbc3ad5ccb72a13763a1a91da7dea74966dc53081d789b6040f65d08c2dec770dcb3b5d37cb8387a7dd953df41f06b097aa7e866b08cbdb1b226477a7502846881b1bf22813f9e4bbe40d80ed0cbedbef9651a93701cbfa15384819df097306f7a8236c7ccedf62504303160515b72f08653ede849d19732335d5c4037252968566c78331afdd1dcfbc1336374e10cf679bc4b01289c46536da48c485ef54c6cf2f40b85cf272cb2d379a1ffa239b3870d488d8d2a18ba80d40d282a0b23073ce5303fa7266c329c03df33565c4178e99e2e0aea2290c846e5eb37fa293e4b7c7ab2965a67d76cc233f418e4711aab7326ebeb2f3efcdb2b79cf12654ad1cc22a748d4160fd13db4fd9b0e32a0cf6a5e2d03a88439ad1c3ec2d190cadf463e03cfd434c0a351e44950ae3f0c52f1987d69a8b6b7da85c445a0149e60c94258ab92cba1ba4d0f43da93ba87a4e1bd0bc62aa1d3faddbbbb6dcff737ce8bff4d108a31aff8ed870b0cd7d06fcb2a34bb9ef25f18f8bbc3848de931456437fabf9402d1d9b9932aaeb890fee4eb4b60c1d61cd7345d7a7a80d091566c9270a8e24a77bc26133a8964527e9b5b1fc8b376d5b65c9fb5bfc9d36dc6538ae8174c42a54940276a74a2a4d1aa99d721a113e65eaba503b604ccaf41ab0a867470244a08655211cf86a684292c2d3170e9dc2207a1edd0fff62c81108437354b1edffd0abf96c3a577820e7f4659561e11e57177564b1745cd240743eca37b0f827af298d25f5c352ad29082aa5a9030b69896d47e4460c210ca9f3ef1981fdce6fdf13a54bc77ca902bf35e31100b06f336690bf2f9a12fa1e9ae2b2a7d7caceb65cbbfccfa52c69cdee200ba34da38334356b7ec4d7765c3ad88cd6f4b3af13827240dd43c9f47b7f7b1fd918fb828aa6a8af0e8f7d3ff8710124dda6e6cfa923ecbd60e007ee6f2b4865937a411fb4859d40feb7974c9dfd27b41880056e35427063a1bf21f1a9ef1a7f05f49e41c74813452ca3265ad710a43be1afc528682e256d24d5b39fe2cfa57c9bf7f728e2aca3b36df31a9618647e4291f603b87a5a82850a0ea288a926812232e5c1cfc3b2ede5b9888a4a039a612158315bb55f2fe481e47dda46caa0f5f1db4fb78299ddfafb43bb55edf77b1402a3d61c4b9d84fa2cd3f9827b1e73a200888aa7ea2b4589400ee0bf389c3fe530e0227dfd7c7f9b4fb5d3f8d127a49b7fb33f3edaf19a1f546444811f5fb83e4126ac5062ef352319abfd9a34a8961ad1061d3577a3ecaa9220713b11bd6311ec7524a687dd46bd067cd8fed06e63d364f4bf4082d8b41cba87a5bc713fb1de4ef661ca05fdc40a098c56184e4e8e63ac7b06a9dd2bf6da4c5820d4f5a8b476f930801b9fc4767a98c0c597c4ef5a3cee795598c7df3911ba71153141b3f74e68eb3afde37c40bfb6a6da19e73cfa3fa4f8f9d622f9f9b7e027e686f872698ce1c415b4ea07d19c20cf40df424d01848e65093e52b049ffb8389626956965a1fa19f3ac8943ef2457a6c31cbbae469846b29a3b92ed5f6d37fd3192caf8fcca888e0fcc45612f0c8103eed3ce543d4e4f2165ab64100c2d1b86fe2c140faee78887df0c34e8520d40a7dddd8c6d423121df5688c91ec5186184dc4bf5db4aa1dcf071c0446f33f3fd37e14ea8ca77752bc73c4ddf515bf04026b68ae127efb7e63958494a13a0a0319f46ee9cbf92c36ba8f15e16ae46c5e9b8ae654f332e36713236368734d83c9eebac4a67c6d142ba20dcc83060c37733e6b9d98a75f7e367c905fca0f8b3bd9b53968d0f7ac129afc6a1ab68642bd5db00b4cb443797a239f291e77d75ae8a8854cfcd916b71cc53a135a96da844e75cabc2a455e7a17257a94ce917a2f92d408f74a09adce0705606394bb3e11db5554bd5ad035b28e754048d832eaf932172d942fe144ee7b310c2db9a6385ebb2ac085baff10b1dcae517a7ea7158dc00c3fa34ba0950f +shared_secret: 1d660952391268c94f6c47347627fe3b2a5e1097d6d85dcc14e3dffe3a4a1fd5 + +# Official test vector 83, seed: "16bef67f7ac3a755c59c816478b75fcc16ce5844db537791accd1ebd49d2824b105fd2e970f728c8f0cf16e439a9ae2f" +entropy: a7a31e140891ea37d2b6424b59b1f84f89220f32dcb73e037eb912b389d34a48 +public_key = 98c5377fa74b86746684a02b2cc8694852594b62cc0dec3c240c49b1cba8235b2b7220cca57aa380ca7f6ff96688b70299a0a52e34805ada0144632ceb704b0f08a3ad9c78dea9a9f1f556bb830cb0345ab9f2503342aee2944879ac0103caa1cfb1932062a04cf473ff372d72d500574660435b756a99635a9626f9f085faa880f8c332f674a76ab0196a3326b0e88ac19547b6e8a4cce3a3a60a9590d524e61501a41262cc67a3cf036e08e947e11c33d34895a2d4b7ed348ea8329f8e8775453a65ec242ddc6b33e6374acd4064cd8c765bb3079550c05e0054dc11b4032b33c4e9371630aff59986b95b7c729402d61c7ca3bccbadba94ecb5151bc60330379e24eb3fc36358cb83c55f18789c37c541e93b3b781d42904ed910aba5f6a4168336dc351aee66761cd17617db2962547d77fa238bc415a6f441c0f50fc2cc88dcc7049fc58c3bf3a3091458278087ab81569b607c66c6b6e4f677b4e0c3b4188dc3d3741ecb585ca68a72d0b18f18739e0194448a1da0d436f2a71fd08218283c416a0a580588932fab5903c289bce9a1b53328c70bb943660ce98773ad14a51783486268c270808cddf713160068cc8c8682ba11d4a21a3408b181625bca33491522949fe6a3ae6a2f046619114a0318fc69a3d58bc048c45ed4ac3a610ad1987629b2bd66200bc0e7b083b1b26cca00f576a2d2b8ad3c5212d956a5ee0985cc4023e9a99031f3a903934f2ec24e2ca46f06a26efc2a19fd28236e9097420337ddd61bc2b7c15fe9949acc7c279708a7365ca87b72b635aea5d67541853530f66be8da1730815852cb3c62024be50288c7ab08a3a2c442307667c8bdcbd940c0a6b91ee1657be599f13722f1d21848d189b8b389741a5ec86560f1b862eb63669753558190516964c610696e9b24a955d07bf388ca0cc4bd0861b388e5a9f1c78014da35ca594f9f1b766494b7ab4377eae61bfd8cbb5e775a4e627e2dc80c17128bb5c314be217033668c29198ce8bb27bebc79b1b4c5fd81578eb32709ac6badc3cfb7c414584bc3a38ba2ca1c9eeca55db9bc295791ba22ab54f9d22cadbc83efb58e243517abd4a93a11bd083950ec71536bc49b39c53d17b8a301a17ec0b90188c800cf2400312b76fd85a26557022909866f5591eb8017440364868c459f9039ff053e6e829ac73b2aeb81c9dfa78703c7af8efc6ee88c929183351f752a47e608638c7016026a031c289b936e06f46889e827a1e0c99ec431c763ae80e72b8e8cb87c3b7b74159596a9cc5a6c67253738e6889f5259a0ec87555e975ee50c82cd44428182827faa7b81a0abcd009a05685813e3000f9623e1c4536443811c98148fab9c8941163a57b8c7377d55a994d6ca310ad58012f51f94bcc9fae366a0591adb9a7a78e78478d1076d65c8f029867d69be153cc7f7b7c3f7f6b5f1832bea256f3f9b7f1165978eca35728115a115500677c1bd232fdf7145ed07810ea4651985a3ad7b5edb37bc21e33115d4c8c8b5094419780831c65b88a7d934bef0b9a52ca4299adb84a6d9053eb4999a92c92b353d9823896d3759c3daa69879782785017747c102e7afc0a330ae96bc2e7a4e6c4b5a637b2d85ebafc4e6c4cc676f78e29e6eb5b8a4bb942a797d78cc708ad3cd2f04217f18bb3677318d3a917db689599c009d3897d95b586e899e5855253cf54974ec4f6fe8be5a4c6804c99dbcd7c3e7407fa99b90a5586e9f180aa559a81978adba7b770a4c601980ad940ccd42eb70010254848b8c4a2886a1d835abcb9097253e2fb817425525cbd37c1b8b3a2ef47e8a15147a6a441be37e7b2579e5f74641c4731ccbaee47b1f5bd744a15284239179a70a70bb8217b1371f928b275e14c83554788687ace377888321c87eb5403cf3c93cd4c9e302b63533591d96af9aa5c47353c03171caee118bd868a6fe29575f5881c5a5bc7f67a2dd5457efd71329473364d509b02914d543843cc3b36e213e27facd6f0369f165adcbb314f9c4c8930564b9f5aaf21c82860035e9f729dfd30584b8cd6735aafff819f9d244cf8bcf9ec15770903a3cfbbfaa385cb960692923b88364100ff67a2dca71154700e0594dfd66ae557ccc6ff36519a2252adba29881b7dd1283d3b621b40acdb3bc22fae51c5a64488a3993ab8fdefb1682784edd39f0fd80883fa378cde6eff656f57119177c56a9 +result: pass +ciphertext: cda962ed9823fd85e1279d4c2855e9e16b01e1228905d7a7c243f94adca4f22a33ddb85ef0cf052b8968e3963757c19d104fb566b9188006da9ce5b5c57ea9c30858aab0776459ed0272a0492705c5643dbd7110ca2c2e6a4dfa8a00512f9b2cb730d5b94cb816587fe6714ad7f69bccc08f45e78170be9cce0414d096d961ffb1a180442f510fd65c5fa8ad49afefb8d96a8d85077dca9ab501aa4bbb91b121927ceb461c6c7b907aec1b6e874db0ec7171522122824975b1eae1f4319ca046edc531055034a1fcdfd37b05248ce9a1fd240e44dee1264989e1380a5970e533e10a41498792de3390dfbebe2ef26470276046867194bde9858589c8da307b3093f9fbbed633b628973e9073a9a2e204d436bf4b5509555e0e06d5bc8efd56f2e3ac2e2265987811b396eed0dbe7421d01a09dc97b90cf3df6dd959edaffec7d0bc17e01ecf78025dbb35b6cebc555f89e87e68e272e260fdca9f7c0b886f85d23b7b38fdc565270c52395b136b8f1ac289b8d37358fbdcb9c516eb4bd0d9e75afdad371c1a2bc693c3dc6f89a5c731666dd5d93c9dcf59be90a8fe8c48a41b40285fc43d6ed2a9112f43d7f46f79788642518039f9e1e51e8c21ea7e0c6246fd8395177b271d9dc6e3c5daeec361d2f168d3f50288f4078de91eda0b1396809f9dfbbfa54e6803894e802396d50accf38dac484237f1ec851d93605655d4ce0ce900982618baaf24b3e7521838b9b4b1ec656684d82b3a2f82fc06d1d29d3f00c83fcb4c579dfce129156b809410074fac770227de7a1263a8c9b619781929083b05918faddb75a73ff32ac0925f7cc336dddb1c03ffa6e7d4449053e3d9452b971bcaf7a914a28b16ca4615e76ea00f3c15507df347254a10f4957a560ca28e518a5569d1d153fdd625b538b4065c6375d8cfad5aba472ed15537c22aa8febcaf408bda07bdb83f737440dfdc28da8ce43bfa5edb7798921e0c70dc6341117e70c825f7bc9b83b8c5c036bf3889eba5725b7e1af2fbc6aadd190d3ab68f94f80bd71a4b79aac2186fba726d0be379f1669ab4a91e38c680e38f1495b96fb45533d73d62685621092eba9068eae3ea1ad1c27d094fc6c3d5f52c958391bd58aa00eb55c329452dce85199414e61abcf3608133dd72651c01cc7a7c0a1ad3593fd227d714025bd57920e92b1a3eefde9cda50456aa257ffb85668064c5b3e22c1b0d27dc0e41a8b68d9709615b5138e6272d4f8b7fb26ef147dafab88cae1027f0ae026a413f1f130fbde445df7dc517471223e5b0a5fd96fec3294c66fff3799597689e1e7c84c8913bb9fddf91bf77b339c8cf4412e8ff8d496c6f6d97ba772ab8b1c44779eaf1339e87bb16799c1291ad46dd9776d4d3b15de11931c508a6eba012182784e374a381c671d26ebbc2c744247438e5fbef7021001c233542d13e17fcc4438c4be9310f5fbbf9ab2cebb2aa2097d5f2d30c0471512e8b022b43f8025408ba09c31a246a8ebd9fe904ddb03dda3f1a7a74f64befc83f89375628e7ffb587dbcf904b8d7a5ce52407eed130d42dc4554771c2a10b11c09373160463e775dc2ae642fd76e43441fb544ecadae0b5d6221f4b65b458f02378ab217b4e3e980b0d0ce70f548e5b0b312133dd6c5ab74fd947109d5753168d395b6620d4c9134d6640f216dc86453360aa47e0be2ca5a4431631acdedbcc50e8bfdbbdcfdc9fcdd9695561716ca01f2a872dbe7704ccac7fa6d57bff833335dacdd3b3da12c5eb03556271355881dd2a7d47bf45e1dd87a3a7253357af6a4a92016c5da1816c089be187895f3a576c23226192ee5b66fac243fde774f645552d87e6a50d75ea560cedb453730b7b4be30c5420e2103db839ba14e6c35815020046730762ce2bad97b004db9632c5368fe4a613030eb6830767ff15bc01243158c4ea0033b8989b18f4ed2e5885313044b81d03a0ddb47404b815830c50922a79882e0fdb75ea99428435e776add924ea6921a01bf5fef8995904d09a898b095d5aaef5d46d253ca3a36b4a89d4c34d3a4d6b56465210d4668d4a201d0415dbce1170dd3a52c5c9179aa1ccd90619613ce8a09d09a44a8f042c652eb1c4836cbc1f8d5f4849e4f25ea5bc313aa79e48fdcad067386d8d1216273f7476da2c64cae20c0bfac4c2c4c3e2d05b080ea5c2b14d83d3f199b310f956c4a9345c57265e0a50ff +shared_secret: 06b3f79ba4b060d1fefdd589c9b87c48cf1acb34e0491e98b28293fb6b801baa + +# Official test vector 84, seed: "d0611f9ae5be4da5d7eadc9109944348e716cb3daee545721eea8c892e7831cf2e54603146454cbfd92387739e9a78d8" +entropy: 70eb3f791faa91f1f982fa477dbcddeb2c55691c07f93b04cd31b37544c94b42 +public_key = e5bc009432c97a66bea57133df41cd6d6095a69192226c8a1c6a0416dc13bcd39cee2867e991102ab5c7ee37ab23d33e113b3e7766b7c652cd0fe03fdcf38653149139b532ac46b7e80229c2576c44834080b75d9f2490d79a23e6d6cba707458c90c7bb758e3c7049d5868b32e2c50441b280bb1fe7528924181051a9b35c6ac779645e6554b5deb21959754f3a47454837b9512820d04722a884b10e01b5acec05aecc2a778091bdab81f0091ed67a7c7d062085866df21734959206733257294a4c82a7295a739638141aa3821c764891fdbb64dbc6aebb67a8c82caf86f7248afbbce556055405ada63ac9f6423de12447d89746fea494662a69a021733592a0fed82749e73d4c2c9d192c994a535f126700a6c4cee988945353c9e9d2240828bb674bc98f22a298fb6750da5ee76345ee1b2dfda01862d2116e6607d3c251ade46ef82974ebd2a14502684be1cc3eea46cf3c2b3c4c14178a79fb495a44275cfbdb5a23ac7b8a911d7ee2ac0672b997cca5d4442a5d80be02c149c0c333caea0090937df91491f3e03ca3f8c85357001e4b0c1c9a73be64abbd7c68776179d4696fa138834325715e115584c368b720ac8eaa45aa4176e9860200cb56c41143985a6bae63aa16733464acb2cc948a949528bf6a91156a3a6bfb55bbe1980d499543720cfd435289c880ad10a4e990cfa2548f17bab1fa31a45eec41361198daf50f22a271c7f1acb7f70463b9b4c82b71228644b3421325b09de2946b829b31e56b0c95727c762b5b5d078c1bb46ff2596b4db6863987c69b26225bb9595d612a5a464d84b6bc775701fa5559d5c8cb55bb30e2e3bad532125ce9c790774dafacb19f4c9dea8abb25b26a6c6a51e27205b0d2031938a9f1700d353c2997e935461b121149a16f7a133af9a103b34e2d3180516a5421243769eabc81952a407486e2111238d99bee90554c32aa12e774dd9b17a5d98cd68029f1bc8671a9015591cfee86bfb8712a5948b9455caa51074db3771f89e74695524fe030aecf998b6eeb301d865f67b9bf4718476026ab3161c77f677fe77a301f357caefac5e579bbd0b34b51b8b58eb71c44c52dc669b9341670bb653ca363096d691680c95a0086601448c619050486b6c244eacaa0198f77d987c5083853b0b9b5531a716a10e7517484a36e38e465e4c855164b2091c8a23e5b2f220524285c739d8b519f55ab1d6c4505ca6a00f6cb6de0a16e1355c1c8824ea571611b8a3925c4fc64a5de44a2a1bb189d48aafefa13ace52290a615b5b4339008181d428f3d33267cc135a2649eb113c023432132a0b93bf08203b40ef0e6465c1ba8a1fa517c37c3d363b80d25c70248c52010cd995a866c8004eba1ae03e56e4783453e52609d6c84264c836857a24f2955fa955041a44c6157bd2e627124fb102ea2bf87b1ac628a393fe09968d707c0f27105b491e19c34dccc207367ae309cc1a0f0cb0072781c63642823623b2239335a73db76bd449b401cf5636114a22863b50ee32bd4804006f13dd66b44058b43be960e9a3a5adc3437298b05c7b314d3fb9d4c7020b64b6488f70a73811d934bc0a81677d1664bb497949b757b02e074e76c8a2e65410158973e30a2a9b6b034c0baaa22cd62a421bc25c7bfda61d0578c1436b808540cbb608cfcb78c8af6a43188bc26f637ab479a1ce86242766d9daaccd93c13d1885c7c994acb657fab0a75de17037f637076f2099560799520182b8265f9ea8440ba9e07b084efa2a6cb244d7db1a39b10297eda34bdc82bcb6a2ee871bf13c1cb8ee602c0b3818335895e754ebe75476ee1786d4ccb52c7164c33a76a3b3e2b57b170c34d37295d22e2351be21a95b6495432a1a5e8489edabe9b71a4459a4ea08b8dd65c4fbeb66a5058cfe7706d8e09381979b608230c7430879bbbc30a6150af273cc4d52c5f1c43e723a036530eddf0cbbfb6ba091b0861f1c751530ce52c947743a59595c15e529104a892e089b912975c7c598b1de528983b5a66a7a66c459610f63e95a7b1198b4e42710d69ea7a8fc3880c0876da82ce872952120a666aaccd5b1001b6b99877610071249db481117cd69f6a252ccaf1a64b45c84c2004eea971ade4659e3508e7b623fd9658f1ac8789297a8dfb3de7b385d927b522126a05aaf40635372f59af9ed4e64cd55048057d8b30c04fe6c876b8a67009 +result: pass +ciphertext: df6932fbd48242f30e3b1ea4ada5d8bb84e27babdadab801a1ed8d36f93d123cedddf0da50035531fe9d7abede9969acdeb76d9f26648a1d0c2f4a03d78e7cb7321adac80135603cf52b48e6b9e577b167c8b4227a325bb9eaa7bcf517eee62c0a30206b140ac27023ffc1c0ed126002e5c54a146f29f615cb320b7d19e1d32704717bd271264852d8e154fd4739b54ea3fbae78eee7c6297dd59489bbb35d29994353caa7ae27850b3722f56ef241d6e2479fb8423f9507a0e232cbb0554af598ef5460e151e2f69f04e8508ddd1e86dde600d645906b5800ef8cd70f5a11b9c9db74f65b03b0c57b5d9d3ff821690ce41ecfd9e2f80593591b48ab8fff0671ff47f58f2ba533d9e11f6251384c3b3d7ab0176e1509a274af00df564cbd89d5145b9640249a80aade7e6c6695ec3628e1a035216bf49b7e4f034029399d3ca4d60455d20e460005a21393c5ab7ae4ba564cb4067ffe1f51bcdd7032e339db7875f3bbb99ea2893fcf2e055d4226e566260646a09d66c6942fc24f3a06c8fdbe46e95db21400a75501a6c10fe94d5fd1de7d110115525428d641a695f79fafa86a0fc6d2bb01060b9edf55f2efa42ee9a3473bfa966c98a2091f01d8b85b48331a727ab9573da40b55d15e5f68d227c7d8dc803fcebaf3fb171b32bfb30b82d812ddcdfde1c1833043664db97729967431194ab78e254886c404a2aba5d2de25e8e5c6d98f797490e8b135ef54c40b77967a58cd733850adc1b56fc39a5d1429ec6ca0158c2b4b5aad303834e148aac021472b10e4e4696dd73c49a7e2d8e6ca56674cf267a116cb76cddffce8ab6f44500d0dd66a0ae460571199d17b87d3dbaa3832e90f0e26263ae301ab6df79a461b91bd149a1e99187c09d259baae83cfa3c9f33d4bc700285f25a423d05c0e9a50e2bc3efd291c8f74f21c5a2b7e35f13d3e13d5e78c84e2cfb449dbc02ff4f1fd5e98164c4ac30f6663e2ce79ba97997370637437277bff8b2b08b1a8183e4b1c340bce2a85dbeddb2cdcff31152829c294355204fefa07e75fdbbfd48985ede759049de9f1625d43cc83c895e6b0e806874bd74c75f1088a48b2f0eb4e37f70cf38d6496abed79ded46ec7c6ed709161f2996a8fc337bcd8457f155252c0d2b5dd21937259c11e769d507c713b558ab492bb055d2cabeb8f5206eed3d75daa508a1533aaf3a44307d542e7c25fa8ac6a38df6ae99148a746f440687fa5822c02dc6c2cc625f90ab9ebe52162d2382b851b14badf23737e5e94ef61c8401025dae044d3f6033b257fd5a8f8b8ef1be2b03a4045f9da7fb9bd0efcc0f81dbd526c9c4cdf810bcfb3ebe0ed96e0bf69b0d1c311152e715e542ff959ca7ef7bfa072ccca22a864bf3c4514aa23867f1822be589e1776849d1b681832f41f4ea2109aff5926abf92a2d5f546206bc81b40305f2f2891acee0f32443d8e709c27efa376522d8deac407202f258afe4810fbda7868e916a683a6170bd2a221f33890d37db1a9deb131285549c13bbcf858953298b0c2c1a2a39eda9e7ba0c4d550709f17492fbd138df32c5e3d99d7553a3d5ad82f4c81e97560c1f0df2abaf489ca7dc841f12adfcedeb8005d1d90afea3c6b44e646b2774976074262364341f447a34b0b2ad77048d426b8502c3a0a66564ce93f75ffbc7589d774ab33e56a5a2e96c060f60396b7e6016031826c1bc0eae28f3694ffc582d63e1a7ea78c9abee8b8372f7acf672efe98e383d06ac56f03de79aae74c3a9b82a9cfb63e083dfebf2df0a50745c4f41b11e894d192a9fdc272df804a0cd577a7dca7b9b17bab29d537396de43a4554f2b4ecff541d3fb544fb12785c3d200d8c5d75c9113ea2a2a8a0e8f6bdf31f2428de88bc71ba028e06654d1e4aa78745c1e9dd9e5530c3037578bfe6f5b3f081ba5276b49e33992f2ad4494101ebfcce435943ec8c948eaf0cc109f82d0fcad7372fc9791fe4d99c4ba1cb4bb76072e98f76ff1c080ffdbb1790f886c9769c4011a36e9d88f33594e90222e1bc14ed23f53014a0a2f26344c7b4af10cf4b5dc14d7f3a3a9ea3674bfd295c6a78343fb64270824b10d79dee3d8152366f7c4bc99336d69b5fe117dd526744ad5e3dbeb255bf4edb49670daadfc69373ca1e70ba7a3a0839b95afdac0d293f39865013f9746c8eb4295aa6f5a40bf85300266fad6ce396124e71ed5583d +shared_secret: 46228506ca245daf1bf40b48167a9bd3603c5d123db157645bc93780509b404a + +# Official test vector 85, seed: "fbc38d7614d7718e931edb850d2c6f0c5eea9ee889b3e25bd69ac255d5b91e885d93e808e66bf9c88c655dc594da5792" +entropy: 30f4095015ba88b6d969672ca3f438c395dacf7d476ea7a9e805ce932d270a13 +public_key = 5e8ca56e95a1b844147c6011e93057b8d35b6d6052ca045cc1d8444c1b603ff211fc67653a03cf7d3930373206d4ac62090712be287eb6404843c5c1208b0b993c028a445be50550e2b5625e3124bc58b256eb0886e74ec7f0c4d082a143139222b80037b61649e1b4f3079c3f12cd9742486de788ac1a987c158f5d20296742af5953617a5608b5b965ce1cc261139655a09936f555ad8882f3d7b823c400fb7056abd05bc4cc18636141a3f0c0688b5cc04455b768be41096eb7676315f808953c8aa95656e4686c89078e36290fb0b01697c56e41a0bdb7c9c6c6ab8f50eaadae889fb9e0a41d757ec6756bb6e690819b95bd02386398817e1c9ad7db807a842e75017f5bc6b46fa6cd1580993c1238aa197931c9b55d333e953420dec916dcb00b657b5c6fb538468a855e830f1afb9eb356098e12226a7a0718919dfee4ce6e275211804079bca97f291355790aeff36f7baa99c79ca6a4fb1979331494407b33cc6fef3663fa018e28d76e49eb1b5fa828fd7aa270f917e143a9a7938bd9a05d9e483a2d7725061a88588c3df6935ed6c411a149c634d0376decc87d2988954671c8e9249f517ea3d939af8a71d505a628958c634221f11ba962aaab9fc91565fb647973633a4946976b379199105eaa8e8721a12ef43325f08fe6e173bac2243ef74f92074d7e96124d70b3327839806876a6d6b982219bbce5499bc56df2b45af9cb67e3eb878d02b881a5ce9ec55b98808c48a2c963d8854f0172083c9bd2f55b15f6ac7ad7156af33fed0a5b6b668d654b602cbc3e3f9b81b3eb3c476b5bab8b6c886528ae4699e3768b51cc7f48ea9304d77cc8a708ed08321e97228ecb97aec4ba224baf4e684fcf62753985c8ea07c86f501433f40c21f6903cc8166a7332c0b6a8a9c121c41c35690413e98a1a0fc672fb1cad48d74044811f5c7363d7b03fafe2a6a3634d850cb4fb505547b72daa710babe7165b50ba090338f6001d8744041b5b3db9dc2bef60c5b73928889975f51548ab72b4b88a85cbe2457810115a9121f72a3d8dd6bd0c0b2476b2bb9e69a7e613a83d820670596353944a26a16115fca33c505a4dbc5c1136ae3a981da1d1a4b2c25ca0d5474916675ec8817a969e78812414053a4d0245d86119e1072c8dca8c211b9bf3c91fee350f2a0a392c4017c5705655f26657c5090206270140bb93718c37918b4ce79918a9356161b00f09a43aea259ff94d0dbc95a6b83eda5326397750c68cc6b498ce974235484aa453334e05c8232dba3dd1a182ba4543b4a944a5220c46d56812e125c06bba360ba7759cca24a1cc02b13ee9fb75ce8459df3c601da31ad552c153f789905a105929a223e3101f32431f346bcec3a128b0a3c3d4290d270b34e643e17bb5d53b6d248455502c71edd01654d028525576e3422bdf69571e9c10cf3c3c30227c89e2ce0c62911e5014b78b0cdabab060579ebf1a517414bbe5343bf33311c0ab1f659b3d30727184ec1aa8f1c3a3db45fbe215aca961fcd8ce98429d381995280ca0e5e78cde55442518476e0b404a2668424719abe71d64083ff8b63f285396f5989dd4aa9332426eece567d8098951e141ec43747c17cd9b1805f9245e0819ae416c61f3c60818ea448d397211e8b97e755494f0403a133abcd0882ab907e55a130528a5ac535ade736081d1cabd62980355cf85f84559ea36d6d3855030c341babcf65a20c9bb67ed4901f8b2617c7b9c8466976da39c6780003b71a74f6a16339082e6a62458835d30f1b32041bf9ed21c65ec59db3044dae0654e743a5e65836a4b9c5d2c9c4de859b1a6755ae7860fa6053de71aca0a61cdaa34eea773867a7ce66654380219c7b756d117a81e1c1f81156c6d5cccfbdb285c831317e5cfb8fc50b673600bb46469bb3c7c6072d87cc3b17bbb65b95e81875548b63e3024a24a329a4bb1404ff862ef10bcbe6a997c847650b5402b888e0d71c900d4a4a4cc429d717d3860a6615869f734244a0b25cd463371b189a243733469bb5dd97cb3e856cdf2ae64fcb519d9be1a75aa8794542f51bd67878e9a1b8f6d70a650b05b6a609ca9f477579264b127230966a289295719158b63931a3c0cb764e4847c9ac8bb91598b905a650a0123c7c0fb939f7e3943a2f3bafa20a221f37dc17933cf5e868b958e4e7cea4cfd021ef0ba63ff7a7250d21513171d5e +result: pass +ciphertext: 266487d97a7e78c94cc702e1869784dee13c887088707aab4bfb065bb5ca21efe01033215c2ea740d838bfa46fe849f697786ed81bd42ada9fd509065daedba4738c5299b3fd20b9805bacca7fb67777b05e2d1f25b56335b2176b59fd4e6cdfe568edfe76fb17d9ec39474983f44752e59eb2e18d8aa659f7a0dd9ed701ff05f94576f9ce83c4f04e2d47c13a2b3c407c6083a486d299c7e335bde88ff84b6677938b2ba4f6d307275c5e883b06ab66de74b5613257cd17e58409a8ea521a81b43653f652ac178c3bd19204addb4d6d66e9fd34363c7a9359094600212baddd2bc5b7780b222c5acf0e866e16adba183f12410c7cf91a9512d567bbe8bba633b363ecdff1fa198abb376b1ab479fde329ea207d0c665a0cae43350c871a20bf99f3b867bcfcf26e144c64b38131558cca0cddd3afc9c095621bfbcf789af1db138a58c5a2e97dedbe0c05d1d2d9bfb3ab3b1d87770d61882ccda744f67e89cfb89385e989e48595b975ee51d3631187f67d35640aae07eda8f0ed815b3fc2bc952b075db1856c84d8e20dabb7b1ff3f3fd8aafee26ba1cd69ec1c37073f27cbca57f1e493a1833d57702baa80aebcbbc1475ea314135f1598dc69737f325dccd2c817746ffe03302546ee6a8dd0e66d2487fe0400eb0278513940dc453e95b1c732bfa691459e96d864e342d532f39fd1099d2d19f81349c92aaedb560d2ae2b97859b430bdb4662f1546056ec29f80f582af1ca3bff28aadc309e3e22f63ff8944fc2a2ee0e88935a6239a68704eab53e737583977a66798436acfd373eaf5ef04870ceb6ad0077075287892c01a914408dc1703eb332bb66c4f721264c2a582297bf4853a4d402193dd48fd80401e1994685f600bc1a1e4e6c1419fb944e642ae4aac3f3b28ed5ae13a0fe822a019174e4aba84fd0f84f5623d54ba6ab820859827ca997039018fae104fbb95756e4a308314dbef967add842940023487d5100c1d146d5f5fa270b1ae998e08c8370b21d4fdc3b7e56ba64adf9f8f7c4af431a0ab53611941fe5be38abd05ec13456e30c48f80ec39e111676dcc831d9f41c1a3861ba29ebb24784686a2fab5a50ca72c8d7600b2b833683e7bfe2bdf9b63eba575620cae84c87d7e9e0393d4f146ba6c8f4fbd3276567a0b45377f55c5bea463862721be3a02b7da77671e48891551c753520b52962c2d1ef4ae3fa1133f7c065328db517868003a28c59562d40d8cfda5327fca66fc54134fa303b506e7fd55ddc0263f72a9579edc9a8491ac33145338b81e1960fa395f808ae09420734fe952056fcf038af61ef94983750bd56c72ffd1dc13ef624bc3ce95239a71e2fdf9e403897cf45e581ce8af63a245223adca6a3a31132dbd21d55482871aa606345b27966e2e07f175ee4be7cf0efe4d84ab6fb979e365b26ed749eefdbbf2148eedfec6871420bcda1467d8e5ac88c3d023585d8dc980cb6d0423f016eee54ff9f93a62cbe758559207e9cde870ba5382563867973491735e0c2b745eb79b88f1852d585e90f572cf3e00c6dd2987a066ba1f742dd7f58555f5f9f3973334ec91700cd21bda10628acf624a31f9395a468bf6ff78d4484ff60e44c13af103a81d8d0ef5e26efce7530983527e95fa7a5f6a4280768bf91f0ea21efb607c73843a6d2f80cf77656f01608c3102e1bba81f2d72b37fe34cf35bd7150de20d30da1049499d775107c306f88067977231a06181b3700d602489ae9327581cd431a1e83fd3dbd92bfdcb787743fcfb066bf1446fea699f75f9eb3906cf829e31497d74b92c7bbdfaf798d2f54b91f35bf2eefffe1865abbe4e399e27a78d9e32c683590bb77fcd2dccf1ce27523adabcb3edc0805fe5439409f9ed2b90537ecb2066d7560226d352a8e67e54161ce51c380b8ffb176852d132d0604685b5b267d01be16fcc2934b325bdbcdbad79cde7d4ba07a3c63a2e645fc143d62827730ad34118eb6ce61ca2cdf890abba3f9169e287417c97d0719da6b9f1a45c179b1641dd0357ffee577aef94efd5b498868d91d19a780e2b65dffcfb23d01f6536d91bd49fc0e634b79449bbab49f612d41afb45060b448830643a0f246ab5019ce2b1e08f871eda66bf23ccdda8a421985b58199dc3d7e42207bf830b2b12fd859578aa2b153bfb93e65ea210a5c0f024925d77fb096b50c1ca77758fc67118559dd7f +shared_secret: d51687f0a54626d49e07e8c8c272283b6b4f6a0c85c5a6875107b53c100264b5 + +# Official test vector 86, seed: "1722219cb5db47374eb0af0232c856a57f026f1cb09e5a5799f4c333dd422ff6a0a67c4da502faae727fb2d45dafcf35" +entropy: cf31220f44de862e1719570e1b26e897790159366a385452334fe24cdcae28ba +public_key = dffb649aca864c32b4f082ab455c94e6fac7ac1c6c46943e0d4b811e48a80f18a22130589937a1f4e4097dfb8c3342aab55648486701ec3c36ed167dac427c7dd54a6ef844468a481595b933701a2db33235439d702967ac1b77f47391e6700596d52b534b6ef33357322ca6f1c6a6917b1d8d9cc7f83028437c125912b4e8d33db0d00b6d475452f41a5088a9e5d169d1faa564b220c3aba1d6c27a5b87aef7f4afb75442c0565cb78c7b81144aa3c209f9a808d43132c75399293400ef70551b51292ba501fb613998011a35153046787183580e485bbf5b81bb9fc690ecd0cb7449615a0b0134f559b6e1062d9209ca62aa10279e2c7475e48837e70a2ddecc66d1ba5dac35760a5a5de0764136618b78516a0c711c3c4440c1f0117d617cd64b55482c952e7617176443c802c8046012e9b774d0312a68c49c85a44d430984ec510212316d43ecc3d6fbcf9736cd3e712d0d3011b645107a22b9d8f51e8dbc30eba66e98624473880c3378b8bf933d6577cc31d0105e19565f848290059604f9b71b755e123b7401f204356120c769cccc2b1660e03e688a75fb370ca4088b46d955cb24b7073c8540ecb2a537a66980332df62196d8c6e5584b7ba8a4c8739eac585a812aabb33a5f591b428e50c7291415012467d49b232989c34711009806249580a557048dd3dc0d2d6599cd556ac325a5c00b8820f0c9dfd3336bfa5f61d6baa5e26b848b39ca02cc542c1dbe90ad8d355cec4c9f3548868e9052618c86fb729998cb4cd610c8fbd86429621e34d11c4943402c2598b80aa98f395a85a180ad402587111de30cbb41e0c5f6044219d6a243860fa8da94f2fb878c8625b8e8243731aaf5b511fe7b3c34ac3fafc68df6d4be563727f705ad41245fde8048d184337e662aeb85135df92d4c1a3b36f1c984079d50248f88523483cac2dfe959162a79353708d09b399e6534aa88aa5bb3cf3eb59eec6a5c8309c6980bb2e4681bc47b7dc2939ffd5439ec4473606166da1053e9467c50854712490b583ac02a657c61812336b47a5e2912cbfb4a1acc84991116b9cb1497f199ab41b98bb54343d188ae54a269c89c36a61be71898006bb9ec531d6006325a47a13995492f41498790bdae9a9e41c0cef6fc78f8e027380cae57c2372308a1b0c2321f8ba17867a1358c5c13095617c2b276aa3c0b36588a9c62683104db5c94643c69c1330db1fa9a66c107c62567f2898419008b9465355af511afc923415c545ea44f15e7b98dd09ec0d79da5893125d6125aca7adf78a32f918af2a41cc6377c04a627fbb28ad5bb65bcb16e3f32622f45b5600cc367348379894c65f494f79948e6e1941c10afc4cc00ed871e529c8573b36debc7c80364b01ea874f345271517b6c399a6277b80bfc1a9996a3748a0bbba5a24abf84d6a714695202ab7779637f85774c27a51446e72fcb59ee684873ba60315a84988b5936674833a93f06b283c6cc1eca1bbc36a02c8197480c24e17e2316eeb58b81a3f5a063b1dc4b20239818c8aa67fd96cf6ab52017979bd82431c862837a1b796d0744a27559e748db8da63676369795ba92d48bb11f9bfa5393c522403b6379b0d2c82beb17ef29b37fbebb387aa695d54c241d51fc3d5bc7f8316100021fd805d76a601862473ae3996b2840ec274bfc37bbf5119668dd0bb0e909fc2a28f3b3c469a9b279bc4810c040b70781f3d67c584a965a94ac1bc088cd2b61c54f301f5dbb82f110c20d51a6c882cfd3c2ad1e6311fe4041eb6cefd7681e75a72d7b0cf39742394e33328374e5ee5b0fb3b0e2c709365780ed3191e56008280188baba9c745fa5a8958c0ef28c1fb641e4ec13dd77404dcb031ff3b670a2092edf848900818c7104b3e457d4189cac8082b55c55573c2021fd32e4b331eb515092843c323b02228737b2c8915beb2718d63b8020c2b3a957fa5029638846abcda5c3c0cb2aef55d05c38cdc1755328735901ba53d685b939b168b9cc55aa0ae05fcb8815400a9dc36a58a1f4f90b3eda3060a4490751413d9c1453ec8cb64dbb679fc69073c9e839c40e8ba4cac38124c3697528404bcc6435c9c21a5b89cd05516686b4df7da8ed3bbbb9afc428a842a90bc09666804988c7386b794b460105fc5035dc3018dd494d421ae46f978b305738d5f40faa6dd68ee73df57c41f89935528e64270c9759d496204 +result: pass +ciphertext: 6b0bf99e0b0ff75905ca7bbfa272c50e2603e7c2c8d0d7a28aeffa277c279baa6eac0dae07dbaade7b9e47f863555ff913e0c55410e5eebd974cb98e3aa0f73bd7d7bd52c451acea0137df60c19ac883f92bf27fe16d086457c46820ab90192cd4f1bcfcf62d7904f8af6a028e4ea5e490f404e88596d0af72f3b2e1da4674e20e7a437f921f036aedbc3619fc9f0a700eb103146fc8ced979319283b7b32d58996c7d430fa89db2ac9e717b51dae25147d92e8ad5f01d738b3eb308087a4204377ef5bb35f8d02c707bd407a2b706e7832582b288a082b238c3bbcba73604537956c3d12614645539ee1aa5449b721776fcd829209e2961478d154f122af4e4e42a9a88a02579e2e60af3df04d56189d89ccf236c5b51d5dff985c1abc0c18cc85d1e01d8f0a95e88df078c296f50ea8efd6d792ddcd8d694fcd935206850f423240f860d94b9843822a8818d9e24589ea80be4ee48341b5fecb9064e863f33840e7f48d2f2ecdf64330ed811c3e9301ad48cbf5a8969470d12cefd1a927636f8f34d78fc1427f9e3876ea2ad0979aa967f70630a2c0347118b8f2fb54ce3e61a2538b57a941d3c8b14e8c7c10af9bfcabc00af5a5eda911bb1a489b45f95ae1e621a58d4c1a287feb55a8deb01adaf0321f2c0979faffecad7fc5474f62503056582157d7e920522adb236dd7a27b1d5d61f2b13924b78ae8fbd8c4187be30bd181cd57e138518d4914893c6ab475d23191b25ca3ed1ad74c0a519d19b3e269f0e9408608a898df75cc8253dd36641f280369365d532dddefbdaa9253e732f767641616c2d2232b0e3a7afd1b46acdba3f1ab7af1e422bf2c4c9b8e6d1585a50b900888dab0e2d7f421d213d8842ca007b9f5fe7f76c2ddc963671cbc896f5569a9531b5c22bc085f944edb6c95cfb6797586c8d8eeb40055aa002ca3110e9254e1af1a54abe82a0418bbab6b2325ecedb6056b7e0bdb9108f2f8443ae8279e0fc3db874cc2c0026c2b265c2bc9b406049c015da6c8d86a3d5b23de546a63b8d8d98d9e3cf0a621590e443d8147640621addae6d5c1cf2bbfe3427ab820ac18c2a0d6309c29568e064bebf72ba372b3ea006260b3b1b84363e1478fdcb8e727fcbb80fe0daee1cb4d0b47f3fc5690e8885c9e76e299ea74edf30610cd418437128bd48991ed47010b3f7a1536292da3dcf44b9ababbb2914f53d35f2a1c2e5a3ca48d96ceecc2e92089101e8ee50c9d0ecf93e9f4a68450a3fb23b34377aad47381188517d8d0c6a185a07d1de4a30ac45b328c8104b5fc35eddbcfac173e4b668d603ab703abf600d3043d6b64c0494fc757e530fc99b13296200c2016089472168c9230029ac155aa5d6ae83da44880a86483ac0a8384862747947e585f502e1b1e3aecf4c9c4ac62f8cf348b23e0e015665d97ab654f51f624e5b54efe23b83daf84df2812eb434393193d0ca8f8c7f60f354508d5e46c97c775417cb82b66a4d9a683c2d9397e3136ba9264ff9cd7676995932d9f803c6ebd2d446990bf5313cd4677fa10ea6d9c5d5f3bbc00667fca3009b69b953f22c33fcc800b4e9a96627c838966cf00e2b5647725ab18950de4fdda622b8d19d94c3b3f188068b4e538c1d8dc8f69d32d8708efe5bbeab6a9a3fd9bd58f2bdb4691bc72d933dd6b303e586987e57a212af80bbb763d43b9adf32ebdb28113a6f3911d95a1b75656efc36c4b950f4b523bff785cb5eb1ade5878d53c74e113a1f6f97abed9bcaee8d5a012d9453720cb4217a359d5b800569626e63b74fe4439df428f380aa00ee9563bfd8fded9d364ba45ef5477a4f27f6ee637435bd5b7c970e181733bdad678dda5e11969bd2d15504f705e4a3fe34ce6d6457dadc0300f6640a8d6c53fbbfc993c42f2c26a9dfecc04ce2bc6e63e1258868f1c787287e03dd4698d2d400bc5857a56ea37d8f02a38a7fb02c98f0c084aef51a83e8c4853043f71fe70bd1e6d758e673260aac5b305028091fcc44ccf993fbb232462dbdd6694fec69487fd6338b4a7f0aa0c3c4286223566cee9c4facc6faa84fdf7fd41dd1072353c51f9e5d99b7a15b9a7fcd960bb747a8a4a0980b99c847db7e6793b65cdab1abe753fde758c55d6ef85bc81df59cacaeac2368c255374fe9d1f94a2c482f40855f7cae9dddc131268ffee6a5616312893b819e285390ca57d814c9e3790989a29f9460 +shared_secret: 73e86d2bb2813c76a8a901b8c665497e2d16615c5b2d58c9772306a3d6bca39c + +# Official test vector 87, seed: "ac139b78fd16ca0f26d6d7f9e15345c888d857b1910cf38d883339b37ead2dcac30f7cf10176f23ff34b4488eb79437c" +entropy: bb5e65669a44e5d5c709bafa98c16ccba6ac2c4ae923334f69a11543eda64f5d +public_key = 1e4205e8fa992213c49059a409aaa3ac72b85837cddde4c4ac42a9a35ac7fb80ad2d8c1eae7019276b1f3f3a6761602a01d99d4d050c23892427d6267efa092b587a5d2376012cb755627b9e63a2a04432260aa1abb2698ebb6075620ff11b01e4d049de698966fb49bdfab73675586583c744b5bafbe9692b6c6c1448899ab72a8821b52b4bc061910fcc70beaef424afeca7d3737f4c7c6711b38dea919e1a13c78160c1c652a81210c010c48908b13101b04334e6534aa0986ec01a86b30d41cba67e573ab6b0cc1a2c973c0041bd26721b508a667bc28e010265b762a223128e092eb512bb9d6150af6840581514470212d0e5c1f4696e45ab102a91a0848497e8a7a52ef20c85d7067e6a1f99e1c0de84473b735bfb001e860c3194029d5a06484920bb0e371114ab2f3bd775248a9449d2c19de5023876931de00dfd609c95c98c133bcbeeb52c0f713a19176dc90b5143a6876ab45b7f717865d4b8f0b8a2e6a45f123b85c8fb584cd3c042676ead069cf9c23682aaa05c1010e122473907547d79b0f8b61180014b1b3a56b88b3b4fd97eebb21eaab37883889a37676c61061d41b40b49dc5e68f64ed979bbd3da4a7824b32fc0bab9985a94251fcb740bd2b103f9c21c25bb055043c895531e68b17a3cf3190683969d6299c850b7d11a6b7a183b4b3a3daccc41d3321f5c088035102ab68b2938975ff180890153135e284155f971ca624c19f15ae4a3023f20cda6d404406c39cc26ac4df1665a3c19107a99bb289176a09e4a7c197ba72d6131980264a907b605c1e1791305974d49b604c81a9c8501ecd0cdd32a5f94dc3f64481164323736435d1043b09fd1ba63ab6956e4216ce47f719bc10f0c2b2830c17886965188534205c3f8818369aa638d5902cedc28b56c9723aa4eee8485151a270d3c1d963404bc265b912c6e52099df9ea72910674bbb8493f670620645fba16c0e6c73ffa20a99d6378433c6c55ab20f0a40c74ba37ddda39d2ba4d7f34c705a4117c618ad91408ba3bcce9fa9900d2650fb109fe2221f0f6219c226b74e7968f5aa0b3e3575be051446b1b76b8a7785a43c824c73688ce495681fe723d97b249e5a65a961abd0d61527d4b18027b00dfa49f4d213253e80ff2a556c48ace2b6a5122b42c2d15622e158e2613b23e62c6398838aa821cb05a4424817f0f9291f4ccbe6578941070b22b9c36bbe89ecad318e4251451a80202a70e1b2274854809e770677ab76c9e9c5cf4e8621e4338a279169ab46a6e5344ca391b80eb12f9b8a582105380384f2fe845b7298e52803989211498b42537b8b1cd22a59085bc00941f190a66fe77a1a6745e8af09762751c63656a26692bf1870df08cb861abba73b50ac6b03f880844a2c6811a031eb412501c79201e686ae528c84b7606aac09bc42265e77b56fde93022a71374693f9ff5787fa0855c79321d147831ca28e7880dfe1c15c66bbccdb93c0e7113a5eb9b97285ae8717bb87c1f071c284c0089fbb5a7b5121770950d255aabfcf54f1c18c8d9b2bc4aa253d5ba49bd2944a8c440d01343f0770f690743dd952f4f6692a60bc3360588f9575636748e3d321050c42c11d75b69d316cab62c681ab48f1880a9d787449440d1f1cfa0386613c2b3d25494e7c17d3e4b1f5a5780a9f088f00a9d6a79c6b1bc0e1d501fdb398421a19e316489bf1105d9f79c74433c82b87a775ca358965e8b1248134a94179c20011121aff04b95130f2ea20a0deb2d3ad8a0f6086481d8297a10374602661ce031b99012be53c70110b53d28966d8009ce6857f778006a304fb402769065c04d25b2f3aa1bae18a692d7552bc9805897c9b65a930ba11c6f3487801284d85579a912664118075b7237e66183c66510202188dc8abc1aba9524e0450b7a29b4d6b5076769b7e419fa4a63521619d1f76cefd0a7de67c7f5491724d063a13bc27bd20e9d486fd5158d3b7c04a97b95bb06895206058f94050dd8c262eb70a73746cf279350125807c52ae8a29db743099f259c9748318f391e524c9d8b46932157c94a8179e02897f33226ef1964f4cc92c7323df35a7700daa10170082f0664e4b8a221da0b5da84f43b79584194aa8c18724a6452760365c316c1f36212811a8e1936578653878b2372fe58505e7957a3e0e0f1ac0d822a80287d204eb6a446a74afae0ccd1859a2544aedfd +result: pass +ciphertext: d93e928dc35a487d9008fdcaace3165118ed7938a9a119b07fc9a2110843cb1f43a8353b000f2ac5b46f989a23991c018f9d43e53c586322fbb7bf31cf3d28d93eda34863ef22f6b51001879614bd8abdeb10d9728183d0f2e6c4c64f9f1ad6790e5f27a6fd601620526f0e5380778bb087e2dd437ea330340444af5a65eff203fbe231b0fd1649218fe4592bffe22f6d4427d053f22cba52c25559c5536b262ffc21c1c384bdfed79a974429f9e7158eb23802b3b4d6131817a65efb093629d3ec4a0cce7c5e8428954489a7c9f10d9efeeb9ab60cfa1785fb0cce23cd7ec12882a840a56e106e4f2251ead429cabcb92a1de08c9e79776ea090e195a80b755d3807ce234e7ca665b3dffdc34f6f30ed2a67e246f8008ddb9dd29aee41495151549c6f86d8233da909dd49fe814c8f3213197bb3300e5cf5ae564e55b0b71c4016067d416d3fb94cd4be0f200d403edfd964da3372e7cbc1fedf96ef3bf3f4f2038877343ea9ea1092cc40249aa46e5a307945c639f9c653b44957c8f121dc4c84cca6a7a2c240f13ea6d9020233f4f75074501f100bb53dd3b7f9a905c7534edf518efb4090c47bd52f09cf98190308eae80b12957f42562d2038c85d1f1712fee26c66fc959577cae0d1e699f00aff7ad2911d6826879161c9b9b12cab1412e11b8a42502acd2baf888b82b8f2e06b03c6cd96d8a2b44a9625d029439d2e0b8f7723bc252e6edd566c394a9ef0f5496ac59e04f34eb0eb7cce7c446ed2b0aeae5ec63d27d7f2a257ca71763af1a5e85fdf33afcfc1ae8f7c7b992b22bf57a8f62b86e7da0aa00f2b2fac92aea4598b270284640a285db6a5a37eb74300f7b2814278e5813a213d89ba2e3c8ee000164d5e14cbdfdc869fcaeefe3a5d4763e5a21c2b27023f26067f2612a5f4f2603dab06a9e885b86aa76d920ecc59c77e9c26b21e5ee02cd31cd740732032c9bc29c1e21b442435db3554edf0dcb8df0c67c0bd2c1c9a822caf88fbfa10ef7bd4bf7423433c5b24cd61f8fb6c527ed516d64890f4a376604b9eb126a83b435ea7e8592252ebceb331e94be13bc4a7a3521f9f6ffee6068312a9ee6f97a9be5b86a8f6e4ab6a9174ae67b05151383bb79781a532f6b6e3101c48612ea76e98de53e13f3a7a58005e3333ec353499ce107dbac10dfdc83671fb506378febc6debaaed17c71069e9b9a51189d76a8504950682305c05a9d53b32c1ff29d7d8ab2b79a5f97a304696c5de3076504d0118d85d0e02c1c961774de4412ae6016108506e038dbf7deae8201243f252bb6c9969ecd50dc198cdb7c48535c1d86fbf56b8e138cae78d1baf6d76001d668e93600032374c1646f19e89e73318e74e90404b3091626767a7fc610771e9cc7babd9407c1de14d54ec1ea0440a320d0a050fc547309d5e65b6be2ca147f56140750e36273b7a0b36d689f90c9c8f7beedd56eecd931c5ad003a7e7f892d029eb5752e19464c273084490bb693677d448a797e2edd6e60eaa484e807a5207b6c0e5959aebf4830de62bf03a955acd692ad37fec58d531ecf49c75582a77369af12502dea9c051237e882dd7399ac9c6293c98cee53895c16efd7447cf15eb50d67469e9f34d444a049d5ad57116454b322c75f67f36da417393341fcff60d5b46bc6dd4a14bb53d7b9b2a70faa788c8da1146ae4964ff5edfc3b239a435c4c49a3a3313bee21295240eb2c2781626b96b99215e356be5f56c4570ad59812ac2944465015fd5f1e098a6969233e0a5910aab8096e75903023f3d11aa37086bf41760d010da3789b157175a4d255631f37212bfbb5a35c0e914db64d31e5cff36dcbe9304115d4f0299599b6b067ebb541986495584181b5f02a10d8e51f20795f2a2ae9e6da72e9682f0c39e70a5331f34a3e11c0f184548f7775c1ee7aa1759a9d7f8af4d876d0c94db0db580f720d0477e48ba4a74430b14635be23632eb1ea40cb7264d786e3d474753a8b8b6c009af2c6a2600d0fde3e03d108ec237508b3daa6bae725f8f9398b8f61c17510d135a80fb939411606080b9f972cac3fd4b1b0cdee99752f42f41daebf3608a70a66e569fd37d849fc469ded909c8cbc41b2c598b3e5e1e301308f2765eb68f1544565f1e1b950b26d16a127601c0e94f61920806cccb9d97f6293271a11cc0de7551ae996c6abbe317bb7f64ddc6bdf63df09fab9fc83 +shared_secret: 17b113a1728b3b0847062a3ad34968ec3192cecdd758fa1c3188d57df9fa0326 + +# Official test vector 88, seed: "cc7152849c98d5fed2813275d32069e44824ecb14eaef425ce017448cd9a401c91c06d0f7eed6d22b7bbe8ba6c429ec3" +entropy: 9ddb3aa9c7905d1a438c93bcf78e3e321813580371ab4e1289e2dbf3701972c2 +public_key = eac2871f16b152d08e74e28a250999db0a6db7036711a24370401ab844cd39b124b8d42e8a15b2bdc85fe3b11c9caa30ee666f260ab0f0e230a5901229b974446428a9e24680a884208a2dfd3899ff1a4920b798ab275d5a10b01503d000c23db72ccbb3a91ab0186fa7850de3055e4531439bfa9cdce3ac888066d17469dce07f76d0397bd46a59c29a4a776c8b7310021128dd248beec9296c7c5e95d13aae21303127778b653131babc17494f0aa63c18260130315bcca7a8c8521e7b9c9544c1260bd201ef23974957a6a4d3658d96a7fd4cb7daebb11e5acec216042cac64af05c8a7db570ceb09393c7a24f5ae305280b1c22b9d68b02a0c521dd6393c20cb3eb798db457ccbd869748aa2cdc8336a58162e56528c3ac7a7bb41e2db1a35257b6135247c7802024ca258f03de2ea93e2f6c42e539617d27fc62510ea016deaf787a2b3b930165ff1fc8e20413b90ebc827581b74988937a018f612ac4098514480212781c4ea128680448b58a5a296b35020c6668acc7a39ec329f3c5eb00c44f43c9ddd612c0860031669c911e0b4d5d20f45ec1b6c5b6be399c2bde785757215be7617aa6a57eb6b797c8c5cf774274b2463d0c85e1343554ba052fd9b36da139e13e04ff18427b418282a5642429825d15636da6c45834375d543714e80530deaae0b006488eca46974642c8307aa5297d34619dc39863f276189a20b75673744fb934420a138506fb04b0eb2e22108c1923784523e767dc70ca546fb820de07bb9663333e623889279bc596b2f559f5699c272c3040602a0ea98c878d2af1d7aa697aa83f1dc10e54017e2e586b220804588473c4b9d05aaae6ff9c038d00f953547ec748e62ba3426001c3f669941596c6184b353d3919e591df898831eb11aaedbc49b88c8187cc13eb79eb09c7e07545be6041a9bd0a70519b17b5479aef79d105b83d74c08c719843a94bd1f76baf7e3bbd6795e05830184c53f42061f4b6b0321e2561b4c474865a0c825c96f9269e12742771c4c9b20b9380540772a24b43c2ab3051b88ec4760f794c17aaa55199e39eaab54c53aef32bfd339c824501972eb5ed299908ff0ab3da01460f106919b450bf00678967e45c18531d112b481918fb7023efa1617da59ff391b84b03ac199a1ab31208b918777a2c8a9706cc8359d09e4a817386ce09757c44350d10c4edf02625ed06dd3db07514639f67828c5077f0eb722f39587830c506c4bbb4bdc60a1b256bb157ed4770e603211d508165edccdb2d6cf37f039578176032c2158eb3c9d48921cb387339267bb728eccf97bf31309d08611b91271ec698d8920ca3bf334fd8765b0170608726a6220a3ecc14023f02aa4f31446b22da93597e4a46d451cada3965ef2148a832221c4d8a7d12157d9b3bc69fac8626b2dd1c44aea272cc2125dc79a4f90b56ea75144037a4f0060c33c5b6eca4572142310ce956fd6f31d23c6c9f6235057362b884a014fb5867b2c1976127a5a287ee371b7430caec5d35b63789b31d176d2553f82c8407f585c32511e3f0cba0ba60537780edc6ca22d1422ec8c3357eb203ee68c8fa135b0ac2836e027fe3161769c6838e98cd449c14ef2b07afc714cf02d91d387a27472217c9ea6bc5cd1249bba38842cf1b28701a6074ccfb7316dcf345acd84660d02381040cbe8109c5d423921b84771a1cba981c5fb08c5de08ae6cdb38fd5b9489357df11565d48a7797a6af82553225d73cebb362abb1ce335358c6776d9fbba731883ae7cc517e0a0a3bb5b970e4cda95a98aba47d9e2397abd7757218c5d7bc4ca59b70be5aa4d7b62afb54048ffb0c64919afb746120b383958b715d110e5e6ba666940328ab4510fa25e9b43537e566ef760d2cc52b07e5bc089b8ea9e166c513bacbccc332f36d6afc379e1a838ac24ea35c1260726d029651088996631c55e846adcf36c792c21011320b2287973a770d2636470c080b2893a09bcc8705306c5b364837b7cc89a9ad1fd9c1edcca9a0b4b81846c8e088b36fe361539060cc08c911c9058bbb0839183b0c59302171826dfc7b6fb1c623dba3f0f9b30768346a7714481b741bd0bb7ca32ed73a00a6a1874d8b7369f695efe75e00f03be6cac1476815ad889c69ec6bf7fb38ce9609c174b902b6047ead37da33285d1009b83c39ff67773cc46f7b4b2cee35e8e95100c31dc59eb9 +result: pass +ciphertext: edd9d2379c9063a3b97781b2f9bb06055ee94cb8182157eba71b983ccd18f237d8f9449c156ece2064d19ae1dc32861784c7e5829217397b27df13a61ce333f9d48677f1e4e6cab1763128d2b94aa9ac7f5785314289441fab4da9d6d021fe9fd21a53b0d18b58c8ee916232aa19e08da9f7521d4f959f85f32f3bbbbe741b021c915d5702a97028019c7dab562b9fe01bc3fa954e71bde099de02c842ca8304f0214c77741c901c0add89d96a78b1245875fe0a1523d1d03b7a6637c2fd6dc919e45d4ef10ba5e01996a43169dc5cc91293e382edffa16db90011f2aaf64c3a3533628f5739a2887c56af3dbed3486c2eabcd3c1d2c19667cceacc21b2384a2f38ef0de2969884619bd282af2cbf2091a959af8f26a15471b1637deec3885ec81995fb516e63c7908eb189bca27aa7ce70e7ee6e289c8aeb2ea4f79b9fc5bf0155c3cd09430f8bab8c70033afb42261b957ae60636204ef70d401678e14cb08767b22b8e22edc120515d9203abf4af7fd12a8f3dd908c7ecaed10e3cfadb3408401b6e96ceb58f71c69492a3956fc1d442ba092477e98696cd544f52410614622296c6aa73557878dedb5c5ac21801648cbd5be2972252774a54cd44b801e9cbe9ed13f73f3ff472d3f36751f7cfc5a81b93c0dd7bd825267ae0613a4c26b2d677712c2f78068e61ebbdcf955e44edc66910160d0981b992ed92c91a21fdf985d2934bab8e864b34fd125f85972e36802a0fc32fb2cbac4074526d8341a9098c9b0a91ec9d6371331791af6f6fc90fa5fbcaf3086377cfc141e0d972df44568adafa6bcdd9bd3792eeba068d8f07903a9fcdb2e6b29c5e56bd748aea8c06d502bfad55f28f750d0331e24c96d3760f796f12c4e6b97c5ed58b56836899c81ab3ac0f28907709e8304c95f6f67c80bbcacf1c94aef29ceb353a55005cb3fa48c9b39973dfe495cff4d483b1c1ba3976eded81e31c5325c7b6e177131d0a72315763731bb905cbeb9ab31ce7d1bcadc0e8cc9d82d5ce127901578bc742cb04075622bd5ccc85bdda27326e5f114295c2b31033b01094001634aa55b9187c5fb4a1e3be6b71f361325a54bff9fe3380488e0f09b407e3e53f2266133b8bc80bd96f7c2842430e653e7461bfcc5a21a29838103b8dc509cf01bb1984beaf43d0e5a45092413d396d9ce7f2d96762be56e45b530bdc7ee477337fc4318929097a60bb4bb88df9b4bb01b6cba86c148f841121cfdc369083fc0accc80d4e33d582427c84c34e134d06ca2023c09708d848a7c5cc6dbdf280c1eaaeab8d2806b53a28194b9a95a1e2509f8fb40333564cdddde4bc34e6d2c81ffdd07bdb5546a34af69347803c14e19558c82fed568f5d3da003618c6b570f59c1913a44c281e65295119219ae5427fd7683913402e41d60775d27089ae706bd00dc94bff715a2fbbafd9932645f90da872167c95ea89ab446828230b0be29b93e214caaac2b49ab88e420732d954ff24d0c6b0d07b60c34d9a25e5237cfc2950f01c10755631a30166e6fe742a316c3c952bb9af53782a255aa58fb817107de7bbdbf589a8aa1f1e48c7ee493117a3c76ebd891185ce21250378a39a495c3977e5a14ba6c1ab47ec71e5a8f3266046e50009e09d7544945d71a423cf320cf7e18d8759df9a027aeb38799a1590d74fdad410e39ac9e1f654d69ef624a1b9ba1639d1af179930ab071501f0df65be8a65327cd97cf028983077757f693bfc4fab29fbff36fcc9cbdfe23a84551f9da0c93c9905b31ada24dea830932525402db03ff3dbfcfa562ec028495c5fc1325a2fa5ca9251ad3853cd2d2a21051afd4b14f6677dc897dce4471adef042f067802b4f60559c0b592f18c33d6ce638dc2a56ea16479835e447a77956aec7b933060ca8ae1d5a79a9e5a8eae8631076de019ed933ede4339f6bcc01eca00845028001653f6c61dfb9a9089e4a84482ce83f1188f84498df81aa890e361a1ef0d226e6553ee3c079e796f7be70651b2eccbb38c7fbe22cad04f777e4f73d11569e3cdcef469e703070c4a195a499af2e41488f201d9d91d1162054bd9cae3949d7054056d487f8fdfeb1c6389ccdf76f26233d3635c4e1c4b7c831fff636b1b63e9d683b4e06added2541b5c40bd2d455bd50e2867840add364897c25daec0ffa4b065d78c6f9945868408a65dd78bfbd3d4710e6cbc5693b501570d +shared_secret: 5ebc9538f357baa7df0165af3e7fec1af8f4c1c051a214135c1fc03d026cee6e + +# Official test vector 89, seed: "96d9a06f88ff2c2036fa8e914b89c765e4a510b468dee40f914f78858c811857efe9fd0e17c0048e7389e8d996b7e2b0" +entropy: 26d90b190a6c3d0d9a86cf66005154e7086749e966e7187c249ccb9329fd3b8b +public_key = f8ca36bdd81e5969c6e2f8a58829a9b7697b6b36983e896e82b40738740fa2e6b657616b0b4cc0b15c2292eb5b42550f812673194b944b830051e4206670bce9734f53232b408a6cbe7542712352c453cac39741b5b940151580482b4752d16f58a1c090b101cf985034299840a186a1061e59eaa300b66fec19a3abac920a1a12e1e4070aa37893923067614f9e53c0d859917626c6d6658a0324419d0b0d16a647ed57c3cee638400875cb0436671a0c9f472eede423125a95c86c60d2301c85660807f43f35208716905ab4153b6510c128e038920a3a13e957e2e209afb46c7e0c9e92fabbb80063b93c0a963b1aa2d49f48174f86c761d923259ee04c65f4b85dc110cb04ad4e26c369682e213ac4114824a526b2e6a21705174110b538e3562bd93cb251962e71782d89e562482a51949707ac8337b78627d489b193600636fc44c44898b2dc7c87332f3dd9c7579a68e0c01211fc1957c43d781473fd3bb17ce14456e62d93c236bd9656f5ea8088339668658ed8cc1e909a026fb76f0ec747d5a570ab88aeb44750710c0d10ac86caf73f8e2238b7e51da8722317973bd544834fa31571f48744b6a7cac95e1d3375949038588cb1d5d50476629432ca9e43076bd260b1a6a3472be2cd780177c4750b4080c09c820bf9f1ce2de695478ba26a216ba2b032cb7729770514f71700864ab0e3780cf94cb7e94c88dd673dd03b8690ac65b8e0c597fa8098111d36ea9fc4b166d9e6bd4935993dbc8f21acb9f53a20ee118a721541425a31705a5d67a6196c91a96dec2b2b48536e118afbd5c8fe46455aeb282a7a6e73b734001b6d3a997ff1d50ac7d3c97eeb4338f13f8eac05cb0b6f7f60908c0b1ed89682192a6ca384c7ded2170674c353d9aeb8696648cb83ac986dff669e23f49c47e9208df49187c1155bb1c876d1242098bb7951454e677c67042dcde2af77e8090935b5bada59c4252c6889b16765a033d98452f25632710ca5553559d76358c162c70c1b5624abc090b59960c65889351529bdae24170751a45a566ad858444ff61cfeb7003b08605f3b2558577f0e12b31a447d377294e7e4060ec12a5ecbb9770bb8707240c1237b08c744e70057d0e68e2fca1cced27a1997389bdaada271054f72b849329e9a2321aeb03a940c44239844e94181b627876838671bdb3e9b4061fedc74741b4b5e9c4b421167bf420cc8077c5bf02721076c1c5462d7624f8350af75c50eb7267a96359004166c84145e72b731d5a82d43469c98b00a0c2352b7806313c60c04dc5f5c8b39d50376a9461f2a8773fe06973e852a04025ba6592f632bcfc3ea0ae572a50023c684a4a7a0db573ad1494458990938c624e5928c028ec48a9a26492420781071d13a85a332dbd8abb8f318a31596a38c7efeec28bbc1aa38198aa66ca68d811cf5700d9e093e34f38d0cc74a989459ab0b200a8caaf6d40ab5e5cd651c05fcf68e14a1ae602560186a10aa452328218e41c49b7e5154c67099ec790e88ab641ae03dd6acb82c33a6d4034a775515c52859bfe354b2e881c7c577bd5663b19b124948739be90addb36348912710cc12102553765c580512b22ea35141ea4ffe681045497fca77ad2e35c1a5b31baec2a8279c783d28241c923040607d38463a9b615be08ab87acc5e31b84ed8376d75f31dda47c869f82ce14022acc6c70429ba854b58e942635a12209240bae3137ec8a40e716655a0a82bd02003f20428d15806594435de6c39b746298aa9a693577783c71154cb31b7b31283f46733d199ae627ddb7947c4f4aaf1172858a97ef6140f56477b80450536396399a14a984caea756b1b5c09ed1f43c4e1754f40ad0bfc8c5f153346e0113930a3c9ad215f11c4ece2875c41516b0a8452e948f3f3cc45960bdd8b23f14eac17927142eb4a72ef6c3585899efc128f53b022015b2bbb9642b5675be352b9d442194d54d5b40a17c236e8a275dc2358fb31471a3f521b444040d983e64976b50f71441982f29fc690c41a954512f82a3abf85235847a28982009e3303239454ce0c7a2c3840cce031ad37516e6a3ba59b79ba4478afdeaa8ee8ac4731ccbb34125d0a7c6504a8d7e285171a464129b714d8521c69b8d952b4623aa8967f644c8c08bdef96117198e56c12602501201e036804129d528d717640ea33c9fb4885d61fa43860dafed4282b108 +result: pass +ciphertext: 3804e49185cee41c6861a7a0941d454024e2310333f1103d73334739510be6a09619c5229bd73c4199399f0bc7e43ab79b06bb836cf443912d2142f98a5dd284c457740a4da361946ea3138a9be5e4c46a7f0550b7a807627ccac5e0c658a0a57f70633758f77f555fbcbafdbdf5a19f2e0efbb7e932b262998f179f7aeee18652d5d572d5d71d0af89e58a1fcd401287e046b1429f504a4759b56fc90735b91dc640c55ce2f736f1ed491cfd3fa25c17c2ef4afea940de20ebadd1ac456c5c184b660e3a2791df78e4a4716fb09a78a3ed4aff107717b8ee823f689c31c1b7bcdade58567a8941a64033738345c6e7f11378b6c3b680b94b15c12e9d291ab54ac66def4f97616bcf996a840b93c960e24e5729a92da64ceb8608afc9ecddd9190a188fe142e7796dfde0b44b83d37b4f3103dcdbe37f0db2c404517be707b0671673e2f53c59da7dcea24fdf2ceb22a711e1081ffa529df068e8e2285b17e81c45d43d672f02d49e04df68f784be77625131e702f12d907e010b1c05fe379e42048620f533c9e17e0ca8b7aaa003695d085bdfc2c74f98dfdc9d7290f03dc00d89c2d94ad8b390ac3fd88e4c255242e7420c9566fdd6693f94f86b3317d7901305e209794d0ed5f0038a5e5f988b2497a5732d05b0372fc27862b339d3dbb6cecddeb0fa5da20e80edfa5d8677301eab7ed43159a1cc62b25f10a4a2e1c3f1d08884177ea74c2110f8a496e73d732f02f4d4a0c091aea4b4715e78bf1738279006a4f8e3397743998f334db9f91005333776a6521b8931fec72e2231efee7043517070ef977cc6fab6bda27de97ce4ce13554dd35668ff0f753606f2687ba5b1a12b2b42607e0a767ff95e962144e7e67065efbac277cc1695ac1e12f1a82072f9ba15e24af37e36b345fb50cf7bed32803b63343ba5593de883aeffdd75d92cb42e15efd70b944b8330826b31b1d69453aabcc803b3f1f390548bee070b84a38eac4fb244247ae4c5a26024a8634bfbd9c7eb94fc84a65599805e9c150e215e2978064d7dc5bbc4bcec8e16adc6f55190fc11496028afec6e41881e0a0094bc17632249613b6e95cd210f7763d2ee99a56087938f721abbfd09a72abaab9cb7aac78ee1202f3406c0dff5a4f31e70760c7bf2f7cd4f27fb6f7d6e9e9eebd737f30c080c0ea8bc5bd6d7c58cace07bc82f55c65788624e7e17faf3f4d54b0e5845b8da07cd51b589409b2ee4865b908367d1887111c8817ffda5fa7ef26a5db54cbd2b51777865240284aeec8f7c40966e9589f071d875858133b1496e1e5b9ad7447156b60067fb0e61441015ab474d1539745386ef550becb1345341a8bfdc2051041aef1458da87fd8ac4016b9b8ad24f9afe3f5acd1858639068512af6fcaf9e9522b98027dad0f6ba914ad2c35b99528f6a812257cb21b6ddacec678c2bb44398104b373c984f72dac502cde60d2576d3def63438697d50bc6e912a8f6310bac01ebf890200904318b7efb9616485539c472220735873ce9885e6651a244c56b296c1badef19af9dc6ae5ba8015efa52ce5af25768dc10b32ee36b637c4048ad832316e20e5a929d0dfa8d4dec7d5e195e0b59f52a4e39c05a4fd2f23962c945f04876bfe5f0d2cb1b66b7c7ee3107c823b4c60d98521a24a7f82f39e0363e411c9a5a3c0cd3959029a5f86844e08d13997cecbb483f24060bf1ed28892a99352ec3c538877ae85339c1d05523b483f676dfb26b3e3d154ffc3d33c46d06b089c6a7fa18266afaff1552266f5bab7ba6cd9ac64a1a81ecfbf5f654428a697ef439cb6ebe8c005f7685df5a0a9f475500339ffd92e0103c78549b3d4984268288501968f0e21c815a7c3f6e6f50960f5de64ca611c584e53d7c21c0d002b699fe330456ef42840bfb8b475f56deaf67cdb656a7938d0b7484687ce5eb0261cd67607d9c822e9b3e4991c32ba9145c6d33ec1fa4746c27c4e0d38c000495a8934283ce88e7460e4e6ae32b16814703cea8b0f5d34610b401677117bb3b78659d2402590b2161791c10a7c975e2892e316d49cab8f54ca1b4cb98d2f1ad9ebb8f91e57240367e1ef5831d77769e73c3876361356243c120c224ad8462504a1ae0904a707348aea1e29d1c6eb2a9c60e1f2bc0ea4a9e0558ec177030aa14c394cb946fb23f1cb0c2c6472c13fa3405a60434956e9cf7a686fe47a08f5d8d5a +shared_secret: 2478974168bef71749a93fc9005dfc0bbfdfb7c5e485878bc04025ac7f97de82 + +# Official test vector 90, seed: "d26ce360d399bf7b89dc364aa7ac06bb513eab8f527383e93e30727edc3f22c262aa0ec70257b39edff0630dcdc1b79a" +entropy: 7db6d1a129d6123f1f805b79ad3b413012ea86aed42a05e98e7b1f32f9fbbdec +public_key = c19093bdf18070e37b3ab06ade8b14de2b34ca99763f575e8d75177c72522c6c4eced8ad20ac6bfc4aa329e765f986579c373a3a333d6167c2c7440e8f4131ec305188c989140b63b65019f2949c81c36cbc45939c026a42a1554f2385a738a229534cc6552d5e76076087c9e5b260baf8724973b9152b3941fcbe19227bb7987d74856d3636049715beec638db8e3b1d4e3ba2a440b46445369b60e0ad3c9c07c3203e2716ffa51eb5005d1a797079089f6e14d86d988d7f960f0dcc553a83f7433be60a463b04423a6977599b7c1f7730265807b3f7b2bb8a625e0b0a0f3f1171d6c4e7a9a6cb5803b4871501453ac19b576364c3bd7e01f1bf475a9e71d557171e4d33bd3d14823672f27e356c89395c1476e0fa065dd168478bb710394116de27cc3b0617ef5b74ac718e8b8c152c052a4d57828824af38807d91295a0da9b49dcbda052317f5576e52b51eca732d8d260d08832918094de65ab48d3351b1327568574dcc82e3e8a222044984649271b3b45861ab6f5250a770b59071309d118adb32322739cad7227ad2b3460d156c065713f29a05ec48bb21ac7261aa6a0f3f19d05f0aa577cc8cad6a7fbd25826a3cc6ee225c1b183d8e124055414c54469e4e410828bce94a5cd95e22c7ca3770ec5a023f0656447621006929174850c786fd6357f36188a4884cadc108485277890a0114b4c565747c4165196e3e90cfa659662d992c33bb2582970ceb60582a691d66174952841ac5a64e53b31566671054486ee20437e245e234176ebc696a55a53308abf020b40b944cbf382155ba02fb9ec298aac3c2b81278772c9e0c730ab13c6f374ba8c886300831adcf9ccdcc566e2456bef479f4ed08ef803ca8719c382dcc667a21897db1f81b41521790ee233020f3301bc9910dce2202bf4329f632542f820bcabbd2bf38962e6810bfaaa5377a83b10a62495029e99c4becba9f0b3a54f70788f97ae54f01781b8505c27c23b810ee9c7452952af9339c4ab88aedaab3b9f951cecd828daea0888a3481ab39207a6851c0285226136ee392996c41b7d93221df711d44531c8818bf3b71aa65aa0a3b5055634699b007a47210e9583928ea984c413598868bfbd021cff817c426caeb3a77c9067b04dd3cdaf2b840af6a44e5a5ec3956b21697cddcaa035c46159262524e55f9923a5c44c1c747a1e35889b20ac2ecf5883577c0722316d6a82a88b21c8334ba25a442101b6828b10b1d9280f13f867e10c88ff3cce3af457a4ba82ccc4c231ca991b79c66be0c56666c80656845789b45f0606539149cb12b0917b297fa683031413d3e89d3e38544ec40cbf288320bc3b812311ef69125e641232322e3f1ba325b668174179e38868bd50233c78b0cd8721acb23b0b065a13f36a2b8b8245095cc785c64997add4a33b45e9a602b10edb318830a046d8f700b2e76094228a14a251e8f48403914cfdcb9e3ac0795f907cc592ae18d322ebb882a1473ff2fc666b7a829189a4910c60f8b1193d59515280bc5a9169ca6433c4e560db8ac756944fd9ea1dd1a0c9f9f57a474c32b94730460046251aa7d27a9a3f2c617816386207449d8c18f04537084a3f464b737c1a49e59c9042876e0556b92139225fa3aadad3b5f18752dd614c1fc200923c0e0b4804fc5b26f7c6cdcc684da00289ce344518c7a480936e46ec4c01b36a7f2645074b26d0414fcfc46d2ada8fbdf1c50c128ec5d2abe11ac78205310ac8aea724a117f00246046c4360662101b191228628383cd9047a28025cf8d6a47dc161af353e9067ae4433803c48b3cde24466d00aaf68be2eb1a209e8b1f6264fb14873edac70f834c710acc18fa4c6d16a627b03406fc7501ef71e62963e01869c80787af2d96a4ef8c72d273a3318c2826b8bb513bb2f6739648666af720fbb4b7785c853bc1aa4cca2c9d5852706b7bdde4c06c78c960265ce1887b5e13275f42377447751ac0bc811e26c2f65bb19e058d573a64959bc0d74727a4b5ae8ba23f2179ffdfc171563712eb028d9524af43c6143277bbd537f1155b04c0006b66036161472a199764ef7283e044c62a7244593564b15436b435da9e995fc803964f631f8332fc8887e49a87c5812860cf96747ec5891a9ada1e769af720e946c9727731449cc7179f73e867c8a63b210d73ca9f8d4eb44b5da3b57dfed46bd22ab85b9bd915556 +result: pass +ciphertext: 02c2554bfae2f207dda53c0c9957f1002311f18d7adc29263a5cd54ddbb844871d65fc88128c8e0d7a569d0557d352dfa0443980fd4b675e8ddfd43cc330f23f0c8ed0a344060dacb235cf748ef5652b2f91472751c950613ddc48696ad0268f1e49989ea267e4fed6e5df8701704abdaaa36d965e5e94eebdeba377091d9a6d8174e2362bbb17d4d4033ec53ca3fa57887ad7190892867e736f55c07226cda68d4dc6b518e4910d8a1eed5658a5e007c9ade97b270bdd9b9f18d8a98cb235e3a19e808cc015d3f90639e6c6a6c33e1dfc21bc09f7e7ce8d490d746f7f0d08e22bb6ea9863f8365a1c1b60ee660112b3528c6106772fdf0b2c795f637c35a3c77c63bbdd6e905c49b8ccad39b7b1339933bf9174f0f753195e67c1fdecfd1e3264d277a07c7a67da8665fc992620bb34ba73b33ac373a7a8de1ad27ad22de16433d3d43323f5690ac1144f0cf20ae1e94af27e7fe23c0f0b822b739bb473039a50138390f1d3fd99ce2e598cd13177a5877256e092f25436eb6254b82c213d0c1ef35e1a141c29ae4ee1dfe8c39f2e70121a852938167e930cf41d22fb9e22d3698b105b3e62bd4aa3bfb1087e5406349b2dc9f4101c3cc5a7104d8d4403afbe4f896b640e03a194c30c401fbb2c73a54fa8ef1c2519ddc21d8d5c0634056d749eb10c41394eae0d6d4b73c6fabc27fc2e346390e2c771276f0551d27a20f98089dd6557efa1cbf4f020797c5524590191901e52ca66cb74173a2da456bdcec454d3ffd45691dff6a70dde3437b30794776290782a265bbe3a1c07688d4fb3ba1fad312399d30c7fa9d3d43a855e0cdb0e02b1a76dc3fd8c3e53b3c814f98fe7d24493bd6e854336a77732747f809c0782a926aa275637c29c041f284170b870352aff1e0bf77c0776b33e051eb539b864c3d9800a2f082899db3b22d37607080b29486485c0e6c92c1b00df67ca5be95fce1b262b32ffff00f04b17435d7cae7be5f9af0d673e4536b383bf912d68cb1592a01cd25df2039f826ad43a137c81ed2ce0928b1315c144ea3a1fc9c12aa13bc9564be273a58427b467936773b6555e05682cffc87dc8685889853237fb0e3c5cd0c3a4537a9577fe47a8aec0421f023628c941994dcfa7e699fb7828e125ff08a58e24e3e63801837c801cdf5e2fd9ce710040753da43d02d383acc82abd9291c47ab4b870c046af3ddc9bb68697b8e89ab550b9cf0c6c98cf3d3781ce0a655c6bbd8dbdbf9db669eae8d3610d23c03fb0f364f489f02bff1d42e610fb3bf94157d1ad8fa6a7063b02e910c145e3d9582b1efd64d6f745a733afa5c8b38cec2f748768bfe9432b612c73b2e7887fb8a06aed687b3619f56fa3c750fbfc35fb5481a0c21aac19733071e1cce965fdd5198c12649c7d5c8eb3d519980717665786aab878bdbe6240f58d913ebb9993c3779b5e51c6ebd3f95532c42df3a8025ea1cd73aacf40ca79b1a6f8e280b97d9c2d9b15f96ad265c6382c4f915b705068710b02136b98d0415adcbe79228f5b7a06dc97ba2b35dc76d37fe4216d5a896472b2f60a86759e596fcbffad1910304d3ce37675a4e6b34dbd75e52465d3f71aa7a8e366fa915a4c2544060e67ccfb4c839945d5dd9548fe8d63e2381055dcbd9cbc8a2cd483716ccf3902c78130419d2971367304e0f25097b2c0bca79017f6c12b428c3f47b649c6c41f1a8e6b17ec7852debfbaebe46906a9c0d8019a3db8ab0ae6e02af82cce0acdfdaa01e66f8fccf3b0600a256aa1e7c0a70e49fe22e1ef12a00b7bfc3b37b8f8fc65a382a873d29b85756ee84d0b9dfe2a20e062422b99163dacf5f96bdb34aaa88377495abb000b5fd84c75a9976cffc3732f5f989b40c4353275212a740206e575565de708f9892144bd2323da14806b6c8d590b1bc845541848c990c56ed334de9a59cfd5e7ca775644ff9ee3969ed606f0f48565fb566f205dbb4633b62d731e0498614a5fe9ad277e49557ea1eeac5e9601b205525a09d3ccf146f856e766406f256e2cf44fbff3f911c4f34dd94cea64a143d23fc6ca01abdb42db6fa0b426ba8fdf846629d32748f8981828e64332fc6488cca38faa48c36cb212bdcd6b969df4008f55389dfcce4ce12b83d5e80b1d62912f3daa79958381c0edc39479b1f525a17271faff55e9d8c476d17b7d33556da787d1c4e47a89dfed6f265396e05ee70b +shared_secret: a3611e119061c60bb8f76b765b1d00ab8dd98b6036338462619adf32ca39b2f6 + +# Official test vector 91, seed: "c5856298c3cb6ac9787a0f30938537ab2635b96f6d19cc9522063360e7a5c88e644929d2879180e3e5bcad2422b7cfc3" +entropy: 1d129b27be7384c359d04311fe5c44917d1fde4bfb57314f483ac617edd5ac49 +public_key = cc9a64734c470128056a7b5d374435c099752edca129091770d6af831ac7805a7dd5657bcbbcc9d751b140283a2ec533c17ba38a392bb98421a4f0731390c30a8701c1396a4c17cece6cbce99949d0279119e8790722b0e2c748348a8a5a7c760826bbc0d395313b893a796b9d572c10432b2f5363b9682a89d1174f822bfe38b05ddc5b68ba3ad62497c3ab8ea6d13b11a6a69ddb1f1340b41f013952da1ee1e759d2d5459a01cece819e5de09b8d707c7d59519369660306c4174505a51846d5476d41d00393979293c1325a1b6673f16c32550529b21121e95f99f503cea88530e2c72b038aa641327181673e301dde28b0ba76b2b88453d1812499681cddf932370c864bc6205b6cb13684455fcc5e008bcdc16597ed661b3732a60e329df82820af51b1ba4647a7944c4dcc7a8f1bce390c44a9a7221e0c0943cb4ff6f048e2362f89f4113fd3636b97919e41acf042189e02a83b580e5d4a996fec6d6b7b33d690825f366d89f8952898152b3671685a22d8898bd62c83c32a1e3076aeeae845900ab2cfab51ea76c3022b52dc702d05b17a76609c88e69d12d7694edc3e91420737b17bb6844a1a28c0c756038a8c6c6a74906232b50d74cf532b5266d32d01034c56aa898d624727e5363e0bb300203e792b3afd39b5376998142acf52f6933a594c9a5872ab619a8a4317e86a91d419a78d47245b1780bef14abedb77ccb97d550ac223e5001e0b64a61b8fa0526331b409505a512b4b6ba7e3b4b630a112920b431292db5962b577af8d546b7465673a8641ab5807443085a9f0849b914a31393c1dab0fa30b3b1c1261bdc9a8ca69cc0f0432e91c1d42b6a8346cb6fd9cb49b189d125c8be422a690dc90ed4a87c70ca8e35caa16a35a3120b9716bae021c861267aea4244219c60fb1c788ce8264c0241156340daa3b1ae7725c6552cdadd4c244079cce22aa083a1a2c0810fc7ac55d77bb6ef934fb73a8e8f4cc299b28c42c5d26f36518ba4cd3b320ec3158b8b36108bb6d4f6427dc46653ec24927a833853b4b0af5723d8a3c5f37c17b3476d86161c57579cd020167a70c1c310325c6707fc82270f0c73d552363e2343b371fc1448b2770bfae474707305a9b32a6aa77c7fc7715cb35826bfa1696d67ec48cc0c9554691d186dd025ead64a9e39657be0292f39829ef696d3584b99c7367a00034395252f2443ef4692c163a5ff1863be79273a93192d10b661b9051d57572d5caa817338c52374ddb282d4722b1efac7339f1ce852867e4ba2a4d368ccfa58fda097fc59244fae273aa7c63f891bbbce875624800dca2b5d65b5a2d414a81c7525583c0160a006be08a68776223aa97525a1e97b241f59c0dacb50ec89b90bbd58e8f27c9f19729782b2c06bbb91725c3b6ca991e75bdc7850a0107674fabab38e28ac5b9b717ca7542ebb563d078e4c856447a0ac85c9240d77210e4ce850570ab693aca497819b5210e2cc957fa9b4542070171c56a2c1253e006cf12162e9168673a08d82b90812c8cb989394ca862aedb1ad9885598d39a42b3ac25bc914fc15eda2501d7c8c51aca0c257cb8b0c16de89900b2b12a875116cfc967553829e59510a00998440b93d8371a0b294aab2b4697196d397a9ccedbcb2f5414dc8c764189cbf720834327a9557cb44a90286277c54aa424d080822814626b753cb281b9f2fca8680c2e197bab18643c9b0aacf8445618a45814389466f67a5c557aeccabcf083cbdff5569e39cae20584ef46bb56456386f3c7ef5a5c196c51646b69154393bc7a6a6d0869e06c3f8ababbd7aa070f974e682398508a356c78c74be8108b42c6b53744c3742f16c84e5bc6750546739acbada819a2af9c5bbae2ca34f6215df82c10ac8a5873a2a8c04ced887730988c14f00a33821994503f9e3555f790715414095f05bc7d5c20dd9313acf98b10daa4053c90f3d2c0dcc676dba1cc0ec92427d4bbf61425935314494c3e65b266f16411a1250667954388fc5b750270e00a8bde873d3d58c627c6b31d8610597174366c8052f21e429c185bbc4c080122b4b25d00a982101b4b44c18bae64b7aad2a2bf646e39bb241df17d8c5b42db08ca0d6571097250072420ddea731357154e861809fcc1ceb7ad01d843ea928dcad3c1370b6b517f5473b94bd6351e282f01bf82a24c3ef05658b9e66735007b45f5b008a7bd +result: pass +ciphertext: acc839c2bc7a7d56a8472ece2cc56b8cd74eeaa4b37d366f3fb119226553304fe6673e37db7fc7a0735ab3ae10f6cc38151b7f3ece0a8dcb646c571aea0656bf0a6ec1c90023300ab33169845b8a64ffa012b890e06d691d82be4b5741e13d4920079b3d939215f3e7d73d4b9404c28c0bfa50cce06e6288ffd58c73326b77f7b6606ea5d742a32c54cbcded3f92f8c210b44242df2ab8ac2ac906860f632058e90d2ff90251efd91c9bcc9fdd0180cbf824f4487cc0fa6a812e2392eddd62d08c4ef62633b1a914f410ccd7bfb1d66240c035bc97211ce567070ea112a17b0ce6cbbc02587626b266caa1b06852661c5be631b24fc5ba4717e14be2f5ce7f5903c89fc56a46d7f31d840e3efad03c29869ec8475c9844404ff71380b4238c6da7c22cd500e6902fc962684b5d3900c23bd871ade2c7ac0cc004a3ab60d70f946ffe660f3d731a831190a03c20d66483d99cce14133f3a3e7f42a07b985579e0e77bbf338dfafcb0a850794f37f677c61df96de1fce1ff240775339eb9c97a92df37d7983bc27977dd2e54eb22729c495d345968fafabb96fc4592f89c89ee022bb477ec8d48d810e3b1fafd37526303a0430092ab6d43b253a7e0200cf45b037063ce753af83469911634aca0f890d3d9bb7671f5a6a171fd2af27d94155bb4c7e7d5e18c788864ae4c0e3057f6f6dbcffb659ca48113797b66b26e46449b197b72f7f5af1d698b654f0de61136e99bbce7462b823d86f4dd5e7bef7dba147a5a9a6dfd7aa70cee2fc7d558f0a25d5f111134f2777fad92840f2a969da17de0de10a5f74a665a7eed83382857c0f9e3ac4e686b712fea2d99eee8422508056cbf988b33e1bb1cc685a556607ee1876f53bf548ae9deda1fb4f1e0c4e724e4ad1ea9ce3da9af39d5fc7a6fbe8f76c89f7bfc22aeb08708ac6ca7bdf730b7334ed58dfd2dbb82d56d085a553ab8fcc9a3fb865fe9dd3743f33b0c008b48f3c1212ce04a2066bc1e916470bfbf0225745e695798c6dfe308f433c5c9c8eb6aebdffe47ef0b8df31f702f1a7fefd6b6ead7b69b22d55223e8a7ad096e588f941763b744ad565282ce29ec6161d5934e5dea1780c940033f0089d762eec127663d9b4fd5c5d39498f6d01c0687733426db733c9e6eb15798530db3fe5b6915b7945b80aaa0780d8800d9bc6ad02281a25a33450abde1942c0726c807ab3d46d9c91c03140444642d9fa3c2c436287d1abf1350d45154a38594b1d881be08437f27ae1763607e4f7836f562749c399a74bb7e8101875e47f3f4c6cd06b715e6e4cf3a8d7ec0215706ccf5b627c763df70aeb3516cf45976a42fa302faaf4aa0db5c1ea75dd0399449ce029f3b766f9b58a0217e97f58cd10bc4e79d228e2424d57cc423a09a5f55a4934384a0fb2b3414fbd93a4d1289096f8dd2154d919b1894ab0b38f484fc69fd9674504c829116d4cfc8e544cff6c74b44086498a0266cd9d4ad9c6b9e863e0ad7738ddb22fcbfe642b5d30760fdc3142f31e27aebf763926909a720465ecb22f1f7b9676d41f85a5cc407f6c52bd849891e16000ab5c5b3a369f71b1abcf6cd302809cf2cde77465fd823fa85c6050c9d5fc83cbe0d9de966646b679bb9af2c1d89fb4da1bcdad86e2bcd2b7430e1b33183c3192697ee2c902d3a68ba250d633ed6ca044b0c0b5e3776ce445342c1859a9159737304187e14f608b091ac6946fb817b9cc4afad0d7dac61b653620aa1f695bddc40113dc884d762e399f0df4fb6637f1dbfe3ebc32c5e37fa915a1105a01fbd341070c771dd8b3247c99d935157c5e17218aac87bfa024f3d344e9c33ddfc0a0d5d8f39ed4cd2ae97c5d40097548cd79ac398ad1200dc7762e0273dca642462e76a91f242da10c8c38cbbdcf44fa45e00eaa1fac8bcbb67fb138bb5dccab1012b881bd8148049c6aedcf4203b9191ee1b181f34f73ba8107e0fb5d3c93698dc80a70e6f3a23b4e080f0ccacf162e318149da1c1cdd3e64e8de6e5394c29c312272c0110a1c29e2b74baeb0988600bca03912131528d24595841d4fc442d9dda00570f86927dea5447efe93d60be3fa106bc50339d81bcf0df550e317acf652b286b8511d9b75ce32ec55ad5dfb5bc574ca3cdaeb83f975be3a852149528db62b127cccf15784d482f271ed0b70e78ccd779a8be7ec03fe8f734091fefa5eab7cc6154a0ecbb2d +shared_secret: 3b6be80a10667e6ad229725c012d7c5197194d5fc26787d53925d19f81b865c7 + +# Official test vector 92, seed: "a28ead0a08e7228aeff602b16a1e752278b8ed1e91dac67994f5adc372e1d82f95cc390cd97ab9212275e0566c833fd8" +entropy: bbc773ebd2df42c36ae05952d6a64c63a5dfb82ceb3ef4f8d4df3a30ec8c0467 +public_key = 60c06a2db222a10a620d78b129042477537aef90b5f0f20a58b6005ed0234f3168ee927d726733c3221035f21dc2a95471fc5aff57381741c9ddda97273909ec4c68d4b2a22019cc2d58b0f40860cf429c20757c91269979a17e5d01aedfc21d3706369c3294617628bb97c2655656301772007414aed6a9113ca543f9b027b2aaf0f122d1747a800a49da48239eca99fd4443566348a3f8142c6ca511e769cee83d0513444e7778018211f3a683ceda1ba2881a37f92586a54806858058b37aad546d48b4a5f3e6289c237a041814c0531b27045b8716c1ab1566ae22bb1eea845340791e2899020c8ac1d6724a0b8b432222b204b0b2ac55d924b4afa5083426c716ca2de71c99687748b56342ed726694ba5e63e42911f66f8f8b3111261ec39bb3dbcb9ed5c729b401a23aa26015d31bdf8c8301f61abe695066eccdee028b11322aa437c26a785899817893cb321e0b72e7a7131410772799500a116f612838d7601f66f29567e8a0f0b7477114281df703ca76326b8aba041457004156854c1b81092ffa869eb46807e6a1108ceb06f65453800b72ebb4613e2c363b6190eae29735d48e537a717e335c9f7b456c923c42a31b8f4b4dbba96f59362743d516a01400b8f1b3ea71954f85b0ccfa751d3428fecc2663d509c8b9a211c011313b5cc8e8930b223d08c95e5eeb47127a4bc5482b0e871a758893e9b64bdf4162332b8da6d7b29152a914f5c748a404fd865dc1224e0b64cf782b7c866833dc8773b20c6eb28ac57cf5166895cee2e78d41f97b5eea14400c1d329363915094bd5650377924c15c86ec833b0ea0b3e476aa91398c108a6e99e7ab64990513e061ca52756cf29238564cf0cab366f8753aba1fd3e9ab70621a0cf161b398c413a39280a268c1d28172d6501d313ed15284d12250e6b75704d1950bdc5af1959bc3e93156346dd3b47450f758d3e9796cba90598224740b33b239b97c45c696323a05cb15ea44ca4fd98ee589a2f5aa1d1ee00a476533d5baa58027aaceec151c9c5eda23b14367b8bf7571e7c75d197a55ed3a349de636bf84ad6d446e2c3ba5657c683622b136384be3b89c7eba095a89697b4c8ed9215d1e5544f3d957e51a86efc098fbf272a6140a17530ef6e703f272792371b7c5e36a83c61c7ec18e6bfa7752c095639420968b91aee627c3ec575d74b49fe13f2a216c711508a4ab1fe84a20bfb019aae1b8b3c8750edcbc30cb47ab0b567720421359a0c8c08295ccb705222141b74b8361004d9c484061aef8c19de9f8c809b90050f3345d65531070cd36d5b2e50047b97b61cdea5c3b896dc0a22f6ac2a2585295ae0993be023a498cbabd6b37d56c2f8db63804d0ca52a169f5d003efe695b6eaa2c530773cc4347d4b9e0e46a822a980a9f4c8900070c67437576c572160ac7b297bdd074c9eec3a368297f0a34772b8292d0b7a29faaccf7bafd2dcc6999b0766d106e04a76bc9118b7875c187b1f8cbb00b3c882f3bc6bc65b294443610c65b19aa72f90c7086ec18f228c36d63808b0aa253052c1a44a6842568d82b43a994b5b6c69555a449ffd0c3959870f3b679e4643842083b20a40401c51898e138a092ba393bbaca9fc6f37f28d88560a7992c5b95c228b3388a622a6f2839da96b121dda0c75c0b36ef162bd7981ec294ba7f91a97b34c69bca54c2b7e91548fa7c396f3d783255a79b3fc579cb62eed83b430c45377857190d06e5a26576d92af1b79941f922bb234a68b21309db9aede9765c78c486da51e400cb46cb586c33c46db9ba99b983b94815fc5b52b7feabe42b4253df9cbca4037819a47f8541bd5747ccb34ca74158318664b243c81b85484bf050ed3aa81ff37725f29b962f901f5f44b4768cd9db394fc7370d0ca72e1607f83a0cd82793ec3a23d3510ae6ef3375c3265dd8268b3f31bcefa83f8e5aa3d1077cc62a8ed858e6ed4639447aa3d705a1dfc4cbe7c4b74d67183a5875d24552ae74e546ab15376ac54f0582f3a92a1e1075cfb682a16b6a46ba93f31165f32654838c9e14b46476465cfe45bec653d2c0a1cef96cf01e123f1a3116c93b1d5e54730dcc5f9d618b53a7917a71abbcc312cacb170c10e454c41869717afd8aa4a86113ceb654d582af443a0b6a74173f963d99c8d44e5520ae278370855c0e9e01df9b37d13e35124e6c2590e9a231a219c07ef6c +result: pass +ciphertext: 940def77ca2ceb3a5493b53f9f11b03d8714dc86580ad78129deb2f2f402c99f49d8a37eaf9841e9f7ec3485eb2b830298487de09d7387cc32db2d89ccf1341d5a58f41288115b8a9950e3771d7ef4b722565ecf49c40838848262c72cf630dd23a29175a30d589bb271d0059f038ce32fe941da9a687b76496d4dd1b040e013d129abba459d7320a43ad9f5454d22058c137273c167e4bcca4c491d73322cae90e30bd1c5d2e672da993b7ca42137e33e80d51ce3e6f07a0e2d641dcd7bf1ee96861b9d05c99304d3cea4e06df0ecacce42121cc86566764c30c2ffc5e53fb9c3a38c346018953028b0958a41cb7d22640115bc576859c458fbfaf66a916d01384a335bd3e5470944eaa3bd3f00a4d1311a3b1e2b9db547e20298b5145a302ea0a7eb9373822eea0facaa85d58133bbe1d5ad4fcb32d60da6db4ba4d5b0744f7b85413d551406a93bfbcbdeac128f20b5b268089ba063d6fc3c4700f5a1c36dfe179e71ec20a628f453768a2bb70ac71c69b1beea25199613f6d8fdf24d1192228145313d4c6c405071fdd41c61b63b91daa197dddb02806d131365b8dd7db229a47a84d6768ba308ca5f26115c723b68c4e040aced7dc5ec5662ad73fbf958ff04aac4d749e2931a9613e869dd50169bbdbfcf03b4d594e2ec327ea1936f64ff1589b258fb7cd1aa31bff2d0561bc91a6c945f81adb345836b6a028ea7216ff18264bf67e68bdf9e586d07fb6876dab46825aea47415d3ef91a3af677ce277c4d5744c2dc686afbcc30b5eab9ab02280f6ee99c181430ef7305781e42a874d8e5591a6090a740a7c5c5a0bd3b960e0458d270a641c7583b00ceedb6dd7b3dcc16ca1605f46bf799928e5a80f7ec445ced534b02c9ebc3aaec035d3a24adc4cb6617ef8469e98352aea0929d3287ca56ac8b7925074702570920be595df7717f3addc22e842a1d72e2864e32bbbe97d8717ceee02581496e92bcf75158868de27cf0b4b6c5508a9abed542f49e01bdd849ffff94056b8612e955d2e430cae6e34e8e45c655ce37e1fa49bd3fab70ac5c84f14e31622d079088e972555ab850d8608161dab959300d64d6a9e963661a0eb615bd1cf87252c64ba41740fb9682695e4fe11e7318539ebdcc0d29d42c2ae0b764da06425f0be9d9343a43fe1afd763d93b2af27cfbc6adae24f52a87b57453778fdf8178280f4f05cd59b31833af437fafa11ef5c7d3851e0010b83379986f531090e62e36222fac7a8e94440d7bd101264c5b3400224fc700fc0fe9600d90b2d6b1552e66cf6cd14a3dea3b806b830bcda236d93a3d4164db43a96db6266b4e25df70747b421f6e8cc19c37fd3c903e4fe7c22c3bd1e56e60acf7f635a792209e06cb34f5ffa2a882e4e1a4abf4fa1805fc06a72cf23481badfce075a6774430d68d98504d75b87bd3c154e3363c7975f1363fac01a04f0f3ad92e081495cbcdd027ae81a3a8adb35d3cf13a09c04513ffd66544ea4bce399e2ad4c243148dcf41ca01b0f6fe528f598d21704d4f8ccf850d852883b81cc1914fe50cd09d4fe795cfec90652a9dea7bae10244ae0d870b75549bf90087a6aedba5f92bcecb15f770cc14018ad150461b73d3a4fcefd70e1ec8eebb428eeb78a665f4e180b312d0d7f5d88a9e5a17f6fd48cb92147b4a2bb2f9332d8af37e667776b4e82f850dc58f1173f3dd56c5ffca7ce5b5b516d77621ff3a78df6fe7a88479aa1c3b8bb0d40466528e4483d2a6a60be6cf32ece2e91bc090a36708c1b7f29f3318189bb6a05f9acf730d2d6cd20e1fe3739d9179e639ea34eb7eeb35daf32b78d94cb31da90dae7668fdf6d06b6ecdb331415272d9496d2a78b4054f9d59054a07f74cab7697b83ef03501d1bb1ab250ca9caecc8861d8f2b56090e2cf7dc32526f249034891a54b2a8f4187957c374567d741b3d2ab260663da07330621925b35d020c9ef6b354c646891ced14e0f9f4172b2eb9cfea714b7a296b4559a99a6b5393b343e59a00190cad70247d670b0c22599119a545d3140b240e486dbe7fe3532f4e0c23975fbda2bbb8824e93af3f9d2d76484bd0c1f130ebe1a61bf20be7f667fe55b8cec87ed597f8ad2402a0f0786d0cf5141a6e11c4d1eee404aa252baceb67a323a8b091a704dd774ac79be50999466d12caeb95bfaf9324cbd0610b0a4dcc630bd654e9f63a9ca6e72cbb940cd +shared_secret: e6a61e88faaa25ff8bed035f8a47afa4f034121457104168a3247e366e781871 + +# Official test vector 93, seed: "92877d706daf88ef3412eb143db8cd91bc047a9a43b7acdaa42523560dee4c172697be4332042fcab91135839bf74ab2" +entropy: 5b17a6adad541efcbf5ae4b0c0452cd2ce32e4f0f8701801c5b63e197c1fcbf4 +public_key = c75c9083566b23acc2e981457fab1306b04340969dd1081f074a2a33bb85b892750bd34336a68362e00302712410eb8fc8f37da6530a408b17fddb0fd602c2e40a7dc4c94ea843226ca79b167b180f3024a273c57f91cd69629c970617720497c4308e10f03a038544fff13a3afb83fb2291dbf177a003b0197037a3c9283de78dc911beacf30e6c4c6740300266c6ab69893aa9e112b67903df849a4bd59ba106030b62b61bc293fef997a8851d06c956631c266ad533791124a4e09bdb06c0ffa681cf2c6d43670e2a017b9a40c13e85bc1c24ad914003aa69439d401ba605d013a2baa0e0b010363574b71242745e9d709a3ff3b0a2ac7f374684bce9bcf0200db5a09b5d0c92cdc7bbfb3c24a79a8a4a0a9a64376a0793c1252362af170856046471b1a60eb33f23c59122d0aaeda79caef27df971ac8764986cfb2617fc3bb71355a56867c29795f46668f8166970b06c6ca91d8651ccdcbc23fc1b2f0a75c45fb3321151953315036d52322c9b6408152bbb595129f41a8b8570f02b8ccba66de5fc36d892457673a9a096c556c9afd11b06e1ca9cc8b3a9e9765e38e711d039612c4bb296061771e42efd68c9acc8ca61012f295251ccb33252e8b0e6486c5a5bc28683347571b8f0a42aec4873cd3549324ab728324030196035b29ad3043ab9008da6b924bd376cfb103fcbab9450b44c299b4e27165303786944009418cbc66fd9a570468dd85ab652d86402501d61f5272cd880056521f72a362170580675bddd505840378d96334a704282934527f70a499ae99db81516b1d1426d233dcf9855880022d72100e14858c0a226325338b33ab5ecc5a86e0ac4e8504e168c5e1a4788177878bd569d49dc60b1484f43134e2bd39efb207430aa564ab7a88cd40ecc00a10e4b6c663b61a6054323429c0722b2e4464ec0d43374234b4884bb8ddc0a28852600369635531ff943194cf91937b43afd418f8f964cf9c9cc66988407bcc7b5247a2372980035c8f8357bc3db948c0c4b391ab47636024dcb79f094c62ccb64893c0c45c1bc88cb00ba85248253606735547d424797b0bb302c5eb9631ac98060bc47341e69379bba5b5e44980970c699187f62731f2b1a4bb4c7a33f8a20758335bc8a3c4c4c0900b3c2cfe35356a58aae233b066466b34c814a4cb6b9f916581b0361e78a2971bbfc014a7476ab2f7c291ba688d5f75153c4ad7ba4c664a8002058c9eb195a3ca7ab70638bb114c3618bac3ab383dbf292705a478a35c31f06a1823b545366cb6900c59c036b063727504a55c2ac940606c7bcc74643644bde915d83c395023c8fbd069f9ec50e1fdbc8edb0387ad1074b11bfdf220edd7486082a4842d6c737c6a1ed5b98bb78cd6de1153480b3bf095b04a7cbccc19102964e34693a6e492fae134c9d726e49532236018dc517bd94232d717a408af43fd5c837a21cca33ecc2a3859eaf8a74b63c36fa70168f241e2ff52f7197a615d04357a7acca269e47848375bab1f82ac686903d44786d540a496e29642f71061ee76054b5aa6ae67cfa01704b386a657a6773b8509cc1b4e16bbb92cb204b5bc6638cc5dd868db40358dcc4c258915d1e93771a12aa7ca4b3bcd854ea2a111c09afbc60cc91f5abd63ca5ccd11ef2c1b06a38925eb9a4bb569d8c4b859ad278ceb006a3d44328636809a31c377c58957aa5408b488445bf1fc4ca378c733e410e3814c4300850fffb052df767743468c6a91d81dc3c4c34b4b5a06dfab7cb6a741c91107758859f2e1c2d06881612e05cd7444abf23c104b6a068988fb794306e90aa1ad2ccf76482f0fa7067467dc105c27ea7192d0c6fc50b4042934e81876e121c6c295a5432219345bab9ca566f0dfb6b9d4728ab7187f311ba22d55b4047b9b3a17632925ec31bb2322257dfea3d1c1b4331467904eb2bc1f7a4369aab9912531a6835358b016889ac910a7c398c18a1636976e04c7227cc9fe13d61a848eeb60d56635064ba07359730a0c269ed6cb25ca2908f524ae3c9bc860a062192421cdba741dca98f98ae0d955c78d141fedb59bee95957e035d5b05155f5792e88ce43342f410ac92eaa68cd055fe28c4a217b9c2da4ba64d4a6605565d41a00acf377eaf80881d9a5305766747cb076149866504db6b96ee4cc9d4bb977165f0b04d3c03c1f8150a265215387c7983d37463a3136a1b7c6 +result: pass +ciphertext: 0512de1ce921b93fb6e5bc9b3c41ee032b2dd86806cc50d2529bb8a79fa67177246fe90c67b3303bc92b853f645968a3d196b869145c83acc953228cab2ec6171c7bea6bd89376f7f20accd881a38e498f8e01cff9e6b291d3ca3e478ea2b710a3305c812c467303d84332ede16cf30ce7ced5cd1a1b3467e727313777e04f7e6c66acc22dd3d079b2fcb0b519f5f86be0d201027e93f4b1757ff2b23ced963b2b01eeb967b71498e33b47ddf1ccca9de66c13c733f126606907bf717e08d4c6adc879f6a59db879986e5e3fc01340c3b1122ac08beaba9e4cfdc912c738ce91fe440d706eae8233260082a97710df67622e7e5da4653f52c76571f4d707469b2de6ab29f568c68b750fc55cb11a69385b1ccf86f3058f9521a1587f87dd7fe581b7419a75066c58713b3b350d01659045d3f66da70a8a48fa42fae43311028b0b61bc49e756e55cde70befefade922d01b943f9f3ce870dc6f6adb1adf53134758804f2e20919913529bfaa187b37f4115a06b0ae8ad84a28c5237c070599eec2064e4905d584cc6bd5216b193286392977eab85fbf357b565e6071b744476c9f9ac7c76d8a8f36e238d75fc69d8464537230b18d73a3a0ae41ea6c12796978d2deb5cbdc6305a6287541d4e443483577a1c1baadea774c5c87e5dd3489bd7e9ec4dbeab1ec4b3dba80c28d599d2992209f5e89b057d742a68e3586f11839579f34dc314264ba9538550aa6a8141370f4090078be5cc3d06d9b355b478d0b16ed945a51a25a6b8ede93f40412005a20fd40eef736cd1fe8e08fb564479be00e59e1ec273c82f92a8a816868b45a4a40b965cae14115668afe9c2d5848cc0e5717b05fc8431a9cd4ccb1208d35230840e32bc8cdbcb4513914714a203890bdec25c72f89af01ceb2c2f9073232c5464e7ff2dbc3687c798ba88d72fe9a1a47fd91a0f17a8fed16aeeb3a1b5d13df78c2580635f0e2af0e439fa35b1e7091ea821a77bdbc7b219172ecad5bf43db870d21ac01e0954fc4092ea8e85e1fab1c8eaf5322e6dae64b224df3b7c2b7f31f4d6101a82bf17e74b64bbee7256dacc3ece2ab95d0ae162118c5c7c6a1fa94a9015fcf76cdcb97a5af486139f23fd48ea62d4ad5c84125ff7044756016a84654b2ac4c2c0ba6915991575dda35570fb23f1a50ff61dfd88c1e9b14ccdbc48015b49f773ca2426122c323eb2dd2a972b64fc2718608a16162c6f38570d30c1d39dba3bee7367daf206594f6d2eb19dd72799c2b9351e5825d5ff453c5b650e0906bfa5a48f6a12b8d1534c60d75b40b48c1e457da5c9bb7281e503270c5ff5e247471fb14c1af2012d52ea24f48855d51daace8c4e8a615f825e8e24203613ece54deee01a0aba1d0fde8e5ce495c382382de6e95fb640483ca7405d02fff7c4d3799e9931ad3e6d64230d6c9d99afb39a049ed44ec2ddbd7c793202168ea54c60f7758c1da23f6c2a9165b6b5581fbce1ee7c41eb3830ce978b20af2eb4108edf93e27db402ad68256c1f53f4066902461fe8c9dcc92e553f679bcf19b8da57ac0d15e3e2b4f6d57dc9d5a870fe2dc252ed58171f585168c4823320daf7c25af7be123382d6d45998b53f6fe29a2fdc7e6851ffb53f63c8a2e0ab0866d7a680d65c54547d6f610207dca369db3b1ac44858ba5793c1270d8a2bd41400272dd6a19ca3fcd8917a52f65cdcede7aea00731f6786e16362e836c197a9e2b3c6228e9884ac942d66b67bcef075d85ae394a9b6b7c2c4ce43e8d940a0e888947d041fdf98c879f550705e2a7ea4c33af64c56af512ea79b94b865d4eaecf93cb6e03d454146ff5ef8ffe21bcf36db1cefa6ccbefece8d3e9cae9e03f259bcea9d65b23fd395b66c9981d6102d938913d6997772c2582b8ee09f2ff1675c116d04669224b6f867d0cab6699be7b03568c953901e75b67a1da01248c02ee2ee4d1bc7c3282c7b55f511e0242ab59b69a90300c5cfe3c80f8c382d9259a3ea1804211d02a95d166c17cf3e0319b47c4ad1425dc0a9338e6eac2eb91ad3250b6e69fd6dc5b193609c049342531aae7179f3fff718f62d6c1752b5c2e465fb6c625a299364a964e56a9ea758af79b3958a5b016442c76a9554cbbea5833c921e356d6fc6a688a55b2d37b29fe8ca97d2c1926f3e9da8ccfbfe2df9286c821b13e28f39a9ffe42f41075f93e3dfbffa4d3fab09a8ce3bd +shared_secret: 7b5182633888d2708c344b6bcc5bd895e0f1c31719ce78efb0eff0240453fb4b + +# Official test vector 94, seed: "bb4c0082ca4044b1ff60b036c9b0e0495d58667156786c530bc69d949a13bfaff53798e456423d7a0e162a60039367d7" +entropy: 61ab87659525de9656af41246f20e1dbe85c24e335e7ecf9493f46168bc14e94 +public_key = 5586a5b224aaa6428374da6bbed37b0f67c3b5352a5ec2bc072247d20c7e83d83ec162a3dd00b44c070577ebb614c97b06e15d7a41ccb6a45fb2205bb57ba4dac40a12ac5f6bb522ed863daf67379d230badf71844256cfc596d28957bae0c050b9182668857951a38628b83e2082659317ffdfa0e279644fed9877d6775e131682b998adb000ace652f13fb0b9aa57b9022b792bc4bae5ab5f07372bcf131ab93523ff42e5a328fe465520bc57d62f222e0a3623ad8b034f164b1800926ca8a850277d0054f34b941e6388349a87eb853375055caa0305309a06fc2016ba8a3c9bb06bbe7581946755e6c726e9767330d639ad4ca467ff670414a65eacba93d2b33aa628f9eb2949054c82e62774cc13f013998cf29465e8b83dce66928b2c9e1f4cebbb91e2d8b2278879073411358910ef23c66c3115af8ca4ed0b595c8a49ae8eb955a86a2549132cd65a2f6a44eece7b43a40629ef172b068aab1c2126fe058ad02183dea6994abc7daa71414666c57b4c40a17781ac4784e6ab2ecbb8fb2101fa1530a00032b5d1b51b57ac1537076faa54b3b9bbfd9dcac565209cc681b73d5a3c7138156b258321c05a494345c9aa72197c9d3a9552e437e891c437ba16c00c76f0a6252c8e4cebed86398957088596ce28c5880db1b90306958c12a45b5a14e1b05c161c5a3aa78099154a557a58e6c2c7758653e3209edb90110e40e037732a7e44d7a60736437c7a3e872c82b20478083b2592ea7418b75b002f1da834df8624f665df2677e0ae98c62636f603bc1d796935a11bd18fb851e8076c7e4c58b41abc71481608281ee4c572b612c08b8cadcd6b7dc83130f161edb26b1335662a5161478eb5d5a8c61faa175f54166ea2741d27c0496292380e93f6b77577b494c463c9ce8960bcec25f43f198f0552da73819bd7131cec101fe6448f7ba3fb03637b351af9e284da6677b53b71ffde41ee41518b18c39813a82ca041f2466321ba9531ad4b576cb8825978b565580d5f000b9a56a943c2cedec578f728785487abc0a8f2d28af8aa3237022125fab084cd19565816d15f8bc6936959eea23f8279c74946a8ba37d2eec75622c4f911c24839b78cbc8812fa55e19e10ede4931f5d16bba8aa44943bf9720395a8b1328648b887b28a98423e4322a69a752d1d2121d447c2f05bc91e52635d06bb1e05daab02f02b6ba9ea8944d9344ef68c23af10144b93a40c456da0857acdcacebf1782d63a0648497c91916a50b3d0688800b968f1e2200fceb4538f7520becb0fb86368ada208c0602e1ba5d2ca85da8d36ab8782a80436d69f65622279d8145aa5ed9671a28699ac9990d738c3b67ba500a731cda82965a01b4c16144383bfbf3334d159c31831f94301d6a0320a4c7a340aab3a18825516b819a285dbb82a28f164091516c2519b9b534ab8d116cf61303dfa4091fab8669a417a9862f90491d251277d4b7b0523b7c4e345ebb090e5ee581f1933e7168567a857dfaf916f7747550409889bcbfb7e32840537ecb7c050b18552fe5aabb6794b27505f3b721c0b96b738c844f816160d3c4349c4463f12d248a6605b52bb9f8b370e958db55b9ee0663454104c47781e8e0a6eceb2a2632acf0082c4e1806c0927a25e7ba8f1a395f1a352e72ccf72093a9587299e5bc23933395836bcc97832360a992b040a7b67d4e2caa3d227f60d4c8ae293070b1878c63c8e106267a8ac7bcc850dabb5904769fc487b4f417388ce6755058470a3a7fae41b56f009b01c74af2c0a7d252b30302a7b3585864c84c8aa4ac42e82b1ab44215191284799c40d5ac80079d30625dd09562e555167391a370fb6841a98ff2b85713b75ff58b984efaa29393540fcb20e3c1cdb1887be3a30fd3861d62999f2c376704983f969197c9165f19b498bc169966269e3af2300847c908a4738c8655f476238fba9bdb05c3e4f1c3aadc7432960603c36f759c69e4ba048c76561ab4831b40341ed5c05c7b8a853169f2d75713c97a883419457193b9889724d3a108c1c3d083404d93a25a98babfe33d36fccf4f6623b9e378fc5c731b0a20df7b5c28a0c86c065017d37a65d89e8e127acb630f4304739f19bb2a596bf950c996805f73d79ec0aa09dbb0561c3a3bdb13009f672b9f2c907c468d916c305d530fe5910a3c029a722a9e1e6048ef23454bb64b1c9eb2d1c1fb4c57 +result: pass +ciphertext: 9ea5dcbbe778444d92c1162b8842a4a2fc33f2e4de75c1e5dc23569c80479384067bc22205b47bba218bb0c8f54475d71141a2e66dab38320476b00695a09735ff5037008e16ebb9f5d5865a479fefd25cc29e9661569237ef9b1a0f3f857328d857c1052490b533f46b50653e95b7159cb7373ed0a06b86229d0cdabda69738c45e9ce6339c58a5206ec77b73e71f29c55dda3b396ecea3f5dbd533f8e5892608c204518174fe2abf933b4d1a734cf0f0b3e53b566e00ddc9551164577ec0b9b698a35bf949fedbab9ba066b0bccc5611cc57ddac6cec3307a51e9af5ccc4aaab97551d005a68c968c5ad29ac12681672910919f4f3708c839f68ba43ab6ed9b3fd5ab913c156daca0c79d4ce04604d49494ffe53e204bfb04810cc179d830b22b36563674fda54c8369e412160d3d5f1e5494ec76e1714f70b5d41312802dc615f06a22159e762f825052d1de9d1a43bb476c43ab6071a53dcfd1575beeb415a58902a22b9018d1fe86b664d8676b2cb145a3b86756dd1dc7c0c8cd64777064e95f3e47c54544a0e192116b54ee581444e8a809f6b4e790888560842609c2115b6851cb388eb3d441c28ad517eeccdcc7fc0f5a487bb38995143fa2f0f99d0ab708df86ce26756adbf7b75844c8e94b628ec2b117e07180b7ef46bcb04f9473903e75cfe8c34eaa3fbc44a9da3568b06ab5b8a2196b09cc53c0d47d28a118c1ae014ebefb782a4927500a57c8a4f44a9051eea6cbfb00a20f3b62d1101ee1d0a9f7a706774b9aeeecd91daaa82ce8ca7adcaa2727cfc2ae37c1d05ac515e37108678272226d1dd0a7a4a7aee2be99831ff18864cc3d438427897f22043cb5e193b27465b3627fd9d7a0976268f2c2934050701783e25b73537aae506b6dd8de3a03381b96c9af1e0cb477bb1da66683b832402c829dcf20e872ab79f5f4a658af4f7d53430b415d0cb50ed334acd4ae8693bb27a0b36b5f2769674758585d03121c3636ebe4d4a55f23e0fdf7463385fac3fbe4827a6cef0e814823dc6aa558c1e9f18ece63a62820bfb338a5929cbbcbd496c601892a9f6b4a34fa43d3ddf9fcac8e0069a733e4a9cf976427979bd829c0d394ca2b09ae53a4a3e7582e8035d22b42f0f66549ccaeaa5809afd1c18b22d5570e4bd6a872dc534b4a1c404e4f9985aad35422a27af913f8f8f39ba3535ba4339710e2869aa150fdadd00ed2ddcdb85404bf6623ae56f8279b5f86f7e3b28643c8588d7900397b567cbbd62bf9399aaaa1f608b2be7f0caa251b451b6186fe58b49d4b7e061193ee591da5bcdafe08fe03e3ff0bcd7b5327817e8d155859e77bb84ef616897e15ac38b516bc53421230cb0c256fa5aeb72455300983d2114b64d61c9b2f2f08e5c1f3af7a00f47eeaa36c9de5fe9487533fb893281607bef7b7c940216abbec21befdf21ab4e5078ce57dacb96b9b46281a483a11d05df9933a1e09385e6cea10a26fbad604cfdb56e82e6e7fe146d34d935946e19dcb87dd0dce2d2110614027e7ec6208bc2ef5d0a1f9554124abc026233d41958d683667a20829811d224f978d5a3fca48340dbf8b6bf0953d90eff929431b8c312335ab4c5a8538d6b07dd53fa214974183f2c0f8b2969f59881c5a7a90605a8ac2d47001a9177391a66cbe2f26664b5b446e03df736fd43ad9dd80d753e0c7cc9c86c0fa36fc0edd2e5515683d88d30f16c0a89fe72f855bc47c0cb676b2be16be3f93476df3128d49e8107a05b8128bf69a8d4ef13ab3805d78c2dd2d27b771daef67c3958117901d0f23f4432bf07a45cfc0ee2345363bc713c3e34980c6b0266f990e33fa25cf7a6ea84fdb6eb43761d3117d99a1e44c4996787d286ee5776381557ae949499ed5ffb3834aa30585aa8f782aee707e02aab97a4749fdf26aaab56068b35ccbcd148db9b87e07174600338942ed289afe3cbf81df1636dea87a53a15e87456cee2c8693d2f727035e52d89f4919575c7843485e147c36e9efd0831c1ceb9aa70bc6f0dbea7398e924ca07fc682dbb2b9c419e693267c37255397ae89f3c76c6ce634d7113eaad6474dccfb0bc914b4d11371f4730b228dfe89a4b0db7753239a9959a3b250ccf43be6207a12e588529019e72c0b4f432e377abc4f29449c45e987bfa765a45ca0fa39d96014dc447de4ccd3b0a6e07def8afff4cae12af7673935771be3aaba37060d +shared_secret: eff76345f442ea27594bfb6e1e9eeffb55dbd15b9936a3aab881c0d21b45c28e + +# Official test vector 95, seed: "121d90e70af6204445d0deb28ac0c108262719e9fd3476aca74bbfde89faf04d8d5f89a624e8a75db80431f0d10ad28f" +entropy: eca2adc3da1fb15f34033405ec08ef2f46163df4bfcccf8842c600ce0bc2026c +public_key = 56180d96474d83a849634866a5cb0e6e00b8cb964067060df339cb2ea05fbc6021057978ff3baf47ccca15d90147473e8bab23693b6b70872b27b4a4c0730c5374a260e7cbbe9a094ab50e6fab80c32875c2032a5eaa8f2347c313409ca19302a0437cdea621da1ca0082157ea362ef7907fdc5826f067ac4a4a1e4b997d240c7d3df9ae6db528159402d1943fad6743e6e18b345ca2c0494d9bc956888ac85c021153b65388f04c456608e41361a6d3525a1143f610c21b2a9a7f5a2e1a461552904e341ab427028e567741d9906982e4b563d980b68871eef012f2c3639a244cd300cd0030bcf4a2b1db5101c1d66ee28bc3bc276b7e9922d0253904f30bb676777a36a897d35d381292915a82f9b2b7705380277916e16a137030198032b865c823e80a58c12ab39639488d65b0c80a391102cbcb4811911c60f618323c13a0e967bac6561483026c32348502927f70cb2f780bb571f861cdd5394296436e37737a8ac6cbdc42a0f9b96941907be3abb5e7740e193d590c862130283f0711665a85fff5158c968578781a7b766cead81633b6a2560b0a740752d83253a04c7f17b90b63860c19f38b78866edbb79482d8af6cb858c8a38fcf1c423f10cbbd9131ed87116b611a75bc109ee57eeacb6b2e1201e488c785b87f384c86587844a921701205979c1ba17dbc1519dc0908c656d7734a5a354e05606acf7901f0c7590e3a324c30a905b2462da7cfe478a4697601618bc74070a9e30707219c53b48c14c01a8fc745098a27b799868166c26f51a12a9a24c9faa336f92692c141961ba4444dcba2a370a63f533f87ca2b1b9537987b7b71043d5fd090300a7d4673a38cb781f833897e94955bba19d428cb7f71710e98901b3597467795a84487bcc5a1180482fea1205a0a854481719c12b11054ad3c85175a04c27011c29c387d0e571084f625a6f73cb5986945cccaaaac7d9eaa305c31535877cadf213d5bd25801438717dbb5051532f5f135f2f79fbd093864439507446b36f349ce4748fe614463917864eb90f3f36742f026ecf32e82f1cb90017099ec78380b5aca2c7e82657557eb66c2fb633aca3d99962ef8927a3f3c9d8da538b89525310664dc2889410465e90b4d078c7dc8f030729555756c807fe228623a37a2b248ba55516caca65256bbffaa6cf6457dba32336a71221659358f955416074ad0131dc4d186bcca317d193a91d12900c477a00490cc464a119214df01882576b41ad7b6f29b34dbb3b03a5c77b2d4162d985530c908b186b7e168c2ad69830302283cca078f5816a9c79add9bbbca9b3fee02447dca3ccb82bac0ccc385538208e49742da9616a28bb3c20568838de02140eee3a7e5a94a82563a90720c62ba2f32f05ddea552f565b4e2597b17c3b8c24168d4484deff79a25b82ee1253049e619829508b01a7891a10db5c5a532f4880c169a38c7a0c99715a2a696bf66b678a0349ef02c7002a5e5ec3db2c3647b960fe9a343b540069a6c228e024719e269853535f5e841f78922dd85c3052188a2db0b2a453b5119311747386352a437d0a0e2fa474aec0bdf1090ec169cf473b9cd153c2131b2e7e001d3525957a487a38c726d710a6bf6a1f0027432c53a56a96c3a1a100ea69103fbcca441a3f43002dd47714d397f7a3a02d0137a0dc060ea0669530161c67334b8965faba455b81a6dcb37c8d2ba97c9496c3e3bc984c44a7b2611b51794ee2347cc489c07b4a89e8c5c620221b9c98c08eb5b245819a92cadeb684b82757e00039079e550a7c7a14bc856e0d347d28861921277bf18932183cb9c40cb07d67202a7838b500df71b1ebaa87202a0943d982aedf41260b38c67e25173dbc67be8b33d10724b08611857c13870bff8c0324acb67f498b599db59515ca863bb1016e87d07b747efe8c903f50b3f7468053587555163e7f5165740204b78ccf2bb11dc32ad1cea844073b7d4667fb55b93bdb4a708db296f3bbbc511119db4479737578859075c320e55b0a5185552cb9426a69b0bd11b4dff716d5cc208e3fb46c3c4456cd63ef1d598bd675d55b1adc177790da6509dea49aa958d2ce9a9e6ecb19fe96548a88f7b489433147dde00139007b6bdca9b3c6c0eff0a1832c10a257599fa50200b167829bb34ee72551bbf3a650c7a34ae6ed516d401d89486d438a0515a537077561ec79e1a3963ab +result: pass +ciphertext: e93751ffa496e521eb17c23e50a0f6760223fd2846317d2e479e6f78088daf421843d2da3581c95bf51904b3a1716bb0c0f47095622b02ed4d8a7ae681d50b91606b597fac2c506380b94600919c4d3bafbfcda50717f13cd2d149f6992e48390333fa9016604aee7a8680b6e20003f62d265c5db1248774abf9a37b47cb63057486cbe378767f4f43a1280b8abf9678a86ad0195f915d880b0ddb336924c3fcc135a7a34517713d5c43a1ad0775530dc1429b55dba7b95dc1ca7809b5e84e905dc12b47bd82289af59ef73ccaa232b34e68a2e1cf445f657fa9ba97dd8164e39937f19e5d3c185098683aa7a5ffa27077a2f2f898c91d0dd71f8a11c6fbec90bbb3777da4e6184b24d8aa84280d02ebc034e884d53cd00f1d7cdf5d1da8e0139d0bb23e02d82aa50c65067366478176bb3997e0ac5ee7d499aefdffbb93d5a809e68c2d36dafe9ddb1fde88b9aa682fd32bfd10994e4636005aa3444f5d69434ce963faa32092f0fb99e980b1b3e9c20d322c8dc3be47365823084740da3358ec916d9f73e4e7d14ed93b8af46636564e34302906c2056eec89a6d5b80f464fe052348715f341e4463d6be386f6a00c9f2195e8528f7874e802ef1a67eeda9f2d88ccb798afee08312f50831c7464d8eb9477d215ff6197dd0c527388ad39f285fbee3b7e7b3577e5ad8c9a3296a3336e20d0e488a136a12d216f956f431098d4851bf0d5a39a6c9816b793e02f3a0caa80b12d75a6d3b30dfa8ef2c5df0b7ceae707589b11ba925c389b91335b7108c54baf166b458493037091b9b03d4464e30938f40963c535ecbc15911506a392f8c810faffb3935d9d8ba7cfa7f9bdee26dc7c8adf4cf456455aa4a9fbc9923752d9da4373b3e4964ae8fc35d47db83884017105d83b403e265e707e08904ce12ef68be7fa4ebb2e394cea40f59d149e4c4c36517b4ca97715811d263f75f3f0fead99bb8237c1ddd87f0c97abec768b6778ad9d7766b59110031675a710e2ca58adbed88f60ab224f438d66803c824a597f4788f04d363b01993fd1d781fade7473d9642436a6903a4f90fe2c657210543ad430f380192f3fec2cde08ffcc8ddf6f06b2ec6ded6df90cecad837d216b8a2430fa202096a874a8ad599ac981851b3d2473e34cfeebaf6c80c83dce157e1d48dc55fa93486df68761a68cd4ac25598e7aa592176cb2c129afb0bd1605785f677ffec08ea09687aca6862ca2553ff6ab3b06efd9d95d9e85b9762f7d6c69765f12f88f5c53fd27eb2f01e4befa14cb806ae36f3e03279e63f9654fc6117939c821e95cd395233278f13a9383ce09098d908ea7cbf40601f69643a6570eca6fec04a20eb27c621edd89fe1cdb8e5a92ecd5a79f9195832126e3bf6a50d5fa01d9b6b421497d847507cf1f09f292becdf91857b8e5b3be40400095dc02624bdb895dc54c59294806919a370433cef927d816cb8f4bf1fd8d86e1b997176bdccf4faa3cc2015612d08003a1a20fd0af157192fa4e5242da1375ca707fac2eab67c9f9c8d7dd0cdd555e3ec7dd475655f6d5a02c5956c3168ad4c0c7b2b661ac2f02898594fe539e09c2d484bd179f4d58a3c2dbf64deadce93d6c5941a14b68caec2d6599bd323ae520c9e388dae37c28ddaa92ec49c725ada348b867014b72f9e18a3020dac6438bd35b0a5850fb9f60f2fdac1a7d4c7a1755c898969666778fb16f13621fa171efd844d89eb7c687d429e3e35eb353acc6aa2d85948527f4f704c4bc7f96ee8ee8c6110859cd798c12610ac35035ff371ef30e20622339805b8a09c8a10b45f32e1f67372bcf47c3b5c1c3f4786a01fa6dfd40a75859e60ad6e74b1bfa906c5f72c0631661943aa2d7ef701ba54546b5bdf6a057e4b4354442a8188fa6b2b4d316a59c3f7512266e145976ba4a0be6b65b6a70da0c31a14810f27ed51dd30ebd9032583e65c3f6e7efe5f6ef9b311e2984c94e88007d4e810c387135175bd7389ea96ca37b041bb0e1d6143b3f4df77e43ffa3a5e2b07c3534b774c2eee8ee2ea2b2f672a7fc40c73f8fff21b7feaeedd7ec5e34047cd6665a58eae2e42f9ee1b52429328c961449b1b712c2d8f3a637878acb02801ebbd15158c1c86ea656db183e583b297fbfb6a2f64ba68eddcb2dc61eab4cc180b0efdcee90dfab0feb0f49f833cb029f8a901cabf2ea1f7de4b8aafb630fd56001cd +shared_secret: d788c3a7c4d8a957b409028cfc62e5266559cbec39534d7f337aad2123bba577 + +# Official test vector 96, seed: "b3ac6503206accc2a92cbc210d020a2654726911d11ce676aa04feaa08af1d20c654e4105883ae470ec3ab299075d420" +entropy: c4f15bec2d7701339d0ade4835193bea3632edcf89e74992620d9eb623a0d0d4 +public_key = cbf017d8e336efbb596130b73268680be4885255aa6353a39f04740be2c3910a9ba91700687088aeca7fd4a37feca45bf29a27824babb327c49f18539ed20c1755983e6b1e03f98f8610227362c9e12246d2176ddaf48dac31955e59a7d69a8dfa582f8c66b14db7259e6c4c63bb88c995a71fc44bf964b1650746ff672fc2716528741dd8174aa2326e21f025367a0f243ac63728bc6ab95dc22a9632e18cff13cc6e38a1f4a0a542259d41db0c1dc640e8735dfbaca58c3c7f18e39c74641d477099ff1ac96c924e366b16ae423de8bc9610c855eb686e8d9301f2c08e96e3a2776523ffb93cfa3726c1d03d0c2c634f1cbae6dbb4cb987be8eb464190056cdc29a7651c79773b1686269c1646a65786f667986e7a552278713fe5c5a4f9c23633c467b8b63b408c4229cea5f5a0664852729a7474695137c0961783656df45277092226e232d5eb929c8bb57781cded3b7d5266bf5c2ccfa992bb9d8b59746319e6b5803d00a84e2a99989c08bc9726783389fd506074606a0945c7e3e22500d58fe3a647213b19beb6174c72833dec8ecd036499e53b0a18a1d6e471712a1d64a903b1f3634ceaace56a906a1336c9d9708768a6bcb9cfc036ac22607810457e8560561a38c5cd84c6ca021a98c15aadc47e874778a81423d669ab411a72aa4a661deb2b8f4a06600baac967617bfc5dc8d12d44d9a7f80b46d9a40b91a66e3cfa0bfb5523c04922db21c4120717b436c6dc81030d13b867e707b9a3891791c756800adb41cc9a29260d98202472b733611037a98b454b6b5af423df236dc079941b160ff1c0b8ed1b14e787898da354cf79ca4fe506d5742b58141dcf624964397274737e4ed1aacb76a92bba8966ab24741163893587c94cbd4581bd0a110937946051c572f2232a149667794812039ba9e6525a298531e7479a161123da95b83ee746dcfa1d880130af080fd71480a4d51a48c48abcb62d4c7b44b712bc0ecc4eb53a929a1167f3c49be7b019002679123348af5b7ab18a36f86a23b309154c5307b003966c8755047718b32649945c7865f123ee60198af51dd591934ee02ef7ec218569129d03b76e9729dacc17e4407eeaa4820e238deb307d819528b932bbdd74ac25c0476c037cd8200ee9231533676f3e1b11a6fa2511a3160f10b26f2cba2966572450516be1a39ed8bf651b961e58be810bbe83957037f1671c128f91f302dfe1103d624b97b4c331db624fb354178047ad4b909ba93211908e35014d896144356c250df2248c5487ea11b329214b4c3b2342e64244d684ba914e020228e0d9b5b0283b5c96a22b510f31974843b21df48878652721bfea1b38054ba1b39ebd0a03746ab5d07ba3d80b5be050af1282bf1ef87629ea0e2f9a272bac24b7d3b464c182a8032dc2acc0b7ba3482c5cd7c0b5199522634f61d553534020671baca3534193b2a9585f47394aca1c8aff24c05a7a8b0f59745e56e12321fa1a7b38db38de3485f017626eea474e3e3c1a6bb5242f26de2529e517928e547423b79cec6452f14c17ac403c0a6e23d25d334ad07aabd8c60310082bb4a194d656b2e2b64ff3475fcc9226a526867ca7dd03c75351ab921eb35e445b144f4a7e743acca85372a03c4cad754f1d788a1c919efc198aef95baf7768dbc94f36d5a37db440ee403b9b8a339bcc50c0469f51681fcbb294a042147f895d9121701071a6ae8b85b3ca4a7f197f06cc5ed4e40c5bd1ba18f76a8010857bb0c3f8c15ef8f89fcf22afd560445c8576b8a46297f1cbf5896232040727eb40b78c97099a09eae192803bcdb153b7c9918b8c66a3e8ccb0a928b2505b3034886b452bc9f7719246d62ad183a292a75f4d6715a42153b8f8656b2c397428803725bd66239587506e9ad5694ee0592918a14346cdb0a9117b7969345bb11be07b82dc4361b580fabc4a91d919fc97251ad1a69938b507e066cfa6a251d98927f2bf2a9806163c07d1a96627265776105126e5ca5872c61e4bba95220ed45124e76b334df40fe0cc4f193baf6ce69581313616c0a9de56824f007d65692d0f675aafe086b6e2621bfba18ce1adc4337553c81b92ca4a9a2c9712416a168a7a9fd06450589641e952a96b122b4c4bb63721d6e76201f96e7403a908819bb61864f9225185678741da30f96e7973a83811b94c50bae593d1da6d3b306bf50669e590eee2 +result: pass +ciphertext: 3e9c6cfffce759668c9ba24ab80658675c29e84e998e85c476cd6854af0964756021a73b731c075391093a652e118d97f33128fe1fc8af0184a7db5a9c9ce619133154b530b34a32e1bae01226994aabfd137ec3ce15f3f83b80c78dced99d36b689e94c39e740b30c3b60f9df1980d0ceba60a721c171030034c8b686b8ffb86e14cab112da3b734d6e7f402540377546d9f46c90b52693986293ba3e96e570ec9bccac78fd3399c1a7ec2bf01492da9a54df0d106b311014af8ebff9607ad85341f31f8f389f0f780a24a84bedd3e62e5ad282c5520a7a58508f32241817ed1d673c344fa35e2949b50e5812cf2029921d4e673703d056b5a99650feee6d77ce424003fed4b0583a0b9e7331613d566399c244b2d497885cc4cf7f067cfeadcdb1702ba29d1407ac4986a0e29db84866f003f1d3f56c01a42837167ceccda9b6afc39b8ea1859d587a092202003fb06da60bc4928ba839544954c1c9bcae5b93dc808d7f312ce500ca22c7272dfc7a75182c020b5004dbe76283bf5561bb5c0bec93de1675f2e299d977433cf601b46fb52c4f7629b2a85a687a465c16bbea40c06b36bafbe2bc16bb7bddd9be6b4b710fdd63bad9bd37637f46b3d4503655cd517327ec5e32af5faa3cdbc0a83ee5fde307547b80a5da0a047945542b768add53f4d159004dc826b7469d944e802461d2a9f04857ea16b29121fdbb84ea84b1cbbb5c3accbdf7b756be7e01d25530a315848d7c5fce23e96054a5c253d4ed5a3c218825b707f97e9ce17a6e5d6c7771085eec55068f2c19591aa2324d0ba0b2cefb03fbd8d26c7e9a37cb9aa7ad69b782405606f32b80c47e54a563a960d2e75352d7b4eb4946b5e744621d62e80602902380aca323b31e52c013af38e3ecd9bd47fc632c2dbedf7948aab5a10bf492362a94eb8bcd4997899e7e6a888befb98d618327dcab4c69b25a7cba0c8cd1b9b675bbf0c051bf1b8bc1e88785b10fcc67b6bf0f690df552c2720c78767b79b02355a19c56751a007c36480e3cb90b9d91277feeb13b437b35b4ab6325113317d0129d85a386533dc8d53dd3bcd38d93cc6815abb1f30c1a3d38544e8ce0d08db592c5688598ee73eb89402b2966d736e728b75e6ff5702454b31f5c4b68c60cfb64bcec551b92d922b9a418c12b021e847021dcde19401ea9e277b136f9ebc4e066935c45280f546c806ee6a2e5d38a43f64bd467ff41aea502ca82a5cca6d26a9c688e23c0543632513279be831a342b9c00b2518657059e0992beb4267aa2a441bf252b01a92e65269288cadf6bec7f17927f01cb88d8b785baeb4678c16e20aab4de33a458356ed74471507c15dd95c97377a08485f8ad20eaa450c65e6620c40cb569f429dbbccf46d5ada1ea1ff01dd0a4cf1aa1c9b94490c0a216e1e6df250620fbf705b706856bb03a645709d82cf3fcf6f840f98b3fb4b8161c06b8a1ee5ff8360423bfa725641fa779d3f24f40c8b348f68563dbae52e3ccada99cce8ad681213c046582875ac027e6ddc210636fdd68d3f6b250ad9f9c789b76329c01859917f8b0f10b5ce451c821f9ac8c060fac028077aca46fdab43ca273d98a004acb81976ff47a50afd625d5122c7cfca554048183ddf5e34342796b17b9848071359e5722a5e4bec026733a57b1fe3ca8f5af95f3b7674d38110bee4d2c0ae39418c2b6484ac676cffce8781904cf3202d9e1767599fe870d1856bd52ba4bb1d34bf623cddcc67b9f967289b02b09ac41b55cf3a66b1e5c4a972bbea1494a4377cb0aa1b51596c5fd0f874bf8b2acbb5a0c0dd6c7c41b8ca66def9b190db9afb1fc24eb91208ecd17b8cc6e4f563c7f7d81c6188384f09ad34f8c3a6e1f1a592390780df959e0b7ab7cb255bc8ee1df237b361c88001fd1606bccc88942cf7810201bc62a9963f8bb8d2ce4592e0159950451a4d5aacfc1aca2cce03c54bb1fab96cf1f79ce3195181daaef8c527d504f5ed6bb29efdecea74202c3a7b9bb8582abe579720226df3c953a8d4d19e680aebe1536efab43379f36c215527dca12c395f71a0efcd74c6f2be3979b45234e3e16abae1a1f559470ebd9217050e6d635dfdfc410962e611917832575e1700ae85e6c79db04ffde6e7bfdbec672e5620f70d4ad86bd0b12c65de71b4dea5dc97d00e0c51d3c7707360106da1f7949fb7d706a97594224c473b77c699a +shared_secret: f4da03d95d99bdcde651fe09b288b46588b50ebf50ac1e35d86077e04f76944a + +# Official test vector 97, seed: "59eff60b1ef6185db34ee1e3b1dd2f159106ceceaa79beb74923b4f5623d5bc52dbf5d2594a1f7c6c64d12cf144e9ed4" +entropy: 28878249e2ac2b6263422993923a0c8bd05ce56e385ed13c943b03d226856947 +public_key = 8945cc28753a4f3771a68a9000944d726479e1a79d88675fa13795fc086d79f82ea5dc7e2da5ac939a42728963bfc3659d50345694373b877b0504a864247addc746e98126cdc71d0e3b0c7f457c046ac8b8c1458ee70c82905ff5183d890845b21c66953c6402cba2e329886ad51a92f7c673995fe255bf9462b2edcc899125b1820125590024b6928fa0c79476ccc407312664b83c9c59a806989c3252683b139799561708732f57804a96c0b58c88cb4a83a1271a05a9a58a4c187b45cc893b9621e8c5543a02221efa2617b0a42bca1880959e70496cd1452d36191dea226b49f76418b1a44079c2d6392c37a319ca007b65f57743598f2c40a68dcbb603f11cd32c368a0688343a25f6a348c0b260b1946abbf15b3c9ba0ad1cb302b918e4285870c9444118598ad60dd6030c45f33239abc79a04a05a2cb8e62128a3a9ccb61248f1021c7ba5751dc60d50919862332bdd0bc371e4037063879fb5bb22290328c9194aa83716316b7747a5130a984a249e2e124ea0eb67396a3197fb80bd672c6e6cab6de2cca2e3ad70d5866fc878dab1cd654729ecf9ceb733a1b81890cf51c2ac112a52b6a4122c27b86cca81089afa1361c4015abe68c62d9a11bb10358459882f58461761a7ecd3b9b3b17e32a682a389c4328bbc4aab01f44ca93f150e72678160243130555ac9e964c784c33943b5ecd07aa8097be421b796305f05e196ae166559ca5c59a445bc98092be1182f8000d5c39b7c074e016433235aca94d7162b853e45367d42e1604b10702cea82d9004259d130ad5117ca24c6ed411d5929c3f7a6bb35cbcb2ca6bf08c06d1a1cb63aa54d4164a838173b82b45523e00559994e8ff5a9cab63c6fc3266998ca8bd5820e7b16f8f86ce149c355e49451c89624b4b1f2fa7f09c5a15bbbaeb6a641d561830ba25ea470c9d7c397499c9747994bb8818bef9c1ef7802fd6963dbafb6e6dc5a3ce1509510578b96983d08c53c9384e45e6a5bea7c943d11c5c46cef5d0566c4c1f99d00079b0641636bc31913034a134e7a4b0cb959ea4662be55157fe89a7eae1a976f30517ba7e019820984115e5ec2e7d00267240695f600b2eb4181adcad96c7605d5c750154a41124c6f23696845b9b5539ae30b1564bdb2b41c09feb96b31b0796fed8503028af11b02e68f342e3210845525a52268a1b0b4f7648600b455c5c824c49e2972371808bf572017331cc8bc0e11147bc10793e096144a4187b196abde288b134bc54c5b3b85312e7a9bb90135dca9bc7396615ac979de9800c26057ae3064090174437209ede210cb2c733302c4ae9c1ac1462024d54006835ac3f23611d1bcfc945a58401c6a6da42242983f4e712a5080bdd13633b1c98f32835f179a3d011aaa46b9b2fb810dee9495cb4451fe0ba20f71992a445e0c16486d06382c8cc4051647739762257a00d80956475b4521493df79a28319c2c1338c9cb3791980785c2a1ec4a11844b608a7c7c92b81015534a03904cd5a4777fd587ad8004b61ec40bc9aa7a4268ef445900522759cc5057baa2a5729bcfb3a0666126a90d56b7527c32800960d9586e93579eed18189f0a762518125a4317649a3c1883c6ed8b047b5444667b4d53ab5d5b952b10ca1b8aa4ca5e438ee3c2e79c2132bcc257d8585abb609ff870d25826a67075fc38c32cd1c6d78e56a4f18cb59c756979331f1786820ba297f4c26ce251c93686506b26805286cf5919ab660092e6c1825d746c8c9478b408aca024376233ab8c287d709d02f7b8c6d80b4430917fe546ba774482b9b77c20bccad85355f562152a1593cf2bbb02014df47b29d1ca5c1d300445cb4835b45bd59b92caa1cadfab9986869f5a7875967981f1267e615180bf7952a27ab3527a60b130d69e155ff88410b1a10a705b14df248cca801e3b7610baac9d92c75e4c759cf7c8f644b610a350a9a9b5b59eb798a1cbf42d02f211a27aaf05ab8e19baa600f3babca5d82c9388466c5aba81c32a7dabc9775e73a77432f9b96225db1698a2c7a6c9b6949c59d7796758d24c41872802a63bc9723b17f703903c84e425383051abb07e94a1f19a258a61c66b56f46cccf68fa4ad62c528cc1bba2d579913ab754268eadc4204b887bb764096783301fd30ef9d972acacc01977d137525d619df951b0f9a5008bd9cb4524c5ae7cec747696489a8fc0ef65 +result: pass +ciphertext: 6b45b47d66751eaf9909cd0edbd820b9990a7fe19e758d8391c34f5839c9d883ffa86690b4429fd944b2ea3242fc374b007779138a8148c80349b13d098bab8ba58e7c06fa8c7f06e681402dfc890421cc926b7b6e1798eb43ad3e65802b9b997a85985ce8abec4643de68dfe0aa48abaae4f1a91df524608cb6552019cb45a5c42bdacec25bbcde3fbf357258dc908d513d9868a5b8057b12a68086c13aa259c5b53079bb6790b52f7fb8f0e5b220f8960e337f1d60f72819551c9280910e340d3a60c653f384d9dfad692c84d86c3921f427b396a8de54c846274005115119ad5dde417ae74c49dbed1fe8b34eae4091f2d5b8316f7015b74ca8f18be3ad970a99860da876a68fba30375e095fb96fd31d770b290bac3289692831b813261d357e176d39c4e95aefc2d476c2bd03c85e47893e6d730c57f463ceddf1b519f73c56ad3fe2e8966dcf9df718d0589b4d6c78f74c06d0f6b0e3a5d411b00026e950822f90dd1bb91bcbbe81b18f694eb115ea5b529aaae5837a3203cc788b1f25f5712ee61503a2e433cbe61b5242f97c8b9b6ac3e9ff3d50f6240b486f7b127d4ef67fd7db5fbd37d6954ca43764bc9e93e6895455b3b97787b867d47c3fe58e9cbfd916bde745aa799f6c624e66b9ce6409343844cef89a72d50885019be04deb1b5fb94cd74e3fc04163ec07d3ae68e6109543693e6ebcda3fa2921128e53f13536398b0a233c82b31c66ca4ea913eb54402628a1174bcd3212eb460006b872fc5955a998e20d05fd8861e296ae371e84fb3641caf9a64159b9e40b140d9e676c5fdd40f1f6b8050cf2c96a530b2e7752a6587144ed01b585f8c6da4802a4ccb0444fa9849f49f5bd02acf084063639bbf440e14da90f0ec5ccb0bc3a343a6edcc5416907a78ba52ed607747d431b1ab2aa2a166c75af9773be3c10e30c0354596cdf55036de3705c541a0e776e5c06079fa77790da400608823ff5732da88a5e0f04daea35c2ee37b2e852defd3ac53cd0bd411206eb6172ab133d3864170a2185bfa97daf434b1a944501e278bf9696cfe7d5331ab222fcde6237c765336d38d1791bc6f94364699e1fb040ca99633d107998152a78b918e58925fa510174cca3eac4db336ea9eee5fcdc4bc637273e221d6a6a23acbcf63b90b2f12f776cf1aa7449365695d487a7d9d1c84238556bc5a1aacb169f0be9ad07d796c7e0065497c0dc4eb75b00afc7aad3c14b145bc1119feb43a54c00a79455d92bfeb5637f55507f6fabc9643872423a71c791568eb5cd4de77bd5dc3bbbf3fa866f1481d87866232a30f8d826dbbfe440505a2d72cb314d15a8831c21ed690e51ac7f78b2c8ac79e4c1b0b8df49c1b35799d1f9f67a7d0603dc7b7247de7db7c9b3f1fab9555a8b45369aba7111a3cceda4ccde002b225b2b9eb02a0291672fcba505e0e2c7dda86a41fccd3ea865460c734778683cf73cbb420e0bb0a6507195c45691367442a823d0c74c36ad52e45cfe3e458b098b5a535dff6b90d74247ae425f22c4148ab53085ac3165c63c689e7d09d0c5e242b41adab8d295c7a01bf343221b831cb7915d2127b076c96f161949096424790e2614b73e6d7b107d6628d012c8c6f7de8c4577a8b8c67c50099595c104a13012c33de38cf7db732dade0f1cc6da14e785b104ba024920222a00b183f1957ee8a11b121aa624fef83d80e112da47e80476bbd73a03e579b4fd821525ec0768d84cf9f1e75f09852eeb3b13df721b58d174fd06e8f0bbdcbf8dd194d2a5393f22fc7249448050f29b9b74c044bdb8aec832ca049146e3c4fa06c0b4e699f5ed8a3a0f630ce91f1091c827dc7d790db09d2e93768957be071e6c9dceb41a26916b6110586e85d75fb45691cecc84022e0d49da6cfe5d178e798ab353541bfa947a2ace7765163615947c1f4d6b06d8287194d08be3b5708697cbbab8e2a875f3f362c20ad3a92260a80d1a24e72a0392766b5cd759e246bb8150b397479d43e5a4b0b568786dc50ff13f5acd640e975a89be58dff8be1197e33d7d0a0e10922878c7377d09402e888ba06fc11e0e0cbf5034b5638a7b043c097d90898272ce306aaec09610cd2cb0ee870bbde1d92b6d9cb5c46dae7e5e2ccd08565f6556fb2a442fa74b898c18705d82f011a50e0dcf96d14d7dfaa7602d56dc53b54f907b6b1feef5845a5b27c2cce78ba138ff +shared_secret: 4aac182a36508198689ad4b0c24abacfa421cddf073e6ccb3f5c22c37f1c9eb1 + +# Official test vector 98, seed: "dddca9dc31bea737d3f474e7560b37facb2f53c803e768ffaade7669ff94b1d4fbd17068cffd5dfdd24aadada4ef6b12" +entropy: 17fc65f7fbd7c75ceec421dee84dff5a8cb22764a182db17e0ebe857f54d60eb +public_key = fab5cf19743430a247522566196826be35c3ba55053ed8c8ac04211931a38d5a100c7097059bc058d551672542a8f1a7ffe81e0c43b1636572f4608dfadc72f9a786c4c2b2d27c576d29461ad56369b7300d3b0a7890ca3d8407a8a1a90f796558843202152a7131919d9417065360440ab8516909087b2f4ea408baba0cd5c0af2a85634e88693b8c121dc8121d462650f2b417a0c44a5018bc2a70e68a590b757b4c0ac70bca25923049fda10856f62ca42701ab9a75d9991fe3d99856138112ba4f52da1166f410e3f15baf7c3062563dbf0626f76c4ce98ccb1f238a8870201654a6e551a5de9cc24fb36dff2334f2f7bcf51b8b6f8c2d07b4892a657e58637011624076040c02ec59924916f5e49956534b0b7a746b16663f33cef4440f2eb5be9fe4034db153d296a86d83bee3b08ae5341223193a7febabc53956049bc1e14819391c5be5e216377438b0fb56ad770335a97c8e574c015c66d99c59325a2edafc7a6b4ba77fb51050a2c400d754d71c0fac84781af78c03c094bd800fe25b7f7060bfb4252643d97ccc6002a1568d4af181e992b1ffa8cc17bb835f0b2e6b72026478729275b002636cb49c9edbf4373912961da0b913e6cfc1959b80e711cea276c10158dc43b6887042d8d58402cc54a671275fb49a7920c35651aa4d81aebdc772112420db0162b94648ccc519e369958ce40adc90413d9802e621b6e8ccac13d846151c19c6813259c5998f40710f3162d006c5d3a9b2d18861789aa7854831a0314eb74a03b84921ed73ae13db7298288ccec07eaef97716d14a8a296bc3d0b95e4a78e1fa2467c6ac961a73ce63085ca1a4b101adb7f2a4059a97a24bc2dfdb6115386de5e95486a46e6697a17a88510c97a0602205e008088d269082b2c1790c02912a9f03383a94d2127ce1a0d7f558434a6300513a14e2c4f6b33d8a159a06d09983688f75265a84637f07846f0c47441bc6a6a8e48142b39b4891bb5c321c8bd307dcb6326dbb960b532d88f08f8a299d914824e46189378c635cf2088ed8382fbb4164d01c867c1f1c4973116c3629b3cddcb40b1832a0f06b6d04ec8edc46205da3b28f50bd1730bbc04c5f927209a4369b878596a2e149767139e4a06493ea42034062ab1ab037728908c07f9bdc820495916c9114f7e95683c945c19354dc06c5b7888244ec179bf88ed4e68bd10483918bcea652446b7333e71a403e97446564361b5253d0b225d4155682123725f61ed5d4655bdb7891c6572758977f0b4e8de021e832ce6314c25e82392cbca5c794cd20241b87ec87a85a017774bc3da18e77e0b53a521b2eb0a7006b35edf5b0a85b44d3d78dfbb476861997714330c9c5ae5e0027d7298a64b62f2523670c618051629c9577abc2f456eb0ca33fc86e94d910d186144be3a886230cf3566cc09c2ccc76719bc349cfb70c35b24ea6b4bf1c0394527a529641a2b45b60da3a976d70012e48b5df60a7d8382ab149760cb5579f0673f78a52c01c8efd1a667d86635bf15035ac32805b56cc9a1cff506ca38b3df7a3b860985fed84b2b4f1c7f3a88122630f438c565660362a90887a9cb55090cc448c9088c6783aa890cb51ccc3c8cc7c097d59808f06675e1e826869abbc0644a612d471d5c106214abcc1115b106ab3405b1de14c664a773e6e5667d8177ed736a967710edda390f0b105f9c5ba3a2a61912a2414397030022035c533de16c634a799f2b72fc3112071e7aaebd1636a3603971020e2f90fb8113387ca17171b39104595e5500b50c99c37aba1fad50fed567d5eecc00db3ac14624675c76846b42327b9510ddb882b24be90c9661f5c46eb5b1991d25920c78f35807ec55ac2827776a54ac4ee272b469ac65aabc6ba199dbe33724e5866e24a8058d5908e30bf54325745907752d324490b766f6672c4c8443ff7647dec597276135a4789dbab39355175bf3a63ca6a359a879d648c0b388270680781d3e732efa5c85f1c020e4384875954b50403a4987ce54a6f24c83e541491b7d144012544b96b00b933c51704bcfc2b20ada6c481ab32d555898174526a266f70b7939054a88256a59c95a0ec2501cbd45f0ff2ad418b82ecb514f7ebc3fc33647f5c43c5026fb547a33bf2642c9279dc39ac6012a770267d6c947324c6d45b65393421bf4bd7068abb93ab3a36081a303cf37b90037749a046d478 +result: pass +ciphertext: b194cfcd01263bba40476580d27f88b07b884d31221bf0e63c7951ff897d292c0fff18238fb1c563280953dd81591e55830ec1430dbae2c77a8b116679a80cf79d651e7ee9e820ca0551511f525df28319be43fbacc67e58e3617852e7fc9933d49826837b88f18474a71710e58a5d0ace606d58e596d63843762964e98c56861c20cac9deb2f4e8ebbf5d522e6d059721d628ec00e988043587b4472d630dc65a73ca4f218e0bb8045688409185183a6c7263c6cf90e00b1016c70a70ffaa02fa3ee39ed539387c67b92a48d5c829aba6906b82f322db0b632b1e557f9af22adb324fa555a44caccef691a57fca147707d973dc9f4fa73ade6bcaed8c7ccb789162a632fa1c9014b91950788d6d6c3019d2143c376ce025726c3cb7451f506784ced9baefca8dcbbb3a52151611d8a08ff87fdb67d9b5e59e78df8cf674cee8bbe5e4c513089f6a91441dadfbb12c869be7c805a650b62407dedcaa5e4bbe7f25cc654e75335016f53e5d73046358f82e457c2e28ac678ca8eb67c25b87e47bfe02bf16aee67d99f6670560ee4a4a6ecbb0c85695c3d89b6448e02b47aedb9901ba5406711f7583d3a9ea1ce672a06a243763855cf17f900136b90b478c4b4f3ee0028b5608fe2ae58083cd079dcc47e4fbceff2340bf87310278a4eec7ef794b576447b87d991d2164815d05b93b7d4b1f1aed5b536dd57a374312b801b3dbfa9822d9e381ccc160653c72b1c129ce6c61d94bc2e647cd86defe3210ca3c31501ad31aa38ae48c0743360edd1b88d6dd6981657283a4f745fe69949e1b402903efab49cb71072280e75b1ab271aa84f9ae18532e90eb21279a8c11a4e3539b0ac7e5cbe6c1eafba4969a65ace86c355c8d0d2e884eab80f3073e6c26c8454a6ec77961b02018739fad9ca01e4963532450e5f477685c82244af62d58bc3d932b2c34bd30772a0d0ea939f7a6f609034cbf27aa308cf90efd2b3baac238b01bdaab0b5f6970bb0ce8cb0154461d8ec9239c4db6cab7b109d48695120d9ef3e75977205c7746d1c2bbe5a4bc4799e62ced8b5e4d2c924aece66c7e3c93859619c4791b10adb6e6f19cf0437c86cea08e3fd1d8dd35200598f5740461ce79d75f72b6e1ebbbc2ef5534eb2a76f6410c9fc338ee0ed87427df9efcd06df7cd29f4cd4273f68c6bb6d22c9d511575f25ada1ddf2b497537fb2a5fc7b7370c741a355b5cc6c19267d2d14b75b3fc6797268bff49c5e791cd085abb53e309f1f68cf25a6c10c53c2b7522739f763c2efb08c9bad5ea5c4ad37dec829fce7e0c1838c1fdbad2cdf2e9ca493f78429e2b1cc23cda79ebc3a559c06c771264fa69b42985bb6b51408ad7ee0a5f5f97514ce8505b1e9f442d3a48038d7d258a98fc64a2ad5973dd69b88939bf3fe7760aacecbaccb546dd7fb0630194a4456e214d931b9d12174a9f386807ec46683e424dadec6f86e9becce6ff2627ddf9b65098a26844cfccc30b9a822201d90448d81189547e9d6383e392f661a61b9bce01d765cecbe8ff6f31b9daa9a83141c7b02f993244c45b8262eab127f94d6304a375406c31de7cd51209e64e3172caa871db3af0dc3f7c806665407790c18f533d7dd742f43961e55a646f6661936eee04d489e9adc7c241597683814d222c5addae355666deb5f118387b4a5c4d496c856b001243113e9ad3d099bdd50fd177d72c86c1ca9a039941dc845b6355a05489ba51b7c0d7169883bbdd89d2a3afd97d932f6417d14c7d48f1f3dae337d070ac8d297ac3dd4886c3149de9e1a3a082f1890e01ee224bf8cf49e0fa01d5cb9b81cc4b1763e02b8fcc27231601a6768a55490a6ca280d78999b5b482fff4b78c5cf2c20512bb02ba980b50d138bd6fcfb42e055b7f93b814b3cad013c38282c25a9beff303963c33d91a699be48b6754087f80d39c7cc5d1fe3e5b0a0878d94494bc933119c0f5562ebbc1fe7b6d68df2ad51ea2f055c045b048932cf6df144db0dd8b04f9787932a13e91ec19871239a2d650055e8ce262c2aa3caef9a7f487bd7c53d47f899b7dce9e99c12a3d4276e7988950d72e7a7eb099f954311b0a357ea77df6e8650dfb872fbd64dffd5426485b9b60058af70396298ebe82f0cf8f2cf7b4fe82b0be28888339b09a13b9dfefb41af339ffe33f37c539c67f9d15047acc6de9ee6b71eb41d2bd7e04fe8e1704714f0512 +shared_secret: a51f089d627c8d7da9740aa9d768778124229c4ea9408941ee04a1940c1762fe + +# Official test vector 99, seed: "2a6f7386b815366f572aeb6c79e272cc21b7095fe09575f18072c9d677da23bc9c8a4bc393b7524604d299bedd260c8b" +entropy: fa0489f3730100609488e951e6aaa15c0f193bc1dbcfcd013bc418d6c507b176 +public_key = 7665cd15516d767a980e05ba44d761fe17355c0aa302f3826dd25da4ca4d044c299dab608da967c1e253ba77108df51914a15541763f737a89fef62be1f7b4e1b8b77eb719a84377be0081f7d71a6e881e15578603867855d87ec04b5f1f133368e43ec6282fe5eb16935a04ec9916caa90031e40d98b0a8ced98979fa7742a20dcbe84c67223eb6925d7b1b12e07a47677b56e9916029204e91408635eba66a6a844de5ccff6aa63fe15190030b8771101b456288b170bb117584c996c8515262c684a4718f8b369011865c756827d3038d62355f4c994a539815f4d6b6dc9455f4d7ba24501029170cf1aa3b0944574f6642c446a3f121cd08c7bb67e7239da147e0e9c9b5c57b8f2182e00488341994f620c99978c818aba5e4516efe23690636cabf607c438cc288e944b3446b41a264b88c6e0371a08a1c02703c21a0bc5d73e6b95e7b5fb87c6cd43415aeb26f92abac0371b9a7a70ea51c88e12bbcdef7c3cd3a4bcbfa3bb83606b25c85984021122400272a616fc4071db20560654a7ca099a6d0754c43687d9657b1b816a04b8d4cb63d0e3765e228890e0907accb4734cc557fc96ef7fb6b463cc2fa5b73b7fc231f230028201483e66efdd4570365865c08028f96609377703a2300f7e1b9f4939475541e0cda2527b28aca7374d1827206426637965870e9b86cbc115d9a04c0e73e8b7a866c277da3c58e0d2094fa285e2d05af7ef64f8ea6146ec4321395b7f30a6e52171ba28984b1e49726b48ed259638f6bacbfc5c2a4baa3cc391f0be917f7ba3a05dc911642a63db03fce58bc6ff92af7616569d04415a26eff8c271f9921ddd302787959f5397b70d7a388f7569e010cf26b67fb2c3a2a52714f5666b9726cb775c28a79a41531213e4766c9442fa06498f6d5a1816b7338f9afb779a40f2670221bc5ef319786762fc78b1a25fc9db8e362f11c9f374b04204940877bc209b25ae7f461c40a0193f66a95ab7dcc80afed9402ab725dab23c1abeacad633c461a26790865c21a960d338a7e485cb2b42a8b0963b8689c9d4287643b8685a341333dcbbd7637fa2671c1048638a547815f07b255ac115c8bc32b61a369128c60076c3464fdbe2c7c0bc5ef1e383ddd2ae8b0457410c19ba1c486b702a9048049e85cd1e7569eac6b3be8287ec9c195c3bb0b4f28952823832c55257d05ebd8a8bff9c372095be66359c9ba7384080a7acd9567db7905c50c36734cec7519e8e57195247b48a65a1e34cb942d741d88b429d226a4097beed271dcbc8a035606e056a89a8487197039adde30f78bb17148a4f0bc84bf1dc0d9057c97b028296b9260e601ed1a675bca781c53bcbd6866b4ae108d059ada7c6b8615195336c2df2e71ce97528378b2fdc4b6501f2443fd4b6248429b67a4624769236e32c12e3116ef66ae2554f55c7be15319e803b8ce0089d3c04b65ec8340c483b2ae4c2b8ec7daa91b39270ab7ec04fee436e1c008f61c46fa854363287573c50c63c3b1f94d52feeba13aec5c926257592904b00ca8615469df5539e8f4c627b11be02e96d17189a80f37da5d08db81baeb7c34b5c58ab3ccb25af3c29cec9364175b6bb4a04b5958079e18d5440bf24538598c1c548327980297efe531d4c14a9360b8dcc173f6536b760b2a6fd59bae262087989269c884a966c658017ce65d14519a2c61266b344f6648abc0a657580130c6fa0f6565d8100f0532011945c3fa296de184750aa931582a90e6bb9080971cdd6b470f68db4e529ed61bf97f62bfac5cb534c1570db606cf0351e1866d7e199dc329d70316d7fd849d5c296d76a8db20306bbab609e7a9ac05c7896b150d6962d2466158f8697e532901e421d5ec00671344640623891a9221ea17ebcf6b290dc54359814a86658e2c0159c2374e1dc5f94dcb30ce01f3633129274585e304f0436396d66660f81c4cd273b94a3740f9c2fdd081bc309602a2cadd82aad35a46684547d01c74c38547176113a697b49e6c98c1c017b25f817e19c2a0302d083dc5c74c4c38b6706e94c10d178369b375df9c118130824fe99ac49f24a682ac23de429f8c7a6d1a89c36f82f0a47379e7aafadc744e1f20b9186c67784c3e6b823306896fca303baf61309cb498a216431862f00198c26ab6938487dacfaeec6906ae45303ec7dbc2889a8eefa511b82609b980dad54ebb3e7091e9d +result: pass +ciphertext: 2dc32e31aec258d6463c8b3a5b9464fad89f1399b6464d5194a8704edbe2fd1abd7044fcc1fb2781c4ee362beaa35ae6a1f8b37ba5d58610092cc908ed65ea0aea8b393781be6277d0842fa27f9fb97b61b33eda5e50c1254b0410fdf9dd42306694b158bbf9a2acc025ba0018448e4adf4a1c9f71c7086750217ed7afcd3a2a2651797944e8cbfcbeb6e9b67d2ed65dbbaafaf3bdaccbb12e17d90e91e8cc1e0c96e3ad6387d95e2ce0b74ce9238c400c75723e8100af62a9fe53732f256d410f16de8c88eb484e45062c60d39fed5a780af738d320097139d4f26f9f39b8b1e777d5d0eba2bdf08d7950ba817522ed34c4774976ee6210f61393cc3c3d34da2ae3ac491db3c2de20b223bd73ce0c45e4743996e3ddcf286d7ac5e2c9b42f23afca77956e39c7fe65246863465de548f754fa5c07ed6bddaf138b22fae3b316dc5571b9a452c65fc01d9680cd4a6f04e69cfc885f80d1850994d85d4cd13afcd51ce1470c4c467442f845b5904b54f53b6b9150689fa40670f00b78f1a40735a2a8c4075520e1593fa8f2624b1dfa86b60c37ef09d97cfc4ef03002a3cd104f7399204c5849a860bd2685091364aed298b73e44f414eb62d093317b710da0e3380167aea5a87c071495a57243542f1a8b1a2aa433b25a9778f3224d75a8e5b913feacb83ec1ce53e9de2d53f6ccd326c463c0b82bc41f1532cb74d95b820a2cb1ddeff87393d219ca1c58a6bb742fde0787708cddb57fcccbe523c90674857074b2875cd961e8144aa6c2eb4f33972e695441f659b0c066bb7bba5925d26811c794d4a2c2c9c5f167cc92d8bef403151cc1f27fd0addd2a1297a07c5f47f9f8fbf72d0eb08158993efd5985970de5938382f4b504dac300ba12f6e733fd8f3d5fb26ae306164fe0ad0df2ec13ee8958ef7667a88d36ef9b7a521d840c69e208eb7df5f862de630c74c1ab65909d0fcc6093022d7f475a2d095801c1b12884b9f97643f714865d9752e25111a5c29ea974ce2532301bc0920de36d35abb364cadc0b3941034ddf459bde80f28c1178df12f50047b73a7370d380a858430e0eb7a3589bbbf578559c94035a6aa69b5dbccf09d2ad755311c97e80b75086462fa35027d72f6205e0a4b8ad20c5b56f91dcde31aeb8937d23939115ae4b76833dd5265e1019f8126069fd0da3059e96df4209efc730d4cca140076418c1f1fbac6b6a5422d56cd2d9eb16fb23d798021aa03292f34a6d302e119e4b3aa104e4856689dc10685c71ee038d02b8a0b965691c46b014184e20497f05d46e6f955b20a67ddac8f6d0cacc5f1e0ac6e826338026b58de71b2292ffa6d1ce333d124f17735fe21009f46fd2009829fedb8ee018e6d773a0bede891cd7ff9acbbbe9ea5a772850d38b89d3f423b0eb53458f28bdfd57184f6aa830307dbe8f8e9acb86dde8649115e0752dcbb4ef99437c488ca7dee225ee999ccf8176e1cd8a735817b927baf1e4d602c37815a086f74f27d318ba91c0bba5d6c52a4fd3a481373575345e660db150505466e9513224a540c33d9713b755c82a67dc3482e6ecce3a46dbc189d9a71a7f5feb091ea1e8b395d599cf0ae5c4ed6dfde8fa12bfc93de992e19d75434ecf158be6a3a22607b4a54b702e5822575c28ddb1a51500c5894f3d01d6bfbdc895bae212e8ce78ae75a38ad93123fab702a2c3e64db8bf44d05143aa87ca54c66fab032142b9569dd21f74d67148f54d513c991362097ed325953f0c621c42968806460763c211b4d8b383a724a2d53b7b7ba72bca0fda2ccc816bc74935d66b408e174994d856a20cab75fc8a0ace390f47c4f26c8a513c21fd3e8ea5d0ab19fe2547fe4f1981ea9133c2d9aa06580369ac4ce8b95c78d57043dbf444daa14c0841d84c2dbf7298e3df9e21d771265c4471778d0522ae99ca9c86e4cf568c8e18075bd6c6348455b53816a673d56f6fcb63238f653cd8dad471721b272585b6713f223afc43d05409a1e032642f8f653304696f758832db360d754666e1bee5a33c6c52027fbcdfe51abd5e4b3c165d219ade2a527ebe6d77096de845e09316c9099c7605953a31dd68b936bc96144c8120e00dc00300667fb8471dcbe770f72a5e3fbffceaf6edebfb8d786f7830f7aaf48e1cab9372ab7442176e8e9eb8d71df0001d5fd4afa3f4b1179d4f50fd338c2f15bbc27c3419a931ade3aa +shared_secret: b00f65a7930ffc261046644203b94c89dfa7334bb011a4ba896c2d547d96637c + +# Public key not reduced +entropy: 147c03f7a5bebba406c8fae1874d7f13c80efe79a3a9a874cc09fe76f6997615 +public_key = 5389e1958ce25148a8804e589dcff2d1de922aefcb56eea04489ee7cb6e192a46460d3e83d2bcd6eed8a5e7651603acc349ca16ccae8acbf3a3e8c330d84f1598a6278ec7ebfabca0ef488b239d55475349acd452e4538163d9955c8e510aea1e393386edeffdb27b38c6745f2944016ec457f39b18e6d4a08aeabe07bc84415dffa9ad6fa154a49d88fac775452d6a7c0e589bfb5c371cfc4b73deddb8dc9ac2d76edcd8b456fffda43f6f033806edf69403e973904dd504fb24aca7098fb8ff5f9ac2039fd02b56ac746801acccc84863def3f878497b69438bf991776286650482c8d9d9587bc6a55b85c4d7fa74d02656b421c9e24ed3a48d4b74425c26e5af0dd9562a4ead793f3a352ccc0f29fe7d868c7f61dfabe768b1fc73f05744e7dcf8f10344063dede08eccced4cef7d49fc01d979de7e8d8398374665a16a9870585c39d5589a51ee33389c9b9a276c034f60d9fc7711d8eb6337b57da3c377ddcd75ee4c747f7b276656b9d8a4ec7e896ff589d4b893e82edf3bb948edef91dd86c0b7468a678c746a8dc12aa6b95e3bdcbe4331bb24a33a37d153aa472c4731248fca365c5f35259d025746fc6595fe636c7685e0a6acee8a176b7949958f2697399497a2fc7365befc81a8f95239c826cb508208607738fed6286520cd4c639b43862fa9df3d9b15bd86d6f9f3c65e623be7fa733cb0dabc54aa4e6a99f7fc9feaecb3fb9ba06b8adb34f2d68cadc553c9830fa17656478bcd44ef3456378abce9a9ee024eba79094fa8f77a3018d5d2e3fffd6fbf0ca4554c43dc2bc7d42db35102f68b1b0d62583865381c74de9e3af71bf6cf19f3d0c4cb971692222552a8f4b788b4afd144ea9d04e6d02d3900f5ccf7f65988949a7568dd049639864ed0855bf1f50e80046dfbb1ba95f556a5d67c7eb534e0ecaf88a7dd635ca8a4f6d696d1bdf0c826938d34943c48d8c79cc0077685342e6bc2bf9da6d8e2eff3340baa8d2e65344f09bd47894f5a3a41197e5b3d6df067a3f7f9189f7f1d856b238bbabdab4ca85abf5bf1f5c76bcce7e851cffe0469f8277adf2ea5edb17d7c6b1e6dc2aee3fa86fdc60fdcd6dfab5bf7e744dc9cbdc5eea757963aac56a91add8023bed1f5cae8a64da057f79b353a096a835b1bfb023b6aa048989243d79aeb467f6fffa27a5823afee5c65eb4f537536e46f3a6a97e72c3b074ed4e0aad40598940d97ff6d97ef5ef9b4365d73b54769e45454e7ad81959940872eab4413b35507b0df578ce2e5e1d62d58d5749df39bf9d6cc58870caf92f69a7526e406f7ec5f09f551a77522b8b2968afd58a49a8176eaa65ac09b08c9fe45abc395ef99c730c56dd3adafbf0f94f4a19b7408a537d64ec16f5682bfe3a7faea56501f98611a7f606d922cae9de74be918fe853273555199a64a3e8b50773345c997460856972acb43fc81ab73f1b1c33c2bc5d98bd489d696a0f70679c22e3874dd8bdae4f8459f72160472056332134edeeaad6cb21de6c805503c44ea36d87e5617feacef3731e34af8ef328f85cdb47dccb00d515b64c9c54bc837578447aacfaed5969aa351e7da4efa8be15c4c51f4a699779850295ca72d88ead41bc68063fb89f7e0e2189eb3d5d817caf55c7474c95ca9110cc43b8ba8e78fc7fb8bdfdc265c0483a65ca4514ee4b832aac5800c3b08e74f563951c1fbb210353efa1aa866856bc2ed34734bd485dab1d12dc6bf765ff60b3b801984a91cffea7dbf1de97004a6cf44b4984ab58258b4af723fecd17530a80dc32959c9436344b63e6f09ccca7029a230d639ddcdf2d8ba79bb9ecd6bcefae1579c50c7bb10f3d301a65caf4ed1d40c7ba927bb563e48d1647024d4a06d8e66d1bdb81269b7d5f4b350cdf2f79e52f524d04a7c685368552343bb6046dfbb9945edf446d345bdcaa7455c74ba0a65ee1856f0fef97688773d50b6433ca7a7ac5cb6b7f671a15376e5a6747b6f3fa7bc6630373f5b1b51279da661377870b6da7a189683f9b0cf0466e1f750762631c4bbd9f505c42edf863356947273544295ee3226e6d50d9810777b6bd46fa82f4461a5cc284d5dfbbcdd3acdd2cab33434ffa86eb8ce92ce34a6386f861ae994eb4b6875a46d195582de73854b53d2293df3e9a822756cd90fe3b325ca29b4f9f8cfbadf2e41869abfbad10738ad04cc752bc20c394746850e0c4847db +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: cde797df8ce67231f6c5d15811843e01eb2ab84c7490931240822adbddd72046 +public_key = 938a454364cf10a4c71a1e3a24bf42bd0e3963fe3421fcd686f3fccc8d840749643eb4b5cd4e82cfef366717cf77f97da296a18554d11387db6f755bc596cbbdfdf1e953d6b1e4ae437ab7dccf952724fa9223a8a7dbf6949ecad807dd6cf666118830485ccaebcaebda34f1765599057e3c682fc413d5c2bacf669d68e38ed5b23506a71d6e82af6939de4dc51d678639238c8c17e385def56ee6a307475bb72bc93976c8976bb89c736d90be9580cacb1f335b98de6944cd706f88d95408cdad77a9fe967c4bca738a6db3a4ce716814f6529af1578b79b226bda19a9bf23f998b2e49c463932d73db0f23ee8096be472d80e7de71087d4f3b0cc90c49d8cd645268375056f6d72425b51a46c27a48b9c0db67b025a58ee37b44794430f3ae6cc74e1673c2b1d4b29db5370f69deb06e65e68d6376f6a7d58f5c74038792683f388934651d3d834f6593f366f97bd23008be21956e6be8a4be7efd4f95f39e6fab6c49d69bbfe0b47b37ca85394c19327e63d3cc9c54a5c63aec1d4dacf67a1c1c31438eddcf78fedad8f471ba98c81a552bdf541b7338b3adce41354ccab879f549cfa58995eb8c64a8c3db6f384ec3ed4dc2beeae04c967f744024e7dda88d516777a1b27e5f22dbeeb46eef5c4c99ce577836489a108e3a99b6f2390b52e4757843c772f6e75f4713d5259833b3993919f3aca66563f3eb7375f5883cfca72398b04927debf0997ff277e456defb0e83d0c5ca6c81ed4828dac68d857e0dc5d25be628433c737b8808c39d839e4fc6b4ff251edc22c8eb4c028f60d288c47976bcb84bcd0856c40448ca40b723c8e44837965ad46b521ec4b406cf8589b85377fea10678a75233e2cd59bc7ed3f49d93925c5bcc133bea39a7e229d7a1994dc812f5f1f154c270a4bf12d6a17cf41c04fcbd46ed55adc8519d38fc9d3b977ffe44919d53c5843c36b7b247a6ecd04c9d89fa6fae968ccfee71369fb287cc8b07b73c334bdbcc9ed05c7ae4e86aa7547b4cc74d3504acaef4c6e5b758f4e36ec762433710dc187648325f36ac8854d4a9aec2c83fa091eb39439340e23c33bfdce519dce810d70306834321b5af9e4be14cffea6655da124f7f995a115dc86cda737aaa9d78407b9f78b914e93ea6bfcfc8509f3fa7fbddaa7eb6686e0468e3a853adfdaade3694d835f8b5a72c5c8e8a65ce8d3ce958bd66a8f61170d31598af9e3388a4f5a5f0b96b7058ea2e5738d3b6de89496c75a856643899947c955be8871e818d30a5757d6b46079454b54e5e557cca964379bca5a8191698275dc51cb164f8f5d8fdaf480032af8b0bec9ccc65da9bcecded6f5131c6630188ffffbcb736e33ca563da74dc76a7cf41065d2ea4cf4b918c5b828e21cc68e2f1b62112a41594a6359876b92dd58fd66861b7633d73cc7226b8debebcf90fcc390f761360554ad0de4ad03911b49b641c73687f4a73f9cf90a2890c02c56e2a65680bd3826353d87ea41369673e1f9b920b36203cc9aa474e92e0eb6d859307927a62aaf4b3423fcbceca488adcb3c7442aba47c4a077fbe7442c2b4f21b3dda93f7f6518830b11b690f0497ac0851a6bf7ea30f53065a9ae7e65680cf6500edb11346955afbfd9c7cf28f1644f21b34e3694c060e6284bcaf746ab6345ae0eec87cd0f76a611ab64ec86288c339294aa15233abfb78d037efe55fe7736363dc3fedc4b8b74a54e9a2453ca082edef962686773f870b178d25b831fd133a2bcd596e688653ce772e2979305c5e2b1d949bf35bdc08cecd6771b7f659b61960a55d54998472164cf1d42df4c1cf4972d5b1466d8c104471906d894bf5875a453d4a7c4569c63a2b38c2db6a4fb8dc928a7edef12754f37cb4dad3b66e135d1f7575972fcd80ad3c4bb8ed71ac9938c9a97839a12d7a4622943c382ad48eebf6c659f6b3b8d7b644aebdaee0c55bd6d4faecbf6462a55b31c705f12cca8b7c698d9569f76a1a3963cc56dd26ce3c15e168ff99d80c3a8ee894f134567cfae032c845d79ccd963e3f04d6459d1ba72f0dcc604365a9c5c5196dd5f18ad397a559a1bf8f31c4ea5e0948c825d1ea0fb9cc253f6eba88172bbb930f4984fa99c5bab08edde504556aabe8c81bc99c56fc771ddc85d37b7c5028f346ee89267934564aa9dd80bcdc25b127f1244763644004e5eaf06b095b892bae095e0ba7f9d2700a50 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f43f68fbd694f0a6d307297110ecd4739876489fdf07eb9b03364e2ed0ff96e9 +public_key = a1a341b578b4765c4649e6bfaf5c8b2ae8dde63dde4de3dda0b693f5ebbfcfba9f0bdfad46576a7a06b65de6bcdc53fb6a753f3a73f6a37d73436483affe70b8649e2dbdf24983f9d17eaf4c25968dbd521b1e8aed4ecbebcde3787aec2984cb2c649da0fc94fdd880fd4ad5239b84ac053ca008f3e4c94ec0eeb6d6898da04bd2e455467af6c89dc7f25ad653a5bcdc8e165f3b9b68b11f70ef0ba7cc56322d5c671805b7d333b899abbac22dc010033f3064647e4a387649c272b3fc2ddcffd62793d8689cf5a6e9f43c87fdeaaebcd4c3f21483863563ce8442a7f58100a4e0b3d5d6146390fcd44d109e8b2903940b4fec678ddca5ffd5d56deecfcf3a4d27e57ce4a0bac562543f73fc8d71ddf960217696ccd98a59e6c39dac5cd185a0793a9191ef5a056d837d07d020e7fb5c5ba9841bd94093ffa3a483aec99d0e6f9cfd67a1ce77766a23b2349947969cf38e1ef6f6ab9422b97d6dec5658bfda683544ba07971bc773a5da90bf57eeb01f310283944d7f3eb2ed600efbf464bc71df7f33ebfb7be75fd2ef3ed8832fa48cbfd0f04b6bf7aec7f74d4295764e6fd857d747cd986bd7f4d83f8b13a901ccbff8cdee21b8789c05b635bcc14d9ef8c379bdd63df9efd660468a34512bb78ebff4fff9a22347ee457333ad464c6fdba4f6c5451b58558365518279ef6ef8e7d08ece6e7a5cc6b9cacfef75c473ae1c58aa38e43de50796f22475fca44270e3a46fb5b8bdda74e4ed5b893edf54f36e790bd6becc76805b716154a6e2346b0f4cac241748fde93f325b4f82f3b681136a008e56bc83d4f02f652f1679c826d32bc35db68b64b2848351da88df99e66707b194cb4759e676113faca4b7a54f8d64f5755d36288fc516e072eaeec35a8491396c940644616d34746ebed96db028b572510de97f45a204fba678f587ae13eac38480cf4c3f00aee88e9f5bd4c7c6bd0b758698bcde97ce395869771dce05e4abfcb6deac13b66683fe836fb36b7447c0c93f9146fc519337052865927a9863dfc1ed186b411554276af4dc9738751a4ba243bcfe56e0931fb711aa453a35b09cbfdab405b6f0f345742eb24027f61b49923225b3620678c4f474515396113880df463138abc3e92dc65415c593d74c01f5e3625db02f1ccc55a6c1e7e9b121588362d784c3e8565863f331bb59678f377c85fe7c259608c6f9e74a5a470bad77d3c0673bf3832af17c1ac82b94a82437643807681dce684098b86eed31440a79379af29be9d2f2996f327addf16354778a4cd5375c756a34890ccf0d9fba07b6e546387bf55cfcb0c8548d4780ab7fb668cda1ff5ddb31fe94465cc97f04f611e75458dea8aa8efa6ea971d797baa894b0348561df068a3455a89afc368418ede0cda90fd8acbedfe7c83398390f67786d51cf3491542534b1a74b409b69a9ae42c1b437b5a85620bd64ecb591b7334afc58faf678cfa5feee970a48bd08f3a0b45e1c69ed0789f884e4bd058ae5eecc5cdf66c994cca765daab1af377a14b98bcd8918fe3546fa4438ba5322eaeba75543be245b12f2f8d08cecf119e499a2c57de4fc9f6ba3241cd53165ca3fd669b4c3944a8edd3d016a0fcb8f6b5f6e5846c48873cb7f32fcc1256f023e38f14d98fa0486eae58df81a7376eb6380b4fa1a2b6e23d8a4efc2dfee7c9d0cbe7a9238b59006abddf2ab25565815947b3bf7be4eed43be91a5687b339e6bb6614387583c585f1456372aa68b17449c3aec626aad5f8659da97585f534f1ab74b9d705ba13bce39f15bea04e971e0a6e04cae67be9b682df94c706d0478af2d64565e7197900aae8c8086059f3964ee3f7288aaa0c9afb2d976d5fbb50b94fbcdf3c9d25656ed82f4f3435c9bc9b59b187f7b46a546eb8553dab54ecc6842cba94fb24592fdd77fc56bd5edfcd7997e5fe0c513377361d263c6348340b6de8b0e9b43f2efbb6ba60503ca955ffbb25fc585d1feb57fb3d1acc80a4cfdff4555ec0bff3f90762e30d8cea2da420b48cd8fa9606ec583415ed0904847466564294cdadebf5cab5cc690d8f96a7eb281eae8d73b754cc8ab2cce3e087d8e7b555ac78ec0bfd961a29e05b06fc93267b8c47c73526b8c3dd8bb13867bf2df11347656d1ed8aa48f5234847519a52b6a4599ccac59e10e945eb7bd579e0c98d12aa9905ed85271887a974ab8f04a783747caab69d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ea74fbc3c546500ed684bed6fe3c496d3b86d2d6dfaf223969b942e9a8c95e85 +public_key = c90e6eeae46e271da5fd35f102a480cbcfbc6e7860630f59e41c64591584f1e6ce8e43e2dc8862de8d6cc228ea18bb91fb184dcf045b0318d7a60f3c4b3779f15ae62e0938743b78c71493beda78271ffe78bce00e7892fd1d4d49ef5ce936e0c17fa3e9f8f08c93cc225c916a2941c13838eda382f41ea80ace9b9cb6df1899e0a2aebede57e0b6c7f127e48a5454a457d8d37439572c558378cc784564e71f7adc78c676db8bb8aa48d357fcc1f61859b0ec72731ce0f8c3932975c70e73f9aad34a56797a04ddf97fb4aa6b97a63cee9f5ca6318d1bfc8b4c6d9e08d9ebe364d0b4ea82dc768be47f4403d1bcabfe4cdae051ffea9919a9b66ad7a6c8bc1ca5622a54e118ae74931e571c56fa40c94c341ed81867b3a8957ff46cec3f8cd0097a35af93438d74c78c16ec2d645e7f6c3be5fa6da759d85eeef461fc517e1cf8baf93418978772e4c724cd719099e5a1a580715dc57d2a3d56597b1e1bae4b437633af52303e4b39fa6ab8ad47e12b65030f7e334b715b6bdb17bb76af6d8acd0f50d91a859c8c448b27bf4c44b09245de260b65c20c82588c8c1fff5affaaaf150479e818d1c82cbea73a37dd1a7df7df68aabdc4fc753158c39ea4f9d961dfd4618d4329f58bd56da37357ae6515bcd505c7cda55b2679d17bec3d528e6e710eb0a64837faed7ea26735e94dd92a648f828cb30a4ff8b99adc92656c1a14cb3b3d6929d6f0785ecebf3eaea5cd372cd5c06cc637dd9b68950ddecb3796d09ca87884412726a25bfa9bf6eb613e2afa1aae96e2ee634e1ca0347a9bcc96816933d92a6eb69ecdc014ce91f7ba4fb1be3ce5555e8c2bd7d8568722155287264b5fa990e936d3aee7edf778832ee3bf9a767fa9e650421ae4f5bcf27df497efab895123d2d33ea521c5353be4f5307ae4b8dfa566ab3b32aacf354cfb05ae48e4c93c3e57d605067dc769d722c452245b3d761fd5d3cdaad04bde2ec535bc6cc3966e32e329a980c8495d765ed1fbd71c58680b1e859c3cc0b1e986486a5b543949643b83452c307df477685a4d0b7da7528a55a997bea46780b36f52af157fe5d874cf5c420b6bea324a932bb5f2924f8a3977fbb359abc4b54bbfac608b0e35cc99a38f2dfda4ed88e4ec5c47984a636c7cb99a6b6304cb046dd5261847207e6be06b899087aa38053111e35a95965c04a7c42beaf319598819badaeb5c39191d79f41982e16ff3c8e89abbd3ffc1487f3cb99a167ba695bd668a65f5a88472439c89189e47ef93e022b45f6b8553c825de32b5421f85f91c93da8698a9174d68080fd2142adea1dbf8255a9ed709502ec7851a56a86cd3b7f067f6ed6a6e50fc52717ed4e829b02f7b61a1856c9b44b8d22e476895eac29db46c6ec053c371a333a95b88d6efde6c033790c1563fb833f04e26ce3af87750ca639f6d5cd445d24336751dadbdab99ce5b45cefa04caa29ba33b4998da0aa832fcf25528f1bbcd55961acefa077de544bbb91fe1878c6109c5e2b6b4850b5a8d0bd9bea6978a10afdc1fe8601f2ef3a98aa23cfa300918e7ee849e655ad388ae85171a43047758a578a02ebb557914e06ec3d96d4cef9219ff0299ef1d4bd65aff84188b711ace4896688ef2bcc8086c6050ce40a80af5c9595d030f69b0355ad9a44cbe8d3b5a1eda1b85b12fc785ef1ad78adedb3b3d925dfe55ae8682859a8f8164cf620cd9df577eac2d71db87b02aae6ec913d3f5b9711786ec603dd3321db1bdf7388895b30aca86302fadde69304318f1dcdbfb1ba4cb923652309b4f177ddfc9fbcfaa8553cb45bbb63d35cd28526ea8449844ac68b87aa71d47ba4f44f126bfe33f3af503dcbaaceb96b4f6a1d84c2da35fbd1dee20b5e7d458b4291cb36394cd9a074e51d8a45cf6f3484a3aa7d575987f42aed535d46b74d8645aed246692bceb8b055d717ccbd59769ffa6e7bcc3aa7bb9366bb5ea737bfce79b971e1cf04ad6ffd09755b4e4b233e94a9cd349104d49ce6cc96c8cdfa1254c4eb67748b337c41c473fab4a944364531a6fe18652856797787c804deec5956fb8d145cae4b9723254dba99cc3a67cee019b53febf72d10dc85ad63d686a907b3e700fd4a29e5936a53a4f2d2486751851eedeb70115adab07a29b15594576f21c3f9076a5a116676d3534044965014daa0d13da178581619dc06df40a02750beb995480eee9 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 64efa87a12cb96f98b9b81a7e5128a959c74e5332aaab0444fca7b4a5e5e0216 +public_key = 2f7a733cacdd0a05b6af9e77614fe05bfa99d159d62746ac20dfca81db92255e8a3a6f9a37dd43e6a398445ad55a2cc28ac785e22b9ada469d2e3491174a4e17fee824e3fc343f6f7dcfb73e4e7a725e496fbb6805a79d5d974b12f3c0125b5d7bfc7c6f244b69efc1ca96e3e99e32236eb4789898a1f858f5a9eb2b2be77769aca1453c57c4314054845203d63d3b55fd2c3063adb11939a3c14a81c59432616a5700c775fe98c6fb88c1ec8f77c469be42f541dbb79808479e0cebe1856cb7c1cb6a5b865469bba549d73cfe68ebee85494dfaf8d6e96a5f04cd65e561ef66a2482c806e49f57b9ba95824f1708663bf0b45b423eeef3384eb53b8733c4957937161c3ccacea5cc09e429e87b8b2b6a0aa44cab94bcd03de4cc3a3fc3ee58b484bed11f5f43ffadd35aefb8d45bdf49ce358db3fc163ac082cf3ca6c43919a649c33911c68d2e34d7e9fea350c3b64f40fc549add5ec87650df4f8e60b790489a17e96b9e1fa91b33bce5f4b8d8d0ae710b39fd2858c25b898c1386c6eddf1bd44e4c02e3719867f8cdccbb5dfbdf23fd7860a638be4ea05b9697a3bc901e9ad0075c080243cc0cbb3d389977d6ff230b4f126bd8d41839986b6dacbef8bda183aacd3fdd5dbe49bffbbfd6db0d5ba8ad8abeacc0863cfbf4faea37ef306d268cc96d766642f07a1172f5873e651ef693f2bb97339acbcbb4dee9764d5662bfaa533e68e06c86f9bcbb42b5f12d79c3c379afcc37dc4995b11a4afc3578a31ae3ff57ab8801fffd5c3ac5dacc3462c7e7edab63b889c22f9dd685733a1a79ec336c50c18a5fe54d8c3def2e34a60ef56a78cce6b78c3c98ed689e0d9f76697cdd8aba6681d9cda1eb77e6930c4f58cf01f40c107d15a8afb1749d9899f4cb16d4b4f897d19c5b0e4a557a7af3470bc71db15bc99248d42d9bed51e765279d125bebebb4384746e9c4919c6c0f4d71ca990baedd5eb287b161f6e5c3477a98669f0856242ecd73cbf673c8ceb1485799d4dda0648a8324fb95a2377d8efb1d9a4f09184309934c9153d8b747ea307a3bfc825958a98a12524b847ba5b61e5a279eb9f7cab5ce13dc45ffcbcf919a6cf1d59dd7c6aa077c2d24374093e5db32a800d2d99a92ab682fac6461896d593d07b97af2336b1e7dd61643c62f0c5e22d48a2312f5128d5f863c9aa7837ab4f254f92863efbb3b379f87e4017ecb6c8b74ac79af4fce1da7cd28f1caf9545a7d0a984bf6ac8d4067a80ff9325daacd3f9470e5f9f03cdd183586011da8a0295b679be8d767fcd4f18e317c9fc228d3f613bb95927dad3a4cf465645d3e5a1dbf672013bb935bccdceb5e393bcbe7c975d30a9823667bbb155bdcdde4ad3d8b453c3dec3bdcbd703485975cc571530b4cc521693a9975e39fdbfea90d57397f34c479ffea1edca0f56668b8692127bc9342f389046c640dd8ff82b67f9778964054b49bbddacef4628e771627ccf34f46c6d9fde9d99db15f396a39ea98fbe4a23575952abbe46374c74c8e2aac6b9ced932c078ad3f3ad5c92eb7213d5774dd70b8c86d7686c53c8ece241586f5f752fb5af77425f639fd4157adb24c3d61141878d5759d12f8bad4e98aa5e4e895c9ee132d74b31aaadd3da1df07d8c32aa0dbfb2fe0b5e9b4289942e99754034d65d7b9eb6cd0882f5048b5a293038969a944726af3476bd681daf177c5bee023bb7e0abe99a630b5babb5f8a67c91e7fed0fdd1187c338a97b73ce674ab3d2c40d503773eccfe5ea5c1dce8389e1d8d8372b9760c0498b8ae8f18f93ffd95e9476ea5673d6659b558895796e14cb5a55e7a3d0c9ecf5b6f28a3c93176afccb06c26ccddd5224a4030eeaa3b4f356a37cfe9fe62c65953b798d9d96cf4353805ddca537a9504c7d8d174f4a3d7fd9c2d738e25c357256833ede4375a65e1f3f868bc4c4e6ed62fb636e27f4c746eaac0f74e331df35d909a128c890e63ebe3e0cc307e632babbdef7684cc687bac9b966efecb85feed30a2bee15c7ebe6af63fc64c321be45cab657a15cf749dcc9961952ad5489c6485f208933000ef13f3c31eb6a389f17fcc3573166b9349ada4d7dc66bb13ce8a7d96a86f93883f83822fcd095bf4751388a51166da7bf4a0c5f69368e7e1ad73b4403aa3c1db5d29ffdaf198aa848a73c9f9a866b634f939c2179ce55edfaa1d5d48cb3127f0fea3acc7b163d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 8a95d71228acaa5f9ae6f9d9ca8ae55fde296463b41083a39e833e37c4c90f88 +public_key = 69bc82661a9e8236f4d2a644e1767de906658569ba69affaa6ce8996c58b3325685bf3564518afdbb99aa67acabdbde7283bcec3cca9075cbcf00fcbe57ccfc73581784bc6fc1b8b7623b9256cf0f753d887c87a5f6873b8789de49edee494e447e8f6706bbe47d6c4bb13380a03a533df40adbb8240847e6ed68eb5abb3452584b949b8889bb77d2bc87b1ec45819e99325d9e8fb931c5d9580cddb972c8f17c8be0e0565bd95b16799606c8f5e472d59a80e412bcf704cdba91faf692725e9421574f817f06d8a65f8b67f451e7b4c84fe7b04f19668cb013975aa3e7ee847bb09db3c44e8d29f0ec4ff4954d5ac7557a4eb4d1fc6062d785867cef3f772158d5c96d8497c5d862a7e3064cbb04d0b9abf2eafaccedf33eb38b6b3bfb359d8ecfd48cdbf39701944fe64792b8a909ccae4bb05de03b858bf4a318b9860e68e41b80ee5b396e6533c96c4fbf51167f4e677fec20937fac6e64aa4a9818acf072c90ea4a5ba34cc9537da331ef874d76a5e00bd95f1aba5917a6e6c3a50ae59659d95704dda1e9c76c100d55605ac83907e06868bf0727496f38c4fd14f2260bf71def7bcfab89dbae92044462cbb3e297a660b29ebf454d305d5f35ed2f5018cc92481ce9bccb480d03d08c57dab20c88c8aeb2a9f37dd7c9e1cae469de0c7f6e08aa9e4f7a8ec9daf2649aa28ccf1cce9c0fd84842e5748f68627873e659a5a874377347ea3895bd35a6ce39ec8cc0aa63a960535f8f4ee3f668bbfa9a67a82ccb03253461d3354ec8ed0e2effd667a1f133c05483df28ab50f54c5416f65ef60b6ce8c86f6608456d8e9a7f1dba933f322e4bc73d8370874846653f75622b3da6dbcaf9fac7001cce6d34565cbc6f35aebc9af9d4c62f9320a3755c4a439f035b5f9ad99d7da6a57b5e3e25d01b0cea710878c5ebd931cfef296d3ea4087e0c3da2ccbdf118fa64443ea8141fa22dad7220ff66620bc91ff3e8897b77d3c9b7f9986861879a3a9c349e16c72aabfbd6459160bd5a94ba4c57aa72e93c3decc55597e664ae3a683284f67f486453ed89aaa8679234c2fde99327b6da81e687cf4491de4b90528492b6c46eeb87f5d876a91997d25bfd6895279635e98183cbdef7267c6449913fdd9ae1ba77bcbdd10b03b90086311a1eeb1eedfaa969ba41b6b684fc3976d4e6342891ccdd588b5c6a481cd4d7798820da67c924ffc07a906f35e7aa2e7398c9611b0749f5556821d933690e4d9e0ecf2976af6bf492e2e59b66d3671f8e4e466388e20390383e3ac79dc3dc534ba87f81613560b0fc9bc6af98c87b879835b386c6b0e168d830b689e8cdd5aea5dd30acfe264556685c54c606aab8cd318b2c66d55e3a707b8b590dad2edce5688d7f292ff525b69b7e1cc0d1646efdce673a15642abfd5e50e6887464c39a6543f8fff0a8db8205f4203b45deb55e84d35351be963d49d6e7b0a98b59e67a3edbac9c7a50dc6f657c4cadf6985d753c3409dbb1a275be17a7342859415f7855384975775cb558afeb938d1bceb7f63cb97a40837ac159a38cf935167e60e5e8bdf1ec1fcee8c339f3d3049b50c5dc2ae0a32538ec7a4bc32022aa78356301a9ed3b25398d61363196db70a6536bbc66ef6fc9ab85677175f689527c5f5ebed1c4f43e4fd6460eba75c363715378c9a0e9d213732804b31e30cbe3e93c6f83a7ec239560abbbd48d96685fe7ed61c9dafcb55cb168e2cae778edbd166e7664ea4e2f4ec735319ffdba5cca4585d184df3f18568376e9e58cdd52b17e41ba9507b14fc5d5b89ac4f9b3f237f0e8dc5d51f6cb4c59d9d19bf0bfa9e3ec4f8952f8d14ad5125b36d1daa64776e905cb471b094d5207469ebb35ba5375a40c9f3e7bdcdb40ed80bb6728a389ca4b89079467732ec3cd8af7d746850bd59d8e51ee34b75d419e639fcad7d88fbfbbb755b2a7ac2bc6947ab99d7c80a3b571da77188fdaf89d874563b66bef36baba0b6fac1e6ff42919bb4519b63746456546745670d88263f457f1f49e79fbb83ee6c802ec371af9453a95601ad69a55bdb62087f09ea7ab3da48358f57877864cb18df7a39603e284063da75ec0b9219f5e5021ba46ca8c573c3d6e824f45d45cee5f55d0e5c7e36b3e166634e7805a414ad62a7b5a7ae75783f97c505daa8f9113507a98a3e8ce6ff046df83fd23815de42eb44b586845b55b2d39aa000ad +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 90d79d75d0bbb8921cf70d46bab497022a8e750efdc99e5f1bae653275441c7b +public_key = 55f39e78fd722b7f6811358dc1fdb76ab9daab9cfdfdd3a4f3f3ecdd076948dfb503c73b8805b26d6780d75b86d5f3b50ba899bf0ffabeea7d18fa9016878f3aa8ba392a4b42ec4f9204fbd08ccbe59ae8bbc7c863acd4016b9c663ca32ebc31fd8fa138a7dc0ddf38b7deb2f2645fa407504183a126beabec7ff245886b9dccb9f2793147a63227236c9ceae73c0546739bca51bbf4d03f87cf935a8d97d719b6fb727f8fc6ef62672f96f9984e496ed1860679cabad2fb2fd9e87d3e0a5678c496a401cc5c1b834ae9ddfd2b6eb8c40694c634c8039da2f5b4a63f865ed6689a553de589a3384adcf99c054d1c0af6be6ab27863db946e6efa35cbd0ac8fd367923bd89cfb8f8f1e9ae0a7edf7ef34e7422a491bcebdd38dfd6898d9b7455824ac902b7db06d54c92d73b2047567a25336fc74a6d96e3d6bfda51c0645ee3dc1a03f31c147ad99fdf76654b9278be6e20da2bc23f7ee5ed43c6e900d48c1f51c70735e33af4ee90c9db43eaf6335b3f3c13652a05afe0858f7f29d915548acd4d96323b573afbf633cedb3061544cb6b80176337adeb4c5eab7c55bb612e9390419a7598dba6a7a5f3f5764ec7fcbcd31b85c41548e1ebdcf1aac1deb8d31b0c3b9f6f9b6bacd6ef29628afc979e3d3355fc4d1a58dfd0ddbddacd4168e772880a4a53e4e82ae3db760c89b2787691c4deb66e65f42e691f3c4881cfda82dd8834c9b2d8bfaeb0e537f5ebcaada992ac0a3402f8ee18baefd149ef00fbb333d46c7af5d373eba628685d15dbe867b952ed05bcaa8a7efce7c825ec58055bfc84d5c69edffc219cc71d5a92230b9f40f633029c30bc7bf66b37bc5e994e14f96d4c568d83db3491e38ae1b4a320d831cdd5a8e68fa1e8a43153c347a3d9e919ba60d18490bbfe8ab8a530066a9c35cb7e069e5d218f9405abe61b09a0b8b446c42fc9be6e60d84e3975aeb11d0b643364432a2afbadbec0d70c642b68811b39a69d44974c1f5655a64075b35cf9dcdd632493ec46307aba8abcded33eac4e7ad3329c246a08294f3dbe41fbde6f10b680507d597dd6ac35bfb4029dc36e1732584fa4e9386c08b69cf2fde24bdcc2cea6ce77c3e0262a71008ee7fa1b70deca96dfce83f2a8e975036117656955a5c4f1c674b0ace625cdc48bdfc2584968f61eba5d17dead9c7889e79b1f1f3c488349a105f26f45e070bc459f3c8cc93e4e16b97266d37675c8d9fea6f914e9f4d18f7cf9c4eca0ae69612b70adf6d9bec43e04345e5b97c330e9f16a5a7e4273ff09e95469e9b3432d41c41e9de5e845d7fdf7968d6abbafd3db9f82029d5e2fb8fc6d8ff9ef074a231ad5401cc9e32d76e1c372e84fc8eeeadfe7aba76ce5baff468cfc93482a1ab5957cbcdc2f95ba074038e539be24986cc8f97a536fd479b42c8973b8dd3d71d743476f5f96234b333f3b17c3769564a1a82378dd5c4d23a551024c3468f5dad5b97ca574e2738eeff4464d62b9619d23dde859e430b5ccdbd9f8b7f4e1fe08e0ba4fab3233f3db2dcdc42b5d17a9406e46e2b7a7db6498e7e17dd30d338689665d3aa7cf2b9731508f37afc890b20d97d803d5a26b9664844784ac8d00a3fed8c3f439af8e5b078484b5324d9764233f4fd10fe8325ed2ea587d6de84b482992d9e6a6cdc3e12599942fd7643449dc0613f1d326bc702376d466683ad546b3ccfe47e4b891f3b7d584375dd3859ed58fea4f55ff5febbfd7f14e3abe266ae465e58c1067bbc02e4db3a94c548767250ae0dd048765afed5b6ba00c3382d5064baf295b310f9bf27a88f8f630d5558d595549b76fd17a4ff9ca2647621648297a66e939e7e409cccdf5cb1378b906c3ba731355d57cad4106e58f7a706f95de99e7610d2c78d45b9f69a9f6a5fde528aea49886ba60df5ca21c325f3ed34246c45795e27f4859c0a67cc7b7625a5edb304d8f4e1569c73c54a4da92a40476402573a29739644d6290549f4b4ea2236e31251c5d59d85e1e6ef3d527576f7c79494f974d884e7a9f7f7bf6b09b85fcbbfc442934ba4624f9a3ea921aba995f0efd221e6cfe66b1335dfbdaf690ed95483aec9785e6989e934e7858bd13498f4e994619ea9cd55a9504f4db4d0ccbe8f8cca107febf74caa39755966f3c130ffd121cd22b59b2cf3748b17199c44cd37f8ea61ba5d8c1bbe50789ce915df9fce1b4cf3c5acd7ce52dfd +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: be8a32f97b9a8d596382c02fa2a0eeebc15c083e970ddaa4f2622b91d6718663 +public_key = 07f76c0e2f45fe775fc5cb525824bf945b31bdccda86b88d8827ae80cda3db8bb9f534a2189f637775d81c4669832bb66495e3406ebc22c55f04ced9882b9ad7e75fc01f519873a18d9472087a6fb385f44c3e3f6b8eb608d88b0f89e4738fc9c47d84b10e38e8bc8cb3bbbd2bf9c5f957660416e7962651f0556756bb9121a6bf09b5e5c6836b650c44e9db72cef47e08079945b8cf19d8bb2574e186a8c89aaed3898492a904c5a8ffbefc26e4b458f931989ff7fc83ac4d781ce54fb51866706cb04fcfc1c98e3e963c70b1fe5567c4effdda8d02a94d01de348a1ebe52163f5c54e88c7fe4856763a419d40e8480c1ff63d966a99ba7c7d67f4f225ab99327a963de497eabf65be8e9c2959b1cd7995d138b4e7e8050cef2730b61347e3d68c95d861a3c567c803adc403cd9e11873f7e27f6e298ebc9b5be87319e637c5532a5ec0c02ad999e7740fa77c1c1c847feb3dcd387ba3974e1bdd310f889d05e350900f4435aef61c367c95ed7401aed3e8bccf266fdc4546c4bcca7aad34aac89892535fe9ba9b715c57dc72c6c6791e76492633608ffc03b85c51aed5d6f43f65ea9908d4c61f7947d07dc4edcd8da31aaa6bce887bd388720cb36f1d521dd88d7b2a483fc5833f8694be9892bbf8bb19b6ceb09ae33f037372ff879578f1014b58c6eb9351946303a3b7fbafde32a471f27ae8a0b939ff137928cfa79c27a99114dfa1df9b5a99e24de37fcee8e09ff634f73e355124da873a6b76245a2538aeba8af34845cb4ffdc9707a4c56f8baee23f9864591d09745ffcf4b1b49ff86c47c38b6fb613a8e6eddf2ecf58d7e8ec0f2feea27296290cadcb5ccd4516a50fd1361c248ce450b54699cf8a69f742054f7c53c68b5f73c739a62f9d57ffcde7f19cd6995fdcc59fd979646a7273b9f0d3493db1af3df085524845418695ede5f6af36ac6b0b4c3347aff623e7ac8e93cf54351e12a752183c7adbcd4c3a943c463599aebef4ede8a69d6a934ae4447b73c260f37478fc820a7d6cabba3a3cf7b2b1d8ffa23a6b983ff5cde4ff2fcf5e9a384a8bc83856cd43a47f687a7f11215d9020efc9c0ba8ae7676b1446cfb376b1ddb89af36d007abb736b5b223044e73dab7b3566c7e46ec5eaa54978a6f407fc31bf499c0854e283dd5ed6d3d3b5d426b24a3582ec0f26e3d55e68e9278f2185deb9b2eaf9296989e75588143495907cae39cf31c85f11a7f58ecd6dbf14d9e4729ce5bd436749343a449a9450c5b2a08e8db93f10f9738c10f9ba26835c73c4a2b95f55c4faf997d3d1d57e06e2b3bf3f6c90c2bdc88f4df14ee8f497daa42555c09fddaad7760321c6fa825e768a3dcd8defd1c6e49fb679d35e981319b566108b56b98cf1efb9ecb9a3efbb6ac471c6f102d7569fbf022fadfb0048207e96a7dd8d5d1dd7de164e531848d6718e7463bbed673b5082ff7666ae57bdb5509fbd9874ad0b8c98c48a3c132fdf9576b76f49b7d025fbceb0bb499ac6bece46f55fe6b5d84e4c8ccf7dfdc9948077c0913d4adefda4955b3510ff353576780696aff4998dabbd2873fce4b3a372fca46b0bb33f23a52a93c31dcbba882b9f5c9c6c0c4546ac25fa0eac489eabf7ce9c89aeab652920690b6b9944fc6b807d896cce9bf0a19d8f063f2e184bb7c6bfa4d7459ea75bc7014f4f884925a2a83cca5f41e87d1944ccd5337ef8b1992afac3bd3f63af42f8e9b84a5d1a9483d65d2dbcf8f992531ece7ccec18b14bac48f106f13996ee90cb8ec078ed059788ed147d1f2de15aaab25b6b41a66a5e1388557ad56eeee6571e04e9a6fdb79745fcc013a1176c3b131b499008319d2fe185a976c593ebd3258b7bd7b3852aa12fb77e9ebd8538acda9f1d33ec2f4835d4793c96d3296c965bbc699f87b328db504b335fe94de0432a4ef3adb0a54dde2a3d9e347d660fabf1bbd79382a7ddbf4750b4ee42d5f7c38113d901e7c09218636feb3062d43ec75a7ff9a640006cef08669c50d6a41fa86791ffbb41e7cdb50ec06c4cd35fc8e2af3de36054f2a7e3c1e6aa437ad4f61f7834fa95be9f8ed01b65bd2e14e7174e42f2bc80366a8e5e1ace661d8771c3f1db9ee00397a1180dd615b6a2c934599416cad1e5d91cdf3708e45eb609db2fb5c47c8c77d6e395a643fa45f4178b0959466f648ec5c43422397d4e771f902db7b8d876a028f1708e233d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: da2cfaf69e25b2a89ff2557bbb6f69e01d8e2e7bb27a7a1ce7e40fead16f33b2 +public_key = e50efc6f27cc5513f582857549f3ba0d6bafeee47ca3efcee05bd23b066f53f75a5dfaa0acb4e6ed16cabdc5e0564738aa18e3434675809f585bdee2c25a6e0723958b8bf3bee4ea1276e7b4dc30de275bcf9d3a1c7cfa28c5c58c49a5f0c447fb0c86f5b6a6eadf71383588ec398fe79f8f04b67ead2633ee174564dbf115a55d8a53971e0c9fe3bfd9f9c8745467bb8d9944e7cebbc8a54a5d28cf82e8815a46e5dec5695e0dc0e73bff7c483f72d36d2f19ecd169311a283a42e6d8d0d66e030e72a6a799a67ce0aa9b93a9dc5caefc805cd77d567390c00e7693db8b3349fbcfa6d11dc88287375bef8f8341e5a515a97c019895c8e68d42cd675723af42b6a50db9ed04c9880e2ea5afa9f93634e1f5b36c75199211da655f454539aa399fcf76af39d120cfb5e7f553457ef20ec3ad3879e78109a282e8a960c6e19d0a4ce90ed0525dc637efdd70dbb092999bd2ab9598adb1de66d86c27ca8f6cf2b86995e5aaa9f75e4323b3e750eb794aeceea124731708ffb4436050ff54e99a895446d6039eafccaaa1fa26b20fbb9f48e4628525e3f87d7a5c3461e3f4b3b4f7fba3089c53fb85bacd576c06b2dc93ffafc9f9c3b34de6974021378356fbc4e138f885dd62b93eb9adbceeeded3f5be7c9c7e8b69b1a7a7a3d484233ef0cbee07079416b388a074ccddbef6b4e2f693f95a8bbdbff3445ccf74abb7034f8fd4ad4bea9ce55b6c251c57b700ed332a6a8593f530835883336a10a9fcd30144b757ab6a6377389e36094ffe8bd09cca25d4400a7a474ef48cce4d567637183ccbab9cbfddf7e98abf35df8f8c837eebfe16e448b133898fa6ce3abc79beb4ac8d9997d1f588d9d8aa21dfb267da64654c8bb4ce914583748b95d13f9619659ab4c8687f98fd30d09f7ee04b6a84d47b995625b1a9a929a7fad134f989c7cac25c42817bd9f45327725474b6f9df0944f5fd3bf06057356ff843f8e57115361ce6f7ee6d548230a89ad49bf1b156e50cba750ce9a63fafe01796b6ef4a37e5fe2897346da865f5c36cc49a6954a8a868bee95bc56f53017e6d3b3692e683a10e9e92e2ac5d096c4661f6730a9b72bb3a729a7cf3aaff674e39900dbbf92bf785f4dead8a3843f875361b5c4ee0953ae34a583b36d0f54cc1958d0be7bda6465479d5e999e6df9006ee17d5498e8c6a0c81bbdfc7cf20c2ea310993fd5e7691834732e358faaca4610af6ad30d44dbc7e77c47736d5efbca1eef0aadba4e2faefb485a524bbb8f74bddcf78358c8addec550b86895fd3e41683cdc334fe0ed756865aedc9446c7d9983cfa98ce9edc644967cc93c7d08e3c9166ccbffbedd8cca6569af9e3e83f7c2613f744758f2f8fa70f8a399ad7f657995ef2754e3184c263ab93cfde510bcaed0838a13bafcb9d8af5c236a37ec37fc6ddd93bb47dace9944d077f5c837d78c54e40becb0e8a70c5ae8b6e8b95f6b7be2b79b802055ad4ea5febe770c39757ad4fa09feac48c6e74bee79621bb3af8dda0094895cc8b6aac07f3eeb76abf6b6f0d66bdc545c68c845b22dbe67f96a0449bdcf91fc46793a28b55a601ae431374b570c93d6dd7b4f799e01e578e29d96b2384a8e1aee5faeec8de0d8d0047926c27f85dd996690b4ee9957cde5ba5655ebc2de46371738e65744fbbb558537b33581998dd15f5ebb9c17d9777a80ea676956a03bb491117dd83c6d3f5169f66838cb77e627b899e9706be956dccbdb5d135e5d4e37d9ac31c48c4fa67eaa740bcba4173fcf5fd7766bdae98ff5ef2fe93be5b646b1a475c74bcf76bca3904a7c11abd57dd2bbade27d1ff249f484a4bef0439222fc416aaacd67f6a283d66fd6edf3959d3b5f348612d6d8c45a4cc44d4401796952f3b8eb578c5bac2cede83507946e4edfc0f2e9ae44dd8e1a8f2d77acfe5c85bfee7a0b6badeada58ad1ca5ba2fefaca2d63c326ac425df50ced91b2095f568ac7b483acafe7d45b2f9954b8583a33376ca7b19a948a10c4a45a5b80d403c89773b7c2c67ad1358bf3adde8a793def7eb91c978c389b4d8d8f4937f9f1a189e4c7dea4bdd6460a2c7cad5dcbb30dd7ce9c98c7a3342f9acfe21d94b249870afc3e169dd701e6d6471a7a0dfcc074cf77bb74706e5571f81cae743ea7d1e36dfb437d7e5f957526bda146bfa3530dfc93063fecb103ce58c30abb5bb70c6dbc92e5f3bf4060 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 511c2ab40782322c06111e144e505328c4e5bfc890a5980a2bbc44aeda4c738b +public_key = 1e778910b9afed44842d78417dedf7f819699af6b0ab475a18b7359817b50d3d6bba17f8c5b9d88e667dcb7944af7ce0ba86300318e65d1f42cbe8708c8347c44ab77478304e0cdb9e63f8f203b901084190deb5b7c3b085e74cf60d729e27719c2596feaa689a54ccb3a5a4a74acf36c652fb97ad4929dcc7fd83830e7db7b9e0f816701957cdd8449ca075b9a4ce8bd88469e305ef0c9671474e3bdbae5c38284a726a8935b3987e774a193df3cc0acc18b8db8b79d9b52b872698e381cfd4cf2cd69415a99556476c1fe8ebc4f17ff33a0593be5f3cc47ef89c13397d68933721c5a6f134eb88f452655cf49d35c1a9be6305469586435c1b6e56f96fdad33938c8dba42adee8165df0206bd23536ff233c36a89b384e8fbbc49b6d6074517a73ec5fdf85f56585b28646297f503da5c3df9c91350d71eed6f5f9bf9e4d4e6e93b46d37f95822ec35c2897417e7e81dc9a7097aa74f4ad2bf24f0b1a568e1d7b1a743c0d086f3e2296072aeff7ebf5d67d751fb3b9ffa77e404ff9d162b635f0c7ae693578d2a752984914ec9d36bca365a76861a15d75b5bfa95077b670da42e17ed61ffe618a689e3f7b5c9836b755e997e08da17f635208e4e2ffe786736a7041efd3c9ab9dc5db5bafd8bce69ba51afc48f059ddf2e81f725cf3904f7b4adf8402acac36bc0797c918e3da4a6d4bdea39f7cd75364d167f34db97270d39bfccb64c1dd3ab3532f77353fb7ad433a5a9567dc2ccbc77f0e4bec1584cb1a88736ff7acf68e20e1ef65ce7f36f18af3d0db4363cc372fab07ef3a8713db19b07af0213f0f1f747e32a8bd103ff79fea62a6da43327307d9cf12e1d4468a8d5be15c1c68682d0a8a24eb5e267058dc5be5f37fef104ea83e425c2492d9a8d193912efa2dfe3a47f485abc2f6f039e9f9bba401436fffe6b4607bbb511fb5fcd2d5134f8aae34ed245b9c9e73957a2b5b4d0ed916ecebf6ff891c645b28e63bab7cf3e5077a8c3954fb5978ad9ed7dac5c5c1fc4759a1f524566785e0ff3d04435a7af4361178d917b53af57438b46aeeac546bc6fd7c186bd196bbb6287f16d95ab6e545d79ed4b82669d19093241c8d8aedc5db79a9e5486f075adaed869314989e7969ca7f20942eef7e9287c887b45d8f23b919428f78cfdf36043acb3e4abaca4dc44c3aec3ab8c78bcabd85ced373899369b515c2478c6085ced4bd8f678f24fa5dd3c8f355468bff0534cc776d045e96ca50d67df6fd09143730907d4107ea250c359f0d7ec2f98e9b62cb39646b19d63669f679ff9f48ac7b4f6e30ceb1d358b686ed5f285867273d4adc8e09f1d4715b6c331fd53972fd7eba6e48a866c12c9349fb6aafd1b42f508db2e8f7094c3b4def647831f332d96359fb3450cfa6bee93f7eb7d7b8cd6e79a1d53596fec6199607d9b769b38ad15e4b639eefd16aa90aa49cd90c9d47696acface4cbee59f82b46de5bc64450f400bbafe839ac801d7da368a3611dbe1a1484dad03d2862eff535fe197de797b3d85f5e4f9d286343953ba8de676c48eaebf394d0453bf171d905f3b6afde5f99a85df2333b3954d67d9a9cc2029f2f9c5e62cd4ecbd35400a2757182f8050a97d06ddc1b303bad44d5f37bef18c6cd89c98467aa37905b334edc3ef667a88c31f9c1749784f49b83b3f9276eeb5fff4798d5bec5779a5d433ce716bce5763572a29cbddf5b40b464f3e163cd5b554c67efc217f6f57244736ef616f45356247f63d69a1e2ed3cc4d9ad57c83b3075cfaee4541838f261d8bb531b685c76698acf8ae9f9914169d78593d8a10ad37156b6d3c8c0d09f6553b570fd077b6fd4e9d8f4556655ce53f6802e4d6782bd646314f304477bc8fae9757bb54f2cb54c9f76fdd575d6bddc268be222d4c25efee860ece4a1f3453423caf00fbfe98fd473ce94dd234038f8aa0e4ee8286b530247b88a83318feada9d2f6cbd0ff610f681db3880c32d8b70f67c124437de3fab922d894baf87c714de06f6cdd12feedf2d9068238b587e6db488335564c3172eecde9d741a197646874922ec355a26a7e5ba4af5873f975bf626c4dafbbb5c5a6defcedadc9fc76fe9b8786bdec5c77bd71b7cd54abcdeb9ed535bf8a4249a9256e4c1e8ec673fb5bcaf3dd63b9db602ed47e9bac3ba827acfba4a7e9b040776bd6f351e548ee005d759da86c9b2971f9d6d1cab8d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: dca92dbec9b260dd97e8886f876862d6effc3b91fcf3fbc986cf56ab93ae79a2 +public_key = 1cb3c6a707f2c4039b1058f9919f3aba14f7e2da5bde3dbd55133989a5b43bc371d31d5415e76ba18786237c7151548b270d59610bfb9e737e39bbaf9706e3cacc3ebcefe6f9f57873f97c503a95a4aaea114bdc4555f6a19ff03b2af7e20be810feb59b0657861567d55655560eefa325f3c42898d6faeae36dcd98b9cd69f9ae4d19a81375e54d24c008cce5d158f665d3e3c48fecb80ec3a407373e1bca5829cf45d484721357d5f83b5cb58b21987d9fb7b77224c03d0e7e183b31fb4c407bcf3312aba708e8bf809d5d68b4895a48cd7b7daf6ac9d60d959f57bdfd7e3672a90a6218fbbc6fb641163674bd736af2764c72c5bc8575ebe47350507ab81749bb2b6c74462db5b0a3b6633355c0a9ece5eea8146e5f2e93d03675f1050d49b1054a784eb29bfec301efc86977af90f8f0dcfcb8cd967c282dfd490be783c63553289cc0d6fde1ef6f7555392197d09e0cc5896acd8c3c9a4a7c637b1d7da325cb7a694e9b2ed7e889cdc74ed671bb6c5c5ea35b0e69ff7b5158bc6469b7ea3e8740e938ef5879e80d9ecec9fee69e2b377d8e74669ca67428e16c3cbd2ac6ed8a874f9bb767de8973d94f5cd118bc9b4fd453db9c64183249cffaf3f489ae79e59a056ad113833c2a9fbc56b10e0e3e922fe0bdb8cba69adff1fd729757bdcdf68b3fc7be480481ff64c4c0a8f5ef5fb274e85e554d91c3d36f40444d28878d7c29e22957348e4cf7fbe746850ceb3d3ee26074f42616bc4aaa5284f5588445e40956cf37bc72daf5a73ff6ce452ca689066fd7fee8bcd498876dc7c96dec34dcbf1965c66fd95fdad9e0b9e48093fcb200564b4cfb36c72c3096c5579f736059534d57c7e68813439c8ffd533db25563fd838598d615c1b74ea9d68d7f33653a1be96835f474d5fe955e3c5bb5d6f1497c34520d3ca86f75af98b25aa6f765e5bf2fe754330a77847f88810aa53be9a256445131a4d5cc38b1350ea7f7dc960b6bf096f45a94098a2fb39dcd654f846388cfb4b57b4b92abc3f1a16a83b3e6953a17f4afb47902e581acecf78967e00548c735fa5c04b4e47f8f6a7713d2856e5b82fa60bd46e9b57bbca10872affad91fd6f88ee434d93e9f039ef5a0c5d06cacaca8ca6eb95c7ad87c7e499a4ad81bbf7ade44ab16ac9cb49743258cf0c83f2c0d6b1d0585f0adac7dd7f2ed7ce2170831f0964cae2b6d308d8afdd6f23e1eb510b949e77ada4c36f748148ce17b38c55cc7ebcfbfdf468105bb89298c88c98d6b124c7488e6d6b53bf17d8ea17ee5ae67dcf7f6a3382e5d705a9bbb1d3c59f68b8ba9a45ed1c97ea1eaab779d3d1f3aec72ad7420f47696deb68d06c5dc95e14ae83204fb4bf17cd9385934105c9e2fe8d3d83542f4aacc3af6b949a63e6d1bdc46ca8a6b4633927cd665ccd9b69ca250945c14366d4a7d5658f6cd76964e107497bc5ff90f5ce471a4ac29b6dc3dfcb70187d619cb45b16e306819ea68b58c7b3ae9ca9933ccfbe12e2340158e6b7db43beef660101ae9377a4201ad806be78d30169c4b747e8208780a14aa53987065936ac5fd6b7b8ed870fca3b1bacb05cfaf5f4dd5aa2d8b3a03929b864d0f2de1cec63b943fde96b480129cf0b7675c9a87c1c9efbab4a7422fe9c16d3679291e7765458a3803af0243fd1bf654e88f816b15a5bcc3bcf12e3dcced7c59b9fd1b1baf202e7062ee97c82ff3c12746d0cdb0aeb99fea8bf9bb4ae300ccf66f1692fd8641d6fc594b9894dfdbdc951b835123608734ef7cc3506ca74ccfb4c930fca1bea4daf76d6ffc76bb92b53768294c3047db29b795de63caef55ea193e7384299168b77794ffffe00cd4e5cd64cbb6979b38871fceec575d587dbb31efcdcf7dfef8f535b0545ba98af5ab4cce86eb1d81ae15bedef594551dc800553d8b3fe1e9ee6125d4a7cf25a91f13858e1cccb8e56481a5a3bbc3468bc6f4f39fd69425c8b556f725b8e3bbe53c1dceebc0af42c3ae619763448bfe84958cc333c3aefd35c4a496ec5c0bffe2bdc39b0c73314aa3d29eb6406caa94e8f80d9bd1e1b73e56f5bdbbb8dfb49f3a4c6d8543ac827395cad2bd50530b5e918f31c334e32d88f9947532859f7f3a379f726d3037ae72ef68d18cfbb87aff9a43bed6bc3fa384db6e0344d1fa56d45b035ed2b3f277ee6bc7b69ea2a0946112498da4ee64a2be6ab49596c4e61553e1164d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 57c170e691d7a914a901b9a11c62b8b569b3806427557a9dbac9faa720ec3641 +public_key = 78e9db2d3bd6c3c74e613d6d7e15e4fcfde11aa3da116f7e5b3be1077ac78bd3fc47de406ee73acd4eb519bfc1a8cbc93a9db9c2dd964c1d91b097edfe594aeb77e9400c71e96893a85f4d082bb5b7b3711f586f9ecc4b65f66fdb38d14a5d86969a6a49a6ed563391a25be029a7a3caef39a06d5a37a4a0523757026d976b658da00b57cee3e8b4d7d25cfbd71c269ec9db9d6a2944c973cc9c4f7d5573c2eb37c64e56f4217cf90c5645b36cbb3f8f713de383daa5cb4029c6e0be4c43f4aeaa9c93843b784fdb63957b75f49d88820694bd17d6ca8568640ad41b78f03168e6746d8dc9fad58dfad14ab79eaef74928d4cb343d8fcbdd6ed303a1ab8b6cbbdac333af4ce5474013d9dc5b1b869bc9881323435a097d09e5910e39cae6aebc148ab7d8bae2c84634864930c24ac4f375731cfb65d5a9f9174df640b5f4a4b5fc9b2f81534956f94647364e852d0884e656e614f9a1dd95cc923c6298998b22cf415518443f86949e6c390f9463b69a63f2f9b328053c0197fea2ea8fc55e85ca3bbe74c7e3528cb3525a60f7639f7718f4687ceb2ae7e9fbeaed4c44c9ddddb2505f77fb77f0e696f70b5349fd4be2160d8c6b24c26aa943af8ee46f063073fdc42fbee4d3986ed113d260e88f2f2c34e7385491565169eec18ae3f4fb13482f5b83b206d30a6895fadf4b948d5fd5556b4a048c2f4ed6ec0fa53a774b17aed6a77bc166137e7dcc4b60569e77dbc6d5f9c277bde1ef59bccd08793b695eb3a5bd3c1b64ca3bbfeddeadb5f97294d8909c3e772929c693ac396e5ef54abecf910aa3c60ca02519f8ea4350b8d9edf7e3e474fad7cff56dbf4e7b176d3c6af97329d53163343e0af3a84ed37cb91a349cffaf7ee84d8ef5d4f2a73e9dc330158dbc6f144a631bc3c26d348773cb0b6a3b570ae387ffe07ea5dec6a682edcac8939f6967ef8ab2a482bd5991f8c6c6f6ef31b18f6191a8c8d4cf701984980146bbd1b8a629b548ce578f5d09dc593d5026aca96f0fdd787eda2da79019cdd47f5351859cfc9aad35f2f3398865f1d0a6e1a219895e987472afc10ee576e083f0b7f9b5d688f21aa995afe550c0f72f1b647f3e04fad48fd802d7b53ceb917feca6396d337fbef6ff4e777b85980754d25ef9418bb4c1983c8af11d9d2a1adff48ce21eee926ffb5b3d8bcac797a0f63d9c8629605a757a6af9ebeaa437d0ee84bfd3b70315fffe8cb2d7e57b4127e9625a9f1f1e473aa8a4814788c038dfd179596ebf3d3003461314896d38a9e8fa75e93b65cc76cdcdff4a73cef94acc47b3e7843b2a322f8fc9909d6ba369b7e8b588d2dc8056c7de8588c4ec8dce840d630d265a8f6a74306374da16f2ec1f5f51764c81c55b9966c27b66fc5ea3da312d7f826bf7711c3124fbb98d4a8351a8da0414ee99f7af63bcd15d66723226fdb0e793eebc70dfad4eba186d2c14381ae886f7c6b934f587710aa096cfd6621cbe4daebbb885fb5489626ad7f2913e5fe9a967ef6980f9486462b74e7938800c1fd519c5c0a684adc1c8ff0ccaa3988cb5a38f64ccfcba1f9ee9add64a58da88bed5cb01f5b0410a3ee03c91060f9ea789bf65bc9ec58b4b2b0c9aa9c7859a48cbf1defcf9e7804a5f8118d366d0345952ddaa920fb5c12b36c71fffa4c7b4564e78a99ddc1a968ec74569af48e5acdc39c0fdf9807a8fff1f67a79d73744a80626ebb5ab59d544db8228d54a35f560c188315ce77c5f3300e86863eb97253e6778415b77f24dd498aa104fbf91c2ebdc2c5693a49f54dcdec8a3a9e8e14a966eed7a6b98eb0aaf6c295e05aaf90b6e94ec20e38299e48086456047750a3f8aadb6be693c9642a8ba89b89c6f46ce8ba85d657ce51cb563ba736dca09c780077b956f5f75cf998c86748d2d332aa0d8f8625bc61939b19fdc064fe71175338465cdd4039e5c6e54682fb6876c7338f654d19166560be9e22fe8e2c16f9e0a6f457cb62bdf3c93cfba8a65ec75274f01607fc5479615eae6c172fb21b1d5da734e3e02db125c48b0a86d0157f780cef92a995d0322cd07b2ad2741d8be097ba0e5972a2394861c5c9f9fdd93dac8aed47a6467570299a5501c6b2f39ef83e1de32619d1a08531e737bb6bbadfc13895253ac446a5e9c483b592df8cb8a9a0eddd51937eb8d82bba18673a17339dee827be4156633d8a2c376d41fa4e7bd70d4e199 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 6b5a14e1473abf5a33d44975ca2088bd8fa6fddcb3f80e8fd5c45b9d90c24a5c +public_key = 82ff7e77ae562cdfc206ba308733e983badbd664f0e2c7eb74a6d5960c94319abeb1f8daecff74b27a923784dc081e4614658c52ddc5118b9fe7edd64e9b47641ab18abfce2096f93dba6055ae437e0d719b6ce1351a9902bda15e4c7efcfbbe9a3a7ac6bbe57586c8d5b68b2d9b747b2461f3afcc3179a70926423ea5aed845407846bb9c5c57534b66a6cb8b480c9a18453e047c58f00dcf652867b474c7b1c6ffd7badd7b4c63d98eb05f6a8d8559f57d8bdb7153525d6bf95e8bbbf3d36da46a5d4266d1e9fa8ee85df535d553bc6d547bbccb7777b5e48373f2b38f3c566e7b98a85465590feec8cffe6e4515ac3b4c69f99ca7f3495254c345b14d5fcf975bb5dcf6a1faa830fed9f8d670f27e64f25878a9e8834c4f71f75338dac56ca7b4bb3b56ae95444af369c20b68fedd2d4928037434c3c5f8c372fc9449a783f61ecbaa4ddb929f148bb6bc471d2a72707aef621ca295eb8b44a83a4b99c6f3cbd4003bfd6ee4ffa64e8bdca5a07f74375498fe2ec966f54f35fd3b48c1ba874d8765ef4de56cccd456f6e0c6cdfc8fc3b6d305aa23a5528e77aebf2bc3696a37c438a2a1259054c3537ab8798ab9c16c2b9bed7ea861a96ae2387955cb95fc4c984d2b936be897cd05ac3524b846afaed4bb981dc47120fc9e4c6476e7847ea69755886a5c85dbd59bddcf06bdaac76d9105ed449e36815efb9c0b33fc7e5b9b80e386a8bbe2bf2fa72e0a4efb447b253c65f619c2c85a878a54457d37fd2e9a32d2668d9b1fd89a434a1bcc4cdfcf5f909640901ab4eaa7e2895d335e63882f363eae69959aaebafea68c998788285eb545795ed74f8162993b17e7a7fbccbd2115c9cdb83c995f9130dfebaf63d82fb4eae427f3a8e6a8e6a3c008dc8b8c6f50c7c740ad2a3b92676960db68318c3cf24b855c6fb237b97df54c561c7fb0bdad877925734d75dc0824ab818e802f166d8a294ffe93f8fde34b02436ea37d86b98dd09545a71d56ccfda986d00ca3e6a3eb85a53cab3aa85b2e84e567e8a9988e11baff034d76bfb36c0e3ff685977ec3a7d2e4eb70462f9e5256890ad87d84dc8de5c44f8e73c65a8df16c73e2bd2f920fac8e24a6b2521d3beaac8b4baeea1b06f970a33ad9986d8126ea3e44b0f5c9508be97324a97107dbe5b3afb9f607ec80fc7b5ade99ff8bd4652644f20e56c2dbc33ee34cea079e6c7e8ff5efba10858a2b3382808de9bacbb952ca83a8f38d6a5ff431fa722b03e783e3ad6e1784ef9ab21049eee70dc2d0c690d739ac5a68ec4f5660576bc743d79552cc83332fb43e55f01888a3ed9fe94ecf307a07b8549c838bf4a70f9c4f8cf586881dcadb4636c01fa257a57c354d61b9f83dbea3f4195651021cff02574a2db4aa4e05f8e5a66fd4758382f96e52d8447295fa30b49ee7e6d698f4b9b6f9d03f475623e345e1db767b143bd30bb5273636ca89f6f434863cf4e813767082873ab5365dcd7fa252cd35db4f6fe6db4aa1f34ffa45c92783f7a81f5c866546bcfffb9c09c055ee33b3d8b3fcfe8832248e5b3e98c89794c5ba4e6486574de79cd686f6ef2953007431ad08895ae499cc27e11f76c0034ffa670fb677b9f2fc55d971fc90c0b8ce16dba195fa80196569fe8b87fe16d311867e6c6abc88ff351f5bdda1f837eb7830ba3e9498f36ff707c80936e58b84a9355ddf64aeeb575dc6d205686f7bb7d415ca9dcca9a94c5706945580f49eba773067eac6c989a8e1d84d2586c58f7d793933367da73ef15d9e27a97f04cf8a10086d782a3ef235ed08793748357f422fd0b68d3f0c76c886b35bfeaa68544aa038374f868c474f0a6df116ede88886a134ef090ac4c8ce7f6b4f9f5cb4d0e8dc98554c56363c8fce7f8a1fab7c0007c67915b7d793c0ec65e4c8f6a394c8502ee3c63b73b26ebde5c47d826278aea16ac479884ab78afd3c1be47ea3e81167bc1a8d627b46b7d075d9d87f5cf1085850a53f443cf26cfaa24c97f1db1ce37c7a72b5898cd213783a3dfdb535cd8ae76e432e9e49eaabe2fbbb643742ee9e551cd54f1eee6f63c953fbc7b5849ccda31676600bf9f2a6ad8327a6d6ab649fcffccfca574733cf01663fbadb3be7c33a483ce3e61df7d77ae34f1e4c5448dc1e94f5516d944eeed322bf914aaffbe789eb0a8fb7721fe98a1e0bee89476e7efd6ba100e4d6c896905fc524e7f985 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 40e593754e6eddb7f9cf176ba2d5fd1087c90ad377556d0b0f686537b1a3165e +public_key = 3375e904f4dd7b863a34774ee1f4d1aaaf4a970d45d4537e5124921355cce93e93703d7c7ce8d7eb376ca1b640e7a76965dde95b6848b2cc9f832ac0c11c3c3d7f90ee28fc46cce608c49e80abec24a7c738845e9ae972d70c5ed346c46ccc73e1ef51b1b57368b96dd71cbda55366596de1ee659a2f18ea7288c873c8a98974e31c078aaeadad176fbb0d3bda1555a3c84555c5a3f31d167d378ba606257fd3958bc24b47e848ddc47dc374a869413547d17d3d28e4b5ec85cc0c897f14d5b03d75f0947f95183ccb1059821c2b866e755e24286634fcd8862f941516c5934e8a4fa872b209e2018843d7c877da76c1832f46cbdcc046695a1e93aff063a5770cdfff56b27a2bbb56f76dba2b34b6a6765b7849405e4661a4a83b58b42e4b96b58ed6878fbb73f535e32c8fc7964a978b47beabf3cecfb33ce980f67ad3408e54bf24b73157e52f544939377ba2ecb5a298f76d8eff2317ac6939feebadd5a74a3fe336aacd4f57e46395fa9a96a3fc9172c5f29c393021e57266ede7f6e7a5ea2d66b469e99957cf4dc653ad3ffbf0b953c3c4ccd5f7463de539c024bfcc9475cb3437c235d2fe16b909f73b6e733c6dfc6d87cba8a24ff0e823a46ee9d0c76494950d6767af3cec36aa46756d3b8ef4bf0bfbf34c586857e62735ca2d2bf59f6ceeb1aefafcf684674e984773f66ccdadd6e6dfdf5b6fd87343a5d59c108cc663d8b700bbedd6cdab60fb66b774f0182fc9c2f5b2ce9a88162c3135d44ca9a735fd9db35058bbde43f0649fdf3085cad54c4a8cd8708d43b871dafb42ddcfbccd66ab45bae33cbf280dc67a5a62ccfeca1acf431b6c52ac476fc2ec4c00ea9c14cbcee12be232e5f3aae8af555958c3089c6c45b47ba58cf1f884e77893fd296ce80584a76abbf243dab058c2af87de4478d97ddfd749ae88b77fdf1299e2126a899d8bddf25bd67a73c432a3e4c3f6b0b9b83fb55d414dfda2ffac6fe2aac17359b20288a1437fa95274f958058f05bf4a69b93492ccddad67a7552b37f34e7cf7e5b889e97b2e0f980f7336f9fde98123c855ecea40bbc5a93779c7c7be7089a8451fe4b364f341e56499bcef6ef6eb9827d5258c5ff6e746370adf48556bd364fee44f891ea4b4dd5a4983bd471ce63d61b3adce1e97dbed5627c5993c6dfbf40f5f6cb879304ff64184b3639d9be8ba74a1b6674e253f29bd8619aee512a9e9821b867cc84341e3ab43b350a5c79d5af47b4deff8866e89454538d47fd49d8ed953f33679cf8f3cd9812d83eaa9f95004b94425d6dcff34e86f644e749a6963b77760ba491744ccadc7fe23653a3a08a1f7bba316a9c83f4ee3cb59d22edfbe9a4a69c7db6145377289d9f1eb0f92f3e4ad84e99ed72696dbbc97a364447886ed6083aeaa69d04a9694d545835549ca3357cd9d73d07cdbabd7eea0b77ee13ceb370fbcdda48b893b3c86366e9e79f4ca1453ecdaaebe2f34aaf3ccd59de3a3d9b630b564ff38a5a1712c67327c893bd64883b7701636b0587ff3c4868f2195716c3499a4295b0387715c9ca4feb3b1bc08c6e0acee809988e204e5f1bdcce65e5f43c5dc2dcad28e9ac11e6368062c36047dbb7f5655a3a75c2e7aa86ba9b8930e9db25dbc7dc881c5e3b24f4e47816efbfefbce95d9e4cf16da76fa4c34359c635aea11d4dab7b56af2de9e283fba6f3cceb93cb31e08c93f2a9a3394ed677d79f27e5a570e3c0e68386b639e414540cf3be3650ca9388f34b95cf4bce9a9cee8c2adf4356f246dbfcdbd9b47eddd296ee623603edbaf65e734504844b0fd438d163b27c34d52163d736bcb43bda1a77d67a6e84bc8f849531a631fc55046eafb32edb99b938d4f9bf39384bc2ed54e47ee7e9b8f97c3ae6775f77859ba69c759638fea8fc2057b5105952b44d58c3f9ee8bfb08a69b00a6fc31b6ed6a38e890ae6f57daa8c6ad5854eec7e8b2d3cddb935ab5545e3e57ee5f78926be531e5c4593a7afef3e9c5215645905b50cec48962bfb6c27f7b4794ed48fc66d1eb67804b18c4cd000868ee4e3ce4e9790b79ee61b2cac3f9aea4198926098e4aad65880e683fa75ce66335831a7bbcc236dd7ffb8c63560ff1939b2b56b97e87049eb4c6504fe641cdd8fd5841e48bcbd28e5ef0c62da099f5478bb93198ef28d89ec6714b0f142ece80c6a6050d3aa936c25bbed1dbcfc99f39b4805782b +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c152523abd8248bed40c3827bcf0f8e8127037a55c780695e2c28ea3e041a44c +public_key = 24f5f49d9fdc83a86b66536c8fb3717734d8729447f9ffbd61fc63dc2f4d868b70c8e8ac6685c8e3ccf375049c25f941179f91c39adeb0f3cf027bc8324398fcca99feb47059e87db2cfb7246ffd3f09cb8a19bf7b2b35db65e6a75fb837fb94a6ac6701c479686ac758c381fa34fd8e67b1e7f6b0cb04cee5fcbe2bc5b266dcb55f1c72b1aed39596c4e4f5ddb884e763c35365a3ebb37a3552bb3223938c6a876e552fefa489c503ee4943aacebe7a5e7747bddf5c6e926d95bea36dff8d59cac7adc0dcb10a64bbc39efbbcfbd01f2fcd5448e83f9b324aaf7566098af16782c6c5d3b987a6a5896c1be8fef7d3c5c77b82cc797bd78f849826981187a1530b4fc17e73dda9ccb8d5f48583503a8b974e9beca3abebeae9ab526d87a27dba4e1fad5e555f78ff7c55d5e9226cc6b3246ca23f8db15648ed4394cc038245bb7d9ea48af245df0a7ef83f195bd523d4af6653bd133e2427f9b5b6f495c8c45583cd4d3dbb1c538fa4f86afe799026f86e1efdd250fe3ed67e3a8806cb9eb6cec9c94c4fc4abb2569d9486507137733e78ea5eeb479d8f56cebceef823b34995c65cf43bb0af50a874b743388cb664ed8356d71f075b43a6f0bce761ccfe848963f00553e77f0e54c9343b47ba3f5dbdf5fbefd1bfde45b7e8abec99a4057fea1147fc9317e3a013b0cf4b346ea6cb657fd859d458d1ed8b5e4e6bc86552c7abd87f63539303c6fa96aef18c6a61dc37e1e8436fac43763c9acb9b5955157cbece5d356936cbd6d3f6eca2e2a5316369eb3e2f57d67335ca06dc4223b8c0cb7c54454e3b58e2e586d848fcdbabd9a0d7da9e847e9bb0d7395418c44d86bfeff4c8a8548cee6780a5388e36eb4f5667ac228fc213a577fa2c46178e4ebda8ce8a1c5852ed551d356471b8d51d179de078c9f22e63b0234fd729c9b02c302997c13974b47aec75746d4d8278783bdaea5f184f77047f3b1861b8eec2dfeba290e785d77ccc38edad04ce99322c47529eaaaf87300ea43f6a956b7d03b339be47cd0ae5468bf850a73ba99c6b39d89ec6fa3052a9bfd0f6922f9b37ae6966ca4d37091eaad167f039ba3366dd89017cf1fcb64fe3e9f4f805336d49683fdf62410594f92d5bb264908274f314fc7065cba9b8c4421f1bac52f69ea8f96093f89342b879eeb785756587a50f76811e9d41bb559c758197d360342bc3855f37afedeaec9ed4490b9bcb4ac159fe54b347a49219ca5b5def91dec1f4f7ba521bb33bed610777f07f3c9feba9ee7ce444a42b33ee6ae4710586523cc98aa53de028d1bf383e33ebc03a0d67885d73441ec349cac283ba827fe39f976b3de296e0123f91f623f5b97d38438dc58ac9c48bb65c5d8a672c86b218e8a706d3b87f2341ba5e99956886ee0ab068e9f7deeed9af59ed23e991f4e8619e4aae99053c4db3514d48d1341d5ad60885a9fa5fa81ce44a3949cc8c33b69ec776d5a7a6e9c8d134e7b5ce661c86711907d16e75f0462b63e187daa74f4dbec6b9a1cfcdb8c8945d653e62c790d7857681b479febefc8894640abbd41a044d897c565ce882aeeb8cb04f630f1dafd22f93fbec9d7fff59bf98ec92cc7706ac41626bbe1d17373e57b3a86a3ba62cb6084869b58c65947ec110a3db6c7562675e97174ea899645846f96082cddf6c29bcf8c646210676bf266467e9deb393b64a1593b4579adb0b549e6648da5c9e2eb3bddbc78c4699e2dc674b126acd4448bb40bab46ebc8620288253156d8d39ada1b639c6f69d34e9a25e6b6bf434ebc00b596838fbab963820fac716add1fb4e4dbe2b94a84e58ab43c6a445e9f9a34a716cc07908452e6ada527e38cf56f20243bf2e27ae78835b74ed72032f70097ee36b2a405a34ee58f37f132c588b2ed2a5344b7056e96679d0c73990c2145497565d09e984f2689e315ab204c59a360534a75ef28768a9f168e532ea9d7717b8d80691596d5509af4ad1d7efee5760605bc2d619b177985ce89cbae0ea5ea335529b3df25cf83744e8d7b886ccd5cbcbb8393d5cfe44497a4c455afac7589b5315937345cc0247ffdf2ebec81cdac9aefd28b3348effa88c35b7f384809f2466570d58364df26c5da643afe7cb3ee946ea66451c9092e7c42c3d9a922465561b307f99e2f2aaeee687b1d96d8c201bdd75a34e09d954a4267f21490c0eb74ae98fad1b5a3b5d2b9f70e9 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ad6466dd59f26b762fb02b19eedf5f79964da68bce0459b91c3a6ee5a7e01183 +public_key = 693de6651eabe7eae944fb933fcdd9de46ba61ef496657f2776b37ccf770b197f69dbf40004aaf74c37eb027c62536ae847b8ec48a6b2a9ac68307802db576b81ff6fa1b951da9cfe094a0bf5bdb306c5e030baaa25baa592bf8a0af4148c7ca17ae9e0b0d39eda555645bb65685a75a67d28cbf9456e4c16ab48c06d346baa9f5dc4e84adf635e779522c2670dc5bc1ac86c662eb37975aa807afb2e307904f6c6a0d094828baec0799ecf0a8f23ea78967e7af711f73a9ae859adccac61bcd0d1d3f3c13aca18689397bab1ddcbdee2ab113ec6932c68622d5e3b0d66c60244cd77441c7aa964b5331ed1ea088b5d34e064a1d95b4b389c15d5e426fc9a13546441698e8596eefc894bc2a4bdb742366dbdad62f2c3eec28bc3c38c809eaab081c5dca65bfce27e057ab8467eaab50987732b9c85bdcaee647342c3660950b9ca8cdbdfb3bab69268fc8486397b540f093eefb96eac11855dea4a588c4935847a644a470f055a92326ff1dccfb6aadf0880cb08c8d621de33a9f0aa840afb5541aa2d04eb98214a5ffee478576ea646d3f05afe63b47829d7ea7b0bdb5efe94e8f2f5ea3dde79539772b6eda5ab5456be4670a076ee2bf5ff62687aa6f84166576e3e773aeffc061258bf3df8b1cbddfd485b8161d76eac5be6ab7ccd823e2a9ca938f256b6fbc8ab6d3c3a1da5c76ee806c5c4cd53dfc0c2d816e368bb2443684463ed43787a99f36fed3ffc99891166462852750a9ce445ad4d7924470a57becc75c7a379afe41dddfb36cdd4f65bd12f49911fb923bfceb635baca94f8ec8de3b36079732838459c669f8fdc2638e717ad45eeca7f011c66d64af98b95566b0feebaac79a67dbadc98f815e0e4549dcf94b658a8d0da2423cdd23f6a0be9bca232c8374f6e6e749623e8a99b0f96a08c95897e8890095e077beb47083fec256fbc9c943255bc475da70b45be34e0cafe8f3cef42972cc175e04fbbcbdf4cd151639156ad46975e408d9f92de9383e63c08c8bcd96a69a3ebaad9b3ce940a37f6d3fb1d3c7d2d28acb908cb2c7b88b89a7ad4c87cfa6c53987e4721d33d2bfb53ef3e9bf7329f19926bb7894e120efc4a9aa4c4c2cdf8be3bda99dc0342b56f826a6ea7ec340add40839fc592dc92b66bc853fcf735388ddc35eb004506d8a671547b7f32474206d9e222ea0592644e8edcffcf7f80f77c34d05b930b96ec9c79838da4a7878dda4bd7c1495d81d14b9d98dbf3ed6ed863ee4d738580918c72a37dd7034412305ba10d6a5629a93174761155460305f9f32356d9e0331df2f32e65c695bfeb597cc816e1deddca540a0fa3ae683e3853b6a476d6c1bd3b32d193bddffcdfc3cef900672436555073fbae19bb3d618d4d0d8df1778eee12dc6cf3cb7c1aaf2b1d4acaa8abb4003d9ec2cc6626e64e106a0708ddbc72f66cce4dd4b4e4dfd8e8ef3ea39550f47c0853309d45fb99b84fc3ba115cf40916ae9e96b742a234ca2fde83f6dc8acb65ed2c8a7d239b408c33fc5f3eae83caaad17c24ba9f38b2a521825e7a23dfc88ae7f22bca93e758ed95a895a6a97c163cba8a4c0d0b980e997efa8f595a668adf927c4538374c7e65fd16fe96a64cbaa23969a2cd7145352b78f9aa9e93993c640e006fc5ccdf28ee374016e9eab4374350f6df078bef56ff6794ebcb72844e836ac96df5439567a76f69a3b2c6cfc1c4525f340b40c558007b4f76864e8367cba7c71eeffaa9ec56f2506d7cdd66ceedd93755eb9552fa50acef553a8cebe7b95bd97b45564c98e2da9ce8c51add836d9dddaf538b0d15f8507bc3924a731ac05a689ae680e15db770c3a8f49c654138bde367f4269abdd5fe5175799a72efbbc186b23745fb0cc3f2bcbb6ba1670b1834e9afedb30ef5003243284c59ee53dfee28a6ec2086510697240e6d961398c77b3b047af3a55b89151673e1ad8a9de959923974c5419d2716c973eb4d2b3576f5b664da3bed4812a6101996980d68baedc34f9856effb6c457c8332487349ea3b8bc67acb7fc509d2fa476c331af75374c57b4c11d675d59dda92c7c60ac69d8aaf5e0d67351aa5c9e9880bc1386b88de9436abf526b319ce44cc759b009b93f8b9c3059bc7c63ab483a749e1a86ee90587f13945674e85b7c896281de5d2e2dbcea11db480755602348b4616400faeed3c143406ea9c1307e37e2642ee73c442a +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1a4d5dff5847cfb48333e33bb00ca7301b144aa89dcd412ff5a3b1081d775b7f +public_key = 60045ceea77d8303982ab9b039dc4c40ede59d46c89f6e8304fb5d4cc53e9776e38fbcb061b56ddbe6ee33873a953590f628c123dd49d08ff737b54d453dc31244f189b59365ee4fdf8cb1edc540c3a6e2f9efbf898edc274f5c09dc7affa63f520ad2db7794aa3cfabca69145e89c06e4d189fa704dfc4b2538e1b949e18f1b9929ddb0b6767a168580506dfa19254ff89a45d9539c9f9688360e3b69a362f634b269c9e1c53f752067304addde0fc437449cf849089918ec93c2faf70cdd699c85898d0e48f5bed95039a216b5e143183f4d695aa456c32e8a35d45e41522d725ef9950114d9e1176806da6b6e08ccfc3d93914c87c107cd15feef937a9f138b928ea5580494c6eb643ae33b5600f7726f3dd4f52cc39bbf4d0cc9c3f9e57a0c9fefdfe8404e6532bcfde609b6edef2b4f453aefbff381692975e16ef1e243dc799d55e5a4ad696678bbfbea8e3f47d2257ba246a2ef966c305a8f4fac73a60cd9f71ca500aa9d00a6fcaab7a2780cb94d2d9b1cd4315103f58dd344bc9898b788d951bed211d73aa0caf0d8abd1b376f3ed8aae48845e1d7372f12b9a692b3d535f63e0befb404eff91b5802d3b3380e58be6b9fa70e77cd6134103496dc3f9f370fe7cb0ebb04a1783379baa0a3c54cf1c5eb1b4afcd9a7042d5dd6405b1b71da9429aafe61a5423055af906ee3617be60bb59ef9de9e83ef306a6e4e738a46703af5cff5d31ac4f1357832c1f32cbb9325f6ffe7967ea1e2f6397f4d7e5bd8b4418fe71e984e463747a33dbed934127e892fcaf9b88857606983a60b9425018e17dee7d20d8fb628ee65ea4d530254f2b0cb4e6cf35dce373fe1450ee6457da59c332be7f8d4b5e0bbbf5aac789c04acffb957724783d00edf4eec3375f97ad838ac0c36e789cd3afcd68b2d54cdc9bf944f094bf0875c0f09ce61d46e8c774304bbf5563a8e974dafe13b5bbde3edec10ba39c64635dadf5ba7edb624cff12a768e13e63d763e5c7097782b69c44b3a0c33a552228c6001c5ce194346b8d824627b975dfc64fba994d2c62f8babac47c51dd2ddc54789f737c61b9b3420469b11e2eddaeade0c6c67ead33f9d3b4c665ac52814ebfd028612d6d8f87f3ab74b6b68309317e2cdee576ff8dca46c36d39e2dcb1fe8c42d00dd67d4bb3e4ab3bce13c142e589593cd851fee7cacbfcac8843156ea5e6743696ed96099a824affff4033c15f9f66cc0da9a47ed3ac473123e95d374bddc92cbdf7bfb174bd7a387e456d283c758ab9649eee5168694ddfde64e8a678ed5e3915c4d93c8531b75d430b3709753f89abec45434be196a3fbf5e49deafac1aefafad6e9b4a45f3eff62f7e6e7322a9e832ea79f33e9e6ac59034c80b42e49544e9a192bde4a35f47bfaa0de0ad11d65f9b1cbb9e63ac03768404645bb8ac7ce25687be70796bd05e7b86d39f7b689ce6c3f56aad4c52875ecdc9fbc97447f0e60e75a89215aa26319ee7cb5534a97660cc8515ee6ed9c6f4951cd89d9aa647f787a8ed7c89216694a83c56dff78fa94340d89d015c9e4d09ba91f1dac5b7ba9589fbfe779966eccd7ac79e6fe1aa4bce56cba05d75643e9c5a4c4344344b58ff26f59b7fbe7982c08afe9b6da80c446b8b341ebdff0fa8a664b7bea0d07f784b67bf213fd75f5aafff7cc724acf401d51ec3cc4ce8768fa9ab51fa6df3293a1fd5f768667dda354d4b578e9672587990af7f32e79e29ff1f4babc2b7c46601ab7cedaea356df7d44783e7d6c5126e5b108c4197ccdd9ee49c927fe074b9d7ab39fd4575abad75a1a01dc2a493af912f52bba57348dc33fdab321777842978db4f45fb52445eb77fe01eeffdde3eef314577cb23bc47d7e76a4fc5ccad72997cd48408a5dd795907cbfe2f49acd0e75a93cc4f7948e36d8cf6da0691c08733e8138caed6c8cc1e6b900869f9fba9f68f3b216f6980ea86e6f487af758830c787bb1bbd8efdf4be9765dd04b969ecf158a3e2e709cd688dc9a38a8207fbbe750ff1c3c33e2b1f7588b64e327d999d3a77c8f67eec947cb69649dc74d10b4ee9c913de20dd530cf5c3b73b631917719d0983ad1ad6d2963741289a282a717d7487acc3d354fc74b005ba022dea1c8b52c23da00339bff4f480a4e890030a709b38d82d3c501b2aa2d14fbef9e429f8cfb50e84c327ba02edb7f6abdde459896eac77b5d8c7d7cabe +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 34f44ec2092eeaf686f2ea170591a98527cbb03a4fa9477a7aef6b41a54feeb2 +public_key = 944633d5f98af3845ca7c37f1be75a535edda6dfbf9e2df305eace0a0d9e6fbfeb6c543a2513f61259fb58247f140ded6ecbf7fd469dcfc83aca3d71d3368fa128a4c71475ac28e7a9be744caaf085e54ebb8455bfcf86def5dcbce87ebb0bafc32341e877aba7a5ac10dc99b65687aa53cdf2585977ad6bef586e8993953d5a3cfad8a7593349f9d3e010e6bece3fcf6ed7df4ef88b1ab955a5d6aac2a877333e81669afc7327f6236c4c1f77768fdd6a7358744d9ec6910f9c4c74760328987413ffe683dd9649f806fedb7b5da6b849985083caf8d64c20cf577486e3b9e6c85e455ace3755cb9d34099e62d96346e4fdcdde0a81f6a7727babab5f24d1dc1832bc175e3576b36757e01ccac306df8ac5386ea92447f483408aea6ab23ce027b99b9f14a1b6a67a24fccfd505f395ece1995b9503d76c7d0ba51abac76777b960c45ce8dcc24f06d41da9a99174be42a381654b5c9697b13188a38c278d9408d2a2b94685acb0945d74c16f72e0ba87b72e4f718cd1da5d8d77535e444b5a2b56ed02acb855d7309b8ac6b783ebab76f6931e60e1a35d0cfe4deec9f2d87dbe073e98d5b7fde086f16bb366a0889773bbcdef5872934a894c7664f568ac7f1cb5bd7f587777d25a37edb14adce44697aa5cddbb8da731cdc1c2146b36b5dd249f6df62dab356db18687921de988c2a7c97dabacc5aa849068ad770edc361b9a2d1436bd88c962ec724ece5a6583ca8b4e704f3946da465042c8d8f35e3b65b5d09da5b4412530824f478ae8fac64940165cf4a599c96eb69ee5e4bef1e45067efcab719b57fbcc03c1985472cad17af699e4939b3ef850c2bf4e8049a4146fb2c9d8e53efa9f88d8d06b6f98e059bbe1c5a87a8610a06af036fbc6149df90d962ec95bcc907c8518fe778a947678af26c0482b67d4e7f0e76f2ef8e2725dad94d93ae96f682b4a74e8a7d330c4c4e144c3a39c3a3da3c75873dbaca4881cf940cf3ded10c395805c0bc043cd296eb2eacdda1b59474f8c4930f4cecdc7676d4b8c4b33110a6f70d39d57d05cba6494b6bad7379b73bdfac9a561a8ffdd3a43c5877d85749db9c8379abb29f7567fa1cc57b09c35e7b6ff3f735cc18473049ba2d5837ede8e7663eb67e04a509ba811a9467c633b962e8392d065a038656599e3f4955d1feacda6a649dc803f66c6f74cc6f35b0dbf7823f676e0f8a25ed7595f56c4727a7b11830c1c9840d1dfdb53b6198444e5b63be4c46be9548bf4e1598ea6371686c63da774270c8fc96fdc9a12b5c8f9a591ed5d971d897b4cec4e18deda6ef6be286dac99b48125eabd3bfdba343bf46eca8699487d14a9667565ca4f3deae468ac5e6cae54b4adcd5acd758e2ebc3b4077df1b0cc890099b911553b95c794643a97f99a512ce874f10a3c250a513d0d5a716d5429f594370dcfb9e4b2c5f7fc831e49dacfc554c43d9bebf71806ae8b5850667ec06134db6e79674175423347731794f4d57ef2c83efe0ba7b5bf4388e8f4a3f60cae008ffc1e3773ff5eb357584a917bc3e4fb950c54fae17abeffe262a4a6550576b6e8297ba723943ae3bf60a7eb9b86cf952c806fecbe937c7b15d9ec9e438ebee95e52efd9e71ed5bc43be355e67ad9f492bba954a8d7362ad6f525380f6fe9f7d1bb926dbec2fb7f6cf47e174caad5044d37d07ae303d5f4bb5ff9415b0c624398b936333d68625f533d7eaf0d635d7768a73f579ae72cfe9405fa214c3d921ece21b6c94042b38705fa202794bab835a949eccbdbab2ddd94b3b04acf72ae2de67cd25dea85e7330dd36bbb6b387acb6bad3a59c1d39ffc24aa6045c8c34ea4771c8e37537b644997eb45bc2ef3ae165c3d8d3d9f6a1df3d09e749a24f493a99ab1c3a80a87c3003a9d9577f9ec1c6c60a47a16f495813cb75c995aeaa58e87593df1f9d6fd6eb993a8b3365189d1c5d627476e6155ea21ee45397a7ed8f56634e9dcd0e136c9e8f729f8a76c71f98a2af40f71e824173abfc5fac1aa4bed85b4b18939988895075e888ac0c519ec75ebf693d3903560445414ed3bb3d36f074a8e524e361efe44946be4daccc62e2c335ed4dbb4453cae35f422967eeceb64a260f6b3e1ca24adef7aadcd8cdf4f03ebbcb6fc4f7389d97fe3ffb4e24cb9cd47381c6b780553dd196bfc6c356f031eeed6c85b57be19afc39dd1f929bbb2d627f5f19db +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 6250c81126572eec2da330271db36ee591f060fc7e53eeefe2e1c476c675fa33 +public_key = 6d4bd96a7383934cdcb76e5824885499f79dc06b5e885fd3c3349b2c4bf7b20ed22f5fbce9968497cd68b6e6c72457f2622aea44349314845b1d8831da9feeca386eb80cf64587be5dd5f9438485b3fac44bfd61383f509d0ff6f6def7a4056cd5f5d3eb84fcf13e54511969e7a7438357d8d71579e9ca4a4e38eaeb177ef50cb0dc8f6ddd17873e63a182e3b001f659ea3cc73cfaa5d7d7b5e7e9cdabed4c9944978dfb7ed44f48d986e90cecd184a3de25c630642fe80a0b8758395d1febae96cffe0945c5fe265595a9ae926e6cf9f35b588b7a02f66d8d49800d6dd17d7f72bbebcffc1da16a5c856023dd960bdd242af86ba949620ab83539b83d96fdddef507ec4b4bc4330c285e7172b43befd9a5e6a5fb694e6690d372663544859acbe07424705809587a08dd5dfafabc1b2f9486ca6415266c502f7b998dcc947c7b5f5584cd34cc90a4c38603da2cc15e237c6a85d4a55723d5a528fc970b9bc87268485ff93464545f4c349e9bfba3e5b4a5e7c42238cde6e1b7723bd4e3e0fa27d0597d7169a49e340a788e79b9f4a1e3ec0c3d53bedb46868b6fae17847f23dad1478b8429bd9fe7eb029fe933803318af781047f3ae8fee8590e872f84775396ffa07f323fa8dd6ba9744cb6c07944eb02443b52e4becca891fffbc6084ab40cde7af7c6b2b22cd9c27d455d5fc4c7093c44aabbb2adc1d12be2070894f764911203fb98d976c82f91100a3bb4948f928771b063839a94a6152f7588dea9bd25479bd8bd07fee4894bca118e4f0d5e6e1bf4eb81ccc6044a8f3654679df531c83fd98286daa39a4e982ba3248bd09e4d5c0c5d969c694858889b4068d8973ec57edec5ff1facd6bf7144dd9a2e9dc8abd8930d16769aa44a3927967b2975a329bce9599bfb27de02a7994fc9de0b1c7bc7db753c065cac08f1b80c6c1d585624c93ff15af6aff6f45ad8a6b3cd82ec97edd10be1c3acca1898520647b8ef9cde4568dc8707e9ebfe8ed4e97ea25e6acca657bd0ae74a4ee5e6d9deb998cd31e6ca0a5d66bc85d57b2b71ac2a75711a7820984aea3d6deb8f5c81ff6a1ca6c686189c9365dd932aef73fc3ed044eea703c033bb463d6f60097c54bd17996b8fabb0e3f010cc53d81b7b715fb86abb6302b57d6a34895d09840b3b6a50c9962ecf48edfcb328e94460d3c82819cbab49a79f84fa86e85577ec995b0f5fdf6e6fae5fc4f19fbd89286297d8a8922f94faf7c959ca392ce4d989d9fb8229ad3ed9ed352a6bb7d757d47d9c591db40157cc10fdd6bfe843419b8a1d89fd01ce505e0a63b39c7c2dafc96f695426073ebe6df8367fbace67c01bb7b27b09be59e589be6dacca376a874dd34cf87e9d49411648a1b05c329a09fdb29942cb2369381c3ef86ea02f8c905f963f0b08514a8ce302b4bacaff61fa37855b77f50258c003e5bc9bdd7035e667bcd6a537f35a0756bb290ea0aca56576e7ff3a9cdc2f47ee5bad36af3a987bb550ac06980bea73b938ce927e5a4b19620a08be52695abcb3c833eca2824b60de483810857aba0a9293aeec4177e59c0f398add61bb8ec94df979917c72c8eaae518ab0e46ab8927b5b9db690bac6720667baf81ea73a5fb033abaa59d5c4ccf676017d44e27cfbb31b5aa2095f2da972467dcb04174e9bce74217ce390a687c60b6c396aa48ef849d29f34f36886206bdb2835de7803502565523d0cc0bffb78efe64dc758cf3c93bef53ed3694b434c58e9f82bbc42ab45ae8f7287a560ee43600b87443d8bc91ac5b15fbbf702fd5577d3f679ed67918d8d4a6965c31ad915ac8fc7a5db274c428a43650003beee37f6be3ea09eee4e892b54c36d5269b8c22f146afe669dc9c4775e3ddaa9534af67efea736b01543788b13c3fbb6d8af9daac0da9335e6c115fbb1d67938b86849d5087a87f3437faf9d7b899144fc3e739a4c07a6f8597c618b554468f56cc6745ff76ddd3118c55b8e71e42b67ca43ca32135673cff286f78d0485b363d63a2ec737d2aa98af7dfd3c485815dfc195db5d7bea8b3ae5470ff7a1e92f5f82d565414c6b59379cc6bf6155f682f6098795d5fe3e8acfed87743737c1bfedba875a95ea5d9d89f3667d84ecb3aaa989378a2425a0e60fe9c02763de4345a208c5bbe4949b5d6dcd6bd1c5f8f4ec5f5bae6946c95ad7fa4e1e5f80354b5112d882796092029150d5d621 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 35d470bcc5880872754810dfb3f2796da2fd7f397537146f6488c27804072b34 +public_key = ce2fca9cea98bce4d1164c349b35c8b374f4f294b11ec7c7d0a3953ffcf0dcbf83ef99a3452496d9b86513e33633765c10b45c671fbfcf69df6036a711eb3debedd067649eeede44927e6caee4da3ebf6d7c0dc6e8396858c39163a7e66d24370b033ee54c3d3b85b5383bef402ff0325aa2f804bba473cc71be5d4435484924e6bc1698a5a9c39dfafba69e71f35569ed6946622ceb3647598becbcbbd7fa088ec77baa5ba128b1b7053b2de9c122b8790125c50f0d3a119964aa48392a96b01d7675af64eb46b4369c1dc38a2c68ee64f5c506fa3d2f55a19a7cc36d7774d342af773a22c3943a9b411bd69a93eec756993a1a49f698a93d5f4772c374b54ace5a0bd636bf9d8641a7b8ed758e3c44e292598b82a7976f45ae50bdbc2bfd352e9f751a6a5e5015444d3b82cffd64d32c3befabf29267e09246de1806b5e5a892597df9ac5feed247af004e8f7fbc9b5cab930a6896b135dab1c58ac433efd7ddbd9ba9db65adf8e5cf8e445d93b36462e28940fd37f3e7ccf0e5a9e4e1d8e2bb3aa9133e8f1557fa64b75c12ba361b28437526e1183870a70f8496195cd6efe9698a89dbdbfc1c06ab2bd5937c1cb5a2da7774bc3facfaa0298f9f3c3c9bd6c584eec882ccf3ae1c0db1357692ed377f0a8efa30fbc73f17c0bc56fa88e64de36fc24e7a7f7c784dbc5b615ad57e58484db23363433a46811f6c2eb5b9153ce62f3f77c0bc4da9693b22daac52aec6117f42b84f8ac40ff02c3968810435f9aabf3c65b7db7b37372fe8b49b9c76695b53c9a227963ccc1b60d447b3b8de5765bab6b3b73586ff6c2f0862c927b6f246f4f46da4f6c537b09563adf7a9616a4dba03732d7d7fed845c35c660b63e7ef76fd55843cbc28ac501dcb493eb5d6bd5c322faff2a8b61418b978858ff51c8e35f5cef1173895057ad3218387e5f713399dfa3a9425d73ce04ee879b85a5b23df85c8f3501487d5c555ed2b7bfad8f762c9f62d3d4b3b64736497899a76890385dbff4b8fe6b0d97f4cf30dba5bcb0ac95006852c06d480d039d1fca9fb758b5562a38426dacd9c489a3b4bdbcd96989c57eb7b4e1ea3540ada882aa567fbb44db51847783a9f5577c780953bafd0cbe2803626b89cf1c3b3056c4bd78c888193eefc836765ff8e3c8be8e5dc9725978ccd9ea8c7e27e0ddeb883ad93e2cc987024b817d3d908bbeba7a658399dc931a4ba4fca5a103a8f89ea7e8e906336b148c329cf930b843cd4ca0d4735b6346e8e9cec328bf9597cf4bab05386774788333ef120d5ed6987679544b51c45d42dcf09c7d61a92adc82b9fc943c85c149b79c2ae90716c03f156d3d2fad27e7b8b87962c8c5421d4bd1c7fbf22055fb22e8e3d228de7a38be15b6976aec765adf5b60d3c780fa75c3654d7f9b6de0d33c8c28c97b6b95bc9cfcb517b497f73a98d4ea6403e3fff48fcda7b07e86a8137cd5720a8740d866bd0f4ca2fffd43f6470c8a38a84deb3ce74585e6ab8b899b13ea39c163ae79e764e0b846fcd57029a7370819ef064fe2c6f93f1173a855bf6d7e49bfae48d46e53e93b98460d27efb58f83e736c7a175edeef6f72387cf65ac876feb4292bbbc930d981299c9c0fe3690d6c2017bbd3e257701bee1fefa33072ccc8ea5f263e486769dc79b558187e3441aa3d964aa3ec054ee91e7ad198cb6e8959a3515eddda7fa44bdf0d0f968eaa8696b9686dbcdeb9f9b80966ffa7c5eed486444b16ac4fee7b24505dca2af6d81457b802bba966ac8ec4ddcd92773ca26908b9ea2e24bf1b11e6dfcaaa5f4a57514ecfad736cc7899d4c39d50389b80ca0bde72be31b567551f7afe1649dc55234e5ae5d080ea6268047618b333a49795b4233bd07530a8acf75bdabc4ec99d84b8e2daffde2c37d721a6e38386ba42cc49993e4906ed70ecab69f3eefaa204a32bdf8658da3fab79f2362eb8156e312cf88700a490789e4af4cf8a2f544d619fd9e24cccfeb46ae13bb90e8b86a4bc85d504eb9ada7a957ca8763acad77e3623fcf0e3fe99b137d96653fbf2b8cacec65776d8a63a57ecb4a7c892bdebc92c8c297e9c3ff9a8a7a350d945472adfce932982e94bbf31bf98b3353ca6c459ef6de7fcc7f4ff53da9348b9fb46abc86374b245668ad7e0976dea7f43e3823c5749e01d0e40444111bebc0a6858891224b08cfc8e74c41084fd5c03c102480537 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 8d667921c5db401a86fe1c35dfcf164a6bb2ab7400fd6a0b67eafd4a0ed11940 +public_key = 18aec1ca6b5b6bdabfebac339a6ce218afd56d5d8ff99588d39fcbcc1760f1eccbf115f81116a623d6d0e87b4232cfa94699e33dae6b6d9979680db91736ff4d776d117d9a271f3a5af9af5ac745598fcaa5eff0447f71aa5c9e30877a3dbf63f9048a483a826774c806a4e939c44274287b62abfbcba56f19e7aab2b8c6a307fcbdf5820c774c49ae51c48ea5a76cf7337c60c406cc1ae36a3efbf5d925f1918a780d75a69f94aa4005771a6cf2ed4466811834fcbf38e645efb055a70d3f99455ff97f273752db6f03f445805cdcdb48df838c484d6df50cbfc849f3d8d806d9eda4f442e85bae7cadf4c6c3a49cc1cd1d7ff42e54e61a99e01f44f8f956c678ac429faba83b5486ff84f26edb817cf6d179f2412738db9796d07df3e558741c7ca293eb35fde7ef9175b838377f003e50d447a35f2d802798e406446061686621fab300755a16afebeadf4b721a50976884c76ba9294d5ea9e6b7b357baa68674c05eff66f54a455cd3fc2a64b2dee42bc56cc535911efa578c6ad97d93d1836cc642ed78be0ef55e5359a0d7ce3a97d12d199880a3ab5e6e753488782b9734c26947b6d9f5e4fa6ca38475905a9f45a88221db62b86fb4c884344cfc7d81e55fa44f93dbf49e4e8bce0bb95408c3fbed4d4a246ce5314fa3ebcbbd8598a3f9537e1403319a5cc6a006a37db5a3fc4960ddc5381a2bdb85657d42dd85309b47caffea074e700a24e50a0b3e018f3e76c6bad867c6f3e6568eb840b9a9c4f4f45d35e733ae56377bacfe008b66f9436b5a4fdf3107aa43ece23ccfa89637637dd3a26bbdabf355c0fef6426335f3612ae96e34d2ac16c3866fa0f8c65b6a0485dfee492def494c7f30422abb2e7d5333d4c3f5fedb28d3c4b3266949ca4b9516fe3e7ddcaacc77665f36192fd8c0dc4487063ccd5f896176edc0e474bdd88facfbfec448c1ea8a6f152d6a33195e30fa4efd463b7f438ecf4ace6619dbc268b533bf51d783bb380380e12a79ac044bd73cdd9488d18d98b6e4e36f244e42347b91970e521365665fdd5111f39698c43f5c6fc048feba861a91a2ef9f6cfeb8ba376280db89feda41195a9565de7c73f4305d73cc6b6d653017902aee92352a5aa9e58f4df6c0c9d8846da451829fbc360544f734340cabd72cf3998079d6794d73f72fac18c766de49a65df56b6ff99a6e896245c7aa5585723d1c6982adad30cd9115b8b8321941961959a8f4db38cf4a671f58112f3dcfbaa0946edbf0b9c631e65021d64bae6bbe847c75778f6506f73494de9da8d47f07898d179697afcda1df3cad227cbc83c33c6c7fb45083ed953d41f89e36d34c7f039558468c3de1f3d21f5d9a2d898ec1245fa9a966ba457e589469189952146fb7f2e6d7579bd1f33d365a84c7ae1ba12ba53c1f2e6933a34e53e75e252c52087c615fd5ad705743495be0043bd33468af0026f74df94f2e75d48e9a4595a4b542bd82bcd96e6e9da44af778088dd7c069ac9673cb4a559821afa9992c4500da89f5acc48a6bc9ac29f2beacf11f36c468986d0714e21193ad5e2732d693c650d867234c9c2625f5335e57fdf94d89fbfda1949a627338c1dd7b1cb9cb45d95b64b38a23cdf9bcb87c928c7c97984d760bb11b9666271aa914d3cbefe7f3d419f8ede94af185e6ef7a72c1fa978594e11f9bd903c544dd7c81d94a3b860fcc09cfecd89c8fafb94d9eb57f916ea51e9aa6f396dca3ead18dfce4d46981062b8ffd64f747e7c83c08e699aee7ac14ba1654be4b9fb397cdefab274a0836d9ed9c68601f5fdc56e1cc9cd0167a8be6ff8f0867397eae86ae68a2980eb4c1885235faa006d45d30b990d13c479fa5b1b76ca2406a46a0d4ff9c63cccede87f5e93b170fdcb86b5252cdd843df8e58c86dbcb4ead708a62c28846d0c983de6ddc4f5b0190e7fb1276eaf839a2898a8caec69f21d37498c5a622cd5cdc5bfc9ac9dde35da7c5ce531c8e3b3f84e70a43baa43950a9cacf07c9dc6c8b8c4a660aee6ca67159a011eda3414c87fd94ad197856d9940ddb47ad0d8700f635e594d8a5a08f23fe4636fcc594ee677b40fd6e365f202ca8088aff403df4ac4f42fdf5c99ba1356f14cbff2a7e92b4db48abb531a1fb8f853a07cdf41b19aa1effa784e5746905449b1e7436a79a28e3f712507e5bc0d026037001723d3443145bd066cebaaa3d000c9f0ca +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ec750b3939385a3f8df868119dc76f77ca845567ef068de6ada5478a56bc78b6 +public_key = 9eb3fa4a4e824846f7859e69e30d6e9306448035f29fdfc14f08f6a43976935a8a14b8448d6c4db74fa17278f3a2053f4f75951c8db47056bdaf6eab695dfd4aea6ead635f237fd82e7ec4ff5c78e6a6345b7f505e33d64dd773118ac985e49e4d88c64dd894323bdd2b8eff0cccbb506436c4fdbed765ad0b193ea62d580be4c12cd65f2406cbe1fc9281d37bed1988d7488f3935f44454b82a8fc49fc5f2a2f83a7d23ed1cc65cfd7e79f9ad43da88e959b8e5b5e45f6e0b37269c842384f4fcabbf4ece6a722cb171984e48864ef71cdfe14c69ee385f15eb7191249bbe3a3888d5dfcde9302ac5aac71d5503589b3748938eab5614e6f6c6b3d1599b623ada44f53fbb18e359c8cff3414a349457864696f8c6579f9c0d4185cb7591ffff94e83de26c6a9b6970307d4041da3ffbc8ce60cf367a3a97c4b997bb06a01b8964a8534e307e3c28aaddc9cd72dfe4a4303d5785a99c0dc898d41d4e0dcc62c0f6d0254cf18f15e1fcd94bf78497b04ad8efea8bf70cdf45d3545effc6d708435414bc00e64c76b5f3bc0ac823fb56da247da4643fd9063749bf3128c6ce4316bdcad4bafbca77b8ea6c10e54ad063a14333332533e1f68c676ebac53aca8fd70b9405cecf3c979ca0c492199aff92294ee5ab4a2fde51010fdf5eb948916ca7bac7b28fdc904bbe911a0ceaa454af45e6a265b7f6350f91bad8dcee679e00acd2254a6c624df27464b2fcffa9576ebed8b348ae9c759fa53a4c4f9c0b536fd6bc85d5c9623309dda3057839a47b068855283487c90a8089ef71a3e33f5ae5695d044c4d14ae854dbf03c3e854a6d0e39cb9d9d58ea3dfa5e4dd8a11484801c8e67d4c5afd2dc56bf970a34df31da8372ebbdf5266686b4a3da0ccc6b57cc81baf905324fcf0f35cf0c83282893c25983ca076d6cf255cc1c4eadd5947ffa3f2a5cf3bee47cc49656a868eab5a99a3797798ea77a1db18c39acc97e644fb887d55031f718856398878900d6cc9a5963a7153fe5678a12ce86258bdb32ee751eb28efff62ad98443f7d79cc4f85bbc77e90a695d4a24a3166c588ac7b40fed53318b8b453dea738e59a2d8f442ffbd13fabf429b6c60307e719f3861193f7ebfdc13eb3dfd73df22bfd64c61aa8da9ded5329fc61575e3448b265ea9987bcc84cb8f5943a4d51a9cbb5e76e4fe88cb6e9f21506dc0a4ec46b89a746cc96c74cba7b097bfdff7533a46fce9f8f49d670f95e79e6b598ec595cf39c3554eb5f93ab9707d4a559069d24b4d05dff8bfebbdbeae8d363ac608975e41e35fde61d562ccb5fdf94c30ebef47ddc4c80554d879b62d0b49eb4cfeebbeeda50794545577be4eab070e3d365dc9c34eaad1163b252cff3e8ba45dcb77dcbbbda07fa635d8b841179a3553d4e0d249dde33e9d85cb724245877a549cce8f30fac8721e8fe8b2e82e5cb63285ca8a1dd49cd7e60d81e6d5c2cd127a9ae5fd8d8eee88e340a57a80964b21a353b08bd35eaddc1e7d20d6cbe43f4954768654649ed94b9a2b2d63b23fb2fb8d3df7ac371b3b8daae0470d93b610cae681bfebe297ea49419a2371d843bf940804483dfadad8e6d9500d8aa2426cbf0ca5aa353668b7e51bb54c7c4e4ae3354c598cbac6f9d949cf6b79aa4ec541c65245e30709ed494ecdae743cedba7904d34c2e0c3fb6046d6e43e56bc85dbbc4773142e9a98ee84d695c702cfd09aab88077d9b8d376b9cb6a24f3b6d0b4e57398c740d08809328aed069a52fe77cd68b9dad6fcebe3649cd2be39fa84f6a2333ac8dfa314e442505df25f4ebfeaafe277869e18cd3576ff37889c37e3c86cdf4ec7585776d14682f4cd30aad9c1ed43609b5b82e03508869a7f6c6f7c48edc58198ebfaed0f433ac0e0ffe03934c1ebae0aa98b88c879fef6d596a3ab29739b613ab741ad4518e6ba5edfce90678b20e6544f469791c64629657b9b1d5eeff26e6e2aaeb3ccf5a55cc9c481995bbe68abbc383ddddfe4d9fd8ccfb57e15fae870e7dfebcbd216581025e538e7a9af3a4c5365cd22094f8d2b988919f3b7bc9fd67af907b5376906a61115c979d4b34670a9134add8bb466928c3de807cbecc3d7bedeff8657bae78f5869c3463d1b73e09aa7f6274c7fd2a3a9cdb4160da310254462eba30dcdbb5c30542463266d790d0fd79c3c76f5da348753312e4949ff2955212edc46dfcf9e6c37a +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 74f1d52af09b12c36eb062ea7528550cb4c18a3ce8e4f4ea9fac43ae383bc925 +public_key = a2fd55f88cc36246d16d58d9e5e9d9686f571c1586392479797fcdd773709187f0776b8ea9c7f18aff37e9e7e0da79d6ae25331b9c82ca0ca257dc980ccaa23ef6ece1e681ae09aecf967c345d5f83078bda23fd1ae6f3383f52b83ed9f6e6b8f558edbe89b6033558b90a70d3866930a3c78f0f4b2696d4c8b3beca583b8b63ea4a7cd9469ebf184ed7025ba079d3d62b6d7e3064730898708444e92563e076cad4e03c8dcbf551b56885c383a5929a54c207b39e26f348f7a7fb375f38896e7c1c6641b56557f52f4eaf332035faeb48f082b8560cdb83c356e4c40b8e4dc4ce54b4c009d9c3cd6884c11c61662dae0e3fde2ddd3a879e47ffa894d6cdfc760d7bb09b51c8f59a53eac1af2ad1966f3217b578bf4c3bf59459fe3c9ca7b677155436346e76a99653fe677d0d9bcb267bfe5484a72bf8a86f2bf50b5666e50d83bd24cf578c4f9386bce3fd34d2e9347835632a1ab39726c2f467a864f5863c0b4985aee1132ebb2e83386db5ec764b8598efb504bfeeeedaa6350683ab8f65a0af76d9b8ad3875a019ea6a00c3e193d9f8493fc581555d7c478f82ef59150c41e9cf3047fbd599647ca403a7f29f73a765c439535efc2da6862aeb7fcba48927412af6c9364670e2e44c6c73da930b94385f9f0afa7535ad8b7606a512fb737b5db6a08c637087314da4bbd76c35a41fc091fa3a863a3b8c7874501c8a9243f12e69fc8298f9800c9d174cca7086ebf8188ff5585fe1d599053734212fd8490ffde8d4bb8faf53d3499e0ae59b526555a2245eb00bdca2a38cdb0d9a31f89bb46851a4277b819de8e9ff3148789b8ec69d8d7ff248ffd7d3ed8491a3945b6daabdb7b5ccdf60a348818c8493169e99717bbe5305a5c785c4efbf6dad73c76a04bb28b740d2a761c9ddf097edb6dd2974867f5ec5abe07086bc40f7ef61c9dba596cc905b564cd33d77efb1624bc3a2e75440474daa778b79f3819d237a42dd8d937df26e73f31b5494da25d093566f31cc3a53f5818815e2c268f6a7a8e241f4c90ee3b3eeaec277b5c1582f6342fb7e372fb0676ed9fb7342d13a96e3eab49c63d74b76b3a2baf6c899bd86c8a26159ca279cd34f3f3476adb12f447df223aef827597eb5422cff6cd48b6a40c4d200898430ccbe1a6b8ee1635c7626f3a956b270dac22e4af4fbbc8cb637e0a1a7e1059eaaf8b89575d68b530530cb2380a5e65cddcd44b52a922b346e510d5da16b8c2189525a5da109f74b236fe3c39ee3bc793857e9c3859e4809cac7c8ec5667a34b007c7eec63ae9fdfea46497b6b836cac1c451b03814b7c47554a9e6039842418468fd5860ed6cb144eec638b86680ba1628ca09afc406d944cb0bce1b928899cf333ab54be5796a6e0db7cb3bfc8c9b9ae704dda3e5d8eeedf92c77c589c6682e35d9b8e8efc6c4e669a5b53630ad7f6bbc0bd37fabf0c423e0c719bb9dcff4bddc2c390e30b46b48f81864b5d8ccfab339c48bd9cc8ff8dd67358722cfabff6bc907a457f85bebcbd6c765ada9b5c684d290c53625ef3a02660ffb2fffa06d3111b761296fd2e2d4c65f8fdc33f798a8f652eb5ea362743beb6f9a93f4f76b693125bfc388fe11d6f7e9db55c49fb7ae52d4222d850311ca5daafe31744e6df4bbe68b6b6fc5e4dd4c8f1beaeb50f5587b7cbf54a65a2d9e6a2c5baa0e72bdbe98e99096c516f84a20f38a9d335f0a0064e955697008a9bccb6524ee56825bcbb786d92c9aad40b85c2e7ee669f08932f63635f1c37e989a4f9cfe90c335e32ad3aa06a75512fc895485780bc90a969c83419ef2cc64960d399ee65359bcf45201b948ccf827943a06175f55b0492a7236e7b69b66847824d8873a24b6267acadacf330f306652dc766e09f69f0aee068c5ddcb199997af94b8f935df477f00b99882a5a5fb8e47023737593afd797358bebff8be6f4410bdc3811b73ca1c8fe5eec070498b11bc816da770bd895a96338fd9a6659ffb88e05e719bf3a4b208647063cf9ec985ec087fa643608e0aa23ce7749ee3c7983783992961a409729a1c6f417ada0a5659e94fdf95277ccde3ede6fa3e41ac9de3293e3ab3697194fd6f9bfffaaaf6de29b0c2af681546fa657a5571fc378425b23089bb950e6ab3ee80899ff6d1f7b448749280b978958198cbc626539abaa520f4c1ffed3ecd10dca6a4d6edfa0952d6e2785cbddb +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 4b3a70d85f640d1a2a852fb6fe96704af56a7415a8ee4282e9207bc3a2dc116a +public_key = ada7c7f7ae93f8174b99e5b0c249517ac47c4ababda18b523a665587579d884b7d98f778758c48d28c89c97441e7caedddedf0455c73a30377403ce3c20bb8bc09d52066424b9d81c9d44139e53f3afb7d9a687c361da2f5ff2fd5ab37bb778267053055f38158c3762694aaa89596ee8f4a0b1d490c49619a6db79dc3e74b2f7c7687ac0b453319779996a9e1a24bcf1e19a4d72f4e2fea4c4da636484ad9c3acde6363ee367b7b74c9734313bad6056229eddd90f8806b7ad6dfb45e4366867d2e75d79fc66cb9e083b5ad8566bfb58e6b40da9971bb4855b44e14ad4eac687af2bdf5863b88798f7c1a06360e84c24e8940e404716e665e571ae2b063fbc673d01ae8cb94aa658a9394b60a6a1c9bd08ec7bdf54fd02dd43f340ad5675f78057cc5a0ec65b83e5e831681e4d5ccc2f95588089123be8b4cb93df84db2910ccb4924f942b563d30f7c865fba5bb595ef35943ebdbc2daefd58ffcf167bfb9e2e9222a6a71bc55ccf7cb9c7c8c23398761aa58bd8a587013841a276d00a375cc25de8cec577260aa9da6f799da9d0aa9e873b1751958fdf50b9d310c4b8b5248c0f08a0b609440eca877d7d8e1a4ea15af6407d5873fd6f492bea381f53ec8b7f7e60af35b39434bdeb8e0918c4ac8fa5d735b0f676aac18463f8e65cf2c3dee3a97969da994105d056d49e2245ac50de912a44b6f3647cb9c377df2c7f0aa9d16725bda1fb78681de3fb35d61f1ec0a0eec92fdfea83da9a2fdfc95636598f63c264c972a4365e668d440b13f7d3638629ed6cbb7ba024cbf481f64bbd39a5e79c46b43abf104d5fee48d76b7dd469fd33b9d5faff5c3ffc6e91ab8b37dbd8730ec63677e6b43afc74331631fa0c5263268b17cbda78ff699e839e66489a8754f30aac9c77ab765cd9d94b8d77c12c8e8dc6bcffadde832cd2d01ee61c083b14677f01878655394f31296a33d6e2a29ef1cfcaff7a1358af99d4b5e8c00028434e08e3ac1a5d24ccfe09eaa5929c5e6e05683d39f4293f4fe3bdf1e238b2717490f483eaef04f7ad085574c9a1f7cab392d662fd25b4390a694946c6685cda02d85da18776973fb6a829cfc24999a317436d4b47473bbf8fd73f9576c6424acf65e88a4cbf30aefcef5e08c7c06aec84aa3af9d44c25d8ee4db436285a4b1a67ff950437e287f94de7c0ec087b8148607c4df29bc97f7917d76d9842f5a77fc56441770cda5f7f45eaa7ba8f9c7840c99f853ae09257b04bbb367908db617ba997f5b5b23ce4d148d7ab9bce20dcf71cabfcb5dcbf67e4a0df65a5adccdf8634670c57e8ffbd6880293d7d7e84c536d1c69c58f21dcb1ef961aeaa95133483715be1b57b71cbb94e6a483444f65f293b7d34aad2960d79edce8ce19eab09d647151d65e037c2041c932dad92ac7b870e4a64cbfe4069fc9845cacd62549356c38fafcafa807e33c5f7c6318fefca36ad23767e4d86a2d1ec8c41eae8355a9375659c9b8cd4539864b1098b8c96fdcebb94785370430498cedbd64dc8aee2e385fd775749f47c1f38b6d7dd8a6c3a5b2e148204e5d048a3c8e6fe3e2f3d59e6a3554a636acca6b634aca6db7e977e33a74f0a56e78cb856c8e6b73681a3a96f5a53f8a2aeea7e063ef03e4410efee5f38ee9be9954113acbc366252a9e1cbe8f21b8ff7e2d38e9bf798df6e627d67b8e8f62f2f1dbf67ff4188dfad2e0ad81f1bf210e53092ef9be859857f9de34819fc572b91b6aed2e335e04c7cea49c7654c2bb4df53ec12bbdf89fee32b63bf57ce616028994b3d4536564dbf18b54a16b50b9c75d3f347d8cac3f3ccfdca8f7155d5d72a5de4c8d9fe422e386c936f3bac661f4c4f8604a2b658d53e88792f5ca9a497e9bed781ad4a7bebd8306b64d1dcba9a69a35128a7a89e2fb97ffa5c2336cc5dcd90a6cac001dc560baf5f8f75d93f1cffa564db51f5686248d996a4c48e9da68f8956ef59d19bb8d9b84496128f35e02535a38beda0c95846fe8342545ed134f6a6e5ba1bcc7b34858566acd03c1fd33fcdf4cdc7d405f5c5e6077449d8c4e6e66d66af3b9b05f04033dbd34ebac33b708ae7b21488d9ba3ae4015d38d1de97c89d491ffa5c756f6d2f6c5e0bbfc69ba55ebc93e95044cd7c5cd0d84bc717edff8bcccbb4f85d5f5dc6efec71d667cc0338e6a6ca392e61bc1211681ce762516ade8bdad2f1ed78a9731a2634 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 26e38ac804fb5b4d59ddf747715e7e6041d875f99c7b638024b4af82d622da60 +public_key = 307cde7e44a625f44880dbdd125bac36b650f853dc647c68e1ca6306e39c6124fc2a69f4cd0c9cd6ad85f4eb5dc58e5711e4aa7e4af6e62ecac85c303f5fda18a3393d996c1cb68dca9d45894de38555e788e578433d5c0658d7431d34ad845df2baaead84acef5defda1fb191c89f51c436ff6bcf4b33b0b32fd440e65777f4bff5dba7570e48374d46598acf3d46b70f7960eb9a7c5fe893c87c6dc584ecd85bd80b7a4d0a596effa363b654e848d849b72a7cbafe597c99b7eb6697bdd3e81ebf5ce213c35725bccb2dc840066dba39420763572f187759dd5f6e43cbd51f96f7c7a637cb49a58bd0a2a9cfa8bfbd1745b5cc0f55b1a6889253e704f4bbf5c4844d1cee9ca5bdefbbd430eead30d4491427543cb39fd127e7035690a87e49e09a9173a433dde8a29d4d744cd4a7d2ebae568a392a8e326fc8bdc2989869d6a56f77e5ce65a51dc9a5e8f5c304ab693704ea64f8dbcb259b9494bb713b6c882b94af65f8a7bebee6886f1db4ed5b1db8ccbe88aca7a82086ee10b6797a8a5aaaf54b607f4c8fa9a41bdd9bf9c9875df8ad4088eec93748b428cb0527c9257aa83e5efff1755d835343ae05be331ea4481ee944aa8953ffca011e53f10bacb18ac64619689ea6562f23c0fb5a33046c5dc5b7c37f2e33d0987a45dfd7ae5abcb38ba68e13505fa5a05be45af58876077d4b7b4a4e18e5b7905e8e878da4c3a678b65e3cdfa3b18debf85a66ff01ff9cad2c98506dc005f73d23e3cc627e48d6a53178eed004a8efb7e8a1cc46f224e48d0cf69d290fe4082b4425368c2757ac8493393e5495f35a41657ff5b384ee5edebd6e354681e8b47ae5c577be9d7d8d7feb4abc89ea94f3de50f946920a0a3d6bcc3d1799332314d35525f73c2c4e3764ca05ee653bdabdea77819e0490427fe1ba7877ac9df8f94e6fa099e8c7a7791ceb4a65b567848f83cea96997e3ce2564cfa0e4ec43868bf6f6828dcc78f6cd3afc54f2675b9fe926c5d2dce97046c38b3dcd5cecc076ba9bdb3c57a4fc806e835ef6c5fb4417de4689baa7633459edacbab3a781aa83158b31b1c949338b58ac034ff3cfc80d3bb54ef7c10d5f81e0d5930f48e7b9893032246f6ab8ff7f6cb29a46739544dc6c8e347b2997f65e4d90c95e7e84633813861c488ea38fd0ebe7cee795b560973effe3a19d3f950f9feed124db454c8d5da64453fccfee09565c7cac729f952c46d23296eeabb9f4780895cb1ff737ab9139645bcc7b6edc77d50c5a90a53d8c44764740279108ff799a455a8e5bfd395de2d66956385bdce0eed8a1ebd88fb34cf18f4f82ccc7da6a8824b9d982b9fed3b46aeb0f837f57aa0ada783e8766887b538fba4c34be57c2138e9b9e55795399cc99613bf9b7085e9f011f41ab2336e96981aedbabd204f06673c4bf28929f777f260dcf0e48ff8dbfe82b9b8e4fc36be4ccc4a1293aa477a76625429a78e78733380ce950d597ebd8ad695254cd4367a1d8a94bae95304f23622d07650a17341e5decc5133a772c8abb8fa63ffbe9db78af7fd850c31d4fd207579649b0b9eb38ca0ff46f1669cd3ea5a116474c9b66897c4f6d96cef74f8974748bc066338b6ed621d9690e4345c1a3756dea7355148d45c89a16da8868ee64ab538e01e35489c792f79a53a977f77064f97fdb4365fc7f9cce5068c7db680fa8d0aa9969bdd5a65ffc30596dfc9c635c189f9d2ac1f958e167558993cfeab4dbb54f88742177e64ff964c75fd1da9cabdce9b458dc8cd7489684d4c8ac7951a2147b7368d98975837083723eb85a4889547c3847d83e7cc89aec5fae9294358941467fc48bc6bb38486dad5715058171c7b2a178cffc838de1cada03ddfd4049960d477d9f79a0b2be7ba9345afaf641aa08d318e4ea71c9d63a568058aef3992cc4efc596ddccde1d2c66f035963f8be1c7d74c35158ebaf6bc16d6798a24ce938f74e125cf3e5e419bc6926e69aaf11562f64e446df6b77d6f5f9ed8f0587b68f1c5de5a0e32d9c988b66cda86b6c721384b9283cbeb1f8904f5a8dbb6b6a50bfbda47918ae3544c7978fbf9381f78468c0f652a0e81b8f57ee043690023bc9dd43610de3514c79cf9e3639b89faa1f7dc763c52a43773fbe6732d36ff9385716538f00e47d54237c04504a8169baff63f6fcbd8988928266537d344dd44533e2797aa03d8cb025e705a9f45 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a319d2b8f114f1acd866478bcdeba6fd164dc4e37b0adfa8d8034afb3e197376 +public_key = ff4fd0f4ef60b8bc589e0e62aa3beeaceff9f9ab6f64f5f8e1fd5b3c69b9cafe92964a3a6d2c96b8e5f5f0bbb32b848e5c24440a9d4f1583c7d69fd9b91465b9e3a6f2b5e5ecf55a789ee9455bc57af5aa885b64100acbf9746787b9757a17c1416c4ee317b017348f5299661436c1fb5c8aef13f929fba046b6d1804b7b4474461957c8eedcc19d6d9254cf3ae24f8674b5ba69264ec1ea74f835e98cb7ec3ae9f9466bf769338a6369e32027aaf56e73415b31ca16f4d7e6c258b9e38884fb107e917d08e5b75c38b17df5fc9682876b597cd65cf21943cbcb4e78be314c4b487aa46493fb7d5f734d0da891bd5ecc90dd454a7c9bfed5747daa43e2c95feb5ff166fdf81998fa535a7e312739622da2435efbbf7384bd9e372f74d202ea9ea593d002654d40f346c20fd35dd648befb332bf9ae0809810445a2c91a6c51c68ea1abd1ca287e3e967139f58ee66b4632346cf434d634095c5959ffc3c9e9be49c7f33bd0da0a9b966f5132ef4a3b03c0b45cdcbcaa7fde1c78726459518e8c69b6fd865bf51e54b10fb6820b9678026353fb3bc09fd9dcc594f84935fd2d7fd8dbc7754ce7d905fe5434a8840104b6a758e4b555c69897b4b3dfa69407715f93ab337a70060d7218b5536a99d2043f998a14d599bc688f6497c62db73ebaa40b735f41d966cbaf4e655848fa66a2b473437d14c4f80357e449643cfb34e1759677bdb2b3733bfa7bf324357931b7f866e99430454fb1b65797b9de5267d37744c0f074e5fed93540a68fd2bc5ae84f47941cf1a16e923d6d3c4a89309f8a7d1ae48a2947d908e9e37ecdeee84c3fb6d4bcde28ca63c34cf21efbdb16dd831cfaa6eae9edcdc0a80cd373ed66a8e6f25f4af873b5f992768ffffdbd9c1d9ced86ddfd2c3ce8de7cca5d95f95bc84f448ec51331066ab01275d5e01f73752ff0a869b518cb458c0db5e1f5d3f53c639cdfbf11e7ec45e886668fc71c0663cdde9b0519330f36594f1385f09fe99d76b45083e8fde59b6af4e85f48e1f15b873bf9d2d80c44aa5f3351653365e369be2939f7fe7f753c776fc3421dc75bd0ccae0fab9bcc2a81764d8950fa32e983cb746d75040a85760eb2e543b043c6e7c27dd1cf0fd4ae164effc243d5becba30ff6f46ea7d65949cabc32b3b3a782cbe8d046f7cd35d7f2eef2a46c3e3509e415ccaaeb2ed709f648125ff0524b8fae55c8e6caa27a693c3a559496e3ddb245867449f575accea61c91cd3b9188b94655de5e7eebb384ee9d114bc0720b7552cadd42d85863e984a32dbc473fbbd8dec3409f5837fee7b209351f0bd2c99f3edbf4a54e6ddce7dabda56df1601a5b19d9b0b736c8b1f3d897bf85a633c647658622c3da9b476a8fdcf51e0971f893806365dcf3a7e8c86b6849c7b55319b7a4f8e7b4447d265bc518a6e4258df6c82c557be5a4e1e3d2397865b07f77646b442874a5b0d5ae614f9e4dc5ab31ce32062d30d747715dba66c173e6a8eedd180b6ea88a6e987deae123ea251fb5e93d39c76aecdfd8c0775ed9d47dd9498f725d6f7a8f9395cdfaa7beb4d263c8479b3a3e1d68cfa5688cfa19322b833e0eb863171a3f48b9910f5f89611c4d51554574dbf39934cf870550a0f7a4e79beac50b59ac6bede0f348f13e5e627cc2e517d7827b9f9c6b94311db46a2b75260d52694da13e4ef3621462bf5486820594c413e8b86731e1258de72e5d76d68b5808314aad413a5ee4caf69198277a8a67d82da4a440f799f88d64310660351bdab34970e6d9c9e54afa25bfc95135971ecef8eec54cc21378b6067d648c85c8ccf1bb9551a06488267e9d5fcc67727d83e9d677abd5f3340cc24da5b489933ad8dec1d12b7004ccea885f44a7b9810b29c77826aac6daa1753681e2b9cefa4aa3a5c4cdd63a844176d17f8aa79db97115b86c447bb7e66b7965ae9d420e49fbc475ec1bab8b06cf96cad86116ff89b6f17775d7af4d849c8f615f0b6d81ab82aa2e84ce9b8b07f693110bfa5eb83cc5cc4545d89362c33c8dcc7453b7d05104db5679ee212897747ce7f61dfd8c15bbb2c6f5ef267914e6f759dcd1da4c8437eb3facf336fa0bc0e83a9ff51c793dc44007a634333d946026f258de91ed8872ead9a8a76f96a7e55d30d86ddffdf3ccb84744bab7db9c015a60707cd7aa0ebe7b8cfb1d663d8b18c5bbf06da994e7eff9d64742e2 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ff646071b2509e6b75790917e08e4f0b0d9f0116ec6291c0b59eaa4b583ad830 +public_key = fcd4fe1aeaf0b98db35f49a31228df66b866c4a5fd93ffbf39bd8f621d850224909413938678c8f9585a084eb561a36b778d644947485b2462d984ae5fbee5fe6ff02653d14617d67b9540457a3405f7e27e94ed004b86c094468a0743b82bc70569c3388338e0dbc6acde456ca3afc4564ee9d361ca0a708f4e7aadaeaf1225ed5fc93db4b652eba9da0335c79aaf7b723e72b6949be937b570384f3637e02edfbd784c97d46c8a30ffa1d3adc4390df91dff9971e3c58df77c33b83b535fcf0f7fc4fb9448aca6a3acbd6a22677c0206609598c54488e598fa318bd58da36f5ccaf7ae759b774147380f13d4164bd786b9f03b1e69d943b54b9b92f7bc7be50be8e87a37dfe73712c33fc18f4ab448a9b2295a7364629956cac2cb6ed54ac085bc3693fbcd9cf7b44d4b318e248ad737aa1c9fefa985bf802e9829becabfe66deb269a6be49dc3f74af594c820748fcb6d9620bd4f22bcfcd4787b5b4ea91195b8588b3a75aea188f95e50bbd47cf42fd5b63fb88ba57edf452809dd2f966a1cd9ece39ba848fbb2ec4576df188350f587e5abdac0848d71a93cfda63e3ef93745c6516cbb69a65d5b20addaa409e1953d6c84f640050393f1c751a05872aa8bd27f678b1bafcd5f97ca268d6a540e6eae54e2a8ff3ebd8a7359e5a707bee415a5eae2a45d60fc999b66a255cab76ef85602bf974c56fec53dff84bfba8529daec7c6fd6263d73ee9f7e07ec6fd37694fcee5619d290549d003cfda9be8beab345f969bf1b33e44486c29a1d4dc7dc367265902469c45d7788c6df3941c6a1609ae2586692eb759eb4835c5384f9ef287b6709b87edff653d7a92cd3e4a295a6a6c939e33b3a87394cc40cb285be7988ad88fffc3f402cfb072cb72b467d59f930d93ed1ad7f5c79d54fba036aad5760a615cd60aea323a87fb63a44732f8f124a3ef73ad86ac74245cac6b778424ade7c7a19a127bf8c763dc1ebd6a806097de45e77a517dabe84bbe3b99ee7149c582f4357c8624d08ce6467b144e598701987fb56db21e53957f57ce98343a564c63fc466f8ed4bbbdaa63ce79448364ff1d9c05267f19d03b2d90c9c0c299026d3c0aa4845060d92fc84f4f1fad3716a456cbfb936afbe5a5570b1eb467d54890493c49783d0344887718bb54bad6bd9adf29359ae33395d7a8bd8a71465297780f54cb0d31f5ec24eed6be3e76657ddc198e08497d6c0e79c8654c6c6cb35d406ffe70541e92982ba67ddbc289be8e842a31b7e7158660744992d75d6e2dec8bc6eff990e52703761592f8319cbb7a35ee253a98cbbca8a6d86c2710631e105c218bfac0508e44757f7c2bd89b3c8ab8779ce926e9352d86b38c5a622c73d6938e4fd36800d6cd09bfdbf0eb6734eeb38307d412c2469d10698071c772f6fc6243cca237cf6760bd358487430998ad9aae457df9d79977c810953b138642754c0bb993e8b9b7e3b3b7972359569c44bd6576fc0dfe2f79cdc3346f0122f5d2596bfd2fcea4c8fea36259fb723c64149e0229d485a6f52225879c04dec20e3d5dd3bafb2f6fcd0bec3d40db5460ba561f3c61a3d662f3641b763b2f5b5b2682546cba9a1543eb8afca63cf68b7a10cff49c5b4042a3a2c2e48c427c97027f7dcf3371bc7b13ab6f878c8a358f391f03befd4dfad663c4f71c36cc0fee582ee995d976ca37440ddf9c4de2b48ed9c49283da978fde7a7065cbcd8e1c0de55d1935123fef32583f505c6c568fa67bf7968ff6836f765c242b5b9966c333fbee61a336164e7fcc5767e40939591fd7b537788c56f65fbbebc3078c470e98dc1b7a31cc53a84ada7e95c4634754a07add7341396371ab79f6343b70eb50966c59a9e44cc46b6d16d89a879871cdebb9c2cbcef84cb8fb4a031786bf778703b164f6787c5cd63ac7824f4f865de1ac992a7cd4bf7953787047b043632df1f698f8d526d8e3e08f36dc1db592f48968395817566886cbfc7d3fcaddf43e273ec7ecbdbb3e5e7dc8243f3fa9aea16ee371534cd056fcd052685950bb6b6833600243e35d7d47ccfd833fd9e1d854739c5b425bb32bf96d29f1e59d79ba70293badabaf5385563cfb4babdf4bbbe44e058d3817e9a7941e69adcc867559b822bf63d0034c15eeea9371945bfacb1caca4fad8590f723014cf5355228d850d99c57f85c67295a4afa0b9d8e1da6065ee0e9e43b6d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0584270ec26f3b9818e4af074d17b2d51037cc8dfdcbe3b140fa4fed5deebc54 +public_key = 3e074aaa7ac9f87d3a87c7fbd0bad50574b63fe8def56c882109c9ebcff0e77d41397af9d6977f963dc36293f9a3fdfa795dc77c73a46a8e45c847d8802f41ae46a1b7b692fb5c81de38846a5bad7246b596a889eaf558d1d55bf147f058fe795c5dd76d53c0b91f88fdadd9757a9111faf6c45edd562e7768378cdc94a3cc4daf38f67b1b473b162d5c58d876078bfc8005bf870588dd73e8ac154dbd9aaaa6d48d1ecd5118739fcc8ce2327a68f8b5369a846b6aac56fe1d43c5ca867585fc12549840d47b6563c7047f3d6b8791befe4e011ec0615e36a26fe266ce3874b9ba6064b85ea895180c634168774aa55e2df34ebe8e32bac959dbb9dffa656e7d6e677d3b801ef3604814ac36e3e657bcb05c0fdd893a4a2e5d644a1fe33babe6e82ceabb2b55224d8f37a9e52cae4d51a6a7f5af31b5167b0273b22cfc60658fcc6685bbe8f8df6aab99d7f55b51ed93aa55b568c45aa3e4a0766a922829fe5f9e378a06d92773d89068f6c7af4e7413aa98f57495ecfd5ed5bd6fb5c65f4b4ed7b9c4c7c5d4549bd306c892f547613516a90654e7b1b96a95cbce5c6dfbc87d356df5ad52b98ae00ebd66175ab3747910d8e4e8bd70205b60978aad90c43341ac6aee03cecf7cb8cd2b4842c3401beea3b71fd7af366fc7f78069e39fdeadca545dfba455af5ecbf1ef9a6d616ded6edbeb5297312b38dab30f3f2fcc42c2d66309ff63b8ede9af78e44247c2dd93a05df57daa6ad3e896a182b480f106d8ea668aeb6db66964b2a3fb609ff547da9a51aa6848ce2a686406c7fcebd58595a807a6692f833cbf3e66fffc73a203d623c86db1b98ee7f477d8fea8c82ed076774d6147bb56a79aceb6804eb982a9edd356553a68ea8e91d8b86d676f394a776353bc840d43d02d9debeff481cd8d5eff5e80fb734bd6558f1b9081bd9fab74f808c458cdfbdd72e5b49305aa5033f1721e31c7f848fd14811e7e8be5d8d5c9bf54c8c556981ac8c1dab13cbc9e927d8d99688e36599f3b8af3f7ab83f2a3b613b38288bf856aec5b4ef9dc33e85b8d88cde397d75a4fdb4c2cdd8e7f7c8e379f84ead222bfcdfe07d370299bab0b7f9db8c69d7c9ea7ededf71d7e0454dbdcf945b03f9bc016892d9cd1f17e654ae3b19374946256d2731dcf9b1760aafb5e4a935c2d0b7c70db3721279e6fe43d712468fed532cad432ed3da1372554c97c3769c380c719d18393364ca97f9dc37a0d393511a9daabf398474965dc45ac2a37ad60163145bc3b73e7a6c213ff7e3fe6bc19b26b4cc55bc68ed996411ccdd715473f4e0636283cf0387da3bbebf6cc58aa7b4c69ddddeee3e53ae524e69859b632937cd8c355c66dcef6cd91f418d0489f9554c94d7115393fccc11fe397f2854564533fe9e66614da3afe15be921962698fdf5fca36878797a3bd45daebf491fb3cdcfb7254fe8750774d4108bd6c7c6545c8d1e8e368a1087e0f33c22a359908cec75bd59db38f68da457699337356436787be6bf7af5fc65e41bcb3d3faf566039991c80da228ddee6543bc174cd6b9b8d270ed7e032c30f5d4c86aa5da3a7b32e6c67e5187ed79cd8cb548fbd4fa8068969926d352f7e5820bbe9878197c2527fe95d6ab6a05acbbe375ab955bc777977d2b926786c9143978113c49083e438ea53c0ebf7bada4be961b38138b4c685ae2d5bd8b6f03ab28f6a261cdeafd348b596841981dfbc534836c8b735efe39ff98c84fed3a59fdfd0f7ef5f2ed9bf7d7a9195df2646fa6686f7ae5f580ef5db594fa64892a508ff8bf8095eabdc45486936e12ef6bedae4334454d67dde28663c52a97d0b525950425a4ce88f4b25b9e45ec6bff08f89d25d3816ac76f498f8e18b2b626b285655ab50d96cefbf29856457699b500b77f7af5c2bc8c545d4f92a387583fd74dce2dc4bed85bec9cf45c63608eb3d2d567e99d9a70194a5e92acb24264532c0fbaa808f5052379395b3b432f536164823c379782837ff417b1593f38721b8b6b4a5bea8fabfd35a90d07bade6cd3c4d3e70257bc0e88b41b34fb157df7bbafcc72474d014f7b0c79cf2a5fd3df379628799452d3952d2ac70a0fdecfe33b012df2917a4678966f1e9d65cbdfbb9b6979817873e8d662d7ba8344de872939ec545cd0fdeac5ead3c8dd2cf3e2ec7899253e7f980f9ab3230eb1a9a3688f94bd522ebe016e2980d72c +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 51e05c7b4ca3079781e8293f4eccebeeb2f8c8b4c59468eddb62a21bcb4ab8a3 +public_key = 10489b6e53ef18744974e86c075394189349b01beffd5cac617fcc112e7b0f4fd3e306ef1e9f81c3efd8af83a7f17eba78546e283f71ac1cc01b4fdf35e845f10c59bb8c97e26f7603f5ea06e532ef7e6eb845e9c80a4833c7ab45e6951137c0f83e964fefe97b033e17bcb5238ae128179a86df4f730a6b31fade52075ae2198b491d6ad1fef2580e313bfea7b675347ccdca48d88c50fd54eddbe092e87ccf17de10ecd93bcc9bd50d49035db7dca3775c7e5f218448cbbdea8d8c8c6577cca02ea7e3f6f08b2c42215794954aac588efa3845523c74960b57a97e0c310cf7b87a8e92eba5d7fe75d2107d6be12977501d79502f96acde3587a78457bd83a164bf23d8d1969a575a1d62d22bab23c6ee7dd5b31bd5452004d90a4c6c01c6603f4b4b1aabb9978ebe0b9c671f496f8ccafa5725d2e0da35ffa9bd2c77a5e678d9e4d54000b851b32f6e24ded72253826f374842da3130fd931b7a85e6186f5e6a31277afd40b8efbe135e2c86c328b896f08cf269f983b313cd92578882b3f1f013efcb9a9e7e6e8fd3d543e34abcdddb98d4c4585cbcb67799f83c54ff8c5cc9154f7fb1a53f3e35b78d3ee0ba956df0ad35084c53cc9b6fa7946e1194d087f8e94db6607246c7b314ce7644b8e62fcf494a6333dbcc23eae97cea95c318797ffda18c84bafbe968df375fd0c9981757aa8c8786598ffbfc2684e11faf3c3da067ac996315b0d0be3ec56ff0c9447ad4374c78484ac75f921338f14ca3346606d34abb7a78cbb528c44a339638effd9d3ee370d4ae746053629e7a37eb36d0f2f73eb9d5720305980433e5b093c0082456fbbd6ca2a4c9bbd4c651cbf97b494fe7e38d5c8aa3c7cbb6f1189d4a3cd2de0acdd1efc7ffb2fe83c63624bfedc137c00e17e93cdf8264fcdfef2f59ff2362ecdec2531d3d93645e92e398f46935109bc0cc5dc61a4f4db056e823d33fd9df71727554a4c86a5113a17de7bd17b47cf04bced6cabfa7f9f6993b57a7cda694ef51e3c9db7b27e960fd37fd867b881d9a8bf9d40316dcb34b32689cf63fcdd19449eef6c978db4c83c8967a735895a70b6dcfdd6016b3737015696f2ae9462eda450df3473cdffcdd49c19f5ab1d68ef3f775309cfa95e99866cd4b17b34d29bef54c433313c972a705eb48696db9d7ab71d4600c0563b36437fbceba6ab9ad6e89630357485dbce486ef808de8869ae59fc6a952890c696964f4e3bb9f27aac219a3d1dc6b36503699f35d4ac5e35ae0ed8048f9842d03f70abc3d20aae311d65c048b58111bc7fbd6953e2eb56364a51dacf41917fdecf8fb9d93aeb99c3f0a5a6c3f276504c3697a8ce9563abd84068e8a39373c1375d848400c663c44e6c968c3c61fb375efeedbab6dcf6158aa7e39c99f6d9a8b0765e37affbcb5e5e468ea0207ac3fd5b3b7a95f194ad8522ed9f335cd1dccc09233e29da93aeab93ebf397bb073bd6374634675b6386caa3307ef05beb421bfd36979acf22835fcd5e1186441e1f585850faf78ba99684ef5ce9331b6686821ac739ff4e467fcf2736463ac54e5db238bdb9a32e1895e0445aeef16b12f8e8f33a435afb9ef850549ed465fc036e63f98858214d274638eada37dc26fbb2d2839ca934bfa44acaec450ab4436ee78a5e668e34b08e0924d52be1a605e69ba880d5f414fa25569c29253e57865c5bed6918da360c4c8f4c7ebc8157870962737d25dac5583907c1cdf0603b1dceca45f1d467ecc3a4435355a08f64abcf6f51ea37b2587f40cc024cec497664de5e7d5fcddc103e36876be68c1c732ab364e1a57f6c1e8f07e1830d747f1dfcb55557352a75d8469eabccdafca707cede5fab0a7647d2cf7b05f1e7998173c5b3958d48349201f8f01889fe00dd0b668a857479031fdc16bb7537957e9e5ee42f0c5a1a52445de8862cbe3377c383debee817c9ee0e045321a16594fa7c1d1037fbdeff08158c6265e4f3474f37d7c73b0dcc605fba342cb6fbcbc71391577ac3781adb39d4b2cf236a4c957a8e0d039c10fe556dd954d71f7d5c6fc9389f3be0089697dd6703d8bb8ff08c88bf677318fa56378b52bfb30182c9ae26efae2cfb9f99b4f3d1bf0f8593bc63dc585d737540972bcea60e11441e07a9c6837d31363990b383b704fafebf55e5f20635ba731fa86c24d6908aed77e3a57b2138c0c83a5bc98ebd3a002c0a9c6 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 9eca0fe36c80fc5eba171c3ae66a5b1c923faa50b4521bb055e7bf51005c93df +public_key = 0dc34b0fc991bea47b02a8cae208eb10043ec8d655124b3ed575d5296c5aa32f7ce2bcd4a0b3eca05575b2e55c021e9d6588cfb529aa54f7d7155bb4f9a63966d9566bb65a9528759107e6e6ccdd80de69112999965fb1771b35a42fc5145c7a40d79d6d9c3eadf941112c4f76d678cb0aab59b9a30bbb340e078bc289995179ef9bf84189a87f2af590f99ed27a489ea1bb89e3a8b65959ad503a5e051c5f398a654d7d8f9eb5ebf75c6bfc25634155d76a93aa6e6640e6b47158ecaeb72ec607cd65972c9f26a34736067161e6bd490af97173eaee5b518ddab90f79f929d5a7a6e76582e53dcd36acecb6a76dd9455358ba95eb8a70d3786d0e960b367e15536b4574d8e4faccabae39c8e9737ad6b8b0e380bbac446c73b7b388b319ecf047fb733817fa102f5b516f53afb7f2c91f419e9c739d9dbeed97ba8f684112adde7d1762a6cd903c49d787ee445c6e5a1e054efb8bdb1daaab671a63cae7b55c8b6f140ede567d7650ea8d864c7e5217b572643e6c7480411489c9bbe8400483a667e85a9dbab58b6a734596a71f3dff5f40b209d9fc8c359159df89875e0ad3b06f78e2ea973e70bda69896e99b3b55b8df6a566deb446d9b3d6a3981cab946049c10b5737daccfb214de014a5f715b4c1f9bd406b3a32056d2182450d11bd19b388bff3eb5a5a9794b5863bcb34cf6f659b25cc95f0a42faa3d5a0d647342845d6bf8ff6ce727975bb48c5ad2c96b97ddc3bd5fdb40e9b6fe113873afea9ca3b969cf33ccc8ddfa9fba93ef565a8bae80cc3711974bda14ab85e48e7ef58d1c0c3b3f694d3bc94cc751fad045af2085db6ca963e3e15ff310bb14756f3f717e57c8a7d67f9598959f278ca5707ea6d106431fa5a3b88c39e3e46dbc0288925a3fd45af523b0980a32e519ceaa65353a7483b7de70f8745af869bbc869a58bed33f7b3c6a4aa7447a9a09bbba03f3d69e4dc9d5a1ef8aac92c9f0524c6968289d7ead6db266eeefaf6fb774e68c185ec20ccf2b57a89f28877218d9e94c377c3e3cd5ebb7f81d37bc0decf85b67553fb89195d316f6b93833e793aa3aab2972e979c7aa258735858434b6386dfdc5a933ff60b7d624b4cbea0ee0c9e3a0d86d5bcbaf3ab4aaf22f76e27a1a4b9f2bada03c8dcf43de1de9d13195fb71cbcfcef9ef528377d30d433dc898c31e8f7c6f75f5edb9aa8df8e759ae0c77477c0cf7a1398cade7671ab8934424df5c3662c746e07205a2ceb7ec371fc4eb063cac777b9d6b61cc14e9fcab4908bce61674c6b4c58c53b5d65c637d0a4c964e29729667aa949c39ea0797b698f9523e4354bcf8d53cf096049df866bd029beac3b47cd2e648ec4ff1356ffab2993db33491326a625e8739672551563bf829ca57ae75e8dd4553156f81fa57aa3744e2f23cfd0dedfb624eba2903e712447deefbaf8f974aea85e40ebfb85df4d9db834c283440e387e47b2b8205fd9da25df8f1a6dfd7c6b29fcebdac0d98eb2f669e8ef3d36a52dcd634a457f09bdccea83eb47719745597955d3372cc533cc9b59712e770d7cbb63d0ee5cd0fac9933ab2496e7babf84a8763a8856afea63c442ba74089d5c6ebe3dde25a2416fb7dc4f8959efb72117652535c1c35ff6266bcc7e87a72128eced66cd9edec8d87aec29ddc335b66eaf84f2c1bbb3a7dbc7f2b8ec7a477a367e7a23b486f307c7670efa1be3afe94d802645fd28b8f6a7e5781949df344ebfb9ef58651fe3bb06b8aed87eb79bf16a8ed60b69df17dd5d849de404ebc63b83d4a098d062b4c1e235655b43c2b616fc28e4d64a1a861a9844544776e8eaadc0ca66b2cbbb691460382b586e77856c8d85a1d679608fbe8185c62ed79b2bb8a3ebf57150145892f99a27ec8d181ef65dde6b605f939564d0a54e92b0e47f39aadbbcadf7f9d3aa1f64d7465b8b29efa87ab881bf4ddfb82d47f61a53b138fc13b65ec41d45b2edb77968d018ee776e46a50185987a9f96f4ace44747daf22f7a7d1dde327b40ed2965ebfc7a5568d3d4d34177ee4bd6f9905c5c4e263d62c22eddce1cf2e74779f07846a78d6eaf44dbec965dcbdbea2d4da5e74f8d2bfb50ceab3a64cba6aed667edbcdcbf03ccd8d8a56d73c70c2ff62809df4c86dea21c485a0536f7fe6330adde1dbe3208f442501c6cfd05027f5fae41abece025084a5e4598a766114b13b17dd16a4c99f255 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0c5719261caab51ae66b8c32e21c34e6d86ee4aa127d1b0195663c066497b2e9 +public_key = ad4330bdc85f4699cccd373de5e7f66e5530a73a42d10c9b327a57715539eba9d30873689f47bf697ea00c6caa06e4b04a93fc865b692943d3cf838ac186b453d77088895db46e63b1074a8e045911fa92db578cad284642bcbb44f844c6663f3f4c98cc8acfa1a96b6df57f5cfedfc76477d316f4577db2c79667244ed76f74480c36f7a3a44422bde22a5d9752a536e95ba97e85aebcafdb4b2bebc55bcb95fc76ed43b9815f36cdc6f861fba354fd8409d9e12676e5811f350acd5208c8604389b2dd4bdf8fc94f432b41632c4ae1dadbdac54ceabbcb743362725b839ece8add4b7796bdf5271e39539641aa43a9c185621d13c33c579189244c885cd47bab4187577c97639ca4abc631eba5eabe41e11b6aa8d562449c3ccd8757503a7ab358a24d2b36f3ee7690bf47289de123354b6dc661f74d883e16e3c8886121b893373dfeddc464205bedc16b9fcd49d6bb9a6cf8d6a176a43aa2be3200d67ad1ffef2f83e86164a6fab968ea14f7c835d1c59c4948884648a7e0d7976a5d9eff78b5b7df2aaa6447d54b1ad3180c4a886b7d663e49e8497b19be8e98f7ff9815be91df52a4583f2de88c0d7bb10cea4d65bcef59683db4ca4969a9b57ba65e079d8f7f9f67adc8c87e8b8d8d5651b234bc9feec65ff4fa51368a051f53ea9fe00c25955bc39b70b36c67484f8df88c2066cd2a5339c57eb60a1b81acc5922e274cea5ad71ec7ee798f41ad1b7c41ebee983fe2e27c770e77f0a7e67dea4ea1caa5fbdbbc591ef78019c67dd194f59bc873f045607d1440bee46f199a7d2274b4e50d62c064368bf5c6d60d46a198c89e1372950b7710b3b6376caa9bd3f882a6b0aa9b7fae86cccbdd574cd8b417047d30e4ebfcbde19c9d9142363d308ad06265a3961c9c604a7b65384a5dfbec62ff5f66fb3b774db5c4fffb8ed488f19fd1a10c3b5b4fb043965d4fba6f31c9dc5a9aed8b29a01e6ddbea4ff5ab6acf77a6dafd38f4f2283ce96f88cb1a9b99deeb03dbbb0e0854732bf2464331f6dc70e8ee77158ef36b6bf6ce23e649e77d46e7946b85593b2989bab4ce5d09ab8d745a64d53401ccdca4855e55cfdca59eeae5e9e92de398d9d65dd3b3f7499cc0ccaa9f9b2b547c5b53722b50b21c7bd2c3c7f68ae5be8371e9d4583faabf2467a4d5365cf7e9fb8de8a55effd0b71e85b89c83bd08e8adcb67fc775a5cbe9f1aa453b59ecf1bfa8d52ddcc499331de7730878afdb14778052cba5d759e21a8cea65d72505fbf26cfa31d8be17a4377f7a461ff92882f1ea4a9ce37ee5a4b7aa67f712838737a96faea89824ea1b51657625deadbb650bbfae698267d324a3cb1d9933be8bc95d55aadc4a8150fd2eb07f5fb0f4763563e2656b028053cbd16b32d2d45734970280fc4b453a277c3e8551c8b732378e3d7bc32bedb5ed975ab13ffbff647c644dc2d5c91f69ceaddb447000eeefd5cdc9e9f5111948f001880b36588df16cd1b9bbe85973ce513662277f1476d34037ff73fb45f97f65da4f6e5dca4a6aa06c5e9cadff727775c8460871e827c98c8b87e7dab7dd04e3fe2dc28b4392a6e0333a77cb9400978b60b0da76606f74486c60af452ff9f452156961f2467d023d72f1c4cfced8ea7885a75dd649527e7851fa1ac73f61a8eadb87d8dedc89b64e67dc2a8b25d98cb1ad7428947fe48fabe360495b4a7472f3c8b7f877280ebcc6019648ef960ca23a1c49b684f947460e96f0ea4e4080ad36d1f7900d84665768db52a8ec05696725b3dd82498236d30b7189c9beec612e9a2c65c86c2a4f6caf686d6cddea0557467aeb04f8485a457bb83dc68c5becb01e7831e476454fd84444e51fc0c9ea3c7d81ffddb4675d48bcb8fab778ead09dd25f54d8f55f382ef52b248fd050f8378e7cc7b3973cfb776249857cd7eeaf809eeb8d5b9f5e9d213bf7d5fc9a794d53e3f1df08aad5a421a540b36aac5d8d3c8f5cd721eff176ca57a7a439dc9dbdd7eac66fd470d64e88927bf3d2640e5a3a45eadf1f876562fa7c6c2b37be936e39396ec5f0336a47ac373e6874ec53fc909de8578d7675858bb1f91c7134c4b8432f988fcf6855ae9d49226055d9c5bff24ddf3902db516d6600fb7fd8a6cfd07ee613dbb7fcdf9817dcf99ef36e4b6085517cca4006876de51659c317c7c9d15b2dfa3cfd29db64b6dee0f6e53b6bcee0ac31c086db16d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0e59f6f9047c784c1f00b24454aa4f1bd32c92ae7e626549972f86fab90e7e89 +public_key = 2bf6a6fce45eb9d6a0401e858433994f3d4b2d379c43d4670be6c9d65a61e50c34ed26c67f7e6933cc5d9fbffd14f86e5cc54967ccc82e45d6efb8cdf40c31f323e35b597b3ab7ffe84bd1ec88a97f3f464743e072a4f7109ff16f1e688df6cefc2a9332243eb85d59fcecad20a681abae7402fb36c7ed91728ab92efa891d24ec251895f4c79fe2db4b2263e14cef4d22a38b9d14532f08df384778c8b99a4303506d08303bab91d7ed5c69adc0affb5dea7344ef5ab21a559cdfbc3be395834b4b8d8d9c4af6a9ca37a34fbf05669f99af8bdb3237c98f999dfad77af6eb353c671f674e8b4f94ae90f293c80ebdf5db0daec30f65cba37b0df43d78a8fe6ff49a9f464e7ff57680e745608e6f815c733bfcf5e52f7ca32573370d5d0559b64758537964feeab8f82d8a90b7a885b046dc4ca4f89528f0d189b874ef46e4d793fa94c0211630f555e0f8fd6d116acfa35c856f87913b06edbdfbd554589dae65a2e25341e4b93916aa4b7397e4526653e798c11f24563c3fd0319c60343869579b74f2ba9ddb03c6f3479a0ef3a5e508d283d69034968e2599fc29cf72dd6de4677febc19ec0fc0adaa2b56c9f8cca6ceaf08b5f3ea6b4da4907c1f49d780d5ad4624466206594ccebeb1adfb9cd4d7bd27f428316692e19f29fc963720e65970471e1b554f42fc1549ae18f94e69dd9731bc8c49d2bd130287024c391cb0f706569efd9755ffc2a68d36b7dcdac3a55edce67e432e35695a3987b1d5aee5eb3f935cecbefbcf53eafba9714ab6a4a46a07950b6477c313d67e0e673fc6cc801af6fcfb59a01e397f944335efcf6002889b09af6338947dcca758eac669929bb4d6d8f996e812e06aa61f5b8b66f99efe95109d57c43cd66eae5e1bd868c2c1d7522043da8356f618cf6f718fb088f34b435c478d48a53d5a369f7907defbe847dc0ba7347707b7ffebf5e6bbbffa85b5923edbba7269fb7a9799a158f9806bc3599f68d95e4134aab1dc83d416af35ef49586133de1ba59b80aeff5493cf9dacbefed4f4b9a94b3daae4235756833e1bd7dc49e75d90a97e37cc3f741aaff2d5481d7ced044c6a551eb711bfa828a3cbf23fdf6d2345dca34e5b6d9b03e9479faf589eb0fa12d2cd3939935e9cff5d8ce8535afcef16d456bb58145337e81f7346e057bbb98a8c0b3e2f784351ddbe1a1fca7985af443c4d9bb9d3c3024b8da9a8b6aabca90b74a34b532c00ec7c2cec7ce05bf08c5c65164a01f64c86797317ecd3b2d69c26349df9f5eedf4f4508d8bd3c7b473a8ee95e8338cae5b89b8546578adf9c0ac711653b1c8af4bb3b9bff0d6e2888ce2a3acff5cbf920313cf362f396eb79065cbee854a8956f7ac2143abb4136b078fbd01275506a765175c4b7648a0dbb875e2864d52aab697533512164be2659c5725ec4af898d689a861a7f6417ee0faa69f624fde75d3a05dcf7feb06dae63df6c11cd1c41ee8ee3693a7293f4f7cc4d9f84ec37c5f3899da6a58afce1855d5ddce1f0a57789d423115c59228b96be6fd68e9df4bfac9f17a7597a492e68eeb65d8626e568f025da4593dec6205a81fe74a591b547be8427667f3b585d3c3b352478b304c39b22b147bf6b5bc48acfdccd44ca02d6b7cf58fb3faa3c899e524faaa88479b0d4d51deb63eab53822f84935566ab7978c1b9e5cc043767c109bb4663960a534a750cae177aa33315584148e38e5f648aaa5cf0bd9f5cd58d008d4c6aaec85a34fdd63a997385b52aaf88758c427cae5b0574fc230c8a028d938606c6e14651670ef9a35ca3855657ac1b3678ada15d094ec68caaf90cc1958ba0dcdff169f3853f3b7d56f4bde7cbfc1d7ec8c4c95299d95873f89a17a4583bc9e98f0f79a45691a41d7ba1294726a385eda5e63f0bc3c609c01fffd1c6addeb76351903eff157f33157e5e7bc84b75b6e1c58ecdf858350eed495d2cd20228b0056f4900d3d0ce0e8166fb4dd217cda3c792da49a87a3bcac52542f3c3f43f689ce6ace947ae34aa7d61c93e34ad5fc92d97a458b7b38dfb7f42476b6c6cf72d8ed65f5e59121484d4a541311c97fca3488d13b1de64610483cb3a9551cf4a3318ddc76766c777f5f6595539ad17bb6c184aff73b6c4eaccd6ae4ed2beb836975deeeb8909458146938505dba5dad77c1a3acdab128b36dc1e94a121c545e3515ed56687f8911eb5e172 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a3963ade17d69debbc358dda82c7bebe2c39d25b36813058e7a161542e3f8c2b +public_key = 26c68b1ba4659966cc95d79852fd3e029a736c3b4809f9c366093967c53769b4796ee76b501f77f24d7b8c478fc25ddde74e5c2a33e7283d3c872edaf4b743aa85b73e38b41c8e9022bd7d1ed5c6c28ed77e9c9b6a678d67b94958c66921e9cf0f573585bc3b483f3f32979b91d4e1c9133b3b9bd31a9e79c6f457f106be430ebcf3de42a58e4c5e166c1778dfdb3ae29699da89d8d2120585951a9051fccc4d5fd01346c9add97f9329ec720466f95c5591bdcb8046a470cb50a47e6a073e35ea5ad21a2e7b4d373efac8625ef44e5c0761bc14d4f4ab87bd8abb069cd7da5c832de7530be88532fbb5d8eb5c6023a5f0ebeaee3a50d2864601a579e6dab597d6cd2a2d8c49fd75d42c6b27aa3c3cd837e224bdef354e20168c0327fa16973224e5dcc0ac7f60fc9b0afc7f39acf9aa5d9f9bc3abe7298303ebf53ecd4a69bc873e874a43ecf8fba6339f4e52e4399a3f0ed65be8e099b33a5087b816ccc668a75bed05650d37966d058d6ecbfb3b8e9218036c2cad64ebac797c77eead25ec121ab88f6c93962d4e7153e0a8293c64bc9789864f93569ca043b856c8412ad985d92d6b6e7485f1956d7f6e610407f1e76459bcbdc874e45479e67233137875d8fdc75d9cc124bc184a3dbfddfcbb08b98a1d3fb59c37877dbe59fda96a694d7116fe6a04f5b6745fd923dbeac38d297a5f1ac783ef064084b84aa06ac9c278de8ebf487cf43bbe6b85754eea4bd99d734aeb6a85ef695de93804da1d2583722d664033770d476096e561a2bd3e8cc878481ad15225cdc2dd719cee96b4aa94075cf9069d988e9b4a4ebbb4b3e5477483cfa696d21923792474ecfaafa7a22e9a8a87bdeadd8167fdc3091f97eda4737d18fac66e7cc7c36d428b9dbc7f37c22f676ce932fe0eaac625b5dc5d3a814fc01137e4eb43370b5b5bb0d53378a5b6f738c874dc7a7f2ce5988cf8112857a4bb4310788375d9aa0f6dc59958c7f0db809f688f774d805c334e9b1aaf7886ed5107c12618b81cbefa1258c4b11f3eeb67dccda9f4084b7ae3473eccc4f9ae0c7fc059926f25542a1ea8739bd186d4d4f30ed8716b5d2f2f8f923d6e3beae2aabf81a598c52228330ef93963dd85adeb6bec1d76969844e1a8d295964fa01e5840753c15674c871e990aeee1729e82f98dad9ee9792bece28a8c4df1da9b3cd43301037b192abdc6a4d99bab87452ee3c77a7f731d764cfb463a96c4018ed8d4537f29d4859e3d5987a3dfd4d94c796cbd5555fd10e9b8723a6165ccca8dd39741e944199ef291facdcdb453529960d95da40745a022643cd1cb70ec43da6e29ded04963ee28cc784e98914b5bfd7c43c76e4007d49dda88c1d8c4fe05a388f4ebd9ff1a394c0e547155c79ff4933a28568e27f1345e5eafab53b87ad78a1a62b114b9977465342a61aeaea20c236d3788f50eba35f8d36ac0d58c91198d497461028ebea1cca0734d61976a7aaf26eafa2be11f1bde5b835ace9ac1fda361048a9b0018d96c4ebf7d6e9af3299c5acbd449acf7231e931f7b6529ce7d605f405097afe6edc6ed2aa2cca7915fdcf543b4c8278f56cf49936a858f751ee17c8db18b18ee08b45a0f8f8bf93dc13fdc55fb468d99f8e07b93616da437b90a5b52896330c53cf4ef8bd3799f66ff8bd6fd406638c18c8c9838c555aacde5dc99a61ac330fc1e65493e571fe667f208689d2cd45517af836abaae47e84ed6d3d01a918733362a4f632644b9b48f6ed0967e6ebd5a6e3ca77dce604174a2aab6ce720befab3e480e235be7acec2593fcce05e3e6c65262ffc485cbccf416fa82aefabdbbb3c98c5a6a1f388a236161e7b82839655379d8c0145bdc27dbec33c5b2e437628b452aaba7f3ebc8fa83d147469d63eb8294fc3cc9096781e58d0ba64d6dd683791fb530f9d77a5c5648aa6cc034d6925dc5adff6d3c0afe658ab18b86b1eeac4ae35ffd427d4b9a8fc8db14bc54ed721123a209d67999d9d35fad7f3485ac50e35f85379396d6f0defe59c3a4cd57fab15b53c8f2e6aee06c6f2dbdff0d99543368ab70b9bc3f655830d7cb47a6fd7c3789ddc893ab1aeba4fee706adf49a594445135ab07ea902d9aedd178d88d980355e90d72b710cad8077fc868e86713be6bb4575fa26c73caa1d890413f2801b9c68de70662248670f323f4233c1a3c0937dc86f0b6476d12f426868be1b +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 97beafabf2c8575586487c7a80e8af5fc50f94b6051c1bc66a5ae9f66be3cea7 +public_key = af6c50f25fecc9ee532bc6afdfe7acf2a43b3423dfea7ca5b24d9ab10edefaa5a5f0e7b9a73dd6f1c53e82b5c7eb4f7009c990c03ea939faf70573d164445715bc5c80b3906739c46a4c4cf20f4776037bd0bd716d1ba0021d6380ce77fa1768e73cad8fa4777e13aac74338513c516715b645e3bed82f382a5db1334e8fef8e639d448eabd55a94c66a34eab68ddcaf1c756a4907bc406ee5aeab5320f3b9bbe84e0d885fb784af7fd8c1eaccb3774fcf39c8a24c59d3a7f8d578ac7e9f2a95ce8d6cab3dde23873f751636ce6d6d819731cf1b812a0affd24381a52b4f5fba658618a02e14e8d78f3e804e8294d8e032936559a77f9d0e4d8a3b38df8bb17b7a8c3b45b53ae6db0da9f9a21a4ae3039366f894b118fdb5f3cf2f13381d53827b5a568fd5f34e099d6b94bc1b0e3ddde944b4fae3ec5fbfa98d716b2ae0d98f7a033878996e55b8ff944a63a2cd3fbbd629d7125475bc09b0ab86f22cb4c9f2f8da00f9b71bf9705e3576b5a96f6229ba1ded6fa2cfd79cf66c5903defb88c1fa5efb0b2ac059dcab888fabe68fd9188bb939dd8bda24da0fbd8de0db3f8558c403d7f5a77aa1e0563a54a77f32aa30cb88df4e66f716075763e9c5d57d564fdefcdfab424ba970c62fd1091e93741a5e358cc7d73d64a7183d9abf8ddc6bdf10374eaa8ed193385b856af5923dbc4a0d41f76a9d661483aa668aacf5ec6178d4b5e7c1bdb8762b73b39f17785af94b356bdfee8fd83c2b71f0decd44cea9704a93e0e5752e99a2f01e5b6ecabc74dbd3bc19e038f5701659a0d4bc693815d80d6a5c82bdf73bf9e4996ec461c47cf496cfb235f6d3fb8ba5a3396ede9a8477611c8e4b76d5c8191ac1c829dac4cef065ca4ccc879d5f34bc4479a5c8d4693d8771b434c4b8e8b8afafee02ae31ea5eded11c505e2f6723fde1f2073b0db34d11ded4b0cf656edd53e43a8db8dddfe705b0bb6fd980dc71e844e27c18d77806cd8f9fe44e5d448dd59a085776dab69e42ebde7e8ccfc11da140c5db51ed9f233aacd3da972ab4df1e1f41d718b54c7dd9d3daa090186cb167c1ab3979c8356397e5985034f2da2935edd9c8c44b90e8d5d4741e9d26e99576cdc3293d7e2017b515f33d4d38f1bf44e48088db21d37fb6cc304a3f4eb12a42c9f7c9e086bd0f39a1959d58f1d8c8f0739c230beec64f429943d80ae732b85daf74bd5df6b46e0f27b678668f955dc193c861e7e38d65e5cb05b5ff63bf9d21b4b33d34771bca88b3149aceda8553c5813bfa6f8a99c6577defd6f4ca7e54cf80e48fa144bd996bcf41e49aec97734687a7d0eafc7133edd94ec8fec9a8fb686a7c08e207be6735d6559424c1ae7a5a5f15e5a8074bd879c1cbe6d12a3b5a7079bbec7ff9de7676a876c02f26f0d059d5341c95cf6efd20c4ca11f7c08684473b3e31374d760d24b4947cd269ded8a8b96f699634415bd7044448090dc6c3d4bbdf339c47e9b1660b9ea039bcc6836a6fda9489e76418047eb3e99d40aabbdbcae4032e333dfecf2cdef1318aab0a1fff95d3eb12abbe67469bc34ccb88c8a0a965902e47494c8adbd573910a97377b764ea7443e73346ef9bac03777e1db236f8abdf5dabd9931aa473bdd4b352ad0c5d3b969134f04ce745f77f13805fca47a542a4fc1078892ca3b9509f435d96fea3748e0b12393c8eab18fe7b6f3f4ad7ea88b89cfedb46338adac93914d674bf5fe6c2948fd659935a86692fd76c80ff9bc5874fc9fe4edee947f68b0585eec218b776a43ff5aa351b4e9f560b4f34628dedb08bd57f5342783f49fdbef036955db0f69695a712ed852a35a3de876f967cdb2c2038ea1ab7b4fa7d8c5849dbdc6a29e734ce8ebef458ed9b755af11976b73cb6c8594a5df3fec44c6eb9e4f52810d7ef4ec4ce3b34beb733cc74aea7f6857218476aecdf00d96658c8456576666b6d7c06ead366329ee649457d298b81b06778acf85af25eff4b97239c35ab8688a8d6b4469fcc7e53fd1d5d57bf3cb98c883c5c9c88f05555674e7a1bdd59e403f7b69a74f0d5af50aa89fe1359e5724ca02c38785ae4690d6fd891364b85fada814d2128c623d0839a1fd9bd0e6a37c7f4070a435674ec5394e5f2a97701c5492d2aaff2823884496af9edd6703d8ac2c17c4ddf5561590b63ff78c4995a31a18d861a91c43c5dec3705c6112d81b81555f7a3b432f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 75461decd34c50d6a094b4a64fb75e5e9479f8f9250d82bb7d729dedeb2d4b65 +public_key = 822a87a23fc0b9e3c13bb45e2eb5bb47535099e37019b3c7ac3b81c72f5dcc654770defe7b8ecc80c9a508f5d7f30e632be9c1bf27317fd97275cc3f481bc7c6cf5a4b1462767a42cba43b153cf76ffc8db55a96d428f46e0bb7d6ae5f0d883597e9579d675e816b8333097787d6e3cbcf9428cee739e650cfafca8b198c0158caee9971894b67332baf761caf89ce6bd11c9f1dcace7b83a6bed7ef0ed9bc2807d7c39bd5733eb7c43da4b998980387f0cc98f45f8982daea502ae3de316cfca477a3f055d84356cb81184ed90734e0cbc0d1553adaf5a94c2a6d8b5e566997c735bc45fd4d8241357da2c38c8a15f0fb5a33e1d5c06cd8dc4f9e314d08599773f32517b501097e4cbd9bf814a0cdba619d8ded249c933d143bbe9fc1647f4b523bc05568a410a5f380177ff6084c6416bc22c637b8eead5873f4103677101a74835c4255b89ea1935ec8b838271ebd4de9e931c436f9b9d9af4747dcf8e1a2ecb63f046b412af01d1b4f1254fe73d7703f2f896b9d47373d8453b946f248a6be1e800797886af555b0787d84daad7883c0e583a7b663dc7d0a855a9d6f0f4f3e9e6cb600b9917768777b7489dc173fc67551ae9fa26b054ddf13c4f83b5805b9b7ba8f95147eee171b9ea358abf9054de00f629a397489ecf13705a9b86735577493b86c326e857eb816663ece417cdac789addc813d80385ebae32f92af87cf8fda4f2a9e418948c0b4f54c19163dc5be95b76cc5def67b5288bad948cf214cc6a11c6e1bbea5babe501baa75cfcf3531cd91cadb8c9b0f415f8e6ebf7d8422dbc2dc2f4b74caeb843f7c8b25bda3cb7127f5c5b963cf3c9abfa15c952bdba2adddec9d377a89eab6a96a65cfba3d722b661836fea78770d5fbc556789ce5de3bff1fd65f0333631f4b8466df462c64443b88f3135f585a3b29e450c1dcbaa7c9e81133c9166ffa90f56e595ba11ec3327e6a83c8feba59a5ec4684995ea64edbb345137ea878f4fbe7d763b27cc430ab6b078e73b983e41e0a72cebe85b273d71e2da8f5a37dd08ab6ea8af63aedcac189dd5583d53569addc1731a339488268873d89a1490b78ef4d4c2e93f8004d44cb55f1a68737f195634ab659b919a94e268131daf90e5975641eb6273b5dfc2c3adc2e534609cb2fc553907ae4d9cd79f497d91587943df49a3adeb465a5fefae34d33fb9ade56cb6ca9cfa93fe458d9940d4bb5f054f97d4e60a2284032458bf909c31e47a27c7aabdca8e5f1ecccadd6f88fdaa6c13e6f2cdac38ce89fb31cb81b673f26e5709e08c474cc41f213b0fdbc556395ebbec682d915ea5d68e48b7f95682ebb972f4215dd3e8b99d21b98b9a0a87dbf15b4921f5bc07c6ab6353560e6e814ea3cb2f7f3451d4b074e3f973d918034e3521441da27ee6b7bd3949e84224ec87ca9ea4157b428e35ce499a806efc0954457582b6a905fc4e20fbb33dbd1d1ba883ed4cb127cf137a75aaddaf6863ff3742cd7b027a1894ff0ca9a65585a5e0c0847baedd1409febdbdd902504785f9f70173f8c99daef3d2bad906b3cef04a3599bf993bfc5882dd533bcccd15ba1aef877c3a565cb45fb7b8568811d8fb828b42d46e2473970044c6c4a057f18fce3dfbfc398393c19383604ce83b02a461bc9b8ac0969e14e79e53c5a8f54a556f542190f4041137449dd8401fba8e4bcc09cf3b91dcf8ed9bb700cc74524cf51ad3a7c21f43398f85c7a4e38771fc0c76a43db3ada379ed1e88480aa1a5f160db2a17b5704299d5639b4789dffef34bcfd548275df6c476c50fff8851f29ba5ad66caf066ddffcf140dc97b93d77aaffebb4f87aa86ae6a81d7e3597a1bf4a5be00d8c14bba230cc95e617ebf0e6a25607566dadd8d725f23c483dfd6737e26afdea59deb66d6c6f3fb8074ef8bcc6e81166a93da7626d4f73157c47b6afadb1d88441e76ec9fb6efbda9fd084b496d5635794aa23a43a8c4650e05bcc2f4e5d775971923bea4474e1fa5fb7e564d091a430892d67c10dd9211a705e4842789ccf653bb919e742b65339aaf4653e474c10583d9329cadc47a6f02d58967fa2e6e4ad68dd3abdf7ce1dd9d15ba94ed9c69220d63b423cb5daf465d5e3a9d29da6c9d84fb38e41f28990969f50d58e62c68b81356db04a88e26e5bfc4514d83cda2735e3d3f1889578b626b002cd859ea9ba6fc856a8030f6010c780 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 2607dcf4fd6ca1c614c21b5e37c24981c32b91c8c3e6955777da8a3f5d9c9335 +public_key = b9d8fa0dc3efb3c6458ef4c21b5663ef7795f4c36ae77a85ed93d4a4066c4884e323ebc5e505de50b7d4df2d6c4f6a571abf7b8fec3d95e77f545a7f78c57a953fa32984e15a8d8d265f32d4288032d658bc483d4afc3d6ba94f8bf44b347a8fd4bb7e2f5dd0dba9d9c48fd920b4e0a479d5d3a34083c3484cdf448f33fed825658a9bf5d99c995ced866a18c01274607ad6bc0154a4fd07e042768a5ca86df42e327b99d94383648a236d8f74bd3e3854b21dad8d24d3e428a73daae3cf29a6240c30cc53532e7de52ff560d1e3c3205ac557fc76bcadaf547c69ea8e9d1cb4e2088a8665863f64cc98f3853e2dfee5c4d3d80f1df5437e4efc1db8f51a59ab954885c3e3b07dd0fb9cdb23bc59ae73948e8b30213c84240d9847afd0c8d3aa1f78e60963b4dec95c20d8f90783457c06b7ee6eab1707770969e416b4f2e53afafa2c61ec4932df188a4a1cd56dc854acba8ace5f98a6dbfde04c7c3bc7bc734e57fa2b9d01c9bcb16f4d79f5f988a4b783e8a6d7c45115c548e0eb474368993da7ee59e96d5c2a9341c4df461752dd73cbff7543031caf380e30311c458684a80209565b7544389f6bb20840aad3f9392cbc508df2efbd3580696b23abf993c9927f649aa838c4e897f6f9633b873d977e85350cbf5c140e61b7ddf98c03bcb387c38b4853cf8f58176e75634ed7f3d4c5a5bf66c9978154f7e0f11337f05986ea2eb20d2cd2d0667b43dea4f19f31d7d8993263a2cef7b3e6fe53aa79ea12b7ad295e3ebb1f3946fd651b83cd36099047b997ddd5e28335f13875ab7ac39b6e969693c4746f19a15abe9b7a1eabf45a9215f5c9eb06dd47ff54c37f85e959e486773ca0f8848e23bc16d83155d3d2d0f4f50486f2278debb3a446316b919996db825cebb5cbfb4f535e74c493a80b3faa5b635d653650cf41a3ee366f4afae40ad07e76f1ef64428ffb6c87ae883bbfdd04c6e0ffea3b48e88e6083d05e38ee91d65ceaa9d79e1846ce89c2fffc8cb38932c00783ca9efd2609ea37e6966edf642cceb494775f5acb46ddb3bfe70c62e30e8cda9be6ff86fec394490add34c27ccafd38d3e4f392fedba006d672021a8eec76cd2c6bef2bb65737a5369365c8ff6231b78669743de853d7538b2782569f629c88e2dda74b795ccc56fa684f8f44a5cfd4c1bfbcea4ed0a58cd2dd13c5af67e8094d42e9e8d9effdeef88e66d5579fb18dfdeb07b6708c7ae2757a005dfce329f1040d59c37ad14e0de88d59c7a7a7b1c4ed4bfdca8ad4697bc2a36b5b2e3900249ce02a678009a4c9f8589ccf4810f6e1aa4fad469afae2d8af0b3b3a7d84efdaeba89f3b6c1fe3d2dae37f2d54ba53fb78e14d991f4c468ccfb6f527cb985a9ae19797cf845c548d3d14bf67c803ef448f791f0a7ed27a96ad6d9b40c8bee0bea11d9cf44cc85f4b79f607e7ff3ddd5b070b5e8f4b7e0ba56657434296caaed49f8f32e5f6d00f81a57960e5c55f6dfbe636494e3e6e8d1e4431fdfef5adf544b929d4cffd45f2dd88e159a6cff792005f82386a87277953b4c4ba3714c20bd5de05cfb2b628b148dd7292ef4e18a6906b63d03a3e80ee1eeb2c458d7e3aef4604816a94b83c93c5160b740e3640707a4fe9ff65ba45ef50ffc7fb75baf8a8df137bfba2f8ecac4bf7c2653c89b65ce236a3c1cf875acef275c4cddf6ce4c7b69e951bb30459b150983fbc43ddb7dc32215fddd5f9f8ef69d5a79adb0f2e4bf135f765646f6c657aafdeefa785e83c1ca3bc7f61a32d5e47dd6424aed3203532556ca7fbf750d1f88ed696fed02489bc3dc976b4abfd1ef3583837a8db3f6a38bc5e9a44aa9da471cb3e380b4508ac4162b4d7408e5507d33fffec823f9ccf17bae50a5bc7562a4e3f85995444c788de690143f98ace5fdce4b43b2e5da77dd0525ab32f6bed728846fea3ad2c19fe282fd8b6f833e51c701da8854b867e0cedf34a3c9d991e7c58bceac9bd5f5a0df8b4a78e9487eee263792cb891e9d5abf17d6f71fe49482948ec6f48be9ee210765f93b4cd49daa19a17843f6ed409d6638dda571f78df03be7183eec7eaa542eaadf75cdd80bdadc793e3e13e5f4598fc9dbc453a066dc556e7bfa3856570b570a1b43f826574596e5be518dc8acdbc7e99a67b9ebb9b8cb821f4f6b843f7542c5ce12ca13b5b7f6c716e63411681fef0ff85e8cd3fcde5abdbb9e4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 38c89bbe7145c29e9a831c11431eb9929cb24fb4992db20737e4687d397fd732 +public_key = 36df9c0e6f63da1fd38934dd058974e97eab8e43319678df50c7b88e6a3ec8764b4509c3764bb4dc4d4a8ea3f413a3ddadbb5c5e6da01539763428cdffdcca2ddd554633367bdf45e069bfdb397b803c68c854358368ebfcc9bb1147a2073f627757d6dbbda015e7c57e244b134d6b0019d250cd6181ccd58b466ee12c3ecd1a9840eebb030774db93eef1cbf6549f45caab4d9954bb02adec6bb66534b95cdcd9fa1bfd75be8a949829558cf6f5ace38b1296a75058b9a309df75ed4ff398d106869899e6844a75d4b9adcf99ba86c72cba2656473aedf220bfdfb51f82828da14bc570504ad33eb379790a45809f77a32eb7582d537205cd19969149ab9d2b87a1935db595186454c99b46ab8f033652014f4b4ef8cae2569ab4ccd7b98acd2f5db0436d32f967354d7db6c2fea1e03f406c296b0e9b80679d4fa2184e0edd4ad6cf7f9ea5f774bc82a923ae90888613144bbe376b392efa836b7d6b16d6d25abdcfcdb471a834ff2dadbc78a68cdc5619089ae5fd9b32947eaeda996adbcf1326f1bdb99173063f99fe380b3f4f856f6212f8acca44f05299399f6fb32113d191379b8bf96ccb336499dfa8bf573f44596d0dc9f7932ff026c6e264693be3a3a7160a9e600cf0c0897e607df483d6c81f48fe3e237d6709b82056976def3d67cde3ea48cb56d78d12c68dc2cc6fdc7aa1142548e1a4de3d889c71e990fcbe9d50adbf892b5cb873ced695e6e544bcc4bac3745fe5201c617767757dd3ca2b0a50851dff175995abb6a7b88892d07b4ac68b974ca83f148fff028bad4aa9400f0b755fa3352d9d673a44be327845d1ececaead996d57b62fbbe032ccb6eb9476460af6d06495a6577a17e7d7b11c3e8ff8f326efedc2997d0ada9bf85b45d8e5431ce5ac572cf53754e0909eaba1bf868d7d96c93bff53fc5a0d996cd94e4cf33dcae4c5805917760714dd871b8b1eaf8837c7ab177369fd3cd5ff4ddda0d84e97497cf60ffb36b966b597f2673dfd207740d47c8b20eee8ab49dcd5ba70bfd9a0bf8b59d15be65575a079e8fbd00bedc015340a2cda0c77c7f92fcd2999c6f10b5aab063181775b804fb2fbd8e3b2fabbfd76c0a5d4942df97c449cadad3d3ccf4790685438258ad09356ef581c981bd6e229c94a130372aeafdd2cfa5cbec684f8986a7ecaa94275814cecfd7ff4d3c933bc0038b18b28cc3eec9ccac49bda2fc446267cd07b786df3e6012330af7dbc4a2e6fcf6b4c7ebfbbab65e53f3ed89d04c3fde934955ba216dd47398ac173cfb1a19cd59728fe88b3f7d1fd968796ae0a03772adbb407bfe0f3fdd48115e3f0a7e2836c45cd1ea0d8c8433c8e3e0e8aa380dbe66fa93962afb6775f87aecace40cb4caa064f6b547f0084bcba7856899bf21d46fc9de766c7d447bd1d92543dca87a8379ba944323c638f33b165ee3732bdb92a134ee9d454684387790361b31b53c245328cbe9185f9774e2764fe4f9e12efa4852bf22c4a9e504531fda6ffc23852bfa3b4632aba9be4595c05d93d64522ac93b41c7409acaeb83ec51cb7aec0cddc24e35cbfff95088d7b6ec99dcb5559c44553dc458f2693af43d13fff75c7c099e4d847551161d52c6846e2f5562022d5dc23dbabd9483dd8fed4204fdbabcacff1aa93d05a2ee54bd3a9e86bfd4978a7a76d6df4008fc55ed4da6bdc899ea0a69cb2facdf8bbd14a5cfa3ad65887f8427865a343ec60e77b5782c37e79561cc7ff195656d8facdc8c2c560ac95cb0b98600ae784fee7554dbfbd0d332645958bb68cde66be3d274ba9a655bcd8d72d678ecf556c7942dd0b94a94377dff0a5a6fbf87da2c3f3612bc47190c9a88d4588d97c099dad4b3b7377867a6e68869febff58083cdcab4eaaa798ea11ba7f6cc4839ffaaf9c579608e37adbc4c17b491a69f55e61ba078a9b4179cbc89cc3c9946c65efb9ca5ac5765f3570f673ac81ced26b5af8f13e266c65b4e04f07923af49dc6eb4dda0eac745acb4d2ed4b9b2de754bc3b7a6b54c2159baee1f560dd6dfe4ee6b3a3d6b4c1bcee06dca9edb6775f5696d09eacbe9f93be7a82254f34de9869b0beb26973d0331aae6c9332850e45eb16b016f87150ddd020e4f9f85f31f74bf6537fa936f4d4f0d57b79c6ca8c25cb7c8bb89284c4e8bdba9eb33c0406a8c39eb0d5429fcae286a9c56be5839c10ad33e8a58374dff41feb +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: b2c35e33c72d90182791f0e12a0324f5b216efcab2c8da1bee025dfbe13f4152 +public_key = 359f51ed1f3ce574a5dd6ca1d14a967f7e77aae64d9678571d7bdb0769935a2afa8dba53db6c5b7077f10426c64f53542929b31d565bd25a480e9d65d79852b1fd5002964772465c3fca5f8307308055603039b1b577f6efbdfa8dce9c5a04e40afe45001dfaaee3d38c17911677a2641f42281cf3ea8e6185c75e5dab43b5bd4c8777a3582e605abbeadac8f8f274dec6bf3173f6cf5d37ace70fce5a06f208ecaa540ba465a4e81ac9869517502aa73ddedc4131bbe52b53501dd4aabd79556486d63da48c4978835f2850109edb787e525718dd872473554df3994858533e4598fc6eb1f93feee6429eac96d37c8422dac30f473b56ebddcd2c64f2ce8f91a5de7984a88b63979c4f4c6d4a36231de9881b5aaad7e5e426a6976a3010fe71a29778c83ae52004fb2f1be0d36d35614aee061e720087be146ac9f0cba2c29f9c0a6dbc16065748573d61fbe95de53ab9ec802d247b210b747d7dc45aebcf3a2f9e4b938eff354fb9f65cc6c5fff0163494744848885ee587d48c5d6a962efed45466252783a50e6f31ef9b1928acbb44837a7f3d51bc3b59b6fdf46ca75f64bae27aa2d9456c67ef997b58f7504f5004e6884e296e18aeff7e387db55f681cc3fe72175668a7f87fe9c3872f325a8c6716e5a767b6f6d98836cb779983d3ed190fb0e0bca04bebbfaaefcc034f9f987a31f83f74ce63f0e2bdcff8154da43ebe8fffecae8c5038aebaa4956b04833d4928a1c42e47257dd24677e6ea9c69f413fd3336dc338cb13fad9e5e4795780dc33bda9b147a3f3f64b46c933b7f4689d2797e4bdf4df43cd02b3f3ac0e781b7e8c8e679c949ca730826b3f7cf8813bcf4ce7ccb21136695c75b3e0f8fbf6ba94f6ad6115c72bcb879d64cca2a3d9502836edab5c7b2a79a1f2fd4161369c5e8b63dd5e3d0aac9fd366388fdaa2e736bc09b4dba05414659a6947f64baa8fb419342e9cd63ec64b28663cbf5eefaa5a6ae5ab9d56af7ec4f5643cf08ede6d7a8d2aaf50bcf7be274afef453dd176c46289ec249a817339e42d0dba332851e51ad1660a47e35bbf399dc23cee73dfcea1d57a4837975c14269707384855e897cb44c4bef532a003409aea41d2fc889f67fab21cd40993effc1ff2cd7f46438a95fe4a6e335ef689bfcc8c1963e395f6201aa9d3bd963533b2fb4faf59f6ed53c4bac2bcc09e44c5f9c4963525a7c025f4410d749f9ee873a391f723e5d1fa60c806390fb3aa80295e77f8d158c665eae6e28337ea1997757e5c4dc6893ad71a63a1898fcebdf165db76e35f665163d16d9dbb9c94f3cf9aed371338fec4da383cfc3f99840ea96f99246044f4a5fa5cbb8d7473110b4a5248f55e5c3d43463b055bbe473eed2e05812dc46bcd539c57ae5199cabe5029f20dccc1a828a5e0c37bf23da6df86fe3969e5654b5bcb5c3eab7e42e27d6697b9914a287513f4d7ed376354697144b33260eb966316c05dca8656ad436bf47967779d43cca5edccb933ddf3351542867f68a57a74c4fbd8b88d9c289c5543cc3730594b3ea33de7ef3a570dae6a68cde46e4cb1b8dbd8cf379c1834c349c55fa73859c5a3ad45886286973f1363a5a536a1bd8faf26a939179f873cac6238e26086856947fdcc744185a55fecdbf620bdaf1ee7a50dcafc49636e09687f4618667ebe36bb39ef4b5ce29fc763528f72062eacf1d67c71aaf83d5efbc9165d9f883db9049b9848ea451fb659a3e6cb39986a9c3f8c069aedb9b5e13b82f3abc0c1cb70dcfdb5d1d66ea003676197c1be3ce5bc6533a428d4ce1ce23fa55a87fa344d95daf4f5b130cdae371d593e1bcaa1868572bfa618db9f1a0dc45937679844ee4263c70cb94a9dc4fa04067f7a63e0c606bd7ff661ef45d8e6b6b6373c7ba0c872b90e9676263bfa1f673c59a4c51372a2da8603a9f22654518063c3e2fd7cc6c93e91ac6b53f3c04516b76da651253f5c59d436019e923d1883977a52b328c0d508d0f039696db843bd1fc506c5f1ae34c9bade45057f93a6eb99686770dd587c92bc65aa3a4083c4de90efcf891c515238e7457efb2598664e4368775572e5ad3a9ff53e307caf081ca897dcb4316ea404c689d934653769ad59d68475a8b0e7277bb38dac77ea7b1a1b6112ce574c6358dd6a472c49c264965f8cd9fab7d1fd2c5f4c3a4ffcd66e5b05a4879536aee3074b69c3d4e6b1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: afb7d6dc2b7eb6d84acc080c1be63c98afe7b07786b5801f716444a3e8e64800 +public_key = 6b5e5111cd76dcb486eafac9040ac0690b79f5278022f59bfd3e6494a782d933e0489c9f93f6e585b3bd2a2e65f75ea7017a994b35e2f0a5bdc8e77e9bab7e5cccaa7bbc779d445e5f16b871989974e9fd2c268bcf1d764d0e46a683ae56c47c4654d57ce8b4749d31879bcc288be94cb36fab79e6ff563249dd4851c74a7fe87f4fea546a565eefe5d7457882cf288ed294783179577ee898bfde8c9776dbdc7f6868afc9581cc13bebf63dbb414d695990ccb897fa31984734e3178e081856628bda4bbc736a235b3e49fb3996441198c41bf8cef5ec64d2f5c4b628490736cbbc076d8ebab4cd1ab4936935fa3aa40da4ee85dbd87755f0beef3f24739400bd45b2bd56d9ad9ebb49a3e4c7f09037c94a57d84604697185bac887f123debcf22888f165546bb699b24bf2620351362fdcf677aa7f767ca049b869137999884e3615e8358852cbbca3f90643764cb310ae6cc009766c43b89e599203d6344c1d81e97c86329dab57e4f812e6d3ab66d68283cd30f9fe3f7a898a7e5479cc3735f3cb1ee9e20e8b8c720ba35bcee78c4f6c413c5e89eb5483cbdfbfde3a30dd783ce4bdb1aca87e9dd00dd48caacb57c74b802c7be33817ab099c84f2dff383e57a759ac6eab76df67876e369ef32595a57bdf7f2087b63db7dc138cd820a84b0a4e1db2f84ac7844595dba820c31b1ca97f3e680e35fd1fe77e54b935a3639fb18857007953a848c49d0236406e7a320243fee64ac25cdf953dda02a57ac4fcae9ce373e348fcff71e60913ca55a19e696d782f4134db83958ded48e681546edffbe94cd9a9bea7b3f04f1c84a9107f4a75a3aec40cadf9f6d60e946f18f1cd904cbf9aedf305cd59e2adfb10fe667f9ea49d0de49d1d8bd62e549e08baa1ccc63b8cbc735af4017e4a099bc5a93a8f8ffc8cac5fb5d388ac8624fe6f21942675cb714f3fcfe6663584e3773ab5f6a2c405179995e04f735cc7db7238dd7d4e0bb5f9e7d7391556c5f604c38fa079a70fbc2e8b393306832fe2a8bca99ed891fd9ba7e9eb5df73268e408a3896745e43462a45f5f4f67084bda97a9a5324a2e23a714c23f2f4368be3ea521adedf56cb560a78786c2a51db18c79f25ef3743a7de67c43a35c63d1b70e17aaf4e4c48e40da73facd7bfa776ee8797f803ca148aba783affac2eda7c4440c589e355bf5c1117e06be979b2077d422a6d8edbc04225ac63c3705394c9fd5389c11855057572fc3d3ffa365cc2854a3b06f1cf6fd3b21bcf7ad9c6764f7ca1294c7c1dee38bdfbe18473d2be3d9d5fb9d59bc267ecb1fdf3bb97cfb374f7fe4ccd89854ec47adac60c1955bd1a5096f371bfd7d9f06f4078139feb979c9ef48bc0bb9101dda97198b466bc5821978c87da85c4f4e64bb6ea010b5fd99435dd28e29a6b379d3f32f75c8789d486ee3b6c85ed52b65d66e81c409c28fd4e84926b4fabac49846fd7b6f7d3d5e244e30026540a6571d3cf41c38dded5ed73d036fbf1a6e64d7ea62c9d4938cab91dfe2fc8e5f7a19ec20a86b163aacaf3ff5d1814bf2d435dc798eb101fe9bc04e090f894e74392ffad65fd1b69f2e959cd0a5851cdd2cfaa8e45dd867a16ba5b173711d77f355a71bdf7674299a91dcd5f2c87fa539de77f2551b6f4a986f3bf584a899e755464166c333de30e694616f76cc48ffc999536b7de45dfa5a27aa591ee994332893fa87acc2df67113f8a9c438abfa667022c9f842c73b15047d6ebd8e02a3da6348a7157fa5e04bcf866d58e785c10d049af83736b2f78f90adb16b0b7e897cb695fcf0d37c35191ad79a57cb41ba5a101edf4cb94b585466c9b8d2f085594646e238ad840d43487bf65bda0dd1f258dafc0cd4b3dbba70fd53aae4981fd6e9d838e8252cdd00ddb26914f902b4c28fe6578709374f2461b00ceb0054eb7868fdb2a76dee97f9be17eea3c9957f5a3e7593462818eeb8339ca5cb5ae83677d4d3ed7c1fb0463b57bf7aae0af3901a9795085b8aed0564d3755589ad82961578604ffadd179edf18f0412eb86bb3cf8f45f8ad75f437ba8b0c79d1cdbb748ee8a2d854644cb694668b9ce42f992dc43f2d8a7ee655be3b257a0974ad0659e04b6b4e9a16bb8cb79a42968ceb1cbbbdfc6c3a2eae35f6b22ac3c2f868e84475b4f3befdb3158b3bbf2d64f07ee186fc57de21c26bfcf6b645f83cbd47cef72136aeb644 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 28f5e9dbda122b2cf8f3754fe9e0c73a84ad4b0c093522e0b62cf815d60bbc3c +public_key = 81d55ab23e8e2d6dee7d56fcea98864e39ec2d7f7e6fff34943f6810bd6b09767a2cb7fcfc078164ce40dd7e51d869a9c785ac62c6ade5f7519e17da08269938c7796b54b4830df8a0c63ac24a6a00f7a0e7c65844eec1fe0ebd12df4ecf3c8b90cb803636d44d03a39fcca7e918ae4195e2631898f417c9ca6e805544da05f67b6f1cb7cc54e17bfd9922dcd7ea6ff286de6c42a7b2f833b51f7fce1c28a3ff37ab697cbd90d96b3e56dc57ce734f2be1280ac33f27db3447c07f99a68f9a6f1dac608336855588ff800bc7f54d9abf76b0eccb6da9fd825dcdc696cb911944df6643e7913a641ff369668fd7194b65fa7bedbbba94d22b512b5687722da6eededdafdbff727349e593ea3dc8a53acda55b5e7e65a8feba9793012d608094b93e58efcb8e9058537bb3cd51cb2c3f0e5a97e8365a1459efbccd3f603977274ad35855c4159efece238d254ba7334cc5bcf7f56726d77766cc21d6e7a9c378fbce786c1cadedde394869e19878fcbdfdcb098c504dc4b16b8f69d13a70183eb29b7e43220566000591982ec9951eeca4cdba8d3e78a6e8db2abcc9f6e6b78818e1894cc6e63cd1351eeaafa69569aeb95bb43c816ce405b4351b7f90b856c50e284eca0cc384a4551f455b503488313a341baf5f80bad2c97b9d3267492d3e652b7654621a59f1aa64ae54e0a1099ed8fe4aec1d485f794e61157c1563ca5515684db66eb99b76837af441139a0906b35553c9e3f3e7f6efc08487697574464a9936aaba5290efb0c0c6b058b791d94aac3bbce80b16d9ab36b27579864c5bc6d8288292387dc4a3efc889a45fc8bad636ae2bd493a5ab40142ed84fb57c6fd88c2f0c504d5c463738ba7c5a97238ce681d8aad673d7ef648748198f6fadc8fd6ba7ed4f4052c8a9b17dc572be36cfa86f199542b12cb2a77c6973494bd42aff0b55cb0f5ef2d0958026b7c54bd4fedecd40cea8470f738f9ca9e6c158a9ca6457d8d9a0649337a3ec7347475eea8c34e91f7636b3897c547c0479a1e22bb2f86d6afd97cabfee79467880dd0fc7b6f892ff3a7a29844476fa9843943d68ba4df2db6b8368394c6fcfcd257beff5b8b64e50407c552934976a8f4af105adfabcc53f936a8a59f825d6a9b21d8f1faf58c9dca2d739a600f68617cfd94bdf9207184607985e3bb784d7977c20ecd585233131f93fdfdc9ee25ec6937c7bc7fa4af43b3b1dc4774cf6f73bbd47373d8e8affeeacfb81845678a1dff0309a3c9ff3e0506e680f33422777df96ffb84c137a965ada3a57525a4b99b33ea8f22830d5bc588c0c705189b2e9ae9c446fcb50186b99b5a78313e301af630038df279987ec0584268e7327b481cbfc789f659530d9c5d9c8432959adf71741c1f9353d9a84836a5a5487392d19b5073a72869ba4e454c14ea5a9385e322b8592e8566236a86c6619648cee782ddd3749d9b9615fd9ec66804c64913a1438883efe7acb54d5d995d0dbe7e4ef7c6dac70914f35f5c9bb29e9d8d8098b11739b177d654103ec53e3a384e594a7a640629543944ae262558531ce93d28d794277d8127e97a91bec45e8b3951f5ac56f38d3ffffb885dd1c29d8258f828056509399960804e23adce83715d9211d56d599d41d748b2fd7eda154908838d5d3d3c0fa0a83750db73d25688c698cc8d78d144a80aba8372bf7c349b9c395bbb8adfb885906402ebbeea58b622ff45c4ece4c9e1e70865959665fb18a4cda1bffcd7b558f15f461f16dec40aae20b4468f3cd9282ab7b25f9b028746fbc9ab77a04f7279ea64dc43d59139c21eac58e58a492ef6e10974e6cbbb82af385c4f77e741fccb5194902257d3c4a4fa1b9d35a77db5db47ee68ceb07747b889a6c4814904638f9b36e84be3c9b0d8adf9f2bcb10d8e76f0346487f479e9b84dd28ce94199d31845dff16e4d02841f4fc92fa3fecff17e551f8fdc829c9cfa9ee42265f94f7b4dbe7b792cf44e37c3ca429ff70d3fcbe9366db59a9dd8582d6e69d859e51cb7c6ab82ab8e7854c7b5ce5b1557443dcfb1284b7fc8be6e425d07427b5aa9d9b9a0fed47956c46ee4022374440c7d415b896669e78d3c98bc4f3bbe904a470e4838849bccdcfceda8b9bb2efaf29169d5929e45c4ff9fb8c9ee705cff4e9efba7f9c6cc5f725321f208f2d0b39ed53edaba2c350ecba69a4ee1f3159930f65c8baac80b2e0 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: b0d713cbef0bb1df70cbb425d1e9373e9f7790fdc7980cc96a240dfc53f1e8e2 +public_key = d4f7656b2b781a2fda7cb68a80c9ef2783979e1a329584f72a4be54c5f843b08e088d947c79a58ae555e819674e07eb13ea48742eed3d345a8d4786eb54de2fdebdb01c3baa7adcf129bd99a7f449ecb3de61df0b025c486b4b5b115c78e9f7fe6ed6bf9ef9069ddb3d963c3b46cb9d1ba3256fba0202e85cb56655625eed3eec993469190b75fa85f59a6ced96d6ae647448014dfeeca67a3acad96a4dc77f36cf447f8e114f732148663a9439b1304b148c8e3f12c61654688d363e8b9cda8c33738a3febd2a1b6e8ea93eec87eec9ddd94d4c6a45ba61579c72c2b4effd468a6c679fc3d6b15d5a549b26e4bc8874304bb6f01b77561ece5bcc7c055441ad7fc34dae64f56e990a57baaa98840439371c36e3460d377b39ad6e3fffeb0b67e0fe97c65d541b73e73e3beb713eb30cc3772e97734ad3c5b6243b3269c490ed55a82c9f4d2ce66c294b8087f69304cecbd4d4ebf8bd83cd41ca1eb09fd7c2cee33fee1bb754878d8143cc93c8ec7e99323c6fe0e7a64c7a3b8d97ce594ff3ba5023f484e6637a7f46dd3f38a1eb743c4a33c51c6588bff4bec9bebcf5ceaf175dd37c3591ac7d836efe9ee7c4accafcf5cbf6d4bfe88bf3f1114a7724c797a2cbf6cbe43b40ad3a8cce6dd5a49a68544e9feb51786c46794c9f5239b7584acff69aff766ebb05e6b5506cf4936fb509b9f2e97c40b4736e90cfaf4017accea5ecdacb3386fd60cc1c55a4f79a60daaecc9390371e5d2f58df6f13e5ffdd5387e99f9448b6155a51d66a69415e9b371f33b2b7b34c84df0cb64a7dfdbdc48677293bdd1ed5898cf9f8e914d3098d7cfc83dbe0d8c614e3f2736ceaf3efe99ccca1de8da96cc6d2481f5cab18ce7a1c5e4f0c4b978581742c8550cc9c85bd632967654b968c0159f557cad630fcdcaf04a443d9b2f616a9cb4ca13da38fd9e6e1a59bc698dfde8ebadd2b96aa2ecee1bba3a05fb463bdf7a777cb91b1086addee7ded04be8caff54ec5442a6852134b5fdeabd60feaf58c18740b79970dc981cdb883cbf3f97fa33ea988b07f9a581cdd86d545d7ce0753611fa211c6b4de17b73a18e53c45e4db0ef2864e6a81d6efe255a3e04b33e3c5a6a0188f6e09855bb5d4f838cb8417c2f0e97bbf5b937ff5384813e274489b5366abedafcaa7636cdbe83f15a8dc030fd8577b5efb947692fb40ae7b36dfa83b728478f064e511fa58afcef1c24d56451654d0dc4421695864db64bc37ea79bcdbef07f5b6cbf290cb64087b72297a6c398e765ce9d9aafbae72c9448b33f093694ce62fc72d2475f38eab1b633432175e3f78715efed82df66f74a351904be15d74489b3fbb7a873aadfe95f9fd43932f72cffcf798f52f65f463840fc62658e99e7979f484db30d38f7d794cad179aca6dc838db4ad7038ab84955960b48233f4c5e0ec5985ac8f57e38bac5f2db895af2f9a983494f361bd61bd5e20f385166a5ae9ab844c288d08e47b65567d43055ecb606c2494db7a0f5e268cba81998697a5653e33bbe47d43edd3f49c32964e87bc8ccdb6d604cdf7387306b043fdb343e860daaf11d4683dc9489bdad3d04a1c2657f11a99d47bd40d0a5dd0937a4938de2f4a78ee34d5eabcac445845d7e88b54a8c57947b7ec1defbf664d59d93ba38cafe50ca3fef8e94054bfca01dcae8c846710392744ef3b0fbdad8a5f16efac4931cc782e886fb2c87bee3d5cdcc690dabbeeeffeaddf7468e4873919865b905b3149a4d686b7c96fcc014b578e1d36bc3b63449f467b09bc84b9fb20c0ebf713dde704aded084c86004db336576274c7e5475835bcc8ec525d50ec8f15f397f641fc9b1ebeac1eaf9009ea4ed58b8f96f3d4b893e1ff94e3e48a0ddc5c222cdb34a798713897bbe16a4c298c5e9f44933bd9806e554f76b76fdb8744cb38d01ff4f5cccc75dbcb3f91f33c454ce3664a807e8fc68255c422866cfcf6ef6f4f8677b4db807e3ab05dd1f1ec9f014b9ad69d77dfd47609f55694ddc4acd8e4e17cb7a5581dece7331eb3bd7ccd4c933b6472f4d3386a3140cadd445b632268458f63942455ca2be64c9ccb2ae679ddc1f524c34cf823b3627cff4e476f45cacbbcf57896b7acc6f6b702cf9d0047e473d7ff303db63b2744c7138363a93fb2973bb3144bba91de999eef108e317890c4b63e857c6de99266629d3267db18fd97baa47b2da64fcd1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 32bdcdb7059fe27f6409901980c080308951ffd90deffa8317b4d213a5f04495 +public_key = 2829b04b7fea204a4e64af308e7f8b29ce6652fa939d4551810aec7b44447d1abc83e46f9d5c4134ced4ccce36991fbbf9e83ae1e58f66f8b7c2e56d902cca69dc84203e372b783bc75fe723bbdb2cdfecebc7cdac0cc3c55a3a089cdd21b4f71264945766740bfd6ffa75f75facd0b45beb3e78f3d4cf9c0b5d9bcbafbe1486972ece78821c40a203849a3abef50f408cfbee543c3bef193417bbc0c5679c13074063e83eff63af43464b3ce47e4b86953c0fe684cf515f8be025ccde50454a093e3e915882dbf556feabe8ad37f5013d723dc5de5d0bf480d8b74874c7896fa1bd9d83e1a8438e546ff9ca64c4a53bd18ce558067206056a103ffc8a5ad0b2b9f631179b6aac71fd8eecb635b009ff8cd69b51b5d7aa6839a1adaea0da854faa39925c06d7af2d612fc9c7573c73394ad33cc8417e4f7db29bb6973546a967354fca3c442f3a6587e3e26df62e66f1053bca46a3e248386114564cd5cd861d4ca648e789efd4f21f8ad75dd8b119ab7bb3f467abdc6cd3d8d8d1586199ea7be6e75c049e6da5dde2d8f8e843f472c95d4ff4239d3c0881e0e664f7ef53c03ee2bec3d1f19774e6998d4e8b683323468a8d87f1b7460b664d5e1db1ae199ba76ecc460685d578d8d6e66f3a78b6f548fee3eb94558fa141aada509a8909e8ab02a9d166c84905c7533159a9dc447f11f649e367486f2e91a6c48b6143efb6137052be410467cc440c8d0f9c9369b8803cfb33da84e6dfc47db77f64410f8b248d7c0f68804915a09bbe6c47287d4eca5f19b9883913de9606815629b1e153a5cdb954f6f3f81759d40eaed61df4afb67a5f8b19b30abbbe9b4b98b49e82c4e48d514c35b515cdfb5bc61553c7ef047b17bcfab4eedfe7d86a78386a0599d72fc58983058a6959915c1fa80ec79035c660b0bd4e977dcba58ee25e8ae6d9fabea6ecbfe2de8904757b0bf6a45a0dd97ede93be59db4bf87bcaf772547b863eaa703bee8b599f6aee14cca90e5af2939a4aef9d546b968debe7ec6fb9eaf9ce53949e7477c4e9893a40766a4a15cbc49fc73c3e3a0ef3f0153ebf3d5555dcf7317403fa9c2b88dfab4431cd8c94183c28eed35c78769b143563a942057d35a7cf373a03c0bcfc3973db4f8f25c002c46376d6a6ff1d3bc74e608e98948d86bbe6e89d5405542587aa492ec30ac8756f07c593044570f536b5bd7fb14b32375ffd01789822aaa020e4acda3ef680abfd47f49049875c1557fa37b4b033fcc260fca04ac6f9474c9b8255dae667fd891a58629caac895bf305fbabeb6974be7873a7f43b20a99f37b52ee77934fdfb6157ac3351b9c0f44d5369885a54bc33b2c48730dba8b3f6b9d167420a9f4d3e5d5285e7978fbd40bf85ccc9569a6c3e38f17f084595825a994079ad9bee86ed1e75ee9e759b31c491e9f92fd2abbe3cba6276ead954dbbd49fcb7e3d3cfab4bd6c0e30af1c3337ef768907aff0633f18f9bba47d6434b3bce7c75d6d4d753b6bbeb01ec47773cff33b506799dfd5b8548e66c33d25906a066bc52e617b9d9196a3986d46fd3c9dd95f1d77a6ad87248d54f2d89e0fd9a0d67dc5ee2aacd3abc1622ee89aacb4d2f9e1abb7aa5099bb4a269d770e74c334d94fe944a4dc55d87d8395f6aed8654831f7c3ecd85baf03c444ade93634b16e1c91aee33979666ee0be8d7713c547b9dffa5e4ba6469e0a77e6ff5cd4214f7bf00b794785d43e26fe798871f81dc87f04f4d568dd873b7f624c96c7d63e23fad2b1d8d0914a5836fa73d7a748473bdb7a03da9eb933f4a440ecd48262d4c9de5cd44ef3dcc51877352b53b1cec14153c88b44931e0effe96fdcd18ee7a1266815b74a431652d43d74922ced6dd6c0104aaa3f1a84e2f7cb2456e290fb321e7d6114be72a2c7bdefafedcdd3e640f9c749f4b27e0f4a748872906d5f8af9d4581d62ce9b36c00993805e722639782d564970cd56b06b8a4a6c3f402649e1ce5eafa83e85b4deda43433c44b6d9fd37487c9e1b66622c6798c94b9228c7a52cde8361ed7ac5bd57218469ac09b397477d7f63f5ca47b902dda5d0b6977194a1307eabfbabb3da1da8cbd5fca0dcb4f905fe37dffb71b851317dc1c6c9a33397c79e4680872e96cc1c3baea5bd04c58ab295b5da25fa98a6ab3035b2c48478f30cdff392b47dc011e8fc82e0914e5ad3c8eaf0f76a57327c62bc9d4d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 4ed7c92d83bd03b2a25b567f17ae55542e2f6a4308ec0f3fe69f8ba5ae24331b +public_key = 68e3ed58c83101c362627db993cfab3c28ef3d58b554249aa9e73c9e79ebe2c6c402755ce0737ca3ef524ff59d3397b417965ed4c547f8dc97252c58f4367379f4bc9da75b64b4a40b3f99536f3f0625e17d28af7cfbb994b8ad71bf540988f42dad609a18fdfe7daa5a1d7790becfe537c5c1aa56130f9d9ba7faed8f35476d98559cebb40afc85eecf9c16300035a57328b461cfdfacea43d66df958b968547b60a3d9f55fbfdfaecaef4e69cef343a6f3793d4b14e8edfcd73909b6786a38fa3337c61c8f7af5a79604eb383ea4cb6d963834f3ca4e61655fb6a5438977445ffff43d54e7b787cb9bc6c95c370d3d87b9bf08934996f7301618c5a2a9b6d5e8d2d58cd2018b44b0d95c5bcec46caeddc528f77be4c89614d0b14c51eec975976975826bfd574965c338c122ad56e2b9c9cd88ce421ec0f00deeb82f734b296540ab44a51fe4646c32713c87bba448d349cd5b26ddb494e1a77593886c81ac1b59d10b51e8338a4188d82ee858ff3987e58cb7e2a58cf24cf8ccfc614137dc5fddb884ede092d3d95f0abafa2c43eab7e81136bd6e3bdc332b3e78ba665c73304e0fee83cc3915f9c8073b7d6e9d7c13bc4a295432fb0a894958b98ca6f9d7bdf5e3368fa234399bddaa5f8c8fb54b9af1d3a18d1a7ec2cffe805d56c0d97595b8d1896fd2ff8c9ce33e5ba44d924d1c5e2e0bfee8cea468b684c8f7a363eb98dd4cce7ddab73447a5d263b2cfd4e29be74174c5dae359c69f086153ab30039ae3af2eab5ef870c444909918d6c4936eff553ccd9ac01e9db1e3d54bbf943b19236b935cafefeaa105a8f3b1e9f8cb77cbdc0ccff50f4e7a2e9853cd653ecaccc3e9f92a18783d1dcce69732dfc4585c8a45138ab94fffc84eefaed22b98bfee6bef556331e56eb43c3d92e55a7c1bbc0484f51b7dac72d5cdbabfa9ebb9be54cdcfc037c1679ae351cba5e91bcf7157d02518b8c8933cca1c34f9ead3d2c7de895d59b259b49aadeb98345aedc9d75bae686e36a85c6337f01b4ea3ffab29939ebb6e8c68d5f56eab4e6c2aebeb334f93e99bcf3cb3111fb1252537f9dea58953db46e487ad07cfc5c58a2865b0a92a621016f48a46c838fd95109a3de17bf4b2339a519f84c90557798e6e9656c743a8929cc6f2f3e34f024ec821df31501c92068ebc259c8be9bd928b58b6f2efb34c6f830133dfb18c390484ea0f16ecb613b560e972b406c44e154724f6af887a345acc63065481c4b468423742e84f582386c00f2531c67835f3c679ebfa9aff97ef0c0d6c461b760fc3e71b99c9cc74a5378c3ac78c87c847a65f4bcb5043a552dff3429ee4d58bbbf6aaa4422aabd4e7de7d78a620beaf3398feb5bc886d154ee13fb0d04ddefbfcfacd9eeccd2c6968f9df6d146dbfbd932a569896f96a91ba3298c57c5ebb4aa23da7730a996054b9c068d57fdb41826af323799bb0b5efc10e842816eab3f3c12a6479c3367810acc4aa869867f5888b9da1ad5e91339fa195feb3d8c976913ff1d4bdc6087e4f4fdc8196859c939b499f6eef54f5fd05aaf5459d68c49d81dd59624a75e5e38f935ea454cae482caa9da378a3b42edb0adc6702a9533c0c479a406e86ceea9a18ea357f5bb98f835ed13ca29eb969f3a7c759b43474e55ea88d6785f534e1d44be35d1c38387b31c662e6b9cfc4584e5dc43cfad805e273d9e56b71fd9f4204c8ad82ccb326fd7afe34efea97f73bfe760cbb629d6391ac85fe28ac569beb96ad8b888c9cceec93fc098f542a6e4be45fc55bbf18383ccaefdbad13862778bca36285d6748e164f585344dc0ba5e6ee49e6700f4c3b93f6e497ba7966456b6144b8707dd89cbc07a3a553d6db80f0ec0c7f9f97ed7de5b4de7e906cf24593f86d3b6d1ebf6004b8ebe7d47339468184cf0df47d5563799562fa8323bd4619be23bb3b1cbf765beb8cd17b3d2b98e66fb84a9bf27f8bfbc57853b7de40ee4257359f6b7835e9953db1f3bfcf545e5e3541c96f0f5f588730eea2b67424b5a9909d5324a44ffc74caf906c69fbe3b2385afa9bbbe53449f41e6d65e0f944ef67c4d6873635b3650bf4cc4a4b879cca63b6873c8e78e982e4a183557e0465bb106da8b9d97625065d4727731e173977a95e7ccfce3494b5817ec1b8abe866c85ff814aa4843f7ab5bee6124c2166757943afa3df3d5f59581246cddf8777c228d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 060ea5d2ed1dd88144a9885e79278590821c22917b55a48920f96b53ebe0e689 +public_key = b3dff47d98c6184e9adcbb5027c3f0e65fd5ec3b9c37fb528ceebcb2a6f4f095ea9844b83c5788a243fc0148c6ca8fbe4ba98be6d9a54623b8183a66dbb8456473ace5fe8829a56d1523497e1731c524ba3545652be97aecf9e5ec25cb8c18364ff961dad655e3dd8e14293a77963e4154b5d52a6d424a3ff976b69fd6c073b7bd960cc397d7511f76aee634f40cf6430e7ef386bfea33838d181c3f77197e530463ea5f662f6efa538b81e739e3ec3f357577319d29599fafca2e088c9178eebb295c5fb3c4f11643be6686f63bf59c737c4ed37b39adeeb7a79d5facc426438f6bfff8338439d136ab68ba7ecb86da3b45c77f186c178cff79f47f7cccfa43da4b9447ee4ffc9f8e6fda9c1749d5b63b02afaf5b8ae0ee47505598ceba4ca725ff2fc166f6a5243895db48cd2bbee26cf7b27ec450ad9d9dbcf1a128d3ce0a6492c7fd178d3dc793cabab535eaa44eaa14b2d81a4162d3fe73cb38a7bc945d1ced6f1df2e2785093d66c29f3e616ba7ea0f58df00f339bdf31c48d6600ba861218dd6dfbb50353b0fcc98dcbbfc07473b34e05a556d777cb1982bbf5f1b1cbc58c78d606f352b166de7e4589b905b50c299ae8d3328a47f9ac14f0c4df3eca06491c43ba8e7faf0cbbea87add2434476bd85f7f27b751c9364670a3730d5fd514454e03386c674d6a4b4315d9fd1db66ee9b79c2ca4c60b35d44e6cce253465b4e1fd6fbf695470b4b7b8bc068d391f6ddb7e9e8d28f1591ee9e6da43e57cdea92ff46ad99de8e1ce6c4b2f75854733e913c5ad3de3e23ba51b7f8c2d3dbdedea793b55acc3995c97d3c65c0a8ef139e3c88b56f636f3f41e85a84543d4e55f0c884981a3531d30dccbafcdbf1096fa7ac429a9b3bc2afb38eee59c2139361dca3eb8d5d97e67f62eedc0a1e6750ee48b33572797ace2138ab478a510583d6f11d661d569ddd9a4e55e73f68ff5f0ebd9d62fe951279cb79e8e4d2bfea4f03e2be54ebbba97d81935b31bb4dd558544babb18175b893357504589fe89e701aaef9e78874882aa89b87c20cbd359103f2419a41c1a78f880e6b4e65ec6928a37fa7c60708afc03c8b5b27d01ab3d88dca6ac9ab93fe5665f188ee36d7813945471f6945198983816cf7387e3f9c53a8e717bed4d9a7a706ac41d339001c5d74548389af439dcde42bb6bcf3ef3442155adec4f69cb39432e3e4560dea1a25822f35c88aff9630fd81f2ceb5c55b9af1be4a414b618c7366fe05e3da4d77470440fed7c2d20eb5c9ec7b79cae7cece4653b6c3189f61aa5dea0c2dbfd30ebbe243b8cd23f2fc97fc4ccf9889586a8f4dfac27bd43c6d5c14ce300a68c95f269b2ef49402786819668e964c921f765ac08d5477faf39d3b8b203c7db303afe5a8c70158874a8ec664feb3f8a645991cbe43af498beb4579c3e4918c85a8388f31f6f8010bca96858a09e493667f5b32dd726c037970a5f9c38b47e15678aca6f5b28a763b579af908cc1cc45a5edbf3e5a6ced504b9e42decc66fbe9714bf4a3ecbac1fdfa4fed457df3d2e0eaf6dda8dc7ed9ec6aca54b3f53f5e9d5d4b34b6635df813f4061be609093d28a63aed377a7cca6a929da786fbd80db85dcf906c98eb9a106ff88a374f751acd087f3d07065f4ac343b2c448ead88d24054e7cacb6ca5a398c7e9c2a8bf855fdaf98bbebd0fa9c23af9c5079496e0bf996a3738d5ea37ccccf4f1744eb9f5c672d74968c872392480fbb9edaf0c60fe96b13828bbefd6e56f96dca304970de5695553a632bedc79abf9b2585652065f33c6b53179bac6473b4ecfb277284181c7a2a959eea52fc5087358ef8835bf67e1e09eb38ac9d000e3f4e7b6ce841830bda5fe18583eab6b6a9234f7b3dd94ea633cda75c94bdaa1a3e9f8fd2376a876ac0306b1ee73efe38987e514f1389cb224e4d45e36da9d34508d1739f223765a3a8f2699a8919b30f90e77daee41d7d9630b46cf5dcc4ff95d45e62a4f0f86bdbd6367c157eac5cff21087eeb636c2bbe564588f66b878f817b9e18d95ade61d31de04ff0d9cb274cd3e3f93ac97395d9f09be36eb8b2d2ea4c74796af6de759cff2101634d1668657cdfcd10f6c9eead7c0f3bb7d99b7fac6a78793bcdebfa18ce4f6203972405ef23d336451eb31922fe9760d98125d62110dfcb20e30c6d5cf75212b294eadf4ac273ecb8bb5beea59108851b4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 10ef9426f8c4a13b52325c5bb4ead4596ecf2c6b5bd2d37d8350e90d4164fdd9 +public_key = 4e35c7f9aab81aee981647b85f7b73ac0b8ed44a9ebf2d399887eaf694d86f0da0ba098841e7979bbaf0d82b450bc35b88884eb935788dba47bc73f47de5cf5cda3f06aad2874598468c665194fe56464d983ecc027aa307da811c9ce63e6fcd057863a9cf76508ec889e7e8d20f67200c8c2e7877d7d853a83f87d9beaef013c715f69084bf9a589b8e2afbc72a7658713f9368a9f44d435f1df58a967d912427f8dbf57693f46acddfe4dcb89fa35ac97c77732d0768e12be5b6d5c915ac78d5bae7323bafa836ff75b66d06f55eb015a5774a3855dd9bd23d473295a94687e652176dc0479cb96fcc7b93494efec815d754f87cf90f44c1c838f28d48a5573a574b2d39dd9e40ee8a55c6abba1986938a47b0e84859558399a42ca01355d033c53b1e978d5a3ace10a87761e5ea19bc34a0de9f565d42e1ef806c1aa76436bc3293ef0935c51384b6698a432fd4a014157b8a9858ccdfe6fa784e66ccd9f12f58a9dbbc4034f2cf75fa3e53d301678284de9889c7b61226951bfab2814a7c7a2899f83670b1a396f5df60aa869fec4d9b0af63b0b2438fbd7fbaf0753fb2c7473d577629ed9aadfc2a8448a0e756b450fc7c1ef80fe1e60f20b9b395ff4fa2ba06feff7495fb15e1b35851ab6e8a5bcb646ab45a8574424e970f6c5af37f0fedb56abdb65603588d84ed9630baa73f773f36dc63e8ec9148ed0b24ffd7d3ee81285b773b7c552b4d00cebf831ef8daa17ca1db9bfa12f6e2c1ca720e7565f8dbc09fec742e453fc2f30138bc430335c2965386323b26aaffe5713957057311ba339443dd96075b492b641379f36144d95d728341db3aa13ec453eb4b9c996d85e23453e878e43efdc9af4376d19fda16c8a9afa9834cca64f16b2b166ea4068c0245c4b6f3f9fcb2cda9b15660485672cf7df3f17b486586597e8aebf9987af18bb2cf3f6782fc549a851952751605ef9ba5c986327996c38babd95cee0ce305f4378fd2c8b686ea24344e92d4759660fc8618dbb202946f35cd8d8ffd1a3ac937844b181d739ba8d7ea3d6792cac7a7a1b4ba7fcb2c5833cb12de2925f3208e7bcd486737ba8fc1136381cee6f763df757fbb86a8de94c4a32eee3eb01ccc5a3fd534bda8ee62bdf4b3df3ca58b415e59a8d9bbfa9964cf765b320bdc565174bc8cdd6855c9747a66748ee8e954444dbaa8273ae5cae2b774abd8dfa9eee8cecd1fa46a36215ff50bad6ec2f49287abfda0aadb2f7e9f2eeafa4cf9d7c855a6daf7aea76ef413edc1d6f9f611343240b3968238747af45ace3994bf88b46893eff1a3a60a6e66e0bb73429d0e73bcc36bb92d3e539e456bed44b84cd0dbd846d81704ab2e4065559896657ab31c60c3564a8e453b58bc8ef38fc5b778cfb4aaba574180d9a78aae3bb075b6d9541692b85ac5f961fe887c39f89923797d18ab8c9d352316f4b004457f749497267a2f0de5faeaf44c1d35c451d9ade5d3329dd63b7e8c0fb8c66bcc4fc8b2ceead5fe564cf32e579431fd9ce4d67f904577812ef3af39ed9b2f4e9525f60e1eebf4a969d18a4378147c0334a5886046833ab8d06c78041c6b848a438112d8a60ada202fcf320f4adb15bc299c6649c694f774eed8c0450cb8f9c3545ace79a33e0a4ff133c35e1e6be342c30fa9b8debe6820a3cad5a2995414bb7f0744a22194435ea8e5a534dcb8c754bc75444093af5e7f490a3468cdd6bfd14428717d1896a4f20deefd5c8c5068dcb0629fce7c9df81e9f0a3bcc52fedffd07d3429dffc8bef5fa66d85f8033c972b47c61998dc0d5b029d32d7a836618d3cd4ade4bc3e65c94b9dba1c6e38abbf6567cd523f83174c42bf56d5b48d9c29dabf149a650bd9d6a4dbee33a469bff3820723d40bad67711f82cc1c68270d8f8787cfd0796bcb568211ed88f649349ae9f1b9349cd4998189b4b945e9fba6bbcc982e55d279f0e1a756bce6441748c41c6c73747f3a9d0d434e485216e9fdd6884f6123d690cfb79889df41bb3104b5e3f0f4e3cfde9303f396e5f7c7271fc4f52eff425e8ea77c850f7b8e65deb6df73a40f87b2946be4b8275abb4fb455253b9e6ff263e4bddd7cf4232d62ae68bfe5ba4193195ed026712f7f9d59c7a1f519a9c65c566b5e504cb93355a33d83acb62a268e02874c67c89530f914761b751f03f3d2307ac9ede742f51bce4342afd3cb6ce2ab83fe +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a4bd30a64cbf29a4e290fa1cc1dfb99e68348713041e4409a1af23c5d80c15c4 +public_key = f3a7e3c42ed77c359f42a7eb65463a8eeeaed9879abe6efcb55b6e44f5c691eda3f60768a778cc9cac5ad6b89737a5d7e3ccb994956284a7715a7db0e306e99f0c66d99c667119b82d87a6517e41cfdba46fcbafa9afa1362e39b20f4dbc64388b3f75f44e80ffdacc390e32eff35eaf788364f3aafdd6af9d0fcfa39659238fcbfb2ed792f87b628fb2f37ada896cd791276d789976cefd9d2c16a32aac669657f19086bd36f6bf631392511cde0a8dd07a88378b647b520cf1ef9e48cd4575bb8b31b064499a4d98bdf77680a48ab51b8e583f545d6b87112884e36af30206d458f651f8b7ec0799d18dba79c05f98a9f6ad16bcbbecac4f0cc9888cf55bbeb38264c885ce098fa80463f648d6a544bfc194b77895a76c2fb81c1d98a8c3819e035269efff4cad339067ab3bc3de665d6a86e74fdf5fafee944df4e4c745f9393ad59117dacf74b4d7c236b8b6afaa12bec9f96e63e04ee29e885ebf78d4109ff315cfbc4eeef75195e864d743ea49b68aa3f12d49f845ac46f967e5796a488cb44072ecceca89878f37b51d76fd7849d0b644ea65d894771476fba4fed058b1525dbdc67a3b7f4cac93733f735b81f8dc4aa5fbe288d761b0b74238a5cd73c8bd2457bc195b785fe3e804d654abed6eaf6bd8a365a4735d3809c4e6914e62c17942fd27671989c553ab5137488f385b7b9519a69cb496444a7a2dc6d7adea5c3f1f8bcbb3ef586c5603f953f4fbbb448ecadcb88d6aa778466fc6f04dfed398cc2113abd257c95558e8c8175db54baf210f4979ee67620b672b28bf24465d2cb4cfc7cd8739fb9696bc84fdd76b136b39b85c7deb5ce0ff59337c5ee2e32bb25a665e9c06f5baa86aadbfa18ea3cb6756f8751e744509e4558c32e5eb7e1329cfc2d99ca4d83007467b80d74d2ec9832a5785fd7f93eb466d55cc8904874bca67e4c776579b253f87be7187b9c19e8dfae65aad9d7cc23a0bd51e593bc423d85738f5a76b4dfe5ea2bafcaa1049da77ed8458c384ce0d89668955fcbbd0082759df9e47bdf581aa4a81f808fcbea84d255b43e30b6728fb7a706cdaa96b794c7ca2883dc6a2beb2c114dfa24a98ac96fed74453c03a3d842cb0bc87409a09456c739ea097e7d8bed6114ec425de3bbfef99c1bbebf328b42324f63f186e5b198bd6be712c04402bf849df6473b8e78c4009c945dd5277c68d6eba8555ec48139560922a7a142632d4168dfbc6396e0d46c64ff1d43b7bbf0ebdffcc67302e4217679853d3c0939acfa7b45ac82be45e5bc7d668a4476e56faa6a44befb9cd6caa5e4fcb1c2ac5aa847cc76dece998b2896652e2d9d1483acdffa695cd26f5b124a8a88490b12b72a5cbcb68af9aa965f480de7ef476d6ab5b5fda6ac39eecd128e463119d3b32435e301fe58f678463ffbb240f46455b7d307b5bdc4d375c6cc507987ef616816d3a97545bc0f6e44c025c961cca33a828beb658d494cb9049cbfe0c8734437ca0745b55174b67fca6abe743c7f979321aae9a8829821166fe7ad85644bdb680c957eb6b740bce422778f2911ee0f3998f2b043816d9f16d4e6d64e482dd1d539297f2efda8c35bba98c563eb40bf9089ea9a43d968ddf936096d737d3cabef87d1594e9cd8794d15771588cb049f393d47f9fe3276590488e980ddf63b6cdb86dc22fb853353cfeaaf7340c2d4d6bf8cd186cab5f786e7f967a4d147686a690ca83d8173843dccdbb17fa4ab2788436f4300a8f7946265e86e782b98bfb27b87ee3cdbaa0ff3d6e7fdac13ef4189bb008d54da90de28a18ea7014db0d8ffa7b5a97194c5641078b22446d7ce9b66ab9332f2ab85d83f0fc75eeebf8b93b838421ac6818f8767397f58246dbcc9d3ab70972e8e589465660e6e4b9295675416547c277827d667102c99297f9909548c5272e846f5978a5d6971ac97c6df5cf1a3a42727e94f22fd93b73642cd757b64ec6d5094931d97afaa5fba91df4b5d76caa088578ff4b872d8da3448dcdef4769dcac3af496b4ec8e644f94c7e3f3a96ef8d5ffddbe5b7bbafa8fbdfef132fd66367fa4c1a4885ac49cc60757814fc0c68853b76eb45276fae194512c2d8435b7febbdf351aed7f96f59ee0efa5297c351bb3877347874783fd994eb5c36d91ce45559e7e84e1dad1b7c388a8cb030a00f66b47988c2d7d195332662cfc7d90b279248de101f77e30 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f4b66a7d3b65b896dfe100b2cad24b175a1168cfd2ae11fd704b835f6bcd311a +public_key = 2d76ef372bef9a3c88556374af9b603c9cedb20dac3f7ddc042672bcd971867f32fbf7de3d1f80f5ac45d0f8e9a8495d2da89ef5086b110773c8de539ec94a440cddd6f4a3946f73205f7de4fd6f4a78b0dfbb94e4977a564c765cf8ca68658fbe27937a8be5a877ecfc8b3e779533d1b5c0938f6b3038b21365d4220d4012a4cb401f478e0bdd92bcbdcb4f59b153584bd4b65a6b8d66f578f604d9c0ef46deb5304ce5487b7a95c6db56068e8e27dfcf5fa6adabea9e3a48b6f889305d0e6055db7a02a34ba6fed573143ddb8659fcef5c7c7fee3494aecffd37effb36b38e9a1816788a6b410918745c2a423285c7e11fecb8c8793c6db4c916ea39f97ff23eff02d387d224b0ec258268a374b7ef7ac9c4598fb78c387a7daa439280d79a6218b3cfbdbfc2e685bad8801e9fb5b1b4ff64c8890709c58c95bd8ebc43568c33362a53b6befc052489bfe8d6cad36ddb1e7b228db68cfbb317d4bcdf745c513f4e19dc7b17ab7f31649a57bcce91fa72015fafb1bdba5e8b57a5f4f96b1c390da9a4f76a869bfdb938acdac48eaeae0a779ba588004f5858b3300e7eb9a0ce72dea5da95c3a61d9d72b7ffa7ce9f45da79d128b9c597c44903837b8a9443865c785ff6bc05854e1115b9e3d7a70c7c40216ca48b1c649716fd61fb8cb29c71e69ddb8e85fe70b9a8655baa8408742b6eeede94d93026f0f3bbc2a27790de7d58841432cae4cae719740835571ce65027e74d85958db506a8ea7dec1f5ba5728a6e710a3d3d93748a7a640c56d16758fdcd6cccfc23832627e927c6a72ef7d84ee97d3e85e9744ab8df75eb9b2b69d4ac7cdbd9437859e14e29550ba332130f906e9331bc7ccbf467eda4c6ae1a1bf797ba4bcc75398e18505fcdfdc86db00f687c77ffa3607d7f609ca149b4be233b3ba4739e19e4462d78950138cd1c3ed905ceda83356156a63631d4a6193c68e78642e7c5c0da04d4e96fdcc2f7438ae950d4136ad32684f298ec51cea509bd442bf6c92f13df82653578c79fb4eaab1cc6ddf497dd6966ca5bd865150da5a6e4f4749c8cc6aa6fc90b6514b8f74e633aaa7443564fbd2eaa354d65a3269e819c8f33834abf149e470085c9144b823949df986f4fdbc645d376ff8a8afb7af4e2f95f588418eb338f390f8c35e2379aa6df34dfe9c0ca4d98ecfab31dfc315413c62ab8dfb8a9ad12dd70d02cb193de8f3717c13764d1c17e3438bd8682a8f0526fa78f9bd0fb46ca2ccc6dad37e7185b72794bfaa009419a6330ed5d8c8d3f5110c53fa16efa713c50073eb36ad4e0c5a966eefe656419740baaca6719639987bf5e17444c5ef2650c87c894d69fd5fba18f837158b9bb85b2ca7ef68284b5d8636b2ed3bd189ef96de78a1cca44502a779b2bacb6f86d676355d4e5f7bd15dca8d33a13dd59e6d697f996e77e1b95424ba97cda6b6bfde91bb7dbcb85e72c354541c7742556c5fbe591f33b962455f3935eff3859953bdfec50d5a445a34d94d492afcbd1a84c844fd582802391f4f4a5d11fa8a72d79e254363fba52c83a399bb3398f78d7e7fd3f74f68fc798e87be6bcaa5491ff666c98e43c3f96d47048d76807dc4987c6eb1d411eb6dfc7e8cba1beafd72a52713a41a227f804ecb9fc6d315e37c544555a8aac808918ec6c2695b09de1bda9ee1ddc87c94ecbe1cd357e04489795f22a3da5d75b81cdf9ee5804315bc3dbca3f94367a4624adc4a0ec8ddc436c7a9fb157039879bacbcb69d491cf8ae7d9e4226765439ec06a85f37b24b88964d4cd03fb073c4923dfd2a087bce07aa57098e6818564c78f37137cda991e9c2b6f44a69d510724e4425b9230b6e13cbbf8b07ad58e67b16b9b32880dd2423cf76c78aaf608820836c864ae55569dbc802a70abda52e4c430c80992745945ebd343278cf22836631c75fdcd4f5e1fec6f22383eb78c9b47967e865c638233eb4f04fc95ff81c4e9a849477706c339a48ac2c6a4e6d1f5e914c751e0fdb74cc657a8d9b0d1ffecb2c3a730af41339be1f529a0ea9cbb8be3e0204bf9775867f23b7a6ed3589003d24474b51a578110dbee1d15fd2ddd3a190ad7f185d27947664285f9353dec093fb80b65fc7a4b4eb21e8e2466624588ac1e0e48c2cd48445f479eb6d4769de2b5d49e885965bf6ec29407a0d9d3f1f08826007a5a3d32062d2a775728c35116642149c2d449 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1d7b03d3c5eefb8ae5799dc569aa668f1bcb8c86607b089d3530cf61d6380147 +public_key = 90c537fb848ea87cfba929c7b97456ac4b5c5007b2773eaaddf9d2ae29e7dba8cf29364280bff504bafbcb4fbdadcfeac9a497eb1cb8a5bd96e79f94620386abc48f389c7f1448db04cedc614c625427c8cb9962f3d75409e9f3a577e7892e69bdbbe5e54f6dfebf6072a5f255eab0380a88277ccac2df4939c98901ddbe467db3df596aef1ae748bfb0106c31e9aa9164f7745eef3bd1dbf22178ba13f7c807cdb02ff9898774646417bb2fd3e53167c1ec7d7655c548b63caaf3fb3f3787ebe2fc972d03bde5286586e4d6b019d2e0ad897785481b95805ab79dac54f33af99ed3f53bfd6cc36bfecc7a0d6289563456fb71b54c6e5e894f47e7e5ba16fe010841a9e67abdbacc31dc373ec88ce8eba2f96381eeedffd0b88b47888f5084ac264c755d6fa663ca9e30cbfbb8c89dc2ba91ba75ffb8add8aeaed90c16e4d6c7c674139ba5d57d26dba05e7c47e31d7aac4cc28405a7d0e4e5e257ff66d4dd4aed94add494c29e75886474b5a6991e355738c66d9178c94bb4c05a1fbd9e7d9290a8b562a358815ae4c50750d27d54273c7587b7ad5f4d3f231964bc5dd14fb7e21fdb74dc23875a148f101fea8ceb3cbde6842714cdf20d8d86bdaf62e65cceaf7da0cfa12f4e5801cbf2a865b861aab5cc3c9093d3e64e6b436a3475e5359bb9cf41b635c351ec3614f7a225e5f2f3adb7b28ea1f7a4ccc868d14b3ff2ba6be9777e54e28bf667f9daea45fae7d3c68e07b7c5dd482ec38aa226ac4f2b63a8da4be57842a4a65b6e04c21673f7be09a30128bcc34ce5413eb94fee3aa5e6df7708347659b4d73bc50053fbf35de862ce83c84fd19576a673ddc10d6ce8afe4364e9ccf67d670b39f83d1fdb9fa1e30a0437d755dacb4d76af99aa4ea287a6bfc73fbaa3207f58fccc775a91ea7e7adb7a63bcd88fd4f1efadd57ab77363e532438fb4818b8d4346b0ecbcea3ac9c0a7bbc17a955617570a61e447a9b8475f7c602135f57255e251fcb6debdd22d3d159b43b9dd58066e8ed77f7a4e263603e193ebf77efa3283c69f7ea4ac433297867da3bfb7edae9373a9b4d3897699d31e68f84ec8779fcc4cb742b8713ceea3d143b02645a99db61c0be9c26a5902f7b3d784dfa9bbd593519f5d9eea994b586ea777697c389f9cb6e268e7e07c5716db9ab63f451dc89a85213ebb345fe8ba53643d5d9ed8590694b6a0744dad0fb2f1788937a0c45cf9a441494ae447c44c79e7f2d8bf1bdc6b7d3853bd8e33bc7ea75e62535fa5d96aadd930cbcc0a31dc2f5c8e091efda5d8cd346bb43ebe6b7717f859f13a6576c72c0553da80a4ca9fd3292d86a98246151a6de4b15b759bf8e2beff71c9ca710afd61c8a560cffea2d967c0beeb0ca446a987bbfd888ce4ccb725ba5d50d13e34f3441f853935255bce8473e88397d5eb4cb8d6acaa6bb8d606dd3a66db08c89ac890b77aa16304f5cc7492f764e8f823c3e7572c5bbef0e8eedab6cd93caa934f79ca8932a8858079197d412b7284ed84a7fb9dbfff6d463dc1b613661abd6fbae495d207a3c326910a6cfac9c7b919498bef5482532535d265efeea5e54c2d82a77cdd3b16ced88993697b344cf7be484fa3180c69f6fb589bce7fbd03489b13a0afa5eec1d9776efa82d0edf76e58c554cfd46b4594ca7fee0afbe60d89f3bbfa53f7c9c2a5ad77d51a6f38473fb6d7a2b2b99c5414c5e646734fc48c57ce8d30997d8073afcc9ff680c3f1c40696092a7aa09d72cd034523acb15154354d697f27b3e23496d1d1eee70beb475a6ed330dbdadef4cf31ca82f8fe5bc033e0f22c92dcbbc059e347727f5685955dd559d332edbd9a8f9692275598a77a320f43a72f5f392a9f84aedafdece72e1f4cd2a5f88a77ae061d31f898b42d89fddfe8c0902944b78d43bba48a26cf7324fd7d4f6a8c6ecc33f13948ae1f463e834d245e4af69954396ae44d1a4df805f7c043e248de6d06ee85defd4a94b9f047bcc976cce7f6b7488dd390eaac4b608390e9fac6c38f9eed19d3d544b3ff08b2c27a779198387b9ee2e374ce4f6bdf5f8981011594639f9c5417bf3744f0811b4ecccd34ec4eaec0888a30976429efa54473d72f3c9b5544e147c464dc88b55dbaefa8afdc22fb6c8225b2ccf476937e3ded1c4a76a479bc2eee56cf782a6cafe938d47de49bb47e732223b0bd1bee7bf690d1857044eef2aaec +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 554f3385b382f4a46314de37ee3885addfc5332bd4038785094e0a832e9e8c2c +public_key = 12e4c280de91ab43b4aa8a66c53f6e681cbe1207bc2d5aac1ac59ef0a8aac0c8b91f8cf3ac35abf566c75ad3b01d7bedfccf9db4a334b45ce0fc25808f9b8acdb4a2ba67528fba8eea4fa895d5544857473459763fafe74dc640bf2849090f3146fb553b1b8b1e99a7446c5320dae7eb6bc497a330ded7b1017aec29df3965ff4f2188b2d7ebb2bbe954c9e9f71baa7e42acd2dab991dffa49410ba6ac2d829ed4eb03b8ba8756b5cffc640f9f8b2446ef100d7227ffb5315a8bdf9ae0aa88581ce5a140588b69b531f62ef610c5306ff4ed4d0e8302dac1dbf69863b6bf99d892072591a0168decc69f8a8f3999095f256c52c6336acb063bd84e551bb855678c4e8b09d291a38c2fc6419583e2ee758e73d88d8c8937b9c6912c59ca13854a4209924dc7efd8b547a076a34066d1562ff298f9e328b7e774eecf1189f0e5faa8fbd847feedf7f734c06bfcdbf479b97ddeed637ef2d1049e96c7643a6b323aa93e116fe460d7e93d7c85a1a8969eddb0835b64aeef8df777a1c70646b8e55578ba9da6e8fa96b5bbca2bfe9346775d24b987535882468b3f9f63a1c7428869572224fd9caf3fd74738393fb2a3b6720c2ecfb60ddb178c51a878992d666872685cb1f346c77b86a0174ac955b06df96ba0a4e0143d95856fd74c5737806fdbf076688185fd71cda7794e5f9bd3b5d286e0100dad563735cded952364f60c153c3cbff7182af1b908e76ecdaa42acc24106d61624b88d1659a2b8ef9c09fde82c76daecf7bc4bd18f953a5af66ee224d1c02a4e3b8b4188a36be48e8ccc8f686ddfed516e4f201dd721f8445323b4920b3d92ace362e9eef948371b63e096186034e6ef050ec09679c54c5a993ce85138fe5f50466badef9513ef60fa9d764d3e648d6649d23c80085da08f759fa94f58515c4625b856eb368d917c36768a8a157ea376ab367aab462967d7ea4d80bce47dd4633c2c5dce0b19bf47d4a68c45e9db2ec206bdc91296d6ef8a7405ac525b1fb0c613c7ae96aca34743ca9679bf078d5e0e6405f336f6088a976ff04154648e4b3f697f92a00f670c7962f5bd8bdda9beb2a33a2babcef40cc4de288461ede890cf9ca86bf12ec4df7b158aa4a38711ed608fbe50fb5f52870d58cce8f2618961cf6ce8a01bcb2ec9fdda84597fe9b346ed6d14a597917a4748949ce6ff9e60a7ab2984d242166c5a75e5021edbbbc73926a7c4d0dc6aa425f40e1cd769774055f9882aa4330dbced860d747be5f64bb7625c2ab58e89e7ce2ff858135ec09a3f0128837669bb38aee903854d57da6957e7d407c752a209515365d3848be7c536a69bcd9a84ca64633a4fbacf6221296191bf7c0388e729456f665363a0cd36fe17c4b66b390c3fd4a146e5563f3dd307572b2caf24148dfea74eef05880205c164da71980974241bf167b3c3200745ce778a4cab786a0cbb142e88158c31127d7058884358db6ef4dd4480d7ba058c7e52f4d52c1898e39e8d9869d716b8dbd9a3a4c3d53cd92ee0067d9e709bd4c7de8bb1577219a39d26a496582384f21f6fe59ea2dab7b8adb4a07563c687c4a6056455113c6fe9b7bd30cb7fbfdf839a93a584c76af6ce422dca809cd6f3079ab65dbe46a41eec39cea6f3ebe34c7f583ab9331e4e8c7ac5e3d77b91a72fd5402e7d406babb04e70608ae979ea637f8875154561f69870fb1682a72d52fa36a21bf94fb5ff4ea55ce658d8bea5ef813707981366a8d9655400db440db8c27af57ebdaa8ed897c75957e2e698ec81f5b79557834e53c9b537ab69a4f830fa60a0c8bc7528e92f5f396fee5d945b9f8e0deaf803f6148e7117834a9af58ff86ea1830798edd48fb67ebe338b43140c44d18bf72db6aeecbdcab26d342b49cbe2b47a6b6dd6b5cac09d763f168c6a603f9b7d1b87dde69542a4437b8c42699db4a5487ab43a98ef94667efc881a943b33c4fc776b3f8af853fd59c2d313efbcf541258ed0d33fe9e77d94ba89791186bc8b7b536fb6438aba5276df34adc5a9ff129fa8deb5c57574840dfa80fa40882aa0c73cdef233b0c2a3ef1e15cb7e5f8b471c50913f56e54a87f9ce6f02b3bb914e33c07de36e6d3bc57c50352da8b78deaea4a3b415f334f75bf821cfed999dbcc9efb20e9d31c269af9598acdeb8a52bfa7cb804627acfa20285753264f3df670dc445647c881e112b71095f10934 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 38bf0033b779edf5367d9ebc01c988af90904c560970815837380650e4749eea +public_key = 96f73135fa51010a83491b40768ee26d95d02b6dcccceb5393b459cb39b4ddfe75b2134cf515c06b38cb0ea33d8c34a7283b99b7ddc9e918f5159cbf4ccfa1c1fe31580557f253e84bbc7498b39266f669fc26e15058fde58dab196ba61dd5f6f8a46a2ae3336a7abcaaef743fd654e965b3b33ca0b9cbc8ca6d95d78a971b7f77496a8c123967e9dfd4765a86499db762d34e8367da8dec5cd25333276555e7644eeb5ccf8004579c3574821ddae9a930a83e3468d3a8b6d5b4da4a558a8ce318da670dec758c98c5058e44853d96c2b781d73a9f216cfca058eea5aca259997c8489f5694e507717b7de0ecfe1755f8bcfbf1008c2c61b7bd148e0797e85cefe6a18cfcf00bab7eab737a74ecc12ea6d8bd8d2e076e7316f8194d4da7865a3587cc2f6bdac1e3f8307c55388a7db96c4969a533e04c4f5e528c713e4e821ca6cf1f5bc74e64859c49b914563ad193c626c6dc63de43a75513236dd5a4dc76f2da7f07987fa8cea4e1f83be8ddc9759871f973fa6d94fd99de5cf0bd56555b36559420bcb98cf6e7169465770135b167efa9884586e0f32d456d6632c50a9d5beb3697669c9940e1739508c360515f4906dedbbbabf70e7cffb24652b88fde5f4a310a7767826bc73886e60f5e230068dcfebfb3fff46f88ded668e3e54d78ddbc34cc9bca0269e4883364c60576a5e0c5a864ae7a997fb819cd70657e70cc46f4498dd4ff46d68c469454f433d8f3c0ab39656c7e5e0443e8ebbe4aa9dc42a13eebefa6cfd54c32fe4521f2e8396d53c5554c60b93cf2f1cbb016fc6101686e57388977fee44c3f44acf97d968b16d8dac75aef79dbbdf84749842195aa3dabbadecf457fc8b854752d33cb1a5499dd547f5bf34bf34a68457e57e4b37dfe1fd7323275fb99b78ab9daf2758db655df17c0e867a1b7a5a5885fbcb931d5f4395dbe1a406a492d4f51facd9e14a45e2b86a98d7ff163f664879a2d5557fe9db6bcb2ab6197892e5686b2e1ab35a3434a77a65ebc6e89bbdde19fbb046ad3fb767866184c5c3efb155f465bc8ae35bbf5cc64e5b0b4faa17595a33efa3713e74159e3279ce8837f346c3a54be68ff5213e5333bfb43ee4d89c4f7cc9ef4f11fe7610f4d882b4c724c48b6315aa6f0c64a413fe4be75bb7bd702a2cb7a11cc6aa14bccff9eaf256425144f5ca475fd7e7c3882e4294a36fff09bb1388a53239e0ba9d6491bc923a2644269d86bd5e31e5d67794e9ef66bf4a0ead6ceeb63239456e6c4becf40ad5165879b5858bf60664aaeb45b4af38b1b9f648aafd395473d3b5e73fb37a51fcb5ba0c9cc3fbd1debc38336db4f5033bee258f66b5d4e64a74fafcbd1a56d76fbdda02246eaf5fba669ea8cfefeb58a7ef289847c508768dbba5ab29f1c14982ca5f5ab4b642867f3954d33c8a35396ebe37c0db48a39432da0abc3857c536abf36ccd3ef66fa8a5f4f11986a385b8ab4d17457434e1aa8ef256636e62976f99b7fd75c654f8574737b6ad35def9a2eac230ee66b278f84007d53d4339bf699b68e5eecd3f974c26e13637ff912ff19bac6bfa8950c70e6207dc6567efdb916974753f90f0b5fb8bf5ec9f4cf39e8b6842278418ad5dc789bc430aefe077ea51ba3301246ba88dab71295cbe2dada8ad7e5593a39346d4efa7fa711349a0678a61dfaf2434b17ee940c067bd89496c90d4b9903b9d146a49c46e38dabaa405499eceddff791562a5d446fb358703bfa5eaec93b7f475686fb3c18bde8d48ceb5e5f44975e68fd9c3e6495d1fd578ba3ce68805897cd351212d59b5a4b9668746584eb077677583ca7411c4331583308ebddab5045ec5943beb38d0b30978c41d31675a84dbfcbe6d8bf7b2da65152c692fb8727a485b974e888b1b36a25491ac86d458aff78125b0a3735f3e7599025d7ca5afaa12dcbccf3c35c68873518a4fc788f01f0b960c7b551f038c630e378ffed19496f9dbed364e38ad07a3f0d2cc35bfbc8ae7cc446526447e6db19a36519daa8331a45f1e53d8d564979b5e79083e30594cc5fc07a1fb6b5966277511544612fde8f3f8b76567add2c94a0da8502063c66c54c3a50644e43b81a93c7cf14d9b505c77f6dd6d3453fbec389a137b6fbafe8da064f6d03477ff0b81863f7c37f449c8f639878dc78ef7d26c51bba9665cf58b72cdfb115bcc2a0715b5b4f40dd01c7a0585bbae73 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 048ea516d0ebbd9f709b47eaac66f344c571cf50f0d01c9466aa061a50b66a24 +public_key = 3b37800c878b5adbbaef794f4f24abfeaa40eb1c5763fa55b7369e5be8754beba6bea3e9cc3a482a53ba93d4e7bc9a5a313dcb2a247177fbe1b63a672f0d39ff7e735ca9ceaa9e68d1634df2737b463f403459fe1d3c74f20f39565bf3e39585734c86da9ee8dbc944dfcf8869ca8be8ee7b39bcb0b0e34e257bc9bb4fcc792d78955d94eb1336e516c62c0d871e1fc601a7d0b478b5db43ac41abfc7b5d442d9458ba4b853d6af9ca946d64b6a6e6cb3485439abd4a9cf34b592134fddf46e1289a72efac4102cfd8cb7598894a9ef1ec38e34a58b3cd71b3e6738138bbb04e6f256d72ead83b355ad832b98b551b7210095fea3f3e1f75bb9a9d5e5bd961cd778d33cebe956efa7893c062f6a66563e52d1c820b98f5c25938c0348a3e3fd6897ab903e6472193b5c2aa3f1b0bf3bce88bf47f3eab8f92d5446546865218d5827a5ba0da5354e2f6c81eb96cf1ff8efae54935138273447a953aadf975731aed3a6bde9d7f6e3c2cdc7f5a3aa1891368399ab5c5337881c782bec48f926e774696f04027b6fd895ed1c8d0db68c2d9e5f9157bda8dc9df107964d8f5c860737db2a3375e0fdc7bbc7f1ea57ab7efa2eb44b5f8e6980e5f33a089e350f4ac243eda4bbaa92827329479eb7c54eedbcd490957fe8f77e4e99bb7df1d76a22e576efbed42aef2d4366023cbffd66937eda4d566bbd7d7b480b43d937c44e106c3bc01f3c26eb7388ce740432fbccd7cc42e8a56919f39a2968f2da3cea3c6695cbc909ee481b4d6e9f1e7ae685db4d8f691d70490134ba02cfc97327c9f14db4bbfca7b4589431e0b8fb8dc61669ee0dcb675dd1bb46db49605c66534ca53d918aee579557f8fc733a3841a7338f9947d92d4379b4afd47469166bbc20ecc4de2f7c769adba4dd788cebac30eccbdfb1eccbf06e42809f83afef160b83369d846652e37448da1a2c8bfd80ea869b49d09644266e3d0493badff19f390e894113df8768a4592e9630623d55039eecdaab48d8eee8a28f2cd278b80357856a739174b3da66795fa8375333554fdaff98de9fb3ca6fbad03542404e9b9c6f6d32b53840d5564b8cbad19e5a977b1c967e0ae59dbfd158a2c88de14c85ef93ad2a37dec3538c1297772d1045bc59eee4e78933114e3b52fe201eba6c4db8658378fa3a6b9b919c9247c40ef39a7d564bf13a6c8ec575fc3b58f434f6ae1a4944cd638bcf8336504577c65a7b76bd664a8d2bf898fc3337ea3f783bd58bc85e33c51d9e413cd9d99d3e0aba8d2ddeb4e977a640fbd5a6f0e984186b6303f37230b33cc57f1d984382e0d3a457f496c163a0c23aa7527a7a98b45260794c109c3ef645fd45fb779fd6c6df4dae1aac577698edc053e951931e88b7561aafe3a795d9d8ad15fc39978ba6832da41e0ceaa36d533524fe107d33d00d934ce079f54cead114b622ffd9fdc7d888a96ee8b9334610a9c2a66e4325b92662e9dadfb7eed9fb472c87c100e81e73c580b9ca8564bc1e3b9b70528a30d0c54bbf48b310ec46b536c52ee5c4d0844ff8ebc035351d929f12c699a455b7f0a1de21a77360f4aaf09443e913eba9286c0ef18a72a0c6afb2b38055f37a0ce4dde7af0cae7c703b8c367bbbf4ea43df773bd6a3a4c051caeeb66a236244f7bf5a83783e655a73bf6e7a3413459cbbcdddf3f9e59fc95210cf109e480d837e1496a5871f33d0388f23253e37486504b2d9d911f574c1d5620cd4deed84999baa3a936a9b1234ac4c4afe56ed4308f8cf40c49e73fc6153684458e54a023684bfd8ce14bf04bddf5991c5e44b63201073f22b5dc935b9bc1c488aa8a704cce78ab0a752595cfe15db342af95f9b851b67a3c0a1edecf297791c746bb9f47df3aebe5b8fcc809d5e1553b31d53711bdb0b747fb8eacdb7c15636097316d46587e07753cad5e03f7cb3c6c78870a7ab21ca99dc3d217245a29fccc3ee8d364ec661ea93194d472813a3cb12d3b223b909c5774f2dca50e8a9753e36c33e9fc278a52122a72fe389f0fa6fce5d3a1d9f5c0710d919e4761a17f82e016854579b1c2e7c60873dc6b2a6a1bd96c7149fb9ffe5e04f7bcef4e4cf5d9a6008eec4d2586516f48f4bb6bd4ea4a45fa79fe9faecdecbf20d7ad853467393fa0d6dae3c66ea446aaa23539624487767e4a195dce0e2bc6a3fd1a73e918f297aa031fcd8c14925529ed33b83ae8e7ab +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 686c921c9db1263e78ae753b1c9c2e7936b8229dca48c0942c56c6bca4f10917 +public_key = 96886aea374a0c4886e4185a5ad8ca7f1a7df73c6af138f397a6a9b94c95c8284a0d65c3e614cc73159fd71bbd6aadd6d1b97da34ec470baf8114af4eef9856ecbc3619bbdbc25bf179ea2424e4cc3b8e6433c6d9476d37cca4dcce8851aa9a182fa9e7ecc47e437e3e908e289cb5b68c5f3890955454f7321ac5bb23dd0372aee1cd96b596ff3ebbdf218543c703fa777d79c3eef8d13dba32818ce42de3e2eabbc3d2ff3eae799057c43a2977ecff4a5966a7e53dd554a99d7cc39495fb8d33926dfce96742fe5679cd4c46499e0ae17e5a98995317f3be9b551e404b88a2cf72f7fb1b3e56144a4974df799efcfd17096f305e647951645df7f9da99bb4fe579309d4abebcd3ea5edf9990b3fa8464f82e4472125bfb98837e275508d26edde593b490461e75d8276b344bb18b93cc3c966ed84df68a68bfe4e6bf37b4dca585d16f1a403f363abab1684ce0b1a5fefa7ee90ee8928d3847767fe55596e35ab627098dc2e6abd0ef9d80e75850165f73aa38c0bf588e13dd6f5837c01063360773ff79376a72380dafef3b199b5620d7f1873a4ddc7e5abc93d95c7a854a4d7ec94cd0c9f8b30e3cdb168d4cad99ab33df005675e68ec6f7107d182139b42e5bf02abcd4a4988ee1ae6416ad95ec8b94d2431070a710e7fa596f3ded4588fdf9e670f3ab70f35a5f097de879f7d68f641fbbedf962941e10f6908ea7d27084262de90cc6fb4355aec8f06ab874d3134163792abe275aec97be6f208e681f3a9633397ec429e6b03e668d7559fc0a67decfbdd308e8f45e8fa9e4a679d76436bcbc45f1c971e966a6cfbb4e1948f2e5bd621af8d633b789528e2fa15c4696a7bb17a9ddfcd329f9f7aa1294e5b7974bbd7d08a977e0e13500337cd63bf81bf7392100fb19c357eb57b3c585f65f1e73a16b455af856827ff9be21d49a80d5d9ab4d1af05e3e808f20f296fe64ba0ee77b1734bae351ddb85d6d9d8bcb3936d690ca9b82f1d5746acc35fc49ba7de461a74820646eec179990c2bfec71387b52cec7ed344b826d08c384eba96432ed66fe4f7f25d0d47e3bf979bc359a99eb259afcd40ba3694086489088b4255f6835e8ec5cebf8b56b91519c8d02395e726ad48696d5a38d9d703d31539bbdb38bb11f8f3cbfafe7273742c87776457a1804b89d524acfcb39e19fa454753908813815349a873ee31a5fc91c51579b3b5de924f955ac575a8b5f8ffb35a77a634801e9ae0fab0780ecd4166a0144963ad79f68bacbfdca7bb193d5efe0d6e4408e3d063b0b7e8b1fd75b5b176fa4aef6324f89415b5efbeb4eb75485c53b661c97ab2baee93d70ed7805e8e862fa73447aa1be8af9ce7f2eb8653e1837279d5e94fcfebca1f7f1eba895fa9f4a254c6b38caa0917d18197a771d531a506713d3434c23a3a2b996b7f1ec83ba7d58a08e2e974819ebfe47a473686869f4d04bfcb9786a0f9723dc67e70e4ac0f565b85f4bb30ebce83cfe950838a220f80565dc9fc26d7ab93a7e43adc9e79611fa7829bfbd25415dee83d792e73975a7b38bc7e8ac75d64ee7d90471658668ef3e88f3631f8d2142aa56387ebc6975ce38fff0f1eff555c3f021a7fedf78f521fd936edea9246fdff154daafbc4ab6c8d33dfa11525a474757c691bf1274b443b58458b83766df851da6fe4dd04bc0af73679249cdf1d55e197755adf6b3bc6dbb306503879b7fcfdb2eb35d8ae05f149f43ae06f75d4ebd27b6477d6479cfbba91ae0abf1dd8e26fc962cea9f1da2bd006ad9c30b6894ef6b3ff79a0c088bd2e6d74988ca824bae8b897d73b1dc7f21982f91ff04d3fd757cdbdf59ba855a63a037ef5bd5c677ebd8368b475b52c3559d3d31ea56040b9590f859f6c2560f927df5fa759068678bafff88877ecb0a693e825bafbda853c0b56b79a63aa198710c6f46a4aa58c2f60874e6d3ee8fc413bf82cf38c71348b40eab105caf3b2f3720ebaa6f21c9f7b23c4e324c4c3b8f1de7957c31e83fb48c4c127732bbe69f92fc3003a803aaba857c6b92ccffd8d2df51feea6839be8c75dcd5b93d4f896f40e16c8cf4a74f14938a21a8f3e87bca045edaca3a8d6dde4037ca5666af589eb7ec7ff9d18d891c0cac82289fb3408617166b55dcee8244ea309f86f99f86b4e7c54e7cfbcd15b15b091274f185cbf5aa7a7a8ce437adc43de798498003691147635e787ee +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 2387772e50059cabda53cb93ba24b19ae529496c03b36584169451525c4a0e7e +public_key = ba96bfc11884ba3d4cc16b66965dcc09af828dc34e704534fdcd57a46bf5ca8ab60047fcf606dcfd63db1e67309e6dd4361acacd49fd104c9d3bf66075d5949ad75815bc9518fe3208068ad535d595d76caebc3b189af6841f353e33fcbbfcd830c45b44f3e5b5ed37f677f2f2c8c58d47f28a7b3c81a8914df5f757947eddb3a99ad35bcf1bbe82e9f49e2f8a160d9bc36fe163df8f91c7dce4cd5c500f7cf648d53776511fd4c24e76d0248fd37014fc6bdcbee2cc853e1345278f35e1f3ed421d6b1c359c8c4844274a4205a7f4b1ba455f0eac4c9ddd79e4d50d4f60b96fca9f3da3cb8768529972996d9c19479b7ea35691ec5deaae6b0948fcad755cd2bdd8c06b3a5d347b76ad6825d4a8077cc6a61543a6e4c362e979a78f4dcb494b806edc1a3557664b8ea3d681702932ba284deafce9e83bb4eb0b4e916670c185b8effbcba335f95a7e44638d9d54049561baa71f13ae09df5fc587a01c853b3278ecf1fc9070fddc2cc58971f8863c8d3d985f310a18303298ac6c188b46bcd3e4af4486b6bab553d6fb1942b908635038f3873fe9898f98a08efed3b3def5a7d528bb477ee6a671dd31e5dac2557655adbfc10923441a77959923bd90ed7745988efdf48bf794659bd34cd8a4e733f97d85178021e8b20b185e0cc47973173c15a681f5adab52c5c4c6f3a2364465d3d7f7928853a5a55998743e58695feeeb9f07cfcfab7d679d0dcc6eb3f9c16bb49444e8da1de7befbd38534d0b7e87d6eb8be9493d3e323d6a51e6fea8ba59e3dab6f0a5061cfaa8a3f9306065290466509ce7eaf7687c66ee00a18cdde76d0b9e467e3fa7b10dcba2b8ff347349c2ed9443d5deb6759f25f48e95c04838ce8b96ab66cc2e7f35c9bd316eb7e1bbeca956c5780fa491a87f0b073beeb48b98dd4ea1b276020256ae6d85aa3dbfd60e6375b44aeb6e345030bdb744f6cf999af33e89f1f2934c3438f488e4d774e3b88af64ffc67263e3cadbead367fe3b82d9a789d55f05b3d868c6a9b7bc7ca7e6918415ed9f2abff4ebcf0e36f90e69c0bad83ce3cae9d81e33a0d8b348eeadeebb8a8c9e5247689311e5378d256ffa867fbb9d4217339976b4af06bc3e5b9d93e8e45cd615cbacf65bf2bd899db6e790883ebec896a095959af55d0d7b39aa7eee43aaf6caf8c71dbd5a57dad71d7e9a2826f5c2e4615cd4b74826323b163cf26ebf6a14f4efbf381df549b15dbfba6f84623ed461a9a35863bc0103c82a0f44c6ea5ba48ec4225fec92dde0645ca365549c7bad952025763454fb83e5806d3af74df4b8888bca68accbb545d743443d8dcb471e25ae4b748338b9f2b8feef762bd59bd5848eaa441d9ef9527f9d6f8de3fa98340ae9a142b84b6a98c6577369053652b3c5d5d4d8607737b4a0ed6c5ce8b40ec680839ae82e44f96d3e7df688f6f4fae6f4547b4fb9cd0778b2e5c66e1e5382db1cdc432770d83aee20f59ce1fbecba29a1b9d8a5e2dcba6b14d22bc7f92369ee79dc4f0616b2d4637be08558a32fe66a97588f1f8c0857985aeed12088a7ef26355fb4b83849aa3bbd6b886aa45baae824a74b06fd90baa7cf2969368e6a82760e60cfcde0791e543bddbd2513ea285c41877e9d9b4df710eec73ac8bb64e9e2dff5bc324441df18ae95dd3c82b63cdd9d85d083d63eaf96627a5cc754973dff96f11aae6cded2ea4d740c853fdf2576c24b3816f6d483448d9a28c3e2bf95a4e6bb36283f4716f9098fb52f7babe54b95773ae74a5ada3767c2f6aa992f69d4360d71ece661d94c868df7396c2ae58808e07808fcacef8531d97617335cb098cc530c5234dbb4dba8f69e6db271376a537fefa40a464bfc620cccd8b2bbd199efbcf7aef752b39caff4938b94fb1519455bca30c9be5f6e2942b1c6798b584d8948fabb26af5be574ff1f838747d9171eadf225d7e78d3a8867dd19e34332fd7766d39d5708ddeaababb0ac5a29a9ea1189a6c9364b93a53e74ce3d91c656df3d38312f79de9add45d46715d78a8c9aaa5414540d9cc6553cc911bf4cca4e769ca5b8c576ae8e55996a8fdd8058f91c9374913ba79ee9cc3ddfe7c6fea590a7ad9cff7b365881367cfa529a85ef8b34d64792bf78696493eda9a38dbe8ea573b74a8247b04006d505ad38846bc2a3117bbd025b0f7a7de41806de885d79e49a5eee5db12a57b1a7da55ccb00b5b +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 155c29c5f0378df0cd0e847a80a07143cf7522fcd880c9229eb9feb1ce340cd2 +public_key = 2626cbb144988a6ecd4a5b3798aee772787768b796a5157c181ae265cebc6ad58814adf8faff8b3d8866b8964a5253b79ae86064b5979a0b468f87ce0ae843f34765993ee4c03f7ff08c801a3a99af1cf7c72cac496e4620d373b24cd1d1ebbb343ec4f0ab6cf8ad3804545427547acc2a467e895d75486f23dcf3c779a3910f6e41b56cfb04b1e32e90894a3c1fee6f1a0e7d7cd75151047618b49921c8990a68da04ee656f94ee962deeaddee06f0cb94ecf789cbea2b369e135bd5e7d983736f83cdd985d160a9cab3edde18e3ee78b411d8e3fb40d8742f793e337a699b3a1180c5a49fefd92b9709525858b7dced3dfc81e0af501283fbca4c4b5fe904e75ad66a894aa57cf251ee8c73643af435f035de3d6664543888f803d327bc65e373ea4da4b662923eec5067ec5a8c354f94aa207b588fe39fd3583b3cb51e6f7926b9a914c15928738a75c9b618b35dffdecc6116e618b8d38b3c65841ab3d5c0fd4c22f723b087d4bef604f5bb6ca0e3c4f38903f75f48c9783db79b98b9a827e5f8445cf6c8ff4d8d785530eade23e3d371cf46308eec6a91d97aba6f80fed58d5a8f07e666ca0ecf13fa48892c3b7d5f49bdcc894f2a8659fe882201b4eadfffe1713c06d84e56a7ad4d85cdb29f6b53fc6e774de9f5cf9394ecd3ba919f3d43d55b6cd89f43961cf9eda28fd878f4a77e9e6da2a1842a055dab82d8d24cc865a6393aa9fdb62f96abadcc0651be71b473db3f9e9078fdcf7ea3730435f63aceae9fac889d76bca76d2ba96b0eb98aa44136cc3a978b747acba054032d36509a7ae9dd3d856bfb169a6f8601793062c5705c5b103344c3a77947a9fa2071c35f6393942dba3b8545eb9a58ded8a5408af70b686d61dfaec5d59df26ad5c108f750af6e51eefbf029af8667f69789733f1e4c27a2d3e2fb837e6bbef31cd4daedb3ac38d9791e8ce988a4c1754c8fdfa8be0fb8c95af40ae4bee73ecca729b4ab14d44be1b97973aea27cbe0bdf4f40d49a5691e4b938bcc051bf6145598905735ba2a3198e3a375b752d8f5a84004890e2591697ea34469a8cdc8b1077482f785ac3e497574aca642d74a3625ca37dac98565ab6f4c95a289a434c9ce9ff6ed12acd73b5cb7563d6d47873fb186bcb86ac00cef65c42dc70788bca0f462fbca6db98d59874f5a6437304ce48d5958848966ed37c6dd1f27ef03ea8ab817c93ea7c3b0cd6447eb823e73dacc5fe3b50793457aa8f0b9b484d5830399bc2c98a7fa55ffc317e3fc85ad9a87d7e8343e2feee3ec43662527fcd426fcb783de603f7e9566a01eff7d06b460d155c8717469a365acd5ea80b935445a76e0efe3d62ca954276c70a8085c42aa7f836f8655f97a07cd98aa7ba8a1783060fb819efdf7daf9f56e8ccc9b7f539995e4493dc23ddbb3a196d147bcc0edb69a0cad3bfa6f6c1f35a611f686cc7e801e23de0cf363b795bdd9d3fe82978f53083262b7d3f85398d0587c2cdad6ce1c83ffe6e4d1a85d4377846248e4d804cc00778979edcd3e37d4d34563fc23494d84b6a458f402cdd9b70e582bf48d762e676023439befc48e5b54bbedc592b64d038883a1ca9a4a843c100a58d29f70f8484da82ac633c3550a1634d0a7cb8bacaa19d4500bfdae14499ebad63ca2dfafea753e772f46a0834942643051be51cc9aaecb587808754e2abce5d6bfc07466776628e30acee32123f0603499dabfa5adad65d9cd88b24482201cdeb26c3f7de8751ef56850ac809768e852873b397bd5ea5ce23483d9c88e4dc8a9f9ea6c3f09d9bfa92bbfdd0680591a69dd855269fb77e8184ddb4aa0d4bfa7013ba06d447598e95222774badd3544b6c80c229392b0caf13a94eb3bc920fecdad3aaaab45f554a15ad0aca4d7038c208eba4f5be81e8194e21575687e55b5bfdc2551acd378f4c73c950b1d9a8a86f64adc88e6f3fd396cbeaeb6ac836ffcb3167c7f4db6bf0b6552dc3e4bc9e584b86c0d786f041075a432583f8f357a77731eecea7eaa3fdfe4da8acacd9d3a687dd63dff1ab95c4e56537dc6e833edc0d3c582049a18013dacfc37910aeb437f9ee1f77f62e03cb59a87485658183dea5199fff679cf66ae7dfc27ffc5c2d6ab7d6e511fec920db37ee95f277fe961e64614ed8e67fda7091988c176e893ab163e034a7e92d569882badf4976ba648396ee00e3af7f5bdb9a417e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a9cb9a61a3324b1ea5afe693b32784e2871096b2ca14a11acc9577c52359a241 +public_key = 032c5f6aa3dc1f65420b1cfbbab954ae55ca838fb1da2a61f2cee1df33edf125e504f9d31b8bf8e7a3e09ed49d478dfd25b37f58fa812f685090efb9efd3e9a1976064a648bf8af51a948b74ca3f1985c5f124d33f1f40bf3691238b507cff8956b5f204459eae17fbbf1d431a56af24bce5f8b546a63cd3741ce6ecc8afc58871537c485ca93617b3f4f72991274ad549b377ac14daa12a46d366462ff7b76b4f9bb88e922f7a53973854224f4a24b366651b72c5f8870d2e835e1bf94906efb367ecdcb780db683c96ef3b708889303a4b9f2b862b68a4e36e4eb2e8e69edce349d9b71c6fd6973487660b6e4cf544baa688203bde8df9ae88d85115f9a183fc952666d866199383a9e4da9f6cbac8993013c59e979aa8444a54a7fb99257542e4adb869cf56dcb305455bfec5bcf74e37b73bfa6cabddcc6c386ee6e6d7af5259ea612e89c21a27db64e379459bdabe7f5dc8f53a55e5760438fdd474c4ac3dc4218a32b4183f0eff4476edefc9f8550b0aae3a9dbd414561464ad23445bd23c7c321dc80ef05daa6155cd7cfd59fca448ded5d200d62f4dfe849e38a7b9dbfbf15b192265f11b5bef91a6bcd18f3e3eeb41485de057583401b3a5f24ded7bbcb87bba4b1aaa1aa75a911dac26298a7baae830a48332f139f7a5ae2a528b9496e97999b5717cb8552b38f7f759beddd4970eb64bb58f6a5cb47bcfba7cc46ca17039f1db3ddea436de4b6ab76f43c07dea1db65a9002aee106edd7b4755137bb4c08a710e9a9d7fd8cb32d64153cdb8604db9cb433ed1d7bea29fec698e30975fd53f993739e3bcd38951434bf91faf6f0948cb2dbbacc3088d58e4fde008ab582bdb3a9341ac18c28b23efd4e49964e7fd65658c684472551ad6e68391f8d34bc0aaff2526e745c74d6878ec3b333ea58c412f68b44d066e33cb7ed27f53fa655603dca0de8ae3c8cdc78c9630f5c57ae925ac97b8f3102c423d0b7a3af864c7a95885e574d67d89564da3793b3cd0c73b5b2e660b64577d7be46e888a113bc44d78c175aa7ee72760f3c6fed7c971af6fa3e9fd8ca4ab7daa43c51a18cb72158de398326599f41f07a9e78bbe0c4cbc5dc388b03a7c131c885fb63841445469d4f502de98d114c31da36418985ca5d951960ae3b59599f90750e4567a76a767547baea91c6580b6f8c4cd52c3c8bef8755239cfb31e5f621ea5579b649f6328695a06fba9df8402a554942be1baf7b54ffab7be2e918a0a6d6a368516b4a04354b6aa2f901fb8a0e9bc9f7713b9782f6bd8477d5d7d88b8c9dafabb61d0c3fde995f9aaec904aeab8d034dbd01e4c5e4afa450dd53c6f8f030ad5addac64d9e8916b3d31d78d81045392769d1c8d8cbf17741a7ee85250c7eb9379de56e76d0b6cb037fef98cd83b80ceeabc9a0cafa9585aa848606c9cbc58b96da5a904e4bc9a6ab4da8e1cd3b3b5139f5bb5b352cb67f76d8e0b3fc79113685e85595d4d6fd41633fa19fc31fe3e0220f960b1df4d1f460be89ebdb1be9b77ed6040af7d74f3864e93493066f859b86b7cf693a899dbc36cf667ab5e4e8f7847ecc411abba846b78019dc7023a09409cc464eb4d8784ba0f643ab6f33665e525c3e5d6fc7d86ad6d4b237f334cd71b23595ccabb5459b6307b5978683e009be4ea24fc89a066d5e5c502724bc395de3b5544a99aa872d5b65e62dd31507d191d9aaeadeaba2ace8a5549d11bae95e7d46af5ea864eb4d6929fda8248300f985fb5742a9fd623859b2a7aa600fa835a0aa647efb62ba3d9ba89a9c4b7478a9bed86d6c955844f2370db65b8d342cdb6789fd9b138456773aa8a3be75f477b801cf803877f53b06b5c5296d8ca3a4c85496fd9b413383c0cbb95880545c178d99927ce75bc6d08b1abd6a5d5b8c88fc9fed68785f3802a936830c9e58145c669ec66bc56abe38d4b1bcf8394b9f0db695b15c560bf48ded5c54a57f44dbfd89985d65b8aabc77e4a6d1178ed5c5d3a4ca40c2584e878c5c15fb41307ac297da94a3ea7e204b8a4156489df3577d84e86e5f55156aae92f77513ddb54d2ce559b8866a04efc7db75cf658625f784ab36d89a076ae63ed3ef3d53addffa22af920c65c10ed6437248d292293f495cfc663a87d7eab6f01f6a4e05d1039f4497f7d1554f6f8b9801b09ae930907e6284e384a1c6554b2bc594591397810b18d01bd3777534 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: e99fbae8a024ebbbdcef32ce213f6aa942e3eca925e5da4c09975d773b33a175 +public_key = 059a381bd53c1ade70642535f7c56a2f6bbea8c8f4a81339da5945f7175d08c69784e67d5e079fedaef9ee799a196dba58485ed73ecabc19ad60934c193af7f9266bef098ce2d8474088f6afdbdab53d57008339c534b9e19c5a364fb40a3a88d41533b3467550cd9fcfafded74bffd7048e540bc9af59f4722f771ffce29cfe33c3c3711a679353a9a0ad47c4094471aee9619eb58a393ebc60257e08dd9def864638498d3a83ef24b8e41788d1afaddb5fb6cf3374320a36ed58ce70dab6a473c86036733e86ff90c9aa4cf7b56011d6e723839b1e7c629c7cb5f4e4bcd1d6c9fec583d4b78670fa7a53f65ba0dda91cc6620a6ce129339ce2a93a676e8c1ec69e585ade9c283993268fdb1c8ec25669439472d409447b7ad4cfd699d177f52c29af53fbf7f6c3950b456861b7ad273887bcb3b41e75bdf2a6fb604ba6295fa92f8be92cca7391accd0bddbb6577fe673e7ab82bba06766917455f7fea8af76dcbf6f3e03f7a60b9736bf897b3a53c9be798ac0c493911b835b55e4f3e095a49a474c0d9d7987867ce1eae25effd20faf4bb0f8f03deb2966d5271dddc733bec19658af14f4f2c0eb7c4b8896e77d6ed564b880febfc2fd8f9f85e1c5df44e7ffa5aa461c26bd319567b7cdac03d9bcbcb0f8ab10883725da6436e38b1073c349aede7eca92acbbc0a95aa88864d734bb90cc8b8dbdcb91c4c333ae46dfd8353c27438abab8a6067fd19c5bacf6b35a50b86e80a7b9b44bc74f74b051cfd6975f98d43e50c63c7a25e50fb76d82c95e637568c2e5a9952e7ad62436e850ea0545c6415a948aefe449b5e779005bb08bb75fe5e8c2eddfed6cdb63dbb35a386e2ec44b2a04a3d3c15414d0e93ef6cd9aad6fd1dcfe2bbc7bc7b48dbc88a37ac1d3d8736d5ba7883cc0bc83b2db2ce28a31a4bdbed2e6b7b24e9bca5425e255b25a86ddb5ba95a0dc109fd36a9cafe942ae967cff5b03cb73369d1e6e3f613b54807cdc737984da26f84ab0b4595bd734fe5c6019cd47d238fea777538d49992a9fd1b1eff4a75d08554405e4cdbf8d386c2eac5e07470d4e6d15de45b3f99cc1b9b6f8e459e9987b773d69e3783b521eef82b177edd9c631bb4a7615fc8eaa8aa1be6f26aafb2d7a6ba36be670d27be1ebbf8d167e054a67e94ab3adcdad5ed6d9b527ea1d4bceb3a2876e33b7218c7b1a119812479c4974575208540a093e446a7be7bfde50859ad522add891b7a6cb9cde236b48868c30fdf63925ed548fbf1756c3d9efa564df5780ff7b1b1f830bfbb70cf7e81e08fabccc941f1d79b6db3a012d5b7ce5b7ea9daf4b387cbfc34400d57f00cad7d608fc28a9eb289f5636103e430245f274e49c9567feb569f4e3cf1cd9b80a11aeace48d4b899410eaefd42a9ab68b76c2c4e97ec5aba066453fdeecf05dfa315a6e126dcd4fb63361e137a258832679865cea937cbbd353474691818db1c9fcd09a6f2ea137e4d7bdb31de8ba27582775398027bc550ad9d7a23655655c492ff31828e6d45437be299feb73958b56899f25b3e488744350efb015f518f3caf122e5df0bc3265d648935a68806a756185d6fcf9d0de0cb07f7686223b99917e9af535fac61a6c44a7655f54585abb4d27efae529fc2392dd9b4796c87097c2667d95bed3b924653bffaaab6c9d35d176fb44e84e69ff7a74d59f54b44ff6fa68c8ade798362de1966db1a982ec3af25fcf0f48f4cafdb53cc5f6f055bcabf7fa9e817d79046b57efcff681ac8ebdcd734b7eec76ff4e4b8d24444dea1d339e44c7e2c67e7209ad34e9a6791888c9968987f8edfdf2e5207eab3f38aa491a5e90a885fe85d74e189f0ea64b6fa077336aab211fbb75798ddbe46f47299bb8f65c132e48c54d47eccc7aa124547ca1d831bd98b07cbef435ab7c96a4cb9b46b36b6b667da4eb7dbfa13febbfa88b98f3c6c3704be401ddf6566fd7d4c4977ac8c98ac44959cf8f75f80ae68466f6b749575dcde4aaac4c68e07767d09f44918bf9df63352dcd76c1e393e0e5d67c76855a989b04547a62586fc7316f4835a663629ec83d3836bf74593839a83847aff3bcb3bbe69f76dd0c6aab1df08994e26e861498fa2f4fd120378640dadb16da9c34f9bc83f5eca34f79404ac3c934ebed499160fbd66a3d9e7a76cf09507b31fbf659deb7bb881f5358d70595c01fbc7ae7183540b7883122d67ba +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 67a216f37d67f5e74f782f1badbce1cc8c80a6130aec305b421899a4faa0a6c3 +public_key = 129ae70837c0c51758a90e31698ec56d436839e5778e79553d97c6c48587bac980e17632f7c7af3de5a9b15ca6d346f6254a9e840d9442289274a4c86004fd86e8d60b38f1c873aa5cbccde464da8e5a6784bce5e6c3dcc71a8de57a83bc69f4d11e7bbfbace8ad5cdfeca785fcff4baf8361eb64c81453fdeb54e4e86ab4a397ed6e84b9ba73a0c4b8b6073e8ccdace61c7ddf22c4518f463d844fba6faa846eb55284995f36a7467385bc8b7768a8d7ef62ee22e2fd66f1f619e37c8ad0872d68ed084afb9dd8ed7c955623dcfd9149d34c9b3c6cfb7b31345d2621662a61bb63b9c3a4586c22025e6ee6c3f2d35d26fa3ffc13c5426d64093cbc768985fb807dc697e755f98e1c60a4318bfeed8b5a7e52ce784b562c3af44065451e22935ba9c3ca6a63dc945ca37489e317abbb02c9e87b6b7093beb4049c604fd87d3596169baa2c6e3a778f6eac6fd4962c6eaff07a70eb7f801bde43e9c43f2a7f909af7e0f3b627cfe48416936148ee115cce9659c5b3db6bc19ab7be41cf4d5887d93e6b7d31899781f44c756790ee881fe6d5d1383409e6d8fc2bedd6f35e1cf8e5361a66db6244b00efb61a46a889ad6f336d409239abbb9c717d76ac4d658e728977cafd9bae96e05d796f0bfc4b87385efcc791abb5e69c679dabe34e1ee44ea66ab3d597f4c3f7d99be8da9e5fcca8ba95f9699c3ad8c90199a3ba6e3cf975fa79cbb93c8c949d0bdb6a8aefc5e4a6042f47b7885b3843a7af4c7bd59d68228875a10f32163dbc6c5d76d0853be448a8a85a8be09b94e5d65d3cdfe94a977396e7e924bc5b420aa6283b7ed9ac822c27641d9ee777a855016846899f987e936488e7ec9bfda8732b6ac23acc24cfbf8719be5abf3aaa7ee0ff02af63858b7405482d684848d83fbf3b317217be6bb750cae74df77a8dfe3f539e8964b764a100688301bcf0a963d6163ca391d33052e7488dff7d4da5be786caf9aef94ba1782d56fc4476e3a15f97e9f5632c524cbc053d382f8f85613e5e6bac00b35c08484ddbf159809849f8f1d4eaa28abd5f6978f17ed53279c4689c77c43c0b649b8aa14fa9c8ca969ff8c82dfe1f8bca19269a9d799854797d7489caf779db529b988472be25244d5db659014138d9b6e33171c68961a327099477769f61d5f3f9ba6a008d3c14b1ad22969d26389e2c01f30a8b763ae397f806cfcfc5ff8776443655f74f6dde515986cdbb3e285f9c72fe7634c0b44a52e50b1dc75d8cc512e5d3b3ef748747eb70e5db9650360f073936398356cc341a02ff5a3946a61bb38b2f6ef0ef85d1686a29e66e92d9af6d43af2f274811d0aed1c4cbfec93f38815f32898d5aca8d00944b667346e1746e1fcdc3d475bdc31bd620f69b3d463f1d9d9ea130cb6842659a7ad904ba598ac7d63374e7e186d7e8663f8cdbd35bd0646b023c3546cfb437463cf0ae5dbd86ee12b8ec24375f5b4a3a0548eb9997030bcd92a579bcb7ada984c9f3553e2931c65334f678e98502b5e9d15e645970cf3420ecd956face9ba56c52eb692668976b3a170d88c461ee47e6c68ede8a29fd4951e3fac9ecd6f700cbe9b536a476736b1eab14e2493c5a94a07f6ab5b3f3ec3e9b9f649f58275523fe3f071739b585b5d8657aa512f62700998f0c5ba71974c35573f15ce3a7094f14acd77624737e6ad6d52863d6308e6d57acb500e42c9167d2784365ed78c9f7bf35c7368f3bf6dada6fe060ff89ceb447859d1dbe87e414ad4f56fb4395b5e2264784c2ba356935dc1ab3c104b6be0abd8942ad2522d55a1e7dececf81e09c78215ade58ffce035947239e81b943c5380b7e708d4fbd8e5a204df3e4aab03fb4b0e2c459f58c348249adc6b4a54756f2c336fb128e4acfa872bb6c79b46e4e3bdfa1517adb0dec98f863cac1bd61670ccd8d0c6f7eeccdac933bad47cecedac3a533eef2cd40aef8bc540f5e0dfbb3d5c6cb2ae96f12ad5dcf8885aee9756a13ca0d1f80c4d331d50b850b7cd0999360dc585e1d849115be3f3849b36107d93b5b3db57d796f5761f774ea89189c748b4f6b88822ec85b052f8f04a669c495af4c19eb54a3835b379201d9c7273557f74cee357588b68baf3e2a5c88bbde9e057cdbed6ce77fc84b3ad4503372c0f370d114ae10f97052fb3ba450d323fd3bb1b887fc4da6dbfef06ba5a2d5344feede346d1f04ad60895ab5 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 52b19fea232c9154a3e431e9d69cda40013cf2d485c3cd027ad24e645420420b +public_key = 2ded82fffdf3e6c49fe048ecf056ac1bdc958a5f71f5ef45bdc98ee3a87f661e91833bf24b3c552866ff9498979c4485c42d6eee0a6f5cba8fdab7dded1d5bedd4de4c6b667d1739c868df2d24637104e6411c803bedb52f0b5a6cda5fc344df1b0ae1bb29acd05dfd6f06472c14cc52556e5a97b56c29deabe6817985cc346baa02c76afbb6b6dfe33f711c78896a529656b4acef5516e448bcc4edbabc340ef4b483b750b028df68fcd02037ea0e9b9f466a4729ce9bdab4f6fc9ff94dbdd261dcdc3349b75d397674644ae5ca363774abe9af90240abe4039a7e124cc894657ca0f5e1534b91b896eefd3af2d559da9f8558fa7774708a7fd535580545bc68c9cc89ccdbcc78ed62d3ffb653965e7b0920574b89d7443b993157fcf1ace7dd18ab8794fc85356f36664688169fec3f5cab67b7e768472a08a43692ef0f59ebcde05a9805c6787b96eccdbd5d7d944fc858b5ec3828869f34da88d8e0d542c1d4883f8f4e7b630278ee1e4abebb5f4e03ea9ac2b187e046b4cd109709fdaf6b08e344003d418dbbc34598ee5ecf806794c4e0a8c6bacf310c34636088daa2e47d6c3fa7bb447f50b898c5a3e5cb43d6e4ce47bdd85652ab9edda72f25b7bf35dac85eef890ce88ba645d88333b66cee5082f334b66e6429b608a0c93d0d946c15576c92d93e1bf63bc6fed9fda997a56ef1ee4709896efeeb8b557b4656cbac57dd6efaa6edbc1c95726b561a1ca4001ff8a582dc42eb932f1ca8fc9b647d384d117ebca3d5587816bb48c0cedb4e9caeb7834e28e4a7c478fa15f640bff53381f42da9575c2a66bd01c5fca4b958ea437e6474301069d0debf54bc4603d3ba5b84e5a96e5327743662caa7e0806d9be974341c7ddb77a850b3ce1e3b4cc6525808238cb0986e1e77cc44afe7c63eae22966394e79518fc6d22ec470e8d5d82a945c73c5ff05c38e2dc3419a04d90e99da6f8e9bb1c3d1056d57e54889506ee989b4de854aafb62ace7e586794afee292cc8611e81599977d9fa457bbfd39b14488d5698a9fd3df1b5647909e19beed5b038f19b3c90adac962369ac200d43373bc243286c24f599de4af86855f4998e98972cef894e9ca09b3e502fb64b3fedf8e3fafebd572bb6fc7397f35fef752903535c9c912af3dc925ea3b6d4e5d59a4969cc432d0881970ffd528d37054f36eb54e438acb6bc6eca45c947ab98a53b44c48129e35f776f2aa4a8414ae142cc4eed9cf948f8ca5db39388dbcc16defd13035763a57c523b99a2aefd10df9b952776eb03aeed697320c66c0f65b36aee3c7ebbee99bf81e8be7cc2cb9ceac7f5671bb5df0933eb5c70a3d39e0eb5a55ddfdafa1faf87dcf3e10ab77a9c97563deec393b52305ee5307b177fd5fea16a2dfcac794f834f60a712f13ac8e5e74d3a7627ce66fb96f497cb95e36da3f486c7432e5983c2cc8cc3a7582a6b22c5a7ab3bc5107c831af145fbcf74efa5f3bc8fdca5eb97b34a3872b9870eefa3fab06da475c46b1e736cf03e4f046b6051ce3392571f3df52959aca2f94e8f7489809ea5193aaee829fbea67e92632d8109b37bae34f4ec3655adf9da9daf35f69c8a3be54793655a9e8c6e9c64354a94f458067296fd8b6ab3b938e6b188ccf52d4569599f82ec7d3f0dbf37a67a779d8957c57dfa9be8df2673d3898acc60439a975c8e9d8342f7fea7d6d9ff126d6435878739d3bd2756dfb5e735a73cbd1cb6c658dda6074633de38647035b54ceed986e4573e09820ef56fd8e7eee77882308fe94237c0b5344cd8c888f12bb34fc86e6157e61143365fd45960396bf45a8868176c7d0c440fbb71b8c6aca11b6ef3e33484f9bc23dd900129e8c45f5cd1fd724423bd1e2cfb46a665539f6a3a7ad38a5eda3e5c41d67bd7c1c4ec645787e95d3c613343cc83d66bc85b039df5c3bb6901e33e243ad062fdd1ecbb7ac79d837c1ff82a457ccaf4ddde98934bf37dbbbdddae287fa0b6f8c42a66a8ed5a6645b244f9d9fccb6ac00d75bdfd974ba7d99a7c67a2d7e090c7bb027fe0d0ab69ff775dbc57f06429b347e6749eeb3e23983759a583e09be653cbb5ad4b677f9b9b375f87c1b559c199c3945653a3bc7b0da8b41914be5c5ee26818d396795f1b95ae1497e398ee4f8f3bc9410dde669886668c2dddebf98e5e270510db63b9982ef818d1253d74a644fd56900607545ef8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 64440adb05db3308b189bf999f9ee16e8ee3a6ccbe11eebf0d3ae4b172da7d2f +public_key = 4f34dd6d4ac24ad53108968ce43555fd4bc4e3ba3df8ae541e0764c6a387de455a575fd3faa38457376a327d360b63d3be69450acc7ffdf638a90c7cf413e719fbf7fad55e4dadecb7dc5fb828ae5083d609c8dd5b9fa89ffe963d836a166858820f875add6c55b9505e84b1aedc5e07e5f94a084c130ec0109699b40d9b2c67603c05594904d1ad487168cece048b49a98a8740abba939e618f7c395d77b0649cbec2afc0e3df5c86d7d320f9fbe7595e114de3c4974b7a3b70d92ddd61b89a1ff43c30f48c1385e1375ba781e74bcb03f3bf9d8d09fac8991b4213db7a299cfc29455b3b5d92ec96e0c13f5187434239a8b652fda16434dca4f8f7f7bb7345848e01c5de3426fa35acfef8c8c9e6e9b7a18bc372bfdd2f086865a83a2ba3545953d68e173941e487571de840be9bd08f42fb576f908a8d805cb0919d54de4cb6b85be79478a0bae353d9cedecd278a310466fc1ad0c68784ef246f1f0847cc07f994549807cfc9650c9431cdffdd5cb0b3a9608bc85f02dc329348e1d883f2dc4993d4de3177b744092fc62fc7a31fae7415a8e4c59bb209356c5eefd620c4dd08169df2befd924ed5225cbacd9c6055fe499e7fd4cfed6206389b05057e579a9e294b43243ab92e13626557d787bf56f615cd364dc5ca675c4bf68f7da4760105367ad3c6d72afa4c2d9296daba2778f23ab3d845d4ce7d67c2916e56bbc4c2452de7675f765e294a9f2fc58dbd31ba06a11b5a8ae035a37db36ce187e99916ed722cc99eed3e96ec3216543ef74447dad96bfbd386b3154b36ed8dcccc88791677054ad001dacd8eb6c34cab6eea355a10d5e7c55e64e9eb4c724d91c01f9186a6b3bf33a8604967175fceade8b55bde7472b49513a79f2b867bf3157d5dbc929984e47903ac69a6618f67781a55d637eca5d0a5d948ca8f3d7c41983b8943bd3d6a04842a09a4896ba3cd345e7e7fa16ba3c63d95a1e85ac4fb04fffb588b088749e2f66bd7fd6d56bb80a818c2c56c5d1d1b5580863d1f0edbe2a97f5f83be1259ec7fe6f9d21f823e7f8a2aec939e163436259367473ea0b63ed37bac19934da906a21e5355a4bff77519c8f53c96b5fea8704b8d79666c12248196add48f5b9a8b767ffeada20697caa075ac25b5546af3feb2959948ceefdd384aea2692f7a5f266267aa559c8f09e68a04cc57fd8ae46674b75e785536afb1c0c779a553f4ce5c1c06d94541363bbda825fec4b42035325a3a2b1b8e35dcbcbf22ffb90aea37f9f5440e95c2e5cdee1f69319dd4283cdbb5fc8616e99c9acf8dd27a79b64c843b08cb9fc8af7d213d9726cb50735cb355dbe54d86860d7708c1ea615dc662edbf299a7d04f9670e27898e78a4b383fb4ae5cc45aff8e7884ef9355a8ef9b394cbbd01daef125bded2733ff060ca523d378a5e4fe012fbef3df700d7c6c14ead9736679b3adc33c035b3f15e3bdb5b46fdbbf3a5b80d65c4be918511bc8631e35aa5459793f858f364c96f31edd8859f29acc89e8b5d36065eafc9ced482aec21ebb100079cf3d45ab4159371c49b16cca69fda67aed588204ddc5864c03a9391ac1d80b936d1f23a417a0563c1ce4b17cdf55c36529f74a103036466fa9290744eca08cb16b94f3044dc4968ebecea5b64088fa7498e02b439981cb4b4bcf9ec4684152830ee8f864ca8334823f3fd8a8f66ca34bd4abcf07dc15d9f6fb8b6323d6d9efeb7e0dcb6548c06bc13d6bbb41b40caea5745c68cc65d873bb467f9dc6b3f8fdff4649aad27ebc65f7b0633cc2709932f0869a18dfda89da30586ef9d146c1b34d05f7cec808b6dd5d97c657f32e843cd61e39895adfb776f4b73739e3a1bbe50beb4b2348c836592a2e3edc98843956f8ebbfdd112643bcda9a01f34a8bfb8f8333b32e8063acc5344a4b3666779ec55d5db2f3d98bb4c7069846283b57fef7ed89654a8ba06797c57c2e7e9bf1414d77c8d928f6aebb6c6a753bb8a95bc46748c32e1eec8f7aac1e2573a48eed4ff9567dbafc0732c501bb9ac1315a212dee5930ceb38a69651347b6bbef50f3895a7844e1eefae45ec66214a8b41da464baa5fc61ed0c5073bdaf5b4a88c70460f56b6d65413ab3ed40fccbee864c578733e4da796a8ea8c3849f465cacaec79898cceaad4f4fcd9b57b426caf306d165d1e0ba6573a638fd7df6b3f824f240e7e0eaeee7d7a093875 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c8bb46b3a7344ad170c2052fb042b5a3b62e0590562ee82577b1081f6f114d16 +public_key = 159d5ebe26c856fcce2d6f3156e43efd0433c19858c98643625d96823f591db37eb00ee3c1383239cd767316c0078ad0a57e4e49d694d90fa510dc960d5f5bf70e384b96b9024eb846dca14f44e59db49048afd5b318d01388e9406bc6e14786dd4d79e058ed098ca4a4fe5f5a3e35ca64cd7d3fc46b45b3bdfadd7fe7ddee467020ab49d446d355146d800d337a1cb452357bd11d74234b464a134abecce4f7557597cbd57c4972d30de3b5aadb843f8e88d76bd257ca5aca8913cfa9f90672903cbca16b9747ee35108638c388676dde894533f5dafb4ddfe435e149d8b177a5fc883bc233679df34e41ad9fe384654e6a857e49c5f62aaa31fef3ee7ea4d79a65bac4deb2ba7e1c497ea29cd69ce9898f3789fb2bd3cc07a5789569496a5a6b84966dc3b601577b08cdee2bd6afc315cbe75bd3cbc5ebb699f036247481aad2e5d6ddb54ea3e1afa7299ab0913a92e42f8987ce8639bbdb953ad1c789d7e7adb59625c01b1c406a4b339d1db0c8947fdaf5c14f77f1be6ce1e3b6fa7065a78babe176e64ad085e50b67aaf718f0b9b6f848378c374a3aeae6c63c06f1d19f7972dde88768991734754368bdebcac2d6b899e5ecc20a3fd5974e566b4996be455e90ba9aedaea40ce8cbd68a6ac0cc708468e69d6f4ef81af5ccc7c931d938687ca4a22f90712bee72fb3793a760a6cf9942896854ef6dd26d6fb49cf2b545d6b54e3e8f5b3c20b446dfeb58663fa09ae6d2e5c54d5e1cd149ec3526758f174ba49134c980bce09f8eeff658b7ce0de88b8c861b7ec700f9db1ddb9265e9bfbc07a2547f6fc9c54419bcc39a3f555024af652af7740fbf383cb67edfa929037fb51d9c6934787685ef4f83955a4768fb9462249d7907a6d84215b6108c72e21fe7fd9e34b797fac6ea3d07b989bd7da23b8f66777e8f31338c68a5b1f9ecba4b18bc47e3e61419530b77d41b3864697ff4d027edbd248a495f7951ffc4c857aac6f7a3394662afd84f79d5854ea77c26e7c57fd8a3abdd399ccba0ae4780eddf481bed65e3597cf1868c328ce4baf36d981ea3a8647d26ea52a409e49ba835f48dce9cc599f70ee687fe58fa4e520d143f76edd125a3806c66e08de46c5bdd93872ba5f927bb2a4a88e668c40af5b4feabe7f80ca75ab58224caeb485a9e1c3a6e82c8e4a2bf3bb0e6eae14a9ca4e95d03746a574d87f9c53a343ab7595572cf2542d7a9cc9016de6e99cb2d18880f18fd3ad9efbf0dc5ab24ec6385895d6f6d9c143ccda4d42a27509ff67c812d98415a49c0ee63cb0ea20a45add59e6aa61f467db549e8bdc898656cb4265df3987998c8737f3c79bedba48b9c6b8967a9bfbadb22e6858307977913d01877f82cd38a01798d3c7ebed21459ed4c4ca7ee85d565f5bbad96c1897c55789b9e19a6b303af32f493cef7e7bae7dcedd67c3dd89bed79f6a10fdc1798bb47de73452a31d75435314ee7355fff3cc9561d5360b665ad88ae9da71a7270998b87e6fd5e8bda5ca969120b4c610848fdc6afc0e631fb2abc210963483fe972ad8b95bdca4116c2f5b8e88cd982f3e647ada99eeadb3ac263e0deb9efa724cf3f2de7c0c86c2a979791e3d192bc3163ecaf73d8e9dc0ce23535bb3b4db252c8bc269884cf84d7fcda465c2aaeb19681deedc99a3853a96eac81f77e1319afc6f67b2ff5fdba6b38533e47f4e589ef7e617275dc7cb44e0b86d17479e217093ed55fedd5a38f2dafc41604c592366a89c4c70adba149ac63de1b5e21e78788f33d9e135890f6ed6a5f9dd9f658b44d848623b17447998bacbf1d3e5b1fc5bdf8fc357e89448fe7a40227f05c64961cd643ac6bc3486c5efd0d3011f8dc4f4494ccbef3c2ac45f7e9d19cbc7018669921fa76db3cb5436763b48a8046fa71d186b57ca4ff6529930d23737c49698c15404effdf8f357d5db5f3ee4ae17fd8b69ac8d335e388fcc661a0c8b583f94a8c7869e464a0544c84d26da829fe770d97be7bc43cdfa856689e727b7884e99a5d9fc549369a4ec5195ef1285860dbf63085740cd466bc24835ae33bdd1499cea4ef814e571ab638bcf896201cbf0b83f4ed2fc6d4dddf60ac6e6f13e7f0ee4efb1344043db50cf86227fcc7bedac20f9364e2593adb7599b524f174d6b999d7f5f8eee9814642f79de48f28d8b47d06bfec41fd06e2da9ae905005ad241ba55ab42a993df7551 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 2e2b70609f3fe029a14d09d5d659871ac776ce2797a0355f16e2eb68f5613fd1 +public_key = 212bacc44e3ae9ddda2b78cc3b0c7958e349211bc64f036a70bae6067882330a36aa4cb183497c035eb2ba4f964baffc265f5ee9e3834504a08564db36a7e964ed91060ce5125659bbedc96e6663a479a381b9e5fda7b8a414d61d9db814d3e46a549b517a373586d244ea8959fbfd98bc37e2f7309e09749c4c689f6b640d28a7a0b8524fb9bc0b544eb219683bf9ee79baa327b5c0d3ff713b78341c9682f6a4e327959f863e95aa36b91aed7c1d67f3d75f8269b360984857df1636f2b8dcf1383a776cf30a9991f97dfd074b5f0bc4fc13daeeaf4b3c7336a4ff6ea8310c9c27f37454f9af40fdbbb233f689c63ce4b7cbb98d886b36681414902bf77a2623ae5f0c359c038f82433414dfcfa88373bcde7bf1d5503774939f9e6c415c8b929b5c2313f3460eba642b75ef38f3e42b71658de4044a9450a55ceecd592da6554cf746944f9d2e5f6d3495efda24a6455dc7866ed1119889839e4fcba3addcdd963c3bce5504ec3cd7ec040dba33cdffac86e58d673ab1ec7a23c3dafd2a53d5aba3c3c87e0fa544088640386eedc3fce13153681d28c45b3af5e7256b6fb9ddf8b8ba8435b2f917f7d4394eaf49981b397917ce642abb68f60d6fbb2ba6c2c53b6dc5795a36eba674778ffa7e9daa65ac93366954710419c9a0cfea47cdf9252e582a5ed7e0af8c53554aa3d79878b53506fad3846a9041664bac6d56f83eea3389e0f78aff37b9933259f7d64aa0d508584047503acd4acbfdce582eb1f28fb53e96928927961b9ad4511ee8a453738c78b8a796ceebd960474bffd2c9c825593ff4a95f3f659ef01bf51449a25343f171bbcb051699b20d501f84bbc64c4e7f9c7db129dc472e664fb33c6259e0088e55c20fd45d1755f8ced112e4521d58cb9c89575a4affa6caae5dba470a9b4d3fdc9b7ca6ac29ed570cd9f647d382d04a5091d8a1ef749067848cda293a47d7723738f0f35f45ff457580857eaecdbda1ad59edfea3adfbc6d7e87184337e9433ee8e3774c9854ef1c6b4c97fbea6f939845942ff2732aee9d3a23b72cbc5e22c43c8ee3d3ae0d33a7b7d400199df0b378039daf71205d052fb594d5f6e7c86ead7bdcf14cbf51225c7ff42b4b5f651ed65e43edcd5cecfe962157e28d7be4fc4b5aebb6cfce5396fb5eaf1bc85fdb5db00fa63ee9ddd60a5761dea715258bcf597a434e48b243dfd8b4e5832cd417c6c43a669d36e0ed872e796a2e7d515939823575cb6dded35155f7399bfe1b3ca9bfa47ebd69f5c8cc8879b87ae34a7dd3f568817aa409f3df22c92be454e99d83023d3caa2f8de0ecb88194e4b034ea6315ab20b63c422b6be867fb5e8ff49fa48d2fa647febc89c8cdcf2584ce44c29eb91187257235d857b9bba4be3db06be10a35d712c540e7bcc62373d76e5828ced49b656fd8da931f24a6827e3e4f6cdad266a3529fa9b47cb6eed4f5b326ab0c0ad32b78d9d83cecc3e34f7787a413daa7d3976aaf83ac08d87b34ebfe9a92a631784bce31cc66693c75aa58c7c87a9e3b9f6b62f9a500d8b8519df351694f66743dae3a59a96f99b43c2062fcd82f962856f3ee20b5217a4e14d1459fd07d839558124fe8ff93d4730fbc63f198a2eb992e81e5e0705dadc58b1e3bddc3157e4b526f33496eec20acac85664d24d57d2788208ddea7ae383c93971d96de02e6dac0d14fc649ce00ed660ef9afcad375ae2bfeb11998264e86ae066ee19d971699e83968a98be064486b8abc3634021f770e268eb4383aa3c938bf3aca4aa2a337fcd6647aa47428bc027339f290fb9f135820f3a8bea06846beac4c2af702d6dfe50d338fc8da590a564f48a6607bedb51e839a4034f2c9d6ea34b4d3c875f1ff6bb57797b076638e4b576fe8c5a4918d6c0de78b4569a6a6f6001c8a5fa1582bf4bb7bd586296f9ae757f4d7b6c9c39df5274fee4fee5f5ac0d8b887b9e598ee72cc3939399d2914a3ace06a41cf92f6da963e52e7f6b1363f7273cbf4a342865a76147ef24285113e74f7a87d079157c0cad700e6bb9ca99ae10b83299ca9445c8d24e55dcb625ffceb79c0c433754cdb88c2ec71bcb38c643ae5e165030de4c0aa8939229d05a25e80446a166e74933f46f41a6867579fe268e6e7b2f7808764e20c98d33d6c3ef48d1d21cb37d2872fe76749aeb09976580ccd4feadcea0b16f00970f92acb21c560501728f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 4725dd8fb314bfd8ee23731c2341dbe114606d9abe6434c471b5573e7df193bb +public_key = f91d37775c727839696aebe15b7d4f10199031d9ba3d3433ecc5d702068392ac97a2db354cc3e1dc39aafa7e9c4f5a7c051ef82ba4697ca8c70ebc4e179893145e79cc0df920d6bb7263708b2339f777c242f4c34155ac255fcc229d4580b381a964c281d750c15c42d8477e7708c45d6ebbefc6928f29e2614d9ac31a61400350e928a3b24c313b8ed210de86f6e9afab17bb075e32589ce15d3eca8c73d275b4baab7a98a778b97a78dadb56e1e657e68345fb6928b7f0378105383b5fa8e923f8d0001fce6b64904ad3835c37dcad0cb0a7eeb8879cbe163ff1e7ed994fea9bfeb9cf4f68fe504f9170295a8419c984283d79b882bc5fd876588ae74d3f207b3798d89ddc1bc90d7c91d8dd7aefbfbc0e59e26938ecfea3e29d5f83a03630543ae312ba5c896b969bcdaba15af89c0672b964a6cb1c4a11c3617ac3de4beb8b8874f85087a15c574c843e66c759741f493438a535919cdab0e46927de95802a5ccb3d78fcf3770ea9644a69c7313e4f3e9eb5e14e50b77db23458d08ee55f842ce48a699387e9e9dcdc63a23966a44bf927fcaf48ffcb36935d667ff2154d3256753ef3dcaf74de83c79384e89e4bfe597363684356ff5ac114f50546ea04798e377791b5553c44a9f7efdb48607af72d0f9a2db8e9a48749bd66a3219e946a2a7a0659d95ebee93c1650aef470994568625e9bc98de477bb5b01359c488ff69735485c8f983596e496e437a063838a14e9ae6877d0c493b5c3aa56777f3b7f7e0ee5825dc83ae9f4a51f7ef002748a5d2af1c1f870f5886b3aaf3e0c0ae5b625e05368da8d8a306bfd4a7418c88bb5c398c6cd8f75f9edfbcd602cd4997fc1148eab11ddf67c0c8c306e4b16e9f800edd9890bfb23887ccf46401b8645531d5dc79bb0def57eb8b6974723a9165cf737abbdb793bfc00da861ae85d3b8ea2257ca92ed9f547c6acaf35ac5833fddaaef38a5b4f6fff7b3fc692677766bc8ef85e34de6cfd0dd077574fd796185e40fa9c9216ffd6814d518c5aa8f84b1ccacbe5ced3e0a0789372c338a2bf4b47a8bfb0941aaa8601a7937d5577fdab4a6d3094aee8cd73a7632f417b63383bd035a351c3656b0b5fc6e435d6d6699946585b6ea9e8568307c18c025b8de9074629de7ddae6bbdba296e0897c8ea895fc6b5b447eed00e4c880747798ce4fc860c3bda63607b69a6c4fb88082593c1d965ac6cc71125cc56b7fb61eef97605787819749d43be4653e959bcf9a01c3ebaab30daae8c1c7998daef9415cadcd73cdd943d86ddcec20c537a6f296d89ff9b5d3af1ff3e4999cb6037d539092ef0d71fd6effeb1e1a498eb75f68e94366cd8912d269b2e1fa3f1b99572f6e38ccf9fa66fdc8a6cb2409d859fada495ce7fe7bcd9beb658f36dcbf3a5cdf9933ca1659f2a0551b99ed55406cc6c7fbaeaccbbc4b696485eafe07754da9a8b0b25ef02a7fdf2cce4669f9c0be64e38e6c55fdf37f29fe51d1a91e4253c43dd5badc8fcf3457e01cb59a96730b60d7ae0fc37a3b3f2115c8561fda2a1395a88464729ce8a16cbf49c168accd3e65305a6584939105b594bff44c2bb41415e63e5bb50fefed4e7dc604a69fb9f2f649c0686be9a8860794cee458a73796ed877b18e034f305db84426d9cf63f80facd95fd6774997e245a4c2bc9cb008ea3e4404f5dbd56a7c734b1b4ffde366541c83ffd5f74a0663a61f2773027f3579158ecd08bd014c5cfdb7610c6e789d8b84da23a58e67ea72a8ecf63cc49c59ccf045acbd3cbfed4571f6daaababf3bf36d91bc68ecbf4de674a7fee55fde7e0740bee6e7a3c94c3ca3be7125c7d634f185163398458311937adad8462b0cb3d6add994f590622ec20f6731ad8ea32a864ec383bd841dbd64b3df3d575d9374f6e83ef28b93c0c58fc1bf1d6f4cf4ec5f0d57116b30cbf44aa3bfe7b08b690ff891667e88d3b6702ffa9d8ed7b62cf78f693ea13c5ed679f6dfbf9a32229d6b5885404a83f6589681c1549b9459745455bae21ca7997960669f5ffa8daaa69cf06b17aad1cb95123dee53dca34d439167d559250e8e7f5e3fa919a4573b5500b9ec8ac6ef17cb5bcc38f93927f217365ef694c98a54db09c883ccdce14769b84ce736c5c9c52b15dea17ade4b8c58465438b7bae1c2c98ecf4aea6284cd00c4229cb6fe2f90dbbc05eb935c85f1ca2afde0d54307949544 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 818d3bb8ebfb32bf464775f7139bac0a5bddce80ec5798595992f9403002cd5d +public_key = 5227748594cc5ad5fdecbb390cb6a9b8f989c704801705f3321f5d91d5eea6174ef4a37b7cc5d5b5bdf9f54d79e14b957ffa2f903f5e7334bcfb6bd23b58d1f5f576333c54ef0440b4f7c8f6b3afec35f4e31943fd73f3d9ff300caeb80963d9e42ceea70e6de8f6ce4af647db19467e59fc1ddefb5b64f6b8339ea22f473d1b84c603babba7b32534587145b360474a8483be8b06a6086bc5666a9b5af8b4edb9f9fc6d606b85305c89cbd26a4be8a6b48678d8fd3ef0649a60a3eafc6443da94dabbdc4cab2b956b2a5b7dc9e7cbdac88a71d5c06df3b192c5cc5dc6b7d11bd7857df6a3f5cf0e6bfc5d1c80bde5c3ca33eac908bdb7054190e77d54e4db9e7534e0fdb36ec9f652449aa53d5967e57c9e358f8114544e0a5b90ffc490c4a3267a405e38653449b618ff6c6a3a74033ac484cd74d6edd29d98ff3507a7936845a6ab4d33bb4ddb8d675995f489ad67323ff6823f6e9c6691077a35a789e734bc6b8e35e1aba6ebb2fe7ee51eae86ebabf1b4968db6efaf667b50745000ffa33934f5457ba4635d86ab1a871c8386982a322c8fb7cf198ad649d60eecc1c2f4dbed7462ce4c6792764509e5cb9dcf8b5b7ea26e5f658c0b5b961e80f903bad708ca9bf7995e4595b9bdd9c614406c669469ceb4fa3740a9f9ec65cd3ce4a3adedde9a716a82530a508a7dcf16fca38bbedbafa8e0a8c3334c7b4a2a9d4b807fbea3f6e5061d7e642cfbe03ccd6c0546d2698c110caf2f194789d6e6adb3e03b5c7f015991d473837e9451c9cbc9de0f333636bbbd8f5dd0da77a683efbc3a831348cf1a3550166b72b5ddc59a5bb31eee829cc77c235b73bbdba937e5b45a456199cfe8b74ebe8c05ccdff9746bd64fd5a759a4886d312fcb63167aa3f37655a55e9acb967136faeeb99f6d66e82134e9b1b4eb7c36d213b86ad9c995294b9e96e77ba66a40f9c5f43bb38e6b7a7311d7c29d9f72f993d8a5f68c58dbe11e33964b797a151588ef5e5fc1fd32b054c7dd35ce5c734b8887465b0b4bb58c491f9953b1133561977f0c25401e6b577dcecbd555bb8ba7760fb972a7bf344e3ff2c0fa575717501c3e91ecc598bc93bd1468d0da9f4c06c36d046daab9678e93138d266572b305b7ea69a6ac8ca3ed64713719dced2ff7169754b4a3f4f029776ad3c6c3e33e1427d265296c1b7d56292d74a64690450555945a87ba57b54eb3595d08ff82ce552f19c415c6cfdc0cb5fc3fc3db16ddcd2d8b6beac782668eddf9986e1aebb6ad941a3745ee0b73ca0a5f98f5928be7e89ac6b2020555515d846edb51a75573ea1eef2d7738bb8c58bdde67968d5f03b4faff1b854d39810036e4b39b90c6f8bef32bc0cecd85466c8f55c7935ba6e57b6f46664d4468783478d4b121d6b6a026818ecd4516ddb98faae634977d362e316849f53b7a847224c381a8d2d6b84482988122a7c87d069a143e5fbaf56c9047c0374eb4b018d70bd885f1f3f52f16918dfd3af8634a907f91e7b64df5ee4feac9d9c10c7fbed446beff557d8a96e2dce7cbeb91516afff0b78bf1bfeabcea847deb7312efa782a567a7bea57c0ed6a55e3de2c378b2dde86909838b0eabc10da829a9503d9ce2f374c0d48a32c6f539a2bbf8ae1fbc4a5d7e230c9a399ee53113c1ddd446ac5e3608a567afae99624c98845a3ae09da5a89a309819ef207b46f28a5659f54c76bde348ee8a11db75f924774acd3c7ccc6b9ee7f2da2be18d4cf7612e6c792b7f304d6397bc9a7f1834391fa09e97a0f6c3c3b97e79888a6d6acdeb9d8c4b8defe5af5b76f7249747aba3547d44f7a9ebc30854eb68c2f6f8b404257cfe6d43a3b3f7d457651f0b600415a978decb319d4bb853b4dc48dba59dfb28f7c479fa7705b3a6cdf8a99def604bff670ab6a751236e094fed61e9fa285effebca600ff3d850f3c86c647746a65b1bafe0adf34003a39c16ea69a626c73929567f2bd01923b4f17f633709d224b74e511dd7ee8938cecbe5e1f993e1fad727dd4a5e3b52579c625ef79ebf66485083ade7bebbd0c9a95319ffa80755f157eff8fd63a30dd2404f9f1566d9142a685039c0aa64db3f5ed6558d3c7f38ece44b9cae5842f7347b29336b5125586d25e117f3afe13669bcd7991068bdc68676a703d8099d6db34d33fc5822b8cbe33012f5e916c80ec7dfb3661e433431ccb796ba70c5a1ee85d63d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c92aa5fb91c980d9cade9ce99d4c75b2ffa7d6a6ff9bd59def1aa701f2a0992b +public_key = 03a595bc577a703b420125336786fbdc7a8d14f6d784e5bf04ac62f5cba8327c78122f427a83800c9b34289fad6e93bdca2491720894ddf6e6a9a9674e87e439b8704ea57d70f9d95e05a0403e55c40d7b1bed467b7c7bcfd67a5dc679c8f6ba53b44c110560359c65ef74f5f667b5ebf9674a8ee9fc4bdbd17ddc930af79f349bec1397c5bf3bd95ea0824b80b674d7072f860aeb98f3bfc9349c8e0cd8f4f6bd386348a77857c277496cf20d46dfd59765dc9d01cde3c41df060737e668cb6440aaed403f30f789826b579359a3338c9ef6584b27dfa732406e95947d795568de4cb39c5beb015fb69404fc09ea8ec7c5658d1cab448a947f4adcaa99962523ec9128f58ab7635d78caeb86ac5c20db30a67f16f586902de863e37f62eccfe3f0cdaac4b6ae45c968fb8eaac089a04e7393409799e853499888dcebf9691defa7f6ef8925fef112af189cabc1e0da2fb9878c0057144bcca25c9a3f2afc3b92c61261a3557177629af52347355bee55dcec7be730639fbcf8e0536c0636bbadbe97674d83b6d2d9442b34e37d9a43e5d8e849b3c21369149b7f70e56646d984e00af43c87777083bc5437db14639ed8b4cbafc6ab7e72a871469abf40e8ecdccd753b94baa8e40e4956c819e3eff0bf3ad68792166d055f466b1744e9bc851e12648899b7666ae8a7123dc1e4a47c26cc8f1a497262fe86fb89a740cbebc6553ac4cd88c0eb21bd9c47cd5578cc58fc4697a0c756e7f96df91086aefb4cd03de84d294acf2ff87229e851f585d96d3b98a755bdce648e8d7ab5e8bbbe8cadb752973fbcdd7e549dbcb6ab750f8aab5d9d7042ab8f49acdc57f71d7bfa2ee148f145e82448d9fb575ef6da4379225bd864597aa65343c2eb8f8753ab2994d981961cfaf4b7f88d643b567462db7fe1e793b1a4ff21daac85e6c196ead54296b917c72e38e692797af7a594e50c35d958436826d36d13348f81851bc5332f7eeb55aa575af1cd03553fb10abc89ca5cf1927dd9537c414dec76749924683f3ded94c4c6b694558cd3ed45447bc5fd3979a694f7916b9f97904b02d48918e9e4ad9e88c99b5c28a6ac037248be9e3d54adcb0f3746acc3cda681ecbb25dec6d08d07a947d3bc35eb7b477ce29d68fcc74487fa126f98789d349fb7c58d9d9ecb1ec4830ca54e2e44dcd27b45c48ae07e84c045487b235f178075cda577b277d4803a94f9b07acc6f8e5a75696fd9f7c1cbcfc5cef90865f47a4546288a383c16bd5715ceeef845e9be7def5e3f84d68d0df8ab0a76ff372893618d6a28baff153beadc2e93f618e3026dfb15667947788b93ddc34f05374c9997a0ab8b72023ce47b5dc86cad0c86a37e33b7516437a23d37d6dab5197a88e823a5129d656b03eb755a89c4e0fec520b3cbda558130dc9695b497bcfb0f68fa42caf8b537a7024e3dc1289d7bdce667547b79ae655b4143723dca5ec494d851b3e3eb763f58d9cb045ca6a4d7627cb49aa69d99b15dc2625eb4d89cc55e762c1e358f1679b803da8cdc531b80580bfbeb8495487d3ddac3aaaf40bceacc457b53f6aa6a68db79d9cb95334de9b09df54644253dbc79b2b3029ef6ac874e042f7715da7e90e64ca4e1362463da882bc53b2d7f4f695e1021641ce277d0af3fd329b9ff554502def5a294a3829c770e9565512e5ff093eeb7fa583ca675491533d158e3ddbb96ba5fd5fd9b95cca15fb7dfd98000882be2cfad9865e4babd834189f91d544489ea561ec7baae5c82b09893badd920d6bf6efe391dfea2506acb25d79f6d54ea17bc5eb5de33f5059ae52565014939ab0fd9882631a63e582b486bbe7f850a17f4de5fa225d4dfa2a33f313ce6a426a3162993cb7370d23c300e2a5d2b8de02e9aaee23b715d1e860386c4bf5d80283a4727954f2d5e97e71f5bc3cf8757a63d47cdb322299e5f483edc1dcaef28c44cdcca5a9bc9515e99e7eaf82878e5757a63ff83c7149bc0152a674404b3c3cd6949a5df7b073f5387f8515bf0c676c53186d02a8c7af2865ebcfa57f22f6fadb6deeae67fa64e7ea4b863d82c3871d4f69974bb76e3338328c0064de22e38c138f4fdf47dcb5193d980f9a6b58f9af71a714aaf837aaf515313d6d17e9d0d6794f89750ce06c27b9e3832a9595b9a9c1728bbdc4515cf1afe1dcac211a3135eeecae628aac9538ef2fa7dac989ebf18207def +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 7e8086a01dc5b3bb9eda25bcc45d27f99874841b97237968495800e007696ac5 +public_key = df6fc02cbc47370eb03f5547f1b4a8078aa079c4cf39c56f899f5a9383b9a0f57b5884e760c58d2629c5d80d74e00d7e715a3f9344755bb9d8a4b3e0de83e50a79a9ee3957a83d687f5bfe7e0df6c1d699c254af674fbfab84809ea9a3b364e0c7688b296a3da82c6cf689db48fa3f66f5b652aefe7939ab77bd935f49c1e1af5422365974698c963fad012fdbd2bbe0a9dea78ecb392e6892624a3f97bf758b4f3246d67933eabe6cafbc01aad3153e338ab546b3154a80945a9c3ebb5f9c4071a4b0ac5beb85b3a11bee371db39771259937af7ebec742e7e6f82f19c4b6fcea70085ec6dcf3186c8a29f4c3a1d3ade9aefe3e238f024cbd30f6eb20ff312d9ea2eef9cdab68446bcb64af5d5c33fdca5e0f547c4bf343a6fdf8d384bad8ed15fa3bd3bee6b4d9aba41d41428ab688f950809c94404b5c3503d4d995fa100f9e61aef6110b64e41dc81d634117e3b3e1994ee3af79970daa38966e00aa9451ff4657a39b4a0e764c4af6803de8363950256a69d6cdf40f368bfb238fc3abae22ecff3fa6c9e8fd55a98efcec654adc039c49baed313e58e06bdee5feccc1ed7cae84d47c6d3671b9704f7d646cecdb1d24f3bf3c4fca76e2370f69a26b97325f4a2117a2b696e31708470ab6c1ecec857465cfdcaa5b1506abdcb6a5e379bb4e35846208d3c2b8eb27edd91aaaf81a99ec06737fdb6dafd65ab7c7bc4d97667220ea69896a46f31fd0b03335477e3d9e685d833d487bc39b69be70115f3183a4e7fb9faca1cc38246b3d0da638aa28c907d8f3a1fc779b86f6a1146645ebd583ef3115c64ca6468bc21a480385b27fdcf8c0e6b8431af70d5d61012a619db7e38ca97da793f807aa4f338a398327db62145f36a35242efec13d6ea1044b5bceff32f6ce6f106ad4778e8f849f0f75da87de8dc3213680dce572b16f5391a92de4f3e53dcc0ef58ca377be8a46b8ba55d6878f38c88e8e4bcaf80585f35b34ed7bae8c1f443a5eaded58d9d4a09366b50e7b53155ef8416342267352fcc7fb22cd5bad69bac0967779cdc2d48a60a8dab5b89d1b84b54f1a53b6cbd9b37d48dea04838193657cc7b47b436d4dd36cf9bb4bcc65f700f98a88a850dd0d9b00bc41c9f552e5b346427df4065634f4d768cf49bba93e758a04ff408668ab8eff93f43658c48b80b7fbfedcd258ac6fb10c51ba665e8f25537116ae53336a8f4add220eb70574fc599eb4500ac61e0f3398b35a21e37ec6c9821eb46c348c59469d9420adcb5d88ad32d3e65cbc356aee5960dab8f54ce6d033f0b7c8394a7ec14c5633ad6df3d67f608d6da726e5db22dc3696e7c352fa6faa0c8e741f7ece085562bb8a86ab6628149292a750588aa90d268f5fb6e8b559a4f8468218985db9f4cdc1f65b4644cf586aea8057431995d58476cfda6ca0deebffd789e7fda88d79a7d9c169c01f9dc5528a9ffa144636334d8cb3a1cb27b81df55c9205aa1cb43f04fcf9bfbe9539a9f846db361de4bea0a7b04574960967e639933e6d1d522188f033885385d5d36153ab3ee68157fdabcebcc67d9e63fd09cf2b5d910c8a5e50ebbaedcd30ff38b041c3513da677f79bf53d7c5d9bec993f85aab57af1503beee679f2ce9995eb83376ee3d9b1f66c9e9b46436399364496a51851d48ca06e44ffd40a6c64748d6db5a9bf18893d65a9fc4bf2750ec9410888298ed0482438e604cbac435abe14d598f5cb7f07aecc23b6b38a95f9cc8ebbcb4f5c0be8a8443f89ea8eb69f456ead9fe9a36bb31a98e9e5372d4bc83f9a7509da4ad97d36582bf7844b79a9753bad9a476ef64661dafa5e497980ee61159aca370de8d947b66d87833383c9eb593313054e00867a82edaa6b1a8494ad82305a387f8c50024a9f682c69ca0aa180eb8dcdbaac44f4a3fa93dbb056352095c2b8b65ef06f775a57d639cf52f40c8138dd5cad7c9508c3c34a7bf9e6c6431b34882a45f6cee7e43eafbb9733c2f08e6e28d3a1372b418ca595ba593b18789b7c6a411e27acec3b4246e8659a2330c628436e2e722536858548a280588cadab31651eb5edebb50ddaae15d3fecd74af476b3d4d834c104737610ececad3d3f6cebf7afc7b63e8372c97a8fb68837074f94527799a8874684a81f6145ad7ebac7a5cbccb696472ca98fd95b9ba4db7d8729965aeb56b8ee101d0b32b6b80a772fa80e70598b17e84fa +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bb321ef14d44d8698df879fd52450567657f52a2df8d111185dcd7d4f30a72d4 +public_key = d0c5379075ef609447f1be8434e5b31f3bfa3e1f33206ce1e594edacdcf0182d3beacf6db2ea7de30a6671f79c1d4f4052a784e727c36a3b9dd1e7eba80a542de4fb17c85eebe8e406dc394ec556adcdd932fa9a8af6e0646a973df4ffa0ef9c92b35c04884be2a5bd3f68b2083945f8ec525d75e877e9f4483bd24847938eaac5690cb33f0a878927bdb4a84ad637d92f046a2968437bf9a675e9ee25e89a3f246b3856ef002c3d792d6539968d9b7a83745869ea8accb72ab1dab78ff0183c2ffa338d8e9dd0dee78ad8b928c68abca8f09819ad705a3fc264bde3047fd2065c3e28d6aa3e8d75a39c6e4541dfb86433bbaabe1f76306fec843af381dc78fc4efb1a6a318d6fd1bed68ae518be985746b863ccec279836d6810178c54a0f61940e467bc986a735a9e93678b1f433bcb7af36da821dec7546a4957f4e3d30a4b1d75ba216da71af7a7b17a932c224bfda459681893ec103a4b57ce0806af4543741ed1bef5bf84dab0e8f95cd7434758d32e8da3d8c6b54774da92f451c1faa086782facd622c2b8ac9776639084a19b5d9124b5de6d77a83bb6e123b8eb20e9a2c2d3f87896f240e8568ead81d07ff461aed8a38e5794966aac55fa07cb7007ac3744adf2ed5b6f387f86a8cfaa4b9655237b3f1635dc265f7357bc4714c3a47285c9ae3a5a84886c84dfd22cafd3c15580be7b1627c81fa2bd942e85a3a075845e47dc0674f4fcfc1ed9ca031bcecd934a01d1ffd26b6ce5c038fbd64edcd4ab4a9cce7c06842d7645935b57587559c11b99af337bc629a45ec37a3a21befe905510a7eb6e19f6126f8e5625c5d79f677ebfc69b148980927ff35ed75c29a6e9fb4b536f892b16c7aa986f31698f3d6beafb439cd2603c97599d4ba4f971d769827be69936ac108c6caedb98982098d5176c71cbcb11c2fb96143433f7cd83bf83f6005c5c8b93563ed81ca4d903ae662a9fe7fd098ffcb399162dfa2bd2b8d1bfd731b13d3e3c9beed8ec5473384b8ad4c1c94ef61ef7eca0977eab4c750a3da2bcb3983daa99cd4c2e34e4ab8f7785753f037cea9a65c493afc62f08d75893d417375c698afa7fd0782ad1ee014733e52fd88c03fb7135b5db727b147936740f3f0c603365e38dcbac5d2b654e2abdc4d25fb9a96ccc96f166445f6a6c3a894a7dedac7ccd74fe7b5a2df964ffd531e7bc446eda402f45b0f29809a84795848812a1b935e3fd671cfcd0e3332abc68f57b98f24cb9e68f8b1663b4c793ac4222e77f11c59477e550e44794f84705fa4835e9e8b318aed5aa39e660f6d3888aaf40cc2480f3b74cc4e000bed011c6a266560949c626e18f6399e608713c12e75a229c5bc114bada81395b00a5b6e695097bf790e85c9550f8c5b288758c9ad634a3ae12bd6989dbffa4f8b425ab70c5c46c225d346235814e7af8576af317ec6e6d4b56c6e412d7a5cacffecdcddaa69e53d4e2f3d72e4c77afb927968f45cd579684f8d9f6c81cd6d4fadb43dd56c8148664943ffd85395b17a1c53656f87fa14a9bc2d8aeebea7e6f73829fdaaa69e8a6adfe1bd765cc0f93615a57609b5aa91d5d2b95ec4aabf4336df82348ba33b9df1715f4ee345eb6c88da3a9b46cf57ffbab34be905d9c32a64bc37b6e6c3df37a7a9f30dc3491ec2b8553ec3fcd9119ebb08bbd2ca7680877f44fd3c991508902e84bb5e177f736ed57c38784c19d5cbf7d4201fbdb78cd7853ff8ab569fb6a7d0f9b3a058dc5791c6d0dc488560becb939bfe2599c1f45ee628b64094bcf0eb6c50f5f5cfdfdce0471346dea4f9dd29953e8be39e2a46f15ef7d82f5fd477f3e0ee9522a4a76389bfe74e4450b885cc3eeae78db59ef46177e5db0b43d6820a9d57293ae6753e65097f8de97c898c465b07b6e89459f446a59c14e45f2c30dee57369ed479468ae96cbfe8b0332bb7535104498ffabb2abd65a6b9af358d467eb8376a795aab51ed8edabd967b7e0083acb477cf8a01b46e68a3d65cefdbb59e46df48f32ee531cfc3295e4cda083af7b4ae7627f86f60b5caaefe8595d8f900d98799e6473c85360e8cf6ae8360d8daad8bedf6cb7a707063eaabfac0a7e55e6a6e388f87328dd84baea61d5caf6e1d5bd9dcf5ffdd46a24e8ec4063f697b4cc8f58643e4eafb7df9b7c857837a1e385a9106e3bd9911c697c8709312db4ee1d9b023e39fb4a92d9d95ff015 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 210a423dadd899b810f011794b79aa7f860823ac1962370e791287d3a1afa384 +public_key = 13665dbe0a4aa46bcc4096ff1e46f1f2596ba293466f7499d9954eb6b6f51483b35017fce7a491100d8166f6f476e383f025efe706c23999b71edf471af759ba9f39ec05996a94b7a3943e380edebf0aeca205b2ed836af00f5221ca53ad7efd41339770e8db040df310de580b786353c9bf169d9242494253684c8e2b5a292e6502eeb4f29fdd641fcac1ccd2c22fbc0ee7e351ad5457f4c40a29584f2db70a8739f1e733483b7e7f8ab62b664c978ff29a8d536d747f3199a064ccbd66e7be173641808a93231aca8a7b54dcddc593ba85e01ec54ccf894c6a797ccd557d05e4734c74f374ea6d2c98fcd8c1ed356c2e199c28088ef495a550ded19b736f2fb8895eea391c67c89514ef988d5bfd2354ba1c3dd8e98467e3d2366a616d38dbdb4747fb6ad00bc5781bd8c1cf2b563ecfd6e6f5e22493e9d32fff5ee77802d88466b6ef5016f39d6dd1976bd0dd6343787d52756f9f16b9ff13b37049698b12c39bb1c3579d693970736fd72c8d8654943e5868c53a51324abdc57b330ee3d145f9fab82c91d985f44288833ff3a2d9e9faa1f53d9aceed191c99e064341973e8e14d87d9aabd03d7ae1ddf887dcfe97ec4b09f7699871e93d8eb77da9c9e33749e4a0c5bab3bb64adc4436b7a6d84b9463c4887e4642d5add52093399b2cb52a73b59059f0a70ec328ef937ac439fcf3b78ee830b4ecb795376dd263a3ced9ec6a6b60e59dd1a0f739e217b5b3c4ab0a6761325e4bb62c9fa29debc80b6c8c7ac7021db4860cbf221543f2aa61e0683bef6ddf98ba4fa94cf866af8ba59fdaecc3a6c7b56081869c702bebf85ee52c0ca0a753a211c3562daf6a15395a630a4a937f9ed9b3d92d23bea5433447139ac15e8f76eeeaf71e3b8368cc7299ea5eed8dd7689b26aff56a8ccfa524a23459f1a0e887627bcf7965a1876ceea6cf55c36978da7c4f185aecbbff4a2efe42f08dc0785db8726941982ec48e9de4f4ec8b4fef3d95bbeed9f8b5ee994367add7d48ac1657454afd466e8765c877a54476e71b659e88a8cf05bd3d7389eb832b6a7536f580a9e9db9258ef1b7a15d2c54c7ddff57fa65751438f4186a8b576d7c66ed649a7a61de928f0e3df7d69f4de7d35495e07b7d62bf3ca84a93a5a0197ea00b7522dc769ed45596bc5e712954e1eb37ffd69d63fafce5e33df8088545e3a738b864bc6eb917df9e45ebb39d8a7a6fb3cb3a0eb9880ab0558ed7c9073b19258e4e39d156f54ae3d44d19d8abc5fb334ad757c8ef4987af6a31d458edd45c69b9b8d88bd622166e66c76afc49a23e2ceabbf357b83f8781aa9a055bf4aa2645d79e639f24e981d3da7203623d65dc32efbd4bb95b2e7b518b44512dfa6a5387afd6c7ce162a434a6b9ed937cd7a3ff1354eda252d934b357e73fdd9ea94e3a914869834daef2732836b5659566d222ee331fa9bb0b762c958f47cba816f3e310937deebf8f6ee8ff322f9841f33a9362d9e0eff73f5fff37a59b27cf85fb3773999af95a387e4ba074d1093b0f096b2ec5e33bb273e51ee7de75b45301cdc862354344336fe0f8a4a73eda23bf85d4435082667ffd2efa01b79626cd19f7ecd0ad86032fbaa7a3f663079fb9e0fbe563e5543d83c0b94f97945406c33969aced93e5be8861eaec19b3c9069bdb8799a2e077af53d8c401982e978e9c8fe7f6bca98054688c30a75dacb90ad44facaa9ba227a7f6794e00428cda9d6890396cc19cb90a91e53bfdf81cbdbe0371e32512d6b5a2d8d8c75839b76ab8435f11a6e967396c697fd5d913598259334c84f915ede83f32c5a4e957013868634459f038340aa7761ecc6f8fbbb435ba642e21c538c9d7d881d413bdedd7f0a7966bd3cb8c36d39336543193d0d768bcfcddaf89d69e7c85b0a1e4e77f6d63adae8f27376beb9ac4a0b976ce745fa7972e9fa74d0055ef59dcf41feee6cd785510bc4bd1f31d88abbcacfffc2ef577608580e2663517d702fea437f9ae3f6fb37343b488c2cdb267dd27bda77fc6a972233e9b66a86538d61f32de9aa73674519420b0af7ac66e6efe7e4cd46b7b785e922175a1ddbf28326d9ec4db4d27ed7c8438f34ffd3cdbb85bfaedb78a99d766499d464eb91567fd8c7a85d983080c9ec9254ce3c2a9feddb8c8ba948f0986a91edf681341fac1cd19451956432b83b79d115d32a3d4f86f902f2f6b0c95ad7f4bd49 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bc856afe24213e3d14c3d6f9b89223bbcfb2c890722d770fa3492c1e46d1c302 +public_key = 869a9e3773a7c7a4fe279471a233a05d77899c3ae8f35ac98b3f43fa6767f076976529b75b75b070a341dfc95bb85c4bfa1394091e41fe2beb31365e3c33d2c9bdf96b9769de14d24da48c2d7a3e5b29ae58659384fbcb4caface58c4ceca5baa523ebdd465797664276aa44e843ee2f23f8aa79e0f68a6a743ede575ccbbdc689199559f094bb6248df436a925a83d5fdeba6c53a9193069873f7f4cb1b67fb98f0e76cf7d175bd5f5b5db12dc91eeaf439383b57ace4db0e73e27d4a319ad3de6691ecbc600097b41a7a9a429ca1a4d8a34dfc6c86ed34e9ae762928efe7c993ac0e8d135a738624d5186763b007dd81dd9706c9af9723e3e47bb91786ea0e3a39f7b96703cf88254675f7ad7771768f3939b7bec979cbbb8bcb1ee125fd8347b7bc7d7d833197b1920bf7599d98e48834e8fc8552aec1fd5fa17023f3d98c4bbe7779b867b813a5a2a514dd8e8845d5afb03efbcdbbc3d8393eb1ffaaa9e21c7a3ad77053793b1f7b7476cdf1e3ceae26fe94857be5952f8e939af9b93f930d5bad3667c854366f83b48cd46de769fd86b79dd7eae7eb2f046f640e96b8237967c940d57f7d3898d0dfebb3b25fcf57b330698d3c1d55c59fcae4e31c323f9fd265c8826ec3b6018c8f60445a11268da9b44f8dcc512b96d21204d9d3baac60cc6ca53fe1d2ca3a4137ef745bc46fb7da9a8a3999ca83e8635e7a4843ea3b861194bf019d9e435dad1ddb3006f86dabdfb8fb8fdd969a7d87dc97af2e4ab3769ead0f61086d92260e33736f65eb7987bd4bc01fddd4e71bb8f8bd6ab339ac9c0849fdbf3c4bf35b11955c52e3dfa0eb56dc7cbfac95704f5e969ea45ab02ce0e59c691dc3908c083263c3565766a34c2e6f5508f9502e9dbc158cff247e2296c86ba69c932e61ed753fdc1471844f70095a85a5fabb1dc9efe213e13139526a6ebb40c4ee909e3a3656eece86b37fc8d978add5c54ef727f68923187204edd1a378c0074af4029da144a6fbfaa89b1c384083178a1b44461926a9ed135abaf5d5ca3e77f263996de9780fc573619b63f85ed91ed576584d4644194a25b6cd1e5aab45f9d21d9a8839546a991375272ebd7983d685397d93ec49d879e0c47af81439f8a054599cae8cc3964cc4db8bb7a87543e8a540af3a95bb5b6713478f5bdb5cb6f48018a729469a3794a8ed04a315f3783e667c0ddfac80c68a40c35d64d9de5e8a3135dae5cfea69d5aea2e9b562dad5e409c6485f0f6001fbe196a4876074d4b75e9974b386abfc9cf5ad305aab4a627b6c22a994dfe46035447f0dcd9d1bbcd397a68fd647b0b13630d1439e63fc8fca3bd1cbe66bfdb431533db06a9797b34a57a5ebf0817ee95823d73c8ae0ac95b8755aa79c2d33c09d386125d66f177ea25feab0267672c9e831af6c20b4a8acade1668cc46b49a2d834d6720fc95dc842b404f4feabbd774b4a4be351bcd8cf2c486ca70a5eb60fab5ffb8d78cfbf00fb7887fb960c089210d67367aadc724f8b5ae348ff293602833b6927add6be8f22acc4cf0e517c65c84878dd59a3e175954ace9689fb6881ce27d73f1e3cbcd53547bacb3956d67a1a46cf6b4969065c99ce7304d53ab68d45028eec154aeb13d7cb453ff1ef4ee466469ba22f5cbc4ef708c7b5e0055e3b476265cff44fe9590a557f088c9d4fb47a3d598a999aeb609fed1a9d9221bff9ff12dbc21e43cdfaaa91fddb71d6c8b87fff24584508ab4d036792135b750eb9ae091b4baa96a27d0bebea06d6132d60e5268bc4e9c08d1bbcd55ea22e44a2d73dec6df5fbafa4df14956aad4eeb5c3782e64377c645b35e3ede1bed43ae6e42bf7cd5abbd7d3915500b67989709b7477432b957f39a9c7abbe747b2238ade39f448836b87938e804a402aff4182a4ecaf6ddd85aa7ab9556ca98c7808e9d558e771d97d9446cbe06964edec34b69834c8582e5822f773871c4401ead4c715d3cef8f492bd7e8597480b6bae6255d84a4b92facde5a168f95f237a6386e18868486dacea8389baed937b392ab840d4bf67f3edf3cd73a4a8c691896b6d6b623b95670c04d5dd499773a54210975d1eb7f667439e0fd8c112f33470789f2899a64217400e4b51fd6de362ec98a466f0ff6ba181bfe1ce6ce54bc6fa1904cc13a64fb6f445b48ef88ccad56919a0deed94a2ab2d4b6442a71c288753f1dc41ef5389e39497 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 5fc00f89563e44b24cd67d0ce684effe5731619fd08e7d72e2406eb016afb66b +public_key = 12c3e41c2441f97ad53ec568c8dfb7e22f9fdc7fdd916ee9a05690cbc9564bc9cad3a66e05f641302a38adb6fe0748dba315acb5a3afa00faba89ee726a3ac957f3d6e66428ec8576718c4db8ef846d450cc4f8572be786267487b353b37d984caecff51aa6fa58c48b11e360c6be98afed4b99671ce2985a174aec03ecb608d3d29d93134dfac1c9851032bf1e8da4021b44b4064ad741578612fbdb28ae87495908ddb6109489ca2a67dea269493986565e33942ded12e65d4f4e5abe77ff35bca3a145ce49da7def48e507aefbbfc36d66a7c8dc569e871e83731139952af62f9f7a2631cde0fe635cff95b792a6b9d59df0fde4b125b652de35cff994ef44ea15bf579793eeca4149fc389c6109e5edc45610b9c588318de96d77267268a37b4338ccca9059dcac44a61f2795f944af5147a8943dc545c18d5e5d39b70139bf00d6df10c695cab9cdde3b7c4afafe823c709936d7c48e8584abce96950c07bf48b858859ccf2327ff426078e490d74c0cde1baa6b11346f06435f11d7eb48d134b7b1bec960c942a8f9ac529ef8f8aac1ee7dbcfa4342a46fc68a35591db506f2b69bf03e133f5ca4654421f48afdd736e25e8e0add97f750530c443618e674a67aef29c4ae7f4be9e9d3740ae4a6aa6b77255bf7375bf46381483e536f4a483d35feadead4f7cf007f54b3b8fcf4c835eff3cc5c7f9bdcef85ac4952adef41977741bbe5c298434405e39e22e9d65a9fff75637fa3a48633fc1069cb49269305067d80b535d4b6f4bdbb78ac194d7fa8b48caec62459b80cdac450144d3ad04e1380cdc97fbb3b955de9953718ce8fb4ea5eb3628c7c1fa39f66f9dbd074549de56447f53ffe9ff7de9b293cddd191fcad1ea7c27af95e373bf80fa6f173b68e7149ec6a454db833d00fc46257fac52bfd8341a39fa8ba8f7d8f43987cafc65a48ec3de72aad33cd8929a746ab6eaaba19388e9246ff28355bcfcd249fab0e00b722c9ebdee0b8fd80377509937f30e880239ce9d9f51a9d3b48d455884e98acd948f0afad95155b3617fdf2aaf79116ba08a5b5ccd6c86e0e57f4b33c5787c38b8fdb924e7ed7c06c58fa3fd7c68422085c8e365c6787b806aefef0fa5a414d44267c4da606f9b6c08fee5588b7f8f8868c5b6ab9438af13d983c7c37d1d32bf6d59371df559ee61ba0bb2b1b4c6b1fb5fed0f9ec389a375d563dde64eaf7b95e5ad5e2cb7b1a58d9e4e98893fcbfd79aacf0e8ad718b3f2ee8f96323681ea3989826efd04f56ad2cce0677e87b2ecae2e9aa5e3afffe00fffb975ec37c75f6ca87aee7fe3e0048e36984e2b9b6936e6e318da6b7db7c8b1538754b997de3f5053dfed233f8f03d5774f8eea51ac6d3c333f0b5f9c1568840bd9fad436d3b4a361197b366827f2d45b497cd94f73e9dfd48570b445c4b166a02c5a3c5928bff91545063e66f0fca5f8cff2933fa301484ddb25854e6fff546c477f53d72814668a734786b681087db227487a21abaf17e79dfc365c3843363ec53af3686cce84f9104740a327ce441bb8e3736af22448016b8e69784d3a2c92e1fe787f8e813aee9e96efa9db2b62175ff1d9b77ab2ca91dd3feba5533322aa772459c6c5763f25ad7c5c7e5198bfdc7357cdbdce8840aa7af18c4685ef75cc4ff00103860a5f59c4fa71f946621346f2a2945d8cc6572b33e1a70cdf119ece19d8c5d89e3acc59de6c1751d5aa3e5d8fe8ebcaba43a8c0f6d78898ce5a20a87a891bc2ca94779525499a2958a60b4878db537dabe48d0eb7c2a642feecd624e594cd3e8a0fcb529615f6af5561980ad38604a9f028ebe16399edb84b394d5e33b43c13d83e54483418467a57f8a796c4d32d37a744fa6201bdaae04899c6865a679f3eb173906b26c3333ea90044c9c4e5f15117ca1e5dcbaf2ef0472cd462fbe248fd7a2197680856428ba494dd8febdb3760c1a97d2e59735bea606475df563ef11765938015f550fa311599923dfcd97dbf8d601cc4a127f6992fa2bb589ad165a8587893bfcfb0e32d30dd8736d387673a77e51b249c49e7abf96960f5394fb255be8cd992726ff11613c5242a45e98df87466f6df7d9542338e131678b97e95569fd1501d74e2f8be14a634ae5c40dad64b7845ffebdbf1bd987d773fc16e13f61c4771bed2bac280f77da45501c2ef4d97f2faf650309211985bbee4c3a85865 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ea22a76065db4b565ee1807fbd813b43bde72b0e08407fb867c6a18995025e50 +public_key = 5cd35cd9fd9ec23d54176c506e0fa7258a84eb685d14c3352f1bd051757c30e4e84ab6a37bc6d58c4451e9aed6ad3cf59bc6791de49ed9ecdbf62bab130e429035c8716b86465fa26b0549b193fa2ccdecc8f8cb5573d618b5f5f885cb6fc4d7f14f61078e42813e399e5666d56a9657eea53056dab4178c3e957d22244b1366750ead84f67f399a33bb452c7c73f3cbe9b7d28cf3849b475606fafc96958dbffe7aa08b3f16ce46edb65de9379f63dee226f9b4b868d26956e4ec2f9c8ed4419864f6867edf53885f5bbabdd95c5597f89d826bdf442bf1aa476ba4a7dbea0da2f40cb7435dfc2093803f27ca38dd63486e5131c8efe6ac6ac9249459d9fd921338712eeaa5176c6bc8f8a4198c866ae730a84961f3914379bbfbeb46412ce705bc86f8a38a608e7f1b4c34e99784783d51764b3f55d38571e98d754d43288ae9dddba7d4eac3f0b98174dd9f0deedb23adbc0417a056c66064d9d6b7559ab134b6c47baa7a3f54017d811d3ab8f6ff65822873b4c78af465e4ffdb6d03d79c24a88531d4ae733d486977b612dbd5b906ce19337ca2fd455718569f8dc2c2c795b8ae56e60c5c650aeafdfb5e4fd96727947fd66abd94774a5bc45fdb9ff147befb67534ad93aabaf1f3af9cba2b2a376608cc6335aaa99f759dc964aede8de432c6f418aea65c63f639b5312c35038faa9c55d51bb3ec66a1f538fc5ea85189d846b799d9cffedc439ec8685b547376be49a83fb60281accd743d01e7f9e4156badffb3b7dd8cb415eeee7a3970a168357a89dcb75535ce341b5b474043d8bd87bba01f5cef30634cadf7d56da4d4383f3489dacbfc5d51dafa8519a42e72df69b4b32c64770a5db4caa1ca6670c432bd74745fbba302f377d7f9446954a6e067454639c387eaeb626871e3558a1fe41a38cf733be3b1363fcd16462f89ffba2869a0c2d717e3675a328625da796e12c4403d380cdb54930db78493994c0793fd68bda9124d758fb78d239d51e696c8707cf5a1c40f06ee123b7c6df5eba4b89fedb9ed762dce1507e6c66a79dd4f5b0866aea2b1e44db8dc4106b72aacbda908d36beee9b204992dd7dd956bbd76ccab60104f60ac4b2cef77c38d6b6ef99d7feec307bbf9503bf69dccd63e337ad43958d893a36318c6c052549be9d7314dff51744ad02d3df79ddb394635508a5e857eee60706cb052f75bb2da4bb6a734f9856aecae64af669f43c5017fe305f8d84389581bc146169cd914d1a65af5e88e29d82d585af436ce83eff8179c6b2278491dde450e8bebf64075e0a9a8301454b5f2eee3abdccee1df681ee73c5db96de18fc3c399e3a9fe0c974b6f47449dca3f6c1a7a79f893f454834e6fcebcf0a860da6fa4e05a1f528f5982be8dc4ab661abcc98d4313cc4dbab5df307895460139c75b6aa6aef7c5e79f7324e487b849a42996a55788b3c5fd18eadab1d3e5d113d8f05c54176e7f7a04b656ce6859f69471a186a4ff6b17b8770719f4758c83dc79ef92bfc7619ffb75413c79eb9b946deb2aef95a47dbf1cc8982f405739d9d64975b5ab875ae5ddac05a65a43cec4ed80acfeb15aae898b995e649f32b98613c77fc9f6879ec940bacbca0696cf6c6749604a1a59979a623477be871a2278d22134a95ecc1b116c4844dc6c6a8eadbe742eeee426bb65b9433d2162b816445ff918679d54cd6beab47f07c8a37aab0a7449d46fdecfdf9422a783e06f645353cb56b8c57e28840e074629bd58b5646cf1ca6d0328eb915b7ecab0da35fb4533e0ffc2367c9bef95ecc85359a236e23b4f5f9c975ef94fee31ff8c66673f1ea3be278b0fd43ad4d0d465563f654598f35af57bc7c81dc0999266c8c304da4d9364f602bac27145b5be7c4fb0759288761ccc586b9039d6ee57859bfea05676edc5fc9380eed350cda1d3baefcdce5bb953bf5d5db95b449b8db44991d680fcc53169bc8403bc70a6bfe3dea7af89aa0fd76f255197360b8c7325545b7f45f2dfcce05d939ee5556f5c63cf05fcd68e8399fcf5726b3e6269374eb94bc3894d11c89890f8f8b5d7f6d149cc3446b8a12d76c35545eecc7aab0fe7031adcf9c993e53a88ca11de16c3bf0700e87f725acc6a6e12b5c44977af2ac6e7a0d4fa64d03b8ce88b7a8aa7cdcaf8a197a5d3bdc64cf089f922345dae5a7c6bd86d17444f21dd9b1a5c82b9fc906c4ad49e0 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: e9602b34fe73ad57f4bf6ead99743d645641553a5b9b9bf2e7016629e3e9bd76 +public_key = 66834aa7bf66f0964efa45c0479f49c30ce0aefbe9d25d8cb7d4d9b49a7e38299920c3433da3929b2552d5e9a1f19f383e3b4d3d9ae600df99f7d933eab5d6062697c2abefc02df92a4758d26ab61f085c32ada3b86ae9e956860f93a3ece8a0c234f6b40bc8d1dee91754803e1fd4ff048c07f6c778fc685c3ed8b13f7dba9361b01cd71d9ff3affd949ddb804075c3a0178f41bca68b676ec8469e417547617c8b8ebb6e19e83af1caf7e2db7d09feef268d5f969f85aeefe6c26ad29694e60a98dfd2dc57547d9ea3e8ea59b9e3582d5cf126c24f8858a3757be1c562c75e66a19dd047949c062bca7aed3837dd5aa6b9ea30856a368bd87b455169a7c35a1d91e72c96b753f397b6a2587f350876e349265c4c475ee735ee4dcf6d739b33190cbb07a993e5c7f288a55d589fcdd2d9e77c9541f0b7dbf076e35e06a3ff27d0af34f47ab6ee70f4727e6a9fdae7dc470b671cb3ea22df36bcfc508a83371428f198c4c41cdeaee23b5acca7f0a3e955aecee9eaed6fb6c8a7ba5a37bfbfe565f77f7f037f0ae7ed6bde3301a547fe8458c8363fec2e8a3ed5bf594c3bdc8ad3003641da15479304810b6adc94a4e7b9a8473f76ae6c23e44d7b3673074703ead389f8fad44e65f1cf58457367b66fe128ec318df886ebbfd3e259bca21eb68e13ae685bef1b3781d93d5194ed94c21bee91b473ac9992d1e77db96df3cd043b147681fcacfc9c3ce238cf7f1e459b953ca0711a318a4b76d924baebf599d9eb852ddaedc508d291c9e281f8345d774a29053514fe59164a705c954e53faf6b79f7dc58adfae6ae9bd33bd67339e8ec9f5577afeabda6b0a4743aced5546ed80d5495402fbd629859672ee30cd048236ff54fff49a7d394f3b1c3de06a784747311affe8cf0944609958300b93046869c026cd94ffe925b3dda0389e24ba6f08d498748730e2c4dd1c73452de8b7581df757ace1a84e7f2bbc67122c9287eef19e7f30ee6bdc42e7f4d2becd4b13e500958dc81f4178af565188e6589d4fd1267f2bb69d5d9f9f8967cf2179f4d63696627c91808fbd2813563cc443706bda1b279eab237326b4ce465d4ec81dab96edead91f559b2b8be763c1e9c5544aae3670afcdb7ede06856b081ae6d7e47d0b087ea4234f3c806c62614b0489fdad6876d784db35fd674d9a6d5fd6e638d863ce5cc6a55e6ff83a4a68abce0ac06565797db5d6f3970ebea40773500757179ff9d54548aeff9fead3d6fa809f7e5f84b15f339f4fc388a554b79d87325d8ef9e9989c79d92100e8fd454dafcb4d5b1b667e48956823ee78cb7a18fefc38f1dad4f6ad9df64a76c0badfd0862797ee44f8a449d04d99a08c48dfeb110b443d16386042b6f2483dc921643a6f8b7aedb9a7036339f2be56c1c4de7f4a03acb57b1cca827146f4bbc30f17a32dee4f949ca5341bd494ddf909836da87bc7b5054ddee8fbefbaea6c5cf8bcebcbb16a9d978ea92a47d9b817996f51a6e080578f3dd60b924c5d9b930997f5eea946ceb84a0a884c7fbdf52bfda7aaf374e5ff8703a4ea8483493a5143e0f9b6f5ef45f684cfea2c4b5e8c9fa46984064b97e28d339789a8655ef7e38c84ed7e4cb2054e2a434bac237e97528c6c7ee625dab98c25557e16cb5b8249ebd1ecaaeedb5fc5d5527d45981864d4abc8e116dcd9a7467475d64c9b8cce823b6bdb9c702a7a30415b4fc6979d2476b461e909d9d55a07d597375c050189ff2a3f852b5ee75bfeb32c834c744d52d7ee37025c20718f63e0aa71d87b20263bace1cdc98a58cdfca488977fe6b654c003a7e22465f981feac8deefc5dec0525ccab768c6dceef4c8c533f49ba88629c720decb6ebc4aaf09ab6ecde1349bfb079ebcf8fbebea9588b74dcf3fe97e35f9f440284cca6d7d49a3891283ac96d3fa2b2f3d1c47fb50abed950eba6cbe3ebd5ccb6c44ba12e392b5de65c4a4da714359cf2fff6b34bc1344af802992c60afe86fe957045bdbdb4d0b526b21bdaea0dee81531c8bc644799ee8477bfe6fbbfc33879868135a5adc748f88799d23476aab0643e5dab979f3658dbecf1939fac603db486353275cae5fb941b2d49a0d0349e669e7b4f4cddb9a97704ffd8917b70278ab9dbe6ef193cc33c3e2e168917063ff32cdd1361ff5180493d7966e2b216c709ac1bea73f1c624a081620b7981c1c95ae0387aea62f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f72b9080a6c051bbdb9b0abc1949034be0f89a9f73fe277ec4d4740c78d04a83 +public_key = 1493dbe3faf25f8e61039550c3d3f0e6c57221ed76224aa8fd48b4db59a3107eb2a2fbbeb05b38868e9b672c48393c5fe1865a4d1e3b7375d5c1199b807c5e7669b7d2499931d899b21b8c1d9caa129761bfa3974c4a85678adea1a49c4ffdf2d03d48012a3b108b43810edbd2d3f7a009717a64704b6fcb31446c5d9eda5aa9f8e1e4564f95b027bcf51c464569344f0096e06f7a4dfbce3eb194abbd64a8e7ebf352dcd7f06fe95de869bead87cf838fb42862f6346755fe744de8a414464ecaaa921bf76a4ee344e3055ce0fac32c15bc9f03d29c7b9205737426dcf923a7f1ecf65ddc34ef33dac59dcad6db57751499ef71edf0f6bf40b03493aba381f77e6a16646a8a8343efd4e394b9dcfc896dc04c4fba8aad7cd66005f4f6a41e3dd1a4be4a76eeac59cc284fa229c6bab9caf6cfb9e94ac4e674e89a410bc7e9af5bc51dbf95738f852dc64de5715af6f43693f2ec4a513647ca87af31e76b62e52753c939308f8460a775da29df58b24c4662793e2ad4454b5756e179fc6e78f2a8dbc070ea81f4a85d6a2a852c55f235f63817ad8d957cbab13dc33b5535c87c5e795ec5550389903ee38c6e558b38b04ce785276580833d8117978bca146f8f338c4b4b623177a0b1b5eb5f134ba59ce9b4db691838d7f3bcb29838a0729cc2d45fd0379cba1f85eb6764c27d57efcf8adb3f9a404fd3bf9825d150b540d7abedf10d38ce87d424838f59fedaecd3d4f29a91031777536fdae3d967ba33ac2526c85d9a7aee03845caeef9c0a51701da06b0e8af253e9385a81c153653fb8e808a6bd7478df684a52b8b7fba5288b6e75bca98ad305ffc3d8e940dbb7f39869bf68c951ed8884de3fcdb254755098cef7abaadfcea47a8adfa646b1ae78af8d6d8ee7535bc43371c02fd6c878d634174427ed62adacf8f4474a01b6785df35df68de4c3e8858c3afed9e9e1cda8303d3e8bbebe3371bd7bae8facbbddbf04c3ad2c59e329bfd790c392936f9152ecde6a39e9935eb5bdc956a2d4f72a4b894a87359b1e803a8b67e236837d25a274c97eebb6a8a9e7ce73cca9dd9ea1139f36730786de1af2286b71affaf8e01abdf69cbf460ba2d7d6914389563005f7c6ffc6feaaf89a4ad58d84b64228389c94984644bca50af0620d4a3edcb94567d93345991bcb9bdea45915a5bb966e8f4e6fcce237e7a67c60042856fe8ab437066aaa733567694dcbe3d1307b4eb02cce121f4bcde6a79819b95eb6f1f2cee4933e5e60f774bc6bf0804fc1797d8b29ae8c9883561cd66daf17bc0bd4fe015db2a8157354f7945828a488a941363b3394bee12c79ee123c6b5699a5c955d38b7bfdd77f5e7f6e9becfec34c7c32245461d335f5c5f49a763944cb64581cea3a188e46dc759c29c995ca0793e06fcb2153859b3f905e785e8e6ba2b834918f3cfdc5cab10f8b95867467adc87111d7beaf79d9950daa4f9d8fe1af99e9adeef5f93470bd7ba297f35087a1ae05ecc8933824effb8b0fc1fffa56ea6bedfb143ec24f6f32959a4103b9e353e08c87aad20cdcfc7384c12deafcb474100eb57b483c040dbaba66543adca822b4381e99870727a75c59ea1129af47d768e4f59fdf05c6f59eaaa5ece1b9ac7e20e541aafae1b6ec8b27e94189ecebe939cebfeae09cd53f38fcbbee7aad3c65a3c51aa3970ccb31695bbfba3e3c1dcdd0d37d8493d9ebeb3ed97deca3de479f3aa0f2766d25bdb0ffcded34bc5627ea8dcbd935a33d3bd6aa6d01e7605d33f17b98b2ce8564ce077032abc35aa6afa056f54d9a63be6c4bdebb95e11fdab5fb89aa6bd1248d47a4ce83188bcec1158c0c09d2636b3a45aaf23a73986afb886787cf93a8aabcd9af1e4cc585cac6f604f5131a9e01fb49bfb38ea664ad31ece6b2dc3c701753a297dcfacf711436f167763902b58b2f03bd906aad3c1ed1b7898e2663bd458b5c4bb7c5f4acf8fffb97bb4393ba3aada5ddf3e264f7de6de6b089591277b13eddc26ae3ccb07cd88fbcd4b475477decebe076f0cf3754548a6b2a65eaa1b97df5faa296c6a6eddd52cda5903533c93445778755876136c1930bdf3c937bf71ab2969af5e9dec9e49a9962cadc78a5ef6498fc837de6f63b97e6f8ba034fa45d79f770edce07fe4be7535859c87a9875904870890c5a620d8632f30f55d3cae33d1c6f5896e6b12354a75c7894d8905403 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f1e5542190db8ecf4b8d617a04fd3783ad0df78bf8dab749afb57db8321d151b +public_key = 70ec588f847ca3faf1787531444355e37dd021aee0be1b6994d3d0343fb95b6aa30f9add047cb6a2d9cfae2977e08962b666f55637405057c233388e018753ffcd8442a6603878a6d4f8cbb2574b9ddaec32ecd964f8f606739ddec9f4036e9649cce43a5db753993e48da443b1bbc8c4ade2edaa2710a541ea6ae491ffae1f48af844c2b337d77349e6c259ab598f41ee58aca3538a0bd79fbf3589eda9ab099d6d7777864afda2b2a7898a75ebaf8de3f8b863112c4ae293da43ac421444f3625eb2aa7a5b3be77d4c85c89f3e40f538d4ca57daa2c9f9e8e8bf9c4f78be1657cf4fe573efe96c4bb158ea891f6f7861dbc8125f5cb6fd7a3377be081b4651eba3c41ebb1c0357bf7a7923b5f4f003b02eccd3050db4b2ee711ef633b9afec101bcabce37655e8c651cc94592ede68566d097e659d3d72c509538c5a617406346aaf5c4134baa5fe36e7146417abd04fd361cb3be9d955376d137284039a693df11aa578189765f15a47e4c5fd4af9447c4a8343f84edfe7ae77aded872bda0e7f414c5bd1f35a38fe35a268848e673f63439b4dfb9b3435537f54cbee2b23f528fa5942da8563554276d466e98af5cea6c78427f9cad8f4dc3ccefb9ec7d0a377f46be0b8f8cf79edd65709df114363644869612bca78f4d2c9efa6ee29e0e07b72ad43b44edac06fcfcb3c448b506cb0a09746ccd84b3b993213b7a76dd681d6e7b7ea9e627627fd1553820acdeba5149bb0aaa55ccbd4ac8967480d544ed7d79b8f77a3dbc298034e097e684acd542dd4fb7f3f319b0b7efb43cb57f951b5aefaf024e965fa6e180ecc54dd8c1887bb31fc9339a8f3f147e712785ce6cb549caed99b2f45dfd350c374943ee6826cd3c9bee7fe712fd28b938bd304ba105f55ca664389335962f35bdf253e2b3933699d70145462f245696e5bed852bab0d8e7193679229ec684979c8f17965f55eefc148f30acf8e99cd95f663b587e967ef73f0a84a474ee4e5e64381ff44edaf59ea9bd872a019a113afceea76661015b5428eb8c325977c5d993a6cf6a7d992d05e9d65fda01305e8674f68d415a9c8fe78c047a68449546443ffd99d71db3ddc2e7dba68c68425c8e5772b349cf4ace5ece437bbb21f3f83d36f3cb58680fc1d84e50685baaff4f8d9ed167590d5bd3fd9b6fd546953462e7fb08658f1f6c25d0652cbc8cdd858ac9ad44616a8be04ed6e14288c1bbf7e4d4ce5b156732d246ef859fefe5d8b41e6438c1c899b33987489ff2bfaa1b8e55dc284db03df3e8da9c0a1c9ec61db66c92cb8bb3c64cc68bf4af341892441085a96f3aaa1a32e7bf7ddd5a3938c2d6ea15b8dee090c84d946f8e7cb6bb0e49c180d79df2cde364a4ad47ff033b762593586549c79b764710c3ed7bd1cdad01d6c7f7ba9accccc6debe5d2b68a9fe7a2e99fdee9acbfdef8c139bc8b5ef47fd196f62864d9a59479d517714637b9d75aabae29cbf44e8bd66e54faf5e9548ff99a5ff71b0c90f0bb7f0c2537df6a433a2350128af4aa144d30b95faafb39f566651dcebf2068e4027477c46b7ff1b66837c657af9cb0e7f46a42b4a74a69c36f7e6e2e993ad3c574aaec31a8fa5a950a8ce88f3a7e13fcb4a3dc95d8483bbed2d2cfd926a6a324c9d62b39e9253ebcd61aa56488be8b9491ea373fdd276bf986ac01e6a9683785d3384accf6f97da89658ddd5ac08668726ebc22ae8d6e3f5fe06d69f07e2a60782263a5dd87552f3b6691708a60459a8142ecaebba42faaa5593a8fad5ed956ab4fbb03867664470c8459a522df6c2b8791a47f78faa906b288dac7aeb7aa9588af9d62b3e82307686490db08396aa90bbda48a9798a146a8e77b1051f5ab2feb5448cafbdc749ff085f07cdfa2c35e74f587f6c2583cb0384c62e990b7ce5ce9f6b418efbc503471d4b807f85b7baa3611393e2f1d6fd6253e297a451957375607bceb10d9d09ba904a864be363bd220cab38de3a77daa42454b8683d7ed8cfa956e4ea62b996e0e78c34b4ac0e7aaff8e8e64b5ae1f8aa4379fbbb35fe4ea0ee3a7f4ab0025586f23d914d6e83719a941b0338e2feeaa4fe67a52ebfa38c9143fdf317deba4e64c6042dc0a29dcec11e304f0bc58af38e492937bcddad3a5a904fb39ce365a13dd9d2166c864aa7f082fd9e2ea5548a3b6c7d885a3ca6ae2e12efc2ea3ee4ca0b0b171ee93a198b42 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 74efa414ae171bf60b6f884cb7e5ce12028f49365daccfa23e845d551711660b +public_key = d0947b8c2e912d16f783fb94b468d13f34480ba83178c87d9ca4575ad9d14bcffa7cc9fb1b04efcf098f735b3401f3ebc02a43c457f20da64ce23be7408ac5361356422ddd1ea581a158e8eaa4c77c2f9b326eee0b4d3229889fccada2d4d3c845868816b79f56e6f65d678c9138b7172e3fcfd7acb2c68f4fac7915de40cd2a7487b341477d8115689407a9bfd35fe6f563a6fe3fd894cec5e2c657031b43a2abe9472bd84485b7f739af017459af5d423518460266cf449b524406b9a2c8da77093afb1344bc25f1e13fdc5b1e3cc0c4a4321a772055f1e3c758927c83398aa1f4bc43ad6e487f7e58ac4d53fce98a75be4632054d3d3aaf018cbaad87e326c7e60247cc11bee4444d87fa05e6c7a39b0705bc374b7af73c5b6084ee037bc69c1d949ebe739ad74a241cf191c3f01b1fdf4399dcb16390d7cf7c39e4daf0043b57e8a0f9786280eeb36c6c83fc97b49af9f68618b2c96a7a372fd02b2673bc1ac762a37e07fc6ef374900987639996fd67b5b4867ecaf8c3f6a4b8db4544c03bb8e1b46de518d5caa107be696cbdaae79cab0e91f5678fbe14934609aeb60ebdb0b5f5ada654d77cb3052e59686381e3677edbab5f7dd87fe1c4566dd7382f03c2acbccb1428fb9a65afc0aac41f4c3095675a326e59b0c7f7200f84e27de90efdd0ff4d76b6f3d73e4dfa51c7a6f6486c52c97446c5d6dd7c76ecfd8a5f8c70e6e8479735c2ae79a6d4a99444a347ba838c44aeace485a005a7531916c4529ee57c955817c488ccab9aa4d55dd79a5e2445d4a754d5a8a4ac01dbeb9f39e7fdab3b2909ca609739859383d73eb65965affb4490d5b9be85af902cb34cc50b5c49cbce43f8351a68b3476387bf87a16b9784a0f8d1e1eb39ee33b8b9ca82bef596605b59f43d35a06ad12d8549f0b68c93b784c7b3d9de7e425e3e75bb6de07d28aa8de4f369bcc68a8aa0751fdb4c2ec3d537ca25c8fa50dc875ab76b35a982b089ffd84b60e7db48fa0b80cdc9de1aa5d3894f404a78c17d6c73e42951ed0fe70dc8e6cb83f3d0cdb8b0057e6e66a36a856eab6d735433bc178d636d137b8da85f19334bd0ec9617d8b484986af31bbaf7f8ea050c5b4dd9356563bd2f874b6c8fa6e9bd88b2ca59ef3866fde4f17efbc5dd66c72b76e37ae65e7dc5c541d4fa5c4cc1c2feb678b7941d37ab5be7f92c665ea89b9679c5a6f8248f9fd6ec2bff82ec048bea74ccce0cf177f370d3979b84efa65d64be8584fbb9b66308fcafc94d38e72950e968b33fd98da285d4850ee48aacc0e5e8607e45f8053e6b272eec5a34fc0aade339fcb7d304c749e9f05f169d2663a03bbc82659adca40f5ec5dda1e445be8fe3a72c77f333188abd4de0b6a98ec10dee698b87f195b2e398ca708d38ef0739af347b22076a5849ec46573b0f88f444464d9fad645b4cc6f7136927c34e51fba619bd82f826b29fabb8bcf8dbb1fd5524348104eb4733edab504d40e104b78ab9317b558330d4995168752fef3455eba2cc4cb679687be93860cdde848bac42616893e6f7e0645b354a657e4f064e2e3f66f89bacb8585e6e9f725a7f3e7e4feaadbcbf9638b1bc09e8e4dfd3fd16e45ffcdbe1059c4b5fad751986d1fdbbb46bcccd365ad6c6e4dfb87dd7f97ccd83ef4fabf80ce3f1d7d7679743833823aa5a05b1b4edf63858cb2fcf7677da6929bf6d3459573e25b0ca4964d6798cf35d860d05541886ed800de99223a1d3eb6ddbcfe572b58f0f5ab03a1bc047d7928c16d84426de16abfce17fa89fca5b384b81b8abf4741674ff62f3d51e6ada77797234ad3ccbef6a78cc34ef7b03ebb0d6ae842706f6a54eea9599ae8723bacf49fb7d9e5aa83ec943f49c25fe89065e43502cb35318432c8b89bd2b9243f35c4b443ad59ef6207559a33e4a77bc67c4d79a3f1edfa16867625d9e6774bc2df86eec6c5e3cd547f9a5457fb4a98469de57ccbbef3b38e55ef35e9dbb61af4a6924f5cd65bb43b5868e1f8e3428b4474d9805af5333a7ad1f5c6d722e69f76d798de5a448aa393b5c496db978934c6eb11ee1254d784ebe3825167a342d6f77bd5eaabbdb89966150238748c492379b387ec863fdb6f1adb4f970ee6593358ca0ab83c26ff5dd26691eadb00554c2399afc45fe71bfe63d48db72ee6cf36f47dd054b8f7bec5a4bbb6b0d62bcd24a3b8a6d32c53a51bfb7c57ecf +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0b4c3cffb2ba4380ead13dc0d8acad2356b448a810da1df29f264c44aab6d24f +public_key = e3658e3c96d7f9775ea3b57a481ca307a36b3688defe5ed87309d77ffd6a6f75b2f695620c9753f98be67efe4f4b59a66ee953aeb7eabe866ff3e34caf6eb53f5842a9ac3c811abc36798059db5a51cbea003b5687dc73e289f36e69477ddd3c5143b6e22bbde999379bde31215c9c46e373775dfd434a58f4ca4c5249c538be5937c38283df759a55f43ce36d24fbf34c5bb876bf594ac89e51564e44df869edc93cc2e43d307fd6d8672df16a08cf940327ef19adff4e25bb223fb646ac5997c8d6adc1bcbd49a78344d9516cd5238bafc3445a290eb4e4cda6fe1f6efefd58084db9ed675b608faebf77de95d2f6a6c7dcef6bee4ec584903aa427a34c4f75b7d0dbb4564d7fc2b35fea9b99173659ab3639d3476332c74aebe0b6656e3cc3fa9f06406718e67e8e76bbc2dfb8b409780263851db783979fc5ea3e4a18d6383762c6d5f88fe7333876d1d414dfb4548296d33947590534a01c399a383eddd4c88211fbd0b1448e066c529ff8c52d3c34f1ca1e2eaf34f67eaeaafe084179a9683d91555b9d77eaeb33a3c42dffadfaa8ca90db92ea4d1ff3eb35d4eed793df84fc534c928bfd575881e5678ff8e803fdd8041475b0f4a36c7644442ad67cb35a634afafe385ce1a1b5c4f9c4a169dd03d1aacc548a4d5e7c94c6a4799cb843fd4c6e72d9e1fbea71bf3fb502bd04ad9c0d7a6b44c2970141ad21416483dd835e7987b789d41aac46807aea53825fe3c7e6beab69a86f5f91b53eb1eb6810548ddf09758871335be0735b5bffde2c4593ead367a7ffc2af78f4d888fb188d98486602b743d73ff5a57b3533623b57cc9d5ab499835093b1c4b9d40d361fec791d08fa17417981ed7e3514ba50b46608c23d7b7939ad5f9b1ae47ac2f0c76172e61cf0677aeca801504512433918aab949c078d46399d874bda6e9987e9aa71e52c569133fb8bc68c565d8c9bec555d17a62945f5d297be94559672ddf0966ec6bf7859c3469773cf5e0863c16c9c4aa453862f5fab3ca942d887c95995dcf40bfbfa44f0fe55660d2f516bf8c940ebcb1ddab9a36a341dce44a646321037c0733e424e14dad92c706d254e56f480137dee0de840232e71120fbe85f54d3bd5e3482cee2ae6c50b1ffd056967c7bd32c99ba8917d847bd5aceb4669619c71f2b7581736726dd8d0a3148bd297ed8b06d808da4cd13b88232d9bc09cc2a88a43defabe6a24986d697fef253aa925f5b3a3cca02dfc9fae58c699745b03af77e4ed4d07fce7fcb6b723df308bbeef6ac699388976a574ee1a74e84b48649bb32ec763227584ee24c0248b7f5096c72dae72d2c8e982f676dfe44a8976e8c773934765f1eb6a6fb8ec6e153c72d7f8c9067a765cd4e49fc58777974f975ee739168deb8a6b0f9d5997563d7f13590ac3d173cbf3f7b7440fcb6db809e1b12958e0c6ffb6f84fa5aa931c1e8ab5fead6374a3482ec0542f4b04dbd7982988fa3a569ae9342963e65c1eff327f8960f89d58a6e3d08afb16d7ee0ec942a91fa72c09dfcabf3118a59c6bf7c273d6e63a8470b18c8c2ee76f4d2975e7d79df7f8de759a52e6b689ebb7bbc7abbf660956018eaac3aba2b43aba545951427cc35dac5cbafc7d394bbd58af854e84b5f003d69a94b35f4bdf1ad3344dcfa40fb89a88ed91cadde25d0d52e9bf8c00fec3e049d968ee364a4ba8c0b77a7fe83a65b762565ffba8bef8fd4b3c8ef85fd0ce6f80ba5701c9a48daf30e455b02b28641b98a67a95ef327fe734cda77927debd79d111f395e756e12758efd9fed57d35b6c21bef694ffe72f9fa2363825566445544995d0cd9ccc492f7ee9072e398bafc32ef09fd7f2f9f88de327cbe884ddd4849569c415860df59646ec59ed15fbade4adea6bbb8e9e9f4e6c43aeb2fcd4969528e5daf83b977d4f8681fb5fae6f5a60fcecedbac91b14b70d46c5ea18551f288690c3aad6428939426326c54a80b1c6281e5eb3d47462f18c6c5a3ec60395a1e74826f7cf58f66f2f689c4b557d976a961945ed4b52ed0142854bbf75d41dd9bfdaade64575a7546bec2aed8771ce9a7cb48208780e1c657873e63022c910f17ec5aff39a23cc9f1697cf5177f88e7580df8c926bfc405a3360d0a80a6fae486136faa9c48aa48d1ee87b7cc5c638d67be57548c03711f9b2b31ab319d45c578e5acfa30dc426ac3b194230a4bb5ee07f4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1c82471dcdfca3a6942061ab4f3d5bf0d197321437c706d9cccccce449447002 +public_key = bd85575297f5706cfbd05331fcdfdf567df59fb8fd438392c72994648ed35726df985555dcbfae4438310e3879982b55f14de8c28ed1c2556ec377b15fe6507498d52ddf360c5fb8cbc7856c8894cfaf37e87fe4da58eef0363c887f94399cca9e38c24949fd62af772fa4bffda8e65d24760bc9dce236e4e99fa9c7f3507074f7bb2f57ea8ae3050f9a6eb7e5bda9b2fd78fc6aec65f81de8c26c3a41b3df53976ad8b83aff7268f6d9b3125ae5b955f8025ae79edf4b8c56cc8605914ca89815f943c1c568f255b7583fdac606d06a27d1458bd57cb3f3ddb65ef076cda0044cac79455798b501463d39df4cb9c65faae94410f79995e9e7c4a3e9e898aad54c62039e491f96362d4792bc3639b665ee5a8b7030e9870896ccf56eb65fe8fed0f69dae1dbb618d5c554aea1953364363d3c1c8834c4af5c293fbf7c6fe1c5dc603a5ec12ab6b74eb72f5be5abb5455d9f681a0d5a291cdbf0ae79b03973e3cb8dd9fdf83272592fd0a64939cf6803441dda5907bf5faab1b9ae14b62f9ebd44dcdc2f5f48f0b8348a7bf6631433dfc0db180c7f1910b8fb533cfe4a8be1d35dd75a9cd492ca0590ae2523fae5463577eed70c87944bc48695f3b4b050e4e9ecf9185446e4683ae2cf5b9b3ac399fb6c65429f5075b7bca7b732696edc105b3b57ab55b9ee7ef69b33cf79665663d3355819dbbb235f9693d8cd062f5f93c0a32d744fc18648500f8cb3af9f5c63db65084e8da33a819e57897849bf3f36f6bd68287f7cf8c5f81e9e5af40bb5f76c63d4a14cfbdc8f35c6a95415c4aa157568c34ca9f58b3991a756bf5ab9b658d9464ae218fd6daefd49e9e45b7cc592618602688d6a23aa513f3c39cd7aee8f7eae4b3a4a6ccc571fe79149cfaa50bcdd71fbd8108f170de334389b9a736f08dc9f0944530ca839f326e61b89a59351bf220a4b6c67caaa34f5d78eafa3b454e396386c66ddf7726aa3863db881640a697dd2f6ed0ec1cf5d5a39bcb2d6ea575fb55a8a31cebc84fb6ff2ab6a57a2658241adf1494ee4844dcf158bfc649e49a2e632047ace0dcfaee5a3e0f647fc0c671f648c68a1dfd99aedf78b34e80d5f3f9073e4e4c9e6f2df818e996d3b3d886e7bcf18b69d3ae6fbb1e81610b6bd258d35cc9dd8d54df6d57f9032bf1a5fef37e8edbddd5d40047745b33ea22246e517a76d77adee7985ebc794fc5b5ec17d9a9e9acc471f89cbe36ddf5c4676d97db8713bca53a400cb9b4fa6c36df97a023bcd3b08c621e83f9636cfe9828719203852a7dc2fd557348f5365cd9e7fd3ccf71d38d5d96336026c7d33b88552663297dd44237b4a7bd9ad49f414b068144ac67972b3ce8af5753f631eb2ad3b40aff9f553303bffeb9d7f1eaffbf75ad6673fcce5bdb77eb4b525d63906bbfc4e95e8322e3d6522ea20546a8a4eb45f85881ce25721c0d58c2334ffdff946c7b9d6bcd5806fa778c2d41bbdec1250883873a95e3d5b76a3480d8da8b48683c5ebf757eab919385d649e74440dc58a56b3ccc27b2a8177bc638b61f0e36a215c8079666c77857018784f38bcdda0c5663acd3196b54cbd8db4abdaba6f6a9df45fcd09c5cc7ed5f62e835f8bef5845bba2fcaae4b06ecc55ac98bd67763fcd214dceb7c09e732a6dc9fddee0f27a9809d9d80cf486d0cabfa146b72baa1448ed41a5336c723d5e6e68a43577bc1665c0d66c76a239096ee3922dddc4beeecdb79d50f7857c4aeb70e3af152ebcd0a6ea93606e56d6a58315d86e944d61af3fbad1b894dcf794aff803214d1188775ab5d78b1497315639288baff208f6b48465613a73c540e383b79e81dfe4ab4ad5035a79de39973ec6cefc5869af123f0350c3c4208cc68db8944bde7215b72b3353b780d3fb0e5e3bf677b81f66085f8f05c17cdd6c6d3ac98310c9a967a7b99b8d3af10b668227ef333f5dd72faaabcf936133ed572e6710e58f703be7bed5abb5e4a57baf365c39b59dc7cbad146d1de6b40f547da49e5b48c9580a1cf61960e3e6b6889b99b7ee5d93fc8b795cd6fa37ccc5e3eef692ad66e903c74bcc45ed7fe6a68bbe7d8f5d9478dc429af42d20af57985a0b7d7a30007df844765dd3d437d13ff216a8d99dcc54da34c0a5cf5a9bef0b3d3ff45a3777467b1e639bcff1bb9839b6b45c7895bcf62307460df309eb4e61aa9cc8941418677001064ac161a607e24e1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 46fe60a18124125ab93e0c578f1c02f1bd1301595013001c7f3c2fa56cde294e +public_key = f8ae521ddb8ce3f9ea2835a177988a4e856467f6ced236ada9bcce8ed885b19b862ba5fcc9bff69f35826a39da91ce70b709ea608e6dd73eb1ce66442469c42b5fdfad3970edec53a01e826a4a917bced5123b4c14087f7b2455202a5455159e828cacd84767e5b9c024f4ae6d37596ca7570fabbe5a1d82df6f7fe04a97f464d9fe265054bbb57426b6cff7e825837b4be360ff7b48af3a72275f5b77c450cdc4a484ae7d77f7f3c9cef82bc4dfb72e731fc5d4277ab50f27ebec369818bc3ec33ef6f6a47ca2937f907890c88e5a1f1e5143f62f5865da0459ce7e04695bc7737787a9734fe5793fff572f44912df87ab844e624699a1ab50bd872cb29bfd534b401e538c52ce2dd8c467a14c24f5c9856234da17ac5fa28870dfb70565ac954c440db4572150e6e301736520b5e15538e93decb205776f849cc0b33f11e6a67ad5c9fceeae577f6f5bd37e587f939fb3acee24e35613592a7364534c77c2a1564152ce2e1c6a219b878191dd1e2c94053ebb1282c5288b7d7ed8bf45f25d54d87b901c939383f44f776ca51b3b9d016f8c9b8e65993974bbcfc0b26715bbea1ba7d6e8264a0d31da0e627ae60b59ba58a4abbc6ee94fdcf3133da624591e1dea36849d205d652688964075eb7cc7ec26807b11923d56629914fcbebc2545b56bf610fa9fe749efe82b73d10a541a7c8621a4690b3ddd149b5b952f9ed992c52e94f6448e5936de4eed87f5ff1c5bb558d3690e7b6438d5b1698f9ee5696b5e5ea1366da374d9a1eb4ef03ccbf6bb86a1c2d5bed1f8ef82cfafa8de752fa54cb3784081b5dec67bceea87a8864bae5bca2aeeab4ecb3dd460b401597dc0187b2519783fa13da3784f77f0e8274775ea2cad27b96f4c1dc569416a3117b57dc5b34a1056e4cabeea54b6e5f55bf1cd3c027cac8f5f9b9e4d9f1d98692a007ac22c6b044f6ac9ae5acc4aa3062a348eb2cad9e87e8923ebf56aba2d876e2e01accc76b3223cded31bd79ff5250e086954574e214ce75bdae81eb738fc7f8de989b43a0c4c7ba0b41404abe955c3c01859dc17b35f48cc39e9c6ff856f5924ce229e9b7c4cfccfa86dc8808b43225ce4fc96bf1cdaffa26aa4344ef7f14aa37ba5d48798c176e319c3e325d04afa0759c35153ec78bd7d5d88050f5a1f65f62860c94990460341c6eab4fd55a58d547cbd829d5c33a9fd8018b4c098ac687feb1897d864e2cb0777a798d3fea65aade7e9c5c2936afc4897a611c55086330ee1689f88e7f44a6c127a53597576f37b35b4f74c535444abf5342ddff56d058d0b04361adc83a207952fc8ecaa20cc8dd07a6fe8864e66f84498fb405b5b4b65c948b237b385974a9d4963068c3e6be8c51e4fa7bafe1d5ff74ef6fd8e63d907db49db956b8e10977e23572245f3a58c5e1fbf7993bba3c38a95bc0b980634efa1c9449ddd4d8270e780ea65a6b0be568bded9f3f6cd10a8e2033f0d3af9e9b36ad09c441289fdd6e0f4b3dedc818234f55d7855b1bd0056fb198a669c09f4bc81c99ae0b32a2dfef448ac6084c71a59a90fb43aaa83f66e6aad77d16a8d1443de5cfb61c3ccc731437ff744b7a7cc3a02a948da951d5763f078a991cb64ca8bd49fa2beeecb534509aafe04437e5f84e984f61957ba7477d5eaf55f8b4ba37658e6f45045d40f8d7c14c3578af5f75f69ccbae36cf6f7742e33db588bdb5cc339e09e7d7a9b10828da637586da65d85eda466e3c7734f85e6b9d3ef0fc91ce79391033ea8f46a7e084c595177a501b390eaa818c0a9fd37c9be88e60c7a398f0f8dd8e5896624d639656890ddd8f7ff9ffe316cb1e25e7ae7741445a47c8ec3ff8f54f486e46f1095f9983d62cce7f6723542b0a48e12b7e4dbab100f3bf6dccf19816a76b4ed9ebba8c823cbbd9176062dd72d587f6d01f908747bbc267c59fb7ef6d7e9cc88f7b929e9ca3793d03a73605eec2c98ca2e99877b7cfb93c97965c06b2dfe7ecbbcbc7c81cb56b36587a174e89a3d6acf88fd2689e345a78657c5c0b65b0f308f16f4d5dae4738a716ed54db38bebfab87e8cb6dc93f2cadc11b6571294db740ac90ac44d4b69cba2123cd346dd4d8e363eb18e48b6f7b66c4e42f66b18e56db5add509174d5883eff4de6db84f6ef0ecddac06be5e83a6e0ed3c2bd281161cc07676e12ef19a936d073d684c1491518bdbd426eb5a1463cea8b67 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 52fb7cb6a633fd2e83f2892bd9441b48fe59ecee6d026f5246fa7f2a5e55ee3b +public_key = 6f26e381cbb8ff776b4299a36c893aea783b541b50b3cf53c088683aaab40ee4f1ec1e3add58b322fccacbc9aa91b74fb0657e7a37d6ad9c7c7f88e3bfadd8cb07980d4edf47c764b4ea496a06df8e6a534cb49853afc17b4c7bf096c52d8ff64b7855b7a5552aa93d9aeb47f5ac34e44da094e4e1cb2cb962c9d589aeb32dd68b672d60ffa2ae2999525434e14ecb4906ae9a1284928ed8c42a2c54626fd437f93d3cb765033de412a65983dcbe4d7db9fa4fd4195fe9630d5b39ac65703442002d52d18a83b08574896cdeeffe9bfeebcfcc7c308fa6d090e9be94bdec36044220858f671bbc05fea7557897df2a51adf85a0f8bf5f158d089855f1a25dbd92d7edd0c63db7b99497aa03eb33a8078d67d43a24957a20fdb6e11a4f559087c3ff343a2f5503b33756d55c9baff9f6fe83d80cc3cbeaad0e8b3ed0b986d1ef7635c0cedde434f6d8f6ba5445a5933845d1cb8047a8e2f263e1a86b4f58433c63e8e6b86942cb9fcae767e2cca9111bbcd8b68fa81aa5d22baf9dddfef374a96e563d2b837aab97d920224e324386ff7f9c7d2fad68b057cf6954e6a433a560f785bf43ec8854ee7a8f002d7d3a0d6c35ee79a317aefe3148b0d933fcd55d829746c71ef6d5b7b4792d4dee5d5eb80cbba43acf12f1c66ce6e9408d654aacc9c1eed97aadd347845ee9a377e098ed2647f8c08b7eab3db7f4b5d774f0b99c93d6f7d39c1aabc4b4bd64356476f85d6945b4d4df01bfda8988bc9f6b34579447dc3bdaadea687efc8ba67666f179f782e7daa8cbe47b4db155ce6a773627bbd6c66b5c291b8616bd675c045edb13938c1bffc874b33d7dce28113642bde321e65f0a636681bee88fa6fa794bd72badc69316b96fb69ea99f53ce26dc1c9e563859f5afcf5c2dd84d69f89580b4ce8bc15ab0d9e578686cf802bf5c56c3e37847be52b586acfb3f03b9b5b6ab0d2c5d43e56bddb1c793d3cdfe47544e62ce2ac0771a48c8249b3649d77ad9a4bb5d20c3ccb0ac05c5ea0d2ef9cc89e677693b2d96b83c0d599e47bf38063c50c8ce01f3b3bccae8fc4da9d72bf3dc143e48417c2f4369b0d9f855e538245f444974e3c751f82f5d7b1492e67d90536b99e65226aafd7e8aee92eb22f69b963a87e4bea84d5ca3040464e7293b1bac7f3dd393ee46d6ca2a4d4326dff56183cdae3d5ea19cc3f39742373e0d16ff0f233b383c5bc97fce544a8528c1c74a6a48e9b9b31097477efa632baa4bc6a8abd6ceab5d774bf988b7d7099f6286ff7be2c416dd9dfca57f04384f5ae9b4769443473efb54ad8924935bc0f65a4740699f215ec1e63e53cc354527450c99d9366f696c8b3f3a40da28388bdbbec532a0ce680faa1f89fec5a6988d8386265bb9dc1043c5fcfa1c51a35edaedd81aea4c41755fa669a8aed5de79b331cfe3ecf88bff92ca340d5b961f446eca336af53a95173cbddeb643d4831c2f563950736fcaefbbe47ddb0ff8cddd3e9ebe869580be894a97002ae4df91bd1b3badc6ea5fe79c7af0739d5f65f487cff55e106e636dc93824c770959fbd133516af7ec1b057cbce6a4a3d48b0744a5cfbe604f4ea378e53a9afbac28c3cf98beb03c3e797d4d6550cf3666c34f782d7639faabce69c1ea8f62af2fca956bc043fb6748f54310379e975958584579fba4bd51ed4b74adf0df78849acad07a5af3da9ae8d459e94073903d1a3ea4f43e0e76b29acf33c5fc8534d831e69475ab6b611bcdfda335efdfe6b92485d41f88e4be839fc39bb06a1f799c553b4647a7073482990d90c2c9a96b2866d6d8b65ecee72ccd62f359db709bf39fcc8a39f8e75924c9318f5916386b463b645b4832bcc399b69a812aa9fd0adf60cfc964eef5c8840f7a2d44743fd538d05b3418af6974bb639f4941328d3b10678c725a389aa6abeaf83bc947c6a4dd31487488c73be700b76f25f42ffff6595d87426b77f58fb6b9945d8189e9b37f16c2efe87e3df7d5ff794b0b5dcb7d8bba4059ae2e3ab42984f9a42ffc3e0568a64b64a50eaca8cafede8d7dc1cd656c6db02739dd23bcad4bb7ede7f9989cd85ff44aefd519b7ec4d352d85b9412d8f9f8596f1946dc2366736a345d9c750162ee01f8e92848d591c19868128a921e56384eeff19446577783e0b1665396c56cc9046c4c7c08a569d8edf0b76096e3c0643e13acf3d522c782871a1f0b31cf8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0f81a5f97082121244403da3feeb734f6084b314b8d94beb11627aa6ad1914e9 +public_key = 810bed51f687aa1438a329b1018d5f9a0de7da1e9d2d06c1a6978569e7c40cab47ce5cacc4d35aadd89047a3bf7175cd8833540b9ad28c27461d334b3f8680daf57313d7713a45d75ce971cac3cfebddf774c3589d3ef32d5a73d959705be77c3dad884f9aec3a89a1059972f125f57ccdce9f23f71fd73e7293bf944b82865986a5d56e6c9c825c93f7204f908c0953fea66de4ebb8210e3fe9aa9522ab4ed66334de74ef8e66766bfc47a7b5e56c28fc0bb3628c8eb5956eb05e4ae1d945b36a49f3b12abf8f698d1234593d0c784633cdaf09cf904e48f74fdb15c48aa82befc3e79fa4055599935e1076c8c188db1a1daf4ac9652249b0c64c94147e32a12ab62edf65334cc46a3444437a74b086d39f39bdccffd16d94d2081949c8f6d66f09839dcdadfc6fe5590aab10d5ebb03b68702bd693dec5c47c58d214b139b835637f8b3a87ef25cb7638077c4b7bff84ceedf2369ebe9b4e51f36be72bb04e1b59195faea0cc31d1a774768940d748d1b8caf3f71c542c9cd1559862af4950b8ffef5d4abc3b2ed4251574e5597076f971b46c3710be858a1cba35353d2aaf3db9e756c58ae15539824f5375080990b3835023f448a33e4d08c6897da5ae363f5f9b7ed7ad4ca05d653ba78c5769f5eb369cf00543c2a2884a2e5d4a748f700ade66218a981189b5556b38df395ae007772d2ff2c4ef778c34774c87ae0a3ebd116c82ae33b34558d8e07cc5c7de6c5108c155a451e056f60067c6fc0e81ae0845890e7fdbb7ae63e9632139dbdb4b3867074e6e684b700b7d5c1d74641c5703ef87d257b8a54597668ceccd8dff735c30bbaa84c04d51247df572a6fed8acfd7a48e7ac4879d149ff9199c003e63667fecfc609edfc9386b196e5bd3691401ed270e8a4a9a99e772cbb994b4ca926bf8a04cc1d2dc886df68340ecd8c7b38129db0e3dca0d6c33fdd494660df65782ae6fbb546e9b6c6ce0462c604b900fe9cc2d4608269f84b8a83a877b9fb18415ce6dc38bdb3d6a48c803a61b0a5c9686de8f65ad1316f440f0c40c72d55cca7bb6cb9a293193485fc529a2f478e4c620a83e44a57833d3b5b9ccff2f2f4b452447cc06638fbceb44054d2449a3cd60bcb2fbccdaeb4f08678fad7f972018f76e4e5449227d88b485ce6757eb45edc62796d0e7a643a3c72c71fab165475f6f5e456d498e858aff563c1f788e035fcab3c85cfa30fd8d1e4703e4de5e14689fa0c9b1f57984b678bab1dcace44a2fb23bc203e7d5304552316e83435c6211fb2ccdaa9a744575f959b57b9ccc3cf8e1a94959b9efda7ff59d11479fbbc97f54a57a986be61f49ec53ef4da687221aa3eb4bfc02a8f49747bf0ccaf91f1633e7856d8d5897da14af0ea377df6b9519823fa7fe5f6d075f50f97525e8d9bf9cc7270c7b723cc95dc9c8de06ee3ec4c8b3cdca07b7f42034741a3cc684a998514fbccc435a8a2e9f675e6c3f35fa7019a74818689574c6ad917d80954557ddefe1d47ca2334db79cf301f39c78137e80c268b76289132aab01f457adfa649a53f4a09edbb5345cc2e09e0e6e33588d6adb499b04daa6430ddef5777bef8a7af041796316e9d13cad991cb36e9cf3f16baab09b7fe7388c93385331f7b5be05fdf1e75c7ad28c54df96df40ed96ff4e20843af7c7878b4483957cdf2ae15e12253b97e6a61780ccf4047589fad4000d575947ff983f8e87b6f32deeb59f6ee47ef26f8a9f692b8bccea069cee6f49533b7301728a3ffc85d7db98398ccb38533f54f843dd79bb58b4796a1fc6d68095b8faa7ff948ed01e6ebd6694f2d2f5c46086031a8610576e033948c29278e422b304dac98185deaf89540a2aaecd6093c86a3878d2f6fcbee56b95d38f4ac53589e43f2f585508f5b0d45bb974b724368814a9487a60a6e4136e470935a90ebcf45b53279c67d9243d556e99606ecf2a34e9021896b2eb750b2479aae7a706b1bbdda5e4174ff3dd3066162adaf8a6a9ef6aa7efc0be406b9c421f63be2e376f747731a233a45a8309bb8e82d24cf6598c26d65c89da9c9e9e6b9579a481765fa8d355ede798e0988eb387c9935333b15e9f998a4c737df66e0cfab627d8fcac7b822dde04459ff7f4bb8f37b502689df3a437cfa63af8844eb95a8899ae3eb3759ece3e42fd9b3701a63d537569b75a6b4b362c14f1b4ba66ab7914c9900187f1057 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 31af9345365549ea0360169ed57daf98cc5444799d4c75d9f1f5d615e9df8a91 +public_key = 56ae5b781e8696afbfe69365a4474cc6febd3bd3dbecb4dfa5bbd5198b708d68e10aba64fa4a8e5f955bfd935530b95f16ea816074ac23f8435fcffe85b762158e444b69927818f694fd73d623c99764c759badd6e4fe1ffaea61b04851aee42eef86ec20430813cf6aa48e2c42471cc8799b819e5233ee1c97bd9ea063518d4f78656910108efaff3f29fd85900da5abac8a84a688bd59ad3213ac801a9f9e089a24ff8c713ae751856722fc7af3c57bbf95c77c38c85d3e481916c75ffa371d3adc584bd3d301538cf49c74404fad2d8de1bbe3c5f1f6ab6d3ccd743e77e469e6b3dcbe0d3f12215b66f57bedbdae18cef4c4b3f67a1e65c909f4588e9b10dfff15775de653e4b7653e36e87bc141c9a01dc7b746556a1fad1f5aa8d2277ebe3177bcbeb605093a226eea847c6ab78ca89c4d3a4a618932025aab56646a974b0894f9e1833d8dbeaf7fe7ada7f5a6b36d681cbd94ec205a0193e9a89345ca67e5ef89f66d1f67dff3ae867366d14bb60625b988384df4b46f7ac385fa728a51c26f401d86c4f2385bb9661ca99e5635f3a7a76e11195bacec69abd4c35ba6959397664ab56a622af5b00c5aa2c0793487a8b1b5847a29844d6e8cac42ba2aa3586cf1e7b010aaa334f36855771cc99992afdb948c671b4a7ced18f358fc94147f86fb01c3b131dbfe0ef66d106db72baab460aa7cf7d83d4c9e3635332cf559b122af6fa643fbb7553781847787c8d78e9662cc8f9426f7bc863bc79799d478e830d3b41d156384f157e3bdf7192c9fe48ded6ab7ce304a3b56733e62e933cc29bf20f45cbba6e5cc90aa3483cbb9c6ede7aecbd81bf8ba3b5ee1264b6c70f3c30843462f33faf19de43555635c674a80679fbc88270ab53ccc83b79673e297ae394dba0bc2b421c0fa0d52e3891edd93c19384298b039b5b8f406eb2def86c01eb9a7ce64bb6af69427999e7d7c3f6fce88d66fa293f18ef393a4ec7a36efa927c9f866e5976e1b95132f36c39ddd2b4989e0759ab8ccef37eaf1288ab22fc4a13b08d78a9abac80c814d25d88586f275c638087b643c6db46744d8879e56d52ca257ba50ff1354f4164b4d39d69a99c78065f7c7674c2dbbcf26656d1118f3f18fbc894d529aed931a5d38f766fb11daaec75668b81f44fa6769a19bfd4643930714e9a01ed5082ba91ff44f7b6bb33aff43b524979ad5efc92c6b768ee1930afaf8a8e41a6c444e2850f03353fc6ca2801df3b9c88f6c0b8aafc9cb9a8ec461efb17d594c7b6db6e355ec9675c923a7b1645c4d40bf8b1f4fae1fa3d90b86659e1a7d46183d26f380a3cd46da0f8e9906cbdf1ab605367be6a5609e79cb8dc349c739b7d4f74007fa69b9c5dc952f3e2155d9b3ed57272476b1653d9084db0c059b1d2845ea9a57cad384a2c7cc2c9f697906e0de47bfa02af17cd3c43cddeaae86642b84b79ce582978dd427c78b804fe16823ba964379f1374e4b164ead1d8235cef139d580ec4bc11be3b6254f445419f04e1a9459ab3d7d33815e76589cb4d09b27ca2e6ca470c6e504569d0f8de55d988b80988cda1c9ec0da673bcf497d7affe1cb853905f72bba5104a4cf7659a616755cbd7aecfe4fa9ee2ce15158a66bfdbbcfbe49dba4af4fdfa128a988d8aa5c97164be56483e28e6e535dfb909be2429c505d0a3a4b2366a7bb38169497e7bcde3ca8ad8f9636a54cb4b4d667d91752d6658a094e6d552c3ebef8da613c41de4478611598bd05b34a66853b079481885225a4ebeb4b67229de3a387fa60e55aaa25ad44575f45b3e78d37af2786a76f2da5a97e9d84e693f693507aab4cb43c55a64339359b8075a643b7a696c383e44a743288c37ffe36c454a45445cfa48c3c7d0415c126de33670ca1709c7f80897751fc8d0703dca0a3b1108ee0b03863e6bd40b7a4fc6b5f7008f7952b89cffa3ef8029695536eca7605de1ecda0d2b8b682d8459ffcf91c27c1e38ebbf6ae7dff1cdc75a3bb4c987f31be75c293931fc444728ab8590c6095d6d542e6bbd2a39e324b96b06e328ecbc54eaea44ca7a175d6ea1326e0bae5e44c8df380d45b5efe622f4bfa4e74d457ac830c8cc05ef95b4429b599983bab346a47443575087e975a57ac9e601ee65966c5e8391d8117934a5f334979349e3fdb9b49ca49252a4214b6e298c3b12e5f6e85ddfa7edc01a03b27468684972318831a +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 774ae54093d694ef40b63b62c73e6c98295f606feb8699807eda1d030ffb996d +public_key = 31596bda1f527e2c965ce3344b56f1191ce0705d84847dd6296c37949aca196c426f4783b76ff1b9d5d827c85b7067a9872a6d9277828ea9385f9b512a8a3e8986f8d1aa36a62d6b350bf29bef626a1f6b7569db2e1d6741abf7fa6852a365fd6ce48c9193c96b3e313a7e66d47c53eebbb68b949a5bc3c7d595d27a6eaab89b38f5295ce7d6dd3eadd9508769ee37a48eed685caff8d998b883d871996ed8b49c90849dcb68147e8bc561df29cde03beed5236ed78bf3b303ff687b859dd6343999dd8735640f6cd73ccd5cda79603cfb37fc5ccd28e98b4fbe692724d8a1cba57e2eafb87c97e2044766b38280b6911b95725d5a773277648336d3fe87eaed89baa1c8b2ff49b74118e884c63270ad693fe645525df302ad552f59d35a36fe9d047d8b2d75fdf6636d7f6f8c6d98fb2b8f01c89e87478dc22efc38feb8570be4cec53674ef97b8aa9613df6a4dddc6168c9deb4d7133acb93add6a7c76d581a877f046b9b1138f6fb6e56cefa5c0bf3d04954fe33be272d73e39c79094864cc9e36e46e9c8f1db330c17a0ecbb332e385769c4c0ace7c0b0d49fb8a5d3ccce3ff4aeb1a05feb80855fcb947cb75eccc0a7b55c6ed0c09aab930ec4ff8c56a2e9dbac255a3665a732dd7b8ae8f9f7a7b556bce2accce073b4db7c46d59edccd97b5dc493359c8ba390e47e6921a69998b9b111c4dd283456f7b61ccf97c1dbc362e2760e39f82284d5e44ace26d85f6526f98f73e5302288043085808195ea597e18d83e544fd947aafadb96884b3b6f0d4c861248e8cf848b295fbd0363eebf614b07797edb1d8c779e6ee90257730e47bba178ac6ef8b8e47794517727f4d49dc759ed5a69cf7c66de06cda5b0dc366a87f7f39e4e2ed59bd29f1ee06eea9dcf0200e6f1cdabca3dfcd9aee884d1e4100ec5fd004e6d6fc6222a8ed8e4582dd138d71a368bd5590645359cf767147ffcf5f7a58e1eebecadcb1da0c87fd385c4bde5e02836d877df5d0e8e5b06eb564f8d3f1fdbdaaaead0a3b86dd9a79b29792a713c7900dc55668aa2a0962b4a9be8bd9cb6966a055fdac3928fca4d54f00ef97891b964933aa8e6da87bbdaf09ce39a8e79b7a5773cf189cab6e5f64b973eb273ede0bf8be439de0ffa1fdba7f2cc3c65d0bde0dbe77b7ac49ad1b4da17f5a3f4af7410bfd82347dad3f9657c9bbaeaa94821ff95c28f8b02cf2ae45cb0e0b46a68837ca5c8639ab483eec5b4dc9caf028a7bfee8accd4d2ec6aa57a93a1c54ae45f9f319444ebdea6f96857890fb6e6d1bca0cadbbba3e4302e65f86c58a283ca8d1626515e6a84881aa692c662a3567cc294a23059392887ce7a835f8c8d30f6ded60518c71e0c56229efd54e5d043b73182fa67df9f768c63c4a2c562ac25e342fab8fd9e81bf8f301404792aa4f58b98411fdd93aa2fe699fae3fd9ffbb5b3e7b56ce167bce2bd8c3ccd9bc743a634ed7ad962ee3ad91a779a34fdd0b9b4b41a5da11cbea095d32fef382c4b8ce088524075cdfe7b7c06cb6f2bfef8f4f7a6c5d58011c4fb8cd39a8a0aaaba14a0ea8c9a7203f36944e0cac54c3ee5487e7f6acefdff9dddb027844ea2dde8e2744571c3a2c36b4e0ead88f09ab93925fe30696cfd3473a085be3eccb53ec4d6b66c95ef9becfc0aeef8d8f38b9ce29abc9177ed864415852cc8ce13a7dfe8a76ed0ef46800997c56668af974605e748e3054700d7b760ae822793d9e41cbe5b5ae7696c843fb4ad7257ebac747fb03dc99d2433665433ef29b6497dae8a3593845ac211ca4af0e5aeb9b8afa5b4419559502e834f993543353835596985e325f9c158fd0fcb9c12aec79b7d4db1d531bd0774f91b6810b98766a83387387c078f584c94793fa771ab8b4216455f7b1e7c65e5a482fdeb5bd8bd0b9f636368e5f4ce3c7c6740d3de778ab47d56c9a37ed4a660249b8a5ad2cbe7e6f7ad9a646456c4b54cad68c86f8b99885537966d692cfa68b517630926fa7b5d6b29ed42c25850a7e6357ebcce397e46b95ad9fb8fad2cda8123477f926757d65f929eb7fe379a9bb997bab1deaeb60df668e7715d9591691f9cd68d48ac1f99eec754b918de7347d84ddc37c4695b75488effdc370edb65665f31f01d91d86fb8ec53a3283b3f7bc5e14429c789afcbddeec0454466882448990d0c963c4dc08e6955a7aa5238a6347a0d168a1ab143347ab4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 9f27a47604ab5146caaf0aafe6d149424f8d66e39ba3baf5e6c73b19221b7e21 +public_key = d7e9bfebe65e89997ce4e680ce385c8efbf862175fbdc9b25dc7724f74eca15be676ee3465d634915593a228c3553fb317df95dcfcac909b9aaecafe9306d38bf9d4571dba38c763c093d8a1d6b9b8667b500c649b94cfa703432f8695377462ed6e59314ae84f7349be26512759a1132f3af2cef127f5566da94c8cbe9765849f9e849a4f235c9df3783627b3e558f430efcf506ac1fd09cd5067422789ca6bd3ceb0f5e6a2e88d0406abe03b65b1fd64d87ddddd2f7ca56dcc784652fd1e68e8ea53f825851b3ffeac1dbb9c8598e6a3da2abb627ec5640d4a3c6efbf2566eae1a0fdfb7dd536ceb93145c7616fcb46c04b2076b9d8b5de3a4bc527848a8973bdb6577c50f73e94e6357bc2d84fae54c592577d6c7a61b794760eec43f7d98087fe32806a7d25482ec3ade19778aec2685ac19490d3d3cbee96e2a9fb8373d5b5837d554dd71855d7b13cd6510437b5c78b3f5dbeb586f7da586e1dd3361773af13e033dd65e9667de8bcdbe3b3f85e901e6d1ae23eff4cd61af8783979f967cb8819afe770bddae196388ed6b9746fc6e536443b0ed4a3c9f352acc4ea14e73d00ab9e3eb9c1dce37b2d6b14fe36dff9591b64dd853a349dc23799e9fd9e91e965ac84090f34d3648f020ba31532addc909b9ee7f5ef72fd92a2f8f48a94a5e04d03314993fc8b30667fa4d5a70642edc062de1c2bd9ee3dd9315196f0929fc329565cc5a64405c3acecf34acccda78f8eb3ca5f3c44affba6e873fcfd7464a302d8349ac6de67ca33cde19ebe588d1b6e850dda6c5baf498ce1897b247bc7e1a84c7be41fc1df86fe864aaff7db6475ed24371cf1ce9586750d07fac1cab46ce0886019da0c24ffabb4fcd902b6c05f4c4bab667b55bdd5a0433233573154467608da2ade66dbc075d7a9b4ed924417677b6e195b90294ffbd4390598cf8a25d4e171e75d259ae7c44333e84f471b58757cd666a0dcb94d87f73043e940a5733f89ae3e8cf037b83a51b4769ae9dd1a9672a2e6c7f3e7bcb06dc3b07cd82784d964754a54dce297b40e3f8811834885ae76a9605a249958f02d9bf2ffda195d360336e560593a637be5dddc681ab9bb19ab7ae95e3fea474388e8e585e49b463b4703308ea6458ef47dff9f85ea930f6a632e8aba8a8ecca98d511164b8f09a8bd9ab8c07bc8a28636d0e3fbed77b2cd13fb1819d9290def192943e028af329b4b822f38a346fb5e2a61cd7b3692dd61497d3d6a2d80a6c755c66d490cd5b47606ac9cd9bdb927b6e4bf6d916d921757a0f86aff82c6e8bbb9d08c7d73f24a88fdfa922eacbd673ec32157b3625dbe06d3ce2c4b64410543cdff80144cede749e7b816c86b2ad4204a8f3fd7cadcefdb4193ec8229788acaf19ba59af78388c2b9865ec3d00089c6c05c850faed21a63f8149cb2a2af7e075a3ec873dd905e5cb789d3fb5531f7ed5ce994f96669b0bfe8af8ae59438b834d52edba16d6ee426799d3e3233ca9487ea35071871420c6825889c07eadf880ee98d75650e36ad22af65d4b44c0146ec0653b5604d9ff4cf90d3cfc2133e9297d5aef2bb87164b7535b7518dae4469fabee91c81395df5f79e4c1a0e8a0775598ad4bbada98e06c87c9a03dac749d3ae1b84fa9a3c3f668042883a8195cea1fa5bdca59c213e78efbe8041bafe9af770d28dbe044bab1c8c36044a70e60f815415d1ad7be65d1fee53b86a5f368729efaeed25f0a09a48c1fade9419b313d7c6a9e59f182fec8ad47410abb73f0d8c1edce6c32b4a46f39712648cd16e96ceb8a076f5c7048a3aad37393973b8679c553a3e37e6b6ba2dea4d50f65e1f0ef216598de59f60122d55f5bdacdb5d3396ef42ba9d398943c18d0ecdca993b3c9a74e19ac6768581ccc9a0332cd05ce873b34eb3e5e497493ab135ee8569f8da6e1fa0461691209d72fae6a30f5f9cea1bbdbaecc7cc64a7d655a730335e8b2fb4f435de2c54976c69a161694aba04456cce4e2bf8c13b1ba2a5bcea6b557bb16e805d9d3d1d1aa33689f2fe0c51dbc35da6cc8593b8b3cdf741231ef6eea9cc5bacd632f75c7aa3aad60a46afca4a6d166f2b2ac859cfa572e4cdc2d65bca199cd73367b849d9fc3f4855c4899eafda32c3e07ec56789d63c25036c35e3dbe6df8d54e7f5f1eb3f924bb991cc4c5ec2e36585c0133b82099b8234cb459a9fd8aca37c4249a3b020 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 90044031b7597b5e60a4f946b713e8996d0426d2cb013243d9b7d8f8ef159a0f +public_key = 27c546b9fe48d0ce33ab8d7fd8cf33c7b5a5c3f6b8db3edef7dc5c1a834fd1559cb2439406895223a9ea4e78f554c63ac4bee7d94daa4848b1b3864edac960c666d46e3bc6d3b681e1e6b49ccdf59f1aa2a53f9b2598b933ef6c00fdae2cf4686803ca7af8bf101f43e64544d51794583349f9854dae778894438805793b085373d0aae85cda5489d74274eb7bfee433b63a56e14b95941440924cad32935440b46235a8576e1eb8d66afe8198b64c6edfc1f942bdabdf8e077fe33c559cd987625f63e9b66c38c5683893c3e10965f18aa756eebea7de789913cf2dcfeb42bf3c4eecab25798ad14af6321c59e36bd517a78743c4469a4435970bbc2bace5499bef17dbdfccb446f68cff4384e5abe98cdeb3346413539a6eb3e0cec40e243296695f2725fb7f7a32ff5be85ea437b275c6f617523ada8f7d2a594e277b9328d19accd051aa39974fcc0a478ac7466e0729848b5e6c9e86bc8ad85be985b395e3b28ad89f71e3b584d857bcce915a47a2fdaab586b7916d9a87a66f35db0c683b9bbd601dde6b2e8e54464043faee882bb906d9e7cd4449fdd5acadf5b017983c87b4a8b0fc9ded8aee2e7ba35934d00abd6701b5cb29fa3b935d715eb3ebd8784dd1e9ed26764f32b9a49f934c8c06ec4d4a8f3608ee3ee33023959427d889e4a3c797df84a10bd995184ba445e035bdf80f34af12add4eabd6fb1e690500afeb039a9abc6ab00484b9a2694990e97b69b9730eadb8455bf592bfeb4f9cef38ad6e8ded7bd56c3f7bbe0ebdbc60de87bdc9cf2f63cfe4db973140c5fff95631849f64aabac5dd4873e44b8b207e16c083dfff8b64043f2f467a91f5fcdd369f9364da45134b97a39aefc6f52c9d9f8addbf31ebcdd7914f2a9e3bda366762e35e4758badb3bfe14a9ac924553d43ed5d3769350e4ca047e4f19f1b6fa953b60cc67b07b7edda85649b0dd86ec5c55ef46e73bbd6613a84b35ffc1cfd39564a6873a93860be8c4ac9fca8aeb205e8ad587f8ccbbedb13268ca519c2a0da39be15918bd7f4f786de826ab9d47cc2899e8b60aa87e037a60809b23066fce19ced76bc457107c8c08d574a2cbd0f945c59d4371bfe4737983fc089a426deae74993451055ec21435a91e4060baa6d774bb6cb8feffcea40efe87712ee63108a2b30e901369d0a98a3372afd88d8c66e9e774b02c6d568e9dafd9bf3ca886d49e65d1c4cf2abeabd7be85dee9671eb941ac598e1c0f40d92ca7c0bee9cdae5a643ac29c3dafeddba1acacca8b83a1242dfff21bebb94ccc16fbaefaea4fbaa36f3d46b7f67d6a7e06df051f5229add26137ec9bceeb04a7eca63e5e6f3c9eac795687da91eec532476bc66b2ba7a575deeffee9ea13c91bd94b19d3efdbe8d843df5dbff62f928550b106e93ab64443e6b0d9653c5389e58af74a6436ce3b1e50eb3e367aacc7559cf01124573235a5997773064a621869707ac661a39f38421c9ce88cc38e733c755394446e3d8e8ec60db7de46035b343577a176de08a67849558901d539ed84cadaecce4da36c4b9940e116d11b97fd1b9748cb08c2e3db4880638767bb67c753e1021b6c46698a21aba391c65b9abbf38d93a4bb8dbe911c3ba93e9bc866cac3e67fef1eb773ebbbb86398928d9d565f58dc9445fce8e5af355ce2cb38552c5be069b6c8ddba83f849601f30f50bb57a8c4d82ea89136d8cef0ca6cff4d8052b736d9c6fbdafca08e76301de50dba480815fec5a7be3f74b8f705b4eccf9c1a336a0e7a47263e3db5d1675df5afabec7522868ba4d6e39a9effc246d8c40a8bb5e8c65661b94e008ba442b9dd9883e8963d29d7c4e7b56f0698db48214a84cfadb3466df2905475604f8d195f41d946efbead4956a3972f974bf2dbe2033e4d9c58dfa3543acf894d65b6f22047032f4d8636440024452f7cfcbb5d6987319d7c337e774da95b0a4f1e499b17f77dcaf8585e243d3954dfaad5fb0c2dfb2ad16656cb79258be43f555757b989c79a49730354e42299f29ae66edefa03e1a6dea08b01ba3f3d9958d9f4fdf3055c95016f5b83ebef77c3f300bfa60974815243f7edba28b64a58bf5afebd76b53675dbfb6fb05b89f85f945c00b3de4f8ad2517e21bbbea872f4a9db9afe9cf65142e9cccabe9166f68d169d97ad048f7fc245fcb93edce592a8d415d4a38502632973ed98b6f97f986dbff7e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a7a31e140891ea37d2b6424b59b1f84f89220f32dcb73e037eb912b389d34a48 +public_key = 98c5377fa74b86746685bdfb2cc869495f594c6fcc0dec3c240c49b1cba8236bfb732dcca57aa380ca7f6ff96688c7d29aada52e34805aead14473fcec7d4b0f08a3ad9c78dea9a9f1f556bb93dcb0345abaff50344faee2944879bcd103caa1d0be93216fa04cf473ff47fd72e5d0574660435b756a99635aa6f6fafd85faa880f8c332f674a76bcde96a43f6b0e88ac19547b6e8a4cce3a3a60a9590e5f4e625d1a51f62cc67a3cf036e08e947e11c33d34895a2d4b7ed348ea93f9f8e8775453a65ec34fddc6b33e6374ace4d64cd8c765bc3d7965dc05f0d54dd1eb4032b33c4e937173daff59986b95b7c72a4d2d61c7ca3bccbadba94ecc5e51bd6d330379e24eb3fc36358cb83c55f18789c37c541e93b3b88ed439d4eda1daba5f6a4168336dc45eaee66761dde7617ebf962547d770af48bd4e5a6f441c005e0c2cc88dcd7d49fc58c3bf3a3091458288d87ac8e569c6d7c66c6b6e4f677b5edc3b4188dc3d3741ecb585ca68a73ddb18f18739f0e94449aeda0d436f2b7efd19fe8283c416a0a580588932fab5904cf89bce9a1b543f8c70bb94376dce98773ad14a51783486268c2718d8cdd07e4170d68cc8c8682cae1d5bfea3408b1826f5bca3349162f949fe6a3ae7aff0476e9115ad318fc69a3d58bc048c45ed4ac3b7edad198762abfbd673ddbc0e7b084beb26cdad0f576a2d2b8ad3d6fe2d956a5ee0985cd5df3e9a99031f3a903934f2fcf4e2ca46f07af6efc3ae9fd38f36f9d97420337dde6ebc2b7c15fe9949acc7c27a7d8a7365ca87b72b635aea5d67541853530f66be8eae7318e5852cb3c630f4be60f88c7bbd8a4afc4433d7667c8bdcbd940c0a6b91fee657be599f147f2f2efe849de89b8b389741a5ec86560f1b862eb6366975355829d516964c610696e9b24a956dd7bf388ca0cc4bd096eb388e5a9f1c78014da35ca594f9f1b766494b7ab4377eaf6ebfd8cbb5e775a4f6f7e2dd8dc181f8bb5d3e4bf2e7033668c29198ce8cbf7bebc79b1b4c5fe8e578ec3f709ac6badc3cfb7d4e4584bc3a38ba2ca1c9eeca55db9ccf9589eba22ab54faeffcadbc83efb58e2445e7abd4a93b1ebd083950ed7e536bc49b39c53d17b8a302ae7ec0c9d188d8d0cf34d0312b76fd85a26567d22909866f5591ec9de7440364868c45a09d39ff053e6f8f9ac74bfaec8ec9dfa78703c7af8efc6ee88c929183351f85fa47f6d8638c70170f6a032cf89b936e06f46889f8f7a2edc99ec431c763ae80f7fb8e8cb87c3b7b74159596a9cc5a6c67253738e6889f5259a0ec87555e975ee50c82cd4442828f827faa7b82adabce0d9a05685813f3d00fa6f3e1c4536443811ca8e48fab9c8a5ee63a57b8c7377d55a994d6ca310ad5801205f094bcc9fae366a069eadb9a7a78e78479eed76d65c8f029867d69be153cc7f7b7c3f7f6b5f193fbea256f3f9b7f1165978eca35739ee5a115500677c1bd33ffe07e45ed07810ea4651985a3ad7b5edb37bc21e33115d4c8c8c5d9441978093ec65b88a7d934bef0b9a52cb4f99adb84a6e9d53eb4999b9fc92b353d9823896d3759c3daa69879782795d17747c102e7afc0a330ae96bc2e7a4e6c4b5a638bfd85ebafc4e6c4cc676f79ef9e6eb5b8a4bb942a797d78cc708ad3cd2f14f17f18bb3677318d3a917db68959acd09d3897d95b586e899e5865f53cf54974ec4f6fe8be5a4c6804c99dbcd7c3e84d7fa99b90a5586e9f28daa559a81978adba7b770a4c601a8dad940ccd42eb70020f54848b8c4a2886a1d835abcb9097253e2fc8e74265f5cbd37c1b8b3a2ef47e8a25e47a6a441be37e7b2579e5f74641c4731ccbaee48bef5bd744a25f84249e79a70a70bc9fe7b147ef929bf75e14c83554788687ace37788842ec87eb5403cf3c93cd4c9e40fb63533591d96af9aa5c47353c0327ecaef1e8bd868a6fe29575f5881c5a5bc7f67a2dd5457efe7e329473364e5d9b039e4d543843cc3b36f2e3e27facd6f0369f165adcbc3e4f9c4c8930564b9f5aaf21c82870d35e907fadfe3d584b8cd6735aaff08eafadf44cf8bcf9fce57719d3a3cfbbfaa385cba6d692923b88374e00ff67a2dca711557d0e0594dfd66ae557ccc6ff3651abff52adba2998eb7de1f83d3c6f1b40acdb3ccf2faf5ec5a64488a3993ab8fdefb1682784edd39f0fd80883fa378cde6eff656f57119177c56a9 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 70eb3f791faa91f1f982fa477dbcddeb2c55691c07f93b04cd31b37544c94b42 +public_key = e5ccd0953fc97a66bea67e33e04ecd6e6d95a79e92226c8a1c7ad416ece3bcd39cee2867eaaee02ab5c7ee37ab23d33e113b3e7766b7c75fcd10ed3fdcf38653149139b532ac46b7e91ff9c2576c44834080b75d9f2490d7aaf3e6d6cba707458d9dc7bb758e3d7d49d5868b33efc5054eb280cbefe85f892428e051a9b35c6ac779645e6554b5dfcfe959754f3a47454837b95138f0d057f2a884b10f0eb5acfcd5aedcfa788d91bdab81f019eed67a7c7d16f085866df2173496afd6743f57294a4c82b7f95a73963824eaa49fec764891fdbb64dbc6aebb67a8c82caf8607f58afbbce566d55405ada63ac9f74f3de12447d89746fea494662a69a12e73369fa0fee8f749e73d4c2c9d192c994a535f1277d0a6c4cee988945353c9eaeff40828bb674bc9902fa298fb6750da5ee76345ee2bfdfebde863efe16e76d7d4cf51ade46ef82974ecdfa1460f684ceecc3eea46cf4cfb3c5ce4178a79fb495a44275cfbdb5a23ac7b8baeed7fefac077fb997cca5d454fa5e8dbe03ce49c0c333cafad090937df91491f4ed3ca3f8c85367d01e5bdc1c9a73be64abbd7c68786e79d4696fa138834325715f1e5584c368b82dac8eaa45ab4e76e996d200cb56c51e43985a6bae63aa16733464acb2cc948a94a5f8bf6a91156a3a6bfb55bcee980d4995448fdcfd435289c880ae1da4ea9dcfa2548f17bab1fb3ea45eec41371e98da05e023af71c8feacb707d563b9b4c82b71228644b45fe326bd9de2946b829b31e57bdc967f7c762b5b5d078c1bb46ff2596b4db6863987c69b36f25bb9595e7efa5a464d84b6bc7767d1fa5559d5c8cb55bb30e2e3bad64fe25ce9c790774dafacb19f4c9dea8abb26bf6a6c6a51e38fd5b1efd31938a9f28ddd354cf997e935462be21149a16f8ae33af9a103b34e2e3e80516a5421243769eabc81a5fa407486e32ee238d99bef9d554d3faa12e774ddabe7a5d98cd79df9f1bc8671b9d1569ecfee86bfb98efa5948b9455caa51074db387ef89e746965f4fe13daecf998b6eeb301d865f67b9bf4718476026ab326ec77f677fe77a301f357caefac5e579bbd0b34b51b8b58ec7ec44d5fdc669b9341670bb653ca373d96d79e680c95a0086601448c61915d486b6c244eacaa0198f77d987c5083854bdb9b563ea717ae0e85e7484a36e38e465e4c855165bf091c8a23e6bff2215f4285c739d8b519f55ab1d6c4505ca6a00f6cb6eeda16e1355c1c8824ea571611b8a3925c4fc64a5de44a2a1cbe89d48aafe0ae4acf5f290b6e5b5b4339018e81e4f8f3d43f67dce35a2649eb113c02353f133adb93cfd8203c4def0e6465c1ba8a1fa517c37c3d363b80d25c70248c5211dcd995a866d9dd4ecaeae03e56e4783453f5f609d6c84264c836857a24f2955fa955041a44c6157bd2f6f71240be12fafbf88beac628a3940ed9968e7d7c1ff7105b491e19c34dcdcf07367ae309cc1a1fdcb017f781c63642823623c2f39335a73db76bd449b401cf5636114a22863b50ef3fbd58d4007fe3dd66b44058b43bea6de9a3a5adc3437299bd5c7c3e4d3fb9d4d8df0b64b648807db749eed934bc0a81677d1664bb497949b757b03ed74e76c8a2e65410158973f3da2a9b6b035cdbaab2fcd62b4f1bc25c7bfda61d0578c1436b80864dcbc6d8cfcb78c8af6a43188bc26f637ab479a1ce86242766d9daaccd94ce3d1885c7c994acb657fab0a75de27d37f6370770fda966d79963de82c8f65f9ea8440ba9e08bd84f0afa6cb244d7ebea39c2df97eda34bdd8fbcb7afee97ebf14cecb8ef6d2c0b3818335895e754ebe75476fee786d4ccb52d7e64c33a76a3b3e2b57b170c34d37295d23ef351cffea95b649553fa1a5e8489edabe9c7ea4459a4ea08b8dd65c4fbeb66a5058cfe87d6d8e09381979b60833dc753d879bbbc30b6e50af273cc4e5fc5f1c43e723a03663dedefdcbbfb6ba092bd862fec75163dce52c947743a59595c15f5f9104a892e089b912975c7c598b1df5f8983b5a66a7a66c459610f63e95a7b1198b4e438edd69ea7a8fc3880c0876db8fce872952120a666aaccd5c2dd1b6b998787ed071249db59ee17cd69f6a35fccbfea64b45c84d3dd4eea971ade4659e45d8e7c6f3fd9658f1ac8789297a8dfb3de7b385d927b522126a05aaf40635372f59af9ed4e64cd55048057d8b30c04fe6c876b8a67009 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 30f4095015ba88b6d969672ca3f438c395dacf7d476ea7a9e805ce932d270a13 +public_key = 5e8ca56e95a1b854e47d7de1ea3d57b8d35b6e6d52ca045cc1d8444c1b60400fe2fc67653a03cf7d3930384fd6d4ac620917e2be287eb74d4843c5c1209bdb994cd28a445be50550e2b5625f4ef4bc58b256fbd886e74ec8fdc4d18fa143139222c8d037c6e64aeeb4f3079c401fcd984f486de788ac1a987c158f5e3df9684faf5953617a66d8b5b965ce1cc261139656ad9936f555ad8882f3d7b823d4d0fc7d56acdd5bc4dce8646e41a4fdc0688b5cc04455b768be41096eb767631508d9953c8aa95656e4686c89078e3639dfb1cde697c56e42adbdb7c9c6c6ab8f50eaadae889fbaeda41d757ec6756bb6e690819b95be0f386398817e1c9ad7db807a94fe760e7f5bc6b46fa6cd168d993d1f38aa197931c9b55d333e9544f0ded9e6ddcddb657b5c6fb538468a855e93df1afb9eb366d98f2ff26a8ad7199e9dfee4ce6e2752128d4079bca97f39e35589daeff36f7baa99c79ca6a40bea7943e4954d7b33cc6fef3663fb0e8e28d76e49fbeb5fb8f8fd7aa27009e8e143a9a7938bdaad5d9e483a2d87f5061a88588c3df6935ed6d4e1a149c635dd376decc87d2988954671c8f9f4a05e7ea3d939af8a71d505a628958c645ff1f11ba962aaab9fd9e565fb647973633a4946976b3791a9e05eaa8e882ea12ef43326fd8fe7ee73bbdff43ef74f92074d7ea6e24e7db3327839806876a6d6b9832e9bbce5499bc56df2b45af9cb67e3eb878e0fb881a5ce9ec55b998d8c49afc963d885500e72083c9bd2f55b15f6ac7ae7e56af33fed0a5b6b668d654b602cbc3e3f9b81b3eb3c476b5bab8b6c8875f8ae4699e3768b51cc7f48ea9304d77cc8b7d8ed08321ea7f28ecb97aec4ba224baf4e684fd06f753985c8ea07c8706de43304dd21f6903cd8e66a7332c0b6a8aadef1c41c356914e3e99aea0fc672fb1cad48d740459eef5c7363d8bd3fb0efa6a3634d850cb4fc5d5547c7fdab8edbabf7e65c5dba090338f71ded8754d41b5b3db9ecfbf06dc5b749f8889975f51548ac7fb4b88a85ccef45792de15baef1f72a3d8dd6bd0c1bf477bfbb9e69a7e613a83e9fd670596353944a27ae6115fca33d5d5a4dbc5c1136ae3aa8eda2dea4b3cf5ca0d5474916675ec8817a969e799ef414053a4e0f45d97ee9e117fc8dca8c211b9bf3d9efee45df2a0a392d5de7c67d5656ff6657d5d90216f7024dbb947e8c389e8b4ce79918a935626eb00f09a43afaf59ff94d0dbc95a6b83eda63f6397750c68cc6b498ce984f35484aa453334e05d8f32dba3dd2ae82ba4543b4a944a63fdc46d56813fef5c06bba360ba7759cca25aecc03be3ee9fb75ce8459df3c601db3ead65fc153f789906ae05929a223f3e0203f431f346bcec3a129bda3c3e4f90d37db34e643e17bb5d53b6d248455502c71eeede655edf8525576e45ffbdf69571eace0cf3c3c312f7c8aefce0d6f911f6de4b79bdcdabab060579ebf1a517414bbe5343bf343e1c0bbef659b3d317f7184fceaa9fec3a3db45fcffe5aca961fcd8ce994f9d381995280ca0e5e78cde55442518476e0b404a26684257e9abf7ed64083ff8b63f285396f5989dd4aa93334f6eece567d8098952ee41ec43747c17cd9b28d5f9245e0819ae416c61f3d6d818ea448d397211e8b97e755495fd403a133abddd882ac9d7e56ae30528a5ac535ade736082decabe6f980355cf85f84559ea36d6d385513dc341babcf66af0c9bb67ed59d1f9bf617c7b9c8466976da39c689dd03c7ea74f7ae6349d82e6b6f458835d31feb3214ebf9fefec65ec59dc3d44dbed654e743a5e65836a4b9c5d2c9c4de859b1a6755ae7860fb6d53df7eaca0a61cdaa34eea773867a7ce66654391fe9c7b756d117a81e2cef81156c6d5cccfbebf85c93e317e5cfb8fc50b673600bb46469bb3c7d6d72d87cc3b17bbb65b95e81875548b63e3024a24b3f9a4cbe404ff862f01dbcbe6a997c847650b5402b888e0e7ec900d4a4a4cc429e7e7d396da6615869f744f44a1bf5cd463372be89a243733469bb5dd97cb3e856ceffae64fcb519d9be1a75aa879454305ebd67878e9a1b8f6e7da651bd5b6b6d9ca9f477589f64b137f30966a289295719158b63a3ea3c0cb764e4847c9ac8bc9e598c9d5a651ad123c7c0fb939f7e3943a2f3bafb2da221f37dc17933cf5e868b958e4e7cea4cfd021ef0ba63ff7a7250d21513171d5e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: cf31220f44de862e1719570e1b26e897790159366a385452334fe24cdcae28ba +public_key = dffb649aca864d3fb4f18fab455c94e6fac7ac1c6c46943e0d4b811e48a80f18a2223d589937a1f4f4d97dfb8c344faab556484877d1ec3c36ed167dad4f7c7dd54a6ef844468a481595b9348dea2db33235439d702967ac1b77f47391e78dd596e5fb534b6ef33357322ca6f1c6a6918bed8d9cc7f94df8438ce25a1fb4e8d33db1eddb6d47545204eb5088a9e6de69d1faa565cff0c3aba1d7cf7a5b87aef7f4afb75442c0565cb78c7b81144aa4dfd9f9b8d8d53e32c753992944d0f07d551c6ef92bb5d1fc6e39991eea3515304678718368de485bbf5c8ebb9fc690edddcb7449615a1bd134f559b7fed62eafd9cb6faa10279e2c7475e48837e71afddecc66d1ba5dac35760a5a5de07641376e8b795e6a0d8eec3c4440c20de27e6e7cd64b55482c952e86e7176443c90fc8057de2e9b774d14efa68c49c85a44d430984ed6ed2133e6d43ecc3d6fbcf9736cd3f8efd0e4de1b655e07b2fb9d805ef8dbc30eba66e996f447398dc3378b8bf933d6577cc32ede05e19565f848290059604f9b71b755e123b74020fd5367ef0c769cccc3be661ed3e688a75fb47dca4088b46d955cb24b7073c8540ecb2a537a66a8d332d06f296d8c6e5584b7ba8a4c8739eac585a812aabb33a5f591b428f5dc72924e5012467d4abf32989c3482ed09816f4968da557048dd3ecdd2d6599cd556ac325a5c00b8821fdc9dfd3336bfa5f61d6baa6ef6b848b39cb0fcc543cedbf9dad8d355cec4c9f3548868f9d52618c86fc7f9998cb4cd71dc8fbd8642a7fee35eeec4943402c2598b80aa98f395a86ae80ae5df5882eede30cbb42edc5f6044219d6a24396dfa8da94f2fb878c96f5b8f8f4383eaaf5c5e1fe7b3c34ac3fafc68df6d4be5647f7f705ad41245fdf8d48d184337e76faeb95e35d09fe4c1a3b37fec984079d50248f895f3483cac2dfe959162a793547d8d09b399e6534aa88aa5bb3cf3eb59eec6a5c8309c6980bb2e478ebc47b7dc2939ffd5439ec4473616e66db1d53e9467c5085471259db583ac02a657c629ef336b47a5e39e2cbfb4a1acc849a2ee6b9dbe498fe99ac4eb98bb54344de88ae54a269c89c36b6ebe71898006bb9ec63ed6006325a47a1399549304e49889dbdae9a9e42cdcef6fc78f9fdf7380cae58cf372308a1b1cf321f8ba17867a1358c5c13095618cfb276aa3c0b36588a9c62694ed4db5c94643c69c143ddb1fa9a67ded7c62567f289841a0d8b9465355a05e2afd9f3415c545ea44f15e7b98edd9ec0d79da5893125e6e25aca7adf78a3309e8af2b4ecc6377c04b6f7fcbf8ad5bb65bdbe6e403f622f45b5600cc367348379894c65f494f79948e7ee941d1dafc4dcd0ed97ee529c8573b36debc7c80364b01ea874f355f71517b6c399a6277b80c0cea9996a3749adbbba6af4abf84d6b7e46963dfab7779637f85775cf7a51446e72fcb59ee684873ba60315a84988b5936674833a93f07bf83c6cc1edaebbc37ad2c8197481cf4e18ef316eeb58b81a3f5a063b1dc4b20239818c8aa67fd96cf6ab52017979be8f431c96f838aeb797dd744a27559e748db8da63676369795ba92d48bb11f9bfa5393c5234d3b6379b0d2c82bfbe7ef29b37fbebb387aa695d54c241e5efc3d5bc7f93e6111df1fe8d5d76b6d1862473ae3996b294dec274bfc37bbf5119668eddbb0f9d9fc3af8f3b3c469aabf79bc4810c14db7088ef3d67c584a965a94ac1bc088cd2c6ec5403d2f5dbb8302edc20e5ea6c98fcfd4cfad1e6311ff4d41eb6cefd7681e75a72d8bdcf3984f394e33328374e5ee5b0fb4bde2d7d936588ded329ee570d8280188baba9c745fa5a8958c0ef28c1fb74ee4fce3dd784d4ddbd31ff3b670b2d92edf8489018e8c81d4b3e457d4189cac818fb55c55574dfd21fe3fe4b43eeb525d92843c324cdf228737b2c99e5bfbf718d63b8021cfb3a957fa60f9638846abcda5c3c0cb2aef55d05c38cdc1755328735901ba53d685b93abe68b9cc55badae05fcb88164d0a9dc36a59aef509db3edb3d60a44907524e3dace453ec8cb64dbb679fc69073c9e839c40e8ba4cac48e24c36975294d4bcc6435cacf1a5b89cd065e6686b4df7da8ed3bbbb9afc428a94fa90ccd96678d4988c7386b794b57de05fd5d35dd3d18dd494d52eae46f978b305738d5f40faa6dd68ee73df57c41f89935528e64270c9759d496204 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bb5e65669a44e5d5c709bafa98c16ccba6ac2c4ae923334f69a11543eda64f5d +public_key = 1f5fd5e8fa992213c49059a409aaa3ad7fb85837cddde4c4ad4fa9a35ac7fc8dad2d9ceeaf8de9277bef3f3a67627dfa01d99d4d15dc2399f427e6f67e0ada2b587a5d2376012cb7566f7b9e63a2a04432260aa1acbf698ebb60767fdff12bd1e5dd49de698966fb49bdfab73675586583c744b5bafbe9692b6c6c1448899ac7fa892eb52b4bc062aedfcd7dbeae04f5afeca7d3737f4c7c6711b38deb9e9e1a13c7826dc1c75fa8131dc010c48909be3102bd4334e6534bad986fddea86c3dd41cba67e573ab7bdcc1a2c973d0d41bd26721c5d8a667bc28f1ed265b762a233e28e19feb61fbb9e6e50af68405825e4481fe2d0e5c1f4696e45bbe02b9ea0848497e8a7a52f0fdd85e7d67e7aef9aeec0de84473b735bfc1dee860c31950f9d5a06484a2dbb0e47e114bbff3bd775248a944adfc19df5d23876931efdddfe6d9c95c98c133bcbeec5fc107e3a19176dc90b5143a6876ab45b807e7865d4b8f0b8a2e6a45f123b85c8fb584cd3c042676ead069cfacf3682aaa05d2de0e22f473907547d79b0f8c6e1810e4b1b3a56b88b3b4fd97eeccfeeaab37883889a37676c6116ed41c4db49dc5e68f64ed979bbd3da4a7824b330cdbab9985a9435efcb84dbd3ced3fadfec25cbd55043c89563ee69be7a3c03ea0683969e6f99c95db7d11a6b7a183b4b3a3daccc41d44fef5c0880362dfab69bf938975ff28d890163e35e284155f971cb6f4c1afe5ae4b3d2402dcda6e4d4406c39cc26ac4efe665a4ce9107a99bb289177ad9e4a8ce97bb7fd623e980264a907c6d5c2ee791305974d49b604d8ea9c95d1edddcdd32a5f94dc3f6458e1653f3736435d1043b0a0deba63ab6956f4f16ce47f719bc10f1cfb293dc17886965188534205c3f98e8369aa638d69d2ceecf8b56c9723aa4eee8485152af70d4ced9644d4bc265b912c6e52099df9ea72910674bbb8493f77d620645fba16c0e6c73ffb2da99d6378433c6c55bbf0f0b4dc74ba37ddda39d2ba4d7f34c705b4e17d6e8ad924d8ba3bcce9fa9901df6510ced9ff3ff1f006f29d2f6b74e7968f5aa0b3e3575ced51447beb76b8a7785a43c824c73688ce495681ff7f3d98bf49e5a65a961abd0e6e527d5be8028bd0dfa49f4e2e3253f8dff2a556c48ace2b6a5122c4fc2d15622e158e2613b23f6fc6398838ab9fecb05a44258e7f109f91f4ccbe657894117db22b9c36bbe89ecae3e8e435e451b8d202b7de1c2f748558d9e87d677ab76c9e9c5cf4e8621e4338a289e69ab46a6e5344ca49eb80fbe2f9b8a5831d5380384f2fe845b7298e538d398a3ee498c4f537b8b1ce2fa59085bc00a4ef190a66fe77a1a6745e8bfd976285ec63656a2679fbf197ddf08cb861abba73c5dac7bd3f880844a2c6811a13eeb51f501c89f01e686ae528c84b86d6abcd9bc52f65e77b56fde93022b7e374693f9ff57880ad855c79321d147831daf8e798ddfe2ce5c66bbccdb93c0f8ee3a5eb9b97285ae97e7bb88cef072cf84d0d89fbb5a7b62fe770a5dd255aabfcf54f1c18c8dabfbc4baf53d5ba49bd2944a8c440d01343f087df690743dda5ff4f6692a60bc3360588f9575636748e3e4fe050d4fc11d75b69e3e6cac6fc681ab48f1880a9d787449440d2fecfa0386614cfb3d25494e8ce7d3e5bef5a5780aafd88f00a9d6a79c6b1ccde1e6defdb398422ae9e316489c02ed5d9f79c74433c82b87a775ca358965e8c1f48134a9417acf0022ef1b0fd4b9523df2fbfda0dfbfd3ad8a0f6086481e8f97b1d37470f661ded31baade2be53c7021db53d28966e9dd9ce6857f788d06b3d4fb50f769065c04d25b2f3baebae18a692d7552bc9805897c9b65a930cbeec6f3487811f84d85579aa1f664128d75c7f37e76e83c675e0212e88dc8abc1aba9525ed450b8af9b4d6b5076769b7f4e9fa4a635226e9d1f76cf0dda7de67c7f559e725dd63a13bc27cefde9d486fd5158d3b8cd4a97b95bb06895216d58fa4d50dd8c262eb70a73746cf2793511f5807d5fae9af9db753d99f259c9748318f49ee524c9d8b46932157c94b8e79e02897f44ff6ef1964f4cc92c83f3df35a7700daa1028dd82f0664e4b8a221eadb5da84f43b79584194aa9ce8724a645286d365d3e6c1f46f1291ea8e1936578653879bf372fe58505e7957a3e0e0f1ac0d822a80287d204eb6a446a74afae0ccd1859a2544aedfd +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 9ddb3aa9c7905d1a438c93bcf78e3e321813580371ab4e1289e2dbf3701972c2 +public_key = ebcf871f16b153dd8e75ef8a250999db0a6db7036712af43715deab844cd3acef4b8e4fe8a15b2bdc85fe4ceec9caa30ee666f260ab0f1ef30a6ade229b9744474f8aaef4680a884209afdfd3899ff1a4920b798ab275d5b1db01503d001cf3db72ccbb3b9eab0186fa795dde3055e463e439bfa9cdce3ac898d66d17469dded7f77dd397bd46a5acf9a4a776c8b83e0032ef8dd248beed9f96c7c5e96de3aaf2e303127778b653131babc17494f0aa63c1836d1313e5bcca7a8c96fee7b9c9545def60cefd1ef23974957a6a4d3658d96a7fd4cb7daebb11e5acec226d42cac64af05c8a7db570cfbd9393c7a24f5ae315f80b2dffb9d68b02a0c521dd6393d2dcb3eb798db457ccbd869748aa2cdc8336a68e62e56528c3ac7a7bb41e2ebea35257b6145f47c88d2024ca259fd3de2ea93e2f6c42e539618df7fc635e0eb0e6deaf787a2b3b930165ff1fc8e214e3b90ebc82768eb74988938bde8f71fac409851459df1288ec4eb1f8680448b58a5a296b35020c6668acc7a39ec329f3c5eb00c44f43c9dde7efc097dd31669c912edb4d6efdf45fceb6c5b6be399c2bde785768fe5be86e7aa6a57eb6b797c8c5cf784f74b2463d0c85e1343554cad52fd9b36da139e14ed4ff194f7b428f82a564242a8f5d15636da6c45834375d543714f8d530deaae0c0d6488eca46974642c93d7ab5f97d356e9dc39863f27618abfdb75673744fb93452da1395d6fb05bdeb3fff109ce923784523e767dc70ca546fb820eed7bb9663333f6f3899f79bc596b2f559f5699c272d3d4070fa0ea98c879dfaf1d7aa697aa83f1ece0e65de7e2e586b32d804588473c4b9d05aaae6ff9c039eddf953547ec748e62ba34271dec3f669941596c6184b353d3919e69edf898831fceeaaedbc49b88c8187cc13eb79eb09c7e07545be614ea9cdda70519b17b5479aef79d105b83d75cd8c719843a94bd1f76baf7e3bbd6795e0593d184c53f4216ef4b7bd322ef561b4c474865a0c825c9709f69e12742771c4c9c2db9380540773af4b44cfab315eb88ec4760f794c17aaa55199e39eaab54c53af03fbfd339c8256de972eb5ed2999090fdab3ebde4610ed7919b450c0dd778967e46ce8532eee2b58e918fc7d23e0ae717da59ff49eb85bd3ac199a1ac4ef08c9e8778afc8aa7d6cc8359d09e4a817386ce09757c44350d10c4ee00f625fdd6dd3ebd7514639f688f8c5077f0ec7f2f39587830c506c4bbb4bdc60a2bf56bb157ed487de614fe1d518e65edccdb2d6cf38fd39588e76033cf158eb3c9d48921cb387349f67bc7f8eccf97bf323d9d096e1ba1f71ec698d8a2dca3bf334fd8765b027d6097f6a632da3edce40240dfba403e547cffda93597e4a46d451cada3965ef2148a843ff1c4d8a7d22e57d9b3bc69fac8627bfdd1c44aea37fcc31f5dc79a4f90b56ea85e44037a4f016dc33c5b6eca45721433e0ce956fd603ee23c6c9f623505746fb885ad14fb5867b3ce9771f7a5a287ee47eb7430caec5d35b63789b32de76d2553f82c8407f585c336eee3f0cba0bb6d53788dedc6ca22d24f2ec8c3357fbf03ee68c90ae35b0bcf837fdf7ff3e61769c6838e98cd449c14fffb07afc714d0dfe91d387a27472217c9ea6bc5cd1249bba38842dfeb2880ea6074ccfb83e6dcf345acd84660e0f38114dcbe91d9c5e4f3921b84772aecbaa8ec5fb08c5de08ae6cdb38fd5b9489357df11565d48a7797a6af82553225d73cebb362acbece335358c6776d9fbba731883ae7cc517e1ada3bb5b970e4cda95a98aba47d9e2397abd7757218c5d7bc4ca59b70be5aa4d7c6fafb64d48f0bdd659e9afb746120b383958b715e2ede5e6ba666a4d328ab45100af6e9b43537e566ef86dd2cd5fb07e5bc089b8eaaee66c513bacbccc332f36d6afc379e1a838bcf4ea36ce2617f6d029651088996631c55e846adcf36c793dfe0124fdb2287973a87dd2636470c18db2893a09bcc87063d6c5b364837b7cc89a9ad1fd9c1edcca9a0b4b81846c8e088b36fe361549d60cc08c911d9d58bcbd839183b0c5930227e826dfc7b70bec623dba3f0f9b30768346a87e4481b741cddbb7cb3fed74ad0a7ae874d8b7369f695efe75e01fd3be6cac14778e5ad889c69ec6bf7fb38cea6d9c174b902c6d47ead37da33285d1009b83c39ff67773cc46f7b4b2cee35e8e95100c31dc59eb9 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 26d90b190a6c3d0d9a86cf66005154e7086749e966e7187c249ccb9329fd3b8b +public_key = f8ca36bde8ee5969c6e2f8a58829a9b7697b6b36983e896e82c4d73884dfa2e6b6586e6b0b4cc0b16cf292eb5b4265df812673194b944b93d051f4f0677dbce9734f5333fb408a6cbe7542712352c453cac39741b5b940151580482b4753de6f59aec091ced1cf985034299841ae86a116ee59eaa300b66fec19a3abac920a2ae2e1f4d70aa378949f30686e4f9e53c0d859917626c6d6658a0324419d1bdd16a647ed57c3cee638400875cb0436672adc9f57feedf4f3125a95c86c60d34dec8576d807f43f362d87179d5ab4153b661dc129ed38920a3a13e957e3ffd9afb46c7e0c9e92fabbb90d63b94cda964beaa2d49f48174f86c761d933f59fed4c65f4b85edee0cb04ad4e26c36978fe213ac41158f4a526b2e7bfe705174110b538e366fbd93cb251a6fe7188fd89e562482a5194a7d7ac8337b796f7d489b1947dd636fc44c44898b2dc7c8743ff3dd9c7579a68e1dde2110cea57c43d781473fd3bb17dee4456f6fd94cf36bd9656f5ea8088339668658ed8dcee90aad26fb76f0ec747d5a570ab88aeb44750711cdd10ac86caf73f8f2f38b7f5eda98ff317973bd544834fb3e571f48744b6a7cac95e1d3375959d38588cb1d5e5d4776f9432ca9e43076bd36db1a6a3472cefcd790e77c485db418dc09d9fdbfafece2de695478ba26b2e6ba3bd32cb87f97715e4f727d0864ab0e388dcf94cb7e94c88dd673dd03b8690ac65b9edc597fa80992eed36ea9fc5be66d9e6bd4935993dbc8f21acb9f54af0ef1e8a721541425a31705a5d67b6e96d9ea96dfcfb2b48536f1e8afbd5c8fe46455afbf82a7a6e73b734001b6d3a997ff1e5dac7d3c97eeb4339fe3f8ebcd5cb0b6f806d908c1beed89682192a6ca384c7dfefe70674c353d9aeb8696648cb83ac986dff669e23f49c47f9f08df49188dee55cbec877eef42098bb7a5e454e677c6714fdceefaf77f8d90935b5bada59c435fc6889b16765a033d98453ff56338edca5553559d76359ce62c71ceb5624abc19db59a6dc65889351529bdae34e7085ea45a566ad858444f06edfec7d03b08605f4bf558577f0f1fb31a447d387f94e7f4d60fdefa5ecbb9770bb8717f40c1237b08c744e80d57d0e68e2fdaeccfdf7a1997389bdaada38ed5507fb84a3f9e9a33f1afbd3a940c44239844ea4e81b627876838671bdb3e9c4d61fedc74741b4b5e9c4b431e67c05fdcc8077c5c0df821076c1c5462d86f4f845daf75d5deb7267a96359004166c84145e72b731d5b8fd43469c99cdda0c2352b88d6313d6dc04dc5f5c8b39d50376a956ef2a8773fe06973e95fa050f5ba669ff632bcfc3fadae67fa50023c684a4a7a0db573bde494458990938c624e5928d0f8ec48a9a2659f42088e072de3a85a332dbd8abb803e9a31596a38c7efefcf8bcceaa38198aa66ca68e9eecf68ddd9e093e34f38d0cc74a989459ab1bf00a8caaf6e4dab5e5cd652cd5fcf68e15aeae602560187ae0aa55f3292e8e41c49b7f5e54c77d99ec89de88ab641bed3dd6acb82c33a6d4034a7765e5c52859bfe354b2e881c7c577bd5663b1abe24948739bf9daddb36349aef710dce2102553765c58061fb22ea35141ea4ffe78e045497fca77ad2e35c1a5c3ebafcfa8279c783d38f41d9f30416d7d38463a9c6e5be08ab87acc5e31b84ed8376d7503eeda47c86908fde25df2acc6c70429ba854b58ea4f635b2ff0934dbae3137ec8b4de716655a0b8fbd13dd3f214f8d168d6594435de6c39b756f98aa9a693577783d7e154cb31b7c3e283f46734de99af6f7ddb7947c4f4aaf127f858a97ef624df56477b8055d53639639aae4a984caea756b1b6cd9ed1f43c4e1754f40ad0bfc8c5f153346f1ee3930a3c9befe5f11c4ece2875c425e6b0a8452e948f3f3cc45a6dbdd9bf3f14eac17937e42eb4a72ef6c3585899f0def8f54bd22015b2bbb9642b5675be45fb9d54f194d54d5c4da17c236e8a275dc2358fb31471a305f2b454d40d983e64976b5007e541a8ff29fc690d4ea9556eff82a3abf95f35848af8993dd9e43d3239454ce0c7a2c394dcce13ead385e6e6a3ba59b79ba4478afdeaa8ee8ac4731ccbb45ef5d0a7c6504a8d7e285171a464129b714d95f1c69b8d952b4623aa8967f644c9cd8bdef96117198e57def602501201e036804129d528d717640ea33c9fb4885d61fa43860dafed4282b108 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 7db6d1a129d6123f1f805b79ad3b413012ea86aed42a05e98e7b1f32f9fbbdec +public_key = c29d93befe8070e37b3bbd6ade9be4de2b34ca99763f575e8d85e77d7f522c6c4eced8ad20ac6bfc4aa329e765f986579c373a3a333d6167c2c754de904e31ed3d5188c989140b63b76de9f2949c81c36cbc45939d0f6a43ae554f2385a738a229534cc665fd5e86d76087c9e6bf60baf8724973b9152b3941fcbe1a2f7bb7987d74856d3646d49715beec638db8e3b1d4e3ba2a54db46445369c6de0ad3c9c07c3204ef716ffa51ec6dd5d1a797089d89f7ee4d86d988d7f960f0dcc553a83f7433be60a463b054f3a6977599b7c1f783d2668d7b3f8bfbb8b6f5e1bda0f40ee81d6c4e7a9a6cb68d3b497e501453ac19b576364c3bd8fdef1bf475a9f7ed567e71e4d33bd4de482377ff27e356c89395c1476e10ad65dd168478bb7103a4e16eef7cc4bd617ef5b74ad7e8e8b8c153cd52a4d578298f4af398d7da1f95a0da9b49dcbda15f317f5576e52b51eca732d9df60d08832928d94de65ab48d3351b23f7568574dcd8fe3e9af22044984659f71b3b45861ab6f535da770b590723d9d118adb333f2739cad7227ad2b3460d156c0667e3f2aad5ec48bb21ad7f61aa6a0f4fe9d06fdaa577cc8cad6a7fcdf5826a3cc6ffff5c2be83d9fef40564e4c54469e4f4e0828bce94a5cd96fffc7ca3770ec5a024fd656447621006929174850c786fd6357f36188a4884cadd1d8485277891bde14b4c565747c4175e96e3f9dcfa659662d992c33bb2582970cec6d582a691d76e74952841ac5a64e53b31566671054486ef2d437e245e244e76ebc696a55a53308abf020b40b944cbf49fe55cbdffb9fcf98aac3c2c9ef7887fc9e0c730ab13c6f374ba8c88630093eadcf9ccdcc566e2456bef479f4fdd8ef803ca8719c382dcc668bfe897ebef81c4e52189dee243d20f43d1bca9e0ddfff02bf4329f73f54208f1bcabbd2bf38962e6810bfaaa5377a83c1da624a5d29e99c4becba9f0b3a5507d788f97ae550de881b8505c27c23c9edee9c7452a5faf9339c4ab88aedaab3b9fa5ecece8f8dafad888a3481ab39207a6851d0f85236e36ee49f996d4eb7da3f21d07e2d44531c98e8bf3c7eaa65aa0a3c5d55634699c0d7a483ede9583928ea984c413598868bfbe1fec008f7c426caeb3a77c9067b04dd3cdaf2b840af6a44e5a5ec3956b21697cddcaa035c4615936f524e55f9923a5c45cec748aee35889b20bcfecf5883578cd7233e6d6b8fa88c2ec8334ba25a54f101b6828c1db1d938df13f867e10c88ff3cce3af457a4ba82ccc4c231ca991b79c66cedc56666c80656845789b45f16d6549e49cc1fb0918bf97fa6830324e3d3e89d3e38544ed4dcbf288320bc3b8133e1ef79e25e74e2334ffe3f1ba325b668184e79e38868be6df33c78b0cd97f1adbf3b0b065a13f36a2b8b8245095cc785c64997add4a33b45e9a603cededc3e8831ad46d807d1b2e760952f8a15af51e8f484049e4cfdcb9e3bcd79609d7cc69fae18e3f2ebb882a1473ff2fc666b7a829189a4910c60f9cee93d5951538dbc5b9e69ca6433c4e560db8ac756944fd9faedd2adc9f9f57a474c32b94730470d46251aa7d27a9a3f2c617816386207449d9ce8f04537084a3f464b737c1a49e59c9042876e0556b92149f25fa3aadad3b5f18752de6e4c20dfd0924cde0b58d4fc6bf6f7c6cdcc684da10f89ce344518c7a480936e46ec4c01b36a7f2645075bf6d14e4fcfc46d2ada8fbefec50d1f8ec6dfabe11ac78205310ac8aea724a1180dd346046c446d66220eb1922f8628383cd9047a290f5cf8d6a47ece61af353e9067ae4433803c48b3ceef4467eddaaf68be2fbea209e8b1f6264fb14873edac70f834c710acc18fa4c6d16a627b03406fc7501e07ef62963e01869c80787af2d96a4ef8c72d273a3318c2826b8bb513bb2f6739648666b08fdfbb4b7785c853bc1aa4cdafc9d595f706b7bdde5cd6c78c960265ce1887b5e23f75f42377447751ac0bc812ef6c2f65bb1aed58d573a64959bc0d74727a4b5ae8caf3f2179ffd0ce81563712fcdf8da5f4af43c6143277bbd537f1155b04d1dd6b76d36161472a199764e07f93e044c62b7f44593564b15436b435da9e995fd8d3964f631f843ffc8887e49a87c591f860cf96747ec5891a9ada1e769b08fde946c972783e449cc7179f73e867c8a63b210d73ca9f8d4eb44b5da3b57dfed46bd22ab85b9bd915556 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1d129b27be7384c359d04311fe5c44917d1fde4bfb57314f483ac617edd5ac49 +public_key = cc9a64734c470138d56a7b5d374435c099752edca12919e770d6af831ac7805a7dd5657bcbbcc9d85eb140283a2ec533c17ba38a49fbb994f1a5fd73149dc30a97d1c1396a4c17cece6cbce99949d0279119e879082fb0e2c748348a8a5a7c760826bbc0d395313b893a796b9d67fc1053fb2f5363b978fa8aeee7509ffbfe38b05ddc5b68ba3ad62497c3ab8ea7de3b11a6a69debef144db4200e3952eaeee1e759d2d5459b0ececf8e9e5eed9b8e7d7c7d59519369660306c41755d5a51846d5476d42edd393979294ce325a1b6674fe6c3265d52acfe121e95f9905d4cea88531efc72b038aa74e32728e673f4dedde28b0ba76b2b88453d29ef49978ecddf932370c864bd6f05b6cb13684455fcc5e008bcdc16597ed76eb383fa60f3f9df838f0b05eb1ba4647a7944c4dcc7a8f1bce390c44a9b7f21e1cd943cb4ff7fd48e246ff8904e23fd3636b97919f4eacf15fe89f0fa83b68de5d4a996fec6d6b7b33d79d825f366d89f89528a8e52b3671686af2d8898bd62c83c33aee3076aeeae845900ab2cfab51ea76c3022b52dd8dfd06be7a776d9c88e69d12d7694edc3e925fd738be7bb6844a1a28c0c766d38a8c6c6a7490633fb50d74cf532b5266e3fd01034c56aa898e6f4727e5363e0bb3012d3e792b3afd39b5376998142acf52f6933a594c9a5872ac6e9a8a53e7e86a91d419a78d57f45b1780bffe4abedb77ccb97d550ac223f5d01e0b64a61b8fa15f6331c4d9505a512b4b6ba7e3b4b73da113afdb441f92db5962b577af8d546b7465673a8641ab68d7453d85aafd849c9e4a31393c1dbbdfa30b3b1d1f61bdc9a8ca69cc0f0432e92ced42b6a8346cb6fd9cb49b189d125c8be52fa690dc90ed4a87c70ca8e35caa16a35a322db9716bae021c861267aea4244219d6dfb1c788cf8f64c034e15644ddaa4beae87f5c665fcdadd4c244079ccf2faa084aea2c18e0fc7ac55d77bb6ef934fb73a8e8f4cc29abf8c42c5d26f36518ba4cd3c3f0ed3e58b8b36108bb6d4f74f7dc46653fcf4927a833853b4b0af5723d8a3c5f37c17b3476d96e61c57579ce1fd167b7dc1d4ed325c6707fd8f271fdc73d65f364ef343b47efc1448b287dbfae4747083d5a9c3fa6aa77c7fc87e5cb35826b0ae796d67ec48cc0c9554692de86de0f5ead64a9e39657bf0f92f3a8f9ef696d3584b99c7367a10d343a5f52f2443ef479fc163a5ff1863be89f73aa3e92d10b661c9d51d57572d5caa817338c52374ddb38fd482fb1efac733afece852867e4cafa4d368ccfa58fda097fc69f44fbef73aa7c63f99ebbbce8756258d0ddafb5d65b5a2e4e4a81c7525583c0161ad06ced8a68776223aa97526aee98bf41f5acddacc5dec89b90bbd58e8f27c9f1a7f9783bfc06bbb91725c3b6ca991e75bdc795da0107674fabab39ef8ac5b9b717ca7542ebb564dd78e4c856448adac85c9240d77210e4ce850570ab693aca497819c5f10e2cc957fa9b465fd7027ec56a3ce254fdd6d02fe62f9e68674ad8d82b90812c8cb989394ca862aeebead9885598d39a42b3ac25bc9150ce5eda35d1d7c8c51adadc257cb8b1ce6de8a9d0b3cefa886ee6cfc9675548f9e5a5e0a00998440b93d847ea0b294aab2b4697196d397a9ccedbcb2f64e4dc8c764189cbf82d834327a9557cb44badf86277c54ab4f4d18d822814626b753cb38eb9f2fca8681cfe197bab18643c9b0aacf8445618a45814389466f67a5c557aeccabcf083cbdff5569e39cae20584ef46bb56456386f3c7ef5a5c196c51646b69154393bc7a6a6d0869e06c3f8ababbd7bad70f974e682398508a356c78c74bf8e08c4fc6b53744c384ff16c84e5bc6750546739acbada819a2af9c5bbbefca3406f25d08fd10ac8a5873a2a9cd4ced887730988c150ddb349fe9955d3f9e3555f89d715424d95f05bc7d6cf0dda3e3acf98b10daa4053c90f4dfc0dcc676dcaecc0ed9f427d4bbf624f59363e4494c3e66bf66f174e1a135d667954388fc5b760f70e00a8bde873d3d58c627c6b31d96e05a7e74366c80530fef42ace85bbc4c091ef2b5bf5d00a982101b4b45ce8bae64b7abdfa2bf646e39cbf41efe7d8c5b42db08ca0d65710a7f500734f0ddea731367e54e96e809fcc1ceb7ad01d843eb9f8dcad3c1370b6b517f5473b94bd6351e282f01bf82a24c3ef05658b9e66735007b45f5b008a7bd +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bbc773ebd2df42c36ae05952d6a64c63a5dfb82ceb3ef4f8d4df3a30ec8c0467 +public_key = 61cd6a2ecff2a10a620d78b12914f477537af09db5f10fdb58c6d05fedf3503e68ef9f7d726733c43fe0360feec2a95471fc5aff5738184ec9ddda972749d9ec4c68d5bfa22019cc2d58b0f40860d04f9c20757c9126997aae7e5e0eaee0dfed3706369d3f946186f8bb97c26556563017720084e4aed6a9113ca543f9b028bfaaf10ef3d1747a800a49da58f39eca99fd4443566348a308e52c6ca511e769cee83d0513444e7778029fe1f3a683ceeaeba298ea3709f686a54806858058b37aad546d48b4a5f3f6f89c237a0428e4c063eb27045b8716c1ab1566af2fbb1eea84544d791e2899020c8ac1d6724a0b8b443ff2b204b0b2ac55d924b4afb5d83426c716dafde71c99687748b56342ee7f6694ba5e63f4f911f66f8f8b311136eec39bb3dbcb9ed5d7f9b50ea23baf6015e3ebdf8c830106ebbe695066eccdef0f8b124ffaa437c26a78589a8e7893cb321e0b72e7b7e3151d772799500b1e6f612838d87def67ff9567e8a0f0b7477124f81d07d4ca76326b8aba041457014e56855ceb8119fffa869eb478d7e7bee08cfbd6f65453800b72ebb4613e2c363c6e90ebef9735d48e537a717e335c9f7b456d9f3c42b3eb8f4b4dbba96f5946f743e5e6a024d0b9feb3eb7e954f85b0ccfa751d44f8fedcf663e5d9c8b9a212dde1313b5cc8e8930c2f3d08c95e5eeb47127a4bc558fb0e97ea758893e9b64be04e62332b8da6d7b2925fa914f5c748b4d4fd865dc22f4e0b64cf782b7c866833dc8773b20c6eb28ac57c05e76895cee2e78d41f97b5efae4401ced329363925d94bd56503789f4c15c86ec833b0fadb3e476aa91398c108a6e99e7ab64a9d514ed61cb5f756dff9238564cf0cab366f8753acaefd3e9ab717fea0dfe61b398c413a39281af68c2df8172d6501e3e3ed25f84d22f50e6b75705de950bdc5af1959bc3e93156346dd3b47450f758d3e9796cba905a9ff4740b33b239b97c45c6973f3a05dbe5ea44ca4fd98ee589a2f5baed1ffdda476533d5baa58027aacefce51c9c5eda23b14367b8bf7571e7c75d197a55ed3a349de636bf84ad6d446e2c3ba5657c68372fb136384be3b89c7ecad95a89697b4c8eda2e5d1e5544f3d957e51a86f0cd98fcff72a624da1763def6f7d3f37f79247eb7c5e36a83d6ec7fce8e6bfa7753cd9563a4f0968b91aef6f7c3ec575d74b4a0ee3f2b2e6c7125d8a4bbefe85af0c0cde9abeeb8b3c8750edcbc30cb47ab0b56782d421359a0c9cd8295ccb7063ff141b74b847ed04d9c48416eaef9ce9de9f8c809c9d050f3345d6553117dcd36d5b2e60d47b97b61cdea5c3b896dc1bfff6bcfa2595f95ae0993bf0f3a498cbabd6b37d57cff8db63805ddca53ae69f6edd3efe695b6eaa2c63d773cc4347d4b9e0e46a822a980a9f4c8910d70c67437576c57226dac7b297bdd074c9eec3a378f97f0a34772c8f92d0b7a29faaccf7bafd2dcc699abd767eed6e04a76bdaee8b7875c188bef8ccbd0b3c882f3bc6bc66bf94443610c65b19ab7ff90d7d86fce8f228c36d648d8b0baf5315fc1a44a6842568d82b43a994b5b6c69555a449ffd0c395997df3b679e4643842083b20b4d401d5e898e138a092ba393bbaca9fc6f38ff8d8866da7a9fc5b96cf28b3388a72fa6f2839da97be21deadc76cdb36ffe62bd7981ec294ba709eb97b34c69bca54c2b7e91548fa7c396f3d783255a79b3fc579cc6feed83b430c45377857191dd6e5a26576e9faf1b799420affbb234a68c2e309db9aede9765c78c486db5ee400cb46cb586c33c46db9ba99b983b958e5fc5c5fb7feabe42c4f53df9cbcb4d37819a47f864ebd5747ccb34ca74158318664b243c81b85484bf15ded3aa81ff37725f29b96209d2f5f44b4768cd9db394fc7370d0ca72e26d7f84adcd82793ec4af3d361dae6ef3375d3f65de8f68b303eccefa83f8e5aa3e1d77cd6fa8ed858e6ed4639447aa3e7d5a1dfc4cbe7c4b74d67183a5875d24552ae74e546ab15376ac55fd582f3a92a2fed75cfb682a16b6a46ba9404ee6603f654838c9e14b46476465cfe45bec653d2c1aecef96cf02fef3f1b3e16c93b1d5e54730dcc5f9e6e8b53a7917b7eabbcc312cacb171dede454c4186a7e7afd8aa4a96e13ceb654d68faf443a0b6a74173f963d99c8d44e5520ae278370855c0e9e01df9b37d13e35124e6c2590e9a231a219c07ef6c +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 5b17a6adad541efcbf5ae4b0c0452cd2ce32e4f0f8701801c5b63e197c1fcbf4 +public_key = c75c9083566b23acc2ea8e457fbbe307bd4340969dd118ef075afa33bb85b99f750bd34336a68363fdd3038ef410eb8fc8f37da663da409be7fdebdfd70fc2e40a7dc4c94ea853f26ca79b168be8104df4a273c5809ecd6a6f9c9716e7720497c53d8e11fd3a03854400ff3a3afb83fc2f91dcfe77a003b01a7d37a3d9f83de78dca1ebeac03df6c4c67414dd266c6ab69893aaafee2b689d3df849a4bd59ba116d30c6fb61ccf93fef997a895ed06c956632cf66ad5337a2ef4a5ed9bdb06c0ffa681cf2c6d4377de2b0e7b9b4dc13e85bc1c24ad925dd3aa69439e5deba605d014afbaa1edb010363574c7e242745e9e7d9a3ff3b0a2ac7f374684bce9bcf13dddb6ad9b5d0c92cdc7bbfb4cf4a79a8a4a0a9a64376a0793c1252362af27d856046472bea60eb33f23c59123ddaaeda79cafff7dfa7eac8764986c0bf717fc3bb71355a56867c29795f46668f8166971bd6c6cb9ed875eccdcccf3fc2bff0a75c45fb332125e953325d36e5f322c9b640825fbbb59512904eb8b8570f02b8ccba66de5fc36d99f457673a9a096c556c9afd12bd6e1ca9cc8b3a9e9765e38f7e1d039612c4bb29616e771f4fefd68c9acc8ca621eff2a5f51ccb33252e8b0e6486c5a5bc2868334767eb8f0b4faec4873cd3549324ab7293f4030196036bf9ad3043aba0d8da6c9f4bd376cfc1d3fcbab9450b44c299b4e271653037869450d9418cbc66fd9a570468dd85ab652d864036ded6105f82cd8800575f1f72a36227d580675bdde5d5840378d96334a714f829355f7f70a499ae99db825e6b2de426d233dcf9855891df2d83ed0e14858c1bff6325338b33ab5ecc5a86e0ac4e95d4e168c5e1a4788177878bd569d49dc60b1484f43134e2bd39efc2d7430aa564ab7a88ce4decd0da10e4b6c663b61a60543244f9c082fb2e4464ec0d43374234b4884bb8decda2895f60036963563eff953e94c09ea37b43afe4e8f8f964cf9c9cc66988407bcc7b5247a247f980035c8f8357bc3db948c0c4b391ab47646d24dcb79f094c62ccb64894cdc46cebc88dbd0ba95f48253606735547e4f4798bdbb302c5eb973eaca8d60bc47341e69379bba5b5e44980a7dc699187f6283ef2b1a4bb4c7a33f9af0758335bc8a3c4c5cd900b3c2cfe35356a58aae233b066466b34c814a4cb6b909e7582bd361e78a2a7ebbfd0e4a7476ab2f8cf91ba688d5f75153c4ad7ba4c664b8d02058c9eb195a3ca7ab70638bb114c3618bac3ab383dcff92705a478a35c31f06a1823b545366cb6a0dc59c036b0647f7504a55c2ac940606c7bcc74643644bdf9e5d83c395023c8fbd069f9ed5de1fdbc8eebd387beed74c1ebfe03fdedd7486082a4842d6c737c6a1ed5b98bb78cd6efee5358db3bf095b04a7cbcdce9102964e34693a6e59ffae134c9e7f6e4963f2370e8dc517bd9433fd717a408af43fd5c837a21cca33ecc2a3859eaf8a74b63c36fb8de68f34ee2ff52f7197a616dd4357a7acca269e47848375bab1f82ac6879d3d44786d540a496e2964308ed61ee76054b5aa6ae67cfb0e704b386a657a6773b8509dceb4e16bbb92dbf04b5bc6638cc5dd868db40358dcc4c2599e5d1e93771b1faa7ca4b3bcd854ea3ae11c09afbd6dcc91f5abd63ca5cdeeeef3ceb06a38925eb9a4bb569d8c4b859bdf78cfcdd6a3d44328636809b3ec377c58957aa5408b488445bf1fc4ca378c733f5ede3814c4300850ff0bd62df767743468c6b9ed81dc3c4c34b4b6ad6dfab7cb6a84ec921d7758859f2e2cfd0698e613ed5cd7444abf23c104b6a068988fb794306f9daa1bdfccf76482f0fa7067467dc105c27eb7e92d0c6fc50b4042934e81876e121c6c295a54332e9345bab9ca566f0dfb6b9d57f8ac7e87f41eba22d55b4047b9b4ae76339f5ec31bb2332f57dfea3d1c1b4331467904fbfbc1f7a4369aab9a1f531a6835359bd16889ac910a7c399ce8a1636977ed4c7227cca0ee3d61a848eec6dd56635064cad7359730a1cf69ed6cb25daf90905f4ae3c9bc861ad6229f421cdba741dca98f98ae0d955c79de41fedb59bee95958ed35d6bd5155f5792e88ce4344ff410ac92eaa68cd055fe28c4a217b9c2da4ba64d4a6605565d42ad0acf377ea08d981d9a5305766747cb0761498675d4db6b96ee4cc9d4bb977165f0b04d3c03c1f8150a265215387c7983d37463a3136a1b7c6 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 61ab87659525de9656af41246f20e1dbe85c24e335e7ecf9493f46168bc14e94 +public_key = 5586a5b224aaa74f8374da6bbed37b0f67c3b545fa5fcfbc082f47d20c7e83d83ec26fa3de0db44c17d577ebb614c97b07ee5d7b4eccb6a45fb32d5bb57ba4dad4da12ac5f6bc5f2ed863daf67379d33dbad07e944256cfc596d28957bae1cd50c9e82668857951a38628b83e218f65a3e7ffd0adf279644fed9877d6775e23e682b998adc1ddace75ff130bdc9aa57b912fb792bc4bae5ab5f07372bdfe31ab93523f04ff5b3f8fe465520bc57d630ff3e0a3623ad8b035fe64b29dd926ca8a860f77d0054f34b941e6388349a87eb853375055caa13d530aad6fc30e6ba8a3c9bb06bbe768e946755e6d7f6e9767330d639ad4ca467ff670414a65eacba93d2b33ab6f8f9fbf949054c82f6f774dce3f013998cf29465e8b83dce66929bfc9e1f4cebbc9ee2d9bf2788790745ee359aedef23c66c41e5af8ca4ed0b595c8a49ae8eb955a86a2559e32cd65a2f6a44eece7b43b4d629ffe72b068aab2dfe270ed58ae1fe83dea6994abc7dab7e414666c57b4c40a17781ac4784e6ab2ecbb8fb32defa163da0013fb5d1b51b57ac1547d76faa54b3b9bbfd9dcac576fd9cc78eb73d5a3c7138157bf58322cd5a494345c9aa72197c9d3a9552e437e891c437cae6c00c76f0b6f52c8e4cebed86398957088596ce28c5880ebeb913d6959defa45b5a14e2bd5c26ec5a3aa780a9e54a557a58e7cfc7758653f4fd9edc9d110f4de037732a7e44d7b6d736437c7a3e872c83bf0488d83b269fea84e8b76cdd2f1da834df8624f665df2677e0ae98c62636f603bc1d796935b1ebd18fb851f8d76c7e4c58c4eabc71481618f81ee4c572c7efc08b8cadcd6b7dc93e30f26eedb26b1335662a526e478eb5d5a8c61fbae75f64e66ea2741d28cd49639f380e93f6b77577b494c463c9ce8a6dbcfcf5f44fe98f065fda748e9be7e31cfded1fe6448f7ba3fb03637b45eaf9e284da6677b53c7effdf4eee425e8b18c39813a82ca14ef2466321ba9531ad4b576cb8825978b565580d60dd1b9a56a944cfcedec57907f8785487abc0a8f2d28af8ab3f3713fe25fbbd84dde95668e6d15f8bc6936959efaf3f8279c74946a8ba37d2eec75622c4f912cf4839b78cbc8812fa55e1afedede4931f6de6bba8aa44943bf982d395a9be328648b888bf8a994f3e54ffa69a752d2efe21d447c2f05bc91f5f636dd6bb2ed5dabcdff02b6ba9ea8944d9344ef68c23b0ed244b93a40c456da0857acdcacecfe782d63a0648497c929e6a50b3d0688800b968f1f3fd0fceb4538f7520becb0fb86368aeaf08c16d2e1ba5d2ca85da8d36ab888fa80436d69f65622279d8145aa5ed9671a28699ac9990d738c3b67ba500a731cda82966ad1b5ce6144383bfbf3334d159c3193ef954ded6a13f0a4c7a340aab3a198f5516b819a285dbc8fa28f1640925e6c2519b9b534ab8e1e6cf623d3dfb4d91fab8669b4e7a996ff9059ed261f77d4b7b0523b7c4e345ebb19de5ee581f1933e7168567a857dfa09e7f77475514d9889bcbfb7f3f840537ecb8cd50b18552fe5aabb6794b285d5f3c7f1c0b96b738c84508e6160d3c4349c44640efe248a6605c5fbb9f8b370e958db55b9ee0663465ed4c47781e9eda6ecfbfa273facf018fc4e28d6c19f7a25e7ba8f1a395f1a352f7fccf82d93a9587299e5bc23933395836bcc9783246da993bd40a7b67d4e2caa3e2f7f60d4c8ae293071be878c63c8e116f67a8ac7bcc850dabb5904769fc487b4f417388ce6755058470a3a7faf4eb5700d9b01c74af3cda7d35fb3040fa7b3585864c84c8aa4ac42f8fb1ab4421529e284799c40d5ac80079d316f5dd09562e565e6749ea370fb6841a98ff2b85713b75ff58b984efaa29393540fdbf0e4cecdb1887be3b3dfd396ed62999f2c376704983f979e97c9165f19b498bc169966269e3bff300847c908a4738c8655f486f38fba9bdb05c3e5fec3aadc7432a6d603c36f759c69e4cad48c76561ab4831c4d341ed5c05c7b8a863e69f2d75713c97a8844e9467e93b9889724d3a109cec3d083404d93a25a98babfe33d36fccf4f76f3b9e378fc5c731b1af0df7b5c29adc86c065017d37a65d89e8f1f7acb73df4304739f19bb2a596bfa5dc9978d5f73d79ec0bad9dcbd561c3a3bdb23d09f77fb9f2c907c468d916c305d530fe5910a3c029a722a9e1e6048ef23454bb64b1c9eb2d1c1fb4c57 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: eca2adc3da1fb15f34033405ec08ef2f46163df4bfcccf8842c600ce0bc2026c +public_key = 5628dd96474d83a849634866a5dbde6f0db8cb96406716ddf339cb2fad5fbd7df1057978ff3baf47ccca15e9d147473e8bbbf3693b6b7097fb27b4a4c083dc5374a260e7cbbeaad94ac5de6fab80c32875c213fa5eaa8f2347c3144d9ca1a3d2a0437cdeb6f1da1ca0092e57ea46fef89d7fdc68f6f067ac4a5aee4b997d240c7d3df9ae6dc5f815a4d2d1943fad6743e7ee8b345ca2c0494d9bc956888ac85d1fe153b65389fd4c4576d8e41361a6d3525b1e43f71dc21b2a9a7f6afe1a56e5539d4e341ab4280f8e567741da9d6982e4b563d980b68871ef0de3f2c3639a244cd40dcd013dbcf5afb1dc6ed1c1d66ee28bc3bc276b7ea9f2d025390403dcb676777a36a897d35d391f92915a82fabfb77053802789e6e17ae3714de9813fb865d8f3e80a58c12ab39639488d65b0c80a39120fcbcb58e1911c60f618323c13a0e967bac666e4840f6c323485039f7f70dbff780bb571f861cdd5394296436e37737a8ac6cbdc42a0f9b96a4e907be3abb5e7740e193d590c86224df83f17e1665a85ff05e68c96857888ea7b766ceae8e633b6a2561bda740752d93f53a04c7f17c9db6396dc19f38b78866edbb79482d8af6cb858c8a38fcf1c42401dcbbe9e31ed97e16c7eea75cce09ee57eeacb6b2f2fd1e488c785b87f384c86587844aa2e701205979c1ba17dcce519ecd908c656d7734a5a354e066d6acf89d1f0c7590e3a324d3da906bf462da7cfe478a46986d1618bc7417da9e317d7219c53b49ce4c01a8fc755d98a27b799868167cf6f52befa9a24c9faa336f92692c24e961ba4444dcba2a47da63f533f87dafb1b9537987b7b71043d60dd90300a7d4673a38cb781f833897e94955bcae9d428cb807e710e98901b3597467795a84487bcc5a1180482ffbef05a0a85458e719d1fb11054ad3c95e75a04c2711ec29c387d0e67e08406f6a6f73cb5986945cccaaaac7d9eaa305d3e535877cae02e3d5cdf5801438717dbb5051532f6fe35f2f79fbd093864439507446b36f349ce4748ff6e44649e7864eb90f3f367430df7ec03ff83fecb910e7099ec78380b5aca2c7e82657557eb66c2fb633aca3d99a6fef99f7a3f3c9d8da538b8a5f5310664dc2889410465e90b4d078c7dc9fd30729555756c8080fff8623a37a3bf48ba55516caca65256bbffaa6cf6457dbb3f336b8ef21659358f955416074ad023edc5de86bcca317d193a92eef900c477a00490cc464a12afe4e00e882576b41ad7b6f29b34dbb3b03a5c77b2e4e62d985530d9d8b186b7e168c2ad6983041ff83cdad78f68e6a9c79add9bbbca9b3fef0f447dca3ccc8fbac0ccc385538208e49742da9617af8bb4dfd568838de12e40eee3a7e5a94a82563a918fdc62caff33fd5ddea552f565b4e2597b17c3b8c34e68d4484deff79a25c8fee1253049f6e982a5d8b01a7892beddb5c5a532f4880c169a38c7a0c9a7e5a2a696bf66b679ad349f0dfd710fa5e5ec3db2c3647ba6dfe9a343b65dd69a7cf28f0f471aef69853535f5e841f799f2dd85c3062e88a2ebdb2a453b511931174738645fa438dda0e2fa474afcdbe01d90ec169cf473b9cd153c223eb2e8fdd1d45f5957a487a38c726e8eda6bf6a1f10f7432c53a56a96c3a2ae00ea69103fbcca54ea3f54dd2dd47714d397f7a4ad2d0137a0ecd60ea0669540e61c67334b8965faba455b81a6dcb37c8d2ba97c9496c3e3bc984c44a7b36e1b51794ee2347cc489c07b4a89e8c5c631ff1b9c98c08eb5b2468e9a92cadeb684b82757e00039079e550a7c7a14bc856e0d347d28861931f77bf18932183cb9d4dcb07d67202a7838c6dddf72beebaa87203ad943da8faed04e360b38c68ef5173dbc67be8b33e1d724b08611857c1397dbff9cd324acb67f498b599db59515ca863cbe016e87d07b747efe8c90305dc3f7468053587565e63e705e7585df04b78ccf2cbe1dd3fad1cea844073b7d4667fb55b93bdb4a708ebf96f3bbbc62ee19db4479737578869d75d4fde56bda5185552cba4f6a6abdbd11b4d007f6d5ddfd8e3fb46c3c4456cd63ef1d598bd675d56beadc177790da6509dea49aa958d2ce9a9e6ecb19fe96548a88f7b489433147ddf1de39007b6bdca9b3c7cdeff1ae833deda257599fb6df00b167829bb34ef7f551bbf3a650c7a34ae6ed516d401d89486d438a0515a537077561ec79e1a3963ab +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c4f15bec2d7701339d0ade4835193bea3632edcf89e74992620d9eb623a0d0d4 +public_key = cc0de8d8e336efbb59623db73268680be4885255aa6353a39f04740cefc3910a9ba927d0697d88aeca7fd4a37feca45bf2aaf7824babb327c49f18539fefdc1755983e7bee03f98f872df2746fc9e22f46d2176ddaf48dad3e955e59a7d69a8dfa68ff8c66b14dc7f59e6c4c63bb88c995a71fc44bf964b1650746ff77ffc37e652884edd8174aa33f6e220df6368adf243ac63728bc6ab95dc22a9633ee8cff13cc6e38a1f5ada542259d41ebdc1dc640e8735dfbaca58c3c7f18e39c7474ed487d99ff1ac96d9f4e367be6af4f3de8bc9610c855eb686e8da3d1f3cd8e96e3a27775f3ffb93cfa47f6c2dd3d0c2c634f1cbae6dbb4cb987be8eb4642add56cecf9a775ec79773b1696f69c1646a65786f667986e7a552278713fe5c5a4f9c23633c467b8b63c4d8c4229cea5f5a0664852729a7474695138cd961783656df4527719f227ef32d5eb929c8bb5788ecded3b7d5266bf5c2ccfaa9fbb9d8b597473e9e6b5803e0da84e2a9998acd8bca7f6783389fe5d60756d6a0945c7e4fff500d58fe3a647214be9bec6e74d7f833dec8ecd036499e53b0a18a1d6e471713aed64b9d3b1f3634ceaace56a906a1336c9d9708768a6bcb9cfc036ac236d7810457e866d561a38c5cd84c6cb1fea99ce5aadc47e874778a824f3d669ab411a72aa4a661dfbfb8f5ad6600baac967617bfc5dc9eefd44d9a7f80b46d9b4db91a66e3c0adcfb65f3c059f2dc2ec41217e7b436c6dd9ed30d13b867f7d7b9a389189ec7579ddadc4ecc9a39f60da8f0257fb7347ee037a98b454b6b5a04f4df236dc079941b26dff2cdb8ed2be4e787898da354cf79ca4ff5d6d584fb5824edd06f4964397274737e4fdeaacb76a92bba8966bbf4751e63893587c94cbd468ebd0b2ed937946051c572f233fa1496677958e2039ba9e75f5a298531e7479a172ef3da95b83ee746dc0aee890e30af18dfd71480a4e5ea48c48abcc6fd4c7b44b81fbc0ecc4eb53a929b1e67f3c49be8cde9002679123348af5b7ab18a36f87af3b319e54c63d7b003966c87550487e8b32649945c78660ef4ef7de98a05eed69e934ffdfef7fcf18579e29d03b76ea7f9dadce7e54d7eeaa4820e238dec3d7d81a5f8ba3fbbdd74ac26cd476c037cd93ddee933e533676f3e2be1a60af611b3e6101db26f2cba296657255d516ceea39ed8bf651b961e58be810bbe83957038fe671d1f8f9103d3e0fee03e6f4b97b4c331db624fb354188d47ad4b909ba932129d8e360e4d8a6e44357cf50e0ff58c5487eb1eb32a2e4b4c4bf342e64244d684bb9e4e031ff8e0d9b5b0283b5c96a22c6edf31974844cfedf488786537f1bffaeb38054ba1b39ebd1ad3746ab5d07ba3d80b5be15daf138fbf1ef87629fade2faaf72bbcf4b7d3b465ce82a813fdc2acc0b7ba3482c5cd7c0b519a6ff63406ee553534020671baca3534193b2a9585f47394adaec8b0ff4c05a7a8b0f59745e56e134fefa1a7b38db38de3485f0186f6eea474e3e3c1a6bb5243ff6de35f9e5189f8e547423b79cec655ff15ce7ac403c0a7ef3d25d334ad07aabd8c60320d82bb5ae94d656b2e2b64ff3475fcd9f26b5f6867ca7dd03c75351ab921eb35e445b144f4a7e743acca85372a03c4cad754f1d788a1d9e9f0ce98aef95baf7768dbc94f36d5a37db440ef4d3b9b8a339bcc50c0469f5178efccbf94a15fe47f895d922e70117ea6ae8b85b3ca4a7f197f06cc5ed4f4dc5cdeba18f76a811d857cbdc3f9ce5ef8f89fd02fafd66d445c8576b8a46298fecbf589623214d727eb40b78c9709aad9ebee92803bcdb153b7ca9e8b8c66a3e8ccb0a928b2505b3034886b452bc9f87e9246e6fad183a292a75f4d77e5a52e53b8f8656b2c397428803725bd662395885d6e9ad5694fed592918a14346cdb0b9e17b7969345bb11ced7b82dc4361b580fabc4a91e9e9fca7f51bdea69938b508ed66cfa6a251d98928ffbf2aa8d6164cd7d1a966272657771d5126e5ca597fc61e4bba963fded56ef4e76b334d04e0e0cc4f193baf6ce695823e3617cda9de5682500d7d6579fd0f675ab0ed86b7ef621bfba18deeadc4337553d8eb92ca4a9a2c97134e6a168a7aa0dd6450589641e952a97be22b4c4bb647f1d6e76201f96e7403a9098e9bb61864fa2f5185678741da30f96e7973a83811b94c50bae593d1da6d3b306bf50669e590eee2 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 28878249e2ac2b6263422993923a0c8bd05ce56e385ed13c943b03d226856947 +public_key = 8945cc28753a4f3771a68a9000944d726479e1a79d88675fa13795fc086d7908ffa5dc7e2da5ac939a42728963bfc3659e5d345694373b877b0504a864247addc746ea9ef6cdd7ed0e4bdc7f457c046ac8b9ce458ef7dc839d5ff5183d890845b21c66953c6402cba2e329886ae5ea92f7c673995fe255bf956fb2edcc899125b1831ef55a1df4b79f8fa0c79476ccc4084ef664b83c9c59a806989c335f683b13979966e70883ff588d4a97cdb58c88cb4a83a1272ad5a9a58a4c187b45cc893ba6f1e8c5543b1ff21e0af718bda42bdae880959e70496cd155fd3629edeb2f6b49f76419bea44079c2d649fc37b3e9cb0d7b65f57743598f2d4da68dcbb6040eedd32c368a0688344af5f6a348c1bf60b1946abcfe5b3c9ba0ad1cb302c9e8e4285870c9444118598ae6ddd613dc45f33239abc79a04a05a2cb8e73ef8a3a9ccb71f48f21fec7ba5751dd6dd519e986243fbdd0bc371f4d37063879fb5bb2239d328d9e94aa837173e6b7747a5130a984a249e2f1f4ea0eb67396a3197fb80bd77fc6e6cab6eefcca2e3ad70d5866fc878dbbecd6557f9ecf9ceb733a1b81890d05ec2ad2efa52b6a4123cf7b86cca81089afa1361c50e5abe68c62daae1bc1d358459882f5846186ea7ecd3b9b4be7e32a682a389c4328bbc4abbd1f44ca93f25de72678160243130555ac9e964c784c33943b5eddd7aa8097be52eb7973d5f06ee96ae166559ca5c59a445bca8d92cfee8309dd0d5c39b7c074e016433235aca94e7e62b853e45367d43ee604c1d702cea82da0d425ade30ae6ee7ca24c6ee5eed5929c3f7a6bb35cbcb2ca6bf09cd6d1a1cb63aa54d4164a838173b82b45524fdd559994e8ff5a9cab63c6fd3f66998ca8bd5820e8be6f8f86ce149c355e49451c89624b4b1f2fa7f09c5a15bbbaeb6a641d66e830caf5ea57dc9d7c397499c9747994bb98e8befaceef89dffd6963dbafb6e6dc5a3ce25d9510578b96983d08c53c9384e45e6a5bea7c944eeec5c46cef6dd566c5cef9aedd07abd641636bc329e3035ae34e7a4b0cb959ea476fbe65e57fe89a7ebeea97603d617ba7e01a8f0995ee5e5fcfe7e1df6734d69607ddb2ec4e81adcad96c7605d5c750154a41124c6f23696845b9b5539ae31be564bebfb42cd9feb96b31b0796fed8503028af12cdfe68f342e43ed8465f5a52268a1b0b4f7648600b455c5d8f4c4aef97247e808bf572017331cc8bc0e21e47bd1d793e096144b4e87b196abeef88b134bc54c5b3b863e2e7a9bb90135dca9bc73976e5ac979dea9ddc26057ae30640901744382d9edf3edcb2c733302c4aeaceac157fd24d64d06835ac3f23611d1bcfc945a5850ec6a6da42242983f4f7e2a518dbdd13633b1c98f32835f179a3d11eaaa46b9b2fc8e0dee9495cb44520edba2007ea92a445e1ce6487dd6382c8cc415e647739762257a00e8d956475b4521493df79a28319c2c1338c9cb3791a8d785c3aeec5bee844c6d8a7c7c92c9ed15534a03904cd5a4777fd587ad90d4b61ec40bc9aa7a4268ef44590062f759cd5d57bbafa5729bcfb4ad6671f6a90d56b7527c3290d960d9586e93579efde818afda7635e8125a4317649a3c1883c6ed8b047b5444667b4d53ab5d5b952b10ca1b8aa4ca5e438ee4cfe7adfe32bdcf57d8585abc6d9ff97dd268f6a67075fc38c32cd1c6d78e56a4f18cb59c756979331f1786820caf97f5cf6ce35ec93686507bf6805286cf69e9ab77dd92e7ce825d746c8c9478c4d8acb0f4376233ab9cf87d709d02f7b8c6e8db44319e7fe546ba774482b9b77c20bccad85355f66f153ae593dffbbb13de4df47b29d1ca5c1e3d0445cb4835b45bd59b92cbaecadfab9986869f5a787596798201f67e625e80bf7952a27ab3527a60b23dd6aee55ff88410b2ae0a705b14eff48ccb8d1e3b7610baac9d92c75e4c759cf7c8f644b610a45da9a9b5b59eb798a1cbf43edff212af7abfd5ab9ee9bab7ddf3babca5e8fc9388466c5aba81d3fa7dabc9775e73a7753ff9ba6f25ebe698a2c7a6c9b6949c59d7796758d24c4197f802a63bc9723b1807d3903c84e425383051abb07e94a1f19a258b6ec66b56f46cccf68fa4ad62c528dcebba2d579913ab754268eadd4f04b887bb774d96783301fe3def9d972acacc01977d137525d619df951b0f9a5008bd9cb4524c5ae7cec747696489a8fc0ef65 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 17fc65f7fbd7c75ceec421dee84dff5a8cb22764a182db17e0ebe857f54d60eb +public_key = fab5cf19743431af475225661978f6be35c3ba65d53ed8c8ac14f11a3ea38d6ae00d7d97059bc058d551672542a9fea7fff8ee0c43b1636572f56d8dfadc72f9a786c5cfb2d27c576d29461ad56369b7300d4bda799dca3d94d7a9aea90f79655884320225fa723e919da4e7065360440ab85179d9088bff4eb4d8bacadcd6cdaf2a85634e88693b9ce21dd8e21d56f651ffb418adc44b6de8bc2a70e68a590b757b4c0ac70bdaf5933d49febed85606fda437d1ab9a75d9a9efe3d99856138112ba4f52eae16604e1e4fe5baf7c3062563dbf16f6f76c4ce98ccb1f238a898df01654a6e65ea5de9cc24fb36dff2334f2f7bcf51b8b6f9cfd07b4892a657e586370126f407614dc02ec599259e6f5e49956534b0b7a746b16663f33cef454df2eb5be9ff4d34ebe53d296a86d83bee4bd8ae544e223193a7febabc53956049bc1e158e9391c5be6ffe6377438b0fb56ad87d335a97c8e574c015c66d99c59326afedafc7a6b4ba77fc5e051afc400d754d72cdfac84781af78c04cd94be9ddfe25b7f716dbfb435f643d97ccd7dd2a1568d4bfe81ea9fb1ffa8cc17bb835f1bfe6c8fd26478729275b002636cb49c9edbf4373a1f961eadb913e6cfc1959b80f7e1cfaf76c20e58dc43b6897d42d8d58402cc54a78ef75fb49a7a2dc3575eaa4e8eaebdc7721134f0dc0e62b94648ccd5e9e369958cf4dadd9d413da8d2e72eb6e8ccac13d846152ce9c78e3259c599904d71103e62d006c5d3a9b2d18861789aa7854831a13e4eb75ad3b859f1ed73ae13db7298288ccfcd7eaef97717de4a8a296bc4ddb95e4a78e10af567c6ac961a73ce73d85daea4b20eadb8ffa4059a97a24bc2dfdb6115386de5e95486a46e6697a17a88510c97a0613fd5e018d88d269083bfc1791cd2912a9f03383a95efe27deea0d7f558434a63015e3a15efc4f6b33d8a159a07dd9983688f75265a84637f07846f0c47441bc6a6a8e48142b39b499ebb5d4fec8be3d7dcb6326dbb960b63fd89fd8f8a299d9158f4e56e89378c635d0fd98ed8382fbb4165edec868cef1c4973116c3629b3cddcc4db193fa0f06b6d04ec8edc56f05da3b2905dbd183dbbc04c5f938fd9a4369b878596a3ee49777e39e5ad6493ea42044d62ab1ab0387f8909cd7f9bdc820495916daee4f7e95683c945c19354dc06c5b7888244fce79bf88ed4e68bd10483918bcea75f446b7333e71a403e97446564361c5f53d1cff5d41556831f372506efd5d4655bdb7891c6572758977f0b4e8efdf1e93fce6314c25f8f392cbca5c794cd2034eb87ec87a86ad17774bc3eae8e78edb53b6feb2fbda7006b35edf5b0a85b44d3d78dfbb476861997714330c9c5ae5f1df7d7298a64c6ff2523670d6e80526f9c9577abc2f456eb0ca33fc86e94e9e0d196e44be3a88633dcf3566cc0acfccc76719bc349cfc7dc36bf4ea6b4bf1c0394527a52974ea2b45b60da3a976e8dd12e48b5e06da7d848fab149760cb5579f0673f78a52c01c8efd1a667d86635cfe5035ac32805b56ccaaec005e6ca38b3df7a3b860985fed84b2b5fec7f3a8812273df438c56576d362b9d887a9cb5519dcc448c9088c6783aa890cc5eccc3c8cc7c097d5a8d8f06675e1f8f6869abbc0644a612d471d6ded6214abcc21e5b106ab3406bede14c664a773e6e5667d8177ed736a9688ededda390f1ced5f9c5ba3a2a61913af4143970311ff035c533de16c634a799f2c7ffc42ef071e7aaecde636a46d3982df0e209e0b91e3387dae7171b39104595e66ddb50c99c37aba1fae5dfed567d5eecc00db3ac156f4675c76846c4f327b9510ddb882b24be90c9661f5c46eb6be992df5920c78f368d7ec55ac2827776a54ac4ee37fb469ac65aabc6ba199dbe33724e5866e24a8058d5908f3dbf553f57469d7752e3f4490b766f6672c4c8443ff7647dec597286e35a4789dbab39365e75bf3a63ca6a359a879d649cdb398f70680781d3e732efa5c85f2cd20e4384875954b514d3a4987ce54a6f24c83e541491b8de44012544b97bd0b933c51704bcfc3bf0ada6c481ab32d555898174526a266f70b7939054a88256a59c95a0ec35d1cbd45f10ffad418b82ecc5e4f7ebc3fc33647f5c43c60f6fb547a33cff642d9f79dc39ac611fa770267d6c947324c6d45b65393421bf4bd7068abb93ab3a36081a303cf37b90037749a046d478 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: fa0489f3730100609488e951e6aaa15c0f193bc1dbcfcd013bc418d6c507b176 +public_key = 7665cd165e6d767a980e05ba44d761fe17355c0aa302f3826edf5da4ca4d045cf99dab608da967c2ef53ba87e08d05ea15ae5541763f737a89fe06fce1f7b4e1b8b77ec7e9a84377bf0d81f7e7ea6e98ee15578603867855d87ec04b5f1f133368e43ec638ffe5fbe6936ad4eca9e6cab9d031f4dd99bda8ced98979fa7743bfddcbe84c682f3eb79f5d7b2be2e07a47677b56ea9e602a2d4e924d8635eba66a6a844de5ccff6aa640ee519013db888ee01b456289be70bc1e7584c996c95e5262c684a57e8f8b369011865c7578f7d3038d62355f4c994a53a8e5f4d6b6dc9455f4d7ba256de02927dcf1aa3b0944574f6642c446a3f22ecd08c7bb67f7f39eae47e0e9c9b5c57b902e82e00488341994f72dc99978c818aba5e55e6efe23690636cac06d7c438cc288e944b3446b42af64b88c6e047ea08a2cd2704cf1a0bc5d73e6b95e7b5fb87c6cd444e5afbf6f92abac047eb9a7b7dea51c88e12bbcdef7c3cd3a4bcbfa3bb846d6b25c85995df11234d0272a616fd4d71ecfd560654a7dad99a7dd754c43687d9657b1c8e6a04b8d4cb63d0e3765e228890e19d7accb4734cc557fc96ef7fb6b463cc2fa5b73b70cf41f33d0293de483e66efdd4570365865c18d28f96609377703a33d0f8eeb9f493947564ee0ceaf528bf8aca7374d28f72074f6637965870e9b86ccce15daad4c0e73e8b7a866c277da3c58e0e2d94fa285e2d05af7ef64f8eb6e46ec4321395b7f30a6e5227eba28984b1e49726b48ed259638f6bacbfc5c2a4baa3cc49ef0bf9e7f7ba3a05dc91174fa63ebd3fce58bc6f09fbf86e656add4416af6eff9cf71fa9f1dde3d2787959f5397b70d7a388f7569f1edcf26b67fb2c3a2b5f714f5666ba7f6cb775c28a79a4164ef13e4766c954ffa06498f6d5a1816b7338f9afb779a40f2670221bc5f03e978686ffc79bea25fc9db8e362f11c9f375bd4204940877bc20abf5ae7f461c41ad193f66a95ab7dcd8dafeda4d2ac7f5dab23c1abeacad633c462af6790865c21a960d338a7e485cb2c4fa8b0963b8689c9d4287643b8685a44e333dcbbd7637fa277ec1048638a547816fd7b255ac115c8bc32c6ea37aef8c70d76c3464fdcefc7c0bc5ef1e383dedfae8b0457411ce9ba1c486c8dfa9058d49e85cd1e7569eac6b3bf8f87ecace95c3bb0b5ff89538f3832c55258dd5ebd8a8bff9c372095be66359c9ba738418da7acd9567db7905d5dc36734cec85e9e8e67e95247b48a65a1e34cb942d741d88b429e2f6a4097beed37edcbc8a0366d6e056a89a8487197039addf3df78cbe7148a4f0bc84bf1ecdd9057c97c0f8296c9f60f7deed1a675bca781c53bcbd6866b4bfed8d059ada7c6b8625e95337cfdf2f7ece985f8379bffdc4b6502ff443fd4b62494f9b67a4624769236f3fc12f3e16ef66ae2554f55c7be163e9e803b8ce0089d3c04b65ec8340c483b2ae4c2b8ec7dab9eb3937dab7fcd4fee436e1d0d8f61c46fa854363287573d5dc63c4bef94e5ffeecae3aec5c9262575939d4b00ca8615469df5539e8f4c627c1ebe02e96d17189a80f37da6dd8db81baeb7c34b5c58ab3cdbf5af4cf9cec9364175b6bb5ad4b595807aee8d554dbf24538599cec5493f7980297efe63ed4c14a9360b8dcc173f6536b761bfa6fd59bae37fd87999f69c884a966c658017ce66de451aafc61266b344f6648accda657580130c6fa0f6565e9ed0f063f011945c40af96de184750aa93168fa90e6bb9080971cdd6b470f68db4f5f9ee6ebf9706fcfac5cb535ce570db606dfd351e1866d8ee99dd3f9d713e6d7fd849d6cf96d76a8db213d6bbab609e7a9ac05c7897be50d6a6fd2476e58f8697e63f901f5fed5fddd6713446416f3891b9f21fae7ebcf6b290dc5435a8e4a86658e3dde59c2374e1dc5f94dcb30dfdef3643e29274585f3d4f0436396d6666108ec4cd273b94a3740facffdd18ebc309602a2cadd82aad35a46684547d01c74c385471771e3a697b49e6c98c1d0e7b2508e8e1acfa040fd083dc5c74c4c38b77d6e95ce0d178369b375dfadee81318f4fe99ac4aff4a682ac23df4f9f8c7a6d1a89c36f82f0a47379e7aafadc744e20fdc9186c67784c3e6c8f3306896fcb3d3ba06e409cb498b2e643196ff00198c26ab6938487dacfaeec6906ae45303ec7dbc2889a8eefa511b82609b980dad54ebb3e7091e9d +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: e7aa41194214caa340115002a25d547f794ea33200dc8a9ee0fd033e181ac23a +public_key = 29b39d84ec83b12962ed6a6d7f859c90f8995d150c3c76a1231002f37bb369f85da6ab37f1b196636754151bad6e8a5c8ed1b6ec6639925493832b5df0415858861a495707f0f05c32d226c15a1470a109259c4af6919210180041198662374bc60cb7a735753dc10c2997c76b1bc1c53a11390169898c99efcc454e18824304099260cc115131255575143b9a0e563ec8e24a5ac138df875db356475b368eeb35bf78621ebb70908ed1812e896c0aa9123a94326abb3a48ac2eae206febab0e46b9bd7fbba7e3b91a0008b83e00385b968db5e188c58680b21a6f76fa7439c68585705c9346ce17000cedd60db7d39fd4f2c6e0389b33a83533544077e432ad58aa65c2bcac922a4d800177a68571e398a2d82e96ec111c32c03842212030416c93c1127a9efec75518fc5a1b3955957b5868f558b6d8445bc8650159bed9b2084b24c92a3cc1b45787892c0c01667f62c453b9c9569458c584c35b800b5863787e13661dc6a65980ebc20d5480eb058558fc6be0857cb8e86d6a5ac3847b0047fc7f65704f7984398f281465c7342a6c586422c475e67103ea2cd0d032ff152f38e8a00b522ff48653595ccd591b3a0dbc55e2292180910dee3044f78668a6c93c26 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 08a1233ae8451c8d300783fb93056849f6bf554252a4c35a517d4bb0ac28846a +public_key = 11a302f253ca27b1f8808e7b42bc4e5746a0e40071560f872a4ad8625d143cc4bf5a51abb39c39a60de28750c57005e0aca082331650614a0bb7b626505fcf53139a675ef07a000fd31f4e38296008806227b4c45040dea8144076a30d8c224f9a7df0201a0fa539110335ea5246873956630a98e851b86687aa1eb91746e63e1d166479d2a2452b4b0291a219a0c672603dce380a7a8b091427499309c87f275df1d6b551b394b2dc18bbfc76267c6e07cba8dd2091237245450ab5e5d7a57158183aa110cd1253a829559222c2f3d3796c480606754085577e6d271f46f80d4a1b75d126125bd1b80d03178e47c705a7888a26c0aaf60455e221f5c821cc93702881bcd7d1849e7a8e42f3c151913747521ccdc895c6661cb2f04007d2afa77000f2a14817e59796401222611ac5513fff91c66e059cfa2bcffd9054112164cb725576818ccc6a91f2c698c5b2c59dcb1165ea5fade6cc0a466dbd357941f40cffe8af5041a8da610e82753bebdcb45859337151b3d5b10df7ba6f0b8a3d45678c6a69768de79bb0b069e363c1c7a90e16734633e14f3a1c927380aaafd378262602adf53c55e500242621074a92bad4221ba2552e24a89c1282ead295039c99fd01a761fb83d9249ed1889bc204a132c81be3892301874ab768882a86ceb82abd3af084da64598d002a455bc0f6645803a36f9af7689be7b0e9275df5dc6ea9d87f73a6424fe76b1dea51ab41b2ede75d202291aae3c89bca743337541e61a327859127c24671a25194c4290eac27c525b624210c26d14bd6f4102c700c6ef333570c2c527a2d6a3c34a8ea78e179ae0055460ab3b57dfa7cd8c250664b2cf860a0637a7015aa097f758b2a43b1b086afe217400d131d58116cc8cbc68746b7570b4c0704b630bbbd2156ac6fb21783637768d71fe22074fd9c215bb16701d47b37f57aaa833e4227c578e75725b9823b9c1e0fa01eecd0633ee436a1322be86499b4f50710950859c7061e46a42b8810a47c9ec92a960bb622f3e1baa2c7625708b7508647bc8a68b3920a493c9d39e57745874bcf63938e791723579aa4b10eb006a522b54de2f9348d402c106460f37a9a8b50a4dc50c439e7354424a17a643b61391f84b611fd069752f6259d34c35f061ed1c22fb9f6c4b90799cd92cf1ba5a5a50673eae126600611f249b77234b948158ed832056b76c12145357747430bc38525253ff850b1f8c176e2f94ceb2c25d75b5dce82b950430461eac1dbd43504c50de1cb10a404506f59c9160c87bd7bc56f86499cb39073262972354c36927ad5048c624bbb5d94536a178aaa790f74358a1dd7625083271711c55796338b97c126ca224227395bb12c57b5330aa2407965cdce66382c075d71013ddc817c63ab0a4af49a0851182777288401b969cb14094b44e98036bf47357e550a8d425da5302da69c7c6ff6109ad94645b476e769ac39798a4f36b007d9104298b798b66e3bc79a7eca308884063d608ab30c376b13a7859ba7c676a857ac2fb4b238e317061adcb7dd013fd666bfe4f910fd696485b7958c87cb01a539c76abcabeb8b2e3798787fc25830c3c411a3e59b +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 9504db1b73df385fe1325b11ccd3323052f0c861aecd077f1128a6a70c96b530 +public_key = dad163da1a9a77567f166430d7f8af8a6545941b6b9ab2c11e8695de1990f351965c10bb273a07b546405acb50ffbca731ec2272f9537ac2c8b974a4bd3300c64ba458c0a0f7fa6edffcc01d866b968a17451411fb086a8c9a1ba6c623d4e14b7fcb4e40e432acd57f237134fec78cd46851bea02d0be10d3f86bea4f8ae12bccdd92c4b17276d2ccb341e162fe80c7ace16590aeca8efd49b819aa4620c8a3f7ba9c5c69483072b710c1667d0256244661603cc497a88c942acc457baca9c190f1a2005c013bcb44d4b64b0e157c37b70cc23f890cca7199d6590dc5a55092961a3d4b808e58b93853aa57053ff070434ab6a0454123cf024bd5bb7683a1ef2000456452158957bc5f430848660bf64498a94c5fa06348d4a3a9512b2419bb990827705050ffc621373e5b386b78840650ec0d981d6175cb7a7a9c27243fa561e3283c18bb960 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 985a506de024e2a8eb662da102bc835ce2ba861c6cf4add4c9f09a4fb826368c +public_key = 034f63d80d93b240fdf3294ea3034c542acf64418eb6584bfc2eec3c6eb92c3d639239d7b887cea71b649a5d076aa78c74939781557cf50419c20a1a82350e88431703a21ac3292d89025416c87d46440be00fdbf13bed8416abe280cf46381bc2a400325687132a3d2915d6 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: da47de23ea8d972b4212f0f58a0fe6fd47654c86bb490a8b4976e9c14f4b6ccc +public_key = 9484aa45883e1c5ecfb5b9637c66fc272c8c8033e2b7a16e81aad212461423b7d886bea7cb580c198aa4426baea23a457122739cca5f3383ad9057a01223ae6fc00e874990 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 3cd670e828af82544d1877fc27218314a90f6d52b8676fe2a1e6aa2c5ae5ad2e +public_key = 2548807922b7cf9a3d5b5c6762d408cdf6cbc84c3e5553907233a1542c3a3e09adee78845e087f81d81fec6690f63789f4ec99c1 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 37093904498ae4743d282481daea6c1ca3178c2f1d626696273b34323d8d837c +public_key = 8267516418aae882a1d5a51f230d831bcea7c8aa543ac2814856df2a3f440a9d8c9544a693359ca08533416d0f087935d51974eb00e3183a70115715e98c +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 71d027342e3fd6d3d6fbcd3c8e00e29ea5fce9664fa7c58b615f5128b67e061f +public_key = 9b6fe56700676cb7d4760361b45e96797ad745671e925898d7bef3f03e531a6614052e822c5ede1544b2751e6ab55642b559a6a114afc8a056dc1d7dfb9ff4ac62b0431d20c195c8270e93a29876d0 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: d1bd79ea1afb6b51ecda5fcf663a6ef8074bab232ec352866bd122b8ffa75adc +public_key = 68d31a7b393d2563b8987531bddb014b7671b976b59cba +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 259b39143face8dee2cb8255366b221caf7fd595b3da4d86c63c9d47583aaa95 +public_key = 3ec72cace317a9d44a582cbb3074c2ae6527986b797ba639c5d0e79fe7d1340bb630196073751415bb744bae046881e8024bd73def994ff067a8f7c4301376cba606c0c7701e8d4bae6097a3eff77ad2a9ca97b78fd4871dcc568fd1841be189a0645aa511f2c28c8cc521ca7dfbb841c2261ca6e1ae37b1cc7ad1b95e671061060e33692892a7ca1feaad8be5249a44c15507c0df2c2b9767656e7a42f7fa378792b819555e102c23c9177e948a375578c6b6f46a4ea88794777903d6596a78b2ddd71dc5d96aab009969ecdaba3ec7b4 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 2fa93d1de7c718780a4344565540fb38cc33692b6feda37e5ed8e17a50637b97 +public_key = ab62cab7402048a80832467b782bb07f74911206993464645555acbc7813ebcb1d5dec3211c6685629c32d69405f1a5a57bb6fd2a57c8bcb1a3ec17a31c0029e813c73a4353b7906c1e1bb2d6c8d23198c540c711cfc9662f66a32db750b10324a33839c20cdaada97384c624ab528728883830792126c16c68c58b9c52852764b4a7333a40143a0d173f1f4a99d6b3403c384a95879bb569fcfc94b4d47a24d628b03459555bb41eb63c7806273ef70cca10b0e97667341702a81341c79122f1097cfc9b7bf8f5810e2104f707a5117702b7ed54201081a1e18a4e811828257691b429ffdc214b6d38df9714b0073a863a3a310d24192905d999ab020f834a7695f2e923608b55284631b6d6330e42435011b184f979b3d1ab35d2aab5ed430a061029681735491c0ab9a966e9c159c35c6349a48269346a096006bd19e9bc445f1fa5c71f329eb215e4dd064f955760f08cacb834a92157ce51567a0554fe8ec16e751a3ccac743f3835392466323b9771741f9f3166a65a32a0983ae86ab074689b92a6509317b527420f1e1b204b08cccd9937bada6317b734710cbb97555d9c44c2d1b567d7e48ce9e7ce9f95ab8cf12734f3689f6c0766c85381ea88d916aff639c51d176797360a0ba334cc95993fa06b9a580b415c496a1098889371def5cf82bb8b381b444248ae55966991db2c6d598101978cc9288b08528919937acee3cf64bc1ea0585f479570f554566514956c05474a7b3bda7947e3288e6ea7651ac0c26c2953dba6cb7cf89f71080834391dc596c235f0a173444750d635b5565e47a5a02403a6b9402358633b9ba96e23635caff289414a366d99b6820383e3b88959c31c3f9baf0432abb0014fa4c15a6038c19fb98794bc7fe31c0d8a04acbcc043c096aebd9a64ecc3123ff1cfeb46a49d94317230a53e74914028cd9dab915ee769a197c504156629640ca2da056df727f9c7023828a8328a7e11245b2fa64d04f787ba4246ff9261e1c21e3c43cd90b89ffb8349a980abf0131ba17235bbf12455f2c16c693d2c0c081ad3bdbf73a69be0c7932766aa1cb6ac4240ea39ca0a0725b4d84bc56282a4b013ee960340f49216743390780283491ea876b6cfc934abd758d68ab04d4a06b0201a6ac74d879539e1476141a2456de730f8d696d3e2c557d4abd9470186eb41fca8a710198a7914a0e7909755272f5c6222af704773c3353621927722114484880c010aac85148e10a26b5bb2a3811cc9306fdd9c6704571834da22de1ac2cd4a0b773613eacb701ee364de22c03163628fcbb4cd92bd91e0cc97bb54a5324396e94745f48dfdb78a8470a29cf29df146ba1592108132094d85cc62d5194c881a102b5d5acac44ba72281f76a3723b78c301a4041ce2c6581a8060bd8a01e00744f8601718cbc8c75663d4c0549a499abe2d706f3a232f4397cce1031178545561b5572681e1263af45e1640804c74ef4777d773b3fc127e8f459b88aa65a600a0d616c7d1b857e6247dbc077932a2d517a4b74cb2537a525a8672cab21a4497ca1c96c640d69103ed4c0e7695122bcc9af3870fa9863f29a6aef05915c9459c3d6967b79531d5ba431041cc7d06e788a474c6098d18a7b23ca672af95d154b9d789605ce54c7e10010293b46a5ab4315b0544f381b4b8a286ba214bb019c4fb153da43bbad4621cd412d0f0663a92855edf6ac6e6a0e2b5cc59a55b7aef4a49e5b9ba9151b6059bc7a9ca22ce912ec3167268b6d6b483ddb7cc18dc64c987a05aa86932f76afc78317a82488bc722f3cfb15c5f5a5d97175631155765b6dcdb852dcd434c19cb75c4b02d80bb02680423f7b36ae51560ae73edda75c55d52689627aead65dbd40880f5b56540a1db5db30570738e2e88ba305228df15004b6c41c4767c024cee8ca38b43c93cee03e55a4b3f7e91049b29ed57c9e3bcc2349168d5ad2892e5bb59629c280c27bd55602cd5504ac80cbb3e497a5c741fad3032fa52a08ac9c762c7cf8206a1e283d42d6439ee02de16c407bd849d431196971018db46150d6bd10d21a3c15cde5129c8f19c4c37a4e7df7983739711ae4be4f864cba2cacd308c3f69b70a43a52d6e83d901018055a7f7dd57bfaa5722a023967d723e49716328b2523500b61eb5d057c23f3a6544f8f6ceab2bbdf34bbeea1478f41e5fd89df8d8fe7696e064a6fd08aee3cba5e50638d145c0f36fb0adaa242c663a98e1fdac1766dda3f3d0233 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 3d36c670e23059028db121737c0ba77baa3090d7ac3af5239220a6ee6489ad85 +public_key = c6509c9beb695778965915570e0b3d95b742e4964255a45667269fd3825b27292b3066153050a20af3553d2b1c3f7c8501f187721c8259262015732ac447c625a25d102507d7dcb3e150c0fb867da426798d47c5b893445ecbad9aa1116659393b751c9cc5b4f126764a23817514324c1616f380ba8230a196314810d49ec9b81d3c48735507a973190a08346f5aa23a6a0831eb23349b723583488a0047625b1c00c239257845c3cd881ff7a157c8e9bd2bf1ad143c4cb7a114e253220e2bcd98196d049986388553530086e97673aeaa1e9dd07b4b37a861478ed983a3fa78b71736b572cb22641470c746a4849c3431c303a8ac5c56b949d88cb214d52fffcaa37e4327baf77c6e2276dcf72398397ee53551d09a2a080aaa6058175a823e86f32483f46d583921342c8937bc1673467cf3a141374b7c5845330311cb8d75194a4bba09832ca9e0734659807438315d254da7a39d153a07086a4b01f810976ba32f3725572c834362a0eb93ceb23970e748079fb52f7b10cb2a9c2f50a181e9767ac4f50e35f1cecb95b3d43652fc062bec472444b70f4f7c0c24a627160c7239ab5c59b526ff370a530883dc953430f56b568cc74142b95966c08635a2c69759fbf96e2e21c618cc1117860379d04ab1959039c1a90361cc8a833807eaad96e335cb74b3a62828ae35966e9a417d3694efbc8f55367bcab4c2a3a42135d022a893363837b4aa0109308c7f70c972b3209b5a2cbc92b21ef3f96718692efeb70aba92098a8a17a5074969010aade155b87b4f8c9521ffcb48dc575d0f60c3fb2b2fd12c3c4ec94438560944862653480b3ab657a4920dba893a5c9b138e86a98e69bb71117e364c8be110bac7e7652f643ee9caa3a91cc41349a0d1065e8693b52d2524dfd52a8c0902b6bb3e76eb898f036609c3bd1e2c6bb9d537a6419dbe068613814bda8359a0436402fa62443363b901230a523370278776fcc70eb10a08fabb5cc04f4b5c05e4c64b8a49950606b2f968a0785573c31274bd019804133ab1954afc98c30168a144ca182b372334f73ae1e67068843953980d04e054e9497241d885c8e2053beabb92e00a2cb4cd99b3067fab0aff684723773645e4736824b4f849832c369676493fa85a021fdbcb9adb49fc0b8e51710323c6af5b542af7564e6f706a40c6a6cf66239cf76560457dd3a220a35340a03a16e6385494d59e0e6866f8a0b8e7d09343706706f184ec126513187b6835a14b00a123066431b309d648ae1c490f75361c61467fafcb54649ab88a629ad6f39492d7b53980112910af59135750487003bba83cbc9ef137157cc48cf651415f88bb693b9a4b20004043a40d9964b6458d89268ea8155d583c4e06895be2737dc37729186abbc047118474bbd3a19fe648a57a0c5f67f226f858ababb73075fa9941a54726564ae31a42b4324e24b6a594332273d9bcc50055a94062f12454a8193f8085c4ffaccc520613752c74a555029e0532b23c787d924efc0023b495a9007b02e798317f7b079229c3f9fab7bdd48a061468c5e88c528693d62c8dfa7237b1c28c0cb8a6f8c3726bc38774a99b2596389a6a101d543ef1f9bbc36567ea4b74cf4a82ff243de5e2a16a7a3db9cb50a4f6bb639c482859c44f62555932488c0112c2a53c614ab7f45a7916541824c0ad67720feb0905c736532547cfb6f10332556a39c2632e549195ab749192353d337ed38a818e82ce6dac7251b973f749bd7092426c7a2ce4ec25218c0439bacd9772cc1fc740588c24e29c750a8c3534f60c8c1bbeb7345d52c70ae5764d8034ccabc2b6abe928ddb113afd8a007b06d081a66403130df441dc85932103589eac81691fa66e12682e014a144140cba401efb351d4c176df724113acac4dff07a28da7459738580d5bbb383c0443868a143683947a114d9237518cbd2a8312006405c5c5215412c342ab7230524a56039c17a4e6b5b9ec0259c034ab24da48b1c09b7e7b6789edb1a6450862c9cb714d8575bd22b0ab333b51a466c70a3e3094bea952e7c79cc05c710ba64b39d0abf3e70406240816bf617c1d6ceebb5660a3aa1587685e1b9c2afab0fe7417d08d748e5867590dca3ffc41699d977f3549d5ea118b9195f187838cbe1753ce0b6b2db4395c310f0a46a39606a322e68dc022d4a0d6840c77e2ebf4b602790896d11ec9d18a20295e16f32b200498e02e16db3ba2e434de9510b0b520ab7e7041a2e61b513b0 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 82901f10858d3c07a19dc72d8768398c85e93b246d24c5378201c3a43bd4b356 +public_key = c6e4cdc1f4748bf11b6fc320873155e2042d52d17d1ef1b05bd3bf014a87b910bde5cb72ca8c6e9059ba4894873351aa89a4638f39bab3301eea98271a49b440e549456b59a24b3dcecc7bae0530cc7286cffb7549f1a07b840b6eb4b9be0a72f5d61ca79456b8542883d36c72e98989c037045c4b2d6c70c6d31f7a366f23a22bdd13921e01843fca6e61f0049b348d11f730d8100d9447370896171be637f1ca815bac3a8b39268355523140051ffb98469a2b84ba055434371a42554aa4344ba710f130256015cd2fc7b9188a9e0231745511426168baa23372111bb66011a19442a7c87acdac44935e98aa7e5237f6a9cb18370654ec4c0db57d0d127b186396b55187c19bc6bd074ff5e47d789a6cef698d6270389e7a5fa7381083f1bb8e3c072b832516572dd7168e01dbb923a02267aa5a3c86a464b6583ec726f2c505b4a3a20aac469132a96a967f20425b17094643047319a2a459ec1218d4cd1c87cbbae3caaeccb0a152876bca4f472211e8564d9e945579e99506bb6dfe0b13bd42c9195876356811cdd74b60697a6bcb1ab918a66fc24059b72076a589ed33b462b2bc593370c4d294ed7310f06b860597b6a9d189ce7aa69f2b6b8c486a22d3991ffa4d99d2c8b6395b83974f8924b52eb153bc492ca9130c6fc9caff5785a71976ad0912e7a76ce8c99bbea4a456223d296568b4f257b594cd788590a5ea4378c302cbb30de14c74aba372c7321d78341070406e8c2285005d7362c32efb880fa9dc6a4d339232e57a3036aa80549167a886ff14b2711388ee81881b6062dab241e8f65ea87263c3c96d69b55fd338b28e2b9261848d215047303413b97263acf1a7872675577c341c8216d2f766feb96fdfc9baa073a82aa739c098a24d644f89b3b980a8a3f1890aab89a181ec87ec771ce7d5085cd87890777bfb49a2d97639f749497a011ac66a4ef3702c08b4325c1056a64907ee6b875883326751055b850ba72c9773e89b0fe4382ab7cdd675cf4ddc199910ce8e58a2c6475f01f64d53607e8cc13da51916d1b99e590abd06197c8dd54c63463edf935b44d2c1ef54076271bcff558f05e47880897f5b7c6e4e788291ba65b175201d7776712808827a48eea6485bf0ab3ada7ad5a50f9fd12686e6a906b255ecf518868844379257ca51c55a979a7ed72bed30a7ced1908fa26c119abb5ddbb4490b36cecabbe032806b0719a6c3cc7f6a9e55f63bade297226a74dfbb8087911f1e4a3327e0827e79a11b6689faf17120aa4fc4a269f8d92f00a012f5a06840a600dfea9a73c6a26f193860698989969bdde259d839a503e24572ba767e56435025b4ba9a6ce7a8c53de49eb0c468ce0597104593adf72798801392c2a67e3ba77d440a0f330825a490a219423720a8a734425a9a7186d70e87045311500600201a070cc10839a907243e2d08b55c344d40034be6545c48b3b44be15d6a7a3ed7e071420440329049746376e03a9f2ab6bdc33b1fbac28eddf34ec7e24c918ccc866579347a34686c1af4236d520199b3960c72067f84a837be772405db24c80604c6e438b74c51e05c9a59e42c174b5d5a910156d57081465d9b6c06c8e31081260c74751db1083a537221927a2f1eb9c6f25c369809c643f5612c76711b599b19247df4053b93887e25e163dfbb924491804ad03615f202af948fcca23458d0171c40a6f3a6a76f0851aac2adee57811ac66d93869853240744f36ddc2bc8cff6cbb83a0af9555d0d649d8a120e45853def02651724a9dea4a3a335b65d445013d48c1f260a330415142caca1a363fd37502c96b0b65401905b71e823983e7740f5d0bae718b42ad7c3ad7bc05195acad0a166d326c3a2344e7b977447143c7ec6d5bb527fe67b7f7aa5bfab290ee1152a9a541711c20b0045dff2a20cbfbc526d27bed255ce1b68ba5e876ae546b3f7691cff346b6ab4b11244018d729592188ea3808f085398cd94d3f4c2e55d4915939b08efc7442c643ea71579ef0461d3076c6d2b0d7c580c907059eb7cfb1c029251cbd971a4d8a0053783a128e5043918ba68ce859b211cd70ac81cd9ca732323fafd8c24155543b711451511e6cc5c916931f61285d3adc932196bb33f16670a60da2c6cad049c6eff7922728a0a3247936a3bf61735706531c9dff42c1f364c0b000a7dbf16d6d296c3f670a539bd9a372e74bd06ed431bfabeb668d6726 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 2a5cd1c9cafa6f458df60e27bc5fdb21432f31d5e3fd9872c91c5024b83a4ad1 +public_key = 46892b31e87d774656d9ba61e92c45d184559c08a4d9dc6949d9b8480c95678bb0d2b804cbeb8403dc09c1590c33d43fd1ba33be15912993a3ead7ba134828ec105bd80b79d77c58c1299966809d3ae74eca16a2845bba6723679308918a7612ae28a77328a464b9cc5a98171aa01395c39fd826c1286c7ae2397af9fb47229ab447b854464b039cc10bf21c9f1fd85215b4971560316330340fd3882588884901b7c531911ebc0354907ce5714549fa83ac606addf3be6670cf126980b20c311c75796a92c672e465e9b400089c8bc336858964a0f7959945395809b625b8c103eb06090e16b27dba47f5a4a0c5638f202c7327d53bec5a4d80468715f45266785ae7033bfae3ab9be2a3e420445141110bbaa558037b69a586626c1a865c949114740e96671155957ee839c6003c99a9917e0c713ac95f6ff25e6931b1190376ecdb97b2ab1dab28a812272f1c2a44d8f0862cb2538c9a2c211c1c1da57f7790a3a4eb7c1b86bd5cecaf6952b696d069f69c36c201065dc6120cb16242261b5113328a79a467a20930c454ae67ce67e6ccbeb3965652c721e2a3b7d359f6e7c9cbaca4f3231c61f776acccbdfc218ebfe08b2a8b4f1bf92e125184ae6c205df39afbb78076f4933117ba9ba2449a11196d1362d3db41db2585429ba35da180c02c598f7a02d4a47bc77a5d3b12ce9bb928f74c7d3b9b642a0860f159066da45e94ec6651c13efd3a802246307f63cf61da2b04bb05ad3b61a2877c32708a1db42a87b29306272c59a406bc8ba1a074b607f9b44bf657a3284b96b1b670bc08fcacbb4daa3a5c457feb2289c2392be8d704b5b945698b191bdcbfb3ba3381a7bda7a56a6080ae9455cd08e0ad405c0d770586c396a75bb3cc4b77530da82a810b22a8db14bef3092d2b5cfc721b01aa4aa1c09c94b549ffa2369a9a11e31c2a13d1c7f5c32e8f424b45669d2a83a40bcc27854bb237fb62fe051c032cb4e3c08856457a54cbb7b824c64f8996e9764527265ea5dc2cca62519736cf95421ea91bac2c83a35ad59bba12069bd60f550042dff205c4005732912336fcac988c66e347729c3c7d549926af79887e71824bfc87b7db659f4a60bde053f5235602aa74bcd2aa4b46bf4ff28105773016c4ba48d46508e583b8a09809562b97a66d1561506f05945e2644e83272525a111d51c8ea79401d59a82da103196a9a39bc2e0e651b24096bfe792039292539c278b1a6a43ba6b05b6aa05437bcbc9297bbb1c81596007c92c6baea538dd36c96bb9e781842c7eca1e2b71adab44ce6248a14552eef1cbf8580c53bfb21a1638970d9c0d845be06d9c8cdaa7f208a1259dc607cca3a457a7ceb62448d790686cb096159903ff14ee7f421a1f63d49077c890459ec9458d4c94c476c16e7f38f886b6a50b58e875c00787835b806181ce8661bfa56a0075a04b4043b8aaa92158177d173a0d272b0e18af7bb5960e6859c9065d30345902290b7cc85800c9ffa641b537530c6167ec2d233e5f398215370c0a773eec9bad35b6e008a05454963d1d5cbf9925ade851dd9a7090705b9ea47427e1615ecb0c542576f358a88b2f761b38951b9d9c60cf6b03b95a84f9040e346795e30cd44568c48176b8a578c7f338e1565bb882470bc2c48409019514b6b64a5c464ea6e61524164bca80235cdb0a9775ab93b659102e076821a4c13a72428c724897b169087f6abe68b5ab399a16859349dea3a539c4de2ea2c4c1b8fa766c868a88a0e54042fda68dfc2cd7a76322dd8b38e367a46ba3606694242d326eca12d78fc0a94148acac93c7ad8ae4344363a20a23df90ffbf8be1d4c931dd3ac6bb8ced99633811192917ac5d7e2667a43ae366c9736a0461dd11a21b3b699e97f5c35b414fcc15508c846fb5d4cb0cf252104ad109027723dc844577411913197ad0d497b28b740cfb816fde3259ab56e0dec2ebec60f1dfcad53c64d00878dcb981f07104e76760ee635c62ca233b044632698bc4ff26ff1b6cdb611c882f13f0b975ab23b1dd02c7d12691c9835a6a9f7b3f5e84287e8573cf32d63e8922b016636da3667a73436b6a9de3654c924a5d83708450289cac756fed9095b13b5bf48a6e0f2cf3867ac7e131c8725339b4073ea7929daa66b874aba29d20a7c4587bce99611efa28a60838e582fa30c6977654b872509dcb184e6845b75c82899be9025c351c192d27e6cd58f +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: ce3eb23bad9f43d6b1a9763e5c7705346f514ba7bbd5f541ed0df44cbd91184e +public_key = 242ba6b2314f45a0c471018a05b2086fb5331cf2b5b20946e4036b5f642f0a53cf8916c2780a929d1314528492af610d279b0b6d22905301c4044b940d2c49a69219b1c0ba749839d293322bd2bb2b31a2924032e3b64ec0525358c31b6a08713fa9ac5f2318bf291944447c0bf9321457c358e89936a90441809707f18d56d11f9223696f7a6d41aabe79fb85faa097fcb6c5993b0db7e0c7929b05b23747c3408abbf87efe2b5525ac8353e8674e6018214272af6b884e495e72d007f40ad0ba5ba2687907ea1856a068c9875b517f5b8249218bfba64ffea46e1254b095e56c98497943f7a5ed12c8ff680b722abaf7ccb7b5c604284939f4175f49d1c86f827955a2412f201441d2107cd720f5247b85612c2b400d17d38f1b8a6a13a12d46a7cb2032ae65d37faf1920e50482e43ba04830aefa90655e3c47c5168fdf94b0428870dd89679af12625592205856632690aec792f2957b30cd09b90d80f1a876f33774c45034e36a0abdbe799ca932430f4667978cf6624b136f5957993b655dcb643a998124acd872324b72249cd130ecc64c75c2abfc40cbd975713e10a7f994a05cf0130db2549d037891ff777830551a30c3422a3971f2925d824a1d113c41b33b765761d55c93a70833a25b8268b8aa880ba0de4402dcae88f71d7b9de5682ec66bc32288d957593c9778e1d61a8545603d030c5c39a51338526b19967e82458c7a6b66b0a4f71f273a084648fa03b48972c6925350e0c304399be9584498b00c13d000ffaf0681ab6332ca7b2e9d86f74744c3b29259582bf1295b2aba005ef563a1a28c2c514b7d30721429520223c5afb0328d099c4e032afabd7a6d58b3fd61a42c3a4327c617df8c5540ed681a81cb70dab0eaeeb53b62bc9e2ba3640a69868db5f0dc32c341a900aa25d29d17ff3e71bb686a67c8130dfa28f3c5c67bae27056da550b218803c187d655b85b180ca1427f580b69d20a4fe8172fd5d447558c025b919bf6eb080cc8af26e06ee50969de26c47a263d4bd16c39f3440ff611f653cbc6a281debb0a753c4f80799f41094b1ab902bd078e19e018930aa00b7b14a22948e884c6a39c31acc9bc1f4c320be20ab1193500a9c07d2829f8d488a2e1261be56f38225a8c4a793889b2263814df55672c6abff05240b2826f2fc8190718708589580e084d06dc5102ab5cf0b71c06d716def95781673fc2331640fa8990c262589b5830a83595412dc91595d6a21b67578ec15aa4faaa0c42611ebae94ea1c342b4c59212593fad6c5fe022be870544eb473df0d10c9a1c824577a91bd91718d5671682604166413786a26e541ee45b3ead55913b317dd1bc49620a403088bfad81b0c7eb6b05172f86003b70e288a1e3b452655511396eae840e2d260a7da07f35357ea5d58bbddb2525e315adb0bb3cc088922367647c7024647bc9f71f8e5a7a0733ad302994018502b2c41f5f002fbf84a0bd9b3d1e24028192572e35c04ca554c05817b6b82a8b0b9d4eb2c3c1801a125b065f42849f66a00eb623cc9810c9740c4149745deaa9e262534f310329148b35146606e751bb8c4c38f56be3eb7c2060172d0913003d98a09a425f663d31ab2d6cf06ea4e2b2fba58b09034d77c249b7a80488c4368f15c0f0c745b221035de253258004cbbb70ea04bbb0bc32ee910e4cd6be38bba880a2471aa66fbf04aa59204835497d042153def763f9fa7d60f0731f8041935523bd2bb1cb179724669403b677c2f229e386357729992edb1e19c51e9ff41748d3570630c150438245eb053218aa162b0a7e6c6bca967ba117525d698f2e56a9e0019aa771888b08146f900388a25476ec0e33631ab9c3ce11c8182ae1cd93e65294591bf0cc686d874abd7606d208582c5b1b63eb6c892542cf61a227ac128a0c49b4117ddea03122539ee1f7c392b19824f8a19bca22ed69598af0284dcabf01f79e0829cd2c22aa324a12a0a5bc2424563074acd7337d55498b3b918c3dd2c63966149e33ae4c819557546a87353d646c43d47b862613bf039aabb1e1217c885d5e6b57c1c7774f1b11b860179bb26885e03bf8d53709daa6e991a5629b83f26a2de495680b5644b2480a912c651c83c366c2a8b5e58971e45a40e39e1e18263d0709b01b1bb2c4b6b36b6fee2b50314595a44856794a5c81c7842fd55ff0fcfe969518b4b5168a81bf8f9ff1abcd3141fbc6231f72340dc485238e1d64a88abdef +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: ed9a8144063ee3508cce3e15c1d2c830322f875b2c4903d87b3619cdea6f2bf9 +public_key = fee9387b116849e2bff20348c7fa99e9375c9f72733432cb377b6f31c738b985472a93bc7551184f5a0f5cfbc05ba218a6d0459c035a48c522260876dcd067355773b290b9c582aa5953b52d2305bd68bc4940b162da7e61a1b3fb8c7b62456bcd8149761c731be06de70c76b2e1b52de23a93f2c831f9ba6fb83f99981fcc027219f14999a6392a10132e1c3e0cb25ae9ab83254075f597c2cca81dcaf950ce450adccc1396276aa241c80b3398b84360fa2714b8fcbb8376960384c40bf5a442d3be05aa50523bbe469a284aa394aa858ee9630c4329773724c68814c1964559a2eac685a05a4db71ec9e5b413438b6475ba43207c5dc57e103612568567484243d6929d267abb1cb4810d2205285959eeb6221934109aa1afe5d0a9d594b9cbe2804f056be3da764d5c6572bb3625e900c8a0c71d6ba9e6a05bce3970ad024ea0449a5f76001dc3bdfb92a4acd64d601c9acb85acec20be51c83f0cf933040565da82a682e80eaad17462cb6783ccc54ae51a81430eb79069f99142e4e21d7346aa61d6168016304d340924aa5185b40874c62986152d71059c38495163c1052b31c9ba23128ab744a77756de8917db154d44c55a1754b1e36a08f5570b06b31a481b94b6844a5b7945cd668ffaa0bc42c8113d5767ef4ba5b458838a1284031818aac4395c9680b918a11e885efff42a529645f33cab7608893bd4b9120a546971c6cbe85ae6a69c9b44c399f99569582c6f1c379fe35eca0a38f31833fee768f1a2452c30b580039b0136c23042874411c212c40e1063a6ce487be03915ca411c7fb70539c3bf92712c232cc8bbca4e7e0485f2379546fc103f4046ac1c950023ca4e518f375b05fdf6ad02a9a1f7321ddfd0cbc047b62ecb9a3b5366f2dc074c9864d2b633b6306ba70a6dbe61cc3b326b9206945fbb1a0276c1c10c86ba14a02c27824f28a2a23988ace2ad2d21004c012f97c59ddb396fe044043404312acb67c105b673a6b587dc11135c5de8f99d67170f1691173e1577532545e475bdfe44607a593bb2a2a8f920ccd43976a3471417e98283171501ec85de28ae38a965c93bb149944c21215b9b43607c851744f6709d2588ebdc9cc2130456f10226d0248e2530a4c267e48037817c262c85cd4fe98c2b17784ac410fa8c830609d05bcb59e76020f67747532577c599625a416eed32990042a453d94aa3dc76cc024a02505f33c0b2ef08bb18070eece12494a21350d1633f8c19a489369324797ef350d50981e03a9a828022f1d0649f799c66703db5590eea296d1f121c8be8698646b9b76a265fd248b5190602e53a0a6c9285e68970127d5c93c7e1b966cd3a79a8766767b6c5d6e461f0e79ae361ba34365a2ff689aa91132fc77986a04e0d87967bd72bf962c91aa8897f20139c864881060073021c944295e2d91aff6240cc8197b0951d3fd3c1be1cab23e13767e09c408b2ea2b0381f39090f1c0ea6d3384c83a16e3ca10ba465ecf76ef83717442527e0916335fba4f2f574b5da61dac6aa20bcceb260bce450ba7d9c4fe3d99fb3a681e63655b6a8b226d787d3e976a387cf68436a0bbb2f2294613ee07eede17d3739390c7c3306f9cde8a8cb2a9268113a947c3a76e55c31be56c99f189fa1c3b6f266b649a30705c5b70000a9be281402eab0c1504e691b728ca634fb9c2b4d582bef3110bdda8c29229cdf4026fe5708d166cdad4a7058ec60e5925d2794c0906c64903a95d19bcb70e50e19a69bd042c51fb098976c27c97b4867c50f22c9c56ab467dc45110204a099c3ba149b53a89b0ba0d05066968c578182628688664ace5b946033b82785eac501650c35f5bd8f351d38d82b2c34136d90c28848af484682a948a8474a28a1f6a9a8031ab16bb066f141cd328d2d093951378642c6ac97d184b89a67e4586e081989b0750349686f66a9388f99508d195bce36bea703052a2a28dbcb7cdb925e8149c59a80b71c86a04fcb91d286c4c33c4b42188ffaf8a1b73b0859854ef2ec5045480bdbe50105092b742650d7b5aba02937cbe513500045e8d2260fd60a78358b995244c2ccb22963bb028221dfac564cf73bf2a086c8c348815373e7c8420ea8afc1b66a3f2274537546ebb772119169e67672498c25fa286fe996b9e523b668b89fd4ed4de7c1d2d19da73c68224621f04612fa2fcc8b1ea17922caad6b44e261b76cefda7d471120868f838fdc2c76bf95dd63592996a6 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 8eaaa8c0471e0cd24bb68c344b2c7eef19414c9b4eeff7ef1da55834d3ee0aae +public_key = 4a3c7390d732f12979fa84989253645bd36e39e317fd10ad41f61b64641f768a6365b14898641a1e8cbc76705fecd988b04317dbd9a3b9139fafea2f1776089295cd97fb02fb3b7b438933fa6649a9f7748a22b709755224cc4799082db49970ae9815b172ca80379d2a840820f3585f957517339894a36984c21c3380929db853bfd1638d9b82f4916c5bb9cedd356bc3f04e41f59513eb21558495c387bf931a1dfbc744a8c396f64c3ad6d16d2f662c77fa72384b5bb4f422b996341be1a9d94255477b6fa1c1199496a505181228525714fa6eacd3113e79585b5239f8622f418067e1f653cd28a2a3e0ca330a924fd976ab4974c4e1a04999cdc81740cbd2a164cc2bc384ba9b8236aad947b07ac5e51b19809c486e32aae5111d4e7b056f1825006cae1776634ce61fbd292e5ca4b0f860b751a90382ec46e881bec0787dd54b2212934c37291b0827cfbeba5dd720155b73873bb8cfd3260b042670045423658348bbc24ae9e264fc8a073dc4c305a59b5eb91aa0303d78cb935fe5378d858e78038244769330c94738f7c13cb2b64e9a12965615d7c10d9449a909815e1f8793e6921637d60a19620bb536787956bd2082ac0043c67aa32cfb711cb2e70afbe51ebb710bedd8a57408599f7a60ed04cbf401cb39bb4223338e2e617c9595687797c6acd0515d6465418a2f7528c6da1c872195c7f94a2a5684acc384b1f6b69d147c1a478c4af7cb084291bdaa823a4110100e04c283751235e33c4157b5aebcb756b8a63958649585b7b1f494fbfc5a7ae43646d8cfed2385bdd23eaa0c668f859ea73b43e4c9713b744ed43c34c1c535e840be9f1174b9bb3d7c401c1864126a6c9b95340c39c8ced60412b2636ca168159bba81818b02b7d840367c61ee228a7032a03458abc48917ae9aa0c377252d053df5503ec81a7db771a447c5a89d346b1e2c7f82074ada88348e05266609b9a42bc4dd788acdcb80120832d81523ffbc5210118837d74f29106dff7888ee9b69d0bc900044456d2607bd73c795071175d03504f4bfbf15137f5cb542f62e68198c92785b3b215ccea41a5aeb3ba57434006677e8479c562a12f87474ca605afc061287670773e023e9607f894201ca69a553453e32fb9b42e83c95637808b99c37dab1a46b83953916d180c482651ff6ba57f5a2cf34e70717101475cc00d0dc1d5b4ab6776045ff4a254a02194d152fbd974849f0b32f3c3662a13ce9d21cb4e7c582548ca8a66f10358b9ba65668728dd7b188e680a35bf326e7e154d306502a5a9d4502419ee60f9d54bd7405a7edb70907e27757c1bdcfd2ab274c76a039a3fc20950a8495b18524650a438b2733878a87b3579325419c840277dcbb8ccd97875989715d4774ec5b80ba0527c703a4f2c28259902320278617a2058a578ed8b2a1158a55ff799fe314a5bb717c7a328d94fb9dd4028d710985177c3d5a5732c5e01a4c18b31398a49f774ea8193755d363cc5654338b12c36a488fd40279d57b6a00899642c5237b2df01aa9d6ea8113223ae0156414fcc5ccf5c72ec2cc39f41b2bf537f3194c5bd21e87c96202e0699da122d5b32e44411aaaa19637989c596793287527a1a87fdf3393519b76d3631883f8a92c14c7889c219562a1e081217c1c8ac6f16a6a20b9381b3e61dc2a7f6a3f9ca75193a8a6077a304222b66da157575859d1cbc5cc978a6cd67623131e30f2850424c5d1119e2ed68ba0da889676a80f5a4fc92045c8a90961e2a9e499731ec50dd88a553e04507f485ca308cff5b29620e28255053b1e16a6a59c860a8bc749d66b2c0c365ff992a23536a43244e00bbe34d8259d53aac199a0cb44876eb5a58754bd0b5876f50b164a5323ca7a20a469752fecbd534474b585a3cd2961a75a4e8d492aa961badd9b9fd246859fbc612c70598af5074c191a414990ff337c69f30937133d665283b335590ac2a7849324c0b806905781a1032287ab85bbeb19fcb6582ad84dbefa6b249129f7e3b68cd93264e906e09b3cbab535eac0b80b429193738cc2540f549786d5281a4ec35edce76895676d6c4952eaf3929c22bab669901cf40397f8c04d815c1b7bc9d7f9080112a57f7c3faeeb466bd645caa009e5935ae0f71237e2993e641eac106fdfa6700a514616cf4fe16ef7c2f61efdf0c11fb9cbceba2e9f79c7156c209d732cee865c0daa7df9ec93ca88ab6407912ddf5cd3d8df99a42c3680cce4866e389ac8 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: efa2efe68712d67a330db585df6f768611084f03b68d1542b909e1a40c1c42b5 +public_key = 7a84be1ce6010cd6c481f227145294811061a218c7ec32231a57b98f7a1a6ae04b596b29163b2a52630ad08340556219f1a453b66ba5be956bcb952aa6952fd722cd69d5b41d732b1ec96a55e54da4a419630824b92401acd6195ae4047258111bccbab720ced0d3a6a3477f9fd98a2ea5180cdb709ec98bbed5af7dfa586f37290b6320d2174cd9fa6087b2411e9382e5f9a70c76658f4052a5a7870a29b68c546cffea02656bb5d2778cd87b49b0978d1f53666a206285e3706d662c3eb6293641584218c7d6e71f7d6374404c647ca9318bd900fec53cf44b2c6a8ccb90d22d7eb5b29b676ff1004f85a2c3c62b92e022b32aea6683a3b6baa0c375ac6755203630e9bd63f058966c1097d0b097362328a0a4c0b6c6b8c728f259b00d36ab407147b4d3506b4512137803080440c3383144c6679940a1fbe5c68ae69d2ef997a1c6837580ae570c9570d93f0eeb4eef239d77520c7ec264c871ad9545cbb14488c9b14d78e018950b0a0b99926038690a7239d7dc0a71924e5d368a4b358aa005ca984a52da81ad0ff681652810f7f739a68a5f22f15d0c9b4f8305b4d150a263521ab7577d949aa3a5d6297462bafeac19c882229a10a981e762b72ca9036a536ebace095a365403c089580a74711392300db05acf12b9231dd2862d5a048ba4117bca601c861dfdd13468bab7510a061c462dd8109beee782850c5f5f637425ba7a8a94cfb3d728cc5a943b936cced12c2b9cacb6a9a054193bede672616b8e49eccf3ddc9def4cb9caa1c251f85862077669a10c6a921b2f81ad2382b03dd3cdf6213ab0352fbaa04ca4fb8481722565879778bb56bb748cae282e3b7514d5a36e1e4ca5da0554f1acc7479cc698cba82e3c1312735ad4e888f45ab48db60355ab4f2c692b91d256271c3d4cb8242227a7664350878c19d24072904055123494b066200f5c72c1f70c63f69164f80825656218881eacdb7db7d13c39d3cabf0615a3f419beb7bdb1b430e20c187bd64419888c4c9260b6fba8dc2858b4cac3479b7b1fe2218f6134c87c09a1f36f1d790e1d1742257203b5702d844518c525338f292e7f458933e2a54a34ae9bc5be7b836d643b3262182fa39a707c1681d6052885eb3044ca99045c6a04c6afcdb6c6f5a5593ccc3143172ea8aa065b38a9a939908b886797969aa6a450b3496a62d0578b8b291bd21c1eb18e622201d3b1392eccc65bf38109c51b4fa310407b33c5478860732ff3e6c15c442354f9ac036257337741fc813cff5829632a35079065ed531cf476823c5449705c59a8f25abd3031a0567cd994159fa41d7359309d77a4b16ac758906ec917985c0366dbd91bfdc357c4c8715ab151d944c9fd699089a822008ccea4b88402f6b52a9082c5945a4d902e38a99751e2063f5582ad6169d2b71504ab523404220984409fa5c2786b3484a45a15a51f4b0bc5a43802090632cbfb9b66389de6c69edffc1145ac03c26c6064566ba1f9414b9b7279a96138a4c6e88618464cbcc54198e5a7c1cddc7b58634e62560ca7333295d64afffa6170d490beb922e78022bb64bc8eabcec5b60fb92b6b47bc1b69828769fbb7e60ab5e06b47c9621cf02a745c7c4dc8c30af4ea3991433b383b656645104fd7c850656ed3109cf50cc39b4a78895792ee10706b81bd47169bc5c751e34b4526b6772a66a5fe7126ad5470c07a381a144769d13b5a949755f4173c131dd416363ac886a15397e381906d8a27eaeacd04a402a789a786b08756b007a02b7815553486b705a2171241e9645df11589114f08e4c12f2b2ecc8a8853247b0d722baa84081b65541b293b83ac5045cbac4a96cbf463a51c189ec84b3d46e9c7c5fc0f05c4c114eb9fd752a5b8f14faf4c0a25368cdb310cb5c6ce5caab478f1bd3ec865d1d8b6e0589b91560be3d387670cb11468662b556d8b56a6921644ce5007451b507ffc17f2ab238cd45f6521cfb41546096607fa9552ae3a0a70e391e620ce638a8cbb4747b8eac7dd96824a571ba916532d6432410c3de3f8ba836977d94246bae87bfe4ab21c783baa781e137016efbb7737ea26cb346461245a08089054500778482cd623a797490f3d776d75775badfc5e2137ac3f5431a259a06d085e3644c71cb00bd18c89bf2488ce89585c556d687eb84bd988a50eead7f3991fb1ee633cd1470b342c1fbf250221c8c36e780e6cffeb8874c8df8e83b1877a1057890146f0b8b3ece187 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: ced2e5ffc24a8ace3bb2108739af5b8b5d426a4bdf3a79276b673d9c61e1fd13 +public_key = cc21b44c8b16e571017d54116465343c33312a910e75b052651642bbf751269c29d9201820e98ef4624884a41e96c33379ea23ba7cc330c95415dc9f65f9ce9acba37f657efc680bdaf2910493698592259d724d888450084a91a2ab83e6533dc8bbba4c179787b9916272bc5cd1683059545c4b685936b1cc94398a57c61a9986e8c968be56ca5b5b145286a03ef118355cc773b8ab32d99c5f031210277bc426ce94054d2e208031739f631c5dee7ba26785b2801a6985135c0d0bccab3115da99312c15792e42c3d77b6d1b204a2b0434f71997f2a248e0d824b69800ba7b4d6e951d928179294390ed698a71612ef7f004e08120baac91534347a33b9b1c2839d67ab9fc301d8d739aa2192363709fd0893723d80d8245182d5c794a243e5b98ac1917a7b4918fd679c161499890d20b75cac293f254d4b649e244be6a7a369982bb2921733d311a9e1b3031c84d6bea99ea7c61e673ae54556f28327312eaa1693c6d0a02a40d554329a0af568176efb2a24130cdc3cc1a5eb59b462c11f3dc0a277953d0dbcdbe37becdf974771392c5852d2167affc921eb34a500be7799177a027ccafef449e8ad6a5678439cf331f1fe1980dec1e355c024ac8564703130b11b7085603193bc8fec67bc351c1e7b74bd2fb9d88521bd2b56b09434a74c30a7717c6a50a9643b8a84a16714f345ad6bc6b96417e917a0b4da309cc00b066837cf0a7a7c7ebac8b652de0c939e0c43332a26c6bca5b6cbc4c0ab44d094b2d7fc7cd5bc6941373ca62c15d68bba360111abdd0581fe3c74db8485dac885a434e4982a9ec987197ea9be6d79ecf9b1cc3fcac2852bfeb233c9ed3acf195ccb19ac78893508ae52c833459f090545410c70667087ecba1e91c5aaa10b305a89a4e008a384c275fb6070063b03e728f6981af589265c02aa001439d9bd9226800c6755b2193854cc4081ff75093c456c13e87752ffb73c3d60ad63a0bcf90cee99c907232849f86648af817faf97545eb2ecdb58493148f4b14bd851209e48a3483593343423affc6362f4063f5a464da5775c0238fdc71c41d4463421462f4996c5802559a6b608c89a6ea571608b85c2541b2e0e29da108163daa3bfeeb7cce9a22c8f02b41a7c83f97379a9224eee7c4635181b28c94be80adccc40200c1aa814ac6f68cb71ab94efd024a6e76bd7e08262da657d71688fffa783d0cad5c8c77976c3a85aa26f0856f2550ae899672ed21ac367671c05332794b99e336886958cad0172f117492db09c240902c2a16377560aed3ea41485282f8588c73e34465c705179628be75bebca3871c888cba31b5a7223c6ea0875f1b7374ea3573916c1120b5673a83a75a66a4c396e2905e9787c3f9332a78986051d28052238c396c630fc248e3120617f411cd7c6e7b54cc96bb066a5365a47a458d1ab958a82d78a3786048ba13476cde53cac7f8345594389a0070f497b2bf5309d37413aa637c6da466be685ff68158b0d26dfc788feb510c30ca1357791b93e12db7ea07a65235dc7198c9934729b5593689a5c64214f3189d150b543a508569c5715900337176c9a6e78c24515e1821b8aeeb7dab9256c303283179939041122ae01d9c869714eacfb8842ead0b945e8c1676aab0e511cd4f74a484dbb683fa2dc3ab06bd643d8c6122fd37382f713c441a133c3006236826d9f9c0d8e02f0eaa27c9a2bcb671168b98cfe85c77ec608f5ec78f1b5051d16c4c83d8c0518a816c671fc8f1122ca704f0b4a9137936854022d5d838d5c13e197a3ed7f225acd1b6668b82254ca749613b11484a724295ed079cec2914bafb95879999012a4818e77bc585541e15ba774a61c0884e49482696c11e549c9aee03cd5acaa6fb2c0277216eaaaa2b0275af7829c249d5bfc3a775a133b7d7e7082f31b74b218d308939fdd94391d5a1606bb73859352885627df90d25d2c0364c60ce733f80c8516fa282964bb1eeb84eb87540cb205967a143d7702b16a282ad1a6e79a2c38bc087aedb204eb55451435563195f02956f8e1866cf944f68c64544e93478da0f07db0b71a27e5f689bd642b663a6b55da473993a7678108e5e1419ebc350c5abbcc0a596914956cc50896ad4552a48241f093dac480e51d740c019841bebb33dac2fbd05b994f4e3bed53bc919436b1db8bcd706d7eded090e0a052bf39bf3df83a8a80dcee696346de2a041b16ae7429807ab162ff0 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: d823bb23a3760eb90b032a46aa51eca400d1332b1c0edea0f9b513bb9ae91214 +public_key = d6871927e907cfd2773be25f5dd82aacec4b6e17c5a836388b18a3fc31b3e0577170d3a48ccb23af28280be87a51a78d655abb19d009ac95160e5cae9ee4275c716db381ce11b5abc97a69d59a7563476b047685be82c9325908194529afea752b7aad31cb12f4a3bd2978378adc8fab179a64eb9017eb3952f8bfdde986bf897ed01a7eb3db7e2465c611927ed4ab10a9b5c9597546066c6045e02f81227d944c0e8af11254808000294fde55596a5acd4403c6dce6296bb043a7a53d6586825c74ae598a72bf63629e78b27293239d68814a8ab4b48b565358b3b9e903ab559f85f565ef701494d2178fd2cf88688ac3eb278a69a97762a517259c9aec4d9e662917c89c42286f3682cffb555ea67a5a2d4c0526e091e61843bb258bc3144912a8c268044b651294f7a8c030a799afe87fba15a43a8b0ff2c165f117685ec9c917fb3089b4144dc2893e6a9ff5b203c8c49cc114194c1ac46fe095946b4529e0c274759f56f5757b3a36f164504b738ff648885ab589d4966c7907806215a870ac5c08e7c053554eeec7cf3a6c0a4f970b5155ade98a4ce91818bc8424dc4653060c7ce0e2b52cb5a5b5468700c722d0879ad8da96cf5292bc92c518c8b8e53248ad70167a0100a322b803031a90648e432b0ffbc20f10443f5e7a6ec4c1b00035085de11ba13313d926772150bee7ab3888160e22497e40993afdf18a21978efd2853f9234e9c5b0c1d6c40c2619608b26008a5c03e673e9ed59ceb5792152297c1fc02b00333abe58ebe816b8469654306524338b4a2732a9e66624147cb538245bbb889e8aa9f6f17055112bab865c700d9a1c642389a426050329c54c865dd425a1d375e315b8f5ddb805c0307bd2079cb98768f511e2e6715b70b14b14cb1d1076d42da55d19a115a09760342b2306b6f52a64514a86407fb26375490dd2a1f41793706e4a442db3da7b209ad32558bacab730245d3fa3a30a88ef77a1163c16f60397fc6dabf315b44721040265290af670de5ac3e0e84bba8b325330750c8a63a3f2a39f1bb803d767cb1232d79060c0a41a0849759a0c056bbf556b4e9bc24cc54dbf62f207a56fdb292c7bc6ada93117699c6915c70a4232f022882918a0a669a40224b11f4903a0063a148d76d69d2259d437f1f488f1b673a4f2501ab2bb104a12d00e48541e67b7c4493253a2442ab4aeba0280a589f7d4c2c5c915459f339c153ac184c88ee4562bcc9c33db2972dd5a1c3138892c7769afa0440904c13b960cccac988799d1e369887f46f6a30ad9f4819c335765a7293fd1872b13cbc309a32a6a5204df8a8beb1c34d8c690bda52a6623678652bd9d154f6200d5c0cc0a1d8a5c12801f7a359dad9b778dc3ea5896118670a85559d35e55c97790851f1cca756008c057de189788d1764fd39c67bb91c48e6972ce803b5c31dcf0b695fe1b87b02a9a010ad131b2286bb5c2d8a80ba536f61813a81f3ca08a305f07a4732f11b6c447da0a9a2e5c8403fc251230c024965406bc18a483469ca296b57849b49fac07d6626da363c49e7c25348a571ea44d425a428d33f2841606d9c404bbb2f3f49833b29c3c9705e55cb78a1e097e05bc18ba8959047255266789d8791a5a8a8708073cc561e943b6b635b4f03bcb5c8f59c95a3ad74b8573c476459f167c66a118b0637be42904008383ba2a5dc5349686565c0352e36b9334d0c1bcb9c88ff3c3542e5c4c352a770c4a3be9664dc0cb840da60e338cec5561c045254d834c5256a7bad6b0d4382024323bab12324432195e89030408201d3d1998c329251da486b845ce9d85b12e814ed267b8c3a5c2e55ba3cf15ec6603debc082a80b6a5e5a2108babb8cf62aeb907aba8215f63c7a323a154e3a0f7883aa57547abe86253f87709540216b1a6408a0ccc27887a8f64954e98ec900921104646bd128a0b3ce919028f41a5da9d55466988132730e5f23cbf70484596b4b647ca46d58bcd5523488e193118cb4b055579a04a0606454dd8b601bdb88d03ccaf9a543c27016987a5176f7a42bb14bc832c965db07d9ac94fbc56c31a6536b65779cab9402815f003299b6d4c8fc5470287c3cfcd5096d9905a475c3bab67e673b0f92b177e7302d9516a1ab46cc1ae0c2ba478feb15c03a118625eb8518fd8dde90364b890b9d6b97e6513c11296dc3319fa738a054d6bc97598b2139a20f66df626a690254bbd5211f3de88424 +result: fail +ciphertext: +shared_secret: + +# Zero secret and error +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2 +result: pass +ciphertext: 30a0fa10e8c0f94f9e11093a8416c0c21c8d76f192b2c5bb48149a874efa1dd6ae457ab33900dfa4e04b117396c5b8cfacda8d01bec1eb08e83c11280b885b8d883344df96cc32edd098b05d3ee2a30081fcea4cb7f6bfa4658a0f3cd3299be05ed2ffaa90d6791469d383bb2f07d61e25d5739de0652980a072fb5803c361d81413004161390926457e7384a6d7c37a7b0b6ee33fe95b6078b3bf085a1b080ca03ed6d7729750117d41880c8ef0e402bc15bd81b3cf4272cb84db3f48682968f683ef7bd5c07fa0f85b6787e83b9c6d9e665befc7d0843a0b911893c9699d99c36c8a95f1f61edfce6803eef39fb2d555503809289877a78ddd41b7f271b8d8ca6f01bb6a2262cc6b459488677c67fc2035c47fd20e33bdd9a81d279fb7f1ff9b5b8d3e000c02c68d590e637fbfc899c9fdc7a10fe7348e2bcf4f1f731ced7f5741175ea484c85f8304c37f1949980a0ec0101935f7ca9bbdbbb4fdbeed3a56238344419655dcd2dc0bf0a2abdd81fabfe56440f44c615992d1c1b9478334c199c40d4b62494be60d0d18a2cb1515060d884fd39e4856cc2c8b4030b46a00c33804d3d2d9b6408ab6a258d4ba55c52f9eb7c864f2511899d28b91fe9c1e328d867f404f7dc523c89ea66dbf934f2d231b63d5b4329a8f09a336554da77bd22c506823a69341af85a0561015c84cd1a52391ecbad57667a2a0a99cc7bd0e6a18dcaacab1b6c7f9173fc1b7bf247bd8e2564f74fa9d0e6a8a7cfcc5597e27d06962ef3f78d182e21a7eaf77c8f783f916b170ca79e3f1032f2ebfee0b9676806fb5ad881a6db806bfff8bb077bd1e0e988de526469e3ed6970254781bf0d3f1729958bf73f59da6b7ece2e7e3b7c3b558bb63825111422d7320086a34e459c9681bad81cc89db23a376bd620588eb381839a5f819dd826b13c060b48488cc857298b614dfe1e61b8684efc110fdaf72fe0c79d0d1d4de979a75a5f58a783fc074a1b0f3e5251cac2b0a798a31bf9b8e5c2f84ddcf2ba8a7d81878aae9c53ad2bdefa5cab9c2f1637ffb2299af62f382e4dc843c0e6c989c6a983d86675531e3b297ebc8254250f052addf07df3ea7a104bea20052cb7037e68b52bdf205cc8b77bb90c6fe671182fab394eb62bf39733db9fc1a18f307a788038d3a58a18e6661a74b4a2e55c24d42cb2824856138c1898630e059087837409612cfc8a7635a1e6c985506711c737ea7aeee42851c9edfce69500b34d15357b14867fcafd459e2de311b826d8c3819eff5ec2f16c6f6c59bfdbb4d9c63997c1e0b461170326cca23cda09f0c0f978ff75800ee67916d521b87ac96e09d8230a9df27626420d17842aac5e20aad404c07e1c1bb32f4fae720bda3ebb8652c5ac9259e9bde7b0430176ed477977116cdf18948d2e117be3a5bc996ea9738c4709b2ff9f625d34128801d696f6b5d0730ed935907b170d9b1d0099a4a221e7c488aa1b341a212a12bfb44f89f13fd33af275816b2c8a56b8a2ba19893efab7809efbe92453d339046e6cf08fd6104d8a487b385975eee673955e059bb997ebdad498bf4c2825355e5d4732e78d4d9288c247a5c4d2e53d5d1d6dcdfb19a82a610614abfaf61e982f9d17bc10221c3ea5033679407b7cfe22fcbbf9e1a7e8900b29b9cca73a8d3461586f78733dde42d12e9bf39d14735dd4c1382b3613c9bcb057feabaf0e90de42c9c16fe87c704c0b03cf324b4316653a9c1257affe86d5bba7f17d4973ac798e5a4ecbd6227b2da17f4eaa462faaaf6cf17adaa4b3564c0a012422480cf3bdac498dc9750a486ff54662135f72e23addecba2b49d85a254259dfbf2579a1be48a93a3a31045046936bdd268c2aa54cee82c4148ad281bccb8bf3677e3ede6dde20ffd2b61836fcd80e106c92d72a35b57d4ea17366f92743ac36b77339077882491a1288c8744a435cdcf21dce1eb4196e076b269d2652152500aa9bc2b1238e910400820801040002184000000010000400801840042080000100008018000020821041000002184104208000400420001800040002084004200008010420821001000002100004000200410400021040042082180100008010410400000801002080000000008008410000020040002080084104008000010020801001040000000104008210410020820040040000180100200008410400021800042000184 +shared_secret: c5aa00b1b6e55e6aeecc23499baced296d8576f3674ba6a9da68bb14101194ce + +# Zero error +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 2a2b8a9b681139477ce641c0e766a4573c65fdd08b74038ac64021fa53ab9e2801743c9cf730b0609985059bc12ac92c61d86ee425b5811c6e4b144f0ba3599d7bcc83ccc4462c0aa17c7dc9d55598aca3a48b6ab4479eb4f4584796c64d2c74c360a34c901f08d00d4e4cc7e70c7b816bb0fbd323ce96416102580ae89095d4cb5ae93cd9b105d1065402a4a2681255d0821a21953ff851c23648a849ba27b267c0e70558d54146031482653116570a0fb6e7a63fd5b0ea9212a920c43467740642cfcb53130cb77a2a3bc678572235920191973075fcc1e769480895bc7cfa3c4c8068c3907c8da657e656bd8572a54f80847683639991952ad7b978e49d0022c17adb021030c54ed691e7b0b738c0b7078442651b979c46b0786b45ae446f73b56ce1b64042f5b27bc470efaa8ace21afff35487aeaa8d635bc607908e3f00236c74017dc0b515863ae690984f56c5156a70fe97f72e913ba74a7d04cae8b14364e2baea90695b5e36344107835ccc4335552f228c32e861f21357bb345663a1b9d70ac37ad9b4a937c304fd887048b8364744536a443540b7b5e572522a8c969b8a45068622982ad161c5ca1b69f9084657bcbc36025a82cd416beb15f037c045371617a81bc9bda545628804e4cb0b9ab7a6bc959ed6616465323f9b861521cb493da674c579b6799584af793459a2d1513345e67c06c1b268930c6d4dc0cc56c93e7f01bbafc589e178491f6206f9c89816622b8d5c19795c7c3404b54404629933fb6bcc03f99ad2155c332eb4181da3d07c35c048920f35a7bac1b465545018b899a5248b53f354cbbe01a004602dfac254efb3bb42130f55520921a712b20cd250bbb0d7949db4a05f5a64797417158241ca40c49dc83186cc236be4774e51856da828a5143588d32cf17c7a8d44aaa7be6aa96c794773b656a622609ac22b7b302dc88ce0d317c8a18877db8168621485edb278a0561d7abbbe33560b2eac30cb6b05f850418e1293d8566b5c370cadc2b80c10c9a84a47bc217bd645df4d627d9b28bc898701d87a07560918ba0a657589660972a7d636df533c58c02cdf960a6083c5a1452ab54673dffd2769dd8b95fc761b152181e2484be9c5e7412a994b81478a863e32489ad294cd7f60e2648a42f8890c740220cf4564725b290355cb86834b08182b54ccad880a4fe3617d0e04dd651334c00ab396c42829a45e149b3bf584f25e1aa674293e132a2a75b5e5ee4c6977a2b1df64220683326fa3a7b3888e42a51f712c944f9cd5aa6cd992c7f60b0858a638862b178080c5ccbe45ab9e07b35d37c34397cd2c6280226402784c04bb6c1d8492d5c021969108c13c7b2d1e605711a71256a3216557687f69a8ce38e8e3c74c12798e7547653418ac2b41133b3172a734d3c632930e2638750cab4d0883261598df19f1ebcb5c1baac516a4167f3c14e271d6348bc92ec1da704996bf9c53177855028335b834bd0340123a67632598afe146298177668c967fc4461ae3237a38a1be079a460a7a5d7d6cab0345ba945708d604b2a037198aa7209a9356270010cfb96f663b35601c92dfcb202d027e753a662e060ddd90360bbb38f4301111c509d624abc4752ae1898cc5732a518061c4ba4aba3ab5b9a66d9e8a679ca31136aa709e14cd35a129e693436990836c0648aeb5815e34a91e0ca3ad6838e859b2169b6e482492ed42bf2026b0508b733e437f1c6cdee0654c73b98b740474e2b9a19d08878855564893059904623711c42b62e34733e583424a9d25fec3b20b6345b28801d3db830cd503aabaa5120a040ab31513af89fbd0b8e11034abe120be9f99756bb26a9952615527ba4a1c0cc562cf565635fba5d2894b846b19907aca15e1979136c79b737821ed74839584de5b7493121c7cea71e6b744e42fa278690a6c9f434c0d51e28f5ad045c6d88969bc1e7b68b1b13a1d1a01e0a913e187eb861023a8268061692c7db71cc1272b63094e4c28163ac636fdb5a9422757744032b329e0891232a60cf1d5b71b2090bed7807a2d09ca1192541290ce65605e4197951e87c85ab3a41aa7e76d4b9e4d691c3d54aa27595a86a218b396fdd99642515bd4dc38dd7861b17e30eaac2c3e139381e2ba17056b7a7a07f7c9626f716c454e66c0a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2 +result: pass +ciphertext: 8702ea652463d333c0695063d67f213d9e150f2e3aebe2d2bc992677e4492bb95fb116e17e8c5caf5067ce0c9c2d8c81369ec85fb7dcfb0ba32dc924a67eee3f92e13251bf1ffef5b1e3f98f25f7a8446a0305296e097e51bd157e97d476258ab146f7160413416a86f4b2a860971c1169d3b01a82201929cf2dd258c693e2becc839ceeb97c9b570e26a54cc1915ef8f17c47fa0b1d0b6bc9f25379514fd234425d02ef22cbc151fc2cbdf4549bef807afa1ec7e5caece5a8f4b62f2b388c210357c998e61fb205dc975c8fb5814345671bb8a614f911bd4de6eefb458a74d95093ca17549940c65101d62bfddfd4aae3c9a7adee294ad409ef778b1c25811cca3ece5928dfd6f3bd8a4da41a81b7973d5df2b1c25d0610ccd9b61e477785908d70b23a6ca9ec11a9c63ef6f52b624d66243925d2f5c2f90538540304bd3a11c76344c2aa90a12d8aedd1c6517732a15948fd3bb6a2e736b33bf68e816f19905b1a96156e2431da5525147d35d6b903708add85dd102658ab1972aa19cee456b7ba1c7847cd6b4f132068833a70cebc4b23a63771f4afe8f2aeb077572c76132033b2575c1dcfd12521d1249a5e38a8ad06979601f18e156518157a7c8e6526b957f657f8489e2224cfb73b2d1736837507fecddddac860a587122a98a08c137108e5fe9f9b2feef6b52e712e3493f66c98ea9cfa08aec95b27220f5b219689216b8e0aba6ee8a7e758730108652776d100680e800d6613aee85f831c3d92fea5123136d204f8983a7aaaca63d812234da3ff596ccd4970467f24217565b6069b6bebf58ed984a2f0476cde2319aaa792e46eb6b84f4c3c20ca27183f1e3e2be347b5d1250a666a81c5936b8d0f569db64aec4c2bb1099e6c5aa6b726a1617026c2c8eb5e72925d030759677863cae4f09018377636b69f2aad335200934ad4bd622fee2780b11bf1373000491724b37fe82d8d26a869bfb4d003dc0f85961dec623dbac4c55e7a9c439eb91ea01960d3103b7c0aa052e81acdaf1286620229f5a2973e8b0a72eb423cf068fac5c26190bc90afc16938eedbb5ddb3c9b5bdc8a595ac12f9c80dcb9abefda4268b8d74c7462104f105cf3437bd2cbd337dc5d71b552936e9df0e47eaed472f1162e2bb1b94ca19d449f7d1fcaf0e737a07075352aa6a45318981f9e67a6b23c2d03b3655147fb0d2b07462d64277b6cd11f4ffe969929a20774a885831ca24abddf752cc6133f8211edb3b5229218c9a61fb3683be29c7a2beab256efed36c6537614c77089ce44a6402a07c54cbcc105c4c1d7f35d2390ea2248fea06f472ed018548b1377738e62c081345659121a3948afd758c3fc764291c17f1274f6025c802f42ef00c6d692311c27035d7ed2ffd32d82671aa31429ba471b605993770e093a9ae706d523accf9684fb12a7b6e6da228e9e781a8c28f6cb6da9a6876f0e5dfe2fea4b6da856dc981ad8323dadb1768aee416471b87819d3685564ffb3bfb3ef1dc93289416b540f3a2f46f29bbdf9fe05155ed8d12adf5f85f372999b113d780e3034715f6e143c256cb2c50e86b044cb5449d09576e776520f8206ec7f9deeba0db6a4a131f0fc99e8bc794ed12e45bfdc9ad5e40a7f6825ce57f3f396f20afd968574b6ad34f3c150dd65ee11b7e0e396067e7d3931b493089ac078a812fdb2e6a56b04058a53d0c8fa9d0e6497cd89b0f35abaa09b3c8cfe7c89caa9325bac5440e971bc0ddaccc7390456b7ae38e51862522193e90d0d6452d19c2501edeb37567a0c6a9f9aa9b6dab2058bd08b3ed4f90e823ec4fc4c003e137004e0bda32bb843defc50ac4d0e6c21e1c8456963db80c3798319336723f4cad669696cc3ba07c98f986a9b7559bada4540b10fc50ea11d4eabb00baa323f4a8f4b93bed5561aa3dd36a0c8c9f56a684b65f08c7e725f60bab7f786b26921f9a638f7046fcd25ca266a4cdf774f29fd683d97750b7a9f551e99b04b3e6345f831cff027bae6919beab52eedcd93a2295f54cf4b14b010500d18493f99439a6f528212681d240adf2cc4556daf03ed57e19689f09f29a06b618fbe8428bbce371514c8b15cd9c34da0009fb854a8299b7d02f1c8b0350628c901427274f6e5c7f34c2097a56e0251eb14e5ea5d5ac0b12c778476d1eb4a85513387ecad05510f64bf10d1325a91f670ff6fed9c4a8421ac98c0d06 +shared_secret: 4aff47d4682e6b414067b3020720ed442d0e2fb4a2b15c38df29723b8bab7b85 + +# Zero secret +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 76da327e31334a81297ac41a07b9c1d4e04ef3fb8b06e9bc13071c98f6a80523801d0c6e5e7848d143a5dc011eab319ce6308bde406c4ca459fd3c20c5c76dab11c3eff0a060f52d6c677242b6019ea40c0709d071f587c06557d0cc36f7c428383834b69b877308c55e8c816d8195f614336e50357da66fb3f03de7c3742fb23c2398c7868690648122afe321a0b2b55abb99306265b8e9c4be1771b7727775a25adb2108a8d62bf5c18571267e6c1b5dfc547019c331532a40550579e79426304b52c88cb722da72d63a8da549731d5625a6e28db6ec22f3d1733df7775d5771857382bbca11dd271fc35b4854f58b6ffb25fd42286823790b1bbccb40c105e38092f5a744e19d7b758ce2a5379fcb1f401aa4db967fee4bcfd73811b214516a098d1cc726ba418118e14970aaab00293bdd9b18de001075e2a1d25183bca677db703b010a7f3166b7a4bc374b913394c504463a42cbac84ea799d70db4ac0db6dc3da8c78149bae1cc5e4b65f701bca315866d6a67e9bebbea36ca91fa694929cba572c60a1d1006c95941a640d472bc2b30cbb635087170381a4328cbd462964c80692f224ca17575fd7cce32425d6fb19a363cd114524d8c4106cb628253bca70377aa242751b626447fc43de18333dc21c841c236eb0b2073a2a8f9a268c931669daa4c9036228394fc8a0a2cf809a1a2929a5ccc98f924a9b7282f922c5ecd96cd1436b5b21692610a44747a2435807c50581dad25268d737fee3834a54967e76c3e7f537023b57f6a7b58c191427a12282e06421289448c97f7cb042ca66927a417e6747b3dd501d119cbd4dc43d18174aac099ef85839c7d9425d87a17cd77ccd568bbf4bb0fa8ca4e5005f9ae815a307471219a9aaf60bea631e07162a1818c3c5da6c29385fbeaa76ff4804beca79d1f842c46b9fb29c81fc4875afa0b178564d26b26cb21aaad891822ecb471b76a869b83838388b9f5839e0c344a7eab55c392c99019a0841b20dd14f36875853c6150fa46c2572828f51b9636b00bad5940912923252be3c49190577c928d5bcd6983bccf00875db487287ada1849d3339069195380c1a3ea34703792251e5c7877523c1b6278f9e40cfb1614a04c01d966c41bea36a10492edba56a90e370c1995de2203aff43002446a30f3771af65924b8354e0dc2fb4aab0295925a23576e4e9770740845ba541eb23610125c782c6c82af506d9a25d148373f5f48537d7b0df7c9e72f10938f9cd66aa6b2dea9322412eb01cb04de39797f78efa29186af03d90588d8488914f94033b644663269435e2c26b47297af4a324526301f2cea3446c2507717e83c29c8a53f277cb739851bfc94db3db6c6d2a35df897ad06420452281d1659e7aa89e3062abd2a1a7113cb373e6856b7acc402abd86418c554858eecbc2b38b8b9920cc0fa091b891c8a4248cbec13d52984c6512a025ca69b34477dda65e12b7839128427c42832a1c5f31e5c3ec09497667ca7e0059c5f43889460344fb6985441afee726b58172e2ba2312aa10639737325cb82e2947299b94aa8bb021857232878b45b03f9f0ba5b0ab75c1773c471ab51e666231c3c37f1bc4630628a9b1272fb9af6268b734e27627797582803cfe6006230901d074c72fd0755e011d676a8e69d41459c31fa5aa5de74814d0eccb67d6151dfab3d83927623242d78367f20249ee924c2b582d9d775a1cec0155a64f058aa6741867c7e491f6b53f1f8267832b7a6a8494dd249680a5b147579503425a55914580810673d507a2b0cf003cad1ca3809f6a06706ba72034ab8e79340d6232eef9815e761f6343a3bae63004c57bfe876b8d4a6a8b1550db541b359aa0f192a3fc2937078875ef55aaedc2115201c721db56b170239582cdb5c72ac4c7c94508210ab0bfbd1ac7cdf891fb370522ebb8a087709b3803069843dcd8bb4ce28663019cb470413e78097d933b44621b1f3a0930839807a13325900d0536a8f280225afaafd1d76c0e7aad8fa3af38884440d5b3a9f56922720d6854979b835c4ff69af290aa94d662fef6be4c46760b200333992f4df215425296f8d50876a94753024dd176991ea8a4b4256fa25a7ad7429303172bc7c06382316a61c0b2746252d2d7b1f501b2f9d6457e09955e29540a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2 +result: pass +ciphertext: f0e103c8bf553c2dd0a1043aa1c6eda544ac9ebefb081b1724be5cc4bf4167e8f59c53e11c2d2005310f3ac9e470759f8297971fbe8c08e7edcf5501164ded5e40e0cc9883ce1a8a574579cc7f675780e1f130ebfd2a83fc6fb276da2e6baaaa80b9b27cd19268ed6db19ed2e5f8467e831e5b19d6afd169ca9789c58b887214fe589a0fa5ecbcd88866dd2f574c39813b4bca5de8ee9577af32ca11bc6e17ca841d7c565a630c145855dc974b9584ca24c9979f46516440c2f5d35f148283cbd41db73bfddffb5a36420cb3c0d15e81f1d6e0c5e99b4693a7c83a51ecf91d7833cfea740e2e53f294c767bae0982a46532c35737fb5a23fcdd46d530b7b0cad6127a66ad052ee518006c6024bc2b2944d9b7536d47287dedf8a1bf6dfcd8373444a379fd1756d1189ea101e7c26f579b32525973eec803b074764b13d96d60f68a279e34c04f3e43bec799fb0fcd25da9eb14c4ae21d10a1dd7cea23b2ed5724f3ffa5d37766a34bb9d3aa8330a923a41925a7aaf071593ba163913aeba546c75d889750492ac376acf12e841cfc53f28a82a1ce65d29289a57218731c0b7ff814ce4ea7cdc087bab5cd2d57f0f1a45d9ad7096323edb3ef3558649f8aa2fe49a146244991f1d0cbf2c2e74e50038d6c47d80479e04f6cac03e667dad2c8865d6c8cef96cab4d3361e3def6e0b45a2dc81a4993e05177f2fcf013d992a943cb0b11b6a75861bfc8ad534065aa832915b254fddffa898c69c24514ee452ee1f7d8e052bcf3f6f598fa69db0ce6b3397994cd1f139e665d87ddc69ff6a4b7368ec4e5d026fbb16c44a62a33c2644a93128cb76397516dc88f664261bd09409b2d0187cb73e3744854ced4d6cb1099c56fb325dc93232ba353e421c3e318669f821df71c6d8bc68cacd45958442575b9960b0d903406c2d6c8577bb1a3ca8e24f47c7bcd2fd6a4ab83a3caa554c6695b286b115df21699a78269b25ad7013978daa30290d541f3060b01e9c3fa0d703322700227d84101c9d50dbddd00c92f57154ec9cff10a3dbfe6c2d4b5a0e0099dbc9b4883dbe2d1ad748fa6b5136d8759b9ed314d330a8822ecd74df76cb605087875150b205ecc1b73023bc185b8bb44c8c3c32d76948bde1249730aaa1f52e11754b2037d2cbad433c9beba44b6c8cf19b15e688360dd2cb7d9832926ae72b5533cda8ef08a0f92c5c1c5c287caa02b79eeb8073492e46cc4183fa2d4623a36e0a968ccc6ac29ee9ee3582182c261c7c0960f163b290f2ef893da422ad03fcf3926942570c186e7a90bba86ff792472911cb04bf72a8067190d4d87331d52d4505618c60de95142db27f784c012e209addd58bbcda062c590296be66722e175ac6536c58bd10a68b6d75513c78853d4d1f796bf477cf380c7f533f741460c9c5c2d1ad851db4b761b9c5eab3fd9d291e7921039150f8d2b81f86f1f997214660ef4cc63eca4b6c76bb5742fa9920d6e2db3480ae82380fcfb8caf51abe21094736f58cd7e6706b5d10c4b33f021bce59d288bb41faace2411a0ac5c766fc7d87c5d6a4f0cf2fe16cce09dc7ddf8d968366ac293ddbe9c0c709a4c0b28eaf2e23b4212c1191112fb9a316aea3334ff9f4645245420006c406724cd7f254a46097daf669c2b137560a25432030a6c7d6f4732594f21a277b610b870222b4ff561a6401f10b35cc5045020cad9479bb449322d37df22c9522c8b7c5c0c4897b1175f0dd40038a477c46e10f10f4289a81477a07b8ea223007e25f5b871d246e585083240c56c3d80d4425ff7821f17acc96121ca9ca50b95ea46ef8116734d015ce88021c620b57fe83b5022ebd980856d5102e4e80d7b176bb79209809cc32a7d246df9df5b0375bac96547962c413f516f4f0c24c8921d148f0a168ed5e0434b72538b9e5cdbc00b7e7984c243872fe44baba62b917a3f0601b81cb1e6cd89de2f38d0fafc2eade0b00a573d59d290586f1040082080104000218c000000010000400801840042080000100008c18700020821041000002184104208c003004600018020400020840042100080304208210011000021f8004000200410400021041fc207618010000801041040004080f0010800f8000008c083300000200ce001080084104008000030020801f80f40000000104008210410020820040044000180100200008410400061880042004184 +shared_secret: 71a637ef1645d00719e56ef39217bb4d8b2cbc71db826affc2529589830148cb + +# Rho leads to frequent rejection on matrix expansion +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 1ef7040c4b37bda74af8a45652510df4d67b7c618279d2844b10815913914c392a4119911d2b40da79b882534a6daa1b3b8679eeca4ef2b57bd48507b994a950b98865103cbda9b6fd38ac82b64859863864ea023fa6990f0898a8d3ba8a947fe859934ab06ad545133f57a3c692c19058a07fdab3f0daba0bb7846ef3222ad4bf62d995a7bc4801e5114b5c131130c58f76bb858abd1303003461442d64762cd5ce3421b52f492ed5660a4d632af3d24b9b5a1af291323429896fda2e21494e5630502aacc91bacc2902880c99890f259c1b9fa01e7a716a0a3a0707581acc347622369a4e610a1336047f3429ec16e7cc97607a11ff59473b5191e04586c1b32cf82da6816e47c72d7344e84a0d6cc42099781e5837eb6ba878e489172c41b4e2c3d0370874c0bb939c485a05851cf351652f82f1ba0a50fb235a6f10f98655cf2cbbf1c21acf999ad24f77ebed4297425b59072ccd1b6aa6467874eb014b3c911a0a9430cc86cca1aba84cbc709824a5f3abdf7f927d8f9a8c5d6cb955661fc7bafdec7cffd720fedf95353b01743613faff9b4c94c80472894c2322f641240b0d60549e4a405e9a20c0b794151a63a598e26eb021e1717723bbba58302096b563ea4217a8863350a7a729b0c1f8486a8faa7379a41515103f59b773be06a6b3b01ebdc67cff93147279f861114f97c3b9e7abebda5a51ed4518c6a20e679cf2a48b8bb354095b3ba14d07f3a61c18964cfad11b6b814b50c07bd2c6aa38c6c4b20d47778aa5c82fc575bf02b8967ac79fb9c1354bb1df83af95a839015c32f8b4387795038720c53f1780c6a5a42d828ea42264e55594732419e450afe13ba956581465a686a1659bdb21bb2083424d19fb0682687ab005f1111c4a43205db0633d301665c635dc016ba2762360474e728362ba46b52b54475140fbdbbc491ec5141e7947ba42053c4b63dd1032d8b8d3fa2c593322e5509c01a1584759892a910581fe6bc16b935a5931627b67e77247df0d3c77b94190920aea31c093a1a9146f75e51f07d45a607c7f4c38a5a23a3198cbaea7baabac8e70721b80596c015285f20ce45c9bc86d67a1942c139c9acac70bcfb7a1f0b993c7d145b4a03be0a86ba201647d7831c6d960420fb517ae68f3dcab3c5651f49d221037283aa4711bc3973ecdcb7c030c24b084ccb850f91d35e78e381970a948e376d4bd7b670086542a61be4c670aab7257fc58dad24a3afa727dff967cab9088587385ca15209c18e06b68ab8c66db7d680fe40677f8a0d6edb9d34b4b1901ba729338a7bb90f98ccc61676934d8b87d7ba15170017e9247a6445236512aaf23a6ccc629e2a2a7d748b0a67b2c64cb61aa549b7befbaef6ba45e0b6c3a72270de5497f6ea95059238d0d28aebf1cb4f209c24c8b83f19368c495ee05638f45b7002c12a23013f24721501d6aaa6c337af9185d8b733464229a8aab8eeb50f8fc5b4d9880897d3128387aae8ba6e2c116a63b5434be0503b77903f98a7efa5b919c4a86f39671a477c4569acaa07b316d8402a1580df17736056acb05379cbc1228aebb671f7ceb2a977e4f04ba363538c4c28f5a585d712453556b4cc74894740b73c5882bab36f96c27dca7caa815331ad4425cbc732ee3a56db445dec2cb7b3c5444e95bf796b3e69999867307af7c716aabca5854a2118eb78e92c9e1da4209ae0c7d61a0920e58f50f62aa4321d541a8ce7d74f456abf09b293f7da5d1549ab0d34044a624cd51c5ff3774101fc4e77cc76a0f3a1224c3ca2d42f92ac6a23862dc2539dadcb396dfc41e73996497879d8c396c3657c379acfac04a652fc4c32aac57e0368ef606bab471e52495369d7c616d3a3d01b668c7a0f0c305efea09a2d01b602c4a2ee47027b0c5f18994c3e369c7b985832a48372fa6af929605b0c1806539a0dbb2b1eaa674ab8720b9381688b18e5136330e303f0b4a9d6b5138a07cc372431c8958260c91c655551b35538860acac1f047905cbec0623bf9c33968583355822dd563af7b71a39113b3024074f865ba8073b412672eececcf8af0669413655c318bc5684e7a655e370840c59666ed8a6884c05060072fd2c0bde6f39c22c1348200855a66aac2155cc13233538aae893abbc3cb4bd2c87ca6f78c49691829a6cf40d7000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 3c14f18e865f367b72dddbccd6c535fc2945bab3799b9edf5dd5da57f28a74aec23c5113f792f0a92e096f9c7af548e96c6a4157de843eaa0a0089e25b8f85ff44187a662845fb8cab374c143f4f96c6482ce7cb7cbf8f27e06dc50e0783568652043c45767295f860e63093d53213c808692d0bdfd10392bab65bac43979fbc5aaf04c824df2383154bdc30362c28d0fdc353f4f18bec2620a906426f744d717f04cf108aa91c82028ae847bdd5e66eea3ec0e719cd1a3f0d36965a8e2a1a03bf4233edfc4b5cfc7fdd8ec969037b3f02404e3bc3933ee3c2e910d86476d9b7667772ac75ea46e181e95b9a3157c3420ccffb064de3ffb32c1c855040eac8cbc15c9ae7ca1aef4c442eb54c3e574c9155474e93a14a5295f66e9ff6292dea202b9bb4738d7280128057586e0a9635459119df84bbfb083f0545d4d8387ce9a502f2c3addf0a7968fad11284277478dea0b29c96b364ea62ae83825011f1ccc6cd7a58026a4250e76696b836bc06f83e74e528d216f474dee938e78534fe21423cea6f843a70096f83e144208700d156261c091782fe8787b32848ab55390e1968370203e59a9a53b1c48a6a449a55ae997d5f222712f4f674991e8a4cbb62b67479b56933c290f701483d2dff855797323f19c06e692940fa32c9c2964f700b4147e23dba5313ac247ee26ca05d147e469b6e870651878328c79fe28158e29a6c41ec48356de5c2374c2d7ca435330264fba31bd9c1c85be3afcd456b3345a669577c996062026108891b8cdd099d91e3c662fcd1a2f28abf1567b519ffeb46e9580ad17a5b13c9c52c544fad1648495b77394232ebaf7e26c57fedc43bffd6021fa165e526627a80761207ea3ef172e8a26bd65bf51ae6ab9071c61c17b19d02e66ed12fdb851adccfb9ce73ea98839f96ce0eb6e1bdcceb752d7c5ac5d6c4bf6c56258048a21208fa289dd517511a5849899ac33d50e1e94fddbcca5987324230ecaf242497be400d80541101793f8fa5bd896bccec92e425bc63500305d69a226a165d070545fc2277a9faf16c5b004aa8c7e8c3147890cd2ab0847afffd4026ca76cc6b5d6c9aefec6fb1b21794e37c56aaece2cee1881ce64c9941f904c6e0143f0332c5b0b9ef7fa394070b73a62b2f811ad53524fbf9a038f185daa3546715acfd63c95594a7f18924c3da980d8996885b04cf7944477b2b9b1d939e81d14f84b129f76046a6d78482ff8debf21315f412c234cb776f529829e07ddd89806e343112d82ae23b90657ebadbb1fb7999c868b52f907b7f8aa131dd334a5332b4b2d8fa664e18edbd89b4596e34eb631cec9e81dfb44fded66b9f236add78150415c3feea074e34b43284765274defae58471f27a889c641069b436ecaeace548b03e95cbea4a424611b79c0a26502808b8e35a1b285163db948692afb29d94367eb43ae5df88467e4cbfa92f0f4b5388a975026c5cf0ad2b8d10c53f3eb5d6d94e5082302e8780e5a7dbe4eeb7061c02f4a46d6611f6599fdf2121bafb38789cc789f2e1730ba6be17caf12d5deed32f731126b3a75f33b86498e1c739db09c3fa2a97fd77a16ce0d6947e5c69120e1490b75cecf695390255938c9f884cb0248082b36ba19580130dbd292b34bed650c4eeadcdf15685ed27b6c23edf7d218bf7d98dfb3018fd7e14e68242554250886dcb6a0496220f8b4c4aed6c87dbdcf62b47bd8c07f6347773937e0bd0680e7e0d62720947ce2a2bdead1919ea3859bb01e341b814dd13615711afb12320cd914dbc97f6767c5d0d69f0e38b46e4bf3b132466bcd89ba1ae98144874c28bf476702975d3afc17fe4bb1dec671b85111e5f1e359c15d6b0421935e26a5d4eac269b64d122f9419a9fa0fd5d239fb20fa31192ba2acfac52c92cf5f339aa80c3e5a2a4ece0b077d5114df54349cc8f2b6daff625d347f5fa60a37913a1402bbf9790eed6ae5b67b87e076479ed1abb258d6a7e91ba07786d819ee869f5ac216341535995799e492911a9b077be49ab3538d3a52fe14e19b6a0d6af2a7df2cb1e5904a3941b079489f574e066f6c565828d2a312573fb6e90ea67a7747c8b55b1f117482c77022b38ccee1a397d82f272166b66af0ab67b631b2dc891e2ce4404e6446563489077873674ef477e9da7d37926489ef60b5a028e8b6ddc871bf5c224be846b9299f02b82c8dbead01d +shared_secret: deafeb0bf0d0634e5acaa34966e58df8b9bb63b376e3409db49b4b117643fdc9 + +# Rho leads to frequent rejection on matrix expansion +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 32f393adec83a1bc0379bc0fc42015610c1e8fec7878cbaf623959a22008ebc81ccd02b0847a7318b414f1ac47ab2b0dd88049c1047e4331767f3847bef0750ac4623696bed9c2162d2b84e0b4b606180a6d2b6dbb5190bc3c6a51780de86071ce2a0f05758e199983ffe8349c036d6667870296c76930b34260af449b2a6795b4fbeb3309f017e9f820c145716a91569057a22b44bc38b368fbe221e1f92d0d5430913580f534b8373aa760d47a0ebb6bcda55b5cb62797b819cd185ea798a1b9e21391381173d2a416eb98db74895085ce31c868f52a2f7654b3779a0a324126c1b3aeb73c073deb19e7925126aac8d87bb09ca69b68dc4fb17bafe16a4315677d57d0c36e9479fb03a30609b7456aa8e8b76c97100728c46ac8f39588f7062c1b27fbd12f4c9bcf95f24f1a698da0e78ff1f4481691068ca7070d341dd519c63815a2fe3286155c741e20a3bd8c89ee6bb069bb89b7aa1b1c4b4ac85699ca2c786d8305cf1c4527979442fb4f3823c7dc887abaf866fd1b20a9933707c23036e653ed99476c242c791744cba152f45040f6bc3414a13dd8670327d50e446a22b07a42bc056a95c94d911356e276cc95d585aeb25f061b87da78550805af57414cec34083be60f6e7b0ddd1a9c60f5725681bb70db9390014df9dbc5e022b4c24563efbc2b32604aa41225d9993f924cceea9c0196a8065237cb47035142b0693d090e6ef48ce85aa33b57c9bbd4c1dcf4b8314162e0f9b44e01732d6cb7876559096620e974cdfc263adfa1c8d94ab6080cbd42fc1a585009662640eed3353117017e754db4cc0901f3c18e6452667312386b8bc27c32cdd9c11c14403d390f80f121c02500a1d03942c0aaf56a83f3f062ebc708003d7deac3a47f33ce9463381b19818cb97c8d61c320da588105651f5496b2d38615a5929e50234a54393814311b52b678ea8b50e3ac47c30ab2f99998a481602b4aa701384ed347878b85b8bc108eb90bda44423e620613e223ea6a03708493b7013be2b926daf33fe3d81fbd9795a885accd8b4ce3ba33ea57bf04530afae5643bbb4b22981ff5b097e68c5615b70b4213b3feb020e968734ed33b6ed87cbf5468c5f055a1dacdbb9b19d2a057a6fc371d389ff6084fecfcab2f0bb66d0931ce29afd098ccc4020af50275fd5600f3b31c063174cf5a63363752cf5612f121bcf549993132c71dc5c4835c396f2436a70092244c82b5497209b779786b3a399237e0a7237e550e0d784f1258c540ea91bb99c915f052fc8164b6c1b88058242f7b13a98cbbe1646274105f330ad0377ac65e6acf89987979d44bcff381620335ef93b9f7698527f2c55a39a4858812e9cc8c99aba640c7915bb1475ae172bbd2251fb2695b842d27f688e1e23f607905bd347c83db7376706f68ccb72c94519e426840b412944c7181f72f98a56c0c5ba302ec728b31a43d6418984c47dc0276bc3cb6c2817e658ba9acfaaa1017659d10beeee7a399e6049dc62f5795558c082f273949d9f82cab2c3977359f510394720cb9815c240ed64ad4f4c4b27057da3abc1486942d01c5852658a267ac18e886c410031bd9aff0950165b53e53cb28b21172b1866d2dd16f9cb59c9bfc8aac8606bfbc2a0861a9c7f62d3d41074e56a73615085b9053fd2ca533470c06970c4c6a097d0b4661c2b001e9bad5238392b811a1276ed0a65493080e94b7813d9baa3c05c9f7820f77e4af8891170a6ab302e23287932b82364fbf5abdb4f2716e5b74705b0756eb6e3b1ab9f96707ffa05d3afb29dff48a004b86bcc784ea003727a49c072cb3cc6cbc4473c40965b5f76670d8cc1a9fd3c4982662b8fc2d9e982debac25d891217dd24f798346b2ec770c427f49ba4452a1c8d49b9089e751931bccb07557db36bbc13225590cc94586058c3c1ba406633e650f703a44aef3c305f652a4f4c785b02eeb40cab763731a7c20d062125a24b2bc58ae6c4a0aa4e4c5a330cfff7a46bac4ca58a33127a8bea7d5598b29c49366cd11cb4d60d71c0d08cad7145216a8878d6c346a32a948b52300c8448d55a532877daffa805320bba26a9f6197a08f71b4f9210cdd9c3416263f5b921191084b87236649a02e9f0a20f09004bee065485088430924326353ad90077ff0a10fd3c077111e909e000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: bf6a1a4a5905e3b6bf5d5fff91790e56f6152e31289585d4209cc364cfda745e4da6ab9baf213a75f7f6ae50b4570298035dd17a7108ccb8a5f511a0377562eb37eedc3426e5ceeb793eeceeb5f3ca4935c68d352c6b1ae2bff892c04de562dc2197cec88133bd7384679a1c7cdf80a43aec446e60c8690c50207e54d1d6771bd41ca54654b835cec7bab1efdd6c0417d06cd74ee851c4b0cbff894dd245ea33bfe28adffbd0ec8cf6b34148c6a8126b988f83f5517125b998859abfbf4e9eec1afba438faf25238657d0b9a370df6445dd9527e85502ceffb25e13fe6cd8108475f56252a148ca7d11dff8e83c760a239da62f994dfe5a4d409feba83005402252491e87b5d585168dbe6c4f9b257bbdf7797526a208dd05687e2d8176655848e9f171d6fa63791b02e6508a58f70f461c5de34ca3713c1c0b0b280db1d493ee5103e768ae38482a38692425f05d91b496b47743f28a12d34cf26a7ce164bea186549cd4eb1e0e9558902aa1b63fe90b3b5a1ae952676d37395e64c873f042022c7c9fffe06e875a7828af940e0c4bd0ecff75d8154be5bb5d3dca963f35b0d5d45020c4e793c4f895983a71a1f48d8a6a03cd58f570f56eb3affe3514f89e46dc9a91cc466da782e976aaee83773a481788cf872ce552fc56399fbc8f802303a5e8a0215fa3822d21393d268a15e617edbb9de328ad2d92633fbac21f5efee93588b8f8789aee93019e61602374bf84e004174aec2a98939d3fa29462db61e3cc1acf68606802fe312336e72ecf9faa23177235d7fb3b00b5c8639ef16af505f42943c3c3b8bf0b1118ee78dc8143fc74d178b4db2e4eed82cb21930e67d5fe265e2c095aba86991fd378f5bee637e0a6e283440d57b11cd6e44dbc55e06a574fe959d946b54619091a4a0ea394e5d00c707bb11595773241b23731cc741bbe253369555934daacb06492991e8e5238344e75c7b3b6d85cff5683a75995216228922bbc0e5932bdde90486569d60decd6dda4cb4e8961a1beb45e8e0dda5fe91c2ac9e709f4585f4ccb56d89979767cabfe7ad88094bc975388840c55c8379ead9374b5b368ac51fa7ea08fed2519209ba78dba663a6c2d352bb9aea6bd24131178c52d4a0e161496c758fb8a451001292b56f69180c18aa5afd1a6c0bc1c141aa68fbb9b74a75f893036f3ee4b65eac6a9a67694d8473db851fe78d0ed544e2927c9cdaa0e8187389cc0a15612b1ac53c59ca1deac4cfd6a3944b7df446a0121dc81fa7ada3660e27f6c2f65311f9e2e9a1f97545a8b3c6e226ce547a3d9d283cf37338c07e2f426e7017a6a513fd104b88cb8b9a92cef6a1aee3f12f258a5d059318830a6d842563134e896d577adcd229548396e5b1d3a1bf80b49c064cbc20f22eac0a2f3da972c580a92b293d99b820888ac9b3c50f0c16ca80147e5e73694da824b0e1e1cfc771773727744822e933d2631b1376bdd88f37d124bb6776b83c5918ec63c48c8b339b62d1e487cefccbc8e9f3276d1c29f448c5c37b33a2442f096286e64b90dee751a6de0f50197805a6db4bf77a845df7770dd34a44ad0344caf560c77e7edc655604a4d42e591842022d64c1ae605c749479ba401a31867b4a11b978ad690b4c2a7cb6d0ea262e15ddae9025b522312e08bbad67038b4c2e272bacd18ecc2317410901ed69b6b9f03a6d5575efe5a9c08463ccee314a522fb24163630f888c9eef18539e5a088e80f4604612515dff0e0bce97e9788d70d148431e8eb9cd49f52a42e21e36c392dab9aa3f3c80e6e8f812d18be435a1b073f9c346856446dc5144f5e6776704342cc877b6bbbdb01cae23a579f5238241988a9ddf5cc7f2bf64265b465fe34d911c10265cf7d2208e526d51467de5fc1dff6228d771b643f4e31ac9edd95929eb89c98a3849a34a8672660f8464c42d6566d5ced7639c2f2165d505c7eefe844649a605a3622e60569676a41cd7db48ac0fc624c1cdfbd8e1f07ec14519023b068dd1e58e720d53e61560b1d00f7a1b0f59c20139874c4d0c35004b5477cf5b3880a95864eed75de14c8be43a52cd46d6e4e510058e58d80096a243e191471abdf0f2ed4d7d61ec97ca4b7d2658294a15cbd40414ff3e185a809522ace539bcb806881019930bdab728fa2f2d773f7997db7aae3927500a4a9b9508d199fc622bf62f445fb0c0df9e50e34a833c0a +shared_secret: 5a9c3568ee557530a57078310ff6452b09049f55f30df0704f9607674971e033 + +# Rho leads to frequent rejection on matrix expansion +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = 80d67fba099be5882ff1e53ff300bbde74cafa260a124624df72a7f73449b253525e75b658656556422e26352900a0b1ab258dacb5cc3ca0ae9da2826f15b8aec76676920168492ad2b9b56714b3881103634c1cf299403864cfbbda1546d1031e022ed172960171bf94894dd48331f5973bb509d068a32a60f56377b911f5226fc77ab27ba0295ecc70275a0b311284eab09825c14ec7826779039f3319877fe39d8f938068b9916fc60a7359737a918286b2c943801713b78a8d14a558994fccb48ca20065a013318f099917bc930d0ccfc54b6aa0a7791af5c0443c96c17a5a59666f73c395139268024a49bc7285aa7634ce461814592e74081c04a99c84a2205420a5a9777a24b11717011d897c2ceb02cdb79b94d26862df47cd793645b6288f4e7a1f5d18a1bf732dae8850f289307ab82ed5ca025c1553b5d40c6a776946016016ab5913845958904b53fbce279979dc36a0c6b2c483864b33178998e090d0e01d263c84daabca5258027f57bbb99c00d817749b14bfe4902ccb65258d50559d6678206ba44f3c0160dac0434a1e2d25bc16b407b0209b1b08122c68b75a6a4f22e50387f13a3f590ddbca358fc60e8802a25b31bc4ff327c1da127b20132f0036df997b0c7a1d43f8758b4330452ba985c9241b1879c0995247569bd1a1c927b52bf318695e73102e892f9588a527c68196b625ae412b4fb35ebc3c147a4c3860348a414875b60233f8061c38000401452957fc7223303930e653051535e647943b1a50d324108189955e589d837b1ad3fb331ca7b0993c0d5275b2f9254fbdc87ecdc8b28378553719b1de9297bb65abe703294d11aa41f7a5832a7247c100002b2c3afca68bc729f0f2432ecca03b83b6c748cbdc457e1906ae03f25ac5e37ab0880cade4c8aa6904862484e985a88f54c0ac75712ca9706d9c6e130376a14549a1a7a9d2bb155e797c98a22076e00343a55f1d488941a6527e808a65f3b79a73b46c3523f71455c0bb33d26690bf657900d549988cb96069cec0822b1127cd9456c975cccc86486ea3686f46e0ac92b35ff2cb881106c1803823df12163d004ebaa45919dc7a2c304868885badfc4baa43bc386500b1f8acbb0734183b674b338cba409684f993d8a6068d466d4ac82dd5e42f336badb7c78aa41ab2d0eabc90d9a6ce033f1dd9755939a8854498c7415af65b52934246ba521fac2780b0e1586e351dd6266e93ba9e3955c753841373dc89504c7361081034f02e18311fb2297fdbf79d004ba49cc916836209965c6ddc2c4a55b667eb1c08d405b01bc6204250159fd55485d29c48da37dba05a6cec2f856943f383a6a5ea09c947c4c7ca849881aa6f407a1e86be6954b221acaede360ecae49ca9222284695f93480ec710365c68847e7b839aa81d84c6bca8c7a71127a750e078cde65bdc649b17a0a928c8cac51a9e5a40608f21b3254b3e38f81aedf4c69bd49aeecc32089634450c42999357d432a82a0b96a789c3001c7b9a5b55501a7f360616ba7a648648866228bea7520fdb11c70d549fb958c673825f98923469fac9af62c702bab67f29815b331a136b34b29bc54302bf7f35721e722a01cb7a327b078f590864841926214a3f068fddfb8cb196c7a8d8c78358488723bf508a27729085ec4c9bb7337834212b2ab082ee1339a8c64e267517db35ca687826d4b62d40b60aff89c720ac62fa2c3091eb87c3eb1f33272585a6c91d8c669b1a69c9211c098105a0c58960137b3563cb16da942cc90e47c95bb0f9895af845024692bdd99e87269c15f82468454791c7682c8962bb8b85430bb6ff067df8bccd78a476779b075876350b3668fce84af7e5b6a90911f973144740046aa7bab4a1bf2e6961540990d159ac6884c85b28309336ba18ec9e2455cda24a1c25246375dabb21f0c252b4319452719c84756d730a33a90502b4749d36a2ed80b755a931148c8074065487504b5a7c2db6f648adf92d8c8258d2689f921123ae5495feb095b5c4981a860df6478340bac21b700601d324c9d0a1951353fabaa885f00b3622b59d31cfa2eb524b3a5f33e520c6074382ac30cd9636f9c3693f17595a4942f2bbb5b168649fc35a3ad63d11179e64c0a7cb258692087f665620dd0125e5a8901eb8468cd2007020d53b72000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 516f535f15a891e51513c4f47d87634dadaee540c8d5c4970f199679cd8faf38eab3c2369df56d5b31722036fada3011eaaafdf4f83acb5141e2054095ba0f31ad2b89532ce8a55908c9349fa23ee04b551853012e712538f02c7c6cb9bf3ca670b8a3319aabaa5f857586bf1cfba6226144b9b40bb90a706635c1a4d252b8f3bdbb3eaceee7c0dda061b9da7a3166c1464f970dadfd92cdf2f6589dd8c07db7d8e7071978c7cfc432e668eda06826facab576af7213713abb2c3538291f9d09e59f956b6f2946d67815956d3b9a492bc2bb1a2942e869245ffed653be70f0e39ff06ac55d7f8282b331404bfaa3ba7213c17f7939238f7f00931e39fb5e97bae2d4f392f59ccdcec0881d75da5933c31f20d66b60c9383d36aa12b1a975fae04bf808f6ba0099a838382b844df1bcf1366e96c462e2219ae96c3d25d10792c775a2d488b27026e17dad61745fdfd44772116092743bc74ac5bd519dfa22a39f90f4bf38160daa52caaf71778f1c2030c8715674c2aa7191c988b6a5ecb02bb68126816db952393e8c52e91249f14e920003a6f803b09543342360857b2de0b227feb86187bff55245d6ea004d54527ecc6196155d0a32fb1f97908c2e61ee1528ba98d039096eaf8d4bff977f05a9a0b53436b55d2b9322cf1b0f6891b0573d44eff7515f5005f0a12b7066180436c24bde5ddb183652b1f41245f812981fe0e97ccbcde1c2f3ef7423d1bb5e744c05ff49dce1af51392851a716834b4f059fe179f1cd31860ed8ecdcf440f62333c86a6cb7c21409fe20afafb972cc3ef584cb76b85208c56c676f21eb27bb490263fafaa2e23e8f3379023df3250678d0287badd7cf425c04632c1b688ec438dc6b3963a26e69e093fba5ed940e672bc8ae109bc78dff824a04b90dcd5a5a453fecf60c33596b4a89bf683e1ee5a3cadcb0a6c1371cf21ff75335f16d94b67c0b774c38c592a498a9d7ace89c5cccd998a339c84d3ad90e2fc96c0d1d4caa6cba13c5a11a9e04936f3610e16b36c2c37bbfb73517ac10ed3bafd6b9424c2dae97600458553a243e124c85ce66b414129f3f08cd48b33af0a633befa2515a5b7eff8b6ba70710538926d05ba1fe341426278efb17b2b3769069cae9c051168b5e5deb437550e1eb7c0bf88c2514fd51d8d511b7ec90c233b846a103c0fc516e8dd0805c5a2b0880b9a5e293e0511926802b252b7781332fd73be09f02a7ef234cd1cb1effe32cdd7e3a37c8668884cb8e6cc10033f42786c3ceae1754dd4b7b9e69fbc8273e27f977b0e1c3b320d2dde5f9edbc751b742ab24cfd776a67f3a5d52409911d1fc1dfdc1d35771f5ad35d19c36401b2688118efaf1c71f333528ec6140dd2196946d69c6f1b6f53428904dafa316bd4a28ab7fbc9380928abece9ad7ff6c6a9c26fc581550900b7e6e4db71118da5d5db5c504d0d45b310abf0057523d573f868aa04a99be48cc694e194737a1502c2a379ad39ee8d6448867aa2c970c84f00c446236ab4908d791d304f69089968ec5412a807501f5a11ddb06bfa598ac07ec27776415da98efc38326973d6908c1b8cacb95cf2a04811ca39bf1ffce699e4c6d8bd35e51e4e02b89a3545391354a8f4d46beaf9864794524bd6c975b15ae0dceb2c4623096d75bd1ac8991880b3cddeced70fd3b27af44b2d36147c2e0d34048e4f30de879618e7208529d30122fcb179f754d2745169afea6e91d5538d67c54648faf2b61ee1e75154db58d17160dc5a5a36fab0a8dc86e421c4d99f963e6822802adc7b261357bf34fb4ef076d1d617e3ace0b8936139b52bf6ad4ad26205dc206756ca54c972bf932d4d0646df0eaae7a7bd2962b26df4aa54f4e9cc353896163c8b48355c7df687941949ed03b3434102708f881cd9a114163fba2263e29f992eacc807c2a96dae2cfa5701122f8426feaaf2d739802b29f1d70cd6a46d1a8e15bbda052c2ea8d1f41d4a5d856c44ebf9c7fa22005eebb61c0f0012e4e36b2ac1926db6938790e1319b9bd66de5ba35674bbf22317731a8133eb3c45cde4f328275592472ede408060462ce06623926426e5c2fdcbf725d5bac2b34e0c887e668e0be3c1cc7ffb97dd030295f8739c9813bb429c4ad0d381bf8958d76780beca5b9f559deb25905c618fabdd3bba6a80085b2e5b048a93ee2673447a70a58a09f06a30298ee8d4170fcd +shared_secret: 2b5d1e7837bc6877b4bad1c4b7e04276d96f318dd248017846f71328d85e2eda + +# Rho leads to frequent rejection on matrix expansion +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = 74187555c00026e85418aa30f84bc81607376ac9c2e64a98a4c024c7165610027967228cf5f85dc88ccf5df023a8cc0e76723c97b99934766caaa3bfae25afacd39eaae56cf36023c6e368cbf38f27a268ca24845c48a85f2198a6c1744c73c62c830c34b8248b52b62f847c3ef87b6458235fd25cbe2abe57aa62709452ca6412c0932c3a10bce9181628631db6a7b525d1c7e5231e33f65470a31371023444926a19f80a67495a9fd1043efb44adf3789c576577f5ae6d136b3268606fdabe081509fe1c4c05077a6805b22eea9f965666e82866a47444721a3e7647250ccbc69df06b3e3c3895c30f6d275ab624913173952d630aa72240bc4b979ee55ce8505f42f1b7ae797f53f4b23616a00df2153fe89c94391a35074946764275e064abaa01487830839616df9485423029b470401cf010fea769d6f237cb00bc2e8c13f6c49f740c9544aa6519e93dd824ca395076c184b2b2078e4a51622401be47f089d2668260b1b8817052d0c407a76009a0b61abb0a0b3c481d86d4c4fe19b910d1b34fd4408098ae5a599e7eaa04321c44da53297f788d9c2a0707f8788780343a80cfe6119bccba711424cd8c453649870280568347ab5bed10b57222c213e55c703ba7f154939898c89e43643635ce47534f770c44dc839f295b1361a9a6bfd494baa2b8a3264bddd204f1f063887192a0f1849e2b0b3fb6293c2cabf6fab1aada5ab9c35a6ecab7b4c605d6178b26203ea82a76a9fbb7d95c8cf0230dc2cc57128493d0b47324d333ace21d3b3750ce6584cf193a0aaa25f8f865d93495598109d5b07450bc9c590905e9a19934e28bb5bbb149f2b68965056b989338240d1fc52e87446d3ad6617927cdbd268249b785695311458909c62a724db618fc28114a904053ca89d127150d930d583ac664ec1ba08949a027bc86c403d0865b9d3781b0d4a034067fc558033760672639697d649f8bc4cd2a90ccf2435fcbd98b3dec0367f02889991aff7709bb0503a2c732c3869b4f969a75f797f32a323d546a5c47ae6e3292872ba85414c7cfb28078d67afbc42894a92172ec2270974a259680f659a03147661ce4ce94d608b62a660c0099ee1460b71b4c091110ad6ac5e5c5978ec04a203686f1385573663956e8c77a5c29ef06235b671ecff82e49d68f8e0054409c68858954d25162f0177fb08b29f5d9afcd4cc512d8b0f42877a60197837717887849ee127d5f76871276b9a285307e96890fd3569c9ba5c58664cc20744c9609bfb859f72c85363a34a721bcfbf2b9c48c1ff8d813ca596430d62370f91b342516e650173c711196a50396e43b46d6661087c4adfb8639c0cb17183dae91b95e1832ac14554909390e087e3bc09e9ea5ad53670eb93c4fc653a6798428be514d6d00509ea1310ba84fe56b2eea2006817b31bf661dcaa3b26592898bba2ea0379aeaab254b9b62c4421a06254798b892272095a989513a2199c8d90afd753b574ca7f17c2c96334f32a703dfe4735bc2965db62a5c995e349bb1d6c63736874180b044dfec8c83527731781dc193b68c997b4f8637a7c86a8c38172e42cf4ea46dd43abed5b0b386508a00bb0203d6a8a0ab5edf228a85aa8f9152b48bf1bb92240c92059b531b4206abaf3478c41d0c1c054422a7fcc405f7bbf453cd9e133208e2475738a03e1ac2f18088cfcb51c8ba447514aa59fb54066c979de9c38c43cde0162f30023c3a1026a2a2a18cc6c0cfc390b7336548a06239d287b6709ba92869a8673448e142f74848bb38b1ded527b0a69370910fcffc53cb875b008d7505428ec11b3f93c7ba27664ea1099f6dbb3cc1ea7d84e1807f3b5cb1b2bac0053c8097094ea73aa033221c853f88672e3ea335a5499502037dbfa227aa458d5ea59d80fa4a2eb72fdf514f4fe22763d227c9a69a5769b63168c4b4fa9403e3a1ef54b39e6568479796c591afbbe1a911f92df63aaa698a2f5309a92617242999176239bc01b8ad26b02b6d7446d8067a52d40c424b99bd353de13a6defc9a92855763fbbce9f648715aab80342beaca6928a036c08361643f669365105fc6853db1a44ac0b574a842e58a74905c9c437fa375fb22d7b113ec4e91319926168516618139d8edb60574774bd808f88457609127617c85394c65f2e3d78ca47000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: e831dc3e5f67734ce3520b52763f64d8f40199c8dd2e723441f9d9fe9b33a1ad8ec79fce3745bc53ddf45990ee1f86fe0191cd5515093eebf6357409891e4822b543373ff83f3c0f73b67bf1e15cbe8b95b0e3dbbb20f10fcad2bd05778ae106e8ab813a131469bbc6da7c2ac3b991c6e070fdc7781cce3cca56fb572ca822b8a52592d24141f089a4dbb842a4318a223b947aa7684be12273592e0d4b6fb65071f9292293a85eadee0cd22b6b893a683d504906923abf3b25e0e7024e7b499b281c965fdea72de1f02fcebf0bdbbf6e3ca02bd05089f79f641ad199300cecc03d88d41360cc895e77ffec06f835c5cba89e8e3d17906bad950b85542bcc551588c32f0376631f554cef3de448afccf8efeefbab031f1c95e569c8b90bda0038082185370403ec340ca345c7cfb1e82a2c5c47bbcfde132e798f53da8c33adabc610272e7ff2037a009e3d3df4f521e8c9b5f3ed7cf28bed5d25145926edc4ce783b11896be3ed184e3d9b92b29dae5510fbec4386e89bcfc033704d05ba91bc6bb09320bf017ad7c567f8eedc273f992fb6d6dbdc9fcebff8007088afd5c9eeb3b14b152185a01b8fb537530b7369b30ed437a280f71597d09b07c1477d8680ede31997c8b125267777437316c44c3b1a1251f608ebf5b37416b5a2914edda779653010685c0d391f888073bac0d4f9b197fa009bc0bcffbcdf0fe2335d6062edbe8f25f87abe8f75b80e9f9cb6709057271ed6690c9b6bc6044c218d65c88b8aba768350567374b66e0489803a9932f77008faee9a83402269803ca5c90592491c686bb25b627dc997a3a8c6db9e5233e02ddb4e5fafc182bf996f741f6f34933d7ced8eb86da62e2739f8a0b956ea7bd854b1c6328671adcb0e233ab192e6f77594a2a3a11dc534a21b5e49bfa45122e24d878c4614180b230836e95a9b3dc8ceb7c826e83a66bed645bdbdc0c4257cac60406306bdfa30a8b8f5a4480db8c75b68b31604cb3eae19b3893d3600932523d0c55a4ed3bf8f86404764187dd4214de1d9bdbdadc7c9fecf06a823d3b3ae16561b3b1890fe1b9689d92e478120e9c38262d312b3ae2eb3d773d946ec99f018a6963b261fa65de5887801882c64f5598003aa4dba947022112cb33febaf8b224fcd3ed10cd2f6b4396c966b5a9709e69c7b7eef4a926171762ad9707af6ee93d4c17b04af42fad670cb7099393d8182045a22e1a7bb8e02da5d4e1fe2bf8c8bdabf7f7e2a3e1fb5db003cf8078635dcbb3cd2b49cb3b8d84e6ed64944c2d75cd6f557deb1b51029df2320ddbdee99f41153cfd7ba46d44c63c90772c3d60531f60e7e761913dcabedd57bfeab2fd0d8bf7df560d8fe30763e7d45c22459991ef1583e6e937edaab7e9f1e8a68552336993460c3dfde7f3a3c5b8b44d6afd57f04d62feb97290b488286426c48c4c87fcaddef7c06a534b671698718fa326549ef5e8e724cb11c21f7b362b967caaafd8205a3eec0a52bcb0d6ed6a1d0c4f433cada99e021047536782581584ef2677b3f3bf75983630e70d57f90b13c369bd4103fd643953190a536b05ea60b47da77bd0f6fabd0ded8f608a08d807234b54830aca2fe82a181626a9b9a219246b039036d1cb04748a2f84094770a12de1411e4510f11b5d090e79d8185cd8718649d88000e6f9571bdf78623a85c42afda73e637bde0b5a5e73aa2ebe2cd0897ebc09ad6974d825a5540627b1cb0e7df03a73b91270ea6402927bc4698cc061cbbec9245024e0515bc27a52714e2189ff3a17caf5b3530b781f70786f074d5c01b5a108cf7d13c2363cc54c73ce71b4b33eb354dc377dab5807a7d05808833c270d5735fb1e75727f66d3ca1ba467545590f3c2fc1218d94bb264ae313930ff8485d616cfd5a64080837ca618344559b46ca89c8b29f83e9a2bb62db57cab70be4042e01f68ef54d3a915d0eb51f21ff89b729ba4d63c6b2fb1b14e5e397f13f0c277dd81705581de763d3a3b8e2115156b4766d40e8bdc0d68bf76e14233d8be21a68d881ca6f5a11a1ceb0393f73a9276eb78bbd740e4a94128e6f5eb00aa10974cf41c6a4cd22ead82816a402a50b306b5312ba196ea4df4c5386668079ccc95a75893b834415254b2feb5b25f0c7529d6954a3657fcef64a8eff497b95ffbbf20bf7023cc62f2119e2f06b3e5fd22b39feef1acec8bac4962bf52b90ed35 +shared_secret: cce58b5d736b86aad09ef4782fe87a0a4555c7f0a4b190de6246cfb21308b103 + +# Rho leads to frequent rejection on matrix expansion +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = fc2177e50618c73948527b9073c885ce0873dc47350eb3a421f59b4cf27438ca36d3f271b4467f61a2bfde259cd4a67674c4a1827a7e23e24e023b08aabac3c8855d4c737f0e73600f368a8614529aa4217f198e1eb69696f2bbb829835ffaa069f31b1c9c5100ca1ea6781b47c3bd788ac8a3831a56b08093fa64f70a1d3402b17b184e96dbae2b84aa75c2116dc1ba6183c6ce5a3cf1e1c65807245fa3211e9a49703498451916a8a04325bcbf34140539b89acb550565525f99aac5cff44d25c163d30aa6d9f36edd44a3b2c6ba5b54ad0b0b28a5e0991fb41b909067c1300fa6d174dea315f33434b6f79016b5be65d87333e606b2243ff524a01a754adc354ae2b444271a1ca5d4c0f06761300715ddf58cf16a41a83892ab379348b778d1a62cb4b806f03c3f219b8419c746b1b127f5cb8a853955626ba6a5130b19022845cbbb250759bea234592cb294fb7c97777855236659f48b59a21c99ec9130baad818536ff238b33234c718a45de873a69d693db31157a86c9a123b5ee11b715b90a409308efe93db1e3512b012435f26e260527681bb939216ff5409002dc4dd8ac83f41c745509a82036ac3ae524cff190e07998b2e93bac316932fc0a56f98f27a7189ed4449b875f97a2950366754d85a299a422e7b7405b629542007ba5c93e372ab3d6b2ca26db5a9107cddb34408d0b075e209239c2c52e041c2889a625b86282ab8232e10cb14c04ecea6037759f8a6057d4c2037527bae813982128205e535a855710e077cf4b3c94db0683d462365f40043a328cc0991b84e8066e44bc2cd020722157111a76970a521f85a24708565c38babc003b1f84739ff5c7896bb3b9515cea8074f2eb18592b2c9af9b67d4b3f831093bc49993cab27f4b8a47c4364c2855d9cb2cc7e5c7f9d6b70076057e3b989fd314e1c16161a4b1e83713c1fec8cf29a60271808c03814e7252c52c1440d933c363b9878b198ad3641c92c53e5d4bb240b03fb81086662041c03189e43c7afea6cc036a12af28b051792fca44dbec68839d3ce6de4340e88bb4289105e162e8021c169c81aa462866cf20eca2206f7745685abba5636897a8c8ba1292ec1106d623b0e2769244f702a3c295dae415602a2b313da54184aa3c32992bf3c7a846b30fb046c816ca123854481ca1a6d1076ba261f0f969003a37a83e822b668006aac6d5ea3be1f91c5f2300c53372668d3059ba8b8f6f020d2c5ae135811c395138f4a3c17f86f20f2bf704705f7b7acb1c617367bced496cb3ee5bb23e34eac352d60459704ab39b7b2b98bd2c7d5f809382331c3f29bef5aa25b18adcd821dc4d0854638be88fa55b1d00babf77ac42b6e256a1fc3030870a8c612dc2dcc686ffba99093b13889da8631a60b150946cf85188e15826f22866168600c3629494063f1a16ff5b90d6db24cb08c6b6d0257730970942ace54f0a0316b0518c1810c860b276b510424163e6826dffb02fa1572b96a857af935ac8423fb9179452cbea55c3fa490148793c42a0450dfc286ae68b782847eabc30e3652bd7d998324b6b87f7b308a947b1bc74683c02f73f2b130219529950bbfbb6b103645685c8461216e8d51bb2c1266b449657e63625af83743b584e325866ad14b0d5361975c01462739139c8ced3c356a21080d5649753a5ac4849c7ea42820d712490a174243cb744b75cad06f4231ad132321c6f91469024a29d7ab8dcac97a91aa8a08adf39638c1053082c3cc4e38adc7950e280c17ff4781600a95692a76f0c53456eb697d30a354f738cee78b5ab7ca72f99b8c224e44d3337851143c46907dd7cc6be50f6f3ac6f8d8537ff4bd12618b79881148a9791bfa77fd062d65c3a5e9f806770664a050570ca2858175867731c2e2e49ec3a88015b96498806ad52580dca82a37d34b39fb5401e45aa7f8ceaff25e6cf94b0db972d1c21f601041ab309cb7e757b2d65578b252585bb6c9456f35a89024306cba79886cb05af6cb230f56025d6c31c325bd64ac6cef327e66f6b4bb80aeee82043468914a7b0b5481ae7b954789836e59dab088b54467a85fc042a26d0581a1d6059bab0f5d0050a61ca1ef1c705f4bb9fee243b8452ab7ba022bd6a3838baacd8725e7b37bb09580e371813ab53ce7746c7ae67fe6cd89411d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 04825db8d0ffc522482a8464e01d1da34eb0984cee438850ca8e3b8fa37ccf842aa33ac29ccd52eca6f187be197907e7f84ef4bfccb1af2ca91e7fa3cc6cda0dd3df2efed4c3980d9fb011ed301a2117176d5a94c1d9983fde14e4f2e45f28932df2ef001341e57053462edbf03f4f6133918787ba1d62619eb818655091c7660dd4162a1caa675b125ba8461b137a55296b968d1851c96c455809c1d9151403e2530b18ac186ca769cce801f4cdfd181ce90515dc1cd8c1c66596248099de2ffb8ee5486d7674ef326338dd55b2fec7798e34f57351cfe5258a52a6723c147e9908d05132636795ca6f0bd682a10b100688e4d9f9d619e2e8de507caa684208bf8bf9e3b63d473b51ada0ec4424021181128f55595c2fcde65667e5221bd895eb9560944f7262ec89d9070c19b45393a69502a602d753b97e8fee4f1ba1762c21e87d04d3a86c3368b15043d36906472bbaf160130a31ee3ae005e1711d68e07b176349a50647da3746f42862d1dd394b75f4a4baa3061544477cbdd03a37e34a2c57992cbb022df33f4525ca3589b295967976d8f46c931c047b9912de175f2afffa428ef4e68f2594aa88ba839e9c278b23af1b0d1d7094ceeece58ad15d92524baf693c0aebec574c10d67596dc5d835880cc3c79263e5ea520e6d3dbb32ca894f6b37c07b7077e4f807b1f931fe37324d237be301f92798c1279b73e1f57de6825588f5a1eba171b85cde0e4b137c84967af4f12f26f340f0269868184c4b2e01648f68db166ebb134b67e135d3f510f16c450024968106fc8fdc6d49043a1206f89a8ebb7a59a69d354440ce2f6ee4617df5acd396e3739639094efbfd93ea89c436a776c910dae04317c3c9c9af5b265d8e8fc3934a5527125bbe8b72ea8f9c7ed3e760107b313e4855c799e8013a4f29dd69d7922cb76a5cbc6b2d3a6468d74ef015da8c9c3f3c47da81ed7f1491fbdd67c800aacab404e88df2c7fa383ad3d07a1139881db4e99cad396769148d143be6ec5832fe8574310b9b89644865bb206b1f75704dc883c3913ce8f4a3bb0c24dee01548727957d85e42139c16b5e9dec16df089bc07f7466ca38a421709e4cd86ad111d7ed7a317764d13ef73fa4e65722d955d97e8f37341bc511f9596f2c46c356e5366162ac33dd643011777fee6beb5e8b03ded3948e165db06fa89a1e576d1e52f7785b6fb1133ee82a283766cc81948879815e8fa05cf29c727b8820b39a4ad80ef57e919b71d83657331c8daf6cfb1cf7f883ad31fed93df35abb12ad6781b19c0f4223303d39957798d516d09dc00d8dc52fb60464e55b8db1ba5e23236873c1c4001bcea552f5f633ab42ff3124aa5d62592a9405dc1277e24a9fe610de9f3b2321774ef6b6dbd91f1030561ccd890a99df2a039264c74a3cc5bf97ce8572a4ac1a34745e55f9d31bdebddc04882fb27283d63cea4fbe6e5f5c660a8ab5a535c44c56c39664206e63b11ab9f7127579e9e7bf02ca8e249c2d21639f6e09c5e4b73ea45351d0841f87aca886cf4b171981289096858f59a0796d04d2b0e1dd8721ff246cf53f46b6d6fa2240907440319e0fadded6877a1cd9be7347a2b757a11e0563b6df98bb12c79c6fa60803bed991bae7524f7610e77026d5e75843ec50e684bbabd0b37b1c1e2b1b58c88022bc874e401828d20a013dd67f1e26a27b440b3a85292a65c39ef0ef17d26178fabbcc21a64e4b90daeec7a763402105f42a819fb9096da9a52fc3e918259fecf4aec6f54f167ffb795264ba7ca86e7f9ad67df0f79ba29a83534354a66b7c9c32dd386809e3245b3d7b4d353c3ccce2df45d30a37a9bb5d197d1ef74a31b0e9c9022298ef0fad317ea3990af27d9b2c80c1a123d773aacf759dca2042046014b7e228c963977cbf7ab81cfb7870e9d26049428b2eb88d1e4e1def593f087adc169e46a36869ee73ce1f5b3ce962636a75b1d14d1423fcae3332d2cd6ef6bff1b8cb7221c04b7a27e5dd7adda864826444c94f4247601004091548f8e3fe14db0e3cca9528e76e2db9d5686fdd51442f799e41d7f63f93a17628b65233e9882b82916e02a0f84e5b0592ab1b8719a0aac9428e2eab67c95738c82e4b0a2c1135bbbb9d243acf146b2ee88aa84ac00af15cada505528c1eeb3c7bb23dea16992c489febb1e242a67dbfb454c95b42740baf31df72eba9351e1c1 +shared_secret: 536cdb35f0c8ba05ae954b77f6b04849704359e9e7cdc7ff879f4b70dde3fbd2 + +# Rho leads to frequent rejection on matrix expansion +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = c06b2d1ac8bfd7d00164a4122e50441742702ae38c2d422f6d956a214375485443b11c3a1d705a03728ba53b9cfdea8c83550ef17b9779220885b993df38bd50d12933d3a4918c92813490aa5792659206569b7514a413db3506c28095ca4840f964312ea8862bdc932bea84fc19749c026d0e3c620de5942006b47083514f141f2fa81713bb95523ba5df235a78f52aca7a8b86256c64933baa18342c1a3de1d3a0697809f6762290b0474e205253bbc80064a8d60ab8844324e20c1b249624bdd5434efcb46f52a1d3881cbf0055c390a91b286bf0dc67a95a4acf40cd858427f805b057d85a5d121a7888626341a7e475a512476d8f15993f58918a22b92c23908bc528dca6c3239794b802335174b2e2246d579b5de3a17d7f1aadfe69906601730f4b6d6717ad98d6371628b062750459fc9cc1640b8a584a92d10d4adc136c8c7bfe76748a91af2d644ba95690a34114ea574495f967f4b951cb487f4369858f79c111e8671a250dc0c053d857b3d02566e2254df7c1be3d1651bdf29d96829a5f41c691f4c1e4d8a5dc5b4fc9dc772e4411c442bbcb767508b7585116232b8b4210bb01f7bb24f54820b29a494a07a4456b785b90b29fb89e265985133828e8819f3c8437449748c7cc7b5c40ad0fe193ed6b1f0b0ba71339adccc7020b9334107c32ef765da84564f8ca0efc213e91219a11c495a44b905acabf18720f8396c4dfaa78a5258e980c6011712188bcbf10d9cec3028bfc85a2be9b7fc879cb86175900a66df3128843c53ce2417be898073b362b98942bd52183fc0b54e5b84570d59cdb6282ceeb3ee9226c5a5806c4646056b4aed3a09dcf4821deaa9e2b7623b0193d2ffc25abcacdbd6a39615102818b9ffb6a6ca89911aaba7f1ab6cc1601bb056061fd4417161b9a1678be6f5558d2870af1d18219a031e685c66cb74ebe7a2f177b59038656ffc56801c839445c61035bc54ef2b2aa451ce494acb9574c8fb4a6e6399f07ecc2ad5054bb23cbad267a9ef4c350a2403c06bbce5bb71f2865d905624fc0c84868a3a7f52cbaf45f9ef27a9a0a3e83da93721464a910b9f0399fa1b856bee051ab84ad33113d7001af17926b70e758f8001a790968178c1b9e679e877591fd177384519da0c94157001bdb6b112a74241a447b4fb31126ac94e993711c4658f20b81a7526a55e9945f53878dd64a09a481023b385de41b763ca371a3cb5c927549b112fd73cbf2012a5b334f446962111907c4b04a0c06ad9c69b85a722be0a33860997ed58312bc0b1958c4a016650eed626661785ca1e8766efc09732a7c3f8044d18564e2dc8ad9c62563a01433d8145b13968835111073cb134a9b0dc80f195ab12732514cba1a66929065e3159c4a6e7d40b182f420ba56aa6d4446eb7bbf49db265cd22c189139b50b2ad4ba1fe8a130e4d9427cfabef8a946a51a5defe3642842365608b0af110116dc3bb1db7b2ab137c6c3a9c04253d60c72e696610dfb62ee841d7d427842b032a254c3647b0812f20175575ec1f1c0ea14824aa687c4c52f6d224c289862e015634a815dadfb1ec495c4cc968ad6e983c829490f1905b55a1d4a08b50d3114ef6cb4c780cab2ea702b8762c89492a29c452ee35e00c366a7e932a916977c7aaec8908219466864f8b0c5f8a3c46c745aa96550a710203055e90916b190872c186efa16172399240e0801b3166810360db1c7788a33be47062aa3310b57c1220b9001491512be0366bcc67ed80640fbfc7fa5199d261a3b9204cc085baf653635c77c80c39a080dd61b3b095c9ea24c8cd270a722bc16ec5011e2b6494b0560f8b126b943b0b56fd0f82be5fb615d724c74002f8aa85aa91cabe3d79e39753252b847843aaefcf56e08a919b7bb7bb5e404770a46e6bcaf4d278924f85a49a496aecb6ef2ab692590877f2710cb642f312231310926eaf8a96b4ac13224439decce0bc614e8050d698b015d318f284109e2103d1e877a4f43bda014291377172c6c8e1bd7c80aebb3ec3578cde5ac745335b6408d7cb5150e26bf95641441dc06d9454ce9e75bd6eb19b4a49c0b70adec9695c6a5366e69146aea0a6f27c53f19c4c718cd21d1601a8a1bd2c26f9b5aa984abc34c4bc9b0e212e1b84b2e41547883378681045145b341cd0933ae000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 8d6c45548a028fe38093d0ed1c1f89f921d823750a65a0f4b55eec20b6144a6632427f53b6a56e7419f89286e0b958d63d1b5ddc633edc0b08414794b6e80265b426bda64347c7e6e8071a7076823bcbc9c96ed247d85386dea5de7eb551fcc92d86f05c121d16fe669afa879faba422c460c1998d150fd0f2a27b9928b66c022f879f153f604d6372c173afa6e3bcb8b9792db362f0b3ca28c7cc4e128019cdeefaff98cf247f3db5a35b59027124d440fe7c3f523e36e48c343bd10acbb4faf3859e7012469779ecd010c6a94ec63021be2c22290ab1e4bc92dae6dccc71263172172a0c527dd379453e053050b79aba7100854473abeac7c0f7d29fb9f72059e5b64f83cf8a7be5c2524e0d87e7b9b1851851291534bddb128d69cb025416433d006c7ae4e1e9ba95ea63dc614a8677ab1472cd8ca7d9fde895a658e0fd4755dc340e46847265454d16e561ef12af68e4be6db09c58d91221cdaa5a2188fa05258b0089c1d66ac890d8c7b9149ee9e27bf16cf78a323c831c5f3cc063a2aa48f8306bdd296efd061305b1da2a696bd80fe90d2a873bc9384231a6edcfc6a83bbea524eab04af929d6d489ecf5480e67722f5e67ebf463d36a6b26131e9284e40083b90e0fba3db9e347b7470405cb4486ac1ecd87c4ae8893d65dd191466863d4d98226c6790cb8a176b53978e726b5494397d7a7e522ef31cd40e600f4156384a2e605be4be6be73b57aa1120b05700cf7bcfab4aaaa439cb152da52f4129b78c50f5d7994591b37fd444a907981d029298d590f4d7ac3bbde8d852e65d85a0402ef680f348146edcfca9886509e8017354daa6634a4880ddb3db205aa23b7f1934a35464105fe852911c7729fdd5ae11b8ffbd3e329c7781bf9a19e8a25d2f15787178cfa6addb4f6d739d611dac67d64f01647ccea0a02f2f03ab1dbf0e45c95dacca0395b3b2241a2a4ff3d82d8fb02218dce04d2e00ec60208a9835daed88c91b75a94d80a5c10054491d48574766c40d8b2aa96836f9965117310574168eb234ea516df470ec12ae167c4b618162b6b7d751b9e8f7ec84262c8a3d442577456023d2abaf2f8f666c7e7c2b230474597e344fad49eee580f429a65e40abad25eb45b3cd9df1cd42aca2693be05af75241638df4a8b400e2df9342c35f450b359c1b0cfb5190453863d412061361ac6fb7828044e55302bcc6134cfcfe6247034a65e7fb89da7ea05beb35a386950957aafd29c4d60770d6d150a3c97e50ab9e6430bec496b9255aa054383d1858956f86d600ca56f05db5546af09b81a3a9b473d9b8b5d83de010a6c4dd27bdc1e699e998cd2b2412c732d21908441e7e9d43b571da361108518223b1a3e8f7c9f36599e4f933c9208a0716487c89050b473a1d027b31044ebaa81f8e62f4766c3887fe15282e84dfe303ed273f96fc70b6f4402a5d97a59058d016f3f6e9dff119edec4654aeda2cc011cf005ba3d6cb562c23d8ab2aa1cc1bd362ecb80f3e0b2261ef518b77664f58e90747f273fb19386d3602164e1c126b754269a6b5da31f965c36023fb2eb454e6fe0ea83c83c2033b49cf54056119660369a499da230a4a6d528729809dce197ea36b27ae6324197ba3dedd5044069ecc9f5ea8a02ec29089dd9e991fb828b87f3c573a0bd7b9490f5437d18f98526b4fb66ccbf2f58bb8b27441fd5a8b54e23861115bddb1ef115075541d6187aa3083e156a61c4ba69613251e2c0800df9ebdde17ae7643c3d6032680ed73b44711570a8b269649b33360a92206b4c4ec4529287376d3b0596d9dc94a5a25a75596fb3efb449fdae50f3446592d9a0fea2e9c68de91e21a09f85a3889635927414d88a5f413578d2c2e79858ab9a2a75f9606eb8d3a4fb582429bc5527f5e56da5f0e24cb3afab72925b3a9cd2443304dcc1cd96d0c496ccfe6941f870c230bd3831e7d6c25ac1132cae6fd7d874192514e7f812630e0919aa735b5a7f8fb04fade34f1a478b3b2617f0fbb6aaa1392adca2102518b4518e40919ae5f7770be298c467de4663cccf5349ed38056ae429fe00d332447e12237394b8549fd8655b31db77bf72388e58369248e9682fd2b306178bb7bf4aa3bec18da1ec50f5004f6fc8a92f56b4b87ce71e6709a15bf5f1442ec7a0b55c70507d3ff42ce190eecb930a2191fe764ad8c3e1ed2118effa9d8806bb091b8557 +shared_secret: 7fa8518febf294de03c48fd26404aa1736aee3eaf19d5a55311fc4d367d56447 + +# Rho leads to frequent rejection on matrix expansion +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = 4dd98b98b790d85379e8434858571ed2261eda1ac35943b4361abf24b92af0723874601a9dc98a6c872801c54e55981024887f9dca26f6531952055f0ea90ffa859e6c39aafdb8621ba078dcb4884de4bbbb0b96ef167d5332c00cf79f93d30807a44e60e68dcab05e3167315f5b71bd2844017b417af2ce61e2a2d2713b7945cf20a39a0cbc92a07348cfbca566d04fa6983c3e37b2bac33627abaa656c873da54a46399ae61117086b7798259a11315dcf411eb7b4a32f375596485dcac61494978e3ce6626b8194211bb134aa82d3b28997d25637f4a9bcf828f7a17d04bc15eeaa809d582297da9f5afccdad46b71983a5f40763d709c2d7038abbca9dffc530ef293a78a43aa2979f53d3a4ff184d2aac5cfe7ac114d378c7a4a46212a3c56c7443d5b4ed309d7d356e169270196159ab428b6dfc5441004fbc019de1f5aa0aeab64c850d1e9acc000a9628d849bdfc7d8a4b29664b65a66aa4ece6a72ad5136a7ab61f8c85eaf798ad7752b1c5908f931699c35fe2c19a7eac2c73f512e4a368e221381281c6f3688965d55969309ccda49bc38a558b605e38bb593c2bae94cca262b37408fcab7cbc29dd0466b7e7ab4a6013bcc7a3d9b87045f7609285aaaea16ccd1cafefa5a22b33043d47ccc0b0c9a0487691f93f92ec0c9ac47756e3cc91b3331866afcab93966c2a1d1490238c79c61d757e5c383a691b2a241c6c19bbd5c99655c4c632d95b9368688ed9294a4865c602c70b40ab6b1cc6c6b039206bc560c302394e46c428a82979b2288b30bcb813e6c35c35565b67bfc1dc4804ec8462d54709a4ce181d46abfd6554afce4204eaacee5092828321e1d3132d7d0b4f2444136117ba1dc843b440e2b644ce6b5cd1cea7ba6fbb1adbb0a4d9417cccb68add346446172ac0232727a6fba3cb59c38057b2b8be26b56d974483d31019fb33d94449226608adbf1b1571c34f5f920565b4a791b78836aa50687ba6ba49b4e280bf037b6901770db351af99bafa9dc0cab14b406561c101478b4b20d4f765d70f072f1d6676c43a8ee432426f2238d37c11a280adb094458fa6ebd2269da310438503e15b22da42a7a24566881d3cfd41bcefb34cff01328a16a01459259e5406451d831f9430ef7e94d4022714c007de3fc0fd637c16cd14489f178f54aaa72529816f3158c601027dba98093712b54aca5d33954077e3b856e4588432c510342e5c99e90995fe7604524a3d066196dd63e98a3b325d2a8669013c9b10cfed68b24b0973f0c286e59605bc3c0d34094ea667b780288e323b334463dd31c7c64b10f6479430406d04b4756fa685aa30a61bac24ed5451a63ca3299606491644e76c765b8ec2dac478192a685210a4af4397f7646309d17b1c1543346ccb884c28418858a5fc9866dc46f5bec91f2a73c02a1585e620b7f9045ced60827f58123274649048477c70f4b57ab8e8189ee8560ce4b84b2d57eac13270f00cac1e0a11a394ab4fbb0fc8890af29111cb87905c09c3d3170806a80063258a6625a24b230c502460f5c44a6c27457e43412a7671cd24911b23f38013ea1d7771f6b4ce483803778be0e5c447b457900133f4fb882d2b9224f2997a532360e573fa626543e856f6b8760107110cfa28815e71b0b1430f02bb857005193875caf86693c1a0748d3a4d3469be2eca0db34b10f692ec1b12d84453fc067cdbdea8bf59a2b00b083a34a5e3061327263be41ab8012e8283f1b86238a077cd02c79845fb71744a0b2306c29a541d6bf2467a483a03324d87cfd00135f8a9bc3aa97ccd68d0fe98bd7bc260976344cd9af0e6c911f3589a09695064769f5b92ee1165ee7f10031d5811274075ed14069d391b09b3b0fb80280767fd04b47e755a1eb3cc3bc9084db2b79e5b506a4022662909c135083b5a12a59c6328f6ca9856b0befb52e84624af1d81b52068ffb80c58b837134f49990632354799ee166461a916b170a5ea397c319b0a492f566257a3672101038a88be2e4ac5781bb829423ca2429b8238150743dcd43025da8121298b8557c410993828c316265bac2f6c2b0e3340ca5dc4c01045c14731d7525158ca89e35e21121256d08b8ad6c850aaff8ae7b97cb1e8683befab96678b6c0c564b2d41d92d24460d75461c91b42b62112ae783c1d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 182bc48cfb7ef59210e250816725e59be1f4175faec6003c718d88e5d802c96d95e024e9cae147f6cebb2fdf3a98b796a1cddbc680095fe1c4a3ee780b61dff0d5a208532a836a90c919b32e23ba0539fa28ad99c3200469258e444c55237ad4f25651ed888a9ba538c90a94f601d0db2a8e0ca91b655c7abf7a4c5e2578a6de7eeb68dc681dbfd4fb042c6c36dba421a81dfba5c2d8ed9649193905692db183a946dfb819ecfbbd94494c36331b1d65e6468c76b28e35af3b5fc6503b1a7407fef9c493d8f3b86ea00900c5928e857744ecae5d8b486f755b6ef655a1fed4261daf062b62352f88e8f41b4d3a656a5b8ce0b3c7d44ccf4f9e901c9a77b84240e6ac45d941cb2d9305e9e78ae39213e825381e2cab3abde4447b2742677fd271d0e53fb1b6eacb6eebc24cb44444a58488fb8e114f4a771e16e96c350518ac2eef03e1c116034e7a5f82dab805994b791af74c9af4e0e80cb1d543779ed0edd752294652869d83f43a26c9198b375b621d8ddb9897f9b2440505372aac898adcae00762e5d46f189903e1e3d21d5036a3eb74c1a833e377050dba79bc2fe909b1f4df99ee85265ba379b83ea67ee9b7386dab1ea2dbf2918c066fea055b7024f60e9e431619d2282cd207a06fe2d926f96f6d6d92906c71c5a9cd64451abb4e9d4eb4d02cd394740a0b6c3d43befd2c4edfa6539b1f7e165fcdfecb8e0a5e52744b050b5252df3fc3a39badff486164c1b238e315362bbc9de3e34d9e10f44931fcfb45c47d368d922c56695ae3bff0d809b620f28ae16916432f7627c2849ba943556fbac4bab79c8b939c12b78eba9ee62c256d378ee912b124f6f7c56be139b9a5b85f6b98aeec516d1086cbfe06dd54c4bb2910a28206554d312f907c7462f6791f07841d9bc88a96870719dd548197f3b92d22b8789656e41cdf629beab410d8a7a5c65453949256892392d9ea67730007cee5482f6beffbf49dfcbec6f76539474f34d9b803b759780dcea2ff8a307998ecaae255cb0bc464c4fc4a236d3989a82b6e86de2d1b9df441fef56524cba6cf996ccdbe18e7dc433a938fd0017a912c44177341a42cca0e2104094658b1a2822cb0d2bcddcf37770efd18e41c6d3c9eeefd57f7d350104b569cf270681f2656f8c561c901a17c5453ae0a8ee6bc7751d8ce737166d2978ee8f38c9ee07bc785dd59ca6956f850dac891e1ccb25989dd3d347a0194a1d44d8c8fe9418be7e0ee631a80798c2003bb4bd5bc76269fff164ccf95eeea8c0c2867bd5ed4838251768f910f9b58f21478509bec110926cb886ac03f6809de328311c7f66636b46fb04e2b54ba2b09cdd06c0b6ccf1f0d744f699f281e8aa1fbe90ea035924777adbfe3fd28d21935ac911be0c8de9e2393632d07f140ccccb46c4d625821b08f55335a95c2dffef96e1feb13091d257313eaae7d911e5e120f2192c29450e32a101738fb6a73104d9ec0a2f995b7b134f3f748efb82e012d63448bc417f54e3f354ebf584b26e4dbb85c75b28fd9ae25885170ad64113e8d5b47d54767ca184d579edd0b0bb30bfcd5d1e44838df5431235079163075ecbf30ba6d5ccb737e732aa16624abcb42f1c63f91862471c3d8a14697ab74a28b4d1c7a7426732e7d323c2518d82968d7237c76493fd3dd169614a756f7f931f29bdc89055688c142cd71dff82a33f4494e36a64fdfb377613c92d58644c5828997849e19ca5de4dfbfa1ad860644c60d794f0cacd1d8b059d9a126d56b41ac2f03d8c0cbdfe04573481b5d7cff7ce84d757b3544ac5162c600808a331fa671629a6d140c49f4685727f087202a8ca5186d2315d47270cd61ed96ef6eae844194dbd3eae320aee0338beb0d163fb668b22451b3d5a8fb2b4c961a9615a6b1bae6d257bc5baf216022f6d2bce09adf8001c9f8e9c9eaab2d9c5af0e81dab1ca14199646e854bc7b33419490b91c01914705f5b4d094f1b71c8557958f01430040eaf2e06f427135e439f780ce8184e64b339537ec933c8a896716738a0986491771d4d4e6e98d4d33e2633ef2b9dc3c0fd83dbdc48a2c8aa53c70aab81bfb13c0cf11f1d5adc9aee2b1301b6e3a7e644deefc7f1ca260bd26abe04797f7b87f32b792a68db6d7136ab6c4a29207ffbab0aceadf8dafb1c7cd28a484049e91bb900d01a10db39398f6943969f82c82788ee1568ab6adb1c6e2 +shared_secret: cd7069783053ed075b29b8bb8f86ba6e723df5d0a8e813c585874f5b39ca2d0a + +# Rho leads to frequent rejection on matrix expansion +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = 453578e606159c2c0c8d25857a72912297b678d44e0b328bf0d05a1b096d302c6edf39934ea185d1577207264f0ad6c098f6ae59759ad045726a03c0735080c6b1a7f39ba84c27b41ae555f3e93133620c81674a8d9b29501b8bc19ba9fbd375875843524194858a88a57ba69f719c11b534b5055ac821216d2a54be9771fae1bba5448e39a1c6ab667ea0fa6df038a1843675aa5ab1ea132f797490c3da86b0d58474db11417645e4cc68d0294839513b36db91bf3ab32b2aba77655c407240226bc0baecba66c40dc24469ee617f06f739d7d2249a5802f69285053c74c98cbfc134706e535a34fa03f0a697d3db3e3d2240958ca40ea9545369bed2d44e75592154967b71956d35031b8b425972544b63b8bec1743608c2ae16444eace5395689a02d0999b189065342166984a1799bbc00b7b1cfc33bc210433fe86464093d69b83e095b74d46b8786e71732c6088b4753933b77d40c32570879525b20b2b006febb8d0195a6eac5aa310a38b2fb1506d0bac2857e65ea29a210bdd3ca526d59a259f7cc6ac20c078aaefc8537a69516a8081a0e6313288cca716869ec4a47b7b1afa40a59f9f1b79a2307582a2537330dcaa4167cd848bd51725ef478fe98c6ab616f71a43f24f323f536c6fcf67fbd517ed2d61efa9acc8b9966d25848cb416df944a7f8f900c395884062ce1553518abb314b446a85a0a58f78b8d9a8cb7f027ec87470e9fa05cecc07328a6fd03b8960582e47e97272960802013be71974e83573a0fcce793160949826f376492e3c4bbc376f60ab1362273a918bca4fa64c13c290af3c59e7b0279f410a14d5b1d53c1123dc1e6515619da1405844b5047831e4e0c2c0eb890ed5660d7b98f01019cc98c513ba29ff89101479bec1f37e81f84b23d907728665dbe96f4c2469105c3f3261cc4972b030c58746258eb14494b39381c8c022b4010f6758a0ae85c10776ca67c8225ea9006d8798cc90ceecea408d896ba957291166a189619447ba3940379308fc303900a409b333c9c5cc54a8829a4b36241ca9bf319c2442093c1c22dc111b64e783511c7b38e7481977a56f5baf2ee28e15fc5f46a0a83a26b3edcabbd8602938b2c320f0a384228f1d1c86c0a41c2d238af906c79c5ba65e66a2e76626ff50bf3acbc24b5891e0f4370d764b6c503997b98c9c4656ef1c6ccc89a6794b5913d829e87194088b183bc64eb55c85342a3d12a08c0518a69b4c711348291df114c8da5adac6661197373aebb3ed6b8f9940a127527f43b0857d9c4888082802acb374824791d9c3684c2fa05cc965b9481f1cb1956b4cf3c84fd92083f371835c087371ab840d90b93bb3a0dee11307c66a22c6c18d86a3ffe89434d5322cb17666454482f06d608a8a0f1509562435b10bc3432331891c6c759b4a8517247bd8ae4f950f09638dc5206e39db7528e63d15cbb7484c2f68183dfb234cb393b193e134a470adda3a497d6049b4d712edb380b278b79a065f0bac8ceb654c0607a387a689713a5553755b6121012b614910543bad77c21ad8770cf78ac789c6124369a5766a65e89a8921520febb92fb85e561140a4eaabdaf4809052434ea4a9f5298c3eb4c8a7a98c4c5811b4519402c55102f6973cd13e503ba847874c76754ed8cb92b1ab398661367a3b21f2d0ba969347821cae1f475567700c8a0b911d45b3ee10cccd2544990a6a29d0140685a1de7696abfba58f1577cd84713dd947b9d14d83901c19436dee843021e75951e6474146b355422a80d6a67e4c4ad1fca2d8e607e28032a7d0ba4ef916989a47059922be992381691e0580b5b5192a210acf95285a9f156d14fb3ba7b8090a6946b2345123477e96c373814b26f12b40f0b302cac522f3c07763b82b53d36abf2c74dd29b8edf0c9bb5c749af9ad86542ae6c555930a7a95d31e9bd13ff6971ef6a62cedb4779dd008ff5b165d4b4c4e10ce512932ef890bbd5331f445ac68d045babc39f1f528d73210d0f526fd575af6e80945c92f95448972dab108089931e99958f28ac08567cad714a4c737e8a37629d64deb5c8dd8b313d10a662906bb8e958a60a7427cf2b0c226452463c1cb716bcd9b93d0ca0f3e2a12c5389e38983d11e7534d77525fc6aa32e4a91d552e3cc5049ee74ff2bb98ba8b60c134000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: f47ebf9c54267c3ca90048612dfd843904470288652f4177601e6db651ac45682f0885eca62d9c71a2526068d57bb05d65188f5265c5d8c6ea66eae04070de6be319e67e08ebd76c77261c7d6a684711166b62198a4b7f2cb77f5646af2f0bc24212b2c6155b1181b75d449930b97c7fa700f151e7f679b75692d4da04a47864b307ec54b1288550f4759b25a34df63dd1c8db38b9374c6a9964abd7e143df3083832e0ee46521a715c2f5c7770904715feed7c927eb1e424f5a27984be052d36bde159795e0f5c909c7f7f5fc5f71e4fcd09c1a24e377af273fb9f469c7374e769d49a71ee13faeed93253fd3346e0b695741870b8bfe1046572f9a64bf52dc535a2ef548f932c8cf574e456705bab088768336e5422c6827d18fa0aca54de0b788876c48010249db3e874b448032390f384fb67af94653bd1fcb64655cf467545c2939ad167e37951a39200ac7270c6d7101930c05d417e7407e8003cf428f8e0f4a516fddae3ad998843f73d96d97fa84d37829c0072b75f2ea0c61472a23cf99928511ac3ee0031c61af06b9849541c3e87fd7b11bb1fe7afd49e0a07f01e721dc975ba4440262b96c90f5f4a12fc2e2d0ca6b7969c24a81cbc8d87e3086339959c7af99b690240740709bbc09e41f318c977c5a9431a977decc1cc2808b529d40d8a823f8d2428da165dc21026b73dd9e60f48d1900807ffde3b903b667ed20f71e71790d2de970a13913c69d2dc72041152f44be8c78735ab1c7cc473bd598d7e0a671105e5e26da1492bf0031d7051698d46f36c3b389048bb9147518efb3bd57e85ff5fdb2b606c1504d15eab114fb7c144b35c60d5874b3a6adbe1193f38113fbb78416ad9ea7e896ae57b41881b91e54552e3e7d17891759802e0f49307880eb3dea4657059bb144929d484b6a573ef854b466225a3b7e33f09b4a7bcc04c7ed3bd8efc704812cdf33e450b1a497f99d6c5b7267f0ba5cb250d0e62cfe4d18ee03a11132c222877f3d3dc4a12d89b9bb805bf66629a2c14fde7c7baae60e7634a61e9207dd9ae6ed80da7869ab911e0c8e3ab90e3135de34f548a12ba5a20faec23212ec4014ab1b624f516cf95b1fe42aa33e136a524d8e1955ea964a738bc3d7fb66d92e3926653587f69d421657c1765707ab8e67ec50ba954907d03dd1a5ec5c5a78f044c9393b028417e2919664003a96c7ddf2aa997b5ef1e1f3d9f333380ccad84df867c22eaa6fc2fa3defe362cbd6d068166935c67d6b498c853fec2ec699203f0c1b5ac93d4e1369d8b9776fd86d8de47d8cb813538d613742c6de64e854b9230e427f0a2982d69563bbf7237c9a88b06e67a73baedafd7f7043c9ac7bf3b2d3ff2f9961d62fc0d6a0196ad15b0cbc2f34b1cfcb1b77164a8f8fae684bca6507a1cec731820c920bab97327908736fd552ccfe0f1d075cf15b58970cc41e9f86f28702f4bff59b88f2e478ce69a2f8746673e25cc38971713d018f7b4dde544b05d02921a6ea43ec5992bc3e9b2585cceebfa3adf5503f0d8c2b63de7230221f0e53d61dea4f9e153e3e2db14498a5be638b3177c14d4bd9ae54ddf24aeca14bf1a5a146ee880e181cc8eae9e61e514905fb80f5fa812ffde64918727f2c00541f7ad40d8f2bd2e58b28e1bc21f075eb185af9186a4875f99738a095066f5d2c3b13dceb5935c48b1946d7c45536a122ac99638262eec4cb395cacd6458f6a2970fe400df59d890a3b7dc63cdac7a8f74e4546354c830d45e18f1acc03da15f01dde2bf31669e8d4479921196c826338c18afbb553bf5ef3ad5492dc7e0d4530590a5a09a17629d50dcc941b6a31df1aca559ff490a197e912cd01a4e6385e25513237ae611328b07ffacf6760be6465a00cde8cb8ed630b27cf36cecafe59e9a32c68d28dcb853d346ce4ae872b97abdf85ad6aaf05694eec608cd38799f9106d0f48fea705c0abbf8421418d4a511230c73340461f3a0de4f69b141d00569f61403303542da36953c26def5b2b322e70a101d5fb53aa9b9ff1a940056212e30eac32d3b7cc161ff70e74c0c4a73bf2cc722cfb9c30fd1c90276a8383dd2fc625e1c8d728e16306019ab61066f25ebb9bcbda68322fcbece63328501581e71fc71b7e31e0b57d2c4280100838c439e48d6358c370a9ca5301953d9b4d00e806ee3a4d0fbdbbc0da4ad72833aed64390e03a818bc307 +shared_secret: 19a85075ee44b34ff0b11d12655036af401478f0e66d354ec9d17a6c197a69c3 + +# Rho leads to frequent rejection on matrix expansion +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = f4c42b57b1625ba25249b9697b09985dcb92d155c4a7db3b2e77464ef901af38b930e0b5fb67cd7a4cad52ab9297b383dbfb7e7cb32bf674b24f92c6f13ba50afb2164173282031b584828f8fc835a094bb4631193258f8bb1aea8949a7cb4abd1279ae3373ac36108eb290b1bbb205bf81f907873de0466179787394a48c72bc100192d8a0a46f76aa35a2c4ba8430ff976caa5d2888b7bc054bc07ec8a0374a5276dc01c34918b37795369b66493ac0e3c1362a4f3217d240ad438b7472172474a377b715eb0702e3b1652c3e35873904ee3b139896245c0a05133e873b5183d5ce54b758075478874cbcb00aec3a5f82c03f6ca9783ba3f7a6a1c05a41b0fd30f24f8c47309950282b7aa9ca84dfa20c8a9c5b9b3665ea59b2bf035159a20eab110a862c4112cb697c923311387b99a15066c569c300772eb44eed03e25903e88a84cc5f3b6b982086563a36f21b3f9c434f3200b0b9b5852a2aa75eb54426049c264b73891a28d9412b9c3bc5b87cdfa6b07242a4c1aba32b229b374071d4aa33580b52dc09093d9c40d95801246561cc70136c389ae1667bb0ff600fb82321c509121694c4298c67b36a21264201ea1c97aaa757e5c975195067416964a3a250151337bd489a4e943c03bce82a7b447b134f25940b345166c5b498b6431c159c829434067562f7a331b051854b32b7000c42a122974beccb36016459c61a97517c80c763964c64f6f72cfe69bb2c87c63bf610dce640702e99affc20d1ce934cf1c70683090367673c7422e57389394e7c2aecc13b23733076c6a50631c69106792492a6dfcbc7963998d219f5be767b180568b76658573410ed41796a9affdbcb5a9991ae48572f1d2a78da29a6eb85cbc50329e24c56b41a4b9b313a85abdab851886fb45f643b6774c7792b89dabca1d54b1c728b38dbba6887b028d51715e131cac8ca22eded549b54c39733309efdc2b5a5b3e45968afd13392c29a519328c57e259e7aab48d730175d61479b044fa019cf86681ffb7a43770c7b3e22efe3aa45c61246c368e920b8183b7446475c32f739ae4774c4430c5265a3aae3104629c31218c7b424c3ca25a4e9bc8cb5067a38ea4cd6f704c5cf895bb676489e8995d15954422495e82caf1484fa64264173c5bbe8138b6132cf45b8f6c1b2a99d42fadf494f90730ca9286fc9aab08f3b006622a9837149f30275bcca354136d876a728634c6ccf48be4034bb937bce815b291d9236da83700b494082900d435151ca37258d39c816704f8bc1373aa2f6f1a916e21c983fc590473072ea0039630b016b963fb8bc95f21959538854e9c5fad4212d80ab30eca4661d1aa6184a8d7a872ca6682a85773c6ea9006a64ba1b44205facee36c93b962cd01d700ac7a088c7c43fcf8bd07d413a0022fb43883f9351ac675508cd89c50f06eeda01830c42a864515fc88c9693026e785ba2a163dbc819541a61d98a64e95e62937795290440769c1049592499ea0726c18b943040fc9d533ed38655d05264cb0531d23bec531c6726c9dcc132e34704752ba240b4c4ee506bc15150932c9038e164aa22925152c52cd59ad3c68bf6ac9789c01b7a87b8a5314354f36038a3b2bde93cb73b596f830bf84f024458641504cc450d510791c43b9db3ce60127f081c8d7f61840eb75522590ef57391c3a4189771ac293770aeac4ea031707d6c38a2334d44817db05cfa54aaa5540c3334291145970903160f85cb814905b493bb995ab3ac79bb62e3cbda3d4a0cd388517547cb3b5a6c2ba9ca5646473dba10104a2bac7b4a8f79cede97d48a94d0080ad5782819d8c4b19f8860b711285ab3082784420863487863e182a09d30c8dd8198a8876829f1c336e583d27e4a06b091c4627022da33f06a201cdf43120e1a6b396bf26324d32c73cdf531488650b3b899c1ada8bccaac08c3c6617649233501839628e53c1ac7ae51ec19b1468039ae88140feacc9027c5f9370985a0932422c0b24b849be7a9bc497cbd3d317f48c50009a676161901494a52045afe3b6c516b18d31aabcfb27b2024505f758c91f441b8139889bc6ae3440208f34508df8a25bb4b3fed3929da0572a5a804b086ceb74020894b534bccbdf485fa769aac8e9577e477caed5b029c86b4682a7e74cba8c930ff80d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 6d12517b654513bfc072c7567a03257db9f6b093bb84737dd5cb2861952e1936bc84892a5b7c5f70c5349b4af1ab9e8b65a2107232f26100b4ed9fa413bf04bd9cf7598763fa3c40b7a2b2593a4bd51167a64d6228dc5bd20d0cd431cdccba3dd5b97a56b12b422f666fb817c1a5fdf9d1fdf8d69640826aa94ad87bccaf8bbe4f1772efa2604d14006b45836addb7f2935697c445b4fa69452e74290115a623e8758803000e0f4261ec8d3a68f4e82df31c8da1a59d74aa956a4227ef6b59b430345e4aabd96fb0c336b9be15ec550cd964bc15f2de060b2144648d71e7ceec4881bffab6540591f3837f935b4ab48c3241c95edbe3b7be6de17f62b6a141048b6663d6316ed3c1e8320f3ec5b818eb890985225a33eecae76a813f08b9deed452d34546b8f806f8ea57e6315ed7e305c420d037c2fd2359022a92dd3b0645e00551207f578158f2d853f41f09680fb226b08344af892ae470b1f281b58b2129b302f2da1b8292bc851b0f274365ac410ee178594fca317d55df1a63491b92d8d1c5be3b2814c40ce082702b9f6a6e6eb9807325aac5ad656523e69732feed01e4a085372b72c604a201730f785059709a6be4589f8e523d254abf8004bdb615d6b45dae3e7609b94be0878532e1dc124e92b24b677276c66d62fa6f097a3a3ba029c56cd7b3af092abc02ae18ace1109e47beaf478a84f34ac8bec69e67f71e9e8713b2e04460de25503c8355f26bbd9a84e8f136c15e93d17c8da50e0ef1f529283a574f81de5ec885b3e114f4b26a5ce46c6d94540981c8e8c38fa5d6a2dc1a78d4655a255a915903e88bee5f30bbe9e730d9d47084500cfc4a5cf5979696508cbb3a20ad11870b0871ba7c579846e67c5d504edb07bb742f58684c7af5b247c5b1459fcf04fbd3f1b2f7caf32a73325244d1febc8bb93488e73679e1171208597d50bff5f2a0b1b0e38004f93facc8daef9865d35a779ed93f4e9e65413733b01e2c4aa7f649ad4774a92422b47b1610fc003fb25b62ccae811e8bdd91fbc65c1b2505a8226ee96e275ac3de93bf8539ab14ebb5f3eaa536a96ef7042a4158af84c80e7b5f161172ad08438fe518d32411c9e9fb2213515617f418477ea1b69d767ebfbbd99fc7ff164da7a43f0f1804f7e928531283445ea517a9e1e715bda558807d2df4a636dc5a0cc59353a33b4179a0c431802b11f676d46fb3a7700b08558c409ae96af58ada7af081d42d6d0db42371baf3d12078f61b88bd09cb9e37f51e512d8ed1f44eed6113600f705f7514f5d14a91b1089d7b441ff4166f728ebd4072bc77530bb85ae0c6b0233d47f9d474466d7b5d852c20f6c5ff936efb6842fd94a4618ed11086ad6ca4dbf9bd6eabff8c230421c486a3c68b440f2e9a28c580cd438ab8da399f8ec2e7e0a38aa95ba39acc9ca8bc928479779c0165cbcbe292690015ae10db2edb418fbb148925eab905a3093bef13fefdb1774bdcfa7b907caa321a5b9fd149240a0ceff340ad906fe103f6bb111eaa53761cdd971dd61d463ae503e96df8c457e71065a86ea58fc345d73646f5c9261701a7264f119c29faa19322af0097a3f889cd40f0eb7884c2b2716342634a640f6c6388a68822cf38d93f159f67048baa8cfbcf5ab5f8b45d8786206a7ba497fc935d2be5644fe5d90e551fae7ae2bc0f237dd03352f511f61bf873b33d4974e1936260536ca88e0dfed5bb80700b3300f781439530b4569084297e38deb96976b66922a11fe56e5a14a5bb01654f485e1f87bd204433dd15871e7b9f4ebce48775e117f29cdab877d65d601c2657b407c26b33778491ebe4944056efc8bf547fa7bf534b56c363d4a165210feea4888078320636e50b08c46168953db0caec119f38188666dff40c056b1f70b4cd956ee8db8309c406563ac9d4353b36f51ebd760670250c556d9f0f2556aa153c0b8416b26fd723429ab0357e32725b2ef106b3bda98afba709692ba91a2ae2708d9d67a79cf615f8304cb4301e8120ea00f1372e429d873b0c7161beadf87fc12f06269784aecc7f6545345753a5a55799269c9276125633252501f0d313ca9f8e06e4e2777e6ef21e78efc716992ecd979fd3ba00b4c3115b194f3b84f515fbb0b4f31b279f3e776273715c05aa9adbed7e12b6f2522a397cc6acc96b25dc115835ee824a22a21319fdc4514f87b4c5d48bc7e83c2 +shared_secret: feaca519e19182ed57d07e8661103ba82976d8a079ae871951bc678c73a81379 + +# Rho leads to frequent rejection on matrix expansion +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = 6f87a12c4aa441f688b2c0cd16a89e315b3553a16179db0e01d01e19bc1574c75a13987b2600ba2ca68cba5c1d0ea69ac5fcae7862ab218b1a94b22030b40f0b3b16bee7c6d6e58700e150d7217bd7721afa7702023786f365a43a60226068c5ef3323c8f85488e77c106a243e96ba538264749539f5874d55929b72a695ebc3366589b04880721180258eaa095a950ea13319c0302245d86219b79a1dc61caa658fff790f99d2c3f25c11eb34aef2e66234e2116274ce54e5ae335260fe3ca3e0673128d064a39c82a3a9ce3be0a2c501aaa53175478b847f9cb17ceba19e120144534dc1a9b38afc864913a8dad5a7ba6bc9ada898c60b63deac87092275685820131001911b98af683248b50f1e2650bd299c9628678ae542e3e7a526620d1f78aaff445ba75b47d0ea0af4a3a3e7447851377f40c248053a88f5706dc119712a5001b8f035436c7d9eb1269b845156e60c5a714026cb330eda7f4ff1980fca10f5b87666d5600f468b11d81140b27498a10715147167fba6c8c58680824b21e97bc982b61aa43f2dc4866641b9bf6200e7a8afc3c1b3c70226e2a320c603797330c952050c90508a4b36580fb5c83e7c9be912891e7849db960f83b134543a3ea1c40d7f0029118a855a926f8b6a2777172ad5452fd0a38753a94bf3f6023fd631c3e9a49be1194df4c7fee149698a2cd7b54c5fb33b306ca72b6b7b4280cc5db4c452bb8abe365a3d16c5c02122be27bff2f1623294bb6217c201714e9868b991229df1569d7dbc9ad957379bd58a41c990fde349d50a3a2102637b18be9f4b10cfec0fd3fa2cf4868bac98a268891d9bb208f489c1163a16c4d68a13156ff31a0129839a6ba4436ff735ad69161d551cd0933a25728360a7668f166516a69ace60b8283878cb22394fe8beaf153632999d60554725c041f5b089dc205d4a3759a7044caa82c78bf50d63fb3d72172622f71c31fa66460882a603d02b798470b24409b019a6f4b85f571c5122b872997aa4c389fea1195ac349014660e619888a50142ebb173f95011a716f1b031a7b860d1986a3c43a65bf5654dc8376d2dbc8d25ab90d139a18167fb73b758331ca69274a2d340e59bb6091975407b4039bfa9e2a4480ddfbbc8b26c0d1457f39a38f1b8626186c469b48007fe0cd2472a3b4369d425518988741507912bdb12901fc19c49932cb1b1558862291a63ad878cb6afc2dd57a1593e80e720a0766a031cea2528daa3fa866543fb5a2ed8a1c111593db955c36143ea38a43d73024de9446ca2c69923ba88d2c5b4444cdd94a3c380156dbb0346a02271237cc488c89d050035db74022c7c924921abfd86f71646221ea2c61b123224a1b34fc5f02c6849678313fd86a7da11f3ee681ae5560ad42cb3a86bfaae100478b0677d23dacdc9005b17af54515863159f6072937ac882212cdb3e82f3f811737b81928b605a6142a9195211fb73142c96e2cd309b22a8191166e33d39dc5a26148179521a4ce69d4c55988966ee2b278bc2564c62007e75da8b1ae169595a9dc58dbf47da2e0c192a915a59765abc62e375588d8ea3b72850bd0c584614305218c729628a663399dcbca2d30fcbb6e99921f5c22d1e06f6dd99442a27c1342afdd2705041acf8df78bc4e835d8e400cb6419c52148f676354421c5e7268c84501fe82b851bd87bae738ef5c67032c746356010ac03caec13b212060890a38ebd28285c990021a76cf3a417d538167b782b65a56cefcc2ec6015ddfa7ad8f2876a9b3bc0d9649827abc33d7ab21d5b20e4a84577311ac7b381741c8238955e630795c7a3072d23dccf4ac689a781fd783fea7592d0a629449b44142b56f440ed00b19bbb976234439da01238640890353b8e14b7a0d964819101110da435c9b68e73b033c78b1efeb9d44e27acb225fa1e07bb56299d54a779cd5379b7c02fad52f3c1a2cefea9636d850c6e05ddc14b4bea669505a94fff87acb2ba0321541b2d78d2c58abe48b62d4d828c8ac0f881baadec1bb30d347772729a73390bdb85f0e1c9b93123f7e44a541740c5d0598015c1433c96eaf97b5e0d39c27e60b9ba6cbcf8a2dbbab8259e44d006da65869c75b711939cb38a3ea83dd3c8ae97b4e272a07403c40d127956e969f8ff3bedeeb23c406a20e73a2d589000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 16160deb06f8324dca1eb3093b3fc501dad316edb4d5f8b2ec591eff7b65a048b3333532ebd3d961e363157ebbcac231aead8e255abb462fba12955310c6c925b530ad2f4a761d2efa5a3b9a8aaf1929d3630a6244e9ee1ff5839198fc9b4ef47e450d4026b5044120c13eeba48e8fd9fcbb02523814c44874ad950a83bfc21b1ec778c1d5b5efa0f2a9e028b13622fc0c2c08d7acfdc45788e0805aaff92b51532139416982f0fc9931f3fb12ebcda2f72bd9048621208a4a91d42b56f7d810e89bf6e4e7d5171c82f09402d2906b692bdae3088df4b686b9c1925143e07212e13f4a3732f84bdde9074ebf3a549f0d90aa152671d88d88af39364d33e8e14cd0c71e979c045002c3c40f897bbff857f1dd82141c719ac5cdcbc944f6d38978e8f39ab0ea2dd9e8d19e6cc95e0bfab01f8bb1f8330e6241c3a937c70c40280cff3bb6a34b5b247fa970e50361447bc5b163143091f766387d15033cbaf8b9cd208a2548f42f00dee7ab81838ec03aff5d4ac446a55100934866163e3f53931e1f4b86ddc021f39f2305f59c95d336bd070d089526af38416e61cc73f94baefadc73794da7a7c9eb06b1cacef4b37626ef7d1dd381952ef67d8a2959021ca85f4f904f912187294acce58fe364f57e113e1bb4cbfd2913095ba6039677046645cf84e4069bf5f4c0996539eb1d036cd4c8f8e1c2c8e0d775f11d0eab393d9474220186fc3459db73bb864716418cbb90f55abbf9ac57096f566702bdfc668314d98ba91677bf74d91547c7b5302c725b890b4f3f2a8b95f65521a9199a4bb429b31e7537733dee03f7f2f135dfe88e38d1c301ed65a3d5788dd593531c639eecd3b947dc557253b993321d76a61ad4ea37ef2bc43b5d410c7837aa3b706a28051d3c1ade2216cfcd719ceb9ea9aab4d373d535a13da4c9c27c5612b38badaf16ae3a584cb7c057f1c2f4a24a477cfa4a1d834b3ea4f9254ac3f89223bb1c8b9eb514460028ac47b0b38d0b4dec9aa4c2b4ab16e66780ae8589860006ad4ab72bd42cbe4275942f8476928046134b89922b39e3e527dc48f7f5433620dae3ac140747053789149cc1434053923ace9f5205dd3d1d7057dff6b316535fdf508bb91b4eec6503db29bebfef73302300822fc4ec4e39f5a5813bed54837468c739e43a421b2d6478f12ea5a5f37e26bbfdd57ccb11900bbc3054687edfe96f88b59af5856e87e90e594b5555c03add6fdc0b62ff3c48577b3a9ac720a3bba2d10958d79651c3d5e7db9bd701e072a25799197e615f4f4258b7c0cc7982b8ea89033304a0c2c23eaa24d26b56f84d82b139f990698906209ef8df440144941b435c891f6a2ea0276df6f9e9fd36ba636284574d49eae6c09e82e4c0a147bbdb2a636392bb1671862f8c8ffc0929e4f59da3dc02d7461777ba48acbd062c933e1a61857124bed102865fb4a8bcda191894ce19953aa6f922a351702c570cca0e6d95cc4757ca61fc76507b82481ab538f418ad6b225abafb0fb824d0b8f1baa9597e5e095d5deb5a70d7390e1ec308e2e3a15a62ce03a73ee6a827e50d68b173a7e1ca2133c26f2a0b922b06c72383410b75c8911203a7c00a2920ea891c0940d33939e0d5098b42cc31d6bb6c0dd8c03e8aa2465aa01597ceb533acb3059763273ec053c5fe1b72f9db066a1a5fe216004b1d8577849b6d5cac89101ec453bbfd8d571fc08087d0353c0413b02fb8956522fa871db4f4d734e0677339cac50199d070d8f592b66503be23ff44104d5e02ea81f17234cdf33db122b5f5540432610b4700ddc6183d4528288d692f119bfaa81a33e89ecef970b514355bfb0f4bee9800c8227217db2514ba6396106bf603296b17b3b5e9c6512694de41c99c1959398800fd9f0c0cd0975a2df0c477b45d2f433fa28ff3c7bcc6c543428490e9c2f6169edf583775595f265f969dc11d5f1679a8cdda1738e64e2d250dc8b769b08742002f22106d7f752cdfb1af97e4236cf11589f82816b065ca8d1b159f49c9ea06a7b5153cffc0d703a94ed67dd58859311b72b4f032ab50d4b10556ab415c8a6b2bdffe62deb01c654af6f8c1f29a4b91d9cb1c6663485965c0acad445cade15282833c0ba20e821fc443945eb783d4d22b0283522e59ac6b8fce4b00f5a7837bb7943417288442c286f2c869f99cf41c9b91e70307d2424b4b831f0cb78729c7 +shared_secret: a2b9e1dc08b711d8744a6533f3c9ad42097526e8e7bdd375b95ada3e20af11d9 + +# Rho leads to matrix containing zeroes +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = a1626b61157361758af813446a455edf8346004c8f1d8882c6833b7d6bcbd86abe3e448006f0598a288c813790256b0c5f0332e06ba2f7f61fa405752f509550f86a18bb5483800a7329486f310228e9b467353957291eefc5ba630715ca177ec73602b1cbaa4956b37f1c6cc8714702b882686bbb8d1a19bffabf06068f72563437d37b33b38c476366404a4a6d17232e437c7bd4b56656b80eb7180e29613dbb4dc4b45f9d6909b07bc479126a4ed1b60d276962c060f725406a6641a29c7b87d17e29209c5473a595f93f6f0b6c4473afe95b2d0cf13710b12e4cc094f71b8f6c3cada16370fa4037cf721d56f1c5efdbaf1c395fa77175abe6c9fdf3a1a0b88f608580c1024dc319cea9836cb3f70e0d7101117a3d8e8841a92990d30cae17b676287795dd9c0a451450b7b75017881a210175af8a6ed69900070192df3195d27756c303bc82bb93a19bb805820177a07c75c5c1c04a8e61566ae62a357d6016e313181a260d678cb646a3cac063caac952ad4830deaa1b2bc4161b7c23c31356442e2c851ba64f1e99abdaa55b3b9a2fab0c172a3b9b26918c0f6933ab74fafc700255a59f3871628d291ff56b8f9241587f5a8681aae851b73b0a26363f2263035a271e883c5fc8bcc653c910924c202b103b4131325273e6246579939dfca8c6e78bc47e686841b629c93cd7dd16339d5b40cd8b34a289de9394c40d63409cc97b87860ce54c647929d2fc84850443a42a74a5dd67cd14b715c7535b28b01dbb3c0c3793b438b6e56f60347bc4220e695459c402c94aca43b9382a47091b0569601ccd7a74b75b868b035a39b9617a10953e468558d5850acc0a7d83532c9a6c5929ca3c9bb8fa16775457c2d9b320dda73bea9d2047a0c8f62f78f5e52ad9188a851860d1015c15f89395cd86822faae4fd2354610a608b36607247956e68bd4c252d7d68a4d58c3107465748a31de880be3230ac6714a33b4c62dbc711f5c0af44a36e6ec7ae6eab7ab954dc1f420a569b53966141df1566c73290a530d4174c198e5c5f427838f1884a2108c85688a16436270002207d58e75412de7255a1544c7d8b43f60bb2b93f45bacd80f2900cb324ac271c98a95f3917008ac3940853c13a516140fdd0064f646aad67b5bf1b966b68a6c795b2f6742a9d68228f86a60cc210aba894ed84859d990c10cba5671161caeb59c497c1b2ac52df6913a819168f8b8343654120a459ce5846a6fa777e82702fc8987368c05a503b57ef7304f862c55b9848a461af1e4383537154da27866a8ca4ab4af01ea4c30dcc59ecc0c9215a141996ecfe34aea6542b3b8c917c98ef574b1ed006977fc7b755b87c6eab128f6bd4b089359aa74eef351302335561303d26c24fb327319b8974c165e77277db30035c84a36534495ca260f7f76bd96396dfca983c89a8b99735486a78d34c9580b691108f63846183659854fe8f1168cfb9d1f5a05ac8106743bb74c1b72cbfc0e8ef6be184751fa449795bb1d0b7ca37dfa8f3979bbbc09a13d4c47163a69b04cc013795d41b0033549c3d84b00c01b1a9d7104a9d37751d08cf0e8132eea86b2462f37d660df4a3a095910b5ca2ca0da78163bb79a181e76dc619283b6cc670ccf2b1f3862c57e69c2b5cc293b87578b190710533bd4fba426f3389848919619c5b41cc5244a368adc40ea2647e4413dc9114e22749684923fddf2192036b83cb870eefb9afaac2961e3869ff0554077caf6d1aea720ccc59734c0a5465b7768170b323ab8c65a2a82f1267db4555565833d9f19ca10400d513bacb055c956c622cd7c0e5c54b33073be531c6586802cc11b75e8b0542f80b99639021d89caea41644029a81084129ffa66a66238c65c0f5562bd74b861293549a1c7cb70b6b3ce25286558a43f318d24052a196639c8b247bae6c59cd27d0768492b6b6ddd2011134cb9d9964ead020fe8da84a1f910aae304a9c3756112331e62ad8650544b5111a0977325c6c9ba242271ecb0c1a3c753543413685e46a31312c68bf9175a8b110a6816b6aec9562b8322b0d932f9692b1f29c6e3424d45686272f00f22db854fb8157594ca7c7b018b01c1f1a23028a4663c6b258af445f83c97f652954d619d7c68bf5e10046e7079f44b05b9c74591988f328443c1df349052000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 1b5fa7222ee14e61e4532b01189d576a2f0c0019705a424c3a68c27da592c2ad20802204e58a40e5c4b88b34410e000dedfeb719c7541cea51bd176de9fce964a96006c7ac87219b0114d171d89a261a2c08220ebe532c48ce9db09c791824b7373e1237e82a6ed491d71dc997baed4622b5d4e87e5124267a3b87cdef166d6d1109e2258f5deca3390e750f92bec1795f84f33ed51e071cec46baf3704afbd37be4603bb4fae6795589228be43598b1b055cd696377481e6e4c5b0e9ca39358312a27fc1526814d2acfa9f4a2a4820294dbd422715ad3957cc3b30cbf97a4453d9d6e2b340b8a6822963b19b5213cd9707420cbe5183ebf969d9a1d7c02ad9b02e7c0f8e15903891a506ac9182b424e4025c56b8f8adddece1c62a9593c1a1b83e01239f3582b3e97fb55a639b29bd7501c7008801dfb67716540cd9fe51ab5340f6277a57eba60f3fa755b141eca72b5cd33d1f51f32c32f15459a60dcc0cde1ec97cd3574a70fb835a8080ae180b76c6894c01dbc81429ab00fe1840b4ff75887efa840fc89f3baa828bf860c6c394577edd9490f14d9bb25adf5fe7c81f2e1d5ba110e3271ebef0d42a158aa51afe9343036d86273dfcc01a414d2c89a05576545466c1d2e5f238ad901d2b1d042476c71f8a3889202b25a8b73bab3209d168812f2d495849ba309ad8a51195c32a8f9bb35287a2c2d3d75976748d3660db6c398d88fd84693c83312823f886d839dfc7e56d93ccef2c8b8b64045347870489c3a7e95383429dc78978038649742755304daf1289c74eafe56675cf8d7aba5b737c4d8476748d31b2c02fb8851bf719fc36bc45a42dec0a36c0d9b0cc12a8baad50b539ee36db0052942c1a59081f0463a57792e954f609bc14316f674877eca906f3bbd25607a4c076c9fd0e85eec2a02a767478745c563fce06833144074de383ef1c50d1a135d51fbc499267b2f224fddb0c8d392fea01764e38eddf6ead2ae01f30cce05fd7d62543e3dcce21c76524c52afb252eac36e10d8f9aeb3ddd450fe18bce8034e154d4b0c5d5639bf745e2c8e5435c9ba7db121a780be2df8ca2fc98d41348f2830fc5e182e5c88dff7c88429762b0459ca7977d977b14cce7c84ba39c8cd012a3b15f4695338cb3d6ed991ebd20c853328bd81e037f75e82d85695d56e10973c88b33c88d70b321818e62ed15f697c3eb949d1d70e91fb8cfc3cfaba12dd57beb2ec6a2ee80cff28e54ca18e1686b2674156bbe57a9a8a1152b3298c56174550818fff9beea0c2d6ce74785a0cac87c7ce8a11c0a8eebb5070ad79332e15961bf2413a793beb17ddcf0cf805de33ba04b48ec1e3abc05b7c81aa3277f39d40a1509232be61fa8dd5428300d60efa05329162b46fe3f6973ea3adfc6c11440240099a3d65dbc1fb0996fb75677bca40dc764caeba053106f74f2222482ef6f7617ab0ea0f97bcabfcaa8442657419eba2970aa5031245760b0047ddb8868997edb5a5b443277d00f8af3ef9b024ec3e0ef2ec199685d44ab4e06cddbe4dfabbf336488fb82f64edb55d8f7e52f9b21b2f984507170bd4b8881566ce5308401b6a06e06f2217f1160f5550555527b71774b47e619a83d2c129beb5601ab34810fbd16f7cbe6597de399e4bdac009c6d5e891b4e1b776ad16192437ee0b3d98f528a6e65d17797debdf367a202a9cd017332f6e36c4a6a83481bb859ca6613e0d2b34dfbbae2c583e4936dac99f45956b966452a9c68bf1dc3a326d6d38a6a6da2b6975fbecbde9cde0cd6af3e1cc8a0efc7cfab8d4ec0b74288bc319df5c4754c77c5071a68056f9019aa1d51d6ed28a99d7fe9125d04df0d7839810f2d6f129ca61d117169b0f272af6eaf080924c42c52acd3f28abad80c8bf0d2fdb79ec2e22c6967c044432f381eef520d0f99916fcaa184c81e820d894f9c668261d78daa3a62d11f6a82a2a803166b98cb4568f4cf8845fa78322fd07b0692790a80889e0f54c042b61737aa721b62c8b1f1cb5f01b6d41861b1c614d2f42ab82fd0c878f2212271429383de3496757158b50c451542751ecc49b7b7d3bdf697d66b042e47c33cdcb9a084c275fba27a94c349565532da680efd1caf40a4dda1014279d4b6a530206bd90bea3c14c1039b570e351b13da4a1af2612fe67c3ea4ce4c623fc4026005384addb19be959dcc24857de3af02d5652f9770 +shared_secret: decadad640367b73f7c6a9e5d1f9e6dd576350f841e9d8eabd8d525fa8b0e1d6 + +# Rho leads to matrix containing zeroes +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = b69847be058806d916fa0a458891821a0099f3618274091336ea37fca742ffa5bf85a845bc772ec2abc4c9b05aa7e51e8291aeef2a05cc185aa2f438d56026fa0ab0a0e8ce682294bb41238d358dcc1016bcb97ea4e01918a516cfd658ae753f4e7756f08b247edb899ac8b2b11862cbf92a5966b68e4cc6fdf66f0f14a135753ae0f5472a3614a46715fdc7cf69bb465c66ca82e65bd263c5bbbcada701844104ca821a6b5a914301948bc20987229c81d2128754122c1cd3c43e2b4b6aa880d0c203cd9490b7796c02109c2875ae7bd284dec49ecd22949539a2f7c792d351bff0c26f8721a86e1948e08a0fcb2135ff7ba42e352ad3c3a4d1930a26034ee75b355cb299f2dc375f7462f3801c1a636a87d71fd0e528191c8b1d6c4a1aca21edb82825056f8623975c54b1aab806ec623ee50c3c9f954b29212662b7530793c4e3308fb5610429519ab35906834923b053b595f19d6be33c5ba4624dc72fc5488a98e0c7cc9835a161ba97e72bd08485b2c59fe2e56cf1c5a091f389f555c7049c9a74b57af3b1af1263c7720880e5d9c3270b338488279a27c9acc04409d612aa8b195dc5c15bca57a4d24d8d10ce661509054a23c0a0b7839c7ca0f77b0524721b06a8f92570aa62091de06d06783562ec9a0a795100c28fdaa06928dc6a9fd106ff05c2c4d4c3d193898661a4a39583eaa9b62cc282c04c872e145b42058de4467e3f22cdf293723299565d452219c3740bb65bab60387a3321bb2b5ebe585e85e4a2a5882c72919caadc9b46495d100081c88964c87521ac22127e891e1b9709954326b45cb35f5778420b08773b926bb79173130d43aa2c586689effb567fd165334b82ae4c6c98f93b64d99a44815877f5476583ce363196d0257ea472a9bd630f2fa64585b9ccfa1a2012822f6a004cd5959d5793adfdbbc5596887b5088bfc5c5af9aa35e5b9205686069c55aa7437026e75ac370bbd40421df7c21350da1a5b13b651159db592bde2078e2d8cc374d6833cc91bdfcc1f19d9676e060f2baca39cda1dee758ccd096545e21fe2cc082c00374d593968fa8eebdc309698020a29910f3910a1679129791c02f94cdd8aafc8c007c96411835280e148c4109743c8d168ea645ade7c23b5bc26d4bb083d0a4833f87e6d5b218dd73b76810216f9658a9547dad241d408bdca43cf792bc2a6438df858ba77d01c34c54ee9a31c83e472d5f945fa504f054443851a9c0d59734f175795a86ee2847d7981654d89633f47a420b5bf65920b9810c5512a4d8e19aebbcb13ed0a87980891799650a88b8dd4eb7985506a581110439a0f5afc8e998a7477e8c4b54872b9479b36f2378a4cc97b3208be2457326988e4a13b02812616d5add646cf0f5a8f5458b8960839f93581db651ccc5238df417b4ec6a445127e29e44563a7b49eb403c10a6edb624395c58738762009a073d1949149ac8e69e8014478a6701cbe140411d2f1b95376afac6988737a1b9278a2ee5b7fa4c1cd89b69f56f2686bbb59a54c676eb357a0602e8f8a8a914c745703bb7542c313461d1075beda6cb685832fea735d0c573fe744c16bb52b8e7a7c8d049ae34891ef0ba338614f300033969403ab4677f2179c8224bb2031b8e891a8d0806819abce1356cb2c906fa2a17d4f3c4ed0b8cca831376f67487847475a5b27206a18dec19d29f6a8d49737e7b14f2034209b0497474a3b0e94b6ba190d2793c945cb7866b3959f7b2721537b77a45ba6a259c0153889141a1f9171e4503a503802b4e856f90433063b37ff00b4fc3347b99539efe3cf29b515dd7b700b37871d926f699499d6699831e18cafc00619b35e58555a40034c22bb430fa23854c81ebe12823b92c0bb05b2eef1cef35a75ba6564db9122ec125952260149cbb8e524391aa92b82d13de624c0368a9df175c5ba9b99703b5bd1b918eacb53d78c86b362729a01c2ce905c4d5120e690911255be11b39dae9b8a9b60191790b59ac5421473237508ab327811ebe955e8acb15ae72019426573e314cd775f4041658e85b3261c3f04c32d04e58b3393a81c7b4f6b2542b2e27b042027f9a0b40947a919fc80e87a8182508d2b4264fdc9ce9786ae8ad3cb041274b9fcc575291d74c3b95afc31acc280297841fd5549083120a2fe78991e000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: a9560cc3bd566af9beeb59a300ddad8de5a70be9cbec8777b625f9df541f3b7e3432edbbae58624ca393a7c8466654ad4e616f302946f2b4e848aad0b16d6ea8d19faeff99df0577f422b17638ae8fc1c23b90de0d3b0aab0e7f77d81d4411af93fe1fb038fcbe8b5dca3aab65b63b767360ff8d314dfd9adc924dd5315a591946d7e3bb9a8d7605d4168255e2c0eb5e5fa2483505cc5e7e25203728ff51504c580ed157bbb7ea59702fff5f39c67334332d5ee17ae551449ad402b9d299d7519a9d60efa56a1bc39c1a3e12936ad533457fabbaeb5f4016c39deeb95bde3d8b62db69aefe698e9ad4597762589f20771171623c3fae08176cc6b9904fdcdcba42b1ce7ac5a4403ba3f38542160bd235f2b1a9d2c8735e86ee7af2e749508252a34a4c36bfc82573b856ad0408a95b7fbbfee254191f744e0f36d698dbdb0e9905e2a5e4efebe76dd2af71578e5dd28974f393afaa581e755030a137ff7a912648e6c1c9cad9a11c2fb22a028cbecb24909ecd07a53b5094d035664ed822561daeb8bc09c3be6f351dbff20f0bd69c6dbd8495460e55710e2e26ca39a1a90f05bb44e74cc0fd932296443a39b968717b5d7bba52b4313005a7e917a7eef4561e340e42c9d4730a8ea2500db48da0aa4c8086a038c00a5698b1675b398cbdc8223bf2ab069503e574873ed015338cdfabd2c4c8b349c6889732dc737501f9f4804c67d693722f3723fdfa21130fe621e1e091dd6dd63cee53f643f105ec486fcd4bfcafa03bf7662b2b31f0b428ba30636e2672b4114c381e2ceb631ee4b59604a656de5b13f556ac60747f00362ec577381cb6263c7511d1b4b6b5d55dfda1861bd8ce2437e47fe8661ce3af193a8ecd2e3fb249a7b82c9ca905f38f3072b25262b50ab205d7c210ac62783f332254ecbb013e0ad36ec963d62e69e085aa6356e1d2027b6831cc7ead70301bed933823d1fa5d157573d9828700668593dcc60e1c8adb12f14d61496d90d38b9be0fc78654762c4cb32ec66fba75063f1d8f7e83a3e78c33a5fab61c80e73af520b6d013daeb5d48b0308a5c30f86aa19e64743d1bca73ad7336b7cf2b9a309e3d86ab39882bb6d3f4c2c2533fa3a4c650463d3992ad0ea1732b2371b62d4c8c98dade19edd0eb1462c830e67ff7413d890d30d2437deb5abbab57d24411fcf49a2cdf997263721f1a36fd7e32ef383c3ba460a983c61b2463279330f24b75abf6d2ca977727696f336220192a827d13d74d833d038647dc6720769cb316ed38e9e60ad35b00f21eb4c9076b16c79f8f3bbbed9fcbcf1f0bd70a4745a697f3a7497996953604f29e4ef850cb96735153fa3f2416229cbb4c36e85ef8f68a607d77c48f4a14e00a080c62bc2094dab53d39c7a75403f35c9f58aeb25b075c9258c2fb23afe18cea496ec56b3f17cad7eff23bfde253eac130494c0715e5dbf5a565bab2998d8d0dfcdd278b863a2776e1c97c8deade022f3cbc190517d0ea91d0e8b224e3eb802795f730fc90284b86c265ff0d9b7a5de627859be4c7c8288d22c19a638fc80836aa30b948617b3d4f086f337443db0eb6f1dde7e854525ce5028d3fa8d45bdec7aea94fd2c4586ede8a23cee74e42024c8875df7c2d22a10dad2ab7c677242bb80d21a52ba9fa299c046111838c5a0555f8d11880d35e6434bd66433dd9500febab247e9c220b2d97d523199e99597d0e83ad6c11846c42fd04b2831b4688b4b338519037e90b68055c4d10722d933b0c90197979be263b884e7ff11d527b532fb17e1f8ea94e0a177308c6e626d6deb681b2083f9960b6d9845069b6bce1512a001a8ed694b16a191023cde941a525b94f225b55d12ec40bf92db4c04c957798be6eec2c1f377be77499739f48c9561e83a01c49012f134b5eada3d662e02127ddddc7569c07499fff9f8f341adf25ce79bc46315c4dc08b65ddec14275df0c38ced826ec2e21e3acac3ba78860bf829b5775da4ec61ed0dafd17b79b671629c0f10a497ddc3734586e8c6689d087ebbd63c9ca5d2edf349469ebcc31e81c2d6d58f2c2ddef32b4b9986bb64ef8816986758a616ca4c4155d126d357f0571b172fbe6b7308e357436945bbbdc70c831f60243dd96a7c617d040a6276e4d9ce07c880cd4feca2537127eb0eecc6febd22c3c92a3110eb4c4080e88923e56bea4e5fcb76c450442b89a5cbc230f +shared_secret: d31df13dfb22d68333814c817ad444cfef6378fcba2edc372ac44ace59e4e9d7 + +# Rho leads to matrix containing zeroes +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = 424b6ee6089ef75bae678c685b685315456ec584a93ab25f67427be85bba701c0566544f8133952936a203923e07d5aadea1130d906daaa1a4d9939ce1e147cd874ca0f777f9023d156070f8998a9607940d15af47a4919c52b831748af51b41712077bb4836d383a33d802c80a133a388bcf0f3cfac305a7fcc3199ea880d271242a3a6adfbaa5a894ceab055a6594436818ce10bc8113c8ce0613fca2533088a9f35c4a161e0035d690e48b4677273ace7d2c70e378047e7b9b7c49b729a612f5abc7551756aa91239cb16aec08e2ee53659954cfe1a5ba8b47f36c47d6ea2885b8332baa61b71a9bccdca58e2f0cd25e9b40d38867f69574f98ceb03c3d18b9b6d5c2ace4a8b1bdea7e5e678f1662932c267f117005be498dda33b97b0c520b1375c75829d8e7cf268524f74656d033bb986977296b4997fca693281896681022dc138fb24d9fa5270626b1dc4375a72c42955529922cb683c225cc76ad1b25c3082b9d2c47491bfc8b83767d274b0473fa753b16b117546b8a755e94b6b6f7048079985632b33664aa50eb072b47a338ec12b3501b3413e6c94488546f2bb142d851fab8260665aa88a75856d1ac719341ba190e941b8d6bf53f76b968fedc28d0a524d7e366efd50c8929cd9362cf4ad9366713c2dcd4b91c45b6fe654fcb87a6674c2f3c9447cc546aa645a04cc3b57d8b1265d91028c3756d216bd671560e29467805a2ddfacfa651a2fe32731ddc74ccdc243ce97ebb7b2ffc7056b334a0fe7813cf5825997690b91073b7f9563749b8eaf46cd8b93161c21543592c21855f577290b9a6616e2c80134a3713f04e6c2cacfafb3daf78b9ab671337931ef7eb58a48a73a96b6739850f2af60ca0917e301610c5731b032ca6cd77554b7a7d7783c26b2cb43ff1c1fc3716fcec4455e516d164c561776a03c77275d52d1ff426d76240b8b5a47c498fe836736a09cba0b32983387f595593800a4e37b3764f054bab91731c748021818e4d149db358ce8b2ca2af45c6e070ab06fbb3a3485698bb955681b95e8932aa30b9d8242bff3618120038b3ec776dc3b635963ab24b8e5f9761162737b04a59fb38ba1b3685b3512133e25e7810c4cb26a25be67b314924728528dbdcc87ec53cade88b1e55c7a9ea43b647655c697331db555e7881e240cce208ab189265db243cc97508889a2fa201a0d1066c5d2a7370eb8137d04fe035c8510b9f21e6bd152872ce6c7cdbba87ec85341c9c23bbea14f9caaccf56cd41c60931a1970867a38fca93fe6a789f5b1cf99ab23fbba5abbbc881aa154df05e9dfb5c92679cb56b0f156c3b67e918de09c5eaf4288885c91fa5366f0854e320451e14a48261cba3cc671ab590ccea69693a25ba90accdb715241754f2f5adb67a6e6491703c0b803d8c55f6364cf64c3f117206013ca309f5c7b4b40774f98ee7738f70b5b9bb19737855bae9958f6b24b22d643753515f79b884c223cb9a734c634306ba20cffa79a5c5fa46e1501aac245523e2b1e42a44a953964727b13fa01b65eaac6188a1c9ab974c613cb5971bc8680e90181b3ae927b3b325a22389c204470e4c6a97e404437858910c61897cad27f00e2f7556639635e3775f7ea351921051684cc6ac224df9ea98bde524863683175447d25aaed72c68b15955dd1639dd978318a8347316690c24bea1d3c64f031aaa2a3b48593a7593b2047a8c29c317c9766bea878cfe5ab947f12d5fdbaa267a18ffe966ce629c25ac16b68aca3ca000e5081faf0b07c7b914dac266dd08109ad52408c0cc06524ed424638d1b7d3175bd977b982b26450b7b3111625d2f64a6055a59168c9ad1cc13773a8f4a2c79d92c08de3567387a2bcfac1186960d3c939f2a601bfa96bf9416022385b2d1aa2dfd570fe54cbf4cfa325bf4a87e734b2bc4ab576387c63590ec3171b41a5b621109ff0a7617030e02962224903d40c5c396413d8793c2d2044949659a92b4480e8123a8738f3cc12e45504dbd40a3a497623e70600378bb32d66dbce08eaa28303e896aa887186ef9107b023b69c49c0ff802fc504431ca0aae2008fbf39c268cce17f1a75dd8c880a34467963cc2ab4d60d78e96dbbc5e5611d955658de04b13d5ce6cd3af9e2bb3caca8e6a088afc7ba31f951b920318ee4f3c26cc000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: cb24ab9d59fb286f3ecd5908e34b4e5860bbd08ac3939825156f619e0c005de948e8698deb7a34462c5fb7730ef3ddc05b017b58edd91e6fd6d4df125128d20ff619e3e593364eee7e532f3d962108b31f77216f71bc9d5163acedbdfa48f94f2f587bd5c16e11b5480237e88f1260f7c2fb25d044d5108d199e1bae51f8f14dc5614b75996ecc3d067ad3cc6b294ad60fb9fa21750c7bfb53874c2ee99f73a494d0df220f054a845f2fbf85d1a5727c087a65436433b73013b9a6f26f08c1ab443ebffaa03a7f8f185f33b07b99400f6b03ab985711fb4ea97d058a8e9a948101359b610a6d428a3d10594aea5ad602bd83b05ef6b6aaa2f56b655dffd3db5ad2ba51d8d3138d355f2550f29b40bfecbc43f1a3dc7448640b5b3006b87a23f6b71554d8a54fe0d4db52732e8260c915407286bb3074d2dc56e4cc50bb14313a4117e78e29d83c3b5dbd93ede35d2a47b46a0ed51fe72cc7b86f96a3d9367949abcddbd9988639f8a8555534e23fad9f35fb132396a13f3abed73fed757363207043a84bf5fa6cc2bd862ca46dfb9a124fc0a2958a09f1f35fdb5095bf48b859255cf49eea771f10ee78ee460599342bd76ecc8ea35077c4adfc3e05c37abe4b45cc00ab74247ce6568b0395ec681de4f96af9fe4f053d08ab465ae580bf2e4bb54884bc90c75758a6c9fdff87fe56990cd3d0aa691f97e03d46b5e25bb6a8d2acdd458bdd60aa803f4a2e7652cd9901a385525eb1f2c619fc2ac3bfc655a40102e0721cb842bd1516894e31d972adf9570365c2d3acd23e998c9aa620bbd0f98b07cfc103389df202660a9a66e819e8ad4872cac9d11667ba07e49d0095b1470d793b0520d492b4524521f470c1ad11a917545c3e90c0d09c57153b9f01021dd9af03ca73f0d833a0f7d6d8cfc132c95bdf9713b055acd993f8070095cde23f5782bf1502268ebbbe18e0a2c2579f4277d2487173fdc03f787e960b351c0b0c8b676e6a9a1b2cbb8b88ed59ca6fa351141711349e70f13175f5e1e6c40b495c283f7f10eecd35fe77330b52b1dd5c198c1ab5aa82547b822b59f2eb18d3f70c2fe6d78a5eb960abaae74fc69c573948212efb77b7b58ac24f23e39ed35a0c52f00885c24bfda0336ae6ad827b83a0520710d9a039bbd2c9653d8b3ec38133f06c4bccd714087f5291a37b1ccbb4fa71aa04b6ddda1cfa0e4af9d531c053b4d3b4546894693e32feff3de7df191517c89d34bb3bfa4215d98f5c72bcccfecb97144f1abf05fdb21e2a4017e9423019a26eb70022c74d49926654e986781d9acea4d8008dabd068ded76190b76a6dea78e2aa33b33e5c68b43946c0f83cd3c162dc23392d47e6dff8ae4dc9ba44ede5ed59d6bd399110c513e52a71bed8073d3b791aba2dd34ae5fe07bc9f0b8efd5a275b10477773ed26687be2df6afca51aaadf3df873b7b87b221ed25e053de30b529aa920b14ea96d955ed4452bcc4f40389a9b8dbd8bf25bc02a99d0c1fa92e8d1f39013210268f766c5d9a8f080756791e2b9ecb7c81b10ff643262da8e63870b6e910c26e10c20643ee740bdb73c3ecdae5bfbec98940ae2cd3936c8dceab8c6156840463786e20770d7c2b89546a41b7bf5dc1a441dd8089d03b69942f3ae9823a29aaead42fe77763fe0b51803cfff169b5303594823ee70e56b4aa0d8d77a7a39181169d4c9910280edc3aa6841e54427b962846df3fc73b71ef19cd6f24b74f88740347ffed1c6b299ca9aabe8f17c9425da19518f490ce73b1418a41d7f5d60a14f74a51dfbe6170b4df1c908af859392a4df8e27168a35091c20b2a3ecab2e0713e26f97d7d571dbb2931db0d36997cba78a929f06480326a8ded29b0bf1199b654cf6cee8e982ce057a55ecd2be458bc8f55156be7db5a39dd5b5e62c0b178c0b500d79bbca5330cd21c4e213bfcb2584e2fde2e7f19629710776affb99fb442dfd517d49305d1980069447b09fdb411e3ff2df0fd2e76b35ed65b6abd6771e6e05977ae1a86145a24ccf8b8ea28758921a0f202cbdb629254059ea8f9b5f6f4cb4f69853e7de7cffe70c05c5588ff5e77755852b6782f2565644e6489f62318a7e2a29370f5ea90c6628bfff320d948f715ea88958974a0ff700b08b3712100e73ba7d134f107c304ee0c00c65dca2853e739ff2842beed8e5df18fb4bb3e7edd7ab8d7d6fc0f2afd92f5d15 +shared_secret: 751052356086210d8df27a08a945497eab163ac925b059000c89b6e82b2c6bef + +# Rho leads to matrix containing zeroes +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = 52f8b3b253b655f962e9475e8cf792f5f99b5c4b440a166e0d18c79de23173d690cfb697f1d072f269b94a78bfd6196ceb655354c31f356806ab5c42bcb9030c6c61e3c3a023327fe813362bb69ed9e783b086a94581c41cc49c03489ed53b585febabaa951bcb642674b74a4ce35db92894c6db484ad10b0dd84b3e1b9f88960f4d7a9b36e580473692930a83a5233dd07a027c8cab7b4165c860cae41b950d970831105902b90805d066da6552b839607880a1bbac123145375115c647d10671e84b85f94206d534cf44bf59416f01994b8b125a0e098a842c4ad6ea108fe5bcdea005a1e3985f656e34c431d456cdf9f624a7d221c2c242cae4c9720a048c760cd2927591db67c951905c67bb42900c44f67b99e508d5b38839a0b31443ac8c241ff7b9ca0a06ad744813eb37142939248c7163262216a4438b7f3aa5eb1c9ae329c0d0bc63b2665d90b17e7a27308449bdce8a861fc08c982266ec83c9aa1422135a9e9be99c0a098df9a5568960aa2c727a18c15e7713c289e502bfa9170788c6a2d01711fc9b4177a491226c4d6a05b03baeec202b98e3af0c7612d474c6b7b912cbb38990f29fa5f15fb12c4a5c417bfe30a8ad88aad5395287376fb3b18b234199273625fc23c79a775586d87dd9466f1cb816466807e5079a270954e8fc8851738dc316369f8344bd1019f6b6624bd50f0cca851eb57c48b126aaa3a97d8044d3800bf344c4579361e3096ca29506b4b125143b2d625c21bf0a001aba2e17aa6075d8177d55324a08cca923339bf5c7c00b5717e7007cc94b61f3207dea1e3bf24b79a09ef07a37c4476e47f79a674693fe00b78d372b6ca76614ec604a86b64106cb61d4324e99873b241a56e063960b5fce306640bac5d46c88c85678c508452a806de60966006663845692129123d2846fff3225529475f51521e3f027d537877797b511043497706f3bc3b77ab6823a112597567e6b4848acea62fb09181fcc556beb8216c76ca6782e2d1234bb8521ec40a0f6d511bf8774d335b9a764a89aea93cc9b21ad62635c1b8fb6a4a4130572e41bc13ec627ea2c631d33a81ab1b6c77078c564957b39b0f9f04cc91b1b9ed89240b03a1c787347505fe4675af30a09d6ba13074431fdd045c44b4754e5682e7c5d49492e0ff2bc7585b631f3cedf98bf774427df7ac847954a139545d3643b1aaac31b49571cb7ac65554356d8aa555a67faea89396aa810a9b1cc8312be7333003d8e1f854a7e35ca0d75b06c499b0ed2a35699114d287bca9571e93948bef4c32de6bbb952a5fee5ac42a14c4ada7ceb5c8bdaa873076b0f7ba4881bd2118ae67ea671482312a35c7c13b1d7af2c9291a8408c3ce985a6311a2c702cbf306c9a7b4eb3ba169992831899c6870a8fd3302079748a835b04791720cc4737c5b7684ff612abcb477c7032a88262a37845f2c46f9f0066d19238689b1b53dcaed0544c06755399da2ff4fb570b299290497937126672a41ee9fa594d40551246cebbca8ab1f5c30ad6bba9b0aff0f06b0dc060e6b58a70cabe5ebb464b3562f1a10990d12e5da525c43040d66461cc396ace7c90c0f1aba06c94dfe7426b922c91744310ebb4e33251f1c47e2a415b95a895666333aed434edcb69dc69a513194ee2013a19164d49a519e0cb3771247e65664dfbc69c46dbbb6ab2193bc5b56abc9034790ff43909e6563c42545bd6ca31045c2228dbb5601895cd397dfd73473b0609bd720f9475482697636df216beba0d1a85b396e6ccb3e41fb8d52b1341b08504bb00a5740a80228118adde4c7d0bfbbb0fe0b8b815bc07885e496324c9806f9d07762f123ddc558aeb387b9858b2117714886bcb2b18b182b6ad2f8a21acd50388959f3b70a258a025c80a0b89d6321f222913484990549fcb98c5c8c88c2832075be378410b70c9b9494a6c1a40e5aebc88ae3d186d0b3896d309710c17ab96c93e629166980325bdc946e022ab80c47f61e01421c780ff336d7ad11a3c28721b09a03a5337dfa6cbb76acdb1846b62225578d17fdf062839878196d1819abb7f09dca6a1d225e2e0bd89a5578730adc5d53d19623203e24597c1a2015accd07a6f83938810bcbf2dc94a99f5b47082336fd11a45ba478c750f3e638d064144818a17f1586d6806353409000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 6fef277df2e04e66e489b1e04fa87580157cf1c84f0b3bd8137afd87cfb0d726e39d9706f177f605e9aaccf3a52e841e4c3c4b5d54935c5a9eacb0e6d8a2cf17ca416bf7ad3cea42c3533706c54779d62a0c8a44d0c0f920db72b7d072738ecc07fe16a8e257452e1197604054866dba1d12cf4745a2808a435bf31aa64db6af2dc4a3af697911adcf9022936fb5d40a9c553774f4a589192d98bf8289c09ea803807c448ee3e99c26799ac051a50ce5edcb57f3e13a13fa1af41befeeadb7c33e513ee8cd9364025ea0b4efc5ff8f095db6f0a9783acc57b2ed7573cde2ae2a8e7b211ec9eb6eeb34bd358d5cb009184c76bd7d1bdb4a920464d1da993787cd284ab05b8d5d3ca474847e64e1e728ac4ae3522cfa3a642eae5c47a94783700a2b758b2342d5dd261715db4f3156a5be96fe219dc8038f2d7afc74fb60e6cbcad3ddb6befd0625c4b2de1cc9039c9486c5c18aa8a796169a93cf8e626ac47e82b752f2e6537287580acfc1b6460bf5db3f71fb1a4f57e67e0d914587dfba55ee5bfbd5841bc04d041526a46053af4de2347fefb071465a7f9b00396b66c49efda179f13f07dfd0278464239436d8bd39dfd048329c89c2c8fcfa54c24ee67d124dd0b2f411772e480dc2a8b40a6792d0cae8ae9c6c883908a0d33e931053dab157d49e11e76ea3a9bde1c24eefff37379b265a52a4a26b507b5a4eed6f60a84595b1b747c96e8656e7759392924662fb43a40f8154b642dad2d8a0624b413a15545da8bc3dd5a5f8d304eaf23299d5a4574ffef0bd5b3d5977daceb80d67df682979abe36cd7d74c063a0b7214336c75c6d047f2bb52a0a5124658b9b53ac5a67a27b001aeed0c6dedadb3c818ca99e52b18dc0a9adba7f88eaf4bcd269132be2462be1a42ed102811b376276780e7a4b399f02e6c00605f1806987a6c1b3d4cc8f9cdb85b2c833702735ec6a61b9fd2c9ba220b108451d1fb8ddc5a07baa2537f71bd82f1f06d7f27e4a374336743c40466e11de367ad4a256e860e6e5f62a38cd2911bfce65b1b29274989dd1016ee6fae7790bdac6a3e1ee05fd4ea743c5609c3e4f1a65953421be132220b1792404d80d68db00ac5a94feb238325ffa44b376a9b6bb3a84928b065995cc7882673f1de566a78bb80b61beaacbe138a5a7e2cb5e3e276057520db7424405c69f719534983fac6ff483b884c932f6b72fd1878ec2ed1edf741159b973e5ae846fbf59ae1aca97fb855c72dfc5181b09a5a52a1f8012629218a8b00968a5c4ca733a07893cdb1ada1380db4b6f4f211996bf9fff20227f7d73aa552d8f9fbb6ed0d4dd278aab1214fce37dd76ad2ddb90e7ec49c4c4bfa61602988bde7f498d5feb0540cc0d6f2ae75018115695482a4264d513780a87bedf78e256f99ad0ad37f910215795fdfbb375d66ad20d1a731003a1ed52014b6183906fc6a0ee544f1b238563cb6eb407875714ba9d2fb48e667962b45127deb0180e317af9d2fefed19ee929b75c97088ba9cf525ad7264680d3a9fda47a6b5168a846a1bd63695f4b3342ffc828f8fd1d5614fb4adf9d64447984605a8846c094f813e991abfcf01c0ec330cff0aa9c8680d424196f173f63e2d0ae359e5e1968fdb6fc72721c23c239e88957f107eb296d7967701d4e9dcdddbc5962085616cb641c17c86d8f33d73bef887a160065f48f5d7b456153c4d2898f092f6a870c49ef615fd22833131b55fb46f73fb399b046248723cdd15d37c46e0460a81840dfec3879a49eef63e3b331cf53c8bc5b10570a7fa23e3228ffcc20cef18ebf8ced22dd37b50f79aea827dc37cee62a849110db97287b366afe64b4b9379586ebe34b313e260e84be654d83dd3fe4f31d622132c06875ddbc70629197f54b400a97180b81b2cc5aa430e3dc6ec4d9aa37dbf811ba2932aebbb9990f0048b4f04930e147b38f3f22c4f026b806d9dbdbfd69914346440d9b37e7ffdb8bec0761e49762f4f87485e2ba5beeaf306253b97cfca2637e7f7cfa175e5565e9df8741b94aa8d808515086a12606cf207878080b7cadbd318ad5667b50ebae48bc923b4b7a7c7f7145f7f223f2afb9536584caf2e8df28bf693c2d4d2ca71e38361f3db5108e28ba11aace9bfb85bd872be837916bb53ea66a22a605683cc112220f894a8dcb16098607ee5e2ae33b4b93dca707fe7f96f91defd1a6105022 +shared_secret: cf115ea5c334c9374daa083543cd805b8070de6688c552b82b256628573d668d + +# Rho leads to matrix containing zeroes +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = 5be7aeb3f7b944d964d1a7cf0e1a686e02b0b30195ee2bc6d5c78a8d73caa7726a8bf2cd62f33ec676a2a0c997541a386ebcb3a5d845c0a9b970f35ae0602a4282136a0cc832f34de426a08f05bb89f05c4f23a1d7bbbc81628040fba50077569d99cd7b5c7f19b4cd5ac618a4c489cc08cd55f567a203106be784f6824f276c5b4407cafc0836a69c8d90047803c598db03491110688029885ca112ba18026a339ba7e47a4dbc2386710e87fc74495935b6c408ee077138476b8fe10cab556bd1613bbe8ba72a345f157641873651b314534a7c4bf2979fcc062593c652441340e481a76df717b21061620c946e1250e781661bd10914556552ca3204d44d64972038a68a60358126305dfc2bad91289ea150162333bbe98874930abfb3b13922b2be9fe6bd40c9caba8b9412f85ef64348b6b46695184b212b9e35586df10375f0c0781b6245e2d8c580196a025022388a8b1422a847d388b1cc17f785772d5ccf342c01ac667ca866c49272af0127b8076570ab309fdd096b007843a2dc167837977b459000a8378fa4aaec320874804698524e4111bd1525be985a959ad3c8ee8373511726e88c71f2a839067c4a5a4235ac4a977c444b482087c612752ef0359d1041d3740ce4db971071c0947319a8a2c314dba1bfb118fd093f323c4e41d618f0cb73d6023e7380bd68b9351a825fdb952f13f48b64d99bda8701d040b6da27061ccb36f982611b851cf2e795f02161f58ccb973c6c3b0880915c31b7d59e3ab05d14d7697ba59245043bab406d0286b71f72006a51aba92c8f53e39333cbb273fb7814162c4d87244933ceef702d17db03eee50b48eca264026d19191800e47d1bbc7ef57a4fa0880338922f75484759e2a926391d1f993ace7756fd03c13002950c33cd4a882d90131d5ac4c436bbca02e22c608a3537d21971672b49963a1f867fde42c4b464b8b1e557be884862a68cfe361600f39d38886f8fd97479a0797ccc95c66289a489a66aa9955d1985d518b7c3dca884db56a6bc01d1d21818fc25f43a1b378286eeb18da2706393026dd8295e4e20a103ba97ec7618b119154543875f43bc08d76dd51730672321bce866ae2ac6a6450215439c9510174c90b58a416375e935092bb7469624337a5130c30e27905b0121678480b75d206888c706699b555084a6cf21237b102107bca8cfd4809e3513886b271c45cb162a189568ccf9389ec8017355db91ef79afb172cdc60929d071c6ef927f641a82937a146d85ba668701f14183a5136df8d6b27a87c215363016a21b8ed0bb27173d067349b170911c0607c065b173a429f244199db3affda480d7e3919ee616aba4165cf1040544739b3b2669817ad6f3335c96b731ccb2f0765552a71ab3a32e6509c7d53233b229bbff40c8898544a8a26db655275500bbb265acc4f8cfadecb77465c5c1989680fb37b554b9e5199c53759f27409df229034d9247fc965d453a206197cd840c42b495483faa1d62571b27190aac9c56bf5b992b8019ffac1366925d2b65230e2a88cb3c209ea13a1f273c9c512918637d5e40b92b9546970b341ac0c69a264b90a414a43270e442665b59608919cb8ee7234d113bf6d14c89a7a1a1f489420bcdcd96123349c65984aa9ff083a73c8294a282fecb16179c494ffb33506947c9b59e39990b9b516a3751aae6cb5499d196f6402f7c2a88459639e6c2105bd565380184b3e48691b11598b5473c02917558911afc73bada907ee1c124a1086a949fcd45c0f0c37df0863f45d70125d02ceada9c797a80b1692ce7e7c180079023826f0acb5c80a44a47f724b27b652c10bbe4f6258014a03dd7cd84ea2fe0ccb4c0744b76fb01f0f42d3c5862327c6d2980751f835a9dd741cab5042e685b52f45ae95cafb6229b044b4a3e056c242ac7a44587abe55f8de5b2fe0a9cb8f9aca9baab8b423a2b7c6afed694f275c5ae2157288751e95c2ee45c03935a45a130156a739906f104dd931a6498960fe27aa15a0679d1bc68c9850c930140b6a45bd2c2b5cac0a168aa644760f3c8af61b8bb184cb7dfb784e0f0c5ce739fd881c1856815cecba44a3c4214f7825ac44e77e97c8b8b32c405292d508d2f8709428a39e9b60016908b1ce6847f84b14b555250451be218c2bed841584b3627fd000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 3fbe35bddba843a88d1401fb50ebc9a3ba2b42cbc5795ef3f29f3c641287536a4999325b99f6b5e9c2a36f8127e2c09a7fc6140a9bd68300e40e6ffbfdf112e9a50a21d16a256dc2b9b94b2e45d249c40810a6978963b186d543e2154590b9007afcaf9d1791f4b0ad69283ce711467f001e8580693bc7a59928f7b1c228dec882e3a37f6f6ca83efa2a3c2b2aa919328a4b4174c00c9ab4af6d16de60859d3b4cce874366fa93c26457d029d20c186034ad8c4c30a51a2a5547e90456ea1d43ddd1b882681e58fb8e2db2c0ff36201e0becbe530be3cc8c6ebc80b9f7904e8a1009c1aa33fe35649ee91c558882f84c885183a6f226db7dca9af61babd423d2f749e98133744d5cdcb36b541a6486a43a5c39f92e0949c6204237ea64ac25faa8129af4a10f9aba6a0b647e1bc99b19187d3a2a941df726e7f8872e2e4064702ab7bda5756d7ec0afde524bad03e5f80a4bd76790a46bcd2556c31aef335daaa780c2533c1aa5fb2109a597326fa9a88be25f28c0b9577fef5521761802236e274c790891b4966030d08319894e6904745065e417e91d8f06722b159f21e4395143a875b2b6f48fc614fc06aab25f676c665ab98971fd28a7a9674ab15012517860b2a532fe543f50a4b467b2246efd85e32bee86dd067963edac95b2adda65a7255b7e83be377f2831c0e1a2cdf491bfc255bc417661a581ced672ff02e61c097e8103966b7ebd851a63d5d5b5266d2604bc350711df665fd82152a47c723cdd0d43b226145aae4462a233b2a8f91975c498d50a6f4f368e8501b709c0df403ae23b4f559cd57c2597f6e30b1f6047be7630b90f94f8b13b26421386b62ea16fbbfe926b7cc08aff6a216ce84b850d4b3fd2646824a3a95d26480aca8a36dfa1925578eeda4dba9bfd90fc72419c648223d259886d72e728d90cae21cf204f230c57d00be1444a891d4da82a9c9009db64c8fbfa922c205e2d51b50f4cca46ef3c19034be588d305b21d4b91dc2c806b12bfcefac96c6f5294d1d43c5c33365a0d5d21f5067c4b525e1fa20742502441b8d7595a309c7ef52f4bc96d3a4dc09e4480a67aa9ca10cbe640197bd824099448cb7a2cc6d8ed1a036c3dfed788fe64905a0d6b850002b932503eabcc1dab4695b33b48f0fbcddae3b8235333d29080ea2c1b58309c014b13dcdc2335dacffc003e98e2bb2259fef78ca1d136ee25805d9fb757a292175b0c9edd0452effb49cf3cd43aa50009e55a4919d2e1031e17ef2ca0d6d2eb660c159580b1ec821b0dc9af97603bc27611adab6fec6ddeb233ea4c5d068d1936f5e2d0632052512bfbba15e8601f5cb8534f543997d268146799abcde181ae13fe13d1b17a4785012e902f3bf43599b0e287ad3abfab70c2eb79a60d9c7c9e3856d5205b27272e16dfe157f36befeab28785309ff0c2743a36ee66b7b036c6df71c116fb4ba983f80b07817982e084700a24245f377eff62536645699e1ba3072caaffc45a7a3668c4ece26d7eeef7d7e32be0e218b89e88aabfb7a2979c0ba030ce36c47b6c0e4609315fe12b25f66f33de60cc9334a0198e00a81da412c9ad39a036e5e3f9d39b4a5b81543a7001caf176fb1964cbb1bbcdf7e096d762302baa502f0c172ae4f22bd92a969381ea476ff67ff3c96e9be48950b51fd01f3160b5156b66103b40d3274f041640e14d6579870a6bb51c5c27ef6a3f0f5260cb29982becda5fb21114533b5686df14885c36b07907e33b2462c17717f85a700d8c209fde740af48652663d4a67eb09f22322006a63a54fe50a9310cedd9d69b6ba52c1c991b8b43913d97cbe5150ba103951462140bbf02da88709af263eabd1a6db3a1036d2ed6bfb3b035c108b5df06a9b0e64f16891e11460e71707c6e0d5eff6796ae7d054a9026ae1a9daf1fd6e6f6ba780c852b7dd164711167f0fa71ede289aa7e77aab847e9b8852bca0be1e0b22201158f8ef8ed7615ef65f5bfdc3cf3b8dfe33d94a0b4976e621df81f699d0b7b61b3a1881698595a06a46fabbfa2d41ebbd7467fef258b6676fa8e89fab9103cb1505b9a4a2a532ca2c146dca4da88586ebe6b9116e7abf83f0042ba7a8393ce1d7f6ef50d443579eff34a4bd08642441f98ffa908a4adc4893a5a4cda1bd08e271a317950421be1af54ebce11f3928dba1d5c72897f896a9f11266062b5abfe3ca98be59a854 +shared_secret: a0cd6965a9282d1db07120d6ca59cbc6939fc4c64c6f980db9ef85b07c047e95 + +# Rho leads to matrix containing zeroes +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = 75a9865fd5889a51a706c80945812c122ca0ee71178b4ba808bb7a28ec91ddf13affcbce77c1111f692e50f8b6f54b2694266f10c5cf411096c36aba5a292335592d975036db69a823b5ba1d003b98acaa0f6929701653058627e444b63777b6047957bcb749c889b1426b34a10783507bc5e3fa7bd75abf62fc236edb83d65061c2a7671703758b04d0ec738e1841b8256b58ac448285f1cc0495928c78166ec0a5ab8471d8d59606e375935c0211535ee2a47f051b310de23a153451f39179105997841857f7e277918b682de60ea5d70419b0a2de9c6ad708091148514e94249d45c8cb60215996abce1c86c31a780246b0bb937f26313e6fe1ccc963952352c717d303254b5c373752be849c027cb6d3c616fb52375492a4848732756247397a238cb63a6d50b9317bb939fa594c881497f92f5783951e03a3b1496cdff20e22256319405d44c9553f91018197510db2956baaab22009ab153370b25a98ec2c2645661e748ac85976872a47d9716ae7f865ed112c4c522c1825213e68978f0c1654812868c00050c7acc412aabb4a9683ca9c673e129d018a05da0105060931dba7eaee888a2b233cc567d722a447dcb880a46c640592837891d6a4770a46c267f104811ba47b19031bec2a7510933295752d2b28de55326dc71c4caa543b70372938087843bb63d74953453057a3877d2343663c058e218412db1829ed9aaf8574681bb2ff9e217e7d44b2c260b90c18a1b20c5842225a66c9afce760956b118069a4a8ba057eb204e03a85ea1701b85c71fa6ab590345140f58280121c58b42fe74922a99b8c2be04dc76c1173016b7673bf870889ce6520ec537d356c9b55d7680324517ce3066d8551f84c7ba9d70fd9f3ce485b6d1e38b5cf055b38e2b83730ca439a14b7fb7a043a390fc652f74940ec2b906a41b5304140cb5b5412f996cddb40f8ab85b087a42e6ca00a275975495678890ea6a51b6d874235b48295495e951007142b703463c934d10cc88145886c5e7b6a04dfa9b435e27c6c729941802b9b682a6587907254c5b93694de13aec3d93043e4c095e4937e9506867266ddcc601ab9a2649822824aa12846563350caec702f1b493cfce645e2a0758bd5a9e29bc3c72ba74305577c10266099bf884477ef111c6982826ad7b658e8aae4ac69a2025fca407f6b5275ec6572b0a86a16a787a413cf919a39f65074273c54d8fc548b2abd1a7c9fff406c84191a8d4c2e9916b37e652e5e83c879942a559024fc9008e8d008dd39768116b50bf4c94031cdf45cc932210711a443b4d5b1b40875924576e864335f130f2f51348333c0b6538a7efabfc8075306669e7b47cfe5758f7387526e666e93d16777895201f555ca916c5907c80cb003f6b31daa94851d0199493242a2d4ac3ebace84d04b7663a7f922bc277562d984244ab894bebabc8d8b43110b4b1b0ac3f4858be1585a94c46b24252d3bda105521b0c625979b6b251726ce2848b327d36ce3e8502ebb9e67c102c3e6250bc605d71a93e96472c9370dcc3626bac07334954bbbf280c2e84dc2e61b7ebc0035897516d75cb6cb6994a06bde802d0bf986633c0ea0f3a4854059d3e251283bbc3a19ad83902938e2b976c10611b62441f7c8d147023fa88c1803a8f4b5a8915b3454a85e66345218f6c27dec0444d4bf28a024e8d82a86cc40edda2751db4bae70045af8a450c46b49ea7ea01b70424810a5187e2057aa7ca2a36ba56cc94917535c06a827a704d3088a344125215d0b5944e5a91830a663f8a8c4f8e20c6072759290946f153422a62cefb33ab80b037b145dc4f5c49426770c103fd91539b42b52ae74a6b50c50f60650142b39cf595eb520592c0a4be0c16d4f766c29eab0edc03a9b864c19102d08458b1b94292c1915a4f191f6674723285caf177e339c7c8ec7c6b0a502e96a74db0c5102eb519814acc3a6698be62f97e82bb57535ad82cc4a8b90c2c46827ac0adb013954e959364c28e51284252466be14c2141231caeb2bcd975492e500e6c518d22a2b5cd667700bbc741c155ec81481687e4dc98a6f5b5efb9188c028c01b2c94bf858852603ba35924e1ba3fe08c50020b7d142a8bea70aa5ef57eee5ab904b4a5d1b251e93ba6d9fb955fc33e5c961289ac040f2b4af6ec2e27fd000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: d7e07ceb0c6e77b3c5adf2682470e7a7b874f6de85bf8a43a6b08a5c9a538058b8c3bdcea97479c5ba6d7aa64a243d739c22bed27507968dbc74427bca924f61d6fb5825c5f74592dc09eabc65508ed637b8908d058790bb97f05a1636f42714e7d829177b49c8b464d0491ee9f00412c38f0a67504499d119acd85a3df5835302ac2ada18cded22f36e7a97f18643c1181bc71fc636827f9b45639744b6dd5d121c2c5651faf11e7752be2a91488fc684419d394d13fb8d8b566a2f4e72f86f6ea22b45aad8f52e2a4e0b9e4b02e216a1c2d924dcd258f84430047c2a999c7b6548edf5ff36bb14ff79534dd18c89d187dbf261db5abe5e9a4a98af5d1d8633690a18ee5ba00b8b606fafa63c9b5a4e58fc32f32f6917436f8aecffa64f70bdfac2d9e5963f0c841a9a2a40bde295a7ee21d5f84f88ad2dfb60482f5224a1ca6f4d0bfc3ff133795478f8d58dfd086ad5bd93571070865723e0cc1171e8ae93c13d565194ef6cbd40f5930c88a2e433120a1b773a9dc93daf21ee0f201fdc24752693df11c0d86115b68e31f4edf4cc672c2c1c75f45e534107317c5e353dc575ece35ae6069993999c2fd5a0ad534682edf567e1c0a960013c7abb691dee608eb269825a71de35bb3441fc422e4604ee2635f73fd3fe18c59b04b30954f81d4e8b6e63a12287dabc50c26dea93a5aee7fc00815af233c9fd510a21be7c9c0fd7276c7edb2130545c9e732980a1402aa639dc713a540fcba2d7d0c2f7058cca6d503c1d2a062ea636e78cfced18a17914394b340f7cf3d5cfdec1caad629133939f0fa0d7eb093ca8bce074716e9b5a8fa39893e1841a14294506b921e34b7680ea79fbf88328dc55b56803411e54a172585e4d119c6b42e089744fdeb34d5c3e0da9a61ff73dc9d41d5483fb7fa90f31aaae4ee2e9068f00e2fa0ed7c37722963639160ec4aef8fc076c4224745310f3514ff50fb36611eeda4b14034c84ea774f3f864dc8d43656648c514ffbb59969b573af2daaf209ce7b99d6b2ea076acd3be5ade1832b8f074e6c721218b99d64c499a26c1b33f2b293900c9d8a5b0b6380610d49ff6a55c6fb9e06640db1e0181fc39a070fb1573acb86ec8cafc0239a913727f8b1f4f58bbdd522f9106afa5ece1be2fbd5259201783c0444a95a4d04aad6fbfc3c514a4c5959191a8baee6459bf086f31204d624d7a8821ee7da353dd95179eb6dfdf95ca7571830f7459f4ce6a5237f4fdfc13e2455a3e94996c2fd08136fd44dfb23d15e9bac5ea07c270f62402cda12df927bac95647d969591b7ec8deaaedfe34f8b4731e578b1b7ad8d0386885552934f6a8f00ef304128a369e78ec7100f9118f0ffe8ad237d2851eda280b3cd2b7f46d62ee0ed52487e951592606f8cd0a2f463781bf3fd1503218d4872a18ece06c18463c075418dd4bbc514ff4013b6a49b4f3676a1654c74552dee3faf897f3695db1d3b75e3336146b78371fbbd5fc135c63bbcbe019b5faf910ea1709c24c0819e34a54f03c27f87b040e07d0f418a04d1d1a9508b70d6f0b4315f37d0daaa0839405f4b781606801b4a5b0d3b2087965e194d513ca64c310ea65192da9179a483adcd1dcbb21f389b1a515160391c1becb9d7ac34f75386c9ba4ef487b4edaebca3545a40cd3bcff1362d5d27a38993eb843bdd2c7de9e81ee87bace1bb4ac6d88a524db65289cf69c9c7be3c1882a39b8fb038ebf531ccb1538985e51b9b494b113933b1b436427bd1dde4540ffe8ab7c4c426a384fe0d9a824ed21d645cff1afe2bab0511e6dd3b0554843931ed277e378d8fa56e8454b8318447712eab10c102588ebb12b481fe8a613bc1a5def7883d0681ed90ec5f3004d04020700848885f1b5fc542fa9085641a5ac2d8b42cc9ca6a484d8c0efe93850d6896dd7a2bb15e3b36b8edffcbb9810cdcf510344070a264d32166ec55ce3764822a8da2377d50749b415077112a1353327bbf38d89a0611cf7e95d0a1a5cc6173555d3b76c13456e7e042dbe22b1123f32528953d2969a966aa37affc93472fad39949ea8db080d58a4460d6bedf80ce4b83a8eb4fe3e29cf72da59d354055a364dbf013d4ad0133fea1c690d8b68e9eb3c01b7a14bf1bf619f8f5fe2d2b3001d3a14eb07e9fba744c4ea8e4700492070bb2792c8a753251eab737267840e4f8b65a8f533aaee2de1bc20a4a2 +shared_secret: c6a7a9d970bbe63973359c7c72f190080a27a02b95abd0f588fc163eba9f82bf + +# Rho leads to matrix containing zeroes +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = 54532140ab6140d7a6265c3c55223229f1520da71b88cbbaa7dc7b6f79cd6ea1062f9ca88c47b70fd5b78d5a38ea594de590b49ba0ac7b5cc2b324bfc4d26dec413467950eb7dac40f5a60f054662bb9607f8bca39fab368526ee9980498180afc1b6954cc242cb04aa8a01a37c16a805792872b2b1ec63bb4b6bec174cc28631c37953241399edae60e66074dfd9b019fe97e00ccbf5537baacfb6bed8b6d3d4cc9c3b54e006c70ec2269e5081e8bf17371757b9dd40a8f1a388d68226d46bbe0b661a2b4521d143b77e2cb2e567fce825ee9338c12f425466716e67508f7e4882229a85766079194834df17440d0a4533cbfe24b05b503c75dfc9dd4e7a067ec9901b504b5a08a9d340f9ea4b036b218ff6353d8732d08d74cbb4cc19d6123cc237e31768845c628ad754ad9f484f3c3c0587a1b9883b0abb2845fcb7a57b42493d60eb5793926acc86b1a21ffa1a790183e1ca56aac8256c98546c69523819790fd3764ea0670836078dc5105ffc04fa83c50d1e933682c54911348c8627cb6f776d6c79f4415ac0a91c46bdc68711c10b0e34770c4b2d39194f95b2215a9bd453828871789a45164e57215fd4096d9ec05054bc55e2a49206a69e4f998cfc68656840065d242ae067195a5c421db21db766b27c29fcfe530c5e311408328d1b69eb415bc4b30917f957c52c14bc1c01d3f0588dcd58565f500569c539fc67e1381ce86904bddb978467c24352032b975045747235c8932f42276e9a36ff89335d6a042699827fafa84ab12b17db956b0b55c38a1281f5a5f2d9c9104cc5af03a918a5b26fc5585f25cc8ab750c47684623dba4f609827abaa9ad668427b63e1b347f00957041b6b62509259a35542ecb99002c5d388c98e86b7697f41398a3a30aa69158171a63e3397526b6fa4c72008288bcc1c2f7d4572e449d228ba05646a946b512260b6eea7218e47642cada5a9561b867648e41c368b1796e2df7273a7208f26444871756e4d52fed089019fcb727189718f02122853c6ef21d6b3403e50c0cfd447229b3457d7cc63737c6b72c384c8ccd4fb451d82a1b49e88c90c7be28311c25e3be7160bbfc42865b9003d84c1734d44adc8b590465986089bd59f1503d888f7ac2064e03447896074a947487c2b08247328c933cc31a9d9ac828962cc0b7807554f661a7d64ac90009bce5bf00b19c579995df27401fe4bf0dcc459a8c2dac1c55e50bbf0e877abe5b658d128b7f434936e273268442e725116f946738d810119531637b65e14c9d3ef26fba358df92319598c092b936e368a3e0d8a53f438708eb47de814bc90f49c83c87a282640fc02a2f30b56f659717f6234b611b4465347bd990be4ca01e550524a164c6b97a2d64cba75c3aa35924e31d92f008b42c2f701b0d99addb39a045a8cf7ebb868822250db42408c0c0a60785c182231002b0bd9884fc89a0ad60af9699e5d0661b514291b824639517bbf267decf078e8c35dfab769845a2cac1ba4c0e513454151d942a8d4163ced994d166c144ba81b41b1b64b74220b34cd5185086a797b7738a4a6e48100ed5077c1cb4401ad5f173ae4d047da4b5977f3bed56c6c318bb2c11883aa3870b760bef4a71ebcec54b49430ef0b792ffa503947187cd382c49c130dd32797740f335703ddd9703ae163b069cc76d50aac06ab01710785fa5429f79d8cd0c6f4f8711e766796d054b8a99c7c800b4f5c4f75a329c147649a7485cb61c19c0a453a9774585856e65bc9b3d30a20094be3d2767fe0431ce85e21eb9b35d48ed5fb2c2b1c17b13a4c67b09431d7180dc04fe087c827b6a572c446dd5caf68f0b2a1d973fad4352f3a5b22ab45eae32d17a993b24200125720a1255f607a1bf79c3928230dd3443343694bf62b996c3273323997972076fa49c48f094d2e122382b36503e95729e41be8f19eb4d962828959eb56491115bbb5d279a110330b818cb4a139f2290c4771399bc041b5905531b76bf817cc283331e860ab5566b5e7023d3c6a28f0d7151d175dfb9c1c8cc01a45522d0ca6374b8718d04b77a03635ed23c4001145f586a4f252a10bccb3cde193fba4329867926ef0b1a47b8bc130431a563ca97bae83111d309167caf354cbec2e51977094bbc6cec068d339833ca9c7b649204345079274000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 21c66edfc81eada5da6f03b40842bc67acc6653a816c35c9279cc4b1e956c94cbeda12013dbcf99a31c8579eb911171bf6f02b95e9a75ebbd255f2bee1e78fbb1524cf32afb999b4f39e3084e15b6bd4f6aca7f8cc2228ae48362e3c069426b260e0c5efab5f260f7ace2f1d29d0d9344c56b0a2232c7ad3d0dc963dd6d6bb24d956c47f8ff0dd7c5ad88bfd888de6f81cfae46096dc35739adfba6521fee79b4d74c4e3673ef9d91d26278404af9afbf26a8d8663dd722653c993ef20fb8fcb22057539f0a756d20a4a53710b3076aa90cd7c9f6deb6cd5fdf50b320685a6fde64b3e0580edeb49b63fc0038433088deeacbdba4bde5e07a1952dad8a822e4659ef39c6e32cf5f674591b939cb17db95cd73a18f3d7b4e2305d890d3d8134e78550a06b16eb84d7214748a50297dc409e7b60638878cb6c051621277c47648dd6aae6829b23f5bd6df5925d435fb5a4eb852f2bff1701c68d451760f254ec59f7fe900839afc085adb69b6d640a98c10c49d24d75046b4fe7a945248df6be5331285c42c4d714fde6fbb83cb7cc2c435b5691abee38030da34cffd895cc8231a8b39940e55437bd2856e3adbf2e48807aec2c90452e02d51731eb5eabc223d9eb47fff0fd59480648ead1b14a380bc1a0433a14ca0d815cba125b21b00e54d60aa912ceb7f4976d2a69865377a5b884e259001626303a33c302e4878fdc75be458f1ae041213e85316836f2574394002d248159b74e127012085b3043ac53637ef55ad9941802446d5c165b336a1bdf83736358ef62efca6c3f82bf0ece3ef5a69c6817748091826fee0677995584995e2b73bcd7c185e1bc88c4fb9953f61fc8c3bf3127bb3787da572dd9d99950557120ca64a09a1855d651bb6aed9cf9f791fdcbf92a742bbafedad28112787482810ac3bf3c6c14755c9bd75ad285076e50a30a232c3f6f0d7c4efd1857c239b59552819524690f8b3b3d3ab415eb36418470565248bd10657ef4b46d2b42dd769e386275fbb4ca289fd095d33a86fcaf88cbf5a374e272221b2e771b2e7f5546dade7e11616a722d5ae62d87b9ef777039977d1448e84d385eef27ad070b39a96a610c238945b530f0b1e2ec2aaad1de6c669b60aa1afa4616659de42dcfd2b7437a5952c7601e803de19fdea2564765cdef8b10d300d4df126fd8be3b0e75dcc935352b0e942723bd302f7f74b434618941b02d7872b17be9814549e72326b6b098f7dc15b4dea4806f9c713523a6c9c4166e689fc09bce2e61eab4dfcd82d0ffc0bbac3c419b56a16739d68afbeeeeee17b561c8ed1d26c4abf375e8fbefafc9f9a039bb28e4146a2a6d7a80743c92ce938c3fedf05f2addea12a470379d152eaa1be0d997797d880cda4335d325c2a8b1f4d04afd1ce667ba24c6bb66cb361b0eb97034d6a26bf02a1fbcc8f02e865299ed5cad65dcb1a3fc71966bac09633955f4834b0d9b3222176013aeeb0030b2623bafa7c2011777a6236633a719ebd6c5aa6347c9c8545dc8110668fc5f4bcb9cf070e4da0d60933f8b064271a4b70dc03e813329e421b84ef778ad98b59dedad9b1ef3e1115343100604fcb7f95b1e448639a6a35d2c0a49eafaf18a19f5d6f3c528b6a9cc14f091b19bb57643eebe1deabedcd4a20faa1f308eb88132774091dfb4a7b17c012dc9521ba4d5a0023f284abad7570645aeb798dd23863a66d02c68a91b87ad060fe813dd9894f56511ba7b40436ee063fd67109209b3d6724e4b1dbdb445c02324474399bf144302b9bd49e73f1801304a68870ddeadbee49ba227f7edd5fd288a0b936a7ac25290aa1cc57a0b90120b8eb89bf423511564b764991750a5ecf42938e854b1e4b768c61ecc871ad4eccc18d3196e15ddf3afe4bfa59a01344289a8d19133ac3b63d4e700591a3ad63b3253f6e25705585c56fad7b965732de47fa92ecdca4f0914dc1d78caecd85b6f9a71d057493cbe9cf27fa0923f642dc94b917b7ac52184f75530951fb84d9bb189c879cd75c93895ea9a8f53ee91358351a68eb4af66a07bab5e838dba00ba447642eb3568dc472a89190a2e8204c715a0475353d177f32775b7626cc2f3430dc488a4175d1a574f7be8a7f3a5c89e6ee97a73a5797907ed8c239ac3d93e299e74d01af7651cf3cc2cc9d92000edb5b91f77abf3f5da6500e04ad76ad016371779740b9cf845581ef5 +shared_secret: 784ac74e14797b27f5d98bed3d61d66a017ee9ee37a5b53038820b55b130a2af + +# Rho leads to matrix containing zeroes +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = fb0a389191c8b5857fae399094ca8c9af399152a87ba77181926b78f2b462c92b788ac988303cb8d2a9855497543fc09c7a49055554b9a9b6d868a31fd4922907275ca978fd0a6c3790a72b438c4203641fe2bc4f5f45f492c0abfc9267fc6660f2c4581e53d6f8b57b0d89b2cc29d97aa315fc7c9ae419f38f425c45271a29a9aa3f28f5162a92e317312f218adc92b3c46b8ab8a4c598a78da54107df7720b734f58d63064088766b06fef11a95e76b2b702b3eb0aadd0a23b66429572677304b024f34a0c07c4cc02d51186e406085a90a7352cf9ab502dcb65b24881c6a86d39c49c37f77a15b1b10bda2fba45b5c6c0025452bba0233040c11103084e95c8a51b7743fcd984594208deaa223278c12d191a060ba269eb0083c00b60daa0b8169188ec35c589652bc21da1c3c21ce5b7d6fc5eba8bbbe13216497884f09a1ef04b529805a80da578d8fb3724ecc9b861a3fb457fb47678c0809eb9e24da241900903a71ff446ec4baf09305b03ca1ea1034686f533813921d7137848e962e32563c9f80cf6f564f12999b25c4826699f06fba88234b1d51b77d5583af18868ff1c78a502b414c49319461749b91398832863821381fbcb62b589fd665b78e81297d34df7b44117464dcefc863f850ab12ab338c359ec9383e4957cdbb810e7d4c73c173c23f65ddd8bbd31305d868a496a63aea62014fe21c8ed2c80e8ba56f606a6412a9a34a98c3c0219cf054755b44515d805dbe4879c0347bad7c7cbbc08380aa297623cad5029634b025141b58169c8865c206cf7232c260cf88aa91855a581b750a1ac168fe960e5ca283a1245e0b31abdaa58031b3bd51ac295850772dc0b819cbb07c66e734597f6387ced79392594723cf39c67763e3a3c2c6a009853e510bbf91c4f4b5828a91328073683120919eca166095c7bb4bba5f13b43bc8b7a991ef855399c6019e5a7a83057982e43b099016537760956304479a4a73b57bb76153f58f51d47dc7706542b64e73e00513cd838bbc9800d6b90ca304b06a31bc493035cb1d116ae17c164f8c758f5c7be580997d155b2494e3701137ac69119e47a2f145eba891839f0baa084af96d916a9a64752d4b4586c0626836f549317e4b6bdcce1196a09761928a968a4b74b611960ea2eb34bb18a964c18fb10a15319fb9468134395fef8a40a1b144fc31aa536a473ec9f809c8fa1f74f90262fbeb0b1d980be7a2970563cac92565d6af60be699ae8e692c311692d8852c0fe0426624cd9a0a1a18961a1be613b4a9a03d275e4248809f0226179410fd190c858a41abf5446b2cc3fc1815e08149d5c81c924664e2455fabc46f108259073520446b98b697c36da1602ec8135bd053cc034ee5db4b7b58ae8b59256d93a80b69c6911b14fbb68527da6a3a29a8d1c61f4d7c21f0dab9a5b266c875610437365e2a2a4e38a2e1a8835cf7237fe1483ee01ead6aaf2fb072f9200514a9709d6b4ca51019e782aa590552fec8b5ebe40a0c99ba17c57a7a460abf5ac9a4869f11c7c1bfe8b8eb0b7618895acc88b91ce273df7353b3d083cd72501d0163abab80120a317e870c0a1751600162d633a4a4373fc988ced65b6501844da162c6a4132d8e690246898e3d2a6915ecb013661fbd763a624c8c7c1672f88347d6d28ff622427b669332aa34dc590b3244029912694721551727cc36725861959ddac230b5781ce2f9b5147bbd3b70a499c0bb34c955a1245e7cb16287f357f464aa11e44eb433b6745aad46551e90935be4c5b2ed211e818480e4b32c2af84c61aaa6c01a7e16a08761d80b221772d234c68c97a3355637e3535ffec5bad36b5214a22bed5331b5ccc55e48c4a2a76d0f68759442ca54075ae0accab8f3c9746b129a152343993bc7db74a7e027a523bad3b7cae347328d64180ad396897007a098a590d98a8fc5816aa5ba805035cbc24c685441d5c754efd879c327b56a7194b5391696f0167c0677c48bc8d3701447e052829b3de6c840ce0b7b8d95b5f46695b85037232a7356c296e854842be0a48a758d34fc0d7cc2808d7908667c77a2630ae8a52c06da9215653cf41799eeb5c517f65f6d26152a656d03a685109a955811bf05b6199be9ae97fa62ee2ac65a6354200856c6538646d47f9f974289f0ad6978cb5dea000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: bada76528c6a07c80d5f8363c32338250d6ea541cf8d1177bfecbc469dfb47c28ffc75e102b25b880bdf0c8e9977f41592b24b1ccabc2e2de5f38283aa30ac51fe3b4960ab8810ae05a823b52e76f267358a56124a54fe3f8cff35dc8ef24895c83e90773733dbbbda50df879fec084be456a1250980f4ef12c78ff2b59231a944d4c4449956c635d443c92845bc747854ec6e92b0d9339684326c5adc6a07737b27a6fe207639046dbc623f531217a7d6fee0f5c8d6397d05dadcf53e43823daa7a0afceb87b718dfb46e4818f11d2c935c628ff152a0361fde8458e76475682541919b517ddcaf0eddb918c16539a8a04f81ff07827a47b5d72c92b566f4d7afd4db362c855e75dff1c0bd83bb6543332218d33e8f9e6fd38d021f961ac98525371183dbcbbd4875861d5d9cc65da0550279b8055b4bd099109e193a32b862d14faaf1534e29a4d9963e2c71eeee21b0fdf66bcca905c691cad611e4b55329a9bf8aeb55a1445fa2f6ed7782a6b3450f6aa7aaad82dd5a552f5f3d333c49f1677fb34cedcf4243cae779143fa555690402302bc47bc8d386ef9969426cb5909dc7d180a02374614b2bb46fc61988984bcb91a307c40848f7c8fb058ef2712c2bb5aa42c1027cc85f22e3ea91e59ab33cd9bdcd80de2c8ba1879ffe9a79a17948c0a27e4dea267609e96e5c84195d5b0c41178f35266df867a7d32149dedf2beee8a3f7dfa9fd91865e2a1b9e738378304884979f667055f755444c73ee53c36c21c2c9638ec9c0eb4f761a9658a494cf2213b70e9c19e5ae51a3750a34f3c78487a7736623e57e320e63162fb6f41cbe19af57aac75506d59350488368b443269b98300652412bfcf66a37ee5911d9ab94e402abc78515e5e0abe59ce7396ee77c7dfd28382494f96defd6c2d00ddc19d40f256e8656c7eee808e01dda0e04d1e13f3bcb943339934fe9ef9dc3b4a6b2d89ef7f42f9ac7a9dd446715ea4b25d14d37894ec6ed5fb8ea97a101e2a6e324989dacfc10d0634198aa65d65cd7f4e8d60021f288124a4a33bf9cf4a8e3a44c8fd44f6ff7d4fd69c645b37c5860c1f86d87c16e05e16e3e8fc84d4948f19cc8e8cce3012d94b6ee94bae5ee701d585a9af4b48c70055988235861279bbfc1663299dd6ed22a61d2542bac802ea9b0857b5afabf44008a8fd2a46d5b5f6d27be8ae9b13e4522c609f8244bf9b3049a8b49ae60445db69d72be3fa1b5d7756ba8a1fede16dc223cbe27e2d36dcf275e3e42be48a7a4a9674b71a4483d6c6b8d2dab1eb7851e089fb94fd3b18a37243828fc1f40658024200b1284c82d9e5dbbff6974d68db1c4e95532441a4deab8c2904cd5bf210dc3ba1e35073ddeb346976904062ae052c6f5edd46bcbbbae8e4197fbf8a638576618d77aa80c8d83c2365426fedbcb2c5781e08138d700ee544d07267d392b081a281408e5dfdc303dc7940c61e64aec119e0a3b1a78f7c703896d2f1d53ce7fd13245ef67d57963cb4c9231aad8464d2ca36bfa42f282234461b4023a842220c838b1fe7157223d254e0405b81536cc06a3a9f8a6f175054d31b67223fb59ca0df92c84473291e87c9b74bc5207a7fdc966dfc36e503cde19ffe7b284430a865334968c2ad1c1fbdb2951d44d18c898a26ae480f31d55b97190481d48f395e34b4571e2fa5bf83ad9b16d185f34a5b55d65ed5679775f39e63085e67217849b98b54d251b128e5c232fb3fc355a87caa3ba457cb49ee1f0ba692c875079d1cea754f6ca91d28bba83392b420135423420cb680dbeb047c45f4f7bf998c9084900448e8bcfcfcfc87a81d2b586ed4c38931175442595ffb4088ae657e66636c07fb47bf2abd0e32b3d979b1f32c2b3516b9831a57136e4783dfc081dcf8e3666544f2e3f9af6d85b2588811f3335c1260092af225572ac7722ec3a3c00f987b4ded3d1a9d278cc6151ba936fa02d66ff76ea12913db49830283890ce5b87ecb6270d71418d9c213206db87b116eb58eab2530a1bb97ff7d57546d83b32e4b351e3da6c619670974722b6d006e3c288b3a6f684b1db98938bc864433506e67de883749a3c052165720a833dbc412556ea35c437a582588d94eab42f5f7cf9f841f839c7cad07017634e70940453213638d9efed5503def0076eac37c82ecb46b194bd22c6e7db7bff4d5d75e188518d6479fcd34dda34eb70252f +shared_secret: fa3ccb03eda9e8299be919496cb2581d3127472eb062a8f2447241f6b4a66d02 + +# Rho leads to matrix containing zeroes +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = 26c5792a30b2ce4856623898d79ba97c3076e54100eb7029df333b5190cb28a8207a557cf78cb88c11b241da951ea96dbeccc90029845c7c8071f584095923266964179910a64c835045922fd520535b35869a147616970424835e913ad8382faae3b756aa51d65306c6b6760cc3aaeb7958b531293e6a6daf0382db834fc7e16811643692ba162db4266e3b2af1dc9227aa7edb2a545b8785e425bbd982cbec02514924844da57e3740881ae68d9c104afc33a8c27782c658bbbff5ab1da73ae2ba267326ad3ad61183e792075033b448a36ab3bd8e8429f9cabd5e3a57f45464487871a02bca6752311d607701b89aac021649f37ccac9a455017495129a45a6b24f07726c0b633c7a333a2c589967c85e7376929205d6291a74335a89381a4b851bf758cfc069be95847da5d6258123bdbae08fe0b39d55c11044d1c8a6d70421333ebd91bec10b73532a6c00e090027b3480e796e69209bfea7f3945350747af2534234fb0801ce11c73b934391b0f7c6574d8c8c8086151f8817bb2082724c733d44837fc7c24355c463bdc0365b8a0a2b15f63ab15f42c6635a40c6d8a502d5000a6b7158a16cbca964363a4c7f9da5d51c2289d7342d885bcfca1123c324e36273fce5c4be83c343e84914ac382fff92869dc11fe80824de3b745e68f55bbc979a0759a35cd91a75a7c649bbf7999d8726134d75691dc7d25b23cb5d16f0d505e6e145f84a4644536827ff982b5b9326324132edb30e02a611aecb749685069baade2545d758aba6c5220bb244e08d01235faa1fd5a0cc4612139466d6ab26093a22c428252bf8491a6794728ecaf421286c2ac5f4117b16d145977c4232f8564fcc5996de99b71f896b5d828105c593fa43ebaa2cd74712d769814d490aa7e2140f942b6e86b734c32bc79187f6275b9da3bc621ab152c8a6148a9327a549727ba02a9a1465b3b9a32d7cf6984c610691061e9c8a55badc65503158bb637ca4c55775649caac535c345a443b27e88e3b0c435dc33aebd5087635be061a37f3a0715c37b0b351681614bae36460c5a34eb7e763af22955167b85542519700511c843e56476f0a977a5a720aef292e0ff94d726a958a63cca8665fc9a943d235a569da3e2a4b5964d457df1243771504fd26527b94aba0e8b547207861b8cfb79bc6abe3054184922d477840a4c221b420af50608a265eb508a651dacdbad403484b59ef9a819466c66c458d172622609065a424024811b26b61b74b8c0adb179d2dbb7cf4e336677132052b1b7a6c6eadf63a15b484a3240c7bb1c9e1160dd6832c727044c012936ea43eee4ba721c489d6b8a6fcc2bcd3c3ac8121455c845978364148bbc9498542ac093a4d1b7a6a666d0276adb218315afb4683d6956459833915862e18056f7c02f9a492388a1fc65c5211e7742cc656bf2a82cc727fe3516288986da5e4b74ed8abda8084aa90285a86a275f8a18fa99934e73f88f42aa6ea3428b6a9d936af53438e51423a9222b81ce7b27d7b015ff06ef98ac62843703b9828f4a0c71a603b591888df2339c8c5b8922a2ba8ea1a85a6163d5205824056176b2cb150bb544667635788338919c21578faf64ca0c980e5a554f1935410b36b5f29b110121c35424cf52cbceb53134f7569594b0677db53f97b570f842a1d27c3e0971343baa872bb2453799b1e5b433a2361d2f1931c185f13cbc0a0e1ab1fb310f4664d8a49289d15433742aa439483d8789a25c2ae77a3689a17807fd544ff4c7d022c42ec9049e683472b490bc7dc8c9766983e32a2620a611da65583479fdb7670d329c33d51af50dc3234e63bfc1306913c66c587b9e3a23143824e84227505b0b34a3399746554bc6037f87b84b0a7a41da3b366578fd6d79cc9a03d34a227e8095b9bca636ae01988dc2dd67722a5db934c7009f812a985598e7e309cd7015d24a5b36cab65e8f91c233474e1473fef76828f2b245231605d079b308a732553600b549314784690d5ab5830c36d824b68881d6a440696d3938f328bd755cb833a8af037a4bf8241c5d9aba41540a015aa0b110410a05e104881f5e41471e70029a9c42ed2aa4e3a5012a7aca6db06b7a847ae624ff7e941ee18bcfce68c58a8c47db56bcbf60701858e26943cffa53661c180a3ba0bfb25524bd6000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: ef250a35ec80dbfe58ffbc7f7f0a97ee1e77dbbb601ef38a8599fe1c50621a7fafb3c2f42b8dc17058d2c5cbf965d1dc6e45fe0f033b1e42326d024ec27eddd00f4af75ae389b6e2b95076862e11c63136698eaae4a9735ddad9613af997976cfae920dc0a08b9bdbcfe7fb168d5712c7d372fa29a656adeefb3cdf8775cbf38ae0134bc024dcbff32ff2575911a98bc19e7ba3b8fa7e5a1df85bbb4bda21427195206a07a1f8ca8b2550fbb9724df204be3cd5f3231da0211d79900cea59a6e394915d208eadba3feb264964e269bbcae99bf7d8caeefc00976687ed7ba1a693008aca00f0e9641293f75fff8e7169e6e149e6695003c544b946898f466a0cfe7a2ec2b531e771094787c75c05712b6b27e55f1fd3ee3bf4230c05059d83eaaa2ddbd4e9fbdc8fd4e694f17a5a634daaae4c125e1373e8103a1feb119a5a6bbbe7d722427182e867e6bf051653d28ba59f68d52271a29bd109b4b55bef30940bdffe931cca17e2add03a2e808c4c2b09cc4978cd89c078abbd1b3a0919421c0e86f1294f07f5c9ae8c6f66369702aece6f1a368dac179a64aac92d445c9a606103b48e2778237178e407de8d576e5931d123caba6f99bbe158ad4878c5dc78bce1c519f5690b12b5421607d5819d36c5bded5a23c46578e564b1c341e47953b80db58830ccbf40edfebd6bd92b99cda2c62c0d3117f5e84f9f7b8dd6871d045c4cb287e689e865a9d1d1f0b0feeab1ff86adcd1952261d94a994869d33cd083e28f158b918f22f0b8a1fc4cc79d800c38ed0d9f746c3b506e6ccd58224886083cee785b1b1ab19eba46e706e8e89abfa36ded66bb7a180250202dea8366b4695434c81f02e0ab5c4cd40451cf5242fe95af132191a89d653550cb76505cf5792efa6c8f074801ee54ae10a36d75160891fc2a670f1f7f1cd628645980376999d86aec88d3ab55a06d987ee62ab7feffee85f8dd7bb925e3a60c8b4c63dea64777e3dfd19eff0c42371820aa81e451b50e6183e762798270a20e94f11efa43ae958f283e05d20faea378d9e94f57c32c47755c400c4a6f17a94e28ccc0455726e309d1b65d920b185ec129088071f557cbaa3372c9bc56d16ad33fb592d8af9076920ede91e6ce659f76b6f8dee15b1ca5a5ef9e5b20e7a136db652c095c883a5cc638a79fe5dea351a485ca8ac83373dea459073528d138da4eb895cd201d88b8c1dafd0d344a430495632e82044b4bfa73237857b5bb2e260a6bb2c7583fb49826ec08cbdf60128677ff1f0c44aa55901b5b9c4eaa6defabd1f6633ecab01cc0a79229ebc22c7451d81846844d229fa74c0f9da3bbd8135630f2311341929c146e7221af95c8f569858f113f32773a8d3cd10f71bb962364279a023518daf7e9a53778c228dcbdab239917a4f963dd221b00a940dc1a1aab798820aba5005b7d80cc84c18e91b6087c7c966015cbb22c30ba409e5fd93d4bd843b35572a8a629e9e2713659ce0b893f1c995f1e61d502b50a62f166f2f3bbefbb534ac139580fd56acfbd232dc507065830377cfecd3bbb377b72450fb615c7971acf1548a2abc79fce191d1be1acc15a8102b50923a8e596537eafdae404d546a90e444e47e04aa6a7d529ce6c74710ea4f8140b3bf7fd8a468aa8b96445b413c9bb19d057bde4ceb98a537f736c9deebcdedfc58c9d5ebdbcdd975b762a20d6264016cfb8bcb57ffc4bad83a5b997ba6263ff34270c10eaf932f85f5cf10cc2ddeb3344ba5dd654eebd67008c3161e4c9f79680c375b2e8b031bbd1293e22323abea7bb04f9eae988c8a9a9d9e7f27cb1f87eeeb5151566e8d22db6389119d33cfae07f1bbaf14a48f0c082e325f2e8d397bcf3a676666e7c2edc85727da4729c1d15b4b820853ef49434372ec50c8d207ff252cefe875f5971a6b102b661d150a782e55019d9761728b752e208bd740fd148e9ed06d872ebfde0489315c46a62ebc6c0a5ff5cd57eadec362a2d8cf87492f557abce463e100e6df8981573e54358c3996209b8758dffea3847eccb6aeeb5c3c5471167e1aeaf6f9a660cd281ed06ff4fa11cc88e04b162e72222c4fac1081a9f991be6c4ca4b1ae02de3b514692b8c144ddf40720c1e1394b38c879c382861bb2285a28975c26a6c1fb4e542794a8e654faf918f79ebba577c5cedf72431ba7d18cdb0da6e90edc2cdb85175fffe80dbe7 +shared_secret: cc0c70663e64be7264620b5682f2506f2084b66faf8e8d3916c8b77fafa924dd + +# Rho leads to matrix containing zeroes +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = 2fb1b863185bc7a3bd95b15f041c8e3aab5b08d6c32cac121cf003161c05c64b1d90074090605731b5c6c465675ad846cd99cf3fa08f7aa45448fb2fc802529bd69e95d1a21e98242c66266290bfbbb2ba58fb320d660e297ac416b2b0d1c5968b53a95172450598ba30b96472d14522513caf0332c8eb8f846bba02870ac989594f9141d56813a68aa5cc43666202038c29621eb658911027663aa0155262cd86798079a257621ab73a8489fc531f41c1483582a1c92cbc6b329fd09913b1a6c5fa0b3f7116a9866290d4b321cb639f544b0db81a6177212b798f911b0786849b17259232ea74a9963a85d90aa8636a9f4746f7b8ce423a374039907591a54a503f9298b486e907f2d93d1a2868a1d47608a6aad83c1ce7d216dc0283ad56426d7b5cdfba794ffbc3654235501c960b8c9613eb6126d1929c55c1e7cb8cffb180e0d942e199b4bd51721465ba8de1cabb081f1f55218a86cbf6b7ae038421b5278f2d8086041480ea9898880a84ad25ba631b83e953598bc76ec9b36b92a76359fa1e44209139272fb0c9c5c5f0af6a0cac4d4529d18b8070e76b8b173085c12d84bb2bc4eab464a161f5ea69e0318d3719249d112cabf827ef4a4a7c813d384b62c02c608c0b49dfdbb6f34c4ca8db3dd19142e5c53e3d17010f931d0f9c8657551deeb53516149b459238657295cb5c66dd6466f9c1ab7b711ad985a93a46b94f2aa2030405f0b013e12bbd380a6ed98840c1f484ed5c5ef9401880f646f424c052f20278139fecc3a3dfeb7c3cf99979f8b8c6c77eb4d20d9deabcb0648fd07bce67738800a2415f3722595c4267f7a743f5562b1a26ac168602a84b6864bfdc770ebd792543455055a6055117cdbbb6cbec340b69493c7f0648ece7119b8bcadc3282e5a8b0a21b1898fb20781c298ccb750eab8bc9abb3330276639bafc2d9c00315c690593c67896b83d63356e81cd4624c4f39591cac40ac49425af7a5058a651eb4800094b0a32778ebc025910b0e69450cd0657c296c986fc9559b1c3d0a605754b266f0f28a8d5470155906331693e425896a7644d6f340b0ecb4cd2268b536b54a38431e69852d7c443ef97db319879d1b7147411db40a0d7ce7cd358463d8c5be972ba5add85b4f6a47b6e59b58312dc0500457a1a578c93ca9356354834599c41a2853c53d6739be379b9c669e7ff7460a29a2e5126e90902b22a29446b3275dec3d891852c3d3175d8bb3526466a662a163095b8c3587fac94dfb78cf1f3968ba9888f790cd8d7338b2c0b55c12a91a32381fb2427227aa66935cb0a07575c726ba16c92275370fb849aa548967a1077cd2801b858111761230544184883ce385541acb0033f0a5bfbc6779506f7f0063fd5b3136232302b46fbef8c94cf384fe50a97d24a67608bab6299d1de88189b612a43b897c612e9f44a0451588ce9c319b9107fa3c1188986869fa0fa43c248c91c4ba5ca3bbe31c3fe4a5c3147914234aca96b0a58c52288b174aaa5c9b156bff3ace0604aab391411204714ed067e03b38b6654dff57354a311653c40e70017df6b3bb2813a19bd2b128a5001a38a7698386e7f5ba1eac57e183034133cc83a152bbf0b321dc5a4cab8cad524eec35783e93956cd59e1755773f321ae6427b53c33cc91c920448bd7734b57672c9744164b22c9bd0c6258dcbc5fe22b947f6bce1b156967b65b1910c0c57b3076148a627a74f5a42342cca8d757cbf227adba4cb954a562ecc9557c45b76e83a88f9472ba8a4c6a0b670952f173c85e0d033ed74a48445670830c493c8c89b321b26a1c87db34707e5a21bc7644bfac385690fbbb63db72b2de6f684c68b494a461d62f19d0580bca25a878e5077e8617f69c446da1ca1ca81adbc8a6a4055b0bbd2138be99617c9463c873b7a0a8d13f8c228663730171c19462fdf02a164ccce14e53c8cf3baac96af911b328eea6e89d91bfdac72fbb1846e6b071bf7929d486363bb66cdc24e5fc93965e3ccc6f5ac2692087eeb884ed6206c924c0b1952da48a84d919805a7bbbdfc578dfc08020b0ef5e4a49d013a66ab449ed91c3f8390b2f2a7461123ee3b6cbf965e71b824c808ce142995fbfb6f9b0213b0b83c330281a26cac93f94f32c30bc22a13ea8337497b408a0ba3aabbb1c7c48225cc000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: b9cc6d4403baa088e562753c1a21c66f1e9ec19efde0365ee8e696bcf2d1e68ff6acde8394205be0269f2cb9bdb974660c8041dea23912b0a154dbd31792e2495b4cfdd1c772b12398b279ae755af3c525c700620e8a30d9bd54a062d8f64b029dfeea3d13ef53f820b71c911eada200b3f90d019a6430d382c187228cd85dd229ec0dc125b0643709486535907d69d11ecfa15b9be98674e3e49c25510b889052d0f53dc225def026fd7ea783093f16463ae4b4f0e1ddac026cd9e00db7b168fe0b9e3a87db01185ff52443ee1cd51a89ffdee88f476de7641b31e44446d8db73991a6b491017ccf55bcef6d6d2b6be1f69f789c545fe233e09da0d5137727b4e7b437c57a12dcfd26fdbe8ded090630ad6be805aba4c4230daedc645616cce15662491117feab609c89d61e0d7bdca2660d7f36dac259e4a100efc4130870f0c2bcf64137b43b7695a1a8790b365aa3ced0738c9e1d170860dfd3229145818ce8cc786e60b1d3b159fdb9dd8af4a2c8002b24c30be007233eb5fffce3ece5f8fef18286851f89b0d741cc2bcb4f8099e5d7c31034d7a3634eb7503b93fc9135c2774127ea1d30261037bb18061fa97fd44adb8fe69ba85e520f3930ce991d74ab849d0af667b6984b398e6b392648b0272045889df3f1f47a17361ef2afa15fc15acab23d4541519f0a8de6d9a82dc3daebcb242706dba34408e4fef0fb03ac7be98b331c9969e738e2e4b4ede9ce70f59ebebd3b9afa9224623aed04721688f8332b1a214c2c8f39f76ba631591f9fb162d867cca0c65041ab7d4ad9355210084813d8beec36783a2f0456074e35d43014d44d8254970f8e279b5e2d7762e7a51937f32b50eb140ad9ceb23bd8101e0e9edc34c579249bff46251139eb54ce0e533ea720c4bf3ff7a73793d83d94c4e2fb17745c18df2ef1109ab6561dc91669600d046dd1e9d6ee68b6fa5b16fb2bff887f4aff76e5bfa6f2352da18312080b62f09322211b54e7ac1a382ab2de1b6e2b2bc0bf15ed700415ef319405fc5946bbece863dcb0728ffbbebba11ca578293f0a1886f53460685e778abe01bf1df7d8babe44bd48b0cc6f69e1d4389e77049694221008b73a8da2761ed862d0127d8ba8f6e4f7d3057c3e32059ab1bb762038ffca50fcf2693d78127b2a65c335905e1fd6deaa5bbd14b350b8afe18c00cc0d4a4271401fe78cda6b89c6381e566c69bc5922bb6a43c10968d754703b5602c93e6f21b1b7432170ea5e62eb4e0c0abe6f6a3317b19e19b5763f8bfbf74f4a910e5d271062fa79fa9682baa5fd0b9db3a5f2a069fdd10aade60a618dffe2ffb2a89bab137cfb73e92a774f57606a30080cb1bdcba5dc6536e70b745161017639187a7a495e93fdc48bc24bc565f603484127ccf13f74130b8466973548b1157709c9d6ddf672efbee69a4223f164f8309cee7d9660a323f834bead26a7cf668fc3e033b68c7abf3ed0e4109ec9e263efd07b3b1bb0ab26899067971158d0cd9ff7f91eedea7c4b7e88728a1177087653bd6517d11c490d9dffefa52d4f09284921edc23b5230c109d3697c881121db8b85e1fb7c2b9cd2fb48db52f18a51374b7e4a6220e8a50d82809c6666b5ae854c2848bf5881cf834ee44171d26b0c0296477b4299b38af261f9ca6620b57fcf276ec790e47b778cadf00fede43d03e70d6518cfbd6581fcf84e81aeb3bba3bc7ab26e562b65e1599d4e8ee7a23992c5039d612855c90dba4c90cd3231d01ed150b8226a95cb87867a2358f11890914a2016c78ffbd31e7ddfb1dd97f2e0e01e3010d6633952d7c16c1755594868702215cd917b315a54f35f92f52bad10b3a7e54df657dd7e168eb8119b28507cac71867180e0914d39b8441b3c5c20ac22ffcb0ca2b201e4b350debd73a0c08b37fcd13a3957d96476d31d26153e7b4bfbb826f7ddd5b2a7d29183a579f05fb36d459026963ed9a694fbbd9b3ac3c5e2be41336b48ff5af60d9c6030dc13981585426d3a0a946b5008ff5cb3fbaae3bc491f536dd80e747f5df92270ba40502409d9b24307d775f4ef7c9c06dca69cb5dfb4d0fb890a816a7b50bebd1ae9e55ced79dc36bcfe04ab83fb2f94e10910f0086e0b5bcac717c5bc73f5e03f09ec94c3bfe05d732fcfe0d6baef66064cdb02b49eb5d938d2b9bb077b5426905865b170590f8ae3a50f823c9f56fd3b390fea9 +shared_secret: 5772134d07e1befd82268588f722bcbc7c131d7bac8921fd55d7bf5201074bf3 + +# Rho leads to non invertable matrix +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 86d0a6739947e5cb25b2b10d9573429894601c1891ba3c78f2814e1273c8d2098f19172853b3b590487397692ecd3b6e37f58875b60167fc208e6b813e0b26e1b42b7af60a64aabfc156346c78a225738983a03253d679437504740b872128949d971c619031b51090f54abf0ba2cec479a671d43ddb33c430c8056fa37768f8551ffac4682cbc4755267f7736c3c97002356edd676e0f26c2c0f80bbb04c26a09bc337bcdeb68bf25d183dacc4d17cc68cb8b967b31692b2b6a035c69460bb202937d7ca92cd87651bd7804a1d24826c3be2232310db3cb08ba900ebc4f5bc4052dea72e272596f6373b97aab10e8b9ef713550d9cfd3610432b6710130ab394830bdd4129e0232263bcddccb1dcf9a4f023865f24bad1080c207e02af3b56f2eb1356ae45466a61905807a5156958782b02ee86f69dc3ae5e2b23b8a01e6e30471a7c85eb18216d751645a893ea169f661230d1887e77256a4944004b8415a3bb554e436ed2004f30a19c6099a573ba752f2527e59b00ff8943cc65caf4ac07721c702e05d5ab2970ae55ba7f8a1335aafd7542630f933dc7420cd054bbae009645231a1362c74252e649844f413ac83e544578903c310af5660cbf3e4c4e1b4917eb2a0a8bac4be184341629d0c9b3b1cf38b936828abc520a3c13333c0c2c1c35185028bf1f791fc24a1ba12c49b252ce82c16085623984368269b6dce933410f5b6bf61c13388bfdd87c0b547690d3cb2910b05707865f9ac3c1872a7cde62d2ca43fc391af8328bb5c853c1f1cc06c165394874405734746874a84b2261b5032bf586fe9939a0ccc980724759582669f646406097270e2cc1371b0b6d81e575b5170760004f593a0c377c59b1705bba52eac083cc597a2d03510e8a0bee8c5e39546f193cd8e4083a3683602cb1ddae257b1c1bfc409942d2abac0586e63f3721b4bb921e135759b1efff0306105a71275388ad69c75c5056fdb443e3c708a8a107ba0cae4955e2ae7a310d97a6063690e5c8ba84891e0a9c62eb983578ac0c6a56b710a2d63305d931293ed42887284904c3cc4e1418a9c77b8158916bd028f1272518c0917b7f4b457fb09a31b63bcc9278b529cc98c4351436e02e30b639562c14131f4e7903136157269235508a7aba15519f911fe061d9bdb7b63dc91539428bf1c72861305deb39ee8e226cff39e448a9cd7e50589f85430655d0d027405d991cf1c2aefa28d83d5c7ec8994cdf39ed49b5cef917c55f0136a1a9d8cb38715cc0785d5cf5f9c5db452798348c70c52b5fd89a7fab54b75d22c6958af84bacb21621694d492fb90b71c787e9fac0ac9e3c710739d67598b8dd6428bc2ae26218eedcc4d9015363f8acd9ff043d0f7105bc7c75eb9c376da757f1b9aa2378da73a7a6e4571eda670b8287f4a333412a9c94ca39bba9759bca1c2e4649bae51b1cc10913e0cafc8575629ac866a729674772a16660c1aa53a77f002e4136455da31ec28121a7577150cb3fa0ca2c0d8b6985543d7f90eabf2bf4b85a3efeac5d0b28f70e93dd08073a5529b41ba4e2c736fe3e0192794b00fba1d429498560b2eddb788ac274c06f43ba9da341fc52cb2f5755ce3c1af65027c143f106b587a1b6f18201d9c3b0f19e4b005076834d7830911c449aa913dc6a3ef31c208d014b41ca6ef1b12a796be561b006630c14c03504f87c600ddc20c6477b5b02c5bd337f56a9423f516812a594fd4b2e794442bc8057899aae012c320b64eccda7681274adb72101ec41f99d63648763158323c753b0acec97d96cac9dd35924ba1c0555b09a3ea95d513b138a444bee8608c7ac1e64240d15028cae552855c47beb0c9f6f10cb4a3b9f68c3552a301b6a8cfb9487c241964c4e167e2c1b158a6b1a7c303c0e38fa7e0c53b376b5ee5222cb574d72734e7e90b531aa4ec656160f5a23f6b3bb2e3c72a453f73ac96ebdb128dbb8442b5c7ea842fba805799c811afebaa4bda82b559c624322aabf5a3910a152d5b8402f33ca0176fa5600b8d358d6f5956fe6171cb841ccde5bc76a27550878b5e065364139cb891065467c630d8a8ec6a002626c25c8aa00bba4be3c2305f0b1b18e79dd1a8475d2001324c898c0a43075a7c06697c2ec6baa4d78258e60297081869503b7084aa73756b74776af98b000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: a64e4169d49c70374a2c237a33ac42503c6ddc7239c53aed99ed033992435ad443153362ad3c9cbdb576fea6b87ae15bac3f70c457f5e84bd387f358dde9c5a904db99386d2f5cfdb29454c978a89083c9095b2a2ea1fbe220ed78cf34747528e7559c6b6f6eb168e878046afb0526bef2f966fc80a863ed6e138d6ef2272ff9dd49201d746f82db8122247a3921a058fa62a03f259284177d518538972fb8e3d83c4644c8ca3377801c719f55277894e1d2170719782c6b136b7612eace3f903cd5c5a98f001b2c8e351b0a3f24d48df4b3f639b749c3771d38dfb69c586c44477195853255fd8d36cdcb867c8d4033e5d48a9bae96ce2d839311a5620af3dc42d35126f222b9552e1c36ab21c461cbc7ecfc6eecab244cad16ed8b48cc056ae98b4a0b93c1db5b5976a40a4b5bf58ab01c2a32e045f3db5c5ac00d3d04718c796895a2690b126120222a786520de726b43fa40eaed49f7e86dbae56c7c1d782254277f438db81e56236535b36a1c02c54dfb3974d1ac1f6c814e2fb890fb3c1364d1544e87aef84e3ee3e47e6ee32160393f9610c5ab33ab9e1b49aee4bc8c91bdcf79fd831fb651dd80bd0cd9cc439c811b736337b5ac64d61e6eb1abda5dc67e694f2350a92422faeb7774755fb8bafd5c091b634d229ebae35e3bf93c6f1d79f54c7cb6cb249a589a6dad72a4551b32e1463dce1f50e636b60b70648b81ea9febcf79a3fc8ff35ccafedb3bfd48fccef6e6fa5bfcb44a2fda45ce7df150b9639a9615a936ba1c2fe0c6f2f660cc820b414da22a3dbf9e8139ab3a0c5c0946dbba66a02e2c5febc88d46e6f79d0e669e60fc8f6df1d346aa9caf90c16505886b48a0c6fb41883c93b6e8d307b97f1ae01e5e4af5b9be506dc4a8bea249f50141accce764e85e9121a7cd087b26f5d248113ac7b97517d575bb505fe6048df915fb5e0cf304d636d4767042c609ac823d9d2812b9cdf4207bfb3bd477ec047c1987162e250d2bb57791d1b84b4341bf55f0f93afd75abbc90cbb23e47dde24583d1acb6720e1722231f9b103b0a7d454182b6eec57eb1e4a64fe7c92133302c22d941a0b17e86adc350b47650cc7a1a953b78fb1a80aa44735b3623d2da25ed5691065a467ef15a3dda917d80c1d47f2542a0afc383e75b0e955ca530d61df1aac8da5f1ed8297a6b5fcf950f6cff8521a7096ec2391669742087139cb5665cdf525c7c8f157af19779156beb2fd39c34ac614d2b0a91d87b050f64aeaff74bd894d3a68c1a52da47a42ba04d06debc14d9d82e9bd94aeede4a35b6bee9732bae0f76e9d07f742a430441b9d8af5edfc290a6f30050841c5921084d7df1ecbf8b70637090cfa784d5214839977eba9ca94f3432f47bbc4d60c465edfc7a931e7f569da5e6b4dda05913f7fb67263cd939b15d7a8f7c0d15b2c9c50dfee128ab50821b3fb9b724b643a9464b0ca38d51c751d8d4fe5e378339c9f68d51a245fc0ae76ba14d9539a90e3174199f503231d7bbed22f977b37a34596cc8a3207b852d6b09e254d7aea868b29c6506881644f493eb41875d6c51218b7d79f7f1202c0ae747694403da054128aaab773e092c04a2c34f4a73fba19d99df3a81e4e60c1635f0b34b0a5fd7d0e5a5a236033fea303e819da88131223fee2064e5981d596d30ccd7b744e183bbbb58bbc7c84d4ca59cbe1f52e2739fac45fcd0a706a1123584167946169c3494ac911a02deeea2b487f5d57c4429210cf812f90eacadb7d51ac65a6dc49f9e51ac3b4650bda7966eec378df60e5c98723bcf7cd63d65a93569be54d17a54df9502f9b6b9f6deb46acc37da4451883f7ca49d4075d045296012b6f2584c972c087bf948fe7d9f0fb561dfd91c3e64f8190ba77202331e5988aa9d5df9499eee4119fadbe2b5530233d6873bac60c5da33f4f0de0262eea35b2041c3864731c3a3fcd9aadadd6eadfa55249dbb5a8b63d4c6f69ecfaa9dcdd293b7e85a3062b53e7350141ff7f6d622a1f4978ffbe22bad117aeaa425568cea246d0da900568c70a412fcca2fecd427d14d59ed0867b6905adff8cb33bbf33743378d4a2d0ccbf79e721d22d4c1a9921e296640639a5dcecd93a1ef94a06b25af0628a32647127c10c504f77ea6ecd31c2a035e8baf3fbb1434c59d28d25221c6d71cd063e3d6000130ba62163566e2f8ace8e2031a530787c4c9b25856 +shared_secret: bb7c4b5d4fe3d2e310f176eda060f614672dd307e94766a8043b914e9f3e5c25 + +# Rho leads to non invertable matrix +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 8eb82cca6371fcf0392e359ee7d96badf47a3a46aca01aa9ee8816ed4939a8da1c7a6cc0c78a2c74dcc482aa9b0f27234d1a418b994fcdd4864ec208e423b97c98ad541878794770730c4e1662ac60a1140a6aa9fe425fcf9098cf9592725712fd995a952a73b0f8c4c312a1ba498d3bd9c742cb7f011216bc816e6cb13324c17a060361b01551692a7456a46c76c994ed067d102947f674b918e5c924c86a5e6172b0f1ad8e7336409cbe7b16afbc48aadfc4a77bc22ea467a2cdc9350313af150a9eea3775a78b45d743afbb33bf2ae2bebb19b800eb18e59a74d79197d8e36f74790645e77d2ec46a5df081bff73ecd31c0cbab6275710206fab518230aa749cd4f5099a304017e937a264010620b80f1d0c7244480736ccc623c8a2d7938de85411d7acb1ea00cc8298d85a5443ee058505b5aa3d88ffb3900567a31a9b25a3082035f5c037e571aa832672a74961e51290cfb0b55843229d11213d18feec5a35ff2160480887ff03c16c5a35e367fb6f5561ea266e973928e3b1304d13b3924be68855cebdc8bd0c3511503ab8e50c828b04ef2934c41207c725c8f1d589956e259a9f3120d6392851469b7fa49b8452389eb2de3497586ab043448c14a13310ab5b352a740bd486e31f0655dd472dc3b3208d06a79cb0dceca7c2efc8cee019c023232342810e3448b5d019859da0ee25526b81422f884438547386c3c38dd707e9ae18b27838556d2398b827dcbac8344c7cea904640f9608c82b4b86d27b3f4ca4882c6da694bc78bbaa08c900abb62379eb00f2ba692b167264802d47d74ab3671620194555b8249857996a25bf8b44892914cce1433685ab210f92253e00a355b96d6716af32e6629cb26771f57c4ea7cc80476d3af5a851f191f35ab646961780e35d6ff449e3b258b57375c8a43718f05262c274344c95ad251ae8619cc6714efa12ac9999b085390fb684c03028615063ae5f472962d49dbe7a65e248152bc73476026cab06733fb57182c9c539553b223b31adc966c8e41cb0e9847236c38ca67c13966c915a9b04088c72d15ad221950e65309a2bad8a58693168b5e7d7be403137f4130f8e911aed444c84e469f98228a55a2c2c22c0061861d866aacad343ba3590145424ae886b52c862cd0036eebb6fd1e33cdc957e2370ae8b42c2c7eab508540a72698810533bdd7a1739e88255e86c8752974986bf36d889fc172d9c434ef3d079697204b778117f1acb520c63462c07679347c4604c78f5acc99cc58c245490250c811bcec2d2184cac261263581769044a232dce38c6802c359e154119c4874fd95bcaa5a67eb4c8c3a5104f15962a725e5ac34e0dd363f5aa667a22268afc4c382a7968017331f4cafa6b76999640283ab672985a27dca0d39c4b7ab102fef1863b06b67d9bc01b8040e1156468960f1213b365d2ab2a877468851fb627b1ed7154c6b83e7f62ccd65ac410e8c97adcc6e37c3b5d7893efd6b2a0b995aaa9171391292aba405b051f5125c8978a15fc479a55ac296d7c278ce5a3724535c91209e1e90cb113423d27845c95aa1258afc49a43532ab873f2a6d967796421a8da73cb2acb14c3981bcab14d1c7647735b25de0ba346bb61acdb8be7f513ce561adea73d19c34d41d12499e8a843943bd21610e3749cddb25d0fe0959f8c0559f774d5ba347c30430684b7535302e4daa90535840cfc9263fb126d23cbe85a43404050eae4badd99a0a1c24e1a2b4df41c8a8593a6763b31a4642830e797541b3ffac28bd7b7a496053fb1e0b4002433dfd705251900a636b7cbe3858874bb9585715bbcbb74dc992f4a5636fa62c2a56989529f7de46bf10845e9e9c03d282261715c7b7c97b4786387411cfe36565c2159903959444c68a0726fbc5a13468714b92cc3f953966fc3bdc3cb1f606a5548e4bbabe2755c56a35664394fec77d9f0646ac5736903a537d29bc6e905bfb5650cea3a5ae0145605c0d81191fba11da630b5c6c866cd09681ff16950b495b9aa6843141236b079ec67cca7c554fba14e534bca50590c1bf40ad5403a1c12578337b55a684038d4046f2c8d4be864c2025cf182592871909e824c24815fe1e206e37001022ab475481c56464a1d258997887c49a052b43108f6b7b8b50271eba002c3d881b4025cdd3b000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 2c2a21b05890062fab5c11d3d55b8e032fbb07ff61ba147998ad1a4d200fd8fb17defce7723b268150ba8ce7a4d9a3548538e2606377e91658440e10b048c8c4e42289a17f398a664986dbe522ba68f42b14f40f25be762aea2049c9444dfbddfe416c04ca7139471f185a441a515e0d08fa24991e9f02d37520749499266d2d5980f35356c86dab927c39d9276aa745f4f9d1cb33c386faaf84ab03a67e42fccc7eee3818254b7799bf445a491b1f4bc64de499ac4171def329cc94f0c4b0ffcd6ccf9b140c776993ce1a0241d8113c67d852c24a0e4e070ccdbada47e953cf65146087476d1b0dc53c039427f1ad7b466304a4f4b2757f661bae492960f667ac439e3d8d4595d7da06367e69015df630a7292b0dbfcbe2629808ca08e3ade11185ded915fb0f5c599417d2d2c9fe742db9535ce90e49d2e70cb83b29490de8db042530e16d3d35b488ab1693ab4d9642740394fcf6b34d74ed47a16cd2e6dfa80a94eb1261ee6391687ba0bd60ec124cb1c3785c2143b48b6ae5c2a109169a974599daf0c682e1bd74c7fe7b3b76fbd5347750755195f73af0a5ddc35c7415302f34f331fd976a84426c3f1b0bdbbd0fca925e7b2e9f78e77571c761f896ed51b66bd9d8d4dcdb5a8d28c382f322dca57bbf1bd6a4131f162f4d8c0983a0140a3bca10d947efd93774edb8b4d0cab98e83ca40a327d68c8cf5fe4b48583d04612bf65e61f00a4a56a63fadeb321a033ad5f7b65540d74ffd144495ccfdfcd4afa7739811590e4d7357a9f80732cd0ca6355c31eba16fc0671de573de5c73d43999477bf383e35387db6b9e236850cc5a286d5a93e9906b6c53bbb822a43a59a3b47676d30d4c8c4665d73fb275ca0dd493afb80aae9e503518ad8c7cd5486ac10ee2ed63913fa20c4e3ad6231b39ce07256f0e8ab72a8281db22ff9f8c2c655209ccddaccc1752f63b1967b218a872a36f84f5fa46064173f44f4a0133771abf6183923eb11b7676ef55726f62689b4695fa39130718c21145dbb8979566dcde5197bc3ed8381e4bdbbb881998a60a772811c50babd1f7811def20ce5fe1937a28ca433116d6c85d5e8046c7b7640ce5b7ce5e3c11e13c2afcf6c20a633abf9e4b3d6323b71acae281ba73d00d9da20292fd6e6042dcfe154f22b308e78ac3decac8afec89ff500534e6e789459b42358221b37e180d3e0aad911d35d381732682c2b5a50f29d41e7b21f7958ace59f56fc1ae6de40bc26a78ab022b5998c324340e95aa424677d2cfec90ec8785339d20859687272bdb581b29ed49a5463be54770a17ab25214806e9acdcd650d9007f4075659271c3b288c9a6a8a7e8291103d2b750c7c088637a733fbddc39cf0f0a9dd6d9dfa6102d12c5dedefd12ca43e43e807635993be1495c18be1c90f3a620074b86655c40b904c1bd97526d7b70364a2af22ae002844c6741ea35263f08d6be51a6f1c039b52dc08c89b45db2c4091c55b3ea13f28494dc0c131aefda9d3b111cbd1df48eb51f68db738d31e73b03799a57bbbff09a0018ee684b6502422edbb80022498ef6e26065bf5ac7e4992766fef1548bbe43ee1cf9335fdd154a6731cddb9d50165d28a62774f23a8f4cfb381a71e488cebb6eb4f23d97a6f6e3dadfd0ab3e146d0873738f1e3f9ac9f6ac38ad1566dd5d33e263cae86e9162bfaf0de296cbd8508ce6e1d553ec6d8915e69ecd0d460a9d839f66aca1481bb17938c25e6c1839ccfa09e5660452b4de60ba32d3492d2e321236fa62e00f56f9284c1cd2c994e503a69aafadf18e631f5d36890cacf5950364dc8d4f564352df1da0ef6d7749108c27d63f4de76e0805db07b70f35adc2be0cca552bf5211cff3cce4ed17fdbff7351577c14344fc4aea63a3e659d615f80388b2c7d1b75ee007138f76a42a82f8bd948a06cb6d8c2f9d0999063e5dee458e0d18b861c4e298c8a61bdc11d54a3c2a3b50da518bcc39db9252f4298c878d2882248cef7b7b600c455efc13bb3f0f0d16380c86272db86f988465611f208f7d1b3e2987bf60a432428a0fb810d29c1c7ab3ffab55819cd168454603c7292efc59fd7164ba2c53f9bfced9c3da9a4dc9a9f48def429489a5742147c79a3b7f2be6d20a2db79dc808e0f56a721c31b1df888bd19acd89b273f169984109b381a1e449778d768aca994bf8e9740b0dbfc1654e2a7c14e95fe5 +shared_secret: fe71e2b85d231f4abf082d4f7ca86f042ba259b24a14a934d79cace53cc10b89 + +# Rho leads to non invertable matrix +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = 480813ee095bdea49d18f360a690b145d96b0ac56ad8007ffecb7cd198a9f6178add5535e863471cd5198c565b62d912fd3a9040828ac9834ea753c0d77b5f23637e5891a92fe7508b672deaf212c2711137915249b50ed9bbc2f7e804536b382d3a29b6132337e68d363903aa84b08a989f2482c56418b59dd351c54b0b89ba5266d354b91b2fdbf26812b19c79a12224b723bf0b0e6967bb1413cd439789058091ef95c62852075e464f717ab84db9b28b23934f625f08d0a05541a5866343a04216dfe83ea37abac6e273ebf649f7e391df2829ad2aa45e634dfee00fb465bc2b7658b36556e7c813d2e4a92eac6c2b84c8b3ac8d13bc4dec0615199b63860ba29172bd8ee51080071553489e850b1d8026a898c0941ac62fcea1cc83bc02fcaa3b5e76938ff96c3c682fef30c320d3a325d633f16888613550c120b9631235281c6f531b19f8ac1958eb531d11a857843c02e37347c13d8a216c1456a9405111d7e00d0ec2bba81b0a4062908883a3f7e088ffa10118352646964be2ca3ba2f6a4843b836d538c042c693ba928fa1651521894a7f83311476faf50add5952aecf663686a07ac302d5ca15e16baab85230e077acc0ef4b36de2613a1c210fa7c7c37188f1685f067403d4babd15925c470b8559e8abd4db4cf965b845f22156515ce54643f9ec9645c53c5c830344f6c7c537c87f2b6c70938c58139fa6e2237b03aff94b48abb8441d8b0d4c108bd6f4114f98c22c412b0d559a25c0845a68bf6266b7b9e17d80dc6c3631ab0620c0582b0705cc686bd267e8309ad1e33ab0bba9fcb21b13e7c455887d07a83d34d836cec3907026911d799653ac0298fc1bcba7c941823fcc88bdb39541cf989bcf08a0468451bef079a627cd31855667e97e3eeca47e2839ae32bf112b71af0003a42523390bbddb71cb1531264113b990ca286f689a3c660496f68c5d68247677262eb36b7b26ce6807459d7c7dc5e4782964122bd96d1b5b8ed9105ad2e72050d874ca1b09b7bbaec0107c1abc025a557206446745ec8d462a83e6a53c5ec6c0b8133054745762b5b4bd142a1e2c2471a81ee35cbad7d6200924cc367c3a3c55032631418cb6a3124200209a782e2a0036ab9723f511fae105049579bf1051b9b41d388609cbb81dd1191b857699d04486e018779a4011471a241fa9401f9009c90a14ac6a5b691bca69c3c5df7b45a7e77267f1082f0418a8d14bcdc29bbf48758af83cc9331e3fb34a49a2570f75562d0bb7213c230a549498751b2cf0bee4561546907f2aa436f6060bd74c3b06a7812fcbc63523a451b90b4c7386cb5614a97a146637c38cfb77ee1316d0ab981b4874a9d263185908fbfb1aaf9b9939fa2d3d552bfd577de94264740ba291ca4c0f732263617dd8d7bdfbe80797c68932664e414c8ced3a48f5287dddb04655b76cac5ab725763264cbc95dbc2ad7976eb5508482389e6bebb358097c79f2b3f5f6a0249881fa6b932e6906816038f239992fa23e3f1814003c48cbe3542825ac45a00d1c104d76424fac824478471c0349cc7fe5ceeb21c5bcd1c262154fda607fa811aec08856b444544366a62a57860e71b742b61de0f129009924af08a92799213b933739a3a81e7a65002596da271bb19675c02302a0a2cb2d928318c365cef3b828a362166b9a6eda5bb7e610a5e22afdd390c6c5a0e6f955d1740e8fb41347a62abe59752ee6ab13f78b4a3c3fc0f70de4a46d276333d5b51f139cce889ab9e18643f9a18be7349a319913ec923233311d1473b37f39185d872a9547b1702cb096526a8596127411bd1e611d51816198b95bff68bac6538149163330814d4d34a84cf2c174c96b21787348c037ca48aed72b22ebb24afa3924dbe43a36f50f55f3bc5ef41125d400eaac4376daacd71398dee37e84fc007f93b245ab0842015cd26671ab840f74831954d9886e2513c8d752ba15943945109b601f051146824181f258417cb393e8761fed36c5fe36590a589ad52675a9b2c05a1565cf54453c7781d01709ac331e5fc454bf222d4f70517f80afe7d90038987df37990a0a42095a517979a0fbd994fac3a42568687b20c8d4857321edb8c320682638c55c4a352d2e843b52278f78953a617b08b271b4fec05109278ffa5b74856188cdb6e30e8000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: ad2de30126428ed97dc602f7d15fa00dbee9bdeace6b9fd7579ecd9c015fae9d9d752b0a56fdbc997528f554879ae42c40259eb4f0d289ad7898ce21b45d0f84981eba7a48df5be7b6c3b07675d5f4c241c04281781e80a9baaf183570f47eda8e535a39f8e8dc562b28c1cf2b24118d87f5c528ba93cd5f4757e23a2a9ded44295ee1e706444e62a94e04df3fe4d2e6e77f77ec87de4527f20f93c62939e08b0bea1a8862f01f7a884de4f77f7f32b6ea6fab67635699f2b19eac1d1c4902432e1f2851bb35fb1e3a1ab79bf2d2589d34eaa4294c4305090b12e3625ee42c8f2e6a6a0ff86eb4439b4fb3371ef04b61f5b7d75217ddd16dea7977ee763f07da3cc3eff2ecea8d4734b8cf67e4f95874fa14ae397854810ab1b593f7eaec2e87650b11079d5eba756ba7282f1bc735e9dda89ab226148552a0a6bf67436149a2d79e1212da11ef87da910ba69e1499314f3cf90fbb4c04730cea5fb1e5d35eb1f522e09590522d6294f212c223249f8f7ff82f3707875e66621235c464a7564df4e0a825311cd915e6ebb0834f6f8a709636ca137a32d405550d97f9dc1e8b970394003fddccaaa1e98185d3dd354f3f390a5e6ef9d293e45ceed7be1583c983eaa6f9489a994ace30441b252c375cd448ff4c7059f6db14d1c65d14c4a6b1696381144bfed51a55827db14584f54eac1073031d7b282fc5a48eca5b164429d9bbf46803cb079924c971aacb0bacf3e58637b813b15794029740f06fef8d80ab7013041f3b11e04df8c6737bbe842c8271d584e5c84fa01870c9ff001864176c967d8aa39d6f3585ab0b0959e37ac8e9cb06e3bea1083c2053cae238c6cf55e9b6052592ac075900eca92404af4a174a2cdb94e202c31807cb5bee36fa4e6e6f67ad4eb5d60a2edaa101408a8e16df3f3ca8cd6e2239b079d70b5dba53a42cc594d595160a3ffae9f16121383ba5b778397518095a4a92d26eadce6840acad84610db923b5583024a5fa682a3e224c5b081a75d9903a870642151329befb6c7f83d5ff8c0001303e7349fdedc44067f894023dbf61557394bae481cd25bb48ae7785db5457a90fb1644f16b9aec60baf5095d4182b10eb12f680b37b779619f59108b055c7e7d0e33f2ef4a8911ac876dead82cba65def0c3015274d14891d1f726f3397f0ddec9929189f7d5498b41799f6a4cb8289744a9ef7d9c620b28ef6cbe88188111a5ca0c5a320c47bf7c12fc1cec6a3dad012f073966ab62ef5fd71a7dd05d774c322c8163b18a6461fb321d77fb26ea2afcc9a7b30bacf3d6bdea1daf3312192632b9a5a5f3938d42f3e7b5b48b4b58d915fd8bc63eb5135e5a617a333a21839e47d7f61e6d206ad88332c1fb55b71369e63d76e9bbf8e7cccee4307db753533b61b7fa2edd1a2fd434ae1ef841c87f6250dfe40d8c045e47f9b93abedea1c4ffafbd0d61499652e3b636e0b6dc559bd3db9b764e4d46c35f2434f23ff3628e9b4c30a65d485d29a57f5a400aac8df42593b33833fd138408e63fcd8f4f1fbd189c05d651065473a88c9e259029f752848d07f80954af01e8cb70ba019e902260a612c24bd8af1e484b280449f335bce1a32878a0af01641bab8901ce362ddf2dc31a2ce8aad03e8931a427b07fa2688114feee300302d193b05db582ea6c1c68c7c4e405e72607dd4df28c905ee38f5dbb6b0eee1864712a1489c974764bf7e79d5520d2695025a04173049057b54c23a3d2b9e4367f6ffc7be4bb3642b7fcbc639614c3e479bf755c343bbb925c7e7336d567eb051479521319be75831191c8321a5a887611fd8353463f245f91c396fb0b5e495dde71b124c875dcae8fb4d597bb84f9045c17949692963aef558be7260973589ca0760fa7980c85498946f90c719adeda096e111ac8b3a215084af549f4d61f8253f4acae2894c7e880111c1bf01124bfcf829ecf809b67b08bfc3fd9c8afc04c330fd67df9a07f2b92f19b56bdd5c621b62ff1b55d7dd0ba5235e72d5e88014c16016178975c14d4b105909e547dfa6486043025e55bcea08dce175cc10bca8c56abbfa688984504f5176a12d975a99d49c30ddc265f1f251bde72ae16b36d9ec61640c4728415521872967a6521acd50faef7d198e78e33e0585a14280ecb2a9f8a75744491d90616ee35b34f50ddf9800dd80bb39fa9e7b523bb03760550ede1a90aaa775 +shared_secret: 365bb81ed68c6ebaaa58a3633b096874485c19fccd8661cb2ba8c2634efd0fca + +# Rho leads to non invertable matrix +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = 0231538782738a75b631f992d3d74842714f03c31164843609092942715aa4227254a57fa5325e39e2763ca679ce680c528b162d18a3b60c6485e4aff926895b4982a64c40b28484a32979d849b380ba867d355ad55a148f811625bc1427c917379239203cb59230460c880754234453779eb7032ffb3b98071546e3300a63f39cf4ec0dba9018c4470c63e920ee79c000f57fdbf504bdf709b70c82ccf3c7f351b2b35a9b94582f61455b8f24bd43f1148b91a123076562e53b23fac78dc4ac6d257b3e882842382b30437e5c208fc7dc15a0eb4948e902a8f13192d401887c4f01a4924248af31db0892ba9dddd6704b6c696870bb87257a0e357d0c908995b0789079c414a0424855c47dd73becca7b13b029afeab7a7860220e4cefb361edc19c961fc2b24d4311803727e5c0669aa5228e907f6394768e7a3af5068b1b7a0bba9a2aa195ae052233e92ba6382548dc201a5d1c9bcc70f1f50694f56277703138787b34f63b407125d402369eae548d12353220b50e36583d9b0b6b33b8f38a8b7c0f20a4c7561d6c80ddca37d2e709263a54b4abb4577800705f068f21b8a4b44cbf4e3c4dabb1e78865c1fea7064f6534b1c1e7d088dfb37c4b5d362f6d19d90db7b9804cc0b5b02a3f091cd073722c82d0113bb64ab2762411cfd91353a8838ff39c2b1da1fc41353d4f02a66dc28930b9aa96088489c6a83822664679457f9868a0ab58f34bc16cc6fc8672e1f35a21891246bb201dff207148b08f02c7bb707a150084b93c44c021ca3d56735744070d0b26d3958c87218accaa424ba20c3522a6e17b5b99a26650c410d6042cefe6493c660c954484a6fab528d034da0d5a92200ab2c36262f074ba54432dd7054d348ce54fbca9e88043d3b63f8193ce57b770f05079c3946f9c33c2c9285422756b3653b4a876618773de5c7b0f2b019dd7c23f39759cec53e95aa0b87609f0ac794632849e5bc76c1619be9688067d93cb87b1f51337f45bc9ae8386d7c98b88cb0b96c583b010656e7f017e972c812635115335af17c2c3518346407c94e25c628002652e2cb88fb0779427fad957d394999c0c369447b06c095381bc909d93a5e0e0c087d71965e296a489ca5a542a41a99529592167e2bc1dda7bda1c5026ea15cdb4bae4b7500f0b1aaac059f0ff8381897c4f3a144728a2ff12453feda091503bf603b16e406288dd89be4884e4f86baf722269475c874b1133de17ce1d51b694c7df5b9a87f19c2648170de3552c7990f68ca7e16a913b6697b5f848c6c2a92a9967d7bd180b74839e233389bd334c80c7772071d84460c509c092462cc1e4072f8a3297558784b68c7359c0adfac975ee4798d26c719e25c16e47850d11569866e3d610c0de0c68e2886e2675f7f59791f4568eb60583a28ac8ff2430bab6e5fc07f1637a59be1cb9b33c93b3ca98674492203a9e9514ef5da006854037b4b4c2a1ac6ea6587d208b505d206f04c7a8df119774657eb549992002bfa75b480fb576d3a0484d695f6fc56dde369154c5509f346c501c12a699354c14478ba95601239a2c48217219013fc51eaba658d4a5662e469b6547f74eb29c10c296d1172d1b0c75df4b2459cae31b33d7e9164025478c75586e25730550216c549ad05c3660459a2653397d60c27b342a5b51836fb1a33bb8bc9cd622af6632245e49c5b129307942eff7c3157b2180112843a61376dec7f6294029a441683a996fa538bcd07a35585558ee09123b7c3f6291ff04cbfb5d9a85607cb086bcd36f3c0a8854bd0f58cfcd5a1f4c51bcb41bf0138c8c7e29d7c43a1b4538f318532b8f30351967efc26a7a683967d770f3c21ad3dc85b7da94c64ec6e66d83f01490ad6ac3567c81b55941ed45a6ed4b2c87f473f900891b5c69d5092087559407cfb5e9c2aa18b491d6ec7424aec12675aa6230303521bab27303244ca2716e83b212783cab442c909c8760ac2d341a24df63315ea42726912fcbc0187d520d70022eb6872c8b1158a804ac86893ac7741e2118bf721c5225853a8e056c0d963dc0b2500147b0f632fbd27594656866167c5bb28994833ac2031bf4998597f6c1da7a0a3d70c3d3b01cfe6a87ab57419491140ae9c4eec0b4bd91a1946233f3cf88a1ae27acc03cb551294ae5ab7606431923b000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 5afa8807bc581062978485432085e6af37c06780538bd96f798f641949ba3793cb496b51fc455413e47586d44e379daa9058a4bbd2e329e7083db3c99074287a3958682fe1c94c88d175296b78e880eeb27bdd5b550bad0577e9b24ea5f3148ad58ab81a1bd1b63a24c0ebd31f2198cbbb819eae7d30eb8ab49b08451b4eb4c16d1dbdbbc1da5933c284c2b1cf37d9d92af41ff4ebc78f4418c6b9077a4888a3b516fafdad71a517df1b8818c29accb9536f9b0998c3a973b91c87a57a04d48d5f8332a67720f92c8692e8b2eec3fd62dec973b815a18a33e721617110e636301b737ac3268252920c578e18c50b8517c34b38117fbcd282392c14a61dfd30b5e15e10f05fff96f15359a73b8c29ffc44233ae49856da73426bc84305f83e540ecce3eb1c386572fdf2bbc18163c2dff137c05754a43e50d5103c0d7b4cde47457d64dd2cf1b1edf208e225fccd89a47831a7aeb0d1ea313d2dcffcb730532fe151a2ff28c1dcd8212a10dfaa0a6668e3c66c67e20290b285411f9c9ca55c36369b11548048687282e6bd9abe13f4b621a2545d50f530544602626d524306a97be439004d670414bf69f07cde6d82576533fd01fc9e8d8d40eba682f88f228151d5a87097a8ae33ab845d523f709eab85835278d8c9ff1ba2fa639f61726267b033bdc355c5e4b844fce265936e7cc009a99caaa3c76c4d73ce84264b15d1eb3359ff7e8ea4752bf3cd2c9365ec3f5b8fade92e7c1768814b0566bf3a2633b0f8ddbae1da24af6b42bc80a28e9bc1b601ae1addb0d1ed1666fcc9bb3e9fa8ca2dcfa7bd53c96ff0732a00bb1fbafd01b239796d658437c5a42297c2ef395edcf90a521a2ac2a852d329c95e9c9dac1be1948777f794c8e5c5728d4ec2c95036bd7b8aa5a272add19f5c10fc8171fb027956cd3c9e1039795bf6514310d4c2dec7e363320e481a33179ba5930fb20fb351ba3f4c6b72985f12a43d133530a8122e4bf9774e62e064eacf8266803769fb991cce898cf03457241d2bd7f7d104ea07615d8be80f3c2e86b015be16a7e0d0015f69ce1841ebe279233d661209495a728dbc6949650168148227ac08f88a57f3b3b45b7f99552467076ddcddea388994b2d9e4ad91a384ef053b2f7b5f0815d23c3a5c1de5751173353f88b9b4d8f2cd6335f736a646e370ca66fb911525299a5ee382dd49c2b34b654ae7f5b4ac07ba6af9f3b903407eba86dcbda9113fcd00ec8edc4873ddfc54adede668df06968ce5f63335f3834d6172d40d0a7086c9d3e68dac3efd25bd08d4a72b0e19455696c45f1a8f5ae0356cc86e0712aaf8c32393161ba47e519c8fadc19db8f4db41651c1fa90b800172b41fcb88f8bf6843c0503a1451177303f5269e804a73b5ec0b45e46522fe1f939c2f1b4b0fb6568206524990809edfd450e9412e76498109b7b349379aebd5cd6cc9a3c57c7eab0f57ad011f2599ee74f75ba208a1cdfe7a52a67b9a1af206013d28d01f8b4a5680735c8c6adbc3af20063441d5c4a6a6395da2e97151e92da944494c639638d6c2f1d5849ade57c75138a462d3a97adaa4599db5cea3f03a89e4f6c02a874f09768c5c38cce9e8dbc7c4ec5fd6de36f7a06267199ade0e03a2b9c8fe1bb38e4aaea819d9bc2d9a2023372d264231bee7da2f6b853f3441348e9875aa784162c9def07ac747135f445b7645e713e3467856f35fb4179b01ebf0baaf840f4b56681a537afeaf1c9a6f86fe6a9ba6a3f4300d222b9811d4d61f03a8edd7d2a4c1554587bf1e82f97a25dd5b3fa145ca4d92660023734ba7242470b7d784284002e3e4ff3b1fa12a50c159cafc3446747f57c860c7d1755273f9ba906f8568a650a9dd4cc2a31502be833fbaea86bfd4c13a2bc8b713d68c6cd0d6b0ae7ef14dd58fc68c558cdd337318365289c7e5da57bb63422e431d86b5e7e47b71a3d2340c619f0598f5af80e97a0be519d38b03c826ba8f87fcc4b13f8827baa22c46598861351595f8274688919c972b884882026ab739692f9758d12e5597b8e3f5da9cb5a7d903bd8030dc468b2c4b66416dc56ff18c20c78f018d7102bdbbdc9189cba86f9eb1f57b6211f9569cd34737478f6946a2fc2f34da0573db8968690d9ed0dbb2cb6bffaab6d8b28eecd6220c067e1ae1c5e4c8eb2ba179dd4c56860f6f38f5ed3f0fcbf7e7e67f5c92bb9db439b4dffbc +shared_secret: ad8e3f1d0b1d2640a6f879f697c81f353f8e5fe17d0d09bd5d21c068b0720147 + +# Rho leads to non invertable matrix +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = 0bb7ab955a1d1ea4113173c05093259a84c8f055148d301f1c72c9eb2ac6e03b8ec47b955fa429b138ab9762705ef19cc3d4019947c53eb361b8a6798ef219ecd086464641a642660bc0086bf97691e81d178007731511bc632097e08453fa02e8a2cbe9e858a20835b8090f56119bbc000c69f0ce0fe49c4e80b41e040f3f3c84388c6eb5ccac37b19420139e19f88b0b99214d06ce660b844b0604b49222e46136539c7084260ad0786a9b790d76c5132068ad6d1763c0207392760de1631783d21c2459c8189c3099245de001aef30a5bea95609759141e8458c3e660aeea2a3f721d15302e46e1a92d213d1ed16168f71e9b21b5fbd62355fc8e696c71eab7cbeee9258dfa4c1b876583f56c6bf37f770aa7c3e317f50ab01a7bc9f7a31d8babb0c9d2083821343d6990e50a06a33985af449c29340b89a59192b37a2a7aa3fad830725aae61c52b5932a2d9eccc98612997a2b76cb70094e62f4c97279c2044eb5b624097c4f2d6a6232b526b582c9897a9ac734096d88639fc4adf548bc9f8905a4a4d13aca80e952aca037cf71151042429a6f30e3f67802055b217900f748844ddfc987623b27e21c869c16396a57da38938625b9298d66d1da767810860df4768f9c26cffd4b0fe4693cbeb321ea69243fc0e0da0948e5c9ad676c058826b9c263c4587b104350e29fbbc9dd91e876b40396a67fe874177dc5013a18c9c1195cf92436c03b0e06b86c7773b0ec37aadaa7bab6214bd296ee820b86d4026a5b13bb0d79df7497d1d27194f3450bf38b9ae7a18aae876de5b74fac93afd26750b9817df000b89c113ae700102fcaecbb2a0f52035c6753be93ccb6e51c6627ac06a121d55845199a69e9b8b14f4f878d7fa9d3bd901fef7b250ac713ea823eef11cfa041bee03abee508f45a828dee681c077c8bf89433ac4c58035a755b27b495678fb051282299f8658bcc5567429798407192e8ee59693853a37f54893974c4fe64bdffcb6d2c660f88c8f489c4ffe716e27d3a157a539a8a6c1c5045fa93b7ba5f0b426d628ab6a1efd92662f802d9287570dd962f44c4a8ff37825444031ac27e26669fa15a90733ac0352819722724419642875cb1a143b5b2a2dc8e31cb4aa171798181feb539ca8407e06120ebbb2aa5a3bcc4600ef64577ed0bf315a05bf4513e3739282732c94997ebf91ab6293b909d935de20a8939071168c10f1a2792b4911bb212914e5781e3ab5b0d1c7c1363bda387118a2b130e07bcf4768c0fbc43cda2d58f44fcce9910deac4b2d11cf89285b1a604b2d6b6832ab2449c35fab65b9f1b6a22872858dc8fa6923450975f55bc7099e355416768af41c657352eee743d51da6133231cdc5c2db54b59ba6b092b63362ee2bf3ffa10f1897b75e329040c31bb3b76440ccc0b6098930072a1a95c70d0b5bec7786c3ac69dca40ffc687efb75325a5b0f9b67b642007ced66b31745828aa89526006be500edc94c69d9351e9139d3d826a3da4177757b100460f0cf223c23680bc233de3ea7950d0b21a3949e3e278a3c058f9eb7751a2ca35e35f88f121646774960574dec686452732d2ab00c863ccda19698456a08de7b4e129a9f2fca3615001720406d3dc90e94665d501246e446cc6225ffe44c8dedc908d7b28fa1437c95323630cba8944c0cbdbc7f1729919795c5b52aa1974647c43297efb030a99a6b0d5a0a9d3679c20c28067786f580506318bfcdaa3417366cc9c93e34488dde73652a6b9ac562747da8109481260502fab5c1bc4636c9d6b555f96462e940cf0b58202d049aac1a3c87b5d950b6701846e948550bb8199831c461e7436a3713c77c0662ed009df341d5de0b697770f12082f04449fb2868a69c68ad14c941130967f0b06b2bc91c0b840c43c20e837147775853d3baf7094c51ec86051b1ac73753f032374e76cc5eed8a0be466c9fcc1ee9a80c04b566decc5a448753c2535fc9c0b3083716d5b049f89c9f191a807b933c2ab912b7127b4ba04c85386372f6bc5db69b972821d54867f440c4697220a12cb5769cb7495a37acf99fb0451f6ac7807087ae83a0b564924e84428cc94538fb0357a7e222f8606ef0404cd7e29d2a4ccdbb22a45f9a7a51499f9764a063788c070a93bc0766923297fe438c6fea2971b887fb4c000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 20327e06aef57e606fc94d91141d35db28ab5fb1a7a1c0ea51eb1230a4d8b7b0439722c9b08528ac3c63e93c1f1932e2602e96bb51d8d34930df8198269997430826c455c1feaee04e96bc91c5d19d5ae236a2e90cc23cbb802d4075aa7ceba81689bdf1907ca524a7582f7f6945812fb8f0e07b0a6b5bf1a7e879f4cb725d8c2a11df68aab2447374c9721a13225e23ab561301d3e1627f9973a0e37f76a3b4c3f824fc26f249f8b4cbc9d9f5ad11b93a29167d6f6df17b47c1144c0ee807d296c49e36e78805decd1143ad46b29c310b9228c8d66639de571542806115d8e55143139f976095b88903831a5b40f12772a7aed5cce13ff46c97606abe1ae98f5d43ea40d48d8ae94e89851c4b39d4d426b8a1d5622d1bf03d56739a9f81eb4c62fe026dc51edb57874572d04eb5d3b43e4e17e8d1554444a98145e3bbf65c900a7f378e5d9cc71169e5fbd59259f7a57b1b4c608e863bb6dc0cbe45c402acd789cedfdd3200e2c4e9ca77054e391b457f011486bc58708c44166bac944ab915ffe993591341a5d07bc0b66ca063c5294c3de876d4a57b8a9651e9a5159b1e12b9005bc44e757cb141cc665a2a03158308e7203bcb43a5b913add9e7c1f2a33319bd25e8101e9bf21a4a58de0653b106f22249a05f43c61780f9574ec4180a0d05947b0107bfe5bf368e3b3f9c7a7e9bca0d848d7b76ca57bf0876be4a0a97995d00f7cb65ccdb708e992efac5f1ffb990e107c854c5f15b8540db4573cc52aedf1bf5e4350c4418be50c9664c4bcf113e8d78bfa116a287e5f174770e7f9cda3ee4f9cc4f3e2aaedf97f576e0e71282479ec1fd4801e222893ef7d34919872ab79315547bc687da4ab3fa5e8d330a4ebb79be2a2866788f0e24fd946b689998c5226c0c241d24e3c6dde149fac94311031377dadf8fb263b9d8e055824fff8fff07820fafae7aa9477e42fbf42ea1332eeb572c0070b48ddae20822b45d491c819756afb5fd6f9564d3f71c043229cd9588d0292aecaec74d537339ee37cb9d2d365ea41bac6a811c41b9946dc1963bb6302c6ec01627dde1c2024d5dc9f9978cb963dda825a3bbbdd75dbaf04ff70f8b905abb70bf4bb4db15467de1f37e7a22109395f7b9cc60861888c41c8efdff5942ac6758e8466029cb6378eb4b79ae5c47b8c13dd9176d64010c98ac111e9b9ea8391a1695a7597ad38c016d3d28d44a22847c551159ef9a473bdb98179efb294e85d7819e0a100fd2ef92a0ccaafa07e5320527dc798886a4e49911afeff40e45768f18fbcd79f6204f17bc19cfd6b86f0405e0dd55ce4ff9e092825f0d83cf3a7767c49106dc3b996d011535c316ec78433810173b1cc8e280a7e23d2bf2bb615f3ea576bc8ab9c7ff5cc7d79cd093cc031a58fc7d8b98e7dd127d67696ada28f14082a779398ea6c722331783e77b26a2a496d484ba8986c497d5a038542e192a82d1a1c5f02ed3afa81ebd6348c06a897567163377bfc9bcb41fc3b0a037565871ca9693b1023fb0aabf770571be26e847f9ef822681ecb407c467309b118c24243ce1b64b060d48ee545c094d66d032c9249f877a1b034e9072e5aa63d05a9ae2e7ae037b70b68e0851ad8d99f3a6b6edca98f24a4070f89c92b786db50802cc8bb5d7362e8a17de3a4137b01269d53368836ba7b7e9651f3073f32140a5c86d88ea06d8fb488e20d721a198d43fb530d83f9f67977997bd24af8bbd6469f377e8fe6d4021204869813e11407a310ae89381f05b30257c608d3b6c395428fbef8c5d28a4169c07885c3858de23196e2e3e67819e50fb0bf45734d1ee5e61520cbead2f716f58fb7695b00cc7de362a149eb34ce562b93806c78efb67a62c7abfc5f2a7722f48c496ef6d641a710fb5dbdc0db58398dd401828a6e5ea1387386e9d67fec705df55ab466e3498b1e7ae78fce4626e440117dc16a5d3b849a60a3b6e0030b483ee04c7513c0effee19e63ea7f148cb8f4de75c0ff450bccc5cb85a3187881f3b396e4cedc685894d5ce799320f01b7aff4788af6e90ce97165f3cf7e9eef7f8f86283a99de3864843c6177a8cdf90c50c77d1f81e11cb42da9fbd3b495e7528453844f315b18a3a0be78f3fe0801b1a8f89dfd5d7eae27a8eb608831eefe5cfd0ad9631dd8be45add9da2f73cdb57f062fe46be28462d09c5ee38feafef94269344d765203047b8 +shared_secret: 957ed68960e9527bb32460505e0a8b69ac6dc0225501d87f46fa810d98f2e31c + +# Rho leads to non invertable matrix +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = 9eca02981ac7be932e01087b615a60afe87ff8d93d807589e1d351a5033aea9b032ae80fdada8fc4ea6a72b82929339f23870e620b836634a0594906f5acabf563c97abc1da988aa4344bdedc707e4636d65ba034a7c2a29090e30f677439247f753ca9ff93303a52a9ffb605c7b8fc142b576f14226c2c20828a258bba28bc0b680e60f43c08417946b77d29ed1ea968aa3a268e54b71531e680c09f5b08c01500956a86edcc05633dcb13e173e28e8c983fa75207b537dc37c9356b8ebac5d401a28a6d937f9ac49c3fb267d9a0ad9386f9ad4397442b05f191314356b431892f590290e488f12bac3faf94ec0389ca3d88924671262845bc022ab0856242cdb5fcaec474565caea58395a34c709aa270955104493832d2805a8e05d62437df6993a0f6cbd35040580871aba994eac37955f73ac8b057060426eb068114dfcbf20441405a2322156a5fd491f24402f8b73ab88f2498b04148cc2835901604674867947c3fa24a2d821963ec5180cbc00bba371fa3879be800bf309c0ce9b6ae90c99bd4b9eed787a539c90b31cc4ac3bcd1d2bad5fea1abfd7383a7497483b089297722d27ca0b325bb09272e4ea1182da4a75cb0daf7a6647b15ff0e1cf4a55a061921e55d6c8b5131d88da828dc800eaf4216c283af147939f1cad02351ac8ba79515167d1d2b582292776c300230a9cdfda2ecda65c1456884a5aaf3ed23c8242a3577913cfda45e3bc2adec6aa281051d0d94ed0320397b7ac724b8679aa29a85b838ef9a3c53021b0946c9933a5c5669b65b789e349055404b134671ccd105b453066fcc9949927798670bb011bc76834c37f3b98d2f992fa493fc3850fc64a92c6c17be8ec3ec5c46c4cb415de2c1a7f42700e415825c4376998522bc05f7a61c77f47651dc8a4df012d1aaa85ca5899f67994303c5e870b38557c05eb2a09069397c638674cb868b028b96e4249d2d935abd80278d35fb9668ac0d9999df99a78da32eae376cef69546fc71e3e2975221c49ab03baf048e1823bb8199049443433eb6b42a32ced9f15a9f4a3503598a43582070fc7492d6c1a05ac47f4a8dd3802af68c4aacd778d7693ffbdcb3f5b77f81a1951cb43597f5bdce907671d43bd4f92f70fb7c2a9a09402cbf0b8798f662550e2413992a8419d6a98e709c2c2caf9fac14fbe558b0597979810d62854205530f9b558ca4488470a39c88a37a152b6572c2c57d337a4b7ab261520729132afd067e08035924a14f28d32f6a258dd59472b5db2c6cdc53b9d766dcc030bf54b62a100cd0dbc9b99760df12ccd1e61df0b624b593b004f6712a13aac6934ba8339fcaa64f5d45c05a2a6f970400020380c320adf23377c6f5691dc96cdcd4864cc8254c929c080232a01b1dd9e7808e076d6e729926e81ef57970447c46f6ab942b90505afbb98edc344c47a3510c358bc63b76ca0ade7589cbaa3800e9278eb16a691a54de7cbaedb384ad97bc04a7666c4bb10cfc6ea85855b1c4c18005cf4939130b3a4d55a954805616678671a6353d45bb23fe847dc992cfef322484f7b90b3a45180a214491505ba24572d596cb6a48dd21748b770ae5a8559b287c76c29f3c5636b4400175b8aab65b91bdb09d43db7cc5805673c5a3c509ce77184f4d5ac4f674c0a602363d984e2bd8336d7877b436b6c0a8b68084a7cab956d300c498a86d49965172a78972844f37b5ab703731451854d7558f8f307d74a967282bae40806597ea5984899b54d31d85d159ee245a85ba7181c5bb051c49f2391acf60cc7c211f88d11617bb4a62446c635cbc09165fc590926cc7c4b67acbdca1804abc519af0c7268c0a3ab92123f15ec9f148517162e6d2a1083919570834cdbb7d7c23556a1cc11a55760b0470e6466e595a43a25b27565524618a6f0853781808bc14a97257b6ad9ca5cae8c294fa26053dca2c5fb300e0982df766882d80b33af645688c7a57b5b1a27526184083af969aa4aa5f52d9874a09b8dfa21cf5376b8db101b2b218412a400e02aae7a186f3b226fc018701533ae10c37b3836bcb829c7137a6252c9fd73723ab7169667b8c8ed4401724b36c71c2c8e56dc3785379a55219e63b4f7159dea9225c8b51cb4c8e435c3e19b7413345b12fa3a0f3cc6146860acf104ebe31a52aeaba9a28000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: bc99921d5e80c1f9d343ff32fb4a40a3706f750c4f7b0ccd7656ab6111f1ab8dad341e30e9a18c570d4abc4195927cc24fbfc57b1467d82d2d0cc1b7a192d769190a29d0e0ff672d6771910ecc08b2e8559c8677cb8c5d2109c07c67c639db57d9f83e0e67e2347bfc266bbdaea1436afc2ffac8c753c33a8c464c2652fd6bdbb7b78de3c851d98c5903a26d253eec7af773f7060eeb34f721178f8f6b4fb48ed18e0a614be5b35d9059ff8f096796d1c750fbfde317cb9bc95b14a25fb919a9df07d19aafcd52dea0a9b37d3d4d5fad67bce77f25358bcf3f90c09d08ca0afe83501bdcbe63160b7c8fdd8afaa7ef023f6ddc2c966118602cbe64a5450f1cf3d62d7cba4cb2627ab954f65f628843fa661b55a9e3f0d8a1c710b068625985405b29ab4472a4161183795032966e27080a8c3042d616807b49a68f9df5a8f466845b0948b1ef85695a631bbc503f8113318ce81e436e4fa69749bf38fd1a598e6f15f0412519363b76a6559fe068946925da95d5d00707ba0da8bebe3121f859fcbafe80796109a067c4e1ecf970bdce85946830b783e9223dda9ebd84ca91ef9ef096e3174785db6d4aef47043476128313195cc9fb3c009c41a2b859046f9494d37e057dc0723b17d7c1ed99c9ccdfa0349229151b584081bf921cd7bdef7215125d5ac2d2764e1d0c5671845164a77bfc91be29a476da8bbd5bfea6d102890fcea3757d9b323d12aa050a4653a93f5a29f2cdfb30e7df5d36f8dac610dc401b0f6ec0f63a022865f10e119b68c017d083ae4dde05598e02cb22f2db9c69372e23cef10e92536e11fd69baf27e41b578864c7f1a552b739b3369e2fbfdc7a7b6c38a1961cd717c4c8a4ad0d3da4e147766ee94857d0914aa7d18879ec6c5ee0cf747094ef3d681699decb917280bb76874e90c5b70e8f2c3739a22874dedfa8d8b1c5ef0cb72e67a55165abe7c3513ff34286ab8dc690b95b914acde3f63bafeffc2a6672e280acad66e757bcdf9f6650dbf39035c2a0ba75c100aeebfb8d0763074b191e6d6ad86d50f945400568f61a4e8b400a41a336e1179934ca181798f159278146dbd5f6a49481be03dd9538539dda5cce2eb4c149f9f7ef0f1ef5488c4fae38fd49c07a07976ed93e57a8f978e7704a1b316e4dc3482e6eea6181ace8e6fcd37cea7357740b9ac7a3c6c4cc3b1b7f27f25ba500f7b430079ace631bdda634e421b457fb9a951616ad2a15e7fb7af4a9d05473d94bda20fa5b97cdb6bd54d028ec81b09757036bdca2eb2fae32a00a50b21cbf7b2c9e0206ec617870bd18e8e5c05c4d93ebb88f4376f0d4d8629f5e03acfc6c5903564a3fd45529ddf45448174d2b9a36dac4876e601a26b0830546d3232cca2c2a4a5f6f62fa9f9c6c8a88ba83417487c2f838dee3657f4501f46f99467a738ba552ccb69ce20fc576722a5736d30cd2d6f3fa2e6731db14f4db0ec60fa134d2cdaceca19aaed29ed3c9905e98031470e8f06e5a95e25ea98e712b16028fb0641fe92ddd6012b05d3a2910e885135ee75fb9de08ac97fba4b42886bfbfdbd9c831996ea58d3eaa0cd712602d65ff8798b80001a5deb51a4823216d85f8d79eb85bfcea1805571a048f0ebb6944b8b32988014601b161894f736ecbd4ca149b8ca8297f8bdb4d4467b776e96df55df1ff8c192d7632fba09959e18edb38256f13519ca331e61a11c43a1f83f0fc668a62a467d3aa5da3b2875fb0befdb947f57e90f9fd9330d6a8b691038afdee461737f4a1b21f3409c71a09f8e5a26f4b82e7995872c13b023e2afd497eb4c95b949594138d4c52edd4cb446974e26740327d9ce438d3c7ea4e786e74c9981fdbe6a8a63fbb814e17fdf517775ba6946f9e4f802e39d03c829b87a68abfcf25b6b5e20f2b6b2ce53d99eef19b44bff5f76f5a055897a9695d6f83e7c16cc395211a672639134f960f986c75fbdaa7355bbfc1f79da427ef0037d4ce4cc52e972c03886ea3e1e9e66ed98033ee579f951b46839d3546608820bbb1e4361144214c27907f000c5e7866eb2ab5c3902395845c5b3bf14186eafa490d74dac8f1be75904f56a385c102ab9413022ab6da58d2d170dbad5c2a7c935a9c0190bb730448fd3e50dcba8aaed162a4aca6d4d2ecd8c9879765f87d6630a204c05772ca873fd78a7bedd4b6217d3731c0c51998cdc630e5a256200395053d0 +shared_secret: 713597a2ec9a4e0cbad958bc8e4929877ae01d034c78947399b9cb1a383ad7a7 + +# Rho leads to non invertable matrix +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = 1582ac34c94dc4828091253944b84b01b12106432fc87321a15688d6114c5486aa6d90338d3260de15633028a9a2c501e3e7a88747a03bc4c41f748778fc06adfbb70dd01d706789c49b847b12a2e369341c7b5610f2336730cf1c1bb07df6c1e9a035c6da4f01ac38570256ea0bbe73832f2ef968635765e7b9c823fa326b57b1608c50cb552c5c4b6b509abf2ad9452b76660e69abf2f172a117359b40cb7e972790f4b9bc05b0e866474ce6c2e37a36d74b49d400ab37486e47597afe6a08cacac56a654b1c56cc2dbb944cb6ab12338444d15f0de20265b57f3f7331ce56b374d13d4c89213117a15ef15ed6356778a6a6579356378cabf268be41466fb82c20845bb5811a2ac3609f3d556002148dbda989d8668ed8c26563595da887c657c915bc83923b46034af134a6a71e09992182310b061840afe058556738526469f76b91ed6081bce143e5e223e9a425bd645689d37fc867006092a7305a44537b06c60b168d039751e6b015c7c7d652ce121289920bbb1fd30304124819121af20600c4f0b261ec014153604140a5b8a97ea49c6c065429e08781c7377b73d06eeb909e9222007a7436a8e8a28edb7ff9e78c76683234092b6c97b256f2942eb01bca52a5f192ce1b890bcf0052ee905d66bcbb7ff44462e5c2a92a58313807b884a719cb07a2d8a3a0f5c2bad57cfa692a3d01345807213a2b5cf6a1234278256965464b48bf96fb6d3d0980d2c89dc3171093e80b6fb7391f203fd0e77475b8c8b8e913abc7066b5cceedda8e97acbcf3c6a1b5a590ddb0265b2abd5df28c8d7cb1c6553049d65808a0021d671622f45a5e834ba8498f97a10a15f1c8882b8c28e31b1187207bf5b6577053c5f7af3839bb2997bdfd761154fbc683c68259eb2e2367b2832a0c26a53b6abb06968a05ccf236dd8aaf3422c427368400dab1683832b9c73af3f63827ea16c1bc832f115ff3d00eac20cd353687507cc6d8f97ba12941bcfc714c735b45aa33dd3451ec56c4bbd6c363b3b8f65097d6e0ce03b29fd5039fa0f2a8342514278aad9d4807c1b25fdf035596f8548ca85f2291207694b949b42b00fac43cc6394ab85c0a01c583717d900035463acafed05f6717057e577fc30a92567a080fd942816157146a70ef3427a71478f404c4f613266f95a552578af3b4a7bb8383b1f20a6e47157277a7277086b0c38dffcaa911a1725fd34b04d545cbd924adabba3ef705c6e44c885526dbbb55bfc8a772453397902ea9a2b279e379f65151fc3450a1f471355a97ac0abd0af32a4694cbac06c32069c41fb6af17d684aa05a84689565ec05292d61aa374044485a507ca3478973b11008bcae4cb0a2975c2a471db196dab32bd71397e87240043b1305362a62fa6843010a25fca317993660b705f2637988494b94aa9352510b0bdc352394ab627e5937892aea86ac0e7eb1c5a2b2eb403994df5bb8cf144f3043dfad619e0627c2e661b70d1c4bdb30401ccbba87c1e8e0c1a83802abb5910625344174b6813f89191d23b61f3aa4c458a1886233aa29d6473be06f0906b75b1f16b1e5ef34dcc88007cea76130a70f6d1aae5028ff71ba38e047f02fa1956e7439ce37d13ecb555635e3644cd8c51b53db31a8254b2698a76b96300f7a14847c9ac372820ab779498b15f965831965c158fc196f56aa9dd37b0972c834eb0705b266def50b62636546b96a87ff666b1d5aec3e52679d4ccdd5c9b0dd50a7d916bada24eb6bc0ad94b9ffc986a4899303fb95107a90313fcc3fc0374e0c53c8160567f577402515624d84b15a9b4f18625c7d732aed4c64ad4766945155657b93a81283172850ea5417bf877e5eb95d739079377913529657dca52c756779876954f864b7251a255dc58b723b5fdea551aa299ebb8af0bdc2f9ef1b78cb42401ba62fc1992c5ab95e6288b584bcca263912c25a72a69a3d895aafafb38904a7ea64983637773dac77f0752909161833d3185c5d2824319aed09b0d27eac30bf5ab3849cc9041c7c8bc92e0c0b3bd657e2074963f79a4ccc42ec823c8b0d302d85371c4e928e5cc9d11d0889834622041bc971ac40e00871b27cf052647fab656401782a0685a800850100526cef363fd550cc491225e4c4a0ee319afd39ff2e2b581f728cff590a5a60dd5e4000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 51256f7e688d03d9c716d923b01f95c6266ec20da79ba4dec7268f51319e8bf0b37db4c07ebca73a80a06c25458e7861dab9e675c67ca9ab940dabb117a7e2426a7a81be3dc6ceddd27f073c2daafdb9162b4409ba741c6f16ac6892d7d8b06972d39f22e38c6f2cbec7f0506a5f86c5fc708a1d9a36391019c6ed9281c986103b6099f87ac956b59cad12f69db134f05d9f8f641678da42b276e754a31a77db16b5e85110235c4a4dd8ad1f6be34527d01115b072b82e007abb4e8bfbef65919c4309b8417c4bcfab963ee1110614e57b85195359f48c5c471e24fe3609a5314b5854b695efe31aab0a07d29ec29a8030c2a7a005e3d7ce06a23bd240feeefe6320b7c994fec0134bcd88b2fb91ec37b0ad802e45003049024133f90ccf375abafc7e742542576b026f71dd8f00e8f790178de9912fa850d6c24830354c4927d711a3314bb389fd01341c270eb1cf2626bc19042955196358421c559a107d4274c9bfe232328e9571192f2209035c425224a240f6a9b3dde07b6fbd18eccbcd7b00a6904a801b0ee93011644d64d0c3d58c0f9699af2d4e7f9578aabeaddbf8257e41c2512a5e566577ebe94699e00953126ce91674a772108a433c82b05524c1ac742ae513087f69e67543b93f03f8bec5e5d8dff5251f4bb4d17e721fdd7b9f6c06121eb53bc06a730d482aeff1b09cb6824eb52838d85af90a685e4178e76441ffbe7aa6fcc3126fde29193aaa25cc850cc0e8df7c9699584fedc15ed5e0e7d49f89efb61ae381e3adefe8eae1c6d6f71ecdb418ea36a357f20ebb4faea2ec2826b756daf9a4655102064d036e745932fc63a0fcba1d0ffb99815d03dcaeb5c156f4229ae0b07375cc4d8a9cd22a583c16114aa613dc38ebdb8c06721d32a6293aea51dd7d31ed3a101ff727a938bc70d78f08e3847145c02f4f0f8635be2bdd8958c4265bb27fe915a9206e70e9cf9979f9b47823708102ac1cf12863ac7dad149134824d3f23a621446ad907549b082ab099815e1fff844959bda476ef642299652f2bc801a26b9d4e5c212cbc1c1f23f23aa334300cbb73bcb9d43344cc9b6bc2aeacbf90fafefcd483b791fc3e310643f910de193c788c702f359cf97ca07341dd6f088db0c435bb300f23d90ad23264f9c394d56bdccc23665ca8f802e2907d08e7c825dac31520282c1713701ca29a3175157d7060bb9244f4a54ce1ec2b736e73aed3ff4dfe979e89e241b578197a0a8f37f0d811f429b5b1246ac2205b657e7ea051890bd62ab11c34e1373e8e48d449ffe08dc36e978e4b0530411d9249cbd5e38182e9a7922ab0e51f7feed86201fffd39af6dba54d3129a7ec700145f819499d4bc2d95a47e09e3429a5803f0b2f35d9467671336e3289eeea89d233f9c2a3562e277a81af46d00417106b1d7257b1ebc20cbf7c09f8a5c4f035a314be27fed58571d77ed229662c946b233feebab9e14891fe6e8295c945502c114e6f2117de50fbf7c116e5e151b12aafa3432a2532f66301292ee764cd9dc76fe93dc395c110d400e8d337541e94ea1afda991ac7309de1149dc78ac843317fb95eef99e72df29a0a88f788eab75ea8ad1dd0c2b1d0ac644cf180d022ea8e0b7d7ca12f65d0c1647b2267b971ae1a7d45b3f5c6ae5b5c239bf3b59260005f24cca25a883245d714ffd87e357d987a49ed565ea729b0c9424aa4116eae2e8ebd62c69fe7efe6dee622d83d620ab2a53b24c82ba9aa0406a9be7139092cf97db8fb4c5647bc14e3b3890d482960c7e8b0422e4757feaf66426985d07a0cc39f51faf3269fbf2d8db382cc35f5845e7dd13df13455f4b3ffde636acd70c60e3f3a814173ae1167a69d7af59d61ef0bb800a371e79b60681c20882fe80fd3e6f5cc21b03b0b70686e8b62e5efa48f46b48e349f20b3f0b4212e8eb1d7b2120c0a0fb8f11852dbd144ad22c549914ae1aeeb990a317a6c942ddd07b023352cbd33209326a6ce4d751988a4c7ceb6e7f718df7e9edf6e2b2675429798b013d321da1f0e0c2f50b2db93d9d451209b4411dd6eae8b74a63342785dd492103e9ada05d797ee2027c9ed0837a0f4e9175b6b508cedfc44e00c944a771e40fe4de1e609965a08e2434a4ff5ea969a43274105b631375c4e3b38a7f40c26f4aa202771ae2a9179141ef005aa18a64d6e97ecc1270be6cbb9d5bcbed815b983ff8c2c99 +shared_secret: f1b9f6c6304614a31639f9e63a019e699257c5e60ecd5cc9fc950355e0981772 + +# Rho leads to non invertable matrix +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = 54c26e3a0776f2db61ae55ca140c1056156469333834633d88c59aa9207774343fb3c0bec2aa0c60f25a1761337e9c3823a3965028951e114003dc86e1cb701b3112ea048672e5be40c6b319d88d62731a02290ed9d7429b71afa05964a5f775b855a271759945532eee7a1e49c1518d0b3466d2c5513bc84a69a0770b8f506c5203336691a8189ff8672efc68163b895d7a77b4a50668ca1ebc4bb703756e15605ea9e9c7dbd398aed773040ab89639aa4d005638a839a1e47e113564a33889d72682794cc68304d0a21858def7c8e5d20cce503909bb2064b7775db64c8a87a9e3ec79580a4493a0a845db33afbac74880888dd3070dab2ace759f777c03d0194d23a3b655713932570fb3686eebe97747713050868f72f6537b1b1e80e0a84d24c4a9a888f5b7c3bfd9380362ab98806812d07403463c9438069eebc541e8a8afcb93a18285d0f1a319e2768cf1427123ab458a71f3a44002b93cb84b72856a6688b99be6f2c764f81af231c87b7bbb1f3002705ac905f9be3d4aa584b98927902261f2c8bca677a2a77e8821a1afbc2b227603a75c1bc98aaefcb22fca6908ca2a8b28c813702c64c8fcca8af5c29e3893a1d696e3609312e0286c47bfbd2a562692a8fa28b17865aca8a7b00bc1356c489c4a9c11781c5f465c7c547b1cc464b5e56a84fe104501399a5ddc47c8b3ab0914584bb54f3c7107dbf0a3b8404e35fa22f3474aaf6b24ab562d65654e3889723c201d68f0ca9074769c15613319beb2449b4c2cac246b4f4687b09205c239fa839314a1d90a71c0aa9c74423873b08904a263adf2101b02aa222c2d06e42819094a60fcceba022dd9f50dbf00a96a76528785830fe453d539c2f61b0c999cb90a2bbd3db831cccb813ff1a7a70ace99976bf4308e2894cb4232441c0a094dc78334e2be9e6a830eb9c6458887217a1e6a7cc679838ea84b41e5b45066b32c69731ecbcc4d73f68f964958fcfa6a64b8b05171be99a78c31340486174566f4bd108433dde695762328f0570fda1cb79d60c67b510b7b34b0c341ab8cf8bb70146e0cb2036799368ee78b330a9288625c366b0b0d9a1eadf917b2f7159f25c31d34b422ca5d70d93de8e31b7a6736677c93952807314a2e58b685fd926b4555146ba41bc4f223b42821bdb22a99527699a7c85eb52288a3a4c56296bf20c2be811830fa689633887b8512723c598d8b1f9e88671fe77d9ae923f1b85973eb6ccd7cb5ee15b34022ce5078ce171837472101bde6915c97150b3b712f05435cf975b24b51e2395ad667c7f38a8fb3abae833a939b1a86f4545b3b55119c10a19983b089276ed7ba25c910a726ea3ba02344d33cc666a280bdcc2f99e3991d2491861c3b295668cc0a5c465b1e00c2be482a57b9c4475b3c11d9850e6684768091480e4a1dd0d71e88c17456ca0049d209d1e1a92ba4331dfa7382e2852c98390d4393f4016a98d59ecbb829a0f4b7261b12ce796844458fd393ac69f050317b66f7208afef2113e682552e81d99b3bd8bd30648b1a0bb153864bb7293233230f0b164c1a60d834c2a4a41bca495b57c02113281cf484937745b4ee90a55662860306df33368d7f2390c2b600b0a0314d1741c1a1cfb0940b39070fc1001142a27ff752ba7fc83e296cf62bb76f8a3b06359705ef1759702ae9623b6d365344ba2578ff4c00a4cb48db88e9c5acc8cfc033210857abbcd6132140eb372b9c3c1b69c9fed366efb33b518f99c23d7bceca7cb6b427623286f14b55b6fac869e8a229bc342c96727917a94bf29549c145fe9d95d35e518aa5776ca3678460a49bcf22035d981a4217b6044af11c9710a26466be948f177820d26957573b1575a09c3a87a13552f16234db5152dd2fbc764c88525e3226e2b5ff5571890db75458363bd8791dbca67ae112858908a4ebb7d0d847ecb610541c0791ac73f2432775207a73544491b7a5c03199ce3010a05f764a09cb9afa27023f72d9bb0b3252673ab714b792a35a78b0cc1593f4c5582406b4d44f6c67fb06972fc7a30e937d8c7964359376d896e9d54c05eb6864e583539a348e6d3abc256ad6443013926831513896cb5636aa1062f95bdf5b0acdb49a72581b6d9369c02234ab3dc5e3b4419f27318ecc3c7dcc60ce888b787a3458c342cad1c000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 6d7218616fcb7c0a8a0ebbc738afeb35b63c00897f8557500d34dc984338ba4d4e9a4228063774f6b19d60e68d67f14a63a0777c4af4b9a0387c8165f368cfc8d603ed70f6df210e9f540cf9d240006bbabe17821d46700b8fc755c5074d4e558d80230b50c298b4a813f6652f6ac92427c168bfc6b63df821d1566b56dcbc48e96e6e9de8c011a3f94e8cb3b11e9928a125b2acdcc5323da857ffc0211dfaa59653a14b408635bf1d1a1ac1f614a6946c98d9ef55e8d5f6c66b980241a0f65c14e5e6fc1c116ae9af9961a7afe535332c5f922f49521672e84d5e28974f8df7e77e7e07e4931f827d94c7576dc16b6f8e0409d4eed15ca747112ea1c9c16602799dc37f31a438f7809db67ec184fbeaf917a72e8ce7d0b68c4eb69b3e4285f0dc3d5494b6ad0e6c9649b75f58808b8cc54258837eda14de7e2f900e8dce47e35df2b529409ab78952779a1006f81e32726d9a6d5a83e541ddb249054956c3a0ab4520b4315b8cae764e42c97af4876ece118e0392b6063a8b38c89dbf8c4e1f7de17aaffdcc9ae30bc71ab4b25b26e0a2526ecce67cae66c6eff9b9a11e8bcaffa5cfb21cd5c576275b5603a852aa08ff1382cb047b1bd6519a6fb1e505fa4fdd06338bc9567d78cf1deae827587006e220777b34fad307a61e955673bb539abeab976bfb545c3e002d5af5581819aa9c932bd2ae210ca29dbdeb33269439f1553f86d44287726d74690e279aebaa526653bc24ee5a94fe70a83c46378d4b2aea5f4da0ac4ce75aa7d21072746a7bd5a4aac231c977e9365488410ed78cc357c9cf36c71c8608b2e233e37ae1f169b15b9b5d5de5c225b60c3ea32eca29501da353218b593c6793829f38a852ee3c575e468734733f8d87f677b5e425a2f96553d554dc52a8ca96b1d711406e04b2d12c0f089ac1001b00e3ab5ca951091876813a1a7fcf4fae9859991f8abcf40bd2430326a0f0ee7582a19416bce4a95f486b146283641091135c7d71e89ae8f44daebd43c7d179be2db238ee7f7723ae782eb4d0da34d35dcb4b8831617f1c82b10dbc8682beb97d0c58d4fafc5fbb8720cfc7718df0883473867433bf7a851a225d60c9e76dd7a7efecd15534dd0e3d14d64f86c4d9a696c61dc520fb79c2c8cb081e72aee2119a3ef76c4f49e9616ef6a85f9b779f99177e0ef427d9a6ba6465f230e63d9700855065b4eeb5ef471698ead0dcf7a55fb1ea54073bdd1d67dea4de22469c317984f21fc421171fea81ac872c779c62bd4e4e8f1ba4faee4e701458a2e21222e9b45b3ba2789d1ddc34bd48f16ef6e4625b1a73aef185f62c73b79dfd40ae3d6d838484b3d9a6825a2a4b9870d87fac0a4b2c8af548b47766e3c92f7821484c406b74bc4b4b88c4d7ac536767fa72dbe413e5ee4ff8d4ca83cef9de71590e02d07d9e830ed7f315d542ccd1d0820374c19967f2ec7b73089a4438e5a94c6580d689bd9cc25bd900c275ce9aa450a5d13fa143e2ed6d2bffd5a1ed96e4c1073ed92f48d575cceadfcde1f0a82941dcf4daaa5399b3775469dc75f150ab41b446e2e3e17cb8c89b54be85dfdfaf1769d022332c3f819536ab3abd1d89f9de0b25399ef5872130255cb0572da109496b44c5abc4b8fc5ce2a9515ba12c38c4e6ee83f4d447badfbf5842757aab335b62c89665a1c42f829a40ca8c470bf79c65e29ab71358063594e21af5bfb2f6b53d2c55a2a1f05652ec8773b437d68ba897c035b781b266b90ae3addcd603febb3f0ad2afa0904cac6b9c04ecfc1547bbb0278c024dfea4c7ec8df54d24c4b7e9f614cd8ad0307cccbf298092ef27add01be5f4631d4e1d7afa0d8bc34d0dfd4922abaf5952062bf86916831d2864404d565ec557ba7753480ada5eecd37e21808cb7e92bdd34b7bdbcc0c93f39e9a4f515ba7bd6071c2b9c7d513b98802111c2ac67bf004f211e4daa201ab61bcf174dd83aa5d98ea1b55b19391ec50b299a56899f51cd476021fba5f5f997a0103049a71cb20da170d38bdec4964acff514b0c4fc77c90e8ae331099f6863b551bb980ae547fa41c12c31c324765bdb09f6d9eb734708b6c0eddba22154b3dce0acf3210ffa58fda8ff718f949da8eb7c7fa4a67775834c1fc9e74c5f7f765920f2647572e9158f6bac6e1240850decbc4772cbf54ac754af22d16ab0abcc3ed51bed9af0a936b82158c310ac457d5c +shared_secret: f72431bd4d76ce666c68f35918a601983e117a666e5009b4802e904d0b32d9e1 + +# Rho leads to non invertable matrix +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = f4e8aa57f60972f4421bfa448cb92525f41ade71a35261551547b97eaac35ec9607a061483874b19714ca7f443abf4bd34d2729891383cc0a52006a4bffa743cd910d4927fbf792c20e07e9228b56247c2440a3eacc0c231ec949ee7809ae4aa00c46a56aba6db5218c588bc9285261b278b1efc62e52556b130a61659cf09648b57c79647b54ee9658913caa76eeb5c8a6b6eab8a7cf9f2707dd4195fb3939e91bdc5856372b5cd571983c9709c1d854ffa56cdaa34b3c2a51bd0d304570a591f45c2f1e4cc35fb5a00923d71a5acce485b210b39de54a8adf82fd8682fac45430ad513aca5022611038769b29c1a3f3ad751eaf5b058370927e36049d1b0970650db914249d7a2997446e1b746f47b5fe6057bd55801c8c0af94857776d0b60be8a66f46440ba766046a1e08948944525e6d078f1177a60fa3acc2832121c7a428d5cb3ce316a986118d006ad5aa7e54c4c5ab5492e894b484e594b14b8f65752da0239c6a0784e415bcdee96ca0546f81368d8899bf7c372789f62a3182bfc990c9da414e0ff346a4c1025ee1bbbfe99099fa29cb5b744d860e6630c132e521a65a2e00d1561c98afbd434be0f92da317c89926a87dd674afdc8baaf99661c9572ab800e14280b3b08f5df826dcc051a647b96009159ca26f5aa2ccb770b8636b432b564b4183a50ee32a80318c646c7b29d083c718c27ed989535861c385bbaa44b836dbbe49432f63b29bf66923dde69c6d742aa2fb28524abd22433ceb87a4eea71a4180a370305173a8a597aa00bb364bfc167461e33cf4e764d4437e5ea445b7334a31db333fc2b3754bbfa6bab6bec208d68274a4103d16f9069a9c9f6b0901c2281112bca50b475b4d6cb612ecaacf8827b55b6fa8c1821a8a9f602c66cb719c97337c4364450ec2a8ca6b01fcf2420e0b0d27c0bd82a721c74bbe62c5ceeeb906d555ca90fc12450bd0522ca52f4598f3701a50710fa2e53561562e8cfc58f4596cb9c8b8df540fff63359b24b1cfba7ad559a583b04626d03bca5247be964b457bc71e324ffdb758ebbc695b919517e045f6e1162c333c30526bdda31e5f4a6eacab3d97c27025f32e695703bbe7ccc18a87b8e347b7c678f2607e24c888b85454fc738ee0a74720ba03a7651d84c4223b32277b5231bdd1b4e61361a451420891c1a0dba6fc4508119237fe113aa087772659b64c122382bc9aec39bfd2b2a88b32199d38728ca98b259b85df75ca4ee5a671130ac11ccfe19a1fa34954387035c8721e2bec713e635290eaa70660b5b79660334a5d56544aeed1044d6a3f0b88a1c900cc362151a3e0b46cf5a64a5bc38578bad6d0c467028df742be58c3c4c0096c20ac9f5799aeff295f3939ce61a92148ea2313195525cb3da93b30698ab893964d23e72eba952f058c2f74a00081814497a0306a51aee0ac1cfef00b7accad91448f49c8530ecbca5c5cafd66b1b03515a5d6a0ff5a10eceb67493506c8a514b72babd2036674d1a493b598a2850342a52a163226f07568c846a4bf35c502255b9ef4c95c87aa6088226a8033af1f6bd93e642fa8a5ae1263de5e53de8b419ae066ac3d28f159613cc63a163a41b95589249f0747c6a179ac9830cb5c14bc88efa708100aa7a5d2c7fedf0c550a5097f764d948a9e4e821a4c64a125d9c54677848b806debfc2cc5b9c8187b52cff197341904cb21b9061acc7c12aafab320e2f468244852c3720a0ec554d1219561e954752495c423635b92975ce327c18c346b026753a60c5159a33c584a2d297a499a294ef9c1c8b5081f859443f53625d6113ba1a90db33d7b5a32fe399eb0e84e0804adb0e29f4f063892484110121fc6c618a0235a22014dad868ccc55875c37af10062fc8a029a0c458dd80578680757194a75c4350de14100c73c40b616becf89637508074baab38acc741139b31d70bf0568ed5302f3e356dffa01f6da50011313b78016134e4cc15e65206f1ba865180d3f7736076c682566defe87bd676bdd149c76c136d549049990b482860a36e321426e79ecdf4c9d4b0b4953073fd8472268929b8694f07bb7c20f2900db8055893607428b1586c65b4ec7e195a431249a9d1480400d0825c4a655e257ca20175ca47ce081938e724c138592946f344d9eba69db96899f5afc8ec000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: c22bae19c43331e5c52e16ee59188c1fff71f15af20de57409add7604fe7c7a9426ed876726ffeb416a2bc7c698584155935d02338aae28a12625d39b8410b232da09e83c1c5e4b12cdf2a6c540575f232d5e5bbabfc299b9e36f3cd658dc38873fb3d5e9b3c8c292e28b7367299a12dab435bf2eff2602643e13cfaaaf96be846785b3b712a1f7de9f3fc1c340f32d069ead5b68ae6adb183c5d7589bec7e2eb96715ed3f15a336c63b3955fd6329281d069a041a76e7d4bf6d758dab0f5eeb27e74a318c1dcb3a645155c62c5d7710bf019fb0667d88da8d41a226bd45e4b6015166631fcc9f559d405145d49291123baa069febc3b720c2edd2dfbc29145c6665b0a4bd75e95d8118ab1367175464fb7a9a6cdc0aa7818466721f44e6622b40fbbc18947652a1940f885d3977f9a177caa17634bcc528d71ea678b387284f9a33f549052c331ec81398dc9f15bc3f3eff791d31f80324e21e86317e1ceff20791c8c8bd590d8ad3f64b3efdf432efc0e374506697728c84711f84b0f1c1c386f8607a20cfe3177029824df54caff1c525f3b1f8780490439a53a3b0daec32289201c81e4358f8549bf9ddcf2b2991dbc54ee9bb3ec0f7344100ab900a48d0a350546953a52a42d108de591cda14cf5471fc38ca8babad6693b518fc8774f351bb29ea8da5e2eb05f3190a97cb819ef91927e6f1288872a8179a99b0c071c429c5dcc8250d5e9c5afa505666d8b95712605cf9fa557c6c26c574f8fede993ca03ecabaa144911468f8eb0549a5c0f9b7aeeb94ee26d097d6b7bb76360d4d5091feff29843f256507f4bd743a5d2a50cfb0d0d439197802a44f53e74bef67695bd08f242f51d842ecb3c24a05788c75315a54e1f7035b86171b3258dbf49427cc2b871b3664babdd7db14f4d9baae20171ca7798594819f5e2ffb31c2589c169dacfd15b4c890441f0f87a8e503c2135037eb62988aa1fa610c6ceea56ae48017b8a9ad2ff5a86bd1a9d17e5e9a82fee0fa21b7722535b2eeee10573f9dee78d7b6667484f09c8353e6099c09ffab08994d2a6a20344de0c359e8adf05732fd6862a978ad9614986a2ad87cbd87015b2925d6a23a9f02f27fc7507f852cb06539e00ac560461154005a9ac3dc5ffd521abf8d584a1df85cfd64922e0d1e9e4fc731b0728a50c02e184e404b3c5e4fb8fad63a460e45370211bf60e7737df85b373fbee014b11706c9d8b09b1433a96ce62c5c0c08c484cf8be95b7426fcf4878a4eb15e668786af45712c82849f9146a2ecc3380bb473a0d619dd0295401ff9d1f57f2fd5a84bff5fa6e1786466b60169c1ed7e4083cf1816e116e8d0bae7ad6bbfab7625a47eb6d20fc1fb2b91c84adc23c6c14cae79f4fc3f3ca90c3c15315720fbd15d1a70298cae1b6b03dff6a1afaec2018016616dd7c890066e1a36562e55773f8c5fd22ad1f4f1b2fae4e8ceef92c681fb40cc279edc2a834eecb1e49efed02766b9547bd679634940f247eec42b790afc45a77f5e4f6fafa9eb1323fa73fd40727ffb6998cc5c8ceed32252e5c26e57290f336f5831689d54b8797de208f0ca2c75bb6d7f9dbca88946c1192fcc99fbf906c592090d3cd183eccf714c52c39f63cce1044a7e15cd574aca2cc7d6a76a56e945f108d53c51fe67e8212abb7849e7df5ced062bab608b445ffd9422e608ce096791a1cfd3f2b2f61d4e5c800e33fa3a8a38114cfa02385833d435551f2cdd5fadd3afb949437f0c19d7566a5659770441c7dc09768782f574caf781855621099d7602a6eb1935317d25dfc813d12cdabc3897d0493b88ab2eda981c407e0bc4a62f6d18c96bc497c6c9bbb5401b77a77413f154fcd309eb6c4b711e41ea4ec1c7e2f4c503086be4d96394d5b420a813cdb5798b00831139eb57678b790a90aa731ecacaefcff840e0d721dddbe5cc1c3deb03620615f79760b92384fea781c8971820f9636d776bb2c32d596104fb30e0295769acfc39a3101db88a4b5b38a75e9ca10f4071660ae869063cccb409fe921dc1596a517391184894b45a561621eb7c1184f5e69051845eed47021da5073e078e0f872566cff985ed3b866f273b80ef57d88cc1e2f91b72c69b1c1a766b4f8db2e8ec653a618f046fda32cee1f06a6e8b5895b578b3989a4e86dcff4cda1d0b573ec52b0b53dcb1024ba58d10253330fe3fb7c19c6bf30d +shared_secret: 0b6ec01df36ce91c82f78ed1b85ab731581e50597253c08745f0f2891a97f942 + +# Rho leads to non invertable matrix +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = 1cfa5addb505d4b3155f44c292f958f02c32de979b3b042f85ac3354fa3190993040a01ad5450680026d7e17a0732a54c09329373009a1c3087e8c892ac0aac4793fff2b98cb96a3d0671f998749d716a78c4cb6738879d76307a3a35738a886606a236c92accbc09ac502c03b41ba0a768edf06a2c6162467581eba5083fce8488414068ba06158a9128ff5361ebc06fbd492d69c185d0b5568c1973bcc1604a4c0916a1c03aa9e82c98cb3f107ebf239ab50213db93136013dc11c44f2e55871c7bc34fc76a4383477410f73902f57d229e6851aa182880e767e1386082fc77f20c7a3fad8677f9ac611dc40494ca66917a6a227b9e6e71a325a3a4925640ae59c96d9bc33c919be595aea76a47bd64fc291948d51409d99008073b2f3356a040cb8a27706eb5ac08d8aa71c716f4f9420b5974078f235bca67f2c8161319824eeb892e56a3b7097068be52eea909805863057f1163b1bbfe98b1963e83e1edcc65e88411836a6735b50f8256d54dc11fceb52ea771930a3987a85b2a73a6e36fc946a3716277943aa935953141c167a8fba5545089345ce8a8682672ae718c87dd63511f81ef1185db0c173159928722202b0b161f5b3a1224766ea1264166c2bc83229fe273824014adb8c6630cc3fc8b19e4bbabf24bc9bc3c3adc5e3774c11a134eb1cf491550c9cac68ec89e281b88709ca688597679a2ed6f73160fcbb0b9cc696da6060864c2e0108cf225323129af8958cb5436604ac0e184a68d22110afc91384cc7735d546e6db898e163cdc62a3e8dc4c20652a947396d5973ff8f0b1141bb361530011604f8f85b911302064c69493529869c5284ecb64bbf00612b259b859717f89bad2bb71be41781fc011cd26c93c7028ea35389817bcfa09b727c66f86ec9497ec90dc0a89402611b71ca6a513cd4e568cb02a7f9ab84135f7c1b43aca898780d150636af51b8e78c754067f872438ac7a6270fa9ba3ac47dfd13de72202740ca297f284acd317282733f652ccfb805d628887b1ac6b22fc0ee4748995a685a151aef80cacfa6497f23156805269bc346eab122cc8a16883fb42ebc19dc2c81065a773444617d0fc0cd150c3afda64aac933823864197cc28a672893f926b562cfdfdb7fa62bcab40157f26b0dc0fc805de81719759c9af0abbb998559759b35a58daabb243fc2477caa289fd194c171be2ae5b66b84ca5c480be10887948aaf86149c5f47b137eb3d2a6ba5738c1ed6688ee6eb7a3c8bb022d19165964ffb2746c5e81b39ab7e6f5b3ad8c65b0bb3b7315484cfb62a96f76cdbd715beb261574bad950660f1f155d6a62d29449cafc43e9b0a4b7a747aa65a825b26282a164976d557fa8a135ee58e9cb1bc0e8bb38e7b931e528c7e6a2139b2061d605909375934fb3fd7273cdd7ab28d17b892102149f6cdfad1772f0b18ecfbb9c2583568551bfb33a1eb0cb91cd5609db35379f71a88e1035d875942d646783a8f11e4314d6c97934595165b23df05c1ab8bcf51783b81f435c4c74d652b44e077c7685908abe138755763974367f0ac2a63f5cac37039ad7919d3c98e88f89397a401d7ea1b06c08a717b582238191f17b9ecc1782976ba3737526e4bc152d86f3d4407549a079fb15dee5232f01a05300a72c073be6147053d712887fa909aa787c401b7b08c1e8395809876bd6d423c3e489e152696c12603f0d27ec9e4caed1bb9563a19547400efe30502d99430bb378ec397dab2a553330a34243839876b5ed532fd469a7df044ffe90354205303009cf7f252dd6b0aecba8da45a8c683413577c787ec8ace7d17a277561a7f271283895b380cd294974520556e072a7ada4024a2842e3f20c38cc5da139a1cc496fa583a1b1410a15038002f1a17352972347ca22215739d53b27e53dca17cbd2bc616a804d314373cfcc1d72c0736fcc3f041455443c443e72875f968d095b18a7f111c1ccbbc0c1a5d8485fb207223057b8d4b754076a919f96cab4db533e2c48dc134c190b478fe6635d053c476959ee4b7ff2754bb4e7c8b9675791d1a84845491902c7cc99a300d4a1196a9f43c816d7013794e1b3402622afd8ba997cb9aab2ca302b8f3af098dbc62d44bb3c9e35871554c6d30840ab3c7127a030e19b4c1e382228b5bf481b0759fbf1adff000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 6e78c7085b62594c22b881c61e63674892e8b15be6b3137030cf91834ac0126295c6893f0c386b7670821cbbcafac5d4211cfad5c1f75deb8e7df047b950fa504c189fcef6806e16c7a447187a7877ff91d5aa1f89d9f4c2f8c726dd7cbc688e247c929117e01c8cf93e62440ac3f9affd27ecfd76d525dde13ec8b3a6686e25cea8e46fdb3a264b4e1692bcb1cbfbf6e750a1faf99d8864c1a9beabe0d436b7ec5566c92be999b165ff4f30d6ba43347c326edf4a41ecf2d35cb825bafe62184cfc28b30419f509b631f9affdca2b3b78771fdfb006f5b6cca6d0f5522308543b4a1fc65463d8b0ef14fb3fdc160178692d598e59d71110447fec3d02a58556bd1d17d212bd09d4dcda359fc4ee60dd2f0c73db72ee684a28b550f6b17e7dc8e2bd1867076222033023851676c0a55956e14f2c67874217e5349918243011ace52437a127c1a743a52c7c6fd8a0a007d5d020ec1bfb9f98b0ae36561eadbb5e23b7202d909c7d5fad270542c2e57dd0a54fe7179050b7ca81d72fc8c4f07f45fb2ac905e209a3ced970bcf5334daf441a0ea8f250d41be94cc33d96a42a067654f43047cc500214d0a54920f61728b6e95a014926f03faa1b27f6f5cb4397347dd0744c09ad92608ed7cbc0bae29092d6846fbe0fa14a38529e00c165a7ba098c16e532d43a8e4bff1490c45e0a33bc02738b4a1958cebeb39fd30ed7026b3a015863c2e4a2ca00635475678132e7fc114fc8e891711241942b787384ee22352b2811cfe1a22fb7e8f2e173df93e59cfc98a677a136ec29bbd47bc66070a7a8fa3a709aed2123ce55bf27ff2d23eb87b9762659d16ced5e24b7e825e0b4c2e8a6b6cd1596e4fafc06c9e90a8f0137ad182662f54288da8b590d42c6fbf9bb14cc8f23fff1abcc5885ecccb580d93846b2ebec01bd528547765fa2c231dc1b5ec3b3263617d136a102f6e02458444b158162b80e9acd39ce90db232582ecfd679029c6ed4d5a17f28b4ef2a120455b5933b51d3751728ad07e9d1ae3dc52d690d5838cbfc8c8d5bd7284dca1b753be3cc485aff60a120eff28891e902af0ec3358785a0ac87f99f18f268d73c05ba725de2cbc82d2918f1694c3f6c813d02f341c9f40a7c75bcc5984d5ecc1cc308eb16a9c1971d4f8e6a8d5ba59e855656543c0c7e5b7e49a360bc31c9411da0642bb815703bb64fb550f19fbb0bb993453ab8f15ca9ebddae7ef5acf2910f130f95fe1e4ca602f7e09d605a4dddacdd3cf5c2830a7bd1fafa1d63f7cf4ad511303ce42fb6348397df469a813c822527b933747f8f419177caad0787b63570cdb807a35a190a46f2150fd19c18db91c9435908d79449b23430c1d26a7354b6b9d1d21f31d160e767681580c770bb264dcc24567e88a8bc6512831fba35cf6aa4fcac1040b200df1c60b88a3d7e1550f0a27e8232dd88a9c751624198f811ddbf1c2a833c58b91bab501e7cfccb5374c21482808be44877ed51389234f3bda65c44ab5781da9ee3269a0cd4a3f13f50ec1445c859fc164774cac725a3b561bd63a97170823fdc07bd6ecb46bcfcd76384e7baa0ec3c1f4c89215e26b580962502a4c06aa26068c041ff1354ee9ec07da71b163901784ef525c65bd00c403a9445ade4b0bddfc30e04d278b4873dbd1f18f4587cedf870d958b16be02ecdf3a5cc435b49e0e56775521579530013aea6a081aed4a5774bf72918526eb290a5bc1ef3f0ed9440863c1133a70b1481d46b6f0adb352b3cd4e50bba138570b8e5617e3a10b6382970ace312b95d87f5e8a6baea10d2ea19546acb5fcbac0d20e964b7c0bd0d1825d3955971bd657c316710066d81ccc421c786f7d21df4e748b47111732f1851dc992322d5b50cfcb66321b46588b39184c503666435d620eb03a3535b9611e7aac801e9cf90ecf7671f70eeec6103d6e00a2ca5a6a8424e645d4fa89b058b5f77441437e40bba596d705ba522fae5fb1240d9f9e25c9bcae741b514b9ff33d0132db5f06a73964f05dce8b41a568413bd7f4fc78a4c7dbd2f5815f3dff8f25b2e82a508f5f2fb02087bd23927707bc729574777e01ed0c93557867956d8493c1cd9dc86ef3c1e48986be905101578c8e7a11ea96709929e5dbb1560bd4d9f9acb7957355e09fad7c97712e890234b335fd950e25cf59a4ccc6cd461e6ffbbc43026faa7dcc6df33a8bc5f1dae7e5 +shared_secret: 8918cd0c3eabdb8267e24b79272ab6b67c9ea6418cab15e2e3070f6c747b4dc4 + +# Rho leads to a matrix with unusally large entries +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 9d76798256925e67ccd5ccac6d69a85343825b6a20793095e1a29d1b526e183611bad90cf6440bd3e79f847c6b912aa1919a9e7d9357b414cfccb206180067469b294b2c4233960a40e17800ab0ce483c40b653392488df837689fd72da0daae74575da747527b2a116984b2adccba04000ab72402f09c749341be42c79a5c8198488124fe750f66b82cf272826747c68a946d2629a48ce0a777b4a9673ba9c3a2a402305506f4b65b65b327e62de16c696bca3d0b8ca44013cc88d9444a83549af17a3f8270565359b168ca721027479a6e60a28f11b33d88da4faa084b576ba5bea09c2fa8a68c0aa8a309c96119aa52443bae570abbd942d193cc8ccab6e5643d0e362049f1ad00f98d173849afb1248ee2a67873950ec849e9b7042b94222b60bd50720b94d7317053cc86758cfc0bae9c9856c0c4411e74730fb65d8b7b838426123bf68b9804473469c6d8717dff450fcfa208b8f53e2cd8987919a5defbcda5a422ed82b495c67b46264106a613ec138097f05a2f2c5efc2076b9e2475ee162a5e7242cea1598088f8146bc8ea65909723fb7a60b1db157a4f43158457d2d157a1f980925a396401450b670728b2c7ca3aba3e7d4b4fd34b24caa87d45846bc2104e95a1d9a5676b734736fb00f7b3241160c2299b50e5517bd4faa859b79c8590c4322115a7c724f0767c056620bd006c01b5b87d80091bc483e5d341d14149095045d0648acabb46053e78c84045a9606bf82f6124fa9a8a9104ebaa734e3720eb6921553e353e66152f2e96adf34534a06aeeb677fc4f901bea148d28411f1f856b4d2cd261526e3a8139788796690413a50251dc1763703a42ee708f932cdeb9b7ecfb2c7d99002bb93cc248a133b9a4c8e910a045669ef5bc75113ce12f7963d665d6662246d383767f74317dbaaa3d0b855bb0274815442f0b66821cda6aab15672192d20c6aa8537432699ca8a22392a855323ad70f75979b56b392c29caf9c072885710c33967120aeef0bcfca1293df8181ce50dae21577701b1fa216dadf19fee4c35e0d435ffc83de3f92c2b276461b66398c75c98d92628b32a2ac3b571853c4a142bd5e81a8770c9d9359c91ac41aa2b4b063a9bcaf4592cb6626c213bc89c6eee3b75c59a21d6d748825b336f4052c6bb79f4ea13f51b672d1abb32887f1977505a75c13f0b66db14b56956050550ab0d85a814640dd3a36a825682c9cc6d6f13cf132780f5fcce87355007f9021ab5a5a3a69369c7876a5158654bc9f9400a1de60e71e34a370372f24cbc84166ee68b6433b6911a76bd78fa249e850bab6aa96ad820e0dcb438fbcfd9ea81f5f3c0d5d53653ba288815029202807aebb27402660e4b3cdb609bb7145dbc055fa146466b121e673359a8465073d99b63e799cafca95733938dfc2ad7d6007a36a8da027ad396618f1647b1287094737fe518b779f238b1ec0c9351b3c408b8f66b27f5262693826b24842a9153a9d205a7593665fc172c7c835354daaf90574686a8ca7fe5824ab94f29d6a5ac87cc40b999e5e7ade2744e1fe7048e38c804472579d93309986c28962b06e80d0952ab10d1cf1d945b99432ef5074dea9c6f4ed97959fc904e23a3834cc30de35f5350656d027a1e6620925a6840a337d14a82dd524c2077302fd6b72e97a959001d3d81768ccb7937f4aa07f00eef0aaeca877999e5598d30a81e920e2e8489970a31fdeb7d921474500835a01530e0177a44852cba38c3b0c297a0c5bc73db986d24cb0b323402d5355b543468f948976284dbcaa1c87c8b27cc62ce2b8306da3a5e08b0991403e7b0381adb0c897c7a994997a69ac1f5092f8edc480e77a82ae9bdedc724883b5eb3da56648979fd2337fb42aed861859aa6165a800d4c9b964e70195927359378073a84b80219613873a164324a04144c4a5b551937c23ac75e3a664a773966b512a01f3a7a60ec1ee06a068933a8ab0844511488f058b2c5bbc1c8dc07e32b267aeac8285543300bc66f8514ed6aac59cbb9be835b3ec68987a5cff5791643c60841da8c172c1ffc07110c77a43ab34621c474a60a385d153d79831922638740657030481146ca6843f6043cec1de4b0b307c52b288b98905b918bf3af0e698b4ea261db5895f7d02ea0fc59156090609764d09b4a7ed5000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 02c49972f757b82c1f5e7ff048b375cf05adac485075ca5a1eeadb615de1306d6712f0cfc452db395c57039fec57708d0a35b7bb238d1e4fd58301473cc4737d72ceab2b097d513ccd17a7f54d1fd145bc28aeaefd2157f2a8dbea391cffecfc2e1fb86c909b45e97a39b30ff59f176b2359a92cab56cf8d04ca42a08c70051c8d9405fa9aa2aaf5724d8b2a00528b7818671af4129c527bffa74702f02172bf51cb8e5b7c07438c785329807bd022fcb5aad5286642b1fbaf976af9816d3f0a3fdb79c2787f6abc1dd20fbb2995bc2a4b2408f5900c68a60f38f78037c3ddee01a3861433a7d9eeb5e7a41a56d2b2a11615d8ef8751d19cf7bc5e5e46b0944dfa61cee6dc16c490f5c7b62ebb6bd9bdca7dee23c3bf1529a4bf40977b307e945efb6451d4ae1c1aa507e30f653ef476c64610edb39201492434dcf36053f668b43746cda8fefd4316425c92f97e1900c62a91004405349c69497438aeecb876ab534220a4563138ceeb3d4edb0d70330ad031aa82dd62e19d17f62bf83dc3d4e2c3850d47efd50edbab06c9661d1ef274e856d8ae58564909625de2acf771334ffc3a3d7a0b1a382e8a17c1a1dc0f29401d9a3dd198a4ad70a740700301da40b468fc4232ae841489a1169170d5131d9b0a036149eedc23f2abba55883ffbfe4788c887e3248bc1de1b3677f286f1269d110d574d01199524d93263517afb76759bcc2728ac595b004508946618b55b0ca734431e85496f07e153f9707d876b6342cc99be864d9d603c645bb9731890d497d85d955e2d80e2e660c93968873eeca1a51157ceca558c0544040db61fb4ac4e20effdccdf950feb214971dde984cff17a75973b8d3a8cd27c92a8686fb93564def326e3cb617411892469be218d663a009c37e2d573b59beb4c5f62206f3a0df818608583e73d12366fcb1d685650d72ca4f533b928c0b4772ae645f0b0ad71bb8313a601723b8f90ffcc53dfcda9d092f8931ef168ca2f53d4600677833b9443fdc05db07f80c03bcf6e364fd4d85c89fab6a08cc9399b10afcb908cc4b6b6a3f6a4725bcf8de94e6515345e333a8324765ca69ddf9c61539d36c67e91ced0396ab2adc022ae9fa8e41d5a00168cd8c9ad0291f653af63e67b90ff2d448fdbb058702c551d323f5916ed90f6b87e354944e167887c5ea4b37703c8b0a94edf20d188ea989999deafe0a6de995434275b18d17a33b100032f2796749a385d972542dbc9989311068e84f3629bbb797f7c6f1057d99185009b5ac0d43d7b944b2e5f528cdb26ca14d995671e72eb725bf2de60289da1f06d78b137a79ebfb75425446c20b4310700053cf3ad58ce01cfb4d97325a27e5b5eda3cfe1009cdd186313ec3d16f005be47c8f38051cf2108b85ec43aa0d527b8d3bdae4e0a7a711c6fa69998bc26a9a8d2f7433f24f79c0dfc74a56083b42de7860b22c45f0c6e31422080c7a21c8d672fba60ce7652a90a3134f54594eb0fafe5a953e4f179ab06ea6b9795bc31a4f6a7f18bd5f1800a5263c48da4ad48ceca613fadea7741dff9d90f6400aa31519bef0b01e3312a5042ac35362df5e61c8e04eb52bf5bce0505ea7233b516321a08185fbdb9ff8434b4c6a88f880f594d100f46924a26f468c754d6af07f4868cbd7aff2caa53e5146df4afde9f7753484fa8be36baf89ebd4741b7260ff1ea398d59e503f5fd6c5c543ae1d318dc1894a48025c76e872fdc3026bf33a91b4618d1618554393eef6f7816b7de65c4bfbb55353cef9a53ad35340049ec65ad5af27db6fa597eae6499a3e5a192ed731915f6ffac811e35555ba5ffcb6628f812bf71a268620c161fe2a571921f5bceb4d0cdca776c7e52f68140845f455d247cad416c4de040bc37f5421e2b8bd6a049db84f0b3c807c3bb9d47cc7ac3ae9599ce82cebce8243306c0f3de6af1526475387c76751b7412a227571450599120570cf3cda19264136e0a93b4d25a160dee03d3d812dbf172618f58d09645becacb5c287b3b01ce4d1121272747648c50112c44728f66d86bd421390f2b36ed7e18b09a985a306ec52f240c0bc0957335483439f146b6c340f7e062a6059b1d47750c11cda575f8a2aea78ee09af0e06dbc2b2ac2b2bbef17fa108681dc90a7b970306522e521aa987e3ab6dfe2e1b3c6d9fa68897efc9e998afe55620cdbe9ddbbac8a0e22395d5628a +shared_secret: 6e63c5ca8af98628c02c8f1d520615a1a2c4824d5d155a6e51d181e8eb44c7fa + +# Rho leads to a matrix with unusally large entries +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 452bab83196c047889f7eb13897b3d73db6ecf5c9687c3a97d5b3fca3071a29cb82902c7a4e673f56842129c4e27254d50c2a9741abedcd925a62796d9a98733262e45366a5d7b81cf7c9b3c42a6b2f70626d0adde9311239061dd893669404058da8d209ba6a6825e796c84e765b348414447246f57acad8c933dcaf752ef268bd6246f6b57377cf82607a522dd7028b572319263c9a9805aa6501ca4ec2a182a25cb751ad6f0a0a23955986155e0a1b0957bb9afb35320da2b20e29210b2605122791db13adb91a0fed0b36bca7d6f03b0ca6c8597b56a189c10ee887b4429b0cda99d83728aa6f57a03d182685b2266ac1f70645b123c0ddf352520332fb5ea06e716b010f82c62858c0408446afb0ffe23ae9241be953b3d05a9087f8738143c3c66b5b3c61ba1240b99c2f50b620038d775706aa58cb0f7094d52c755b992e008c2419b3b4bd85a41f65bf633136867caf5872d551340f377c06546495b8882e4e14df8a958a501161c547146fa2132160fce98c830a5b42784cfec7410bfe87f185657a29508bf339c7871ab9de91423d23e90ca2bdddbacf7f4af0f616e9626a3ed4a87b9b900b2412b0b5328104479d33046f54a06cd88a3d0c9780af5807e3517e0c72d45b17106a136e68a49521364e8661636f250fb679d3fb649a0491d349a6bcb49a4e06552ec60b33f947e37fa11b6742ca9119f0c6953f8175deac4576292165f42110c99467b008f53e25308e560fc845df84b28eff321687c45d6d09d96533f1d0078af998a9db59cc51b1ed4ec6c13695fd33a768af521bc9c39bbf6c27c6266ba271e5d8cb89982077f553b1dfb5341b5caccb856a7608cfee57ad3dcbd782ababf70c4f825cbe1279b304c2cf134beb0268655951cd76079b06410737cc10550c16cb9848612b6b7652d4ca9bb5be64f08236b69a097cbd10014e561469b7a68723160d91632d67f4908622876a29c59682579b34a298cd01597887c1b4d100ea724ba3fc8960356b499825c5223585024a478d34561a98d0c23930473ad6da637666b454c7882f0a98254f41caee03e03067b3a001f303c651489c1d00a825537c2412826a73959f085c5d6a836836582d938b9d999b591019219c906f6712fdb52b13bb8708d0c570a00bc40f1168b80b9c11a4e72430943c2544e2bb910ca5c4f0b245f4bccf0f0c3a284757bc6c535c6a205b34cddc15abcd92dcee9717b413568b461e2b9035756a312414e2644422112b49a3a23eed98e07884c80a6291df38d5bb039df15b7d89b5021d691f1a165eab9242b34146f6b223195bff19c6c6197a5e424c59572502f69c7a8b633534786e4d8c1e280680361b8ab5657b74336d72571bcd12af7089d4a23c09a167d0a3bcc540b8be036b24664bdb3a13b62c11eee93c4ff5bc0bcd92f186741eaf56a5f6111f161b9158bae9691b8c99cbae21c9534da07d11930b96751e3c29a804195a18781e016b6af45bd23e8297759a1d1487c6212add88675cc3b92de46c09b4315c9a0cf6a5a20e7fa9ed5d594aa95cfa3681e42a3543429b9ec551e1e74ba46b79234b8c69c0b5f9553aa12455edd971ac29199c04a40d702128cb77f63d50f11184d2d0b66befa6adf7c2bed427c82a632a81497c3831e38256784802fb7195e40b571c26a925de84f6366b3d9aa2ecbe57ac61283f5ea3648b652f0c742b9d7c2a8c00ab5b611fd36458ec71f1c49579f96c1a774a3b4179ea63b4fd1e3b172b39eed1bbbf0d27aabd1befa0232440b336b53230bd60b88da4c116ac47b971de59a214a0752e75888172386ab2ba525ea50492a59467a57713985475108501cce687bca50b6c8840b03bf2a5072e8585f33625a9a8c17160fd7d630ba54c2dce9bc0ab2cae4965ddb9110ad612c65c8203e7b462ff86ba28abedb808f70818f022413ed5a9a3b0ba6aa24685fa91d5938a69693862e31aef5054af2f9849d3b1d22e121fec251c8f358a0d320efb9299df6194cf6cc5cf0c11363114abb8069e57634ba173ae199b080c1d935558c16696c97a5f316a4b8565c20b266802c60d4272e49c2a5ff794bbc914240f81317558a8cc862d9783630d90d99f6a68738219c44b9ad5c07b7242e85d71f2a958398e25047f494e7f6acfe339f98cc2d65c114a537b1259e000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 841dcaa46434e75228b0bc10733771ae67fdcbef99433463b2aaf2da88a98e1bbc748e1d14239a3a91bd2b6752b83302265c58d36f176b15988a3cdcc0f65cd72eb5486913269eb31b42bd0ccec456b72ff18f3801a1ad44c3ae6eebfaca59f2ee8308bd6c4c05a7262a01f168662dd42153bcf885ca7e84adfbaf6429bfacfde0ba36426b17dec09cee0591eca54dce505b6f23d2b674fba0a9dffdf7e77ee007e7570b31c71723047c3e8a271d6876261fc1766e1e468bbaec2a42960c2f0a3ebb7dc5d5d6d75a24245a375d160bfafb01cfa2c08831b1ccc67bf9d05df3a14d8f4b170e145311a793a92b1d59602e45328e58c5842dfa6d7021e1c65a900e0b04a79b17edec62c5d1c2bb8679174b45da0cfa336f7a0973923b8812d7b2015e73c42e1219900cfc3cdc93824b55724acaff2158d38732c429883b4d461b74a858cd167ba9e47f8157834f2e758cfc1c8f0fc5e762d56ead723cac0759cfe5233473b9706be8d909c1bfb2cdecbe7eb15b74b181e8fb949aba6b82e2c7c1d40bfc43cdc758051d1ad428a43bc7708ea9b46ea3f202974abf44644c7614769c9fb39de6ba9fb3009cff125fae0ebf0ecf5c9dea4ef2b9a8f26fc5d27d875e068ce3d319f816000f1dd560d03cccf97c5485ce65a77a326ed0fb2ece5cd5a55661c7b41f4b08486770cdc510f03b2b85c73b95d0d77b0aa75f677682d0a383a6e69ece0d5bd62568f2f50dd64ce3cd9e51556043323729b165e4c6726dc77c78025faef0653e54c6474834b9e2b51c66bfc8fe90e6e48fa217add307120ee0c00e8ac8988e5765e66dd0dfd92c80a3b19eaefb46585f0078f5f2de0b9c83ee10996b27b7c64d0f7b4d3be78ae18030bcd792e83bbf99529d1e7917bc053846268ded779a622e83f5d2fcfb0c15bdb1a2621188037acb8999ccae846ab2664792b043903c3e6b59c2645ca44e2b19cb21122035f7f3b222bf382800df1d1d8926eada144f880ecc739bb5644986f0a3c1b7cabcf3c9cbc7938802274ba459c1b870ddc516b5ea871fa6bd87b8cc5e47541f1dab3b9fd63865bb514b85155c41780b6ae24a02a06804a319d3f8d81383e7c8167853f3e24b35e220c105dfe14c33441f928c6dcf63a606500539b602f3b3f547a49545fa43f3fa6bbbd6049d9769ae5ac0964d00d68409abac87369f9608f2d244935aefce11e009fdc9a94c4a803eff45f989affe68c4dabbb291de0e7251a82bd5e5d19bc165fafa25465066e23dd905dd456e0d02ec3cf229c330d404b5f214a37363bd997979fd171584a296cab6e37928940f6bde0d1ed593903d86524449ad42248572680f1b573ede4ae27237e56755485657a5f542577700680308cea4a0d249e48138743017078e668e9ee556c7ef5a83cca9f96ca22beb7e30e2df1a793c6e2f402f109770ce7763eeb057f65bc0fec1fde8ccbeef1441dc98d059d1589564debb2a993ce21031c67d4d8c61ec53160be67aee11ff4b901bfd7c91f6e1faf7aa525aa8d15c3212ebdf0e3a5adc57690d446fcc9435caa5b1ed174b96d4da42851545ce1764bcae48c5fa580802eec2d1b83e4307c1da0dbb2a0fa414d2db8d6335f898fec5e391d0d7c2098e35dcd68afa8adc29d5eee9a9cc6a517ed310897e69eb23ce83e5ef0535c0f64d4f8d62a962e8af80f47a7f76cf735ae4ab09db0b806a9c4b2fa9ee493d69e73af045e6a1eb07b5bbd3241ccce8b5196080c2953cbc50a2052126ad754dc971050150d7ad4b319fd85cec8c4be05b55ddcd5ec7e804083278495b1601792464202969dbe01488f876d1655e0a3f4879ba41712c9136ba0f99d4bbf3145f34bd6f4edad036e6db0ba2532e35c6c097820d1fb069f9d69c259fb17b94970f2cc8284e5fd80f4e6070b4389bcb49ca99f207d002e44f6f0c9046fd89c0ddb1d86b01007c02920acafdf28e49d3c209e3bca054b67398b6c6c2561004c129947d87d33390d28489855074a6777dbf72816f0e1bf9488009bb0a247784c8a9b8f13a163d86a614edda8d205058071c12845b21e82ead309ede45872c379417c536ba446272ffb63d924d0055a92c320739d364e3eafcea6d10ee09a58a70c6c9a88550327070d6de72034b8140976856895147e2a1ab4ad062c7d299228a50b605872e3d20daea3e918f2dda9f8182aed61c93b4a47c5796478e182ba54c87fe +shared_secret: d0ffac51bd8b7e6192ac5954b26a5c64f4d0ea746b08d9f73602062aa8aaf7cd + +# Rho leads to a matrix with unusally large entries +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = 04db6353d04f4a88b97b6aa5a6a42a101a535da323cae6c7dd757de67c24fc0c1dd894ba24c26c873172bf2c1ce63c56cb98189d60587cd76c2ff70cbea93a0d0767ff347a071333986226a8812677e2b5e18a15fc5b2d23bc03786b2faf8a9d2705bcb6276d2c140509f67a123a34a98bc879386b5a596b4fe77f0caa5145d766e05834658961a4aa3d5a90bf9da5a53ddac964e62216d0a6e39934f00c6ab988cfe6334a69480bfecbc7b100b621d471ab51725008a21f404142e489cc30cb1aec8dbf99038c8989ae8c477c198cefba1f3420951b660026c820fb406d19fb0878677cbb852bf5978d99d33f6fd7c3aad87585e68e5dd5a444a8369749ac03902b91000c0d986b26029005ac6daab8b0888a75b75bb667469525a70278945e2847cfcf242b420a10af98cdcab58417400b9d58b68f3670aec0ade93996a8e16d63337444d0b7de449f3ee63b30aabc9ac2b77d5bb13d672ce9db86770b9c21e11ca3f42c2117654c657da94c451c319e1139088d008179707eccd6a47d68677c692c9bc7790a6311dfc244d1c67eeb3420109404a86ba668e24c09b6308f3b09e546cb20db4117c74b4124946735ae70ec8147bb2e24784c3b4a24eec5ba8de3269054399a623f0050b5d0c10b5f5139b0786353504216850c85677bb596b2ac6a5fd4c224bf61ced0fb031411a887066d7a5455afeb8309058485386a023b6c58b5b967557a5b291698d488a131826b958df717caf472118d96a3b6882c1e95240909886895a0f5946aad1c690b7a904121688f5685ae775738307786c5a6915baee72b3d71103a96860afd696bc70b880c019e6dc77c38e33817db195ffc2f7cc37b4a6450a2e787d2e65c55748be376af57251974ccbd8b398858971eb5ac62f7156e9f2b43d6c54a51c40c55156971804e21869933771b3ef64d16e48ec5195018425d32b56dcce1844f33600bf366b9237f6ba451fef0816d17a00542433dd7312c474f2c1abe2e3a1a12b303f9d42891b12954473f6eb41ce2014bc083732e7a4a7808831ae478bf2865934437d4874b6e5132ee99c727798aac4b99c7494fb555a594d21bc99a014001b7d06612c2b3a8c7170e99e037a2d50f33e61156c519a1a15dc78a60afd1c2c159375ed570878c319db912c1745b90321ddaa48bfb80411197b2fa146315bcaeb292714ab7576d946b3927a280319395dcc4a0c431692c7848d10a36dbaf5d78af33f62c25e5c4fb009be83a5b93e054e587393c48ac1c65a524a0cb4e6637fdd90e43346fc9a45a720898d05b4d3743a0e2e40f4cc77237e8913ac0557db49eadd7cf00c3695379b06602c332f57da6409b3b888e7c06898fc4412444c677482003c73fdf07ba45ec968591c3445b14053a8077e664b9964956fba6faa50d680352a4c8378d208940722bda766910403970e3b50d863d28400512d7adfb372052f1cfd3b24ff4e46695533449dc232a14604a08b00da1ad81e31232412e72d180826b968513a2dcc724085a3ff0d5c3a7361f861a3e02b0308b897ed9d35b14a4159cf646336ab8c0e273a6915a14297abd937afeaa3f62005a001417d91699e4166740764cee25b91fc2c44753a3bcc2a8144174cea18546fc513028018aca8cff714d6eea7515db543a192d8695b1923642228394dfb428cf167201bcbd1e217ed1e2391c616db739b09c9a0996c5bab53bb5e1bb3aa547937dfc49223897034bcfedd55599e15641bbcd1b0072e11ca24ce7a828776fd0c94bce2738eaf13075aa7340d51b30fa0caf857f1c5b7808048917e7490ab0739147b7cf229953a633f080ac80c495f5b03355bcca47a94b60e95d72a29147f2b677c6a106f905f5349933b0b7600358fb009bace2c229246aaa51a95842cee212c11a205711125c4ea14d68a833c2892e8bd265bfab3e7b16cc2d34adeac46aa6e92598d45d972577fd76a9a7b954ad1bba6ed63132a375aa29b9eaa42366e2aa8da0374a19b16389a1b36c025168584a91a4328071de904ff9162a06a8bb9b9030f4571b1166133bd11f9fb9a2214c3f838a0a6106359e778fa7f504c6e719ed9c2ac66479eb1b662c8571d7e398f80941bf2ca0b8791bfb51693fa95894f25f2ba53882e450eaeb0b3ca706a936bf22f6056588144c1c3219f0eab96c000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 8106cd6746bff4925c2620882d571c50b36b066a5ea43fa6528351d97dda7dff1d9e9ee6ddc640ddb88851844c388727c918152c41c814be39f274183e116432a61f9a7c1885f07bf118e4ba631598fa9b1e01e72a68ec43dba62235587c9b9dd1c8e806174ad612a2ffd477e8d0edc2ebaf4036393283b55144b9c83cbb31d1674565abf29a56980dc4a3803a389a20dbf78c78a907a5d651649c27c9771ef436c189d1922564397f5b5594d7efa951ba7d05962df80c49c1f73029c3d7899852d8a1fe03d1245a228028cf713f4403abc64a9093d782cd1a6dfe12a79098e07f40904ad146dbbdfa919058149b051bea097a60aa0373cf9c0803e8da99c03a6b83813f99adea8c87e6da09013947cbbbde8edc3b7ca29f3180882cb11bec706f4048a20c5938560ea83380be5cd75f48d77bf3360fc131509317dd72b9340bab91fc6bf7ce099bfa58d6c5a413fd2801a15ce7ac6f6f2c0447cba39987a37695468cd0fdc982631d9b0354205194323e74d41c54e0a026c4e67467b5595aae7c8346d1bc5538ad0acdd56fcda32f95dd7830b65b2d98c05355a3ad9c84cb43c23ef9845250888ecb6f992da17f769a13bb7bfd621571f98b42a9aaf19d0626d7d59355d9730371b29a3868b97afd7013142866e0b2f1c54841de47c47775940c58475c96a4881bc69c6de346e05f55cab15d497392fbefd2309a834c733eb3ec8df4ae65ccaf690af492e39d0b5c91d09b39966b31b47ddf6751b481966f19758dbbc373debf284640015cb197e53120e0a36ab02203e0992f35b4c8347021f8c4663c996597a466b416cf271e04a20045639635b904b63250817c29451dd2ada5f3011500f705c2f0982d236ee1cd02944e35cfc6704f0e8fa30d8d2d595340b4245d3f3d5246d368062b53f06ad365dbf12c0fe7f492690fbf3389d234e76a618e63f785af41b2f4af70be0bf0a917df6a5f34683d931604c6df9288cb9e38b8d8396ab2e21a1c9a54f4dca2a4985c3c4aaf20af5e6fdd126860df422a894dff4a857f2a8aa54c4bebb70d44a4ad15d47497be7e0b7487003ecd6f92cec84bf4c459eb5f480dc20bb6db735cfaade1ce33782aaffa6a39e4f2ce9e7df44347b91d75bbe71b824d6302608dedab325d00163cb9e0a274ce49717bd6ddf4b9c02fb6986a8f765ed565f48c10dc90f39b93aba1a69a832e41f2b0dc2113fee500c99471ab67e3ab5a1cccc0f92273739eae4747de461ca3ce6161b558577b56af9e695a978970473dc671efcddda2bbd8d15fa6eb8ec0ec9f479bd9b8d3dd4865460846733856fd57664760bbd5ed354696ce6c8b44c6ebbcb07920cb6c3cf769c005503add472c7374b8875d714d25c74e2d4390ea455e00208763f56e475b630a30875bafc70f87f541bfd0a28839d441ce567db3be7a20e2773f08ae73f9686b95623fcfa7b1b3052d64448756f9a7481b1d9c6022898e79afd4c2290a9ed2e0658c6178826ce94e0ab460798a88cc54558c51239bbcc5347d59ac87fb6580f84aae6492e1ca700093438889fd50eb7028153e8b4675fd272667fa022b17029808b88df427ac048d8b410f60a56ac39220f8b509ca93c34c7dd62934f62a7e29aa3b0918299fd5c56b3c3158775a3b3d5c78aaf2f656257fdaaaa5b7daf83294b5fc48d08922ea6f5487d647c30b1c11a30d2b1690958fd90107a0d6cc689441a36d04039bea83c447e79b04bdbcbab04427949855aa1a32790075438ca6ae6f7897581b4489ea1dbc4c025fa1ebe698959a8145e8f11aa1cb6f742d1be789cba73fdea457eb0abf1e814c931922f451a7d59514c3e2526b1378be1ba8ce317ec3fe2e3d983edb346874f5251d197ea02c7b16fef2b7ba8cd3b0179b1f935d4aa4d463bda2d5dadd6ba96c0ad630f1eff86e34dee3f2eafb9cc5f5ed13dac2149a583e2af8db3a789c39f751e645acb58743646c6f65bb12564b8f26697e80b8d9636b0833d71433a0465dd501eb313158275608390568c7130ae5f998d3819ad7f3855d26ddc9f4ec07a36d191450dd6502a28665eaf8235a3f10b90aba654c70974038cdc9b3335d9b865da8a07be70d53f6a5edc7c4a5f4b5220c8e7fc01f5740360db072a4f8d7e80246dced5c75ad642ef1b41841f43e6e422f4f9131c1b3f505197f18571b057ed1cf2dab2f37dcb88082f8d8291d13eb7abdbb14 +shared_secret: ab923efab9857dba5a68f9198c4318f54a42aec38d194133eb7f5dc172478e79 + +# Rho leads to a matrix with unusally large entries +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = 61e61727c66c5cdab43ea53041e25b36b56a323a12f70c99eea25fb4d387c1aa2d871244021a45ab27a0709583e0c8652db31167da21ca46b84002ab009a8659656876a037e844b6c027545cc66d783713a79b1bb5021e7a2c5deaa900e595503cb1bfc394cf65707c78a97ee522be49c2c08de89336b4b50270ce189bc81fb6a464a853262791c748714aea70e79a6967e62566492157b4bff737804b014c69f41eedeb07e47cac957b4ca937cf4c907189606a9187c700a7b6756c5694b285ea6171625038f1c729a7897e5cf853aae66104fa1e6c66b86b643b1e37838f85bea35132a4176afefb2e6254433af76d5eb455b11a0624fcb63f7310b0c9b171d62134fcc361c2a58b12b2c53530fb658b83107e76006e43ca74d9093fe0ec4127f5866c306b791b5d033cc834652e6ba485efc76b5289304b3c774e88ce0173012e0203eda7a71eea170517114ef93f739501c6f9c9a4d56b77494f82c06753a996f33721a56a003167bc773c44d685a2aa45b61744058a1a097a14299d7a5257e27f8efa796776249878854f458d7e4b70db914e888567e5aa9cf238ac4187bd783570daa77c3a9854c11c80bee12374267da446cb1a3b5177c112a3945a92596093f77c3ea9bc2f95452b89879bb6c0028b653cb6c804d2680da39cb99233067c7b9124a27c4c6558a641718588709ac86d5c57ac7a1f1aac68c9c027cd2c0433a139f17b2972a5a81fc8763ad92391e818a8b77c43fa7e71930ab5934d58301c723825f9079ee9ebcc8096a1c4eaabfb5b73f070b43c3112af289c09d908fb8a2ab48786db29c2dfa82a16c6c8a8b34f83583a6fe3a630b639631742adc422a71798974727e2a80b139872df5420c60954a453633bb99dd40098be6952930cb35cda52a33c4728eb31fc7048ee5176ce947b194885395163af5aa5f2f53fe8c9246bf6143d199d2a797dd62b0fe67042fd455acebaaab2bb61ff778ffdac5edaf8778879c5517911a468a583286bb4d11a7f852ce921cec823647226c96110063d02a2708364e585c5ddb3914a27123a8c6ac89c6f98260009f172f644b10a27201a73812de28eb9f04cd0e4a19080001d082189b7b85c788e02324b2f4b07dcd4aa298b44b0f49efca0b9c0811b57729ec7ab7f0a6a7bd14c220394a2609832a26b3b8c29139af994a5c96bdcf13d8fe21c225b5e5f5aa2e0c7a21ec3a8017c885ab5a694aaad999c6ed14b77dba90fc666c0ef88336d79b3093719df8179e25bb59301a67548cf74122954e34fc5e94fc70b931a3669314605d609cf06f25f74f76fddc056cfa4654094b724636f49fbc3964a5ccd79580cc8a15eb07eb4061d528a32de192413d388b051660d43507c49720ec67ae41461b5ac87cbf91dcf42af4d38680f450acb9c6cec903807153b71613f02900117ccaa11e2cbd2885187a49089b63c3f1106fd5a3070a38b25c9757bb9b40c80c6fc4611334c4463e1aca784af6bc38584a72ca4db482361314fa1b18da660f440ab6c9167a4c18afe6395cbdc5320fca49aea990e12ad6863a0725863dc1009de81abf3d56ed4c70258096f6647cd3c5b1033512a742984af1a08617aa63e1b754ec93e77eb1f379532cebb7d4421a58bd133b9ec264ffb252bb8b546961e2f602aa45c5c20756f51c0ac29983ed95036758b05f6d90aaadc464e914004ea81eb74162d8a1e4bf986120c1e9d13cebc774677577f86c10addfba2b9486f9123458fb20e73c32c8a36a60f457074ba640309a7c9b744413a5622f43ef3785da0b77739e00f1268b50e04056b0c2071f8ab5451cc0d2861310806a4f180867310b03c0fd0d9781b3315c0da53d30b5a84f27962326084b4cf8e88a2087b420a9299c34a517c088e12ab2f54f35bc4542b85d455f6e9307c949cfd617dee8153a46c99fdaa1c00795296e9816e557369e34bb25b1555199dbe0a089cf83cfe019e5d013c6507294ce27e51ca5e805b894c13655ae6a0f9da6051706d46dacc69ec3898fc58ddd5c75e82345fd8137cb606a7707b4d3bb801f77b615527705399c8448f95d3c292662957e48bae0004acb52e55385f0cac2a9c76c471e2654968113c98be84c89e0a49040ef23751521558e677e32089a6969beb0897f74a52aefa2a087c454ef26efd08a555d6000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: c60d4aa71649960bedcfd1ba225807739b82f912425f50d32153167826926e51f8ed961b5439fcc7a3804d55ff46d5b873e13a0c8ee7606fbb21c5e121fb8e60377ec46ead034bea9c44a685e7a588875e5bc2dff98e5529cff460ef5fd1ede8d4cf2b02e9a537887028150d0d79ee6a0ef2f0d5507c42ad1d788a75899d0b7243f7179af88cd6b7fa41849f1f49f782eb0bb727a9b0fd51ebe3f05ae80fe7259aac42c8b0a70b7b74da297c03dc1f06c44edf72773958e5a0d38aa91c35e71b27155e875f3378ad6a2d064d6d7cd56689b1a42dc4a26ce2cfc8012e147940980403bb6bc164f3a0f9055867efd0bdd3ff4c36ad8165aaba00c8365d217d4bf208312f3ce9fbd7bde30d6e4d3f1a98b0a20f947d03b45f3a25ad481fd1dc271a0cafdcc04f02d314ce3da2e1aeb00c7d3a88ea3ea2783b75e16768f0aa122db015492b0ac9bab3d3f85fe6d8e32cfd66fab8e3138402f690bfd3a5fcf09ca27cfaffca96181b8a906a67d93303069ff91c2e3e6cb26c5608bb04e05ddeab18ad3ff916bded7e9e27c99492b7525f95e02833ae827c48b1f4ef06b77633a66ef85520768b64641c5b1b3bf319c390006a026b3a77331c530aa5a86d0e329d4c7bd729992e3c574876ad9a29d79b09018e850e2e63d51f75861af33e6acbdabb722d41312294a9b302aba8e3f04ab1f04688e373f86e3753d84070bda2feabf6b94617cccae0fd427f90f43d3b686fd772292fe1c93f355fffd2683eb8dbdf171b69bb6a5c929b7109744f542a21539e04151ac7e46f5d4b8b151981d4860a366d3500c3422a2bb5c24fced0221e1b84b9e5b587e9bcb87220dd92c127be67a396ac18cfd3470e715ebd320fa07097122f696ff81923e4c2d3c0310bb8b70690dabee4e17efe6d871b32eeaeebb448f7d65fd60e7a3f32cd07e61948be330179dfdab4d748d01694d64edabfa95647a21ceafd5261cca24a0548a135ca1f7c262952bee7a291857062d3546dea97cd745050121c82a73ec9c0095847e0563229ec36046ee1564ef3747b49812eb2bd015025f077b56d63500bfe523689a6be7b886fd8aebbff18cfb6e4ca18c2d0dcbdcff8fb7a9e852f81ffb39245abc6ebb9f58a28beb15942cfd5f797dc867f7a855a3e6ecbdd9a8123ecdc30c7240d44dffcbdca05bb17d524a791ea32d60c65dcb6ae3ae3b724ae7da36b88d3563a63f4c059fc83c97ad79602cd7701749f92c02bd65f505f407b64ab3f8417d3de5631804eeae565af62d7fbf95bfe25126aa2494368bab7afabc23825d6cb03151222bec05b09a3fabd5937b7a0ff17246564e163d049e0724456576f250045d13d99aa07a5f298cd76ac73f69c3547ec9a344998dea3448a96480ece462922f76f1fab68d030796bcf570298013001414ee238a8ac4d7047514ebd5c3e55e051846403acbd3d7a581c1d53084eef20edce56c2f50443440ad0fc77a955c1e5c4d610cb45f43435b1a66bcec638ce88126ad88bd1b0d10cc5aa23789d5c8f4d9c63cf796e1ee6f7fb309855f332a648c731775edbcb4968592f1f633a3fc74bc5fbfe9c0e74d8379fc56f869e63d8db3b9ffa92e9b470e668e10acc1c7606839f2ec0abd02629007e3b1300e558e5afd136f949eb1e6ae56b5a8c21d15ec4b62b22af89618501c1af9992a3f002242288fe01140e2476ff900afe32685afac7baee893bcfaa54c1bcae65b2c9db04b1e17dec3821145daa041150f3282a500ca46c535ee47ec02b1a1639713354bc4ff7217ec169a63bbf26a26b2c712b02c76b56a8ed0535e3ee1c3f118f2a68f9c699ed8702f3eb30328118922b15b8399a3fca410dae21e7d762e6e45c8de7ff023a75211e42d1acf1d8f506223cb281fb9615b2de1848ad674236e768a0f315041daab6f491195453081535f9235f6d215e5750226ae7eef4df26469cea1d0541e7932ad917fb360f4a9d5601126b1c76bdd1696e6d59749635b844c9d416a12d0eff4c4a9e7f40860b047ffad7bce7439ef0fef50cccbdcc848b02f66bf67f2d3cd795242896c5f2cff82864b1d1f00974c9142d0b0ef2a8d00289238e822d352a924c689ab15e6e5b201ee7ebca1253b9964a04efb4d7af21c6ecdc03365b4275d72502523d562209a316a88163ca33ea279702309f8c2373514d459a5298ce6999571072852d996fa8421fa594069645f034d3 +shared_secret: a6ac9ae3077504c8a7b1e5558a0fb1e7d60cd2bc3e59d615e68d5165e4903d07 + +# Rho leads to a matrix with unusally large entries +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = 6328240b1a7286c71c5cc17284fb5058410381c74456c1ae3ad93735b6c7d0e13621c924a67a44937039df4b4da608ab49978109f077c961c2e6d02cb0f429fb04bf7b32afd9e0748a50162bf49ab17602717b25800ca3c762145636adeeec6543c43dd20a2a194211030971f16139ab86a22fe07664b425e47240ee1101cd171bd681a681804d38bc4cd562b7675a1a4fb113ab476fb7e67009c8ad5edcb053e77e99d10a348851f266919d29204f5bbe27e8672ed92e7777aae4141a8e81a39cd83a30005127289092929a41b42db3ea2c3b9b4e14a02a45906e871b5ed4c5067180aa97a6967642a5ea52639f27665a78aa24511ec6bb8ec7c3ca2fd34fafd5b5397c75c8144894b56d61e57ef77725ed8909afc703c6cb858fa1c600556babf3cf4fbc089595606f450753c727b42c7e8a8c470ae99e40e518d73684f2810e1ccb187441873fe14cce8628efb360083029fad17c1a9809daa08df859a0626365e0f1ba97ab9bb0d09e3b2632812152ec6361cdc65307f916b1782eee7873c2313089f3bd0c5ba938b80f1b43c7fc6c3f801444a34ab9c167629076442b1cb34c9b02941368c6377098a7618ae352d7cb1ed9419d56158f9222c644f58c3efa5209317a165434b86350c1a94d21fbb065854534120e665bb73266b6a392a60fda82b096701cb100aff65b44a40a4d8c83f8c63621f44a6de22f9b4817a2772085a95597c309b6423b9710cf72720598064717b52a336a0d3d9b6092e9a445a3c507e37ea9ca126b1b8f4f702d55959faa7b80322045508b2025ba64575049738699e2e1a42630c80615724dca7e98acb40f6415f6907e3649962c451f31164e88601cc2c37a65c636b6c146cdc24e5ce6976bc3457277a588118712cbabd8dc273fd0c8c3835fdeb500fe035116f6beaf437354c39e9152c3c9999f5f98281096a0f1cbafbef24e87bbce8f88377a0a3541eb128e31a0d77c247dd32180b97bf6f8bb2f611e7a7927f7ca25706cbc7b52598b4865ed8b520aa53e6199a96a0bc79a09002e07bcdf78473b273028b34e7a7c9f71ac38bd6327ea4c9acba59a07b59433908a3b8a4cc5a01d704773621b4c750389e8557498747ebb3b8b41b99105756205b2b578f668de8c293ef989a934cd1c80b18d700f7666986fc445854c9a6bbb8c9ae050c6316bafda5e98aba4ca0b92e3c3a43c504e214193b43c9c9ccacdf4ba85a57c6da6d1a8b310c4f0b7390c7001e8004beb92bf55cc8eaf37ae07738a090018e843288a965d4e8bbbf9a18730106c52758367361f558272f3887762ea91c35a23a708394b8a3b505098f7ab8ba505bbd1763a0339084f3ccdb2e68ce8b032bc217d51110c6cca10f277142a844ce5e7c8800b5bc857613deb0e5e59b4acc72f0fa1bdb0f016ace9b02a43a49e83c207e8ab82e98fa1144a47809a5dbc5be622b1bb364e8000cfa2c203f247706b3b3dc520bb308a62bd893c3bd890102bcdfa1b6ea91cb5f86758d5339396184b2ad4b36d6c875675261658615e55c85839cb10ac8c789959cc675a976c4b88146179d38820344f319b1621248577294d4550a33e723d65f11f3f654f11f206a7b4c4b909a4b1490f41d68752aa4af2723ba9c092d371c0e2459c9361230cea1772ac0990b6626a9914b20769c51b2df3996639fab765164a7b61280049ba14d55a98537e85ca0d8259b14ea4151c787d49c9b2d291c9e2b005c13a3d93a88840f9a19d30c346b14b413c150818850bb8585ef0263b515a74e79032b3c561ea543d652076a38fb4f769318378510a8e277334c148bbf38868d74ab56adb16f75a6c4ecbca6e1ba200874567fa5d1bb42527f123faa69bf2c45e4e79022799a717c21260e3585d6a86b7582a1f166dee7015abe11b42a961d60750e2e40ffc82588448b515bb4afe246c875297ef87740a775fcbe0bd902c67b9830c6d318523e422b0060bcc5a5a5f7b267f5b53e111c7121b86a6025a0fc2716fc11025c857ae1926fa7066ab527045d8244c75bf13a1a3c6688811d35ad23c1435b4cd536c6f14f78bb5d34b4bb34548a375b93234c63645d7ab59580567f9517604837fa6f98b2b4911d9946a54d0ad2cf0747b4081b904a2d6f953c70065b0c4b698e556daa27cee3b40070326f43c3d93a7cfc649000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: b0ea35919c0560ba7caf9fb6352b36bba962cd45d3d2b7f6bd97ebb2a3ba6df22e018390330f75cb4eaef8c9ee9bde4a1f25110dadf363df31f3f8702a3c14d5d2da303bbaf0fb199384a2702f7089fcc63acfb29d5e53571102566866898055258241e5ec4f1a325175cf3a64a84ec50b4e8e511ec24dfdaf0ca79911b1d84b5a0872fb1618edf364ea06d7287c6ac39e842c56d6630ef38f4c812a8d1fcad73f2d4ecf8f7033c1f5ab982c5b6b8c5545237c4a3ba8d5ece30dc93d1d4f4e89d3bba0b8149ee5c2df793c8779d45de92630b292714582387e60769209ea7d00e2f1173f8817567f52fe53d908d11e8e77375e7d2f73f44a01ee3c87c8f4163c579c40ce70dbc006ad2426667650c35d80ced3df0f3f626fb52f57d874625d414aeaa658a220a4ee6350900dd7b1b9e165661b41cd0c96c3b665d789a297f6b7b4f261e6dda3f6b027ed8a308f1168627f71656bb0ad456ed2b197c672d88ea6bd61fde6dc3df7e4d8b505afcaa35fc1d9b5df57b69679811ab5b738d62a5800555fe282dd4d06d5ab25a3847b4f22725a2360d8b47c69458b55f485a1ee75918cefbac2b4945c20a7356d1b7c69f1c047ba355496e21eaa2123b5b545e86c23d4cf27011e68611290161366d6c12b340292113d3973efb312b1474807f8cf735b76bb3a722aeaca7b865530fba177f9016d1ad1a7bd86da6f657c32d6662e57cc691f5acad0faf4f21027fd761ae23456b599333c9af918166927c6253dabe508c7d931d50cc824c589881b39087e02b52276b9d4252c08199dd4943d72b4fc14e603c9e901d0038da715973b0d168b13edc26b20e2649f37d27c9cacc7a8508ab340a1c3ed8d26099171bfaebd39b0b9fedb3c195a381b55c13365139063e5525400127cc963d9659c964ef3415b31c3a2a923ed3b96ffd327d6eb4929ce1d0d26232b46da119e5e38e71a2dc97bb953567bb5dde9c2d19bbd208c85b135bdc885121b5f7195904d2a9141bf5222e98f95ead571db8fe2df9a93501b8fb9a06a3ce0338a37920fc4268e26e71f94cc218d6fad6c2cfdbf0a5855b186ccdf10f66f01f884f22503c530b3c5ecd96d9b55651b1eeb3af62cb7a4cf4cd185d98afd1b942e8f7eff849ce843e113e82c3a875fb996161e0d0185aa99e21e7c99c9636cedf0dc9aeb55a37eb1f744841f5d8fb3eeb5eef76039a40a5c643957cc81dba3fe556234acc512efa07f3a140ef28a93ed9cdd2088456e3bfad0e8377e69fbb3dc67f3864ab36f8f8422837e067c20787b80d77a30995e5d78f84804cd7c897d0ffa5fe1e7b92f17575d94512b6a4b5888a3cfa6e03be3a50b8797f43a87477982fb241f24af59f13acf60ecc4c11e558b1a4feb81f69acd5a67f56bd698888c9f00430dd8f8309629f7c29e96d2951fcd8b521265c368e13e22fefa30bdecd51407387c77259e64a62e5d705d3d46be5b6f710ad86e844e509a3c5c1dce0efe4b1427bcbe56758432301a14d8b882a70cb5c587e1636ecf96c61998bec7a9b6b98eab92be2e30b30174c87bb8bd66d13282dc4d1b67757435807a90a0b268a9f760054c219bef6c8811476a56a14994c760e21a1b786efda3fcda5acd859967b9874eb049a9690b0acd97c907c1ec6b1bc9790b1fa6c8f15518b9c18b3f0cf672d26496be193602d909efc2562bf72e83a3d8244eea1942c6b6708f006963ed1005615abfdb57cff11b985134ef3ca90116a7ae35299d1627fc05cd40cb32a83c9f9e19570ab0b4e079ae34402641e47e1f0bb20b63e551dc7c090421bb1916e970b33a6cee4be985f28ea66cbcbaa21279b45a4d3927eff26dd1d171f18ba8c5e78644d6027e7ace96ab62bc862d8cd69bdc9c07a4d8d66ce2a08601783e6d40665fdc637aa813a447361ccd9d843bfa05f5e88f1f74a4d6fd1bdeddb1c50523d731cf6cb4686018e8518525a83c2aab2fc5ff97ea1562c7cc7347482c96675b0b249f99428d68f180d6590c67025e41c80468a3edcf147368f3612456e9d73bc4d6e0a70364036f75cb6657ea99c8fa365c165d7fc912bc583f0f4e57ba0f531544282e21dc42e00f00fc59273d272a711748bf62760377e5c30c1776542936a10fdfa8acca0b4b5e5c9cabf461ed5caa9124c59a4e867859401c158080970ada9cf76ab49e250411a61ec5e83c781c269b75ed1c193bf8134d7b0dea +shared_secret: be6aaee5bf0744e7ca1ca0e545171f3075aba9b4d10a71ae00848c8398e3c52c + +# Rho leads to a matrix with unusally large entries +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = 2b1a5060745e8525bc617900d53b414dc995772543cc58a6bb7c4868f8999509428a3244db4081ac6b3f3c685865814c318032a678ce19866754c0774b31cc47a6a8e3cc90d6a15e54c7370c0360c38409b126c06d4b06b7d652318cc810c774f0e66e7e547305d03109030fded56940d472ee123438551d6885922ee91889f97ae31954703952f4a3951e8003ca2836fce071e382373c36a27b947ec8766bcafb1a3105aa2b082802b9bca0e4c50b80cf9a4033b44ba4b8a2cd6d480a315b08e7774d68f8ca8778894bebc2ab431d63c931e61c5366699b65ea448c127b82ea493034616fc1b6be01243bc84dc92bcb50aa4c7a417f1b5268e93b35ced9cd6263227c849dc8b107b10120f9f690706cb0ddec8fe2b20a26da422604c9135c58f0b06aa5180ccb55adcce07e51f885998398c4f16162c33b89bb37a09b84dd0a9d0e8c90a71c2851e33b3e9cc5531a76f81992344161a837608872355d57111df72412e58c5ff85b97ab2016b41487f56a9fbb48d2e498c2e12d3972c677caae5e439c598b67520a7ff6ac9c2424482988153b145d6b40973a1582b90a5bb76716c9878dee223046f746f08323ac3a5390a6148d767c3054524b7247c26c9339c0642632710b8a4fe0502dcbc32c35ec2e1e22510ea4abc7c74980ab25f9fa58caf4a70eec2d22c1957f162f5f1c5e5ad0a0fda4c342885081d3070d773cc972928eaab2ed604503257bfe448ef2a9c9c933055e633a339792d24a44769b95123c1f9588c8759a469c049a75bcad2e6087559c8afa5b6415a8825567aa44f63ce5b49ba4fabaea311918b804c7fa2d1742945f39bc9e8256b537128a9735a0939a1150c10418551723154cf4c027a5355e1751a9866bf558672fc68324438f12d83551ea49b358cf873772ae7853b53c9627ec75479c746a116c5e66b20ce0478c490946a0af4a3a3138534c2c94a44bca955e84513f548840b929f4b4ae51d53d52225a21b320d0d8b075358b019720c325814303170b627fd6856a149214eb192659d21001d5ba6953288e5a62d141ad5ff31c413418f332947f1441b8663f95b1a8ea35576e725a83177126719889651e8f20a8fc2392cdf55976651f1c177c5d8bb035993b0f2ca020a8b22b27080c4161cb86abda574deb0c858d14ab4261b1b8718ac12c56db9071a5acb00c4b1fcc9b9880917f53cc12bdfc77103a45ce8a2f4875c7e3711b659b967c5c26497c6e2903198f36b01c56ac5d054672d6914498643ae6b5bdc2447300737883306e4250ec445b543bb06b6113db5369da2b02dde3a11b2c080732979676040ddb2941956068557e65e0c4ae9c2834671f9ff65c246b31dbfb82720c8f014aa35d343b8eb762219b0eb802637574724595ac1c92b85e9a416089a2366ac9002d01af606ee9b21868e72ba96c6d5adb51f97c778cb8653e30a253b333ae5bb600a2b064cc387b38bbc0379c77dc45f7fc45fd060c60bcac60bbc794d18a5a8ab680a0ae202c97c3f153d07058017bc0b74458959c2a358b6c3733c60374a2ad540c75785ec95cb0bc125df1e8359af2bff55026d18348d0eca6672a87671925a8568060c09913993fc6f89e2523023544938a573ad208761e3ba85354cec6d999ee1c5f909bb973e0780c84101cd3cb42319b0d5614b9d103be8477ee9713cf943e038a04259c0958376c1013445731b0a5224402845499f30449f0800de86b614718bbe333b4b8245fc1a8e0c43eadd61f11f532ddb7551686cb8b054b2e90a19c889ccf68394cd501fb92a7211b9b599b2a2b637dd4246a7b8a5f713acfdeba03fb513f998177dd8cb216aa12c27ac3a5b84491738e5a745cbe7a3b5006bae6a08b0cd79a2b27af3da8ab021893e7727192e28787a052df8b434abb0f3a5866368991aba8ae3c891a0870327c3967eac16e8bd725bde990ef882bd6e5663d50b7adf75048d3202b39b44606ba1ac33fbb7a866a59a8c70988705974ec413abf660d5e98b6d9c60454a8825874953d778ac527578769aede871242b04561ea2d6e5c8aa04ba44228125bdb4beb90ca152705716cadd283ca2fd83ed9087ac5b2c7cba9334fe936c69586e3399fa46a174170aa8db62bd7095736012b49111e73bbcbbc89391bf70af7bc3581777c54d74ac2fd37b453000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 1feb4f1d63f08052045012a21c33c2951b16c4b5ec02c00093d54ded6f94309e44d558787273bf593ac4bd77a56fe4dc30a54eb68a2f473c31c239ba18c9ca489cd50611fcd3be42f6f5069facdbcb7166a64ba7c06ba953142e5914ce20ec69038895c9860e69ce6cc3dac6c1b28d30fe83487d40591995f091d4ea116ad2675e32bb83325b7f379449dcded935027120d01ee43b2208deba910ca7ee635c5b928e5f6167307c813c8e7034096878a2915ed2d20898d8412ae61a72378a4eaee2f227ad5467d04ab884340cbfde2400cbdbca7e07a2f14016fa9e403a2b0ed27ad1dbb3cc492f584a6b5a7525baa628303039f69cf1c1e4db920ef7882de21eda5d2bad76231c88a061fbb2829fe93149c69204e2e783009beb4188fb876a6f869eb11b1c32c2ef15f9aef62f699f9692a502a4d87e5a497097ca73f8fddacbc03dd40a53abf267f749f9ac0f7b4ce9417a0f5eafa91fef75441ff7c887dc2eab2336fd257d4cda373121af864d4707fd20965e063fae456f0bef8f587bb385f8e5c96592c9b7d6c284197ca1706e1961dadf16a2264f74be425ce117a95dc9466474c856adb20931cc920177dc3f8c93d2bb3ad5f7c5517f0b7d141b87a8c287207e64158934766c8845ff0a480da124716b11d0e257206f68f2d4334e8e260895ab83e218e032a35f8d792be7b413b2679f8044e1c0ff67c474ef4c9b7e0dfd3d9bc4252fa81922cb146417dcadae7d7a7ee96e13bd480c96a4314f31fea83eef588bbf1435528c51eaf05cee2f193c3fc234d695ba32546ec77a16b1ea8047498125f2bf78dc9510812be57fe0ec77bfb3e28f42a4d15c2a2f0b54aae023ada92395cf384a1524a24e36ee2e69128fd2ab78b5af77d28c2e9ccd6c706315d46887db0c0c4f28666da7437489e3b245a19fcee97f187327a5806d35889e63940b19249d627165727f66f50aee62dd9496d6493c1f01ed0091e985048c2aa85a3b25a4f90f6e9f9cf67d6961ca246d763d3437ad64e7bc5c58b10117a66c40be088c58a27be4bc1360d114e61d002e271c4806b872f5ef7127217d5af6092e4aedf8b5c40198f266f9e10c560d4873668d58c912ec7ec18d27249f5be604a82d50421d436a3230780419bdefd10f049f404184b3530361c5c0644c3205c32fd451f6c6919487aefb12a75c821cfddeaa14c2abe20db3ac57ae0ee8ac4567db2d1e2d0920fa036351e8bcadbc14ab73d0868df6ab06e675ee193722f93f64a5344bd70593c23647152a81acb4d1a08b62b5f0b2669210d5d7845248d95fe9ccd796d73e34af955d1c94edcd2bba91be211cacb0884a90eab8a0125130ae65318f5419810f4df129c8504def662df4879e2a8df02d881e9990148065942c0d52865425f3239c4a4af51eeb85e1baeaf647e794b9fc04ea16eb328b8b1d0550e5dad8bf6248782b530735f8f5da40cf21241a2d62951cc9e894a339491f64b78d436c635eccb855d3a1f7d64f63f23023620408df6b3d190e7965d219a0cabc0933f7d50d9854e4d4aa7a5cf67b37e0475241a5af8e5000d117ebcea40b526c5a669dea1760d7fc30519148649fb00ca434f2cd84862a2755a99531854cdc847b7d5af3ede653ad6959f49c921d4a8675f7f3f51416c39e026488c297d844a8429caab43671093cc3ebf8730a18bae06f10ff8047cafb8d80edd7630c95d008cefca78f2b08ccb330d36eb33b18cf47bfbbcd0e2f81daa87160f421603d10409b8eab53f1561623f5167dafccda4f9a4e6504a0b5e67ab5dcfae98672f4cf62e4f152d09f2c64dd81e3476839aef8538a86f3b616ce55adf1dfe9451ca48acbe210c32ea1cc574730b37d4747b580c66820caf475858b4b6ad0eb7c06ed56b8f16f83595ee3466bdb8aaba3bbf35a177fd6645610b9dc238571e81b27b94757c9004a4c512cbad25730bc6f85255ffdcd052447766219e667095d4058e5f0045e16c0fcae1aed8dcb7c25fbcaf29a71a8abf72c398a61b1a57bec4b11a8c746bcce3ef0f82b9b2bd702d92a7fabc1efe0065e662270e1ab664cb1197f00983f1d265ff738f63b93d5d95aa4ddef2ea3f473440ce7ca1558b28fd68ee09c7b97e9d4c2052fb1dd657ecf09a2f664de0902f23bacab5d64bd449a0ddab34d4c0695c67ff5f6e11044a0db15d2d19a9ce2aeb818f0ecaf8c1522276521b0193f76e2 +shared_secret: ff81d45deb69b6890f147710945d1b750cf17e876cd4e694158efcaf4fa2cb15 + +# Rho leads to a matrix with unusally large entries +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = 101738f8f11e10897f9b1b16cc7c57ddfb3e4f6b01ad6239982baa07c56c05827e838c1b4bc99f9cc40608e74ed2d123757aca9d8030a0857ee2676db47bbcb1e10badb32508b87aac4c066fc747ad09a52177b378fc1446ea5aefcc30b0d744d2240e5e94c6f12254945223aa93abd8e71fe926a4fafa2a49273d618a0a5921cbde9c6f9648c6c12bad96d080e39ba128464d8f496b7cb020ebb03fbb2850a7118a7edb1bdc438565ca33850c1b1bfa6be29b88bcbcbb3e6675924550a7427035f60000841603c2b4c9f22040f9205c9386cd1b457046b4fb1521e4fcc47c1a0e7fe072bda26946762167d8bddba8c6d04470a2705fc05a6b00c4cc54409499a4859c4148b2a7596c8c7b2e597f0912742794495491117fec96486035f270363fb88511f756238ac9faf98251ecc06e1495337529b209031c0008e4250f550c3d476352ab82c8ef41c4b8203caab3b81335613016cb71b6a1f2c9b71158526cda75d9057c7597099789782b05164d338593b0a9b5ec85e0e6263c6a54d5a06ab4caa6c8db5b40e099f0ec7c00628373c3189e6c129b76827d160783f183ee14151b3b92e72bc4c65a06296a88b9f75948a18d50f53381f59360a19daba36939c3af104362d725c62f51b72ba1c8526c0be6a36930e19de18c2b1e470136cb7f92d246dc45992879b3762c92da6b97c10a552ff7a8b56788985814d2f9c5cd316dde3b2c7329b42f7492917c9174552219719575196844144a04a0b6718158cefc7833a421016b5193a5b965eb7b689698d14a41c03a408f8713aa46a077eac06a6106796c64b67117acd1bc0220125f4408222159503864eaa8824626c5651959d0f4c250c0002ec513c0817a47927ed99467c1eb6091f91773495d70084a7c344f41e0967925734ad846d360bc2a73c96f754b065112f1f472fcfb331eb8a286bc69cc1486d58b2d4932086f40c90ec601035c3016985962da0ca3571f5f36791a466861527a1ea52dc5a6254303971ce841d165985e2c02ec5b6a92278106117fcb377ad2c6c48bb24899a519626c74da9a3b026623417156aeebadabd418a0a8bc0bec5b43316ba7d7c4145016ca515ae19932a50819ce609b9ee9997c29a9af03a05ae9aaa89aa03b4ac5ca887b7b05a14d283a42da27ed7187369b0108165ef403550c99cad5c3cf7e28bef8a83ac8867341b331c9c02176520e0555af9b8047b3753e1928c849a13900545ba7a5c16bb9b6c689102aeb73eac0c5aa093a1f92810472c29642cd2a549a32bb9029961f6c4a20876ba8f4ab5212539f543c9d247355a300467b5a0a9d130613549d17a185fd045495f06820684c86aaa18a89317ea34eb0923d5600146497729fca9a66e9a544a55c1aa6841c556cdfe7ac0959635281c54e044c025c5b466442f15655474928c617a646c7178bf5b679062ceada6c6d702c22d339e0d3a9563a252e36287fc7975725bbc1a68122f4579a34c9c84318b13a76254c6be35a1ac3b26a8c2b373c6378cc20a7de414924a38ae7e8423fa1a66367a14b198f9980aeef068f346b208aecb13d827b3b5ac088878548171451109ce1535eb0a18ed1c1c677f9ca7f60501e1986ac19764849633c408d476540d6290738633a2e711eddc883ecb5111ce01bdbaa3df0f381facb31389249e261786f79aab0a80992b9a74002c9a7432fe88243f4276599389ce8119b846a75dcaa8eb300a7cfe266bbcb3742bc1e4dca77b986be341a03a75644dda25805bc50818a05a8495fb351c0709a5c37a07759dc0c3a253a3c56740aa8095d402bc65554880c2919dc6375451be6186d18da30c2f35ee4f1abfdbc594ea6ac5799c1d9912fb173044ad995d675751294489be7674d84181f4aaeacd9951dd0be79b919e585560d0b090b750f2f667e2ea21e283577e3aa4f6b11ad2560212f8309fad233ef87c6fa37480217a7b3933147daa29d2642cd582a3ac96ce5026135d5376a586f4604a8d511bcf5d09dd3e895fc3cb7d90a2535a1c31da1b1df5562e1b2a86a116212ab10a6328d2b80921c3c04ca9a4a9424bcc3a75e649ab34481561eb0a0920b71c245c1789770df5a7fc9136d4b573b227614dee4b23276af4b6c3537bcca67b59afa0119e668c910060e04e7c94a1a7fe0e191fe22cc727d12dc6d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: d4952da07911c8ceb643e6b3254f7fcc22242a88df735c9aa9a91fc692f32544b7f30fefed3311dc8a927930c50b17577573f858b778294929b123b180498c22c1ddc92a11cda9c0da3cf300664feda28bff6f1873a682451d24e2c2a5991fa8aa29718a43c2b379ebc7387fad5dc9e3681d233641d1b805b167ae52631b3b6ebb0aaaa6507d4a87a808a1c3b62c97da49c02dfa2c729693de194a1bb1643fff14e0fd8d3749ad33936e8b4f8f6f3106c08a8098c6b903d1cb70c2636571253564fb7dbe54b96b1f999749d0c81c698934756b455bc6ec918ec267b5e54a0a812c62de971d8ccd93e4c1d6752afe3d5308c5257abed2b1c01d0489bc1d5fb5b2f4b199cfec784b2bf92dc85904cf78a9a6c0fc3a9c5c1640f905fb8fee2e08b3c0d5fa029062a5d41c82c512ab0645e7a1d728e7fdbcd95ec59d121fe876b1e6d624dba73cf68f35b23bfff7a435a5afc81947587b60d588c54ba0c999242830e568c3269bc96e001a99edb6ccef086abec634d0febbbaf72d872eae8c5606e86d9bbe279395c5370647f245351ae41358cc26f5447c37f959396dbb03e484c80dfcfdf93701e849e081232e85eb15e034b5421dc63c62190ea54a83ae06c89f395f7cef8eaa41517345a3a0aae4705529d3c2c13f71418817287c860f062c6d0c5ee918c50e613164dfd241533dd08928fc695f3b3c45cd75c740f76f6a896cceaafc9afd64deb69db89cdbd589fd6987b1f5da8b5b9115d675d3ab6cabcd0f793f00418c97b673fa31b851c1209140f76492359f3580c0e4de09d2a3efb2b3dd4afd4abde0e97180b7b24a45063f07f82771991fd2da92e12de7a868e6e84dca6a318dd8ef3a1ae6420d63051306d0582b058b7a96f25766aa0d863059483e9c7a17748a268e896f0d02173606e4381b639b480fbf0b3541a7c1790e66810e064cdc9d4e176cadf3d64ac27648467cd0b8643ad1255347cb6b086788f6c4dcfb3363cfef54c3ba5c13562ce884b53b09e6f149a60e1fbb35b65261406ec04f4146b2de7c61c2fdcf0f714981308774af933b710d1d4f315feefa97a581a98dd083a4d31749e5d0af2ccc2109cb739f8bfe85e4e7844dc3907959ff3c04ab9edebf3317f354c5e0aabe4de2e0711ee771b8dd70a3008eb9936f8b6924ec0dc9897a801e00f6738ec7f31cef0db9608d2c3d3683e97befb02f0ecff93068a46e57c97201608756dc45ca8bad93e0f562f5d74790c87d4ffaa67613b89c22339115d7499a2fd038bc4533e46bfb5eef28b06b8fe9a3182c6a8b18286edd1b57adeb55bacebf7c842d527ff5024c0ffabbf78eeb956a5127555894ca8459d99df31fc0fd1e1c5f7050d2cfb427dbb2f67530e049e23f8310b88c39d25dacbd6c7dccb9e382b0b471980d54974adcdb082825a9d6325cbaf90030a58193d5ef0a4e1e8fc885f04329253408b4de1d25acd097ff10e0afb4ff344063edde277e49b18996cfa57a7617b395a54731052a95a3cced450d38a31f19811ba278c60097aa1e3c91e87c57486b23ccb07d687c48fbaef4e814f9500b1e6f679a749614c86197239936be1f7ad2290b9a421c4f2fdbd4178a75cbb9cb1f7eddaad9d369f79c0e383fc9ccbbfd5e4cb93b211c477cac2786395e92385a4c0815d0ff6849e961395eba07c86e698d5f62466492efdbc326ff7c955840ed2877919d1cf95cdf5f557ad069363caa905c97471c85c5d0e65cea1ca90df82a0f8ef5660f68191c1aa19a180d18ef4a7b0dde8250ff3ff0a97dd4d65c3faf1e3a426f6c4b64f1f2d65ce9c5e5921ac20197a00f2331e810acf4f6b71878f1b785a28970d844ab4b6d1a604824db09f15e96bb711389114a4680b1c8b19be73aa5b039116c7a7cb7d2c2b026f5847afd6d2ac804f4ca24554f5ab27db900a159579efd23d78cf5542a038744cd6bdd64a3b59d233b878b383bc0ef38a0a2a8ab60869b64634df1cfdf3b53a367d3bfbbfb741badc819cb01823a8e8e16f6b4a35c380f99cd45af0edabf9de4fe2e5b0e6c34f7dce2c8d9a4be2b2b8951c27080aa965ae3afc422ddbefe0da8f766c8c63823050d1ba055e42352d305385ab932f99c0309dfa8d6362ec1c07e33909ac63200787f5963653db6ba2994cf308c9763a153b6ba824fb8ee94bd6a38f2a12047f7e0b01d090aaa41b4acce8396c18aece73cce364a7e6d9d +shared_secret: bd452a700448a4542a31dcddcd0bf285610aca6570d8bc85e20e163a13db5663 + +# Rho leads to a matrix with unusally large entries +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = f6036a8efa3d74327dac2417e6fb05e2f1c178023b70214296c3ce65151248533f43a4b50826b181bcb51fbc54279397a6e50113635faca0cf7439be90867a4c548a9af0704da13d12c7549ebcbe5b279afc266fd83b9c4222b717b86fd4724cd0a35238abc2c3390695ab975bd38e0681b67bf86f36cc91af700277998ad3d700e6419105dbc952144561137711a0acaad546e76c66ab5722bae1cc110abdff7044b662beb6acac276317a7799f7ec6bc1282c87cb284006b3e74c361e5c6c8b899ad122880a1219102404fad458170f8aa3576750a9682c830c7c8796daef63042f3607c5c059ff98b7a093ebda2947b861f497202510a6a2cdbad3d7ba3b8da61f02671be3410549aaa9c3140635334f6b4385cf4105ce791db08b73f3ccebac9ad93f1c7abf6289721568d601c2cf5ae2e4690ae0c77b66134f3e1c33bf82771491da4d228ebbb7077312babb47e1262009457a3caf60f0e47145e29a3ec3b37a67b9b418625142937278c50344c05a0a606fe43c229749415064556a55dac28321be77a256637fe2b8dedbcbb02a29ae505c641b004f970b051e028d047cd152477db673875148b71434a80221166698c3cc589374634c06110320b0f249a3ec4856ffeb478979533be7a333eb144550939b00164b6b1b545905612dc24775ac2e4bbb531c6763f934121a8a8d804951b05c8f9c9237046245b422272288e333970f7469a78d543132055c8781ee308382398a7bff70f62b7357bb8093624a3ebe3169e957f3a33019fb0296ea1cebbb484e87b04eec76a3e29cb38b451816a8feba195dfe79e820591d7e73c50139e2beb847ef43e42ecad64b533ee3857dcb35413066c7eb19e8c1bcc42c9959c13ccc4bab6ac81b44346261ebc74af482e34f855e08916e0c1bf33861fb6d706c3a5c03bc62c6d97cba4174b2441a32ce47db7b8703452bc4693be69a4c539c6a6b744211598cb644209e84a711a05b9116574c7a222bf459305f10a68d4c48eb72ea16526ff7619e8391032685e244693ec24b30a257511e00ada5a69b6cb75c2983d53157fbd708fa1e54057757bfe6067d242cee6492a51098913a6b2bf888ccb280dd3cc48c6a95ceaa5a844338cf4985978929e9ed153819b97dbb944e18c0d7530a09cd420aa7ac5f5910325d02368c602d531289db188d30c6fba407f32c41e80133cea869b52e8091f701c3d7a7d4b317e9b0291f05a652165695130c6cb783b18ab1ffeba0f72d2c21cd9844f8ac2826267081a4315927d9ab6123fdb0193f723a3cc3738794f735b1a145b83189b71c597bd8248ba511b9463b9262c80790a09167720473fb77b1da2af8632ad793c10d1916868b99d2d23a06875769d7151c9a524aad51eb4f20bc58b4c572cab2642769fe444362533a04c7350b3c5eb418785e13e05b5459ca2c856b1b4e1b266e9677a27d29f6dca61a2776c92dc9290c04d77d7bc7cfaa8a31a581a623cd1c046a488080ffa8c13f66f4d262aba53cfcad64313c5c2fd838f88e903fd3c7da0942fbb3c84f4581457252e8248a75e185d4b5b64e0634b2ec5c5a088a6251c9c8c76837c95c066a565f9fcaf0cc76a79e1a20fb05a5bc1bcdef32deae76105c581319bad317b7991d062ba1761cf1accc2b969ece35274d7b6a3c8c79142c43b14772ad96fe2f296eca5c9aa4b68cf14c584792b1e4ba1132aab4de7788dd642e307a6b2476caaca69a1f7a3946404a440764e4446c20c216da5965c88bb9e09c165b93845c68a5674105884c46c601d35737649815de052cabbb31b39f95531286e08e64772213280ba64b6467d03ec43c5911854498656a831a366cbc256813d451153a3610e6979671ba7bb7ba41dc832a81885589974f8ebc2e57a1709eab2ae9931a09bc97d486839d6a16b29b7de642aaf1861c31b6ebe82891896b4e75b2360a776678aab892b81c5e2175eb588885b980ca02e9ae7bde1dc6346a13a5964c4391b4a3cc776d9311f0a9706c2c04584d05b58624906417eabc95738407ba197b2a14c6e4655396575b585f7c2a8b262cfc7c7d6f3a1fcbbb4356195b502ca7b278133614379176f3f4aaa49a040c7672cfada79ed5a2400dab4d050560d8a30c3e57ec6411988e941622c64b934833f9225daf42885a5b1f7909d65b5000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 021a27d9ee3c76b205152ced9c68003eedb09245954d50316a14a3e1d877bd9d6480d479265cf7a693e77b8761f11a09c1c30d2fa5f50497ae6a4d2afa3e61b0b7fb4b3504024763ac6c10fc2e6bc77dda7fd837ce115b84b1d0c749e8e4a961d3e7de1bf6b36741be282f9df710b46410df07191c3207dd9e74e8c4d43e3c75607966a1894e86caa95cba51a9c3289b00ad0fe59c034099b822654caec138a1b06635d1de59fd469ca3e928deb7873cc3dc2fe03aa4b5729f91b940f01ce83ae5aedac13d0a961cd9420584346346955780974ef21ccbe3208cb019f050fac0b80076b48ac6c0f3c2aa2dc3a13b914ce5343c7a140186728bb335a47515d361466c2d78f3fc6250f13a4d4fe6c8a587512700fd5272c9de73eb698045708e18b86d6b6692e3afa1b73e5ed55614dce4b8e71ba9dab03a246b1469c617f5bbf3e502632b060c7c17145ba7df290ec310661480de58a56cdab7a2e5a8e298746eb1b7b8703c5c650456c567056451e209148059a59af315540e448c0c6a7f48df9e22f373aca8be4df3bc9bda80e94a92634a612afdbfced39194e124c07748328698cc21f39de459b4cb08c6c73e80fcb6d0d86adbea470a207b0575f180ddc0d658d7ae66b2166cdecdee265a02e56bc4880797f0fe09c081788f5bb507db2406f37a2743a3c22ee0caa51ab62ceccaeaa9e189ae412f8dece857b0faaf61f81f2bd968d0f6c9048fca287f74d954e48ecf05806a695d06bfc66ed8b5297899dd4b3942424cec559c33ef0da1ca083e7eea98585f89003ae0ba98fb3f51becb80094ba0091f97b3a32c635a12308851e070f4a94502be51fc6f4e11bb7803cfbee43135c82bdd3bc82d58383636eee387d2c13c1866982d7c4f15f0be3bf5f87c8fa5d43daba703c73135ff3aafe4cec43abf9c1bcd16e56d6df85fc38dca4d09245677ed75b585722a9b20fd5ffe9d0436b3fb592ca6982ec2b96a8af589296b0b0ffcae14ec9027d4815bb9b933470a357d0afe5aba5010eb0d93a0fab2c28f84d7091e607505ecada258a551238a2ff68621bdf5ee1246c27d6e8673f1b785f7abc9b88310e3c1ca5e266f2c974d1c88a31e27a102330f924fb3713adccfd09c4415c1773c8da37e4e18ef274b00d462970873b54ad108f588c8bee6a7b4cce157109aa04ba0daefc9b5119b3ff9f70d4728574cb9f57573f41760248a8a8cdbbf7492083cfbf585c844f03ee2e08da4a08d04717b6244b63bbf80d0f4f0477f94de7ae6b2883388ba05b27ffe8a497541f012f16bd9ec50f64cd0d14e1a6c2be8c77ffd39d1d19ef402b46c0c41718ac406acb1b71fc044b1f93a4fe98fa8a0bbf09caf9dcfcbd8e8ecba42e4bbac9bb5de40f089b86ef71003b92a3fe385bfe603b098185d05f43819f8686b4f4e14a75463f2026baa66789edc52610ca8d3d5b11f10672c70c80effd7ba0352b2079de6910221ed21c487a7367cff076e84e1cd3ec625065d7a9b8ce4eed9d91c8a72b16a4a50d96b8a00921695a00167b53471e79aa445c656fc0d41da64d836ac21a34be767c514d1571e500fcea435d1a1d59a6d07140ee4d1a4014cfa8a6f0be9c334ebdea053c842a06124dfd165232c1a2ce63babadd8a56fd78ffbed64b63bac3b49e5af81c746253bcfdfd045deec785e0e272ef8c7151bcefdad6fa2bea962d621abd97f9b5cbf1eab792139d16b51e1f732326a5e02926817ed0bc4c6c4680e42e7d5847d6e0195c402e59290ce8a8f040a70980eac1a0bcd3867ddc0f2de9b204514011491c8dd63a371d331b2edb870e76e7ec5b27146a0097b969a6b157d00f66ce53b71598b71869063b9a29b23f3623837385571962ac29ac868301e2ec0643bf639b074c8a28f0a66acbd0ad77e5c86d01cabd8fddd77a4fce6185768566a6d98e679986aaf9978c49189a2ef1a218977f4d2c34c5027188d816cc918061ad13421be77fb910ee5aef5e159fb74169d7763b446e523470409c4fc4e76aa6d98f120013d4af284bb0a8e9eecff71b8544f9d3815062173ad6d4e9c4727cd6395bd3da54237501c73390cc5c48683d780efec478d2a15a40a5ffa3455f52c092993859fc8ff9c1ebb308ed03b5b88f6de341c3be3ddc96f695d68c1562b85806e162f1b07c5f10a1213f8d85f6b7d92e06d664cda2ddba47b93e2922d30c3bb110405fc7dd9213812 +shared_secret: 8d99392e447dbb7f7eefd329325bd71d1d984cfb01fd609c3283a84fdd0f0138 + +# Rho leads to a matrix with unusally large entries +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = 2970cafb137f0e7c060db72de03a46d8a860b0cb2a45b462e5530eb566bcddda2315a633ae5054957cb74df537c30777a547b0c6e486787c74c3d242ee34158b212f4fe4107885b2d3da2224803e73bb282cdc8ca0365eb70751c3263531b31dae5a29561316003b2d781790cdc2ca09b65ed19995765263f06c8a1f3378d46c19b1b46a43932952a37e4c828e99f95404075b013b7471070422fc65f9c9965a1c0cd0141472fc7004f6319b548c19929f792ca0d588208ba4628cf2bbf7377ddac05a058308b7fb92cf55584a381204523a460310bba06a88d4b69cf62fe2a71097461a8c3b5eb212337887a34fcb278c59931f28a0000227d9cb9b1b3753dafa63e893c9783764bd01b7f668b83cea1e7fd94913a405babb301ffb6b57b2845cb7cd929c0acc7540e1bcb196679380822c7bb67f732a3c9ca778b60451fb03755ba151e6b0bacd1129df5174ebca123805beb8e91b840b70643713272ccbcc2b80008a46b3a818ccfa6ece2c3364f373fc8c10ef4b4c95955052f99202362bc3020cc2528486784784095fbe10b4a44732a2c6c0b2b50d199a93c544a00980baa2f5cbcc6a3456eab71c2798d04c9a85827b8b654c962b7e4125cfc0f82a59632462d656b9b96188cc89373a6165c287bc890d5ed9500ed08ec1f2822d718bb94525ce81cb48b4999e288b5c90bb7e3647ab26a7f5479199f9198fc950948605b9aa0c8d0b133851abe4d77aed7455b70410b54a00bdaa166f0b4712e3916a70846840c8f3f9c80c8a95c912bfef188782974eb372795d96cccfb6c9209cc2cbec64bcd064e238608ea46f841ac02d6aba8ba9bb251a381777b50570a5c79257a964190e56aba3b27c708803a2e6909a6920f546c509a7524d138a9c2c839f34a6a814b10ba4642b7214e447844d553532804154b36f688715b203cd576274445c98abc60192f603d970c988b42d6cc250b4349f2d91b50c123875c608c932a7f85bae2cd54b6de80be13914f2606cdd9b03ed83219ae5623748972a657e0ccc41579b745b3abf6b04b50b945f2f2963504bae804a261254ceedb767e252c64908abeb94669a94cf511b992c475d99939095ab9b19f74f75d30efd58beec598352108e1ca648b5f31bc7071c86aa97c5fcb60bba8884a3c72414916bf68a277a82b78857de531611ab7c7a111a632a64704458dac97dee2442b4b05a378baa74f34154bc8c191591eb2196a4d3174c3848b5f02f2351211f605b2608c9fd8a101b658599b87c65a3c2c7a266c02b3b8beab84feb0071c25a50b23ec8acb1daa290cca2ad6fbc8280c5cadac42993c083a25338150231cd134548661d645c678bcbc0e7815da41a14e8eb123c482e2831a1ab0399ce02cfa1a39a41c714bd8c9206d6c8c922043a235cae2bb6dd1ac430e22947444ded7447e00a51c13308365aaaf4da9dec03495c73295aa9259d4529eafb67dce58b374066796983f06c91d034226aa75afed116c886927e135564e4000cd86016346b56d9864c7abc6211a72cdbcd32fa869cab01f1da8f6bcb84cf1441781c6baa263ea684cf96a1277e2459ea07c6071b06093985b047b791ab6e6593be230099308a79376bbbcd71492a4a4de83a4d70c290aa05b74a8c80fdfb9293317d10e07615acc85d762ae35b187c55060c912d9a2a09e995afeadb874a5526cef75fa4701e9e0a5c082b92ed3b8887f0bcca362b492369881373ab878d00054027c4cef0c07cae57b30fc51e744653316591b5845c0a47492378764769cf3846b263ca6e086835cf0197b5025b2a960097e57597327f28d4b2fbc6bb241863a2c96d3242a031171042fb40afe8a75cc2976903a603b96019f4c7420b77625470b62287e03239e5008c1297888f5322937457b9467e52937996157e50764537ca495ac75fbff53dc1e8cb77002aa7988604b0829976c8e49649f7446495a7548227ce61d963da3bbd2705a8dfc73f091c20e72b77f6640a14aaa30134a1b3fa7083a50cbc720bc9a802a4208568e2a2ab065db245628ef2a138ca1d71fb3f66d6a8aee513f1c80b64a0bf38f01f4979a975054dfca823c4165aeb1876a7a81fd6920974b516d6b3a1aa71776a264a32447240855b84ba0fa1d35f07a8c11361040da933c4c44e88417b585c1a1605c68ce4000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 6899d650581d8ddd73d6e7095d24e2962ac573877204768c66a78047649ffd373d4e0cac20e0b98675e6f50962871c33957b5a7ba2af2ab800ad728c2d0e70877cc3f459ba53d432d45f4c9ff4c951c35f14185e01a1fbd735fc3ed84063b579e69c230f41af67c9cd7481fea81ed64bf248c63f56f81115ad8255a172fc99d87d8fdd6db00ee407618c7877a2486b6fac3b8eb7bea62c24bb5c5655e47388f2108ac36d5e55c5511d72bbba65706ffdf297cd0788b4c34ead564e86e78c605359b6b344380a4ec73a4f64b7866a2eaf36a494c76adba39158a3d1d3b41973cad055780ce211982fee596ba61e5e5f7e44cdd8b1d6f866c708d20403760b9fd4abf31a0573afa130aab5bf7493b2365ef5437b7824366fb3ec967016e2da547eb61276be7c5509c2bd5e16d8812c034f6b4c5a7f5f489137385ad5697c4312042303a5d7f62e398bf5fcc758ec1475e7ba671c656911bcc32ddedfdb07252ecd0eeea696046e3fc9e564b2ffca11562191c4a1e4b31d9494961fb66ad44f24c4b0d8d7422df106663600ba380baf53007b6146c923412228936d7324a87050e62b185bf3700959e262fc64bc4f2b55402d57c63539c57272240f4725ea23d389b17d6af64e864ce3429c9c0514c9b384d79b830a9c6fe12f8781755d53b8af9bf81e4784d9780ba6ba0ae36f89a99289307481bb3955075057648129349f1e0ce4e750be53372f82c92230127280f0f393150c89715a43eaac8abf538a031155661b489b066e915505d59ba40cc0b5a4b8de7e731533fd06dda44e65f22b7931c4b8e34a72331d32798aee1c16d81e06eeef892e7858ed2e9c27d21a3030567e40a369e21c925a26712e1ad6344474bf8e9539027040eb4b0cf65b627623ddf81253c6cf002f837673d2389cd296f9abfcd38a36c6976b03432c9100c7ce9bc862d2c98a6dc2f931f62e471369bbfab644f8ae37deb65784e6f5414bf88cba9e6836d3fa3c0ab7ceddd81d31e94c612224270fe79048688b6d8d46acc7d656a647888a469fdfb6ef8c8daf78a2270c5058e9b87d2fc0e4f8a098c1cebf96e06ff1edb382e545387b2314b2f7d4a669dff20122a0165c285258a39e2a1d27c5eac3d79ce0cdc64dff98a8633882db588a34b93a1403f6a739bd056cd2d6531af36a2701acf47617024cd1cd4b9b60a02cdfcc6f34e4693eba3bfb32780c573b4482a5f6bf109c7ee51792252dc119a5e41a4ea8f25557b64e500a83a6d8a839c456775a9ccb906a733391605bc487bbd6ea7272325df31cce2093649fa8a379f4977801240ea2be8b1e6a5ac95ba613bb2798bfd1cedfc34c39e1c43cc094f8bff34607f8419bc3ef2fc0c37075dc49280656304d2f642c5ffe86d5cdea4fe96cc8b4451954e5d898f6cdf7e7ec5af447dbda66a254b964df9e8dd565d46cdf04dd2d19ea1c7400925be2105e45343baa9855c5236dd70e042d0153c904d30fe45d087b0f0863ec603ad74baf1836b18c91d98455f3e6477936dba7379a6072744be6d4c64bca89ac3334ba727e0763f0ea52faff3daa52de9fad1f27e566e7a6e85914a02bdec5f7a8509f80a616f6ed66848d4ce8920757fb7611ee7c70366ce847fcb62a94452dd2523daa21c759f36cd31337afe1a5c8e8ce8799c6f03873f58bac3649e0d0fe6adea0199ef6eed64dd1e2fe0bc606b97ec8ed1e0b567baec2816273b7280ac91b05fb25e7467e934bf79025f5b4060a813c221291cb307f7783d5877987124ecab1d9d8c8e36c10608871a92e8878220f593cbd4ba61c35d2805500cdc0b145cd6ad2cd614481edbc913733e3a5104b0006dd26e871df58f32047701b2420d93bdc2d0a2474f7d9927e7f196993d9792e30cdff67ae89bc6a27236a6f0ce0439d4b04788765943c2be5c9fbc0f139135ded84ce79d876eeb37f30371194c8eba42659c185a10c8941f9fe9fcc722183ba7e22a7885a66d8cd10f214f4534171e0836d86368cd04d87737923da8801166afb398bb345b5bee89eb512cbae07f192aa50a932a5d92e909e65443f4004fca49de5eb19abedbf57d066d134e096e7c63defe4430f8e1886bdd3cfb8077f7196584398589ced5670c7be91d715a20f51603db8ef35724805eb1c270cf16b282ce7c79111e4577a0a1a27a435c070d6b3e89dce1bdb53826fe9a05d86e586ecd950d27247ceec6d +shared_secret: 71e358b21b3b98d915b70e9b877e94159aabe9df32737c71c50c2f99d7a074e3 + +# Rho leads to a matrix with unusally large entries +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = 46e77cf311b99822a8fde459d7d01210db0ce68054199939e8156f8f7c33adf5bd5f2c54c6bc70054a5b8e305d526c1322e49f57c47264091e39eb0c72a596ad5575434c4de07c0bbac32f7ed30a0930221bba0aa75140b0c97a6e1775e1211740c23390f0094d144632169e4a0c2534479b85546a7fa65694610b2fc19488a5833aa7bd0ecbc6dee36997a900fad18b1c13b7cd381b1ca598038c2a4e40ac374615ffab46b3cc992df777eb0781aec573783b75cb426283ea01bdcbbdf8f8b30ce92f46cc7d4ce407bacbab2bfa27fd7792f43ac0ba74b58b332bb915be649a573eb22c12b6037b4a8cc109cb4495a337e42ac82c48dac2099684bd01700b7da007dd8039bd6b09900776cc783ca114358ada02cf5443c9bc6c181a6c86daa79371bf6e6c5cb68b7255d592796bb7b38c5f8c655b2e480cec127a2dd4aae4b23c44d4367de78e74797b64b0ce07a36e73613ddee8a61c5c32f865119f1a60b44ab5a28374af3324e68604bfb33962fc1f06d661119c0a081c45dea91190c4cad6b6253ce560d4e7855a64c58bc950bac88ce61b76691a93be4b81c202768c984ba2d9122cab4880942c40d87022b91c5ad817dcb5037b835dffd916a2b35c09f782ecb72cf63239b6c33bd73c0efd115357b283bd6512c1eb3ede4730284328a86021fa805ddc55c96c1caa3832857cacbeb5353453638ee70669c4dcb6a10c723b18c71dfc44fb5600c0f8cbb35c6d0b075335f6bec7ba1306766591575b5d2b4eba76a84e326b1475b5ece6c3ccea5e555616d38c03fe630c3ce56d3ad73858539d1718b915fa703996ce39745831b3c93e4829cc5677e5a79d3b1794f81816dcc2c5babc859b0966c76c23a4e66f1031634c93b8a51550d7850d5407b4e2d00ddfb5862c1c570b778042986f66ec940c5039dddba773c9a6a3c10e370714d0a4a43300a7b06b01aea6b6a4b5c17e7482d59bb9e1fb16897cc0340c5b65b9239d973c06d41f6e7b9f351a22b8eba6ac1148d91bb4f8959395e6a6ab996fc79bc8f0f7309be14fdb65bfb0287771908244033a3975ce2ec096abb9c15fb40d33a074fa2c84bdf7b1ee94746c42044be55484a179ec5c7edfecce56f9845f29c7c535282759c2d0a2546a13bf56dccc6d4463376a46ed05ba7f54577f26c78e2aaefb0928c36820db23a999e4b399b9b4fc864444d665e58ab24577533aca26acc5c512970c3a84bdd6fa7c7fca6c60eb73a1ab79db779c208c61a2f5311a694dcb7ba37ef7c7db92587d4a77fe3665036531d12c1adcd29cd2ab733e1b2d3ca56a2c7c9f7e3b96d6355b73c4bc4061ce276308b449cc0660b0f9c30fa4a62005f836e182a77e0b74d2b86e3bb6a63fb58d362b9496025bc5485a086808d3779ee28038d1939c5e39b645db160059a04e1b8e0e532686f29d34467fedb02236f3bb0b699c68726961f49824d277c8495c9d804a61f5320e61bc57a85bef199700d18a69e25331c41646abc434e6033d4abb30f114c35377365c51f5173769c315edf076e58710449763af61cc316b5a3e75346bba705db322cc683d5258a249a22524db0e88059a423c9b55d173eca88ed47cc4711a2ae295b846fb113834ab688bc2a42435258b9b1be648c5889230dc153273903e06aa2590ba5d77a63a16853d304933157288e03af785bbce36067c296a18cca79a18aefa33855683becd7b19b3890de40a24d6d389460a4a66378da2b82980e61ff0b144bfd64d0ce294e9816b9105c20c2076ddaa1026c68e50982cf79ba879f630d4eb8df663390307902207950b8b9db571c306a033272ac8976133a641c585d43e730a4969d752072bc6f180180e0ca0fd9c27d7845be15cbdbdd44c7c525fd70b5479c18a24800833c9338a5635034704db0443307c616209ab2172a0bc42c239d87ced11779625315ec168c3716ae62a209ed7096ecb83d7939593e519fff06e99a6a09122c5bf20c5bdc09af2402a3a605318d68c2b31a284b33b1719a4b6c7a5fbe4500ce23f7d858456f47d135a8256c9b40f52c37d07c728da600f127738c027d131b19b0070cbf9322d1865fa515471d461d17c424626b305d68e34838d5d7a35fb91816b65a1f9403771fc3a8f22403ca8616f89995b52425d618a63a789a0dcbb9ac196bd6612fb69000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 09ada15058fa9bf500eddb096fcd572a056beffdfce251252d0e9a8ae0300272e289f4f8868c1f4909b0502fba470989aefee80303e817862fb74080dbd7e872c05bd63162ada055a9f5dc88e9504ac344a517e613113f670c16415e2ebf5ecec2056620d4fd9b905a14a92d4a6af2d34a4aeb21ed9a98d498c25155559fc1b3046a5ea8c519bf320a8e2c0ebfe02cf28bfacb9a6a04c54130d93f1aa33af643d2620060bf578f525b1ece5464114e56c5d21692cb5243f763129a44deb9835f4851cbef64e0f97cc4ffb322c2f3863b26526153db89dca3f55d6727252de17c2021d3da9c1f9e3521f03844a066b047b318baa867c3201a1943c3a8245182f1d3a36b5e4beead76120470b2ef02b85ba13a1dcede19b5e4a7adf09d13e4f873fc5756a37f1ff240f6554683098437a9c374721088c0e0a390c435d8196d94ce94d988510fca6ead810a5da834f86f7bec0e41d83d35d1acae4205dc00a7a9b05779d41c893371bd000e308f70badf03e2f9066540fe2ad85f312db74fb48d054061c869f80bbf9f2c6c28fa691eaf8df27c7e13e076d8a793d7ef70d6cbb3afb059ba176888f569e73426765e4b866148729151dcd89753a68a2e1b76be36559dea6c7e4f8aac70a417698ac9d546f228ea36b01622cfb4405563a43e75c6baf2c626ff14b098ee33b1e9200d7b7fcd2cde35198b3332a3292f32bd1959132fa1510d8f1a43956b1d93820fb9dd88aa04597f65f86166033abd9ffdf9ce1ad4d8ad60d05f298c11f2816a0d375a9f8095aff0725905f508d20b11dd59b7145a101810ee140f86644827f31c64b2a7401048a8a5654934d6e5eb41d43a4957db61f341f5a214d2d09d4fa6fd2cf709264c4a755aeb0aa171a8286e94a354425d795780049f097b3c20ddb6cac39a78f8205f11c4744972263c1a495ab1fd563524f9822deb74a70df9ef5486ccf54e737fba48e3ee8d1c69ecd1c843fc38f4986f8fecfa42be99b056f24a2156a14d10998b4edb501f7edcb9df12bf1f235068b2961455f3513facfaac92d7d5093f00af6834d3e33c5f0271feb31edfa94bb3dcbd1221fe29095d6832f5a5155951dee6ba7a379f73854cf10ef5ad39b1730bb01e315a3c642321a52f4ea7efbd4519ba2192d974d445d6894feb9356a4c4b7512a0b1973568a04d7a45d7a4b0c73cc9df8147a2d0e31d2729c6091bd7a1c1985649795f2cb3b40f4df43e3bd7069683a737347bbca94239bd1e20badcbb702aefb93391c852108708db4949579eb495ada6840755a40fde96a009ed6acb54e98e0f4a084924ef15b25a917d497d25d9032a895a6ecae037af1d6e9f36ba56efc69fb893506a311f1f80b746c8ba0b8e08cb6c980c476a5982ce622e8d7394ddb0f6ba2c6dba68b7c5cd8aff2454dfc92362e82594123d9c200609d2372a7ce4df6e1b7ffa68df7b681c1d5174b3de4eec7d6f1321b13fbf4986b0c73ec6b9583229798801aae096bc5f972e1b3b07b0a40e1280070b2977d6e31aa8f4894d6dbc967a4d0b29c736ab33db11c172d9b771ffe84a8a803306a1b59d7fddf4975e6aef83375299d97d364a7629cf69ed856c689b09dde89fce7ff9e273bb72e768fd7d671d6591c6497f3da0eaee46feb58783f9d0495a62eaeca8e054038efbff4cc599529a9443b9496d1b0734eaa278121ce64d2a59c352b0ade0ffa907846a0ae8bdf02426f270293f1fc40f2b645089d621c18d11fac3d073afa27f20925039258e9d5530137f848d8e3e56f970d523544485cecd847dbc7fd8033f89c04a542f23a12e8e4bac7b9ecd76be797d8195b8f6f4e57b1b779ef41f03739175f1ac5e336fac71cab07f7dc760e4de2a3296c5acdb01dc5096f3f2de463980ab26e6d84b8a0754578de9b0a022281d6d1ae1a4ee40b781f49ed605a387b5176d685d1a29d3581eee4b1bcb050c2567e4f997330105e67f128c28577eee5ba1d170365cb81dafd7b218c8ad0207bcf00a38ea63ea404e3482a110fe16d0ddc8700e185670fc1df89ccc8a712df0c4f69c4db77390f72bb12dd627ba0159afa309e17e3538c313716f7d03a07998f941a7d4b8280975b2c353495747d1e115b770951ce5c924a8adc73eba6bf4146aec3dd27f828266fc3e1fc23f3b5c501404ec19c8030ad8b07d26aff71aef4bd7228728442325c5b880120e1c4492c1166cb27 +shared_secret: a2334b0bf4b86c60c4bd971e673427352bf08c60e7730fcd94edb8c34339028c diff --git a/crypto/mlkem/mlkem1024_keygen_tests.txt b/crypto/mlkem/mlkem1024_keygen_tests.txt new file mode 100644 index 0000000000..63223189e1 --- /dev/null +++ b/crypto/mlkem/mlkem1024_keygen_tests.txt @@ -0,0 +1,499 @@ +# Official test vector 0, seed: "061550234d158c5ec95595fe04ef7a25767f2e24cc2bc479d09d86dc9abcfde7056a8c266f9ef97ed08541dbd2e1ffa1" +seed: 7c9935a0b07694aa0c6d10e4db6b1add2fd81a25ccb148032dcd739936737f2d8626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f +public_key: 537911957c125148a87f41589cb222d0d19229e2cb55e1a044791e7ca61192a46460c3183d2bcd6de08a5e7651603acc349ca16cba18abb23a3e8c330d7421598a6278ec7ebfabca0ef488b2290554753499c0452e453815309955b8150fa1a1e393386dc12fdb27b38c6745f2944016ec457f39b18d604a07a1abe07bc844050ffa8a06fa154a49d88fac775452d6a7c0e589bfb5c370c2c4b6201dda80c9ab2076ecc08b44522fda3326f033806dd2693f319739f40c4f42b24aca7098fb8ff5f9ac20292d02b56ac746801acccc84863dee32878497b69438bf991776286650482c8d9d9587bc6a55b85c4d7fa74d02656b421c9e23e03a48d4b74425c26e4a20dd9562a4da0793f3a352ccc0f18217d868c7f5002abe768b1fc73f05744e7cc28f10344062c10e08eccced3c1f7d392c01d979dd718d8398374665a16a9870585c39d5589a50e133389c9b9a276c024260d9fc7711c81b6337b57da3c376d0cd74e14c73727b276656b9d8a4eb71896ff589d4b893e7110f3bb948ece291dd86c0b7468a678c746980c12aa6b95e2b0cbe4331bb24a33a270153aa472c47312382ca365c5f35259d025746fc6595fe636c767510a69c1e8a176b7949958f2697399497a2fc7364a12c8198295239c826cb5082086077282ed628651fc04c639b438522a9de309b14b086d6e923c551623bd72a733cb0dabc54a9416a99e72c9fda1cb3fb9ba06b8adb2422d68cadc553c98202a17656478ac044ef3456378abce9991e0141ba79094fa8f77a300805d2d32ffc62bf0ca4554c330c2bb7042db35102f68b1a0062583865381c74dd913af70b26cf0923d0c4cb971692222552a8f4b788b4afd1341a9df415cf203900f5ccf7f65988949a75580d049639853100854b21f4018003502bb1ba95f556a5d67c7eb52410eba288a6d0635ca8a4f6d696d0a020c826938d34943c3808c79cc007768533216bc1b29da6c812eff3340baa8d2e65344f09bd47894f5a3a4118715b3c5020679327f9189f7e10856b238bb9b0ab4ca85abf4b21f5c76bccd71850b22e045928276a0f2e951db0707c6a116dc19113fa762dc5f20bd5d2ab5be71744dc9cbdb51ea757963aac56a90a0d8023bed1f5cae8a64da047279b353a096a835b0b2b023b6aa048989233079aeb467e522fa27a5822921e5c551b4f537536e46f3a6a97e72c3b063104e09a040598940d872f6d871f5ef9b4355073b54769e45454e6a0819599408621ab4413b35507b0df578ce2d511d52058d5749df38b29d6cc58870caf92f69a75161406e71c5ff92451a77522b8b2967a2d58a49a81661aa65ac09b08c9fe45abc3851f99c730c45003aca2bf0f8424a19b7408a537d541c16f5682bfe3a7faea564f1298611a7f5f60922ba19de73b1917f1853273555199a649318b50773345c997460856972acb43fc81ab6321b1c33c2bb5098bd489d696a0f70679c1213873d08bdad42844927216047205633212310ee9a06cb10016c805503c341a36d87e56072eabe23731e34af7e2328f85cdb370ccaf00515b64c9c54bc837578447aacfaed5969aa351e7da4efa7b115c4c51f4a699779850295ca72d781ad41bc680532b89e710e2189eb3c50817ba255c7474c95ca9110cc43b8ba8e682c7fb7b0fdc265c0483a65ca4514ee4b832aac5800c3b08e74f563951c1fbb210353efa1aa866856bc1e034733b0485dab1d020c6bf765ff60b3b801984a90c2fe970bf1de97004a6cf44b4984ab58258b4af71221cd17530a700c32959c9436344b5316f09ccca7029a230d639dcb022d8ba79ba91cd6ab12ae1579c50c7bb10e30301a65cae3101d40c7ba927bb553148d1647024d4a06c8166d0b0b81269b7d5f4b34fb022f69152f514004a7c685368552343bb60360fbb9945edf446d345bdcaa7455c74ba0a551e184620fef97688773d50b6433ca7a7ac5cb6b7f671a15376e5a6747a623fa7bc6630373f5b1b512690a661377870a60a7a189683f9b0cf0466e1f750762631c4ab09f505c42dd28633569472735442851e321616d4009810777b6bd46fa7224461a5cc27405dfbac0d39b002cab33433f2a86eb8ce91c134a6386f860a1994eb4b6875a46d195581d173854b53d2293df3e9a822756cd8f212b325ca29b4f9f8cfbadf2e41869abfbad10738ad04cc752bc20c394746850e0c4847db +private_key: 433a70ee6950f9882acdd5a47820a6a8163708f04d457c779979b83fe117224701490830386637da332e74b1aeda0b2f81ca4f9bb2c2b02b0cfd680c11482f335acf7b9139b5b88a34e3542c6861377545983343cd829414e47864212e78f855f52390379acc3a62953131b63ee832adb3bf4bf58e247349b5e097e55abe497b15982373ae732e0439ac67d05c7f037c8a739b18140e144c851dc9611f4bcf04f3a2093c197bd63bb5e6190100545ff81db7fccddd9a324b0bac3c2c2382284058f08b961952c094019c10be37a53d5ac794c010a9d0821f15027a1c419c3c71c9a1d28aed02597ab79b875394626ba39adc090c3a90cf75871a65275eb1c5b03372e13a1a23d0cf9374111f80cc83a905622b83fc513971ec8419f0880c3067633671b09b5456ab6057936d19a4a2a267911b000a13956fbd493821da072c04642b0c20da6cc0d9d864a39365dfd64f10187825fa33250749cbc0c905d7b1ff3cae2412bf86b81a817b86baa30edf7862e5f6bac98726e56b3cec60664caa2a7df670c5e207dfac03824c89897cb490eaa76521222c86205169c91c329c4a184d78721af836ad4db0ca78464d4171473012b7d183bafa627585c64be3809d7e6004cbdc79a5460f0ad677cb716512407d3a619ad09543b739547472a706b317a509be5d861fd66c7d0ed94cd5004795c18159e3a33d798711525f1635a68428172923249635aad032b9e56664bdd48ed24ac75c6468d1903e471086c5f1567e831a0508c539632591ab577d324a82429725809950761d8434288c14034f1c06c1d0aae09a71c740a55701c28ff84499f2bb18b6628caaa3fe75ac4de04c6f913900d86c88126252a17c4d303991db0287120881bb88478aaa9af9bc53d3729843858fdb4648059cac82c1a10878ba39823b041bd0e258487b56cc8a3220c1a58bf66a172b5b9a0c632d674eae885a015c4e37ba073680bede7534f3e34b6050c86b21c3c090941f23b7f6731e2bda0e6ea4646771cec572b98ca0a158919adbeb84ce585ff9f25ebdda6cb6f07a8f811232607e7217bb039babd0d91934a8594059c9687723c04381bfd627a10517f5f4bfc77777aa2671ae124f2b7a5f4d5614029197e6586fa8c17e0ad90781bc7bb19a772d5a4efe32cac89b76c42a5ede9bcc20c1898c08a5b0c07e478b1bbc226efad15f2ac737514b8c6149810779222416537ed00daeab177e903ead6b4ac42370af1b1f50ebafaa1c6e647bbacce72c7d0b88aeb0b06fc1a45457a9c187579bf184579cc351c43dff942605aa5604fc85fc5583f6f1496fe61d70d6cde2327fee713d86f29b3afcbb54e9a92a33a6c1ea6ffa309566b0686233c0f3b1c3144890e4f0829a6099c5749cdec84328ec2cb64a7385a761d64b3a23c489343343b97723ae78c7d805458e1620f0292897691704cb76e3b0b281a83cf64490498cbcaf04802416b33c565171d772d3b9354037587629ae14a5c5031ac36671a0d0c91cc0b4cd69d8402e33b9bcc2bbaf6b971e303fa137be232598a4999bc012574c81651b38b38396c1c365303ad25d49fc6b689951a1cc4c6007613065495f97910f9735d4ea4e442acb2fabaecfe1adef0667ba422c954a05d1b6167a263e1275c6ada8385965304b30324040542cf5a451bcafc74788be3b9b9fcc45d4790e2d7335c60a14f0a49d13053f2626a627ca19553cb336a2cb4a455d8ef3989491472ba0051ef7416e0bbf1a6108fa07c161548e7c62331ae5a2b4e4a108a51093d3150821a2fb547170a1b73c43c550c6557a4048a58a2cd77a244234b2235175a0897d5061b4613482dc136414048c11db37eae0a5df87c19314b0e82397a0d338dc21538af36149d93f8b1a11c53bb5def8b7a2cca3362b7fe3a1408a2547e209058c673a7566c26123a6d8b692a5f33ebdcb2624b79d877bce5fa14e42e83faad82e9900553a3c6045ca329fea4a506558c491b6a616c6fd400b42136f44cb0d0257650819018d3c568ef6c60c6c409e70a829287108c1b6a4d32f76e5cc4d104b02438ef7a467912398ea9c7cbd9981589a341897687b516a13307d66c068c444b4b949a17412413315ccf49b99980034b5b8cfdec4a60b9c1e7455aafbf3a757346990cc32b0599ba217a6c5fc39537911957c125148a87f41589cb222d0d19229e2cb55e1a044791e7ca61192a46460c3183d2bcd6de08a5e7651603acc349ca16cba18abb23a3e8c330d7421598a6278ec7ebfabca0ef488b2290554753499c0452e453815309955b8150fa1a1e393386dc12fdb27b38c6745f2944016ec457f39b18d604a07a1abe07bc844050ffa8a06fa154a49d88fac775452d6a7c0e589bfb5c370c2c4b6201dda80c9ab2076ecc08b44522fda3326f033806dd2693f319739f40c4f42b24aca7098fb8ff5f9ac20292d02b56ac746801acccc84863dee32878497b69438bf991776286650482c8d9d9587bc6a55b85c4d7fa74d02656b421c9e23e03a48d4b74425c26e4a20dd9562a4da0793f3a352ccc0f18217d868c7f5002abe768b1fc73f05744e7cc28f10344062c10e08eccced3c1f7d392c01d979dd718d8398374665a16a9870585c39d5589a50e133389c9b9a276c024260d9fc7711c81b6337b57da3c376d0cd74e14c73727b276656b9d8a4eb71896ff589d4b893e7110f3bb948ece291dd86c0b7468a678c746980c12aa6b95e2b0cbe4331bb24a33a270153aa472c47312382ca365c5f35259d025746fc6595fe636c767510a69c1e8a176b7949958f2697399497a2fc7364a12c8198295239c826cb5082086077282ed628651fc04c639b438522a9de309b14b086d6e923c551623bd72a733cb0dabc54a9416a99e72c9fda1cb3fb9ba06b8adb2422d68cadc553c98202a17656478ac044ef3456378abce9991e0141ba79094fa8f77a300805d2d32ffc62bf0ca4554c330c2bb7042db35102f68b1a0062583865381c74dd913af70b26cf0923d0c4cb971692222552a8f4b788b4afd1341a9df415cf203900f5ccf7f65988949a75580d049639853100854b21f4018003502bb1ba95f556a5d67c7eb52410eba288a6d0635ca8a4f6d696d0a020c826938d34943c3808c79cc007768533216bc1b29da6c812eff3340baa8d2e65344f09bd47894f5a3a4118715b3c5020679327f9189f7e10856b238bb9b0ab4ca85abf4b21f5c76bccd71850b22e045928276a0f2e951db0707c6a116dc19113fa762dc5f20bd5d2ab5be71744dc9cbdb51ea757963aac56a90a0d8023bed1f5cae8a64da047279b353a096a835b0b2b023b6aa048989233079aeb467e522fa27a5822921e5c551b4f537536e46f3a6a97e72c3b063104e09a040598940d872f6d871f5ef9b4355073b54769e45454e6a0819599408621ab4413b35507b0df578ce2d511d52058d5749df38b29d6cc58870caf92f69a75161406e71c5ff92451a77522b8b2967a2d58a49a81661aa65ac09b08c9fe45abc3851f99c730c45003aca2bf0f8424a19b7408a537d541c16f5682bfe3a7faea564f1298611a7f5f60922ba19de73b1917f1853273555199a649318b50773345c997460856972acb43fc81ab6321b1c33c2bb5098bd489d696a0f70679c1213873d08bdad42844927216047205633212310ee9a06cb10016c805503c341a36d87e56072eabe23731e34af7e2328f85cdb370ccaf00515b64c9c54bc837578447aacfaed5969aa351e7da4efa7b115c4c51f4a699779850295ca72d781ad41bc680532b89e710e2189eb3c50817ba255c7474c95ca9110cc43b8ba8e682c7fb7b0fdc265c0483a65ca4514ee4b832aac5800c3b08e74f563951c1fbb210353efa1aa866856bc1e034733b0485dab1d020c6bf765ff60b3b801984a90c2fe970bf1de97004a6cf44b4984ab58258b4af71221cd17530a700c32959c9436344b5316f09ccca7029a230d639dcb022d8ba79ba91cd6ab12ae1579c50c7bb10e30301a65cae3101d40c7ba927bb553148d1647024d4a06c8166d0b0b81269b7d5f4b34fb022f69152f514004a7c685368552343bb60360fbb9945edf446d345bdcaa7455c74ba0a551e184620fef97688773d50b6433ca7a7ac5cb6b7f671a15376e5a6747a623fa7bc6630373f5b1b512690a661377870a60a7a189683f9b0cf0466e1f750762631c4ab09f505c42dd28633569472735442851e321616d4009810777b6bd46fa7224461a5cc27405dfbac0d39b002cab33433f2a86eb8ce91c134a6386f860a1994eb4b6875a46d195581d173854b53d2293df3e9a822756cd8f212b325ca29b4f9f8cfbadf2e41869abfbad10738ad04cc752bc20c394746850e0c4847dbebbe41cd4dea489dedd00e76ae0bcf54aa8550202920eb64d5892ad02b13f2e58626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f + +# Official test vector 1, seed: "d81c4d8d734fcbfbeade3d3f8a039faa2a2c9957e835ad55b22e75bf57bb556ac81adde6aeeb4a5a875c3bfcadfa958f" +seed: d60b93492a1d8c1c7ba6fc0b733137f3406cee8110a93f170e7a78658af326d9003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 +public_key: 938a454364cf10a4c719113a23b242bc013962f13421ec0686e32ccb80840749643eb4b5cc4182cee2366717cf77f97da296a185440113770b6f755bc596cbbce021e94306b1e4ae437ab7dbc29527142a9223a8a7cb269391cad8f70c6cf666118830485ccaebba1bda242176559904713c6722c413d5c2b9c2669d58138ed5b23506a71c6182af6939dd40c51d678639238c8c071384c1256ee6a307475bb72bc93976c8976bb89c736d8fb19580cacb1f335b97d16943c0706f78095408cdad77a9fe967c4bca738960b3a3c171680426528a21578b79b226bda19a9bf132998a2149c463932d630b0f131e8096be462080e6d17107704f3b0cc90c3908cd645268375056e6072425b51a46c27a48b9c0db67b025a58ee37b44794430f3ae6cc74e1673c2b1d4b29db5370f590eaf6165e5806376f6a7d4825c74038792683f38893464103d82426593f366f96b023008be21956e6be8a4bd612d4f85239d62ab6c39069aa210b47b37ca85394c19327e5303cc9c54a5c63aeb104dacf67a1c1c3142710dcf682edac82471ba98c81a552ad2541b7338b2a0ce41354ccab879f549cfa58995eb8c64a8b30b6f384ec2e04dc1a11ae04c967f744024d70da780516777a1b1715f22cb1eb3511f5c4c99ce577836489a0f813a99a622390b52e4757843c772f6e75f470305259833b3993919f3aca66563f3eb7375f5883cfca72398b049170ebf0997ff277e44501fb0e83d0c5ca6c701048180ac68d857e0dc5d24b1628433c737b8808c290839d42c6a322250e0c22b81b4c018260d288c47976bcb84bcd0856c40448ca40b723b8144837965ad46b521ec4b405c28589b8536621a10678a75233e2cd59bc6e03f49d93925c5bcc133bea39a7e21907a19840c80225f1f154c270a4bf0206a16c241bf42cbd351055adc8519d38fc9d3b976e2144909053c5843c36b7b247a6ecd04c9d792a6fae968cbe11713592b287cc8b07b73c334bdbcb91d05c7ae4e86aa7547b4cc6403504acaef4c6e5b758f4e261c7624337000c187648325f36ac8854d4a8a1c2c732a0811b39439340e23c33af0ce5090ce800070306834321b5af9e4be13b22ea6655da11427f995a115dc86cda737aa99078407b9f78b914e831a6bec2c85f922f972bdda971b66761045813a852a0fd990136840835f8b5a72c5c8e8a65ce8d3ce957b06698261160031597a29e3388a4f5a5f0b96b70481a2e5738d3a50189496c75a856643899947c955be8871e808030a5757d6b46079454b54d51557cca964379bca5a8191698275dc51cb164f8e508fdaf480031a28afb1c9ccc65da9ac1cdec625131c6630188ffffbcb726133ca563da640c76a6c24105502ea3c24b918c5b818121cc68e2f1b62112a41594a6359876b91d058fd66861b7633d73cc7226b8debebcf90fcc390f761360554acf013ad03911b49b641c73687f4a73f8c290a2890c02c56e2a6567fb03826353d87ea41369673e1f9b920b36203cc9aa464192d01b6d859307927a629a24b34132cbceca487a0cb3c7442aba47c4a077fbe7442c2a4221a200a93e726518830b11b690f0497ac0851a5b27ea20253065a9ae7e6567fc26500edb11346955aeb2d9c6c228f1644f21b34e3694c05016284bcaf746ab6344a10eec87cd0f76a611ab64ec86288c339294aa15233abfb680036d2155fe77363530c3ee0c4b8b74a54e9a2453ca081d01f9626867632870b178d25b831fd133a2ac0596e688652c1772e2979305c5e2a10949bf35bdc08cecd6771b7f659b61960a45054998472163c21d31024c0c24972d5b145608c1044718f60894bf5875a453d4a7c4569c63a2b38c2db6a4fb8dc9289610ef12754f37cb4dad3b66e135d1f75759622cd7fa03c4ba81d71ac9938c9a97839a12d7a4622943c381a048edb26c64926b3a807b644aebc9110c54b06d4ea1cbf6462a55b31c7f5202cca8b7c698d9559276a1a3963cc56dd26ce3c051167f299d80c3a8ee894f134567cea1032c845d79ccd95313f04d6459d1ba72e00cc604365a9c5c5185005f17a0397a559a0b28f31b41a5e0948c81501e902b9cc253f6eba88172bbb92024984fa99c5bab08dc01504556aabe8c81bc99c56fc771ddc85d37b7c50182345e189267934564aa9dd80bcdc25b127f1244763644004e5eaf06b095b892bae095e0ba7f9d2700a50 +private_key: 1df76d46867cd8c5b94b3666ccc8c368ab45c71abc8df2cf74fb3070095902282b41a698b405947354664df4727af16b549209329623a33889b41747d56594b842be87f40aabb37bb457c935c5a2fd3801694433fbb545b35b23b6d17a8d9aaef6d31fefe99d8c7c2030989a285900d8fb78ed65c97428c25459195890406dc878b2a98993664fecc960237a2326530105f78bb0d04a00030e6ec0a258d803a00844753b8bca802ad335648f348fa34905681a72a8e198206613dc285101499413267a5588bb4331120213bf3dcc0efbd80b70fb08bbeb6067e617d380b804bb6a4e745a97cc8342c5cab4208390147bf1b87c6c4430d8b443e45c101ae65fd9c43798a082aca969b8171b8794c3e442096a139496b9a11e9821afea868107006e4a283f60a035485914e9901e843013d36c36b35318522cd69c1df78acab468336ff89ca4a787363b51f7b62468d974506a245049c0ec7092e7c9368e18c313297a92a292926902d34b0890192b50cb3772a797ea6918d380b1752b8e1e0a36b41a2f865b73a8b3a36d68446ada396ae000898035c40cb4bbc76abe0240392372fa6bca942c4112c86eaeb60a548326868b80af6a8f9dc506bf9474641b7032994d641a3d1c45b8df7c2fb3301003f6481f00622932309e860fcca71f7fd6c38242cda0a4a589e4bb791294a6aa9f85959e91b0b5424a61a974ce29d87c7c0c1b0d7ab804690e285952cd95ca150097a7c6aba8c878a87b883c52b2d076762fd424fd76c074873fafa03d0d98647e76b4fd994300850093c2529b3b599d33692935ba09e4156052916833bc0c13836110bc134c4ae465acf1730a01e261f2d3b1156288f54573aa6cba8d161e533b50c56a2ee0fa04676b83489b742d492aa6650fd658baabe309a860967a726a6cac46bdc8893215160f97c3db16cde48a684ba64fa34a7c9720935711aa4e3bb0fea7b14f4c9a889b9a45024cdbc09f3a971854b5ba1f940712913284516614277a1df04a6a583873b154f4e68151dc8ecb86b5f58842fd31491e4422db7b7059268030c60f4ec3bc1b37b076d157c2c014dc52a9909505d99180b259cfd3204a22825ba2051e9dd4376e7502b305a208a98a2bfba19ad9152d3853acab2c48551ee998c84649c2c8e7b9140bc67cf839c1a49389c0aefb2120ccf6b7cba4360921a0e31b7eec4335926788af441280b4accad52ae014493d15caa20246cd4434639303fb5603f282b8a6f0b1fe41098d28c73f0b74653cbe673340158492d6517c514218dfea8bbb4aba8f741c0820c076a23b170456f8d8598211cbe6a37c15e6c38c905b8ed8430db09982ec4f6c882632383adda285a08bbcbe219947e96017c8bf3b790dca66b868ca729df23a8125bc103b5eeea6cabc6472a07281de58cfbbcb319a7ab27d3a5f5c268bb0ac6587e7774a2a437541a28c84a8c1b986b1a7204fb613cd0067ec26458155923248bf0c641fbb4c4219941414895f60712928fa7275f7a99ed20e6aa7a2e3637d1fabbe65db9dce36b1df2656e0284d3c5b4c2d789802c97515071a8f7c31b5501f4ff492cefc8c7f6b0937da9e02dc6a99493ba7f7269a32b610127f89b6b94020bf58a20ecd7548009d63331b2f4908499b400357c30f1a67694de351ff5cbb4eb553e4d523568542a0e241a6ecc8045caf295bcb12c55861f7b5e5151e5f4cba28d54859619dc04b96b6b3a2a2436d921bc4560a4c4df68a34413733761b8adb790fd95a6479351bbb7cbb17a528ca14f0c31eadb195c86397beec61ab8b8ef9032d1ae0c669fb1203f554d2575e25e45bca0767b0821740eb7aa749161e485152b68d5a8c0c53db6ba6472a34016fd9067d07e8745e66785949a4be88573987aa91da5fe01387b739415b0c5d03caa04089812c85829dd43e9b310ff5887561c7aaf64b1368862050b157e0bcbfbb659934466a3b1611633619d7c2855553b4c3934c8f410e7a097a5b591a76582aef355c57a076a00905b6474626e33ac9dcaa77e8a07bd9509f5baf27bc54bfb8890ac4210f8bb45342350acb61c34999371614d85c7cc49c92e54bbbc94389663053b74088984b1b2d6c335c000ffcd21c9a45a8d377638f954a5e132563f62347614f10d103d0a58408867fec69c50f595c938a454364cf10a4c719113a23b242bc013962f13421ec0686e32ccb80840749643eb4b5cc4182cee2366717cf77f97da296a185440113770b6f755bc596cbbce021e94306b1e4ae437ab7dbc29527142a9223a8a7cb269391cad8f70c6cf666118830485ccaebba1bda242176559904713c6722c413d5c2b9c2669d58138ed5b23506a71c6182af6939dd40c51d678639238c8c071384c1256ee6a307475bb72bc93976c8976bb89c736d8fb19580cacb1f335b97d16943c0706f78095408cdad77a9fe967c4bca738960b3a3c171680426528a21578b79b226bda19a9bf132998a2149c463932d630b0f131e8096be462080e6d17107704f3b0cc90c3908cd645268375056e6072425b51a46c27a48b9c0db67b025a58ee37b44794430f3ae6cc74e1673c2b1d4b29db5370f590eaf6165e5806376f6a7d4825c74038792683f38893464103d82426593f366f96b023008be21956e6be8a4bd612d4f85239d62ab6c39069aa210b47b37ca85394c19327e5303cc9c54a5c63aeb104dacf67a1c1c3142710dcf682edac82471ba98c81a552ad2541b7338b2a0ce41354ccab879f549cfa58995eb8c64a8b30b6f384ec2e04dc1a11ae04c967f744024d70da780516777a1b1715f22cb1eb3511f5c4c99ce577836489a0f813a99a622390b52e4757843c772f6e75f470305259833b3993919f3aca66563f3eb7375f5883cfca72398b049170ebf0997ff277e44501fb0e83d0c5ca6c701048180ac68d857e0dc5d24b1628433c737b8808c290839d42c6a322250e0c22b81b4c018260d288c47976bcb84bcd0856c40448ca40b723b8144837965ad46b521ec4b405c28589b8536621a10678a75233e2cd59bc6e03f49d93925c5bcc133bea39a7e21907a19840c80225f1f154c270a4bf0206a16c241bf42cbd351055adc8519d38fc9d3b976e2144909053c5843c36b7b247a6ecd04c9d792a6fae968cbe11713592b287cc8b07b73c334bdbcb91d05c7ae4e86aa7547b4cc6403504acaef4c6e5b758f4e261c7624337000c187648325f36ac8854d4a8a1c2c732a0811b39439340e23c33af0ce5090ce800070306834321b5af9e4be13b22ea6655da11427f995a115dc86cda737aa99078407b9f78b914e831a6bec2c85f922f972bdda971b66761045813a852a0fd990136840835f8b5a72c5c8e8a65ce8d3ce957b06698261160031597a29e3388a4f5a5f0b96b70481a2e5738d3a50189496c75a856643899947c955be8871e808030a5757d6b46079454b54d51557cca964379bca5a8191698275dc51cb164f8e508fdaf480031a28afb1c9ccc65da9ac1cdec625131c6630188ffffbcb726133ca563da640c76a6c24105502ea3c24b918c5b818121cc68e2f1b62112a41594a6359876b91d058fd66861b7633d73cc7226b8debebcf90fcc390f761360554acf013ad03911b49b641c73687f4a73f8c290a2890c02c56e2a6567fb03826353d87ea41369673e1f9b920b36203cc9aa464192d01b6d859307927a629a24b34132cbceca487a0cb3c7442aba47c4a077fbe7442c2a4221a200a93e726518830b11b690f0497ac0851a5b27ea20253065a9ae7e6567fc26500edb11346955aeb2d9c6c228f1644f21b34e3694c05016284bcaf746ab6344a10eec87cd0f76a611ab64ec86288c339294aa15233abfb680036d2155fe77363530c3ee0c4b8b74a54e9a2453ca081d01f9626867632870b178d25b831fd133a2ac0596e688652c1772e2979305c5e2a10949bf35bdc08cecd6771b7f659b61960a45054998472163c21d31024c0c24972d5b145608c1044718f60894bf5875a453d4a7c4569c63a2b38c2db6a4fb8dc9289610ef12754f37cb4dad3b66e135d1f75759622cd7fa03c4ba81d71ac9938c9a97839a12d7a4622943c381a048edb26c64926b3a807b644aebc9110c54b06d4ea1cbf6462a55b31c7f5202cca8b7c698d9559276a1a3963cc56dd26ce3c051167f299d80c3a8ee894f134567cea1032c845d79ccd95313f04d6459d1ba72e00cc604365a9c5c5185005f17a0397a559a0b28f31b41a5e0948c81501e902b9cc253f6eba88172bbb92024984fa99c5bab08dc01504556aabe8c81bc99c56fc771ddc85d37b7c50182345e189267934564aa9dd80bcdc25b127f1244763644004e5eaf06b095b892bae095e0ba7f9d2700a50cfb6fc18d6419f5438a0573693f421d3793e5ddf3d846678552aaddc19265946003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 + +# Official test vector 2, seed: "64335bf29e5de62842c941766ba129b0643b5e7121ca26cfc190ec7dc3543830557fdd5c03cf123a456d48efea43c868" +seed: 4b622de1350119c45a9f2e2ef3dc5df50a759d138cdfbd64c81cc7cc2f513345e82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade +public_key: a1a341b578b4765c4649e6bfaf5c8b2ad80de5200e4dd30da0b693f5ebbfcfba9f0ad2ad46576a7a06b65de6bcdc432b6a753f3a6326a27073436483aef170b8649e2ca022497329d071af4c25968cb0521a118aec41cbeab013786a1c2984cb2c649da0fc94fdd880fd3a05239b84ac053ca0f822e4c94ebfe1b6d6898da03b02e455467af6c89db7225ad653a5ac0c8e165f3b9b68b01270ef0ba7cc56322d5c671805b7d333b899abbac120c010033f3064647e4a387649c272a32c2dcc2fd62793d8689cf59619f43c87fdeaaebcd4c3f21483863563ce8442a7f581009410b3c506146390fcd44d0f918b2903940a321c66700ca4e205d4501ecec23a4d17157ce4a0bac562533273fb8071ddf960217696ccd98a59e6c39dac5cd185a0793a9190e25a0460837d07d020d72b5c5ba9840b0940832fa3a483aec99d0d629cfd67a1ce77766a23b2349947968c238d0126f6ab9422b97d6dec5657a20a683544ba07971bc773a5da90bf471eaf12310283944c723eb1e0600eeb2464bc71de7233ebfb7be64202ee21088222a48ba200f04b6bf6a1c7f6404295764e6fd857d747cd985b07f4d83f8b13a901ccbff7b01e21b8789c05b635bcc14c8128c379bdd52029efd660468a34512bb78da224fff9a223371e457333ad464c6fdba4f6c5451b585583655182691f6ee817cf81ce6e7a5cc6b9cacee275c473ae1c58aa38e43de50796f22475fca44270e3a46fb5b8bdda74e3e05b88210f54f36e79fb05becc76805b716154a6e2346b0f4cac241748fde93f325b4f82f3b681136aff8056bc7304ef22652f1679c816032bc35db68b64b2848351da88df89166707b194cb4759e6761032aca4b7a54e8064f5755d36288fc5061072da1ec35a8491396c9406446060347361bed860b028b57250f0187f45a204fba678f587ae031ac38480cf4c3fff90188d925bd4c7c6bd0b758698bcde97ce3958697610ce05e4abfca60eac13b666732e8262b36b7447c0c93f91362c519337052865927a9862d2c1ed186b411554275a24dc9738751a4ba243bcfe46109212b711aa453a35b09ba20ab405b6f0f3457321b24017261b49923225b3620678c4f474515396113880df463138abc3e820c65415c593d74c01e5136150b02f1ccc55a6c1e7e9b121588362d784c3e85658532331bb596682377c752e7c259608b629e74a5a470bad77d3c0672b23831a217c1ac82b94a82437643807681cc1684098b86de031440a79378a229bd902f2996f326a0df16354778a4cd5375c756a34890ccf0c92ba07a61546387bf54c2cb0c8548d4780aa72b667c0a1fe400b30f194465cc97ff42511e75457d1a8a9712a6ea971d797baa894b0348561df068a3455a89afc3684081ddfc0a90fd8acbdc217c83398380267776051cf3491542534b1a74b409b69a8a142c1b437b5a8561fb064ecb591b7334afc482af678cfa4e11e970a48bdf822a0b45e1c591d07792884e4bd057a15eecc5cdf66c994cca765daab1af377a14b98bcd8918fe3546fa4438ba5322da1ba75543be245b12e228d07c1cf1091499a2c57dd42c9f6ba3240c053165ca3fd669b4c3944a7d003d016a0fca826b5e615846c48873cb7f222cc12462023e38f14d98fa0486eae480f81a7376eb6380a42a1a2a6123d8a4efb102ee7b900cbe7a9238b59006abddf2ab25565815947b3bf6b14eed43be91a5687b339e6bb6614387583c585f1456372aa68b17449c2a1c6269a05f8659da97585f52421ab74b9d705ba13ac139f15be9f41971e0a6e04ba167be9b681d294c706d0477a22d64565e71979009a18c8086059f3964ed327288aaa0c8a2b2d976d5fbb50b842bcdf3c9d25656ed7224f3435c9bc9b59b17727b46a546eb8553dab54ecc6842cba94fb24592ed077fc56bd5dd2cd798715fe0c513377361d263c6348340a5018b0e9b43e112bb6ba60503ca954f2bb25fc585c021b57fb3d1acc80a3b20ff4555ebfa223f90762e2008ce920a420b48cd8fa9606ec5834051d0904847466564294cdaddb25cab5cc68008f96971b2711ae8d73b754cc8ab2bc13e07708e7b555ac681c0af0961a19105bf62b93267b8c47c73526b8c2d08bb13867be10211347656c0108aa3825234847519a52b6a4599ccac59e10e945eb7bd579e0c98d12aa9905ed85271887a974ab8f04a783747caab69d +private_key: 9a29ca06e2ccb6a96ad265638a6a057ba846fd6777408cc21aa7c8a7b60aeffc6d014b02e64968cab39948e45c6e32676117373f201dc8a86368f54a54501b8d002d3ea36c1287a5504313f3e03ffbe64d28059b41247e76c24a8c05abc21678110983ca0905434b5b2ac45adc6c5d90d83b416b30351b780e8386d304caafc70f3a2a059e8094ceb83810d7599af876537c4d367c21c0827cef5c80f2b04f554c105c1a8c874389a5f8506d104c105213b64b00b1f194c1f793f6d340a7466896905e295b39d9fa9e6c314e879140bd0b1cc276632e70a56902346fca21d2fc7b0004817b1288b3b34506cc1b15060d1b103025e2ce51e2868335685382b2cea4b87dcc6590fac80825caff465ceb9b1dfb51b52ec97c5077b55d528b32f4b2e344071e04b703f759bac057916916ab758718509921d0c0e0d08bd2037e0643a18ed60f984a837b86c5ebb7b8068c1528100515cb808a019f9017113122a7ed16582c78cdb52ab7b6320e7ec0afc194b651119f79f6c7ff32b003ba7e0160510d32af80eca6547c3999547749dcb7205c50bdc62f54cabb15f386648b1805da6ad5c1a55265b57665bebe46cdfba6604352b5fd036d5a9426f70c014fab63bc2ab7288653ed2680dd6081519b3bc56ba9704ab32bf3a59282257bb9071e270fad6b705e48bed7a546ca6a80a3181f3875580965798e978f757b83fee729774ba46ab32a61343e002b6379a5ad9ee25f37838c84f397b9b4039b447b50c834c1b99eeff51ce6d5bdd8810abe873e1a1c57e74c51bb0139d937390f10c118a568bc464a28028cf5a778bc1a717f9a672ec5cc2b635add077485da497f68c51f017d3785bf0dbb6ad9eb3ab3a02776e9784a864a45dc0527b00d47d2a8c7794d43f059cfe88a2f43160c38292216b0dba17da92b56ce6b2711b0869e1204e21c2834c12a2d4557fb723caadc01af894afe656956b35829e780bba9c8ac28002245cd5d46112dc93dac9a656fe40ef67bb544847bebf73eaffc85ec1514b9a248da8760bbd1b65108acfa364b4286c538ab466f34c383f008e0e611f379aba066638b87854163065afcaf1003a189a81ccfc873c84bb465601479d1ac21d9886e7614cdd3603415b8470766892028ff575a69f471b126aacb0136b5d91d1f532f85392e66e182a5acc4be796e42c16d1d56447264aa9f20505f1a447288cd2362bd99c19a7bba93d1775586d769b3a2a1aebc17f84b1c14c5a0d5908ddab90c06bbb7b31c3b88625b96e9244d163585724ffe361e04127e5a981929d24a8e8b58be5221a9d202b84b3c1e0cba55349abd356d787022bf01a04573ccdbe42d1687b29be8c03cf3535eb952073a43319a2f0e52726906cdf7d06be43319d43370b4131457aa2f968628b5c5a71b4b1804734c85ec5efbbacbacd336ca048f8f3589e9561e3732a0ea5523168a8449a9b30a88ce124c25dc2749a3933382dca4cfea4de519bc17f7605321c99b3b20faa4adf952231fb27a95a55c7238702a869d0b1ca018fa58ca21c6d494bc38db4b34216bc770bbc1b63102a588da22a6ae3723bb80b1c857ad06b88d1d0001b396be411618dd421760a58e0898787c498118775ce407317f4bcbd3477ce35c565d83c1ee124ecafb0eeb1b19a4e05eda182b53920b4613c989523d93dba735423dbd84b76491047db0c6f50376dd5460a9c20c02643b63049dabcb3ec09c9a6aa264f3c02cf4faaeaea9158f74670c74c783d461e1c3aab218403161508be461dc2c09d4c77f6737509cc317a2703e3850ca06636105463a4eb16afe797be2c32763f0ad222401545462ddf41c71b65fb2499ad3d0a7c128556518be54948a86b6bb5a811b76b4c35d35bc2d54c0c60c6a744c4944bc74303144b4891b841ac2b1e63777101465eacbe933087fa6541e502ba54522eb69842d3a706dcc617076ab90c16393853fea190cad088da65953a412c8eee83945cb3e10719f37188054c31518070603bc0af5e483f6155d618700f74093aaf352facc6a1ab0809dc101b64c9ada665d1acc9bf31c15bb3a2d163874b523951c7441bac80823d29a909b9db7b73d43020300e68bc66b1964a1031351b451650b63f0076ecc6fe8495857e6a93c9b667d924eb3a84caae9b401ec2fa3355da1a341b578b4765c4649e6bfaf5c8b2ad80de5200e4dd30da0b693f5ebbfcfba9f0ad2ad46576a7a06b65de6bcdc432b6a753f3a6326a27073436483aef170b8649e2ca022497329d071af4c25968cb0521a118aec41cbeab013786a1c2984cb2c649da0fc94fdd880fd3a05239b84ac053ca0f822e4c94ebfe1b6d6898da03b02e455467af6c89db7225ad653a5ac0c8e165f3b9b68b01270ef0ba7cc56322d5c671805b7d333b899abbac120c010033f3064647e4a387649c272a32c2dcc2fd62793d8689cf59619f43c87fdeaaebcd4c3f21483863563ce8442a7f581009410b3c506146390fcd44d0f918b2903940a321c66700ca4e205d4501ecec23a4d17157ce4a0bac562533273fb8071ddf960217696ccd98a59e6c39dac5cd185a0793a9190e25a0460837d07d020d72b5c5ba9840b0940832fa3a483aec99d0d629cfd67a1ce77766a23b2349947968c238d0126f6ab9422b97d6dec5657a20a683544ba07971bc773a5da90bf471eaf12310283944c723eb1e0600eeb2464bc71de7233ebfb7be64202ee21088222a48ba200f04b6bf6a1c7f6404295764e6fd857d747cd985b07f4d83f8b13a901ccbff7b01e21b8789c05b635bcc14c8128c379bdd52029efd660468a34512bb78da224fff9a223371e457333ad464c6fdba4f6c5451b585583655182691f6ee817cf81ce6e7a5cc6b9cacee275c473ae1c58aa38e43de50796f22475fca44270e3a46fb5b8bdda74e3e05b88210f54f36e79fb05becc76805b716154a6e2346b0f4cac241748fde93f325b4f82f3b681136aff8056bc7304ef22652f1679c816032bc35db68b64b2848351da88df89166707b194cb4759e6761032aca4b7a54e8064f5755d36288fc5061072da1ec35a8491396c9406446060347361bed860b028b57250f0187f45a204fba678f587ae031ac38480cf4c3fff90188d925bd4c7c6bd0b758698bcde97ce3958697610ce05e4abfca60eac13b666732e8262b36b7447c0c93f91362c519337052865927a9862d2c1ed186b411554275a24dc9738751a4ba243bcfe46109212b711aa453a35b09ba20ab405b6f0f3457321b24017261b49923225b3620678c4f474515396113880df463138abc3e820c65415c593d74c01e5136150b02f1ccc55a6c1e7e9b121588362d784c3e85658532331bb596682377c752e7c259608b629e74a5a470bad77d3c0672b23831a217c1ac82b94a82437643807681cc1684098b86de031440a79378a229bd902f2996f326a0df16354778a4cd5375c756a34890ccf0c92ba07a61546387bf54c2cb0c8548d4780aa72b667c0a1fe400b30f194465cc97ff42511e75457d1a8a9712a6ea971d797baa894b0348561df068a3455a89afc3684081ddfc0a90fd8acbdc217c83398380267776051cf3491542534b1a74b409b69a8a142c1b437b5a8561fb064ecb591b7334afc482af678cfa4e11e970a48bdf822a0b45e1c591d07792884e4bd057a15eecc5cdf66c994cca765daab1af377a14b98bcd8918fe3546fa4438ba5322da1ba75543be245b12e228d07c1cf1091499a2c57dd42c9f6ba3240c053165ca3fd669b4c3944a7d003d016a0fca826b5e615846c48873cb7f222cc12462023e38f14d98fa0486eae480f81a7376eb6380a42a1a2a6123d8a4efb102ee7b900cbe7a9238b59006abddf2ab25565815947b3bf6b14eed43be91a5687b339e6bb6614387583c585f1456372aa68b17449c2a1c6269a05f8659da97585f52421ab74b9d705ba13ac139f15be9f41971e0a6e04ba167be9b681d294c706d0477a22d64565e71979009a18c8086059f3964ed327288aaa0c8a2b2d976d5fbb50b842bcdf3c9d25656ed7224f3435c9bc9b59b17727b46a546eb8553dab54ecc6842cba94fb24592ed077fc56bd5dd2cd798715fe0c513377361d263c6348340a5018b0e9b43e112bb6ba60503ca954f2bb25fc585c021b57fb3d1acc80a3b20ff4555ebfa223f90762e2008ce920a420b48cd8fa9606ec5834051d0904847466564294cdaddb25cab5cc68008f96971b2711ae8d73b754cc8ab2bc13e07708e7b555ac681c0af0961a19105bf62b93267b8c47c73526b8c2d08bb13867be10211347656c0108aa3825234847519a52b6a4599ccac59e10e945eb7bd579e0c98d12aa9905ed85271887a974ab8f04a783747caab69dcb74eb00a87eb1651271050e74552291b66a29053bef5e49690d4eec7b7bd352e82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade + +# Official test vector 3, seed: "225d5ce2ceac61930a07503fb59f7c2f936a3e075481da3ca299a80f8c5df9223a073e7b90e02ebf98ca2227eba38c1a" +seed: 050d58f9f757edc1e8180e3808b806f5bbb3586db3470b069826d1bb9a4efc2cde950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 +public_key: c8016eeae46e2610a5fd252102a480cac2bc6e7860620259e41c64591584f1e6ce8e3312dc8862dd806cc2181a18bb91fb184dcf045b030807a5023c4b3779f14a162e0938743b78c71493beda7826022e78ac100e7892fc104d48e25ce92610c072a3e9e8208c93cc225c916a2941c13838eda382f311a809c19b9ca60f188910a1a1bede4710b6b72127e48a5454a457c8037439572c558378cc784554171f6a0c78c676db8bb8aa380357fcc1f61859b0ec72730c10f8c3932975c70e6329aad34a56797a03c0297fb4aa6b97a63be19f5ca6318d0b2c8b4c6d9ef808ebe364d0a41a82dc768be47f44f300bc9b2e4cca1050e21a9919a9b65a07a6c8bc1ca5622a441117a1749211571c462a40c94c3301081867b3a8957ff45c1c3f7c00097a35af93438d74c78c061c2d645e7f6c3be5fa6da749085dd12461fc517e0c28baf93418978772e4c723c071908915a1a5807050c57d2a3d56597b1e1bae4b437632a2522f314b39fa6ab7a047e12b6502027e334b715b5b0b17bb76ae608acc0250d91a859c8c448b27bf4c44b092350e260b65c20c82588c8c1ef25affaaaf150479e80801c82cbea73a37dd1a7df6d268a9b0c4fc753158c39ea4e90960c20460804329f58bd460a37357ae6515bcd505c7cda55b2669017bec3d51816e7001b0a64837f9e07ea26735e830092a648f828cb3093228b98a0c92656c1a14cb3a306929c6207751cebe31aea4c0372cd5c06cc637dd9b6894f00dcb3796d09ca87884412726a25bfa9bf6eb613e1a2a19a196e1e1634e1ca0347a9bcc96816923092961b69dc0c013c191f7ba4fb0b13ce5555e8c1b07d8568722155287264b5fa990e92603aed71df778832ee3bf9a767fa9e650420a14f5ac227df497efab89511302d231a521c5353bd425306a14b7d2a566ab3b32aacf353c2b04a148e4c93c3e470605067dc7590722c452245b3d750205d2c0aad03b0e2ec535bc6cc3956132e329a980c8495d765ed1eb071c58680a11859c3cc0b1e986486a5b543949643b83452c307df477685a4d0a70a7528a55a997bea46780b26252af157fe5d874cf5c420b5b1a324a932ba52291428a39672bb359abc4b54bbfac608a0135cc99a38e102da3e088e4ec5c47984a636c7cb99a6b6304cb0350052618471f716be06b899087aa38053111e35a95965c04a7c42bda2319598819aa0aeb5c39181079f41982e05223c8e89abbc32fc1487f3cb99a167ba694b0668a5525a88472439c89179147ef831022b45f6b8553c8150e32b5421f75291c830a8698a916406807f201141a0ea1cb28255a9ed709502ec7851a56a86cd3b7f05726ed6a6e50fc52706104e829b02f7b61a1856c9b44b8d1214768851ac190b46b61c053c371a333a95b7806eed16c033790c1563fb823204e26ce3af87750ca639e605cd435024336751ca0bdab99ce5b45cefa04caa29ba33b4998da0aa832ec22551821bac055961acefa077de544bbb80211878c6109b512b6b4850b5a8d0bd9bea6978a0f920c1fe8601e1123a98aa23cfa30090817ee849e654a0387a185171a43047758a578a02ebb557904106eb3096d3c1f92092f02891f1d3b0659f284188b7119c14896688ef2bcc8086c604fc140a8fa24c9595d020269b0355ad9a44cbd803b59010a1b85b12fc785ef0a0789c10b3a30925cf155ae8682859a8f8164cf62fc08df577eab2071db87b029a16ec90303f5b97117761c5f20033110b1bdf7388895b30aca862f22adde6930430821dccb2b1ba4cb923652309b4f16600fc9fbcfaa8553cb45bbb53035cd28526ea8449844ac68b87aa61047b94244f126bfe2323af5f30bba9c1b96a426a1d84c2da35fbc001e20a517d458b4291cb36394cd9a074e51d8a45ce623484a3aa7d575977242aed535d46b74d8645aed246692ac1b8b055d717ccbd59769ff9617bcc3aa7bb9366ba51a736b2ce79b971e0c204ac62fd09755b4e4b233e94a9cd3490f4049ce6cc96c7c0fa1254c4eb67748b337c41c473fab4a944364531a6fe18652856797787c804ce1c59462b8d145cae4b97232440ba99cc3a66c1e019b53fdb272d000c85ad63d686a907a31700fd4a29e5936a53a4f2d2486751851edd1b70115adab07a29b15594566221b329076a5a116676d3534044965014daa0d13da178581619dc06df40a02750beb995480eee9 +private_key: 2ca62ac1f40bbef551a3f75613606661a204ebc3a81a170ab0e80eac65017bf3add2830b80ea56743a56bbb7b428951050844474ba8aab61912d35433a679c6770b3f8174214510215268eb5b14411e982f752192c649b61e559bb189666d98254ca913edcb22f93667970566dd06fcc06bd937bca44ba015bc689278925fbf64f1aeb93ee4a7bce8093aeb6862009c49f89cf31e74f91da8a206ac4ed0c21f8ea9ae1ba7f3ec59dfb5b729e73172770ac90957740068b1fb41ed528c73e2c2e62223264dab7f23b6a583c2e0e4bbcaf9878384376c23c38802c5753da4688554a2e9843b0dca303997451a0609be12d73ca1687e2702db3cfb703504fa7b3fb372a59831267a8b9eaac60ec31932c776907d29be988abd0208789f457def7130d628b4e694760f9883e197475f43670402f992cbf22819aa27a12fd60470e0b2a59700c05287589c2a85fa723b5c95ec12488f7e503bf090c581b112f854383c02e9bc693748628dfb2af873713e268c98fdb5ec890b55d8a7af5b93f3e94be8f5971c8c63590715d09d894e078c07fda4414280b20386ad6c645df5b21fe43b940610dde4b30b2a40131627d68a47045696eca108e93ba6a3600ca7be14f54346e9699331d92bde1786bde2886027a62234155648b2a52e3673fe5653cca7ffac07acc060371d67a581a529d0bbe89762dd1763daef0c09657698829348028c5f14359f4996437ebb092f64e7dea7c87e003c874c0531200e8163a9891cba6b0750051006914cf22d95088542fe58c4f6955256370825306122aa5a26963c66ae4ce268c180698a4123954467972e8c9ab44545d0224443ad83d3d7c48ed052ef59b1772d82de3781d713197e6e739e187cb4ad8b8b9f4972ed232f9513b03d2bd0f84c2d5951f2f20b01e362bed051a1278bf2a185b95514814494f576b56418c9d4de5c62b30ceea03a1e86a7a7fab18a5c4bc9ed43c8f46426a3a853d5127073125bf3510ff3065e81a726d934f3a279950a675f0c3c9bf0bc42a574bbe21be72092ed5ac8323e44cbdc1ce8864031838a7c43b64e9dc28a657bfe11711d0f1c5d407212f5938a7f14e82d9353173bd4d94621ae29247a2328007078fa5029136290d48009afc39720ca4a8b8cfc2233dd0042ab0625007b36474fa370a961b520575404154a1070560bc0bbbd9060daa27d4d10a13da8fa0b676b291544a6c1bb5582b08d761162ba103094df56789f76c8cae2b6637d58391f0ce022c9f77da0888c5045586a0c18a2e1730b3003493dcc8bbabfb359a39796ee578f5cc67fdc9a817461aa5296c5d379a58ab6f7a911114f0bcc39771633a6776965816384e5cd27ff1401a8880b2774cc73e6303e00574e241573edb2282a47c6f1c03b74a91ff3c10e4305fcb86ba613c747a591d9aec4c90193f9617431af4689c11310025b92247c805487de6c82968938e67084a178511c70722b28934e64a6e4a5223105c3bb24a6192d9216b7232ff0764f7d48507b84d72ac2236d92c69716bb6fcbb06757249ab3d7bc5a751e104c9e5881fc4675b374afb7735a56b9872164c847493a5dace7a855674d90091809109c524289ccbc4143a2567a6cb587045ec2d33e93ee2c60c9ea6a1a40344613a49ef538a41753a41d8c203785d38207abb3024584caedb404c8c0661d114405d256bc06164fc6ca2b8d71b1e481ad065462128327adba3d7572c3dc71a75791258a5cea5c65a70e11b0eb93a9f027b3b91aaa58a8a50b6bc2f59049f915404087ae4280cf7f603d110c9eeccb045125dc22b4c1923c83aa84c779a6312888ae7e019b7814d61d1cb6635b69d6445a8d005b4fba51b91604530088cb3436cf73f19e42ebe1acbc013b2e8341e3986c4ae156950e1b9d799c450751953da223fc11688862405691d9120cfe4eb283c99b3e39555c7f246c6e73119f7473e0709f979499c52630f140dabc690beaa91186151e5865f7fc85aeae9c27dc3c03c31715303caba288f95c55bfde806374902d0f50015221a3c3298db60a2257648bf22cefff39ac0e92016d71fafb8c9037246a99a0eaa4566a04b0e7b8c4dcf8abea7f72e214494d4176920858e9ba69487680499d27e2ed56d040045ac671a364848c0a4100fd4b44e1b1e8bb5914ab89dc8016eeae46e2610a5fd252102a480cac2bc6e7860620259e41c64591584f1e6ce8e3312dc8862dd806cc2181a18bb91fb184dcf045b030807a5023c4b3779f14a162e0938743b78c71493beda7826022e78ac100e7892fc104d48e25ce92610c072a3e9e8208c93cc225c916a2941c13838eda382f311a809c19b9ca60f188910a1a1bede4710b6b72127e48a5454a457c8037439572c558378cc784554171f6a0c78c676db8bb8aa380357fcc1f61859b0ec72730c10f8c3932975c70e6329aad34a56797a03c0297fb4aa6b97a63be19f5ca6318d0b2c8b4c6d9ef808ebe364d0a41a82dc768be47f44f300bc9b2e4cca1050e21a9919a9b65a07a6c8bc1ca5622a441117a1749211571c462a40c94c3301081867b3a8957ff45c1c3f7c00097a35af93438d74c78c061c2d645e7f6c3be5fa6da749085dd12461fc517e0c28baf93418978772e4c723c071908915a1a5807050c57d2a3d56597b1e1bae4b437632a2522f314b39fa6ab7a047e12b6502027e334b715b5b0b17bb76ae608acc0250d91a859c8c448b27bf4c44b092350e260b65c20c82588c8c1ef25affaaaf150479e80801c82cbea73a37dd1a7df6d268a9b0c4fc753158c39ea4e90960c20460804329f58bd460a37357ae6515bcd505c7cda55b2669017bec3d51816e7001b0a64837f9e07ea26735e830092a648f828cb3093228b98a0c92656c1a14cb3a306929c6207751cebe31aea4c0372cd5c06cc637dd9b6894f00dcb3796d09ca87884412726a25bfa9bf6eb613e1a2a19a196e1e1634e1ca0347a9bcc96816923092961b69dc0c013c191f7ba4fb0b13ce5555e8c1b07d8568722155287264b5fa990e92603aed71df778832ee3bf9a767fa9e650420a14f5ac227df497efab89511302d231a521c5353bd425306a14b7d2a566ab3b32aacf353c2b04a148e4c93c3e470605067dc7590722c452245b3d750205d2c0aad03b0e2ec535bc6cc3956132e329a980c8495d765ed1eb071c58680a11859c3cc0b1e986486a5b543949643b83452c307df477685a4d0a70a7528a55a997bea46780b26252af157fe5d874cf5c420b5b1a324a932ba52291428a39672bb359abc4b54bbfac608a0135cc99a38e102da3e088e4ec5c47984a636c7cb99a6b6304cb0350052618471f716be06b899087aa38053111e35a95965c04a7c42bda2319598819aa0aeb5c39181079f41982e05223c8e89abbc32fc1487f3cb99a167ba694b0668a5525a88472439c89179147ef831022b45f6b8553c8150e32b5421f75291c830a8698a916406807f201141a0ea1cb28255a9ed709502ec7851a56a86cd3b7f05726ed6a6e50fc52706104e829b02f7b61a1856c9b44b8d1214768851ac190b46b61c053c371a333a95b7806eed16c033790c1563fb823204e26ce3af87750ca639e605cd435024336751ca0bdab99ce5b45cefa04caa29ba33b4998da0aa832ec22551821bac055961acefa077de544bbb80211878c6109b512b6b4850b5a8d0bd9bea6978a0f920c1fe8601e1123a98aa23cfa30090817ee849e654a0387a185171a43047758a578a02ebb557904106eb3096d3c1f92092f02891f1d3b0659f284188b7119c14896688ef2bcc8086c604fc140a8fa24c9595d020269b0355ad9a44cbd803b59010a1b85b12fc785ef0a0789c10b3a30925cf155ae8682859a8f8164cf62fc08df577eab2071db87b029a16ec90303f5b97117761c5f20033110b1bdf7388895b30aca862f22adde6930430821dccb2b1ba4cb923652309b4f16600fc9fbcfaa8553cb45bbb53035cd28526ea8449844ac68b87aa61047b94244f126bfe2323af5f30bba9c1b96a426a1d84c2da35fbc001e20a517d458b4291cb36394cd9a074e51d8a45ce623484a3aa7d575977242aed535d46b74d8645aed246692ac1b8b055d717ccbd59769ff9617bcc3aa7bb9366ba51a736b2ce79b971e0c204ac62fd09755b4e4b233e94a9cd3490f4049ce6cc96c7c0fa1254c4eb67748b337c41c473fab4a944364531a6fe18652856797787c804ce1c59462b8d145cae4b97232440ba99cc3a66c1e019b53fdb272d000c85ad63d686a907a31700fd4a29e5936a53a4f2d2486751851edd1b70115adab07a29b15594566221b329076a5a116676d3534044965014daa0d13da178581619dc06df40a02750beb995480eee94ada82049cbac3e8c6830334021c22894085dbc8382fb43cbe318e8e6ada9955de950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 + +# Official test vector 4, seed: "edc76e7c1523e3862552133fea4d2ab05c69fb54a9354f0846456a2a407e071df4650ec0e0a5666a52cd09462dbc51f9" +seed: 66b79b844e0c2adad694e0478661ac46fe6b6001f6a71ff8e2f034b1fd8833d3be2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 +public_key: 2f7a733c9c0d0a05b6ae91776032105bfa99d149062746ac1fd2ca81db9224518a39629a36d043e6a398444a055a2cc28ac785e22b9ada469d2e3491174a4e16e11824d32c33326f7cc2b73d417a7151496fbb6805a79d5d974b12f3c0125b5d7bfc7c6f244b68e2c1ca8613e891322261b4789898a1f858f5991b2b1b177769aca1453c57c43140548452f3053d3b55fd2c3062a0b11939a3c14a81c59432616a5700c775fe98c6fb88c1eb8277c469be42f541dbb79808479e0cdb11856cb7c1cb6a5b865469bba549d73cfe581bee85494dea28d6e96a5f04cd65e561ef66a2482c806e39257b9ba9581421708663bf0b45b4131eef3384eb53b8733c4957937161c3ccacea5cbf91429e87b8b2b6a0aa44cab94bcd02d14cc3932c3ee58b483b1d11e5243fea0d34912b8d45bdf48c1358db3fc163ac081c23ca6c43919a649c33911c5802e2407e9fea350c3b64f302c5489005ec87650de428e60b790489a17e96b9e1fa91b33bce5f4b8d8dfa1610b39fd2858c25b898c1386c6dc021bd3414bf213719867f8cdccbb4d2bdf12207860a638bd41a05b9697a3bc901e9ad0075c080243cc0cbb3d389977c522230a42125b08d41839986a60acae28bda183aacc32dd5cb149af2bbfc60b0d5ba8ad89b1acc0863ceb24faea37ef3f60168cc96d766642f07a116225873e651ef693f2bb97339acbcba301e975405661b2aa523168e06c86f9bcbb42b5f12d79c3c379afcc37dc4995b11a4afc3578a30a13ff57ab87f022fd5c3ac5dacc3462c7e7edab63b889c22e90d685733a1a79ec336c50c18a5fe4408c2c122e34a60ef56a78bc16b78c3c98ed689e0c9276697cdd8aba667109cd911b77e6930c4f58cef1240c1f7005a7a2b17390988924cb0604b4f897d19c5b0e4a557a6a23470bc71db15bc99248d42d9bed4117652690124b1bebb438473619c4919c6c0e4071ca990b9d005eb287b15126e5c3477a98669f0856242dc073bb2673c7c1b1485799c300a0648a83142b95a2377d7e2b1d994209184309934c914308b7371a307a3bfc825958a98a12524b847ba5b61e5a279eb9f7cab5ce030c45ffcbcf919a6ce1059dd7c6aa077c2d2437408315db32a800c2099a92ab682fac6461896d583007b97af2336b1e6d061643c62f0b5122d48a230225128c52863c9aa7837ab4f254f92863efbb3b379f87e40071cb6c8b74ac79af4ec11da6c028f1caf9545a7d0a984bf6ac8d4067a7ff29325daacd3f9470d529f02b00183586011da8a0295b678b18d7572cd4f081317b92c21803f613bb959170ad3a4cf465645d3e5a1dbf672013bb935bccdcea51393bcbe7c975d30a9823667bbb155bdccd14ad3d8b453b30ec2b0cbd703485975cc571530b4cc521693a9965139fca21a90d57397f34c46822ea0e0ca0f56668b8692127bc93322389046c63fd08ff82b67f9778964054b49ab0dabe24628e771627ccf34f46c6c820e9d890b15f396a291a98eb14a23575952abbe46374c74b812aac6b9ced932c078ad3f2a05c821b720305773d070b8c86d7686c53b81ce241586f5f752fb4a2774152638f04156a0b24b3061141878d5759d12f8bad4e98aa5d41895b91e122074b31aaadc30a1dff707c32aa0dbfb2fe0a519b4289942e99754034d65d7b9eb5c0087225048b5a293038969a944725a23475b0681ca2177c5bee023bb7e0abe99a630b5babb5f8a67c8117fecf20c1187c338a97b72c1674aa302c3005037631ccfd51a5b10ce837911d8d8372b9760c0498b8ad8218f832fd8519476ea5673d6659b558895796e14cb5a55e7a3d0b91cf5a6228a3c93175a2ccb06c26bb00d5224a402f119a3a42356a37cfd82162c65953b798d9d96cf4353805ddca537a9504b708d16424a3c6209c2d738e25c357256833dd14375a65e1e32868bc4c4e5e062fb636e27f4c746eaac0f641330d235d909a128c890e531be3e0cc307e632baab0ef7684cc687bac9b966efecb85ed1030a1b1e15b71be5a263fc64c320b145cab657a14c2749dcc9961952ad5489c6485f208933fff0203f3c31eb6a389f072cc3573166b9349ada4d7dc66bb12c18a7d96a86f93883f83822ec0094b24751388a51166da6b24a0b526935817e1ad73b4403aa3b10b5d1822daf198aa848a73c9f9a866b634f939c2179ce55edfaa1d5d48cb3127f0fea3acc7b163d +private_key: 6360495af613e1c6b526a64a23cb3052fa4fc0198a351aa70d982284b13ce66384edb522df0b38199baa8265ca96da7040a7204cd0162ab481517a76d9b94a20306b04d19f5ab43146f26c4f43c23094131b9ca58552ae1eda8b9e623cffc533e77ab7345790a507a3edc589a0e01584a291e0a98389224ac057a2c7a49aa92c012e3068fce416936ace78967543053542faa399a8b7d2f5c483d9b09058067db414b319407dac97a1045d78b6633d2b690a77510d996abd44c972a37b37baae708086a4143926875e09aa15a206b3fdc69562d645ba213a13c74b245072a2480459672b33ab4f1d969157137d85f481828a7cb71aaabbf6b54874821b9b77e41caf849874830a742c887fae918ec657343aa11c8dbb6190d53749157e6277582c589ad1d9a33e740e25f00bf3dcaf2c03b1a6a64ffbc0a104fc37a2c34f7b8c56e06ab258b7c79ecac3eeb9c2a87c02171aba70b84c58d474f4841241dc10ae9645c1b71163ac3053a8b9e999309494763c50354e235f253b87af35818166aaacf85abea0056b3ca078960dc54c599bb43508fb06e06c968964cca2acc72a17c25d47a6768c512836a7ccd3cf58b09a024b1aea57bb26f2219eaa3f473a367efc8bd1790f576978ff159f282a218da906b506be5c63c016a55d92c69999e4cf1e1730af67881dda242f505ff78c242d3a3730c088b83abe4f39bb628a4efcfa03b0ecb8ff98c288d1b8e12b2429263ffb0a638f9665704b1770c4be9d999f8ad6ac080671cba047378a60c259bf042839ba39a11f94354dfb8d3da789a4790b2241718a2a267c7c8b5e1a2178002971306d08f360c6940043a25b4ab350ae385969fb28b64cab121c10ae15ce4c51475cb4794cc18118b877d1e3723101ba4172c272c1cdd1e33f506212c5b421b0f631dd773ba590b894056051753ff73013daa26c597a50d0023b2ca99af7aa5f218971b5c8845c68801468471651765922c6c7586d88b65d017572d792b037d7684a86a517c453fd36ca5135b320092c36ebab15dcb82a70c156e6657ed35dccf34f94559b92d83f7d46277926c9d7422fdbca5424d431d61648a848bd8e260179047120a72a0bd1a495ebbf154908edf0363b86892f783e75369252e92a85097a2636c8f284a841396d4cb39f8b247ce1593fa502a6ca4014cb4036f94810656cb9335c24ee345b1cc15431359dcee9526ec6a42d26280493b6090b0d500808bd29a321959f6101c18af673921804a3501f5848022d0b1075b1adb6f30f47786c9dd345cc33a12fa98dfa909eb724ce7e853b5f29a00f43319f92a14999526cc7966d3c25bc24924f5ca64de9a2a5c69965f95fbf29875b201dd3d54a1ed97cb7039f8d3982764a4e964c45583183a15c0d8097c033dc144bb7ca7d4483900090859c2a25c9c2b1aab964d7629bb420f3261e2e4c76afbcab41272155496c4cf9131d7195b9228ebb613dc7b42541ca05e39ac09e710fb972978f4395b883bc6a67593a7361e4179b7c95945513c28bd488f84146c5c8956c4b18a0da5ce7a680d26a779ea5ab1a046cee3191acd2c655cac8dbd9518528be44e03c1bd758cfc30d9d163b06c0a60e5013f6e646d3461a3993b7608b9edcc65304e92d0e59b193747325452ac403771a657b92fb8d4a57a424f13e323b37c46183b4014600b760bd44c5eb1099167354a5c31ad377a5041c6ea00bcba66b18cd457a6571853db6a90f408ffdbc35fe7bacf16a2be625abc9473f57c269f0029844976475f484b4090a53523f0766168f80a708ab37e0776c0a4b4fe02795073a19c01619edfc36ffdcb12668851c43c2ce7765c050a46a025252904698d2427a634ff421c45d2018772bbbc3aa2ec49799b3e9733e4b0cb16973e51a1f43ab1596d64a92c61576592d6f3cb339f76fffe186106a176f45525900a6b594b673271ce54499bf90a5c5489928ca879e93b3cfa7917999b472d1abd7da21333165b95c8b1f6736bb183fa14b9d1b26143e1807c7f71d66360b1ac2be6db555c1dc907b794dd6a07c505451bda90d2e7a7112636fd7590f48e0c94ceab150906945273cd375b82573ab5994c2ac447f5d53a3d9e04b4d694f5d81b54e29c125f461ba056e599674b5d15b0161802012217cb73419d431e03abe2f7a733c9c0d0a05b6ae91776032105bfa99d149062746ac1fd2ca81db9224518a39629a36d043e6a398444a055a2cc28ac785e22b9ada469d2e3491174a4e16e11824d32c33326f7cc2b73d417a7151496fbb6805a79d5d974b12f3c0125b5d7bfc7c6f244b68e2c1ca8613e891322261b4789898a1f858f5991b2b1b177769aca1453c57c43140548452f3053d3b55fd2c3062a0b11939a3c14a81c59432616a5700c775fe98c6fb88c1eb8277c469be42f541dbb79808479e0cdb11856cb7c1cb6a5b865469bba549d73cfe581bee85494dea28d6e96a5f04cd65e561ef66a2482c806e39257b9ba9581421708663bf0b45b4131eef3384eb53b8733c4957937161c3ccacea5cbf91429e87b8b2b6a0aa44cab94bcd02d14cc3932c3ee58b483b1d11e5243fea0d34912b8d45bdf48c1358db3fc163ac081c23ca6c43919a649c33911c5802e2407e9fea350c3b64f302c5489005ec87650de428e60b790489a17e96b9e1fa91b33bce5f4b8d8dfa1610b39fd2858c25b898c1386c6dc021bd3414bf213719867f8cdccbb4d2bdf12207860a638bd41a05b9697a3bc901e9ad0075c080243cc0cbb3d389977c522230a42125b08d41839986a60acae28bda183aacc32dd5cb149af2bbfc60b0d5ba8ad89b1acc0863ceb24faea37ef3f60168cc96d766642f07a116225873e651ef693f2bb97339acbcba301e975405661b2aa523168e06c86f9bcbb42b5f12d79c3c379afcc37dc4995b11a4afc3578a30a13ff57ab87f022fd5c3ac5dacc3462c7e7edab63b889c22e90d685733a1a79ec336c50c18a5fe4408c2c122e34a60ef56a78bc16b78c3c98ed689e0c9276697cdd8aba667109cd911b77e6930c4f58cef1240c1f7005a7a2b17390988924cb0604b4f897d19c5b0e4a557a6a23470bc71db15bc99248d42d9bed4117652690124b1bebb438473619c4919c6c0e4071ca990b9d005eb287b15126e5c3477a98669f0856242dc073bb2673c7c1b1485799c300a0648a83142b95a2377d7e2b1d994209184309934c914308b7371a307a3bfc825958a98a12524b847ba5b61e5a279eb9f7cab5ce030c45ffcbcf919a6ce1059dd7c6aa077c2d2437408315db32a800c2099a92ab682fac6461896d583007b97af2336b1e6d061643c62f0b5122d48a230225128c52863c9aa7837ab4f254f92863efbb3b379f87e40071cb6c8b74ac79af4ec11da6c028f1caf9545a7d0a984bf6ac8d4067a7ff29325daacd3f9470d529f02b00183586011da8a0295b678b18d7572cd4f081317b92c21803f613bb959170ad3a4cf465645d3e5a1dbf672013bb935bccdcea51393bcbe7c975d30a9823667bbb155bdccd14ad3d8b453b30ec2b0cbd703485975cc571530b4cc521693a9965139fca21a90d57397f34c46822ea0e0ca0f56668b8692127bc93322389046c63fd08ff82b67f9778964054b49ab0dabe24628e771627ccf34f46c6c820e9d890b15f396a291a98eb14a23575952abbe46374c74b812aac6b9ced932c078ad3f2a05c821b720305773d070b8c86d7686c53b81ce241586f5f752fb4a2774152638f04156a0b24b3061141878d5759d12f8bad4e98aa5d41895b91e122074b31aaadc30a1dff707c32aa0dbfb2fe0a519b4289942e99754034d65d7b9eb5c0087225048b5a293038969a944725a23475b0681ca2177c5bee023bb7e0abe99a630b5babb5f8a67c8117fecf20c1187c338a97b72c1674aa302c3005037631ccfd51a5b10ce837911d8d8372b9760c0498b8ad8218f832fd8519476ea5673d6659b558895796e14cb5a55e7a3d0b91cf5a6228a3c93175a2ccb06c26bb00d5224a402f119a3a42356a37cfd82162c65953b798d9d96cf4353805ddca537a9504b708d16424a3c6209c2d738e25c357256833dd14375a65e1e32868bc4c4e5e062fb636e27f4c746eaac0f641330d235d909a128c890e531be3e0cc307e632baab0ef7684cc687bac9b966efecb85ed1030a1b1e15b71be5a263fc64c320b145cab657a14c2749dcc9961952ad5489c6485f208933fff0203f3c31eb6a389f072cc3573166b9349ada4d7dc66bb12c18a7d96a86f93883f83822ec0094b24751388a51166da6b24a0b526935817e1ad73b4403aa3b10b5d1822daf198aa848a73c9f9a866b634f939c2179ce55edfaa1d5d48cb3127f0fea3acc7b163dedc529d14502bab03d1b7fc370f2ede22c7190bd47cc88028adb3294029e264abe2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 + +# Official test vector 5, seed: "aa93649193c2c5985acf8f9e6ac50c36ae16a2526d7c684f7a3bb4abcd7b6ff790e82badce89bc7380d66251f97aaaaa" +seed: 7ec408f52c9aa723d0c41d9987682a5f4ce6c9da7cd0215af60bbaf5484ab353a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 +public_key: 69bc82661a9e822624d2a644e1767de906658569ba68922aa5c18996c58b3325685bf3564518afdbb99aa67acabca017283bcec3cca9075cbcef02cbe57ccfc73581784bc6fc1b8b7623b9255c20f7430887c87a5f6873b8789de3810ee4841447d826706bbe47d6c4bb13380a03a532d240adbb8240847e6ed68eb5abb3452584b949b8889bb77d2bc87a11c4580919931509e8fb931b50957fb00b972c8f17c8be0e0565bd95b16799606b825e462059a701412ac2704cdba91ea269271519421574f807206d8a65f8b67f44117b4c742e7bf4209668cb013975a9317ee847bb09db3c44d8029e01c4ff4954d5ac7557941b4c12c60520785867cef3f77214805c96d8497b508629713064cbb04d0b9abe21afabb10f33eb38b6b3bfb34908ebf048ccb239701944fe64792b8a909cba14bbf50d03b858bf4a318b9860e58141b7f114b38616533c96c4eb25115724e6672ec20937fab6164aa4a9818acf072c90ea4a5ba34cc95270a330e2874d76a5e0fb085f1aba5917a6e6c3a50ae59659d95703d0a1e9c76c0f0055605ac839f70f6868bf0727496f38c4fd042226fb261ce27bcfab89daa192044462cba31297a660b191bf4440305c5235ec225018cc92480c19bccb480d03d08c470ab20c88c7a1b2a9f37dd7b911cae469de0c7f6e08aa9d427a8eb90af2649aa28ccf1bc19c0fd84842e5748f686278631659a5a874377347ea3894b035a5c139ec8cc0aa63a960535f8e3113f668bbfa9a67a82ccb03253461d3354eb81d0d112fd667a1f133c054730f28ab50f54c5416f65ef60b6ce8c86f6608456c819a7e10ba9232322e4bc73d8370874846643275622b3da6dbcaf9fac7001cce6d34565cbc6f34a1bc9ae904c5229320a3755c4a439f035b5f8a099c70a6a57b5e3e15001bfc19710878c5db0930b21f28603ea4087e0b30a2cba02118fa644331a81312a22ca0721ff266620bc91fe318897b77d3c9b7f9986861879a3a9c349e16c72a9b2bd645915fb05a94ba4c57aa72e93c3decc55597e664ae3a683274267f486452e089aaa8679234c2fde99327a60a81e687cf4491de4b90528492b6c46eeb7725d876a91987025af06895279635e98183bb0ef7267c6449913ed09ae1ba77bba0010b03b900863119011b1dd02aa969ba41b6b684fc3976c416342891cbd0588b5c6a480c04d7798820da67c9142fc07a906f2517a9217398c9611b0749f5556821d93368014d9d01cf2976af6bf492e2e59b66d3671e814e466388e2039037313ac690c3dc534ba77281613560b0fc9bc5a298c87b879835b386c6b0e1580830b689e7b005ae950d309c2e264556685c54c606aab7c0318b2c66d4513a707b8b5800ad2ecc1567807f28122525b69b7e1cc0d1646efcc1673a156429a205e4016887464c39a6543e722f0980b81f524203b45deb45184d35351be963d3906e7b0a98b49167a2e0bac9c7a50db62657c4cadf6985d753c33f90bb1a275be17a7342859415f7855384975775cb557a2eb92801bceb7f63cb97a40837ac159a37c2935157160d518bde11c1fbe18c32923d3049b50b50c2ae0a325281c7a4bc32022aa7835630198103b25398d613631860b70a6536bbc66ef6fc9ab856771652689527c5f5db1d1b4243e3f06460eba75c363715378c99019d213732804b31e30cbe3e93c6f83a7ec239560abbbd48d96684f17ed61c9dafcb55cb168e2ba1778ecb0166e7664e9412f4ec7353092fdba5cca4585d173023f1856836619e57b0052b07141ba9507b042c5d5b89ab429b3f237f0d80c5d4126cb4c59d9d19bf0bfa9e3eb42894228d13a05125b36d1daa647661905cb471b08405207469ebb35ba5375a40b923e6b0cdb3f1070bb6728a389ca4b89079467732ec3cd7a27d746850bd4908e401134b650419e639fba07d88eb2bbb755b2a7ac2bc6947ab8907c80a3b5610a771782daf790874563b65a1236baba0b6fac1e5f242919bb4519b637464565467456600882532457e1249e692bb82e16c7f21c370a29453a95600a069a54b0b62087f09ea7ab3da48348257877864cb080f7a39603e284063da75ec0b9219e515021ba46ca8c573b306e814245d45cee5f55d0e5c7e36a31166634e7805a413a062a7b5a7ae75783f97c505daa8f9113507a98a3e8ce6ff046df83fd23815de42eb44b586845b55b2d39aa000ad +private_key: 5999174084c2dbb511a7cc2500577f27809863db3607c863f5e50901e2be2b949ef9b55231b82703a200b1cc181e7119c0f9ab9839b795e763a5e7ca3a0216f6b080f0e7b52c8c196051b5ddd86779587b92bc10a16ba470bc115fe733c1847c689b06cdd2b3cc28a95d92bb479b05244549f5c3114951b872e1257b10acf04ba20cbc2a045947ad631c41781d0704c6f469908da6af1250bd04772cc6c45145e8193b739de340397f1cc431227474f2c15c634961b7af3dc645c9278c8ffc304ac39d1933946981399c92094aeccac243b81b698c2c4985e0191ca1126861d5a5f8eb61c023a5b38489d2168bc75a6f891202d734a28335add858b6a3dba95c86899db97921007777902df820b4d63b1ef40bbf87a59fb20662001511a75c323ee3b2eac47f51ca993f865bb80954138bb59bf2731c2b2498940129746c8c6297d2bb5aa8e75e3560ce91002fae79543289c7f1d1b1850b8ceb2166104b2aa30028cdfc6a5623c1ebc2c8f8cc2f27345412d90a9a840085ecb68214a13444aa3aa7259f35b0c5cb9e80aa83ed21c714a1a51cec15b91a578544294f565fa5c640edd9bb94c52419209006e9439ad53cacf4946567b80d4a11f5b2cef3740d20abcc04e39aada58cae16185072b98c64b7fb756eb0022fd055545b679bb14829bf0606558a6ec5497ea824371ea95312e31a02036179945a599454f5210dce7a3610055bd6db8f40e37502073824eb699a3913348660f3d1454430951732acdf3b4b64d57c9e69c6e6caa65e029a9de4c36942cbcab150034510eada835ff5aa0024b36df8301ef2aae086545a421e834c9dea771575d0ad98a0562e3c56b38546ad04475a39c310572fad7339dffacd2c39888a898ff9703d71147c3c9c476b75911d8615f43c9138003d1ea59e86cc9160f340a03904c8774924cb8ce5f610ee7a979f320960343d22c0cb84f977ec08b7fa18c34a2836a2157271472100758281198cfc88cf2c4b4ec287c6c669553f0135bca1129874b480d4621a4994d690922f67c6ef8b66c6602256ab917a9576638285e0586f3ef860d3891b66a8551a19a57ad7286c700bd7566938727b74401b9225732d5ba65929175480087f645632e93ea2c607b0bb900efb9e71d57b84f63b2d6946be5a66e77b032883b64c2734dce12944225dd58c3d19476a4cb01416711a1a81be7510c3d1183eb5d39391889d78206f3bc2775e174839a0162000921ef689a204565df8cf155131c9e7c5569459c81b3f712a8b0da79b1fcbc9a13c12d346b2e121177adcca95e4c6ab647784231172e4c4bde45c7a4532930a2a0a60a663a5b7bf186a5346a2c0ec9f918147a1e66b7f6289a21c2a6df8b04db12e76027d89bb7c13ba9672d1c76f4057415160430985f5215b53c59ac76c6387e52281889d968592dc607744757b61f30afb6c4e90ca6a580c475cba12664a5552f17330696b12b3ca3ea72784d16d2dfc5acc0b1665bbb1d8a09d8bfc6d81ba51f1117a109b43d2c97250fc9634001fe8018e2c9300e1e46c317c62574b1ee2c850b78383da446deb16aeb66a08a3348adba75693991b4c4172f8575ad7730039e3acb9bc8bf238c20e51b9cbc9818554021d7465d007967d274d82c03afb990f7502a87a60036bf5a204910e7fb3a514b8126aa96de7926592108c0692af748a839335837f0a9d3b20c97f3131906197c6a66ab88291a7c62d7d740f004d44e261c683827fe424b02802937d6ab4a798554574a0a6b5894ba8afd11b782472950c2cc678c148a9f80ca305be0b765a1542a1fe8690f4c865a09931904a3408e665d60633349b72c2353159220a12b5434eda854d7983333c04a0864356c6a137892023a89a2ed1a263a100a7503c1eac6aaea6b12a434b9ba504c9d79c8ab4aaa20611cce877a5f834d740108874bebb82c23e65bb16ca769c60280b036e2b921ea4d30f59f68d189a595dd099a6da6afcca07a6159099e05483b92d00076f22d0a1b94761e8b8399b4a82e204a011f141fa82768b2926d086a24ea0a71aec9d8723aa77614cb0b0ce881742e0a7a2afd0c288244be4400be81a90209c33aad80b84e383f84a4c313acae89a6575a3aa726b65f0d75e5a7ab355f967d5b771c85993a0b6094eb35e05c409f3e47369bc82661a9e822624d2a644e1767de906658569ba68922aa5c18996c58b3325685bf3564518afdbb99aa67acabca017283bcec3cca9075cbcef02cbe57ccfc73581784bc6fc1b8b7623b9255c20f7430887c87a5f6873b8789de3810ee4841447d826706bbe47d6c4bb13380a03a532d240adbb8240847e6ed68eb5abb3452584b949b8889bb77d2bc87a11c4580919931509e8fb931b50957fb00b972c8f17c8be0e0565bd95b16799606b825e462059a701412ac2704cdba91ea269271519421574f807206d8a65f8b67f44117b4c742e7bf4209668cb013975a9317ee847bb09db3c44d8029e01c4ff4954d5ac7557941b4c12c60520785867cef3f77214805c96d8497b508629713064cbb04d0b9abe21afabb10f33eb38b6b3bfb34908ebf048ccb239701944fe64792b8a909cba14bbf50d03b858bf4a318b9860e58141b7f114b38616533c96c4eb25115724e6672ec20937fab6164aa4a9818acf072c90ea4a5ba34cc95270a330e2874d76a5e0fb085f1aba5917a6e6c3a50ae59659d95703d0a1e9c76c0f0055605ac839f70f6868bf0727496f38c4fd042226fb261ce27bcfab89daa192044462cba31297a660b191bf4440305c5235ec225018cc92480c19bccb480d03d08c470ab20c88c7a1b2a9f37dd7b911cae469de0c7f6e08aa9d427a8eb90af2649aa28ccf1bc19c0fd84842e5748f686278631659a5a874377347ea3894b035a5c139ec8cc0aa63a960535f8e3113f668bbfa9a67a82ccb03253461d3354eb81d0d112fd667a1f133c054730f28ab50f54c5416f65ef60b6ce8c86f6608456c819a7e10ba9232322e4bc73d8370874846643275622b3da6dbcaf9fac7001cce6d34565cbc6f34a1bc9ae904c5229320a3755c4a439f035b5f8a099c70a6a57b5e3e15001bfc19710878c5db0930b21f28603ea4087e0b30a2cba02118fa644331a81312a22ca0721ff266620bc91fe318897b77d3c9b7f9986861879a3a9c349e16c72a9b2bd645915fb05a94ba4c57aa72e93c3decc55597e664ae3a683274267f486452e089aaa8679234c2fde99327a60a81e687cf4491de4b90528492b6c46eeb7725d876a91987025af06895279635e98183bb0ef7267c6449913ed09ae1ba77bba0010b03b900863119011b1dd02aa969ba41b6b684fc3976c416342891cbd0588b5c6a480c04d7798820da67c9142fc07a906f2517a9217398c9611b0749f5556821d93368014d9d01cf2976af6bf492e2e59b66d3671e814e466388e2039037313ac690c3dc534ba77281613560b0fc9bc5a298c87b879835b386c6b0e1580830b689e7b005ae950d309c2e264556685c54c606aab7c0318b2c66d4513a707b8b5800ad2ecc1567807f28122525b69b7e1cc0d1646efcc1673a156429a205e4016887464c39a6543e722f0980b81f524203b45deb45184d35351be963d3906e7b0a98b49167a2e0bac9c7a50db62657c4cadf6985d753c33f90bb1a275be17a7342859415f7855384975775cb557a2eb92801bceb7f63cb97a40837ac159a37c2935157160d518bde11c1fbe18c32923d3049b50b50c2ae0a325281c7a4bc32022aa7835630198103b25398d613631860b70a6536bbc66ef6fc9ab856771652689527c5f5db1d1b4243e3f06460eba75c363715378c99019d213732804b31e30cbe3e93c6f83a7ec239560abbbd48d96684f17ed61c9dafcb55cb168e2ba1778ecb0166e7664e9412f4ec7353092fdba5cca4585d173023f1856836619e57b0052b07141ba9507b042c5d5b89ab429b3f237f0d80c5d4126cb4c59d9d19bf0bfa9e3eb42894228d13a05125b36d1daa647661905cb471b08405207469ebb35ba5375a40b923e6b0cdb3f1070bb6728a389ca4b89079467732ec3cd7a27d746850bd4908e401134b650419e639fba07d88eb2bbb755b2a7ac2bc6947ab8907c80a3b5610a771782daf790874563b65a1236baba0b6fac1e5f242919bb4519b637464565467456600882532457e1249e692bb82e16c7f21c370a29453a95600a069a54b0b62087f09ea7ab3da48348257877864cb080f7a39603e284063da75ec0b9219e515021ba46ca8c573b306e814245d45cee5f55d0e5c7e36a31166634e7805a413a062a7b5a7ae75783f97c505daa8f9113507a98a3e8ce6ff046df83fd23815de42eb44b586845b55b2d39aa000ad80db50ddb1aff6498e12eac2d5dcdd68be66c7a569b0153ab4aeba37a75dc973a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 + +# Official test vector 6, seed: "2e014dc7c2696b9f6d4af555cba4b931b34863ff60e2341d4fdfe472fef2fe2c33e0813fc5cafde4e30277fe522a9049" +seed: c121915bfef6abdfc177dae2f5a24218f9abda2559afc6741b08e0e61ab433eb84ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 +public_key: 55f39e77f0722a726811358dc0f0b76aa90aab8c2dfdd3a4f3e31cdd076947d2b503c73b8805b26d6780d75b86d5f3b50ba899bef229beea7d18fa9016878f3aa8ba392a4b42ec4f92f42ad08ccbe58a18bbc7c8639c04016b9c663ca32ebc31fc82a138970c0cd238b6d1b2f2645fa407504183a125b1abeb622245886b9dccb9f2793147a63227236c9cda173c0546739bca51ab24cf3287cf935a8d870719a62b71728fc5e262662296f9984e485101860679caaa02fa1209e7703e0a5678c496a401cc5c1b834ae8c02d2a61b8c40694c634c80290a2f5b4a63f865ed6689a54201589a3384acc299c054d1cfa25be6ab278530b93616efa35cbd0ac8fd367923bd89cfa828f1e8a10a6d027ef2417422a491ac1bdd2702d688809b7455824ac902a70b06d54c92d73b2047567a25336fc74a6d8613d6af0a51c0645ed30c19f3231c147ad98e0276654b9277b16e100a2bc1327ed41043b61900d48c1f51c70725133ae31190b90b43da26335a323c13652a04a2e084827f190915548acd4d96323b573aeb2633be0b3061544cb6b80176337adeb4c5eab7c55bb612e9390419a7598dba6a79523f5764ec7fcbcd31b85c41548e1db0cf1aac1dea8031b0c3b9e629b6b9c06ef29628afc979d303355fc4d1a480fcfd0bdd9c04168e772880a4a53d4182ad30b760c89b2787691b40eb56165f321691f3c4880b20a81d08834c9b2d7b2aeb0e537f5ebcaada992ac0a3402e81e18aa1fd1391f00fbb333d46c7ae50373eba628685d15cb1867b952ed05bcaa8a7efce7c825ec58054b2c84d5c69dc22c219cc71d5a92230b9f40f633029c30bc6b266b37bc5e994e14f96d4c568d83db3491e38ae1b4a320d831cdd5a8e582a1e8a43153c347a3c91919ba60d18490baf18ab8a530066a9c35cb7e05915d208294059b161b09a0b8b446c322c9bd6160d7413974a1b11d0b643364432a1a2bacb1c0d70c642b68811b39a69d44974b125655a64075b35cf9cc0d632493ec46307aba8abbc1033eac4e7ad3329c246a08294f3cb141fad16f10b6804f70597dd6ac34b2b40190c36e17325742a4e9386c08b69cf1e0124bdcc2cea6ce77b310262a71ff7017fa1b70deca96dec183f2981975036117656955a5c4f1c674b09c1624c0c48ad2c2584968f511ba5d070ead9c7889e79b1e123c488349a1f5216f351070bc459f3c8cc8314e16b97266d37675b809fe962914d924d0827cf9b41c9fa169612b70ade609bec43e04345e5b97c330d9216a5a7e42632f09e95469e9b3422041c3119de5e845d6e02795806aba9203da928201905e2fa82c6c7229ef074a230a05401cc9e22076e1c372e742c8eeda0fe7aba76ce5baff468cfc93482a1ab5957cbcdb2295ba074038e539be24986cb8297a536fd479b42c8973b7d03d71d74346625f96234b32323b17c3769564a1a82378dd5c4d23a551024c3468e50ad5b97ca5641272711ff4464d62b9619d130de8491430b5ccdbc928b7e411fef80fb942ab322323da20cdc42b5d17a9406e3612b7970b648817e060030d338689665d3aa7cf2b97314f8237afc890b10097d8f304a26b9664844784ac8d00932ed8b32438a28e5b078484b5324d976422324fd0f217314102ea587d6de84b482992d9e6a6cdb3112599942fd76434390c060321d326bc702376d466683ad546b3bc2e47e4b891f3b7d584375dd3859ed58fe94255fe421bbfc7214e3abe265a1465e58c1067bbbf214db3a94c54876725fa0fdd048764921d5b6ba00c3382d5064baf295b30029bf27a88f8f630d5558d595549b65201793229ca2647621648297a66e92917e409cccdf5cb1378b906c3ba731355d57cad41f6148f7a706f850e99e7610d2c78d45b9f699926a4e01527a1a49886ba5fd25ca21c325e21034246c45785127f4859c0a67cc7b76259410b2f408f4e1569c73c54a4da92a40476402573a2973963406290549f4a41a2226131251c5d59d85e1d5123d527576f7c794842974d884e79927f7bf6b09b752cbbfc442934ba461429a3ea921aba995ef12c21116cfe66b132402bdaf690ed95483aec9785e6989e934e7858bd13498f4e994619ea9cd55a9504e40b4d0ccbe8f8cca1f72dbf74caa3975595623c12f22c120c022b59b2cf3748b17199c44cd37f8ea61ba5d8c1bbe50789ce915df9fce1b4cf3c5acd7ce52dfd +private_key: 8146c57021044d4310992c0a37686e1b55240a076646e041eca9976ee77981f4c4743788e5071b28011a2e26c2ca7c3dcde694dd996855ea17dcb241ddeb8ceaa74eb6e90bc7e415028cc4f7280069626196b793e7208b6987516a4a95b4906274b9a154d669ad7a85d454ce905c090aabc30fb68f0a001bb7998772937ee88714fc854dd1cb7f544b7ea345a016841c6eb1bc070066c2134591944016ec8cc5443f57e72fd8020f90f332a0284314ca6b02f8596db0a7244359d97a9a84c07f14939405718781606c80e272a0462fdb2c323c326383a010ab5bb55531a687233af12812d88268a2b73fe0377512e6bfe1fc5f74948a338259654760decb2616f3ab2d80428cd754e27746196b38c399a765b610f46b00f3b717a888b7e2111eb0986c8cdc84a546c420b6b37c882e96e96618b374975c0b8ecb50c6b9bc8d598ae6b46c023b82f3393817a19d09fbacf897251aa9389603321192baf160c0c5489381634320bb2083d604f6db178c8374b055271a124cda7100d48847719704beea14f6d18edca69db74b1e5ccc47cceaa4609a7ac43bc32c8159cb4abecb2800b1947245196bc4e3675540b6d5a29eb7e82db5c3b7f2b70b12042727489170884ecf09b0537134a9aac0cc79568e562695947aac325bc104bb45e83956e857803c563e287a20f9063291b8d1809795a069dbac2525e6cf0e1628ce07a335b110648551ed4471fa166aedb5449f64cad9ea5605bb2c51caa38afac0190c515ff0bac6d8712afb250dc4bc96dcbbeac20c4291097f31611a2a3dda52c94008357901ba6b5a227d5cc744d4a4e3bb97ea0b7cc8b7829bd245e6039e23b9451011334928c6cc22a919e97558cc9a79b988d248186f3acfe7c1ab71500c8671568a591c6306920c19b396923368118153458ea7411cf38cb60779cc9195ce98ea9c0c549889414df119874cb44b332b8789599a713056bc0a6ede61c05777262fb1c7dd03aed0b324dd903b7be44fdba05d192bb5426a86910108e3d257aad1a99fb7408aebc5a758c5728c7375d405c4bb461816bd7583aa2357c83a594d41449f7b7cbaf4d80b3948a8e92cad59a3283f7c3233833ad8c866aaa1cd0b39359a0c60da978046ec7039ecb3bbe752045bb15e8a0c745bab19287e79d844ddaa9eb89a4512b249b637122ba646888a0b14a50473683e05449295f7729980043c03357ec35432585270780805683d04e6a6dc099f7ea4a72b482e090797392aa8168242a5890ec8e89b13ec202a3398a734c75ffcc37a088225e103ac41b52af9412069bf0084c303fc0d205509a7211598d475f4437782fa3637d8c6a7150600061d4458811608ae7d290b1706516a9456c665cf86670f20f2a5f691cf36d1c90772b837747b737029d558cbfd418df8e26e5369bc0fe35e4089c7ea67383ee02f51f5cca36a2a2b867668521ae972486ff865d4e2beca6c4b1e39cac3c61cf131352f036c6292cce7875ce6939544b58634cb62fe6b80c4a4447cba420dca993ae070d3c69d62da3b956897daf687c6e339f8b45760b40c0b9ab06773584584b83a8113bd765815537985d2cbfb784bb3fb50be2b11e79b91129c29b7468638978a1cc8a81ed289cf209f41f85b4b018372c8799e9b7403e10a8a63035417719b3416961b94c47a0d81e51860aca7832b23cc41a541529df511a443e480e31020a1a5b5ac8a43b022b9b1581cfdac0b8d0c082e392c473c922481b15122cf4e47474d6c73f94496d812283173b6361c31ae5251029bb45d21b8aaf3037fba8b3f3744508b25cdcb35873321b6671d94c13148b115ea13b196dc9c3c5c7b37d5324aca344597870f361cb4e5b9450b93ff8a69b8ca3c55bc76845a635584cd0c145b67cb047c0517cf60c8a1146d11274531eb46da9943d8b777df8344f28b8b12fba249398fcc7710ed177c4ab34c0f229e4573c882d00a5a88cb41f4102d309b8a23858da00aa9c935e4e157a7da40885379ade1489b4b75dedc7612282df1969b5e42a915b17cd084788ce92521d6a83a79047e7cae21325d40d357be0b3a47933a5949a4c9b42ff883a3d7130b01843d57717bcbcc09ee13c0b63311df50425e7669540b3c3444a43b775473189d07c1724a114fffe30bb1976004a66ccf811955f39e77f0722a726811358dc0f0b76aa90aab8c2dfdd3a4f3e31cdd076947d2b503c73b8805b26d6780d75b86d5f3b50ba899bef229beea7d18fa9016878f3aa8ba392a4b42ec4f92f42ad08ccbe58a18bbc7c8639c04016b9c663ca32ebc31fc82a138970c0cd238b6d1b2f2645fa407504183a125b1abeb622245886b9dccb9f2793147a63227236c9cda173c0546739bca51ab24cf3287cf935a8d870719a62b71728fc5e262662296f9984e485101860679caaa02fa1209e7703e0a5678c496a401cc5c1b834ae8c02d2a61b8c40694c634c80290a2f5b4a63f865ed6689a54201589a3384acc299c054d1cfa25be6ab278530b93616efa35cbd0ac8fd367923bd89cfa828f1e8a10a6d027ef2417422a491ac1bdd2702d688809b7455824ac902a70b06d54c92d73b2047567a25336fc74a6d8613d6af0a51c0645ed30c19f3231c147ad98e0276654b9277b16e100a2bc1327ed41043b61900d48c1f51c70725133ae31190b90b43da26335a323c13652a04a2e084827f190915548acd4d96323b573aeb2633be0b3061544cb6b80176337adeb4c5eab7c55bb612e9390419a7598dba6a79523f5764ec7fcbcd31b85c41548e1db0cf1aac1dea8031b0c3b9e629b6b9c06ef29628afc979d303355fc4d1a480fcfd0bdd9c04168e772880a4a53d4182ad30b760c89b2787691b40eb56165f321691f3c4880b20a81d08834c9b2d7b2aeb0e537f5ebcaada992ac0a3402e81e18aa1fd1391f00fbb333d46c7ae50373eba628685d15cb1867b952ed05bcaa8a7efce7c825ec58054b2c84d5c69dc22c219cc71d5a92230b9f40f633029c30bc6b266b37bc5e994e14f96d4c568d83db3491e38ae1b4a320d831cdd5a8e582a1e8a43153c347a3c91919ba60d18490baf18ab8a530066a9c35cb7e05915d208294059b161b09a0b8b446c322c9bd6160d7413974a1b11d0b643364432a1a2bacb1c0d70c642b68811b39a69d44974b125655a64075b35cf9cc0d632493ec46307aba8abbc1033eac4e7ad3329c246a08294f3cb141fad16f10b6804f70597dd6ac34b2b40190c36e17325742a4e9386c08b69cf1e0124bdcc2cea6ce77b310262a71ff7017fa1b70deca96dec183f2981975036117656955a5c4f1c674b09c1624c0c48ad2c2584968f511ba5d070ead9c7889e79b1e123c488349a1f5216f351070bc459f3c8cc8314e16b97266d37675b809fe962914d924d0827cf9b41c9fa169612b70ade609bec43e04345e5b97c330d9216a5a7e42632f09e95469e9b3422041c3119de5e845d6e02795806aba9203da928201905e2fa82c6c7229ef074a230a05401cc9e22076e1c372e742c8eeda0fe7aba76ce5baff468cfc93482a1ab5957cbcdb2295ba074038e539be24986cb8297a536fd479b42c8973b7d03d71d74346625f96234b32323b17c3769564a1a82378dd5c4d23a551024c3468e50ad5b97ca5641272711ff4464d62b9619d130de8491430b5ccdbc928b7e411fef80fb942ab322323da20cdc42b5d17a9406e3612b7970b648817e060030d338689665d3aa7cf2b97314f8237afc890b10097d8f304a26b9664844784ac8d00932ed8b32438a28e5b078484b5324d976422324fd0f217314102ea587d6de84b482992d9e6a6cdb3112599942fd76434390c060321d326bc702376d466683ad546b3bc2e47e4b891f3b7d584375dd3859ed58fe94255fe421bbfc7214e3abe265a1465e58c1067bbbf214db3a94c54876725fa0fdd048764921d5b6ba00c3382d5064baf295b30029bf27a88f8f630d5558d595549b65201793229ca2647621648297a66e92917e409cccdf5cb1378b906c3ba731355d57cad41f6148f7a706f850e99e7610d2c78d45b9f699926a4e01527a1a49886ba5fd25ca21c325e21034246c45785127f4859c0a67cc7b76259410b2f408f4e1569c73c54a4da92a40476402573a2973963406290549f4a41a2226131251c5d59d85e1d5123d527576f7c794842974d884e79927f7bf6b09b752cbbfc442934ba461429a3ea921aba995ef12c21116cfe66b132402bdaf690ed95483aec9785e6989e934e7858bd13498f4e994619ea9cd55a9504e40b4d0ccbe8f8cca1f72dbf74caa3975595623c12f22c120c022b59b2cf3748b17199c44cd37f8ea61ba5d8c1bbe50789ce915df9fce1b4cf3c5acd7ce52dfda0237f5f24fca5a18f8f98c916c3e3304d2669330c1042829573e197597d729484ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 + +# Official test vector 7, seed: "aefb28fdd34e0ab403a703b535296e3a545ca479c1d8148e2d501b3c8dd8b1034bd986f13f1a7b4671be769359fd2aab" +seed: d86634ecf96cc2603761e284c0e36734cedec64e7ff486469e38539c71141c5a99daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 +public_key: 07f76c0d2245fe775fc5cb525824bf945b31bdbc0a86b88d8827ae7fc0a3db8bb9f534a21792637765081c4669832bb66485133f61bc22c55f03b109882b9ad7e75fbf12519873a18d9472087a6fb375244b313f6a81b608d88b0f79147282c9c37084b00138e8bc8cb3bbbd2bf9c5f95766040617962651f0556756bb9121a6bf09a515c6836b650c44e9db72cef47e08079945b8cf19d8bb25641186a8c8999103898492a904c5a7f2befc1614b4482931989ff7fc83ab40781ce54fb51866706cb04ec2c1c8813e963c70b0f15567b41ffdda8d02a94d00d1348911be52163f5c44188b6214856763a409040e8480c0f263d966a99ba7c7d5724f225ab99327a962d1497e9b265bd819c2959b1cd7995d138b4d71804fb122730b6133713d68c95d861a3c567c803adc403cc911186327e1726e2881bc9b4b1873091637c5532951c0c01a0999e7740fa77c1c1c847feb3dcd387ba3974e1ad0310f889d05e3508f02443491261c367c94e074009103e8bccf25520c4546c4bcca7aad34aac89892524219ba9b715c470c72c6c67811764926335f722c03b85c509105d6f43f65ea9908d4c61f7947cf70c4ecc08da31aaa6ac1887bd388720cb36e10521dd88d7b2a483fc5833f8694be9892bbf8bb19b6ceb08a133f037371f287956821014b58c6eb9351946303a3b7fa920e32a471f26a18a0b939ff137927c2a79c27a991040fa0d29b5a89124de37fced8109ff634f6313551140a873a6b76245a2538aeba7a234845cb4ef0c9707a4c56f8baee1329864591d09745fec24b1b392f86c47c38a62b613a8e6dc022ecf58d7d81c0f1e11a27296290ba0cb5bc04516a50fd1361c248ce450b54698c28a59274204427c53c68b5f73c739a62f9d57ffbd17f18c06994f0cc58f0979646a7273b9f0d3493db0a23df085524845418695edd526af36ac6b0b4c3346a2f61317ac8e93cf54351e12a752183c7adac04c3a943c463599adb1f4dd18a69d6a933a14447b73c2502374682c8209706cabba3a2c27b2a108ffa23a6b9732f5bd14ff2ec25e9a384a8bc83855c043a372687972112050901f12b9c0ba8ae7676b1446cfb376b1ddb89af260007abb736b5b223044e73dab7b3566c7e361c5eaa54978a6f3f72c31bf499c0854e272005ec603d3a50426b24a35721c0f1613d55e68e92682217401b9a21af9296989e75588143495907cae38c231c7521197258ecc60bf0409e4729ce5bd436749343a449a9450c5b2af817db83210f9738c0029ba26835c73c4a2b85255b42af98703d1d47106e2b3bf3f6c90c1b0c88e40f13e18f4870aa42555c08e00aad7760321c6fa8151768930cd7c12d1b6149fb679d35e981319b566108b56b98cf1efb9ecb9a3efbb6ac471c6f0f207569eb2022ea0fb0048207e96a7dc805d0d07de1541531848d670817463bbed673b5071227665a157bdb5509eb09873a00b8c98c48a3c131e029576b76f49b7d0152bceb0bb499ac6bece46f54f16b5d7414c8bc27dfdc9948077c090304acd20a4955b350f22253576780696aff4998daab028632ce4b3a372fca46b0bb33f23a52a93c31dcbba882a925c9c6c0c4546ac152a0eac489e9b27ce9c89aeab652920690b6b9944fc6b807d896cce9bf0a0908f05322e184bb7c5b2a4d7459ea75bc700424f884925a2a83cc95241e7701944ccd53271f8b1992afac3bd3f63af3228e9b84a5d1a9483d5502dac28f992531ece7ccec18b14bac48f1f62039861e90cb8ec0681d059788ed147d1e10115aaab25b6b41a66a5e1388557ad56eeee6571ef418a5f0b797352cc013a1176c3b131b499008319c121185a976c5831bd3258b7bd7b3852aa12fb77e9db085389c0a9e1033eb224835d4793c8603296c965bbc699f87b328db504b335fe83010432a4ef2a0b0a4300e29309e3370660f9b21bbd79382970dbf4750b3e142d5f7c381030901e7c09218636feb3062d43ec75a7ff9a640005c1f08669c50d6a41fa86790f2bb41e7cdb401c06c3c035fb812ae2013604422a7e3c1e6aa437ac4261f7834fa95be9e71001b65bd2e0417164142f2bc80366a8e5e1ace65108771b321da81100397a117f00515b6a2c934599416cad1d5091bd23708e45eb6f90a2fb5c47c8c77d6e395a6332a45f4178b0959466f648ec5c43422397d4e771f902db7b8d876a028f1708e233d +private_key: 617c1296d2bb9802655166cb0c2074c206ce03fc18f252ca7f7a66d3e619acd48697b3a5d9845f8cba2fe98654b56cba727786ae19c961e447c07ab7b9d30a64c85659429fdca3a01823c30a8335014a2472898d963a3407980a63c6bdf5aa79bf2aa7da370f03b593ca91c77f998ad93917711b7639e448a2036b86489489bc41a25404f77b0436b7810b38a3b729472b26bb47c70337d575ed265c22b86d46a8c7f1c668e56a66f3d65223f0bfe60b472a90a463881ed587313a45a675b9aaaa7a618da1165d143ea764c0eaba20ce244f8e3acb79c9be141b73d8d00bb6db5d27e30c2ed5189c31406f154560d7832cea31d40533a45b1811216951099f59896d25e1c1e898ba033aa6107b703cc7cd357b0d60118fec352b5df527fc0245f7a44fdb649c01b1b9e410b8990c689758aa606c1ba559075e2c3068e865cd835aceb37a78268e8eec1e1c93a619abc71c3305e6db35b58791e8d00febca9d3ed37b62a818d2a12a66d591420cb38896248a5792d2716c63c6949b804ce27768ac78a974e42be1437cf170464610223f9812908c29fb748ea9e253d3d8242320b4b0125bb094c7a2f635eea0ad60abb710f85150d797502617fd4341fbd58835b48412309330d3859e1140ba2443f6970b96c154d5b9429fb1a41ee6a30e4c4b919642fbd288629c68301c363599738a5571deb84358c571311737c01101e00c490d918260d7172efbcba6b8544d96a384101be6f64e946012cfc91125236b8a54781c4ab58dac60f737021c5b6e45b0b4fcbccb224bc7cb1b551ac35fd99a5f9c0cbdffd64d43fb3588f177489a02340b19fa12b2f3ba61f6d53a7a0cc1e186bff1a49cf22c500537933364a7fe257a5519c133aba7ab7648e2f7c6869b6531723cd03673afa10eb8b30ada830d53a4c7099695e8f4242454382e752b86fbc8bd361c058986d80699e60039437066db9172a6d8b3274a6369402c12a885a5e5136ab8b10ab8c7d3361eacb7627f16cc411bc7e2b3403d6b5f53b31f6a6657c2464eacfb796afb6a172a201026b3834bc70feca013fa036b5611f6f81013ec66017a4b1ea043f52c02ef0b55f05b6f65783a4dd6641496988e3a84364352967ca26302168ea81405929a4c72c30aa14f83016692413399630b582078fa6574dcbb29f17c5b85e3134e8c2db35c73b4683abd8b7ddf666ac1501b56d855081054b3085144a57f74246464bbc226c8605f71bd620562c044b9a6e656e7640549147819e124afe991fa28b049b388d150a313829144262234f46779264ddae5725469755a3594cc42cf29469b8a35016d170323601131b72304378a66f41dc0e43792915f5f35b338822ca6c7c9e6273f6ff36fc022522732514bbabbace610b9d952043c8d9ac98e89743faf9b2dcdbbb10aeb07c636001060a165d41309b46fd7d32c5f05c138d33cd06c3f316117ff90831aa5b6e0e054d49761ef3b2c6771b0f6f7124e5b8ce0814104500e704c84202b02deb0b78c17883ce72444850e608620c97290af3572f2681460f08e1fda10129806f6431317daa1e091889b7573c9100d16cca12b77a27706a34c5775bd494f13eb59002847d13163e777886501a497a7bac4ca9166b1c2ed27249cf11f135876b4c50c2febbace470505202a8fe10223b9374c6520ad4075dc30b0c4d06ed30877beabb108a6659078b7bd56c9c3d6a83f1b4380019cda1c5c6519145d515dd521449b717a98335efedb5e301a9d72467b4b458089d4242620697e27887d5b88b8259d0564ca792a3395649d4f458100e14f09400e8bbb77d64bab25407c95bc792115bd88e767b3d7c7eafca87dbb27e7c1989e74817b723f348a0a4d3b2b3506cc150934f6f50bcb676b756b1b1a401822c853b986b00599c61a269dc8a1b54227963fc7a7608952e984b90e10a9a81172b2577c7fd9ad3ce4b319fa0611f46706ea596af024831248ee19258c4b0d9928aae5208c4f3621c7696adb95a7cd91c39157cc4ab735cad892768850493b4509564ddef09eaf84c6f86638a1667dad3b2076cb93fb538d02a5c36e28240c367ba19717fa695dba621359f85c05e740bfc2ba1c146dfed60a88785179373ec49680999aa616e7753d3abceb4a2ced2a60c0b00bb3a90b2be5cac300b107f76c0d2245fe775fc5cb525824bf945b31bdbc0a86b88d8827ae7fc0a3db8bb9f534a21792637765081c4669832bb66485133f61bc22c55f03b109882b9ad7e75fbf12519873a18d9472087a6fb375244b313f6a81b608d88b0f79147282c9c37084b00138e8bc8cb3bbbd2bf9c5f95766040617962651f0556756bb9121a6bf09a515c6836b650c44e9db72cef47e08079945b8cf19d8bb25641186a8c8999103898492a904c5a7f2befc1614b4482931989ff7fc83ab40781ce54fb51866706cb04ec2c1c8813e963c70b0f15567b41ffdda8d02a94d00d1348911be52163f5c44188b6214856763a409040e8480c0f263d966a99ba7c7d5724f225ab99327a962d1497e9b265bd819c2959b1cd7995d138b4d71804fb122730b6133713d68c95d861a3c567c803adc403cc911186327e1726e2881bc9b4b1873091637c5532951c0c01a0999e7740fa77c1c1c847feb3dcd387ba3974e1ad0310f889d05e3508f02443491261c367c94e074009103e8bccf25520c4546c4bcca7aad34aac89892524219ba9b715c470c72c6c67811764926335f722c03b85c509105d6f43f65ea9908d4c61f7947cf70c4ecc08da31aaa6ac1887bd388720cb36e10521dd88d7b2a483fc5833f8694be9892bbf8bb19b6ceb08a133f037371f287956821014b58c6eb9351946303a3b7fa920e32a471f26a18a0b939ff137927c2a79c27a991040fa0d29b5a89124de37fced8109ff634f6313551140a873a6b76245a2538aeba7a234845cb4ef0c9707a4c56f8baee1329864591d09745fec24b1b392f86c47c38a62b613a8e6dc022ecf58d7d81c0f1e11a27296290ba0cb5bc04516a50fd1361c248ce450b54698c28a59274204427c53c68b5f73c739a62f9d57ffbd17f18c06994f0cc58f0979646a7273b9f0d3493db0a23df085524845418695edd526af36ac6b0b4c3346a2f61317ac8e93cf54351e12a752183c7adac04c3a943c463599adb1f4dd18a69d6a933a14447b73c2502374682c8209706cabba3a2c27b2a108ffa23a6b9732f5bd14ff2ec25e9a384a8bc83855c043a372687972112050901f12b9c0ba8ae7676b1446cfb376b1ddb89af260007abb736b5b223044e73dab7b3566c7e361c5eaa54978a6f3f72c31bf499c0854e272005ec603d3a50426b24a35721c0f1613d55e68e92682217401b9a21af9296989e75588143495907cae38c231c7521197258ecc60bf0409e4729ce5bd436749343a449a9450c5b2af817db83210f9738c0029ba26835c73c4a2b85255b42af98703d1d47106e2b3bf3f6c90c1b0c88e40f13e18f4870aa42555c08e00aad7760321c6fa8151768930cd7c12d1b6149fb679d35e981319b566108b56b98cf1efb9ecb9a3efbb6ac471c6f0f207569eb2022ea0fb0048207e96a7dc805d0d07de1541531848d670817463bbed673b5071227665a157bdb5509eb09873a00b8c98c48a3c131e029576b76f49b7d0152bceb0bb499ac6bece46f54f16b5d7414c8bc27dfdc9948077c090304acd20a4955b350f22253576780696aff4998daab028632ce4b3a372fca46b0bb33f23a52a93c31dcbba882a925c9c6c0c4546ac152a0eac489e9b27ce9c89aeab652920690b6b9944fc6b807d896cce9bf0a0908f05322e184bb7c5b2a4d7459ea75bc700424f884925a2a83cc95241e7701944ccd53271f8b1992afac3bd3f63af3228e9b84a5d1a9483d5502dac28f992531ece7ccec18b14bac48f1f62039861e90cb8ec0681d059788ed147d1e10115aaab25b6b41a66a5e1388557ad56eeee6571ef418a5f0b797352cc013a1176c3b131b499008319c121185a976c5831bd3258b7bd7b3852aa12fb77e9db085389c0a9e1033eb224835d4793c8603296c965bbc699f87b328db504b335fe83010432a4ef2a0b0a4300e29309e3370660f9b21bbd79382970dbf4750b3e142d5f7c381030901e7c09218636feb3062d43ec75a7ff9a640005c1f08669c50d6a41fa86790f2bb41e7cdb401c06c3c035fb812ae2013604422a7e3c1e6aa437ac4261f7834fa95be9e71001b65bd2e0417164142f2bc80366a8e5e1ace65108771b321da81100397a117f00515b6a2c934599416cad1d5091bd23708e45eb6f90a2fb5c47c8c77d6e395a6332a45f4178b0959466f648ec5c43422397d4e771f902db7b8d876a028f1708e233dc266d76c52b2a849f00690ffb252699d5b3e9f66e0abd3c1362c39cedbc6985099daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 + +# Official test vector 8, seed: "cbe5161e8de02dda7de204aeb0fbb4ca81344ba8c30fe357a4664e5d2988a03b64184d7dc69f8d367550e5fea0876d41" +seed: 0610678ff4dc3128e1619f915dc192c220f8fad94da1943b90aaec401683a492da1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 +public_key: e4f12b6f27cc55032582857549f3ba0d6bafeee47ca2e2cee04b023b066f53f75a5dfaa0aca416ed16cabdb510564738aa08134346757f92585ac112c25a6e0723958b7b23bed41a126617b4dc30de275bce903a1c6c2a28c5c58c49a5f0c447fb0c86f5b6a6e9d271383588ec398fe6928f04b67ead2633ee174564cb2115a55d8a53971e0c9fe2a209f9c8745467bb8d9944e6c1bbc8a54a5d28cf82e8815a3615dec5695d00c0e72b2f7c483f72d36d2f091cd169311a283a42d608d0d66e020172a6a799a66c10aa9b93a9dc5caefc805cd77d567390bf017693db8b33392bcf96011dc88287375bee828341e5a515a97c019895c8e68d41c0675723af42b6a50da91d04c9880d21a5af9929362411f5b36c75199211da655f454539aa399ec276af29011fc2b5e7f5534461220ec3ad3869178109a282e8a960b6119d0a4ce801d05150c636d20d70dbb092999bd2ab9597a0b1de56086c27ca8f5c22b86995e5aaa9f6514323a31750eb794adc1ea1247317f82eb443604ff254e99a895436060291afccaaa1fa26b20fbb9f48e462851513f7707a5c3461e3f4b3b4e72ba3089c53fb85b9c0576c06b2dc832fafb929c3b34de6974021378356fbc4e1282884d062b831b9adac1eece03f5be7c9c7e8b69b1a7a79304842231f0ba1107079416b388a074ccddae26b4d22693f95a8bbcb2f3445ccf74abb702428fd3a04bea9ce55b6c251c57b6ff10232a6a85832530835883336a10992cd30144b757ab6a6377389e36093e218bd09cca1504400a7a473e248ccd40567637183ccbab9bb2dde7198abf35df8f8c836e1bfe061448b133898fa6ce3abc79beb4ac8d9997c12588c908aa1002b2570a64654c8bb3c1914583748b95d13f9619659ab4c8687f872030df926ee04b6a74047b995625b1a9a929a7fad134f989c7cac25c42817bd9f45327725474a629df0944f5fd3bf06057355f2843e8157115361cd627ee6d548230a89ad49bf1b156e50cba74fc19a63ea2e01796b6ef4a37d4212897346da865f5c36cc49a6954a8a868ae195bc4625300716d3b3692e683a10d9192e2ac5d096c465126730a9b72bb3a729a7cf39922674e39900dbbf91b2785e301ad8a3843f875361b5c4ee0953ae34a583b36d0f54cc194800be6b0a6465479c51999d5029ff50117d5498e8c6a0c81bbdfc6c220b21a310993fd5e7691834732e358faaca460fa26ad20044dbb7177c47736c412bc9011f09a0ba4d22aefb485a524bbb8f74bddcf78358c8addec550b86895fc3141682c0c323210ed756864910c9446c7d9983cfa98ce9edc644967cc93b7008e3c9166ccbffad008cca6569ae913e7327c26032744758f2e82a70f8a399ac72657995ef2754e3184c263ab93ced1510bba1d0838a13aa2cb9d7a25c236a37ec37fc5c0093bb47dace9944d077f5c837d78c54e3fb1cb0e8a70c4a18b6e8b95f6b7be2b79b802055ad4ea5febe770c39757ac42a09feac48b6174bee79621bb3af7d0a0094895cc8b6aacf722eeb76abf6b6f0d66bdc545c68c845b22cb167f96a0448b0cf812c46793a28b55a600a1431374b570c93d6dd7b4f789101e578e29d96b2384a8e09115f9e1c8dd008d0047926c17285dd996690b4ee9957cde5ba56451bc2de46371738e65744fbbb558537b33581998dd0525ebb9c17d9777a701a676956a03bb4911070d83b603f5169f66838cb671627b899e9706be9460ccbda50135d504e2709ac31c48c4fa67eaa740bcba4173ec25fd7766bca198fe4122fe93be5b646b1a475c74ac276bca3904a7c119b057dd2bbade1701ff249f484a4bef04392122c416aaacd5726a273066fc510f394903b5f34860206d8c45a4cc340440179694223b8eb578c5bac2cdd183507946e3d02c0e219ae33008e19822d77acfe5c85bfee7a0b6aa0eada58ad1ca5ba1e12ac92063c326ac4140250be091b2095f568ac7b483acafd7045a229954b8583a33376ca7b19a948a10c4a45a5b80d403c89773b7c2c67ad1358bf2900e8a793dee71b91c978c389b4d8c824937e921a17914c6d1a4bdd6460a2c7cac50cbb2f006ce9c98c7a3342f9acfe11094b249870afc3e15800701d606471a7a0dfcc073c277bb74706e5571f81cae7331a7d1e36dfb437d7d52957526bda146bfa3530dfc93063fecb103ce58c30abb5bb70c6dbc92e5f3bf4060 +private_key: de8539327c009f37124d009dc3d112be749b80e86ce81a4edcc802e757aeeeb0bca029441dd2193c568063599dc8d87209775224a792fa020eaa02aaaeb0c444336d94d38a1a156ddd4014070c197e527d33ba3a40b496c8fb19f61353ca32ad986664cde663862534a7351ceea4779fec825f8ca93aea7f23883548989f23f77a25f99ba847b427d319145cc8e32656e83b6295f50a015263c75ca8778650624ab7409c0f45964a8cf466d2fc95417807a481a1d2062629b17df583b254124342316153fb5d45f67bba6024f6180252b6b54662cb2ad793704c51fde4bcc758314dec86e6751ecd6a0324aa123109c38d356b0dfc9676c087bd7c945871a33e46c0924b8e8e1b6777f530615a5e3a71c95ca532c8255e8eb6afa1b0570be3b80fd1974b170c3cf30559d998e0684f92fb1bd4fa79b5bb5aff34443c0c1a5423c42833b9753b1f98e46a024cb1d3074b00f101802b105a89b95b306a7d546f1d357cce202a71043ac2859265cb768a29cea051810a08965c773546768c09a66aa76710ed954269070fc886a30eb42e33c4cd7ca650cff5aba39b7b0ad62311b92139805e89dcb14507c0dbaa6ded775bd1107fa1e1c5d2a61ba9d732df58b8845b4965d001f78066261794311701330b238483bf61780f7a4082881aa316892f5cab105b5519ad111bc7e32fa5f23f98202cccf67d825826cfc50a6db58c15e12a6d84c185b469b0f94022550eb72a4332d4377dc356a5b34135d1593117651a5c0f0c87580b392b8643386167119f4651b7a433d7104f9a216486ab6a6e0208ed6b75b93989797472391c3464054eaa91558e1b570bb2116ec964eeaabb650896bc296c93a090bbe1c79a320f4e94a2a27122fa8c422a0a4d318c62cc840ea2379ccda0a4fc71c1fd7759133520b8ba0037f688f2a3057fac7fc5e6b3d3b1652c2567b092b7add6a542c182c579a366d620c2f40e59a13983609df8d2c6a7301e0566323f00132ec9a3ce800892304ddf74411d3932c27089dc987e8a3755fb010629887e0e518acca18110ebb53a48980091ab4c156185c8965acc1d16d702efc301fa88a20c5b4fdb24a25e0a6822c9cd9d6b7a095c2e14b027ee38319fc0827c5c393fb6c3eee59cf315031e5baeb6b08753c7aa0cc7cf8abb926298c444352b50d12e7f2474aa065eb6c16b1b660f3a1a80dd36151c8b40bb265cbafc87c526b89b860de3513770110402734fc2a3568aab6e751233f5da9a7f846f5e4c7d318595f1989d557312d791261e642fc93b23e6378d61fa036cd11f0e3723e7790551d010cba70acf913acba674393b06de7aa856953f10ab2ec7f182996695d4bbacc5457b904b7df2fcc73bdb62c047b3c7377e5c41b247fa1f562c57d4a09c6b9710c7675e267263cd06781a5b63a58c36c94317509540a81063cf97af65249eb6648290e10c627b1029fb593a05cb575c3f63f280d367cffd0c9a8443836235b90201c5a8c53380b4b3c669936f965337acc72c05ac5b441fd8dab2ba5259e38c9b87c98bcd9646aa397961a160c7718808c414ddb05742189ec4730feb020d92f84296dbb97a453f7f4b09c965a6652894e92350f097b184a1bccb0728ed70c0da600b3e3b1c6cf0790135a329b6b3c86c748ae6840ef581939c81ccec3848f15821643e4a41cd9b48b1e0979a964c858de00c67970ba281a4d70678d61a0b6e5b93cf7b5297c6219c1733670407d8272491d137bfccab4709984aba8a3842415ec337e6eb5e22b4855aab21bb394c470881bec25f21238bce98caa9a44e06277870a74426bb927b46cb63f10d116bc94232c566406b79c1199cd16dbedaad1404ae4f98ba38b58d6f6b7b46fa21247b0d93d58b0081c5473aa14c7964d56496739214033c34528a8b51d0857ad3b18699cf7a025e84d91788d906e70c011cdb3b291019e2225696a2c61d0787fe445b6e36c64231288f3854e52aabd1295cba072adf5b756aa19c9b079084c204ea1bc7b65a34a2e8894fcbca16b42ddf415b40b73d5bb36ad2714b233c899fd42040502a9ac208c031885791323a9b706a35cbb9f935de1633d1b6b877d5c402e92e8d06117ea4a8fb709de91320d5aa554d77a945b30c127031030858c066556c957fa8813bf9f4bea15257905a4de4f12b6f27cc55032582857549f3ba0d6bafeee47ca2e2cee04b023b066f53f75a5dfaa0aca416ed16cabdb510564738aa08134346757f92585ac112c25a6e0723958b7b23bed41a126617b4dc30de275bce903a1c6c2a28c5c58c49a5f0c447fb0c86f5b6a6e9d271383588ec398fe6928f04b67ead2633ee174564cb2115a55d8a53971e0c9fe2a209f9c8745467bb8d9944e6c1bbc8a54a5d28cf82e8815a3615dec5695d00c0e72b2f7c483f72d36d2f091cd169311a283a42d608d0d66e020172a6a799a66c10aa9b93a9dc5caefc805cd77d567390bf017693db8b33392bcf96011dc88287375bee828341e5a515a97c019895c8e68d41c0675723af42b6a50da91d04c9880d21a5af9929362411f5b36c75199211da655f454539aa399ec276af29011fc2b5e7f5534461220ec3ad3869178109a282e8a960b6119d0a4ce801d05150c636d20d70dbb092999bd2ab9597a0b1de56086c27ca8f5c22b86995e5aaa9f6514323a31750eb794adc1ea1247317f82eb443604ff254e99a895436060291afccaaa1fa26b20fbb9f48e462851513f7707a5c3461e3f4b3b4e72ba3089c53fb85b9c0576c06b2dc832fafb929c3b34de6974021378356fbc4e1282884d062b831b9adac1eece03f5be7c9c7e8b69b1a7a79304842231f0ba1107079416b388a074ccddae26b4d22693f95a8bbcb2f3445ccf74abb702428fd3a04bea9ce55b6c251c57b6ff10232a6a85832530835883336a10992cd30144b757ab6a6377389e36093e218bd09cca1504400a7a473e248ccd40567637183ccbab9bb2dde7198abf35df8f8c836e1bfe061448b133898fa6ce3abc79beb4ac8d9997c12588c908aa1002b2570a64654c8bb3c1914583748b95d13f9619659ab4c8687f872030df926ee04b6a74047b995625b1a9a929a7fad134f989c7cac25c42817bd9f45327725474a629df0944f5fd3bf06057355f2843e8157115361cd627ee6d548230a89ad49bf1b156e50cba74fc19a63ea2e01796b6ef4a37d4212897346da865f5c36cc49a6954a8a868ae195bc4625300716d3b3692e683a10d9192e2ac5d096c465126730a9b72bb3a729a7cf39922674e39900dbbf91b2785e301ad8a3843f875361b5c4ee0953ae34a583b36d0f54cc194800be6b0a6465479c51999d5029ff50117d5498e8c6a0c81bbdfc6c220b21a310993fd5e7691834732e358faaca460fa26ad20044dbb7177c47736c412bc9011f09a0ba4d22aefb485a524bbb8f74bddcf78358c8addec550b86895fc3141682c0c323210ed756864910c9446c7d9983cfa98ce9edc644967cc93b7008e3c9166ccbffad008cca6569ae913e7327c26032744758f2e82a70f8a399ac72657995ef2754e3184c263ab93ced1510bba1d0838a13aa2cb9d7a25c236a37ec37fc5c0093bb47dace9944d077f5c837d78c54e3fb1cb0e8a70c4a18b6e8b95f6b7be2b79b802055ad4ea5febe770c39757ac42a09feac48b6174bee79621bb3af7d0a0094895cc8b6aacf722eeb76abf6b6f0d66bdc545c68c845b22cb167f96a0448b0cf812c46793a28b55a600a1431374b570c93d6dd7b4f789101e578e29d96b2384a8e09115f9e1c8dd008d0047926c17285dd996690b4ee9957cde5ba56451bc2de46371738e65744fbbb558537b33581998dd0525ebb9c17d9777a701a676956a03bb4911070d83b603f5169f66838cb671627b899e9706be9460ccbda50135d504e2709ac31c48c4fa67eaa740bcba4173ec25fd7766bca198fe4122fe93be5b646b1a475c74ac276bca3904a7c119b057dd2bbade1701ff249f484a4bef04392122c416aaacd5726a273066fc510f394903b5f34860206d8c45a4cc340440179694223b8eb578c5bac2cdd183507946e3d02c0e219ae33008e19822d77acfe5c85bfee7a0b6aa0eada58ad1ca5ba1e12ac92063c326ac4140250be091b2095f568ac7b483acafd7045a229954b8583a33376ca7b19a948a10c4a45a5b80d403c89773b7c2c67ad1358bf2900e8a793dee71b91c978c389b4d8c824937e921a17914c6d1a4bdd6460a2c7cac50cbb2f006ce9c98c7a3342f9acfe11094b249870afc3e15800701d606471a7a0dfcc073c277bb74706e5571f81cae7331a7d1e36dfb437d7d52957526bda146bfa3530dfc93063fecb103ce58c30abb5bb70c6dbc92e5f3bf40602bfa2721399623d76222e93d092c34792aa8308d8999aac7e17433da2166292bda1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 + +# Official test vector 9, seed: "b4663a7a9883386a2ae4cbd93787e247bf26087e3826d1b8dbeb679e49c0bb286e114f0e9f42f61f63dec42b4f974846" +seed: d322d56d8ef067ba1f24c92492b9c56df3a6ef54a304adc1b69913766a1ce69756047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 +public_key: 1e778910b9afed44842d78417cd027f819699af6b0ab475a18b7359817b50c306bba0728c5a9088e667dcb7944af6c10ba86300308165c1242cbe8708c8347c44ab77478304efc0a9e5328f203b90108418fd1b5b7c3b085e74cf500729e27719c2596feaa689a54ccb3a5a4a74acf36c652fb97ad49190cc6f08382017db7a910f816701957cdd8449ca075b9a3c18bd88469e3f51e0c967146413bdaa15c38284a726a8935b3987e774a182023cc0acc18a80b8b6909b52b8726881380b204cf1c069415a99556476b0218ebb4217ff33a0593be5f3cc47ef89c13397d68933721c5a6f1241b88f452654c249d35c1a8b16305469586435c1a6156f8520ad33938c8dba429c118154020205b0235262f233c36a89b384d82bbc49b6d6074517a631c5ed285f56585b286462872503da5c3df9c91340071eec625f8b29e4c416e93b46d37f95822ec35c2897417d7181dc9a7097aa74f3a02bf1420b1a568e1d7b1a743c0d07623e2296071912f7db25d67d751fb3b9ffa671403f29d162b635f0c7ae693578d2a752984914eb9036bca365a76861a05075b4b2a95077b6600a42e071d60e21618a689e3f7b5c9836b7451997ef80917f6351f814e2ef1786736a703012d3c9ab9db50b5b9f08bce69ba50a2c48f059dde2181f725cf39f426b39028402acac36bc0797c918d30a4a6d4bdea2927cd75364d167f34db97260039bfccb64b0003ab3532f77353fb6a0433a5a95570c2ccbc77f0e4bec1584cb1a88735f27acf58120d01265cd7236f18af3c00b4363cc372fab07ef3a87030b19b07af020320f1f747e32a8bd1f32e78f1a62960a43327307d8c212d1044689805be15c1c68682d0a8a24ea51267058dc4b15f36e12104ea83e425c248209a8d193911e2a2dfe3a47f485abb226f02919f9bba4014262ffe6b4607bbb511fb5fcc205134f8aae2310245b9c9e73957a2b5b4cfe0916dc1bf6ff891c645b28e63bab6c23e5077a8c3954fb5978ad8e07dac5c5c1fc4759912524566785df222d04435a6a24361178d917b53af57438b46aeeac546bb5207c186bd196bbb6277216d95ab6e545d78e04b82669d19093241b808aedc5db79a9e54762074a0aed86931497917969ca7f20942eee719287c887b3508f23b919418278be0236043acb3e4abac940c44c3aec3ab8c78bcabd84c1d373899369b515c2478c6085ced3b08f668224f950d3b82355468bff0534cc7660045e96ca40067de520091437309f7030f71a250c359f0c71c2f8819b62cb39646b19d63669f679ff9f48ac7a426e3fc1a1d358b675105f28586726304adb8109e104715b6c330f053961207eb96148a866c12c9349fb6aafd1b42f5f80a2d827094c3b4def6478212332d96359fb3450cfa6bee8327ea707b8cc61799105358521c6199607d9b769b38ad15e4b638d12d16aa90aa49cd90b9047696acf9c14cbee59f82b46de5bc644402400baa2e839ac801c70a368a3611cb11a1484dadf30185112f52421196d1797a3085f5d429d286343953ba8de676c381aebf394d0453bf1610905f3b6afdd5299a750f2333b3944067d9a9cc201922f9b5162cc41cbd35400a275717228050a97d05d0c1b303bad3405f36a1218c5c089c98467aa37905b334edb31f667a88c2129c1749784f49b83a329275e1b5fff4798d4b1c5779a5d433ce716bce5763572a29cbddf5b40b464f3e163cd5b554c5612c20726f57244735e2616f45356237263d69a1e1e03cc4d9ad57c83b3075cfaee45418282261d8bb531b685c766989c28ae9f991415907858308a1fa027156b6d3c8c0cf926553b570fd077b6fc419d8f4556655ce53f6802d406781b06463042304477bc8ea19757bb54f2cb54b9276fdd575d5a00c267b1222d4c25de11860dc14a1f3453423caef02bfe8720472c194dd234038f8aa0d3118286b530247b88a83318fda0a9c226cbcf22510f681db3880c2208b70f67c124437dd32ab9120894aa287c7040e06f6cdd0121ede209068238b57716db488335564c316111cdd90741a197646874922ec355a26a7e5ba4af5873f974b2626b40afbbb5c59501fceca0c9fc76fe9b8786ad1c5c76b071b6c054aac0eb8e0535bf8a4249a9256e4c1e8ec673fb5bcae20063a90b601e047e9bac3ba827acfba4a7e9b040776bd6f351e548ee005d759da86c9b2971f9d6d1cab8d +private_key: 7592584ba97569a4cc9c918d9deb2312e81719fb4286d67866e9a14fa947f220692ce29d0f68a97f851e5c938db1587180ecae36fcbdb8eb19d96302bf38a02e0128fa562ba7a9260c873460814ff3021d511482f4f731f9a152ca42c920285003025c5aa0c77698bb5b778c1f864d696c0dd4d634421224c7d14287d625b422062310af94c005636c8f15a486e3ea3151b5230e337aaa59235bf7968d9c7b067b8d1bd6247316047d0568aef514f725befea696ef124f10f822d45773e780226730b8aa043f80229ae2200739392a3b42c0f3833da3b18b38c243f0a72760a917581bc6d2784cd4b796e6812fbde666fbda9ce9522a32242a644032f144c4904031100c12ae7a3aa52aa3eee02f27909736a8bf9f8992079c76157001c64b08428a5acd67762d01c4009d4ee71c3c9047751d89b0f6020ffe848bf3013a5e4c5c3db6457c55bfc8d62f6db63fd4ab1b51a06b43f8b7eea0ab5987bda78278d711ad53a6b5fe58ba81c5931c9b1edc74643115bba84ca0621a9c3e49325f8b583715142732c4e0ea713f36c6fbc3c90a467757c798ede3368015b95a62adb0a62a12452abdda5e0b9a882eabc2f1150157e8aa950010efe51f29b3c88f132a02e311fd75497bd21828f428cfb12bc361250b3a765e022d70bc3544b55df119adbb5c63399172ccc7bb6f392f04cc02f96aab64e0b46744abfe9acc869487f929317ae1c103508556f688be7c3407202a79e54f68683cd066c537366bfb918b3916a8b030b0cc1301e1e4b7098a47cbb46d417caa00418e9020629db0bc597b2a9008cfde2bbcc777ac7bd55f2215502fcb3f803075037a56e70c8b4f3b44b9269824610bccd15ca8a3c52357bd582c52ea217b22627ed9eca00e390e7e890e626b75af7bb9f5d8a05c293642c51b0d399d9d5250b19724d22b3f1010389bc38752a032622bc44fc4ba074b0b1ee753f6305931fc3cb7b0c88fbba271f0722e73c83e8c49a120cd3130471a78c10df4cf52952829e596bd651ab39c430c4c4904b55ebfb06f74640dffa40d76c15e3779bb752ccb3d86ad225b8333208ec12c50b7e923a9f67b3e77aa55a8486cba6efab46ce56a7adb92739b264617ccbdf5f41d5797873a42b36f26a6fad310df949f9c670014403136522fd5530e03263401f3138847c363e400477baff7c38ba4631a19517bdb61b8cd3868a7c6bde90a97d5722b9c5b17bf05c60822a705179d018a324e0ca09b54998ca8ac188b0037e4b563b479c4795562591cd3e06f64bb83057631b243cd981819a3655f68b506fd0cb52237c9b9166d07f46a44c22c037b7b07250cb5088a96473c9d225b79aa8c09245d8b9a71496ac9ce658d0cc329a1bb3fbd03c433e413f355515b2373d8158a40562501fc46c0e7a4e903293442a2d8bc0fb26a1475d2ad52cc1b99229c4de5a78b7b07d84475b5e8651590916a4978dcf72148838140896e210a3c328486a315a9e15592b9945730cccd1fd75ed55a74f4897e63b3a1d8b96d5021cbd0b8141176af3aa4a69ae6c634419246ba662f5739e46991b09c631db407e1a94eeaf717f92a977a448e67891be2006da0371aa0b0c581db7a605080533b2427194df500c4d4d17a24a6a98f96714556cba48327ba2abeca7c06ffd382133621cbe68d9c11b07ff458e584848473431b488ed6730aeb26093288058b653cfe453ee00c3d97d35e5061660f246ff10c75f6ba6b404a48d537a846c06d02b7242462b0c0a80cbfe9022d97852c290887d0766ff81cb9a08f0f06bf00d6996c962ebf4139739709bbcabe7e770f01fc720bf015e81517d1a7ac1fa69236d452f783c0dcb65cfde091c0b8abbdb8b83fd2134e7434452c21bfbc0d5fb81f631c2afb1c0f65ea0172999c6888b2c39a8269fc383c06105a34194d8bb64d31bd56e86e5c3758293b7844fc5412a7b7d9cb9a614420be1c079ae9830a494f356b99e9981e55b5cdf2fb227f2a8eabb86531a00e42f07c0e1a0b198bb198ca8252763b62872ac7c742ba04084df82f542b067c23b72fcb51dfc9a4fa2958ce0c2ea4265c1654bb2090ba81273e83faab505871ddfa6c76062b3308ae5d8143e258793130431a16ce5e7b62ba9b90dc776e778280d0f2b8cdf7bc8750a96b219eda180621707f1e778910b9afed44842d78417cd027f819699af6b0ab475a18b7359817b50c306bba0728c5a9088e667dcb7944af6c10ba86300308165c1242cbe8708c8347c44ab77478304efc0a9e5328f203b90108418fd1b5b7c3b085e74cf500729e27719c2596feaa689a54ccb3a5a4a74acf36c652fb97ad49190cc6f08382017db7a910f816701957cdd8449ca075b9a3c18bd88469e3f51e0c967146413bdaa15c38284a726a8935b3987e774a182023cc0acc18a80b8b6909b52b8726881380b204cf1c069415a99556476b0218ebb4217ff33a0593be5f3cc47ef89c13397d68933721c5a6f1241b88f452654c249d35c1a8b16305469586435c1a6156f8520ad33938c8dba429c118154020205b0235262f233c36a89b384d82bbc49b6d6074517a631c5ed285f56585b286462872503da5c3df9c91340071eec625f8b29e4c416e93b46d37f95822ec35c2897417d7181dc9a7097aa74f3a02bf1420b1a568e1d7b1a743c0d07623e2296071912f7db25d67d751fb3b9ffa671403f29d162b635f0c7ae693578d2a752984914eb9036bca365a76861a05075b4b2a95077b6600a42e071d60e21618a689e3f7b5c9836b7451997ef80917f6351f814e2ef1786736a703012d3c9ab9db50b5b9f08bce69ba50a2c48f059dde2181f725cf39f426b39028402acac36bc0797c918d30a4a6d4bdea2927cd75364d167f34db97260039bfccb64b0003ab3532f77353fb6a0433a5a95570c2ccbc77f0e4bec1584cb1a88735f27acf58120d01265cd7236f18af3c00b4363cc372fab07ef3a87030b19b07af020320f1f747e32a8bd1f32e78f1a62960a43327307d8c212d1044689805be15c1c68682d0a8a24ea51267058dc4b15f36e12104ea83e425c248209a8d193911e2a2dfe3a47f485abb226f02919f9bba4014262ffe6b4607bbb511fb5fcc205134f8aae2310245b9c9e73957a2b5b4cfe0916dc1bf6ff891c645b28e63bab6c23e5077a8c3954fb5978ad8e07dac5c5c1fc4759912524566785df222d04435a6a24361178d917b53af57438b46aeeac546bb5207c186bd196bbb6277216d95ab6e545d78e04b82669d19093241b808aedc5db79a9e54762074a0aed86931497917969ca7f20942eee719287c887b3508f23b919418278be0236043acb3e4abac940c44c3aec3ab8c78bcabd84c1d373899369b515c2478c6085ced3b08f668224f950d3b82355468bff0534cc7660045e96ca40067de520091437309f7030f71a250c359f0c71c2f8819b62cb39646b19d63669f679ff9f48ac7a426e3fc1a1d358b675105f28586726304adb8109e104715b6c330f053961207eb96148a866c12c9349fb6aafd1b42f5f80a2d827094c3b4def6478212332d96359fb3450cfa6bee8327ea707b8cc61799105358521c6199607d9b769b38ad15e4b638d12d16aa90aa49cd90b9047696acf9c14cbee59f82b46de5bc644402400baa2e839ac801c70a368a3611cb11a1484dadf30185112f52421196d1797a3085f5d429d286343953ba8de676c381aebf394d0453bf1610905f3b6afdd5299a750f2333b3944067d9a9cc201922f9b5162cc41cbd35400a275717228050a97d05d0c1b303bad3405f36a1218c5c089c98467aa37905b334edb31f667a88c2129c1749784f49b83a329275e1b5fff4798d4b1c5779a5d433ce716bce5763572a29cbddf5b40b464f3e163cd5b554c5612c20726f57244735e2616f45356237263d69a1e1e03cc4d9ad57c83b3075cfaee45418282261d8bb531b685c766989c28ae9f991415907858308a1fa027156b6d3c8c0cf926553b570fd077b6fc419d8f4556655ce53f6802d406781b06463042304477bc8ea19757bb54f2cb54b9276fdd575d5a00c267b1222d4c25de11860dc14a1f3453423caef02bfe8720472c194dd234038f8aa0d3118286b530247b88a83318fda0a9c226cbcf22510f681db3880c2208b70f67c124437dd32ab9120894aa287c7040e06f6cdd0121ede209068238b57716db488335564c316111cdd90741a197646874922ec355a26a7e5ba4af5873f974b2626b40afbbb5c59501fceca0c9fc76fe9b8786ad1c5c76b071b6c054aac0eb8e0535bf8a4249a9256e4c1e8ec673fb5bcae20063a90b601e047e9bac3ba827acfba4a7e9b040776bd6f351e548ee005d759da86c9b2971f9d6d1cab8d517dd00566aba5f53253d778ce06e380b14c9019095028f3944a31a1aa4816d556047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 + +# Official test vector 10, seed: "980d0ba7c8f8b23d0e948a6029ff2659810ea1360064663a8994d0333c8543ee5ff5d6d5c9acf446e61dc464f792b9d3" +seed: 2f1d8a3bebb34540324b9485fdf3d5be3b858f544abc3fc641b5728cafab03ba8d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 +public_key: 1cb3c6a7f721c4039b10482990923aba0427e2da5bdd30bd55133989a5b43bc371d2105415e76ba18786237c7151548b26005961fb2a9e737e39bbaf97f612cacc3ebbd216f9f57873f97c503a95a49a1a113b0c454526a082203b1a27e2fb170ff1b59b0657861567d5565555f11ea31523c42898d6ea1ae260cd98b9cd69f9ae4d19a81365154d24c008bc15d1482665c313c3721cb701c3a407373e1bca5829cf45d484721357d5f83b5cb58b21987d9fb7b77224c03c017e183b31fb4c407ac23312aba708e8bf7f905d68b4895a48cd7a70af6ab9060d959f56a02d7e3672a90a6218fbbc6fb641163674bd736af2764c72c5bc85651be47350507ab81749bb2b6c744520b5b0a3b6633355c0991ce4e1a813615f2e8300366521040049b1054a7741b29af1c300e2c86977af90e820dcfcb8cd967c27102d49fb1683c63553289cc0c62de0e26f7555392187009e0cc5896acd8c3c9a4a7c637a107da325cb7a694e9a1107e889cdc6310671bb6c5b51a35a0169ff7b5158bc6469a71a3e8740e9281f5869180c91cec8e1169e2b377c8174669ca67418116c3cbd2ab61d8a874f9bb767de8973d8425cd118bc9a320453db9c64183248b22af3f489ae69159a056ad113833c2a9fbc56b10d013e911210bdb8cba68a0ff0f0729757bdcdf68b3fc7be480481ff64c4c09825ee52b274e85e544091c3d36f40444d28878d7c19122957348e3c27fbe74685fc1a3c21126064242616bc4aaa5284f5588435140956cf37bc72daf5a73ff6ce452ca689066fd6e118bcd4988660c7c8501c34dcbf1965c66fd95fdac910b9e48093fcb200564b4cfb36c72c3096c5579f736059534d57b7168813439b722d5230b255532d838598d615c1b641a9d5807f33653a1be96835f474d4f1955e3c5bb5c621497c3451003ca76275af98b25a962765e5bf2fe754330a77837288810aa53be9a2564451319405cc38b13401a7f7dc960b5b2096f45a94098a2fb39dcd654f846388cfb4b57b4b92abb321a16a83b3e6953a0724afb47902e581acdc278957100548c735fa5c04a4147e826a77030284615b82fa60bd3619b57bbca10872afea091fc6288ee434d8319f028125a0b5006cacaca8ca6eb95c7ad87c7e499a4ad81bbf79d144ab16ac9cb49743258cf0c83f2b006b1d0585efa0ac7dc722ed6c12170831f0964cae2b6d2f808afdc6223d11b510b949e76a0a4c262748148ce17b38c55cc7eac2bfdf468105bb89298c88c8806b124c7488d606b52b217c81a17ee5ae67cc27f6a3382d50705a9bbb1d3c59f68b8ba9a45ed1c97ea1eaab76903d1f2a1c71a07420f47695d1b68d06c5dc85114ae83204fb4bf16c09385934105c9e2fd803d83542f4aacc3af6b949a63e6d0b0c46ca8a6b4633926c0665bc09b69ca250945c14366d49705658f6cd76964e107497bb42290f4c1471a4ac29a60c3dfcb701770619cb45b0613068091a68b58c7b2a19ca9933cceb112e234014816b7db43beef660100a19377a4200a0806be78d30169c4b747e8208780a14aa53987065936ac4f06b7a710870fca3b1bacb04c2af5e3005a9208b3a03929b864d0e1011cec63b93220e96b480128c20b7675c9a87c1c8e2bab4a7422fe9c16d367928117765458a3803af02332d1bf654e782816b15a5bcc3bcf0213dcbe07c59a92d1b1baf1f217061e197c71223c12746cfc0b0aeb99fea7b29bb3a1300bc266f1692fd8641d6fc594b9894dfcb0c951b8351236087241f7cc3506ca74ccfb4c930fca1be940af6606ffc76bb92b53768294c30370b29b795de63caef451a18317384299168b77793e22fe0fc03e4c064cbb6979b38871eb11c5650587dbb31eec0cf7ce128f535b0545ba98af5ab4bc186ea1081ae15bedef5945410c800553d8a2211e8e16125d4a7cf25a91f13858e1cccb8e56481a5a3bbc3468bb624f282069425c8b5462725a813bbe53c1cb11bbfa242c2a1619763448af184958cc333c3aefd35c4a4861c5cfb2ee1b0c39b0c73314aa3d191b6406caa94d8280d8b01e1b73e56f5bdbba80fb3923a4b608543ac827395cad1b050530b5e908231c324132d782994753284927f3a379f71603036a172ef58018cfbb879f29a42a106bb32a384db6e033401fa46045b035ed2b3f277ee6bc7b69ea2a0946112498da4ee64a2be6ab49596c4e61553e1164d +private_key: 25c969038aaa118900417b46198c2c1d718005994dfa10ce5eb8b998a524dbb1a4f3e0716d314458ec6de9972dc3d988a064cb0b11cb82450f1055c9f333b2c82541f99167786b126c8427c515a8f9f506f878427e1a5e239547f1d6bd97674379b06813624a220a22f5c51e0dc0582ae30caae6cc39cc1350412c7de154c3484602496bf84cb3df4c031192bad2390f9f60c7e84855ca118b00bca814510c6a019d25e8687489cfc7c0240c822de267359b877adddba93ee7b99b8831efcbc6c915639b7547204190f4d500701b239a161cc4858411542fe113372cc3b0e3b4417ee5117df681ccac2efa3988921a151c8418e52cb49215b1e7c270812b876d37b092b882ef98a8075226ad76ab0bb9170f61c73d1caddc201ed8a38b9e237a6c345fffbacd6f86c47bfa56bb04b05185607fea02a16a132730710c85a424a08ccac9c8dcb662fe0650fdfb1ae1ba973e95079fb9717de44348cb0930d1c8ef1202b4c7849c244436d7b477c2211758801c316ac9b5be8a082661ea78e2b14e87da8c78e81ef2285f00d116755c5cff986b56b29032b390bb8453e8d970c7f90237757ec291ca8f71c9b691cda16749a63246ee865ac503a5573962be14a61c31a6bd3995e51684c1e59d2e803b5061b2ce633e7b692b5503818e349a61155b8820b790a692896317fb56366b63cfd7a4305f1082bde4cac8904d22f782fcd7c89f32cd98125f7ed96b0ef932cd077131424437744a5cb74f2dac52932c6c25ec282caa4e65fc9b38a43e21d3b95cc5bd67801a22d95280457b5a182f6d9c8fdd197cd12231f7889af318aa0dba8e3ec6056fd6687a476a971abe6cb439c055b21c6933c5f58c9409cfdf29ba810b87cb971f1e314256dcaa7ad63a41a11b4c1c127a8065c24979b89c96d3a2a944d16d20e39c27cc2969bb132a688a0a419c726338f93593005453001b753afca27c84c25661a63628365ce3074c90448c92b20e1299b2a10403fc9fc8dac9bd479802f8c3add3929b60b409f73e53fbaa328756a7b3ca8ab8a3341863ca5c625697b4e1760e63217275ea216a61951f88b9ce64839c461de048b3aa4692e6095496482130ea3be3569cbdac7c6684c4c561043b4167795138c662b44eaa97a279a7ea1a9e94d83d008ba136c484fa27c05db44066fcaa02f71a663512a71c7ae01742082c5fbc879a046373759965b0e565930506a8f6cd1035aed5e4a12b09a7abd74d4135653c509444775190b3c822c567381a266d1a7d6e19a60a536f60a946a455c71ba2385fb099addbada7691de2c54d5ea88020db4424605c69ba6ac2bb4181b363c688c24611737cebb00f536a83c3b30f0a9d46946ff4814aa8559368d393d94264da25b805b417158b6d0103ca9d1c5b62b1b5cfe969677a70ec1385c17a59a065809e52b99fb647e63b1f1db0800dcb9952710a94361d60fb0f932b30ed8b6715d913d8ac16a095809dbab0b0f64b6f5a7ac4aabb38414401c58b935586f000354be345f9c45cb0908df8e33063cc0997d122ec830e4c871166ea0499d6710e919faa269b064374d463bcfd96b427b47755d689fb3320b3e4759ac13f738a72516638d8194c31802abbfb68f4a6b107e05d81ba4d5d70ce6e140771f08ff7e966364703fe8a2f2ea8cbcc960ef834a711cc7c3baa7485059d7315ae0b395baa55652cf54fc817bb23819117b933b82bafb146248310b494c506ad0ab37025965f550a2d821787671cda3c9874e6781ad85934da3393b566d58742bd8cc44043ca7a4268b757ba3e1b4975f112617707c7f603cc3569b82b100fd79a391673ded0a14cb11af1556fc26a4a11291f4ef1816c52c292475807f58a2d461ca15b13adc4a7e1a75e1b4bac02f11c3af98f57b5516da77b49455ccfca47bfa0c70e0935f53b14c3431724a35a8fd663fd2ca7107c8e4f0a14d30b98b5f03e1cb568331c0f14e7756aa4901313842447ad98874165f8372334869e89c82eb36429c13f442a3f6f92a9a3f75b931b97b5d4080442371babb4509c5e1b997266805b777c1253fba72a839f9d62002bc2075788cec91269f0f1408e71031122b107e11486d096b1faab348c5aa46cc63eb38c4935915e037f4238b9be3b59975c6a67fc807a732b0ac43671825cd0f74d1cb3c6a7f721c4039b10482990923aba0427e2da5bdd30bd55133989a5b43bc371d2105415e76ba18786237c7151548b26005961fb2a9e737e39bbaf97f612cacc3ebbd216f9f57873f97c503a95a49a1a113b0c454526a082203b1a27e2fb170ff1b59b0657861567d5565555f11ea31523c42898d6ea1ae260cd98b9cd69f9ae4d19a81365154d24c008bc15d1482665c313c3721cb701c3a407373e1bca5829cf45d484721357d5f83b5cb58b21987d9fb7b77224c03c017e183b31fb4c407ac23312aba708e8bf7f905d68b4895a48cd7a70af6ab9060d959f56a02d7e3672a90a6218fbbc6fb641163674bd736af2764c72c5bc85651be47350507ab81749bb2b6c744520b5b0a3b6633355c0991ce4e1a813615f2e8300366521040049b1054a7741b29af1c300e2c86977af90e820dcfcb8cd967c27102d49fb1683c63553289cc0c62de0e26f7555392187009e0cc5896acd8c3c9a4a7c637a107da325cb7a694e9a1107e889cdc6310671bb6c5b51a35a0169ff7b5158bc6469a71a3e8740e9281f5869180c91cec8e1169e2b377c8174669ca67418116c3cbd2ab61d8a874f9bb767de8973d8425cd118bc9a320453db9c64183248b22af3f489ae69159a056ad113833c2a9fbc56b10d013e911210bdb8cba68a0ff0f0729757bdcdf68b3fc7be480481ff64c4c09825ee52b274e85e544091c3d36f40444d28878d7c19122957348e3c27fbe74685fc1a3c21126064242616bc4aaa5284f5588435140956cf37bc72daf5a73ff6ce452ca689066fd6e118bcd4988660c7c8501c34dcbf1965c66fd95fdac910b9e48093fcb200564b4cfb36c72c3096c5579f736059534d57b7168813439b722d5230b255532d838598d615c1b641a9d5807f33653a1be96835f474d4f1955e3c5bb5c621497c3451003ca76275af98b25a962765e5bf2fe754330a77837288810aa53be9a2564451319405cc38b13401a7f7dc960b5b2096f45a94098a2fb39dcd654f846388cfb4b57b4b92abb321a16a83b3e6953a0724afb47902e581acdc278957100548c735fa5c04a4147e826a77030284615b82fa60bd3619b57bbca10872afea091fc6288ee434d8319f028125a0b5006cacaca8ca6eb95c7ad87c7e499a4ad81bbf79d144ab16ac9cb49743258cf0c83f2b006b1d0585efa0ac7dc722ed6c12170831f0964cae2b6d2f808afdc6223d11b510b949e76a0a4c262748148ce17b38c55cc7eac2bfdf468105bb89298c88c8806b124c7488d606b52b217c81a17ee5ae67cc27f6a3382d50705a9bbb1d3c59f68b8ba9a45ed1c97ea1eaab76903d1f2a1c71a07420f47695d1b68d06c5dc85114ae83204fb4bf16c09385934105c9e2fd803d83542f4aacc3af6b949a63e6d0b0c46ca8a6b4633926c0665bc09b69ca250945c14366d49705658f6cd76964e107497bb42290f4c1471a4ac29a60c3dfcb701770619cb45b0613068091a68b58c7b2a19ca9933cceb112e234014816b7db43beef660100a19377a4200a0806be78d30169c4b747e8208780a14aa53987065936ac4f06b7a710870fca3b1bacb04c2af5e3005a9208b3a03929b864d0e1011cec63b93220e96b480128c20b7675c9a87c1c8e2bab4a7422fe9c16d367928117765458a3803af02332d1bf654e782816b15a5bcc3bcf0213dcbe07c59a92d1b1baf1f217061e197c71223c12746cfc0b0aeb99fea7b29bb3a1300bc266f1692fd8641d6fc594b9894dfcb0c951b8351236087241f7cc3506ca74ccfb4c930fca1be940af6606ffc76bb92b53768294c30370b29b795de63caef451a18317384299168b77793e22fe0fc03e4c064cbb6979b38871eb11c5650587dbb31eec0cf7ce128f535b0545ba98af5ab4bc186ea1081ae15bedef5945410c800553d8a2211e8e16125d4a7cf25a91f13858e1cccb8e56481a5a3bbc3468bb624f282069425c8b5462725a813bbe53c1cb11bbfa242c2a1619763448af184958cc333c3aefd35c4a4861c5cfb2ee1b0c39b0c73314aa3d191b6406caa94d8280d8b01e1b73e56f5bdbba80fb3923a4b608543ac827395cad1b050530b5e908231c324132d782994753284927f3a379f71603036a172ef58018cfbb879f29a42a106bb32a384db6e033401fa46045b035ed2b3f277ee6bc7b69ea2a0946112498da4ee64a2be6ab49596c4e61553e1164dd2d4c9cfe0e22188f2bb5e538a054c904cdd0d6dd921af93591f4a37e9ea2b5c8d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 + +# Official test vector 11, seed: "6c029462ca42ed520f10a579f52687101105e0b90c6e7bfa582a4c112b579d5ad0a0abd38f72abcfdcaaf5893a112bdc" +seed: 31beda3462627f601cbc56f3ddf4424e1529c04737ef0ef2af6d7401f653b8a1812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 +public_key: 78d90b2d2b06c3c74e60306d7e0514fbe0111a930a10627e5b2b11077ac78bc32c46d1406ee73acc41b518b2c1a8cbc93990b9c1d0964b1091b0871dfe594aeb6719400c71e96893a7524d082bb5b7b3711f586f9ecc4b65f66fdb2801495086969a6a49961d563391a24b1029a7a3c9e2399f605a37a4a05237570160976b658da00b57ced318b4c7025ceb071c269ec9db9d6a2944c973cc9b427d5573c2eb37c64e4624216c290c5645b36cbb3e82713de383daa5cb4029c6dfb14c43f4aeaa9c93843b784fdb63957b75f39088820694bd0706ca856864fa031b682031581673608dc9ea058dea014ab79eaef74928d4cb33308fcad06ed303a1ab8b6cbbdac332a24ce5474013c90c5b1b869bc9881323435a097d09e5910e39cae5a1bc148ab7d8aa12c84634864930c24ac4f375731cfb65d5992916302640a524a4a52c9a2281534956f946473541852d0884e6461614f9a1dd95cc923c6298998b21c2415518443f86949e6c390f9463b69a63f2f9b328053c01872ea2ea8fc45185ca3bbe74b713528cb3525a60f7639f770824686c1b2ad719fbda1d4c44c9dcd0b24f5277fb6720e686270b5349fd3b1215008c6b24c26aa943ae71146f063072f0c42ea114d3986ed1030260e88f2f2c34e7385491565168e1c18ad324fb13482f5b83b2f6020a6895f9d24b93805fd5556b4a048c2e3106eb02a53a774b169106a77bc166137e7dcc4b60569e77dbc6d5f9c276a011ef59bccd08793b695eb3a5bd3c1b64ca3bbfecd1adb5f97294d8909b31772929c693ac396d412549b1cf910aa3c60ca0250928ea4350b8c91df7d31474ea07cff56dbe417b16603c6af97329d53163343e0af3a84ed37cb91a349bf2af7ee84d8ee504f2a73e9dc3301480bc6f144a631bc3c160348773cb0b6a3b57fa1286e2107e950ec6a682edcac892926966e28ab2a482bd5991f8c6c6f5e231b0826191a8c8d3c2701984980146bbd1b8a629b548ce578f5df90b58305026aca96ef20c77610a2da79018b0047f5351858c2c99a035f2f339885521d09611a219895e987471a2c10ee576e07320b7f9b5d678221aa995afe550c0f72f1b647f3ef429d3720802d7b53ceb917feca63860337ea126fe41777b85980744025ef9418bb4c1983c8af0109d2a0a0ff47c121de1926ffb5b3d8bcac797a0f5309c8629605a757a6ae91beaa437cfe184bfd3b703052ffe8cb2d7e57b411719625a9f1e11473aa8a4814788c0280fd179596db23d3003461314896d38a9e8fa75e93b65cc76cdccf24a72b1294acc47b3e7843b2a322e82c98f906ba369b7e8b588d2dc8056b70e8588c4eb80ce8300630d265a8f6a74306374da0622eb125f51764c81c55b9966c27b562c5e930a30207f825b27711c3124fbb98d4a8351980a04041e99f7af63ac015d667232162db0e793eebc70dea04eba186d2c14381ae886f7c6b934f587710aa095b206621cbe4ca1bbb8752b5489626ac72290315fe9a967ef6980f9486462b74e7938800b020519c5c0a684adc1b82f0ccaa3988cb5a28264ccfcba1e8119add64a58da88bed5cb01f5b0410a3ee03c9105029ea789bf65bc9ec58b4b2b0c9aa9c7859a48cbf0c12cf9e78049528118d366d0345951d0aa9102b5c12b36c6022fa4c7b4554178a8800c1a968ec74569af3815acdc39bfe029807a8ffe1267a69073744a806161bb5ab59d5340b8218054a252560c188314c177c5f3300e86863eb97253e6778415b77f140d498aa104eb291b21bdc2c5693a39254cb01c8a3a9e8e14a965d107a6b98eb09a26c2851059a290b6e94ec10138289148086456047750a3f8aadb5b1693c9642a8ba89b89c6f45c18ba750656c151cb563ba7260ca09c780077b956e5275cf998c86748d2d332a9008f8625bc61939b18f0c063f171175338464c0d402915c6e54682fb6876c7338f654d1916655fb19e21f18e2c0629e0962457cb62bdf3c93cfba8a551c752642016f72b5479615da16c1622b21a105da72413df20b125c48b0a76001472780be292a98500321c007b1a0273108be097ba0e5972a2394861c5c9f8e0093dac8aed47a6467570299a5501c6b2f281283d0013260901a08531e737bb6baa0fc13895253ac4469519c483b591d28cb8a9a0ecd051937eb8d82bba18673a17339dee827be4156633d8a2c376d41fa4e7bd70d4e199 +private_key: fc569914244bca63c05d25beb59702977903c59c046079c9410c873936b86945ae56f3c1f049a3ba4185ad5c49bcbbbe7fc89e561b2a940aaf66538ebf594eb0e5bd163824f8022f6b5183c0839b59361b96008f3ba83d1cc37ca7581121a0b552908e28245218730b3817a27e4099313484b6fa99a539295713abe453afbf8788fe6ab530e1cf3f430f4a855abf3bc11da69e10cb2d879075fa6198b1601dc8903c32a845d4da3b726b6828ac84e3469dc9e66701c16b64957d36128856b82e1367ac00c274d9a366b6b38fa87364880299e86561bdb46269a951c273710616109aecca78e5710c406b27ea403c05704c77b27da95c45da86d2c586f72a0ba1bc5493a389961b789cf5b35ef88dfc38cf6443b7c3190069a19be5a7b11a7339f6cb445f88c90d1b350d5c3089ba13c4c70ed5514dea34b61d7ba5abf4c78024abd21a9a84f4cd73f86b43f3744ffb572d918338688168cbac7f979bbdb2c52910402f94c3fcaa29f4362147205dc5b5af7d4cb920f21851392ed6a40e10f1013b380ee87a4fe70b864ae285bb5b1d01a448aed532da26948f639258a4af94b3270a984063c927929867e1fc9415815fc51c5158cb4ae9d8c81cdb30a98a82e6367e6340c6f5704a37e06523e736bba1c4d98c524bf136a3a48b5786a9ec624df5a992bc89c389861b03aba410531340baae94c5a91410370f92573c3b28f2e2a47a2695a9626cf311b834597c0a09ab0ee2a588e26962189b7b50a99d5b7906c274a8130f3a30b56cdc85c1a8ab9853476a22a8c047b4f825032a742d601ca1bf319b8a1825be3c38e93a686a50694e15164d9c603f537772f88abc1258749a1adde38b55e0485f34bd20129a1f6180eb2382bf2b96120cb798fcbd98401a62a872b4b175f80ca9aa0b496ec12fcf713184400d43212db7a55a522a1d718c43d61823f4e342e9396e6c2451c056ce3ccc93c7d9a45ff41461262e49c01def44a350e5cb7e40bfc2845989bcb8cd59600f1120647b45a585318b0bab8a202afb7348028b3fba36a41aa7528dc9973feca1c28a722525c29687398f607e02c9be2b2491a0458e1aa6c10882bb4c0bb50985cbdba386d0b53cefcc6f316965e1f289148c64be223853791a254b38a98160f0bc3aa63cb6d45263cd61048a831a5440413ac3c6f38670a83190d2bb32ac5a35908c41618ca017893b3eb2628265b857d5130c821af61c895c274faa2150034c0e80e2318917bf9aa15cf2665c1b3ab8b62a39282c738ffbbf7760845637861f46c3e5137f050a907e98bcf755a3bc0ca201522acc9bc780d10d4c41c69eb400f9234c8c7907bce0cb52b783c0fa82410a5b0f325753d985622bbab7639b649c5b36696e2bd8b5c969165f66ba02b142e4380e77ac07d2a85c599b9449e48f4a6aa0fa30160c18180ca2056fd52a94fc2f2d26c0f5641c81cb854197af4eaa389aca0e5dc9bdbd4885da4b9ae207983cf37bf8955ccfbb37e57b30e74bb6f798b4ba62273059b589e51f78b79fe927818eb12f0e73636321b51e456dc5f90281153c7687cc313723b1034de828620d17aecee6482242afe899c45735209606b82a1c284fd7a0dd819f72ac71d30bac8b54715e422e7c4511a073039587ca15251d8bd926ceb2b0864c159d348889bbadeff732d0303951d1b491b98b43214d26bc7a3b121dce077739109b5c00441917cbf3169577d63bc7ca18e4478f4fa8bf23164c8ec68e86acc8d0e1ad1034a99eea986699cdb6176c84294f711067ec7748ba83cc6dc51fb3e9576d7150977c76096a233b2233c68995333b82baeb80c3f2480fbc93b414cd3df6165e4969aeab0b052492faa0a613818b6f60086cfa21a1ea774afbab6857033c65bc38395b47f3514c624d27e3120a969d01b1a49af814c7192ad1f97c2b398301ebba4e76be866c8dd17a46c7db9d5149329ca53460d135e323c6488134e9e3ceda48562aa78cefd098ff75a93f3413384904cdc10278c798a77aa93f033eb4fa32f7698318d23c79b4af83639bffdc56af742144e7b36c217f13244b152b88fa3192781594759b1e0d158cda2a12c1fc85d093390f42413e00a4337c32092618908a24379444fbb5c7f702b2fea3098aa125a89b82336a3789a3bef7c403a5a2c56bdc0a78d90b2d2b06c3c74e60306d7e0514fbe0111a930a10627e5b2b11077ac78bc32c46d1406ee73acc41b518b2c1a8cbc93990b9c1d0964b1091b0871dfe594aeb6719400c71e96893a7524d082bb5b7b3711f586f9ecc4b65f66fdb2801495086969a6a49961d563391a24b1029a7a3c9e2399f605a37a4a05237570160976b658da00b57ced318b4c7025ceb071c269ec9db9d6a2944c973cc9b427d5573c2eb37c64e4624216c290c5645b36cbb3e82713de383daa5cb4029c6dfb14c43f4aeaa9c93843b784fdb63957b75f39088820694bd0706ca856864fa031b682031581673608dc9ea058dea014ab79eaef74928d4cb33308fcad06ed303a1ab8b6cbbdac332a24ce5474013c90c5b1b869bc9881323435a097d09e5910e39cae5a1bc148ab7d8aa12c84634864930c24ac4f375731cfb65d5992916302640a524a4a52c9a2281534956f946473541852d0884e6461614f9a1dd95cc923c6298998b21c2415518443f86949e6c390f9463b69a63f2f9b328053c01872ea2ea8fc45185ca3bbe74b713528cb3525a60f7639f770824686c1b2ad719fbda1d4c44c9dcd0b24f5277fb6720e686270b5349fd3b1215008c6b24c26aa943ae71146f063072f0c42ea114d3986ed1030260e88f2f2c34e7385491565168e1c18ad324fb13482f5b83b2f6020a6895f9d24b93805fd5556b4a048c2e3106eb02a53a774b169106a77bc166137e7dcc4b60569e77dbc6d5f9c276a011ef59bccd08793b695eb3a5bd3c1b64ca3bbfecd1adb5f97294d8909b31772929c693ac396d412549b1cf910aa3c60ca0250928ea4350b8c91df7d31474ea07cff56dbe417b16603c6af97329d53163343e0af3a84ed37cb91a349bf2af7ee84d8ee504f2a73e9dc3301480bc6f144a631bc3c160348773cb0b6a3b57fa1286e2107e950ec6a682edcac892926966e28ab2a482bd5991f8c6c6f5e231b0826191a8c8d3c2701984980146bbd1b8a629b548ce578f5df90b58305026aca96ef20c77610a2da79018b0047f5351858c2c99a035f2f339885521d09611a219895e987471a2c10ee576e07320b7f9b5d678221aa995afe550c0f72f1b647f3ef429d3720802d7b53ceb917feca63860337ea126fe41777b85980744025ef9418bb4c1983c8af0109d2a0a0ff47c121de1926ffb5b3d8bcac797a0f5309c8629605a757a6ae91beaa437cfe184bfd3b703052ffe8cb2d7e57b411719625a9f1e11473aa8a4814788c0280fd179596db23d3003461314896d38a9e8fa75e93b65cc76cdccf24a72b1294acc47b3e7843b2a322e82c98f906ba369b7e8b588d2dc8056b70e8588c4eb80ce8300630d265a8f6a74306374da0622eb125f51764c81c55b9966c27b562c5e930a30207f825b27711c3124fbb98d4a8351980a04041e99f7af63ac015d667232162db0e793eebc70dea04eba186d2c14381ae886f7c6b934f587710aa095b206621cbe4ca1bbb8752b5489626ac72290315fe9a967ef6980f9486462b74e7938800b020519c5c0a684adc1b82f0ccaa3988cb5a28264ccfcba1e8119add64a58da88bed5cb01f5b0410a3ee03c9105029ea789bf65bc9ec58b4b2b0c9aa9c7859a48cbf0c12cf9e78049528118d366d0345951d0aa9102b5c12b36c6022fa4c7b4554178a8800c1a968ec74569af3815acdc39bfe029807a8ffe1267a69073744a806161bb5ab59d5340b8218054a252560c188314c177c5f3300e86863eb97253e6778415b77f140d498aa104eb291b21bdc2c5693a39254cb01c8a3a9e8e14a965d107a6b98eb09a26c2851059a290b6e94ec10138289148086456047750a3f8aadb5b1693c9642a8ba89b89c6f45c18ba750656c151cb563ba7260ca09c780077b956e5275cf998c86748d2d332a9008f8625bc61939b18f0c063f171175338464c0d402915c6e54682fb6876c7338f654d1916655fb19e21f18e2c0629e0962457cb62bdf3c93cfba8a551c752642016f72b5479615da16c1622b21a105da72413df20b125c48b0a76001472780be292a98500321c007b1a0273108be097ba0e5972a2394861c5c9f8e0093dac8aed47a6467570299a5501c6b2f281283d0013260901a08531e737bb6baa0fc13895253ac4469519c483b591d28cb8a9a0ecd051937eb8d82bba18673a17339dee827be4156633d8a2c376d41fa4e7bd70d4e199ad2b1951f0dce0b0afd296d3f22bafe4f13638ee2540caf8a6bf7d0387265bf8812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 + +# Official test vector 12, seed: "db00120937570d62331f4c3f19a10465231eff46465cdee336a0d46aa1e7493df80f18617f9ffd0476cf7784a403ef4f" +seed: cbdff028766d558af4466ef14043a1a9cf765f7748c63cc09dceb59ab39a4e4d8e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c +public_key: 81f27e76a1562bd2c206ba3087231983aa0bd65420e2b71b749605960c94319abeb1e80aebf274b27a9237740c07114614658c51d0c5118b9fe6d0064e9b47641ab189b2ce2086293dba6054a1437d00719b5c11351a9901b0a15e4c7efcfbbe9a3a7ac6ab157586c8d5b68b2d9b747b2461f2a2cc3179a70926423ea5aed845407846bb9c5c57534b66a6cb8b480c9a18453e047c58ef00cf652867b474c7b1b62fd7aa0d7b4c63d881b05f6a8d8549257d7b0b7153525d5b295e8bbbf3d36da46a5d425601e9fa8ee7402535d553bb60547bbccb7777b5e48373f2b38f3c566e7b98a85465590ee1c8cef16e4515ac3b4c69f99ca7f3495254c345b0405fcf975bb5cc26a1faa82fe109f8d670f17164f25878a9e8834b4271f75338dac56ca7b4bb3b56ae95444af369c20b582edc204928037434c3c5f8c372fc9449a773261ecbaa4ddb929f148bb6bc471d2a72706a1f621ca295eb8b44a83a4b99c6f3bb04002b2d6ed42fa5418bdca5a07f743754882e2ec966f44235fd3b48c1ba874d8765ee30156cbc0456e610c5b02c8fc3b6d305aa23a5528e77aebf2bc3696a37c438a2a1259054c3537ab8798ab9c16c2b9bec71a861a96ae2387955cb95fc4c984d2b936be897cd05ac3524b845a2aed4bb981dc47120fc9e4c6476e7847ea69755886a5c85cb059ad0cf05b0aac6609104e0449e36815efb9c0b232c7e5b9b80e386a8ab12be22a72e0a4efb447b253c65f619c2c85a878a54457d272d2e9a32d2668d9a02089a434a1bcc4cdec25f909640901ab4ea97128850335e63882f363eae699599a1bafea68c9987882751b545795ed6428162993b17e7a7fbccbd2115c9cdb83c9852912fc21baf53082fa41ae41723a8e6a8e6a3c008dc8b8b6250c7c740ad2a3b92676960db68318c3cf24b855b62b237b97df54c561b72b0bca0877925734d650c0824ab8081802f166d8a294ffe8328fde34b02436ea27086b870009545a71d56ccfda986d00ca3e6931b85a53cab3aa85a2184e55718a9988e11aa2f024076bfb36c0d222685977ec39702e4eb7045229e5256890ad87d84dc8de5c44f8e73c65970216c6312bc22920fac8e24a6b251103beaac8b4a911a1bf62870a33ad9986d81161a3e44b0f5c9508be97324a97107cb15b2a2b9f6f71b80fc7b59d199ff7b04652644f10156c2dbc33ee34cea079e6b718ff4e2ba10858a2b33827f7019bacbb952ca83a8f38d69422431fa722bf31683e3ad6e1784ef9ab210391ee600c2d0c690d739ac5a581c4f5660576bc743d79552cc833222b43e45201888a3ec82194dc2307a07b8549c838bf4a70f9c4f8cf5868710cadb4636bf12a257a57c344061b9f83dbe9324195651020c2f02574a2db4aa4ef527e5a66fd4758382f96e52d84472852a30b49ee7d60698f4b9b6e9003f475623e345e1db767b143bd30bb5273636ca7926f434863ce41813767082873ab5365dcc72a251c035da426fe6db4aa1f34ffa45c9277327a7125c866546bbe22b9c09c054e133b3d8b3fbf18832248e5a3198c89794c5ba4e6486574de79cd67626ef2953007431ad08895ae499cc17111f76c002322a6602b677a922fc450971fc90c0b8ce16dba195fa80196569fe8b87fe060311867e6c6abc87f2351f4b0da1f837eb7830b9319498f36ff707c80926158b84a934400f63911b5650c6d205686f7bb7d415ca9dcca9a94c5706945580f49eba773067eac6c989a8e1d84d2586c58e70793933367da73ef0509e27a97f03c28a10086d782a3ef2251d08793748357f411200b5803f0c76c886b35bfeaa68544aa038374f868c474f0a6df1061de88886a1241f090ac4c7c17f6a429f5ca400e8dc98554c56363c8fcd728a1fab7c0007c67915b7d793c0ec5514c8f6a394c8502ee3c63b73b26da015c370826278aea16ac479884ab77a2d3c0b147e93181167bc1980627b46b7d06509d7725cf1085850a53f442c226cfaa24c8721db0c137c7a72b5898cd2137839202db535cd8ae76e42219e49eaabe2fbbb643742ed91551cd54f1de16f63c953fbc7b5849ccda3167660fb28f2a6ad8327a6d6ab649eb22ccfca574733cf01663fbadb3be7c33a482c13e50027d76a134e114c54380c1e84255060944dd10321b29149922be789eb0a8fb7721fe98a1e0bee89476e7efd6ba100e4d6c896905fc524e7f985 +private_key: 7445654a55ad6aba3d41506b872c53fbc83988eb1aa5d4ca645854ae700cdf3a1fbb448b51d83b20c3bf82ba45000357d3820a0ce20f011581d2a4c4f186522d568861554efafb1c843296c927a3c29a19bcf7037b497f6ed90706305bfb28b06818549e9b7700a387ce14420c74a5151555dda18b216b0846c5a90cbc29bd623bdc8c74f2dbafff76a1a53ca1b9137ffc687c5304a3faa42772c85719585c39fc923d7c253dfa471ed7260394134c058b8c768b04123f3c955bb8c94a26d4b6b44824cbcc79f305516672311da2b15be23a183c323f8841ec76882bd161844c2829da23482a3ad106225cd444f4463072f096740aa4a72c88dbb9b393289d91b85b20db1cc38096c0bc6dee84a16068a80d759d0d861a6eeb11d82a2b1b6909280c32ba42733d259ad3bbccd3e0bf13446b0ba77df35085f6494934555514353825c33a0ff41bd00545f607096b524519dc3ffd73a65dc1b9ba4ac7d32818ba2b21e1a300da3248b2fb913154be448c76195ba9cee404b0f8ce458540a678984d034e4067065116a4c8580da808b3e0f07d74a2a6a6b391eca57039bb3d5643a5545394057ac7222abbece46e06e4684830aaddd737baf64fabd956712b57add25a462441e362796d0796cb4c10706017c42c4070d8a51492b7c0db033e29761e593927111a9bac35e8e9a12a6423d8726237526d95e10cb0a3bf8b2302882c55eb92a69173b3a6353fc34711b51cba08c3642c449ac9bacd0b2906a2b5a8b53a1bc64b810023cf4fa7c73b3779ab468131569a60409831f32e2d87bcb455c15b705de96948cd9652f30619881879f3d043a341a3239680a6b12645b750e42cb736245fc83330ad7408e8b56bb535b865a9bd79549fbf8ac3468b9e90158b0a92c53a08b774b2caf4a124b8785f26589e65346b7f4469b807292108520a02c9e5da14c1fcc21fd526aeac3088d94666b54cb3bb00e3887f34b0670fba3d167b1b9088651a377aa8098c1f87888655b0bef1364e39973442c1b8fb4396e3079cd244c241149535aee7767ce60267a6bc733de942cbc81e0ab46f19370e5a82a09cd724043204cf6372ac5ba918fa2105c54640e3b9bfb0ca60600ec5091236a44d7fc5a183579febb401872066a95b22cacb9492f14955843a0460102319a1c49980405bc947283f95643d0b63b80d36b7ef29097bcb057926b2583745de85192a65070a0143be745e0651775b84480f7b0ee9727ea738b1c36b3890e19aa4431c46a7ab29f273660983e5eb05810327da1bc0ac5020ccd34bbb4765cd632e3f1b727483b76a0262c0617b3a06439171ace34b482674a967474c1bf77536bc6819bb77ad40b157267c6648c9c05259f06c20ad7b814048c926c52e2c14682b464a4c2740a37c3434b7055fb99efb813df8637bf8b4ab530731f77653ec2ac15a174769dbc5e435ae8b4668d009cffea1716f38037752a007c788ba80976a319b5455bbfc41119aa24e1e43a0ecf02c4fdbadfa60c187bca996f7b039692a6a03439221aa85c145c1110e22d46ae25ac7e1f99c68b7ae69fb22adac7446961e543532b5c10dfa74388a031c310275cb29b4a6f290b97c9fe8f7052ac51b759a75a9e552faf29f10114e43237f3e758506e53fa110488b11b3c1e339a7c8312f1335af7a8a456b581bd61d0af384d0796d531b6af20b2b08725c341b5d38737fcb055bca240ef239c0419598ad303344722dcf2c5dce35bb393b89dd876f9dc97020724c6cc75892f996b470b609872a127a3d73bba81ba14c7bc0049a9bcd5985ca4ad15d20267f6e56088e1512491aa7b51a6e3aaa6d34f870eedb3db6eb03ff44b3a674750967ca88a0a1cb110c9e9566cb20b42a696e86f3711ad407e3a01c269600ca9446a87baf63789410975376a5bcb801303b30cd1df625129b44e388672356132c10b6a6030c1678797d157c55b4741dd925df96374b16b8fb464d4bb39eccdc30124248aca11a2521bb0af5aa53c61f29663b6e103a6ee6940ce05e071242280858a06930bb5413ac75a3df260e070752e1818e12c221a69554a774507e892bd18b88a4672bc2fcb07302a132648d49c08d65804d1da7324fb00f53b44e6539b941839ffa36c435498809c3804685273324147ac41c259b86f5a09781f27e76a1562bd2c206ba3087231983aa0bd65420e2b71b749605960c94319abeb1e80aebf274b27a9237740c07114614658c51d0c5118b9fe6d0064e9b47641ab189b2ce2086293dba6054a1437d00719b5c11351a9901b0a15e4c7efcfbbe9a3a7ac6ab157586c8d5b68b2d9b747b2461f2a2cc3179a70926423ea5aed845407846bb9c5c57534b66a6cb8b480c9a18453e047c58ef00cf652867b474c7b1b62fd7aa0d7b4c63d881b05f6a8d8549257d7b0b7153525d5b295e8bbbf3d36da46a5d425601e9fa8ee7402535d553bb60547bbccb7777b5e48373f2b38f3c566e7b98a85465590ee1c8cef16e4515ac3b4c69f99ca7f3495254c345b0405fcf975bb5cc26a1faa82fe109f8d670f17164f25878a9e8834b4271f75338dac56ca7b4bb3b56ae95444af369c20b582edc204928037434c3c5f8c372fc9449a773261ecbaa4ddb929f148bb6bc471d2a72706a1f621ca295eb8b44a83a4b99c6f3bb04002b2d6ed42fa5418bdca5a07f743754882e2ec966f44235fd3b48c1ba874d8765ee30156cbc0456e610c5b02c8fc3b6d305aa23a5528e77aebf2bc3696a37c438a2a1259054c3537ab8798ab9c16c2b9bec71a861a96ae2387955cb95fc4c984d2b936be897cd05ac3524b845a2aed4bb981dc47120fc9e4c6476e7847ea69755886a5c85cb059ad0cf05b0aac6609104e0449e36815efb9c0b232c7e5b9b80e386a8ab12be22a72e0a4efb447b253c65f619c2c85a878a54457d272d2e9a32d2668d9a02089a434a1bcc4cdec25f909640901ab4ea97128850335e63882f363eae699599a1bafea68c9987882751b545795ed6428162993b17e7a7fbccbd2115c9cdb83c9852912fc21baf53082fa41ae41723a8e6a8e6a3c008dc8b8b6250c7c740ad2a3b92676960db68318c3cf24b855b62b237b97df54c561b72b0bca0877925734d650c0824ab8081802f166d8a294ffe8328fde34b02436ea27086b870009545a71d56ccfda986d00ca3e6931b85a53cab3aa85a2184e55718a9988e11aa2f024076bfb36c0d222685977ec39702e4eb7045229e5256890ad87d84dc8de5c44f8e73c65970216c6312bc22920fac8e24a6b251103beaac8b4a911a1bf62870a33ad9986d81161a3e44b0f5c9508be97324a97107cb15b2a2b9f6f71b80fc7b59d199ff7b04652644f10156c2dbc33ee34cea079e6b718ff4e2ba10858a2b33827f7019bacbb952ca83a8f38d69422431fa722bf31683e3ad6e1784ef9ab210391ee600c2d0c690d739ac5a581c4f5660576bc743d79552cc833222b43e45201888a3ec82194dc2307a07b8549c838bf4a70f9c4f8cf5868710cadb4636bf12a257a57c344061b9f83dbe9324195651020c2f02574a2db4aa4ef527e5a66fd4758382f96e52d84472852a30b49ee7d60698f4b9b6e9003f475623e345e1db767b143bd30bb5273636ca7926f434863ce41813767082873ab5365dcc72a251c035da426fe6db4aa1f34ffa45c9277327a7125c866546bbe22b9c09c054e133b3d8b3fbf18832248e5a3198c89794c5ba4e6486574de79cd67626ef2953007431ad08895ae499cc17111f76c002322a6602b677a922fc450971fc90c0b8ce16dba195fa80196569fe8b87fe060311867e6c6abc87f2351f4b0da1f837eb7830b9319498f36ff707c80926158b84a934400f63911b5650c6d205686f7bb7d415ca9dcca9a94c5706945580f49eba773067eac6c989a8e1d84d2586c58e70793933367da73ef0509e27a97f03c28a10086d782a3ef2251d08793748357f411200b5803f0c76c886b35bfeaa68544aa038374f868c474f0a6df1061de88886a1241f090ac4c7c17f6a429f5ca400e8dc98554c56363c8fcd728a1fab7c0007c67915b7d793c0ec5514c8f6a394c8502ee3c63b73b26da015c370826278aea16ac479884ab77a2d3c0b147e93181167bc1980627b46b7d06509d7725cf1085850a53f442c226cfaa24c8721db0c137c7a72b5898cd2137839202db535cd8ae76e42219e49eaabe2fbbb643742ed91551cd54f1de16f63c953fbc7b5849ccda3167660fb28f2a6ad8327a6d6ab649eb22ccfca574733cf01663fbadb3be7c33a482c13e50027d76a134e114c54380c1e84255060944dd10321b29149922be789eb0a8fb7721fe98a1e0bee89476e7efd6ba100e4d6c896905fc524e7f98558672899468fc0a35e2a8c6fcbb35b2912e4aefb8c396bb9738e3c16c95ccf758e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c + +# Official test vector 13, seed: "bd26c0b9a33e3b9b4c5d7ea32d5bd1fc371015be163c86f584e49bfd5362c8d8341161cd1308115b2a03b7e5eaddd418" +seed: 4c04310bea66305c6ca8ba6b8f61ca96257a67663afc11761f13fb5c7b324b6b8aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b +public_key: 33651904e40d7b863a34774ee1e401a9a24a960045d4537e5124921355cce831936f307c7cd807eb376ca1b640e7a76964c0195b6848b2cc9f832ac0c11c3c3c7290ee182c46bc1608c49e809b1c24a7c738845e9ae972d70c5ed346c46ccc73e0e251b1b57368b96dd71cbda55366585011ee659a2f081a7288c873c8a98964131c078aada0ad1662bb0d2b0a1555a3c84555c593231d167d378ba606257fd3958bc24b47e8380dc370c374a869413547d0703d28e4b5ec85cc0c897f14d5b03d6520937295183ccb1059821c2b866e755e24286634ec088522941516c592418a4fa872b2f911018843d7c877da76c1822246cbdcc046695a1e93aff063a577fc0eff56b27a2bbb56f76dba2b34b6a6765b78493f514661a4a83b58b42e4b96b471068682bb73f535e32c8fc7964a978b47be9b23cdc2b33ce980f66a033f8154bf24b73147152f544939377ba2ecb5a288276c712f2317ac69292eea9005a74a3fe336aacc4257e46395fa9a96a3fc9172b5229c393021e57265d017f6e7a5e92066b459199957cf4dc653ac222bf0b953c3c4ccd5f7463de539c024bfcc9475cb3437c22502fe16b909f73b6e733c6dfc6d87cba8a13220e823a46ed900c7649494006766a23cec36aa46756d3a7124bffb2af34c586847162735ca2d1b259f5c1eb0912afcf6846641984763266bc0add6d60fdf5b6fd87343a5d59c108cc663d8b700ab1dd5c0ab60fb66b764201722c9c2f5b2ce9a88162c3135d44ca9a735fc90b35058bbde332063820f3085cad54c4a8cd8708d43b871ca2b41d0cfbbc066ab45bae33cbf2700c67a5a62cbf1ca19c2431b6c52ac476fc2ec4c00ea9c14cbcee11b1232d523aae8af555958c3089c6c45b47ba58cf1f884e77893fd296ce80584a76abbf2330ab058c2af770e4468097cc20748a188b6620f128912126a899d7b0df24b067a73c4329314c3f6b0b9b83fb450414cf0a2ffac6fe2aac17359b20288a14272a952642958058f04b24a69b93492bc0dad67a7552b37f2417cf7e5b889e97b2d02980f7336f8e0198123c855dc1a40bbc5a93779c7c7be7089a8440214b3542341e56499ac1f6ee61b981705258c5ff6e74637fa0e48556bd3542ee342891ea4b4dd5a4982b0471ce63d61b3adcd1197dae05627c5993b502bf3025f6cb8792f32264184b362909be8ba74a1b6674e253f28b086189115129919821b867cc84341e3ab43b350a5c79d5af47b4cd228856189454538d362049c710953f33678c28f3cd9812d731aa9f95004b94425c60cff24186f644e749a6963b77760ba491744ccadb72e23653a3a08a1f7bba316a9c83e3113cb49022dd2be9a4a69c7db6145377289c921ea0292f3e4ad84e99ed72696dbbc97a3644478761d6083aeaa59004a9694d545835549ca3357cd9d63007cdbabd6e1a0b661113ceb370fac0da48b893b3c8635619e79f4ca14431cd9a1be2f34aaf3bc059de3a3d9b630b5542f38a5a1712c67327c893bd64883b7701636b0576223c4868f2195716c3499a4295b0387715c9ca4feb3b1bc08c6e09c1e809988e2f414f0b0cce5515f43b50c2dba028e9ac11e6368062c360370bb7f5655a3a75c2e7aa86ba9b892019db150bc7dc881c5e3b24e414780512bfefbce95c914cf060a76fa4c34359c634a1a11c40ab7b56af1d19e2732ba6f3cceb93cb31e08c93f2a9a33841d667079f1715a56013c0e68386b639e414540cf2b13650ca9378234b94c24bce9a9cee8c2adf4356f246dbec0bd9b371ddd296ee623603edbaf65e734504844aff0438d163b27c34d52163d736bcb42b0a1a67067a6e84bc8f849531a631fc55046da2b31e0b99b938d4f8b239384bc2ed54e46e17e9a8297c2a16775f77859ba69c759638fea8fc2057b5105952b34058b329ee7b2b08a69b00962c31a5106a281890ad6257daa8c6ad5854eec7e8a203cddb935ab5545e3e57ee5f78925b1531e5c4593a7afee319c5215645905b50cec48961b2b6c1727b4794ed382c66c11b67804b18c3c0000868ee4e3ce4e9790b681161b2cac3f8a1a419892608814aad65880e683fa75ce66335831a7bbcc236dd6f2b8c63560ff1939b2b56b97e87049eb4c65f42d640c0d8fd5841e48bcbd1815ef0c62da099f5478bb93198ef28d89ec6714b0f142ece80c6a6050d3aa936c25bbed1dbcfc99f39b4805782b +private_key: eb8809301a6603d8822f86b6b44286f1e1b83b121b3880c35731a1215722562a2f14d15364b7aa6ab35503331dc63bc435f31a23ea1a7dd060195ab2626245fe2853a88244b7522bf9fc39a76b188c7260c9c2829f7a6e1964cfc8c28f45889958731f742aba74993c2a75bf4557c71fc5390067ac00a39fbb7049c657056b168a83899e94bbb38adb1837b53a32e74b8eea1a2cc198105cc32932bc5d4071b06b1a6cb7587deab9f7528309a64dc5d696ea00575be8ae3788721b061e6f143dfb73bd9e2bb04cca4074894b067a70270b7fc8762772890ab8d3b3a5545b9c48be169c1fff82473b250a25f15f0bd7b142c97a3400233c57b8f5db3db25817880a4490f04977a605cef4c151593bf769100eec456ee7831a526066e757f7844f660392f6f91372dbb0b8a3325a498bf7291b3ee048fcb61db8ca6cf8fa0b98671894e95094b325b922103b564189937c1f032488d868405800264781a702878268a7c19b8c39899262c246a8b4cc91eb5afbc8765d23a40b40c49decbf917737f14765d0e7ca19879236551ddce824c22676f754444a829434a01b264019d970cb44f1b8128483c549c329288c9a55991e12bce3547f22d4088527a8d1322fce360bcde1309205b2547b32e917a39d4846e45c5d4d16aec4435ad8695ad384236bd71336358294652418a33839608230270ae247780f16ba3fe7ba2de37063b66402d360601baa068833bdf2325f144aa6528db92225360032e5199a8e61ade5087dbb741e2903c245a1c95470c795bc0ac363806cc6be3268cb51d333100a21f00917bb3479fed22f3d263763b406dde76514e929f5c604dd7536be6305d6035f31790c40aa6bb5f17ea2ccc9e07c6262878ffca72d78f4208bf804b4c322b1287011a21dc54b81bfa22bc77ac1a0db6dea6c4cb7ec49d8858138f45d9d200a52d33d13b533cb6447910cc4cc21a0b9350220845c1c4b64b5c84bbbf7c7c3a4932000559e2b068d2ca9bf44b0f7ea760b225a37e78a84a5b14c5a2fb926ac622b8f86c7ac7734a82125b18f1575fb3968a4634d9633ca7b0a2d3e56580c34bc3b13741406be06396e66e64126888055aba9c8ca2ed2bc344a38a710dcb1e7d72d70a166dabc79cf79439f5340225378e7e062472584a477cd67c812733b5d57127d6cf9a6855b9a4479af6870a6090caed93a642bd91224f6b1d1f13b86582a5a7c227bf21b1d7547b2dc398fc88158e87571e826baa55933459521401c432782e2112d1fd7adec475178aa2a3ce59c96da6449b75dc5aa37201ccf404c5efed99c7b266a97d46494f1316f0781ed830da8484a2c5174403c0efc2b1010d9559329c714771b7bc7023e9c89e3f0a601d439b8bc2d3ea1b01a991fafb409ce994868ba5ece31330118161ce9a6c08c5f4c65af7334920b659b56d2c658ca4d9951c4c0b93f43a91d580b81087838ae28ba99c1b916103a91709b384840fa4a047eb94abf2c96de847d04e2198e363d248921a2537172735537878bb65b2b4eca2d9a1c4270a8a00ac667e7f9192f7c46c244b6b7676086f18eed246bfc10855e9591de3415142a8621f98170fbb55e608e10e38b6ce140a3835172387ea722339b1c6598e53d7fb694978bb5a3b5cadd1822374071ad6bb1a1569230c6042c9cb9e205104bc6827d3b9b1912a3f275cfd31a28b7291d4875c88954a36e078c9f72956e874426632a9b2b24132a1a45306a4d8caeda6a2c401713d4176c694378698a77284b7a9dd016cb332da7138511923d9f3850ddd5c6ef5ba28c357ba766b960e351df862db600320f996943e10046891f27b2b243ea71506b755f27c032690713c42298a16096d28cbce4051633974f02adeceb95e1bc264c45944d752e23b000419c2b88108a0320b3c86204edf5914f324b221bb9884499603137342b8d102b96117c88d6b589f9545b639cc18fc2c89d144107610fada81b1e2344a5cabb357acae302bebd71159bfc23906bc2bc781a76a68489a73dd5235738b06f8bd54a8771257513b6e1e74dfbf774b1e469e67086b84c1a6ffc274b73633903aebb05911fc7b99151a8a6d0abe8aa466473b2ff2155ae2568c23576f70648676bcc1a6a19e880267f139edeb973a8a9a59ad2a8edfb5cea9a0bb39407f5153633651904e40d7b863a34774ee1e401a9a24a960045d4537e5124921355cce831936f307c7cd807eb376ca1b640e7a76964c0195b6848b2cc9f832ac0c11c3c3c7290ee182c46bc1608c49e809b1c24a7c738845e9ae972d70c5ed346c46ccc73e0e251b1b57368b96dd71cbda55366585011ee659a2f081a7288c873c8a98964131c078aada0ad1662bb0d2b0a1555a3c84555c593231d167d378ba606257fd3958bc24b47e8380dc370c374a869413547d0703d28e4b5ec85cc0c897f14d5b03d6520937295183ccb1059821c2b866e755e24286634ec088522941516c592418a4fa872b2f911018843d7c877da76c1822246cbdcc046695a1e93aff063a577fc0eff56b27a2bbb56f76dba2b34b6a6765b78493f514661a4a83b58b42e4b96b471068682bb73f535e32c8fc7964a978b47be9b23cdc2b33ce980f66a033f8154bf24b73147152f544939377ba2ecb5a288276c712f2317ac69292eea9005a74a3fe336aacc4257e46395fa9a96a3fc9172b5229c393021e57265d017f6e7a5e92066b459199957cf4dc653ac222bf0b953c3c4ccd5f7463de539c024bfcc9475cb3437c22502fe16b909f73b6e733c6dfc6d87cba8a13220e823a46ed900c7649494006766a23cec36aa46756d3a7124bffb2af34c586847162735ca2d1b259f5c1eb0912afcf6846641984763266bc0add6d60fdf5b6fd87343a5d59c108cc663d8b700ab1dd5c0ab60fb66b764201722c9c2f5b2ce9a88162c3135d44ca9a735fc90b35058bbde332063820f3085cad54c4a8cd8708d43b871ca2b41d0cfbbc066ab45bae33cbf2700c67a5a62cbf1ca19c2431b6c52ac476fc2ec4c00ea9c14cbcee11b1232d523aae8af555958c3089c6c45b47ba58cf1f884e77893fd296ce80584a76abbf2330ab058c2af770e4468097cc20748a188b6620f128912126a899d7b0df24b067a73c4329314c3f6b0b9b83fb450414cf0a2ffac6fe2aac17359b20288a14272a952642958058f04b24a69b93492bc0dad67a7552b37f2417cf7e5b889e97b2d02980f7336f8e0198123c855dc1a40bbc5a93779c7c7be7089a8440214b3542341e56499ac1f6ee61b981705258c5ff6e74637fa0e48556bd3542ee342891ea4b4dd5a4982b0471ce63d61b3adcd1197dae05627c5993b502bf3025f6cb8792f32264184b362909be8ba74a1b6674e253f28b086189115129919821b867cc84341e3ab43b350a5c79d5af47b4cd228856189454538d362049c710953f33678c28f3cd9812d731aa9f95004b94425c60cff24186f644e749a6963b77760ba491744ccadb72e23653a3a08a1f7bba316a9c83e3113cb49022dd2be9a4a69c7db6145377289c921ea0292f3e4ad84e99ed72696dbbc97a3644478761d6083aeaa59004a9694d545835549ca3357cd9d63007cdbabd6e1a0b661113ceb370fac0da48b893b3c8635619e79f4ca14431cd9a1be2f34aaf3bc059de3a3d9b630b5542f38a5a1712c67327c893bd64883b7701636b0576223c4868f2195716c3499a4295b0387715c9ca4feb3b1bc08c6e09c1e809988e2f414f0b0cce5515f43b50c2dba028e9ac11e6368062c360370bb7f5655a3a75c2e7aa86ba9b892019db150bc7dc881c5e3b24e414780512bfefbce95c914cf060a76fa4c34359c634a1a11c40ab7b56af1d19e2732ba6f3cceb93cb31e08c93f2a9a33841d667079f1715a56013c0e68386b639e414540cf2b13650ca9378234b94c24bce9a9cee8c2adf4356f246dbec0bd9b371ddd296ee623603edbaf65e734504844aff0438d163b27c34d52163d736bcb42b0a1a67067a6e84bc8f849531a631fc55046da2b31e0b99b938d4f8b239384bc2ed54e46e17e9a8297c2a16775f77859ba69c759638fea8fc2057b5105952b34058b329ee7b2b08a69b00962c31a5106a281890ad6257daa8c6ad5854eec7e8a203cddb935ab5545e3e57ee5f78925b1531e5c4593a7afee319c5215645905b50cec48961b2b6c1727b4794ed382c66c11b67804b18c3c0000868ee4e3ce4e9790b681161b2cac3f8a1a419892608814aad65880e683fa75ce66335831a7bbcc236dd6f2b8c63560ff1939b2b56b97e87049eb4c65f42d640c0d8fd5841e48bcbd1815ef0c62da099f5478bb93198ef28d89ec6714b0f142ece80c6a6050d3aa936c25bbed1dbcfc99f39b4805782b5bfb6d44c0e7348fba37d50b05031c0489d4294be6cfdc6f4146740e54fa5d698aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b + +# Official test vector 14, seed: "e2819ef86853bca1b9dee7ee1c1619988964f9a913e635aacf0d96ca6e0300d084329dabd8f149e24176d22757404260" +seed: 38a0d5f41d7dc1896efd1b45b0485634cef149828751b96087a0a6dd81b4d58aa2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a +public_key: 24e5249c820c83a86b66536c8fb371772408729447f8f2bd61fc63db224d868b70c8e8ac6685c8e3bc2375049c25f941169291c38a0eb0f3cf027bc8324398fcca99feb47059e87db1c2b723522d3f09cb8a19bf7b2b35db5516a652b837fb94a6ac6701c479686ac758c381fa242d8e67b1e7f6b0cb04cee5fcbe2bc5b266dcb55f1c72b091039596c4e4e50db8741763c35365931bb37a3552bb3223938c6a876e54121fa489c502e14943aacebe7a5e7747bddf5c6e916095bea36dfe8059cac7adc0dcb10a64bbc2812bbceb001e22cd5438183f9b3249a27566098af16782c6b503b987a6a5896c1bd82ef7d3c5c77b82cc797bd682849826981187a1530b4fc07173dda9ccb8c5248583503a8b974e8b1ca39b1beae9ab516087a170ba4d12ad5e555f77f27c55c519226cc6b3246ca1328db15648ed4394cc038245bb7d9ea48af2350f0961283f195bd51304af6653bd133e241729b5a62495c8c45583cd4c30bb1c538fa4f86afe799026f86e1de0024ff13ed5713a8806cb9eb6cec9c94c4fc4abb2569d9486507137733e681a5eeb479c8256ceac1ef823b34995c65cf43bafa250a874b743388cb6541d8346071f075b439620bce761cbf1848953200543177e0154c9343b47ba3f5ca025fad201bed145b7e8abec99a404621a11372c930713a013b0cf4b346ea6cb64620859d458d0e08b5d416bc86552c79b087f63539303c6fa96aef18c6a61dc37e1e8436fac43763c9acb9b5955157cbdc15d356936cbc603f6eca2e2a53163591b3d2257d67335caf60b4223b8c0cb7c54454e3b4812e5760848ec0babd9a0d7da9e83719bb0d7395418c44d86bfeff4c8a8548cee6780a5388e36eb4f5667ac2182c213a577fa2c4616814ebda8ce8a1c5851e0551d356471a8051d179de078c9f12163b0234fd729c9b02c302997c13974b47aec7573604d8278783bca1a5f184f77047f3b1861b7e1c2dfeba290e785d77ccc37e0ad03c199322c475191aaaf87300ea43f6a956b7d03b338b147cdfa14467b2850a73ba99c6b39d89ec6fa3052a9bfd0f6922f9b37ae6966c940370811aad1572039ba3365d089016c21fcb64fe3d924f805336d49683ed262410594f8205bb2649082642314fc7065cba9b8c4421f1bac52f69ea8f96093f89342b879eeb785756587a4027680119d41bb559c758197d360342bc3845237aed01aeb8104490b9bcb4ac158f154b347a49219ca5a401f90d1c1f4f7ba521bb33ae0610767207f3c9feb991e7ce444a42b33ee5a14710586523cc98aa53de01801bf383e33ebc03900678750734311c349cac283ba827fe39f976b3de28610113291f61325b870384280c58ac9c48bb65c5d8a672c86b218e8a706d3b87f2341b95199956886ee0ab068d927ddd109af491d23e991f4e8619e4aae99053c4db3514d380133105ad60885a9fa5fa80c144a3949cc8c33b591c776d5a7a6e9c8d12417b4c1661c867119f7006e6520462b63e1770aa6424dbec6b9a0c2cdb8c8945d653e62c790d7857681b479fda12c8894640aab041a044d897c565ce882aeeb8caf42630e10afd12293fbec9d7ef259bf881c92cc7706ac41626bbe1d17373e57b3a86a3ba62cb6084869b58c659371c110930b6c75626651971641a899645846f96081b00f6c29bcf8c646210676bf266467d90eb393b64a1593b4579adb0b549e6648da5c9e2eb3bddbc78c468912dc674b126acd4448bb40bab46ebc8620288253156d8d39ada1b639c6f69d34e9a25e6b6bf4241bc00b5968282bab963820fac7159001fa414dbe2b94a74158ab43c6a43519f9a34a716cc07908452e5a0a517138cf46220243bf2e27ae78835b73e0720222700861136b2a405a241e58f37f132c588a1102a5344b704619666900c73990c2145497565d09e984f2689e315ab204c59a360534a641228768a9f1581532ea9d7717b8d8069158605508a24ad1c71fee5760605bc2d619b177985ce89cbae0ea5ea335529a20225cf83744d807b886ccd5cbcbb8393d5bf144497a4c454a2ac7589b5315937345cc02372fde21bec80c0ac8912d28b3348df2a88c35b7f384809f24665600583530226b50a6429217ca211946ea66451c9092e7c42b309a922465561b307f8912f29a1ee687b1d96d8c201bdd75a34e09d954a4267f21490c0eb74ae98fad1b5a3b5d2b9f70e9 +private_key: de2a5203a614274820ac186bef852a92160817520323d112ea9240ed0bb381db4b012a4282775c91055800516cd465812722c6696165d80188c1f7bcf2f99cf18124a2905b6e3a69185c0a20f61913402bc2622a5477bd455046a032823da983660bd0aa51238de42a86fa9654f61ce0ea1e8f865bcd9407b879cd54c8520acb99b74abc1a6a23b767ac7c9449613a4a4b5003b2000aa52c17cb6652ce133abc641eaa34141feaa745c06ed7a1273be6a66eb6779232635c22b4030252ab30ae3c13291513438f2b19c4a10cc6f884d093223d2b12e460b49c191adcfcbd4f82c67ea936f946391835b2752ccfefe46230d84245ea8d8c799eec979f98409f51a65cbfc62a8c3a889d33a72ea24c96c094257104701755949524d5d4abba117a098b16da589c47e5415ed0920c4b2b5ae0bce2616c5781a903953d2d768ef5c58431984f671a3b31953940a6b52f24658ce943fc360fe9b0c9f9308caaf7a04e3779ef5ccf99a505b2b27d1c0b68f9f2254752820f6b721d55be6a205b3c832213d8cc015a14f5895d8ad17a14501ece031adbe36362b1c475c7cb2129863838ae80ca94d67007e3b5668ea415e5ac3e66d1aadc76021c4a47c1ea8c41423571a553d041a07096ce6548511cf08e108893ac1c0ae3990559b21952e5cdaf1751052425f483c88a3356ea567c717c75dfb70ee49b0be7f9cbf172ab7dd22172d40214bb7c9f22801c3645c8d075582965eb02ca9dc68dd6c3798d28162de30da699a29c216220e35f725a14b0708349e4c87f726755b68f632918daa2c83836b8ed34a542daced4a46351f337b16516b853bc2a44337710043a58a83ba5870af51af1252b83e69ca81539bb89af01526dfe7162665b9347d441bdd77b2e4a3665565307e65fbdd341b0b154fef5aa7ea530c93362a0a4766ad13307e90d1dcc2a2a37746e881d57a718e2964fa80080d9f28074121893c95ae850c61028a6e82caa571a63b7d85c37290b61ec6ebee839da040fd1d5b359d9bce5ab54462242eee31892030f7402aafdc1a2575000ad636337ec69537c4b61669547859875a2b94f13aa723182f9424e8a95051f10148f470f1d04c9c444641d4ba30ceb312bb89dcd04be5b421fa5d7327748c7a37acbdcd73589a94070635ea6198f014b4471106862ea794d2c8eba828e95d81f3bd226247952db967f72aa44311438d4d995b3c6ca6d6233705a311f095a6c9ca8cec042087c8071d00ed4acced97053116a8928981e61c5b3bf8177e4d99b4a130999066729f2875da7462b7827ca00980eb96d3ada528778cabd214dc0969ffc38b795512bc385921496a27b1ac7a099989a22c173a06ddc4b81b2365a9c6a160cb36f70fa4ebcf22c77e477da74a7be867394e5168b744dc03a32ff21221f877421a4aec9e9a2bcec7e46c88c2ef550333787dfe664e767124c5b0f09f8874d085324fa2eee6a127cb2a3c6936f649719171116bdc8a6db265c387930be3a1daac267b838640d44c8ba75537347735de517582c9d8da18666942db6951a4a7a2ea8f09768d026734c0bdcf7983f877e29c42f659873114669974c9018e7392c4500a45bba4f3c834275c84289c23fa13ca6e927c128accd480225c79247982b811b885062022eda9b448061aa908664400acc9b7f34284d98d526fb96336b408845d85c4be2b0215b0b32547c5f4b7e43fb465a358f6b1297afc22bf08b9307fa8e5a1361b03882a26798106526fc136cf93438b03601d48a145d58998f087d0c4386afa0c834a91ad3121de0c57dd7c117fd339dde05bc09e0a157c9c638d8c1a1d10687fa3eeed68eee7b3b2adc8b970bc0a0820b14679462c1113221cdcc045906618dda5cc340c448ba0038c0bbc36de75c00fbcb11f55e6532504fb2ad08e59aa3c65702547d04a02c5da62286a2053a75975c38c865d3bddc9506fe7c7081345700daa716da27b789590360b5c6f5b9f964921b7680ed159899829052987536f4375a8c5ca9e322e05a3d11f58bea4b1de4191667e87508ac279f4757a54393130b04675c312314218ad0c98038488bd501104989055bbde396cec47790b462b13b00a625a732959157e5715b16f4aa25582b7728c427c5758d25191b5b42c33b5d096ba301075d7c515ad195aa24e5249c820c83a86b66536c8fb371772408729447f8f2bd61fc63db224d868b70c8e8ac6685c8e3bc2375049c25f941169291c38a0eb0f3cf027bc8324398fcca99feb47059e87db1c2b723522d3f09cb8a19bf7b2b35db5516a652b837fb94a6ac6701c479686ac758c381fa242d8e67b1e7f6b0cb04cee5fcbe2bc5b266dcb55f1c72b091039596c4e4e50db8741763c35365931bb37a3552bb3223938c6a876e54121fa489c502e14943aacebe7a5e7747bddf5c6e916095bea36dfe8059cac7adc0dcb10a64bbc2812bbceb001e22cd5438183f9b3249a27566098af16782c6b503b987a6a5896c1bd82ef7d3c5c77b82cc797bd682849826981187a1530b4fc07173dda9ccb8c5248583503a8b974e8b1ca39b1beae9ab516087a170ba4d12ad5e555f77f27c55c519226cc6b3246ca1328db15648ed4394cc038245bb7d9ea48af2350f0961283f195bd51304af6653bd133e241729b5a62495c8c45583cd4c30bb1c538fa4f86afe799026f86e1de0024ff13ed5713a8806cb9eb6cec9c94c4fc4abb2569d9486507137733e681a5eeb479c8256ceac1ef823b34995c65cf43bafa250a874b743388cb6541d8346071f075b439620bce761cbf1848953200543177e0154c9343b47ba3f5ca025fad201bed145b7e8abec99a404621a11372c930713a013b0cf4b346ea6cb64620859d458d0e08b5d416bc86552c79b087f63539303c6fa96aef18c6a61dc37e1e8436fac43763c9acb9b5955157cbdc15d356936cbc603f6eca2e2a53163591b3d2257d67335caf60b4223b8c0cb7c54454e3b4812e5760848ec0babd9a0d7da9e83719bb0d7395418c44d86bfeff4c8a8548cee6780a5388e36eb4f5667ac2182c213a577fa2c4616814ebda8ce8a1c5851e0551d356471a8051d179de078c9f12163b0234fd729c9b02c302997c13974b47aec7573604d8278783bca1a5f184f77047f3b1861b7e1c2dfeba290e785d77ccc37e0ad03c199322c475191aaaf87300ea43f6a956b7d03b338b147cdfa14467b2850a73ba99c6b39d89ec6fa3052a9bfd0f6922f9b37ae6966c940370811aad1572039ba3365d089016c21fcb64fe3d924f805336d49683ed262410594f8205bb2649082642314fc7065cba9b8c4421f1bac52f69ea8f96093f89342b879eeb785756587a4027680119d41bb559c758197d360342bc3845237aed01aeb8104490b9bcb4ac158f154b347a49219ca5a401f90d1c1f4f7ba521bb33ae0610767207f3c9feb991e7ce444a42b33ee5a14710586523cc98aa53de01801bf383e33ebc03900678750734311c349cac283ba827fe39f976b3de28610113291f61325b870384280c58ac9c48bb65c5d8a672c86b218e8a706d3b87f2341b95199956886ee0ab068d927ddd109af491d23e991f4e8619e4aae99053c4db3514d380133105ad60885a9fa5fa80c144a3949cc8c33b591c776d5a7a6e9c8d12417b4c1661c867119f7006e6520462b63e1770aa6424dbec6b9a0c2cdb8c8945d653e62c790d7857681b479fda12c8894640aab041a044d897c565ce882aeeb8caf42630e10afd12293fbec9d7ef259bf881c92cc7706ac41626bbe1d17373e57b3a86a3ba62cb6084869b58c659371c110930b6c75626651971641a899645846f96081b00f6c29bcf8c646210676bf266467d90eb393b64a1593b4579adb0b549e6648da5c9e2eb3bddbc78c468912dc674b126acd4448bb40bab46ebc8620288253156d8d39ada1b639c6f69d34e9a25e6b6bf4241bc00b5968282bab963820fac7159001fa414dbe2b94a74158ab43c6a43519f9a34a716cc07908452e5a0a517138cf46220243bf2e27ae78835b73e0720222700861136b2a405a241e58f37f132c588a1102a5344b704619666900c73990c2145497565d09e984f2689e315ab204c59a360534a641228768a9f1581532ea9d7717b8d8069158605508a24ad1c71fee5760605bc2d619b177985ce89cbae0ea5ea335529a20225cf83744d807b886ccd5cbcbb8393d5bf144497a4c454a2ac7589b5315937345cc02372fde21bec80c0ac8912d28b3348df2a88c35b7f384809f24665600583530226b50a6429217ca211946ea66451c9092e7c42b309a922465561b307f8912f29a1ee687b1d96d8c201bdd75a34e09d954a4267f21490c0eb74ae98fad1b5a3b5d2b9f70e922599b58af4bf05a9815c270046161175cfdbc167293cfd50e9d74851ef1d1dfa2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a + +# Official test vector 15, seed: "669c4ef8a051ce201da65fc4bc34d398ec1f806276fc5d987ad71d93bc12dc8f107b58be6e8422a0795c88cb9a0e7488" +seed: 97b5665676e59e3538ebadaa8cd50df1f9fda1502d9894c616a946078e56b621df05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 +public_key: 6820166411abe7da1944fb933eb009de46ba60e249664722776b37ccf770b187269cb240004aaf74c37eb027c62536ae847b8ec48a6b2a9ac68307802db576b70226fa1b951da9cfe094a0bf4b0b306c5e030baaa25baa591b289fa24148c7ca16a19e0a0039eda555645bb65685a75a57028bb29456e4c16ab48c06d346ba9925db4184adf635e779522c2670dc5bc1ac86c662eb37975aa806a2b2e307904f6c6a0d094828aa1c07891cf098223ea78967e7af701273a8a1859adccac61bcd0c103f3c13aca18689397bab1ddcbdee2ab113ec6932c68622c513b0d66c60244cd77441c7aa964b5331ec11a088a5034e064a1d95b4b389c15c51426fc9a135464416881858511fc894bc2a3b0b742366dbca062f2c3eec28bc3c38c809eaab081c5dca65bfce171057ab8467eaab50987732b9c85bdcaee647342c3660950b9ca7c0bdfb3bab69268fc8486397b540f0831efb861ac11855dea4a588c4935847a644a470f055a923162f1dbc2b699020880cb08b80621de33a9f0aa83fa2b5541aa2cf41b98214a5fee14785661a63603f0492163b47829c71a7afb0b5efe94e8e225ea2c0179539772a510a5ab5456be4670a076ee1b25ff62687a96284166576e3e773adf2c061258bf2d28b1ba00fd485b8151076eac5be6ab7ccd81312a9ca938f256b6fbc8ab6d3c3a1da5c75e1806c5c4cd4202c0b20816e368bb2443684463ed43787a89236fec32fc99891166462852750a8c1445ac407924470a56b1cc75c7a378a2e40c00fb35c0d4f65bd12f49911fb923bec1b635baca8428ec7d13b36079732838459c669f7f0c26281717ad45eec972011c66d63a298b95566afe11baac79a67dbadc882815d014549cc294b658a8c00a2422c0d23f6a0be9bca232c8374e616e749623e8a99b0f96a08c95897e88900851076b1b470732ec2462bc9c943255bc475da70b44b134e0cafe8f3cef42972cc175e04fbbcbdf4cd151639155a0469651408c9292de9383e63c08c8bcd96a69a3ebaad9b2c1940a37f6c32b1d3b702d28acb908cb2c7b88b89a7ad4c87cfa6c53987e4721d2302bfb53ef3e9bf7319219926bb7884111fe2c4a9aa4c4c1c0f8be3bda890c0342b56f826a6e971c33f900408292c5820c92b66bc8432cf735388ddc35eb004506d8a671547b7f324741f609e2121a0592644e7e0cffce7280f77c34d05b930b96ec9c79838da4a78680da3b07c1485081d14b9d880bf3ec61d852114d738580918c72a270d7034412305ba10d6a5629a931747611554602f529f32356d9e0331de2232e65c695af1b597cc816d001ddca540a0fa3ae67313853b6a46606c1bd3b32d193bdcf2cdfc2c1f9006724365550632bae19bb3d60804d0c80f17681ee020c6cf3cb7c19a22b1d4acaa8abb40f308ec2cc6616164e106a06f700bc62266ccd40d4a414dfc818ef3ea39540247c0853309d45fb99b84fc3ba114c240915a19e96b742a234ca1e0183e60c8acb65ed2c8a7d239b408c33fc5e31ae83caaad17c24b99238b2a52181517a1202c87a17f22bca93e758ed95a895a6a97c163cba8a4c0d0b980e9871fa8f595a668adf927c4538374c7e65fd052196a64cbaa23969a1c07145352b6829aa9e93993c640e0f62b5bb0228ee37400619eab437434026df078bef452267841bcb72844e836ac95d25439567a76f69a3b2c6cfc1c4525f340b40c558007b4f76864e8367cba7c71edf2aa9ec56f25f606cdd66cedd0937451b95422a509b12553a8cebe7b95bd97b45564c98d20a9ce8c51add836d8c00af538b0d0528507bc3924a731ac05a688a1680e050b770c3a8f49c654138bde367f4269abdc4215175799a6112bbc186b23745fb0cc3f2bcbb6ba1670b1834e99e10b2fe25003243284c59ee4202ee28a6ec2086510697240d60961398c77b3b046a23a55b89151673e1ad8a9de959923974c540902716c973ea402b3576f5b664da2a104812a6101996980d68baedc34f9856effb6c457c8332487349ea3b8bc67acb7fc509c22a476c331af75374c57b4c010675d490da92c7c60ac69d89a25e0d67351aa5c9e9880bc1386b77019436abf526b319ce44cc759b009b93f8b9c3059bc7c63ab483a749e1a761e90587f13945674e85b7c896280d15d2d20bcea11db480755602348b4616400faeed3c143406ea9c1307e37e2642ee73c442a +private_key: 402525b257c035fbc56b1aacd731540e40999eb1a2cce3487189184f088a4bc96d9dcc63ab435bb6e26f78a90ca281b436ba7b222cabbba20b4ca3223b1210b5da1c7fec7e64d27b9d7abd831417d8e384aa500a5a986442c767eed412e6499825ca2946bbb83e1a9d07f14429aa46ba598595dc4639da5015c96535c90e99a1c36dd511daaa713f741f3ce3cf8232cb5ff403f32c75467440092a4f7714524b9ccc3fca9503c50cc8d676758ab660e2742930bbb061639549346b9a67d82617a33283061011844467bf12ad270ab2e047835ce36276051062f46f32e05c3af197cf7244352c03f423305c6477a9b606301b606c693ea08196a2c8b639c21aa641646bd3c958f3b6da0ca8234b17ead33b9a855e2b0181dde85ae8a33ce357273583cb06968f07f6b52de50d6600973b5b60ec3702c5480d95820dc0aa611cf80891338b5187b74d7046906499bf7419f2dcc89f7808b5557915ec82dd90102800a26e1ca3503b8844416c688386c3a74fe6b11fcbb6293f9c65fa247c70a40d8779056663bf92ab39b2596a17710204b884765c5c90f6b61b660a32c8158ce1817f45c2d9c769bb203acea434817c6f788482135118623152c0f38ff33733013a3fe5898f741986a5d322f679a7c0a17040b4cfc0f65e0395bb7d5b698e676db248880791274ea868d13009e289951d3b80d57385924a433a83a42d879208072a2a5b563b171c9b53c263c6b233a27e40f6b3205741373880498552afe88132b80f3849c937fa91ebb3a0770c5027a7065b961365429a7685bd2df71792ba893cec50bf398493d0676e002ea5a9054f095d52870728fb9ed9536da077273437689209b2b14407f9639bdd287ba9f77af0f6c750580c7cec0426035e89745e88f3b328c60fb31987d7fa0280d062d8ac2f57b5133aa1af119151344b5f4589389aa11803da3c1f08aef60589ab2687e5ebcdcccc9d3c38b80d078c3c4038d0870e0da3adb641a5f22198868a24d2a128981b4bebab984f9c39edb9650d23823dc1ad7f2c39067b95844829bf24ca25b68325134f14d9a849db47169304f3319f95da79e119be3f31af93cc1f1a1bb6743379a6314477fa01e687b135256f72d5657561b98d215ed6bc1bf80239e3831c16317cef9b7e2ff60c6d116bf8456c11c6a47006b75b27ada9c6baedcaaa8775306319982372a39039bfd1315aa310c7859aa42c287dda6cbbe0f24f288ba3f9d78b214b6065d35eb9374ec46c251e77608c53161232cf11480b92505ba69a7fba20b5713bc616317e4c963fc938af06558ec62b47be7c967e652dc55c1ea38c1a9d90947d167d672c6d0c608b6b9535bfe20e2e2bb322155ec3e777341c3b5f4a5c79a93a376a023f263e71c215e19b2cae2c11ec400a93439b0bd13f8caba7366094635cbd1558448294704c5b209d7b7a6ba1aae425aa03ab197aea341d0166eca608337c387644638ee00cc3fca30f2a063b8847f637299320127d038343f001720ba4aaf339404a2494b1385f851ec06b07105869960332a8da7f5a7065e8983261eb7b68191481062a22a800932a38e0280ce73c1b762a3f95058492c27c4022cb2f82c1781418ce217c06d5ca7f1ab2e99167705b3721719497b266db68b6ea1356b4c642058b4f1aab6c4093c3b2532181f9bda310387a216b6339341239b8fbb9cb9d8a46554c1aa875b1acb34ba50b2b6b11cd07ab0c695a66f025cae448229655b177543b98478eba7895882a6a7e20a5263370c7177370d1ae4b48b18583a49dc62228165c55368ae6aab812f6321aeac1ee5542bd35a9c291b6f8ac01df1c10e5e10a00d61acaf83b125407445a341aeaace6f592fed5bff105178c018f893116bad4aab410ce04071e312269bcb1725cf229bf57103fe90a99dbb8a0105e926c28aa87571d613290550ec96bc9e2213a088c98c3981727e8311aa595f221183a9657e0cca6ed40962a30570a475e7c70281576013d725793e11a91b312e688a55365ce42ab08ac759897a8af7c607622e56014dc825f647d1421a9099b14bcc4934cc4b389b333c14373fa593f0851291a1b3b4fa96edbaa893e4814f887adecf9560154876e1b861841a2ad37236dc2c647e608cef8a3bcacaaba0a66acfaafe173cef526c86d31416820166411abe7da1944fb933eb009de46ba60e249664722776b37ccf770b187269cb240004aaf74c37eb027c62536ae847b8ec48a6b2a9ac68307802db576b70226fa1b951da9cfe094a0bf4b0b306c5e030baaa25baa591b289fa24148c7ca16a19e0a0039eda555645bb65685a75a57028bb29456e4c16ab48c06d346ba9925db4184adf635e779522c2670dc5bc1ac86c662eb37975aa806a2b2e307904f6c6a0d094828aa1c07891cf098223ea78967e7af701273a8a1859adccac61bcd0c103f3c13aca18689397bab1ddcbdee2ab113ec6932c68622c513b0d66c60244cd77441c7aa964b5331ec11a088a5034e064a1d95b4b389c15c51426fc9a135464416881858511fc894bc2a3b0b742366dbca062f2c3eec28bc3c38c809eaab081c5dca65bfce171057ab8467eaab50987732b9c85bdcaee647342c3660950b9ca7c0bdfb3bab69268fc8486397b540f0831efb861ac11855dea4a588c4935847a644a470f055a923162f1dbc2b699020880cb08b80621de33a9f0aa83fa2b5541aa2cf41b98214a5fee14785661a63603f0492163b47829c71a7afb0b5efe94e8e225ea2c0179539772a510a5ab5456be4670a076ee1b25ff62687a96284166576e3e773adf2c061258bf2d28b1ba00fd485b8151076eac5be6ab7ccd81312a9ca938f256b6fbc8ab6d3c3a1da5c75e1806c5c4cd4202c0b20816e368bb2443684463ed43787a89236fec32fc99891166462852750a8c1445ac407924470a56b1cc75c7a378a2e40c00fb35c0d4f65bd12f49911fb923bec1b635baca8428ec7d13b36079732838459c669f7f0c26281717ad45eec972011c66d63a298b95566afe11baac79a67dbadc882815d014549cc294b658a8c00a2422c0d23f6a0be9bca232c8374e616e749623e8a99b0f96a08c95897e88900851076b1b470732ec2462bc9c943255bc475da70b44b134e0cafe8f3cef42972cc175e04fbbcbdf4cd151639155a0469651408c9292de9383e63c08c8bcd96a69a3ebaad9b2c1940a37f6c32b1d3b702d28acb908cb2c7b88b89a7ad4c87cfa6c53987e4721d2302bfb53ef3e9bf7319219926bb7884111fe2c4a9aa4c4c1c0f8be3bda890c0342b56f826a6e971c33f900408292c5820c92b66bc8432cf735388ddc35eb004506d8a671547b7f324741f609e2121a0592644e7e0cffce7280f77c34d05b930b96ec9c79838da4a78680da3b07c1485081d14b9d880bf3ec61d852114d738580918c72a270d7034412305ba10d6a5629a931747611554602f529f32356d9e0331de2232e65c695af1b597cc816d001ddca540a0fa3ae67313853b6a46606c1bd3b32d193bdcf2cdfc2c1f9006724365550632bae19bb3d60804d0c80f17681ee020c6cf3cb7c19a22b1d4acaa8abb40f308ec2cc6616164e106a06f700bc62266ccd40d4a414dfc818ef3ea39540247c0853309d45fb99b84fc3ba114c240915a19e96b742a234ca1e0183e60c8acb65ed2c8a7d239b408c33fc5e31ae83caaad17c24b99238b2a52181517a1202c87a17f22bca93e758ed95a895a6a97c163cba8a4c0d0b980e9871fa8f595a668adf927c4538374c7e65fd052196a64cbaa23969a1c07145352b6829aa9e93993c640e0f62b5bb0228ee37400619eab437434026df078bef452267841bcb72844e836ac95d25439567a76f69a3b2c6cfc1c4525f340b40c558007b4f76864e8367cba7c71edf2aa9ec56f25f606cdd66cedd0937451b95422a509b12553a8cebe7b95bd97b45564c98d20a9ce8c51add836d8c00af538b0d0528507bc3924a731ac05a688a1680e050b770c3a8f49c654138bde367f4269abdc4215175799a6112bbc186b23745fb0cc3f2bcbb6ba1670b1834e99e10b2fe25003243284c59ee4202ee28a6ec2086510697240d60961398c77b3b046a23a55b89151673e1ad8a9de959923974c540902716c973ea402b3576f5b664da2a104812a6101996980d68baedc34f9856effb6c457c8332487349ea3b8bc67acb7fc509c22a476c331af75374c57b4c010675d490da92c7c60ac69d89a25e0d67351aa5c9e9880bc1386b77019436abf526b319ce44cc759b009b93f8b9c3059bc7c63ab483a749e1a761e90587f13945674e85b7c896280d15d2d20bcea11db480755602348b4616400faeed3c143406ea9c1307e37e2642ee73c442a4f71da07c289afd5cafba73184b9723c238da81e3ae109daca1873ae1e34d84adf05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 + +# Official test vector 16, seed: "9debccfe818f6b5204db4ea09c03ec9a19dcf1629c1527685b8a29776bb1daaec45f8abf8f0adc9a8c8bd6e2df6d8048" +seed: ef99224a03a85a46ef115474ec5b5d620da6795d6efcca4c9135d19958a9de62df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e +public_key: 60045ceea77d8303982ab9b039dc4c3fd0159d46c89e618304fb5d4cc53e9766138fbcb061b56ddbd61e33873a953590f628c122d049cf722737b54d4430c312342189b59364e14fdf8cb1edc540c39612f8e2bf88710c26425c09dc7affa63f52fa01db7794aa2c2abca69145e89c06d40189fa704dfc4b252811b939118f1b9928d0b0b6767a1685804f502a19254ff89a45d9539c9f968835013b69a362f634b269b911c4327520673049c00e0fc437448c2849089918ec93c2ea270bd0699c85898c0148f4a1095039a216a51143183f4d695aa456c32e8a35d351415120725ef995010409e1176806da6b6e08ccfb3093914c87c107cd14e11f937a9f138b928ea5580494c6eb643ae33b5600f7726e2004f52cc39ab24d0cc9c3f9e57a0b821fdfe8404e6532bbe01609a61def2b4f452a1fbff381692975e05121e2330c789055e5a4ad696678bbeb1a8d3247d2257ba246a2ef966c305a8f4fac73a6fc08f71ca500aa9d00962caab7a2780cb94c209b1cd43151f3248dd344bc9898b7780950a10211d73aa0ba20d89b01b36623ed8aae48845e1d7372f12b9a692b3d525263dfa12b3f312f91b5802d3b3380e58be6a92a70e77cd6134103496dc3e9236ff17cb0ebb04a1783379baa0a3c54cf1c5eb1b4afcd9a7042c50d6405b1b610a9429aafe61a5423055af9f61d3617be60bb59ee8019e72123069614e738a46703af5bf25d31ac4f1357832b1232cbb9325e522e79571a1d226397e407e4b08b44082e71e984e463747a230bed934127e892fba29b88857606983a60b9425008117ce17d20c82b6171165e940530254f2b0cb4e5c235dce373fe1450ee6457da59c331b17f8d4b5e0bab25aac789c04acffb957724783d00dd24eec3375f97ad838ac0c261789cd3afcd68b2d53c0c9bf944f094bf0875c0f08c161d3618c774304ab25563981974ca2e13b5bbdd210ec10ba39c64635c9025b9610b623c2f12a768e03163d75315c7097782b69c44b3a0c33a552228c6001c5ce194346a80824627b974d2c64fba994d2c62f8babac47c51dc100c54789f737c61b9b3420469b11d110dad9010c6c67ead2329d3b4c665ac528041bfd028612c608f87f3ab74b6b68309317e1c0ee5662f8dca46c26039e2dcb1fe8c42cff0057d4bb3e4ab3bce13c142e589592c0850e117cabb2cac88431461a5e6743695e096099a8249e22f4033c15e9266cb00a9a36103ac473123e95d373b0dc92cbdf6b2b173b07a3771456d283c758ab963811e5168694cc20e64e8a677e05e3915c4d93c8531b75d430b3709753f899b1c45434be196a3fbe5149dda2ac0912afac619b4a45f3df262f7d617322a9e8221a79f2319e6ac59034c80b3214953419a191b0e4a25247bfaa0defa001d5529b1cbb9e63ac03768404645bb8ac7ce25687be70796bdf516b76039f7b689ce6c3f569a04c52875ecdc9fbc97447e0160e75a89215aa263091e7cb5534a97660cc8515ed61d9b624950c089d9aa647f787a8ed7c89216694a83c56cf278fa94340d790015b914d09ba91e10ac5b7ba95792bfe779966ebc07ac6916fe1aa4bce56cbaf506563319c5a4c4344344b472226f59b7fbe7982c08afe9a60a80c446b8b341eac220fa8a664b6b1a0df72684b67bf2032d75f5aafff7cc724acf3f1051ec3cc4ce8768fa9ab51f960f3293a1fc527686570da34404b5681967258799fa26f22179e18221f4babc2b7c46601ab7ceca1a345027d44783e7d6c511615b108c4197bc0d9ee49c91621074a907ab292d4575abad75a19f10c2a493af902252bba57348dc33fdab3217778429680b4f352b52445eb662101dd22ddd211f314577cb23bc47c7176942c5cba072996c048408a5dd795907bb2e2f49acd0e75a93cc4f7938136d7c26da0691c08733e8138caed6c8cb116b900869f9fba9f5823b20626980ea86e6f487af758830c787bb1bbd8de024be9765dd04b969dc21589312e709cd6780c9a38a8207fbbe74f220c3c33e2a127588b64e3170999d3a77c8f67eec947cb69649dc64010a3119c9030e1fd0530cf5c3b73b631917719d0983ad0a06d2963741289a282a717d7487acb30354fc74b005ba01101a1c8b52c130a00339bff4f480a4e890030a709b28082d3c501b2aa2d14fbef9e429f8cfb50e84c327ba02edb7f6abdde459896eac77b5d8c7d7cabe +private_key: 499333bcb7971e60c8a924aa6ebb2ccff48b4d3b9fd4786741668c071aab1c401d6e50928ee83d7997cd10151b1bb28bbdc8844681cbf736c4110cca8f32c3ce345060080d9280b9d8d8b8621b690eaa77e6bb8ed23285eaac41ee6b44d85a7253d70dc3180c5bc16ff3b7a4371616c98b50c3dc46bdb3207f880220b6ba60bb6db6a3326137190fca28777a519377cf8f08b333a721ddf9c8a91479a600087fc15a35430091357759da0b009d86d312aa7c8abed3d6babc371612543edb115c0273c999452f85d796d9eaa442c880eb098ec2a8b249d3378611b4a27a583cbba276790e9a119abc9cca1ba7c57414c1d697303dea1778b736ddbb9f521a44b76941538666a98140263419d3bb593cb23bd070008f396aa8532a92dbcfa7031d5c537feb2594131204691605d7fc8e5c7c6aaeeacdfd169e62b476d3a65d611801ddb06988f38636f32600ebc192b8709b1c56070a68fed61866f00d0f2b16b0429a9edb6e6850366cf3995eb5c926ab4c82506f50017a1a106e2cc32698fb77bdabbc60f35dd93a54faaa10f4272c2ec98357f3c137628c855513173c4788c35af8bcc723b97910343eaf4172ac586064dbaa43ea90cc36521a54aad84b3cf906145ababa3498cf2ad900c10b5c7beb0fc11b8d358a90d34383faa5032d535935fa4c639cc7e0094534623176b836d7c041d2b6c1689c3325c71dbef0743863a4993c34623578428910959075c5129d7706a3537172cfe981e8ab8a29bb09a1681b6fb75bb60017ba998af84863aa17c03cfac56e18aaf714ac9854616f09becf13427e996dfb084b1e62c5495c9eeeb1c0bc23c971077255520f17692601a9021662b770672a860c025ba9238cf8c73a8a467833bea9462ae604387f11431ab5794907916aa15de03aa6501c993bc684506b24d715557ddb7ba01c492407147905abb8977902da131cebbfd9b3b5dbc7a03580726510393f2835a1db389804a7af54743c553f5c445b4d350d3679b8d300916be22dccc7a0aa009e22e98dc21003f7a8041813bf84a8592d7979ae34b299e9403fd8a073cba7dea6a44968944eb4be70623163eb9e59da4516612d3df06e80d8326090b52ec78c3b883e70c06a77c70fd0426ef34150ba3195d05075a08c133f608de4327712c825e05878ba74acc9ac66a7573f6d245f2ab3c09e702b1b395bb28c1746eca972b41fd9d28743b736ab39853066c5029b4cc37089b89179e3a822cd606bfbb74820d3885e3b08bbb0716a7c7d4b674f46ec36d6d89a4e331add040ef64cca6c3b1e1bacb5a5d857a729beec7b5f4b068c3a685614619d6021170ce22f3f28a52517268ac6693c58b3f19798e4b186e2f0c471e33c4ca0338555ce3c37316a291cb89a3fdbd1b64fea422c46c51e65844e5317e4dc47a9461704e16259701718600610d7273a09cd53b256d5c6701dd1cbbc3b452bf943729c3f35a2761360885cd65a0bd06965443e2762b4d5152f50a4c18171205bb192de1619d9f3217a870ef1272edd442f62c21257407427fa0d4e85bf4e27563fc2c569357e44f7239edb9828c65dae20870d5a48b4f807cba20062eba57f0613114c335969ad471178e6f3318103b038c2812c18bbd68903c00827179a710c23ce84670c08075b70513aa9d5c6b3c34a3e4c437cc6c14b63b4c3e1c27638151d8a2fe633520f1159c52c4c59536eeb22b6981b8d10c29469242f3a09a7a416c79d893fe2c5c3204895ab23b0b062160b58b99d501f2dbc3c75a594e0a605dcb6ce54832d2bd450bc4c53abd892fecb0db87319adc0294345770197acc8e1b8fbfa67e8a830834432fc93aa463541456059da44be22695b3ec0caec411835e409430076de94426ff03af3e97c5ed07dc0b9450cc1a37508d019ba1b08d89943a5661fda1e84f09f2b8961d36243f36155f95c8a74e83b0fe61966f1008826566f5737bbda0a3bc1b2e0852f50f96df1c692be536346fca97d83c41ef6cc63ab22f4a159229217261a8760e648d2653d4fe13884624baf9a57af50802ad6c90359a10f3a9e83119834a001b74a09baca15c80c2b1a391dc652236011885bc181f6a8b42e7b0581798348cbc987959462e3b2f8986e42f59d84ba35cb171f2e81bfa5079dd30b981973adf67c645dd82d60045ceea77d8303982ab9b039dc4c3fd0159d46c89e618304fb5d4cc53e9766138fbcb061b56ddbd61e33873a953590f628c122d049cf722737b54d4430c312342189b59364e14fdf8cb1edc540c39612f8e2bf88710c26425c09dc7affa63f52fa01db7794aa2c2abca69145e89c06d40189fa704dfc4b252811b939118f1b9928d0b0b6767a1685804f502a19254ff89a45d9539c9f968835013b69a362f634b269b911c4327520673049c00e0fc437448c2849089918ec93c2ea270bd0699c85898c0148f4a1095039a216a51143183f4d695aa456c32e8a35d351415120725ef995010409e1176806da6b6e08ccfb3093914c87c107cd14e11f937a9f138b928ea5580494c6eb643ae33b5600f7726e2004f52cc39ab24d0cc9c3f9e57a0b821fdfe8404e6532bbe01609a61def2b4f452a1fbff381692975e05121e2330c789055e5a4ad696678bbeb1a8d3247d2257ba246a2ef966c305a8f4fac73a6fc08f71ca500aa9d00962caab7a2780cb94c209b1cd43151f3248dd344bc9898b7780950a10211d73aa0ba20d89b01b36623ed8aae48845e1d7372f12b9a692b3d525263dfa12b3f312f91b5802d3b3380e58be6a92a70e77cd6134103496dc3e9236ff17cb0ebb04a1783379baa0a3c54cf1c5eb1b4afcd9a7042c50d6405b1b610a9429aafe61a5423055af9f61d3617be60bb59ee8019e72123069614e738a46703af5bf25d31ac4f1357832b1232cbb9325e522e79571a1d226397e407e4b08b44082e71e984e463747a230bed934127e892fba29b88857606983a60b9425008117ce17d20c82b6171165e940530254f2b0cb4e5c235dce373fe1450ee6457da59c331b17f8d4b5e0bab25aac789c04acffb957724783d00dd24eec3375f97ad838ac0c261789cd3afcd68b2d53c0c9bf944f094bf0875c0f08c161d3618c774304ab25563981974ca2e13b5bbdd210ec10ba39c64635c9025b9610b623c2f12a768e03163d75315c7097782b69c44b3a0c33a552228c6001c5ce194346a80824627b974d2c64fba994d2c62f8babac47c51dc100c54789f737c61b9b3420469b11d110dad9010c6c67ead2329d3b4c665ac528041bfd028612c608f87f3ab74b6b68309317e1c0ee5662f8dca46c26039e2dcb1fe8c42cff0057d4bb3e4ab3bce13c142e589592c0850e117cabb2cac88431461a5e6743695e096099a8249e22f4033c15e9266cb00a9a36103ac473123e95d373b0dc92cbdf6b2b173b07a3771456d283c758ab963811e5168694cc20e64e8a677e05e3915c4d93c8531b75d430b3709753f899b1c45434be196a3fbe5149dda2ac0912afac619b4a45f3df262f7d617322a9e8221a79f2319e6ac59034c80b3214953419a191b0e4a25247bfaa0defa001d5529b1cbb9e63ac03768404645bb8ac7ce25687be70796bdf516b76039f7b689ce6c3f569a04c52875ecdc9fbc97447e0160e75a89215aa263091e7cb5534a97660cc8515ed61d9b624950c089d9aa647f787a8ed7c89216694a83c56cf278fa94340d790015b914d09ba91e10ac5b7ba95792bfe779966ebc07ac6916fe1aa4bce56cbaf506563319c5a4c4344344b472226f59b7fbe7982c08afe9a60a80c446b8b341eac220fa8a664b6b1a0df72684b67bf2032d75f5aafff7cc724acf3f1051ec3cc4ce8768fa9ab51f960f3293a1fc527686570da34404b5681967258799fa26f22179e18221f4babc2b7c46601ab7ceca1a345027d44783e7d6c511615b108c4197bc0d9ee49c91621074a907ab292d4575abad75a19f10c2a493af902252bba57348dc33fdab3217778429680b4f352b52445eb662101dd22ddd211f314577cb23bc47c7176942c5cba072996c048408a5dd795907bb2e2f49acd0e75a93cc4f7938136d7c26da0691c08733e8138caed6c8cb116b900869f9fba9f5823b20626980ea86e6f487af758830c787bb1bbd8de024be9765dd04b969dc21589312e709cd6780c9a38a8207fbbe74f220c3c33e2a127588b64e3170999d3a77c8f67eec947cb69649dc64010a3119c9030e1fd0530cf5c3b73b631917719d0983ad0a06d2963741289a282a717d7487acb30354fc74b005ba01101a1c8b52c130a00339bff4f480a4e890030a709b28082d3c501b2aa2d14fbef9e429f8cfb50e84c327ba02edb7f6abdde459896eac77b5d8c7d7cabe482c88cdc80345768e4cb54d17aebf2947b07c716dde8da26e0b7114f85dfd29df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e + +# Official test vector 17, seed: "8098ae7a92c10f707d405f7dea02c2efbef44efa132ba8aefe81bd45e543ecec74f10920ae48a40b0653d63532517f2a" +seed: b12f6fd965ea9c5b947db80fc60c83d5e232dca82e7263027c19bd62e5a6ff550f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 +public_key: 944633d5f98af3845ca7c37f1be75a52410da5d2bf9d102305eace09009e6ea21b6c543a25032612492b58247f13f01c6ebb27fd469dcfc83ac93071d3368fa128a4c71475ac1817a8b1744c9a2085e54ebb8455bec286dee50cbce87ebb0bafc32341e877aba7a5ac10dc99b65687aa53cdf2585976a06bef586e8993953d5a3cfad8a7593349f9c31010e6becd32cf6ec70f4ef88b1ab955a5d6aac2a877323181668a2c731726236c4c1f77768ed06a7358744c91c690029c4c747603289874032fe6730d96392805e10b7a50a6b849985083caf8d64c1fc257747613b9e6c85e455ace3755ca9034089162d96346e3f0cdde0a81f6a7727babab5f1401dc1832bc175e3576b36747101ccac305d28ac5386ea92447f483408aea6ab22c1027b99b9f14a1b6a67a24fccfd5f52295dc11995b9503d76c7d0ba51abac76777b960c45ce8dcc24ff6031da9a99174be42a381654b5c9697b13188a38c278d94f801a2b94685acb0935074c06272e0ba87b6214f717c01d9508d77535e444b5a2b461d02acb855d7309b8ac6b7731bab6626921160e1a35d0bf14deeb922d770be063198d5a72de076216bb366a0889773bbcdef5872934a894c7664f568ac7f1cb5bc72587767025a271db13a0ce44697aa4c0dba80a730c0c1c2146b36a50d23926df520ab3460b18687921de988c2a7c97dabacc5aa849068ad76f10b361b9a2d1436bd88c962ec724dc15a6583ca8a41704f3946da465042b808f2513b65a5009da5b44125308142478ad82ac64940164c24a599c96eb69ee5e4bef1e45066e2cab719b57fbcc03c1985472cad16a2699e4939b2e2850c1b24e8049a41362b2b908e52e2a9f7808d06a6298e059bbe1c5a87a8610a06af0262bc61390f90d962ec95bcc907c850721778a947677a226c0482b5704e7e0176f1e28e27150ad84093ae862682b4a74e8a7d330c4c4e144c3a39c3a3da3c75873dbaca4880c2940ce30ed10c395805c0bc043cd2861b2e9c0da1b59474f8c492024cecdc7676d4b8c4b3311096270d29057d05cba6494b6aa07379b73bdfac9a561a8ffdd3a43c5877d85749db9c8379abb29f7567fa1cc57b09c35e7b6ff3f735cc18473049ba2d5837edd8176531b67e04a509ba811a9467c633b962e8392d065a03865658913f494501fe9c0a6a649dc8f3256b6274cb6235b0cb278132676d028a24e07595f56c4727a7b11830c1c9840c002db53b6198444e5b63be4c46be9548bf4e1598ea6371686c63da774270b82c95f0c9a12b5c8f9a591ec50971d897b3c1c4e0701da5e26be2760ac99b481151abd2a20ba343bf46eca8699487d14a9667565ca4e30eae468ac5e6cae54b4adcd5acd74812ebc3b4066021b0cc890099b911553b95c794643a97f99a512ce874f10a3c250a513c005a70605429f5943600cfb9e4b2c5e72c821149d9c2c554c43d9bdb271806ae8b58506571c061240b6e7967417542334773178424d46122c7212e0ba7b5bf4388e8f4a3f60caeff712c1e3773fe51b357584a917bc3e4fb950c442ae17abeffe262a4a6550576b6e8297ba723943ae3bf60971b9b86cf952c806fecbe937c7b15c91c9e438ebee95e51d209e60105bc43be345167ac92492bba9549807361a06f525380f5f19f7d1bb926cb1c2fa726cf371174caad5034037d07ae2f305f4ba52f9415b0c624398b936333d68625f533d7da20d62507768a73f579ae71b2193f52a214b30921dc121b6c94042b386f52a202794bab835a9391ccbdbab2ddd94b3b04acf71a12de67cd24d1a85e7330dd36bbb6b387acb6bad3a59c1d292fc24aa6045c8c34ea4771b8137537b644997eb45bc2ef2a1165b308d3c926a0d23d09e749a142493a99ab1c3a80a87c3003990956729ec1c6c60a47a16f495813cb75c995aeaa481875830f1e906fd6eb993a8b3365189d1b50627466161451a21ee45397971d8f56634d90cd0e136c9d82729f8a76c61298a1a240f611824173abfb52ac1aa4bed85b4b18939988895075e888ac0c519ec75ebf693d3903560445414ed3bb3d262074981524e361efe44945b14daccc62e2c335ec40bb4453cae2524229571eceb64a25026b3e1ca249c127aacc08cde4203ebbcb6fb427379097fd222b4e24cb9cd47381c6b780553dd196bfc6c356f031eeed6c85b57be19afc39dd1f929bbb2d627f5f19db +private_key: dc0009fa7c1c6bcc6a0164044607925524ccba9a8c5986419805c924374838a2764fea94d7db8cdae57360510aa9da6b61134d767b14cc87a2aee90a68c10ce92a41bf8144e97c73e2b730f15673165a5647ca4d536bacf780a3e33a224f67b58258b3718bc184534b8436c1162bcea0b5c6599c00c262c34283b5bef25a1620ab60410c9ff0b21cac43cf0a68ab784a1110c183e06984596712560c087aaa05b67be9d6bd9520a486750e18a14ac0796ab1e9c33629bd1375316be248f06295ffc665d8d9bdb701c0447b33252360377611b04a30812b0e2d003cd1365f122104e71b8f52256976b6415ca0b1e2713214527515d37eca3c466a9b11fef107577caeb5e17e33aa0c9c4a71c7ba9b4813b3413ba65887c4fbea22e80251e3f727d2b7b0128555be6965cf704f9409b57b939aa2612d1d7241adb88eab14926a3718a483ba06a604d72591bb0377d53a31b8810ad8f70a8a2757ddb44ff1b02f557b9b61eb5a33c481f4b25ae00b1389b93437b5cde202ba6282912a095f19255c7b7bc136072ee3e7ca4c6800c415a2135871313bbdd47338ceaa715ab7450293a984e3805141b1185a84bd867202ab34b0213f917728176b5edee0a0904bc29aa74880c8618ee862c326c37152b325b5cbed5c679268aad2c903cfb6a5691912fc0508e23a8e88957f89d79e93b91da85742ede6ac13f0aa15d76b9952c1f5058a3ef0b453691ee45943b7564adcec64d4a02389d3b2f255553e440203605a0f7a192ba417ea54ad6eb347ae52250c5a2bd59c46bf750d60372eaed87c8bf11c44e65fb8db1017411776b161551a9d29212e98cc9c6c735ff8100267296db77b2425b6319a3b6ed5998a6426125cfa78167c0a6ea6c6f8100f7a19628c325b4ef4b29ba97297258565dc5da1042f80c7c634140a2cf93d2c19973506cb6b84c67e32c0a7d718b7d86265a76fe1417bdaa1c8d56a1748016c4b9ac886736a8fb3cfa2693d4a443309dcc003f227f1586498c0cea3d6853e5c07c66ab02943cf9cc791fd2289ab7a1a13c7b3d3a0b990e32d747c2588eb54018c1d25e86cb4d84538da8752248c04353cea97c534801eb223c877682d2dc50284f932095bb2e55b031a144f8f646aad45935b8c947b37b19b99092a0b636d0962d93053e147030187954614ae54caa88eb3736c5745d2d5bdbc462389f97d72f128ab4b5bab3a7aa9e1588452c240774ca5783f56b01824f007d1946d0414a1a722c32154598f3682f3e24aa5c80167956ccafc84b6c343986729e7d03c87f418482b56963243fa67cefda9b221253753a004bccc4d156817bcc9b8e7332128b38c6f6625ced3713c51a3ee137d37785a35d88b7a2b4daae5b356e07bf6ea7a67b5763b04a2944475a5323002b30a6680c9eb08b5954347824a2ae17a29c1a69523ca73bbc9403c35c3b2c74affca1864e24556b90162d07a95e138ea80469d021e35a1770a1c3a5185258cc9659d10054f814ecfbb0937233c3f322e77d3821e9ab61033c24fea260a4b8b3004592c50c68d41b72a67936598a177a6aec3163bc3dc9872415e1f60ac07640b9180a20500bced23add93752d586915a2c448301449e024967159e4f278c674b0313d00dd69cc819c354f5722537dc4dacf29f58b46579b917ba38b2807978f1569df299246a6c23b1e92907f540ca9c27d2393b0481cc10e47d3246cdd599312af942a38cb8ff936e3b64743a6b22a7e96925c863d82b963fb909ef439ff687544b53937c8110399c1dc37c66c987124aa56f9b8c8ec0501dc170252aba325a5a70bc134a2e73c90ecb5cecd373820a34eb706bcdd25f95b3cc9c035a4f1659ca5252a5a21d895cabba090c5115028a079bd81a3c948201b6f9981fb45e73600b2475578d08a8218a9d832ca974d992d13984664057fea0771a0c125b16b9a2d33b72d2478250a4cb9a34a1b3ceddba53d1a4905332217875797ab6248c6b97052678317a99716376b851204cf24fe743782c88ca93b90da03c3e54321ed9500af39b9bf2f7856b13604013a7f502b4c60049b1a03e91292c40d487cc9673e8bb150cd84b11c83493dc0ca1d5568f532af3e54c8166b5b180a6e253840012b7a5eb4f05d53f3bcc5c9414136a70057037c7b88266bac70e4c01b0944633d5f98af3845ca7c37f1be75a52410da5d2bf9d102305eace09009e6ea21b6c543a25032612492b58247f13f01c6ebb27fd469dcfc83ac93071d3368fa128a4c71475ac1817a8b1744c9a2085e54ebb8455bec286dee50cbce87ebb0bafc32341e877aba7a5ac10dc99b65687aa53cdf2585976a06bef586e8993953d5a3cfad8a7593349f9c31010e6becd32cf6ec70f4ef88b1ab955a5d6aac2a877323181668a2c731726236c4c1f77768ed06a7358744c91c690029c4c747603289874032fe6730d96392805e10b7a50a6b849985083caf8d64c1fc257747613b9e6c85e455ace3755ca9034089162d96346e3f0cdde0a81f6a7727babab5f1401dc1832bc175e3576b36747101ccac305d28ac5386ea92447f483408aea6ab22c1027b99b9f14a1b6a67a24fccfd5f52295dc11995b9503d76c7d0ba51abac76777b960c45ce8dcc24ff6031da9a99174be42a381654b5c9697b13188a38c278d94f801a2b94685acb0935074c06272e0ba87b6214f717c01d9508d77535e444b5a2b461d02acb855d7309b8ac6b7731bab6626921160e1a35d0bf14deeb922d770be063198d5a72de076216bb366a0889773bbcdef5872934a894c7664f568ac7f1cb5bc72587767025a271db13a0ce44697aa4c0dba80a730c0c1c2146b36a50d23926df520ab3460b18687921de988c2a7c97dabacc5aa849068ad76f10b361b9a2d1436bd88c962ec724dc15a6583ca8a41704f3946da465042b808f2513b65a5009da5b44125308142478ad82ac64940164c24a599c96eb69ee5e4bef1e45066e2cab719b57fbcc03c1985472cad16a2699e4939b2e2850c1b24e8049a41362b2b908e52e2a9f7808d06a6298e059bbe1c5a87a8610a06af0262bc61390f90d962ec95bcc907c850721778a947677a226c0482b5704e7e0176f1e28e27150ad84093ae862682b4a74e8a7d330c4c4e144c3a39c3a3da3c75873dbaca4880c2940ce30ed10c395805c0bc043cd2861b2e9c0da1b59474f8c492024cecdc7676d4b8c4b3311096270d29057d05cba6494b6aa07379b73bdfac9a561a8ffdd3a43c5877d85749db9c8379abb29f7567fa1cc57b09c35e7b6ff3f735cc18473049ba2d5837edd8176531b67e04a509ba811a9467c633b962e8392d065a03865658913f494501fe9c0a6a649dc8f3256b6274cb6235b0cb278132676d028a24e07595f56c4727a7b11830c1c9840c002db53b6198444e5b63be4c46be9548bf4e1598ea6371686c63da774270b82c95f0c9a12b5c8f9a591ec50971d897b3c1c4e0701da5e26be2760ac99b481151abd2a20ba343bf46eca8699487d14a9667565ca4e30eae468ac5e6cae54b4adcd5acd74812ebc3b4066021b0cc890099b911553b95c794643a97f99a512ce874f10a3c250a513c005a70605429f5943600cfb9e4b2c5e72c821149d9c2c554c43d9bdb271806ae8b58506571c061240b6e7967417542334773178424d46122c7212e0ba7b5bf4388e8f4a3f60caeff712c1e3773fe51b357584a917bc3e4fb950c442ae17abeffe262a4a6550576b6e8297ba723943ae3bf60971b9b86cf952c806fecbe937c7b15c91c9e438ebee95e51d209e60105bc43be345167ac92492bba9549807361a06f525380f5f19f7d1bb926cb1c2fa726cf371174caad5034037d07ae2f305f4ba52f9415b0c624398b936333d68625f533d7da20d62507768a73f579ae71b2193f52a214b30921dc121b6c94042b386f52a202794bab835a9391ccbdbab2ddd94b3b04acf71a12de67cd24d1a85e7330dd36bbb6b387acb6bad3a59c1d292fc24aa6045c8c34ea4771b8137537b644997eb45bc2ef2a1165b308d3c926a0d23d09e749a142493a99ab1c3a80a87c3003990956729ec1c6c60a47a16f495813cb75c995aeaa481875830f1e906fd6eb993a8b3365189d1b50627466161451a21ee45397971d8f56634d90cd0e136c9d82729f8a76c61298a1a240f611824173abfb52ac1aa4bed85b4b18939988895075e888ac0c519ec75ebf693d3903560445414ed3bb3d262074981524e361efe44945b14daccc62e2c335ec40bb4453cae2524229571eceb64a25026b3e1ca249c127aacc08cde4203ebbcb6fb427379097fd222b4e24cb9cd47381c6b780553dd196bfc6c356f031eeed6c85b57be19afc39dd1f929bbb2d627f5f19dba8f24545f5c1f2244d7712dce7596ce08146dae6a7f474daab4056da2d22c4ad0f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 + +# Official test vector 18, seed: "d5f23808871544e9c1d6eace2028362b48e225312f77663e9f78cafeb512b908cd9e25875d61a16ec615f4b8ff826856" +seed: 9f52af92ca165fdc38788f2b59ba02e01c8281ff7c1e60504688043a5fe814b04f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f +public_key: 6d3b096a7383933c0cb6615824885499f79dc06b5e874203c3349b2c3b27b1f1012e52bce9968496c068b6e6c7244722621a1a44349314845b1d8831d9821eca386eb8fc254587be5dc529438485b3fac44af0613732509cf225f5c127a4056cd5e503eb742cf03154511969e7a743834708d71579e9ca4a4e281aeb177ef50cb0db826ddd17873e63a182e3b001f659ea3cc73cfaa5d7d7b5e7e9cdaae04c9944978dfb7ed34248d976190cdc0184930e25c6306312180a0b8758395d1febae95b22e0945c5fe265595a9ae91616cf9f35b588b7a02f66d8d49800c50017c7272bbebcffb10a16a5c8560130d96fb0c241a286ba949620ab83539b83d862ddce2507ec4b4bc4330c27517172b43bdf09a5e6a5fb684166800372663544859acbe07424705809587a08dc50fafabc1b2f9486ca6415266c502f7b998dcc947c7b5f5584cd34cc90a4c385f30a2cc051237c6a85d4a5571305a5182c970b9bc87268484f293464545f4c349e8b2ba3e5b4a5e7c42237c0e6e1b7722b04e3d02a27d0597d7169a49e340a778179a924a1d31c0c3d53bedb46868a62ae17847f130ad1478b8428b09fd71b028f1933803318af78103723ae7e1185801872f847753862f9f72323f980d6ba9744cb6c079341b02443b52e4becca891fffbc6084ab40bd17af7c6b2b21c09c170455c52c4c7093c44aabbb1a0c1d11b12070894f7649112f32a98d976c72291100a3bb4948f928771b063839a94a614227587d1a9bd25479bd8bd06e114894bca10814f0c516e1be41b81ccc6044a8f3654679df531c7220982760aa39a4e982ba3247b009d405c0b50969c694858889b4058089631c57dd1c5fe12acd5b27143d09a2d90c8abd8930d16769aa44a3927967b2975a329bce9599bfb170e02a7994fb90e0b1c7bc7db753c065cacf820b80c6c1d585624c93ff14a26afe6245ad8a6b2c082ec871dd1fb10c3acca1898520647b8ef8c0e45580c87f718eaf18ed4e97ea1516acca657bdfa16493115e6c90eb998cd31e6ca095066bc75057b2b71ac2a75711a7820984ae9306dea825c80f26a1ca6c686189c93550d931a1f73fc3ed0341ea703c033bb463c6260097c54bd17996a82abb0d32010cc53d81b7b7052b86abb6302b57d6a34895d09840b3b6a50c9962dc248edfcb328e94460d3c82819cbab49a79f742a86e85577ec995a025fde616fad52c4f092bd89286297d8a8912294faf7c959ca392cd40989c92b8229ad3ec91d352a6bb7d757d3709c5810b40157cc0fe006bfe843419b8a1d792d00c1505e0a63b39c7c2ca2c96f695426073ebd50283572bace67c01bb7b27b09be59e589bd60acca376a8630034cf87e9d49411648a1b05c329af92cb29942cb2369381c3ef761a02f8c905f963f0b08514a7c1302b4bac9f261fa37855b67250258c003e5bc9ad07035e667bcd6a537f35a0756bb2801a0aca56576d72f3a8c0c2f371e5aa036af3a987bb550ac06980bea73b938ce91715a4b19620a08be52695abcb3c833eca2824b60de483810857aba0a9292911c4167159b023989d061ba81c94df979917c72c8eaae518ab0e46ab8927b5b9db690bac6720667baf711a73952b033abaa59d5c4ccf676007044e26c2bb31b5aa2095f2da9724570cb04174e9ac174216c1390a687c60b6c396aa48ef849d19234f36886205b0b28250e7803502565523d0cc0bffb78efe64dc758cf3c93bef42103694b434c4819f82bbc42ab45ad827287a560ee43600b87443d8bc91ac5b15fab2701f05577c32678e06790808d4a6965c30a0915ac8fc7950b274c428a43650003beee2726bd31a09de14e892b54c2605269b8c22f146afe669dc9c4775d200aa9534af5612ea736b01543788b13c3fba608ae90aac0da9335e6c115fbb1d67938b86849d5087a87f3437ea29d7b899144fc3e739a4c079628597c618b554468f56cc6745ff6500d3118c55a8171e42b67ca43ca32135672b22286f78d0485b363d63a2ec737d2aa98ae602d3c485814d2c195db5d7bea8b3ae5470ff7a1e8225f82d565414c6b59379cc5b26155f682f6098795c52e3e8acfed87743737c1bee0ba875a95e9509d89f3667d741cb3aaa989378a2425a0e5f218c02763de4345a208c5bbe4949a506dcd5b01c5f8f4ec5f5bae6946c95ad7fa4e1e5f80354b5112d882796092029150d5d621 +private_key: d0f6234ea63d21038094ac3082f06f5dc2081b5a6083b00a59e5490266a351259927ecc2855c144a83871475277f89311b71436ca835797a1250945a9cf23e041a7020e0cc3ad5c719c9707a6b823b3083351451fa94a7258986c05421e8c98d6e0140a8c171c1116a5a6939dfc95308e8495a47c2aab4b4d30a663e005ca89273b3fa6bed9475bbfa3a6526673d2b4428f01a8041377dc04b9d21618ea05cd2988070c91e95f489b76225ac396de3562ba513b3f23b9809f86eedd7bf9a29a8cd856587eb558772bbe847c2e93497a226080df9567e3a6b22c513b1523c5977b1a1d573336869ef2389b37c3867a5121fc92a097c9640bc996e2845514b04f1b315eb0c7ce4a0b0b219b9c0846cb46c5668796d83759da3a28348f170c3042a86846b78ac7fa5e5c831c4bb953ccdf6821bfd674a8e775a17a4429a197c910b0163454ec3c286cf94ce7e9562f67797896927bcd1b07c1c1b62714a7261ae5d9180473120da730c5e3b8cf1b8b9d9aa54d5392d5c695bd84badf3e20ceda5bb15c1a1c231878d35267bb49571a2216b067ba7515b3cc2661bc8742c3a8616436d117a53e6c96474fb67f0332a261884adb452219b52f31545550b5520c48da1acca388bc35aa120e05433ea1c31b35113f9ec2828e6bf63dba38afb0ed144015c3bcfbf221af1954f5d95b02e3b3df2ea8cfaf09f152987e3db11aa112fb0270d69fc3ba8e26ac30556340bc630c60af699171dc4914daa5fbe81125941982a900a1155188a7a55962639408a2856f480fe22830305078c8785cb9591728a47b0043d0a987a498542f31a113ef0a2ed971a8fb2aea9b334e5354b901393c5a140b05a72e54c21c4860da23019edaa2d0b8680e4379a7813b07df36969e22ae2b4102132711a63171c8bb97f30a599552bb8b902cd9565ba1b0cad788ce92b85b7a468b8348094bac38980981797c80032376da288df3cac31f202f3c3279882b4124761d1c02075303f6f1401bc4b361dc156a417028e56a2822bc941c7aacf26667b100f9bc003398866e9d104f9090c46e23c1d249cfe4619059b38a9012db2d8833b9c96cd40945b83be73b16fe8e53f5e69612f488c7d0753856071882741d533adcc9ac1323513ef15bfae06761385a651994085ec4820e75e7694c5b2423cd12a3b0d06a7194b87055b973803899b4492ae8c6e006636e3a21ea9d872b13c9364e208e99c2c74965215d6290eb96a802a1c836c2819772e21457596982d72e6491651070f1cc7e6861d5a7a01bceabb0daa0692321e9f49bffd83a07caa9a15453831898df4505cf33899f4cc81ba7059d592690d784263074060155c4491130fb9159c09028ec559c4169faf663af83c8d82db07ab08213b1b97607ba0dd50962966683b014bf381be25da2ee32057bb55562a6197b3d6555570af1107ac025cc8ffcb3f4ca17ea33ab0cc792bc83b4674f0014e3808ea128f7e3cc01b4495a0b72846938d23a32eca110e47b17c7db043340a79f7d521407cb0da754b59f267721c63d46c5c4fc58d88f75426a00914dbb3e98246d1b2573bf59cd65222e5939c34b25856625916c28c9cdb82c5643bd13c9b8a634235f1badee54aa3180c1c2bae97828d8746affc737f5bda768ee34bf9fc17618164f59b689f094aef337ab0f56840dc569f20b313647b87c74154a4c6b79968b29627eb067d2918bed7a94d24163848830463a1088a60c49a7c3fe9579a58ca4277a8a75fa7c4a734c2917a98e540b5405a3699949fb66340b36c449b685a1b03896df118a73213bb404cf6daa413134ae2a5594de4c98789b3f5e93fe9a51395d22f72211429252489673cd7668d8cd48b733a472a2736b82ba3dbaa0757b89debf5883909c82b7ab523e2aa6d0156dc2ac8c9f6352f038e4ff045f7a81a0f026881a3890425180e9742cdd0c6a7129a163338ec0ab2ac4b7d80145053ab101ff05f771568a724cee02741a604c92b53485b617c8ed24ef14a2fc608c882c59d9be5717e444fe347b0cab7b07f4b5d405034c9baacae2c4e844046a95275738966eb87322479043ed7083cb2a60fea71019baf85d3866a5cc3a8b93f09260b5533819aa7b6cf0bcec07181b6659f469533b3419f32129fb33b2e8166aa8d10acb4f035d7e6226d3b096a7383933c0cb6615824885499f79dc06b5e874203c3349b2c3b27b1f1012e52bce9968496c068b6e6c7244722621a1a44349314845b1d8831d9821eca386eb8fc254587be5dc529438485b3fac44af0613732509cf225f5c127a4056cd5e503eb742cf03154511969e7a743834708d71579e9ca4a4e281aeb177ef50cb0db826ddd17873e63a182e3b001f659ea3cc73cfaa5d7d7b5e7e9cdaae04c9944978dfb7ed34248d976190cdc0184930e25c6306312180a0b8758395d1febae95b22e0945c5fe265595a9ae91616cf9f35b588b7a02f66d8d49800c50017c7272bbebcffb10a16a5c8560130d96fb0c241a286ba949620ab83539b83d862ddce2507ec4b4bc4330c27517172b43bdf09a5e6a5fb684166800372663544859acbe07424705809587a08dc50fafabc1b2f9486ca6415266c502f7b998dcc947c7b5f5584cd34cc90a4c385f30a2cc051237c6a85d4a5571305a5182c970b9bc87268484f293464545f4c349e8b2ba3e5b4a5e7c42237c0e6e1b7722b04e3d02a27d0597d7169a49e340a778179a924a1d31c0c3d53bedb46868a62ae17847f130ad1478b8428b09fd71b028f1933803318af78103723ae7e1185801872f847753862f9f72323f980d6ba9744cb6c079341b02443b52e4becca891fffbc6084ab40bd17af7c6b2b21c09c170455c52c4c7093c44aabbb1a0c1d11b12070894f7649112f32a98d976c72291100a3bb4948f928771b063839a94a614227587d1a9bd25479bd8bd06e114894bca10814f0c516e1be41b81ccc6044a8f3654679df531c7220982760aa39a4e982ba3247b009d405c0b50969c694858889b4058089631c57dd1c5fe12acd5b27143d09a2d90c8abd8930d16769aa44a3927967b2975a329bce9599bfb170e02a7994fb90e0b1c7bc7db753c065cacf820b80c6c1d585624c93ff14a26afe6245ad8a6b2c082ec871dd1fb10c3acca1898520647b8ef8c0e45580c87f718eaf18ed4e97ea1516acca657bdfa16493115e6c90eb998cd31e6ca095066bc75057b2b71ac2a75711a7820984ae9306dea825c80f26a1ca6c686189c93550d931a1f73fc3ed0341ea703c033bb463c6260097c54bd17996a82abb0d32010cc53d81b7b7052b86abb6302b57d6a34895d09840b3b6a50c9962dc248edfcb328e94460d3c82819cbab49a79f742a86e85577ec995a025fde616fad52c4f092bd89286297d8a8912294faf7c959ca392cd40989c92b8229ad3ec91d352a6bb7d757d3709c5810b40157cc0fe006bfe843419b8a1d792d00c1505e0a63b39c7c2ca2c96f695426073ebd50283572bace67c01bb7b27b09be59e589bd60acca376a8630034cf87e9d49411648a1b05c329af92cb29942cb2369381c3ef761a02f8c905f963f0b08514a7c1302b4bac9f261fa37855b67250258c003e5bc9ad07035e667bcd6a537f35a0756bb2801a0aca56576d72f3a8c0c2f371e5aa036af3a987bb550ac06980bea73b938ce91715a4b19620a08be52695abcb3c833eca2824b60de483810857aba0a9292911c4167159b023989d061ba81c94df979917c72c8eaae518ab0e46ab8927b5b9db690bac6720667baf711a73952b033abaa59d5c4ccf676007044e26c2bb31b5aa2095f2da9724570cb04174e9ac174216c1390a687c60b6c396aa48ef849d19234f36886205b0b28250e7803502565523d0cc0bffb78efe64dc758cf3c93bef42103694b434c4819f82bbc42ab45ad827287a560ee43600b87443d8bc91ac5b15fab2701f05577c32678e06790808d4a6965c30a0915ac8fc7950b274c428a43650003beee2726bd31a09de14e892b54c2605269b8c22f146afe669dc9c4775d200aa9534af5612ea736b01543788b13c3fba608ae90aac0da9335e6c115fbb1d67938b86849d5087a87f3437ea29d7b899144fc3e739a4c079628597c618b554468f56cc6745ff6500d3118c55a8171e42b67ca43ca32135672b22286f78d0485b363d63a2ec737d2aa98ae602d3c485814d2c195db5d7bea8b3ae5470ff7a1e8225f82d565414c6b59379cc5b26155f682f6098795c52e3e8acfed87743737c1bee0ba875a95e9509d89f3667d741cb3aaa989378a2425a0e5f218c02763de4345a208c5bbe4949a506dcd5b01c5f8f4ec5f5bae6946c95ad7fa4e1e5f80354b5112d882796092029150d5d6211c931f81fc67b2316f99db7f55d799363828f7de74b5e979fd7620c7449132d44f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f + +# Official test vector 19, seed: "822cb47be2266e182f34546924d753a5e3369011047e6950b00bc392f8fec19ea87c26d8021d377df86dc76c24c5f827" +seed: 851ea90fd3854cbf28fe39fb81f68e4b14345cf0d6eee7ec4ce772513df8410d1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf +public_key: cd22ca9cea98bcd401164c349b35c8b36424f294b11ec7c7d0a3953fec20dbb283ef99a3452496d9b86513e33633765c10b45c6612bfcf590f6036a711eb3dead00067649eedd14491716caed40a3db26d7b00c6e8396858c3916397166d24370b033ee54c3d3b85b5382b1f3f1220325aa2f804bba473cc70b15d443548491416bc1698a5a9c39dea2ba59171f35569ed6946621c1b3647598becbcbbc72a0781c77baa5ba128b1b7053b2de9c122b8790125c50e003a119964aa48392a96b01d7675af541b46b4369b10c38a2c68ee5425c5f6293c2255a19a7cc2607774d342af773a22c3943a9b411bd69a92e1c756993a1a392698a93d5f4772c374b549c15a0bd636be908641a7b8ed758e3c341292598b82a7976f45ae4fb0bc2af0352d92751a6a5e5015444d3b82cef064d32c3bef9b2292571092360e1806b5e5a892586029ab421ed247afff408f7fbc9b5cab930a6896b1250ab1c58ac4231fd6d0bd9b990b649028e4c28e435093b36462e28940fd2723e7bc20e59914e1c812bb3aa912318f15472a64b75c12ba361b2843751611183870a6028496195cd5d219698a89dbcb2c1c06ab2bd5937c1cb5a2da7774bc3facfaa028829f3c3c9bd6c584eec882ccf3ae1b00b1357692ed377f09712a30fbc73f17c0bc462a88e64de262c24e7a7f7c784dbc5b615ad57e58484db23363433a4680126c2eb5b9152c162e3277c0bc4da9693b22daac51a1c6107242b7428ac3f21f2c3968810435f9aabf3c65b7db7b37361218b49b9c76695b53c9a227963ccc1b60d447b3b7d15765bab6b3b73585f26c2f0862c927b6f23624f360a4f6c537b09563adf7a9616a4dba03732c707fed845c35c660b5317ef652055843cbc28ac501dcb493eb5d6bd5c322ea2f2a8b61418b9788482f51b8135f4c1f1173895057ad3218387d527133890fa3a9425d73ce03e1879b85a5b120285b823501487d5c555ed2b7bfac82762b9262d3d4b3b64736497899a768903750bff4a82e6a0097f3c230dba5bcb0ac95006852bf60480d039d1fca9fb758b5562a384160acd9c489a3b4bdbcd96989c57eb7a411ea3540ada882aa567fbb340b518477839925577c780953bafd0cbe2803626b89cf1c3b3056c4bd78c88818211fc836765fe813c7b18e5dc9725978ccd9ea8c7e1710ddeb883ad93e2cc987024b817c30908ab1ba7a658399dc931a4ba4fca5a10398289e9718e906336b148c328c2930b843cd4ca0d4735b633618e8c1c327b29596c24bab053867747883231f11005ed6987679544b51c45d42cc209b7061a91a0c82a92c943c85c149b79c1a190716c03f156d3c22ad27e7b8b87962c8c5421d3b01c7eb2220452b22d813d2180e7a38be15b6976aec7659d25b60d3c780fa75c3654d7f9b6de0d33c8c28c97b6b95bc8c2cb517b497f73a98c41a64f312fff48fcda7b07e86a8136c05720a8740d866bc024ca1e22d43f6470c8a38a7301b3ce74585e6ab8b899b13ea39c163ae79e764e0b846fcd57029a73708091f053212c6f93f1173a854b26d7e49bfae38046e43193b98460d171fb48283e736c7a1651deee6272387cf65ac876feb4292bbbc9200981299c9bff13690d6c2017bbd3e257700a111fefa33072ccc8e952263e4867590c79b558187e3441a930964aa3ec0441e91e7ad198cb6e8959a35051ddd972a43a020d0f968eaa8696b9686dab01b9f9b8095522a7b411d486444b16ac4fee7b245f50ba1a26d81457b802bba966ac8eb300cd92773ca26908a91a2e23b21b0116dfcaaa5f4a57514dc2ad736cc788904c29050389b80cafb0d71b131b567551f6a2e16390c55234e5ad50080ea6268047618b333a49795b4233bd07530a89c275bdabc4ec99d84a812d9e20e2c27072196138386ba42cc4998314905e070ecab69f2d12aa204a32ad28658da3fab69223521b81461312cf88700a49077914af3c28a2f544d608209e24cccfeb46ae13bb90e8b86a4bc85d5f41a9ada7a957ca8763acad6713623ec20e2f199b1270966432bf2b8cacec65776d8a63a471cb4a7c891a01bc92c8c28719c3ff9a8a7a350d9454729d2ce932982e94bbf30b298b3353ca6c459ee5017fcb724ff430a9348b9fb46abc86374b245668ac71096501a7f3313823c5749e01d0e40444111bebc0a6858891224b08cfc8e74c41084fd5c03c102480537 +private_key: 2b8c2ea5542d9e3b90c417523f690109007c5aa97940102ce5ec7bc9bb471726b202d02e4f871062c281d2a095c4cac14d6b9ade99421d2599fb696942f6b74d349bc23a2099f687f1a3b1db3781095615a341862246b29500cf6c3828085c8f72c303ebb9773dd90c37d1001bd70e1ba70ab99cc2440a6d8b841314e84c71718c1ff802897abde7694d49e416090527a600b2ab4578a378b0cd9b52308403ce5c5ad198bcc6dc0b3d5bba010ab9d5c18ca3210111654b47fa504cc2b34ebab1a9e328fb963b22491d5dcb13b5f46b3f43669101483e95aa0bfc83cbfbbc6656269d900138dbc252206fe781b007b3c2a26740643b0b9e6cba3d83a3546b112baa3113fc5ce4e94dce8abb1180564c6cce9583a703da022d20a14489426e6693ba2710aea52761173f5f5379ca711df6972e7264b3c8d2805fb08880a6420eaa1a060476e792562cd3cb8a768d2ba32402b2659330b7970a1ad3782d670486e4e73a6cf47938549a8246991d205f4a4bbb8f977ddb3c8f724110ced267ce681e1240ae0c9674c4e20e4d82194a1bb835e1b56166cac3714e3b42a60092bd746665e253933d6786dfe6b95eb9a98f7c299fa9993d803755e40ef80aa7de893948b5bd65366288a7000c6a5c3b7c5b00d7102ea95f490bcda8d6ab38520c30e231a449a69bec79cfb80dada50739f83a85c624a1458c135875a803041f186fb6c50d2c0b657b59377bd2aeccb343b56a7a5dd2466fd902d5b5bd3cd3557fa31465fa8cf9ccabd05a24ad290988355ee1318789fc81e4d112cc797dc5e087c0ca19d5e8b85c57463f456868eb585a188a27e51858f8cc8c24a9a1b47b38934e07b92529c0722b98ae0c3ba8d7f329e19c0f6e8092acc7c617fa145c37bb477501c1919b26b041aa6641362a480397c5e0441439545deb6b5c47d01539337f523ca078c6543ed9984aac812638a00fe930a07b56e6859a20f0ce54617ee6b8395867319930583309a67530aedf8018b602536d33c98f81b7a7b6a252a00073443c9ff4bdfdd87b3513536d93c908188516749a28a92a410919a2c803196b1e4a533cf8133bf97c2f49fbbb1cd19e2f3838f3d05fc8e5c11cc602ebe5a2a5187ff2a74025a7af16075fdf88374624305c191116c9bf59dccf9fe89e86f007a6e3c0b0dba7333bc4c9733214bb233e05c8a033ae93e85bfbdbafe31260e8f7a5a1abc9da303fadc8697a264012900fd1b713f8da7ac5ca8f2206be63c31c5fe3c6f6188deaa31d89502aac2ac5052b982e3a75b385ad353c9c035c862cd5a6290076c959b11e6a4832793378b9828b0236e016bf6817511dd9a86022cce5182f660013f8b2a036a993c90740a6a5ae2779724a60b872e5bf76c78a6d95997397bf1092b2827924db015caa204bf23710da941e0d3a1a05458ee4386404aa5ec1cbb108925ac4703048a09f37814c78e63fc4b31f2341c559222a6db43d50bc12d8c88962cb7e9149c009414c519721b63970953524009b8be2ba1644c787edfa0d9f9c0eae722037f0546fc96cb333a062206436dc21f6806099bb5fa43879e2d433c9e1be8b073076b1034d062ad0348e6213176960a90b7ab4dea8adb0ba41c73b2c4be4c0a06200e3a975042346b52244ef5334c98189247092a19092e8833ad43096e4b47c50668356ec0bc5ac212e8a1972e40e7029561ad20e33ba29f97cba0e3153b338a09841bb6eab67fce41a86265d6a2899d1b7bf4416ad1ac211f7969914930da09844a2603989998542ea9ec24c0a5d8b01fec38c33e84d51b93c360a4d98d439c593063a3747fb9c2eb16439ab7035490a99793939445ccd33c4aa2974aacb21873a7659a98bb67668ae47548ab98b336e2103323522dcec9b59c80ef0e5c935b697c0ac85da18766b39cc1e8c1319567b9560109c2c2f66a9ae528a889f500e8e11b9d548690750c54ac1785bf998be78cc935bcce9e8185efa9f009791d4a687f131309a0c8d51105d2b650e295abb3ec29f1b421063148638626019525c844974f12a9add84c72e324ea3698bde2b33de8770aa65674f43b861e28e53e54df35040a4a91ac6cc4867635ccb91680d943a4782af82d17c2fc8a3f5eb2af0a1525a29af94d2cf7c8631f95862fce1a401e175de0c3c184072444c10cd22ca9cea98bcd401164c349b35c8b36424f294b11ec7c7d0a3953fec20dbb283ef99a3452496d9b86513e33633765c10b45c6612bfcf590f6036a711eb3dead00067649eedd14491716caed40a3db26d7b00c6e8396858c3916397166d24370b033ee54c3d3b85b5382b1f3f1220325aa2f804bba473cc70b15d443548491416bc1698a5a9c39dea2ba59171f35569ed6946621c1b3647598becbcbbc72a0781c77baa5ba128b1b7053b2de9c122b8790125c50e003a119964aa48392a96b01d7675af541b46b4369b10c38a2c68ee5425c5f6293c2255a19a7cc2607774d342af773a22c3943a9b411bd69a92e1c756993a1a392698a93d5f4772c374b549c15a0bd636be908641a7b8ed758e3c341292598b82a7976f45ae4fb0bc2af0352d92751a6a5e5015444d3b82cef064d32c3bef9b2292571092360e1806b5e5a892586029ab421ed247afff408f7fbc9b5cab930a6896b1250ab1c58ac4231fd6d0bd9b990b649028e4c28e435093b36462e28940fd2723e7bc20e59914e1c812bb3aa912318f15472a64b75c12ba361b2843751611183870a6028496195cd5d219698a89dbcb2c1c06ab2bd5937c1cb5a2da7774bc3facfaa028829f3c3c9bd6c584eec882ccf3ae1b00b1357692ed377f09712a30fbc73f17c0bc462a88e64de262c24e7a7f7c784dbc5b615ad57e58484db23363433a4680126c2eb5b9152c162e3277c0bc4da9693b22daac51a1c6107242b7428ac3f21f2c3968810435f9aabf3c65b7db7b37361218b49b9c76695b53c9a227963ccc1b60d447b3b7d15765bab6b3b73585f26c2f0862c927b6f23624f360a4f6c537b09563adf7a9616a4dba03732c707fed845c35c660b5317ef652055843cbc28ac501dcb493eb5d6bd5c322ea2f2a8b61418b9788482f51b8135f4c1f1173895057ad3218387d527133890fa3a9425d73ce03e1879b85a5b120285b823501487d5c555ed2b7bfac82762b9262d3d4b3b64736497899a768903750bff4a82e6a0097f3c230dba5bcb0ac95006852bf60480d039d1fca9fb758b5562a384160acd9c489a3b4bdbcd96989c57eb7a411ea3540ada882aa567fbb340b518477839925577c780953bafd0cbe2803626b89cf1c3b3056c4bd78c88818211fc836765fe813c7b18e5dc9725978ccd9ea8c7e1710ddeb883ad93e2cc987024b817c30908ab1ba7a658399dc931a4ba4fca5a10398289e9718e906336b148c328c2930b843cd4ca0d4735b633618e8c1c327b29596c24bab053867747883231f11005ed6987679544b51c45d42cc209b7061a91a0c82a92c943c85c149b79c1a190716c03f156d3c22ad27e7b8b87962c8c5421d3b01c7eb2220452b22d813d2180e7a38be15b6976aec7659d25b60d3c780fa75c3654d7f9b6de0d33c8c28c97b6b95bc8c2cb517b497f73a98c41a64f312fff48fcda7b07e86a8136c05720a8740d866bc024ca1e22d43f6470c8a38a7301b3ce74585e6ab8b899b13ea39c163ae79e764e0b846fcd57029a73708091f053212c6f93f1173a854b26d7e49bfae38046e43193b98460d171fb48283e736c7a1651deee6272387cf65ac876feb4292bbbc9200981299c9bff13690d6c2017bbd3e257700a111fefa33072ccc8e952263e4867590c79b558187e3441a930964aa3ec0441e91e7ad198cb6e8959a35051ddd972a43a020d0f968eaa8696b9686dab01b9f9b8095522a7b411d486444b16ac4fee7b245f50ba1a26d81457b802bba966ac8eb300cd92773ca26908a91a2e23b21b0116dfcaaa5f4a57514dc2ad736cc788904c29050389b80cafb0d71b131b567551f6a2e16390c55234e5ad50080ea6268047618b333a49795b4233bd07530a89c275bdabc4ec99d84a812d9e20e2c27072196138386ba42cc4998314905e070ecab69f2d12aa204a32ad28658da3fab69223521b81461312cf88700a49077914af3c28a2f544d608209e24cccfeb46ae13bb90e8b86a4bc85d5f41a9ada7a957ca8763acad6713623ec20e2f199b1270966432bf2b8cacec65776d8a63a471cb4a7c891a01bc92c8c28719c3ff9a8a7a350d9454729d2ce932982e94bbf30b298b3353ca6c459ee5017fcb724ff430a9348b9fb46abc86374b245668ac71096501a7f3313823c5749e01d0e40444111bebc0a6858891224b08cfc8e74c41084fd5c03c102480537c11d5e63a349785e242cc58bf790539d3adf4844176afb3ade1db843a9e6ae9f1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf + +# Official test vector 20, seed: "81401db81138d6874e91b7c11d59596e4ace543f5a3471b6fb00999221765fec3ca057abe20f03b2d59003375fd71fe8" +seed: d304c9389cc973477f169788abcb9d511f843219d246a9b587822f422a70c2386590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 +public_key: 17a1c1ca6b5b6bdabfebac339a5c121792056c508ff99588d292cbcc1760f1eccbf105281116a623c600e87b4231c2a94689133ca16b6d99796700b917262f4d776d10709a26123a5af9af5ac7455882caa4d220437271aa5c9e30877a3cb263f9048a483a826774c806941939c44274287b629b2bcba56f19e7aab2b8c6a3f72bbdf5820c774c48a151c381a5a75c27337c60c406cc1ae36a3eeb25d91521918a780d75a69f94aa4005771a5c22ed4466811834fbb238e6351fb055a70c32994442297f273752db6f03f445804c0cdb380f838c484c50250bb2c849e308d8f608ed942442e85bae7cadf4c6c3a49cc1cc107ff32154e61a99df1244f8f956c678ac4192aba83b5485f284f1510b816c26d16922412738db9796cf6023e558741c7ca293eb35fdd71f9175b838377fff3050d447a35e208027881406446061686621fab300755a15921be9d24b721a50976884c76ba928405ea9e6b7b357baa68674bf412f66f54a454c03fc2a64b1c1142bc56cc535911efa578c5a097d8301836cc641e078bdf1245e5359a0d7ce3a87012d199880a3ab5d61753488782b9734c26947b6c925e4fa6ca38475905a9f45a88221db62b762b4c884344cfc7d81e55fa34293dbf49e4e8bce0bb95408b32bec404a245c153042a3ebcbbd8598a3f9537e1403319a5cc6a006a37db5a3fc4960ddc5381a1b0b85657d41d085309b47c9e21a0641700a14150a0b3e00823e76c6bad867c6f3e6568eb840b9a9c4f4f45d35e733ae56377b9c2e008b66f9436b59320f3107aa43dc123bc2a89637637dd3a26ab0abf355c0fef642632523611a196e2402ac16c38562a0f8c65b6a0485dee1492ce2494b7230422abb2d705333d4c3f4e10b28d3c4b3266949ca4b95062e3d600caacc77655236181208c0dc4487063ccc528961661dc0e474bdd88faceb2ec448c1ea8a6f14206a33195e30fa4efd463b7f438ecf4ace66090bc268b532b251d783bb380380e12a79ac044bd72c0d9478018d98b6e4e36f234142347b919601521365665ed05111f39698c43f5b62c047f1ba861a91a1e29f6bf1b8ba376280db89feda41195a9564d17c73f4305d73cc6a606530179029e192352a5aa9e58f4df6c0c9d8846da4518192bc360544f734340c9b072cf399806906784073f622ac18c766de49a65df56b6ff99a6e896245c7aa5585723d1c6981a0ad2fc09115b8b8321941961959a8e40b37c24a66125810223dcfbaa093510bf0b9c631e65021d64bae6bbe847c7576826506f73493d19da8d47f07898d179697aec0a1df3cad227cbc83c33c6b72b450731d943041f79136d34c7f039558468c3de1e3021e509a2d898ec1245fa9a966ba457e5894691899521362b7f2d607578b01f230365a84c7ae1ba12ba53c1e216933a34e53e75e252c52087c615fd5ad705743494b10042b033468af0016274df94f2e65048e9a4595a4b541b082bcd96e6d90a44af778077007c069ac9673cb4a559820a2a9992c4500da89f5acc48a6bc9ac1922be9c211f36c468986d0704121193ad5e2732d693c650d867234c9c261525325157fdf94d89eb2da1949a627338c0d07b1cb9cb45d95b64b38a22b029bcb87c928c7c97984d760bb11b9666271aa914d3cbefd723d40928ede94af17516ef7a72c1fa978584111f8b0903c544dd7c81d94a3b8502cc08b21cd89c8fafb94d9eb57f9061a51e9aa6f3860ca3da018dec14d46981062b8ffd542747e7c83cf815989117ac14ba1654be4a92b396b01fab274a082609ed9c685f125fdc4611cc8c00167a8be5f28f0867397da186ae68a29701b4c1885235faa006d45d30b990d13c479fa5b1b76ca2406a46a0c42f9c63cccdd187f5e93b16f20bb86b5251b00842d28e58c86dbca41ad708a62c28846d0c983dd60dc4f5b018017fb1276eaf839a2898a8caec69f11037498c5a621c05cdc5bfc9ac9dde250a7c4c1531b813b3f84e70a43baa43950a9cacf07c9dc6c8b8c4a660aee6ca67159a00010a3414c87fd94ad197856d9940ddb47ad0d8700f635e58408a5af8213fe4636fcc594ee677b3f205e3552202ca8087922402d24ac4f42fdf5c99ba1356f14cbff297192a40b48abb531912b8f853a07bd241b19aa1effa784e5746905449b1e7436a79a28e3f712507e5bc0d026037001723d3443145bd066cebaaa3d000c9f0ca +private_key: 04a39f7840ad6e0c41084136f21609602a0a00cd8e0fe0158c1c3c27845ae6219abcfc95e72814a9776655841e46491a9ee342591133569123d6a09a54a8a253a49af9b27103d196873622ea93bd17da439e88226a333da9c525b856c7ed53593a002007235d84225fca027493168f9748c4384004d873abe1bba69212c7fc4ca89ec745ffac84b99c8707860ef798bc1e7c4f2f0344542054f3c46dc72a6f9d2b9303e6cf114040e136087b66af5fb47ec6a55c11c02acca23f306a7221f3c81470714a472ea822bd387cb29de9ce4bc96655d63e1811c93a740e148c994e149554b24edfcc6b4878c55570971d95576acb6943c6532cb2101b4468cf578a99348634836174792758c350651224a2d22647446f67a056180ab2afa34ba27a76933c9f4f3447c0ac6b605b144a2c9f2c626e8f434b4f35ccf894327c53a7dab9009d5a9a4e7bbf0e6a22d4f120b0c42ae4a7c0ab08774cf8a33e069d4860655cd4bff1940a22314356e8525213c351688b1a725a673918078031ec37080956973266811dd8ca275c9a75fcbb7b9891c26a3e343b36be5273ec946f42f70865bc48d6238ad42b616c11b708d3551d3b9dc61b653e06b1e6709bc115256687af92941b2fdcb99948184b025239c89052765b3d63b476c3a4df499564ec0749a03496040029da776d686dcf9984ac9354c2c69f2c3c8d3d5774201b7ac0254a891871847acca5099f89733fbe2a4979dcbc26f5c38efc5129e083f508441dc6c7eae73b1e7958671767968b180a3b34343cca94289fe0a8788b1cc8394c5710b9ba6fac1cf3147db32c9060a9cf2d056734031190b53ae17917e40907b61826527c277344c8bc475451414e00e3cfa6c15400cd5a6875c7b2820702706566a00460acbe58128e4c869095160fd0dc303ff8ca68a8947e3110c626c707da0344717297147aee5c39838c0f73ea57f70308601ba55e977bbd7b681e0c4c1cab818aa156eab24f74c2b66ffc8959c3617f92941f1c0935d89702c71f4d76c44402ab92310904504ab5f9a002c321b411bead73a819e02d006d8ac368bb89231af85a97bb6b0e23ac2ca869306e9239d808cb24312c48c4624c33537a8092f6e8c147900894f3838db9b0fc9419dffb6e78127e922042fe4a3c20e5c48e478bda52a2bb0a85612024ff5c92801ab1eda82de8aa6442249ade4b6bb9886015035d436a855cb495f6885f6d3084f498affdb17272e127bfc3bacd3831d06c20569b92fa9b90278707c995b2db1b63a423a997e37a244c763394b9b28b3d3538c981da0be1556696a7330fa83882c1b7da6668f1fa5841ea5a984b4f6f4869356682b9652a842859bf079238a83ee3d6b01610270488247c6b5e63cb1e4336773231b6dc6bbe6888345a0ab5cd27091442786f2313c16bab398356f1899554c69c4fc09c9a720fdd8bb1de03c80e5241d25559fd7568b321cbffec8f619403662a61c696ad90346bac979a7e446e41d5582acbb5e0f70aecc4330a550854e60eeb5290198825a1f01915bb094f10bc0bc29572430bf8cb8938a4c182698557ca49ba9b7494419640792c3fb31cce70aa2ed24830b65efb3218052c539f2539dca01532513717c7bc552179957671275327ff44a79a49b92f343a533baee4e06caff23d7857ca540a78f886be136b3506bb080ef563e8a3987c083b4b5cbef410ab20213af7807d3c52c58c852dd48c4060587ccf259f00f40816ea86edd276d1135eec70b990e5c11e97c470d97ce45a3a105a9da1ca768166c86c41474be92535f1bcf7539d09598e773aadf39a5b66ec79b360699e953bb0babde4f0c707b99ce6f5075217a054407072b084b7546bfa95ccedf1666746bfe74c674fdbc80edc35b4769f5fe08632aba9b5398e79dc45ad014a8ab539c157b672eb74757c6632e6c922202590a27dd1c82527a36287e2ab7a327a264abd300634226149513980b9dbca957c1560a6c32a20328b6926c843b53c635719f635edd90f3c5313ee1766563a7a9ab6b011462558b229fb913179a438f3b5b2f427adfbeb90f73a2ceb190cc6dc713b83afbd12a54b0c170cf973367b11db2cb3e5d880c169041732a276b93056e4632deb8606c276a0897116a0829482bbeec870f18c247309759971c4e1702117a1c1ca6b5b6bdabfebac339a5c121792056c508ff99588d292cbcc1760f1eccbf105281116a623c600e87b4231c2a94689133ca16b6d99796700b917262f4d776d10709a26123a5af9af5ac7455882caa4d220437271aa5c9e30877a3cb263f9048a483a826774c806941939c44274287b629b2bcba56f19e7aab2b8c6a3f72bbdf5820c774c48a151c381a5a75c27337c60c406cc1ae36a3eeb25d91521918a780d75a69f94aa4005771a5c22ed4466811834fbb238e6351fb055a70c32994442297f273752db6f03f445804c0cdb380f838c484c50250bb2c849e308d8f608ed942442e85bae7cadf4c6c3a49cc1cc107ff32154e61a99df1244f8f956c678ac4192aba83b5485f284f1510b816c26d16922412738db9796cf6023e558741c7ca293eb35fdd71f9175b838377fff3050d447a35e208027881406446061686621fab300755a15921be9d24b721a50976884c76ba928405ea9e6b7b357baa68674bf412f66f54a454c03fc2a64b1c1142bc56cc535911efa578c5a097d8301836cc641e078bdf1245e5359a0d7ce3a87012d199880a3ab5d61753488782b9734c26947b6c925e4fa6ca38475905a9f45a88221db62b762b4c884344cfc7d81e55fa34293dbf49e4e8bce0bb95408b32bec404a245c153042a3ebcbbd8598a3f9537e1403319a5cc6a006a37db5a3fc4960ddc5381a1b0b85657d41d085309b47c9e21a0641700a14150a0b3e00823e76c6bad867c6f3e6568eb840b9a9c4f4f45d35e733ae56377b9c2e008b66f9436b59320f3107aa43dc123bc2a89637637dd3a26ab0abf355c0fef642632523611a196e2402ac16c38562a0f8c65b6a0485dee1492ce2494b7230422abb2d705333d4c3f4e10b28d3c4b3266949ca4b95062e3d600caacc77655236181208c0dc4487063ccc528961661dc0e474bdd88faceb2ec448c1ea8a6f14206a33195e30fa4efd463b7f438ecf4ace66090bc268b532b251d783bb380380e12a79ac044bd72c0d9478018d98b6e4e36f234142347b919601521365665ed05111f39698c43f5b62c047f1ba861a91a1e29f6bf1b8ba376280db89feda41195a9564d17c73f4305d73cc6a606530179029e192352a5aa9e58f4df6c0c9d8846da4518192bc360544f734340c9b072cf399806906784073f622ac18c766de49a65df56b6ff99a6e896245c7aa5585723d1c6981a0ad2fc09115b8b8321941961959a8e40b37c24a66125810223dcfbaa093510bf0b9c631e65021d64bae6bbe847c7576826506f73493d19da8d47f07898d179697aec0a1df3cad227cbc83c33c6b72b450731d943041f79136d34c7f039558468c3de1e3021e509a2d898ec1245fa9a966ba457e5894691899521362b7f2d607578b01f230365a84c7ae1ba12ba53c1e216933a34e53e75e252c52087c615fd5ad705743494b10042b033468af0016274df94f2e65048e9a4595a4b541b082bcd96e6d90a44af778077007c069ac9673cb4a559820a2a9992c4500da89f5acc48a6bc9ac1922be9c211f36c468986d0704121193ad5e2732d693c650d867234c9c261525325157fdf94d89eb2da1949a627338c0d07b1cb9cb45d95b64b38a22b029bcb87c928c7c97984d760bb11b9666271aa914d3cbefd723d40928ede94af17516ef7a72c1fa978584111f8b0903c544dd7c81d94a3b8502cc08b21cd89c8fafb94d9eb57f9061a51e9aa6f3860ca3da018dec14d46981062b8ffd542747e7c83cf815989117ac14ba1654be4a92b396b01fab274a082609ed9c685f125fdc4611cc8c00167a8be5f28f0867397da186ae68a29701b4c1885235faa006d45d30b990d13c479fa5b1b76ca2406a46a0c42f9c63cccdd187f5e93b16f20bb86b5251b00842d28e58c86dbca41ad708a62c28846d0c983dd60dc4f5b018017fb1276eaf839a2898a8caec69f11037498c5a621c05cdc5bfc9ac9dde250a7c4c1531b813b3f84e70a43baa43950a9cacf07c9dc6c8b8c4a660aee6ca67159a00010a3414c87fd94ad197856d9940ddb47ad0d8700f635e58408a5af8213fe4636fcc594ee677b3f205e3552202ca8087922402d24ac4f42fdf5c99ba1356f14cbff297192a40b48abb531912b8f853a07bd241b19aa1effa784e5746905449b1e7436a79a28e3f712507e5bc0d026037001723d3443145bd066cebaaa3d000c9f0ca5955b9c5a4f2ca172535d5a32ef67d54f334bf726829082485a7b83d43b46b236590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 + +# Official test vector 21, seed: "30b5de5b73681ec08aaa03f6f2d2169525d25f4042a5e3695a20a52ca54927b85f8bb948fc21df7defc3910b28674994" +seed: 89a6e3be304a3518fb82b18ca730f0b359cd6ba90664a493fb4f8edaf965b9c3b6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 +public_key: 9ea32a494182483627849169e2006e9306448025229ed2c14ff825a43976935a8a14b8448d6c4db642a1726823a2053f4f75951b80b47056bdae61ab68402d4aea6ead635f2262082d71c4ff5c78e6a6345a72505e23064dd773118ac985e49e4d88c64dd894322b0d2a712f0cccbb506436c3f0bed765ad0b193ea520580be4c12cd65f2406cbe1fc9281d37bed1988d7488f3925244454b82982c49fb522a2f83a7d131d1cc65cfc7179f8a043da781959a815b5e45f6e0b37269c84237424fcabbf4dc16a722cb171984e48864ef70c0fe14c69ee385f15eb7191249bbe3a3888c50fcde9302ac5aac6105503589b3748938eab5614d626c6a301599b623ada44f432bb18e359c7b223414a34945786468628c6579f9b004185cb7590e22f94e83de26c6a9b69702f704041da3ffbc8ce5fc2367a3a97c4b997bb06a01b8964a8534e2f713c289a0dc8c072dfe4a42f305785a99c0dc898d3104e0dcc62c0e600253c218f0511fcd94bf78497b03a08efea8bf7fc0e45d3545df2c6d708435414bc00e64c76a523bc0ac823fb56da247da4643fd9063748b23128c6ce4316bdcad4bafbca77b8ea6c10e54ad063a1433333252311f68c676ebac53aca8fd70b9404c1cf3c979ca0c492198a2f92294ee5ab4a2ed15100f20e5eb948916ca7bac7b28fdc904ab1911afc19a454af45e6a265a726340291bac80cee679e009c02254a6c6130227464b2fbf2a95661bed8b348ae9c759fa53a4b429c0b536fd6bc85d5c96233f90ca3057839a47b068855283487c90a8088e271a3e33f5ae5695d044c4d14ae8440bf03b318549600e39cb9d9d58ea2d2a5e3d08a11484801b8167d4c5afc20c56bf970a230231da8372eab0f5266686b4a3da0ccc6b57cc81aa29053142cf0f35cf0c83282893c25983ca06606cf255cc1b41add5947ff9322a4c23bee47cc49656a8581ab5a99a3797798ea77a1db18c39acc97e6342b8770550212718856398878900d6cc9a5963a71432e5678a12ce86257b0b32ee751eb181fff62ad98443f7d79cc4f85bbc67190a68504a24a3166c588ac7b40fed53318b8b452d1a738e59a2c82442feb013f9b2429b6c603f71619f386118327eaf0c13ea30fd620222af064c61aa8d9801d53192c61575e3448b265ea9987bcc84ca825943a4d51a9cbb5e76e4fe88cb6d92215f60b0941c46b89a746cc96c74cba7b097bfcf27533a46fcd928f49d670f85179e6b598ec595cf39c3554eb5f93ab9707d4a559069d24a4005cf28bfeab0bead80363ac608965141e252de510562ccb5fdf94c30da1247ddc4c80554d879b62d0b49eb3b21ebad10a50794545577be4eab070d30365dc9c34eaad1163b251b223e8ba45dcb77dcbab0a07fa635d8b841179a354304e0d249dde2319d85cb724245877a549ccd8230fac8721d82e8a2182e5cb63285ca8a0d049cc7160d7116d5c1c0127a9ae5fc808eee88e340a57a80964b21a353b08bd35da0dc1d7020d6cbe43f49547686546391d94b9a2b2d63b23fb2fb8c30f7ac371b3a80aae0470d93b610ba1681af1be2871a49419a23610843bf940804483dea0ad8d609500d8aa2426cbf0ca5aa353668a7151bb54c7c4e4ae3354c598cbac6e90949cf6b79a941c541c652351306f810494dc0ae743cedba7904d34c2e0b32b603606e33156bc750bbc477313219a97e184d695c701b2009aab8806709b8d376b9cb6a24f3b6d0a4157398c740d08809328aed069a52fe77cd68b9dac62cebe3649cd1b139fa84f6a2333ab702a30414425f50e25e41bfe9a2e277869e17c035652237889c37e3c86cde41c7585776d14682f3c0309a09c1ed43609b5b82e03508869a7f6b627c3710c58198ebe9100f433ac0df22d03934c1eaa10aa98b88c879fee60596a3ab29739b613ab741ad4518e6ba5edec190678b20e6544f469791c64629657b9b1c51eff1616e29a1b3bc25a55cc9c481995bbe68abbc383dcc02e4c8208ccfb57e052ae86017dfebcbd2165810151538e7a9af3a4c5364c02208428d2b98890923b7bb92d66a2907b5376906a61115c979d4b34670a91339008bb466928b30e807cbecb307becd228657bae78f5869c3463d1b73e09aa7f6274c7fd2a3a9cdb4160da310254462eba30dcdbb5c30542463266d790d0fd79c3c76f5da348753312e4949ff2955212edc46dfcf9e6c37a +private_key: 93ab695549515d75a2caf8a97b8974e75407d5e56416d3a3010c304c99aa39d468bdab9dab3b87db1c27a2b831ea3595d371039345c37a892328287cf39255619494927828d95a7139871eb99496755ab3b689969e907cedb05a97c7976a31683f329fe0237798f9387d5ba11870cf6dd01668ea8d0a74c0aea46e13697dcc9846b1a8a9f2bc5304378154bc7cf8ec2df7f070ff06b085239589b1a7ffd13f9653a821767a36a8294fd59793abbb833b09d6e09e71b9062dd3055cc9a04fa0b8e6d41ae10001c18a398ed85bf31218532271332c73cea3862867081a8b2c610b1785412be3f42ea64917d3ca6779ab6581809d5f0412f579019a35c6ab21a4f9142f9d2a4b0c731ab447a002c7029b490ad5c1372eb6483a205fedda376ff1b432430e1738b7ab9531bcd48b4da54f4d3a96a00c718fc809303c50d1042b7e49457c9512e4f66e6b75415fa1bb6b23a1edec751c60aa619473b9c489d6c5c4935380dcb67ff7f59d03a33881b60818a12639386db06c6ee6313f98bb8c1163b2c8526744b560f1d7c672250258288a78761c99a8aee292a6b0b48b80d2495684891a28bf0c226de929b8229289f3e290d21a450901659c404e0b9c25a55c7dc39bbe070203c85cb3e9708071f6cb9e9045cf460939f29c321583f8695ab709ae11721924282afbf225cc54ad87c13c56733a21294beca82d8472363a2308a41163c2d60b7c3b42fe1b74c93a6a5146418e58697d3344006aa576d6300728440ffa0a6166514539bcc908cd1b3ba889d9ae234316a8d7709a7156635412f0eb33451942dcdb77aa9b4e29d1ae41b586ca960660e08672accafd847ff9289035e10e05f0c35d5b1a9278615105533c98ca6b1b930f207c5ac3380f2933e834b4e45983a92a1af994bc51ea5ec3e38389d2559275ca3bcc4d7c50585cea9fd145bf284262d458badd032f294050e01422fbe34c0501815008205ec4a8d43006674788a8d3a64c57470c953ecfe789fb3224efd84d4a40c921852056a8cdf43976648429729386e663397f475900655be634aab9344610fc6322a28d859b5214395172468a15570a171096c5401175fbcb0db8ccccc16e5e6b82f7732c2c47ae7d15738d650189b3702d859ee43bb0a0650fa0cc823761bee4a40877727eed58815a64c38a94b7de743688156a18368f7fa9a83064cdb972b762a97ba0bc61bd45650478661819ba109947a9327d1e54b1bee845e6e54efbb51c9f2cb38ae825286c4a1a872d4a0629ad00574d60569d6106063ac54380ba3cda463d41736535b631a3245f6360860b4d75fa153743203ea0846ce423bab1095ba148a18c2ff75222bfb295ee904cc83bcc89d44a82558753e096da4964346470c920499faa392a3c7258c5b17a770b50906c6518239d81301de60bd5522e1168a16801683ea09ab8d083c0250eb1413123164f95a36a5c053e706327c49ba727f00a6000c35db64c01f92f4a746cfc76c9d0b7810e559f9b12b0370075e42153c7f66bd5b79c94f4c80cb0226be6924f1a29a707007d998ad9a1aa5eb7176879b2ff476918732d1a810d456168ef86467f1aae56a673e40921d48440914568c3c98e33f5835952517d6ccfc0206c2cbbb79a43a428a4858bc5200b5735d7809de666ce5e124169b7acc44a3e6b1838d497873aa48b66893fce45c252813ad2e3b68c1c27ea4237841108218b8d7bbb8733ba43c6f6b2c7818b74fbb41e238ba1f5c1c5db2ef8bb80f2456f228592e952caddf6bcac9c362a031bdb4b7f422573cb772115f385b830ca6fa368ac3920e43b5ab283989b3c719e295867539047d4420f71a2ec046f031a43ff738ce87b67ec19c4f284cb1c1cb07938348f17332bea4dfb4c4417d7a30275460e498784f50d6af7920a78a69e070d2786036e3145e1d7a503f188e81b42a8fa8658e30a8701341bc9b7278601951b2caab4997dbcc7c8c15c00611cebd801b2b3b3155433240c6a8481a9eaf0b34f6750bf6c974962210f69a4022471a4c72fcaac2dffc4c603b6b4fd6b4d7806c0c275585eea28b8f010a1d48506b1516872b70c43b6576544b9a19644fc1d00a7bf9a59a51afa318818819dd8b1498bc1fc913b55c573b39633343c2691f6a8af8b65ad05559e1721ddaa391415979ea32a494182483627849169e2006e9306448025229ed2c14ff825a43976935a8a14b8448d6c4db642a1726823a2053f4f75951b80b47056bdae61ab68402d4aea6ead635f2262082d71c4ff5c78e6a6345a72505e23064dd773118ac985e49e4d88c64dd894322b0d2a712f0cccbb506436c3f0bed765ad0b193ea520580be4c12cd65f2406cbe1fc9281d37bed1988d7488f3925244454b82982c49fb522a2f83a7d131d1cc65cfc7179f8a043da781959a815b5e45f6e0b37269c84237424fcabbf4dc16a722cb171984e48864ef70c0fe14c69ee385f15eb7191249bbe3a3888c50fcde9302ac5aac6105503589b3748938eab5614d626c6a301599b623ada44f432bb18e359c7b223414a34945786468628c6579f9b004185cb7590e22f94e83de26c6a9b69702f704041da3ffbc8ce5fc2367a3a97c4b997bb06a01b8964a8534e2f713c289a0dc8c072dfe4a42f305785a99c0dc898d3104e0dcc62c0e600253c218f0511fcd94bf78497b03a08efea8bf7fc0e45d3545df2c6d708435414bc00e64c76a523bc0ac823fb56da247da4643fd9063748b23128c6ce4316bdcad4bafbca77b8ea6c10e54ad063a1433333252311f68c676ebac53aca8fd70b9404c1cf3c979ca0c492198a2f92294ee5ab4a2ed15100f20e5eb948916ca7bac7b28fdc904ab1911afc19a454af45e6a265a726340291bac80cee679e009c02254a6c6130227464b2fbf2a95661bed8b348ae9c759fa53a4b429c0b536fd6bc85d5c96233f90ca3057839a47b068855283487c90a8088e271a3e33f5ae5695d044c4d14ae8440bf03b318549600e39cb9d9d58ea2d2a5e3d08a11484801b8167d4c5afc20c56bf970a230231da8372eab0f5266686b4a3da0ccc6b57cc81aa29053142cf0f35cf0c83282893c25983ca06606cf255cc1b41add5947ff9322a4c23bee47cc49656a8581ab5a99a3797798ea77a1db18c39acc97e6342b8770550212718856398878900d6cc9a5963a71432e5678a12ce86257b0b32ee751eb181fff62ad98443f7d79cc4f85bbc67190a68504a24a3166c588ac7b40fed53318b8b452d1a738e59a2c82442feb013f9b2429b6c603f71619f386118327eaf0c13ea30fd620222af064c61aa8d9801d53192c61575e3448b265ea9987bcc84ca825943a4d51a9cbb5e76e4fe88cb6d92215f60b0941c46b89a746cc96c74cba7b097bfcf27533a46fcd928f49d670f85179e6b598ec595cf39c3554eb5f93ab9707d4a559069d24a4005cf28bfeab0bead80363ac608965141e252de510562ccb5fdf94c30da1247ddc4c80554d879b62d0b49eb3b21ebad10a50794545577be4eab070d30365dc9c34eaad1163b251b223e8ba45dcb77dcbab0a07fa635d8b841179a354304e0d249dde2319d85cb724245877a549ccd8230fac8721d82e8a2182e5cb63285ca8a0d049cc7160d7116d5c1c0127a9ae5fc808eee88e340a57a80964b21a353b08bd35da0dc1d7020d6cbe43f49547686546391d94b9a2b2d63b23fb2fb8c30f7ac371b3a80aae0470d93b610ba1681af1be2871a49419a23610843bf940804483dea0ad8d609500d8aa2426cbf0ca5aa353668a7151bb54c7c4e4ae3354c598cbac6e90949cf6b79a941c541c652351306f810494dc0ae743cedba7904d34c2e0b32b603606e33156bc750bbc477313219a97e184d695c701b2009aab8806709b8d376b9cb6a24f3b6d0a4157398c740d08809328aed069a52fe77cd68b9dac62cebe3649cd1b139fa84f6a2333ab702a30414425f50e25e41bfe9a2e277869e17c035652237889c37e3c86cde41c7585776d14682f3c0309a09c1ed43609b5b82e03508869a7f6b627c3710c58198ebe9100f433ac0df22d03934c1eaa10aa98b88c879fee60596a3ab29739b613ab741ad4518e6ba5edec190678b20e6544f469791c64629657b9b1c51eff1616e29a1b3bc25a55cc9c481995bbe68abbc383dcc02e4c8208ccfb57e052ae86017dfebcbd2165810151538e7a9af3a4c5364c02208428d2b98890923b7bb92d66a2907b5376906a61115c979d4b34670a91339008bb466928b30e807cbecb307becd228657bae78f5869c3463d1b73e09aa7f6274c7fd2a3a9cdb4160da310254462eba30dcdbb5c30542463266d790d0fd79c3c76f5da348753312e4949ff2955212edc46dfcf9e6c37a1f40abf556c865cd096c702d21239de7c22713d70626f1a3a4c4cfbdf3faca62b6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 + +# Official test vector 22, seed: "e335df8fc0d890588c3e305ac92c7160ff199e07c85760a828933750e3fed8c83b0dbe802234481ecf890a32d7a2884f" +seed: d569b935ce015c85f792f8f7fb0d83c4f53b492959361dd4f75fb764d656450176eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb +public_key: a1f055f88cc36236016d4809e5d9096762571c15863924797872cdd77370917720776b8ea9b72189f237e9d710da6906ae25331b9c82ca0ca257dc980ccaa23ee61ce1e681ae09aecf967c33505f83078bda132d1ad623373252b72109f6e6b8f5481dbe89b6033558b90a70d3866930a3c78e024b268604c8b3beca583b8b531a4a6c094591bf173107025ba079c3062a607e30647308987084341925531076ba04e03c8dcbf551b56885c383a5929a54c207b39e162348f7a7fb375f38896e7c1c6641b56557f52f4da23320252aeb382082b8560cdb83c34614c40b8e4dc4ce54b4c009d9c3cd6884c11c616520ae0d220e2cd03a869147ffa894d5b02c75007bb09b51c8f59a53eac1af1a0195623217b578bf4c3bf59459fe3c9ca7b677155436336176a99653fe677d0d9bcb266b2e5484a72bf8a86f1b250b5666e40083bd24cf578c4f9386bce2f034d2e9347835632a1ab39726c2f467a864f5863c0b498491111221bb2e83386da51c764b8597e2b503a21eeedaa6350683aa82659fa276d9b8ad3875a019ea6a00b31193c9284832c581555d7c478f81e259150c41e8c23047eb0599647ca403a7f19273a765c439535efb20a6861a1b7fcba48927412af6c9364670e2e44c6c630a930b9437529f0afa7534a08b7606a512fb737a50b6a08c637087314da4bbd76c35a312c091fa3a863a3b8c7874501c8a9233212e592c828829800c9d174cca70761bf8188ff5585fe1d59905373420120848f22ce8d4bb8ea253d3499e0ae59b526555a2245eb0fb0ba2a38cda009a31f89bb46851a4277b808018e8f23148789b8ec69d8c622247e207d2e08491a3945a60aabdb7b5cbd260a348818c8493159199717bbe5305a5c785c4eeb26dad73c76a04bb28b740d2a761c8c02096e0b6dd297485725ec59b107086bc40e71f61b90ba596cc905b564cd33d76e2b1624bc3a2e75440474daa778b79f3819d237a41d08d9260226e63231b5494da150093566f31cc3a53f581880512c25826a7981241f4c90ee3b3eda1c277b5c157226342fb7e3622b0665109fb7342d13a96e3eab49c53074b76b3a2aa26c899bd86c8a26159ca278c034e323475a0b12f447df223aef827597eb5422bf26cd48b6a40b40200898430ccbe1a6b8ee1635c761623a956b270dac22e3a24fbbc8cb62710a197110491aaf8b89575d68b530530cb2380a5e65cdcc044b52a922b346e50005da16b8c2189525950a109f74b225213c28113bc793857e9c384914809cac7c8ec5667a34b007c7eec63ae9ec21a46497b6b836cac1c451b03814b7c47554a9e6039842418468fd5860ed6cb13311c638b86680ba1628ca09afc406d944cb0ac11b928899cf333ab54be5796a6e0db7cb2b2c8c9b9ae6f300a3d508eedd292c77c589c6682e2509b8d712c6b41669a5b5363fa06f6bbc0bd272abf0c423e0c719ba90cff3b0dc2c390e30b46b38281864b5d8bc2ab339c48bd9cc8fe70067358722cfabff6bc907a457f84b1bcbd6c765ada9b5c684d290c53614123a02660ffa22ffaf602111b7612862d2d204c65e82dc232798982652ea51a362743bea629a8324f76b693124b2c3772111c627e9db55c49fb7ae4204222d850311ca5d99213173416df4bbe68b6b6fb514dd4b821bda1b50f5587b7bb254a65a2d9e6a2c5baa0e71b0be88199096c516f84a20f38a9d32520a0064e955697008a9bccb6524ee56825bcbb776092c99a040b85c2e6e1669f08932f63635f1c37e989a4f8b2190c335e31a03aa06a755022c895485780bc90a969c834091f2cc64960d399ee65359ac245201b948bc2827943a06165255b0492a7236e7b69b66847824d8873a24b6267acadacf330f306652dc766df9269ef911068b50dcb199996a294b8f935df477f00b99882a5a5fa8147023737592a2d797358bda228bd62440fb0c3811b73ca1c8fe4e1c070498b11bc816da770bd895a96338fd9a6659ffb88df51719bf3a4b208647063cf9ec985ec087fa643608e0aa23ce7749ee3c7983783992961a409729a1c6f416a0a0a5659e8320f95277ccdd31de6fa3e41ac9de3293e3ab36971842d6f8b2ffa9a26de29b0c1a26815362a657a5571fc378425b23089bb94016ab2e180888226d1f7b448749280b978958198cbc626539abaa520f4c1ffed3ecd10dca6a4d6edfa0952d6e2785cbddb +private_key: ea4c84806ab1066a1665a830346b85ab6b9494364f2d46661cd97115948228557cbf7a541f34899cec8cf1a3c57c913d6eb713d3022b13c7c15ea35158b043b9829c0516c5ba44327ca81de2313aedd1a3e9a5c07ab07bfbab2686b9a33010a85382094e1c9c400714839ac2a2422ca6e10a96f70c8edb8ffab42562e7598d501168d919a6475e619a87a4c0790131684f3c8320466e002d619ae828324c163cc32a56a55afea2bd51625186784db007673f1314efcca127a90b53893901d4253ac3625ba543a4b875ed322b2c510a9522403fa08bdee8814492112da917c1548e93ac360bd651f311ba8d675eebda8e78b6a0e5d4c314d89100b58a4fe6af99979bf58b8b2a88229a53c73be55ecfe26c48dcb4ed005680505caf570998341eff71864ee44d030262f3bc1346e44795d24cbe346a9f7871ffc71fbe0c9f03c925fc9904abc4a58bda6ef7d408b21a145e544e7f28758223c1b2636ebe2647abc39b076c8903426eda5359c58b22be15c1f2405caf641029f6810789b5c150525db917bb8b82ef217f1b726dbb3a1589445e4fa472da00b3ed673b8a95104e9039e1248e14137fee3a34c0daa6b937af71b75337694394a7c180191b1137a92cd71a588ab5969694956369ee85a139dc552151ab48068147047b0d0a8f8a0a3373c60732fc0790d488784a58e07b0180b1a5f322a5c7609ba0759db31ac35431736564724a53cdec4cab8155229a7036524acc08b8b9069b53e497195f656b581a037d8309ef072a2810a5762a05f759bebb7a27dcc0ad3e4824cd2781a6a2431e8badd79902e8e492e40a9253e758100a19c17246409444f3b4bffd2442ae86c544061fdb5971a0e0a1bdea4942a8c4ad11571ee9460a539b8f49327db237e2c5b95b371b2259138f68252aa5cd95d3c2bcf410e9201e71641d62ec9c9896a86d643505c8b99a625a8d19c6c4e0a94b816b910156b7f125c14cac14498c643c8635d8b49962019f0a885b4a91836ba9cb16142ad712fc5c99137a2afe2195e27a006f9b6be6d67fa9eb00c9741847c1bb228036330999120870562487fe8843a967b362e1659c8337bba05108741340e38057f351a4605388874561f99db1c696b23b45f96a48377a18acfb4d7200b7cb65b6fd0672671259f9337579424ceb2315336919a84965ff1bb9cc92622adb3b8a991768b72d07c93898d815e4f49e8cc0500e64bb37bac3c4613b6d4badc656530955b9f3984c7b1a97d09c75242c169e9886a8e543c58812f4829778fa9cb20706dc84a4b5226786950db1337061b79ccb78c4f520b232db36aa599c1e800956a28f2e0b05e3ba11e1432c89713a4be993cfa552f1c11d0cb8b3fcf2525e30c2aab210ea488871430bfb2528858053ba499df337b8853959a10504c124569086cccb069b97a1b782150542e184e210a24c0b5447487ad5a8c291c5c8a9b3b9b701c13d7114e337231959b7c18b2631fcaa40e841ce72b633279e57a38e2ff26eaed13af3f061595b679cb0c886304d874392b31173c89889615ba9676320d917424b608b057974d18c1806bcad1d955b48420f927c6715641e6e867f073968a23a5751a799b08b2e1d30c8894634968b6450c48b7a4ba3894628697960efb753d2540b6b4432a6b59c92ec3398e9c0c476173843ce80c626df72b18ff7424c923fb0db28a8b1903bd19b963acbe1fb6f3fb27180490e82c97592d41abbe486128cb57999816a97c050ebbc4781a672d07acd13415f036b26763365ca756a7c13db0b1f46fa23f591bc5a5b527e72136368bb85bc52f0916f921b2ff3c96ee0759a00f230d8b141a8c532f037770422a95a495b3087013393694d496a0a4241e8d62547178e2ef3663e211ff7bb213bb69555b25e91cb7b34039b6995c8bb91a1e31937af23b09410cf9f583a76e04948c7c3d341c75a30aa670707ef83793537392917a0c2195013b54c0a8b3e4686c10d25239a03c3ed28c916f40d3809068c542eb8e0a321bab4ae0011273190bb1136d5852abaf8bf82156f2ec402725503b8849daaa9bf266490da991a56a30fe3c089cee7ac241bc1528a0129cb8ea22b1c90023c9d1cb4bb04268b60cfeeb8071e4b8d6b52798c3b960cd87bdc66ad467649d0a835b5153bf2ec57f12b93a1f055f88cc36236016d4809e5d9096762571c15863924797872cdd77370917720776b8ea9b72189f237e9d710da6906ae25331b9c82ca0ca257dc980ccaa23ee61ce1e681ae09aecf967c33505f83078bda132d1ad623373252b72109f6e6b8f5481dbe89b6033558b90a70d3866930a3c78e024b268604c8b3beca583b8b531a4a6c094591bf173107025ba079c3062a607e30647308987084341925531076ba04e03c8dcbf551b56885c383a5929a54c207b39e162348f7a7fb375f38896e7c1c6641b56557f52f4da23320252aeb382082b8560cdb83c34614c40b8e4dc4ce54b4c009d9c3cd6884c11c616520ae0d220e2cd03a869147ffa894d5b02c75007bb09b51c8f59a53eac1af1a0195623217b578bf4c3bf59459fe3c9ca7b677155436336176a99653fe677d0d9bcb266b2e5484a72bf8a86f1b250b5666e40083bd24cf578c4f9386bce2f034d2e9347835632a1ab39726c2f467a864f5863c0b498491111221bb2e83386da51c764b8597e2b503a21eeedaa6350683aa82659fa276d9b8ad3875a019ea6a00b31193c9284832c581555d7c478f81e259150c41e8c23047eb0599647ca403a7f19273a765c439535efb20a6861a1b7fcba48927412af6c9364670e2e44c6c630a930b9437529f0afa7534a08b7606a512fb737a50b6a08c637087314da4bbd76c35a312c091fa3a863a3b8c7874501c8a9233212e592c828829800c9d174cca70761bf8188ff5585fe1d59905373420120848f22ce8d4bb8ea253d3499e0ae59b526555a2245eb0fb0ba2a38cda009a31f89bb46851a4277b808018e8f23148789b8ec69d8c622247e207d2e08491a3945a60aabdb7b5cbd260a348818c8493159199717bbe5305a5c785c4eeb26dad73c76a04bb28b740d2a761c8c02096e0b6dd297485725ec59b107086bc40e71f61b90ba596cc905b564cd33d76e2b1624bc3a2e75440474daa778b79f3819d237a41d08d9260226e63231b5494da150093566f31cc3a53f581880512c25826a7981241f4c90ee3b3eda1c277b5c157226342fb7e3622b0665109fb7342d13a96e3eab49c53074b76b3a2aa26c899bd86c8a26159ca278c034e323475a0b12f447df223aef827597eb5422bf26cd48b6a40b40200898430ccbe1a6b8ee1635c761623a956b270dac22e3a24fbbc8cb62710a197110491aaf8b89575d68b530530cb2380a5e65cdcc044b52a922b346e50005da16b8c2189525950a109f74b225213c28113bc793857e9c384914809cac7c8ec5667a34b007c7eec63ae9ec21a46497b6b836cac1c451b03814b7c47554a9e6039842418468fd5860ed6cb13311c638b86680ba1628ca09afc406d944cb0ac11b928899cf333ab54be5796a6e0db7cb2b2c8c9b9ae6f300a3d508eedd292c77c589c6682e2509b8d712c6b41669a5b5363fa06f6bbc0bd272abf0c423e0c719ba90cff3b0dc2c390e30b46b38281864b5d8bc2ab339c48bd9cc8fe70067358722cfabff6bc907a457f84b1bcbd6c765ada9b5c684d290c53614123a02660ffa22ffaf602111b7612862d2d204c65e82dc232798982652ea51a362743bea629a8324f76b693124b2c3772111c627e9db55c49fb7ae4204222d850311ca5d99213173416df4bbe68b6b6fb514dd4b821bda1b50f5587b7bb254a65a2d9e6a2c5baa0e71b0be88199096c516f84a20f38a9d32520a0064e955697008a9bccb6524ee56825bcbb776092c99a040b85c2e6e1669f08932f63635f1c37e989a4f8b2190c335e31a03aa06a755022c895485780bc90a969c834091f2cc64960d399ee65359ac245201b948bc2827943a06165255b0492a7236e7b69b66847824d8873a24b6267acadacf330f306652dc766df9269ef911068b50dcb199996a294b8f935df477f00b99882a5a5fa8147023737592a2d797358bda228bd62440fb0c3811b73ca1c8fe4e1c070498b11bc816da770bd895a96338fd9a6659ffb88df51719bf3a4b208647063cf9ec985ec087fa643608e0aa23ce7749ee3c7983783992961a409729a1c6f416a0a0a5659e8320f95277ccdd31de6fa3e41ac9de3293e3ab36971842d6f8b2ffa9a26de29b0c1a26815362a657a5571fc378425b23089bb94016ab2e180888226d1f7b448749280b978958198cbc626539abaa520f4c1ffed3ecd10dca6a4d6edfa0952d6e2785cbddbd5d6b62e0449476f7c6f9ea3621237bce0f97b11fe0e65776f1e92da38362cb376eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb + +# Official test vector 23, seed: "fbea1bc2c379f4f8fdcb0de260d31cdb064c9ea9b1d6dfbe91b3692add1d34dec9c9ffae7bf5e72ed2743ba3f9f2e43d" +seed: 5cbb141c2763425c274f7404fe530d9116e08c33f9f200a20b011cf563a28990fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 +public_key: ada7c7f6a193f8174b99e5b0c249517ac47c4ababda18b523a665587579d884b7d98f778758c48d28c89c97441e7ba1ddcd020455c73a30377402c13c20bb8bcf9042066424a9081c9d44139e53f3afb7d9a687c3510a2f4f22fd5ab37bb778267053055f38158c3762694aaa89596ed824a0a10490c49619960b79db3174a227c7687ac0b4533197799969911a24bcf1e19a4d6224e2fea4c4da636483a09c39c0e63531e367b7b74c9734313bad6056228d00d90f8806b6a06dfb45e4366867c2175d692c66ca91083b5ad8566bfb4816b40da9971bb4855b44e13a04eac687af1a025863b8878827c1a06360e84c24e8940e404716e665e570a12b0532bc663001ae8cb94aa658a9394b60a6a1c8b008ec7bdf432002dd43f34fa04665278057cc5a0ec65b7315e831681e4d5ccc2f95588089122b18b4cb93df740b2910ccb49142942b563d2027c8552ba5bb595ef35943db0bc2c912d57f2cf166b2b9d219222a6a71bc55ccf7cb9c7c8c23398761aa58bd8a587013841a266000a375cc14018cec577260aa9d962799d9900a991873b175194720f50a90310c4b8b5248c0f08a0b609440eca877c708e1941a15af6407d5873fc62492bea381f431c8a727e5fa235b39434bdeb8e0918c4ab82a5d735b0f676aac18463f8e65cf2b30ee3a97969da994105d056d49e2245ac4fd1912a44b6f3647cb9c377df2c7f0a99016725bda1fb78670013fb25061e11c09fe1c92ec21a83da9a2ed2c95636598f63c264c972a4365e6580440b0327d3638628e06cbb7ba024bb2481f64bbd39a5e79c46b43abf0f405fee38076a600468f033b9c52aff5c3ffb6191ab8b37dbd8730ec63677e6b43afc74331631fa0c5263268b17bb0a77f2699e839e66489a8744230aac9c77ab765cc9094a8077c12c8e8dc6bcfe900e831c02cf01161c083b14677f01878655394f31296a33c612a18121cfba2f7a1358af8904b5e8c00028434ef812ac1a5d24bc2e09eaa5929c5e6e05683d292428324fe2a021e238b2717490f4731aeff426ad085574c9a1f7cab392d662fd25b4390a694946c6684c0a02d85da187769632b6a829cfc24999a317436d4b47473bbf8fd73f9576c6424acf65e88a4bb230aeec1f5e08c7c05a1c84aa3af9d44c25c81e4db436285a4b1a572f950437e277294de7c0ec087b8148607b30229bc97f7907076d9842f5a77fc5644177fc095e7245eaa7ba8f9c7840c99f852a109257b04bbb3679f80a617ba997f5b5b22c14d13807ab9bce20cc271c9b2cb5dcbf67e4a0df65a5adbc0f8634670c4718feb06880293d7c7184c52601c69c58f110cb1ef961aeaa95133483714b11b57b71cbb94e6a483444f65f293b7d349a02950079ecc18ce091ab09d647141065e037c2041c932ca092ac7b870e4a64caf14069fc9845cacd62549356c38fafba2a7f7133c5f7c630721fca36ad23767e4d86a2d1ec8c41da18355a9375659c9b7c04539864b1098b8c862dcebb94785370430498cecb064dc8aee2e385fd775749f47c1f38b6d6d08a6c3a5b2e148204d50048a3c8e5f13e2e3059e6a3554a636acca6b634aca6da71977e33a74f0a56e78cb856b816b73681a3a96f5a4328a1911a7e063eef31440fd21e5f281e9be9954113acbc3662529911cbd8221a7227e2d38e9bf798de61627d67b8e8f62f2e10bf66f24187d2ad2efa071f0b2210e53091e29be859857e801348092c572b91b59102e325104c6c1a49c7654c2bb4df431c12ab0f88e1132b63bf56c1616028994a304536564dbf18b54a16b50b9c75d3f347d8cac3f3bc2dc9827155c507294014c8c92e4121386c936f3bac661f4c4f8604a2b648053e88792f5ca9a48719bed781ad4a7bebd8306b5401dcba9a69a35128a7a89d22b97ffa5c2336cc5cc090a6cac001dc560aa25f8f65093f0c2fa5540b51f56862380996a4c48d90a68f8956ef49019ba809b84496118235e02535a37b1da0c95845f18342545ed12426a6e5ba1bcc7b348585669c003b02033eb024cdb70405f5c5e6077449d8c4e6e66d65a23b9bf51f40230bd241bac33b708ae7b2147809ba2a14005038d0d197c790491ffa5c74626d2f6c5e0ab2c69ba55ebc83195044cd7c4c00d84bc716d02f8bcccbb4f85d5e50c6efec71d667cc0338e6a6ca392e61bc1211681ce762516ade8bdad2f1ed78a9731a2634 +private_key: 2a3a066cb7ce2fd3976cf377eb5500fbf9887c2375705c6feac85eb92cc4d423ad0dd37b4b1abf98d72a57e3905b9531b3f9382a2817b464769ba133c3a550036abd7a704ef0026e832b5a0d494362025debc90eb1a03807b35832aaa00a8c93bd72bd1908819ef7165358541659aca85c2e640987d5cc3fc941b7777ba63e17987bfb81869a484ffa81a83293d87272ebe243416728a92632480112628463d880c8cb23193b7038b765cafd629605b0a1645a2770635b47cb35d728a264a03c2d2c260d965a86eb9603b16c33a092d472c0857b632be44a04a2424f4ab1f1ec6fa54200c1bbb4ef0a35a59bbca8b889889332577835121195d38248d849087c996933403f74e56c9b3406dfcb416359cc9912cff4f69b3e826071c5029671724c28212f0b85950b100412bc574a059aca60a3f1c76ea45a6dc88cf4998c21805f9b17c3ea7793af98224b017ce25bb16676a1146c933a587d98448d7fc188e6a510272770983b964091bdc09b10ff341064da0cb347c8ca92c53eb83bab85248e0859a4a933be5078feba8a8ca12d8b634946c24861fa7a699069c2c72ddc840ff20c4795a680111222b3e52116e64134616f4b223e0fdab1b7a514c667155a42847c4c726e2c7211e675ace1412303390b6a2dbdfcce2d435750c94799a82df899227d344a81a5422af0c05b4a605ce5b00a438fdbdb80b8f224051c7c934937fcc8889c6baa43e89244e1bc5f9b136a2b6b956a349aaa3cde7338e1782faf951518f29d492842a936cca4cb09e81ca78586558550a7e11452197c29f7625e680138b03039612048913aa4a8c8b383e8655900549a472dc552ba39b617bc82405830cb186b1c89327145e1cb07113dcd39110cb7b45dd9a92a4b28b6e8794ca070f1e398e603ba39b5a7eb7b289885039be10bed6a08b296298766752ee392e5d693396b90e71147463a63aa6b69e1e3c1426c403bccc11c58beec481bd1f5b5a26657cdc75cd93ba89f834594240295544420e09f5b0bc9e76458ad426ff6b6247534aae1a04a6a5a67894638c88bb858c0c21af8376500b33143c917148c3244c2bd176fb134154879314d111bc2193ae5b03fab328db03837a177c8caa585caa45ba51794a7954837cb671017cc6325196fd767d50a65ce798754754403a0af6a1c25de2b051e502da59c20e80528cf0b6e509772114a0e7b43436877cb0f175f8d1b0a774c36ab09a9d13013cf20667100ac1a314f0ba661ba72bbfb86890a48929dac8ca0e40604b17bc9434013f707a2e37099021e1c7c8564e7848bd21b45d13c020b3a2c09823194cbb46841675a92c888bd1191b3cd78b154f650732b12634c3b8473cf044471a8a54de3a601a4545566e9076d0149c8e8760cf0aa1a820e7fb24ce428a49f572ac1028e7109be2ccb41f5e02bb902697e537305ccb425b8cad1d63fecd8a8e1852e1988419e7688e891bad58155c72002f190ad27a55725398831310cb8b14b06516ee2906ae86874629b7073e8acc95548065275a66560d7935174cc4dc8f4596d000d288c5ce8536666fb275e33cd68e004210985c7d146bfc1b2e1b9a1ba1048c6516a4e4384c48921f271a4207369963b75c3d15e859322715b8a59b116deb2bd623acd158a8375a2c403f15068f74bfbdbbeab602357461b9bb1ac5d429929025ac2a3b1200376a953704888a2b304b3ea608fc10b1f05716ef9466a670407ae66baa218557177193df197f3d692536c02ff5816cba620d23b0a866980d1820d2417722ad440534a0f15e65573cbb8a896be183b83cf2b954139a27d4a4eaf267b0a2471182963bde3503e7b7fa723ac20e97357f24d5b6cc01b8b8606aa6ee251578963593187109452b352ab1f90a8928999b87b1c054a3b8ea30c4f79907c831636c9071277412a1fda2e5631a86e7124f0393e1892857458327136a136414cd0db09e7a9948995831882b1f08ac2b9767536e41d19fb54ccfb3565a470e1350b9d3a81ec11043a3a6f445433db604dda35af06aa636bb88426d0623fbccb6f9c43ee1b32f822416335ac36c7200e60ada28096bec7cafe37c3aff80f0ec27dc4ac5390e0756e080ff198bc11ea96178b55b00a21f5c81ec67744a8b236100cbf5cd98204000f931898eac7cc091389ada7c7f6a193f8174b99e5b0c249517ac47c4ababda18b523a665587579d884b7d98f778758c48d28c89c97441e7ba1ddcd020455c73a30377402c13c20bb8bcf9042066424a9081c9d44139e53f3afb7d9a687c3510a2f4f22fd5ab37bb778267053055f38158c3762694aaa89596ed824a0a10490c49619960b79db3174a227c7687ac0b4533197799969911a24bcf1e19a4d6224e2fea4c4da636483a09c39c0e63531e367b7b74c9734313bad6056228d00d90f8806b6a06dfb45e4366867c2175d692c66ca91083b5ad8566bfb4816b40da9971bb4855b44e13a04eac687af1a025863b8878827c1a06360e84c24e8940e404716e665e570a12b0532bc663001ae8cb94aa658a9394b60a6a1c8b008ec7bdf432002dd43f34fa04665278057cc5a0ec65b7315e831681e4d5ccc2f95588089122b18b4cb93df740b2910ccb49142942b563d2027c8552ba5bb595ef35943db0bc2c912d57f2cf166b2b9d219222a6a71bc55ccf7cb9c7c8c23398761aa58bd8a587013841a266000a375cc14018cec577260aa9d962799d9900a991873b175194720f50a90310c4b8b5248c0f08a0b609440eca877c708e1941a15af6407d5873fc62492bea381f431c8a727e5fa235b39434bdeb8e0918c4ab82a5d735b0f676aac18463f8e65cf2b30ee3a97969da994105d056d49e2245ac4fd1912a44b6f3647cb9c377df2c7f0a99016725bda1fb78670013fb25061e11c09fe1c92ec21a83da9a2ed2c95636598f63c264c972a4365e6580440b0327d3638628e06cbb7ba024bb2481f64bbd39a5e79c46b43abf0f405fee38076a600468f033b9c52aff5c3ffb6191ab8b37dbd8730ec63677e6b43afc74331631fa0c5263268b17bb0a77f2699e839e66489a8744230aac9c77ab765cc9094a8077c12c8e8dc6bcfe900e831c02cf01161c083b14677f01878655394f31296a33c612a18121cfba2f7a1358af8904b5e8c00028434ef812ac1a5d24bc2e09eaa5929c5e6e05683d292428324fe2a021e238b2717490f4731aeff426ad085574c9a1f7cab392d662fd25b4390a694946c6684c0a02d85da187769632b6a829cfc24999a317436d4b47473bbf8fd73f9576c6424acf65e88a4bb230aeec1f5e08c7c05a1c84aa3af9d44c25c81e4db436285a4b1a572f950437e277294de7c0ec087b8148607b30229bc97f7907076d9842f5a77fc5644177fc095e7245eaa7ba8f9c7840c99f852a109257b04bbb3679f80a617ba997f5b5b22c14d13807ab9bce20cc271c9b2cb5dcbf67e4a0df65a5adbc0f8634670c4718feb06880293d7c7184c52601c69c58f110cb1ef961aeaa95133483714b11b57b71cbb94e6a483444f65f293b7d349a02950079ecc18ce091ab09d647141065e037c2041c932ca092ac7b870e4a64caf14069fc9845cacd62549356c38fafba2a7f7133c5f7c630721fca36ad23767e4d86a2d1ec8c41da18355a9375659c9b7c04539864b1098b8c862dcebb94785370430498cecb064dc8aee2e385fd775749f47c1f38b6d6d08a6c3a5b2e148204d50048a3c8e5f13e2e3059e6a3554a636acca6b634aca6da71977e33a74f0a56e78cb856b816b73681a3a96f5a4328a1911a7e063eef31440fd21e5f281e9be9954113acbc3662529911cbd8221a7227e2d38e9bf798de61627d67b8e8f62f2e10bf66f24187d2ad2efa071f0b2210e53091e29be859857e801348092c572b91b59102e325104c6c1a49c7654c2bb4df431c12ab0f88e1132b63bf56c1616028994a304536564dbf18b54a16b50b9c75d3f347d8cac3f3bc2dc9827155c507294014c8c92e4121386c936f3bac661f4c4f8604a2b648053e88792f5ca9a48719bed781ad4a7bebd8306b5401dcba9a69a35128a7a89d22b97ffa5c2336cc5cc090a6cac001dc560aa25f8f65093f0c2fa5540b51f56862380996a4c48d90a68f8956ef49019ba809b84496118235e02535a37b1da0c95845f18342545ed12426a6e5ba1bcc7b348585669c003b02033eb024cdb70405f5c5e6077449d8c4e6e66d65a23b9bf51f40230bd241bac33b708ae7b2147809ba2a14005038d0d197c790491ffa5c74626d2f6c5e0ab2c69ba55ebc83195044cd7c4c00d84bc716d02f8bcccbb4f85d5e50c6efec71d667cc0338e6a6ca392e61bc1211681ce762516ade8bdad2f1ed78a9731a2634269505d6cb8212b9dad2fa70171035fd4107ff47c02696b3489650d5ef9c6f19fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 + +# Official test vector 24, seed: "7e87fb886bc3c7c9fc12569f465d2ecd12532e76cc27c65644c8d3dd603b0cb2d036c5974e675058f271d5c82ad7a813" +seed: 293abb6d1c207927945417cf84883ef010823e11b487ed55239e466e83696d0cff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 +public_key: 306c0e7e44a625f44880cb0d125bac36b650f8430c647c68e1ca6306e39c61142c2a5924cd0c9cd5a085f4eb5dc4815711e4aa7e3a26e521cac85c303e420a18a3393d996c1cb68dc9904588301385451788e57842305c064807421034ad845df2baaead84acee401fd912b191c89f51c436ff6bcf4b33b0b2120440e65777f4bff5dba7560148364046598acf3d46b70f7960eb9a7c5fe893c87c6dc5741cd84b080b7a4d0a596effa363b6441848d849b72a7cb9f1597c99b7eb6697bdc3181db25ce213c35725bcca20c840066dba39420763572f187758d05f6e43cbd41296f7c7a637cb49a57b00a2a9cfa7b2bd1745b5cb0255b1a68892431704f4bbf5c4844d0c1e9ca5bdefab042fe1ad30d4491427543cb39fd11717035690a77149e09a9173a433dde8a29c40744cd4a7d2ebae568a392981326fc8bdc2989869d6a56f6715ce65a51dc9a5e8f5c304ab6937f41964e80bcb259b9494bb713b6c882b94af5528a6b1bee6886f1da41d5a10b8cbb188aca7a820761e10b6797a8a5aaaf54b5f724c8fa9a41ad09bf9c9875df8ad40781ec93748b428cb0527c9257aa83d412ff1755d835343ae05be3211a447011944aa8952f2ca001153f10bacb18ac64619689ea6562f23c0fb5a33046c5dc5b7c37e2133d0987a44c207ae5abcb38ba68e13505fa5a05be45af5887606704b7b4a4e18e5b78f518e8680a4c3a678b5513cdfa3b18ddb285a562f00f29cad2c984f60c005f73d23e3cc617148d6a53177d10004981fb7e8a1cc362224e48d0cf69d28f213082b4425368c2757ac8493393e5495f35a41646225b3741e5dd1bd6e354681e8b47ae5c576b19d7c807feb4abc89ea94f2d150f946920a0a3d6bcc3d1799332304035515273c2c4e3764ca04e1653bdabdea77819e0490416211ba7877ab8028f8416fa08918c7a7791ceb4a65b567838283cea96997e3ce2564cfa0d41c43868bf6f6828dcc78f5c03afc4422675b9fe926c5d2cc197046c38a30cd5cecc076ba9bdb3c57a4fc806e835ef6b52b44070e4689baa7633458e0acbab3a781aa83158b31b1c949338b58ac034ff2c2c80d3bb54ef7c10c5281e0d5930f3817b9893032246f6aa82f7f6cb29a467395340c6b81347b2997f5514d90c95e7e84633813861c488ea27200ebe7cee795b560973effe3a19c32950e821ed1140b454c8d5da64453fccfee09565c7cac7192952c360232861eaba924780895ca022737ab9139645bcc7b6edc67050c5a90a4308c44764740279107f2799a455a8e4b2d384012d66956384b0cdfd108a1db088fb34cf0824f82ccc7da6a8824a90982a92ed3b46aea02837f57aa0ada783e8766887b538fba4c33b157c2138e9a9155795399cc99613bf9b707519f001241ab2336e96981aedbabd2f41f6673c4bf28929f777f2500cf0e382f8ca2182b9b8e4fc36be4ccc4a1293aa477a76625429a68178733380ce950d5871bd7a0695254cd4367a1d8a94bae95304f23622d07650a17341d401cc5133a772c8aba82a63feb19db78af7fd850c2104fd207579649b0b9eb38c9f2236f1669cc31a5a116474c9b66897c4f6d96cef6428974748bc066338a510621d9690e4345c1a3756dea7355148d45c89a16da8867e164ab538e01e35489c792f79a53a967277054297fdb4365fc7f9bc15068b70b6702a8d0aa9968a005a5422c30596dfc9c635c189f9d2ac1f9481167558992b21ab4dbb54f88742167164ff964c64201da9cabdce9b458dc8cd7489684d4c8ac7951a2147b7358098975837083723eb85a4889547c3847d7317cc88a1c5ea19294358941467fc48bc6bb38486ca05715058171c7b2a178cffc838de1ba0a02c02d4049960d477d9f79a0b1b17ba9345afaf641aaf80218d41a71b9063a5680579123992cc4efc596ddbc0e1d2c66f035963f7b11c7d74c35158ebaf6bc16d6798a24ce928274e125cf3d51419bc6926e69aaf11562f541446df6b77c625f9ec820587b68f1b50e590132d9c988b65c0a86b6c721384b9283cbea128904f5a8dbb6b6a5fb2ada47918ae3544c7978fbf9381f78468b0265290181b8f57ee043690023bc9dd4360fd13514c79cf9e3639b792aa1e70c763c52a43773fbe6732d262f9385716528200e37054237c04504a8169baff63f6fcbd8988928266537d344dd44533e2797aa03d8cb025e705a9f45 +private_key: 09080dc7cb09012bb14eaa2b8d92a71c0078a792ca0607908c04b8b684a0aae139231991812b5e763b2f191526268519469673713359936bba126ab5e0b4b62d8a5fa0d76b365212d686ab74188878aacdc1b420d323ac67659dd2e8851317b0c132ca57bba44671b7b9a78f6e6c73503125ab718bd386b2bff1b6f026c2a2da0f5a05578b8013a0b78fd628cfd7090c648c0afd11a9fd768e56dca02a6a87c7c523ea959348fa0dd38b5d380291c99a989589b6b784bec0cabc181c33c45840700622a0e666f3db15c32bc4636782fc688c8d5433bab63c35d3ca26eb488660a4d141b33371413156322fc2a9be424fb96712e7b6a324fc1559508910124c7eaa62b731147d1331a375b597494cac741520a07082d6945ea92b7f326d3830814f62b20c84179071182dd707d4bc87010b406299c11a633210726c59184767f96720a918de74178d397407950c62974b3ed703b8305e9892016d859fb1479046bc0a0e1766a985266b950d56e9b178244d9a5c969fac3e1a41983db574b3c9b50f2797c807b03de8ab0e692ff913a79e1600a4dc8f4d537368784844a34797433c7fe2b8c5ba14af06bb9ae4c5b301201a55a55b2a3be308a0354456f0243882651d91f69cd5930a27a25874b45b7a556dbeb65ba5f68f684c643a81c0810143de8c2352b0a92e86c72db570c3ac0ceac65bdb5912cb59683a88627086a06a00ae99922fac3a47afe5451b813c7fab053c043069e70c0624a40b6629ef46bfddc36f82173abda6a36642c4b3685ea23375a1906c9eb98e3e057889671d2d6ba894876816c79a6ad476363b27a2811fdd4baba235077a037fb780c540132a046432f04aa041f25b44897c885c8ab8e070d5f07042c2a383a9886bcc40c7750e5ce85c5fe1b217151ffe2ba53bc9875af281f927c8c88529f6395a75783098a9b3a89cb494a131d3118a51a868ce76b84cf3b2ceac1ae145b070793ece3916b86726cb52bb1b40a24be7a9580a29f1ea9146ab5d787c2f3f777638fccaeed72a74f0959ce5b0edd45bde14c4edd0aa601b82ff6b4edb9b77c833a8b0aa59252c812d25bb627b0f82e3186f4ca2ace595cca41ac2612e6c409011854b033360f179c397b06c82e43dafc47b3f424d4d59051048c624e999fab7bd73b18b13a9305064844be040fc5c4a033b59c097299e6221e2c5ca3b9b05317376ee4b4e9963b172802030ab06e403b6940b5d8258572d16ce4c80a20ec0a796b06df076b73e2b648534520dec6ef0b57f61f4b9b5519c82d9931e863461d26d41f35c0a3509a1d684cc5047b9482955d0387808a26bacb2b3922ab780b7ce43256246073b6c5900f004a3830fc14770debb620b1569f6c98db310abdaca61dbd337a9773758ab92fb490a9fb95596d1087a696fee494c0e5739a2aaa63a77cfdaac6a37618cab56a6c6ccbdace66f7eaba24be57cf1d1c1cbc42517604c17801865081f13f3c04c9118444578b95b6a55e51830f3c594b3662351b113d57c6f49640ff14468dbbaec7a7ead354506c0adb923a0050bb3f89cc82b2cceaea4582f1998691bb1845a22cdfc721d6b088bfc52d6a8ca526625b6fc2267c277b9e86b88d9ccf81847c79a0075d36f9b7315273870d0239b8adc9f9dbb05a1e44e7c4604aa3947ee2085dda65651b6069e2c7d64f06986f527c02525e103b50363cffb93c9735135eb1a0a1bb056842278badbccb43810c3727028fcb0f4cc5dffbcb7d39590165a01ad4092ce6954f8c3bd28663d5e3c35142b0351538b2660020dd30d35c0bb5bd7276a8743c79c53a1f80146c16523080db316382d2c9ddce7857703bc3c939b4d5372185603fed280dd8b57fb6b7d80270049aa09bc6a206ccc47f935ad40602a89e9a633541f903a16545274d8a51a40150cde7555a56bcc80261d9522acdb3390f6a5719d57705ec8aa871ba41fbac75254349b15bb6af427bc1053a8a05e2d766a3b8243690b1352a59ea4f2c18e202cf69c205db06a3915058fa01fa8e4a35e3c26bd5abe05db1240687616d873355b6485dc858f5441d9155ab5e6c9fa115f46815e6394c2c1cba717cc0d8048561bab198a9449d8d9ca47803c4777ab6e55443b3ba176a15a0167826ec662877a457e5b4e7401b9b30883bf67b1ffa09f306c0e7e44a625f44880cb0d125bac36b650f8430c647c68e1ca6306e39c61142c2a5924cd0c9cd5a085f4eb5dc4815711e4aa7e3a26e521cac85c303e420a18a3393d996c1cb68dc9904588301385451788e57842305c064807421034ad845df2baaead84acee401fd912b191c89f51c436ff6bcf4b33b0b2120440e65777f4bff5dba7560148364046598acf3d46b70f7960eb9a7c5fe893c87c6dc5741cd84b080b7a4d0a596effa363b6441848d849b72a7cb9f1597c99b7eb6697bdc3181db25ce213c35725bcca20c840066dba39420763572f187758d05f6e43cbd41296f7c7a637cb49a57b00a2a9cfa7b2bd1745b5cb0255b1a68892431704f4bbf5c4844d0c1e9ca5bdefab042fe1ad30d4491427543cb39fd11717035690a77149e09a9173a433dde8a29c40744cd4a7d2ebae568a392981326fc8bdc2989869d6a56f6715ce65a51dc9a5e8f5c304ab6937f41964e80bcb259b9494bb713b6c882b94af5528a6b1bee6886f1da41d5a10b8cbb188aca7a820761e10b6797a8a5aaaf54b5f724c8fa9a41ad09bf9c9875df8ad40781ec93748b428cb0527c9257aa83d412ff1755d835343ae05be3211a447011944aa8952f2ca001153f10bacb18ac64619689ea6562f23c0fb5a33046c5dc5b7c37e2133d0987a44c207ae5abcb38ba68e13505fa5a05be45af5887606704b7b4a4e18e5b78f518e8680a4c3a678b5513cdfa3b18ddb285a562f00f29cad2c984f60c005f73d23e3cc617148d6a53177d10004981fb7e8a1cc362224e48d0cf69d28f213082b4425368c2757ac8493393e5495f35a41646225b3741e5dd1bd6e354681e8b47ae5c576b19d7c807feb4abc89ea94f2d150f946920a0a3d6bcc3d1799332304035515273c2c4e3764ca04e1653bdabdea77819e0490416211ba7877ab8028f8416fa08918c7a7791ceb4a65b567838283cea96997e3ce2564cfa0d41c43868bf6f6828dcc78f5c03afc4422675b9fe926c5d2cc197046c38a30cd5cecc076ba9bdb3c57a4fc806e835ef6b52b44070e4689baa7633458e0acbab3a781aa83158b31b1c949338b58ac034ff2c2c80d3bb54ef7c10c5281e0d5930f3817b9893032246f6aa82f7f6cb29a467395340c6b81347b2997f5514d90c95e7e84633813861c488ea27200ebe7cee795b560973effe3a19c32950e821ed1140b454c8d5da64453fccfee09565c7cac7192952c360232861eaba924780895ca022737ab9139645bcc7b6edc67050c5a90a4308c44764740279107f2799a455a8e4b2d384012d66956384b0cdfd108a1db088fb34cf0824f82ccc7da6a8824a90982a92ed3b46aea02837f57aa0ada783e8766887b538fba4c33b157c2138e9a9155795399cc99613bf9b707519f001241ab2336e96981aedbabd2f41f6673c4bf28929f777f2500cf0e382f8ca2182b9b8e4fc36be4ccc4a1293aa477a76625429a68178733380ce950d5871bd7a0695254cd4367a1d8a94bae95304f23622d07650a17341d401cc5133a772c8aba82a63feb19db78af7fd850c2104fd207579649b0b9eb38c9f2236f1669cc31a5a116474c9b66897c4f6d96cef6428974748bc066338a510621d9690e4345c1a3756dea7355148d45c89a16da8867e164ab538e01e35489c792f79a53a967277054297fdb4365fc7f9bc15068b70b6702a8d0aa9968a005a5422c30596dfc9c635c189f9d2ac1f9481167558992b21ab4dbb54f88742167164ff964c64201da9cabdce9b458dc8cd7489684d4c8ac7951a2147b7358098975837083723eb85a4889547c3847d7317cc88a1c5ea19294358941467fc48bc6bb38486ca05715058171c7b2a178cffc838de1ba0a02c02d4049960d477d9f79a0b1b17ba9345afaf641aaf80218d41a71b9063a5680579123992cc4efc596ddbc0e1d2c66f035963f7b11c7d74c35158ebaf6bc16d6798a24ce928274e125cf3d51419bc6926e69aaf11562f541446df6b77c625f9ec820587b68f1b50e590132d9c988b65c0a86b6c721384b9283cbea128904f5a8dbb6b6a5fb2ada47918ae3544c7978fbf9381f78468b0265290181b8f57ee043690023bc9dd4360fd13514c79cf9e3639b792aa1e70c763c52a43773fbe6732d262f9385716528200e37054237c04504a8169baff63f6fcbd8988928266537d344dd44533e2797aa03d8cb025e705a9f453e8ca044ed0e215c83f03eb98b6da9da137ff2433b319d9ccbd0bf054135d63bff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 + +# Official test vector 25, seed: "ad1424e804f306c7ff513da4c1e8d445afca7bc942fac5c0b335733aaf70693712ecbde26ea726ee0f9fd9d52a83b1a4" +seed: 74d87c7556f2671f2d666854a4d6e073e69f35421e6e1a428cccea49c37f972ce1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 +public_key: fe3200f3e260b8bc589d0162aa2b1eabd229f9ab6f64e528e0f05b3c69b9c9f192964a3a6d2c96b8d525f0bbb32b848e5c244409904f1583c7d58209b91465b9e3a6f2a515ecf55a778119455bc57af5aa885b64100acbf9746787b9757a17c1416c4ee317b017348f5299661436c1fb5c8aef032929fba046a601804b7b4474461957c8eedcc19c609253c23ae1428674b5ba69264ec1ea74f825198ca71c3ad929465b2769338a6359132027aaf46173415b31ca0624d7e6c258a91388742b0f71917df814b75c38b06025fc9682876b597cd65cf21943cbcb4e77b1314c4b487aa46493fb7d5f734d0da891bc51cc8fd0454a7c9bfed5747daa43e2c95fea422165e02819882a535a7e3127396120a242412bbf7384bc91372f640202ea9ea5830002654d40f346c1f2025dd648befb332bf9ae0809810445a2c91a6c51c68ea19b01ca287e3e967139f58ee66b4632346cf4240634095c59492fc3b919be49c7f32b00da0a9b95625131e24a3b03c0b44c0cbcaa7fde1c7872645950818c69a62d864b251e54b10fb6820b9678026353fb3bc09fc90cc5842849252d2c6208dbc7754cd70904f15434a8840104b6a74814b555c69897b4b2d2a69407715f93ab337a7005007218b5536a89020332998a040599bc688f6497c520b73ebaa40b735f41d966caa24e655848fa66a2b473437d14c4f80357e449643cfb34e1759676b0b2b3733bfa6b2324357931a72866e99430454fb1b65797a90e5257037744c0f06415fed93540a68fd2bc5ae74247940c21a061923c603c4a89309f8a7d1ae48a29370908d9137db01ee84c3fb6d4bcde28ca63c34cf1012bdb060d830c2aa6da19ecc0c0a8fc0272e066a8d6225f3a2873a52992768ffef0bd9b109ced760dfd2c3ce7d17cc95095f95bc84f448ec51331066ab0126505df1273741220a869b518cb458b00b5e1e503f53c639bd2bf11d71c45e8866582c71c0663ccd19b0519330f36594f1385ef82199d76b4507318fde59b6ae4185f3811f15b873be902d80c44a9523351653365e369be2939f6f17f753c776fc3421dc75bd0ccae0fab9bcc2a8175408950fa32e983cb736075040a857501b2e543b043b617c16001cef203ae164effc243d4b1cba2f225f361a7d65949cabc32b3b3a782bb18d03627cd2507f1d122a46c3e35f91315ccaaea110709f648114220524b8fae55c8e6caa27a693c3a559496d30db2458674392575accea61c91cd3b9188b94654d15e7eebb383e19d114bc0720b7552ba0d42d85863e984a220bc4632bbd7d1c33f925836e117b209351ffb01c8923edbf4a54d500ce7dabda45021601a5b19d9b0b736c8b1e30896b285a633c647658622b30a9b476a8fcc251e0971f8938063550cf39718c86b6849c7b55319b7a4e817b4447d265bc5189614247026c82c557be5a4e1d302397865af7277646b442874a5b0d5ae60429e4dc5ab30c132052030d747715dba66c16316a7d10d180b6ea88a6e97601ae1131a2412b5e83039c75a1cdfd8c0764109d360094882725c627a8f9395cdfaa7bea40263c8479b3a3e1d68cfa5688cfa19322b833e0eb863171a3f48b9910e5289611c4d51554574cb239934cf870550a0f7a4e78b1ac50b59ac5b1de0f348f0315e627cc2e50707827b9f9c6b943010b46a2b752500526840a13d3123621462bf5486820594c40318b86731e1258de6215d76d68b58083149a041394114caf69198277a8a57082da4a440f799f78064310660350b0ab34970e6d9c9e53a2a24b2c95135971db128eec54cc21378b6067d648c85c8bc21bb9551a0648825719d5fcc67717083e9d677abc523340cc24da5b489933ad7d1c1d12b7004bc1a875244a7b9810b29c77826aac6daa1753681e2b9cefa4aa3a5c4cdd63a844166017f8aa79db97115b86c447bb7e66b7964a19d410149fbc475ec1bab8b06cf96ba0861062f89a621776507ae40849b82615f0b6d81ab82a92184ce9b8b07f69311fb295eb83cc5cc4545d89362c33c8dcc7453a70051f40a56691e212897746c17f5002d8c15bbb2b625ef267914d62759cc01da4c8437eb3facf336fa0bc0e83a9ff51c793dc44007a63432309460162257d191ed8872ead9a8a66296a7e55d30d86ddee023ccb84744bab7db9c015a60707cd7aa0ebe7b8cfb1d663d8b18c5bbf06da994e7eff9d64742e2 +private_key: a902027dfa84635138ab20cb6b0cb06df848adb138ed618d93b5857f11042d2c753e0765d3a1c6febc1fbef347c58b4993f5bfe065a9464098bbcc2c61aa1ae338217592b657f60cdb39b740871103019d17504c4a572f2c5490ac61cbacd3148d23ad48bcba53a7a331e3403c13934ed8a3a6f794c263be9e1b4fe96a40e991798987a54af53048ab9646db8b06b9152136713668a4ca1cb3947469ac27c035ba69fdf43c2b4128efb31aa7226902e41de295cf22b6711cfc34a5276dc6ac9329d30269e637a4e92a80fb481e123c45e9bb04b1724e4065524612ff66a30633a4888bb8b5a15b8780a10ef8841c35c54b90b98f156dcde86a0b78a8052399d0d4bb6d2822a450cdfb5c245f245274167388d25f278b2a3b13bc7ca108d2e09a2af50f47e82bcd8c62813375d88c92f9005a1255a4ebc720146b97929925d9940797a95354d3cb64e0a399cb1ed1f1b395419c0332293fe37c6d676123394e40e3be474cc211dc5240dc855f27ca87d7af59b799860ac3427959516a4794ec9318d1826e8c529ca7bf0e4613a7e9299a416c4dac9937733825f1223d369fe773782381c1374b9f0eb942d5eb446f07c3c4130b3dc057e4222ec6a5c365f2b8ca618cfe998446171b2ccb940eb49a47b1cd123196c04128e1b9c35f30b38287b831ab79191c488de7b4f302be30c84ee446b29e4476b41a4901d85cab92767bcb88cba8b91a23aa45e088f2c82bffb330cdd9cc4aa6b46b032e36a885f61627357208a1b4031c858179305a52f57480483a6bf30654022fce933da873af8c64a74b1b51f1b9532a6caf0dca3fb16b50cad1189097b18526691cec9e3d2b6d53d1687fe64b434a7084873593ca8f359365eae00b1220099adccfa4c78b5f3056d5bc6e3ab96aaf917d4f1073c4a517f66447a4c15a26f96a9ac3c4fd624283757abf435aef7a6de4fb6aabdac65a99792e548e2c2c24fff7259bbbce3d588ae4725585517b5b68b712166171b9780a8c46b3d07b1864ba4a4b5c88e14666b09733c3ca7f1a185dc950e6854a086cb8642487a313a72f916200255a70d94a43cccd9664975d50c2995c56ee142c53bbb1f596a9454b1bdef4a11dd6a21746a3d499c6e3d7209b1004924b2b69c7c9e4286d871546bfc37481faba482616512b3492c4778fd1977bd079ecc188c3172d3b6193b7032708981a71fb72495c6e6787c7012748c062cdfae690b3ac483b985b2fea1e16e51b4ad408e1f53290b48bf4a972a3676862853ba348b0f8d730fc577657545da7500d989c657e787783008509d81babd7227348c574474f574aa60e976b97814a5f7c886af9c3941bb04ec3314ecc1ded62b39ed69636c07227dc11d9596103dc104d96b96cb085cd18ad7087743795b28bc6ad4af3196dc7c7da1907f6d7c7c862b4f9f1045c5b7c57907fc319aff58a113807269d9a2deaf4ca4ec501d6a35c1c23710d674f5b0ad0c5b14d3ca61145b4c8aaf363c7560a61923fb54b3daae6ab4f979dc78b971a105f5d5bb3d8f6201b82175a215d16c501726c8fbd903a2878152fc471a8b4236d6c10698284ad07a7f4b1784aa893669539a7ca8093d81c367b5f51996e3477148b626a35326010d9b7a52044d56355f7008375e2237b312c3a399f265304ed53382f766c21a6822c4864cedc9bd8a26b3928ba0b206d7f446b95161b5cb4415696cb50739b8b7a484470c8d196a762f586c5604f3e0c7bb41669bc538436a413b2630d12d23b94486f3d8bad351a5cb277933e6b1db56b3850149e28a91091aacd9a87beb84a457bf242e78c9d1af9b0412c0b61867f6981cd6c6b8b6b928409f606c4fc1ff6f6453a73b209527bb2e25527e791f729414544c8ac4c7c51b9a64591102c36c5942365498cbe7f9379890a70cd8999610c06e7504a96b6a7f839617fe42e2d13972ef49af07ac9f35444d89a7454e1af46b239fbf2aafb87405768760767a2f4721d7a57288a42bfecb512ce6a023a3221c74266990171d09aa61596787984584697bf80d79dffe0674e416cc74b311a9cbe9fcc7d6b185a5d1322aba71d6f11b673aa293e037464d214e9061ee19341b11199c88a78e4103b41f90e849664c08c30e3d9c011595199913dc231bdfcc98b0ae15f276054215b1feb4c4efe3200f3e260b8bc589d0162aa2b1eabd229f9ab6f64e528e0f05b3c69b9c9f192964a3a6d2c96b8d525f0bbb32b848e5c244409904f1583c7d58209b91465b9e3a6f2a515ecf55a778119455bc57af5aa885b64100acbf9746787b9757a17c1416c4ee317b017348f5299661436c1fb5c8aef032929fba046a601804b7b4474461957c8eedcc19c609253c23ae1428674b5ba69264ec1ea74f825198ca71c3ad929465b2769338a6359132027aaf46173415b31ca0624d7e6c258a91388742b0f71917df814b75c38b06025fc9682876b597cd65cf21943cbcb4e77b1314c4b487aa46493fb7d5f734d0da891bc51cc8fd0454a7c9bfed5747daa43e2c95fea422165e02819882a535a7e3127396120a242412bbf7384bc91372f640202ea9ea5830002654d40f346c1f2025dd648befb332bf9ae0809810445a2c91a6c51c68ea19b01ca287e3e967139f58ee66b4632346cf4240634095c59492fc3b919be49c7f32b00da0a9b95625131e24a3b03c0b44c0cbcaa7fde1c7872645950818c69a62d864b251e54b10fb6820b9678026353fb3bc09fc90cc5842849252d2c6208dbc7754cd70904f15434a8840104b6a74814b555c69897b4b2d2a69407715f93ab337a7005007218b5536a89020332998a040599bc688f6497c520b73ebaa40b735f41d966caa24e655848fa66a2b473437d14c4f80357e449643cfb34e1759676b0b2b3733bfa6b2324357931a72866e99430454fb1b65797a90e5257037744c0f06415fed93540a68fd2bc5ae74247940c21a061923c603c4a89309f8a7d1ae48a29370908d9137db01ee84c3fb6d4bcde28ca63c34cf1012bdb060d830c2aa6da19ecc0c0a8fc0272e066a8d6225f3a2873a52992768ffef0bd9b109ced760dfd2c3ce7d17cc95095f95bc84f448ec51331066ab0126505df1273741220a869b518cb458b00b5e1e503f53c639bd2bf11d71c45e8866582c71c0663ccd19b0519330f36594f1385ef82199d76b4507318fde59b6ae4185f3811f15b873be902d80c44a9523351653365e369be2939f6f17f753c776fc3421dc75bd0ccae0fab9bcc2a8175408950fa32e983cb736075040a857501b2e543b043b617c16001cef203ae164effc243d4b1cba2f225f361a7d65949cabc32b3b3a782bb18d03627cd2507f1d122a46c3e35f91315ccaaea110709f648114220524b8fae55c8e6caa27a693c3a559496d30db2458674392575accea61c91cd3b9188b94654d15e7eebb383e19d114bc0720b7552ba0d42d85863e984a220bc4632bbd7d1c33f925836e117b209351ffb01c8923edbf4a54d500ce7dabda45021601a5b19d9b0b736c8b1e30896b285a633c647658622b30a9b476a8fcc251e0971f8938063550cf39718c86b6849c7b55319b7a4e817b4447d265bc5189614247026c82c557be5a4e1d302397865af7277646b442874a5b0d5ae60429e4dc5ab30c132052030d747715dba66c16316a7d10d180b6ea88a6e97601ae1131a2412b5e83039c75a1cdfd8c0764109d360094882725c627a8f9395cdfaa7bea40263c8479b3a3e1d68cfa5688cfa19322b833e0eb863171a3f48b9910e5289611c4d51554574cb239934cf870550a0f7a4e78b1ac50b59ac5b1de0f348f0315e627cc2e50707827b9f9c6b943010b46a2b752500526840a13d3123621462bf5486820594c40318b86731e1258de6215d76d68b58083149a041394114caf69198277a8a57082da4a440f799f78064310660350b0ab34970e6d9c9e53a2a24b2c95135971db128eec54cc21378b6067d648c85c8bc21bb9551a0648825719d5fcc67717083e9d677abc523340cc24da5b489933ad7d1c1d12b7004bc1a875244a7b9810b29c77826aac6daa1753681e2b9cefa4aa3a5c4cdd63a844166017f8aa79db97115b86c447bb7e66b7964a19d410149fbc475ec1bab8b06cf96ba0861062f89a621776507ae40849b82615f0b6d81ab82a92184ce9b8b07f69311fb295eb83cc5cc4545d89362c33c8dcc7453a70051f40a56691e212897746c17f5002d8c15bbb2b625ef267914d62759cc01da4c8437eb3facf336fa0bc0e83a9ff51c793dc44007a63432309460162257d191ed8872ead9a8a66296a7e55d30d86ddee023ccb84744bab7db9c015a60707cd7aa0ebe7b8cfb1d663d8b18c5bbf06da994e7eff9d64742e2b4ecd70cf455e2195477c581fa72af1ae232e7b5efb374d9607fd958447b7c67e1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 + +# Official test vector 26, seed: "7c33ca0e987226c8524dd56c811fa4d1ccf9995b1e4e4dd5b1481974e88cfabfbf6787775c2611cefb27ed4403ea9b46" +seed: 013bab0212d04ecd54b478daf72748003a25e2cb060ba6cc50bf95c292b8206b9da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 +public_key: fcc42e1ada20b880b35f49a312180f66b866c4952d92f2bf38b08f6110850224909413938678c8f9585a0741b561a36b7680644947485b2462d984ae5ea115fd52202643014607067b9540457a3405e7127e841d004b86c094468a0743b82bc70569c3388338e0dbc6abd1456ca3afc4564ee9d361ca0a708e417aaca1af12151d5fc93db4b652eb990a0335c799a27b713172b6949be937b570384f3627102dd2bd784c97d46c8a2ff2a1d2a0c438f0281cf29971e3c58df77c33b83b5252cf0e72c4fb9448aca6a3abb06a22677c0206609598c544781598fa318bd58da2625ccaf7ae759b774147380f0304163b0786a9203a1169d943b54b9b92f7bc7be5fb17e87a37dfe73712c33fc0824ab448a9b2295a7364629956cac2cb6ed54ac085bc3693fbcd9cf7b44d4b318e248ad737aa1b821fa985bf7f219828b1cabfe66deb269a6be49dc3f74af594c820748fca60961fb04f22ac2cd4787b5a41a91195b8588b3a74a1a188f95e50ab047cf42fd5b63fb88ba57dd24528f90c2f966a1cc91ce39ba848fbb2ec4576df188350f587e59b0ac0848d71a93cfda63e3ef93745c6516cbb69a5505b1f900aa4f91094306c84f640050393f1c751a05872aa7b027f678b1aa2cd5f97ca25806a53016eae4412a7f23ebd8a7359e5a706a11415951ae2a45d60fc999b66a255cab76ef85601b2974c462ec4202f83b2ba85190aec7c6fd6263d72e19f7ef71b6fd37694ec1e56090290549d002c2da8b18beab345f969bf1b23144486c299104dc7dc367265902469c45d7788c5d23941c6a1608a12586692eb759eb4835c537429ef287b6709b87dc22653d7a92cc314a295a6a6c939e33b3a87394cc40cb284b17987a088fffc3f401c2b072cb72b467d59f930d82101ac725c79d54fba036aad5760a615cd5fa1a323a87fb63a4472228f124a3ef72a086ac74245cac6b7784249d17c7a19a126b28c7530c1ebd6a806097de35177a5070abe84bbe3b99ee7149c57224357c8624d08ce6467b144e598701987fb460b21e53957f57ce98343a564c63fc466f7e04bbbdaa63ce79448364ff1d9c05257219d03b2d90c9c0c299026d3c0aa4845050092fc7424f1ea03716a456bb2b935a2be5a5570b1eb467d54890493c4977300344887718bb54aa06bd890229359ae33395d7a7b08a71465297780f54cb0d2125ec1311d6bd31766470dc18810848706c0e79c8654c6c6cb35d4f62ee70541e92982ba570dbc289be8e842a31b7e7158660744992d6506e1d1c8bb512f98015270376158228319cbb7a2411253a98cbbca8a6d86c2710631e105c217b2ac05f813474727c1b089b3c8ab8779ce91619352d86b38c5a622c73d692814fd36800d5c009af0bf0eb6734eeb382f70412c2469d10698071c772e62c6243cca236c2676fb0258487430998ad99a1456d29d79977c810953b138642754c0bb993e8b9b7e3b3b7972359569c44bd6576fbfc212f78c0c33362011225d2596bfd2ec1a4b721a36259fb723c6413910219048596252225879bf301c20d305dd3bafb2e62ccfb1c3d300b5460ba561f3c61930662f3641b763b2f5b5b2682546cba9a15331b8afca63cf68b7a1fc2e49c5b4042a3a2b2148c427c9701727dcf3371bc7b13aa62878c8a358f391f02b1fd3d2ad663c4f71c36cbfe11581e1995d976ca37440ddf9c4de2b48ed9c492730a977e017a7065cbcc811bfd155d1935122e12325732505c6c568fa67bf7968ff6836f765c242b5b9966c333ea1161a336164d72cc5767e40939590f07b537788c46265fab1bc3078c470e98dc1b7a31cc53a83a0a7e95c4634754a069007341396371ab79f6343b601b50966c5999144cc46b6d06089a879871bd1bb9c2cbcef84cb8fb4a031786bf778703b164f6787c5cd63ac781424f8550e1ac992a6c04bf7953787047b043632de12698e80526c813e08f36dc1db592f48968395817566886bb2c7d3fcaddf331273ec7ecbdbb3e5d70c823323fa8a1a15e1371534cd0462cd052685950bb6b6833600243e35c7047bb20832f09e1d854739c5b425bb32bf86029e1159d79ba70293badaaa25385563cfb4babdf4bbbe341058d3817e9a7941e69adcc867559b822bf63d0034c15de1a9371945bfacb1caca4fad8590f723014cf5355228d850d99c57f85c67295a4afa0b9d8e1da6065ee0e9e43b6d +private_key: 6fa78813f0808fb375e817a1aa133a3564c1bd632f43a517d7d0bc43386df21a252c71c707c5295109a5f5b64d8d8b338b86ce24290a1857364f69750ff116fdf273cd6861fa085f0ee8333e32cae0c4c202b6af2be601a62c1e78ac3330b96dff58c2037652fe497bb9c6b544460f58d59bc63091c9dbbad4225d4f4a2ad5936a6fa20b5ef52be6d72b8b2c9c9ab23a4937ce834364068a6a9feba95c41b577bc8e70d58425466bebb66167384d6ed37dafd7741e05971b5509aa5c7969c908dc71670e47c45358170f12b9d2804149350663a8a9bb45454929813e7c7fea462440ab4bef1035277a24a9076d7d11256ce4cd024157c0f2a37111a5305459f220aa4c569d0636ba1dcbb918903edff43aadf5c8843a99a9031b35311522d0ba96d6514ab0ba44908749422782a66f29ea4cc916adce65978b6a8b1be6b0bb930427e8af9ef176a13593b4bb1ab1eb4e816725fa182655750a9d835a4c20470e6c646c6314c42559bb2762077b482ca069787836d8d94412d946330a66dc819b49d0a0e42393311826507aa0124c47b5d402758b40d88bab51333f1ab1a61bd81ccc561471c239d4f2cc2af811b93250e4624d8817539fc95e90fa7a7c344d82477d0d632283624d48103e40fc924f1c5d372560af7b96bab49a3de15abe1363e17cb9fc722e986b48ed03b0e727b126320969a56c94428ba31878c6803033689639c67e5950b55f35000f90505ee871c3bb27df9c5253634865024201d50384671813ab1cd77ac1261b08fa9702575673d8b3b40a02530928757842979df188b2c697406a4800e59888623365b6a3299710eb65adddf4b85f087a87515fe9c46332fb3e825b9b37a40d48ac1af52886ba7742f2a528ffd046b4d72d85b49da1fb956b11886562afce32c7dd3771c9c4432871762f00bd72eb5cab4a0cb401605d18c9b66c20b492365a2520f391be37b449866181903653c40312b9395e57496e94c5a913d5a0aa7b41daa33e4c3bad134569e1039a5fecba93a3be80221c7f5cae6b1242cfbc6b15f33540caba84755c2dac7b3239b6aefbccc239ab170b9168e842e53308f9e737c2695a09513c1dc213e7fabc79950aa4063104120b1670b7ade210ba6a22069441b9f1cea4964b7621c6b842c409d1093b8abf7a9c12a9972a7bba867b07af3451af3cd6b61f58af1d842ea8e4391de05f41ec639b3c63a72c4e0af51ff8d144d3654fbb2582c488241c2369dda7ba047181535432fcbb15d58548a7e991922c5a32ac86a80725b0aab1b3c37639e812ca9568f00b88d84b3dc4ec9580b1760301a38ce7a78850a2f7b0931c1c729481c90aa367882643a432155e472ecd1280d5c68cda283304646dcfc13672ab9a72c039d1909650db543dc15bf8b2a94e68858c41c17f2c718977bb0a10a34bb093fb318650cc8af102c1ea138a73e392bd8100f66b287d2a0e5bdc6b63b92db44aa2a42251e6276079c1a53e896764c201077c1e052995ea609b9948cd04e175a3218a25288009b44b9a72cbe37bac0801821f5575a2c54bb367530cb1367d36978a8ac6ecbc718107318ac28c5f18426489536c22359004a478799fc50a21baf28dd269c34c218395c2a06ab07559157142c46ecf7517dfa9192b0c08e8a2524b46c7543753708b726ecbbececa5218849f6b0142b9d45afda4c9a68ba91f6264e4d6a4649aa66aa6165120c4f57b3ce81a3833978aebf52ffb536f61b74a25107e8ed440504c546f1941ac762d42f0a10c890dcbb79b35d93bb85195c8c58d9b27a934fc7466631a5451939d61b009cc054a90c143636b3aa76fbadb37dddc5afc231cc68320940098fcec220d26114fb88b3e10cdb3a98b5df06d2259911d340d27798b27108b2959c5734432a5f45298d4c9be20ce912c199ceb1f53c309047a3100c5400cebba5d6c6e4ba7ae707c38cdc7782254b280b1c8dcb85726579842674a7d6061185556ce3c841fcc4927264712645b6369c30fc388d6899480490e9f223e7435a3ba055b96179c4e625eebe824ca0498a2646749d04340c28edb1077cbcc871ab64a2c23b14fdc1a45b063ecd263ab49936d325cbdd7a80d171de2e6156445655629bd64ac08963824abc09014b497ed50af28b1b62b6c9d35515a0393341ddc9ffcc42e1ada20b880b35f49a312180f66b866c4952d92f2bf38b08f6110850224909413938678c8f9585a0741b561a36b7680644947485b2462d984ae5ea115fd52202643014607067b9540457a3405e7127e841d004b86c094468a0743b82bc70569c3388338e0dbc6abd1456ca3afc4564ee9d361ca0a708e417aaca1af12151d5fc93db4b652eb990a0335c799a27b713172b6949be937b570384f3627102dd2bd784c97d46c8a2ff2a1d2a0c438f0281cf29971e3c58df77c33b83b5252cf0e72c4fb9448aca6a3abb06a22677c0206609598c544781598fa318bd58da2625ccaf7ae759b774147380f0304163b0786a9203a1169d943b54b9b92f7bc7be5fb17e87a37dfe73712c33fc0824ab448a9b2295a7364629956cac2cb6ed54ac085bc3693fbcd9cf7b44d4b318e248ad737aa1b821fa985bf7f219828b1cabfe66deb269a6be49dc3f74af594c820748fca60961fb04f22ac2cd4787b5a41a91195b8588b3a74a1a188f95e50ab047cf42fd5b63fb88ba57dd24528f90c2f966a1cc91ce39ba848fbb2ec4576df188350f587e59b0ac0848d71a93cfda63e3ef93745c6516cbb69a5505b1f900aa4f91094306c84f640050393f1c751a05872aa7b027f678b1aa2cd5f97ca25806a53016eae4412a7f23ebd8a7359e5a706a11415951ae2a45d60fc999b66a255cab76ef85601b2974c462ec4202f83b2ba85190aec7c6fd6263d72e19f7ef71b6fd37694ec1e56090290549d002c2da8b18beab345f969bf1b23144486c299104dc7dc367265902469c45d7788c5d23941c6a1608a12586692eb759eb4835c537429ef287b6709b87dc22653d7a92cc314a295a6a6c939e33b3a87394cc40cb284b17987a088fffc3f401c2b072cb72b467d59f930d82101ac725c79d54fba036aad5760a615cd5fa1a323a87fb63a4472228f124a3ef72a086ac74245cac6b7784249d17c7a19a126b28c7530c1ebd6a806097de35177a5070abe84bbe3b99ee7149c57224357c8624d08ce6467b144e598701987fb460b21e53957f57ce98343a564c63fc466f7e04bbbdaa63ce79448364ff1d9c05257219d03b2d90c9c0c299026d3c0aa4845050092fc7424f1ea03716a456bb2b935a2be5a5570b1eb467d54890493c4977300344887718bb54aa06bd890229359ae33395d7a7b08a71465297780f54cb0d2125ec1311d6bd31766470dc18810848706c0e79c8654c6c6cb35d4f62ee70541e92982ba570dbc289be8e842a31b7e7158660744992d6506e1d1c8bb512f98015270376158228319cbb7a2411253a98cbbca8a6d86c2710631e105c217b2ac05f813474727c1b089b3c8ab8779ce91619352d86b38c5a622c73d692814fd36800d5c009af0bf0eb6734eeb382f70412c2469d10698071c772e62c6243cca236c2676fb0258487430998ad99a1456d29d79977c810953b138642754c0bb993e8b9b7e3b3b7972359569c44bd6576fbfc212f78c0c33362011225d2596bfd2ec1a4b721a36259fb723c6413910219048596252225879bf301c20d305dd3bafb2e62ccfb1c3d300b5460ba561f3c61930662f3641b763b2f5b5b2682546cba9a15331b8afca63cf68b7a1fc2e49c5b4042a3a2b2148c427c9701727dcf3371bc7b13aa62878c8a358f391f02b1fd3d2ad663c4f71c36cbfe11581e1995d976ca37440ddf9c4de2b48ed9c492730a977e017a7065cbcc811bfd155d1935122e12325732505c6c568fa67bf7968ff6836f765c242b5b9966c333ea1161a336164d72cc5767e40939590f07b537788c46265fab1bc3078c470e98dc1b7a31cc53a83a0a7e95c4634754a069007341396371ab79f6343b601b50966c5999144cc46b6d06089a879871bd1bb9c2cbcef84cb8fb4a031786bf778703b164f6787c5cd63ac781424f8550e1ac992a6c04bf7953787047b043632de12698e80526c813e08f36dc1db592f48968395817566886bb2c7d3fcaddf331273ec7ecbdbb3e5d70c823323fa8a1a15e1371534cd0462cd052685950bb6b6833600243e35c7047bb20832f09e1d854739c5b425bb32bf86029e1159d79ba70293badaaa25385563cfb4babdf4bbbe341058d3817e9a7941e69adcc867559b822bf63d0034c15de1a9371945bfacb1caca4fad8590f723014cf5355228d850d99c57f85c67295a4afa0b9d8e1da6065ee0e9e43b6da97ab878370142b7b2b346179050eff0a4153943be66d9ce47c6772362ba795b9da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 + +# Official test vector 27, seed: "54770ea1252ea2857d6635151194f5f520adea8a41e409ff498d40c271359858fe2b084d5b96bee087b8e8f4dd4e00c5" +seed: ccb073c4b90be0ad746e26fb093b60c70110bd1dcbcddb566a8cffb7b3caf80e71600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f +public_key: 3e074aaa7ac9f7703a87b72bd0aa050574b63fd80ef56c882109c9eab220e67041396a29d6977f9530c3628329a2e02a7850c77c73a4698145c837087f2241ae46a1b7b692fb5c81de38846a5bad7246b596a889eaf558d1d55bf1372057f1795b40076d53c0b81288fc9009757a9111ea26c3410d55217768378cdc94a3cb40af38f67b1b473b15205c58d876077b2c8005bf870588dd6318ac154dbd9aaaa6d48d1dc05118739fcc7c12327a68f8b5369a846b6aac56fd1043c5ca8675752c12549840d47b6563c703723d6b8791bdf14e0011c0605136a1521265c13874b9ba6064b85ea895180c634168774aa55e2df34ebd8132bac959dba90ffa656e7c61677d3b801ef3604814ac36d31657bcb05bf20c893a4a2d50644902133b9b16e81c1abb2b5521408f3799152ba14d51a6a7f4a231b5167b0273b22cfc606482cc6685bbe8e80f6aab99d7f55b50e093aa55b568c45aa3e4a0766a9228192e5e91378af608276308905826c6a24e7413aa98f57495dc2d5ed5bd6fb5c65f4b4ed7b9c4c7b504548b0306c892f547613516a9064417b1b96a95cbce5b502bc770356df5ad52b98adf01bd66175ab3747910c814e7b070205b60978aad90c43341ac6aee03cecf7cb8cd2b4842c3401ae1a3b60207af366fc7f78069e39fdda0ca53402ba455af5ebb21ef9a6d60501d6ecb1b5297312b280ab2023f2fcc42c2d66308f263b7d019af68144247c2dd93a05df57daa5a03e896a182b480f1f607ea668aea60b66964b2a3fb609ff547da9a51aa6848ce2a686406c7fcdb058595a807a6692f833cbe3166fffc73a2f30523c86db1b98ee7f477d7f1a8c7110076774d6147bb56a79aceb6804eb982a8d00356553a68ea8e91d8b86d676f394a776353bc830043cf209dead22480c08d5df25e80fb734bd6558f1b9080b09fab642808c458cdeb0d72e5b49305aa502321711131c7f848fd14811d718be5c805c8b254c8c556981ac8c1dab13cbc9e91708d99688e36599f3b7a23f7ab83f2a3b613b38287b2856aec5b4ee90c33e85b8d88cde3870759320b4c1c0d8d727c8e379f84da0221b2cdfef70270299bab0b7f9db8c69d7c9ea6d01df6107e04440bdcf945af329bc016892d8c01f071654ae3b19374946246027210cf9b1760aafb5e4a935c2d0b7c70db3721279e6fe43d712468fed532cad432ec30a1372554c97c3769c380c709018393364ca97f9dc37a0d393511990aabf398474965dc45ac2a37ad60163145bc3b73e7a6c2032f7d2216bc19b26b4cc55bc68ed996411bb00715473f4e0636282c203770a3bbdb26cc58aa7b4c69dcc01ee3e53ae514169859b632937cd8c355c560cef5c091f4080047929554c94d7115393fccc11fe397f2854564533fe9e66614da3afe15be92196268720f5fca36878797a2b045dadb2491fb3cdcfb7253f18750774d4108bd6c7c6545b801e8e368a1087e0f33c22a359907c1c75bd59db28268da457699337356436786b16bf6a25fc55141bca303faf566039991c700a227c01e6543bc173c06b9a8026fe07e032c30f5d4c86a950a3a7b32e6c67e51771d78c08cb5382bd4fa8068969926d352f7e5820ab19878197c25172e95d6ab6a05acbbe375ab955bc777977d2b926786c9143978113c490731438ea53c0db27bada4be961b38138b4c684a12d4b08b6f03ab28f6a260b01afd348b59684197002bc534836c8b735df139ff98c84ee03a58e02d0e6125f1e09bf7d7a91840226362a667627ae5f580ee50b594fa64892a508ff8bf80851abdc45486936e11e26beca14334454d66c0128663c52a8700b525950425a4ce7824b25b9e45ec6bfff8279d1503816ac76f498f8e18b2b626b285655ab40096ceeb229856457699b500b77f7af5c2bc8c545c4292a387583fd74dcd20c4bed85bec8c245c63608ea302d557199d9a70194a5e92acb24264532b02baa8f824052379395b3b4222536164823c379782837ff417b1583238721b8b6b4a5be982abfd35a90d07bade5c03c4c3170257bc0e88b41b242b146027baa2cc72474d00427b0c79cf294203df379628799452d3952d2ac709f20dcfe33b001022917a4678966f1d9065cad2bb9b6979817873e8d662d7ba8343d18729291c544c00fdeac5ead3c8dd2cf3e2ec7899253e7f980f9ab3230eb1a9a3688f94bd522ebe016e2980d72c +private_key: 93d973d0a7b385a29d218666fad6525fa2788a053b455422c2526d556b1e79a17330c18063b054f0e238ebc1ba8cb874836989c4a7c75d364118585b7db99469d52b043243ac867b25b2b8cb9a8f6699c3d8fbcac40423fad90a56775c57d02107da9dc94731a2a298da61caffd12ffc119f817cb01d4c98a2f48443d6b36782be1c25adf882702b225f439000ccc8c3c16129f0040fb4bb1a4993470f7c20d73ab393016847a1647a3c14ea88a7095658b0b9c61c8c726fda255d641b83f03bd1c9c3cfc20709909b1f227c89d9c7f5d51fe9fa753ee729571a3e7939af9cdc17a0373f86a4253dfb849f70c52c336d1f34a682661b6c21c73e9a92c50bb69363a9cb3c41d55c1da8d69607e012f5193a79d581bf8760cdd742f63003e96c6a1305aedfb36de84a9e5b832eb5ac2ff204397d28c8eb64a756c27d8e7b0cfee3ba9ba2989c2310633813c9828705266c2f8569163c91e33baa49e6a4b6b92bef81174d24bff6c0cc6c020eb501126ed1507ee8cbc4a7281b34c82da47bd06851c0e52e5ad9ac27f3be552564b7792fdf847f3cbb5283ca8f04c4b6a5e0bbdcf3c77a02c29fb847a5643ce719b276a39ddec8a361d73a4a54bdf1757cb6c65b0d62333c562a64317f713ca2c714a2ddb1bec986583e8b07a5f24217223aafc711ccebb83e7921a41625853a045ca02cb8b597332b524dca8e15b02804101e3cc2882546864d732094e2cbb06699027727509a4a22e28b7cbba46a30b174594c7abb7735a47a471a245050c0aa5c6abf020e005441766bb4741c756c588e4bb7963ef2a889e40d542b65a38a888e0511d8053aefc6401db4c795b718b9019c96b39458c62da35a383738649c065fd0812ee4a0b9b809725359ce754604c4e8462d7094beb3ccd17148e4ebce2a799dca2c55174c98bcd9206a0c340f8c559f6c7745d7b305b672f263643362b2fb099fc5173b43c167cc25bd8fdb7dfb7b3252162ac665bed6bb0edac9822745a80a463329db5853b091f304094dc949b797b127e11ce4860793757cdaa510cc5c04f0c7575567ad1457c54c3176861c77e7f86446d410e9b3a005678577787d32741595989d9fc92fbe5b0620a11aaf94beeb68000877cbaf39bb6bcc2bad72975bf94ff94a56419726630cbb32114bbb412c27779bc49632faccbadc4c3bc1a61f5d2337754b5981382e6d406828c6ace3f73adba6021aa15e52eb152b222b0bf593519703b3ecb38a39adeea3123a2167f1c102a19bb83a76b562090e7d24c9fdf53056f35cd367431b82a7ca210521d4c78f78ad54244e97149cb2d28bf96cc36756bc4474c0bff06aaaf3985329af217469612b225504afe70c69cd4467b3f277df5a2b74b14f407a649dc76361527c0059a8c3fca243b0c2eec7c615f7c8a15a5d4055a301abbfd5a5be42a8cb7f4b0700f4575ffb719965a56ac21dfdcc19d48a8302c29cfc340fdfc391e2838f878164cc7b58355473a9ab44098ac0c0f8cf2c0b3657709e48419c3aec2509222cb658aa1f6709d0c4bf6a077197a8a89f433ed18987072a9bbec9a19307c51f66cded27a2d0538ed86989040308fcb42e8c8a9bd2c5845a914c18c5c2aa5cc2bc418ccd5328c139af2d66b63190b99c5042e7b81372772610511fcac1449e71a6db9b35fc1b5871a627a63900594869b20a1483a055c8bcadf3468b4e9a7cfa6c4e3230c550889a48f0a5b5ebbe64cc06110c96987ccc2343bba708791bd9b2d5d6b028b9425841646244745b38c644342781e886ae452e3f04098e9c0b1c37c30e08328b011e0f4838a64874b1985ca1834559a07711c035e29c0159286d9473551ff65251e2c26a227e75f1293b2b86c53650a33b2e4b77b0108050f8c8cfc965771bbb8a9ca0075e09a30e81b2a4bab1e424587ab282ca7927bfe1bf3e18775cc36a6579a3fc338db8e090707ca42ca12981dc7956763285014577e9af843b7ccfc631bf706a1186c6973b532fb204fb0c0645e54b7581871db60e5b4c375dd2bd43b35865b08856166f640ac7efa516f24885fc9216fbabbce3d66fe9466db3907ab224244e759d1b89c041bac289040d125aac681cb048d908d38513eda6a23248a01c5b2c1b6c6296a5c612b21ad0b433bc3296f9f40b42f02973d2a4740c823e074aaa7ac9f7703a87b72bd0aa050574b63fd80ef56c882109c9eab220e67041396a29d6977f9530c3628329a2e02a7850c77c73a4698145c837087f2241ae46a1b7b692fb5c81de38846a5bad7246b596a889eaf558d1d55bf1372057f1795b40076d53c0b81288fc9009757a9111ea26c3410d55217768378cdc94a3cb40af38f67b1b473b15205c58d876077b2c8005bf870588dd6318ac154dbd9aaaa6d48d1dc05118739fcc7c12327a68f8b5369a846b6aac56fd1043c5ca8675752c12549840d47b6563c703723d6b8791bdf14e0011c0605136a1521265c13874b9ba6064b85ea895180c634168774aa55e2df34ebd8132bac959dba90ffa656e7c61677d3b801ef3604814ac36d31657bcb05bf20c893a4a2d50644902133b9b16e81c1abb2b5521408f3799152ba14d51a6a7f4a231b5167b0273b22cfc606482cc6685bbe8e80f6aab99d7f55b50e093aa55b568c45aa3e4a0766a9228192e5e91378af608276308905826c6a24e7413aa98f57495dc2d5ed5bd6fb5c65f4b4ed7b9c4c7b504548b0306c892f547613516a9064417b1b96a95cbce5b502bc770356df5ad52b98adf01bd66175ab3747910c814e7b070205b60978aad90c43341ac6aee03cecf7cb8cd2b4842c3401ae1a3b60207af366fc7f78069e39fdda0ca53402ba455af5ebb21ef9a6d60501d6ecb1b5297312b280ab2023f2fcc42c2d66308f263b7d019af68144247c2dd93a05df57daa5a03e896a182b480f1f607ea668aea60b66964b2a3fb609ff547da9a51aa6848ce2a686406c7fcdb058595a807a6692f833cbe3166fffc73a2f30523c86db1b98ee7f477d7f1a8c7110076774d6147bb56a79aceb6804eb982a8d00356553a68ea8e91d8b86d676f394a776353bc830043cf209dead22480c08d5df25e80fb734bd6558f1b9080b09fab642808c458cdeb0d72e5b49305aa502321711131c7f848fd14811d718be5c805c8b254c8c556981ac8c1dab13cbc9e91708d99688e36599f3b7a23f7ab83f2a3b613b38287b2856aec5b4ee90c33e85b8d88cde3870759320b4c1c0d8d727c8e379f84da0221b2cdfef70270299bab0b7f9db8c69d7c9ea6d01df6107e04440bdcf945af329bc016892d8c01f071654ae3b19374946246027210cf9b1760aafb5e4a935c2d0b7c70db3721279e6fe43d712468fed532cad432ec30a1372554c97c3769c380c709018393364ca97f9dc37a0d393511990aabf398474965dc45ac2a37ad60163145bc3b73e7a6c2032f7d2216bc19b26b4cc55bc68ed996411bb00715473f4e0636282c203770a3bbdb26cc58aa7b4c69dcc01ee3e53ae514169859b632937cd8c355c560cef5c091f4080047929554c94d7115393fccc11fe397f2854564533fe9e66614da3afe15be92196268720f5fca36878797a2b045dadb2491fb3cdcfb7253f18750774d4108bd6c7c6545b801e8e368a1087e0f33c22a359907c1c75bd59db28268da457699337356436786b16bf6a25fc55141bca303faf566039991c700a227c01e6543bc173c06b9a8026fe07e032c30f5d4c86a950a3a7b32e6c67e51771d78c08cb5382bd4fa8068969926d352f7e5820ab19878197c25172e95d6ab6a05acbbe375ab955bc777977d2b926786c9143978113c490731438ea53c0db27bada4be961b38138b4c684a12d4b08b6f03ab28f6a260b01afd348b59684197002bc534836c8b735df139ff98c84ee03a58e02d0e6125f1e09bf7d7a91840226362a667627ae5f580ee50b594fa64892a508ff8bf80851abdc45486936e11e26beca14334454d66c0128663c52a8700b525950425a4ce7824b25b9e45ec6bfff8279d1503816ac76f498f8e18b2b626b285655ab40096ceeb229856457699b500b77f7af5c2bc8c545c4292a387583fd74dcd20c4bed85bec8c245c63608ea302d557199d9a70194a5e92acb24264532b02baa8f824052379395b3b4222536164823c379782837ff417b1583238721b8b6b4a5be982abfd35a90d07bade5c03c4c3170257bc0e88b41b242b146027baa2cc72474d00427b0c79cf294203df379628799452d3952d2ac709f20dcfe33b001022917a4678966f1d9065cad2bb9b6979817873e8d662d7ba8343d18729291c544c00fdeac5ead3c8dd2cf3e2ec7899253e7f980f9ab3230eb1a9a3688f94bd522ebe016e2980d72c13035e253575fcae389887037cdbff8ea508ff9e5337e2fb607919747cc53df871600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f + +# Official test vector 28, seed: "cd6cfe94e9c0a1cc4ffdcd2d7876504be5f50f1d1ca5cf93482943465b268276056f2781f4de805c138976ca72621387" +seed: 2e889f44e28901e9ac7ca6b2fffcb124c8979401b17064d7e1d51a7e3c3adbfa0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f +public_key: 10489b6e431f18744974e86c075394189349b00b1ffd5cac6072cc10217b0e3203e3f61e1d9281c2d208af83a7f071ba78546e273271ac1cc01a320f35e845f10c59bb8c97e1627603e51a06e532ee716eb83519c80a4833c7ab45e6951137c0f731964ed2197b033e17bcb5237a1128179a85d24f730a6b31ea0e52075ae2198b48106ad0e1225701313af1a7b675347bc0ca48d88c4ff054edcb1092e87ccf070e10dc093bcc9bd400490250b7dca3775b715f218448caa01a8d8c8c6577cc9f21a7e3e6208b2c42215794954aac57712a3845523c74960b57a97e0c310cf7b8798192eb9507fe65020f706be129774f10794f2296abd13587a78456b083a164bf23c801969a57591062d22bab23b61e7dd5b31bd54520f4080a4c6c01c6603f4b4b1aabb99681be0b9c671f496f8cba2a571502e0da35ffa9bd2c77a5e66809e4d54000b851b2226e23c1072253826f374842da312ff0931b7a85e6186f5e6a31276a2d40a81fbe135e2c86c328b896f07c2269f983b313cd92578882a321f0031fcb9a9e7d618fd3d543e34abcdddb98d4c4585cbcb67789283c442f8c5cc914427fb1a53f3e35b78c2110ba956defa035084c53cc9b6fa7946e11840087e8194db6607246c7b314ce7644b8e522cf494a6333dbcc23da197cea95c318797ef0a18c84bafbe968df375fd0c9981757aa8c878658722bfc2684e012af3b30a067ac996315b0cfb13ec45220c9447ad4374c78484ac652921328214ca33466f6024abb7a78cbb528c44a339638eef09d3ee370d3a1746053629e7a37eb2600f2f73eb9d572030598042315b093c0082456fab06ca2a4c9bbd4c651bb297b494fe7e38d5c8aa3c7cbb6f1189d4a2c02de0acdd0e2c7ffa22e83c63623a21dc137c00e07193bd28264ec0fee2259ff2362ebd1c252103d93645e92e398f46935109bc0cb50c619424db0461823d33fd8d271727554a4c86a5113a17de7bd17b47cf04bced6cabfa7e926993b57a6c0a693e251e3b90b7b17195ff037fd867b87109a8be90403060cb34b32688c263eb00194391ef6c978db4c83c8967a735895a70b6dced06016b3737015696f1a1945110a44f022472c0ffbd049c0925ab1d68ef3f775308c2a95e99865c04b17b34d28a1254c433313c972a7f51a48696db9d7ab71d4600c0563b36437fac1ba6ab9ad6e89630357485dac1485e2808de8869ae59fc6a952890c69695424e3bb9f27aac2199301dc6b36503699f2504ac5e35adfe08048f9842df3260abc3d209a1311d65c048b58111bc7fbd6953d21b56364a51d9c2419072dece82b9d93aeb99c3f0a5a6c3f276504c3697a7c19563abd84068e8a39373c1375d848400c663c44e6c968c3c61fb375eed10baa60cf6158aa7e39c99e609a8b0765e36a2fbca515e4581a0207ac3fd5b3b7a95f193a08511109f335cd1dccc09223129da93aeab93ebf397bb073bd6374634675b6386caa33f71e04b1b420a2036979acf22835fcc511186441e1f5858402af78ba99673125ce9331b6686821ac739fe41467ec22736463ac4415db238bdb9a32e1895e0445aeef16b12e818f33a435afa91f850549ed465fc026163f988582040274638eada37dc162bb2d2839ca934bfa44acaec450ab4436ee78a5e658134bf80f914052be1a605e69ba87005f4042a25569c29243157865c5bed6918da360c4b824c7ebc8157870962737d150ac5583907c0c0f0603b1dceca45e10467ecc3a4435355af8254aac26f411a37b2587f40cc023c1c497664de5d705fbd0c103e36875b168c1c732ab364e1a4726c1d8207e1830d73721dfcb55557352a6508469eabccca2ca706c1de5fab0a7647d2cf7b05e117998173c5b3958d483491f128f01889fdf00d0b668a857479030f0c16bb753794719e4e142f0c5a1a52445de8862cbe3377c383deae1817b8110e045321a16594fa7c1d1037fbcd2208158c625514f3464237d7c73b0dcc605fba342cb6fbcbc71391577ac3781adb39d4b1c2236a4c9579810d039c10fe556dd954d71e705c6fc9389f3be0089697dd6703d8bb8ff08c88bf6773082a56378b52bfb30182c9ae1512ae1c2b9f99b4f3d0b20f8593bc530c585d737540972bcea60e11441e07a9c6827031363990b383b6f42afebf55e5f20635ba731fa86c24d6908aed77e3a57b2138c0c83a5bc98ebd3a002c0a9c6 +private_key: 5bc2b53498cbfbe8cad9602f75187bd676b0b4995353374df1c4aac9d105b8172badd17b6707b89ca23568f5bed5969479557cf8a0abfa8b4913a7bae3720fa73c705655cb39c48137d2b0878429fbf44a0297b1dc71496de1c341290865d60b8bd34c761933b3f7cd78e42039a4377fab7c8c82b9cfa6b0358b0783b766e3a598afca3aecc59d0eec2d35a0a55210a94eb44377634a1c097635d851d022c5f15838bd299f6e1a2c7e8cb330515f595966ba717e0da12a2dc84e16902e6b022a48c4cabd27993e5587cfb4575fda0e67830078d01935e4b47861c893d3c59267404bb2238ca14534823a3e1c82a97047f1b32388c96f615c729feb7500125e17881bfeb2b7425151914c5bd24b479ea33bba133a56fb1bb155ac34aa2c15d77588ab13ed53432bd0bcea28b79c9cbde8e66d75e6ac227224299a3391a38be9ec2154751729022e588b341a062f6794494b0b549b0832d011ca6d04c976d76111f85456ac9c21649106a8b58b359c943aa7722c0b737393f5c9040e0a9126dc8ded3703ee7298e1424c18c2492fa1573de9b77ea9988ef88db2a61221c8729f0b0c88773f8f9553ceba7ae0d6c9ad7ba7919741fa140e0703c96034766b126a6f992bf13381366121d0205ef45a9515b5a05d8c6dcb293ae44469c8875c40813db41a06e935c80fe24ea9e178edea641f48519d6a6e6b0547c4940ae1178b234bc06f07129a6c9287dabd64f151f0f2be8bc9b988b71341c74164d430fc6bbcc4e23d36938e2a4a8ebb8b5a0d906e428089e48946b63bb2525954323421fcd76bb00245ec4761c5fb3ee5f255ebfa33f64584f6dc971189a07bb19479f99247c11b3318076c2c9c08457e35aa25973a31e1f0a82355916d5891f193b0c45bb1d496091d7a47a33a83a5f34ebdd9b8935601abd60768fa5c2ff2bbf2457aba1523a3007e09b90a400a0c8b23beae5b48d6e9c642d985376a09b8ca6ddfb493ee37a0f6551f9c9208229a36cff883c09b5239a55680967648116010645450da2175ec5e4a452c982ab3ced778a802644945678dc514daa144efc4b53a153d6737a6dc3515c4744e39c61f9fa8522f39384738c99faa3a7cdb779b9a7b75a5603ac55bf13620b647692f40594e144c378a3b5041ac1c63034198976bf9492b7393de8455c284b1d3b2b773c448539bb493a9a8f1fc39045917f40a8cf2a052008626423328417478856c1cb67c36a34507ebf38eec630ae5a73f7998344cf7be33268fd99492d895aaadf5164df7429af1816e516f2717a0f6d0858b3a0119aaa1cc041eb5172d465184ff312e23f766ad29746e78aff74abd65a2af2a0ca0b65cbc1f1a9b8544446c28c010da1dffb708d842bc82014cceea6784a35d74510503e8a8afb7985684253f000bb2c95524c0827401ae9b058bc65896cfe43b9acb3a00a475614136930bcbf0ac993e61236c24123105a6a70058a8d49a11931875f48f69a074d1757876f598a4a665ae6278a8e27d1591849857c42fd2a75dd4096359c4cee2a42620b62ab641da1bbc1ff4acdf2220fd0751cc8a3789c06500765c632a32bfe88d0f9bcbb9303eb1f6cae94a45d5f537c7eb7205d81c65863216f571d3babac57a6520a30a76f4950628cd46b88ab8f4c88fb33dfdb13089d85bdc7550647b257dac3c6484cf0e881b83f241b5d869b5076148607718e43ef56572a3aba527595c25d541ee1477f50773cc433d573b8c1599295b01b321c7aac1f001c65baa0d63650fc8c45f7312d1a7700fa1bf92092768c406934a8bb3c94951f17fde83804f2608d292999f53872b167d2c4c17cfaccc9ff37ff7542e6d097bfa414ede2453f2328408f0580aeaa7e67116cd895594452458675d93c03177c31bcfb57cd173006548966bbb6cc628c446576e9eeb602810a04fb126b37c45a6e4041df38330812fa517117400ae7f429ab1a610d9d09e9ed36cee0401d09a0d847b3dd2f826eee3c841b4526280225d106eeb183c816a6b8387277e588712279cee18c34d3162878204d4506f659047a9e126dfc756d946892d991b4bd406c83cb013fa8a9e7758aac12c0f0bb6c014a048d5457309a125aab0759aac0bdc347dbc7eb572386d71569198c6f0a6c213c44a14a22ab40a7f34d1ac821972710b8c10489b6e431f18744974e86c075394189349b00b1ffd5cac6072cc10217b0e3203e3f61e1d9281c2d208af83a7f071ba78546e273271ac1cc01a320f35e845f10c59bb8c97e1627603e51a06e532ee716eb83519c80a4833c7ab45e6951137c0f731964ed2197b033e17bcb5237a1128179a85d24f730a6b31ea0e52075ae2198b48106ad0e1225701313af1a7b675347bc0ca48d88c4ff054edcb1092e87ccf070e10dc093bcc9bd400490250b7dca3775b715f218448caa01a8d8c8c6577cc9f21a7e3e6208b2c42215794954aac57712a3845523c74960b57a97e0c310cf7b8798192eb9507fe65020f706be129774f10794f2296abd13587a78456b083a164bf23c801969a57591062d22bab23b61e7dd5b31bd54520f4080a4c6c01c6603f4b4b1aabb99681be0b9c671f496f8cba2a571502e0da35ffa9bd2c77a5e66809e4d54000b851b2226e23c1072253826f374842da312ff0931b7a85e6186f5e6a31276a2d40a81fbe135e2c86c328b896f07c2269f983b313cd92578882a321f0031fcb9a9e7d618fd3d543e34abcdddb98d4c4585cbcb67789283c442f8c5cc914427fb1a53f3e35b78c2110ba956defa035084c53cc9b6fa7946e11840087e8194db6607246c7b314ce7644b8e522cf494a6333dbcc23da197cea95c318797ef0a18c84bafbe968df375fd0c9981757aa8c878658722bfc2684e012af3b30a067ac996315b0cfb13ec45220c9447ad4374c78484ac652921328214ca33466f6024abb7a78cbb528c44a339638eef09d3ee370d3a1746053629e7a37eb2600f2f73eb9d572030598042315b093c0082456fab06ca2a4c9bbd4c651bb297b494fe7e38d5c8aa3c7cbb6f1189d4a2c02de0acdd0e2c7ffa22e83c63623a21dc137c00e07193bd28264ec0fee2259ff2362ebd1c252103d93645e92e398f46935109bc0cb50c619424db0461823d33fd8d271727554a4c86a5113a17de7bd17b47cf04bced6cabfa7e926993b57a6c0a693e251e3b90b7b17195ff037fd867b87109a8be90403060cb34b32688c263eb00194391ef6c978db4c83c8967a735895a70b6dced06016b3737015696f1a1945110a44f022472c0ffbd049c0925ab1d68ef3f775308c2a95e99865c04b17b34d28a1254c433313c972a7f51a48696db9d7ab71d4600c0563b36437fac1ba6ab9ad6e89630357485dac1485e2808de8869ae59fc6a952890c69695424e3bb9f27aac2199301dc6b36503699f2504ac5e35adfe08048f9842df3260abc3d209a1311d65c048b58111bc7fbd6953d21b56364a51d9c2419072dece82b9d93aeb99c3f0a5a6c3f276504c3697a7c19563abd84068e8a39373c1375d848400c663c44e6c968c3c61fb375eed10baa60cf6158aa7e39c99e609a8b0765e36a2fbca515e4581a0207ac3fd5b3b7a95f193a08511109f335cd1dccc09223129da93aeab93ebf397bb073bd6374634675b6386caa33f71e04b1b420a2036979acf22835fcc511186441e1f5858402af78ba99673125ce9331b6686821ac739fe41467ec22736463ac4415db238bdb9a32e1895e0445aeef16b12e818f33a435afa91f850549ed465fc026163f988582040274638eada37dc162bb2d2839ca934bfa44acaec450ab4436ee78a5e658134bf80f914052be1a605e69ba87005f4042a25569c29243157865c5bed6918da360c4b824c7ebc8157870962737d150ac5583907c0c0f0603b1dceca45e10467ecc3a4435355af8254aac26f411a37b2587f40cc023c1c497664de5d705fbd0c103e36875b168c1c732ab364e1a4726c1d8207e1830d73721dfcb55557352a6508469eabccca2ca706c1de5fab0a7647d2cf7b05e117998173c5b3958d483491f128f01889fdf00d0b668a857479030f0c16bb753794719e4e142f0c5a1a52445de8862cbe3377c383deae1817b8110e045321a16594fa7c1d1037fbcd2208158c625514f3464237d7c73b0dcc605fba342cb6fbcbc71391577ac3781adb39d4b1c2236a4c9579810d039c10fe556dd954d71e705c6fc9389f3be0089697dd6703d8bb8ff08c88bf6773082a56378b52bfb30182c9ae1512ae1c2b9f99b4f3d0b20f8593bc530c585d737540972bcea60e11441e07a9c6827031363990b383b6f42afebf55e5f20635ba731fa86c24d6908aed77e3a57b2138c0c83a5bc98ebd3a002c0a9c60409f3dfebc62eda14a11b1c03d59d46382c2c2a579009c0355da8a58440c49a0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f + +# Official test vector 29, seed: "265eb2de7099e4bd5614e5de7f0c2a05c78ef3e8e2dd4ae4cb70f3e5e59c8d1d88248303f07de0c5508652da66b47222" +seed: 174aaa36410566dc15a5e62874218d7abdde0b2c0f30d877bb80b1abd5f5a0a450a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed +public_key: 0dc34b0fc991bea47b02a8cae2f81a10043ec8d655124b3ed56505296c5aa2227ce2ac04a0a31ca05575b2e55c01119d6588cfb529aa54e707155bb4f9a63966d9566bb65a95287591f715e6bc0d7fd1691129999552b1771b35a322c5145c7a40d79d6d9c3eadf941112c4f76d678cb0aab59b9a30bbb340e078bc2899951691f9bf84189a87f2af590f881027a489ea1bb89e3a8b65959ad503a5e051c5f398a654c708f9ea51bf75c6bfc25634145076a93aa6e6640e6b47158ecaeb621c606c065972c9f26a34736067161e6bd49fa2871631aee5b518ddab90f692929d5a7a6e76582e53dcd36acecb6a76dd9455358ba95eb8a70d3786c01960b367e15536b456408e4faccaaa139c8e9737ad6b8b0e380bbac446c73b7b388b319dc2047fb7338072a0f225b506253afa722c812419e9c739c90beed97ba8f684111900e7d1762a5c0903c390786e1445b615a1e054efb7b0b1daaab671a63cae7b55c8b6f13f10d55707650ea8d864c7e5217b572643e6c7480411489c9ab18400483a657185990bab58b6a734596a6123dfe5240b2f908fc8c3591490f89875e0ad3b06f6812ea973e6fb0a69886199b3b55b7d26a55501b43609b3d6a3981cab946049c10b5737daccfb2040e014a5f715b4c1f8b0406b3a3204602182450d10b019b388bfe31b5a5a9794b5863bcb34cf6f659b25cc95f0a42fa9305a0d647342845d5b28ff5c1727975bb48c5ad2c96b97ddc3bd4f0b40e9b6fe1138739f1a9ca3b969cf33ccb700fa9fba93ef565a8aa180cc3711974bda14ab85e3817ef4801c0c3b3f68403bc94cc7412ad044a220750b6ca963e3e052f310bb1474623f707157c8a7d67f95989492278ca5707ea6d106431fa5a3b88c39e3e360bc0288925932d44a2523b0980a221519ceaa65353a7483b7de6028744a2869bbc869a58bed2327b3c6a4aa7447a9a09bbbaf322d5914dc9d5a1ef8aac92b920524c6968289d7da06db2561eeea26fb764168c185ec20ccf2b57a89f2887720809e94c377b313cd5ebb7f71037bbf01bf85b675432b891850316f6b938231793aa3aab2972e979c7aa258735858434b6386cf0c5a9232f60a70624b4cbe9f10fc9e3a0d7605bcaa23ab49a222f66127a1a4b9f2bada03c8dcf330e1dd90131852b71cbcfcee91f528377d200433dc898c2118f7b6275f4e0b9a97028e759ae0c77477cfc26a1398cade7671ab89344140f5c3662c736107205a2cea71c3612c4eb063cac777b9d6b61cc0419fcab4908ac161674c6b4c58c53a5065c637d0a4c964e29729667aa949c39ea0797b6882951314354ac28d52c2096049df866bd028b1ac3b47cd2e648eb322134522ab2993db33491326a625e8739672551562b2829ca57ae6518dd4553146281fa57aa373412f22c2d0cd02b6141ba29f31612447deefbaf8f974aea75140db2b85de409db834c283440e377147b2b8204f09da14028f1960fd7c6b29ec1bdab0098ea22669d7123d36a52dcd634a447209bdccea731b47719745597955d3372cc533cc9b59712e770d7cbb63cf114cc02ac9933ab248617b9b284a8763a8856afea63c442ba7407905c6db13dde25a24062b7db428958e2b72117652535c1c24226266bcc7e87a721181ced66cd9dd1c8d86a1c28d0c335b66eaf7422c1bbb3a7dbc7f2a81c7a477a35717a23b486f307c766f1291be3afe8408026352d28a826a7e57819390f3341bfb8e258640213bb06b8aed87eb78b216971060b590f16d05d83801404ebc63b7304a0880062b4c1e235655b43c2b6062c28d4064a1a861a9844544776e8eaadc0ca66b2cbbb691460382b586e77856b8085a1d6795f82be8185c62ed79b2bb8a3ebf57150145892f99a27ec8d1701265cd16b5f5293955400a44192b0e47f399a0bbb9027f9d3aa1f5407465b8b28e2a87ab881be300fb72047f61a53b1282c13b65ec31045b1e0b779580017e1776e46a5018598799296f49c1447370af1227a7c000e327b40ed2965ebfc7a555803d4d34176e14bd6f9905c5c4e253062c1110dce0c22e74779f07846a6806eaf340bec965dcbcb1a2c40a5e6428d2bfb50ceab3a64cba6aed667edac0cbf03ccd8d8a56d73c70b122628f90e4c760ea21c485a0536f6f1632f900e1cb13208f442501c6cfd05027f5fae41abece025084a5e4598a766114b13b17dd16a4c99f255 +private_key: 55fb671a41c8a2850965768b1ea68a496a772291ca1bb79aaaa07b542678f391bd786579be185f883cac4350621fe531dde9a3729493e1e71530a5261a4cc20b41847d815297ba8415954ac0307543c34dae9b5007254c18414a01ac0fcc55707d906a73ca41a2167d64470b9cd6c082a27fdc62b7711b2c6d4aa9fa00c1348c7666b7a181bb0b84617a9f67bc9825c0e2011b4cc5b1c3f243501a56d27cbbe2f73897332f1bf57edf885f7a462d801089e9d96d14b9a891a909dd8aa7205545fd319598d3ca93e13eb0219a3674554c45238890cd54bac9bf3058bd0a6c7de7c3ccc98ab53c99f1e0bcd0f975d51c0eb11113b1144c8f46be95c11b6a7909aea01e3cd013a274354118b351e95c043073f4a3c0f8fc5d50570540281da1d0cd7401615eb29d4c15b8562690d96531e48003478b805e222043c0611c276940d58e41900c34862f0cf80dd072ce0f8cb6e948cfcef439333ba87dc04031711dd7859855a4493d4462d5b08bfa825c0a01972c333ee1291dde850a33eabbd83ac27dda737a0aca9692b197358d82438fa24c7721773a61a52cd2781640ab111b588fe4f7a8ceec4136115d30e325e5160975dc915cab6369c579f2240881a02276938845ca6c679942757263cd4216cd0c09d01696cbc83b84b430366c2a73207a586b8400f4a9b098bd53a222a51b31b3e1a5a215824f268790d620754c1a387001bc9a3605d94360f9b50ba29723d8088a0871a0b79badc669cf18bb95ebca4e53106160a71eecbd492757f2e98c27a47fba13c7519399cbc2a2121a1ae5376594159ac23b856888a34026904a3734141bbe75904d9d727486e644d7d1c7eeb4b7697ac925dc9fea40421482ade07b35879342b71426c8e21ce9ca3081d62e615661d1168e102779352571d884c1104b760e29bed2bc4f5e01bef7322d1ed2a8c0c882798781310197828792430530443481a253ced84b8b7ac4736452703298519d41bd59cb3c32a2271a592a0f754192a6672607a346fa3997b360f0a75b423397b2520cfcc44c0197c7c7a6443154ac6f3985c1256a0aec9bf72b1d8dac046c7376b6a424b5324ba04881afd25d16387c43aa57ecbb9caa055c6863339f420b09e1cc665982e73997e23179234250b5c047a9e5b656169734576fae1b970c15a9bcabc1742792e2a9bae6c29b391b6a91136e31abcdc859ca9d3a7a807c36db195c1731ad11da6afb304704475ce0c3a73b42be27172c8f2824fff7b933102d1311a310444a73cb2e71a9aa6b482c73317689235b49f44c7af6a02d5ab3547234944bce390756719cbfc6370b18ab828a6971f770182422a9f2eb2c8523605ab228026797fc1721aa942ae8087010a5bd2c2886eff0a29fa99daa8a91b8a1c6395544dcf07586ec99e592b995074fda2a716d8a86fb1005a380878c07243d708b1bb15bc2e639cac28011e461c34c17a47a0e5e07bed0b6761429b21c04689df8a2aa22400253801f41196a02522ab49c1b724107012ee3c362ce351f774c8943832f27732014c8918b2c8e747bb0cb531a3019204a441786ac3dad4532a508147a334fd772ccec01a07c021e2b59238d7b57d24a8f4c90b1b7a7546144c9fff2bd9b931eeea30fb2677d5a3bb24ffb4c15c0a222f151b0fc3b2fb68c96140c22765e36d471bda76bead7baeaea3e86296403a673b0c60389a66003da689f42c73471c0025364f86a66826b9e03864781073614d90eebfa1f266c4255823a37258f51c0839d2106a90171f1191035310abcc8522d814310b488e51bc7ae20c8597cb2ef11645c9b921ca2424f3780d6c87a17a9ae9fd0a5b15c6d9085c6e580a1cee699a624046595401a370912381a5a9731e3f3396070c2e2795690abc0383a71ea4aba69459123aaaceb99691a82c729d028bbd69ec903a60acc9fad24cedc2c391c4007dd324ca46581558cbc0bd4a397a776db07c41eda6c24f436021b4b269b105d33ae94a55594e70232c15cede461c40742bb950447064d21220e41673f98b57ffb9a23fe096dfbb4417e024ad4121a824274c75c7d457794c9034364aa1681c79ad7f3c3e308ce35ab8704ec566eb786283a9ed8eacb14e24ca349a581598e26967b88ba5b3e4a1bcc9c13cc74330d6409e0e1057c125aaaa4ba0dc34b0fc991bea47b02a8cae2f81a10043ec8d655124b3ed56505296c5aa2227ce2ac04a0a31ca05575b2e55c01119d6588cfb529aa54e707155bb4f9a63966d9566bb65a95287591f715e6bc0d7fd1691129999552b1771b35a322c5145c7a40d79d6d9c3eadf941112c4f76d678cb0aab59b9a30bbb340e078bc2899951691f9bf84189a87f2af590f881027a489ea1bb89e3a8b65959ad503a5e051c5f398a654c708f9ea51bf75c6bfc25634145076a93aa6e6640e6b47158ecaeb621c606c065972c9f26a34736067161e6bd49fa2871631aee5b518ddab90f692929d5a7a6e76582e53dcd36acecb6a76dd9455358ba95eb8a70d3786c01960b367e15536b456408e4faccaaa139c8e9737ad6b8b0e380bbac446c73b7b388b319dc2047fb7338072a0f225b506253afa722c812419e9c739c90beed97ba8f684111900e7d1762a5c0903c390786e1445b615a1e054efb7b0b1daaab671a63cae7b55c8b6f13f10d55707650ea8d864c7e5217b572643e6c7480411489c9ab18400483a657185990bab58b6a734596a6123dfe5240b2f908fc8c3591490f89875e0ad3b06f6812ea973e6fb0a69886199b3b55b7d26a55501b43609b3d6a3981cab946049c10b5737daccfb2040e014a5f715b4c1f8b0406b3a3204602182450d10b019b388bfe31b5a5a9794b5863bcb34cf6f659b25cc95f0a42fa9305a0d647342845d5b28ff5c1727975bb48c5ad2c96b97ddc3bd4f0b40e9b6fe1138739f1a9ca3b969cf33ccb700fa9fba93ef565a8aa180cc3711974bda14ab85e3817ef4801c0c3b3f68403bc94cc7412ad044a220750b6ca963e3e052f310bb1474623f707157c8a7d67f95989492278ca5707ea6d106431fa5a3b88c39e3e360bc0288925932d44a2523b0980a221519ceaa65353a7483b7de6028744a2869bbc869a58bed2327b3c6a4aa7447a9a09bbbaf322d5914dc9d5a1ef8aac92b920524c6968289d7da06db2561eeea26fb764168c185ec20ccf2b57a89f2887720809e94c377b313cd5ebb7f71037bbf01bf85b675432b891850316f6b938231793aa3aab2972e979c7aa258735858434b6386cf0c5a9232f60a70624b4cbe9f10fc9e3a0d7605bcaa23ab49a222f66127a1a4b9f2bada03c8dcf330e1dd90131852b71cbcfcee91f528377d200433dc898c2118f7b6275f4e0b9a97028e759ae0c77477cfc26a1398cade7671ab89344140f5c3662c736107205a2cea71c3612c4eb063cac777b9d6b61cc0419fcab4908ac161674c6b4c58c53a5065c637d0a4c964e29729667aa949c39ea0797b6882951314354ac28d52c2096049df866bd028b1ac3b47cd2e648eb322134522ab2993db33491326a625e8739672551562b2829ca57ae6518dd4553146281fa57aa373412f22c2d0cd02b6141ba29f31612447deefbaf8f974aea75140db2b85de409db834c283440e377147b2b8204f09da14028f1960fd7c6b29ec1bdab0098ea22669d7123d36a52dcd634a447209bdccea731b47719745597955d3372cc533cc9b59712e770d7cbb63cf114cc02ac9933ab248617b9b284a8763a8856afea63c442ba7407905c6db13dde25a24062b7db428958e2b72117652535c1c24226266bcc7e87a721181ced66cd9dd1c8d86a1c28d0c335b66eaf7422c1bbb3a7dbc7f2a81c7a477a35717a23b486f307c766f1291be3afe8408026352d28a826a7e57819390f3341bfb8e258640213bb06b8aed87eb78b216971060b590f16d05d83801404ebc63b7304a0880062b4c1e235655b43c2b6062c28d4064a1a861a9844544776e8eaadc0ca66b2cbbb691460382b586e77856b8085a1d6795f82be8185c62ed79b2bb8a3ebf57150145892f99a27ec8d1701265cd16b5f5293955400a44192b0e47f399a0bbb9027f9d3aa1f5407465b8b28e2a87ab881be300fb72047f61a53b1282c13b65ec31045b1e0b779580017e1776e46a5018598799296f49c1447370af1227a7c000e327b40ed2965ebfc7a555803d4d34176e14bd6f9905c5c4e253062c1110dce0c22e74779f07846a6806eaf340bec965dcbcb1a2c40a5e6428d2bfb50ceab3a64cba6aed667edac0cbf03ccd8d8a56d73c70b122628f90e4c760ea21c485a0536f6f1632f900e1cb13208f442501c6cfd05027f5fae41abece025084a5e4598a766114b13b17dd16a4c99f255a964f69c975bc276b67b828d04997c8caaf20600da330ec642633f9789858f7350a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed + +# Official test vector 30, seed: "806bbd111f27c2668318387bd0830f65ec21a51af01985ef48d03d64e1958ff7ee5133a4ebf6dbf36329bcaaf65f40ea" +seed: 351fe4313e2da7fac83d509f3103caf7b4c64a4d458fefdf636785ac361a1390f072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda +public_key: ad4330bdc85f4699cccd373de5d7266e5530a73a42d10c9b327a57715539eb99030873689f47bf6871a00c6caa06e4b04a832c865b69293303cf838ac186b453d77088895db36163b1074a8e045911fa92db578cad284642bcbb44f844c6663f3f4c98cc8acfa1a96b6df57f5be10fc76477d306245670b2c796672331076f74480c2627a3a44421a01229509752a536e95ba97e85aebb920b4b1b1bc55bcb95fc76ed43b9805236cdb62861fba353f08409c91126661580123509c05208c8604389b2dd3b0f8fc94f432b41632c4ae1ca0bdac54ceabbcb743362725b839dc18add4b7795a025261139539641aa43a9c185621d13c33c579189244c884c047bab4187577c97639ca4abc631eba5e9b141e11b6aa8d562449c3ccd8757503a7ab358a24d2b36f2e1768fb24727801123354b6dc661f640883e0613c8886121b89336202eddc464204b1dc16b9fcd3906bb9a6cf8d6a176a43aa1b13200d67ad0e21f2f73186164a6fab968ea0427c82501c59c49488846489710d7976a5c812f78b5b7df2aaa6437054b0a03180c4a886b7d653149e8497b18b18e98e72f9815be90d252a4583f2de88c0d7bb10cea4d65ac1f59683db4ca4969a9b57ba65e06908f7e9267adc8c87e8b8d8d5651b234bc9ee1c65fe42a51368a041253e982100c25955bc39b70b36c67484f8df88c2066cd2a5339c471b60a1b81acc5922e274cea4a071eb71e788241ad1b7c41db1e972212e27c770e6720a7e67de941a1ca952bdbbc591ef78019c67dd184259bc873f045607d1440bee46f199a7d2274b4e40062c064368bf5c6d50046a198c89e1372950b7710b3b6376caa9bc32882a6b0aa9b7fae86cccad0574cd8b417047d30d41bfba0119b909142363d307a006265a3961c9c604a7b65384a5deb1c61f25f66fb3b7640b5c3e22b8ed488f08201a10c3b5a42b043965d4fba6f31b90c5a8a1d8b29a01d500be93225ab6acf77960afd2824f2283ce86288cb1a9b98c11b03dbbb0e0854731b22464331f6dc70e7e1771471236b5b26ce131649e77d46e7946b85593b2989bab4ce5d09ab8d745a64d53401bc0ca4855e54b20ca4811ae5d9192de398d9d65dd3a327499cc0ccaa9f9b2b547c5b53722b50b21c7bd2c3c7f67a15be8371e9d4583faabf2467a4d5365cf7d92b8de8a55de200b61185b89c83bdf817adcb67fc775a5bb19f1aa453b491cf1bfa8d51d0cc499331de7730877a2db14778052cba5d759e21a8cea550724f52bf25c2a31d7b117a4377f7a461ff92882e11a4a8c137ee5a4b7aa67f712838737a96faea898141a1b5165761401adbb650bbea1698267d324a3cb1d9933be8bc95d55aadc4a814f201ebf724fa024763563e2656b028053cbd16b32c20457349702702c4b453a277b318551c8b732378e3d7bc31a10b5ed975ab032fbff647c6340c2d5c91f68c1addb447fff01dfd4c0c9d925111948f001880b36588df16cd1b9bbe85973ce513662267214660340262273fb45f97f65da4e615dca4a6aa06c5e9ba0ff727775c84608611827c98c8b7717daa60004d2212dc28b4392a6e0333a77cb9400978b60a00a766f6264486c60af452fe92452156961f2467d013072f1c4cfbe08ea7885a74d0649517178412a1ac63261981adb7708dedc89b64e67dc2a8b25d98cb1ad74289372e48fabe360495b4a7472f3c8b7f877280ebcc6019648ef960ca23a1c49b684f947460e96f0e941408fa026c127900d84665768db52a8ec05696725b3dd82498226030b7189c9ae1c612e9a2c65c86c29426caf686d5b00ea0557466a1b04f8485a457bb83dc68c4b1cb01e7831e476453f084434151fc0c9ea3b7081ee00b4665048bcb8fab778eadf90c25f54d8f452381e252b2382d04028378e7cc7b3973cfb776249857cc611af8f91db8d5b9f5d90212b27d5fc9a794d53e3e002089a05a421a540b36aac5c803c8f5cd71012f176ca57a7a439db90bdc71ac65f0470d54188927bf3d2640e5a3a45d9021f876562fa7c6c2b37be9261393861c5f0336a47ac373e6874ec53fc9f90d856807675858ba1291c7134c4b8432f9782cf6855ae9d49226055d9c4b2f23c0238f20b516d6600fa72d8a5c2d06e1613dbb7fcdf9817cc299ef2614b6085517cca4006876de51659c317c7c9d15b2dfa3cfd29db64b6dee0f6e53b6bcee0ac31c086db16d +private_key: 0054c46a1943ae410f1d4b32823272687175a7fc81c1307f51e384fdf6168983525c430f0ba34722230657c2ce28f47fe354791b624ca6462f5634be583c822a55180dd8a7f00b21fc2b58d1a1746699ccd91acdde65280048302af4141a56000675448f00b57db19788678872abcc7f727af4e816f6a1b8ba7ab408ab03a28a28c0906d47b98b702b513d306212e96be12647c9586808025b74e37a593a47e2b00f6d505e38586885baa7fd6257d30c3ba38027f5d149a4d53ab5019386779423851f84c234931c341a216f84e503fb429183e8544018b78bc90c5dda2923b68ed2f47014683b3be50f17cc7ccb36b314b0528f8c7cbca19d936300970772af962ade7c7efc2602a9175fe0b11628702502a9a0143a0c7004ae1dfa2aefc3986c74348485a846981121250d07b78818302c41c20292143a9b5c6e22f61de390286e0c9c036b945fa5495a592ac3b2aaabacb11824614ab15114dccf02dcaef932361ea0621f860b1d399a22153140220497bc723a00791df15b6aacbcbfd5b16ee74daaf059e4b85e30e4bae4c53e2a133466413459e0857fc8c136e072f1b75be9a3b806335f5603a46c734edfe0994408b355442db7967682859d1a5b36f6a135f5100d259715e04c00236b3855fa25551334437198e2b317c1f54207a1b504475368d328b9d561ba33c9ac75231c127ec8c8b6807aa787b15c1bf756c923aee186a680acc4f1d6b3a70116016bcc3fb9a4d95b9f3596ad52895de27abbe0d42751804ec2f1818f5361eb68a9b0f8188e9647ec627d1751a8a5f37e6ed4a42e2540dc97272bb380195b75df18aa8709738f6207ba65affd669e3d23ae7bf1b7569aa9411561857921e048000a44819466ae28c631cdd68416e596abd9365642113b78901b1986f7b43f240300fd487689e63773c1555d1b4ece69304389074bcc99f1c88bc3068df61880d32c43b6326cfc11836d94aac626cdbdc6addef07086eccbf6f44850242a5d15219fa5598d45097171598cf6803e7b1110a04265544fff9612416446bc62cb3fe6718b2152292552bd05be6a30874111538af71b5fe08367f8a646b925e7d52cb4331ddae40e66302db02c87437c1ca03176edec873c883707ea0edc41a45c386a5782beef1c2353a97ee5a198a6e572a467aac63aacc528777d847ac835886a15415286b4e0b0c9089c6472c00b389353f0c6441d84bbd12bba40931bd2bc84270177c5db13dc7a2c913c4718a63d9470cf63aa35c705a37cda0becc0c024d1257590272d6a302f275595d18a679573f2ba283a162114f34ba8c06d21435474697ef301a0d8f50fac4324d32448940792a2c174948cab5f3710a030cd282bc97ae617bc67823bd33efd32af9861ae0b4a7d04b4b207d9cdd7244f23651424602d8ec1ccfd77a7b4317bf2504a06646aa19280a22b82a41157cefb3d3a08431d889e7afcce2c771bc5c604f71310983433cd59bd43a4adc2fc8776109beb59039aa70e8c1b8c7dc5bfed08c4789337efec6692db5cada88f0e3998e8b30e9a8897dd85cfd051c62bd9a9e12b47aa4015dd156616682e1c299357d57a2fbb22c2139cb562971c6360a7b607d7e2001ee26baf0b5957f73f8d94acbf8b3c56a3b72b11054febcf21c95d9ee82b70739846f06eb9966e280a8b007313d3084cf984cc1f7b34d7243627eb70e558b096644feeaba78541a06abbaf2cd331d8749247c2220e722deafcc5a76a0998d7bd62c50623ec183e4544f647943655cb5330381bf608536c81755319854296e2f3b52209ba9df6093536541fb654d0170c5901228a4c8f95914c1a2c87cf76a3cbf3c6a9fac15716001a2b7e0e0a8c00f984b08358e1902238e36046ab8da9ea35560313c476286e1abf559b407bf2080684b11bf44573f642002d364c35183a8b107c3952afa40cd68a22b666af575344be88a269e141ff171a6169a29a92a1b63cc1ddcc642808b6f22b65a8345ada90a992d91a9114480df287359b9b709814e425c1a397ad0714948ec339b96a229e5ac0fa985df1a19ed1440d1fc78c1fa77920abadc31c5256c52314cc970b72b0a6d84fbeb1b1f08657a636be530a5a8129a8f8137c6ffb5e5f549197dc2fe05259841b681a6393a6a7781fd03fcf592ec3b458d3027fad4330bdc85f4699cccd373de5d7266e5530a73a42d10c9b327a57715539eb99030873689f47bf6871a00c6caa06e4b04a832c865b69293303cf838ac186b453d77088895db36163b1074a8e045911fa92db578cad284642bcbb44f844c6663f3f4c98cc8acfa1a96b6df57f5be10fc76477d306245670b2c796672331076f74480c2627a3a44421a01229509752a536e95ba97e85aebb920b4b1b1bc55bcb95fc76ed43b9805236cdb62861fba353f08409c91126661580123509c05208c8604389b2dd3b0f8fc94f432b41632c4ae1ca0bdac54ceabbcb743362725b839dc18add4b7795a025261139539641aa43a9c185621d13c33c579189244c884c047bab4187577c97639ca4abc631eba5e9b141e11b6aa8d562449c3ccd8757503a7ab358a24d2b36f2e1768fb24727801123354b6dc661f640883e0613c8886121b89336202eddc464204b1dc16b9fcd3906bb9a6cf8d6a176a43aa1b13200d67ad0e21f2f73186164a6fab968ea0427c82501c59c49488846489710d7976a5c812f78b5b7df2aaa6437054b0a03180c4a886b7d653149e8497b18b18e98e72f9815be90d252a4583f2de88c0d7bb10cea4d65ac1f59683db4ca4969a9b57ba65e06908f7e9267adc8c87e8b8d8d5651b234bc9ee1c65fe42a51368a041253e982100c25955bc39b70b36c67484f8df88c2066cd2a5339c471b60a1b81acc5922e274cea4a071eb71e788241ad1b7c41db1e972212e27c770e6720a7e67de941a1ca952bdbbc591ef78019c67dd184259bc873f045607d1440bee46f199a7d2274b4e40062c064368bf5c6d50046a198c89e1372950b7710b3b6376caa9bc32882a6b0aa9b7fae86cccad0574cd8b417047d30d41bfba0119b909142363d307a006265a3961c9c604a7b65384a5deb1c61f25f66fb3b7640b5c3e22b8ed488f08201a10c3b5a42b043965d4fba6f31b90c5a8a1d8b29a01d500be93225ab6acf77960afd2824f2283ce86288cb1a9b98c11b03dbbb0e0854731b22464331f6dc70e7e1771471236b5b26ce131649e77d46e7946b85593b2989bab4ce5d09ab8d745a64d53401bc0ca4855e54b20ca4811ae5d9192de398d9d65dd3a327499cc0ccaa9f9b2b547c5b53722b50b21c7bd2c3c7f67a15be8371e9d4583faabf2467a4d5365cf7d92b8de8a55de200b61185b89c83bdf817adcb67fc775a5bb19f1aa453b491cf1bfa8d51d0cc499331de7730877a2db14778052cba5d759e21a8cea550724f52bf25c2a31d7b117a4377f7a461ff92882e11a4a8c137ee5a4b7aa67f712838737a96faea898141a1b5165761401adbb650bbea1698267d324a3cb1d9933be8bc95d55aadc4a814f201ebf724fa024763563e2656b028053cbd16b32c20457349702702c4b453a277b318551c8b732378e3d7bc31a10b5ed975ab032fbff647c6340c2d5c91f68c1addb447fff01dfd4c0c9d925111948f001880b36588df16cd1b9bbe85973ce513662267214660340262273fb45f97f65da4e615dca4a6aa06c5e9ba0ff727775c84608611827c98c8b7717daa60004d2212dc28b4392a6e0333a77cb9400978b60a00a766f6264486c60af452fe92452156961f2467d013072f1c4cfbe08ea7885a74d0649517178412a1ac63261981adb7708dedc89b64e67dc2a8b25d98cb1ad74289372e48fabe360495b4a7472f3c8b7f877280ebcc6019648ef960ca23a1c49b684f947460e96f0e941408fa026c127900d84665768db52a8ec05696725b3dd82498226030b7189c9ae1c612e9a2c65c86c29426caf686d5b00ea0557466a1b04f8485a457bb83dc68c4b1cb01e7831e476453f084434151fc0c9ea3b7081ee00b4665048bcb8fab778eadf90c25f54d8f452381e252b2382d04028378e7cc7b3973cfb776249857cc611af8f91db8d5b9f5d90212b27d5fc9a794d53e3e002089a05a421a540b36aac5c803c8f5cd71012f176ca57a7a439db90bdc71ac65f0470d54188927bf3d2640e5a3a45d9021f876562fa7c6c2b37be9261393861c5f0336a47ac373e6874ec53fc9f90d856807675858ba1291c7134c4b8432f9782cf6855ae9d49226055d9c4b2f23c0238f20b516d6600fa72d8a5c2d06e1613dbb7fcdf9817cc299ef2614b6085517cca4006876de51659c317c7c9d15b2dfa3cfd29db64b6dee0f6e53b6bcee0ac31c086db16d2a63040993f86bda57d8006a152c436e383ae407c7d9bd7a715a2f9efa507422f072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda + +# Official test vector 31, seed: "ad540a9ce816d6fb1661e5483c44f6fdd00c9e7bd1a8ceda4b4c4d3697d4f78ed0a56954996ccb7da96ecb8f5cb15809" +seed: 9bc5315580207c6c16dcf3a30c48daf278de12e8c27df6733e62f799068ad23d5a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad +public_key: 2bf6a6fce45eb9d6a03f11858433994e304b2d379c43d4670be6c9d65a61e50c34ed26c67e716933cc5d9ea22d14f86e5cc54967ccc82e3506efb8cdf40c31f313135b597b3aa72fe83b01ec88a97e32464733107294270f82216e11688df6cefc2a9332243eb75059fcecad20a681aaa17402fb36c6e091728ab92efa891d141c251895f4c79fe2db4b2253114be24d22a38b9d14532ff80e384778c8b99a4303506d08303bab91d6e05c68a0c0affb5dea7344ef5ab21a559cdfbc3be395834b4b8d8d9c4af6a9ca37a34fbf05669f99af8bdb3237c98f98802ad76a26eb353c6612674e8b4f93a190f293c80da025da00aec20265cba37b0df43d78982e6ff49a9f464e7ff57680e7455f816f815c733bec25e4227ca3257336005d0559b647585379542eeaa8282d8a90b7a885b0360c4c9428951820d189b873e246e4d793fa94c0211630f54510f7f06d116acfa35c856f87913bf61cbdeb0554589dae65a2e25341e4b93916aa4b738714526653e798c11f24563b2200319c60343869579b74f2ba9ddb03c6f3479a0ef3a5e5f80183d69034968e25892c28c272dc501466621bc091c0fcfa09a2b56c9f8cca6cda208a523ea6a40a4907c1f390780d4a04624466206594ccdb1b19d2b9cc407bd172428316692e09229fc963710165970471e1b554f322c1548a118f84169dd9731bc8c49d1b0130287024c391ca027065591fd9755ffc2a68d36b7dcdac3a54e0ce67e432e35695a3987b1d4a1e5ea32934c1cbefac253da2ba9714ab6a4a46a07950b6477c303067e0e673fc6cc800a26fcfb59a01e397f944335eec26002889b08a26338947dcca758eac669929bb4c608f9861812e06aa61f5b8b56299efe95109d57c42c066ead511bd868c2b107522043da8356f617c26f7082b078234b435c478d48a53d5a369f7907ce2be8370c0ba7347707b7ffdb25e6bab2fa85b5922e0bba7269fb7a9799a158f9806bc3589268d8514134aab1dc83d415a235ef49586133de1ba59b8fa1ef5493cf9dacbeee04f4b9a94b3daae423575682311bc70c49e65090a87137cb327419a2f2d5481d6b10044c6a551eb711bfa828a3cbf22e026d2345dca2415b6d9b03e9479faf589ea02a12d1c03939935e8b225d7c18534a2cef060456bb58145337e81f7346e057bbb98a8c0a312f784351dcb11a1fca7984a2443b409ba903c3024b8da9a8b6aabca90b74a34b532bf01c7c1c1c7ce05bf08c5c65164a01f64c86797317dc03b2d69c263390f9e411df4f4508d7b03c7b473a7e195e8338cae5b89b85465779029c0ac711653b1c7a24bb3b9bff0c612887c12a39c2f5bb2920313cf3522396eb79065bb1e854a8956f7ac2143abb4136b0682bd01275506a765175c4b7648a0dbb875e2864d52aab697533512164be2659c57151c4af898d689a8619726406110faa69f61320e75d3a05cc27febf609e52026c10c01c30118ee3693a7293f4f7cc4d9f84ec37c5f38890a6a58afce1855d4d0ce1f0a577790423115c59228b96bd62d68d90f4bfac9f17a7597a492e5711b65d8626e568f0150a458201c6205a81fe74a591b547be842765723b57503c3b352478b304c39b22b147bf6b5bc489c2dccd44c9f206b7cf58fb3faa3c8891524faaa88479b0c4051deb63eab53822f84935566ab7978c1b9e5cc043767c109bb4663960a534a750cae177aa33315584138138d52648aaa5cefb09f5cd58d008d4c69a1c85a242dd63a997385b529a288758c427ba15b05642c230c8a0180938606c6e1465166f128a35ca3855657ac1b3677a0a15d094ec68caaf90cc1958ba0dbc22169f3853f3b7d56f4bde7bb2c1c71c8c4c95299d95873f89a17a4583bb9198e0279a45691a3107ba1294726a385ed95163f0bc3c609c01ee201c5900eb763518f212f14723314715e7bc84b75a611c481cdf858350de0495d1c020228b004624900c300cd018166fb4dd217cda3c792da49a87a3bcac52542f3b3243f689ce69c1946a134a97061c83134ac52c92d97a458b7b38dfb7f42476b6c5c272c71065e5159121484d4a541311c97fca3488d13b1de64610483cb3a9551cf4a3317d0c76766c777e526595539ad17bb6c184aff73b6c4eaccd5a14ed1b1b836975deeeb8909458146938505dba5dad77c1a3acdab128b36dc1e94a121c545e3515ed56687f8911eb5e172 +private_key: c5aa9d405bcc9af610795279ef2403c6f92389332592d0adf1b3a5172c795b483e1f600f2c79a7a683574076ae8941b68fd17793fcaa9cb60d39373da09b827662835ea227ab05845853979910154dca8ba44c1511172123ea658b519a53695e1315accd3c5855e03c1e40a50e10666ba253ff23b1377830ca1a485f656b24662dd3eaad239553f3a50b2934225b2647658aa1a21828a413944a53135ff9516850a2b0a66b8d502a17322ca87b3c09866059942bd8eb4f44d646e5a80a38687dff595e92b2250c2331dfd2495964bc03a2ca5066cea671a5cb0ba079788366376f8078804e98c9493a9556d044e7d218ddb83597f9bb33369266711f0ed4514582b25f04aaf1d0247c5624eb5555d0b08c14d307b7084e41e1185465c193ab04d4295790e4451dc25491796d4b3c47b1051d021a91440b869a75848e9894c8d393c534c4b2ac1318a5cb482b53f9ba76203331e87569803b0fc2e96072f777f61b008941642fdc76e9744faf9c6f06c381f5d54492eb6ccde84f09101501c60ddda80788c4619cd48defd9a9ca6576dc451101d37d422350b4357c49a90c291aa393263cfcf887c1363769c40c76530877dc9cef88bc13f740a8612ab43599933b7a3a7495a03800b9dc66be070d8096976c85962f3c75bad40c71457e5ee929386c7f65869f3e3c067512b2256112ffe557881b873bd313a021851c581259c2cc1f3617b38cacbf4a5bf2346623f2b316e4c82cfc9c4ae2c08742709af023b91ccdfa0b829fb047661c8dfab33bc9ba334328a8f22419f2f8768039c098806937c05cedf34a8d65930b07ad66cca3ceba2de45694cb534f7ea881c2a2c8df9c9f52163feaf0cf199cb81f1c05d1ec3774c203961c2d14c307bcf4716f69b837b7c894843766700cffa87a5b6b655fa304d8b2a8aa32637af967814b7915e5283f1263ed03469768783fb757f4b8385f7995548c75b98c24fed4b2a3b28729924ccd618a21f9385c5b577642150534c31a15a854179e1a0398df0c2c69a76816979f0834000378bb9f4ac43bd098ad6944b2cb028924b201b6cacdd87f25a67e676c738931acb4c42594a4ae4354cb87008cb2f486dd50a16e0228db6b547e48780e523b8841cfe8b636670ca397990550c540e2572349947d15cc46e186cc3197045d77b8dc85943c0abdcdf1629f4a74092a65f579b33f5233ed47916f1475aa284675972c7611c1f35c41cbe6a8f1f18f3bbca2f7d9380e2c9ac9126ac3287a09e80a041531d83b39591a9618232f990862d125a29b85a1de31bc4380c0c4f56e8a93a7a332a86d114faa06189f91b76ce79cacc88bbb2360599c0e9090226c82a57c5c1403745703f6b55cb9bfee17c4dd382c17da5585b823f9a037bad4101f07a301e96953e02a32a31326b04e02a52928293af67a6fb115444f4a4b58ea17ae716d61806094a301bed3015443abb0389afd98196611cb1e0c21c951517717835e7868c4bb8c958c630b0c78032367b5eb30100a15ad9949e8051c9bab638e8c0e271cab8a3a43998532469724979879dd46c40426cb49a29f987c9beeb92c1a393d6132921b019791d776728617597b0f2738916c99a9d889619bdbaff69050e6b0c906f3048b8811a8da04aab71a1ea85e2b07ab021c089dfa848800aba0d8838dd8af43d82abb6c664e363ba30b0e383214801cc69191bbd7913cceca3a45b52b9688957843bbf86112c70a64b0e2a1c3c89ac5d881848616ca3838c3647ae686568883550e93190eba3b1a08080b46373fd05f8ec81a535650c5281843279073c0802cd33a7caca35547c0740256f8b7ccb85c790aec85525759c0b22b15d268c9755bf020bf6c913074c5a4118bb45b025372dbaed0f96329c245052c8e831c5966105ed6d098a4e4527768cc3cdb47eb343788c9b5ad2b4ef15b24d8193b5e9b6611e3bcfce348869b07bba361035b54484257d1d65b3d11226f31c299607674c783b81aaefa6161656115be771991615a7e5a7b4becc21dfcb48738cbacd764d1b8b8b9080d6811caf9927a4bc68dab415628422b05530ba495101a9b336a896457837d6694bd568290e2259dcbc302ed2baa96292536b9a0154771b0c791b7ec8c4ea2489062160f8691cad483b020afbb076e0ee7c54188b32bf6a6fce45eb9d6a03f11858433994e304b2d379c43d4670be6c9d65a61e50c34ed26c67e716933cc5d9ea22d14f86e5cc54967ccc82e3506efb8cdf40c31f313135b597b3aa72fe83b01ec88a97e32464733107294270f82216e11688df6cefc2a9332243eb75059fcecad20a681aaa17402fb36c6e091728ab92efa891d141c251895f4c79fe2db4b2253114be24d22a38b9d14532ff80e384778c8b99a4303506d08303bab91d6e05c68a0c0affb5dea7344ef5ab21a559cdfbc3be395834b4b8d8d9c4af6a9ca37a34fbf05669f99af8bdb3237c98f98802ad76a26eb353c6612674e8b4f93a190f293c80da025da00aec20265cba37b0df43d78982e6ff49a9f464e7ff57680e7455f816f815c733bec25e4227ca3257336005d0559b647585379542eeaa8282d8a90b7a885b0360c4c9428951820d189b873e246e4d793fa94c0211630f54510f7f06d116acfa35c856f87913bf61cbdeb0554589dae65a2e25341e4b93916aa4b738714526653e798c11f24563b2200319c60343869579b74f2ba9ddb03c6f3479a0ef3a5e5f80183d69034968e25892c28c272dc501466621bc091c0fcfa09a2b56c9f8cca6cda208a523ea6a40a4907c1f390780d4a04624466206594ccdb1b19d2b9cc407bd172428316692e09229fc963710165970471e1b554f322c1548a118f84169dd9731bc8c49d1b0130287024c391ca027065591fd9755ffc2a68d36b7dcdac3a54e0ce67e432e35695a3987b1d4a1e5ea32934c1cbefac253da2ba9714ab6a4a46a07950b6477c303067e0e673fc6cc800a26fcfb59a01e397f944335eec26002889b08a26338947dcca758eac669929bb4c608f9861812e06aa61f5b8b56299efe95109d57c42c066ead511bd868c2b107522043da8356f617c26f7082b078234b435c478d48a53d5a369f7907ce2be8370c0ba7347707b7ffdb25e6bab2fa85b5922e0bba7269fb7a9799a158f9806bc3589268d8514134aab1dc83d415a235ef49586133de1ba59b8fa1ef5493cf9dacbeee04f4b9a94b3daae423575682311bc70c49e65090a87137cb327419a2f2d5481d6b10044c6a551eb711bfa828a3cbf22e026d2345dca2415b6d9b03e9479faf589ea02a12d1c03939935e8b225d7c18534a2cef060456bb58145337e81f7346e057bbb98a8c0a312f784351dcb11a1fca7984a2443b409ba903c3024b8da9a8b6aabca90b74a34b532bf01c7c1c1c7ce05bf08c5c65164a01f64c86797317dc03b2d69c263390f9e411df4f4508d7b03c7b473a7e195e8338cae5b89b85465779029c0ac711653b1c7a24bb3b9bff0c612887c12a39c2f5bb2920313cf3522396eb79065bb1e854a8956f7ac2143abb4136b0682bd01275506a765175c4b7648a0dbb875e2864d52aab697533512164be2659c57151c4af898d689a8619726406110faa69f61320e75d3a05cc27febf609e52026c10c01c30118ee3693a7293f4f7cc4d9f84ec37c5f38890a6a58afce1855d4d0ce1f0a577790423115c59228b96bd62d68d90f4bfac9f17a7597a492e5711b65d8626e568f0150a458201c6205a81fe74a591b547be842765723b57503c3b352478b304c39b22b147bf6b5bc489c2dccd44c9f206b7cf58fb3faa3c8891524faaa88479b0c4051deb63eab53822f84935566ab7978c1b9e5cc043767c109bb4663960a534a750cae177aa33315584138138d52648aaa5cefb09f5cd58d008d4c69a1c85a242dd63a997385b529a288758c427ba15b05642c230c8a0180938606c6e1465166f128a35ca3855657ac1b3677a0a15d094ec68caaf90cc1958ba0dbc22169f3853f3b7d56f4bde7bb2c1c71c8c4c95299d95873f89a17a4583bb9198e0279a45691a3107ba1294726a385ed95163f0bc3c609c01ee201c5900eb763518f212f14723314715e7bc84b75a611c481cdf858350de0495d1c020228b004624900c300cd018166fb4dd217cda3c792da49a87a3bcac52542f3b3243f689ce69c1946a134a97061c83134ac52c92d97a458b7b38dfb7f42476b6c5c272c71065e5159121484d4a541311c97fca3488d13b1de64610483cb3a9551cf4a3317d0c76766c777e526595539ad17bb6c184aff73b6c4eaccd5a14ed1b1b836975deeeb8909458146938505dba5dad77c1a3acdab128b36dc1e94a121c545e3515ed56687f8911eb5e1724016ac096bf081a60fd2726d6b275f550c50021d42608c49c93385828573f89f5a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad + +# Official test vector 32, seed: "288a5f2684d862a86d2790afddddbac6fda934ee7d2e6da1508bb550838609e8107312b28e00a6c01706374ccd3aefa7" +seed: d8b907b34d152ff8603b73051f772daa71eb902c47b7e2f070508269d757e02e36b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a +public_key: 26c68b1ba4659966cc95d79851f03e029a736c3b4809f9c366093967c53769b4796ee76b4f1277f1407b8c478fc1400de6415c2a231727303c86110af4b743aa85b73e38b41b819021b07d1ed5c6c171077e9c9b6a678d67b94958c66921e9cf0f573585bc3b47323f32979b91c411c9133b3b8b03199179c6f457f106be4201bcf2d142a4814c5e166c17680fdb2a1296890a89c802120585951a9051fccc4c42001346c9add97f93191c720466f95c5590b0cb8046a470cb50a3716a063135ea4a0219217b4d373efac8625ef44e5c0761bc0404f4ab87bd8abb068c07da5c832de7530be88532fbb5d8eb5c6023a5f0db1aee3a50d2864601a579e6dab597d6cd29208c48f075d42c6b27aa3c3cd837e224bdef354e20168c03172a16973224d50cc0ac7f60fc9b0afc7f399c29a9509f9bc3abe7298303db253dc04a69bc873e874a43dc28fba6339e4152e4399a3ef1055bd81099b33a5087b816ccc668a75bed05650d37966d058d6ebb2b3a819218036c2ba064ebac797c671ead151c121ab88f6c9395204e714310a8293c64bc9789864f93569ca043b856c8412ad985d8206b6e7485f1956d7e616104f720e76459bbb0c874e45479e67233137875c82dc6509cc124bc184a3dbec02cbb08b989103fb59c378670be58f0a96a694d71062e6af424b6745fd9130beac38d297a5f1ac783ef064084b84aa06ac9c2680e8db2487cf43bbe6b8574311a4bd99d733a1b6a751f68401938f4091d25837120664033770d476096e561a1b03e8cc878480a015225cdc1d0719be196b4aa94074c290590988e9b4a4ebbb4b3e5477483cfa6860219237924641cf9a2a7a1219a8a87bde9d08166f0c3081297eda4737d082ac5617cc7c36d428b9dbb7237c122676ce932fd01aac625b5db503a8042c0112714eb43370b5b5bb0d53378a5b6f738c874dc7a7f1c15987c28112857a4bb4310788375d9aa0e60c59958c7f0db809f688f7640805c334e9b1aaf78761d5107c12618b81ba12a1258c4b0123eeb570ccd9924084b7ae3473eccb429ae0c7fc059926f25542911a8738b0186c404f2f107716b5d2e228f91306e3bda12a9b281a598c52228330ef93962d085adeb6beb1076969844e1980295964f9f115840753c15674c86119909d111719182f880ad9ee9792bdc128a8c4df1da9b3cd43301037b192abdc694099bab87441113c77a7f7210764cfb463a96c4007108d4537f29d4859d305987930fd4d94c796cbd55452d10e9b8723a6165ccca8dd39741e94418812291facdcdb453529960d850a40745a022643cd1cb70ec330a6e190ed04963ee28cc774198914b5bfd7c43c6614007d49dda88c1d8b42e05a388f4db09ff1a394b01547155c79ff4933a28568e172133515eafab53b86a078a1a62b114b9977465342a61ada1a20c236d3778250eba35f8d36ac0d58c91198d4974610181bea1cca0724061976a7aaf161afa1b111f0b0e5b835ace9ac1fda361048a9b0008096b41bf7c619af3299c5abb04499c272211931f7b6528c17d5f52405097afe5e0c6ed2aa2cca7915fcc2543b4c8268256cf49936a858f7401117b80b18b081e08b45a0e828bf830c13fdc55fb468d99e8107b93616da437b90a5b52896330c53cf3e28bd3799f65f28bd5f0406638c18c8c9838c555a9b015dc99a61ac330fb11654831571fe667f208689d1c045517af836abaae37184ec603d01a918733362942632644b9b3826ed0967e6db05a6e3ca77cc1604174a2aab6ce72fb1eaa31480e235be79c1c25832ccef512e6c65261f2c485cbccf4062a81912abdbbb3c98c5a6912388a236161e7b8283965536908c0145bdc170bec33c5b2e437628b452aaba7f3ebc8fa730147469d63eb8294fc3cc9096781e58d0ba64d6dd6837812b530e9077a5c5648aa6cc024069150c5acf26d3cfa2d658ab18b86b1eeac4ae2422d41704b9982c8db14bc53e0721123a209d67999c9035ea07f3485ac50e35f85379396c620ddf159c3a4cd57fab15b53c8f2e6aee06c6f2ca02f0d99543368ab70b9bc3f655830d7cb47962d7c3789ddc893ab0a1ba3e1170590249a594445135aaf71a902d9aedd178d88d980345190d72b710ba08077fc868e86713be6bb45652a26c73ca91089040322801b9c68de70662248670f323f4233c1a3c0937dc86f0b6476d12f426868be1b +private_key: 23f2a309696a69c78a5272b1318a02669321e5461de8166ebcc0a85df06f30782c29dbb0fe921b9c7c54eba9771d7b52887b55850234de9b296c925420567fd327842af26d0ef1cc1ec393507c540f27184f297340651ec5a0151cf385ba7a8b82156cfab21419633338708212364997ba39755864b368c333397bef42609f4b09c68a096f086ab6530a3816c35d6170b4b28479e39f3a5c621f4198f8b8ba5cab50194bc8490a227c473854f9ab021851eb1a405cb236f8937723d74f0963a67dd465fb172489c594cf91517c3c0dc20c6bec78ca1e52373a57805c30a3b319ac204995846c0bf1286cddb73f777522dde85b43e078c74634408c5e14777f74f9696e1c0703d9a221f04592f4218988ad5cd0b434541be033cd3a28b039c22c77ab9fc1e477e6bc223703610c4076ad3b583c9402ccd26841a55074dc27ba3981a9552578644895e8279c02c39cc8c22da0b11f16ccfb3750cdf76c333ac9988a23f1bb33030718279582fdb578b37512ea084348bb52fbd63c365951d9428468310821210105e0600b5723416b62a72c92c7a26642e7c9c562be22bc9b5b82a16a00069b104b6e359328d0c78af04bb337415f5a14c5730681e3c323098f117a1ff85cba1780cb8e51690d8a8565f9739d15391fd7b6aa2091a828a4bbaa45d80b568fc59c77375848cb44d6f5a76f260fbdf6223ff80b3f1229992a7e8421acfb918d28324c94350dec894b50e73e084026be12733146bc4ff3b76061cdc27470052175179c2dd2ba84db17501d41a16cc183c8d0c2318480efd5632e630b6c2612f0c88a9240017ba431c5a8629107af4cf08614f24e44808949e75c283ab36092266ae41b66d67aabc836c7364525ec4db7ab972d46709ff08762618d7050a3c165b21c5611de2aca9de5a6d826c6441b4894f59bdb93690757461579024feb4531abbe20d0410ef201e7f35ac3d304378971df8855f992cafac0ca7d7c277907d071cccaa84b3cb2203a72bb3d7f0c3e08321c7bb944a4a19fe794544c28181d92cdbe62ba9c270df5d646e1b05adccaa2835aa8b40a8b1741b10cda223783a788f36a3a8c00eed901c74b95b009a04fa169d8e0512e28266d3348774c7248d6c7122362661c5a1146103d401621434198963f26d3459c6572b029a3828bccc1ea35be549bae2c1aa094374061492636989bc8528d2a7ed649c1062a10c372c7635a4d0155a12b82a3656a491e1041fe25522ce39ddbb144a0ba37dac28608794c87743b8884b2fb2cb2dc1a37fdf34718813ab58b8f73c0742d2595802381748736458a846dda95df2740842411661853de6a8c04d1cc31975a8b8b3f676c4636a606dbc0906d101ca6e290d364b4a83b1ae5f461c56100d5d48a93c5448c12c67da30341664f2f2a35b58c25a3397462308170ab80a95780ea1a4e650c6cbd90755c0905026a42d4001612289e7a4a0170b9907d689141138de4460d143744b5e4975f027d48186161458c5d05cbccba6ee3a0a88135b94d0aa28db8b61131783d63224fcb4962d83ddc39c08fd0773642340d93125e83bb31838e786a2ce3a1a68a4084c214b9f304ad8e4a13e80bc168f8115b378fe5cc0a12468b3c24ccd2dcbaaab7bb4848c731e68810b92342b77e6e207d5abc7b93118d0384941460249a3c495b617c35ab97c912589c76313b3cbe21a3ae88d9b0e93a2a24d8449b6816c1045760e7ab5b37649a97938fd4317f3984ccd33a0c6388dec97f4c0b685f536a30e5c06af072f7ba2c129c05df5c40c7aa3e633aa44566689008506ba90107817205916df72b97eaf79ab0d5c97a483f4c9825f485679ceb0d15c981f1605a86c637fad32bdfa800cee7846f6cc52df8475b170316815cef36137c2378e9e27f8121b5b8123a1fe62589db2108810cd360b108018f5d67bfe36ac51ba1c56485cd8a88918cf70141b39ad513846413342be9a31f62691d221df48c125b1829526290c71ca471868c6df5a5b1a5cb14052a46f34e5d5b1e271251427bc4f7f3249c220341261d102b31979821de60610f9323da66061311ac2f2413ef97730b0a38e436958daa13a4f015cf96ca59d93bb56c58e66ab56ad7ca707a44cc1901e5866c3a223831faa00ebbad437a0a9dfa83bd32218bf66027f82d26c68b1ba4659966cc95d79851f03e029a736c3b4809f9c366093967c53769b4796ee76b4f1277f1407b8c478fc1400de6415c2a231727303c86110af4b743aa85b73e38b41b819021b07d1ed5c6c171077e9c9b6a678d67b94958c66921e9cf0f573585bc3b47323f32979b91c411c9133b3b8b03199179c6f457f106be4201bcf2d142a4814c5e166c17680fdb2a1296890a89c802120585951a9051fccc4c42001346c9add97f93191c720466f95c5590b0cb8046a470cb50a3716a063135ea4a0219217b4d373efac8625ef44e5c0761bc0404f4ab87bd8abb068c07da5c832de7530be88532fbb5d8eb5c6023a5f0db1aee3a50d2864601a579e6dab597d6cd29208c48f075d42c6b27aa3c3cd837e224bdef354e20168c03172a16973224d50cc0ac7f60fc9b0afc7f399c29a9509f9bc3abe7298303db253dc04a69bc873e874a43dc28fba6339e4152e4399a3ef1055bd81099b33a5087b816ccc668a75bed05650d37966d058d6ebb2b3a819218036c2ba064ebac797c671ead151c121ab88f6c9395204e714310a8293c64bc9789864f93569ca043b856c8412ad985d8206b6e7485f1956d7e616104f720e76459bbb0c874e45479e67233137875c82dc6509cc124bc184a3dbec02cbb08b989103fb59c378670be58f0a96a694d71062e6af424b6745fd9130beac38d297a5f1ac783ef064084b84aa06ac9c2680e8db2487cf43bbe6b8574311a4bd99d733a1b6a751f68401938f4091d25837120664033770d476096e561a1b03e8cc878480a015225cdc1d0719be196b4aa94074c290590988e9b4a4ebbb4b3e5477483cfa6860219237924641cf9a2a7a1219a8a87bde9d08166f0c3081297eda4737d082ac5617cc7c36d428b9dbb7237c122676ce932fd01aac625b5db503a8042c0112714eb43370b5b5bb0d53378a5b6f738c874dc7a7f1c15987c28112857a4bb4310788375d9aa0e60c59958c7f0db809f688f7640805c334e9b1aaf78761d5107c12618b81ba12a1258c4b0123eeb570ccd9924084b7ae3473eccb429ae0c7fc059926f25542911a8738b0186c404f2f107716b5d2e228f91306e3bda12a9b281a598c52228330ef93962d085adeb6beb1076969844e1980295964f9f115840753c15674c86119909d111719182f880ad9ee9792bdc128a8c4df1da9b3cd43301037b192abdc694099bab87441113c77a7f7210764cfb463a96c4007108d4537f29d4859d305987930fd4d94c796cbd55452d10e9b8723a6165ccca8dd39741e94418812291facdcdb453529960d850a40745a022643cd1cb70ec330a6e190ed04963ee28cc774198914b5bfd7c43c6614007d49dda88c1d8b42e05a388f4db09ff1a394b01547155c79ff4933a28568e172133515eafab53b86a078a1a62b114b9977465342a61ada1a20c236d3778250eba35f8d36ac0d58c91198d4974610181bea1cca0724061976a7aaf161afa1b111f0b0e5b835ace9ac1fda361048a9b0008096b41bf7c619af3299c5abb04499c272211931f7b6528c17d5f52405097afe5e0c6ed2aa2cca7915fcc2543b4c8268256cf49936a858f7401117b80b18b081e08b45a0e828bf830c13fdc55fb468d99e8107b93616da437b90a5b52896330c53cf3e28bd3799f65f28bd5f0406638c18c8c9838c555a9b015dc99a61ac330fb11654831571fe667f208689d1c045517af836abaae37184ec603d01a918733362942632644b9b3826ed0967e6db05a6e3ca77cc1604174a2aab6ce72fb1eaa31480e235be79c1c25832ccef512e6c65261f2c485cbccf4062a81912abdbbb3c98c5a6912388a236161e7b8283965536908c0145bdc170bec33c5b2e437628b452aaba7f3ebc8fa730147469d63eb8294fc3cc9096781e58d0ba64d6dd6837812b530e9077a5c5648aa6cc024069150c5acf26d3cfa2d658ab18b86b1eeac4ae2422d41704b9982c8db14bc53e0721123a209d67999c9035ea07f3485ac50e35f85379396c620ddf159c3a4cd57fab15b53c8f2e6aee06c6f2ca02f0d99543368ab70b9bc3f655830d7cb47962d7c3789ddc893ab0a1ba3e1170590249a594445135aaf71a902d9aedd178d88d980345190d72b710ba08077fc868e86713be6bb45652a26c73ca91089040322801b9c68de70662248670f323f4233c1a3c0937dc86f0b6476d12f426868be1ba08c74eb9f3d9296c268dcd23c66bf0250b222854a5c31830b7431ccd3ed53fd36b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a + +# Official test vector 33, seed: "4635dc5bb92ef98cdb6220df0dd717c7f8158375eaa2b78fc3f0b58e9c9653e92684cad3461d9158a481da3d14694c44" +seed: 684a29e4e5480a5f2533e1526b5fac8cdf5927f3d85087c71f928c59690eb56575d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 +public_key: af6c50f1421cc8e1532bc6afdfe7acf2a43b34130fea7ca5b1409ab0f10dfaa5a5f0e7b9a62006f1c53e82b5c7ea427009c990bf31a939ea2705630164445715bc5c80b3906739c46a4c4cf1024776037bcfb0716d1ba00110637fc177fa1768e73cad8fa4777e13aac74338513c516715b645e3bed722382950b132418fee81639d448eabd55a94c66a34eab68ddcaf1c756a4907bc3f5115aeab5320f3b9bbe84e0d885fb784af7fd8c1eaccb37642cf39c8a24c4903a7e80578ac7e9f2a95cd806caa200e23873f751636cd606d819731cf1b812afa2ed24381a52b4f5fba658618a02e0418d6823e7f418294c81032936559a77f9c014d8a3b38df8bb17b7a8c3b45b53ad60b0d9929a21a4ae3039366f894b1082db5f3cf2f13381d53827b5a568fc5234e099d6b94bc1a013ddde944b4ea13eb52bfa880716b1a10d8827a033878986155b7f2944a63a2cc32bbd61907125475bc09b0ab76222cb4c9f2e80a00f9b71bf9705e3576b5a96f6229ba1ce06fa1b2079cf66c59f30dfb88c1f9412b0b2ac059dcab8782abe57209188bb938d08bda140a0eb08de0db3f8558c403c725a77aa1e0563a54a77f32aa30cb780f4e562716075763e9c5d470564ec12cdfab424ba970c51201081193741a5e358cc7d63064a7183d99b28ddc5b0f10374ea9710193385b855a259130bc490041f76a9d661483aa668aace51c616804b5e7c1bdb8762b73b39f17785af94b355b0fed72083c2b71efd1cd43c1a9704a93e0e5752e99a2ef115b6ecabc74cb03bc091038f5701659a0d4bc693805080d6a5c81a0273be9149861c461c47cf496cfb22526d3fb8ba5a3396dd19a8477611b814b76d5c8191ac1c8190ac3b12065ca4ccc879d5f34bc4479a5c8d4693d8771b434c4b8e8b8ae921e01a131e9410ed11c505d226722e011f2073b0db34d10c104afc2656dd053e43a8db7c00fe705b0ba520980dc71e834127c08077806cd8e82144d50448dd59a085776dab69e42db0e7e8ccfc010a140b50b50e09f233aacd3da972aa40f1d1241d718b54b6009d3daa090186cb167c1ab3979c8356397e598502422da2935edd9c8c44b90e8c50473119d26e99575c0c328307e2017b515f33d4d2821bf341480780b21d37fb6cc3049324eb12a42c9f7c9e086bd0f39a1949058f1d8c8f0739c23fb1dc542429933080ae732b750af73b05df6b46e0f27b678668f9450c193c861e7e38d65e5cb05a52f62b29d21b4b33d34771bca88b3149aceda8553c5813bfa6f8a99c656601fd6f4ca7e54cf80e48fa144bd996bcf41e49aec97734687a7d0da2c71231dd841c8fec9a8fb686a7cf81106b16735d6559424c1ae7a5a5f0515a8074bd879c1cbd6012a3b5a7079bbeb6229de7676a876c02f1620d04905341c95ce512d20c4ca11f7c08684473a31313640760d24b4946c0268c108a8b96f699634414b070444480800c6c3d4bbdf339c47e9b1660b9ea039bcc6836a6fda9489e76418047eb3e99d40aabbdbba140221333cf1cf2bc121318aab09022f95c31b12abbe67469bc34ccb88c8a0a965902e47494c7a0bd573910a97377b764ea7443e73346ef9bac0376711db236f89a025d9b09931aa473ad04b351a00c5d3b969134f03c1745f672138f52ba47a542942c1078892ca3b9509f435d8521a373810b12393c8eab18fe7b6f3f4ad7ea88b88b21db46338adac939040674be52e6c2948fd659935a86691f076c7f228bc5874fb8214ece1947f68b057411c218b776a332f5aa351b4d92560a42346180edb08bd57f5342773249fcb1f036955da0269695a712ed852a35a3de8662966c0b2c2038ea1ab7b4f9708c5849dbdc6a29e734ce8db1f447109b755af11976b73cb6c8594a5de221c44b61b9d425280007ef4ec4ce3b34beb733cc73a1a7f6857218476adb0200d96658c8456576666b6d7c06da03663191e649457d298b81b067789c285af151ff4b97239c35ab8688a8d6b4469fcc7e42201d5d57bf3cb98c883c5c9c88f05555674e7a1bdd59e3f327b69a74f0d4a250aa89fe1359e5724ca02c38784a14690c62d891364b752ada80402128c623d0839a0f09bd0e6a37b724070a4356641c538415f2a97701c5492d29a2f2823884496af9dd06703d8ac2c17c4ddf5561590b63ff78c4995a31a18d861a91c43c5dec3705c6112d81b81555f7a3b432f +private_key: 2702a72c612968570b25144125a96fc1e89d964a96ca260ae250c7af8c825d857b795396e4eb439f131dc9f36cc190b8ad3a385747a83a976a0e3662834662ca8c7f68386486da8663774f04066d3af42713aa6c8280aa96293bd92217c4aa8cc26b5f3371290eab1aa0d0cee1382de722162a23bc001690cc5ac2c49705711164508ca429e06ff1231ebf0b64550c359b93be6690b9d7e2cbd6027de95c34f03c3d2097cbe1150e4861b57b691e18100c333a3bdec306a87121e51c7641687290553d7005a5241609b75239e43abe459414ff1ccc41118417633d72522b7d1b3746f8a542106061d567cb4370f721540cca09bcb9cf8c364fca8322d2d56a6f1026a53a1593981cee1b8d8776b3827b5161886aa4e91d6bc26a516a757a353f6c2020db2b090a7327215238f5eb4c91594e555b8b0a3680ba6b9bc0589b5e91600da829205395ee836deda787045438e657830cb0c6f82379795a72f698c0d7209c85438c92812938c65407058985184e48f9093f6439fa158749696c1144a336614459f2bc41c9a7a31a2b74ac216d202ecce10f82488b4f32c010a23f35c918ac8c3ea7906219fc85f67730ad12450120091a4b8b53f5378f81b5b7b0bd85b486c6aca5b5435f33f8c38dc255c9b42f1a191457497845f291fbcc239de68c1f6875a445baba0951238265d90b87f630530ff089967b50a1d722ddcc7bb1803e552463b62249b4454095a0903da20077b045213b0db8953340761a8591b042fc885daa8a8c6a2985836c9109b827b804ed5c0e92b568b221618df155c1535fbb128012cc27b7aa6a5a362bb3747712cc693bdabc919bcf2be8afe42a76d814a3362b5337853828639767bb7fbc4bcda6988a7a933f68aa3b3cb7baddc065efa98da09cb742ba3563e19e27eccf6b68b94dd28fbb351220764bbd781ab884956a865bec99c222e59295842eda25c340a45275dab51631b24bb86b70a2b831f171ce9222e350a70a1879adc70d87888db2b1c540c4666f7641ee36c30e733ae206b087084fa3bab717d2c8761b78c20a31093ba5e923298ac59cfb768c527a3aa4d19d1f0262d6d4bebc41699d152e092368ffac3088d2488e6b177bf9045802579ba973b89a2404db17df25c546fac731480d180a519a9309e28a98fe3b521c978df1a94aed0a2aeab5b971c995724189afe7b3f90c5b1563a9187311abe681d61834ffdc8a2142871cdb48096a25c0a315f12a627304206149312a4c647d1059a1f559e6aa3b4f22ba01ac09365718763a720d94506a39582e6400d93a19540690c94c9afe1c5df5b6716ccb4b80939698caa521313a3b3ab17a06a8ebc3713944656a75bc95599a67744bbe79997b4153182372754a9d8238926b1cc239d5942e60c1b5d85fbf828409bbcb68e30e89180bf08083e94816dda4aaa53267787880b9cb38e381585535c80ae47d226893889b5240db1d82d926656541f3196be9458a1a20a5b9b263bfc60670d6baa7981672a4654fa87a37804486258403c9b0dc48054d312c52592de43a41a3a7aea934a72281807d26c10aec91bbbbc8ea75b2b215083cfc94a12c61be14cfcb2b688b097832fb016b0a60cc133c709b9d6c1734d4a100d3523f8f30c78f9647808b6cba905cb4da605a2b3fc3a433c916089304c868257bab174861a8b57f6bbf6b79ab55a3044be689a8e19f3d598f7453b3a71a06b29bcf3eb3819ed35d56b74a176cb9bc81b9ad94250e639c17f431b1c856b02c4d6579417d304f3c7b2a34579b6c09a866ac9d871acfdef3099368025f4109240372feabc2d17a7e89031e67a74b68144ee1a871c8737feef4b9c663bcc9a42770ca4571a9b92c60ad14f53600dda002509f109659f8b2a5a83ab6a1d8c3025c38ebe6346ea5cb11e66d560a9c656a61de98407c130b1094c391a879ad70ae5ddc2acce2b42ccb378b9a9997d6042581230e6843e70634d25ca675e09947027591372e50fb42a28cc9c8e13693267305c89b7ca4cfca931eb1e6137f6470432a55a08a183d1187ba7a8f78e6b960874001515ee15437bbb8157c382af1641693b20e2de25cdfb7c4bfd9a803517fac4ac6bb960377f17ed89b216cc92eda7b08a89505903659b94552ed2433d7d6668b226081691f4ea558f2b072af6c50f1421cc8e1532bc6afdfe7acf2a43b34130fea7ca5b1409ab0f10dfaa5a5f0e7b9a62006f1c53e82b5c7ea427009c990bf31a939ea2705630164445715bc5c80b3906739c46a4c4cf1024776037bcfb0716d1ba00110637fc177fa1768e73cad8fa4777e13aac74338513c516715b645e3bed722382950b132418fee81639d448eabd55a94c66a34eab68ddcaf1c756a4907bc3f5115aeab5320f3b9bbe84e0d885fb784af7fd8c1eaccb37642cf39c8a24c4903a7e80578ac7e9f2a95cd806caa200e23873f751636cd606d819731cf1b812afa2ed24381a52b4f5fba658618a02e0418d6823e7f418294c81032936559a77f9c014d8a3b38df8bb17b7a8c3b45b53ad60b0d9929a21a4ae3039366f894b1082db5f3cf2f13381d53827b5a568fc5234e099d6b94bc1a013ddde944b4ea13eb52bfa880716b1a10d8827a033878986155b7f2944a63a2cc32bbd61907125475bc09b0ab76222cb4c9f2e80a00f9b71bf9705e3576b5a96f6229ba1ce06fa1b2079cf66c59f30dfb88c1f9412b0b2ac059dcab8782abe57209188bb938d08bda140a0eb08de0db3f8558c403c725a77aa1e0563a54a77f32aa30cb780f4e562716075763e9c5d470564ec12cdfab424ba970c51201081193741a5e358cc7d63064a7183d99b28ddc5b0f10374ea9710193385b855a259130bc490041f76a9d661483aa668aace51c616804b5e7c1bdb8762b73b39f17785af94b355b0fed72083c2b71efd1cd43c1a9704a93e0e5752e99a2ef115b6ecabc74cb03bc091038f5701659a0d4bc693805080d6a5c81a0273be9149861c461c47cf496cfb22526d3fb8ba5a3396dd19a8477611b814b76d5c8191ac1c8190ac3b12065ca4ccc879d5f34bc4479a5c8d4693d8771b434c4b8e8b8ae921e01a131e9410ed11c505d226722e011f2073b0db34d10c104afc2656dd053e43a8db7c00fe705b0ba520980dc71e834127c08077806cd8e82144d50448dd59a085776dab69e42db0e7e8ccfc010a140b50b50e09f233aacd3da972aa40f1d1241d718b54b6009d3daa090186cb167c1ab3979c8356397e598502422da2935edd9c8c44b90e8c50473119d26e99575c0c328307e2017b515f33d4d2821bf341480780b21d37fb6cc3049324eb12a42c9f7c9e086bd0f39a1949058f1d8c8f0739c23fb1dc542429933080ae732b750af73b05df6b46e0f27b678668f9450c193c861e7e38d65e5cb05a52f62b29d21b4b33d34771bca88b3149aceda8553c5813bfa6f8a99c656601fd6f4ca7e54cf80e48fa144bd996bcf41e49aec97734687a7d0da2c71231dd841c8fec9a8fb686a7cf81106b16735d6559424c1ae7a5a5f0515a8074bd879c1cbd6012a3b5a7079bbeb6229de7676a876c02f1620d04905341c95ce512d20c4ca11f7c08684473a31313640760d24b4946c0268c108a8b96f699634414b070444480800c6c3d4bbdf339c47e9b1660b9ea039bcc6836a6fda9489e76418047eb3e99d40aabbdbba140221333cf1cf2bc121318aab09022f95c31b12abbe67469bc34ccb88c8a0a965902e47494c7a0bd573910a97377b764ea7443e73346ef9bac0376711db236f89a025d9b09931aa473ad04b351a00c5d3b969134f03c1745f672138f52ba47a542942c1078892ca3b9509f435d8521a373810b12393c8eab18fe7b6f3f4ad7ea88b88b21db46338adac939040674be52e6c2948fd659935a86691f076c7f228bc5874fb8214ece1947f68b057411c218b776a332f5aa351b4d92560a42346180edb08bd57f5342773249fcb1f036955da0269695a712ed852a35a3de8662966c0b2c2038ea1ab7b4f9708c5849dbdc6a29e734ce8db1f447109b755af11976b73cb6c8594a5de221c44b61b9d425280007ef4ec4ce3b34beb733cc73a1a7f6857218476adb0200d96658c8456576666b6d7c06da03663191e649457d298b81b067789c285af151ff4b97239c35ab8688a8d6b4469fcc7e42201d5d57bf3cb98c883c5c9c88f05555674e7a1bdd59e3f327b69a74f0d4a250aa89fe1359e5724ca02c38784a14690c62d891364b752ada80402128c623d0839a0f09bd0e6a37b724070a4356641c538415f2a97701c5492d29a2f2823884496af9dd06703d8ac2c17c4ddf5561590b63ff78c4995a31a18d861a91c43c5dec3705c6112d81b81555f7a3b432f37e94def940045d3fd9ddec0289680ae2f96d9d43f5d774a81b86ae7a4761ab275d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 + +# Official test vector 34, seed: "5da2c51b4acf488c8bded5e985cc4702e4a7bcb248b5ac18aaba529f7f9cbf30efa776e99f76d5c1686e94f50fb57dae" +seed: d76b3573f596eb286ab5231feec7499686b13021be36cb126c7ebeb9d7030daf248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f +public_key: 822a87a132c0b9e3c13bb45e2eb5bb47535099e37019b3c7ac3b81c6225dcc65476fc12e7a81cc80c9a508e507f201632be9c1bf27317fd97275cc3f481bc7c5c25a4b1462767a42cba43b152c276ffc8db55a96d418246e0bb7d5a15f0d883597e9579d675e816b8333097787c613cac29427b11739e650cea2ca8b198c0158caee9971894b67332baf761caf88c16bd11c9f1dcace7b83a6bec71f0ed9bc28f706c38b057231b7c330a4b99898037720cc88245f8982daea502ad30e315c2ca477a3f045084356cb81184ed90734e0cbc0d1553adaf5a94c2a6d8a51566997c735bc45fc408241357da2c38c8a0520fb5a33e1d5c06cc80c4e91314d08599763232517b501097e4bb09bf814a0cdba619c701d249c933d143bbd92c163724b523bc05568a410952380177ff6084c6416bc22c637b7e1ad586324103677101a74835c4255b89ea1935ec8b8382611bd4dd91931c436f9a909af4747dce811a2ecb63f046b411a201d1b4f12442e73d7703e22896a904736308453b946f248a6bd11800797886af555b0787d84daad7883c0e583a7b6530c7d0a8559906f0e423e9e6cb600b9917768777b7489dc173fc67551ad92a26b054ddf13c4f83b5805b9b7b9829513611e171b9ea358abf9054ddf02629a397489dc213705a9b86735577493b86c326e857eb816663dc1417cdac788900c8030803751bae22292af87cf8fda4f2991418948c0b4f54c19163dc4b195b76cc5def67b5288bad948cf214cc6a11c6e1ab1a5b9b1501baa75cec23530c091cadb8c9a02415e816ebe708422dbc2db224b74ba1b83327c8b25bda3cb7127f5c5b963cf3c9abfa15c952bdba2acc01c9d377a89eab6a96a65cfba3d722b6618262ea78770d5fbc556789ce4d13bfe02065f033362124b84560f462c64443b88f3135f585a3b29e450c1dcbaa7b9181133c915522a90f56e595ba11ec3327e6a83c7f1ba59951c4684995ea64edbb3451271a878e42be7d763b27cc430ab6b068173b973141e0a72cdb185b263071d20a8f5a37dd08ab6ea7a2639e0cac1790d5573053569addc1731a339488268873d89a1490b78ee404c2e8328004d44cb4521a68737f195634ab659b919a94e268131ca290e59756311b6273b5dfc2c3adb21534609cb2fc553906a14d8c079f487091587943df49a39d1b465952efae34d33fb9ade56cb6ca9cfa8221458d9940d4bb5f044297c4160a2284032458bf909c31e47a27c7aabdc9815f1ecccadc6288fdaa6c0316f2cdac38ce89fb31cb81b673f26e5709e08c474cc41f213b0fdbc5563851bbec682d9051a5d58148a72956721bb96224214d03e8b89021b98b9a0a87dbf15b491125bc07c6ab6353560d61814ea3cb2e72344104b06413f963091802413521441da171e6b6b039391842141c87c991a4157b428e35ce499a805e2c0954457582b6a8f52c4e102bb33cb01d1ba883ed4cb126c2137a75aadca26852223741c07b027a1883220ca9a65585a5e0c0847b9d0013f821bdad0902504785e927016328c99ca1f3d2bad906b3cef04a3598b2992b2c587100533bcccd15ba1aef877c3a565cb352b7b856880108fb828b42d3612473970044c6c4a057f18ec13deb2c398393c19383603c183b02a461bc9b8ac0969e04179e53c5a8f54a556f54218024041137448d08401fba8e4bcc09cf3b91cc28ed9bb700cc74523c251ad3a7c21f43398f85c7941387612c0c76a43db2a0a368101e88480aa1a5f1500b2a17b5704299d5639b477802fef34bcfd548274d26c476c50fff8851f29ba5ad66caf066ddfec2140dc97b83077a9e21bb4f87aa85a16a7107e3597a1bf4a5bdf008c14bba230cc95e6071bf0e6a25607566c9008d715223c483dfd6737e25a2dea490eb5606c6e32b8063128bcb6181166a93da7626c4273157c47b5a2adb1d88441e76ec9fb6efbda9fd084b496d5635794aa23a43a8c4650e05bcc2e415d775971922b1a446411f952b7e5540091a430882067c0f008211a705e4842789ccf653bb919e742b65339aaf4653e474c10583d9329cadc47a6ef20589572a2e6e4ad67d03abdf7ce1dc9015ba94ed9c69220d63b423cb5daf465d5e3a9d190a6c9d84fb28141f28990959250d48162c68b813460b04a78126e4b2c4514d83cda2735e3d3f1889578b626b002cd859ea9ba6fc856a8030f6010c780 +private_key: b212c7b33a82755496caa9b591e69054a2808962aa4b703ff72b8f7ee2206f4a7cb77262dd34c791e095cc059b1e00a474e5b60a3a8b2b77b0b6a34968f02a67133b5f93c96e94657c8995aeb2c6706a1361e7370a8072ad3713f56c6aa32c19e34278fd2c397e84905813b10fac77595a624476c9be5a06dea927614c8964c9300f6cc7d0e974e334540b60c48868c8fd99829a0ca9743522cc88b6bbfa77b9432b9c373c07573c5477a339697ebd8c4c2e087fde72bf826b001cc7b3d3f7b05484193fa38982f3ce0488182f59cef992b82c6039218829e4e4b1c554a9aaaa301f4733c0540fc2c7acd1a13d9fa0bb6da18f1631c5ffca65bd9519fa454ca76c1b8f5c8f41037499561ed02252e4e408aa352af4155a9d940e5fb964a57117d250556cb9ba2c888cd877083b742428ea6b62f0208c862a39dc6f9d6671965610d69a54d10abbc1238931777cefa00461ec086b26ca2dea34e88565a6a89bd1a138178298cacc938135ad58cc98fcd29851409a3e93cf0a270f4d8779b5f7aefc2143e0e082e8e8b357b84af630364538b19b55954edcb3f250a2a53cba04682065846c0323556f154b97b7973d267c1678a02d1b2f168977a142bcd492509b46a6bda72255510ec952a50aa11907b42b62694f978539fce0cc35079a4bd164fac25c46737c22540803d4a04f54824ac381eaa5ad5ca51568a8c256762a1021a8c46142e0a99f16db9cff371317c602bb08b275269b312411ae849c2c29285cc98d1244a346497ff59c9143a3cc9481ab5ac82ccc86c2d38512bf901b97d83b518aa0812aa2c6e3c2f8da9e8cd8154f299fc8bb52e9ba96a4aa264f8b828fe783ca4190ac42a56a97c0e6d88ed658b6993399e47127040a44aa539480131b485318ffe6a598570139c06ad4054b70b6991fa4b82e59018b7a206f5595e0a2456fc122ea8828fc3b75744650b2ac1a248133bae700585784a1949caf7c58bca497b0d03569127c6fc88b407268cfbaae78e779acf25e9c9767bc691eb0969f69988d3af98ffda60b308a789b8c985235c9d694c6f0e1425cc1782a921b11444e54e7a94819021cc1899439a753a677913970f470854966357569924cc5ad3e2210b6654193a4b2f145782c9397c2c6bf8fc14535149289b904a1f628a45b2cb0e66bd955c3c153baeed32a71673067f7262fc0bd6385c6cc00793528b9cf021b339c179a157087864f70d24cab938be046cf3e409e01faa10e4601ae47b677b670b11ba1edcacb5b292908588554a8b9f204af840a2d2581ae916652db5a71e36822a37b6ffdd3664b9ac253acba6187211866b25a46b62853878ba777a5156948e52e0040bc63f120644a8ae466591986acf5c1c41b77b562a2504c0509b411a879997491c9c25ca38aa3d62250ca5267854e1ee9554e064b4a6181958c50b11708a348929579ccc09953191011fefc0c6a2242adc09ecdd29d1de974a2d3497d904baf5494d4f96ef5fa8e86e45fe4f0c79bf3861be98b7177093e9312c0f77b88f23fa62ba2c6f93255131f23e9607f3bb54c8888eccb2e01cc22bff2384bab57fc2c62a8d47f73051af951c7efd63c0f0a87d29460402814e85602997a765a3597d5a9099b99a37d2817e827b76eb4a2da2622f516364c525c69586c8e5729e3309925fbb3f9e86717503d04682fc5d83888b96e00bab9348c426ce55977a73c40ea2315f122e724a17252317af5187c290a87e6675e78589170454df4b800d2546f9a33a288256669c09ec63e49eb755cec96a542b49ed0365d6130ef2051b9a0c42c675302453ee7ea854c1184b43609a0b25f30164269479e6f2bc7a76aa758db9709204739cb3378dac80f54c665eab7dcc0be9e8186349b9f2e2bcdd9e2af7ef03ce65c62e2d798fe588242f990caa7650b5ba55897615a85ad2f96906651becadc7b53b38dd74962d7e6cc79d68f7b273452aab4f692018bc60dc6161e36e8b523b3b349f6666f4583855998d1f41f9333194b567b9b3332d8e93fe30b8e19813bfa0abaed64106d147495a6abbb4909e7aa06970b2b20914c51a5c6f1d9894d911038600bf22268b58ac4d8b8bd07f24deacb1737779cd5b328dfc251577846131392d8533e70d074fd50841698bfb584b620a100b09ab9ad6c60822a87a132c0b9e3c13bb45e2eb5bb47535099e37019b3c7ac3b81c6225dcc65476fc12e7a81cc80c9a508e507f201632be9c1bf27317fd97275cc3f481bc7c5c25a4b1462767a42cba43b152c276ffc8db55a96d418246e0bb7d5a15f0d883597e9579d675e816b8333097787c613cac29427b11739e650cea2ca8b198c0158caee9971894b67332baf761caf88c16bd11c9f1dcace7b83a6bec71f0ed9bc28f706c38b057231b7c330a4b99898037720cc88245f8982daea502ad30e315c2ca477a3f045084356cb81184ed90734e0cbc0d1553adaf5a94c2a6d8a51566997c735bc45fc408241357da2c38c8a0520fb5a33e1d5c06cc80c4e91314d08599763232517b501097e4bb09bf814a0cdba619c701d249c933d143bbd92c163724b523bc05568a410952380177ff6084c6416bc22c637b7e1ad586324103677101a74835c4255b89ea1935ec8b8382611bd4dd91931c436f9a909af4747dce811a2ecb63f046b411a201d1b4f12442e73d7703e22896a904736308453b946f248a6bd11800797886af555b0787d84daad7883c0e583a7b6530c7d0a8559906f0e423e9e6cb600b9917768777b7489dc173fc67551ad92a26b054ddf13c4f83b5805b9b7b9829513611e171b9ea358abf9054ddf02629a397489dc213705a9b86735577493b86c326e857eb816663dc1417cdac788900c8030803751bae22292af87cf8fda4f2991418948c0b4f54c19163dc4b195b76cc5def67b5288bad948cf214cc6a11c6e1ab1a5b9b1501baa75cec23530c091cadb8c9a02415e816ebe708422dbc2db224b74ba1b83327c8b25bda3cb7127f5c5b963cf3c9abfa15c952bdba2acc01c9d377a89eab6a96a65cfba3d722b6618262ea78770d5fbc556789ce4d13bfe02065f033362124b84560f462c64443b88f3135f585a3b29e450c1dcbaa7b9181133c915522a90f56e595ba11ec3327e6a83c7f1ba59951c4684995ea64edbb3451271a878e42be7d763b27cc430ab6b068173b973141e0a72cdb185b263071d20a8f5a37dd08ab6ea7a2639e0cac1790d5573053569addc1731a339488268873d89a1490b78ee404c2e8328004d44cb4521a68737f195634ab659b919a94e268131ca290e59756311b6273b5dfc2c3adb21534609cb2fc553906a14d8c079f487091587943df49a39d1b465952efae34d33fb9ade56cb6ca9cfa8221458d9940d4bb5f044297c4160a2284032458bf909c31e47a27c7aabdc9815f1ecccadc6288fdaa6c0316f2cdac38ce89fb31cb81b673f26e5709e08c474cc41f213b0fdbc5563851bbec682d9051a5d58148a72956721bb96224214d03e8b89021b98b9a0a87dbf15b491125bc07c6ab6353560d61814ea3cb2e72344104b06413f963091802413521441da171e6b6b039391842141c87c991a4157b428e35ce499a805e2c0954457582b6a8f52c4e102bb33cb01d1ba883ed4cb126c2137a75aadca26852223741c07b027a1883220ca9a65585a5e0c0847b9d0013f821bdad0902504785e927016328c99ca1f3d2bad906b3cef04a3598b2992b2c587100533bcccd15ba1aef877c3a565cb352b7b856880108fb828b42d3612473970044c6c4a057f18ec13deb2c398393c19383603c183b02a461bc9b8ac0969e04179e53c5a8f54a556f54218024041137448d08401fba8e4bcc09cf3b91cc28ed9bb700cc74523c251ad3a7c21f43398f85c7941387612c0c76a43db2a0a368101e88480aa1a5f1500b2a17b5704299d5639b477802fef34bcfd548274d26c476c50fff8851f29ba5ad66caf066ddfec2140dc97b83077a9e21bb4f87aa85a16a7107e3597a1bf4a5bdf008c14bba230cc95e6071bf0e6a25607566c9008d715223c483dfd6737e25a2dea490eb5606c6e32b8063128bcb6181166a93da7626c4273157c47b5a2adb1d88441e76ec9fb6efbda9fd084b496d5635794aa23a43a8c4650e05bcc2e415d775971922b1a446411f952b7e5540091a430882067c0f008211a705e4842789ccf653bb919e742b65339aaf4653e474c10583d9329cadc47a6ef20589572a2e6e4ad67d03abdf7ce1dc9015ba94ed9c69220d63b423cb5daf465d5e3a9d190a6c9d84fb28141f28990959250d48162c68b813460b04a78126e4b2c4514d83cda2735e3d3f1889578b626b002cd859ea9ba6fc856a8030f6010c780ee3fad17b073dded30b6531f854523002db21673437ae275e8a4d702ef311619248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f + +# Official test vector 35, seed: "4d2239e84b052109a78dbab6d80c51a86d38248105970476b74a0b78b9cfab6283e30d5a406fae1c7f54f8bae1110ee4" +seed: b87439fde81c9e39eebe7cf741c685785532c1dd23e8ef868b9ce7a541010f3d1646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 +public_key: b9c82a0db31fb3c6458ef4c21b5663ef7795f4c36ae77a85ed8304a4066c48741323ebc5e5f50d50a704de206c4f6a5719b27b8fec3d95e77f545a7f78c57a9432a329741159808d255232d4288032d658bc483d4afc3d6ba94f8bf44b347a8fd4bb7e2e4000db9909c3720920a410a46905d3a34083c3484bd2448f232ed825658a8b25d99c995be0866a18c01274607ad6bc0154a4fdf70f42768a5ca86df321327b89094383648a236d8f74bd3e3854b110ad8d1403e428a73d9a13cf29a6240c30cc53532d60152ff560d1e3c3205ac557fc76bba0af547c69e9819d1ca412088a8665863f64cc98f3853e2ce115c4c3080e002542714efb10b8f51a59ab954885b313af6000fb8c0b23bc59ae73948e8b30213c84230098469200c8d3aa1f68160963b4dec95c20c8290783457c06b7ed61ab17077709591416a422e52a2afa2c61ec4932df188a4a0c056dc854acba8acd5298a6cb2de04c7c3bc7bc724157fa2b9d01c9bcb0624d79e52988a4b783e8a6d7c45115c548e0eb474368993d971e59e96d5c2a9341b40f461752dd73cbff7543031caf370130311c458684a80209565b754437926bb20840aac329392cbc4f7022eeb03580696b239b2993c9927f649aa838c4e88726f9633b8630977e85350bb25c130161b6c0298c03bcb387c38b4853ce8258166175623107f3d4c5a4b266c9978154e710f11337f05986e921b20d1c02d0667b42d1a4f09231d7d8993263a2cef7b3e5f153aa691a12b7ad28513eba123945f0651b83cd36099047b997ddc5128325213875ab7ac39b6e969693c4746f19a159b19b7911abf45a9215f5c9ebf60c46f254c27285e9491486773ca0f8848e23bc16d83155c302d0e42504762226701bb3a446316b9199860b824c1bb5bb2b4f535e74c493a80b3faa5b635d65364fc241a2e1366f3a2ae40ad07e6621ef64428ffb6c86a1883aa20d04b610ffea3b48e88e6073005e281e91d65cea99079e1846ce89c2fffc8cb38932c00783c9812d26f91937e6966dd2642bc1b494775f5acb46ddb3bfe70c62e2018cda8b16ff762ec3944909d034c27ccafd2803e4f392fedba006d672021a8eec76cd2c5b1f2bb65737a5369365c8ff6231b7866973201853d7538b27825592629c7812dda74b795ccc56fa684e8244a4b204c0b2bce93100a57c02dd13c5af5718084042e9d809eee01ef78166d5579fb0702deb07b6708c7ae2757a004d2ce31921030059c36a014df0178d59c7a7a7b1c3e04bfdca8ad4697bc2a36b5a213900249ce02a678009a4c9f8589bc24810e611a942ad468a2ae2d8af0b3b3a7d741fdaeba89f3b6c1fd302dae37f2d54ba53fb78e040991f4c468bc2b6f527cb985a9ae19797cf845c53803d13b267c8f31e4382791f0a7ed27a96ac609b40c8bedfb1a11d8c244cc85f4b692607d72f3cd05b070b5e8f4b7e0ba56657434296caaed3928f32d526cf0281a57960e5c55f6deb1636494e3d618d1e4431fce125adf544b91904cef045f1d088e159a6cff792ff5182386a87277953b4c4ba3714c20bc50e04c2b2b628b147d07291e24e18a6906b5300393180ed011b2c458d7e2a1f4604816a94b83c93c5160b740e3640707a4fe8f265ba351f4ff2c7fb75baf8980f136b2ba2e81cac3b27c2653c89b65ce236a3c0c28759b12275c4cddf5c14c7b69e951bb30459b150983fbc330db7dc3220420dd5e928ef5905a78a0b0e214bf1252765646f6c657aaec11fa775183c1ca3bb7261a2205e46d064239103203532556ca7fbf750d1f88ed6862ed02489bb30c976b4abfc0123583837a8db3f6a38bc5e9a44a990a471cb3e380b4508ac4162a4073f815507d33fffec823f9ccf17aa150a5bc7562a4e3f85995444c787d16901332989c15fdce4b43a215da66000525ab32f5b1d728846fea3ad2c092e271208b6f833e51c701da8854b867e0bd0234a3c9d98117c58ac1ac8b05f59f027b4a78e94771ee263792cb891e9d5abf0706f70f149482948eb6248bd811210765f93b4cd49daa19a17843e510409d6638dda571f680f02b17182e1c7eaa542e990275bd080bca0c793d3113d524598fc9dbc453a0560c556e7bfa3856570b570a1b43f82657458615be5080c89c0bc7e99a67a91bb9b8cb821e426b843f7542c5ce12ca13b5b7f6c716e63411681fef0ff85e8cd3fcde5abdbb9e4 +private_key: ab6656e1c10c6071c28b24c6461336d91c7b5ff6cb9c97ab265215951983f6530ab7da57f0e4967321866ab70204396caa7b9917c9c6e082b331d65fd1eb300dd481311b723c44408a1b1f9657b19bb73ac593a3b2a86a1de53f2fd150abe7620fa9b061340ac23ab1ccf45914170ac5553873873fd0175b79d500c2e92ad5fc71ab348522c5c82b81c89303abdf684eb9f638a2c502a088795caa954f9255ec8389d0097d768133a7340857534cce37b7372388507c8dd9908d01a62077dcb583a5328238a097a572b800ac1e3a4b02080edf616072229b74f4078d99018eb6191e09c5d498a32cd04e22398604479c85c61436606dc6cc4256611fb8d0c2a4f83fa160c1e7810e558526140c42c2c111141a3a24ea7400e44e3a472d1e913e341b50d88364ae301f4917ad1bc94ce43027a2435c6ea9b979cb30d86a856bc69928348b52b36915684cb5b02c23b00b8fd68831d593338b07ab0316bc3656e9b58b4ff4969fd461ad72ab05754399e39e2776a08ddbc25e4a8db78a279575bffaaba7b9143c337888e8f524c163c059f860187b2cf674b6fcb94b480a859a2b7af7066be0111c94510a919739757470b1a25fd9eb3143cc66c7a2a0c4f9ae57ab26d9481aae956240785043c43bb130c25bc10bc9956a930c009b7a08839cb483c73e671c29f2609667b49e52c79d494596a668484b5659c90965e8222db617ce6e18c94cb80aad565206c930cab57e8040cf6d2c1bd4219bde58538bd71eeeb1ce8ac9bab801aefd84406d7233a0a21a68d48fcbb10892f71a7b98110cb780db9b07b6e53339e3a0ae3921a0f85c4dc282c4874b7f5a56ae059ee327bbbf68ab3ca84e1e72b5955cc3caa12b86e949025a7bad520acc7037e97a51bde797636c5ebaecb671f68518756207327f8acb9594971e7ea07030748a87d674604b2c53b6cdd6f16a0e4669ba37a20477b25ea47ce56aa81f100bc3d4392e224af7984d59f0570e9b020a698409e8b119425756a678cf6c98cf814be4e02be4d1bfa9daa20b91a934da2b18a9cd294808f838bd21a93189859fd6b645f805b8c2caa10904697189ca2a90bb8c9431c14372fbe552009067d6097b11246c4d8469d01c470509079183082e6c10784a5110b93f450a8860134514110079393f3bc45a2442b59de6b37896be3a54553fcbb72cb10755649341699be44488bce835caebaf9f8a017437615d6409b576b90f8021db6babe5c10c0fb159ab9060a0744837631046d04930eb853a1970bc34734bcb327721b39528c0ded4226207033aa18a3171b50f698035282000696c9bb14a6617ae7453b608893bab7b385e87ccfb83929cb968746c5196ac7c46423f4b10ad3ddccf8f9616def05642e22e15e15b5827b850249434d9088896cdc45b39582c3e2d7340650365c929546298beb4fa024da8b3886a8ed6699bd15bc645dca53dc792458470395bb64cea5bd9916a11f5920487cb60776f3fa1b7e6d16007a5322e92410377c874f98bdf32066a136d8221b95474a240247bea21cf0a572cdd721ad9c98f6a248c33a20ccd3a6965133e6e47055b5893d8db26c6b77754f441bfe7439b8a5269280769247adf0665d161c88e756de537bf5601b248e9632886c84b572aa542b53f25001586c60eab6e1cbba8b62582efe41ca212874f402635815611f09ab9ca4ce29b6fc665478192452d667228f17d1500d0a18574527a3ea92bb208e037722684b2f14db7d7cfd11616d9a528e0d54ce197b16282bb2a2a778b81999bd38fa2d86b071b7d47db2c7b3b3af53b4a8bf7051b38468e63b2728003e8489d33caabf3ba196468abf982452f7a261993bcd3941fdc59a60ee24d19f060d7e493c29ca5a7510918b918eeebab86dba7eec12f233c0b0adaa65cc1ada2d64976c0399dc8092d5c3ef0774101a01f6643ce8ba0280356cbefb2c2856cb6021768564342287a9952b1c2da5928520cbdf6d8a970c4aa776c60d7781107ac9da66672dc0490cde4b38dbc08422624e50b9b3b775c8806adcec9a5a2d94f56d488a8ab8f90b6930cdb8fac4ac5b17b66c6b1167c981a55cba0c8079d1668ae51f32a62d4513165b275097597e422fb3ccb4bfcbeba52c0b028a01c94c4a192b9f1dc4f584328cbacb263b5c71c145bb9c82a0db31fb3c6458ef4c21b5663ef7795f4c36ae77a85ed8304a4066c48741323ebc5e5f50d50a704de206c4f6a5719b27b8fec3d95e77f545a7f78c57a9432a329741159808d255232d4288032d658bc483d4afc3d6ba94f8bf44b347a8fd4bb7e2e4000db9909c3720920a410a46905d3a34083c3484bd2448f232ed825658a8b25d99c995be0866a18c01274607ad6bc0154a4fdf70f42768a5ca86df321327b89094383648a236d8f74bd3e3854b110ad8d1403e428a73d9a13cf29a6240c30cc53532d60152ff560d1e3c3205ac557fc76bba0af547c69e9819d1ca412088a8665863f64cc98f3853e2ce115c4c3080e002542714efb10b8f51a59ab954885b313af6000fb8c0b23bc59ae73948e8b30213c84230098469200c8d3aa1f68160963b4dec95c20c8290783457c06b7ed61ab17077709591416a422e52a2afa2c61ec4932df188a4a0c056dc854acba8acd5298a6cb2de04c7c3bc7bc724157fa2b9d01c9bcb0624d79e52988a4b783e8a6d7c45115c548e0eb474368993d971e59e96d5c2a9341b40f461752dd73cbff7543031caf370130311c458684a80209565b754437926bb20840aac329392cbc4f7022eeb03580696b239b2993c9927f649aa838c4e88726f9633b8630977e85350bb25c130161b6c0298c03bcb387c38b4853ce8258166175623107f3d4c5a4b266c9978154e710f11337f05986e921b20d1c02d0667b42d1a4f09231d7d8993263a2cef7b3e5f153aa691a12b7ad28513eba123945f0651b83cd36099047b997ddc5128325213875ab7ac39b6e969693c4746f19a159b19b7911abf45a9215f5c9ebf60c46f254c27285e9491486773ca0f8848e23bc16d83155c302d0e42504762226701bb3a446316b9199860b824c1bb5bb2b4f535e74c493a80b3faa5b635d65364fc241a2e1366f3a2ae40ad07e6621ef64428ffb6c86a1883aa20d04b610ffea3b48e88e6073005e281e91d65cea99079e1846ce89c2fffc8cb38932c00783c9812d26f91937e6966dd2642bc1b494775f5acb46ddb3bfe70c62e2018cda8b16ff762ec3944909d034c27ccafd2803e4f392fedba006d672021a8eec76cd2c5b1f2bb65737a5369365c8ff6231b7866973201853d7538b27825592629c7812dda74b795ccc56fa684e8244a4b204c0b2bce93100a57c02dd13c5af5718084042e9d809eee01ef78166d5579fb0702deb07b6708c7ae2757a004d2ce31921030059c36a014df0178d59c7a7a7b1c3e04bfdca8ad4697bc2a36b5a213900249ce02a678009a4c9f8589bc24810e611a942ad468a2ae2d8af0b3b3a7d741fdaeba89f3b6c1fd302dae37f2d54ba53fb78e040991f4c468bc2b6f527cb985a9ae19797cf845c53803d13b267c8f31e4382791f0a7ed27a96ac609b40c8bedfb1a11d8c244cc85f4b692607d72f3cd05b070b5e8f4b7e0ba56657434296caaed3928f32d526cf0281a57960e5c55f6deb1636494e3d618d1e4431fce125adf544b91904cef045f1d088e159a6cff792ff5182386a87277953b4c4ba3714c20bc50e04c2b2b628b147d07291e24e18a6906b5300393180ed011b2c458d7e2a1f4604816a94b83c93c5160b740e3640707a4fe8f265ba351f4ff2c7fb75baf8980f136b2ba2e81cac3b27c2653c89b65ce236a3c0c28759b12275c4cddf5c14c7b69e951bb30459b150983fbc330db7dc3220420dd5e928ef5905a78a0b0e214bf1252765646f6c657aaec11fa775183c1ca3bb7261a2205e46d064239103203532556ca7fbf750d1f88ed6862ed02489bb30c976b4abfc0123583837a8db3f6a38bc5e9a44a990a471cb3e380b4508ac4162a4073f815507d33fffec823f9ccf17aa150a5bc7562a4e3f85995444c787d16901332989c15fdce4b43a215da66000525ab32f5b1d728846fea3ad2c092e271208b6f833e51c701da8854b867e0bd0234a3c9d98117c58ac1ac8b05f59f027b4a78e94771ee263792cb891e9d5abf0706f70f149482948eb6248bd811210765f93b4cd49daa19a17843e510409d6638dda571f680f02b17182e1c7eaa542e990275bd080bca0c793d3113d524598fc9dbc453a0560c556e7bfa3856570b570a1b43f82657458615be5080c89c0bc7e99a67a91bb9b8cb821e426b843f7542c5ce12ca13b5b7f6c716e63411681fef0ff85e8cd3fcde5abdbb9e471c37cff80f992f3359ded64b566956adfa3266cb05f171eb644711d3a2cb4b41646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 + +# Official test vector 36, seed: "ee762f5c9021c36446706a88ef16312f4a12c725cd7afff1484337c91eda8e89f7007f3705747d29907b3fb7500e5074" +seed: 056661b38038da4fdd7426f32a81576c73ed84843b305168a374f934e27a4e1b79238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 +public_key: 35d29c0d6263d9020389240d058974e871ab8e433196680f50c7b88e6a3ec8764b4509c3764bb4db404a8e932413930dadbb5c5d60a01539763428cdffdcca2cd0554633367ad245e069bfdb397b803c68c8543583581bfcc9bb1147a2063262774706dab0a015e7c57e244b12406b0009024fc06181bc058b466ee12c3ecd1a983fe1bb030774db831ef1bb26539245caab4d9954bb01901c6bb66534b95cdcc92a1af075be8a949829558ce625ace38b1296a75058b9a3f90e74e04ff3880106869899e6844a6504b8a0cf99ba86c72cba26564739d0221fa20fb412828180a14bc570503a033eb379790a457f9277a221b75720537205cd19969149ab9d2b87a19250b595186454c99b46ab8f03365200424b4ef8cae2569ab4bc07b98acd2e50b0426032f967354c70b6c1f1a1df32406c296b0e9b8066904fa2184e0dd04ad5c27f9e952774bc82a923ae90888613144bbe376b38112a836b7d6b0606d25abdcec0b471a834fe20adbc78a68cdc5619089ae4f09b32947eaeda996adbcf131621bdb99173063f98f1380a324f84626212f8acca34205299399e62b321030191379b8bf96ccb336498d2a8bf573f44596d0db92792122026b61264693be3a3a7160a9e60fc1fc0897e5f602483d6c81f382e3e237d6709b82056976ce23d66b013ea48cb56d78d12c68dc2cc6fdc7aa1142548e1940e3d889c71e990fbb19d4fa0bf892b5cb873ced68516e544bcc4bac3734215201c617767757dd3ca2b0a5084002f175995abb6a7b88892d07b4ac68b974ca83f13722f028bad4aa9400f0b755fa3352c90673a44be327845d1dc1cada0996d57b62fab1032ccb6eb947646fa25d06495a6577a17d707b11c3e8fe82325d21dc2997d0ada9bf85b45d8e5431ce5ac571c253744108f91aba0b2868c7096c92b2f53fc5a0d996cd8414cf230cae4c58059177607040d871b8b1da28837c7ab177369fd2c05fe300da0d84e97497cf5f22a36b966b5872266202d207740d47c8b1fd118ab390cd5ba70bfd9a0bf8b59d14b165575a079d82bd0fb1cc015340a1c0a0c77c7f822cd2999c6f10b5aab063181775b7f42b2fbc813b2fabbfd76c0a5d4942df97c449cadac303ccf4790685438257a0093461f581c981bc61229c94a130372ad920d2cfa5cbec684f8986a7ecaa94275814cdc2d7fe403c933bc0038b18b28cc3eec9ccac49bd922c446267cd07b786de316012330ae70bc49216fcf6b4c7db2bbab55153e21089d04c3fde934955ba215d047398ac172c2b1a18c0597182e88a327d0f0968796ae0a03772adbb406a210f2e004810513f09712836c45cc11a0d8c8433b813e0e8aa380cb166fa93961a2b6765287aecace40cb4caa064f6b547f0084bcba7856898b221d362c9de766c7d447bc10925330ca87a8379ba944323c638f33b164e13731b0b92a134ee9d454684387790361b31b53c245328bb19185f9774e2764fd429e11e2a4851b222c4a9e504531fd962fc23852bfa3b4632aba9be4595cf5083d64522ac93b41c7409aba1b83ec51cb6a1c0bd0c24e35cbfff95088d7b6ec890cb5559c44553dc44822692a243d032ff75c7c08914d847551151052c6846e2f556201205dc130babd9483dc721d42f42cbabcacff1aa93d05a2ee54bd399186bfd4978a7a76d5d24008fc55ec40a6bdc899ea0a69ca22acdf8bbd14a5cfa2a06587728427865a3331c60e77b5782c37e79561cb622195656d8f9c0c8c2c560ac95cb0b986ffa0784ee17554cb2bd0d332645958bb68cde65b13d274ba9a655bcc8072d6681cf556c7931000b94a9436602f0a5a6fbf770a2b323612bc47190c9a88d4588d97c099ca04b3b7377867a6e68869fda2258083cdcaa41aaa798ea11ba7f6cc4838f2aaf9c5795f8137adbc4c17b491a59255e61ba078a9b4179cbc89cc3c9946c65efb9ca5ac5765f3570f673ac80c1d26b5af8f031266c65b4ef41f7923af49dc6eb3d0a0eac745aca402ed4b9b2de754bc3b7a6b54c2159baee1f560dc502e4ee6b3a3d6b4c1ac1e06dca9edb6775f5696cf91acbd9293be7a82244234de9869afb1b2696300331aae6c9332840145eb16b016f8714fc00020d429f75231f73b265272a936e404f0d57b79c6ca8c25cb7c8bb89284c4e7b0ba9eb33c0406a8c39eb0d5429fcae286a9c56be5839c10ad33e8a58374dff41feb +private_key: 6d02b73b69cadb317ae9c9b09a74634c1762b30c55e793c0fdd50574eb6156f152e7dabf92b1a4cf7a9afe32cb5f95909f1c045bf9c7c76c137c6c4a4c170f82724c32921a2ffb7250ea6fea48060cf88b69a0506e2bac21912e4ca5806d15983428c4d7f32847b6a4bfb7218a4cc2b09a343de3ae2fe392ad6a555c035ecd0a16c66339280219bb40ba2ff5432524cdb0ca32a6d1b8a9ea96893c3864494e3690647d8318a3520682cbc19632cfe2e28733da34a9811f5e659cfe99b7894a88aa01c3979285813a149e196ff51206ba654215985c47f3bd24848e0c959a93eb20c3176c68188139b72929b83533ea0a70e44333d923512750cd9520f98bcae6c16643c080fc836367aa4a39c88f66c0ce09428135673b0f09529d0bb1e9e4b14679cf41f433bcf533e7e4cb1db4b5e800218f564fce359056706f9f091f6b1a0420269948512748871ea2b7c7fac91411c70a23418a336297ce670ebba02520c3c1d13807bad55100ab3d0a8b4e87fb5a5d21925a6892e93c3c10a66fc4974b282ccb9cb134aa0aafa86a527f96b2df98ba19da2e536614d243a19dd1a095fa37e9008607c882b48a79b3403f76342cd4345e6f6c95327965c2f860c4367135124373fb54a4aa7284429455f1637f56b4443ab048e0c9b82289f7d2340c2547a3bc8e66343248b5114d27cbb0e19a6a6a82c84bbcb340113ed65460052c088c555c27847078319149048c5a9103dca6770aac9d5a75f84930d6f7cd5813590a22040ffa2b9b631ec897409259037fea8547dbc92288414dd002a4c377e501800aa49b28e68a528a3312060d635ca584542a8452cca7c0cc3ebc4e3f46a5a5cb1fa49718b1c71f95224f9cbbcc9376737cf827b25caccb4b49cf4a0b0de096e4d83f319582edc68ba1177bf7ec2e2a41b0686bc6678b8355cccb7b9a8519aa68b39067dd178db2fa8ab33305efb7592a29a8f49b9264251c1ef83d75518134da35ec07ca4beb10e102466da0b74673b9fd7cb93f287ab4e321c9c4034cb26be63567f7083cc86a15b67535b1c235c7aa4ab1eb5097947b5b282e15b888a8b010e8596faaa410f6ca7fd358765ed97e5f8970abd54e36938709f6410b779077cc0b01052b412822ce256f15352fe5314aa2b41be3611ec14020b975077a444007296455818b90f6b85c50a3fc4506cc48c1ad436308154c5075755c6419ed7a267561841cc56b428608ee62047122aaa674bc9af18f15c52bfcc981fed3622f302896d7bf238b9808152b4d8ca1efca092569595deabe45f6b35c8c9b7293a321e96e9574726dfa93c79b162eebb0e7a37cea7127ef1179c728c22d98328b59b86ba4a85d11249ea08a3e594e7df1210846c8f7683f5b856ff4fc8d63b129cb1c8ea72a168c71c56c166cdac216e07097e9fc050f458e0cf6bfc5f55116e161938c8df6643b6d5514ecd860a4372693e12c1fc8b1552800802ccb48d16f4fd89306d30af791aecae205a6235eb9343c6576034c38747a306db6c2302e5569c19a75b2cc62d3895584361284801f368766f27a83cd376952d0374316af68d06b3c242d7188acbf8847f55b80750bab52b2043df10b47dca1986131f2db9c9b12bf4664a3db6bc1859b59b468c0f34c1bc8d8c74243aa3f434f044a408ab988a5820ca9317d35b8344e45273f76259c813ddf991e0e02664a4c8353252c85ca8531b6196bd68767cb8010d92fcfb12acc9c931d169b9cd247aa2c8c5fb6013cf65f0ebc432c38936db3b6ec983f742a1ca6449011bbb70f5bc7755b58d4c011455aac47c6831d6a3368905e6b700c987cc910b23d3e406e81e56f28d0a35aa331f7499c63a10b2eea5dd24b4e7c173d9e694d6c6b7a6262b26c99163c337ff3fc9dc9586548665c1472935aac3a8b653e07802b1f2a291929233e7c8d1932718ca63299ba4919d9936d65a2b78c733ad2c15f13cb4f45252b7004d9d9911bc5293c61983eb24f7b9c1808285d82cacd48801a721b15f43c0f4563c494a9a5491c30dfaa5ed5f89e08cc76dd7324d16b3ffcea5393aaa525e90f7a4bc88ac07010a60e68f7be39b20faa28610db77006a5577acc2d33740b6ed66341a56dcb4ac5a3eaa431765d006caf51766a00e07f84a6bb0222c251764d628b9cb38860c4d8cb35d29c0d6263d9020389240d058974e871ab8e433196680f50c7b88e6a3ec8764b4509c3764bb4db404a8e932413930dadbb5c5d60a01539763428cdffdcca2cd0554633367ad245e069bfdb397b803c68c8543583581bfcc9bb1147a2063262774706dab0a015e7c57e244b12406b0009024fc06181bc058b466ee12c3ecd1a983fe1bb030774db831ef1bb26539245caab4d9954bb01901c6bb66534b95cdcc92a1af075be8a949829558ce625ace38b1296a75058b9a3f90e74e04ff3880106869899e6844a6504b8a0cf99ba86c72cba26564739d0221fa20fb412828180a14bc570503a033eb379790a457f9277a221b75720537205cd19969149ab9d2b87a19250b595186454c99b46ab8f03365200424b4ef8cae2569ab4bc07b98acd2e50b0426032f967354c70b6c1f1a1df32406c296b0e9b8066904fa2184e0dd04ad5c27f9e952774bc82a923ae90888613144bbe376b38112a836b7d6b0606d25abdcec0b471a834fe20adbc78a68cdc5619089ae4f09b32947eaeda996adbcf131621bdb99173063f98f1380a324f84626212f8acca34205299399e62b321030191379b8bf96ccb336498d2a8bf573f44596d0db92792122026b61264693be3a3a7160a9e60fc1fc0897e5f602483d6c81f382e3e237d6709b82056976ce23d66b013ea48cb56d78d12c68dc2cc6fdc7aa1142548e1940e3d889c71e990fbb19d4fa0bf892b5cb873ced68516e544bcc4bac3734215201c617767757dd3ca2b0a5084002f175995abb6a7b88892d07b4ac68b974ca83f13722f028bad4aa9400f0b755fa3352c90673a44be327845d1dc1cada0996d57b62fab1032ccb6eb947646fa25d06495a6577a17d707b11c3e8fe82325d21dc2997d0ada9bf85b45d8e5431ce5ac571c253744108f91aba0b2868c7096c92b2f53fc5a0d996cd8414cf230cae4c58059177607040d871b8b1da28837c7ab177369fd2c05fe300da0d84e97497cf5f22a36b966b5872266202d207740d47c8b1fd118ab390cd5ba70bfd9a0bf8b59d14b165575a079d82bd0fb1cc015340a1c0a0c77c7f822cd2999c6f10b5aab063181775b7f42b2fbc813b2fabbfd76c0a5d4942df97c449cadac303ccf4790685438257a0093461f581c981bc61229c94a130372ad920d2cfa5cbec684f8986a7ecaa94275814cdc2d7fe403c933bc0038b18b28cc3eec9ccac49bd922c446267cd07b786de316012330ae70bc49216fcf6b4c7db2bbab55153e21089d04c3fde934955ba215d047398ac172c2b1a18c0597182e88a327d0f0968796ae0a03772adbb406a210f2e004810513f09712836c45cc11a0d8c8433b813e0e8aa380cb166fa93961a2b6765287aecace40cb4caa064f6b547f0084bcba7856898b221d362c9de766c7d447bc10925330ca87a8379ba944323c638f33b164e13731b0b92a134ee9d454684387790361b31b53c245328bb19185f9774e2764fd429e11e2a4851b222c4a9e504531fd962fc23852bfa3b4632aba9be4595cf5083d64522ac93b41c7409aba1b83ec51cb6a1c0bd0c24e35cbfff95088d7b6ec890cb5559c44553dc44822692a243d032ff75c7c08914d847551151052c6846e2f556201205dc130babd9483dc721d42f42cbabcacff1aa93d05a2ee54bd399186bfd4978a7a76d5d24008fc55ec40a6bdc899ea0a69ca22acdf8bbd14a5cfa2a06587728427865a3331c60e77b5782c37e79561cb622195656d8f9c0c8c2c560ac95cb0b986ffa0784ee17554cb2bd0d332645958bb68cde65b13d274ba9a655bcc8072d6681cf556c7931000b94a9436602f0a5a6fbf770a2b323612bc47190c9a88d4588d97c099ca04b3b7377867a6e68869fda2258083cdcaa41aaa798ea11ba7f6cc4838f2aaf9c5795f8137adbc4c17b491a59255e61ba078a9b4179cbc89cc3c9946c65efb9ca5ac5765f3570f673ac80c1d26b5af8f031266c65b4ef41f7923af49dc6eb3d0a0eac745aca402ed4b9b2de754bc3b7a6b54c2159baee1f560dc502e4ee6b3a3d6b4c1ac1e06dca9edb6775f5696cf91acbd9293be7a82244234de9869afb1b2696300331aae6c9332840145eb16b016f8714fc00020d429f75231f73b265272a936e404f0d57b79c6ca8c25cb7c8bb89284c4e7b0ba9eb33c0406a8c39eb0d5429fcae286a9c56be5839c10ad33e8a58374dff41feb6af202d9ad3f2c7ca61993e238140ce8550a5f0c39147130a5313c8c02d68de779238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 + +# Official test vector 37, seed: "d882ba69ac8bbc88715f1c6387531f53273a5dab87e66faa8221a7f628d2bdeee1cbc59c0e08d0add84520a3a70c1389" +seed: a1b52d871612a1c611ae0944f9e71858f35d3bd14f20e96a931720668bdf0a6b1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c +public_key: 349251ec123ce574a5dd6ca1d14a967e7177aae64d9678571d6b0b0769935a1a2a8dba53db6c5b7067210426c64f53542929b31d565bd25a480d9065d79852b0f05002964772465c3fca5f8307308055603039b1b56726eea02a8cc19c5af41309f145000d2aaed3038c17911677a2631242280c23e9816185c75e5dab43b4b04c8777a35721605aab1adab828f2640ec5b23173f6cf5d37ace602ce5af62108ecaa540ba46594181ac9869517502aa73ddedc4131ab152b53501dd4aabd79556476063da48c4978835f28500f810b77715257080d87247354302399485852314598fc6eb1f93feee6429eac96d37c8422dac30f473b56db0dcd2c64f1c18f91950e7984a88b63979b424c6d4a36220019881b5aaac715e426a6976a300ff171a29778c82a1520f42a2f0b10d26035613a1e0511720087be146ac9f0cba2c1929c0960bc16065748573d61eb195de53ab9ec802d247b210b747c70c45aebcf39229e4b938eff354fb9f65cc6b52ff0163494744848885ee577048b506a95112ed45466252783a4016f30e29b1928acbb448379723d51bc3b59a62df46ca75f64bae27aa2d9456c66e2997b48274f425004e6884e296e17912f7e387db452681cb32e7217566897287fe9c38622325a8c6716e5a767a626d98836cb779983c31d1802b0e0bca04bebbfa9e2cc02429f987a31f73274ce5320e1b0cff8154da331be8ee21cae8c5037a1baa4956b04833d4928a1c32147246002466716ea9c69f4032d33260c338cb13ea09e5e47957700c33bda9b147a3f3f64b46c933b7f4689d2797e4ad24df42c002a323ac0e781b7e8c8e679c949ca730826b3f6c28813ac24ce7ccb21136695c75b3d028fbf6ba94f5a06115c72bcb879d64cca29309502836edab5c7b2a79a1e1204161369c5e8b63dc513d0aac9fd366387f0aa2e736bc09b4dba05414659a6937264ba982b419342e8c063ec64b28663cbf4d12aa5a6ae5aa9056ae71c4f5643cff81ce6d7a8d29a250ac27be274afef453dd176c462791c249a817329142c00ba332851e50a01660a47e35bbf3890c23be173dec1a1d57a4837975c14269707384855e897cb44c4bef532a003409aea41d2fc889f572ab20c0409831ffb0222cc7246438a95fe4a6e32412688b2cc8c1963e38526201aa9d2b0963533b2fa42af59e61d53c4bac2bcc09e44c5f9c4963525a7c015244000749e811873a391f71315d1fa60c806390fb3aa80295e77e80158c665ead61283271a1997757e5c4dc6893ad71a63a1898fcda02165db76e252665153016c90bb9c8423cf8a1d371338feb40a382c2c3f99840ea96f99246044f4a5fa5cbb8d7473110b4a5238255e5c3d43463b055bbe46211d2e05812dc46bcd539c56a15199cabe5019220dccc1a828a5e0c37bf130a6df762e395915654b5bcb5c3eaa7142e1706697b9914a287513e407ed376354697144b33260eb966316c05dca8655a0436bf47967779d43cca5edccb932c023351542857268a57a74c4eb08b7809c289c5543cc3730594b3ea33de6e23a5600ae6a68cde3614cb1a80bd7c2379c1834c349c55fa73859c5a3ad45886286973f1363a5a536a0b08faf26a939179f873cac62281260868569372dcc744185a55feccb261fb0af1ee7a50dba2c49636e09687f4618667db136bb291f4b4c129fc7635182720521acf1d67c719a283c412bc9165d9f883db9049b98381a4412b6599316cb39986a9c3f8c069aedb9b5e13b82f3abc0c1cb70dbf0b5d1d66ea003676197c1be2c15bc6533a41804ce0c123fa55a87fa344d850af4f5b12fc0ae3610593e1bcaa1868571b2a618db9f1900c459376798341e4263c70cb94a9db42a04067f7a5310c606bd7ff661ef3508e6b6b6373c7ba0c872b8019676263bf912673c59a4c51372a2da860399222654518063c3e1f07cc6c93e91ac6b53f3c04516b76da65124325c59d4360091923d1883977a52b328c0d508d0f039696db843bc12c506b521ae34c9b9d145047293a6eb99686770dd587c92bc65aa3a4083b40e8fe2cf891c5152281744612b2598664e4368775572e4a03a9ff53e307caf081ca897dcb43061a404c689d934653769ad59d68475a8b0e7277bb280ac77ea7b1a1b6111c1574c6358dd6a472c49c264965f8cd9fab7d1fd2c5f4c3a4ffcd66e5b05a4879536aee3074b69c3d4e6b1 +private_key: 4f311376e73d8074bebfa35fb9c25879f482ab77c1708a8974d609f4aca60712bf80e6a4948042a333cb8abbb1bc32960c75776194adddf09925b605efe3cea0421a9cfc63acfa774858b9f8468c39e9038434517b103e117abda9531ec9db871b0144de3b3e6a99cc091a696ec218e6e099188872d3b2b2e4188c1935530a364ec7a1a98d9cba4bb68d26ca98eb437d2a3378bce40fcd3b4a8f7982485a1296364363dcbcd813a2d434bf3f68788c035980c0be8f46a6ef54a198d64c0d149731a097cac43d7d022167aa8657ea521197cdb3585b4ef64b1f6708082471820919e8b9392a5c2f56e56148d10f18525491647fb0140e7c66bd26e3631f3bb3f20c947a67194b9c5de9793d55c2b800263e50929889d8afc878b661c7cb2fb366b8f70f8ebbcf75822caed8a6c83a3651557389c51e5431ab15095705300a88ebadcc417a4e955f2858b797b39b64f10f587119e24a01e2a17a638873b485b2c8d867969c39b30c01404905ed14aff50484da83a8bfdb23689900a7954695b6695186b590e5c3dd27ab6a619a2cd13b78c9cfc7c966d4d373485ab99e522a74372c51a4764ec0152a29acb154826479567b1c6aa68bb2fcf471e035c0d7f22478fab87e7c035102a8fbb5cddef910923748bc752d0c82cfdf8b7733f30e6752b037482bfcc8a38097c9a9d8745b0681ad79710a4049be27c13680627516aba8d308287a45f498c9065900cef26280f17b8ea6216f60118eea6243337fb2d7ccc156325c33116b057b92e24d662718235a7e7b69186b17232132b529e44d558039eff0c2aa6b0b0bf8332c382e1b132c3f343a2bfb3f11a116563a7905617e639c6bed21051f5513c4793dd887b9ea26b90dd7076aa4aad5614d53e87d91861caddc1dab846c6933a689eb2d1566814f31951546b820620fb60690a7734153e79e9ba9a054aaa9b908605b10384bba08e2213e683c6d64e9a80d8235f02c39a6bb42def54865164c86c08af24a614f3608b24a617bab86e5196172c81f1a6a001ca4cf72c9bcd6f89b8dcc154dd761a3c02362092db91b3da7dcb723b59c3e029be1f96e6933a5a7a8296da3a043a32e9fb27573a62352a088afa68baef5403f200d8d71743ed79ec3acbf1c4811a0308f425a05714c5637560cb7b36dcc91008d715248fb3e2e52c38b9c67381c3e0bd8127c163e320504ab20588f02a0ab036e8cd121d762af33980c0a7625c6129b83b6c8d7e304a4529ac33c204d79741c1a68ce356c4ca04a4f16406b462db4038f78bca2baab2926250cec30a3ce827e56186da8669fbd7a2199f53cf87cb2656349b6d2ba189079e7d2aff8938a983275551a21e7e179e13cbcea08885af930509c68456a9e778baa0e4649e2c830454c278a06849f088d130c176320b260381259d4458555a2d8715a93957470e538448a7b29958d7119c17f6a38f09a8b441c371114cf1cf390b56365d7c71fe9bbcb496401bc8b07d15c06a49c221828b6b7b56cc601bfd6d75fbf3aab16ec9584b78078324cf9060c5304354bc99e9a69c090c6513e16b6af982f2bfb4e0ddc4cb69ab1fea10575a53358890feb66162d29b4af6023eff84070e25bb84b0b5ef18f4bc554b8d661cb5a97a83b856d6437eb503de82760cedb83a5ac4b05261a02a621937231eee26777d75a3863cdbc24954f74b43260a089823b8c659108bc86dd1bc36e9643b4f62c1489a880099622b27160a2c934f4b3369a9afa7531ec39487ef2b8742b63cc5059a8f9317b06aa8401071d86791b09249510aef7924c25a2458152165ed7c4403c0ccb5a8db007221f930ff9162d66b4a1522b878d8b08624a0ef3b24c1cec21928773c8fb99f4816a7955a2a2816949eb1dc1a794f7b61c1837398521bb07c0063b2b01571054af509dc94a3ef1882b0928aeb4dca18769b593d2b357e56bb3148ef7d4cfef73068d0b48cb37c168168a46701e3b16b6e8d463fd47ca5f7b472878497eb9a60e629897108c30461bf6f09283a006b95ca010aa80c50072892a1d7f406799593112b81d61775d4c15a3ea54c4184b775a88cc3c427d9a36cd1e77948ed33bc0891b24dc7a08822cd2c94246758cc4e49f04a61d0d721e43e57b8c18337293c25e109e64f01e88bb0c08497d49083a9fe260349251ec123ce574a5dd6ca1d14a967e7177aae64d9678571d6b0b0769935a1a2a8dba53db6c5b7067210426c64f53542929b31d565bd25a480d9065d79852b0f05002964772465c3fca5f8307308055603039b1b56726eea02a8cc19c5af41309f145000d2aaed3038c17911677a2631242280c23e9816185c75e5dab43b4b04c8777a35721605aab1adab828f2640ec5b23173f6cf5d37ace602ce5af62108ecaa540ba46594181ac9869517502aa73ddedc4131ab152b53501dd4aabd79556476063da48c4978835f28500f810b77715257080d87247354302399485852314598fc6eb1f93feee6429eac96d37c8422dac30f473b56db0dcd2c64f1c18f91950e7984a88b63979b424c6d4a36220019881b5aaac715e426a6976a300ff171a29778c82a1520f42a2f0b10d26035613a1e0511720087be146ac9f0cba2c1929c0960bc16065748573d61eb195de53ab9ec802d247b210b747c70c45aebcf39229e4b938eff354fb9f65cc6b52ff0163494744848885ee577048b506a95112ed45466252783a4016f30e29b1928acbb448379723d51bc3b59a62df46ca75f64bae27aa2d9456c66e2997b48274f425004e6884e296e17912f7e387db452681cb32e7217566897287fe9c38622325a8c6716e5a767a626d98836cb779983c31d1802b0e0bca04bebbfa9e2cc02429f987a31f73274ce5320e1b0cff8154da331be8ee21cae8c5037a1baa4956b04833d4928a1c32147246002466716ea9c69f4032d33260c338cb13ea09e5e47957700c33bda9b147a3f3f64b46c933b7f4689d2797e4ad24df42c002a323ac0e781b7e8c8e679c949ca730826b3f6c28813ac24ce7ccb21136695c75b3d028fbf6ba94f5a06115c72bcb879d64cca29309502836edab5c7b2a79a1e1204161369c5e8b63dc513d0aac9fd366387f0aa2e736bc09b4dba05414659a6937264ba982b419342e8c063ec64b28663cbf4d12aa5a6ae5aa9056ae71c4f5643cff81ce6d7a8d29a250ac27be274afef453dd176c462791c249a817329142c00ba332851e50a01660a47e35bbf3890c23be173dec1a1d57a4837975c14269707384855e897cb44c4bef532a003409aea41d2fc889f572ab20c0409831ffb0222cc7246438a95fe4a6e32412688b2cc8c1963e38526201aa9d2b0963533b2fa42af59e61d53c4bac2bcc09e44c5f9c4963525a7c015244000749e811873a391f71315d1fa60c806390fb3aa80295e77e80158c665ead61283271a1997757e5c4dc6893ad71a63a1898fcda02165db76e252665153016c90bb9c8423cf8a1d371338feb40a382c2c3f99840ea96f99246044f4a5fa5cbb8d7473110b4a5238255e5c3d43463b055bbe46211d2e05812dc46bcd539c56a15199cabe5019220dccc1a828a5e0c37bf130a6df762e395915654b5bcb5c3eaa7142e1706697b9914a287513e407ed376354697144b33260eb966316c05dca8655a0436bf47967779d43cca5edccb932c023351542857268a57a74c4eb08b7809c289c5543cc3730594b3ea33de6e23a5600ae6a68cde3614cb1a80bd7c2379c1834c349c55fa73859c5a3ad45886286973f1363a5a536a0b08faf26a939179f873cac62281260868569372dcc744185a55feccb261fb0af1ee7a50dba2c49636e09687f4618667db136bb291f4b4c129fc7635182720521acf1d67c719a283c412bc9165d9f883db9049b98381a4412b6599316cb39986a9c3f8c069aedb9b5e13b82f3abc0c1cb70dbf0b5d1d66ea003676197c1be2c15bc6533a41804ce0c123fa55a87fa344d850af4f5b12fc0ae3610593e1bcaa1868571b2a618db9f1900c459376798341e4263c70cb94a9db42a04067f7a5310c606bd7ff661ef3508e6b6b6373c7ba0c872b8019676263bf912673c59a4c51372a2da860399222654518063c3e1f07cc6c93e91ac6b53f3c04516b76da65124325c59d4360091923d1883977a52b328c0d508d0f039696db843bc12c506b521ae34c9b9d145047293a6eb99686770dd587c92bc65aa3a4083b40e8fe2cf891c5152281744612b2598664e4368775572e4a03a9ff53e307caf081ca897dcb43061a404c689d934653769ad59d68475a8b0e7277bb280ac77ea7b1a1b6111c1574c6358dd6a472c49c264965f8cd9fab7d1fd2c5f4c3a4ffcd66e5b05a4879536aee3074b69c3d4e6b1eba48a8a50609e70baaf4c552f680f0b02afab2da76d8833a2cbc3b6f782b36a1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c + +# Official test vector 38, seed: "6c3aff39f5d097096d882f24717718c8a702382dc4aaffd7629763fda73c163cf084807bbb0c9f600cd31a7135f48aec" +seed: 952b49c803d6d6fba69f4375adce8594847a00bcae2179da49af2aed0423250262d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed +public_key: 6a515110c076dcb486eafac9040ac0690b79f5278022f59bfc316494a782d92310489c9f93e61585b3bd292165f651a7017a994b2512f0a5bdc8e77e9bab7e5cccaa7bbc779d445e5f16b871989974d92d2c268bce10764c0146a683ae56c47c4644057ce8b4739031879bcc287b194cb36fab6916ff563248d04851c74a7fe87f4fea546a565eefd507457882cf288ed294783179577ee898bed18c97660bdb726867a2c9581cc13bdb263dbb414d695990ccb897fa31984734e3178e081856627b0a4bbc736a235b3e392b3996441198c41bf8cef5ec64d2f5c4b628490736cbbc076d8ebab4cd1ab4936935fa3aa40d941e85cb08774520bde23f24739400bd45b1b056d8a09ebb49a3e4b7209037c94a47084604697185bac8772122d1bcf22888f165546bb699b23b2262035135120cf677aa7f767ca049b869137999884e360518358852cbbca3f90643764cb30fa16cc009766c43b89e599203d6344b1081e97c863190ab57d42812d603ab56068283cd30e92e3f7a8989715479cc3735f3cb1ed9120e8b8c720ba35ab1178b426c413c5e89eb5483bb0fbed13a2fd0783ce4bdb1aca87d80000dd48caacb57c74b802c6b133817ab099c84f1c22383e57a759ac6eab76df67876e3591f32595a56a027f2087b63db7dc138cd820a84b09411da2284ac78445850ba820c31b1ca97f3e680e24201fe67154b935a36292b18857007953a848c49d0236406e7a320243fee64ac24b02952d0a02a57ac4fba19ce373e3382cff61160913ca55a091696d782f4134db83958ded48e681546ecf2be93c09a9bea7b3ff420c84a9107f4a75a2a1c40ba0f9e6060e936218f0c0904bb29add2305cd59e29d2b10fe667f9ea49cfd149d1d8bd62e549e08baa1ccc63b8cbc734a24017e4a099bc5a939828ffc8cac5fb5d388ac8613216f21942675cb714e32cfe666357413773ab5f6a2c405179995ef42635cc7db7238dd7c410ba529e7d7391556c5f604c38fa079a70fbc2e8b393306832fe2a8bca891d880209b9719eb4d2732581408a3896735143462a45f5e4267084bda97a9a5324a2e23a714c1322f4368be3ea5219c10f56cb560a78786c2a51db18c79f151f3743a7de67c43a35c63d1b70e17aaf4e4c48e300a73f9c07bfa776ee8797f803ca148aba782a2fab110a7c4440c5791354b25c1107106be979b2077d422a6d8edbc04225ac63c3705394c9fd5389c11855057572fb303ffa365cc2854a3bf620ce5203b21bcf7ad9c675427ca1294c7b001e37a02be18473d1b13d9c52b9d59bc267ecb1fdf3bb96c2b374e72e4bc0898441c47adac60c1955bd1a5096f371bfc709ef624078139feb979c9ef48bc0bb9100d0a97198b466bc5821978c87da85c4e4164ba61a010b5fd99435dd18129a6b379c3232f75c8789d486ee3b6c84e052b55066e81c409c182d4e84926a42abac49846fd7b6f7c305e234130026540a6571d2c241c2700ed4e073d0262bf196164c71a62b904938cab91cf12fc8d527a091c20a86b163aacaf2f25d1814bf2d435dc7881b0f0219bcf40f90f894e74392fea065fd1b69f2e959cd0a5850b002cfaa8e44d0867a16ba5b173711d77f355a71bdf7674299a91cc05f2c772a5280177f2551b6f4a986f3bf584a899e755464166c3220130e694616f76cc3722c999536b6d145dfa5a27aa591ee994332893fa87acc2df67113f8a9c438abfa667022b92842c73b15047d6db08e02930a6348a71472a5e04bcf856058e785c10d049af83736b2f78f8fa0b16b0b7e897cb695ec20d37c35190a079a57cb41ba5a0f010f4cb94b585466c9a802f0855946361237a0840d43487bf65bd9f000f2480afcfc03b3dbba6ff053aae4981fc619d82818251c0d00ddb269042902b4c28fe6578709374f2461b0fc1a00441b78582db2a76dee8729be071ea3c9957f5a3e75934628081eb8339ca5cb5ae83677d4c31d7b12b0463b57bf7aae0af3901a9795085b8aed0564d3755588a0829615785f322add179edf08204021b86bb3cf8f3528ad652437ba8b0c6901cdbb748ee8a2d854644cb694668b9ce322992dc43f2d8a7ee655be3b257a0974ad0649104b6b4e9a16bb8cb79a42968ceb1cbbbdfc6c3921ae35f6b22ac3c2f858184475b4f2a12db3158b3bbf2d64f07ee186fc57de21c26bfcf6b645f83cbd47cef72136aeb644 +private_key: 68e429be33972613c71269a6d8c28f37780f659bb7329478251ba1f0a71e5292986ef1054d57a4a1a98eea60bdd2244908972f138761469962af11078f880e900543195101e2238cc4065ee72a33cab77529c891209116774a34aa531093b15a133b3bbf24ca44787294578312a9648d6b427cc630be8420ac73ad795175563b471694658721ce97a74719587f6dba69307600ecb86c16d14428d264080b7083145c1ccb143933b902d463ab1264c53360c5fc04cad928d3f91efd67795ee2a9273a41353529cb3b6d3f61b2d4759662f1b0aab989b1d42c40e05f53e7251d56879e57c40dbaaeeee626f87b4f4efa07a7666049c5c6af4446260a1c2641432de89eb582ba6f8c84640723b7a6449f268a7e8b93af9b8a98552bf2aa940e277859824c22fb0ce8d1b3d118813d1c9749a345c990818091a21ebb2027a1bcb7434097b83fba702eeab0a8a8c3719df9821ce2c0c6a392ce5a48b56a73801accf9bc0f55c96ad21c3ad7793dd62ac413f9cb25a75065e68edc63508b13b90b6bcdcc127816d5c1e3b246b1db27e50528ebf6b946b93962469de91a70ec36c848c8bafa2b13199c146e224552e619295703ed8c441a41188a004073392c59e88b76e847a11b527c6479daf28548a5540ddc811d7727e203b51699a0dc85820aa90e7a96378d99148553726d251f73ab290b206452fb15314a7005a50fef5b6a3c69b5c91125a161699d0956bca47394567eb0cc4145fca15b2ca32a751946841829531adb91b9efd60bb2018a13d736e67aa86c12517b134cbf51a6831a80188b54b051063561b1419c4990b1aaeb52280a2ca421a84b1f1827e544c27b88c1db7593fbf3a9146633dd41a2cd26bfeab57c7b01c3a7b07b0ea196db4c21259baddd81981d9a917b4a7bbbd45fd2773539817b77c09e79797bf301077bda0e6de9829b01c6beba809130a1a9724e3ce39931b58c07344ec731a11402470828be43b33601667e46c66a59979b8b1a15d9739a7da6aa19ba6def480d0e2b2f859b6482d128ee6262a929cec408974af41b9e0c9c6a9b0c32abbae27a36dc373199f65a18d4b3e4153086f003c127c7926c9dc3510ba0f99280a5360f29447c9204e7472e10486c3c465dfe4855b1d8b8d557b99232531c0b43426521c8034518d32bd5981c149883e8b95ab150c051793384c9662aa795c93b25dd3957fd3382aa117a9d6b333035650918cc924732737aaff69472b4f699a99288c5a24946138fb955385a8a75f2088c143057275c3e7c97615c7721e0a049b544864c358aa8c0a30ba788c2e71de8261567084040f83f23e333a4d74c55d52acd20bd7c56142c2152407864f62c3d482622d87394e246110e133315d151dcbab02909cd0a10754681af44c2445331912a4031dd800e07e4aa3b37aaaa827738048a5afbae9677452cab2deca0205ca5b3e6f577892555ed3872bc845f97a86788a9577996810f0277cee3235574a6ec91cbd49cca68c870e161a7c9cc4b4c2252bb4c2f7cdc0863959061d73efd366a65c140a014cee9042734a9b79d67bf7ab6ceaf5a2c1feb9b283502f940cb7e49c199cc7a4f885bf4b041cf418eebacabb41067042b3c9c42a72655947ed2233a778fba0338ba0b6ff8c58858e48281799f94acc6694148b07cb1a5f8ae6de647251758a2a72f19a34c6176614dfb6294646c5b95c59d857320cb2233b9aede91a6837820ef74376ba533d06487939348cf70681053078466b900206af71a76d18a4e5f063317ecbb394ccc7b5ace6151b1fa662abe652186b92b3f785e828c2b1ad967feab658439c73ce93adc47382c63544fe5cea89a5c2602aced184cb45b18fd3108bdf70152421571b9a432d299eda808f8e0794e482bf468cb7b9b349932492f43c57e216281e1506d9a1679a54e4fb1986e284e6ca5466bdc8b3386b47e5103c0c70d796b4d42e17e279a9a31e434d2625efeb4abac6bcd3014bc1ffa5b6424674710059a74b6b4e4b32bb8b183c76d00a109909cc799430a2ce6abee67504f1a65f2d4c5a305639b0a1e31776797734dd535bf20545e37b33624865890114c01c874c7f78bd6d88ed73356ebe5b14db386cf677fb9315f8fd9a32039651a28338a0834696613502ca86f4830dd34b806a467fc2a726a515110c076dcb486eafac9040ac0690b79f5278022f59bfc316494a782d92310489c9f93e61585b3bd292165f651a7017a994b2512f0a5bdc8e77e9bab7e5cccaa7bbc779d445e5f16b871989974d92d2c268bce10764c0146a683ae56c47c4644057ce8b4739031879bcc287b194cb36fab6916ff563248d04851c74a7fe87f4fea546a565eefd507457882cf288ed294783179577ee898bed18c97660bdb726867a2c9581cc13bdb263dbb414d695990ccb897fa31984734e3178e081856627b0a4bbc736a235b3e392b3996441198c41bf8cef5ec64d2f5c4b628490736cbbc076d8ebab4cd1ab4936935fa3aa40d941e85cb08774520bde23f24739400bd45b1b056d8a09ebb49a3e4b7209037c94a47084604697185bac8772122d1bcf22888f165546bb699b23b2262035135120cf677aa7f767ca049b869137999884e360518358852cbbca3f90643764cb30fa16cc009766c43b89e599203d6344b1081e97c863190ab57d42812d603ab56068283cd30e92e3f7a8989715479cc3735f3cb1ed9120e8b8c720ba35ab1178b426c413c5e89eb5483bb0fbed13a2fd0783ce4bdb1aca87d80000dd48caacb57c74b802c6b133817ab099c84f1c22383e57a759ac6eab76df67876e3591f32595a56a027f2087b63db7dc138cd820a84b09411da2284ac78445850ba820c31b1ca97f3e680e24201fe67154b935a36292b18857007953a848c49d0236406e7a320243fee64ac24b02952d0a02a57ac4fba19ce373e3382cff61160913ca55a091696d782f4134db83958ded48e681546ecf2be93c09a9bea7b3ff420c84a9107f4a75a2a1c40ba0f9e6060e936218f0c0904bb29add2305cd59e29d2b10fe667f9ea49cfd149d1d8bd62e549e08baa1ccc63b8cbc734a24017e4a099bc5a939828ffc8cac5fb5d388ac8613216f21942675cb714e32cfe666357413773ab5f6a2c405179995ef42635cc7db7238dd7c410ba529e7d7391556c5f604c38fa079a70fbc2e8b393306832fe2a8bca891d880209b9719eb4d2732581408a3896735143462a45f5e4267084bda97a9a5324a2e23a714c1322f4368be3ea5219c10f56cb560a78786c2a51db18c79f151f3743a7de67c43a35c63d1b70e17aaf4e4c48e300a73f9c07bfa776ee8797f803ca148aba782a2fab110a7c4440c5791354b25c1107106be979b2077d422a6d8edbc04225ac63c3705394c9fd5389c11855057572fb303ffa365cc2854a3bf620ce5203b21bcf7ad9c675427ca1294c7b001e37a02be18473d1b13d9c52b9d59bc267ecb1fdf3bb96c2b374e72e4bc0898441c47adac60c1955bd1a5096f371bfc709ef624078139feb979c9ef48bc0bb9100d0a97198b466bc5821978c87da85c4e4164ba61a010b5fd99435dd18129a6b379c3232f75c8789d486ee3b6c84e052b55066e81c409c182d4e84926a42abac49846fd7b6f7c305e234130026540a6571d2c241c2700ed4e073d0262bf196164c71a62b904938cab91cf12fc8d527a091c20a86b163aacaf2f25d1814bf2d435dc7881b0f0219bcf40f90f894e74392fea065fd1b69f2e959cd0a5850b002cfaa8e44d0867a16ba5b173711d77f355a71bdf7674299a91cc05f2c772a5280177f2551b6f4a986f3bf584a899e755464166c3220130e694616f76cc3722c999536b6d145dfa5a27aa591ee994332893fa87acc2df67113f8a9c438abfa667022b92842c73b15047d6db08e02930a6348a71472a5e04bcf856058e785c10d049af83736b2f78f8fa0b16b0b7e897cb695ec20d37c35190a079a57cb41ba5a0f010f4cb94b585466c9a802f0855946361237a0840d43487bf65bd9f000f2480afcfc03b3dbba6ff053aae4981fc619d82818251c0d00ddb269042902b4c28fe6578709374f2461b0fc1a00441b78582db2a76dee8729be071ea3c9957f5a3e75934628081eb8339ca5cb5ae83677d4c31d7b12b0463b57bf7aae0af3901a9795085b8aed0564d3755588a0829615785f322add179edf08204021b86bb3cf8f3528ad652437ba8b0c6901cdbb748ee8a2d854644cb694668b9ce322992dc43f2d8a7ee655be3b257a0974ad0649104b6b4e9a16bb8cb79a42968ceb1cbbbdfc6c3921ae35f6b22ac3c2f858184475b4f2a12db3158b3bbf2d64f07ee186fc57de21c26bfcf6b645f83cbd47cef72136aeb64469835f3a1f1d9511e257abfead77d365076a5c423ebf1554cecc7b29c0a61b6762d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed + +# Official test vector 39, seed: "cf520b92a2e3677afd003ec1ec6ef136a709d78f828c9c0dd4946efbd451c5faabfc83ca66f9d3d17ee4220553b7a69f" +seed: 3c815e57e9233e975fa1630208aab206b71ae0db37a7a8789ac683d9f9b2d29801c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 +public_key: 81d55ab1318e2c501e7d462cea98864e291c2c727e6ef2349332680fb06b09767a2ca72cfc078163c140dc7151d869a9c785ac62c6ade5f7519e070a08269938c7796b54b482f027a0c63ac24a6a00f7a0e7c65843e1c1fd01bd11d24ecf3c8b90cb803626044d03a39fcca7e918ae418512631898f417c9c9618055340a05f67b6f1cb7cc44117af09922cc07e9522285d16c42a7b2f833b51e72ce1c28a3ff37ab697cbd90d96b3e460c56c1734f1b11280ac33f170b3447c07f99a68f9a6f1dac6083368555782f800bc7f4409abf76b0eccb6da8f0825cc0c696cb9119340f663317913a641ff369657207194b65fa6b1dbbba94d22b512b56877120a6edc10dafcb2f727349e5831a3dc8a539c0a55a517e65982eba97930020608094b93e481fca819058537bb2c051cb2c3f0e5a97e8365a14491fbbc03f603977273a035855c414812ece238d254ba7334cc5bce7256716077766cc21c617a9c378fac1786c1cadecd13948591198682cbcf0cb098c504dc4b16a8269d13a701731b29a71432205660005919721c994011ca3c0ba8c3178a6d80b2abcc9f6e6b7880811894cc6e62c0134011aafa69568a1b95bb43c815c1405b4351a7290b856c50e284eca0cc384a4551f455b503488313a341aa25f80aa02c97b9d3267492c31652b7654621a59f1aa64ae4410a1099ed7f14aeb10485f794e61157c1563ca5515684db66eb99b76836a2441139a0906b35553c9e3e317f5e2c08487697574464a9936aaba528fe2b0c0c6b058b791d94aac3bac180b0609ab36b27579864c5bc6d8288292387dc4931fc889a45fc8bad636ae2bd493a5ab401311084fb57c6fd88c2f0c504d5c463738ba7c5a97237c1681d8aad66307ef648748198f6ea0c8fd6ba7ec424052c8a9b070c571b136cfa86f199542b12cb2a77c6973494bd41a2f0b55cb0e4122d0958026b7c54bc42eddc040cea8470f738f9c9916c158a9ca6457d8d9a0649337a3ec7347475eea8c34e8127636b3897c547c0479a1e22bb2f7606afd97cabee179467880dc02c7b6f892ff3a7a29844476fa9843943d68ba4df2db6b8368394b62cfcd257beff5b8b54150407c5529349769824af105adfabcc53f936a8a492825d6a9b1108f1ea258c9dca2d739a600f68616b2094ad29207184607985e3bb784d7977c20dc0585233131f93fdfdc9ee151c6937c7bc7fa4af43b3b1dc4774ce6273ab04736308e89e21eacfb81845678a0c220309a3c9fe3104f61680f334227670f95f2b84c137a964a0a3a57525a4b99b231a8f22830d5bc588c0c705189b2e8a19c4362cb50186b99b5a783031300a26300280f279987ec058425817327b481cbfc789f659530d9c5d9c8432959adf71741c1f9353d9a84836a5a5487392d19b5073a72869ba4e454c14ea5a93751322b8592e8566236a86c6619648be1782cd03749d9b9604209ec66804c64913a143887212e7acb54d5d995d0cb17e3e27c6dac70904235f5c9bb29d908d8098b11739b16706541f31b53e3a384e594a7a640629543943a1262558530c193d18079426708117197a90b1c45e8b394125ac46238d2e22fb8750d1c190824828280565093999608f4113acc18370509201056d589041d748b2fc71da15490882805d3d3c0fa0a837400b73d25688c698cc8d78d144a80aba8372bf7c349b9c395bbb8adfb885906402eab1ea58b622ff45c4dc14c9d11708659596552b18a3c0a1af2cd7b558f15f461f0501c409a120b4468f2c09282ab7b25f9b028746fbc9ab77af4262691a64dc43d59139c21eac58e58a491e26e10974e6cbbb82af385c4f77e7312ccb5194902257d3c4a4fa1a9035a670b5db47ee67c1b07747b889a6c481490462829b26184be3c9b0d7a0f9f2bcb10c8176f03464772479e9b84dd28ce94199d31845dff0614d02841f4fc92f9221cff071551e82dc829c9cf991e42265f94f7b4dbe7b791c244e37c3ca4192f70c32cbe9366db59a9dd8582d6e69d849151cb7c6ab82ab8e7854c7b4c15b1557443cc2b1284b7fc7b16e415007427b5a9909b99f21c47956c45e14022374440b70415b896659178d3c98bc4f3bbe904a470e4838849bcccc2ceda8b9bb1e2af29169d5919145b3229fb8c9ee705cff4d91fb9729c6cb52725321f208f2d0b39ed53edaba2c350ecba69a4ee1f3159930f65c8baac80b2e0 +private_key: 4ee12caa4baa2439ab1e4ca28bbb4f3a85c606a636cdc0553d821ec2aab20d0394a0e3ac09c96cce60cbfd9a1351b3cceafb11ca7c87bc42a1a191506ba9b3b617a6aa7a705c26b7820068d930bfcc96c3728bb277b157cba1c1f8f17c415a1bc9e9ae5f4771eb38cfb7231108212167d6074ea1cf2d5b4c04179740c31ba48750e206c8c584355fa9c57d6cc84d1c88bb2a43fda99cfcb14da5e285b7ecade1761d4c711b7a83b738d7060bd820e03529c608937b4734f8237ff746b47b3460a40c9ffbb18b6b30437c4b55df55544f74bf3fc5758dd2b4320974698aadb0431f5670580ed39c1e1645101b635a49998157221ae3087229bb0f9ca04d2766cf308500eccf34c40730888fd9c1ae671415892a8044d780d27b3f3ba3751cb9c9bbe61174614d2f15339d0a066eb738a0b43b8e0ab0e422b64f50c125769bd812b1de3672a1976402909d353042d8c4a535a1acee33245254b575e71c5713a3dd919a8a9446b9fcc80368be2f67669bab466b91486a94a940e007a761461401d0512788aa06111c8c3da1b136d3074598cc7a9d9aaf0a390a6468aab1fb56a71414139840dc7582b439aa78b9194cfc00b0c357e8840fc583380942b26174838d558c6c441f1e634ac590bf9c1344b8fa95aba16c6c130d8137706c424092ca5cc2bab74340aa6ed81535fc6a0ab7b59cf276f55583759b0b009b4d6e117410212dae343eaac5946c3b379b7169cd5b5a4e838a2b0a7810a05c2ea6bf10667b4cd7a2e71b321d2395fa48a02fa08497fb68c771b1eae67d5c11224eb19ab241770fab2fc1800074e697d27b0ad3035cdb09772b222945a9bd9b2cc20d4b488df40e80776eabb475cddaa0efd3c05f1c792ee9c946e717984686bd43660eb334bf775cc5470462d03cde3c9830ac8a66879ea04aba173b0858425774fa9306590a8c273cdcf347202267b44c3c52063693abbafdf65f4a2949c18b0bbcd02812da0eb7f6a753b0893c4771a13986c408a2b2f3cb2144b1b7f7b6799177e0a258415cc91d449009c17a265803a038a21ef2911778242b043e19f986ab2754c33c31c8100a15f8609fc05804730d0b2212768901d7e4afd4451950cacc42e891ae845a53bc396ed0b6c1423584c6b575a535e949909ca7cd95d05e743c16c25b57fc0a973e7b026197c6eec688a5c19596bcb9879b44d2b1358f35b5a31bc3d8e38f003bbcf82a540993c73f30123c66bd31f04964235477d5323f69c6a99399055c8347cbb443c9ac5ffa477e05229457111dd212928b337dd6a98f59a303097536c10d7064177e06830497a644ac404226b688d354237742fdc6639a979625558ba4509cac106121d847932311e4c22340b056f0ab54a4a1b5bc186c864397d7984defebc974b25b211849ad36a93ea21d5eb9926f7c6b96233f11822bfdd822fa211ac570196bd1aca785463c56a7fbb602aaa3c8dee8bfee7c18fec5ad0f844ebe66b17d71337f71bc7335a86002ce28e65e6a5101c7871e9f651f04c1c6ec45c47bb97b1e4253e4110fb0339fdb84a7ca40a6f7ac81fb43681ed56c1f51ab7812cbbbc3a512ba340c566a9d60cd1ac90d568033d0e1166d70c9e10583e61282794b8247f4c2b248a71d379302b82e9d275f07bac252ac4d09633be60002a2a7cc23f1b1448c1e1ae77fe9cb8677cc3a2e8a1f6f3bb786a8b3b585946dd909ae296dc6648f1695b66d51c056e741c4468a3db6acc1c340228ab88d83cb168982008d9fb07b177278c893472437a12f3b2099c80322610c96c9754cdb513626297dd9dc5c8b64babbb2cd2b904a52d67a1d00c92462a291d6b509fa66de596516774edccc48ce2c145e625158381814709f23d3427bb56b465531453185ed500341a317f97c48373a0778293bf989529edc39ca931f23b341bbe18bb071c61e488e45e100091ab58f18a7f33335d11019a973899f173fef0b43454a2d091274c4601029176900d03d068164b2f1279094c16d38b32c2973958c0cf5362d34983ab213a4cc235d3ea428bf289d08428e02c3b23dbbb89d35c7c571a1cf018dbd6b377dbb2f09fbb30c5c0244c8782ac46e98c4cf614c42f48b49cfd8114cca11e1455a419c2bede2684ed140aef81bfff6c2b32911013432fdf751e5855320202481d55ab1318e2c501e7d462cea98864e291c2c727e6ef2349332680fb06b09767a2ca72cfc078163c140dc7151d869a9c785ac62c6ade5f7519e070a08269938c7796b54b482f027a0c63ac24a6a00f7a0e7c65843e1c1fd01bd11d24ecf3c8b90cb803626044d03a39fcca7e918ae418512631898f417c9c9618055340a05f67b6f1cb7cc44117af09922cc07e9522285d16c42a7b2f833b51e72ce1c28a3ff37ab697cbd90d96b3e460c56c1734f1b11280ac33f170b3447c07f99a68f9a6f1dac6083368555782f800bc7f4409abf76b0eccb6da8f0825cc0c696cb9119340f663317913a641ff369657207194b65fa6b1dbbba94d22b512b56877120a6edc10dafcb2f727349e5831a3dc8a539c0a55a517e65982eba97930020608094b93e481fca819058537bb2c051cb2c3f0e5a97e8365a14491fbbc03f603977273a035855c414812ece238d254ba7334cc5bce7256716077766cc21c617a9c378fac1786c1cadecd13948591198682cbcf0cb098c504dc4b16a8269d13a701731b29a71432205660005919721c994011ca3c0ba8c3178a6d80b2abcc9f6e6b7880811894cc6e62c0134011aafa69568a1b95bb43c815c1405b4351a7290b856c50e284eca0cc384a4551f455b503488313a341aa25f80aa02c97b9d3267492c31652b7654621a59f1aa64ae4410a1099ed7f14aeb10485f794e61157c1563ca5515684db66eb99b76836a2441139a0906b35553c9e3e317f5e2c08487697574464a9936aaba528fe2b0c0c6b058b791d94aac3bac180b0609ab36b27579864c5bc6d8288292387dc4931fc889a45fc8bad636ae2bd493a5ab401311084fb57c6fd88c2f0c504d5c463738ba7c5a97237c1681d8aad66307ef648748198f6ea0c8fd6ba7ec424052c8a9b070c571b136cfa86f199542b12cb2a77c6973494bd41a2f0b55cb0e4122d0958026b7c54bc42eddc040cea8470f738f9c9916c158a9ca6457d8d9a0649337a3ec7347475eea8c34e8127636b3897c547c0479a1e22bb2f7606afd97cabee179467880dc02c7b6f892ff3a7a29844476fa9843943d68ba4df2db6b8368394b62cfcd257beff5b8b54150407c5529349769824af105adfabcc53f936a8a492825d6a9b1108f1ea258c9dca2d739a600f68616b2094ad29207184607985e3bb784d7977c20dc0585233131f93fdfdc9ee151c6937c7bc7fa4af43b3b1dc4774ce6273ab04736308e89e21eacfb81845678a0c220309a3c9fe3104f61680f334227670f95f2b84c137a964a0a3a57525a4b99b231a8f22830d5bc588c0c705189b2e8a19c4362cb50186b99b5a783031300a26300280f279987ec058425817327b481cbfc789f659530d9c5d9c8432959adf71741c1f9353d9a84836a5a5487392d19b5073a72869ba4e454c14ea5a93751322b8592e8566236a86c6619648be1782cd03749d9b9604209ec66804c64913a143887212e7acb54d5d995d0cb17e3e27c6dac70904235f5c9bb29d908d8098b11739b16706541f31b53e3a384e594a7a640629543943a1262558530c193d18079426708117197a90b1c45e8b394125ac46238d2e22fb8750d1c190824828280565093999608f4113acc18370509201056d589041d748b2fc71da15490882805d3d3c0fa0a837400b73d25688c698cc8d78d144a80aba8372bf7c349b9c395bbb8adfb885906402eab1ea58b622ff45c4dc14c9d11708659596552b18a3c0a1af2cd7b558f15f461f0501c409a120b4468f2c09282ab7b25f9b028746fbc9ab77af4262691a64dc43d59139c21eac58e58a491e26e10974e6cbbb82af385c4f77e7312ccb5194902257d3c4a4fa1a9035a670b5db47ee67c1b07747b889a6c481490462829b26184be3c9b0d7a0f9f2bcb10c8176f03464772479e9b84dd28ce94199d31845dff0614d02841f4fc92f9221cff071551e82dc829c9cf991e42265f94f7b4dbe7b791c244e37c3ca4192f70c32cbe9366db59a9dd8582d6e69d849151cb7c6ab82ab8e7854c7b4c15b1557443cc2b1284b7fc7b16e415007427b5a9909b99f21c47956c45e14022374440b70415b896659178d3c98bc4f3bbe904a470e4838849bcccc2ceda8b9bb1e2af29169d5919145b3229fb8c9ee705cff4d91fb9729c6cb52725321f208f2d0b39ed53edaba2c350ecba69a4ee1f3159930f65c8baac80b2e03649c5c2f1142a51eafdc3edbdcb3c5150c608d828b7e1b9c1ace00f9a548fce01c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 + +# Official test vector 40, seed: "197e5d562de7e01bed4fc597db28dc6efdf0179f3a5bda5f94caa39d67bae730540534d59a7a06c8448f628da8b7859f" +seed: 588760826dcfbd36d9abe6ae44a669bb3ebba6a218eab69e30f18a3bd536576e0e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 +public_key: d4f7656b2b7819120a7cb68a80b91f2783979e1a329574272a3b154b52843bf80f88d947c79a58ae555e819674df71b13ea48741d103d345a8d4786eb43012fddb0b01c3baa6a0cf128b099972449ecb3de50020b025c486b4b5b115c78d927fe5e06bf8e29068d0b3d963c3b46cb9d1ba3256fba01f2185cb566556151ed2e1c993469190b75fa75259a5b1096d5a1647448013c21eca67a3aba096a4dc77f35c2447e81114f732148663a9439b1304b148b813f12c61654688d35318b8c0a8c33738a2f1bd2a1b6e8ea93eec771ec8c0094d4c6a45ba61579c72c2a41ffd468a6c679fc3d6b15d5a549b1614bc8874304bb6f01b775511ce5bcc7c055441ac72c34ca164f461990a57baaa98840439371c26134500377b39ad6d222feb0b67dff197c550541b63173e2b1b7031b30cc3772e97734ad3c5b6243b3269c48fe055a82c9f4d1c166c294b8077269304cecbc404ebf8bd82c041c911b09fd7c2cee33fee1bb754878d8143cc93b81c7e99323b5210e7a64c7a3b8d96c1594ff3ba50132484e663797246dc3238a1eb743c4a33c51c6587a224bec9bebcf5ceaf175dd37c3591ac7d82512e9ee7c4acba2cf5bb26d3a2188be321114a7724c797a2bb26cbe43b3fa03a8bc16dd5a49a68544e9feb51786c46794c9f5239b7584acff68a2f7561bb05e6b5505c249262b509a922e97c40b4736e8fc2af4017acce951cdacb3385f060cc1c55a4f79a60daaecc939036115d2f480f6f0315fed05387e99f9448b6155a51d66a6940519b361233b2b7b34c740f0cb64a7cf0bdc48677292b0d1ed5898ce928e9040308807cfc730be0d8c614d322735c1af2d2199ccca1dd80a96cb60247125cab18ce7a1c5e4f0c4b978581742c8550cc9c84b0632967654b968c01492557ba0630ec0caf04a443d9b2f616a9cb4ca13da38fd9d611a59bc697c20e8eaa0d2b96aa2db111bba3a05fb463bdf7a777cb91b1086adce17ded04be8b92254ec5442a6852134b5fde9b060fda258c18740b79970dc981cdb883cbe3297fa33ea988b07f9a581bd086d53507ce07536012a211c6b4de17b73a08153c3514daf12185416a81c61fe255a3e04b33e3c5a6a0188f6e09855ba504f838cb8417c2f0e97bbf5b937ff53848031274489b5366abeca2caa7636cdbe83f15980c02f207577b5efb947692fb40ae7b36dfa83b728478f0541511fa58aeb121c14056451654d0dc4421695864db64bc271a79ac0beff724b6bb2290cb64087b72297a6c3881765cd909aafbae72c9448b232093694ce522c72d2475f281ab1b633432175e3f78715de1082df66f74a351903b115d74489a32bb7a873aacf195f8f043922272cfec2798f52f65f4638302c62648199e7979f4740b30d38f7d794cad179ac960c838db4ad7038ab84955960b4822324c5d01c5985ac8f47138bab522db895af2f9a983494f360b061bc5120f385166a5ae9ab844c278008e47b655570430451cb606c24840b7a0e51268cba81998697a5653e33bbe47d43edc3249c32964e87bc8ccdb6d603c0f7387306b043fdb343e8500aaf0104683dc9488b0ad3d04a1c2657f11a99d46b040d0950d0937a4927012f4a78ee2405eabcac445845d7e88b54a8c57947b7ec0c12bf654059d93ba38ba2e50ca3fee8194053b2c9f10cae8c846710392733123b0eb0ad895216efac4931cc782e886fb2c87bed305cdcc690dabbeede21addf7468e4873919865b905b3149a4d686b7c96fcc014b578e1d36bc3b63449f467b09bc84a92b20b01bf70200e703a0ed084c860f40a336576274c7e5475835bcc8ec515050eb8215f397f6312c9b1db1ac1da29ff90a4ed58b8f8623d4b893e1ff94e3e48a0ddc5c221c0b34a798713897bbe16a4c298c5e9f44932b09806e554f76b76fdb8744cb38d00f24f5cccc75dbcb3f81233c454ce3664a807d82c68255c422866cec26ef6e428677b4db8f712abf50c1e11c9f014b9ad59077cf0475f925568300c49c08e4e17cb7a5581ddc17331eb3bd7bc04c933b646224d3386a3140cadd445b632268458f63942455ca1b164c9ccb2ae679ddb12524c34cf823b3626b224e466245cacbbcf57896b7acc6f6b702ce9000371473c622303db63b2744c7138363a832b2973bb3144bba8001999eef108e317890c4b63e857c6de99266629d3267db18fd97baa47b2da64fcd1 +private_key: 04c78eb9c2cafcf78072b8508905b42c5698b3c86d8f20bcdc31a3e0801a084b35913203a642cf671c434ee39477e83d7314bc81a5b0a5d010031a26dc55bde54c5194525091314212063b7e852476364aa64155e6e9a52bda41c17939e553c26378175fe3c4cff13e3f20543a275d6263276d2262d1a9596b52996c4982817a4fded3924416b65e9bcaa45c6a6956c3724c0ea4171757393b5af903de5694e8962f3a122104092924f25e1590419fe11cdee60bb33b5bde000f7d621811819c77e4584a89659caa85e7197588498ee8c8a8397c1157c29a7c8b696653a941ec2579c1ca7368bc0be8bf4442222390bcbb871aec382de3c5011368cd420abd03fa8bcc35a99aa27a1412515710b3f5118eabcc9055a09b350644a490bf83dcac4c2035c81895ad53545d5b59bfe5455ab9c7caccb4418b5830838e0403a56619af355ab2448a69f2b848ffb42a8f5407fccb9c5164b7f306b109533dd8c690a5a9332f058a1978915244645eb127b6ab92a732bfa7f0b528aba0bcaab51d52a54f57cf75c54ce462bf7ab8414c9974b58272357bc204d13d198058cbe21781e7a83507a7e1220195ec34cc84125d18cb7610b3996035e755421b969ab6cca1b79a8315b791d96207b6920af2e26fe66ca583a943aa3914a930943a723447c1639c22a937d91240839824547eefb69e8c5868f0fa6df79570dc01041d763b13c08084b8cf0213a5eeabb0d7507a0f8837e9138cd99349d4b2acd1f72749b804eec23f88ea19b00b5fc06bb665886c105786b45610e9a431ff8a48da00ad35369843096f542396ea143974791c1e830256eb7c291368ba95009e6b4ae821ba1839ceee153adc9b7fd5b6462d4938a9129898b9ce6be51c9ae90b065232616712580a80c6e57d57b1c597b526cec406a948abfa1bba5d1835eae0755270b8ffd5cbdf772c5c68c4a7f66f972c1c49553e206b08ed95067bd615b12b35f3e84f6e7a8fd72180fd904ac46ca901b89a5fdc2da3b472f0a547901755194543e7a399c4363c33cc305345b79ea06889e12e049319a0428142e6a77d4b7223c72d3dd0c8e3c315b2677b19fa8c1ba7107d10b31e719a2c90abc3102ea5e074f9707fcacc8a10e42014c21d7aa74153da8b80779ef71a86c9d10bbafa7432c9072e3cb4def92b9264af134917dd24a687a492f0d351d3e9c61a421d0614baf259752db556c8bb401dfc33d9b0869af44c81210bc25aa2ec07afb5ec862d390c6794a0668580ebd39a23f914feba865a33603d5794e6f4bc210bb82b7a3914c1b5812120aba6a58ef7381bc89e49817f0607980c93458343a12e26666c664832da7552b804ab349e0b56a174716e3ef1270669653ee63a73a09c66e12c7b343a7ac13cb5ac4c740057c947bc3145b037d756bb8bcbf46097dce24c2801c0b364b8e02329f7fa183c1003fc715ae470b50f1561fb3168b421727e66940a717a350a69aad45e506144fd528f07235fcdd0c5b7b659f8c0bf85bc53195c75c447442e533b12e08404db99a7346524964e312c48736c99a651407a3661b3812f83da22f2e455483c44af351ccd50721828313586665e95804f9a4e7d3878cf134a9d815ab4fbaa711517119043a46963101390c20c552d4c5366a92693526ed0893aa097481f8658122c3df8fb21a150c52f9367991bb31955035d286fbdb5040e58556b2a8b7c88011877890f9abbe1292f9bc36cea7463318c5047629ed9a31c39d65f92c18b02e5a7eb16c4aeb68d7a057623f25c0ac68b48aa3a06aa534830a790cb36840c8e1c4b653cda1acdc1a13777aabdf19f55b66488296f407366dbf03d3451b8c55284a9f15f8f16cf51ba93781550ede5bf43ba4470e6bf1d4236c4c78f7710bd0df79f98d55873aab6e8e573d88b19655497812aaea85ca6b95ac5e0e908d2150d68c110e24a48f0e7a581eb4fda5b7c3d97a68e26c9f709126089753d2c072e88ab97796600b2732104acf744471bc562bfe4a995e88c36a80c5479c0f1204fbc6b723a1b1d3f817341853a02d75c1497b18e242e9e037aebbabf28bbb5c4b72f22eb02734bbf5a897e77f84d9e4209d3fa77eed12bda34378a541e5e5c3258399386c49be1a05b6c509724c68d42b5a9be11bc08d154c9e07bfca513256a52d4f7656b2b7819120a7cb68a80b91f2783979e1a329574272a3b154b52843bf80f88d947c79a58ae555e819674df71b13ea48741d103d345a8d4786eb43012fddb0b01c3baa6a0cf128b099972449ecb3de50020b025c486b4b5b115c78d927fe5e06bf8e29068d0b3d963c3b46cb9d1ba3256fba01f2185cb566556151ed2e1c993469190b75fa75259a5b1096d5a1647448013c21eca67a3aba096a4dc77f35c2447e81114f732148663a9439b1304b148b813f12c61654688d35318b8c0a8c33738a2f1bd2a1b6e8ea93eec771ec8c0094d4c6a45ba61579c72c2a41ffd468a6c679fc3d6b15d5a549b1614bc8874304bb6f01b775511ce5bcc7c055441ac72c34ca164f461990a57baaa98840439371c26134500377b39ad6d222feb0b67dff197c550541b63173e2b1b7031b30cc3772e97734ad3c5b6243b3269c48fe055a82c9f4d1c166c294b8077269304cecbc404ebf8bd82c041c911b09fd7c2cee33fee1bb754878d8143cc93b81c7e99323b5210e7a64c7a3b8d96c1594ff3ba50132484e663797246dc3238a1eb743c4a33c51c6587a224bec9bebcf5ceaf175dd37c3591ac7d82512e9ee7c4acba2cf5bb26d3a2188be321114a7724c797a2bb26cbe43b3fa03a8bc16dd5a49a68544e9feb51786c46794c9f5239b7584acff68a2f7561bb05e6b5505c249262b509a922e97c40b4736e8fc2af4017acce951cdacb3385f060cc1c55a4f79a60daaecc939036115d2f480f6f0315fed05387e99f9448b6155a51d66a6940519b361233b2b7b34c740f0cb64a7cf0bdc48677292b0d1ed5898ce928e9040308807cfc730be0d8c614d322735c1af2d2199ccca1dd80a96cb60247125cab18ce7a1c5e4f0c4b978581742c8550cc9c84b0632967654b968c01492557ba0630ec0caf04a443d9b2f616a9cb4ca13da38fd9d611a59bc697c20e8eaa0d2b96aa2db111bba3a05fb463bdf7a777cb91b1086adce17ded04be8b92254ec5442a6852134b5fde9b060fda258c18740b79970dc981cdb883cbe3297fa33ea988b07f9a581bd086d53507ce07536012a211c6b4de17b73a08153c3514daf12185416a81c61fe255a3e04b33e3c5a6a0188f6e09855ba504f838cb8417c2f0e97bbf5b937ff53848031274489b5366abeca2caa7636cdbe83f15980c02f207577b5efb947692fb40ae7b36dfa83b728478f0541511fa58aeb121c14056451654d0dc4421695864db64bc271a79ac0beff724b6bb2290cb64087b72297a6c3881765cd909aafbae72c9448b232093694ce522c72d2475f281ab1b633432175e3f78715de1082df66f74a351903b115d74489a32bb7a873aacf195f8f043922272cfec2798f52f65f4638302c62648199e7979f4740b30d38f7d794cad179ac960c838db4ad7038ab84955960b4822324c5d01c5985ac8f47138bab522db895af2f9a983494f360b061bc5120f385166a5ae9ab844c278008e47b655570430451cb606c24840b7a0e51268cba81998697a5653e33bbe47d43edc3249c32964e87bc8ccdb6d603c0f7387306b043fdb343e8500aaf0104683dc9488b0ad3d04a1c2657f11a99d46b040d0950d0937a4927012f4a78ee2405eabcac445845d7e88b54a8c57947b7ec0c12bf654059d93ba38ba2e50ca3fee8194053b2c9f10cae8c846710392733123b0eb0ad895216efac4931cc782e886fb2c87bed305cdcc690dabbeede21addf7468e4873919865b905b3149a4d686b7c96fcc014b578e1d36bc3b63449f467b09bc84a92b20b01bf70200e703a0ed084c860f40a336576274c7e5475835bcc8ec515050eb8215f397f6312c9b1db1ac1da29ff90a4ed58b8f8623d4b893e1ff94e3e48a0ddc5c221c0b34a798713897bbe16a4c298c5e9f44932b09806e554f76b76fdb8744cb38d00f24f5cccc75dbcb3f81233c454ce3664a807d82c68255c422866cec26ef6e428677b4db8f712abf50c1e11c9f014b9ad59077cf0475f925568300c49c08e4e17cb7a5581ddc17331eb3bd7bc04c933b646224d3386a3140cadd445b632268458f63942455ca1b164c9ccb2ae679ddb12524c34cf823b3626b224e466245cacbbcf57896b7acc6f6b702ce9000371473c622303db63b2744c7138363a832b2973bb3144bba8001999eef108e317890c4b63e857c6de99266629d3267db18fd97baa47b2da64fcd1f651c0028e1e5653a53302082d4e89b76b6b6a939a2f2f5b6b7d5931ff3ed6c50e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 + +# Official test vector 41, seed: "f170583cb451d8a45d105457c02c01a33a40350616ed8515bd49067142f61efb00f07857e4fff3fe11e7164c648c76ed" +seed: 47550e9edacb6ddce3d9ab81f6b61080dd4f2693854acb05e0ccc7a4fb6390fbf89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 +public_key: 2829b04a621a204a4e63a2308d728b28c16652fa939d455181fa1b7b44447d1abc83e46f9d5c4133b104cbc1369812bbf9e83ae1e58f66f8b7c2e56d902cca69dc841f31372b783bc6421723ab0b2bc21cebc7cdac0cc3c55a3a088c0d21a4271264945766740af06ffa65275f9c00b44b1b3e6823d3c29c0a509bcaa2be1486972dc178821c40a203849a3abef402408ceb1e543c3bef193417bbc0c5679c13074063e83eff63af43464b3ce47e4b86953bf21583c2515f7b1025bc0e50454a08313e915882dbf556fe9b18ad27250030723db50e5dfb2380d8b74874c78862a1bc9083e1a8438e546ff9ca64c4a53bd17c1558067206056a0f222c8a4a00b2a92631179b6aac71fc711cb635b008f28cd69b51b5d7aa6839a1aca1a0da854faa39925cf606ae20612fc9c7573c73393a033cc8417d427db29bb6973546a967354fca3c43223a657713e150262e5621053bca46931248386114564cd4c0861d4ca648e789efc4221f7a075dd8b119ab7bb3f467abdc6cd3c808d1586199ea7be6e75c03916da4c012d8e81843f472c8504ff4239d3c0881e0e664f6e253bf2112beb301f19774e6998d4e8b68332346898087f1b7460b664d5d10b1ae199ba661cc460685d56808d6e66f3a78b6f5382ee3eb945482a1419a0a509a8909e8ab02990166c84905c7533159a9dc447f11f649e367486e2191a6c48b61331fb6137051b1410467cc440c8d0f9c9369b8803cfb33da7416dfc47db6726440028b23807c0f68804915a09ab16c47287d4eca5f19b98839030e9606815629b1e153a5cdb954f6e3281749040d91061df4afb67a5f8b19b30abbbe9b4b98b39182c4e48d514c35b515cdfb5bc61553c7ef047b17ac2ab3d10fe7d86a78386a0589072fc58983058a6959915b12a80ec79035c660afb04e9670cba471125e7a16d9fabea6ecbfe1d18904757b0bf6a459f0087dd193be490b4bf87bcaf772547b863eaa703ae18b58926aee14cca8015af2939a49e29d546b968ddb17eb62b9eaf9ce53949e7477c4e9893a40766a4a15cbc392c73b313a0ee3201431bf3d5555dcf73174f3299c2b88dfab4430c08c94183c27d1035c78769b143563a942047035a6c2373a03c0bcfc3973db4f8f25c002c46376d6a6fe103bc641608e98948d86bbe6e89d5405542587aa4821c30ac8756f07c593044570f536b4b07fb14b3236422d01789822aaa020e4acd92126809b2d47f49049875c15472a37b4b033fcc260fca04ab629474c9b82450ae6572d891a58629caac895bf2f52babeb6974be787397243b20a99f37b52ee77934ed2b6157ac3351b9c0f3405369885a54bc33b2c487200ba8a326b9d1674209924d3d50527517978eb040bf85ccc9569a6b3138f072084595825a994078a09bee86ed1e75ee9e759b31c491d9292fd2abbe3cba62661ad9440bbd392cb7d303cfab4bd6b0130af1c3336e2768907aff0633f18f9bba3706434b3bce7c75d6c40753b6bbeaf11c47773cff33b5067890fd5b8548e66c33d25906a066bc421617a909196a3986d362d3b80095e1077a5a087238054f2d89e0fd9a0d570c5ee2aacd3abc16111189aacb4d2e911abb7aa5099bb4a269d760174c324094fe944a4dc55d7708395f6aed8654831f7c3ecd85baf03c44390193634b16e1c91aee33979666edfb18d7713c547a90ff9514ba6469e0a6716ff4c0420427bf00b794775043e162e798871f710c87ff423d5580d873b7f624c96c7d63e23ea02b1c800914a5836fa73d7a748472b0b7af3099eb933f4a440ecd48262d4c9de4c044ee30cc51877352b53b0c1c14153c88b44931df12ee8520cd07117a1266815b74a431652d33074921c1d6dd6c0104aaa3f1a84e2f7cb24461290fb321d706113b172a2c7bdee921dcdc31640f9c749f4b27d024a7488728f605f8ae904571062ce9b36c009937f51722639782d56496fc056b06b8a4a6c3f402649e0c15eafa83e85a40eda43433c44b6d8f037487c9e1b66622c6798c94b9228c7a52bd18360e07ac4b057218469ac09b397477d7f5325ca47b901d0a5d0b6977194a12f71abfbabb3d910a8cbc52ca0dcb4f9f52d36c22b71b8513070c1c6c9a33397c79e4680862196cc1c3baea5bd04c58ab295b5da152a98a6ab3035b2c48478f30cdff392b47dc011e8fc82e0914e5ad3c8eaf0f76a57327c62bc9d4d +private_key: df9a22dc6c97b1e41ab3d6b79d183b1ed95c6cb32277a25155d380318260933cb26e427fe1d6be2e40bc02ebc9e85a3850b30689acb277096d8d48cf9b3c6b699864fc4b085ba86fd2b92396dc384d03428ceab2173380603b49bf2668af38967b4145a427c04a5541357771256277f7956335da5bbda033fc7b3909321777e2991189a93b730feea54fd6445796726c52752a7d11235c8461c281c9bdc3651dc72b4bc86efcd5cc62a18ece4b6586b2b0be374ce392214cd175117453d393842346abf0a0527e791e484c08b5324bc0e489ce327eb536609c4a646330a3d1168401f9420ada3f4b7104af688bb2326908d023f990ad064b6fcb4ac12903290e93bea142a092c72b9b77b56f27552115057e6a7e92822ea635c1419159c186690e67beac07785e0a585681c67cb73aad460378691b07d653ec0308cd0c21058892d34c437a5bab3bbc83f660b644507a5dc00ad5e01a231a7d426764b9561c974490c85911ed94330ce8ab4b6c0c72d67114096691d1476eb820ae01ac8df78aa1fc10d2b898a8f600cc1878360961ec5018d7f63d79744b41da21bcd086e55a83e1b07aabb47aff6831e9ba51dca086208531d1205e8124b66a40a5c0d7249a29a1a218be0f6091cb8135f552b81c397a000ab923050d167940cef362ba796b9bd7b7f1a197c8704ab51c63f362c368c77dd5563b82336edb912984fb144e46cf21a11c490ca7e8c66cae89772b2b96e8085abeb82aa8e33da4b56693f81592545ddf9176486350e86229b423072d586852328e7bb2065d5a7a8600aec4911d07271d75924d412494cf77b868aa7b192a11a5d66eda19a10ee8c051d456fe7846bc8c52a0923d76e7b4e5b27bb2e2a03f8c214e6636620b54b893a3c9ba9bb7e68546626f601c8591bb33537b71b9302a15b81d6fb7919202c45c0341e3e17b9cf39964a4a48ceb4b7d936fc007c486f40b4265a8cf677ab5e97d1381bf1d8267e4445aade22c4fd536392a6219d3c9855b06de9610f714a5eff2158f4ac31a29b71e0a9db207c2075109c0fa762b70bdacf391399113fd8429c48a6a3edb5d465a45e357332a7a1ffc414325849d9325be55586aa9535f85e20ddd2696a615139c037757514295173dc7c92a5274c1571c0893190c5513c990c5c1fcb67aefac3be248c9111c752c94c180fba60064af53d35ded934d7c72856bbb9703fa43ad125e285626065869c10027e0c374a28732bb238b426905491c25e73907d293b40777782c3ac846675502958bba239597fa230930b515996e5b3054581a94f0f848ce13ae14425aaf593b175635b6db63131c14abdc4be6e984e62bba9f95a9c3d986c71640ffd1a3585c20423068b52662929406945199fa67a87f289cb15b85e6b28099f3477b8166d0d398ba922c22a1319cc168b970c699706eb87891b1504f99f91919da8300a49dd8d292390c41f9735ba65c19fbb83c80e08392f10b31c0c18708a9b1780e253404bcd5753eb75e269b980ec34040a4495c2146ba5a1edf3a8f228bcc10206d2868ac73318a361318be704518a71b0cf65eb91823b643392bbc02b0e0835832adbbe34577119c75171460a891efb51559282700a80e65797e6b367d444c024332a5bbfb2b8c9619e1498adca52e985a9d03b91f356718e15bb11ac4bb133c08bb82c2a9fa0ff8785e92902818d314bff162bcf5393dc0b2739a7271d02606673eec47cec412484f9b1437c688b3f147f1792a463738649a0df8d0480e0a1cdfe3107d48c5ac11c3d7dcc204b439ef3533ddc2098cb22746001ae103c8d99704e7974e27b710a57cbd9e7a4509ec96374b648e6c49d0b0b0b7354e3dcb206e5b47942a29c0c498c7a1c1d401af425a604c729a8fea21a77aab00c67db762b5a32ca0e73aa9f5e2319ae5cc419c964c418f19276bbee6af76aa4fd04278d4c28aebd4ca01b6999a5c8068540a07c2823116a4e56468abc468fb222f32326bf5c02eb313c4b4ab4d92f408a60047d6890de1ec3994e23ec757c138caa5e3cc14b9d60153565af3c20581a24d2684c4d251aea1b36e56042fdc7c922812ae69796cc4912c882c5d46b4a2af9874d91c3982660c2dd6749ebb2484009be255177c9ac65623c65e0a896b1979e9ccc093ea5113fb59d4cc6b2829b04a621a204a4e63a2308d728b28c16652fa939d455181fa1b7b44447d1abc83e46f9d5c4133b104cbc1369812bbf9e83ae1e58f66f8b7c2e56d902cca69dc841f31372b783bc6421723ab0b2bc21cebc7cdac0cc3c55a3a088c0d21a4271264945766740af06ffa65275f9c00b44b1b3e6823d3c29c0a509bcaa2be1486972dc178821c40a203849a3abef402408ceb1e543c3bef193417bbc0c5679c13074063e83eff63af43464b3ce47e4b86953bf21583c2515f7b1025bc0e50454a08313e915882dbf556fe9b18ad27250030723db50e5dfb2380d8b74874c78862a1bc9083e1a8438e546ff9ca64c4a53bd17c1558067206056a0f222c8a4a00b2a92631179b6aac71fc711cb635b008f28cd69b51b5d7aa6839a1aca1a0da854faa39925cf606ae20612fc9c7573c73393a033cc8417d427db29bb6973546a967354fca3c43223a657713e150262e5621053bca46931248386114564cd4c0861d4ca648e789efc4221f7a075dd8b119ab7bb3f467abdc6cd3c808d1586199ea7be6e75c03916da4c012d8e81843f472c8504ff4239d3c0881e0e664f6e253bf2112beb301f19774e6998d4e8b68332346898087f1b7460b664d5d10b1ae199ba661cc460685d56808d6e66f3a78b6f5382ee3eb945482a1419a0a509a8909e8ab02990166c84905c7533159a9dc447f11f649e367486e2191a6c48b61331fb6137051b1410467cc440c8d0f9c9369b8803cfb33da7416dfc47db6726440028b23807c0f68804915a09ab16c47287d4eca5f19b98839030e9606815629b1e153a5cdb954f6e3281749040d91061df4afb67a5f8b19b30abbbe9b4b98b39182c4e48d514c35b515cdfb5bc61553c7ef047b17ac2ab3d10fe7d86a78386a0589072fc58983058a6959915b12a80ec79035c660afb04e9670cba471125e7a16d9fabea6ecbfe1d18904757b0bf6a459f0087dd193be490b4bf87bcaf772547b863eaa703ae18b58926aee14cca8015af2939a49e29d546b968ddb17eb62b9eaf9ce53949e7477c4e9893a40766a4a15cbc392c73b313a0ee3201431bf3d5555dcf73174f3299c2b88dfab4430c08c94183c27d1035c78769b143563a942047035a6c2373a03c0bcfc3973db4f8f25c002c46376d6a6fe103bc641608e98948d86bbe6e89d5405542587aa4821c30ac8756f07c593044570f536b4b07fb14b3236422d01789822aaa020e4acd92126809b2d47f49049875c15472a37b4b033fcc260fca04ab629474c9b82450ae6572d891a58629caac895bf2f52babeb6974be787397243b20a99f37b52ee77934ed2b6157ac3351b9c0f3405369885a54bc33b2c487200ba8a326b9d1674209924d3d50527517978eb040bf85ccc9569a6b3138f072084595825a994078a09bee86ed1e75ee9e759b31c491d9292fd2abbe3cba62661ad9440bbd392cb7d303cfab4bd6b0130af1c3336e2768907aff0633f18f9bba3706434b3bce7c75d6c40753b6bbeaf11c47773cff33b5067890fd5b8548e66c33d25906a066bc421617a909196a3986d362d3b80095e1077a5a087238054f2d89e0fd9a0d570c5ee2aacd3abc16111189aacb4d2e911abb7aa5099bb4a269d760174c324094fe944a4dc55d7708395f6aed8654831f7c3ecd85baf03c44390193634b16e1c91aee33979666edfb18d7713c547a90ff9514ba6469e0a6716ff4c0420427bf00b794775043e162e798871f710c87ff423d5580d873b7f624c96c7d63e23ea02b1c800914a5836fa73d7a748472b0b7af3099eb933f4a440ecd48262d4c9de4c044ee30cc51877352b53b0c1c14153c88b44931df12ee8520cd07117a1266815b74a431652d33074921c1d6dd6c0104aaa3f1a84e2f7cb24461290fb321d706113b172a2c7bdee921dcdc31640f9c749f4b27d024a7488728f605f8ae904571062ce9b36c009937f51722639782d56496fc056b06b8a4a6c3f402649e0c15eafa83e85a40eda43433c44b6d8f037487c9e1b66622c6798c94b9228c7a52bd18360e07ac4b057218469ac09b397477d7f5325ca47b901d0a5d0b6977194a12f71abfbabb3d910a8cbc52ca0dcb4f9f52d36c22b71b8513070c1c6c9a33397c79e4680862196cc1c3baea5bd04c58ab295b5da152a98a6ab3035b2c48478f30cdff392b47dc011e8fc82e0914e5ad3c8eaf0f76a57327c62bc9d4d63a647d85d1d66436cdf42ca198a44b31aa9f9d28b0311fb858cb5ecf74eb770f89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 + +# Official test vector 42, seed: "44a6774b2cac02dff210ff861a090561a453db311f47b6fedb81811872d5d9489f5fc4103010139ae53fcaed209dc9be" +seed: 610afb64be8cc1df288cfb016ee2f44c6c07113de7f6fee071fe0c3fe31c6215cd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd +public_key: 68d31d58c83101c3626170b992c2ab3c181f3d58b554249aa9e73c9e691be2c6c402755ce0737ca2e2524ff59d3397b417965ed4c547f8dc97252c58f4367379f4bc9da75b64b4a40a329952623f0615117d28af7cfbb994b8ad70b2540978242ca0609a082dfd70aa5910778fb1cfe537c5c1aa5612029d9b972aec8235466098558c1bb4fa2b84e1cf9c16300035a57328b460b20facea43d5502958b968547b60a3c9255ea20faeba1f4e69cef343a6f3793d4b0418edec073909b6786a38fa3337c61c8f7af5a796f41a3731a4ca6096382423c941616452b6a5438977445ffff43d54e7b787cb9bc6c95c36003d87b9bf08934996f7301618c5a2a9b6d5d802d57c02018b44b0d95c5ac1c46b910dc518277be4c8960400b14c51eec975976975825b2d574965c338c121a056e2b9c9cd88ce4111c0eff01db722734b296540ab44a40214646c32713c87bba448d349cd5b160db48411a77593886c81ac1b59d10b51e8338a4178082ee858ff3987e58cb7e2a58cf23c28ccfc6141270c5ed0b883d01092c3095f0abafa2c43eaa7181136bd6e2b0c332b3e78ba665c73304df21d83cc3915f9c8073b7d6d907c13bc4a295432fb0a894958b98c9629d6a025e3368fa234399ad0aa5f8c8fb54b9af1d3a18d1a7ec1b22e7f5056c0d97595a801885202ff8c9ce2315ba340924d1c5e2efb2de7c1a468b684c8f7a363eb98dd4cce7ddab73447a5d263b2cfc4129be74174b50ae359c69f086153ab30038a13ae21ab5ef870c44490990806c4936eff553ccd9ac01d90b1e3d54bbf943b19236b935cafefeaa1059823b1d928cb77cbdc0ccff4024e79219852c0653ecaccc3d9292a18783c10cce69732dfc4585c8a45138ab94ef2c84de2aed22b98bee16bef556331e56eb43c3d92e55a7c1bbc0474251a70ac72d5cdb9b2a9ebb9be53c0cfc037c1678a1351cba5e91bcf7147002518b8c8933cca1c34f9da03d2b70e885059b259b499901b98345aedb9075aa1686e36a85c6337f01b4ea2f2ab29939eba618c68c5256eab4e6c1a1beb334f93e99bcf3cb31012b1252537f8d1a589430b46e487ad07cfc5c58a2865b0a92a621006248a46c837f095109a3de16b24b2339a509284c9055778816e9656c743a8929cb622f3e34f0141c820d231501c920581bc259c8be8b0928b58b6f1e2b34b628301230fb18c3904741a0f061cb613b560e972b406c44e154724f6af887a345acc63065481c4b468423742e742582386c00f2531c67835f3c679ebfa9aff871f0b006c461b760fb3171b99c9cc74a5378c3ac78c87c847a65f4bcb5043a551c223418114d58bbbf6aaa4422aabd4d70e7d78a61fb1af33882eb5bc886d154ee032b0cf300efbec2acc811ccd2c6968e90f6d146dbeb0932a569896f96a91ba3298c57c5ebb4aa130a7730a996054b9c058057fdb41825a2323799bb0a51fc0018428061ab3f3c12a6479c3367810acc4aa869867f5888a90a1ac51913292a194f1b3d8c976902221d3b0c607714f4fdc8196859c939b499e511f54e52d059a25449068c39081dd59624a6515e282935ea454cae482ca990a378a3b41e0b0adc6702a9533c0c479a4f6176be1a9a081a357f5bb98f835ed13ca29eb969f3a7c759b43464155ea78067752534d1044be2501c38387b31c662e6b9cfc4584e5dc43cea0805e273d9e56b71fc924204c8ad82ccb315207afe34efea97f72a21760cbb629d6391ac85fe28ac568b1b96ad8b888c9cceec93fc08825429614be352c55ab218383ccadf0bad13862778bca36285d67381164f5853340c0b9516ee3916700f4c3b8326e497ba7966456b6144b87f70c89cbc07a3a553c60b80e01c0c7e9297ec70e5a3017e906cf24593f86d3b6d1db26004b8ebd7047339468183c20df37055637995522a8322b04618b123bb3b1cbf765beb8cd17a302b88166fb84a9bf1728bfbc57853b7de3f113257359f6b7835e9953da123bfcf545e5e3541c8620f5f58872f1192b67424b5a9909d5324a342fc74caf906c69fbe3b2384a2a9bab153439241d6065e0f944ef67c4d6873635b3650bf4cc4a4b879cca63b6873c8e681982e4a183557e0465bb0f60a8b9d97625065d4727731e173977a95e7bc2ce3494b58071c1b89b1866c85ff814aa4843f7ab5bee6124c2166757943afa3df3d5f59581246cddf8777c228d +private_key: 536b38508a50a06441226094dd386686e461226c3a3c121f4c906608f7a78ce66d7f574d479a7154c87e1e88278409968859356c7b6dcfc0a9cfc473e670bd377849619887ab701c3c4a1d2bc0b6a9633247cb47e8305d983b80a37462512b1e587ab1a80293d3ec1d9c785be97b7960e96cb4bb2a70454d5c619022cc647e12b67f786c4f386f68c03caea65fc0c14d8d0809b5a181f3fbcc5446037a00bed867264f167c69152789e38399356e1eab187490b8c8c3c5b8f226bfa41877374d41972c151b11168c5d971740a373967492804bc988afc31e7cc195f71c8cb4a53c39d16666982685368194a70fdc0b7ea96729ece4085c6c59ae12218f649e1552998d571c0a41503fb278c2195d16f79012251ed5eb281ae05f88650cb62017781b7ccd534a0646a4e2e2a4a8f6160b64cc3aeb4cd78c17f633068d299b286730b2db36f2963ab421b0f3dacfd18a5a02aa807b47231001ac238c176bc01646541f465b832c448ad4f157093c8d26b0b1da121d17c21c71c64bdfe4793095c38d930b7a26a85c87c5b87821c389bc4f3ccbf42424d994754073605c166731a48923cca3a30ba4df4c2ee7457d5feac30ab08b21b71abd66c8173a84587a047454afeea38e6ee12936743195eb79b6548e73822960c7428a7b36c75b5f549b66f2b30ae3cbcc4f10cbf672817b9b45305c7cf290c4c8c60aa2d443b03a6418b8bb42309f2d912a6268260d35b5c2d72ab320617d114ff649308789a3ac88817498333f2c8e65f47a99755929b35af1bb975cb804c7f71469f32027c33e705c12e6ab4227f2bf37eb2214b66a00c556ccba44ee84654212495d96983ef16d9af2b848919005700f01b58b3d5667f6220983e1ca9cb8cc1ab09b609224afa0269f935d99d92535cb2758c24f08aa76dd1cb889320c187c48bf781a10cb3762e402f3e39cc151ad6b7c6c8c50b71e7682364314a64c6c8e799915d84f50b37403077d41c76062277b6a1354d298427c31b52446864ac075e4229b598a9bcac0c03ee1934207cbeebaa931c18870e7787f4718830a932375935759c98dd5074cdbc3a2cb6786ea21ac928b34d675ecc9affa0c8c0d341fe0588a8a6a398e994edd03786a167982815d693c9b149600fe5b265a94697ecbb5a9632f3a158e0eab8d06dc0bd176bb02172c68851237e7bd9592433cf97b33017c32bac8c719926c4a8cd6788f494806e7821edc0c798cf6424767ad4715cf2e02c806565b5829bb4d9980210566763999046075ad12612ae07d6c0394be26cc1c375c757ca776f7852002b6e1fa8f44db1e643753f1daa627799eb8d320edf134b5362a7079093f519dd20a9fb662cc47e373ee81a058e367f4124b8dfc7eafe83e2ed7693e46be701aa7a9e3ba45338aa4c9c26831a5b1f7c03227c97c515e8a1b154ea910d7265aee1c3f16198905e9c3770aa5ba924fddf0433edb6df1ac0d2e6282e018912db1c056f613bffc51efa044d995be8a83a5560a4ca3c554ac538a45060b42cba3255332cf2529795ac109db6715d87810e697d97a4c88fba86760460aa493bc25b2cc6bb79e3b1391134ec2934165a77f44b81b1416799d027e488450e43c42792c7753a8ac4805c13ce7a654b4a1bd881503a8cb3ed462e40a42f71c280c175663a64657fb61a9d8cbc58452141366a1f34eddec4e8c40b59d82a9260a68727431d8f36a614a8ffa681774c60587153aca0591d212bc5c3a22423267d4345db36878fc771c0319178a6936569bb778cabaa0e211b2a14efff4a4649052c60a9dabdc37350bb1c931ab2cb3854ae4999fc0a9f5d92a117783f975ce6d1297d7621a48fc0a2ab584d754b036a831051ba25b7b5b9e1442fc3a7f17d2710e7aa3d86b85ddf2abedc30ff756b2262a1d2d1165574a13e51373382704bc062f5b2261ed5053608446b7db9e12d0191e1a2d41a0adb4015696c3266c79497253c6bc51c20999b890bb21c8fcc9a786142e57009505694b7155b386c39b5c1b84f0791d9583d58a904eb66f461b2621f2c024b4a6f0cc1b2a7bca62f5378fa1334b7b6f06c61cf5362cd4e3cccea93988eb757032a844037aa0186df5703ee8f7c649c9785a26197c2593af38c8f56b849bd68e12c696825982b4f2919d9942ec240178848f68d31d58c83101c3626170b992c2ab3c181f3d58b554249aa9e73c9e691be2c6c402755ce0737ca2e2524ff59d3397b417965ed4c547f8dc97252c58f4367379f4bc9da75b64b4a40a329952623f0615117d28af7cfbb994b8ad70b2540978242ca0609a082dfd70aa5910778fb1cfe537c5c1aa5612029d9b972aec8235466098558c1bb4fa2b84e1cf9c16300035a57328b460b20facea43d5502958b968547b60a3c9255ea20faeba1f4e69cef343a6f3793d4b0418edec073909b6786a38fa3337c61c8f7af5a796f41a3731a4ca6096382423c941616452b6a5438977445ffff43d54e7b787cb9bc6c95c36003d87b9bf08934996f7301618c5a2a9b6d5d802d57c02018b44b0d95c5ac1c46b910dc518277be4c8960400b14c51eec975976975825b2d574965c338c121a056e2b9c9cd88ce4111c0eff01db722734b296540ab44a40214646c32713c87bba448d349cd5b160db48411a77593886c81ac1b59d10b51e8338a4178082ee858ff3987e58cb7e2a58cf23c28ccfc6141270c5ed0b883d01092c3095f0abafa2c43eaa7181136bd6e2b0c332b3e78ba665c73304df21d83cc3915f9c8073b7d6d907c13bc4a295432fb0a894958b98c9629d6a025e3368fa234399ad0aa5f8c8fb54b9af1d3a18d1a7ec1b22e7f5056c0d97595a801885202ff8c9ce2315ba340924d1c5e2efb2de7c1a468b684c8f7a363eb98dd4cce7ddab73447a5d263b2cfc4129be74174b50ae359c69f086153ab30038a13ae21ab5ef870c44490990806c4936eff553ccd9ac01d90b1e3d54bbf943b19236b935cafefeaa1059823b1d928cb77cbdc0ccff4024e79219852c0653ecaccc3d9292a18783c10cce69732dfc4585c8a45138ab94ef2c84de2aed22b98bee16bef556331e56eb43c3d92e55a7c1bbc0474251a70ac72d5cdb9b2a9ebb9be53c0cfc037c1678a1351cba5e91bcf7147002518b8c8933cca1c34f9da03d2b70e885059b259b499901b98345aedb9075aa1686e36a85c6337f01b4ea2f2ab29939eba618c68c5256eab4e6c1a1beb334f93e99bcf3cb31012b1252537f8d1a589430b46e487ad07cfc5c58a2865b0a92a621006248a46c837f095109a3de16b24b2339a509284c9055778816e9656c743a8929cb622f3e34f0141c820d231501c920581bc259c8be8b0928b58b6f1e2b34b628301230fb18c3904741a0f061cb613b560e972b406c44e154724f6af887a345acc63065481c4b468423742e742582386c00f2531c67835f3c679ebfa9aff871f0b006c461b760fb3171b99c9cc74a5378c3ac78c87c847a65f4bcb5043a551c223418114d58bbbf6aaa4422aabd4d70e7d78a61fb1af33882eb5bc886d154ee032b0cf300efbec2acc811ccd2c6968e90f6d146dbeb0932a569896f96a91ba3298c57c5ebb4aa130a7730a996054b9c058057fdb41825a2323799bb0a51fc0018428061ab3f3c12a6479c3367810acc4aa869867f5888a90a1ac51913292a194f1b3d8c976902221d3b0c607714f4fdc8196859c939b499e511f54e52d059a25449068c39081dd59624a6515e282935ea454cae482ca990a378a3b41e0b0adc6702a9533c0c479a4f6176be1a9a081a357f5bb98f835ed13ca29eb969f3a7c759b43464155ea78067752534d1044be2501c38387b31c662e6b9cfc4584e5dc43cea0805e273d9e56b71fc924204c8ad82ccb315207afe34efea97f72a21760cbb629d6391ac85fe28ac568b1b96ad8b888c9cceec93fc08825429614be352c55ab218383ccadf0bad13862778bca36285d67381164f5853340c0b9516ee3916700f4c3b8326e497ba7966456b6144b87f70c89cbc07a3a553c60b80e01c0c7e9297ec70e5a3017e906cf24593f86d3b6d1db26004b8ebd7047339468183c20df37055637995522a8322b04618b123bb3b1cbf765beb8cd17a302b88166fb84a9bf1728bfbc57853b7de3f113257359f6b7835e9953da123bfcf545e5e3541c8620f5f58872f1192b67424b5a9909d5324a342fc74caf906c69fbe3b2384a2a9bab153439241d6065e0f944ef67c4d6873635b3650bf4cc4a4b879cca63b6873c8e681982e4a183557e0465bb0f60a8b9d97625065d4727731e173977a95e7bc2ce3494b58071c1b89b1866c85ff814aa4843f7ab5bee6124c2166757943afa3df3d5f59581246cddf8777c228d53729573ce2f4f51da212385808ef436eecdb8fb9f3c8346800beb4b9e537d1dcd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd + +# Official test vector 43, seed: "49e1855588b6235df2a400c4a70aedf8ab17b6e5e2891aa745f132fa2e7ab0c8117c1df37c39f5d57624eb77c2b4a091" +seed: e1953800acaa85ac02a906c72cb8e8d704e8d27820345f88f71e89c1f549afcc8c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c +public_key: b2c2247d98c617419adcbb5027b320e54205ec3b9c37fb528be1bcb29624f0851a9844b83c5788a2332c0148c6c982be4ba98be6d9a54623b8183a66dbb8456473ace4f18829a56d1523497e1731c524ba3545652be97aece915ec25cb8c18364ff961dad655e2d08e14293a77963e4154b5d52a6d424a3ff976b69fd6c073b7bd960cc397d7511f76aee624240cf6430d612385a21a33838d181c3f77197e530463e952662e512a538b81e72913eb32357577319d29599ea2ca2e088c91681ebb295c5fb3c4f11643be6686f62b259c737c4ed37b38901eb7a79d5facc426438f6ae228338439d136ab68ba7ecb760a3b45c77f186c177c2f79f47f7cbc2a43da4b94371e4ffc9f8d520a9c1749d5b63b01a2af5b7a10ee47505598ceba4ca724f22fc15626a5243895db48cd2bbee25c27b171c44fa09d9dac21a11803ce0a6492b72d16803dc793cabab535eaa44eaa14b2d81a4162c32e73cb38a7bc945d0c1d6e0022e2785093d66c29e31616ba7ea0f58def02339ad231c3806600ba8612080d6dfbb50353b0fcc98dcab2c07473b34e05a556d777cb1982bbe521b1cbc58c680606f352b1560e7e4589b905b50c299ae8d3328a3729ac0420c3d23eca06491c43ba8d72af0cab1a869002434476bd7527f27b751c9364670a3730c52d514454e03386c66406a4b4315c8201db561e9b79c2ca4c60b25044e6bc1253465b4d0206fbf695470b4b7b8bc068d391f5d0b7e9d8028f1591ed916da33157cdea92ff46ad98d18e1ce6c4b2f75854733e913c5ad2d13e23ba51b7f8c2d3cb0edea793b55acc3995c97d3c65c0981f12913c88b56f62623f41e85a84543d4e4520c884981a3531d200ccbaec0bf1096fa7ac429a9b3bc1a2b38de159c2139361dca3ea805d97e67f61d10c0911674fe148b33572797ace2138ab478a51057306f010661d569ddd9a4e55e73f67f25f0db09d61f1951279cb79d814d1a21a4ff311be441bbba97d81935b31bb4dd558544babb18175b893357504589fe79170199129e78874882aa89b87c20bb03591f321419a41c1a78f87016b4e551c6928a37fa7c60708afc03c8b5b17001aa3088dca6ac9ab93fe5665f1781e36d7813945471f6945198983815c2737713f9c53a8e717bed4d9a7a706ac41d339001c5d74548388a2439cb0142bb6bcf2e23442155adeb4269cb39432d31455f0191a25822f35c889f2962ff081f1c1b5c55b9af0b14a414b618c7366fef512d94077470440fed7c2d101b5c9ec7b79ba17cdc14653b6c3179261a9401a0b20bfd201bbe243b8cd1322fc872c4bc29889586a8e302ac26b043b605c13c1300a68c95f269b2ef49402786819668e964c921f765abf805477ea239d3b8b203c7db303afe5a8c70158874981c663f1b3f8a645991cbe42a2498beb4579b314918c85a8388f31e628010bca96858a09e49365725b31d0726c0379709529c38b47e15678ac9625b28a763b579af908cc1cc45a5ecb23e5a6ced504b9e3101cc562be9714bf4931cbab020fa3e10456d23d2d01af6dda8dc6e09ec6aca54a3253f5d905d4b34b66250f80324060b1609083028a63aed377a7cca6a929da786eb080db750cf906c98eb9a105f288a36427519c0087e300705524ac343b2c448ead7802404417cacb6ca5a398c7e9c2a7b2855fca298ab1bd0fa9c23af9c5079496dfb2996a3738d5ea37ccbc24f1744eb9f5c672d74968c872392480fba91daf0c60fe96b13828bbefc6156f860ca304970de5695553a631a10c799b29b2585652065f33c6b53179bac6473b4dc2b277284181c7a2a9491ea422c5087358ef8835bf5711df91b38ab90000d324e7b6ce841830bd952e18583eab6b6a922427b2d094ea633cda75c94bdaa1a3d928fd2376a876ac0306b1ee631fe38987e50421389cb224d4045e260a9d34508d1739f223765a3a8f2699a8919b30f80177d9e141d7d9630b46cf5dcc4ff85045e62a4f0f86bdbd6367c1471ac4b22210771eb636c2bbe564578266b8682817a9118d95ade51031def42e0d9cb273c03e3f93ac97395d9f09be36eb8b2c21a4c74796ae501758b222101634d1668656b02cd0026c9eda07c0f3bb7d99b7fac6a78793bcddb2a18cd4262039723f41223d336451eb31911219750098125d62110dfcb20e30c6d5cf75212b294eadf4ac273ecb8bb5beea59108851b4 +private_key: 548b6bf0069239d110a3699befec0527e89da2e3792653549fb865d1e9ab9ab9250ee00d913b83df22acd9b4b17a23cd1bbc9c0b46b5df36c3d5a636cd9808e08b8affe75d42dbaddb9974e8417c8cf14ffbdb8e89fac43330bab32c9bd8005b0a1c4948c04c4d110a6248ad52018549360b4e7a950a29a911e43250127a5362787d67ad2d85243ea92cbffcce1ac4cf4f979b59e47f60ca1156096c0f93a219328619fc00d2912d1a23badb2c5190d211e339bbc3317e1a22afe452492b75b0138600848894f3b86eefbccada8c55c73877f9d9ab985004c86c717b199a164c2e25d79f3230368216800de11fae5c2d8892c5f33456dcb2cdb62392bfd1b2e7658c979b87d287ca62d052e86a1afbd367bc066de99851331a00e9461adfcbc6b770471ac76bea98bd52824fafc790b41aa977481fdce18f91528939c202bce50fc64667fdc6c06e339b2ce3aced139739036a7141b1d3b293ee188d57354969485238669b74514d281a7a5bbac250ca154fe898e7cb42ef6670891b32dd97494f75ac96c6bd10682c682786d270bdd73a204aa340cdd9ba00162ff1787b81d2982d9a5fe90038537b65c5bc68bcc22bcffa87e1415b79fb35dbdbb6af8673e56baab96104cde80b3d59ae0563660f8b068d3049c23c0afb59b36d537dabd8c4dd2063afc12b19539a845b51fb4594ca58bf967a9b87a057f7352d40c0b8e79b71e86a34a79116a5e13ea1d4054a35a65d50a57b61bb8f203f8f221c5a79119f0b3dcc2974038865b54c9711cacd1a2b306188235f36a173e99ff982a966d4030a84220604717e8b7726136941d80d23420ff3c599b623276e510567b499da25abecb32a51165f4800b95fb66b6ac1693e52305f32bbb4d980d8a53d83d44f754b0798e6596981c0260300bcab8d55574c92a09ac86b277383b062857d1e4919e094b0b835b7848176a8984ec639942ae9a541fa0549d62570bac5ee458130b0bb46c30ff3c8c7b2d67cb21785b82a9367e59d38528c82694d25756890b789ff86b9a755493eea0b6f640afd8c26ad833be6014ebadc04a6866f2250c73cf5121522bd4d6ab3d8366e04676734fc92699531f5f6c0e595befbc425f91c2c978842595668415c59582142ed11418fe2983128959dc425b61183d2ba458c477e4b9338228b3ad1a16316ec976522b9eb95596628a3aad73953b2877a038887b96a991ca938aa2615751b22f9429a65a8ea4c637f63b313b48f29662950227b702c6811b75564e58d9ffc3609479ee75205171c7db51776177a2a83c74e3f61cfde821f4b60b433902542770ffbf45d668001f94c553673742c96b76eda9750f154e61362d4a173c806ccaf48aba8ebafa9648cd1b3a17e135840800cee9855e1f4623f9768197b2ac9f5525c534c8bd7728bbac26bc18aa5e412fdb92ed262027dca769d9851917510b9e1a66826cda147705f703512767a4d9245a2660ade559956f67b7a012df0a99fbf911d73367c0e7372e7265fce319efb818f139b84a5f652f183c7f2f68c1c252bfd69a586a716dce522aab98d94587dccfc99a4b813ad60a15c924c87a9b11516188c4787171c98fb11466c59b3c72017d9ac1d9e6522b52c1ccbe45ebe0ab6a0983e84e8bec3001ebfb845a14a47c34c9a74234676a28b33d2aabe157f56c26895e7586658649687cd7442832a1c1f2401207b51c676b90c41295bd609882e40a170008be7c3909318593857b602ca882a998ab0265f5e162c60aa090287a9e7a3627909743de22272ab0214816311cb4548fbb5b093c29ee57170121337000208759f6e224c6992c593337d62d3011e02ccd41015497190e9ba5df520b3fab78d68c2b0c18b72c8f67aa9e056a26ba52e32ad7c717472766f5be4acdc60b48ee38bf361b1ff52b11df42546e30a2e0c3f37456fdd190030921e301c555f73b68e5818f285714333b5e2818c5d460994985e81c09448f9a58bea16b87a02e4bc5d7765ab4936ae83b035a8878ce47a659778cad7248733772b52459744362a51b05dc4d17f0e6b72fd1119b1d24d378b6b50831759870d2a80b8dd5c67e13a30a9bab1cddb0d5007ce2d2c7f391a654ce2ce94a77a83035f7d059f4016098f21a9b4633a96d634c32419aa073be74b792b080be8b672b2c2247d98c617419adcbb5027b320e54205ec3b9c37fb528be1bcb29624f0851a9844b83c5788a2332c0148c6c982be4ba98be6d9a54623b8183a66dbb8456473ace4f18829a56d1523497e1731c524ba3545652be97aece915ec25cb8c18364ff961dad655e2d08e14293a77963e4154b5d52a6d424a3ff976b69fd6c073b7bd960cc397d7511f76aee624240cf6430d612385a21a33838d181c3f77197e530463e952662e512a538b81e72913eb32357577319d29599ea2ca2e088c91681ebb295c5fb3c4f11643be6686f62b259c737c4ed37b38901eb7a79d5facc426438f6ae228338439d136ab68ba7ecb760a3b45c77f186c177c2f79f47f7cbc2a43da4b94371e4ffc9f8d520a9c1749d5b63b01a2af5b7a10ee47505598ceba4ca724f22fc15626a5243895db48cd2bbee25c27b171c44fa09d9dac21a11803ce0a6492b72d16803dc793cabab535eaa44eaa14b2d81a4162c32e73cb38a7bc945d0c1d6e0022e2785093d66c29e31616ba7ea0f58def02339ad231c3806600ba8612080d6dfbb50353b0fcc98dcab2c07473b34e05a556d777cb1982bbe521b1cbc58c680606f352b1560e7e4589b905b50c299ae8d3328a3729ac0420c3d23eca06491c43ba8d72af0cab1a869002434476bd7527f27b751c9364670a3730c52d514454e03386c66406a4b4315c8201db561e9b79c2ca4c60b25044e6bc1253465b4d0206fbf695470b4b7b8bc068d391f5d0b7e9d8028f1591ed916da33157cdea92ff46ad98d18e1ce6c4b2f75854733e913c5ad2d13e23ba51b7f8c2d3cb0edea793b55acc3995c97d3c65c0981f12913c88b56f62623f41e85a84543d4e4520c884981a3531d200ccbaec0bf1096fa7ac429a9b3bc1a2b38de159c2139361dca3ea805d97e67f61d10c0911674fe148b33572797ace2138ab478a51057306f010661d569ddd9a4e55e73f67f25f0db09d61f1951279cb79d814d1a21a4ff311be441bbba97d81935b31bb4dd558544babb18175b893357504589fe79170199129e78874882aa89b87c20bb03591f321419a41c1a78f87016b4e551c6928a37fa7c60708afc03c8b5b17001aa3088dca6ac9ab93fe5665f1781e36d7813945471f6945198983815c2737713f9c53a8e717bed4d9a7a706ac41d339001c5d74548388a2439cb0142bb6bcf2e23442155adeb4269cb39432d31455f0191a25822f35c889f2962ff081f1c1b5c55b9af0b14a414b618c7366fef512d94077470440fed7c2d101b5c9ec7b79ba17cdc14653b6c3179261a9401a0b20bfd201bbe243b8cd1322fc872c4bc29889586a8e302ac26b043b605c13c1300a68c95f269b2ef49402786819668e964c921f765abf805477ea239d3b8b203c7db303afe5a8c70158874981c663f1b3f8a645991cbe42a2498beb4579b314918c85a8388f31e628010bca96858a09e49365725b31d0726c0379709529c38b47e15678ac9625b28a763b579af908cc1cc45a5ecb23e5a6ced504b9e3101cc562be9714bf4931cbab020fa3e10456d23d2d01af6dda8dc6e09ec6aca54a3253f5d905d4b34b66250f80324060b1609083028a63aed377a7cca6a929da786eb080db750cf906c98eb9a105f288a36427519c0087e300705524ac343b2c448ead7802404417cacb6ca5a398c7e9c2a7b2855fca298ab1bd0fa9c23af9c5079496dfb2996a3738d5ea37ccbc24f1744eb9f5c672d74968c872392480fba91daf0c60fe96b13828bbefc6156f860ca304970de5695553a631a10c799b29b2585652065f33c6b53179bac6473b4dc2b277284181c7a2a9491ea422c5087358ef8835bf5711df91b38ab90000d324e7b6ce841830bd952e18583eab6b6a922427b2d094ea633cda75c94bdaa1a3d928fd2376a876ac0306b1ee631fe38987e50421389cb224d4045e260a9d34508d1739f223765a3a8f2699a8919b30f80177d9e141d7d9630b46cf5dcc4ff85045e62a4f0f86bdbd6367c1471ac4b22210771eb636c2bbe564578266b8682817a9118d95ade51031def42e0d9cb273c03e3f93ac97395d9f09be36eb8b2c21a4c74796ae501758b222101634d1668656b02cd0026c9eda07c0f3bb7d99b7fac6a78793bcddb2a18cd4262039723f41223d336451eb31911219750098125d62110dfcb20e30c6d5cf75212b294eadf4ac273ecb8bb5beea59108851b460166dfba8564a4a16e7f53e467431528a6e2d8b62b614d427846b701fbff5f48c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c + +# Official test vector 44, seed: "df0e41d2f6f86c1f79d31fd5878e7ab434fc0af3a0d5f47d2ab3fef31a42bd949b0e3629df9f575befbb62e829e51dae" +seed: c719f9b2d16399b7326ce4eca30dabefe8fdaab18e9f6df888b0a134ef355570e40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd +public_key: 4e35c7f9aab819e1981647b85f7b73ac0b8ed44a9ebe203998771af684086e00a0ba098841e7979baa20d82b450bc35b88884eb935788dba47bc63247de5cf5cda3f069a02874598468c6651842e56464d9731cc027aa307da811c8c163d62cd057863a8c2764f81c889d718d10267200c8c2e7877d7d853a73287d8b1aef013c715f69083b29a589b8e2afbc72a76587032936899244d435f1df58a957091241728dbf57693f46accc214dcb89fa35ac97c77732d0768e11b15b6d5c915ac78d5aa17323bafa8262f75b66d06f55eb015a5774a3854d09bd130473295a946771652176dc0479cb862cc7b93494df1c815d754f86c290f44c1c828228d48a5573a574a2039dc9140ee8a55c6abba1986938a47b0e84859558399a42ca013450033c53b1e978d5a3ace10a87761d51a19bc349fd19f555042e0e2806c1aa76436bc32831f0935c51384b6698a432fd4a014157b8a9858cbc216fa784e66bc09f02258a9dbbc402422cf652a3e430301678283d19889c7b61226951bfab2814a7c7a2899f83670b1a396f4d260aa869feb409b0af63b0b2438fbc72baf0753fb2c7473d577618109a9d2c2a8448a0e756b4402c7c0e280fd1160f20b9b384224fa2ba06ed2274852b15e1b35851ab6e8a5bcb646ab45a85744141970f6c5af2720fedb56abdb65603588d73109630baa73f773f260c63d81c9137100b1322d7c21181285b773b7c552a4000cdb2830e28daa17ca1db9bfa0226e2c1ca720e7565e80bc08f1c742e453fb2230138bc430335c2965386323b269922e5713957057311ba3394320096075b492b641369236134095d728341db3aa13ec453eb4b9c986085e23453e878e42d20c9af4376d092da16c8a9afa9834cca64f16b2b1561a4068c0245c4b6e329fcb1c0a9b15660485672ce70f3f17b486586597e8aebf9987af18bb2ce3267722c549a8519527515f4129ba5c986327996c38babd95cedfc1305f4378fd2c8b6761a24334192d47596502c86080bb202946f34c08d7e201a3ac937844b181d739b9807ea3d6792cac7a7a1b4ba7fcb2c5833cb0101291523208e7bcd486737b982c1136381be16f75202757fbb86970194c4a32eed31b01ccc5a2f0534bda8ee61b0f4a2023ca58b415e59a8d9bbfa9964cf765b31fb0c565174bc7b006855c9747a66747e18e954444dbaa8272a15cae2b7749b08df9811e8cdc01fa46a362052f50aa06eb2249287abfda0aadb2e719f1e1afa3c29d7c855a6ca27aea661f40210c1c629f611343240b3968238746a245ace3994bf88b46893eff1a3a6096166e0bb7341900e73bcc36bb92d3e539e456bed44b84cc00bd836081704ab2e4065559896657ab31c60c3564981453b58bc7e238fc5b778cfb4aaba57417009a789a13bb075b6d9541692b85ab52961fe887c29289923797d18ab8c9d35230624b004457f749497267a2efd15fada244c1d35c44109add503328d063b7e8c0fb8c66bcb42c8b1c1eac421563c232e579431fd9ce4d572904577811e23af28109b2e419515260e0e1bf4a969d18a4378147c0334a5886046833ab8d06c78041c6b848a43810208a5fa0a202ec2320f4adb15bc299c6649c694f76311d8c0450ca829c3545ace79a33e0942f133c35e1e6be342c30fa9b8debe6820a3cad5a2995414bb7f0744a22194435ea8e5a534dcb8c754bc75444093af5d72490a3468bd06bfd1442870701896a4f1fc11fd5c8c50580cb06192ce7b90f81d920a3bcc52ed02fcf703428c22c8ae25fa56085f8033c972b47c61998db005b019032d7a83660803cd39014bb3165c94b9dba1c6e38abbf6567cd513283174c42bf4605b3809c29dabf149a650bc906a4cb1e33a469bff3820713040aa067701282cc1c6826008f8787cfd0796bcb568210e088f649349ad921b9349cd4998189b4b945d92ba6bbcc972155d26920e1a756bce6441748c41c6c7373723a9c00434e485216d92dd6884f6113068fc2b798790f41bb3104a513f0e413ced19303f396e5f7c72612c4f4112f41518ea77c850f7b8e64d1b6df73a40f87b2945b14b8275aba42b455253b9d522263e4bddd6c24222062ae68bfe5ba4193195ed026712e729d59c7a1f519a9c65c566a51504cb93355a33d83acb62a268e02874c67c89530f914761b751f03f3d2307ac9ede742f51bce4342afd3cb6ce2ab83fe +private_key: c4ba61e90c3a8868850ff1c4662226ac4953de3553f0701c404618bc69c0f57b527ee459f171bebe70c730f1841ba702f182aed1ab25ae59cb9e793d7a22c4640ba87e78433b639bb061106c0581809675c702596af67e382b564b514c4d091a13f35629bc71aca95a502239bbaa7fa15310ae31b7e8b97ab3ba783a27c8b9eca6b9b054911c756085002a329063067b06707a6d3a31c27c234fa36daa420c5ec0aca490c0fb66023c34064f09832d43b465dc8f84572130270599c10534294ac0458412c58273f49c39cb12d522317c980670692207b3af7417bef469234ac081b1884815972c7fbb3733e22d8a164c614ac8546c14cbf05a6bc47d6424c36d3b106fb245ca335a927538d227be6aa1a4dcc33bd1c68851e18e2ff7cc7ea93104521db15c7f11041676855e0bec2b2f9b8e9f63920858b3db1cba7005c5e21c4effa94427d155ec0c1432cb2679c45802795e0ff13674f15be6d60ed4326ca4f230d87a59bfb268f08362a6764aa2402e270172275191649bb3991200330a62594aacc81a8fe9e5004bd5ab8ca4bce4e36860eaa9e49a2f77762d88f0935d6563296121764aa34ce64b41418bcf275b8e5bb2a25259669b3010b239f111b2f6584c3ee9bfe7608d12639e72ea38073c9c45107abbaa5c673718ec2c4a77a19464209b8efba54ae482731bbb3aa036a67653ffdb0e8741c678b88d4ad4647f8b39dc61a879eba65db1b98281ca641c954915a916b15307808587ec3d7248668b1003a1612f9ea13e4ca7b660431a7a55199814ba1e757ab08056b7d9c13b0334661839c334449afb77de61aa7caa28ad57acb2ba0e02e76ad9218a29c6c638390823d6ca512139d3f8826b5c176da373d7754cdce78c614b98a59b4bc607382f103eaed7645cf791b3fa3374fc1fb16493658a7885735f7fc38fbd324fbdeb904f17b7a9fc7af45013a0e8c1d3c4b9b7ecce171731ef1c97693695fa775ff0452d457b8d7f17bf24638112391d1b4017db07c3a037845722aa4fd72a0a079803102b0cf49b522302b37a46e482914ac51af1f007ac91a84d6556a176affcd28553362c16471eaf569e666683ab71cbb0748b6bb026d6b736e68203a3103940315650c4201f31bd286643c635644a567b2d38b1c6746757e956c663cc2ffb1230e7c20e94ae939c8ad10b9be3887b8fb7ca9ed360b2295f03725047cb8cb771adb18b7f1c976cb436ccc0c675f99575cea24675c358c3678b3dfb345100caa3d11a4fe8a34737c4c11131b7e400aefab6380b4565326f1ab8510d4210e3335a5ff07473a46d9ac73974aa4c8a10ae5851addc7b4d3bd9823b71aa1c0a7f2b4746744bbdb9335d7b161f55276a1b63c3b5b4800d0344023093ace786fd99c144655d6af601e86336a5e16e6cab8b772a39cba32c68e84390a80d62701af5d5822629a758b49cba714507c7cdf2034cf65c4a0601bd1b07b4e1c1a70ae555d7368a568aa0e59b5494239d2e25a9eaa34bf8b29b2fa31ef8eb606e69602ba0a4024780d5c29cb6c63cee9187249280ea56207b4628f8964579bb878ef25aedb180931aa5e176ad53a890b3f705bf626861265bb9331d79f66b87e96a6724634df6a35a82979a4a2b1c23bbe585a001a936d548599cb82c8e362442a6481ad29478ec2e389853fdcba3853629630030c9091e8781a33287001a6abdeddcaf69856a832cbcdd3894f09690b581ac6f7951b7f3558a284c8298225bf74c6847c8d834aa4b118a37fcc87c44749031091af154b6273bbfb4ac7a3b34ba6c5642a78a22b213428782eb81194297a88c1c04ecd35d6c548289285999b69ac46346127aa097eb2a08fc1bae1a944ae83bff25949e27af6167b73938147bb97ad5380f599822f788508eb73563e82e73c9951d5c94428a056939b9c5ab272525a7088977135008b0c5181bfa27e336457375b1438914bc0189c00bb2f07c5eb5429ee6956943d4c5aa597cf1376ff7083da68b7c1941529ff5509ca82e3a424dcbe4673ad16439ea874786544e7181bb755250025572c9bcd36c28338482e31449a3b6a917c9947876a702b8567327309b3812a3aa4bc8b979168bbb2db72f533434808cbced5ba7f567ac05082db4b029512747d203c84ed6aac81245522a4d30a887b8f44b4e35c7f9aab819e1981647b85f7b73ac0b8ed44a9ebe203998771af684086e00a0ba098841e7979baa20d82b450bc35b88884eb935788dba47bc63247de5cf5cda3f069a02874598468c6651842e56464d9731cc027aa307da811c8c163d62cd057863a8c2764f81c889d718d10267200c8c2e7877d7d853a73287d8b1aef013c715f69083b29a589b8e2afbc72a76587032936899244d435f1df58a957091241728dbf57693f46accc214dcb89fa35ac97c77732d0768e11b15b6d5c915ac78d5aa17323bafa8262f75b66d06f55eb015a5774a3854d09bd130473295a946771652176dc0479cb862cc7b93494df1c815d754f86c290f44c1c828228d48a5573a574a2039dc9140ee8a55c6abba1986938a47b0e84859558399a42ca013450033c53b1e978d5a3ace10a87761d51a19bc349fd19f555042e0e2806c1aa76436bc32831f0935c51384b6698a432fd4a014157b8a9858cbc216fa784e66bc09f02258a9dbbc402422cf652a3e430301678283d19889c7b61226951bfab2814a7c7a2899f83670b1a396f4d260aa869feb409b0af63b0b2438fbc72baf0753fb2c7473d577618109a9d2c2a8448a0e756b4402c7c0e280fd1160f20b9b384224fa2ba06ed2274852b15e1b35851ab6e8a5bcb646ab45a85744141970f6c5af2720fedb56abdb65603588d73109630baa73f773f260c63d81c9137100b1322d7c21181285b773b7c552a4000cdb2830e28daa17ca1db9bfa0226e2c1ca720e7565e80bc08f1c742e453fb2230138bc430335c2965386323b269922e5713957057311ba3394320096075b492b641369236134095d728341db3aa13ec453eb4b9c986085e23453e878e42d20c9af4376d092da16c8a9afa9834cca64f16b2b1561a4068c0245c4b6e329fcb1c0a9b15660485672ce70f3f17b486586597e8aebf9987af18bb2ce3267722c549a8519527515f4129ba5c986327996c38babd95cedfc1305f4378fd2c8b6761a24334192d47596502c86080bb202946f34c08d7e201a3ac937844b181d739b9807ea3d6792cac7a7a1b4ba7fcb2c5833cb0101291523208e7bcd486737b982c1136381be16f75202757fbb86970194c4a32eed31b01ccc5a2f0534bda8ee61b0f4a2023ca58b415e59a8d9bbfa9964cf765b31fb0c565174bc7b006855c9747a66747e18e954444dbaa8272a15cae2b7749b08df9811e8cdc01fa46a362052f50aa06eb2249287abfda0aadb2e719f1e1afa3c29d7c855a6ca27aea661f40210c1c629f611343240b3968238746a245ace3994bf88b46893eff1a3a6096166e0bb7341900e73bcc36bb92d3e539e456bed44b84cc00bd836081704ab2e4065559896657ab31c60c3564981453b58bc7e238fc5b778cfb4aaba57417009a789a13bb075b6d9541692b85ab52961fe887c29289923797d18ab8c9d35230624b004457f749497267a2efd15fada244c1d35c44109add503328d063b7e8c0fb8c66bcb42c8b1c1eac421563c232e579431fd9ce4d572904577811e23af28109b2e419515260e0e1bf4a969d18a4378147c0334a5886046833ab8d06c78041c6b848a43810208a5fa0a202ec2320f4adb15bc299c6649c694f76311d8c0450ca829c3545ace79a33e0942f133c35e1e6be342c30fa9b8debe6820a3cad5a2995414bb7f0744a22194435ea8e5a534dcb8c754bc75444093af5d72490a3468bd06bfd1442870701896a4f1fc11fd5c8c50580cb06192ce7b90f81d920a3bcc52ed02fcf703428c22c8ae25fa56085f8033c972b47c61998db005b019032d7a83660803cd39014bb3165c94b9dba1c6e38abbf6567cd513283174c42bf4605b3809c29dabf149a650bc906a4cb1e33a469bff3820713040aa067701282cc1c6826008f8787cfd0796bcb568210e088f649349ad921b9349cd4998189b4b945d92ba6bbcc972155d26920e1a756bce6441748c41c6c7373723a9c00434e485216d92dd6884f6113068fc2b798790f41bb3104a513f0e413ced19303f396e5f7c72612c4f4112f41518ea77c850f7b8e64d1b6df73a40f87b2945b14b8275aba42b455253b9d522263e4bddd6c24222062ae68bfe5ba4193195ed026712e729d59c7a1f519a9c65c566a51504cb93355a33d83acb62a268e02874c67c89530f914761b751f03f3d2307ac9ede742f51bce4342afd3cb6ce2ab83fea96998e3f52b93dc875dbbd503bc67beeee7f1e46083868f96edb9ec3601dad0e40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd + +# Official test vector 45, seed: "d3c9ebba6eb03ccb5c9b9d2c8d7f0cfbbf50841e24396cddf0e56525b38918c2fbe6c34cc1b93f7bcd4f4d5777e1a488" +seed: e9acbb774be970206c3a738e243b420805a509fa59fa902044be2f0d013650d2ded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 +public_key: f39713c311077c359f42971b65463a8de1aed9879abd512cb55b6e44f5c690e0a3f60768a778cc9cac5ad6b897379507e3ccb994956284a7715970b0e3f6189f0c66d99c667119b82d87a6507141cfdba46fcbafa8a2a1352139b1024dbc64388a3275f34180ffdacc380132eff35eaf788364f3aafdd6af9c02cfa396592282cbfa110792f87b6182b2f36a0a895c0791276d789976cdf09d2c16a32aac669647219086bd36f6bf631392510c0e0970007a88378b647b52fc20ee9148cd4575bb8b31b06449994098bdf77680a48ab51b8e5732545d6b87112884e35a2302f60358f651f8a71c0789018dba79bf5298a9f6ad16bcbbecac4f0cc9888cf55bbeb38264c885ce098fa80463f63806a544bfc194b77895a76b22b81b1098a8c3819e035268d22f4ba0339067ab3bb30e65506a86e74fde52afee944df4e4c745f9393ad59117dacf74a407c236b8b5a2aa11b1c9f86163df31129e885ebf68040f822314c2bc4dd12751851864d743ea49b68a93212d392845ac46f95715796a488cb44072ecceca89878f37b51d662d783900b6341a65d894771476fb942ed058b15150bdc67a3b7f4cac93733f735b81f8dc4aa5eb1288d761b0b74238a5cd73c8bd2457bc195b785fd31804d654aae06eaf5b08a365a472503809b416904162c17942fd27671989c553ab5137488f385b7b9519a69cb496444a7a2db607adea5c3e128bcba31f586c5603f953f4fbbb4381cadcb88d6aa7784562c6ef302ed398cc2113abd257c9554818c8175db54baf20024978e167620b672b28bf24465d2cb4cfc6c08739fb9696bc84fdd76b136b39b85c7deb4c10ff59337b4112e32bb25a665e9cf624baa86aacb2a18ea3cb67462874117445f913558c32e5eb7e1329cfc2d99ca4d83007467b80d74d2ec9832a5785fc7293eb466d55cc8904874bca5714c776579b253f86b17187b9c19d702ae65aad9d7cc23afb041e593bc41308572825a76b4dfd51a2bafcaa10390a76e08458c384cd0089668955fcab00082759de9147bdf581aa4a81f8f82bbea84d255b43e30b6728fb7a705c0aa96b794c7ca28730c6a1b1b2c1040fa24a98ac862ed74453c03a3d842cb0bc87409a09456c739ea08717d7a1061041c424d13bbee299c1ab1bf328b42314263f186e5b198bd5b1712c04402bf849df6473b8e78c4009c944d05277c68d6eba8555ec48139560922a7a142632d4168dfbc6396d0046c53221d43b7bbe01bdffcc672f214217679853d3c0939acfa7b45ac81b145e5bc7d668a4466156faa6a44ae2b9cd6caa5d42cb1c2ac5aa847cc6501ce998b2896652e2c901483acdffa695cd1625b124a8a88490b12b72a5cbcb67a29aa955247fd17ef46606ab5b5fda6ac39edc0128e46310903b32435e2f02158f678462f2bb230246455b7d307b5bdb40375c6cc507987ef616816d3a97545bc0f6e44c025c961cca33a828beb6480494cb9049bb2e0c8734437ca0745b55174b67fca6abe743c7f9793219a19a88298211562e7ad85643b0b680c957eb6b740ac142276822900110f3998f2b043816c9216c416d64e482dc1053928722efda8c35bba98c563eb4fb280791a9a330968cd29360860737d3cabef87d158419cd8794d15771588cb049f393d3729fe3276590488e97f00e63b6cdb760c22fb853352c2eaaf7340b204d6bf8cd186cab5f786e7f967a4d147686a690ca7308173843dbc0bb17fa4ab2788436f43009827946265e86e782b97b2b27b87ee2c0ba9ff23d6d620ac02124189bb008d54da8f0118a081a70040b0c722a7b5a97194c5641078b22446d7ce9b66ab9332f2ab85d7320fc651eebf8b93b838421ac6818f87673872582360bcb903ab70972e8e589465660e6e4b9295675416547c277827d667102c99297f9909548c52621846f5978a5d6971ac97c6df5cf1a3a42717194f112093b73642cd757b541c6d5094931d97afa952ba80024b5d76caa088577f24b86208da3448dcce24769dcac3af496b4ec8e634294c7d323a85128d4e20dbe5b7bbafa8fbce12131f0663572a4c1a4885ac49cc607578042c0c68853b661b452662ae194512b208435a72ebad23519e07f96f59edfe2a5297c351bb38773478747732d9841b5c26091ce45559d7184e1ca01b7c388a8cb030a00f66b47988c2d7d195332662cfc7d90b279248de101f77e30 +private_key: 744900d5a1cc90d1baf5c17965a200ad563be74168e130481832184937172b780a1cb0249bc3ac8fe09d7892709c70bfd6496041ba834bb1c291d5a73368944d13561790a20603bf8b97929624c5f586ceecd1636b6cb09c99807cbb9befd3b2688a29a63120132b05b5420a0d984b9368338710b29a4c5a4102b25ce23414e3563272c2c91a33467aa665b40b7a18ac434ba8e1fbae3a7cc2493b531c6b642759625009cac7751496b18127d33d4733af3fd461c1cb7531223945eb1be69c8486a35bd49ab075fa6227465f97ea2efe552db4329bdf66259d091956a41a1d938940998c8e83329ae0a8309b521af642b9466aa3a52a4572a00cd6acb467bcd0a0551f4538fbf78db2e0668f47ae9f65094d4a30814371e20350066bc797777d79135d9f104f773289c2c20c55d4bcfea1a674f454c87ab9d809a1ab91a6e13747438a7eb7f814464426cda6c10d9456a34c66dc37766b87cf01a4a38e45154bf96d5a5617a9e3a353a57706ab5911dc3f50a1c9ccecb4590bcf8c4765fad91ef119b00c027cf5f30bcba608fc4667843891934935c49c8a945553575c67a1e3c80df48bdba8778865ad972bae7733c8c4d2787609d062b16aa61c25564955213a06e8d021d631bc032257d0618d1b0122491b8c9df8251886a2efeba199a850ca41bdf7c0362293b80a25c247820571eb6d6d798da2c207115500a1441977a3362a2c1366a15cf60a6086258d35a695690a53ee6737cc76a8edd47795ca913daa42d762996e4061f8353be362752fdab69a571fa02671432615834c8008284293c9c83ca3b1eea330a91a7522aa876d37cf7da439e2b31db5c903b17b9449e397659bc7dd668f3e9cb2cd877c57fa3ee2fa9a3b3c9d22e5c02a48ae494142e5d56664ca0ffdd15be6c4c2a063907e842b800912ddc9141af93839b17f37f3725ce36b9a7631e6a002a7676df2d7a72a740302fa5ba55a41fba7953a5812ce30823195cf26b8611c401242ba90487ca730472f30bc8975d78741051d91701b7fd707b7846ba16874a8984446d017bbf2357526a4882359edda98570b44aa2b1d968c4a2de84ac78330d2d2725f7a317c093f42809d3d26092936330eb51e93132c975096df35506fbaa429c67ae6b75d24b9a510ac2bee812ced4a732fd1198fea3e135ca2a97657608b6944181d062b1df05679d8d847e50a8668fc8238caa884b31fdeb3adf0f890a4956887417d00376543fb8588fb4433156ca8c7152ef466b9eb7534e9030980ae47d82c04f55d5764827fe036fe58c6ac9aaae51c115ed619e5db99f3f6143354903bccab9cb5448f9a8e76c3690c76732db1757d9742aec5334f79c0080a9c0f251b34f637f80253152b4c5d8124f302c3f6e15ea5d09758e42b99f15427ecc63976a0315644ed8ba516429a1aac16aa2045fef31a4a68c737f206fb26667a403c3af01d82a191bef752976c1962b53b0228513a3026a0ba7358162dd8885aa3dc31e45b72346a055026396b405ece0579bac0504082589023b4e0aa77b07366ecd188381ab2b9ab47287c44c14a36fd1095453b2b3b0a816af1c62ebb2e023247e4983bc983b867460158eaad4876551638ba5b528e0c74b9a081537b7bce3e1540062b93fe447873523766f2cfbb4c46e3c3751057764568033942b89b7325e639c318f63aacd82139192c81e45f4484073a540df8e459fbb9afcba59c167a1ecc71aae7473c8d9cbfe41cc27db6b72c804f64cc1a015018d212c9dbe320aae4423596b4fd544c6bd16af096af352c18a8dc1d68fa29df7a454d54b92bcb21a74cb107153b8386285c0479020c04ac0b59ba8392bc976c046995ff606f2aca215ababd04f031e52032f6c08e63149dec0a590a4c49ef55533735224c341baab9b0fc36771790c0301638ad09882634871196b55e87a5e7b9348c8a83d9fa0b1be81232864342262f57f063d38940947b48ae840dc42b27d52a01f4c624196c9198d081992934777653fb533e525cbec4591844485ee6a457f4b31ff94927713c9392627a0e676231318f18e084cee43501f0bbd708196dba67644145e7561fc1fa2c5c4835c76a5264a25d96d47138e2cb3d75297345910c164ffb30cd4c26cd1189264a602a3397aa6afbb27dda27a6566e9769a5f39713c311077c359f42971b65463a8de1aed9879abd512cb55b6e44f5c690e0a3f60768a778cc9cac5ad6b897379507e3ccb994956284a7715970b0e3f6189f0c66d99c667119b82d87a6507141cfdba46fcbafa8a2a1352139b1024dbc64388a3275f34180ffdacc380132eff35eaf788364f3aafdd6af9c02cfa396592282cbfa110792f87b6182b2f36a0a895c0791276d789976cdf09d2c16a32aac669647219086bd36f6bf631392510c0e0970007a88378b647b52fc20ee9148cd4575bb8b31b06449994098bdf77680a48ab51b8e5732545d6b87112884e35a2302f60358f651f8a71c0789018dba79bf5298a9f6ad16bcbbecac4f0cc9888cf55bbeb38264c885ce098fa80463f63806a544bfc194b77895a76b22b81b1098a8c3819e035268d22f4ba0339067ab3bb30e65506a86e74fde52afee944df4e4c745f9393ad59117dacf74a407c236b8b5a2aa11b1c9f86163df31129e885ebf68040f822314c2bc4dd12751851864d743ea49b68a93212d392845ac46f95715796a488cb44072ecceca89878f37b51d662d783900b6341a65d894771476fb942ed058b15150bdc67a3b7f4cac93733f735b81f8dc4aa5eb1288d761b0b74238a5cd73c8bd2457bc195b785fd31804d654aae06eaf5b08a365a472503809b416904162c17942fd27671989c553ab5137488f385b7b9519a69cb496444a7a2db607adea5c3e128bcba31f586c5603f953f4fbbb4381cadcb88d6aa7784562c6ef302ed398cc2113abd257c9554818c8175db54baf20024978e167620b672b28bf24465d2cb4cfc6c08739fb9696bc84fdd76b136b39b85c7deb4c10ff59337b4112e32bb25a665e9cf624baa86aacb2a18ea3cb67462874117445f913558c32e5eb7e1329cfc2d99ca4d83007467b80d74d2ec9832a5785fc7293eb466d55cc8904874bca5714c776579b253f86b17187b9c19d702ae65aad9d7cc23afb041e593bc41308572825a76b4dfd51a2bafcaa10390a76e08458c384cd0089668955fcab00082759de9147bdf581aa4a81f8f82bbea84d255b43e30b6728fb7a705c0aa96b794c7ca28730c6a1b1b2c1040fa24a98ac862ed74453c03a3d842cb0bc87409a09456c739ea08717d7a1061041c424d13bbee299c1ab1bf328b42314263f186e5b198bd5b1712c04402bf849df6473b8e78c4009c944d05277c68d6eba8555ec48139560922a7a142632d4168dfbc6396d0046c53221d43b7bbe01bdffcc672f214217679853d3c0939acfa7b45ac81b145e5bc7d668a4466156faa6a44ae2b9cd6caa5d42cb1c2ac5aa847cc6501ce998b2896652e2c901483acdffa695cd1625b124a8a88490b12b72a5cbcb67a29aa955247fd17ef46606ab5b5fda6ac39edc0128e46310903b32435e2f02158f678462f2bb230246455b7d307b5bdb40375c6cc507987ef616816d3a97545bc0f6e44c025c961cca33a828beb6480494cb9049bb2e0c8734437ca0745b55174b67fca6abe743c7f9793219a19a88298211562e7ad85643b0b680c957eb6b740ac142276822900110f3998f2b043816c9216c416d64e482dc1053928722efda8c35bba98c563eb4fb280791a9a330968cd29360860737d3cabef87d158419cd8794d15771588cb049f393d3729fe3276590488e97f00e63b6cdb760c22fb853352c2eaaf7340b204d6bf8cd186cab5f786e7f967a4d147686a690ca7308173843dbc0bb17fa4ab2788436f43009827946265e86e782b97b2b27b87ee2c0ba9ff23d6d620ac02124189bb008d54da8f0118a081a70040b0c722a7b5a97194c5641078b22446d7ce9b66ab9332f2ab85d7320fc651eebf8b93b838421ac6818f87673872582360bcb903ab70972e8e589465660e6e4b9295675416547c277827d667102c99297f9909548c52621846f5978a5d6971ac97c6df5cf1a3a42717194f112093b73642cd757b541c6d5094931d97afa952ba80024b5d76caa088577f24b86208da3448dcce24769dcac3af496b4ec8e634294c7d323a85128d4e20dbe5b7bbafa8fbce12131f0663572a4c1a4885ac49cc607578042c0c68853b661b452662ae194512b208435a72ebad23519e07f96f59edfe2a5297c351bb38773478747732d9841b5c26091ce45559d7184e1ca01b7c388a8cb030a00f66b47988c2d7d195332662cfc7d90b279248de101f77e30087881ddff4095efebaea305138bf83f0e3071f5494c3ea5bec8f775128ce60aded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 + +# Official test vector 46, seed: "6b3996e8bc6f52879f2b7be012c44ad555707cb7e5fd8abb3457a298336d6fdc9eb7853008ff13201d5969a315c7e493" +seed: c1b3cbffad4b306f9af0cdd3028876486dbe858875c9b6497fe20172a986c82b1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 +public_key: 2d661f371b1f9a3c88556374af9b603c8c1db100ac3e600c042672bcd971857232fbe70e3c1280f5ac45d0e819a8495d2da89ef5086b110773c7d1539ec94a44fc0cd6f4a39362731f527de3f06f4a78b0dfbb94e4977a564c765cf8ca68658fbe27937a7b15a8671cfc8b3e779533d1b5c092826b3038b213550421004012a4cb3f12478efb0c92bcbdca4259b153584bd4b65a6b8d66f578f6f408bfe246deb5304ce5487b7a95c6db5605818e26d2cf5fa6adabea9e3a48b6f889305c016055db7a02a34ba5e10573143ddb8659fbe25c7b621e3494aecef037effb36b2819a1816788a6b410918745c2a423285c7e0021cb8c8793b60b4c9061a39f97ff1212f02d387d224b0ec258268a374b6e27ac9c4598fb78c387a7daa439280d79a6218b3ceb0bfc2e685bad8801d92b5b1a42f64c8890709c58c95bd8ebc43568c33362a53b5a12c052489bfd806cad36dda117b2180b68cfbb317d4bcdf745c50324e19dc7b17ab7f31649a57bcce91fa720052afb0b0ba5e8b57a5e4296b1c390da9a4f76a869af0b9389c0ac381aeae0a779ba588ff415858b3300d71b99fc172de950a95c3a61c9072b6f2a7cd9245da690128b9c597c44903837b8a9443865c785ff6bc05854e1115b9e3d7a70c7c40216ca48b1c6497062d61fb8cb29c71e5800b8e752e70b9a8655baa8408742a511ede8409301620f3bbc2a27790dd7058841432cae4cae719740835571ce65027e74d85958db506a8e9601c1f5ba5728a6e710a3d3d93748a7a640c460167482dcd6cccfc238326171927c6a72ee7084ee97d3e7519744ab8df651b9b2b69d4ac7cdbd9437849114e29550ba3321202906e9331bc7ccbf4571da4c6ae1a0b2797ba4bcc75398e18505eb02dc760b00f687c76f2a35f707f609ca149b4be233b3ba4739e19e4462d78950138cd1b210904b10a83356156a63631d4a6193c68e78642e7c5c0daf403e8520cc2f7438ae950d4136ad32684f2881c50c1a508b0442bf6c92f030f82653578c79fb4eaab1cb60df4870d6966ca5bd8651400a5a6d424749c8cc6aa6fc90b6514a8274e633aaa74435542bd2eaa354d65a32591819b8233834abf1391470085c9144b8239390f97624fdbc645d3662f8a7a2b7ae412f8525884081b3282390f8c35e2379aa5d234dfe9c0c94098ecfab31dfc315413c62aa80fb8a9ad11d070d02cb192d18f3717c1375401c0713437b0868298205162a78f8b00fb46ca2ccc6dad2717185b72793b2aa009419a6330ec508c8c325110c53fa0512a713c500631b36ac410c5a966edf1656419740baaca6719639987bf5e17444b4122650c87c884069fc52ba082837158b9bb85b2c961268284b5d8636b2ed3bd1781296de78a1cca44502a779b2bacb6f86d676355d4d527bd050ca8d33a12d059e6d697f986177e1b95424ba97cda6b6ae0191ba70bcb75172c354541c7742556c5fbe591f33b9624452392412f3859953ac21c50d5a445a34d94d492afbb01a84c844fd582802391f4f4a5d012a8a62079e254363fba52c83a399bb3398f6807e6f03f74f68fc788187be6bcaa5491ff666c98e43c3f860470380768f70b4987c6ea10411ea60fc7e8cba0b1afd72a52713a41a2172804ecb9fb60315e37c544555a8aac8089081c6c2695af8011bd991e1ddc87c841cbe0c0357e04489785222930a5d75b81cde91e5804315bb30bc93294367a4623a0c4a0ec8ddc436c7992b157039879bacbcb590490c28ae7c9142267654291c06a75237b24b8895404cdf32a073c4922c202a087bce07aa5708816818564c68237136c0a98119c2a6244a59051071414425b9230a6113cab28b06a058e67b16b9b3287f001422c276c78aaf608820836c863a1555590bc802a70abda52e4c430c80992745945ebd343277c222836631c652dcc425e1fec6f22383eb78c9b47967e865c6382231b4ff42b94f281c4e9a849477706c339a48ac2c69416d1e51914c751dff0b74cc657a8d9b0d0e21cb2c3a72fa241338b11f529a0ea9cbb8bd310203b29775867f23b7a6ed35890f3014474b51a578110cb1e1d052d2cd03a19fa06f1750279476642752934201c0832b80b552c7a4b4eb1118e2466624588ac1d0148c1c0484352479ea604758012b5d49e885965bf6ec29407a0d9d3f1f08826007a5a3d32062d2a775728c35116642149c2d449 +private_key: 74e23285e187f22c6a1f0b5258081ca00c59ad4a733b6c168c39ae4994c7cac606422ab8ae07968a652c7cb130e3a1b5b65077ad348f2b213ef368c46c1b45ecf9c58fe49a86396285d554b157ccf2142864fc88df377c2bf758a3488722dc9111b39a90c58d29d18b0373801d761faab0845e78bef3c0b91509c7c9e44cf6a74bcef19de93538567564855981484ba0dc5a0553e921d302449663cce9c3aa1fdc3db0129999e011ea3172a1a3a504e2286550cb86156a23c74e0b2b2750648a15479aad813c4a576fc8f70553a34287147580b6a62957a26306cea1571963d4171dbb38448763b664752ce93a21d84101f79a66bb1e192b2c4ea0266d1c869226b0e110975bfc13e6e384c1883a76e5258c129185ec036a6063f182a35c3ab843523ca5c9b30b655eacd967847c86de2c169c40866f8b798555497ea94cfa99591c1c563264b54d369f0297168339379310be3354baf9d1ca6d7a79a2d0517e39c0f6412bf64bc57059b05db3888dd35e5af70fccd55e38e053b453aa43d0027f8ccfc0e15da1c91e4a0b3b4bb776df88aac1308f444856f3e888ae4753888b017cb342e70c78318a7a3a8142bb28326caa32809571d547c15b86437c655ebcd48bb2990493001ef4bbc7b4a02008396755b911e1782ddffcaa92a34c39dc8e0b9a48a33a252d6c547ca341f92727b5b40e92565ac466ae58000799a534b8277591e99876b4925a9a046644056a625a7a51431aec58c5d6b98eb4a0f40724e24477f6ebc52ab7859987871e623e93a0c081c9212e5b33e1c813c6a81980a5a670c1991dfc721ec62dd771cc9a30bb7eeb67ba71ae78c81cb802743b3589e661c4af476bb5753458db8c7d281575eab3f9216307a02f95147eeddb5fcc76c158701bf8a44d3890b65e6b43761a757221a70769b825b6cac8fcabb1dc155af64b86258f0ed5260522188ffb472cf64b82cb68cd41b986b560bd00b6cd99b805531076e25a2bd6204e264114602d6c1bcc5e9235c85575e66b391bba0d4297c9cb5508dc5cb3200b092400ad59508d7fe14703d433f980a79a796f24b82c60741a8276257c5b5311d85cfe1b8733eba10e305a3ea4affa5304f98a438325647a521f1b154a6547cbd8457545dab60ea7966a03b40e7c28ec1a22c4757a3b3c7dbb191895dc419cf609adf40c5fd86436506894a3932f1666ebd14a74c93d5e93511b5401fac02fc7280d088057eae2b3c457168b1b9e25fa81ffaa9d30c27dfb250dd5f287f281b12f1381657918eaaa067ccb07bc0a67bd4827368c7c0b4cb45d403159f9cd8de5caea6b5521ba173160561c9270ab15c85351cd46e8c4a3810587702f3f0b6921367e4648b654fb53d9627f573b936c6bc050a34b7e3c7c379a4c744b80230c35b784bf9a4a3fbd8a892450b4739488912b2b822b3664c25327d051c0236e05487671461264e2643c0aa7ca89a9c85867c817b714507c2b955371583611e77c783b68796267259638d4001e0555a19644b70b8527d9d66a5a3036e348cbf21200e3e07717cc83d0866ec7356412705706f192dbda8f43ab30d3f14d059190c1c95bec240e0c3271c2b755942183379893fb6cb0c0075c7b67352a76bc2bf7390c39c3768127e9402fc7e2716431bf25cc8405e23bb5830f348b4d00fcc1fb44389100cff58a3409174fcd39c5779c93336a053d04531942133fc92d66e3855043bfdea0c0f7b7795b0941db78a52d6708a83913cfca678f67000d873060777ed6f0906976ad12946b70c9b5f9e4a95a8b1eb5b733d3d92921cab8bb610b3ea33549e6371ae507ad34170fb09ca9d65c4360ce42ec63db51b1705b19205b01688aaaa7c00af97c93fae66dccf93d44a61ab5381326982ff2a73bc5b19e17b126c7a652f36154401a6d28006a383841f4d9998a06152d0b58c5e6457b601953536693918768cc1ec85b1494255858da9253693293848bf8c14a6bd362a2b91137cbadfb82a4b1f80a3577869b50716983730a31ad1574a3f5a62ad6635ad11c4706ac6912248a6b55cba70658deb6336e7344f1535e195722486866475bca60c8ba89cb591afc603ff0cddfdc55a705beaa1b99ae725a400454f6874462713e12698a55a267a96092be913b3472b0d9fbaecf20169790368f010b2d661f371b1f9a3c88556374af9b603c8c1db100ac3e600c042672bcd971857232fbe70e3c1280f5ac45d0e819a8495d2da89ef5086b110773c7d1539ec94a44fc0cd6f4a39362731f527de3f06f4a78b0dfbb94e4977a564c765cf8ca68658fbe27937a7b15a8671cfc8b3e779533d1b5c092826b3038b213550421004012a4cb3f12478efb0c92bcbdca4259b153584bd4b65a6b8d66f578f6f408bfe246deb5304ce5487b7a95c6db5605818e26d2cf5fa6adabea9e3a48b6f889305c016055db7a02a34ba5e10573143ddb8659fbe25c7b621e3494aecef037effb36b2819a1816788a6b410918745c2a423285c7e0021cb8c8793b60b4c9061a39f97ff1212f02d387d224b0ec258268a374b6e27ac9c4598fb78c387a7daa439280d79a6218b3ceb0bfc2e685bad8801d92b5b1a42f64c8890709c58c95bd8ebc43568c33362a53b5a12c052489bfd806cad36dda117b2180b68cfbb317d4bcdf745c50324e19dc7b17ab7f31649a57bcce91fa720052afb0b0ba5e8b57a5e4296b1c390da9a4f76a869af0b9389c0ac381aeae0a779ba588ff415858b3300d71b99fc172de950a95c3a61c9072b6f2a7cd9245da690128b9c597c44903837b8a9443865c785ff6bc05854e1115b9e3d7a70c7c40216ca48b1c6497062d61fb8cb29c71e5800b8e752e70b9a8655baa8408742a511ede8409301620f3bbc2a27790dd7058841432cae4cae719740835571ce65027e74d85958db506a8e9601c1f5ba5728a6e710a3d3d93748a7a640c460167482dcd6cccfc238326171927c6a72ee7084ee97d3e7519744ab8df651b9b2b69d4ac7cdbd9437849114e29550ba3321202906e9331bc7ccbf4571da4c6ae1a0b2797ba4bcc75398e18505eb02dc760b00f687c76f2a35f707f609ca149b4be233b3ba4739e19e4462d78950138cd1b210904b10a83356156a63631d4a6193c68e78642e7c5c0daf403e8520cc2f7438ae950d4136ad32684f2881c50c1a508b0442bf6c92f030f82653578c79fb4eaab1cb60df4870d6966ca5bd8651400a5a6d424749c8cc6aa6fc90b6514a8274e633aaa74435542bd2eaa354d65a32591819b8233834abf1391470085c9144b8239390f97624fdbc645d3662f8a7a2b7ae412f8525884081b3282390f8c35e2379aa5d234dfe9c0c94098ecfab31dfc315413c62aa80fb8a9ad11d070d02cb192d18f3717c1375401c0713437b0868298205162a78f8b00fb46ca2ccc6dad2717185b72793b2aa009419a6330ec508c8c325110c53fa0512a713c500631b36ac410c5a966edf1656419740baaca6719639987bf5e17444b4122650c87c884069fc52ba082837158b9bb85b2c961268284b5d8636b2ed3bd1781296de78a1cca44502a779b2bacb6f86d676355d4d527bd050ca8d33a12d059e6d697f986177e1b95424ba97cda6b6ae0191ba70bcb75172c354541c7742556c5fbe591f33b9624452392412f3859953ac21c50d5a445a34d94d492afbb01a84c844fd582802391f4f4a5d012a8a62079e254363fba52c83a399bb3398f6807e6f03f74f68fc788187be6bcaa5491ff666c98e43c3f860470380768f70b4987c6ea10411ea60fc7e8cba0b1afd72a52713a41a2172804ecb9fb60315e37c544555a8aac8089081c6c2695af8011bd991e1ddc87c841cbe0c0357e04489785222930a5d75b81cde91e5804315bb30bc93294367a4623a0c4a0ec8ddc436c7992b157039879bacbcb590490c28ae7c9142267654291c06a75237b24b8895404cdf32a073c4922c202a087bce07aa5708816818564c68237136c0a98119c2a6244a59051071414425b9230a6113cab28b06a058e67b16b9b3287f001422c276c78aaf608820836c863a1555590bc802a70abda52e4c430c80992745945ebd343277c222836631c652dcc425e1fec6f22383eb78c9b47967e865c6382231b4ff42b94f281c4e9a849477706c339a48ac2c69416d1e51914c751dff0b74cc657a8d9b0d0e21cb2c3a72fa241338b11f529a0ea9cbb8bd310203b29775867f23b7a6ed35890f3014474b51a578110cb1e1d052d2cd03a19fa06f1750279476642752934201c0832b80b552c7a4b4eb1118e2466624588ac1d0148c1c0484352479ea604758012b5d49e885965bf6ec29407a0d9d3f1f08826007a5a3d32062d2a775728c35116642149c2d449367bf894b2bffe5be757d54623b972fdb9093b0f54568b4f6f2e688f86ab2eab1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 + +# Official test vector 47, seed: "730b65ece22de27d573ce3aea7cb021c415df210d228808d91d4f380070ffcb0778b683c71d4853deb569c822765f2a3" +seed: ff7495b8575b5a98e4fd21fb4c3e58cbb60f14bef21aa74cf8802e3153f14807bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d +public_key: 90c537fb848ea86c2ba929c7b97456ac4b5c5007b27631aadde902ae1917dba8cf2936427fa22504aa2bca42bdacb21ac9a497eb1cb8a4b096e69294620386abc48f389c7f14380b03b10c614c625427c8cb9962f3d75409d923a56717882169bdab15e4426dfdb26072952255eab0380a88277ccac1d24939c98900d0be4570b3df596aef0a1747b2b0106c31e9aa9164f7745de23bd1cb222178ba13f7c806c0b02ff9898774646417bb2fc3153167c1eb707655c548b63caaf3fb3f37771be2fc972d03bde5286586d406b00902dfa0897785481b95805ab79dac44233af99ed3f53bfd6cc36af1cc79006289563456fb71b54c6e5e894f47d715ba062e010841a9e67abdbacc31dc373ec88ce8eba2f96381edd02fd0b88b47888f5084ac264c755c62a663ca9e30bb2bb8c89dc2ba91ba652fb79008ad91090c0614d6c7c674139ba5d57d26dba05e7c47e2107aac4cc28405a7d0d415e2472f66c40d49e094add494c19175886474b5a6991e355738c66d9178c94bb4c05912bd9d709290a8b562a358814a14c50750d17054273c7587b7ad5e403f231964bb40014fa7121fdb74dc23875a148f0f021a8ceb3cbde6842714cdf1008d85b0af62e65ccda27d9fc2a12e415801bb22a865b861aab5cc3c9093c3164e6b436a3475e5359bb8c241b635c351ec3614f7a225d522f2a0b7b181a1f7a4ccc858014a2222ba5b19767154e27b2667e90aea352ae7d3c68e07b7c4d0482ec38aa226ac4f2b63a8da4be57842a4a65b6e04c2166327be09a30128bcc33c154031b94ee13aa5d60f7708347659b4d73bc500432bf2401861c183c732019576a672d0c10d5c18afe4364e9ccf67d670b29283d0f0b9f91130a0437d7450acb4d76af99aa4ea287a6bfc73fbaa3207f58fccc775a811a7e6a0b7a63bcd87f04f1eea0d57ab7735315324282b4818b8d4346b0ecbcea3ac9c0a7bbc17a955617570a511447a9b8475f7c602135f57255e2412cb6ddb0d22c30159b43b9dd58066d81d77f7a4e263603e193ebf671fa3283c69e71a4ac433297867da2b2b7eca19373a9b4d3897689031e58284ec8779fcc4cb742b8712b11a3d143b02645a99db61bfb19c26a5902f7b3d77302a9ab059350925d8e1a994b586ea777697c389f9cb6e25817e07c5716db9ab63f451dc89a852031bb3352e8ba53643c509ed8590694b6a07340ad0fb2f1788937a0c45cf9a441494ae447c44c6917f2d7b21bdc6b7d3853bd8e33bc7ea75e62535f95096a9d0930cbcc0a210c2f5b81090d20a5d7c0346bb43ebe6b77072859f13a6576c72c0553da80a4ca8f03292d86a98246151960e4b15b758b28e2ad2271c9ca70f92061c8a560be21a2d967c0ae1b0ca446a987bbfd888ce4ccb725b95050d03134f3441f853935255bce8473e88397d5eb4cb8d6acaa6bb8d5f5003a560b08c89ac890b77aa16304f5cc74822764d82823b317572c5bbee018eedab6cd93caa924279ca8932a8858079197d412b7283e084a7fb9dbef26d4530c1b6136619b06fbae495d207a3c326910a5c2ac9c7b919498bef5482532535d2551fee95154b2082a76c0d3b16ced88993697b344cf7be4742a3180c69f6fb589ac17fbd03489b13a0af951ec1d9776efa82cfd0276e58c553b2046b4594c9621e0aeb160d7923bbfa53f7c9c2a4a077d51a6f38473fb6d7a2b2b99c5414c5e646734fc48c56c18d30997d8073afcb822680b321c40696092a7a9f9072cd034523acb15154354d697f27a312348601d0d1170beb4759510330cb0adef4cf31ca82f7f15bc02310f22c92dcbbc059e34771725685955dd5490331e0bd99829692275598a77a310243a6225f392a9f83910afddc172d124cd295288a77ae051031f898b42d792ddfe8c0902944b68043bba48a25c27323f07d4f6a8c6ecc33f13948ad12463e834d23514af69954395a144d1a4df8f526c0331247d16d05e185ddf04a94a92047bcc976bc17f6b7488dd390eaac4b608390e9fac6c2829eed0903d544b3ff08b2c27a779198387a8112e374ce4f5b0f5f898101159462929c5417bf373420811b4ecbc034eb41aec0888a30976428e2a54463072f3c9b55341147c464dc88b55daa1fa7920c22fb6c8225b2ccf47692713ded1c4a76a479bb111e56cf782a6cafe938d47de49bb47e732223b0bd1bee7bf690d1857044eef2aaec +private_key: 3642bf33d87830ec6d87e3ca5e4432a0553fa502878f93281671b93e87cb76763518841148126ccdfb6e8723aec1975cc8a3971e24a8a9149a9957620b0b211c4c3f942a21daa5182c63049bac82959429f2c1b4f4b1204ce35c7c683db5127a89699e23588d194574e603557d811af3104b7f23627dc046ecd6aa633a20054ac997625147a2cb6bfb62e44bc7eca7a019d41ff5ac505870c0dc648e209111ccd5827c750eb676058c6a14267ccb865b3b40da4e2476aff41b9227e18274c96e32966f2eb611fcfb3880159e6f2c62a9565c8e6c3a84bb530a13895f841ff354b798299ad3b68ca32838ea6b3920b3b6f0415b7a750295d33eae09022b8c17d7ac040df6b298d7bfdad78f868cb97d178d5c80b27b69ce03d37f3277661d9b9340f347bc7296d310041c996efa841bddd592fe4b480da657d47bcb4d147c112243f15268340b14ae26742b813934c26be8204ad984863eb44c50c510a5c5872cf334275c5bd2517c55772e9d5020e8093d5f21264929b1c7858b4f8745ed0b2c9bf9671d3c085e80804ad730b8e0865b82a6d6bb1595331a0a05567bd3af6a641918019d9a89b08f227640182fb8c7adc6278473b2b8af4c4c9e6b8f8232215d265f433c7357fa8c91751f6cd08b678240c5da1ebc38ce3f2735d3320713ac4301ea1fdc1990b8909cb718b6344c45a612633376bb9e003656ac347305c3aec055689c696eb01ff62b3a4fd0272b10cd778572667702fa4c2b7ce5305c413d91596904b872a0b051a255af18119d00e1a4654c05259cc16663674365708843c20df18b95d212efab1dd9485dc4426782fac42e258fa0cb8bc3896a507107720246b972c457750bb98ac03c9375820046fa7021af606c9344599ef233de25667592b423e456a659c0389b86b27a0eb4675693c029c489a4daa1b5ecf37afbf80b8fea5cd9d37beadc9fd812428ec68484b8853cc82f019c9a7419115e8ac0972836d42bb459611ba06b82a59592f5440134908f35d182c0a765f9f44b66b293f471222d648989b61b7eb8586e004e7bf789838500c2aa2de031661d4b7c46737772f4a86df60e050164a1a998e996042e22b7db76c3a4575f99199c5851c75f901085b21f6f693b5839557f259194590e84dcbad233bd9b670049d47b67d91616db28dce64ec552712129a2abac23b4922fb4cb6bb3e54f7ddb093c5811a638cc3330a1170c46de338757f445df01aa42e056e6d59daf690d3b4961365a6927db368a5633a4ca087fa74020b0b7884a0afecb5bb3d124276b38eb8c19c7c8afb616a854b444f7f0910ed6c3eef93722c827e80297e7f411b90b41ed430258e091e5ab151d961af1e51fac9aa03172c147d69e84274b3eeb949c8588edac38b400c775849cf162932bdb6f80fabba816bfcaf51bfe9174cfe0191084004486814e938153478728041fa06a78e1916d20465370e55aab5c993ef543c360bd082c7298250678f979904b402de70dc4f9403e805b71955039b539784b2e79173d870363d8b677aa5c823b8980062ca773ba71bfebafca6399b40c8109f4848db6cb154a4846cb9c638c4e8b10149de52667a21d1af419de65c030cc7bc8586c45a615dc346ea4073f4eb131e0607740c73ded62c192a413e955146f86ab9386156b3ca110295ced41977b147ec9e73f934ba396a27b6d6c37d2460e4e15c0af6a090cca7947c0103489c7dd9a56dfe62f5c9692531087fb7b7a75206765f34316378673c52b6279b0db8c8dd74049052aafa5467ac9fb7686cbb904f24afdebaaa8a7928de03c02e35c14e4102b560d8831c62c44154758582bd901ed9c963fc558ed076c107a87f0e49bb2e1585e809ba31788a925588a0c8fbab37b3bd79268eb359982063775abaf9622024aaa9730cff8411c04401cb58a4ee90b83ea547b1fe8ae6c3a93531511298331ffc512ec195f982c39c9394bb0933bbbfb1b46fa0c2dbc120c8acb03953e188a6ee6b2852e79642ea3261c8403b3497b99ba7b25fb99949300dbc9bdcbcbbd72ca935242ae35d27cd66003f22c4918ac412f3304ee92b740c86cb12362df19353438569c16935edc8af7b6091cc97c59996ce174253e9b2612a54dd9399fb11a5d0fa3af913bbc66e1874dc7527381b593966014fba090c537fb848ea86c2ba929c7b97456ac4b5c5007b27631aadde902ae1917dba8cf2936427fa22504aa2bca42bdacb21ac9a497eb1cb8a4b096e69294620386abc48f389c7f14380b03b10c614c625427c8cb9962f3d75409d923a56717882169bdab15e4426dfdb26072952255eab0380a88277ccac1d24939c98900d0be4570b3df596aef0a1747b2b0106c31e9aa9164f7745de23bd1cb222178ba13f7c806c0b02ff9898774646417bb2fc3153167c1eb707655c548b63caaf3fb3f37771be2fc972d03bde5286586d406b00902dfa0897785481b95805ab79dac44233af99ed3f53bfd6cc36af1cc79006289563456fb71b54c6e5e894f47d715ba062e010841a9e67abdbacc31dc373ec88ce8eba2f96381edd02fd0b88b47888f5084ac264c755c62a663ca9e30bb2bb8c89dc2ba91ba652fb79008ad91090c0614d6c7c674139ba5d57d26dba05e7c47e2107aac4cc28405a7d0d415e2472f66c40d49e094add494c19175886474b5a6991e355738c66d9178c94bb4c05912bd9d709290a8b562a358814a14c50750d17054273c7587b7ad5e403f231964bb40014fa7121fdb74dc23875a148f0f021a8ceb3cbde6842714cdf1008d85b0af62e65ccda27d9fc2a12e415801bb22a865b861aab5cc3c9093c3164e6b436a3475e5359bb8c241b635c351ec3614f7a225d522f2a0b7b181a1f7a4ccc858014a2222ba5b19767154e27b2667e90aea352ae7d3c68e07b7c4d0482ec38aa226ac4f2b63a8da4be57842a4a65b6e04c2166327be09a30128bcc33c154031b94ee13aa5d60f7708347659b4d73bc500432bf2401861c183c732019576a672d0c10d5c18afe4364e9ccf67d670b29283d0f0b9f91130a0437d7450acb4d76af99aa4ea287a6bfc73fbaa3207f58fccc775a811a7e6a0b7a63bcd87f04f1eea0d57ab7735315324282b4818b8d4346b0ecbcea3ac9c0a7bbc17a955617570a511447a9b8475f7c602135f57255e2412cb6ddb0d22c30159b43b9dd58066d81d77f7a4e263603e193ebf671fa3283c69e71a4ac433297867da2b2b7eca19373a9b4d3897689031e58284ec8779fcc4cb742b8712b11a3d143b02645a99db61bfb19c26a5902f7b3d77302a9ab059350925d8e1a994b586ea777697c389f9cb6e25817e07c5716db9ab63f451dc89a852031bb3352e8ba53643c509ed8590694b6a07340ad0fb2f1788937a0c45cf9a441494ae447c44c6917f2d7b21bdc6b7d3853bd8e33bc7ea75e62535f95096a9d0930cbcc0a210c2f5b81090d20a5d7c0346bb43ebe6b77072859f13a6576c72c0553da80a4ca8f03292d86a98246151960e4b15b758b28e2ad2271c9ca70f92061c8a560be21a2d967c0ae1b0ca446a987bbfd888ce4ccb725b95050d03134f3441f853935255bce8473e88397d5eb4cb8d6acaa6bb8d5f5003a560b08c89ac890b77aa16304f5cc74822764d82823b317572c5bbee018eedab6cd93caa924279ca8932a8858079197d412b7283e084a7fb9dbef26d4530c1b6136619b06fbae495d207a3c326910a5c2ac9c7b919498bef5482532535d2551fee95154b2082a76c0d3b16ced88993697b344cf7be4742a3180c69f6fb589ac17fbd03489b13a0af951ec1d9776efa82cfd0276e58c553b2046b4594c9621e0aeb160d7923bbfa53f7c9c2a4a077d51a6f38473fb6d7a2b2b99c5414c5e646734fc48c56c18d30997d8073afcb822680b321c40696092a7a9f9072cd034523acb15154354d697f27a312348601d0d1170beb4759510330cb0adef4cf31ca82f7f15bc02310f22c92dcbbc059e34771725685955dd5490331e0bd99829692275598a77a310243a6225f392a9f83910afddc172d124cd295288a77ae051031f898b42d792ddfe8c0902944b68043bba48a25c27323f07d4f6a8c6ecc33f13948ad12463e834d23514af69954395a144d1a4df8f526c0331247d16d05e185ddf04a94a92047bcc976bc17f6b7488dd390eaac4b608390e9fac6c2829eed0903d544b3ff08b2c27a779198387a8112e374ce4f5b0f5f898101159462929c5417bf373420811b4ecbc034eb41aec0888a30976428e2a54463072f3c9b55341147c464dc88b55daa1fa7920c22fb6c8225b2ccf47692713ded1c4a76a479bb111e56cf782a6cafe938d47de49bb47e732223b0bd1bee7bf690d1857044eef2aaecfcda92e6bdb853f01617133d65b67c0d6cc83710c053a18263aa91dbdbef7b85bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d + +# Official test vector 48, seed: "5522a5a891a9a9b5514f4556afd8df40b9cec63a01492f0cb8a1db073a285a963e4a9ff2376c88662f7d8d241f8acf17" +seed: bdc3fba1c32751139fc45bacffb3ea97f26573d804a5f27a459293d95190ed8efd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 +public_key: 12e4c27fd191ab43b4aa8a66c4326e681cbe1207bc2d5aac1ac59ef0a8aac0c8b91f7c23ac35abf566c75ad3b01d6b1dfbc29db4a334b44c10fc25808f9b8acdb4a2ba67528fba8ee942a895d5544857473459763e92174dc640bf284908023146fb553b1b8b1e99a7446c5320ca17eb6bc497a330ded7b1016a1c28d23964f24f2188b2d7ebb2bbe954c9d9271baa7e429c02dab991dffa49410ba6ab20829ec41b03b8ba8756b5cffc640e928b24361f0f007226f2b5315a8bdf8a10aa88581ce5a140588b69b531f5112610c5306fe41d4c018302dac1dbf69863b6bf99d892072591a0168decc69f89823999095f256c52c6336acb063bd741551bb855678c4e8bf90191a38c2fc641957312ee758e73d88d8c8937b9c6912c59ca13854a4209924db71fd8b547a076a340560155122298e91328a71773e1cf117920e5faa8fbd847fdd027f734c06bec0bf479b97cc11d626122d1049e96c7643a6b323aa93e10521460c7193d7c85a1a8969dd0b0835b64ade28df777a1c70646b8e55578ba9da6d82a96b5bbca1b2e9346775d24b987535882468b3e9263a1c74288695722142d9ba23fd747383832b2a3b6720b21cfb5f00a178c51a878992d666872685cb1f346c77b86a0174ac955b06df96ba094101330958452074c57377f520bf0766881752d70c0a778415f9bd3b5d276100f00ad563735cce0952354260c153c3ba227181a21b9f8166dc0aa42acc241f6051624b88d1659a2a81f9cf92ce82c76dadc27bc3b018f953a5af66ee21401c02a4e3b8b4188a36be3818ccb82686cc21d50614f1f000721f8445323b4920b3d929c1362d91ef948371b531096186034d61f0401c09679c54c5a993ce85137f15f50466bace29512e260f990764c31648d6649d23c800750a08f759fa84258515c4625b856eb368d917c36768a8a1471a376ab367aab46295707e94080bce47dd4633c2b50ce0b19bf47d4a68c3519da21c205b0c9128606ef8a7405ac525a12b0c613c7ae96aca34743ca9679bf078d5d016405f336f6088a9652204154648e4b3f6872929f02670c7962f4b08bdda9beb2a33a2babcef40cc4de288460d0188fc29ca85b212eb40f7b158aa4a38710e0608eb150fa5252860058ccd822618961cf5c18a01bcb2eb92dda84597fe9b345e06d14a597917a4748949ce5f29e60a7ab29740242166c5a651501010bbbc73926a7c4d0dc6aa415240e0c0769774055f9882aa4330dac1d8500747bd5264bb7625c2ab58e7917cd122858135ec09a3f0128837669bb37911903854d57da6957d70407c752a20951535503847b17c536a69ac09a84ca64633a4fb9c26221296190b27c03781729456f6653639fc036fe17c4b66b390b2204a1361555323dd307572b2caf24148dfea74eef05880205c164da71980974240b2167b3c3200745ce778a4cab786a0cbb132188158c3111707058884358db6ef3d04480d7ba058c7e52e4052c1898e2918d98590716a80bd9a3a4c3d53cd8111005709e708b04c6d18bb1577219a39d26a496582384f1126fe491a2dab7b8adb4a07563c687c4a6056455113c6fe9b7bd30cb7fbed2839a93a584c76af5c1422dca809cc623079ab65cb146a3011c38c1a6f3db134b72583ab9331d418c7ab513d77b91a612053f217d406babaf4170607a1979ea637f8875154561f69870fb1682a62052fa36a21bf94fb4f24ea54c1658d8bea4e2813707981366a8d9655400db440db8c27af57ebdaa8ed897c7594712e6881c81f5b79557834e53c9b537ab69942830fa60a0c8bc7518192e52396ee15d945b9f8df019f8f32513817117834a9af58ff761a1830798edd48fb571be338b43140c44d17b272db6aeebb0cab160342b49cbe2b47a6a5006b5cac09d763f168c6a5f329b7d1b87dde69542a4437b8c426890b4a5487ab43a98ef94667efc881a943b33b42c776b3f8af853fd59c2d3031fbcf541247100d22219e67094ba89791186bc8b7b536fb6438aba5275d234adc5a9ff129fa7d1b5c5757483f02980fa40882aa0c72c0ef233b0c2931f1e15cb7d528b471c50903256e54a87f8c16f02b3bb904133bf60136d603bc57c503420a8b6701aea4a3b4052334f75bf820c2ed9890bcb812b20d9031c269af9598acdeb8a52bfa7cb804627acfa20285753264f3df670dc445647c881e112b71095f10934 +private_key: 58b513bc1a5f348c2e22a0a8c99bc5178a736854b211c6b4e191b497f288755843e306c1527c87ac5393c98c77669a29299c660bfc0d67453de33cc838d2c0e2d561e54600f89951f7543a42e0891d846f347a0e2fd956e29072d7b1565be798d3a295321cca8209aa439b5374602da08792d6c814fe3b0398a2743cd258a8e505be98be9c5c806c7007abbbcec5caa7151363789b22d6210e519649c34c56ab5b7a8318944370c30d4c16b226490d738282e63881e0b163e11b4818083cfc7593b068eb7c8711ab06553164382a87a683267957485df51dd5f5b0135bbd09e0be01594b3a134761e3a7efb567c4554b0d4b6ddabcc50c036144b1b88484a19ab8a94e168cff620330647dee43b673664a01407334883cbd6379a61a1c7b755d28c80921416edec02ca326c8fae52b4495b991335d253387682716f283675ae96ef431b98a821dda681f35c71f5da09ffdfa471d915574f23391072c9d8b50b9e06bd91055395958bb911a399c8ae9eb2884154cb7d59aa36a4d05b5887a23962260a057257e7e815859f53c85059760857882ab38fd8cb7a2514d2745867fb348b4f1ab4e8c0f200261e68474dd45394ce01c1e4a07799ca7dbfb5b3c51c7c1500edc768bc389499427955868c21bd3a94c3694d588700da5641b242edc152f1c1c90e3ecadcb04b8512342a76027c98a6af96a0958f775abd890fa586d81497013e062af9aa7e7734017807d89076a102bc46924b854d32476b1b6ac2cc922f0afefc6c90c6814a1819e96b429991b1250817a9187755805956d28a7cccb043469896d326df5477699ca89081cb44cc492ebc6671f3108f0795cde1422d3fa8dffa15e3d6040300b462f57986b355d7fb12454bac56d66aca19240c70445c166cda05a8d5a0763034387b50c32df573e61c921cca5b26ee3095b0739cb7cab1756a097b4c5a24555bc4a84681772b1ecca530a41c7db1f2c49c2aaca0ee363ca9a29b1040a5c31c608c235543d36abc90a36d8110badf3b10af267f6cb11ebc7c0224175d2d82a0df8485a7a754319952da50f48563937517fd4032935830b47f907a9489011b93a0e9a3d999b3d13416be914a4d9a4196ae573d73a4bf1099dc3c19dcd2b6cad5999a71a7e25717729495597997112f23f38d54808bb0b86c2558c83bc5a290b0ddb26a9493abfac76e9d25fbc888928417f5c2a1a1e34a355343a45c4309822cd83bc55362a7b8ee521fc816bfe22afc047196f87b9eb9092700723d3611dc5a53e8f9108e5064a9183aaa252ae2024b33ad93ad1c96796603a8538c7f1a3af202024ce12cb4025192744bafa338f325c10e1544e18a92509639bb62c4372ebc39965cab0d1317f91bf1b46a4523bbca018526cd681a3082cdeccce960c6d2e5b317e2568b2f4a25a8cbd1844b1dcfc32c0160f12f126f0caa3e6e37d95db68deebccde353d7ccc22e204bd8b016f9dc1bca5c8439a4cce98ebbfae4111a8776b09bc325599cdae20c354640faee43c07911e08348a17e75f483a3751237f1eb9a43a49702654a4a0f21c3d6b591d3b4add7c3320d8083c223e889080ab6b364118cdd1d42038182ce07bcd7adb2deb2531a2536d2126460227604740cf54bc513c918058ca527b48b0ec1c6d6cd4549b5c18d50a477a80cde6e87efad1284a71869d46b47f54465b9669e1ec5ed18505bd8c49bec69abee2a2c69c684db270e5a7a69846738f2a2416148098174c038964c8149f56097caf8840fca26d4f47a68d333761db2109372778f56aa0003f402b3237b079f3a8ac031a41eed50c218673b05a5757d29196a653a47b689ac25a2800c79ca20bbdb02ec6b430456435df3b7d81089cc986bdb246193bd1a153796ca5f1099d2a8c23810cf8467517085ef79b7bdfa7ba0c1b180b8312fba0999f87c8bdd518b5654075950cd27861ad55724766664d8a3468a8139201cfc9a48fcfd0839dc41b0d61798ee6180bf33335c78faa7a6e1a31262521ba7fd79a5ab0854c6a2f14265e418212324817cba46ee849713fbac9bc11a8de51376ac02c35f45e21f642732cc132745c5dd1cd1e45a31b5c9abc56055a8510f5fa71eb56c89d7685ceb4afe3255c734a59dcc2b5a9910db6ebbeaf4b110bda0270fb568c3c6a59130fe6390d12e4c27fd191ab43b4aa8a66c4326e681cbe1207bc2d5aac1ac59ef0a8aac0c8b91f7c23ac35abf566c75ad3b01d6b1dfbc29db4a334b44c10fc25808f9b8acdb4a2ba67528fba8ee942a895d5544857473459763e92174dc640bf284908023146fb553b1b8b1e99a7446c5320ca17eb6bc497a330ded7b1016a1c28d23964f24f2188b2d7ebb2bbe954c9d9271baa7e429c02dab991dffa49410ba6ab20829ec41b03b8ba8756b5cffc640e928b24361f0f007226f2b5315a8bdf8a10aa88581ce5a140588b69b531f5112610c5306fe41d4c018302dac1dbf69863b6bf99d892072591a0168decc69f89823999095f256c52c6336acb063bd741551bb855678c4e8bf90191a38c2fc641957312ee758e73d88d8c8937b9c6912c59ca13854a4209924db71fd8b547a076a340560155122298e91328a71773e1cf117920e5faa8fbd847fdd027f734c06bec0bf479b97cc11d626122d1049e96c7643a6b323aa93e10521460c7193d7c85a1a8969dd0b0835b64ade28df777a1c70646b8e55578ba9da6d82a96b5bbca1b2e9346775d24b987535882468b3e9263a1c74288695722142d9ba23fd747383832b2a3b6720b21cfb5f00a178c51a878992d666872685cb1f346c77b86a0174ac955b06df96ba094101330958452074c57377f520bf0766881752d70c0a778415f9bd3b5d276100f00ad563735cce0952354260c153c3ba227181a21b9f8166dc0aa42acc241f6051624b88d1659a2a81f9cf92ce82c76dadc27bc3b018f953a5af66ee21401c02a4e3b8b4188a36be3818ccb82686cc21d50614f1f000721f8445323b4920b3d929c1362d91ef948371b531096186034d61f0401c09679c54c5a993ce85137f15f50466bace29512e260f990764c31648d6649d23c800750a08f759fa84258515c4625b856eb368d917c36768a8a1471a376ab367aab46295707e94080bce47dd4633c2b50ce0b19bf47d4a68c3519da21c205b0c9128606ef8a7405ac525a12b0c613c7ae96aca34743ca9679bf078d5d016405f336f6088a9652204154648e4b3f6872929f02670c7962f4b08bdda9beb2a33a2babcef40cc4de288460d0188fc29ca85b212eb40f7b158aa4a38710e0608eb150fa5252860058ccd822618961cf5c18a01bcb2eb92dda84597fe9b345e06d14a597917a4748949ce5f29e60a7ab29740242166c5a651501010bbbc73926a7c4d0dc6aa415240e0c0769774055f9882aa4330dac1d8500747bd5264bb7625c2ab58e7917cd122858135ec09a3f0128837669bb37911903854d57da6957d70407c752a20951535503847b17c536a69ac09a84ca64633a4fb9c26221296190b27c03781729456f6653639fc036fe17c4b66b390b2204a1361555323dd307572b2caf24148dfea74eef05880205c164da71980974240b2167b3c3200745ce778a4cab786a0cbb132188158c3111707058884358db6ef3d04480d7ba058c7e52e4052c1898e2918d98590716a80bd9a3a4c3d53cd8111005709e708b04c6d18bb1577219a39d26a496582384f1126fe491a2dab7b8adb4a07563c687c4a6056455113c6fe9b7bd30cb7fbed2839a93a584c76af5c1422dca809cc623079ab65cb146a3011c38c1a6f3db134b72583ab9331d418c7ab513d77b91a612053f217d406babaf4170607a1979ea637f8875154561f69870fb1682a62052fa36a21bf94fb4f24ea54c1658d8bea4e2813707981366a8d9655400db440db8c27af57ebdaa8ed897c7594712e6881c81f5b79557834e53c9b537ab69942830fa60a0c8bc7518192e52396ee15d945b9f8df019f8f32513817117834a9af58ff761a1830798edd48fb571be338b43140c44d17b272db6aeebb0cab160342b49cbe2b47a6a5006b5cac09d763f168c6a5f329b7d1b87dde69542a4437b8c426890b4a5487ab43a98ef94667efc881a943b33b42c776b3f8af853fd59c2d3031fbcf541247100d22219e67094ba89791186bc8b7b536fb6438aba5275d234adc5a9ff129fa7d1b5c5757483f02980fa40882aa0c72c0ef233b0c2931f1e15cb7d528b471c50903256e54a87f8c16f02b3bb904133bf60136d603bc57c503420a8b6701aea4a3b4052334f75bf820c2ed9890bcb812b20d9031c269af9598acdeb8a52bfa7cb804627acfa20285753264f3df670dc445647c881e112b71095f109342b8799c6382723886f5b8371ee58a35fbb48022d9c107ba6fb6dc5fdbd4ff573fd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 + +# Official test vector 49, seed: "1853e72329353b3f89ae6a1b1ef700da8ed3c10d19f9e61ee9252e28ebb0e15802ee43083a12a0b7527088832605e3ab" +seed: 447f6076a627bbc5ad7773fbfeb14b4ba9ac43a0f8b99fb6dcd5e452aa3c47ec20a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 +public_key: 96f73135fa51010a83491b407571126d85002a60cccceb5393b459cb39b4dcf175b2134cf515c06b38cb0ea33d8c34a7283b99b6d0c9e90825159cbf4bc2a1c0f131580557f243184bbc7498b39266f669fc161150482de480ab196ba61dc526f8a46a2ae3336a7abca9e2743fd654e965b3b33ca0b9cbc8c96095d78a971a7277496a8c123967e8c204765a864890b762d34e83570a8dec5cd25333276555e7644eeb5ccf8004579c357481000ae9a930a7313468d3a8b6d5b4da4a558a7c1318da670dec758c98c5048144843096c2b781d73a9f215c2ca0481ea5aca259997c8479256841507717b7dd01cfe1755f8ac2bf1008c2c61b7bd13810787185cdf16a17c2cf00bab7eab737a641cc12ea6d8bc802e0661730628194c40a7865a3587cc2f5b0ac1d328307c55388970b96c4969a533e04b425e528c713d41821ca6cf1f5bc74e64859c49b914563ad193c626c6dc520143a755132260d5940c76e20a7f07987fa7c1a4d1283bd700c9759871f973fa6d94fd88015cffb046555b36559420bcb98ce617169465770135b15612a9884586d0232d44606632c50a9d5beb3697669c9940e1739508c360505248f501dbbbabf70e7cffb24652b782de5f4a310a7767826bc73886e60e51230068dcfdb2b3ef246f7701d65813e54d78ddbc34cc9bca025914883364c60576a5e0c5a863a17a9872b818c070647170cc46f44880d4ff46d68c4694442433c823c0ab39656b715e0443e8eab14a990c42a031ebefa6cfd54c32fe4521e218396d53c5554c60b93cf2f1cbb0062c6101686e5738896621e44b32449c297d968b16c80ac7491279dab0f84749842195aa3dabbaddc2457fc8b854752d33cb1a5499dd53725bf34bf34a68457e57e4b270fe0f07323275fb99b78aa90af27480b6440217b01867a1b7a5a5885fbcb931c524395cb11a406a492c4251f9c09e14a45e2b86a98c72f1532664879a2d5557fe9db6bcb2ab6197892e5686b2e1ab35a3434a77a65ebb6189aa00e19fbb045a03fb767866184c5c2e2b155f465bc7a135ab25cc5415b0a42aa17595a32e2a370317414913278c18837f346c3a54be5722520315332b2b43ed4089b427cc8e24f10f17610e40882b4c724c48b6315aa6f0c64a4032e4be75bb6b0702a2cb7a11cc6aa14bccfe91af25642513425ca475fd7e7c387214294a36fff09bb1388a5322910b9906491bc923a2644259086bc5131e5d67794d91f65b24a0da06ceeb63239456e6c3b1cf4fa04165879b5858bf60664aaeb45b3a238b1a926489a2d395473d3a5173fb37a51fcb5ba0c9cc3eb01debc383260b4f5033bee258f66a504e64a74fafcbd1a46076ea00a02246eae52ba6591a8ced21b58971f289847c508768dbba5ab1921c14982c9525ab4b64285723954d33c8a35396db137c0db48a39432da0abc3857c5369b236bc03ef562a8a5e4211986a385b8ab4d1745742411a9712256636e62976f99a72d75c654f8574737b6ad34c129a2eac22fe166b2682840f7043d4339bf699b68d51ecc32974c161136272f9012219bac6bfa8950c6016207dc6566d20b916974743290f0a52b8be51c9f3c239e8b6842278417a05dc789bc43fa1ee0671a51ba3301246ba780ab71295cbd20ada7a07e5593a3933604ef972a711349a0678a60d2af2434b17ee940c067bd89496c90d4b9903b9d146a49c36138dabaa405499ecdc02f791562a5d446fb358702b2a5eaec93b7f4756762b3c17b0e8d48ceb5d5244965168fd9c3e6495d1fd578ba2c168805897cd351202059b5a4b96687465741b077677583ca7411c4331583308da00ab5045ec5943beb2800b30978c31031675a84dbfcbe6d7b27b2da65152c692fb8727a485b9641888b1b36a25491ac76045792278125b0a3735f3e759901507ca4a2aa12dcbccf3c35c68873518a4fc778201f0b960c7b551f038c6201378ee101948629dae0364e38ad079320d2cc35bfbc8ae7cc446526447d60b19a36519daa8331a45f1e4308d564979a5179073130594cc5fc07a1fb6b5966277511544611e018f3f8b76567add2c94a0da8502063c66c54c3a50644e43b81a93c7cf0409b505c77f5d06d34432bec389a137b6fb9f18da05426d03477ff0b8185327c37f449c8f6398680c78ef7d26c51bba9665cf58b72cdfb115bcc2a0715b5b4f40dd01c7a0585bbae73 +private_key: 4ccb897e841627f45dbaa7b00b670c7bb17786a89a4284047a2527c9464307c2b1d4072f357a09df72a768b752e8794218f94bf07a6d288507fad04380b13e397c80ce956e3e96a604d668530b20759438a83b35219a6cf39a44d2cb697453265ba04784501bd310560e7cb693a06944cc2ec1fc1201e5a105b239d024a41ac50103335c170684c9f03727185858506ba29c8d8c19a150bcc6d8dacc1054bd7ab4c054d390ff8484861c8c4b823d3c3b11e31cb2e4dbbc7592ca95e983aee58ef4b6ca6227a2d024ba7b383b3fa752d6c9be8cc91e6905619ea17c0a1b24d2586e91e590ba51c1672442bc9c7af0e6bece484a3b96a4d76467bfe4b199d22646fb86c74864b39a60d8ec41e7b5adc791c1fc563ff2e14ccb8228f1944cbf1aa2f4258d6fbc5ea7c46282d109b8a87cfdfc576d74263be3c866311a2ebb1ad5628e14975ea8da31b7622245330788c340e0b1094ad8c2a1a1ba14663d749013742235bbbb6045733e7e6519cd1c8593e1baad83a50003b73900bd69e6cdaee53db7a7684afa3b4566375b693c1410aab368015e12517cb04b3eb6b824767724ec7718a403e5e7178c01190c289811b716c79a846133243ff383ede452f15b7912f0b763c08de8d0a2c08b67b3b41f39b63bc7bb7601a0ac7fc03dd4a656dfc89179c34f05976be42896ffb49759222f259895dd433ed73b4e77a715127a3876849e1b039cb8a71ba4f2cc640b93986974a46c15974b7ef3b3745c3893b5327848590ac2dc44b5e032591b2acbb055f2d336abc062a1ea11388432ab2a7e402a62a4ac1ac5503ffbca57f2505a951c0ef2b2bfd36ac5e4a0ae116c189aaa95202cc280e08dfde77952bc6566513878c4077bd45fdb87520478073501818d2271324820ea038f79059c871a1b19625fb60a9e7c806dbc444fa8261c1540c890d315b1ba2bc4857445a539af555d6ce710aac7b9dc15a149d1bb356b2321112c6c530a63a9ae1d1b59dacc92e9f919f990509e7a66dd41cdedeb8252d692e3dac47db872ec36bc4513741e31a65376abe99a6d82e6110e2a5acf501e3b785088a4298639144560c6d07c3c39c9364ca56dae571abfb13bd805cfa19054e8403493f2cce7121836d01a83561d734aae163481eaf2ce8519bfbd6aaa1b29ad09f8705e8582ade2774161a2f47b03b2c995eecb024622b287e84500369ce1a71c77483d1c30653a7657f953b0503192c97528b4d92856696d256bba012bcfdbd8c3256c9969819268c40944a9015750cfc255411c196147470743609356e7ca800c2635615337b1383267bb339934c3f68dda85bb582c7bd7131f6041bb21f14aa0b25df46bcf1c6b42b1db5b604c17efd00f6b23c85a3c054c600f9c40c21d1810f6699bb8620146a4c2466cab86b1659313290d9c182da0555e417009b3ae20f6cf1fa128d86307ca75c0046c269df20f0c98342f39af8c00918f93550c668f9e6c4423f559350185494c5663ab81bce72919521baaa81680e19e38154c4e0809e64c184a9396e1dc813de849d13a7d6922cb41b2346dac86f06996f8a71d3fd09b44ca60233c9229750263e88c10264694ac305c7390e2b63d8076863865047c80088894916b54756278c6f9c0730f4abacb129842d1610db66892c52616f62cc3e26f93e22b736ca9f43c16d3826f5e324150416a8c554874d094493a135111afa6d45cf1f58a7177b242fa9e9b185eec54659c887005b702db26a05cf53dcfac6179342abbb707ea449912d9021cdc5716bb469e00baecf754cea89b36eb6b1c130f5d439b4ad903f09752effa555f182fb1c578855a44d4f9048479ae4551b61d34048ff53d911a51c547999af5aa76500ff4b8434f2043fb583e5fc5af9c73584f5065f1e465a794490a1a296bc8bd43c647e4a3283b24c4ba3301b40c462dbc20f28bbb17c1a0706a5fa084268298899f0a0fa4d36c74952fbdca323bb3adda17944ce5898b9027d876a457d066819ab43d32a9a04b2ee3378c23e6cbd25bb2b317767866406d374bcf327b1045cb96f656fae8228295156ce26dc2770ef48322972668c5c746deb4b57b37040e9aa732c79a238227723576ef822e95a6c80e6151f6523fe6db352dda9f7f613a3601b6d61719a21c3696e4c9f80500fc918d96f73135fa51010a83491b407571126d85002a60cccceb5393b459cb39b4dcf175b2134cf515c06b38cb0ea33d8c34a7283b99b6d0c9e90825159cbf4bc2a1c0f131580557f243184bbc7498b39266f669fc161150482de480ab196ba61dc526f8a46a2ae3336a7abca9e2743fd654e965b3b33ca0b9cbc8c96095d78a971a7277496a8c123967e8c204765a864890b762d34e83570a8dec5cd25333276555e7644eeb5ccf8004579c357481000ae9a930a7313468d3a8b6d5b4da4a558a7c1318da670dec758c98c5048144843096c2b781d73a9f215c2ca0481ea5aca259997c8479256841507717b7dd01cfe1755f8ac2bf1008c2c61b7bd13810787185cdf16a17c2cf00bab7eab737a641cc12ea6d8bc802e0661730628194c40a7865a3587cc2f5b0ac1d328307c55388970b96c4969a533e04b425e528c713d41821ca6cf1f5bc74e64859c49b914563ad193c626c6dc520143a755132260d5940c76e20a7f07987fa7c1a4d1283bd700c9759871f973fa6d94fd88015cffb046555b36559420bcb98ce617169465770135b15612a9884586d0232d44606632c50a9d5beb3697669c9940e1739508c360505248f501dbbbabf70e7cffb24652b782de5f4a310a7767826bc73886e60e51230068dcfdb2b3ef246f7701d65813e54d78ddbc34cc9bca025914883364c60576a5e0c5a863a17a9872b818c070647170cc46f44880d4ff46d68c4694442433c823c0ab39656b715e0443e8eab14a990c42a031ebefa6cfd54c32fe4521e218396d53c5554c60b93cf2f1cbb0062c6101686e5738896621e44b32449c297d968b16c80ac7491279dab0f84749842195aa3dabbaddc2457fc8b854752d33cb1a5499dd53725bf34bf34a68457e57e4b270fe0f07323275fb99b78aa90af27480b6440217b01867a1b7a5a5885fbcb931c524395cb11a406a492c4251f9c09e14a45e2b86a98c72f1532664879a2d5557fe9db6bcb2ab6197892e5686b2e1ab35a3434a77a65ebb6189aa00e19fbb045a03fb767866184c5c2e2b155f465bc7a135ab25cc5415b0a42aa17595a32e2a370317414913278c18837f346c3a54be5722520315332b2b43ed4089b427cc8e24f10f17610e40882b4c724c48b6315aa6f0c64a4032e4be75bb6b0702a2cb7a11cc6aa14bccfe91af25642513425ca475fd7e7c387214294a36fff09bb1388a5322910b9906491bc923a2644259086bc5131e5d67794d91f65b24a0da06ceeb63239456e6c3b1cf4fa04165879b5858bf60664aaeb45b3a238b1a926489a2d395473d3a5173fb37a51fcb5ba0c9cc3eb01debc383260b4f5033bee258f66a504e64a74fafcbd1a46076ea00a02246eae52ba6591a8ced21b58971f289847c508768dbba5ab1921c14982c9525ab4b64285723954d33c8a35396db137c0db48a39432da0abc3857c5369b236bc03ef562a8a5e4211986a385b8ab4d1745742411a9712256636e62976f99a72d75c654f8574737b6ad34c129a2eac22fe166b2682840f7043d4339bf699b68d51ecc32974c161136272f9012219bac6bfa8950c6016207dc6566d20b916974743290f0a52b8be51c9f3c239e8b6842278417a05dc789bc43fa1ee0671a51ba3301246ba780ab71295cbd20ada7a07e5593a3933604ef972a711349a0678a60d2af2434b17ee940c067bd89496c90d4b9903b9d146a49c36138dabaa405499ecdc02f791562a5d446fb358702b2a5eaec93b7f4756762b3c17b0e8d48ceb5d5244965168fd9c3e6495d1fd578ba2c168805897cd351202059b5a4b96687465741b077677583ca7411c4331583308da00ab5045ec5943beb2800b30978c31031675a84dbfcbe6d7b27b2da65152c692fb8727a485b9641888b1b36a25491ac76045792278125b0a3735f3e759901507ca4a2aa12dcbccf3c35c68873518a4fc778201f0b960c7b551f038c6201378ee101948629dae0364e38ad079320d2cc35bfbc8ae7cc446526447d60b19a36519daa8331a45f1e4308d564979a5179073130594cc5fc07a1fb6b5966277511544611e018f3f8b76567add2c94a0da8502063c66c54c3a50644e43b81a93c7cf0409b505c77f5d06d34432bec389a137b6fb9f18da05426d03477ff0b8185327c37f449c8f6398680c78ef7d26c51bba9665cf58b72cdfb115bcc2a0715b5b4f40dd01c7a0585bbae739590cca5e4b82099b66c7175c5f858851eaca730fd0c55edf9ae451e07bd366d20a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 + +# Official test vector 50, seed: "027c3d5847ed4470931141104f25b19ae76117cbb64b224ee424ffb782e9a0e988839e0bded0df666fe8e5fcbb5dbc09" +seed: 2d5df64d62cb07fe630310bb801c658dbf3d97993e68626745de39d37fbfc2b27b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 +public_key: 3b37800c878b5adbbaef794f4f24abfeaa40eb1c5763fa55b7369e5be8754beba6be9319cc3a482a53ba93c417bc9a5a3030cb2a247177eb11b63a672e0039fe71735ca9cea99168d1634df2737b45324034492e1d3c74f10239564b23e39585734c86d98118dbc944dec28869ca8be7e17b39bcb0b0e34e257bc9ba42cc782078945094eb1336e516c62b00871d12c6019700b478b5db43ac419b2c7a50442d9458ba4b853d5a29ca946d64b6a6e6cb3485439abd4a9cf34b5921242ddf3611289a72efac4101b208cb7598894a9ef1ec38e34a58b2c071b3e6738138bbaf416f246072ead83b354a0832b98b551b7210095fe9323e1f75bb99905e5bd961cd778d32c1be94512a7893c062f6a66553152d1c820b8825c25938c0348a3d2206897ab903e6472193b5c2aa3f1bfb22bce88bf3723eaa8292d5446546865218d5827a5ba0da5354e2f6c81eb96cf0f28efae54935138273447a953aadf9757319e03a6ad19d7e613c2cdc7f5a3aa1891368399ab5c5337881c782bec48f9161774686204027b6fd895ed1b800db68c2d9d529156b0a8db90f107964d8f5c860737db2a3375df20b7bbc7f1ea57ab6e2a2eb44b5f8e6980d5233a0791350f4ac23210a4bbaa928273294691b7c441edac04909472e8f6714e99bb7de1076a121576eeb1d419122d4366023bb2fd66937ed940566ab07d7b480b330937c341106c3bc01f3c26eb7388ce7404222bccd7cc42e8a56909239a2968f2da3cea3c6695cbc909ee481b4c619f1e7ae6750b4d8f691d70490134ba02cfc97327c9f14db4bbfca7b4589431e0b8fb8dc61658110dcb675dd1bb46db49605c66534ca53d918aee579557e82c733a3841a7338f9947d92d4379b3a2d47469166bbc20ecc4de2f7c768a0ba4dd788cebac30eccbdfa11ccbff61328f92739e12160b83369d8466421374380a1a2c8bfd701a869b49d09644266d300493badff092390e894102028768a4592e96306130550291ecdaab48c711e8a1822cd278b80357856a739174b3da66795fa8375333554fc92298dd92b3c962bad035424f418b9b626d32b5383005564b8cbad0915a977b1c95710ae490bfd158a2c780e14c85ef92a02a2601c3538c1297772d1045bc4811e4e7893310413b4121201eba6c4db8658378fa3a6b9b919c9247c40ef39a7d564bf13a6c8ec575fc3b58f42426ae1a4944cd638bcf8336504577c65a7b75b06649802bf898fc3337ea3f783bd58bc85e33c51c91412c09d99c310ab9802ddeb4e977a640eb05a6e01984186b62f3237230b33cc4721d984382d003a4472496c163a0c23aa7527a7a98b45260794c109c3ef645fd352b778f06c6de40ae1aac577698edc053e951931e88b75619a2e3a795d9d7a015fc39978ba6832da41dfc1aa36d53351321107d33d00d934ce079f53c1ad114b622ef09fdb70888a861e8b9334610a9c2a5614325b9265219dadfb7eec92b472c87c0f0181e73c580b9ca8564bc1e3b9b70528a30d0c54bbf48b3001c46b536c51e15c4d0844fe81bc035351d919212c699a455b7f0900121a77360f4aaf09443e9031ba9286c0ef18a72a0c6afb2b380452379fc14dde6a20cae7c703b8c367bbbf4ea43df773bd6a3a4c051caeeb66a236244f7bf5a837731655a73bf6e7a3413459cbac0dde329e59fc9521fc2009e480d82711496a5871f33d0378223243137486504a209d9012574b10561fc04deed84999baa3a936a9b1234ac4c4afe451042f828cf40c49e632c6153684448154a023684af08ce13b204ac025991c5e44b63201073f22a50c935b9bc1c488aa8a704bc178ab0a752595cfe050b341a295f9b851b67a3c09010ecf297791c746ba9247df2a1be5a82cc8f904e1553b31d53710b0b0b7372b8e9c0b7c15636097316d46587e07753ba05e03f7cb3c6c78870a7ab21ca99db30217245a29fccc3ed80364ec661ea93194d472813a3cb0203b223b909c5774f2dca50e8a9753e36c33d92c278a52122a72fe389f0f962ce5d3a1d9f5c07000919e4761a07282e016854579b1c2e7c608630c6b2a6a1bd96c71392b9ef15e04f7bcee414cf5d9a6ff701c4d2586506248f4bb6bd4ea4a45fa79fd92aecdecbf20d7ad8534673832a0d6ca13c561a446aaa23539624487767e4a195dce0e2bc6a3fd1a73e918f297aa031fcd8c14925529ed33b83ae8e7ab +private_key: ea9b6cf63a18d0045a6aac4003930bd833a2109bc026caa6b9a38261ecb70f9992ee3a47bb4335eb80314e699734098178c25f924444714a9348b980ac7699111856623c9d9f2b4f7da5cfd47970a149c3bb882f84146e7b8562a549ad16e447a7c154b2eccb38020b44c6119ce9663d34a646d6c31cf296f5b65ccb055cada93c272ac018902c1ec93c907bac9b7790cf5b2c129738e573c5d84734ae095801863b654b740fc216edd2064c230e6266454d064adc932428e6944c2a7951268f4310209cdba48262036921bbd35c71d8728e46b291f9e865873316d9c0525c702841c3acf3252bb36020d18238d36b245c08ac1e8a28b75c5b29a810d3c6087ed058cea97aadc75f28bc92bff3614dc04c825716f79b363e971ec215974277c02277322c1471959ca699aab4662acc7fb62120896b14a3a25151280e7741bdea18e32a72f0b267ffc7b2108094e1378b169093c007c0769213e28b9249acc9b2acb5f8e7972ffa629a5b40fbc9773e921354b31bad947c45d079da092b5c4b7c094573d1da2d378c8708d98e55061b9281c2feebbcb62a99b0c6a05291345b731788e6879de89d9756a8795839318249849bcf7e432d622a319e57c0a982a2e034be75771f06917a3193564c3231590c74eae7638449989f703c6a664736823e039a571431535af0211a1931177a4761e022bd925f76913c522b128fa54ea1a04a1f2196508a2d65106950437f13d463f1652691ab919d62118ce743440b273217acb03ccd67e16cf85265b67c8ee56a4cd757c860372ec1f01d7e61aacfc55f072423abcca70834b550a4bc8228be40bc08e723b37fe945f66018b6f4808257607a9612f9577d6bd86fcb3c149edcb7d8d28cb5fa63b72a41d42471a0f8b014f8315e1ab6a894b2dc70c71f782c00e52c3f1534d46c83b2d2bbf4b0258c919307e9470e8027e5b261bc36c33511299e1a990ac68b6a735c3cb39baf03af5b4206601a7a6c24011fd56a965190b0b675d33381e5320d03dbcdcf684f782cbc2b80791e00a0b27913001796ed9baeab103bdfe2cddcccb0395b441d72746b5c13470408530460b473466d6b8f69ac8518a3b26c9ca22d077a31a3640538cabbfc852d3159fc26730fc5af89c5b5200a7636e56f74f99953886f80b77f6e22055d51048cb4122bd525710a4ec272628cb50ce549342c314e81253e0cb2be1d779b82462085829bb2ccce74290e2018ba51d1cd08f00fe0870254f4a73fc637d0f5c6d8f56ca376690265c4b7773bdbaa0b08880da2d82e79c87402c38bd60a4c07e219aa30b3566b78ded73683fc1dbac43d033559e81364f8a0cae5096243f15b7bbc3bf7cc061fd2921b12a5feab37c8b402ff97718faa1ffe69122a658804310d9ba4555977b2cb5a97e14ac626fc4770fcc8c325b4e03472f8e62ae7c37918a48f6ecb15c0a01ae920a84b4b7113a74bbd39bd3318c2361401f1c15fb95875ffc55bce76c77c3563d302a2794b92dc800cf9f38c5809c29b4b7e0e38c340e458bb00b44d7a11594a87ca96bab666277970b569e5c21f574563da3dd139ccafaa29f8a79578a7afb0930be8f8914a17415ebcaf14d13f5a4037a960c70884b43c066698cb4a004aa9e32a4b1150a98b708e185a5b4ba09e4678290d33c13c14137a2b61e19495587190d34a2ed82aa0f9861b04e51344e4cb0eb60bad5010d635c4811006a130470459262d028fa6c383417ab81586ae5cdba777071d687c99dc9ab4ad21692d70679e0c4dae3b1243294146d6bc1bb4b8d6b6a3e8da24a27c62961ccef556359a9486db3642102c0c129224b2c035792649923010152c1503e797635905dc442db389acf6c30219e3a25538ae1e696b74576fa7997177343914f45954728499b3cc26c768a3d476ebd7120b336baeb4c65b72c8518357776c774cf48996d6ad205c092c9791e55c727bac7e916a2bbcf994c5f9c4330976b1743894dc024dba7997e33efd944405844c01235d4308c09a75548b43555a8a6ea0d212f5da6c8427862873149cb6c3ce7a07ea39af30e7a7505caf30762798e84bc7e965ef96c51899341567c1324b6b07a984cbe7aa6b56cd52702fb106b1cddaa02d50362cd12737308e3e93a45c9c0a3420c4b71167d9587a4b2188b6ca993b37800c878b5adbbaef794f4f24abfeaa40eb1c5763fa55b7369e5be8754beba6be9319cc3a482a53ba93c417bc9a5a3030cb2a247177eb11b63a672e0039fe71735ca9cea99168d1634df2737b45324034492e1d3c74f10239564b23e39585734c86d98118dbc944dec28869ca8be7e17b39bcb0b0e34e257bc9ba42cc782078945094eb1336e516c62b00871d12c6019700b478b5db43ac419b2c7a50442d9458ba4b853d5a29ca946d64b6a6e6cb3485439abd4a9cf34b5921242ddf3611289a72efac4101b208cb7598894a9ef1ec38e34a58b2c071b3e6738138bbaf416f246072ead83b354a0832b98b551b7210095fe9323e1f75bb99905e5bd961cd778d32c1be94512a7893c062f6a66553152d1c820b8825c25938c0348a3d2206897ab903e6472193b5c2aa3f1bfb22bce88bf3723eaa8292d5446546865218d5827a5ba0da5354e2f6c81eb96cf0f28efae54935138273447a953aadf9757319e03a6ad19d7e613c2cdc7f5a3aa1891368399ab5c5337881c782bec48f9161774686204027b6fd895ed1b800db68c2d9d529156b0a8db90f107964d8f5c860737db2a3375df20b7bbc7f1ea57ab6e2a2eb44b5f8e6980d5233a0791350f4ac23210a4bbaa928273294691b7c441edac04909472e8f6714e99bb7de1076a121576eeb1d419122d4366023bb2fd66937ed940566ab07d7b480b330937c341106c3bc01f3c26eb7388ce7404222bccd7cc42e8a56909239a2968f2da3cea3c6695cbc909ee481b4c619f1e7ae6750b4d8f691d70490134ba02cfc97327c9f14db4bbfca7b4589431e0b8fb8dc61658110dcb675dd1bb46db49605c66534ca53d918aee579557e82c733a3841a7338f9947d92d4379b3a2d47469166bbc20ecc4de2f7c768a0ba4dd788cebac30eccbdfa11ccbff61328f92739e12160b83369d8466421374380a1a2c8bfd701a869b49d09644266d300493badff092390e894102028768a4592e96306130550291ecdaab48c711e8a1822cd278b80357856a739174b3da66795fa8375333554fc92298dd92b3c962bad035424f418b9b626d32b5383005564b8cbad0915a977b1c95710ae490bfd158a2c780e14c85ef92a02a2601c3538c1297772d1045bc4811e4e7893310413b4121201eba6c4db8658378fa3a6b9b919c9247c40ef39a7d564bf13a6c8ec575fc3b58f42426ae1a4944cd638bcf8336504577c65a7b75b06649802bf898fc3337ea3f783bd58bc85e33c51c91412c09d99c310ab9802ddeb4e977a640eb05a6e01984186b62f3237230b33cc4721d984382d003a4472496c163a0c23aa7527a7a98b45260794c109c3ef645fd352b778f06c6de40ae1aac577698edc053e951931e88b75619a2e3a795d9d7a015fc39978ba6832da41dfc1aa36d53351321107d33d00d934ce079f53c1ad114b622ef09fdb70888a861e8b9334610a9c2a5614325b9265219dadfb7eec92b472c87c0f0181e73c580b9ca8564bc1e3b9b70528a30d0c54bbf48b3001c46b536c51e15c4d0844fe81bc035351d919212c699a455b7f0900121a77360f4aaf09443e9031ba9286c0ef18a72a0c6afb2b380452379fc14dde6a20cae7c703b8c367bbbf4ea43df773bd6a3a4c051caeeb66a236244f7bf5a837731655a73bf6e7a3413459cbac0dde329e59fc9521fc2009e480d82711496a5871f33d0378223243137486504a209d9012574b10561fc04deed84999baa3a936a9b1234ac4c4afe451042f828cf40c49e632c6153684448154a023684af08ce13b204ac025991c5e44b63201073f22a50c935b9bc1c488aa8a704bc178ab0a752595cfe050b341a295f9b851b67a3c09010ecf297791c746ba9247df2a1be5a82cc8f904e1553b31d53710b0b0b7372b8e9c0b7c15636097316d46587e07753ba05e03f7cb3c6c78870a7ab21ca99db30217245a29fccc3ed80364ec661ea93194d472813a3cb0203b223b909c5774f2dca50e8a9753e36c33d92c278a52122a72fe389f0f962ce5d3a1d9f5c07000919e4761a07282e016854579b1c2e7c608630c6b2a6a1bd96c71392b9ef15e04f7bcee414cf5d9a6ff701c4d2586506248f4bb6bd4ea4a45fa79fd92aecdecbf20d7ad8534673832a0d6ca13c561a446aaa23539624487767e4a195dce0e2bc6a3fd1a73e918f297aa031fcd8c14925529ed33b83ae8e7ab9b3999082be47443720bf6b573a95207d1eee1b3be613a1985b3d6f48dc648787b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 + +# Official test vector 51, seed: "450751d4401737459c6d93e6c5f2fbcc4a3af7cd7250ccf404bbb817a67bab7b4c9d0ef4570bfe25cf919da331c31d88" +seed: 25056d1b8113bb362dd979d98643d7a7ac9c4f95994c0ba060609b6d07002ff3f48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 +public_key: 96886aea374a0c4886e4185a5ad8ca7f1a7df73c6af1282397a6a9b94c95c8284a0d65c3e614cc73159fd71bbd699006d1b97da241c470aa28113a24eef9856ecbc3619bbdbc25bf1691a241414cc3a816433c6d9466037cca4dcce8851aa9a182fa9e7ecc47e42713e9f81189cb5b68b52389095544427321ac5bb12000371a1e1cd96b585223eaa02218543c6f32a777d79c3de28d13dba32818ce41d13e2eabbc3c1223eae799057c43a2977ecff4a5966a7e52d0554a8907cc39495fa80339160fce96742fe5679cd4c4648910ae0715a9899530723be9b551e404b88a1c272e72b1b3e56144a4974df799eeb20170862305e647951645de729da99bb4fe579309d4abeac03ea4d029990b3fa8464f82e4472125bfb98837e275508d161dde593b490461e6508276b344bb18b93cc3c965e084df68a68af14e6bf37b4dca585d0621a4f32263abab1684ce0b1a5fef971e8fe18928d38477572e55596e35ab6270880c2e6abd0ee9080e75850155273aa38c0bf588e02006f5837c01063360773ff79376a72380d9e123b199b561007f1873a4ddb715abc93d95c7a8549407ec94cd0b928b30e3cdb15804cad99ab2202005675e68ec6f71f70082139b42e5bf02abcd4a4988ee0a16415a095ec8b94d2431070a710d72a596e30ed4588fde91670f3ab70f35a5f0870e86927d68f641faa10f962941e0026908ea7d27084261d190cb62b4354a1c8f06ab864031341637929b1274a1c97bd62208e681f3a96333871c41916b03e668d7559fc0a67deceb0d2f818f45d82a9e4a679d76436bcbc45f1c971e966a6cfbb4e1948f2e4b0620a28d633b78951812fa15c4696a7bb17a9ddec0329e927aa1294e5b7974bbc7008a977e0e13500337cd62b281bf73920f02b19c357eb57b3c575265f1e73a16b455af856826f29be11049a7005d9aa401aff512e8f8210f296fe64ba0ee77b1734bae34000b85c609d8bcb39260690ca9b82e105746acc35fc49ba6d1461a748206361ec179990c1b2ec71387b51c1c7ed344b816008c384eba96432ed66fe4e7225c0047e2b2979bc359a891b258a2cd40ba3694086489088b42452682518ec4c1bf8b56b91519c8d02395e726ad48696d5a2809d7f3021539bbdb38bb11e823cbea2e7273742c87776457a1804b89d524acfcb39e19fa454753908813815349a872e131a5fc91c51579b3a50e9142955ac575a8a528ffb35a77a6347f119ae0fab07701cd4166a0144963ad69268bacbfdca7bb18305efd006e44f812d063b0b7e8b1fd75b5b1662a49e26324f89415a51fbea41b75485c53b661c97ab2b9e193d6f1067f518e8522a73447aa1be8af9cd722eb8653e1837279c5194eb21bc9127f1eba895f9924a254c6b38caa0907018197a771d531a506713d3434c23a3a2b996b7e11c83b97058af811e974819da2147a473686869f4d04bfcb9786a0f9723dc67e70e4ac0f565b85f4bb30ebce82b21950838a2102805550c9fc1607ab93a7e42a0c9e79611fa7829beb0254050ee730792e73975a7b38bb718ac65064ed7090471658657123e7823631e802142aa563771bc6975ce2722f0e012f555c3f021a7fedf78f51020935d01a92362dff154daafbc4ab6c8d32d2a11525a474757c690b21274b443b58458b83766df851d95214dd04bc0af73679249cde1055e1977559d26b3bb60bb306503879b7fbf0b2eb2508aef52049f43adf6275d4db027b6477d6479cfbba91ae0abf1dc8126fc962ce9921da1b0005a09c30b6894ef6b3ff79a0c088bd2d6074988ca824aa18b887073a10c7f21982f802204c220756c0bdf59ba855a63a026125bd5c677db08368b475b52c3559c3031ea56040b9590f859f6c2560f9170f5fa759068678b9e22888671cb0a693e825bafbda853c0b56b79a63aa198710b6246a4aa58b226086416d3ed82c412b282cf38c71348b40eab105ba23b2f3720ebaa6f21c9f7b23c4e324c4c3a821de7957c21183fb48c4c127732ab169f822c3003a803aaba857c6b92bb22d8c10251ee1a6838b18c650cd5b8304f886240e16c8cf4a74f14938a21a8f3e87bca0351daca3a8d5c014037ca5665a2589eb7ec6f29d18d891c0cac822792b3408617166b55cb1182341a309f86f99f86b4e7c54e6c2bcd15b15b091274f185cbf5aa7a7a8ce437adc43de798498003691147635e787ee +private_key: 09e4c3ac7c3e706ac8eb1a3c09ecc4c26a683a3b0141298052e81871d820b931a79e4a3292550098c93be9ac0d9539641825928d8398c1c5082550489e1aa671b936bfac883e23ce83b24122a28b20b5908b4c5d65e4c8322bcae55755892c8896d9ad6c4b78f1d616aa37c61f3b117ca77643fc65d74746b1110c6a0c6abec7131f79c62a5b90d6ca21139682165ac043d063b0d4644edcbc9746c498a55d2ccc1121996cd82769c9f388e2c37e7ea3b5e4e76da12c4121ab1aa40a5b8a045e5ef767ba1b2da22847424049e73ac213f7333a9664b836abb08650e1370d4e3693898a802896300bfa14ed3b62c8156f76f6c5573946754c95e238136f33709800c589c38e76d76d946581c554aa5d608d613b2756963a3cf512d823afd6d4afd428601a1c5c7de8c58d3727b8bbcd7a704b2b33b161536affc498e5d6ae2d1c9a3f9823dbb32664d36242185c6da03c11fb5e21905dd374641b569ba4d3096ac5833faa0641d40ded086973a49413d8596ea97c76f4838c37824db6c8b4310311501cfde747b4130c916927fce26777f7978f2a0a3c89c93439ca7e00121c5b2074f775acfc4239b0458038c90d71b45f83899c7b20bd91b1c697a12eb958f1618a2b8c5bf1a8b1fc765c7346b53f2c8dd311cbb8985d93e9184dd73eca6036b1a73abb38505744001260c21f123fb950cc550563c2e5240af922c5caa5dfda1afa84b23ae8420960ace7224954dc08001513ed63a4896c96f45824504341f8b8b84cb2979947a923e3883eeb3ce2f06ff38a7247504c8e1c6ad0b014836001e12705534847a676b2c824c04d71467a58cecfa97672069df0376db8c23d1400ce62f1a0c3a258b763a58077a1fa01510a8071dd939ac1183e3bf22f880b5102878b1317a67a874d8e211aec3a3adc921272e756ec16b4694c2e398798f2ca8d7a668ac51711329b30483828f41b2efdb9823a957d601381d2e86ab2502680f1004d67887a890336b218b2940eb60262f6c1593b500f45d18d2f081b5a956ef5b1817250452d87128ef0126b98302ebc3dac33780e260b61f30cb5c81bc6a54fcb362a64f804506c79922893e889bd6c22c16a9018b9a522749950bd5ac6129126dfb2409bd512f5106e3e757f749a5efef79a5949096b47686386159a47ae22456257093f27455c402574ffe725b59a7afe89b036e34e6190928c70b15f525daeb69c71a08f1f611dc84748ce219fa38b89b06a15f576885ea73a4f773932ea14823c404f2004c056bbf6463268a1a6192443dd06b92c8cb0d11bc9f0029d6b4c9b44304cec028c6e46ba3248b7f2912a1854a1a90229402035f1519535e53777a494e5da9ce02195d7646ca2993b38c409f6cb3c9baa7f461bac9a877cda431e1b5244ade7351274bc69353437f4cc9641111ab74e07a734b1f0be390b3421a598ab91770587af7f16cd043990d0d73af2e861b0f216b53865d42c8e8e1baa52735f684248f14b8020461d974c2f79bbab12d0717cf08d72c9a9f8f1c60b4c01362cb4c16620b6ac5604661728781e1f51cbfb7cabc24243235c1dcc19394bcb115bc2a2e6443527f7c446a3ac04c58de930b5f19a9bdbb34c61c3c79a2ba4760173cb55c5171908aea5c1e6860ca1898f51174c7ff50d92e87d989a36da409db602ac0eb8bf13655ea8e9b46956b9b80a4e97918623469d081214971b4b32c34c5bd9bc5d299eeff97629a0c8e935816e1532853952ae007a6e9224839169bff49493c13a5842aaa5b32d9257c30bf36d53870bef195dee5819e185a5db768e950986ca8092ca371863b442db96b62877bbda7179d5c009a9626c6c8537a114ccb571c714644bdc9449d070bd9b35078fd71e862aa59d57630b0b3f0b17361a05aba7b906f3d66c2a1c52da0135742c40501a15f4b269c66683038b4bcc9aa5fae69edbd765e8cc34c5b31f0f56008a04c137f9507096c1a173466a8b496e1c7165cb9631e0b039ea8bfd55374d674a9d2ba84dd29cd200600ff374fe128a8ee4ab3b824126ec3450367784d936ef927e4339cd05fc013d57341ac63530c8808ff734531c5e802161baa0697bb9b8f2545e36a2155958af41d4bc95e27a8ed5bc5a24386fb73ce97b628d972eec7703575c598b7a95f36c89586474cd413396886aea374a0c4886e4185a5ad8ca7f1a7df73c6af1282397a6a9b94c95c8284a0d65c3e614cc73159fd71bbd699006d1b97da241c470aa28113a24eef9856ecbc3619bbdbc25bf1691a241414cc3a816433c6d9466037cca4dcce8851aa9a182fa9e7ecc47e42713e9f81189cb5b68b52389095544427321ac5bb12000371a1e1cd96b585223eaa02218543c6f32a777d79c3de28d13dba32818ce41d13e2eabbc3c1223eae799057c43a2977ecff4a5966a7e52d0554a8907cc39495fa80339160fce96742fe5679cd4c4648910ae0715a9899530723be9b551e404b88a1c272e72b1b3e56144a4974df799eeb20170862305e647951645de729da99bb4fe579309d4abeac03ea4d029990b3fa8464f82e4472125bfb98837e275508d161dde593b490461e6508276b344bb18b93cc3c965e084df68a68af14e6bf37b4dca585d0621a4f32263abab1684ce0b1a5fef971e8fe18928d38477572e55596e35ab6270880c2e6abd0ee9080e75850155273aa38c0bf588e02006f5837c01063360773ff79376a72380d9e123b199b561007f1873a4ddb715abc93d95c7a8549407ec94cd0b928b30e3cdb15804cad99ab2202005675e68ec6f71f70082139b42e5bf02abcd4a4988ee0a16415a095ec8b94d2431070a710d72a596e30ed4588fde91670f3ab70f35a5f0870e86927d68f641faa10f962941e0026908ea7d27084261d190cb62b4354a1c8f06ab864031341637929b1274a1c97bd62208e681f3a96333871c41916b03e668d7559fc0a67deceb0d2f818f45d82a9e4a679d76436bcbc45f1c971e966a6cfbb4e1948f2e4b0620a28d633b78951812fa15c4696a7bb17a9ddec0329e927aa1294e5b7974bbc7008a977e0e13500337cd62b281bf73920f02b19c357eb57b3c575265f1e73a16b455af856826f29be11049a7005d9aa401aff512e8f8210f296fe64ba0ee77b1734bae34000b85c609d8bcb39260690ca9b82e105746acc35fc49ba6d1461a748206361ec179990c1b2ec71387b51c1c7ed344b816008c384eba96432ed66fe4e7225c0047e2b2979bc359a891b258a2cd40ba3694086489088b42452682518ec4c1bf8b56b91519c8d02395e726ad48696d5a2809d7f3021539bbdb38bb11e823cbea2e7273742c87776457a1804b89d524acfcb39e19fa454753908813815349a872e131a5fc91c51579b3a50e9142955ac575a8a528ffb35a77a6347f119ae0fab07701cd4166a0144963ad69268bacbfdca7bb18305efd006e44f812d063b0b7e8b1fd75b5b1662a49e26324f89415a51fbea41b75485c53b661c97ab2b9e193d6f1067f518e8522a73447aa1be8af9cd722eb8653e1837279c5194eb21bc9127f1eba895f9924a254c6b38caa0907018197a771d531a506713d3434c23a3a2b996b7e11c83b97058af811e974819da2147a473686869f4d04bfcb9786a0f9723dc67e70e4ac0f565b85f4bb30ebce82b21950838a2102805550c9fc1607ab93a7e42a0c9e79611fa7829beb0254050ee730792e73975a7b38bb718ac65064ed7090471658657123e7823631e802142aa563771bc6975ce2722f0e012f555c3f021a7fedf78f51020935d01a92362dff154daafbc4ab6c8d32d2a11525a474757c690b21274b443b58458b83766df851d95214dd04bc0af73679249cde1055e1977559d26b3bb60bb306503879b7fbf0b2eb2508aef52049f43adf6275d4db027b6477d6479cfbba91ae0abf1dc8126fc962ce9921da1b0005a09c30b6894ef6b3ff79a0c088bd2d6074988ca824aa18b887073a10c7f21982f802204c220756c0bdf59ba855a63a026125bd5c677db08368b475b52c3559c3031ea56040b9590f859f6c2560f9170f5fa759068678b9e22888671cb0a693e825bafbda853c0b56b79a63aa198710b6246a4aa58b226086416d3ed82c412b282cf38c71348b40eab105ba23b2f3720ebaa6f21c9f7b23c4e324c4c3a821de7957c21183fb48c4c127732ab169f822c3003a803aaba857c6b92bb22d8c10251ee1a6838b18c650cd5b8304f886240e16c8cf4a74f14938a21a8f3e87bca0351daca3a8d5c014037ca5665a2589eb7ec6f29d18d891c0cac822792b3408617166b55cb1182341a309f86f99f86b4e7c54e6c2bcd15b15b091274f185cbf5aa7a7a8ce437adc43de798498003691147635e787ee4e145d000a02fc34e2891d2047f787ad49b9adede43fc52fba6803172487e191f48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 + +# Official test vector 52, seed: "5de720f2d152bf4e1f96a61e7ae5f1bed6b8548e32638c2ccec9f43b87d1bb43dfcf334f0582984d27e440d519ab662f" +seed: e4d34e12982aeeb1d62fd488d9b9e28557ed3429292239fb4f76fa9098009acae6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b +public_key: ba96bfc11884b9304cc16b669550cc08a2828dc34e704534fcc057a45b25ca8ab600372cf6f60bfd530b1e67309d5004361acacd392d104c9d3bf66075d5949ad75815bc9517f13208068ad5250595d76caebc3b188a268312353e232cbbec0830c45b44e315b4e037f66722f2c8c58d37228a7b3c81a8914de52757947eddb3a99ad35bcf1bbe82d9249d228a15009bc2521162d28f91b70ce3c05c4f027cf638053776511fd4c24e660023720370042c6bdcbee2cc853e1345268235e1e31d41106b1c359c8c4844274a42059724b1ba455e01ac4b800d79d4050c4260b862ca9e30a3cb876852997298609c19479b7ea35691ec5de9a16b09382cad755cd1a008c06b3a5d347b75a06825d4a8077cc6a61543a6e4c362e979a6824dcb494b7f510c1a3557664b8ea3d681702932ba284deaec19e83bb4eb0b4e916670c185b8effbcba3252959714462809d54049561baa71f13ae08d25fc587a01c853b32681cf1fc906fe00c2cc58971f8863b803d9752310a18303298ac6c188b46ac03e3a24486b6bab54306fb1942b908635028238622198882989f712ed3a30ef5970528bb477ee6a670d031e5dac2557655acb2c10923441a77959923bd8fe07745988efdf48bf794659bd34cd8941733f97d85178021e8b20b185e0cc47973173c15a681f4a0ab52c5c4c6f3a2364465d3c727928853a5a55998743e58695feeeb9f06c2cfaa70679c00cc6ea329c16bb4943418d90017beeb03852400b7e87d6eb8be948303e31306a4116fea8ba59d30ab6f0a5060c2aa89329306065290466508c17eaf7687c551100a18cdde6600b9e467e3fa7b10dcba2a722347349c2ed9443c401b6749225f38195c04838ce8b96ab66cc2d7235c8b0316eb7e1ab1ca956c5780fa491a7720b073beeb48b98dc41a1b276020256ae6d85aa3cb2d60e6375b44aeb6e34503fb0a73426cf999af33e89f1f2934c3438f47814d76413b87a264ffc67263e3cadbda0366f13b82d9a789d55f05a30868c6a9b7bc7ca7e69184051d9f2abff4ebcf0e26290e69c0bad83ce3ba19d71133a0d8b347e1adeebb8a8b915247689311e5378d256ffa867fba904217339976b4af06bc3e5a9093e8e45cd615cbacf65bf1b0899da61790883ebec896a095959af55d0d7b39a9611e439a26caf8c71cb05a57ca071c719a281625c2e4615cd4b74826323b163cf161bf6a0424eeb2381df549b050bfb9628461210461a9a35863bc0103c8290244c6ea5ba381c421421c91c010645ca365549c7aa09520257634442b83e5806d2a274df4b8888bca68accbb5350743443d8dcb471e25ae4b748338a922b7e11f761b059bd5848eaa441c812951729d6e7013fa98340ae9a142b84b6a98c6577369053652b3b505d4d8607737b49fe06c5ce8b40ec680838a182e34296c317df67826f4ea16f4547b4fb9cd0778b2e5c66e1e5382db0c0c432770d82a1e20f59ce1eb1cba29a1b9d8a5e2dcba6b04022bb72923591e79dc4f0616b2d4637be08558a212166a97588e128c08579859d1012088a7ef26355fb4b83849aa3ab06b886aa45b9a1824a74b05f090baa7cf2969368e6a82750160ceb0107811543ad0bd25031a285c4186719d9a30270fe1c73ac8bb64d912dff5bc324441df18ae94d03c82b63cdc9085d073063da296627a5cc754973cf296f11aae6bc102e940740c853fdf2576c24b3816e60483448d9a28c3e1b295a4e6bb36283f4706290882b52f7babe54b95772a174a4a0a3767c2f6aa992f5904350071ece661d94c868df7396c1a1588f80f78f82babe28531d97617335cb098cc530c5234dbb4db98269d60b271376a52621fa40a464bfc620cbc08b2ab0198e2bcf6912752b39caff4938b842b1519455bca30c8b15f6e2942b1c6798b584d89382abb26af5be574fe12838737091611adf21507e6803a88570d19e34331f07766d39d57f80ceaababb0ac5a29991a1189a6c9364b93a53e73c13d91c656de3038302279de8a0d45d46715d78a8c9aaa5414540d9cc6553cc910b24cc941769ca5b8c576ae8e559969720d8048291c9374913ba79ee9cc3cc217c5f1a590a7ad9bf27b365881366c2a529a85ef8b34d64792bf786964831da9a38dbd81a573b74a8247b040f60404a038846bc2a3117bbd025b0f7a7de41806de885d79e49a5eee5db12a57b1a7da55ccb00b5b +private_key: 0b57a478859c30104a9dac5c9c4b15ad5a2c3dd362b50c7ecf4b4f5861b60c9774994752ae90556290193f02b53fc3cefdc6864b9845185a1b99745ce6120f6df5898e8682d2484fd809106c9a01283251569a67fd8692fe202995290b6c54cde2166a8926a96864c2f1d209da830832d05275101a8791a5fa7b42fde06d7109002d580701ec45777a5cef2a961306244f540cfa4120aa146269d8b9178c34b0f9086895cf4376c10176621138ad1216bb1e0a109c0cc4da4167a5fbc7497a6663a5cc2853b347801e5401b2846b7ca0233ccc78b2b79c0da56a1854696180552a05a3cbd024668e593a65143de0a969acba37d3da4e834375f564379978121aab89f2e210934c5a5529ca121c015474afc1b805103226899967c616c482462fb588bd8e90606e440046a3593f4bc1fda596067532f340469bac9e75226b328c491411b940e27d196c872d3630e5a396bb47b38a256f6b376508e1b6ef92c15915469d2b781a8c09bb5382be765af47035a57b0bc85120cf10200f98844c410d3c077e0bf7703ad090fe58a7763c77881761fe651f1b8ca7003a99d7f4b94560b0b501241f102e93476dcdd937331b6a415317df973c2a33c98d835c19b78f548b314bc5933474132f89876c9204e2221a61f81d140083df2aba9a674b088156c99a71f14674b2daa435a85c4ca2cdf4a2588858cdede20516181e3537b1bb0060b448a306c691e93aae45240800b390e77163f25b8ca78a7868c0b738a671f3a78171a931ff164b5bfa058d481aad6245757bc47e32038ac95508878070bb6061069e2a0a1369c45daeaaa04b9766b21c354fe31635189c4516694faa2c72fcc8d15c9162ebc7bbb98b07e52c296a4087ea7eb7a0ac1233ab108c3603670d3b15ac529157356139c4dc19c5ab85c31c9b3ef4911861419f821a8d6a2a191925bb76ab9f203a2e241873b264ee980267f150b9b9b836e88fbfbb79c5fc2e738ba031d8b51439834d96c75d6017f4d404a0f41d0781986e7c72a98a2702143264b153b93b05b08b414a221eafa3a733b8ccaac737cdc6497dd07b171525730978d01b0222a54450334777a2658ca37bba60afe909896f47217f45652c1b1670c54098b962e49493239b62b17365b391112110b3f3f3b6df73008bb238fb029e46c06e488b28e0d599eed122d3350c74c168e79592de7c31f443b848051c8b8bc159d301c323ac43f24c9e06456fd19b72a1c237e25f8113047ad20b686c2541850b42c9056c68c9a95c3413f61c8a713dee849732930b71f0cd65930cdaa816fc20b8db2aa130202418f94115e2b6549a01da9183524607cfa78f787219a4c88ec0c3913882429fb16961b2a8f6b298b24b2503254d6500746352030119c5c0a153b7dc204227a641417669139abb8083f0552cd2a24e3cac82899773bb77becf49aa6faa95cc230c9db01dca7094d44269c4e9823cd17f5344bffd2c999dbc011d466eaf987eb4074a0045997bd18da0213d5805afc7278459f31151c6c81a8b54a3a6562422a4123266d66bb47a1ba3089a583e517f92d3386407a4d9849fd6197581b43c3bf0afff21b14b925954459e0348ab52b5120e140069ea1f47c97d3cc9a865f56a00b1b68190ba331a1a72d06b22847af0248a21424e8c08426e3c5f40ca61a1705fc36c3a228332c1626ff9478c3382059126c9ae101278fa968ff7c3acc43b326b9d0f7baf4f979baf542bb6d04769a05139e358150210d8bc26abb209a3e17e5b6c85a5d5861906c943c3a25bc41baa292157ba5e1998addf38b6d01cc4be39c91e8348b1b38fd8324cf413125aa0c6bfd2749ff43c8edc33e4a68b0ee9c6d5ca31b6e3c2f5a261dcc804d90a3cdf09a17881a697f52a9eeb2d81f48ef191408fa915f6ac9601f19bd4442ea74c2d99505a25b36f83000236a73de7d776b6e57f7baa41257a261e008fa4f574f8f90cd9865670b280d2ba02ba647d2eb6c7e7b1b679f85c03597764a59e51caa147c63a4d9ab99815cb716593fbc898bfa9ce15f68d938ca77ba537ef1215bf160553306279dc539cf2395c004374860e812b7035fa14a2aa711eeac5e666ac51096c5210a3b744681944a5877b917f6cbb7c58123c6372d87b12555105cd773c86249ff866a24942a758aa18ba96bfc11884b9304cc16b669550cc08a2828dc34e704534fcc057a45b25ca8ab600372cf6f60bfd530b1e67309d5004361acacd392d104c9d3bf66075d5949ad75815bc9517f13208068ad5250595d76caebc3b188a268312353e232cbbec0830c45b44e315b4e037f66722f2c8c58d37228a7b3c81a8914de52757947eddb3a99ad35bcf1bbe82d9249d228a15009bc2521162d28f91b70ce3c05c4f027cf638053776511fd4c24e660023720370042c6bdcbee2cc853e1345268235e1e31d41106b1c359c8c4844274a42059724b1ba455e01ac4b800d79d4050c4260b862ca9e30a3cb876852997298609c19479b7ea35691ec5de9a16b09382cad755cd1a008c06b3a5d347b75a06825d4a8077cc6a61543a6e4c362e979a6824dcb494b7f510c1a3557664b8ea3d681702932ba284deaec19e83bb4eb0b4e916670c185b8effbcba3252959714462809d54049561baa71f13ae08d25fc587a01c853b32681cf1fc906fe00c2cc58971f8863b803d9752310a18303298ac6c188b46ac03e3a24486b6bab54306fb1942b908635028238622198882989f712ed3a30ef5970528bb477ee6a670d031e5dac2557655acb2c10923441a77959923bd8fe07745988efdf48bf794659bd34cd8941733f97d85178021e8b20b185e0cc47973173c15a681f4a0ab52c5c4c6f3a2364465d3c727928853a5a55998743e58695feeeb9f06c2cfaa70679c00cc6ea329c16bb4943418d90017beeb03852400b7e87d6eb8be948303e31306a4116fea8ba59d30ab6f0a5060c2aa89329306065290466508c17eaf7687c551100a18cdde6600b9e467e3fa7b10dcba2a722347349c2ed9443c401b6749225f38195c04838ce8b96ab66cc2d7235c8b0316eb7e1ab1ca956c5780fa491a7720b073beeb48b98dc41a1b276020256ae6d85aa3cb2d60e6375b44aeb6e34503fb0a73426cf999af33e89f1f2934c3438f47814d76413b87a264ffc67263e3cadbda0366f13b82d9a789d55f05a30868c6a9b7bc7ca7e69184051d9f2abff4ebcf0e26290e69c0bad83ce3ba19d71133a0d8b347e1adeebb8a8b915247689311e5378d256ffa867fba904217339976b4af06bc3e5a9093e8e45cd615cbacf65bf1b0899da61790883ebec896a095959af55d0d7b39a9611e439a26caf8c71cb05a57ca071c719a281625c2e4615cd4b74826323b163cf161bf6a0424eeb2381df549b050bfb9628461210461a9a35863bc0103c8290244c6ea5ba381c421421c91c010645ca365549c7aa09520257634442b83e5806d2a274df4b8888bca68accbb5350743443d8dcb471e25ae4b748338a922b7e11f761b059bd5848eaa441c812951729d6e7013fa98340ae9a142b84b6a98c6577369053652b3b505d4d8607737b49fe06c5ce8b40ec680838a182e34296c317df67826f4ea16f4547b4fb9cd0778b2e5c66e1e5382db0c0c432770d82a1e20f59ce1eb1cba29a1b9d8a5e2dcba6b04022bb72923591e79dc4f0616b2d4637be08558a212166a97588e128c08579859d1012088a7ef26355fb4b83849aa3ab06b886aa45b9a1824a74b05f090baa7cf2969368e6a82750160ceb0107811543ad0bd25031a285c4186719d9a30270fe1c73ac8bb64d912dff5bc324441df18ae94d03c82b63cdc9085d073063da296627a5cc754973cf296f11aae6bc102e940740c853fdf2576c24b3816e60483448d9a28c3e1b295a4e6bb36283f4706290882b52f7babe54b95772a174a4a0a3767c2f6aa992f5904350071ece661d94c868df7396c1a1588f80f78f82babe28531d97617335cb098cc530c5234dbb4db98269d60b271376a52621fa40a464bfc620cbc08b2ab0198e2bcf6912752b39caff4938b842b1519455bca30c8b15f6e2942b1c6798b584d89382abb26af5be574fe12838737091611adf21507e6803a88570d19e34331f07766d39d57f80ceaababb0ac5a29991a1189a6c9364b93a53e73c13d91c656de3038302279de8a0d45d46715d78a8c9aaa5414540d9cc6553cc910b24cc941769ca5b8c576ae8e559969720d8048291c9374913ba79ee9cc3cc217c5f1a590a7ad9bf27b365881366c2a529a85ef8b34d64792bf786964831da9a38dbd81a573b74a8247b040f60404a038846bc2a3117bbd025b0f7a7de41806de885d79e49a5eee5db12a57b1a7da55ccb00b5b706781da8dd5f11267492109ea905a77270a67315eea1f5c223aa9378bfb8116e6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b + +# Official test vector 53, seed: "d71729dcbb27d7cb39e9e905025d3e55c8602efbcc483c9b866ebf82326157833169243c14550ad728bd1470f39c642e" +seed: cd6a99396eb3539ca663a51e42063a3a262cc1c5a5fce1566f0597b52ad9fa325a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 +public_key: 2626cbb144988961cd4a5b3797911772787768b796a5157c180a1264c1bc6ad588139028f9f28b3d8866b8964a5253b79ae86064b5979a0b468f87ce0ae843f34765982114bf327ff08c801a3a99af0c27c72cac48614620d373b23c01d1ebbb3331c4f0ab6cf7a03804545427547acc2a467e895d75486f23cc23c779a390026e41b56cfb04b1e22190894a3c1ee16f19017d7cd75151047618b49921c8990a580a03e1656f841e95101eacc1106f0cb94dc2789bb1a2b3591134b05e7d983736f83cdd985d160a9caa210de0813ee78b411c813fb3008742f793e337a699b3a1180c5a48e12d92b9709525858a70ced2d2c81efa2401283fbca4c4b4f1904e75ad66a894aa57cf240118c73643af435f024013d6664543888f7f30327bc65e3631a4da4b6629131ec5067ec5a8c354f94aa207b587f139fd3583b3cb51e6f7926b9a914c15928738a75c9b618b250ffdecc61061618a8038b3c65841ab3d5bf203c122723b087d4ae2604f5bb6c9013c4f38903f65248c9783db79b98b9a827d528444c26c8fe408d785530d90123d30371cf46307e1c6a81097ab96280ee058d598207e666ca0dc213fa48892c3b7d5f49bdcc894f2a8659fe882201b4eace22e1713c06d74156a6a04d84c0b29f6b53fb61773d19f5cf9394dc03ba90923d33055b5c089f43961ce810a27f0878f4a77e9d60a2a1842a0450ab7208d24cc865a6393a9820b62f96abadcc0650b171b473db3e91906720cf7ea3730435f639c1ae9fac889d76bca6602ba96b0eb98aa44136cc3a978b747acba054032d36509a7ae9dc30855b2b1699628601793062c5705c5b103344c3a77947992a2071c35f6393942dba3b8545eb9a58ded8a5407a270b676061dea1c5d490f25a05c0f82750ae6151de2bf028a28657269789733f1e4c279203e2fb837e6ab1f30c04daedb3ac2809791e8ce988a4c1754c8fdfa8be0fb8c94a240ae3b1e73ecca729b4ab04044be1b97972a1a27bb10bde4240d49a568114b938bcc050b26145598905735ba2a3198e3a375b752d8f5a84004890e25916871a34469a8cdc8b1077482f785ac3e497574aca642d74a3625ca37dac98565ab6f4c95a289a434c9ce9fe61d129c073b5cb755306d47873fb186bcb86ac00be265c320c70788bca0f462fbca6db8805986425a6437304ce48d59588489561d37b60d1f171f03ea8ab817c93ea7c3afc06447eb823e630acb4213b50793457aa8f0b9b484d5830399bc2c98a7fa452fc30713fc85ad9a7707e8343e2ed113ec436625172cd4162cb7730e5f327e9566a01df27d06b460d155c8717469a365acd5ea80b935445a6610efd3062ca954276c70a8085c42aa7f82628655f97a06c098aa7ba8a1783060fb819de027dae9256e8ccc9a72539985144830c23ddbb3a1860147bcc0edb69a0ba03bf9626c1f35a611f686cb71801e130e0cf363b795bdd9c32e82978f53083262a703f85398d0587c2cca06ce1c83ffd614d1a85d437784623814d804cc00778978e0cd3e2704d34563fc23494d84b6a4482401b009b601582bf48d7521676023439ae2c48e5b54bae0c592b64d038883a1ca9a4a843c100a58d19270f8484da82ac633c3550a1634d0a7cb8bacaa19d4500af0ae14499ebad63ca1d2afea753e762246a0834942643050b151cc9aaecb587808754e2aac15d5b2c074667766181309b113211320603499d9b2a5aca065d8c088b24482200c0eb26c3f7de8751ef56850ac8097581852873b396b05ea4c12347309c7814dc89929ea6c3f09d9bfa92bbfdd0680591a69dd855269fb77e8184ddb4aa0d3b2a7013ba06d447598e95222774badd3544b6c80c229392b0caf13a94eb3bc920fdc0ad3aaaab352554a15ad0aca4d7038c208eba4f4b181e8194e21575687e55b5af0c2551acd36824c73c950b1d9a8a76264adc88e6e220396bb1aeb6ac835f2cb3167c7f4db6bf0b6552db314bb91584b86c0d7762041075a432583f8f357a77731edc1a7ea932dfd40a8ac9c09d3a687dd530ff1ab95c4e56537dc6e82210c0d3c582049a180030acfc3790fa1b437e91e1f67262e03cb59a87485658182d1a518822f678c266ad70fc1622c5b206ab7c61510f1c920db37ee852276f1961e64614ec8167fda7091988c176e893ab163e034a7e92d569882badf4976ba648396ee00e3af7f5bdb9a417e +private_key: 455c59bac459203a7beb868c8477cf5ce391d9842619abc685ea791c1c905cda7d92a4cb0560c022bca55c78ca606904ce666b79366eb2a06fcd6525f6075f80a5c23e7621965292549775e9250e8f7b6f902a0f5ac93ca9fab1c843b0f71652cce35f8950cb88981b5e9c20b6c639d2486dbdf823641836e453b4f3b3732965b8b9f64ef7c0897225cd495c8d38406b3b380a70c0b499788cb22b5c6859c25590bdffd578396372c47cab57d22a02313b23966e2c2b6f84f49fe69b7bff77474b0654bbc71ab6346001b2c11f446818c041646050cf6136e037cd4cb8a69206a7bbf2c6e3d0a92b68a1e7caba00a6a70551abdcaccb618b35a3e96026b6499735bbc8b9551938680978804b1735f2dab7bcdbcc3c4cc15a73053dbc1a7ae967ec073863132da8f742c343a0b48851eda61f97d6018f7bbdbc674cf24b6290d6a7a9577745ebca38859d5a7c7d1e54cc18983d9a9530910a10ca8aae777336cc147c939622bb433ae125484d2518ca45c000d2004ba72acca4288d391103a9a9f3db703584451932a02dc46eae313f55305e5990cfb776605fd268b63306fada7a4337c51b2c2b44665b93e2a2d6709c0b08a172db7ea5410b2c252a86d2a08d1aa9126986e78a910b852a12278b1df95baeb41965d1caf6798ef097a5f7d9bd13c83b7c87aa29e4069a376668f730e1d85f693742cad56a122494f926944db6c8270407eeb7b0e3e20a56161948baa86e218dad3703d19854e5e475223476d2da9b1469531322a1c7592577d7035f144ab29a76f661803b125046e33eb230cfb194ce37a228cf251e1c7190d9c231bd5bcf65d03595b4601ef519b91232f745c8182c921d937ba8f6a75ad524ae1a84aeb61a1bd4647e7a3f43315445f7bd6db427bf309fa6e715cc1354bb3a66052a7665e53c8218b4afa57b91e9576dbb562efca278b04707d8760ab73799260ea88b10070c2ed6fa545ba8a43b306d326abf7054488702a5882c19848ac8c2397e42972260cc1cbf6b66cba994a0282784c05acdd25cf4e99f6f91086e777d3b0449aea69d85570ad3ec60923300869502f245845c43bff69b83e1ec790af2b610f7cf09c3456b81023dcaa497277fd44733fc836572b76744280aad512a94582c0a6caef92c02b81c646583ce8223183bd4303a741f6c752b8604be7b8b7a0903ae91836d39bbb1b9fb864a86636977b1ca742a99d949818b535db3ae8aa4618bc702cc4a1766411ad6fb993008a0b8ab46a0bbba563006b0fc82c5b1667fba4774f176cbd667068c7a5cb0055f2229025b3c99b890c1cb6757c14e748358d90c040f44a6dae0025fa820c5d037d48c31e11892ec496833d41e1cf226c19341fbab7fccca4b111160122755f35c43cbb75063462e3de16a4619139ed178f78686b3590009153c17d142e34175d1b4c1d2d476c0ba4f8f715f0ec862138bc70a7a919237c2344ab8a971146a013864ac6128315590c671b1e6c1fb329df06052f782a06a4a1fd8a66eda148d03f04ecf878a13e50d657167db2c57700278fcd1813884657caba453dba396005f51949619342e83b601eb1b85de358617663656ab006aac29443c4ab0696c48824db1351bf9dcac02f32fb45105151c936c48642429758979b1089c0696e039e8b4cdce179ed2b457e65b3f9d65afbaa5885a377581a2814ee1b048b10209918fda1b7e2fc4368a525626a601b621503afb0d3f883b94d1a41089c89c8c1c81880fbdb312e72983a38471a8d797b5719799a8c8482c9a99b07240438c01361a156a1bec17619a60535a745670db06b8c33b83d17f9124076409bf9130595e1322137c3deb17b6da088fe160b8345624a5612330c2042b98b13c6c2c8191772cc37623353d4dd2a9e2a156a30a7ad2c3461f6548d9282115a1b115d81293bc155881bfb49c5d16da815ce4ae5c871abc62828535cd8c4a98fd0430711b50d468715368a15680a6e0a78d088660e0364a3f279265f1556c7a711493b666f5b20be30890cbbebbb429b5c84f3f6a7cf6085e9f411656c65771806c69db98168b278f506ce4d385b95468b1e94f6b0b6dfbf77ea7c8b924c81449530161b61b1d0a3884a23c90069837a386cb06b4caf3a5bd0608d7b33dee6a25a9712db231961d73cd6d3b572626cbb144988961cd4a5b3797911772787768b796a5157c180a1264c1bc6ad588139028f9f28b3d8866b8964a5253b79ae86064b5979a0b468f87ce0ae843f34765982114bf327ff08c801a3a99af0c27c72cac48614620d373b23c01d1ebbb3331c4f0ab6cf7a03804545427547acc2a467e895d75486f23cc23c779a390026e41b56cfb04b1e22190894a3c1ee16f19017d7cd75151047618b49921c8990a580a03e1656f841e95101eacc1106f0cb94dc2789bb1a2b3591134b05e7d983736f83cdd985d160a9caa210de0813ee78b411c813fb3008742f793e337a699b3a1180c5a48e12d92b9709525858a70ced2d2c81efa2401283fbca4c4b4f1904e75ad66a894aa57cf240118c73643af435f024013d6664543888f7f30327bc65e3631a4da4b6629131ec5067ec5a8c354f94aa207b587f139fd3583b3cb51e6f7926b9a914c15928738a75c9b618b250ffdecc61061618a8038b3c65841ab3d5bf203c122723b087d4ae2604f5bb6c9013c4f38903f65248c9783db79b98b9a827d528444c26c8fe408d785530d90123d30371cf46307e1c6a81097ab96280ee058d598207e666ca0dc213fa48892c3b7d5f49bdcc894f2a8659fe882201b4eace22e1713c06d74156a6a04d84c0b29f6b53fb61773d19f5cf9394dc03ba90923d33055b5c089f43961ce810a27f0878f4a77e9d60a2a1842a0450ab7208d24cc865a6393a9820b62f96abadcc0650b171b473db3e91906720cf7ea3730435f639c1ae9fac889d76bca6602ba96b0eb98aa44136cc3a978b747acba054032d36509a7ae9dc30855b2b1699628601793062c5705c5b103344c3a77947992a2071c35f6393942dba3b8545eb9a58ded8a5407a270b676061dea1c5d490f25a05c0f82750ae6151de2bf028a28657269789733f1e4c279203e2fb837e6ab1f30c04daedb3ac2809791e8ce988a4c1754c8fdfa8be0fb8c94a240ae3b1e73ecca729b4ab04044be1b97972a1a27bb10bde4240d49a568114b938bcc050b26145598905735ba2a3198e3a375b752d8f5a84004890e25916871a34469a8cdc8b1077482f785ac3e497574aca642d74a3625ca37dac98565ab6f4c95a289a434c9ce9fe61d129c073b5cb755306d47873fb186bcb86ac00be265c320c70788bca0f462fbca6db8805986425a6437304ce48d59588489561d37b60d1f171f03ea8ab817c93ea7c3afc06447eb823e630acb4213b50793457aa8f0b9b484d5830399bc2c98a7fa452fc30713fc85ad9a7707e8343e2ed113ec436625172cd4162cb7730e5f327e9566a01df27d06b460d155c8717469a365acd5ea80b935445a6610efd3062ca954276c70a8085c42aa7f82628655f97a06c098aa7ba8a1783060fb819de027dae9256e8ccc9a72539985144830c23ddbb3a1860147bcc0edb69a0ba03bf9626c1f35a611f686cb71801e130e0cf363b795bdd9c32e82978f53083262a703f85398d0587c2cca06ce1c83ffd614d1a85d437784623814d804cc00778978e0cd3e2704d34563fc23494d84b6a4482401b009b601582bf48d7521676023439ae2c48e5b54bae0c592b64d038883a1ca9a4a843c100a58d19270f8484da82ac633c3550a1634d0a7cb8bacaa19d4500af0ae14499ebad63ca1d2afea753e762246a0834942643050b151cc9aaecb587808754e2aac15d5b2c074667766181309b113211320603499d9b2a5aca065d8c088b24482200c0eb26c3f7de8751ef56850ac8097581852873b396b05ea4c12347309c7814dc89929ea6c3f09d9bfa92bbfdd0680591a69dd855269fb77e8184ddb4aa0d3b2a7013ba06d447598e95222774badd3544b6c80c229392b0caf13a94eb3bc920fdc0ad3aaaab352554a15ad0aca4d7038c208eba4f4b181e8194e21575687e55b5af0c2551acd36824c73c950b1d9a8a76264adc88e6e220396bb1aeb6ac835f2cb3167c7f4db6bf0b6552db314bb91584b86c0d7762041075a432583f8f357a77731edc1a7ea932dfd40a8ac9c09d3a687dd530ff1ab95c4e56537dc6e82210c0d3c582049a180030acfc3790fa1b437e91e1f67262e03cb59a87485658182d1a518822f678c266ad70fc1622c5b206ab7c61510f1c920db37ee852276f1961e64614ec8167fda7091988c176e893ab163e034a7e92d569882badf4976ba648396ee00e3af7f5bdb9a417e243a93c5dc84bb3afe84c380645fad6886c5614a8735a6f718acc565905e35325a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 + +# Official test vector 54, seed: "a7c2c8edb3601396beb2df0657ec82fd5780a2723581a9e03dee1cdb018440439bb1142cab0487c5d136e9af46338ab7" +seed: 6c8c53ed6f65e6b2e324b84364e10de42d1c26a106d4d1c99eee79c78586fb55b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 +public_key: 032c5f6a930c1f65420b0c2bbab954ae55ca8282b1da2a61f1b111df231df1151504e9031b7b28e793109ed49d46702d25b37f58fa812f68508fe2b9efc319a1976064a648bf7a251a948b74ca3f1985c5f114033e1240bf3691238b507bf28956a52204459eae072bbe10431a56af24ac15f8b546a62c03740c16ecc8afc58871537c485ca93617a324f72991273a0549b377ac040aa12a46d366462ff7b76a429bb781922f7a5397385421424a24b366651b72c5f8870c21835e0b2949f61eb3571cdcb780db683c95e23b708889303a4b9f2b862b68a4e2614eb2d8169ecc1349d9b71b5206973487660b6e4cf544baa688202b0e8df9ae88d85115f9a183fc95265608661993839914d9926cbac8993013c59e979aa8444a54972b99257542e4adb869cf56dcb305455bfec5bcf64137b72b2a6c9b0dcc6c386ed616d6a25259ea612e89c21a170b64e379458b0abd725dc8f53a55e57604282dd474c4ab30c4218a32b4183f0df24475d01fc9f8550b0aae3990bd414561463a023445bd23c7c321dc80eff509a6155cd6b2059fca448ce05d1f0062f3c21849e38a7a90bfbf15b192265f11b5bef91a6bcd0823e2e1b414750e057583401b3a5f140ed7bbcb87bba4b1aaa1aa75a911dac26298a7b9a1830a48332f139f7a4a12a528b9486197999b5717cb8552b38f7f759becd04970eb64bb4826a5cb47bcfba7cc46ca17039f1da30dea436de4b6ab76f43c06d1a1db65a9001a1e0f510d7b4755137bb4c08a710e9a9d7fd8cb32d64152c0b85f40b9cb433ed1d7bea1821c6881309642053f993739e3bcd38951433b291ea26f0948cb2dbbacc3088d58d42de008ab581b0b3a9341ac18c28b131fd4e49964d72d65658c684472550a06e68391f8d34bc09a2f25161745c74d68681c3b333ea58c412f68b44d066e33cb7ed17253fa655603dca0de7a13c7c0c78c9630f5c57ae925ac97a823102c423d0b7a3af864c7a95885e574d570895540a3793b3cd0c73b5a21660b64577d6b146e888a113bc44d78c175aa7ee72760f3b62ed7c971ae62a3e8f08ca4ab7daa43c51a18cb72158de398326589241f07a9e78bbe0c4cbc5dc388b03a7c131c885fb63841445469c42501d198d114c31da36418985ca5d95196fa12b59599f90750e4567a76a767547baea91c6580a628c3c052c3c8bef8755238c2b31d52621ea5579b649f6328695af62aa8d28402a554941b11baf7b54ffab7bd21918a0a6d6a368516b4a04354b6a922901fb8a0e9bc9f7713b977226bd8477d5c7088b8b90afabb61d0b32de98529aaec904aeab8d0240bcf114c5e3a2a44f0043b628f03fa04addac64c918916a3031d6808104539275901c8d8cbf17741a6e185250c7eb9379de46176d0b6cb02621f97c083b8fc1dabc9a0cafa9585aa848606c9cbc58b96da5a8f414bc9a6ab4d9811cd3b3b512925bb5b352cb67f76c810b3fc79113685e85595d4c62d41633fa092c31fd3102102960a0024d1f460be791bdb0b19b6610604fa26d6423864e93493066f859b86b6c2693a899dbc36cf667ab5e4d8278371cc411abba846b780090c7023a09409cc4541b4d8784ba0f643aa62336551525b315d6fb7086ac604b2272333c071b23595ccabb5459b6307b59786731008b14ea142c89a066d5e5c502724bc384013b5544a99aa872d5b65e5100315f70091d9aae9d1aba29c18a5549d11aa195d7046ae51a864eb4d69192da8248300f985fb5742a8f0623859b2a7aa600fa835a0aa647efb62b9309ba89a9c4b7478a8a1086d6c955834223600b65a80342cdb6788f09b138456773aa8a2b175f477b800c2803867253b06b5c5296d8ca3a4c85496fd9b413383c0cbb95880545c168099926c175bb6008b1abd69505b8c782c9ee06877523802a936830c9e58145c6591c66bc56abe2804b1ac28394b9f0db695b15c560bf48ded5c54a47244daf089975065b8aabc77e4a6d1178ed5b503a4ca40c2584e878c5c15fb41307ac297da94a3ea7e204b8a4156489df3577d74186d5255156aae92f77512d0b54d1c1559b8866af41ec7db75cf658625f784ab26089a076ae52103ee3053acc22a21a2920c65c10ed64372380292293f494c2c663a87d7eab6ef126a4ef50002924497e70154426f8b9801b09ae930907e6284e384a1c6554b2bc594591397810b18d01bd3777534 +private_key: 62d210ecf64cdf77865b40c9b663c2d30a39bc7916c4d7beb420c29dac6e3a7a1fdcac2c68a117966c2bf4e2aec3a7895cd83f0e426cf826c8d679055773798b748253f34a873824b01153566499460bbf16b41502e97bd7a4cdeae40ab2f4372c755bb0a624a220b774345d3ebb235e06afbea95669e75dcf78502f68439a485e72427345e17a845109d816c3bee592ac82c7b27902e43b31b5460e37a43a16fbc98065125109c9aef2c8f1ccbc99ea571781595fbb27b8f26f62c995afe082e46caca8929e5c48510f05b1c6a28ba5c0c652dc0ff6e20a5a3c8d19691f0a29be46246eed49b66d2398378b1b3583656cfcc1f1cba0422b2a5e474c5f7854724607cee3955e108b93585c3794cebaeb8f6e4c24b653988a84708e3bc9649394f422c25bd88ef774aa17f8bf9bf19aa64cbeb4d343eedb0bfbcc8b07330334278aa7901f8b7810a1e49a3449bbad23cd17721a52a03dae0822a4333c6896a303c26356008aa03c9f9414b47c8137bee6922ff9160ca84d9a0a11e444528004ad471598737699ead095c4991f99257981a7668dd60d97ebae26019073657409bcb8909c3247bc7973b79882009aeb701eb82bb6b568bffa379ffcf235460143ab7a4624f797ea324e16c6757072bc0e5c95166acb3f9b30ffdb46b5b720bcb55209d96f4da40faaf21e2b9b5014d049936469a63940704947e5670310178c65f9c7ba44a6a6eb5580a0174b43595933b19eab8c4d978d29bb8e7ff4b37fa1ba4dd9af62daa5ad879836849b88678bd3549238e2674963770a657c1389b023b75e8a7262e8c97a94444fcccc63f3e4c17db97c6131b721561d28146521f3afa60bb75b0491e9f22636017f7c2587e8e64a8cf4b2d0c5c2dd53322419038e239c7f60b10c66905917c2c7267303d565fa30169904159b7a2e348cb641782599787d7c63be7a536890dcc858f7a43a7080bd3593f6da1f4c5454e745cb4ce2ac2a5051e8052a3616b9dabcbac6b5c43fc3c28fe0505aa823fd324d79f0c1908c2720b37cffdb58c7e822a48b7052748a996043c31364ab3b9974560f63e00d7e06184ae0485cd649374632ffeb64ed749e1bda052ba4c0a972c679db187a345e8c055fee4c28df4537795aca7a602a243b77499146f649226f73991beb88544ac439e53c2f060952bc5fdc3648e8b850526837b2744d0e7323a97598e01690e04c63d92891c64b9b1c962541755cdd861390dab893b3adbcc04d52f0ae193b27fc948305e5787bc2c27efa77c7b6823fa700eba383c96a119d453036ea2966988acb289a324a02272a75acd3a4551562ca894bb63c6d38b6710f90537dd007b807bdc0071a88537624876d58ecca89d27757c9acde480bcbc96ca3d338f014b6da5251d9578ded5aba69b7047f88a8c75860cb652c744571591369a69ac0118209a70b2a06790baff6c35f515811e45b9b94a9d9b4add0c898037c2988858eb15bafe5a88439f67cfd537a3070a12f40394cd86afffa967a206a5ab72afedc52acc6add22ca1e0b0816d729d68d67bf1b387eaf43461a5cd28ec6fb70ccea4828a9dc6237f04681ab4cd3e9c69138b48459769e07a3f6ca684c299bf3cc95df9656df5968ce5bc91c87487a600236bc64ca9881797b626b0881903a899f945716fa32d955711f289328c66c518539dcf9b83f241347b11210e4a3dcef1516be12f9ce514c38200d8757220b30ca95b7682eb16f7a305f6580b4a764c23470bf159846e656f62da82b8db4828f7244608320f5860d02821dcb61415249779d4941a06bb88c64fb14b8fba049960c2118cc9473f66ab577a953e283732c689506b4b4c95a4ac105aa418a144b2901180876aa4128424baa807354e12631473b8e05c00d0d505ce454bd425a0a1443aaaf92ff2237bc0f7458ea72b6632a2b8b760e377ce48ea5a60e8c4daec0670102c4c747492f28f81069cd1d64345553f8cac531f23b6556010f79b623ac6a8fbfbb68176c41d3609e73c65c1006de04804a0f2222433a2d1834dc80828fb06c098565297b815889161a58c0d187454b61a1a2986ad7e07a6edf27fb4626277892bd12051a0c263e6f94cfd388e1e32ac4de308edfb070eb60dcb5887fe7ca44ba4a39ba7bfb363c98b00b60a4c7781940bb69998032c5f6a930c1f65420b0c2bbab954ae55ca8282b1da2a61f1b111df231df1151504e9031b7b28e793109ed49d46702d25b37f58fa812f68508fe2b9efc319a1976064a648bf7a251a948b74ca3f1985c5f114033e1240bf3691238b507bf28956a52204459eae072bbe10431a56af24ac15f8b546a62c03740c16ecc8afc58871537c485ca93617a324f72991273a0549b377ac040aa12a46d366462ff7b76a429bb781922f7a5397385421424a24b366651b72c5f8870c21835e0b2949f61eb3571cdcb780db683c95e23b708889303a4b9f2b862b68a4e2614eb2d8169ecc1349d9b71b5206973487660b6e4cf544baa688202b0e8df9ae88d85115f9a183fc95265608661993839914d9926cbac8993013c59e979aa8444a54972b99257542e4adb869cf56dcb305455bfec5bcf64137b72b2a6c9b0dcc6c386ed616d6a25259ea612e89c21a170b64e379458b0abd725dc8f53a55e57604282dd474c4ab30c4218a32b4183f0df24475d01fc9f8550b0aae3990bd414561463a023445bd23c7c321dc80eff509a6155cd6b2059fca448ce05d1f0062f3c21849e38a7a90bfbf15b192265f11b5bef91a6bcd0823e2e1b414750e057583401b3a5f140ed7bbcb87bba4b1aaa1aa75a911dac26298a7b9a1830a48332f139f7a4a12a528b9486197999b5717cb8552b38f7f759becd04970eb64bb4826a5cb47bcfba7cc46ca17039f1da30dea436de4b6ab76f43c06d1a1db65a9001a1e0f510d7b4755137bb4c08a710e9a9d7fd8cb32d64152c0b85f40b9cb433ed1d7bea1821c6881309642053f993739e3bcd38951433b291ea26f0948cb2dbbacc3088d58d42de008ab581b0b3a9341ac18c28b131fd4e49964d72d65658c684472550a06e68391f8d34bc09a2f25161745c74d68681c3b333ea58c412f68b44d066e33cb7ed17253fa655603dca0de7a13c7c0c78c9630f5c57ae925ac97a823102c423d0b7a3af864c7a95885e574d570895540a3793b3cd0c73b5a21660b64577d6b146e888a113bc44d78c175aa7ee72760f3b62ed7c971ae62a3e8f08ca4ab7daa43c51a18cb72158de398326589241f07a9e78bbe0c4cbc5dc388b03a7c131c885fb63841445469c42501d198d114c31da36418985ca5d95196fa12b59599f90750e4567a76a767547baea91c6580a628c3c052c3c8bef8755238c2b31d52621ea5579b649f6328695af62aa8d28402a554941b11baf7b54ffab7bd21918a0a6d6a368516b4a04354b6a922901fb8a0e9bc9f7713b977226bd8477d5c7088b8b90afabb61d0b32de98529aaec904aeab8d0240bcf114c5e3a2a44f0043b628f03fa04addac64c918916a3031d6808104539275901c8d8cbf17741a6e185250c7eb9379de46176d0b6cb02621f97c083b8fc1dabc9a0cafa9585aa848606c9cbc58b96da5a8f414bc9a6ab4d9811cd3b3b512925bb5b352cb67f76c810b3fc79113685e85595d4c62d41633fa092c31fd3102102960a0024d1f460be791bdb0b19b6610604fa26d6423864e93493066f859b86b6c2693a899dbc36cf667ab5e4d8278371cc411abba846b780090c7023a09409cc4541b4d8784ba0f643aa62336551525b315d6fb7086ac604b2272333c071b23595ccabb5459b6307b59786731008b14ea142c89a066d5e5c502724bc384013b5544a99aa872d5b65e5100315f70091d9aae9d1aba29c18a5549d11aa195d7046ae51a864eb4d69192da8248300f985fb5742a8f0623859b2a7aa600fa835a0aa647efb62b9309ba89a9c4b7478a8a1086d6c955834223600b65a80342cdb6788f09b138456773aa8a2b175f477b800c2803867253b06b5c5296d8ca3a4c85496fd9b413383c0cbb95880545c168099926c175bb6008b1abd69505b8c782c9ee06877523802a936830c9e58145c6591c66bc56abe2804b1ac28394b9f0db695b15c560bf48ded5c54a47244daf089975065b8aabc77e4a6d1178ed5b503a4ca40c2584e878c5c15fb41307ac297da94a3ea7e204b8a4156489df3577d74186d5255156aae92f77512d0b54d1c1559b8866af41ec7db75cf658625f784ab26089a076ae52103ee3053acc22a21a2920c65c10ed64372380292293f494c2c663a87d7eab6ef126a4ef50002924497e70154426f8b9801b09ae930907e6284e384a1c6554b2bc594591397810b18d01bd3777534ec53d050d5a81c049eab8f93e7768c39323dd805f12c6553c204d58cbc47d8e8b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 + +# Official test vector 55, seed: "467f6158cb86b724039ff18c47950ae5c49170163c910fc9a9b30141f86e9c06ebcec91497bcd156d95758c9f0c6ef91" +seed: 2107204cd995f1df14314d5381f8c5440f09a347502e161cffc0a2ec3dcfbc7324c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 +public_key: 059a381bd53c19d170642535f7c56a2f6bbea8b824a81339da5945f7175d08c69784e67d5e079fec9129ee799a1860ba58485ed631cabc19ad60934c192a27f9266bef098ce2d847407826afcb0ab43057008339c534b9e19c5a3542b40a3a88d41533b346754fc09fce920ed73b2fd7048e540bc9af49247122771fec129bf133c3c3711a679353a9a0ad47c4094471aee9619eb58a3831bc60257e07d09def864638498d3a731f24a814177801ae900b5fb6cf3374320a261d57c170dab6a473c86036733e85f290c9aa4cf7b56011c61723839b1e7c629c7cb5f4e4bcd1d6c9fec583d4b78670fa7a53f65b9fd0a91cc6620a5c1129339ce2a93a66618c1ec69e584a0e9c283993268fdb1c8ec25669439472d409447b6a04cfd699d167252c29af53eb27f6c3950b456861b7ad273887bcb3b41e75bdf2962b604ba62852a92f7b192cca7391accd0ad0bb65672e66317ab82bba06766917455f7fea8af660cbf6e3103f7a60b9736bf897b3a53c9be798ac0c493911b835b4514f3e095a49a474c0c907987867cd11ae24d22d20ea24ba028f02d1b295605270c00c732b1c19658af0424f2b01b7c4b8896e6706ed564b87f21afb1208f9f85e1b40244d622a5aa461c25b0319567b7cdac03d9bcbca028ab108837150a6426138b1073c348a1de7eca92acbbc0a95aa88864d734bb90cc8b8dbdcb91c4c333ae46dfd8353c27438abab8a60572d19c5bacf6b35a50b86e80a7b9b44bc74f74b050c2d6965298d33150c63c7a15150fb66082c851637568c2e5a9952e7ad62436e8401a0545c6415a948adf1449a51779005bb08bb75fd518c2dc02ed5c0b63dbb35a37612ec44b2a04a3d3c15414c0193ef5c09aac62d1cb212bbc7bc7b380bc88a37ab103d872605ba7883cc0bc83a20b2ce28a31a3b0bec216b7b1419bca5425e255b25a86ddb5ba95900c108f036a9ba2e941a1966b225b03cb7335901e6d32613b54806c0c737984da16284ab0b4594b0734fe5c6018c047d238fea777538d49992992d1a012f4a65008554405e3c0bf8d386c2eac5e07470d4d6015de45b3f99cc1b9b6f8e459e9987b773d69e3783b520d1282b177edd9c631bb4a76052c8eaa8aa1bd62269a2b2d7a6ba35b1670d27be1eab28d1571054a67e94ab3adcca05ec609b5171a1d4ac1b3a2876e33b7218c7b1a119812479c4974575208540a0831446a7be7ae0150859ad521a0d891b7a6cb9cde236b48868c30ed26391410548eb21756c3d9efa564df5780ff7b1b1f830bfbb70ce7181df82abccc941f1d79b6db3a012d5b7ce5b7ea9ca24b387cbfc34400d47200ba07d5f82c28991b289f56361f31330245f264149c9567feb569f4e2c21cd9b80a10a1ace3804b899410d912d42a9ab68b76c2b4197ec5aba066453fce1cf04d2a315961126cc04fb63361e137a258832679865cea937cab03534746918080b1b92cd099622ea137e4d6b0b30d18ba27582775398027bc54fa09d7a23655655c491f23181816d45437be2892eb73958b56899f25b3e48874434f12a0052518f3caf11215df0bc3265d648935a68806a75617506fce900de0cb07f7686223b9990719af5252ac61a6c44a7655f54585abb4d26e2ae5192c2381009b4796c87097c2657095ae03b924653bffaaab6b9035d176fb34184e58227a64059f54b44fe62a68c7a0e798362de1966db1a982ec3af25ec20f3824cafdb53cb526f055bcabe72a9e807079046b57eec2f681ac8ebcc0734a71ec65224e4a80244340ea1d339e44c7e2c5717208a034e9a6791888c9968987e710fde215207eab3f38aa49195190a885fe75074e17920ea64b6fa077336aab211fbb757880dbe36247299bb8f65c132e48c54d47eccc7aa124547c910831bd98b07bb1f435ab7c96a4cb9b46b36b6b667da4eb7cb2a12f1bbfa88b98f3c6c3704be3f000f65562d7d4c4977ac8c98ac44958c28f65280ae68466f6b7495650cde4aaac4c68e07767d09f44917b29df63352dcd76c1e393e0d5067c76855a989b04547a625762c730624835a6636191c83d3836bf74593839a83847aff3bcb3ab169f65000c6aab1df08994e161861498fa2e42d1203786300adb060a9c2429bc7325eca24279404ac3c934ebed4991502bd669309e7a76cf09507b31fbf659deb7bb881f5358d70595c01fbc7ae7183540b7883122d67ba +private_key: 08d1b85a3b6262a96eb593935cf9aa02b2738496441be27303da5e8a5badb4c23fd7c2873c28429c7778a3f41c430786dcc92e41d41ab97028fdd1a87914190b210a0a108c74c86597f280ae4195b39a00d7a35a210b80d15c1aa54945887634e7db73de2945355227b86970bdb0abfb8baaaca1be8f4382e36c0c3bb972f68a5d7e089ed430c977d4836e3a18116584e1c860c99277c00b51e6480bd78004ad660bd0002fbc4b04eec53def499da022741d96ba4277a2ddf1ae2d309cc9cc3c76c28baf0180b03b4d5751572c2253e5e033114a81580b960059b6cda77a06d990d2fa285d7694036b3c714acd7c80a6e7a28d8ba01075b65772e65843e679702879e4d77fa61a7018da1d14b6664b0133506bae1840a6f2ec8897eb72e22874ce275ec4a81dc1714343d31a0e99cbcd497dfe5376d8e3caf40683f7491f1fb85ef9a43587e07d21196161b831b0020c643845fbb26101389ffc83c88de29def6b550b683d374c26883c4807b51a23110ef6b8c16ec95e0dc03f7fb6a8ea09a83cc4a82ff4c7e407271acc2fb3943a3b0a1571d1c060d80977770d0bc17ed94679381984ddd7460f782a8a596646a49c48e59b0890a99768740f1c66d58a7dd7f88f27dc4f41b28db4bc240aca187371110ed39871ccaae2972653db394312793458208a29ce6a676498a100a5199ec642853e4661247b0fcf60a218f424a6831eb2488300542f1f354863db3e32878758d21fea35b06c79787851a61da1786bc45008085e87eaa72623cb41a28200ed0b4cb86e77f510f4507c6c321891d455842750e933967890ae10e91b0eb5b23789ce5da58ee120b965d20765830f9c4079a64848708a51d1826ca3425e0ea31727107c2ad28d1e8b0a6559094cd5c000c271e70b98949359be468307526f683a32df61aba0821efdc289aa273a9166abfb4abdb6c0a66cd444f349c8c2015ccf5cb3f72a561cc37bfc210f8ee4b0b89873b67506766383d279a2f1d28077e91f6b4ac289d3bc3934766af53d2f238ea8227e9e9226b4f7a8c47b8fc5874dd30c51a1d61235bbb5ddc7b22511a776359ee18842e5b8341ce045f6cc9ea6922a0bac7db004217c0c234b52c53a33c03c8b1990f29fb2816d7aaca9f633495ed0aeeeb112f180b2d740b550550d8fa56b9ee659420a3575ac40c3d2041e01be4e58824b2bc85685a5bfc7289494175b81626c7b88530bd031c68cae15a76c510310b161229cac449ba38809be3446734a84080473c80a58c3e1a56ae49b2ee802a896c3c051d92ee2bc7dd9478e5954ab98202a2403ce6bb3660e20c4de2c54289963f2cbcb692349a8a7b6676413105923c6c30a557c958ae16c03d7817a963230692ca16cc8cde66a8b0a01b0d63b58d76b7d76b078db1351931f0c23673c275a9fa87fed1a758b9302d8e65567ca508452b3068a9f3eccbf53f44cead8103c3b0d5df16d605b7ff9296434692b2a8c079be8659cf507e8d59663e6116ac03b43f54528427176a354420212f9208abbf933679c9c302c39fbf777bdb21c197065fada38b9797586e61327565e40113cf5980a32936b57ab0719a837d2a394372230d9f03a9aac0c8cb6c5491c7ea371bb17740bc76b851d77488c3b4c21d9c510b49971e11874ba9c46e3af7b555163339b3c739e4349291e931bb2c9cd86fc44f0e1911c08864cf3bb74b3484f0a7a347ca8fa335c58a2ac4687a33787c1b49b791c026c7d4b1adcf13b4c7a51e705c1ae114e527690b2713234d089fc35b880027215784d27e50e6a513598ea7a47bbb574a31d872c3549d307850b80dfe04350b814a297340fec56662c7131d99ae573800d0669ba2b8570119d69f30de12535cf05acd9e8b66215b6d2979ea7a64c25941c69c61400a62af40412fbeb1870319b37bc75d9292e2e6a76659c87e22cbd01fab946f1c855bca6d3d052ce42659c8c98d53674c83800d1776279a494c44617c281631dc9a338545f14fc1b7b7b407944786f8c25f69ab5e50c5d4d6315505c5cf03bc23b454d2427501a13c813cc11cc76681b90264121aea8594bf087b474d821ea102c7014a796429a05d38a1a4b8e6ef8504591bee10a3a7fba19c9d8122c4c66503462b3a14e99144257203f76ca484fec606ca158a8e29d944760059a381bd53c19d170642535f7c56a2f6bbea8b824a81339da5945f7175d08c69784e67d5e079fec9129ee799a1860ba58485ed631cabc19ad60934c192a27f9266bef098ce2d847407826afcb0ab43057008339c534b9e19c5a3542b40a3a88d41533b346754fc09fce920ed73b2fd7048e540bc9af49247122771fec129bf133c3c3711a679353a9a0ad47c4094471aee9619eb58a3831bc60257e07d09def864638498d3a731f24a814177801ae900b5fb6cf3374320a261d57c170dab6a473c86036733e85f290c9aa4cf7b56011c61723839b1e7c629c7cb5f4e4bcd1d6c9fec583d4b78670fa7a53f65b9fd0a91cc6620a5c1129339ce2a93a66618c1ec69e584a0e9c283993268fdb1c8ec25669439472d409447b6a04cfd699d167252c29af53eb27f6c3950b456861b7ad273887bcb3b41e75bdf2962b604ba62852a92f7b192cca7391accd0ad0bb65672e66317ab82bba06766917455f7fea8af660cbf6e3103f7a60b9736bf897b3a53c9be798ac0c493911b835b4514f3e095a49a474c0c907987867cd11ae24d22d20ea24ba028f02d1b295605270c00c732b1c19658af0424f2b01b7c4b8896e6706ed564b87f21afb1208f9f85e1b40244d622a5aa461c25b0319567b7cdac03d9bcbca028ab108837150a6426138b1073c348a1de7eca92acbbc0a95aa88864d734bb90cc8b8dbdcb91c4c333ae46dfd8353c27438abab8a60572d19c5bacf6b35a50b86e80a7b9b44bc74f74b050c2d6965298d33150c63c7a15150fb66082c851637568c2e5a9952e7ad62436e8401a0545c6415a948adf1449a51779005bb08bb75fd518c2dc02ed5c0b63dbb35a37612ec44b2a04a3d3c15414c0193ef5c09aac62d1cb212bbc7bc7b380bc88a37ab103d872605ba7883cc0bc83a20b2ce28a31a3b0bec216b7b1419bca5425e255b25a86ddb5ba95900c108f036a9ba2e941a1966b225b03cb7335901e6d32613b54806c0c737984da16284ab0b4594b0734fe5c6018c047d238fea777538d49992992d1a012f4a65008554405e3c0bf8d386c2eac5e07470d4d6015de45b3f99cc1b9b6f8e459e9987b773d69e3783b520d1282b177edd9c631bb4a76052c8eaa8aa1bd62269a2b2d7a6ba35b1670d27be1eab28d1571054a67e94ab3adcca05ec609b5171a1d4ac1b3a2876e33b7218c7b1a119812479c4974575208540a0831446a7be7ae0150859ad521a0d891b7a6cb9cde236b48868c30ed26391410548eb21756c3d9efa564df5780ff7b1b1f830bfbb70ce7181df82abccc941f1d79b6db3a012d5b7ce5b7ea9ca24b387cbfc34400d47200ba07d5f82c28991b289f56361f31330245f264149c9567feb569f4e2c21cd9b80a10a1ace3804b899410d912d42a9ab68b76c2b4197ec5aba066453fce1cf04d2a315961126cc04fb63361e137a258832679865cea937cab03534746918080b1b92cd099622ea137e4d6b0b30d18ba27582775398027bc54fa09d7a23655655c491f23181816d45437be2892eb73958b56899f25b3e48874434f12a0052518f3caf11215df0bc3265d648935a68806a75617506fce900de0cb07f7686223b9990719af5252ac61a6c44a7655f54585abb4d26e2ae5192c2381009b4796c87097c2657095ae03b924653bffaaab6b9035d176fb34184e58227a64059f54b44fe62a68c7a0e798362de1966db1a982ec3af25ec20f3824cafdb53cb526f055bcabe72a9e807079046b57eec2f681ac8ebcc0734a71ec65224e4a80244340ea1d339e44c7e2c5717208a034e9a6791888c9968987e710fde215207eab3f38aa49195190a885fe75074e17920ea64b6fa077336aab211fbb757880dbe36247299bb8f65c132e48c54d47eccc7aa124547c910831bd98b07bb1f435ab7c96a4cb9b46b36b6b667da4eb7cb2a12f1bbfa88b98f3c6c3704be3f000f65562d7d4c4977ac8c98ac44958c28f65280ae68466f6b7495650cde4aaac4c68e07767d09f44917b29df63352dcd76c1e393e0d5067c76855a989b04547a625762c730624835a6636191c83d3836bf74593839a83847aff3bcb3ab169f65000c6aab1df08994e161861498fa2e42d1203786300adb060a9c2429bc7325eca24279404ac3c934ebed4991502bd669309e7a76cf09507b31fbf659deb7bb881f5358d70595c01fbc7ae7183540b7883122d67bafbeea6f8085943992ed8b051cf758a8b8166c1a1e5f818f0deb30fa1fa06190424c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 + +# Official test vector 56, seed: "687c02de1041abac7b2c1e6ec2a7c3375552ed5edb10e3a8139c24cc76bda44d719d8121a81d47a0b762b4e9eeb85235" +seed: 63a925685a8ac5bbd918faa33ac397d1ffbcf99135d9da7c3d6ff7aa4c50af3d3afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 +public_key: 128a170837c0c51758a801316881c56d436839e5778e79553d97c6c48587bac980e17632f7c7af3de5a9b15ca6d33626254a9e83009442289274a4c860f42c86d8060b2821c873aa5cbccde4540a8e5a6784ac15e6b30cc71a8de57a83bc5924d0117bbfbace8ad5cdfeca785eb224baf8361eb64c81453fdeb54e4e86ab4a397ed6e84b9ba73a0c4b8b606318ccdace61b70df22c4518f463d8342ba6faa846eb55284995f36a7467385bc8b77689807ef511122d12066e12619e37c8ad0872d5710083a2b9dc7107c955623cb209139034c9b3c6cfb7b3133502621662a61bb63b9c3a4586c2201516ee6c3f2d25026f932fc13c5426d64093cbc768985fb8f70b6871755f8811c60a4317a21ed8b5a7e51c1784b562c2a244065451e22935ba9c3ca6a63dc945ca37489e317abbb02c9e87b6b7092b1b4049c603f087d3596169baa2c6e3a778e61ac5f04962b61aff07a70ea72800a0143e9c43f2972908a27e0f3b627bf14841693613711115bc19659c5b3db6bc19ab7be40c24d5887d93e6b7d31899771244c756790ee881fd605d1383409d608fc1a10d6f2511ce815361a66db6244bffe1b61a46a888a06f3260409239abbb9c717d76ac4d658e728977c9f09bae86105d796f0bfc4b87385efcc791aba5169c679dabe34e1ee44ea66ab3d58724c3e7099bd80a9d52cca8ba95f9699c3ad8c90199a3b9613cf9652a79cbb93c8c949dfb0a6a7a1fc5e4a6032247b7885b3843a7af4c7bd49068228875a002321530bc6b5076d0853be448a8a85a8be09b94e5d65d3bc2194a977396d71924bc5b420aa6283b7ed9ac822c27641c811777a8550168468892987e936488d71c9af0a8732b6ac23acc23c2bf8719be59b23aa96110ff02af63858b7405482d684848d83fbf3b317217be6bb750cae74df77a8dfd32539e8964b764a100688301ac20a95306163ca391d33052e7488cf27d4da5be786caf99e294ba1782d462c446613a15f97e9f5632c524cbc0430382e828560315e6bac00b35c084740dbf159809849f8e104eaa28abd5f6978f071d53279c4689c77c43c0b649b8aa042a9c8ca968f28c81c211f8bca19269a9d79985478707489caf7690b529b988471b12523405db659014138d9a6133171c68961a327099477759261c523f9ba6a008d3c14b0a02295902637912bf1230a8b763ae397f805c2cfb4228776443645274f5c01515986cdba31285f9c72fe7634c0b44a42150b1dc75d8cc512d503b3ef7487371b70d50b9650360f073936398356cc3419f1225a3946a61bb38b2e61f0ef85d1686a29e56192d8a26d42a22f274811dfa1c1c4cbfec8323880523288805ac98000944b667346e173611fcdc3d474b0c30b0620f69b3d45321d9c91a130cb6842659a6a0904ba598ab706336417e17607e865328ccb035bd0646b023c3545c2b437463cffa14dbd86ee12b8ec24375f5b4a3a0548eb9997030ac092a579bcb6a0a984c9f354312931c653242678e98502a519d15e64597fc224101cd9462ace9ba56c421b692668976b3a170d88c4501147e6c68ede8a29fd4951d32ac9dc06f700cbe9b536a476736b1eab14e2493c5a94a07f6ab5a323ec3e9b9f639258275523fd32071739b585b5d8657aa502262700998f0c5ba71974c35573f14c13a70842149c077624737e5a06d52863d63f815d57acb4f0142c9167d2784365ed78c9f6b235c7368f2b26dad962e05f2279ceb44784901dbe87e413a04f462b4395b5e2264784c2ba356935dc1ab3c104b6be09b08941a02512055a1d70ecdc281e09c78214a0e57f2ce035947229181b943c5380b7e6f804fbc815a1f3023e4aab03fb4b0e2c459f58c348249adc6b4a5474622c3262b11814acfa872bb6c79b3614e3ad2a1516a0b0dec98f863cac0b061670ccd8d0c6f7eeccdac933bad47cecedac3a5231ef1c040aef8bc53025e0dfbb3d5c6cb2ae96f11a05dcf8885aee9756a13ca0c1280c4d331d50b850b6c00999360dc585e1d849114b13f3849b361f7083b5b3db470796f5761f7641a89189c748b4f6b88822ec85b04228f04a669c495af4c091b54a3835b379201d9c7273557f73c1e357588b68baf3e2a5c88ab0e9e057cdae06ce672c84b2a04503372c0f370d114ae10f97052fb3ba450d323fd3bb1b887fc4da6dbfef06ba5a2d5344feede346d1f04ad60895ab5 +private_key: 59985866133caf531409205b859b9783cc2cffb66f52973ff226822187c58234ae920a4cd64665e6e60ac668a793052eb07981fd99c6592090e2286f0c405308970ddf93857e1c8f202173aa886fb54c242ee64167e9188c797888d1ca74604edf6a21f38a8787b5ca07b49a7c491c240050d8eb234d891a3e120165bc1bdb1800b7b32c254900f9e36e40cb55b4d2b366d99f1c86304f6a970941bec4d48905b33fc44564fdccacd60993352a215daab12a93417d51a3db6c9aa1a0c9a7d7b4a2ea121cf483090bb855048cbb6c4051140744919e4bc651b5007e8f3893c6ab6d745334918a2407a75557ec6b2db1cbd819509958c255776158f4ab1be64e3e431efe786c8c941ad91936f1e37ee396b8609b4e0781ce842c312b1ca70ca80690773455421d50f49401a16fbf47192ca7649e3989e0546a662a84e1904d82133dd2fb83ceb959f33c3e9d46b69a107eb133be1297749386ba7cdbadeec0508256b126f801138a17a0488cccea64a0238384ba53aec7b342c247257c5fcea471d6123c942b312b486438351ac4b5306c6699bd868087348de8f22f7f714ba3b74ba9b9c63a9098e45c1e37f2a4db9c5b9a8a9f662a2f3fb1bdcd48caaf1b5f01574db0712a34429a87690639fc148f984434ba7e35173f924a60dd70208d74443921ae4805b03c77bc48bb7b3b0964e9c743d02801b7a727025a79104c8eedfb80df6552f7038a373283d7a38b6ce430dd8b46ce067d0b699ee27b1690538541d28742a125bd2bc801a660410492707abc70725661f16b9ea10e7fba2da2d256962887c2a12d282907220456ce8a82ec163a54c97f4b7a9392d004a64731ca6b883c94a836e0539db41e36d9471cf13c0cf343ad250d05a26966898505a161a5910132d747fca047b5489a32245868778a68041b6b7870b0730afca761e640059d200f7a8948294991e6954e48f41e5f039072337aa5f2b3ec4bc2f1f12eace4ba397230861773ef628d3f13654352adfcc7c1e91510e22a4d0ad799c94a889562145f1372ab85bae981023458ad1bb9859a701af2c2149803058f435b4bc18e8a62c68c355c8b8450dfdb345d47a2585382e13c7d2f9a8adafc4643f642d4a463abb34c25341545816c169527641a63d85c0180d74a09b070b182bf0921ac8f59c5dc194ef8b93a0235cad649b781c58037e6153128bca0699d0b9494db44407f5455cb013d1a9073de80a128e04cecbc639c64898d022f3c0b514408c8035cbca60c4eade1bc5e9873ef1612890c0a253a6c34f0cf9f9cc8afe65737523cb83a90de44847102ce96956cdc988448f7134ac791fa44c0bf760e07b05482fa1443e72505e1b2e4e73f6bb775c3a1072bd62452d7994056101a63467da7511572142dd703aebb4bc4723988c334f4f71baaaa8ecc764abfa43273eba82b46b53f2b0f59f88cd2d113e49b52fc740ea0a5026be88739aac300e2810379027ca3b5467413b3484578062aa6b01fa91186bae66d3994cd41c191cae212a546354c7bc22d169dee7132a8c53fb6dbc4e81ab5cff448f5e7acd9c5bdec7c61b14a8671e45305341a4b8416798138a475154000b1424b4c2579a630a0968dfb7595c92c42292c5798b6ce4693c7566877e2725dbb5871c51fde7b2022f28674d11d5c86c0a1874099fc192af6b4cdc50843131c232c59e6e48a21dc1b8926b40375b6eadc7f11a8713e08c0a15220001469da3a84a8a802b2737e596bacaf674c29d72fb1d463286cc3916b064e076d53058a5f86118506cd99e8372996a8e32a36ceb31163694bbada95e9c36f02851d379a3522f638f737723f2b840663a60d2a8e25d49dfa6670b997b361394e9db653b269c352e5135adc008ba82cbae431f6440c8ad9774c181dc0c07b0e0a326758bc536cb94c0c4d3e5490b6f7158c93a1b93915cd70bbc78631d9d8a34bb2c383ca2e1a59859c51306a50b8da12c41467c6a89cb6e4506d1da5177b2b443c644777a74e96f65913589582a8c7abd99876f48efe540cfca7a88bbbc7784c2815fa82d3f17645fa632017c4004a5846503c9bd629850438d964892d0208b67903ddfc5476e50967a665b4b90abe8795c7a234b2759826f9b1ab846d5f763007fc93107b1efdc7a2876488b19554d4d3a9f08b82128a170837c0c51758a801316881c56d436839e5778e79553d97c6c48587bac980e17632f7c7af3de5a9b15ca6d33626254a9e83009442289274a4c860f42c86d8060b2821c873aa5cbccde4540a8e5a6784ac15e6b30cc71a8de57a83bc5924d0117bbfbace8ad5cdfeca785eb224baf8361eb64c81453fdeb54e4e86ab4a397ed6e84b9ba73a0c4b8b606318ccdace61b70df22c4518f463d8342ba6faa846eb55284995f36a7467385bc8b77689807ef511122d12066e12619e37c8ad0872d5710083a2b9dc7107c955623cb209139034c9b3c6cfb7b3133502621662a61bb63b9c3a4586c2201516ee6c3f2d25026f932fc13c5426d64093cbc768985fb8f70b6871755f8811c60a4317a21ed8b5a7e51c1784b562c2a244065451e22935ba9c3ca6a63dc945ca37489e317abbb02c9e87b6b7092b1b4049c603f087d3596169baa2c6e3a778e61ac5f04962b61aff07a70ea72800a0143e9c43f2972908a27e0f3b627bf14841693613711115bc19659c5b3db6bc19ab7be40c24d5887d93e6b7d31899771244c756790ee881fd605d1383409d608fc1a10d6f2511ce815361a66db6244bffe1b61a46a888a06f3260409239abbb9c717d76ac4d658e728977c9f09bae86105d796f0bfc4b87385efcc791aba5169c679dabe34e1ee44ea66ab3d58724c3e7099bd80a9d52cca8ba95f9699c3ad8c90199a3b9613cf9652a79cbb93c8c949dfb0a6a7a1fc5e4a6032247b7885b3843a7af4c7bd49068228875a002321530bc6b5076d0853be448a8a85a8be09b94e5d65d3bc2194a977396d71924bc5b420aa6283b7ed9ac822c27641c811777a8550168468892987e936488d71c9af0a8732b6ac23acc23c2bf8719be59b23aa96110ff02af63858b7405482d684848d83fbf3b317217be6bb750cae74df77a8dfd32539e8964b764a100688301ac20a95306163ca391d33052e7488cf27d4da5be786caf99e294ba1782d462c446613a15f97e9f5632c524cbc0430382e828560315e6bac00b35c084740dbf159809849f8e104eaa28abd5f6978f071d53279c4689c77c43c0b649b8aa042a9c8ca968f28c81c211f8bca19269a9d79985478707489caf7690b529b988471b12523405db659014138d9a6133171c68961a327099477759261c523f9ba6a008d3c14b0a02295902637912bf1230a8b763ae397f805c2cfb4228776443645274f5c01515986cdba31285f9c72fe7634c0b44a42150b1dc75d8cc512d503b3ef7487371b70d50b9650360f073936398356cc3419f1225a3946a61bb38b2e61f0ef85d1686a29e56192d8a26d42a22f274811dfa1c1c4cbfec8323880523288805ac98000944b667346e173611fcdc3d474b0c30b0620f69b3d45321d9c91a130cb6842659a6a0904ba598ab706336417e17607e865328ccb035bd0646b023c3545c2b437463cffa14dbd86ee12b8ec24375f5b4a3a0548eb9997030ac092a579bcb6a0a984c9f354312931c653242678e98502a519d15e64597fc224101cd9462ace9ba56c421b692668976b3a170d88c4501147e6c68ede8a29fd4951d32ac9dc06f700cbe9b536a476736b1eab14e2493c5a94a07f6ab5a323ec3e9b9f639258275523fd32071739b585b5d8657aa502262700998f0c5ba71974c35573f14c13a70842149c077624737e5a06d52863d63f815d57acb4f0142c9167d2784365ed78c9f6b235c7368f2b26dad962e05f2279ceb44784901dbe87e413a04f462b4395b5e2264784c2ba356935dc1ab3c104b6be09b08941a02512055a1d70ecdc281e09c78214a0e57f2ce035947229181b943c5380b7e6f804fbc815a1f3023e4aab03fb4b0e2c459f58c348249adc6b4a5474622c3262b11814acfa872bb6c79b3614e3ad2a1516a0b0dec98f863cac0b061670ccd8d0c6f7eeccdac933bad47cecedac3a5231ef1c040aef8bc53025e0dfbb3d5c6cb2ae96f11a05dcf8885aee9756a13ca0c1280c4d331d50b850b6c00999360dc585e1d849114b13f3849b361f7083b5b3db470796f5761f7641a89189c748b4f6b88822ec85b04228f04a669c495af4c091b54a3835b379201d9c7273557f73c1e357588b68baf3e2a5c88ab0e9e057cdae06ce672c84b2a04503372c0f370d114ae10f97052fb3ba450d323fd3bb1b887fc4da6dbfef06ba5a2d5344feede346d1f04ad60895ab5aaa698c34e1b3b6ef69049a883160c66533c8a65249aa35006f003d4eb4350a43afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 + +# Official test vector 57, seed: "4142237070c216bcbe245a39bd9220533c97651d84832b26727855ad994a0760c52b9319ad404693e4248b8c5ff324b3" +seed: 6a1aee5e708c1b47f02bdacce4f56c860f74fc7cfec1ef3b58285b1c8ad7fec2230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 +public_key: 2ce082fee023e6c49fe0381cf056ac1bdc95895271f4e245bdc98ee3a87f651191832b224b3c5528562f9498979c4485c3206eee0a6f5cba8fdaa70dec105bedc40e4c6b667d1739c8580f2d246371f415411c803ae0b52f0b5a6cda5fc3340f1bfa10bb29accf402d6f06472c14cc52556e5a97b56c190eabe6817985cc346baa02c76afbb6b6dfe33f711c78896a529656b4abe25516e448bcb41dbabc340ef4b483b750b0180f68ec0020271a0e9b9f466a4728c19bdaa426fb82294ca00261cc0c3349b75d397674644ae5ca363774abe8a290240abe4039a7e124cc894657c9025e1534b91b896eefd3af2d559da9f8558fa7774708a7fd535580545bc68c9cc89ccdbcc78ed5203ffb653965e7b0920574b7907443b9931472cf19c17dd18ab87842c853462366646881592ec3f5cab67b7e768472a08a43681120f491bcde05a9805c6787b96ecccb05d7d944fc858b5ec3828859234da88d8d00542b104883e824e7b630267111e49b1bb5e4103ea9ac2b187e046b4cd109709fca26af813440f30318dbbc34598ee5dc2806794c4e0a8c6b9c2310c34636088da92147d6b32a7bb447f50b898c5a3e5cb43d6e3c147ad085652ab9edda72f25b7bf250ac84d1288fc188ba645d88333b65b1150722334b5616429b608a0c93d0d946c15576c82093e0b263bb521d9fda997a461f1ee47098861feeb8b557b4656cbac57dc61fa9510bc1c95726b561a1ca4000f28a5720c42eb932f1ca8fc9b647d3740117ebca3d5587816bb48cfc1cb4e9caeb7834e1814a7c478fa052640af253371242da9575c2a66bd01c5fca4b958ea437e6474301069d0ddb254bc4603d3ba5b7415a96e5327743662caa7e08f608be974341b70db77a850b2c11e3b4cc6525808238cb097611e77cc449f17c63da122966394e79518fb6022ec470e8c5082a945c73b52f05c38e2dc3419af4080e890a6e819bb1b301046057e548894f511989a40e854aafb62ace7e586793921e292cc8601181599977d9fa457aa2039b14488d5698a8f03df1b56479f9109ad105b028219b3c90adac962369ac1f0043373bc243286c24f599de3a28684524988198971c1f88419ca09b3e4f22b64a221df8d32afdb0572ba62c7387235ee2752903535c9c912ae30c9151a3b6c415d59a4969cc432d088196f22c518037044236eb441438acb6bb61ca45c947ab98a53b44c48119135f776f2aa4a8413a1142cc4eed8c2948f8ca5db39388dbcc15c12d13035763a57c523b99a1912d0fd29b952776eb03aeed697320c66c0f65b369e13c7eab1e98b281e7b17cc2cb9ceab725671bb5df0933eb5c70a3d39e0eb5a55cc20af912af87cc23e10ab77a9c9755201ec393b523f51d5307b176f05fea16a2dfcac794f834f60a712f13ac8d5174d3a7627ce66fb862497cb95e36da3f486c7432e5983c2cc8cc3a7582a6b22c5a7ab3bc5107c831af145fbcf74ef9523bc7f0ca5eb97b34a3872b9870eefa3fabf609475c46b1e736cff313f046b6050c13392571f2d252959aca2f8418f7489809ea51939a1e8192bea5719262208109b37bae2424ec3655ade90a9ca235f69c8a3be54793655a9e8c6e9c64354a842458067295f08b6ab3b938e6b188bc252d4569589282eb703f0cb237a67a779d8957c4602a9bd80f266303898acc60439a975c8e9d8342f6f1a7d6c92f11606435878739d3bd27460fb5e735a73cbd1cb6c657d0a6074633de38647035b54bd10986e4573e09820ef56fd8d71ee778822f72194237c0b5344cd8c888f12bb34fc86e6147161143365fd45960396bf45a8868176c7d0c440fbb71b8c6aca11b6ef3e33484f9bc22d090011918c3525cd0f0724423bd1e1c2b46a66552926a3a6a0389410a3e5c41d66b07c1b41c645787e8503c613343cc73066bc85b028025c3bb6901e33e242a0061e001ecbb7ac690837b02282a457ccae40dde98934bf37dbaa00dae287fa0a628c42a66a7e05a6645b244e909fccb6abf0075bcf0974b97099a7c67a2c71090c7bb016210d0ab69ff775dbc47206429b347e6749eeb3e23983759a583e08b1653cbb5ad4b677f9b9b365287c1b559c199c3945653a3bc7b0da8b41914be5b411268080396795f1b95ae14871397e14f8f3bc940f00d669886668c2dddebf98e5e270510db63b9982ef818d1253d74a644fd56900607545ef8 +private_key: a1ea441afc0440b20c72e1b094ec44783325ba58a537bb2ba389b1a8e111fa85ac48716072d2345d789b2a9a07519506cba99aa60932f0a112282531a4123c99b8b4eba967f8b82b9b81c3b913b05cf51dd862810031aa7928242ce7b0a9404bc0142746b151eb3b002d571c07893507b7487063a4d59453dca293625cb45fc8464edc0322d3c9ee8b8c002c227d97b36611cc60204af3d88352d6bd6c07c87b1365c8c58d3a2468d2103be03604065734780765e4b932d6b0bf3935aac04849b0498a7087c7dadbcebc167858c778e8a09138481ef7074afc688829a45311d16077e5a9e38744c140159795a281206998943db5315599391d39007c25481bd79c8c0fe55aa013397be3ab85204792872577ea1b3393cfee4c90b442640f864bf0605a70f608657782a36cb78bb37d91748e1bc2bb388880a3b9ad78235ecad24b95f2c0f880a59775c90ca46819300dc0cb35ef0b6aafaa2f9234bfd7f0bf41507fe0166f7a4698e992373b6867704c2e7aea3344288d98b22f42888ee4da9ecc411aa079253309a2a9483d2ee2906518661e64482bb9cee4dc314034741fb7377728831664ad3a333105b261ee87b107720a5da79bb234cde3234364973237d825d98657709715b71a4d7b78952406b56265b6756611d9a2a4844924a78a0bbb3c25ffab7f5b94c96a3a90569cc178f06c884934b547a116938458e5bae601b49754b3e0e48c86f141dfc624ecc0823eb6215476911b4b9d13b93fce12076573b995ac8984b5a0dc33826d3b87ef0a77c363bf3d5c23255021f8612f28eb501890666b4486a972a3522b07e1c13beb539e731167bd535593796d68d6547c7913abc73d8812143bbb2cc6a05908c1038152655df28fba4912c757c9671b8d01570a5dd91a5dba81113a69d15395c25b474dd817d862ad78d24566d7989b3691faf25b88137f3c683e9917152e9b7d7218083df9a0e1fa702f184d745b7dca658b07a42494d27c15fb44f7c1199eab93daa26fe3d5406c09ad407b6d28945493db62a9924e755c29b7b1873f242f7c637d9ec2a222b9ceed63bc73543a5729b93d618c09738957c8368c50a58d01a7ba0bd06548b763a4b3891641e640c89af573be0382055a9539b471c661646047c10c52c4d8121bf32bc89532b763656cfb19be72330d4e7cab3053b900b162ff480dd5018c9202d0a41a4185fc554216065ca0cb01d5460f209debb40496eac65ac73ba264041bfb43db29b0038ac8c12164f9826c20ab8dc4248dd7717ec3d6c2bf974da380a31323b1b38678abf80a32f832e642c31fa69a163b4a3af6250ea212e8033377d1c596a72795196de2873bcc00c21e8b5d75619c31cbb1b1e339aacb204c919b43cc4982b3405d82bb0c97b2db370230c2413418c91eab62e30b57b304a91568a8dd29506e656c6785bf482807960bc962e43fa7d8ce04669044924f8c62660e5a0eb9c4885e739c58c22d7440583189c6c9e51aad37328a1c605bc44136f34b3fa82e24764743a43983f91125415c2e5042ba6393d2159b8992c41781a06d6c5745c5cc3bf10785f19ba1133cba89c2609a26a3524daac54d152b34d62399459cace6d0caa1d01e77841ab153387c64c5dbbc29bb88250221046e927f6e7a4d85c5299887ce3774a726096d37c61343aabdab95720ac89bed9b7ec29a14568178c9a63eae1268f9f29d9c4080cef312609834bff34bfa775b4b3078fba0cff3812c1d79674d13c9a0853f89a1bb9a87529d55548e303d51d8004f539f60d17e3d858037e90e04dc54a2f8bba79a395efc823e085c93eaaa069c4a27720c16047934e2cee970bec418a02cc91ee82a3999870fb190855e571c075445e2f53c8eb65f4a18844032b6991c098ccc069ff55a84d484e4261c7a379655aa1d2fa461aaf74deea4603838b9e8d908f9b7a3939c17b97cc9c330438855c77c284270e81528a745a7b97098b55e7a120791491c10615494b39934143b18311e83b13b6e92bc6d450b47b7589c1571a122370cc98793a13d1e008d57e955998c222a97814a1caa5fe7c336ca331bc6266dcb85d3ebcada0593c04bb91c3155e83b2e0a8a57b5532f799263b0b3111b1146fac429ef4c870911399e8158915b7522477500941b2c560cd7a39000219f2ce082fee023e6c49fe0381cf056ac1bdc95895271f4e245bdc98ee3a87f651191832b224b3c5528562f9498979c4485c3206eee0a6f5cba8fdaa70dec105bedc40e4c6b667d1739c8580f2d246371f415411c803ae0b52f0b5a6cda5fc3340f1bfa10bb29accf402d6f06472c14cc52556e5a97b56c190eabe6817985cc346baa02c76afbb6b6dfe33f711c78896a529656b4abe25516e448bcb41dbabc340ef4b483b750b0180f68ec0020271a0e9b9f466a4728c19bdaa426fb82294ca00261cc0c3349b75d397674644ae5ca363774abe8a290240abe4039a7e124cc894657c9025e1534b91b896eefd3af2d559da9f8558fa7774708a7fd535580545bc68c9cc89ccdbcc78ed5203ffb653965e7b0920574b7907443b9931472cf19c17dd18ab87842c853462366646881592ec3f5cab67b7e768472a08a43681120f491bcde05a9805c6787b96ecccb05d7d944fc858b5ec3828859234da88d8d00542b104883e824e7b630267111e49b1bb5e4103ea9ac2b187e046b4cd109709fca26af813440f30318dbbc34598ee5dc2806794c4e0a8c6b9c2310c34636088da92147d6b32a7bb447f50b898c5a3e5cb43d6e3c147ad085652ab9edda72f25b7bf250ac84d1288fc188ba645d88333b65b1150722334b5616429b608a0c93d0d946c15576c82093e0b263bb521d9fda997a461f1ee47098861feeb8b557b4656cbac57dc61fa9510bc1c95726b561a1ca4000f28a5720c42eb932f1ca8fc9b647d3740117ebca3d5587816bb48cfc1cb4e9caeb7834e1814a7c478fa052640af253371242da9575c2a66bd01c5fca4b958ea437e6474301069d0ddb254bc4603d3ba5b7415a96e5327743662caa7e08f608be974341b70db77a850b2c11e3b4cc6525808238cb097611e77cc449f17c63da122966394e79518fb6022ec470e8c5082a945c73b52f05c38e2dc3419af4080e890a6e819bb1b301046057e548894f511989a40e854aafb62ace7e586793921e292cc8601181599977d9fa457aa2039b14488d5698a8f03df1b56479f9109ad105b028219b3c90adac962369ac1f0043373bc243286c24f599de3a28684524988198971c1f88419ca09b3e4f22b64a221df8d32afdb0572ba62c7387235ee2752903535c9c912ae30c9151a3b6c415d59a4969cc432d088196f22c518037044236eb441438acb6bb61ca45c947ab98a53b44c48119135f776f2aa4a8413a1142cc4eed8c2948f8ca5db39388dbcc15c12d13035763a57c523b99a1912d0fd29b952776eb03aeed697320c66c0f65b369e13c7eab1e98b281e7b17cc2cb9ceab725671bb5df0933eb5c70a3d39e0eb5a55cc20af912af87cc23e10ab77a9c9755201ec393b523f51d5307b176f05fea16a2dfcac794f834f60a712f13ac8d5174d3a7627ce66fb862497cb95e36da3f486c7432e5983c2cc8cc3a7582a6b22c5a7ab3bc5107c831af145fbcf74ef9523bc7f0ca5eb97b34a3872b9870eefa3fabf609475c46b1e736cff313f046b6050c13392571f2d252959aca2f8418f7489809ea51939a1e8192bea5719262208109b37bae2424ec3655ade90a9ca235f69c8a3be54793655a9e8c6e9c64354a842458067295f08b6ab3b938e6b188bc252d4569589282eb703f0cb237a67a779d8957c4602a9bd80f266303898acc60439a975c8e9d8342f6f1a7d6c92f11606435878739d3bd27460fb5e735a73cbd1cb6c657d0a6074633de38647035b54bd10986e4573e09820ef56fd8d71ee778822f72194237c0b5344cd8c888f12bb34fc86e6147161143365fd45960396bf45a8868176c7d0c440fbb71b8c6aca11b6ef3e33484f9bc22d090011918c3525cd0f0724423bd1e1c2b46a66552926a3a6a0389410a3e5c41d66b07c1b41c645787e8503c613343cc73066bc85b028025c3bb6901e33e242a0061e001ecbb7ac690837b02282a457ccae40dde98934bf37dbaa00dae287fa0a628c42a66a7e05a6645b244e909fccb6abf0075bcf0974b97099a7c67a2c71090c7bb016210d0ab69ff775dbc47206429b347e6749eeb3e23983759a583e08b1653cbb5ad4b677f9b9b365287c1b559c199c3945653a3bc7b0da8b41914be5b411268080396795f1b95ae14871397e14f8f3bc940f00d669886668c2dddebf98e5e270510db63b9982ef818d1253d74a644fd56900607545ef85499cb370a74dbc96de89daa52e6af0482648e3995fce28f7b7c0daca7b78f1a230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 + +# Official test vector 58, seed: "bd334d7b7eb14e00e68863f2e5551a095f8af10681c28353fd19b9a7e70b8bfe266840860609008a567abc66316c77ce" +seed: 6396b328b100e4c7f4bcae69875edea1a1982421558c608c13c592bf7b5d0fef1100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 +public_key: 4f240d6d4ac24ad53108968ce43555fd4bc4e3ba3df7a1541e0764c6a387de455a564203faa38457376a3170360b5303be69450acc7ffdf638a90c7cf4031719eb27fad55e4c901cb7dc5fb828ae50730609b80d5a92a89ef1963d836a16685881028759d06c55b9505e84b1aedc5e07d5294a084c1201c0109699b3009b2c67603c055949f400ad487167c1ce048b49a98a8740abba9291618f7c395d77b0649cbec1a2c0e2d25c86c70320e92be7595e103013c4974b7a3b70d8100d61b89a1ff43c30f48c137511375ba781e74bcbf322be908d09fac8991b4213db7a298c2c29455b3a5092ec8610c0325187434239a8b651f0a164240ca4e827f7bb7345848e01b50e34162a359c2ef8c8c9e6e9b7a18bc371a20d2f086865a83a2ba3545943068e173941e4875600183fb19bcf8242fb576f908a8d805cb0909054de4cb6b84b179478a0bae353d8b10ecd278a310466fc0a00c68784ef246f1f0847ccf72894549806c2c9650c9430b02fdd5cb0b3a9608bc85f02dc32933811d87322dc4993d3d13177b7440822c62fc7a31ea174159814c59bb209356c5dd20620b40d08169df1a12d913105225cbacd9c6054f1499d6204cee06206389b05057e579a9e294b43243ab92e136265470786b256f615cd3540c5ca675c4bf68f7da4760105367ad3c6d71a2a4b209296daba2768223aa30845d4ce7d67c2906156bbc4c24410176652765e294a9e22c58cb031ba06a11b5a8ae035a37db36ce1771999061d722cc99de03e96ec3216543ef74447dad96bfbd386b3154b35e08dcccc88791677053a0001dacd8eb6c34cab6eea355a10c517c45164e9eb4c714091bf129186a6b3bf33a86049671652ceade8b55ad17472b49513a79f2b867bf3157d5dbc929974147903ac69a6618f67781a450637eca5d0950948ca8f3d7c41983b8942b03d6a04842a09a4896ba3cd345e7d72a16ba3c63d95a1e85ac4fbf42efb588b088749e2f66bd6f06d56bb80a818c2c56c5d1d1b5580863d1ef10ae2a97f5f83be12491c7fd629d112823d728a2aec939e163436259367473ea0b63ed37bac19934da906a21e5355a3a2277519c8f53c96b4f1a8704b8d79666c1224819590048f5b9a8b767ffda0a20697caa075ac25b5546ae32eb2959947b11fdd384aea2692f7952266267aa559c8ef9168a04cc57fd8ae46674b75e785535a2b1c0c779a553f4ce5c1bf6094541363bbda825fec4b42035325a3a2b1a8135dcbcbf1122b8fa1a37e925440e95c2e4c0ee1f69318d04282c0bb5fc8616e99c9ace80d27a79b64c843b08cb9fc7a27d20309726cb50735cb3450be54d86860d7708b11a615dc662ecb229997004f9670e27898e78a4b3732b4ae5cc459f28e78741f9355a8ef9b394cab001c912124a01d27232f060ca523d378a5d42e0022bef2d2700d7c6c14da09736679b2a0c33c035b3f0513bdb5b46fdbbf3a5b80d65c4be918511bc8631e35aa5459793f858f364c96f2010d8849229acc89e8a50360551afc8c1d481a1c21ebb100079cf3d45ab4159371c49b16cca69fda67aed5881f300c5864c03a9391ab1080b92601f23a417a0563c0c14b16b0255c36529f74a103036466fa9290744eca08cb16b94f30340c49581becea5b64088fa7498e02b439981cb4b4ac29ec4684152830ed82864ca833481323fd8a8f66ca34bd4abcef70c15c926fb8b6323c609efea710dcb6548c06bc13d6bbb41b40caea5745c68cc550873bb467f9dc6b3e720ff4649aad171bc5527b0633cc2709932f0869a0702da790a305761f9d146c1b24005f6c1c808b6dd5d97c647232e843cd61e39894902b76624b73739e3a1bbe4fb1b4b2348c836592a2d31dc9884394628ebae00112643bcda9a01f34a8bfa828333b32e8063acc5344a4b36667691c55c50b2e3098bb4c7069846283b57fee61089654a8ba06797c57c2e7e9bf1404077b80928f5a1bb6c6a753bb8a95bc46748c32e0e1c8f7aac1e2573a47d104ff9567daa2c0732c501bb9ac1315a211c11593fc1a38a69651347b6aa1250f3895a7844e1de2ae45ec66214a8b41da464baa5fc50100c5073bdaf5b4a88c70450256b6d65413ab3ed302ccbee864c578733d40a796981a8c3849f465cacaec79898cceaac424fcd9b57b426caf306d165d1e0ba6573a638fd7df6b3f824f240e7e0eaeee7d7a093875 +private_key: e8d7111942790185ab64776746d835f4f3b4b8458eece8cf89e08b7ae974bb84c5a5325faa7958f830bfc65a3f57b9bb311928d939b7bec454b051b399103aa8f871f3d87d240693a2d10587371a40fab0a52a3c13091710476a393a90a89b3ca8ec955f3b42287b23b2519cac32a1b8ea6194752a3b1083930a0c415159da51967ba96299065158f156d31189c797c150306c2903b1fa4639252aba2e131b3ee74917ea269aa41cfbe05915688b9e73780d46ba63325601895aa054023ce760347bada01916087a700963aef293a40a0b3e4de60258a0a687e367489a684a22b86e22aef5e5976989b09f1931d3e753a6265aeb677c0fb3629329c28b2061be210b3c156b46c5364df8b74cc95b416341ae5080488b895e2c4e7005901f5397249a3fc1747baf1c8105eb433227c959b6ac876629bcc911eb671689b2bb33d8b6a1cbaf90d81ce3f11200314dc0a53b41dac824ea117e25852f2339a33934278cca7dd0797c7b55af75ae8f6a1c34f288c1124dac01ad5399c1966049e8569efaa305caf9bba4e92e15154d2b2521d0f245aa89788687817afcac195315befb50eb77bcfa487be2547e98306fd9e92bab57cc7935168018c570260c93d712e3058a843aa36e88123815a847411a3c4078e336b2bd26472be6b8bec382898b57e02048e531b335894ccfeb24ede00f9a46a34ddc67f9f73bf5d98a87b50fcb115694e7b3daa7067f287dc665a13bc58661b53137401403a211a3574a7a596679a021f8458c7baabe9efa18f3f82bdac20c6cab93bcdc2d31218dfe0c451724226961189b460958a9bd12d87446b7b8dbf65ac7d908ff1c9fb7e927ec1679da95c4b43cc5a11937b3538446298cc7b55b178078025a229be58a95a0727928bd3370901b180543d78233530186b3155a78162d3969bdd6b6a0204a25066303c495fdc9c9df947959b79497a805a3122c71e96efa728c6b92042b39b45291cc87895d4ab62a2437c9aa7754b54a48cb34c1070b08fe2cb2edb974ba633cc6c5413980ca5173160ca43cf77320850a12e402a0c94881d3c50eb5f317628c4e0477bb4b1b962c15081b2662d65c4ee1099c001835de716ac6a924d3702dd2c61acc2487851a14ef06c36c6925f9e6714291765d8272bdac11651ccf6848975d57323f599de580cdfd892209c7888b7bbcf6b65c1c32b5a8e9885a29c16446369fc51e4155b9d5081d9c74c2eb2c545c07277f608616d800e3ca0ff95a655b7189c48412556a8fdea48e0701b4d1d5175cf0088b70042b5678f91164eb42031067814db0ade6b26c606bbf8cf596947980793ac48f7abee21a854fe00551e98ce039734ca028c8d8a3169c9922dbc273580fd5bb03a85508e0141eef13a37e80ce35531ba7b900599acdd281ce729c4f2bc6b898b47622f5b559e7cbc86a26ad61a0edaacd3aa638879296a5413dddb78edf347879c4c325ec69e2bcc7710b65b4821489aab9ab7c8ff9e6b8bfec9d5c61967b1c77f7823cdaca03a7fc04703740dba421c30b8ac1894ce58845ce9a73b2321c65228ea0d64c68d3c7a6533837b6967ad3139a709acd8517ddb693ecb75ce3db51b7235b34c0b296038a140737bf77ba7ae91c9c49200d6262a2d357ac390c744bca28c9ca4d32a2dd8b456715907b1b42e7381a605b16e4e2a021e383f4d051f859be8e83b39a2bbdb9987a37423b689718c72365dd5b65d1601b48707955724ea106602b6b4c2223b142907195855d652c13cbf29340753911714f82bcafbff178d52bae8b9447cef9745a6b18f53bb697ac157516c3123c526073cd7aeb3550128b1243b95f178705accb7efa2fdf9c5ff9db4a6d1c171aa7b6222151375796b93c8f39b8262d56169f591a8b3964ea228de76710698698f23a147e3206a8641f5c46b7573b1eb13b8432104fc7751e813c4004d25c2af512c5a47bd4a50a37129d7b0b80ae551145356ec304751a8ca143a57c6c1830ab5717e3862b50f70b745b33210bb73b340154b6197f1423f9ccb88feca121e24e79600dc0b047a36b1b76697fa06395ca8769763443695852923572566abf8c5c7097f6425ae1c7e1185b1db5ab75a9856217ae82c61c82265e18151f831b65a5b435dae57a89b2ad55c3cc02f70fcdc55901069a2e773b4f240d6d4ac24ad53108968ce43555fd4bc4e3ba3df7a1541e0764c6a387de455a564203faa38457376a3170360b5303be69450acc7ffdf638a90c7cf4031719eb27fad55e4c901cb7dc5fb828ae50730609b80d5a92a89ef1963d836a16685881028759d06c55b9505e84b1aedc5e07d5294a084c1201c0109699b3009b2c67603c055949f400ad487167c1ce048b49a98a8740abba9291618f7c395d77b0649cbec1a2c0e2d25c86c70320e92be7595e103013c4974b7a3b70d8100d61b89a1ff43c30f48c137511375ba781e74bcbf322be908d09fac8991b4213db7a298c2c29455b3a5092ec8610c0325187434239a8b651f0a164240ca4e827f7bb7345848e01b50e34162a359c2ef8c8c9e6e9b7a18bc371a20d2f086865a83a2ba3545943068e173941e4875600183fb19bcf8242fb576f908a8d805cb0909054de4cb6b84b179478a0bae353d8b10ecd278a310466fc0a00c68784ef246f1f0847ccf72894549806c2c9650c9430b02fdd5cb0b3a9608bc85f02dc32933811d87322dc4993d3d13177b7440822c62fc7a31ea174159814c59bb209356c5dd20620b40d08169df1a12d913105225cbacd9c6054f1499d6204cee06206389b05057e579a9e294b43243ab92e136265470786b256f615cd3540c5ca675c4bf68f7da4760105367ad3c6d71a2a4b209296daba2768223aa30845d4ce7d67c2906156bbc4c24410176652765e294a9e22c58cb031ba06a11b5a8ae035a37db36ce1771999061d722cc99de03e96ec3216543ef74447dad96bfbd386b3154b35e08dcccc88791677053a0001dacd8eb6c34cab6eea355a10c517c45164e9eb4c714091bf129186a6b3bf33a86049671652ceade8b55ad17472b49513a79f2b867bf3157d5dbc929974147903ac69a6618f67781a450637eca5d0950948ca8f3d7c41983b8942b03d6a04842a09a4896ba3cd345e7d72a16ba3c63d95a1e85ac4fbf42efb588b088749e2f66bd6f06d56bb80a818c2c56c5d1d1b5580863d1ef10ae2a97f5f83be12491c7fd629d112823d728a2aec939e163436259367473ea0b63ed37bac19934da906a21e5355a3a2277519c8f53c96b4f1a8704b8d79666c1224819590048f5b9a8b767ffda0a20697caa075ac25b5546ae32eb2959947b11fdd384aea2692f7952266267aa559c8ef9168a04cc57fd8ae46674b75e785535a2b1c0c779a553f4ce5c1bf6094541363bbda825fec4b42035325a3a2b1a8135dcbcbf1122b8fa1a37e925440e95c2e4c0ee1f69318d04282c0bb5fc8616e99c9ace80d27a79b64c843b08cb9fc7a27d20309726cb50735cb3450be54d86860d7708b11a615dc662ecb229997004f9670e27898e78a4b3732b4ae5cc459f28e78741f9355a8ef9b394cab001c912124a01d27232f060ca523d378a5d42e0022bef2d2700d7c6c14da09736679b2a0c33c035b3f0513bdb5b46fdbbf3a5b80d65c4be918511bc8631e35aa5459793f858f364c96f2010d8849229acc89e8a50360551afc8c1d481a1c21ebb100079cf3d45ab4159371c49b16cca69fda67aed5881f300c5864c03a9391ab1080b92601f23a417a0563c0c14b16b0255c36529f74a103036466fa9290744eca08cb16b94f30340c49581becea5b64088fa7498e02b439981cb4b4ac29ec4684152830ed82864ca833481323fd8a8f66ca34bd4abcef70c15c926fb8b6323c609efea710dcb6548c06bc13d6bbb41b40caea5745c68cc550873bb467f9dc6b3e720ff4649aad171bc5527b0633cc2709932f0869a0702da790a305761f9d146c1b24005f6c1c808b6dd5d97c647232e843cd61e39894902b76624b73739e3a1bbe4fb1b4b2348c836592a2d31dc9884394628ebae00112643bcda9a01f34a8bfa828333b32e8063acc5344a4b36667691c55c50b2e3098bb4c7069846283b57fee61089654a8ba06797c57c2e7e9bf1404077b80928f5a1bb6c6a753bb8a95bc46748c32e0e1c8f7aac1e2573a47d104ff9567daa2c0732c501bb9ac1315a211c11593fc1a38a69651347b6aa1250f3895a7844e1de2ae45ec66214a8b41da464baa5fc50100c5073bdaf5b4a88c70450256b6d65413ab3ed302ccbee864c578733d40a796981a8c3849f465cacaec79898cceaac424fcd9b57b426caf306d165d1e0ba6573a638fd7df6b3f824f240e7e0eaeee7d7a093875cfb4f6a03bb7707d37c80474f92c12748b37f448186584df115ee97c195d45a81100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 + +# Official test vector 59, seed: "a0264c58ab1f2cbcb212077fd378d340307accb31f1312137cf84e3d3135044d4eae8bd38bc3e540a0c14d46458f6179" +seed: a453bcacdd2b0d4646009e5ed451c3c45f08fb827ef733db3c517a9dc1af93e67a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba +public_key: 14905ebe26c856fcce2c623156e43efd0433c19858c986436150968132591db37eaff112c1383238c0767316c0077a00a4714e49d694d802a510dc960c525bf601384b96b90141b846dca14f34159db490479205b30800137819406bc6e14786dc4079e0481d098ca4a3f15f593135ca64cd7c32c46b45b3bdea0d7fd70dee467020ab49d4360355146d7f00337a1cb452357bd01074234b464a134abebc14f7557597bb057c4972d2f012b59a0b83328e88d76bd257ca5aca8912c2a9f90672903cbca16b9746e135108638c388676cd189452325dafb4ddfe435e13908b177a5fc883bc233679df34e40a09fe384654e6a857e49c5f62aaa30e123ed71a4d79a65bab40eb2ba7e1c497ea28c069ce9898f3789fb1b03cc07a5789569496a5a6b84966dc3b601577b07b01e2bd6afc315cbe74b03cbb51bb68920362474819a02e5c60db441a3e0a2a7299ab0913a92e3228986c18639ab0b952a01c77907e6a0b59625c01b1c406a4b339c10b0c8947fdaf5c14f6721be5c11e3a62a7065a78b9b1176e64ad075150b67aaf70820b9a62848378c374a3aeae6c63cf620d0927971c0188768991734754368bdebcac2d6b899e5ecc20922059641566b4996be455e90ba9aeca1a40ce8cbd68a6ac0cc708458169c624ef80a25ccc7c931d938687ca4a12290711b1e72fb3793a760a5c29942896853e26dd1606fb48c22b53506b4413e8f5b3c20b446dfeb586532a09ad602e5c54d5e0c0149ec3526758f174ba49134c980ac109e711ff658b7cdf0178b8c861a71c700e90b1ddb9265e9bfbc07a253726fc9c54419bcc39932555024af651a277302bf383cb67dd2a929037fb4109c69347876751f4f83955a4768fb94622390790796084215b6108c72e10217fc9134b7872ac6ea3d07b989bc70a23a826676718f31338c68a5b1f9ecba4b18bc47d3161419530b67041b3864686224d0171dbd248a48527950f2c4c857aac6f7a3394662afd84f79d5854ea77c26e7c57fd8a3aad0399ccba0ae4780ecd2481ae065e3597cf1868c327c14baf36d9711a3a8647d26ea52a4f9139ba835f380ce9cc599f6f11586f158f941520d143f75d00125a3806c56108de46c5ad093872ba5f927bb2a4a88e668c40af5b4fe9b17f80ca75ab58224ba1b485a9e1c3a6e82b814a1b23bb0d61ae14a9ca4e95d03746a564087f9c53a343ab7595572cf2542d7a9cc90060e6e99cb2d18880f082d3ac91fbe00c5ab141c6385895c626d9c143ccd94042a27509ff67c802098415a49bfe163ca01a20a45add4916aa512467db549e7b0c898656cb4265df3987998c8737f3c79bedba48b9c6b8967a9bfaa0b22e6858307977903001867282cd38a01798d3b71bed21459ed4c4ca6e185d55525baa096c1897c55789b9e19a6b303af32f493cee717bad70cedd67c3dd89bed6926a0f20b1798bb46d173452a31d7543530311734422f3cc9561d5360b665ad87a19da71a7270998b87d62d5e7b0a5ca969120b4c610848fdc6afc0e631fb2abc21096347221971a08b94b0ca4116c2f5a8188cd982f3e647ada99eeadb3ac25310dea91fa724cf3e1017c0c86c2a979791d30192bc3163ecaf73c819dcfc113535bb3a40b252c8bc269884cf7407fcda465c2aaeb19681dde0c99a3853a861ac81f77e1319afc6f67b2fe52dba6b38523147f4e589ee716172650c7cb44e0b760174691217093ed4421dd5a38f2ca2c41604c592366a89c4c70adba149ac63de1b5e21e78788f33d9e135890e61d69529dd9f658b340848623b17447998bacbf1c315b1fc5bdf8fc357e89448fe7a40217205c64961cd643ac6bc3486c5efc003011e80c4f4494cba123c2ac45f7d9019cbc7018669921fa76db3cb5436763b48a8046fa71d186b57c942f6529930d23737c49698c15404de20f8f357d5da523ee3a117fd8b69ab80335e388fcc661a0c8b583f94a8c7869e464a0544c84d160a828f1770d97be7bc43cdfa8566791727b7884e99a5d9fc549369a4ec5195ef1285860cb263085740cd466bc24835ae33bdd1499ce941f8041571ab638bcf896201cbf0b7324ec22c6d3c00f60ac6e6f0317efe14efb13440330b50cf86227fcc7bedac20f9364e2593adb7599b5142174d6b999c725f7d119814642f79de48f28d8b47d06bfec41fd06e2da9ae905005ad241ba55ab42a993df7551 +private_key: cd85bacc99669bb19f64f32796599fa909499edb700670ae7eacc07c89b4659cb7c3bab323f3761728c79ec67515102091b133e3536a2032093df24531874108d1010194338b16475f531030e0073ad08e168976af67243eab3596b9975b2a216e8146a5192577975883c21646cc20c036577dd709edda6abd44989e6a8e07c555474b3d14215777193308d56fca4aa7e2378a94f80daeb4788f4c87b6477193d7a5d0bb6c49407adfa222e7d34ca19b046cb14a37db2cbe781288584f5c386a2e9c4fae79a106c28f27c49ca2401a0a375664e885070814f96c9048993300065037ec06e1e692a97835c129b06707cd501c6c5cf1646d82365942cae5e104a5bb71fdf42518485c1602838929244a49b194c76cfe2bad0e758701214cc6c938adf0c8e4712e0ce148576961f3b613537a843ac07243926a92a324adc52b65152c69613acc6336341a72f7104ad72c540de40c4bbb8611a03ce9271680aa77bb827d7bf629a44bca141c0cdf912b8b372a32030ac9680a2b64ce93f726001d6ba184736d571cfc79282cca13dd0aa3adc14683ca9bcd89b72d7cc280963f2d37925d57693b947017d61b716626e45a5c6eb295ba0963f2a9086615697688383ee8775228afcd760c2a90c85d18c3fe553edc719926ab0ce6e40d690a53b34626c6e28925b469eaeac11209c7b00a03f020cc25176fad9a2ad2b38fd16b04758a5d379630f3c9cc2b0824eaa882fca6b134011a0e3035b1f2cb19346303a17837c30b60f11ff8795593035c6d335496734c491552ebf4a38ea10ab203b13f325a4df221b9dbb7eb01ab00097845c1335f6349ce50c15e64a02e644e058807c9b764badc44c6f21745c80b6f4264b1a7ce8fa65657d75d5319807a9b5bc17b1d76ca64ec831e113c1b8e79b5a1fc0b32d21f839a64bc212722e1664b9ac5c39a3dd0d8961d53c6dd697a6c896b664a6c7c5a70de5a0df2745a64cac12447b70b1ab16395b71dbb810d763faf817d42149b99181f9b9835c8e947cce200a5a5aa573b44544226b1607cf58968b3829de360952a8307f7fcb157c4affc5009ca6628f0527042e235f5d1c1a91bc178f8288bfc37b2f53077cc0c7c414e59f57e78d5357f447871579b54421986116c6bc22be84080422c9b983794ae70304d601e2cf0ae29f6172a5529e8a4a14a89b064a3b142c4c90e421b59a48471e4852c749b9dc4867c677e52e44363a5131eb5642c4415f5248ae4358a3fbc01beb2568c8321b711bc3199814a2b9e9be56e266b2639fa920dd204dc41518b19b8a9dc0b5ba3290b362e9d071dd61c041b4a809fb92f0cd2b25bf94f04701299ab530ee704dcb6ca69613439c4c288e7a0643ca3ac321d930a99586c85ae0597b2c56f9a870e7bb260df51ba7a62bed6859d7159b56b211d282b7e1bf85d81b1258fc01e2b8b15e3829bafb34aa81036d05531d288a0efda8106362da9878b61a4b3ab6813f27ab65bdb48105686ea3594fab5c2d83aa867055a233052a5d57c741086814b7e4ca39b688669d4688cfd92203c902dc1d9831d3652475328c99bca41a7b0f54a7795f8c2a4f90f305626e4e31b983c9fcb0748aaa856630a67399b37a2f204186388dcdb740f8b8b00ca0e328958a821a9f5e9a26d39c60a37b2a513b79c37930a992f3710ba1f574471f2175d2a777112a4f5444d37db793d87c1c1e8b4cb37bef3d06f8785ab65d8bac7c07cb4003fd4a9933c3117e347664d92a18f137980f8065cc031aeb8b1a98b24656031c3b57d36894964171d6f511058e21a63a2083fdc37ef1848379ab86b7c53eedc941d16174553966415439f6944393660c6209e59981662387a1e827b768787b8b46b685b8bb3b72175a367af89b5f3953f4a636f9bb89b8351866a335a7ea422f9e9c794a24372b40fd277a5ba2a2531a4703e60827f562acf95a8193991c8f4417109c059e91c4fbc289233b080a0aa8a4b3e02b35cb59216a9c37509a91725910cf8b11d6e7b985ba5c0d85073a99b324d0583c7f8c73901847e41c4515048a7556a0cc206711550649926514c96e3535ef6194a37c1a3eae023a8851dfd0bbf0efba981880c19fb9d4e6c2f80b4b8cb4031b8106ab6ab33b6a37b3f8b5d133244894ac86929b4373b30f6bb4395b11914905ebe26c856fcce2c623156e43efd0433c19858c986436150968132591db37eaff112c1383238c0767316c0077a00a4714e49d694d802a510dc960c525bf601384b96b90141b846dca14f34159db490479205b30800137819406bc6e14786dc4079e0481d098ca4a3f15f593135ca64cd7c32c46b45b3bdea0d7fd70dee467020ab49d4360355146d7f00337a1cb452357bd01074234b464a134abebc14f7557597bb057c4972d2f012b59a0b83328e88d76bd257ca5aca8912c2a9f90672903cbca16b9746e135108638c388676cd189452325dafb4ddfe435e13908b177a5fc883bc233679df34e40a09fe384654e6a857e49c5f62aaa30e123ed71a4d79a65bab40eb2ba7e1c497ea28c069ce9898f3789fb1b03cc07a5789569496a5a6b84966dc3b601577b07b01e2bd6afc315cbe74b03cbb51bb68920362474819a02e5c60db441a3e0a2a7299ab0913a92e3228986c18639ab0b952a01c77907e6a0b59625c01b1c406a4b339c10b0c8947fdaf5c14f6721be5c11e3a62a7065a78b9b1176e64ad075150b67aaf70820b9a62848378c374a3aeae6c63cf620d0927971c0188768991734754368bdebcac2d6b899e5ecc20922059641566b4996be455e90ba9aeca1a40ce8cbd68a6ac0cc708458169c624ef80a25ccc7c931d938687ca4a12290711b1e72fb3793a760a5c29942896853e26dd1606fb48c22b53506b4413e8f5b3c20b446dfeb586532a09ad602e5c54d5e0c0149ec3526758f174ba49134c980ac109e711ff658b7cdf0178b8c861a71c700e90b1ddb9265e9bfbc07a253726fc9c54419bcc39932555024af651a277302bf383cb67dd2a929037fb4109c69347876751f4f83955a4768fb94622390790796084215b6108c72e10217fc9134b7872ac6ea3d07b989bc70a23a826676718f31338c68a5b1f9ecba4b18bc47d3161419530b67041b3864686224d0171dbd248a48527950f2c4c857aac6f7a3394662afd84f79d5854ea77c26e7c57fd8a3aad0399ccba0ae4780ecd2481ae065e3597cf1868c327c14baf36d9711a3a8647d26ea52a4f9139ba835f380ce9cc599f6f11586f158f941520d143f75d00125a3806c56108de46c5ad093872ba5f927bb2a4a88e668c40af5b4fe9b17f80ca75ab58224ba1b485a9e1c3a6e82b814a1b23bb0d61ae14a9ca4e95d03746a564087f9c53a343ab7595572cf2542d7a9cc90060e6e99cb2d18880f082d3ac91fbe00c5ab141c6385895c626d9c143ccd94042a27509ff67c802098415a49bfe163ca01a20a45add4916aa512467db549e7b0c898656cb4265df3987998c8737f3c79bedba48b9c6b8967a9bfaa0b22e6858307977903001867282cd38a01798d3b71bed21459ed4c4ca6e185d55525baa096c1897c55789b9e19a6b303af32f493cee717bad70cedd67c3dd89bed6926a0f20b1798bb46d173452a31d7543530311734422f3cc9561d5360b665ad87a19da71a7270998b87d62d5e7b0a5ca969120b4c610848fdc6afc0e631fb2abc21096347221971a08b94b0ca4116c2f5a8188cd982f3e647ada99eeadb3ac25310dea91fa724cf3e1017c0c86c2a979791d30192bc3163ecaf73c819dcfc113535bb3a40b252c8bc269884cf7407fcda465c2aaeb19681dde0c99a3853a861ac81f77e1319afc6f67b2fe52dba6b38523147f4e589ee716172650c7cb44e0b760174691217093ed4421dd5a38f2ca2c41604c592366a89c4c70adba149ac63de1b5e21e78788f33d9e135890e61d69529dd9f658b340848623b17447998bacbf1c315b1fc5bdf8fc357e89448fe7a40217205c64961cd643ac6bc3486c5efc003011e80c4f4494cba123c2ac45f7d9019cbc7018669921fa76db3cb5436763b48a8046fa71d186b57c942f6529930d23737c49698c15404de20f8f357d5da523ee3a117fd8b69ab80335e388fcc661a0c8b583f94a8c7869e464a0544c84d160a828f1770d97be7bc43cdfa8566791727b7884e99a5d9fc549369a4ec5195ef1285860cb263085740cd466bc24835ae33bdd1499ce941f8041571ab638bcf896201cbf0b7324ec22c6d3c00f60ac6e6f0317efe14efb13440330b50cf86227fcc7bedac20f9364e2593adb7599b5142174d6b999c725f7d119814642f79de48f28d8b47d06bfec41fd06e2da9ae905005ad241ba55ab42a993df755120179b32e6faf885f946898d545245757425d719681b0b2ba24d49340f931cf87a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba + +# Official test vector 60, seed: "99a9cdbfc674ab3ff2c64cded7d697a6e27a767434a47aff7c3fbf3c6a22d6043d27868955286a13efe3de36d22ec48e" +seed: 47ca2b77c5b717f423222c2730ca5cb9c856bc951d01b2b2c80bd76ccb5539b78f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 +public_key: 212bacc3413ae8c00a2b78cc3b0c7958e349211bc64f036a70aa16067882330a36aa4cb183497c0251b2b942964a922c25525ee9e3834504a085540b36971963e09106fc14125659bae0c96e6663a479a381a915fda7b8a404061c90b814c3146a549b517a3735760244ea8959eb2d98bc37e2f7309e09749c4c689f6b640d28a7a0b8524fb9bc0b544eb219683be91e79baa327b5c0d2f2713b78341c9682f6941327959f853195aa36b919e07c1d5723d6528269b360984857df1636f2a80cf1383a775c230a9991f8602d074b5f0bb42c13ca1eaf4b3c7336a4fe61a8310c9c27f37454f9af3ff0bbb2232689c63ce4b7cbb880886b36681414902bf77a2623ae5f0c359c038f82433413d2cfa88373bbd17bf1d5503774939e916c415c8b929b5c2303234501ba642b75ef2823e42b71647014044a9450a55cedc0592da6554cf74693429d2d526d34851fda24a64450c785510111988982914fcba3addbd0963c3bce55f41b3cc71c0300ba32b02fac76158d673ab1ec7a23b30afd2a53d5aba3c3c87e0fa54408864037511dc3ec113153681d28c45b2a25e7256b6fa90df8b8ba8435b2f90727d4394eaf49981b397916c1642abb68f5006fbb2ba6c2c53b6dc5795a261ba674778ffa7e9daa65ac93366954710419c99fb21a46b029242158294107dfa28c53554aa3d79878b53506ea03846a9041664bab6056f7211a337910f77a2f37b993324927d64aa0d5085840475039c04acaf0ce5721b1f182b53e96928927961b8a04500118a453738c78b8a796ceebd960473b2fd2c9c825593ff4a95f3f659ef00b251449a253332171bbcb051699b100501f84bbc64c4e7f9c7db1190c4621664fb33c624910078155c1f2035d1755f7b10112e4521d58cb9c89575a3a2fa6caae5dba470a9b4d3fdc9b7ca6ac28e0570cc92647d382d04a5091d8a1ef749067848cda293a47d772372820f25245ff457580857eadc0bda0a059ecf1a3adfbc6d7e87184337e94231e8e3774c9854ef1c6b4c872bea6f939845942ff2732aed903a23b72cbb5122c43c8ed303ae0d33a7a704001890f0b378039ca271205d052fb594c526e7c761ad6b0cf14bb251225c7ff42b4b5f651ed55143ecc05cdb21962157e28d7be4fc4b5aebb6cfce5396fa51af1bc85fda50b00fa63ed800d60a5761dea715258bcf597a434e48b23202d8a415831c0417c6c43a659036df10772e796a2d70515939823575cb5c01d35155f7399bfe1b3ca9bfa47ebd69f5c8cc8879b87ae34a7dc32568817aa3f923df22c92be454e99d83023d3caa2e80e0ecb8818414b0241a6315ab20b63c422b6be8572b5e7f249fa3802fa647febc89c8ccc22583c144c191b91187257235d857b9bba3b13db06be10a35d712c540e7bcc62373d76e5828be049b6462d8da931f24a6827d314f5c0ad266a3529fa9b47cb6eec425b326ab0bfa032b6809d82c1cc3e2427787a413daa7d3976aaf83ac08d87b34da219a92a631784bce31cc66693c75aa58c7c87a9e3a926b5229a4f008b85090f351694f66743dae3a59a86299b43c20522cd82f96284623ee20b521794114d1459fdf70739558123f18ff8304730fbc63f198a2eb992e7115e07f509dc58b1e2a00c314714b5162334861ec20acac85664d14057d2788207c01a7ae383c93971d850102d60ac0d042c648c100ed660ef8a2cad375ae1a21b11998264e86ae0561e19d971689183968a98be064486b8abc3634021f770e2581b4383aa3c938bf3aca4aa2a337ec06647aa47428bc027339f2802b9f135820f3a8bea06846beac4c1a2702c502e50d338fb80a590a564f48a6606a10b51e839a4034f2b906ea34b4d3c875f1ff6bb57797b076638e4b576fe8c5a490806bfd178b4569a69626001c8a5fa1582bf4bb7bd586296f9ae74724d7b6c9c38d25273e114fed525ab008b887b9e5871172cc393938902914a3ace06a41cf92f6da963e4217f6b1363f7273cbf4a342865a761371f24285113e74f7a770079157c0ba0700e6bb9ca99ae10b83299ca9445b8024e450cb6152fceb79c0c433753c0b88b21c71bcb38c643ae5e16502fd14c0aa8939219005a15180446a166e74933f46f41a68675692e25816e7a227808764e20c98d33d6c3ef3801d21cb37d2872fe76749aeb09976580ccd4feadcea0b16f00970f92acb21c560501728f +private_key: 6b3b1e9e6771d2b6946533c210a8bbfe297df569cdfc56b501c54ec9e21dbac3ca24335438a71c456842ce4653ec9b4ed5ba80ebe665b40597230213f58951104c7ca0f225eb535fad8c5724189b49138c22f4478b19492403c2c41c452080a2625654beab411ee59f1f372effdc5dd282a5b4244a8d7a0ade30386a13a353d1516ca38991948497a4ca83cb9f65f5aa1a6ac85dfa634253068b2b43a1ac8c41f156e0acaf4f05505edc57a1a6bb1a890c15d35967b86e84f16d2a1056916c8f90db83b47275b28ca3efa0bd4f18b9caa5b480e80566cb3951d606887777c2c3bcc88640a6c1c826ea51b169c8bb11a7f51b084bf0246f93990e62ac6f012b89eb025b5962e9a6bf36564ee9b483895b2ecdd6699421abe9cab8820771e121719922315de8677fa1214e332379caa11133a5ffa13dbba75c6491308ed201c23812db0a8d006c9ca9e7606c532557c8555cb10d6194284b71275ca84eaab50e50470fc9e8c2954b70ecd96dde6937616618ba91b1fa858335605c162972495c4846b46b6831477dc5658751c0169a5ba0c733863555f62c5c1bc5c83bcabbdbf1438617412bebbfb5705622c258a301caa76a4561099c3ae34ea4e014f89431cfb957c6a930315b7a001955310caab03076440594f7a66c1385637b69135ad50df1934a1bc754eec983dcf351b306a14fba9ea5b6a416fba9b46a40c99b640048aed0e4ce74771704a3b3a7c90009c964e7b055f4753bf062349a368aec2423bd6a278fdcb3d9f0c81ef551a0122a72175e76d5970fbaa44ff8399fec7498e59dcd685a6b4038b3b5bf47dbbce204ad99b8945bd3afaa237af16a81db0c15a906364e1733427b28040539d32832cc5a7f0cec282ed902df9a0af281cf14256da8873317fa5f6e9149a2d6ab544c97697683032455591c75eb2a0bb4aa5eec1c3499b64b78729b6cb7553f1653bd4181224cadcd62ab80f5af7478b909a4ad9dc1cf97e608234b48b2d9b005a5ceb80ccafae85e431a258c77601dc3764823177e970ab5763b154447de89cb2c6cb11ee51195f59977f983c1629dfc640026a8c36b909d4aaa9f9e0b642140a35d2a5fe503a07a800c62cb4bb7c6334c056500d14337dc984c7730fb37891ba737f2a65545b2943bc22a5099345732a1129bbe22e88b987aa1c8e33934323006eac14f03a9970cafd6ec587d15544ed9950d5a851c63898c3b2331192e0fc620937c30a5e8b56355319ccac8094ca136c237941372b17ac5367aac78269658f4b40d04b33e84961733a353baa9d5f4b2dc69609ce6a00ee6af8dd425d2b04bca841411473070d7a1f4042a8167cdcd138634619bd78c5c37511b54b3857a897f17fa02de663854196418b4b23ed80008b6af534b28b1f0027dbb41ebcbb83c9cb0f0080d5e9c8e80a83d120a0d679c9b3eec7d4f94c9046832d947a622f7509d41ae888107f5fc7539cc0053a1365ce005caf627f8185cd1355d4ae65638c18510b93eeb87642cdc87fdb858c4a997bce0963f6b3a1318c206635289aaaf73a33cc7d76977e3570aaa98c515436ea39cde485342a4503d991ab2e374ef2ca8e221c71840b876100aeecabd475233a40122f2832193f40bf29ac1fe71c1eae1767ea470f3e580089ac09bc1737fa3449b4b9911c114191614599a8b8e02060517c57ea13baec5ac77b34b7ae21c2c9646fb6b6f9a0a3787760509e3cd9af200f8cab9daa5a4bd7a9c816b4fd7d3c0905a2347215f5ec01e40c605ded70ebf472b1ca4cb684272dcc75fc17a3a150c06af61ca0573ac03473c395bb35b34bdb0d3297a5c4729a14345546124377896b11975c26118d79970c76128502d474b8828b3b01a9bbad62728b8593a254734ad208f29722fae409d7f178b4a0937e86542527201a7e4c14547b599408552952cc65128533c4207ab047287af05e9bc5ef0b110e4ce977660cec3adf062a154c24cc86494bf5b2f3f1424f42a7308d0057f041c077528030182295a67c27422af6180a2010e4cc478444b595ca065b8a50de1c775174bbe870a874beb8649d82c07a68341165c11abad1fb5b7bdf2bda1511543108158471d94c3b59ad199c868bb67e210a724909b9452ded168587247977a70da79b3750c39f319b44198a5dbf047ce618c212bacc3413ae8c00a2b78cc3b0c7958e349211bc64f036a70aa16067882330a36aa4cb183497c0251b2b942964a922c25525ee9e3834504a085540b36971963e09106fc14125659bae0c96e6663a479a381a915fda7b8a404061c90b814c3146a549b517a3735760244ea8959eb2d98bc37e2f7309e09749c4c689f6b640d28a7a0b8524fb9bc0b544eb219683be91e79baa327b5c0d2f2713b78341c9682f6941327959f853195aa36b919e07c1d5723d6528269b360984857df1636f2a80cf1383a775c230a9991f8602d074b5f0bb42c13ca1eaf4b3c7336a4fe61a8310c9c27f37454f9af3ff0bbb2232689c63ce4b7cbb880886b36681414902bf77a2623ae5f0c359c038f82433413d2cfa88373bbd17bf1d5503774939e916c415c8b929b5c2303234501ba642b75ef2823e42b71647014044a9450a55cedc0592da6554cf74693429d2d526d34851fda24a64450c785510111988982914fcba3addbd0963c3bce55f41b3cc71c0300ba32b02fac76158d673ab1ec7a23b30afd2a53d5aba3c3c87e0fa54408864037511dc3ec113153681d28c45b2a25e7256b6fa90df8b8ba8435b2f90727d4394eaf49981b397916c1642abb68f5006fbb2ba6c2c53b6dc5795a261ba674778ffa7e9daa65ac93366954710419c99fb21a46b029242158294107dfa28c53554aa3d79878b53506ea03846a9041664bab6056f7211a337910f77a2f37b993324927d64aa0d5085840475039c04acaf0ce5721b1f182b53e96928927961b8a04500118a453738c78b8a796ceebd960473b2fd2c9c825593ff4a95f3f659ef00b251449a253332171bbcb051699b100501f84bbc64c4e7f9c7db1190c4621664fb33c624910078155c1f2035d1755f7b10112e4521d58cb9c89575a3a2fa6caae5dba470a9b4d3fdc9b7ca6ac28e0570cc92647d382d04a5091d8a1ef749067848cda293a47d772372820f25245ff457580857eadc0bda0a059ecf1a3adfbc6d7e87184337e94231e8e3774c9854ef1c6b4c872bea6f939845942ff2732aed903a23b72cbb5122c43c8ed303ae0d33a7a704001890f0b378039ca271205d052fb594c526e7c761ad6b0cf14bb251225c7ff42b4b5f651ed55143ecc05cdb21962157e28d7be4fc4b5aebb6cfce5396fa51af1bc85fda50b00fa63ed800d60a5761dea715258bcf597a434e48b23202d8a415831c0417c6c43a659036df10772e796a2d70515939823575cb5c01d35155f7399bfe1b3ca9bfa47ebd69f5c8cc8879b87ae34a7dc32568817aa3f923df22c92be454e99d83023d3caa2e80e0ecb8818414b0241a6315ab20b63c422b6be8572b5e7f249fa3802fa647febc89c8ccc22583c144c191b91187257235d857b9bba3b13db06be10a35d712c540e7bcc62373d76e5828be049b6462d8da931f24a6827d314f5c0ad266a3529fa9b47cb6eec425b326ab0bfa032b6809d82c1cc3e2427787a413daa7d3976aaf83ac08d87b34da219a92a631784bce31cc66693c75aa58c7c87a9e3a926b5229a4f008b85090f351694f66743dae3a59a86299b43c20522cd82f96284623ee20b521794114d1459fdf70739558123f18ff8304730fbc63f198a2eb992e7115e07f509dc58b1e2a00c314714b5162334861ec20acac85664d14057d2788207c01a7ae383c93971d850102d60ac0d042c648c100ed660ef8a2cad375ae1a21b11998264e86ae0561e19d971689183968a98be064486b8abc3634021f770e2581b4383aa3c938bf3aca4aa2a337ec06647aa47428bc027339f2802b9f135820f3a8bea06846beac4c1a2702c502e50d338fb80a590a564f48a6606a10b51e839a4034f2b906ea34b4d3c875f1ff6bb57797b076638e4b576fe8c5a490806bfd178b4569a69626001c8a5fa1582bf4bb7bd586296f9ae74724d7b6c9c38d25273e114fed525ab008b887b9e5871172cc393938902914a3ace06a41cf92f6da963e4217f6b1363f7273cbf4a342865a761371f24285113e74f7a770079157c0ba0700e6bb9ca99ae10b83299ca9445b8024e450cb6152fceb79c0c433753c0b88b21c71bcb38c643ae5e16502fd14c0aa8939219005a15180446a166e74933f46f41a68675692e25816e7a227808764e20c98d33d6c3ef3801d21cb37d2872fe76749aeb09976580ccd4feadcea0b16f00970f92acb21c560501728ffd648a3b658ce84640d17ad1564189385fe895b25cd30d122a90decaa0583b908f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 + +# Official test vector 61, seed: "c799d57b41f28c5c446dfc58a5ac6499c4bcf3c162afd2b09a16549826ec2a6f689e44bafc4acc82f5d6aec23f4a3993" +seed: aaf6eb40e596a5e3e8218871e708b089240dcbe7fd3641f0e5e41e071ce49107e2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 +public_key: f81037775c727839696adb115a704f10199031d9ba3d3433ecb50702068392ac97a2db354cb311dc39aaf9719c4f5a7c0401282ba4697ca8c70ebc4e179893135179cbf02820d6bb7263708b2339f777c242f4c34155ac2452cc21904580b381a964c281d750c15c42d8477e7708c45c61bbefc6928f191260409ac31a61400350e928a3b24c313a71020fd186f6e9afab17bb065132588c115c31ca8c630275b4baab7a98a778b97a680adb4611e6471683352b6928b7f0378105383b5f981923e800ff11ce6b64904ad3835c270cad0cb0a6e1b8879cbe152221e6e0994fea9bfeb9cf4f582e4f429170295a8419c984283d79b882bb420876588ae6403f207b3798d89ddc1bc90d7c91d7d07aeeb2bc0e491269281cfe93129c5283a03630542a1312ba5c896b969ac0aba14a289c0672b964a6cb1c4a11c3617ab30e4beb8b8864285087a15c574c833166c759741f493438a535918c0ab0e46926d195802a5cca3078fcf3770ea9644a69c730314f3d91b5e04150b670b23448008ee55f841c148a699387d919dcdc63a23966a43b2927fcaf47f2cb36935d65622214403256753ef3dcaf73d183c79384e7914bfe597363684355f25ac1042505361a04798e377791b5553c449927efdb48606a272c029a2da819a48749bd66a32091946a2a7a0649095da1193c1650aef47099456861519bc8701477bb5b01359c4772269735485b829835861496e437a063838a0419ae6877d0c493b5c3aa56777f3a727e0ee5825dc83ae9f4a51e612002748a5d1a21c1f870f5886b39a23e0cfa14b6151053580a8d8a306af04a7418c88bb5c398c6cd8f6529edfbcd601c049872c11381ab10c0267c0c8c2f614b16d92800dd0989fb2a23887ccf46401b864552105dc79bb0def57eb8b6974723a9164c2737abbdb793bfbf00a860a185d3a81a2257ca91e09f547c6acaf35ac5833fdd9a1f38a5b4f5e227b3fc692677766bb81f85e34de5b200dd077573f0796175140fa9c920522d68040518c5aa8f84b1ccacbe5be03e0a0789372c338a1b24b47a8bfb0941aaa8601a7937d5577fdab4a6d3094aee7c073a7632f417b63383bd035a351c3656b0a52c6e435d6d6699946585b6ea9e8568307c18c025a80e9074629dd70dae6bbdba296e0897c8ea895fc6b5b446d1000e4c880747798cd42c860c3bda63607b69a6c4fb88082593c1d965ac6cc71125cc56a72b60d1297605787819749d43be46431959ac29a01c3ebaab30d9a18c1c7998d9e29415ba0cd72c0d933086dcc1c20c537a6f296d88f29b5d2a21fe314999cb6037d539081120d60206eef1b1e1a498eb65268e94366cd8912d269b2d12a3f1b99572e6138bc29fa5520c8a6cb23f90859ea0a494c17fe7ac09beb658f260cbf3a5cdf9933ca1659f2a0551b881055406cc6b72baeaccbbc4b6964751afe07754da9a8b0b151f02972df2bc1465929c0be64e38e6c55ed237f182151d1a91e4253c42d05badb82cf3457e01cb59a96730b5007ae0fc37a3a322115c8560f0a2a1395a88464728c18a16bb249c168accc3165305a6584939105b594af244c2bb41405163e5bb50fde104e7dc604a592b9e22649c0686be9a8860794cee458a73796ed877b18e034f2f50b8441609cf53280f9c095fd67749871245a4c2bc9cb008ea3e44f424dbd56a7c734b1a322de366541c732fd5f74a0663a61f277301723579158ecd08bd014c5cfdb7610b61789d8b84da23a58e571a72981cf63cc49c59ccf045acbd3cbfed4571f6daaab9b23bf26091bc581cbe301674972ee4420e7e0740bed617a3c94c3ca3be7125c7d6242185163398458311937adad8462b0cb3d5900994f5906121c20f6731ac81a32a864ec383bd8310bd64a30f3d575d936426e721228b93c0c482c1be106f4ce41c5e0057116b30cbf44aa2a217b08b690ff891657188d3b6702ffa9d8ed7b62cf78f6831a13b410679e60fbf9a3221906b5885404a7326589681c1549b9459745455bae21ca799796065925ff980aaa68c206b17aad1cb9511201e53dca34d439167d55924018e7e513fa919a4573b5500a91c8ab61f17cb5bcc282939172217365ef694c98a440b09c883cccc114769b84ce736c5c9c52b050ea16a0e4b8c58465438b7aa11c2c98ecf4aea6284cd00c4229cb6fe2f90dbbc05eb935c85f1ca2afde0d54307949544 +private_key: 41b21693eab370113852491e3791739eb8b3ba69a2c2542a85b4c536d840d4b90800a7a6062b7c98f920fdb11ba6b0262a647dee2570f422cce4b7673b51670be0694083c23ffb380025279c849a91d147ac85a3eee4c8ace51c314b21382009845bbc56c9a967a5bf25d1bd75908ccd0a5b86f14106998b27a41a38c365130a420569975da13bda305553750bc5b9402bc38646857bb50a97d016749cf7394dc35ba1f69c17b080a6961203514eb2520189b846d9597d3e443b0168028943bbfe80b1d0e4a323f61324352aae686b1aeb914dd33745da83f9451edde1359a630a4c79b4e9aa7cbc464b1f3923e981654f80922ef604465740938a9484137077533f4f7c379312306c6a26bad108cc16c59cb729fa6ca21feb2365f12e3e32c75b95cf9201bcddc2046f93893db11e35103303478f6a661e4747c854696d6fa00b47f3b18e32469e3b9312225b1a877eda5b2f17699ef4bbb5054961e2a7c445e70c1bccbe6613a4f332b380fb21565c809fd593e7076c42b9b891da4513742e45fc4e60934583f888f399b4a3a0054bdc3639b73f756b94edb5401fa66211d2bf7c714f527c48854a73ead8993fe1b3a851048aa638b2a5538848912f6672430273e82820044a6d6a6b4b80ea6a12aa1becf8b647292a2d328877c10d64706de00a677f0399e30b8842633e2246109a407465f096a1e4b9f14605387494e3f3cc7f200e4398b2c234575e022bce0961b0a8686537cad6054a81fc83b6167c7a855d54e662aa29358bc192a0925d00d15a4634453a494c96758aa687476a7b15075045684b51a82225a562c2d1c28b36ccce25668ced9ccd0cc58522d36ebb6c0368f67104f6c8a240b976c59ef5b46c62323cfe74bb95a55c8ee3b934253de101a11832cc91d685cdc1599da17362763abc4a63a0c13cba2123b76b391d20592c8799bf86054203307d770bc87696457962dfb39fa988a954532671818f6d7438ccf3c044599486e6b781933a45692e1fc79fad5a7d8fd8bde635ac05c631ace040f383b9e5aa69bf39243c711455f605ddac05ee905aecb6c971bb85c1ecbcb695810a713fbee75d71362e5b6777322528bc54a77b6a979ed7c48e9270ada7824814957563585334998fd6ac4566bb22da8cb18a425bdab55d61a1b8427ab1b817e8853ef002cf00389dc36a8e739c601be907d749b4165ca166e6a42253c897a6112d2994a0f492116181081356ab447787d3c8d399a807d48860668dfa2aa8890ca8a7128cd38cbff5eb5e6fc5a46c903eff075ab70a36b85958db922ca9172f53b7202744cf11452bdee486d44b3920636bd7962c3622633324a2bb5b82fd3225a0d83b9ffa6b433b19b49a11db2a19a7a5587553a4832a4dd2412502a575660bbdc1d9a23fc6ac2e7047ee9941ed3b99e7951c81d6473b440416a18332914d97b7c6897bb248876ad757c74d83950951c0d14724d99caf72d17462d006e4d0064d14057a2c1488c79faf4cc08114c9eb2c6ea68220d64735ccf603baa718bae17d130457835019e7e943a43347f7b3253e750bcaf71dd0f0a63d91c7deb97e270209a942a9512b635f5c704f830649909c7c1107986bcb7df1a191366f80ec694c179bcd9029f62880c60061627078b2d3277421169e45ae35f9991730159b005f50ca257ef3b1194b46dae425b9d67e1692c9f1c94da299a19aeab00f45c62449af52c81633403e2bc77ed6750eb91c1735411a32a9bd458029d31c1673c86db6eb6c739021bf1508ea97b902a14bbe298f676258d9260c9f7305d5d1248332069432941ad759f3488d3a2c927793add8ab08bceb6524f8b6f5103c2aac069d0c46f8c314d1c77a86a605db2a773aeb8b44ec8d12477970167ce70ab3a449276a7540313927e61239e23c79bb260aacf4c7de036cdd5a55a45a8a7b898fd8b209c6f643b4202b16187a87842b33f0574fd0a4198a7ecf7b46282b8344ebaad63ab34a652c22521561f2c74a68c485f4cf22735ccd203a8265ad5ea173ae4b8fb0cb4ca979ce33557bb09010767acc4b881f24fb94ccfa008a020e3cab56cba5c3c6c87d4bb6a2448a94c55bba200681d88878563b05454ccc7171a42abcc545649483418bfaa6c3b1e568b251962a75853b6634872529d31b32fa0c29f81037775c727839696adb115a704f10199031d9ba3d3433ecb50702068392ac97a2db354cb311dc39aaf9719c4f5a7c0401282ba4697ca8c70ebc4e179893135179cbf02820d6bb7263708b2339f777c242f4c34155ac2452cc21904580b381a964c281d750c15c42d8477e7708c45c61bbefc6928f191260409ac31a61400350e928a3b24c313a71020fd186f6e9afab17bb065132588c115c31ca8c630275b4baab7a98a778b97a680adb4611e6471683352b6928b7f0378105383b5f981923e800ff11ce6b64904ad3835c270cad0cb0a6e1b8879cbe152221e6e0994fea9bfeb9cf4f582e4f429170295a8419c984283d79b882bb420876588ae6403f207b3798d89ddc1bc90d7c91d7d07aeeb2bc0e491269281cfe93129c5283a03630542a1312ba5c896b969ac0aba14a289c0672b964a6cb1c4a11c3617ab30e4beb8b8864285087a15c574c833166c759741f493438a535918c0ab0e46926d195802a5cca3078fcf3770ea9644a69c730314f3d91b5e04150b670b23448008ee55f841c148a699387d919dcdc63a23966a43b2927fcaf47f2cb36935d65622214403256753ef3dcaf73d183c79384e7914bfe597363684355f25ac1042505361a04798e377791b5553c449927efdb48606a272c029a2da819a48749bd66a32091946a2a7a0649095da1193c1650aef47099456861519bc8701477bb5b01359c4772269735485b829835861496e437a063838a0419ae6877d0c493b5c3aa56777f3a727e0ee5825dc83ae9f4a51e612002748a5d1a21c1f870f5886b39a23e0cfa14b6151053580a8d8a306af04a7418c88bb5c398c6cd8f6529edfbcd601c049872c11381ab10c0267c0c8c2f614b16d92800dd0989fb2a23887ccf46401b864552105dc79bb0def57eb8b6974723a9164c2737abbdb793bfbf00a860a185d3a81a2257ca91e09f547c6acaf35ac5833fdd9a1f38a5b4f5e227b3fc692677766bb81f85e34de5b200dd077573f0796175140fa9c920522d68040518c5aa8f84b1ccacbe5be03e0a0789372c338a1b24b47a8bfb0941aaa8601a7937d5577fdab4a6d3094aee7c073a7632f417b63383bd035a351c3656b0a52c6e435d6d6699946585b6ea9e8568307c18c025a80e9074629dd70dae6bbdba296e0897c8ea895fc6b5b446d1000e4c880747798cd42c860c3bda63607b69a6c4fb88082593c1d965ac6cc71125cc56a72b60d1297605787819749d43be46431959ac29a01c3ebaab30d9a18c1c7998d9e29415ba0cd72c0d933086dcc1c20c537a6f296d88f29b5d2a21fe314999cb6037d539081120d60206eef1b1e1a498eb65268e94366cd8912d269b2d12a3f1b99572e6138bc29fa5520c8a6cb23f90859ea0a494c17fe7ac09beb658f260cbf3a5cdf9933ca1659f2a0551b881055406cc6b72baeaccbbc4b6964751afe07754da9a8b0b151f02972df2bc1465929c0be64e38e6c55ed237f182151d1a91e4253c42d05badb82cf3457e01cb59a96730b5007ae0fc37a3a322115c8560f0a2a1395a88464728c18a16bb249c168accc3165305a6584939105b594af244c2bb41405163e5bb50fde104e7dc604a592b9e22649c0686be9a8860794cee458a73796ed877b18e034f2f50b8441609cf53280f9c095fd67749871245a4c2bc9cb008ea3e44f424dbd56a7c734b1a322de366541c732fd5f74a0663a61f277301723579158ecd08bd014c5cfdb7610b61789d8b84da23a58e571a72981cf63cc49c59ccf045acbd3cbfed4571f6daaab9b23bf26091bc581cbe301674972ee4420e7e0740bed617a3c94c3ca3be7125c7d6242185163398458311937adad8462b0cb3d5900994f5906121c20f6731ac81a32a864ec383bd8310bd64a30f3d575d936426e721228b93c0c482c1be106f4ce41c5e0057116b30cbf44aa2a217b08b690ff891657188d3b6702ffa9d8ed7b62cf78f6831a13b410679e60fbf9a3221906b5885404a7326589681c1549b9459745455bae21ca799796065925ff980aaa68c206b17aad1cb9511201e53dca34d439167d55924018e7e513fa919a4573b5500a91c8ab61f17cb5bcc282939172217365ef694c98a440b09c883cccc114769b84ce736c5c9c52b050ea16a0e4b8c58465438b7aa11c2c98ecf4aea6284cd00c4229cb6fe2f90dbbc05eb935c85f1ca2afde0d54307949544b08a2ea8e2ff6fa677e3c2ba136c16dffd11094ad7f4ed4c5e7c11e3898a284ee2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 + +# Official test vector 62, seed: "f7ae036a0176a9de9a036a542dd2840033277c44ae936d10b768566216de9d4395cd42b116873b69d9804ba6ccbc05d5" +seed: 6500f32c93415cfdbc0bd31d78d5be95cb9060c8cfa2013955b56f8b6868b322393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 +public_key: 5227748594cc5ac52decbb390cb6a9b8f989c7048017f52231125d91c51ea6174ef4a37b7cb505b4a029f44079e14b957ffa2f8f325e7334bcfb5b023b4801f5f576333c54ef0440b4f7c8f6b3afec2524e31943fd6323d8f2300ba1b8095309e41c1ea6016de8f6ce4af647db19467e492c1cc12b5b5426b8339ea122473d1b84c603babba7b32534587145b360474a8483be8b06a6086bc5666a9b5af8b4eda929fb60606b85305c89cbd26a4be8a6b4866808fc2120649a60a3da2c64330a94dabbdc4cab2b956b2a5b7dc9e7cbdac88a71d5c06df3b192c5cc5dc6b7d10b07846026a3f5cf0e5b2c5d1c80bde5c3ca231ac908bdb7054190e77d54d40b9e7534dff0b36eb92652449aa4305967e57c9e358f8114544e0a5b8ff2c490c4a3267a405e38653449b617f26c6a3a74033ac483c074d5d0029d882f3507a7936845a6ab4d33bb4dda806759852488a06731222681326e9c6691077a35a7791734bc6b8e2511ab961bb1f17ee411ae86ebabf1b4968da61faf667b507450fff1a3392425457ba4625086ab1a871c8386982a322b82b7cf198ad639060eecc1c2e40bed7462ce4c6792764509e5cb9cc28b5a71a26d52658c0b5b951180f903bad708ca9bf7995e4595b8a009c614406c669468c1b4fa3740a9e91c64c03ce4a3adecd19a716a82530a508970cf16fca38aa10baf9810a8c3334c7b4a29904b7f72bea3e61505107e641c2be03ccd6c0546d2698c110caf2f194789c616ada3103b5c7f015991d473837e9451c9cbc9dd02333636bbbc825dd0da77a6731fbc3a831348cf1a3550166b72b4d0c59a5bb31de1829cc77c235b73bbdba937e5b45a456198b218b641be8c05ccdff9746bd64fd5a759a4886d3022cb63167aa3f37655a55e9acb9671262aeeb99f6d5618212419b1a41b7c260213b86ad9c995294b9e96e77ba66a40f9b5243bb38e6b7a7311d7c29c9272f98308a5f68c58cb111e33964b797a151588ee515fc0f032b054c7dd35ce5c734b8887465b0b4bb58c491f9953b1133561977f0c25401e6b577cc1cbd555bb8ba7760fb972a6b2344d2222c0fa575717501b3191ecc598bc93bd145800d9924c06c36d0360aab9678e93138d266572b305b7ea69a6ac8ca3ed647137090cec1227169754b49324f029776ad3c6c3e33e14170265296c1a7056282074a64690450555945a87ba57b54eb3595df82e81c1552f19c415c6cfdc0cb5fb32c3db060dcc208b6beac782668eddf9986e0a1bb5a0941a3745ee0b73ca0a5f98f5928bd7189ac6b20205555050846edb51a75573e9011f2d7738bb8c58bcd16795805f03a42aff1b854d3981002614b39b90c6f8bef32bc0cdc085466c8f55c7935b96157a624665404468783478d4b121d6b6a026818dc04515d0b98f9a1634977d3521316839253b7a847224c3819802d6b84482988122a7c87d069a13315fbaf56c9047c03641b4b008070bd885f1e3252f16918cf03af8634a8f7291e7b64df4e14feab909c10c7fbed446bdf2557d8a96e2cc17cbeb91515a2ff0b78bf0a21abcea847deb7311e2a782a567a6b1a57bf105a4513de2c378b1c0186909838a01abc000a829a9503d8c12f374c0d48a32c6f539a2ab28ad12bc49507e230c9a3881153113c1ddd446ab513608a567aea199624c98845a3adf90a5a89a3098091f207b46f28a5659f54c75a01347e18a11db75f9247749c03c7ccc6b9ed722da1b118d3c2760216c792b7f2f406397bc9a7f18343812a09e97a0f6c3c3b87179888a6d69b01b9d8c4b8cd215af5b76f7249747aba3537044f7991bc30854eb68c2f6f8b404257cfd6043a3a327d457651f0b600415a977d1cb30904bb853b4dc380ba4802b28f7c479fa7705b3a6cdf8a99ce2604af2670ab6a751236e08321d61d92a27412febca600fe30850f3c86c647746a65b1a9210adf34003a39c16ea69a626c73929567f1b001923b4f0726337f90124b74e500007ee8938cebb15e1f993e1ea0726d04a5e3b52579c625ef79ebf66485083ade6b1bbd0c9a953092fa80755f1471ff7f063a2f0013f429f155609142a685039c0aa540b3e410654803c7f281ce44b9cae5842f7347b29336b5125586d151117f3afe13669bcd7991068bdc68676a7f30708906db24033fc5822b8cbe33012f5e916c80ec7dfb3661e433431ccb796ba70c5a1ee85d63d +private_key: 79949cd3da852b8381b94853cdc981b74971879b0555d5b51d5ac57707a8d340c2070c9395214d3a6c0afaf0a675f45f4fc779a7443219471570d43bb73caa4c9501f2a220ffa00b60695b049b8543cb0aa94884be42276588c4a211908dc979a0292a9b3c891cd2c59e39bc11b725d66ccccdcc9d35a03d390ad0656bafd8f9a778222c8fa753f4d78bb1792e87542c8fb3b71043607d77672b1a6a7f7840eb953d3290cdbfb78ab1535aec0544bb6a6398466eb1711f9ce01c42d2aea9fc255d694bf4c02b7e1cb6763b274807b1802aae3a3a95e57c78002493faea627bf5bacb17a3b1085baea7802958c9bdb398377629b8c8c03057497bd542ea4c6b28c2cf0cf316cd820c6cec0e2bd121664c252b0b570826ad17490363232d731b4f16b68291c78c3ba252ff110bd756225ca82b38e2b65d9979bd2b7ea0b30d83461f6e09219af2ce1309cd99a87de718cd46e40c091603cb572e6de993e0051f84b55db3ea6c7a64b9c67bce6c3c6a0bf02cecf39e93d149ea38b585d77be9726e662860dab465959588c9225303c8b4ed935ded42721196747f104f02c17cdf3520f2435ca0f963d9ab8754f13b22ea157d0c061ca65d8a363c8c4278512888ef6111618c18be72103de324cde4cf16f26f6a8421ae61aa867b3854d54e0163811a3843a7984e815a26a135ca43d249d17c9d93f8a742037db4d95b2fe33fa3da0db12b7247d665f7488ba34ac5ffb0cdd0e123e812b6854739bfa740792b0a5038037c59991aab615f937caf9b89e4b9742992c5534939e20353c8573d9ee399280984b446a851868775a7a0da729d8c594a5f5518f0681e22069326b1146d1213fab35b0c811d990b529f7c7f7d11645da77ca0f081ad592291ba2a0e15a880832ed7f02fc70908366485a9562cc45888c1304aeea26e9ba961bbb53c89f79265a962f2c72b39f9cb43118a22abaa91e96fbef1c42e6334aa258ceb739bb17a24aec2a8f59b972cc7910647cb1ca86031ea4b80c97308697cc4f414f7575154d51ce8c9bc9309c92b113da36a1915934a64cbb358151dc28186c7f71bea603c73f1c5aba4a6da017f10b16053d77cc92751bdf8c59220b5eb574e1f51a374f337d663213d3756f9096b6b9421a692a4820943576ac2a10246207aafdeb8acf6dc32b9a6cab2f1ae21dab2a678a308e138298a1d947151b5743d8eca936963271ea15d5195304d268d87ba70e1c1a9ded02ef5da2e077cc8a576b433716c419808bb187c9fec2371832a09360525b49d89c84f84d1c10f1a7514077d14515ea63918a76577f1957cb0cc393e7122c097b51039869765342aeab8106398ffc009e0f403225b2df37c3d71f93c78763abb49bf23e7a1c3a1695986824a54aeda43b3f7dba478097cb9019390187a6d9b8d9b684ad169ace6f1b0fdb9184fcb15b0e724fa17b986576b3f5986a5fc603b466d232094402b0571a82864367dfcd17a53c3c74ae4ac0455af209b05371174312679ee5a8d1a3326b70246642631a479bbe51bb73581549f7957747b87030ac019b454522b31cfa9cfcb7518deb670bfb4b62cc964109c6773b885691b199259412f49b00c5ba719db7162819e20984373175170f7a16de42ef8770e55a6bb6d98748f9a0e6dd1335e2669764bc2754c7223b8a23986b5c7d49d3ea4a5529422a98c7b4de1205465b357a1c8fc188eb0c4797f847602cba59a20a4a2842bc05a4dfac46b1469be6c434e6feb017be1cd206247b6742edc1141f9b54fa00a8f757887a4d04d0fe892db899354e73442265251b30caa18496aa22806425f0da193f4932bd057c8c7a06ebbc3cf373205ddda04efab885d12396b09c1df636dd5d5c721f103c93a18b5227ad0e3339d44b804b65a6c628f71fb5ab900a8ab9917c94a51540a7b2f9badb405853e9823d30a80ab9613556555b4273486927427942e7a6caa1a727dfc59089f540a2beb9802c91f324668f78a9e4431c6255603c5f15642e60a0dd843f8fc610fe102716333121105bedbbf161b77d0bbcba13296967a68c14aa99a6765718ba3782b3835f7571177212e0763a5cca4492b94ae59616f9b5839141af31a774fc32fedf0a3408c211050948c24a722a48ca6913b32305e7a5194b7e187bc255f3618532075355227748594cc5ac52decbb390cb6a9b8f989c7048017f52231125d91c51ea6174ef4a37b7cb505b4a029f44079e14b957ffa2f8f325e7334bcfb5b023b4801f5f576333c54ef0440b4f7c8f6b3afec2524e31943fd6323d8f2300ba1b8095309e41c1ea6016de8f6ce4af647db19467e492c1cc12b5b5426b8339ea122473d1b84c603babba7b32534587145b360474a8483be8b06a6086bc5666a9b5af8b4eda929fb60606b85305c89cbd26a4be8a6b4866808fc2120649a60a3da2c64330a94dabbdc4cab2b956b2a5b7dc9e7cbdac88a71d5c06df3b192c5cc5dc6b7d10b07846026a3f5cf0e5b2c5d1c80bde5c3ca231ac908bdb7054190e77d54d40b9e7534dff0b36eb92652449aa4305967e57c9e358f8114544e0a5b8ff2c490c4a3267a405e38653449b617f26c6a3a74033ac483c074d5d0029d882f3507a7936845a6ab4d33bb4dda806759852488a06731222681326e9c6691077a35a7791734bc6b8e2511ab961bb1f17ee411ae86ebabf1b4968da61faf667b507450fff1a3392425457ba4625086ab1a871c8386982a322b82b7cf198ad639060eecc1c2e40bed7462ce4c6792764509e5cb9cc28b5a71a26d52658c0b5b951180f903bad708ca9bf7995e4595b8a009c614406c669468c1b4fa3740a9e91c64c03ce4a3adecd19a716a82530a508970cf16fca38aa10baf9810a8c3334c7b4a29904b7f72bea3e61505107e641c2be03ccd6c0546d2698c110caf2f194789c616ada3103b5c7f015991d473837e9451c9cbc9dd02333636bbbc825dd0da77a6731fbc3a831348cf1a3550166b72b4d0c59a5bb31de1829cc77c235b73bbdba937e5b45a456198b218b641be8c05ccdff9746bd64fd5a759a4886d3022cb63167aa3f37655a55e9acb9671262aeeb99f6d5618212419b1a41b7c260213b86ad9c995294b9e96e77ba66a40f9b5243bb38e6b7a7311d7c29c9272f98308a5f68c58cb111e33964b797a151588ee515fc0f032b054c7dd35ce5c734b8887465b0b4bb58c491f9953b1133561977f0c25401e6b577cc1cbd555bb8ba7760fb972a6b2344d2222c0fa575717501b3191ecc598bc93bd145800d9924c06c36d0360aab9678e93138d266572b305b7ea69a6ac8ca3ed647137090cec1227169754b49324f029776ad3c6c3e33e14170265296c1a7056282074a64690450555945a87ba57b54eb3595df82e81c1552f19c415c6cfdc0cb5fb32c3db060dcc208b6beac782668eddf9986e0a1bb5a0941a3745ee0b73ca0a5f98f5928bd7189ac6b20205555050846edb51a75573e9011f2d7738bb8c58bcd16795805f03a42aff1b854d3981002614b39b90c6f8bef32bc0cdc085466c8f55c7935b96157a624665404468783478d4b121d6b6a026818dc04515d0b98f9a1634977d3521316839253b7a847224c3819802d6b84482988122a7c87d069a13315fbaf56c9047c03641b4b008070bd885f1e3252f16918cf03af8634a8f7291e7b64df4e14feab909c10c7fbed446bdf2557d8a96e2cc17cbeb91515a2ff0b78bf0a21abcea847deb7311e2a782a567a6b1a57bf105a4513de2c378b1c0186909838a01abc000a829a9503d8c12f374c0d48a32c6f539a2ab28ad12bc49507e230c9a3881153113c1ddd446ab513608a567aea199624c98845a3adf90a5a89a3098091f207b46f28a5659f54c75a01347e18a11db75f9247749c03c7ccc6b9ed722da1b118d3c2760216c792b7f2f406397bc9a7f18343812a09e97a0f6c3c3b87179888a6d69b01b9d8c4b8cd215af5b76f7249747aba3537044f7991bc30854eb68c2f6f8b404257cfd6043a3a327d457651f0b600415a977d1cb30904bb853b4dc380ba4802b28f7c479fa7705b3a6cdf8a99ce2604af2670ab6a751236e08321d61d92a27412febca600fe30850f3c86c647746a65b1a9210adf34003a39c16ea69a626c73929567f1b001923b4f0726337f90124b74e500007ee8938cebb15e1f993e1ea0726d04a5e3b52579c625ef79ebf66485083ade6b1bbd0c9a953092fa80755f1471ff7f063a2f0013f429f155609142a685039c0aa540b3e410654803c7f281ce44b9cae5842f7347b29336b5125586d151117f3afe13669bcd7991068bdc68676a7f30708906db24033fc5822b8cbe33012f5e916c80ec7dfb3661e433431ccb796ba70c5a1ee85d63dc27bb236759e3a2af7553c03894124a6bdd3e3c87def1f1bf3e01fac4709aa9b393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 + +# Official test vector 63, seed: "d995d38f934b6e1a7ca77c9522e3d037676cc939b0c8bd4b84394b3dc91a791f09d2d97199258c9943da955e7f7b26fc" +seed: 7643cef2d62cc5aaeecf754653ea62294cd2208e5bf3ddeea209e3dc45373d49eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 +public_key: 03a595bc577a703b4201253367762bdc7a8d14e60784e5bf04ac62f5cba8327c781122427a83800c9b342792ad6e93bdca2491720894dde616a9a9674e771439b8704ea57d70e9095e05a03f3155c3007b1ae0467b7c7bcfd67a5dc679c8f6ba53b44c110560359c65ef6425f667b5ebf967497119fc3b0bd0600c93fa269f349bec1397c4b23bd851a0824b80b664070622860aeb98f2b2c9349c8e0cc824f5b0386348a77857c277496cf10046dfd59765dc9d00b013c3002060737e668cb6440aaed4f3220f789826b579359a3338b91f6584b27dfa7324f61859370795568de4cb39c4b1b015fb693f42c09e981c7c5658d1cab448a947f3a0caa999625131c9118258ab7635d78caeb86ac5c100b30a57216f586901d1863e27262ebc2e3ffc09ac4b6ae45c968fa81aac089a04e7393409799e853499888dcdb29690c12a7e512891421f111a2189cabc1d00a2fb9878c0057144bcca25c9a3f1a2c3b92c61261a3557177628a252347355bee55dcec7be730639fac28e0536c0636bbadbe97674d83b6c209442b34e37d9a43d508e849b3c21369149a7270e56646d984effa143c87777083bc54270b146291d8b4cbafc6ab7e72a871469abf3018ecdbc0753b94ba98140e4956c80913efffb22ad687921560055f466b1744e9bc851e12648899b7665a18a71130c1e4a47c26cc8f1a4972512186fb89a740cbebc6553ac3c088b01b21bd9c47cd5578cc58fc4697a0c756e7f860f91086aefb4cd02d184d294acf1f2872191851f585d96d3b98a755bdce648e8d7ab5e8bbbe8ba0b752973fab007e5390bcb6ab750f8aab5c907042ab8f49acdc47271d6b2a2ee148f13518243809fb5651f6da4379225bd864597aa65343b21b8f8753ab2994d981961cea24b7f780643b5674520b7fd11793b1a4ff110aac7516c1861ad54296b917c72e281692797af7a594e50c35d958436816036d13348f81851bc5332f6e1b55aa575af0c0035432b10abc89ca5cf19170d9537c413d1c7674992467323ded94c4c6b694558cd3ed45447bc5fd3979a68427916a9297904b02d48918d914ad9e88c99b5c28a6ac037248be9d3054adcb0f3746acc2c0a6711cbb1401c6d08d07a947d3bc35eb7b477ce19068fcc744772a126f98789d349fb7c58d9c91cb1ec4830ca54e2e44dcd27b45c48ae07e84c045487b2252178075cda577b26704803a94f9b07acc6e815a75696fc927c1cac2c5be290855247a4546288a383c15b05714c1eef845e9bd70ef5d3284d5800df8ab0a6522372893618d6a28a922152b1adc2e93f60813025d2b15667947788b93ddc34f05374c9997a0ab8b72023ce47a50c86ba00c86a37e33b7516437a23d37d6dab5197a88e823a5129d656af31b755a89c4df21b520b3cbda5581200c9695b497ac2b0f582a42ba28b537a7024d30c127907bcc1667547b79ae655b4143723dca5ec494d851b3e3eb763f4809cb045ca69407627cb49aa59099b050c26151b4d89cc55e762c1e358f1679b7f30a8cdc531b80580beb1b8495487d2d0ac3a9a240ac1acc457b53f6aa6a580b79d9cb953240e9bf90e54644253dbc79b2b3028e26ac8641042f7715d97190e64ca4e13624530a882bc53b2c724f68511021641ce277d0ae32d329b9ff554502ce25a294a3829c770e9565512d52f08211b7fa583ca675491533d14813ddbb96ba4f05fd9b95cca052b7cf098000882be1c2ad9865e4b9b0834189f91d5444791a561ec7baae5c82b09893a900920d6bf6df1391cf1a2506acb25d79f6d441a17bc5eb4d133f5059ae52565014939aaf208882631a531582b486bbd72850a0724dd52a225c40fa2a33f312c16a426a3162993cb7370d23c300e2a5d2a70102e9aaee23b715c11860386c4be5080283a4727954f2c5197e6125bc2c28757a63d46c0b322299e5f483edb10caef28c44cdcca5a9bc9505199e7da28286815757a63ff83c7149bc0152a674404b3c2c06949950f7b073f537728514b20c676c53176002a8c7af2865ebcfa57f1226fada60eeae67fa5417ea4b863d82c3871c4269974bb76e3338328c00530122e38c138e42df370cb51830980f9a6b4829af71a7149a28379a251530306d0719d0d6794f89750ce06c27a913832a9595b9a9c1728bbdc4515cf1afe1dcac211a3135eeecae628aac9538ef2fa7dac989ebf18207def +private_key: 01ac758391018442afbf29af226cac76c6bcc2f256e0454802a968d79b90ebe3252fc57781952afff183ec0c7b11ec71a6868963335825c00cedc8089d822e8470978d74c75806654ed5bf178ab7f1a658440b0d28996b4fd23cc4104f811882a1129fbfacbd29ab2f278ca869ba0722544f0d28c879f0b1655525169a723a09bf15cab7d3a1ce835294ae77c3d55c7537478660cb696025cb0db431fa42349ee5266d5c41d92c64544a6a79d9099623b513190946b24bb2707259eb40ad59510496bd4eac68ba9c14058665a465578e2bcf28068f54b47c957a7a1d1004648b2332a113c85b0261f1474718c95b95553e083b50b69d455764c6718fc286348c187fb0f8cdbc8a7c37db679fe41d853769ecc03063aa1dbb215f044a025ce98767e7a52fbcb44a9c67b5529e3f9b9953640e525471511336d993b6e741bd9e8cc942a1219fe23835384ac0f990f1646e487aae445065ccfb1cee5790342b4d9594687bd53b871b2ef34c619994093f368049a6a483c007ba115af85c976fa28787805bdfc158f64b50de04ab3b82ba026621ae262d25c4bef55776fe7ccfb15524120171e806bd413300089490d233c00fd20783630e2bbc5a661a0700cd1181c0559ed5712e0949c720cf2b15b776240b7535b76a237e37a86b81f6b59d4418c3a00624166559e180e18acb91157c715c0030640522eaa523d76f073a1279b570eb08b14bb697c93345c3da33b6d65f5ba668c80477140c22a56700feaabd73f90237c54754f377695b83a7d5ba8ea4cd9934cc83a3c7abecb927e1cb1ec405b58a7c4a010d3df2a9b48c213d0b63dfcb1533602d26614c08995c561a3bdb4933a6ca3defe340e52a20e3894e8bb95657e8ae363b928b3648ec266193d44c11ba2e47e2656d54c3a13558510c9a739c7f857b586f13a5efcc403ad347eec8623a3b41f8447301e1bb512766eb803fc1460d05880d8272c4b38a03894c2f41b1c4f08a416bf06b3595070e985768132bec00c05f5ccfefca9a1851c9b4100110051c977729b7d3446edb2ec1d02820d189fc6476b6aba6e08021e5000fe8f20d8c48b75daa6d8de2c0456345cae60309589ba9c289c6dc664328b5ffe10610a5b2af41053e21c8b58c7872ca332a8b6d12e75f739a6bfda88e85690cb35c5952c1a238d2b82ba0216a44a9c1d346188ccd3365b0f0e66007b606e04ba1d8c2c08cb6a901f491ae6c4442417a86da9d7051812066a652ccc178c0be52b304dfa4b6092b8d5e8486d4918321b6537f883661cb8ea4596c804c6534c40404f992841309f272cb61ba90d7a439dd204d9d7369523087fa2818dd56a712227d96f026f1fc1d4a3b272475beb1c0a398189fd392b0112ccaec4704b7983c10da4b1735ad78cbab8144b485f2b721193b1a9654eb734dfd2b42b50078db163b67c192f014becf74847bf47f19e5a70eb6b28a717ca908a944ac6575f43d048950016b69bfb86e21e012e15435cefc11e5b6813ad37942bb646752b82ef9c76f99a77b0707a8338a7528c01981b2b19cc64be2ade4e384aec67773912e0dc9c8c5d431c099abc663bec1f64050517acfb8584323169c941d1dba6c0be940df049e7bdaae440614e9c389a5817e54700b1710a24467146d124a12b90fcd18a964a8ca0b8883ab26916ec339d39133981570966083dbea8038716d6a574a03710477bc7776f7338c435c4ff27ea3b42c315700d327757b821117595026392e8526ae12c51b27752499cc02faca268594bedfd3637d78abe703b4a47564f7d78f87726e6ab45e814493e8103aa0255c26cabdd1321205657878460afc005bb952482d672f8f9c4196282d5558085857a83bd43ca75805557898d49a9afa414d6d2ab315506cb2879ff7628982588b62f2a428e21516c47757e36a1ce0236d9a074cd2928c043066ca3a3358b6d8065d8ac8458ce374ac71c0f6c6415faa870b760aded1668fd09f00dd2650dc75b426228d23b579204843cc0a2c9170b1155d7e445f93788308b316b9fb2c3b3c6ee79026ebf611505bc91a476baaf65bccf86091010dd14b7456e2a2ae8b0cf7e655ff251515f6627e01b1279bb0ed640d266c4b9798647fb17c09cc183f2170e9d8709f537cb6e7911ddcaf969c438c55623b89b037708303a595bc577a703b4201253367762bdc7a8d14e60784e5bf04ac62f5cba8327c781122427a83800c9b342792ad6e93bdca2491720894dde616a9a9674e771439b8704ea57d70e9095e05a03f3155c3007b1ae0467b7c7bcfd67a5dc679c8f6ba53b44c110560359c65ef6425f667b5ebf967497119fc3b0bd0600c93fa269f349bec1397c4b23bd851a0824b80b664070622860aeb98f2b2c9349c8e0cc824f5b0386348a77857c277496cf10046dfd59765dc9d00b013c3002060737e668cb6440aaed4f3220f789826b579359a3338b91f6584b27dfa7324f61859370795568de4cb39c4b1b015fb693f42c09e981c7c5658d1cab448a947f3a0caa999625131c9118258ab7635d78caeb86ac5c100b30a57216f586901d1863e27262ebc2e3ffc09ac4b6ae45c968fa81aac089a04e7393409799e853499888dcdb29690c12a7e512891421f111a2189cabc1d00a2fb9878c0057144bcca25c9a3f1a2c3b92c61261a3557177628a252347355bee55dcec7be730639fac28e0536c0636bbadbe97674d83b6c209442b34e37d9a43d508e849b3c21369149a7270e56646d984effa143c87777083bc54270b146291d8b4cbafc6ab7e72a871469abf3018ecdbc0753b94ba98140e4956c80913efffb22ad687921560055f466b1744e9bc851e12648899b7665a18a71130c1e4a47c26cc8f1a4972512186fb89a740cbebc6553ac3c088b01b21bd9c47cd5578cc58fc4697a0c756e7f860f91086aefb4cd02d184d294acf1f2872191851f585d96d3b98a755bdce648e8d7ab5e8bbbe8ba0b752973fab007e5390bcb6ab750f8aab5c907042ab8f49acdc47271d6b2a2ee148f13518243809fb5651f6da4379225bd864597aa65343b21b8f8753ab2994d981961cea24b7f780643b5674520b7fd11793b1a4ff110aac7516c1861ad54296b917c72e281692797af7a594e50c35d958436816036d13348f81851bc5332f6e1b55aa575af0c0035432b10abc89ca5cf19170d9537c413d1c7674992467323ded94c4c6b694558cd3ed45447bc5fd3979a68427916a9297904b02d48918d914ad9e88c99b5c28a6ac037248be9d3054adcb0f3746acc2c0a6711cbb1401c6d08d07a947d3bc35eb7b477ce19068fcc744772a126f98789d349fb7c58d9c91cb1ec4830ca54e2e44dcd27b45c48ae07e84c045487b2252178075cda577b26704803a94f9b07acc6e815a75696fc927c1cac2c5be290855247a4546288a383c15b05714c1eef845e9bd70ef5d3284d5800df8ab0a6522372893618d6a28a922152b1adc2e93f60813025d2b15667947788b93ddc34f05374c9997a0ab8b72023ce47a50c86ba00c86a37e33b7516437a23d37d6dab5197a88e823a5129d656af31b755a89c4df21b520b3cbda5581200c9695b497ac2b0f582a42ba28b537a7024d30c127907bcc1667547b79ae655b4143723dca5ec494d851b3e3eb763f4809cb045ca69407627cb49aa59099b050c26151b4d89cc55e762c1e358f1679b7f30a8cdc531b80580beb1b8495487d2d0ac3a9a240ac1acc457b53f6aa6a580b79d9cb953240e9bf90e54644253dbc79b2b3028e26ac8641042f7715d97190e64ca4e13624530a882bc53b2c724f68511021641ce277d0ae32d329b9ff554502ce25a294a3829c770e9565512d52f08211b7fa583ca675491533d14813ddbb96ba4f05fd9b95cca052b7cf098000882be1c2ad9865e4b9b0834189f91d5444791a561ec7baae5c82b09893a900920d6bf6df1391cf1a2506acb25d79f6d441a17bc5eb4d133f5059ae52565014939aaf208882631a531582b486bbd72850a0724dd52a225c40fa2a33f312c16a426a3162993cb7370d23c300e2a5d2a70102e9aaee23b715c11860386c4be5080283a4727954f2c5197e6125bc2c28757a63d46c0b322299e5f483edb10caef28c44cdcca5a9bc9505199e7da28286815757a63ff83c7149bc0152a674404b3c2c06949950f7b073f537728514b20c676c53176002a8c7af2865ebcfa57f1226fada60eeae67fa5417ea4b863d82c3871c4269974bb76e3338328c00530122e38c138e42df370cb51830980f9a6b4829af71a7149a28379a251530306d0719d0d6794f89750ce06c27a913832a9595b9a9c1728bbdc4515cf1afe1dcac211a3135eeecae628aac9538ef2fa7dac989ebf18207def1330f4828e22a13ca5031217a3d8e6f8ed708a7026e1a96d8ebc4fd2f54b5051eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 + +# Official test vector 64, seed: "5929f02a271725cb40200de32d9d03d8bea53b53ac83186c42c7f565ccb1ca508305d470850cf86e9b2c61a5b8ca1c93" +seed: f8ee95521060c03bb8dacc79f7eb7db640f545f315613a35d447a09e504cb4e13fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d +public_key: de62c02cbc473601b03f5547f1b4a8078aa079c4cf39c56f88925a9383b9a0f57b58741760c58d2629c5d70074df007e715a3f9344755ba908a4a310de73150a79a9ee3957a730687f4b2e7df025c1d699c254af6642bfab84809ea9a3b35410c7688b296a3da82c6cf6790b48fa3f66f5b651912e7939ab76b0935f49c1e0a25422365974698c9532ad00120bd2ab10a8d1a78ecb392e6892624a3f96b2758a423246d67933eabe6ba2bc019a031431338ab546b3154a80945a9b31bb5f9c4071a4b0ac4b1b85b3a11ae1371db39771259936a27ebec742e7d6282f19c4b6ec1a70085ec6cc23186c8a29f4c3a1d3ade8912e3e238f024cbd30e61b1ff2312c91a2eef9cdab68446bcb64ae505c32f0ca5d02547c3b2343962df8d384bac81d15fa3bd2a116b4d9aba31041428ab688f950809c94404b5c35f303d9852a0f029e609126110b64e310c81d634117e3b3e1994ee2a2799600aa38966e00aa9450f24657a39b4901764c3a267f2018363950256a69d5b0240f368bfb238fc3abae22dc2f3fa6c9e7f055a8712cec654adc039c49aa1d303158e05b0ee4f1ccc0e07cae74047b603671b9704e70646cdc0b1d1423bf3c4fca6612360269a26b9731524a2117a2b686131708470ab6c1ecec857465cfdcaa5b1506abdcb6a5e379bb4e358462f802c2a81b26d0091a9a281a891c06737fda60afd65ab7c7bc4d97667220ea69896a46f20200b0333546713d9e685d8230487bc39b68b170105231839417fa92aca1cc38246b3d0da638aa28c907c823a1fc779b7626a1146645db0582e23115c64ca6468bc21a480385b27fcc28c0e6b8430a270c5061012a619da7138ca97da7832807aa4f338a3983170b62145f36a35241d21c13c61a1044b5bbd2232f5c16f106ad476818f83920f650a87dd80c3213680cc1572b0625391a92dd423e53dcc0ef58ca376b18a46b8ba4506878f38c88d814bba280575235b23107bae8c1f443a5e9c1058c904a09366b50e7b531451f8416342267352fcc7fb21c05bad69bac0967778c0c2d48a60980ab5b7901b84b54f1a53b6bb09b37d48dea04838193657cc7b47b436d4dd36cf9bb4bcc552700f98a88a850dc009b00bc41c9f552e5b346416024065634f4d768cf49bba831758af42e408668aa712f93f43658c48b80a72bfecc0258ac6fb10c51ba665e8f25537116ae53336a8f3a0d2101b705642c5891b4500ac61d023398b35a21e37ec6c9821eb46c348c594590941fa0cb5d88ad32c3165cbc3569e15960dab8f53c16d02320b7c8394971c14c5633ac5023d572608c60a726d50b22dc3696e7c352fa6faa0c8e73127ece085562bb8a86ab6628149292a750588aa90d268f5fa618b559a4f8468218985db9f4cdc1f65b4644cf585a1a8057431985058476cfda6ca0dedb2fd77917fda88d799709c169c01e90c5528a9ffa144636334d8cb3a1cb27b81df55c9205aa1cb43f04ec29beb19539992846db361de4bea0a7b045749609571639933e6c105221782033885385c5036153ab3ee68156f0abcebcc67c9163fd09cf2a50910c8a5e50ebbaecc030ff38b041c3513da677f78b253d7c5d9bec993f85aab56a21502b1ee66922ce9995eb83376ed309b1f66c9e9b46436399364496a51851d48ca06e342fd40a6c64748d6db5a9bf18893d65a9fc3b227401c9410888287100482438e604cbac435abe040598f5cb7f07aecc23b6b38a95f9cc8ebbcb4f5cfb17a8443f89ea8eb592456da09fe9a36bb31a98e9e5372d4bc83f9a7509da4ad87036581b27844b79a9753bad9a476ef64661ca2a5e49797fe161159aca36f017d947b66d87833383c9eb593313054e00867a81e0aa6b1a8493a082305a387f8c50024a9f682c69ca0aa180eb8dcdbaac44f4a3fa830bb056352095c2b8b65eef62775a470638c252f40c8137d05cad7c9508c3c34a6b29e6c6431b34882a3526ced7143da2bb9733c2ef816e28d3a1372b418ca595ba593b18789b7c6a411e27acec3b4246e8659a2330c628436d21722536858548a280588cadab316411b5edebb50ddaae15c32ecd74af476b3d4d834c1047376001cecac303f5c1bf7afc7b63e8372c97a8fb68837064294527799a8874684a81f6145ad7ebac7a5cbccb696472ca98fd95b9ba4db7d8729965aeb56b8ee101d0b32b6b80a772fa80e70598b17e84fa +private_key: e747a3e56b5da1ec0b2859be85084ecfb60144b5ad600a4bd5f31ee866b72bd110f6111653124f695b75dbca4a5aea5c17c237d3e5748d842830fa2c87454960bb6652f5b0108332ef3024a2346e5c9ab71d4466330c2761f7cbfa29bfbb51931970b3a291179a1139a0e23e46b62dac796eaac32b4225c7bba9638fc428d3d4b691e5263c3c586d8abb56a313bdc69dfe323bfa237f27b046966c0748128ea32c9f0b34015e6c3bc8578dee1465f63c92e2e197e4e2ab2a76a9a41bb57b97903808472255b2f98bb24fdb4e8657ca5ed0cdd176931c934b33bc08f97646f6e7ab9ac565b7c04f26d12c44228e36824838c84b2efb0b5db6126b1b54614521c55455ada2002203b12954652c84b3ed26163b70c8cd5c76976075bf323d1f7984e2ccba31fa26fbe82a61895504abb81d660da8943bf6c29f16b72e59965813cc218a8635380044d40bcbcb728d9c37c375a975e619524e4c10d7a73fd8c400694ac396b384699bae098c07ba1483c834aeb3f1222d753758f3458fa2b579f3a156d0a27554a27b9192ea872ad9a83d137a1ef1f3445458761348ab6f40a0b8121f25f56fd9e7cb57318169768b46d71c7c41914de73838fc4adbeacf5f7778adc5cef5764f41b8b5b0e1aaaa594eae08b84f1b2fa8caa94eb46e2468b090832f9afcb4b543a61a5b572de2b79967c03d97cdfb5c0cdd5166dd121f8e1552780667377783c7e14f23ac2a4f2a3de89735c9e095dafbc72fa8351cf5203b7c9e96db2f5926320d8aba5a2750ec7668406319860101d86b92d4fb00f0fc75d8e3b344573d70449fa2fba847d399ee982540ba92a8149c24c411d4a13154ca92ab5a8a2be2942d45370a1a56e3ab715dcb7864b9956f2aceeec963d34cc3ea33cc9ae700b58c0953011adba08c115574a377a71bec017c79c12ca7a9362c6e40391dbf3ac987362569dc34d20a07b03306cf7577ce94078ef122207bc05e55a0d1d6368ef85874ba21a0090825c720467a891e1106a4c229446086bc71937904b534780e40b07d36175c81c8287dac48fd72c37946b98a9ca814401d1dcb5a243cad5240543234c00cc146b9ebbcc0dc57f5f963255366e4424cc595a1f7f2b9a066792fe0835e97390c97a43a52c39676af8be2393ca82d64039e6ae6a6ffd5b582915b23db1f307c1b18c90086263a9ea5a87d5470b1584c0ff272e6cc3e1c3b59b895b048db369bca70a3d22263483226262a7f15b96eb316dc62178a52af1810a7fd357679121c78083acb8ca1f0f6c3959c235ed901e32366354087162c3c86828c7b6b8688120ebaf50f55f111950ba79093a3c2029deda0a007b73241d30024d897bb66a0653386bdb344d10c90e43249d1fa0847f0ca918a414484656d4c0c246350be4722b43343a2e310ec985476fb754c93256a8321d9369fc531495b263a440c1db25b975d0a74d6b6cae1686a63b64a1fe0c51433ce5b886c34d9a44afc76133245b302a277403ebd46889e4b84585615d6482a4b0b5d528790e40538d4612646a690f0e7a451fcaff648583fb7025ea2038540acacd2b30429a550c980247188cea490e5252fdd0481d0b9837ce69e03d4798cdbcb25867b9e794ddc945d96489625aa16ad4150a925aacd254a6ae309869a018191c9e6f9411a6b375bcc9cf81925c57b99beb92921ab932aa87c3e68c500070f5568757b2b8e86035f717b88b3735ae662add2334184e6cbd2ab026b8a9d41f12eb322afc154a0b21330c951a4bf5c54959a515896adeeb73c42d94218d46219c01ce056bf78fb88902ba686b440c1026bfda6455610a1fa008d44c28bf22796204850f0e124108816e39b3c55c7ccee889effe88587b0a12a5c0b2a30152e98c612b61b95c0ca8fb3b203dc850ffc7f866275c7c851b67333f2c37a6b5b999b686fd6ec67ba67c9b0910e95f84a5e9a826e0617229206d94b98927c418cea516604444978c24dab19f0c63536076e9a0841873338767b3d935cb526c04c2ab5015fbaaee2a523ccf7154353b5282c7d9af78f55a73857ac5a70a03a584a8f1b0bb762f9c7265b40404888516016f6808bb3b3b7d0553e2877726ea63312f3afd494b5c1b60fc4b6bb6c8a68fcd1a6cfbb9265a10fa4c4bb76b8b47d0bb34f99b612a595aaa91dde62c02cbc473601b03f5547f1b4a8078aa079c4cf39c56f88925a9383b9a0f57b58741760c58d2629c5d70074df007e715a3f9344755ba908a4a310de73150a79a9ee3957a730687f4b2e7df025c1d699c254af6642bfab84809ea9a3b35410c7688b296a3da82c6cf6790b48fa3f66f5b651912e7939ab76b0935f49c1e0a25422365974698c9532ad00120bd2ab10a8d1a78ecb392e6892624a3f96b2758a423246d67933eabe6ba2bc019a031431338ab546b3154a80945a9b31bb5f9c4071a4b0ac4b1b85b3a11ae1371db39771259936a27ebec742e7d6282f19c4b6ec1a70085ec6cc23186c8a29f4c3a1d3ade8912e3e238f024cbd30e61b1ff2312c91a2eef9cdab68446bcb64ae505c32f0ca5d02547c3b2343962df8d384bac81d15fa3bd2a116b4d9aba31041428ab688f950809c94404b5c35f303d9852a0f029e609126110b64e310c81d634117e3b3e1994ee2a2799600aa38966e00aa9450f24657a39b4901764c3a267f2018363950256a69d5b0240f368bfb238fc3abae22dc2f3fa6c9e7f055a8712cec654adc039c49aa1d303158e05b0ee4f1ccc0e07cae74047b603671b9704e70646cdc0b1d1423bf3c4fca6612360269a26b9731524a2117a2b686131708470ab6c1ecec857465cfdcaa5b1506abdcb6a5e379bb4e358462f802c2a81b26d0091a9a281a891c06737fda60afd65ab7c7bc4d97667220ea69896a46f20200b0333546713d9e685d8230487bc39b68b170105231839417fa92aca1cc38246b3d0da638aa28c907c823a1fc779b7626a1146645db0582e23115c64ca6468bc21a480385b27fcc28c0e6b8430a270c5061012a619da7138ca97da7832807aa4f338a3983170b62145f36a35241d21c13c61a1044b5bbd2232f5c16f106ad476818f83920f650a87dd80c3213680cc1572b0625391a92dd423e53dcc0ef58ca376b18a46b8ba4506878f38c88d814bba280575235b23107bae8c1f443a5e9c1058c904a09366b50e7b531451f8416342267352fcc7fb21c05bad69bac0967778c0c2d48a60980ab5b7901b84b54f1a53b6bb09b37d48dea04838193657cc7b47b436d4dd36cf9bb4bcc552700f98a88a850dc009b00bc41c9f552e5b346416024065634f4d768cf49bba831758af42e408668aa712f93f43658c48b80a72bfecc0258ac6fb10c51ba665e8f25537116ae53336a8f3a0d2101b705642c5891b4500ac61d023398b35a21e37ec6c9821eb46c348c594590941fa0cb5d88ad32c3165cbc3569e15960dab8f53c16d02320b7c8394971c14c5633ac5023d572608c60a726d50b22dc3696e7c352fa6faa0c8e73127ece085562bb8a86ab6628149292a750588aa90d268f5fa618b559a4f8468218985db9f4cdc1f65b4644cf585a1a8057431985058476cfda6ca0dedb2fd77917fda88d799709c169c01e90c5528a9ffa144636334d8cb3a1cb27b81df55c9205aa1cb43f04ec29beb19539992846db361de4bea0a7b045749609571639933e6c105221782033885385c5036153ab3ee68156f0abcebcc67c9163fd09cf2a50910c8a5e50ebbaecc030ff38b041c3513da677f78b253d7c5d9bec993f85aab56a21502b1ee66922ce9995eb83376ed309b1f66c9e9b46436399364496a51851d48ca06e342fd40a6c64748d6db5a9bf18893d65a9fc3b227401c9410888287100482438e604cbac435abe040598f5cb7f07aecc23b6b38a95f9cc8ebbcb4f5cfb17a8443f89ea8eb592456da09fe9a36bb31a98e9e5372d4bc83f9a7509da4ad87036581b27844b79a9753bad9a476ef64661ca2a5e49797fe161159aca36f017d947b66d87833383c9eb593313054e00867a81e0aa6b1a8493a082305a387f8c50024a9f682c69ca0aa180eb8dcdbaac44f4a3fa830bb056352095c2b8b65eef62775a470638c252f40c8137d05cad7c9508c3c34a6b29e6c6431b34882a3526ced7143da2bb9733c2ef816e28d3a1372b418ca595ba593b18789b7c6a411e27acec3b4246e8659a2330c628436d21722536858548a280588cadab316411b5edebb50ddaae15c32ecd74af476b3d4d834c1047376001cecac303f5c1bf7afc7b63e8372c97a8fb68837064294527799a8874684a81f6145ad7ebac7a5cbccb696472ca98fd95b9ba4db7d8729965aeb56b8ee101d0b32b6b80a772fa80e70598b17e84fa2a35c723556eb2782c7cf77ee75f8928f8038ee66db41346741fbd6aa1daf2b43fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d + +# Official test vector 65, seed: "905074033d7b75deb2d06a2f29144eb377b452534c5710632989f02d45312d156557e96d4486020826db200153bc4a8b" +seed: b8bd0493a882e3a49b4e0f6256fb1fea0912562fd9ba26ec3d6c9cc12c8973abd7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d +public_key: d0c53790651f609447f0b18434e5b31f2b2a3d1233205c11e5841daccc2017203be9c26db2ea7de30a6671f79c1c424052a784e727c36a3b9dd1d71ba80a542dd42b17c85eebd81406dc394ec556acb00932fa9a8ae610646a973de42f9fe29c92b35c04884be2a5bd3f68b2083945f8ec525d651877d924482b024847938eaac5690cb33f0a878927bdb4a84ad627092f046a2968437bf9a675d91e25e89a3f246b38461f002c3d78206539968d9b7a83745869ea8accb72ab1dab78ff0183c2ffa338c819dcfc1178ad8b928c68abc98209819ad705a3fc264bde3047fd2065c3e1806a9318d75a39c6e4541dfb86433bbaabd12762f521c842a2381dc78fb312b1a6a318c5201bed68ae518be985746b863ccec279836d6810178c54902619301467bc986a735a9e93678b1f433bcb7af36da821dec7546a4957e413d30a4b1d75ba216da71af7a7b17a932c224bfda459681893ec103a4b56c10805a24543741ed0b1f5bf84daa018f94c07434758d32d80a3d8c6b54774da822451b12aa086782f9c0622c2b8ac9776639084a19a509124b5de6d77a83bb6e123b8eb1019a2b203f87896f23018568da081df72e460a1d8a2815794966aac55fa07cb7007ac3743a0f2ed5b6f377286a7c2aa4b9655237b3f1635dc25527357bc4714c3a47285c9ae3a5a84886c7302d22ba2d3c15580be7b1627c81fa1b0942e85a3a075845e47dc0674f4ec2c1ed9ca031ac1cd934a01c022d26b6ce5c038fbd541dcd4ab4a9bc17c06842d7645935b57587559c11b99af337bc629a45ec37a3a20b1fe905510971b6e0926126e815625c5d79f677ebfc69b1489809172f34e075c29a6e9fb4b536f892b16c7aa97623168823d5b1afb439cd2603c9758904b942971d769826b169936ac108c6caedb98982098d5176c71cbcb11b22b96143433f6c083bf83f6005c5c8b93562e081c940903ae662a8f17fd0882fcb399161d2a2bd2b8d1af0731b0303e3c9beec81c5473384b7a04c1c841f60e27eca0977eab4c750930a2bcb3983daa99cd4c2e2414ab8f77857432036c1a9a65c493afc62ef80758830417375c697a2a7fd0782ac011014733e51f088bf32b7135b5db727b147936740e320c603365e280cbab502b64412abdc4d25fb9a96ccc96f166445f6a6c3a894a6c10ac7bc074fe7b5a1d2964ef0531e7bc445e0a402f45b0f29809a84795848812a1b935d220670c2cd0e3332abc68f57b98f24cb9e68f8b1663b4c793ac4212177f11c594671550e44794f84705fa4835d918b317a1d5aa39e65026d3888aaf40cc247023b74cc4e00fb1c011c6a266560949c626e08263891608713c12e75a229c5bc114bada81395b00a5b6e695096b2790e85c954028c5b288758c9ad634a3ae11b069790bff9428b425ab70c5c46c2150346235814e7af8576af3071c6e6d4b56b61412d7a5cabe21cdbd0aa69e53d4d223d72e4c77afb927958245cd57967428d9f6c81cc604fadb43dd56c8148664942e2085395b17a1c53646287fa14a9bb208aedb1a7e6f73828f0aaa5918a69c211bd765cc0f93615a57609b5aa91c502b851c4a9b24335d282348ba33a802170524ee3351b6c780a3a9b46cf472fbab34be9f508c32a64bc37b6e6b30f37a7a9f200c34811c2b8553ec3ec091091bb08ab02ca7680867244fd3c991508902e84bb5e177f7251057c38784c0905cbe7041f12bdb77c07842228ab569fb69700f9b3a058dc5791b600dc48855fb1cb938b2e2599c1f3411628b64094ac20eb6c50f5f5cfdfcc10471346de9429dd29953e7b139e2a46f04127d7225fd46723dfe19522a4a76389bfe6414450b885cb211ae680b59ef46177d50b0b3306820a9d57293ae6753e65097f8de97c898c465b07b6e89459f446a59c04145f2c30dee57368e0479468ae96bb2e8b0332bb7535104498ffabb2abd65a6b8a2358d467eb8376a795aab40108ed9b0967a710083acb476c28a01b46e68a3d64b12dbb49146df48f31e1531cfc3295e4cda083af7b3a17617286f60b5ca9d21858508f8f009878916473c85360e8cf6ae8360c80aad7a10f6cb7a707063ea9b2ac097155e6961388f87327d084baea61d5ba26e1d5bd9cc25ffdd46a24d81c40532697b4cc8f58643d41afb6d29b7c857837a1e385a9106e3bd9911c697c8709312db4ee1d9b023e39fb4a92d9d95ff015 +private_key: c35b3d09514951dc232b3b261cc77a4b23b033a57012277498f66299f98b2e58a618cc8b68ba21d1f86cee4b7221611b8d003010c870a4f8510198a7f486279a168ac82aa70744cdf8662ce35b65ac836895255089ca97e4b61c1a52b7b6cc24b434b25be51814d09b4312a1150931d627685917b8535bc52aec1eae1338bcb6c087bc419d3a30f625812bd73fd3e3c798d61be67b30d0d34e34434878f53102437db096cdeff6c79992337e1122902c803e58c56d0878c5e891fe47441f95390fab44d716978a0c4af218863ba783a8c7b5b9f74ae671684fa284e1399e3ca469acf757f6dc3b6306a2b241005214554a7430dd97646fc26f4b45ceb8e13fe47bcd2a1b0ea558caed29be60baa1803808e4702eb6f46d92d1c36c5aa89fe27346c56d17b52ca4394ea563022551922923b6c5d36477002d92a88041399f33a902a0292563182a48145bb3791e0eb45708a4132fb768850c83c9517d25b1954939c857311cc94a168756aef272764cf63cca0b1a95ac4bde1c2c531769ce89419edbab9614c620583aef725eefda51bc16b5193241b986073764c4503b7b497a9d77587443a52ff47803bb40432852a1e4f6a7f1fb0a46304da84a85523bba99e06b304583bab0baacdc98db486439916bd3eb4fa6706c8f26682d728be9a82fb96c6f82a1c7414c5fe645b833ab30b515a446e54e5389a972d6222ae14209d9634af7bce363a0db3222378968eb589f9bc2a5032c37af18a9dc72211b5858575147aeca713c216dd4c7486861a16d9a56305c81255403be295de819b8efe70a19a1201e7740240aa2a081739946606f7786a6a745b6929e70f552b7a28f49990c82e114360b63cf739712dc647fe8a03b9a8ec5a2b4f8c3010ce71ca964a1a89c61729c3c18bcb8891bc2f880c93041a5ffb9600e184df6a07ba52838123ace34f01099d5507e7820abe2bb4f9b67012a4419934d13db839d36aa6de939feecae90cc35955164d9d9c8a078909d4cb22016854c2729633b2f2899302f356521f0427cdc7907b4529155c871779149f606ba29aa0d9586ee05baa1c78d12b9807ca995d38122c43b9671b16fd03436fa87143805c71c4656c29b8da8b3293b44be0a0bb873647f7aa92562e4706362110388c9f15962cb249953128a53e30998918ad5370ff32081f4053d13f741d036c36fa47e8a97b15c647272a52ad94620c4ba7aded0259323067f8b5612fcbe0aaba35d6999339cbff2502ea693b446f626fa05b5f3b90c7362a38d0a710a32a1e68614b1d63469182baba57bed2a462e879b7a172bde9ca930d85b393a797e339d4116c3bca1cfcb16205ad5c0e68488a112c34c66b4d617b856ac8c66aaa98ca458ec4219a747930f3394c4623a7d402b557069aa524eeca0a6f65a82a2c95aa816723aa2cdfa841106b0336a613420994580b94b3261a15799cde04ca3a758884be34955725827c15432e194f624921c674ed10877cb5078d1b29a52694fac72cc2aa435549cc34242906ed1cc12e523d6ea0ce55cb8a09c22cf580a76a8909d3c3cd749bbdae9c05f117114f4b5ad58533d410f8b2010fb8c25fc1acd38c69dba50803a3066214914cf9a8ab056a47892197dc50783072764a69d8b988798aaae3f1c1b2a268312bcaffe253940311033c64d20c1aeb501029f873a6aeb1d249945a997819651bbc86b96cb0537e7e80c0e382df932606bd58ca3d21c01332cc65c1c00b31c34588d1b10cc176b2ffbbbaf2fa95545e51f0d7445cc017c4d3178fd38c9d85123040a702003af65b74904028753825c7f7c6843b3bfc8020535fb6888227f6bf329d5203eaf8b8a3890716e563578e795ed566d43b071858b1336165544ec566acb361a8b8564796b8934c8ce253c409677c2d45691306301a58da9ba2d05f0c847684e960590f1a5c60217c5ab905cc8a95e9bd26301802ba9257370b73e63d647f02cca6d58907da1759cd5c20f7a8762e56c1e09b95c1b99f2bcab69931f03a707baa0580a896c022a53c3c846e4d0551f5a2d6f6b4d22ba779b017fb36546430292d950c10ee42862c749bd95104f133252b15771db7d3ff4a7cc310036903650041b40609d6a9c16e40ba12e6c390a388b95950b1de92acb71396e4a0fb7890bd7d123d710a5d0c53790651f609447f0b18434e5b31f2b2a3d1233205c11e5841daccc2017203be9c26db2ea7de30a6671f79c1c424052a784e727c36a3b9dd1d71ba80a542dd42b17c85eebd81406dc394ec556acb00932fa9a8ae610646a973de42f9fe29c92b35c04884be2a5bd3f68b2083945f8ec525d651877d924482b024847938eaac5690cb33f0a878927bdb4a84ad627092f046a2968437bf9a675d91e25e89a3f246b38461f002c3d78206539968d9b7a83745869ea8accb72ab1dab78ff0183c2ffa338c819dcfc1178ad8b928c68abc98209819ad705a3fc264bde3047fd2065c3e1806a9318d75a39c6e4541dfb86433bbaabd12762f521c842a2381dc78fb312b1a6a318c5201bed68ae518be985746b863ccec279836d6810178c54902619301467bc986a735a9e93678b1f433bcb7af36da821dec7546a4957e413d30a4b1d75ba216da71af7a7b17a932c224bfda459681893ec103a4b56c10805a24543741ed0b1f5bf84daa018f94c07434758d32d80a3d8c6b54774da822451b12aa086782f9c0622c2b8ac9776639084a19a509124b5de6d77a83bb6e123b8eb1019a2b203f87896f23018568da081df72e460a1d8a2815794966aac55fa07cb7007ac3743a0f2ed5b6f377286a7c2aa4b9655237b3f1635dc25527357bc4714c3a47285c9ae3a5a84886c7302d22ba2d3c15580be7b1627c81fa1b0942e85a3a075845e47dc0674f4ec2c1ed9ca031ac1cd934a01c022d26b6ce5c038fbd541dcd4ab4a9bc17c06842d7645935b57587559c11b99af337bc629a45ec37a3a20b1fe905510971b6e0926126e815625c5d79f677ebfc69b1489809172f34e075c29a6e9fb4b536f892b16c7aa97623168823d5b1afb439cd2603c9758904b942971d769826b169936ac108c6caedb98982098d5176c71cbcb11b22b96143433f6c083bf83f6005c5c8b93562e081c940903ae662a8f17fd0882fcb399161d2a2bd2b8d1af0731b0303e3c9beec81c5473384b7a04c1c841f60e27eca0977eab4c750930a2bcb3983daa99cd4c2e2414ab8f77857432036c1a9a65c493afc62ef80758830417375c697a2a7fd0782ac011014733e51f088bf32b7135b5db727b147936740e320c603365e280cbab502b64412abdc4d25fb9a96ccc96f166445f6a6c3a894a6c10ac7bc074fe7b5a1d2964ef0531e7bc445e0a402f45b0f29809a84795848812a1b935d220670c2cd0e3332abc68f57b98f24cb9e68f8b1663b4c793ac4212177f11c594671550e44794f84705fa4835d918b317a1d5aa39e65026d3888aaf40cc247023b74cc4e00fb1c011c6a266560949c626e08263891608713c12e75a229c5bc114bada81395b00a5b6e695096b2790e85c954028c5b288758c9ad634a3ae11b069790bff9428b425ab70c5c46c2150346235814e7af8576af3071c6e6d4b56b61412d7a5cabe21cdbd0aa69e53d4d223d72e4c77afb927958245cd57967428d9f6c81cc604fadb43dd56c8148664942e2085395b17a1c53646287fa14a9bb208aedb1a7e6f73828f0aaa5918a69c211bd765cc0f93615a57609b5aa91c502b851c4a9b24335d282348ba33a802170524ee3351b6c780a3a9b46cf472fbab34be9f508c32a64bc37b6e6b30f37a7a9f200c34811c2b8553ec3ec091091bb08ab02ca7680867244fd3c991508902e84bb5e177f7251057c38784c0905cbe7041f12bdb77c07842228ab569fb69700f9b3a058dc5791b600dc48855fb1cb938b2e2599c1f3411628b64094ac20eb6c50f5f5cfdfcc10471346de9429dd29953e7b139e2a46f04127d7225fd46723dfe19522a4a76389bfe6414450b885cb211ae680b59ef46177d50b0b3306820a9d57293ae6753e65097f8de97c898c465b07b6e89459f446a59c04145f2c30dee57368e0479468ae96bb2e8b0332bb7535104498ffabb2abd65a6b8a2358d467eb8376a795aab40108ed9b0967a710083acb476c28a01b46e68a3d64b12dbb49146df48f31e1531cfc3295e4cda083af7b3a17617286f60b5ca9d21858508f8f009878916473c85360e8cf6ae8360c80aad7a10f6cb7a707063ea9b2ac097155e6961388f87327d084baea61d5ba26e1d5bd9cc25ffdd46a24d81c40532697b4cc8f58643d41afb6d29b7c857837a1e385a9106e3bd9911c697c8709312db4ee1d9b023e39fb4a92d9d95ff01560d717ee34e223ead8139db400078cb308c3e1bceb046cd9d53f1a2abdf8f924d7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d + +# Official test vector 66, seed: "a3e2e511afa7bb560446bdadf67d2ee2e16ffc7baeae7efb8c5455068bbd4e91bf9be9d98b280072faba7712c75b26d4" +seed: c0407e41ddf48d333978b89bcf2db01e4613425b456249e76a6f25b8a2827bf5b2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 +public_key: 13665dbe0a4aa46bcc40862f1e3621f2596ba293466f7499d9954eb6a6251483b350072ce7a4910f008166e62476e383f0151fe706c23999b71dd2471af759b99239ec05996a94b7a3943e37f10dbffa1ba205b2ed836aef025221ca53ac612d41339770d80b03f0220fd1580b786353c9bf15909242494253684c8e2b5a28216501e1b4f1820d6312cac1bc02c122bc0ed71350a05457f4c40a29584e20b70a8739f1e733483b7e7f8ab62b664c9672229980536d747f3199a064ccbd66e7be173641808a93231aca8a7b54dbd0c593ba85df11c54bc2894c6a797bc0557df513734c74f3641a6d2c98fcd8c1ed356c2e199c28088ef495a54fc1019b736f2fb8895eea391c67c895041f97805bfd2354ba1c3dd8e98467d302366a616d280bdb4747fb5a000bc5781bd8c1cf2b563db206e6e512248319d2122f5ee77802d88466a61f5006239c5001975b00dd634377705274629f16a92f13b37049698b12c39bb1c3579d693970736fd72c8d8654943e5868c53a51324abdc57b330ed30145e92ab82c91d975244288833ff3a2d9d92aa1f53d99b11d191c99e06434196318e04087d9aabd03d7ae1cd2887cb2197ec4b09f7699861193d8eb77da9c9e33749e4a0c5bab3bb64adc4436b7a6d84b9463c4887e4642d490052093399b2cb52a73b5904920a601c327e2937ac439fcf3b78ee830b4ecb795376dd263a3cec91c6a6b60e48001a0f739e217b5b3c4ab0a676131514bb62c9fa1801bc80b6c8c7ac70110b4860cbf221543f2aa61e0683bee500f98ba4fa93c2865a28ba4820aecc3a6c7b56081869c701b1bf741152c0ca0a753a211c3562ca26a15395a630a4a92729ed9a3092d23bea5433447139ac0518f75d11af6113b8368cc72891a5de08dd7689b2592256a8ccfa524a2344921a0e887627bcf7965a1875c1ea5c255c36978da7c4f184a1cbaf24a2df142ef80c07750b87269419721c48d8014f4ec8b4ee23d95ab1ed9f8b5ee9943669007d48ac1657454afd466e8765c877a54466171b649188a7c205bc3073791b832b6a752625809919db9258ef1b7a15d2c54c6c02f57fa65751438f4186a8b576d7c561d649a7a60d1928e013df7d69f4dd7035485107a7062bf3ca84a93a5a0197ea00b7522dc769ed45596bc5e712954e1eb37ffd69d63ea2ce5e33df8088545e3a738b864bb61b916d29e45ebb39d8a7a6fb3cb3901b9880ab0547107c9073b19258e4e290156f54ae3d44d19d8abc5fb334ad757c7e24986a26a31d458edd45c69b9b8d87b0622166e66c76afc49a23e1c1abbf357b7328781aa9a054b24aa2645d691639f141981c30a7203623d550c31e2bd4bb95b2e7b518b44512dfa6a5387afd6c7ce162a434a6b9ed937cd79222134310a2420934b357e72e009ea8413a9148698240aef2732836b5659566d21111331fa9bb0b762c948247cba816e313109270eebe826ed722322f9841f33a935209e0df273f4e2237a59b27cf85fb3773998a295a37714ba074d1093b0f096b2eb5133bb273e50e17de75b45300c0c862354344336fd028a4a631da22b285d4435082667ffc21fa01b79625c019e71cd0ad86032fbaa79326630692b9d02be55315543d83c0b84297945406c339699b1093e4b188511aec19b3c9069bdb8799a2e077af4308c401982e96819c7f17f6bca98054688c30a75dacb90ad342acaa9ba227a7f6784100428cda9d6890396cc19cb90a81153bed281cbcb1036113250206b59208d8c75839b76ab8425211961967396c696f05d913598259334c742915dd183f32c5a4e957013868634459f038340aa7761ecb628fbbb435ba642e21c538b907d8710413ac10d7f0a7965b03cb8c36d39336543193d0d768bceb00af79069e7c85b09114e77e6063aca18f27376beb9ac4a0b976ce745fa7972e9fa74d0055ef490cf40e11e6cd785510bc4bc1231d88abbc9b22fc1e2577608580e26635070702fea437f8a13f6fb37343b488c1c0b2560027bda77fc6a97222319b66a86528061f21019aa73674519420bfa26ac5616efd714cd46b7b7751922175a1dcb22831609eb40b4d16107c8438f33e203cdbb85be910b78a99d766499d4541b91567fd8c7a85d983080b91c9254ce3c2a9feddb8c8ba948f0986a90d02681341fac1cd19451956432b83b79d115d32a3d4f86f902f2f6b0c95ad7f4bd49 +private_key: ad3cc5e966747302200dd35f1d80350983648610ce07452591948a1c6a9debda418fd0ad79da318004aee89acdd62c689f88a5a7621f7ef3b1f16c5bfd5c17438b98f029906c276ef1202d1f5504bec6243f608438047e6625c825b902ce22141142145368298d0c33ef857a45c872aa73308ed112726847def20029c2730768abd1c40a8dca501fa61ccc737d8fa497091ab5ea532bc730bb9633becde90398a391b4e60f5a5a31a360529b1486530b98742780c78c2761c09e655334be04b71d8b9b04a7b7daa7ac4d2a98e2ba49a54c2e91016be462418e632a4e023bc6e816240927c73703fdf0ae2912787626c55f4614c93731c9c679984738c96b5cf64c7f3919cd4d217f44e668e9fbaee0530949f63ac68137c841ab926587b161c56d218e3500885b82bce07668ca959093792507eca4827a003d26cd02324e352388fc76197ec546d590b00f646de107681ad32c708561546bccaf0489495821f8d43a436c1e4d9ccd9be2a5b46232dd37485328c3ade9bb08e53947eb16afbc6ac1b2b96b496f1afb250277bdbb0b6186b61b88b81240292880d9cb9a43352546a5e9f600045153ba033c3148a5aa78afa9b2b7c8b86e4dd70a0516a8a3e746e83ca8b919104015650da3a6f7ab9868e1c8e33b039b9279e4680b5c2a382789049f953fc28764a0422f00e9cac3ec794de5ade0b432d294a9c06941a814ab0f89bf88e719d081520b114c9c821f772a7a3b2a16edbc2f140724e7dc1649281233507187e4b87ea13803bb8e23541e176c1cdbf38ed1a225fc932716974829a6b83f30b3f587804eb8720e102278d5c7a2668f1481c42adc13788604d60c9ed1498bdda86a9640bc0b8137f3d7ba17e0bba28167ff1c5e3eb86b6eb5c018ac766e15193b8b4f65acaa3a2c191d646f97f19b200ba588780aafbb2f1c582ddf4105767cb93fa984c5b6cb73cb0301d9183513582af59e04d9c5869cc99ed83677d5a0f4405d166a97ceba0d6e0b8692cb6ebe130f77025a24264bf6851b2a52b41ef989b9f890cdccc3867c3ae19c7238750bfa11ae52dc573e87554a40088e682f15f9be503b05e2b53fc4411758854f5d691ac806ca00136a0702ca52803dca8c935d98c87fe476f960a169401147b240c026745c894d7d91197bc7b2d7802568f61eee554d3b852902934906521fa08b29b6c7c27c6867667168b796b5249bb442783970e7c443469c540aa9598834bbc4bf8ec97a18119b496a56c3fac7e2627b76ccc51fd60edf764f68ec032bdb7a1b5424be15329a54c537810205c15ca2ea34a6462cb3647dc7a38590b120a8d141d821a20349631e7c4804f11af9ab9ad4917a27ba99b9f2277f3a8afc059bab0072e93131a1936f87c8356e3859fd97a89e17affe170693309eb4e29a769ab2ab48659f635acb4ac986f08f1b186bb6a70a50a6cd4c202a10bc2f1d24ab4338b2d9765ca263ce01295537dc56bca315db1c652e850dfaa522cee677d2775f878037e5c17da2e6c7fb296927c64ce9256f88851d31ba9658f5bd7aa0636cc2bafb1c3494110e7fb8683bdcb3acbaa7274351b14a81bafb0a4e2208d3c204e84c00920c0c074109a81426416bb805465e429641bc9006b56c75ba1c75c5ac4113f95bce7843344749e969ba2702adf09032af83396606903772547365cdf835a5bcf69d3c14505b5472475c97acd88ec1ca4d52d0b1281086a5bb3bed1cb3986238385391a0e59523b5a16756af4e15b58a07426b574ec080893294a60d1148dc418c1312673f89951ec94e1db149365b33ff60cb2bc372763277eb97c5c8884ca7421f681b90b249275e631918aa57a7ba65b4d620cbb59131201c9a3c5e070ac76f7214e167853fe16c6058a9231a0f5cf69339c0463d290457fa47d0d949bd7362b5c0c2236826e4241353c2ae7833c31dbb03e7332dbf370a637a8885cab1b9d1a864b98bef6c81a27c93cc306a27b37bf794190a3cb6d55bc580d295ae6087d05775fc802198191ac5f400c25b39102a54820b5ed02146d5f19586a8c66126c87bd22b0e9c7857c3426b470768676be8f7b826b1c1dc486c9ee64d79c33372e33ad4880f357196ca95637c80668040022885549d1a9801109a96398f1b8c6247f203ddc4350cf730892b53037b4a13665dbe0a4aa46bcc40862f1e3621f2596ba293466f7499d9954eb6a6251483b350072ce7a4910f008166e62476e383f0151fe706c23999b71dd2471af759b99239ec05996a94b7a3943e37f10dbffa1ba205b2ed836aef025221ca53ac612d41339770d80b03f0220fd1580b786353c9bf15909242494253684c8e2b5a28216501e1b4f1820d6312cac1bc02c122bc0ed71350a05457f4c40a29584e20b70a8739f1e733483b7e7f8ab62b664c9672229980536d747f3199a064ccbd66e7be173641808a93231aca8a7b54dbd0c593ba85df11c54bc2894c6a797bc0557df513734c74f3641a6d2c98fcd8c1ed356c2e199c28088ef495a54fc1019b736f2fb8895eea391c67c895041f97805bfd2354ba1c3dd8e98467d302366a616d280bdb4747fb5a000bc5781bd8c1cf2b563db206e6e512248319d2122f5ee77802d88466a61f5006239c5001975b00dd634377705274629f16a92f13b37049698b12c39bb1c3579d693970736fd72c8d8654943e5868c53a51324abdc57b330ed30145e92ab82c91d975244288833ff3a2d9d92aa1f53d99b11d191c99e06434196318e04087d9aabd03d7ae1cd2887cb2197ec4b09f7699861193d8eb77da9c9e33749e4a0c5bab3bb64adc4436b7a6d84b9463c4887e4642d490052093399b2cb52a73b5904920a601c327e2937ac439fcf3b78ee830b4ecb795376dd263a3cec91c6a6b60e48001a0f739e217b5b3c4ab0a676131514bb62c9fa1801bc80b6c8c7ac70110b4860cbf221543f2aa61e0683bee500f98ba4fa93c2865a28ba4820aecc3a6c7b56081869c701b1bf741152c0ca0a753a211c3562ca26a15395a630a4a92729ed9a3092d23bea5433447139ac0518f75d11af6113b8368cc72891a5de08dd7689b2592256a8ccfa524a2344921a0e887627bcf7965a1875c1ea5c255c36978da7c4f184a1cbaf24a2df142ef80c07750b87269419721c48d8014f4ec8b4ee23d95ab1ed9f8b5ee9943669007d48ac1657454afd466e8765c877a54466171b649188a7c205bc3073791b832b6a752625809919db9258ef1b7a15d2c54c6c02f57fa65751438f4186a8b576d7c561d649a7a60d1928e013df7d69f4dd7035485107a7062bf3ca84a93a5a0197ea00b7522dc769ed45596bc5e712954e1eb37ffd69d63ea2ce5e33df8088545e3a738b864bb61b916d29e45ebb39d8a7a6fb3cb3901b9880ab0547107c9073b19258e4e290156f54ae3d44d19d8abc5fb334ad757c7e24986a26a31d458edd45c69b9b8d87b0622166e66c76afc49a23e1c1abbf357b7328781aa9a054b24aa2645d691639f141981c30a7203623d550c31e2bd4bb95b2e7b518b44512dfa6a5387afd6c7ce162a434a6b9ed937cd79222134310a2420934b357e72e009ea8413a9148698240aef2732836b5659566d21111331fa9bb0b762c948247cba816e313109270eebe826ed722322f9841f33a935209e0df273f4e2237a59b27cf85fb3773998a295a37714ba074d1093b0f096b2eb5133bb273e50e17de75b45300c0c862354344336fd028a4a631da22b285d4435082667ffc21fa01b79625c019e71cd0ad86032fbaa79326630692b9d02be55315543d83c0b84297945406c339699b1093e4b188511aec19b3c9069bdb8799a2e077af4308c401982e96819c7f17f6bca98054688c30a75dacb90ad342acaa9ba227a7f6784100428cda9d6890396cc19cb90a81153bed281cbcb1036113250206b59208d8c75839b76ab8425211961967396c696f05d913598259334c742915dd183f32c5a4e957013868634459f038340aa7761ecb628fbbb435ba642e21c538b907d8710413ac10d7f0a7965b03cb8c36d39336543193d0d768bceb00af79069e7c85b09114e77e6063aca18f27376beb9ac4a0b976ce745fa7972e9fa74d0055ef490cf40e11e6cd785510bc4bc1231d88abbc9b22fc1e2577608580e26635070702fea437f8a13f6fb37343b488c1c0b2560027bda77fc6a97222319b66a86528061f21019aa73674519420bfa26ac5616efd714cd46b7b7751922175a1dcb22831609eb40b4d16107c8438f33e203cdbb85be910b78a99d766499d4541b91567fd8c7a85d983080b91c9254ce3c2a9feddb8c8ba948f0986a90d02681341fac1cd19451956432b83b79d115d32a3d4f86f902f2f6b0c95ad7f4bd49566debcfc9a4f48f6f60ad57731445a7861bb9c371e4ee4407b35df5a730f36db2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 + +# Official test vector 67, seed: "074ab1a37ba5a0403d8f68d26fb787bc2c90f5ef88f2a6d286c3e6b168abd85d393d8225618608b8eeb301d26af53bc0" +seed: 334382d39164d1989696a2ff77b25a28af8bead9883b5365eb6fcca7c1781cc9aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 +public_key: 869a9e3773a7c7942e279471a233a05d77899c2a18f35ac98a3243fa6767f076976529b75b75b070a341dfc95bb85c4bfa1394081141fe1b1b31365e3c2302c8a0296b9769de04024da48c2d7a3e5b29ae58659384fbcb4ba2ace58c4ceca5baa5131bdd465797664276aa44e8331e2f1328aa6910f68a6a73210e575ccbbdc689199559f094bb62380f436a925a7305fdeba6c53a9193069873e724cb1b67fb8820e75c27d175bd5f5b5db020c91eda2439383b579c14da0173e1704a318a03de6691ecbc600097b41a7a9a429ca1a4d8a34dfc6c85e034e8a17629181fe7c993ab018d135a73861405186763b0f70c80d09706c9af971313e47bb917761a0e3a39f7b96702c288254675f6a07771768f3939b7bec979cbbb8bca011124f08347b7bc7c70833197b192fb26589098e48834e8fc8551a1c1fc52a1701323d98c4bbe7779b867b813a5a2a5040d8e8845d4a2b03efbcdbbb3083831b1ffaaa9e21c7a3ad77053793b1f7b7475b021e2c1ae25f194856b1594228e938a29b832930d5bad3667c854366f83b48cd3501768f086b68007ead71b2f046f630196b8237967c940d4727d388800dfebb3b152cf57b33068803c1d55c59fba14e31c323e820265c8826ec3b6018c8f60445a11268da9b44f8dcc512b860212f408d3baac60cc6ca42211d2ca3a41271f745bc46fa70a9a8a3999ca83e8635e7a4843ea3b861194bf00909e4250ad1ddb3006f86daad2b8fa720d969a7d87dc97ae214ab3769eac0261076092250133726265eb7987bd4bc01ec004e71bb8f7b06ab339ac9c0849fcb23c4bf35b11955c52d30fa0eb56dc7cbfac95704e51969ea45ab01c10e59c691dc3908c083263c3565766a34b216f55f8284f219dbc158cff247e2296c86ba69c922161ed753fdc1471834270095a85a5fabb1db91fe203113139526961bb40b41e8f913a36461ece86b37fb809779005c4312727f68923187203d001a378c0073a240190a144962bfaa89b1c384083178a1b44461926a9ed135abae505c93177f263996de9780fc573619b63f741091ed57657404644194a25b6cd1e5aab45e9021d9a8839546a9913752621bd79730685397d93ec49d86910c46a28142928a054599ba18cc3964cc4db8bb7a87543e8a53fa23a95bb5b6713478f4b0b5ca6248018a729469a3794a8ed04a315f3783e667c0cd2ac80c68a40c35d64c90e5e8a3135ca15cfea69d4a1a2e9b562dac51409c6485e026001eb1196a487606404b6519974b386abfc9cf4a0305aab4a627b6c22a994dfe46035447f0cc09d1bac0397a68fd647b0b13630d1439e63fc8fca2b01cbe66bfdb4315230b06a9797b34a57a5db208061195813073c7a10ac95b8755aa79b2033bf90386115066f177ea1421ab0267672b91830a26c20b4a8ab9011668cc46b49a2d824067102c95dc842b4f423feabbd774b4a4be351bcd8cf2c486ca70a5eb502ab5ffb8d77c2bf00fb7887fb960c089210d673679a0c71428b5ae348ff293602833b6927add5b18f22acc4ce01517c65c848680d59931175954ace9689fb6881ce17073e113cbcd53547bacb3946067a1a46cf6b4969065c98c17304d53ab5804501711c153a1b13d7cb442221ee311466469ba1225cbb312708c7b5e0055e3b476264b2244fe9590a557f088c9d4fb47a3d598a998a1b5f821d19909220a229ff020bc11143cdfaaa90e00b71d6c8b7622f24584508ab4d036792135b750eb9ae091b4baa96a27dfb1aeaf605122060e5268bc4e9c08d1bbcd451a22e44a2d6201c6de52baf940f14956aac311b5c3782e64377c645b35d210e1ae043ad6142bf6c05aab07d3915500b67989709b7477432b947239a9c7abbe747b2238ade292448836b87938e804a4029f24182941cae500d85aa7ab9556ca98c7808d90558e771d8709446bb1069541dec34b69834c857215822f773871c4401da04c70503cee82491b07e8597480b6bae6245084a4b92f9b015a158295f237a6376118868486d9c1a8389baed937b392ab840d4bf67e31df2c073a4a8c691896b6d6b623b95670cf404dd499773a54210975d1ea72667439e0fd8c112f33470789f2899a64217400e4b51fc501362ec98a45620ff6ba180a211ce5c154bb62a1904cc13a64fb6f445b48ef88ccad56919a0deed94a2ab2d4b6442a71c288753f1dc41ef5389e39497 +private_key: a11ccbcf239bdf7642937b7d37c0b33dc0667f06b13d7a166870cb3c696c93e038b314276a135cbbc672f830585a46c31cd09c621bbad1f4c611f3349104857a4b1117f47142d36fa8f73834260fdc337d7427aa0fd90b5646587330cbfa5a56f3f42d211226c6a627085b86cdd73c05838f46692be0d15a7d59b9c2e803940708946293adc5c338a29913c489ee1396de0162588b6449452259a243d422a92dacaf5ed9a88921a37500cb0b1031467c494b3c207acb6d4fb444cafbc9dd364933a3488ee654b7fa866dac82a53acc8c15464a29cacefa9432256934c7790e1b99c85c599e3c5c0ed11310dc2ea6d813b505a6feb4626048bb6ff0ca8a1c418bb4512008a94d863a6f7b359df211f061584f34043aa628ab80c46007257283a6b5052e8967a56e86230d9b58acc6125406064f03b6b25a5f9a706aef5812790566308ca35b19b3c6a7a2450a56b164bdd19278de85a5769186e7c67ea9dcb7e2a8223774ca66290368f67ef6494d2bf5411f7114e7e930b7a99beb84bc69494e7461127fda4d6edc4959c375b6d8b48121312000a6ddf510504a8454600f87523d71071e13a0b676fa681428c31d7cc0d2492bc7c94c7b423092113dbb1b123a3936c0d1846057b2970a37d1caa6e53988bc0565842b143cf2207af23167080257a339795141318562a0141d1f7b59f68169fd0a2d7c959af209971860123e5b30464a740f5214aceb6b322b4cdcbcbc28285aa2746090a8595d4371508735eb5423b94a54f6bb8aa2019b76bb76b25c1dde42b56d13819123be6ed3bc3d26b1dd515121a268d3d3381ad4432713868d7059a06609864671fd9a6a1777803e4b46d9ba6d45050fb2c80f88f450a3b655843872f727a68aaa66c758a8317a3e2aaa55bde0a97dda29a244615ea33469cc5ff82a6c2e0982935c9737943b45c77c3355900ed32785f59fcad14b936c1708baa6b5686b952b07683c1252c99d8a49272b053faf69ac090a8c0e2a0f639544ca196c00975f77667bd54289445cb62367bd79a290683319daf1be3cc89a5d105069e221b875075e7162b12b3203630ebdaca13bd6768cd9ab4872a7ff54ac4baa49c3680e372b9c7e25124f6a9c62c498adfbbe9a90a79fca19fa358367a2b5a24b821866402e43b93dbc3cce1467245a42cae42eb6217cb7470158a24fa225467cf0962b399741c4743ea2222f265a45e7a94ad800734a050635aeba147023349854305c59276565e32dfadb17b3183722b1c44af4c289430f6ab53b416ca239b409fd1584a7891cdb77b742a32e55875d9a20a92f877dde6662a0c0513fbb0875973924c16dd283ad5cbb18dfcc37fbf28914713a04dc05146a7d5399adbe57b60d6003a81a3f9f5559450483d4116dbae0470e15ba3f6323adab47af30252da7bc45e38759ba99877a6421f04232b35cd3b372c0c30ed32c64b0d74fa70c7e6085048c76c2e7e9b1bdc8b033021f7600be3135b785491cfe48932e30a89f34729c012588374fb1307c808228dbf704f9a8c0eb8a98765a8e4c1b0591c212d5aac9f9593a1418afb84bbb931349b1b1bdd8d10bcdb66e7e97299a4b1c23770f8ffc8a08a0391f826b5058240d345fffb4ac4c03483b74626d049f7fa52693b18b5381cec4b13dd1478c5912a33f009f0d533bfe57105755392ee76df7dbab0db56fbd2733487b511804bd63ec767464c10fd22817d79aa7909471b14c1e0445722a240918c2cd829d3c6c4ba81c0b6493b9d0dc3910ba048d515f2e3116142c553fd230d110cd71b449f6216fff68839d83096638348a42a5ecf0986c62bf9305068ceb799ca1b7b8826a8fdaa131d6b872e1afde468aff285aa818c8caf80b9ebb2730f770fd143d81c86819b223d4059ec5a39f18ab5386142464195263f02f9b577105658ddc80a1c7ec2d82bc8c657b00c3d986f8261b039738449c0db616207676b9ffb36a986c3350b698289367ca28cb404ca0c1e436f0e91898941d72e7c1bef2a9aef3305fc4c73d7acf83f5248766a95f9a5b97185ed14c7508d7c8f7ca571a534bf4b843145799233818e0a65e0a7065ae5678411a25d95610dcf91847513bfe14abbd94300f322619fbcb0b03857ef1340de5510156579a52ada7601eeda662b61b16677c2c81f998869a9e3773a7c7942e279471a233a05d77899c2a18f35ac98a3243fa6767f076976529b75b75b070a341dfc95bb85c4bfa1394081141fe1b1b31365e3c2302c8a0296b9769de04024da48c2d7a3e5b29ae58659384fbcb4ba2ace58c4ceca5baa5131bdd465797664276aa44e8331e2f1328aa6910f68a6a73210e575ccbbdc689199559f094bb62380f436a925a7305fdeba6c53a9193069873e724cb1b67fb8820e75c27d175bd5f5b5db020c91eda2439383b579c14da0173e1704a318a03de6691ecbc600097b41a7a9a429ca1a4d8a34dfc6c85e034e8a17629181fe7c993ab018d135a73861405186763b0f70c80d09706c9af971313e47bb917761a0e3a39f7b96702c288254675f6a07771768f3939b7bec979cbbb8bca011124f08347b7bc7c70833197b192fb26589098e48834e8fc8551a1c1fc52a1701323d98c4bbe7779b867b813a5a2a5040d8e8845d4a2b03efbcdbbb3083831b1ffaaa9e21c7a3ad77053793b1f7b7475b021e2c1ae25f194856b1594228e938a29b832930d5bad3667c854366f83b48cd3501768f086b68007ead71b2f046f630196b8237967c940d4727d388800dfebb3b152cf57b33068803c1d55c59fba14e31c323e820265c8826ec3b6018c8f60445a11268da9b44f8dcc512b860212f408d3baac60cc6ca42211d2ca3a41271f745bc46fa70a9a8a3999ca83e8635e7a4843ea3b861194bf00909e4250ad1ddb3006f86daad2b8fa720d969a7d87dc97ae214ab3769eac0261076092250133726265eb7987bd4bc01ec004e71bb8f7b06ab339ac9c0849fcb23c4bf35b11955c52d30fa0eb56dc7cbfac95704e51969ea45ab01c10e59c691dc3908c083263c3565766a34b216f55f8284f219dbc158cff247e2296c86ba69c922161ed753fdc1471834270095a85a5fabb1db91fe203113139526961bb40b41e8f913a36461ece86b37fb809779005c4312727f68923187203d001a378c0073a240190a144962bfaa89b1c384083178a1b44461926a9ed135abae505c93177f263996de9780fc573619b63f741091ed57657404644194a25b6cd1e5aab45e9021d9a8839546a9913752621bd79730685397d93ec49d86910c46a28142928a054599ba18cc3964cc4db8bb7a87543e8a53fa23a95bb5b6713478f4b0b5ca6248018a729469a3794a8ed04a315f3783e667c0cd2ac80c68a40c35d64c90e5e8a3135ca15cfea69d4a1a2e9b562dac51409c6485e026001eb1196a487606404b6519974b386abfc9cf4a0305aab4a627b6c22a994dfe46035447f0cc09d1bac0397a68fd647b0b13630d1439e63fc8fca2b01cbe66bfdb4315230b06a9797b34a57a5db208061195813073c7a10ac95b8755aa79b2033bf90386115066f177ea1421ab0267672b91830a26c20b4a8ab9011668cc46b49a2d824067102c95dc842b4f423feabbd774b4a4be351bcd8cf2c486ca70a5eb502ab5ffb8d77c2bf00fb7887fb960c089210d673679a0c71428b5ae348ff293602833b6927add5b18f22acc4ce01517c65c848680d59931175954ace9689fb6881ce17073e113cbcd53547bacb3946067a1a46cf6b4969065c98c17304d53ab5804501711c153a1b13d7cb442221ee311466469ba1225cbb312708c7b5e0055e3b476264b2244fe9590a557f088c9d4fb47a3d598a998a1b5f821d19909220a229ff020bc11143cdfaaa90e00b71d6c8b7622f24584508ab4d036792135b750eb9ae091b4baa96a27dfb1aeaf605122060e5268bc4e9c08d1bbcd451a22e44a2d6201c6de52baf940f14956aac311b5c3782e64377c645b35d210e1ae043ad6142bf6c05aab07d3915500b67989709b7477432b947239a9c7abbe747b2238ade292448836b87938e804a4029f24182941cae500d85aa7ab9556ca98c7808d90558e771d8709446bb1069541dec34b69834c857215822f773871c4401da04c70503cee82491b07e8597480b6bae6245084a4b92f9b015a158295f237a6376118868486d9c1a8389baed937b392ab840d4bf67e31df2c073a4a8c691896b6d6b623b95670cf404dd499773a54210975d1ea72667439e0fd8c112f33470789f2899a64217400e4b51fc501362ec98a45620ff6ba180a211ce5c154bb62a1904cc13a64fb6f445b48ef88ccad56919a0deed94a2ab2d4b6442a71c288753f1dc41ef5389e394976ac9cb9123b99fcd75201ada0fd5daf1a51f1d069822d795f8e736abb8d1fcd6aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 + +# Official test vector 68, seed: "cc0c86cc0abf86fa21899be1953913c00e7c46e6b5f730c4e88b3c034012763981d7f14459d3081638080378348856ea" +seed: 6995143e8eb8a6e93840f76eec844f67d2b5f75b1839a5040337e61f9806764a0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 +public_key: 12b3141c2441f96a053ec568c7d2b7e1229fdb620d905119a05690cbc9564bc9cad3a66e05f641302a38ada62e07380ba315acb5a3af9f02aba7811726a3ac94723d6e66428ec8576718c4da712846d450cb428571b1786267487b353b37d984cadc2f51aa6fa58c48b011360c5b1989e104b99671ce2985a174aebf31cb5f803d29d93133d2ac1c9851031b21e8da4021b44b4064ad7415786022bdb27a187495908ddb6109489ca2a67dea269493986565e33941c1012e5504f4e5abe662235bca3a144c149d970ef3815079e2bbfc26066a7c8dc5591871e83731139951a262f9f7a2630c0e0fe635cff95b792a6b9d490f0ed14b125b652de35cff994ef341a15bf57978211ca4149fc389c60f915edc45610b9c5883080e96d77267268a37b4338ccca90490cac44a61f2795f943a25147a8943dc545c0805e5d39b70139bef006df10c695cab9cdde3b7c3a2afe823c709936d7c3818584abce96950c06b248b858859bc2231622426078e480074bfb011baa6b11336206425211c71b48d134b7b0b1c960c9429829ac5191f8f8aac1ed70bcfa4342a362c68a35591db506f2b69bff31033f5ca4654421f48afdd736e25d810add97f750530c443618e674a6691229c3a17f3b19e9d3740ae4a6aa6b77254b27374b246381483e52624a473035fda0eac427cf0f7244b3b8fcf4c835df23cc5b729bcb1285ac49529c1241977741ab15c2984343f5139e1219d65992ff75637fa3a486232c1069cb49269305057080b535d4a624bdbb78ac18407fa8b48caec62459b80cdac45013403adf41038fc0b97fbb3b9450e9953718cd82b4e951b3628c7c1fa39f5629dbd074548d156437253ffd92f7de9b292b00d1812cad1ea7c26a295e373bf80fa6f173b68e7149ec6a454db833d00fc462472ac51a208341a39fa8ba8f7c8243987cafc65a48eb30e729a033cd8929a746ab6eaaba19388e9246ff28355bcec0249fab0e00b722b91bdee0b8fd80377509937f201880239ce9c9251a9d3b48d455884e98acd948f0aea095155b360620f29a279116ba08a5b5ccd6c86e0e57f4b33c5787c38b7f0b924d71d7c06c58f932d7c68422085c8e365c6787b8069d21f0fa5a414d44267b40a5f629b6cf82de5588b7e828868c5b6ab9438af030983c7c37c1032be605936002558e161ba0bb2b1b4c6b1fb5fec029ec389a375d563dde64eaf7b95e4a05e2cb7b1a4809e4e98893fbb2d79aacf0e7a0718a322ed8296323681ea398981512d04f56ad2bc10667187b2ecae2e9aa5e2922fdff22eb9651c37c75f6ca87aed6213e0048e36984e2b9b6936d61318da6b7db7c8b1538754b997dd325052c21d22328f03d5774e711a51ac6d3c333f0a529c1568840bc92ad42603b4a361197b36681722d45b497cd94f73d90fd48570b445c4b166a02c5a3c5928bff91545053166f0fca5f7b2229232a301484ddb25854d522f546c477f43072814668a734786b6810770b227487a21abaf17e79dfc365c3843363ec53af3686cce7429104740a327ce441bb8e3736af22448016b8e69784d3a2c92e0f1787e818139e19e95e2a9db2b62164221d9b77ab2ca91dc221ba5533322aa772459c6c5763f24a07c5b715197a20c7357cdbcc18840aa7af18c4684e275cb3220010386095259c4fa71f94662133622a2945d8cc6572b2311a7fc0e1091ce19d8c5d7913acc490e6c1751d5aa3e5c7218ebcaba43a8c0f6d78897c15a20a87a891bc2ca94779525499a2958a60b4878db537d9b148c01b7c2a642fedc0624e594cc318a0fcb52960526af556198fa028604a9f0181be16399edb84b38405e33b43c13d83e54483418467a57f8a796b4032d37a744fa6200b0aae04899c6865a66923eb173906b26c33231a90044c9c4d5215117ca1d50cbae1120471c0462eb1247f07a2197680856428ba494dc721bdb3760c1a97d2e59735bea6064650f55212117659380052550fa311599923dec097cb28d601cc4a117269822a2bb589ad165a8587893bec2b0e22030dd8736d387673a67151b249c49e7abf96960f5394fb255be8cd9927152211613c5242a45e87028745626de709542338e131678b871955582014f1074e2f8be14a634ae5c40dad64b78352febcb21bd987d7632c16e03261c4771bed2bac280f77da45501c2ef4d97f2faf650309211985bbee4c3a85865 +private_key: 160b1e369b620e7891965a391bb99d9933bddd1b407a647daba289f0f16509f41eb62576b3ccb404744d2b699891300b119cb1bcbb97c090ab4091c1d15454cdfb2e0e181eb677797041b47069680a929f85da252b34b571467b564ba72256867aba61d8b14561b7a6c6cc0bd73227a3f5c840d264ca45cbb4d6c529329f011b2235b83fb8158a3966643c5664e4a4028b784aa3f84c2d21a6abcc5f0bbb5160326963929fb3296b3c65502a34c409ca9ce0fac53661a77a6ab85339364f0a999d21147958b01276c31454c14410989186496a5aa529223cc1d460a729a5d5170fbcd3c742b267d5c6aad2047154630cb8492556372e927c0ff48015b4121966c742730c223ba3ac0d9553e8f3043c84a19cc40657167a75603a2e467698d117e0e96beb199ebef57ad25b91be9bbbc31499999068d4f56315c05cf69727f6c1b09038ce4e3ba307fcce081669c7f666934a9feef44653466915360c9160a573781b0be59f23d817922bb9453802518b52250b5bfb1631f16327ea30552cd26725d94717e098e9b40559d12db67680f52aa19ce11ef22641d214b1d14689252027e68bae8f3a0034189c2452a89a8011b0f228c2f4c6c575ae8ab49d9b951b7f534c5c0c02b94c2eb1c120fbc6cab391ac02d71b3a61aedc65211314129ce950f4e82530f297f1d6b8b9fb6f0c423ddfa842f5f6667109caf5ac5db25a26ff46a771bb1731b855e909604dc4426d1598ba26b94fab7188ca788c1b473bb00f74232d7772c196e3be42c20ad9991b1460661c85a90285952a5565b9290d50fc2821a84eb80680c4d204981851882565e20455e7f70015289032d1792ee5475c499c8ba701bc094cde789b7647536ceb7471db9e4fa51b1b0a97d2d94f73024e83077dab62acfa03289197cd5d802901e34230d47cd5b469d202ad64e98f612cc286a267d17596bca1634094ca33e09b9fabb5ca170920804a3f58233ed2ca62362cdba424114275c1ea0df1183c33303efa559bca706fc77b164670058708b5a97c6f18acbabc011d8fb230ed56265c5c013bda6defd92e76c0ab04fb8b1e0758073325c8c60465678537bb5ff47923b39a800cf39eb5686b653c9423594fd7290745d566abe2735dfb4e9f7454eecc53b6fb11bd407d37e49a3155cc3561cfbe8250dc207d3f942fcaf3cfe5223103d2475d0aca6809ccce5b8d70c7aebd053f4c94bd2b66c9e1eb68b7b6989f6babff582f85d08b3926c0fef7ad5ee61cff982b690689996412504284e65bbe77123180f78efbc01c41a8262ee26765d39e94400a1a27ce4b147ef5e25d314c69aa86353f9a3933b73ea131bd7ef12979b863ba331f1412386f87336a90718da6c9265249cde518c39ba4e6ab83ab53c2d2c846f43041c4855d93099939d0bbf88722d873bdcf5bbd73519d8ef50255c7a18cfb04187147ec706fce576ce8f13928530b43262cae618f09d434fbf29fb5380add29c3a7992613733fa730a17e059c67297598f44fe28b4c4fb04ff17bcc7f3c8e516b557bda28fbf82971e8134e3082bd7497995bb2e09cb398254a12e0bdfab5a1f3234853c3067903a64ac22e528963eecbcedc58149deaae0965185b1c2588b40668103719152016e833a95184da4b10958c78b2d4ae2ca07466700f62fc687fca4779b500aa904a0d95c93464717b3c21e58b9e4c133d793ca5660348ab0198a81937a8e000225b8728477922813b9f79325f788bd8020f052801fc079f3d604b3ec830d29407aa9c2168a122434b751085804207b29062b343fb90426319998a98401232f3d0ca1b475d15650e7e9a42f498a7995c4bdcb893d09531832a4fd12c8874e4c3c65005d6c27a102725a8113d2ec9663a40255fd4cab9328b2220737f13aacb4646b392811eb3ca72307f89919525107be84a5ccedc1bb9d313f7b99d619cbafeecab88a01ba78c688166a6710b12a4724b2c661351574d7b1ba6b9265948d5a572b2c74982bb6f8546b8684cfb6916c9c1093ba1c205f92afe80ceedb043a04b67468335d28a8eb2406c72690700e724d773b40f4875c30b056e904ab688888195655d020ddaac5d1b20032a9b65501b51ba036ba2d48e5fd75b5c2a4d8b65766bb7a341247ee8121961e40cd192c6c126a3fe92488d467212b3141c2441f96a053ec568c7d2b7e1229fdb620d905119a05690cbc9564bc9cad3a66e05f641302a38ada62e07380ba315acb5a3af9f02aba7811726a3ac94723d6e66428ec8576718c4da712846d450cb428571b1786267487b353b37d984cadc2f51aa6fa58c48b011360c5b1989e104b99671ce2985a174aebf31cb5f803d29d93133d2ac1c9851031b21e8da4021b44b4064ad7415786022bdb27a187495908ddb6109489ca2a67dea269493986565e33941c1012e5504f4e5abe662235bca3a144c149d970ef3815079e2bbfc26066a7c8dc5591871e83731139951a262f9f7a2630c0e0fe635cff95b792a6b9d490f0ed14b125b652de35cff994ef341a15bf57978211ca4149fc389c60f915edc45610b9c5883080e96d77267268a37b4338ccca90490cac44a61f2795f943a25147a8943dc545c0805e5d39b70139bef006df10c695cab9cdde3b7c3a2afe823c709936d7c3818584abce96950c06b248b858859bc2231622426078e480074bfb011baa6b11336206425211c71b48d134b7b0b1c960c9429829ac5191f8f8aac1ed70bcfa4342a362c68a35591db506f2b69bff31033f5ca4654421f48afdd736e25d810add97f750530c443618e674a6691229c3a17f3b19e9d3740ae4a6aa6b77254b27374b246381483e52624a473035fda0eac427cf0f7244b3b8fcf4c835df23cc5b729bcb1285ac49529c1241977741ab15c2984343f5139e1219d65992ff75637fa3a486232c1069cb49269305057080b535d4a624bdbb78ac18407fa8b48caec62459b80cdac45013403adf41038fc0b97fbb3b9450e9953718cd82b4e951b3628c7c1fa39f5629dbd074548d156437253ffd92f7de9b292b00d1812cad1ea7c26a295e373bf80fa6f173b68e7149ec6a454db833d00fc462472ac51a208341a39fa8ba8f7c8243987cafc65a48eb30e729a033cd8929a746ab6eaaba19388e9246ff28355bcec0249fab0e00b722b91bdee0b8fd80377509937f201880239ce9c9251a9d3b48d455884e98acd948f0aea095155b360620f29a279116ba08a5b5ccd6c86e0e57f4b33c5787c38b7f0b924d71d7c06c58f932d7c68422085c8e365c6787b8069d21f0fa5a414d44267b40a5f629b6cf82de5588b7e828868c5b6ab9438af030983c7c37c1032be605936002558e161ba0bb2b1b4c6b1fb5fec029ec389a375d563dde64eaf7b95e4a05e2cb7b1a4809e4e98893fbb2d79aacf0e7a0718a322ed8296323681ea398981512d04f56ad2bc10667187b2ecae2e9aa5e2922fdff22eb9651c37c75f6ca87aed6213e0048e36984e2b9b6936d61318da6b7db7c8b1538754b997dd325052c21d22328f03d5774e711a51ac6d3c333f0a529c1568840bc92ad42603b4a361197b36681722d45b497cd94f73d90fd48570b445c4b166a02c5a3c5928bff91545053166f0fca5f7b2229232a301484ddb25854d522f546c477f43072814668a734786b6810770b227487a21abaf17e79dfc365c3843363ec53af3686cce7429104740a327ce441bb8e3736af22448016b8e69784d3a2c92e0f1787e818139e19e95e2a9db2b62164221d9b77ab2ca91dc221ba5533322aa772459c6c5763f24a07c5b715197a20c7357cdbcc18840aa7af18c4684e275cb3220010386095259c4fa71f94662133622a2945d8cc6572b2311a7fc0e1091ce19d8c5d7913acc490e6c1751d5aa3e5c7218ebcaba43a8c0f6d78897c15a20a87a891bc2ca94779525499a2958a60b4878db537d9b148c01b7c2a642fedc0624e594cc318a0fcb52960526af556198fa028604a9f0181be16399edb84b38405e33b43c13d83e54483418467a57f8a796b4032d37a744fa6200b0aae04899c6865a66923eb173906b26c33231a90044c9c4d5215117ca1d50cbae1120471c0462eb1247f07a2197680856428ba494dc721bdb3760c1a97d2e59735bea6064650f55212117659380052550fa311599923dec097cb28d601cc4a117269822a2bb589ad165a8587893bec2b0e22030dd8736d387673a67151b249c49e7abf96960f5394fb255be8cd9927152211613c5242a45e87028745626de709542338e131678b871955582014f1074e2f8be14a634ae5c40dad64b78352febcb21bd987d7632c16e03261c4771bed2bac280f77da45501c2ef4d97f2faf650309211985bbee4c3a85865a7ea65e4729daac39a47c305ad3084af028e66f759e0e22469d0386c10bfc23a0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 + +# Official test vector 69, seed: "6d5a7cc326ecf3983c4e7683f45263a37f692f3bcd2d920e1fd9584350119e74f9a3f905f70d3e20318c1413de2a0dea" +seed: 995eff7e0d195c6d0533f3dc194d47e60f9ad14696144cde694d60a95f3e96b4b28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc +public_key: 5cd35cd8f09ec13054176c506d02a7258a84eb685d14c3352f0b0051757c30d4184ab6a37bb6058c4451e89106ad2c259bc6791de49ed9dc0bf62bab1201429035c8716b864552a26b0549b1832a2bb01cc8f8cb55630618a525f885cb6fb407f042610681428031399e5666d56a9656e1a530460ab4178c3e957d22244b1366750da084f572399a33bb452c7c73f3cbe9a7028cf3849b475606ea2c96958dbef17aa08b3f15c146edb65de9379f62c11226f9b4b85802694614eb229c8ed44198542685610f53885f5bbabdd95c5597f89d825b0f441b21aa476ba4970be900a2f40cb742402c2093803f27ca37d06347615131b81fe6ac6ac9249459c92d92133870111aa5176c6bb828a4198c865a1730a84961f3914379bbfbeb46411c1705bc86f8a38a5f817f1b4c34e99784773051764b3f55d38571e98d744043287a19dddba7d4eac3f0b98173d09f0cd10b22a0bc0417a056c66064c906b7559ab134b6c47baa7932540070811d3ab8f5f265822873b4c78af45514ffdb6d03d79c24a88531d4ae7230486977b612cb05b906ce19337ca1f0455718569e80c2c2c795b7a156e60c5c65fa19fdfb5e4fd96727947fd66abd94774a5bc45fda822146a12b67534ad93aabae123af9cba2b2a376608cc6335aaa99f759dc964aedd80e432c6f417a1a65c63f639b5312c35038faa9c45051ba31c66912538fb51a85189d846b799d8c2fedc439ec8685b547376be49a83fb60281accd733001d729e4156badffb3b7dd8cb40411ee7a3970a168357a89dcb75535ce341b5b47403308bd87bba01f5cef30634c9d27d56da4d4373234790acbfb5051ca2a8519a42e610269b4b32c64770a5db4caa1ca6670c432bd74745fbba2f22377c729446954a6e067454639c3771aeb626871e3558a0f141a37c2732b13b13532cd16462f7822ba2869a0b20717e3675a328625da796e12c4403d380cdb54930db78493994c0793fd67b0a91140758fb78d229051e696c8707cf5a1c40ef511123b7c6de51ba4b792eda810762cc114f716c66a79dd4f5b0865a1a2a1144da80c4106b72aabb0a8f8036bde19b204992dc600956ab076ccab601f4250ac4b2cef77c38d6b6ef8907feec307ab29502b269dbc063e337ad43958d893a36318c6c052549bd907313c2251744ad02c30f78d0b394635508951856d1160706cb042275ba20a4bb6a734f9856aeba164af669f43c5016f1305e8084389581bc146168c0914d1a65ae5188e19082d585af435c183df28179c6b2278491dde450e7b1bf64075e0a9a8301454b5e111e39b0cced002680e173c5db96de082c3c399e398210c974b6f47449dc9326c1a7a79f893f454834e6ec1bcf0a860d962a4e05a1f51825981b18dc4ab661abcc98d4313cb40baa402307895460139c75b6aa69e27c5e69273141487b849a42996a55788b3b42018da0ab1c315d10308f05c54176d727a04b656ce6859f69471a186a4ff6b17b877070924758c83dc681292bfc7618f2b75413c79eb9b945d1b2aef95a47cb21cc8982f405739c9064975b5ab875ae5ddac05a65a43cec4ed80acfeb15aae898b995e649f32b98613c77fb926879ec940bacbca0696cf6c6749604a1a59979a623477be871a2278d22134a95ecc1b116c48340c6c6981adbe742ede1426bb65b942302162b8164352f918679d53c06beab47f07c8a37aab0a7449d45e01cfdf9422a783e06f645353cb56b8c57e28840e074629bd58b5646cf1c96003181b915a71caa00a35fb4533df22b2367c9bef95ecc85359a236e23a425f9c975ef842ee20228c66673f1ea3be278b0fd43ad4c004655532654598f34a257bc7c81dc0999266c8c2f40a4d9364f602bac27145b5be7c4fb0759288761ccc586b9039d6ee57858a21a05676edb52c937f11c35fc091d3baefccc15bb953bf5c50b95b449b8db449810680fcc53169bc8403bc70a5b2e3dea7af89aa0fd662255197360b8c7325545b7f45f2dfcce05d939ee5556f5c63cef52cd68e8399ec25726a316269374eb94bc3884011c89890e828b5c726d149cc3446b8a12d76c35545eecc7aaaff17030a0cf9c993e53a88ca000116c2b206f0187f725acc696112b5c44976a22ab617a0c42a64d03b8ce88b7a8aa7cdba28a197a5d3bdc64cf089f922345dae5a7c6bd86d17444f21dd9b1a5c82b9fc906c4ad49e0 +private_key: 41a174fe5ac24562ad78e74c8e65930e7cbaca489509d26ebd09a742548fd3b90406b2b8a218bdbbe4a5222c13dbe576d37c0d4dc20f3e416dba4b784491ab7a534d28b90c7121589dbc55bb214af6475853b74a4c048885a6ceb5184535a5cffe6c3a1c43c305fac42ca17ca7f64a24700c0048447154cf15d25636873d41c0b588190b2d0178f12940f5eabec85a59f90179076abfc3e734973b4074c721a3d41ab31465392841ec558580711aafa93bc1382efa153f5bac2fab8c17eb7872e9d3b7b6fa94c2ea20d964388bd5144c237771e1c6a7f991d37a55975078dddbb76499b6b87c974bab79ec5513d839cec1926ac9c5a7e45861e0a226e6f2b00a95bd52a17eeed93f573c19724c593ed7749e542287a62ae01a4021737242424694637649771345408d2800b5a03872cf6c70ce848b8ca2c57f93543bf7a61434a48f536338051bdcb092dea6690ff3b6ea892612ab5472c0cb9e7987c3756548937e47a2cfed69ad4444cf35242bbd1b7d65ec028f2116507ba09ca114e4cab4bcb736ec5109822b0a590270d3268de357bebf98317090185db82b6c28cd4d7838d8a2368c9a315661b3554b43a8cb4cf376bd771664b5ea2c50eb929eb768bb685812ec4853a33a49519ab98c1ff8d4cf37b2bf5b97c2e0921a0d769abe68c7e19a87b50a6a56228f4fa4915b2192d1e4225a58b3d2f0ca23a05dec8bb5ff613e636c95fbbccbc5f86d49e447d0124631f52fe575652f782cc5e3a376bc868695868d17b254c797d8cbc543343804c7b5bfa731df211f48b20d0930b19485531c678328ac647c2260f6062af02cc2c1778833a62b4c40bbc095b285e282b641b75c5cbafe41a0ebf88b3cf890b13b5b8b032177754763454ef79403b6922cb012013ad810cd6875759693b298a57d107b8b568778e6c493239719c73249545ccd0520805ace114c0b7b936314a6af1f37bd3876322ad855877448e5ba7162cb7c7457c8d2a47d128b1bc8603a60d06b044c7611239ea90c0cadc09a4e8c4cb0ab386ddb2ac14c2741bb7ccf6c0387e6966ec824691855cf748b680134535397ec427df2149f27fb14fd814d47031dacc858c52a5b435b6d9b8c8f76a40ec0486d2c670b5e4878adf7adeaa9b752b0350775ce1b9b590a9695c3c05c2ee0a6f2064a363664dff41668c3bfac172e1ba87e3d3845d1119a36f52c394cc328d8ab23914609c058b8f72b4f8851048868216a9b13c7cc55177ce559553ad28ebdf2c927aca49ca90142e2caef59c9d457387d81c55729177c665de8d2ae21453f91b7663b2b1f4304bbe02499f690b95ae18976a00e3151c570c479a6d512afecbe34a2a2f2b7cfcc03290a052f00a093956091c22729e57044dc066f892799b9e263dd957296865e09a2c15e300c4cd1b1d05067fa1483c6e765c551425efc7d5b15517bd911178a2b9692a1fae74ef4cb2785e561a51c498ffcc20f039e0ce74dc62c3a56303774449661f171487cc2cacc071bc3b2cc54bee99332d655ab4e6b8b9a8351397a398c484ae22a29a4187c6f5690bc741c23e9c2af0916f8f4becd630d47010402850f3111930cdaa5fea74e3748492e6b2c589ab4af5a011bbc8ccf878bba2708720408cc56bd83859e62ab95dad5c17da8301010933ec27d18f02318fcaa9fb5336bfb608cba4d0b59cbde5c8317d09443f7aa641886201b62cc3b233903ba98cca9a40ab8345c1dd886bfdd87cf6ee2c50af15bb0539ac2673d0ef08e58bb34e3a83198093380f11035e38a0cf532cd47a45ed7cb95bb9420aa62f779345b6c851f9b09de8c79ee1a807160763b9a0b26e74ebb32aa2f429740319285161585a7bfb6f7294669cce50a044ad055d2f747070aa6cdc5195b221dcef05c43456dd2bc1c1784b397444e6eb397f35b5e4cb8aa04a7207633ac1526bdcb9591494554d03557ce60820325008b42acad262f8a062e1ad11716001d99e8b3a1caad0226878099947a2511f62a333b1b97f5b1654a35c73f0c69fd92531d32a33cb50be57041ae870e15019a0f30c35ecc8f33ea39ae209d7f65c5937b5be1a82192c8c335f35b36d6cbedfc953eb140e191c819a0ca16fa8775d67192161a3eb1a508b0695d61971cb9b4ca61ccb459b8fc3748d7c9596a93a88b535a5cd35cd8f09ec13054176c506d02a7258a84eb685d14c3352f0b0051757c30d4184ab6a37bb6058c4451e89106ad2c259bc6791de49ed9dc0bf62bab1201429035c8716b864552a26b0549b1832a2bb01cc8f8cb55630618a525f885cb6fb407f042610681428031399e5666d56a9656e1a530460ab4178c3e957d22244b1366750da084f572399a33bb452c7c73f3cbe9a7028cf3849b475606ea2c96958dbef17aa08b3f15c146edb65de9379f62c11226f9b4b85802694614eb229c8ed44198542685610f53885f5bbabdd95c5597f89d825b0f441b21aa476ba4970be900a2f40cb742402c2093803f27ca37d06347615131b81fe6ac6ac9249459c92d92133870111aa5176c6bb828a4198c865a1730a84961f3914379bbfbeb46411c1705bc86f8a38a5f817f1b4c34e99784773051764b3f55d38571e98d744043287a19dddba7d4eac3f0b98173d09f0cd10b22a0bc0417a056c66064c906b7559ab134b6c47baa7932540070811d3ab8f5f265822873b4c78af45514ffdb6d03d79c24a88531d4ae7230486977b612cb05b906ce19337ca1f0455718569e80c2c2c795b7a156e60c5c65fa19fdfb5e4fd96727947fd66abd94774a5bc45fda822146a12b67534ad93aabae123af9cba2b2a376608cc6335aaa99f759dc964aedd80e432c6f417a1a65c63f639b5312c35038faa9c45051ba31c66912538fb51a85189d846b799d8c2fedc439ec8685b547376be49a83fb60281accd733001d729e4156badffb3b7dd8cb40411ee7a3970a168357a89dcb75535ce341b5b47403308bd87bba01f5cef30634c9d27d56da4d4373234790acbfb5051ca2a8519a42e610269b4b32c64770a5db4caa1ca6670c432bd74745fbba2f22377c729446954a6e067454639c3771aeb626871e3558a0f141a37c2732b13b13532cd16462f7822ba2869a0b20717e3675a328625da796e12c4403d380cdb54930db78493994c0793fd67b0a91140758fb78d229051e696c8707cf5a1c40ef511123b7c6de51ba4b792eda810762cc114f716c66a79dd4f5b0865a1a2a1144da80c4106b72aabb0a8f8036bde19b204992dc600956ab076ccab601f4250ac4b2cef77c38d6b6ef8907feec307ab29502b269dbc063e337ad43958d893a36318c6c052549bd907313c2251744ad02c30f78d0b394635508951856d1160706cb042275ba20a4bb6a734f9856aeba164af669f43c5016f1305e8084389581bc146168c0914d1a65ae5188e19082d585af435c183df28179c6b2278491dde450e7b1bf64075e0a9a8301454b5e111e39b0cced002680e173c5db96de082c3c399e398210c974b6f47449dc9326c1a7a79f893f454834e6ec1bcf0a860d962a4e05a1f51825981b18dc4ab661abcc98d4313cb40baa402307895460139c75b6aa69e27c5e69273141487b849a42996a55788b3b42018da0ab1c315d10308f05c54176d727a04b656ce6859f69471a186a4ff6b17b877070924758c83dc681292bfc7618f2b75413c79eb9b945d1b2aef95a47cb21cc8982f405739c9064975b5ab875ae5ddac05a65a43cec4ed80acfeb15aae898b995e649f32b98613c77fb926879ec940bacbca0696cf6c6749604a1a59979a623477be871a2278d22134a95ecc1b116c48340c6c6981adbe742ede1426bb65b942302162b8164352f918679d53c06beab47f07c8a37aab0a7449d45e01cfdf9422a783e06f645353cb56b8c57e28840e074629bd58b5646cf1c96003181b915a71caa00a35fb4533df22b2367c9bef95ecc85359a236e23a425f9c975ef842ee20228c66673f1ea3be278b0fd43ad4c004655532654598f34a257bc7c81dc0999266c8c2f40a4d9364f602bac27145b5be7c4fb0759288761ccc586b9039d6ee57858a21a05676edb52c937f11c35fc091d3baefccc15bb953bf5c50b95b449b8db449810680fcc53169bc8403bc70a5b2e3dea7af89aa0fd662255197360b8c7325545b7f45f2dfcce05d939ee5556f5c63cef52cd68e8399ec25726a316269374eb94bc3884011c89890e828b5c726d149cc3446b8a12d76c35545eecc7aaaff17030a0cf9c993e53a88ca000116c2b206f0187f725acc696112b5c44976a22ab617a0c42a64d03b8ce88b7a8aa7cdba28a197a5d3bdc64cf089f922345dae5a7c6bd86d17444f21dd9b1a5c82b9fc906c4ad49e021cee8b1f3fe43508e7bb3b567d02568cc93c39c3cc347e2dae6e0144714d80cb28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc + +# Official test vector 70, seed: "f68fc0314dea88f66afaa76e6c9b6804b13d4876924410d1f526fac59a62e26c560b125b1d0f8b461f1fc2e351effb4f" +seed: 3e809ec8dd0fec0d911a4e3fac20f70fbb128c5de94dc7184ca7310ae9157a98d8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 +public_key: 66834aa6b266f0964efa45c0469249c3fc0faeeb19d1508cb7c409b49a7e38299920c3433da3929b2552d5e9a1f092383e3b4d3d8a16ffd199f7d933eaa506062697c29b1fbf10292a4758d26ab61f085c31a0a3b85a19e956860f93a3ece8a0c22426b40bc8d0c1191754803d0204ff048c07f6c778fc685b2108b0327dba9361b00c071c8223aef0949ddb804075c3a0178f41bca68b676ec8469e417547617c8b8ebb6e19e83af1ba27e2db7d08e11f25805f959285add216c25a029684160a880fd2dc5753709ea3d81a59a91357205cf126c24f8858a3757be1c562c65166a0800047949c062bca79e03836d05aa6a91a30856a367b087b455169a7c3591091e72c96b7432397b6a257723508661349265c4c475ee7251e4cc26d739b33190cbb07a993e5b72288a55d5792cdd2c9177c9541f0a70bf066135e06a3ff1700af24247aa61e70f4727e6a9fdad70c470b671ca31a21d236bcfc508a833714182198c4c41bd1aee23b5acc9720a3e955adb119e9e06fb6c8a7ba5a37bea21565f77f7f037f0ad71d6ad13301a547fe8458c8363feb218a3ed5bf594c3bdc7a03003641da15479304810b5a0c949417b9a8473f76ae6c13144d7b3673074703da0389e82ad34165f0c258457367b5521128ec318df886eaa203e259bca111b68e13ae684b1f1b3781d8305193e094c20b1e91b473ac9992d1e77db85023cd043b147681fc9c2c9c2c1237c27f1e459b953ca0711a318a4b76d924baebf599d9eb852dca1dc5f80191b91281f8345d774a29053513f159164a705c954e53ea26b6927dc57a0fae5a19bd33bd67339e8eb925576a2eabda6b0a4743abe05545e080d5495402eb0629859671e130cd048235f254fff49a7d394f3b1c3de06a7847473119e218cf0944609958300b93046869c026cd93e21925a30da0389e24ba6f08d498748730e2b40d1c73452de8b7570027579c11a7417f2bbc67122c9286d1219d7230ee5b0c42d724d1b1cd4b031500958dc7124177a25651781657904fd1267f2bb69d5c929f8967cf216924d63696627c917f82bd2813563cc443705b0a1b279eab237326b4ce45504ec710ab95d01ad812559b2b8be763c1e9c55449a1366fa2cdb6d0106856b080a16d7e3700b0771a422423c806c62614b047820ad6876d7740b35fd674d99605fc61638d863ce5cc6a55d62f83a4a68aac10ac065657870b5c623970db1a40773500757178f29d54548aefe92eac306fa8f926e5f84b15f339f4fc388a554b79d87325c81f9e9989c690920f018fd4440afca405b1b667e489568121178cb7a18ee2c38e10ad4f5a09df64a76c0badfd08627861144f8a449df4089a08c48cf1b110b443d16386042b6f24730c921643a6f8b7aedb9a7036339f1b156c1c4de7f4a03acb57b1cca827146f4bbc30f17a32ded42949ca5340b0494cd29098260a87bc7b50440ded82befaa1a6c4c28bcebcbb16990978ea92a3709b817996f51a6e080578f2d060b924c5d9b93098725eea946ceb84a0a884c7fad252bfda7aaf374e5ff8703941a8483493a5143e0f9b6f5ef45f683c2ea2c4b5e8b92a46984064b97e28d339789a8654e27e38c84ed7e4cb204412a434bac227197528c6c6e1625dab98c25557e16cb5b8249ebc11caade0b5fb505527d45981864d4abc8e1060cd9a7467465064c9b8cce823b6bdb9c702a7a30415b4fc6979d2476b4511909c90559f70597375c050189ff2932852a51e74a21b32c834c734052c61137025c20708263e0aa71d87b20263bace0c0c98a58cdfca4889672e6b654c003a7e22465f97021ac7c11fc4d1c0525ccab768c6dbd124c8c533f49ba88629c71fd1cb6ebc4aaf09ab6db011348b2b0691bcf8eb1bea9588b640cf3fe97e35e92440284cc9607d49a3891283ac96c32a2a223d1c372b509b1d9401ba6bb13ebd5ccb6c44ba12e392b4d165c4940a714359ce122f6b34bc1344af802992c6fa2d85f1957045bdbda400b526b21bca1a0ce181531c8bc644799ee8477af16fbbfc33879868135a5adc748f88799d23476aab0643e5dab979f3658cb1cf19292ac6f30a486353275cae5fb941b2d49a0d0349e65917b4f4cddb9a976f322d8917b70278ab9cb16ef193cc33b312e1689170532f31b001350225180493d7966e2b216c709ac1bea73f1c624a081620b7981c1c95ae0387aea62f +private_key: f1594ece355ed8872280f422ecd4b02c1c9fd2716ce375a9c01b172b3c735e4908dc96c1a58945e70813250a95c1d48f6bf159aaa265da841dedf23d0bc71809c6bf16856a0d316f59955dbbe18a39175295d5899b4abaeeb6a7b3f9267426b6190c1f3c7372a0235a644b1dcb577065a6a2e6cb130f8150a8633ca8f388ff6935c2f3584508c0da3898e5a1be423506e612982d80179c4cc950aa35df21244bba78e2b24176769c934a020554aef4d43caff4203ed5351bf822695814cc0ba1860a27031c0c9de66ca3675ecfbb3aea48496a2179e6124e755656f1412b04f2aad353c93cb068910c0c73362183063a233183db280174c0648c3422361954be811651380ad3975305bc6e09b9736e911d6c55083f63347e2584e6a26bf3200c7cb9c1d71522fa87c684ac208a81b3f01298ab315773ca10d8243f465055d8489d5ce385e7c6c0b5cc741df52b7e62caf73509ccb814e9644f6c35bb394a4094745ba69b6b8f933b715581fda1abb0f8ac9ec15ded803a28e057e4d87bd7b9c53af6b943a00e3f694810e3878e3359ab109245b29a962ac32d1a066872a6874a4e3a7235c5157250086d00610e21372218859f807207e20911826b1533c851024054441014bbd618e65056576aa6404a1499c92683872eafb152fb2a171ff02f4f895f3a4b3d9bdc22a9627c6095957f86b41395b98b947e4611ae496844ba3083eb9228cc0277cd21c050f181d79bcb90416d4d5c5932f5643766a3dd1295cc2805721b58a0596a371cc1eb69c986c2b230f4ab6905468ce77916c816df1b7668e6ac5ae2429cf56a9fa6a7327892556c58ab5b24be7a9beff69ac35ba63a11c6dd15772b501dfbbc6d1437cb2ee29c98779131a56a28258b8dd6237629276894af0b46af6ed66c2b7272fb3ba9b936027b330e2f20b0813a240d27c7ae10778b0a0776e17751f85f410c373a6376670007d8eb78a7213a5ebb8a89d02cc902a62ca15f15709fef9caf5a558168b90fae5b5f3909259184c20a0c37a0196a37b2232c34a32704301cfb56066ca60aa65a6a459689bab328114e731650cc690b7f50814da97dd2495302fcb61ee375afa57eb06247277ab8ab96355ab42c87714ec6020fb6f95f05a02e679abece5069356c70d2444020521eaeb6376af0630edcbb1b655cee8a734d577353d95e3f93bb7d703a6399050e12c1e41340807cc91e274970f27d7ec86c0e7b632190a65e886b52e02827795a8e3ba1aca22c80e59765461b128543ae34965922876f2c418a47cdb447168160c12bb03e94fab4ff012845e15bc17985a38c7f3c6b6ac365adc1e8744b15334079bf0b081d3e2a9572119501892537bb0be05249661a5700bbb268f153603aae0850cded06a4d7b548550797459141beca50dc609110b22fbd61a2ce84c4d437663be27cee1b8f234b4e58bcb3d8b63295a5891ec1a63a933420a33eed084626f83dccb82002d844a593b693190f4291372dd6428c7b90bf9a97019b7b1f9bae23c87f152b6e514554cf6b9703604cbb2c864c94a024d54b7f3a2709ac878a8c2a9ea74c03f9a027d0b4973b062a45340eeb1b08aa2236b021f9fc56757237cc9411cde098aadc935e52832d3a3101268ca57b566c1804ee9831863b2fabbb9497833c2d9097805b3d125c96c2eb3bc2612df211829fc842ee6ca3770852beb38d48399a195cb91fab32e0b6752836cedf05345fec5143b28a5ce2a2510548ca95666c579f36e477e67a6ae6275ad32813a4f3795a602d24d6372ee039e50844cc000be6609cf388686cfb1f6e775951a6a2626095b190191702114ad08193d714abc32849a5a33858b1f951b09fb115f2f8481610cca8bb14a10b54e8e364c471ae4e57037c3baafd9ba275f1a4baa82c585279eb01403b2669dfd6b1735c5b7d85c5efb3a1ad8c0e8d40198ea4b4b7d1427c39660c04635ce59619b5824c80b84164641ac45257817c0cb038b3047c30ec460298c75b73a2f7f0b82b6a6583391f58ba057a6581bada84b5978888e15e9462952349961093354dfa34c0c08972b7571fd99197b13aa8b19a7f6920e5d41f50613a5c2a6036b79c0037113f41a3146ab6d7235185f51526f9b564462ad4c70f8f30346ce7282635783b9850eb9065ce58a272193166834aa6b266f0964efa45c0469249c3fc0faeeb19d1508cb7c409b49a7e38299920c3433da3929b2552d5e9a1f092383e3b4d3d8a16ffd199f7d933eaa506062697c29b1fbf10292a4758d26ab61f085c31a0a3b85a19e956860f93a3ece8a0c22426b40bc8d0c1191754803d0204ff048c07f6c778fc685b2108b0327dba9361b00c071c8223aef0949ddb804075c3a0178f41bca68b676ec8469e417547617c8b8ebb6e19e83af1ba27e2db7d08e11f25805f959285add216c25a029684160a880fd2dc5753709ea3d81a59a91357205cf126c24f8858a3757be1c562c65166a0800047949c062bca79e03836d05aa6a91a30856a367b087b455169a7c3591091e72c96b7432397b6a257723508661349265c4c475ee7251e4cc26d739b33190cbb07a993e5b72288a55d5792cdd2c9177c9541f0a70bf066135e06a3ff1700af24247aa61e70f4727e6a9fdad70c470b671ca31a21d236bcfc508a833714182198c4c41bd1aee23b5acc9720a3e955adb119e9e06fb6c8a7ba5a37bea21565f77f7f037f0ad71d6ad13301a547fe8458c8363feb218a3ed5bf594c3bdc7a03003641da15479304810b5a0c949417b9a8473f76ae6c13144d7b3673074703da0389e82ad34165f0c258457367b5521128ec318df886eaa203e259bca111b68e13ae684b1f1b3781d8305193e094c20b1e91b473ac9992d1e77db85023cd043b147681fc9c2c9c2c1237c27f1e459b953ca0711a318a4b76d924baebf599d9eb852dca1dc5f80191b91281f8345d774a29053513f159164a705c954e53ea26b6927dc57a0fae5a19bd33bd67339e8eb925576a2eabda6b0a4743abe05545e080d5495402eb0629859671e130cd048235f254fff49a7d394f3b1c3de06a7847473119e218cf0944609958300b93046869c026cd93e21925a30da0389e24ba6f08d498748730e2b40d1c73452de8b7570027579c11a7417f2bbc67122c9286d1219d7230ee5b0c42d724d1b1cd4b031500958dc7124177a25651781657904fd1267f2bb69d5c929f8967cf216924d63696627c917f82bd2813563cc443705b0a1b279eab237326b4ce45504ec710ab95d01ad812559b2b8be763c1e9c55449a1366fa2cdb6d0106856b080a16d7e3700b0771a422423c806c62614b047820ad6876d7740b35fd674d99605fc61638d863ce5cc6a55d62f83a4a68aac10ac065657870b5c623970db1a40773500757178f29d54548aefe92eac306fa8f926e5f84b15f339f4fc388a554b79d87325c81f9e9989c690920f018fd4440afca405b1b667e489568121178cb7a18ee2c38e10ad4f5a09df64a76c0badfd08627861144f8a449df4089a08c48cf1b110b443d16386042b6f24730c921643a6f8b7aedb9a7036339f1b156c1c4de7f4a03acb57b1cca827146f4bbc30f17a32ded42949ca5340b0494cd29098260a87bc7b50440ded82befaa1a6c4c28bcebcbb16990978ea92a3709b817996f51a6e080578f2d060b924c5d9b93098725eea946ceb84a0a884c7fad252bfda7aaf374e5ff8703941a8483493a5143e0f9b6f5ef45f683c2ea2c4b5e8b92a46984064b97e28d339789a8654e27e38c84ed7e4cb204412a434bac227197528c6c6e1625dab98c25557e16cb5b8249ebc11caade0b5fb505527d45981864d4abc8e1060cd9a7467465064c9b8cce823b6bdb9c702a7a30415b4fc6979d2476b4511909c90559f70597375c050189ff2932852a51e74a21b32c834c734052c61137025c20708263e0aa71d87b20263bace0c0c98a58cdfca4889672e6b654c003a7e22465f97021ac7c11fc4d1c0525ccab768c6dbd124c8c533f49ba88629c71fd1cb6ebc4aaf09ab6db011348b2b0691bcf8eb1bea9588b640cf3fe97e35e92440284cc9607d49a3891283ac96c32a2a223d1c372b509b1d9401ba6bb13ebd5ccb6c44ba12e392b4d165c4940a714359ce122f6b34bc1344af802992c6fa2d85f1957045bdbda400b526b21bca1a0ce181531c8bc644799ee8477af16fbbfc33879868135a5adc748f88799d23476aab0643e5dab979f3658cb1cf19292ac6f30a486353275cae5fb941b2d49a0d0349e65917b4f4cddb9a976f322d8917b70278ab9cb16ef193cc33b312e1689170532f31b001350225180493d7966e2b216c709ac1bea73f1c624a081620b7981c1c95ae0387aea62fece8e4c1277c5b64512a4b2bb7cc80044f98e2b654e5bf0f4ea520caaae1f2efd8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 + +# Official test vector 71, seed: "a229218b0d51f58d915df549901548fb0722f352c7470900e7e4d8399205764a319bbddbd06c00e8c5932722ee5a404d" +seed: dbf1c465fff3d9f783bd9ee61a573715e45691147b8904439b5ffaa64f94ff7bb6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f +public_key: 14830be3ea225e8161039550c3c320e6c57220e076224aa8fd48b4db59a30f71b2a2fbbeb05b3885819b672c48393c5fe1865a4c113b736505c1199b807c5e7669b7d2499931d899b21b8c1d9caa129761bfa3974c4a85677a0ea1a49c4ee022cf3048012a3b108b4380f10ad2c327a009717a64704a62cb31446c5c810a5a9928e1e4564f95b027ac251c464569344f0086106f7a4dfac13eb194abbd64a8e7db2352cc07ef52195de869bda087cf838fb42862f6346754f1744de8a414464ecaaa921bf76a4ee344e3055ce0fac32c15bc9ff3019c7b9205737426cc29239721ecf65ddc241f33dac59dba06db577514891f70d020f5b240b03493aba381f6716a16646a8a8343efc41394a90cfc896dc04c4fba8aad7cd66005e426a3113dd1a4be4a661eac59cc2742a229c6bab9ba26cfa9194ab41674e89a410bc7e8a25bc410bf95738f8420c64de5715ae624368322ec4a513647ca86a231e76b62e52753c939308f8460a7650a28d258b24c4662793e2ad4454b5756e1692c6e6822a8dbc070ea81f4a85d6a2a852c452235f63816a08d957cbab030c33b5535c87c5e7851c55503898f21138b61558b38b04ce78527658082308117978bca146f8f338c4b4b623177a0b1a51b5f134ba58c19b4db69182807f3bcb29838a0729cc2d34200379cba1f751b6764c27d471fcf7a0b3f9a404fd3bf98150150b540d79b1df00038ce770424838f58e10aecc304f29a9103177752520ae3d967ba33ac2526c85d9a7aee03845b911f9c0a516f10a06a018af24319385a81c153653fa81808a6bd74680f684a52b8a72ba5288b6e75bca97a0304f2c3d8e940dba7239869bf68c951ed8884dd32cdb254755098cef7abaadec1a47a7a0fa646b1ae78af8c608ee7535bc43371bf1206c8680634174426e062ad9c28f4474a01b6785df35df57014c3e8858c2a2ed9d911cda8303c318bbdb13370b07bad82acbad0bf04c3ad2c491328a20790c39292629152dc0e6a29199251b5bdc956a2c4272a4b894a87359a11803a8b67e236837d25a274c97eebb6a8a9e7ce73cca9dc91a1129236730786de0a22286b71afea28e01abdf69cbf460ba2d7d69143895630f526c5f2c6fe9a289a3a058d84b64228389c94984644bca5fa1f61004a3edcb94557093345991bcb9bdea45915a5bb95618f4d62cce22717a67c60042856fe8ab437066aaa733567694dcbd301307b4eb02cce11124bcde6a79819b95ea621f1b11492315e60f774bc5b207f42c178708b28a18c9883561cd66daf17bc0bc42e0050b2a8157354f7945828a488a941363b3393a1112c691e123c6b5699a5c945038b6b2dd6725e7e619bebf1c34c7c32245461d32525c5f49a763944cb64581cea3a178146dc759c29c995ca0793df62cb2153859a32905e785e8e6ba2b834918f2c2dc5cab10f8b95867467adc87111d7beaf69099400aa4e908fe0a299e8901ef5f9346fb07ba287235087a1aef51bc8933823d22b8a02c1fffa56ea5b1dfb143ec1426f32959a4103b9e343108c87aad2fc0bfc7384c0101afcb4740f01b57b483c0300baba66543adca822b4381e99870727a75c491a1129af47d768e4f59fdf05c6f491aaa5dc11b9ac7e20e541aaea11b6ec8b27e94189dc1be939cebfda109cd53f38fcbbee7aad3c65a3c51aa3970ccb31695bbfba3e3b10cdd0d37d848309ebeb3ed8601ca2d1479f3aa0f2766d24b0b0feb01d34bc5627ea8dcbd935a2303bd6aa6d01e7605d23217b98b2ce8564ce077032abc35aa6afa046254d9a63be6c4bdebb95e0020ab5fb89aa5b01238047a3c183188bcec1158c0cf901636b3a459a223a73986afb886787cf93a8aabcd9af1e4cc585cac6f6f424131a9e01fb49bfb38ea664ad31dc16b2dc3c701753a2870cf9c27114262167763902b58b2f03bd906aad3b0101b7898e2663bd458b5c4bb7c5f49c28fffb97bb4393ba3aada4c023e25427dd5016b089591277b13dd0c26ae3ccb06c088fac04b475477ddc1be06620cf3754548a6b2a551aa1b97df5faa296c6a6ecd052cda5903533c93445778755876136c193fb0e3c937bf71ab2968a25e8d1c9e49a9962ba0c78951f64882c826016f63b97e6f8ba0242a45d69276fe0ce06f14be7535859c87a9875904870890c5a620d8632f30f55d3cae33d1c6f5896e6b12354a75c7894d8905403 +private_key: 6cb427a837b55537299e1a8836b9c79afab583679fcd65663b17a3008200d9035fdbd50b99449ff6d14d5e0611bf21c652743d60268c89e0c75c5b4445707215a31593349a86960219f0cc079a2e39e221060aa5dc19861197049e817f692ca55e328ab0c32ec8fc5cd25a83311bb49ec8929455330764885c70c9d988a5dfabcb1366ac382b18bc866e5b93b780736558a0afc0580c4af75f6b6c63f95a454f0bb106627a2294af45f02d948c1075618b8fb01228401b1fdc2b65b02b52f40452b86a1b235298b535b7990ab75565f66568be06aea98a6a1e4744c1728914d00cdf16cf3d940ada784e14eaa332026c2f3cb05a7793c4239d5628281356170b181aa3ac98af93193cb6a9bb6a682ea5073e11c5fa7558c9f713b98a424ff86d84fcb5238b8258076529311d3b522189b0a440b4194bd15344a5044216a524862acd43223b51682df641ff3876521cc9372c19ecf117d505b6e1b26a33bac9b81c13b2900f11d849a0843a44c3061cc111c34acedb3b98a49874f4642ddbac92d969597a635d64109ba5d55a20968b65072ba0bb4349046dc3c25cbe154790d3353e580c3855a755215aecd7b9c800aaf9d12816135f80f010c07824483c838c8176bb58cae99817f1d2a538d694470021e3d87989f4b31e19539f1b60211022a3a74df892a08db12b03e3051d4b3ba9144926c1431a87cfd0f5702a7a127cc09b92f2a1d474b013cc9443f137e0bb1aab721ad975c13bf69d6c5a2725a2b2ac88b80d7b8079b811e978caeb96a89f97781dd7c422461d6a309add83cf83d563d2bb3d381a1dd4147943f76010d292f6703136d127840c9c4b532b86d46587eb54ea613e542645d1156f5b965c772905f90b3f518821a1b18961d61acd7c0d3fd09df90b9a1bf993282b7de33a1ed638cc9a162fde471971d2a5e946b70bccaf00fb76c02a520343b24f1173d4d27e2ac574e1c123e7d663bc054cc432bf1eccb0ac775377c65bbb2291c9695b55a2265f87323a7b63980aa0f1485775b2369ec3a3eb5a0fd126860ad14db7928a9618c684c7790610c118a0aab2b3adceb88b278a3fceac58dfc80bd9f2c7a2d55b35b82f18363a3e577737788dfbe0c6d995b3da953a9bdcb46b1754e0a187f872c2af0b0bfc70327646ca6778928f1005767a091e727d6f287a684199eb36a21b5a42d0c9775b9a2cf6d2ba31ac7677d075c9b207107c79a863c4ef47aa71a0ce5a409d6de8b9549366273967a760101a67c3aaca617d49960fd658bbeaa371c172113b017e1445fa2096428074857142b07782924909c7097412280d45930561a80cc47720234c94cd682ad3c18572e5becb8413b1868f7f3941e7256b01280330620056431911a638828162eba4c7df9c4c5c537b9738643e72b04f4c280048a4cf37becb58a83cc0913ec58026b59135d15fe8950832ca27c1459cce071feeba54106b89cef37bdbf9515f25bf9de37363d61ab5e02fb867bb86fa1f95b3638e105310258548a7986ad04a33a9745a71c41e783a3b86bbad123a4b9971cf6755e7ea7df2a5481d9973c079ae7801747ff8b03043944ccb8b3cc1320168566070bab7e05bd98823220b17d8084dc77ab9ed4331df4495003162c009b24735c736dcac1836b8603c7893cac54b922e50e64310196b08696b42fb8871b0991ad80977aa3de41a25d6c918f2bc0f76b940a0ba85af62c54a5b260807c5e76a062277a6d2a87e42e68e7f66b3c60936c207a57195cd0f4342be7557cca765094cb7d8cb0b03b134cca0578ca61619d67f44b9a0c0843daed00fefa300c8678ebe8642046c454a34202a617bfce69127f07c6987ccf09b1ed7e7c7b6f311293b575517c8cc720f8e2643c616269f6bc4abda117fdc031b93588b888833f0c791eb2862abb733dc5691b670d041b171788c39d5b62aab751b5361ddc4ba7a0a6690d2205c7cb2cbf65ffceb0830383cbd134bb35175760350f5f9a4b4f67390e671bdec8e3a61af35c79c4d7c72feb112aebcbc22c074ae77b172e5b5dbd3374acb2f031bb18c174b02755d8a53a882459695305d772176273b5300d02d7ed2a272f9c7babb545a6c1aa25172f11096af5398c9d6c4590730ff05c74c81308ae5315ba24b17fc738a30718ad046d0627e4b81b214830be3ea225e8161039550c3c320e6c57220e076224aa8fd48b4db59a30f71b2a2fbbeb05b3885819b672c48393c5fe1865a4c113b736505c1199b807c5e7669b7d2499931d899b21b8c1d9caa129761bfa3974c4a85677a0ea1a49c4ee022cf3048012a3b108b4380f10ad2c327a009717a64704a62cb31446c5c810a5a9928e1e4564f95b027ac251c464569344f0086106f7a4dfac13eb194abbd64a8e7db2352cc07ef52195de869bda087cf838fb42862f6346754f1744de8a414464ecaaa921bf76a4ee344e3055ce0fac32c15bc9ff3019c7b9205737426cc29239721ecf65ddc241f33dac59dba06db577514891f70d020f5b240b03493aba381f6716a16646a8a8343efc41394a90cfc896dc04c4fba8aad7cd66005e426a3113dd1a4be4a661eac59cc2742a229c6bab9ba26cfa9194ab41674e89a410bc7e8a25bc410bf95738f8420c64de5715ae624368322ec4a513647ca86a231e76b62e52753c939308f8460a7650a28d258b24c4662793e2ad4454b5756e1692c6e6822a8dbc070ea81f4a85d6a2a852c452235f63816a08d957cbab030c33b5535c87c5e7851c55503898f21138b61558b38b04ce78527658082308117978bca146f8f338c4b4b623177a0b1a51b5f134ba58c19b4db69182807f3bcb29838a0729cc2d34200379cba1f751b6764c27d471fcf7a0b3f9a404fd3bf98150150b540d79b1df00038ce770424838f58e10aecc304f29a9103177752520ae3d967ba33ac2526c85d9a7aee03845b911f9c0a516f10a06a018af24319385a81c153653fa81808a6bd74680f684a52b8a72ba5288b6e75bca97a0304f2c3d8e940dba7239869bf68c951ed8884dd32cdb254755098cef7abaadec1a47a7a0fa646b1ae78af8c608ee7535bc43371bf1206c8680634174426e062ad9c28f4474a01b6785df35df57014c3e8858c2a2ed9d911cda8303c318bbdb13370b07bad82acbad0bf04c3ad2c491328a20790c39292629152dc0e6a29199251b5bdc956a2c4272a4b894a87359a11803a8b67e236837d25a274c97eebb6a8a9e7ce73cca9dc91a1129236730786de0a22286b71afea28e01abdf69cbf460ba2d7d69143895630f526c5f2c6fe9a289a3a058d84b64228389c94984644bca5fa1f61004a3edcb94557093345991bcb9bdea45915a5bb95618f4d62cce22717a67c60042856fe8ab437066aaa733567694dcbd301307b4eb02cce11124bcde6a79819b95ea621f1b11492315e60f774bc5b207f42c178708b28a18c9883561cd66daf17bc0bc42e0050b2a8157354f7945828a488a941363b3393a1112c691e123c6b5699a5c945038b6b2dd6725e7e619bebf1c34c7c32245461d32525c5f49a763944cb64581cea3a178146dc759c29c995ca0793df62cb2153859a32905e785e8e6ba2b834918f2c2dc5cab10f8b95867467adc87111d7beaf69099400aa4e908fe0a299e8901ef5f9346fb07ba287235087a1aef51bc8933823d22b8a02c1fffa56ea5b1dfb143ec1426f32959a4103b9e343108c87aad2fc0bfc7384c0101afcb4740f01b57b483c0300baba66543adca822b4381e99870727a75c491a1129af47d768e4f59fdf05c6f491aaa5dc11b9ac7e20e541aaea11b6ec8b27e94189dc1be939cebfda109cd53f38fcbbee7aad3c65a3c51aa3970ccb31695bbfba3e3b10cdd0d37d848309ebeb3ed8601ca2d1479f3aa0f2766d24b0b0feb01d34bc5627ea8dcbd935a2303bd6aa6d01e7605d23217b98b2ce8564ce077032abc35aa6afa046254d9a63be6c4bdebb95e0020ab5fb89aa5b01238047a3c183188bcec1158c0cf901636b3a459a223a73986afb886787cf93a8aabcd9af1e4cc585cac6f6f424131a9e01fb49bfb38ea664ad31dc16b2dc3c701753a2870cf9c27114262167763902b58b2f03bd906aad3b0101b7898e2663bd458b5c4bb7c5f49c28fffb97bb4393ba3aada4c023e25427dd5016b089591277b13dd0c26ae3ccb06c088fac04b475477ddc1be06620cf3754548a6b2a551aa1b97df5faa296c6a6ecd052cda5903533c93445778755876136c193fb0e3c937bf71ab2968a25e8d1c9e49a9962ba0c78951f64882c826016f63b97e6f8ba0242a45d69276fe0ce06f14be7535859c87a9875904870890c5a620d8632f30f55d3cae33d1c6f5896e6b12354a75c7894d8905403ef5c4f316e67ab8b72581b6eb228a8f357b716164e0388d504a7f1aafbb06d48b6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f + +# Official test vector 72, seed: "6960f21c7350dcf41b4770c551dc8692d8ba2c0b6e162c589166ff22e7a1ac0f94c2f48504a5f7eb0da094df427bc98a" +seed: 1f7cfd2b70863154e8a69d1758532e86c20cfc763d67c758bd10a13b24e759b5273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 +public_key: 70ec588f847ca3ea21787531444355e26000209110be1b6994c3003332b95b6aa30f8a0d047cb6a2d9cfae2977e08962b656255637405057c233388e018753fec08442a6603878a6d4f8cbb2574b9dca1c32dc0964e82606739ddeb92402619649bc143950b753993e48da443b1bbc8c3a0e2edaa2710a541ea6ae48022ae1f48af844c2b32707733916c259ab588241ee58aca3538a0bd79fbf3589eda9ab08906d77778649f0a2b2a7898a651bae7013f8b863112c4ae2830a43ac421434236151b2aa7a5b3be77d4c85c89e3140f52804ca470aa2b929e8e8bf9b4278be1657ce321572d2196c4bb158ea891e627861dbc811525cb5f07a3377be081b4651eba3c311bb1c0357bf7a7923a524f003b02ebc030400b4b1e1711ef633b8921c101bcabce37655e8c651cc9458110e68566d0871659c3072c509538c5a6174063469a25c4134baa4f136e71464179b004fd361cb2b19d955376d137284039a6820211aa578189765f15a47e4b52d4af9447c4a8343f84edfe7ae76901d871b0a0d72414c4b01f35a38fe35a268848e663263439b4dfb9b3435537f54bb1e2b132528fa5942da8563554276d466e97a25cea6c7841729cac824dc3ccefa91c7d0a377f45b10b8f8cf78d00657f90e114363644869612bca78e402c8e2a6ee1910e07b72ad43b44edac06ec2cb3c448b506cb0a09746ccd84b3b993213b7a76dd681d6e7b7e9916276172d15538209b01ba5149bb0aaa55cbb04ac89674700544ec7079a8277a3dbc298034e08716849c0542dc42b7e32319b0b7efb43cb57f951b4912af0141965fa6e1701cc53d08c1887bb31fc93399823f1371712785ce6cb549b91099a2245dfd350c374943ee6826cd3c9bed72e7012028b938bd304ba0f5255ca664389335962f35bdf253e2b3933689070145462f245696e4b1d852bab0c817193679229ec684979c8f17965f4411fc1382309c28e98c095f663b587e967ef6320a84a474ed415e64381ff341daf491a9bd872a019a112a2ceea76661015b54181b8c325977b50993a5c26a7d992cf519d64f0a013f517664268d415a9c7f178c047a684495464332fd89071da200c2d70ba68c68425b815772b349cf4ace5dc1437bbb21e3283d2623cb58680fb1084e50685b99224f8c91d167590d4b03fd9a62d54695345217fb08658f1f6c25d0652cbc8cdd858ac9ad44616a8be03e06e14288c1ab27e4d3c15b156732d246ef8492efd508b41e6438c1c899b339874792f2bfaa1b8e55dc2740b02d23e8da9c0a1b91c61db66c92cb8bb3c64cc68bf4af341892441085a96f3aaa1a2217bf6c005a3938c2c61a15a701e090c84d93628e7cb6bb0e49c170079df1c0e364a4ad3622033b762593586549c79b764710b2107bd0c0acf106c7f7ba9accccc6ddb15d2b68a9fe7a2e8820ee9acbfdef8c139bc8b5ef47fd18626285409a59479d517714637b9d75aabae29cbf3418bd56154fae5195372299942271b0c90f0bb7f0c2537df6a433a2350127a24aa144d30b95faafb39f566651cc1bf205814027477c46b7ff1b66837c657af9cb0e7f46a42b4a74a69c36e716e2e993ad3c574aaec31a8fa5a950a8ce7823a7e032cb4930c95d8483aa102d1b20926a6a324b9062b29192431bcd61aa56488be8b9491ea373fdd276bf986ac01e6a9683785d3384acce6297da89657c005ac086687161bc21a18d6d325fef6059ff711a60782263a5dd87552f3b6691708a60459a81321caebba42faaa5593982ad4e0956aa42bb03867664470c8459a511026c2b8791a37278faa906b288dac6a1b7aa9588ae9062a31823076864800b08396aa90ab0a48a9798a146a8e77b104125ab1f1b5448cafbdc749ff085f06b02a2c25174f587f6c2583cb0384c521990b6c15cd926b40712bc503471d4b807f85b7baa361138312f1c62d62431297a451957375607bceb0009d09ba904a864be363bd220cab37d13a77daa42454b867307ed7c2a956d41a62b996e0e78c34b4ac0e7aaff8d8164b4a11f8aa4379fbbb34f14e9fe13a7f4ab0025586f130914c6183719a941b0338e1e11aa3f167a421bfa38c9142e02316d1ba4e64c60320c0a190cec011304f0bc58af38e492937bbd0ad3a5a904fb39ce365a13dc902166c864a972082fd9e2ea5548a3b6c7d885a3ca6ae2e12efc2ea3ee4ca0b0b171ee93a198b42 +private_key: 342c2896a97cd8d63c24504629c1555870aa71fa19b668a558e2bcee667a6b61463dc46547419dc8c458b24b5f463ca8399337782b02df7704e53bc2f2d49f2ddbac73dc3c84728738a29e6f1a906229a05bfc4673c87a2d2b0894a67c549b6631a925c562258edb258524152b7816a9310d99883f4a583df4e582ff16acd9846b04a957bc54665f86c237bcb092a505fb089a8f76b865c130c001529ab53fa3b61f45376561a781c6ec75d0810ccdf44dcb0055bc70bf98f9940b000212215040cc08b31b90a395acf312a9fea3adfbfca17d309ee84b25bad086ef669986c4bbf1aa6f694bb74a760cd235650e5927184ba6e4e918a1fac482109767d2289dc16277468ba17031772868eb6749175c9a2755c18d67a0f6658fb6b5a27374ba2914680d730372e725181a6292db0d1c719501257b0f33a152dc077188673fbace2ae568bc1a890fda174edb4a1c10b825b85a78b26563b9429fc7caaa116bf5d808427c0bff488ea615017ce73008e9cea01747b73733e91ccdfb5c88611a94642b661d1a41a943bf065733fe2449ee68b4537cbc86871e1268cca564b5e952188e90aae25988f79bb706706aade42add2c1b2951b84d040e097b85d78c3c5b10c595879784b71638b2c70c390ad308a311a337413a20857a216d31134e2429cee72be2268cc38ac8617b7d45d2651efc06c3b1c1d0c44531f5523a707d0802251576ac2d6a91b463a68348a2673a2f74cc7c20a79b73bb1916637830c91e701bb200166d2a63a21b5b8e52c7acda296d80d6c897c86334d8424f44677e9246ffa32c5c1754b632692af6bffd05458d131c41275161cc50a51ab2570746048b455420053193b6f1c0ae02f83ecf364e50a6694285523c5372a84b6345f484d0b2c8156c05e9f3c6b661bf1cdc5573082313c5c05c648be94b7b83b68ad93019b8469dc93a51e9f47a532a15d9140bb56878984877311a8c303b7c2cb9b62cb34c1f70cdde82c9d9e76c5037c46e6196903b1a372860110a721fbbc844963f287909e2e093c4b89358160bd6ca892b95a910565fb67b640a803a4eb7c08109cbd235b773f91cf54842352b4a7677bc310563e5fa320fdab95517c61952b5687379c6e229f4d296bec53cfaf346d0050ea6465040fa11d5f04e997932b9201a117b3d552bb853161de6f6ae5669ae9cfbb36c00ba54052e5a70071398b0f1858ee5e3a6740a7b93a453af91550e7cae362532d59490d70ccfc9997da3519638302be5c01cbdfcac7b32a984049426acc67f12283598588d68a46c1720445b6602e4b60df0864ad3760892403b575e61120863f03d0d67551103d02a8386b1abcbd2b6307b42a62103a6e970cc0a021e5fd54b659b6c0fb8641c6c74c12873f5348c3fda18ee264af681316af0c55cc2bc91d767344c7046c0455b36b673591942a622fd122fd6505ffb4a3fe61b0b0bf1bf0c539efdaba1aca1baa254a788f821502b06db752f702c15227c4a60fc09bb28c3d2165c95171c20ea6e8526cace1c239da3705844c860c35d6dea477aa1339813a9f2d755a21b143724621421abf6d5aae62c591be72a8e817603d942a35c9e7a391bab514e88c1b54d9830ef7c490644287594c834d898a50c2f6e18575454733d40ce0bf20033babb661c84d9040a12e4881e9947ba4023b0eaa86f9984f4158d825bcdbd888e7ae6084e3b2f49498fcea10f1db637c82287e6f8cd553caf40b7bb00236450243eb7349958286f380bc456b7208922a5d8887a075acc0c29b231c51cf9839e1fac91e3d0631b865bcef168e71a4a53921c5cd9aa758175c8b94a2be1af094c5a5c518ba3c7ad0a0cc105126217f04a49c674b7fc3e6a9bae73778c02320512d1ad3b7b2508590dd544b03d2c21d0549eb5a146d87c3897a5525df8735079970afc8b58f419bab8b3b513844cd08164a2882518ceb79abf6ae8cce5618afaa228db659a6ae16b82e351ed4646f2a3cbe1ac1dc0b6a0838532a0b2aead760ac43a7eaa290d991a172e4a1fe1e860bdc50b51e58d18272a942a9045358faf279a916663cdb431bf81cb30777cf105a032108769475f84c74b20668a991b53541a45061236c232cc85a56292ea7d470b00b4b128e45586e1531c02f364ceeb86e4b22fe6d4a049399c70ec588f847ca3ea21787531444355e26000209110be1b6994c3003332b95b6aa30f8a0d047cb6a2d9cfae2977e08962b656255637405057c233388e018753fec08442a6603878a6d4f8cbb2574b9dca1c32dc0964e82606739ddeb92402619649bc143950b753993e48da443b1bbc8c3a0e2edaa2710a541ea6ae48022ae1f48af844c2b32707733916c259ab588241ee58aca3538a0bd79fbf3589eda9ab08906d77778649f0a2b2a7898a651bae7013f8b863112c4ae2830a43ac421434236151b2aa7a5b3be77d4c85c89e3140f52804ca470aa2b929e8e8bf9b4278be1657ce321572d2196c4bb158ea891e627861dbc811525cb5f07a3377be081b4651eba3c311bb1c0357bf7a7923a524f003b02ebc030400b4b1e1711ef633b8921c101bcabce37655e8c651cc9458110e68566d0871659c3072c509538c5a6174063469a25c4134baa4f136e71464179b004fd361cb2b19d955376d137284039a6820211aa578189765f15a47e4b52d4af9447c4a8343f84edfe7ae76901d871b0a0d72414c4b01f35a38fe35a268848e663263439b4dfb9b3435537f54bb1e2b132528fa5942da8563554276d466e97a25cea6c7841729cac824dc3ccefa91c7d0a377f45b10b8f8cf78d00657f90e114363644869612bca78e402c8e2a6ee1910e07b72ad43b44edac06ec2cb3c448b506cb0a09746ccd84b3b993213b7a76dd681d6e7b7e9916276172d15538209b01ba5149bb0aaa55cbb04ac89674700544ec7079a8277a3dbc298034e08716849c0542dc42b7e32319b0b7efb43cb57f951b4912af0141965fa6e1701cc53d08c1887bb31fc93399823f1371712785ce6cb549b91099a2245dfd350c374943ee6826cd3c9bed72e7012028b938bd304ba0f5255ca664389335962f35bdf253e2b3933689070145462f245696e4b1d852bab0c817193679229ec684979c8f17965f4411fc1382309c28e98c095f663b587e967ef6320a84a474ed415e64381ff341daf491a9bd872a019a112a2ceea76661015b54181b8c325977b50993a5c26a7d992cf519d64f0a013f517664268d415a9c7f178c047a684495464332fd89071da200c2d70ba68c68425b815772b349cf4ace5dc1437bbb21e3283d2623cb58680fb1084e50685b99224f8c91d167590d4b03fd9a62d54695345217fb08658f1f6c25d0652cbc8cdd858ac9ad44616a8be03e06e14288c1ab27e4d3c15b156732d246ef8492efd508b41e6438c1c899b339874792f2bfaa1b8e55dc2740b02d23e8da9c0a1b91c61db66c92cb8bb3c64cc68bf4af341892441085a96f3aaa1a2217bf6c005a3938c2c61a15a701e090c84d93628e7cb6bb0e49c170079df1c0e364a4ad3622033b762593586549c79b764710b2107bd0c0acf106c7f7ba9accccc6ddb15d2b68a9fe7a2e8820ee9acbfdef8c139bc8b5ef47fd18626285409a59479d517714637b9d75aabae29cbf3418bd56154fae5195372299942271b0c90f0bb7f0c2537df6a433a2350127a24aa144d30b95faafb39f566651cc1bf205814027477c46b7ff1b66837c657af9cb0e7f46a42b4a74a69c36e716e2e993ad3c574aaec31a8fa5a950a8ce7823a7e032cb4930c95d8483aa102d1b20926a6a324b9062b29192431bcd61aa56488be8b9491ea373fdd276bf986ac01e6a9683785d3384acce6297da89657c005ac086687161bc21a18d6d325fef6059ff711a60782263a5dd87552f3b6691708a60459a81321caebba42faaa5593982ad4e0956aa42bb03867664470c8459a511026c2b8791a37278faa906b288dac6a1b7aa9588ae9062a31823076864800b08396aa90ab0a48a9798a146a8e77b104125ab1f1b5448cafbdc749ff085f06b02a2c25174f587f6c2583cb0384c521990b6c15cd926b40712bc503471d4b807f85b7baa361138312f1c62d62431297a451957375607bceb0009d09ba904a864be363bd220cab37d13a77daa42454b867307ed7c2a956d41a62b996e0e78c34b4ac0e7aaff8d8164b4a11f8aa4379fbbb34f14e9fe13a7f4ab0025586f130914c6183719a941b0338e1e11aa3f167a421bfa38c9142e02316d1ba4e64c60320c0a190cec011304f0bc58af38e492937bbd0ad3a5a904fb39ce365a13dc902166c864a972082fd9e2ea5548a3b6c7d885a3ca6ae2e12efc2ea3ee4ca0b0b171ee93a198b42191fc1297d126ae957ec70b3e5cc940f2649f5a8cee53a1feb5e68e08aeadddc273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 + +# Official test vector 73, seed: "53df46012cad4a745b7a3c06e18ca95e0b839fd8161e3025749a0887549eb0ed6a44eeea08bd6060d6509dbf7e9dc864" +seed: 3a19577908efd37697b8edc7fdaf47d1bd3ad01a1b77faf794bee5b9c3192a6fa3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 +public_key: d0947b8b21912d062783fb94b458013f34480ba83178c87d9ca4575ac9014ab22a7cb92b1bf41ecf098f735b3401e31bc02a43c447220da64ce22b17408ac536135641100d1ea581a14818eaa4c77b229b31511e0a403229889fcba0a2d4d3c845868816b79f56d6265d678c9138b716213fcfd7acb2c68f4fac7914d140cd2a7487b34146708115689407a9bfd24216f563a6fd220893c1c5e2c657031b43a29b19471b084485b7f739af017459ae50423518460266cf449b524406b9a2b80a77093afb1344bc1521e0220c5a113cc0c4a4321a77204521e3c758927c83398aa1f4bc43ac61487e7158ab4053fce98a74b14632054d3d3aaf018cbaad771326b7160247cc10a114434087faf515c7a39b0705bc374b7af73c5b60741e037bc69b10949db1739ad74a240c2191b3201a020f43890cb16390d6c27c39d40af0043b57e8a0f978627fe1b36c6c83fc97b49ae9268618b2c96a7a3612002b2673bc1ac762a37e07fc6ef3749009876399862d67b5b48571caf8b326a4a80b4544c03ba811b3501518d5caa107be696cbdaae79caa0191f5678fbe14934609aeb501bdb0a525ada654d77cb3042159686381e3677edbab5f7dd87fe1c4566dd7382f03c2acbccb14182b9a65afc0aac41f4c3095675a316159b0b7271f0284e160190de000fe4076b6e3073d302a51c7a6f6486c52c97446b506dd7c76ebf08a5f8c70e6e8479735c2ae79a6d4a99444a347ba838c43a1ace485a005a7531916c45181157c955817c488ccab9aa4d55dd79a5e243504a74405a8a4ac01cb1b9f2917fdab3b2909ca609739859383d631b65965affb4490d5b9be84a2902cb34cc50b5c49cbce43f8351a68b3476387bf87a16b9784a0e801e1eb39ee33b8b9ca82bef596605b59f33035a05a012d8549f0b68c93b784c7a309dd71425d3175ba50107d28aa8dd42369bcc68a8aa074020b4b21c3d537ca25b82a50dc875ab76b35a982b0792fd84b60e7db48fa0b80cdb90e1a95038842404a78c17d6c73e42951ecf2160db816cb7323cfc0b8b0057e6e66a36a856eaa60735433bc1680636d137b8da85f19334bd0ec9617d8b484986af31bbaf7e81a050c5b4dd9356563bd2f874b6b82a6e8b088b2ca59ef3866fdd4217efbc5dd66c72b66137ae65e7dc5c541c42a5c4cc1c1f1b678b7941d37ab5bd7292c665ea89b9679c5a6f8248f9fc61c2af282ec048bea74cccefc2077f370d3979b83e2a65d64be85742bb9b66308fcafc84038e72950e968b33fd98da2750484f1138aacc0e5e8607e352804316b26111c5a242c09901339fcb7d304c749d9205f169d2663a03bbc82658a0ca3025ec4d0a1e445be8fe3a72c672333188abc3010b6a98ec0f01d698b87f195b2e398ca6f8038ef0739af347b22076a58391c46573b0f782444464d9ea0645b4cc6f7136927c34e51fba618b082f826b29fabb8bce80bb0f05524348104eb4732e0ab4f4040e104b78ab9317b558330d4995168752ee23455eba2cc4cb679687be93860ccd1848bac42616893e6e710645b354a657e4f064e2d3266f89bacb8585e6d927259723e7d321aadbcbf9638b1bcf917e3c203fd06145fec0be1059c4a52ad751986d0f0bbb46bcccd365ad6b614dfb87dd7f97ccd731f4f9b280cd321d7d7679743833823aa5a05b1b3d0263858cb2ec27677da6928b26d3459573e25b0ca4964d6798cf250860d055418761d7ff0189223a1d3eb6ddab21572b58f0f5ab03a1bc047d7928c060844160e169b2ce072a89fca5b384b81b89b24741674ff5223d4116ada77797234ad3cbb1f6a78cc33e27b03ebb0d5a18427f625a4311a9599ae8723bacf392b7c915aa731c943f49c24f189055143502cb35318432c8b89bd2b9243f35c4b443ad48126207559a2314a77bc67c4d79a3e010fa1686761509e6774bc2df86eec6c5e3cd547f9a5457fb4a984590e57ccbbef3b38e441235d90bb60a24a691425cd65bb43b5868d128e3428b446409804a25333a7ad1f5c6d712169f660798de5a448aa393b5c496db978934c6eb001112440784db13825167a33206f76b05eaaab0b89966150238748c492379b387ec863fda621ada4296fe16593358ca0ab83c15225dd26691da0b00554c2398a2c44f171bfe63d48db72ee6cf36f47dd054b8f7bec5a4bbb6b0d62bcd24a3b8a6d32c53a51bfb7c57ecf +private_key: e6d51f1ff8939a52842f092d10a9cd02fa1b7840147f3a5417da6994e7663b536d253b627094b87d951583c61b8ed8a15295276df7b080c71a6b2a4fb93b29512977f02c7f8dc36eeb2644f4db64a60ba2083b984a010e0029616295835118ce0382144701cfe9d5a02bea7fc8ba9ea074c15cba8f2a77062270b9818ab99d856e3c4c104a66441eca4d7fc74b148a37a5eb7103f021c955826048a1ab6a4c3619c1a2884fbf4495b1469e33671c845a40314ca87c4bc87e8c8bab04a1b9b237413242a83cc41517c11d50b7124a730d7b54a68282e2cbbaeba0896b2453568c22b3e779899a5e8850424fa2b68af95381cc5ade59b54d6a1bf2f1b16ee59375a314f811a716239085a77bc4e29506589a420a6c09c2206cc1aa97f2aad03657eb967c1ab8bb73a87a4853035d77285c29c788885bf1108fafb517e5bc1f13f89cd5ca97d70c12b5f64b88376466230439026d73a3aa9d11b03db22e541c28e32c22a2976b23508717379ded0989e2345cb5f0c7d9c97a81ba09514b0d27598554189f7e8b6e977a5d3588c979aac19ee60c4f64ce5ce73b437c0c1d11577d539af94158b946918085c689dcb227d72240a843b2bc4979f5cfdc2791eec3bd168593ba7b1eb06b829844b9861387af68b466498c84e8aa31fa39488cc676f728ed106aa9e368459028fff42aff418320498fc283b8ce860fd1c02ad1c0a7d0d92d61b6aad6d1b939ab0396983693353f23507335ac5fce277df06559dd3a6961cc43247cb0f9e7269c438ab4e14ebc0ac2907bb1289741b211cf40a15ded58b8d18c4948294b774c6edb047114991981fb612c5a196354bb80a2bf6efb713aeb72d5f434f9c46d14dc461507ae5bacc7c04789c1dcace8904cad02401ada53489a04fa2140d1864c76fb91777bb9900b010d7a6f2d09868504823d83c5e881aa7b5b408f144e01f2a83de212a7d3188c845539bc6b061c2f72b5c771f8b7377c678ce473ddb25b33518cfcb71a18455acdb02ce73433961a98d840c6bf844014c7c89cca5ea58a6291391ff6c0135e11911b6895557193dfb84a97e4b8f1ebae016947a70b8b08e5c578591f0874c6a2b7b900a490d240ad36bc745c113778ec3777c3220cb19fb49634cb200fb1f67e5decafd84100544c86ee79c000169cd908a884344ed2f40862558819458d5f87c4f3714fe0925538f002a7d454c2f438a3c751a1fbb13f77c85c612e16c0cb979249518b82b85586df793db403ca55709e1e6030356048b458a492ec56e0b08c661c5ba04b805cc631b12a741216448e22a22db406c04935f7c6cba44c213968a5fb6ca9066c88f70900411a43e8651641197fcef47470299c51473f158175e2e7857716ba80f501e156525ce0bd05cb3327673385095d144562dc4b006c89b0c6aaa2e21ccc79c0a7f3b0aae77142a447454b65694c6a5eaf3a7761b860189846a8612b89fa5ed5715c8eb3042890c52326af5edb7de3b578dccc61283474bb8966b187acebb9bce0a08031e66cec0bc57fa368af2574e7397a1177828d4326a66a8093415872537099d77eb83b9cbb516f40d235c0831b3ff663d3f3a9db6c0cb5106c905cb55db0721e45a7ebb676def137a585ccf493002055536c3ab49a17a68783290fc9366923654e310b17c2551816a9196497ee62ade56b24a2b421ce48a583d46f3192bc09493ed47502b75580be01cc94cb4893f32fd6266fdaf865f4f16571d18c8e1a301341113d5c6b59061cd3124683748f5c20426288c7bdf8ccd2d21acbec096101283534cd4974978b117beb70bcb5fc557d5b7482c626a390a10f500e65f8af72b3779068b24228c37907477017327026324fe3c607a86ef7fc453af88c2dba51114cc67f32bb46e58cb7995d4ac31f9b0c2048b05012189e73562fd2baac0cc4795e55b5058b9a747a5c34c63438f2767d32354f12a0ba546c76f38cb54ca632f321eb39ab0528942647415f91cd0738190ed20b1401aa0b1c4765674df3e47755a12426a2a307760dd9d39c2f7728dec213b2559cd2128181e74426595082dc0065a2aa132c72b798aedde6a7c2bc03cb0539ec61bbcca78e510600faab6828ac6a60f58b6bc894d16712b34892fddcbb695c36eb9c3169543c61969c22f95b6ea52bdb9b2ed0947b8b21912d062783fb94b458013f34480ba83178c87d9ca4575ac9014ab22a7cb92b1bf41ecf098f735b3401e31bc02a43c447220da64ce22b17408ac536135641100d1ea581a14818eaa4c77b229b31511e0a403229889fcba0a2d4d3c845868816b79f56d6265d678c9138b716213fcfd7acb2c68f4fac7914d140cd2a7487b34146708115689407a9bfd24216f563a6fd220893c1c5e2c657031b43a29b19471b084485b7f739af017459ae50423518460266cf449b524406b9a2b80a77093afb1344bc1521e0220c5a113cc0c4a4321a77204521e3c758927c83398aa1f4bc43ac61487e7158ab4053fce98a74b14632054d3d3aaf018cbaad771326b7160247cc10a114434087faf515c7a39b0705bc374b7af73c5b60741e037bc69b10949db1739ad74a240c2191b3201a020f43890cb16390d6c27c39d40af0043b57e8a0f978627fe1b36c6c83fc97b49ae9268618b2c96a7a3612002b2673bc1ac762a37e07fc6ef3749009876399862d67b5b48571caf8b326a4a80b4544c03ba811b3501518d5caa107be696cbdaae79caa0191f5678fbe14934609aeb501bdb0a525ada654d77cb3042159686381e3677edbab5f7dd87fe1c4566dd7382f03c2acbccb14182b9a65afc0aac41f4c3095675a316159b0b7271f0284e160190de000fe4076b6e3073d302a51c7a6f6486c52c97446b506dd7c76ebf08a5f8c70e6e8479735c2ae79a6d4a99444a347ba838c43a1ace485a005a7531916c45181157c955817c488ccab9aa4d55dd79a5e243504a74405a8a4ac01cb1b9f2917fdab3b2909ca609739859383d631b65965affb4490d5b9be84a2902cb34cc50b5c49cbce43f8351a68b3476387bf87a16b9784a0e801e1eb39ee33b8b9ca82bef596605b59f33035a05a012d8549f0b68c93b784c7a309dd71425d3175ba50107d28aa8dd42369bcc68a8aa074020b4b21c3d537ca25b82a50dc875ab76b35a982b0792fd84b60e7db48fa0b80cdb90e1a95038842404a78c17d6c73e42951ecf2160db816cb7323cfc0b8b0057e6e66a36a856eaa60735433bc1680636d137b8da85f19334bd0ec9617d8b484986af31bbaf7e81a050c5b4dd9356563bd2f874b6b82a6e8b088b2ca59ef3866fdd4217efbc5dd66c72b66137ae65e7dc5c541c42a5c4cc1c1f1b678b7941d37ab5bd7292c665ea89b9679c5a6f8248f9fc61c2af282ec048bea74cccefc2077f370d3979b83e2a65d64be85742bb9b66308fcafc84038e72950e968b33fd98da2750484f1138aacc0e5e8607e352804316b26111c5a242c09901339fcb7d304c749d9205f169d2663a03bbc82658a0ca3025ec4d0a1e445be8fe3a72c672333188abc3010b6a98ec0f01d698b87f195b2e398ca6f8038ef0739af347b22076a58391c46573b0f782444464d9ea0645b4cc6f7136927c34e51fba618b082f826b29fabb8bce80bb0f05524348104eb4732e0ab4f4040e104b78ab9317b558330d4995168752ee23455eba2cc4cb679687be93860ccd1848bac42616893e6e710645b354a657e4f064e2d3266f89bacb8585e6d927259723e7d321aadbcbf9638b1bcf917e3c203fd06145fec0be1059c4a52ad751986d0f0bbb46bcccd365ad6b614dfb87dd7f97ccd731f4f9b280cd321d7d7679743833823aa5a05b1b3d0263858cb2ec27677da6928b26d3459573e25b0ca4964d6798cf250860d055418761d7ff0189223a1d3eb6ddab21572b58f0f5ab03a1bc047d7928c060844160e169b2ce072a89fca5b384b81b89b24741674ff5223d4116ada77797234ad3cbb1f6a78cc33e27b03ebb0d5a18427f625a4311a9599ae8723bacf392b7c915aa731c943f49c24f189055143502cb35318432c8b89bd2b9243f35c4b443ad48126207559a2314a77bc67c4d79a3e010fa1686761509e6774bc2df86eec6c5e3cd547f9a5457fb4a984590e57ccbbef3b38e441235d90bb60a24a691425cd65bb43b5868d128e3428b446409804a25333a7ad1f5c6d712169f660798de5a448aa393b5c496db978934c6eb001112440784db13825167a33206f76b05eaaab0b89966150238748c492379b387ec863fda621ada4296fe16593358ca0ab83c15225dd26691da0b00554c2398a2c44f171bfe63d48db72ee6cf36f47dd054b8f7bec5a4bbb6b0d62bcd24a3b8a6d32c53a51bfb7c57ecf5fb124740e9315cedb69ebbc969314e2b7469c2d2e2bdf2698af4bd116f0d12da3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 + +# Official test vector 74, seed: "deb963f8b1d8fbdf499d564ba8d2d47915bb402da02f17031b37b4039a842afb9b7e48f37200605992bd2429427a7a4e" +seed: ae0f65e29f38804a6759f70f4d01e2aaff7fe1c91ebc4f892dd0de3ab2e68ea5e03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c +public_key: e3658e3c8607f9775ea3b57a481ca307a36b36780efd410873f9067ef06a6f75b2f695620c9753f97b167df14f4b59a66ee953aea71abe866ff3e34cae61b53f5842a9ac3c811abc36798059db5a51bb1a003b5687dc73e279236e69477cd03c5143b6e22bbde999379ad131215c9c46e37376402d434a58f4ca4c5249c537b15937c38282d2759a45243ce36d24eb234c5bb875b2594ac89e51564e43d2869edc93cb2143d3f72c6d8672df16a08cf94031612199c224e25bb223fb646ac5997b806adc1bcbd49a7833409515c05238aa2c3445a290eb4e4cda6fe1e61fefd58084db9ed675b608ea1bf660195c226a6b70cef5a114ec584903aa427a34c4f75b7d0dbb4564c72c2b252ea9b99173659ab3639d3476332c74aebe0b6656e3cc3f99206406718e5718e76bbc2dfb8b409780263851db783979fc5ea3e4a18d6383762c6d5f782e7333876c10414dfb4548296d33947590534a01c399a3731ddd4c882012bd0b1448e066c528f28c52d3c34f1ca1e2da234f571ae9921084179a9673091555b9d671aeb33a3c41c22adfaa8ca800b92e9401fe31b35c311d7820284fc534c928bfd575881e5678fe81803ed08041475b0f4a36c7644441a067cb35a633a2afe385ce1a1b5c4f9c4a1580003d1aacc548a4d5e7c94c6a4799cb843fd4c6e6209e1eb1a71be32b501b004ad9c0d7a6b44c2970140a021416483dd835e7987b779041aac46806a1a538152e3b716beab69a86e5291b431b1eb68105380df09758871335be0735b4a22de2c4593da03679622c2af78f4d888fb178098486602b743d72f25a57b3533623b57cb905ab499835093b1c4b9d40d361fec791cf82a17417981ec713514ba50b46608c1307b7939ad5f9b1ae47ac2f0c76162161cf0677aeca801504512433918aab949c078d46399d873b0a6e9987e9aa71e52c5691232b8bc68c55508c9bec555d17a6293525d297be94559671c0209561c6bf7859c3469772c25e0863c16c9c4aa453862e52ab3ca942d887c959850cf4fb2afa3420fe55660c22516bf8c940ebcb1ddab9a36a341cc144a646321037c07231424e040ad92c706d254e56f48012601e0de8402221711102be85f54d3bc513481c1e2ae6c50a022d056967c6b032c99ba89070847bd5aceb4669619c71f2b7581736726dc800a3148bd2871d8bf60708da4cd13b8822209bc09cc2a88a43defabe6a24986d697fef253aa91525b3a3cc9f102c9ea158c699745b03af77d41d4df72be7fcb6b7130f308bbeef6ac699388976a574ee1a74e84b48649bb32ec763227584ee24c0248b7f5096c72ca172d2b81982f676dfe44a896618c77393475521eb6a6fb8ec6e153c72d7f8c9067a765cc4149fc58777974f96411739168deb8a6b0e905997563d7f13590ab30173bb23f7b7440fcb6db8f910b12958e0b62fb6f84fa5aa931b118ab4f1ad6374a34721c053224b04cb07982988fa3a569ae9342953165b012f31728960f89d589613d07a2b16c71e0ec942a812a72cf90ec9b23118a59c6bf7c273c6163a8470b18c8c2ee76f4d2975e7d79df7e80e759a52e6b689ebb7bbc7abbf6609560081aac3aba2b43aba545951427cc35dac5cbafc7d394bbd57a2854e84b5f0f3059a94b35f3b0f1ad3344cc2a40fb89a87e091c9c0125c0052e8b28cfff0c3e0390967e1364a4ba8c0b77a7fe83a65b76255422ba7a128fd4b3c8ef85fcfc16f80ba5701c9a48ca230e455b02b28641b98a67a851f31621733c0a779170ebd690111f395e7461127481fd8e1057d35b6c20b1f68322e72e92a2363825566445544995dfc08ccc492f6e19072e398bafc32eff92c7e229f87d1327bb1884cd04849569c415860df59646ec59ed052bade3a0ea6bbb8e9d924e6c43aea22cd4969528d50af83b977d4f8681fa52ae6f5a60ec1cedbac91b14b70d46c5ea18551f288690c3aad6428939426326c54a80b1c6281d51b3d47462f18c6c5931c60395a1e74826f6c258f5622f689c4b5470976a961934104b41100142854bbf75d40d09bfd9a0e64575a7546bec19108770c19a7cb48208780e1c657863163022c910f071c59f239a23cc9f1697cf5177f88e7580df8c925b2c405a3360d0a80a6ea1486136faa9c48aa3801ee87b7cc5c638d67be57548c03711f9b2b31ab319d45c578e5acfa30dc426ac3b194230a4bb5ee07f4 +private_key: 401208d8b00dd0515a1f7c23013c9a8d48062f281437a312e94c7a76055580b894cf66a7795c182d889a1a940ea044112a265dee346d902758ef7b3500a02f8c009e3c803a9fe2a39e95539702250fe05da8a85fdc2ccf54bc17b540947e280276a084de678fecb73a5d1bc985718c09ab5bd87675736bcc8eb858cbc246fdc07f0a7b3dbd1656f04c7bfa3854b502a71db111fe2c36a25910d37a5c357ba0667417550071fd0b0c4ffc094b37b67d262734eaa64794c5e0d66d0ed96a5d7c7f3865ca8579b89c2b7349b3134e43a677680414eb2d88587c73192a11e5088d673e65eb1e88fbcefd8aa72b704521749a384588a6009b3e41cd839313ed00b5b4a14236835055a875ada5674a1959e2746e3a38a1cbc7bc0cf6a2c9ab95c135287bab8b7d12bd8dbc79d2e6b36f0542ec73bd66f6949ef00975f74ec8f31c0cca8544c25a431c8e43a9c0c99545a18ca7c5f28d4e0173c4505c5c4ba94e1b87a3b4b0eec5759bdbb221530ffdc9048517102e70745eb09079f376914b643ecb3fddf0b68d384e2fb727bac38148d897554cc8eee5a986ec0c2081a2d583b73db69bff054133e18e0e7b52e9e9c5c0e088a99895baa375f5b27255f1b64b38b96b91b08afb5b36371802559f240ac4bc4234d8da75b6839ecc822721a466e0f7a292723286f38646e396e7aa3dc9239c3d621fe70a2eb14c37139b878285435c682b9b5489903bba677a963509c5ba412f8165bba029084344445e21bfb1432f97b27b3377252df129208c71c41a10955c79c6b6507b1067dddb8e1331897854897b6ba01f79ba6f6273cbe540620c27d731a86719903fdb5534bbbd9a9275870103d9bba74b694595188460b80490e0269dc678fbf0cab0918c59958ec297bff5e6572b3133660936689a393ac36f638883d5a95e1d78c6460c692040a9a28895fec808ceac9590aa8552382b31a489ef167429e63c7387b794552cda972d4dd3aa41835bf29315bb095b95d4539b66008887ae15e66fe561534fbc973f4621c4f41ab9498d0ea667637c5e563accb2b0429d580cee038326a8413271203b93607acc70666c50e34c6186d03600043ccb4c7e18a1182ad39eb49c0bcd746832b1ad47bb9248402091872ba2b68d25c0b04064558f9453de628c4c983c1eb202fa724a9f373c003da76c37743a452d8f765d82c292468c28c16c9b26a2727df96b26673b191b3162970a557caa63827b5a2b631abaa861763663d08b72b712ac53990a35b57f99b5b7d4ca3035a590db287e1513193177f687157ee74ae10b73e6f24e8838c3df29c6d8b78ac6b70aa1ea1b6467b6d4319dbe98771ca752c9986006a687d0812e9e46374563a15ab32c7b70b58a21c976816192d36f04634fa0b46fcf202b44e684008c624f0209ddd64497184524032982dc654fe22751846a2402c17503799e9a7d686326873a4593479b615c13f91cbc3abc952bc4792ce04f7a272921d13e34b10a203c2c06d65dda903287887c29cccffbd4059c5b1fc2c3b7786c0ea2e49ad792136635982103473657ca2e4b32881b6ebe8c4e7c63594d34b341f515689b7c671b4f40fbc7d8e1ca6cd4016a9200cbb58741fb21ec84030f6cbaa282b9fc4365196094dd39bc6447739999041ee1055b373689589da7a6a23a007145ab208bf56ea51c3d68e2c3b4cc4f0da518f9089d4efb28c7f746f0b948a2955e26db2b5ecb7c6db2694db5ada7a7aa939109b1d0604c5a2b654a4674b636cb9a5f65712f404b4edee505093b1fd76b627b32c4c42910b1390ff03c30a5e79be6241dfa39a2d9456c331c4404e7a159b8a89e10588e3446c7151d7bf31a6b930f09312b5d798dd71c45b2273f513c8279034483ca7010a9b3d597cfc7f699e649a99238b1283a935b199f57f6333c2a08c553a9bb8c38109319486a4a44d71a5317ad4ecaa9b4548b86a9560969690e8b02a38bbb628391eafa6d2eeb4a783c661f14b9754a8c2faab853dbc10793a61ce2b1eb72c7e5b15789fb1885e7bccc89c03350a047b811c54738fa91219744ce5166a4882412c6898fe9037b817099779968eabc1261831a6c0a5f308431d8904cb9d4a1bc8b79f0ea01395088a5377935c26906093a34e0bd61199a9b8a06511b2127340c9c0169961a08e3658e3c8607f9775ea3b57a481ca307a36b36780efd410873f9067ef06a6f75b2f695620c9753f97b167df14f4b59a66ee953aea71abe866ff3e34cae61b53f5842a9ac3c811abc36798059db5a51bb1a003b5687dc73e279236e69477cd03c5143b6e22bbde999379ad131215c9c46e37376402d434a58f4ca4c5249c537b15937c38282d2759a45243ce36d24eb234c5bb875b2594ac89e51564e43d2869edc93cb2143d3f72c6d8672df16a08cf94031612199c224e25bb223fb646ac5997b806adc1bcbd49a7833409515c05238aa2c3445a290eb4e4cda6fe1e61fefd58084db9ed675b608ea1bf660195c226a6b70cef5a114ec584903aa427a34c4f75b7d0dbb4564c72c2b252ea9b99173659ab3639d3476332c74aebe0b6656e3cc3f99206406718e5718e76bbc2dfb8b409780263851db783979fc5ea3e4a18d6383762c6d5f782e7333876c10414dfb4548296d33947590534a01c399a3731ddd4c882012bd0b1448e066c528f28c52d3c34f1ca1e2da234f571ae9921084179a9673091555b9d671aeb33a3c41c22adfaa8ca800b92e9401fe31b35c311d7820284fc534c928bfd575881e5678fe81803ed08041475b0f4a36c7644441a067cb35a633a2afe385ce1a1b5c4f9c4a1580003d1aacc548a4d5e7c94c6a4799cb843fd4c6e6209e1eb1a71be32b501b004ad9c0d7a6b44c2970140a021416483dd835e7987b779041aac46806a1a538152e3b716beab69a86e5291b431b1eb68105380df09758871335be0735b4a22de2c4593da03679622c2af78f4d888fb178098486602b743d72f25a57b3533623b57cb905ab499835093b1c4b9d40d361fec791cf82a17417981ec713514ba50b46608c1307b7939ad5f9b1ae47ac2f0c76162161cf0677aeca801504512433918aab949c078d46399d873b0a6e9987e9aa71e52c5691232b8bc68c55508c9bec555d17a6293525d297be94559671c0209561c6bf7859c3469772c25e0863c16c9c4aa453862e52ab3ca942d887c959850cf4fb2afa3420fe55660c22516bf8c940ebcb1ddab9a36a341cc144a646321037c07231424e040ad92c706d254e56f48012601e0de8402221711102be85f54d3bc513481c1e2ae6c50a022d056967c6b032c99ba89070847bd5aceb4669619c71f2b7581736726dc800a3148bd2871d8bf60708da4cd13b8822209bc09cc2a88a43defabe6a24986d697fef253aa91525b3a3cc9f102c9ea158c699745b03af77d41d4df72be7fcb6b7130f308bbeef6ac699388976a574ee1a74e84b48649bb32ec763227584ee24c0248b7f5096c72ca172d2b81982f676dfe44a896618c77393475521eb6a6fb8ec6e153c72d7f8c9067a765cc4149fc58777974f96411739168deb8a6b0e905997563d7f13590ab30173bb23f7b7440fcb6db8f910b12958e0b62fb6f84fa5aa931b118ab4f1ad6374a34721c053224b04cb07982988fa3a569ae9342953165b012f31728960f89d589613d07a2b16c71e0ec942a812a72cf90ec9b23118a59c6bf7c273c6163a8470b18c8c2ee76f4d2975e7d79df7e80e759a52e6b689ebb7bbc7abbf6609560081aac3aba2b43aba545951427cc35dac5cbafc7d394bbd57a2854e84b5f0f3059a94b35f3b0f1ad3344cc2a40fb89a87e091c9c0125c0052e8b28cfff0c3e0390967e1364a4ba8c0b77a7fe83a65b76255422ba7a128fd4b3c8ef85fcfc16f80ba5701c9a48ca230e455b02b28641b98a67a851f31621733c0a779170ebd690111f395e7461127481fd8e1057d35b6c20b1f68322e72e92a2363825566445544995dfc08ccc492f6e19072e398bafc32eff92c7e229f87d1327bb1884cd04849569c415860df59646ec59ed052bade3a0ea6bbb8e9d924e6c43aea22cd4969528d50af83b977d4f8681fa52ae6f5a60ec1cedbac91b14b70d46c5ea18551f288690c3aad6428939426326c54a80b1c6281d51b3d47462f18c6c5931c60395a1e74826f6c258f5622f689c4b5470976a961934104b41100142854bbf75d40d09bfd9a0e64575a7546bec19108770c19a7cb48208780e1c657863163022c910f071c59f239a23cc9f1697cf5177f88e7580df8c925b2c405a3360d0a80a6ea1486136faa9c48aa3801ee87b7cc5c638d67be57548c03711f9b2b31ab319d45c578e5acfa30dc426ac3b194230a4bb5ee07f4c5b86efedfe663032fd6ec053e7ae81ee85ae4b3f808156cd357c2b36db2f7fae03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c + +# Official test vector 75, seed: "8e2995f1b3e43853b18916bb1212aceb05898e2b177a87abeb928ad7184e59695c56b2cccf5db80853c28a525e327d13" +seed: 6084a235f79dd093ef6d185b54e69df33dacee73a9bf2f379004421a10e3a79d9f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 +public_key: bd8557528725705c2bd05331fbc20f5560259fa82d438392c7299463710357160f985555dbb2ae4438310e3879982b55f03018c17101c2556ec377b15fe6507488052cd2360b52b8cbc7856c8894cea237e76214da481ef0363c877294399cca9e38c249392d61a2772fa4bffd98165d24760bb90ce22614e892a9c7f350706427ba2257ea7a1304029a6ea715bda9b2fd682c6aec65f70018c26c3a41a30f53976ad8b83aff7268f6d9b3124a15b94528024a179dd24b8c56cc8605914ca89815f943c1c568f255b757220ac606d06a1701457b057ca323ddb65ef076cda0044cac79455798b501463d38d24cb9c65faae94410f79995d917c49319e898aad54c620291491f96362d4792bc3639b6551e5a8b7030e9870896ccf461b65fd82ed0f69dad10bb60805c553a1a195336435303c1c8834c3a25c2832bf7b62e1b50c603951c12ab6b74eb72f4b15abb5455d9f681a0d5a290c0bf0ae79b03973e3ca80d9ed283272592fd0a64938c26803441dda5907be52aab1b9ae14b62f9db044cc0c2f5f48f0b8348a6b26631433dfb00b180b721910b8fb533cfe4a8be1d250d75a9cd492ca059fa115132ae5463577de070c87944bc48695f3b4b04014e9dc29185446e4683ae2cf5b9b3ac399fb6c6541925075b7bca7b7326861dc105b3b57ab55a8117ef69b33cf79665663d3355819dbbb235f9693d7c0062e5293c0a32d7342c18648500f8cb3ae925c530b6507418da33a819e57897849bf3f36f6bd68287f7cf8b5281e9e5af40bb5f76c63d4a14cfbdb8235c6a95415c4aa157568c34ca9f58b3991a756bf5ab9b658d9464ae207206d9d2049d9145b7cc59261860267806a23aa513f3c39cd7aee8e71ae4b3a4a6ccc570f179148c2aa50bcdd612bd81f8206fd1334389b9a726208db920944530ca839f316161b89a59350b2220a4b6c67caaa2425d78da2a3b454e396386c5500f7726aa38530b881640a6870d2e5100ec0c25d5a39bca206ea5652b55a8a31cebc84fa62f2ab6a57a2658240a0f14841e48340cf158bfc639149921632047ace0cc2aee5a3e0f647fc0c671f648c689002d98910f78b34e80c523f9073e4e4c9e6e102818e996d3a30886e7bcf18b69d2a16fba1181610b6bd248035cb90d8d440f6d4729031b21a4e1237d710bddc5040047745b231a22246e517a76d76a0ee7985ebc794fc5a51c17d9a9e9acc471f89cbe260df5c4676d870b8713bca53a400cb9b4fa6c36df97a023ac03b08c621e7329635c2e9828719203852970c2fd557348f5365cc917fd3ccf71d38d5d96336026c7d33b885526632860044237b4a6b09ad392414b068144ac67972b3ce7a25753f631eb1a03b4fa2e9f553302a22eb9c721e9f2bf74a06673fcce5bdb77eb4b525d63906ab2c4e8518322d3065121a20546a8a4eb45f85881ce25721b0058c2334ffcf2946c7b9d6ac05806fa778b2041bad1c1250883873a95e3d5b76a3480d8da8b48683c5db2757eab9193750649e74440dc58a56b3ccc27b2a8177bc638b61e0136a215c8079666c77857018784f38bcdda0c56639c03196b54cbc80b49b0aba6f6a9df352cd09c5cc6e05f62e835f7a125845bba2fcaae4bf61bc55ac98bd67763ec0214cc1b7cf91632960c9ec01e0f27a97f909d7fc2486d0cabfa146b72baa14371041a5336c71305e6e68a43577bc1665c0d66c76a239095e13921c00c4ad11cdb69050f7857c3a1b70e2a2152ebcd0961a936f6146d6a58305086e934061ae32bad1b894cc27949f280320401188775aa5078b1497315639288aa2f1f826b48465613a73c5301383b69181cf14ab3a05035a79de39973ec5c1fc5869af11320350c3c4208cc68db8943a017215b72b3353b77003fb0d513bf677b81f66085e8205c17cdd6b603ac98310c9a967a7b99b8d3af10b66821612333e50d72faaabcf93612210572e6710e482702b17bed5abb5e4a57baf365c39b59dc7cbad13601de6b40f5370a49e5b48c9580a0c26195013e6b6889b99b7ee5d93fc8b795cc62a37ccc5e3de2692ad66e903c74bcc45ed6f16a68ab17d8e5094680c428a242d2fa247985a0b7d7a300f70e844765dc30437d032f216a8d99dcc54da34c0a4c25a8a120b3c32f45a3777467b1e639bcff1bb9839b6b45c7895bcf62307460df309eb4e61aa9cc8941418677001064ac161a607e24e1 +private_key: 76a86ace9756dfb462fcc13e1c01409b79a49c256d8a75a9a30712f5e913e38240f3520c11344f4329c3372ace01c1979b75c641dc5f0fa2c2ff1a8055dc61dde093315910e032ced42248ead082e9b355a0bc17cf349b2659555d5844d94310633b9098f3ad6353a4fe71809ee99d05c5a055a68e83a35b614361d4ab7e4bf30a80cca2edcb692c25bb35c702854c55939b88e020a329cc35f6f702c94740a614390d6c89b2fa2c324681ce4b600d87b0adc91aee506b50f40640259927b120df4a3a2a2c1411e1a198102b8eb03fc1569b83daa50a7687e1f8b7e2e16b5d13ba38905ceb285a57513532aba8a235c4f9566d1bdbc64be56e4b088e76854868377665cc922cb0a401c14142308e8851acf4ec8484177eaca16ab5164a37f8bd12f4b514eba7ff555ed43415eea7a4b7b4ccb0a08d507992ade401af6a60426972d5f8a19d72cc2409584c4473f4d8088e34b376504344c242c6c7163ce6ca351b3b40a2ae3b7c45a96ac3c30136c880bfcd4166014736e0d575d72c9c2b1278db43126c952b393c47b45152b2c7c59253b9b8d97e19818a9b007fae17765cb60c6722014c6562aa4723c5a33ef63821dd9464ca298b72c68e80213613953e89e2b0d3a4b18347030015cdc1a6716d8a534b5031a5367c70184d7daa93533b46ef97a573fba6b7c39c9971b1538cc1b708b921196e97c7a3658ca9efd1670b1b7934502896e02e18fb0f01b7a8b9b81322951ca25714da90baca924c56132bc8a09b52192de63726d30186146b8b2c233f08acb46092b5ca654c14c92b69e1ca946812fd3b0fe56ac13739bd2fe99c3c62c46ad3b39b4214a3d8220e67a718a16901ca82d59c08bcc7cf2b6a3abdf995ec7a38c06801b0a2ceb88937a3164424161403fb639fb2ad6947a7153ca7ba8290f099a7d6d8322448127adba4e26c5972ac4ebc95905e7148023bb74cc13684267123f57243368f0c141ce0b05f29a61866f99a15a2a85437cf651ca4ed718e5787a0872c536f86198f0125087bc898bbbb479c1dbfc23231db78d47b61edb37f3b03981ab15cb70181fc3b9a1366c9f98acfbb3b6e1cab49b4110eee3cc87dd2ac8d8720f48633d0910c2eab7ea1fb197d3431c7b1becc201a21c02b2e4b5c9e85c5a9560b2105b99c7b7b121842a79179057b6642976ef5e650aec633b0b2b3dd14ca2c0206746595113c7a241443a9a0521421b21bc7238ca77691c76be86365cd20be3d1c8af7c559333b5f94a344c2891467a742be4a457064ae4fe0355f2910a2252269c60a2dd723d5c242a055ce73b2c29df12a629ca382e6789cc95f0aa44bb1e1710690056d507392c9c004fb9079d27a6695b762d80b6533a8114b6691845d7e92ccf189bdc4c32f06e986b2d82706f47819f807032ba5dce871f355433cf05ae849037fb6455c0caba5951d4dd77575832c4425cdfcc70536f741b1a4a1ec47b600d430df473f2ada9313f2aa9b972e7e68c2a2c84d7c9b17bdbc9aaa4468598412c9dc325e3b9d8c545b80e13767373ed61c9ad5c531f6c391f293ab7195237e3a2d77f2685c50b2a9e09afc18c18678b97143bbd52823218a60a87b71f321429a5b7ce32a48d5b3a4578a9eaa45aa66e6444d534f4ed46acedc33325333bb986027d0cb05d93e659a6dd5a09f3f820db8b1751ab32c46473b4284499b5165196871eac3730c062be3482ae8d969a8ab5cf3d1234859bea98476942439e2180ada967e4cb303f8d884fed11a4998af1b2b1113a9878a9290f1e846d3ec68a21c8c4026ca25844ed1464074b84b3b51351dd5a7de685ba338387eb6277e8018091cb7aff0449540b896fa3a63c2bc9034a3d99990b0c34d91d464063c4d7ec08dce0a493096149955b5e06773d790c618a881e91ba94d276e034497b433a65d393b3b764201583a3b57c9cfca20e2526e4670725bc346b1330880d4a4ae348813956439721a3d1a5b7871622378cf73554e0d33905e8656968510e4b2274e69235fc63e0ef78745f99236c27d33e676a626c7a679588ac7998e2332b8e0a39ca33d5d099b087cc966a10c40f52a8ce89b905586a95c1c6c2521136516db69ac7e439e000a97031b7378b99d2112ad69a5ce78c46cc2c6a9efcc85fc3932a956ad313536f3a5b9810ac8bd8557528725705c2bd05331fbc20f5560259fa82d438392c7299463710357160f985555dbb2ae4438310e3879982b55f03018c17101c2556ec377b15fe6507488052cd2360b52b8cbc7856c8894cea237e76214da481ef0363c877294399cca9e38c249392d61a2772fa4bffd98165d24760bb90ce22614e892a9c7f350706427ba2257ea7a1304029a6ea715bda9b2fd682c6aec65f70018c26c3a41a30f53976ad8b83aff7268f6d9b3124a15b94528024a179dd24b8c56cc8605914ca89815f943c1c568f255b757220ac606d06a1701457b057ca323ddb65ef076cda0044cac79455798b501463d38d24cb9c65faae94410f79995d917c49319e898aad54c620291491f96362d4792bc3639b6551e5a8b7030e9870896ccf461b65fd82ed0f69dad10bb60805c553a1a195336435303c1c8834c3a25c2832bf7b62e1b50c603951c12ab6b74eb72f4b15abb5455d9f681a0d5a290c0bf0ae79b03973e3ca80d9ed283272592fd0a64938c26803441dda5907be52aab1b9ae14b62f9db044cc0c2f5f48f0b8348a6b26631433dfb00b180b721910b8fb533cfe4a8be1d250d75a9cd492ca059fa115132ae5463577de070c87944bc48695f3b4b04014e9dc29185446e4683ae2cf5b9b3ac399fb6c6541925075b7bca7b7326861dc105b3b57ab55a8117ef69b33cf79665663d3355819dbbb235f9693d7c0062e5293c0a32d7342c18648500f8cb3ae925c530b6507418da33a819e57897849bf3f36f6bd68287f7cf8b5281e9e5af40bb5f76c63d4a14cfbdb8235c6a95415c4aa157568c34ca9f58b3991a756bf5ab9b658d9464ae207206d9d2049d9145b7cc59261860267806a23aa513f3c39cd7aee8e71ae4b3a4a6ccc570f179148c2aa50bcdd612bd81f8206fd1334389b9a726208db920944530ca839f316161b89a59350b2220a4b6c67caaa2425d78da2a3b454e396386c5500f7726aa38530b881640a6870d2e5100ec0c25d5a39bca206ea5652b55a8a31cebc84fa62f2ab6a57a2658240a0f14841e48340cf158bfc639149921632047ace0cc2aee5a3e0f647fc0c671f648c689002d98910f78b34e80c523f9073e4e4c9e6e102818e996d3a30886e7bcf18b69d2a16fba1181610b6bd248035cb90d8d440f6d4729031b21a4e1237d710bddc5040047745b231a22246e517a76d76a0ee7985ebc794fc5a51c17d9a9e9acc471f89cbe260df5c4676d870b8713bca53a400cb9b4fa6c36df97a023ac03b08c621e7329635c2e9828719203852970c2fd557348f5365cc917fd3ccf71d38d5d96336026c7d33b885526632860044237b4a6b09ad392414b068144ac67972b3ce7a25753f631eb1a03b4fa2e9f553302a22eb9c721e9f2bf74a06673fcce5bdb77eb4b525d63906ab2c4e8518322d3065121a20546a8a4eb45f85881ce25721b0058c2334ffcf2946c7b9d6ac05806fa778b2041bad1c1250883873a95e3d5b76a3480d8da8b48683c5db2757eab9193750649e74440dc58a56b3ccc27b2a8177bc638b61e0136a215c8079666c77857018784f38bcdda0c56639c03196b54cbc80b49b0aba6f6a9df352cd09c5cc6e05f62e835f7a125845bba2fcaae4bf61bc55ac98bd67763ec0214cc1b7cf91632960c9ec01e0f27a97f909d7fc2486d0cabfa146b72baa14371041a5336c71305e6e68a43577bc1665c0d66c76a239095e13921c00c4ad11cdb69050f7857c3a1b70e2a2152ebcd0961a936f6146d6a58305086e934061ae32bad1b894cc27949f280320401188775aa5078b1497315639288aa2f1f826b48465613a73c5301383b69181cf14ab3a05035a79de39973ec5c1fc5869af11320350c3c4208cc68db8943a017215b72b3353b77003fb0d513bf677b81f66085e8205c17cdd6b603ac98310c9a967a7b99b8d3af10b66821612333e50d72faaabcf93612210572e6710e482702b17bed5abb5e4a57baf365c39b59dc7cbad13601de6b40f5370a49e5b48c9580a0c26195013e6b6889b99b7ee5d93fc8b795cc62a37ccc5e3de2692ad66e903c74bcc45ed6f16a68ab17d8e5094680c428a242d2fa247985a0b7d7a300f70e844765dc30437d032f216a8d99dcc54da34c0a4c25a8a120b3c32f45a3777467b1e639bcff1bb9839b6b45c7895bcf62307460df309eb4e61aa9cc8941418677001064ac161a607e24e15109d06641e916a660b3e7f849f08b9dcc32c47e4a7df2d5d4a374d3e5718a459f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 + +# Official test vector 76, seed: "9218943c51fd2de47e509aac67eff176795102f37d7a2017e3afd768fcda7877af38739b00fcdf227c2fd62eb635942c" +seed: acd1c0217fad5caa4235544dd9de153ab1880ccf4c76f16f236fae4e4bfda04cf03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 +public_key: f7a1521ddb8ce3e91a2835a177988a4e856467f6ced236ada9bcce8ed885b19b862b952cc8a2269f35826a290a90c170b7f9195f816dd631b1ce66442469c42a420fad3970edec539f11826a4a917ab105123b4c14087f7b2455202a5455159e828cacd84767e5b9c024f4ae6d37596ca7570fabbe591082de627fe04a97f45409fe265054bbb57426b6cfe71825837b4be360ff7b48af3a7226525b77c450cdc4a483a17d77e723c8b1282bb40fb621731fb504277ab50f171bec369818bc3ec22126f6a47ca2937f907890c7815a1e115143f62f58550a0459ce7e04695bc7737787a972321578222f5622449010287ab844e624699a1ab50bd872cb29bfd534b401e538c51c12dd8c467a14c24f5c9856234da17ac5fa28870dfb70565ac954c440db457214016e301736520b5e15538e92d1cb205776f849cc0b23211e6a67ad5c9fceda1577e625bd271587f939fb3acee14135613592a7364534c77c2a1564151c12e1c6a219b878180001e2c94053ebb1282c5288a707ed7b245f15054d87b901c939373244f776ca51b3b9d00628c9a8165993974bac2c0b26715ab1a1b9706e8264a0d210a0e627ae60b59ba58a4abbb61e93f0cf31230a624591e0d1a368390205d6526889640651b7cb71c26807b11913056629914fbb1bc2545b55b2610f992e73812e82b73d10a541a7c8621a4690b2c00149b5b952e91d992c52e8426448e5936dd41ed7725ff1c5bb54803690e7b642805b168829ee5696b5d51a13560a36409a1ea41f03ccbf6bb86a1b205bec128ef81c2af9701752fa54cb3784081b5dec67bceea87a8864bae5bca2aeeab4eca30d460b4015870c0187b2519783fa030a3774277e018274775ea2ba027b8624c1dc569416a3117b57dc5b34a1056e4c9b1ea54b6e5f55bf1cd3c027cac8f5f9b9e4c921d98692a007ac22c6b044f6ac9ae5acc4aa3062a348eb2cad9e77189131bf56aba2d86612e01accc76b3222b01d30b079ff5250e0869545641213c175bca181eb738fc7e80e989b43a0c4c7ba0b41404abe955c3c01859dc17b35f48cc39e9c6ff84625923c1229e9b7c3c2ccfa760c8808b43225ce4fc96bf0c0affa26aa43341f7f14aa37ba5d48798c1661319b31325d04afa0759c35153ec77b07d5d88050f5a1f55262860c94990460341c6eaa32055a480547bb0829d5c3398208018b4c098ac686f1b18870864e2cb0777a798c221a659a0e7e9c5c2936afc4897a611c55086330ee1689f7817f44a6c127a53597576f37b35b4f74c535444abf5342dcf256d04800b04361adc83a207952fb81caa20cc8dd07a6fe8864e562844882b405b5b4b65c948b237b385974a9d4963068c3e5b18c51d42a7a9211d4f274ee5208e530907db49db956b8e10977e2357223523a58b511fbf7993bba3c38a95bc0b98062312a1c9449ddc4082601780ea65a6bfb1467a01d9e326cd10a8e202320d2a29e9b36ad09c44127820d6d024b3ce0c818234f55d7855b0b000462b198a669bf924bc81c99ae0b32a1c21f448ac6084c71a59a90fb43aaa73266e69a077d16a8d1443de4c2b61c3ccc731437ff744b7a7cc3a02a948da951d5763f078a991cb64ca7b049fa1b1eecb534509aafe04437e5f84e974261957ba746705eaf4528b4ba3764816f45045d40e807c14c3577a25f75f69ccaa136ce627742e33db588bdb5cc339ef916d7a9b108180a637586da55085eda466e3c7734f85e6a903ef0fc91ce793910231a8f46a7e084c595177a501b390eaa818c0a9fd37c9be78160c7a398f0e80d8e58966140639656890cd08f7fe92fe316cb1e1517ae7741445a47c8ec3ff8f54f476146f1095f9973062bc17f6723542b0a48e12b7e4dbab100f3bf6dbc219816a76a3109ebba8c823cbbd9176061d072d57726cf12908747bbc267c59fa71f6c719cc7827b91919ca3793d03a73604e1c2c98ca2e99877b6c2b93c97965c06b2dfd71cbbcbc7c81cb56b36587a174e899306acf88fd2689e345a78657c5c0b65b0f3f8206e405dae4738a7061d54db38bdb2ab87e8cb6dc93f2ba0c11b65712840b740ac90ac3404b69cba2123cd335004d8e363eb08148a627b66b4142f66b18e460b59d05091640587212f4dd60b84e61f0db00ac05b15e83a6e0ed3c2bd281161cc07676e12ef19a936d073d684c1491518bdbd426eb5a1463cea8b67 +private_key: 26c5b889fbcfb6f91cd0805ff87c89368c9cf82c43aa70c6f59b01e297bbbaf7b8c9332721c2bdcb0526788204e7674eb1e975e3e609c82a97988787b8bb8daf49763bbc0fba822a3dda19509bac10396261134d0402073deb6b64ea8e0e98a55fa2cd37b14c1e27cff4e64c52bacadc319d57246bff7145adb11d06ca87f2939478eb094a06361d65aecc8b148b653ee2c15dc618535903b26592c4c334245661830f15638ca13583e387d92c6cc21ab77eb3cc13969322c8521809346a873ee9d9b888b695f695bba983645e22b1a6a30bc05baf1cb49a51dc9eeb5c9c7077495e6800fdca87d3a15ac0d8cc2f2bbfca1626107b3c2a670039ec12aec506e82040cf72ba510881a408595d22c88c9c8d0806a079fc6f7fc32996273a0496c61a22b9c87926aef37097c947eb5875599401d1911b175a770d901a453ca20af484e9735a27a7b4cd3b52a2409a567a369801818e22314ab369c1fb93a9f2a669f4028128bf3a929424d84ba8c0adf7b111a45b1dc6430bad947a4d19152709001c069e1b0b7c00a05c3c420478e05e49788e27d712ae99029037c2e3fb4172d0594d69cacebc05c5d87a8bc91662071c3ed07d84f2bd477454e4fb37468151c0c346053a3adde76c9575386f63bf44ab4b23d3852e274cda84712a28777d69cea67463e563722c90a956057a922c72a5810b0e5895f09baefa947392725c4211898181acf14815eb316855066145063b75260a4c281ba96538073971ac59bc5ea863161a7c0aeca766526b9c627d716521aaf55173fb8eb7308805b47c89a520404548a144589d15490477ac5eb56c62e441d728a808a2ca8dd74981d205c11813ea165e05b938cad77be34a0d1612cb2ec6c90e6283aed35065e74a4d9905713bcab3a1105287162786cd7839537f186bc6717f1132054c482ba0765ab95cb2b4bc4e15704f5808108244bcc1490338ab97cc94a2a02814ad440d34bb7ffd753dd5535f6b7b1f35bb44656726229522e5890ee2f3ae36a468c3c7c21716411bb0c4fa11a3e2baa334c149483a404e5220cea6926ac56dd1fa856db5ad60bb86f0a3cc731b8ac0c48ce98a90c6c20617c8c142697425a7b6017555c7012b63769d6d817e0a810ed84cb436a2cb9a2167c7a0be998b9a42a43545697577209fd09a03d5c902e9082091d0c933665ae84068d3384066b197c71a07c4307fe9aa1fa17436c41550a0337cf70c68a9220df0852ad92853f7fa25905b81c528bbeb8260bc10654589475b1883b77a672f7bbfe8b9bcf5f8b2c432994d975cf6ca8cddc929088c2806fc49037b3c8052448b65812124c82cec2601268f0e998bc41854de6350f56b4c3d31acd427910c8546921132e88a8d1f9c573388cfa3bc93f57c6345682387a69d4220b756f7546d5687dfc9586245b6bb08a9d68263e67c21135301ac1ca2c08a1523132c6cca56b6c05c91d33c44bccc515ab429d9a812693eb1f3380e69be20fc81c76b57bc99498c52784ef3650bd296d6675c7ccb55b67a59cbc09d44d9499a6243140040f2e30d1ff3aa0cf66c6569cfa6d2ca8517a1d5c87fd0d0693ef20d8e21ba5a4a2bebd77cf55698b1a09b2d05bbf7d973c5f5792b165c35bc17f873a9dd95a696929d0f3106bd685fe83871ec99772ba3c21aa523842138191527cfe7646717c65cdc2fa2a9ac97e818625455c2877346b378a4653aacbb1643f075762a9ceba500f0283013269f1b970c9d01588a149c1d8823eb214e76dab3966a622e815ffb22a39e2cb7898b4245a82e72557d51785f3888bef9bb9f1ff3312ac32a0524115ad1897753325378ab94b50dd5172cac3a453535af258a05d57930c035a503f26af358c537519ff53c0e602bb8266abb0a1854524b5311d7488754b51c672fa0b3312e356a60c62202b1678c241438d22720963a0ba51bb4441bd3246adb2511dcd132abbb85c18ace9185907dc3175ca0cc9681c52e91388ae5b4cb4acc4183c588a43e08986e4ca45770a5a40913ad353549c9652d60d5400282040ce17af243614ee4cf045b2c10b6845d8a7704d4173e5cc2b3a6439acb9b2df0901bc229c46945c2a81c7e7742fd96a71066118d618154aabb8e7c9c45b2436f132e3fd48fd5ec04f857b24737c4ea5c218f52c562345af7a1521ddb8ce3e91a2835a177988a4e856467f6ced236ada9bcce8ed885b19b862b952cc8a2269f35826a290a90c170b7f9195f816dd631b1ce66442469c42a420fad3970edec539f11826a4a917ab105123b4c14087f7b2455202a5455159e828cacd84767e5b9c024f4ae6d37596ca7570fabbe591082de627fe04a97f45409fe265054bbb57426b6cfe71825837b4be360ff7b48af3a7226525b77c450cdc4a483a17d77e723c8b1282bb40fb621731fb504277ab50f171bec369818bc3ec22126f6a47ca2937f907890c7815a1e115143f62f58550a0459ce7e04695bc7737787a972321578222f5622449010287ab844e624699a1ab50bd872cb29bfd534b401e538c51c12dd8c467a14c24f5c9856234da17ac5fa28870dfb70565ac954c440db457214016e301736520b5e15538e92d1cb205776f849cc0b23211e6a67ad5c9fceda1577e625bd271587f939fb3acee14135613592a7364534c77c2a1564151c12e1c6a219b878180001e2c94053ebb1282c5288a707ed7b245f15054d87b901c939373244f776ca51b3b9d00628c9a8165993974bac2c0b26715ab1a1b9706e8264a0d210a0e627ae60b59ba58a4abbb61e93f0cf31230a624591e0d1a368390205d6526889640651b7cb71c26807b11913056629914fbb1bc2545b55b2610f992e73812e82b73d10a541a7c8621a4690b2c00149b5b952e91d992c52e8426448e5936dd41ed7725ff1c5bb54803690e7b642805b168829ee5696b5d51a13560a36409a1ea41f03ccbf6bb86a1b205bec128ef81c2af9701752fa54cb3784081b5dec67bceea87a8864bae5bca2aeeab4eca30d460b4015870c0187b2519783fa030a3774277e018274775ea2ba027b8624c1dc569416a3117b57dc5b34a1056e4c9b1ea54b6e5f55bf1cd3c027cac8f5f9b9e4c921d98692a007ac22c6b044f6ac9ae5acc4aa3062a348eb2cad9e77189131bf56aba2d86612e01accc76b3222b01d30b079ff5250e0869545641213c175bca181eb738fc7e80e989b43a0c4c7ba0b41404abe955c3c01859dc17b35f48cc39e9c6ff84625923c1229e9b7c3c2ccfa760c8808b43225ce4fc96bf0c0affa26aa43341f7f14aa37ba5d48798c1661319b31325d04afa0759c35153ec77b07d5d88050f5a1f55262860c94990460341c6eaa32055a480547bb0829d5c3398208018b4c098ac686f1b18870864e2cb0777a798c221a659a0e7e9c5c2936afc4897a611c55086330ee1689f7817f44a6c127a53597576f37b35b4f74c535444abf5342dcf256d04800b04361adc83a207952fb81caa20cc8dd07a6fe8864e562844882b405b5b4b65c948b237b385974a9d4963068c3e5b18c51d42a7a9211d4f274ee5208e530907db49db956b8e10977e2357223523a58b511fbf7993bba3c38a95bc0b98062312a1c9449ddc4082601780ea65a6bfb1467a01d9e326cd10a8e202320d2a29e9b36ad09c44127820d6d024b3ce0c818234f55d7855b0b000462b198a669bf924bc81c99ae0b32a1c21f448ac6084c71a59a90fb43aaa73266e69a077d16a8d1443de4c2b61c3ccc731437ff744b7a7cc3a02a948da951d5763f078a991cb64ca7b049fa1b1eecb534509aafe04437e5f84e974261957ba746705eaf4528b4ba3764816f45045d40e807c14c3577a25f75f69ccaa136ce627742e33db588bdb5cc339ef916d7a9b108180a637586da55085eda466e3c7734f85e6a903ef0fc91ce793910231a8f46a7e084c595177a501b390eaa818c0a9fd37c9be78160c7a398f0e80d8e58966140639656890cd08f7fe92fe316cb1e1517ae7741445a47c8ec3ff8f54f476146f1095f9973062bc17f6723542b0a48e12b7e4dbab100f3bf6dbc219816a76a3109ebba8c823cbbd9176061d072d57726cf12908747bbc267c59fa71f6c719cc7827b91919ca3793d03a73604e1c2c98ca2e99877b6c2b93c97965c06b2dfd71cbbcbc7c81cb56b36587a174e899306acf88fd2689e345a78657c5c0b65b0f3f8206e405dae4738a7061d54db38bdb2ab87e8cb6dc93f2ba0c11b65712840b740ac90ac3404b69cba2123cd335004d8e363eb08148a627b66b4142f66b18e460b59d05091640587212f4dd60b84e61f0db00ac05b15e83a6e0ed3c2bd281161cc07676e12ef19a936d073d684c1491518bdbd426eb5a1463cea8b671c02b230ed109318ca7c1470f5a0ab154b74ee3990ff20ca8ccb835adfda4867f03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 + +# Official test vector 77, seed: "542e20078add5296050af150360f057f6b9ab3ba835589dd56987de805f900b906505b5390a0d86cba28038992dfc59a" +seed: 241191401a63afa750f05662e354dddbc683c776ce3222beb83e3cf913d7ed7ca59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d +public_key: 6f161381cbb8ff776b4299a36c893aea783b541b50b2c253c088683aaab40ed421eb113add58b322fccacbc9aa91b74fb0657e7a2706ad9c7c7f7813be9008cb07980c310f47c764b4ea496af60e8e6a534cb49852a2c17b4c7bf096c52c72264b7855b7a5552aa93d9aeb47f5ac34e340a094d411cb2cb962b90588a1b32dd68b662060ffa2ae2999525424114ecb4905a19a1284928ed8c42a2c5461520437f93d3cb76502201412a65983dcbe4c70b9f9320418421962005b39ac65703442002d52d18a83b08574895c0eeef19bfeebcfcc7c308f960090e9be93a01c36044220858f671bbc04f1a7557897df2a51adf85a0f7b25f1480089855f1a150bd8207edd0c63db7b99497aa03eb33a8068067d43a24957a20fdb6e11942559087c3ff343a2f5503b33756d55c9b9f29f6fe83d80cc3cbe9a00e8a31d0b986d1ef7635cfc1cde434f6c826ba5445a5933845d1cb8047a8e2f263e1a86b4f58433c5318e6b86942ca92cae767e2cca9111bbcd8b582a81aa5d22aa29dcc21f374a96e55302b837aab8709202141324386ff7f9c7d2ea068b057cf6954e6a433a5502785bf43ec8854ee7982002c703a0d6c35ee79a316a1fe3148b0d933fcd450829746c70e26d5b7b4792c40ee5c51b80cbba439c212f1c66cd619408d654aacc9c1de097a9d03478351e9a377e08710263728c08a71ab3db7f4a50774f0b99c8306f7d39c1aabc4b4bd64356476f85d6945a404df00b2da8988bc9f6b34579447dc3bda9d1a686e2c8ba67666f179f77217daa8cbe47a40b154c16a773627ab06c66b5c291b8616bd675c0351db13938c0a22c874b33d7cc128113642ad1321e5520a636681ae188f962a793b072badc69316b96fb591a99f53ce160c1c9e56384925afcf5c2dd74069f89580b3c18bc15ab0c91578686cf801b25c56c3e37847be52b5869c2b3f03b9b5b6ab0d2b5043e56bddb1c793d2c0fe47544e61c12ac0771a48c8249b3649d77ad9a4bb5d20c3ccb0ac05b51a0d1e29cc791677693b2d96b83c0d599e46b238063c50c7c101f3b3bcba18fc4da9d71b23dc133148417c2f4369b0c92855e538245f44496413c741282f5d7b1482167d90536b89165226aafd7e8aee821b22f69b963a87e4bea84d5ca3040464e7293b1bab723dd393ee3606ca2940431502f56183cdad305ea19cc3f3974236310d05220f233b383c5bc97ec1544a8528c1c74a6a48e9b9b31097477efa632baa4bc6a8abd6ceab5d774bf988b7d708926275227be2c416dc90fca4720437425ae9b4769443472e2b54ad8924935bc0f65a4740699f2051c1e53153cc354527450c8909366f696c8a323a300a28388bdbbec532afc1580faa1f7821c5a6988d8386265bb9dc1043c5ec2a1c51a35ec910d80a1a4c41755fa669a89e05de79b331bf13ecf88bff92ca340d5b961f446eca336af53a95173cbddeb643d4831c2f563950736fb912bbe370daff28cddc319ebe86958fb1794a97001a14df90b01b3aa0c6e952e79c7af072905f552487bf255e1f61536dc93824c7709492bd133516ae71c1b057cbce6a4a3d48b0744a5ceb1604e41a378e53a9afbac28c3cf97b1b03b31797c40654fc23666c34f77207639faabce69c1e98262ae22ca956bc043fb6748f54310379e975958584579fba4bd50e04b739020df78849aba007a4a23da8a18d449194073903d1a3ea4f43e0e76b299c233c5fc8534d831e69475ab6b611ab02da3251fdfe6b92475041f7814be839fc39bb06912799c553b4647a7073482980090c2c9a96b2866d6d8b65db1172bc062f3490b708b239fcc8a39e8175924c930825916386b463b645b4832bcc399b69a812a992d09d260cfc964eef5c883027a2d44743fd538d05b3417a26974bb639f494131803b10678c725a389aa6abeaf83bc947c6a3d031487488c72b1700b76f25f42ffff6595d87426b67258fb6b993508189e9b37f16c2efe87e3de705ff794b0a50cb7d8bba4059ae2e3ab4297429a3122c3e0568a64b64a401aca8ba2edd807dc0c0656b60b027290d23bcad4ba71de7f9989cd85ff43a1fd519b7eb40352d85b940208f9f8596f1946dc2366736a345d9c7501511101e81928380591c19868128a921e56383d12f19446577783e0b1665396c56cc9046c4c7c08a569d8edf0b76096e3c0643e13acf3d522c782871a1f0b31cf8 +private_key: dcbb8186f46c07bb4d36203fb6c89a5a487a0d16c2aa674a1b7a4724176d0a3a3efa4c42a258c7566b39ee2172b36b8102b900327b5c97876d2df233951c6ce26366c264b4202508fb4b37fab78977c76cb91707c32b41ae916708b108c2c303c5958c3f8a84c0b44ed504af57e31baa864871871583a98c4360a8b467ab78d16715860e4f112f4ce4a203e154e78c29ae4035f6a6b3df33a0118b6a70d5af8d9a95c65a6c223398bf541879351943515db63a4c97f7255171cd45c34c803c02668c73397c4adcc7874b2346aa6123bcf9050c22942fe7605606b745e6b375b35ef4b3be364353428abe7b29a9c93072e24b6af7904d87224b4b877a204180ddd63281d7211c17b8dc2ab00b5c71cf086e79b99cf1f7834e85b7c8e403b5e09c15042f5248c665b6b85bf84168d0165ab990eeca036e822bf6499f47b6162261b29f44644c78200a09bfada808a8db934977956fe026aaf342cd768d8f68ab2eccb64d67710995ca46eb10ee5b54d05925019510405606633538e45c91cf5c8d285a42eec3cba21509356cca48633e40b26ae5689e51a618b8b2481b780f071451d6c641911183184748185aa629b316139bbb8b666b9d165a24280bcf695b0d7a539a7950b0f133727141618605c7d8311ec5c61d153badb14117a502f353570c051a7975cf3e0031389ab13409a699ab4b8711c5b5188d71d4195ff54a3587b8a965280326afcd609e7b133da87ab115e63963541e512a6a4966c9ba569f43f68877e9c7659a7f75011e5c9757d6ac23782b9579032a2d83848f2966a5e007464c1f26510589269acdf80d28640aad02142d0c02368203c80ca9d6274a66083b194200df05473a056b20449d68d5af4ad617698c1126666276d38368ab87b104158e0c025dd5b7f8835e9757929c75814179943f05467eb6984bf4600bbc99cc7022fdf21a174bcf7d1504a69ac7693c175cc1bb3aa93dcc1c0599b73b1fe8cb3daa93cfd63dba315a5bd84d5e13b59cf15b86539037565b4e753ba075c9dfb049692525a015428f07b8ad5b3ec2ba89a4691615115b647cbdc9787d3f51109fc42a3c6005fff13ac191883c2683c6f45143e298ecd57f63c9bef9294d7a6a00a2737475d46e0927cc2a3c172f4a2fd960470bc4ca50db3b6ad5902508bb7538b7f9a9a42922104403a0d22bad7f36033c91b6acdc03205ca685e144bf72278efbcea55c7fbedb3798f0c2ac2969e4a9c742e6435400a9beb5c2a7874d971a36a278aac25113f382aaeb0877a2241fc3b089e929b806d72613007924c65c72611d243b00554a864367ce38a1842797cc5d4270f297647f1a4bd87236de55c6f3d1343e26708a623b8a03c3d3043055457a574c9b7b6a013d501189828c99a33d3fc715be7cc72e27cc8b0a397b95a79fc5b78bc5179bf1ce44f71a5d699ba34a271ca67409c115bc67b6a7790d384026246ac0d5fcc0d0f5b92ad2cdfe9c5b3dab52f07590ea07ca292cbfd2c44321c4687c385760988c0532c3dc237a9ec0ac139783d5caa0ebc76d0c25a8c1a0bf1e1ca106466548558290d2683bd69ca296711072c6dd5b95040a5b434b8193fb0c7b0496f9334cc86528cf04b77e3451ae590cbf2c0c55219ee1310989aa2ffe7b3bfaf09dede24a86b765fdb9045919c2c70965f581ab16a90afbdabd46d21edb9b3710c392f1f8115dd12377321016e96334491bf6b4a5f661797e92926551c006dc5a5db6512dc91542f017bd1976068386435a52f6684a0bc257ebd0869f72a5a269a46e5aa608d1a551c8192a7349885b95b3cc38d2d134442c69eb0655d9792ee8d3518cd7841b0563198a9f5526b925d2a02a5b3e7ea358cbdba5b1d22f9416915dfa2d9c399fcddc1f70a99e0c534bcc35382f1b4b4283cfd4575a3ea10ba05c77f316acd1a7459eb40a663978114425e0740676e483c9ac833f881523427335796405f3a0a52c8eadb3952f328a0f5ba2468a594ff00bd673922782b0210a3d97b546e4d3333a7104409625795016e9dc57a7e4815268a06273cfc0866126605110163d6de117b551c986ac4613d24aaeeb0209db97bb734da4ab0c9da2adfe1a058b88b2e5311118279443da1859b23a814b6a10125c7c2a7b2686465840ccedd31980f00786191ad330c36f161381cbb8ff776b4299a36c893aea783b541b50b2c253c088683aaab40ed421eb113add58b322fccacbc9aa91b74fb0657e7a2706ad9c7c7f7813be9008cb07980c310f47c764b4ea496af60e8e6a534cb49852a2c17b4c7bf096c52c72264b7855b7a5552aa93d9aeb47f5ac34e340a094d411cb2cb962b90588a1b32dd68b662060ffa2ae2999525424114ecb4905a19a1284928ed8c42a2c5461520437f93d3cb76502201412a65983dcbe4c70b9f9320418421962005b39ac65703442002d52d18a83b08574895c0eeef19bfeebcfcc7c308f960090e9be93a01c36044220858f671bbc04f1a7557897df2a51adf85a0f7b25f1480089855f1a150bd8207edd0c63db7b99497aa03eb33a8068067d43a24957a20fdb6e11942559087c3ff343a2f5503b33756d55c9b9f29f6fe83d80cc3cbe9a00e8a31d0b986d1ef7635cfc1cde434f6c826ba5445a5933845d1cb8047a8e2f263e1a86b4f58433c5318e6b86942ca92cae767e2cca9111bbcd8b582a81aa5d22aa29dcc21f374a96e55302b837aab8709202141324386ff7f9c7d2ea068b057cf6954e6a433a5502785bf43ec8854ee7982002c703a0d6c35ee79a316a1fe3148b0d933fcd450829746c70e26d5b7b4792c40ee5c51b80cbba439c212f1c66cd619408d654aacc9c1de097a9d03478351e9a377e08710263728c08a71ab3db7f4a50774f0b99c8306f7d39c1aabc4b4bd64356476f85d6945a404df00b2da8988bc9f6b34579447dc3bda9d1a686e2c8ba67666f179f77217daa8cbe47a40b154c16a773627ab06c66b5c291b8616bd675c0351db13938c0a22c874b33d7cc128113642ad1321e5520a636681ae188f962a793b072badc69316b96fb591a99f53ce160c1c9e56384925afcf5c2dd74069f89580b3c18bc15ab0c91578686cf801b25c56c3e37847be52b5869c2b3f03b9b5b6ab0d2b5043e56bddb1c793d2c0fe47544e61c12ac0771a48c8249b3649d77ad9a4bb5d20c3ccb0ac05b51a0d1e29cc791677693b2d96b83c0d599e46b238063c50c7c101f3b3bcba18fc4da9d71b23dc133148417c2f4369b0c92855e538245f44496413c741282f5d7b1482167d90536b89165226aafd7e8aee821b22f69b963a87e4bea84d5ca3040464e7293b1bab723dd393ee3606ca2940431502f56183cdad305ea19cc3f3974236310d05220f233b383c5bc97ec1544a8528c1c74a6a48e9b9b31097477efa632baa4bc6a8abd6ceab5d774bf988b7d708926275227be2c416dc90fca4720437425ae9b4769443472e2b54ad8924935bc0f65a4740699f2051c1e53153cc354527450c8909366f696c8a323a300a28388bdbbec532afc1580faa1f7821c5a6988d8386265bb9dc1043c5ec2a1c51a35ec910d80a1a4c41755fa669a89e05de79b331bf13ecf88bff92ca340d5b961f446eca336af53a95173cbddeb643d4831c2f563950736fb912bbe370daff28cddc319ebe86958fb1794a97001a14df90b01b3aa0c6e952e79c7af072905f552487bf255e1f61536dc93824c7709492bd133516ae71c1b057cbce6a4a3d48b0744a5ceb1604e41a378e53a9afbac28c3cf97b1b03b31797c40654fc23666c34f77207639faabce69c1e98262ae22ca956bc043fb6748f54310379e975958584579fba4bd50e04b739020df78849aba007a4a23da8a18d449194073903d1a3ea4f43e0e76b299c233c5fc8534d831e69475ab6b611ab02da3251fdfe6b92475041f7814be839fc39bb06912799c553b4647a7073482980090c2c9a96b2866d6d8b65db1172bc062f3490b708b239fcc8a39e8175924c930825916386b463b645b4832bcc399b69a812a992d09d260cfc964eef5c883027a2d44743fd538d05b3417a26974bb639f494131803b10678c725a389aa6abeaf83bc947c6a3d031487488c72b1700b76f25f42ffff6595d87426b67258fb6b993508189e9b37f16c2efe87e3de705ff794b0a50cb7d8bba4059ae2e3ab4297429a3122c3e0568a64b64a401aca8ba2edd807dc0c0656b60b027290d23bcad4ba71de7f9989cd85ff43a1fd519b7eb40352d85b940208f9f8596f1946dc2366736a345d9c7501511101e81928380591c19868128a921e56383d12f19446577783e0b1665396c56cc9046c4c7c08a569d8edf0b76096e3c0643e13acf3d522c782871a1f0b31cf8e5a656d13cdb067db3640acd507a2fdc583369ee08e235663a202af6720934c3a59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d + +# Official test vector 78, seed: "6a85a61dd08c0733fcbc158abb49fe0b0d96a50dcca140a2e9f5a254f1901985844613b1c656c0cb0112620591b88ad0" +seed: b9a6b0c05677e957d41a34ba03bd06f2a9092e31f63389397d7e70fde6409d18e99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 +public_key: 81fb1c51f687aa1438a329b100805f99f016d9119d2d06c1a6978569e7c40cab47ce5cacc4d35aadd89047a3bf7175cd8833540b8a028c27461d334b3f8680daf57313d7713a35075ce971cac3cfeac02774c3589c21232d5a73d959705be77c3ca0884f8a1c3a89a1059972f115257bc0ce9f13271fd73e7293bf944b82865986a5d56e6c9c825c83271f42908c0953fea66de4ebb820013fe9aa9522ab4ed66334de641f8e66766bfc47a7a5156c182c0bb3628b81b59461b05e3a11d945b36a3923b12abf8f698d1234593d0c784633cdaf09cf8f4148f6320b15c48aa81b1fc3e79fa4055599935e1076c8c1780b1910af4ac9652249b0c64c94137132a12ab62dd265334cc46a3444437a74b076039f39bdcbe2016d8402081949c8e6066f09839cc0adfb5215590aab10c51bb03b68701b0692d1c5c47c58d214b139b83562728b3a771f25cb7638077c4b6b2f83b11df2369ebe9b4e51f36be72bb04e1b591852aea0cc31d1a774768940d73801b8ba23f71c542c8c01559862af4950b7e21f5d4abc3a1104251574e5597076f971b46c370fb1858a1cba35353d29a23db9e756c57a115539824f5375080990b3835023f448a2314d08c6897da5ae35325f9a6107ad4ca05d653ba78c5769e51b368c200543c2a2884a2d504a73827009d166218a981189b5556b38df395ae007772c1222c3e2778c34774c87ae0931bd116c82ae33b3454808e07cc5c6d16c5108c155a451e046260067c6fb0181ae084588017fdbb7ae63e96321290bdb4b3867074e6e684b700b7d5b1074641c5702e287d257b8a54597667c1ccc702f735c30bbaa84bf405123602572962ed89c2d7a3817ac4879d1392f9199c003e63666f1cfc6f91cfc9386b18615bd36913f010270e8a4a9a99e772cbb994b4ca926bf8a04cc1c20c885d2683301cd8c7b381190b0e3dca0d6c33fdd49465fd265781a16fbb546e9b6c6ce0462c604b9fff09cc2d4608259284b8a83a877b9fb18415cd60c37b0b3d6a48c803a61b0a5c9675018f64a013062440f0c40c62055cca7bb6cb9a293193485fc529922478e4c620a73144a57833d3b5b9bb222f2f4b452447cc06638fac1b4404402449a3cd60bcb2fbccdaea42086682ad7f972008276e4e5449217088b485ce6757eb3410c62796d0e7a643a3c72c612ab165475f6e51456d498e858aff563c1f7781035fcab3c85cfa2f207d1e4703d3015e14689fa0c9b1f57984b678baa10cace44a2fb23bc1f317d5304552306183435c62012b2ccdaa9a744575f959b57b9ccc2c28e1a94959a812da6f259d11479fbbc97f54a57a986be61f49ec42124da687221aa3eb3b2c0298249746b20cba291f1633e784608d5897da13a20ea377df6b95198132a7fd526d065250f97525d809bf9cc7270c7b723cc95dc9c8ddf5113ec4c8b3cdca07a7242034741a3cc684a998514fbccc435a8a2d92675e6c3f252a7019a74818689574c6ad907080954557cc12e1d47ca23240b78c2301f39c78127180c268b76289132aab01f457adfa649a4324a08e0bb5345cc2ef90fe6e33588d6adb499b04daa642fc01f5777bef8a7af04179630619d13ba0991cb36e8c23f16baab09a72e7388c93385331f7b5bdf420f1e75c7ad28c54df96df3f1086fe4120843af7c7878b4483956b022ae05112253b97e6a61780ccf4047589ea04000d57593622983e8187a6232deeb59f5e147ef1628a9f692b8bccea069cee6f49533b7301728a3ffc85d7db98398ccb38523254f843dd79bb58b4796a1fc6d68095b8faa7ff9381d01d61bd6694f2c225c46086031a86105661033948c29278e422b304dac9817401af89540a29a1cd6093c86a3878c226fcae156b85038f4ac53579143f2f5854f825b0d45bb974b724368814a9487a60a6e41261470935a90ebcf45b53279c67d92330556e99606dc22a2419021896b2eb750b2479aae7a706b1bbdd9514173f23dd3066161a0af8a6a9ef6aa7efcfb1306b9c421f63be2e376f747731a233a45a8309ba8182d24cf6598c26d65c89da9c9e9e6b9579a4817552a8d355ede798e09781b387c9935333b15d92998a4c736d266dfc2ab61708fcac7b821c01044492f7f4bb8f37b5026790f3a437cfa63af88341b95a8899ad31b37491ce3e42fd9b3701a63d537569b75a6b4b362c14f1b4ba66ab7914c9900187f1057 +private_key: 7c12448f6c47d923c2abe1a0d6f5259b00b5b0f84304fa9192c5ae32fc6e7d0c6d2cd2162e121c4d202a01d0c471f7a959f3941fe56655f808c139b471827d24d97464993bb77b69a45b0380a666874804de793a2ab31d749070bf174ddc8a113b50c8d11037dcec6ea71a7a37e84e133551494a2cfa01bfbac60ea3691b60312ae6707883c74fe70954565abdabe07364db5c76fa2afdc234c63b39fbb597eea25faadc07d326bc06918b201630cbd166e935cf713373bef1749f0a579b77c185a9855e444a353a0804065c3640114d29b25e96ca34e8912454a2c9d39f353103ac17b7d3742222e605b50043e06350e655bda46760e6073b0710691072b52681a81557930fea99f1c13ae618930466305cd56e7879c455f1c7f140bb37dcb56c807955a084a7866b3858a78372487a565da243c7c328c355bb1e21d25c499bcf2de82fb77349d712a365b395d3a1a82d43326d464cabcba97d634fa0f54226029d576304ab06229bf59be0a3be83c4a927157db10743b9cb4070896e79b17483b07d185aa097c790b1b8168fe0aa02f47965e11a1f63587cb512d65b2cf4080d8be80608e0aec5d98a77813492e57db94c20b3b4a29912466c2b693b2464dc8248757b808931727a7270fedc06d86339886a90ec5a0cd5a66462646f66a9bfa959a5c790af13b777f31bb0d1952e1c0a241aa743b54bc2cd4a3583d735a0774a65a57a1db99fde48381b456b2d415ba066ce94c8ce2f144efdc71465f3aa19bbc8aa2cafc85a0fdb06a784a48fb617bf3b7847b91037ce732d10cb2cb92331c38003dc87647015146adccd2a3761283c221f90ab65816107d69d5b481269009f43facad5d52830f53df74b172b41c1aa693e2bb9a2a1bbac5a362a9c190f142b71ed621429b58e88b05851668bb0193df370402a8c6dc19591d84090a879b0c297c2b352bc74bb6a91a598997cb8a7bb3ad9553b9eb114e4b44e30e2698e83a38134be232995a66644e1a0c308b014e1dc5dfc71c580d61acc478db94052340c109339731610223e212cd7ac3e7be983cb75b0a9145fc2a058eac5288a584ca024258a596bdb2a64b42a471a2c40bea222cad46478007cf981ae7b179f1864a76d0b6d3cc3324735bc2c7474a7c9778777b01cc85c67fb68f5671a74479b691137a006d0d5531014ab4261dcc4c88c07ff298eb9209d3234637f1b8bb0bb506d582467247fe6286ea885612b0648aa593f5436873646406bd03e65a549e610a6502121c0c84ad16c7da8026b2d47334553967f749cad20421be2c67df13225d694a4f84faf99c61953a5199a556b8b6e86ac9dfdd4223fd3adb37623d5a6c8a292ca4a048a7a72b7cde58f60e227efcc5290f5c55e75274860813ea29496123adf577d22dc57174a25188ba951970597359c32b24031f264fd8494121727c7b4940ff4cf12f4ce8ae074272a0ce870304af5b274e44eb34c8aef476190917b0194bb75a23be748c15a69525aaba908baafe6f67b4140bcc9f8670b16a84ea855d67610ec1a6cebc7ca15534bd740bde1181660501094050fc8c58a48f4b87f98cda881569d03be5db1a4418b86f93aa5f18a9e2873418d5bc9cb849aadbb04883914d413955fc072b26c17af227e7e3bb41c666c8ba269e5d6c9d14a13b458cc7e7b37907003e4a089f2941f4ed3b3b7f7caec60ba21389570e014612088db3309582254e7a4667cd3755f4b3e536ab68f36459ef04c1eb210e17259ff714ab8d1052a6c03351a829a02a0f9267e6f62912b188627d907d11a85237ac296e3629151516e495e69c9bf93677bb1582900d5c3ee554d9e491bc1972239c96d17937b094795e6780b84f7baf953095e909c11a90c2d803a3d7a265a9894d9b76988f9b54dd033d4c2461000087987a1f81a2027a036138c42dff0656e4338bb717b0da922e677b1d6447565f5cdf202ac9e7232c2b962626729c1f6836862900a32688ac60716286ede932085d23774512f610881b63b1e34b77b25e30c7472969b7b2f4fb03a4fc46217a0a562b27345eb8038b22160913bf658478d089a88eb9e07b559d268be07ec3e9f9a752f7c110633821fca2ee9dc3b94e9a190759c6c4ca9aaa5547c1c86d714ccbed6c41ab53d3379bbe7c189bd1860df788fd4528281fb1c51f687aa1438a329b100805f99f016d9119d2d06c1a6978569e7c40cab47ce5cacc4d35aadd89047a3bf7175cd8833540b8a028c27461d334b3f8680daf57313d7713a35075ce971cac3cfeac02774c3589c21232d5a73d959705be77c3ca0884f8a1c3a89a1059972f115257bc0ce9f13271fd73e7293bf944b82865986a5d56e6c9c825c83271f42908c0953fea66de4ebb820013fe9aa9522ab4ed66334de641f8e66766bfc47a7a5156c182c0bb3628b81b59461b05e3a11d945b36a3923b12abf8f698d1234593d0c784633cdaf09cf8f4148f6320b15c48aa81b1fc3e79fa4055599935e1076c8c1780b1910af4ac9652249b0c64c94137132a12ab62dd265334cc46a3444437a74b076039f39bdcbe2016d8402081949c8e6066f09839cc0adfb5215590aab10c51bb03b68701b0692d1c5c47c58d214b139b83562728b3a771f25cb7638077c4b6b2f83b11df2369ebe9b4e51f36be72bb04e1b591852aea0cc31d1a774768940d73801b8ba23f71c542c8c01559862af4950b7e21f5d4abc3a1104251574e5597076f971b46c370fb1858a1cba35353d29a23db9e756c57a115539824f5375080990b3835023f448a2314d08c6897da5ae35325f9a6107ad4ca05d653ba78c5769e51b368c200543c2a2884a2d504a73827009d166218a981189b5556b38df395ae007772c1222c3e2778c34774c87ae0931bd116c82ae33b3454808e07cc5c6d16c5108c155a451e046260067c6fb0181ae084588017fdbb7ae63e96321290bdb4b3867074e6e684b700b7d5b1074641c5702e287d257b8a54597667c1ccc702f735c30bbaa84bf405123602572962ed89c2d7a3817ac4879d1392f9199c003e63666f1cfc6f91cfc9386b18615bd36913f010270e8a4a9a99e772cbb994b4ca926bf8a04cc1c20c885d2683301cd8c7b381190b0e3dca0d6c33fdd49465fd265781a16fbb546e9b6c6ce0462c604b9fff09cc2d4608259284b8a83a877b9fb18415cd60c37b0b3d6a48c803a61b0a5c9675018f64a013062440f0c40c62055cca7bb6cb9a293193485fc529922478e4c620a73144a57833d3b5b9bb222f2f4b452447cc06638fac1b4404402449a3cd60bcb2fbccdaea42086682ad7f972008276e4e5449217088b485ce6757eb3410c62796d0e7a643a3c72c612ab165475f6e51456d498e858aff563c1f7781035fcab3c85cfa2f207d1e4703d3015e14689fa0c9b1f57984b678baa10cace44a2fb23bc1f317d5304552306183435c62012b2ccdaa9a744575f959b57b9ccc2c28e1a94959a812da6f259d11479fbbc97f54a57a986be61f49ec42124da687221aa3eb3b2c0298249746b20cba291f1633e784608d5897da13a20ea377df6b95198132a7fd526d065250f97525d809bf9cc7270c7b723cc95dc9c8ddf5113ec4c8b3cdca07a7242034741a3cc684a998514fbccc435a8a2d92675e6c3f252a7019a74818689574c6ad907080954557cc12e1d47ca23240b78c2301f39c78127180c268b76289132aab01f457adfa649a4324a08e0bb5345cc2ef90fe6e33588d6adb499b04daa642fc01f5777bef8a7af04179630619d13ba0991cb36e8c23f16baab09a72e7388c93385331f7b5bdf420f1e75c7ad28c54df96df3f1086fe4120843af7c7878b4483956b022ae05112253b97e6a61780ccf4047589ea04000d57593622983e8187a6232deeb59f5e147ef1628a9f692b8bccea069cee6f49533b7301728a3ffc85d7db98398ccb38523254f843dd79bb58b4796a1fc6d68095b8faa7ff9381d01d61bd6694f2c225c46086031a86105661033948c29278e422b304dac9817401af89540a29a1cd6093c86a3878c226fcae156b85038f4ac53579143f2f5854f825b0d45bb974b724368814a9487a60a6e41261470935a90ebcf45b53279c67d92330556e99606dc22a2419021896b2eb750b2479aae7a706b1bbdd9514173f23dd3066161a0af8a6a9ef6aa7efcfb1306b9c421f63be2e376f747731a233a45a8309ba8182d24cf6598c26d65c89da9c9e9e6b9579a4817552a8d355ede798e09781b387c9935333b15d92998a4c736d266dfc2ab61708fcac7b821c01044492f7f4bb8f37b5026790f3a437cfa63af88341b95a8899ad31b37491ce3e42fd9b3701a63d537569b75a6b4b362c14f1b4ba66ab7914c9900187f105744df0b816ba22f5d471848886dd490d5c76169a14af42c03b0b56a7e26aa7ac4e99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 + +# Official test vector 79, seed: "7f4a56eda151e7b097cfb8ef980440fff707affba91867c89522ced6c5ff3bd7f5f00bb49ddd615d9361a7e4efa42851" +seed: 28a96c71577ba00c94f99fe965bc595a26db2b3ca6ab5cf8e443cdd8462b17929c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 +public_key: 55a15b77118695a2bfe69365a4474cc5f1bd3bc30beca40fa5ab05198b708d58110aba64fa4a8e5f955bfd935530b95f16ea816074ac23f8435eb22e85b7621481444b699278082693f073d623c99764c759aa0d6d3211fea1a61b048519e142eef86ec20430812c26aa3812c42471cc8799b80915222111c96b09ea063518c42786569101f81eafe3229fd85900da5abac8a84a688bd58a03213ac8019929e089a24ff8c712a1751856722fc7af3c57bbf95c77c38c85d3e481916c75ffa371d2a0c583b03d301538cf49c744f429d2c80e1ab13c5e126ab6d3ccd733177e469e6a30cbe0c3212215b66f57bedbca118be24c4a3267a1e65c8f924588e9b10ce22157650e64314b7643136e87bc141c9a01dc7b746556a1ea01f5aa8d22671be3177bcbeb605093a225e1a847c6ab78ca89c4d3a4a618932025aab56646a974b088429e182308dbda27fe6a0a7f5a6b36d681cbd94ec205a018319a89345ca5715ef79266d1f67dff2a1867366d14bb60625b9883740f4b3627ac385fa728a51c162401d86c4f2385bb9661ca891562523a7a66111195bacec69abd4c35ba6959397664ab56a621a25b00c5aa2c0793487a8b1b5847a29844d6e8cac42ba2aa3586ce117b010aaa324236855771cc999929f0b948c671b4a7ced082358fc94147f86fb01c3b1210bfdfe266d1f60a72baab460aa7ce7083d4b913635332cf559b121a26fa643fbb7553781847787c8d78e9662cb82941627bc863bc79799d4681830d3b41d156384f157e3ad27192b92e47c106ab6c1304a3b56723162e933cc28b220f45cbb9615cc90aa3483cbb9b510e7aecbd80b28ba3a51e1264b6c6023c30843462f33faf090e43555635c674a80679fbc88270ab53ccc83b79673e296a1394dba0bc2b421b02a0d4213890d0093c19384298b039b5b8f4f61a2ce286bf11b9a6c164bb5a269427999d707c3e62ce88d66fa283218ef393a4ec7a35e2a927b92866e5976e1b95122236c2800d2b4989e0759ab8bc1f37da21288ab22fc4a13bf8068a9abac80c814d150885762275c638087b643b60b4673408869156d52ca257ba50ff1354f4164b4d29069a99c7805527c7674c2dbbcf26656d110823f082bc88405299e093195038f7562b11daaec75668b71244fa6769a18b2d4643930704199f0105082ba91ff44f7b6bb339f243b524979ac51fc92c6b75711193fa29f898141a6c444e2850f03353fc6ca27f0023b9c88f6c0b8aafc9cb9981c460e2b17d594c7a60b6e3451c9675c923a7b1645c4d3fb28b1e42ae1f93090b86659e1a7d46183d26f380a2c046d9028e9906cbdf1ab605367be6a5609e79cb8dc349c739b7d4f74007fa69b9b50c94223e214509b2e057272476b1653d90740b0c059b1d2845ea9a57cad384a2c7cc2b926979f60fde47bfa01a217cd3c43bc01aae86642b84b79ce58296700427c78b7f32116823ba964379f1374e4b164eac108234b12139d580ec4bc11be3b62442445409204e1a9459ab3d7d33815e76589ca4009b27ca2e6ca470b61504569d0e70155d988b80988cda1c9ec0da673ac2497d6a2fe1cb8539f5262bba5104a4cf7659a616755cbd6a1cfd42a9ee1c115158a66af0bbceb149dba4af4ed2a128a988d8aa5c97164be56483e1816e52402b908b12429c505d0a3a4b2366a7bb38169497e7ac0e3ca8ad8f9636a54cb4b4d667d91752d6658a08416d552c3ebee80a613c41de4478611598bd05b34a66853b079481885225941beb4b67218013a3772a60e55aaa25ad44575f45a3178d37af2786a76e20a5a8719d84e693f693507aab4cb43c55a64339359b8075a643b7a696c373144a743288c37ffe36c454a45444c2a48c3c7d0415c125d133670ca1709c7f80897751fc8d07f30ba0a3b10f7110b03863e5b040b7942c6a527008f7952b89cff921280296955261ca76f50d1dc0a0d2b8b682d8459fec291c27c1e281bbf5a17dff0c0c75a3bb4c987f30b175c293931fc444728ab8590c6095c60542e6bbd2a39e324b96af61328ecbc54da1a44ca7a175c61a131610bad5144b702380d45b5df1622f3b2a4e640457ac830c8cc05ef95b4429b599983bab346a47443575087e975a57ab91601ee65966b51838108117934a5f334979349e3fdb9b49ca49252a4214b6e298c3b12e5f6e85ddfa7edc01a03b27468684972318831a +private_key: a9a63209470b02c598d426b60572256c3a610ee70e65d20bffac56f5371d896255fb79ac3934b43c78ccb0cb8ca428c975e0be2e901c85f92950ab2e2e30b75953656e87c5107b1ae0b0275c0ab1e0a9019b3681e0b909ffebcb467447ea7c8a4328c7fd485f4a6c6aeb6c730f10ceb68c3a3974bb5c2a37f3c588e6e9058dd458f478b702467155d9a2b0d28b5d60bebbea16924c22efa742f59c10ff235f3ea05c51a721ab75550207b3a6f36e34683e7cc5127210015f20082ef4aea1c273ab2c1adbb235ba590f027028313b9fcaf656e4747d0461422efc565276577720223f8600f9c3739e185c98669cc75a282ab8a663285afab5b1b406818c19508f99c9f35a01144a36fb8a68f12516b7eb09eed336bb0440a013bf78c19ca0f11257db7751e5b54033a74fb5ac24d07fe2a547a0f9882b83570ed29e2ae403eef911c3827cce4a3b926b4c5fc579486836cd9c78cb537369d270798aa6a5707a28a2b48a93302f4ba79c8882e23256a335bd7674612749383e8399c7715bf53945e57927c29b2d04481e43e8a91d58511d975bef95a304f253f9027d2948431da71b92c0319b9512b5cb7dc6908a9fab80d0f25f18207fa0323c7951ba4272c053440d0b9a81fc84708643b1a2880c7272a9cc0034246430cd396d4d2134fc1477aa0261ad5595a384cf19a6c37be499274b870ce21120033092e70a38175388645c86692c5e213a29c910323270c790376a19a3d11742376c797e55628adb813aa4ac10d2659a42a3fd7aa13c9c67cca92d0bf0a37fd093a3267892bca285c93c45ec65d4e0a63c3bba8f0051f35a939f0c11b0356c160b14921b4aff79a127b35b5a27c431252abda5a570c48327fb7204d7ba38a79f34a15ae5a2750e27a3e62acf8fd87329b78e426a1bf91901190a29fd820c7656969ae737044207c8137d8eac5edaa41b606b257a53af4d0acca2266618f081d743ce9803c1ebf29afe0c24ac83bf3ebca2bdd35b98355260c31819d7c4ca9c5550972b34ea388ec62a04cb6d06f083b06c4850814b1b4b65e3931e2037c4d89ba1314ca2c47b7dd7a06f11150bc5188178584f825205b693cbcd51612c13385c98b57168b0c4f9a488a81d31a3429968310496a665446fa6a988b7647b95ab582193543906b274cc73925073c55532d7e9af4066998edc208aacc5a0e23431255f1cacbfb380335046cdaf416417b80fab2bcc834bb9a377709069a330f654929c39a0aa95126cbf26fc320dc34fa8eb706234878b516ba9854d2265acfe5ca3ee0ccf5a413b884a9757608453516a524565345b0290421003e71ef631266a021488303a56998505cb4020b1c38c859f33d914ab97a0bae13f620a090f80382be3a40efa723bf42fa10aab9651485f8c6d3a8621a863723bc4ae27627c18287d0bd01b8393819100cbcd28b4173c35b0d874dbbb4e7e3793f16785742c282e590b4b4960c8503152980dde8b5cab7186fce546a8642e7a43a0e939c17b25c8f7ca3b15814ebc91cc213920bd35848d8b412c0269fbd59f74382a27206f2886b33ffc71cb896f225170cc730e07092031e60cab064be4e005af92428b8bb522237413e72b18949cb06588db32c5b53570a93796ded26a22ec8e27b9a042795901b97507789905c421b3e1260263ab704925c7d8ce3393ce04a19486559eea554ec40361010b73544c590147256cb50e7d940e9dd859ac8647f418548270941a53bc4d126f050152ae557f15756562c0267d26c1db4313e5ec6e0f76a2085a77aff2c1ec5cc4d6299591bace03b527f3fa71d9786dec5c9c1547c9e1665d707b565bdc93f0a0c88ae3aa5a00975d136a64a375f05b9e4efcb85775627619a04000b1cd518dc8854362819ca583c71f4c6cbe624d847a2651776672501a71e3717f249b5a7582583b18f006530feb7d68855592026cf6f52f3640ab33032e7d609fb8d3cfcaf15d3abb0691e478d528af606014bab3c15ff5cac8c774142c9433d6bd192676cc4b7230b66ba55a50426c1a47ea6118b4913b46ba3f72255689416cc47caeeb470f8372dd21aaf34687bbe5a66c402762b64b96a42a3bb47d14554c8dd4c31d4c7c1c8071050a41df9a1377d6457c341f6f1538fc74247581640a505f85e151f1775885d7b655a15b77118695a2bfe69365a4474cc5f1bd3bc30beca40fa5ab05198b708d58110aba64fa4a8e5f955bfd935530b95f16ea816074ac23f8435eb22e85b7621481444b699278082693f073d623c99764c759aa0d6d3211fea1a61b048519e142eef86ec20430812c26aa3812c42471cc8799b80915222111c96b09ea063518c42786569101f81eafe3229fd85900da5abac8a84a688bd58a03213ac8019929e089a24ff8c712a1751856722fc7af3c57bbf95c77c38c85d3e481916c75ffa371d2a0c583b03d301538cf49c744f429d2c80e1ab13c5e126ab6d3ccd733177e469e6a30cbe0c3212215b66f57bedbca118be24c4a3267a1e65c8f924588e9b10ce22157650e64314b7643136e87bc141c9a01dc7b746556a1ea01f5aa8d22671be3177bcbeb605093a225e1a847c6ab78ca89c4d3a4a618932025aab56646a974b088429e182308dbda27fe6a0a7f5a6b36d681cbd94ec205a018319a89345ca5715ef79266d1f67dff2a1867366d14bb60625b9883740f4b3627ac385fa728a51c162401d86c4f2385bb9661ca891562523a7a66111195bacec69abd4c35ba6959397664ab56a621a25b00c5aa2c0793487a8b1b5847a29844d6e8cac42ba2aa3586ce117b010aaa324236855771cc999929f0b948c671b4a7ced082358fc94147f86fb01c3b1210bfdfe266d1f60a72baab460aa7ce7083d4b913635332cf559b121a26fa643fbb7553781847787c8d78e9662cb82941627bc863bc79799d4681830d3b41d156384f157e3ad27192b92e47c106ab6c1304a3b56723162e933cc28b220f45cbb9615cc90aa3483cbb9b510e7aecbd80b28ba3a51e1264b6c6023c30843462f33faf090e43555635c674a80679fbc88270ab53ccc83b79673e296a1394dba0bc2b421b02a0d4213890d0093c19384298b039b5b8f4f61a2ce286bf11b9a6c164bb5a269427999d707c3e62ce88d66fa283218ef393a4ec7a35e2a927b92866e5976e1b95122236c2800d2b4989e0759ab8bc1f37da21288ab22fc4a13bf8068a9abac80c814d150885762275c638087b643b60b4673408869156d52ca257ba50ff1354f4164b4d29069a99c7805527c7674c2dbbcf26656d110823f082bc88405299e093195038f7562b11daaec75668b71244fa6769a18b2d4643930704199f0105082ba91ff44f7b6bb339f243b524979ac51fc92c6b75711193fa29f898141a6c444e2850f03353fc6ca27f0023b9c88f6c0b8aafc9cb9981c460e2b17d594c7a60b6e3451c9675c923a7b1645c4d3fb28b1e42ae1f93090b86659e1a7d46183d26f380a2c046d9028e9906cbdf1ab605367be6a5609e79cb8dc349c739b7d4f74007fa69b9b50c94223e214509b2e057272476b1653d90740b0c059b1d2845ea9a57cad384a2c7cc2b926979f60fde47bfa01a217cd3c43bc01aae86642b84b79ce58296700427c78b7f32116823ba964379f1374e4b164eac108234b12139d580ec4bc11be3b62442445409204e1a9459ab3d7d33815e76589ca4009b27ca2e6ca470b61504569d0e70155d988b80988cda1c9ec0da673ac2497d6a2fe1cb8539f5262bba5104a4cf7659a616755cbd6a1cfd42a9ee1c115158a66af0bbceb149dba4af4ed2a128a988d8aa5c97164be56483e1816e52402b908b12429c505d0a3a4b2366a7bb38169497e7ac0e3ca8ad8f9636a54cb4b4d667d91752d6658a08416d552c3ebee80a613c41de4478611598bd05b34a66853b079481885225941beb4b67218013a3772a60e55aaa25ad44575f45a3178d37af2786a76e20a5a8719d84e693f693507aab4cb43c55a64339359b8075a643b7a696c373144a743288c37ffe36c454a45444c2a48c3c7d0415c125d133670ca1709c7f80897751fc8d07f30ba0a3b10f7110b03863e5b040b7942c6a527008f7952b89cff921280296955261ca76f50d1dc0a0d2b8b682d8459fec291c27c1e281bbf5a17dff0c0c75a3bb4c987f30b175c293931fc444728ab8590c6095c60542e6bbd2a39e324b96af61328ecbc54da1a44ca7a175c61a131610bad5144b702380d45b5df1622f3b2a4e640457ac830c8cc05ef95b4429b599983bab346a47443575087e975a57ab91601ee65966b51838108117934a5f334979349e3fdb9b49ca49252a4214b6e298c3b12e5f6e85ddfa7edc01a03b27468684972318831ae360d6a628c3b1b5dc926153f22a88c7b953085255edd2a72799bda15e49dffa9c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 + +# Official test vector 80, seed: "09fc004519bcf85b20d25d314a0dfc79e00cb6262a7dddf9c52473641afb8cfa0f5dd5f53558184caae9ec34b459e98e" +seed: c08ba2ef8c3a0a043afad931652d7a19e6e8cb670f840de5f1fa03309b2ca9ec5fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df +public_key: 31596bd912527e2c965ce3344b4621190c106f5084836006296c37949aca196c426f4783b65221b9c50827c85b7067a9872a6d9277828ea9385f9b512a8a3e897628d1aa36a5206b35fb219ae26269126b75590b2d1067419b27fa6852a3552d6ce48c9193c96a3131397166d47c53eebbb68b949a5bc3c7d585027961aab89b38f5295ce7c60d3d9009508769ee37a48de0685b9228d998b883d871985108b49c908390cb68147e8bc561df29cde02b1ed5236ed77b23b3f32e687b859dd63439890d8735640f5c073bc05cda79603cfb37fc5ccd28e98b4eb169271408a1cba57d21afb87c97e2044766b38280b6911b95725d5a77327764832603fe771aed89baa1c8b2ff49b741081884c6326fa0693fe64551402301a0552f49035a262e9d047d8a2075fdf6636c726f8b6098fb2b8f01c89e87478dc1112c37f1b857fb13cec53673e297b8aa9612d26a4cd0c6168c9dea407133acb939d06a7c660581a877f046b9b1138f6fa6156be2a5bfb23d04954fe32b1272d73e39c79094864cc9e36e46e9c8f1db330c17a0ecbb332e385769c4c0ace7c0b0d49fb89503cbc13ff3a1b19f421b80855fcb947cb651ccc0a7b55b5100c09aab9201c4ff8c56a2d90bac255a3665a731d07b8ad829f7a7b556ac12acbc1073a40b7c36059edccd97a50c493359c8ba390e3716921a69998b9b111c4dd283456f7b61ccf97c1dbc362e2760e2928227405e449c126d7526516298f6315302288043085808195ea587118d731543f09479a2adb96884b3a620d4c86123818cf848b295eb0035211bf614b077871db1d8c779d61e90257730e47bba178ac5e28b8e47794517727e4049dc759ed5a69cf7c66de05c0a5a00c366a87f7f2914e1e059bd1921eef61da9cc201f016f1cdabca2d2cd99e1884c114100ec5fd0f415d6fc6222981d8e4582dd138d71a368bd5590645359cf767146f2cf5f7a58e0e1becadcb1da0c87fd385c4ad15e02836d866025d0d815af61b564e803f0f0bda9a1ad0a3b86dd9a79b29792a713c78f00c55668aa2a0962b4a9be8bd9cb6966a054f0ac39182ca4d54fffe197891b964933aa8d60a87ab0af08c139a8e79b7a5773cf189caa615f64b973eb273edefb27be439ddff2a1fdba7f2cc3c65dfb0d0cb177b7ac49ad1b4da0725a3f3a2741fb2c82347dac329657c9bbaeaa948102295c1828b01c22ae45cb0e0b46a68837ca5c8639ab483eec5b4dc9caf028a7bee18accc402ec6aa57a93a1c53a145e923194341bde96296857890fa616d1bca0cadbbba3e4302e55286c58a283ca8d1626515e6a84881aa692c662a3567cc294a23059392887ce7a835f8b8030f5c1060518c71e0c5621812d54d50043b73182fa67de92768c63c4a2c562ac151342fab8fc9181be82301404792a94258b98411ed093a9121699ea13fc822bb5a317b55c1167ac12bd8c3ccd9bc743a634ed6a0961e13ad91a779a242dd0b9b4b41a5da11cbea085032ee2382c4b8ce088524075cdfe7b7c06cb6f2ae128f4f7a6c5d58011b42b8cd39a8a0aaaba14a0ea8c9a72f322693410cac54c3ee5487d726acde02f9cd0b027844ea1c018e2744571c3a2c36b4e0da088f09ab939152e30696cfd3473a085be3eccb53eb406b66c95ef8b1cfcfa1df8c8238b8c129abc9176e0864415852cc8ce13970fe8a76ecfe246800997c56668af974605e748e3054700d7b75fa182278309e41cbe5b4a17696c843fb4ad72471bac747faf30c99d2433665433ef29b64870ae8a3593845ac211ca4af0e5aeb9b8afa5b4419559502e834f993543353835596985e31529c1482d0fcb9c11a1c79a704db1d531bd0774f91b6810b98766a83387387c0682584c94793fa771ab8b4216455f7a117c65e5a481e01b5bd8bd0a9263635815f3c13c7c6740d2d1778ab47d56c9a37ed4a660249b8a4a02cbd716f6a09a646456c4b54cad68c86f8b998855379560692cfa68b5176309162a7a506b28e042c25850a7e6357ebcce387146b94a09fa82ad2cda8123477f926757d552929ea72e379a9bb997bab0d1aeb5f02568e7715d959168129cd58048ab1299eec754b9080e7337084ddc37c4695b75488effdc370edb65655231ef1091d762b8ec53a3283b3f7bb5114429c788a2cbdce1c0454466882448990d0c963c4dc08e6955a7aa5238a6347a0d168a1ab143347ab4 +private_key: e7831320d38dd5629ccd557808a8b263730777d379caa64e1da51cd8c2baf8ab930118770cca3dbc11825c867af4421c87541c5a6788bb93b560948dc8555c8caa6597441e1a6313ac5a8ecc6a0acc25cdabb2c59b49352cc589f13269ca38094d2a2029b070e989b0a2d15332ba43657b23f278b1a253c4250b2210b0905b4737f678a83da40ca296bab3461b58c1274ba0ce79e5562723242ac1cd86839e32e4302e84b42bd118fc4415b71c92e149cdaaf06dd12837a5c03aa41b60178c1518130ac4c7017d78c5afd922e83ac2bcc3c3d94b6d8dc8062cd54649339ec4b75c49704d2e5c86aaf48294d19e4d28c12fe45cc56898c630a252e09e6f718c36c71cf9b38d38a3a9731c4f6f02528107c745277841b29d7b93bbc4b5c860147777f79745ea2296274856915d06944582055b31741f291c66df5c4a2f09351311a6d56a8572aa6240a42be432a5e4d98cf229195ee0a72f6c67cb4a9c48a9932d36cf70164364988270503573e43e2b730d88f94d23315b6848549515104320c26e83206ad5c33ac98c922b6bc0c961ef2607aab223a4fabd82dc7670fc999263991612440d93a2e3eaa8e65961d441a8548762c84754fc4880da92aed2621876294d1c086efbbb52cd252e2f14853f6a2b7d0bc9e1f104b9703a27779733049013da1812257bb8db3857075b665c8e7622ccfa10667de3ba468808fba7b6dda902a1337af7ec59e4aabee16c8017674114dcc2a0571730c14a9d07485648228ff8528c155f6266b79b3c76a8ba2ed133401d6bc56394785089abc368b9d05b4a1165912360bf87fb6ef6f79859f8187151a31437904398c997c30092ca21c43996805245904a0d90ba8658309be2b4306266888f5564b631cb250569aec1886059352bf770e1137f5287058ba78463523c59f14d1846b7e1764aaf2210a58990fed7528bab242ee02949539469122dcff23f921b3a0746b44f64a7aaf81f99954ad88b67567c120b191abde6c7d54aab5ce7bc87960e2ee2618e24746f24c03b153dc988b0d3712c42d20e152533bcb914588a32ffbc2c44b4045f07ab79ea5627045f45b11d62d2a3bbf97e57e8c27439418be800a667bcd35435b6770b8223ace5284371f5b0d8930aa93b8a3889984b8065f408bafd0c5d5df30cd3e5911d9845c9f687980a1609198dde43a52ee970867c0addbc2114d52d91073d6c95156f7c95a40a575ee07228b22bdabb0b16729b2266b13ec29bbc70486e13612270541102baf04a96b24900af60cdaaecaa1af07459f554b53b7806a65465fa8ed5c2bf65d32410caa887a90527b82a9697738cc71a1926478bd4cbd70067a50479058bbaeac05698b1530a1774c0f45001ec718e05053da12f24115acdd76bff98094f8bcb45960e635377077b6d92150221c87b60994bd7732e24c34b55ac1fe660450af46b3397a0c1c577a30b2fe1c263544c025172164f7c5620b5658d34455757c920f229920729264a159b20658a75496c6bb48fa9090d88be51f754988ab5cc774d526a1c27361cf3ab173326886eb0053b082ee9279c27a428d6f7cbf9fbcc15ac4988d13dced43e0045167d33b0aac4c11c383ccd1025bbe1c83bf5c43ab6836328959ce979c3914510027121a00061e12d1d831efa030cddf9aba24754bf556a99f65109832ef12ca41ed9342309c24e7a09cfc93647c6cfbae5cc262764aa64ab49132da03a6e7424c56ba49bcad27affdca4b88584b74c0623224541b82419e563db5b90ab40787f8425e4b38bbc573918224c4d73149bab4dbbe350630229a612bacd4b081ca05eb95a62c50453695a65763461586c8de2934d31093297ea1384d3c2f2f811bc75c960237693652387a13f69629a3fd625351927a9658bd4125c713177959aa82ef3771c03b5bd5805b7d56f00d86fecc7aa29a7637cf3bbea377ee7b9b1f94836197a718b097f510c81594a0e11381f01584a87419f51f49c120b89514754dd85a6be48ad947b81698001f0a256f8a92d09a1a049c0376d236a19f19bcf431a90f94b028475c11807d14c5562e5747f1b8db5b072017023bab895a07415deb89cb3cb8a9115b63216bd69243186901ae32b24402b88bd18cd03b2216d24928eb82e385684bc143e0d5745892b0826f89f9fa8a931596bd912527e2c965ce3344b4621190c106f5084836006296c37949aca196c426f4783b65221b9c50827c85b7067a9872a6d9277828ea9385f9b512a8a3e897628d1aa36a5206b35fb219ae26269126b75590b2d1067419b27fa6852a3552d6ce48c9193c96a3131397166d47c53eebbb68b949a5bc3c7d585027961aab89b38f5295ce7c60d3d9009508769ee37a48de0685b9228d998b883d871985108b49c908390cb68147e8bc561df29cde02b1ed5236ed77b23b3f32e687b859dd63439890d8735640f5c073bc05cda79603cfb37fc5ccd28e98b4eb169271408a1cba57d21afb87c97e2044766b38280b6911b95725d5a77327764832603fe771aed89baa1c8b2ff49b741081884c6326fa0693fe64551402301a0552f49035a262e9d047d8a2075fdf6636c726f8b6098fb2b8f01c89e87478dc1112c37f1b857fb13cec53673e297b8aa9612d26a4cd0c6168c9dea407133acb939d06a7c660581a877f046b9b1138f6fa6156be2a5bfb23d04954fe32b1272d73e39c79094864cc9e36e46e9c8f1db330c17a0ecbb332e385769c4c0ace7c0b0d49fb89503cbc13ff3a1b19f421b80855fcb947cb651ccc0a7b55b5100c09aab9201c4ff8c56a2d90bac255a3665a731d07b8ad829f7a7b556ac12acbc1073a40b7c36059edccd97a50c493359c8ba390e3716921a69998b9b111c4dd283456f7b61ccf97c1dbc362e2760e2928227405e449c126d7526516298f6315302288043085808195ea587118d731543f09479a2adb96884b3a620d4c86123818cf848b295eb0035211bf614b077871db1d8c779d61e90257730e47bba178ac5e28b8e47794517727e4049dc759ed5a69cf7c66de05c0a5a00c366a87f7f2914e1e059bd1921eef61da9cc201f016f1cdabca2d2cd99e1884c114100ec5fd0f415d6fc6222981d8e4582dd138d71a368bd5590645359cf767146f2cf5f7a58e0e1becadcb1da0c87fd385c4ad15e02836d866025d0d815af61b564e803f0f0bda9a1ad0a3b86dd9a79b29792a713c78f00c55668aa2a0962b4a9be8bd9cb6966a054f0ac39182ca4d54fffe197891b964933aa8d60a87ab0af08c139a8e79b7a5773cf189caa615f64b973eb273edefb27be439ddff2a1fdba7f2cc3c65dfb0d0cb177b7ac49ad1b4da0725a3f3a2741fb2c82347dac329657c9bbaeaa948102295c1828b01c22ae45cb0e0b46a68837ca5c8639ab483eec5b4dc9caf028a7bee18accc402ec6aa57a93a1c53a145e923194341bde96296857890fa616d1bca0cadbbba3e4302e55286c58a283ca8d1626515e6a84881aa692c662a3567cc294a23059392887ce7a835f8b8030f5c1060518c71e0c5621812d54d50043b73182fa67de92768c63c4a2c562ac151342fab8fc9181be82301404792a94258b98411ed093a9121699ea13fc822bb5a317b55c1167ac12bd8c3ccd9bc743a634ed6a0961e13ad91a779a242dd0b9b4b41a5da11cbea085032ee2382c4b8ce088524075cdfe7b7c06cb6f2ae128f4f7a6c5d58011b42b8cd39a8a0aaaba14a0ea8c9a72f322693410cac54c3ee5487d726acde02f9cd0b027844ea1c018e2744571c3a2c36b4e0da088f09ab939152e30696cfd3473a085be3eccb53eb406b66c95ef8b1cfcfa1df8c8238b8c129abc9176e0864415852cc8ce13970fe8a76ecfe246800997c56668af974605e748e3054700d7b75fa182278309e41cbe5b4a17696c843fb4ad72471bac747faf30c99d2433665433ef29b64870ae8a3593845ac211ca4af0e5aeb9b8afa5b4419559502e834f993543353835596985e31529c1482d0fcb9c11a1c79a704db1d531bd0774f91b6810b98766a83387387c0682584c94793fa771ab8b4216455f7a117c65e5a481e01b5bd8bd0a9263635815f3c13c7c6740d2d1778ab47d56c9a37ed4a660249b8a4a02cbd716f6a09a646456c4b54cad68c86f8b998855379560692cfa68b5176309162a7a506b28e042c25850a7e6357ebcce387146b94a09fa82ad2cda8123477f926757d552929ea72e379a9bb997bab0d1aeb5f02568e7715d959168129cd58048ab1299eec754b9080e7337084ddc37c4695b75488effdc370edb65655231ef1091d762b8ec53a3283b3f7bb5114429c788a2cbdce1c0454466882448990d0c963c4dc08e6955a7aa5238a6347a0d168a1ab143347ab4c4e4ad5295a60c2d41e0b7a7bc92148855ebedb4f2b77da0c706a1bafd6429d55fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df + +# Official test vector 81, seed: "e3c41cca6f04cfe7732fd54de30cc5caac93e2f80e76aed7d24a962a3969c1b6a311459a3ec3e510e3e9b1e4291d4d7d" +seed: 0e3b30e102d707538c2671060f603bb0b8a014103f132d63b09ece07e4a4c75b11eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c +public_key: d7e9bfebe65e89997ce4e680ce385c8eeb2862175fbdc9b25dc7724f641ca14b1675e13465d634915593a228c35432b316d295dcfcac909b9aaeba2e93f6028be9045610ba38c763c08308a1d6b9b8667b500c649b94cfa703432f8695377462ec6159313a184f7349be26512759a112223af1b12127f5566da94c8bb19765849f9e849a4f235c9df3783627b3e548242fe2cf506ac1fd09cd5067422789ca6bd3ceb0e516a2e88d0406abe03b65b0f064d7600ddc227ca460cc784652fc1168e8ea53f825851a222eab10bb9c8598e6930a2abb627ec5640d4a3c6eeb225561ae19f20eb6d0536ceb93145c7616fcb46c04b2076b9d8a4013a4bc527848a8972b0b6577c50f63194e6357bb2084fae54c592577d6c7a61b79475fe1c43e70980762132806a7d25482ec2a0e19778aec2685ac19490c303cbee96e2992b836305b58270553d07184507b12c06510437b5c78b3f5cb1b57627da57611dd3361772a213e033dd5519666d18bccb13b3f751901d601ae131ff3c061af87839692967cb88199f1770ad0ae196388ed6b9746fc6e536443afe04a3b92352acc4ea04173d00ab9e3eb9c1cc137b2d6b14fe36dff9591b5300853a349dc23799d8209e811965ac84090f34d36382020ba31531a0dc909b9ed725ef6120929228f48a94a5e04d03314993fc8b306572a4d5a7063110c051011c1b09ee2d09315196f09192c329565cc5a64405c3acdc234acbc0a78e81b3c9523c43a2fb961873eb207464a302d8349ab50167ca33cde091be57801b6e850dda6c5baf498ce1897b247bc7e1a84c6b141fb00286fe864a9f27db6475ed24371cf0c19586750cf72ac1cab46ce08860090a0c1322aba42cd902b6c05f4c4bab667b54b0d5a04332335731544675f80a2ade66dbc075d7a9b4ed924417677b6e195b902842fbd4390597c28a1504e161175d259ae7c44333e742471b58756c0666900cb94d87f73043e940a5733f89ae3e8cf037b83a51b4768a19dd1a96729216c7e317bcbf60b3b07cd82784d964754a440ce297b40e3f8811834885ae76a9605a249958f02d9bf2ef0a195d3603261560593a636b15dddc681ab9bb19ab7ae95d32ea474388d81585e49b463b47033f81964481f46c229f751a930f6a632e8aba8981cca880511164b8f09a8bd9ab8c07bc8a28636d0d32bed77b2cd032b18090928f01e192943e028af329b4b812238a3362b5e2a61cd7b3691d06148703d692080a6c755c560490cd5b47606ac9cd9bdb927b6e3b26d9060921757a0f85a2f82b618bba9008b7073f24a88fdfa922eacbd6631c32157b36150be06d3ce2c4b64410543ccf280143c1de73917b816c86b1a04204a8f3fd7cadbd20b41831c8229788aba219ba59af78388c2b9865eb3000089c6c05c850e91021a5328149cb2a1a27e075a3ec8630d8f515cb77903fb5531f6e05ce984296669b0bfe8af8ae59438b834d4110ba0606ee426799c313233ca9487ea35071871420c6825889c07da0f87f1188d75650e36ad21a265d4b44c01361c0653b55f409ff3c290d2c2c212319297d5aef2bb87164b7535b7518ca14469fabee91c81384025f6914c19018a0775598ad4bbada98e06c87c9af309c73903ae1b84fa9a3c3f668042883a8195cea1fa5bdca59c203178eeb18041aa2e9af770d180be044bab1c8c36044a70e50281540501ad6b165c021e53b86a5f368728e2aeed1520a09a48c1ea0e9419b313d7c6a9e59f17121c8ad47410abb73e008c1ecc16c32b4a46f39712648cd06196ceb8a076f5c7048a3aad37393973b8679c55393137e6b6ba2dea4d50f65e1ef12116598de49260112055f4b0acda503395e242b990398943c18c01cdca993b3c9a74e19ac6768581ccc9a0331c005ce873b241b3e5e497493ab134e18569e80a6d12a04616911f9072fae6a30e529cea1bbdbaecc7cc64a7d655a730335e8a22b4f4250e2c54976c69a161694aba04456bc14e2bf8c13b1ba2a5ac1a6b557bb061805c903d1d1aa3367922fe0c51dbc35da6cc8593b8b3cdf741220126eea9cc5b9c0632f75c7aa3aad60a46afca4a6d166f2b2ac858c2a572e4cdc2d65bca199cd73367b83909fb324855c4899d920a32b3107ec56789d63c25036c35d30be5d28d54d725f1eb3f924bb991cc4c5ec2e36585c0133b82099b8234cb459a9fd8aca37c4249a3b020 +private_key: 27cb06cadca3f6235b6b59c5a5e7499e95130ab431fc7c4744d1ad414393f5acbd04d15b23c8867dd88ae7cccff7a03122b44de4a4beccc2251744c517f116b413a18d614d5bc371df9534eb76b5fcb13485e60304f02425e37a653c76e08072ae9527e449783cfa72fae68c27e4abcd59ab364b49e6045d764581a9738e3f6443229196478ca629b28dfa519400149a1433b716564dc0959956c87e67e8179b46b1b1b4b9b60a52641971fb91372e6550af2c4e1be88e534108c059217b4071493807e3986d182cbe451047fa4021e264ccdfd89c5458085832c7e157676a649e4533a91904ab61e875ba8180d8639c82522a211787b4a490fcd587d93a7ce8e08dd0094fdff708bf23c35e1b904ea56ce14a9bc5272ab935a69e36cbb15ac1aea1865b7710aa747570704627aa79a1075d8adc4d008d45926b8b55dc12624b6e66f4ce3502150aa0bfc6125430550d595b6627f9ad22243a12aa70b5597708509f9dd09f5ad23a4a876fb251a46f013f05b1884aab725ff1786a4892542c2c0b23150bd6cc3b25427f4b76365193d008a074715b06e713a4e71e3819776b078390b8042d312715b28f1d44a4d540abfdb9a2b3b7660a7101b31030dabb52a05b7f81a488a5e306156a268fd7396d4394a43534d9c4beb2f91686014ee0d7c103733fda120b62ba668f0955db0c596355091002b4af9929384075d6575938468f95571397f8a2f227b57c8599eac2586b72902c698800c78f4b1b99b7284aac542fee229f32a25312f85469f9bf8b81aac6440d4dd26d38c001f2d625d21577d0ca557016405de603b7f26dc7199b300b120a0c278a1475b266354bdb961f5a54a4e0cd70a05e23d7a59debb4134111906a9f6f5b66704026cf033b98c617fc528b104060b8673083490d6c238ed1c943a217533475b5e7c00c871c81292516763b3936d3b99c680695139e6534335bf499aa6abbe10acaa5a2a75f659baaa1a743d228934a129beb65158a04b52c999612c6a8e602afd532139006f386ad51a618702769ece33229187e0f647027420418d560329abb658aaff3a358c5577115f437f59c06d503b154f380c4512d66364c0ce20b5f0a7563626d9f2620f09208adb71b3d91c94a10c4ec29aaf892b8d0991e7f699bddda9c2cd8b96de4661674b400f780fb60921008ccdc911ce6e29a771cb308e86415f4b641d33bbe0746fca69e2a00015f9932af23772abc68abdc5ddae66e84e3826e3cba0a7234df3868fbaa8b2afc0cac953be2271ca2da5cc674569db62a2bc5c5447966a0553eb3a258dfa05ad763850c0ab1724a01f2e2b4a2f3640398bd0b8bbe8af79adc3ccdebf775f2a545a7e8a8685ca73d4c5bf0d788d6a21fef02c241b34f80752f8860249966ada889927582c0f60642b042b95eda965c8873fe8191967b3acc13457e0708316096cb50b856c35a7c19ac64a85a03f9b81e9a756046b901dc9491947c077a05e5d9986cfc3dcba09d02055cae5a47a6969652b056035453c97571138561e28b3b0d0160da428c9104810ca69c75d15ce66b126a27b96654c6e2a0a463d1cd4775458964be2e5a3bec582e38b64c8bb68776c15bc2919d5e99259a68c5c8e42c37b2b4a6b0351c18a09d2378f04403a04aaa7a6ba6589b63061b0eeb80442ada851bcbb5afa1be84d688b3050647530fcac5af0f8b275f036ab0d354991265fd1190d7f5468fc3578e15723214aba66b855b0b5ba2fb27c8b1b7dd37790a8c77120a6c18797b5a920450f87144872d83e8afec5a72df7a61b50655f5081389225235389bf15444c90c1b332b5395796a185b1f9d816ac1b69fd1457e1ce4b1d7071e1956ae9282645b8458cbb8c3f5711e3064a4d05488104848a846aff4c01445241db51b81549ab00230621c8c699fb13c94679f7f51879bc2676973c7418b6d14d9963426819768631abba1db070321a32c0edc95b35c206272946ff134afa2093efc76b28927a948bc4f1931e1a2cbcce18ce9c93c8b029b13291234e76b00452bb3f7860ed98ca0fa2a01a16735272b09c4c0a0b08904f5654911a937f9237818926c03cdb0a98b167b6434a96fe74796ac233716625927535581516ec3217382e61710991003e81f2e0b8d139821f3bc631edcae24cc4583a8abd7e9bfebe65e89997ce4e680ce385c8eeb2862175fbdc9b25dc7724f641ca14b1675e13465d634915593a228c35432b316d295dcfcac909b9aaeba2e93f6028be9045610ba38c763c08308a1d6b9b8667b500c649b94cfa703432f8695377462ec6159313a184f7349be26512759a112223af1b12127f5566da94c8bb19765849f9e849a4f235c9df3783627b3e548242fe2cf506ac1fd09cd5067422789ca6bd3ceb0e516a2e88d0406abe03b65b0f064d7600ddc227ca460cc784652fc1168e8ea53f825851a222eab10bb9c8598e6930a2abb627ec5640d4a3c6eeb225561ae19f20eb6d0536ceb93145c7616fcb46c04b2076b9d8a4013a4bc527848a8972b0b6577c50f63194e6357bb2084fae54c592577d6c7a61b79475fe1c43e70980762132806a7d25482ec2a0e19778aec2685ac19490c303cbee96e2992b836305b58270553d07184507b12c06510437b5c78b3f5cb1b57627da57611dd3361772a213e033dd5519666d18bccb13b3f751901d601ae131ff3c061af87839692967cb88199f1770ad0ae196388ed6b9746fc6e536443afe04a3b92352acc4ea04173d00ab9e3eb9c1cc137b2d6b14fe36dff9591b5300853a349dc23799d8209e811965ac84090f34d36382020ba31531a0dc909b9ed725ef6120929228f48a94a5e04d03314993fc8b306572a4d5a7063110c051011c1b09ee2d09315196f09192c329565cc5a64405c3acdc234acbc0a78e81b3c9523c43a2fb961873eb207464a302d8349ab50167ca33cde091be57801b6e850dda6c5baf498ce1897b247bc7e1a84c6b141fb00286fe864a9f27db6475ed24371cf0c19586750cf72ac1cab46ce08860090a0c1322aba42cd902b6c05f4c4bab667b54b0d5a04332335731544675f80a2ade66dbc075d7a9b4ed924417677b6e195b902842fbd4390597c28a1504e161175d259ae7c44333e742471b58756c0666900cb94d87f73043e940a5733f89ae3e8cf037b83a51b4768a19dd1a96729216c7e317bcbf60b3b07cd82784d964754a440ce297b40e3f8811834885ae76a9605a249958f02d9bf2ef0a195d3603261560593a636b15dddc681ab9bb19ab7ae95d32ea474388d81585e49b463b47033f81964481f46c229f751a930f6a632e8aba8981cca880511164b8f09a8bd9ab8c07bc8a28636d0d32bed77b2cd032b18090928f01e192943e028af329b4b812238a3362b5e2a61cd7b3691d06148703d692080a6c755c560490cd5b47606ac9cd9bdb927b6e3b26d9060921757a0f85a2f82b618bba9008b7073f24a88fdfa922eacbd6631c32157b36150be06d3ce2c4b64410543ccf280143c1de73917b816c86b1a04204a8f3fd7cadbd20b41831c8229788aba219ba59af78388c2b9865eb3000089c6c05c850e91021a5328149cb2a1a27e075a3ec8630d8f515cb77903fb5531f6e05ce984296669b0bfe8af8ae59438b834d4110ba0606ee426799c313233ca9487ea35071871420c6825889c07da0f87f1188d75650e36ad21a265d4b44c01361c0653b55f409ff3c290d2c2c212319297d5aef2bb87164b7535b7518ca14469fabee91c81384025f6914c19018a0775598ad4bbada98e06c87c9af309c73903ae1b84fa9a3c3f668042883a8195cea1fa5bdca59c203178eeb18041aa2e9af770d180be044bab1c8c36044a70e50281540501ad6b165c021e53b86a5f368728e2aeed1520a09a48c1ea0e9419b313d7c6a9e59f17121c8ad47410abb73e008c1ecc16c32b4a46f39712648cd06196ceb8a076f5c7048a3aad37393973b8679c55393137e6b6ba2dea4d50f65e1ef12116598de49260112055f4b0acda503395e242b990398943c18c01cdca993b3c9a74e19ac6768581ccc9a0331c005ce873b241b3e5e497493ab134e18569e80a6d12a04616911f9072fae6a30e529cea1bbdbaecc7cc64a7d655a730335e8a22b4f4250e2c54976c69a161694aba04456bc14e2bf8c13b1ba2a5ac1a6b557bb061805c903d1d1aa3367922fe0c51dbc35da6cc8593b8b3cdf741220126eea9cc5b9c0632f75c7aa3aad60a46afca4a6d166f2b2ac858c2a572e4cdc2d65bca199cd73367b83909fb324855c4899d920a32b3107ec56789d63c25036c35d30be5d28d54d725f1eb3f924bb991cc4c5ec2e36585c0133b82099b8234cb459a9fd8aca37c4249a3b02025a466c0b64a911e75243db16841847a8ac72dd835486e96a168b2f9fec46f3011eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c + +# Official test vector 82, seed: "373fdde922cfc416ed96b444e445bdd0962e8989f6c50adf9912a89937c57217d3600b06c95440448e3f601ae69ca5be" +seed: 2478f7d3de6041e7e5cd11c5e2ef483d1aa6218eb126444091535f6ae532fa7311136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 +public_key: 27c546b8f148cfc133aa807fd7c233c7b5a5c3f6b8da210ef7dc5c1a834fd1559cb2439406895223991a4e682554c63ac3a117d840aa4848b1b3864edac960c656046e3bc6d3b681e1e6b49bb0259f1aa2a4329b2598b932e26c00fdae2cf4686803ca7af8bf0f1243e64544d51794583349f9854dae778894438805793b085373d09a185cda5489d74274eb7bfee433b63a56e14b95941440924cad32935440b46235a8576d11b8d65a2e8198b64b510fc1f942bd9b0f8e077fe33c559cd987615263e9b66c38c5683893c3e10965f18aa755e1bea6d1789913cf2cb21b41b23c4eecab25798ad13a26321c59e35b0517a78743c4469a4435970bbc2b9c15498b1f17cb0fccb446f67c2f437415abe98cdeb3346413539961b3dfc1c40e243296695f27152b7f7a32ff4b185ea437b275c6f617523ada8f7d2a594e277b9318019abc0051aa399642cc0a478ac7466e0729848a516c9e86bc8ad85be985b395e3b28ad89f71e3b584d857bbc1915a47a2fdaab586b7916d9a87a56235db0c683b9bbd5f000e6a218e54464043ea1e882bb906c917cd4449fdd5acadf5b017983c87b4a8b0fc9ded7a1e2e7ba359240009b06701b5cb29fa3b9250715ea31bd8784dd1d91d26764f32b9a49f934c8cf61b4d4a8f36f81d3ee33023959427d889e4a3c796d284a1fb0895184ba4351034a0280f34af119004e9b06fb1e69050fa2db039a9abc6ab00484b9a2694980197b69b9730da0b8455bf591b2eb4f9cef37a06e7c107bd56c3f7ab10ebdbc60de87bdc8c22f62c2e4db973140c5fff95631839264aabac5dd4873e44b8b2f7106c083dfff8b6403322f467a91e52cdd359293540a45134b97a39aefb6252c9c928adcb231eac0d790422a9e3bda366762e2514758badb2a2114a9ac924553d42e05d3769350e4ca047d4219f1b6fa953b60cc67b07a71dda85649af0076ec5c55ef46e73ab06613a84b2422c1bf039564a6873a9385fb18c4ab92ca7a1b205e8ad57728ccaa10b13268ca519c2a0da39be15918bc724f7760e826ab9d47cc288918b60aa87e037a60809b230562ce18c1d76bc457107c8bf80574a2cbd0f945c59d4371af14737983fc089a425d1ae74993451055ec21435a8114060baa6d774bb6ca82efec1a40df1877011163108a2b20190135900a98a337192088d8c66e9e774b02c6d55819dafd9bf3ca886d39165d1c4cf29b1abd6b185dee9671eb941ac598e1b0240d92ca7bfa119cca15a643ac29b30afeddba1acacca8b83a123102ff20b1bb94ccc16fbaefaea4fbaa36f3d46b7f5706a7ef60e04125228900261271c9ab11b04971ca5315e6f3c9eac795687da91eec532476bc66b2ba7a5650eeee119ea13c91bd94b19c31fdbd80842d25dbff62f928550b1f6183ab64443e6b0d9653c5379158af74a6436ce3a1150ea31367aacc7558c201124573235a5997773064a621869707ac661a29238421c9ce88cc38e733c75539443613d8d81c60da70e46035b343577a1660e08a67849558901d539ed84cadaecce4da36c4b9940e106011b872d1b9748cb08c2e3db4880638767bb67c74311021b6c46698a21aba391c65b9aab238d93a4ba80be911c3ba8319bc866cac3e67fee11b773ebbbb8639891809d555258dc9445fcd815af355ce2cb38552c5be069b6c7d0ba83f8495f1230f50bb57a8c4d82ea8912608cef0ca6cfe408052b736d9c6fbca2ca08e76300d150dba48080421c5a6b13f74b8f705b4eccf9c1a336a0e7a47263d30b5d1675df4a2abec7522868ba4c6139a8d22c23608c40a8bb5e8c65661b94e008ba442b9dd9883e8953029d7c4e7b46206880b48214a84cea0b34560f29054756f427d185241d946efbda04956a3972f974be20be202314d9c58dfa3543acf894d65b6f22047032e408636440024452f6c2cbb5d698730907c3271774da95b09421e499b17f670caf8585e2330394302aac52b0c1d2b2ad16656cb79257b143f555757b989c79a49730354e42299f28a166ece2a03e1a6dea08b01b9323d9958d9e320f3055c9500625b731bef77c3f30fb2960974815243f7edba28b64a58bf5afebd76b53675dbfa62b05b89f85f945c00b3de4f8ad2507121bab1a86224a9db9afe8c26513219ccc9b19156268d159097ad048f7fc245fcb93edce592a8d415d4a38502632973ed98b6f97f986dbff7e +private_key: 0be83a886381009553ee02aa62b113ea829ae09b3cf11b62d21091f1115cf548388e71abb52315ca69a4d1d601a192a4e7b494b1d3127630cec313c15c9cbc91693375a1776b51a08b56b31f38783af9c052b34b7c0cbaa4eac4618aca24dbc843322fbc666f07272a587c5c54b778aa446b349b88f2416557aa2bb9e3bc74979f3cd287645435d2ab30abf0b6e094446e95536dfb0cbafaa2e87706738b192ef721edb12d6d9a3dc366214e9752a4e8b0ac3ca5a69944ff0aa86eeaab62ca34b8fc7d74bc6eaec56612267724a038a47982fd6ab6cc726ea0e096529476329843ebe484fb7263b4e97fc2f68eb89a65ab8750ce193d9f3176bd876b69f9a826a64dac2186af796eed9469aa79660c295121367906478940099e51bc36ab67a72558425e153821ec43a560558d59b136255f655c161d729d7c21ca29a70b7bfb1b5ba66c0922947dca55d854863203064b52896e3a412a9a5afef93fda7601adc46fdc3a1d25660df46437debccbcfdc78a0d90234f0073b496d5b586a9f8b36988b33ec82c8782ab744b3355fc934544b656ed93eaa36734cb40217d680ea85476fa98d3a50c86b4a2589e85249b9a7ad01aa4afa2df396c5fda43753501bb2b614acb5bc715a113c382b6667457bc30e79e58b41b7511e011965820f2fd6c5280caa7a35c13eba57654501d6c326eda25b7a96ad0236c663d70f9b46cc798cb2a4d335f6c68181c49d669946673741285626b078401928c466c1c51922c4a62553141a86e4082f661198b07539a47283aea18c0cda348375201473a8d3f211b1770ac0dab8252468303b909d078524f10bc3d4958f7037f830b96c64c7f3a89586e3254ac823f8a4911a878c9394006429152b7260bccc60d4604d1226a87cf434e39158db5557c887207f1aa4bc9b3fbe8721dd4c96e294c2b581c78ab3997e740a86707888b6929db848ee38bfb6411110d1b5dca49dc4109f62762126d9a7d2e46400755513eca554665556d3ad2c047f011076e4fab77579c3f9f515500c7ec9747ee5b56f840994d2eb91d13c523cbcb506f011e250c23ce4243795b4e83a8f4f32308007610e23c64f38aab3aa9ac0c303edc77442a2a29ba6bfb46343e32c549d043371ab941c5982feaa30334531f61877e1515449690dc4c6a94de7cb3739c43a53a89f41ac39f0ab90622d41b48f69567c9ba5c128041426cc367ab02ec5c3b082936ded118a50c7933de5a5fb51a07f04ae11012123857bcef60e5e70a51e109382d17fb1d461a157c6b10b7eee63af1bf40626a61c2f94af7c93041676705fec9db5670777a462de3659a20ca8ec41060168c06fe925cf294cd2175e7591600492018ed70cda9266a7772103fa43c48129a1235ab1348bc5b2960140a460531ace8c01e6c136d69751f623c29bc0cad760743cc04011782790115bce926202575fddb867ddea380852b2420a7555994f91525d4a5ab5291983d87abc22407325618b04a42f8f11b203a33353245f06432778c2b3e9f08e2f9234777b00493364ee48cd5c256f15d62e03a52e5d52a849d042a84239d64a08f86a7a20334c77e332d7f886620461f0c0a86292c15180903990a68ce02d4dda33f8d34cf003a4ae80a160a27edbbb300b693f01a151d1363cc247b41c66b3eae25bdc76609d2bcc5f429540543d1db01c801137a99b1df325b88225bdf5d802c84771df545f806a0fa8f85779f56319e25d262b37f952b7bc962911822ab4f98bd65c9720208f6b0953b1d62e51937997b480497cc656341b2fea7b812c3db311784c6a17790321c1cc5021543ad7d54946d71d57c2a517b1187054725e7040cc4506de0208513366c014116fa4444bc06cf5e22e50a993ddf89f19aa14937443ce2676fa817ede4928f81394cf82b9bf629f8d33b7ec0c6b3a35c6adf0ce6480bd837655c2297833a8c150d45610a011b57224ce3b5b47e8b2895c95c24745d1e44b0cf26eee771f906089c0c864dff15da9e6c53c62371de9875030c534daa8be4719fb8a1dbdd2aa12617e4dd3b9e7c40906817398a42dbe3384fc4a4cadc098647ba4c0035774aa1d9fb85cd6d9695088271431818980ad32e4c493ea358f863853e2ae8be6ba9c978fe45b379f90aadc4b59a4c92cfe8288a3073f31f21927c546b8f148cfc133aa807fd7c233c7b5a5c3f6b8da210ef7dc5c1a834fd1559cb2439406895223991a4e682554c63ac3a117d840aa4848b1b3864edac960c656046e3bc6d3b681e1e6b49bb0259f1aa2a4329b2598b932e26c00fdae2cf4686803ca7af8bf0f1243e64544d51794583349f9854dae778894438805793b085373d09a185cda5489d74274eb7bfee433b63a56e14b95941440924cad32935440b46235a8576d11b8d65a2e8198b64b510fc1f942bd9b0f8e077fe33c559cd987615263e9b66c38c5683893c3e10965f18aa755e1bea6d1789913cf2cb21b41b23c4eecab25798ad13a26321c59e35b0517a78743c4469a4435970bbc2b9c15498b1f17cb0fccb446f67c2f437415abe98cdeb3346413539961b3dfc1c40e243296695f27152b7f7a32ff4b185ea437b275c6f617523ada8f7d2a594e277b9318019abc0051aa399642cc0a478ac7466e0729848a516c9e86bc8ad85be985b395e3b28ad89f71e3b584d857bbc1915a47a2fdaab586b7916d9a87a56235db0c683b9bbd5f000e6a218e54464043ea1e882bb906c917cd4449fdd5acadf5b017983c87b4a8b0fc9ded7a1e2e7ba359240009b06701b5cb29fa3b9250715ea31bd8784dd1d91d26764f32b9a49f934c8cf61b4d4a8f36f81d3ee33023959427d889e4a3c796d284a1fb0895184ba4351034a0280f34af119004e9b06fb1e69050fa2db039a9abc6ab00484b9a2694980197b69b9730da0b8455bf591b2eb4f9cef37a06e7c107bd56c3f7ab10ebdbc60de87bdc8c22f62c2e4db973140c5fff95631839264aabac5dd4873e44b8b2f7106c083dfff8b6403322f467a91e52cdd359293540a45134b97a39aefb6252c9c928adcb231eac0d790422a9e3bda366762e2514758badb2a2114a9ac924553d42e05d3769350e4ca047d4219f1b6fa953b60cc67b07a71dda85649af0076ec5c55ef46e73ab06613a84b2422c1bf039564a6873a9385fb18c4ab92ca7a1b205e8ad57728ccaa10b13268ca519c2a0da39be15918bc724f7760e826ab9d47cc288918b60aa87e037a60809b230562ce18c1d76bc457107c8bf80574a2cbd0f945c59d4371af14737983fc089a425d1ae74993451055ec21435a8114060baa6d774bb6ca82efec1a40df1877011163108a2b20190135900a98a337192088d8c66e9e774b02c6d55819dafd9bf3ca886d39165d1c4cf29b1abd6b185dee9671eb941ac598e1b0240d92ca7bfa119cca15a643ac29b30afeddba1acacca8b83a123102ff20b1bb94ccc16fbaefaea4fbaa36f3d46b7f5706a7ef60e04125228900261271c9ab11b04971ca5315e6f3c9eac795687da91eec532476bc66b2ba7a5650eeee119ea13c91bd94b19c31fdbd80842d25dbff62f928550b1f6183ab64443e6b0d9653c5379158af74a6436ce3a1150ea31367aacc7558c201124573235a5997773064a621869707ac661a29238421c9ce88cc38e733c75539443613d8d81c60da70e46035b343577a1660e08a67849558901d539ed84cadaecce4da36c4b9940e106011b872d1b9748cb08c2e3db4880638767bb67c74311021b6c46698a21aba391c65b9aab238d93a4ba80be911c3ba8319bc866cac3e67fee11b773ebbbb8639891809d555258dc9445fcd815af355ce2cb38552c5be069b6c7d0ba83f8495f1230f50bb57a8c4d82ea8912608cef0ca6cfe408052b736d9c6fbca2ca08e76300d150dba48080421c5a6b13f74b8f705b4eccf9c1a336a0e7a47263d30b5d1675df4a2abec7522868ba4c6139a8d22c23608c40a8bb5e8c65661b94e008ba442b9dd9883e8953029d7c4e7b46206880b48214a84cea0b34560f29054756f427d185241d946efbda04956a3972f974be20be202314d9c58dfa3543acf894d65b6f22047032e408636440024452f6c2cbb5d698730907c3271774da95b09421e499b17f670caf8585e2330394302aac52b0c1d2b2ad16656cb79257b143f555757b989c79a49730354e42299f28a166ece2a03e1a6dea08b01b9323d9958d9e320f3055c9500625b731bef77c3f30fb2960974815243f7edba28b64a58bf5afebd76b53675dbfa62b05b89f85f945c00b3de4f8ad2507121bab1a86224a9db9afe8c26513219ccc9b19156268d159097ad048f7fc245fcb93edce592a8d415d4a38502632973ed98b6f97f986dbff7e53ac28332ea3f161cf5dbc077e44f725b05ff0ac4abf95f60c5713aef1bfef4d11136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 + +# Official test vector 83, seed: "16bef67f7ac3a755c59c816478b75fcc16ce5844db537791accd1ebd49d2824b105fd2e970f728c8f0cf16e439a9ae2f" +seed: 9d405d3ebdaf35fa8722de431b669722acaaea2fd10b814310b17f78b66147d16ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 +public_key: 98c5377fa74b86746684a02b2cc8694852594b62cc0dec3c240c49b1cba8235b2b7220cca57aa380ca7f6ff96688b70299a0a52e34805ada0144632ceb704b0f08a3ad9c78dea9a9f1f556bb830cb0345ab9f2503342aee2944879ac0103caa1cfb1932062a04cf473ff372d72d500574660435b756a99635a9626f9f085faa880f8c332f674a76ab0196a3326b0e88ac19547b6e8a4cce3a3a60a9590d524e61501a41262cc67a3cf036e08e947e11c33d34895a2d4b7ed348ea8329f8e8775453a65ec242ddc6b33e6374acd4064cd8c765bb3079550c05e0054dc11b4032b33c4e9371630aff59986b95b7c729402d61c7ca3bccbadba94ecb5151bc60330379e24eb3fc36358cb83c55f18789c37c541e93b3b781d42904ed910aba5f6a4168336dc351aee66761cd17617db2962547d77fa238bc415a6f441c0f50fc2cc88dcc7049fc58c3bf3a3091458278087ab81569b607c66c6b6e4f677b4e0c3b4188dc3d3741ecb585ca68a72d0b18f18739e0194448a1da0d436f2a71fd08218283c416a0a580588932fab5903c289bce9a1b53328c70bb943660ce98773ad14a51783486268c270808cddf713160068cc8c8682ba11d4a21a3408b181625bca33491522949fe6a3ae6a2f046619114a0318fc69a3d58bc048c45ed4ac3a610ad1987629b2bd66200bc0e7b083b1b26cca00f576a2d2b8ad3c5212d956a5ee0985cc4023e9a99031f3a903934f2ec24e2ca46f06a26efc2a19fd28236e9097420337ddd61bc2b7c15fe9949acc7c279708a7365ca87b72b635aea5d67541853530f66be8da1730815852cb3c62024be50288c7ab08a3a2c442307667c8bdcbd940c0a6b91ee1657be599f13722f1d21848d189b8b389741a5ec86560f1b862eb63669753558190516964c610696e9b24a955d07bf388ca0cc4bd0861b388e5a9f1c78014da35ca594f9f1b766494b7ab4377eae61bfd8cbb5e775a4e627e2dc80c17128bb5c314be217033668c29198ce8bb27bebc79b1b4c5fd81578eb32709ac6badc3cfb7c414584bc3a38ba2ca1c9eeca55db9bc295791ba22ab54f9d22cadbc83efb58e243517abd4a93a11bd083950ec71536bc49b39c53d17b8a301a17ec0b90188c800cf2400312b76fd85a26557022909866f5591eb8017440364868c459f9039ff053e6e829ac73b2aeb81c9dfa78703c7af8efc6ee88c929183351f752a47e608638c7016026a031c289b936e06f46889e827a1e0c99ec431c763ae80e72b8e8cb87c3b7b74159596a9cc5a6c67253738e6889f5259a0ec87555e975ee50c82cd44428182827faa7b81a0abcd009a05685813e3000f9623e1c4536443811c98148fab9c8941163a57b8c7377d55a994d6ca310ad58012f51f94bcc9fae366a0591adb9a7a78e78478d1076d65c8f029867d69be153cc7f7b7c3f7f6b5f1832bea256f3f9b7f1165978eca35728115a115500677c1bd232fdf7145ed07810ea4651985a3ad7b5edb37bc21e33115d4c8c8b5094419780831c65b88a7d934bef0b9a52ca4299adb84a6d9053eb4999a92c92b353d9823896d3759c3daa69879782785017747c102e7afc0a330ae96bc2e7a4e6c4b5a637b2d85ebafc4e6c4cc676f78e29e6eb5b8a4bb942a797d78cc708ad3cd2f04217f18bb3677318d3a917db689599c009d3897d95b586e899e5855253cf54974ec4f6fe8be5a4c6804c99dbcd7c3e7407fa99b90a5586e9f180aa559a81978adba7b770a4c601980ad940ccd42eb70010254848b8c4a2886a1d835abcb9097253e2fb817425525cbd37c1b8b3a2ef47e8a15147a6a441be37e7b2579e5f74641c4731ccbaee47b1f5bd744a15284239179a70a70bb8217b1371f928b275e14c83554788687ace377888321c87eb5403cf3c93cd4c9e302b63533591d96af9aa5c47353c03171caee118bd868a6fe29575f5881c5a5bc7f67a2dd5457efd71329473364d509b02914d543843cc3b36e213e27facd6f0369f165adcbb314f9c4c8930564b9f5aaf21c82860035e9f729dfd30584b8cd6735aafff819f9d244cf8bcf9ec15770903a3cfbbfaa385cb960692923b88364100ff67a2dca71154700e0594dfd66ae557ccc6ff36519a2252adba29881b7dd1283d3b621b40acdb3bc22fae51c5a64488a3993ab8fdefb1682784edd39f0fd80883fa378cde6eff656f57119177c56a9 +private_key: 974b92e8755220ba2f34234c9c59c29de41c7b9967d54334aa259f05a73e43285e4a6ab005a36528153c5599b79fb680f2d82559b68bd3a46b159c3f2e28c960d6cbf8c103aa205fdd885bcbe2c48723b789766038678d15f72ecb96afbd340d4a17ad153a8f31a1c6b0f8291f6b5a1a4979197ba6cad90c26e25f6424cd1e856c0fb5ac336a01c7e5c472c575ae15a5264263d3f82c11a8111ad7a88d536884c664c4a52d4adb85f1a3567f48cfe068c038f5c10813a99ec6c605920cd481a6d6e0ba5409a65c6168f3d5a34e3b1fffd16bc5522d7861441300c550022ef3235c85f5a1fdb6b7c4742a42351e957666a66aa918d959a4f10d24533abb63196f44426f19302b3c0651779c690ca0a108710f4a8fa001a25f6619a49768416886c5d34dc8ec3eb4a89824e04e67cbc87dcc392d64004b5386f40796c71c017e133cd7853f2955289d7a52d7388dffa436ad1363c03902b15128285341217a0832f094bc37733826c13c0886e123a490741ee0859923ec825d26aa4a3ba5c094728f83956596a14f12b4b0958fe01bca0cf557265a5b5f367917d3841e3c16b1dba445038cb95542f7276f906136e7f76c32ea23d78183acc4bbd4067e08e3379ca47c2f37a4aeb1b2c4e4023b8b241993bfce492ab7fb26950b4ac8c5bb1f7bc209957d72a2a87d0b37e0d74c08268bd81822d4272f6048997e9449579b4f972bbbdf1a2083f49996725c68693eacd63d98f3bae3fba88dac46eba99ed324c5ba3523c5398df6035dfdb82e48a49acc15b823d51d812cafa9ea7041bb1d6b848cc4c1cb0bc67ef6a7a6d9b013f3356f353b1dc5c5934fe483099300a800c82d7513d8286e64d5b87882c03cfb1c981b2613d5981f92026f46403286136fe40272841eae68c34e56363226cfaf0c7fb4a64fd094a7cb3b1b8dfc7bafc2552bf98ec7e8967b46c70e4c0eb649a8f0464612d08b69a72b5a89820f1c1fd8e19a55526f592a79dc1a475d16099ec133b21c973c90160d68cf4ed7282096265df929b43b0b265982b4a78a72317cd603c09f70b622b14c31f52f68a6572d749b60b92bcf4a7f3c539da10c8c3c3c4131ec88485225955b63fe8617703c499f9201bdb583d07cc0077347e28b0275a26cf2e600122b73d8b22bfe17cb4a48183211a4c7a83f8002004dea91bc2863b6b9086dd7a8965795392cbc188739702ca7ee84c85c867fc45431a7579dad1bcdf5162d876499b039571174c44d679a7475a156ea73c14113aa206223e90a63c8b450369a89fa59fb65ac7ec1ce8e830b84a9a330e63f7f494a32867f6a815546d100fec9482771871376ccd5aa649293c57800792275349baba6589327dd883053f59d13695c41ea73c8b832a5521bc234a73bf668c80c7665a9aa98c0560da4a6e9ccb0cd7c77ef39670a731a53a85606911b900866a8d272abf56f31dca4d15c7ad19c8d4bb31d9e545c84687fb50757f54ba51d283dafa480c2aacd8c0206877948e1b8215088ab3c0b019eb42956a00e00e875dd4594175ca709164fea4a0b3f819e4dd57ef4d2016e799e5d645e8a47267bf714c88080d7329a8f075af812b3c7acbfa0dbb477b93b789b76ce445c58b9b977a681e6b22730e35a82851f40649a3231bd7fa1a19ff859ad1b007a30413087c0b98a31c9423753f3c2feec9edcd1cd2fd7a930fc08e811cf49762d792513719b370b7c809de37bbd53879b533fed6295e3318a03cc94c1f81ccb563afbb72bf6643c9a80c333134c8734360dfb4f001b27f58b625cc50e20acabf7e1165d0a22bd96ac403440eb802e5fda4d0653491979b331f0ce326a8365281b18ec83bd33319bb7149c192ebe202c6e2c2ad69313c12bc1c0b56599b90bef70a8e70b60b72570bb49c207524850e8a7b549bc07b660e5d26ea8d94a5d1a59a9c8ab17196000c97f48e2b3f060c8b2236f6cc60f6ee09d019cc631809c91da3ecb2544ca4237f37a20c2a82397e3be1f0cb7af6c693b994c8b811537e9007ce088f0fa4c02203b9e08388b186e3be11093e218c8c3763e9810c9760e26d6c90c6400c349cf22069b86dca993f36a303436166bbac8db1cb9e2a37c155f0f678dab52abeeca048b1813d63b42b2a986ae296e3f027854393dcf47004942ce611b9a82a54098c5377fa74b86746684a02b2cc8694852594b62cc0dec3c240c49b1cba8235b2b7220cca57aa380ca7f6ff96688b70299a0a52e34805ada0144632ceb704b0f08a3ad9c78dea9a9f1f556bb830cb0345ab9f2503342aee2944879ac0103caa1cfb1932062a04cf473ff372d72d500574660435b756a99635a9626f9f085faa880f8c332f674a76ab0196a3326b0e88ac19547b6e8a4cce3a3a60a9590d524e61501a41262cc67a3cf036e08e947e11c33d34895a2d4b7ed348ea8329f8e8775453a65ec242ddc6b33e6374acd4064cd8c765bb3079550c05e0054dc11b4032b33c4e9371630aff59986b95b7c729402d61c7ca3bccbadba94ecb5151bc60330379e24eb3fc36358cb83c55f18789c37c541e93b3b781d42904ed910aba5f6a4168336dc351aee66761cd17617db2962547d77fa238bc415a6f441c0f50fc2cc88dcc7049fc58c3bf3a3091458278087ab81569b607c66c6b6e4f677b4e0c3b4188dc3d3741ecb585ca68a72d0b18f18739e0194448a1da0d436f2a71fd08218283c416a0a580588932fab5903c289bce9a1b53328c70bb943660ce98773ad14a51783486268c270808cddf713160068cc8c8682ba11d4a21a3408b181625bca33491522949fe6a3ae6a2f046619114a0318fc69a3d58bc048c45ed4ac3a610ad1987629b2bd66200bc0e7b083b1b26cca00f576a2d2b8ad3c5212d956a5ee0985cc4023e9a99031f3a903934f2ec24e2ca46f06a26efc2a19fd28236e9097420337ddd61bc2b7c15fe9949acc7c279708a7365ca87b72b635aea5d67541853530f66be8da1730815852cb3c62024be50288c7ab08a3a2c442307667c8bdcbd940c0a6b91ee1657be599f13722f1d21848d189b8b389741a5ec86560f1b862eb63669753558190516964c610696e9b24a955d07bf388ca0cc4bd0861b388e5a9f1c78014da35ca594f9f1b766494b7ab4377eae61bfd8cbb5e775a4e627e2dc80c17128bb5c314be217033668c29198ce8bb27bebc79b1b4c5fd81578eb32709ac6badc3cfb7c414584bc3a38ba2ca1c9eeca55db9bc295791ba22ab54f9d22cadbc83efb58e243517abd4a93a11bd083950ec71536bc49b39c53d17b8a301a17ec0b90188c800cf2400312b76fd85a26557022909866f5591eb8017440364868c459f9039ff053e6e829ac73b2aeb81c9dfa78703c7af8efc6ee88c929183351f752a47e608638c7016026a031c289b936e06f46889e827a1e0c99ec431c763ae80e72b8e8cb87c3b7b74159596a9cc5a6c67253738e6889f5259a0ec87555e975ee50c82cd44428182827faa7b81a0abcd009a05685813e3000f9623e1c4536443811c98148fab9c8941163a57b8c7377d55a994d6ca310ad58012f51f94bcc9fae366a0591adb9a7a78e78478d1076d65c8f029867d69be153cc7f7b7c3f7f6b5f1832bea256f3f9b7f1165978eca35728115a115500677c1bd232fdf7145ed07810ea4651985a3ad7b5edb37bc21e33115d4c8c8b5094419780831c65b88a7d934bef0b9a52ca4299adb84a6d9053eb4999a92c92b353d9823896d3759c3daa69879782785017747c102e7afc0a330ae96bc2e7a4e6c4b5a637b2d85ebafc4e6c4cc676f78e29e6eb5b8a4bb942a797d78cc708ad3cd2f04217f18bb3677318d3a917db689599c009d3897d95b586e899e5855253cf54974ec4f6fe8be5a4c6804c99dbcd7c3e7407fa99b90a5586e9f180aa559a81978adba7b770a4c601980ad940ccd42eb70010254848b8c4a2886a1d835abcb9097253e2fb817425525cbd37c1b8b3a2ef47e8a15147a6a441be37e7b2579e5f74641c4731ccbaee47b1f5bd744a15284239179a70a70bb8217b1371f928b275e14c83554788687ace377888321c87eb5403cf3c93cd4c9e302b63533591d96af9aa5c47353c03171caee118bd868a6fe29575f5881c5a5bc7f67a2dd5457efd71329473364d509b02914d543843cc3b36e213e27facd6f0369f165adcbb314f9c4c8930564b9f5aaf21c82860035e9f729dfd30584b8cd6735aafff819f9d244cf8bcf9ec15770903a3cfbbfaa385cb960692923b88364100ff67a2dca71154700e0594dfd66ae557ccc6ff36519a2252adba29881b7dd1283d3b621b40acdb3bc22fae51c5a64488a3993ab8fdefb1682784edd39f0fd80883fa378cde6eff656f57119177c56a90b6cae64de81b6f1395296905389da76ca7c5435e1c4b2d93cc5c303d31bc0536ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 + +# Official test vector 84, seed: "d0611f9ae5be4da5d7eadc9109944348e716cb3daee545721eea8c892e7831cf2e54603146454cbfd92387739e9a78d8" +seed: 9a86490f0615f3edf789cb0654066e9ee339cc59f968281f3b89213f83c692edfaeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 +public_key: e5bc009432c97a66bea57133df41cd6d6095a69192226c8a1c6a0416dc13bcd39cee2867e991102ab5c7ee37ab23d33e113b3e7766b7c652cd0fe03fdcf38653149139b532ac46b7e80229c2576c44834080b75d9f2490d79a23e6d6cba707458c90c7bb758e3c7049d5868b32e2c50441b280bb1fe7528924181051a9b35c6ac779645e6554b5deb21959754f3a47454837b9512820d04722a884b10e01b5acec05aecc2a778091bdab81f0091ed67a7c7d062085866df21734959206733257294a4c82a7295a739638141aa3821c764891fdbb64dbc6aebb67a8c82caf86f7248afbbce556055405ada63ac9f6423de12447d89746fea494662a69a021733592a0fed82749e73d4c2c9d192c994a535f126700a6c4cee988945353c9e9d2240828bb674bc98f22a298fb6750da5ee76345ee1b2dfda01862d2116e6607d3c251ade46ef82974ebd2a14502684be1cc3eea46cf3c2b3c4c14178a79fb495a44275cfbdb5a23ac7b8a911d7ee2ac0672b997cca5d4442a5d80be02c149c0c333caea0090937df91491f3e03ca3f8c85357001e4b0c1c9a73be64abbd7c68776179d4696fa138834325715e115584c368b720ac8eaa45aa4176e9860200cb56c41143985a6bae63aa16733464acb2cc948a949528bf6a91156a3a6bfb55bbe1980d499543720cfd435289c880ad10a4e990cfa2548f17bab1fa31a45eec41361198daf50f22a271c7f1acb7f70463b9b4c82b71228644b3421325b09de2946b829b31e56b0c95727c762b5b5d078c1bb46ff2596b4db6863987c69b26225bb9595d612a5a464d84b6bc775701fa5559d5c8cb55bb30e2e3bad532125ce9c790774dafacb19f4c9dea8abb25b26a6c6a51e27205b0d2031938a9f1700d353c2997e935461b121149a16f7a133af9a103b34e2d3180516a5421243769eabc81952a407486e2111238d99bee90554c32aa12e774dd9b17a5d98cd68029f1bc8671a9015591cfee86bfb8712a5948b9455caa51074db3771f89e74695524fe030aecf998b6eeb301d865f67b9bf4718476026ab3161c77f677fe77a301f357caefac5e579bbd0b34b51b8b58eb71c44c52dc669b9341670bb653ca363096d691680c95a0086601448c619050486b6c244eacaa0198f77d987c5083853b0b9b5531a716a10e7517484a36e38e465e4c855164b2091c8a23e5b2f220524285c739d8b519f55ab1d6c4505ca6a00f6cb6de0a16e1355c1c8824ea571611b8a3925c4fc64a5de44a2a1bb189d48aafefa13ace52290a615b5b4339008181d428f3d33267cc135a2649eb113c023432132a0b93bf08203b40ef0e6465c1ba8a1fa517c37c3d363b80d25c70248c52010cd995a866c8004eba1ae03e56e4783453e52609d6c84264c836857a24f2955fa955041a44c6157bd2e627124fb102ea2bf87b1ac628a393fe09968d707c0f27105b491e19c34dccc207367ae309cc1a0f0cb0072781c63642823623b2239335a73db76bd449b401cf5636114a22863b50ee32bd4804006f13dd66b44058b43be960e9a3a5adc3437298b05c7b314d3fb9d4c7020b64b6488f70a73811d934bc0a81677d1664bb497949b757b02e074e76c8a2e65410158973e30a2a9b6b034c0baaa22cd62a421bc25c7bfda61d0578c1436b808540cbb608cfcb78c8af6a43188bc26f637ab479a1ce86242766d9daaccd93c13d1885c7c994acb657fab0a75de17037f637076f2099560799520182b8265f9ea8440ba9e07b084efa2a6cb244d7db1a39b10297eda34bdc82bcb6a2ee871bf13c1cb8ee602c0b3818335895e754ebe75476ee1786d4ccb52c7164c33a76a3b3e2b57b170c34d37295d22e2351be21a95b6495432a1a5e8489edabe9b71a4459a4ea08b8dd65c4fbeb66a5058cfe7706d8e09381979b608230c7430879bbbc30a6150af273cc4d52c5f1c43e723a036530eddf0cbbfb6ba091b0861f1c751530ce52c947743a59595c15e529104a892e089b912975c7c598b1de528983b5a66a7a66c459610f63e95a7b1198b4e42710d69ea7a8fc3880c0876da82ce872952120a666aaccd5b1001b6b99877610071249db481117cd69f6a252ccaf1a64b45c84c2004eea971ade4659e3508e7b623fd9658f1ac8789297a8dfb3de7b385d927b522126a05aaf40635372f59af9ed4e64cd55048057d8b30c04fe6c876b8a67009 +private_key: b3d43c1965522268cac5210ff79934c1420c14030e9da56e02e26afda97824904fdf2a107a37baef774ca7a87030b1662b97cf678bc3bcf7586d78285bc44a9bbc546a7b1f48491f30f2939c11516ee6cced064d0647950e004cf966045b871093cb8a42b9c903c5802bacc2aab484d35b319a0025c330208913220c2a8033b4152eb39b08fbbd468c754dfb47cdf790a300be561c004047826a03a175c285b5ca718919a119fb80f1f43e6bb00efbd44c1d67c853c118604cbf2b980cf312caf81793558050ffa5bb3643cd86788c6f5734cf652eca45301ea97283f6c52da4adcba71ed4e1acd3499188d555082aa43fac55e8e45bae0c023801133edcb2a5665bfb7829620ba4e21c746ac2c1e46c4000d93af973810a881c1640562426424647752f162d2e65bba6020143ab7fc2486401a30f36e3a81040b4442382608a02c4031cdd6a9569229fee9c87e668a77e9bce352704b8220136f3439c37c05c917eee0578cb2c689a907e2b2544d26444b1f0a11c0c34b2bb0806a072e39c6952e28a08515dfddc80e19413a2a3ae74092d34c2cd71e770deb1cdb1e15a497a0def06b14b6cafd066713f44a77755a7909bb4e90301a995c280982249714a72773493f060f6175a51f61a340022e69125716661d235b5ac124dc381a15fb356dddb3623c53fcefb0865d18c0a4b1f028704d50313dd0bc80f674d563588eab3712a5c4903f27c4a9a3440443c31c2bf51f21fa9e6417a5479c2b5be1a242ff9ab5da06124f7544172456115481e8441aeb7a8a01f218e286b9b52d5618cd0b05fc99a02a24420a359c3a7a09beca408915d4ffbaaa4865f37670f8744548b5bb8ceb9bf1deb799ca06483d521e44b63c9e485bb75c8e32c42247b5fdbc137856cbce035cec6e1323c9a04aa154585f8a9a6c08dccc720a3690d6192ca6e63990a5a9c7ef519808c68819a66394829025543bd3a823f729b98175b5e2576bf557609f50212524691f7b6bbd91a877a0b297c7facf50967059e2fb23caee12093ac230505a4d8d8963cc05277361c371b4a50cc638882b068883de6d69ef590a33a384deff6b618f9199099734e7b9c951b8318030a9cc92496db0e03e738e0a64d1d24afe6274e5e58b364ab1626fb188a91b35eda4156c483830c2f603138a660310cb39dfc490e510b88b5ac4ac9006e6888b33b992b8343c71085ad4311356cd5563e03c75517c99e9bb59188abd8880559d0b8fa290274dc6fa70bc97fc552f4a76b901a212f0364c584717a39a6e66568bbe0a277f9bffe8355072c75d6c4cfc7ec7bb644b8932b41d191a058f2cfda77cb3e876d00ad4b3b80aa7e1b83b031a4e3f891ff747b17782f633324aff6afb58975cbcc0e14fbc9f90584c51b049e6170af720cc36c9acd7002aba933b685b34c665e90a4219d6721a71b79402acb2e53480865b62dc97432d800be255e7565b5f7ba6ca39c6fa443ceb79308ec9c2527a799cc75535082bfb4a5246ef8026ef925dec7164bdba472db7919b17458f83386764b84e83e51e20b41346d424c65b7949a9db6ab79b091f3a980448c0d253c36e9808d586c6e55e669c40bb9633a156733c76aa709b4bc9a877717b5bc4b0cd91ef75c0272119370b8401c815c129836ef785faffb25ec787188f40990f986961c5e785b9e6627913f7b2163408a7f99329314305c0b330bfb0ee5759016b4232e06b627b84f6b51843e34425deb2bb8e10566e91b37a3657c2ca240f57711420094134c9242936c4a76582686db9001635723c63795451537831460d0b4140fc811ca977fa2eb7bab8a597a162336790697ec94ee684dfdf649e327cf61a15f2a6262a3001c5a342ace47b394626439b313f9e21382987ecfa533d09c6a489b2ff84c63c0f5b4c3f8895d2283cd59305ca7248c6b293ae1b4b3071e5cba9058706a1ea9add7fcafa2c50b86ca10e3a951a5fab5a0015ef09901b36b4f4055087a5361ace4a1d2acbcdff1048fe17bd84b6c4dc05bdf4c453d18c6250a8ecb69b3da26cadde7711c0520a59ac94ee57b77a6aa13db76bfc40af90161e3634459b3263ae233178796148b592271408ff06b5ec012f5c082e107510907bb36e330d5c9bdd1245242d724a6d438085a30705662eef25fb465a9aa584ee5bc009432c97a66bea57133df41cd6d6095a69192226c8a1c6a0416dc13bcd39cee2867e991102ab5c7ee37ab23d33e113b3e7766b7c652cd0fe03fdcf38653149139b532ac46b7e80229c2576c44834080b75d9f2490d79a23e6d6cba707458c90c7bb758e3c7049d5868b32e2c50441b280bb1fe7528924181051a9b35c6ac779645e6554b5deb21959754f3a47454837b9512820d04722a884b10e01b5acec05aecc2a778091bdab81f0091ed67a7c7d062085866df21734959206733257294a4c82a7295a739638141aa3821c764891fdbb64dbc6aebb67a8c82caf86f7248afbbce556055405ada63ac9f6423de12447d89746fea494662a69a021733592a0fed82749e73d4c2c9d192c994a535f126700a6c4cee988945353c9e9d2240828bb674bc98f22a298fb6750da5ee76345ee1b2dfda01862d2116e6607d3c251ade46ef82974ebd2a14502684be1cc3eea46cf3c2b3c4c14178a79fb495a44275cfbdb5a23ac7b8a911d7ee2ac0672b997cca5d4442a5d80be02c149c0c333caea0090937df91491f3e03ca3f8c85357001e4b0c1c9a73be64abbd7c68776179d4696fa138834325715e115584c368b720ac8eaa45aa4176e9860200cb56c41143985a6bae63aa16733464acb2cc948a949528bf6a91156a3a6bfb55bbe1980d499543720cfd435289c880ad10a4e990cfa2548f17bab1fa31a45eec41361198daf50f22a271c7f1acb7f70463b9b4c82b71228644b3421325b09de2946b829b31e56b0c95727c762b5b5d078c1bb46ff2596b4db6863987c69b26225bb9595d612a5a464d84b6bc775701fa5559d5c8cb55bb30e2e3bad532125ce9c790774dafacb19f4c9dea8abb25b26a6c6a51e27205b0d2031938a9f1700d353c2997e935461b121149a16f7a133af9a103b34e2d3180516a5421243769eabc81952a407486e2111238d99bee90554c32aa12e774dd9b17a5d98cd68029f1bc8671a9015591cfee86bfb8712a5948b9455caa51074db3771f89e74695524fe030aecf998b6eeb301d865f67b9bf4718476026ab3161c77f677fe77a301f357caefac5e579bbd0b34b51b8b58eb71c44c52dc669b9341670bb653ca363096d691680c95a0086601448c619050486b6c244eacaa0198f77d987c5083853b0b9b5531a716a10e7517484a36e38e465e4c855164b2091c8a23e5b2f220524285c739d8b519f55ab1d6c4505ca6a00f6cb6de0a16e1355c1c8824ea571611b8a3925c4fc64a5de44a2a1bb189d48aafefa13ace52290a615b5b4339008181d428f3d33267cc135a2649eb113c023432132a0b93bf08203b40ef0e6465c1ba8a1fa517c37c3d363b80d25c70248c52010cd995a866c8004eba1ae03e56e4783453e52609d6c84264c836857a24f2955fa955041a44c6157bd2e627124fb102ea2bf87b1ac628a393fe09968d707c0f27105b491e19c34dccc207367ae309cc1a0f0cb0072781c63642823623b2239335a73db76bd449b401cf5636114a22863b50ee32bd4804006f13dd66b44058b43be960e9a3a5adc3437298b05c7b314d3fb9d4c7020b64b6488f70a73811d934bc0a81677d1664bb497949b757b02e074e76c8a2e65410158973e30a2a9b6b034c0baaa22cd62a421bc25c7bfda61d0578c1436b808540cbb608cfcb78c8af6a43188bc26f637ab479a1ce86242766d9daaccd93c13d1885c7c994acb657fab0a75de17037f637076f2099560799520182b8265f9ea8440ba9e07b084efa2a6cb244d7db1a39b10297eda34bdc82bcb6a2ee871bf13c1cb8ee602c0b3818335895e754ebe75476ee1786d4ccb52c7164c33a76a3b3e2b57b170c34d37295d22e2351be21a95b6495432a1a5e8489edabe9b71a4459a4ea08b8dd65c4fbeb66a5058cfe7706d8e09381979b608230c7430879bbbc30a6150af273cc4d52c5f1c43e723a036530eddf0cbbfb6ba091b0861f1c751530ce52c947743a59595c15e529104a892e089b912975c7c598b1de528983b5a66a7a66c459610f63e95a7b1198b4e42710d69ea7a8fc3880c0876da82ce872952120a666aaccd5b1001b6b99877610071249db481117cd69f6a252ccaf1a64b45c84c2004eea971ade4659e3508e7b623fd9658f1ac8789297a8dfb3de7b385d927b522126a05aaf40635372f59af9ed4e64cd55048057d8b30c04fe6c876b8a67009f33aa451c6ad54d556d60210a23da8fb68662c39a1e08d893e1d1e784fb71702faeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 + +# Official test vector 85, seed: "fbc38d7614d7718e931edb850d2c6f0c5eea9ee889b3e25bd69ac255d5b91e885d93e808e66bf9c88c655dc594da5792" +seed: 6dfd9b575872560c7bdc2732c4a28dac4db04e535eb8e402c3dffd145c09ce47a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b +public_key: 5e8ca56e95a1b844147c6011e93057b8d35b6d6052ca045cc1d8444c1b603ff211fc67653a03cf7d3930373206d4ac62090712be287eb6404843c5c1208b0b993c028a445be50550e2b5625e3124bc58b256eb0886e74ec7f0c4d082a143139222b80037b61649e1b4f3079c3f12cd9742486de788ac1a987c158f5d20296742af5953617a5608b5b965ce1cc261139655a09936f555ad8882f3d7b823c400fb7056abd05bc4cc18636141a3f0c0688b5cc04455b768be41096eb7676315f808953c8aa95656e4686c89078e36290fb0b01697c56e41a0bdb7c9c6c6ab8f50eaadae889fb9e0a41d757ec6756bb6e690819b95bd02386398817e1c9ad7db807a842e75017f5bc6b46fa6cd1580993c1238aa197931c9b55d333e953420dec916dcb00b657b5c6fb538468a855e830f1afb9eb356098e12226a7a0718919dfee4ce6e275211804079bca97f291355790aeff36f7baa99c79ca6a4fb1979331494407b33cc6fef3663fa018e28d76e49eb1b5fa828fd7aa270f917e143a9a7938bd9a05d9e483a2d7725061a88588c3df6935ed6c411a149c634d0376decc87d2988954671c8e9249f517ea3d939af8a71d505a628958c634221f11ba962aaab9fc91565fb647973633a4946976b379199105eaa8e8721a12ef43325f08fe6e173bac2243ef74f92074d7e96124d70b3327839806876a6d6b982219bbce5499bc56df2b45af9cb67e3eb878d02b881a5ce9ec55b98808c48a2c963d8854f0172083c9bd2f55b15f6ac7ad7156af33fed0a5b6b668d654b602cbc3e3f9b81b3eb3c476b5bab8b6c886528ae4699e3768b51cc7f48ea9304d77cc8a708ed08321e97228ecb97aec4ba224baf4e684fcf62753985c8ea07c86f501433f40c21f6903cc8166a7332c0b6a8a9c121c41c35690413e98a1a0fc672fb1cad48d74044811f5c7363d7b03fafe2a6a3634d850cb4fb505547b72daa710babe7165b50ba090338f6001d8744041b5b3db9dc2bef60c5b73928889975f51548ab72b4b88a85cbe2457810115a9121f72a3d8dd6bd0c0b2476b2bb9e69a7e613a83d820670596353944a26a16115fca33c505a4dbc5c1136ae3a981da1d1a4b2c25ca0d5474916675ec8817a969e78812414053a4d0245d86119e1072c8dca8c211b9bf3c91fee350f2a0a392c4017c5705655f26657c5090206270140bb93718c37918b4ce79918a9356161b00f09a43aea259ff94d0dbc95a6b83eda5326397750c68cc6b498ce974235484aa453334e05c8232dba3dd1a182ba4543b4a944a5220c46d56812e125c06bba360ba7759cca24a1cc02b13ee9fb75ce8459df3c601da31ad552c153f789905a105929a223e3101f32431f346bcec3a128b0a3c3d4290d270b34e643e17bb5d53b6d248455502c71edd01654d028525576e3422bdf69571e9c10cf3c3c30227c89e2ce0c62911e5014b78b0cdabab060579ebf1a517414bbe5343bf33311c0ab1f659b3d30727184ec1aa8f1c3a3db45fbe215aca961fcd8ce98429d381995280ca0e5e78cde55442518476e0b404a2668424719abe71d64083ff8b63f285396f5989dd4aa9332426eece567d8098951e141ec43747c17cd9b1805f9245e0819ae416c61f3c60818ea448d397211e8b97e755494f0403a133abcd0882ab907e55a130528a5ac535ade736081d1cabd62980355cf85f84559ea36d6d3855030c341babcf65a20c9bb67ed4901f8b2617c7b9c8466976da39c6780003b71a74f6a16339082e6a62458835d30f1b32041bf9ed21c65ec59db3044dae0654e743a5e65836a4b9c5d2c9c4de859b1a6755ae7860fa6053de71aca0a61cdaa34eea773867a7ce66654380219c7b756d117a81e1c1f81156c6d5cccfbdb285c831317e5cfb8fc50b673600bb46469bb3c7c6072d87cc3b17bbb65b95e81875548b63e3024a24a329a4bb1404ff862ef10bcbe6a997c847650b5402b888e0d71c900d4a4a4cc429d717d3860a6615869f734244a0b25cd463371b189a243733469bb5dd97cb3e856cdf2ae64fcb519d9be1a75aa8794542f51bd67878e9a1b8f6d70a650b05b6a609ca9f477579264b127230966a289295719158b63931a3c0cb764e4847c9ac8bb91598b905a650a0123c7c0fb939f7e3943a2f3bafa20a221f37dc17933cf5e868b958e4e7cea4cfd021ef0ba63ff7a7250d21513171d5e +private_key: d246b3612b31d8212a89f347bc6411c7f73e78e23a18fa3972a98dcd857165c070dfbbc8f62197e22b40e2021d5bb1384862c61a6380e042b3714695c515c5a984abfedb949f91c0ae23c4eda48a276c9cc9e6911fbb4b20620875127704ebce55db5300ea34a1c76de6a09c7933a1740552762a2d1d0754192019792a068942574037b949830c2121639e630449b1bfcd02970ea8887f4ba1cf278d819b14f9b58be74566846c742ae150a70380fd0ab9ce2557b2349890969af0bba2fa05335c28b2b125806c637ff4b70095f66e41c136ae3b400323cb04909c035b3c6aa4c5676590ab448c0e6aad6f246a6c59938ac3a56afa0e4e23844220741c93507c445a9efc53c7e6298305c5db623d6469c15a4bc597d1af24a532aa935aacba42da1831b8fcc344088b090a1b08031bb2364e2923afa448a6a7a56c45a90181527776a70858631fe304acdbd37036c83f976991ce8aa99c2252b73c6e54ca894301832c129dfa45b59a023ee45229cb8b3e34805b4d4590e857bcba451e9b6c009abb9a92a19b61f2b814325860680934f30847b5895a430b843969b24cb6dd1c66900569088897821aa058c2c814f3b7a0b14893f96fb241029141c90f63954709187186538b36c4c44536503056d740536d8212236925df8c7a5a19ab01c70a5100759ff5b46aa5c78a8833dc48288bb432b2e741d1746f0f81245982395c39ae716bb35eab66551a1f3c59b873487097d8748a285fdd1a6fbb963e3db4207159256f2121ad6216df07628ac607c1faa3e6b158c5b218cae892cf457dfc29acf2e24bc3672d57e014f4143d301a3e00e276f0066178bc08d66cb163157fa534c96d304e489b22ece80509e8437e23b556217c42b64be26a3f9a445dc830746b47c011ba941b118965f52f44d126e5087c81368b42f1b73195cecde34238f2300d909937722f3d2c999daab1b395851db4cdf4152fb699c7794977d819988020836a185f62a57e1ed656166ccf27f50482c517d7d09b65f0af06651fb15052aa65813b3b1bd1c33bdab745d9a2a2d7373e9d6b8445e9a35f17a8e47c79fd768be8f37dbe19a686ec6887d510f8e2181692282557458678c6d8c90cf1208c8470798f4799b5c2c63e0c350b46091b1a40286c7ad955ac7935965d944baf0ba45ad10512c698d4c6a117ba3132e06812d10d13708285948bbaaa728d2b74e612a5a1f3545fa937a11496add908c932849d577b2a7115b4b47e67e543fb36a809d6cc369a1cb3ba357e332b93276b3af902433b81fe546aa47a322b4812d4955bac7365f4e33e767068e5928119baaa867740068351cf70b75e2998b6e77ee1d80409d6b2d97c9732861cd9acc05b1a1faff8a944537eb56b06c3c520365bb405780d12016baf661bce454e6da89507267aa0fcc880078728d12ec0e6b364c60e6d589e50b7371a66caad262b729a0d34b08f0798951be0c7d6798aa99670d9106a186001b93ba137461c0d3b8da691194f0a9ffbda4418bc2e97076b8ae3a4fc700531c502febbbfc766131dd4b00546151ba804ef08998ed9346c596d804473c54ab8d6f64ae654890a54a3ceb9201a74816d086fa121034a6661a20295bdca444b1c64c9b77e235cadb4c08d75b5c02f62401208578442bd44b2615d3869f8526fc6f71a08b4a1e2398b81e86fdf3b89a3453569a66e52d5bbbdd670f173529d30950ab1b9166821e8538effc1495fd0c268baa07e5212fc41385bc0a902d85f5f2093601c77b43bb865559cab77b4e6d89b5a7a0a6d069e5ff839a77603ee4ab29a331c6f9b64aa626755e61648992003a556c210345f33c2300c3504f33fc57c32ec196b1a9a353f04020bb16818136d32737dd4c92f7b4656a83580ff053ad4d6a13ea364431ab1f3d8ac1f510d3fa25d8c33084a10ba42a50943fa22ee420bc7d656492952e157a689c73cf8d45487293b0c8c4245b410848670d66ca54a3a3e016b36fc1227ffcb63b9310b8dd73bfa405b3da64c69a64173c15000f88dcec5007e58bb05a81672e02414612829cb7e25637a77c49d434a44f4874bb4f27b3584cf85b3c73e2b9e0ba2a92b977e9c194584b04c3e8c37d9b7404e77802c05b50b3acce5b46e54c7354087321b4822cab148137459124caa95197546f8b65e8ca56e95a1b844147c6011e93057b8d35b6d6052ca045cc1d8444c1b603ff211fc67653a03cf7d3930373206d4ac62090712be287eb6404843c5c1208b0b993c028a445be50550e2b5625e3124bc58b256eb0886e74ec7f0c4d082a143139222b80037b61649e1b4f3079c3f12cd9742486de788ac1a987c158f5d20296742af5953617a5608b5b965ce1cc261139655a09936f555ad8882f3d7b823c400fb7056abd05bc4cc18636141a3f0c0688b5cc04455b768be41096eb7676315f808953c8aa95656e4686c89078e36290fb0b01697c56e41a0bdb7c9c6c6ab8f50eaadae889fb9e0a41d757ec6756bb6e690819b95bd02386398817e1c9ad7db807a842e75017f5bc6b46fa6cd1580993c1238aa197931c9b55d333e953420dec916dcb00b657b5c6fb538468a855e830f1afb9eb356098e12226a7a0718919dfee4ce6e275211804079bca97f291355790aeff36f7baa99c79ca6a4fb1979331494407b33cc6fef3663fa018e28d76e49eb1b5fa828fd7aa270f917e143a9a7938bd9a05d9e483a2d7725061a88588c3df6935ed6c411a149c634d0376decc87d2988954671c8e9249f517ea3d939af8a71d505a628958c634221f11ba962aaab9fc91565fb647973633a4946976b379199105eaa8e8721a12ef43325f08fe6e173bac2243ef74f92074d7e96124d70b3327839806876a6d6b982219bbce5499bc56df2b45af9cb67e3eb878d02b881a5ce9ec55b98808c48a2c963d8854f0172083c9bd2f55b15f6ac7ad7156af33fed0a5b6b668d654b602cbc3e3f9b81b3eb3c476b5bab8b6c886528ae4699e3768b51cc7f48ea9304d77cc8a708ed08321e97228ecb97aec4ba224baf4e684fcf62753985c8ea07c86f501433f40c21f6903cc8166a7332c0b6a8a9c121c41c35690413e98a1a0fc672fb1cad48d74044811f5c7363d7b03fafe2a6a3634d850cb4fb505547b72daa710babe7165b50ba090338f6001d8744041b5b3db9dc2bef60c5b73928889975f51548ab72b4b88a85cbe2457810115a9121f72a3d8dd6bd0c0b2476b2bb9e69a7e613a83d820670596353944a26a16115fca33c505a4dbc5c1136ae3a981da1d1a4b2c25ca0d5474916675ec8817a969e78812414053a4d0245d86119e1072c8dca8c211b9bf3c91fee350f2a0a392c4017c5705655f26657c5090206270140bb93718c37918b4ce79918a9356161b00f09a43aea259ff94d0dbc95a6b83eda5326397750c68cc6b498ce974235484aa453334e05c8232dba3dd1a182ba4543b4a944a5220c46d56812e125c06bba360ba7759cca24a1cc02b13ee9fb75ce8459df3c601da31ad552c153f789905a105929a223e3101f32431f346bcec3a128b0a3c3d4290d270b34e643e17bb5d53b6d248455502c71edd01654d028525576e3422bdf69571e9c10cf3c3c30227c89e2ce0c62911e5014b78b0cdabab060579ebf1a517414bbe5343bf33311c0ab1f659b3d30727184ec1aa8f1c3a3db45fbe215aca961fcd8ce98429d381995280ca0e5e78cde55442518476e0b404a2668424719abe71d64083ff8b63f285396f5989dd4aa9332426eece567d8098951e141ec43747c17cd9b1805f9245e0819ae416c61f3c60818ea448d397211e8b97e755494f0403a133abcd0882ab907e55a130528a5ac535ade736081d1cabd62980355cf85f84559ea36d6d3855030c341babcf65a20c9bb67ed4901f8b2617c7b9c8466976da39c6780003b71a74f6a16339082e6a62458835d30f1b32041bf9ed21c65ec59db3044dae0654e743a5e65836a4b9c5d2c9c4de859b1a6755ae7860fa6053de71aca0a61cdaa34eea773867a7ce66654380219c7b756d117a81e1c1f81156c6d5cccfbdb285c831317e5cfb8fc50b673600bb46469bb3c7c6072d87cc3b17bbb65b95e81875548b63e3024a24a329a4bb1404ff862ef10bcbe6a997c847650b5402b888e0d71c900d4a4a4cc429d717d3860a6615869f734244a0b25cd463371b189a243733469bb5dd97cb3e856cdf2ae64fcb519d9be1a75aa8794542f51bd67878e9a1b8f6d70a650b05b6a609ca9f477579264b127230966a289295719158b63931a3c0cb764e4847c9ac8bb91598b905a650a0123c7c0fb939f7e3943a2f3bafa20a221f37dc17933cf5e868b958e4e7cea4cfd021ef0ba63ff7a7250d21513171d5ecba1f135207bd2ab61bf7718dc6825848e742ad56f9f8099bd43905ebd9d6ba7a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b + +# Official test vector 86, seed: "1722219cb5db47374eb0af0232c856a57f026f1cb09e5a5799f4c333dd422ff6a0a67c4da502faae727fb2d45dafcf35" +seed: 6fca9f4e384d8418075cc064c70730801bdb8249899d456a77130d5beeb3662cce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 +public_key: dffb649aca864c32b4f082ab455c94e6fac7ac1c6c46943e0d4b811e48a80f18a22130589937a1f4e4097dfb8c3342aab55648486701ec3c36ed167dac427c7dd54a6ef844468a481595b933701a2db33235439d702967ac1b77f47391e6700596d52b534b6ef33357322ca6f1c6a6917b1d8d9cc7f83028437c125912b4e8d33db0d00b6d475452f41a5088a9e5d169d1faa564b220c3aba1d6c27a5b87aef7f4afb75442c0565cb78c7b81144aa3c209f9a808d43132c75399293400ef70551b51292ba501fb613998011a35153046787183580e485bbf5b81bb9fc690ecd0cb7449615a0b0134f559b6e1062d9209ca62aa10279e2c7475e48837e70a2ddecc66d1ba5dac35760a5a5de0764136618b78516a0c711c3c4440c1f0117d617cd64b55482c952e7617176443c802c8046012e9b774d0312a68c49c85a44d430984ec510212316d43ecc3d6fbcf9736cd3e712d0d3011b645107a22b9d8f51e8dbc30eba66e98624473880c3378b8bf933d6577cc31d0105e19565f848290059604f9b71b755e123b7401f204356120c769cccc2b1660e03e688a75fb370ca4088b46d955cb24b7073c8540ecb2a537a66980332df62196d8c6e5584b7ba8a4c8739eac585a812aabb33a5f591b428e50c7291415012467d49b232989c34711009806249580a557048dd3dc0d2d6599cd556ac325a5c00b8820f0c9dfd3336bfa5f61d6baa5e26b848b39ca02cc542c1dbe90ad8d355cec4c9f3548868e9052618c86fb729998cb4cd610c8fbd86429621e34d11c4943402c2598b80aa98f395a85a180ad402587111de30cbb41e0c5f6044219d6a243860fa8da94f2fb878c8625b8e8243731aaf5b511fe7b3c34ac3fafc68df6d4be563727f705ad41245fde8048d184337e662aeb85135df92d4c1a3b36f1c984079d50248f88523483cac2dfe959162a79353708d09b399e6534aa88aa5bb3cf3eb59eec6a5c8309c6980bb2e4681bc47b7dc2939ffd5439ec4473606166da1053e9467c50854712490b583ac02a657c61812336b47a5e2912cbfb4a1acc84991116b9cb1497f199ab41b98bb54343d188ae54a269c89c36a61be71898006bb9ec531d6006325a47a13995492f41498790bdae9a9e41c0cef6fc78f8e027380cae57c2372308a1b0c2321f8ba17867a1358c5c13095617c2b276aa3c0b36588a9c62683104db5c94643c69c1330db1fa9a66c107c62567f2898419008b9465355af511afc923415c545ea44f15e7b98dd09ec0d79da5893125d6125aca7adf78a32f918af2a41cc6377c04a627fbb28ad5bb65bcb16e3f32622f45b5600cc367348379894c65f494f79948e6e1941c10afc4cc00ed871e529c8573b36debc7c80364b01ea874f345271517b6c399a6277b80bfc1a9996a3748a0bbba5a24abf84d6a714695202ab7779637f85774c27a51446e72fcb59ee684873ba60315a84988b5936674833a93f06b283c6cc1eca1bbc36a02c8197480c24e17e2316eeb58b81a3f5a063b1dc4b20239818c8aa67fd96cf6ab52017979bd82431c862837a1b796d0744a27559e748db8da63676369795ba92d48bb11f9bfa5393c522403b6379b0d2c82beb17ef29b37fbebb387aa695d54c241d51fc3d5bc7f8316100021fd805d76a601862473ae3996b2840ec274bfc37bbf5119668dd0bb0e909fc2a28f3b3c469a9b279bc4810c040b70781f3d67c584a965a94ac1bc088cd2b61c54f301f5dbb82f110c20d51a6c882cfd3c2ad1e6311fe4041eb6cefd7681e75a72d7b0cf39742394e33328374e5ee5b0fb3b0e2c709365780ed3191e56008280188baba9c745fa5a8958c0ef28c1fb641e4ec13dd77404dcb031ff3b670a2092edf848900818c7104b3e457d4189cac8082b55c55573c2021fd32e4b331eb515092843c323b02228737b2c8915beb2718d63b8020c2b3a957fa5029638846abcda5c3c0cb2aef55d05c38cdc1755328735901ba53d685b939b168b9cc55aa0ae05fcb8815400a9dc36a58a1f4f90b3eda3060a4490751413d9c1453ec8cb64dbb679fc69073c9e839c40e8ba4cac38124c3697528404bcc6435c9c21a5b89cd05516686b4df7da8ed3bbbb9afc428a842a90bc09666804988c7386b794b460105fc5035dc3018dd494d421ae46f978b305738d5f40faa6dd68ee73df57c41f89935528e64270c9759d496204 +private_key: ffa253d9738c7f3cc8d3d9645bfa7b3dfcc722170ccf43200ed962315c4a48882756588b0ff85656bc8329c33d81dac016a5b048a25204396268ea3e16b63aff88a6c0b0344fb1afb0f530ff3b2858954ebbe8155c287b3c0244f3ba7aa05c1ba3c7bec8861a15f621d420653a44354415a152b774e31cc0d3ab9b08486ae87a406f17b062b224b75c81d3f1bb1678aecea90a9a950f86ec8fa357984e697d21c82b70a0933dd34e2782189fe64f94325bc3d068f9a56328f6cd0fc93e74462640998cacaaa7d4aa17496c4fa0414f55e2a5601b3651934cb566594027a9ba5a77b2729165a51cd457907a25786d4510a5e281c2dc3ed422a40bd23a36494d4825a32caaaa244685734a543c8c65b6bcc11db390c24c57e3821ca2a229052846fdf155a786cae0c3474c58c4cf6a4fc3f0cb4040a699198fd4f9519fc9533724b9d5a5c76e8c5f38d28f034cce980008645704ad2b5e2f985657047554b389cac253e51a862eba7491aa76517224d7d247eaf35fce78b0ce3c8ef14c901d2122e364449967446437416e052b8fa6671a04a173559f46015fbde16c11657c7f759242ec6950523be14c8e402a1cbf973c91ac94e004c00be513ffd90c179071c5b05fd20a3db6727b90325592fa06b220104988916d558817a734394b1ca7c95f2da093ff211afa8aca0c11bffcdb243e986b34b72d66647d05173ffa621d0a191e6e69cf7dd33c252a8267d50b57babe73cc84972665db7343eddc2926dbbc17f44e80e229ba494743b6201a0693f4081bc6124bc27067f0a566ee95b455f6cf414c6621536f14762ff8b1b36342adaa6c381656bf2fba2d96304f895b6b0beca0e7fc02603671d2a916a2b571cf17b060994c0d296089e3804cd1b76db57d9a23640bccb4adc34ba970b9fe131427538dc80c41b2891c0900b2c16a42018696490c4dd31329577542e0b56778281f05379cebe49f7276ac28cc0082ab23fb983811daa72c940b8ab912aaa41d3ec895d215bd4325268ac137ed7bb97fa09f5c7aaeea47b822ec6761740809a9b58470ae5b970d6bfc37c3092250218bfe248e2358600170b8c0b3444527947ac515211b9b2d65328e13cb33e413847cbad815412ef36c7e7a42a6f097b0193af3bb0c6049becb3051d60a10ba1c6cf4b9cd10583886172fb2527d85ca2714fac6a7352ead8050819bb08ab050b5525e2a093ce296a0dd7a0e79faca7a209e08fcc4366ac22bf63393eb32285a5dfc2198c0f3ae7f389d4283ad23e86a2e7972e6e4b22fcb7c5cf54353500d680288bd004a5fd28a280c09acd35dcd245051545b46598524ab218df38044f52f038281b332b2d6610d7fccb9f25173b48c8a2b18b3dda8c3b0abc4aaf28ff2b4a6abd085b6d8722c9a02ccdb96a0dc90922691f96769e2d9800cf5818b23c2f9030c929c3f11995c68c504c91b753496cf7b3b00e46a78babc61043780ebfb9f037668e3b5039663c8cc291db5f5a4e3352db5079387e5855d74b84045b1ecc7b0371a048f484c658502c344b6bee19e370c78b203260f6732ea55a0479453b4684454588c90e49d0a192f2634004d326292011f1d53b0ae71bb8284379d925fc139b581f402a9280dde30a9f5847fada70582a7af03c71d0a8a3147219f986c329bd60079f38f22e99dac8cbf4ba67ad77b0819334135d00888f476985441de439df0b81673d3274da42aa8851c34ba304b467441405559491662443d51e92f50a056d4fac1ed2357f00503f5280da63c055f923cda36916ba51f35e13cb17476a879bf88b406dce51ca85475b7447c0cd6c46ebb0722a8cf8d8250fbec5bbcb5b9b644238168151ad9ad156c7e0dd1abeda37e8d511a34b447195a897568b0809a02b4207aa8ec12b2ba73d64bb97952328fa1c5c19801cdb237ffa23115a774592c5f644bc60fe3b5b96a1689a90cd1d6abfa9a50bb430ae796364cd99d8e6261820282204a8dc81cccc40b67b82067fbc38faeeb068ab72ecf3a6af5259092b06b2dea6665b7901ffb6c2a243a3d2b4235552935c323aab07769aac9ba0a8c3813c536700ca8323ed662954adc5bf811c4d09434d0046566363775f4965e626346b6bc1b50655de01cc642b7f984c925b11b5442c827dc28a004c38ee59d74cc0dac334bdffb649aca864c32b4f082ab455c94e6fac7ac1c6c46943e0d4b811e48a80f18a22130589937a1f4e4097dfb8c3342aab55648486701ec3c36ed167dac427c7dd54a6ef844468a481595b933701a2db33235439d702967ac1b77f47391e6700596d52b534b6ef33357322ca6f1c6a6917b1d8d9cc7f83028437c125912b4e8d33db0d00b6d475452f41a5088a9e5d169d1faa564b220c3aba1d6c27a5b87aef7f4afb75442c0565cb78c7b81144aa3c209f9a808d43132c75399293400ef70551b51292ba501fb613998011a35153046787183580e485bbf5b81bb9fc690ecd0cb7449615a0b0134f559b6e1062d9209ca62aa10279e2c7475e48837e70a2ddecc66d1ba5dac35760a5a5de0764136618b78516a0c711c3c4440c1f0117d617cd64b55482c952e7617176443c802c8046012e9b774d0312a68c49c85a44d430984ec510212316d43ecc3d6fbcf9736cd3e712d0d3011b645107a22b9d8f51e8dbc30eba66e98624473880c3378b8bf933d6577cc31d0105e19565f848290059604f9b71b755e123b7401f204356120c769cccc2b1660e03e688a75fb370ca4088b46d955cb24b7073c8540ecb2a537a66980332df62196d8c6e5584b7ba8a4c8739eac585a812aabb33a5f591b428e50c7291415012467d49b232989c34711009806249580a557048dd3dc0d2d6599cd556ac325a5c00b8820f0c9dfd3336bfa5f61d6baa5e26b848b39ca02cc542c1dbe90ad8d355cec4c9f3548868e9052618c86fb729998cb4cd610c8fbd86429621e34d11c4943402c2598b80aa98f395a85a180ad402587111de30cbb41e0c5f6044219d6a243860fa8da94f2fb878c8625b8e8243731aaf5b511fe7b3c34ac3fafc68df6d4be563727f705ad41245fde8048d184337e662aeb85135df92d4c1a3b36f1c984079d50248f88523483cac2dfe959162a79353708d09b399e6534aa88aa5bb3cf3eb59eec6a5c8309c6980bb2e4681bc47b7dc2939ffd5439ec4473606166da1053e9467c50854712490b583ac02a657c61812336b47a5e2912cbfb4a1acc84991116b9cb1497f199ab41b98bb54343d188ae54a269c89c36a61be71898006bb9ec531d6006325a47a13995492f41498790bdae9a9e41c0cef6fc78f8e027380cae57c2372308a1b0c2321f8ba17867a1358c5c13095617c2b276aa3c0b36588a9c62683104db5c94643c69c1330db1fa9a66c107c62567f2898419008b9465355af511afc923415c545ea44f15e7b98dd09ec0d79da5893125d6125aca7adf78a32f918af2a41cc6377c04a627fbb28ad5bb65bcb16e3f32622f45b5600cc367348379894c65f494f79948e6e1941c10afc4cc00ed871e529c8573b36debc7c80364b01ea874f345271517b6c399a6277b80bfc1a9996a3748a0bbba5a24abf84d6a714695202ab7779637f85774c27a51446e72fcb59ee684873ba60315a84988b5936674833a93f06b283c6cc1eca1bbc36a02c8197480c24e17e2316eeb58b81a3f5a063b1dc4b20239818c8aa67fd96cf6ab52017979bd82431c862837a1b796d0744a27559e748db8da63676369795ba92d48bb11f9bfa5393c522403b6379b0d2c82beb17ef29b37fbebb387aa695d54c241d51fc3d5bc7f8316100021fd805d76a601862473ae3996b2840ec274bfc37bbf5119668dd0bb0e909fc2a28f3b3c469a9b279bc4810c040b70781f3d67c584a965a94ac1bc088cd2b61c54f301f5dbb82f110c20d51a6c882cfd3c2ad1e6311fe4041eb6cefd7681e75a72d7b0cf39742394e33328374e5ee5b0fb3b0e2c709365780ed3191e56008280188baba9c745fa5a8958c0ef28c1fb641e4ec13dd77404dcb031ff3b670a2092edf848900818c7104b3e457d4189cac8082b55c55573c2021fd32e4b331eb515092843c323b02228737b2c8915beb2718d63b8020c2b3a957fa5029638846abcda5c3c0cb2aef55d05c38cdc1755328735901ba53d685b939b168b9cc55aa0ae05fcb8815400a9dc36a58a1f4f90b3eda3060a4490751413d9c1453ec8cb64dbb679fc69073c9e839c40e8ba4cac38124c3697528404bcc6435c9c21a5b89cd05516686b4df7da8ed3bbbb9afc428a842a90bc09666804988c7386b794b460105fc5035dc3018dd494d421ae46f978b305738d5f40faa6dd68ee73df57c41f89935528e64270c9759d496204f118f77224920bf4ff7c69db5ebe12eacdc6012d57e2ccb3d690db251204dce3ce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 + +# Official test vector 87, seed: "ac139b78fd16ca0f26d6d7f9e15345c888d857b1910cf38d883339b37ead2dcac30f7cf10176f23ff34b4488eb79437c" +seed: e58f71bf175c0550a67e00e0f7b3b7fc36bc2707bf0c93044a492626de36301a7f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 +public_key: 1e4205e8fa992213c49059a409aaa3ac72b85837cddde4c4ac42a9a35ac7fb80ad2d8c1eae7019276b1f3f3a6761602a01d99d4d050c23892427d6267efa092b587a5d2376012cb755627b9e63a2a04432260aa1abb2698ebb6075620ff11b01e4d049de698966fb49bdfab73675586583c744b5bafbe9692b6c6c1448899ab72a8821b52b4bc061910fcc70beaef424afeca7d3737f4c7c6711b38dea919e1a13c78160c1c652a81210c010c48908b13101b04334e6534aa0986ec01a86b30d41cba67e573ab6b0cc1a2c973c0041bd26721b508a667bc28e010265b762a223128e092eb512bb9d6150af6840581514470212d0e5c1f4696e45ab102a91a0848497e8a7a52ef20c85d7067e6a1f99e1c0de84473b735bfb001e860c3194029d5a06484920bb0e371114ab2f3bd775248a9449d2c19de5023876931de00dfd609c95c98c133bcbeeb52c0f713a19176dc90b5143a6876ab45b7f717865d4b8f0b8a2e6a45f123b85c8fb584cd3c042676ead069cf9c23682aaa05c1010e122473907547d79b0f8b61180014b1b3a56b88b3b4fd97eebb21eaab37883889a37676c61061d41b40b49dc5e68f64ed979bbd3da4a7824b32fc0bab9985a94251fcb740bd2b103f9c21c25bb055043c895531e68b17a3cf3190683969d6299c850b7d11a6b7a183b4b3a3daccc41d3321f5c088035102ab68b2938975ff180890153135e284155f971ca624c19f15ae4a3023f20cda6d404406c39cc26ac4df1665a3c19107a99bb289176a09e4a7c197ba72d6131980264a907b605c1e1791305974d49b604c81a9c8501ecd0cdd32a5f94dc3f64481164323736435d1043b09fd1ba63ab6956e4216ce47f719bc10f0c2b2830c17886965188534205c3f8818369aa638d5902cedc28b56c9723aa4eee8485151a270d3c1d963404bc265b912c6e52099df9ea72910674bbb8493f670620645fba16c0e6c73ffa20a99d6378433c6c55ab20f0a40c74ba37ddda39d2ba4d7f34c705a4117c618ad91408ba3bcce9fa9900d2650fb109fe2221f0f6219c226b74e7968f5aa0b3e3575be051446b1b76b8a7785a43c824c73688ce495681fe723d97b249e5a65a961abd0d61527d4b18027b00dfa49f4d213253e80ff2a556c48ace2b6a5122b42c2d15622e158e2613b23e62c6398838aa821cb05a4424817f0f9291f4ccbe6578941070b22b9c36bbe89ecad318e4251451a80202a70e1b2274854809e770677ab76c9e9c5cf4e8621e4338a279169ab46a6e5344ca391b80eb12f9b8a582105380384f2fe845b7298e52803989211498b42537b8b1cd22a59085bc00941f190a66fe77a1a6745e8af09762751c63656a26692bf1870df08cb861abba73b50ac6b03f880844a2c6811a031eb412501c79201e686ae528c84b7606aac09bc42265e77b56fde93022a71374693f9ff5787fa0855c79321d147831ca28e7880dfe1c15c66bbccdb93c0e7113a5eb9b97285ae8717bb87c1f071c284c0089fbb5a7b5121770950d255aabfcf54f1c18c8d9b2bc4aa253d5ba49bd2944a8c440d01343f0770f690743dd952f4f6692a60bc3360588f9575636748e3d321050c42c11d75b69d316cab62c681ab48f1880a9d787449440d1f1cfa0386613c2b3d25494e7c17d3e4b1f5a5780a9f088f00a9d6a79c6b1bc0e1d501fdb398421a19e316489bf1105d9f79c74433c82b87a775ca358965e8b1248134a94179c20011121aff04b95130f2ea20a0deb2d3ad8a0f6086481d8297a10374602661ce031b99012be53c70110b53d28966d8009ce6857f778006a304fb402769065c04d25b2f3aa1bae18a692d7552bc9805897c9b65a930ba11c6f3487801284d85579a912664118075b7237e66183c66510202188dc8abc1aba9524e0450b7a29b4d6b5076769b7e419fa4a63521619d1f76cefd0a7de67c7f5491724d063a13bc27bd20e9d486fd5158d3b7c04a97b95bb06895206058f94050dd8c262eb70a73746cf279350125807c52ae8a29db743099f259c9748318f391e524c9d8b46932157c94a8179e02897f33226ef1964f4cc92c7323df35a7700daa10170082f0664e4b8a221da0b5da84f43b79584194aa8c18724a6452760365c316c1f36212811a8e1936578653878b2372fe58505e7957a3e0e0f1ac0d822a80287d204eb6a446a74afae0ccd1859a2544aedfd +private_key: 3724c5ebbc753f55535fc5ac0069c238d8b7c111bb7eea08b59999349bb352cc5c18f9926bf676b53a15c759964f205a322a1c88e1b4266c2d6a311384216ee6e4625c15414b77849706292fd79753163975a4be5b9410f3d261e1931c934380263740d2a2666d861010036251e7061f04a6e8f8acab2907edb1cf01f906bb972b53f79df07b3ae368411913976e73360b077771b16489e83818b6a176223097e2397432c9fb4bb013b2c8fbd2815298b0214b97cf8b740aa4bd89067ced36be138a3d096bc51f606d3865418610083c71968fa41009530931da393aea3ad975423829233bdb9b0095c2421a3db1d914e502c4ade29c408c84257a2a1b2a100839600a659026e6362be2acc789a12832ce5d876533862c0d20844e903516448448c0a600b6c7cb812a3847037cfc0cffbaa582b9028528b52580c956d4383d10155dd58bb84bba99cbae99055574b02aea64828f4c28b8a0c19a4009d6e6c58c661bea9a84f6e273b9c50d9a8048ab144f168912ca1c5efbf87997bac3834300960aa1598c15221a1a0de795f9385fadca44cb036972a8c37dcbb61c793d851214a701b3f23645a166bf1912a827934a32a58fba6abfb41a4ed2331ce0d08378417f42c176403a9ca5eca30370ca2c523e7a294c7f9a7cf87b941ea47b19928fea095ae42038217b3fa0b54caecb60ba03a8a99745982835afb01934e1bd4c432f3f3c041e96c08c8836e267a30b8883997749b56047d182758a683123a91f70e08b1b42121b666c27d4c902939cc90442c19079e53b87b834baa609413aa3698d365e5bd71b247a7f0d42184b166cffd532b0691563c7874e9392fb1c9c528387ef3648d72cc063546cf22b23b6e68c340a23895a6573f80f30e3ccbde14f56aab4fba5505314605d5311ee89a7eb5cadc7523716885b4150bc07318902657ad101594c24c7328004a29cb8caa4a3f48c1aaf7c289a063a6ed690f72625c6ebc7c10bc500b8a0f5e807655b1470a4802fa6c3d9fb0beee3386858328ef97e0b94518a455c5c6a3020a70a9468cd784a38bce99492cba4be53624925c3f74c533aa681a8482fbba5c15b026462956fb4269bfbd3591ae33823425ee57398dcfc1e7f3a53fdc6b031267e59f0c82bb4b7ceca3cedb23cbd29af7c797867493046b30e1264141535315c24a03f08c811716da610726472039fc1cdf489595e072f717a67487b842a6c8b2cb33ee9420ec5428ffa6b85a7311014595f409ba93e8b10100ac45bda836a522c01c78fa8b904bd422ef17a93d1767f31b02b7540ac4ebc3cc6025884ac9fb0ec996e537608695b84c350eff27a15f2b83d76b1622789f55157be7274b73378994a997d564b819552389918b781c19317cf85a72dfe66bf8c44b032210b9395ae35f9ce61d002a2e4a0d6f823698698a0d475e6d90baf596b83d2628b5b345570680a13b56c27a9a2d7be01ec655da3c1c93886d15b6b6f28404c85b37b09701aea3c50a146be8bb93b10c65b96248a02bacec816444c911a700f7acc16497c536da22ba6995f89985f59e0bb5a16984a005f2c64584ffa868da78d33b44b1afb5a25f85c083ccf6db93a59720aadccbf2598228bcc6da0676fec92109480548e421a618c0f0a519750d846d4818f5d1a625b877c64e9ccb639aa69186b70775bdd6612c7607ae6149f52d447a9b2946af664b493805de93e9a4846b734c0946822df415c446455cd037fece9302eea5a856208c1a3bca48c35e88cb329f2cdd6f56a1b89cb8ab972140093f2686a2cfa1ee17ac413ba6f3f83723bcbcd933947389476ecf71c676a3c327c9725048dce400f791c9eae184aa95c193e84040cda88f1a497a2b90201c95248abaad0c8848d7280be076ea7b4ad3bf083656948c952417ad3bdd28821c9c92e59f90b5582bfbeeb560469aace0b1e7dd53d29f59f12b767355a0790780e19716b588c150603bf3680464f15aab3809ef240b1759288ec719b64f7a184b890060ad066a41923f25ad87b55ae89a1222b4bdbda1e07631d95c704f6866b1f9994f94681c21b41c3d7972ccc2b842759754ca826e433497b358c071f306a464d3b0f7950b5503304910529a6e476cce974488443562cc11dd13f45ab1926859952b67fdf277ad3cb8965c1a31e4205e8fa992213c49059a409aaa3ac72b85837cddde4c4ac42a9a35ac7fb80ad2d8c1eae7019276b1f3f3a6761602a01d99d4d050c23892427d6267efa092b587a5d2376012cb755627b9e63a2a04432260aa1abb2698ebb6075620ff11b01e4d049de698966fb49bdfab73675586583c744b5bafbe9692b6c6c1448899ab72a8821b52b4bc061910fcc70beaef424afeca7d3737f4c7c6711b38dea919e1a13c78160c1c652a81210c010c48908b13101b04334e6534aa0986ec01a86b30d41cba67e573ab6b0cc1a2c973c0041bd26721b508a667bc28e010265b762a223128e092eb512bb9d6150af6840581514470212d0e5c1f4696e45ab102a91a0848497e8a7a52ef20c85d7067e6a1f99e1c0de84473b735bfb001e860c3194029d5a06484920bb0e371114ab2f3bd775248a9449d2c19de5023876931de00dfd609c95c98c133bcbeeb52c0f713a19176dc90b5143a6876ab45b7f717865d4b8f0b8a2e6a45f123b85c8fb584cd3c042676ead069cf9c23682aaa05c1010e122473907547d79b0f8b61180014b1b3a56b88b3b4fd97eebb21eaab37883889a37676c61061d41b40b49dc5e68f64ed979bbd3da4a7824b32fc0bab9985a94251fcb740bd2b103f9c21c25bb055043c895531e68b17a3cf3190683969d6299c850b7d11a6b7a183b4b3a3daccc41d3321f5c088035102ab68b2938975ff180890153135e284155f971ca624c19f15ae4a3023f20cda6d404406c39cc26ac4df1665a3c19107a99bb289176a09e4a7c197ba72d6131980264a907b605c1e1791305974d49b604c81a9c8501ecd0cdd32a5f94dc3f64481164323736435d1043b09fd1ba63ab6956e4216ce47f719bc10f0c2b2830c17886965188534205c3f8818369aa638d5902cedc28b56c9723aa4eee8485151a270d3c1d963404bc265b912c6e52099df9ea72910674bbb8493f670620645fba16c0e6c73ffa20a99d6378433c6c55ab20f0a40c74ba37ddda39d2ba4d7f34c705a4117c618ad91408ba3bcce9fa9900d2650fb109fe2221f0f6219c226b74e7968f5aa0b3e3575be051446b1b76b8a7785a43c824c73688ce495681fe723d97b249e5a65a961abd0d61527d4b18027b00dfa49f4d213253e80ff2a556c48ace2b6a5122b42c2d15622e158e2613b23e62c6398838aa821cb05a4424817f0f9291f4ccbe6578941070b22b9c36bbe89ecad318e4251451a80202a70e1b2274854809e770677ab76c9e9c5cf4e8621e4338a279169ab46a6e5344ca391b80eb12f9b8a582105380384f2fe845b7298e52803989211498b42537b8b1cd22a59085bc00941f190a66fe77a1a6745e8af09762751c63656a26692bf1870df08cb861abba73b50ac6b03f880844a2c6811a031eb412501c79201e686ae528c84b7606aac09bc42265e77b56fde93022a71374693f9ff5787fa0855c79321d147831ca28e7880dfe1c15c66bbccdb93c0e7113a5eb9b97285ae8717bb87c1f071c284c0089fbb5a7b5121770950d255aabfcf54f1c18c8d9b2bc4aa253d5ba49bd2944a8c440d01343f0770f690743dd952f4f6692a60bc3360588f9575636748e3d321050c42c11d75b69d316cab62c681ab48f1880a9d787449440d1f1cfa0386613c2b3d25494e7c17d3e4b1f5a5780a9f088f00a9d6a79c6b1bc0e1d501fdb398421a19e316489bf1105d9f79c74433c82b87a775ca358965e8b1248134a94179c20011121aff04b95130f2ea20a0deb2d3ad8a0f6086481d8297a10374602661ce031b99012be53c70110b53d28966d8009ce6857f778006a304fb402769065c04d25b2f3aa1bae18a692d7552bc9805897c9b65a930ba11c6f3487801284d85579a912664118075b7237e66183c66510202188dc8abc1aba9524e0450b7a29b4d6b5076769b7e419fa4a63521619d1f76cefd0a7de67c7f5491724d063a13bc27bd20e9d486fd5158d3b7c04a97b95bb06895206058f94050dd8c262eb70a73746cf279350125807c52ae8a29db743099f259c9748318f391e524c9d8b46932157c94a8179e02897f33226ef1964f4cc92c7323df35a7700daa10170082f0664e4b8a221da0b5da84f43b79584194aa8c18724a6452760365c316c1f36212811a8e1936578653878b2372fe58505e7957a3e0e0f1ac0d822a80287d204eb6a446a74afae0ccd1859a2544aedfd8678b1f242830fb21f34f7beb20a96ebbbd6181890cee3bdcab29697c5aefd707f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 + +# Official test vector 88, seed: "cc7152849c98d5fed2813275d32069e44824ecb14eaef425ce017448cd9a401c91c06d0f7eed6d22b7bbe8ba6c429ec3" +seed: e3fc575ed51513e62aba655d24cd9c8f1c6c848aaffa946c49a53ac3ea59e474d82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 +public_key: eac2871f16b152d08e74e28a250999db0a6db7036711a24370401ab844cd39b124b8d42e8a15b2bdc85fe3b11c9caa30ee666f260ab0f0e230a5901229b974446428a9e24680a884208a2dfd3899ff1a4920b798ab275d5a10b01503d000c23db72ccbb3a91ab0186fa7850de3055e4531439bfa9cdce3ac888066d17469dce07f76d0397bd46a59c29a4a776c8b7310021128dd248beec9296c7c5e95d13aae21303127778b653131babc17494f0aa63c18260130315bcca7a8c8521e7b9c9544c1260bd201ef23974957a6a4d3658d96a7fd4cb7daebb11e5acec216042cac64af05c8a7db570ceb09393c7a24f5ae305280b1c22b9d68b02a0c521dd6393c20cb3eb798db457ccbd869748aa2cdc8336a58162e56528c3ac7a7bb41e2db1a35257b6135247c7802024ca258f03de2ea93e2f6c42e539617d27fc62510ea016deaf787a2b3b930165ff1fc8e20413b90ebc827581b74988937a018f612ac4098514480212781c4ea128680448b58a5a296b35020c6668acc7a39ec329f3c5eb00c44f43c9ddd612c0860031669c911e0b4d5d20f45ec1b6c5b6be399c2bde785757215be7617aa6a57eb6b797c8c5cf774274b2463d0c85e1343554ba052fd9b36da139e13e04ff18427b418282a5642429825d15636da6c45834375d543714e80530deaae0b006488eca46974642c8307aa5297d34619dc39863f276189a20b75673744fb934420a138506fb04b0eb2e22108c1923784523e767dc70ca546fb820de07bb9663333e623889279bc596b2f559f5699c272c3040602a0ea98c878d2af1d7aa697aa83f1dc10e54017e2e586b220804588473c4b9d05aaae6ff9c038d00f953547ec748e62ba3426001c3f669941596c6184b353d3919e591df898831eb11aaedbc49b88c8187cc13eb79eb09c7e07545be6041a9bd0a70519b17b5479aef79d105b83d74c08c719843a94bd1f76baf7e3bbd6795e05830184c53f42061f4b6b0321e2561b4c474865a0c825c96f9269e12742771c4c9b20b9380540772a24b43c2ab3051b88ec4760f794c17aaa55199e39eaab54c53aef32bfd339c824501972eb5ed299908ff0ab3da01460f106919b450bf00678967e45c18531d112b481918fb7023efa1617da59ff391b84b03ac199a1ab31208b918777a2c8a9706cc8359d09e4a817386ce09757c44350d10c4edf02625ed06dd3db07514639f67828c5077f0eb722f39587830c506c4bbb4bdc60a1b256bb157ed4770e603211d508165edccdb2d6cf37f039578176032c2158eb3c9d48921cb387339267bb728eccf97bf31309d08611b91271ec698d8920ca3bf334fd8765b0170608726a6220a3ecc14023f02aa4f31446b22da93597e4a46d451cada3965ef2148a832221c4d8a7d12157d9b3bc69fac8626b2dd1c44aea272cc2125dc79a4f90b56ea75144037a4f0060c33c5b6eca4572142310ce956fd6f31d23c6c9f6235057362b884a014fb5867b2c1976127a5a287ee371b7430caec5d35b63789b31d176d2553f82c8407f585c32511e3f0cba0ba60537780edc6ca22d1422ec8c3357eb203ee68c8fa135b0ac2836e027fe3161769c6838e98cd449c14ef2b07afc714cf02d91d387a27472217c9ea6bc5cd1249bba38842cf1b28701a6074ccfb7316dcf345acd84660d02381040cbe8109c5d423921b84771a1cba981c5fb08c5de08ae6cdb38fd5b9489357df11565d48a7797a6af82553225d73cebb362abb1ce335358c6776d9fbba731883ae7cc517e0a0a3bb5b970e4cda95a98aba47d9e2397abd7757218c5d7bc4ca59b70be5aa4d7b62afb54048ffb0c64919afb746120b383958b715d110e5e6ba666940328ab4510fa25e9b43537e566ef760d2cc52b07e5bc089b8ea9e166c513bacbccc332f36d6afc379e1a838ac24ea35c1260726d029651088996631c55e846adcf36c792c21011320b2287973a770d2636470c080b2893a09bcc8705306c5b364837b7cc89a9ad1fd9c1edcca9a0b4b81846c8e088b36fe361539060cc08c911c9058bbb0839183b0c59302171826dfc7b6fb1c623dba3f0f9b30768346a7714481b741bd0bb7ca32ed73a00a6a1874d8b7369f695efe75e00f03be6cac1476815ad889c69ec6bf7fb38ce9609c174b902b6047ead37da33285d1009b83c39ff67773cc46f7b4b2cee35e8e95100c31dc59eb9 +private_key: 081ace51252462bb622ed578c65c864be5210ad1cbe55b6288a8cc22d297edb0aaf549bc240963f0c65368cbccfec732a7345f43d563315442aa97acaee1036c58a4fb752984ac6e85c4b744f5177cba665ee2154b5c6c3c0455b4cc602d9c411186ccaf5c1a1ec51558fc5eb1713229ea213f261a249c225566c5d9333b9a579a907016406b709b8c97a0d2270aa0a11e72ac51e1a5192545c6515153e193ebaa7985bb23a47138bfdb6f96e47e8bda4042cbcd993948ffb7ca2673c4a3773e9ce5a97c34c543ea24eed7537ba8a5604ca316aa38b0b04beb922c9c62af8e010a8ef9b22ac92fbb7a6035e0c842c3caabf12c90b706cac75f6868b26b8ab652476d520662faa46ecc990a4db166262c19521817b3a82dc3b8b671ba21dc4b06f3150209f890be837882570bc7603c48026c44415ed938146c57b36c361b7c0b0e04bc81f532494a198af962208e0785ec1601b57967bba750d4a34bed69c1c4b2982b97a1fc49b4e7e970307087930b32a44ca7fa4c4bcf5a91e1b86a2d8c60e3019b7cf98f634aba74c84911ac4b159636a4d49d63bc81fb2210fdb40bf3b2a467cb101c43c68473046cc4b6b741bebd71b27a56ae4de70288d74e6eabb2f9a1b334f4274e7369b7618b31316f5555288ea88310b97ad7b425d052b21fb42487331cdaccc4398bc0a67b4a28a77a2396327a95cc6cd98b54058428d9a9d7a45f83ea5e1bd26222c60cc3f77e0cc87449836940815279ecb65001c5bb4a599771848e10a64d8c4ac30b57c6638fb11bb1350b1d5fa34153804556266fc8d70a4b56067718c47899a134e36a1815a791600a14f43c9a2065ff786aaec7a7c4571546ba339dbc41bd98c462a85e5b72cdd07c5af9979f74c32b2d501f05a57d5d659958b78f26853500dd47f0cb8ae5c08db6a6a97c1312ae3c20bb34c4c3a2a9177cbc1b152c2f9940937433b3414067093375fc6bdf44b8738b4ad95261e74371ea2cb2eda13b57579cd2a939f7c9a9950a32ad07baf63c02603a626d9c7edc89817ed02bbb376dc2c523b9a84e45dc811d736789647c5c291aaa9a3d01511b9237a56e26130445a4486962ef8682f71412104b7ffec39b11fc713a234ae3087181a2ce5a2a3e7bec354e2921806b7c99c57c8f5bab84a83dd75b16147ab62a39064b530462e40d38c4971c18bf39f469d34c12dce7707ad61cee073c6fc0cf6ae259ce16890c2528a499b98ac82712b8aee7225b78ec01a19bbf5692366e737591733015616c38e30924044c2f551cfe2c90755362c34abb53c59fdf8a50c1e392af7a0a739a5626246e655991c41c9aff111e2c21cddd5242801561747306fdac5b54cc4e76543e39900e491cb24fe353b45b38de47cb3e05693c9525f88b4886e1514564231caa5f33d776cdba9d6ce8323f7c02ff9310c7227a37c172392a85f3c234f73c52ecf48a3385c310554c04481d28b59185b8cdcf80437b04087a7820e94b95e31189f2eb4a02e4cb13e683971b9d9d912d2c369488a1037b468ca88061b1a96bb8acb2a21bc54b402cf84798008006caeb9266b9783ba81482f02e19da185aac95e233659672479d02c0e1a418852230f28a3faabaae8c058a995cb843d98e048499f7250e1b40c532380917fb8156d0b5ce338fb6256e31752ba16aad5b9c7e1017188de86e509109586cbc59916993a5226c13332bea339716a228cb2c6a90b485440a98d6cba8c5592b692763f853f56c35948b0860e087a15a78a134c3585cb034f135a2b79d2ffc73db89b65512253893cd2aa937eaa1ad24d0aab311845becac9f15b7ec1b6a51aac4aa45c337b44644499cd464cd6f717472a08cedb8570c8714d088a2cc21c4efdacf8cc59c2de91764141acb26851cc584484728fa1290a90338468aaf944c943beb9d7295cc500054615ab770423f82f329e3d3b751c70589c693009d7c1634b5c43ba5b795ad3873ada60669835a034d61439f3a897c021a057616f911087bb626ebb5a9e6d63e896371ae4192c93471b66ac0544131ec28074cc6a12b4364fe362c2fc68f359a7313ac5d744989bc33b1846a2b0db449f84a273738c9f2d98e6bda993dd514f17aa047e8b72e413bae7495f0b58b38b71d85a8cfc1f183eaea4cc281a5ba6a876d7233107b1beac2871f16b152d08e74e28a250999db0a6db7036711a24370401ab844cd39b124b8d42e8a15b2bdc85fe3b11c9caa30ee666f260ab0f0e230a5901229b974446428a9e24680a884208a2dfd3899ff1a4920b798ab275d5a10b01503d000c23db72ccbb3a91ab0186fa7850de3055e4531439bfa9cdce3ac888066d17469dce07f76d0397bd46a59c29a4a776c8b7310021128dd248beec9296c7c5e95d13aae21303127778b653131babc17494f0aa63c18260130315bcca7a8c8521e7b9c9544c1260bd201ef23974957a6a4d3658d96a7fd4cb7daebb11e5acec216042cac64af05c8a7db570ceb09393c7a24f5ae305280b1c22b9d68b02a0c521dd6393c20cb3eb798db457ccbd869748aa2cdc8336a58162e56528c3ac7a7bb41e2db1a35257b6135247c7802024ca258f03de2ea93e2f6c42e539617d27fc62510ea016deaf787a2b3b930165ff1fc8e20413b90ebc827581b74988937a018f612ac4098514480212781c4ea128680448b58a5a296b35020c6668acc7a39ec329f3c5eb00c44f43c9ddd612c0860031669c911e0b4d5d20f45ec1b6c5b6be399c2bde785757215be7617aa6a57eb6b797c8c5cf774274b2463d0c85e1343554ba052fd9b36da139e13e04ff18427b418282a5642429825d15636da6c45834375d543714e80530deaae0b006488eca46974642c8307aa5297d34619dc39863f276189a20b75673744fb934420a138506fb04b0eb2e22108c1923784523e767dc70ca546fb820de07bb9663333e623889279bc596b2f559f5699c272c3040602a0ea98c878d2af1d7aa697aa83f1dc10e54017e2e586b220804588473c4b9d05aaae6ff9c038d00f953547ec748e62ba3426001c3f669941596c6184b353d3919e591df898831eb11aaedbc49b88c8187cc13eb79eb09c7e07545be6041a9bd0a70519b17b5479aef79d105b83d74c08c719843a94bd1f76baf7e3bbd6795e05830184c53f42061f4b6b0321e2561b4c474865a0c825c96f9269e12742771c4c9b20b9380540772a24b43c2ab3051b88ec4760f794c17aaa55199e39eaab54c53aef32bfd339c824501972eb5ed299908ff0ab3da01460f106919b450bf00678967e45c18531d112b481918fb7023efa1617da59ff391b84b03ac199a1ab31208b918777a2c8a9706cc8359d09e4a817386ce09757c44350d10c4edf02625ed06dd3db07514639f67828c5077f0eb722f39587830c506c4bbb4bdc60a1b256bb157ed4770e603211d508165edccdb2d6cf37f039578176032c2158eb3c9d48921cb387339267bb728eccf97bf31309d08611b91271ec698d8920ca3bf334fd8765b0170608726a6220a3ecc14023f02aa4f31446b22da93597e4a46d451cada3965ef2148a832221c4d8a7d12157d9b3bc69fac8626b2dd1c44aea272cc2125dc79a4f90b56ea75144037a4f0060c33c5b6eca4572142310ce956fd6f31d23c6c9f6235057362b884a014fb5867b2c1976127a5a287ee371b7430caec5d35b63789b31d176d2553f82c8407f585c32511e3f0cba0ba60537780edc6ca22d1422ec8c3357eb203ee68c8fa135b0ac2836e027fe3161769c6838e98cd449c14ef2b07afc714cf02d91d387a27472217c9ea6bc5cd1249bba38842cf1b28701a6074ccfb7316dcf345acd84660d02381040cbe8109c5d423921b84771a1cba981c5fb08c5de08ae6cdb38fd5b9489357df11565d48a7797a6af82553225d73cebb362abb1ce335358c6776d9fbba731883ae7cc517e0a0a3bb5b970e4cda95a98aba47d9e2397abd7757218c5d7bc4ca59b70be5aa4d7b62afb54048ffb0c64919afb746120b383958b715d110e5e6ba666940328ab4510fa25e9b43537e566ef760d2cc52b07e5bc089b8ea9e166c513bacbccc332f36d6afc379e1a838ac24ea35c1260726d029651088996631c55e846adcf36c792c21011320b2287973a770d2636470c080b2893a09bcc8705306c5b364837b7cc89a9ad1fd9c1edcca9a0b4b81846c8e088b36fe361539060cc08c911c9058bbb0839183b0c59302171826dfc7b6fb1c623dba3f0f9b30768346a7714481b741bd0bb7ca32ed73a00a6a1874d8b7369f695efe75e00f03be6cac1476815ad889c69ec6bf7fb38ce9609c174b902b6047ead37da33285d1009b83c39ff67773cc46f7b4b2cee35e8e95100c31dc59eb9d604833a540d9922a7dba53d67a38de1634cddee1b169b45bb9eb3646e55fc0dd82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 + +# Official test vector 89, seed: "96d9a06f88ff2c2036fa8e914b89c765e4a510b468dee40f914f78858c811857efe9fd0e17c0048e7389e8d996b7e2b0" +seed: 470b4943f0fe7fd0d8ec5185aba0d1db09d112934e4fb4787e2bbc6b88466e7b8b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a +public_key: f8ca36bdd81e5969c6e2f8a58829a9b7697b6b36983e896e82b40738740fa2e6b657616b0b4cc0b15c2292eb5b42550f812673194b944b830051e4206670bce9734f53232b408a6cbe7542712352c453cac39741b5b940151580482b4752d16f58a1c090b101cf985034299840a186a1061e59eaa300b66fec19a3abac920a1a12e1e4070aa37893923067614f9e53c0d859917626c6d6658a0324419d0b0d16a647ed57c3cee638400875cb0436671a0c9f472eede423125a95c86c60d2301c85660807f43f35208716905ab4153b6510c128e038920a3a13e957e2e209afb46c7e0c9e92fabbb80063b93c0a963b1aa2d49f48174f86c761d923259ee04c65f4b85dc110cb04ad4e26c369682e213ac4114824a526b2e6a21705174110b538e3562bd93cb251962e71782d89e562482a51949707ac8337b78627d489b193600636fc44c44898b2dc7c87332f3dd9c7579a68e0c01211fc1957c43d781473fd3bb17ce14456e62d93c236bd9656f5ea8088339668658ed8cc1e909a026fb76f0ec747d5a570ab88aeb44750710c0d10ac86caf73f8e2238b7e51da8722317973bd544834fa31571f48744b6a7cac95e1d3375949038588cb1d5d50476629432ca9e43076bd260b1a6a3472be2cd780177c4750b4080c09c820bf9f1ce2de695478ba26a216ba2b032cb7729770514f71700864ab0e3780cf94cb7e94c88dd673dd03b8690ac65b8e0c597fa8098111d36ea9fc4b166d9e6bd4935993dbc8f21acb9f53a20ee118a721541425a31705a5d67a6196c91a96dec2b2b48536e118afbd5c8fe46455aeb282a7a6e73b734001b6d3a997ff1d50ac7d3c97eeb4338f13f8eac05cb0b6f7f60908c0b1ed89682192a6ca384c7ded2170674c353d9aeb8696648cb83ac986dff669e23f49c47e9208df49187c1155bb1c876d1242098bb7951454e677c67042dcde2af77e8090935b5bada59c4252c6889b16765a033d98452f25632710ca5553559d76358c162c70c1b5624abc090b59960c65889351529bdae24170751a45a566ad858444ff61cfeb7003b08605f3b2558577f0e12b31a447d377294e7e4060ec12a5ecbb9770bb8707240c1237b08c744e70057d0e68e2fca1cced27a1997389bdaada271054f72b849329e9a2321aeb03a940c44239844e94181b627876838671bdb3e9b4061fedc74741b4b5e9c4b421167bf420cc8077c5bf02721076c1c5462d7624f8350af75c50eb7267a96359004166c84145e72b731d5a82d43469c98b00a0c2352b7806313c60c04dc5f5c8b39d50376a9461f2a8773fe06973e852a04025ba6592f632bcfc3ea0ae572a50023c684a4a7a0db573ad1494458990938c624e5928c028ec48a9a26492420781071d13a85a332dbd8abb8f318a31596a38c7efeec28bbc1aa38198aa66ca68d811cf5700d9e093e34f38d0cc74a989459ab0b200a8caaf6d40ab5e5cd651c05fcf68e14a1ae602560186a10aa452328218e41c49b7e5154c67099ec790e88ab641ae03dd6acb82c33a6d4034a775515c52859bfe354b2e881c7c577bd5663b19b124948739be90addb36348912710cc12102553765c580512b22ea35141ea4ffe681045497fca77ad2e35c1a5b31baec2a8279c783d28241c923040607d38463a9b615be08ab87acc5e31b84ed8376d75f31dda47c869f82ce14022acc6c70429ba854b58e942635a12209240bae3137ec8a40e716655a0a82bd02003f20428d15806594435de6c39b746298aa9a693577783c71154cb31b7b31283f46733d199ae627ddb7947c4f4aaf1172858a97ef6140f56477b80450536396399a14a984caea756b1b5c09ed1f43c4e1754f40ad0bfc8c5f153346e0113930a3c9ad215f11c4ece2875c41516b0a8452e948f3f3cc45960bdd8b23f14eac17927142eb4a72ef6c3585899efc128f53b022015b2bbb9642b5675be352b9d442194d54d5b40a17c236e8a275dc2358fb31471a3f521b444040d983e64976b50f71441982f29fc690c41a954512f82a3abf85235847a28982009e3303239454ce0c7a2c3840cce031ad37516e6a3ba59b79ba4478afdeaa8ee8ac4731ccbb34125d0a7c6504a8d7e285171a464129b714d8521c69b8d952b4623aa8967f644c8c08bdef96117198e56c12602501201e036804129d528d717640ea33c9fb4885d61fa43860dafed4282b108 +private_key: 18264c57aab774ea1ba3555c788511bbc7bec8d072c953579d7b8558425123a057f94bc5670c85b11b81963731fc611bf751973a1105c7138d9c8ca76a559d20d25c79b64b70a91224e8110f623da7097668bb1ea2a17d8c085128225af2506c3f52a1f57011f849cecd605340724aa418ca6a86204fa02b0efb0102e4b2d6f34a2817643ba33561827b3ea92fe0270fbfe89c3f84438c4397ebe8a735a77cb8597ad73b95d170b329d491ba624660a01edd634acaf45303133127e11b4a3b95804620a7c6b1f84bbd916744d18487a5d9a54697716a965b7a9530dcb406ff8b276787ac9e846cd037a00852662a6b73e976807615bca1c00c1554ad0282b544daab0533b1ae9c1e71061dc18a79486c7ff9f0771a8138f93983134c5cf123955e748ce224ce925883c3565910088fac9393d423ad55ba3fad9012faa77957d88573a721f372b2e3fb977de30f72116090cb1cf02b0c1ea68cd23cc593e715a6a53493759f16a26a5c5745787115aaa233ec305b65b846c775bf36a754c8d563e25ab9e7681d589632131b8596b36a4fea7382938e121c38d4b2b218b90d4c602354a3bce5b58c4841c8daf61f8573b7b1e46f38e203bcf0a0d0981576a45215f2c7339a6fe91839d899b995b839b9b465aa942f994913b906698b9a31530b0d4f096de5aa3e885c6ad9468e1e674fc9b2acd26c4a20ea5363f32d745a0af3f037adac5350f07c5ca17738a243a29564455290602884866913d62413ca628aeaf248885b7517033583e05ccd55ac272b8cf142bcdf0bcea1a9c271e747c8507fa6bb89b1f0345300bddda4bf13b40dd323c860f237d8f2b14e03cf02e923990bb8baf13fbfd355cc3cb46bbb41b2f265a403c58e440306c7ca5a11cf2265562898b2ec28b5c6d396a1c668fd95b02e3451621a2d7212793e0921324450d601a19c975d877c84a91aa4b1e381d4f9256c0428c32809857b1cce8b7ba412a3f7d4b3135954177865677c45191294636241609c533d548dd5e8131be776724068a59242c1263e55abc515e4b3536c6cc836a140062e11dbb43ef9831a012b8c34714467906b78a5ed8a8e515258ddc6abbb0a110b6451544b78d85cb0dd78894d9ac491a7a5f08114833bb9c7628dd4061610944fd3a92205d7be722a8f2a51a07d75ca660107254c88653a79a8d79811543dbaa5205c290a4f615df4a24e7a7012155006db9715ccf712fd65876013a6c5f12c272c112db75e0c2983478328066496c34bcd763703e012076f85564719a4b477b8fc93845d30ba64164b28fa025ccb077a457f029b367ddc001b8cbed771b391857666ab88672b4bb5e4b653a8035225708b897fefd950f8d9614e310ef1b65942d53ba13611faf259f0a02c1cc357c36870b8b747fe1c66a5097ff49607007c0f52a74017d798dad417cb308ba8b0381f692081c51fda5b21cc5a471f5321d2128f0867714b141a37d983f3121054934b320aa2b044ac971870e0b2a6d14227c785504d341e3df90c586b5c66243b01b42f6686afc0c8b6a2faa636e39a0c550a7f61ac5af769e2573cea2a8da6b8adfb03b12c74b330b02042e8c2921239c45641ed1899376c7939c51c08a15e23493c9b8a6396c44bbaf4212b05cea4668a2e851c56ba56abd11410e21b7bf18347cb020c33429c15b6658248dc75224189cf5c53b920068c855b24f9809cfdf8c61bc9662e981d8dd896c8b99ee667cef1a4cdb2f14df05435efecc3d974cabda81dc18192bfb39ccd144787bb3a6051b06b1082f2b75eed10c4da0132d27c4fdd854b305b02c66a04dc50407d7160f1d54929e91a6a008d0a28cfe109be18774744250c69aa7ee7bc41944597311c87438441cb59b082a5348e312b30d66f936585f356c06d761ecb04b48339082f1542e3f3cd885aad7056a02d075aa825a3b99848c2e2ba518aa4e6662198fa871f744bff97351e613cf2e7505d2115be9a7386680300c1a985b39e0eb3769f73576eeaa28ed8c0f3b76ab5acb302877bce254fcf3636b4f6c4e0089d59305d5f819be4f380d669186a24214e9b2477334c25d23910907240ca8f7e1720dc8abd38e2b88246be2a55c72f6c1db3840370836f93992893b98f42f9180778795830ba59f09650986e5197a4dd239f99e7b5f8ca36bdd81e5969c6e2f8a58829a9b7697b6b36983e896e82b40738740fa2e6b657616b0b4cc0b15c2292eb5b42550f812673194b944b830051e4206670bce9734f53232b408a6cbe7542712352c453cac39741b5b940151580482b4752d16f58a1c090b101cf985034299840a186a1061e59eaa300b66fec19a3abac920a1a12e1e4070aa37893923067614f9e53c0d859917626c6d6658a0324419d0b0d16a647ed57c3cee638400875cb0436671a0c9f472eede423125a95c86c60d2301c85660807f43f35208716905ab4153b6510c128e038920a3a13e957e2e209afb46c7e0c9e92fabbb80063b93c0a963b1aa2d49f48174f86c761d923259ee04c65f4b85dc110cb04ad4e26c369682e213ac4114824a526b2e6a21705174110b538e3562bd93cb251962e71782d89e562482a51949707ac8337b78627d489b193600636fc44c44898b2dc7c87332f3dd9c7579a68e0c01211fc1957c43d781473fd3bb17ce14456e62d93c236bd9656f5ea8088339668658ed8cc1e909a026fb76f0ec747d5a570ab88aeb44750710c0d10ac86caf73f8e2238b7e51da8722317973bd544834fa31571f48744b6a7cac95e1d3375949038588cb1d5d50476629432ca9e43076bd260b1a6a3472be2cd780177c4750b4080c09c820bf9f1ce2de695478ba26a216ba2b032cb7729770514f71700864ab0e3780cf94cb7e94c88dd673dd03b8690ac65b8e0c597fa8098111d36ea9fc4b166d9e6bd4935993dbc8f21acb9f53a20ee118a721541425a31705a5d67a6196c91a96dec2b2b48536e118afbd5c8fe46455aeb282a7a6e73b734001b6d3a997ff1d50ac7d3c97eeb4338f13f8eac05cb0b6f7f60908c0b1ed89682192a6ca384c7ded2170674c353d9aeb8696648cb83ac986dff669e23f49c47e9208df49187c1155bb1c876d1242098bb7951454e677c67042dcde2af77e8090935b5bada59c4252c6889b16765a033d98452f25632710ca5553559d76358c162c70c1b5624abc090b59960c65889351529bdae24170751a45a566ad858444ff61cfeb7003b08605f3b2558577f0e12b31a447d377294e7e4060ec12a5ecbb9770bb8707240c1237b08c744e70057d0e68e2fca1cced27a1997389bdaada271054f72b849329e9a2321aeb03a940c44239844e94181b627876838671bdb3e9b4061fedc74741b4b5e9c4b421167bf420cc8077c5bf02721076c1c5462d7624f8350af75c50eb7267a96359004166c84145e72b731d5a82d43469c98b00a0c2352b7806313c60c04dc5f5c8b39d50376a9461f2a8773fe06973e852a04025ba6592f632bcfc3ea0ae572a50023c684a4a7a0db573ad1494458990938c624e5928c028ec48a9a26492420781071d13a85a332dbd8abb8f318a31596a38c7efeec28bbc1aa38198aa66ca68d811cf5700d9e093e34f38d0cc74a989459ab0b200a8caaf6d40ab5e5cd651c05fcf68e14a1ae602560186a10aa452328218e41c49b7e5154c67099ec790e88ab641ae03dd6acb82c33a6d4034a775515c52859bfe354b2e881c7c577bd5663b19b124948739be90addb36348912710cc12102553765c580512b22ea35141ea4ffe681045497fca77ad2e35c1a5b31baec2a8279c783d28241c923040607d38463a9b615be08ab87acc5e31b84ed8376d75f31dda47c869f82ce14022acc6c70429ba854b58e942635a12209240bae3137ec8a40e716655a0a82bd02003f20428d15806594435de6c39b746298aa9a693577783c71154cb31b7b31283f46733d199ae627ddb7947c4f4aaf1172858a97ef6140f56477b80450536396399a14a984caea756b1b5c09ed1f43c4e1754f40ad0bfc8c5f153346e0113930a3c9ad215f11c4ece2875c41516b0a8452e948f3f3cc45960bdd8b23f14eac17927142eb4a72ef6c3585899efc128f53b022015b2bbb9642b5675be352b9d442194d54d5b40a17c236e8a275dc2358fb31471a3f521b444040d983e64976b50f71441982f29fc690c41a954512f82a3abf85235847a28982009e3303239454ce0c7a2c3840cce031ad37516e6a3ba59b79ba4478afdeaa8ee8ac4731ccbb34125d0a7c6504a8d7e285171a464129b714d8521c69b8d952b4623aa8967f644c8c08bdef96117198e56c12602501201e036804129d528d717640ea33c9fb4885d61fa43860dafed4282b108cac59b140df7d3285c832994e7a4ff5491c786281fdbd6f43a4c3902d4eac0d28b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a + +# Official test vector 90, seed: "d26ce360d399bf7b89dc364aa7ac06bb513eab8f527383e93e30727edc3f22c262aa0ec70257b39edff0630dcdc1b79a" +seed: 6df4385db978d27b27d2aa5e452e4152b36f097503d9581ac3390105c5727e7dc95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 +public_key: c19093bdf18070e37b3ab06ade8b14de2b34ca99763f575e8d75177c72522c6c4eced8ad20ac6bfc4aa329e765f986579c373a3a333d6167c2c7440e8f4131ec305188c989140b63b65019f2949c81c36cbc45939c026a42a1554f2385a738a229534cc6552d5e76076087c9e5b260baf8724973b9152b3941fcbe19227bb7987d74856d3636049715beec638db8e3b1d4e3ba2a440b46445369b60e0ad3c9c07c3203e2716ffa51eb5005d1a797079089f6e14d86d988d7f960f0dcc553a83f7433be60a463b04423a6977599b7c1f7730265807b3f7b2bb8a625e0b0a0f3f1171d6c4e7a9a6cb5803b4871501453ac19b576364c3bd7e01f1bf475a9e71d557171e4d33bd3d14823672f27e356c89395c1476e0fa065dd168478bb710394116de27cc3b0617ef5b74ac718e8b8c152c052a4d57828824af38807d91295a0da9b49dcbda052317f5576e52b51eca732d8d260d08832918094de65ab48d3351b1327568574dcc82e3e8a222044984649271b3b45861ab6f5250a770b59071309d118adb32322739cad7227ad2b3460d156c065713f29a05ec48bb21ac7261aa6a0f3f19d05f0aa577cc8cad6a7fbd25826a3cc6ee225c1b183d8e124055414c54469e4e410828bce94a5cd95e22c7ca3770ec5a023f0656447621006929174850c786fd6357f36188a4884cadc108485277890a0114b4c565747c4165196e3e90cfa659662d992c33bb2582970ceb60582a691d66174952841ac5a64e53b31566671054486ee20437e245e234176ebc696a55a53308abf020b40b944cbf382155ba02fb9ec298aac3c2b81278772c9e0c730ab13c6f374ba8c886300831adcf9ccdcc566e2456bef479f4ed08ef803ca8719c382dcc667a21897db1f81b41521790ee233020f3301bc9910dce2202bf4329f632542f820bcabbd2bf38962e6810bfaaa5377a83b10a62495029e99c4becba9f0b3a54f70788f97ae54f01781b8505c27c23b810ee9c7452952af9339c4ab88aedaab3b9f951cecd828daea0888a3481ab39207a6851c0285226136ee392996c41b7d93221df711d44531c8818bf3b71aa65aa0a3b5055634699b007a47210e9583928ea984c413598868bfbd021cff817c426caeb3a77c9067b04dd3cdaf2b840af6a44e5a5ec3956b21697cddcaa035c46159262524e55f9923a5c44c1c747a1e35889b20ac2ecf5883577c0722316d6a82a88b21c8334ba25a442101b6828b10b1d9280f13f867e10c88ff3cce3af457a4ba82ccc4c231ca991b79c66be0c56666c80656845789b45f0606539149cb12b0917b297fa683031413d3e89d3e38544ec40cbf288320bc3b812311ef69125e641232322e3f1ba325b668174179e38868bd50233c78b0cd8721acb23b0b065a13f36a2b8b8245095cc785c64997add4a33b45e9a602b10edb318830a046d8f700b2e76094228a14a251e8f48403914cfdcb9e3ac0795f907cc592ae18d322ebb882a1473ff2fc666b7a829189a4910c60f8b1193d59515280bc5a9169ca6433c4e560db8ac756944fd9ea1dd1a0c9f9f57a474c32b94730460046251aa7d27a9a3f2c617816386207449d8c18f04537084a3f464b737c1a49e59c9042876e0556b92139225fa3aadad3b5f18752dd614c1fc200923c0e0b4804fc5b26f7c6cdcc684da00289ce344518c7a480936e46ec4c01b36a7f2645074b26d0414fcfc46d2ada8fbdf1c50c128ec5d2abe11ac78205310ac8aea724a117f00246046c4360662101b191228628383cd9047a28025cf8d6a47dc161af353e9067ae4433803c48b3cde24466d00aaf68be2eb1a209e8b1f6264fb14873edac70f834c710acc18fa4c6d16a627b03406fc7501ef71e62963e01869c80787af2d96a4ef8c72d273a3318c2826b8bb513bb2f6739648666af720fbb4b7785c853bc1aa4cca2c9d5852706b7bdde4c06c78c960265ce1887b5e13275f42377447751ac0bc811e26c2f65bb19e058d573a64959bc0d74727a4b5ae8ba23f2179ffdfc171563712eb028d9524af43c6143277bbd537f1155b04c0006b66036161472a199764ef7283e044c62a7244593564b15436b435da9e995fc803964f631f8332fc8887e49a87c5812860cf96747ec5891a9ada1e769af720e946c9727731449cc7179f73e867c8a63b210d73ca9f8d4eb44b5da3b57dfed46bd22ab85b9bd915556 +private_key: 6a45c4d6507cd4abc9be8cc42a75bb661007f8bb7c8a408e51fc9b63fb8575683e3ac77aa6862f808529819219d8639f0c261ca4a2c2021426b53c19eb7c6dcb554f39952c0f4940fabb4c03903c5bd2592fd4178a68601a8c4b4fe598b3b874dce5581063351683a672612904b17bca915ff161c26aa8a27b212a7650b0858736c1d7025a987c91171e4465702007b4bca05fef05186106b895c62c42f33aaf449ea0d4982c46276069a970e04e8c58ce53356f18a99c7e2a8b1a9714a64aacb42338a2e05f377b969c82958891a9c335ce1ea24865ea1440d99038d82035cab7d011508a802da9b51a00192344ab9a38a59a2b203b448639b89a80b2c2b3f6163562cb2a01f526bf812181ac466c55013c94190172c086a2cafba3152ff247b89120efbb1e957a33615924c34c0260034a9163c3da2b2afa4302595c4170953864990a95146dbf30b379f343b2f236c03bb4851775da2a50f9a40121f7107d184d410975ed743fdb674b179c396b33c808b1af0e717eb95000b62526598879fb5b972b54668b62306cc2c196f81113b72f6e4b0433b44251121cb7b872c54656a8e211b30b57c17a29fbc91de1a8943eb2a0ec7cb04b4b3d4d057c12181684519da9da271e8189c8a6171f9108740482da39c8da064f5d2745ea9585702601513a2c5c1322fc95a7ef15ad1c4353710080ccf396f2f006335480ac1932407b048e72c0ac24a106051e7737a1e11ab0905ab829404b5e37bca2ec9f9bdcb370b68404875061f1035978a3c7f7962fe015aa4c019465cbf37c929848c335e9cec829218e15902fe045e6d43c845b99a8878ef7a73238fa87cf0c58dcc3913dcb29238928d948c94bd54029d9651b25401e64a29df9a04c15bdf047a3ae857d74a5a22b383069ec24bfdc3e0d85aa892c6e69651a07eb61ccb40ea1d0bf624a17c4b849fae348f8a8c326f875dad81227465688b264de92a195635a690b3d6126989af58cb6e205cb8253ae8472e2e9b2c8d711fea534ba41c108f22cef0829f1bb4372d7a76dc4901f07aa413395998734390c07be80ca1dc6cf087b11ffb180f94b86c051b505752d27ac9fefa29fc849c77201b90641906492b54cc595e1dc71738a678451aeb9d4a30bfb2776435eb3d990f8405623856abc7980b0a4c65d40abba6278fa4c7b3ecbb718180fb3225b597acfc7e43caae9413fe858359334499a921b3216a03403672b6b1920c6f39b8ecdba69d87ca52542cb0898477587aaac8369f6e39ac7609c437456290434b002b2c3f32b05c41c1f827accf461dc159fb7caa9856438fc232a5b4545c25c66a8a25c1f240eaaaa263f22cf5fa86506b51fff385affd91b6ad8bb599633264c3ce786670ae70266f898a48040639ccf334188774c90b08b99e1a07be3244d7ba319146711faa921b647c7227b6caaa70152701562d81bd1d1cceec218ea967bdff454fb176f6ec504d7285779c3866763cff23cad659803b41448bfe253e391a21c67b89911c06e7c78b6b2ac56f737aa027cb7f80fcbd0897f60781767980b89266e342e80c97bc2336be308a7ce393a229836f765086a6709191878570c6919d825e6c2a8f3fb9b4689079ca814759a8234b5c49c19623ed637859b991335672e168b7a31b788667cb088c4da1a64319824f2002be6d942c3e4891b032cdd347361352ffd3022f68017184110507017243c68906425c883093ca944ea118b20a30e05f740fb86c96742cab2c086c4309fc53760e77a8500fc6830ab9fab96be00a319615905325103113956e233728a8c8755789f0b0b5f6061b320f0c3217415eda617d33758fda34c0acc07c4c46a7c457ffb2ab6962397e1349325a90dbee0aaa5977047549f28873e034aa770064fcc40c069166061b5ad66277320e989712a30a8969882e275b160046bc80077dca73b307d71979c55731741e916657a1a46104d511b7bc8378b833350be93c3015b68a8c651b960238853a294853d1f60a32d016721c25a30542367426fe2a22b45945a4c61117dac71cc04a9ddb9b86a5b4b25569a04a19d28778e6fd27ca9763db9e4b40a773b1fd53dc0466ca2086a561969d842310e5bc14cfc22fd3a5b4a969800e036e47c9f07b3aaaa0181cd8cb43b11534e267751337bfecb7ac19093bdf18070e37b3ab06ade8b14de2b34ca99763f575e8d75177c72522c6c4eced8ad20ac6bfc4aa329e765f986579c373a3a333d6167c2c7440e8f4131ec305188c989140b63b65019f2949c81c36cbc45939c026a42a1554f2385a738a229534cc6552d5e76076087c9e5b260baf8724973b9152b3941fcbe19227bb7987d74856d3636049715beec638db8e3b1d4e3ba2a440b46445369b60e0ad3c9c07c3203e2716ffa51eb5005d1a797079089f6e14d86d988d7f960f0dcc553a83f7433be60a463b04423a6977599b7c1f7730265807b3f7b2bb8a625e0b0a0f3f1171d6c4e7a9a6cb5803b4871501453ac19b576364c3bd7e01f1bf475a9e71d557171e4d33bd3d14823672f27e356c89395c1476e0fa065dd168478bb710394116de27cc3b0617ef5b74ac718e8b8c152c052a4d57828824af38807d91295a0da9b49dcbda052317f5576e52b51eca732d8d260d08832918094de65ab48d3351b1327568574dcc82e3e8a222044984649271b3b45861ab6f5250a770b59071309d118adb32322739cad7227ad2b3460d156c065713f29a05ec48bb21ac7261aa6a0f3f19d05f0aa577cc8cad6a7fbd25826a3cc6ee225c1b183d8e124055414c54469e4e410828bce94a5cd95e22c7ca3770ec5a023f0656447621006929174850c786fd6357f36188a4884cadc108485277890a0114b4c565747c4165196e3e90cfa659662d992c33bb2582970ceb60582a691d66174952841ac5a64e53b31566671054486ee20437e245e234176ebc696a55a53308abf020b40b944cbf382155ba02fb9ec298aac3c2b81278772c9e0c730ab13c6f374ba8c886300831adcf9ccdcc566e2456bef479f4ed08ef803ca8719c382dcc667a21897db1f81b41521790ee233020f3301bc9910dce2202bf4329f632542f820bcabbd2bf38962e6810bfaaa5377a83b10a62495029e99c4becba9f0b3a54f70788f97ae54f01781b8505c27c23b810ee9c7452952af9339c4ab88aedaab3b9f951cecd828daea0888a3481ab39207a6851c0285226136ee392996c41b7d93221df711d44531c8818bf3b71aa65aa0a3b5055634699b007a47210e9583928ea984c413598868bfbd021cff817c426caeb3a77c9067b04dd3cdaf2b840af6a44e5a5ec3956b21697cddcaa035c46159262524e55f9923a5c44c1c747a1e35889b20ac2ecf5883577c0722316d6a82a88b21c8334ba25a442101b6828b10b1d9280f13f867e10c88ff3cce3af457a4ba82ccc4c231ca991b79c66be0c56666c80656845789b45f0606539149cb12b0917b297fa683031413d3e89d3e38544ec40cbf288320bc3b812311ef69125e641232322e3f1ba325b668174179e38868bd50233c78b0cd8721acb23b0b065a13f36a2b8b8245095cc785c64997add4a33b45e9a602b10edb318830a046d8f700b2e76094228a14a251e8f48403914cfdcb9e3ac0795f907cc592ae18d322ebb882a1473ff2fc666b7a829189a4910c60f8b1193d59515280bc5a9169ca6433c4e560db8ac756944fd9ea1dd1a0c9f9f57a474c32b94730460046251aa7d27a9a3f2c617816386207449d8c18f04537084a3f464b737c1a49e59c9042876e0556b92139225fa3aadad3b5f18752dd614c1fc200923c0e0b4804fc5b26f7c6cdcc684da00289ce344518c7a480936e46ec4c01b36a7f2645074b26d0414fcfc46d2ada8fbdf1c50c128ec5d2abe11ac78205310ac8aea724a117f00246046c4360662101b191228628383cd9047a28025cf8d6a47dc161af353e9067ae4433803c48b3cde24466d00aaf68be2eb1a209e8b1f6264fb14873edac70f834c710acc18fa4c6d16a627b03406fc7501ef71e62963e01869c80787af2d96a4ef8c72d273a3318c2826b8bb513bb2f6739648666af720fbb4b7785c853bc1aa4cca2c9d5852706b7bdde4c06c78c960265ce1887b5e13275f42377447751ac0bc811e26c2f65bb19e058d573a64959bc0d74727a4b5ae8ba23f2179ffdfc171563712eb028d9524af43c6143277bbd537f1155b04c0006b66036161472a199764ef7283e044c62a7244593564b15436b435da9e995fc803964f631f8332fc8887e49a87c5812860cf96747ec5891a9ada1e769af720e946c9727731449cc7179f73e867c8a63b210d73ca9f8d4eb44b5da3b57dfed46bd22ab85b9bd9155568513eaa3de494e114c2700ed07ffc1c2f8ef741765e8a42579da4946ae0a201cc95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 + +# Official test vector 91, seed: "c5856298c3cb6ac9787a0f30938537ab2635b96f6d19cc9522063360e7a5c88e644929d2879180e3e5bcad2422b7cfc3" +seed: dbacba825728444921b227cdba54446b3f6881b47be9cd02832f78b023b1bee0e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde +public_key: cc9a64734c470128056a7b5d374435c099752edca129091770d6af831ac7805a7dd5657bcbbcc9d751b140283a2ec533c17ba38a392bb98421a4f0731390c30a8701c1396a4c17cece6cbce99949d0279119e8790722b0e2c748348a8a5a7c760826bbc0d395313b893a796b9d572c10432b2f5363b9682a89d1174f822bfe38b05ddc5b68ba3ad62497c3ab8ea6d13b11a6a69ddb1f1340b41f013952da1ee1e759d2d5459a01cece819e5de09b8d707c7d59519369660306c4174505a51846d5476d41d00393979293c1325a1b6673f16c32550529b21121e95f99f503cea88530e2c72b038aa641327181673e301dde28b0ba76b2b88453d1812499681cddf932370c864bc6205b6cb13684455fcc5e008bcdc16597ed661b3732a60e329df82820af51b1ba4647a7944c4dcc7a8f1bce390c44a9a7221e0c0943cb4ff6f048e2362f89f4113fd3636b97919e41acf042189e02a83b580e5d4a996fec6d6b7b33d690825f366d89f8952898152b3671685a22d8898bd62c83c32a1e3076aeeae845900ab2cfab51ea76c3022b52dc702d05b17a76609c88e69d12d7694edc3e91420737b17bb6844a1a28c0c756038a8c6c6a74906232b50d74cf532b5266d32d01034c56aa898d624727e5363e0bb300203e792b3afd39b5376998142acf52f6933a594c9a5872ab619a8a4317e86a91d419a78d47245b1780bef14abedb77ccb97d550ac223e5001e0b64a61b8fa0526331b409505a512b4b6ba7e3b4b630a112920b431292db5962b577af8d546b7465673a8641ab5807443085a9f0849b914a31393c1dab0fa30b3b1c1261bdc9a8ca69cc0f0432e91c1d42b6a8346cb6fd9cb49b189d125c8be422a690dc90ed4a87c70ca8e35caa16a35a3120b9716bae021c861267aea4244219c60fb1c788ce8264c0241156340daa3b1ae7725c6552cdadd4c244079cce22aa083a1a2c0810fc7ac55d77bb6ef934fb73a8e8f4cc299b28c42c5d26f36518ba4cd3b320ec3158b8b36108bb6d4f6427dc46653ec24927a833853b4b0af5723d8a3c5f37c17b3476d86161c57579cd020167a70c1c310325c6707fc82270f0c73d552363e2343b371fc1448b2770bfae474707305a9b32a6aa77c7fc7715cb35826bfa1696d67ec48cc0c9554691d186dd025ead64a9e39657be0292f39829ef696d3584b99c7367a00034395252f2443ef4692c163a5ff1863be79273a93192d10b661b9051d57572d5caa817338c52374ddb282d4722b1efac7339f1ce852867e4ba2a4d368ccfa58fda097fc59244fae273aa7c63f891bbbce875624800dca2b5d65b5a2d414a81c7525583c0160a006be08a68776223aa97525a1e97b241f59c0dacb50ec89b90bbd58e8f27c9f19729782b2c06bbb91725c3b6ca991e75bdc7850a0107674fabab38e28ac5b9b717ca7542ebb563d078e4c856447a0ac85c9240d77210e4ce850570ab693aca497819b5210e2cc957fa9b4542070171c56a2c1253e006cf12162e9168673a08d82b90812c8cb989394ca862aedb1ad9885598d39a42b3ac25bc914fc15eda2501d7c8c51aca0c257cb8b0c16de89900b2b12a875116cfc967553829e59510a00998440b93d8371a0b294aab2b4697196d397a9ccedbcb2f5414dc8c764189cbf720834327a9557cb44a90286277c54aa424d080822814626b753cb281b9f2fca8680c2e197bab18643c9b0aacf8445618a45814389466f67a5c557aeccabcf083cbdff5569e39cae20584ef46bb56456386f3c7ef5a5c196c51646b69154393bc7a6a6d0869e06c3f8ababbd7aa070f974e682398508a356c78c74be8108b42c6b53744c3742f16c84e5bc6750546739acbada819a2af9c5bbae2ca34f6215df82c10ac8a5873a2a8c04ced887730988c14f00a33821994503f9e3555f790715414095f05bc7d5c20dd9313acf98b10daa4053c90f3d2c0dcc676dba1cc0ec92427d4bbf61425935314494c3e65b266f16411a1250667954388fc5b750270e00a8bde873d3d58c627c6b31d8610597174366c8052f21e429c185bbc4c080122b4b25d00a982101b4b44c18bae64b7aad2a2bf646e39bb241df17d8c5b42db08ca0d6571097250072420ddea731357154e861809fcc1ceb7ad01d843ea928dcad3c1370b6b517f5473b94bd6351e282f01bf82a24c3ef05658b9e66735007b45f5b008a7bd +private_key: 1783c5f7f498d7d8c421436701176e6349c025970f41744b369852a6c2cfabc9096f48706a702d3ae62d6a2c79e068143f45ae3d472180c432d6ac6897633982806c87526ee2f837dea521fdc3c3a473a6d7405c2cdcbd1d99142d097ec5ac782cb80909b9c47b7a173922cceb52c926f4b5c904c5f342c460356c72751baf271a496ba3ded912e6810b8f498e78b194a02643b855aab4a6c7df2938a0da001c461b52829cda688aea4c21ccc478c04923406acf8a7b72f5b52cb091ca66d769fdcb2d2cf220c3eaa73db7888cb37ebe441d81d0b53bf41259433922a1c6df57062c2a010bc3c190e7c19157207d1b607ee33469334b3ee4500bda58a1785b2c247410573d6d703d822149a5ab5a4e811516b69d76f3a80fe8b84fb8ac7f3568cfd69521036541e975e5c09f63905e571531984921f9c159cc2964541b0b55860270ac7795f0c26a3b9fba603c26601322ba61ac86722b7933edd01c68a292c783a56d55c0254439e936af5b9970241c73a9244a271a43cff187bae40ef9cc6d47f23f3b68cb4ac08180537b16daaa329345f17102bff856891ac52e25bae2e95ec2ebb21b9330067091cd7b0a963588e9700b89fc4ea40aa6c4a2c8b63568663b8c2ec9ac281ac3d470098f559f49966e01a91631f263b834a19ae5b3d6d150509815684c300cd483c3fc475b324c8873bf5cb01609b58bf573cce0034b19425edca86c598aa4da9bc4ad2cc78545917df6962ba4ca06b0bbdb322fe300984e16b982773a0c1a1bba55a14f575150484f2be11ccdf97846a33aa8580c22aa647b7089a73831651c506045a05e785c1d682a0af364b4cb1fd704b1c306523d6a7394ab1abc34719a0c97f49cbe6ce9519f8b03556cc9c72c613e513aaa68074130456f2ac4775218f7a1c35ee07f229a7d59994f6b909c381a0385c2a6d1bc8d7a60a1a113442de3cd785b7679230ca6d49d17f2c7fcfb1fc2e7121e20b87cac2817e26854c392dbe25b31753db9c5923879777364530c4551c28a3a5d83c9631008571c2f889889e8c835eca3ce30e81c03cab74b3b5b198458f0f81cdfd6ce88e7cb79f704c0159b83345232541cf4ba04a1c2c2a929c3687996d25ab65fd9a93cc6590846a861c5b72ce4640b47673e5a883d44162f914a318a163b5c33c37a6330f34b28b22aa639978598c3c6ac93d811c60d0330ab500d41f950e51c9fde115619f022f9e88f7892ba41330018da306f42bcbc8cacecabcdb0e5085bb687fc14c55ba8630df92c3a2b7867e951f3ab12f8ba2417a70f766c60cddc85a012b60e368f7c75a6102684efb14d21961f2231c0394520ea813eea69465a8a8582e89beb3aabb9b42fbee8bbd4900ca52247a322837d58c9c7b0a9e5d246178862253c7baf2081d7c02367956a7a68554debac141c634048053d602645a88549b94c95d907ac1c02058c66fd5b894222331952c4e214ab1331a3b2a83dcbd8c747431565026ffb231e9835961919c659f734c665636196aaae827bbe2c30f736384f74cec5ccc3de622879f6afd1a0c472509f9460b07e524bdc65cf605a36ee35cd6267403cd91b8ad8376c670c3be6b4ea42c3cd46b275b9394db41e0b389642461d443ba0163b7d7530243b911a64a27560e3956f18744a673606089fd611c9b5d4b6e9a5c0927632b259056d95235ed5a0490435127405cb164d8b0540bad0b706a431fe077d2e385e4b64beb3a8527c1921d119c6676bb4e59937e0600c07f0925d665a9b643e034478def83188f4caa30764394a3fb0c3b9f4c2243b0a53f8b2ccc5d96ebb0478201cbc7e165fefb565ea149bed831df5dc4df16531460a28c6e708a7686f61101d327a88f998223c9abcc7d22b5ef78765e075ae4aa41730c3d507837080c4955614e88826ef4a8dcffab0bde615673150a7f36ebac7bb4c793dbd9a11f2e765bbfcbae5d2ad2239ab9a2548ea20c47458b3a998533df6b3900997770153c73955d200656314b90bd49d6d95407302a67813a62ab3b63d61b9a3195effcc87d6ca43cff278bcc65ee0bb06c3da296a117b3cc86c78e29c33748c0d293e243c25897b200f3b2d7a5b96215822d310805a35a331615c59172709baa171d947d1b12e2c2699fb460b8219992fa09d529069c40138f24cb4cc9a64734c470128056a7b5d374435c099752edca129091770d6af831ac7805a7dd5657bcbbcc9d751b140283a2ec533c17ba38a392bb98421a4f0731390c30a8701c1396a4c17cece6cbce99949d0279119e8790722b0e2c748348a8a5a7c760826bbc0d395313b893a796b9d572c10432b2f5363b9682a89d1174f822bfe38b05ddc5b68ba3ad62497c3ab8ea6d13b11a6a69ddb1f1340b41f013952da1ee1e759d2d5459a01cece819e5de09b8d707c7d59519369660306c4174505a51846d5476d41d00393979293c1325a1b6673f16c32550529b21121e95f99f503cea88530e2c72b038aa641327181673e301dde28b0ba76b2b88453d1812499681cddf932370c864bc6205b6cb13684455fcc5e008bcdc16597ed661b3732a60e329df82820af51b1ba4647a7944c4dcc7a8f1bce390c44a9a7221e0c0943cb4ff6f048e2362f89f4113fd3636b97919e41acf042189e02a83b580e5d4a996fec6d6b7b33d690825f366d89f8952898152b3671685a22d8898bd62c83c32a1e3076aeeae845900ab2cfab51ea76c3022b52dc702d05b17a76609c88e69d12d7694edc3e91420737b17bb6844a1a28c0c756038a8c6c6a74906232b50d74cf532b5266d32d01034c56aa898d624727e5363e0bb300203e792b3afd39b5376998142acf52f6933a594c9a5872ab619a8a4317e86a91d419a78d47245b1780bef14abedb77ccb97d550ac223e5001e0b64a61b8fa0526331b409505a512b4b6ba7e3b4b630a112920b431292db5962b577af8d546b7465673a8641ab5807443085a9f0849b914a31393c1dab0fa30b3b1c1261bdc9a8ca69cc0f0432e91c1d42b6a8346cb6fd9cb49b189d125c8be422a690dc90ed4a87c70ca8e35caa16a35a3120b9716bae021c861267aea4244219c60fb1c788ce8264c0241156340daa3b1ae7725c6552cdadd4c244079cce22aa083a1a2c0810fc7ac55d77bb6ef934fb73a8e8f4cc299b28c42c5d26f36518ba4cd3b320ec3158b8b36108bb6d4f6427dc46653ec24927a833853b4b0af5723d8a3c5f37c17b3476d86161c57579cd020167a70c1c310325c6707fc82270f0c73d552363e2343b371fc1448b2770bfae474707305a9b32a6aa77c7fc7715cb35826bfa1696d67ec48cc0c9554691d186dd025ead64a9e39657be0292f39829ef696d3584b99c7367a00034395252f2443ef4692c163a5ff1863be79273a93192d10b661b9051d57572d5caa817338c52374ddb282d4722b1efac7339f1ce852867e4ba2a4d368ccfa58fda097fc59244fae273aa7c63f891bbbce875624800dca2b5d65b5a2d414a81c7525583c0160a006be08a68776223aa97525a1e97b241f59c0dacb50ec89b90bbd58e8f27c9f19729782b2c06bbb91725c3b6ca991e75bdc7850a0107674fabab38e28ac5b9b717ca7542ebb563d078e4c856447a0ac85c9240d77210e4ce850570ab693aca497819b5210e2cc957fa9b4542070171c56a2c1253e006cf12162e9168673a08d82b90812c8cb989394ca862aedb1ad9885598d39a42b3ac25bc914fc15eda2501d7c8c51aca0c257cb8b0c16de89900b2b12a875116cfc967553829e59510a00998440b93d8371a0b294aab2b4697196d397a9ccedbcb2f5414dc8c764189cbf720834327a9557cb44a90286277c54aa424d080822814626b753cb281b9f2fca8680c2e197bab18643c9b0aacf8445618a45814389466f67a5c557aeccabcf083cbdff5569e39cae20584ef46bb56456386f3c7ef5a5c196c51646b69154393bc7a6a6d0869e06c3f8ababbd7aa070f974e682398508a356c78c74be8108b42c6b53744c3742f16c84e5bc6750546739acbada819a2af9c5bbae2ca34f6215df82c10ac8a5873a2a8c04ced887730988c14f00a33821994503f9e3555f790715414095f05bc7d5c20dd9313acf98b10daa4053c90f3d2c0dcc676dba1cc0ec92427d4bbf61425935314494c3e65b266f16411a1250667954388fc5b750270e00a8bde873d3d58c627c6b31d8610597174366c8052f21e429c185bbc4c080122b4b25d00a982101b4b44c18bae64b7aad2a2bf646e39bb241df17d8c5b42db08ca0d6571097250072420ddea731357154e861809fcc1ceb7ad01d843ea928dcad3c1370b6b517f5473b94bd6351e282f01bf82a24c3ef05658b9e66735007b45f5b008a7bd627d8e894a4fd9228571ecb1041a11f23220b1b83a46d7ec32691ec9bdceac14e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde + +# Official test vector 92, seed: "a28ead0a08e7228aeff602b16a1e752278b8ed1e91dac67994f5adc372e1d82f95cc390cd97ab9212275e0566c833fd8" +seed: 690eb71fd7052b906eaec09937a8ed374e0b02afa27c2f14399932be5839fad281c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f +public_key: 60c06a2db222a10a620d78b129042477537aef90b5f0f20a58b6005ed0234f3168ee927d726733c3221035f21dc2a95471fc5aff57381741c9ddda97273909ec4c68d4b2a22019cc2d58b0f40860cf429c20757c91269979a17e5d01aedfc21d3706369c3294617628bb97c2655656301772007414aed6a9113ca543f9b027b2aaf0f122d1747a800a49da48239eca99fd4443566348a3f8142c6ca511e769cee83d0513444e7778018211f3a683ceda1ba2881a37f92586a54806858058b37aad546d48b4a5f3e6289c237a041814c0531b27045b8716c1ab1566ae22bb1eea845340791e2899020c8ac1d6724a0b8b432222b204b0b2ac55d924b4afa5083426c716ca2de71c99687748b56342ed726694ba5e63e42911f66f8f8b3111261ec39bb3dbcb9ed5c729b401a23aa26015d31bdf8c8301f61abe695066eccdee028b11322aa437c26a785899817893cb321e0b72e7a7131410772799500a116f612838d7601f66f29567e8a0f0b7477114281df703ca76326b8aba041457004156854c1b81092ffa869eb46807e6a1108ceb06f65453800b72ebb4613e2c363b6190eae29735d48e537a717e335c9f7b456c923c42a31b8f4b4dbba96f59362743d516a01400b8f1b3ea71954f85b0ccfa751d3428fecc2663d509c8b9a211c011313b5cc8e8930b223d08c95e5eeb47127a4bc5482b0e871a758893e9b64bdf4162332b8da6d7b29152a914f5c748a404fd865dc1224e0b64cf782b7c866833dc8773b20c6eb28ac57cf5166895cee2e78d41f97b5eea14400c1d329363915094bd5650377924c15c86ec833b0ea0b3e476aa91398c108a6e99e7ab64990513e061ca52756cf29238564cf0cab366f8753aba1fd3e9ab70621a0cf161b398c413a39280a268c1d28172d6501d313ed15284d12250e6b75704d1950bdc5af1959bc3e93156346dd3b47450f758d3e9796cba90598224740b33b239b97c45c696323a05cb15ea44ca4fd98ee589a2f5aa1d1ee00a476533d5baa58027aaceec151c9c5eda23b14367b8bf7571e7c75d197a55ed3a349de636bf84ad6d446e2c3ba5657c683622b136384be3b89c7eba095a89697b4c8ed9215d1e5544f3d957e51a86efc098fbf272a6140a17530ef6e703f272792371b7c5e36a83c61c7ec18e6bfa7752c095639420968b91aee627c3ec575d74b49fe13f2a216c711508a4ab1fe84a20bfb019aae1b8b3c8750edcbc30cb47ab0b567720421359a0c8c08295ccb705222141b74b8361004d9c484061aef8c19de9f8c809b90050f3345d65531070cd36d5b2e50047b97b61cdea5c3b896dc0a22f6ac2a2585295ae0993be023a498cbabd6b37d56c2f8db63804d0ca52a169f5d003efe695b6eaa2c530773cc4347d4b9e0e46a822a980a9f4c8900070c67437576c572160ac7b297bdd074c9eec3a368297f0a34772b8292d0b7a29faaccf7bafd2dcc6999b0766d106e04a76bc9118b7875c187b1f8cbb00b3c882f3bc6bc65b294443610c65b19aa72f90c7086ec18f228c36d63808b0aa253052c1a44a6842568d82b43a994b5b6c69555a449ffd0c3959870f3b679e4643842083b20a40401c51898e138a092ba393bbaca9fc6f37f28d88560a7992c5b95c228b3388a622a6f2839da96b121dda0c75c0b36ef162bd7981ec294ba7f91a97b34c69bca54c2b7e91548fa7c396f3d783255a79b3fc579cb62eed83b430c45377857190d06e5a26576d92af1b79941f922bb234a68b21309db9aede9765c78c486da51e400cb46cb586c33c46db9ba99b983b94815fc5b52b7feabe42b4253df9cbca4037819a47f8541bd5747ccb34ca74158318664b243c81b85484bf050ed3aa81ff37725f29b962f901f5f44b4768cd9db394fc7370d0ca72e1607f83a0cd82793ec3a23d3510ae6ef3375c3265dd8268b3f31bcefa83f8e5aa3d1077cc62a8ed858e6ed4639447aa3d705a1dfc4cbe7c4b74d67183a5875d24552ae74e546ab15376ac54f0582f3a92a1e1075cfb682a16b6a46ba93f31165f32654838c9e14b46476465cfe45bec653d2c0a1cef96cf01e123f1a3116c93b1d5e54730dcc5f9d618b53a7917a71abbcc312cacb170c10e454c41869717afd8aa4a86113ceb654d582af443a0b6a74173f963d99c8d44e5520ae278370855c0e9e01df9b37d13e35124e6c2590e9a231a219c07ef6c +private_key: 214a365e155f2468311a972eae496d188b7d7ce281b8dc49d326c2935829652b1a8e936030ccbee7989dcd407dc74a5da47b7387674310c37da58c0b9474a7dc5a5f97763211b6208ff9b7ad343b0c0b58b5c3b2e95210a2844c6b013d5c3610f71006e8c806bc61a90071bdddab9dd214cfc9f6501f6570305b5f03c38fcdd9516e73b76f5b6bf2b7665c70c31d763a1721628f73490402c8a18ca4c8f42c8a95b81e0219fc0c66db22763707c44e555924fa385aa212d4c643e6f51234728b47c37e67f2bc559c92b5a6248e9cbb8f197dbf4221e8fb938a4881c22841076c2c2ca6b5798b5991623160148a8de9c4c7667fc4ab2d30b8917304011015400644079be43f60f07b8501957a53a0acc69520871013aca31fd4b3bc246f5e300d8e84340927a645532b251945a9ca024892b0bab4769f6c27f497206d1598259aa0f2d649d560c082b12cb1d851d757cc38e1abd7a6c38a947b36e95579da29a25765f2d85d5e5016e0c91d25c6a7cac3cb4d504bf7046b7b32646cbab6a3eb8fc1ea63016c0cdd74cf63b8c86b790660c94110e4c6119736af99a75ffc2f98c7cb0ac653cb90cf69978e0859c610362b24b14c309476c53b5dd058c4075c59c2c753aa76b7e04520f2250319d41c6c6183921409908b6df6fc8e7d17296a9a0826101be7450ab3babea3c520b6735ea8d545949988baa98f7a2684f3b3c62e058b398a21a5f5073177798d1c44ee5c94ffc564357718b7fa59e68610aaf8294eeb0619502cda583f0a744d8a03be0a6c9d6f756070dbba4ef85ad8711bd691b489a3a23332a6e766c79eab5644e42378ba05b9ab0eb6d790ae65c2dbe3620c26783b8a11ff59850ea182e6258b5232833b4538eab3306023b2eb01b2ea157571791d0d37c6d79c2caf1601528b6fc1600ed3db72e4414822051b469b8b0e962d94c1672e318796e0cd17fc5df12bc1e7f6b91c5a3449c16effea06999bc5344c19b5d36466d18f5dbc56d7065a924b4f128639ee5acc2e37c02c5332e2919c1be01e799c27e18bbfb7404c6299b2335b6b410c4cf28474eb6ca8a4859f0a4a587ff6b356fc1c330041c72765fbdb1d2bb779ac384c53f77124faa473716047d2159a3326798b0d38c0c77c4568d6450a0aabc9780aa2b3252cd3da838094a867ab89e12c342953a3a0ab33bf6b27d4a0758c248dd9f2b0864c08d1083e32031283d979ad81709fe2466e7b15c7cc4429bb4d96b2733aec85eefac633f626edd8cc64114572608408d614e3c0a1473c046fc5405f46bd229b30659505094a312c170a0c21b33628a220a281637b3909d418268bcbbd746df44c5e94dc5ae6db45312b05f7c99985b3423755c17f9acbd7d831f5c3aed7f33284745f09e0cbd0f4b841fb84fbb6cd190072773388a334cfbd05a45468cdaa249ab02c4394c264c276be8ca164873c5d4e035b043c86d8a09d0aaa3e7f983a9cd3108f56ba545847ed27c29a1a84bb11310e556821181c4cb79b4abbaf3c123053f9c92ca15f6c326e2fe67f24a20ae584bdfe763db45ac37ca8a2239394cc86ba1ad976b7cb41b5304cf6eb23a5b8456470237731882bac17ba241cee78b740ab91a3b13b716634cd55c4faf9c80da43b43e13e770a90a9743f151958a267a8a6622bc57aa51ec356ca98034f836f6716840ff98dd190a6bb509d000211ac802c80bc3b28ec20c7407cb898980ef125b0fa34a88812550477dd267d37495930cba3f9e43f920a42ddb34eb7b72801fcad3000aaddb473210436e5110efcf52791c9593607bfc6a440a8043ccdd9965099a200c7a4aa93944bf7ac55132efc367aaa358eab042a6bfa125e19759f469ee054147c58adc98991cf92693708c75534a13e125b9a0540e423aa29059103c7708edb1cf626a95e2ac9e34b9694325e9c9546e7fc566a013128c2ae932690447a552c2bab21d249cc6590a1fb05ad0cb90edb8b7074bd7d172b1977581cc0840f1a69cc0abfba1091927ba9cf7821aae3295ceca3c20c018c3590c4151c0fd13958890195e761fb0c5bf8d1caa0b57087997e8495c430373362a71dcf670e0b1108ada374dfc08b57a0ab687a7d5b8172318c0e4fe868fd68a7da773dca08a71a49a4ca1b45ee3b223b785f2e6b0dd195ce79a1cb36751b60c06a2db222a10a620d78b129042477537aef90b5f0f20a58b6005ed0234f3168ee927d726733c3221035f21dc2a95471fc5aff57381741c9ddda97273909ec4c68d4b2a22019cc2d58b0f40860cf429c20757c91269979a17e5d01aedfc21d3706369c3294617628bb97c2655656301772007414aed6a9113ca543f9b027b2aaf0f122d1747a800a49da48239eca99fd4443566348a3f8142c6ca511e769cee83d0513444e7778018211f3a683ceda1ba2881a37f92586a54806858058b37aad546d48b4a5f3e6289c237a041814c0531b27045b8716c1ab1566ae22bb1eea845340791e2899020c8ac1d6724a0b8b432222b204b0b2ac55d924b4afa5083426c716ca2de71c99687748b56342ed726694ba5e63e42911f66f8f8b3111261ec39bb3dbcb9ed5c729b401a23aa26015d31bdf8c8301f61abe695066eccdee028b11322aa437c26a785899817893cb321e0b72e7a7131410772799500a116f612838d7601f66f29567e8a0f0b7477114281df703ca76326b8aba041457004156854c1b81092ffa869eb46807e6a1108ceb06f65453800b72ebb4613e2c363b6190eae29735d48e537a717e335c9f7b456c923c42a31b8f4b4dbba96f59362743d516a01400b8f1b3ea71954f85b0ccfa751d3428fecc2663d509c8b9a211c011313b5cc8e8930b223d08c95e5eeb47127a4bc5482b0e871a758893e9b64bdf4162332b8da6d7b29152a914f5c748a404fd865dc1224e0b64cf782b7c866833dc8773b20c6eb28ac57cf5166895cee2e78d41f97b5eea14400c1d329363915094bd5650377924c15c86ec833b0ea0b3e476aa91398c108a6e99e7ab64990513e061ca52756cf29238564cf0cab366f8753aba1fd3e9ab70621a0cf161b398c413a39280a268c1d28172d6501d313ed15284d12250e6b75704d1950bdc5af1959bc3e93156346dd3b47450f758d3e9796cba90598224740b33b239b97c45c696323a05cb15ea44ca4fd98ee589a2f5aa1d1ee00a476533d5baa58027aaceec151c9c5eda23b14367b8bf7571e7c75d197a55ed3a349de636bf84ad6d446e2c3ba5657c683622b136384be3b89c7eba095a89697b4c8ed9215d1e5544f3d957e51a86efc098fbf272a6140a17530ef6e703f272792371b7c5e36a83c61c7ec18e6bfa7752c095639420968b91aee627c3ec575d74b49fe13f2a216c711508a4ab1fe84a20bfb019aae1b8b3c8750edcbc30cb47ab0b567720421359a0c8c08295ccb705222141b74b8361004d9c484061aef8c19de9f8c809b90050f3345d65531070cd36d5b2e50047b97b61cdea5c3b896dc0a22f6ac2a2585295ae0993be023a498cbabd6b37d56c2f8db63804d0ca52a169f5d003efe695b6eaa2c530773cc4347d4b9e0e46a822a980a9f4c8900070c67437576c572160ac7b297bdd074c9eec3a368297f0a34772b8292d0b7a29faaccf7bafd2dcc6999b0766d106e04a76bc9118b7875c187b1f8cbb00b3c882f3bc6bc65b294443610c65b19aa72f90c7086ec18f228c36d63808b0aa253052c1a44a6842568d82b43a994b5b6c69555a449ffd0c3959870f3b679e4643842083b20a40401c51898e138a092ba393bbaca9fc6f37f28d88560a7992c5b95c228b3388a622a6f2839da96b121dda0c75c0b36ef162bd7981ec294ba7f91a97b34c69bca54c2b7e91548fa7c396f3d783255a79b3fc579cb62eed83b430c45377857190d06e5a26576d92af1b79941f922bb234a68b21309db9aede9765c78c486da51e400cb46cb586c33c46db9ba99b983b94815fc5b52b7feabe42b4253df9cbca4037819a47f8541bd5747ccb34ca74158318664b243c81b85484bf050ed3aa81ff37725f29b962f901f5f44b4768cd9db394fc7370d0ca72e1607f83a0cd82793ec3a23d3510ae6ef3375c3265dd8268b3f31bcefa83f8e5aa3d1077cc62a8ed858e6ed4639447aa3d705a1dfc4cbe7c4b74d67183a5875d24552ae74e546ab15376ac54f0582f3a92a1e1075cfb682a16b6a46ba93f31165f32654838c9e14b46476465cfe45bec653d2c0a1cef96cf01e123f1a3116c93b1d5e54730dcc5f9d618b53a7917a71abbcc312cacb170c10e454c41869717afd8aa4a86113ceb654d582af443a0b6a74173f963d99c8d44e5520ae278370855c0e9e01df9b37d13e35124e6c2590e9a231a219c07ef6c49cec726e5bc6c6280269fb608e754d097ae818b16b386bc895af3bb9f5f2a4481c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f + +# Official test vector 93, seed: "92877d706daf88ef3412eb143db8cd91bc047a9a43b7acdaa42523560dee4c172697be4332042fcab91135839bf74ab2" +seed: 32e0ea9089fa928482c0770da545af1bb871a03ce38604138b0d08ea2a10ca2bc06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 +public_key: c75c9083566b23acc2e981457fab1306b04340969dd1081f074a2a33bb85b892750bd34336a68362e00302712410eb8fc8f37da6530a408b17fddb0fd602c2e40a7dc4c94ea843226ca79b167b180f3024a273c57f91cd69629c970617720497c4308e10f03a038544fff13a3afb83fb2291dbf177a003b0197037a3c9283de78dc911beacf30e6c4c6740300266c6ab69893aa9e112b67903df849a4bd59ba106030b62b61bc293fef997a8851d06c956631c266ad533791124a4e09bdb06c0ffa681cf2c6d43670e2a017b9a40c13e85bc1c24ad914003aa69439d401ba605d013a2baa0e0b010363574b71242745e9d709a3ff3b0a2ac7f374684bce9bcf0200db5a09b5d0c92cdc7bbfb3c24a79a8a4a0a9a64376a0793c1252362af170856046471b1a60eb33f23c59122d0aaeda79caef27df971ac8764986cfb2617fc3bb71355a56867c29795f46668f8166970b06c6ca91d8651ccdcbc23fc1b2f0a75c45fb3321151953315036d52322c9b6408152bbb595129f41a8b8570f02b8ccba66de5fc36d892457673a9a096c556c9afd11b06e1ca9cc8b3a9e9765e38e711d039612c4bb296061771e42efd68c9acc8ca61012f295251ccb33252e8b0e6486c5a5bc28683347571b8f0a42aec4873cd3549324ab728324030196035b29ad3043ab9008da6b924bd376cfb103fcbab9450b44c299b4e27165303786944009418cbc66fd9a570468dd85ab652d86402501d61f5272cd880056521f72a362170580675bddd505840378d96334a704282934527f70a499ae99db81516b1d1426d233dcf9855880022d72100e14858c0a226325338b33ab5ecc5a86e0ac4e8504e168c5e1a4788177878bd569d49dc60b1484f43134e2bd39efb207430aa564ab7a88cd40ecc00a10e4b6c663b61a6054323429c0722b2e4464ec0d43374234b4884bb8ddc0a28852600369635531ff943194cf91937b43afd418f8f964cf9c9cc66988407bcc7b5247a2372980035c8f8357bc3db948c0c4b391ab47636024dcb79f094c62ccb64893c0c45c1bc88cb00ba85248253606735547d424797b0bb302c5eb9631ac98060bc47341e69379bba5b5e44980970c699187f62731f2b1a4bb4c7a33f8a20758335bc8a3c4c4c0900b3c2cfe35356a58aae233b066466b34c814a4cb6b9f916581b0361e78a2971bbfc014a7476ab2f7c291ba688d5f75153c4ad7ba4c664a8002058c9eb195a3ca7ab70638bb114c3618bac3ab383dbf292705a478a35c31f06a1823b545366cb6900c59c036b063727504a55c2ac940606c7bcc74643644bde915d83c395023c8fbd069f9ec50e1fdbc8edb0387ad1074b11bfdf220edd7486082a4842d6c737c6a1ed5b98bb78cd6de1153480b3bf095b04a7cbccc19102964e34693a6e492fae134c9d726e49532236018dc517bd94232d717a408af43fd5c837a21cca33ecc2a3859eaf8a74b63c36fa70168f241e2ff52f7197a615d04357a7acca269e47848375bab1f82ac686903d44786d540a496e29642f71061ee76054b5aa6ae67cfa01704b386a657a6773b8509cc1b4e16bbb92cb204b5bc6638cc5dd868db40358dcc4c258915d1e93771a12aa7ca4b3bcd854ea2a111c09afbc60cc91f5abd63ca5ccd11ef2c1b06a38925eb9a4bb569d8c4b859ad278ceb006a3d44328636809a31c377c58957aa5408b488445bf1fc4ca378c733e410e3814c4300850fffb052df767743468c6a91d81dc3c4c34b4b5a06dfab7cb6a741c91107758859f2e1c2d06881612e05cd7444abf23c104b6a068988fb794306e90aa1ad2ccf76482f0fa7067467dc105c27ea7192d0c6fc50b4042934e81876e121c6c295a5432219345bab9ca566f0dfb6b9d4728ab7187f311ba22d55b4047b9b3a17632925ec31bb2322257dfea3d1c1b4331467904eb2bc1f7a4369aab9912531a6835358b016889ac910a7c398c18a1636976e04c7227cc9fe13d61a848eeb60d56635064ba07359730a0c269ed6cb25ca2908f524ae3c9bc860a062192421cdba741dca98f98ae0d955c78d141fedb59bee95957e035d5b05155f5792e88ce43342f410ac92eaa68cd055fe28c4a217b9c2da4ba64d4a6605565d41a00acf377eaf80881d9a5305766747cb076149866504db6b96ee4cc9d4bb977165f0b04d3c03c1f8150a265215387c7983d37463a3136a1b7c6 +private_key: c73842b1f8a1f7cb343c570bfa701270595100a58798d235bad4ae8ac7376607675de7cddab1432f5b04fa1045af5a2644fc431c604a2c794d57b1cce958707e508c0ff80ecd5c001439456b65091bb75dae518b9dd5a28fc8c549e4450ed9b92a6c77c5849836f52bad941438672e06786cf16233fbbccb192b5c07a9a2eceba39571778b665df2b0c359206cbb34b33e215d1f8900bfc1bf6dfc69490257e2a533430a79522957d1677a19526a44e4bdac44358cd283e60376b8026a0d389912324b1f37ab4283156a913782d26d7696827fd55a2d636afc42173f86b03622091e489d55f74db20c846b0c27e7c1c0ea8729b97ca5ffe5296fe180aa2a5728f7befc320bbaf64c0e5555b1f35bf9203ee22478127122aeeb4a3d983fee5219dad3b4db5197ad079be2803491238bbfc003e2e22e2ff98f0e0b2389c83c7a30a870e63ab54a094b27adbf301526d04449b1283b02254aa2074a902e67b978c1ba92ad014c7a15c2f678bf3d1342fe588e4d7b8b674b9b92699d8b312fe0a64c0da1a7d93c16f4917a96f03e3bb21e400b3141b17f90d58a853445efd63e607cbb05036ed720c783f187aa897cd5282d64fc119da7882bd28dbc42ccd3c1982e1ac0b4aa1497dca5f764217a068acb73af404a5c8daa35268484666199d7761b1a802f5334bd1bb4b05c5501bf1c4a1b23a35e3341e7623f181546fd2c069f63554a67c0d85a479123680849a17ec1890ab616de357f16d14b3a75326e13ccecc690eb66af0216921043c31a2c8a44688b670a060006afddc6cd13898dd97214f405a24ea5990e06b55c278cc66115f8655d4d8381eb55a0655655966b3f2ca433d3c78fe3a0aa0e6196ce4b355425ae81434c27e47b73cb6e024065fe2bbabee99ccb8459e1ec8bf6703032330d402b2155765097f650681135a60c6fa2aa74cc1490dd22525a7a65ab853579026750bb5fbc645ab3c796bc798dccf927663c9ce82134b9536a9ef38d54fc421f964d4c20ca8d5b9a5795bf1bb1c3857954d91c27140528fef1c366eb41d78bbdc773b58b81420ff36ddeb3349375bf1a3933c7a865e2e16cbfec0cd93567b09b18c6d2c9dae2500c7b19e42c62326a279cd75cd7aca7e9b08c08a81087012f75e278a281c9c482c149473cf5f8965acc8db1b74a205103a89686bfcc65d40576dab5c33960069db6c390138647b5301448627fd1bdbf68abc6979a03f47651a13c098386c6551a89fb9ea39696a8182d390388b12070d4e378b70c13a4f6af1fb860b7f1a42bd1c8373839432609032224cfeb9ee0814e5ca4b57af39f84d53a4f9a7a311421c9dc7e411c102c207a34c2161c7099e9cc39d5908ded696abe32a97b8a297c28b868792305490a691291f5e73ca8163e5b9a17e8d417b2f14aeb017a2757653b6b92aaa73aff638cb5412f1508b9c7aac9439787f2883043660aac7294aef5694c3294c1471dfc49be531611ec7863fc4c2f58c7141418b285b209f6738e45d09f5956b44d6106ed04b59164287efbaa28a63cd80c59636896104261c10ca8c2c8603fba2b53c531cf7a8da7e3abada81507487c28b9bb07477e0241c958584e6047ba1119783d62c4cac3c4563c628a5503236c7a997377ad53b9a4ba153645933856671aacca85d55ada82c39d82280de07100e1cace49a6dd09c22f2c1da1077b9dd437d55b0d7b6978446a19ab106ce18529608c2ed283c9806689b0624dcf10c6a8665948250af74182d9023895a577c5eb880359a046ca7a15297b3bc3ad227972ba80061570a7c10bb26cd87f05736a492405b4267fdaaaab8062a5b10bb65ac597d8c5a5e123a0f242ae2470c1f0d8829dd73fbecb53076aa093b73e68e35a3bb649ce4621bbdb7c95bc0dcf997b83c0a65be2015a5465fc1273b599c7074220786c306f4717fa50936bb22417a2247dea1aef76895522cfa8b20cbd9c344047984e9b67985307e8f64a15813cec89b8b004c1d61a884b327badac95a14a2d2af1a7a5b5ca6e3722d150cb4be7a376372beb7a99dc94654f652780411a43e619c0643d266a8b1aab982080b1b9aa52e007b1eb6b76b3147b14785652b5cd11586f6904ce3a9554f745947ff27e87e2c6acc205d7689d908068608053387600c6aa9ba285738b9372c75c9083566b23acc2e981457fab1306b04340969dd1081f074a2a33bb85b892750bd34336a68362e00302712410eb8fc8f37da6530a408b17fddb0fd602c2e40a7dc4c94ea843226ca79b167b180f3024a273c57f91cd69629c970617720497c4308e10f03a038544fff13a3afb83fb2291dbf177a003b0197037a3c9283de78dc911beacf30e6c4c6740300266c6ab69893aa9e112b67903df849a4bd59ba106030b62b61bc293fef997a8851d06c956631c266ad533791124a4e09bdb06c0ffa681cf2c6d43670e2a017b9a40c13e85bc1c24ad914003aa69439d401ba605d013a2baa0e0b010363574b71242745e9d709a3ff3b0a2ac7f374684bce9bcf0200db5a09b5d0c92cdc7bbfb3c24a79a8a4a0a9a64376a0793c1252362af170856046471b1a60eb33f23c59122d0aaeda79caef27df971ac8764986cfb2617fc3bb71355a56867c29795f46668f8166970b06c6ca91d8651ccdcbc23fc1b2f0a75c45fb3321151953315036d52322c9b6408152bbb595129f41a8b8570f02b8ccba66de5fc36d892457673a9a096c556c9afd11b06e1ca9cc8b3a9e9765e38e711d039612c4bb296061771e42efd68c9acc8ca61012f295251ccb33252e8b0e6486c5a5bc28683347571b8f0a42aec4873cd3549324ab728324030196035b29ad3043ab9008da6b924bd376cfb103fcbab9450b44c299b4e27165303786944009418cbc66fd9a570468dd85ab652d86402501d61f5272cd880056521f72a362170580675bddd505840378d96334a704282934527f70a499ae99db81516b1d1426d233dcf9855880022d72100e14858c0a226325338b33ab5ecc5a86e0ac4e8504e168c5e1a4788177878bd569d49dc60b1484f43134e2bd39efb207430aa564ab7a88cd40ecc00a10e4b6c663b61a6054323429c0722b2e4464ec0d43374234b4884bb8ddc0a28852600369635531ff943194cf91937b43afd418f8f964cf9c9cc66988407bcc7b5247a2372980035c8f8357bc3db948c0c4b391ab47636024dcb79f094c62ccb64893c0c45c1bc88cb00ba85248253606735547d424797b0bb302c5eb9631ac98060bc47341e69379bba5b5e44980970c699187f62731f2b1a4bb4c7a33f8a20758335bc8a3c4c4c0900b3c2cfe35356a58aae233b066466b34c814a4cb6b9f916581b0361e78a2971bbfc014a7476ab2f7c291ba688d5f75153c4ad7ba4c664a8002058c9eb195a3ca7ab70638bb114c3618bac3ab383dbf292705a478a35c31f06a1823b545366cb6900c59c036b063727504a55c2ac940606c7bcc74643644bde915d83c395023c8fbd069f9ec50e1fdbc8edb0387ad1074b11bfdf220edd7486082a4842d6c737c6a1ed5b98bb78cd6de1153480b3bf095b04a7cbccc19102964e34693a6e492fae134c9d726e49532236018dc517bd94232d717a408af43fd5c837a21cca33ecc2a3859eaf8a74b63c36fa70168f241e2ff52f7197a615d04357a7acca269e47848375bab1f82ac686903d44786d540a496e29642f71061ee76054b5aa6ae67cfa01704b386a657a6773b8509cc1b4e16bbb92cb204b5bc6638cc5dd868db40358dcc4c258915d1e93771a12aa7ca4b3bcd854ea2a111c09afbc60cc91f5abd63ca5ccd11ef2c1b06a38925eb9a4bb569d8c4b859ad278ceb006a3d44328636809a31c377c58957aa5408b488445bf1fc4ca378c733e410e3814c4300850fffb052df767743468c6a91d81dc3c4c34b4b5a06dfab7cb6a741c91107758859f2e1c2d06881612e05cd7444abf23c104b6a068988fb794306e90aa1ad2ccf76482f0fa7067467dc105c27ea7192d0c6fc50b4042934e81876e121c6c295a5432219345bab9ca566f0dfb6b9d4728ab7187f311ba22d55b4047b9b3a17632925ec31bb2322257dfea3d1c1b4331467904eb2bc1f7a4369aab9912531a6835358b016889ac910a7c398c18a1636976e04c7227cc9fe13d61a848eeb60d56635064ba07359730a0c269ed6cb25ca2908f524ae3c9bc860a062192421cdba741dca98f98ae0d955c78d141fedb59bee95957e035d5b05155f5792e88ce43342f410ac92eaa68cd055fe28c4a217b9c2da4ba64d4a6605565d41a00acf377eaf80881d9a5305766747cb076149866504db6b96ee4cc9d4bb977165f0b04d3c03c1f8150a265215387c7983d37463a3136a1b7c694b79d85075e5a897a948edceafc78b87b7fbb43b11f82831299a9ee660b3d40c06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 + +# Official test vector 94, seed: "bb4c0082ca4044b1ff60b036c9b0e0495d58667156786c530bc69d949a13bfaff53798e456423d7a0e162a60039367d7" +seed: 6fb2ec719f2a0dea152bf3f64b9d148f8ab8ba88f64e61f5db53e12d59f525574f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 +public_key: 5586a5b224aaa6428374da6bbed37b0f67c3b5352a5ec2bc072247d20c7e83d83ec162a3dd00b44c070577ebb614c97b06e15d7a41ccb6a45fb2205bb57ba4dac40a12ac5f6bb522ed863daf67379d230badf71844256cfc596d28957bae0c050b9182668857951a38628b83e2082659317ffdfa0e279644fed9877d6775e131682b998adb000ace652f13fb0b9aa57b9022b792bc4bae5ab5f07372bcf131ab93523ff42e5a328fe465520bc57d62f222e0a3623ad8b034f164b1800926ca8a850277d0054f34b941e6388349a87eb853375055caa0305309a06fc2016ba8a3c9bb06bbe7581946755e6c726e9767330d639ad4ca467ff670414a65eacba93d2b33aa628f9eb2949054c82e62774cc13f013998cf29465e8b83dce66928b2c9e1f4cebbb91e2d8b2278879073411358910ef23c66c3115af8ca4ed0b595c8a49ae8eb955a86a2549132cd65a2f6a44eece7b43a40629ef172b068aab1c2126fe058ad02183dea6994abc7daa71414666c57b4c40a17781ac4784e6ab2ecbb8fb2101fa1530a00032b5d1b51b57ac1537076faa54b3b9bbfd9dcac565209cc681b73d5a3c7138156b258321c05a494345c9aa72197c9d3a9552e437e891c437ba16c00c76f0a6252c8e4cebed86398957088596ce28c5880db1b90306958c12a45b5a14e1b05c161c5a3aa78099154a557a58e6c2c7758653e3209edb90110e40e037732a7e44d7a60736437c7a3e872c82b20478083b2592ea7418b75b002f1da834df8624f665df2677e0ae98c62636f603bc1d796935a11bd18fb851e8076c7e4c58b41abc71481608281ee4c572b612c08b8cadcd6b7dc83130f161edb26b1335662a5161478eb5d5a8c61faa175f54166ea2741d27c0496292380e93f6b77577b494c463c9ce8960bcec25f43f198f0552da73819bd7131cec101fe6448f7ba3fb03637b351af9e284da6677b53b71ffde41ee41518b18c39813a82ca041f2466321ba9531ad4b576cb8825978b565580d5f000b9a56a943c2cedec578f728785487abc0a8f2d28af8aa3237022125fab084cd19565816d15f8bc6936959eea23f8279c74946a8ba37d2eec75622c4f911c24839b78cbc8812fa55e19e10ede4931f5d16bba8aa44943bf9720395a8b1328648b887b28a98423e4322a69a752d1d2121d447c2f05bc91e52635d06bb1e05daab02f02b6ba9ea8944d9344ef68c23af10144b93a40c456da0857acdcacebf1782d63a0648497c91916a50b3d0688800b968f1e2200fceb4538f7520becb0fb86368ada208c0602e1ba5d2ca85da8d36ab8782a80436d69f65622279d8145aa5ed9671a28699ac9990d738c3b67ba500a731cda82965a01b4c16144383bfbf3334d159c31831f94301d6a0320a4c7a340aab3a18825516b819a285dbb82a28f164091516c2519b9b534ab8d116cf61303dfa4091fab8669a417a9862f90491d251277d4b7b0523b7c4e345ebb090e5ee581f1933e7168567a857dfaf916f7747550409889bcbfb7e32840537ecb7c050b18552fe5aabb6794b27505f3b721c0b96b738c844f816160d3c4349c4463f12d248a6605b52bb9f8b370e958db55b9ee0663454104c47781e8e0a6eceb2a2632acf0082c4e1806c0927a25e7ba8f1a395f1a352e72ccf72093a9587299e5bc23933395836bcc97832360a992b040a7b67d4e2caa3d227f60d4c8ae293070b1878c63c8e106267a8ac7bcc850dabb5904769fc487b4f417388ce6755058470a3a7fae41b56f009b01c74af2c0a7d252b30302a7b3585864c84c8aa4ac42e82b1ab44215191284799c40d5ac80079d30625dd09562e555167391a370fb6841a98ff2b85713b75ff58b984efaa29393540fcb20e3c1cdb1887be3a30fd3861d62999f2c376704983f969197c9165f19b498bc169966269e3af2300847c908a4738c8655f476238fba9bdb05c3e4f1c3aadc7432960603c36f759c69e4ba048c76561ab4831b40341ed5c05c7b8a853169f2d75713c97a883419457193b9889724d3a108c1c3d083404d93a25a98babfe33d36fccf4f6623b9e378fc5c731b0a20df7b5c28a0c86c065017d37a65d89e8e127acb630f4304739f19bb2a596bf950c996805f73d79ec0aa09dbb0561c3a3bdb13009f672b9f2c907c468d916c305d530fe5910a3c029a722a9e1e6048ef23454bb64b1c9eb2d1c1fb4c57 +private_key: 29450b5491a0266aa9fd363954b83ffb586f34256d0ccc6436225516953bd1982aee4224545abea8d68e9dd24b0f354f83978d0de0c5639acd6bd0a3c27289d20c9d55e56013aca5dbb7045d748077f4b9bc967dc2259cc79aa29a5a7cbe66b9484ca649042eee3b440bdb3f6475a02f61a85b2b373b91338940a2872213913ab6088b319d2b509ab46cd19aa454480d9560c0828a24b695cbb166471bd01a3bd406bba004e0c21f969675bf0884aca29f247c29f95097927490b5b3b72c30b59dda7d2b6a54693a1ad6ac033794cd0941be1c38998b488091a860a69c5e82248b5941851d8553f2159782dc7c2767c09b93671ec2c90684a4d3b27b6a88be09c50edc55b9291656177803461b4f312a6f4abc5ed1c97a6384356c549e070200245c6e39eac4267a77207293fed95fef2c29f3d93d2f1c6a609c07a3b8624bbc8da5c2538c25affefb815cc0675d88ba2c7629618a8e47b98433acb57c0b8e6499c44c311288c34d8566becbac15afc9a5a3d7c49ff25892a7a758b77e7540ac9e61ab0128cf301769dc65bd83542ee4b287849c75d53102ae750148d0839425a4b10243656397c16b05a9591817f117e6923d63584eb5e2c84a922d9f89b554579f9c526e6ab612a096a22760040a564649244ab8da3f066a4f0cd6906d83ca49ebae1fc49b00a5c36776c6f0911222602f7f2799fc3018828415d7c2ac0b88116dba3d0e1c62da01365e32bd111709fb7c07cf905e0510b9da4a61d7254d9a9c92cfab5002926954781ae86b0d88660c94e6591188c629a39e2d1748f2b44eb0961c7a480768e63d0560b65702c4d782193b7c9a89807729a3ca0c5c737e15506fe79912b05f25767fc53b772e952b6b900ef2b535beab49b69c0b958a42fd47b28dba99777291994598a64586cb86c8a98a12cc20322d2cb1a8819caf36bbcc387265b57819e496cca38b5c0b0b6f86c3b2d722d4eb3db4d97bf5aa2fe0a212f8f9b14e39495abb305a40c0c7ea77c315a2eed52fc31a75fe224bf08749ab8b7a5858860dd304f95608988abacf00bc0daa7f03b57bfed80503b366ada238312a155d398e26491abf1c5b10d22f8ee568d6f8867256684b0500d02a77070b8d54cb3504500a1935577cfb46113277933155d089c456d28f28aaaf0661a4a60486c4f7ba710253f753af6d75cd7b265f3365b2213878bce6c9f806c9df532ce2a5a656d072e67238e0c74978395552eb88a0b9b49b3205c41b3027d40b198184c67a8d5d3303d25987e9598de984a2f2eb69da7b843c6277ca144c2cac1babe34f119abeb5d6c1f6780d54cb511b2795a9118b4695749682cce3625cf7e85a00b82f59ab33184c2f6b6559084a1550675f72795e6ad74b22d57b903678ec4bc07da10a04b0c0ceb92a5e224661c9688e2a141d0c73af528826f65a330ca36a0b220bcc8021bcc1fcd408fdea0b2d709bfd368fdf1992f3d2841256647d2077f2a39c5770a11ef945823c55616cb00df3adae6478caec0ea05171aeb86eec42bb56c53ce27262a5db7e9aca343c036d8a7ca15ce23ab90312c8322e541773ace463a03801c3c44a7aa39723f2092a6c86c3f0c7b316865b50a13b84485eba71bdb2420bf351e21ba1b1169bf9414cdfe1235cb6024371450d9849ce8997e716bdb151119399884069bf964337dac8291c47abe351c914626ced0654e7a2cd65690e3fc67b3be0af7350c0d09ab978da207db5cc82902d6f3705f8b672384c0743d81a0de0871ac4a7fbc7bf1224a2f6e2b1cfd90f37e75f61a17f7fc9ad14b35ac0f79e6567a0208c0bf049a624566204301cd2582510f1c19de245b25394c8ea1405f7afd7a325bac60c93f700f77b258ba5b7177958fc8664e5e42d1600bba29b63b17046881a28dde4742dd7b8ef476f50186ab287a9f6c17321760a2332af65f136cd675b63695bbcc86081a10365aabfc9008db28b0123534acc645f290805d8b9bdf0636934b0b955555476b7604850ca5b3350d20b9269a3898fd45b161b165248830bd952b92a4c12721b67d724336c327a46753dea31a5c440f86c941660bc4e72ba51313d82842ff1e0175aa3c682a973f0861905fa9954770f83265f7f009474f118b081a24f9492d7d7408df21d000087b9e8cb88d5437c59835586a5b224aaa6428374da6bbed37b0f67c3b5352a5ec2bc072247d20c7e83d83ec162a3dd00b44c070577ebb614c97b06e15d7a41ccb6a45fb2205bb57ba4dac40a12ac5f6bb522ed863daf67379d230badf71844256cfc596d28957bae0c050b9182668857951a38628b83e2082659317ffdfa0e279644fed9877d6775e131682b998adb000ace652f13fb0b9aa57b9022b792bc4bae5ab5f07372bcf131ab93523ff42e5a328fe465520bc57d62f222e0a3623ad8b034f164b1800926ca8a850277d0054f34b941e6388349a87eb853375055caa0305309a06fc2016ba8a3c9bb06bbe7581946755e6c726e9767330d639ad4ca467ff670414a65eacba93d2b33aa628f9eb2949054c82e62774cc13f013998cf29465e8b83dce66928b2c9e1f4cebbb91e2d8b2278879073411358910ef23c66c3115af8ca4ed0b595c8a49ae8eb955a86a2549132cd65a2f6a44eece7b43a40629ef172b068aab1c2126fe058ad02183dea6994abc7daa71414666c57b4c40a17781ac4784e6ab2ecbb8fb2101fa1530a00032b5d1b51b57ac1537076faa54b3b9bbfd9dcac565209cc681b73d5a3c7138156b258321c05a494345c9aa72197c9d3a9552e437e891c437ba16c00c76f0a6252c8e4cebed86398957088596ce28c5880db1b90306958c12a45b5a14e1b05c161c5a3aa78099154a557a58e6c2c7758653e3209edb90110e40e037732a7e44d7a60736437c7a3e872c82b20478083b2592ea7418b75b002f1da834df8624f665df2677e0ae98c62636f603bc1d796935a11bd18fb851e8076c7e4c58b41abc71481608281ee4c572b612c08b8cadcd6b7dc83130f161edb26b1335662a5161478eb5d5a8c61faa175f54166ea2741d27c0496292380e93f6b77577b494c463c9ce8960bcec25f43f198f0552da73819bd7131cec101fe6448f7ba3fb03637b351af9e284da6677b53b71ffde41ee41518b18c39813a82ca041f2466321ba9531ad4b576cb8825978b565580d5f000b9a56a943c2cedec578f728785487abc0a8f2d28af8aa3237022125fab084cd19565816d15f8bc6936959eea23f8279c74946a8ba37d2eec75622c4f911c24839b78cbc8812fa55e19e10ede4931f5d16bba8aa44943bf9720395a8b1328648b887b28a98423e4322a69a752d1d2121d447c2f05bc91e52635d06bb1e05daab02f02b6ba9ea8944d9344ef68c23af10144b93a40c456da0857acdcacebf1782d63a0648497c91916a50b3d0688800b968f1e2200fceb4538f7520becb0fb86368ada208c0602e1ba5d2ca85da8d36ab8782a80436d69f65622279d8145aa5ed9671a28699ac9990d738c3b67ba500a731cda82965a01b4c16144383bfbf3334d159c31831f94301d6a0320a4c7a340aab3a18825516b819a285dbb82a28f164091516c2519b9b534ab8d116cf61303dfa4091fab8669a417a9862f90491d251277d4b7b0523b7c4e345ebb090e5ee581f1933e7168567a857dfaf916f7747550409889bcbfb7e32840537ecb7c050b18552fe5aabb6794b27505f3b721c0b96b738c844f816160d3c4349c4463f12d248a6605b52bb9f8b370e958db55b9ee0663454104c47781e8e0a6eceb2a2632acf0082c4e1806c0927a25e7ba8f1a395f1a352e72ccf72093a9587299e5bc23933395836bcc97832360a992b040a7b67d4e2caa3d227f60d4c8ae293070b1878c63c8e106267a8ac7bcc850dabb5904769fc487b4f417388ce6755058470a3a7fae41b56f009b01c74af2c0a7d252b30302a7b3585864c84c8aa4ac42e82b1ab44215191284799c40d5ac80079d30625dd09562e555167391a370fb6841a98ff2b85713b75ff58b984efaa29393540fcb20e3c1cdb1887be3a30fd3861d62999f2c376704983f969197c9165f19b498bc169966269e3af2300847c908a4738c8655f476238fba9bdb05c3e4f1c3aadc7432960603c36f759c69e4ba048c76561ab4831b40341ed5c05c7b8a853169f2d75713c97a883419457193b9889724d3a108c1c3d083404d93a25a98babfe33d36fccf4f6623b9e378fc5c731b0a20df7b5c28a0c86c065017d37a65d89e8e127acb630f4304739f19bb2a596bf950c996805f73d79ec0aa09dbb0561c3a3bdb13009f672b9f2c907c468d916c305d530fe5910a3c029a722a9e1e6048ef23454bb64b1c9eb2d1c1fb4c57d68f592a778a0b3bedd71c5d4f75c2e46b6088ca12a0a5e9596d5999259f13ff4f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 + +# Official test vector 95, seed: "121d90e70af6204445d0deb28ac0c108262719e9fd3476aca74bbfde89faf04d8d5f89a624e8a75db80431f0d10ad28f" +seed: 527fb88c8bd9a4d6031dad15e63878abd2b559e7e08d61f69e8e78fca964ee6ae32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c +public_key: 56180d96474d83a849634866a5cb0e6e00b8cb964067060df339cb2ea05fbc6021057978ff3baf47ccca15d90147473e8bab23693b6b70872b27b4a4c0730c5374a260e7cbbe9a094ab50e6fab80c32875c2032a5eaa8f2347c313409ca19302a0437cdea621da1ca0082157ea362ef7907fdc5826f067ac4a4a1e4b997d240c7d3df9ae6db528159402d1943fad6743e6e18b345ca2c0494d9bc956888ac85c021153b65388f04c456608e41361a6d3525a1143f610c21b2a9a7f5a2e1a461552904e341ab427028e567741d9906982e4b563d980b68871eef012f2c3639a244cd300cd0030bcf4a2b1db5101c1d66ee28bc3bc276b7e9922d0253904f30bb676777a36a897d35d381292915a82f9b2b7705380277916e16a137030198032b865c823e80a58c12ab39639488d65b0c80a391102cbcb4811911c60f618323c13a0e967bac6561483026c32348502927f70cb2f780bb571f861cdd5394296436e37737a8ac6cbdc42a0f9b96941907be3abb5e7740e193d590c862130283f0711665a85fff5158c968578781a7b766cead81633b6a2560b0a740752d83253a04c7f17b90b63860c19f38b78866edbb79482d8af6cb858c8a38fcf1c423f10cbbd9131ed87116b611a75bc109ee57eeacb6b2e1201e488c785b87f384c86587844a921701205979c1ba17dbc1519dc0908c656d7734a5a354e05606acf7901f0c7590e3a324c30a905b2462da7cfe478a4697601618bc74070a9e30707219c53b48c14c01a8fc745098a27b799868166c26f51a12a9a24c9faa336f92692c141961ba4444dcba2a370a63f533f87ca2b1b9537987b7b71043d5fd090300a7d4673a38cb781f833897e94955bba19d428cb7f71710e98901b3597467795a84487bcc5a1180482fea1205a0a854481719c12b11054ad3c85175a04c27011c29c387d0e571084f625a6f73cb5986945cccaaaac7d9eaa305c31535877cadf213d5bd25801438717dbb5051532f5f135f2f79fbd093864439507446b36f349ce4748fe614463917864eb90f3f36742f026ecf32e82f1cb90017099ec78380b5aca2c7e82657557eb66c2fb633aca3d99962ef8927a3f3c9d8da538b89525310664dc2889410465e90b4d078c7dc8f030729555756c807fe228623a37a2b248ba55516caca65256bbffaa6cf6457dba32336a71221659358f955416074ad0131dc4d186bcca317d193a91d12900c477a00490cc464a119214df01882576b41ad7b6f29b34dbb3b03a5c77b2d4162d985530c908b186b7e168c2ad69830302283cca078f5816a9c79add9bbbca9b3fee02447dca3ccb82bac0ccc385538208e49742da9616a28bb3c20568838de02140eee3a7e5a94a82563a90720c62ba2f32f05ddea552f565b4e2597b17c3b8c24168d4484deff79a25b82ee1253049e619829508b01a7891a10db5c5a532f4880c169a38c7a0c99715a2a696bf66b678a0349ef02c7002a5e5ec3db2c3647b960fe9a343b540069a6c228e024719e269853535f5e841f78922dd85c3052188a2db0b2a453b5119311747386352a437d0a0e2fa474aec0bdf1090ec169cf473b9cd153c2131b2e7e001d3525957a487a38c726d710a6bf6a1f0027432c53a56a96c3a1a100ea69103fbcca441a3f43002dd47714d397f7a3a02d0137a0dc060ea0669530161c67334b8965faba455b81a6dcb37c8d2ba97c9496c3e3bc984c44a7b2611b51794ee2347cc489c07b4a89e8c5c620221b9c98c08eb5b245819a92cadeb684b82757e00039079e550a7c7a14bc856e0d347d28861921277bf18932183cb9c40cb07d67202a7838b500df71b1ebaa87202a0943d982aedf41260b38c67e25173dbc67be8b33d10724b08611857c13870bff8c0324acb67f498b599db59515ca863bb1016e87d07b747efe8c903f50b3f7468053587555163e7f5165740204b78ccf2bb11dc32ad1cea844073b7d4667fb55b93bdb4a708db296f3bbbc511119db4479737578859075c320e55b0a5185552cb9426a69b0bd11b4dff716d5cc208e3fb46c3c4456cd63ef1d598bd675d55b1adc177790da6509dea49aa958d2ce9a9e6ecb19fe96548a88f7b489433147dde00139007b6bdca9b3c6c0eff0a1832c10a257599fa50200b167829bb34ee72551bbf3a650c7a34ae6ed516d401d89486d438a0515a537077561ec79e1a3963ab +private_key: 38d11a53967017a25d6522c539d05bb58667841b27c88c5f684597c79950739b4b3e15976bdb84de829fab2a74e888a65a336b5cf51e57c3c86e6caa9d9a4e7eaa69f9b53a719031a0d078f2257522bc083184bffc57790ba35cac0333f26925e87696c7749cc1129bf1d411fbea5049fa56231217fe9c073e59cd389c7b8fb0240f568dc815459ad132b932956288c3d93aa36d1627ebf1947c707a7f19c9d637b4d4a712e9b61444604ea1711cf08a91ba112087143b8893abc4db933fe973c65cb1c6512519b38e7385a1596407dd4850aaea36f9d4cc75542e96578b7230bd775040d6c03ef4b5b79406063c75b863a51488d395c33262a62268c1d11d53b315820b5190a94c8792aa24f651964061aca4212f452e7566b21418a9c7d84075f609e7456f069c105cb41ed9f638fa417e73f55f4c01bb553c085b3740a3bccd2cb76fe56b1f1b4892b762c2ad3c6eae082531b5b50e265ce5e104e8479087639368c091d2e2087a10b5d5f92cadba3c1b540bbf7945d9d04982ac5bbaa342ac5817b3a982e98a5e99a249555205d827b5e3348b31dc34af06b84dd52bc6d771acdb3b77a41aaa951b7fa5261d56bad24932531c35820943b0b2984afbca41506c4b3481f8817c285136c7185d8aa4a22f48920719b4d525ba81381142e8b178a0019313bea431c7ecdc7aec54662f591be66b74d85070c68817bc01c50e248b347c6eb3a97a70da43f51aca3df1cbe1316f93c50f4d02424578c6d274074e13accc57bbb8222d87db597e6c880cd794a94597faa10fb4f901208244c788afaf18502e3b7fec113510470d39db48352a7331b24a3ee15f986364a0e42aac36bd6a82b78b803571f632a0a49e6a871a9ec17dcca396c1d57a49ec5b46a981f6ba316f181721b40f17266120c0bf64a9a1d9116e2f104a0728bdfd54570da246c512c102d964c3c8432839900ff26910992309aa78aeda610cda4cf12aabd3dc7a96b1c26337c1e2fc858db6be45321de76aca80e417c7410283634b3e613d6594b8748917b60333a1268e6f943746377ca9c5ab428a0b6f37b844c25a8b0bc52e25cdeca953e089b9d787a738911cb6f209bc3b85c415b1d0a3630115aa496227a5d9bbe4a67ff05c2c8ab29090f52a9ad33a06dcbcff047244e170a9fb9fa7298b06313b80d4b1ca0a61d1531effec12c77405e188053fc0aa1a0329bf1139cfaaa86341004a4a11c461a5ab38036fd777afec0fc8965ef19144f0f81e40065fb23986dae3569dbb5feaa79b4c867be5a536dc9379d0365b00e91de1ab9a9701011cec0721c2905ea049fc221f39a7a80aa11114e69e7bcb3822b3c61a46386c1994141918ecd7068370ba638770fd2831dc758496056d15a82c6e0196c152592a216749eb02d2099309573fb9298e6d1cbda57898ca8788efd280934b4b60e40584c365633bc7fd091db45a644936be33953d4675c2fbd270ecb82b3e550d2df36eb5d11f7f6726d722861468cc2e830a11c419646c28e4c0bedc9627a0cc83ab9b9d4e3b320cdb18c4165c3b32ae61a05aa0869778a51df37b9c125045c6899724152c7ba7a6536b3d9e92ac2c63c29189813f55b5919861f38cb6d30845ce353dd0e199503785ed6b43ab60c0b6233b64265c7a794ca19838776a65ee97935cd4a63862299297c15b6a17bb91cf0ad393972b867fb11dc1e24ec7e205a42925ad337874b3263a7008e6487ed08c14a8b7a973f6a340f2af81fa76691c6343577e8b83399ec1a356b78d1e92ccbfa54cb79a3110411ee82161578c6a07d5746734710ee8a65f69780c16bf600737be4b48c7c977cdc2a3a6769301328f7ae7238f297f16a897cb3b768401544b974007c64be131b45d454a24a21af8440792631d78fb3ac527112da6222ab0ae47490c8247c847b5aa9700c05f7abf8f084cdf97c2bbc11414aab6ae26a276145cab441240808d1c3069847ba4a288a01822c9aae799dc44328a749042ac06a39130c513235f2567a34b52858199fe59758328010ccb7d8de311220335b4a555342633e5ea60b0b599e483787d2417790282011a0b34d13151a02581d939423c364a0a348f81412d07738299cc7bd12d41d1642d3b861c661338a3568a956ec7a4b5d855733626b5164c8c2ef2a56897a656180d96474d83a849634866a5cb0e6e00b8cb964067060df339cb2ea05fbc6021057978ff3baf47ccca15d90147473e8bab23693b6b70872b27b4a4c0730c5374a260e7cbbe9a094ab50e6fab80c32875c2032a5eaa8f2347c313409ca19302a0437cdea621da1ca0082157ea362ef7907fdc5826f067ac4a4a1e4b997d240c7d3df9ae6db528159402d1943fad6743e6e18b345ca2c0494d9bc956888ac85c021153b65388f04c456608e41361a6d3525a1143f610c21b2a9a7f5a2e1a461552904e341ab427028e567741d9906982e4b563d980b68871eef012f2c3639a244cd300cd0030bcf4a2b1db5101c1d66ee28bc3bc276b7e9922d0253904f30bb676777a36a897d35d381292915a82f9b2b7705380277916e16a137030198032b865c823e80a58c12ab39639488d65b0c80a391102cbcb4811911c60f618323c13a0e967bac6561483026c32348502927f70cb2f780bb571f861cdd5394296436e37737a8ac6cbdc42a0f9b96941907be3abb5e7740e193d590c862130283f0711665a85fff5158c968578781a7b766cead81633b6a2560b0a740752d83253a04c7f17b90b63860c19f38b78866edbb79482d8af6cb858c8a38fcf1c423f10cbbd9131ed87116b611a75bc109ee57eeacb6b2e1201e488c785b87f384c86587844a921701205979c1ba17dbc1519dc0908c656d7734a5a354e05606acf7901f0c7590e3a324c30a905b2462da7cfe478a4697601618bc74070a9e30707219c53b48c14c01a8fc745098a27b799868166c26f51a12a9a24c9faa336f92692c141961ba4444dcba2a370a63f533f87ca2b1b9537987b7b71043d5fd090300a7d4673a38cb781f833897e94955bba19d428cb7f71710e98901b3597467795a84487bcc5a1180482fea1205a0a854481719c12b11054ad3c85175a04c27011c29c387d0e571084f625a6f73cb5986945cccaaaac7d9eaa305c31535877cadf213d5bd25801438717dbb5051532f5f135f2f79fbd093864439507446b36f349ce4748fe614463917864eb90f3f36742f026ecf32e82f1cb90017099ec78380b5aca2c7e82657557eb66c2fb633aca3d99962ef8927a3f3c9d8da538b89525310664dc2889410465e90b4d078c7dc8f030729555756c807fe228623a37a2b248ba55516caca65256bbffaa6cf6457dba32336a71221659358f955416074ad0131dc4d186bcca317d193a91d12900c477a00490cc464a119214df01882576b41ad7b6f29b34dbb3b03a5c77b2d4162d985530c908b186b7e168c2ad69830302283cca078f5816a9c79add9bbbca9b3fee02447dca3ccb82bac0ccc385538208e49742da9616a28bb3c20568838de02140eee3a7e5a94a82563a90720c62ba2f32f05ddea552f565b4e2597b17c3b8c24168d4484deff79a25b82ee1253049e619829508b01a7891a10db5c5a532f4880c169a38c7a0c99715a2a696bf66b678a0349ef02c7002a5e5ec3db2c3647b960fe9a343b540069a6c228e024719e269853535f5e841f78922dd85c3052188a2db0b2a453b5119311747386352a437d0a0e2fa474aec0bdf1090ec169cf473b9cd153c2131b2e7e001d3525957a487a38c726d710a6bf6a1f0027432c53a56a96c3a1a100ea69103fbcca441a3f43002dd47714d397f7a3a02d0137a0dc060ea0669530161c67334b8965faba455b81a6dcb37c8d2ba97c9496c3e3bc984c44a7b2611b51794ee2347cc489c07b4a89e8c5c620221b9c98c08eb5b245819a92cadeb684b82757e00039079e550a7c7a14bc856e0d347d28861921277bf18932183cb9c40cb07d67202a7838b500df71b1ebaa87202a0943d982aedf41260b38c67e25173dbc67be8b33d10724b08611857c13870bff8c0324acb67f498b599db59515ca863bb1016e87d07b747efe8c903f50b3f7468053587555163e7f5165740204b78ccf2bb11dc32ad1cea844073b7d4667fb55b93bdb4a708db296f3bbbc511119db4479737578859075c320e55b0a5185552cb9426a69b0bd11b4dff716d5cc208e3fb46c3c4456cd63ef1d598bd675d55b1adc177790da6509dea49aa958d2ce9a9e6ecb19fe96548a88f7b489433147dde00139007b6bdca9b3c6c0eff0a1832c10a257599fa50200b167829bb34ee72551bbf3a650c7a34ae6ed516d401d89486d438a0515a537077561ec79e1a3963ab873d11d816550a4c1b14b584703531dd7cf0d97269125dbef3d73e443d017f57e32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c + +# Official test vector 96, seed: "b3ac6503206accc2a92cbc210d020a2654726911d11ce676aa04feaa08af1d20c654e4105883ae470ec3ab299075d420" +seed: ac6fcfaeeef795b6ef9e062f02bf42975fa01e7d91ba832f74e05269a72684d05aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec +public_key: cbf017d8e336efbb596130b73268680be4885255aa6353a39f04740be2c3910a9ba91700687088aeca7fd4a37feca45bf29a27824babb327c49f18539ed20c1755983e6b1e03f98f8610227362c9e12246d2176ddaf48dac31955e59a7d69a8dfa582f8c66b14db7259e6c4c63bb88c995a71fc44bf964b1650746ff672fc2716528741dd8174aa2326e21f025367a0f243ac63728bc6ab95dc22a9632e18cff13cc6e38a1f4a0a542259d41db0c1dc640e8735dfbaca58c3c7f18e39c74641d477099ff1ac96c924e366b16ae423de8bc9610c855eb686e8d9301f2c08e96e3a2776523ffb93cfa3726c1d03d0c2c634f1cbae6dbb4cb987be8eb464190056cdc29a7651c79773b1686269c1646a65786f667986e7a552278713fe5c5a4f9c23633c467b8b63b408c4229cea5f5a0664852729a7474695137c0961783656df45277092226e232d5eb929c8bb57781cded3b7d5266bf5c2ccfa992bb9d8b59746319e6b5803d00a84e2a99989c08bc9726783389fd506074606a0945c7e3e22500d58fe3a647213b19beb6174c72833dec8ecd036499e53b0a18a1d6e471712a1d64a903b1f3634ceaace56a906a1336c9d9708768a6bcb9cfc036ac22607810457e8560561a38c5cd84c6ca021a98c15aadc47e874778a81423d669ab411a72aa4a661deb2b8f4a06600baac967617bfc5dc8d12d44d9a7f80b46d9a40b91a66e3cfa0bfb5523c04922db21c4120717b436c6dc81030d13b867e707b9a3891791c756800adb41cc9a29260d98202472b733611037a98b454b6b5af423df236dc079941b160ff1c0b8ed1b14e787898da354cf79ca4fe506d5742b58141dcf624964397274737e4ed1aacb76a92bba8966ab24741163893587c94cbd4581bd0a110937946051c572f2232a149667794812039ba9e6525a298531e7479a161123da95b83ee746dcfa1d880130af080fd71480a4d51a48c48abcb62d4c7b44b712bc0ecc4eb53a929a1167f3c49be7b019002679123348af5b7ab18a36f86a23b309154c5307b003966c8755047718b32649945c7865f123ee60198af51dd591934ee02ef7ec218569129d03b76e9729dacc17e4407eeaa4820e238deb307d819528b932bbdd74ac25c0476c037cd8200ee9231533676f3e1b11a6fa2511a3160f10b26f2cba2966572450516be1a39ed8bf651b961e58be810bbe83957037f1671c128f91f302dfe1103d624b97b4c331db624fb354178047ad4b909ba93211908e35014d896144356c250df2248c5487ea11b329214b4c3b2342e64244d684ba914e020228e0d9b5b0283b5c96a22b510f31974843b21df48878652721bfea1b38054ba1b39ebd0a03746ab5d07ba3d80b5be050af1282bf1ef87629ea0e2f9a272bac24b7d3b464c182a8032dc2acc0b7ba3482c5cd7c0b5199522634f61d553534020671baca3534193b2a9585f47394aca1c8aff24c05a7a8b0f59745e56e12321fa1a7b38db38de3485f017626eea474e3e3c1a6bb5242f26de2529e517928e547423b79cec6452f14c17ac403c0a6e23d25d334ad07aabd8c60310082bb4a194d656b2e2b64ff3475fcc9226a526867ca7dd03c75351ab921eb35e445b144f4a7e743acca85372a03c4cad754f1d788a1c919efc198aef95baf7768dbc94f36d5a37db440ee403b9b8a339bcc50c0469f51681fcbb294a042147f895d9121701071a6ae8b85b3ca4a7f197f06cc5ed4e40c5bd1ba18f76a8010857bb0c3f8c15ef8f89fcf22afd560445c8576b8a46297f1cbf5896232040727eb40b78c97099a09eae192803bcdb153b7c9918b8c66a3e8ccb0a928b2505b3034886b452bc9f7719246d62ad183a292a75f4d6715a42153b8f8656b2c397428803725bd66239587506e9ad5694ee0592918a14346cdb0a9117b7969345bb11be07b82dc4361b580fabc4a91d919fc97251ad1a69938b507e066cfa6a251d98927f2bf2a9806163c07d1a96627265776105126e5ca5872c61e4bba95220ed45124e76b334df40fe0cc4f193baf6ce69581313616c0a9de56824f007d65692d0f675aafe086b6e2621bfba18ce1adc4337553c81b92ca4a9a2c9712416a168a7a9fd06450589641e952a96b122b4c4bb63721d6e76201f96e7403a908819bb61864f9225185678741da30f96e7973a83811b94c50bae593d1da6d3b306bf50669e590eee2 +private_key: 5cca6a37c37871e04cfa962d1716088fa90f49d176bd5077881b53d6f20da1027284e94a28058a0e249da3c36c5ad6af6056c4f8774af6343b19a0cf5f3a4c594489a64305d3196e71e390528141a735544b9ba54cf64523c39797153ae1620087264a5bc804cb864c92781ac4756c4a216d6d041ee6369436dcabd1b3a33fbb2fac37a994e2251aa9112c28ade1761151947314134ef0567962819ad9e47f56e7724ffb8967db192dbc50e0358d4ed578db4b88f76578196799340a21686c747b4763b9302eb4d5648cc83f75587627661a269801ff10662ae713a03b7ef1dc1918493885e811163902c7a8c5cc51c639c5750c13abc126431dd85d9706c945fb5d736224c5456d6da493651b148de081607116437a9c45e6614f76a5c6502b65a1ba5a31318893bba3b68e3cdc3680560d22c2b33745a4acb3a8af56452b7201cb42a0301c9a41848315212f60bb7d6cf7c8647cc7acf68b81959a8a6a91dfaaa41f3a679dd136d40046d7846f170bcba2648e08185a6ab380236158442299897814913196bd649a8b735d114135aa466804fabca21084c28844bf00cd18d6c8dd0b48a0f61139458f08f912dd28c4b4b6b012f6cef761740d97cc81341c80190a0659380ca04934e3b4426c7a22255815646afed165f68186da0206aec0b841828cd3130c59f3295ab80613e07a85b599bfa444364a569486075ab07815c74b4729a9281c6afef55fe7737f621128e18a355bb89c392817c348aecec895da19125af968bd1b4968240a025b051c49650594110e96547c10a127148ac162baf3625093c26577174586ecc30e4234b9b626c58328613b21bd4a8fbaca56ae9c9b943a7d2d79230e01caa6c6135900b33ee8925ceba22ee6b65fa09056e539e71b20c4815b448c70ba772302b9cd6e7546e756a85b41c409062348c334c6ec74c130a13a146757b8b566d33d7b0918ecec6acac9c579e5cc7e3a33c5da79d86a36b0e9b6ce1b22cdd696e1e793f6109da565137e2b666631225143a9c8b95d8d3a21c467c1dd2c0ce774a45006abea578844e09f8b982f0ebb53435c0941bc7cd7d27e8336cddd8332d62c32068623bf18944643634d814af239a12e3aa0daa027a8241297fba5bda40eb7630d1c2a4acfb7529963aa1f80ceb901b7159020b910c252bac2110a6da65732ae359ae3d0032494885c6a44874735d843cf2ac6a5e5f5a625069c0a49a66c8270b8e5a00d91293f0664f64594d7493f5399a3ec6a2c4f4a31bd604b04449c1b215dfb227f43778d9fe33f52e9c687452926e46a508c8a2d7a448af4539c05b4bf512b962017781c0e157686b748cb77b36a95c459ce5011da0c88f58a518932b5f7eaac67a27d89a60884d8a9f2729509db5cb76cc6f6236ddd0911d9c41f526086f3a24e0e160192577b8ac91ebc0860f7ac884161c6b62b872f129cb8fb11d56ccfe8b9adbec54ffd23b02e471284dbcf508c6a1912213ff754f1dc195f97b0bd798d8ae8b44114c4dfca0f76e479d39c4a19ac67445520ebfac92cc300fc62a94541b345f10b0f79c519c576c2037998564eb1506e6b91c8f606cac8f9b0d6927ab0e885b4704ac54cb14c67949f506000ec9e0685a9684b648a802cd8b5c8cd82860566b2d6e60e213429882ab51efbccbbf33f4f7a0cf57b6ccb8a27d95936a87814e6d80c4562c7a753c0a7e03b3685891e77338034713b7c8da4d097281753e54828ce951c60279a729376e991aac5101c6de3ae87c4ad3f4c75ddd517978bcaa4e85deb15c10fe701710067d25c2da778b4018c500c7368e58c550ab5825ffac4d58b87e745bf10d8118a787a5c5694bc099b38d89ac7f890d25497a8e521c8505e659506e0c65678279bc3daa95a82c806f04219944c5ef308315c69bc753d50490002c22e8eb89a65c93ac116692370595492cb626a8b5b64c291f77f256583bfe2a2372cbe80ac5704a2bbf3f0bd0a4515cd131814c6aafd39934adbab22ec3889572b423b643bd56cdd3ba2b8b20e98bc8afcc33d78c9bb8e466047961b03d31f94b783ee80a7506504ed3a723094c460d07adbc7b4ce258f9072c687e6346c850edefa4d3600cd616c6e8138ce6c3854a9452393a9266c2141b1d62d4111adf9833e2f2ba9be4289db4317cac169cbf017d8e336efbb596130b73268680be4885255aa6353a39f04740be2c3910a9ba91700687088aeca7fd4a37feca45bf29a27824babb327c49f18539ed20c1755983e6b1e03f98f8610227362c9e12246d2176ddaf48dac31955e59a7d69a8dfa582f8c66b14db7259e6c4c63bb88c995a71fc44bf964b1650746ff672fc2716528741dd8174aa2326e21f025367a0f243ac63728bc6ab95dc22a9632e18cff13cc6e38a1f4a0a542259d41db0c1dc640e8735dfbaca58c3c7f18e39c74641d477099ff1ac96c924e366b16ae423de8bc9610c855eb686e8d9301f2c08e96e3a2776523ffb93cfa3726c1d03d0c2c634f1cbae6dbb4cb987be8eb464190056cdc29a7651c79773b1686269c1646a65786f667986e7a552278713fe5c5a4f9c23633c467b8b63b408c4229cea5f5a0664852729a7474695137c0961783656df45277092226e232d5eb929c8bb57781cded3b7d5266bf5c2ccfa992bb9d8b59746319e6b5803d00a84e2a99989c08bc9726783389fd506074606a0945c7e3e22500d58fe3a647213b19beb6174c72833dec8ecd036499e53b0a18a1d6e471712a1d64a903b1f3634ceaace56a906a1336c9d9708768a6bcb9cfc036ac22607810457e8560561a38c5cd84c6ca021a98c15aadc47e874778a81423d669ab411a72aa4a661deb2b8f4a06600baac967617bfc5dc8d12d44d9a7f80b46d9a40b91a66e3cfa0bfb5523c04922db21c4120717b436c6dc81030d13b867e707b9a3891791c756800adb41cc9a29260d98202472b733611037a98b454b6b5af423df236dc079941b160ff1c0b8ed1b14e787898da354cf79ca4fe506d5742b58141dcf624964397274737e4ed1aacb76a92bba8966ab24741163893587c94cbd4581bd0a110937946051c572f2232a149667794812039ba9e6525a298531e7479a161123da95b83ee746dcfa1d880130af080fd71480a4d51a48c48abcb62d4c7b44b712bc0ecc4eb53a929a1167f3c49be7b019002679123348af5b7ab18a36f86a23b309154c5307b003966c8755047718b32649945c7865f123ee60198af51dd591934ee02ef7ec218569129d03b76e9729dacc17e4407eeaa4820e238deb307d819528b932bbdd74ac25c0476c037cd8200ee9231533676f3e1b11a6fa2511a3160f10b26f2cba2966572450516be1a39ed8bf651b961e58be810bbe83957037f1671c128f91f302dfe1103d624b97b4c331db624fb354178047ad4b909ba93211908e35014d896144356c250df2248c5487ea11b329214b4c3b2342e64244d684ba914e020228e0d9b5b0283b5c96a22b510f31974843b21df48878652721bfea1b38054ba1b39ebd0a03746ab5d07ba3d80b5be050af1282bf1ef87629ea0e2f9a272bac24b7d3b464c182a8032dc2acc0b7ba3482c5cd7c0b5199522634f61d553534020671baca3534193b2a9585f47394aca1c8aff24c05a7a8b0f59745e56e12321fa1a7b38db38de3485f017626eea474e3e3c1a6bb5242f26de2529e517928e547423b79cec6452f14c17ac403c0a6e23d25d334ad07aabd8c60310082bb4a194d656b2e2b64ff3475fcc9226a526867ca7dd03c75351ab921eb35e445b144f4a7e743acca85372a03c4cad754f1d788a1c919efc198aef95baf7768dbc94f36d5a37db440ee403b9b8a339bcc50c0469f51681fcbb294a042147f895d9121701071a6ae8b85b3ca4a7f197f06cc5ed4e40c5bd1ba18f76a8010857bb0c3f8c15ef8f89fcf22afd560445c8576b8a46297f1cbf5896232040727eb40b78c97099a09eae192803bcdb153b7c9918b8c66a3e8ccb0a928b2505b3034886b452bc9f7719246d62ad183a292a75f4d6715a42153b8f8656b2c397428803725bd66239587506e9ad5694ee0592918a14346cdb0a9117b7969345bb11be07b82dc4361b580fabc4a91d919fc97251ad1a69938b507e066cfa6a251d98927f2bf2a9806163c07d1a96627265776105126e5ca5872c61e4bba95220ed45124e76b334df40fe0cc4f193baf6ce69581313616c0a9de56824f007d65692d0f675aafe086b6e2621bfba18ce1adc4337553c81b92ca4a9a2c9712416a168a7a9fd06450589641e952a96b122b4c4bb63721d6e76201f96e7403a908819bb61864f9225185678741da30f96e7973a83811b94c50bae593d1da6d3b306bf50669e590eee255b703fe0b2aebdd29f6ceb606f15213da5f478ed4605a212f52358e2046d5b05aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec + +# Official test vector 97, seed: "59eff60b1ef6185db34ee1e3b1dd2f159106ceceaa79beb74923b4f5623d5bc52dbf5d2594a1f7c6c64d12cf144e9ed4" +seed: ba2fb9318d4dbe7488057c33e95e6f054583a2800c41bb83083c330a914a12cfe63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab +public_key: 8945cc28753a4f3771a68a9000944d726479e1a79d88675fa13795fc086d79f82ea5dc7e2da5ac939a42728963bfc3659d50345694373b877b0504a864247addc746e98126cdc71d0e3b0c7f457c046ac8b8c1458ee70c82905ff5183d890845b21c66953c6402cba2e329886ad51a92f7c673995fe255bf9462b2edcc899125b1820125590024b6928fa0c79476ccc407312664b83c9c59a806989c3252683b139799561708732f57804a96c0b58c88cb4a83a1271a05a9a58a4c187b45cc893b9621e8c5543a02221efa2617b0a42bca1880959e70496cd1452d36191dea226b49f76418b1a44079c2d6392c37a319ca007b65f57743598f2c40a68dcbb603f11cd32c368a0688343a25f6a348c0b260b1946abbf15b3c9ba0ad1cb302b918e4285870c9444118598ad60dd6030c45f33239abc79a04a05a2cb8e62128a3a9ccb61248f1021c7ba5751dc60d50919862332bdd0bc371e4037063879fb5bb22290328c9194aa83716316b7747a5130a984a249e2e124ea0eb67396a3197fb80bd672c6e6cab6de2cca2e3ad70d5866fc878dab1cd654729ecf9ceb733a1b81890cf51c2ac112a52b6a4122c27b86cca81089afa1361c4015abe68c62d9a11bb10358459882f58461761a7ecd3b9b3b17e32a682a389c4328bbc4aab01f44ca93f150e72678160243130555ac9e964c784c33943b5ecd07aa8097be421b796305f05e196ae166559ca5c59a445bc98092be1182f8000d5c39b7c074e016433235aca94d7162b853e45367d42e1604b10702cea82d9004259d130ad5117ca24c6ed411d5929c3f7a6bb35cbcb2ca6bf08c06d1a1cb63aa54d4164a838173b82b45523e00559994e8ff5a9cab63c6fc3266998ca8bd5820e7b16f8f86ce149c355e49451c89624b4b1f2fa7f09c5a15bbbaeb6a641d561830ba25ea470c9d7c397499c9747994bb8818bef9c1ef7802fd6963dbafb6e6dc5a3ce1509510578b96983d08c53c9384e45e6a5bea7c943d11c5c46cef5d0566c4c1f99d00079b0641636bc31913034a134e7a4b0cb959ea4662be55157fe89a7eae1a976f30517ba7e019820984115e5ec2e7d00267240695f600b2eb4181adcad96c7605d5c750154a41124c6f23696845b9b5539ae30b1564bdb2b41c09feb96b31b0796fed8503028af11b02e68f342e3210845525a52268a1b0b4f7648600b455c5c824c49e2972371808bf572017331cc8bc0e11147bc10793e096144a4187b196abde288b134bc54c5b3b85312e7a9bb90135dca9bc7396615ac979de9800c26057ae3064090174437209ede210cb2c733302c4ae9c1ac1462024d54006835ac3f23611d1bcfc945a58401c6a6da42242983f4e712a5080bdd13633b1c98f32835f179a3d011aaa46b9b2fb810dee9495cb4451fe0ba20f71992a445e0c16486d06382c8cc4051647739762257a00d80956475b4521493df79a28319c2c1338c9cb3791980785c2a1ec4a11844b608a7c7c92b81015534a03904cd5a4777fd587ad8004b61ec40bc9aa7a4268ef445900522759cc5057baa2a5729bcfb3a0666126a90d56b7527c32800960d9586e93579eed18189f0a762518125a4317649a3c1883c6ed8b047b5444667b4d53ab5d5b952b10ca1b8aa4ca5e438ee3c2e79c2132bcc257d8585abb609ff870d25826a67075fc38c32cd1c6d78e56a4f18cb59c756979331f1786820ba297f4c26ce251c93686506b26805286cf5919ab660092e6c1825d746c8c9478b408aca024376233ab8c287d709d02f7b8c6d80b4430917fe546ba774482b9b77c20bccad85355f562152a1593cf2bbb02014df47b29d1ca5c1d300445cb4835b45bd59b92caa1cadfab9986869f5a7875967981f1267e615180bf7952a27ab3527a60b130d69e155ff88410b1a10a705b14df248cca801e3b7610baac9d92c75e4c759cf7c8f644b610a350a9a9b5b59eb798a1cbf42d02f211a27aaf05ab8e19baa600f3babca5d82c9388466c5aba81c32a7dabc9775e73a77432f9b96225db1698a2c7a6c9b6949c59d7796758d24c41872802a63bc9723b17f703903c84e425383051abb07e94a1f19a258a61c66b56f46cccf68fa4ad62c528cc1bba2d579913ab754268eadc4204b887bb764096783301fd30ef9d972acacc01977d137525d619df951b0f9a5008bd9cb4524c5ae7cec747696489a8fc0ef65 +private_key: ae7abea38c394ec61b08f8b73a42afe39c0510a45e50a3c3565941c54332e613c5687c6b7f1ac590c7a2472597e331a23f3122e0a12a8688a9da651aec131981aa6c623aabff1b682db2525543afdb53b461853aabcb955435178d9939c2e262554978b998aacc07728f29a6ee7c54f34738db084c81b6cee4914b0706ae0ce056eed5c97851a0c861a91f42938678ba9383b4a8dc051472cd38d2c85de9747d90ce0e46bb059688cd2cc90721187f56bbb695c43c61651bac8763572d78a4014ea4106a9916ff378cab1518801455683175aa75af0619a6eef774f25568dd35cbe312b80db29ab007ba069182a0369d8025ca8fca341dfb99ccb044b1ecaa19979957e2001af126df1159f13648bec2a71ac53a8cdc957b731c09d84249ec7a53b3507327b1fe36bb79a7668dacc9f898698bf296bb078d612603336109dc29664635b9fce33005c704eb3512df2c4ab3e63387126146a56c00a04954516e386b554eccc45a848c8ab79513e9a7e1e0692315714b292090b281678b70af0847d3211b97f89cad50aeeff5660ba620302724eb2403d4c0a8dd015e7362077e0944da2b5afaf2ba08687c25e491192659e48363143600ca16441a678c7fb40a76c08760c102247606f5d128dc0a13a8a86f758725d4205f1a2393a7479af603a2f173c841b27b51f90833363b87d8134a904dcbca542f76caeedbb57f73522f227f72056390939c10d28b52a824ed621d861c8080660472f01a3d692b1802a7bceb5cabc12dbdd649713227bf9a53f801420c0421cb48c3214755917ab076709231a27dca46a2a603649ba1aed077960e5ba1d44bb3f2ac2c0536b8dee5be0b7c682851553d902939a775d564b38ada0fabd429e105aba00433527b3ea6f847ee7c1667590f96fb7c4f2083c2d540582bc79dfc3e881905b8c16b5bc0c5c5c46880822cea340c95006d80b475d0485c1539880d5298fe1018f9302723d5b3e64515851364e8269a6bc824c562a29c801806289d82389945a4974d16865889bc05d42f57ca85a6499ff0e5534b9cb8041cc0d5f30ea82a04746b51d8242319d980d274102b997b70688f63014f2b473f14b344d9dcbb08c400355a53b923b7a5539b2c41ca08a31556c32c67303448b088a9ac95005c74385baea6a227cd535be3b58e97aca21ce97f89e6c634d175274b737c74a8feecb38bb587777b27ca372ee6c44592ac2f54618e77eaa6f11342de70ad66da080ff75d557b5e052bc4e6e9614f0b23c2b9a13e540637444585a81a5e90b2c1178881ca41a5863c45f42564200e7f9b82222430e7b185fea1a5337a2beb4bcd059cad0b2141fde13060ac4c2bb4b87ccbaddbacb43ea9bcd15a32e02ab9446c7086f64653f45fca9190b0037fb5eca9acb9c28b757f177a9ef74bb4ab8cc526d2b4074b99ef4b6b3fc85cbb343834f929496a043a037e7e3c1eb71323f5cb62a57b3b7cf64d639c2cad92623aca195a43b684058f342713eb661d78a59ba2b57fdd7a64d2643add5738dfa57e575a11bcb956d628c85d06051109740a706fb649203ea70aeeb4cc07e1cbddc2645e2613b6e90d5a12b0b9a81cb94152b106cb4d25830af5b76dd61d98bbb9a6d5cabfd13fdfb139a90286379c5aa772af1c10812da52b582437b6543665f522aa7ab8ecf57e584429cb74abff84b9281b8fe0fa540f542599529505e0bdd117a3550bb1fdc225a250a8781ba42d45a481e74de5598f4153650a4c85a005901a149c47fca69f1b8ed039884c74b39582cbea46b31061627368bbcd0c4de55a5930670274b6bb33a737c9b376144b81c16b9b23292f2d15cc8a3aada3cb7475c3425f8334fbd474a71a83ed957954fac29db49983c8a82bf41fdb0188152c5d20c6a9ad9bbb8f88693636ae00c4a61eb2be93f95a96441a9d7bce5b291a56d92640c4a22b1251ebe36379954fa49605216756b7d07943a176706a20f01362b96501ded810ccc709f54aa8744911811c2ce4e6490d6bb5bffac3f067278755bc8d472689720ad0f98801b6255bb399ec38272bc50aed950291d47ed97cc0c9c1542944afb7c313565c414e18934532aea2430c2c4aa95f31ae44b42e713387ba046aee62a3dd4416d0f4071ae6541efc7f8170995e376c41b57b7192c712a9be8945cc28753a4f3771a68a9000944d726479e1a79d88675fa13795fc086d79f82ea5dc7e2da5ac939a42728963bfc3659d50345694373b877b0504a864247addc746e98126cdc71d0e3b0c7f457c046ac8b8c1458ee70c82905ff5183d890845b21c66953c6402cba2e329886ad51a92f7c673995fe255bf9462b2edcc899125b1820125590024b6928fa0c79476ccc407312664b83c9c59a806989c3252683b139799561708732f57804a96c0b58c88cb4a83a1271a05a9a58a4c187b45cc893b9621e8c5543a02221efa2617b0a42bca1880959e70496cd1452d36191dea226b49f76418b1a44079c2d6392c37a319ca007b65f57743598f2c40a68dcbb603f11cd32c368a0688343a25f6a348c0b260b1946abbf15b3c9ba0ad1cb302b918e4285870c9444118598ad60dd6030c45f33239abc79a04a05a2cb8e62128a3a9ccb61248f1021c7ba5751dc60d50919862332bdd0bc371e4037063879fb5bb22290328c9194aa83716316b7747a5130a984a249e2e124ea0eb67396a3197fb80bd672c6e6cab6de2cca2e3ad70d5866fc878dab1cd654729ecf9ceb733a1b81890cf51c2ac112a52b6a4122c27b86cca81089afa1361c4015abe68c62d9a11bb10358459882f58461761a7ecd3b9b3b17e32a682a389c4328bbc4aab01f44ca93f150e72678160243130555ac9e964c784c33943b5ecd07aa8097be421b796305f05e196ae166559ca5c59a445bc98092be1182f8000d5c39b7c074e016433235aca94d7162b853e45367d42e1604b10702cea82d9004259d130ad5117ca24c6ed411d5929c3f7a6bb35cbcb2ca6bf08c06d1a1cb63aa54d4164a838173b82b45523e00559994e8ff5a9cab63c6fc3266998ca8bd5820e7b16f8f86ce149c355e49451c89624b4b1f2fa7f09c5a15bbbaeb6a641d561830ba25ea470c9d7c397499c9747994bb8818bef9c1ef7802fd6963dbafb6e6dc5a3ce1509510578b96983d08c53c9384e45e6a5bea7c943d11c5c46cef5d0566c4c1f99d00079b0641636bc31913034a134e7a4b0cb959ea4662be55157fe89a7eae1a976f30517ba7e019820984115e5ec2e7d00267240695f600b2eb4181adcad96c7605d5c750154a41124c6f23696845b9b5539ae30b1564bdb2b41c09feb96b31b0796fed8503028af11b02e68f342e3210845525a52268a1b0b4f7648600b455c5c824c49e2972371808bf572017331cc8bc0e11147bc10793e096144a4187b196abde288b134bc54c5b3b85312e7a9bb90135dca9bc7396615ac979de9800c26057ae3064090174437209ede210cb2c733302c4ae9c1ac1462024d54006835ac3f23611d1bcfc945a58401c6a6da42242983f4e712a5080bdd13633b1c98f32835f179a3d011aaa46b9b2fb810dee9495cb4451fe0ba20f71992a445e0c16486d06382c8cc4051647739762257a00d80956475b4521493df79a28319c2c1338c9cb3791980785c2a1ec4a11844b608a7c7c92b81015534a03904cd5a4777fd587ad8004b61ec40bc9aa7a4268ef445900522759cc5057baa2a5729bcfb3a0666126a90d56b7527c32800960d9586e93579eed18189f0a762518125a4317649a3c1883c6ed8b047b5444667b4d53ab5d5b952b10ca1b8aa4ca5e438ee3c2e79c2132bcc257d8585abb609ff870d25826a67075fc38c32cd1c6d78e56a4f18cb59c756979331f1786820ba297f4c26ce251c93686506b26805286cf5919ab660092e6c1825d746c8c9478b408aca024376233ab8c287d709d02f7b8c6d80b4430917fe546ba774482b9b77c20bccad85355f562152a1593cf2bbb02014df47b29d1ca5c1d300445cb4835b45bd59b92caa1cadfab9986869f5a7875967981f1267e615180bf7952a27ab3527a60b130d69e155ff88410b1a10a705b14df248cca801e3b7610baac9d92c75e4c759cf7c8f644b610a350a9a9b5b59eb798a1cbf42d02f211a27aaf05ab8e19baa600f3babca5d82c9388466c5aba81c32a7dabc9775e73a77432f9b96225db1698a2c7a6c9b6949c59d7796758d24c41872802a63bc9723b17f703903c84e425383051abb07e94a1f19a258a61c66b56f46cccf68fa4ad62c528cc1bba2d579913ab754268eadc4204b887bb764096783301fd30ef9d972acacc01977d137525d619df951b0f9a5008bd9cb4524c5ae7cec747696489a8fc0ef65c68e808974e356659cf3d88474ae8af1480f2c4bf5f053b0a8c211d43921f735e63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab + +# Official test vector 98, seed: "dddca9dc31bea737d3f474e7560b37facb2f53c803e768ffaade7669ff94b1d4fbd17068cffd5dfdd24aadada4ef6b12" +seed: aa6dd1e5799cdf7af9c4fc632b3eb9d51d66e85c8e0a21ec98664fc51ab63c7dfda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 +public_key: fab5cf19743430a247522566196826be35c3ba55053ed8c8ac04211931a38d5a100c7097059bc058d551672542a8f1a7ffe81e0c43b1636572f4608dfadc72f9a786c4c2b2d27c576d29461ad56369b7300d3b0a7890ca3d8407a8a1a90f796558843202152a7131919d9417065360440ab8516909087b2f4ea408baba0cd5c0af2a85634e88693b8c121dc8121d462650f2b417a0c44a5018bc2a70e68a590b757b4c0ac70bca25923049fda10856f62ca42701ab9a75d9991fe3d99856138112ba4f52da1166f410e3f15baf7c3062563dbf0626f76c4ce98ccb1f238a8870201654a6e551a5de9cc24fb36dff2334f2f7bcf51b8b6f8c2d07b4892a657e58637011624076040c02ec59924916f5e49956534b0b7a746b16663f33cef4440f2eb5be9fe4034db153d296a86d83bee3b08ae5341223193a7febabc53956049bc1e14819391c5be5e216377438b0fb56ad770335a97c8e574c015c66d99c59325a2edafc7a6b4ba77fb51050a2c400d754d71c0fac84781af78c03c094bd800fe25b7f7060bfb4252643d97ccc6002a1568d4af181e992b1ffa8cc17bb835f0b2e6b72026478729275b002636cb49c9edbf4373912961da0b913e6cfc1959b80e711cea276c10158dc43b6887042d8d58402cc54a671275fb49a7920c35651aa4d81aebdc772112420db0162b94648ccc519e369958ce40adc90413d9802e621b6e8ccac13d846151c19c6813259c5998f40710f3162d006c5d3a9b2d18861789aa7854831a0314eb74a03b84921ed73ae13db7298288ccec07eaef97716d14a8a296bc3d0b95e4a78e1fa2467c6ac961a73ce63085ca1a4b101adb7f2a4059a97a24bc2dfdb6115386de5e95486a46e6697a17a88510c97a0602205e008088d269082b2c1790c02912a9f03383a94d2127ce1a0d7f558434a6300513a14e2c4f6b33d8a159a06d09983688f75265a84637f07846f0c47441bc6a6a8e48142b39b4891bb5c321c8bd307dcb6326dbb960b532d88f08f8a299d914824e46189378c635cf2088ed8382fbb4164d01c867c1f1c4973116c3629b3cddcb40b1832a0f06b6d04ec8edc46205da3b28f50bd1730bbc04c5f927209a4369b878596a2e149767139e4a06493ea42034062ab1ab037728908c07f9bdc820495916c9114f7e95683c945c19354dc06c5b7888244ec179bf88ed4e68bd10483918bcea652446b7333e71a403e97446564361b5253d0b225d4155682123725f61ed5d4655bdb7891c6572758977f0b4e8de021e832ce6314c25e82392cbca5c794cd20241b87ec87a85a017774bc3da18e77e0b53a521b2eb0a7006b35edf5b0a85b44d3d78dfbb476861997714330c9c5ae5e0027d7298a64b62f2523670c618051629c9577abc2f456eb0ca33fc86e94d910d186144be3a886230cf3566cc09c2ccc76719bc349cfb70c35b24ea6b4bf1c0394527a529641a2b45b60da3a976d70012e48b5df60a7d8382ab149760cb5579f0673f78a52c01c8efd1a667d86635bf15035ac32805b56cc9a1cff506ca38b3df7a3b860985fed84b2b4f1c7f3a88122630f438c565660362a90887a9cb55090cc448c9088c6783aa890cb51ccc3c8cc7c097d59808f06675e1e826869abbc0644a612d471d5c106214abcc1115b106ab3405b1de14c664a773e6e5667d8177ed736a967710edda390f0b105f9c5ba3a2a61912a2414397030022035c533de16c634a799f2b72fc3112071e7aaebd1636a3603971020e2f90fb8113387ca17171b39104595e5500b50c99c37aba1fad50fed567d5eecc00db3ac14624675c76846b42327b9510ddb882b24be90c9661f5c46eb5b1991d25920c78f35807ec55ac2827776a54ac4ee272b469ac65aabc6ba199dbe33724e5866e24a8058d5908e30bf54325745907752d324490b766f6672c4c8443ff7647dec597276135a4789dbab39355175bf3a63ca6a359a879d648c0b388270680781d3e732efa5c85f1c020e4384875954b50403a4987ce54a6f24c83e541491b7d144012544b96b00b933c51704bcfc2b20ada6c481ab32d555898174526a266f70b7939054a88256a59c95a0ec2501cbd45f0ff2ad418b82ecb514f7ebc3fc33647f5c43c5026fb547a33bf2642c9279dc39ac6012a770267d6c947324c6d45b65393421bf4bd7068abb93ab3a36081a303cf37b90037749a046d478 +private_key: 52309729384894d97de3098b745a1f88166013ec7422b31ed4ab74e69c3b7b094dfe982a7db3cdc5d4aaf9e468d0471eaa8c8aa3148cc3a49cb1eb4e4d420b497b73573a839814032f655f87245dc6acafb9602774500919361beeb7b9fd4688fa8238c8c1116f51970394c39354a39212b9508815dffa2e87416269c88def88a639cb1b3560bae168be823918afd8af8d42c3ad9b43ce33428b6b19d4038cd03169c06c773ad1295fe5c06ad97b17ec93cd639732faa7b88029ed160652930595719e5c734420028d60c6180263c9c7db51a2bc5d52b232d0279ef9e7761c1a4578b2b2c21778ca806deef18f9c8778f0b5204d661425c3023c451de2f806c67436fd2b7e2ef208023abb81f87666c117a78b696d65630b1334ef853934a39d9d959ac8990b674534257012796352b0a41308a1104f82a09df85aca25137d597a33c088f942c496998a367a08473a49acb2bd38d27b7ab21fe80959f3bcbcd0488c5bd4c42928155ce5a91da1b437539a33a34ca0cb1c4d179540816f0d063664b599fe195ddc777ea8836cf5c20f8ab34e3c8c6026e58e8b032c6b720324a882a5512d502880b3d2a3df38cf5da7c5fef955524b451d5c7ff24c926d0382535c0ecfea73b4e736a25957c74084448324fbe462fb0c656b074ee596abffaa67b692b770e734f56c53a97bc846030fa6ab726ee7097a49a64f098aa3c763942001c7999131220a47751ef3ac3cd729238c671f5ff51aac89101b772cea01144e469510502103e70a67b08dd968b21818934693037f653c845579e25c5be3196e180447210c97a9a724863588d5f38d20a8c5123a6b2aa549d50a8b03dab4536bc658c8b9d8c782b3e02321c90525e56d3ea8cdf91a7340c88c8d90426414469adac2268214433c23cc078a12c5bfd3ab079db8ab6222cf6f47c005fb84775ac60a606e1b460879d19ddf619293113b80598e87658a025824888541c2246f93870271c767f7d099e70227b97091d0d4c72a1248e47c80b99b2d8072cfc0552bb82320a6ac00f04232c75050afb90f4295c98ccc09414b402782a0ed168d31c2cf913288e57245c8ab998d99b16ba26313d05d50e15617fa0e3aa1a32ff2717ac486ad72bfa679a5a63a047983af1b6544c8405a4513af232b00907c935f3b452619b91ba35c6e6297d5f4abb981a6654b425e612b431359c5b861189a6ecdb978ae3b9804740c7db22013b39da62099d397659d847e7c6a9121991db5abc317b8287f2c9f07d4bfd9c3780e29441865458df968187763b9eaa8c3c99c22976d77760f31b5c369917249a78874f2c22671446d289f996ba38f5235152c366bda9d50f66235484df4f6b0b8f243776bb09a7958668b77f9e1a537428395457873d6be96868ee474c83d969d43e0bfd6976e9a75c79094574595aec7fa2dea390202dcb289f7823a35ca79632343c96e916a097e7314efc002799047c3a608b62829d2669fa6f0a95f594533d910ce6594e9a8186444bc6826541f3c834af812a38a2d8a87c8128837f68c93dc49b664813511fc64cafa56e324556b2803e56503db153ecec99d274c889227bfe8a6b4ceaa578ad37684984a6de966b0f9cb8740c7c5232293030aec6c4828c29152ac2fdfb29ee8c72172105365b465d1bcc2c2a07269895397842f2a839467e49a422657cff06e2320ca5687c52dea39470a8b2b84710ec05bb7bc10e7f3542d4a9e5e2a377cd15d8189a4522b107c866ebc4b7777e602fa4a46981339879534a92b679be67de762b2b0d07a3ae14434220d749c0d3a556295757c747a248a3b2e172a9f7ea35f646c2c2bc3615aa110fee2ce88d24ba7d12f0fd24d209a6fc44995ddf957ebc80014c4c904947a5c7a58a503be4d18a9450c10a4b90e93b780d17c7073623296c62a3feaa30b0414e1c8566d65b95a7c98890b366913336130cb5adcae5f40518325cf2328680d9c3e430bbb2bf32754235a4777280c934d33c2bc571a637b965583678b8280779ad6a2ad9a65d849419de930327b5b00ebba96dc14093088038982409a1b9b19c8085a3bc9a21783b51ab266a996a512c4ebb550c0c871f58332839ccb02a6b1509a89f43a54d302c865463bb12f5d87c1f0989322c48fe1927aea1029e748593995a858514bfab5cf19743430a247522566196826be35c3ba55053ed8c8ac04211931a38d5a100c7097059bc058d551672542a8f1a7ffe81e0c43b1636572f4608dfadc72f9a786c4c2b2d27c576d29461ad56369b7300d3b0a7890ca3d8407a8a1a90f796558843202152a7131919d9417065360440ab8516909087b2f4ea408baba0cd5c0af2a85634e88693b8c121dc8121d462650f2b417a0c44a5018bc2a70e68a590b757b4c0ac70bca25923049fda10856f62ca42701ab9a75d9991fe3d99856138112ba4f52da1166f410e3f15baf7c3062563dbf0626f76c4ce98ccb1f238a8870201654a6e551a5de9cc24fb36dff2334f2f7bcf51b8b6f8c2d07b4892a657e58637011624076040c02ec59924916f5e49956534b0b7a746b16663f33cef4440f2eb5be9fe4034db153d296a86d83bee3b08ae5341223193a7febabc53956049bc1e14819391c5be5e216377438b0fb56ad770335a97c8e574c015c66d99c59325a2edafc7a6b4ba77fb51050a2c400d754d71c0fac84781af78c03c094bd800fe25b7f7060bfb4252643d97ccc6002a1568d4af181e992b1ffa8cc17bb835f0b2e6b72026478729275b002636cb49c9edbf4373912961da0b913e6cfc1959b80e711cea276c10158dc43b6887042d8d58402cc54a671275fb49a7920c35651aa4d81aebdc772112420db0162b94648ccc519e369958ce40adc90413d9802e621b6e8ccac13d846151c19c6813259c5998f40710f3162d006c5d3a9b2d18861789aa7854831a0314eb74a03b84921ed73ae13db7298288ccec07eaef97716d14a8a296bc3d0b95e4a78e1fa2467c6ac961a73ce63085ca1a4b101adb7f2a4059a97a24bc2dfdb6115386de5e95486a46e6697a17a88510c97a0602205e008088d269082b2c1790c02912a9f03383a94d2127ce1a0d7f558434a6300513a14e2c4f6b33d8a159a06d09983688f75265a84637f07846f0c47441bc6a6a8e48142b39b4891bb5c321c8bd307dcb6326dbb960b532d88f08f8a299d914824e46189378c635cf2088ed8382fbb4164d01c867c1f1c4973116c3629b3cddcb40b1832a0f06b6d04ec8edc46205da3b28f50bd1730bbc04c5f927209a4369b878596a2e149767139e4a06493ea42034062ab1ab037728908c07f9bdc820495916c9114f7e95683c945c19354dc06c5b7888244ec179bf88ed4e68bd10483918bcea652446b7333e71a403e97446564361b5253d0b225d4155682123725f61ed5d4655bdb7891c6572758977f0b4e8de021e832ce6314c25e82392cbca5c794cd20241b87ec87a85a017774bc3da18e77e0b53a521b2eb0a7006b35edf5b0a85b44d3d78dfbb476861997714330c9c5ae5e0027d7298a64b62f2523670c618051629c9577abc2f456eb0ca33fc86e94d910d186144be3a886230cf3566cc09c2ccc76719bc349cfb70c35b24ea6b4bf1c0394527a529641a2b45b60da3a976d70012e48b5df60a7d8382ab149760cb5579f0673f78a52c01c8efd1a667d86635bf15035ac32805b56cc9a1cff506ca38b3df7a3b860985fed84b2b4f1c7f3a88122630f438c565660362a90887a9cb55090cc448c9088c6783aa890cb51ccc3c8cc7c097d59808f06675e1e826869abbc0644a612d471d5c106214abcc1115b106ab3405b1de14c664a773e6e5667d8177ed736a967710edda390f0b105f9c5ba3a2a61912a2414397030022035c533de16c634a799f2b72fc3112071e7aaebd1636a3603971020e2f90fb8113387ca17171b39104595e5500b50c99c37aba1fad50fed567d5eecc00db3ac14624675c76846b42327b9510ddb882b24be90c9661f5c46eb5b1991d25920c78f35807ec55ac2827776a54ac4ee272b469ac65aabc6ba199dbe33724e5866e24a8058d5908e30bf54325745907752d324490b766f6672c4c8443ff7647dec597276135a4789dbab39355175bf3a63ca6a359a879d648c0b388270680781d3e732efa5c85f1c020e4384875954b50403a4987ce54a6f24c83e541491b7d144012544b96b00b933c51704bcfc2b20ada6c481ab32d555898174526a266f70b7939054a88256a59c95a0ec2501cbd45f0ff2ad418b82ecb514f7ebc3fc33647f5c43c5026fb547a33bf2642c9279dc39ac6012a770267d6c947324c6d45b65393421bf4bd7068abb93ab3a36081a303cf37b90037749a046d478b6481b87d7f462e656db85d6046534ae44d82b1cb737a0194eaac814c7b85493fda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 + +# Official test vector 99, seed: "2a6f7386b815366f572aeb6c79e272cc21b7095fe09575f18072c9d677da23bc9c8a4bc393b7524604d299bedd260c8b" +seed: 195d6c86a3df4c21e3007d7f2768b43c74cb3060e0eca77f0a5d3271542b9a84ae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 +public_key: 7665cd15516d767a980e05ba44d761fe17355c0aa302f3826dd25da4ca4d044c299dab608da967c1e253ba77108df51914a15541763f737a89fef62be1f7b4e1b8b77eb719a84377be0081f7d71a6e881e15578603867855d87ec04b5f1f133368e43ec6282fe5eb16935a04ec9916caa90031e40d98b0a8ced98979fa7742a20dcbe84c67223eb6925d7b1b12e07a47677b56e9916029204e91408635eba66a6a844de5ccff6aa63fe15190030b8771101b456288b170bb117584c996c8515262c684a4718f8b369011865c756827d3038d62355f4c994a539815f4d6b6dc9455f4d7ba24501029170cf1aa3b0944574f6642c446a3f121cd08c7bb67e7239da147e0e9c9b5c57b8f2182e00488341994f620c99978c818aba5e4516efe23690636cabf607c438cc288e944b3446b41a264b88c6e0371a08a1c02703c21a0bc5d73e6b95e7b5fb87c6cd43415aeb26f92abac0371b9a7a70ea51c88e12bbcdef7c3cd3a4bcbfa3bb83606b25c85984021122400272a616fc4071db20560654a7ca099a6d0754c43687d9657b1b816a04b8d4cb63d0e3765e228890e0907accb4734cc557fc96ef7fb6b463cc2fa5b73b7fc231f230028201483e66efdd4570365865c08028f96609377703a2300f7e1b9f4939475541e0cda2527b28aca7374d1827206426637965870e9b86cbc115d9a04c0e73e8b7a866c277da3c58e0d2094fa285e2d05af7ef64f8ea6146ec4321395b7f30a6e52171ba28984b1e49726b48ed259638f6bacbfc5c2a4baa3cc391f0be917f7ba3a05dc911642a63db03fce58bc6ff92af7616569d04415a26eff8c271f9921ddd302787959f5397b70d7a388f7569e010cf26b67fb2c3a2a52714f5666b9726cb775c28a79a41531213e4766c9442fa06498f6d5a1816b7338f9afb779a40f2670221bc5ef319786762fc78b1a25fc9db8e362f11c9f374b04204940877bc209b25ae7f461c40a0193f66a95ab7dcc80afed9402ab725dab23c1abeacad633c461a26790865c21a960d338a7e485cb2b42a8b0963b8689c9d4287643b8685a341333dcbbd7637fa2671c1048638a547815f07b255ac115c8bc32b61a369128c60076c3464fdbe2c7c0bc5ef1e383ddd2ae8b0457410c19ba1c486b702a9048049e85cd1e7569eac6b3be8287ec9c195c3bb0b4f28952823832c55257d05ebd8a8bff9c372095be66359c9ba7384080a7acd9567db7905c50c36734cec7519e8e57195247b48a65a1e34cb942d741d88b429d226a4097beed271dcbc8a035606e056a89a8487197039adde30f78bb17148a4f0bc84bf1dc0d9057c97b028296b9260e601ed1a675bca781c53bcbd6866b4ae108d059ada7c6b8615195336c2df2e71ce97528378b2fdc4b6501f2443fd4b6248429b67a4624769236e32c12e3116ef66ae2554f55c7be15319e803b8ce0089d3c04b65ec8340c483b2ae4c2b8ec7daa91b39270ab7ec04fee436e1c008f61c46fa854363287573c50c63c3b1f94d52feeba13aec5c926257592904b00ca8615469df5539e8f4c627b11be02e96d17189a80f37da5d08db81baeb7c34b5c58ab3ccb25af3c29cec9364175b6bb4a04b5958079e18d5440bf24538598c1c548327980297efe531d4c14a9360b8dcc173f6536b760b2a6fd59bae262087989269c884a966c658017ce65d14519a2c61266b344f6648abc0a657580130c6fa0f6565d8100f0532011945c3fa296de184750aa931582a90e6bb9080971cdd6b470f68db4e529ed61bf97f62bfac5cb534c1570db606cf0351e1866d7e199dc329d70316d7fd849d5c296d76a8db20306bbab609e7a9ac05c7896b150d6962d2466158f8697e532901e421d5ec00671344640623891a9221ea17ebcf6b290dc54359814a86658e2c0159c2374e1dc5f94dcb30ce01f3633129274585e304f0436396d66660f81c4cd273b94a3740f9c2fdd081bc309602a2cadd82aad35a46684547d01c74c38547176113a697b49e6c98c1c017b25f817e19c2a0302d083dc5c74c4c38b6706e94c10d178369b375df9c118130824fe99ac49f24a682ac23de429f8c7a6d1a89c36f82f0a47379e7aafadc744e1f20b9186c67784c3e6b823306896fca303baf61309cb498a216431862f00198c26ab6938487dacfaeec6906ae45303ec7dbc2889a8eefa511b82609b980dad54ebb3e7091e9d +private_key: ead08feb355828171b57c7a2c7328d0a736fc5b548308a22b8672c19c820192297e4762a8bea6c048a33c0248676f2bf0b8393b34667de1abaec665a886ac369320ce3188f66d6482cbb184ca6b189c70c531661e10784f4b5116ba5000d0b06714320d8b72ea88621093a0338e5b628f44194925219406517e36d14096b2cf5286f6981f8885efc1ca4074b2d5ffb118eba8f1e7aa83dc8ac1aa9bad3b5cd257465bedc943fdc9a88915aa573a2ff63bbc2e29abe33cd919bcd725bb24486b847f2cdcdf36fdeebc79c123151a02a7f4a42851c0c56e08cb5b6cd34309200e80e9344a229917dc5231e1608115f6120dcf177da2bbffcd8a389e0623c81baf62a3033f99ac0027540c93d2071380d5ac60d894b85d18b20f21aaa5151657b34d5b125557832fdb09dd1c5bedb2bcce9d3c71e742923ea341b1657ac7908ae474cb7340d2f917513958ef6fc9bc4997a9a91662300a610868840c7b868ac0755e0a3c16a9b8f2343c2308e5e256ec7c60811822545eb20c3b8077ae771bd4313208584551cc2463691ab1ab4d5c112fe951bc0b9c02e867377dbcf41114d1553912400d065308456c1314641adf2038a8625b6311c3b0f98aa1ae37caf188f4448a6b5a78b746a0bcfba1ea2016d34059a3dc34fefd9261d5308b4e03c5677895822bc96441741865ddf787545b80c509259265976f187833959229cfaa95765a41837b210661a1e06137014b08039c88be27b9d292ac3969bb9ac396fbcbcd3626f3ebc78fbd6462e673cffc06d490b7dee720e57130acb1a1edd9c4e64a2aaa2f92411d489c9ea00b68a7d30d347714059487b8f837c1bb5070260b2521642cef747c602398902e33c6022aff921a25e941955f81515a245f6d717d048a307020055e988d760b141e23a16f767260877b7551e9bc80828626829f94e20c4020a9a2688d1168ca5c3a9f752643a17237ba623b79f144a118f5cb41f466a27cca78a208815538290b8ac4b086cf626932869b43e4b5477834606d9bf8e21295d6284d0cc72e64875cf526b8c380731880dd00c20fc2a31496274b94aa87ad54de79aac54995c951a1371da09770b8446aa1e40b1cbcb57ba5f446fdf1260e9bca676dc3db9a24c5f99cc300b7b08c9abf620bb03e75d0a5b872bc79cde550f8b243940737cecc136918b61adfa167553a005e0c2fa3190a895c2ef4a53ff90a75a879cb0e9855f2826ad7a9608579606904411b25ab46c6181203756a93c7a9ba7c2d3b862889fbd153a394791d3c481fb64aabad314c7d637dc43bff1a6ba7c031698f245c29294a533700145a904b17f9f30853090a0f68574b2b4a095033257d205a4e59af580b362a5be3c0311abb22e665c9558f29ef456cb3aca8d3a149a01118f7ce93d87ba57a814cb7e7c84dbc614fc2614ebe6892d6037df49446d135a6cd05d224786d79ac87417626d831134b95d129a42bc4663ef09184c53c50dcc9d2dca8efc81254aa76a8e8370bb03ca7c30124d5c2247490c03488484cc110c9b1233e482899ca443f0a4b44a6fa073ac87e82688763ad72bcae0db87b1a5a629d27f8aa2b11793b47c82af1486c97e41b7aa308e1a23af4b68be5c849625224aaa0cafcfc3a21ba49e3ba168d16512a5968d5c0222696649d7674332f884f31259cf9b477d1445eac17c4b11afd2fbb6a68aaece5a47ac5031e5457d32cc2a601b6b91257b64ea7c30b6b32ef7b949893a3aa14ca0d1a153b50bba60398cc4090a9390f714541f34bb4c93a81f734809cc86b8fab6be5539c9f6a968ec207eb577b16116169565b86c21561936a467a435b88081e71925576350cc964f5b37fd73c421e7a076703fc308947cc5a3f2e21d328b8c23e32fc8f5c04faa6d72395fc7c8b2d8fa72c6f35c9d81271ac34c0ca2685b5c5571f7b9b9245133c58b3bf155e6668315d0899bac05dfb0b8661241f22772dd290bd963087cb94c9fa464788b8a87c637f327ccbd31a34328cb58b5c7f95aaf9f51aa5bbc284fb26b40cc438843a6ac41c82886a2236734dcd81584d8ce18184b90b22e62296ace4191efe679d4d52c12351e3d41bb2d815035d62380c45bf078025d4a12885ac092057b009d6c3105ac49641cdfe0c48bc41a6f14c0a5f31423ec378ea2098b48557665cd15516d767a980e05ba44d761fe17355c0aa302f3826dd25da4ca4d044c299dab608da967c1e253ba77108df51914a15541763f737a89fef62be1f7b4e1b8b77eb719a84377be0081f7d71a6e881e15578603867855d87ec04b5f1f133368e43ec6282fe5eb16935a04ec9916caa90031e40d98b0a8ced98979fa7742a20dcbe84c67223eb6925d7b1b12e07a47677b56e9916029204e91408635eba66a6a844de5ccff6aa63fe15190030b8771101b456288b170bb117584c996c8515262c684a4718f8b369011865c756827d3038d62355f4c994a539815f4d6b6dc9455f4d7ba24501029170cf1aa3b0944574f6642c446a3f121cd08c7bb67e7239da147e0e9c9b5c57b8f2182e00488341994f620c99978c818aba5e4516efe23690636cabf607c438cc288e944b3446b41a264b88c6e0371a08a1c02703c21a0bc5d73e6b95e7b5fb87c6cd43415aeb26f92abac0371b9a7a70ea51c88e12bbcdef7c3cd3a4bcbfa3bb83606b25c85984021122400272a616fc4071db20560654a7ca099a6d0754c43687d9657b1b816a04b8d4cb63d0e3765e228890e0907accb4734cc557fc96ef7fb6b463cc2fa5b73b7fc231f230028201483e66efdd4570365865c08028f96609377703a2300f7e1b9f4939475541e0cda2527b28aca7374d1827206426637965870e9b86cbc115d9a04c0e73e8b7a866c277da3c58e0d2094fa285e2d05af7ef64f8ea6146ec4321395b7f30a6e52171ba28984b1e49726b48ed259638f6bacbfc5c2a4baa3cc391f0be917f7ba3a05dc911642a63db03fce58bc6ff92af7616569d04415a26eff8c271f9921ddd302787959f5397b70d7a388f7569e010cf26b67fb2c3a2a52714f5666b9726cb775c28a79a41531213e4766c9442fa06498f6d5a1816b7338f9afb779a40f2670221bc5ef319786762fc78b1a25fc9db8e362f11c9f374b04204940877bc209b25ae7f461c40a0193f66a95ab7dcc80afed9402ab725dab23c1abeacad633c461a26790865c21a960d338a7e485cb2b42a8b0963b8689c9d4287643b8685a341333dcbbd7637fa2671c1048638a547815f07b255ac115c8bc32b61a369128c60076c3464fdbe2c7c0bc5ef1e383ddd2ae8b0457410c19ba1c486b702a9048049e85cd1e7569eac6b3be8287ec9c195c3bb0b4f28952823832c55257d05ebd8a8bff9c372095be66359c9ba7384080a7acd9567db7905c50c36734cec7519e8e57195247b48a65a1e34cb942d741d88b429d226a4097beed271dcbc8a035606e056a89a8487197039adde30f78bb17148a4f0bc84bf1dc0d9057c97b028296b9260e601ed1a675bca781c53bcbd6866b4ae108d059ada7c6b8615195336c2df2e71ce97528378b2fdc4b6501f2443fd4b6248429b67a4624769236e32c12e3116ef66ae2554f55c7be15319e803b8ce0089d3c04b65ec8340c483b2ae4c2b8ec7daa91b39270ab7ec04fee436e1c008f61c46fa854363287573c50c63c3b1f94d52feeba13aec5c926257592904b00ca8615469df5539e8f4c627b11be02e96d17189a80f37da5d08db81baeb7c34b5c58ab3ccb25af3c29cec9364175b6bb4a04b5958079e18d5440bf24538598c1c548327980297efe531d4c14a9360b8dcc173f6536b760b2a6fd59bae262087989269c884a966c658017ce65d14519a2c61266b344f6648abc0a657580130c6fa0f6565d8100f0532011945c3fa296de184750aa931582a90e6bb9080971cdd6b470f68db4e529ed61bf97f62bfac5cb534c1570db606cf0351e1866d7e199dc329d70316d7fd849d5c296d76a8db20306bbab609e7a9ac05c7896b150d6962d2466158f8697e532901e421d5ec00671344640623891a9221ea17ebcf6b290dc54359814a86658e2c0159c2374e1dc5f94dcb30ce01f3633129274585e304f0436396d66660f81c4cd273b94a3740f9c2fdd081bc309602a2cadd82aad35a46684547d01c74c38547176113a697b49e6c98c1c017b25f817e19c2a0302d083dc5c74c4c38b6706e94c10d178369b375df9c118130824fe99ac49f24a682ac23de429f8c7a6d1a89c36f82f0a47379e7aafadc744e1f20b9186c67784c3e6b823306896fca303baf61309cb498a216431862f00198c26ab6938487dacfaeec6906ae45303ec7dbc2889a8eefa511b82609b980dad54ebb3e7091e9d42a9b1d5b6521a7a4527116aa7c38f6ddf99acd4a7b9837317d99f83732bb7caae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 diff --git a/crypto/mlkem/mlkem1024_nist_decap_tests.txt b/crypto/mlkem/mlkem1024_nist_decap_tests.txt new file mode 100644 index 0000000000..bdacc5c10e --- /dev/null +++ b/crypto/mlkem/mlkem1024_nist_decap_tests.txt @@ -0,0 +1,32 @@ +[dk: 8445C336F3518B298163DCBB6357597983CA2E873DCB49610CF52F14DBCB947C1F3EE9266967276B0C576CF7C30EE6B93DEA5118676CBEE1B1D4794206FB369ABA41167B4393855C84EBA8F32373C05BAE7631C802744AADB6C2DE41250C494315230B52826C34587CB21B183B49B2A5AC04921AC6BFAC1B24A4B37A93A4B168CCE7591BE6111F476260F2762959F5C1640118C2423772E2AD03DC7168A38C6DD39F5F7254264280C8BC10B914168070472FA880ACB8601A8A0837F25FE194687CD68B7DE2340F036DAD891D38D1B0CE9C2633355CF57B50B896036FCA260D2669F85BAC79714FDAFB41EF80B8C30264C31386AE60B05FAA542A26B41EB85F67068F088034FF67AA2E815AAB8BCA6BF71F70ECC3CBCBC45EF701FCD542BD21C7B09568F369C669F396473844FBA14957F51974D852B978014603A210C019036287008994F21255B25099AD82AA132438963B2C0A47CDF5F32BA46B76C7A6559F18BFD555B762E487B6AC992FE20E283CA0B3F6164496955995C3B28A57BBC29826F06FB38B253470AF631BC46C3A8F9CE824321985DD01C05F69B824F916633B40654C75AAEB9385576FFDE2990A6B0A3BE829D6D84E34F1780589C79204C63C798F55D23187E461D48C21E5C047E535B19F458BBA1345B9E41E0CB4A9C2D8C40B490A3BABC553B3026B1672D28CBC8B498A3A99579A832FEAE74610F0B6250CC333E9493EB1621ED34AA4AB175F2CA231152509ACB6AC86B20F6B39108439E5EC12D465A0FEF35003E14277A21812146B2544716D6AB82D1B0726C27A98D589EBDACC4C54BA77B2498F217E14E34E66025A2A143A992520A61C0672CC9CCED7C9450C683E90A3E4651DB623A6DB39AC26125B7FC1986D7B0493B8B72DE7707DC20BBDD43713156AF7D9430EF45399663C2202739168692DD657545B056D9C92385A7F414B34B90C7960D57B35BA7DDE7B81FCA0119D741B12780926018FE4C8030BF038E18B4FA33743D0D3C846417E9D5915C246315938B1E233614501D026959551258B233230D428B181B132F1D0B026067BA816999BC0CD6B547E548B63C9EAA091BAC493DC598DBC2B0E146A2591C2A8C009DD5170AAE027C541A1B5E66E45C65612984C46770493EC896EF25AA9305E9F06692CD0B2F06962E205BEBE113A34EBB1A4830A9B3749641BB935007B23B24BFE576956254D7A35AA496AC446C67A7FEC85A60057E8580617BCB3FAD15C76440FED54CC789394FEA24452CC6B0585B7EB0A88BBA9500D9800E6241AFEB523B55A96A535151D1049573206E59C7FEB070966823634F77D5F1291755A243119621AF8084AB7AC1E22A0568C6201417CBE3655D8A08DD5B513884C98D5A493FD49382EA41860F133CCD601E885966426A2B1F23D42D82E24582D99725192C21777467B1457B1DD429A0C41A5C3D704CEA06278C59941B438C62727097809B4530DBE837EA396B6D31077FAD3733053989A8442AAC4255CB163B8CA2F27501EA967305695ABD659AA02C83EE60BB574203E9937AE1C621C8ECB5CC1D21D556960B5B9161EA96FFFEBAC72E1B8A6154FC4D88B56C04741F090CBB156A737C9E6A22BA8AC704BC304F8E17E5EA845FDE59FBF788CCE0B97C8761F89A242F3052583C6844A632031C964A6C4A85A128A28619BA1BB3D1BEA4B49841FC847614A066841F52ED0EB8AE0B8B096E92B8195405815B231266F36B18C1A53333DAB95D2A9A374B5478A4A41FB8759957C9AB22CAE545AB544BA8DD05B83F3A613A2437ADB073A9635CB4BBC965FB454CF27B298A40CD0DA3B8F9CA99D8CB4286C5EB476416796070BA535AAA58CDB451CD6DB5CBB0CA20F0C71DE97C30DA97EC7906D06B4B939396028C46BA0E7A865BC8308A3810F1212006339F7BC169B1666FDF475911BBC8AAAB41755C9A8AABFA23C0E37F84FE46999E030494B9298EF9934E8A649C0A5CCE2B22F31809AFED23955D87881D99FC1D352896CAC9055BEA0D016CCBA7805A3A50E221630379BD01135221CAD5D9517C8CC42637B9FC0718E9A9BB4945C72D8D11D3D659D83A3C419509AF5B470DD89B7F3ACCF5F35CFC322115FD66A5CD2875651326F9B3168913BE5B9C87AE0B025EC7A2F4A072750946AC61170A7826D9704C5A23A1C0A2325146C3BC1858826C6B39279C2DA7438A370ED8A0AA5169E3BEC29ED88478732758D454143E227F8595883297842E6AF133B17E4811B0F5713AC73B7E347423EB92822D2306FA14500A7207A0672672046544ACC4EA9C16ED7421A069E0D737A98628519C6A29A424A868B46D9A0CC7C6C9DDD8B8BCBF422C8F48A73143D5ABB66BC55499418430802BAC544463CC7319D17998F29411365766D04C847F3129D9077B7D8339BFB96A6739C3F6B74A8F05F9138AB2FE37ACB57634D1820B50176F5A0B6BC2940F1D5938F1936B5F95828B92EB72973C1590AEB7A552CECA10B00C303B7C75D402071A79E2C810AF7C745E3336712492A42043F2903A37C6434CEE20B1D159B057699FF9C1D3BD68029839A08F43E6C1C819913532F911DD370C7021488E11CB504CB9C70570FFF35B4B4601191DC1AD9E6ADC5FA9618798D7CC860C87A939E4CCF8533632268CF1A51AFF0CB811C5545CB1656E65269477430699CCDEA3800630B78CD5810334CCF02E013F3B80244E70ACDB060BBE7A553B063456B2EA807473413165CE57DD563473CFBC90618ADE1F0B888AA48E722BB2751858FE19687442A48E7CA0D2A29CD51BFD8F78C17B9660BFB54A470B2AE9A955C6AB8D6E5CC92AC8ED3C185DAA8BC29F0578EBB812B97C9E5A848A6384DE4E75A31470B53066A8D027BA44B21749C0492465F9072B28376C4E290B30C1863F9E5B79996083422BD8C272C10ECC6EB9A0A8225B31AA0A66E35B9C0B9A79582BA20A3C04CD29914F083A0158288BA4D6EB62D87264B912BCA39732FBDE536A377AD02B8C835D4A2F4E7B1CE115D0C860BEAA7955A49AD689586A89A2B9F9B10D1595D2FC065AD018A7D56C614471F8E946FE8AB49E8226591119FCADB4F9A861631378736B6688B782D58E97E4572753A9664B6B8536812B25911AA76A242375433192738EEE762F6B84315BB3436231E0A9B277ED28AE0050728346457E13405062DB2804B8DA60BB5C793D4CC0E101CBA2D9182FD7124FF52BF4CA28292AC26D678088953971DBA0B6FEC2C9659353291C70C5B9245A0CA253304AFD3C95102BEA66875C6201680B4BDA38687B648C28EB37478E3BC00CA8A3CC27204642B42B68FCBE7B21A366D0668A5029A7DEEF94CDD6A95D7EA8931673BF7112D4042107B1B8B9700C974F9C4E83A8FACD89BFE0CA3CC4C2FCE80A03D3576C222A792B72B1F070AB7F6B6F2B5CA2AF5054AFA70A896990159B45D1003E2A05648675E596016F1B71DD0F7BDA7E2097FC73B3A143D12C726020AC34958AD7062B92B9ABF3CA6BE5AE29F57135E625A367971837E6363D1532094E022A23467CF932E1F89B5B0803C1EC99B585A78B5865096746F32258214ECB38065C97F455E155ACC2DD005A9C76BED59CDA73837D303504E6C976A606A2BE7BBEC5948B91A349E8936688CC0279754B743ABC58666B19B6C3260051F19206BB962BB6633EB0048E32BAACC5B020D02C86CA9770AD469DB54A106AC73A35B8057422B3DB202C5A5B4E3D535F0FC99326C4B8B7B16F1CB5AF96803FA8C195FC0BCEDDAAF012A51728B76489082373C91E92C87ACCA795160782E3B0DD643544BB96ABC2708D49B759CF057AA223BAFD96A330BAF39810FE8671B4343C297DA1E1969C996216AB5106DA668941B160D4477017136CBCA5B5A8D44C4A8B1CF3EF79785E5AA25C3A1AD6C24FD140F79207DE5A499F8A1534FFA804AA7B3889CBE25C0414704AA57897F17862364ECA56258007248813912B836497F0359C2F7238A05D305A0EA152E72B44417A868134E91B3CA7931232FD4C25F8C2A492A339CDC0A138967211451F2562678FA14080A34436C42B07865AC036A81E97A7787A938025CAF813450368BED0C94B1857604526405D27A1C1ABC81B5B6EC13C71930A97D9232CF7021EF87A4D155328E62B583A83B4AF21F9F5750F8575150424F63B899D71CAD267C09E4467146E16E9B6C653F008C311375E2E006D4076A546B82F5314222F7C654317E79EC6035B73FAF491757E61C828326D53044541C4D4537ABD3EA1E67998C3382974CA78AE1B1960E4A9226B0219AB070F0D7AA66D76F9316ADB80C54D6499771B471E8168D47BCAA08324AB6BA92C3A70275F24FA4DC10E251633FB98D162BB5537202C6A553CE7841C4D40B873B85CA03A0A1E1CFADE6BA5180AB1323CCBA9A3E9C53D37575AB1FD9E7316C6FEECB0A14DF6F2DA56C2F56F55A89635CFCFDA47927AF1F0A47B2D4E4E61634B1B51D37A3A307A972420DE1B7A481B83E583B6AF16F63CB00C6] + +c: 0C681B4AA81F26ADFB645EC24B3752F6B32C68645AA5E7A999B62036A53DC5CB060A473C08E5DA5C0F5AF0E5170C6597E50EC08060F99B0C00EE9BDDAD7E7D25A22B226F90149B4CE887C72FB60AFF2144EA2A72383B3118F922D032A16F554289902A14CF7755512BB1186BAFAFFE794D2B6CDE90109E6582D39CE0C96197484B3FA07FC91D394FC8D88E7FC4BE002E2DB56F0C4D9D3FBDA274536A0B86ABC6E39BDA52931AEBB8F1084C5C1F7CB3177788B7F331B7074361163491D428E78BCBB57B630841AA987333377CF09569CFD14CC2A11C501BDF82C93DE05BEA20060DE89C686B824571CEF94AB3FDAFA8512619813669D4F53637FEFA4D028CB233E56930E2235F7E6034CA94B143B77AD4A68756E8A9184DBA61A89F91EDFB51A39211402473A5F89145736B2BF8569C705B0CDB8980A447E4E1EAAD3E7E0578F5F86B8D03C9DAFE875E339B4423845616799EDCE05F31B92664C5A59253A60E9D89548A300C1ADB6D190A775C5EE6E8A89B6E779B034C3400A625F4BBEDBF919C45B2BCD14C669248FC43C3EF47E100758942E75E8ED6075A96D70D4EBD2B61358224DDA1EC4C19C2A92898176FEB3C02EDCB9908BAE49BD94AF028EDF8CFC2E5F2E0BD375006986AD49E717548E746FEF49C868BCEA2790AA97E04061B75605CB39EFD463D7B3D68BA574434FF7BE8E2B84BFC47E67E9CD15F3ED450C61AFBA79A20B0B6F287777C72F4AD248174F1959477AA7A7C97F122C50447C7484F382BC47D81FCC9C7E892C8839D37B35394B53E6B2B1895ABB0DE8C98F2633DC4413A8D5735DFC9A64026B6F34779D6AC8AD99CC31AA898C2E7057F3DB8A1A8A98527A79E43552F28D1023E1F6A6B84855CF5E6DF889BA269F048946E84021C65C5A93B007B07741C1EE176C73949110F548EF4332DCDD491D2CEFD0248883F5E9525BC91F30AF17CF5A98DD44EF9A71F99BB732985BA10A723EF476FCF966DA9456B24978E33050D0EC90D3CE46378851C9ECFCFD36C895D44E9E506993082523D26185766B23568CB95E64108F89D1014747C67B6F3C8767BE5FC341227DE9488861C5FE811409F80957D07522A72CF6AB0378D0F2F28AF548185C3936777994466A019D33B18A54F380A33892AB4D4BD507B5A61D0D358341AC92F07B43B8F6AFC6991BB6A1EAC23CA6F73E91F2464BD119098D7E768E77ECE53FB899BEB42265ECF7B271F66546282D472C36239006BB0ABABCCA24550BAA0A601348C810FF5F9EE504BF7155DEE4141A11605A4F3509AC9CAEF6624D21DE332D5D50828B52E92885D3B90553B14463AFB1EDCCD3B569B5A7F00BB66769DADAC23AD8BB5D73A6F390E6FC2F6F8EE3CF4009A5C3E1EF60E8F040672D262E6490379BBC70495DFF237BECD9952CD7EDEB6D1DFC360B3FC8B0AF480FFE024AEEFCD4E9CE95D9B469C9A70E5110DA0BAC124FC3741DCF49116261796504D5F490B433C33C40EDCE2B75151DA256A868A5E35F86226B8151C91934CCC3DACA391DECCA745375660B6EC41AE5D810838CBEEFFA12557884412357B1008363D32B237AA1DD8E2D9C6367ADA09B2C95060206CEC3EED391FDC5DBEF6F08BDF0408E585AE5EBC8E9745D44FECA975ABBC140BB37B8ADD16FCC2956910DC72BB3F02E9A130C9A84F9CCB74D134CDF40AFCBA2009C8F0040239BC99220EF64C4DCCDE2E2E5C9B68602FBE8EF4C98B3468C79DF4E078511BFB8AA3DA09597A02511E7C21A7CF66A93843A94868F19E8552552E3ACDF6CB810634DB97CBC4BB569709DAD4845645446FA8D289FC59307B801E60CE2A91E06E9C22C16E2E59BDE38A416BB1B4AC5457438FDC5D64450A89ECB832C1BB279DBF59334681776AC00409846D09D6F687772E340850AB8673384215E12C8D0F531C451E58493E0EE415AD594DF38C34408C7ED9F0C392F1534604EAC3D9C15465A9A46632214B536990D78078E5BD7EAE2013FFF8FDD8B275C89D97C9353DF3C42A28E814D8468E2B48DB0976D88F5EECEFEAFB8F7F4AF291A728F6249ECF5622339269AA945329E919F8B441C83D5507F30DF0FD2B13FF806F522DAA11AF676A513C149C70F0D6E99A880450A54E0417FE3C1E513E9D920E30A8B42891267A2DC50AD81F98044920C099DF22C73998A25C581A5178C72B17AC875BC68548A0FB0CBEE38F05017B12433343A658F1980C8124EA6DD81F +k: 8F336E9C28DF349E03220AF01C42832FEFAB1F2A74C16FAF6F64AD071C1A3394 + +c: 4F90106FF7C3DC4E47417F31AB56B1C5E426C1ECD5878AAD2B705E75062DA5FA6F4D18B704C941C6C6D941FD21191A69210BC39E24950D9F851B6DE8CE30023DC7536439104D42245F3E04E6AA6763F8AC97ADBD04CC69547BCE0BF290FFB5D12946301174AF1B0868C14D4293FA9DCC5B23F809B02CC78DEFE7F27935B9B681E531FC21CCB2AF8EF6144D8498E63E0EE48AF8D4CEF7AC1F669AC740B06F79DDB58E794F2FC2CA832E05A0374C18A4F2CC78343EEA064ABC5F468F4DD11E0B6E8FA1D18A221D8241450C05EB9EDF90D9D7F666AC82E7FD44AF9328E0BC6004D5B114E80E9B980D18E081D771DFCB2ACFD40142A2EB33234F75733EAB7D8EE8A5A6F796681A4A8AF85CCE86971B821D4AD8371049E94E280B77B15D111A42AEADFC08D4F804BD78885443E81A393DF7C8754C460915846E09A0596587460038F55D06EC21434A1C2DF44D0C16706E8D2B83F0E7833976EF05BF1D9F0DDC9A37597E401B817C2BEC8E02EB9DF7591E239F25F8648E7F2F4F673093BD9CB703DA32B353F58514C6AB55748B194E52F153D52F5F33FE95C5F9F65EA97BA721E8DDF333B64D233A867A12701E00C5D8A9B5AE344F3D847C27C079DCC9C3B40EC4604A9F041E7987E8B930C658B9A132DE4E422C0E27553A2A0EAB8C859EB0E5677E83272725C5C1652E61B9BBF5C9C59BC2357A4D1DB9C607F34DC1BA074B84DFC69E4097A7AD2BA9A58000027296AD39FC1CE218A5EEC7ADFA8AA3B9100B0B603CFC83C152589E12E6BD9EE10C49131A701D315DFEC38E018328916F9FFAA7305CFB66781707D2D1020EB782F9F003DB4E46B87D693F62E8BDE170141FF71F26DDF5310C00C9163655F5217DD2C8B0466AC89DB55BD7FB3B0964BC9009E9686185117DCB50D6D0297753CF7F1217E819EE60E3F0FAEC4A5AF0C2EA83CCDE15CF045C6961DE8FF6235C9D93BA4C89B7A82A7471FCFB0B8EAD54D56E8A1DE21B3933AC5B4A0689EEF3598926E17BBB16AEC61EC30A2CCC0E0323EC282887C108C3A4E83E3666493D8653D0E92443808C79D770BFF48A49E65AE089FEC790BBA4C66354EF67A334C1EA5C6C5707B6928EBD1BDB6A940FA242C6EBD7F3E71272421C9082841A6CAD2894BB8AC85F105D8BBC9E6F0A3DF0D7C46F6E2F4CAB904ED157AFA85D4A852220A9636E1E8821643A9E4028D87A430432F09354B3973182385CF5ABFC8F84982BEE0BCBF5D18637399163A09EB45711E07C4458498C76979107CF91B3FC590EA4AD715D656D5E56DC32146580101C952E02ED7017960D54CAACCC70607196980ADBDAEA420A52C0559ED23C9514F8CA7AB7F3BAAFD2FAB58960A64128D5A50E9AD8DB7D23A90CE64C1BC349D118D3603358377F84FF5A64457FA1CF41B27094BCA72360BD429415B9EF9ACCB7A5D7B9E5F5FDCA8FCFA4592E91D7E5120DF7E3C6675AF2211BB94D856A5D2285FBBB36984A1345590930B13232565D54812A9345324C232653190323CC67C840E478D09E6DDBCF999F7AA3B556F80332E67ACA41EC0661088D7696BB64E9A98A0749FAA9854D9B48754023BACAF3C8081A46157C6453BDC89341D3092F3B5337874CE5DE559A56A2FFB7F401F6E28EECAF4FDE5B60DEA73D6B2182EF68E07A8297F3C959E17139B5DEDC72C7A0E103AFF866E89D1F62A1F6B97B61BC059BDE5A2A06087EF783A441F23DD191C692D03C097FF9EE831F7715C6E508BF475E79A8353E84B06A9356045C8FD09FBA35879069B9A3F478FBD051143C13D753BC45F3040E85985EFD6B149EFA9455A18E2894E6EA0BE58F451FF1156F93CC7117B5D091E9DD50D41BFCCD44F2C4EB7812AEFD13C8B68D7F0103BB6CA38D233B6AADD01845B7E44D13C1CB1577D6C4354B063991344787F8C0BE667A7440B98917AD64CC2EF2BC82EFC3398B3B1B238540756CE9FC5EDD26CC20E761D592A1A0530AA8BEFCFE8DADBAC99A417CA0827F4983FF5BE656669F2B5F985FF6B16C44BBEA131D1FCC70FC53BF31EF225D1F5D41863B51B57EA65C6164F7531AE492EFA64161B7DABA3EF4586F3459BE8A962367DC276597B98E91FF594EFE8849BAD4CF91B9E5F244CF03CA9615BE128E96958533544A56E735994B92E4EF0D5FAB54B78EC66641C7463F225D261C144F00A0270741D7A511994833635A8A9B670CBFBEF239BF83327E247943B205DA68DB94E3F3 +k: 7545CC458E0A274A83B13554224F0BD01D57CC4775AD12468D3FEE5B08C93A6A + +c: 26CC4F22E035BC00687D557655C46B6E1C447ACB824204FEF7582EB8DBC704D7CE72B0A5FFE54FB89BD7B779B5B1DD1573010B227473FDEFFFB74DF7DCC1E6B48B554563C6C23004AE2CB1996943821F480E91081F1A6765E08A8AAB7F203E95DEEA49A1129A676DCB21540D2AAE1B21223DDDF1453150483176F3EA3580CE631FC85508690D8DDCBC9513A4A5951A440232223FB2ED9E0E5A8ACFEE113D22548B8E98131EE1F45A33656F079870A146F12819BFDDF8792C3C9AC3BBEA3A92B8606FF2B7296DB9D9782C8E788AF4C961840041735DE456A35E5536D861CA118D67408E84D8BB9128B65F2C11C7147EAC928599979EF195A7979CFC48277CF1FDF4B0CAAEB3F8A172A3CA25A3A8C39AAB4495A70E0AFD3861C41A8C01FAD1E9D81281CAE1C33572BA4BCA9A5294000FFD040545B021AF583F56434ACCD4CB7B788517243B09737D355ECE53273FC0C492F251FA02E47EA846121DFF00CBF2767D4DEB25F705591D26FB1B6F839A58EBA4572745A618CB2EBE02CC0CB1C62AA9F0EFB794C385BC47E440BEB38BA742C7357A97CF33098E2EA4D823BD0B9699FB1EBFA806D64FAB18E106D4A97B23A889355C7A2635A9D3BB330A1B8EE5E707DC32C20CACFED68C8DE783562488A64400A4528EF568D833D73E456A9AC22431B2C22441EF5BCE3E77CCEC99D2D1C092ED8A28D686214313F683D4A020FA714459C36A257DDFF7B19B7ED05A16FCACA2570279A11E1439D07F2F23B88411404749C37836585182F31AD65CFEADCFEC3FA905CD4BFE2B6ECAE99D469F3EFC55615D45D19360EBB7C68C73ABD4562EEDA283776C887E70A971176DDC10FC399EAD6B9E247353C25289C0836C626E5376326FE5630C3098436556D61F5C75DA6057008A6E1D50B4F270FCB86F868D5F235428B4D7E13010D20175D4CF0759F56422CF955A721792DEB8EC887E5225F6E52CDFF40B8BD3FEE4DEBC7B363574FD1F3CC113A3B4281F4E8DC3AEBE4B67500ACB50B5DB1BB64F0634B19D4612F597DE2B4CAEEE8A3258DDF8436ACADF3677B46E7E5CF41071DEAD3FBCE2A73388E19AC0C7748E10E3F586E2EB844ADFC079EC0A2CD8C9BAC8E859460DCDAB688AAAA179882B91111A604F75198F55B17C79AD4BE3FDB493B59775ED449BF938B594D87A1C9F721D1C39868591496E62BDBF5CC2947DD81B65ED8CA0BAF0A64E924B5F4FFA88BE86C3594EA7472B822D2D84CDBFC7A2C5039FEC6EBB14FAE2D5D7E9CAF1C2B8788E7354BB6A12C4EA1ABDF0811417586F01553AFD9D8B1EA233066023BC45FA4BC064E7D289AE9DDAF1F985E4BAA86C55BA1F1866E010C55E166C3AA29A682A81195819B7165DF6CC72045D143135EDABA08ACF9DD9FCB8CE732F9CDF1A99C772A2EDAB78647132C33B80E7F03C84A044491B311BC6F3571E7935C6EDFB283BC59F29DD5CCFF9DD6A9640139B173E64F2755F6BBD977F15AF1524827DCE4C2FDF1EBB7C35F0F34800E5A07FC83821FA6CD41695B322F0909D55251372DB8B3CB147FBBF6264BF764B1A20BFA41EFB84D109D4E374564C760AAB66EE823970EE7BFC1D9DB860840BC4767E4A46F1855526A7D902D4FA954C7F337C7C1205FD4AAA70D7F5D904F1D0CF1DBFB63675991B26B590260714920A7249E75D21199D8C002BD702C5398C45A359965D367FA15A73B83197DB3BF3AE9E987479CD81283419E557F993884EA4F17996CCA39FBA8941EDD70FC86E3A46C84C656F77E9DFA5DB31D8761A8FC1D5A2FE9C1CF67DDA1408A212951A5A1D5E9260BF367FD824ECBE8534AA5C63F3E9E2EE4EC53CB42663A79706088A846614B10EDB58B45BF063ACEF64DBB5ED8808588B51A80EC327B95DB34A2107FA96776F1DD0340C7918D0B846883EED35F5730D67165D4A51DC50533458F045E1266CE5C1CA6A30D931DA81732A876987482F2DB58694C574731E92CE6F9083A5EAD8143F244A8DF04C6DE1B2B07ED86D5593CAFC2A7B3E819C03C70B7B32AC0D576AC2E2E5843A39E4D36EFACBCE679307A1998F9C9DED50BF39CD29A529A82F26B5B4538F9CBBD547B9E4D5F7F31B555A8FCA1F9ABDEF3483640DE77D558735C15A588D944F9D76B06E417B1DA873F38A21321CDACE8D4BDDC49EBA4165D40820BA19A437D65B337B8C037041631D09F8ADD1400524F4A3BC33F9213AC7926548B9C43A4BC0148807D9 +k: 1A9EC19662B68932E5DE4EED9C3F16A4AA8E6E4129F8EFC2E9C7F0B6E82E3327 + +c: B36564F2BBECFE4DD315E84612BD765E3F2E84F5D8D86FC0708F72FCAF284A0850708CE6E11D0BE154C00F930D18C0A8D8071B612556238A64B679A083B2FC1A204079EE19A4095E71E0EED695B3CA764F4F4E5D7366430A8933F0356DB074C2D68048E046481E5481E4F5A2F365EA9C4C7A6BEA51CDBF1BF31366F863327126DDD101F8220034FB4A3C68232C5CC84229EB1E35F19AC2016A8E4805A87797F940B72A472F129FF5B751964AEEC96847B0BCA5D7F391CA9053380DE83CBC31F341599FEFE36A1CD83B30A1B7CB588874CCC5F443F73ADFA2CE7E7271A5726272A7E5FC721E85D9755D672F5B2A0EAC8065D2C3835B7F0B2F7C77A27AAC438E345BAA378A572AA676632434737FA59A7E197135BD6AF2619A828AAC865D7F34AFB771BB55B5B7E93B9489AE98C694EAA26C6A86F41D0C53522DA4D90F2AB267675BABFBE963C4C68534A24D1EAEA2BE97702E28CABE5FD080DA6B3C432EB0E55F9FE8C1C0422A44F57002A1F96E6D53E8AB9539E909346D150082DF69F54D27017B9A7633B7BD9F7E6274B1F97D7CB4BF5FC2E34E77ECA1317E7854304C75C388CCD1386C694E93CADC856E136C2C0EE7E113A125C79443C5D1A80A9698BF58248B0903A45961603D1EA0E89E3C0650EA3E82368A6C477CCD1B0180542401BB1DE70E25F64A5DE41D62D0467353EE488E1F692EB60778452B53088473B084D0819B725268AAE752FC8CB56384C7AF9D319CAAEC958FC3EAEF57E0F35F1BFE1BABAA2C64A2D9813EE16F22A94C1C00B29EE82F11C47224A9C5424E647B9883918C9CF2CAF51B7FA825121C5D13ECEB5F66E4EA11526E0C37DBCD464C5BA78A36A31A62B2DECC7DF51C24843EC2325C74A771A7D73D35BF2AC4578932A6C2A7323375A2B7679188CFE804E5EFF4A04B7E14F8851770048F076B32BA4F19F4530364C0529EC3FB2D0DDABDC85DE2257F4DF05686AB498FDBEAE3A1439627DD8885E4C8744156C2B155BD2F965AF0F2017F163A6016C274E8532CA43C784B7AD4747A58253EDFB739D68E376D7ED246E5474454F463F4212090DF4F4D7F88C097B18180B05F2E89EEBB834B9BB6DD9E5F6036ECDD5908CA4962609C208A557A36B7FBC72158A6D86322F4303434F6AFFB34527E47E0599DDC88EAD31814646A81188E79E1B6D562E01FE1EF148FE8825758CFA5BD7B738E3BECDDDCA4C59093CA24581E531667DBA2C295B565951445E410FBC99D795887BD48AB87D6D413B64957993CD7525A0A0A5D393CA1EDF7788E4DFACDFA7B394B6163BB948C9C6779BDDCC8F26BC073BEAD0FC87236704A0DC0D89DEB4F8174E91D249C4DCD9260BC7C86CFB35B985813E1689D83083949927303741550CB782E256E79800F41B5C7D981D68E60978E5190A2C51C812DCC3952AA34212625834B2F8CF8CE8019AD6CE8F00FF910CCCF0CAF5A3596AF8DF947EFDE954F361665458F77787E528937BC52C59950746C783D8C5216570E6F0A944E6BD661F23C7A9AF3C602DF851EA2E5627186A6CCBCC470E07B290E4F754D5A8D6BAD8C34F39B4BA838CB467681B0173C33FA51ABE122BAE3DC06660950CFA5C228CDBA2F5EEF2613D2850DF9B5FEBE7333BE93F90E4DEE219AD18425DEE4006FA3009666C83DF7EDFB2EA4F99902C694248F9D51C7B6FBE53780EB218732C11368C33449D051489FDB01B1A1064FB06DED747ADE38F7A12DCDAA92D64DB4C2C43DFE53068A77339E1479C8C93192793B1C752FA7FB23B57DB5B428622D27CBF608CD7406FDB543FF3BD26FD7ED7269427C6B93491BE6724D071F58AF434FDAD2F0FAD5730A60F3EEF94C59CBC5884F36274C4CD984303EEAAD17E1785914DC804BBAF35406995E3D56094F0FDD71C7650A6C37393C0EF4C167CD2FBC28EB4EDD34B5383CA3D1B89D7BADB0270065B5AE2D461E6DEE53291230ED3CC3B616A7E8A86A4265A98C10A44066301470BBCDB257F35489BA5DCA320A390AF23CEF6ABA8B291538D9C4E965969087E394EDA44C060E28220BF72AB98F1C055159892DFF079D283C52997DCFDC2FD8291FFDF322809BE3CDC113DE9D495EA5F9FA5DDE5052192CA6F26BD510433B197131A7E954AEC5E58F0A341D7E4602BAE46BB1987B5C1D845E6AE5569DC2AFE0C7984DDD9B0B184CD6ABC0AADF5E13E0F110E8876D572200DD837FEF193278119B861C196C7522 +k: F098B5187D66F9687666207379D9A52532C38C0396F917827BE99222D0BE8762 + +c: 4B30E5256A941008BAD9BD14060445AD208769EDEA1C5B6E4ED506FB334A2378520B5EDC9217D626E1377839A18F2D21C0CC8902622E4AB79E83DEC449FFFD45A4CBF3AC253142D935DD310B5E4C5D591A9BD61795F8ABF00AA04EBAF96195B6CC7D7C3910FD7D75E25A9D0D79FA453178B06FC6B1E99F189CDA90276D6B69FBEA28D68CC82707A46CBEAB819239BE69BA76D749E27CAC9E5FFE88064B9972DB77C49679D6DDC6E6B03DAA0DDF0106B1A61141DF827E96AC542DC90A69CB316EB4F78C611C0155F9138F527006121DA16DB46531ADEC2FF599378A819CFBE3B079C9FE7E368B91A9E40F97A3E79A4F1F05574CE2AC3A525C206D9E55CE16D42D2F0F4863F896E808FE168B34A102BB81BD607BD02CCFFBA5C189497502A55F3E601F8F61B40A5202BAF9AC87D058E67B9E1CDEA0E4B02FF2DEED7477609A9AE2116512C42079D87AD74B05622E02979EF0A0F1D6375D93576EB6553FB1AC70ABDACBFBDB18735E949EC6D1667E978547A5CEAF2F4DCA6FF5D8346A960CE6925BF2B3F316238D6BC8ACBE67BC1AACD5A9A5D130A3D3B39C3BD7C1B06227A59BF4723AE9656D9922D9228A3404D4856E39702DFDC01C6E8CB6000E0779364BAD4F021BCFD7288CE7049D544E8423B2890C3083FDDB9BC720AC4C6A1A4EEA6BA1927B307E6CB72131B6B831AAD036A50A54608D106EDACD83EBDF104AA80C917314D295E903FDF36CD04EB786CF93AFF1279C2172002F7EE92DFAB3A99BF42C2BE7B7D0EDDD38029AB5AE18F5CFF8A2F1D2EA2EC7F34770FBA8A8BEEB0E1FF6F1C1A036F1BD84030004696BF4FB4161F252436C0401AEC911CBF1D7530D9D801B1B9B3A682329AE2F6930191E48189CD40706256B864D6F016597B4AA86FEE4F0E2362D8BCC743E98531EB2B335DE2DD299F231FAA808F6BC7D8F13DE8EAA30C5698D64E508D3534935B9941C2E40A458BEA82DAE4151ECF6DCD40320E1009BD9FBEE248F4EB6DB4437482BDFD83FDAF8367CC1845E64A23A310F904D5FAAD67241AA7748764C26EC881788D1EE0A39944071E5ACB656AB8CEA285C282545030EBBE6FB595E296E1EA37D7AE529B96CAECED11331D80C92D3DACDD7DC93237D815A9C6CEB9209C0BF3548ED1AD691929B2C1035E80A21477747E313049DEAD43A40B0960A96BF3C3E9BADEBC3B4D424FE7DC4DE5CE7788E31AEA3EC8965740D424CEB66D4A5678260051BFEFF09A3CB24C1AB7782AFBFEDE5EE1ED4EB14AD2A13142E8201CD1B52CE064F05ACFB019E21A73D84A80E30FAA48ABEFECA970BBF17FFA6F3A90AEF80EFA31C494E721231289143416AB9621737FC016380E6079EC6CD962BF7CC0750582EB218F869CE117D399DEF9AA66F7D2F07FD22BEB9E50B94CA5FC758C9DD4D2984A156748C52307731FC78F8539F8264BAD6DD56C0C23937A9A850E66BA298C3D39105ECACA9A573D887C9A4FE33D487F2126097B165594E1F8106C937758AB6EE75EDF39D2BCDE78AB611A034A72FDBEE67A80F3315571AB4DB94C56A19EFB63B8E7708566412F73D4974B160183FB5B6C44C8CED990B29C57BBEEAC5EABDCB11CCED9A17322B6EF197121B4094D7EA4A1B4EC44A68B447FE4C8119A6A33BFB66EA6844DB5B6094119AD1DE89449DE922B9A0D1253EA18C62418EB87330C6B33EEE02D4486F62A4D31CA24F098BE2F187CA6019025AD6E1C2FE69800D8BFA2C646F9FC6BCB3D369A78310084FF163D2065631C41748E7E3B25E8F2C9EDA2E107AA2046FE3F5DCC0A9A39FCE41813C8F1946C3AC07A22A6A56C4AFC626E68FF8CBC4982C1E60C3A9F288D1C4F2B8D7187EF2FAE30B77C4DD73499C2B3793B24014CFFEF6D80063DD1C1F3AC7F14FB61E5E81F850AB865BA873404BEB898FF7A2DCFA3B955DDB161B5781AFE8EF127BA2C8BFDBC2FB1C7D80FC650420214314023F6F65C17FC48927BBAE88D48D2E1976119C2F8310232942DD4C3AD4518D1E4DA9DD588691837122F5E5DE0FF1FA685DE134DFD1348CE3B5BE60B18BBF474074829E7D81AE087F149259122D47B728F369D1D8455EE571F715788C254F2EF438034BFF0A11F2F008E19B370BBEEE135A00DBE7F3C2970208F5F5D0E2765C395CA81B2FD80FC384AD046564229C759315B6CFFAD03A56996556E7714DABDE28F7A9BB5DE2C05B1F3596AF66C747D9A9313673F19AD4BAC6EAA7 +k: FBC9EB4E8D611C153AA9ADCAEE5781DA5C0112B3AB75956180A5CA40BFA0F53E + +c: CA9564B54F15561C8238E6CFD88137EBD4D277FD5D64BAFC33D6E575947F0FF9F93E3B0A4023DDB6FE480D7D6A2B9ABCD6E6E011EF37C0699A6D60D9AB4B05BC685B0A9AF7D3BD999C7AC1CDF017E6AF1DCF0313759CBB21539D7774C31D7ED8C039AC34D0C6A5F7590A3DFE193D73FA96B3458A364DE1555284D85A2BAE7BA9E57ABA00134E6B09C09777F2F1D7125AF858D81D14C71E34E8F668468997334B72E002920FD3FAD8D588355343FA949F1CC0BC263C7F7A7FEA6AD708DB756AF983B16A593EC224F7D69208938A4526400E326CBED532A777301DDEB5E539CFCE60DB8A022AFC52204C71710C204968FD1457919EB71CA15522AD56ED6B60404D62D1DAD0D06E4A2AD6BC746B28859A77226B774BF56BF7F019F2837F51509E9EBE9EB069DA27401CD1D7BF2A74CBE8341A7F213D061619F4E5F52984FE47066D910F1146CCD8DB48210FA2518D6B9FADFF16ED9D389292C07C8A7021F32BCD538AB06A6D5ADB13D7A96F65A4062A17E26B301CC8AD420732126D7CB801DD489AFF2D717D07A2748B4B01D162D228D5F1533CD5FEE8DFF8F032DFB270B61095785E44CEBBD4EA27158362D2A27582CE78594D4D7428B6AD958A9F1604EBA76A8CC0530E1001AC97E5ACC5EE670D5DC6A78AA45300A2BD5F0802CDEE564FA640A19FB554383A4E4CCF2E5BB3A41879C9428CBDB8DE1F4D3FDEFC18C2A8BAE42C096244279E57B307614C843B341BCCF530F6B187121DD83A9A160A3579C3188A98FE2F49A85A2705B9F76DEF04D5D04676D8319F243DFC99A5F90771B34D2A45EFF92C0CA8E4B542B8ED4C2AFBC92C26F8DD20B26B15F9E719AF22F571EE5B9573D5BD1931138D6315C5104BF80AECF830548E98AB23DFA44E5A23C6CF57740926D1E146937AF8D220684919FD89082E260286AB66F66F8A1B81BEE07A85907D07FCCFB9A1002CDD47A33535C9FC0938E3CDDED04D3FABE6326CBF5643373BAE1151704220E49E177C4D0C6168647E5976670DB7F6D0C12F169955E31F553A53A76093DA2A9A0C589F9AFDCCAAD9EC5449ACC01E12A70BCEB389AC104407415782AF2EA3C73D9EB2797CE6D3C005061C5059AB625DD7D273D4D92D1F4EB411A4033492F19921F60D0317AF286866B865E33B6235F0E3528228CF9DB242124F0A6375D50CAB3851DD2A3A022C1E636E332C90D97FBBFC2CF0B971AB1A89014BC2D942FDF015555431ACB3E7A6F258B816BA84892A1DFE3780A0E0C2E6C06149218E70D60D62573BB51856716C0DDA63A983C4008982E842E655E5767DD203DB3490E1E6BDBEC16350296D879F017BA695FC1CB3BBE516B741A67CA6CE09314AE27F718DF68DE698198289B457884FFF1E439F30D9117D19ED7E466084BD5A73E26B5E1567B148D4C7ACD1368B1CE2709B3AF233679E61914202D0DCFC81EF3ACC250DCEA602103C7E529FD6F31A186927E790E3DEE09DCE87DF694ADA7A3B7BB3BEC64456EE983E25DC6CA1CBCD752D72ABE6FDA2FC81A46F81E83AA9738D528C6FA3E69C453346D0C9A0734DF36BB7650D1D2AFA8A5C4C5A936D41258BD4193DA74FFB180CFF582A32D6F6ACB93836E009E8C880592BE61532215F1F6FA50E8FFBB82208A94D8510F70DC6633DC04F9D94C6AC46EDDD4EB36873E064CBBE65D343957CA7B75024EEBB56F589C3DD2253D68D12DC892ABB1FA4BF033B9B732E89A8B89541F04C6462F62F13B09C6705B31036294F1AC38EDC0C2298D7C6F4374C3B5C368D10DA8D371383CBFB4491126A83D1F75DF44F29BCD39349A9BF6526D14B339FCB440647A5FAB63A370089DF162DDBCEAC8966648DDAD6669E1EADC1C8A33E9B7378693E229C6B715F2F0AE54A67455E79FF8970F23E655E7A540D28958E2E102DC99B5CE5772D00831671CC6F7024BBAE8B04173E439054C96AB3BE918C40C5A8D42A9122CA29C56044D340420D2EAAEB738EEF70331D488169FE91B521835297D7326CA272B2614144EAA0B7A75CC7F3849138255B8A1D7DB875BC7C25D28EE5941DE89BF7B063046CA0CFF31A99D7B1846E01B519137B67647F024B3F6DC70045B6950EC6ADBD68F43F67464858D515D6E3EC5F99D9F1C849831BEB4224FEDB01236712E1D715F6A752D0682169A0E83F064FD6F081F338837FE654BCE7C8CAAA8CA90C8505945D9BB3EA58661102FF0ED3F0DE30C4013122D8CF08E0 +k: D970209BBE4676405E1CF15D053A04F93D800AF1B32EAEB1E4B644ED09ADE8E8 + +c: C18D7D95DB69D4FE1E6DB385024D83C01F4790E2BFD25DB3F5DD5A208ABE06551BE0936A84091F081308471E82AC9ED6BAA90824D5525701AE0B638003C21D5EBBCBC17FCA8F522BE4F9FE5ECF38BB66131578163D50994E532D0776B187498C5A85AFF617D4550345F3855F968A8964B4F3CACCFFEC82C92BC8617C78C98E10C91AB505A92CEFE0AD6C8B66406AEA4C3FBC5275047B3E983AD42BCD31838A39B92E1C61E9E62443DF3A45044819D9E289B5514D4F74E08FC3914C0B66D2352CF8B1FABB4AC9B0748A43547BECD29D447D01083803D34E8B7EC89B4F0D78B88AEB33E308989BED2D7A78E1C06A11F3BE808F0B9D9712C80D63DA10475849DDF6CB0DBB1007FCDEDCA3C4220386B78D9EC6E380B4F57731D964470B42CF7D4B4E6D98A12A9021121C8BACC4B132A274941DA57D824FCB60B83565F5CE05D140653DD4C70F385B55D485D24935F3631AC63FA12FF50BCF4E431EE4074B2A05A2A97354C7B4169B13EB225F1727F8424F7CA6317A04C355FE785248E67E053C4D4BDBBC47DC7760AC71DFA2502FBAD1180F2B095425198A26BD5A0F7DFAB70524B8F076E7C7F215B0536B0023F8A9F7784809FF4DA245C2EAC5F9E0AB85D987C5B6FEBDB3DF197347BDFB8D5F1547FD2A59D4B434FA7ECF8D8535903D3892868BA0632F194AD6E4D5A3B30E5A6B92F829642DD4A3031358F9F0D9D46530602A35CE455F0E360C14A754828972D85561AA835D87275AC510856D26192EA319FEB45709346929DA5C5919510CB2A482CBB0F1CB4BF6FCC0343F6DBDFDE734919EF335356ABE82F80786EF0CA22E5B03A05963E7051E1FA7EA4BC3141B5746D264BE1A32CCCD39DFF8F9E5E2AB4C5F51CEFEDE3C1CD118351F9A8ED30649D407FD31F6C4BDA3AF44888ADFC3D118BBD04412FF810A7E106EC32F7524E4750DC5F35A9C55541421B5E412E57BAF24622627F02633F524FF854F71011580598C5CE01190258310BB12D7DB5F95E9EBE5F72C97E89287C2F9007A9332EC51DEF1AA2F2CADA9A8A547C3508B4D294364EAFC858B98C60C5469CC7C3CE3ED659B5A54E889FEFAF825FC777AA74A8896C9447704CA7300FC5DF5810681E3ABE083C1285B3B97EFB0E21F78F45409D00B2E1680DA79439734190AFF0D68E062970F8F6B0F1E84A559B09ACD9938913FC26484DF2125FB6D7FC2E3F0DCBD72D9E5DEDBE7E44CE7D895CC9CF6945BDE0C52F92340F9FAD3009BC90D4C2D3DEF7C1F10A862F9D71681537FE4E2716912DAAB8C9DCBD81A083220F68B05F7502F3911B1B6E3B26DA14EF646DCE67852FAB6145BBE7E21725C21CBB2849C63D01AEAD932F8EE9345D8666786AF06AD0C89B08495A6EA95992301E2D8B6A14426971C7B31626BC93BBE76CF3DB9487B5BFC5BAF298F1A92FC3BE276983E53701F9A550E2961E6E2F07317381364719BF3FC741E2A5A0664D8873120D0C11287E92DB12126332D43F35407C01F7F85DF7916B651EE4A30D602E71227733EC9252EC8346361DEFC23397CEAD0C23AF44C77A4C97242C7FA9065BF0C81983AF3E516C1B8FFF3DD5A6C43B6ED5AD8BB3327A09B6B459168F3E497DCB65FE7593E8AB429B8EB2B31F76DF08A6A8F35EC4CA994037493A8C04A73D8191D682542FCBE16E657D3E477A7D25A1D650450E94FAF485CB76FE7110BAA902D74C335FEE1546D076163B5540D8495E16E909E1D28C15BFB421756B921778A784E16207BAD407B64B9CD83AFB0A602374DE06F5C836F4A1ADFD495012DA8D3FA4B829F735B31BAA6364A2AC11BD18E40628DCF82238D86B0B5EE9DF6D179103E1D12F5191475FE3008A5382CC24648CBB24F2298758823B7F93DF10B380C3179F07DC3277021E9EEA2BE5CED646260165B57A18C26E259F83576938828D4C7617623006682CAA613AAB770791874B55E2D0BB32DDB628919B42C09BB7DAE1FBEE8661CC13F8B6A47CF5D6085A2AED796E305738B508599673DCD03AFC267023814FB1DF7EB928D5762BBAB4515921D81C6CAF551DC6EA16C1D31125B99299ADE63FBFB9BC1CE46331394CE472DE6DCEFB2BF9B3828B0110246419C47D2A1FEF16097B943A310C0664A92A155C8273402E83CB94D7E733E4527E7525E9BAB219B69676804C1F67088184038668D55AC4F6E04CEC0EED4B05DE649A9C2064F241AAF9732B09B0EE4E5BB2C0386E45FBD44 +k: B93CAB6CB4C636B56EDF0DDA556D2AF2622AE197B5AB78F95249204A6E2E824A + +c: E7B361D043C4A0B3A780121E9648DCF38DFC10ED5E47EE4DB5523C1EE1F53552640C89D9D7EFB9DFAA8EBAC7AF137A850AE41A0FF8F8CE31FDFD3E671555180EE46AB58322FE4E5F525146F9D4CDD1D1CA01413C5AC7259E1A2604A5951755F47D1761ED16B26D3DCFF79A263BC38852007BD3F381FC3B79B46A4B372918AF3117180726117BDB33C063BF5EE5D69CB48D267929CEDC890B743DEA43205EAD46FFA69D9B30C1AA5F146CBA3B0B7C4D4A50FA8D120777F1661430DA1B9D1C1DB4E10C5C3C2436D381EB13DDCC61EEB3F9AB46B60D2FB714929139E9C27F8730684EE17B077BDC003500027FAC94DA80870B382EFE41BAAD902A491C29DC95A8F80BB075A4E61C8F100FA738BED869B48F897ABC9CCE08917B5073229A94F3790947FC1AB6C2DEB5B012D60EC156A8A041DE151EED8884EC616089CB08EAEE37C006F5BBD10ACE9596A34FB09345A14FC4EA674E4A74699BA5240FF1282ED1E64360BDC9F7336051A33DD48809CF0011BEB3CE8C681588AB29F5F26175A8A6FD7884CB96CE3964FF10A67FC4A4E14CA516162C16D8127CBC45BCF7C88C89C8602032298B53C19FD099809814BE0504BCFD2407F48F2F24C5ACB89DB4F54A018DD586D871C58CC0D998FB4B0E5F5DAC631BE8367DDE88ED711F069FC8A80EBB573A7DA12AD8F13A4CA1E8A22D9EB53C55B80F700C58E6EADE6CDEB35C262EB42C903AD854F843547B79464524833A05E3FDC46092E41D8E339E7662D1209D338B8A02994D15A10439C1DC02A5B0EDEA58AF197866F43269A57C747DF389EC597F523211770E9C7E4CEFC5E43EEF791897EE43CA6146F3F757B66B9E7592E728565325D1740A1736CD0E678BBAA043F4C355FDE27094F74FAE27AD8C270930DF637C652BC1957F958DB013C146F2A4C5F451AB58A55C2B638A82755C11991B049E82F8D3CD3E7D3571FD5A83B60280E92031B610FADAC9E5F61DA469DC4C51381C970E03F09CA560E5D69D9B32AD6C1DDB6FBE9F8FC0551A909187AD65AFDC067EC6AA01AD684AE4C4F2E1F64046083D3EB347A6B6B23BBBF14668B9650D9364A6A7666593DB86FEB59628A91169F8AE24F67680789D316338B2F27766A83957831D98C88C837215AE3BD49767ADCADE758320ACE76D7F39E2970EDD19657F0EC12583164C325F0A000D065036BA2522F960C87F9852F30BC6BB5419CD8C0A1F9757BD358E748CB244A5E677AB9F9319A43A9BAC847A566052CA42C1C1DB36A0D97F144BED3BC5F11A5C8BEF7A74A4CC67748F1DF53F8B4714E0A04256B36A814B08B78A9737757E3F1347F9E5535DF1AC98B08ACC1409278B925F3B6C7863BC0969520FC6183E216B4E8E449B0FB999F1C65567AE2064774454EFDA67E1749FB24A91B55DFFE7DB75C4E24E8EF2389214EC3E95972CD53234CDAF8958D651A7A95802E65499A8A7811A65ABBA90129D5EC4247D8183316EF818E79BE839BB3379E4B8F4EE9438BFE310105C91F8703AE94D8F9D53096E2341E74E0237DB2665F16954B9713DD9638B05970A9A96261586B04F9FF369028DCC43D35B51F95E69B0323A1CEACC4A5E2EF640CDAF3407BF5F5E14C9042FF299786BC55965EB7C8BB161487FCD7911BDC2FBB65100F2200E16C690F801EA6615F9130EB99DF816B188B06E9A3105B78212B76609DF190FF102CCC451746CBAD16464E8E2F647B75777F664DE86F5089C37E3A54A6AA8B456CB98B42DEB5529C06DA45C2D2A13060BE56A061CE210ECD307FF5AD5BE39CDD8D27B4A3403323D4F53BE35FB4E31670F73CCE74CF73CFBB29A5FC2EECB5F852CA911942066D826404B77251BE5BC5980D0A6E0DB4D753D86490D4250536DACF05D82064A28324B49AD4AD202CD0FC939BB7A3CD9FB1E3E196348EF336DCDBE4BC831DF5847070D0B2BE1C4910FE1C69F58C6A7A2E7FEBD51BE1D0E050D5D721D7537A0325E7ED30AECA75A2A81BBD86EBF91CAFE4483D2729271ABDBB65C2CD9973627D2820DC7ADE3E26CA2F466EB117B2BA98EC868DC728ABC6907D49E2495504133FAA7F8758FD23076D1A65A91C75512F89EE4E2F3E480D6ECB0EE90793F4F93FFB75DF58A7072C91D5A1D9EF0C3B1DDAE79EF576E6A276F78CDC24664897F07B3A20691601EAD2F499C50589BDBCEC74FCADED1A8AFDFC061C2712ED599D48A3ACB3D86515D664D0CF3FA349A1910CB +k: 2E85AE4441DB0930391278E9D6920D9AC77D6C752DB2628CBFE9D76228DDC954 + +c: EDD3FAB8AEB1240FB31B836CD1603E1F904BD1F87318DCB02A7DE18B4044385CDB51E343787E583CB043EE23899658420F9DEDB23CAB2BCD1013F573C0C7978521596631F6590105CB7B281AB1591B7056BE068DF838E0B1679F3B88D95208EF4B3019625EEA7704CE79F33AF339AB883B0C48B3C4413921F43AF2515A85023B5D98D06E619238C8D033FB7DD19611CC60CF395A03B0681913B299531B13728B278D353FA093C633710B65000772DD6D7CA59C85DB62196DCCE1B75559ECD3FB42DDD8E57EB4CF3B4E35B57EA3D6063221B81F1B802DD7D76DE308CB0A738C3B5833E9F4427AF3C3D79B521E7E665B052B9A365DCDFE5A688B06EDCDFA2143C938F852E32D6B49808CFFD01A8655B767034F8C638E8AF94BF3EB9EA39AED1D2D22E181888DD608BF9392FD73822303A41996F41D51A924FA6EF76A9C82709A21BEF1DD004693EC9468B335F9BD1FD94D5E6D89D570FC6D23B7F5CAD2975F418B8C4A0EB82EA2A3C979B1C15B0FB0A23F844764DDD49A8B89C0D4BC8C311BB43725EE9BAACC4796F58C0F1180A4F6AFEF45178659B35A74FF34A8E93A64FA4CD003269EC67C5BD528E015B2311B5E2D33472638CD65FC7D5127335EDA862BDEA05F4290EF9B370BE69DC89E7D71DD2522E669700D5D02D8DCD75FE2AD9EDC307225D61C7805CE1EBBC806A08BD360F86FD27B599582B22C57DDE77B08F7537482FB5D75BDB9F3F4EA07DFB0711C25AD1950058EAAA2E17D8F676BE6B72B1687383D8E0DD60A8277F6FDA202D6F8957EE21308AE81ABF72A89924DB44238B262D2FCE733E12E5413C31FDEF94860D5BB0FB0AEDCB1EFA8F87CCC76189FA5D8157FB4FB14652DC188157B2B746B596FE6F2FEB197DE139B80922C2EC14B58E743E3335893ABF85B99BC4566FA1BEED449658C5993CD08BF78F7DBFF808F611D6EB8F0BD7977E854BC195D711C03EA532403547B6ABEAE827481BB5D53C867710215835260097B6CA730FC722A74E230434B08F38EB1ABAF555CD4CC6CB9310E32F93E0ACAC1E915A4B57E0774B013BE7DD435B5C6AF6018944349841F84E8C28260149F266C99FC05E0DB8D5A63DE362CDE45F5BDFB6F30D55A84ACA22E8640A1287DA51714F2C8D4B184A5F671E0E907134E34D875C9A4709ECE3B7FE15713A0DD972505298C18A9D35956149EC9AF45C475016D7C8B5CBFFE2108882B86FFD380A79892BA1909489E016CF9933705E2FA72ACC8569501553401C397648DC47948935C0197D6F162464DE42BA537611CCB67A988030ABF6081946FDD1ED8C6B23691EA160E8543735894839F13C270B3E1F68607A7EECE09AF06A34F4FC9096D4EFFE4905BE56F3EB397C13472F6621F3EE45A59C8001ABF9302E036BEDEB2E0EC92A03FFE0DF52262621728C6791C4E7D8C226D17A04B6E7EB2FF8586585D639B449C85224EEC67E30537ABE85C8F7E2306DB80E968D8585CED3A9E21622BBC38D43A7D79E2457C67307CC208064D3568C476ED79359CD0A4B0BECA02FA702661056E187A51C2D154638F9000DF856ABB82CFE12C47543E46FFDBADD2DC69EBB3FF444E7E1E95235541015E6CC7A0429C82EBD6942C6420AD598C08080DCEC800509C142ED5A642951F491E748B5436148B90ACCBEC35D0D85FAF4E472ED3F1A089113808D3ECDF77EEF3E089FA5A1635B90EF99034AAA49D4D13058EAA5A8797E37C59CEB86C7CCFE1F574E1086DB9BE744BDE5067AD5D6C450FADFF2338DB110736FBBD86B41B29C29D3899CE60E9BEDF775416541350AAA9BD9B5D57573C542375BB0297912863C86AAE39D153CCB29F1811CDE58978951CE8EEFA6F9D10121AD1FB89F02AF8E96AC08DD10E3274E8CA79D910667166797468D3D3BD6D7EF5F2C6FC4F110268A2716CB273F29BBC347050BD98BDD88F30A96E7A9E840A55087F42A09B03D04E612640BA4D86BE87DA6D20ED0ECCCA2523EE7C4E9D2A96E7378BF71308850832769417EB6250FC768B0EDF92FD45216A235435A3E32AE5B22BF913027D81B0D5508D2AF88120A50206DD7837B79C45B21DB4FE59D23F4AB051BF012B13F6EE5B34C83C8D8CC9BB35266D0EF3834F52CE6CC5BCB7C5989198465A9E9DEE1A1F262FAB26FE0D0964E624869DF2607858815418F85A1F503BE5217794CED29D02E19D40C4BC8E65C46FE3815C1E548976649D4332B1841EA03022 +k: 5CDD11E1565AF6FBC0DC373651C6F2DC833EBBC54FC0FE2855C0C19EFDD6D877 + +c: C72FA15560FEE6B014E73F5F93C307F74EF9C49AA8F7DF578C002AF20419040D6AB6AC46F78FB03F56A9C5C95902D8CBCE34D79853EDF0C319AF5469E32D0B9FC3C41628970E0B3A6C408B509C74DFA218BD23FA7A11DEA2D2277B3522BEF6606E3415D0DD51556440CC1AF59CAE6F23368BCAC3E1509503368354D1E3EC9E91F8B2D377DCC323D578DEB222585E43F97A6D1855B576297F3EC39F5F9EA1B2F72A0E701DB35D633DBCC5FFF76A2D39AE9DF2A3F6326B7671A4C0BB7177897DFF4FAF9FE5CFBCC94966BD298EA2627CF19C1CA866E5927C6E41970F544479D9A6D814AB72E2963F959CBEF37BF905BE98D8C8F3C25FAD3983F71D0C0D27D9FF17E4B34C2F8664406151E92ECA980F6CBE8F8926638398C9BCE9C69A92A30CE82F28CB4FE4110EAC40437BD64D38412030FB8DB3A4242672807737E707E59A0ACFA782127EFCB7BCEC39DFEC55C3109F958E86E0D381C4E9E9FE43110517778C08A140CF440F209011768EE34E5742ECC1E4CED045922D698A29E5557A29C237885D8559F110E4B540FE1298B97920EDF59BC8EBCA11EB91F471B6647864B384AE5A6BB494942BB1F537301B39EDD6F664E4A7877C173614B09D981401D5AA98A8BA4BF1992DD7B7A65BCE7E87FCDFC7B29AB69ADDC9036D71BB9BC08F4E7D9A57B784911CEE7D0EE5A559332981B6475290FB4410D8BA1F00FFC4850031708EB6A83AF524447F491CC25F23FBED71476FBA5C64BCD50D88A3ACD2BE1DF461B11F6D537B2929D073FCFB9E2545E1B097A12F52C411B2AF6C20A27ECD1C084568F4A76A87A4A79F7711012CBEDA777D913CC6B15E6C4E9BCE2C773991946CB9CEFB7F105B15FD2CD3E721E6C1DF69B66BEDF2157ACAD45458FD8C9C1AF910394A13C300696BBBB5B1E1145076BC6B9E3D30A680EA29B6370618B47AF77108EDE6BFCEBFBCFEDDD27FD9F0DA6D289060095C4E309DC3D26DCBFB9E8AF34E12BDD335FAC434663D4D802C8B04AC884352D27739C4DF22F3D7DB38084BAE2C0A15485DF4E356DF2FFBB5BBACA78D0B4886909C4482A6366991776B788C0941437BF858DD83AAA50104D725171C09B7DB521AA65CCCA3CDAFB2E61CDEF66B55D80E201DF44654E7B1FFCA29EFC1E44A8CBA406C8DAC6207C0BD5DA964FBE137ACCD84405A94F5F51D82CE701DD16774BA5F0A7A2BED7F9BB9A4F25C3095D1F8980721A7ECBCE957825A9BE9F4F818E56D35909A3F9DE5487DA0011EBCF9F4D768B72D236042175ED599D731AAFCD45D3D837FB8B64304ED7F22A8C3949BFA25B83A8C05FE9748F63A38201B460E16FFE4329C8464C9BF07D45DF2BA9AE7A84DCFC4CAB7BE42CBD360F61051CD56F68A71FE9E78231986832C9564D02B973EA2D3FCDBAEC374612C1B74DD483F08BAC30F6C9306E7092CC8FE1D20B937AFA4BC605ED4398A8B81A470870E97EA7D51562111D04BF9D09D9BC07533FCDA1E8DA2F2823AD621DB169C99FB112E44FDEFD597B61160815A1776139B685DA9DF6B4C22F6FF6CA3CC46B3264E456E98FF1F301122C88D42928403ED0E0E5F49BB0B450429980ACEFA1A80DA26638B5D2310FCADB0836223CB0894E6FA014D351AE052A70AB5F515641F153509FFB90B8DE495B946AB8C7D7CFEF56D3C66DC871F1D3A38494EF6AB82066E96B9F2782D6B5931B78B7117C389D155759CBC1690897DA66E50D0865209887552C8A6035B8F6911760F8D0A450FB926096721D962877FBFD87D92C37C71836B8BB9FCE92B4637785DC8E8C1D379081C14C73872E676A1C854F1BB68649BD552B48D12F62B17E9A48CCAF63885899C7B781DC3A6D7DE7DA28E286C9FD644D3521F0320B7ECA8FD0AAFFFFF90DAEC85BA80868A2EC69CC73AE00AE29FF5BA37D94510CA19E1EDAA64F30CD79A58B42FC9A6402CE31AF54BAE84DFED8D0C76142A347542265B794A0AEF4A08B4B5DFCADBD56757ECD98F175D80B44121257964293F300FF750107C1B72463D4634EBEDF4705F76C908844763D0D6813FFBE5411FBBFE16C08F32BD1BB3FB8EA5C5339A1B0194DA543E64C1F8065CE526D2754EF95A287DDC97B790FF34EA37863BB166BF0BD99E3A961BC91C1A4F84B63700C9EF5D8D31CEC9E1AE33C554BE638D5C1217CD2DBA13CC143F969DCBF285407A9B608F859812E7F668D4538BE179D11ED767A6971A2AA9CBB545EA01998E +k: C751783FCA654B1FB5F210C6CAAAB9D5E46A969E546A0834D618A952DCCCF3E3 + diff --git a/crypto/mlkem/mlkem1024_nist_keygen_tests.txt b/crypto/mlkem/mlkem1024_nist_keygen_tests.txt new file mode 100644 index 0000000000..8206e8ddb4 --- /dev/null +++ b/crypto/mlkem/mlkem1024_nist_keygen_tests.txt @@ -0,0 +1,125 @@ +z: 99E3246884181F8E1DD44E0C7629093330221FD67D9B7D6E1510B2DBAD8762F7 +d: 49AC8B99BB1E6A8EA818261F8BE68BDEAA52897E7EC6C40B530BC760AB77DCE3 +ek: A04184D4BC7B532A0F70A54D7757CDE6175A6843B861CB2BC4830C0012554CFC5D2C8A2027AA3CD967130E9B96241B11C4320C7649CC23A71BAFE691AFC08E680BCEF42907000718E4EACE8DA28214197BE1C269DA9CB541E1A3CE97CFADF9C6058780FE6793DBFA8218A2760B802B8DA2AA271A38772523A76736A7A31B9D3037AD21CEBB11A472B8792EB17558B940E70883F264592C689B240BB43D5408BF446432F412F4B9A5F6865CC252A43CF40A320391555591D67561FDD05353AB6B019B3A08A73353D51B6113AB2FA51D975648EE254AF89A230504A236A4658257740BDCBBE1708AB022C3C588A410DB3B9C308A06275BDF5B4859D3A2617A295E1A22F90198BAD0166F4A943417C5B831736CB2C8580ABFDE5714B586ABEEC0A175A08BC710C7A2895DE93AC438061BF7765D0D21CD418167CAF89D1EFC3448BCBB96D69B3E010C82D15CAB6CACC6799D3639669A5B21A633C865F8593B5B7BC800262BB837A924A6C5440E4FC73B41B23092C3912F4C6BEBB4C7B4C62908B03775666C22220DF9C88823E344C7308332345C8B795D34E8C051F21F5A21C214B69841358709B1C305B32CC2C3806AE9CCD3819FFF4507FE520FBFC27199BC23BE6B9B2D2AC1717579AC769279E2A7AAC68A371A47BA3A7DBE016F14E1A727333663C4A5CD1A0F8836CF7B5C49AC51485CA60345C990E06888720003731322C5B8CD5E6907FDA1157F468FD3FC20FA8175EEC95C291A262BA8C5BE990872418930852339D88A19B37FEFA3CFE82175C224407CA414BAEB37923B4D2D83134AE154E490A9B45A0563B06C953C3301450A2176A07C614A74E3478E48509F9A60AE945A8EBC7815121D90A3B0E07091A096CF02C57B25BCA58126AD0C629CE166A7EDB4B33221A0D3F72B85D562EC698B7D0A913D73806F1C5C87B38EC003CB303A3DC51B4B35356A67826D6EDAA8FEB93B98493B2D1C11B676A6AD9506A1AAAE13A824C7C08D1C6C2C4DBA9642C76EA7F6C8264B64A23CCCA9A74635FCBF03E00F1B5722B214376790793B2C4F0A13B5C40760B4218E1D2594DCB30A70D9C1782A5DD30576FA4144BFC8416EDA8118FC6472F56A979586F33BB070FB0F1B0B10BC4897EBE01BCA3893D4E16ADB25093A7417D0708C83A26322E22E6330091E30152BF823597C04CCF4CFC7331578F43A2726CCB428289A90C863259DD180C5FF142BEF41C7717094BE07856DA2B140FA67710967356AA47DFBC8D255B4722AB86D439B7E0A6090251D2D4C1ED5F20BBE6807BF65A90B7CB2EC0102AF02809DC9AC7D0A3ABC69C18365BCFF59185F33996887746185906C0191AED4407E139446459BE29C6822717644353D24AB6339156A9C424909F0A9025BB74720779BE43F16D81C8CC666E99710D8C68BB5CC4E12F314E925A551F09CC59003A1F88103C254BB978D75F394D3540E31E771CDA36E39EC54A62B5832664D821A72F1E6AFBBA27F84295B2694C498498E812BC8E9378FE541CEC5891B25062901CB7212E3CDC46179EC5BCEC10BC0B9311DE05074290687FD6A5392671654284CD9C8CC3EBA80EB3B662EB53EB75116704A1FEB5C2D056338532868DDF24EB8992AB8565D9E490CADF14804360DAA90718EAB616BAB0765D33987B47EFB6599C5563235E61E4BE670E97955AB292D9732CB8930948AC82DF230AC72297A23679D6B94C17F1359483254FEDC2F05819F0D069A443B78E3FC6C3EF4714B05A3FCA81CBBA60242A7060CD885D8F39981BB18092B23DAA59FD9578388688A09BBA079BC809A54843A60385E2310BBCBCC0213CE3DFAAB33B47F9D6305BC95C6107813C585C4B657BF30542833B14949F573C0612AD524BAAE69590C1277B86C286571BF66B3CFF46A3858C09906A794DF4A06E9D4B0A2E43F10F72A6C6C47E5646E2C799B71C33ED2F01EEB45938EB7A4E2E2908C53558A540D350369FA189C616943F7981D7618CF02A5B0A2BCC422E857D1A47871253D08293C1C179BCDC0437069107418205FDB9856623B8CA6B694C96C084B17F13BB6DF12B2CFBBC2B0E0C34B00D0FCD0AECFB27924F6984E747BE2A09D83A8664590A8077331491A4F7D720843F23E652C6FA840308DB4020337AAD37967034A9FB523B67CA70330F02D9EA20C1E84CB8E5757C9E1896B60581441ED618AA5B26DA56C0A5A73C4DCFD755E610B4FC81FF84E21 +dk: 8C8B3722A82E550565521611EBBC63079944C9B1ABB3B0020FF12F631891A9C468D3A67BF6271280DA58D03CB042B3A461441637F929C273469AD15311E910DE18CB9537BA1BE42E98BB59E498A13FD440D0E69EE832B45CD95C382177D67096A18C07F1781663651BDCAC90DEDA3DDD143485864181C91FA2080F6DAB3F86204CEB64A7B4446895C03987A031CB4B6D9E0462FDA829172B6C012C638B29B5CD75A2C930A5596A3181C33A22D574D30261196BC350738D4FD9183A763336243ACED99B3221C71D8866895C4E52C119BF3280DAF80A95E15209A795C4435FBB3570FDB8AA9BF9AEFD43B094B781D5A81136DAB88B8799696556FEC6AE14B0BB8BE4695E9A124C2AB8FF4AB1229B8AAA8C6F41A60C34C7B56182C55C2C685E737C6CA00A23FB8A68C1CD61F30D3993A1653C1675AC5F0901A7160A73966408B8876B715396CFA4903FC69D60491F8146808C97CD5C533E71017909E97B835B86FF847B42A696375435E006061CF7A479463272114A89EB3EAF2246F0F8C104A14986828E0AD20420C9B37EA23F5C514949E77AD9E9AD12290DD1215E11DA274457AC86B1CE6864B122677F3718AA31B02580E64317178D38F25F609BC6C55BC374A1BF78EA8ECC219B30B74CBB3272A599238C93985170048F176775FB19962AC3B135AA59DB104F7114DBC2C2D42949ADECA6A85B323EE2B2B23A77D9DB235979A8E2D67CF7D2136BBBA71F269574B38888E1541340C19284074F9B7C8CF37EB01384E6E3822EC4882DFBBEC4E6098EF2B2FC177A1F0BCB65A57FDAA89315461BEB7885FB68B3CD096EDA596AC0E61DD7A9C507BC6345E0827DFCC8A3AC2DCE51AD731AA0EB932A6D0983992347CBEB3CD0D9C9719797CC21CF0062B0AD94CAD734C63E6B5D859CBE19F0368245351BF464D7505569790D2BB724D8659A9FEB1C7C473DC4D061E29863A2714BAC42ADCD1A8372776556F7928A7A44E94B6A25322D03C0A1622A7FD261522B7358F085BDFB60758762CB901031901B5EECF4920C81020A9B1781BCB9DD19A9DFB66458E7757C52CEC75B4BA740A24099CB56BB60A76B6901AA3E0169C9E83496D73C4C99435A28D613E97A1177F58B6CC595D3B2331E9CA7B57B74DC2C5277D26F2FE19240A55C35D6CFCA26C73E9A2D7C980D97960AE1A04698C16B398A5F20C35A0914145CE1674B71ABC6066A909A3E4B911E69D5A849430361F731B07246A6329B52361904225082D0AAC5B21D6B34862481A890C3C360766F04263603A6B73E802B1F70B2EB00046836B8F493BF10B90B8737C6C548449B294C47253BE26CA72336A632063AD3D0B48C8B0F4A34447EF13B764020DE739EB79ABA20E2BE1951825F293BEDD1089FCB0A91F560C8E17CDF52541DC2B81F972A7375B201F10C08D9B5BC8B95100054A3D0AAFF89BD08D6A0E7F2115A435231290460C9AD435A3B3CF35E52091EDD1890047BCC0AABB1ACEBC75F4A32BC1451ACC4969940788E89412188946C9143C5046BD1B458DF617C5DF533B052CD6038B7754034A23C2F7720134C7B4EACE01FAC0A2853A9285847ABBD06A3343A778AC6062E458BC5E61ECE1C0DE0206E6FE8A84034A7C5F1B005FB0A584051D3229B86C909AC5647B3D75569E05A88279D80E5C30F574DC327512C6BBE8101239EC62861F4BE67B05B9CDA9C545C13E7EB53CFF260AD9870199C21F8C63D64F0458A7141285023FEB829290872389644B0C3B73AC2C8E121A29BB1C43C19A233D56BED82740EB021C97B8EBBA40FF328B541760FCC372B52D3BC4FCBC06F424EAF253804D4CB46F41FF254C0C5BA483B44A87C219654555EC7C163C79B9CB760A2AD9BB722B93E0C28BD4B1685949C496EAB1AFF90919E3761B346838ABB2F01A91E554375AFDAAAF3826E6DB79FE7353A7A578A7C0598CE28B6D9915214236BBFFA6D45B6376A07924A39A7BE818286715C8A3C110CD76C02E0417AF138BDB95C3CCA798AC809ED69CFB672B6FDDC24D89C06A6558814AB0C21C62B2F84C0E3E0803DB337A4E0C7127A6B4C8C08B1D1A76BF07EB6E5B5BB47A16C74BC548375FB29CD789A5CFF91BDBD071859F4846E355BB0D29484E264DFF36C9177A7ACA78908879695CA87F25436BC12630724BB22F0CB64897FE5C41195280DA04184D4BC7B532A0F70A54D7757CDE6175A6843B861CB2BC4830C0012554CFC5D2C8A2027AA3CD967130E9B96241B11C4320C7649CC23A71BAFE691AFC08E680BCEF42907000718E4EACE8DA28214197BE1C269DA9CB541E1A3CE97CFADF9C6058780FE6793DBFA8218A2760B802B8DA2AA271A38772523A76736A7A31B9D3037AD21CEBB11A472B8792EB17558B940E70883F264592C689B240BB43D5408BF446432F412F4B9A5F6865CC252A43CF40A320391555591D67561FDD05353AB6B019B3A08A73353D51B6113AB2FA51D975648EE254AF89A230504A236A4658257740BDCBBE1708AB022C3C588A410DB3B9C308A06275BDF5B4859D3A2617A295E1A22F90198BAD0166F4A943417C5B831736CB2C8580ABFDE5714B586ABEEC0A175A08BC710C7A2895DE93AC438061BF7765D0D21CD418167CAF89D1EFC3448BCBB96D69B3E010C82D15CAB6CACC6799D3639669A5B21A633C865F8593B5B7BC800262BB837A924A6C5440E4FC73B41B23092C3912F4C6BEBB4C7B4C62908B03775666C22220DF9C88823E344C7308332345C8B795D34E8C051F21F5A21C214B69841358709B1C305B32CC2C3806AE9CCD3819FFF4507FE520FBFC27199BC23BE6B9B2D2AC1717579AC769279E2A7AAC68A371A47BA3A7DBE016F14E1A727333663C4A5CD1A0F8836CF7B5C49AC51485CA60345C990E06888720003731322C5B8CD5E6907FDA1157F468FD3FC20FA8175EEC95C291A262BA8C5BE990872418930852339D88A19B37FEFA3CFE82175C224407CA414BAEB37923B4D2D83134AE154E490A9B45A0563B06C953C3301450A2176A07C614A74E3478E48509F9A60AE945A8EBC7815121D90A3B0E07091A096CF02C57B25BCA58126AD0C629CE166A7EDB4B33221A0D3F72B85D562EC698B7D0A913D73806F1C5C87B38EC003CB303A3DC51B4B35356A67826D6EDAA8FEB93B98493B2D1C11B676A6AD9506A1AAAE13A824C7C08D1C6C2C4DBA9642C76EA7F6C8264B64A23CCCA9A74635FCBF03E00F1B5722B214376790793B2C4F0A13B5C40760B4218E1D2594DCB30A70D9C1782A5DD30576FA4144BFC8416EDA8118FC6472F56A979586F33BB070FB0F1B0B10BC4897EBE01BCA3893D4E16ADB25093A7417D0708C83A26322E22E6330091E30152BF823597C04CCF4CFC7331578F43A2726CCB428289A90C863259DD180C5FF142BEF41C7717094BE07856DA2B140FA67710967356AA47DFBC8D255B4722AB86D439B7E0A6090251D2D4C1ED5F20BBE6807BF65A90B7CB2EC0102AF02809DC9AC7D0A3ABC69C18365BCFF59185F33996887746185906C0191AED4407E139446459BE29C6822717644353D24AB6339156A9C424909F0A9025BB74720779BE43F16D81C8CC666E99710D8C68BB5CC4E12F314E925A551F09CC59003A1F88103C254BB978D75F394D3540E31E771CDA36E39EC54A62B5832664D821A72F1E6AFBBA27F84295B2694C498498E812BC8E9378FE541CEC5891B25062901CB7212E3CDC46179EC5BCEC10BC0B9311DE05074290687FD6A5392671654284CD9C8CC3EBA80EB3B662EB53EB75116704A1FEB5C2D056338532868DDF24EB8992AB8565D9E490CADF14804360DAA90718EAB616BAB0765D33987B47EFB6599C5563235E61E4BE670E97955AB292D9732CB8930948AC82DF230AC72297A23679D6B94C17F1359483254FEDC2F05819F0D069A443B78E3FC6C3EF4714B05A3FCA81CBBA60242A7060CD885D8F39981BB18092B23DAA59FD9578388688A09BBA079BC809A54843A60385E2310BBCBCC0213CE3DFAAB33B47F9D6305BC95C6107813C585C4B657BF30542833B14949F573C0612AD524BAAE69590C1277B86C286571BF66B3CFF46A3858C09906A794DF4A06E9D4B0A2E43F10F72A6C6C47E5646E2C799B71C33ED2F01EEB45938EB7A4E2E2908C53558A540D350369FA189C616943F7981D7618CF02A5B0A2BCC422E857D1A47871253D08293C1C179BCDC0437069107418205FDB9856623B8CA6B694C96C084B17F13BB6DF12B2CFBBC2B0E0C34B00D0FCD0AECFB27924F6984E747BE2A09D83A8664590A8077331491A4F7D720843F23E652C6FA840308DB4020337AAD37967034A9FB523B67CA70330F02D9EA20C1E84CB8E5757C9E1896B60581441ED618AA5B26DA56C0A5A73C4DCFD755E610B4FC81FF84E21D2E574DFD8CD0AE893AA7E125B44B924F45223EC09F2AD1141EA93A68050DBF699E3246884181F8E1DD44E0C7629093330221FD67D9B7D6E1510B2DBAD8762F7 + +z: 007BF379B97DA0947F2E9BFDE3359E282C9CF1D2E68A80209B533104E90F432D +d: 2D229AB46354901491476CCE8FA96E4A5FBA65AB2F538FEDAA528E35687A782B +ek: C5712512984D94A039FC87739DFCAE09934E7658A82FB0895A060D54F900C5AC1161DA09E2D833D5B60E60FB000AF1BF4F43B059B8272E79AF4572349940209BB21BA3BC3B1B6ACC281A35DAA15923496D0FDB32A8505DC8626847627BDE759175F11B457539465CCE3E591933D8B458F561EBA446711CBDF2B604E53B7EE0E0C2C0A15C35AC2A2C91BAC918170E5372C542636D7526BAFAABD10CC6F4382B01C74AE28B47289AB5E463A584465C9994B739367C9F82639801A3681768E134185C9A0DEB8965079A99451418EC051D0D723FECE5B53488207FF7994082C16043B13D278ED530640BE0B4F9AC75B52429EDCA9BC4FA7BDCB43FAB630DB25A5EF576461313CCAD5B2E85E36EBF9594689201458C9B2D96261221C8D3C21D91F53D83F0676ED7A78A6177791557DDFA33FE39699C19339AA9ACD70B34D9036D5391AB57ABB2A5EA368675A565D24A796193351A37C69A5866F4C99482CE4BB3B7795B83E584761EDAC6BFD8CF2433AFC53641E4689571B999E8236A151B6E42855F7E9BBFB8040FFA59CDE707612C9C717F5827DC2B51766889784A6942E8957E6AAAA5D8413F76A37FE69F6259CCFFDC7BECCCC1DAE419D969620C0AC674367558F532EF697058250113DCA01C051A88FABE2CC65795949166857F0F89104A1187C9D30517F25F49308BE4634AAE29B30C8360FF3CC38B5A7BE717584C10A79929B36C1516DE545566B76EACE143E011A4FD42702E95139EB2A746FC04AC99C5E9F07344C83020C34165F9572CD86F50BB9A55B13C6DF33305C8601FE1B103057519BA43B8EC1BF37603C0495F40087CC68A808848429F64BEC6EB336C37AC50F2B5CAC04D6B59870E4ABFBE773664C3926D2954E3D57F2C8147683A519B7264DF40CAB6F3BF262B760BF794416A5D601776E5165FD50C4BA4B07C49AC494C699C4705254A450B36CB38EAF96D6B0270492B84E5A5C208D6ABED761F033138D3BC9FCE42C17B160696C7CA9726BBD2B1C1E42C92556A06A5018EDF605B2D789688CB85066CAA0528BDA4E32542621727301B90333C1E4393FDB539ACF8AFC202BBC42546BB88A04AF9C089717F4073360B567D3967620BD8ACD0BA1762C56603647DEE371F552C92C82A69B1E461E4D1572FBC881AB526B49358F21A69DD3C7CE32BACFEDA9D5CCC34E09B9443EB189F69798FC80B61011B76239EEDC7C77F1B78D3077C5549C48BA8BC720CC2C8B88FC85A9A5CB6C1DA0829C504A9FA502899926BF0DC8FF9C02DC9FC005676A84CF16E2B23B7A5946289E400D0D2387E36841A227B7F10822572BD62F134EEDBCF1A66B6FCC907F9E0AF8D349FA8B5C4251C66B3690BB21A3253F3916020934381B46F1BB9C5F638BF8C8B256300B62B5D6F3A7FF680B514F6B3352A1994C8511957976836BF65979E13002AF1453C1FC037669B3465A0366B7B5F94F92C7707675FB08B2632AEF3D725CC4B3B6496B4BCEA2C865C982F7946079287D63931C8940B130776F5A7629A64915BC4B1FB09CD4C9114B1018937A83047EB3F22EB7EF5C866E9909CC89072E69C973EB22BEE6A3B1E383DA4006CCA560100C72BBA81237C1C7AB0A48A0CC58ACCE826B735C8BA19A87C9AC74E77295A8B26BDBB7685053C5A1572A09425CAE97D7F246D8D0B85AF20350999356ADA86628A787482393FD85A2166245B442F64B5516D595C471BA4CB577644738F87853F65236FF46ABAABEB9236616CF5999EADC9BA80F1C0FE8B6C45BCB543AB8E9097AF977612CF5A4E22C274A278472FA93E2B817706E11813F2B3865851C96683C83B52D2369DF3F74C111B4F4B01202277A918660B9641691412B637B7991973035F77B02D75A2143813BD49847F082C16E31EC89A2F8A588B2D40519892C939D782FFE18BE5D0BE1B5A41D594C32E246F886C37D43145DB8334B0E3364F65A76E0533FE052535DC7945669019E7310587C4C71A3883E1123A9A5BEA542F6D8CAB83CB905D26C82EF72A84285A07687ED90A2A32083F1D8519AC6289C9F6A5FE994C96ACBE0303BEB3B7A5A7457BC0118AE7008A0AD860310CCEA57BC313595A68CC8B682328D8C4440BA57E749BA40E968D09A0783CEA0CCA59B43FE9B42F157F38B67ED0379802ABC1CD50288D73581CCB59E3768C9801138B658FDAA87AC02DF5B5386C2DEFBB8605988CF7B1BC6CDF5C8F1F770EBE3E49 +dk: 81D65577F87BECBC2A8975A7FB237049AC574D9C934FDC9764FB79597C0CFD236E8F516C3DB4AC0F627A02DC8426C051A6F0421B6A2689ECC469E92A0D816E85990E9298483902A6CAB76E74D476A9300E8121958306959AA362263C885B483E326285CF970BD84A694A553E9BB3AC3209AAE0F0521F3564CF352890289A530717F5E080A916613EB88304A7340A2413C20B02F62B58D68A3C97F57C8A11B1E58611A2A18B23FB3222E84D2ED287E002C1FDCA2D47C03DD5BC0B69210789241AC177907CC3916088B6D5E6B9B7C4C8C975725E38C5A3F54964057114D7CA565BB71F5C8C866A83F0E62AF7866D94C50E89B1BD8F1A8596B477AB743A427252D2128967B962F2E7590ED47670542BDF2162F8C2B1CBE434862670926330B90002E4C490B80A57CC4B02EC03B40CF6250E727C8E1C05E2C36E9E0AAC4FC0C4C4D89EEA2837408B53542513E5C898E62722415CB71B7A9EE7E8634A00028D549A2F912797C84778B7C5D4559A885430124A5D161789EA8972EC9A5298693F4857A4AC905E53A8866148117AA60D43938F84BA60F8C15B7BC88824611AB8EB74852155BFA82127D052B6138E8A7ACF28774DC2C798EA9097723BCD2EA4A0A1B38CB666830008A256F05057D126E9C440AAD52AC7C4B2E370914C2883ECB13AA5F53E43A25D59661809C960545186BB6931BB45561307A4D45C1A0EB80EB0B4166AB12EAAF8CF4D25CA4A8454B179246D3019B8EB5CD86B2BE40513C7828653BC08CC652FA59665DDDB0B94E4AEA22431F7557329434C688B5CC0789E675B0A9395AD2CAC7DDF166E0F5245DF835A00CC172B3A6192808741652C4025566C43177F5A9911B317009A38ADA45F8339693971AA1D773D6FA240F6D7880BB5244115AC2EAB5FC2408BAF4705C7E016E9B1B6A47567DF5298F47437F1C74949232EC496C3054B0A4805C8CAC2255950A8B7F683CF5B531C4C798554963875928CA4204AE8755AF433C2D52784A36404E1A368CC4FAD29BFD879565CA3CB52D56B3F273E7CEC08A1D7180F5037CA61B289828AA3838D01F9958388779ED2881FE894A9D3699542BC0A2C497F7251986B50EFF284474794C845A53E12205FCB823872640B1A8583856DBE11BD6DE49AFC0142AD940EE43B06D9D7141674212297B8478B784FCB8A886508451B376822726E00CD7FA1CA16DB9F591007B2689E0C827929612035F5150800692ECB83B244964FE6922402297F244E430A06AB897DDEFC70742BCA5AF7B634A1B3C8C719EE2909A99C19EA602B7E22C66001CFE5401440139DD6398B26141C9B23914E5940EB35105131451DD3CBEF8654F0483887004D22AABD57559DFFC11038D3BEDE5CBD44DA0119D87610E0CBE392415B33A35F57364C1177DC514AD94570140217982593CD20BEF5E43BD0638EFAD1478CF9943DA093AFD278037010C7086C04A53C0F607D8B867222DB98A56436E6FC3B28D7382116706DB679D9316C473C6D86F85DC40B0A0FE24D8905321336488E20739FB11652EB62C7A05CFDA115791CAE294A0534491CA5EA8F5BA6730E06AF33964469983770D13C858CB66D091B02DA5181ECAEB9C4A241A2222DAA77B6E5020530474C891D440BA6E3F2137B215526001BE17185F0048F3DEBA1ECF7BBF1A55EC9D57485969B43821930DA7672B33630209F8257B8DD749FA9F6C73CE3C903B2300D7304FBBBC6F5304F6DAB322117A621A851CDB66877A82C350B4F42525E16328C7B8A07948794CECAB06D7A7B13CB070C61A983647319E1B6B4E27FC900BD50F485B98121DB4180CB62AE4C3C68A8D59F18885EFEBC90B3F1C9F480B068DACDAD813A28EB200EAAAABD9A0DC5D72E9B4505778807AA6A52AD6142DC517443FC55CDFA56B2A6AACDB28B4B5045344CB418795241756943CC5BA1A4B73A2C90A2122121559FB15B015DB43B621B20F01A4731438B148395CAE4A7C36888FBF01603336991572753F35DEF2264D93BA831A46AD5FB3F663704617B712B81595A585123F03180F46285397551F27E98970DEBC2BF8298329BC87402869DF5B207C7415D1BA9615300B67FACB7A4AB1287E37938C2347C172F96A8826C944CA75C63488A9BDFD206B41C8E6E854B2D9C59D169361BA549254142387337A89C919C84512B2394C5712512984D94A039FC87739DFCAE09934E7658A82FB0895A060D54F900C5AC1161DA09E2D833D5B60E60FB000AF1BF4F43B059B8272E79AF4572349940209BB21BA3BC3B1B6ACC281A35DAA15923496D0FDB32A8505DC8626847627BDE759175F11B457539465CCE3E591933D8B458F561EBA446711CBDF2B604E53B7EE0E0C2C0A15C35AC2A2C91BAC918170E5372C542636D7526BAFAABD10CC6F4382B01C74AE28B47289AB5E463A584465C9994B739367C9F82639801A3681768E134185C9A0DEB8965079A99451418EC051D0D723FECE5B53488207FF7994082C16043B13D278ED530640BE0B4F9AC75B52429EDCA9BC4FA7BDCB43FAB630DB25A5EF576461313CCAD5B2E85E36EBF9594689201458C9B2D96261221C8D3C21D91F53D83F0676ED7A78A6177791557DDFA33FE39699C19339AA9ACD70B34D9036D5391AB57ABB2A5EA368675A565D24A796193351A37C69A5866F4C99482CE4BB3B7795B83E584761EDAC6BFD8CF2433AFC53641E4689571B999E8236A151B6E42855F7E9BBFB8040FFA59CDE707612C9C717F5827DC2B51766889784A6942E8957E6AAAA5D8413F76A37FE69F6259CCFFDC7BECCCC1DAE419D969620C0AC674367558F532EF697058250113DCA01C051A88FABE2CC65795949166857F0F89104A1187C9D30517F25F49308BE4634AAE29B30C8360FF3CC38B5A7BE717584C10A79929B36C1516DE545566B76EACE143E011A4FD42702E95139EB2A746FC04AC99C5E9F07344C83020C34165F9572CD86F50BB9A55B13C6DF33305C8601FE1B103057519BA43B8EC1BF37603C0495F40087CC68A808848429F64BEC6EB336C37AC50F2B5CAC04D6B59870E4ABFBE773664C3926D2954E3D57F2C8147683A519B7264DF40CAB6F3BF262B760BF794416A5D601776E5165FD50C4BA4B07C49AC494C699C4705254A450B36CB38EAF96D6B0270492B84E5A5C208D6ABED761F033138D3BC9FCE42C17B160696C7CA9726BBD2B1C1E42C92556A06A5018EDF605B2D789688CB85066CAA0528BDA4E32542621727301B90333C1E4393FDB539ACF8AFC202BBC42546BB88A04AF9C089717F4073360B567D3967620BD8ACD0BA1762C56603647DEE371F552C92C82A69B1E461E4D1572FBC881AB526B49358F21A69DD3C7CE32BACFEDA9D5CCC34E09B9443EB189F69798FC80B61011B76239EEDC7C77F1B78D3077C5549C48BA8BC720CC2C8B88FC85A9A5CB6C1DA0829C504A9FA502899926BF0DC8FF9C02DC9FC005676A84CF16E2B23B7A5946289E400D0D2387E36841A227B7F10822572BD62F134EEDBCF1A66B6FCC907F9E0AF8D349FA8B5C4251C66B3690BB21A3253F3916020934381B46F1BB9C5F638BF8C8B256300B62B5D6F3A7FF680B514F6B3352A1994C8511957976836BF65979E13002AF1453C1FC037669B3465A0366B7B5F94F92C7707675FB08B2632AEF3D725CC4B3B6496B4BCEA2C865C982F7946079287D63931C8940B130776F5A7629A64915BC4B1FB09CD4C9114B1018937A83047EB3F22EB7EF5C866E9909CC89072E69C973EB22BEE6A3B1E383DA4006CCA560100C72BBA81237C1C7AB0A48A0CC58ACCE826B735C8BA19A87C9AC74E77295A8B26BDBB7685053C5A1572A09425CAE97D7F246D8D0B85AF20350999356ADA86628A787482393FD85A2166245B442F64B5516D595C471BA4CB577644738F87853F65236FF46ABAABEB9236616CF5999EADC9BA80F1C0FE8B6C45BCB543AB8E9097AF977612CF5A4E22C274A278472FA93E2B817706E11813F2B3865851C96683C83B52D2369DF3F74C111B4F4B01202277A918660B9641691412B637B7991973035F77B02D75A2143813BD49847F082C16E31EC89A2F8A588B2D40519892C939D782FFE18BE5D0BE1B5A41D594C32E246F886C37D43145DB8334B0E3364F65A76E0533FE052535DC7945669019E7310587C4C71A3883E1123A9A5BEA542F6D8CAB83CB905D26C82EF72A84285A07687ED90A2A32083F1D8519AC6289C9F6A5FE994C96ACBE0303BEB3B7A5A7457BC0118AE7008A0AD860310CCEA57BC313595A68CC8B682328D8C4440BA57E749BA40E968D09A0783CEA0CCA59B43FE9B42F157F38B67ED0379802ABC1CD50288D73581CCB59E3768C9801138B658FDAA87AC02DF5B5386C2DEFBB8605988CF7B1BC6CDF5C8F1F770EBE3E4987A74BAADEC58CB97414E0D82652052055EEE3E3B64001A0DC6172A2A48DDD91007BF379B97DA0947F2E9BFDE3359E282C9CF1D2E68A80209B533104E90F432D + +z: E94F4E83E6CAABCA9E319D40F6CE0E3691B77C92D9E3766BE9B6F4B6DF2E640E +d: 1D65D0290B15903371D616D7AC3F2FADA8CB24E6C84D52C039A10BC1288C1110 +ek: F4A4800C492B0472295F4B65471C6170C96DBD90130867CC68369DF450214ECCA22420CE39341A321682C054719B33469BA78C5F0ACD0CF466F2A188713B5154B279E6A6BC1A91032D4948B2D521E3090E450ACBAFC250EC72B7E6DBA3FED99F22730B0588042F33C50F7A81F368ADCB348864AC6DE5479EB1A041F9E3B04304CA38694B5A5B0A674659D6F9BD49AC964ABC4BCC532DB8CAC7A437371DB665AE4CC5B68CAD6AE475472A05F21981998CBEECA435E14C72293127A12659AAA5572042A2789A3B8FCC1D81AA1B95929BDD1A8E13192CFC700AF0E99C6A839EA71297A2A496D9045FBB9425FACC6CC5111868D48AEF176B7462B321308AB199B02CB3A6783749CA845DAAFC1C1C3BB2BA6B0F6C29BA3B428F971C750223B84A5ABAB4B77285A04E03E78D686B38990208A0FA740D01BD05B828F0D36EF5B1056183B93F8238F4AB7AAF872CB7916BD63AA6288337DABA6A5593BBE431ABE3497314F9529A9B5A7B8212C4BC23989A87419903E7B9A2962B310F865969264F2C0A0E6BD99E21C15EB717626D642FC2C6375578780EE13D05A6B3581C70B32C96E4D4178A7920F3A012D3C4C9FCD16556E5965F12AD08B294582A3F441467A3185111E53DEAC9272869671C2CB435E0B60DE5AE0A1A2A53818667500E986395A997722A626ABFA5310E4A43379C15CD3174F4F209379626EF6C4A1F076C73539F26E7C4651317C4545709BC757A92BAF5F417F6B4235A3535D5CB9A6D903D64C89B857A841EA25747F7A0D207729CBBB3CA9B32CB1A38D2AAAD124658C216533F4380ED108040559C8C92CB343C30A5B6A156903E69BA14A3B3C4E9B8C73B2C1ACFA302DB96B9C724B28E6AB1EE489867AAB84BEBC3B417048DDB0304EA8910C55BEC887E59EC336BD96947DA832B213FCF8C68D9832EE0289DFCD8B91DB20BBC81C2833C144A044E917904E9968D0D096482549C55062C0DFA6FB1415FE491051BD9A1DBE65417CA39A0A5CFC79B1A8D909123D287B1E9B7F2A683CB864D693C65BD770C54FB6C243441328C95C6EC7EE5C0802FC0973CE88AD589353A430A543738FC9A5F9EB1730C7060A8279C61527B486669E1C2995F242DE5C42DD0021858C2A3E07250FEB268BBB38FAEF7BE2C4C6CC8B5CCEC0005627874666055091283B7E522B2D96F52A60B031BC6549410AB769BDDB15717A0557561ACE7082FDC463209E63F94919BF3C33BCD012AB9321A0134C017441B578410204A5BF70C57D572C7D7A17F12A2176668A8D9E0C9C216AE9F2466B4F961CBD1256F247EE3B0B23F2AC39ED8757E8A497E161B551CAE1A2C6B88629EE4788DEF79249606195E186398F01CFA070E8B57156922AE4823468DF5C7C5F9065F38639BC77B78A4ACCE5496459346B6D07C49128F0C9A08BBD3C448B97A31255F0B6A388BC8A221009EDDA1AF9C819840C67DAAC24F54D2220058C378E8A4A23825A49A5D4B631FB3080ACAB9BE2DE3A258EA76B01C47B4D8703CD22EB78B02AA2260302192021A0FC031A6FACB03A33055F25A2BB1D6698B4A8DCA9238DD5ACD6787C8912066EACA67FDE86FB6C14687B076D19450CCF75EE328BF9DD6ABB89030AD08BB917B738024022E69A243E779355850B18A7C97F99039271F6EC47418661779C0A528D4079C5ABED21475B864078AA92F69E64F7F12B0BA661B066114F1F43EFBA89B67C05518C15537115DA0909B4A097361586C064A82B6790766944BF99176D090AA8DF599AAD37922B16A2553503AF1B4D7B90FB967AD5A637EFB019E257A6CF2AABD470157352A3196B9339715A1B254B5FF37C8A799473CAC6D0AC6A4AB56BF03271831A33EBA29AF1AE689FF54A2431B5A3F3BA83DB5A51B0492CC2C0DE31962293539278A11B408BF50C0B6D82A9764280DE4F8155201424DDC63F58AB413813FFA011EDEEB4B8B005E707880AF88392A472AD487CB6B6CBAE8787F5F8B4A5822B269E74FD91635EDE9541B5C2A5C9A6FE15722AB2BB61F225D08A84D4A9577D52617EDEC650E429A45B0397147920DE7201925913F029985C229D1044DC1895BEA961F936165CB24BC9DF884F6F49267A19B9B623FE0095EED29B0C75805BD9AA29EE857A9970533344DA99963C057337D4C25D517A341CA4BDB86C74DF0B23A56762B5838F5C68FACD1433B948824CB86D88A1560E77F4EB4A2A95E140B648DB88D +dk: 25ACA925E757A4BBA64CE712864669DD8BC9A55007B2C3510AE778DC85A877AB08EC454C61F32205E76C509B81040466BC47C9EAE77B10067C14F241C2E992A16708D1C1604B0C3F5885BD2C86B7B1E8BBD90903B0CA242AE206A6D31846973FA38B9D09402A35E45E98E84D1B125155D86E667960CC058AB25C2B053352C64BC03A78CD86D53BC298A3D586A08C1506103B301AE502176804C328AE1F24CD270AA76CC223709AB7E4B8AF3F28043F5C21B8721F8C228B7F908ACD7C4F1DE5C8939B643B22BDCC1576B65901FCC0720C622C4FA5BADFB7442CF63CCC513A8C7709D3C399469907DF740DDB3104CEB9C92C33113D258AF7EB220EB9AED0B2C1BCBA70CB9C76B840276EF11FAD35BED30CAFE633CCC4E3606F758A0F993D27F80F84473F770565B371ADF5E61689B0402D681F0D93745D625DAD286356A152F689413FB89A569CCC39E71912B3BD345AC5643725969B896328B24568428E5C651401447B490180003CFA674A5093982FA465FFE017B62BB042CC9C67C955B3123B0755430666330547C333196322843744B9213C5528585B4080265CEA0A4931D77C7D81BFE73008B37ABD62082287608ECB2CA6E50CC4C9529E32DB7BB70917A5BC3F8BDAB897E52320395749629104F3B60E27A0D3C09508E422497B7D6F711DE43C315BD83836538F88C30B7AE4A5B5B122D9394E34479D698C8B535354C25B5BE572513DD24A64985D78517AC2F3861330663C1A2AF6C135E0E49E5B930AC6A6A81A203E0A3A4BD1642A304C654681A8769C6C6AB009690A7BFF3B5B9FB64B30C2AFB9280FCF10377601B9047BC6ED0A07310091A97A8016735695EC704FD8493273B2DFD8C1A372C6B7A1A91DA08D3F2767B372A688228135F69D77D1A20CB03C69482A7B67A1E59249FD098E19BC84CEC247922A52A3EAC641F9383EA19200E16874E876AFA5C2598355F5EC01CDA86BE976A7420061C8D9A2F1E341F1378FBBF31DDFE3699DC60637138DC3A19B5FE17D27F0352743C76477363B7C72CBAA2E0F83CB53A82EEBDACF0642C5C39868CDE28F5E83A08046C38B9A1367B2B68C50869E6A9B44379AF1111133ACBF3E51738D2ACCE510A1B5F40B5D17CF5B5710C70B20A1A4734934123C2BC8B1D3714123A4159021B0688484398CA1346D0B5A9CE6AB299F439CE0B83A29261E67B905B944C8E74041431738D4272FB11254CB483907998F364235668C960AB0BE12580908093C31C37BC769BFB285451FF96155102376B8803DB777C15683B963765F2BC40B29558275864B0668F4C269F36B1D6E935C16A2B160E6B9A922080039A2946198BE02A82DFC1B86B310539502B61BC4B8DB533D939B973830EDD6382DD02AEB876ED7332954D2B0F1831953614CE6622BC91C3729F7BC6C45780974B4A40C07B5E4614C858CFCCC4C42E32CB3492F4F36546FB6ABFF9C6AD8C96B54818B3EE3545D2A2687E14C13B29248C69403A63D79A886195C630BA97AA52539C8949DEBE323F68C53EF5AB121D4AA0AC10D2A28A90B39C03187761DE728FDEB17FEF21257DB7199D665D5A5C37823ACE4830F09B3440A345C3627A136FBB416033BB0E73AD9F1B2417075D1F0C928778DEABB59C03A8813FC8BFC8B27797CAE5467C6FC934AF36922F8983E4A8B4F9BA79E2C1B7D9D2297AB273289B8A1EE2CAF8740A201A9C6F2ACCFAC8A0DDF51BDF076521E22AB196811E0834E96AB84606A1E1F018868604BA32C832FDA967CAB1C3021AA4D59A3E731242D7792729CA646D8B976370C2F93332500A9AF32684EF6B6EE7B3690B57409C4A78AC92F9E58CBCF9854B18A737114045EF72C5B808DB039126A8C22C605287292AF93B932AE153EB932CCC06CA4B8DC18AE8C0237EB1122A1C0C1C95E4A5118CE674990707AFA146B5AE620FB44A3FBEAB22649A37495825485634EAA6B7565BFAEA2493D3605D9AB5140C27FEB1350C93998CA8C5E52B14BDB9679763C20D8CA516CB8B5F089BC30E5B9DAE631D6C571AA572F40922E13E8C9488375603605C1D3505FF27033F57040B904D4B71A30098A260169B49495A1B52C76E924FDA088ACD56B90565A49BA8E0A1C66F186367AA7710157CF4A28B2223C2D034079E5ACAA88DB0E9DFB585C7773142A43535CC6083B1EFAB0A8F4A4800C492B0472295F4B65471C6170C96DBD90130867CC68369DF450214ECCA22420CE39341A321682C054719B33469BA78C5F0ACD0CF466F2A188713B5154B279E6A6BC1A91032D4948B2D521E3090E450ACBAFC250EC72B7E6DBA3FED99F22730B0588042F33C50F7A81F368ADCB348864AC6DE5479EB1A041F9E3B04304CA38694B5A5B0A674659D6F9BD49AC964ABC4BCC532DB8CAC7A437371DB665AE4CC5B68CAD6AE475472A05F21981998CBEECA435E14C72293127A12659AAA5572042A2789A3B8FCC1D81AA1B95929BDD1A8E13192CFC700AF0E99C6A839EA71297A2A496D9045FBB9425FACC6CC5111868D48AEF176B7462B321308AB199B02CB3A6783749CA845DAAFC1C1C3BB2BA6B0F6C29BA3B428F971C750223B84A5ABAB4B77285A04E03E78D686B38990208A0FA740D01BD05B828F0D36EF5B1056183B93F8238F4AB7AAF872CB7916BD63AA6288337DABA6A5593BBE431ABE3497314F9529A9B5A7B8212C4BC23989A87419903E7B9A2962B310F865969264F2C0A0E6BD99E21C15EB717626D642FC2C6375578780EE13D05A6B3581C70B32C96E4D4178A7920F3A012D3C4C9FCD16556E5965F12AD08B294582A3F441467A3185111E53DEAC9272869671C2CB435E0B60DE5AE0A1A2A53818667500E986395A997722A626ABFA5310E4A43379C15CD3174F4F209379626EF6C4A1F076C73539F26E7C4651317C4545709BC757A92BAF5F417F6B4235A3535D5CB9A6D903D64C89B857A841EA25747F7A0D207729CBBB3CA9B32CB1A38D2AAAD124658C216533F4380ED108040559C8C92CB343C30A5B6A156903E69BA14A3B3C4E9B8C73B2C1ACFA302DB96B9C724B28E6AB1EE489867AAB84BEBC3B417048DDB0304EA8910C55BEC887E59EC336BD96947DA832B213FCF8C68D9832EE0289DFCD8B91DB20BBC81C2833C144A044E917904E9968D0D096482549C55062C0DFA6FB1415FE491051BD9A1DBE65417CA39A0A5CFC79B1A8D909123D287B1E9B7F2A683CB864D693C65BD770C54FB6C243441328C95C6EC7EE5C0802FC0973CE88AD589353A430A543738FC9A5F9EB1730C7060A8279C61527B486669E1C2995F242DE5C42DD0021858C2A3E07250FEB268BBB38FAEF7BE2C4C6CC8B5CCEC0005627874666055091283B7E522B2D96F52A60B031BC6549410AB769BDDB15717A0557561ACE7082FDC463209E63F94919BF3C33BCD012AB9321A0134C017441B578410204A5BF70C57D572C7D7A17F12A2176668A8D9E0C9C216AE9F2466B4F961CBD1256F247EE3B0B23F2AC39ED8757E8A497E161B551CAE1A2C6B88629EE4788DEF79249606195E186398F01CFA070E8B57156922AE4823468DF5C7C5F9065F38639BC77B78A4ACCE5496459346B6D07C49128F0C9A08BBD3C448B97A31255F0B6A388BC8A221009EDDA1AF9C819840C67DAAC24F54D2220058C378E8A4A23825A49A5D4B631FB3080ACAB9BE2DE3A258EA76B01C47B4D8703CD22EB78B02AA2260302192021A0FC031A6FACB03A33055F25A2BB1D6698B4A8DCA9238DD5ACD6787C8912066EACA67FDE86FB6C14687B076D19450CCF75EE328BF9DD6ABB89030AD08BB917B738024022E69A243E779355850B18A7C97F99039271F6EC47418661779C0A528D4079C5ABED21475B864078AA92F69E64F7F12B0BA661B066114F1F43EFBA89B67C05518C15537115DA0909B4A097361586C064A82B6790766944BF99176D090AA8DF599AAD37922B16A2553503AF1B4D7B90FB967AD5A637EFB019E257A6CF2AABD470157352A3196B9339715A1B254B5FF37C8A799473CAC6D0AC6A4AB56BF03271831A33EBA29AF1AE689FF54A2431B5A3F3BA83DB5A51B0492CC2C0DE31962293539278A11B408BF50C0B6D82A9764280DE4F8155201424DDC63F58AB413813FFA011EDEEB4B8B005E707880AF88392A472AD487CB6B6CBAE8787F5F8B4A5822B269E74FD91635EDE9541B5C2A5C9A6FE15722AB2BB61F225D08A84D4A9577D52617EDEC650E429A45B0397147920DE7201925913F029985C229D1044DC1895BEA961F936165CB24BC9DF884F6F49267A19B9B623FE0095EED29B0C75805BD9AA29EE857A9970533344DA99963C057337D4C25D517A341CA4BDB86C74DF0B23A56762B5838F5C68FACD1433B948824CB86D88A1560E77F4EB4A2A95E140B648DB88D7456EFF3A15CD68111A12974CB06566E9007C376E09CB10D47C73E43546AB16AE94F4E83E6CAABCA9E319D40F6CE0E3691B77C92D9E3766BE9B6F4B6DF2E640E + +z: EC54F6E1E7FB12B796D0E56BE6FE3BA6EDAAB49B08712318B27D229606D2AC70 +d: 22D19527844F3CDB8A342620A96E902AC7C36E54677ADA6FE8DB08DF4EF3B36B +ek: 0E4C2891EB5497C1BEA0A62A0AE207018A2C0FAA8991D76CD14C47916853C326123A3C2997BC27A0B7073F97881EDA9CA18996779064AB768749869E66C4CA6AA58A8B155371B4729BE2327165B103393B23941FC6941A2BBC3C9D1489D6692E146B73A428241172C1EE63161C82A6666B7F5F757BEA328CE6AB45D0D87FBD007333EA927C3810A0A1790DDCC14A607D45A046E23C043CD96196659337FA940E67C565E70CD7D45511BA4C01631D43DCAD1C09833D64BE170A0681E0978D1B4F27E253BBBC5A4C2377299041333A1FA1FA0329B9B6FF24647E3B03954A85BDD637697CA834C95E1A992011D52D2719AD5FC410A780291CC575E82A2AC229BD8C6C42D4673E958ACBB6DC6EA644AAE5B10D5D90907E82614881182B127A53356A26A62C8463B26E5415C131BD72B16D2BA1175FEC0B6E59723FF7CF917968AFC91FE0698F40F55A9C730A1A493314991CD0329083B84292DB23D706755CEB4CF645A706E43512432848639AA757C61E727E8112A06B590488C4917C74041B92C1F34194A849211785C10FF71D27917D45A3B2A67966BA454A3B4829DCCC3CA8493612AB1EB554469E9950B4DB78E8D96E2352CC1AB2895FB16362143A25B3171D4C05A2AA5E5DB845220AB77EBA1166A5842436B226966988BCA3CAFC7997B0A261F97AA24C70BEC48CDDD491A1D2CFCC4455D06AA956348478580D1C70008C0B4AEA3CCFE9EA6C37A3B467652179B446F4D060B532AAB668554ABB88974BA6AF174861D52124EB9D05E60E62E11D67F34F1747951C2C6CE385BCEDF5476B882571579937F57C5C605351D12AEF9C6CD9B8BF35E95F7AC70D50C62B3E68899C39173101AC8EA326DF755BCEDA4B746BACEBE9CB8B233AFAC73075738BE4EB905D26438C5A68D8A14645462DE90783CCBB841431A452B632AD672494377CCE80974247951711A94CB907611C7E96E501EAA13BF225A041FCCFC0318CAC430C58CA043719668E59B4CAB34E2FC2ADE662C7DAD744CB5963ED6A9EF2449A000A6080C555DE2B3EA80C5AB7091DC18C4811697FF6E0A6D2D98489FB211B6B786ECB0ED793448351B80668A46ECB41FB8A642F10A0CC41A1F836303023C33B3B54BA6C2599268C433C6C0832052174739267CFD80C74C3225AC4D75CA8235108165E69F233C213B5AC547794E7CE59DC8D21D76B2CE0CECE43578FD0A1CD38200DF0C020D39563B519BC138B39D819A7A8AAF7D9C931EA75FA9B69369A7A6038B4D3937F7EFB14CE779CC1227B7732172AD10DB932531E426938D067144B6BF4F67C3DB0135573C219552719CB67ECFC07A489BB81F4A0773988E5AB3ADF7C75445868673B6D255B72AA73B32EFC015EA83010F96148A289B10101990290843CBA81E27AC58495F12CB05F5A8454E66F5B10CF0425BB6A1A8580C4C4110304C4717C84431447E510B837C8D70C8B589241592A107E6920FDF8627357C3C0D931F1F69EEEF1C3C518BFCF4305C98A86CE950FA40195F04B79C1471D0389792502C344DA14C884890898262E8292C3E5912A595D0E561CB3594FB4391BB5F4B6571969C86A8457633A5D8212393773D5D736380707BE35895948AE4AE8A672A16BE1E536549A194427C24080BDE083A63AB65240936F3FCA52DCE473EC08B765246AABD6C1F9549C0236676AA2AD234065C65672ADA92281696CD10A1AF1580A88E602ADBA75BC84B10A57072D1695BAE791E26114FCB408576516B7741D0CA9038D2C100884C417F2739930C50E408CC0A83023E6B13C236965802F62B00BFDD0032F98BBE7084AE0B5C6A26613470A8BE5B6C6BAC59B9B725C55C71E4E8A381BF88A0341943B942228FA6E3B3BB614887846F05461D632685486BC73A8E1794483125E58031DCE0A5C8E175C3B73AE08C01D2EEC8677C32F7A2B0D620ACA1D128E6B42095D8B9179369EA88B5697380B4C13552EEA86D9F8188A1C9093B794A9538EEC3A6D5F621A9D991DA6974E6A804D00A2864450C5AE59C4FFE2AEDC23AC522939D5D2204168CD8F8C59E87723DDD4809D2913F6825043EA6C7C9340A91914FBD13C65384B06B955AA221D302112C1F0802F71443FA9ACA95CB236E64886B4B0332BAF527C4AC3A9B4D8956D5FC2904911B944EC3F9FA07267342FFC4CB9CF15CEFE7325CD4C34B9A742B4214F50A50E58B9BD03C053806F0677A35438CF5EFCD8 +dk: 3E793CFC068B5ED1B1E6D8ACB44ACF89C78CFCA91603E5182B598ED7937F9CA4973DDC1FD3A5023AC5A7C5B34DDD98B3CAFC2B548C9670C18EA16C15982B8B46F74D5A56AB08A1C517FB3543F678C3A97AB45A7A0FB9BFD12AA9BDA96E695674E5A78F3BAC74E033C5A3687A27A13D889B4A36BA339AA25730DAC64C464970FCB268F20F79F055EFC06964F6679AC56EDFB065C39B475370C98C4670387B97B2FC488E567E3B6109FCF28B764890B1E8529DC3BF58851EDA97358AA7B42C872EBFD832FF17B31E2471B091C3254707FC526521B9256997369927286B332CF3657CF3EA584F46ACDC2901B98A117C86430E00474611BA4043953685449D415237BA4E63D99F92835F3BC04C575008FF02885CE26027D914C67CC7F61CBD1C492C07AB1B278B68AB37A13A9C3CCF0BB84CA18DB371C8C4415D29A47F20DB1BC18B52AE4A831DA34B4A541C0D0C9EB17CB2675845CF809709338242A29C9E6239F7797A790A00CA407CBC536A079201C1E2672E343CCE0714A5E8C446D413BAD40E569280B2C2A255481A169A43F5AA501E61914EE35C2964B295914FC4158F7D3678D9B4C3869782DF96189FAB4FD7C171CF3210B7D27E34A593A5A215A4966CF73BC1045402ED8C0E7E548363600A871A0330B81B6CE482CF33C368956E1A49B848755B910A609B77389AAB1E6CF60D75555D21B16336589B474B059813828A8925C681524D9A5FFEF972736856ED169A5E6096E430466D03598619B3709CC91CF24DD4F55AD484B081356A2241B438C37CB250CDDE46072C16454706922F35C5267614943A9155169483D82CA716327501CE7DB313C771AA197367E8E11E5092A519DB2D26FA390BD8070390294589871EBB26CFD636D3D438BB9B0055A8C99F31AFC91245650483945C2C265170D6724102B0B9D0EAAA914CA85C941A6D90668A39582C515C5EC10200C1458D53B0A5B012B4D8B27F917D151C0896C9328903C49DB6B4FBC4526722ABD17C2CDA19A3519BC781C00DF97C5642798359DB358DC153B2885AD8C4BC59E94242BCB3436460048A248CA40F8AF3BF04799B603037567C0A85D65DF17CB9C520B4B56C01DF4C26BFD39FF4D27A1984358465AF96558054A89320434910A54E80D860BC38168D7C1E0F978720CA64C57B7ADDC98B713813F7098D548631BB062B069682E30547AE8BBE394551CCA1A506ACCF37A8B052E86F03DBBFB3025482EA1B2FDC2A9A9B077024B2F0827A33E7661C199201365A840A11F3F649A4097F630B7EFB734438E83C67284E12014282804C46049AE7438352A9AFAAEA2F843A347D753972728B4AF1954248291B4AC278A8813FF5083C582FBB1B8D4D49A227A49A99FA04827265F8C9902B98B299CA4A22668096DA77F7651DF1DC723CB98DB9B921ECDA5634451BC5B94663440F35A358FD8174057A38EEC579E49209B11CCD2DE729E704749E70AD13678BFD365CA26192965076F1F3868503C450DB964EF48061159B0841A06E9A2D51FB78C6033E5A063D30D2C160526531B3BE8EC561D32857136C3E1FF757D150A7E48B876928A1D4BAB34162180E94545285865A6C6988645D1A746C6C744B196C317E6AC95163353EDC381FB7AAD5E07993BC3141A64489762F6B9041CA438F2C135FCD737503A64FE1E5592FA68587B40A7F9913DC560D1104C1A08CAD82275B4AE0838B3BAB51283078D619B77C82980569C524A50158B8F3D352F3060530E9AF6CBC9613C67110773F1A6892E3A83D30B918DE545FA48B19A797BC2A7246D29B251A46325F453EABC1B8EF795A24E488F3C269CE04C3EBC8C0CAC82DF837B4EC46AD747721695C5C18A45EBB52BE0CF608AA08A759F236BC59357387006968C913E97856810DBF266E16F46DB5585D8DC6510A954D3C090B4283318633609A7B3625C54EFC975A127C625AD768F1C03D57584B7D2012E680CCB4EB7A1C822E4BC3182D0483A6D894AA77AC35795717674EB0FACAA0B9C172DB95D257058E7A31B7F6951A3ACB8AA531EE9516C097AE8981671E2381BB523388082D2B07CC9B576401A5C195C05FD1C0849D02869B2834772A1EE6776EE66A970CE2B9021193D13C2642A2A3271C093DC858424115B9C1628AFC31BCF7AE18783602813012750A4CCABB1E609C2A649E0E4C2891EB5497C1BEA0A62A0AE207018A2C0FAA8991D76CD14C47916853C326123A3C2997BC27A0B7073F97881EDA9CA18996779064AB768749869E66C4CA6AA58A8B155371B4729BE2327165B103393B23941FC6941A2BBC3C9D1489D6692E146B73A428241172C1EE63161C82A6666B7F5F757BEA328CE6AB45D0D87FBD007333EA927C3810A0A1790DDCC14A607D45A046E23C043CD96196659337FA940E67C565E70CD7D45511BA4C01631D43DCAD1C09833D64BE170A0681E0978D1B4F27E253BBBC5A4C2377299041333A1FA1FA0329B9B6FF24647E3B03954A85BDD637697CA834C95E1A992011D52D2719AD5FC410A780291CC575E82A2AC229BD8C6C42D4673E958ACBB6DC6EA644AAE5B10D5D90907E82614881182B127A53356A26A62C8463B26E5415C131BD72B16D2BA1175FEC0B6E59723FF7CF917968AFC91FE0698F40F55A9C730A1A493314991CD0329083B84292DB23D706755CEB4CF645A706E43512432848639AA757C61E727E8112A06B590488C4917C74041B92C1F34194A849211785C10FF71D27917D45A3B2A67966BA454A3B4829DCCC3CA8493612AB1EB554469E9950B4DB78E8D96E2352CC1AB2895FB16362143A25B3171D4C05A2AA5E5DB845220AB77EBA1166A5842436B226966988BCA3CAFC7997B0A261F97AA24C70BEC48CDDD491A1D2CFCC4455D06AA956348478580D1C70008C0B4AEA3CCFE9EA6C37A3B467652179B446F4D060B532AAB668554ABB88974BA6AF174861D52124EB9D05E60E62E11D67F34F1747951C2C6CE385BCEDF5476B882571579937F57C5C605351D12AEF9C6CD9B8BF35E95F7AC70D50C62B3E68899C39173101AC8EA326DF755BCEDA4B746BACEBE9CB8B233AFAC73075738BE4EB905D26438C5A68D8A14645462DE90783CCBB841431A452B632AD672494377CCE80974247951711A94CB907611C7E96E501EAA13BF225A041FCCFC0318CAC430C58CA043719668E59B4CAB34E2FC2ADE662C7DAD744CB5963ED6A9EF2449A000A6080C555DE2B3EA80C5AB7091DC18C4811697FF6E0A6D2D98489FB211B6B786ECB0ED793448351B80668A46ECB41FB8A642F10A0CC41A1F836303023C33B3B54BA6C2599268C433C6C0832052174739267CFD80C74C3225AC4D75CA8235108165E69F233C213B5AC547794E7CE59DC8D21D76B2CE0CECE43578FD0A1CD38200DF0C020D39563B519BC138B39D819A7A8AAF7D9C931EA75FA9B69369A7A6038B4D3937F7EFB14CE779CC1227B7732172AD10DB932531E426938D067144B6BF4F67C3DB0135573C219552719CB67ECFC07A489BB81F4A0773988E5AB3ADF7C75445868673B6D255B72AA73B32EFC015EA83010F96148A289B10101990290843CBA81E27AC58495F12CB05F5A8454E66F5B10CF0425BB6A1A8580C4C4110304C4717C84431447E510B837C8D70C8B589241592A107E6920FDF8627357C3C0D931F1F69EEEF1C3C518BFCF4305C98A86CE950FA40195F04B79C1471D0389792502C344DA14C884890898262E8292C3E5912A595D0E561CB3594FB4391BB5F4B6571969C86A8457633A5D8212393773D5D736380707BE35895948AE4AE8A672A16BE1E536549A194427C24080BDE083A63AB65240936F3FCA52DCE473EC08B765246AABD6C1F9549C0236676AA2AD234065C65672ADA92281696CD10A1AF1580A88E602ADBA75BC84B10A57072D1695BAE791E26114FCB408576516B7741D0CA9038D2C100884C417F2739930C50E408CC0A83023E6B13C236965802F62B00BFDD0032F98BBE7084AE0B5C6A26613470A8BE5B6C6BAC59B9B725C55C71E4E8A381BF88A0341943B942228FA6E3B3BB614887846F05461D632685486BC73A8E1794483125E58031DCE0A5C8E175C3B73AE08C01D2EEC8677C32F7A2B0D620ACA1D128E6B42095D8B9179369EA88B5697380B4C13552EEA86D9F8188A1C9093B794A9538EEC3A6D5F621A9D991DA6974E6A804D00A2864450C5AE59C4FFE2AEDC23AC522939D5D2204168CD8F8C59E87723DDD4809D2913F6825043EA6C7C9340A91914FBD13C65384B06B955AA221D302112C1F0802F71443FA9ACA95CB236E64886B4B0332BAF527C4AC3A9B4D8956D5FC2904911B944EC3F9FA07267342FFC4CB9CF15CEFE7325CD4C34B9A742B4214F50A50E58B9BD03C053806F0677A35438CF5EFCD8CC8CB55EEE0FF5BA0F84F958550BE099B0E692A35E0908A5FD21A36B521C0F1EEC54F6E1E7FB12B796D0E56BE6FE3BA6EDAAB49B08712318B27D229606D2AC70 + +z: 5B78F8D30AADB59FA617EF807D5C23113A9908342F08E898E02991CA1D7B934D +d: A00D1EE4147DD57B5E76C58A928DED0B720FB2FB6353780B380B5FBC76712E5C +ek: B3C014D82BC4BFA186D2E2A4FCFB57E2205FE91195E1ACAA18A3699D1BA700770482C18160082946D85BE262136B7B1F5BBC00D4D20A1351C66966CE3C1A06EBF35A43036A5498424C73BA01C250C61399CE951AF176C96F317B0A23395164075A23A6D6A55916F5032310B5E28B1B970C3AB75B4058C86DD9A73ACE89B9F5A272A86B433AEB9AD755B166105AE0095645910E0AD6045C075B82596140213DCD231C03D0786C186C95342C01265B03A2A113374307B49062727C82F2CBA44862C7691703374AD76B772DA400C283A1AAE348EDA9582B9B42196216A8218305309C367648F58785B74A9E4DC068318BCE4CA87000DC86ECC52F2D465762A58BCCBA755E7A881AE5704C643278E784E646C48AFC3F240A728C4A6D2B6523EA3499C9344294293497D3A4A3E2373BD2CB48B0575DA052253693D1DB696DA0057B2243525AAB17770D61D09D0F3554D10AA7A56B6CB9A81F59EC73A1FB9A08D7BB08D90F70117A2988409B870AA2F82447E14DE7B3C16503CE645BA54EE5C6E71909642A3F76620AE0D479A6440AA5E457A946A884D0C741A2C7F27C9EA9E716EE1C01154120E777930E991C63E0A3134B030A8A0E220758C074484FC7019C5AAC212246F990C41A5B5E468888A5280A23057CA0B23947F332213A86910912C090421D4A008CC219C9C571AB09A9C59C248FE71A2C928D83E6C4DD5929D4D1B8F0CA98F4608F89EA1D59F063D827123026C7EC093A6360590BF54BA041C2C21473DD89314321B334680CE65B5737857D5FB557F1967075C9889266298F332A19C5888A3497F0580B8BE1AB4F7A300F6248B4D99431E4B9CF163E9B969FD7B664AC8248789C2866D05D01C579B491BC50C8099C30A0E6076800B00CB27929ECC8C9B7C44B32781070188B747C6EC1997017E8435035CAC06B2E74D54EC8B64E2A9B9BD6351604D3875C394C183B4B7D362866C96A78569A9E88C2D8767FE0CC0C55C506E5A50B1FB9CC18910D9F22648681CA8C66529EB3665E08BDDD725146C343BD7B9E51D37F57B602E012A1096793931097228A1536715923CA93D8C41816E04FA27A16F6EB50BDEC8A26D99FCC1901938B7475731DAF85C2058832315B93E9DA81B415B707F95EDC44BAD6AC3016E4A16E787E3FC59DF904AC385ACF28EBA6EE61188883CC72E9B298F02D2D49CEE59B6DED348038C7055202B47CBC0B40774BA78CAE78079B9E8A9392CBB57CE4400E9214C3784BCCF94151D510B182403D990C2F8C984B6AAA3AFC21F9F6711EF91EEB008482845FDF60BB5917720EC9C774943E04A7A5FAF161ED557701BC26717ACB2CC059E1308E2AA76D04919B30A70CC698402FA58D927C8A02773815A144128C5BD183A38C3182BCF19DB7A3158B9393C767926F5737B6B60EDDC01FE8930ADC2C4414146A9968311C0B367647911F4AAA4443AD0648C634828C62C0BA01C161162B5EEAA78CAA9A1425F55950EAAF71841250008FE1CA3B8F8421FB4438E65AAC914AAADCB45FE303CD9165CF867A7E9304CABF0B3E1DA63A5FCB56F03753D7074525425131D555B5E583B303B6616AB6EFB68CD5994E9296608700BD3239B03AA6A662FC354E2A49314B63D9E1801EA5127FE653E459B90E94C039D812DC031D536C400A2A70B860A9AED7BCC286182933C62F7C1E73B615F1525F6A165DFD4461AE0B856B298B96CB6756AA2255949255E6C95C12A969A698D37B6FC8B7B16BF1AAA1734DCFE1160D319B25236F591C7CFC8A08FBA48B42586F3371B0AB061C92F9C0E3E350DE5941C9F380D876480C2623F526111D676AB33ACA5D66185655A94E13418576B632DB8A0D3830738C44AF9C979514254ED8C82E34AE5DD6458E2039690B8492C353E2F0937887088B4786BAE016104648C0544482C562E0D2AADE390DC03765C7C1353634B83AB66AC7E1306378B5032B3148BB799E8B4907188EFA993FE72C73E3162F2DA43F0EC7C2F1C162EFFB5659A947A3AC6203B1C825125023926115605CA1909D912A0108C0115FD75D967BACF32B656EA64BB1808D1C1B43E8D7BE02EB6432D89B59F9A3FD109AEA36ACED2A137214BDD8686D977A68A6E4B6ED6C916A8594CFA3700AF608CB6A91AF150077D5A40EA4471AC19A7177B1E6A6BBD8A357F416BA8935AE73829A5B035B79AE8D108ED5D05A089242ECDBE94664DA47F187D3D493AC23E7 +dk: 91200CC986B3575202DB535E04BC2E37A499076781ECFC2E5CB0259BE2A5618C1CED22128D194B0BF4397D6AB0E2F30F6AB23260BCCA10507CA7015C80D9409B4BC06DABC661D3A653208A505136926A554CE331E4B692105044DB060576C1C36A726C0E1379C463CFF2183166052813A6BC4B93365F2798825387209C8C53A1C2DE453887B20061E71245CA6C1C27809242C14215924FDB901EA035AAC45EB29B518D0477F5D8CCB7D39E16239EB0A5254F6380F328C1ACFBCDE08310804195B944AE8D98BC1D75325E062973D84C5AD958C14076720C4876A5B903E80DDFC7BD66E1B55356B896263FC3451E2A865212CA3B9C510FF0CA4865B6C1F2791C1A77A67336A429C9569AFABF535888D1075ED2B1A31CA78B9E3353020800FC18C1D47CA6C326529A375FDA667C06134986B891DCBA7F6AAC901768A156270A6E46490B33378EE75648BC4DCB1451A2212931F2096CD8500F23817975C25FDC164F41CB5D8A3613EC993A57711585BDE822B519683F8C9CB95ED701D6905F20A46E29C0C90C448B42742FD1BA05BFF590D2D97317C2473688A4B6AC63CC1CA28AD71FB7C5252C42534D27AF11D5947E1AB196CB2AFBCB41E0A8C50AE274D8CA1971B605520503E9C17AB6F41232FA9130BC951DC031A66A02A663756ADC7C15BC513ABC1592CCBCA9F5CD3AB29B2305B32D98C877217A1B92321930B34A096641070428B65FF4108A36C998E895375640B57788A72302931DB058ECB52F4D7A0623D74AC223C4ED6024515A364D280EE056760CB451280772AA0CADD1E0333AEAAB5357479D01696DE52AE2C8B71705706BF15C05064CA434280D4C8CAC411B0A390C6D6BBDF5E684BE3B850D3A83BC31C5C823604E533242E80DB57B2598CCAB30E53282F140C9897C85EA7BC9FC378761BDAB629E46336B714C0189E214EDB254512AAC558541D30CADEBB9665A1914A9D001F43504A0E0A566B311E746379F56558A760618C753A57B6B1A4251090795466A178A39904268A10F2451484C6B11C037953817AB156EF7383878B1BC38790CABEB4991EB2768A83F580945D46C49A8C0CA26BB99F72C40B73439253180DEE2A425C54C23FC6718A40611455BF4652F8CD91067B42131EC03CC5C0B59EBC5FF30B097D764306CB692ABB95D192CE44B1C0E981162F73997148DF270630AB6B37129813599239AFB46CDAA40CE472310EA67C2E0BA18765D34EC9FBFB82CBDB4BB6797B849BC778C9710BCD0BB2C611990B3232AAA4D1B898371738AAB9375813913DBD178A4CA2EEE4A8D09E72EDE6189272B1EF503AC8302A63396798FE5731C223E53E90EBA3805D1F8A65DF168C71408682C2790A167557A15E697A72CD2CB613B7371838EC85BBFB510B3344C3B61664BAA8B90079C30181ACBA83AB049808CE6421DB67393865C43D43C3825281492AA68413BA560B123E2140DC114060F93101CC08C63D848B172010C56C2F5377AB4B4A31CBCB265FA607F504147C0009EF812788A7EC53514460A8C8225A664348A5347291B73B423C8385CDCCD34A277913841F2C2434F2A34A2EB02B7270274E4AFB3F19933402E1A340D8A8B6F50EC4930086D462A85C9AA80950711C092BA7135A45CE30B37FBB21C574C6A1263D0554AADF36D9A6567716B914F41617047973D54C3F573805CD38170F004BD014989D33D939132A39B44D49345B857792B241B0A870396D95CCA133E7A7001579930DF70C201A71951E11257356129255A044678BDFCA5A7FC32001167155659F41B4022A9B15B37A197FC7C567CA63D74B4E9D286100861658139A98C868EBC9207237A5E4BC26EA867DA305A3C3A36083C9F79523B45F53B8FD40591304836B8520B227905413FBCAB24B22A7D1334452045AF354A4690455144390A381C1172C18D865C86B159AC944906F298A00571B61420BAA7E67787AC2256EC7217FB0C00C48960165CA6E4416059A4CAC2CA9535C8DD2265387B1E18950A7C917EC73AAD76A753E0D4A285B19089E264B6A53A35AC523FA955A4B48FCA59344503B12675B6C6C99593EC996DD9C456D842054A52DDE1106E89A30B5732FBF5C88BA98833A26FB47350D0509B17E8BA76878C2FB485B7CB5E7B4C73F6929FE09B54A09454A7145A4A812C26240EBF4126B3C014D82BC4BFA186D2E2A4FCFB57E2205FE91195E1ACAA18A3699D1BA700770482C18160082946D85BE262136B7B1F5BBC00D4D20A1351C66966CE3C1A06EBF35A43036A5498424C73BA01C250C61399CE951AF176C96F317B0A23395164075A23A6D6A55916F5032310B5E28B1B970C3AB75B4058C86DD9A73ACE89B9F5A272A86B433AEB9AD755B166105AE0095645910E0AD6045C075B82596140213DCD231C03D0786C186C95342C01265B03A2A113374307B49062727C82F2CBA44862C7691703374AD76B772DA400C283A1AAE348EDA9582B9B42196216A8218305309C367648F58785B74A9E4DC068318BCE4CA87000DC86ECC52F2D465762A58BCCBA755E7A881AE5704C643278E784E646C48AFC3F240A728C4A6D2B6523EA3499C9344294293497D3A4A3E2373BD2CB48B0575DA052253693D1DB696DA0057B2243525AAB17770D61D09D0F3554D10AA7A56B6CB9A81F59EC73A1FB9A08D7BB08D90F70117A2988409B870AA2F82447E14DE7B3C16503CE645BA54EE5C6E71909642A3F76620AE0D479A6440AA5E457A946A884D0C741A2C7F27C9EA9E716EE1C01154120E777930E991C63E0A3134B030A8A0E220758C074484FC7019C5AAC212246F990C41A5B5E468888A5280A23057CA0B23947F332213A86910912C090421D4A008CC219C9C571AB09A9C59C248FE71A2C928D83E6C4DD5929D4D1B8F0CA98F4608F89EA1D59F063D827123026C7EC093A6360590BF54BA041C2C21473DD89314321B334680CE65B5737857D5FB557F1967075C9889266298F332A19C5888A3497F0580B8BE1AB4F7A300F6248B4D99431E4B9CF163E9B969FD7B664AC8248789C2866D05D01C579B491BC50C8099C30A0E6076800B00CB27929ECC8C9B7C44B32781070188B747C6EC1997017E8435035CAC06B2E74D54EC8B64E2A9B9BD6351604D3875C394C183B4B7D362866C96A78569A9E88C2D8767FE0CC0C55C506E5A50B1FB9CC18910D9F22648681CA8C66529EB3665E08BDDD725146C343BD7B9E51D37F57B602E012A1096793931097228A1536715923CA93D8C41816E04FA27A16F6EB50BDEC8A26D99FCC1901938B7475731DAF85C2058832315B93E9DA81B415B707F95EDC44BAD6AC3016E4A16E787E3FC59DF904AC385ACF28EBA6EE61188883CC72E9B298F02D2D49CEE59B6DED348038C7055202B47CBC0B40774BA78CAE78079B9E8A9392CBB57CE4400E9214C3784BCCF94151D510B182403D990C2F8C984B6AAA3AFC21F9F6711EF91EEB008482845FDF60BB5917720EC9C774943E04A7A5FAF161ED557701BC26717ACB2CC059E1308E2AA76D04919B30A70CC698402FA58D927C8A02773815A144128C5BD183A38C3182BCF19DB7A3158B9393C767926F5737B6B60EDDC01FE8930ADC2C4414146A9968311C0B367647911F4AAA4443AD0648C634828C62C0BA01C161162B5EEAA78CAA9A1425F55950EAAF71841250008FE1CA3B8F8421FB4438E65AAC914AAADCB45FE303CD9165CF867A7E9304CABF0B3E1DA63A5FCB56F03753D7074525425131D555B5E583B303B6616AB6EFB68CD5994E9296608700BD3239B03AA6A662FC354E2A49314B63D9E1801EA5127FE653E459B90E94C039D812DC031D536C400A2A70B860A9AED7BCC286182933C62F7C1E73B615F1525F6A165DFD4461AE0B856B298B96CB6756AA2255949255E6C95C12A969A698D37B6FC8B7B16BF1AAA1734DCFE1160D319B25236F591C7CFC8A08FBA48B42586F3371B0AB061C92F9C0E3E350DE5941C9F380D876480C2623F526111D676AB33ACA5D66185655A94E13418576B632DB8A0D3830738C44AF9C979514254ED8C82E34AE5DD6458E2039690B8492C353E2F0937887088B4786BAE016104648C0544482C562E0D2AADE390DC03765C7C1353634B83AB66AC7E1306378B5032B3148BB799E8B4907188EFA993FE72C73E3162F2DA43F0EC7C2F1C162EFFB5659A947A3AC6203B1C825125023926115605CA1909D912A0108C0115FD75D967BACF32B656EA64BB1808D1C1B43E8D7BE02EB6432D89B59F9A3FD109AEA36ACED2A137214BDD8686D977A68A6E4B6ED6C916A8594CFA3700AF608CB6A91AF150077D5A40EA4471AC19A7177B1E6A6BBD8A357F416BA8935AE73829A5B035B79AE8D108ED5D05A089242ECDBE94664DA47F187D3D493AC23E7DE32CCA3941492845F6502143FBF02028F22B12F1ABADF29BD12458E5B698A875B78F8D30AADB59FA617EF807D5C23113A9908342F08E898E02991CA1D7B934D + +z: 384509DB0E97D4689A3CED953CFBFFA9D3B3B87CCB0C6A360FC0DF3CBCA399F9 +d: 2C34B1476753095D0C8A48A00136F358A98D1416E5069CBA4540C6E26FA3634D +ek: 6A04C9598C985A554021C437246C8E1DB67F69B6092F7A18BA3309245480FEA533B478726E4C761568A00DECB368F104B1E908F1E9BE85022D6998581428881C6C1B06A89141831DCEC1A139303FBFD04174F06E81D09DA38251ABC33C32422917EA165FE821793BB13D553EADD9AE86C750A7C307AC6467F117B778ACA8E1CB8360152388EC20742011FA66C786675AA4813C8CD58EA2FC9ADBC4AECE94C1193B1799306D6DE532EB32928BD5957484B6E38272172B902AFCC4207958A433058280713FF055A9FB0FE6A3C79564A75C32AF13B4338CE1ADCC5825E9475C66201B8E6393D493001C29A44BB20326DB06983BCBA96805EF0573DAB1A506C33150A974EC96462473CA7AC7066F374A131854EF01A99A30770B0B508CDCB2B5D2B5F2208005378AD0935243EA61C8D876A1602CC047871425CF33BC22E07A94C71737BE251E75F85594F523B4CB241E97AC0306B8663075B8B18ECE09332991C774E225D7722DC1E87052E19293F8B802E7366A3C76D388351B63A11AF5703B4862699124E574B0117788DD89C8D7D2BC34806DCD183F28784E54B2725EDC9A797B1A9F110C0C91154BC927B06C77335A07E372B5C10C4DC8C5BD80EC79BB68AEAF8BAC1C583D4055C5EC4592462C60165C636F2A5FC3F9A0035B0094755AEEC7B076A7C84F8C3DA994C9C2C10C1E17CE56943933D733944753DF2546342890BAF305BA3B08628727BBF492F7123CA6DB9E067A02A7FC20B9138E5011A9E08116E77382C9AA594BE18470D0B9B3CA82FC652398A3B7466065732030F8622AFB4C29A88B1F8539976902AE18C9C0EF10780D8B405EBB37D873C6FE4534B8AC444D8A7817F6CE0C36B8C53AC03328B8D4B30DDA4111A7749B6476516B56147B3B9841E29D20520EAFC9247D9C6171A1165C971941A06CE6F58EC0A5B4FCF21CA78857BD6B2F0706BE3F568E380C24E537C31D74B0202014A24321AEE877B7E457FB669903A30D39AC9188239BA29157ACC82AE671C75887C0F1C9AC11DA5974E438EFA438467755EDB0C949536274DA3989972356A845811273E5308DDD4A3774047E7F347330133322521586635622937867DC549E058AC1D65BCAA8C6DED93C52FC329DD038DD244428EC602D0B11D5707AEA029328B61BFDE51B4EE3BA4CA8561031BD939ACBC70276A309D028A7674C736668D1735EF83B555689DD5790852916F450812F0A809C183A4BD2AA79B74FFEB232F3D67EBD0B3F97037ED8EA8A7C6CCAA4D300F3E01F2B8661AAC39FAFA78197A2482ED4745C56C757A692B1900D7DF921D6C35580F9882CFA294DFA0DBFC29BA21C9F648515EB2A81D2BB0F75941C1C1C6541D949A5454D96FB486C79B11BD9B56F45651B3567C75A261CB5C0B077352486C37715CA8D4CB727B167567BC58A530543047C1FA2459F87C837623C5B2939FC53AABCD5B1B8271A67C95B3E33C2D9922836A25BD1E61692BB36FF87229779AB75A883B26CB6B27553FB5782DC3C62D70C4AEFE86A3A36934770834142398187983D766BDE4916EB76852D74010E221460C4C5FEC132AA77B618AA0F81EC6A8E83BE7BE37239F1CEDD206EB8961F0D2AA3FFCB272A0785A36537240274C9993C4904A731995A3019CF6133C714185A449376565A65B5C2B1DEC8896C1BC46A1575CDF80958F2B96329791C208F51B4A8F41A8356000E0F1C51EC584ACE4434BF0035B5127478C11D659B842CAC49AE873F8192659A5735F87B7517B118748A74B8020D2823A25952CA3F43C7D3614741E054DC0B5E5AC11C8FE15E7F908A7B64B3016A39218134FB3092E7482E7399310709BE369CA383E95AD08718CFBA21F9DBCC8E0600DAD2C39B368A24E79DB0DB02395949CAE835AEE683C4A6AA6024B3109C18DC2BBAD65BBDAA52ABA6D9487EE3194579494B2441177019C0BCB78F8A2FCF7BA875548C1C3603AE3A874D2454C11074047310D136AB4EAA348F05B4662989CC6896DAAA24A94154CDBB30FB5023A37779B1E29F71A841830274B733ACAEA69D84FBAD4F138861FBC35F0545489AC8342A4F6F8C584A8442447062D35BAF44B3C92A38CE11A173FD5A3D8D6B24BB390ACE212E41042E75D50E318C6FB037AFCCB2B069E2BA66AC1233D53031279ABA1683AE42A745D0002805374165EAB94A17EF6881F0BA9392CEAC27250E82622E6F40D3810AE40CFF1F8496 +dk: BC00ADC7652EA7DCA970F2C234A87D9C3340EF2994A79A71B7200F9168CF76D9A301B85A01E6AE69D8959533A53F4890378067A6068C2C8201D373BA49C69FE6EB1716FB6BFAA4ABCC071B191515ECB758EE859D40A12429DA703052947F4097E7E40180477C01B62944CC2CB7E63952921E1EBBC800E1A7385B01E528548A31B0BBD0A5B0641E9160C36236CB58A36555D88AF118C35EDA2276B38D5A8C0C091795C1254D69AB5D4DD309E376BDD7E4A3E1333B3FFA378FDA8E62525201F9458F53443A255ED79B71102A2F3EC347166CAB38361B3E668BEE7588AEEACB5436B1F8E360F1D73999E290BC25C036ABAD878890C54BC8DBB863F8E23E5323ABDB004141C9C3C0963B7FFB7EDBCB545114A61A6B58F8487A07F388F4F5C00E9CABD425B7BEAA2B9947A0482A21572B48E65C8FCDBA214C0204E246CC3EAA069DD42DAF7285ABB55DAB8B2A016805A1C17D46C131ABD4483BAC6B5CB8C36A810DDD100E4A66A58209CA60877E40E2BF58E37BE97C8122D7097ED173FB272AADEA18EF91120405435365BF670C17B99068226597DDD7C4A6A16F844616C885666AB482B7858FA31405B86789CDA046D6561E997689C0D0A461E776C7313E811AC02D1BA8A95038B12430748644D0B933C9E35F685229D97BC810B3203C874673D18E8E0131FBD368C47466A9882F4A41473166C2E240A82D36B983273208EC4008231773D57FC9D4330703565CA8759E7CA9E64130BC5493C9F52C93AB4A7B3754B0F55EE9779CD08B2BFAD71899B75CD274ACA7C2BA9575AE56DCADFF13A6E6C5266BB7AD0D8BB820660023E9BE0FF759202CCEDFD7C3F2048D6B345CAA1C82D479A4D4E2C48A1818DA022435BC3D64B38C811B0BCFC147FAA505AF13740B78945F973BFD2A21A6A040B65214F934154E722D7F195877C5476EE615344462C2A95744956DCB5B2657F27DC2C6AC14E92E8404082D8A0EB6E488F2E56FD0292FDE931057D534051700AD0CA85ACBB5C6C02077DA856931899BE82CFA0A794AD1182CD3AB5E5188C357C3A2D9BD130A62223293DD249E477271C9E14AC48017D013A1435A5976C4165E8932CA032493B33814F90830A5AD75E32F747B94B4C52BF5EB30F73C02BCEC5903BA01F99ACF8B9ABB671B8D219C029BA1A2A6E847E86091C08C00B3914DF8D075C3913C805104A3B4BBC798B9F1D20AFB8118B7F26C32633B39FC792B3358606054BE3693A6E7B9C6B6B3A848A2D0B2ACD1C406706CB590B4B79B82BB88415CFF45376B8102B644193FA1890040127B58BB351862F3227AF18A50A9A983387A8646C99860BA2373337FDDF25CF8916E00252AD07516D1BC5629245EB341B1ED4B63F93044B131C01E301E8FBA5DE8AABA76F70F7D2A3ED4F78AD5210B47D8756E334D32CAAD88C22DBC537FB766447B09A05F1685C24A80F8C3A3202790B277A6CDC836767793D81955BC90A3DB3B71BD8C2FF01A12A59541A666202CA98689528DF9179A26156A6A414BB8DB350393B6B0F35DC163CBA4C94242A33C9778BB35563A8D213A9914225A0C6876B75035201DD14048DE28AF97D77260476DC399B37DBB48F3C943F3C990ABA7068D4299F7D289C6D66D4243570AF38D8FE95384B27E6B0C01258262CD0465F5FB5F424CBC9C39CF5948804F7034C632CB8A7B4ABC3095B174951C42364B05396E140524B989A889CDCFCA4F222830A98B041338A0273478E3661A5D44214A52A54EC65E933011EB7148EAB94E58EC1C9CB9A0E61C788880B15413B8365A929342B667005D6A35BEC272955F5CBB633798094A0DD84A09B6A04B16BA9D1C005D6B1708CD4300D26B506748CB7B4CCFB59818FFFCAC2A141ABCC1AB85BBA36C69608CCA475BDB61A56BA2FD6B2F75F502FCBA8AE05B11B73A381A810681EB0B1F446007267F7C12526BC3B430CB4BBED0694C290B0EB238056B5C64C1AA072C97F7173647BCBEB75965BD71C0747503929ACA0FD98EFE45C744A4B5BCC748616A8B24C5BDA4F0B9FCD42767420971A00F32415976B5A4DE31C03B10858CF1995B7B8526FC352A0C99A57095EEE0B8E7E40364587623B00B1799C807289DCFAB746B06C3E2912A6D3778FFFA8C1B43A39A433708817E7058C03698268E9275BCF21FB73052874307FE56CC8A384E6A04C9598C985A554021C437246C8E1DB67F69B6092F7A18BA3309245480FEA533B478726E4C761568A00DECB368F104B1E908F1E9BE85022D6998581428881C6C1B06A89141831DCEC1A139303FBFD04174F06E81D09DA38251ABC33C32422917EA165FE821793BB13D553EADD9AE86C750A7C307AC6467F117B778ACA8E1CB8360152388EC20742011FA66C786675AA4813C8CD58EA2FC9ADBC4AECE94C1193B1799306D6DE532EB32928BD5957484B6E38272172B902AFCC4207958A433058280713FF055A9FB0FE6A3C79564A75C32AF13B4338CE1ADCC5825E9475C66201B8E6393D493001C29A44BB20326DB06983BCBA96805EF0573DAB1A506C33150A974EC96462473CA7AC7066F374A131854EF01A99A30770B0B508CDCB2B5D2B5F2208005378AD0935243EA61C8D876A1602CC047871425CF33BC22E07A94C71737BE251E75F85594F523B4CB241E97AC0306B8663075B8B18ECE09332991C774E225D7722DC1E87052E19293F8B802E7366A3C76D388351B63A11AF5703B4862699124E574B0117788DD89C8D7D2BC34806DCD183F28784E54B2725EDC9A797B1A9F110C0C91154BC927B06C77335A07E372B5C10C4DC8C5BD80EC79BB68AEAF8BAC1C583D4055C5EC4592462C60165C636F2A5FC3F9A0035B0094755AEEC7B076A7C84F8C3DA994C9C2C10C1E17CE56943933D733944753DF2546342890BAF305BA3B08628727BBF492F7123CA6DB9E067A02A7FC20B9138E5011A9E08116E77382C9AA594BE18470D0B9B3CA82FC652398A3B7466065732030F8622AFB4C29A88B1F8539976902AE18C9C0EF10780D8B405EBB37D873C6FE4534B8AC444D8A7817F6CE0C36B8C53AC03328B8D4B30DDA4111A7749B6476516B56147B3B9841E29D20520EAFC9247D9C6171A1165C971941A06CE6F58EC0A5B4FCF21CA78857BD6B2F0706BE3F568E380C24E537C31D74B0202014A24321AEE877B7E457FB669903A30D39AC9188239BA29157ACC82AE671C75887C0F1C9AC11DA5974E438EFA438467755EDB0C949536274DA3989972356A845811273E5308DDD4A3774047E7F347330133322521586635622937867DC549E058AC1D65BCAA8C6DED93C52FC329DD038DD244428EC602D0B11D5707AEA029328B61BFDE51B4EE3BA4CA8561031BD939ACBC70276A309D028A7674C736668D1735EF83B555689DD5790852916F450812F0A809C183A4BD2AA79B74FFEB232F3D67EBD0B3F97037ED8EA8A7C6CCAA4D300F3E01F2B8661AAC39FAFA78197A2482ED4745C56C757A692B1900D7DF921D6C35580F9882CFA294DFA0DBFC29BA21C9F648515EB2A81D2BB0F75941C1C1C6541D949A5454D96FB486C79B11BD9B56F45651B3567C75A261CB5C0B077352486C37715CA8D4CB727B167567BC58A530543047C1FA2459F87C837623C5B2939FC53AABCD5B1B8271A67C95B3E33C2D9922836A25BD1E61692BB36FF87229779AB75A883B26CB6B27553FB5782DC3C62D70C4AEFE86A3A36934770834142398187983D766BDE4916EB76852D74010E221460C4C5FEC132AA77B618AA0F81EC6A8E83BE7BE37239F1CEDD206EB8961F0D2AA3FFCB272A0785A36537240274C9993C4904A731995A3019CF6133C714185A449376565A65B5C2B1DEC8896C1BC46A1575CDF80958F2B96329791C208F51B4A8F41A8356000E0F1C51EC584ACE4434BF0035B5127478C11D659B842CAC49AE873F8192659A5735F87B7517B118748A74B8020D2823A25952CA3F43C7D3614741E054DC0B5E5AC11C8FE15E7F908A7B64B3016A39218134FB3092E7482E7399310709BE369CA383E95AD08718CFBA21F9DBCC8E0600DAD2C39B368A24E79DB0DB02395949CAE835AEE683C4A6AA6024B3109C18DC2BBAD65BBDAA52ABA6D9487EE3194579494B2441177019C0BCB78F8A2FCF7BA875548C1C3603AE3A874D2454C11074047310D136AB4EAA348F05B4662989CC6896DAAA24A94154CDBB30FB5023A37779B1E29F71A841830274B733ACAEA69D84FBAD4F138861FBC35F0545489AC8342A4F6F8C584A8442447062D35BAF44B3C92A38CE11A173FD5A3D8D6B24BB390ACE212E41042E75D50E318C6FB037AFCCB2B069E2BA66AC1233D53031279ABA1683AE42A745D0002805374165EAB94A17EF6881F0BA9392CEAC27250E82622E6F40D3810AE40CFF1F84963DA07CBAFFA3C26C86115A24F33F1FAF547933AD64AFA40EF5F0DB03D53B340E384509DB0E97D4689A3CED953CFBFFA9D3B3B87CCB0C6A360FC0DF3CBCA399F9 + +z: 63DAD9B127F98E72A3C65ACF4B172FDBD9B9C39F24F728D1F40EB02C9949419D +d: F742E7B69E27A57A43E1034CEB5834CAD57C380ABE259F432F96FAAF27F981A9 +ek: 0C25AFFB80C5BC12C3CA5357097716E75B025C298F040C5AB8C92F93A08A91953277A7CAAA1776440C9E3A5C819D7B9BD58AC0A53C83D9635D3A882C36CC3E48959D01E67A4E363273F05504274BC144C5D4B4774FC98638895EF894A78113362EC428E0314FD5119C40811D22313D42362176E001616901952C1100C59E33428EDF13C68086571E8A65D042556A6A3B18582F79B443EE22B53631C02FC03FA6CA4BF4BB0B8B97410443C0A3CC958AD42BEDB3118254C19752AA70076FF8F312E50433884A72F287266BB83A417134CED7C66EEC3A9C90043044B61C795CA69B8EFEEC56D808610EF5B6FF764A59D308E60B64B577CA70487D340BA3C8027C45766D270969B284B54DB8A29831939174A2FF274F7EC131858355C23624CBE7B6967288C0B660ABAB4C11C2106F98909AA7AAF50BB1CA0221E1CC00B31696DD05C3E46C7CF5A22B28E404B171A8BAB14146B740B946148591C0505CBDA8E2456809D019E6183D4B10E5F9C6122A7E17D579C5AC4FFC62CDC9AA88102CC386E50770E36A257BCCAB1826BC07D0CC58AF9C49291DB9A63753CE3F9C2AE190834AA77662BB5072F89FA29A2388E532361537BC28310A6A4133B5A0A4795304117839832C8AB7A397141B8A3C47A52689BCC26E3851BE6524CF2FACCD8037B69279021539BD084B31FFF084ED7AC403EB8BD3EB5F409B8778783697B5512C0B91B426714C426882F10DD165C91EFC240C2B129500595D08A5AF198FD8C6A1A9D497654A80EAD40E8B3347B7C51F2E220C1B950788139DD07B6F00B1789EB0A7AEA60844339F04DA7811824F9544320064725B809862447397786381615D3EF4AF575A4CB8FCCE137A4C85241A72BBC424343A3C916C6E51BA58768855C29EB17AB4C8C8C3F3A0174F5979AC02795B60716FE96BFCE517821C254F2A8DD8D77FE778B82E3A53C8592048104FC959B23FE36450913BB1265BF91978FBDACFB3601DDB978CDD77314C8102DAA75D1EB8266137CBC2956714294659809E029067D7D6CB6C93148FB102C34450118835C85509E3F980446767FEA734AAF7C8ADB7CB11435E7600842FF96ED8C75FEBD643BC1A34D1666D8B6B9EDB2B8C72AC5614C603AC200D00461EBBA069EC751CB3C36A60616C73CBB8B2C17798358CC4C588BA3122FAD04D97D51687FA3B19D465F6E9AF95C68AE5225FE04A14BDD61B54A502F820C9DB0256B11AA524F463C11A21F1610DBD800A3D690E0139000B026B7C1628FCA3365A358FF8AA01429CAB2106055144CF0597C2DAA1A623DB1A85730AA0046127287BC407073E9C7C74042DDAAB008CEA58B8DC7765C85844B3395561A4772B5D4D551ADF12687B18C63260518576440EC7BD699843F5651F5E04B25085448CD138257C2E2612733ADBA6FE7357F1C366FBB1457C2458C4F848A24A1BAD74B9A2AB1A603408C540C091C6A100850B4A327211A7CE336426E7B250D50012D7262EDA4218C3B1A55D50337C63A9790406A846CEC038B15D157DDD030FDB293B187A63BB38208F075599803E29149B1F097B1867BF65EC69ADB00ACEB21345E1ADE7E5A36E20B69062C5CCA550C95331F069CFEC59429531B4380A079669C777764DCA8ACD8087AC091CC2B6075CB9436A3B4C22AFACBC0CFB95D361C2232390515A21C37AAAA839005AB97D6962BFDC8959A51ABDD427A15BE830319CCEADF3BB23B59B63452F6EE2956D11C47E721FFAD1724CFA7C1ACAC3455C6E0A75834A23AAB786079947ACA32113A2223B2446790738B464A94683D47357E8847063539080987BC742BD149756541F94D5539E886C13FC1FB291BD1FD8445DC47347072D063A71F9224A85366D3364A1B97ACA267C717BECBDCBA78FAE3BB589BC8794FA2D20A8CD8D7B58124843B7E46FF0F629EF92105DC43DF6645ED57BBDA265874B63A193D351BBD0A5A48CB819979C2A57A486A109957487B51AB7D8283076585E6F06AF66A7B7776BB219911391B67380215FA2216FC061C441B87AF6AA077E77777AB3C7101911B3DC5C1D59952879C1DE1B8741A24C4CD28239132E89024C357C76BCA7CD4696423EB6C578C53C32098E8CCC41321C93CDF79A0DF21B6F69C3DE80C9EBD838B7FB0759165DFD7A6200B88588E992CC173E0A6B0B87554CD2C3C4D42B6B575C9180F1A418D8E400CFF37C23D4C3E3EC2627627F6BCDD1E1F45D7E +dk: BE49618EF5BCFD880DC312BFFDC519EFB4269D0B2391B89C01D6A6B05063346A4BBAFACFC8C091B64CC1AAA08D6F40BCB4043BAD7416858BB4121567BC380C042C2D90244943028DFACABBC6219060721832241591BC030410064E45149CF96C36A6A1FAEC889382340A5BBFC9193DBAF8A43CBA44BE25143AE10A33C6AF8541AC2503835E0743BD74CB899373BE77987492A071E57027C688A2123F56A5B3D268C1EB70A21F6A98BD239F9EE5927F21254FA5BF11F41578AA84770C78B9642E2F3C94EAB1CA5D10651F90A1E49033074B78B6F2C9D0D784C7A931E2EB8336F8802EAC29DE8737EF897FD0A31A04F76B30B5C6B68B7C3A2C3CF0C5B4B313A83F70A59A84901C8B819F8502F624368C493231C19340D67EDDE503ED9805A05A3E23102E6256117D9BA283619F0CB3373E743B2771A7D1B020949600098A40BBBBC364F6AE171BC6FBFBBFACF25B0BD37102D336EE1438022AAA2DEC0ABDA6689A4595A18161C7A9728A0C9B4F74A65D8A432A100B1F46263BF525024876B334CD8D9A1BAC2599F1F0AAADF04E7C83C7EFA4663CE59873533A0CB84AB8EA28BC9B808CE71832D45E4ACA223D7CAD92699B2DF37E080B6F3B6861C95A210362C5FB849EFAB8A845C25C375078247C397143C839F45569786E3EAB14A05679098B25785ACBA2D49C4FC47796271949795925A80EC53A8F7DF6A2A6488EB4E991CD7976584A2FE301CDAB93A57070148F8AAA81141BD932951EEA748D6066FE3B9D60143CAA0339CB8AC2530A0AD0EB444ACBBDA16B0E6A0A6E54885FAB6170A7723F4E3B23D18615B6AC580B2401E485C3543519BE6A5590C7469FF47A3DB91338A5AF6FD28A91720402F70DB8A491946192AB573A6E668CDC7B702231986C114EE18902C78A3D92D1CE616511A66999CF5C0071E615E8A7857D561B0B56C3C35560DDA90A18601B8650AE2520784D1257B3A7339C09B5CE95138E57B69FE90C1F97C03280C0806BC366E75E0D3CA2D355A2E2BA661EF0B96F556C50656724567745C1B650634A8DFA4699222010C59257C38C7D202328767663127DF2F294B00390F674C021B1934F65514AB125132B23A0A427919946D1A96A84491C353405F505937FFB8FC0813700E37C8151386E248C0BDABF1961B2859BCCD9B33960E424A87042D45A6AF180B2CF77B25B7912001C958EF55306927E8DE71488C0BB2C7C8B71767403B6185B41C22DE1BCA99AA86297A2A1E17015F553B967720B159160843DE88B3D033B4D5D563326547A404B352466C9A82415B08A54456B37037971B77A937A540A2DE05B91EA5E540996C8D15452467D0F81568DB2482019B783309F77867175A4CED0A0660FF2AFC1F09B09A03A7BDC1621A613AA4C2571B23FD7C1CECD5B75559C37CDB598AC108255479667E117F51B0E30866F20B087D9088765E7613F3584CCDA8EA7A13CF8E5583EA353661AB7A42A264F9AC6EC529C2CB7230CF45D2AC1B95D729F00B8792983AFECD44B3E88A197D34E2447490729BDAE7547B7119A970B0C3153B379148C4BB61472662669E2510C76549102187D891E56C20A3328C03AFB32760BBF09F604AB0B5C5DCABC83E80CB17A7BFE4B147F6670128A80E93B359191424C80C47CE001D926C6830962083B8BF1C03FF9F1A1034139D974229A581035E73F7CC10D56B281FE96755F214738B70AD6351F8F30CE5DC5555F6B69B806C5D2574553E7C94362A623F2C4B31502FF8094F6E08394C880EDA1299B2C03F1C696D80C3640584C13789E32192A27B38896884F6DF0BDE386A1A327C5C52314A4BACA2D7928AC761AD898CB4298905AA76ABE3C5B7BE75704317D44A9C98FE59C812C88A6E334C0163EDE8AB622F351D9F3926375291B5510C6E3AF2641A65FBA17C7778B9B2A6C2E5BBA6BA225EA40CF4ABA7639D488ADC0A970F6581213352A409065CA92AA8694916C57796B42C96C830FA84C6C70C2640C495F10A48D1A210BDB8BD0C20EF2074825651C5D9B3EC606351B34796FC578307CCCE54A2EBD648FF051CA6FC9AB0636CB6ACC49109343F1465052B57404D46EFDF856CF330E539402DF699E0576953C497A9D662E768ACDB8A9822E3A9271C401A364B1D060924B84939F7110B45012EA36121A4A91CD860258D559ADC0530C25AFFB80C5BC12C3CA5357097716E75B025C298F040C5AB8C92F93A08A91953277A7CAAA1776440C9E3A5C819D7B9BD58AC0A53C83D9635D3A882C36CC3E48959D01E67A4E363273F05504274BC144C5D4B4774FC98638895EF894A78113362EC428E0314FD5119C40811D22313D42362176E001616901952C1100C59E33428EDF13C68086571E8A65D042556A6A3B18582F79B443EE22B53631C02FC03FA6CA4BF4BB0B8B97410443C0A3CC958AD42BEDB3118254C19752AA70076FF8F312E50433884A72F287266BB83A417134CED7C66EEC3A9C90043044B61C795CA69B8EFEEC56D808610EF5B6FF764A59D308E60B64B577CA70487D340BA3C8027C45766D270969B284B54DB8A29831939174A2FF274F7EC131858355C23624CBE7B6967288C0B660ABAB4C11C2106F98909AA7AAF50BB1CA0221E1CC00B31696DD05C3E46C7CF5A22B28E404B171A8BAB14146B740B946148591C0505CBDA8E2456809D019E6183D4B10E5F9C6122A7E17D579C5AC4FFC62CDC9AA88102CC386E50770E36A257BCCAB1826BC07D0CC58AF9C49291DB9A63753CE3F9C2AE190834AA77662BB5072F89FA29A2388E532361537BC28310A6A4133B5A0A4795304117839832C8AB7A397141B8A3C47A52689BCC26E3851BE6524CF2FACCD8037B69279021539BD084B31FFF084ED7AC403EB8BD3EB5F409B8778783697B5512C0B91B426714C426882F10DD165C91EFC240C2B129500595D08A5AF198FD8C6A1A9D497654A80EAD40E8B3347B7C51F2E220C1B950788139DD07B6F00B1789EB0A7AEA60844339F04DA7811824F9544320064725B809862447397786381615D3EF4AF575A4CB8FCCE137A4C85241A72BBC424343A3C916C6E51BA58768855C29EB17AB4C8C8C3F3A0174F5979AC02795B60716FE96BFCE517821C254F2A8DD8D77FE778B82E3A53C8592048104FC959B23FE36450913BB1265BF91978FBDACFB3601DDB978CDD77314C8102DAA75D1EB8266137CBC2956714294659809E029067D7D6CB6C93148FB102C34450118835C85509E3F980446767FEA734AAF7C8ADB7CB11435E7600842FF96ED8C75FEBD643BC1A34D1666D8B6B9EDB2B8C72AC5614C603AC200D00461EBBA069EC751CB3C36A60616C73CBB8B2C17798358CC4C588BA3122FAD04D97D51687FA3B19D465F6E9AF95C68AE5225FE04A14BDD61B54A502F820C9DB0256B11AA524F463C11A21F1610DBD800A3D690E0139000B026B7C1628FCA3365A358FF8AA01429CAB2106055144CF0597C2DAA1A623DB1A85730AA0046127287BC407073E9C7C74042DDAAB008CEA58B8DC7765C85844B3395561A4772B5D4D551ADF12687B18C63260518576440EC7BD699843F5651F5E04B25085448CD138257C2E2612733ADBA6FE7357F1C366FBB1457C2458C4F848A24A1BAD74B9A2AB1A603408C540C091C6A100850B4A327211A7CE336426E7B250D50012D7262EDA4218C3B1A55D50337C63A9790406A846CEC038B15D157DDD030FDB293B187A63BB38208F075599803E29149B1F097B1867BF65EC69ADB00ACEB21345E1ADE7E5A36E20B69062C5CCA550C95331F069CFEC59429531B4380A079669C777764DCA8ACD8087AC091CC2B6075CB9436A3B4C22AFACBC0CFB95D361C2232390515A21C37AAAA839005AB97D6962BFDC8959A51ABDD427A15BE830319CCEADF3BB23B59B63452F6EE2956D11C47E721FFAD1724CFA7C1ACAC3455C6E0A75834A23AAB786079947ACA32113A2223B2446790738B464A94683D47357E8847063539080987BC742BD149756541F94D5539E886C13FC1FB291BD1FD8445DC47347072D063A71F9224A85366D3364A1B97ACA267C717BECBDCBA78FAE3BB589BC8794FA2D20A8CD8D7B58124843B7E46FF0F629EF92105DC43DF6645ED57BBDA265874B63A193D351BBD0A5A48CB819979C2A57A486A109957487B51AB7D8283076585E6F06AF66A7B7776BB219911391B67380215FA2216FC061C441B87AF6AA077E77777AB3C7101911B3DC5C1D59952879C1DE1B8741A24C4CD28239132E89024C357C76BCA7CD4696423EB6C578C53C32098E8CCC41321C93CDF79A0DF21B6F69C3DE80C9EBD838B7FB0759165DFD7A6200B88588E992CC173E0A6B0B87554CD2C3C4D42B6B575C9180F1A418D8E400CFF37C23D4C3E3EC2627627F6BCDD1E1F45D7EB647A2888D86D41D8661A91766BA969E80B9741B21D1EC6E349B52DE8191901B63DAD9B127F98E72A3C65ACF4B172FDBD9B9C39F24F728D1F40EB02C9949419D + +z: 0A755A829F05597B2F2A90974F22FB1AEAB42892101222967E3A0AD612CEEBCA +d: 3BFC9A057D979EC03A705A9CC406DD8A46C106941AF6777B1D7F79C1508D7B24 +ek: 5BDC0216639954EB53EF77250D2853878BC0183C0EB5359414CAC928E3ADE2E78213904D7DA453E96969A89259822C205FA46CA6703B6D324890E59F0C377C778ABB5ED2466AC929E8AA2E9D47A8CCE606F52B18A7C35C20F4C2AFC99AC327802B856F13BC1D9E3646BF2A2038C454095C147BD1474663274DD50041C9939EECCE460B7FF1605743D4243553A0752465E93C628324BB2D3783EB1B63AE85AA53311C5574071E56991211426DAC6F6AAC3EEA1569B04654D4193DD689A32432447E1A3F0F5595FB37A35FECAE5C55CA839A3CED94AE6FA436A7D34C2A81587CA84018933FDF39A931B03D81491624651A5F6AC75E08077FAAAE8AB023D6344557D15FFCB91C10B06BDA114C5C133F3782C309C347F2A4434DAA89F202817A227C1E1240FF41A4F3CCACFA497CDDC53AC5B0C55614907865118C2C7AC0D5031CBC106CB17A26B97755271C86E871BCC9590E1C2684F2C24A172B10844CA44346FB969CEBA1A02B9922F3AB68457CBB1F2BC6B5F5CC4EACB9D0072EAC617B31D27301E002E978925966B642B00AC53C912EA85DB59C5506F4724B2C356CEB40BD58AE51843537C537EC97B24475318A5B30AE750691765FEE1014644B1CACC77C9C334805A58DE18121FEAC6BDB61184D2C273AB725C32091CA3441E5140433435AEB0B51B9C57066C43F308A12F782BCA5237D7B12119CDC9AE2E7C65EBC66B3F02A0BE7361E08838114BF0D5250304A36935135C61597A03903EF215C6A223DF8A9515E622932F7A29CFA74807B145A20ADAA7987B0B981B7A62D115927504A090F61B37592A5B4E51B977821E4D92228531D2BA1523BAB3D6C850FB0660646892BE2A006DF51743FA383AC47572F651AB02A272A458B81441C8E774547E1773EE29A6A27BA4E839C8E023A13635922009B1111801872C391641F0E239ACA70CE3FC01E5C3736FEE2AB3F85C4AFE3A0BB2529D6EC047337819084222F0ABE8F859925708AE3E62815083196248720EC28174C01D716AD472A0CB2747EDB932F4A58ACE9E2BADFE468BA2A138EAB864EE00C034C1207F92F73AB084E32BC244951477549B2189568BA28553937E5F1CE6ED1B7F0C1012560296442AA6DA0879705A65D77460A86C0C06422A2E6949BB78B955355EEA2749BA0948ED094E5D9CE7C79B9F4047BF4E2128E41CA5AB1BAB1A87A2565CDC018890D426B37F01713DC923CD372605763C3B51A5AD58109F031BD665192F38EED496EAB15AF89DB622DB73A88BB6104D44C49577483F468658A9C72C1A2046252DF7840325978589A85F07C7572E44445F9A8854825E784706A25A70ED0CEC3F5A372C41C54185294975A70AB759B4250E1F2CB35E860ECC25932F55E6991041AC24D56BCCBDA579E421C905469052A34225AD50B69E191B4A36EB7DB1DC1216BB41524497B279230053E910EAB49859D1A99DB3C56CD70995BF031FB71B0AA40CDF031183E5B3D8D8799CFC3ACDDA54010AA6169A80D62479583111FEB337354F6BDF36A33279B7472800EB604710AB94A0D584942E41B78F2C387993A5EA079F3C74207F7972646CFD4E055FB6B10BC69B369D166143B8A8E7400134999F05C6A26DBBEC3B23D92CB90F77156A0C8A96CE93F73962C17F8104B52AFA2B68B62810F998577E07CB16FAC499F38AD628B57FC1C9CC7A568410478176BBC14C8C7A594A07A3568B503BFE26BAD88D2CAE92B90F1E1472E9697F930B6E775A1A9B93EF62757B2A28F6962CF2C1478626A9B65B5AB89CC24EE4C9F765B8071737C25F383DD57598D2289DEE439D28AAE91A3B21E389267FB3D146276B7810D126AA5D096A16F679E28D5C91A580777D9CEA13C46234653634ABD964C720A11A6514A7FB7F5ACB0992BFC7C16FA84CD9686ACDFF2283A89625BC65FEADC9171ECA359BA50BEE412D31414EE110AD1D8748237941683BF292618F740445C0B728D51347928559E569EBFE896DC6295F87517AB31A8639B50C0F3A08E96926816B7B17C8ACB476C4C67B1DF7631DF7540276C99053B102738BFA2876E42A028869C688C18AAA9B00DF0F3A74CD81D86D161912C09362AB35BD8731A48CB45CB92EE8A3374B811EEF93A37F17DD7D8AFF88958E13012E6F7BD6DC63E27BC47F506048CE24BB7411538EB4B969656DCE8DF5ACF28D1BDF5ECD14A44A98350CA45699F033EFA44D25E93FC2094C49E +dk: 18A2405BD102699A2B22168A31D2C0E7F946160428EE787E8C6C57ECBCA0FD170DF93BC66203A8F06A3292310EE08495D1BC0DAF2A2D92C243DAC2B558291276217430A08D11B9C5DA411F2D55406BD4182913086489B43D74C602780701295A4C0054765338695231E6798020E7CBF1697573474AB35B27817BB38BC2313E70AFB914B5ABCBB28B7124302B338B471FC89336D1C35FB6D59C007402D1D19A1F96682F7551D8527EAA07389E55A8080791178407301ACF22EB32E0F7119DFA0E623035364CB0243B19918792011023A086016CE39BDAF0868FB08A4E1753B00B444A807787EB973CE52F63650B12A6B51EF435048A9F7136A5A77A99238763F433C00813C5CDF8CAB21B445630AE2D733F7683701242751F5C17A4F15FAFA5AC7E5A231097AD06299DD6AC194D1ABE895A0315E834BB364C286C8CD0216BB032B59D797245F40D624872036BA369355AF73C6FA5540BEC829112F28294191096A8AF53D37C5DA8B151330098582AA06C5455408765D43FE5B24C9C0471C9C85243C205747A43ECE8CEB31CA87BB51B39D15433F99D6FA638BF02373D42A09079399B4CB0A371984061370078A677E166D3D7B82E3174B58885D280A1D44911EB0482C58C7216D5A22694C767B9CB35BB0A1B0271471C558546037BE5585D43C40F6705D8C0C4579025898A2E21A0C5B0A4A42AB290E1F37D58486631210EFA0669819A90742926CEC68B1801B44D597E2CC84661917C9BBB6E2FD4B00D11AC616A245088B6AE323332FA40CFC46845842B02328D6E9A9246632DB8FC960B9340DE367A25D3996F48943ACA2656250D823BC999250C357C718A7CAC1197868D68C70F324391A75EB88C09AE835FD732B9047AC4DE843A6D00BA1EF79AEBC350B1D3541B874C3105B901441BE9F9663C306E085B0B0F98A4132586111417346B85AB5C26FB0522AFCCCA2168308803243BD1C1611574533466A1F709027485D680BE09624B03944EA5399E62A3A8A005B74227041E6C394CA22DBE3A6666541377573AC5357106400B35473B6672A7D4517F1C91A6A1266D25809B57720207E4CAFD88751CCA82AB54593CA126A0C60771CBC49535CC9A83882DA67D6F94BCCF7A5B605215B874C4786B24995A83C679BC12E870C61A3820DA5B89C0863B369A6C79B13ED67099EA02CCA1B9523529992A215C525BD5D37A39E69891FABAB70594AF8119F356A85587604AF35CC3A01692047576D97456BC1BA23639D4452A91C40A732509C70C83CFB080CE2BA6F29A80B0066D10A96A038C72CA7B6860594EE3C7C592016E147C7FE478B90F8A4CBEC166A3C474758642EB76CA3B0A806B16CDA19013986B10A3844A0CF86455F2808429B371A0592129414FD31BA24C995E303C776B014BD35CC644095B7140F2AB3336D55DE6D54F9FF244B6CC8580111C7DB2492A32A073E0196FA256A92CAF6B431B6F6053E52C308D6C0F8D86001258B78290AAAA85C9B2059A931833A6C82825B332943ABABF65451272AFF4BBC0FC279B603CC1E97C18F40641DF91776EDCB7DE245DF98099A9DCBE5B1C6C67FCAE6FB18A4F950833197364D94D224B8D29AB8860199CCF8CA3C8D1217D99484A631DC29923AA582FBB2566A44BAA1FC037C139CA3AF90D9D0516E7B0732F552BF264325A121F20D393C8E794D1E32A3C12BF68C849A6548BB308753524CE72130F037BA1C02A50162CC10437A5337C6056E850E2319474AA21AC223F8330C43E3A0BE3B0A42227266E6639252271CB2023A55866B004B8B43CCF7E212457157893247201B1AA4728BA476AC7D3B303A6F3BDB818641151BAB769C7BF2A1EBF027A79F81214687D0886C99FD5A46C8B4A1F5697A98BC9667CA574A1CA283BB4F424237B37C96A5836709C7FC0717537CA95213322E3396A55439E1F8C7756A0625FC23CD2745E63A054C47259025C92AAD22E2DC52045A8467AC069E6E22B65D25C2DCA2BDD31AF5057B0DBE93E3D921341046E89E5618A62C562349F2A646E65EBB64091ADECE8CFE68460FF95842EA6648C89BFB0E5AB1CE11103904AA04C4F55F7C64DD810917B756B02BC1054A8DB7116D0718E584ACB47C679E39232E1C87934D84111B0087C04C86ADC5C7F060D5B639FD9B1BC85775461100FA6BACCAD22495BDC0216639954EB53EF77250D2853878BC0183C0EB5359414CAC928E3ADE2E78213904D7DA453E96969A89259822C205FA46CA6703B6D324890E59F0C377C778ABB5ED2466AC929E8AA2E9D47A8CCE606F52B18A7C35C20F4C2AFC99AC327802B856F13BC1D9E3646BF2A2038C454095C147BD1474663274DD50041C9939EECCE460B7FF1605743D4243553A0752465E93C628324BB2D3783EB1B63AE85AA53311C5574071E56991211426DAC6F6AAC3EEA1569B04654D4193DD689A32432447E1A3F0F5595FB37A35FECAE5C55CA839A3CED94AE6FA436A7D34C2A81587CA84018933FDF39A931B03D81491624651A5F6AC75E08077FAAAE8AB023D6344557D15FFCB91C10B06BDA114C5C133F3782C309C347F2A4434DAA89F202817A227C1E1240FF41A4F3CCACFA497CDDC53AC5B0C55614907865118C2C7AC0D5031CBC106CB17A26B97755271C86E871BCC9590E1C2684F2C24A172B10844CA44346FB969CEBA1A02B9922F3AB68457CBB1F2BC6B5F5CC4EACB9D0072EAC617B31D27301E002E978925966B642B00AC53C912EA85DB59C5506F4724B2C356CEB40BD58AE51843537C537EC97B24475318A5B30AE750691765FEE1014644B1CACC77C9C334805A58DE18121FEAC6BDB61184D2C273AB725C32091CA3441E5140433435AEB0B51B9C57066C43F308A12F782BCA5237D7B12119CDC9AE2E7C65EBC66B3F02A0BE7361E08838114BF0D5250304A36935135C61597A03903EF215C6A223DF8A9515E622932F7A29CFA74807B145A20ADAA7987B0B981B7A62D115927504A090F61B37592A5B4E51B977821E4D92228531D2BA1523BAB3D6C850FB0660646892BE2A006DF51743FA383AC47572F651AB02A272A458B81441C8E774547E1773EE29A6A27BA4E839C8E023A13635922009B1111801872C391641F0E239ACA70CE3FC01E5C3736FEE2AB3F85C4AFE3A0BB2529D6EC047337819084222F0ABE8F859925708AE3E62815083196248720EC28174C01D716AD472A0CB2747EDB932F4A58ACE9E2BADFE468BA2A138EAB864EE00C034C1207F92F73AB084E32BC244951477549B2189568BA28553937E5F1CE6ED1B7F0C1012560296442AA6DA0879705A65D77460A86C0C06422A2E6949BB78B955355EEA2749BA0948ED094E5D9CE7C79B9F4047BF4E2128E41CA5AB1BAB1A87A2565CDC018890D426B37F01713DC923CD372605763C3B51A5AD58109F031BD665192F38EED496EAB15AF89DB622DB73A88BB6104D44C49577483F468658A9C72C1A2046252DF7840325978589A85F07C7572E44445F9A8854825E784706A25A70ED0CEC3F5A372C41C54185294975A70AB759B4250E1F2CB35E860ECC25932F55E6991041AC24D56BCCBDA579E421C905469052A34225AD50B69E191B4A36EB7DB1DC1216BB41524497B279230053E910EAB49859D1A99DB3C56CD70995BF031FB71B0AA40CDF031183E5B3D8D8799CFC3ACDDA54010AA6169A80D62479583111FEB337354F6BDF36A33279B7472800EB604710AB94A0D584942E41B78F2C387993A5EA079F3C74207F7972646CFD4E055FB6B10BC69B369D166143B8A8E7400134999F05C6A26DBBEC3B23D92CB90F77156A0C8A96CE93F73962C17F8104B52AFA2B68B62810F998577E07CB16FAC499F38AD628B57FC1C9CC7A568410478176BBC14C8C7A594A07A3568B503BFE26BAD88D2CAE92B90F1E1472E9697F930B6E775A1A9B93EF62757B2A28F6962CF2C1478626A9B65B5AB89CC24EE4C9F765B8071737C25F383DD57598D2289DEE439D28AAE91A3B21E389267FB3D146276B7810D126AA5D096A16F679E28D5C91A580777D9CEA13C46234653634ABD964C720A11A6514A7FB7F5ACB0992BFC7C16FA84CD9686ACDFF2283A89625BC65FEADC9171ECA359BA50BEE412D31414EE110AD1D8748237941683BF292618F740445C0B728D51347928559E569EBFE896DC6295F87517AB31A8639B50C0F3A08E96926816B7B17C8ACB476C4C67B1DF7631DF7540276C99053B102738BFA2876E42A028869C688C18AAA9B00DF0F3A74CD81D86D161912C09362AB35BD8731A48CB45CB92EE8A3374B811EEF93A37F17DD7D8AFF88958E13012E6F7BD6DC63E27BC47F506048CE24BB7411538EB4B969656DCE8DF5ACF28D1BDF5ECD14A44A98350CA45699F033EFA44D25E93FC2094C49E47269D7A3C68DB2C273EA465A5A30D6CE94BFF775EF4CB5F323C7EF064701B690A755A829F05597B2F2A90974F22FB1AEAB42892101222967E3A0AD612CEEBCA + +z: 681F088AD6962FC397A1B9071852848CE9A7EDAE65A81485CEC87D0974707B7E +d: 7C43F2E7D9B1D8D9C41D9F315E052A254CE3A1F098671773B53717A95220AD55 +ek: 9ADB4E6D612D58585179C9965CF816553BCEAED61651C13CAE0672540BA9763333A25273B59864FB94AB650C6C41A6969EBBAAC0156A9A3621A1104EF578CF1185001316AF57F75C9CF401C4D2C9C8AA15BA8855C730577F128FA32122FB3B29E3813BA9C6CEA1B38BA069662C954794050C1F18C126542644D04EABB9656C446F8C08C6C6214AF2772264872E894086144B30712811A60C27E24C7C51A99A001D296B3CCB5CB1B9CBF4370208C23294442A9C229D1944B59C03CDD663E06CC73AC493D1D75CC1525993059EB4F61C6EE160AD229F3D015BCC919A90449FE8054890006E6BC98D19B602F142515371B8BAF9B456D04B3A429051006997A961422483B2D61857330F74D5117559213CD766E183210DF1100DA49DBD992A9FCAA1AC5834310AA9E9F44B4B2293BDDA76E22C585DB53CB904BD3292C84FDBC38D793136B12C2AF7A58D88C45B0212F0A083DB0929B1B070C74194EA0620A396BB43E6BA9AE43BAB85C589E93986C746EF4643DBDC1F0EF302CAB02512286F846702D4A3AB69FCA5D2B54C7B603CF5D4AE90705F0EA36A6479329B6461DF47026CA86765A79577F2AE1D8A2013E977FF49296247A3717401F7B961090165E34023E8E373CFC8CA5BE146A5690138532A01F9B18C138D9C7B110A66BC47161B708661FB5B5C507A9F3ED396A163A281B2809EDA52C78511C26CC8F478980DC429042A2CBE73600A8A06972260E8F2C387434FB0087435E711E14896B8841BC751A79FF9B3776217E53287270B26023ACD1DC95395F52546E94E287538D2E9539D8587DBE606748A7CDB76449EC2B0ABAC7170C439A4F2BD3F1A3F349B90DDCC13878024087AC33C38B64EE04427EA249D3C7845629CD8D0C82189814E6B2260CBC100B64039599B1BF91938C2B2C35CA2EBA70B8474522FA6C37A917D7B589F646266D2D07B348169F84968C466C9B90A7B00A6505F6A567D5A14BDD2477CFC0B515C7931B3BC1A7021DE7B2CC7C650097B0D2A94A7B024B207B6969E22C720683084CB998E0C422D1B2FD9969DA2BA9096358AE11A5E101C6DE23C8DC041AAA2F441F8693A01A872E6356D9907420EEC3F55B945E34562C0F3838695643DA00336C1CF1802199E093C07347F80F0959CFCA72CE65E2C675BF9CA8B01F97600AD177133CA15932C79C9781AD01B36F606DC74A648054AFE1B74352A4EEA2095A0120D7C5332D1B7A61DB284A3A0519AF63D891A2546D9748FE768604C27827B6E45E1AA1335AC8F2295A83A6AC9E42D0047AF55242EAB2534C7B38AB65749CD21B0441781E643BC16D03D0C437E03E33BCD4B92A9D32BAD6513FBF595DF30BE0475B69A632928A0B4E2A867E4229525953CF303C47CB83F609A1D20EA1D3146C80BF82061E9C5AD670E4288C01E889E95F937611B419C38563228BB9FA85D3E184109A004DEFA472848AC510CB81E18C5301B149B0264942CBB88F8995737C425E44F50F53B9B2A4C44FB0E5C7145775900D7708D51F21173A9170AB2902CB911BFB82D2D4B0333B1832F043A79A6A07530CA00E5CC58E6B0C2706CAE6A6A52D69C6C0B23C90812116AA971398D154404EC531F3712348D0AC62DFA9A1CC0B01C470E16693327AB9BBA8083F22B8314551712475E187400EB801F1BA34F78024A5DEC89B4C7811E68B30EBC91E08373BB92AC0FE8A861F4BF0A0B5877088371209D3294B866A86BB6B470344A069503AF99730773853236AA12CB3C2F679B45D0025876199C68E676298AB1773C92E33276A60C02FF7415EB10838A5035B7114E9834C5BCCA795330009EE57368B139F9D71135D1C86B0833D2CB81D660C56FCB3EDB848721C72A59A8CF45B6543CA7895E686C26A86A5AA7A8C1734C5F576D648482026391CD611389C44807EC771DEC4FE373B483B00D68F34AF776244EC07874A5C22C6C566CCC5C70369FB92A22B6BBC4F4144BDCE6C3A5051268DC8D6E8A2B8F8A8D48020804880FFA32BD01899CA9D3A70FD62A91B74ECEC51BB58594E7F162C7E94D44D64D66592880C55011A8550833A599375CF9207605784C11FABA854BBE6971065479B6D26589D2C756DB93C83E50936CC0C0089CCE8EE0A08149B732559586D07C4FAB56D7A263CAC656314268F55C64A1D6982E665DC42766D84206BAF103D14014221F2914A06162064F7E475811518022B301C262A125BB439D32 +dk: 92D719984988C65BC4E3E60514E25F64C70318D049A14B110C2196176BB7F9183946C24894F075DE191261544ABE9BABD3280DB7A41B47A937C9597EE995CADC33C1AF87CA2D740F09249CCF376B7D5CBD1B69179323673BD6CD8CD9A84C47B7D232A912F4752BD94B93914427F2CD20C6391CF71F729472095C5D1C3C57E03689D57AB4ABE677909A9895638B790903E5E50D2421117F6A23E7A5CD6A3053FBAA42F386BBD3D82D8B788FF7E652D5830EE676BA978C60342694150A5B28D8A5AAA66C8172AD93D9B3B334C0BB4672DEC182E4395157A0997895BC44C48F3B222C5EABCBF7F2C2973C61B09B3889F0891E35934D4116663A60F751C48E22186B72969EC3BAC346B505CC6699C86BE8B1836152CD6BA37962A23E29B256C555845EF24F52C43DF0C20326841C77E3B87D16C59BEAC267056F40F7117E44C5C957465C09787A52594D1565825243FDE9C568115029F3C378B99F8E28AF395A2119590837B06B75E293682441CD7C5773F5BEFE7CCA172B8DD6EC0E792999D3B40A0439336F2629A1DB78227BB870F44896E112D8094524962F68370AD7092F60375C7A986340D32CC52633B1A714529425DF69BC918A30BBD577E938B6C1D06519078F3D934B7CF77FEB7A179BD8463829AA37D6C449877823231D0EE81B51FB12751946AA1C594ED175607B36D1B7B94CEB8D23B6AA680B9A72857BA61A445AE80C1CF45EF70B44AF6B3C428C8A25689AB8228218C6C0CC858E6A98823E3673913B9163A339327609FD459AFB05CADFCC2943E45A965B54F1A065F68B1F153CC8912329C0F0C0DC605FE6E52905C8B3F1EA3BD0E99418C645A8E6622DD577E9F2BCFB649C1DA09FB8E20DF470CC6317613D788FB544921C325B7B3B7A0A1C3ECAB62B866A513609590E871B17D7866F8A96B838C33A562DD1D47787D795BCE61AD3A9CFBEA5B03290320612A76BC198B0B84D8953909183A14FB318840469E2A909FCFA2C8A9B59E12C77B14A6503829AE8D3B493FB9A6BA6BABDFA7BE215B23ABB5B62C2C6042A909FA9999CFC2A23790548B6055D57B3FCE2C155A6C6115B05855249BEC0887F00369F38379111846946CB25F39305054BAF669E75830A505AC3148299E5AC2B4BF59C68986408270A8CA3A87A70A380EA7AD5871E7DD3165A733AA1D55F1184441DD84183B1002BCA518F370D02D5806498482B4236C8E1B1BF07870C2C7E1D44435077905A5C461238970B603F234B9351FA4213E0CB8DEC764475534AFA18AF07518C573DB0D9790C873A33293424A434B9A933AC644B37B14435D0AFE71B443F83BCEEEC9574016214DA8E66ECCA10668684EB5D776C5B4B2C05C2E03598A602717A72EC4B18E5F550992ABB76A1994B4842FADA39FDAB9DADAB09D6BB9B46AB4EEE69AEBC419F1587B8D7061BE188623F4471852C9294146261A67345F5A2347B206D2870DDA681C44CCFB420708AA398864469B8E08E76081C41F5977893813653A744766125F27C28E6C1DE51978448BB8770B8660B6E4767458DB70990E24FAA35B4DC7571B5EB69BE48C8646586F0ACB48A3B3252A02EF48A7DBD44A5E19177069C6F3F678794B8488C313F70EB4AD6FC09BF078467D362A436411AA689885B987104BC50E00340F8294A06AB8C02B0569B1A6426C13CB9B651677585BA213F7C297A949096B27A02E9510C803EBA002EA423AB3C810595D71F6201366591B60091B305EC7E80371E6DD171DB235D389B480F9C32CC7AA52DEA7714D3004DF5172E034DED271B9C679846A6AC4BE4580E4414EE42CAFED11387CBC98938BA6A59A07E2238B2B54FF6F18D3F48C2FB0636B5CAA3A581948067B1FDB083E92A46EED9B090032655A9BBA2B207EED10D419991AB813140CC898D11B24566970A601326072E15A31D73C0A625FC3E6B697575D293D1B3142F12190B28AD4DB6278CD9A92E50AEB3B60E687A14D2C48623955724582373F16DDE3919A8C7B98CBC514977C5E96895FDB17A952279B8222548EA4B08D4659517A7809C0E786986C2D69A1F7963CE2672726C7CA4A91509856476C13B9488A2A429804815126954C2CAA43F1EA7877BB10346C022A1407CDEEA6322D74C760283CA8699B6433AD16A0DC2238B9714887ACB0315D67139573EAB39A403C3459ADB4E6D612D58585179C9965CF816553BCEAED61651C13CAE0672540BA9763333A25273B59864FB94AB650C6C41A6969EBBAAC0156A9A3621A1104EF578CF1185001316AF57F75C9CF401C4D2C9C8AA15BA8855C730577F128FA32122FB3B29E3813BA9C6CEA1B38BA069662C954794050C1F18C126542644D04EABB9656C446F8C08C6C6214AF2772264872E894086144B30712811A60C27E24C7C51A99A001D296B3CCB5CB1B9CBF4370208C23294442A9C229D1944B59C03CDD663E06CC73AC493D1D75CC1525993059EB4F61C6EE160AD229F3D015BCC919A90449FE8054890006E6BC98D19B602F142515371B8BAF9B456D04B3A429051006997A961422483B2D61857330F74D5117559213CD766E183210DF1100DA49DBD992A9FCAA1AC5834310AA9E9F44B4B2293BDDA76E22C585DB53CB904BD3292C84FDBC38D793136B12C2AF7A58D88C45B0212F0A083DB0929B1B070C74194EA0620A396BB43E6BA9AE43BAB85C589E93986C746EF4643DBDC1F0EF302CAB02512286F846702D4A3AB69FCA5D2B54C7B603CF5D4AE90705F0EA36A6479329B6461DF47026CA86765A79577F2AE1D8A2013E977FF49296247A3717401F7B961090165E34023E8E373CFC8CA5BE146A5690138532A01F9B18C138D9C7B110A66BC47161B708661FB5B5C507A9F3ED396A163A281B2809EDA52C78511C26CC8F478980DC429042A2CBE73600A8A06972260E8F2C387434FB0087435E711E14896B8841BC751A79FF9B3776217E53287270B26023ACD1DC95395F52546E94E287538D2E9539D8587DBE606748A7CDB76449EC2B0ABAC7170C439A4F2BD3F1A3F349B90DDCC13878024087AC33C38B64EE04427EA249D3C7845629CD8D0C82189814E6B2260CBC100B64039599B1BF91938C2B2C35CA2EBA70B8474522FA6C37A917D7B589F646266D2D07B348169F84968C466C9B90A7B00A6505F6A567D5A14BDD2477CFC0B515C7931B3BC1A7021DE7B2CC7C650097B0D2A94A7B024B207B6969E22C720683084CB998E0C422D1B2FD9969DA2BA9096358AE11A5E101C6DE23C8DC041AAA2F441F8693A01A872E6356D9907420EEC3F55B945E34562C0F3838695643DA00336C1CF1802199E093C07347F80F0959CFCA72CE65E2C675BF9CA8B01F97600AD177133CA15932C79C9781AD01B36F606DC74A648054AFE1B74352A4EEA2095A0120D7C5332D1B7A61DB284A3A0519AF63D891A2546D9748FE768604C27827B6E45E1AA1335AC8F2295A83A6AC9E42D0047AF55242EAB2534C7B38AB65749CD21B0441781E643BC16D03D0C437E03E33BCD4B92A9D32BAD6513FBF595DF30BE0475B69A632928A0B4E2A867E4229525953CF303C47CB83F609A1D20EA1D3146C80BF82061E9C5AD670E4288C01E889E95F937611B419C38563228BB9FA85D3E184109A004DEFA472848AC510CB81E18C5301B149B0264942CBB88F8995737C425E44F50F53B9B2A4C44FB0E5C7145775900D7708D51F21173A9170AB2902CB911BFB82D2D4B0333B1832F043A79A6A07530CA00E5CC58E6B0C2706CAE6A6A52D69C6C0B23C90812116AA971398D154404EC531F3712348D0AC62DFA9A1CC0B01C470E16693327AB9BBA8083F22B8314551712475E187400EB801F1BA34F78024A5DEC89B4C7811E68B30EBC91E08373BB92AC0FE8A861F4BF0A0B5877088371209D3294B866A86BB6B470344A069503AF99730773853236AA12CB3C2F679B45D0025876199C68E676298AB1773C92E33276A60C02FF7415EB10838A5035B7114E9834C5BCCA795330009EE57368B139F9D71135D1C86B0833D2CB81D660C56FCB3EDB848721C72A59A8CF45B6543CA7895E686C26A86A5AA7A8C1734C5F576D648482026391CD611389C44807EC771DEC4FE373B483B00D68F34AF776244EC07874A5C22C6C566CCC5C70369FB92A22B6BBC4F4144BDCE6C3A5051268DC8D6E8A2B8F8A8D48020804880FFA32BD01899CA9D3A70FD62A91B74ECEC51BB58594E7F162C7E94D44D64D66592880C55011A8550833A599375CF9207605784C11FABA854BBE6971065479B6D26589D2C756DB93C83E50936CC0C0089CCE8EE0A08149B732559586D07C4FAB56D7A263CAC656314268F55C64A1D6982E665DC42766D84206BAF103D14014221F2914A06162064F7E475811518022B301C262A125BB439D3225F6DF8F68FACBDCE4839DCEEDC2B96D6191CA1DB11F347EA0D66F8C2458A848681F088AD6962FC397A1B9071852848CE9A7EDAE65A81485CEC87D0974707B7E + +z: 40BBB2C581B2D694E369C0DA567371E8E53C328A59BCE775A625C9F5CC185E0F +d: C2E1A3161F3734F44F3C2F1736E149803F71321122242A1E95E55E5652A91F55 +ek: F93584C1B0237F83AE90B664950B471E763CB7939C28D93604C83F73A30F80B3AA8F948086A142A132442712CBD71A9D495587CAC62F98F922E96C9D0095B1502B42DA76B59B1C183338C1C06A730DFC2E889273326593362006EF948AEE1A521E159FF6283DF3D11DEDB1655FC706DEB2C6BE879D3605C3AA463355FC726CE84962500B72776EBC9AA3D960A8084C3182EB8A43918F80EBCE5425257C2237CAC811022792485772BFA51CC7171F86F4C847782BFF123763FA650CB1B173D1AC78F7C19E764F5039736A3B2BF37B67C9783DA9EA6CD0A96FD7DA758E411575F6744DACB42AE2148B7BC9FBF49B4D25CCE02BB906B025EAB98171B80D55C8A328D15C2668A8FDC3A463CA6508E1818437498AA27B04D8514795BC4675C1B94ACEFD54603C498056038D3445745D44BD6F1A4316191B905C650668A3E2402D74E560CBB7A667A27EA4D38495010A71085957421923E21718E611CD5205FFF6AB91C65407C67E7EE19EF0A885EB88B02901478DAB0456D94E4073576AF0542E33C9286048E491ACD2EC2A02E5181436BE7D829AFCA68FE0A78588D886DF77B6F1F94A959B2AFDE328B8B5888569AC34D23771F0AA12C7954EC82A6E71C1760654C34A926DE4B0F07025B9517B2A036577728C7E35653CEC816C3677F703B0EB3C18AEC948368009CB013E365A1E643244289B0AE11440877266C27C955C7773D4377BA2D7C6B8DA7D23C48A19EAA7374A5A9B931F42E144A6CBB8CA06BBD42396B02C6AD16BA6B1E36B2161903EA4A654A31C507825347B9BB177C655B848BD943162F41818F113E864B456D504573B8C4E5B8A07F14713612F78537128253B1B9712C417CCAFB271DCD9683EB82C55D171723A32A5D40EDF9252D01C7ADB6664D6467421920C5B345B2D93C3DFCBCB1DC538D23454068AAA2B85CE41574079136476CB1CA401C1134977E97C72D2C85C37E872CB725A2AB55BB6C37EF2E517608A95C14A970480856A8A5737A06B46E93D03D6384AB8562AF2C37DBB1D52737CA8C5404632C4E9AA714A4A5CD3D073AF069CCDA490C64C42974B57D3BA6C500588C39BCFC4B26CE6119ECDB6A2A47141DA96BA2331996EA93C5D7618F4FC9A27FB6F5BA336F6801938EC26ADE456FDE01D41C22E1424611FB4487D8A2DA212A09749524F004CDC76B8F6339B11041A3174B8FD58B2C6E7B0166AB4246347D25AC489C43288A23A7E59C3CE320E3FCACE6B6277400ACF9E924FD12C0805B70354F3AD8DE92644F8B4936C81CF301FB87A7DC4578628868ABF501626B045D48537F2212A3FA5396C1C857B1084B21B1EB968AD60B43181C77712001290300C9CC2A3D6562A00FCB4E5F11C2AE412DD29181A034725A0CC75E2BDFB851DBFC28AB3362B8CF378BAC9939D340317C64469C27D8F3675C2A962DC7A00E9F67BA1EB8094F0B205388C59223C7BB963D8E21D933B779B360706AC5E06033C1907A8C8EB6E6017C285A8827E28B8CC7A5891CA381FD50D5EA231FEB5A7A4E4380FB5067A6505FA627D19715667FC5602B041CDF9074A3C58BDB9C77CF23F6AD1005C4A6F2581695F444578A734F8FC3E9FCCC07A873A5AD04CB2C724F6820AB1C081306B429F92834FE8BFE401448431BEBC4C7335EA0EC7050A0A49459DB286B774069B161DCBF3BABB5430FF727A419B1AF2371E1441BDD53C03E5445391A401668B693C6503F35CA6CC7A04CA298FFB81CFEAB4B8DF400E1F670801E7014DFCC8B3D8BD953BACC1D61F184A07B383A8325C1251A56E8BFCA75C04CF8653082D52A8D6C944191155AE886AD9AC010AC50BBD2BBA9144785F02B7B7BBBF7F1AB8DF210241F4AEA1700D840AAD5E2761C4066165A43C487B3AFF68BF3370891933BF46C13BE82331F189B678150748AC609B3378C3581AFF91C9A4F2B9C040661E11A917F7A604100E5B9863B8D3B55BE32CC1F40DC47C4F02622863A560F25B03864502F4304F1401B90E4969EC110331A418770B1CA626B3A86659AE9B7B630C6DE1576286976453377663950353BC8067691BD1E1C24C006204E3502C171BD43C33271548EDDAA641677D8D1161152216A4944D480440E3B418042184194C6E39FBCCD353C58A6C3BAD16A33D666D601237F341B7AEF3C98F237E585C8E152B444DF15A768B20104AFC8CE55CDA630D36C048C7D5206708B4699726C1E2FC3A722CB514 +dk: AAE64B6CDBAC89352E7D1311EA15C4C43635D40B98F471A9BB1C1A0B086868D2651546A3F6C1A1F6FB8E75010B8661BE3EF1251737126DBB8157B6A1AD3611B04B95DFE46510BB94E7B0B87B55315A98AB61946FE926984FB5A4BDA10333221B92EAC1CFC2A15BE83ADF9297FF61CF87991EEF977A584A3D4CC765D710CF3C630687990A85F4CD1973861868A8FA1A1D3C26A777371CF6108D1B83243B058F729448ECA2A5665B2B6B032BD83CAD34EB5CA394C6DE96AB3552BEF3B28DB6390978DB65A30C6B0528ADA091C80D42AE470078C1D3C45EA21AB418A865FCC2FA4C3D78B76E84B3C3AFC0BD9B2721A092AA274B7A4BC3B8A9DC57332C81B0695522316755A5B7F1F992F5E22C00B29CDC6281ECAA0E74A24C0C56573AB8453F469872722C8796BFD1B64D8AC93F123C74740511A0B983C20C153F005BCBD04965EC95975858045681DB4B8B70327CCDFC9FF8377D599384C15875EE346FC08066EF3BC09D46016B8754B8C0B6BD944D2B157CFE3392A25B98D48850536B5BFE119F58A0739A48654CC8BBA8EC1C1AF4A197EC758396CE4C0C4E66D0BD43A03CD65A6028C185C6C1C59FCBC4EE7017568061BE551BC0BB3509102E8F14829B603BA1CB910DEC374CEA99C301851111A3DACB2292CB95ED1C8B53B965C6D33307B40C538C63872B83DF8C3922385AA8CA075FC118DBB323035C768149221E2C135291070671270CA5342B89044DB59346314F95B95BCB06D0A1F66645B907862C60B4C8CEC097CA87C7B3F2720DDCB0C5D317B443437CEDD32F2357015F9350778A360219B7FC178531B2442F114F2024595EC4CAB1F6CA26F827542096F8B08C4492156424504CF46DFCAB2DB7074FBA212F72284194C59240EACDE348BFC22394985A09874B5BDCF788DFB9B38031B1AB762BC337195597A662673514603E49C2A485E61D37691B31C46EF67CA30C79A6037726735861BF5A31FE102B448CAF32B7103D3549AAE16BB8186670FCBEFEC61D47E923E4460B8CDB029AF81C99F80456033C1B1351F7FC5932902E791C8D65466A36523BA6D58FD370905F3B21465B88C125B23BEBA9F3DA624685833B4A189CE2480D4739AAD85E3EF41E0683B0376C561AA6685F2289891114CA4C380F43289C201CC6FB6E77213E1FB813F1A12266E9812BE91EED08ABDAD5477801201F313CE6A11B9C155F8E07310D6C7769E637EB123524342DFBC67FC0E20A3D09AB9B5C06B149C39FA12E21870273C8C97FD56A1CD346F627593A01606043A18F35C6A323A22A48B3DB49923D3A2BBC92051BD4A9301CAA0D9A386569A37261CC12172839499F928A6A70806B9D8A24AE304D98876AFE6C3E24D500BA08A8F285C9633414825AA01AFC5E55CB2AB91A53DCB47DC7904F6EA77196A8BB9E057A092208BD81C2B9675E1C263D0BA024D2D92B5E85C164E149572B0288531B6BF4BB1E629D7295842A5709D06810CCC896E64A5516130959881B58633F8C411F5032AADE7879CA3385715C8E590B6AAED47D38A708822AA7570848439867D6CAC7EF7A76DD3B890662CE65271EA065302D3A4B4FAA2143F5530E890A1B80B75935BC3C06569C7365A4166AB4D7C1B26030C2A777A121C0099921C77AAE3644BBDA315429C06CADB33BAA3CA419D5064A5BC9C7BC6C8D34C7FB0A254409372B679FCAB46D47C16B94BB2E8253475C0CC5BA6C7DA39141ECE51EDB844A4EA4AC6E3866625679FFF71CFEE1477A918CD82B0883B67BAF2A383B436FDEE7C58AD372E698778866377561BAFA8C9B596AB48676B08E2BA9EE1AAE07BB194D841586662DC64B1065CC8A52D899D09C6F96286E272895F8865B54DA8B33FB67AEA1133E611BF9ABB459AA4442A60CD09A4E39006616C3981604662F7006E0C9130739A66E79BFD123C679A368B64C331C285AC1CC721512A52148A382C09474773BADCA77CDDCB6E4C40022CA10E35A6BB205239074AD6B6524C2329103D281E8CC479AB4AA2E5C2960A903C1E05B48F07B5C88C384533D93A9BF07EB8B7376163532AFAF32B4C481694C11C97ECA8AF0E714F0427D16CBC331E9821E60C735392AE047303DD637AE5AAD915232EBF481BD03ABC845372C60AC586009BC717B6D1A1E78FBB7ADAC5DFA89C410E786AB4422A87BA21A088EF93584C1B0237F83AE90B664950B471E763CB7939C28D93604C83F73A30F80B3AA8F948086A142A132442712CBD71A9D495587CAC62F98F922E96C9D0095B1502B42DA76B59B1C183338C1C06A730DFC2E889273326593362006EF948AEE1A521E159FF6283DF3D11DEDB1655FC706DEB2C6BE879D3605C3AA463355FC726CE84962500B72776EBC9AA3D960A8084C3182EB8A43918F80EBCE5425257C2237CAC811022792485772BFA51CC7171F86F4C847782BFF123763FA650CB1B173D1AC78F7C19E764F5039736A3B2BF37B67C9783DA9EA6CD0A96FD7DA758E411575F6744DACB42AE2148B7BC9FBF49B4D25CCE02BB906B025EAB98171B80D55C8A328D15C2668A8FDC3A463CA6508E1818437498AA27B04D8514795BC4675C1B94ACEFD54603C498056038D3445745D44BD6F1A4316191B905C650668A3E2402D74E560CBB7A667A27EA4D38495010A71085957421923E21718E611CD5205FFF6AB91C65407C67E7EE19EF0A885EB88B02901478DAB0456D94E4073576AF0542E33C9286048E491ACD2EC2A02E5181436BE7D829AFCA68FE0A78588D886DF77B6F1F94A959B2AFDE328B8B5888569AC34D23771F0AA12C7954EC82A6E71C1760654C34A926DE4B0F07025B9517B2A036577728C7E35653CEC816C3677F703B0EB3C18AEC948368009CB013E365A1E643244289B0AE11440877266C27C955C7773D4377BA2D7C6B8DA7D23C48A19EAA7374A5A9B931F42E144A6CBB8CA06BBD42396B02C6AD16BA6B1E36B2161903EA4A654A31C507825347B9BB177C655B848BD943162F41818F113E864B456D504573B8C4E5B8A07F14713612F78537128253B1B9712C417CCAFB271DCD9683EB82C55D171723A32A5D40EDF9252D01C7ADB6664D6467421920C5B345B2D93C3DFCBCB1DC538D23454068AAA2B85CE41574079136476CB1CA401C1134977E97C72D2C85C37E872CB725A2AB55BB6C37EF2E517608A95C14A970480856A8A5737A06B46E93D03D6384AB8562AF2C37DBB1D52737CA8C5404632C4E9AA714A4A5CD3D073AF069CCDA490C64C42974B57D3BA6C500588C39BCFC4B26CE6119ECDB6A2A47141DA96BA2331996EA93C5D7618F4FC9A27FB6F5BA336F6801938EC26ADE456FDE01D41C22E1424611FB4487D8A2DA212A09749524F004CDC76B8F6339B11041A3174B8FD58B2C6E7B0166AB4246347D25AC489C43288A23A7E59C3CE320E3FCACE6B6277400ACF9E924FD12C0805B70354F3AD8DE92644F8B4936C81CF301FB87A7DC4578628868ABF501626B045D48537F2212A3FA5396C1C857B1084B21B1EB968AD60B43181C77712001290300C9CC2A3D6562A00FCB4E5F11C2AE412DD29181A034725A0CC75E2BDFB851DBFC28AB3362B8CF378BAC9939D340317C64469C27D8F3675C2A962DC7A00E9F67BA1EB8094F0B205388C59223C7BB963D8E21D933B779B360706AC5E06033C1907A8C8EB6E6017C285A8827E28B8CC7A5891CA381FD50D5EA231FEB5A7A4E4380FB5067A6505FA627D19715667FC5602B041CDF9074A3C58BDB9C77CF23F6AD1005C4A6F2581695F444578A734F8FC3E9FCCC07A873A5AD04CB2C724F6820AB1C081306B429F92834FE8BFE401448431BEBC4C7335EA0EC7050A0A49459DB286B774069B161DCBF3BABB5430FF727A419B1AF2371E1441BDD53C03E5445391A401668B693C6503F35CA6CC7A04CA298FFB81CFEAB4B8DF400E1F670801E7014DFCC8B3D8BD953BACC1D61F184A07B383A8325C1251A56E8BFCA75C04CF8653082D52A8D6C944191155AE886AD9AC010AC50BBD2BBA9144785F02B7B7BBBF7F1AB8DF210241F4AEA1700D840AAD5E2761C4066165A43C487B3AFF68BF3370891933BF46C13BE82331F189B678150748AC609B3378C3581AFF91C9A4F2B9C040661E11A917F7A604100E5B9863B8D3B55BE32CC1F40DC47C4F02622863A560F25B03864502F4304F1401B90E4969EC110331A418770B1CA626B3A86659AE9B7B630C6DE1576286976453377663950353BC8067691BD1E1C24C006204E3502C171BD43C33271548EDDAA641677D8D1161152216A4944D480440E3B418042184194C6E39FBCCD353C58A6C3BAD16A33D666D601237F341B7AEF3C98F237E585C8E152B444DF15A768B20104AFC8CE55CDA630D36C048C7D5206708B4699726C1E2FC3A722CB514936B2729D96EFF6FBF9B05E34251304A92EA873A21654F70C4632113C36F62CF40BBB2C581B2D694E369C0DA567371E8E53C328A59BCE775A625C9F5CC185E0F + +z: E15F322315265F9B847960B7185D962761ED79C62286A0DFDB13DBF550CE0107 +d: ACB7FDB596B44A88A60ED74A3FAD9EF745BF5BFA4902CADB891EC5CA45F685F5 +ek: E42705D23A30A72638425280BCE72CD596BA2AA6B736A922740C52A0F470C0A1311ED82E15F4C5D865B6BE18B4810127282C1BE22A9BC580784EF371F18482F2E43777396A3E6A77FA284CBC6C663D63005DA53232B06A27D65547FA58E263C00AC701B3B6566F199F5EC172AD4BC12FEBA212C7159C90C589551110066D87E01D54924ADFE0CBEC921AC7B273B1FC400F6B81F23073D6AC0D7AC34F2DC60C08777C5559B013F23B91A743443B1B38375E91C254D8721F1AD2B02E9C566FAA294ED75BE16C0B0D82C1DCC8AB4A6C1D6E88B567C11A49AA055EEA87117A4C5B1C030F8ACD3AFC69D5FA8F082210E356A426C973A17492E8C3C64D87087A54589BF468071C0DAE016B6B51C52B628BEB986845B484FA213A27C6A1D505AE09D499FB92C17DF2AF010C71C1FA0FCD89A59EBCBDA4B7AFAB2CA68421AED1C464892C5ACFAA556DCC227929B6670904A01C5AB2AA0A5A246566C61A7BB9CA07630DD005CF8705B1B414CE8070A43D30CCB45572DEEB253E19ABCDE790A7F4BADD7863CB187FE8AAB9B0CC1C8309415F54AF4BA6BD6DC74C3AA13B0126254DA08F833C71810092E7332DD8CA4CC3199D4EB25405D310A3E9A6E65C8BFED0C6973A6F324CCC3EE16CC3E405D1C036086C5BE644A1A3709DB22A392EAC889CFCB6D9A03CCED44AB241AE735490EBE44A8B333C462891AFF72F2482C9B52B98106BB010A4CF03214330C5AEADB9B7314273D88880358A568DAA16DD8B496B6CA9C758B74F207B5001826391175EAA2DD9912E84B77EA257052065364949CE57365CC457854681729B389A7CC4782F7590EA6ABC49C40B4E23A2EF916F53240CA7BCA58370657490C52AC535E7CBA1CC58CAF52585DC148811264C2E6AA6728A254BBCC983D71716E82B7A53A2ABE376A5362E74F57BEB1979E2FA77998C869D6A799D0934D8475C8CB28AEBB3522387251D11352520C9A76697519B2DB6093CCC3A5A99D75E136C9A3D305F46F3176EC07FE4C30E25B21BDC2996DB413E0350AEE4A96125C5337AA70469F392942037674561D85969AC6664F6D92DD9B5108CDAC8A6E86E8BC1C1DF319AF330701E23AC743232680B3370B471CCD91761C110E309B5D77A48F4E06A681A2B38ACC3185946E7DB0D6EB1837D3199D83C676D667AD1CB51DC9982D3D36BCC121627D21AADF01928F32DF347CE495175F84641CC0704A24B7D099C416D3A56CC5CCD3ACA34F3F670B64C57AFD0591A628E4A19A83914C14212BB4D43AB1548CC772C25F38619692A5DD88730B093AFF5968B9AE60DC8AB8BE3D13F16928E4CD0CF604835F23B101BE7903876C8BB9970BC74A0E4752A67C4BE2F20C10BFB7765D863828565D190C5384273DED40E331168A4AC2A6CB8B0C5D600F5359BE70AB0B74C3C427857B34A9D2B7731DA6ABA7206253A67C22AAA10F7ACBFDB093BB7647B50D6AD449257AAA9CF29E5C5AA2982D6E0B67813BEF12B4E2A9669FB94394E34BD9583142456CA048763E0EABA7DDC48E3CB80736C6121F1888DB3CF85177942F322C3F029B427A6B8DB4976E1B80E9047BF91BDF2449F0B20C336E041B587182DD4A459C4800CA85308658E3BA78D66F47639AB1B70C45B43F70CF8197803BC1EC4A4424DD78C26039F4AC3C84F98A5AFB45A6970158E41296B925D33F68ECCD3B5A0B415F5B7CDE3473859DC48279255F9995561C205B244728DFC4F625316776267BD468BFBB287097911F8C2A32A0CBF14C3C708F9C4BF70C612C61FBA3720EC62918149165BBCA3CCD48CC8B272E538A1E818843B272DC694AD8E265E830034ACE5708CF22AE3D256745B50EC328CBF03760CA73E7E35241776864856BFD7C18577D411AAF99AD412CAACF44456228DE0176FA0E13CB925140F8A5BE9589F4B6B199F751B7A58751DB35680C78C69F83333155D80E08FA92A5B0FDAB909F9223D167333765D033213E3A65EB2B709BA200D861012D7145A9039C4A6B032D9D5802846441C379978EBA4B9970B275271292379B96717E48680FAE36DDC7018AFA8B3C1929AD62268F12AB87FEB92535A655158CE4957A1BE37C9922B4E08D57D85525D6F2B7698331FB3F1219D91A1272B7E92D3245E4649A8257BC362BA0E0462991A481A0A602809C46F4342ED40AD99FC74366406ACFCE7708AE11AA2C3436EE06121FE6CD52FACE80AA5FA2B65A0B1B28F8B28DE +dk: 8F841DB58339CB208908CA123BFA4FB00413A60A9EA76648FD69BEECE0B731042AB206368858B0AE798A7A26A1C96AA302AB998F352634CBAF93F81EA4C280830B8DE435CD4DFC3C3674CE2338AAF6543A57BAAE1232780B578BC3FB4230919CA56065A6E466FC19B9322404499199ACCCADB0236D6026BC927C58EA225D34A628721C746D2008C7B2A600CB94E5F93351088A1C6609CC350E5E0920D4D3139AC08A28A0A5DCFAACF057C3DCD933DB7A8159A657CE257481AA1AEA69BDCCBA961B82C56AC15A74DA139BF388610879EA716035372042984AE027C910E149FACC954762B75FE41214A7B808B168FA728F4D52500C88B2E96A121AC9249C3761A97C7333332CFFA182018A15D4B550A930BFE60AB73F20573345522162A5DF021C19F290567A95ACF4622A919AC20BB42B11BE06852094947897B4A7987981F989A29A13C31288B8C30B36244894CE502DA3967DC0636C94810A2A0B9EF72B215E936E330556F0309604B99093B246AB102553117CA48458E845CB87399A42499A0F7913A15358F334577D84004CF23522695EBC6630503B7ED77076EA7C0ABFA4218943413AD664F761C429011F8F0A66E5C22794F60E9FE2B995C004FE21AEF73AB339468735731A969A3E0E192998933F2864C6BC9A82B1A5A542CCCFB85CC629EAC5BF2CBF1F1438ED5109BE13B7F182280EFC07D937783FC5407215742329281AB7B8BA687DF328A3380CA3E4C09523B056EED254A4B7AE6C241EEE61A340528308D3C11F96A315D0B4B02BA47AC14388F2C005A0B15C75CC3D72717B2B13AE8A830AE7706064630A1C0B97858B75B228E7E6C12F1344F656A2D0405E3E932BDE3846F91AB60E183F2469C2A0B47E59E20B89303DFCF89EC1368243B03A4864C26D58B691026B2E627E9C36BAC877C048708B058B02B5327B3325423EEA5C52E311A6E208880A688D540127DBA7FF46CBBC35784BF538B5B04CE774BF5FF82BAFC844445719CE532D928339A19744E9F6391852B5B1E2C06F61CC2C28A16D3BB08081825F040CF0AA489751CE8C99CC0930379A426D3E9A15278B7D40021E5F890B06A767E65088311A8818B5088946CE9871A55D602B8FF389FD9B2E80060E053B82275436FC9690D1453B256CC510735CCE3331D109C1247B6875DBA71079A353293B624C6494762BE23B135DB14599F41CF3BA8EE07CA032E652E00B57A6214106C587B96097B45390A4431ED2B524C641112A95C65F93CCE87816E85B7955A91741650C4E8A944FA088CBF274E31244F77A4C50A98D44B96FB8625FFACCA584AB18740C8278A8ACA2E12989E60CE7A70145B394B7137EA86901D629C63ECB42BC59673DD73515DA3BE2C74D595B6E15AB4324786574D842A2518F2247ACCAE3012AE36CCBC48038BB5C69B3BF95D59016492E2E923CA562C8F8F444CDD3756A69336EE972786B88F2DB42DBB2309228279D6AA29474C2C94721556131DFD95E0520B0C23C2C1B49683D425EB313954154935CC06109182BE7C8A5D45A46B97196B6B794F4944EBE2052B3454EDC814938868FA1FC7ED4D76342591BA5EB96C73166AD311F7C80CFE7C149A2301DF1B8BB96C7742F03B5B3541A8E05418A7A3A89E1841B627D85CA7B6D56897DF5C5977A1E67C2B5D97894245620DCDA7B3183771081B4FD77476440013E417FBCFC4C38A51C1045219FEABD3C1258203A716FDC922F95CB71C15BAFCA2C777812C1AC390D540803B917D153B75D7A947AF328B620B93348CE7342212A286FB63812C2930920933473C95BB383B7AC054E4DF8CAF7D2A2C7C8CB3FDC5CA949177B40AF5DE102D9DB382D3C6D918155FAC94EE088A067C43BA21778D4E78FA0157C8457586E1AB6A07922FCE01407D63E7366BF68116EECEC8F01C262F766008C9A33C2A5A7C4575E95DB458E9C8289A30EA4E32E015856FCFC03C0EABD2021473B251C279ABC66D87EA1F66AEF5A8189544DE7A95C6F8544D8481786C72BF0EA329EEC4D2423846770707D922DDA38601B228E12451657725923B25CE29A10398B5D16492061D77E48EA023A929A4EC3634FA0073CB929CD1A42577B1E6F89CB9522A28B6A9248D243D423884E03799E6413F963462B7B3BF0276BAFE5AFE2F161EA76566FF4406649BA3C1B5811188FE42705D23A30A72638425280BCE72CD596BA2AA6B736A922740C52A0F470C0A1311ED82E15F4C5D865B6BE18B4810127282C1BE22A9BC580784EF371F18482F2E43777396A3E6A77FA284CBC6C663D63005DA53232B06A27D65547FA58E263C00AC701B3B6566F199F5EC172AD4BC12FEBA212C7159C90C589551110066D87E01D54924ADFE0CBEC921AC7B273B1FC400F6B81F23073D6AC0D7AC34F2DC60C08777C5559B013F23B91A743443B1B38375E91C254D8721F1AD2B02E9C566FAA294ED75BE16C0B0D82C1DCC8AB4A6C1D6E88B567C11A49AA055EEA87117A4C5B1C030F8ACD3AFC69D5FA8F082210E356A426C973A17492E8C3C64D87087A54589BF468071C0DAE016B6B51C52B628BEB986845B484FA213A27C6A1D505AE09D499FB92C17DF2AF010C71C1FA0FCD89A59EBCBDA4B7AFAB2CA68421AED1C464892C5ACFAA556DCC227929B6670904A01C5AB2AA0A5A246566C61A7BB9CA07630DD005CF8705B1B414CE8070A43D30CCB45572DEEB253E19ABCDE790A7F4BADD7863CB187FE8AAB9B0CC1C8309415F54AF4BA6BD6DC74C3AA13B0126254DA08F833C71810092E7332DD8CA4CC3199D4EB25405D310A3E9A6E65C8BFED0C6973A6F324CCC3EE16CC3E405D1C036086C5BE644A1A3709DB22A392EAC889CFCB6D9A03CCED44AB241AE735490EBE44A8B333C462891AFF72F2482C9B52B98106BB010A4CF03214330C5AEADB9B7314273D88880358A568DAA16DD8B496B6CA9C758B74F207B5001826391175EAA2DD9912E84B77EA257052065364949CE57365CC457854681729B389A7CC4782F7590EA6ABC49C40B4E23A2EF916F53240CA7BCA58370657490C52AC535E7CBA1CC58CAF52585DC148811264C2E6AA6728A254BBCC983D71716E82B7A53A2ABE376A5362E74F57BEB1979E2FA77998C869D6A799D0934D8475C8CB28AEBB3522387251D11352520C9A76697519B2DB6093CCC3A5A99D75E136C9A3D305F46F3176EC07FE4C30E25B21BDC2996DB413E0350AEE4A96125C5337AA70469F392942037674561D85969AC6664F6D92DD9B5108CDAC8A6E86E8BC1C1DF319AF330701E23AC743232680B3370B471CCD91761C110E309B5D77A48F4E06A681A2B38ACC3185946E7DB0D6EB1837D3199D83C676D667AD1CB51DC9982D3D36BCC121627D21AADF01928F32DF347CE495175F84641CC0704A24B7D099C416D3A56CC5CCD3ACA34F3F670B64C57AFD0591A628E4A19A83914C14212BB4D43AB1548CC772C25F38619692A5DD88730B093AFF5968B9AE60DC8AB8BE3D13F16928E4CD0CF604835F23B101BE7903876C8BB9970BC74A0E4752A67C4BE2F20C10BFB7765D863828565D190C5384273DED40E331168A4AC2A6CB8B0C5D600F5359BE70AB0B74C3C427857B34A9D2B7731DA6ABA7206253A67C22AAA10F7ACBFDB093BB7647B50D6AD449257AAA9CF29E5C5AA2982D6E0B67813BEF12B4E2A9669FB94394E34BD9583142456CA048763E0EABA7DDC48E3CB80736C6121F1888DB3CF85177942F322C3F029B427A6B8DB4976E1B80E9047BF91BDF2449F0B20C336E041B587182DD4A459C4800CA85308658E3BA78D66F47639AB1B70C45B43F70CF8197803BC1EC4A4424DD78C26039F4AC3C84F98A5AFB45A6970158E41296B925D33F68ECCD3B5A0B415F5B7CDE3473859DC48279255F9995561C205B244728DFC4F625316776267BD468BFBB287097911F8C2A32A0CBF14C3C708F9C4BF70C612C61FBA3720EC62918149165BBCA3CCD48CC8B272E538A1E818843B272DC694AD8E265E830034ACE5708CF22AE3D256745B50EC328CBF03760CA73E7E35241776864856BFD7C18577D411AAF99AD412CAACF44456228DE0176FA0E13CB925140F8A5BE9589F4B6B199F751B7A58751DB35680C78C69F83333155D80E08FA92A5B0FDAB909F9223D167333765D033213E3A65EB2B709BA200D861012D7145A9039C4A6B032D9D5802846441C379978EBA4B9970B275271292379B96717E48680FAE36DDC7018AFA8B3C1929AD62268F12AB87FEB92535A655158CE4957A1BE37C9922B4E08D57D85525D6F2B7698331FB3F1219D91A1272B7E92D3245E4649A8257BC362BA0E0462991A481A0A602809C46F4342ED40AD99FC74366406ACFCE7708AE11AA2C3436EE06121FE6CD52FACE80AA5FA2B65A0B1B28F8B28DE9213ED7BAA4999FD5812E87439CD569F1510F0536CB5A34D77C48FCD82BE86D8E15F322315265F9B847960B7185D962761ED79C62286A0DFDB13DBF550CE0107 + +z: ABD71039AE2E2700391011D9CC8265C2D5C9779002D54E1BDD9607402054CA95 +d: 0AA4E8D918201BB98464963B076E35337FF3265810723E01C435954DB18B14FF +ek: 0902C611CC1D7395142836692CAC578AA1AC7B12970599690FF9958A7048B7D276DE2088D0B06E5C3971190909C6F216287B2344E3922AF9A4BFC1CEB7E5AD35302E555A504B6B65F710356CC30DF957BD60E974FD31729EB63620E30154636FEBD84DA66BBE270151787B7A8B2BA3431491860C8837B5A93C35C62AE2BDBA43BB58D4126EE8139FFB5BFA110C4075C34F9AC648673EECCB59AF60CB8A6372B69C6E39D418AF88BC23161812486A5F2BB9B2D970B811C360329593CC31FA47BEC0FCA95C226E46A6BD5F39674458BD1683CA4673C39D158D9EE13E9736A6863229156BAE9340532D1A1BFBF98145930EE0A5229323468F7B5A9AE9755F6B603A4360CAEC054276BD3E5A4BF29C85F1DACA2C61A514C1449F94A63C4A3CCCA06D195945EDB3C0DAB07FBF75BFDE57A454C564B99C7DA3E5BA095A462C741E634B3D2DD9B7DF837E5FC076A0C363389C8248036EE55477F55BA27F17740E0AB891D0305E77A284ECA7F84CB3C5483FB3992610384E42A731DB8C3B65B6BBAFF04039D09A9BE4494637A9599CA7A4C42FCCA473D4E88B830A4D2358A324620F9B765A0141CB57DC1B70918053611B7AAA7D6D973C8D4C2CC135940C3CA9B7385823C8A86755717A63BD8EDC5712335786B21CA4106C3E6AB14381A87C6C6FB70635159077BE8369699823F54BCCEFEA3D3AD61613409B41C007947015364BCF42F184BF3BC8B03C6976749347EA7564076CAE9360F1CAA3BDF183889766FD428D13936B25EAA8156776C813705B79CF11030ABDE33B87FA4200544740598EA451AF9ED65CE3D0088F948AE07134BC2830253C9A680477C26180621BA679CB78F4E1304743A2AF124054499A21A9B510C78B2F875445B8AD58A559CF624DB8F8ABD1188812C122EAE81AB0F50435C77D72918E03DBAC7FC61DE848B4BC1729140602E738734B43CC62CB48B8131A2E257D82CB58F69AA6C4A348EA48277A0C8504D07323C61C42B68E5A212B01D66DB645BCBB6B34AF9B8AD7F709EB3720C1B79EF09352A078892787AE73D0B5DF546CC5F35D84940999D9CC59FB39C41762AD4AB260E6795F37372BEAC07005BF80F4A5620B4F23A2255D212746F4CFF73995E53C075C6790CAF4745A2AB8CAE2A89D94A601673023819166A709010C9D4A42CE9AA8C96381B1A7A236781C0C0F10C653F71353224242D3A8F0786A31703CD2063929393DAC152186C84253825481FC86BDFC70E3C5975D3A1DE8F23002126A05DB29FDD143A1F60222D7409B468138A8AAE2A34C1FFB6CEAA863CBC9666DBA1FE7138DE19AAED65256B15CBB08110E25FBC7209750C2CB225F6C5C97836AA04BA1B636BDE9235709483998E85BC1A28F713CA3935505E840A82284B879100389EC2D2A5778C990CCDE45B44D26A9AB74C28705807312681BD662F3E5437772CB7C383D72A53537404FB551CC87274294A85C8BB8484C8113E29708664190F923A387E81EBDAC3CE5890A2C440B9D93323E0588CE003606A5204B93288EB6B62F657C6E511059AC4B3DD57D402064B9C086DB955A7958C399F17AB353108E821A1C1084E11B20F2123C1CA6600AD330587988586C8F698BA258165FA3199A423548EED0B46535935C964BB4A0988B2346BD64BA7FA23D42FAAEF424901878012A772FC4815C26D54037F66F8BBC0E82C7753E16C40E1C17C2BC35F470251393B3B7E84534226DB0237DA2960CFDC99EEB4CA4AFEAA15B9271D9F74DF6CA5631935579AA5E189A715827220CE26BB1C07D719751560765E5A2296CB4BD9C44C4D6376E39A89AA8B70AF987AA0C3C10E714931059AFBC6B07B3523B1175AB9E0902BAAA56754A76C09C4CE232B5EED28F58F097BE3A0F5C290615DC7A4C4C328E413D8E43487E124F8C28444E70A7AE02B64D618D8831609CC939859BB100FC31513B90CE30B59061C38BD17DD57A6A2B0A3640E591524A06A6063259467D1F0821813411E62713A742C0ADE48FE3575338356F4CE99C1995667C34CD2582C0F9B7C4A3DA412C737253A3C3957929D5E4CFEFECAC09BB557231A11ED94F3C7A1BE5060313F540EE5576221386DA4C6A7CB71E307B395DB9C6D7DCB256C42D6F52908C565F06DB823463A634AC57299687641A556F5599F961B6E2F0A30053BE44150E1BEA7DC6D1A4488855127512CE9B2B1F4C07FFABDDF9E7FC37FB0A738DED0707 +dk: D4B51192A45D0D05BA48D20D7F8210DE386535D2A9204105AF184B50C81E89889DDF30942A9352C6723D2C94C31B709D452266772A8D69D2784C8332687507A1F678142C390737AD55C42CB7D37A28E9B9A18C374D220FC5A9560F655588439D69616620237225B543E6FB67ACE6B149BAA6AB5C45E334B65C87BFA368C581389B1246639B8550F9D94A61BC806850222869AB9041858DD30C16D0B62B53C85A345F26E3113F51C76F137FECACBB26C6AB1C3898E4AA73889039DD61CDEE46379812CB68BA0A03252199F102C661427088A89EB64D9E6CCE4E9929C19CB91BFA2A816340BE89A636339E67A124F659A45E6A061027533BA635854A0CAA45998E6BA21CC10E53A1A9BEB42DF0107F6765C7B9C8A8E98448CF2A6ACC6514765935064417C5E094B038123AF395B78746E4B66AB3E7BCEA783B4F4B5169478C78B82194961F80FC64AD314CD9D089C559815DD91533DC04B9359FD7936D7B8BB5BED435C77057316440926766F3A665F361BC9314230BAC46AEA6AC7EF648C9901DF017BBDE558668A606809CC717C49EFCE5B9F469BE1A0A9853451B130A952C137F6812978270A194C5CFD899CE2E656FE9CBBE8C3C769C700218489DAC47A07CDAA36EF22EE7125EC5223FD959C335B70C56AB8D52333B4C6A1C12DB76A4C02F7E7410CB646E75A5301F19A080561FDE627C9E42B275FBA0800715B1D77643A8193EFB61DDE898305B4B53140A76CC851FB956FE766C8450100A1C9EC0044C32BC17948C3D4CF44C70077447147BCA735EC9F2251A423F96D694F0F01ED4813713545A791282F7086B025BC4B133B86EB4856A3C99F21129AEC57175818360D678FD549ED769365E4720B3A4A433217DBEBA261C48B75C26828199904820C8FC80098DA6A0A9463B24FA5F43A445F33B38985637AA30CE6FC83D7127BFF9DA633E25A362323564D25622064AF20C16D90620AA0875D65217A389438D236EC8F2C18AE3BFC95296CB951A604B9FC15C69A5927F86D98582C3169BD16C7EE1403BCA5BB1C2238B93B5B0F4C6E3969D98325444A09DE2636DA4A046367358CBA66B28531616733FD816B32BB714CAD1B10DF570062223F6366424BB0388DC1A6CC9AD72CCAD22EC51C671BB859C4A3BCAC9525342B6EC97DB62ADE9949339DA5338D07EE433A868060570E087C34B8BF62ACF15F05657869556CC00713CAA9E5C2AF40474F472B3E117B9F8DC4D148183952A0553F49EEF609F3CF12DB7B102855677A443BD8C94429C9168BDC06CA0FB3781E450DAE94A96E4239DF01A74FB3C016B4AA3463AF3E18D8EC653E838249937B50DB57ADA1CC1215972B410AE459BA481836215E12655534A6F183ACE939DEE553435E9BDD00B4273F0A99CD42607E903E85864F0D27CB4A26474265E2E7A56A576971D69C657D237C05CA7C8070F0FE3A8A1AB8549866D32A253F7B4AEBE6521E557131D361999C5CD6B9837299A2100A52450C9AF85890833A9AC8A3B1B1C0B90839295BA6997BDF262AA93196AEA9F9EB1485E8415FF7006CAEC9A0548AFCF6816938A5E77D5A383F6B3C140786A3626207218883597BC3670903364BD275AE420BAE20522D5E69F9D292E7C5A6A3F3134F767004D052E1476B2A95B790B295AE6F68689828F69EC7965F495E7667E7B420EA2E5C738964FC0257E9D423B98C409E9A27B41E0B87A396EC079338019AE8DEC20DFE0477E940B6233C7D6244A201A0DA4B45AE785158C545AE6B28B49F799E030C762F0BAC8987E12F079D28C4BF7074BED316AB4580D21A8CEF4C30D637275FA2C6884E61B6843C4BC696E8615C47D573FF20BA1053C4259076153BB9314E6CA62F1AF91F594ABD444BBD2B3B203A075083AE8036109710F2B169A688CBCF6D563FAE94D3DF65BFA92B1D20546B5A3A0FF6B3FAB634712566B0E021D617232C8029EB2F76DF624C8DC77AB3789739AB12AE3AB59A7B612A40970D5526023F690C8F1A9BEB4A49F066AA8073E1F865DF9313A63464C65510E078B61320A34E3624E2A6A3E16B7BC3FD995436C92C28B18B149C26754C0DFBA3121778D8E345E6FA4CE8F104F71B77FFE64C0AD945F1F227A031522D07990F88BA91FECB244B5936E87298FDC1836E82C0CB178175CAC5A36C27D3B71EFF5ACAA39200902C611CC1D7395142836692CAC578AA1AC7B12970599690FF9958A7048B7D276DE2088D0B06E5C3971190909C6F216287B2344E3922AF9A4BFC1CEB7E5AD35302E555A504B6B65F710356CC30DF957BD60E974FD31729EB63620E30154636FEBD84DA66BBE270151787B7A8B2BA3431491860C8837B5A93C35C62AE2BDBA43BB58D4126EE8139FFB5BFA110C4075C34F9AC648673EECCB59AF60CB8A6372B69C6E39D418AF88BC23161812486A5F2BB9B2D970B811C360329593CC31FA47BEC0FCA95C226E46A6BD5F39674458BD1683CA4673C39D158D9EE13E9736A6863229156BAE9340532D1A1BFBF98145930EE0A5229323468F7B5A9AE9755F6B603A4360CAEC054276BD3E5A4BF29C85F1DACA2C61A514C1449F94A63C4A3CCCA06D195945EDB3C0DAB07FBF75BFDE57A454C564B99C7DA3E5BA095A462C741E634B3D2DD9B7DF837E5FC076A0C363389C8248036EE55477F55BA27F17740E0AB891D0305E77A284ECA7F84CB3C5483FB3992610384E42A731DB8C3B65B6BBAFF04039D09A9BE4494637A9599CA7A4C42FCCA473D4E88B830A4D2358A324620F9B765A0141CB57DC1B70918053611B7AAA7D6D973C8D4C2CC135940C3CA9B7385823C8A86755717A63BD8EDC5712335786B21CA4106C3E6AB14381A87C6C6FB70635159077BE8369699823F54BCCEFEA3D3AD61613409B41C007947015364BCF42F184BF3BC8B03C6976749347EA7564076CAE9360F1CAA3BDF183889766FD428D13936B25EAA8156776C813705B79CF11030ABDE33B87FA4200544740598EA451AF9ED65CE3D0088F948AE07134BC2830253C9A680477C26180621BA679CB78F4E1304743A2AF124054499A21A9B510C78B2F875445B8AD58A559CF624DB8F8ABD1188812C122EAE81AB0F50435C77D72918E03DBAC7FC61DE848B4BC1729140602E738734B43CC62CB48B8131A2E257D82CB58F69AA6C4A348EA48277A0C8504D07323C61C42B68E5A212B01D66DB645BCBB6B34AF9B8AD7F709EB3720C1B79EF09352A078892787AE73D0B5DF546CC5F35D84940999D9CC59FB39C41762AD4AB260E6795F37372BEAC07005BF80F4A5620B4F23A2255D212746F4CFF73995E53C075C6790CAF4745A2AB8CAE2A89D94A601673023819166A709010C9D4A42CE9AA8C96381B1A7A236781C0C0F10C653F71353224242D3A8F0786A31703CD2063929393DAC152186C84253825481FC86BDFC70E3C5975D3A1DE8F23002126A05DB29FDD143A1F60222D7409B468138A8AAE2A34C1FFB6CEAA863CBC9666DBA1FE7138DE19AAED65256B15CBB08110E25FBC7209750C2CB225F6C5C97836AA04BA1B636BDE9235709483998E85BC1A28F713CA3935505E840A82284B879100389EC2D2A5778C990CCDE45B44D26A9AB74C28705807312681BD662F3E5437772CB7C383D72A53537404FB551CC87274294A85C8BB8484C8113E29708664190F923A387E81EBDAC3CE5890A2C440B9D93323E0588CE003606A5204B93288EB6B62F657C6E511059AC4B3DD57D402064B9C086DB955A7958C399F17AB353108E821A1C1084E11B20F2123C1CA6600AD330587988586C8F698BA258165FA3199A423548EED0B46535935C964BB4A0988B2346BD64BA7FA23D42FAAEF424901878012A772FC4815C26D54037F66F8BBC0E82C7753E16C40E1C17C2BC35F470251393B3B7E84534226DB0237DA2960CFDC99EEB4CA4AFEAA15B9271D9F74DF6CA5631935579AA5E189A715827220CE26BB1C07D719751560765E5A2296CB4BD9C44C4D6376E39A89AA8B70AF987AA0C3C10E714931059AFBC6B07B3523B1175AB9E0902BAAA56754A76C09C4CE232B5EED28F58F097BE3A0F5C290615DC7A4C4C328E413D8E43487E124F8C28444E70A7AE02B64D618D8831609CC939859BB100FC31513B90CE30B59061C38BD17DD57A6A2B0A3640E591524A06A6063259467D1F0821813411E62713A742C0ADE48FE3575338356F4CE99C1995667C34CD2582C0F9B7C4A3DA412C737253A3C3957929D5E4CFEFECAC09BB557231A11ED94F3C7A1BE5060313F540EE5576221386DA4C6A7CB71E307B395DB9C6D7DCB256C42D6F52908C565F06DB823463A634AC57299687641A556F5599F961B6E2F0A30053BE44150E1BEA7DC6D1A4488855127512CE9B2B1F4C07FFABDDF9E7FC37FB0A738DED0707C266F50028D4382821B206CE45306AC320BAE56F49DFDD86F37E1B36C23DC86DABD71039AE2E2700391011D9CC8265C2D5C9779002D54E1BDD9607402054CA95 + +z: 177A8DA7AF8DB3F712E1653D05A47D61B59F4F4950549382E56F761D7126F8F9 +d: F43EC0E96A791317938761FFBE97332D5D85F52D22BDA6303FE7E7107DB608A6 +ek: F4C227FF124D62F0269297261583A7D7EB570E6A52C8B9240D1B1A79946FF3990DDD20AD71284E7B004656270DFBA0681DD2C5C41939D6391F4AAABA0ED3C6AC55B4907534DE05B775CC6284D53D045BB611F5BC62F603327C143E100B6678176A40A4949A923CA651F1D2589896BA74E41722B3A0C1C652BCC7ACA769119332A080211CCA8AACD4799513BB0906A063F2AC750C99A805B792699400F609960D177BC006227BA40CF1C547BD81C9F5D67947B6A7BFABA98415C81A4137CD2CBF024322633A8B1B242594581ED8720A794293FDB282EBA064DF25301FEABBBD14BA4FB8970B52B4E3574BC57218AEBC5FB9E731F5A85CFD1154B42575A0B3BEE2FC97CB691AE9F4361F11692D9CB07D793A3C6588ADF24FE098B0CEA860E0173C35223C678A10CD3752E97766B28BA562D1CB93935E97E73B6DFC3248217E44FB08684B5419D749D9350F143CC66E9921FA6C4180D43A721424C06864EA98CD3E60C12020AE7123ADBC2CCF40577BA4F87E10B755A1567941F98E0D0A0D26A9303383026D021F2284CE313AAC3C0A765D11747EEA8BC2832EC87B22EF31AD0D1409FC66A782B2B09AC43EBFE215862B6462996A3703525281BA8328621E436DBD533AEA69B62B429F83A78843051AA0D003C6F8BA224148E15A5AB39A6EAD69262627C7B0C46730C66D2109512D424849A53CE58B9FF463B87945CF9E253130A64CB1F18A2ED875D43026BB8AA2B87ACB00186889C082391C95273BB864E548ADD29A876B3445A471B685C659E213853C62E1A802E2B3C4C392575620597C7131F2764AE68B95AE190927E110A10A553E008F39054DE62C16912064F0B7711EF59E85E50E30395A36A11EAED23CB48A01C8F67729F6B638E3B6820A0E530ABDE31A97E7DB117B035897952F0A0473AAE5897A86725C53855AA43A16BB31BE7C564FDBA0BDDB44D6E64E7959C871728C7C5111D989CFB9026902B82544B528D4FA8BE3196C6318CA1BB791B7069EF2D225277C60B03C48C183484250B4FB0A5B05E260E8A9C958CA51F9BC69DA7ACEB006569B427D2A60C070D81C410114E753BF85651E3504418E747B8D787F0237B184834FF8689519034FF6956313120A0495267B754BA5015D8A134688B11160A2CDE5E8B18D4400AB95AC6CFBCF5CE72020C60761128CBCD5BD36817360663F83A7A263B9420A654C7280381092B4D295B3DAC03E918926B5C29BEB0478A01A39A8B0CCCEC05125D84D2872CAFC97A8627866DC7380DE17709FAC24EA1A0E00DAB5990A919E0262DA522CCAF9B0D3F11268D0A2B2BC4D85E641F64048A3557887A266A8DB13EB555608960E49618B1E39708B65151C4BB8D2154CE7B6A13F86B75367B005C9A69DA98B82ABB17EF9678EB50F3F097A6292930191A15FE075BC304D49926B3D71B675C26869B6BB93264F74702E17102DB5BCC881751120CB8D3E05215E4B34A505529BAB1A2A259B7BC7999404BD15272E44B9AA4BDC891E01A21B8A71B46725DD187E2041C07092CFDDC902D3DBAFC29379691644D0E15A8F7378298A8834D1C1B078384C140F460B144826188F51852AE0ACBAA1ADC4D86147C02F61C1B154193B2627C609682A6E656725774A2FC60DE52A3837537C421A58312A7E6BD1CB7B7661FDB3C1D9C51C3A6A44F260982BDCC01FA149697B24B00B76C5DA2908181E8CE21A28D9142F12659023536F392AB3781C74569DBA10506CB79BA214C49CD18A1D9A693734791FDB76360A142B71252B9020099B389AEA8A25796CA43BB5FA881277D742B6C7CC4651CDF47B91C73B7CC816B16F040DCEEBB3E27C68F0388ABE1A4B2B8B88820B30C9D03C1ED75A9E46774B9612C6C039C1F0404F40CAB35369BCAA80FA2C53975C63F75211B1154F94C3AEE4DBB3EEE500091BA629900A54245CBB4C92296769D979530371A0EEC19DC6718AFACCA91D219E37788802B5C162237A7274C3BE821BC969493E884DF2E915ADC3AD6F1919218C844AF94C983ACA8038CC3874C0C080161D5B4F1266420881C906C145ED15692E8C24F2574F80EB3265157EF3E63BDA96390AC160CEE8B6A79B363C290B4B35AEF49CA4DFFAC0F0423249F27A6CF77558F0631581B36E58AD1DB09F4781B8F813B0ED6578FFBA5A73FABA29D94B6F9238A9089CF41BEE300083ABC96CF379FBD0190841D981FE9CFAD1C7FAF23D2426AE +dk: 95937E82B41B65D97063375BF2516320419CE2DA063E41B62E50AAB029407A98044163C56670C75B368D6771AB590A40177073DF486D083C62C5698BC02B97DA59CFEDE6305E3ACC6DCA183093622EE80177BC507DCB8C5780A398FAB838A7CBB7126883A006A848B743FB7D0FD4CE1E4CA026FACC5F981AFDF0AD72FACFA69904BAA9944335B14B9521B492876FE30D07F81BDD7162AFD5A4BAB76E13901CCCA7700C45B385C11F23951DA37740FF58818CEC668992C46B5A478AD221A3EC989F77A5D9B1095F2A7AA0849A731AAD51A6B51B0CBEED2A8531B9A3D3C39E55597E1076AE4B4146740A8A16051A9EFC5C4E016695BA97A26AAE6D850590773D00449CA68A4E65D0463EC15DD46813A7810051203ACC7A42814A7121AA6B45EC9E37DC2F40AB96A1C025835CA7C8198F292390E3D5C9967865F2108DD17402DA657175C65AC47842E1473F9BD29DDE44388695109453B823E204A05A9B3AD6A398B69185028460F8230E3241E4012659E05AAA9CAAB8D8079C65919C8304EB6AA78330BDDBCCA763B91729F81B05BAC53BD31332FABC69D4CDB85CC0DF0B47961731D26A2FC1649A5B53A05CD13109479A75B48F67898C63713EC7883BC3744C9A60C23AF5320C645DE8C242C0B17EB97974CCF76D57180E40330663F9BC737A40C2202F47B22580F5CA070C4488B1B139D0155B1006A7B31A79F0BAB9239B9E4B7DBACB534790ABD0F28141D43CA52792503B4C0CE96B0F505A4E263D1E9429F631447719B8580C902385B221FA2C174866E8872D1B299706B860343BC9AAE6660B77C7E2BA5C8C1CAE4A054A60038743655378080044EC7D45D36411768595BC1D30A43AE3805BD77211E1EAB4C97C9A4F6408FC48551D880B4728388F55519757B9B258781AD2915D40C9DA27961145AABC1666253171A62425C8BA9667322C7C9599104C034C1168A50A47A44A7BD078B24726561488661CF70FB2B7242BC354DEEA94324622B55607F06221A65255C2924982964A2FAC5BBA75CAD6B4677DA45F96DB2F91FA7517AB968A66AF8800AD431423F03936F3614D3ED7236C8A32F16B4DED28285CD46A5AC06A42397A2CDAB0FFE1A70208A226233A84B4AA6B0CC8BC1A4913B44322FACAA7917D119556412880286405EB6C9A7E75CE74C75EDF794A067747AA0B31E99C1F68C25696207C90B97CB57C5088982129811E08773249C5898FD4B86D79BCA5A02C1D389530EBB1AA2ACA1DF1A60FE19649F7026B9229B39A60F29982EAA639D9830074CAC4C375295719C4FCD03A36D99DC6306DFF96A4AA1B0110D37A1E716DDCFB0A322134A978C1D0998CD5A8943B267E2B6B0D6936111BF630B0CC89A549405CB295038ACBF22B6E15788CC8966060EC4BD71255511826CF163A6C45AE24FA8536C39F8C19C7856A3700972FDB959AAD019C04269C97D7CA55121A567BBA5711A7F7E28A13F955DD06988AE2BFF90C4C3C605E0B200DCBF139E576BC367C1D151A8F7297B5C76CB826208EDCA1CB23183397A37A92B233F65494E6E3644A364EB8F05FD93248DABAB286991297EA1A87B947A8C0C1E32A9B336B44E5D045E4418C8BD366DF77C2AD90CA2D690C516B032060C32314CB7DDA818E80456E588248609E4E4BAEC2B30FC1E8A984082C23555093D375FF129CDE4498BFD4A40AD1678AE78C5647B6998212CB0010241703A781727FD755B5907B12350A853440B9019F7BC3738A1A2BB291A549A9892D74BD2FC4B13BBA718F9877BDBA32B7D07F0DF33BC0C19AB3C2B567D7110BD3592274723F5A69AFA632FE8C41AE7CADAA115E61B897C4444FA7099AEF0290A6A13E8D551A3DF565490A825DEB6D808AA7AF377B27355324C355C32358955B883F6BBD42C66801CC443BF34F2FA040FCE4B7237C4ECEAACA821AA8B248841D242B6EA5561B070E06F711528109693AA289740F97A4169758151ED57A15381EE35297016B0699C34F9AE039ABA26ABB11148BB4344359CF14466841C7CEE7B3541B6072BF021E3B8348E078510DE0839EC55C38290F5C5095B429AF7BC970CE46110F54967C42A2AF4A3CD5BAAA5BBB500EA382E9427FE02595B0E6811FE32E932BA6B479114F5B7224F98EFDE80CDDE06BC580B30A5175B9B38958393B3BF0573A7086EDD0A1F4C227FF124D62F0269297261583A7D7EB570E6A52C8B9240D1B1A79946FF3990DDD20AD71284E7B004656270DFBA0681DD2C5C41939D6391F4AAABA0ED3C6AC55B4907534DE05B775CC6284D53D045BB611F5BC62F603327C143E100B6678176A40A4949A923CA651F1D2589896BA74E41722B3A0C1C652BCC7ACA769119332A080211CCA8AACD4799513BB0906A063F2AC750C99A805B792699400F609960D177BC006227BA40CF1C547BD81C9F5D67947B6A7BFABA98415C81A4137CD2CBF024322633A8B1B242594581ED8720A794293FDB282EBA064DF25301FEABBBD14BA4FB8970B52B4E3574BC57218AEBC5FB9E731F5A85CFD1154B42575A0B3BEE2FC97CB691AE9F4361F11692D9CB07D793A3C6588ADF24FE098B0CEA860E0173C35223C678A10CD3752E97766B28BA562D1CB93935E97E73B6DFC3248217E44FB08684B5419D749D9350F143CC66E9921FA6C4180D43A721424C06864EA98CD3E60C12020AE7123ADBC2CCF40577BA4F87E10B755A1567941F98E0D0A0D26A9303383026D021F2284CE313AAC3C0A765D11747EEA8BC2832EC87B22EF31AD0D1409FC66A782B2B09AC43EBFE215862B6462996A3703525281BA8328621E436DBD533AEA69B62B429F83A78843051AA0D003C6F8BA224148E15A5AB39A6EAD69262627C7B0C46730C66D2109512D424849A53CE58B9FF463B87945CF9E253130A64CB1F18A2ED875D43026BB8AA2B87ACB00186889C082391C95273BB864E548ADD29A876B3445A471B685C659E213853C62E1A802E2B3C4C392575620597C7131F2764AE68B95AE190927E110A10A553E008F39054DE62C16912064F0B7711EF59E85E50E30395A36A11EAED23CB48A01C8F67729F6B638E3B6820A0E530ABDE31A97E7DB117B035897952F0A0473AAE5897A86725C53855AA43A16BB31BE7C564FDBA0BDDB44D6E64E7959C871728C7C5111D989CFB9026902B82544B528D4FA8BE3196C6318CA1BB791B7069EF2D225277C60B03C48C183484250B4FB0A5B05E260E8A9C958CA51F9BC69DA7ACEB006569B427D2A60C070D81C410114E753BF85651E3504418E747B8D787F0237B184834FF8689519034FF6956313120A0495267B754BA5015D8A134688B11160A2CDE5E8B18D4400AB95AC6CFBCF5CE72020C60761128CBCD5BD36817360663F83A7A263B9420A654C7280381092B4D295B3DAC03E918926B5C29BEB0478A01A39A8B0CCCEC05125D84D2872CAFC97A8627866DC7380DE17709FAC24EA1A0E00DAB5990A919E0262DA522CCAF9B0D3F11268D0A2B2BC4D85E641F64048A3557887A266A8DB13EB555608960E49618B1E39708B65151C4BB8D2154CE7B6A13F86B75367B005C9A69DA98B82ABB17EF9678EB50F3F097A6292930191A15FE075BC304D49926B3D71B675C26869B6BB93264F74702E17102DB5BCC881751120CB8D3E05215E4B34A505529BAB1A2A259B7BC7999404BD15272E44B9AA4BDC891E01A21B8A71B46725DD187E2041C07092CFDDC902D3DBAFC29379691644D0E15A8F7378298A8834D1C1B078384C140F460B144826188F51852AE0ACBAA1ADC4D86147C02F61C1B154193B2627C609682A6E656725774A2FC60DE52A3837537C421A58312A7E6BD1CB7B7661FDB3C1D9C51C3A6A44F260982BDCC01FA149697B24B00B76C5DA2908181E8CE21A28D9142F12659023536F392AB3781C74569DBA10506CB79BA214C49CD18A1D9A693734791FDB76360A142B71252B9020099B389AEA8A25796CA43BB5FA881277D742B6C7CC4651CDF47B91C73B7CC816B16F040DCEEBB3E27C68F0388ABE1A4B2B8B88820B30C9D03C1ED75A9E46774B9612C6C039C1F0404F40CAB35369BCAA80FA2C53975C63F75211B1154F94C3AEE4DBB3EEE500091BA629900A54245CBB4C92296769D979530371A0EEC19DC6718AFACCA91D219E37788802B5C162237A7274C3BE821BC969493E884DF2E915ADC3AD6F1919218C844AF94C983ACA8038CC3874C0C080161D5B4F1266420881C906C145ED15692E8C24F2574F80EB3265157EF3E63BDA96390AC160CEE8B6A79B363C290B4B35AEF49CA4DFFAC0F0423249F27A6CF77558F0631581B36E58AD1DB09F4781B8F813B0ED6578FFBA5A73FABA29D94B6F9238A9089CF41BEE300083ABC96CF379FBD0190841D981FE9CFAD1C7FAF23D2426AE2A959860220DFD26FEE86E0F4EB1D8E31B240EFFB9EF6091AA0BCF551A09B2B9177A8DA7AF8DB3F712E1653D05A47D61B59F4F4950549382E56F761D7126F8F9 + +z: 79E3B0D4F4AF344ED06FDE8BF4E104753E832294A3D2E4B66BE59149006A7B95 +d: 0596F1E214B29A0CB7A641EA0BB157FE01FAB73B4A9BCDC165FA44C8FD5FBF71 +ek: BF2A86AD3020C241CE4A00913BDB13F82266DD873742A3519E44C39F20874575A780370BDBC32F50F892366C3D3E5A3CBD2A1A9EDAC8D5468A4FD28D18281C4ADB485B033E76B3B604A5394EB6A280F81C93B86839C2198430558889696CA715CA0B901D762A498875DE991479A45725E12340953D95461ED32AA018E33BBA0157F3A6BD1BF07FBE2207D81166F5410AC20096E95B6F48E09190ACB51A86AD4C51AD1733729272BE79BCB14834A230F00C64E0416AF77C2F155776D6528BD0C9762B60350430A3BCC51DEA9966D791A3904A1F6284A32B4C865CC67C1B66A7F00BA3C9971AD846DF61348D2C418DE0901ED19D32582ACA784AC96A55AAE69D27B58973B4816714B2139C2DF5A380739C43CDF0A161AB8535F678FE344C5E4881BAB8785805C615711ADEA09B702201360B2479CC7FBA69868903CED7074D7F93AA7772B3359644B0A3A169A59C177CC60E8B4360978FC7C513A95C355643563BA0371D973F7A991AD099BF94239815C7041A312CC3497E9A40A5D3F9504BE107FDEA73D8769025D75479575F5A45974FAC400F0189076457A2A96D9BC2C1B19C5382C423B3333F0C9B7E26FCA8F2DB01265460A4C253EAC707B39109AF07241DD6A8FC5A9D18494C3D715424108114280F3A5C23CEF53C5507BDF3BA5EDA6327AC15B484793011241305462DADE02D4459419909075C09BA1044B896A28E17866FEBCC0A4970B1734C4EFA42780C380EAAB17C82B96D72CBAA83127FFCD7998071BDF8EC59881AC74177C1E194A20BF5A4DD71C4E03A82D6E40B70986D2A368C53C54BD7B0CCE1B5A161140E01047443497EFB4C4D3FE126686BA354B504B9537C27B21B56355BC0A91F82E94853801801AA5FD8287EB5A1BAEA773EDF16B376311DB6089AF1950A385037DEABA09ECC491F4882CD484604F304730C11EB3C561F36B85D1B1ECAE15FA1326F9EA486CE32978E9C267C70AA33E0113F4C3B618B405A160B4C93BF943C806FB41C62F83200B81AB2CC57CEE96364D86D4630BCA5A70064151545EA9D9A419E41242B6135AF3A516C8DA4447AB71478266E5BF69F2B846075C30F3368B30912BE48A00CA3365BBAE0597A93942396515A72B675C460BF4403872995AF19CC25C737F86B642ED740C9E5477C0154D05860A30C2DD49B14E8DA87600C4E8CA63401DA998D7689D9CB364397C4DD056474C2BEE16060D4408A3E19BF6FF8A331466209F0B428F0316CA89188B9C7B2AC25A7940DB7A1766799361BA984A1BB7E789B2438D6777F92A15CE7A2D156369AB819B116CD99076095C70D265651550BCC1F4307497BB77E75023AF91D31F4414B38CB64CB570AFB56701C17CB692A46A444455C8063A3616590AF6064BC337237ED1824CCD7CFB96B55FFF91D7D4714CBBA74DEE5AB48A28389458E2D43476CEA2B1A0B6EC499A83CEB8EB4C7539BD93D3AC987AD07A1C9F079850C1444D0B5C9CC619614301CD77776661357FA80F29A3CE4A8AF8DF55FB259B754504687508AC12AA81DB8CD19C93875AC5C4CF13E115221EBA49F3BE008D4B80E9EBB8AE0CA997313872010497CF9556DF06D8F766D2025B03099BAC8202C5D90B52C5397CF55BFACEB5A1C079CC02960FB976A735357DF16B90210194627A5089B1D29CA4FE8A03B4FFBB544A645C5FA95EB386408DC65AAD89CDF0285F3745EDA596D070356D350775FA7A088D732A61C1AC57306359B4A642B8AA8BB91A347152A916D33427DAB37143AE14B2D804B0FC033EE2B9D996853ACD202B2689AD945CDA48938BCDB2D8DBA5449C80891B103172381200A68BB7B505EC5A373E15DF301BB7547770A5B21A571CF4CE87B1AF38D3D38329BE9AD366159FF1919DB40233E86BB497652379B9099F68B22EA91552273AB1801CE6BA9FE7B07ACE9A81DBB09B11CC4AECA25B5090C6FD885B7E19941D8561A15CC35046EC191157C393168C80311432C899B0A0AA578460963E7767750560064B93AB148AEF2FC2FBB029C89126535C6BF2DC48A04748D23A6225EE6C3EEA9B68C65BCA2E9C804EA5BDC441BD05293B8C19D96E369B5C3459DABCB20565405824EC3F57475AA4E19DA21A8EAC0DD312E9FC10B56D6C6EF40A130844D8FD68769E2CC08288D770CD00556578D853FE4896886536AF0633EFF38C1439E3E7950091189960045B3B3B18BD45BE846AA63E4D3845BA0 +dk: C62AA41327AC132035DF838111878AE1BC660EB53459381290580906A45376761BEDA32D498611D642173E7CA019DA1AF1E60EE43601F1262D3B396FB5611FDEC023C891407AF4A8ADF85D4C010F7DE70829138F0F520EFFB4C8D5230253CA72A6FA3D4C4158A65C12FB9A36BA440A40B476D8C65CED2968BB18A11751993B725920399933F3B18DFA9A4ED87A7AB277DC027CC33A83E43B9DB68C8F68D72FEE7210E9E1471869B347C79B848C623834C586B341B23203D2CB1AE5E9CFB87A1794D43598EB0CC8836BDD42371AC9B7D0513F4A7840C0371D73BA88A7DBC5A5753020298E3D616A8DB46C81C80045A553984939D7593535D6BF2A330BE54A3D1CC0B09774279F952A59F673298C6B1C078E0FC87038D03304E0C4585577A6842815D9C9F41534F216B5B0474F1574BE15051F3DD69CE3E9870AB13FAAD180C82A1ADC2927A1D20EEA168A97DA7ABCFB617B7570009AC7D212B6D05483B7F54F7C201588A879235823038834685BA5C7649CA7931D3D2B155A3410A76900E4738A24A614AAF119D8AB6111E383BA33A4614823063C31EDB9B031953AF6FACFD3D65ED1557EC879B89F3709D177A8818094B35500A10B30E10C7917956A0181BD6B0817F0D85347430EE6724B5380BEF508AB3B468AB6C8868FC48A62F3445104A41C8C288DDC5746C84301E5315C603F80E9B83F6C16920142611CC32B18BD7AFC28D3D343AAEB8AE7133F88E388AE6C7C4911318A3957904AA51E2905D5A02C30CB57DA0551B4134182C060DBE80BAAC4981B410D1D5104D92BB47D3BB6846937CF6B961FE66BDB5C069A0304D91AA22D8898F8067295DA9BD6DC3408F3636DE5CC6948C9DB2B17DD4651F1419668AABEF031CD06FC63BB9749C4DAB8A160B5A4C6A13F3A4F8941712EFA60E5B426E1BB29F65940368594B681CD30D41377F58254964FF0AA4D3A5B553327762036757429CD47D57DD73698BA0C765B3C539CE41A04A58775E70D4EF38D2B9775D203982479937E5135FF1B944F6CAA0E87269E52B52DDC3958C99C668170879B7FD03427C4F38E147B6ADEA1BF0123B01CBB199644AAEA95B76DA7C5E60839C3EC0D50C4A01E79810BBC1220F612FE34A89B173C7E6042BD876D0EDC2D9A03559027AE0844492B539F2843A2A49C6E969C121CC64E4CDBC624167C22911A27656109643F695334F3C73694758F06E94CBC15385F181EA1B012D93C5AF375034514074C92401A455BC21C8B97AB7D8CA64B58C415B53AB4D322CF28F69882A4C0F5BC060AB09AD643311F29398205753D623EA424C7F2D38CF0E1074F1CB5A9E91B19D91A637A83E15B3DF5B7C7987A4D5FC151E9012021F00CA8E31069F9451E4B6E5D7331E85980077367990AA632009EDBE0432722A825829074953E6BB752C7D86490D7C760E7177F54806CDAC557C70C3DA151B9F30877B22FF8742BE8077C7C82A212BA077C148D90E86D5AFA15AE30362CB287D3BC318CC28FF74AA74536A73009C00E9B8A7F8AC11BEB5CB6CC965D672141DB7784B8BAFA395996FA4DF8C5C014C8B73C3302AA6542950A163AAC35D7C222B1A2CF5C9A820D682B6E98242B28B8B9D32E973B823027211784415BF27E2A0C60125295BC35007E21A3CDB4BEB6E26FF26069DC1BB675032FFFF93924870F0616BCF6679353200152369881182937565B3BF4711882C9823B800EA93CF7889B14F521C5A34C81A6354B70CF02D0C195853846505DC2E82B3F3651815480CB739AA49C55E0B763C9982C69D0669DCC76A3D262C304843FD322E973159EA358E5811D4C324914BB89DC7BB1BA61C4C2E9C25B0886B6F5ABEB827992B6798250975BE205B6252CE3DC5DC2E00D4CB427FB9338D6A19166C2978EEC81A645714765095E89799082AB42D08FD2305159B42C80B13F44AA9FEB46B8F3A5552BA534B9F26A2E5B2C00822CFA573106555C9E8C5B1475A38E4782675B9A6FFA294A7B0A2FB26AA8387C46C20363B2BE83E9AF100211B02701CC0A10220134DF6230874A83C49CA846E1106591AC21B82BB587583C33BC97BC62C53C316AA58C525750225C795424B780EA39E9E79588AA9556B2AB9BE98057046EEEC406FB4A81ED364964C1559EFA623307A891A9B7F06433681B2D5F583257E2968786A77CB6C9BF2A86AD3020C241CE4A00913BDB13F82266DD873742A3519E44C39F20874575A780370BDBC32F50F892366C3D3E5A3CBD2A1A9EDAC8D5468A4FD28D18281C4ADB485B033E76B3B604A5394EB6A280F81C93B86839C2198430558889696CA715CA0B901D762A498875DE991479A45725E12340953D95461ED32AA018E33BBA0157F3A6BD1BF07FBE2207D81166F5410AC20096E95B6F48E09190ACB51A86AD4C51AD1733729272BE79BCB14834A230F00C64E0416AF77C2F155776D6528BD0C9762B60350430A3BCC51DEA9966D791A3904A1F6284A32B4C865CC67C1B66A7F00BA3C9971AD846DF61348D2C418DE0901ED19D32582ACA784AC96A55AAE69D27B58973B4816714B2139C2DF5A380739C43CDF0A161AB8535F678FE344C5E4881BAB8785805C615711ADEA09B702201360B2479CC7FBA69868903CED7074D7F93AA7772B3359644B0A3A169A59C177CC60E8B4360978FC7C513A95C355643563BA0371D973F7A991AD099BF94239815C7041A312CC3497E9A40A5D3F9504BE107FDEA73D8769025D75479575F5A45974FAC400F0189076457A2A96D9BC2C1B19C5382C423B3333F0C9B7E26FCA8F2DB01265460A4C253EAC707B39109AF07241DD6A8FC5A9D18494C3D715424108114280F3A5C23CEF53C5507BDF3BA5EDA6327AC15B484793011241305462DADE02D4459419909075C09BA1044B896A28E17866FEBCC0A4970B1734C4EFA42780C380EAAB17C82B96D72CBAA83127FFCD7998071BDF8EC59881AC74177C1E194A20BF5A4DD71C4E03A82D6E40B70986D2A368C53C54BD7B0CCE1B5A161140E01047443497EFB4C4D3FE126686BA354B504B9537C27B21B56355BC0A91F82E94853801801AA5FD8287EB5A1BAEA773EDF16B376311DB6089AF1950A385037DEABA09ECC491F4882CD484604F304730C11EB3C561F36B85D1B1ECAE15FA1326F9EA486CE32978E9C267C70AA33E0113F4C3B618B405A160B4C93BF943C806FB41C62F83200B81AB2CC57CEE96364D86D4630BCA5A70064151545EA9D9A419E41242B6135AF3A516C8DA4447AB71478266E5BF69F2B846075C30F3368B30912BE48A00CA3365BBAE0597A93942396515A72B675C460BF4403872995AF19CC25C737F86B642ED740C9E5477C0154D05860A30C2DD49B14E8DA87600C4E8CA63401DA998D7689D9CB364397C4DD056474C2BEE16060D4408A3E19BF6FF8A331466209F0B428F0316CA89188B9C7B2AC25A7940DB7A1766799361BA984A1BB7E789B2438D6777F92A15CE7A2D156369AB819B116CD99076095C70D265651550BCC1F4307497BB77E75023AF91D31F4414B38CB64CB570AFB56701C17CB692A46A444455C8063A3616590AF6064BC337237ED1824CCD7CFB96B55FFF91D7D4714CBBA74DEE5AB48A28389458E2D43476CEA2B1A0B6EC499A83CEB8EB4C7539BD93D3AC987AD07A1C9F079850C1444D0B5C9CC619614301CD77776661357FA80F29A3CE4A8AF8DF55FB259B754504687508AC12AA81DB8CD19C93875AC5C4CF13E115221EBA49F3BE008D4B80E9EBB8AE0CA997313872010497CF9556DF06D8F766D2025B03099BAC8202C5D90B52C5397CF55BFACEB5A1C079CC02960FB976A735357DF16B90210194627A5089B1D29CA4FE8A03B4FFBB544A645C5FA95EB386408DC65AAD89CDF0285F3745EDA596D070356D350775FA7A088D732A61C1AC57306359B4A642B8AA8BB91A347152A916D33427DAB37143AE14B2D804B0FC033EE2B9D996853ACD202B2689AD945CDA48938BCDB2D8DBA5449C80891B103172381200A68BB7B505EC5A373E15DF301BB7547770A5B21A571CF4CE87B1AF38D3D38329BE9AD366159FF1919DB40233E86BB497652379B9099F68B22EA91552273AB1801CE6BA9FE7B07ACE9A81DBB09B11CC4AECA25B5090C6FD885B7E19941D8561A15CC35046EC191157C393168C80311432C899B0A0AA578460963E7767750560064B93AB148AEF2FC2FBB029C89126535C6BF2DC48A04748D23A6225EE6C3EEA9B68C65BCA2E9C804EA5BDC441BD05293B8C19D96E369B5C3459DABCB20565405824EC3F57475AA4E19DA21A8EAC0DD312E9FC10B56D6C6EF40A130844D8FD68769E2CC08288D770CD00556578D853FE4896886536AF0633EFF38C1439E3E7950091189960045B3B3B18BD45BE846AA63E4D3845BA001699FB3EF1CB24186CF884DBF62F4BC68D598BEB013F7C438C66E180500AD0579E3B0D4F4AF344ED06FDE8BF4E104753E832294A3D2E4B66BE59149006A7B95 + +z: EF0F95F630F41B3AF911A30E543822DFA6B7684FEE36956D2BCF8FF080C9FA26 +d: D7349F9AD546CFE9830E1197072B6ED9CA21E8E0423F145F1DB84A5AEBA230EC +ek: 4D09B276CC63BC453FF20B31FFDCA2FC3C34AEA706769A58AB6CC210551683C2BABC76B5CA69256816172BD926BA7C91A4DC12AC5A3FB087B6E1D3C0042BA5E0F98E5031A6E5077108153CCE342B1F832EFBBAC43A9C0B5A01283522271E649C3AE8C43C541C88603E58F99C1E8502DB34CF70AA48EAD6802844A7B25594308537BF657A07547CE1380AEB994F4F676FF6EA3B9A728AAE5B4E4FF34A5B68530C582194320E6BF76B997A8CF42819DE5B0D1C82491E741CEDA8AA6280094E332D95FA799FBBB769B2BF769798854899D67C1007FA29CD7245F727CB206456E4020F80A9600DE948DD2AB469C1883151A440C49570430D003C97642601CF010C200198ADB7ABC04379864C7FE6CC8BBC29CC1A6335869ACDE9DA9DFFA17C7B8747848CB7DF12B52E8C5EE7144F2EFC3ED00846B9F72598219793A6397E7726F8242B5EB92EBE2577E686B980F34859B07FD24084057B13A98880C93458D59BCD5AA68314EA18E80A94CD826FDBDAC1F05A472DE0872027C1CF924D5BDC9F236B1893DA61486757FC758806F580279919862C0333B15A66C138E4DC6ED50B17EAFABE9074AF14270C20806AFF0B58ED97631884435A55A8AB394EEEF5347B2640E6980C41A30A18E85A86074E03DBAC48855DE4E94538939A4264593B649E5BD981E0917C26D563D287A600EA89CEEA7021E754384157C8ABC5BE47C7DAF72E15787D1CE62723547B0AD86F852B150A25660A4A074E707884CA7934F9BEE2555A0F574B7F750DD293496FF681A09A4976671210FAC3C8C84A03F99F39A7B649A19F3E05A1D0E7A3728B253C5784F92CA7348A4BC086460A24B620845662246F1C0AB9BF91C8CB301D7DC362A3137643C92C8797CBA7E59A17DB9B99D08977D56A4F34AAEBC16FFBC8822822931FC73DC6BAB320972D96C16DAA41CCC89312E43275856856C4598313417C1B5261D9C1430A16C1D2F3CED08C862A21678A170A2E1A643E139873C878AA469F163C97AF7C7A1DA41034878D7E144DB826A7AE48B97A5A131185813D775BEA667CE0518B11429768F58BC30946766A6FE5B7BBCDDA7CE18C29F396307BB456AEC16FCB989F32660CA348A83FF36D1AF452C4584E117A3105C662135997142AB16CBB7C7D28560B087BA4B7B66A00563EFA3DA1C4764F8B7B5D128EC6202C505AC9446015620C359555268BF6AF74144EBB26351E98AF7DA51571F16A01B320595754C0DC23BBC75A8F036A5F6C3AD76907FBEC72530855891381B9F2B719429D4B6BC04F014F50FAB14131C60CBB279B61469E1B8664A38917CC308FE0C7AFF637DD4A76BAB66F08487739B20B9EF850F7F20DD83A1A47B53F00471A1617AD164AC1C04A8180BA68984B4F5DA9BBE1D0CA352509BC0211DA0B321789A61C98222508A03E0A6A7CF3849126435F36575D63B342FC2F02DA45FB8B5C9BBB6E064328550CBB6DA1AF16424A3AE9C1EBE566F4C4A883F966479C0BCB6585D3A2B1E14C3608E05AC5555454EBAF80E5C7BDE47B12F66118027E19F325024A5D51779C17D1B933A1CCE61003D018A3BBD67EA16B02EF997EF0678CB776479C52203875774C05B0EA9586FDE02964B8C3E1968B9940C88763822AE563D814BEEDE38A7D1653B2131558231AE3470608B51FB78CAA99C7252EC8AEAD74025CA8BD5C038283181E9381C73188C403A0B6F88B855FB5673B180F7581AD69513163379B34582128575DCA936A614A17C84C36222C3893D4B5F97829E132449490096605B61925844E31982BD601538739D8E7B378E180FA6A7EB9874CFBB8069447A96CB81169F3514CC20A93A42E0C9CC321EAC10B8AB21A893FC247BD557B6485A9C433390076573EEF854C2EF08AE116C58FC75CBC03BF8FE7312EA5305781CAC7273A78F01C73319B0B26670F26513E57660340563ACB16CEE7CE7CF0BA52671E23A44C85EB994A7A7BA15941F4C301D3B87E0D2A75D2EAAF1789237BB5B02930CE6AE5B965DC5E7277C8EEC0676C55436014AEFB8AA3B1BBA2D07B1F91487C99673A9135611BCC3B3546C42B23CE0A8099D6666FDEF62D402925B4561DEE3986B30C1C6278609496A474928D0A8351DF30C83CB4BF4BD826CB4319BD620C7AD5A7F1EBA1B8913A46D0365285A38C4C1574FA4287C02D71E91A43EF856ECCF60978C7B83099574EAE8C27A0571C4E51B320B34ED55E8B1E576E +dk: CA16BB08B42E527B707E18B2ADDC64F2FB9542C89FF37B4B9187C72DC602FD83CA619836032C19D3497D49FA2AD23C0939721984DA633C14BE7300029CEB1AEE6631F236060D378852F6B1453214D1C87806E42E956286D2356B7B42731B054829B72B6A89BA4C16308A00C35D59A717E72BCFE69DB53C77D6295243FB599FB3BCA5E6C179205E15EAC020826EE8800A97EA3B51400103A362D0669550D1B56C466535B148862258EF25C3FE14A16362B5C940362B30C2E9A660BA66837071AC18D802392BCF17E62AE718288D175B0A61A3010943131070F84374A47C2EA3E690F7660E67E1B813DA13B9E52BB422A2145482C1A536D0E81BDA906A45DA576D09350FE9C223BC31D89571FFAC999EFB71FA59B29B0431FCB68B1FA37DC9585012414212883B640A10E0937CCF3BBA568A2A519B1EB02B515A26335FB52A1D6B9D122C212A913520661A795855A4D65695D4469C3766FEBA11AA4CCB77B4AAE7608A82EA2E22EABD4105075DAB6D88591A2B2B5B11918C15735DAE6546BEB95656F195F0BC70A3FA3D6FE9898BA1284CD368666C8D8A51A7440411525C3F6C694CC586CA15EAC1CD4B88A1A8CCC713233CC5946C009799DA4EC0294CAFB09D94580EE4E705FB842CDE2429694141C0062508C79D69A2515B843204B3857F77A352764A88A5677C885F00A88615E3524C7A609547184FE029EE7572DB3C821C8552FE499478DA9DD708BF602B73F180B5C801C9D7465E77C7B42A97CAA3F4CD7B62BF0AF7A7F2BA6187129012E5C7443738572C1BBDDB784459B9921B9B39D020F169BB7FC6CCC2B71C231A27462BAA34531C3838A1C13B12F353326D870D541895E259208AAC459D44C7CFC44324AC3CC2B7610C96BFAD5806692CA9F567500894A073629D66741A3EB33F56720FC80305F60791BE328DC8C28AA10097CCC03500D1601C25CE03550974F12F8E384C8B310F32A5CA60DCCD230B89788B41CCD6825251C601B54DBEE636CFD491E5B071F8A1BB599144B402C007B80C73B3AA4E6A591AFA2F108C1BDABA34FCE43866661954A046F0D5AEB0F681602490B6118C2ABB67EFF83C349933AF394185F72BCBC80F0C1751688A42E247451DA4BCE4DC5BB5204121236623095B25E91B95E0B5C196699E2CC284B88FFB11426F8944AB174DB91484A2FC7787A97172596DBBE0AF50C68CB9726C11ABB6FF6366CC280A23D457B638A307328FB5E70403EAA029D2B121118AAAA39089E655857391C0D4A85FB7AAA84448CC12A4CE428A37D5B6DE999C7CA82879112E17EAC572001215EB8F3F07C153E6B251E699B3103855C747A6B2A1FF44ADEE996EE5F545373C972D431854DA74DD744CB3C7CCE52A31E332112D70736EE859CD47C381691C9275B8FBB46299A48BEC07506D65337BF64CC5F50E2C3A2FFEE688AF4B52A4DAB2E2E4267851AF5C2CB55255629036674E0185E069266667B9472C8DCDA95B4B16B5845940CB7A378E3CCE2FA9CCDB787415F58C30C46E691B6B6DC4A8B0C892DFBC7699599CE25812A478874568260AB482C5F69D7E773CD928BEDCE7067217C0454310B1694264E3A9D3E41300B87543B4235CF432597A5638EA41637CA894080437766C472047BF5BBFBAEA557B658174A576697613A8A73254DA332F6B232A65B9017928288A44FCF8889CE79718A329CED152E35B4E4EDCCE1B197DACC7942D59C2B0E80A0FC74FC726BB951898AA15CC1B106A383AC10EFB4D48445F9CF59C4BA17D5817618BB27879067FE2615EAD1A2BDABA6C17D422DCA06C3C4578B873B17714A6B8F2AFAF8CB445F04238C954B38B28D1028D451A25C3797872601B98543029F57671F52F8F25AE3C88144D011B22B88F9E60841C3BB52205A00EB24D3254B8C37BB845E10A14B528A8D6C1D07B7AE4E66E4F88C26D116A853B4E41ECC6AFFCA83068188189063030B5BA854541433CC454133FA2B5A3407852A64D9277883DA9AED1D982695854E8D3B114DA709E1BC3B926170C4A2ADECBCF8402A3D9253851274BFED70BDBC817DDE56A166B61DA0793AE0818159C0626BAB102CAC3EAA05D8F996D6EC01FE5E9061147A98EF4A5BA361508B385A5060D5FD0C462F340B943914D117B7EB032348003E89C3D888485E3FA9A3489CACD855F4E55864D09B276CC63BC453FF20B31FFDCA2FC3C34AEA706769A58AB6CC210551683C2BABC76B5CA69256816172BD926BA7C91A4DC12AC5A3FB087B6E1D3C0042BA5E0F98E5031A6E5077108153CCE342B1F832EFBBAC43A9C0B5A01283522271E649C3AE8C43C541C88603E58F99C1E8502DB34CF70AA48EAD6802844A7B25594308537BF657A07547CE1380AEB994F4F676FF6EA3B9A728AAE5B4E4FF34A5B68530C582194320E6BF76B997A8CF42819DE5B0D1C82491E741CEDA8AA6280094E332D95FA799FBBB769B2BF769798854899D67C1007FA29CD7245F727CB206456E4020F80A9600DE948DD2AB469C1883151A440C49570430D003C97642601CF010C200198ADB7ABC04379864C7FE6CC8BBC29CC1A6335869ACDE9DA9DFFA17C7B8747848CB7DF12B52E8C5EE7144F2EFC3ED00846B9F72598219793A6397E7726F8242B5EB92EBE2577E686B980F34859B07FD24084057B13A98880C93458D59BCD5AA68314EA18E80A94CD826FDBDAC1F05A472DE0872027C1CF924D5BDC9F236B1893DA61486757FC758806F580279919862C0333B15A66C138E4DC6ED50B17EAFABE9074AF14270C20806AFF0B58ED97631884435A55A8AB394EEEF5347B2640E6980C41A30A18E85A86074E03DBAC48855DE4E94538939A4264593B649E5BD981E0917C26D563D287A600EA89CEEA7021E754384157C8ABC5BE47C7DAF72E15787D1CE62723547B0AD86F852B150A25660A4A074E707884CA7934F9BEE2555A0F574B7F750DD293496FF681A09A4976671210FAC3C8C84A03F99F39A7B649A19F3E05A1D0E7A3728B253C5784F92CA7348A4BC086460A24B620845662246F1C0AB9BF91C8CB301D7DC362A3137643C92C8797CBA7E59A17DB9B99D08977D56A4F34AAEBC16FFBC8822822931FC73DC6BAB320972D96C16DAA41CCC89312E43275856856C4598313417C1B5261D9C1430A16C1D2F3CED08C862A21678A170A2E1A643E139873C878AA469F163C97AF7C7A1DA41034878D7E144DB826A7AE48B97A5A131185813D775BEA667CE0518B11429768F58BC30946766A6FE5B7BBCDDA7CE18C29F396307BB456AEC16FCB989F32660CA348A83FF36D1AF452C4584E117A3105C662135997142AB16CBB7C7D28560B087BA4B7B66A00563EFA3DA1C4764F8B7B5D128EC6202C505AC9446015620C359555268BF6AF74144EBB26351E98AF7DA51571F16A01B320595754C0DC23BBC75A8F036A5F6C3AD76907FBEC72530855891381B9F2B719429D4B6BC04F014F50FAB14131C60CBB279B61469E1B8664A38917CC308FE0C7AFF637DD4A76BAB66F08487739B20B9EF850F7F20DD83A1A47B53F00471A1617AD164AC1C04A8180BA68984B4F5DA9BBE1D0CA352509BC0211DA0B321789A61C98222508A03E0A6A7CF3849126435F36575D63B342FC2F02DA45FB8B5C9BBB6E064328550CBB6DA1AF16424A3AE9C1EBE566F4C4A883F966479C0BCB6585D3A2B1E14C3608E05AC5555454EBAF80E5C7BDE47B12F66118027E19F325024A5D51779C17D1B933A1CCE61003D018A3BBD67EA16B02EF997EF0678CB776479C52203875774C05B0EA9586FDE02964B8C3E1968B9940C88763822AE563D814BEEDE38A7D1653B2131558231AE3470608B51FB78CAA99C7252EC8AEAD74025CA8BD5C038283181E9381C73188C403A0B6F88B855FB5673B180F7581AD69513163379B34582128575DCA936A614A17C84C36222C3893D4B5F97829E132449490096605B61925844E31982BD601538739D8E7B378E180FA6A7EB9874CFBB8069447A96CB81169F3514CC20A93A42E0C9CC321EAC10B8AB21A893FC247BD557B6485A9C433390076573EEF854C2EF08AE116C58FC75CBC03BF8FE7312EA5305781CAC7273A78F01C73319B0B26670F26513E57660340563ACB16CEE7CE7CF0BA52671E23A44C85EB994A7A7BA15941F4C301D3B87E0D2A75D2EAAF1789237BB5B02930CE6AE5B965DC5E7277C8EEC0676C55436014AEFB8AA3B1BBA2D07B1F91487C99673A9135611BCC3B3546C42B23CE0A8099D6666FDEF62D402925B4561DEE3986B30C1C6278609496A474928D0A8351DF30C83CB4BF4BD826CB4319BD620C7AD5A7F1EBA1B8913A46D0365285A38C4C1574FA4287C02D71E91A43EF856ECCF60978C7B83099574EAE8C27A0571C4E51B320B34ED55E8B1E576E82D819925EC1B1F45E255B12DE1637697CDDD47F41DDAC13484983D75BAEDFB2EF0F95F630F41B3AF911A30E543822DFA6B7684FEE36956D2BCF8FF080C9FA26 + +z: DDD4871080BD4F761D972085851DE0A0408A2F5EEC3CD3786297A782402CA440 +d: F05117E932CA0E0C202732DFD4F674BF5848219A76C64A0650C27E2E55095513 +ek: FB28C9266161FFA370AF3C5C163A9B187A5D2499115A1120F2B84D71948E00A7969685C8FB6B8185566ECF337E1E20AF4E4A87D1F4BEEB1BBAEA51499960683C45B53057891A288E5A8393C4F19A06C222D4C9AFEE5AA984B6798D45A3F271793E77A5404677B08A1BC5D3CAB9D9A20A4880A11B71B7D4221C1302B8BC24FE65C4C63BC7D1B80D8BB40A7FB535C672BA32496904A9976B328A2002B14E9A071713CBD9B48E55359D451C3EEC47C4A7B9CE61AA5A9516C34009A8085A98725C13949644A72A338DBB7621530858FA1B40D6BE5DA89E9A422A08031CA3C003A0E31AFC4B36D97B4508BA3537DB1B16D1A5B5A98E6BC1CB70696F887940A60498E276C1C900036A30735B20B9762A3517C136A9DC20A8F5CD73BBB047A00DDAC6A6DB40BCAE42C1D6329FF54B9C37F82CBE6214C2A99E31DB80AFDA9BAF06916BD3CF83643D27828130495CA2FC67EA441E38A8032CF0003926901245973EA549EF48A9C65ACDD5E25D5F9834CCA805AEC7CD9F687D5CEB8C2CF04EB6A1356B68AA7AB9CCE7452A20C5344F11BA6197343886A80798098C63AC5AA6095FA2A1D2B0A07195ABB3E98057953AA0B20C00FC06FE553FEDE713DD4662DBDA4C7806B44904411D85C8B9C57912A72A2D25460467CA25027BC74C3066C7A941858EE4D04026914B45354D342B6643A280CAC8C9ED60B9AE021D38303799387D12A98419C26010FB9492262002B0002FDB167FB668B2D8C453987E83F570A43AABDFA5762015B9FC196FFF6542B189395BCB5C4AE598A858597622240E01856B17511C480627B4818C413ED065C68F359266008E888B9EC435A906C6721CF8964885A160C0512FC4B9B454A10E9954048B3212AA9C37A27D2697B1AD530FB33974AB25AAA9F33B85358454610E94410D47F85920F2A7F5D13C74CA4C6108B768A476C5BACB57F17AFADB60D437C21D397A09929B2E97915254A0FAB1848779726D766CE6C83639C4172DD5A1306CCCBB1491D56C1A5FB7CB5FC7836F0765246815F05A2A13385920D0B2C518395AA997E1D33A2AF588B7EAC1DEF4BA688555EC4961596873CD0A0A443551269C73F0B97B6F8CBBDD45BC5A15356BE370FAD74805032940AC0E9C2269C0FAAC67A647FED78E83094D08F58C23745E2BA70366F24A42635A944771C3E13C8EA25B8BD6B8B0783487F1A7A4A15776DAB44EF4192880BAE74C62DBA92A24782CB91237CEDA6E84A0C68244B9CD350DA0A67CA5477EBDFC4D40F59EAE1A88E9043653F5882CF614611641380CBAB15B6CB4189491ACA9D1BC22C56928A7B37E678A4819D48A7D27887F12B4E3878E8318BFFCD93B2B9C4ADA1676BB72B93DE19295DB59909315DB1209E3A02193C1126DC30BF77C6DF59AA4EF921020253FE2045BAE6760C206A7FDDB596EF802B1F3C620D353CDB008AA0A4B8393744E25A34ADAA31D2313B480C29DCC8DB110049DF796DF298CEA91015C9686FF3A300A7298F4B7237A893E02BC373641CA88F2345CCB4A6E7441D30B244814A665F08A18146AB65C3761BC5A87860B2E20482EC89D444180D10337C45C702D82A51DD036B5EAB0FA81B017BA82E16AACDB3A96A53775B9874EE8079CEA7845C3CABE0C847B7B4BAB1FE0680B12986D821968579D963703D90AB8DE020A7CF28DA8395887B2ABA5C09BD7102B8662554D1C472578A9F80CC15F431F18980BA1E26754243102D03D42E69C52AC25EB3A19FCF57FF9E1429E78CF6AE0A501AB3EC26C0D729B142636B873E9B68E277370366C0FE0543E44C08716C4F9B06546B1CB3DD243B505B1A15976B33788E8D1987F810D5797A8E9CBA8B126923A1A81855151780CA9CD4055D9495603A84CD7886BBFBCAFF499066496C967501DF3D861B97C5D250016BD3B3A18946C0CACAC1238CD235A6A609611EAE792E0560B831B636309517AF489A30269E172BBE7470C2D158F83C4B20F15C524025D6CF164200B3870663809A00E6A982835C87F80A68AFC1B5393B006D220A0AA26B9666690549523A0A9711E03B2419914FF76CA69A62671260B34F1C1A11A6E64067908839B87D2940D433162393A6F65B08E4CA643201023C63DD3C3808E9625CFF4C346491E34153937589310437069622208C646AB58584DF10F9930BA2F761DE4C2564BAE2B31A9A645135536FCB58B94489E4D993C9FBD4A89198AD91BE052B5E8FF +dk: A6247A7F4938C4589C972C928D7C65B74634ABE136E1C732A094A539E4892780BF56A5A7CA52AFFAC643B7168B997809AB95C8DD4740954164819C4D94453053634316F3186DCA4A03E813BCF763E6436E05DA840EAC0FB65B11D2D97EA80B156966C5A0DC43799B74F3797D483486E4647C8EA61569880774D68C9EE2A5907910839A95E8E33CB10B2AF59C22128B0C8BA9AA7D0B7A48E26C6E157D58122A63E571B059073AF35AF40282D1C8AC2ED5B15B2C980D6437C27212B5CBCDE888BD8F4B1B3AE398182243468C98F453569C417CF3C043BE9A9BBC03D058212523F0A6A2A263381967A562B63E7C1A83A4BBD1D86226B5083F8B54D93413350B39270C9E784430AD30752ACB0CE0F2B7300B478A3801C1133A84009106DBA42AEC03AE413F137812A35B4CB29207A7FC332BD07064019AE8CA3F6A723191058D88A460D40522FFE0841AD5507B1942434939260228CD993266DA1C35B920012C0E349C224D492DD6D197CE7473FA25187AB87C192A5382FC3DB61C817DF62221666D6D4858F807C852853EB1AA8A7DFB4A79935711698572E12485294DF538257F44AB92A60D5D23AC91F56E138025BE0C93F995BB3A9620ED0A7588857B4F847F996C9D7DF40BEB05C87FF79BCBF222956CCA23F377FC36140FA379CB89365532490D470C3C5B4CB8F3560A7A0C7FF9A19AA0B0E03C100B5090AB42A9C652399FE79716B61921DA7211ECABE486A3E95B3EC0E79A4DB614F5282F2C8087F8A1CCEE9417D4F99C108202C92499DACA10E3AA9B46D254BD8593316B9D220A96496372DEE61B51E93D51E9AAFDE006AC267037044E92A3440A469BE8AB36C3A70B070C43BF889F1DAA6E975CA464F32BBA725D75016B86C8089D9338C9816FDA6220169CBD445C7C78136E9F56A431957068373DD3480F7AF88ECE4941A2FC3BA9C2A474FC1D583A59AA42795365B6C0954F3AD810F55B5B0B959F414137B7C3AC0351812E9B00E8B6BE2953C7AA839F24F02D8CDB356CC64B5A361EEF29A2FE12117D9CCB86D4A399F51CA8D796A29778474838D903830706A854E83BD0267C7CD43B927B83DBB29C63E32FF5ACAF1A2A0C50609F4381C32E78B583808841F6300AC40302CCAB18A945FD0CB510588796C61540FC559800A7A1657736B347C50657E559685A226B19F62B34050FA4D76CCEB3A9BDF5A3815A7F4558AAF108958806C16A264132968DC63CC40342239E7640BD394CF418CC3298B7ABE9CFEFFC1714E96486CC73BA380E5A79900AD19558C68EF1BCC3DADC3E7829BC7BC09F407C6384E51620492E5B643B10B45E3BE52CA851709582C9DE447A501A07026528239054901882F5B74E6DC791AA9397DE9403D5519F1368084EC65D8010390F23C7DF604CAD8092E950901F9860A267578AC5043773616BD1792307AC8626201CE2A4FD5613CD97A074F3476094BDA4EC32A161855A4888223327978A8F74625C74A572C37C027E619C7D5577335B3D61E3B53191517C5A50FE62C63A08B6ED65C054EA98CE22C7464CA2DB3C23724C9868007133A235A36A7C56BA237FB58237F7C61E4A66F7B51A2751CF3706367413AD57A01B687107A513A46ED70025B41B785354BF986D4687369F97759D12551C6BB203A609F28931DDC076E6E38FFD083EF4E99B8C3919DE18BC7601260CE74EB75779FD1C6EDD4C843F770F6504B4C468A80C8C3C37D80902C736A15539406A7BF01206173066D29902348708799C2A7C88B751D62BD2760488357836B4019DA55B4A3050242791EF3C94AAC0A821BB71A90840B7E06F842398CD50282A15718E29BB4B75796AE81C76503629056CAABB2A0A319761C10EAEBA23BCD3033D911ADF754C25EB3923331BA0C332CF357758469D765A2C492565923872FB1322F5E1672E010DFEB7815B940595CB4FB6B64FDE59A63C689BE4B7828458B31BB5103EC4C8F1F905FEEC2AD1D10C7689C5C0528A56E4444C958107868E477662C25071E28404AFA86411910D33B618276A5CE51850F3B67584949F75651180298E3C791ACA85590E6BC59C0C8365DC6D5AE02D34D91B1E6C7BEFCA8C7F042070E32BD4883ED1D15128D516A40235A086A6D385784C457FEEB1C704C426CA4C48155445E414200A7CB6A0B9C0DF343CBBF95C7655B4FB28C9266161FFA370AF3C5C163A9B187A5D2499115A1120F2B84D71948E00A7969685C8FB6B8185566ECF337E1E20AF4E4A87D1F4BEEB1BBAEA51499960683C45B53057891A288E5A8393C4F19A06C222D4C9AFEE5AA984B6798D45A3F271793E77A5404677B08A1BC5D3CAB9D9A20A4880A11B71B7D4221C1302B8BC24FE65C4C63BC7D1B80D8BB40A7FB535C672BA32496904A9976B328A2002B14E9A071713CBD9B48E55359D451C3EEC47C4A7B9CE61AA5A9516C34009A8085A98725C13949644A72A338DBB7621530858FA1B40D6BE5DA89E9A422A08031CA3C003A0E31AFC4B36D97B4508BA3537DB1B16D1A5B5A98E6BC1CB70696F887940A60498E276C1C900036A30735B20B9762A3517C136A9DC20A8F5CD73BBB047A00DDAC6A6DB40BCAE42C1D6329FF54B9C37F82CBE6214C2A99E31DB80AFDA9BAF06916BD3CF83643D27828130495CA2FC67EA441E38A8032CF0003926901245973EA549EF48A9C65ACDD5E25D5F9834CCA805AEC7CD9F687D5CEB8C2CF04EB6A1356B68AA7AB9CCE7452A20C5344F11BA6197343886A80798098C63AC5AA6095FA2A1D2B0A07195ABB3E98057953AA0B20C00FC06FE553FEDE713DD4662DBDA4C7806B44904411D85C8B9C57912A72A2D25460467CA25027BC74C3066C7A941858EE4D04026914B45354D342B6643A280CAC8C9ED60B9AE021D38303799387D12A98419C26010FB9492262002B0002FDB167FB668B2D8C453987E83F570A43AABDFA5762015B9FC196FFF6542B189395BCB5C4AE598A858597622240E01856B17511C480627B4818C413ED065C68F359266008E888B9EC435A906C6721CF8964885A160C0512FC4B9B454A10E9954048B3212AA9C37A27D2697B1AD530FB33974AB25AAA9F33B85358454610E94410D47F85920F2A7F5D13C74CA4C6108B768A476C5BACB57F17AFADB60D437C21D397A09929B2E97915254A0FAB1848779726D766CE6C83639C4172DD5A1306CCCBB1491D56C1A5FB7CB5FC7836F0765246815F05A2A13385920D0B2C518395AA997E1D33A2AF588B7EAC1DEF4BA688555EC4961596873CD0A0A443551269C73F0B97B6F8CBBDD45BC5A15356BE370FAD74805032940AC0E9C2269C0FAAC67A647FED78E83094D08F58C23745E2BA70366F24A42635A944771C3E13C8EA25B8BD6B8B0783487F1A7A4A15776DAB44EF4192880BAE74C62DBA92A24782CB91237CEDA6E84A0C68244B9CD350DA0A67CA5477EBDFC4D40F59EAE1A88E9043653F5882CF614611641380CBAB15B6CB4189491ACA9D1BC22C56928A7B37E678A4819D48A7D27887F12B4E3878E8318BFFCD93B2B9C4ADA1676BB72B93DE19295DB59909315DB1209E3A02193C1126DC30BF77C6DF59AA4EF921020253FE2045BAE6760C206A7FDDB596EF802B1F3C620D353CDB008AA0A4B8393744E25A34ADAA31D2313B480C29DCC8DB110049DF796DF298CEA91015C9686FF3A300A7298F4B7237A893E02BC373641CA88F2345CCB4A6E7441D30B244814A665F08A18146AB65C3761BC5A87860B2E20482EC89D444180D10337C45C702D82A51DD036B5EAB0FA81B017BA82E16AACDB3A96A53775B9874EE8079CEA7845C3CABE0C847B7B4BAB1FE0680B12986D821968579D963703D90AB8DE020A7CF28DA8395887B2ABA5C09BD7102B8662554D1C472578A9F80CC15F431F18980BA1E26754243102D03D42E69C52AC25EB3A19FCF57FF9E1429E78CF6AE0A501AB3EC26C0D729B142636B873E9B68E277370366C0FE0543E44C08716C4F9B06546B1CB3DD243B505B1A15976B33788E8D1987F810D5797A8E9CBA8B126923A1A81855151780CA9CD4055D9495603A84CD7886BBFBCAFF499066496C967501DF3D861B97C5D250016BD3B3A18946C0CACAC1238CD235A6A609611EAE792E0560B831B636309517AF489A30269E172BBE7470C2D158F83C4B20F15C524025D6CF164200B3870663809A00E6A982835C87F80A68AFC1B5393B006D220A0AA26B9666690549523A0A9711E03B2419914FF76CA69A62671260B34F1C1A11A6E64067908839B87D2940D433162393A6F65B08E4CA643201023C63DD3C3808E9625CFF4C346491E34153937589310437069622208C646AB58584DF10F9930BA2F761DE4C2564BAE2B31A9A645135536FCB58B94489E4D993C9FBD4A89198AD91BE052B5E8FFF2F75EA69691E4E53E952F98536718602B96B7E5A2FB218648F9353EA65FEABCDDD4871080BD4F761D972085851DE0A0408A2F5EEC3CD3786297A782402CA440 + +z: FA29BDC28D989B8C4BE84706A3CF21B36A1C6E355C88A361C7664818E4BC8E03 +d: A405D9B07C5771A5BBDA2BE9F8A40D9566CAD7DA1761ED8076A289063DB4A8E2 +ek: DD0C664328C53E5B29F9A9CC55D97BA265A18C02AB73427307E78AC23C51A56478CAA21DB400A3AB081A0532729C40BE3FF9ACA2DA1799E29BB2A8325F1A9E7BB99D44F3C27427816B3BBAC0FB3DB6B23B7323A8CF4587D505B1D1FA9D71696064CB6A7D806872D68040714D94162658780295FC056B269D4F16AA4D98A5245C7B33462129130425712798C879079217CC3195E5CA67D137865181B6C2F92EAD04945E97720DE0CF7531BC46847D68E3C13840B94DB2242A048F0F22331050950B8A4B3FAB51A487134A2C9A95FB659342867D252FAF091D1D966836F1CE964428C63CA3950BBCC3D8A800191FF628680D23A8EBF6BE727225E4B91602E46949889D910CC46D6418411B394AF072FF49B894A1586AC7C1823BB89AD2997C726C3FBC65609CC37656BEC80A6B10336A346412FE34075DA69D829B8B937A87F76968BC93BF5D5639AD76448E084DD0D02AF4A7028D7C0892A9728CF1114622494D8B28D05065E6DA0813043504293A17D29273572E34A14816A01F5DF58BDF44AA1AE8CD0C6C6622CBBC07540405D5AAE8C77BB3418A91B982BAAB4F8B388224EC3E345764D9E66C2AFAA27B924A07039720D7B73084098457C488137B75339F1D7A6919A29FCAF71F4DB8A17AF6161488C02813191AA2B98FA51A6FA07BE8F288C51B538292683A4C52C7F7B2863C52C0843452B583CB583B98414B4CF97185082768855206871CC76A0A409802E0DC23036B3586D9991D241FDCE67D4986CECED74EA7E77BCC479EE4768952E0297568528AA1712468B267D474D069CAF9CB11E5B0CD23DA09D5095349E3614194B1C63596E7E65BEB6769516B7B0759C8FEA02C7AAA1466A7B41C759135965ACE8857074B95DD6A5ED9D36FDABB83341A841DB163C1332881322F5D2374EE11ACB0616A6B1CCD9AC7CA6673619BCCABAAE562D4C433147A2802C26B6431BDD73A455CF8CC242174AB5123BF9C26F8280E5755A4BDFC1A98CBBB92C152FD11655EE4459ADB2F163928EAF24ED09C72839145C96179D8C94E6B3227AC793F5FD990DD638ED150020934894684A38BB1AA859A3AAFC49EC5A53B8646CF60F5585F043CD71B13F9BA41DB563677B04EC6D8270FB55C78F8A58ED494D9348B4A774930C00752121081514596D5B86FC0CEFEFB4AFD2682EE056BEBCC0CC9446CC3C1A0F5F34DCCE8AFF0949FF16005D121275A5915C6D4B9407357AFFAA09CF6783ABB260FD53A333879433B45FF25B9D71A500BE315D2635DD4F42B47881803666441871083859D266B96C1327F96B40454D17ED5363A27CB612A69064B268DA9185B4506119D7A71FA1386AF6BA9789AC06E9A0F04DA5C6CF478F18044457418E0FC986681B81BE1A7AC1583AE95155DB64FDCF442E5EB39515B06DB280A23AA5DE2C19A1051A4F9404F712955ADD66A9D1A7E963BAE57BA75190B7447B70EC0170EC0C2CEF480132B375D3991B90B729F9A4356F062C00D030BF8AC4A82032D5F42B7D47B6009B274C4D2A5DD5553D29AC86F148ADE931A81534226EAAD33612AE89BAAB7729F3855339625742AEBAC2B042AF2F5B4F3A017A74342501C274832B314BCCAADF59DC52A0ADFC061F2256875D960CB654CD78BC46C709B2B9133F8801CD6766800E12516D80CA41011D68733901AC540533E0CE532CC82AEDB5CA0DAB476CC5A81188B54E0AC9FE66A1D977A6631519810128F98C3044BAA5991920C381BCF3D63B785701421733FA25C521DC10BA007040B917E55B863F95A1A3E924D3FD0AD3975662D38476BD3B47E46769820C3BF4705DF9A89DAA53A58AA77B65258A444B2002B681031BA765659D9C18D92D826733BB575705D6D7C7DE3D19240339AB4B12BBAD51ECF8638E6456E5CB350FD551E5A5C67DF050DC7E7866F4A10989C40BD3C22FE480343E07DB22734CE89870B6804273447A85169A170BC53B861B9545CC186501E8A541575A480562E5D7198B4D905B8EA51A48688A8E488A2A36F7EB15AAA398E6BF44B69622A14B3473B0AC09401223CE775761B8931D53D25E0AD51426970403B0A243E9307502574B1D6323C11F7CB5D855ADE147211438AA7FAB0DF89CEE8286618D8181DE196A311390BF171EDA88DAF1C0FBF540EF20504209482BF3B7D023100D8795634BC28CCE86A4131048041A23549B016EF00A31156458CC5808590AD8FD2EF59DFCC0C +dk: 73831E2C2993800A26266635B586921217B9AF812D5656B9CADA071A384F69D48A210660F51C4AE1F2A6F2E18AC7FC2AF9901318A56E36A483662579736943B7855BCD664BC7441FDEC83DAD5C54187A2FEE338DC9A4AA55780F07F3A94ACA4DAF9145FB099F05648DAC3C19EF450EFF4633500B9205424C2BC4081A017D52BC3302B28BC53668185B147B117C9A7C427249037CC165134B6A9A4663CB13AB0DA3B501C67866201485C5645D4006F929AA4A68831038961B61C950110106CC98C03287D291B080A7212BB4A7AF92AB3A2A06EE19200A531040949C5D57B2D8B09D637638B3690C4F1457A1E9A5BAF903DEEB894300984B76A03F0116D570CDE59981F10A2DD8590EC91765ADF252183C10FBA093004D5700715215427F2FC85D700747C8029B9CAC9A1A4AB8E0641D124540DCC3C1DDD62DBFC89D884C7DA2E515CA87A92DC99B1BA97B0596153EB53D4B8818D2644F638545D94258F5441D5C940A7CDBB3B3E66D3A886457316B15808F0AD71421C34266073B1500CE5279315A00A17FACAA04660A556266C3F44275C67B49793CC0679DE3B29BDAE8C9B15458AFB9B2395547C3DA2FA6010A8171001A50863376C172E64F51F87354C99465796789A854F8362C78588DCFCC98250C4524E51A401203E5D4680C5261CA3440C3077CCC6AAC3E809315781C9081629C4199D925679F02B70A200B3F8C98A3E0B1D3B0CF15442E55A76EF25C0B3734993510B7465C0081B82BA8136C7251C40EFAA6E0819046D1CBAE353A9C8547B9E160DFBCCE85627E2B16C0E5A51DBB50565B3A81DCD27FC9698BB742356CCA03CBA3678028534FD0B1B3C852F734ABE2452BC583A103C3C09445396F1A01F3FCCD951299509B2EE2A7468F15B927B0B2D435B56AC12C548C8107EA5D58682B481A568DB4A4B1209E9E36B879D31876F708A039A39DF58A0F0A2C04A19622C359FD395C99B3C5F497304CC11F5FAAB83842B7DF06344657243968156AC67E7938900D636BFB1C4224F677E6D119827ACBE0BA6E32C590AAFB140A041714B5BD3E06A2D7851BF91098C1647133118CC747AF18B8ADCF01C530C91E805966427A3EC4234272BB9D38A8908285C46EB759F176AE6B7395010878089A21C3FB5132AA789B92C7724C8217E9A5E66923552C4514A915C0B43499F8192324A50BE4679C586A646CB0B9808659792984726EE2420B5FB102B96A3D7898B7C98900913237D5D8885B9580556549C1B59CB4F4ACDB481D92A8CC5D447282F5C7BBA6BD0C7CA0D8EA2D3BDA78633C8FEA1561DE37AE94D51C24414F9178C224A92E79138FCD0337BF00121A51BCF5D27177B0CAD3A6665EB77033B10A00037B908062D381AE5C84C711D4B5CA9888180A0FA742B506D86C03A0C54CA488FA404BC0493C47D531D420360DEAB873C000A87340A2915073429C001A088B212EE46A80852C3B839561CFE5A336557EB689BDD3CB75C70C6FE279AB134A6ED3B20A03750C1CC30BB1D15FCFB37105B34F34026B660905D640BF06D097F0C06BB7E6C628BBBA9386CE6AC212A3370AC4FA65C64C5B235BAF13011E7928B896D78754335E2EF90AC5DB53DF83BFC6340D85D444D469C3B9A329567243E1A2B900A76C756C46E26C6936A0C772F88AA38C03D2137E2BA4179D228F04229F5AF755B3C7128AA16BFFB9354395B575D81EA4F266407A206C0CAF14D5151CC15C178B7D567B8C7DB637FB26A62C048CE9049710B07AD28B6168756234539952282D521313AFA65959432E7235C9991487AAE661B6B7108D48C9E4760D6315C14C1725CCF69CE69C2E407799DB8507A0C66CBE15BC65E4692CD5910B5975A3E3416204949C601F55A438B104026D36A71B5B1399BA6DED58166F210847D863D302AB4C915E969317D806643BB85912B9A0C07AC80FFB588ED86B359840D8B58EEAA0494266A11ACC201C6130DCD523A2C5CE2262A243665AAA45BA30D2CB06D4850CF65CBBFC772E0C20F9F652AB92950F0A3B33F448D6C014F5548A241B53B2C348E494C883409B99B257367BAC0CD42037921F8298647D91C06FB1589A17C1D0A99458938570C871B7C865C98734E1A88C4C112294913F3F0A35E8A26B17F85AFE567780B919C0D94C6ABC5D6EF1C4318A6EF21A1F8FA75653F612DD0C664328C53E5B29F9A9CC55D97BA265A18C02AB73427307E78AC23C51A56478CAA21DB400A3AB081A0532729C40BE3FF9ACA2DA1799E29BB2A8325F1A9E7BB99D44F3C27427816B3BBAC0FB3DB6B23B7323A8CF4587D505B1D1FA9D71696064CB6A7D806872D68040714D94162658780295FC056B269D4F16AA4D98A5245C7B33462129130425712798C879079217CC3195E5CA67D137865181B6C2F92EAD04945E97720DE0CF7531BC46847D68E3C13840B94DB2242A048F0F22331050950B8A4B3FAB51A487134A2C9A95FB659342867D252FAF091D1D966836F1CE964428C63CA3950BBCC3D8A800191FF628680D23A8EBF6BE727225E4B91602E46949889D910CC46D6418411B394AF072FF49B894A1586AC7C1823BB89AD2997C726C3FBC65609CC37656BEC80A6B10336A346412FE34075DA69D829B8B937A87F76968BC93BF5D5639AD76448E084DD0D02AF4A7028D7C0892A9728CF1114622494D8B28D05065E6DA0813043504293A17D29273572E34A14816A01F5DF58BDF44AA1AE8CD0C6C6622CBBC07540405D5AAE8C77BB3418A91B982BAAB4F8B388224EC3E345764D9E66C2AFAA27B924A07039720D7B73084098457C488137B75339F1D7A6919A29FCAF71F4DB8A17AF6161488C02813191AA2B98FA51A6FA07BE8F288C51B538292683A4C52C7F7B2863C52C0843452B583CB583B98414B4CF97185082768855206871CC76A0A409802E0DC23036B3586D9991D241FDCE67D4986CECED74EA7E77BCC479EE4768952E0297568528AA1712468B267D474D069CAF9CB11E5B0CD23DA09D5095349E3614194B1C63596E7E65BEB6769516B7B0759C8FEA02C7AAA1466A7B41C759135965ACE8857074B95DD6A5ED9D36FDABB83341A841DB163C1332881322F5D2374EE11ACB0616A6B1CCD9AC7CA6673619BCCABAAE562D4C433147A2802C26B6431BDD73A455CF8CC242174AB5123BF9C26F8280E5755A4BDFC1A98CBBB92C152FD11655EE4459ADB2F163928EAF24ED09C72839145C96179D8C94E6B3227AC793F5FD990DD638ED150020934894684A38BB1AA859A3AAFC49EC5A53B8646CF60F5585F043CD71B13F9BA41DB563677B04EC6D8270FB55C78F8A58ED494D9348B4A774930C00752121081514596D5B86FC0CEFEFB4AFD2682EE056BEBCC0CC9446CC3C1A0F5F34DCCE8AFF0949FF16005D121275A5915C6D4B9407357AFFAA09CF6783ABB260FD53A333879433B45FF25B9D71A500BE315D2635DD4F42B47881803666441871083859D266B96C1327F96B40454D17ED5363A27CB612A69064B268DA9185B4506119D7A71FA1386AF6BA9789AC06E9A0F04DA5C6CF478F18044457418E0FC986681B81BE1A7AC1583AE95155DB64FDCF442E5EB39515B06DB280A23AA5DE2C19A1051A4F9404F712955ADD66A9D1A7E963BAE57BA75190B7447B70EC0170EC0C2CEF480132B375D3991B90B729F9A4356F062C00D030BF8AC4A82032D5F42B7D47B6009B274C4D2A5DD5553D29AC86F148ADE931A81534226EAAD33612AE89BAAB7729F3855339625742AEBAC2B042AF2F5B4F3A017A74342501C274832B314BCCAADF59DC52A0ADFC061F2256875D960CB654CD78BC46C709B2B9133F8801CD6766800E12516D80CA41011D68733901AC540533E0CE532CC82AEDB5CA0DAB476CC5A81188B54E0AC9FE66A1D977A6631519810128F98C3044BAA5991920C381BCF3D63B785701421733FA25C521DC10BA007040B917E55B863F95A1A3E924D3FD0AD3975662D38476BD3B47E46769820C3BF4705DF9A89DAA53A58AA77B65258A444B2002B681031BA765659D9C18D92D826733BB575705D6D7C7DE3D19240339AB4B12BBAD51ECF8638E6456E5CB350FD551E5A5C67DF050DC7E7866F4A10989C40BD3C22FE480343E07DB22734CE89870B6804273447A85169A170BC53B861B9545CC186501E8A541575A480562E5D7198B4D905B8EA51A48688A8E488A2A36F7EB15AAA398E6BF44B69622A14B3473B0AC09401223CE775761B8931D53D25E0AD51426970403B0A243E9307502574B1D6323C11F7CB5D855ADE147211438AA7FAB0DF89CEE8286618D8181DE196A311390BF171EDA88DAF1C0FBF540EF20504209482BF3B7D023100D8795634BC28CCE86A4131048041A23549B016EF00A31156458CC5808590AD8FD2EF59DFCC0C3D74CF5CC0859F5089855A7EA2267CDBE04185599344C8E93EFCB5B3DC588FC6FA29BDC28D989B8C4BE84706A3CF21B36A1C6E355C88A361C7664818E4BC8E03 + +z: 08FED872D91297D8059743D3E7B6EE47548357E7F882B5BFE2F04314187ED424 +d: E66F17317C40783CE0594CFB5920FF86062591C5EA4254021495749642C0D968 +ek: E067AADA829618E4C683C404EA51ADB1A7A116C7A0AAEB995AF1BAB8D0751FBA714957AD6C7A0A9C73ACB8D347F9A9A469D85DD94B1B1E4AB74C94048F9AB578A2BDFCC75A213A65345129F78B26E3D901B3428A0F87952B91517460930386856AE25D00259D58EBBB403621335791EC6C2C6EC50711C07F56714B0ED3753F7459F07B83D1F838CA1875017B24FDC2CA6224B74423842ACC5C4B03D0658C7EED5A713A365CF523C9C2254E9C79059331BD730B123F53538955BC0FBA92FF9388192C950BC46C25339C82E98314D616B50993BB6241224AAE7EEB610EDAACC43ACD775941FD8088E03931F40C999D92360B74B86B857CFC6B5A74367DC72033941C78484031FFF53874308D52AA6FFA3491E0CB98366B8FF2866ACD1AC64B63770BC25BC33531175A4112D7684C01A8C4500F9FC083FE652FF78910B75093A34CADA85947D2602FF0716624FC9617EC71B9E87CACAB31CB3836A022523C3A3BF9F542EC306C22EB815E1038A48CC4F6596A1CB1482C7BADD7390D8DFB1FA01C5C30E458AD31BC5FA717503C0186F5A3B936C2D0AA7197733C2EB708F32B9FF611537773BC38B904CECB5D2BE29C988B22E415C7944726EDE09ACB76175448712F4BB8AE5AAF4498CF4189B0F0332FE774170F343A121071961CA130694B964033BC015F490B85DEA4A81756A95F3526A856327CA68F66E828A66B138C052115C0B6EB910BA703581617299855318BA9AFE6B152CC538836278D781771FA4C033A65AC5630B3EBA8B02A69717FFA1E73E77AFE06441D91CD45289927C40A1425AF113B179CC46C6606CA0EEB0D86765128A726AD50AE8DDC1AED2A07129ABBB3AA67B4E0192DA99D2C36686D3807E0B50CC9E30A82D97B0895B6C7670C01FC214DA38FFC54970D8399EDE259900A081954172F385E037C9B72B43A3ECC7FDB0510F6A930B837618ED756A62A0B3CF58B980C94210BCE63FB9CE88745FE8BC34D57248979398CB0C1C9B83AC979A107C955E97543756221AFF06C553A1F0E764AF19B93E0DCBBB9C327F76AB4BB890D179C90839430A749A2C43A66DC36394FF06DDC54070A2A2F152261E79597AC9B2AD32A39FA489382718E04DA6369C4AA0D4823BE87A60561CF49232C8AA20811EC7B29EC8A90A363F3B367CF9A81A08645C70A17EA41A1AC4C0E9407763D2A91B6732E46C6BA160972ED35CBE6000B7C1B83CA21623859CFB4317306593003B2A90BE01FB5A4030CC062C308C14924CA47A24FA5D13B82FA7153988DCD1077E2759FF250C198ECC4C860170E93BCC48CB009CA7535C62EE2A3AE61D07C828C68D19A55F6A7224F716E77A381E06933AC03A1B0D01B6D231E38D4A19EC9C6E8DCA42C218B290130BCB583F7E958FC3531037716B356948D726E602329A322A410945568BCACBAB75D65DCBB38B80CD20865563699838659E065CE749A6DF66542E8474BD140B50EBB5983F546FB393A0BF10C5891767B935E0F5171CC97A00607332088AED99B13EEF557CEF73429704244FA2B915CC7731BB9BD351FA131A726C837FE19047443A16BEBB02F4A5020878AFCDC72CB780485A793CE23BC6DBC11E04B0DBDA82F51B4327814471C01042A1119D5513408C119266A0476DB89B20B18EBB44A231CC5BC39C6BCFC4DD2A61EF9180BD76327AB05A37ECC4B2E8ABAAA307A6C58040484BF73B06AB4A65F7FD99660A759FA903A56DA3E8DEC389262AFF8BABE1B85168BD21762C86046290F35D51E4BCB8403F160D9DC4E00CA8987E46CE05A5FB04A112EC352B1B03219A4B50345C6F31915FEF4C2EF870D30A244EA4C20D82849628CB61ED677AC9890CB5463EB90BCCFEBAD9FAB23C26A33E6667D76C96220147685EAA84CCC3140104AAA4A559E51209DB124337A2795925C5E0230E7920D4E9338DA23ACCC8693D5952CF49AC26A74CAA6E05011E6385F787A7071CA08C61F59CA017ACBC15E9BAEB78837B99B93908A8CD6D7BD30CB6C23F9CE5E15204E0225B55C120B31C1276695C909C94AA1B5D0C0496278435352B50343A9974A55EAB5105FB4436570181F2B7AE82238CFB9C967F424C1D146BCF74A2349583D36C1F7629E70E0C4702C133F7475985B2DCD923465F39772E8AB76F3634C6A1F6E8088BBB0BD3A050CBF323F9EB76BBC4603617908BE85E6EA5E40A862180D9EF1380B7A859947562EF3A845669146 +dk: DDA5A4C182BC2917C5AEEB973FE853A397753BF576B753AD82583E6EF89CDE2B7B9B6B6FC65A349F66BCF4903902D22418E123BE13A3E6A29489362308452991448E53370B9F1315A83540D14A0CB60B9C80549556CB6F839B6062365693CA9665A01CD66574242092954B945D996ADDAA51F106A454002491FC0881D0489722979D90CEFD5235B9A1852D334B6ECB7CB3294C5B50A951E835DCFB24EF9BC124601567C0C05E1C194753CAB73A73E114C91C0341C7DCA0C904217F6BA200752FBD0B74E5503D141C17338AC6B6110E78F5592ED1B599B3A8FE65292779A473D95B3A1860DE955ABBC99349D0A4F85C97A32A154C89AF603799A438890E692370030AF4B69A3AFC91ED283EF4290524CC88E6E67D9CD00790F8B3E8626F528AC4A236570218B1710B82A86A308B4C4068E07422643BB8031E0D556700123F8F948463291257280CFCE2749812AC26A31C145667E9E94FEAE011C037C00E268F617ABC5DE656A8F8C858CA0A392201E144B9101BCD29401C98992E7F4ABDD02705E0F0AAE6D2BF2BF9081813CB1CF78454535146FAA994C666E628A4E1FB15CA5663551962380727A5933F91495B4EF290DE64A1D6D35CFD4A5279EC0460622C2E1B8409619D31144E674B4AE08951B25416F2839AFC4095D7257F34D54D3742997B77893C1C009C55A715D13BAC3092B9911F1BD962645C1A0A91639207BB98E15A37B570E39AA15011280E8B64B2E674CEC8931D26587D003CFC89498C997982AA60FCD8A3ECE93D784B0F9E7C10A6C380B76C1D6E91ACFD4672D4D9485B9C857B92C283B596D714A404444478117FECA0C14B641A0DD1B027DB7BF832316F0BBC256324BD4345C0A7CF3B98B2E6D01B1A9644F29010CEA70BBA08BE6877BFB1570CDC464A049C90C2B28C0A329904C1CFE6C92F076098C300288397CA65581A3BB8BA7D92A3D22C24E8691CFC610C9D3409B73CC2CE78A1C7E5AD07720CC30C984F73272CE4B43541AABF616714400D6D040609286AF1330F342A71BD3276454B3C33B5508817644DF14C42E93199E27FAD15309FD93BC8F88DB9078350797BE9CC027F03A7A18965682C83DDF182C411CB20EC3EF5C435973714255CC8CEE376654CB1AA6554BAB32F7E7587DEA22EB3C2565E760F503B6F103A54B2191FF3EB6E30126B951091B010BCB60C0A8A1C3FC958BC4DE5504A3C50BB6A2A5726B6B8E25024DBB7C02BCB2FE31D7CC581E42185FFA6503BD0A0D1C907FD13302EC37D191C141CCC0BF4D7A371A8C3389C5A799663709949B17195B4EC74B2DA225002CFB13668F83A1092A6C609522C07529BEA7A454EEAB74E15246AA17452451672A6314E5AA5AE0C57C2AB74653005A8F2B122859C0E8A0829CB0240BC0B5213AC9B035E9366BD3A4BC680D3CC45D96EDD33AFA02C747132001C0CA4FEAA29059AB0C1ACB1979B93C087B53911897B928422D0732E134DA0186794B4CD2E242C0EBBB5A7E10A82C44F874B749ADA0F91C6A26290B1CC49B7BFA150EE40886C9ACC8DCA75F813B13E732E94F85F6908C0523CA70C71A5BD394673D22E4648A443B25DB6DA4EB11C50A8AB30CB342A39B130AAD1A421B567601001B86ABA44A1311F05423A939B3F3404E5657476819D9E406FC265935542B48AF47FA78482C4443697358E784BB72B54B373E813E19186D5BA8997053189B314B5BB8DB699059CEC5FC2D58191B2A729D4A3BCA3AA7B377464939CC8E548A7789E56F67D08C1A0772C9836102321F659FF7B088E9968661609003DB687A295FB2BC6AA593DE4C9CFD6C55D2395ABAB916D3A8559451A6BEA299519654E8C8CBB56E455A85C37CA5A74FBF25252812F16B1B9CCA649718C00DDA596C506BB525159659C272FC1C7B5EC8272DA85D506959B231D1394A71D2C421E743964A58F38D52A60407FB8605961A63FA394431D35641991CB17DA5637732A5ABB2F34B81B7384974030ACD43886021A50B70924606BA1A295A489842FE3D10E92FB1507E240AE0B5616F8AA05299C94301E29A638A742028F9321F3955C61A59C021168FAEB17829025071B4015FA167FB6220DE0B29AA3BE2E88A171E32C9499B9B00BB867DB0C9915384F0A49BF3C5CFE539D22D3B998315CB8D09191634C248495C1977837A7B76C9B35E067AADA829618E4C683C404EA51ADB1A7A116C7A0AAEB995AF1BAB8D0751FBA714957AD6C7A0A9C73ACB8D347F9A9A469D85DD94B1B1E4AB74C94048F9AB578A2BDFCC75A213A65345129F78B26E3D901B3428A0F87952B91517460930386856AE25D00259D58EBBB403621335791EC6C2C6EC50711C07F56714B0ED3753F7459F07B83D1F838CA1875017B24FDC2CA6224B74423842ACC5C4B03D0658C7EED5A713A365CF523C9C2254E9C79059331BD730B123F53538955BC0FBA92FF9388192C950BC46C25339C82E98314D616B50993BB6241224AAE7EEB610EDAACC43ACD775941FD8088E03931F40C999D92360B74B86B857CFC6B5A74367DC72033941C78484031FFF53874308D52AA6FFA3491E0CB98366B8FF2866ACD1AC64B63770BC25BC33531175A4112D7684C01A8C4500F9FC083FE652FF78910B75093A34CADA85947D2602FF0716624FC9617EC71B9E87CACAB31CB3836A022523C3A3BF9F542EC306C22EB815E1038A48CC4F6596A1CB1482C7BADD7390D8DFB1FA01C5C30E458AD31BC5FA717503C0186F5A3B936C2D0AA7197733C2EB708F32B9FF611537773BC38B904CECB5D2BE29C988B22E415C7944726EDE09ACB76175448712F4BB8AE5AAF4498CF4189B0F0332FE774170F343A121071961CA130694B964033BC015F490B85DEA4A81756A95F3526A856327CA68F66E828A66B138C052115C0B6EB910BA703581617299855318BA9AFE6B152CC538836278D781771FA4C033A65AC5630B3EBA8B02A69717FFA1E73E77AFE06441D91CD45289927C40A1425AF113B179CC46C6606CA0EEB0D86765128A726AD50AE8DDC1AED2A07129ABBB3AA67B4E0192DA99D2C36686D3807E0B50CC9E30A82D97B0895B6C7670C01FC214DA38FFC54970D8399EDE259900A081954172F385E037C9B72B43A3ECC7FDB0510F6A930B837618ED756A62A0B3CF58B980C94210BCE63FB9CE88745FE8BC34D57248979398CB0C1C9B83AC979A107C955E97543756221AFF06C553A1F0E764AF19B93E0DCBBB9C327F76AB4BB890D179C90839430A749A2C43A66DC36394FF06DDC54070A2A2F152261E79597AC9B2AD32A39FA489382718E04DA6369C4AA0D4823BE87A60561CF49232C8AA20811EC7B29EC8A90A363F3B367CF9A81A08645C70A17EA41A1AC4C0E9407763D2A91B6732E46C6BA160972ED35CBE6000B7C1B83CA21623859CFB4317306593003B2A90BE01FB5A4030CC062C308C14924CA47A24FA5D13B82FA7153988DCD1077E2759FF250C198ECC4C860170E93BCC48CB009CA7535C62EE2A3AE61D07C828C68D19A55F6A7224F716E77A381E06933AC03A1B0D01B6D231E38D4A19EC9C6E8DCA42C218B290130BCB583F7E958FC3531037716B356948D726E602329A322A410945568BCACBAB75D65DCBB38B80CD20865563699838659E065CE749A6DF66542E8474BD140B50EBB5983F546FB393A0BF10C5891767B935E0F5171CC97A00607332088AED99B13EEF557CEF73429704244FA2B915CC7731BB9BD351FA131A726C837FE19047443A16BEBB02F4A5020878AFCDC72CB780485A793CE23BC6DBC11E04B0DBDA82F51B4327814471C01042A1119D5513408C119266A0476DB89B20B18EBB44A231CC5BC39C6BCFC4DD2A61EF9180BD76327AB05A37ECC4B2E8ABAAA307A6C58040484BF73B06AB4A65F7FD99660A759FA903A56DA3E8DEC389262AFF8BABE1B85168BD21762C86046290F35D51E4BCB8403F160D9DC4E00CA8987E46CE05A5FB04A112EC352B1B03219A4B50345C6F31915FEF4C2EF870D30A244EA4C20D82849628CB61ED677AC9890CB5463EB90BCCFEBAD9FAB23C26A33E6667D76C96220147685EAA84CCC3140104AAA4A559E51209DB124337A2795925C5E0230E7920D4E9338DA23ACCC8693D5952CF49AC26A74CAA6E05011E6385F787A7071CA08C61F59CA017ACBC15E9BAEB78837B99B93908A8CD6D7BD30CB6C23F9CE5E15204E0225B55C120B31C1276695C909C94AA1B5D0C0496278435352B50343A9974A55EAB5105FB4436570181F2B7AE82238CFB9C967F424C1D146BCF74A2349583D36C1F7629E70E0C4702C133F7475985B2DCD923465F39772E8AB76F3634C6A1F6E8088BBB0BD3A050CBF323F9EB76BBC4603617908BE85E6EA5E40A862180D9EF1380B7A859947562EF3A845669146A128CDD9B684F4A0907E80ABE2B7584BE10833A4DAF89DE5DCCAB7C001116B5208FED872D91297D8059743D3E7B6EE47548357E7F882B5BFE2F04314187ED424 + +z: EB8EA5E8C5EABACCFF162556DA53F0C02F72EE7A7DEA8E9EB70FC51C777645E6 +d: F8CF49DA62AA762EC020F3766237520E7FDA4CA3AC11FBE50E6C5F9CAB3CA7B8 +ek: 36FC681397CD63113EF7756444A3CD1FB693BEA7905A507CABA24AEEFC637104C90D311BCAEBCEDB1335AB26C82F255984118B17E28F2266C5D73818D5ECAC6DA8380189196C9568EC949DDF76694A4B39145758FE66A14301CD64A10CCFE46C3CA8419EE5766160465154680F8C435DC523F5136065555F503883165A525568878EEB4DC675445F300F50A1C42EFBB5F1C9A0A46684414CB4C8187255A2CBAD4321082698F2714F234678D4418E33A70CFD76313EDBADA57C82C65801C0DB89D4F7BE19857E31E16ADAE95F95CA0473082F7FAA0855723B5AE4186A6C26D482905C00689D1737CBA52583893995065B5C76C7FC7839CDFA9BACF1B8F7A68307B459CA96BD7091A06A83AE3F3146FA81296932291B2158E9B09EFADA0A2D5AA8F1DB2489E40E04B0C768335595960CCD586B78844F0E940F2007B3B9EB9747254D83C58443C2B7A347B86FAB1ED4354DA2D9669AA21DC2A938E0FBBA0EB57E4CCA4C2666B79559B70F9B61DA060E03C59850AB2D129064F8D6ADFDCB7C457235CEE9473B003DDC9252AED7C444644832A4AF310C431AB26292488C73C38BC03550F7569909417041E2924AC9338ED8251BF6CD18F2B9D1569FC688AD095A728C574AB8EC549AAC0ED13A6EEF5AB87EE622034CB87045997A6657AED6439AF8951946ABC47BB9BBB55A80C92F40E126D78B4353538B6995830044B6E7220030861E47A5CF0291BDCEF8ACECA5C9FB0B43901CB6CE99246D2A2CFBEA014F902046836CB0B58A6DCB79CB9275519A3295C134289880A0D6CEB91356428294AB0B11CA150B9E362872BC8C25E2A78748C9D245C2D36A05F9D87CB5D0C306A5C0DA74AEF98BB1DC45801B4B9EC5B73A0ABA407B0AB8065B23B8345A6147A258326450E399BFEB86E754561F09CEFD1C832E355939175A347303E0D7815C4056F862B08F7914051834423972C84010CAD31B34321066396D47D5C9A77B9F45111B93988C0692039B5A060805AE4365AF1F8B138CC83F2D681F740886C7F07CD153989DEA4A6B2A3597374F7D5BA8E7D01424BCB721071A59FAA49F74AEF15910E84CC138F09F31574DF9A7000175C80073A10CBA6ECFCB84FA680131B824241BB96FF17BF76C0243A03DE9D49895D640E841A07C2299A7C52E22D37C8EE1AF81847781BB2F25240CF91851A5634AE285825C8809C716B6DB795361CC374B87BF34687E18EB413D21ADCEA883D4837CE874693159BDD2920405FBBBE6674F19D0B3C3D6B6F4095A946A5F7E6B0C5B7252A8F72EA357BAEB475FEA0141621A607324B4B17AA13FB7AF2ED529E1728F4BFC083198628DE3C8968A9A92C8863E08AB34A00EFDC73EEE7A8F29F4906E848B8F56474DB2BDE054A660966C955418E8D387CEF43CCA3B5DFD949E91AA5D75C50C38C96BCFEA7740147FDCD8406C0536325A1B74576392EC1BB1B181D584AFD841B43B0034ACAC33416C8DA02777E1169AD4045CD51674342C468874B16B12CB13776E6E8C702D84C5D13933EC161EC10B82A9F339AB3B1D1A9519F342506A3C0E7DB20ED3D7029CE444C5FB4FDB88525AF4C565DAAED6A51B7776246CA880D0F72D5A40B88FF348E9677B37D19F0088997F77429EDBB63840070D71A60FB34FA5CB59F47B06BB03C3AEE80F393A9DE283604635411151222C696FA6401783431E9690BB8958135537332EFA805ABB5D69C9C8F9084EC38862A68082266CA6A0C3514A71727AB519C359CDBC663066FAC14600132D1216BE63AEC0CA96804096D22904F4194D87D35C6C2C0D5539C93BB909A5287C64DCC1246A48CD9CCD80311089CA694120ABFD5A7F16D06A0BE42C48878BE76253198A703080A463053D43867B73B67B26B99A551A3C0C41115D007E0EA0AEF1446FF88BA7FDD32261FC0776FC427C121B2D231E3AC843015B12583777CCD5AAC502A7FFF9B03FB614246848742342C2E0A871E1AD6D44847D0A5512566098C712AD89904EE051425358CA5A964643577B8C8ED09450E97B55F660C2F2F608FBD87CB59585FEC3218219B1C7C18200DD446402898E065879FB17C97914C1E83F262801A4E256E798598A176BBE952149F8AD5B992CE791559CE6AC90539C096A209B9A4F87AB73E158801EF2B939A511F416BD4DC195D406A55A66B3FEC2925C5474525026488ABE90196230EC15B09CC55CE383DA8ABED781DC5085BC8E58 +dk: 67973C3154342CA60AE94B0B60FB2CA4DCB70BF13BBEF7CC9B54790AB3CBD882385BBC888321366F4AABE4696D0126B724A3AB8FE40E03137A28D1B9DE280C49342B162196B13C364FBC5E26651702651A15369F1B83A25B945BF7BA7259A329F107C91E13802B0119CBE59C463B3A53B51837683A6E75674174210A871A1F582A6AF0053EB862BDDB6FE53B21924A7A783C4712AC5A6A38062D83A31DDB6537A82EC135616947A7D6456DB50C95DF678B113275238A1A8312100270A730435E06E554268921A04A9B7FF5025884486D817D4D81610C2805B4207A013A4E4B785CCC0052F70318188380FA554E41A64BE315B3294C3EEAACBF46DB8C87105DFAD68575044F59CA15A379579D381ADC65101FBA2EF3CB2F4A02BFEF8A5B28A51A2283979CD45B753C06D3653B9124A04AA64577562C34DBBDC9A5AAE358A5C73259568A3B18E48EB536C6ECB05A00DD727582B2F51C5562D53311C09D26218DEF54455EF86066B76CEBC41584173472A6008C55C94DE4261116CB21D325B514C83FD07C49C30967D23FEDA60CB9373AB9CABD3D528A99E6898E7A6F4E4C9644022060C30757F5AD961369D537551312172ABCC1C228B9F4F642C952006D7C45C40CCC96FB7BD28731A2F277E7284375D03A35F68101278E70AA882AD82940EA1E1DE9616AE99EAEC6BBED52B1B110502062783B102297A144A54C10F43B2D4C529398EB0739DA57F183B195A39E3178501C9539355B8E456760FAF99D5C3C55B1AB3CCA017C04B94581B18AAD4594236456A02B4D99A00412F818D6EC1387680847D10539E0C063A334A2A86EE1794B49DC895EF95C3D801AB33748417C8F60245E69A8AB68C9BD04BB28783293C52051F9C5A532008CA9C0063FC77519709F05358BCD28955C4A9ED3D9319E1939CED04AEF489C0EF2AFF1EA05FF2C8189093B14C6917ACBA94A8C546063B2FCDAA6C77C1A424A81F3717D9DD88C7A3C64FC593AD66748523744BECB2434822F23632D6E362E5F38C6329958AA20096BBB4FE4F43167301D57332BAE31110E186FA5C41597B92922C79CCE8C59FF341A08E56CF7A1B610605D910510DC03308967CC7CEC7A4328600C601566D8766B601855CCCA887BC84ECB05AA1529DF77058EC0760377BF8E3AB30FE477C33594873B59F02CA226966DC9841569564F9A5557BEC87C2C81784664CB2C8A0770C7C15DD61F48B762CAF11E9C189C9E9947D788A13FE554E76CB14A631440AB2560AA747B447B08E20A5C8BADAD31BD79FB27091938C4EC7AFF409E69730E152048D540958458C219C007FB1A7711D9401B86A10685A66E3C439C005563746221F50382825E3D6A779E692022B2B98150B690723B8ECA370283611ACA06B5881F38A7757A38A25EA06FB5176788C68C01D33822DC9CF7248CB81B7511832845CB06FBA36931CC07BDE6BD299A69A18945DF4057ED724292B76FC1A4432C1C16F451CD1BD796451957C5734B90574D809B69A9B19F07837028C97FC56B10CE6779E81CC4B4714A34A254A1100CA2044399658DD878BE873036B8639609786FEB608B5134A79FD74EB3D485F1D44F39854B3C6552965B4F08F998DFA4721B6107C20433AF509FF0E571FB58B8AB15727AE24AA189CCAB216953F72899D823886364994CBA31EA12AEE12B85460D056C761024987F7683B40A692959513C346E3674CA736226A748345D5931D3250949DBAA2F5BBFD7361E748A6D69419A24D3CCF7F7A849A4301497A2BC1588B021314B0784ADF1C5D01B562B89B3863A92D9103638CA305146912A3588F3A6A816224686268FA692031F427036043090A6B93CA944B4DAB10B63421E69C948619229D6323720C773B900A8393BDAD30547E0BE24D26795DAB3F1806779FA13B1A09A4BFA93BCEA34F522430E1BC923E378EF4631BF76A0F1D3B6A6D8BDD6811293F02CC2096C0257A957261E87220169330BE5559B48698EECC58D151C50C85CA19C9471E7754A8524A8C742495D15365189A2156046CD7A916C2816D9F1626306C6575114703091CC7721CB848CA66108746B1C10341BE8608FAC87B869519ED8C6CDB0530EAA6C801110B8BFB8C4C0184660F79AC2485BEA7AC2A2C3C683D483113C8B5747309FF1AC459CB83560C8800502942B09D3870036FC681397CD63113EF7756444A3CD1FB693BEA7905A507CABA24AEEFC637104C90D311BCAEBCEDB1335AB26C82F255984118B17E28F2266C5D73818D5ECAC6DA8380189196C9568EC949DDF76694A4B39145758FE66A14301CD64A10CCFE46C3CA8419EE5766160465154680F8C435DC523F5136065555F503883165A525568878EEB4DC675445F300F50A1C42EFBB5F1C9A0A46684414CB4C8187255A2CBAD4321082698F2714F234678D4418E33A70CFD76313EDBADA57C82C65801C0DB89D4F7BE19857E31E16ADAE95F95CA0473082F7FAA0855723B5AE4186A6C26D482905C00689D1737CBA52583893995065B5C76C7FC7839CDFA9BACF1B8F7A68307B459CA96BD7091A06A83AE3F3146FA81296932291B2158E9B09EFADA0A2D5AA8F1DB2489E40E04B0C768335595960CCD586B78844F0E940F2007B3B9EB9747254D83C58443C2B7A347B86FAB1ED4354DA2D9669AA21DC2A938E0FBBA0EB57E4CCA4C2666B79559B70F9B61DA060E03C59850AB2D129064F8D6ADFDCB7C457235CEE9473B003DDC9252AED7C444644832A4AF310C431AB26292488C73C38BC03550F7569909417041E2924AC9338ED8251BF6CD18F2B9D1569FC688AD095A728C574AB8EC549AAC0ED13A6EEF5AB87EE622034CB87045997A6657AED6439AF8951946ABC47BB9BBB55A80C92F40E126D78B4353538B6995830044B6E7220030861E47A5CF0291BDCEF8ACECA5C9FB0B43901CB6CE99246D2A2CFBEA014F902046836CB0B58A6DCB79CB9275519A3295C134289880A0D6CEB91356428294AB0B11CA150B9E362872BC8C25E2A78748C9D245C2D36A05F9D87CB5D0C306A5C0DA74AEF98BB1DC45801B4B9EC5B73A0ABA407B0AB8065B23B8345A6147A258326450E399BFEB86E754561F09CEFD1C832E355939175A347303E0D7815C4056F862B08F7914051834423972C84010CAD31B34321066396D47D5C9A77B9F45111B93988C0692039B5A060805AE4365AF1F8B138CC83F2D681F740886C7F07CD153989DEA4A6B2A3597374F7D5BA8E7D01424BCB721071A59FAA49F74AEF15910E84CC138F09F31574DF9A7000175C80073A10CBA6ECFCB84FA680131B824241BB96FF17BF76C0243A03DE9D49895D640E841A07C2299A7C52E22D37C8EE1AF81847781BB2F25240CF91851A5634AE285825C8809C716B6DB795361CC374B87BF34687E18EB413D21ADCEA883D4837CE874693159BDD2920405FBBBE6674F19D0B3C3D6B6F4095A946A5F7E6B0C5B7252A8F72EA357BAEB475FEA0141621A607324B4B17AA13FB7AF2ED529E1728F4BFC083198628DE3C8968A9A92C8863E08AB34A00EFDC73EEE7A8F29F4906E848B8F56474DB2BDE054A660966C955418E8D387CEF43CCA3B5DFD949E91AA5D75C50C38C96BCFEA7740147FDCD8406C0536325A1B74576392EC1BB1B181D584AFD841B43B0034ACAC33416C8DA02777E1169AD4045CD51674342C468874B16B12CB13776E6E8C702D84C5D13933EC161EC10B82A9F339AB3B1D1A9519F342506A3C0E7DB20ED3D7029CE444C5FB4FDB88525AF4C565DAAED6A51B7776246CA880D0F72D5A40B88FF348E9677B37D19F0088997F77429EDBB63840070D71A60FB34FA5CB59F47B06BB03C3AEE80F393A9DE283604635411151222C696FA6401783431E9690BB8958135537332EFA805ABB5D69C9C8F9084EC38862A68082266CA6A0C3514A71727AB519C359CDBC663066FAC14600132D1216BE63AEC0CA96804096D22904F4194D87D35C6C2C0D5539C93BB909A5287C64DCC1246A48CD9CCD80311089CA694120ABFD5A7F16D06A0BE42C48878BE76253198A703080A463053D43867B73B67B26B99A551A3C0C41115D007E0EA0AEF1446FF88BA7FDD32261FC0776FC427C121B2D231E3AC843015B12583777CCD5AAC502A7FFF9B03FB614246848742342C2E0A871E1AD6D44847D0A5512566098C712AD89904EE051425358CA5A964643577B8C8ED09450E97B55F660C2F2F608FBD87CB59585FEC3218219B1C7C18200DD446402898E065879FB17C97914C1E83F262801A4E256E798598A176BBE952149F8AD5B992CE791559CE6AC90539C096A209B9A4F87AB73E158801EF2B939A511F416BD4DC195D406A55A66B3FEC2925C5474525026488ABE90196230EC15B09CC55CE383DA8ABED781DC5085BC8E587FE45A6DB8C05EA8FFC788FD2F73C26CEF305BFBC9BF7C5B32466B5417DB33ACEB8EA5E8C5EABACCFF162556DA53F0C02F72EE7A7DEA8E9EB70FC51C777645E6 + +z: DAC056B9A373687E44CCAB8751BD334F4942696B9076155F9D0E5BC0E89D85CF +d: 08E36AE8586A59B8249A80D7F43506F9711FA4B00A49D182CE06DAD0CF985809 +ek: 3201469EC68BC7EB2BD457769C69C09F1646DA20B3DB7A8756962DEB905FE387084A58B069901A9FE1A0939C38E6E414E23B516FD0651E174DC0F6388DC2CB8D605D3D5B1F6AEA3425A03B9A903C846ACC128C87CD5A17A46BB474A0BAB64112DDF1C35355C58164B7C6F9B8A5879CE8E1CEB4FCC26EA55E4833A401B54EA5C29D92E03A8FD5AED6C51E2437C7A89221ED73B2BA3BC5DC30276A0692FFFA3E28B8CB9025566D54A3DD84A9004730B2009A73B354644045B44224D9D96B6A137D8F61513BF8555FAA8F61F00215C8C8841091F7647E53055E6762A504C121474120BC70BED5C4102C82813AF656B9248ED6F630BB269CEE33AF26D474C8B3CDD8D959D10A5D2AE221D5C20D9628A26F1A11EDE680F8C8333A54AF8D79B67AB0BD9DA1680927B0B31B1D6653410C4CC0C6E95164C33506D8CD19A73E1031C733C55EFCA33F76BBAB03182BAFECBAEAD364CE38B22B74A0A244A15725B232616EF2CC0A3010758A698880A23FD58BB2199A3946F5CCACCC2D61AA5985488C0EB60D465566B94C762057ACB163CA636B548254C26F139F51A96E492035B9D725AC16B94C537E2FD78B1641882AD20DCD6C5BB21B79921A59631130E7885340F5311F9973CBD31783DA443BF7566AB3BACEB88232F83E7077845061C09D425C7AA01733CC63D5B7C17C6B3309408D1FA31AD909BC1B0AB6535B0AB6064722D847B07811098C7316071A751623654605FA453FDDE8176B42B2ED07CDA4144640EB5984B301390C64D520071F1C66AD69C550AC41D74915DC2156F78127A704CD678A655C87CEB43748F0989AAE1730D3E4B3374A72CE364F1E2ABA2E5CCEBBA440FDA8AD50A749FD908AA1578C02B35342BB96C3350392C5C25CD71093BB2E87A3A466B697489A3C9E9C84805160A7396D001633EE00AE5641A893BB374CF5CF62417AFE67682C08A10E0A59B8346ADD006F2B40669042616D57936593A62D5578808A1E9D55B1EF4C90EB049987DBAB69B3C8C4A596901BA2BFA74DD4B937547A82B7F5290BFB79E5651B2B4AAF3692CCFBA987D5EC778E61281B0B388A71222DA27A90776E66BBAD25118AFDAC425F15599176C5D5F1B491FA1FBBD9005A0AB93AF1C8280292AA468FF0B1218726C52E4AC8FA403C91D12EB1134D6B08ADEE2A065F191DDEC390A1232D63306AE1C60AE1908CA2294ECAC6AB5257644DA45D70E96C6FAA5E1DD02AEC276C5EE2A8D36A2A13EA21359934C8285498370460CCC2A4C886C72A9FF17AA214553F6826177630ACC2F70619D64CE3F04DF17A6599E9AE5D2BB97B731432421012FB229124CD52BB9E2EA7B33CCCACBD9029A69AB76F00CE84A0C0D2C80F54A77D6064AE85465FA74271BDC2C62CB940E9C32A67F9C94AFB7322B93016E31C4E34993C7A65D58117495C44A8EBCEA635AA6C29889F3AB1E39661925136A06BB269483C1D291F90478713A91A178193B25877D416C03242682E76071B78964EA626C6A85E4ED8A45CF573BE56369B9476A2FC76713AA11573A083D0A0B89BAC15228A42B9BE2F8617CF8BBBA21562FEE3313066A8E86063EDF365799B7EFCBCC11570196B535D40F65F59C0972E057E2C70048CC10DD292611028277B325791B865B9D863972AB1725B6BF1546DFE0030CD85621F92472CB0064CC2CD11411127231181E6745A3580F6E8383150C8C098A3EB455F5CD05725719D0F844BE76743F7D962261A5FE5C29E46D58EEBCAAF0C40C04BFA43089C6236AB1AB574CF28A9178A4634C5848259191C21401C05A00A48D0420BB2737816CC72BB3D5BCB5EABD5531ADBB2E875045E861114D2C5AD5997B104A4F3BBA26A6372EA6062C8D6229C196E5B7A572F898D94A307BA051F899C16A34981B818034CA84A14930AF2D38BE095BE4B304FA1BB69DDB72AD605294BD273FD314A4D1940161B97626B5C725935D358153B4A1318F1273C7C6A93FCB372196593D9655F3C41FFD4B7B72B7131D7C2607A8763778556EC2D3E09969A4C968E92240077051446375B2C4C9BA9CEE84563C4491673667C026843C1602A9BAA0705E27918A27E2B01B9E756A77F7A304345117ECC52E81823A0A8170086B89EC64A39C60EA6A78363FB79E7C0B886B1854C5A929DF98077F5AD847650926273A9495000E688124118F1D83CC93D0E4D2565D307F4CD0C166E9083E8CB47F6979CD0C6F05D5A +dk: 6F148AB8F31718811FA8326B85A430341A9CB4827004D5897659554F661B37551033D7B51D416CEC7921FFE4711A575BA6EB73643B78856B9C230768B6369A9D9C7C91B7620E4A709D38A73CD7A2CE48712EC03F0C94070B783A4EB3186051A56D469D01152D3799934A69C672600E0B223740F937607B8923768B20F7CBB9712BFC633654119B7299770C764C471399BFF2CE457918F3C3AB3A323CAB53BE1F491EEA526EE95C12A50C2A3D8C75589BB6919B97D37AC96753ACBE493109F60957E268F8CC27C497A89C12CBC7109CCDEA54E174B7AB6C4E9D68326261280D582DF8E976B2F67617B69FD2D58CFBC44F641C9598B293182939D4AB384C6B7920266E6C7BAA133A1A9E841AD0018ECF6010F0D292D7699177864D063641EE8BB1A2C7CCCD7C33C5574E9C499EE9E7417A5C072596C4FB76C2E56950B0907BD653B47966420E866FC3FA367C965A1D096FDA16C3CC1CB651DC693B960443617C58D13FC2595FC267720BB88D0633579BE84DC0232D973AAF92140B20CAB7D4444A96EB6A4235C0665460470994D94005B659BA5A6A345E51677402B69D378A0444B345340BE80230C7730F4342833543BA8079692333128E45B9DC48830C1892E69AB37C632771EA677A47B1518815E4976367888AE552A397576A6838B26426A587828B08EAC520E47463D00D1EF5CDD50838A961832647561BA75D6B1A5C93121949C46CBEE11938C5718013724131C18B0BAB806097C14445FCD303BC8BA3FBE2C0AA2C3FE45A74F5E22F77D6B405A962B1F95CC1E0620E6239AD57042E139955C97C359B09F6990D1C7747DEDB6F02313BDA02839AF16D7F181BDBD3245B272988432B35916144BABDB7F3CBB8A4575677484822B76739577CF945FC944C21D4956B0B2E3C86195B5724A03A896552BEEF5804D583BA6B2B9A67106A47621DBF911E62F677F933527A0095D6F4C0D5C3392548C23584CF91888A51269D15606542E601D8A7B915418F164A6AFEAA7AF60345D7A603A018838237861EF1C99194323773A8A18591F7539821D57856C44D3ABC334D266DFFA64AAD3B56DD7C7B1ED2B5026142CF508D9F25A2CA6199F7937E6AFB66B1C486D5512F1F12754ED5B70871160B8814986C078F006962C956404B6E5EE9C486E786C3C448B902B1841697F1208313F8543B40566E18746EF181DA1195711040E7268CC474A1AF4388A8FA11AB9A54B228A92E569415D12C06B246F8180F4B80395C708089DBA946B459ABB598F6F32708B8316AA73DBFE15D231C2D69627D434CC1674778B4FCAF23227527B2966F0718AC1C9D6D3B374829C46D063A4794C15A189DDA693FB6C08E46C0B7970B8AECB8B52EC35428E8826CF6B1FBC9A988E13ACD089E4DB2967DF64DBCA475BEDA31DA74C3BEE4BF74568EB257763C371BD252A525AC3325941C62EB68BE79701C11C18EFBB1DD010F84BCAF5EBACD35C67671C968A6B5098E0535D7932002EA7739C85F45085247032DE8EBB7109B9A522112DFB89C2904C1B611AF46762E4854AE2652B4A5580B6D902C12788E2F6C72A59A0A5C4385CAC77777C64D9920A5827568734370E891A2638AC12BD164C15C01A3DA0292F325DFA4069068329DDCC25A3964A845694DD6AA99F17AC9C12DADB4431C8707949CBE2E4B9764B65BAA0451146725B6A7B6CD6726E819AA8AE2971E334A66B0501F210C0A1975110BB8647CC8299C2F7D4C16DE4791B25A36B2592E3AFA0D059B9D4B3B50D9981160C23EB96BB1EA0A984D922C1D31A9C105CF5CE64D86222A12773E7ADC01C99B5F4754610A2B3F24C66D8E3212B8584DDF7B68128B215C600336409733049A54A719D0E5A657AC223136B1C9FC5D3F33545A051902AB0FF4B1CE5DA81BC8B3A78EA40828348210F953250211F85C1F3196418A32CAC6158850EA8B44A0CB72EA5C0B165DA1A0751DA41D58514439461942E478D3A3951E3273F35B938A842EAF331471B9B1417672DB5CA82F246B937448A08AA720060C5F2BC084D3157C25CA2F2BB02E2BC4289466C8721D7198B01F92C3EAB020BB92B318E78074218A48180EE799948501B84FDBB447FB009436CD20A69378E4BD87831630329AC0D76460E5134C60561180274E8C94B64C5F17BC4AB39625B49A13F1887B9AF06E3201469EC68BC7EB2BD457769C69C09F1646DA20B3DB7A8756962DEB905FE387084A58B069901A9FE1A0939C38E6E414E23B516FD0651E174DC0F6388DC2CB8D605D3D5B1F6AEA3425A03B9A903C846ACC128C87CD5A17A46BB474A0BAB64112DDF1C35355C58164B7C6F9B8A5879CE8E1CEB4FCC26EA55E4833A401B54EA5C29D92E03A8FD5AED6C51E2437C7A89221ED73B2BA3BC5DC30276A0692FFFA3E28B8CB9025566D54A3DD84A9004730B2009A73B354644045B44224D9D96B6A137D8F61513BF8555FAA8F61F00215C8C8841091F7647E53055E6762A504C121474120BC70BED5C4102C82813AF656B9248ED6F630BB269CEE33AF26D474C8B3CDD8D959D10A5D2AE221D5C20D9628A26F1A11EDE680F8C8333A54AF8D79B67AB0BD9DA1680927B0B31B1D6653410C4CC0C6E95164C33506D8CD19A73E1031C733C55EFCA33F76BBAB03182BAFECBAEAD364CE38B22B74A0A244A15725B232616EF2CC0A3010758A698880A23FD58BB2199A3946F5CCACCC2D61AA5985488C0EB60D465566B94C762057ACB163CA636B548254C26F139F51A96E492035B9D725AC16B94C537E2FD78B1641882AD20DCD6C5BB21B79921A59631130E7885340F5311F9973CBD31783DA443BF7566AB3BACEB88232F83E7077845061C09D425C7AA01733CC63D5B7C17C6B3309408D1FA31AD909BC1B0AB6535B0AB6064722D847B07811098C7316071A751623654605FA453FDDE8176B42B2ED07CDA4144640EB5984B301390C64D520071F1C66AD69C550AC41D74915DC2156F78127A704CD678A655C87CEB43748F0989AAE1730D3E4B3374A72CE364F1E2ABA2E5CCEBBA440FDA8AD50A749FD908AA1578C02B35342BB96C3350392C5C25CD71093BB2E87A3A466B697489A3C9E9C84805160A7396D001633EE00AE5641A893BB374CF5CF62417AFE67682C08A10E0A59B8346ADD006F2B40669042616D57936593A62D5578808A1E9D55B1EF4C90EB049987DBAB69B3C8C4A596901BA2BFA74DD4B937547A82B7F5290BFB79E5651B2B4AAF3692CCFBA987D5EC778E61281B0B388A71222DA27A90776E66BBAD25118AFDAC425F15599176C5D5F1B491FA1FBBD9005A0AB93AF1C8280292AA468FF0B1218726C52E4AC8FA403C91D12EB1134D6B08ADEE2A065F191DDEC390A1232D63306AE1C60AE1908CA2294ECAC6AB5257644DA45D70E96C6FAA5E1DD02AEC276C5EE2A8D36A2A13EA21359934C8285498370460CCC2A4C886C72A9FF17AA214553F6826177630ACC2F70619D64CE3F04DF17A6599E9AE5D2BB97B731432421012FB229124CD52BB9E2EA7B33CCCACBD9029A69AB76F00CE84A0C0D2C80F54A77D6064AE85465FA74271BDC2C62CB940E9C32A67F9C94AFB7322B93016E31C4E34993C7A65D58117495C44A8EBCEA635AA6C29889F3AB1E39661925136A06BB269483C1D291F90478713A91A178193B25877D416C03242682E76071B78964EA626C6A85E4ED8A45CF573BE56369B9476A2FC76713AA11573A083D0A0B89BAC15228A42B9BE2F8617CF8BBBA21562FEE3313066A8E86063EDF365799B7EFCBCC11570196B535D40F65F59C0972E057E2C70048CC10DD292611028277B325791B865B9D863972AB1725B6BF1546DFE0030CD85621F92472CB0064CC2CD11411127231181E6745A3580F6E8383150C8C098A3EB455F5CD05725719D0F844BE76743F7D962261A5FE5C29E46D58EEBCAAF0C40C04BFA43089C6236AB1AB574CF28A9178A4634C5848259191C21401C05A00A48D0420BB2737816CC72BB3D5BCB5EABD5531ADBB2E875045E861114D2C5AD5997B104A4F3BBA26A6372EA6062C8D6229C196E5B7A572F898D94A307BA051F899C16A34981B818034CA84A14930AF2D38BE095BE4B304FA1BB69DDB72AD605294BD273FD314A4D1940161B97626B5C725935D358153B4A1318F1273C7C6A93FCB372196593D9655F3C41FFD4B7B72B7131D7C2607A8763778556EC2D3E09969A4C968E92240077051446375B2C4C9BA9CEE84563C4491673667C026843C1602A9BAA0705E27918A27E2B01B9E756A77F7A304345117ECC52E81823A0A8170086B89EC64A39C60EA6A78363FB79E7C0B886B1854C5A929DF98077F5AD847650926273A9495000E688124118F1D83CC93D0E4D2565D307F4CD0C166E9083E8CB47F6979CD0C6F05D5AA184CD5ADDE3E9D68D66C7AD3ADAD382D8642BF03B85F068AEE861FA55B6340CDAC056B9A373687E44CCAB8751BD334F4942696B9076155F9D0E5BC0E89D85CF + +z: 4D727ACABD44DC48980691E0268B5B3FC1E476B3FDF9571F5CBC8DDFD400AB99 +d: A491FF48028B67A407F1054D5B1CBA733B665DE667E22596EDCC31C227C2DE1B +ek: 3563BADA724011CA9F7154964DB8092AEA60242B273BA94ACD33B61BE47B5AC2115E95BDBE56B214E04166356496A698C81744C06B114E2B37CC441A9AD8C90B936E1D86B9E1D9B17F352B393B9A1DDA0FEBC548989C12C120C7988A460B151895961733F84111058116C427E75A8FB6798B9691626F7A5274F46BCF5A160F0BC59B01C5D5E634EE9C1FD5D665AB59A4B495030855C538C86BE779CCD8CC076D83407A5C9AA3757841DC30F47592233A3AA8F3A721A5902FF8225F51764D59087D5B928E34572C23C511E236ABA0CD710A7EA0FA0CBA999F22445AF63CA783205E4D935CC9304BE9E92364C97993A1BC4DE491C5ACA2932575C99153A0BAA814644DF6A4922F426268EA1F7D97AB7629462F0C8465900AF523CF2FA978CDA56F4FC936BDE529553B56735701FAB3453C1A8ED0492222022E7C799EA11837C952CFF9A059992B26CE774460DAC2D23803A913CDE96662CDD78B4842A09E3A09A8D6A5B4052A25D39F63A43D9B9473FF184EB9B49B78B7165C62141866C2D4D866232A952E89CFC422CA5E510390DB98DE3A5DD0E3728BD5076656941894BD2C85C1B4FC400A9365F744B7EED6637C694D7C3104329AB526193E0CB2BF5E9B8E5D34630C16B097EB027C33621F23BA78E4470DA48354C29C114C242EEB6C62D15395D40B716A6137CB5B5AE2C27CD49D176B5D70416E254753F1150D5D8807F07916330C69B5F236F0672709834523092746897CE489B3FC878FAB716042509AA96BCFB839544449280C7C1CC3F79A22A25BBF47A33228CF1CB619E2492A95EA5F3D12C80BEB2412B81D6EC7CF6147287FF36449205CAAFB3625CC0A6FD4AEE3898D8FE56F62B06F6A7B7F1325B83A30B72FFCBFC9A672767BB2659B1B6500B4A3629F00286B82F9597E6CB21FDBA9AAAAC5F24273B2AC22EA4023219C7B32FCA7694693A2208791E1AC33C00C0DE64E2241001DC04249CCBEB797A1C38CAE3DA81C07364374033917A04AF6A19BE424C07DF33237B9223B7C04890CCB57780126B9A68AEB5783993F6C08783DC254B14482AD37AC90609BF3B0CEC7B39DB4241E0D9502DB60AFAE068749A295BEF8AABF861EA1292542927F6DB939AB7365142A37962A46230C37FB9519642119E03C45CEAC2F0B40198D6211758346E2FB284FF807A4C06552D7B8DF604D2EC771D2F74D0A258261280C60E71C9FE66168DC9493539EC1F018A520C02E6B8562C55831C18900A1C55FCC6A772480BEF2C75322C1CD116483562E6B7A0D16D351E2BC58032B5267325183148CA61079B2E8A8AA293863E0946D6772716053DF4A0260E3A36ADABD19713B46E89ACD650EA7932050724356D1261DA37916E85BF552C8AA628ADB08383781245EDA4A82E27D099496A26B5C893927DF02BEA47742B3C40B0E31B5D621012D1BC0F3B085E5BA6228E9B5E875901F1711CD12516EAAA4FFB16AF44AC384E0AB5469B222666FDFE32B1F5A4F3C0C022F6B4ED770572DB6B9B7FB715CEBA1C0EAAA19FB2361D83DD2465375A2BBE2793255619592A6044B71CFCA2916B0C6C895A38D7A28245398465432878D96446BF71A6C21C0A62500B030BE6B528646C860AEAB7B28FCCD87381C61D7106B518E22A2A03F5B7F48729A50672A4B039FB67B9DB0A803D304BFCF83782BD5A10250A8C8D96A9EA993E692CDE5871C6BF79FED564C5834634B88280D3A4CB18025E332532BC65FBC169DE0308012C08A581A1A5C9B1A89C75162B990FDAAA768A35DBD9ACE608981D589116BC45BD7D49425C7B11B573B8F554976152C9A17C273E4A3CAC15D5DF6724C1605D9A77CE487438248178C10486FD7C7E1EA52BB5467B066245560A2C4523B53304445F956E968C5AFF602B7F9378CB290BA0B4707841D175C01AC0BBEB18435E03850FCA479C1E8B7CF0730A5F23690F862C1970A5E9A8DD3F51E0655B2CE7BBD4B38264929C9499BADB505625B7A7BF260597F1239176C4892E37C3EA0770068C49E14A8DCE526D64791B6E3A1EB70A8FDBA17FF8476CA5B1BC9FB533CE7B1F0373D760AC691DC598899A3798A0D6F967699CCA69420116BE625CFC8C23879215C320B354412DC7311E21A3784A3445134977E995282033BD0080B84487BBF23A499CC1D17172BD029406523707B671E25F9DD605C8473C42FB131B08A1E33F1E85055C2DCBA8B2B04F9B8C07D906384 +dk: 385CACF0957318BCCDE555CB6933660544AFDAF8BC43D4AED82135F8CA2131201E03C7A42C7875EF309F227684284275F590CAB8078AA51AB95A133BFD9910AD0218260309CE43360ED01926D13255D37FD837462FC685F64350CAD95F9B757B56C79564C57C10B31F25514C570C1EEEC1223AAC91353971D915635E3A0A8F4BC5E1F241B3F31F457B3984CC160E13AB6C46B41808CB067C8396D4425FFA0C2E208E95522D65D0583FE2C50F40C9888066CF3377D494BBCCA2CF5DB55ECF711AA48ACFD6F859F859992E5B57C9C56D9430C6360B076A8C0EDDD544F8BB5B7950A7DDC006E705597FC08AF695AF0765331CC8913D8944EC4262E195B6FAEBCE2A3B7472D44A320B1533AC3917FA8DF7283D33E999DE4756FD37005104C8E2D50C4356BB35A79C021C45A05C05B10688F5A53AB52255D9B6BF8FAA036F09923AF89CC6F66BDACAB817A6C9F88B2339170FDD478A7C674350209C2D0773A413134D9709DA988F743134FA89AFDA3C94C4F75DFEE2656AE2312DE6A42A0B43910A4CF061922456346039BB4AC466B8F9AD7867103C165041220C23F09F264383D183B66C7BA90B93BFF8CB9E736881EEBC21917AAFC9067F8814C17AD8A302184FEC862083D1B39C810B92E3CDDF937773CA9EAA2C342014CF4652A5E5D2816AF4B9586467CC702A4AF342DB0B5908AC2F9B0C4490A8962D011BCCEAB20EE46DE2B6B08D473D79E7A10AA52211191784551E7B289C2FC85318017844674AED2917B3ECCA9C814F9F988CA8A927029AC5A6E8582078220FE44AB8A63EBAD736C4496D726BA3A1B422F1265212503B686A5367279E9661702D21887AE81F283966A5C91A8638C63608CBB59CA80A679F2ECA74D828AB15592A15070CC6915D8B6A1A6CD13723D410276B6F6644A9D0610869347386012340A4C6B1207B57903527C010FFC1C8B59599DAF124999CC4FAE39164A5868107C198519B59FC38E1229021A901F569A009987D76606A1F66C88FD88AA4D552E7C277510316DAD731727928FBB4495560958042773E1B8252BBB14F3328E5079E2206743BFB18A799918E241AF3A808155262A8F9A1CB46C60696763AB1206666BE2659BD1C78B6ACA15FB1F823C6E15A70930D21BC07F306094715A62805C486513837C56F332B97CEA067318C0C8E222B5762968DCA48DAE6C8297C2FA322913EA947B06418096C22D1EC3F2CEC48A7F850BF01B5702A8085108FA53127DE0B949E6352365336BEECA65395106BE79AAA91623931828436A67C0C3917160837532E0949503F7891BED485B5056B211A1E354105E3661AB7A1BFF354BBEC695204F2A8EF55073FF27A313662C1E7C7F4E8AB46399D29E2BE910425CE92976B491A1696CA56827F4571C98B328046269379110A559B463F1B9770050F1750262542A6C6BB728B4332C555CF45468795F2884F10303E212D333A0445EBAC52D669DA8B1BC3033081D0516F01CF22C5BE8CA020C8F671FC27A71A518D08B7A2C1C3AC62D874293A1D33729626968638C85761E78ED704CB86F054BE86C35F6A5233253C0F097B34A557C3A0B7B5D16B0266718AB7BB5DC27AAC3A96BD0B807BE5392FB0C6804739800206C7287C130B2A77E5045D5491FA50C1C68629C538078A3091E7B967B4767C3758A9A4E871C6129D78F0B9BC7963CC110641F7C8350A860B611C3DEC98FBBB8FE4F40BD10BA1F9F6C7061B12E7541EFB527B8E4349469987E4FA42D8F4958D6243A1C032EEB5860DD0BEC0C9A1E4D88967B748BC536020524BF5D06C594199DBD6B6CBB795F64B0F6656655B9B36B7E84316D918E094078D1C4E03C75617197306192338747E32F46551ABC23E74AB757B12C85899C28238FC74C089E4101F0A42BD440E28BB832BD523F03C070FE065D7B96652D680DE68223971ACAF5B5C29B8AF836C41CF80AACE794800FD944B6224B8E207BE27AEF24BAA4B2436B28B6A85AA19612A4F11935DEC482D7EEBB006B35860D13A7FFB159F57812B518E2F3161A9E35C5B272DA3529284DC278664AEDF05B0E1D602BFB60436F026FDBC0A30F2579F1C4252021A132C31C73249065C5BBCF03A5D418DEBE578E5F4A9074685C68491ECEA6DC9EAA7BC819DD2C43F42049B92864A001D533741515EA5090F0870F455B03563BADA724011CA9F7154964DB8092AEA60242B273BA94ACD33B61BE47B5AC2115E95BDBE56B214E04166356496A698C81744C06B114E2B37CC441A9AD8C90B936E1D86B9E1D9B17F352B393B9A1DDA0FEBC548989C12C120C7988A460B151895961733F84111058116C427E75A8FB6798B9691626F7A5274F46BCF5A160F0BC59B01C5D5E634EE9C1FD5D665AB59A4B495030855C538C86BE779CCD8CC076D83407A5C9AA3757841DC30F47592233A3AA8F3A721A5902FF8225F51764D59087D5B928E34572C23C511E236ABA0CD710A7EA0FA0CBA999F22445AF63CA783205E4D935CC9304BE9E92364C97993A1BC4DE491C5ACA2932575C99153A0BAA814644DF6A4922F426268EA1F7D97AB7629462F0C8465900AF523CF2FA978CDA56F4FC936BDE529553B56735701FAB3453C1A8ED0492222022E7C799EA11837C952CFF9A059992B26CE774460DAC2D23803A913CDE96662CDD78B4842A09E3A09A8D6A5B4052A25D39F63A43D9B9473FF184EB9B49B78B7165C62141866C2D4D866232A952E89CFC422CA5E510390DB98DE3A5DD0E3728BD5076656941894BD2C85C1B4FC400A9365F744B7EED6637C694D7C3104329AB526193E0CB2BF5E9B8E5D34630C16B097EB027C33621F23BA78E4470DA48354C29C114C242EEB6C62D15395D40B716A6137CB5B5AE2C27CD49D176B5D70416E254753F1150D5D8807F07916330C69B5F236F0672709834523092746897CE489B3FC878FAB716042509AA96BCFB839544449280C7C1CC3F79A22A25BBF47A33228CF1CB619E2492A95EA5F3D12C80BEB2412B81D6EC7CF6147287FF36449205CAAFB3625CC0A6FD4AEE3898D8FE56F62B06F6A7B7F1325B83A30B72FFCBFC9A672767BB2659B1B6500B4A3629F00286B82F9597E6CB21FDBA9AAAAC5F24273B2AC22EA4023219C7B32FCA7694693A2208791E1AC33C00C0DE64E2241001DC04249CCBEB797A1C38CAE3DA81C07364374033917A04AF6A19BE424C07DF33237B9223B7C04890CCB57780126B9A68AEB5783993F6C08783DC254B14482AD37AC90609BF3B0CEC7B39DB4241E0D9502DB60AFAE068749A295BEF8AABF861EA1292542927F6DB939AB7365142A37962A46230C37FB9519642119E03C45CEAC2F0B40198D6211758346E2FB284FF807A4C06552D7B8DF604D2EC771D2F74D0A258261280C60E71C9FE66168DC9493539EC1F018A520C02E6B8562C55831C18900A1C55FCC6A772480BEF2C75322C1CD116483562E6B7A0D16D351E2BC58032B5267325183148CA61079B2E8A8AA293863E0946D6772716053DF4A0260E3A36ADABD19713B46E89ACD650EA7932050724356D1261DA37916E85BF552C8AA628ADB08383781245EDA4A82E27D099496A26B5C893927DF02BEA47742B3C40B0E31B5D621012D1BC0F3B085E5BA6228E9B5E875901F1711CD12516EAAA4FFB16AF44AC384E0AB5469B222666FDFE32B1F5A4F3C0C022F6B4ED770572DB6B9B7FB715CEBA1C0EAAA19FB2361D83DD2465375A2BBE2793255619592A6044B71CFCA2916B0C6C895A38D7A28245398465432878D96446BF71A6C21C0A62500B030BE6B528646C860AEAB7B28FCCD87381C61D7106B518E22A2A03F5B7F48729A50672A4B039FB67B9DB0A803D304BFCF83782BD5A10250A8C8D96A9EA993E692CDE5871C6BF79FED564C5834634B88280D3A4CB18025E332532BC65FBC169DE0308012C08A581A1A5C9B1A89C75162B990FDAAA768A35DBD9ACE608981D589116BC45BD7D49425C7B11B573B8F554976152C9A17C273E4A3CAC15D5DF6724C1605D9A77CE487438248178C10486FD7C7E1EA52BB5467B066245560A2C4523B53304445F956E968C5AFF602B7F9378CB290BA0B4707841D175C01AC0BBEB18435E03850FCA479C1E8B7CF0730A5F23690F862C1970A5E9A8DD3F51E0655B2CE7BBD4B38264929C9499BADB505625B7A7BF260597F1239176C4892E37C3EA0770068C49E14A8DCE526D64791B6E3A1EB70A8FDBA17FF8476CA5B1BC9FB533CE7B1F0373D760AC691DC598899A3798A0D6F967699CCA69420116BE625CFC8C23879215C320B354412DC7311E21A3784A3445134977E995282033BD0080B84487BBF23A499CC1D17172BD029406523707B671E25F9DD605C8473C42FB131B08A1E33F1E85055C2DCBA8B2B04F9B8C07D906384861D9A8CDDC54069D3E53E033E2530CF83C284A49AD15019F061C40B2D00AC7A4D727ACABD44DC48980691E0268B5B3FC1E476B3FDF9571F5CBC8DDFD400AB99 + +z: 4E638D8AC3662450E09D8500DED751060B7990D54F137508B9897277F65EA952 +d: 7B2EC50C53A67E0BCCBA98C2E319F5AB46B6E593D2465F14B23FFA03D0E5BE0D +ek: E8A65EF0C7C7D7391DAB233EB277243732CAA45B53315B645FF9721D8AB0CFE54FF717157663B9098C2267633EFE3544A88014AD15C7B10A4551CB5F9BBA3D74946371B1AA54E6419CA7B4611149B5F02C73819A8C625AC52618F771202338AFF05969ED670BDD0B9DB562B8055884CBEA7A208A2DA850A05484C6B84109A5C2B498E8B8640ACC6F7AA6E1D7A95415469CC1C06D17176146CEFBA58E2B8929770851EBD6CA5DBA444548C622673DFBEBBC95767BEE2B86FF5BB37CF306B2945071EC1FA80C7540C56A36EB684D71C5E8B90AAA8C2421E21D64E0638D63C96E2B0BD9457BD5062199A01253D240C712315778AF487AAFBE28C650532A493C1B3E0251BC0841392839905AAD3D12289506742073862E8549E7E87EC28102DB7B89EBE91627CB95C0928C921978CB8C94875A94F1557498132200B4B76AA3C3AC9755C3B6BC5E5C59C9B3C6F7FB2CBB5AA457904FEFD2C370E29EEB2417BC45977BEA02A0DB9DE57937372298102755BA5B007EC88340B28AE7B819F9E07182F76070043CF3AA7E9256CF1CC3A6442B1726EB889CAB193222BCD3D8141843C1EF9921B8254712C04529D38846F595BC011B3288BCE0231ABC96985145043B579BB0864F40EBA6A66144E0972CDB10A71E44A088112B3C7907E5591D6EE85B34D4AF8DC58633081BA1A0A6EFE133B4C70ED215A22F451A7117B8C5F6A3D3FC4455214F5DCB8C31370546B4C4BA365A25017A9C2296AA641CBC4745BCAA72D17C9EAAB0155627BB45770D6D259BDF5B044053B4C7C8784FC433E89942B5D6C807A0707842CA4FBB98693303C118C9F4952123582FC4E22BB853944BFC1584810153F3AF5DBB74BB2928785C542AB647E9321D724AAC9EB9091707B5075C700A4817CAA2C355D4C99B8C5037B5288FF5279725BEBDAA5CE23609E5320981F11C8A116501D5ADD2D2B057C41E469257057B7A9C508017245C20C13A0C104FE1A517EE4621C367CE283183C07675BBE5895FBA4F30CC406772635982CEBC3153D046161C7B8BC4D87B648236263A44ED50B92DEBB624528C7A984C4C5047737A8021665279E9CF30069AADCC3F4A9245700436E646AF721A612828A07DC463D61B70223C7658F22190C83405999D92889CB0E5020052C31066665C4A021643C20764C370B9A5D1975D47646E1329072335432A19A03590B071482A3774BCA0601D8DBCC35A63742CD127F6384AFC6A971EE8CDD3E13687588D84C358A5537E753B2736840FD4E76A1CD0C68F9A990E5644404BBA84491E5F3B6F23EC45DF91538BD54070A702E69B66BF6C88CBDB8FDE693A2487681379A2AF94C592472FF167BD17966F9DF67E8FC51152AC613512930BA2BC2F453EEBCA91399B6D8F12AE891B3DEAECCFF120751866369BF8902D439D19F77B264002E5901B1C939FD86CA623277E6B09A72A93B52AB00754EAAA74833B8E366C8F0752639437F83CCC00F92EB7057C43AB94A75C31D5F854DCD3784920A36CA0C2DE244D1AE3A9E578B98E0634635549A8932A6BEC1F2EB321572A060EB110AF473F3E04323FD868A241891227222414C663285B05777BE82585DF3AB0ACFC121A642C541B3C3D7BB3157302EF62A1229156DB3609678B3B3E2576902145E5ECC78B65CF69BC8A7E6631494B804C4C89A9B595A8D95C039A9BA356670A536220C1CB54AC5BFCB7CE0125606A40C4EB4BAFC4C43BECFBAC84812F70C66796D6407F887CB0DB41F0FA7062E255896582B2B218FD96B6E5581A6FC26ED40272836950CB348AFE78CB135ABB6D015F299377632C72A7BBB2CDA7CBEC689E7551168483085B6B7426EB6967F729AD695D4E09C49B7A0010F80EAB54CBBAF4B641C956231663DB83512C97067CC7BFBEDCA93CC9A739A813B48C4793354C2DC642F869307AA191B77C2BC72BB048300B54906DFBD45255E92D81A98CD87149FEC3A428540D4E03C757260F3731CB7C4743A37194054AAE5FD6902D48A911F661EAD29321722E8243CE62E75ED82657423163A86362CAC2931954092909B0082BAD382A013A5044FAE9A12BF300670CA5771042933764E700B43259B130F033B023CBDA36815E2C6BC7C0601CEB7586A95DA4033E80E32123AB86C6135222EBAC0EDC17F5549D5B66760E07B2B16BA4FD8040E642990128A39A636B19FD3EDA4611BC1CDFD552AD1DB338FE3700F0920D56F3 +dk: 0CC61046A844640446F07C1683D649F1168A00F1C859798944790CE1F884B2A99C177C579E314C91B33E483B86B64143EEC23F1587C8E038A42C85397A47CA7600C772D492E4CA5F7DC815100B9155449E72A0A526D24035FB20074941F0622FA9369E79D46378E45D5564245B0C10D9D873420895059428965CC22E064B349A4E40346F77A84BF7734C598C5775D39E1ECBCE2A6BCE6FA5CEA4F41A05949ED766C1A290299D9BB47DDC2E7A782F386C42D2AA04C991304BDB108801AB6802B04259757A63A88B7492A2FB2E93A1AE7646267F434C724134154C407808CEE0A7983C32727E44766E5C34EFD16C52086519FA0DC6C7098282555C069F76832F7707477F69566280BB6D406ED1714205B73A5711C449B91B4F8A2C2638B65221493BD940B5370A4C661F6F9C27AEA6A69DD0B61CEAA861E78328941091A95300602878222290CBC67E907D6C4CB2BD6623CCC5A23E46322498BAC5945E6B28283D7401B30401753859A2D4818ACC8D71437961DA02F2E8B5BA94B494E7A215F518C6BC8214C57237108C6B183F1551696A909C828A0E076341A5C141ED62A9987932D002A714366D8621CCDB0272E7923C6F3461AD341C145A864C6655C8E02AC0C91CC0613CE7D48027206C7D4988D82A1340A7BD337B82FA26400A4B97B5D819AF154CDFA639DA3A522DAA0F524B2B77FB422B8216FA83B8D94903452BCF5054A5081741B2E93F40548793B39B7197AAF027907B763179269CB06671B0CC2820F6015FA158CE93770A1A51CBF033ABA1A5C4363A1AABCA93F2800DC011B19B952774C4F90991001C19F3A688B2E01C934A7BFA705CD093AF85BA5D20FCB498E5C91B186378B63C04123D19A8C2B5209D7D8799EA7192BC3876D1943F17FB63B8185D89A37483AB74E62BB03C27BA845CCE57309DA7A8055642B9AC51B820AA8F61F88B819804DCD8C3CDCA2AA816BDABE9725BF83C61796ECB069D183600FEBC41114182338C97B67618DF818DCA151AED240E36C1A0DCA654886C6CD3731A92E3CE81D7CBB4BB1CCDD238C54C44E89126641AAEE1145BBC378C92C56E400B5DE838A18FB66D365501B406287ED8AF6D03CBCA4BB617B42DBEFB4A0435319A00133F4AB70631C1045515C6C23310F50406780F9E891187FC96736296B9E7AB1609C51A103AC34667925901EE3A9116CA97FB46B8325B13A64B008A88B03E0C383E152D7F8593B6638BA7F9AB500968A830042CBB50638A58AEC5B6BBC1938E5C7A605A80B161BC18841873ABB5F38ABCDDE99464736D3505C9EEB86E8A95747CF9CF3B9A52BB115505B156928A79DC9B9E1F110987D4808AA2C27B806D7B746014476E571AC2F416AABADB36CF994813887195CB63C15C678D480443CC0D2C60365E358F1FA9897A12279CE928E2CA8D67006D48592F54EA4CDEAC2748940AF558356760C420EB71DE2ACADB064586C5C01A698330266DC78C95DB8CB51907C6DD94B507C107E9FA7210C60FA5D8888A3CAD7AC1B6FEE59159D6212403B2B21944D0AC35B0137989F002D4F13E8B873F8B53B3ACB09478F4C00A7486AF0B5FCBD42E21654FF3DB786F2307E7E60236EBC89C36971E2920A27C5E7125BA1DC77B4F944BFDA8C4D3E09BC8A00B3099B6EFEC5F7F59AD925B79C3311A7F02433FB9133F845B58E0BEEF5611DE6890E45AA75645C34F832B08B7655CD6424F733FEDB9825EF3340A010E72781D16F8180F227110402816E6524D8B341EF5CBD098A8CBEB52C02B715D1789B0D38250EA6730E506E569A9E32A5A35C7341181B9E0C46296E91F3FE9C5A7159F9126BE378BAC03D467C7A39AD1605DDB2A3C7FF930A85C0710114ED2094956E005DD770699F4CD50767E53C15D5251B2621336CD6974CCD446C1C4028C62839EB699D869758E502CA158A39798688D95B1C4509EE9C57383209D69D105D56AB55A59955F78A65E49B5A4FC4A5791AE5D79118CE2B22AA9BA2DCB963BD672A6861D78C30D6873893E15C62A428BA3E77D09C94822693166E39C32E32666F4537E70A641181C13609F1C3535A91486FC3ACCCB29A0EC0133DF7917B71B8EE4509264788356E967335942014213E4862AA8B7691AC207A996711AD1AAFC30BCBADC0A35514F3FFAB45E53197E89B918AC75B504647A3684E8A65EF0C7C7D7391DAB233EB277243732CAA45B53315B645FF9721D8AB0CFE54FF717157663B9098C2267633EFE3544A88014AD15C7B10A4551CB5F9BBA3D74946371B1AA54E6419CA7B4611149B5F02C73819A8C625AC52618F771202338AFF05969ED670BDD0B9DB562B8055884CBEA7A208A2DA850A05484C6B84109A5C2B498E8B8640ACC6F7AA6E1D7A95415469CC1C06D17176146CEFBA58E2B8929770851EBD6CA5DBA444548C622673DFBEBBC95767BEE2B86FF5BB37CF306B2945071EC1FA80C7540C56A36EB684D71C5E8B90AAA8C2421E21D64E0638D63C96E2B0BD9457BD5062199A01253D240C712315778AF487AAFBE28C650532A493C1B3E0251BC0841392839905AAD3D12289506742073862E8549E7E87EC28102DB7B89EBE91627CB95C0928C921978CB8C94875A94F1557498132200B4B76AA3C3AC9755C3B6BC5E5C59C9B3C6F7FB2CBB5AA457904FEFD2C370E29EEB2417BC45977BEA02A0DB9DE57937372298102755BA5B007EC88340B28AE7B819F9E07182F76070043CF3AA7E9256CF1CC3A6442B1726EB889CAB193222BCD3D8141843C1EF9921B8254712C04529D38846F595BC011B3288BCE0231ABC96985145043B579BB0864F40EBA6A66144E0972CDB10A71E44A088112B3C7907E5591D6EE85B34D4AF8DC58633081BA1A0A6EFE133B4C70ED215A22F451A7117B8C5F6A3D3FC4455214F5DCB8C31370546B4C4BA365A25017A9C2296AA641CBC4745BCAA72D17C9EAAB0155627BB45770D6D259BDF5B044053B4C7C8784FC433E89942B5D6C807A0707842CA4FBB98693303C118C9F4952123582FC4E22BB853944BFC1584810153F3AF5DBB74BB2928785C542AB647E9321D724AAC9EB9091707B5075C700A4817CAA2C355D4C99B8C5037B5288FF5279725BEBDAA5CE23609E5320981F11C8A116501D5ADD2D2B057C41E469257057B7A9C508017245C20C13A0C104FE1A517EE4621C367CE283183C07675BBE5895FBA4F30CC406772635982CEBC3153D046161C7B8BC4D87B648236263A44ED50B92DEBB624528C7A984C4C5047737A8021665279E9CF30069AADCC3F4A9245700436E646AF721A612828A07DC463D61B70223C7658F22190C83405999D92889CB0E5020052C31066665C4A021643C20764C370B9A5D1975D47646E1329072335432A19A03590B071482A3774BCA0601D8DBCC35A63742CD127F6384AFC6A971EE8CDD3E13687588D84C358A5537E753B2736840FD4E76A1CD0C68F9A990E5644404BBA84491E5F3B6F23EC45DF91538BD54070A702E69B66BF6C88CBDB8FDE693A2487681379A2AF94C592472FF167BD17966F9DF67E8FC51152AC613512930BA2BC2F453EEBCA91399B6D8F12AE891B3DEAECCFF120751866369BF8902D439D19F77B264002E5901B1C939FD86CA623277E6B09A72A93B52AB00754EAAA74833B8E366C8F0752639437F83CCC00F92EB7057C43AB94A75C31D5F854DCD3784920A36CA0C2DE244D1AE3A9E578B98E0634635549A8932A6BEC1F2EB321572A060EB110AF473F3E04323FD868A241891227222414C663285B05777BE82585DF3AB0ACFC121A642C541B3C3D7BB3157302EF62A1229156DB3609678B3B3E2576902145E5ECC78B65CF69BC8A7E6631494B804C4C89A9B595A8D95C039A9BA356670A536220C1CB54AC5BFCB7CE0125606A40C4EB4BAFC4C43BECFBAC84812F70C66796D6407F887CB0DB41F0FA7062E255896582B2B218FD96B6E5581A6FC26ED40272836950CB348AFE78CB135ABB6D015F299377632C72A7BBB2CDA7CBEC689E7551168483085B6B7426EB6967F729AD695D4E09C49B7A0010F80EAB54CBBAF4B641C956231663DB83512C97067CC7BFBEDCA93CC9A739A813B48C4793354C2DC642F869307AA191B77C2BC72BB048300B54906DFBD45255E92D81A98CD87149FEC3A428540D4E03C757260F3731CB7C4743A37194054AAE5FD6902D48A911F661EAD29321722E8243CE62E75ED82657423163A86362CAC2931954092909B0082BAD382A013A5044FAE9A12BF300670CA5771042933764E700B43259B130F033B023CBDA36815E2C6BC7C0601CEB7586A95DA4033E80E32123AB86C6135222EBAC0EDC17F5549D5B66760E07B2B16BA4FD8040E642990128A39A636B19FD3EDA4611BC1CDFD552AD1DB338FE3700F0920D56F3771F1733A4C185573FFD9BC77988A1458D28A64F15512217C7B95C24D7CF48904E638D8AC3662450E09D8500DED751060B7990D54F137508B9897277F65EA952 + +z: 7459AB99D24C1254EEECC035874BF19A64EFC8EDC9D369C11F5DF4DC83AB5FBC +d: 16858AA7C92EBD72FB8CCD0A99D0435EDB2A6EB1B936DBCB637CF43F25D221B1 +ek: 379C74CE8940E12A1790659FD6C2431D7C1043A8049A3B0AC1000273A0A68EC34AC6435018C19F3A5A18CD28AFF1254C27E92E25149E488A5CF5C724873A7CDEE0182CB874E1564F6036CCC6E5C02FD19937D459ACAA589BC3706BB60E82C93047030524A73C3831232659565FF49DBAB60BC8C18E203B68DE7784D96B4C1969AD8F164EFD531F8A297F46425CBBD0C4E3C858A01982DD4686860B0253D1067AC66353F7554DF00A2FFC46858C6693F04499054458864A4A7AA82230A4B04C1EFF8A2B9C5B1A43F0038A027CCDF73EDA1B16CE878D14B27DBC2AA0019BAED2C86F9741A9DFF624071545A4CABBC2895D9E9602C1027D05EB1C70DC2365423A65740F777565503C53B31C9D7DD06DF115BC2CC1BA80D992D185C485A78FB6A0B725E2A93897CF04F1B421093FA098BAF4B829FED6CC07073F0D13502E430F892A5E344B431DDA1EC9270A0DB64CBF40CFDC78293826BF4701181594B89F8CA52F3168DB931E7242121A71747564AF2DF0312BA4659A8BA2106983957877673269313B953534824E035AB75A5007B7BB5832B37936683B23B563FAB86EB749819616AC467B42D4B11922A9719067039480849B13E125353F54179B5524C7B5905A673E54EC888614AFA7781B918951C2C30E89043119351965256B26CC5B8E1973C1E838C6297D1305D02351A1C2E394DDA666D918545BB8CB69CB8141645AC7CB606A0500E0F94961CC8B33A5250E191169C3B4CBB927438764B356928431A7D5E73067346C9EA02D7F687A9DF1BE9018473CC7442F801B43F2307FD2380329C5D3DB8802823864A8895C0262A97547682A61A1652F4611717C09AC6DF8886D67B1213739DCE29271F65564CC642851005E224D634C996556AE35E3CCA9A6C746F7609CBB526C9B9CB144CEF1F39DBCD11207F43FB7296193B12F1E7B043DAC724FF9A32581192E13166FC91F10CC5330D6A7C4F04BD3248C61D227E70543E041354D55B1E52AC1BDA0657ED3C6F5F3444B3775DE1B0C337409C34B75A5B9A58DA8B7445C2E3A6BCCF1E02A0C1A20DC619893E6370D35BA4CB615D5B2BF12885749865675B9A925B21EE138830E20B2BAD258349A44747A08FC962476A0A7A1676415539086A543A087737DCC8E2565161F8697043819206202AB240C00C496D5254E8B0610D6C55CE52B20B0F63D65092F95879736D989728AA6EC91588F60682512CC50BCAA756A12F13C6C502BBB6CF210A7877DE46831A1E91D7549B50AC391A439BCDF2135FE81C81B25874189726D77AF828876A4F34E19E33009B8217E511DB2A7724B251109646E112823242C964B933F8B4625EDCB1471DC714684045AE79811A56B113803EB272AAB94709421239B009C3D4CC8463906DE646E7374C865103AACD4190206C43BD2334D496005427FDA19CF31872A941C75A6B1663F6C57754CA0D9D8A23A1B9592A1B3FF76A035F89B72B29E6207D05BAC0C349608E71B2E4A3CB3EA7651A26B374CE516C787976691BE124AB671049F3B573905D19906CA6E9C5912F6311410CA3A7B25973895C0E8733557A463E311BA20191EB77B3EDDDA437BC75D5F358AC883B2E8242449834AB6F5ACBF0422ECB438AA4009BB678E88D033C701322DC01D0F9B47EC135A25CB2B491B7F45B33686788F603B28E0A215AA1AA49BC2B2B10906F70004DAEB16F4E5805DB455BD794861BA1F8D55BA6CE29591728CBA492B89255762B25DDB71557E8366601535DD38609652CF47506379673B0124796C3CA7EB384EA0830DBB318E553525DEA69187A2151A227016DC53684C1922A25A90107C64E04CE1C7AF8481A437601D7C4AA014D18CB397B4079C660736453B35A5BAAB9371F0B5D4F867CE15AAA8739F6659B12FB93667DA30ABA01CE923853DD26187BB20A845691AB48785B22767ACC0D7389BA260BF115873CB784CB4C715E67776759511DEEC2B565361B84A8833C7A16C16AA3F29750397B0ABAA9B73A580527100511686A19A7AE757833EF826F4D21E4C020618809A48B67156711E70D5171BCCCF997CC048BBBB2AE064FFB9143F66A2E81A9341831999D822AD947CE88CB153BA595D5B0EF5D08EB856929412B9D2E551C959482AB545B1A0AD8583B7C0D42A95A3A080B772C77424A1AA1852DCA0662BCBA7B96CFAC5B1B689F01A5CEAEB2A0D52EB0FE9BF752B36B37830846812FFB88D +dk: 2ED75F448A5247A0BDE73C1A09DA83F27512A9E1998A48C80A0962ED307C0F8C4D221584D3A90D6C7B003EABBA2A2013F4D74CEF9A84AD123E430B316C08AFB04A64EFB31278F4CFAF1156285679203A275B267AAF7786346B40566B5BEC24B122C89108683431D0A8E8531EC70116F648004A9BA3DA807E54755BB10B9DDE973DD1E62C1A6C752D09B18DC00178C52A6F0504ABAA2B3E54B1D1A495A9A38BBF29812C472D28A8386F04BC41F555263A8DF34536E1925434407B3F885F7349A2C20BA5F275BBA62039F77A0BDD236EE4A7205B660AC04A48D6EC0927EC8986C73539754545E96B3F681F461A5424B954C5C69F1899BB8301B0138BBBD934A764168951B0BB42043FC6A441BC329574C726E9D31286063DA4556C02087FFC473C3B4307986A59AA595139A46351FBAAC3E1664B5A4A74D5916EB3BCB0F570B330ADF4574A92589C782A3CA520C43C4BC7987367BC64B9EC1629C41C80223154FFA3161A158647468B8DC670DA26496FB53F1BAB59261B8B9A3A725AC992567ABAECD027856650A9D78FA4656E3BA89BFEB80F7007562AC84EAB2917E18432CC5A4BCB969DEA5C73F1AC620612574F3106D1646FC266959723004C425BEA6B8B8E6326365C540C2844F666A482116D16C1272D90A439567706159C90623B1A79B62B14860926568C32360EDC9C868211E0036C9A3979B6F39126A150A9259CABC8631D9214CB43A8564A6DDBF785AFD44EDCCC7D2428A92766AEBA969D9E065D05E772C6DA572F9B0A7C5A7C0E54020B331CDF321CE7E48EAD96C4EE5062509113E274578F50A7AD131641BB3CEC76CA79B39529F92886B40F22086A6F527623E37797F1009E082277CA420C3310C0F35F2BD61776B8C5FCE14136DA388FE6CC37F3A7496C0062D0ADDC91B8ABA38817F45A7996AE0F7BA41D32C1FC255A43A6BBD9DC6A65A6BB72A306A3446418A77BC58C1D3B1B05437C6F85D01A300C9FADBA40F8F4B8DEA2CC358547165A467AD12BEC5C80C4F7AD6F308550B419BB06AE54CA29011A55502215CB0397C005544404B9A413CF74F5AFAA532C909A3D00FD37146721FB0B35363B9C52B71511D6C45B719E33CC43E016770936BDF6D2056AC21FF65CC813321144B98C965530A80654EFB350EF973AD505791766BDB4734C3E1A0394A89902416C3DE269B9A99E4B6CC39D64BCFAD64A552728905882278A238B214B94F62856C14C6294B8FFE80F3E62B3C91A687503094C2849BE8254314B56CDD35617D61F27C9960388811C830290808F9D0B2DA6AA4728606F55CABCB92AA9384CC3E03537BAA41BE636C7EFB036B5114019E40C74984884DBB512D61CC8A973D8E6C8EAD45E235C7E6235C181C062E82CBD26A2859BD9B510514D83114847ECA0DB8554663B1D74E5084460C396E43F3FF47D379A4574C77E8F1C11CDC5974471663244CE2EC399AAE83CF96889BE7628ED028E477C0658993941AB737861A9F8388AD1309BBBB23EE72181A1EC7BF445B1FCC5527E9C0F7D278362548131CB2132691E232515CB5C5CB6640E01F8B75D96A9E60ABB6929A7582219A8A8CCDAB2C4A03A035B8CB416114FF7604692427B35C135DB956F6BA796145CAFFB066663293FEEB462EF5C4D8C521B86436F011157245A891F233AA122C51AAA0CB0D5100B01575EB04B9A1B86D6A1808357265DA0570DDCCA2766C5802333C64B0D9E5A254A8645328C394F85B337A447F17753BB465F584462B40518705094D891C6143114522BA327547B61C928CF50758FA5C0C6FB2255A51E13E9AAC37000053C180EC7A6E597BF57DC656123793EC0CB24E9306FC0CA5CB723C8F46174179923E819A1DC760229018D7348AAD75263DA565129A39006299CD979BC73062003D0773611B07141FF2265F8E5583284201A4111F5719BD4397909D892AE8AA438121C5DCBABB9413194542E6D98AF6655871DF23C6A7A43B6B6C9D0790F53705F419B226497BBE92A3EC6315C6A443878B283A252423B13505DA298AE100A6E34BDEB734DAF0588BD54B2D5C1198C653B34A8C4D0447C5B6B137D203BB2612E46AC4B82BB97931550F3F835B57B8521828718498A3405C36A345A1323924221505906723847571C6985B0A59F1FE15C961B5F11630D04CA79FFE22F371A96379C74CE8940E12A1790659FD6C2431D7C1043A8049A3B0AC1000273A0A68EC34AC6435018C19F3A5A18CD28AFF1254C27E92E25149E488A5CF5C724873A7CDEE0182CB874E1564F6036CCC6E5C02FD19937D459ACAA589BC3706BB60E82C93047030524A73C3831232659565FF49DBAB60BC8C18E203B68DE7784D96B4C1969AD8F164EFD531F8A297F46425CBBD0C4E3C858A01982DD4686860B0253D1067AC66353F7554DF00A2FFC46858C6693F04499054458864A4A7AA82230A4B04C1EFF8A2B9C5B1A43F0038A027CCDF73EDA1B16CE878D14B27DBC2AA0019BAED2C86F9741A9DFF624071545A4CABBC2895D9E9602C1027D05EB1C70DC2365423A65740F777565503C53B31C9D7DD06DF115BC2CC1BA80D992D185C485A78FB6A0B725E2A93897CF04F1B421093FA098BAF4B829FED6CC07073F0D13502E430F892A5E344B431DDA1EC9270A0DB64CBF40CFDC78293826BF4701181594B89F8CA52F3168DB931E7242121A71747564AF2DF0312BA4659A8BA2106983957877673269313B953534824E035AB75A5007B7BB5832B37936683B23B563FAB86EB749819616AC467B42D4B11922A9719067039480849B13E125353F54179B5524C7B5905A673E54EC888614AFA7781B918951C2C30E89043119351965256B26CC5B8E1973C1E838C6297D1305D02351A1C2E394DDA666D918545BB8CB69CB8141645AC7CB606A0500E0F94961CC8B33A5250E191169C3B4CBB927438764B356928431A7D5E73067346C9EA02D7F687A9DF1BE9018473CC7442F801B43F2307FD2380329C5D3DB8802823864A8895C0262A97547682A61A1652F4611717C09AC6DF8886D67B1213739DCE29271F65564CC642851005E224D634C996556AE35E3CCA9A6C746F7609CBB526C9B9CB144CEF1F39DBCD11207F43FB7296193B12F1E7B043DAC724FF9A32581192E13166FC91F10CC5330D6A7C4F04BD3248C61D227E70543E041354D55B1E52AC1BDA0657ED3C6F5F3444B3775DE1B0C337409C34B75A5B9A58DA8B7445C2E3A6BCCF1E02A0C1A20DC619893E6370D35BA4CB615D5B2BF12885749865675B9A925B21EE138830E20B2BAD258349A44747A08FC962476A0A7A1676415539086A543A087737DCC8E2565161F8697043819206202AB240C00C496D5254E8B0610D6C55CE52B20B0F63D65092F95879736D989728AA6EC91588F60682512CC50BCAA756A12F13C6C502BBB6CF210A7877DE46831A1E91D7549B50AC391A439BCDF2135FE81C81B25874189726D77AF828876A4F34E19E33009B8217E511DB2A7724B251109646E112823242C964B933F8B4625EDCB1471DC714684045AE79811A56B113803EB272AAB94709421239B009C3D4CC8463906DE646E7374C865103AACD4190206C43BD2334D496005427FDA19CF31872A941C75A6B1663F6C57754CA0D9D8A23A1B9592A1B3FF76A035F89B72B29E6207D05BAC0C349608E71B2E4A3CB3EA7651A26B374CE516C787976691BE124AB671049F3B573905D19906CA6E9C5912F6311410CA3A7B25973895C0E8733557A463E311BA20191EB77B3EDDDA437BC75D5F358AC883B2E8242449834AB6F5ACBF0422ECB438AA4009BB678E88D033C701322DC01D0F9B47EC135A25CB2B491B7F45B33686788F603B28E0A215AA1AA49BC2B2B10906F70004DAEB16F4E5805DB455BD794861BA1F8D55BA6CE29591728CBA492B89255762B25DDB71557E8366601535DD38609652CF47506379673B0124796C3CA7EB384EA0830DBB318E553525DEA69187A2151A227016DC53684C1922A25A90107C64E04CE1C7AF8481A437601D7C4AA014D18CB397B4079C660736453B35A5BAAB9371F0B5D4F867CE15AAA8739F6659B12FB93667DA30ABA01CE923853DD26187BB20A845691AB48785B22767ACC0D7389BA260BF115873CB784CB4C715E67776759511DEEC2B565361B84A8833C7A16C16AA3F29750397B0ABAA9B73A580527100511686A19A7AE757833EF826F4D21E4C020618809A48B67156711E70D5171BCCCF997CC048BBBB2AE064FFB9143F66A2E81A9341831999D822AD947CE88CB153BA595D5B0EF5D08EB856929412B9D2E551C959482AB545B1A0AD8583B7C0D42A95A3A080B772C77424A1AA1852DCA0662BCBA7B96CFAC5B1B689F01A5CEAEB2A0D52EB0FE9BF752B36B37830846812FFB88DD27339E75E5E384EBA68A71FE2E52EC7AB0C15CFE33BBAFC892DB62D84ED070E7459AB99D24C1254EEECC035874BF19A64EFC8EDC9D369C11F5DF4DC83AB5FBC + +z: 4CC1CA6B662A4CE499EBE66D933CEAE58EE244CBDCAAE3C1F45A0D6947802B76 +d: F788F3E21D62E74090582F310BD4FDC8065E56E8D946142B9B9CF8F338F330E8 +ek: 26160EB381AE1A868F10FA05934958B39790C5858085A82036224D2455823F11A3A5C537DB483A3AA7725ACA567CAC610B4618E3CC0381701FB60917F5DA63CF712618535210D102238A5768F876A17C4437AB8789662F426C5CE69258C3462D70636CD556AD9EF0A2CD9C1DC3C546A0B396CBE2C94BB24C40756815F796AEE7045B6082DCC49EA56849C639419871C480185E51E4AECFA1945DA10B43C366916531ABA8A01502881B76C6E6984F7EA6058DE460C1E3511A06631670B35ED6A8D5D7BC6589A62DE377BAD1582C085A3DB3BC47F176A27604035B9ED13853758A77AA1391E881214894013F1BAB687A699DF18B373A64073BCCBEE469E1C867D221C4675791F40102E1E2B12593152C87A47A9367833854EF5427DE49043308586673274DEA8C2AC8AC5EF5886D06205284831170BC6B9C0844248DF1CB40C5B627A29421AE900EF5F5666720304520ABD826AEC0476E0D32213D550D55442E863B0FB8ECB85A1CBDA002792F6C199838613780BA4CB22605B30372304F88897EEDFA09B6B0C4B4892C0A05746DB80F602C016230129C2B0C83351413D4C2197B92E608485301BFA2EBA2BC5C2E1EFB42109B0119F079560A87F01BC6CFF916E81A1AA4F520C0687C41C91A3BB5C4C1D712449C6E927C0490B2AB4B9422BF5655E332C4A1D1626E587F085A631C250C122537F5B213A0C231DC48CA7B88A4C21706FE701645F43A8A00CFA0F0A13900B3FB5C1B886C66F22520FD685AD0CC396991B0ECE81635BC27AD2813FC377E7A542D9A9602E22775CA34CE85B834ED755048286B82692E3F9AA15E89A8D8568FA2AC47AA32C748582B7889B447C079F404329FE03066E8A46412820EDC8B8878840DE54C80CC2851E08374A89FE8F7417CF90638726ECA61072C893CAF8C501D04CFD2F3BFFC094503234693C530A732324C0516E412137E2B39AFF1292B925205C972F1B6805E67A292B069E8CA73FFFB1DD2B1A5FB2057ABB67ED396494D123D05A579C23263B47ACEAC5862982B20E6BC5E32E03BCA175CDD8996044AA9D90B3A0488500DB340C06CC9B84749B4497AB6A3CDF05B58FD5850CFD911B5C58819D2444CB9386B18784762B16DF6BFBCE86BEDC9CA6EDC191171C88C5060648B419109C5BDDA9A7E98C48B1649B342B7ECA411959A9D62E5C0BEFC5B62F4BB6EE608CA18B43AF78784B8C7384ABC77426B5CD28EE70B93F808317230A686900C83512E2A83CD10749C3E5B7EE6826C1E01CC5FB27FC47B52DA462AE5EB65390A1A33CC9749941D530210AD070AB71487C2176B17621ADB11CFA1F3AA9C379C9FB0CDF00186608246C56584DB61AAA8C157A28B6161F23EDEB7365928C1EA8C962785C338E66FF1897B56154475E17F81C9845C4607E5294E21EA23EE0CC47E4BB9D3539D46D410A3149E098B539B196A2C90C06D5C103AAB08E1110D3F565AA8CC7E4F2167E6969BEDD5C3CC8A6F68F53E18931F8EF0723FE33A2789661C248B15A35ABD5919343AADC93BC6777539E952A3F49A3E34F51291709F6DBCBDCB65B4760B8795B7985DF8249EEA132A473CAB736E72D45A2A100FB560B70E600EB24AA596879F1B1A9DB705AAA489791A503E9463C19EDAA4ADAAADB77A6FB0BABE16973E63333F03B444C85C980D55727532765397B84870BB759469CEA72E28A75BBA8A5098B6A95750ADAB54361C802ADEA678FB6733D3766F7C50BAFC081A384A768E60AA2E6648ED81612778033C6038E7863887F19C1509518E61ABCFF77F1ED9459D10C53C0CC6AD60C95704138B9C579317714F393AE8287909ABAB7FA167B8B237CA52056A199D7558AD5F16821DD364B11B9307421D362BA42AA3002AD2025E347BCD7223EE4BA62C354C1CE9822C8C4B3B70A1708462453292C73ABB177949EA3106FE3075CBA15E2E143DD13A6600E55D801A440004621F6ACDC3CB8D53236FCCDC15B9F9CD321398AA230DA6722DDACBB98106367B3723FEE198E1AA7161C004C9BA1840F19721AA7D99B99A7057B1B33A28F2033904750ED1899551C1C8A9132D86B3781264CAC231C3A21440580A92F4C683CA90BC1CA78CE41B332EEA7D2F461425C9B91FB6867B4270AB785329218D74356A3B8423A044C3C6653B09E60821A1CA6032A0BC526228F18B9E38B3A7B69EA6C1C5C0C39DE56DA9763517FA3F65CEBED43C7B61282772DBC9 +dk: A0CBC9A9EB303971AE19D11CB1023CAE83B0578A8BADF6BBCFB444000041941120984930702ABE4D0442E79921D92CCD08364112D41433013110D74ADF2B53A8164582F56E2DF03FC1D283424A16603CCA86C8BB3211030574553A221A4236817DAB9935899201465FCED39A2E0845DDF09F2B346FD3FBB2B6EB72C7C6CB8EA1784A010AC17A79041408A1B7853BDA03161A478D48AC4D19C32F728C36D2CAC5C4784449A0BB5C02C4E506EDF7A7A1A8548F931FF36014A8AA651527A4AFF04AB5E52A29058DA78388192BA72D17A9F3428E784999C9F59ADC561CA971021C7C9DB552926D572F44F9B2B014ACA32A267EFBCB62D1962F48B6D867C12FA25723736088E80CD3024A2610C727CA96AA8C495A8688DD4C5F804C308D4A1693E6B2C676B3B44C127A4911F8522308E20EB5E816A8949D93303BBBA150744511A9C23259F663AB3444AE787FF766A3D76859637588C21634F7338FE98596911A92E1692E75D66CF37AAD1C02720DD47315B1AD9DA95AEDF383D6863D7F06214E626B3299A5EEA648CAC40067C5C271A81A8328C7612858BE4C736ABC35E3F982CD84C596685A3F974D61F450D130C1159993BADC5AEF7B71F9E1503BF2525FD2B191E95E35A852D65082928C47DD989646FC5FA9E92292EBB03FA4B52473B57FF59E52ACC2311844C59104F51147CB600D0DFB42205A225DB32CE6843557F61E3199BE1E8A237AEB1240B51113233C92E453FED3138501327948A68373457AD6271ABBB6CCF860DA15241F89C27D5074B6A7170407B3024708FB3689318AC024E0CCA2836D3D786737D298CA7559FDA75F38CC8CD3D4845A165E18EAA56547928B0875AF564F763C365839879AEB3962F520D37755A17983826843E55567CF2B45F2B59D716666528256651694FD4B5913D90A25637369779991E9246E6A59EE1437D7DBB62466A759301CD0F4CC551161C2662E0D0992DDF07CB4BC61EFAB0D4F81700C0694F971AF7CB0974367AA53A8A914770D03892B639746AF79179AB8405C08A5DF9525E5958D26C4543A82349A192A86D3529F660BFC49490B2147D9170FB5CB78FCB40863550E9AC42DD3215A2D86B3F3A4B0188A9F7F02949CA48A63DBA56224B436B2C22C085EF826AB521B0DBAA4A7ADE8355FA3C4BD708EA1AB68B1FA714D5841208BA9CF3611A9854F69A21E1B67C84903CC382B3663ECC2AA4B069A8639618536FB6B562CCA390C103645D9A06481666E92C1FDE91AD8291596286501B154C8E3AA6E0608E4CA6FB1512EBD25C9EB789E7765B342AABAC415B7B1E65FD38ACC880C61E1C01E96BB8FAC50972D536D49A20B46BAA303DAA481A39D68C71286495F248045B1B82020544B864C3E1951812D01169B4AB79510A284F058CFBC963431BA0FB7209BE995672A264DA3A6EF592EB121093D9B09F35A94BAF125C4F61508B1C339C6B58C5BA65A207571191253C3512503C400C70BEDD9859E363A7A1193CBB2C222782B77B62CDDD09F67BA9F4D632930E73E08F37F24279965C74BB402439E0A8289A43630983BAC924D0261BA07335B3F734428F538B2803DD47B26B2D5183533807CC43B67E79680E6C5E60709406B04548781CF497E8B890423F42186292FB8C988639C2F6DACC513014B91EA2D54393CFF768ACC42504DA84F21A21D372A2C7935334654856BD66C77423F10501CBCD39907EB7478FC0D7D0439C9739B43A363E324B319B219BD25BC1153AABA81B0F6A84B1D5A8C92885EBAC488099BCF47E91C8E4AA8EFACC0748B25B2969EDE004B4BDC3278B139C2445CDCA181FF8A3FD20777DA97CA9D182AC494336D424D87B53402596A0BA339611B5EF459B87C0163744007B008467387B44A680F3D916C8AD9352D7B6643509225874A05E03D2B0297739592AAA37772472162393CE7238482B51E8B6297E665CD9FEAC4B8664BA62CAB68FA25DA4459816922AD50AD06A347E40C4E5E55CF9A5CB738343DFE222FE46349E68A6526B1B1AA8CB5549BAEE622C2DB3C8806AB22F3C92449A67D3C7C5AF7A9C970839AA386A6D5518E00D8B11F42002F52C873DB6A4DB50047F815EE15C3D017676857023C57A017E431CE8555CEBA2BF48950F89095C2D278A1330D9F9416BE6442EC49A21C79BCFCF832677A4CEC8ACE26160EB381AE1A868F10FA05934958B39790C5858085A82036224D2455823F11A3A5C537DB483A3AA7725ACA567CAC610B4618E3CC0381701FB60917F5DA63CF712618535210D102238A5768F876A17C4437AB8789662F426C5CE69258C3462D70636CD556AD9EF0A2CD9C1DC3C546A0B396CBE2C94BB24C40756815F796AEE7045B6082DCC49EA56849C639419871C480185E51E4AECFA1945DA10B43C366916531ABA8A01502881B76C6E6984F7EA6058DE460C1E3511A06631670B35ED6A8D5D7BC6589A62DE377BAD1582C085A3DB3BC47F176A27604035B9ED13853758A77AA1391E881214894013F1BAB687A699DF18B373A64073BCCBEE469E1C867D221C4675791F40102E1E2B12593152C87A47A9367833854EF5427DE49043308586673274DEA8C2AC8AC5EF5886D06205284831170BC6B9C0844248DF1CB40C5B627A29421AE900EF5F5666720304520ABD826AEC0476E0D32213D550D55442E863B0FB8ECB85A1CBDA002792F6C199838613780BA4CB22605B30372304F88897EEDFA09B6B0C4B4892C0A05746DB80F602C016230129C2B0C83351413D4C2197B92E608485301BFA2EBA2BC5C2E1EFB42109B0119F079560A87F01BC6CFF916E81A1AA4F520C0687C41C91A3BB5C4C1D712449C6E927C0490B2AB4B9422BF5655E332C4A1D1626E587F085A631C250C122537F5B213A0C231DC48CA7B88A4C21706FE701645F43A8A00CFA0F0A13900B3FB5C1B886C66F22520FD685AD0CC396991B0ECE81635BC27AD2813FC377E7A542D9A9602E22775CA34CE85B834ED755048286B82692E3F9AA15E89A8D8568FA2AC47AA32C748582B7889B447C079F404329FE03066E8A46412820EDC8B8878840DE54C80CC2851E08374A89FE8F7417CF90638726ECA61072C893CAF8C501D04CFD2F3BFFC094503234693C530A732324C0516E412137E2B39AFF1292B925205C972F1B6805E67A292B069E8CA73FFFB1DD2B1A5FB2057ABB67ED396494D123D05A579C23263B47ACEAC5862982B20E6BC5E32E03BCA175CDD8996044AA9D90B3A0488500DB340C06CC9B84749B4497AB6A3CDF05B58FD5850CFD911B5C58819D2444CB9386B18784762B16DF6BFBCE86BEDC9CA6EDC191171C88C5060648B419109C5BDDA9A7E98C48B1649B342B7ECA411959A9D62E5C0BEFC5B62F4BB6EE608CA18B43AF78784B8C7384ABC77426B5CD28EE70B93F808317230A686900C83512E2A83CD10749C3E5B7EE6826C1E01CC5FB27FC47B52DA462AE5EB65390A1A33CC9749941D530210AD070AB71487C2176B17621ADB11CFA1F3AA9C379C9FB0CDF00186608246C56584DB61AAA8C157A28B6161F23EDEB7365928C1EA8C962785C338E66FF1897B56154475E17F81C9845C4607E5294E21EA23EE0CC47E4BB9D3539D46D410A3149E098B539B196A2C90C06D5C103AAB08E1110D3F565AA8CC7E4F2167E6969BEDD5C3CC8A6F68F53E18931F8EF0723FE33A2789661C248B15A35ABD5919343AADC93BC6777539E952A3F49A3E34F51291709F6DBCBDCB65B4760B8795B7985DF8249EEA132A473CAB736E72D45A2A100FB560B70E600EB24AA596879F1B1A9DB705AAA489791A503E9463C19EDAA4ADAAADB77A6FB0BABE16973E63333F03B444C85C980D55727532765397B84870BB759469CEA72E28A75BBA8A5098B6A95750ADAB54361C802ADEA678FB6733D3766F7C50BAFC081A384A768E60AA2E6648ED81612778033C6038E7863887F19C1509518E61ABCFF77F1ED9459D10C53C0CC6AD60C95704138B9C579317714F393AE8287909ABAB7FA167B8B237CA52056A199D7558AD5F16821DD364B11B9307421D362BA42AA3002AD2025E347BCD7223EE4BA62C354C1CE9822C8C4B3B70A1708462453292C73ABB177949EA3106FE3075CBA15E2E143DD13A6600E55D801A440004621F6ACDC3CB8D53236FCCDC15B9F9CD321398AA230DA6722DDACBB98106367B3723FEE198E1AA7161C004C9BA1840F19721AA7D99B99A7057B1B33A28F2033904750ED1899551C1C8A9132D86B3781264CAC231C3A21440580A92F4C683CA90BC1CA78CE41B332EEA7D2F461425C9B91FB6867B4270AB785329218D74356A3B8423A044C3C6653B09E60821A1CA6032A0BC526228F18B9E38B3A7B69EA6C1C5C0C39DE56DA9763517FA3F65CEBED43C7B61282772DBC9C49E09D937D24CFD29FF7B285F7B478AE4E219BBBD89A54C8B127CB0C65803144CC1CA6B662A4CE499EBE66D933CEAE58EE244CBDCAAE3C1F45A0D6947802B76 + +z: D16CC70224474A4D71E1F950C2D5CA72D8F08AF80E0C7F6E292C265A50CC30E8 +d: A72608DF0F025B4FEE7D94BAE77BE94CB974F20DD55006A70FD39F3397A8EF90 +ek: 44AC5FB94668AD165BC9B4B09C50148831B0BFC0563D97B66913AB32846C9206BD2BEA024FB44B6DF239A8A82AD42C5BB69A77A3195AB8A7BD5C3131C9079D05E248D84167B6F569C812CDB1212F0584AEF9C0251FFA0E23A407BD592C7829C5D2A673DF01696AF02DD2A07A9342157EE608A2A91241DBB3F8725CD5D8BDA020C9107747F82A0FC7A97AC30272B694257B135095B27481CC769BB0834586CF70CAA72C2696B105A4B6440FB4D045B61A3D0BDA48490B22CE215C985B313F7C74155015A7D079DE9A2EF4DAB3ADD1A1CB684CA377B428B90D2BBB0980249586056434E2088EE250D065951EF228362B1D8028BC793CC8DCB8805D86C5DA71B4C1396158C79711DCC2F56359D197ABDB890387FA795ED9288FD08851CC620D0357A3450B4C50CF61EABA54A44FD61203F557946027B36224148EB4AEEE709401296BE0B617604B6A48244938279D66CAC75F03809ED49421F518A3270F42273E37793D6162B626771D69C8A27AF27AD0A3B89B6C756068565FB65D245A88D180741A1AA507E116DC504C11358C7EB444180792D210438F96CCB3DC17D8E8B8E79918A106787509B8B570B093C325B8CB81A12A686CACADA32389B8207108E7AEF5447217843932559F1893B250DB8060D068D6D2B06999C36F412D47519C795A7284E3CDD42CA6304C348AAA96E72B8C64C37C92C34F78C56A58B32630812A95F53FFE4B3987B5146E0321AC254573933D03E7356628727F448CF3D9A328C1CA72B59B73AC3F0A3671FF58A604AA5FA7F63ED7C72965A833B5916266796757186784882CE8670CE4F717F057A1C08563B9832B89A759F2380C74821379B343E7E28BEAE6334CDB896587C2585508A78947A54B08055C3C6CAC9357102CDAE58748A337D511BD0BE93C88964720C3AB5367478A4BB82FC148539C1D54F54CD7B1605C113D4E526BEDC4CD8526892198336F344B1A59A83F3ABC890C9AC386954A6B521FC76FFC03B614C32E7F68868400142BD041347614A80A7A59F2511A28B1E6F74053842C8F0A49FA17C378FC0992E14282E394034081AA4164C2E9934E5C8246E334AC606B9BA723237144AB2AAA8E86B2ED33B6750CA239F82C9105CEC46888BD59B2AE6331F47501C01805BF867A63F1B211306009C7B60FE4AB7EC5982B1955059A5D69BB728FAB31681CB0418C033B676158501FD3011A3B6B44503378C2FA1C6EC254861532DCC16F78D743DD065C8F8781F798633B0CAE5172173AE78A02DA472C0BB4DDCB2EC88B70E69C24FF277837646802774C98D87ED20382E4A82C0EB905CCAAA977295AA085A26717578E04B27139B98D260155C0B6189A3A6AA77D0CA76B6409032D3868967C1A5B5AB747B2B1660715F15161E00C383B957062509C495C5B25C26B2EA26B3A74597B913D295728B33A9EC914A2E646ADF0968E07592E48BA1BF0817995B321F05A7DD8FA892A385ED4C052B0CAB7C84945FABA63F2099BBD960843F4ADB512A48991A38439B71D291512333483E8A511FB925A7A770E033EFE6A933F105DF2B5555BE5179F3B8DD8F216B0EC87AD297B5AE941BBD80BFB0A417824A420489CC9281DD1D545BF15C8459627C4E8684D018473EACB1C49C27564614417A9EF6984D708B1FDC03F08453A769C470156884DCC30C18A1970022B01CA2DD0928F50404A9B19CA41FC8C325323EAE97C484015289A5383B5A46DA19641A99DB8763B8E716DF656204616B07BA5C06EF11ABD428D9EC989D848A8CAF65B4CAA41A4F741A497A08EBC2FF8525149FB029FE867939255AB836DB23C87BE120559A99B64F4BE533C6F914149C45A221BE8A3F9C724FC9BB5782C9489346ACCF5CC69A94734C2AB332A272BF135E507163BB3019D9544151A56C1892706F86D40439BF311AC4A477BE17287F829015CCA7A2F416AA178493E9CC86E607C2266924256377E3171B1610F6CBC4654DB870E2A1A2F11774F6147810A44523036EEC6211410091AF54EC71ACC0212BB96CB3CADE37C55A67A3DDBB12FCB6E6DC758EB8B807F75CFB4E4AED460A67C9546C9D668E8F1A560A80D20707AA6A0CE9433BD8D283BCC743FCC9C9D23719C1A05A874339C80F079A5364842AC0F21F804B9BB5D6FF4387D19442C4BAD15A31FB9F5C9A5A0CF4C59A16FA309A69AAAC01C9F1F8817AC8B7DC0153478452C0A379D65A78BB3307E3CA4 +dk: 275C73EE58A9FFD22DD3EB2B1590CD79407D35E950370892C6B2AAB97392D8200DA10AB7188B9909B191D32073926860F5F5A4D2C21C52F4AF2EF5066BF182A7156D0400319CB462CEA5A2C65126943158823B085B6118449401D5C17A67D9A0CE2C5FEEF515787A423C7446EE795C14B61D33AC8BD06A3D8CA5A78AE5A4BCAB1E5BAA336A4B8DF423A9072A511A98993DF205971C70D84CADF5ABAF5917741B34AE09D280375819059618D748AC48CB425EC54F7A7435C40442FD594EB1C081AE4A80F9D023FDC968968A482BE95A9CD03041CB8B8F3918A5B7957E5CA6C95053A55CB7DA014B15425C6637000C131A664318834C09DE92BC04172209D945C97AAB3240A93559569D03793560AD9C552FBC467516556E4A07A1DCF2A2D2C5332E5074128207E4E4491A8866D760791A18CBC7939835F02DDEC71964428D80AC730FCBB0F0C206434746F75C2A4D95CFD4C398507729845C257D17549AA2983290558453445C3CA35B6BB139B007B003A890996ABF463D5E12CF3DF0728B8259A7854F6A06999C92868AC16C9BB78F571972AA122975C25A68C31B73710DD2EC07C2103BDBFC1A67E7370444CD2394913218816AEA4E1043BF53B83377D4775BAC602871C79A28AD930316FA091E5678582A552B6A5CBEBE25CB6F9C9002469E29F1833FB049D2CA7040499170F4B6BE2915E7C10081DB012DC8B9A8AA2F1FA6A6D3FABFD49B7873C234A21B0C9B572401F80908D7370C4A5BB1D04CF9218CCC5C8BEE0660CB2ABC39501E3F2AA441168B6BC9435A9599EC571D39A35B49FBA16DDC4A3C88828D4B89390B77006026E85A46335354B2B422DE7AAEF60087E2F975A7453FDD6C56B75181F317969F95B7A024A1AE12B66FDBBF27186BB0C0896DE69C5DA5AE4CB638E43A8FA8C283B92687DA372AEF4569826803613824A5DC288E94345209A4D2B42DCF2A251917735636669C3AC06E72A835042504CB6A83026CA4B1A10DB29F9C229575599295881A7358C5949469ACC8B43AC80B4D0CAAB50846CC999B42E0299159049DD370A9B52878AC4B64547E3EC070B4D370B19924D90C6EF153232CF12E64D0BD04E124C55CB2B8D1376A46CE2B91A225985F7BD72D3B316767B3BD3206C5C8B311122300225A02F0E53664CB02B1350859D579A09710EAB927C5207256AC1128C6B0E09C7BBA408A2DC34C1160A8B13766BAC2A747A6BF20B1A6A22992451BA49CB5B97F7597F98B95E44B9B598AA993073ADBD6A9B5C81E10E21AAEA573A95A6716A3298412BE1D661746BB81C2F17744D587E3522143091FA215AC2D9B7C3C00397A1C3807F24AB4E968B0EA1A0E5A6601B7274469CD1A52AE5FAB7BAAB3C4A6D1A5D27A873E21A14DF52AE2C344BFE21B0F8A71A0511828E86F1FB08141C30C842538C61C7ADEB9251E33C73CEA9E7C02CF46E3C3E548355643000D3B715F339DE10745141B8D2A201A4D8C514185A6DC06375E35750E246D4CF1C8937955631CC7350CBC4C34C22B35C4336B95A12478419B8309E0137317B6CCDBAF70630BFD711783087967A93E1F95321EC319CA31004CF677D44359465564A889193FE04A7F8944EF30B5C0B43903279F07E2C04D116BE8322E9FAA4FA2562025910A264A814EA488D72CC03EB5853B40A406E1A7631933EC725D4E71516C751C3C0A3560BC0AD97078ACE63E9FC41A0F2B92B6E46A0836A39AE9B67C6B6F23A2A098987F3B6500ED179C6F14A0E0564166C5CF5C322A1E5654F8E083CD5B13ECD761B727020CDB5EAC5B9DF509AC0D9BCFD2A2976E586F90FC3949AAC845440FB929B9D5743723926FB2E6290EF3ABE663565AF1CC74587CDCB3034F7692D9488142231BE8651C5280A52EF048FD4C1C776210A39463CA0127A2F9065D6AB320E253A1A0C596E8797887844D8471A32795E6DA8D5774648AF25194C3AC8447C534B61C77F364D3136FB358861B05465AB09077912F536500F35002DF56015441A341E30D6458289F47B578B1BFE4C574228B0D16890108BA7D4DBC7EA8C9A5118AA6F6E48ED8E19B19F6629114551442CAB1E88541F09E85B79E123C912C967CBD4C273C47485EF552ACF2744AF83D72007137342D33A00F41EC9E0FE8AF0B641AC0F3BE42984D4D9C2E4D9393AB9992E78913A7DC3444AC5FB94668AD165BC9B4B09C50148831B0BFC0563D97B66913AB32846C9206BD2BEA024FB44B6DF239A8A82AD42C5BB69A77A3195AB8A7BD5C3131C9079D05E248D84167B6F569C812CDB1212F0584AEF9C0251FFA0E23A407BD592C7829C5D2A673DF01696AF02DD2A07A9342157EE608A2A91241DBB3F8725CD5D8BDA020C9107747F82A0FC7A97AC30272B694257B135095B27481CC769BB0834586CF70CAA72C2696B105A4B6440FB4D045B61A3D0BDA48490B22CE215C985B313F7C74155015A7D079DE9A2EF4DAB3ADD1A1CB684CA377B428B90D2BBB0980249586056434E2088EE250D065951EF228362B1D8028BC793CC8DCB8805D86C5DA71B4C1396158C79711DCC2F56359D197ABDB890387FA795ED9288FD08851CC620D0357A3450B4C50CF61EABA54A44FD61203F557946027B36224148EB4AEEE709401296BE0B617604B6A48244938279D66CAC75F03809ED49421F518A3270F42273E37793D6162B626771D69C8A27AF27AD0A3B89B6C756068565FB65D245A88D180741A1AA507E116DC504C11358C7EB444180792D210438F96CCB3DC17D8E8B8E79918A106787509B8B570B093C325B8CB81A12A686CACADA32389B8207108E7AEF5447217843932559F1893B250DB8060D068D6D2B06999C36F412D47519C795A7284E3CDD42CA6304C348AAA96E72B8C64C37C92C34F78C56A58B32630812A95F53FFE4B3987B5146E0321AC254573933D03E7356628727F448CF3D9A328C1CA72B59B73AC3F0A3671FF58A604AA5FA7F63ED7C72965A833B5916266796757186784882CE8670CE4F717F057A1C08563B9832B89A759F2380C74821379B343E7E28BEAE6334CDB896587C2585508A78947A54B08055C3C6CAC9357102CDAE58748A337D511BD0BE93C88964720C3AB5367478A4BB82FC148539C1D54F54CD7B1605C113D4E526BEDC4CD8526892198336F344B1A59A83F3ABC890C9AC386954A6B521FC76FFC03B614C32E7F68868400142BD041347614A80A7A59F2511A28B1E6F74053842C8F0A49FA17C378FC0992E14282E394034081AA4164C2E9934E5C8246E334AC606B9BA723237144AB2AAA8E86B2ED33B6750CA239F82C9105CEC46888BD59B2AE6331F47501C01805BF867A63F1B211306009C7B60FE4AB7EC5982B1955059A5D69BB728FAB31681CB0418C033B676158501FD3011A3B6B44503378C2FA1C6EC254861532DCC16F78D743DD065C8F8781F798633B0CAE5172173AE78A02DA472C0BB4DDCB2EC88B70E69C24FF277837646802774C98D87ED20382E4A82C0EB905CCAAA977295AA085A26717578E04B27139B98D260155C0B6189A3A6AA77D0CA76B6409032D3868967C1A5B5AB747B2B1660715F15161E00C383B957062509C495C5B25C26B2EA26B3A74597B913D295728B33A9EC914A2E646ADF0968E07592E48BA1BF0817995B321F05A7DD8FA892A385ED4C052B0CAB7C84945FABA63F2099BBD960843F4ADB512A48991A38439B71D291512333483E8A511FB925A7A770E033EFE6A933F105DF2B5555BE5179F3B8DD8F216B0EC87AD297B5AE941BBD80BFB0A417824A420489CC9281DD1D545BF15C8459627C4E8684D018473EACB1C49C27564614417A9EF6984D708B1FDC03F08453A769C470156884DCC30C18A1970022B01CA2DD0928F50404A9B19CA41FC8C325323EAE97C484015289A5383B5A46DA19641A99DB8763B8E716DF656204616B07BA5C06EF11ABD428D9EC989D848A8CAF65B4CAA41A4F741A497A08EBC2FF8525149FB029FE867939255AB836DB23C87BE120559A99B64F4BE533C6F914149C45A221BE8A3F9C724FC9BB5782C9489346ACCF5CC69A94734C2AB332A272BF135E507163BB3019D9544151A56C1892706F86D40439BF311AC4A477BE17287F829015CCA7A2F416AA178493E9CC86E607C2266924256377E3171B1610F6CBC4654DB870E2A1A2F11774F6147810A44523036EEC6211410091AF54EC71ACC0212BB96CB3CADE37C55A67A3DDBB12FCB6E6DC758EB8B807F75CFB4E4AED460A67C9546C9D668E8F1A560A80D20707AA6A0CE9433BD8D283BCC743FCC9C9D23719C1A05A874339C80F079A5364842AC0F21F804B9BB5D6FF4387D19442C4BAD15A31FB9F5C9A5A0CF4C59A16FA309A69AAAC01C9F1F8817AC8B7DC0153478452C0A379D65A78BB3307E3CA4D4F2CEEBE65173867CDDEC350D15A72CF1FEE868A9B819DD1DEB4E7478C00DECD16CC70224474A4D71E1F950C2D5CA72D8F08AF80E0C7F6E292C265A50CC30E8 + diff --git a/crypto/mlkem/mlkem768_decap_tests.txt b/crypto/mlkem/mlkem768_decap_tests.txt new file mode 100644 index 0000000000..fd46649bbe --- /dev/null +++ b/crypto/mlkem/mlkem768_decap_tests.txt @@ -0,0 +1,1829 @@ +# Official test vector 0, seed: "061550234d158c5ec95595fe04ef7a25767f2e24cc2bc479d09d86dc9abcfde7056a8c266f9ef97ed08541dbd2e1ffa1" +private_key: da0ac7b660404e613aa1f980380cb36dba18d23256c7267a00a67ba6c2a2b14c414239662f68bd446c8efdf36656a0891a3cc623fc68b6572f7b29a6de128014411ee41906d08071f94856e36a832b40338d743516659bd25879c007a52bc9586f79876afac6c9a30d8fac243bd22425d6adce42ab7ed39014757a958bc8a74565f019234ff04b34893ed6d05501c37255239aae2ac19f8c75ac5900dae8300dbba710dc2caae1bca3a38c58342b286b8518f136ad15b9f7bcbb06a5607db375dbe976457c26c6598257531b2cfb6ee7f51591840804c38388376c27148413da9e92920bfd9a069e018bd272053da8775c0b739f761db2107cf35a434d69b07e5bcdb87434138b0cb556761ba522a5747b28747d80eb9d6cc673bee5769377b996d36ceb0c0c7ed9a658533324869c18a1a36f31470f14c5ae49ab070507f8249ce404b49c0a8c3ee42fea9631fa1a0d10d86b93f986e0e3a82e703b74e5ae6101242421a89aa07fe68588460baa368786486a72e4f24d2dd76cfc03b694a5ba91a755a0b98f3bf93307c0ab64639aea7a6498a3c3ddc571141abca4678cd2e2b857fb88f600caa596b44bc422250b2819e0515f0472391853700b01eff9453fd11876b7c759a07dd845caba4555264a82765193fdf81b620a1e1f923fb24442cd1cbe94175003ec06ce77a3c64493c199987a300c95c53c0089b5d65c92ea971b2ffa93b52a461ea2ac8c199c2f4c2b704297ce3c3949e0735ea8a14aa59e8dec0c878399ff70747ab244ce46b5f2230473323d25c66fe6b419b1f4a112e5214035256bc43ffd2b6b7b378769a6b47000bfb6357d45814baef3857d379e2fb8b5e5201ab26274bb1b70ad322cd0439b2db109cff0a2f8e600995571ffc38c590bc4c7615c69d0c98ef430f30861a77238ffc07061e475d6a30ad1b47fd039c3a447762db2211dc31d0acacfd55890a5824798f9aead7413dfe028b1012be8b6ca1026666ac6bc9440a449b51ad8bba7b0921dd4d8b4a578136d1a05db38cc858437b25161d1c3c28ee07bbcf2b249110d22781dc3050d8cc0090096b38a850696f86e9e6bab325271b2248675011968502881090497fac0af843c1aea76dd81cf29c012c66227b7f06d9961309b0262f732c9a4d0bbd06727abb8371ff2c11899a098375c460516b2cc88bcf628ede37d8f3b3342e4490a85606ec03da29b0256275382a3313dc041114801032c519f350c3e6abac3e33b93b4a19f7c5466e58cb1dc14b4a96c475729f971bdf173cdf354824d019427f95b3b4a4a4a958e476a6e6991ce6f06cb5dfca7d4380c3d920b5711ac1fcbaf4b9ac800b976d1ec766a626cc1900b66b3a9dc62c5c144527a296baf70433bf657c0437f87597bd7c8bbbe9abc37050931a4a86982a2028a74454c9b810c88d1701c8cc98a1d4ca107a6b25e962fe4b6b03c95453260b807228637cc9eb12acc0954959a52ae54d1977300aba0ba2c14609bb28c11d5fac5cac88297603283e867a3648366c724d9354cd7a196dbd9802f7b88d3fa001f9c9773225462235e91352a20791fd8b87fe3377ec6a3940b1130a0bb04e7410a34e2580d071d6c56202086787a6590f84393a8e651a1e685f22478a8954f007bc7711b930772c78f092e82878e3e937f367967532913a8d53dfdf4bfb1f8846746596705cf345142b972a3f16325c40c2952a37b25897e5ef35fbaeb73a4acbeb6a0b89942ceb195531cfc0a07993954483e6cbc87c06aa74ff0cac5207e535b260aa98d1198c07da605c4d11020f6c9f7bb68bb3456c73a01b710bc99d17739a51716aa01660c8b628b2f5602ba65f07ea993336e896e83f2c5731bbf03460c5b6c8afecb748ee391e98934a2c57d4d069f50d88b30d6966f38c37bc649b82634ce7722645ccd625063364646d6d699db57b45eb67465e16de4d406a818b9eae1ca916a2594489708a43cea88b02a4c03d09b44815c97101caf5048bbcb247ae2366cdc254ba22129f45b3b0eb399ca91a303402830ec01db7b2ca480cf350409b216094b7b0c3ae33ce10a9124e89651ab901ea253c8415bd7825f02bb229369af972028f22875ea55af16d3bc69f70c2ee8b75f28b47dd391f989ade314729c331fa04c1917b278c3eb602868512821adc825c64577ce1e63b1d9644a612948a3483c7f1b9a258000e30196944a403627609c76c7ea6b5de01764d24379117b9ea29848dc555c454bceae1ba5cc72c74ab96b9c91b910d26b88b25639d4778ae26c7c6151a19c6cd7938454372465e4c5ec29245acb3db5379de3dabfa629a7c04a8353a8530c95acb732bb4bb81932bb2ca7a848cd366801444abe23c83b366a87d6a3cf360924c002bae90af65c48060b3752f2badf1ab2722072554a5059753594e6a702761fc97684c8c4a7540a6b07fbc9de87c974aa8809d928c7f4cbbf8045aea5bc667825fd05a521f1a4bf539210c7113bc37b3e58b0cbfc53c841cbb0371de2e511b989cb7c70c023366d78f9c37ef047f8720be1c759a8d96b93f65a94114ffaf60d9a81795e995c71152a4691a5a602a9e1f3599e37c768c7bc108994c0669f3adc957d46b4b6256968e290d7892ea85464ee7a750f39c5e3152c2dfc56d8b0c924ba8a959a68096547f66423c838982a5794b9e1533771331a9a656c28828beb9126a60e95e8c5d906832c7710705576b1fb9507269ddaf8c95ce9719b2ca8dd112be10bcc9f4a37bd1b1eeeb33ecda76ae9f69a5d4b2923a86957671d619335be1c4c2c77ce87c41f98a8cc466460fa300aaf5b301f0a1d09c88e65da4d8ee64f68c02189bbb3584baff716c85db654048a004333489393a07427cd3e217e6a345f6c2c2b13c27b337271c0b27b2dbaa00d237600b5b594e8cf2dd625ea76cf0ed899122c9796b4b0187004258049a477cd11d68c49b9a0e7b00bce8cac7864cbb375140084744c93062694ca795c4f40e7acc9c5a1884072d8c38dafb501ee4184dd5a819ec24ec1651261f962b17a7215aa4a748c15836c389137678204838d7195a85b4f98a1b574c4cd7909cd1f833effd1485543229d3748d9b5cd6c17b9b3b84aef8bce13e683733659c79542d615782a71cdeee792bab51bdc4bbfe8308e663144ede8491830ad98b4634f64aba8b9c042272653920f380c1a17ca87ced7aac41c82888793181a6f76e197b7b90ef90943bb3844912911d8551e5466c5767ab0bc61a1a3f736162ec098a900b12dd8fabbfb3fe8cb1dc4e8315f2af0d32f0017ae136e19f028f57262661358cde8d3ebf990e5fd1d5b896c992ccfaadb5256b68bbf5943b1328626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f +ciphertext: c8391085b8d3ea9794212541b2914f08964d33521d3f67ad66096ebfb1f706424b49558f755b5625bae236f2e0079601c766f7d960808f7e2bb0c7a5e066ed346de628f8c57eebabbb0c22d911548463693ef3ce52a53f7ff415f00e657ae1c5a48fa5ec6e4be5cf462daffc84d2f6d5ff55dc9bbe8bb0d725ec64fd4cd4bd8dba0a844e8b5ce4b6a28934d7f7a050991fe185b506b451dabfad52d52cb2114ca7d9a5cf986c8fdc1bc10ec0c1869e50c03c55a76192a1049aca636ba9020bdaa8d0f58c763b0b89845ca06d4c4ddc21433e16b9c62e44871fdbc05ba218af871fdd7dcfa464e60faa5265264ce1391bd9a8c5faa7626d5f159b9805b975710a3503a0b858a11c6a647cc0e19ac88b1be9056c95b4d2087d0951d1d2f4992491117e6347794ba54571ec49bba71af3413d38a30bf5872248d1f6d07c86baf782e73d2637f043d341a00921857d8b21ddf3e1d6310036ed27af49e5de1b900fe4de79808ff29f9570859612b15adc01fbb265b305b1e3a12ae419da5b74261fa284c101da3d8dca8b2e4521aca571ef44a058e844ff32b16d5aaea05f7f3af8e2ab16222e347662eddfb891d0ecc2a55c5638f9dde92d9a3d544a5f901ac501acd1ea6a010201fcb10ad702c425a94bdf5890d500a2a147eee1d1fcba8c3abe7c2dfe70f346f033d816a0b2791b4f0b2d956d9ee5971715399a5688302495e2e07c1c8c01527184bcd0c208bc159f2e13318c0bb3dd24a6a7fc849f83385ed4dba07fe1d7bd5640cc9ed5ccfdd68763cb0d0edf61b292177fc1d2d3c11dd0495056bcb12558aebcfddef9feb4aebc57afd9023c65cfe65a24e33f1b00111e92e63e011eaf0b212cf95743cd07f5189ece1f205b7f6fcb2e6b1961b5404cebe47c8cd13b8599d5b49e6d87eeda36e9b8fc4c00635896aa2b75896e336d1b612ee13db811e1f07e61748d920f4865f3f11741399dc6162c91ca168a02329dff821d58198712dd558abb099b3a0baf9da1b730b2aa73bcf58d74f357b06f7211c804b6c8af16ff3509fad1d35b14bfdced7db8a6a25c48e5956480724daa057cd660b67ee3e472574182679d485838a6476eac02141075c812af7967ba7c9185cc2abd2a4545b80f3d3104d58d654a57792dcfabbe9c0715e8de2ef81ef404c8168fd7a43efab3d448e686a088efd26a26159948926723d7eccc39e3c1b719cf8becb7be7e964f22cd8cb1b7e25e800ea97d60a64cc0bbd9cb407a3ab9f88f5e29169eeafd4e0322fde6590ae093ce8feeae98b622caa7556ff426c9e7a404ce69355830a7a67767a76c7d9a97b84bfcf50a02f75c235d2f9c671138049ffc7c8055926c03eb3fb87f9695185a42eca9a41655873d30a6b3bf428b246223484a8ff61ee3eeafff10e99c2c13a76284d063e56ab711a35a85b5383df81da23490f66e8ea3fcba067f5530c6541c2b8f74717c35023e7b9b3956c3ee2ff84ba03ccf4b4b5321b9240895481bc6d63c1693c1847852f8e97f50a133532ac3ee1e52d464 +result: pass +shared_secret: e7184a0975ee3470878d2d159ec83129c8aec253d4ee17b4810311d198cd0368 + +# Official test vector 1, seed: "d81c4d8d734fcbfbeade3d3f8a039faa2a2c9957e835ad55b22e75bf57bb556ac81adde6aeeb4a5a875c3bfcadfa958f" +private_key: a2b315a16cc2cba3500aca6746967dfb808d170c0583b1ad737b50ee3408fd1c793739845fc18297341662ca3630c11f7bf77710c414cc925a3c4734cdaab8f1f677b33694067b230acb79b30262f74b923afbb06ab880b75a609463b40d908115489f3942473dc8a555e2403b7c1dec411b9818b627457a583305301cc34c4cb1db2b12d6f10ceed4269fdc9a67402b89b71fb372a4ef593a17a56d329b10ae24c6b3e750704b0993cc64a71840399bce5d7b182b561c9cb2b914673b6a5337393c1d77d497f426cde194363b50683e1b2c8bd909621158fa8b0aa234a47ac702a95a96b37c9f2a233e69b9779ce793788a0c2ea25f9b5a9a8444afd6b62f5ad6860c8ab1267a0e57acaa53bb86c6428cd7139ba48954ec55bee3f83ac5a47ebd328f053182d395cb7576ca56a639b3663e92f79af13abc20b251fd903524f9a16cc32b631c83b1e7cf5e04800e193f1595c563870ea1fc996f3828b2abc626c59137511ff6f40122a25bc644b154267a0bc6c1067078c993b3d5d018f44c56363b9c5cc9b1ca6569cff876578b5e86703d30c20d733553550b1a8e669f2999b62720b6dbf1100ea550fe6c3973b6a396b50a03235142d75603240f78055f082b1d2f490dadb8b3a0cb0ebae99ab2179f2b38b274c51febfb57cc87291e34bbe5fcba818a3f2da4c3fc8950f51c1e806c5e6f4552f3e187d82a0cf92b7da3f26ae04b8c86f7a91b545670b409dde5863cc7b7e30b937b13accd1c68e808ae6827175bb8239904a88a15824bf6489d1044620844a6d92469a311942c21294ba5f26c18dd0a0e85fc85f241c2151815ef00b3bed322de98a7f7092df5a0a5d3d6b424b26b38e1931dab2402342bc12463aa96a0a1c42dbf73ba15278a22448a4fb6012c214def53b0fa233dbd096cfb2045a255c75a9931d7e3284f9b95f648071f00343ee580193627ff1981e982264e63940287860fa763663cacfb61350e7a4b53f7702432347f22596c678585e3cfbba07d782766c8399ac21b37a8b16a79e6a41ff606469947af07c226f79145174ba4ccb4bf226cd5cac54055b8a0815020135b94e6560ca89c7d837e737a73a0278f0e8b1b29806c19858b8337967d527d0dd6a25a5b0f2338b23ac6a4a0496ffa8672d17075cc9c3b20b24fdf9548567a85f707998a375bdd044038c09bb4fa1af3f08a37fb6b17ecc29c756ce9085edd76618b5c459bdc4e361199ada77bd1f91086f443dac6a9eca4ce9403b4c5cb1eb6d74ed2f79ce9ec032174748c64416b676d11fb28e8ccbe1fd3aed6d0c168e92e3f7096403a3fdbfb28505087c6db9f2e44233773b03e5166ae1669041212ccd58ee8580a2d6861a30b6814f6cb550a7d9314080413bef5c847c94174e590b765869d0c9c6002aa377bf77d7f068316050e62e72a7bd083403240c1088f84287849112a03ac8ddbe907ab574c4bcb356e9834d4fab5c28b200fe233a61599c14259464a24e3210a99c7c601a81d2ab07d65a9504bd68906285545241131100cd03b5dfb05b5b4ba29166c226ed4347c2ca99d327595f29cefbc8636161c4b755f87851675d5553308c70ef0a8fee3be05a27f53075ac7d1710ed3177c133793c140f6c47b7e53b96f72bb18447d277cc021c144a0f7a35e30b57386a78ac976376262320a5e7e1cb42e290de684462ce1067e920ee86c32418b130a5a41a0e8268cfa7e0db2b441cb927d7897c42b1d50f9b32868a35a2c04cfe91040e9a9208902f20c477e1b1ee5c290d2e5244eb1b4b7b4c6ad074533b58d9914a6aa8829f96789f5cb87607569983003f3a2461c33c81a3672af5924c4ba37e6827fccf86d8b4103fbe9c0f6226dd0a2145a6b7aec76b186466f9c67bf169039259574456497140c8cf4ac05091973ac8c08d809465785a677a032ac09ad1d666e8c48462813ce5ac75f184b38251c30e362b0e2501d6800c8ad103c8b773780b6717cf15c401139acd54b1598b2b7c79492a86631090268c70d875bc040cb2b75a386fa96b092b8cbc25c47f70aa76cd8b9afc12b42b536e27c5578831a96dbbab7138c3f247e955a6c08b4407d4708f1914bfa48af4b28533f747b860b7076c028e245c9727b42f3248fb0408b3ef0c4918ab76ab96daca81afb1211ab3a0329ba1a5b069a68934c1ce84c2f72839311257fa19e72c62fb5686b61416caf8b22d2b26a6dd01bb7387f88eb8606980a5e2259cbd56ca1ec051cfc66f96239991a2360d75dafa1534c8a05ab9c95e2e586853714600a3455511b62d94525d8b1a965ce69f986731888d1ecce536000e4863322a83e3c8475d9eba5414a65b0561d24a7b09dca6ffe23836058bec0a85671641008c831233c7890783dafe8c359a263e796869118c4e74002dc3b0ec5b1c4ac641bafe30eb2bb743713bfed2c1e79c4a6f46593006acb35f7031f194807b893aa7a9323162168d384d0e96f2f23368626a2e027891ac94f12f30a044b85f0322ce2b16517d36aa3f23b5f391be394b54ddc28e5a9775372869a7b50b4898c072c0669d43c641a3cb5e8c170ba63bed6ad1008615201305e292e1c818e1ef64f3e0c52fba67e7249c1ec4a140dc89ce0050647f1c19f5897c77b9059040b4b5b4282e0669cb4c658f48f67338413c92fc7412e444bc635dabc93c51b030784f21461dca210cc6a54fdc25bba09705baa77c1826636b16644a5ada51270d8317a787abf53192d40dc765bfb45c7dcae58481af3a49fe762b90bac1f6f69a5de8045981c67906b9f692625fcb6a4df2641688aba61fa49a84b47c96661e4701e5826c1108069c4b9c6e480251c4b021d11cfdaca12bbf9c09a0234186668e389454ac4046f5b2468aa2fa9b117868574e729574ee57ea7495af310627b85916d6b4c708374f9fb0c9c3aa4664c6651281d8eeb98132c1af13a816ca5b869f50b50b291efd466dea090918630c6fc77247c458aa82568a41dd9d4708af3bbca5a5716447e8c2c24ad788a8632473fdc4a257196bd2b549091176fe654d3694e10a118f7b66d1cd5af199b6e90b3bffa88a92e36717fd4bbfcc78b0e08634bc080c86885c92c8ef67aa4933c7df097891369bac5fc5d0c36737aa60971310adf02c257f76a7a7b3f7e132c2a71c52ff4affb6846391c0868241a3df13408d419a78bcffd49619b03a192c683900a244289c9f7b4564823900ceacffd9a9371260d5e57a8271196f4759eead0ceac318966e76f68de95ab9db2ba4fbf83c3b27092cd339cfe48d5ca0ba11591d04566f4ed24a57b00751eb9b1253231213f8a14f06f0fe1b7a4fdb7d1cfe44c161e577e5e8f0a003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 +ciphertext: b3b339d73dfe8e3db262cdea792b4e3ecd712a75750a3b206800f11116637b58bc75ea61bd74070d7132309176608c33989fc510852c0f8d07e9862b79b069cfb3e5b78f277a74dcc832ada24f7d522e53a7cf16a7c7d952ed9f4dd4be4910d880e2e7c5b23c6cf9077e3d350ed3e7bb54ca7b39a9f68e98d2fc844c62f3eed092c8c008e4c2a28b3b1d9f34488655741ddcc440be7828ae39f25f52f57d8b1cfe3967af165e5affaddc8a85cd4939221762be2f71155c780ada5103976c77a76f838bc52a72544b22cfde6b6e843b4e552f1ba47419a8a8bf53c388537c1c08c272a02f4923d9edcc54dc767e6613c6f832889ec05ca805fc09e326d242517e91607005af03cd1acb242e630d6c20499dec187d8e5f6d421e2ceef7e3f74b751214fd58b6583bdc5ede65bbb643974d5cb45533f0a733a3353724e2d7e6821d99d317eec8781d3f1e03528fda480da8cd8e8adc51585a14acb5da154a68573b0566e5e49a53b4cb8061cdc795d13899032d549ac8f7c35099eb2ba0f0df4c9558444f4fe5f88bc46c6fca1b257c62d2116efd1c8cdef5717068405201c086da4143de277649f32538f537f8bf13a65c05747cd44f740736966422bd247f4be9a05acbcce53b9c1b0019096f93dfa86948d7b01d10952926b7a6e0e51792f9be6bab620b9fec660a2348818e4b47cd5934ffbcef5aaf20c3acf9494ae4df9d23f62a2571eca8d37fb1c8d29d5df0fa30c2f17fe3788032d124090dfbd000155ad8deca87190d66bcc9b1e3de392bacad79dc62be0d96eaf448feec5ef03544db3a782e5f9ffa20493d5ae6a58481d23cac7d3eaad57887bdd706eebf15f505d07e3592766710a658513598c94d2ff3eda5b5e900fcc9da8c012633c96a8b9e1da548dff60b1a763bb3f5ada6eea3290a01f7367f7c2384097ebee2960d904141b6c7bb30bf640350da34b9516d9f73100476e7bc077e0f88dfdeeaf9a2855448393cc26e14ac50b67065bb3694933bc64c622958a11637f9c995e17f15cfa663e7121c4ebd5fc1e153bea84c66843c90110e587462c623dc67ff0da5dadbade9b9724ff804227e188a00aa6c70bba00aaace8a035b96a595ee726fab666a08a4979ebd1e230a9c48afe7779cdd9f0d019e2400db9f686011ab05c4109db273c236646b481ac7251fd70d23188f943f6f282bf059279464645c9552de905996f2ef355a4d307448aed53728b490baf108a7d2579dc46e44334d1d99f310c8c953d4b3fbbf6b15a99b263775a1f9f0c0fbdfa260415ff4f61c263362c95fe9fa72767b8625f09b91c393fed48bc8f628ccc76b5ca49d9c01223ab4c1a9f25ac97ada8783b576575fa699140394e53daedf683ee53172ca9ff70c27a3f940675e3239e44a24804098486decb72ac8d41bda6e2d3585e2edc1e47cf1999fc67aa000677ba66ac22576ea087b6e7affd5c1617b3d94fdd314d17e6d37f9e5347807fe21fc5a9d75b3a25541cfe4a2d2c9efd00859d713cd6f67314cba4cc270fdb2e6 +result: pass +shared_secret: 5f0c5d9f39d3e724b5a2bd54e69e360f72ffab5d4d6cc5e572fecba80acd4796 + +# Official test vector 2, seed: "64335bf29e5de62842c941766ba129b0643b5e7121ca26cfc190ec7dc3543830557fdd5c03cf123a456d48efea43c868" +private_key: c22702a2a8b54046661fe48e8c686eac807794eb4a67454d68a12825c99c73b3620f1482eba71c724cb8edda16d05a2d630a4b7d967d33f42b352a07538a8ccfeb481776baf74073fee48709f01229d087b9f16d36e907ab792be2b86baca7c58bf31b63aa556613168140ad1cb45a70f3ad8f88ac7f6b42179b62707ba00fe0776ff45f575436ad70bdab0769e05587314ba7f1802b2ce6536152a5076a991eccb79a908351f62e38c75bc3db7b8702a104155b87129b2b3a6d3a157fba573c1b96b2b8ebc5327267aa47847259bf46f54c315b26748a6f49eb3721e772032b6f0dd48a44755eeea543624cb62c6965840caf314c81a7d49c1a2ab46d047ba45244b8b292f72252844335db158496302e1554086b4a2df68a1af1737f743b0bc4e07be5fa2edcdc4ba03cb61101327fdb6e99a2b1de800462431a5e45870f5bb61e058b21ea5a4f86404f99459b4c8cc5d91ae4e630ff1c380b3919c2f22f06f633fc062451b462130117e5f20cafc2760c434e404944fcc03d64d5aa8ad11eb2f727dc71917e6200f61b53ac7497eb198a417753482c3fe988c53883372d08ac11c5ae57a24b787a995f6acf6e359bc7121032e4bda65c618963b84785a86da1236289bb2a6b6716f2054dd43c77020d8686b47ca1b7ec2ab36c07141fb86937141f45d92219c25ed9c13d14c7ad682640a5f88b5574a283aa3709f26d9aa739f55c776526321942cc8115a69e790ae357765c7a05ab35266dec2de96acf5d126ca86763e18999e9513f5b5809130b7e2616392a3514638b39442a6e98c44a35005fa4a6b1488c9f181c4747a935626895f3c623ddb44e1d581a11465ffac0a0a1f2a5f881456654490a1b1bf1e4485a94841519babccc2ab594b1c2532fc92982db3994161b15194c265b679fbb768970f885f04ac06f62692c9576c81b8979f221e545b150c9a57f232dfbfa7d9ebc91f5aca92a3cc39ae922f1257f1973979b46ad1c967baa7002c36080a926467f277ac234c31c716ccb954b617694e7d228164a1be2e13b7b855534fb50b88c937a191ce493ceb19561d59b1f198b81c78371a58c5ca4f38bc6981faf61a9b60941978569162004abfb82ab729d4358c207a915d55458c13250ba813a8a5396cfab1157b4a266033050d31c1b74afc55c645bf256f00392b432a99092a30ecc456bba202bca14e5c741830c931ec377fc163b5f16b81b3897fecb961c6a0d8d97461cfaa8f4c48069648e8b48864dd9923b9b1bdd44290aa66290c151024285c3732a2b717c55072d2168ae92f001a1c44b54dc24a0145781923138875d8f4a0c76e2a79fab7d10a141c57ca9c8434c8ca18e9d0271ae62a391f28c53361c759914852859f1970caa124a1ffb3797723429874f3088197af94a9557cb66fb76fa84bbf5bc87552605ff00c67ef53c5e5c68c5800057f6a36b391386743bde6b4800b4aa1c1984eac8a728a729ad60a6321a22d6a9b27b56bbc7c65f7ae34304827e833aaa867766079074c8e020c32b87fc6564e5e4953df85b24991aff87b052847fe6371efb03a326a96514dc6ac8f42106f59df9b10d668111a1a9b08c7bacf2a42243504ccb9abd737593aab617c02b820292c46c8a8a92975a2e27292cf893a7f54a84a67022845d66236dca3c4844604b16879e849c7fe3475d03f82323d822ae2cb6763842a319114f5c77754613d5fbaec05aa801a03ac1989a725337ea38a668ea65cdb36343ec3d690ccdfa47ab1fe473247bc488d98e1e33175920a0f2272a03982c8386485bc2c4245884f1d941750a1d27fa85f0067f5c377532304261aa908bfb950894cecc1bbfd197ced78a641366b9199a4ba190446e03ae51549be7959c87a629abf24cbb7a58d01cad4949734f797ae300a78f45c70f668506977d7c85a0cf64c700a5b1f7879801bc3ac75584302c8bc81c0d7f6b237a9400681bacfc7192f9c653f8a9551f796ccfc262d3a438a551ad74c80ae9e3b5a7f12c5204ad44c21f488b7824a4b1eed79da9b44e60d8b225490c062b924da04f0ef0252304cca34bb4fc70ce6b1800fb6c5dc771bf7bda9e9db2b6c6046a1672c6f6f01a0406b903411c271b20e139a69138adfbf50c1134ae0899c166b1b1a5d818515b0dd94895a253059b167630f3a0dd3c64cf257cdf93596e54288c7a4580404ba8da541abb1b6aec7e530c58a61a64d9b9bc32d870bc105ef7063b9a97519b871a60d7aaf8c193e948c267c9c815063d6a603ee8d2249b386d94395804a9af8cd2184800c7ccfbaed98c4f9f95b70145b448387183f5cc8f4b5f35a949bc74706bd03db7645c2d084624844a55a0a5abb9244cb5b8736b835b512bcd912361fb660479b2c51b99734970808ba5c6db0169756cfc986dbda94915563c15a109aeb77c01a7cff55c8430696d6e83aea5d49292462d725c428b984d15e97ed4a76403094699e1336426b54281067e675788b3a4fcebca4431bfdc8a49c215ba11004a341516018419abeab2374184b0e2b7b7a54efc678e812588960a0d009418e5289eddcac582d3c73dd93e1234518da003648853c5b5a24b389e88300aeae78c41e62e5ee303a56b548375757cd42e21a7c59ff29a133868d1d0784197573464292547161b3a8689dc0c7de11139d407f0b5784d942278d49462965f21f72cb992add160620f6a82f70aa9a830190ce3c9fa8015071c2877483c2203bab7228ee2f37bbb17c1a4bc499ec249ffbb42e4989905a878dc873e456a7d9db946572936d8d81777d1b992c00db12a35df1348ce8c9d1a02898c7403d4107f45a6bee864375b623d30e0c191f8ad835a3f3709362cc763d63c2b91649d722825402c9ec1b1c7aa02b154d69e39da196e72a25928212fe0711bbb2fd2f9550a361a28d4295bf0c036d7b79be9130232060206c919f8b864f03d6f02348ed2c8001a30124b40c6d61dc3e18bcb27c60bd1324d8386da99c3e098cfb94b018031a4d6aa5788d27a75a67b630327add804adc21642d58080956a03f03c8193ac302c92e949cea31721813390382c814b2c5a6d34a1eb44b8b62aa77bf88b5067455fc0c7be967c21bc281ad38ea6978d228a83a820c57b4039175c910a450e300101cae45b0736a4dcbb0e6eb58491da31de3b65cba0a7c80c7815f677eea7ce5ec571bbf7c4516c65e4b2528e160959c815e1bbcad0a29ce59573d749453d9b6b52a951de9b889c79cb355c345631070b7c30f1934123c9ec68ebb324d254e5d246b14a0259e49b2ccec72b8c4948349bda55b63cffa9bf953993918b18cd6595ea6433b479e89b5cd3c9339e4468cbe82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade +ciphertext: ca1e236472b3fec4e2afd4298eade05a462fc19fa22e6805b386282edba027bf2de8d13b825deb40fe10cb8c79be238201a81d7ec48400375019164b1515853e69144453f1999346ab1ff386fb3eca8149b5a2b7acd49a165e0cb7f7509e0ed5d9f279637b26570b16ff34f904a42244b15af7d3083e0cdfe3c03ea42f73c75de1860981b8a25756bdb18feed4bf461f765583f0772a81d40508498b54ca8477db0d7067a0d9f7d00fde68644fefa97c5e21e3f3ba7cacd67cfbaebd58930d7665bab99a94da09a2572b5b5232a366e556c766aaf5807004c6d3725ea33172eca8a6dfeb079b0de46ea9af3f8627ae8555ea18c0a0c12b211826768d8a8a1e57b1a95c9d98bbf1d5ec07348ade6f134712dfe84e434fae1fe9671fddc8bbd2b69a15704e8b0e62abd5492afc1835bb24013cdb83f62a68b329e8b340b904bff04b4eae972df87bed79df39313556b2cdd348f83f5bd248bbeba7ac06dac17156246083238f988cc196b5469a163d602b70b1901fd240b480d67484dc4c0e1280bbf6e528a4f3b6c734587e33a1f4442ff0310f6c83259f7b94a162a4a2a49e1047fac23a245b2db3cbcc94192d7fecf40eac4224ed4067533e8f2d468332307fa9f82c089663781851a2c3208a23cb089ab744f4aabc1c21717388bea6fb01789c4d77fd4b2e0395c841565cd8c9c2167ce483a363006583d895deda5351c1cbd0e182f59782e5e76ea45d9e8f38d683de8865e96e8360e811559c3e082edba99be598c7ced451c239e081183fd0aceaa3f75effe43a7c8700b1bdc51d0a5e1e482237d9bc8a301b20e558df1f8d520163edb8705924cd6b8971bbc3923f8067964e6c99ee3c60737ef170f5aabf6261e5b2e6430dafa73ac9d6084ddd0ed62ddf2a0d4e064c7a04260198b94fdd02ebcf817b511bd90f6243cba7ba91a8dfab6aa8f48bb67696f575da25234ffa79fa53a4b9de2ed0f15e9b20c52b764e26c5d2d0b13cd3ebdb5d560b373725556c7fd152f3e4040cd7d40ac9b4f4c49e3dc7f748601bb4611c14e03b37ed79658e2aa69e0b47f42710bed2e4ac6bbf37dbeec69a34b6045126a017732695c5474de44aca2f2670c0e36bd686d9095435359d173276ffd07c25900037c2a4974e6af401dd55523042bcf36ca27880775cdbfb6b095cf93b491dfb0f2fb0594d7d9e46a3303e3c0da3c5d39c2fabfebe6a3eb9e7c2af3022aa5148c84f9cf8f4899697c781497c70042030918353e56aa0e4bac6fd3efd8f41df94d5668802c9f63ce6fc51bc36820f0e60b2085642e502d093d3bc12849c553e05574a2929659cf3afa0f33eb117d79c3fea450996738b38ff162f77fce86949c0553269dd8fa3873615e7b75dc5429799b191cf209202dfe18230860637769df426881db849bfaf585180ba15f67410908ee6b4056acde46a1ee862ce0c696af377efca2a2878d0922bac97a53ae95cd5160f07fa978bb57ef8ed3edcf5ff907d25f50f80e488c7ab79b11333d894772a57d1a20d0c6d7224 +result: pass +shared_secret: 7f3bcc03a35a0030255264914e5d88a0c93611c7ca21f0609678a88ca42ce1c9 + +# Official test vector 3, seed: "225d5ce2ceac61930a07503fb59f7c2f936a3e075481da3ca299a80f8c5df9223a073e7b90e02ebf98ca2227eba38c1a" +private_key: edda9b4fa2880d5778280a51a25a02b4d08f44f83afcc7ccc3692af517738bf8aafaf53eb33004364aabc42bb0a640b12266bc6eac91d124867192c485209660d625c33aae9f38535903cdb178bc2ae557e71acee8208169d80c74044490b3ce4c06b2b68b44b2c0b47d3c9178344f7a7a30da49548656b011b74b5bd1b23a1b39f9f37dcbc91c697799748007f80b3d55f6cb81b926311636ff11cfbbaa31bb02689e9b3b983213c2b3cd8d4395bbd46dbd25b345ca920f9b3545f13d4b809daa02608b4c5a1e041a98b3320b91802544aaa98a4916c7c49da792f6a04a4d64afa1294a8e71abd47c4d96d9203c7610a10b762e91b386471c8eec6ef94259b8440c369153ab6b9d6b52994271a865e20ed1136435ca490264a541207707881ebf74be6259b913b38a2c54be4ea88de1dbb3eb59b91497a13304c54a23a3a1810674610255350967a612b55bc82a22aed447b09bbc6f92fb9427a4baa183406ee6ca14e35808e33bd339a9c428213aabc6ecf473c38b62aa7c6cc8b30f9a559565d413c8f504cc000fafc4420177c054ec19c9360c2e04504b8b7e7bd86b820b1996a815337043f65975401c76a863a2803b0c80a6062e827daa973efca23502faca371cae8b42c4518b52070b91ed07a5be9c9dd304386592988fb1162449ac12589115e7c14776977bb34aff985c95f40265c20b4cd6216702c9ad91345cf120ce0c2961872bb6e42547412bd226ab8fba97b8e074eb0746d61140e07a51176227c9559c4bea306be88e2b84515c528af3ba34cc71c06e7cac19b998b23c549dfa2e253a33ad23b905e1c55f96054c3c4d0ee68f4b447404b8a752f4a9cb6acc624a7985141055733f47d4220ef164f6c7b6573bbda39365890c0c0318827a701ac4670878fa11ff24b3c57b56abf09ed2ac5ba554a8dd184fd09695cb2c798ad23b86f0690d6840c77c53f98491845c0c335b601b26582d9758a244603035139c98b9a723872d16694a4b5165a22fc281142251855998cd6eacad79b8987f143b5a7a69feda51d66b1c0e453dafa5209a225c1298a8f922cecb2c6ebc63c762f285ff667469d1371cc5ac957a495b55834c3b3a4ee9bf2a85c5b7062742a940a686bf0149542b6a350fd2144a849d6d71ccbf7336fa06aa4f7aae89e586c4d093145b8265699f5ef000eedc0cedc96e3256072dda4fe71789ef1c4734e3205ae617aed6a8848083fef84c61128c00645e6b4319b950ae0322ad845a58bc4564d2bbcb9e08858aaaa8f547070ea54412eb5b608cb7883472d10abf2ce4143e461c1de11b5178cdd8924d93666ab8f44cecb954ac431ab89208d812cc29073e2de706953c2028fb236c731dd838af9d310c1538238743bb71fc3546a08fe4e35e965903f2fb7e1a9a2201f6a86f38b21f22906d659f4bb8a226ecb8a107b217ea41e542075d01cba7caaf1c97c014a97ab49666e0015eeac597717b1e1e8773838958dfd1796fe1a7b62583f575b1c0e676a916799bfacec28ba707974131f36bb2292ce4e99cc2046b689624e069ae46db94fd66a5ca083851940ba26341bb891fdc860d53741f084b2d9e846ec2bb5eabaa69a8d96a8975a1d6f33835a53225c1215d624156828088b63da622afa9fc5476b3603474b24d8394b93ab494ea3eb0f33ff5d91a33d34a2f666235ea009e35544cf135eff54e3575afe2fb15b6b59a4db843c25139ed345fa170003fda60b240065f761570471c4914aefb01c38fe36b3c7b80f77887a03b74bafb64d3b922701a86b027651fdbc777bc4d90d387fc15b8c12443af8636e35224c0430520bc984d71c56df26e84b683c1dba081b0a584b5793e725775482ec45b1db7c84949644d405579659cc31db130bd190d2247210c043bc8f227450ac206c13e8baa896e471f7cab2bdab29220c051ba354dc404767e812765c66ec19acba3b993caa2c0bc2367dd50846bb40d6587b51a76277f6865a5c69d885553ddfc200e970b9c0666c1854efc932af57a1f3bc0a805024efcf978f77b1dd739604b8a87b44b522ea80e87ca2cba7220e62c441a429d19b76425d51cd1e61e2a2950922637a1ab84fbf645a1f6413c288b731945d4029958d56db90aa01b712c83b73aa88581522757d505b83e61ae06eb6f5270021c61b7dabcb0229878d85c8f352a9a4349bdecb2ab0c2ab4039940a887b665f8b9dd10992b3b0493db6074fa85e1382a970953ebf113d4835e9f031d390836732b3ea6a89145183f72dbb095d7617a3abdc28912972035f1cc30aed3101d91c9eb397680c8ae222aa61e515a9396cefcc75c0cc255535a3f41212141c12558881e23798e1748bbb5464adfb167a2c44388044754a87a5ad1ce752c38b504bc443a24ff73a6cea4768e22681554b56dd59da1c7b88db126b7ec640c1bcae8a20b5f864ea6385dbba1c4ddd31775ca9f72ec6f137570fa9356de55c5c2ec92048a0cd9680837f98763fb35d1431805a7420d2bb803cc37bdc90fa921bd4d18b4f33419cf03ad0e2360d92192d7d87df71bae83d2b538741914892c0d778cfdf429be268a22f4043c29b62ff74fa770156d93127c3a7fe2c6c6c65470d1931f85a3af1a963bd919ca3c437b43d368e6e7a199407258b8bde88b4742192673499ac440b247d97225e7554482c6aa6567486074f15b19588c6d9de4619d4c493bf73f2bdbc05343a581e95197b64dcd8826442565bf629d5ce4045218bb908701a5e53b2d0679720598fa1b08f286b60e5c377ca7afafb206ed4712d6d16a47b99360426619f97db0059a15592353577765a8368d93928802704836c2279205446bbf7a2465042816d7907f143635b1434680156523b02cf1d8565ca5c7ceaa126a2753dc299c10e4968a4729991a0f5ce31c595629301c135b5810a712910a84ce1f2164c3aba248cb89c591ca0d24a7681c0a140672bf01c7f5c967f3e41b9a925af6ea75408a24684b725b446a30d0199f67af94b958c4b979c2a841b28878b5dc5154b79c944c7156538e6a130379674bba5438d64775fe1a87d3aca677541bf82c27c6d18f3bb182bc7494dc91b23c35392f21ac49e69e3c70454bdb16b2394d00a549734a1aa4790b01508be670841e09042e5a1a4a73c3b830ac5a35b826f36411639e20576a89197426005c08380c13a4a464892bc6992e236771e7b135aee096e9f65738c531b8e63c3f4a922a79222cf8b8309a04c3c7464a69982a072fb895714eb8f4e6d0a4c447ac97280a7a7b63bd585c521a49bf9230588ddd7034647a81f0f1b3e3dacb6e73e900f7c078cdfaa7119a5ede48c7685fdb7e0fe2f5de950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 +ciphertext: cf094e965c6a8d943b28fd5520db2fad4289e6770ef897f6ba80f522a2d240e201267890a7ee3d7bcb86c9996cf962bb45f8e2cd7c02c42ca4d226858b07078890b65b297bebdf776402566cdce7b52e8dd7e9f920a07f8430b58869db5bb6bc73f47e4b1b58905743fc6a63a116d9fefd1985c0e317536c5d1fd40a99e493655b86be0567eaaac00c67a83b40fe4babb98823051f7e4c565c93392df3a67b214217e62ce0175aa8fa8e3d5a290f420fc03e4d259e76c5668219154f68e1c3f1b7b44468c3eb8001bb764ca252eeb5fb934989e89d4e3a507742ce31ec20e57ac42fb9222c18b674558814636cf6af142f525ec3c8a7d5838e752eac0de8fb1d77ef7e2a979dd2126ae587e7adecc8cc21da87fd661d932b277a154a7c7dbc4caf567199660f756589fe8f77a441e6f31248f28f046d003c4d7e6146f9829827838a3baeada58163cdcc31ec0a78303695a9d51d24d72527ca3896ccad6009f701e486e6d73c4a4ce1afb00cfbb0a1e729ca6e726e4c8a2164d51e97f50f65fba4a8624e679a77a458675382716e57b74d8ed323e06f0f0d5af1b5029870ceebf657944e337cb408a0352328564cfa19006773d1b794d9216901f5b2315150bfaafb04db04c7ed09046c2c66f24fbd68a0cfa6ac5b64363459a73e3f101552002caa5e83a1f91759b5f86ee50e915fca750bb5e95c2f8bbc6d5d681313207f91d524a1a510534d9b844f39c898f9941ec4713eaa9572d8963866cf69a6d87e98c54f7a238977751b31460ae699b922c307116c3bb2e90f69bb91c8c45527065eff726ff640eaa0016022c5f1ba2261faa37f9b34eb92eb5f55ac6c3828a90be3265be251fae5a1825035e8021b70ad05a78dc4ee186bc6af75bc7ad7575831daf735973e8505d4ffce88873167aedc55940d19710dc769fcad490129cbc84ed362472accf2ed445599b2ce72465b85b4e1d6d628dce3195d4a5fde5b95e0a2ec025d5678bb92a440110839b233ec4fb34a6bfedf9c1a1d64c0b5b20f502167b35745f83ca64857ffcdc91b1fcb3739048a48a3da1d2020819dd93544e2c448760d24862401850de85b61c438a23de01be16b5f1a433e9d3a1132c638ca97d7f7485af8176ec8f14601439438552ec3abc97d29f5dd1ef805bc46fc9b77befe95f0641a94c7ad1dabe80bc168fd04054ef38b85b094b2083078f04cac56742a4c2e505eb11025a104df668dd9c3756d901dece91a521881ef207e0307c0b87170e3faf188ad9b8c25704d41dd6b5111c1a594f5ff7dfc4c78e78868f7ee7dcae347a70abb7968b4ffe8bbdabfbf52c853a7fe165f4ba616a9e9b18d00af0093f1e06efccf8863f0c937a35218bd6d043384027c5972687c1078c31e4de6b1edfd13fb149cfc9787759351f5b1a3daedcab46367bf6b4ba159dc109f7f79c478da6d0cb7866cb372770bafe05bd95c8ebfa090f70d6f051430c0f2ff76a036679be20ec3bdd91b5323af2b3273a995126a8d5f413e4ede9f27ccf1dd8974bdabe3 +result: pass +shared_secret: c630736985fdb7830d7446e18b6b81fa4a707a6058964b99190120de85e7559c + +# Official test vector 4, seed: "edc76e7c1523e3862552133fea4d2ab05c69fb54a9354f0846456a2a407e071df4650ec0e0a5666a52cd09462dbc51f9" +private_key: 9aa91962f6556d921b81c4946aaa26b62ac53197a49e1701eff367d7ab00b27677ced51b9619541ec8a180db9a7ed7342c31000063578851bbe9095816cc689b701a0cf7acccc64abb1355807703a6a759a2d89ec01c9b8196573576c06395335bb39903187233a3c89811447e8346dc70ae390544145abb14004e6e132a43e59364b249b3cbc13084c9a3487bafd0bb66d9414f607e6cb33b35d990ddf40d87135c3abc43a5b431b72ac9981b753a4b17ea48c3ffab5917b387657bc537162631e76ef6eb68c670caeabcc613b439a1f265d1229f8226c1a76447b535a81bb311b58b1236324c20762affe367155678ab01bae2b3bbbe3519ccc6840cf305e432b5c92966f45809dde31b7c30c2ccd77aaaa236ecda9260c361e71c7292e10151d165bf6c9cc709a49182807543651a844fee7703876921af5537365c50f4ca07b2895725505db00c6a3d240089f51c7dab07dde7a49217a90bb46462b4957ab22197844335b620e0226d1df94ffb5983bbe8aa3197ceb6180ead6561bcd7914841af1b954dacb4c5ffa694a1a45064e2c3b0bac1d265abbcf2ba35b8b3b0f660d83680be5c12dd2437a46a3367d6bd94d40fdae51ce2ac800a0881b3b3a12995bad39a2ee4ca5e07446943f19aa5dacc7b8c9042950ab5ea60a4e54de2e8378589722bf711a1c92113471259b2070041287e51742ac79902e4ccea25712943285fe5896427c8eef2313277b91ae9cb55ac2edc49b2d194a325f6836d29812660209802c457266ce3688de79a40d5b6a4c2b606b56c0b2e13b262990cf23987e138742eda24c0cb551aab1024eb095e929be557b17326b2daab78c981bd26a393a175385acbabb1a87983c271175cada26b2495705142e0c4fee912d1e19d97f2ceeb1653b70c9003165d7d5a4a6e916bf0298dffd94523762790f0108610c1bff81a59ec4cc890a716a29f4ad24d75d53360c423d0c921e66b59d96347112c918ff680ed460c8d590db11992cf86caf3ea3baec9370456c6c354859c040fd1c126f736c92e50860694b29dea4c1bf31061ca259e83035c01a27ec57eca8aca80c6c932261e1f44b6af8a0c571a833a826d2c8b749832566230cac47644eedc9b288640e32b4dd75282764c152b87648f7baeba3a73c31c7e2984973e74a6a7236b3c364bdaf2a5fe64b4da0b49437102a550ce04f220ad907e8853028a370d0b501d6fa849858339f63b8beff42fb5986135090bce450455b561f5d2c1d0a846dae4b2fea86507aa38c2257eca186ca21b87364643ccb668f7d880c164c398f9c46bf75a9a7c975e463bcc0b9b26c4291839c43136614f9c9133793fed561adc63992bf968d4c373b8531e6af04d58476b33585c1e9ba49539043e726340c4cce9223519227cd66b5f3d05702b9600a2694d5b23c4042b603018cf25fcbe4cb86422420cec820ceb589b42791c010cc4aa306fdb55452a49c66071c81aa3bac6f014be88602a6b4c49db2a7a9a57e6c97bae7bc483f5a54be7970300bd2445758027311e4949ce43859426b23999a0568a55b2304a838546d3f4b6cf8303798837b229b3b1aa3b3ea60bf3a9aa5c8b79f5293556a45010b5a571dc246ed749711cb96f0cbb88a8c1c298c7837b2f2c3525f2313ee5cba7f6dc77413cb58ed86f75d26b39729561c28b795073c1994f69256eb0ba9c934146c4421419475d005150897a17d310bc52f43d50e8ca5706a774d5079719754c6336d1142d2387bdc1732c03e2a3a04a9dde91c46612b54ca6ab15921bc20ab4f2d21910629ff4e37516870d60ab8bab08ce45dc89ca6712f17869e645b702141ef5d64f67f62156ea90ef1c502024858e91c89de92056f3675c1a6eb2191e17300845cc3f7b52cf93c566ffa732c362a8e89c5b6f4a5a827b6259d26a31932e3141486ecc746027776a852faaf0c3c436c690e3664ffaca01582022a99130bcc402bb7234a14db7baaddf7981d6557dfc44788c7506be021359e1917837a3c3d5a598757e00f77b6b785436b6840a16151939774a10a7cb8089fda55e6ae49f30512d691716f29c8a9fa94a8a113632a20c71138851ea6ab3f84e6e18b8531119e36cbbc6d0229a491f6b3b7e20866dda8ccf802abf47a769676550e2fc52ce438c48946eeb22756734bd4572c501dcc311b26fbc9c8ed2100a68e44435520848590375b59687c94a685b6490e236193c722b7b4acb84ce9a69388d13a984f696b85122c3dc0a5c38c2992ba60a280c9c6783855093a9b886953194eea273225c1a3e10b9db18c548c05c392631dc47320f411a618c943b7a201c784885b62f7c56a6b698abf1c76a039b3e6f95c466dbc31b4173778a9d5770b68b8a8195e886e8191e043b909723209553bb942a96ec4cbda1382d02f71a6c009bdac062c791c12f68a1f0506478d1869b782bc8b0181de6ac62bc8dc844aad6403a2b907f2d1a992bc44313f711fee1bc70d326e7199fe411354db2c4ab2526d09227bcb42cce2650e341368fb493d6754715736f8151019df22b07e5b5bccb3d0d161ffbeb2e93731600c85b6ccc226c790ed5e7384e8c3555497c07ec074f2253713b1ef6927ce4c1a80da11cb609c826718a5474230d62a40b0824675c95d0cb05b7c77b1dc4aa2872b8083bb79e201a0c847061e18be1d2ab68b2bd55d24925db5f4479bc12dcbc834b0254b891bf373cf5c4971bb0811182527c72c2ee6479217c70214106b416bdf0d818acecb63fa6af4d7031bb50312023acf66986c71a25cd8a88d767844c312dd5198b965c3df3e244ffd64610eb0cb3431f98889e72e864590191692b8857675afd45b6cc31374888b40183720e1985d811098738b63a823bc7716f9ce94ec70738d7f5228199bb78b811ea912500c71e1cd93c955c0049519ffa8b523a7861b6b2a3dce97d82449b00b8961877488b50542221ba79aaa0d33b3a47025acbe47998952b08e27ac2fbce08d6bdac7b6990297504194bc0304871472cf3cb952d439646aa86c47986d160afd7f401c70bb200e6182f91872812c551e17ea8438ae4236cdd743159802b034443e8d7ba0a249b312ac91981927440cb0bdc8e4615974bd2450161614068206bdac3c2e69eea0912f8a4ca1af21ac4c033a6076e6d13039c97ca930599aa12b93d58c09d663de14158b72ba0803a1b7917b71284802340422310babf6572aec23ae33a54a1f9c65dcb70821393b95178ba5acbc0756dd8a02f8afd156dc73958bab2f2c0d24c2436f9f00b7267da9f8b2678c14626ec811aea11a24a4b09e428415f82ee836e930c3b77867aafc5e6728149e3f2bd1bbe2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 +ciphertext: 137f6e52087c3672ca92c3eec5ddd9e4915b42239efac9fb1c21267e62f4421c1b10de7e404dace358d8403d7662d7079abb4ee0eae1ef912b84152c35c190b48ae0ddb4e8bbfc9d94ce328339ed810384bd7006f07c6b65a68cb10eecdc10de690f8885589f7d7269c659d54145d6a99b9d1ac8b6a381b3c9df8265a904781bd2a8aa5e4c44c5d68525a01c3915955b2c0a8412040cd371977caff50edd1bbc643caece877270385c211cb0d9a4436fd0d0368ba885d8121dd6db0a96175e52918360435d1ea75f9331426aeb8b870344a7e628ffe5115d731ac46238868a61f0a3939c359cda3cfdc4f853813f87036d32e36c94659c42e7e57455b6f0cf72dd6d0cfe6706003c9f2935c5f2f99aacdf881fa458003c61e9ace8c849070ea67349f23fcf91fd2a13cad14d8fbbffd0a66e93e1c427276d541bf8a763e435c17c5d0b40a53d95830b2e266352a92a7156c121f5875187c0f341b236f63ac8ed3aa9f7c04decdbc422723b360348038f44bb9c5e1c7c9a21ba4405ba57dff045c2393c246a430a04260db49648bfbf9da7c3ce14a2a47749b9ab028313d1524e085d90faba17e5958448c20c1c3b4514d83f47503e1de6c9422a4ecf5332645fffac205b8c46d8d0123d6a889f48cce238546a48b526064d638c12752137a4e0a9733cd4aca910d40dfac757080684500edf82e678191f1031f6abbe51a6ac0292755db514feab858bb919d4bc2dea14d1f1c3875b249442ee3d1959bd9ab288a01596f490c47b13fe8469c282e8233a6a7e4ffb48a4cb754ab47be470b6e837db29886f45821806b64824e1196707f28a27f5b09286e711688884f8be172ea0f3dc0f22f8c554ffb181d135cde9ea3b9cb984a9403f459d98b81aee62b9f259a0b855abf605e59e5ef2506fceba5699f4511284886065feddbcef499a5ba735049ba2c3fe812cd741bd4cee6a9e7f4c7e27fa031d4ed8588bafa9e1a724ad3d442b821c4e197d0e0fcf65b24e9a3fb4f22ce221346d811c304bd4b2fd91529c722ab08c19a9b06212f78edf8e61fdc7ac463696fd2b9bdc9aa14e1033523c0ee5b5043634a99f027e2155c6d8e7a489ca5bb6faed913a8211df109df805d07d5bac69f1c42665f54726d46d189f9846b6f15cc5b8a9d3dca6dec03973f54c43d9e97a68f4f56ac4d68280e061ed8b56372cd9f58806d142dcd6220d07bc12b6ba8f19a7196f270587190e1400ea90b91f3f9dd1853e1d1919d98d763f86f82e2eb1915bd8ae55f0e70df6e45bca23bc49af9631825da5c5e9179dc270331fa4f2b148e1b6358e88f83ffc464bb715fcffad465cb8ff1b893a6f985ba181495b43282dbb99b6f7c00ac74eafd2588d12262a21a3b1da5f642f686b7df77484f0486a5a88634e2bbc1ca1ee719a47481e76b5d0ebbae155985d14128164ae3881b0e626e8a96c70ead4822ef68402a7fe703103b8dc134c89fee2c4fac3bbeef7ddee0c8d5dcfb7336adbfb36df18c2632b2582db285d100b4501c75cffbabfe4 +result: pass +shared_secret: 41e078d0d0c4fe5df5c6683171d5c1c3f1ef152c4945f9cb299f74278ce4cc4f + +# Official test vector 5, seed: "aa93649193c2c5985acf8f9e6ac50c36ae16a2526d7c684f7a3bb4abcd7b6ff790e82badce89bc7380d66251f97aaaaa" +private_key: 7390b68a5071de21628a6256426aadd676c604479578d418ff77b4280c2901a29085e9ad9ca81c7639bae82274ee094fa38cafaef26fb27723c8c3c2b5276e28dcbd7131a5afb0bb238249963216cd81118a881dcf9628332661e0eb07c55465403b81d31407cc5b20b2041f5455c3fe8061edc7ae33e06982999e185106322564bbf9b03e309e1fa6bd61412f15091e9c523885b6134788a19d812a4cf4372ff35a24823a020c97cb59a9f5b698471483b04410107a2c2d8824d1ba5646a89e697738ebe6926c54874dd6a55ba2b89b64b1aec95f918a65c9e92d8fcabd58e25fb7b07fd880ab48f6581b661d4ea3cfda38875c9568a2162ec367bd78c2a7f7b3776511a8ae16981838bb3fc6006fab2457f2964bfbc5ed5c67da4987ec997d5eda305b389cb9234b39e23ccb316fed518f35c757bf77b501b983130282f598039435a6b402b679b14f5c1c2c69e32b1ac9421c888b6d935911d4aab56a4b39b3a2c6b8049f8584d74110fe63a1cbd633c63051953b9d12f36c5e3885dffa5d45309dcf56bcea5739a85441dde06b9564a4d1e416459a809964c16d574a42eccb18f51ccae7b016ecca4df2365596ce27958d1227a72a4ca336c412baa26afb154809243b5a448a9fc38b39dc90d2177f142b1959fbc767146dc8d17a3857b84e987479759997ea85ada8662035a939a30412a771b3893ab5184dc94106ef0790ab7617c57c8875d842010c08c142ac0f347709684302929d1d4371cff2019adc2c9a0a34b1f4a70dbbc3b18011348c7e725345a50197739a83a86c7af54960c11c3b03093cc3a39a7e2c8fb7f84e1d452029692bc4a872946a23cfe834254845d46bcf040267a93602b74a6fa9580b134500edb9bd2aca5cf1959991c8716e28c2ecb026a398444b853408b371ae438d4459a3a6bb00fb63175005cf15125136c2b069b9560d213acd3642c3b3c26620af85850922d27fe8f8cfb7b79afe08b9459a36281379c4169b73234c7649b8a0416eee2449ef7a1adce07910673d2ec3ba18e74914110e2bb7a9343b74d5551a80dbcf61d52367f387259408bb7b87d466593cc9b872766cb7021e9c741c040b397d842a80c952c91070838833efa83f36ec134be6156dbbb63e720b07d2197a4b4719f8a7815b682813a55e369721b88ac78144b738177d7788c2970e8591ab378bb4f26998845a8238a51352d33ed9b5533797a7e3d801b63a3542b11642ecc9e3808db74700cc622762a4132d8a4ee583cac8898005760351d6b70f71b52dea75c07a7d5970875e500ac13c14f1f2625d217ef13404a493526b115c6af01540629e07795fa78195ce23809911475e9ca00cb3caa0b5bfed575a6c33bb16351c60bb5bb050218f259811bc669ce68fe4fb1d6369cb7913013a16108d8204f0e09f351156713495e7a045175876f2836a4ef381b6a426ae55370ff4c8e740015687a8828c19426060581523bb184baa9972d946af2d2c34eaea9869304b095106fd759b2040908d175f02ca0a87762af4b57daacb432ad5558a41aadd2c49222460515178740c8f552cbd99653ffb4953d3218f8efa2fd6a1bf7ac7101cf320060c537e95381623872a2607a8447a317771b7e77466880e15c76a39356cb459b78e6821e69b2f0f817b236a04a7cb834a743f830934043856e0dcc376730b3afca17aab6ae2c59ebbd57f52d84cb107b6c5e536edc31e57c3cd404a618700aa1dd87e43d92d4e601ca8d998c927451e9205429c643b251e8307553fc755dcc06d9003c35c310780b31ecdb05764e3c479913063978143fb9a462b011446394a287888a61f4f57b6c0548718faacecfa6571381ce25c2d10c27386cc255086419275a3ca59bfcbec4c63e5b487c41661520495e7b54b9641a1e16dddba5794a42d42e86b0007444cba4db161c6547c69a9cc18b2923b2a388710578043b77513173f6eb0190854bd6cd2612d1048e79435eb17680e99bb932c232b1ac298591d98a881696b3a46e117bc4a50565ba52e4704eb1c23c057894878434c61789ee8a594f94ac55748e2b111170c391b6b8403099928a2c60a42383ce5cea5880701aa5b60e4c789c759c12703d946416ed316e48c62603920e2f640a347a2f305602f4138aa82b78cd08fa071ba1b9711a333a3d22244dad09aac8058592b1edf9193291c8854b18003c6cfea4a8728e7ab378905e3d04349fa5e4ed9baa17b41b0a7189ab5cd0e352f174a51f3518badfa7df523bfcb64c43fac3bc5b6532bf4ca91e245e1e61a815c865bc7cf3cf87891eb1234a49b624c0e1169c400cac05359b6a15c9f3201b21f02c3ff0a4b94980757688ae0c48d0ac5c3fb650ddc38a8167c87c51cabd1698f8e3654380cbc8819599699615ef5495efba00a7a2c805c1d49552183b37bdb782f652682e02b7e26893fd97b8a7025affc7062e99557751a6a1da7828d7a003d0c62c8d006fac92589594fd729c17f38c5c83bacfe5bb8add8c1749a7550765f872c22e3e8be9db4c50a915fec511c31900890192861366d9177612d731f1912ccef5534248408c31605ed8960a612234cc23c94275a0b77302f0b82b4d121bae15539c3111b9a21031314076199849302f4274fc54b284d95903cb543902aaa5cd39d034304ee86814c6119f7fbc17d35c68b151e9048434973ae06030cff855291c71d58740ea00254ed926ab8835234490bad7b51eab118accb66f4a6a172c9a26717376e678771b44d9d452dc93988b9c9b5af98907b17487bca1397b8547ac8382f8a28a78a91b1b105f107200e839218a74d16000e90334ffc8709976b7fcdd4b742dc6bd2667ba6ac24dc510314f6b98dd711bd7a7169798874225627f2c7aad1bf37e97a4771542e8c7898fa0d8bf4c0fd91bf598580df6c0ce231a96368c8b8435f5507429006883fa88ee4e5791c2685f61c9247e72378478492ec90778c5fb8aa4a70e6cd48890bafeb05798c13795c58b62b5ba8f7c522e78365089ae735a796825d9ea8c572a6544aea86b2e08ea9748cf6b5717103a6d1c02f5d87a5e1aa94beda8691d454de0b547e951afe05061399804bfb32eb7b0857b8851810ba48e92518ba798dd54135a74419217a687620a0c665a050318e3672cd616f6d41618005cba6ea47faec63daba709acc2489417fea39b74ca2b13d4a60ab61ba89b2cdf0912757e08214b0671d8867cd2794fb30a8983b410f149ba2ca7134d00f83ccc8d1d4e2f1e83c9d8d4b95e33927f84741e362d80c3ce5833b7f2498d841f4c7e076c64235d8bd63438f13dcd038f286b9f4242070a5bec4d8990075008667aad3a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 +ciphertext: e5c184d0e6eaa03a8e46165eaa4ac0f9ba855636b6ef0900ed320d1cf734f2964662080c1b756c073874d531dfb937b298375f594ea69298c3f7c894cbbdabebf99f5f0c9279df4a60fd58e0612d5146f7da7f708938b2297a75263af995393341b5db7d1ca67ed16571bc479cda54677205833b79cdf8a935be6d097996cf5329c90a1302c9a9b3d6fdcb28b725d8ced9e6fcbb939af5105a298b6801a4670a647a7982227e0e841bcf8d7b8e5e473f534328b5b47ff53a5ef4abd2e899b401887ab69e4290e2e59f0943756584612b7e508e3b270313f5db48a92b7020b9875b5ac8f95e439c376075f63a840a8c9ae9f379ff838eeef0ef6efaeae941ee2d9a74dc79237409e44a4cb994f59605a52f9ae85a350385dbf421582aac40cbf2a21b5a1157950d1993d037c0dfa54753232820cf3478aee60e7555a643dc34ba68078b2794874873b01e4842eb4e9bebdb3ef8c4d224d3703522bf76d5f92b6438914656b4f58b94f1ac72dd2b9aff350209128dc0c707c89dbfaae0cd6e7d0fbfb38e88b25ad92b3aa2f41f6b09a003882c6e1c857dec8d0c0c1a884bb176ca5a8cfa152be28cdf11ac95654118b355d8a0ce321f7e0baa42a7e1391292af8557d5017b76db0b320be34a129b0f6ad0aa56b1af43c49c74897ed0da8f9a5455c84340f5b929218c7f2b0891b5e81dead1d9148a9dce9397674085d7ab3735a199a0c0def3bdf917247b5f287d82838bc00cf7babeb56b00b9c737f7f470374769ab3a26b318e964e5cfe49e54845c99c64dc81133aadd30f0b1fa7bd44a55449383be1495b13e83074b4ad3857095270e2c77d2a516d021dc55f900d54d99f7720e4f696b9c12afa2cf990a6a4f41f32e3be28fba5d4b3dd8b22ee160f831886551798cdabb447b08f5286c4617f67e65485732a09039d1ac07d5e54b8e06ddd8ac1d5160fb6dcb6366b22154b144a59cd3ef76fceabed5ea7fa81a6b5b36590584c11ad304ca82c2ff2c1775c6459073f75055680dbbe80ead7e6bcaf4867d6251b6b75597b9b467d3077272f1034084d307731e5fbea1c40e2d5326e4581bdc3387e2f12c9d7fb31438c002483bb7854d3e3fcf2b80fe44a2129fa1de3fc475c64f6ff0c1722b801201b0b810c94004bbe43f7bf0f56f1b0be5268244efbdb3b8adc85b128f17ce218f01b5a22f41349114b45e1216039ac03de43d067ec7d033df560bce0f8f63360263d8b001963dc824ab6efdcc04406dd70f9b4dee6c129c512ae3e6a45b48344863298c53a9b80e514b9c14bf85c2f76c0ae28a4122e6134259763a6ea7133a594305f3178008d1e9502f070f1e1abd66559a5dfb5b951bde39d8dc444f79de7e548f700c81f5c0e4e419b085bc0bfd14c6f01f342823263a314c834f220dbc4993d29e2ea64653eab1ad2c7a556840a9fb01dfb02b6d37fb4d872714db07e8dcf88a70a834b72902b633ea7934b662cde95430c80967d94af21bf10d622e20a30d0af2ec18bec74e1d8d9d8af57d0031607c9c7a5a +result: pass +shared_secret: 7da491b5623a43ae17160a54e45e8328453cfe1acc692a1e300906ebd2a1d9b2 + +# Official test vector 6, seed: "2e014dc7c2696b9f6d4af555cba4b931b34863ff60e2341d4fdfe472fef2fe2c33e0813fc5cafde4e30277fe522a9049" +private_key: 2d8ba8d5472d324746fd3a4a9f999726cc13871a6ce75130aea07566332c05dc3b99c8626cd69917f025f6898a3112b7119c168bd86e27c6af08b292aa37745f993146dab93b159e9685cc09d750ebb58ddd2615236b298e8422db54b971192d69857d3cb1c910c948544b6270a1c5854936dfa643710b631c245e8b00c42fe15552a293b6f20278d82588bb164eb3636465cb0bf931b77c087a475dc35414c896069321080de41d58644f14143c5b75719184172eb2add8dcc059bb5dac9a22060283b5c87ca05b068405a9e2e4c7cb88941d7162667733b95a76d2e3ab9803b547047c95eb86995b1abfa050346788ef0c682405852bd9bd8f178e4adac309e8aca30ba6ab1bc5f8ca8dcc96291a616d77d31a0504229e206704db130e8b4480822833597d36db65cfd130d4796a254c360dc2799d256eae54b01a264af8020c4422aa837a61dd2c983345bc158bc878987ac4f22e49b21d21d47f32625ca0386637668517531ee2f13a5d0665c8d41ad19b3faa53793232974ec3193f2568c092595b009d40f3301f033f479192d016106be49303a1616347853b107626e49cd14c46be4660883b0b4d7725c0477887eb771e305ee2aa49beb1c00d6c42b5c33fdfa225db0640e973855d504ffa70b23c6c1869ba0dab69aa2cb75a02d9acd2f57f66c0983182a334e2796afb96ab2293751ace0f51219a994b2c5625f1ec7de1891840d0c6f0b300ad5146b5b682d5a6406455a475a799c0ca7c2d89c8bb759fccd178d278217d086dbce5a5946a0d6811518dccb37e898be658321fe262df3527fc5271e7b2b164099042900f2dd44491a72361bb0aef38106cf5ce7dba2316fca7ff2843f4f00a7ad94726f04bcb552dc8b24d6a644444ebc10cbb5dac08afceebc9dbf7910e031c8bb5038bcca34dd77fd8c7ceaaca6321715e639b5ae7573c0a0ba32668245a09aa278b86e2f2118c5bc6e9331063fac6d43c63d21728bb691233337668e7400fb08c54f98894c45a3548b74a7b1490a4b6009a05a9919195c20d835746d092bc6d3c02d2613e51832049631d3dac37d5951d50a2bbc5c35ac63a8d9c0318c2491ed5ec0ffcd0baea679150ab737003cca56556063b2abdf7286e887e92737f3651329235492c7221aaf0609c8b2f54a9c001f30d7314581ba821ba5b344463a88fc046d06a0eb422a524ccac23f7bd722c487d955c81836f7b49329b81231d371c7d3994bc54874e85bbaf278899c544236b49c04c688aa6170dea386d11b840634e75932b01716fb33459e63393f8da1281136f217bbfe8c10a14fb675e1a5074c1551530139c57312b4c9b5f4cca2219c4b35b63b1590ee6e3ad66d301b4609075737ff7a37aca7193d489762e75ada15ca43fa8be146232e5029b3f2a7d94f551ab625b8f963c79bab4123489317923eb54ad997b004ad53b3332b25cb27dd10a3576776eb1d77bfa10a9edaaa42c385cd5c871a4cc37e29a3da2e51683a78c09d63e64f6895930bb314080028473bc8c53ab6a2038dc1dc018c219108087c3b2bc2389e8609c0a8737f01c8dfee13e2014a77f2722e0f60d71f162ddf0c521f434d51a49befb613fb28fe9001d35c250791b0c611425c6bb62e8f60764db8466613486836fa07896314a6ea13a56e2f467483848c3451602e4c6ceb2cadf378d85654a63024c5e1aa3ba242136e5302881274c1316cb26004a549b19db794fac3f7c454fd8223f560636fa5acb56f0611911954131ad94ac88272b6cf4c89fa0635a7a838c38c92e1d640955453ea44ab5a6a0868cb9c071e51705e24a1cb1c4c9d8c59082757fc5cf95b17ff0064c0c47b021b244de30aeda11251fb170efb279154515b69cba0400875c78c1844503d411521ad54c651a738bc32da29ccfe992bbdd937827c6503735116ab5079dc04006fca98a66acb6519187fca7ca935c090bb8d31b6062b34513f01e157976183a1873db1c9e878a3eb37b650205ea5245fcb614887a8def4bb44b89cbd3c221e1a9b587a8c4a50633a9f386e6aa43e360649da46ab688116e01aa75943ce061b362d74ea824870a94cdf84b38d809bea8c994d2e10057b78ea6685fee45548e6bb681a32f5346ad5467558fe6c345e6258175a84edcb32b378ac3bb24e85739681234c0f1633c334df7d853c9d00dbde8a23d463289423536a44bfab94f2c76c113fcb086e5c4cf40193220c40b509065cc3ae5c861212b898699ce1c224a04a77bf165b0bb057c30d9cca16b4dc8128e7c197a4999372906cbf38386d66c27d1e36e8d504613c36d8f655d49750a72509f32f09580fa4518d9a34eb63ba76c063af7cacf158607890380c034e2429e49125c3f543c77c3066c374a43d24a7eea2608a12b845a4c42f7354699bb169bc720b175ce7c0d6e63843f543c0a84162e388fc21c313b3a5902430cab0a61d3e3aea195b13cec41e38539f41c6e22d63f5d60825d7182ecb31dc8a0a82a952b765c0eb279b75d20be877b8fb8fbc290f56efcf5240779bd2c639a67476fae730be123236ea68e4afa9d3200d0db30b7a771bb97fc1667e94cff70bd02f32d6b0b19548b61bff4a43fa5cb73ea11483b23b1394ad5812c8875002be49510656794033fb3150c7e13611126afa639355de9c04de445eb5c7430287815771a937707e88b3c8f42587f30baef55aeb7a392c14a4dc858abb9d537f8043c64100aeee6a597315bcdb65528286e0fc7ad5a59a066725cc965c562acb9d6330f28220bfb35b21cbb4321fbb556449c5e1108c46744e48c578937cc12c20df49b79ce96aea9b231892597b8a57683c495a9729bd7b969f34899116104abb00ee4049ccbc7c37ea5868ba5c2f4a3934d6599ceec340d6a488fc28d84ba371456caf9c52da9980904e253e54332505cb9322b1ce3c1904c739433d99fdb35461d4b3f949c8734904974c5cb7dd54531e86e7f9a69b8c78e137a77c0eb6b1ff468d0b2973819ca6a69b1e640af8f3b35af45183f5284425393472b3b7674503a86592947621dac8352a64427d313d51716ed6cc78bd85412d97561c910f31923361485d138b80585cf2a59a04896b3bd8c7ec2923ccd290c962c343561226a076e7e13a0d51233b68062d0e02512aa96fd701ecb80b7f45b210311246bfb594c5059f25c1167094f966c7d88da77ba3a71d186936f6007cb7cb4941c599103792edc82e3708e4aa9706da72ced51924d19ba561843c3a70f3f91b4ff04987cc4a914fc6ad33290975bc0b534d415efbe43f7d4a4b917723aae654e4412fd220548280b7a6ace9f2f0bc7b059fc103060346e53bc3c3161d884ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 +ciphertext: f2c88dfae11fef0a6f91126673e6f27bf378e78c4e3f96a8f7cfb1a81986926e1d74d0c7b47d9c2454941e83476abf9d9a7e47c46dd39f9cea1148dd5cd086ef9a4431864541d88e3faf97f272d98ff861382e007b4c84ad5a6cbfb01e89f6f869e6e04cc1bc86eaa782b6f0fd4319ce74eadd18b5d911b8d0adabbcc45f92c1d78e4bd21662049bf7c85145d180ebf1ba5ea49a216a1c8130bfb4e4f7a3a4490735dd4fd9db3c7b2e0b1191e44c4fbec765ebb6dc058ebbf08577f24ab2b7f1809baf9b16c5b63b5f63d72923140e477c24990028f2715a28375536d985d7914bdbdbedb02b1696e4e7dd95acd7572b579543e4cdcc2e2d66e64356a07c9a93e567b06465a50fc4bcb899333000d9ace41c7abdb06bfb81d553a0e743a8f36d0d30f675934dae148ff00b96951738d679cbd8b15d0bade8eba5244abcd3bffdab5d03b91f4383e498e8984f1795569889877f2a6920a02b9b741602d84766459895f988b31b678ada1593429636002a67eba87cd0a2f627ba249699e2cdff686c03874dd57f00beab2db22360a31ad7496c510f5c91842aeee3e432826e9b124c3bff3a6ed01f0f8f576bde8c1c81eec09082b94615086024ee3aff8ff87972ec80a0fd319218d8436b34b099987fd4e0f8bb9326c32f48b7c9a4e30b9f24845401de87d212d2bc26f0fe00d1f6273f3af8fecf9e45806f236657e63615ce16949d7ef40239b637dc01bfa604f7c296ce62f9b251808abe8b97e0de81b0962982936ddb9059008d38a1f5f178cc1f08c65b703f78b8f6caa4b436e48de6bdb76ad0cb38ca6a11a1e160cf15d443d2daa201ca450b01e79779d1f7bcf8b88ff031fb815dc2bb3018b609d6249b4887e276cf0abceec216ed529484842a26c91a1b6b3d36bb237c098c90952230a2efa628dd30b232eefb0727a20f088905cb183fd65f443bcbb1b61fd0e6b83068bbc144e5754a0c09bff18c7d20562c1d0afaee00c78dc0efcb0e7890afe8c22751ac7c10693681491e09371d0d8d05778c8152892958ea0790e18c8bd00d8e06f444fc46828d43997185476dac9005683c51eb483ff552028a7638e6a6d08d71ed5c696217cf47a79ca6b0c6194f1ae9b94f2d35c2fbc94495c557e59bb70b0126aa6c495f42f8a5f7eef82d8b87b9ba582956eae20501ff7902c4f9e451aca0ebd84c20c678b149d4f924be9a3953c3ce85e985d53ae3de46bb99cc9ad4f6eac2de214c0bd5ca21b1e8f3992e96ba1bbbc19608e160bc059a0dd1be05cbd41ca51d1118d6d1f2c83919b69cb051a3f01a3cad27b9326e793c69fc13f4c787a85087907fc8a48cd988f0796d384af60029c1ccae91a1824b676514e5d3f4ecbc2a372c9d953bc7d5ab900efb0476f18170fc0b01ec4c17797056752bb912b06d0e14113e6e961e85f758bdb11eb94b85232748a7f1d75edc6f0123b2f4a89c8778cf7768abac61d73c40e8971e841994e69ee80ee4a456dc02f7cff2911c1e13d078b63928b2c59026808422745078b9c361 +result: pass +shared_secret: eeba3c0571fa453fcd9f7f0d6baeb75d59ec9854c12846089d65bd8dadf9f6b0 + +# Official test vector 7, seed: "aefb28fdd34e0ab403a703b535296e3a545ca479c1d8148e2d501b3c8dd8b1034bd986f13f1a7b4671be769359fd2aab" +private_key: 6dfc120e15395ffc3fea71601c36939f3ccb68116ecb66a550a284c09bafe6bc93ee929efabc348b015ad58b34f589891d9a7e34630565751b15f42d93412f81f511ac6587ce0121d32a4760ac0b6c3779c6bb5b4c0a983b72397c544b15cc7aa38502d37132040889c575bb473b0fca1bc1c50815496606bb99a7dde8861fda4799955b1d026535021a01840bc82ccbac7b99f745747dcacbb0ab34036110cba31b58c0ba3273349f2927fc0b32128b1b41c256067642adea66cd35482bebc757d2005b8c5579c5844989551cbb7377d550b17ccfa6bac2ce6012701988ea580435e0533bb5879cf5715eb75c69322b9015a4824b33f2647f0b23b4343940965027ca10a58a8a4bfe883c5fc90f62eccb9eaa3dddf68b0c1671bb249a52898faf3397fe07d02aa723efa27261a44d721acc9c8b6556267f06e872e6888d03463c3f7133eecc26b01b96879c0b5438a1d218820c91782f6b19ec5bb96362c09d1c9329912c45618735424a05c64cddc9c8b53c556f7b4302226440c6909339603dbb5a66a76e0a898c53c700270bb1c375c2c91c222b4c54b0c2848ce5208e18864cec0cbd86507a1b87df6929c80a6bb0e93d6eb085fdc1ad97a713e3ba1470c1c33dfbcd89a802acb9c222052073230ea3179bb75cbf107525a938b49a552b8fdc21c262740a55724ef28bb4d63bdfe2ad28b3246b4452578646623ba78509a286c258e69480a835c2b9820cedec3767e12e1d7b324fa1a51558b31a914d9568bb22e72a1b55714488a699fa705a4ac58daa09348022f0d65df68b8841dc7fba2506d7fb2e137b8e6a921788b5661657c677283d16c16961549368129397492b1a849005917f695b2305e529871b61811b6cd88a535692c48e058f9cb826bc53411248a15c39b2e7ba40000aa9d5134cf2471574aa201e12601662b7d393be919979681abf59136dbf44a1b66704d8a68b23ec2bc1f9525b986b8a640a2f754702ccb321205c9ee916f7342fa86c8f48d817f9f72208474d660b5f23186357f43681d93440aa562ca93d3353154a42a4790a8811439a84a19f8a087b8614c6825a4eebe035b794caa7fa1ea967b63928965ae044f9740bd4986fd3eb78f2d42c76132c89d960bf32197c432452b6b2e117b248e511b8fcb0fd850a57852e071b6567c37263d3b45bd439095ba0572584bb1990c0d287cc826f13468d87d91725586707f1c29c5a7fd4e67faaf6558fbb8990463297d00a196407057316b331cc911911e7da8a82ca1c77159c4d654b74fb89e5597ce0640ce97861f37b79b47291676103d6ec6822770bbb40cb7332b841e7243cb55a934c488555652189bac26c508b438ed6799f2c108d4357096c63080af57fffd17731e41a217393c2198eead7adc7099e1b0154a010816073882fbc2409a678f1db0c6e5942298a5b2088a2abd39b8cfa8b2a7c6057482268c29b88566c5e97042f8866f469b69ae16db06c1657f91a66787e4a06597a6c0dd2300a914ac1cad196d5564864c5a597db2c62f4bcf64c4cab3bb077d331337a6b0e39c03891a64a369b202c1b51330ae01798b3834eb87cc5bf234e7e14b5a419b68c114fb0989d2a67bbd0da491d75113790b3e85bb887d46ec144b4d8ec8bed82bddda538eea77d818c7081b3bfcec68d496035b71280b23985c6d9cb7580568286b405f937e99a8ac1fb28a927940c0a7cbd36290d130a1c23a42f3a437c6291dce36e39e8cf2ea8b9613c1fe7571ac74bcab99bc452b9c5829b586e5544e27432f06ba9c96869f5b1228a0a70fcf95212b0b2b84b45f29a49b6572483807543baa6e4f8b7b40119a5d483fd20224932a3af6869f00c8e9c6c5bf4c53dbe092d879bcd7843475a3110a559454a7375ac0418c37444a16a164acc751f56b2ac97a1158c76bb9976d750cd23761265d16473429c3da3b82eac213876c20d639bf5951e94d939985abd149b99c249445f4c9cd7421ddf21c536bc8fc2029e65d5c7de083296d88bdcf04e38d26dac500ad4457cecf8a795322f45997bcfea18ebf807e84c659937cde6d89fb490765ea9713b768ce05099e7386b4037b961a81edd79add8fb9f8ddb71ee56c349b453d2a3bf22c56730bac0ce19c4f961c008e03ed3928c7d068cb6512dba564855289bdcbc2f2b179dc7631b9372872d05c4e373577861a67eab16cba898beb2ab70c69447a156df0b36ef9c451931b4b7212c8a850799563cad55bc89fb3460f0c56ab434c5e9abe9363f1992577698af0058b54bb5b9a7b42e8d148d9dccab2d1a31d661018182ce207c036ff201a95b755e041f2e1623bef565b01a27d870046018cf65c8324fdca0dad64883da659826bf82721c3712700f435ea40c872b83935bf6cdccb41fe29c81e2210477babe0012cd635079d5932d42038c615a476ff35a523c7761d4560554c8ae0532e8d23a16912a804908411bab5fb96b9802737db82ca0d40c1a3b9913d81fc1330cee7504e2a056a994c4dc70768bc216f66921d93b81973b46352796d37b4f9009312aa957a51692ae8a65d514ab5bf7b46e0964a8f827adc51765384e8c35c900c4899ff30b1b53be227a39fd8b3acfea46bed8832c38555252b38cc5cf750221e3490ddcb80d0d73422ff47623282d273645c316181a36bf787ac90ec326d758ae71e5863c66b914db005655b1ebb057f8444e2689ad91a69150f71000ad7908897b4a3ba94c881c20271532a9653071cbd55669719b5c613abf45b3335d734b718779d51cc5162a91e4f2622a94469e09a41e8a9dbb3667312bc8d5ab7839374f689b32afa5a25de333126a49555909cb27002b18333a6a0d255b905e417eb8460d8f7566b12c99d2900794f4c0b78451777a3789c834c785274b65881bf055dc1875c6392dbea82811e49c34a3b2978468e10ab7fd91793b2856666a7c28473afbb467e60ba603230c5ef681af07c1779c6598a20e051254384467868c0b21ab7d89604153aa680611b767f19956a3b16229bc31fa3ca4315048b90f9f3252c23c02c92a6cfca28c5ad6adeb242c26023b8f76a914f888d39b59fdd1042502a68c0b416e6853e9cb5894253a129a1016108e44aa4257c2b547292642c3ab2c5abf1b5967c8fcb377eb91fef8c0d4daa3f2e04a0f869ff4bcc458f4c118a4b59715c6f3dc25a304b2fc9877d1aaa3af43a512a680f3e1bdaa90c816b95c339331f5fccdc969363977a7b9695dd6b9ba34809bb613862a0561ec25ce0d2dc86f262dc0ed164c2ad357a709eda919cda2c4f8806ecea55c3d5c042d2dca3a3925faaa9112561827dceb0754580814a84be19b8799daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 +ciphertext: b2032dd82ec001fbc4dc819809e198168d1fe4344b0167bea72705c7502e9e562be51f265dd4237c1c315cf8d94fee5c62e9e5180399eb6a387297dffa5e8ad6403dd9a867c97e8240e458cd65ce2a7458104c66cc560c8da6ed08add3c1bdccedd9237fc2893a8f7a95b5ed0866675f81be19843f4e49386adc94cf8a75639d05be7a24bad56ad7425f0c93755835ab2f13c4055b841cbee776ef0167e20170119c034dd3d1307838d96a6072f1f040e26f67307dab2adaccd957541c7416148dd5401118b08ab5a0ebc679c575c9b60a766d9d39bf193f43207968d8c39900b8d8bc452411cb17a6bcd668545c183dba966a2bd777f25856a55593d86caf1c61fc15889b477bacbc790348d6f531f59b59205644cd6754016a05b484a1006ed5e5e113b360f516b1be680e45d70cd18d374a932e26ec41f7eba1869ca7d967c5d89c508d86b575f099a5d61260766defaa8676ecf1dee1ddfdac67bb641c4fb49d05deb7641740fa1a48d3daaae62f185eb157f33296a4ede459c736a909676fa8fe8ff4063006786d7ac07924c356ce78b883b03cd976980a475402d98e94d2e6dfacfca1af7e56f473597b4f2fababe7a7eb58a51e3b8ec5c39ec37a28fc088db7575995368fb0135446f82abbc1e6196bfa8996a9012ce7a44b152dbc6158f00c5e32dfe9e48e7ed67f1864fbbd6ca4d6a53729652dec8d714c765ea836a48b4f6065e3fd6ab90615d902d4c9e2f733129a5ecae9bb29363733f83c2d73e4814c0eb3fc2f0fe0a0da2a0cebaa60fade528f0ea6d3a49e08600d24ee820655fd727f896086df69597ba643b87df8b679dec1fd72b0e5707d84720e64d7d1e0af02caa04061d7cb9ecd1c254b2f28e1f7022c3c830bb5a20bac0031779f485978d4feb62956d616c627f7f4f8e38cdf6f411b2ff9de990fb8770cd8df8b031b5653c7025391ecd977818c463630494d25b7d44da52106138e798206eadccca7ed66f4b53a193d0cdeae21b65e84817fe3dbc1284a24e961daee2b022f575f4476e5fcf45b63c32db6439e6abf13dbdcd3965089947ef2243a5f907c3d95f1a53567b202074e5b945c23d06d203e3f4320c02fc569fa87ce1c837aef80fba4b3b2ffdd3cdad4ae7948374ec8c7c848cc82fb22f23bade2b52eda30698829e1c7ec56d6987dea2741344563043f93b20d029ec1c9fa0732a6e247e053796efe1753341102550b28ba9ac83becc5c34e5a648609a5fde17945c0b998e602f03a9f7904795607fd7202fc08beaf9a12bc6cff261e1ebb285784f41fc724efeb51727819e5e4af459fb1919ffd56a7cbebb9aa12591edaa69c73f3a94164229356b1eb282841d087139f5ef99e7abe632adecdf309337c50f0411f2b5f854e1c7529586c89127fa5c375c4749aa757b7061ff154e65046a39514eeab18faf003d39760a538a517f1350dc33ab94197a40539e8aa1279a3d38c221b28fb61705dfcc54eefa1f40b253b1873a8aa4c468887bcc67d315a753192b42af190021f7903 +result: pass +shared_secret: 8bf57e5d1ce24e9942b1b3f456d184d4c0937b9b699e69c6524e93e140f39c90 + +# Official test vector 8, seed: "cbe5161e8de02dda7de204aeb0fbb4ca81344ba8c30fe357a4664e5d2988a03b64184d7dc69f8d367550e5fea0876d41" +private_key: 5edb8568e989d33924746212f1b7131e5a247c6b73d58a8fb30c75b7161461f7b7f5ba4b38b924484964e7666dbf6177aa2662b193704fb19e60376614bc92e811905a293cba30a81b4401fd067f4185c3a0e72b5cb260aea81924b85105a7403bd6c6ee09627c13ab53dbad06999d276004e290b41720a70202c5f1f4585a68c56ceba1d7b21e079552fc591c6c3bc8f49c089527288ce6be22ecc28ea6bee8db35a8024a03f77e5d7c8c79a825ecc4c002566335e9355c0a91e5ec451cd81c14f355ba3b82e0a29365723ff30cca66a845e849a96093cea945c7d242461a94b5c9595555932ce43107e000c251f13fdbd699dfe6b5d2a3aa3b7662f988c39bf4573c59b38046317c65ca2cd9304448afc62190bb32bee74220b32b85953a5036065d230c2d28c80f0a164eee4b72b599be3a3961a8a70491d4ab680a46615450eea25a2fdb2c7352b7ce36ab05dcc5a933404925854ea5330563b41d477a775679c1f8b3e69690913216e9c479434ab55af2996f6b431d01a9f4d7904c80c666d1cab7e90da6f125e14320d46861bcc11d50d9b21b0196902a7e26b720df911ea80716cc478cce204dd796398d108d04eb31ee3027b8f0197bb89079e87d2abc641d7030923052046504788bcedd194c5807cca3202bfd25bae48493ff273cccc55446b2bde23547c45a36bf295b32e18122a008bac4a83ea05260930061d6c1205498549567ad11ce95f105b6e18fa282bf33c5102e0c18f2f44837980d85b26273c450c5885233f101cb8ca85039afd9e5c9cad0239ec63eab8063a3a76d7069b5767603d7f0921729910dd29c814a08fc67587de5020057add33c04bdc40c82015af9c7a41ce541a4c11832459679cbbd0626a670246104a33cb4d4769069253fc2379835be32e61ce6f12593d453071cbd7df3441d30b8540c4a515279def5c44a8c397bb018e4e377bd84b1c09917df0058bb8916caa26a9417b314a79c536576d97a5d0091787c24154a1aa9f2f39a70577e9d61803be48e2bea7c245cab5073cec1b1403775922260005f43706950a261b99e22302b1e63bb45438d9da39c2ee780e9db6e0b6495d0fb966c9352873a342a914ef189854832ab4dd42128527e9251565ccb21f6646654e6b78aa3466a0ac82337b90ed86dce3b0b62bb376827a5a1b467c63114e597bc7da7016561be00970200f710ef523ca3988068bbbb9a1a8fc5a94d37b930ae0758bb3c1fe98c96f5a90c94aa649a4647135b9169e6b81f18a192b19015a50bd39159f1e8ccaa881e34f53ae469a51756c220bc827546b0b9632d2110b86c43cd1b04c35bc183d68c1837b3b08e0c2ad5920ab4093142738a5545a5fa97951d735aec4a3e090175abd999bb1b1ca1c7499e7c5d46242fd605ce6e18047ae23231c605b6a81b320261cfa0884bb87bca9902ba3b71fbd98c0a97a53989637cd2078ea5cfab93b33b1396028270974b50c4d6c8f4c8a0a610ca689c981926c9013ccb06ac855f229d5a832c3bfc8f78b1ccee078b4e893783934115923f26d747312450aed0731d99375ef6b8291b39ec146d0a2218c9084f1575b11fb4894d372bbca066a621a334086fb392affdf4384cf64735775144c098e6756148a30e8ce75a67137ad2455860252b764c15823c08358c45ac820bbdc3525543a66a22854bcb8dd8e1c920a10f67e9c8d8495865b3bf16c39ab0a86cc231a521f42316f7bbe4d019616c167e88a40b4532b1ea688222a48150c6e24859edd0210ea54e4e80654b86abaaeb52a022742fccbb336921d5807d0769bb5674141fb791c6025ead44c79cf8c1fe80987086cda07546811471cebc7eb7e8a5c554a6cc0062bc6c0b10900a8ee95239f844d26527423c30f4a1be90e29424263663406debab5025e11f00e09c24058f8077cc2313842a5ac74bba5e26cb78c4f8557cd38dc67286d9d25b18f005fbfa852c5ac738f33c24e07b26d635a09a3e3d12c9eaf432a06c4cc88b15ee7c4258b279631a9756e5086145cc2adca624410d58db0def549d2c13caa2d80ed4a088531221e9881f16e39659c3425b31b4e5c0462df53375870c2360b984a881ade524777489b8a184304372464ac7099b6afa24a9545b3ad02ac8b9c968d0b4b6e991cc0a83550dc70dfbba36de192bdb2a2239672f011bc2924622ca6c2c7c4c334ea05db489ca290390e5a18bf18b564a037157006fb9131b35983a9bd285d66482863c0cc4270a32b13e1299328acc2dc4e1812f1522a88177e813a0e6b52f11573873fc512bd004eb31cbe1446a3b3518ae2253ed3204c3e3c36439ab128c322a0160a5b40a27f3ae6121333400b050d60e9fcabcbc82ca7fb1b1399715a23417691542441923750abec3607b47b380835191d6f790a7d08f00ab209a6ba608cc9cbdfc6c8f4cc194bb22c630ae48899a058bae66f3b0cb12a0d2e3209d995010644fae989eb94cae8128585933ad0f7282940606785c07e882031c08a20f4a194be008aae8ae5ce77c17505bb0854579712f7f5231d1c32301053e9ae2a1866b634949bcb4c6952fb78376fc91bbdac8fdf096d1d987db5c71e39371f894adff2a099cab93d5353ba013aef5c58796f906e7a434590181a793ca012a6610c912daca06903b719e384c827ac62e2b2590f82f29d00bfeb50d66815fe13085395663f722399c187cc2784198b028e585b305e6126f6a003b05aba2c0a87eec6b186623dbb37dad789f7e8ba7ce01a792366117c308601664d6b7ce64a03a03090f55c5b59e66545bc0c9a29a29d2eb89eeea017026c2a4b88ccd12c96816af697c5b5f1896d340a60729984857072234c71aa5c8fed44f05dc7defa39cf409b063e68bb28b3789344bce267db328542a5530222203d6d8858e51caeb8c913163a97c0759a1d1c3562288dcd48d164004b08a1c9eb76f956ba5a562a84182caa6417e237bbe4e09a5bacca54a32c76773c84c14401a348108b2cd83377f6470019af3591b7c65bb33833517ce53f7701c4b1b2db8665cf5259b6052e73b41ee2641e9c998df327f750c44dec00ad7bc0ee69992da9455c2b26e4c7605dddbb3ed942542fa5c255b4f9d037a4264939c3a26f8a817d9c21aa958677193c13a3b1b76619a66b2a0b351601a1750ff9b78cd4506e1c19f04671fce65c5c34a6e8141628dd696b3d5b962497ed3433bcd707537ac4715a7192687826fac2fc0a60fcde02f78e69dd3b996b937332ad2161db433ef850b4c8a5bc8a48556a927ce345679d1595b8a12a0e85dc5da576cb9d31e5146967756cf7356926f2e20fc7c1fde9954cb2f593d96a80ab860da1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 +ciphertext: 9dbdea90800c59e1d99410f1addae674dcb4c432b65100834cf0bba07cbef7edb65a2ec31e8de08ba9a4815f004927ff973caaf09d359700caaa7f45334b00d4ad36e8ed5d88e12c7b3297eb2c0c40b625dea0520ba4e1dee5905cf37aef7fb7afa89f0ada61d642d12c008af944677eda3c5a53936bdf6810e16087351658852898b87f5baefb5c145dcd293c621affb8bee2756a74aa1b21b68c2f45cc6dfbe807b361b108af0ec7c878bd342f6fdcf4045dc70e14ed394ff4b39b453b0fec567b5ad743064650869e10ac49a9c18d39a6030707186d5ef0207f8fe92a5546fb4d32cbe6df84b3a7f9b6bbca8a86f87012ed69847913afd448779376f507e8366bebaa137474a46b9ee67bb0795ed780e70f6b67fe931ee0f2865148b2ab8fc58ce52d516df0854618cd97b07c5b1fb2730e500a03dbb633fbba1f49883663c6402066304ee8b34174be6a24c075181af5f06978ec21745fc4501da8409aade82dfbcb9a480377d25b3a6e7aded64660567918a0b3860bc5d71d2927a7289aefa9f5cedb16090764b7e245f31f745d8c68cb60301bbe78f1839dcd2eb0fa0ab78f4298dfefef779242b0fd3ba730a7771bb52c549525152c002a21cd5a221543ba05792aefd6335ae8f5da830452be90fc46c151d656c949f051e911c7d0dce2689f31eb58ecfa3f7a1135a2fa548b323c59223c6abd3a9f3101ff19a67d4746a20b95ddd31f30e4a650c6f0065872372ddd26885a41e43a3e3d7a830aecbc19c43911cbaaef663524945a694d514beebff95f670dd2709e859404fcbb0c3626177605d2a544745f16248cd2dc1c4943be30c9b907012276bbbcc978ba2a0d9d1d247743b7872639183aba6fa37edd6f0dc9cf7c1e8b614517573bc3dc88886dc3fe8e74bb1035aef74016f03102df50a57e9d4c212fb58623fd630df87191163c7643dd76ad27f23bc5801e6af3311aae5a6cf2e02721a072ade78648342d662f5d15cbccd03a1f9cdc35c9fee3b27843c2f819d246cfdea1f9b6807f4873bbde71fcbbb361b2d17dfb699859b26403a25ac45f3ac9187272a78175ed4a9d55047065b6d59698f296f92cad6f361058f400fa9c0770a762a711657da59c020096b5f8c235a2a74895cba8d9d380004ce35ddee9daec03f24fa6755c969fd007031ea210c9c1e542319e1fe129cf5a20a5f3c039ad502f2bae423abe0f9db88edd1db6253b972c92fa65b749aa6bd48e621dd13eac98100a1d8c63d84830fda8e482d69497f49a738a3483d081cf18dad0c62755840828b00bf09d1ba51211dd623f14d7ba83b45a218603cd203d5016725c98a36dc1f1a87a21b83fa70c47137cf2f15b84096ec817e417347a395836bbbf095ef6b049889e88aed5496c36780cb0c2cd3006054c4fa03e3177491183e72180c916e50b41d9db580a4e1101e158e839720563cc3a63bb35491152bdbe8a710bf4fe27f054bf6bf51b22ffc72629711c5486a3c44786f60fd04a4deb2bfda694ff797b701a57c5ba38f9b5b8 +result: pass +shared_secret: 2f714d31bbc778518e2b67d264065d9731c12149cf931211e649addd6daf0b92 + +# Official test vector 9, seed: "b4663a7a9883386a2ae4cbd93787e247bf26087e3826d1b8dbeb679e49c0bb286e114f0e9f42f61f63dec42b4f974846" +private_key: 1e981c27e35d12192ff6ba764b9715bbb53b6afc9c3db6524bf480bb240d905622d8015afa41b9cc78a3f039269c9579d1bac3f6041827e883b3a073f22758a8112a36b91e2e1330d5ea0d5f91a09b7a2463a1a2025425b28ba10d85033b9a8fc3ca7ae949a8b5ea5c6f5b706ed22e949a1d5be2a573306b8e0c226634ae3b500a24b08c771456179bb24ad2c3024c5414fbcea4455cd781bf0fb5439f67285644309a8b6454d76463e69f27870e9089463d9abe0f450d72572fbdd678d6fac98c7989f0990d897913d0d1cdc6a378cefb0e202c4389626dbab6646b00be17377fc027c27f9694ef320b48ca51ba744d7c7c29555ac0c1c8cc134572893bbfbe45671225273db5b54659a67e41b2dcc744ab120917d3c952d9c847b038b53c36a369631493681b43512968069e2c7c140550bae5aaf35b64b9f9b8fd6c75e8063108e7237cc320ad32a8bf9a74987098e3e828f99bc54a5504cfbbcbd36ccab973ce8e4690ca8a37805657af89c6811b8c0045ca3ff373720ca1087259da8a27de2855f32c16e7d7aaa32c761d2241aab42db19353de53a2bd125cdae17468356d63256e22f6b2eeb95bc3b343ddb33164e297c32572c41459e5890777d8623e3a7df541945128004ce4ab73e25763e1236d1a99e5408a6bc59ffc308f2c810b4c18ac29d72581f46573843f75f57986979e77b28355e7bab59a9f71500689d0200589a2da8149beb260241bcbd147af09cb545ff104a603c1e22cae6476626631256e3720705287dc984fd4b3cf06583344011a4975cd490488dec64653d01b0394b413814f17b207e1a9bb5cb1661ba5c7439244267859f1544e50b03911188bee97a12b62052390cacbc9c83c713dae170cf927c8b4fb94d1b0c9da83088bc62e9e112bac46af692c77c57c0008e44c08b737944bac8c15901f2564ba2056c03660e7c6bb25c1c6075112a20338b8b413ef9c7421530741cb0df30c785a86ad78aa519ed65993578e65db2cb31c138ca6820a05231dd56b17668490d9393911c8e567060d368afd9bbf3d9369b6b2aa4393899111b72c8014f1d967d61286adfbb16beccaf0971fb8a2257bdac12b60372a61768ac242df6b575ef18df59c174acc51c26276da960f34219b8f50728290c99ac8c6971c9032c34fe682a58de45e4b2615bdd08ba6e11af9030e1968443a3b08e2877d04da6205a274565953ad6b7fe40565c0b680daf685049bccde9bb6616b325bf11e7069729a6a42544a0e13e90df4b5a42c2a340fc28960b7171b638173057519568a83fba15e40bb467b7e33d9785ae34f9e705f2211137e473b88c978d9a49eb4cca1b5d6b52d5b303a3a8151ab4654544fc791755efc094222ad8beb3057a24bf6f60bb6d876c5f7b8d7e6358cd1acec6254d97075bf02af58338f1a787dd335a70fba4c2ae3625a840ef18b53f8d8a2d051a2be6bba4fa6c40992acf1326abe29b852c7592e052045655a9acb5228b4cfd8c54a43fa2f76ba3fc7b10c603c958174894cc0277f688020013c7352b4b282389d9c178ae1af179c3d7ce495f82a773035b08e512eed8b309a5294b904c46012ad03bc6466d033a551c700624d0055421cc1cafd8568023753735c1bba67bbfd117911d0be47b827ed9773e4d50d8d11a5b6481357473ae2a766156b9a4e74169a1b3cd0bcb90eebc31f587d886accf3027c8f6620aee70741c403e4a72d4bba51af5b1362180158fa5867d25168871d599b04819635bbf096c4980cc336267ac6b956bc861e0a9864766a18d4b8b9ea61a0573fe60a5ce58a87cfa2974cf17d4f599673137dbc662eee9706ad9a85d780a911c209644980cea134545375c031b8e1082b4c201ea83877dcd7158435ae34d52376816719070d76c0683e0c4422750a1959932e88562ebc932bb7ae688c09cb703c6e567e6d898b6e135f483290da271d7ef16b15d12d4e0872ccb05130f52cdef878ea83768ad44885e5a2dd6b2a94493ca519c14efa09e9cc0739354cccb3850cb0c4b504c2eabb1128f55bccdc17c534b5e68b94526aa46888ae970372ecd49a7f03171872633e78997b51ca867852e638215be32eb2fb832c42038624035de54d7f4938ab78210c47bbbc931c336917c9d2a0d58454ded14fc7fcc6f5a97a6c3a5649689286f0ced68963cf24a05e9851fe1277fed36812e5984290701d5bbf138ab76f32b6043853415790a540878c3bb297b6bc7b000036007d8dcc7d32e6b7544c3225c2ca861052dd65c8f1d103103959ed0753e81258ec3770360aa924357315c18b33aa12ca06b24f1c59aad1b4ebc58f3f75b77c1b07bcb9a23fb0019de06109050b0ce30e8d6809c8a0ca70eb56e366033841ac39a6a198c5c105c85899e6403781c72ab30bf1d5917035b9fe50b081b6cc6103b72d423237189c583c702f7768fe43c182075a48828d041178e6a616340178aba89be3418c4e968f14b9396574b370f1c7d2858a1fd78b5351213b7c0a7e05382d0217457ba27a344546e197b22256b3f031c9e6b65ff377be25b6953a4dbc9a6e9aeb3b08c01358e2bcacec80033990f282b0bda655951a2b0ab83ef4459ac56a76af2b2d2669c0239496610a4274c9b3e5e998ac948b3e7427c8b380c1077480789b008054373a7fc65080f3772d1f6626e345bb417c9fbd97add68640dc12028258970cba5deaaaa32c7b022b0183c89b3e1be25606b3109ef88c9f07180c110703153a247981b5b465318abcd0a78ad1bcaa15b07edb66bd77a14b23e84afa6500bdf15b588009f05925a2fb430b0629bb4c2057f8a231760d9255746781c83ce932afe10b8602a80fc1a98c694e80333790b59e67722a7bcc2fcd9b61a56a5a8ea6b85b5861b44b521cb0b6adfa9c84f624ad499c0664aa97270d1a0209897569a64650c0a9b2cac1879e671d9f0413be9621b415641ed645fad52e2ce49f5a3bbe49655649a62baeb5634e50807f737dcef63a7fe0c5d2f573b9bc5914b97f28691f49045ec87767eef405c3b3c8c6089e03268a5f0c530f1682c4c022e3804ade91c20a0793265a45be711a607465709a24dee763ac192d0d57626561c3a6092f7777c8dba75516c39fb49c2353157aaff0787be318ce2c7385101e4d23c043742b9c5ba0d96419e192c20bd426de458585e11aa4d5c8315bbfba129a446c80b726060be07458991e973a394f163e54383d14d420ae0b4746a4b891d092db39b8e1c708768046cb0e3ca324d417302e861358385229492a291da3d601a3f41d29a75becb44d663e9976d61a687df88a8abcc6651446b81b7d136df42bfa03473c84dfd64fdb3b56047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 +ciphertext: 253b79d4c00753c7e617c2d0f419c63f496505e5d1787e2f30b58ffe0ec7d22999e50f1c5e6340eebbf4c08e441dc6569f5871e855e1e6db8f2554c205147d939068da6886fd9f0a6bf6a3b267cf7b50369a3199b73e2f87bac62e79ffc8847872974d5228c2f73413bad09e13bb4caa49624b96fb1cd7b8e4f16abaf591cc91693f014dbf3b9157af87644e45ee7c77ae0a3f8df413845ef65856219e53ce32cd2d6484b4ec97818b00a766924f05111b0d26fd58fa2c1d8de8f9612d31d68bbb3783291c6e28e5f13a5e93078564ffaf254362e52334da424cd82dd608d082074c2f31e581950db11f2921efd8e878ae591e10045469eb24e29f6e6c6d3e025c08855976c69f5b3d9c55ec4d7c6ffde8be339b75dad2cf924e113af854f0467ce7e639501b52000b0ecdd6ef38f6c84e1b0fcf980ddf3b13a9fa02227ccd41c28c8d74b8eefd7f4457df6ecb1c7a9c48dad6b8696d10aafa08ce0a5c12ef12696d50296395b5e88de5dff0cda475b989419bf14f745ba5c0a50286bc437d538e4049c6ce27e6b57d11891e85af7d2627fa594462ec09d988f8de48ee4f0dd2353928cfe0930745b7c591badd31a946e1497ad7dac6738f290ddccaded623117379556fd2e4d9d9a351cfa44d684c84878b307cd760583637eea8847b35a9d119ce9a30cc5d717be934480fdebeda223bb6c188b16827cafa4390adc9e50b52458411b931a540dd3596f1aaf2980097e0da5390803474fc5b1497ea0d22fe346fc3efaefe9285954c82439beefc0134775c2708695ecc7033fe80bb27d8917374b347d22ad56c7117459148bba9d37c5c9de61f2f78336b2fc3878232bc8c9b2ebd5428296008ce5f4ae86e08dd614bc1dcabd667037748310e3a30528613449d8229da41b03723719faed932b886f4b4de92d236a2248d0cefd3c56b5b9d15746b39ddb98baab417ab393d00e55fda4e83c954b2dcd0d0b2ed6314a9169e2dc7c7f47b2935d43a82239e7324244d3c42c3596a45c91b5c950a92fc250f9cdc11bdbba455de56810904e4991f7646fbe1d5dd503ae7dd13cc943a6791aa994748050cb59668e41c7c273838c2f294074a98bd0c1b865c3ac9d7730655cf304d6f00e234dcf51ff952caa586ad7dcb97a27a13b48d5a5b0067a21e73bb8720176013525182d35277fbd5f01aa928d478f0080055f2efcd9d8075f8cbf1c6464af59554361e9da4840066717b88726847b952a49073805a62e8f232a954fb7bcac13e1b2a444c4cfedeaee714c76359ffebe134674e3624207234bd5ea682477981c2b083396d1d33ed90dfc30245831207a38172a8826b9e608c24931d1e64a348f7b2b1511f3beb9f26b38dd96877d210c3484bff64dfac6fef55c250016bd8d427121d0eed2259b59b33f7a72015b35bddc94a473aa5601500483e55c29213023d095c26a06dd0647019f9d0057f64a638e63677cd1ab34ecf9d5f31e801a31c836fac22462c2bd520e5a42e8e0cbe2b6bbb7bcf21224215638ce5b46a2720 +result: pass +shared_secret: f2c29a0a4782d83f2073c7c37d90556b1a005f072f94063d2db8114430f36c8d + +# Official test vector 10, seed: "980d0ba7c8f8b23d0e948a6029ff2659810ea1360064663a8994d0333c8543ee5ff5d6d5c9acf446e61dc464f792b9d3" +private_key: 6423bec1793d33f81bdc6a591ee2bb7d7c9c29e43654600eeb353459a19199234ca950ca5e51b3c8b24c5a96c164086ea746c3b68582ee171c0a03cebac11b39ea6b1c5218025118ba696da2dc9ba9a87d197931261273de87bd360389016131e47b66b54216474cc8c68c6f8485201692a53d3cc06d6bb1a4cb19a69c435e42706b1068c8872412e1520f7a2ef7cb361dac74f339059108277de75ec66b76c7d432f84bc17e5c20f0a94764c66dd8738e61012960b9b2798b4c0dcb213c0672b5530818b82a6bb29277735451147fb4a4a1bac36949227479b74c358c2b3ca852048ac6d52872dc63187bf87f47a2c3024b41aae5ce52e56607b5541e67b9c528503013354038197a86a2cae824b6d282b37c8332a2bce5a30f2357022058779d5a2e266430b89b3fd752cb5ca26ee317c628061c33203787f2865342cb9012158c113e402640d5e900c6db4da9c1162ff9079b482a4eda56b63a626572734c417952ec894b10aec7822121a78150042ad321a70554ae6043a6f0fb12c411876ccb65bfabcae28b75126189fd8a1cc5510a95d36fb2318e96441ba4dc09631166905579429badfdbc6bd7c231c971837ff422327c5f769a1a89668da2669eaac1564ae75e7df44b9586011b6cbf7aba51ce68260b5505a99207438837a2c67b047896f9f64c1b2a54959061e92c8a73742962366c16b72ef3509b11748bb819adbd0b400964be48cb7adda5627eb578933a698ef8137e362308c32af7e93ec744984ac31dbb34bb8603b48965ac93891de258a9bf942c36ea4c8d7c23a3978eb5f176554bc809d5946828b0f4fa0c55744e702a715268b8dc684133738ab9cc9543a74164e9731854327d7361b636069ad00184b5b3ace48900bc0a28411c123b4c79d1a22346a10ba3488732b2a9e194bee742a36ab3c1ca9003a76e28439c6667c3d6a731873150ded546f132644ae4965ecc29a5c961f04612b194b0509b3157a80859c2a95c9ab2b5486b3fa8732bd4c18bd4b806148d64d22f38c7685c9934f7b990cc378106579f981c36d5c99a26dba6df2921c6385ca329127342cae148974d2b2faca90adb629020104e4650acf41c5d85036bcc30581f304a5db46b269424282776b6ca06bb3119a009ce22811e7a004c58b28f6ae24ee8e7499b331749db0aaa33710cc9737ef18dc1994218ca439a46367590086efb839589380560c6cebc4db59cace187700a80508e3c9fcce960637ccbb4c8a5bf3a6d3db865696a5a5e824f91b7cec516415db47d0b706b99a0cf5963875e89a08c5272df90987a7c374de99113b54bdc5063c462011e225f223a377c3a15ec81c376817aabb785ad0b5c2a0bc7e55525dbbb305396319ed108f7fc527be906f6e20b975b9eacf7c6cd574debd4027bf367518a0062260d0879b343783adcc44372667aac541b454a84b8cb6fe1db9589e43950761d82c512ba923819a4078cb620fb750464d10e0069516028b145628ff1f06927965935e5b23592959f9b39bc32bae290a583c24422b5545b22846e42cc1e45bfef5396cfeb544a865d7739cfa0891a01d1c2d36c6f341c24e677a8218640d12cca27792ddf9a488afa799e580ae6b08287fca4992854f318a4dd4188f7f334d83a3fe0d5709e89b4ac382e9873baf2525afb10a2785c5ad09c4b28b311b4579a79f06fbc91378109271383ab1ef7169385aa2e78b70d435bdb604494a246be23b1f26874ac9165ab451355f59686a33fc6cb78464cbd98021ad69c1ed12511ef99428e3b3685380dc2b16c0ab5cf46425984702e70fca396140a95e2c1bbeb245572049df3a4192a420fa52bda254fd55186aa960669f7ae2d69954aba444fb9c6b6cbc42b5ba82e262957089c76f48ba7362d6865259c321083c464bdc992bda9635cbc88ea89726a268a34d5cf1eb9aad5347350f67d1fea925f5677e393984818053eacace1844fc52b43d408761c385cb5491645696339ba086bc733c547546e540ead9b1a7942a0316cb635a856836075d3a87b84b1944a5587cb33c653e44b5bd764f6f8b06aa8688afa0526188fbba82707a326817087ea807e2ae51071d5badc027ddf781483d906259c30ee410b69060e4f47222481cf9dbb2075f330e4cca839b093668b82c02680c236167f3621921b863cab9a42e420a050986d481cabb873b6c19fa34b7e21bc6c029598daa77e30177357ba8b0e7696b692116a97ae2f535cb5208c93611ef5e952e76417fb974879337874f3c56d47a0d695797e1313e2fb7c3c6b2c32167f7faa9f10d18d512865f6a453e3e37c5bfa100631863b4a5f4b6c957eeca3bef28f62f98336c05770e001d8fc4f595921826cbad9825a76048aef2b4d97cb354784b4b6768377342685f87142ab06a67477b66a9457c48a2f779e0872cabed62d6e73278baa3406922f8ff5465af790e02310c9b8bf6e1b2987ca6521c55bbadb249ecc26afb244029312960a55fa45b448397264aa03530b9b56643a0d7cb9a73589955631883aba865c4d34fc5f5a6b8d596cb2c4db2b740645eb0a29647089ea2bc8a92bad95c15f52f5a2d24431d83ac4e701210c5b0ba3f31bd0086e47ab3f7984363ba00041c082d33064f1b27ff26958b85c46612c6556561a2e40600ae14fa70b4c1a81109fa6822c01d0c2786f0e17cf198009349704159866e557947b81928feb459b2337f3dbca2c82162107b5e34aa202b893c103ba5cf9b4580107c1f36b6ffb9ac34c2cee189571dc7f411349ad112d20f35a740c216ff98175563599d3cf6224ba230c2b2f087525059f9ab5b80f63110719972156aa30148bfe4c907b214f683c56a38a146e1c21e688c44f40bca8d4a87d3011bf64725360478359ace455c5e395625c95cc84ea3f0d004b2e3a4a12180a1463a234c4912f00be8324906b3805151841a1f4a5595621d66ca8b1863b6ae4869b4c93e2c6c94fa6af25f37e992cbc7ad23f6a274bec8b537f89b996439b762b2faca39d1f743db79451cbcba86de02a9d8567d8977d12066a1817bd9fc2b1bda75b9d6c78a39bc851654008b266c45361dce46fb2b02e4894c784f0b017428db0ba8f1ae54f3e8050381a90bdb073c186aaa458a2e8c682b919741836397e3c59e0ab75dbdc48976a6a474969356a75e171bfb2ca76e968191d970cd9e43d2fb2843b2a5e9d24cf4b2ca947e01f0c129a763ba55b9b92260c21113c03c7002bc8c6a2c544af711c18030ca984dc584e0b0627b3d23abd9c4d9e5087bcae2bfe6581eb7f9cbf532ba6c0cfd4113c5edd408adcd03d38b12f0b6ac17525c618d6d151a761a9eebc26358d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 +ciphertext: fbdba17a3ec14cfc5f113b833e70ba6bee49a459173a7d71f6914316f042f06be6d31491389cb3d2661a460b91b84f5555d350e19f5725486b60f1e878143f20b6cfa3f9ad19c11d6cde78681efa2d75d9710a6721cc75cfbf8b104928796e5ad870a64688355654893a77ba7caa40ba960a55dc8dc524198b3a029cc9ed4ae7f54b36a0738affdcc523efd1d7b044dbbaf6149cfc90f548918d458e1ade92d771ace49df76798b12d91fab71c0699767b7d2a409e3a20e84c24402383acc9818a896e790d1f78703b16ac73f85d08f9467839f7d53b29696266f654eb5141477352545790b207d846ea55f175302b68973c992b18191bb8006834d249b3fa6175c33bf758215308c20f4606661a8ba0a9bfa754597e8bf794b2d2164d1d9f03da16d0aa8945752d65406c60e3569cc76a174854046c729d7a17de91a74442a80267db0e6ec081f4783c5ba636b73baadecad748792e3c4830ed4742e4820360d69a4ff732c277f06dea33fc765c07a77a9a909683e8c8e908a3a9ab4063ea3342ff69dc971ec4b5d89dc5a33b1e195cd648b6a0fb5d7ff1163624154c06ba0a8aee57bb8ba503160f5196d6fe274bca9b8e1ccd9b022f72bcaa92da257ead51409f547de03a6f1f643610ba9595be80428e1bd73e2125184cc6b9c97242a1f5bdf7253b29cbedac010d497c0512a56e4e501ef17619bd7ddfd929a09db29e3f4a5a3475729beeb6fc2bc9dc9c3aea7eadea3aa4e60590c2593f272f3157d257dad79e3dadc34aa8e740e139ece60e977952cefc808a11d530a22a10bdf00332a4fc43e4e31aafb686403b8f7883d580d0e46fe8c1c95e4c791038718fff25bb7563aa62d6245bc263f6fe0ef8ab63cc3cf8c47cab5e6147a0d8ed990f32e8abb2a79292cf85e5b269040144c47f824331d5446d30729b00bcee6861eb9f5cdaf901f64602dac1dda268b992ff5427fab223c223f0657177f7f0babbd161bd7027b27cb12798bc3668fd27c01f4d465312c3021ff559d9c930548f073bb7a84aac0d8ed509b3b0cb4a2bb4d44303aab75aa4987fae69d657a6c30ef1c82747455c3940d2fcbbb091ed6de1f0dd64740d2e21ac39e5ad22c5ecbd8340e7afed3445bcc41c92e938fda044f4e9cb145f0d5a86c87428ad01c3fc5280c273e6883c4889139a343155aac49dd257a13e3491418b1b926ec8e1b78212a81e313a50c8fa9473cc00e05a414a2ea1e14292c3b72b5706a7753e0e439adb63a93e5905978d3486bd5dbe3834b5253086e15c57902276a3d6f405195c43f6c317aa7a3cc2ef21fe89f3a7b4660f9f4b6357d60a129e265bc708b60ec2a1fa4f44ed476ca7f540ed4495e8ee4df67d6476793402b732546143b639cfa186f37b1a612dab0619cfe083bee29d29f5094697ef1b6781445b01ae64369b738a20b9387087481efd84035fac494af47158509c64333ec412407a549a36bcfe6d5c15b1668b8570c75110daa1c93779962315e0eb0af8c056b031a787253525438bce41121026c0 +result: pass +shared_secret: 13c99ded4db3e6618f5927d58c89afbe83c86a86ac2073421b2560b3f8be5aa3 + +# Official test vector 11, seed: "6c029462ca42ed520f10a579f52687101105e0b90c6e7bfa582a4c112b579d5ad0a0abd38f72abcfdcaaf5893a112bdc" +private_key: c062bfea197ad53bc1f0556d6dc8a863d46bcff5bbdbe919d96c4099627710b0417c889aca6964a75a336eb5aaae40674ef3a3f3f96d9207cd0988cfe76838bac93b4ec866fc4b6b1127bdeb5c9978ab3cbaa6999cb508358b92cb3a859754461bf25a471bca16ba9259b40b3cc31ba8831ee9c95904b9303be152827525db350f9ca65183b63a02b289192a224b781a6b11ce7a40bcab396feae20158536ba9d86568401aa68b42856427b9003053c15d7d36b9807960b94b5f3f366896c59298689efb101c8ae162f4b4b53d4bae816c01a56bce8c1232548007eb887a93703b66ea609869c7155ba0e8e509aa7c29dba60337d8364ab61de403a45f49041e82671ca0cccb5002efbbaf65a7b452a0237f1979a4988c524570815017f794a7bae806a651a732659a36938b86ab36f7536eb27c5d9b72cee990131c1a6b31acce8fb5473cd0cc8fc2605b3c06f24866a36138e1148f50c9a530c24911d031a0f1a2201137ea201eb8c3b788f15d3c0b0fad52bae069818480132992512bd5b57df93b288a6b9a18c3d1f337d733a6e1a7b7780b45f3813aa855c64b004ef55b89da05a85b1c0638f56f6d6c87ebb947273277a9c5392e489afac0276dfca66687709f69bc73f373c929c7cd37c01cd2437060cecbeb1d045671500743ca451f7d9871fe252ccc39c341860a25d47ca90b18adc3af22d849389022ddd3a6e887212d6c9ffeb47da0131f76c9cae0467c35968242118f0f41330cab99a5412642ea0817ea08f0d49380a94952956346087012ac595d85a2339779c956abb2b25fad4512ca46527b54954fb81bbf79ccc0801279db6d57d5c16da1374ac841b5b441be3944003c30a90c56ee10239e746ac6fb867a50808839639af13f36d516b5056605236f57572844d657ac209135569455d2349ed67f3715902c4b5894229eaab63d0ba964bbc6884c1b57346caae6f1bc953b62f73827ee67468644ac383128ff6a3e97ec0ca3689a50ec5aa40392bad95e88e241666b18bc7092f01b9c7b3194bfa77937839ebfd2495ff29cb659a9374a8dbeb51306a21553995ab9ecb83637bb702365690812c3d18196ea0069ebba9f952b6b468b0e9846f4f7af8c17054189cf5c2200140ad0551697387842dc20a4eab8a1f0380934eba5c34113962c652e11c97a0144348c3218d371380c476ce987870472d72a38a2475539dcc545693d4a17af010a8ff93873dc24051f7a69ee7c3297ca508c3229d9d215b95b369d4126862a03531bb1fd7092bba391d5541eb962b403b50565253a1b91c63901269d18bc41003bc75c876a277adbf709def9b54447641f01027174334d963813a678cf7507b5562d1028a63df2411f6a6d5771c60b4a26f6ba1971943248607d9ec3b72df5b98802ccdafba8a7b0661a662c87001c3646a888208cfd68996fdb37bf9906ee99a0d09693f30b1c924c919de4b7ae0359b2b159d648bb4fe41d197c8d8444c530995ce8c3aac17637f699ad24bc0153fc7572c759e741c1fb71982fc61921c4515fc260afc58fca4a92dc3b9426f717cc0b60c6535d1f34b4ef858bd12677eec80451791191148a0fe00343d0aff44250cba46b9b6263594c940d40b119341d9e23062c693509304bac635f93f91bd48b362989751078ab995408ddf6787ceb3f99c6802aecb703581dc6979c4d405dbc80a985f991f31924383428d4f5a2cad4acb5f95408a3406ec53425f175651952f5b76acfe2a465b30c1d56ca0e53953dac0ee2da352a687441f45dae26b37ce8008a99308639999d325ba89585656a6d59f51d10e46f93d099490c2385788c994238ea1155ed22c96a5c5035a3488be1c29e345ebcf6b1b7288abe95c29b272a7817704bd31589a42b22053226a43329183f6160105ed05e73203d172354fa176d3fd084ce690a8b6a4cef4035a3e06bc6464e8c913b88a48c81e58dfb1267ec6c1462d93433193e50d1b2d3e3828e90b6a412c1c45668272307f4b8294f37b84857bdaac6190706ca31380533c30643fc319c866534562036b37e825462c8442641c7817650333fb02ed6a2bcd6c1ad0689001098af3657363aa1b689a20683044d15275d0fc3c9aa720c8c4c6212fa70095a2243232cdd0b0fbeaa1c8e7b45ffc2870efa9bf56c8ee86659a618a0a96c42acb48ae125af911558f7cb20c9cabc4554c8fa6c70e297625286456ee625afa756145c41373ab4fb59b2782b4a406115de4966d07629cf8cc2283b4307e6a058db3dee6413aad72f89a7c1ab4131d8ea9df020b033b1473d92c4d89aa84f044e429a43b4e22fbb693a694bba3e315e78475437387b78b33261d786288b20440c44138c84f5592bbe74c1c2ab01ccd1124394082319780b24c593149cf660946f75a930f0a8f93a50ed01b5276ba96ab6ce5f794e638697ceca94d80585ced04310612a3c6cad80dccab1c1cbf5e08b2bd6b7df8c4cde4c4507a56cc97b456e10050bdb3acd6a7e00c1742aa4710e1674c59a8240680d04b8829752332324490ed6139b550c7a832862b2c831d4093db2b256f702850bba03053fecac41a61734229b2dba3210eea0c1e8d9a54c915f54b32344296ea64855dca92ab81aacc9e73153617d8464852e8208904ace7b84509b2266f9fac55bf68378d98d3fbc0a468543a8944b9975637162a4d50c7fdeb479daa8ba43938333b897a12c224ed1c790f967b2d9708c6b67640ca9ddcc1562613c2904c6f3856d13d904cd3094965abf1ed32ce52b7dfe4429ee68a8a3ab03446376d6da1de56a7a7fd30688f513fadc5627619a99d191bd4c0ec8bc1933c00757ab3e1f5826677b5e9bec2b151058bd9a6b5d2285122c23466312559c89a634abc2a5a11324cebbda8d167880f6d59bc5fabcc23487eda84f3543386e0b8d25422d5051816315532d2120ea4723809509bcd0c2edc1c93c275ade244d4f5b27f73b0941820da0183ca2b7af8480c90243af6334b36af00bda4c1e5f50463b8c350923b4696b7eb733762d189c9eba08c09050a4946388d736ee73c62f47cdffe453776730e88531f07abdd8699e8bdc9f05bb12f275c453866d46519ce2a592a1052c1e0c6b8f093f53a057d6d1bcf759abea90883eea68c5344a0ae96cdad42f0e756070dbb496535b9e7325c02badae5533140b0d9e013c75013ffdebc855734aa9947f1ca4b879c35b32c862c933479d884b2c675d3e1bbd26391d7c429db547041502307d975aee26905f7fdeb44f418d3d1fb5b081a3b06f87691170917a1e9f3c2cdc71c5534bb819e61a9d8a257ff2eb29598ae92eccfad38abbfc9bccde5ff95a1c812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 +ciphertext: ba4b796662f059b81f900442098ae7c3e5cd9c614f972d4237b2d968a3065ba203a31e13cc8c993eed58ada9b4f443b605ab5768cfa0f2f18d15a997ac911da943f27340c26082d9e2a14d5e1c7aa180d0409142b607383706b2ed5eb6ebf14cf2a18e8604d692d551ffb4cd6cee0b43648cd88a44e2735099de7bc95164a21173acb6ef167e00d16b7e16fe950614cb738e54eda7a50d6ad2579ed6bfaa65a9a84b9a7cc679e41b88093d42ec70683df65e568d5139561c3d4538c50946bd945c02d5272c5ca3d14482fe3c3b09d52ef42e0e521806cb8e902a7d7c25f6526d32e0ae2f585cfda19abf0364484b628669d92546eda69fc6a60845bc33c0454fa631bdd0630037e195e79bd0e0c0b998fb13dbcf55f2fe766f53cc740710f72c98156963b9e5c46a3da1430c00b05251455c984a9a28a5ec47aeca9f04563f21db0b5a4c058c6549082bbebe17542247c4b9642051c39ccaddf10bb0f9ea4a7331f7c7236f4d5664fe7bf04f5a4ba41bc954ca5424167b6501d82afe234b9bb61e22d6767a3342e8d380e9612685d5536e32dd26ac50f2658cad77660ded9f58fdbbd3db502a013ecd8c045cdec7732e225d5ba217dd9b98db1b4218a02931bde33115023d6bf1110f9f20e81acf521242ddc7d53b819ec0a78c3e4898dfeef5f1df1e75c5a5c208a29f4c5bbf40467559c492112652e8c742f9a4388a70fe499ec33f818a3e8e0822936c912f9f83a1b18010e3b1b2646dbe814f938abe76e2f21eb814a94f54b52704ca06c21c492a8eaae7fd263adc133ae4478fa32e3c0e9bafeb8021e3c79a1c695195fd4f089e1cce7ce6ca1d80de31f3810d012e538a39e4d1ef85c97aa1fd8f46b4774f687b9a803405dab5406d66a3979493a8aa3d49a1eb9c89b38086e154fee3b358d6b2ae9232e22af443268489cc44f2ad1536fb116c1906db03bfe9e8f0c79dc4b59fbdda7b1afd82ebb71f23a48d9d3910a2a728cf8ae1e9b62d56897e4e87037f4b79b07afab072248b7a8f67dc1940bdcf893cbff906871318304aa0e206bf30a16556773c656d206d85b3751bfba156065594bfa1a2c335cbe588d31648127e042a42430898bd6ec82e459612c6a354df1aa8819297ba49e40e97a74b177317bb76db3fd0f72ab9a62c6606c4633bf01153a64319959385aaa13a34dac6bedcd14d23c9319cee93a26dcef25ca7d082d99a0a9e2ab02c05fd2f316f8caffb0b72ffe656d6dd079372650b749d63847e29cf3401e59279bb276fdb0a4dcaefb217525b46ce9889281e4a4bcbacad327b160d833e17bf0b38c8c706854fa4f2e0dab16d33ad120d300e50c8f9a076fbbfe35c07753189b7d598764d24cf7f0a6aad0f0c63d36445cd62fa38989c215004f0f02a8a09a974619b208decfd60fc6a1ec781f426aa75e736c9ccb34dc98350f49e49b48430241f6798125110495d8bc79ffabbd3eb91040197124d6f80c9007d2631c8ab55fa5a98488a30ac84ac65a8c463fb49f8111f337231408daa73f96e +result: pass +shared_secret: 83302cab48eb0832bd8df0db3fce81595754772e4c951c444a1b2ee9f58c48c1 + +# Official test vector 12, seed: "db00120937570d62331f4c3f19a10465231eff46465cdee336a0d46aa1e7493df80f18617f9ffd0476cf7784a403ef4f" +private_key: 77996be8a7ae3546a363e340c57039fba8113adacf805385ead18c56b75320cc714072c4549a225c86ba31212146220eb217133a70c987e3819ff1b6364806d6750b9e293ea05013c1241e0760537d867640171741645f18d451670007ad4c971dd16dd3c55f8ddac186f029796979ed9091cbab1a46d093b1b89265b7a5bc81459dcc638ef08aa0bab48ff95e48c725fe90c8694274aa6365ea4bbac173a658bb3f2e646f9d4645a914b70cf92394586a3420c60ff2290217576c43518e1088b703cfbc3a3837794706188b5772c03685c43a33ae27410aed7825e2f2541ce67c07f15a71a5910422be6ec94631b1b465443b7215c30146c7049076ee1418e932c2a4061c1f1044b7456ed355851c41214ac25723ba486cd575b608359d2a948d85895eca59dab3cfcbb6a366815dabe7323ec05ccb9042c994b18335077c67187f352ab30a06d1d40007a1636af51602f936f7694a0da510badc59fa21b3ad033f9b03103f6655feb646f217809d00a521f6227876263b8b7663610f0392bdb9a5089362828bda10667a36af12bb9ff090cdbbcc6b1ca0e8259422f376a342944b118f74960f3d322bc11b0010ac32c49584003b2c66198acb0239d7a55f7aba6fd5546efec7a27c39c658d15332ab36f2988754f86f51c642fa087bcc935219e2b35ec7aa4194bfcae007e465cffa530c6b9982dcf98924f924591b2542b34fd28057e189a0448841b121a39ae17ea5d7101971b26301c43fc84edb0b8b0cb35d6e729955208f650610822918589c740667cb31b169ac104160647f50c77924fcc6ccf95ad81603aa8481cb4bceadcb3a6761b87831274dd8c5b6a7674f0412ec341589c303d6833fd3d25fee059c5ef269f7a910b3060fd60217c7a83a75c53115083fb68a9ae2da8f906c13522331b329c6eda84ece980284d9bd405b5a8ccc821b8aa99d49969871448d3921cb2c8c8c3b4e34ec07fdd299c532bb291329a4555c257a842d93badabc414778c76b7293e369597e7c092a3020ad72b5335a93cac4cd74d51fd3410da6caaa98085d107ba0dc3070a1284bad4398ae8b9acf58992397c9f0f9b2ddcac60bf539d0253d2d3377903a6963597298f97a82bc92f7160282e25387f57c4629a0a3482a563a0b1c776c18870b26e289b511ba601884864787cd922b84b7cdececc21e07120a9c5f23e5aaea649eff523ec0b54fb5face103a1a30714f6429421dcc4c3066abdcf33356c09109eccebd2a68acbcbdf3b162fb9a7b3d1c3743ac47b5dca488c561caaca4b2fb1a86ab91d00a65e97b213125836bf4190549c300f1a010515f0cf3c5acb2bd10a20851078df28999c831c14cfacc45d5872af85800431d350921e959a231c64103f332bdd55b3816c150b61defa324f7dba659e0ca30b9bc6138abc707be19a476f857ab9226cbd26a31e9f6a06d72369b6b5e21a7bf76538da8fa06fad879ab62c292a44e448b8252278eedf1bb283ac71b93b50d592bef275749c4c154bb669df436f081785988c42b99270c1435af451030fb08ec871285a9720646acc3cb015f63c87cc0bb74705188e145efe133b657a9cf360f48dc1e2fb11163ab31c6613a51307641e25662032561926a6380b6d6d90aabc5617126aa509168eca264ad67c5cccc5320c138e4053b4376924e6cb250b3a61fea8689804ac3179588a29196e05d0efb6915b3526d945cfc183dafc40d46537d907a292cd63b950659ffaa57e280ade8c09dd80655fe45979b612a6c6b1e350ba0cf433552e80f58c79d91f5cbff0717f3161f83b3c59fcc021bb5cb1922b0fa3c29984bbfc3363333f561dcb99395561590409fd7b56bb7db88e4162a61f8a81ca6b55af485d9b06645c42d1f706e9ef2b3d6e425285b4973202d46f150fdd4a6bad34a455b274814ac5c4053d680bfb4816578342fad152b798a1d592a3c88b45bdc275c45a862179557d437304151548a568159691282bc08f9280bdaf30559a3a177e6b8a62b101d8342c9d72452e05bbb1634cc1a7465e479f100b6f2952dab8ac806c27a8c555ec20a995c25a9ea8c090261085bd65c137a630e787da7a6b039c38573006c79bb5c20e39756e1a72e2c016f6cc997464546283d76543d9774345ac619f9200c308c25cea332ff25533b7983db495100f24a42e4a8df11504c4b96c017871b5a594e9c0b241b01e066043d07a366e343a08ac561ec5a08168a1c61755d5c33bd693608f42e63706bae5cc8c7f47aea360093fc78045517be49566f35728bd6a8230984a5e21133b63a9cb4a7fab4befe053e37bc78900141eb21189cf2abc0764b3cc507382c8db2320ea49c988c5aaa7ae896d10702c2082a59c3a457f382f44a1f2ce5b3d29a5a08d047537163916c5f6b22995541b87e1904b62a3585429d938a1b37d419bfc533cb918a424b5a1f73a65a8605edfcbd00678b6361399ac794f2cb0c9b26939b09baceb79ffc55aaa528673ccc4a5b844ad0873b4d6a31465cc479c30273aa2edd362625512012f83b42d52781c3bc947872c78378164cb0e077cf9ad87974c75ca527aed41a8b6993073d711c1873965448b14d307c5b218717b94ca27b354ff99de1f581e9561ec3cc196d1815a7a60a8c9a94cf4354140cc5e3b98bfdeb9c95c7c87182b878ba20939a0280e2c453567215a15803c01f7f03bb0b90741df964c4fa02f1007c466ba6b8f78bec07956611420220499a013ad3e3a874c4ad961b02e4c27a9ae71d57377dbffb556334797ec28c701c220129b856e747b90aac0803b2cbc7b0bb428583b810efe1727e0598cde9681429616c7b3f8bd8b691841a7a5405ad288f77b652a49c38eceb4088201b651a5c65bbc05e40a7a0f4151eb0962c34b10c1869a003cc4cf86d39036778b3ca32d0c500f7918cf027ef920b3718ab1c191618f294866b2fe77bab8c84118ce55157714ad2d054102a4d38ab73d1f3967e98351631582545c5a60b3aad50a7852c9d43b945668bb8b6781f56057ec058b2cfd6310506133e38b75fe3086d990d92cab098f06cd376531bdb8308e5a4d2e323c87c36e7ccaac87b00a7d4cfa3b3342d74a02d888d702cb44bc31201e41fe62c7511493c068a92717cc5513045bfa197d7f83db35798354797cca7891392ae9587245e92974920551d826101d44d9f73b3113746114ac94b8c8e291892be9c8015a0114ee44e26879c02084b0192194b922284956a8fc2b26e9071847fb901fdb6603c3bf7bbf5297bea11539fbe18868709fc57dc4d46d7d541594b53b4aec0d9f86a6377c63ff80150e40fc5347714c07591dc71c6beb8daaafc8e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c +ciphertext: 260ce3c51193358dec4426f6883ce12fa323c9c8e0dab43f69562fa5daaa585e720fd75dd126b0d45bc650abc220a11d6551e3ecf31d407551ae591cbafdb1fbf7d2ca3674d8a18b6887b5b55aeb5b47d5d739634483624207b2ff32a2932029f1868da248b0583b32ab13b87c57482bb2ceeb6155d870676a6591bdd33e018d9bc2a8bd644ae6d54bb4ea81a627f9b9fa74b34d359575e0307462608bff54c6c78d0cae95d223cd2c0b663eb414007c3ab47d57dc09932461d4b93eab0e557404a53f99ca160c8d9fce51483c68e1f95b10b11a4cbf062dc9caeb89c4199d5fb160c8dc1260ad21cd26319c95a1c3aaccba6f54cd8541bb937bdcbef82b657949e7dcd586032ae3b8b47e619884c78af2964167869738fc415a19bb32c23098b9b63098d8867ab98949feab0d9f2b1a44a79df81f51924c0c151fcd1356abf64efef5a1b1adf956b99efbce9093d4824dc58fd792613fe8234502d00062e552d3cf5d52909d980345e2e89fd42aedadd6a3e9861696fab590ae3c5e24e7a1b7cd40a3286b457c269f367f05c00f0d4610a4fb9b493ee9397181d669a143aaa095f13280d896d1c8746164137735f9d80b34577f3479501d3dcf98d9ad98f8b647ee7eec41d755134157533b9360a65b5d06955ded2dad2e6b6ae721380d3784f058dd92e321730b7828799939c6cff15c3b1e9b809f2e9bb630fc2f407b1429cbbfd27529e96757c0c9893e8f7c9a1a815dff37075db39aa30ce1eb64531004e4928679ca642f9c6448c67a1c12d1a5db91a1e5cea58da7cd7a8d9322d931f5bb5f18badd4a5348653b49a75734cf50640b7ded766d90f789325b95bbcbd756aa6306815673b3637d0ef9d1a61569371bfc84be0f804461d60fc4bc89c1f24f3f052b8036c4bfb72bd47ae757a8a3117e9ba562916d05cefec5ccc2912826e8ad1f12c1b0bd392ad3c22974e2549ccf683f01dcfd279050c9f6308398bcf9d3d7cf4ced38a65da0961f6a6af287af9519e3b0ec515ee56ae728efdfb0dcd02f6e352dee113bdf8edc077ba76817893e993133afa2913ca02ef4ee35cfe9fc16e4a140ac458cc0fbc674cb8f02babf7a0a2e53a8ffa4519e4d42eb372733d9a873db6a3c32f94960ec10193071b5fe625c0bc3764d0d2177be6e8503162c5b55fc2286e19e9e2419517b9a94e85120ece63dd7b7c7559aad80b544b66d2d3bc8daf2ae107af3228041ffad445dd66a50a6028ce0f5bde1e9f917c1bfa967f686c1428185be75218905f16595cead325c57746c6ed3502c6e8feac826535010de14ee30ae060a4abc6bda346171f8fb0d85196a11582ad6e30d48ba43356b31ff1cde5101e3002a91fe4c6e7b0a3b7e70cc1ffe1a5b9859eebc97c5d6af030f1e4a34b28493feb5021a9f9b304478aa1e8b0e6877e9710911ac6e04c3596a0d0eab24409ec26e4125251dfe38bbe3028118d6e079096616405059f954ca5a67dd9bec97d9fc75e4baa141b1a1fc75abcece72d1a510c09b07cff4c7d59a304778 +result: pass +shared_secret: 93ce6d06568d795c2a28d1196f53cbaa2cb05df1427ac76f44df09d479e14241 + +# Official test vector 13, seed: "bd26c0b9a33e3b9b4c5d7ea32d5bd1fc371015be163c86f584e49bfd5362c8d8341161cd1308115b2a03b7e5eaddd418" +private_key: ed1263888c6658d29766539e247cb2ded8bd4aea61e1998c090c96c40c513ce38507b3c1c171131ef280496b0324907d31b2b1d1e53ba4e2b3795c6b756cb113bc64dbd0b4f47978c048892f3a5b64241c3bbbb9bc7c593a8865f4923097180352d9600636b8f639704ce868d0b5069fa99a395c30cdc4b4ce3807caa07130cb5864610f7c5a6234930a8a519b3b6ccb63c7cb898565791b8a32c594fd826cd283cec434930b0161e183065dd48cdb392f0404120dd86253906605284bd8d16970382c5288c598f3220504c4bf05189695c0f8055a08c062c4889db96c1e960bb8eb9009f060cbd9818eea119886fb84592093610371a09358f351704be5b7ba18308021afdafa52af2a4b42b7021459318b15aea8d04d700766a00428d8d3ac383a3cfbd03e49a8ba99713c7191b61422769ef5594954a4d3f00a0359482de59d0b9c18c787aaf8bab676acbc9cea9cfca41b43946b52b262dfa8302ce58f749260dcd65e81b7055b660d9341a67a352de1084353252d15e02d2b8bcddedc11bda1cc3aa46ee307a1fc29019182b9d817c1a3d922bcdbb2a8eb5fc2370b9d1a36ccf94a5af3b52ef094cbfb63ca590e24e43ac2e983b7760a187714daabb7a7d02f961c3452298b0e93614a8baf42988721965b4a7b1efc3b5b6e1968e927ce28e08bc12cbfb3d23ee095836aa5b2dc941ff1e0568942b8a6d6b997ba271c37b25d8b1147e6515ff788861b7e3b454d5e66b22cd059a34696b430890e8a9e0007cd62a1bb1bb0897ac835dc26ade4528bde16c8a00995fa9362c17981c794793b199eb348606f68862fb29c1fb154ec28314e65983343c3897499afcaae97752616c87076a00d54eb8bee6b3bf5e5be83bc3eeb874594147369775d02352936e51d801335e0a656ce9c12eff64ba0941fa6a563274ca536c3bfe9c2662a39b4c3eb07482201c93c50c95b823788606e81791ef21b27bb4eece135f1c961fc0095c0dc83b5226204104c7a919d5b3489e4f8144ab2c0045b72ffe77a509a6cbd8061da15371c03a6d028cd88f13494e8699aec9ec54291c2e16f787718b730c7cf436844d7bce9302aad448c01213c1d14844845601dbcb556ca85eecc54d426621d846d01e62796c011a231652904a8a9e7a73b5a87dea3afe747662bd696913cbfdbc1bc31893d89f4af3ed249ad946b7c2a31c8f35a7b9c8ff01988a956634bb06329e176d2e6c38aa3c8ab27b9dee0135962aa08a909ca8196e8e626f123bb3883b9d86c23883c9dc9910cb9e6805c5859a0e08a7af64d610a332b30cf41871fe8da13b503156f6c031ea4a5c33cb5ef9384c8047c58532cb7da4c9275176536a5f4ca0cd6cca9b399a938ecbf61eb3dcb1660b160698996b3fa21714715299927723f3609d11526336b6ad0c2cf91491927d07aa4e0c7234c9249803a3f43460ac19597b4c47c9c4e64dc174a8241a913aaceb8a431973d552416e3115301a969c351ac9b8c798d83cad6c925b7d467b132071bb9af4a3c2c6cf6358101a620f857f6c55a9fa077ae25455ff1249c562ade011ac64b659d289616284259a2cff5144558d1149671b350b18d0cc20f0e164d47a8382fd07d96232e39c0a6ed7c794ee05d9b58740d13cd78ea15867a5c3cb14051223efcb36969430b45fb699c26caa918c3d9041589a1bde4484e95859a700c2510d6380c2a323e34526e22adb44a862c417b34d172269b32430c6b8a68cc3dd2bee2447555c82189e2562aa82df2a40e33b91d65b60d0ad93b127294d71002dd16b35701670564b1c07436dc2a001c751765dc93da79aff6177e9795b00c5bcbf66175357174032a2a742b3587e35f055268551c57af78090044be4200302fb0b16a40b80e092a1933bf99878852342cc6574c6230a9460b08376c42c51a48aca14d0e59294f3bcb464a74c0a296fb0182cef42b25b58711c6cc939c9e02c8302e2499640737ea07540ed89b5335a05c552472172e8bdb2f40c49a5b0295ce99a0f567af39169313c8b61ba77fd2143f97cc762c8b6be4c13300a8b78dd06011c144a1d747e1c3825cc1674b825838953574e8b6a16b3dfa8a05355c8977006c649b58d9f0ac2d704f774817eea95f6da97ab5ca71c521a277d9618881563f47792d99bebc73a74ceb5560070b75c3b8b2e2c9598195feb08ebfb5cb1d86a87f93465355a796520d0c24744c7b852bac418fd620d060118d135947d9b174cca55444096ed97fd6442dda02b4a3364732c6818c39a9d199b4cb5a4d3659c8c4851d39db9301047370351c8dc417bc1b86fa50486e759b87c4cc69a8a9ec282909c40f0b7ca0896c01f7221639b18fc3145eae4b4b8252b4af720f1a22c1e5cb980cea6b103082b31b0542ea8d64d8c9b119aef3524cad116689280a51ccc08c09a8c3313a82a581b55cae6a394efb5146ad9884344ab6904c7d5bcc75729a261239c76ebc83e2557f60d125a9578fe0b4ac8d57b08d729a8d86647708483407ba16344049f8b842496a64f84d5bf42540429ade11b10f567eba812aff9179e263a2899b770f8b3166da15bce789dee3cc7d1846f3204b26933d4803b74c3c3885748a417692f0f5ac2733804cd2a98f45547af8ccd28542ab3062211a51f454b28559c28d0751c5c6c31045a8aa41c79cd1cca536c3d6a779afd9175a006b663620bcc92b4ddcc92b61b88bd422f1dc7962a70569dacbbfc7ac9ce90f8d16c3b6973ab3e96b6539a145128631c6993c776fcf488f4ee692772645dc2cc1541874c02aba0564a46176005f6ccf2ab27893dc60d2d44ce1e5b6e317a38c032ad98bbbf79554ef2882fdb51115782ae862c9dc79a6a8293a39135460f96329548507d58c39a07ab9aa7fe913a7fbe4c466f693ee1006f6091346a4b75a2a506f6c787cab948fb76f4398b2110781ae27644211476364abe4ccc2f0ac6cc4e917dd391bd0b369ba862d5f396d8627285b0c5d9b3692ef8069ea601e6e493d841755cea52194b32b5f787f15a6478db7b6b41336000d2bdf3270f8f0aaadab89325b6a3dda4ea88021c8b61b6ba372186321f4f5575f2508625685db168830063860965a71a27ce34a7e934b9444d411da9a151b27b3ed738869100ff19099f0c2a8583b872c8a0745e455bf715b8f526cb4f378fdd931c8111d53a97379ab1d57684224780690b2c1b36bab3b0762b8fb6afcf39cdda151607a6537b985c37989299414b4c9b1894c6051242482b42289ab24793e2d7af2ca0cedbc27d0595b94c698bfa000840bb2d63e1946c2d52d0c837eb40dac0653a5e862d9fb8b832629cece9eaeb6d5feb48b6ef5da8aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b +ciphertext: 5aecef867809431a595f27d53e374f929c0927ddec2188336929346daee5287eeb67c5a916959b428b809e5c8215be769d63b7cbf828e3812a25818677109df91c1580d9a8e50f0875693123e66b7cad079584c20230ef01a0d0fd7b9ee936ff65a0261d25c60e7f9bb1b51ebc9d6cba815cc43c895661d355d12e96957acb905dc4eb18e45b46f45d23a35e8d0b4d5d71c77fa30fa244fe60f3d716ad8c8afe1781caa0668a8ca6ec94a1c31ede99532cbb042bce0a2e5cb13892e47bf27bc5d56f3ae0f156cbc5c90a290d244f1d5902c6234eeed11ce3e232cbca1cc29228d4848bee8fbc2ef61debe22518680542ff824774e38ce3c1d0225c6836785076a651653313ba74fd8dd176c3f8fdf4d102bbe0a5844d0e73f87eb04e9298e61eb8d18f335917e0f9610c3c17041537197c7041652aa39f7e06057d0c12479b07cf431308124ad8d9b22ddaeae2463070037cb14025e0d91592c8ee95b4e792a257aa73f64120c6c57729b4660f4db798087a053a40e0a144829f64468566c201264524ae339cf33d5e3e7a0a7a1f9ee75ef234cbe213db87807ffd3cf867d0a75bee8cabec8eb9858478f4470e04e7d36e54dea39e16dfd6fe882639a7edca290222db1d92d5c7207d436ec20b6e07a25e9bb2aff7c9a0629cac7121144e6666919258263d6052069747652ee973ba4db0bee6b28f85fdb3052fb6a498efd7fb82bcd2b4f5e5693d6462658d18ee04966b0d56fd1b9f560e1e29f8cf80e59f57e0cec307a9c37e7a578b98c5137982b7a085e67cc741efed81f795a40f550a15d1bb621ec702aa642271e5fc9a4f7d1bd44f39ae0a014b4792d4a8602c1699eb27c87e190911918d0f6e9e887d2ee3b7af9d19f3fe9e6bf78aa141d66328044cfe286affdbe0e1764fc5540629112b016a1c254b08749cbe45c10d1cab7991eb820167574fac5b33d971467fcd500eafbad1b9ea430a9d03971e0fabec59b9236e73ecee3166aa19d24115d63f698a1791bb6fdb4889c8e85c4bdf5f3fbd7ad66d4c733dafc073e6d5c18470baf3a685740f6f7aded2d39ecdcce03a0e097d86605fd856f6fe0d9798c1aaeca7ad1f2398b53892299797fd78f46c9c01654c91c2235110307b8f378a2a42e2970902ba96cfb25a307be48bcad1123eb0b80dffa628182a72d021ce9b26f91424ff400700d40a99d850385872d92ce7c19f2c41bcb932ddd85ea20b3eacf414799a6175b9ec819277481fd9b67b791c26b848a0ff91a8f31cc654921d70fe9eff42905f72eadaf698e31e90f4640a85a050f79b0a9084cedec141edbf20e07f48152fef5e4daec206bf2c81f1f3cbb7401c88ff986a9e90da3af08ec1de65e164df05b72ede33fe38cf772c48dc991d5118c06504677a5f806ddd17bdd13c318c023fa168795021a8d18127a79741bf31e5b953da85f1c76cc8dfe0b893563a7d5a8d792a8f148557c4ee87fdc9ef146c85541bfb95bb8d6db8e4f76686d992074941a62ed588f16826411146548cfae4f4cb80 +result: pass +shared_secret: 071db527a2ee8ce982527cb19355793859bb8557e7cc99dec58a53153eceddf4 + +# Official test vector 14, seed: "e2819ef86853bca1b9dee7ee1c1619988964f9a913e635aacf0d96ca6e0300d084329dabd8f149e24176d22757404260" +private_key: 263bae3c310cbd4b6423ac0195592363652d2c1b470a718073e18e08e412286a4df32501e9926d27c43de1135df1281b65c6738afb062d1a0823c01617da701b97a11c26055972b875d29d42985737502ed0551c85f11e2e9b28157049248691d750a4759184ab00b02595460a91acb77a6272d49273c35895ac796eb6406999b8d5b824617393fac877749ca787456211fabfd8c1ce7775ba14c51bfb2ca962b6a3acd7ad4084c90d000cef83aba7ec45910bbe37598422c8419585111055c99af87e08d5656dc5678b488fa9c96d366b5e6c2a5c8d900f40bc69db4a9fb9021723e043d42b089c68831a0525c14c8e9b192b14b83962b7662202cc753aaee4d18e23846e4ec1cdd9434a77a47a69596d8b5b019c60568a63734384b83a9406f461b9f940a9e0d3add5d21ef67c8d8f8c83259952c3cc86c35403fd713ef26a9cd239381ad4370414506edaa2da027b2821ac9a8c4e5a661f06038ff4b209acb4a71b916386a928a57183f9a5515b704aeec9654b7c17798c57c07911a038bb9b7715c0ea69cb3c9baf14a0bf881e6ca1905bd405e876234102c572db0b7c705efc93a49d82303de400003897c3f9196c758701a5946c947b32709268a9a265841408f038e280a9b441366f983316cb5fc5109c29b2320b156794ec3233a523bcc5b1e0ec6f0158c4346ac04078c244375ae8c8ab9b57296450aa75d8231ae3cbeb21a17f29c8d8fc628ff315bda563961a2014338d294743269c4876689eb938141d31001f932440b0a0aa079b6f3c82553c5350827a4a768c1fdb5e75253423d95043989cfeaba0ec544da71ac75a62a3d4d5600914972198cc95bcb1e4d04c1f4621ace5c02b1b0536b0350fc09b23ec125af05e92cc08362b6e1c1142484b736fcc46f4233ee2c52c2f810ba3148d74681fd5b158068cae9d701819a16917c81cf3f5a31ad1873930b59294c32d915791510ef0d8c8ac8a6cb4673493aa6bda6a6244810bebc286cc8020cb86cda351caf9e801d9589cf29b9cad0025ce563b1aebac4362b176c8a6c4349ff62124c53902b2c10636c88d612133e872759631b31d4ca637bb1670377ec7b97444daaebca78664188885c134fb04205a266895b7909e3271e141ad62090d5696a0221415e5a711a7ac0a9512a1c528767bb617bb79b9aa55b47cc2acb573aff4b4b5442bc573a8b9e937ad1205a4e6311834899caf3824eca782530186209c25d7e810c8f6c5b4559f436c7365642d28933a3a1234415b9728c061365c74b73ccd3e36222db3747c289d13942a32ca6fb1d7a75d563097e91399a2b967c3737962cd1fa0629f2b774d25a2021b458524b3c2f8344ebbbd2b7a70f7ab1574158e89117f3f8962aba45bb0cbc297ec3c2cc546096078894308310241b8ecce3fb787219c9e0b7443d622330877bf8c4c9637c6b9aedb75cb763356eb7772ba5664791d4f439e6a317b1066452d698dbd235fdb4ba5c37ba57ea8be97849345f7b3e8d56485329933b9b49f92a1a67b67c15c72a3b0cf05f36bfb2567f70ba9139cb6729212bb6b48b71590513bae6489b47c03220a72af6094045293ca3623842de85677c16aa910b9de06924dd3986df541109bab4be52b48818412eb1353680f2a3c3bd9fa7e55cc79c38207fdaba1833452dcb03763672212953c53532e6051ab040208acd348af507616562d96c7c04da93c8f21566df563deab2f18c9359b0b5391e8b03b485e3dc1a7c981b2a30026b0f83b84c4505a5966f648383c9abd16638a3e557ae4925fbf1c0125d91d97511175895082a78c1272792a50a5651239cb66b3f6c1376fe332260cc27ed5972c4b6ecef6462d3b712627928cda42ce150d3d96b7f032209ca92e9937517bf2b7c5f66e3b837ec347643a6a8a4d8c299de167395c84c2aa8bf1a8a4d5db29c2962701701ead468368b40e87da45dee76ff4b287950889692a838bba17b2b47c3140b7761cb389e447b2a540ae251d61808341dbb2b9aa5f04a69c6010431b28c17b980fd00499e274c9492840cc7a1e90215be92759db8b14ef41c059c546d4482343106adb27a802c3c3f8759a8fa20141fa63c65081d40090eb1abebac9c5708a9ba50656b4e7616151a4f1b0bd678ac18188450ddace2b99b3f170ac2635a62ad88320d17a9a75ca2e1bb52576274ee12f1f3b0b1696a247c70a6cda6264dc9e892cb08548c0c8824168f471e19078737169b4549b62b634a611ad53699a5550635faa7ce4589938501834f8c4856cb2e991bac84809b424cafb5ba089f14338780178d71b1cb7b1ed12c036f727fc2a94e9a62ecab6a95c8800aaa237cfb224af5c8fcc939443176ca4bca59ce54400dc7639e0630fa7cfc292604e6ab0bcda993a78107d108783d19dded13c2033297ff513fa75c4c6d65640206b43f33cac26950533b4b053190cb23e45587509acbcfc57acfadb6160f5345a599caed04eaa02937bd5a5620a5f24e6b194c52da021233b13cf950c270f8262972031790ba4cdb4524bd92781898427b6a1adc7a986f88ddf7b39be1c7d9700c87d52aea9140aef5c6454328f666a8f476b772784c3b13494dab57b06e320b2aa701acacdce41b8b3843e9913ccb3705dab48cb9d85ab5b36bbff148c5a4239b32190193112e1184d33b88ed1e6c3a9ba0ced62bb5e634b72187030bc8dfc1a3e80e28bfcd1828ec4a2e4888d68e4bafa3ba8622a87314432801325fa66c142760272e594de825560c7c19e881ef238bd9a38013f601885e02acec715b25730fb004009eba9111c125bfb0d6b2c154945575743cd66d85906981b24c1b2029452879608a34bce8e610501b6b12f32a1b3e99b76143cc1455485b3802778b7ed52210b976cd2ba26f1551c0fda036fb33891ac77c9265c30db5a513baca1524b8499932d5633b127ab98d8c07ca1704fbc8404957251f11dbeb7000b363255f5aae1261ea5b7c741445cc2852666c5437a4054f5d3a421799318098f5aaa5262b46187f60a09d98442499e30bc54c86838e256c24ae481b6bc33bf076b04bbc798f0615cccbe8eb66dd3c97da6a89394d4c7e07b8c4d5c70a01c9e7c43b8a37c3a09d728d9fc25d933028a504dced76c2a3900ca67369cf5b822107a9ddb2a168419ac87b036064786f500e9e0a279294df8a7c632484723ba28b38b52937b40e20984c46b23dd81bedf629da6a3512ec060fde7b8b2dc987395af460998230c20a9a08c1dfbf3824cf7a6fb4ed55ed1ff461d800b59a6ffd7287e1ee3fb94cb59c394504ff02338c9bb711d263140c471409f3c42813f38424698563d9550f85a168f2da2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a +ciphertext: aad2540e5b6286cdb234a4414a07402fdfd38141f26f812025e62b851d7d565a8bfe21c5879ed182ff2960c3122ba4f9e591060548a7a2fcc87b7a5f3dfdfa79912befac7451a912ba367a1882e4ae533754a76308921ce820d52d402413651641767dce967dda4e9cff0ff2f3f1a971693eaf6dd138e5817f2600e609f24b47d6fe41959dd01f3d22bfaa05b17a4a957780d581782da44c97f794a008ae96353d0421284451cfe3e6770f418661699a218296724c33b34730c25525b2f818e7f5c9ed42afc92f6c3c56b22b1785b01d3ccc2c74aed6faebd18b9ee948ae93c8cb0f13b5225c334b5f422ebece17e54f5403604dda34c02416aa79de4f3a3d66a411c8b64f38c5dd256d5ca2ca95e3b1c724b278296f719eb70683a2926c5b5f4b9b25d13f2b2706eb6ab79bbc48bf12118d0311993504baf3a92ef79eda66cd6922c01c491c37be3f21109a21da5efac144ae7fedc440b84ec7655631b5e1b3067e8b1f4dca235b3907eb6221b3e38d51a08c36090c307aec7a124cb35ef75345c82adea4a6fa3323607aa20fad721cbcc82d01dbd7d6863b69da9792faac75730a5f5dba4a24453e91319cf8e72c2b7a9498821b5159680dc51682eb4c339694af812e664f8d5210674f0a55543c5433a9cc6573eca7ca607ebfa5efffb0e23a009f404beff30a280d8de6a79845f6687c8f137fed4dab02c8984ab7f17a22b0168eb559423ecabccd6c822334092b94858849fcbc7cb20cc58f7646c0f8541066e654811185b0dc807a0c53c785fdb005474bc54280f34871b137b44848dd0cac5d9226b342a247461ca71b031fdfe17709cc11bc5ca6fe648c13f76f7f66549bec1be4fd8c8c1f05f8e494743a25dd52e3e346366051d102e7aba6dc391e529a5a1b09e5d141414e402002f1a81d2eaa27cccac6dff2c6e38f8b3584c998809c5e18ad500c3432801b08f2cbb3e7df907e9a57059122ad8ff49cca4ad18d197bd7de4834bd550b893347119e8d323af3f6696eb0f88d600b4341af25d266e955ccee8e493979ea31e978081dec549111c7bee584f5d0d18d432c52e8058566d1950928fec5d25f02c42329f68d8734533c1cca80a8adf8e74ef4d807b755e544e2096cc42d38517aa87189bfd4bad8dcc8fffee414c19073fed509191f56eee507623d8d1c2431b771d7a7b41226d532f9da0c837bb13268d542b493d027131cd0abb4dac1eb85d680f31ac8f91a3c00e889332e1459b7a3611b70e1c5492a8ea9b4438315d5cde863b834a8ec122ca6034c808e528dc25de3eed1ebd6d7426843017eb2b7cbf1b07d4794316cd3b14b2378d3c5cb76217ae46c958bd841b27ef7823e2b0537f1022b3d8322e85580aca303fbe54dd1d2a79eec2d48e083e77df8b4d8924351ab28c9eae2331a46c11a2d6b589cadd49ee81b060de91d04f5efb9515c5049f5b8e82597ec0120db12ea26a062653f3d62e96284e9de2e247dde2950efeeefb653cf710680eac92430aa11553d8049183f263e2a9f11f51b +result: pass +shared_secret: 598bd66a4a063652b2a6b25b8d1c3bab0251682ce6c362a8c680295f47f3d6d9 + +# Official test vector 15, seed: "669c4ef8a051ce201da65fc4bc34d398ec1f806276fc5d987ad71d93bc12dc8f107b58be6e8422a0795c88cb9a0e7488" +private_key: 4fd2be0ff2ba62ba7ddec6a73c032e9a15cd9db841b4791620989c38508bd6733c15c206c84402e286ba0f2b274b94ad18a5ca003d7689aab71ef8cbce7b75ce844622fc9f57b974f8991a89032206f59023002c938c6d66622a7033442c190134d06f04339fa61390ceaac12dec5d0e5275456873107a8cc1ea6d5e5450aab97b23a06e34c8a812cc29794897a20bbfe7790c3404c25dea2fea4c80f102ad1e750780dc79010811fe680bb1c8000ebc930ff8257f912140db9e0a9c5c7410388384591f500bf0aabc4258272deb2871bcbb85757e9afb2699f45142ebb80ba8ce2fd095cccc1952579a8a67bb57f78e2feb4e484a96854a8d4d16bea8c08d04f91f31779e0df23222f5768775c026148cb1895b970cab860bac34aa6612e8a5b93c5aefc78e408a0312fc027f7a509d6c12b55453e9cb2f4e5c4360a4ab1e350f8122a008f69cf2796f6b72a58e388921863ab2fb82ae627c60593a99a4ba7806572dca7179476b16d5aa6adc6ccc90ad700cb1304c2b299c1aaf09369cc2ce8a9c31cb799185c24ad16967fb1269d0dba48eb0a258d4c37f9484c9cc8d214232f88b919de59ffaf6c00029058efc1e4fe55a8457b16d3c49017c88909c0eef37973a6b2e55d19b8114b074d8c95a57c5d897c87f024b3bd8578c7921536b1b45c19484e220ed87bc647c57aad958e01c74a433074a660de8824060108b1c44cc45486f0ad2c00fb79a7d88a2eff62887a3171d132e441cbaddf2bc1622045562a893300502779c3cf072ddf61187d42da0acc451e6b56bba37b3da8f1b105483955c7b169f89db86e7fb04a493b69567bc5a8b8655c919f8a70d6ee1034c1478effab227622029f5997b14696f4bc4415b6771d3701b461e76d686c93699c96165b00a593d69827bb39a256a1385d8b77b2222a5c920a6864ba5f413800c95f2ea9c303a064a173c764437eaf13444ec34192911400506158a0ab1c56399c012c30a7290cc0b0d330bad27b8c0c80b7dab5ed21c38459a436b5a5b2b0822726815180395dbe69a472672fcfa17cc331ec910096480affc8c667bcc7a2ca92e6ff80b1735a5959810dd3a5fe9938836d1b50d772a11c1b126fa498009b730139c3a1c9a22d12a55f1755f81ab7442399c8bb509775a24b3987e4432fb3a4a22fc7da509578c34302ae845b818894c7a6283d71d42657544b558f74b7977d270be722b9a51bbbdc236deb8898c65a92457b260d3816f57030f510e4f885450da20977451b2a731ded6287fcba24b4c7f09e4a7532965774c0578eabc13d1b123542c1d1b6a710bb3b55038a28155528caf974769557318c617306f72acad23c7c475b9a568c70e7552b65917217677fe625b15548be7465b147c60f857a832d08ca770c83ca3b201ec1e8ca1ba25630997a69ee54921e7ba611ea1c0928c0c99d65d0c0a39f2e18f8ff9980044477899411410a48ac2c6c2893e83c19f7f1080edd9058270374f0aad2f794655f594b3cc15bbec6db0d647e45805318534c4da9484ea4d55464da7231bdfd31e9bb6c53e35a6f0764ed3443823f9991ca3aff1caa50edb522c42112ada999dca8a8e678ea1a8417d77920f723061c87cb29a55034626f03687751b2f1abac22b4c2b1ac19567f3324fca5d82b147af141a004514d831039a612ed69b621ffb4223109171e6351bb35177b85bb5063161273abf861988a1803e647820bb53b282bc6d04cd3e075a4a1b6755b97251901a81c7911437c528951d007d9ed82368d4c833ecf2aa1a806cbad08259470461f7774a922227e812689bcb59a3483c8346d130650e06383556c067f94d41dc1171941efcc96e3fd769623861bec9bbcca4a5ed22c10a36a59efb5d7153859df348ef9c3a2745cea329a73cb831441762820c7d996b88c1d453c775a16ab2c752e68bc55839d2e79544b87af56019f02b794b166f6dd60e8efb0b14f00d1ae800e37bbe5ff7c7d47a257adccd2949cdc3d9318a0cbaa34a14e080b968533ab1d9ab674c89774187d592b4c86461e84ac0e6808c96090abe6b0cf69a2056a1c4287b1cf3dab74f8ca66ae8421fa200fbaa4b11760ac7529b92db75231958e20a3f55b8a3396a10fe957361a9bf41941b90583d8d97cade8828b8a3a5ebc36730c19fa7346aa427c489f56c7cf3716928c9082b36d3f3b82ff1348eaba325ba8c49acb2673570dc5548229ba93a5c210b586ece088d6679c975b60e0106c0003625e42c1bafc1ac1be1c1779556a95ac68776ca01363961132ff75c2185339d79a426e6c0a0011a260acb7cc0583e71623b251cb8ec1049da730c2f9a26a61075aac24ab1da2732f708221a01b27c9da1b520beb7686843360a11a292568993c28bafc7088c1767b87523e9450873f9c73912cae517ca29c066631137faa16d217ccc07f840e1013440da2ddaec6b7161b29742a2c941c7573bb0b57a58a25b00db5012a3362774fb35cd80c6f0a095753688b156b510561ca47b436cd5576ee0323f2bb2967022fe391b9cab3f41477787a96ec6667337fa4ea29b44b7c9610ab69706e820557ac7c9f9c55ab4a04fcb05ecc4157b943bbafc0b0e42567f95b8b436838d363da680a42ee01cd5353dd4276b4dc625d492aec385bfebe9767a2731fa8b3ce9271cd8d28042b66714d98d0bc0675a54b3ea3c322830a5616816c43260f6f21947e3499dfc4f9d76a7977cb467899b455a12d8628e93acbfed99cd8b813d21a15024da9ef46b1ae4f6333dc8933b52a5f100bdbdf2b23987270d550493d949e83a269ab42027b34a12a177f185af5f76ac9f9b1cf9ea4eff5529e0247d3abc3ca08b3a1d081a8c75a1ffe4337711759d25b9cc673b0263177ea93b56667c15f82b483702973c6436d40953aac60929a36a911ad25ac109a10841fb95e1ec05962c5694cc3cd7372260ea4863109254c26a44f62af0957960634354f62c624c5723416f14966417681fec883ae47544b753340f749b487a095f89784f15a6e7945da56c9e0d2c358162213403609a1c938c98c68b70a0fadc5aa746ae4ea9868f19b9ebc3282ff592960b436a7a7301e4c7fa075ff50762b866c4a9f157ad25291347a9dba5cad62c35b28a3933f5269f33a0e6d403e5721a0d36bae734481c43918f9b13acea8f6a13b1bb584938284c10e3806ed935d8e543fd5bbbab0685f099c2adf254f4906d6e05590dfb1544a32ff3bb766109561ff31c164792b6b0991fa93c14a74086a585353c3e620d3ec5b1da6ff7959016b53093137c512dfc18bbccdbce67cf49fea044df5c767996681dd2714937d31c822f3c58cc34785aa7df05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 +ciphertext: 05d490f575c5a991065a65008d6def6ce79b0c64ea9156ea6bad47fdd3926889bfd335784d7ef46aba3615e50ad4de994de59889aa2f9f8ed1de66b3caae0ad5079821b135781fa2b063198a83c0c19c3b9b479277fd1f0e7089ac711fdc5036b7e4f6d279b8b84de7724bfd425dbfae33485bd423fc10c2c576a4ffcd78eed1db45ec71df0fbf4e53e9161b174f536c88af832928d593f3e80fa353b33650a93bf4bdda6b94807b49ed507cabbc72eb3273ced31f8aa4a1c9d68ea5d7c337ca183be3cae57d0555bab6fa19b36f59c575d1b9a297eeb9c561fad4b2056a3c3ace6ed886dcd84fc4b52511cfa2e00fc49f7cfb2320e650825a2c8ca39e68be13f3514b0160e04b6d58e613bc2a70315807224496575f6b5d0934f6704cb6c3b728fb1857130aa9012511ba9344d6187191dd500a1b2427db1f5355342aa5e0a29ba2b94cee0fbf808202afc594322124cdc12fe49185ce8494950d08a4b0f6970d82e745d6a3cb726d13e77c1e5a94593c678baa1b422d71312cadd4e16df816ddb13a0d0990947c84322dd17a831f21261f82986453a1aba53e1b13a772d5d29c211fd2a37d3c1cbdce6812a09323dffdc404a964a6d842077fa744c971e4e0bc42852d0a37670837c2bdf99e87657c044c5f56a8918b163808139d00db7aff2b1768fa327a80649a67201b8c8ab04278544ed5666d6460e8a30b54283bdcf4748ff1e4328ca86eb42933831cd74d99e93b760f3dd2f0524c9c283a2d81886749e052afeab286830fec68628c4d3ed4f958678c03962b02a6b37c07e0d4ac3b3842731da4b309167fdb1cfb2ec22e9704df4b86479cb404cb31c69798bcb45eecaa31f2e80da2d2e6426ed998983e9569ad4df5a53077ae69060347012ffea15690f222f20bf917e2bb3654bbb415d38c5512888aa029df25ace2b15bdc22266b41ef0709486273c23fb1c6c4b7b45895af4e8c8358a4a40a2949142a9a773976f8ac4211d82c2f08d4d1ee348050cf24821c2aa14285d318dd83a876965358936cf7dddee74d9c9f24b656e1362a040e684b9aa38730701776a3d35a54b48a37c8f318c0464b448e9a184d8c104f1ca092d18984f5e7e65d1991bd24a237e8080f45b2ff4a973bf07c784a8e0c39b90d0bda10fbf3a1b34978de8feab4d1dda3498f1dc0b8d58c5047ade493f35899a582297b23b8807e105b373d03d21a031a8c9e2ec54a2ab4bc16ac9874a7de8342d346a57e13ac4e75e9b3543f4f6d7c394a1c3a669501ca56f571092481c09fc59f63258f5962b058aa821ae535b7290d42bd619d46f0a7fe4ac92f62261e88e53ccffb5089cd0f6f99836f8f703f9f82a906a191e00b99520b3d3e3a57f3f5a532806fef0462851d8feccb4c75beccb0e67e87d812a3704fb8047a7a5910fa609ebc0607de4ead78517d7c6e4032b018f107d945dadb329e170d99c7d14f05fb2f2c5d0be443454ead35186ab3283c05478aa9b71d7da66fbfb9ee6c47429a4d6ce1da77b526223027b2f1ed41ae66 +result: pass +shared_secret: 92bd980f79cbb34c67594c6922549b99962e54d388034ea61f892fe250581c4e + +# Official test vector 16, seed: "9debccfe818f6b5204db4ea09c03ec9a19dcf1629c1527685b8a29776bb1daaec45f8abf8f0adc9a8c8bd6e2df6d8048" +private_key: 999942a0ab8086204428a2098a205a297265ef3b725de17ce121512fba2225b20c2fd0147cd903dbf08722201c4575784a5370556715f8ec09eaba14b38863c5402b9100407b35375098a55f568ff0b4324b43098debb5085558fda00084584bbfe68d94280636809f8d408256913d32152710a132380243c74455b7f11532d3b88145cbd61745aa7683bd204c4e035d526a488465170fa86a099323fce43b78b4a3b959a1b1ec25d4593181dc22ba883a9f080316c23d07d1490daa68c8fa2f43533635439b5bab445a6c1df2a2c22aa84355556c80a9877ac9453469b02d998476d0cedddb9f3d05c7c6f99253ab62109376dd9b384b26786872030d95c23b3cb38238066978b55f2746124a98d90bcaf1c958e08b108f6714fe7658f6e0a67cb875522090856761d47189bdecb13c7746aae24c12294db2662a65d9241b513cf244223ec0ac4be18935c788e04421da1071611a3349843b7c760ce3568413756b7d838c3f3827e167b1db27bf0546606ba6bb7ff11a2e7b86186946cd00d0fa143122729efa29adef75c499f2c719e985e6014b110373ad2164ef7a85e78b7fe1dc25ed60027de464f3c133338404bcd89f2680c639d956be5a8cdc6254e670b5400139e0c136a132763f6c6664a6b9283b03ef18c809d94347187d91f97bebd0bde9134bf0414d219895cbba75c9b262e6e62ad70926816bc02818c71d542ad6e3bc2e58796d7a90a4ac200c1b135940b4d0346366763c2672ac70c03b56a62afe49a1ef043fe9657391b7274b6ba05e3184fda8125b412c46f986212ba2948b6db9130f54fc33f9574f7a82aeb209b6441886ed83816c173ec9826f8fb6c8e36237d6b32376344cf01311346b19eb502a6cc61811d6728ac3288fa5c576380ee2286839e4a8a01761fde8a2fb49a3dab98bcbfa9633a2bfeb116072c479ddd28891305bca71ae8622cc89dc4733846cfa56cd2ecb4d60623b92797bf8d8b2dbd2b74804c7cea19f40b67394c46b46906a44a5b669d95d4514a95f6327465baecb8a439114070884338485468b36b103c4af5ce9c1c9a09feb2a2f9b7324e703b23dc63192422e5b2c38228c36a3cccf39777d2015496972c6c618a296908cf6eb54169a479d5221679a7829e27c92c5550a4156d5631450753beb34cd4ba8ca8949a7390a4a2e4abce4ba418525620b7c9064d82f8d080a68f058d847bf69833cfe025f0e090e185234b6f6a260c7391c97b57222606bd0b488d37ad71774636c9e1ea8a449958c1b944e76f48fc8401deda708bc039a81c497c2e028b52a714b40679563263305bb432b3e120bbc561b121a2026569951986c94000235e96a2fbb70acb7a50a79c06947c02db12609208c101bab9e63d449c1c0a0faa336d7b0c1ba9c84b6518863267ee61624669938cbe07eec601ad3649675ca12cc307724db6ed5a60766f423c47100b75c41deb4bb78bcb19d4c486c098279d53ce0e6295086ba75525e22d3551450cfabc72c781008cfc5830d6c603311abbd81934e874b1c4a55e4884cbff57dc4ba0549724c7603258ed6b63456af9bfa0bdcb3ca86b09ec25aaf41911400e8bbe409604ba8919cc59b8916c8c8745c2e8042cd187009317a52773c57d435faf794021bbc709b8e7d688a5dfc686c15931221a9016c3bb461a487982ded37041ad0c1d032714f7379e2fb9faf5aa6d0f5469c7156800ba258fc5b25d0996b6735665a806a74b03d9819a5832a6685157e7285df397e23b13a543a983a5b24264c971a73708de1572852465732c94830719c197c7985c0a7c53525a1ae76d18e1e9112eb4b57c1222320a8156643cbc9535a27658a3709123cd61af7798addd888053bb0de254eff530296f9ae75b2ca756539b61c62decb0e9ae611678b5190503344229096c34990a61ce8b10ed3841d48d266cdc249acc96b7d88010899c453467213d8bd23e1764e0237480c34d8396ef57c1aaf781c042471d04077eff85338ab8caef22ed064bc38164070a00cc78b8074e7569a627b49e0416a705386601d3b8a6c10a4adcbb190b4877422304ffc776b4a129d4098c603896a6020725986cfcf0083fffa66eabab82db734f5d1b5766104e8a2b8b859b6cd166dec691ae331b87e794a1c9b083c14b50b85b7e97148745c9f8975733d4262e247473ce53b85d01c6de505a352bfc0c233a396c87f856981c83fb74542c9f3cee1276f3096486ef23359c51ac553931b80c6bd245b2114c4a2d344ab53765c02c82b41412afa1ad5ba6ccee9bf09e375eddc0cd55bb6c727be26bbbc4e7392293c59455084b1542c87578c63511ae3e384e027bc07ca7401cb0096d1205f4ca86d3c73ee8273de930799369133f83f4667a92e72bee2655b17120dee233433f9c68a50c57fdc8617ac1d03f0961d4a7bd17678d8729329a0ba0591ca84670557e15fc5eb4e8255007b8c4e48206f62062e1dd53bfc43af02405d2e300d4858b1b9c9ceb531a910c0bde877450a9aaa8878a2fa45089e184d1fec1cf4e3909670bc11e78da5d8cfeb86a4c087a1b73a6099c99836b3cc76366d35a9854b3b205f4b2b69666878614117163fefdc32b6db37fdeab0a0197f79db088c3a355877cdb1313a2f200e27e37e12b4bfba04691f82b1c2e8b8172c11e466cd8d01286f2a3a4fe5a5f920476a9278b9d25e420b77d489386f9c167f2731654b19fe4886867b79ee10c18f679fae87826a0b65b44a83da5a35e0723bda3467541228b80b35d5ab869b52b5dba9b8b309360ff1022d67bc93747c392469c28b288cb73fca74001e5bb47d5b0321e08fbf832d0a9b0dbdf566d3898e1f9aba7e3c011a14c3e918589282c0f167bf14470d1f6c774e6742e40a1452c70cafb941624c02ad201e6030bf3dc6a039e6465d6772d1c184c693bd16c3367f02730ed6beb95940ff783cf9e307f38a7f4f37754f6c4ed26a1c70c90741ac89e56c989b0260f7e1178b5b975d54aa6f420e97a7b90c3c74200359d561beae98b1af044be40a2ad8491f42662e2f34bde200c63ca48e7409727c8b2185138ae7859ce43558349a1f3e641df0c14428c0c12d0a49abb904cdf8ae5cf34d379024ed528e5d84a3d25920b7a94b61a8abf9e557ff61c784501fc9e332f2b652f16a0a11148b8e594d1f377035e124d637659d4485d909543818814fe7a8a173bc8aab7066d2c927c90660dc8d30364d60a31f1d94a9e5f586cd84c167e2577d3326e41a614382f4982426e93391380c4b03db38d0f7bf0ff66d2d93c251d3347c643ef3581d438af7dec621304e0091f797346ca18a41f39401e9d03200ef48beb6df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e +ciphertext: 69a67c3915a5e699644ee255ac7f4e73fcad84976ee94f610426c60e9e736a2217118ceb9042e6d031bffdc24d61a73bb158abe5d57d5e1b7f27bbacbbf87a71925db2aebd1bad3c9b3e4504310862e8e79ea2ff1833b13e815afcd9bd5de8aa8b6917ae7321f4bad138d2b88637366186ed0ed48d4abb743c1b6601a1b3091b47953087bd077fa3432fa9420d40b0619465ef46d9347aac5ac60ce8e0aeba6c200657d3e4e8fe9dd73ddb9768a1498dadb9d15b9bc806dd92eba218b5088944b394f2226b01a2a15ced5e1e567779ec5e8752fe51a3ec1a6af64907c8b058aec3a0f323c31140904695e5148ac3d645cc89d458509efbdcc9d2bd46ba57cdda957eaf5cac08dc18ccc20254988ef1f8a0c1ad578dd061010632606dfc7dddf116a96b9704ee90102e499a182de5c5b1973317489f2a95cc015c86b8fba63b9c259a4276155b1fc7ceeba6c0bb4101d8dba10a3a297df54631006a861efd0cec14f52952c96e99d147dbd0f71c6aae5ab362e31586a967fdf6418f65d2f3bb9a7f4ea58c4a193f8e3aeb6bc048f7479080374ec8685bd3c55c83f3d864afdb65e901676556204082b90afb06f861b81095bdf538e3524fb1c07b9c0dacd3a5fa4c69c47aee8f9b6d636e56a2bf166060a31ca1966bbd36b8495c5610f86f279741260f1580f8ab41e9aaee35128917c0a0264aa992a6d2bc4516743177cce2fa2932d9a327e11cff1e86fbc71c44e6a49cc55843b1f7b78243419d53b15fec0bef99c74574e88cd27495a5700f66ae30aeb3891f839829cc1b79600e17cb5d4af88b3a2c6118ae816d28027f6790799af0c264fd17331479213de77087f7ffcc0d3831aa82e4c0cd73328057a2eeb0651e2cd6e86858129e190ef97ebcc3873c2c8dcba51a83612af4a04144dc4b488be630de461b20b6e1a2f5f115942a5a4491f30db59e4480bc0784102095f0a612efe236cbf6a0bb8eee2b82b399d8f2d594f53574e7ca440a0ec1df010d1c08650fcb5e58607fc8a67a4d08632ed0d272e5b5002c6e782e3a88478bf0e9e29acbbbb21560f546c508faf5f1219300f0340573d6cb747d15f6bbdf2002c2dcc661a0e8bf53dcc3f05a4e8c691f21ef608ff1788266349783eebee6a409c31543a0bf3265a00305989c271ae5bdd42d5293e18af9005cf673d09508fba1580da112f658ef78eb770f2906071e9056142244da1f85cd8a6290eb82b9bd9de96fca1b5a19c27c82824f0d1961575196e0840a93d9cad6ef4e97e55f0deba61b9b84729091af782d041b38ab54f86bc6a3887a299c511521505d1199be958fb35194664a1e6025b85cab73b611f1646b6e3ec3c7acd3d5323cec2d52d46e68cf9ad52557c777e24db30dce32e04084bb789c6c2afe1b8def656a9e7ec0a1f11a6890bad7f766305dc34d39df64a797446ecf53ff75848e3a0737c269f822ba27fa2a158b11ae758c8d8164fc359941c4e8939364690359470be977101ffc685b088e22c0e887b669b0e933fe6f7574a6416149 +result: pass +shared_secret: b7325a08fa617e19260264bb02ed6b8ab2081589fd5dcc1e92b9d0d4ebfdb6b6 + +# Official test vector 17, seed: "8098ae7a92c10f707d405f7dea02c2efbef44efa132ba8aefe81bd45e543ecec74f10920ae48a40b0653d63532517f2a" +private_key: c0b38724691a735c3fd82033d0535c3758a5d4298ddcf542556b73ec6009c4640f5c26471849a2289c469a975839fa5d4b389e75f8423a4633ebd29d8d1a5c19e609f12240edf33ae9c07cf93c18950cb1dbb07963d69dd1e2447db0500255098cb88083a633c5181f75d53a7f0681900747c8eab98d3aac6ff35d2bb01c80a1cb4e5a654a852a07614da10c5ec8071ac3d6394b3a13d47312f03229604c682f05245cec41b3b55098090b6044a1a3c0af26ab4a6ba21ecd50a08d8723d32563c36aa8c3bb01fa3798c42aaaaadb9d0ac8925342264dd4072db982309c0460d7380f02cf5ec0afe3fa13c7297337dc205c0a1f8b3109363765d44a29f1a7bd2b17c24c3130c26a8b872575970239ef12352eb15aab0c9a96b5c51f47370aa5372bc97a22a4029ea0b9156622903354f5a1cb3d49693a198413380075174d2969a95831b1051ab40d1344d809cec691717579a1b7eb52c9087d9244cf9ae6bdc32766b694708d1ba22fc76b042a6f9ad668971b4767e6a54a95290b699a04788edea5c914e3cb431337c0736efe7244d139bbbba28ce82b72ae92a23121b7560c9db5b908bd12539890a172f4c68f381d1c7b562b1b5bd88046359c29dd933ba1ec1f47bc4c485c8dd599767822ca7c4cb300954821695eb5eb2f87fba33d61284b187ca6726a1be742286959e38456594763f5ea53b9a7959382c348c7449783b5c784522f44aa3c25bd21d48660f78f70a00e49e59bead90c4c8367c22981d8ca6b5c198cb5906b12c55915232afc1a4b1ce5c4ff346f5f536fe68ab9d816c98dd6c5ee103d251874b4cb0554f38ad0712ba687634882856d453daef102d3835cd81b5791a50ed5934a0734a81fc78c6ea23ab2d96b679866458c21ed50abce98875167361a62991052bfc7123cd4f9b5e0e98c4266536573742c431d9d343bcb9a8bc1e2a927496a71d73ab6195cd7194d31ba631d025570725e6b37abdd60a545d2cd2532b32a9548f1a319df6184614405832954d89a61dce3b5cbdb1ff691550117402c027da07b2b5bc20b25ca36b0e70d45771e3561526950a8216a7f09db88ee46578a107ec0a46f932751d77a167c4809c14ca056923d2f540692c9b8de07cc05a55aa5aca7607a5f5b071139620ad4309e2e3a2995a31059cb8f3d09b65f171bc3740df13cc63e51bbc33b7922951073ac3e51013b39a0464ea67a9d5a76546227ea7974e1b61847036d94e13201644d585cc7b4c9aa301980eeba05e9e21dcc5163f7802dd3557e0fd6aefa1305e2f84bc42c8fc057a4adb58d3545ca8d767ae622cf7bd3c3178b92c5e776695ba375fb841e12760656befcb915d6a51f2cac896d7380a879a41001ce067a602a73cdce00a4321aa880b7382407c3da7a3702f28a098719e3822d6d8c12c88b460e691dda17bc4f5b589f2b46fc773fefa492e1112cfac69392c80abc1084e68903be87b76364caf5fc82039015bef0c9fee65311407f970b695c8759287898ea39bba8f61fe9d48936b1935b2a2770d498fc2bb22df5980904759ba64f05230378266c8114a7b3a1a5e33129efb4a52fc163628c5c1a65a0441325b3f3b8bcbc7dea5c42c7897aa8956473d54ed8b6c56dc931d12a8092102490881b4e2064c5a9588e257834c1aea2668e69d907db5158c3cc7321d83b9703cb74864c1057660b718c3412cc47bb92612643313c356b6b2cdeac80ec5b657e78cb2fe9ad14c28747e45466847d71c49d1355aa845a5c0fb27160156d49a3af1d8b975d694186b06a5b1111ac504df3f91ce9a4b2e248697f9a972e7b0cd048c1b6f7581af20afae4c1b9333f60e73a0dd1ceb2e19887cc712d0bbb5c24054553c3c7c972e87253d4c46c971826e8955ac0017ca6d6550335916d6a939f5c167bd68c09d85650e89b40a4686ff0bbd921ac3e43641b1600a84bad0fec9524f09fc920916a31b081e88a36803715b1476e57ce39ec27fbb04256ca64fd11225e474b06bcac9657b31de3a39f4cab5b65bcd8896655eb924243972b0bc9b755b0c69b837030a07937652c8c14f71745572882d222ba1208327d3228f0778a215b8fe6f4a14a9b3a56ecc56f09c49ca31cda853db12a2fe5d395a00cce6621833e61c2cea5bd6f0bcc6ec6b479e334fa543229b619be566e8c00a1dc7837c7b5651b8b6a94412ccddb63b8213635a5745a54bb56198d325a59109c75d2b733c77738a1328bf1370ed99b7ed8f611e69c3ed82620ce95088a91c6c6d472294260a1c5455291188e010a9467c816938f9835c1a4fa01223494c885642e5c416c82223d614a108a1128e53d9b264d61d798c4ca9bf6abc72fe779346a3208a77542272b591a6ae781996ef17961284666c85ba91b2de5f0bf9af10eb91c5793e48fdf367f46f586e05b2dd65b262506043de419482071dbaa2568256a14825b8f094b796a527fd25b8071a4041a1be279c2e3f543021364a147cff6740ba448b7010b4ddba6aa90265a95905f141a9374970a1a071799d813ecd77073b453cb2b6d83ac9cb8267a5861b9e2f23d345581a074657554781e4782d98333f1237dcafa48087aa66de4209a9a78700b09d44a0b5c929ae6612acf6b5d8ad20404a161fdd3639e659bf88291d41711015432f0e7ac759a67e0324f94c1876314687ac377ae48a30b48ba9986714ef3064f087c953ac6f86430bba9cef9857b849315dc4379799092af4c5531fc13f63b186939040da2233be05371d448fa748d76f98c3f638a6bf5864b9bc5fbe496d72966e3004409e420bc4353a5d55d0610843d0b8e6ee5bb5d6c4dd1462ae99a43df586b398a15ff5b5ff58a4006987613f5caba694dc0f736f6d47af66673e8f308a6044338d23c817c0420e679ef621739e21a4a35140dd2928e79584f787671b118e9e71e1d9430b9a3210e11c266876a44c7082e7ca5f6dc4b8d931f5bfa302fc790bd424cc3643844418f6c090e2cf5bf60f08c489bb87315464d90006375c34a5297a238a117a8770cb9795776c11f8a54ff13adb3fa77df3757938c28d03a612324858a11a860235e0e15284e36035bfc0178db841c679a47b93e3b09a9f735955d6bce328a91f2fa64273917b7371fbf166c47e9683776aec02251eddc84032cb0a852594f4c7875792fa345a43a68a193c51492a39c306b02f22c60ce5a8468c3050cc3965e2982e32b938a31cab1f36c1da3ca723261be3a864e2912199262c46741fddca501df33d04a79f8e3017e6197ab24b062cd98486dce2a7ffb22e5798643cf9ba5fa06bb0ff42f4d610a7b3df7544d66b97a486967cd9b62ba0142ebb10b8ee4ee0f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 +ciphertext: 64f1a93ea3e3017634cdd1c24a7d5a1701bc1d9bef3a908e70df00b38a15eb30395503908dc45c0ad971f0f20f72c4a75343b371ecc0a7ca7f18eab8214d8782952aba2b088514a7b232ce93385efea00abcf98e0b0a94f592ed365fbb950dbdac46e374f3261197ca7a2e31b6f2971b120c5c8aa430eb03c314cfdf15602003129e22b827a20658834f04e9e618f6fc1125bb9b71fcbf2a66e884800e74bde13c3cc9c599ce9bb815a8934f60923732fbdf1ba1a9c034fd49d0d809940f89e6693efa4bd9c30093af1a3fcc3a62ab5efe2e944b83cd93a855cb4597f3f788322521e9e11e8adb20fef58ce1185717d97c593d7423fc0498dd49fefa8b40e6c14ed55522b71298c6cdb499de705e5824c8a00431c778d21b82bb7ef6ce728d669ed541701ccc6c03cfe0600098353c9449b595017f567913bd2d233ef9455884001b94e3fcbda4edd94b4a254a4cb88bb59441e1219540328520e8f68e9c200f069af82c2dd6f36cac81f087183da9d6a2d861d19396289f93a17649d811ee5240c5b7c0e8b69adc82675d2d1dfb14d1b62ffcaf6b83bb7ad220974a87833f6c12987d821b6b874a3cb998211b54e9e70c3bf0d71c1ee7266f562d0ffce4e10dbd025e9a40b3610af564c051d346e2eff83fdc73d80a710c36990041dbfe1cb242b66dfc4dad929108d00b5e9a1899a081326b6a2956e1e352a6234dea100ef8e671f94b10612396d5a8ff765e97ded64ddf55fbfb9f3e8fc202a1d5cd8c178feb5a01f0a5011e29e018e1c9bc26e49901984dfcbed1c059bc9d9fc22538e57719ae514ddbff7a2cc9e2151f7c7d944456c3398f65513e66b73efe8594bc3d38e83cee3a5a939f20e444be0c0b48520ff200f963fd27087266706eeb7a5ffdeda7be32a98ba2a5df7fdb763b7f15bd2506d39c62e9d2750b084b44ced6ef79d6582c61e6caff2dfd69c7849c89befa002817a52542b155bc51e6a1bb50134bec0d6e272cd6d086eabe8f9c46123eea3f6dfc129640d6739308c0c530f2f0a5ab7695721d34d464e5b98d5200e5a50878599b2482a15f93b44ef13d6ac3ad16e7fbdd53a9476398ddece997e77301fdbca0cb2d406bc9372117991ac6ec0900a191c9712af80f8f6d33462e13b3b9953dadbff25dc7dcfb428f0bab661abf3453274648a5c61f729a7e0cb46731181639d43ef13a0ffa1abedac1b434abd5896c80a3116e4593312b13d4f5bb2ae47873b4dbcc51cf2c31bffb5c0f6b33ce5de62ecbcb78f9a8c59aef6a9436cee773dd6e11c177589b1eaf41ee4d3e5ac949d85d8468461f9e1a9201d9d100a835fb094b7258181d4dd585a21dc9a20241aedb30e1b4ba738039cbf237f44cc57abe3fe2820903acce0d716eacc7e78d65f8a166b9da0f3a3db0aa97865ba6be3aff891f2917c55b5220f814022abdb809fc33e0c430b6ab8ba7af0fa94584acb88543f3bfcaec64e953344dd0015ea3fd35156e433c633254c971c842b367707ffdee668ffd328c7c12acc134ca505c87833b +result: pass +shared_secret: b400082a764291666c080ae9ea9f22c383f3c1e87b4cc56775a19c8ec29a4157 + +# Official test vector 18, seed: "d5f23808871544e9c1d6eace2028362b48e225312f77663e9f78cafeb512b908cd9e25875d61a16ec615f4b8ff826856" +private_key: d95b5c5667b797b1797a73806df8906819743e0322070c80d97b77242040a2c6154ce152e2bacf89ba871dcb835aa873133a331dd3450bb51893cbc5b072459026552001c56e6a9ec0da3ace136b5ee150946406f032a475d8cd05c31c14897445ebbb24cba8a9e9b9fc819d752a5f6830162c89c4e7e16dc3b12823739d44c063f55aaadcb03d02c3325649afa5a63e26a23f16cb48091b388f503f9eb6751d44bcf61989fa953c10a5b8ea9ca81c56a04498509f380c1675b273415bc9285d0e765b0222927a979ea9a47b9103c0b73326a35945ec1cc870a693980cb73722b855690bccca1df9290d15b6cc53db8b99a89395994e3f39c13c81b9f3a313a6ac1407585ae1015eb2298defd84a5258a2e62aabe709c8243679dd85b82c08a82021206cf0424b7cab4df614aa21c81d931fc5f0bab9f373fc4a98484bc6fd5606af987bf57842cc4461014c4c737b6a52234153986aafd737d4a834971b96a711693716cdd1639f822a43936b94b7421bdd660503f3034c0c2596e8155684abc1e81c218151e2d44845d781e4a54f33fa8eaa0cae0d96c3509c6e5a973272c0b7616a929a579d6d9b83ca8c6631b87f94457312d9c58f66b20c04297b881d11e9c97357a9b0e50572b3430722963869ca2a1688f623b5a3224d2afb7bf6f4ca115198beb213679c210067a32219cb9557042018467863c10a4b449bea2b486a85ebc0ba8da9a3ca50a632451a5754b7eb0b7067c2c939bc192bdb8315427146ab6fe7390ab60264b0875fd2603d09466acb2694091340bc8c6df3fb8eaef1664b533c0e377bfd0bca39f801f40a92989619c41756af7b4cc7551c8779558ad4031a6459e6abbd9fc68103fbb95182c9576135e154a619180b1a694e384212fa89963360791666968cd9aa5ed3bc0f72939c24cda10a9f2a62aa4cba9b9d677c5df1282e47c29a790bdbdb664ddb30cb154d01da8e87035d62a099a9e9a47f019d6a769579eabddc851416fc9a2f144b2d2c3fecf889f19a2acc434919a89d474ac628c03ed6050b3503c2ccb4612eeb831ceb76ec9798c2738429dc10386b36be606622d2152db389b200c219e4957bb6ac6f59739bb60de382c88ebc442fc16e5b55cfdda0c9b78a18b07a5e72ea3927070d7d15951f87b0e09bbc631bca04fa0d5f4630fd04a16d24bbcf351c806c07c32aa05b19009b66181413c202536d52b8946fd8bbc65215749359a3687cca6982c3ab0435da4edf454a69b23726c503cba4ced872311799c4ce57c0e1fc48cff587c4b552da83b5472353c711c6f220bb72540cfa651352287e88d0624df8248b17914f654a61ac0fc30856cad09f5fb984a8e334b5333c3010c1bff26fa7164058b2343fec330f4c2e93b07c7e568d6f437c0a307131c70e0821637519b1673a3846829ae11ca2801b5a5eab191ce686ebd2c2a8695f357bbcf18c95c51591b67aca77521de32b1426173a0e059686007508da93ce9089bbd43479183d0705496d1709ef41424219054be29ec816868a95146ac5106e261d6331a692306bf9013207d60a7f1519d0d7ccc03755eb5c31a2982a81339cee7b810727471d447df481b87da70f7651b7eff647a2eca76f22424d97bfe0b7cfeba385c55253559b0372fac0c533055ee490bed57446b637fd0c07c173b2c61345185a0288f1aa074accae383c75208fa03a6a175c3d19481e79ec833057a8d2c234ae9b01376c21bc75277738b17dea03eae594ea939e125c2592bcc95d3cb4f76a8d8383b318a48f7481b6b8419e8bb47cf1229c23c4800788cf91e465088a580762ac5d31616f114606c54efa9c0490298ccc23200154342dc7709a5ca5ca3a94b7a2ad8ea734b6e20a2d15acd47c6aeada3ef3331fcae173af5191ca8b74bee31f1b7506b595a3dee0899381111680ab02090429b93efb7b52a6884d401841a0d8193953a5a5f2417df927e5934c109722cfe18d0ff93a3df69d9cfa4d7f5801d3294771156e828924c65a18bc798006a1c8eefc3b4176634690c061b902738024c0ab981c3506d11b8f307c8f1cbc25ec764fdad76fb2117aff430c5a5a468f2966bbb877d2b8335ba3bfca985864f21a9912bea56a007e7223c7249b2e45a37db9c104438e76d16321289d4b07001241aa2f0a1a24d81c27a9adc0c768e1b3c72fa08e33f77c90f4cbdd530949b2b67da9a15f336b679937aa825989b9a450fa5f69304d37e585bc039a154257ee78907f689dfdb246d05c94c3057066d03a2f9825be6a52c3376efbea3fdeba68e13716d810b73662adda56bf30031b8f682c8ab08c4b0978bdf113b4432ec712ba306a63c327978224597c3b8155551997bb7e2881102d8b3eef786be65196ba84478c1c629f45a885db1aa4ca443d8a3300316608e8c2f71c6c7516ca5eb453cf9184bed2888ec592dcd53fed23b5ceb98cb575c474b51e7fd64d73d54f37b51fe1d432b2150ecd5b0dade606d83729586b2fdc60414a558c3c19122e47858675179c2229779b40cd882bfeb3059ffaa93552443fb70fcabb54a7015f8b6a0798b090fec5aef185cc95579aae5caa2b4923ddf65b2570c15b1b0464c086114975dbaac5a564cdfe02cbce8c68752000ee81a9eeac55d4a81be9b3c66aa3875761049565a46e305459fc7a47d75316b59a371cab01dc3bfe9108003d5f868b39ea617ce3091e3ab646db07ccc4a09367b352d1848b26e920100827c8d4c92f0c222d8482606233adbaba3005b58fd3248e67cc75733feb52a5acf5a41ab71ce0ab7e8fca8113261dd4b7297ffc9d37899ab40b0637c02ff1c73e81a02762fb264f51c849d387b9f7aea345b5e2ec44f2e0866b9574bcb13ea0d0aeb7a78d6dc7b5b0c9838297c05409bf90d86b3c1b59b92c998a8abf34fc490259289b431c5c5368acd762df8ca04e0235ae91bfd5332d67169aac2586deca4c8174386617ac98471366283f3d30a971c62f35322ac96a7b0c45779f6c17f1117a2f1b454e3557ce5733cf979156400c5a780a4da91ab8d99c4f98b141920731f361ec30950bd0c5653c83dba87658674c57473dafac42f293bee44034b9489ccfd5141ee42cd91b3c3cbacba092cfef6ba4b0a716d8162521b29853522356943c697a10948a50f27008d8a303254327c4570af822024f5b9aea82a62100856b2140015418a9ba3e77325b911a582e92a8b8e123816405ed8382820c0ce5ca491c0692b2b542b6a67ec87bb6b0334c1833e12aa958fcc0747802853f8536c1e24a0ea6e13ce23c96726b5cc886538ecdf65b7a485b73a34a72193af1ea3f884d820463601c7f843672bbec7d4f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f +ciphertext: f3559c274dcc21e1deafae8b7eb2b8f482b16570c20782312aea16690eab1b983d149994a0777c22038b785274ab1811bdc0697aafdc49487f80f4139bddd82efb395dfc83712b4e53ee6de05016f3277afeb9e3aacfd0dc21264822e93438fee414f2d8284de2e1d958a328ddb5107532d1d0f29dc93a5b833600469231f513f0dbbb1b32c0b527f469bfd08dbcea4e578a841dbcd97d92360da0334e5a72bb4b1d3b936ea94435d94b23f3a3549a11c204e1f33d0756ffa92e7627588f5edace35988346621d7b2d407cb5c3fc89e45bcae6faa82b1b5865419b9447e77055d000de9b0d80fa551362b548b3f6cb76d2325a51097e05a75691070619cdc4766c0988325b6341805a865fada300b997a2345378d848cab9ee8a40c9447532089f47f2deacade37ab519f8f10c5cd7f326acee099ada48f74b12b799a41fef7330bd9bbf23e8fde26ec7a4daff7680e1f89f25760a81117c2cebef939d71934425a0ef295900c58c2eeef7f2cbc5bff1ccbb2158721067310e0640f9cf17de6dfeec8c1d0635dbf03d32b1c302b866b343cea1c9cb7b0a57a69f22d1ea050d3587b152dc05d6a838997bbd38f162743200054c1cce745fb9655fde5020a4fb1f0f8da267fd6d3936c78e28d832534e47325aa19f6ae0fab18b9357ff59370e1833b2fd3cd65ec1f36f0e506df4a517eb6298c2e5b1dd9a8ce9dc2ad97522b607c8d3596f47534f0a0aa98aef70a9721eafbb8c46aaba1e2b8b9f12dc63edde14f2414fb3af9f76f435efdf56a855e4f75e15d3f64c1f655484077d6221b928ce551c4854f6f2e249da98f1f493c7da414e7f8bb7dd3596bc8426d1c064df107959503801fb5081f9b0f9cafea6d0c76e10afa23a49ce3b0ea3c648d895bc6e1b39b6454a529edbeaf86f34f6b253e0e5104777ae4ee5d9f3885ae099adac63db65e43f6e2765c7a4d142a62069032e3f72422d71166fa4cb75e205aaa513e4e1a6b87a070ebce326e8f17abb2b81ee4e9c7233b5d4a3c1c8754268501482431cc4850f6693139af85ff841229d499e1d37a3c7abe1d80c31121cc7790fe9a9203f97eb5a0f681c734066c1981adc3b0d9fe253064cb546f46d92ae06cb0e871f964ac0baf8f8d1e8b5d1f3f6050374e9440067a6722c6ac370baafb51b5af44ca940373338beaf1b36421453757287f18841538c6ba9e1aed10a6e3f8df29f4db175a1e595a0d880d72c14217030a81f3e57bd284098fd93b5602e90012d1417a52a5c1ac4d0641b0b9f39217571a30b20a364045d7ac2c1f0ee778882c6889c828ca6e3d04d205148730e3d69834526d5607b554c6f4c34112f94a39b2044642b65c2cb7a28a0f8a34c59d11af9cee28ed98de8a3e65239457d087d425dbbdd8591288d4b1179de2e6af5c4c22e4ea30215a635f64f5e632d78a9475307927a595b88b5dc6b54c6eb32fd249ab9d5fbc66a2531341eaca902a8bf079c4bbe45d0dec6c014589182aaf13bc05be177be4be4b8aba60f744a21c664bfb1182d7e +result: pass +shared_secret: 03c7470224ba22fde280005d9a8f8354c49459e9a168cc282f9d41f4f0d2da2b + +# Official test vector 19, seed: "822cb47be2266e182f34546924d753a5e3369011047e6950b00bc392f8fec19ea87c26d8021d377df86dc76c24c5f827" +private_key: 9d897195e7139d5b6b8075aeb5d176b60bbbad949d5890c707f460341c12a79ac5e18a9126c7c2d0d59456d1ca072034706bc5444519fbea529b17b3306113f73c840ad3bc015862de98ce93344a849094ea71a6d5b1742fd2a811d389ca465419cb8aee9b2dc3961c4723a7bffc96acbc79dc4b17c99b4022655d7ccc0a645981b990ad8ab7b9fe6a69b511731c84a2df77c2bd917f1220235e91ae5fe91e30573dd67a16ccecb18f4b9116958f812c7fbccca50ed732b3b946645b409b74bbf34c3769757c0aa0a04d690fc2c14df10b334c089adb54cf6b731377d433cafba345dbaf06366eda0975aff207e0d545a31aada7f85369b62f7d1983997a542e899aa2651a0f3417b142bf1317aa9b766de2135546fb2224d5aa298bb4a90b4aa92a11ede75f441734283a2baccc2f2b851a6c314e81ea510c7a31f85855fe55ce0656a88ee689339495d5c293f483bc67e49c86644d08d896681cb2d28278dcfba73c2bc2e050c9e277ba7aac072724b7c02c2ff0e24a48ec9d8b46298d14657fc74dabf368c6b0272fe3a5ad280130936a2db57e5d971d18916ec39b9960c73e2bcb5697e9690900b9f25496127a58d50062ce88c0f3ac9dc60b9a9f82406e0b0f7c6898806807f6bb9e0945b7563136cabbcaac04c6b0ec8eaa60c26fa604b073a0ca8a925ac99bce9bce26fc7ab69c9a1509c7ae8c97e006b5b8f3a99db2850332986d65b17a67a1d2cc80d476cc3a90cd419920e302074925375987cb7d268ff1eb4adb07cc4d133c381b47c40b42311a8f21881f50ea68343483ed6bbf34344d710c7e0f769eca3388b84c62688b4cfec37104f0717cda20e21b871e267fd275826da7aa92b372fac774b1611b18e35dd6db3e52a58c015a8badb33c54a60aa4005d55eb16af7547d217670a621908a9b25bdbac84753495c244af191f7d73ac08c94b7c1b522916790a245d6de2b274250159f89bb47a1e7c0850cb97bc843a7a29e594a5428c2ebbcca5a989993934b9a36ed1e7561663a8c9d400ccaa7d5cf4484cbbc80dc6b3ac20926b3a49941903c4eb41fb988f0d77a8d26c2c68a14a0162b926f4bd8a26c45e76c706f68bcd738626a2afd235638f6741d229427ab4166920850db4661d4019fd7ba362065aced015ba3259eeaaa4acd2cf8b1189e4e1c4a3d67982d942ff2734e3434a45e842e157103890c7d3510134466884bc16d7078430e2048fcb58ff0717a5e6987999a5400973809c30cbcca50efc4ed5c1a37f3a0ec71842d88b35d53c49b040bea967a8466772e9e3486306a0cbdc449db2099c349970e8462093b398b7ba10b505a76c4aedaa4ea661af1a712a560417cee26c4b109d8be72b88467752f5cefcc752ab3c324d2684b1145f4e7715e9d98f0a1bcd3f1a567676a138213e202aafba10c15ac75b45e06a43987d9f6c07de147e05f42693d12f9a8877a2cbc7f2e81ff9540ac09bc620527e919542fbe53379519f35c70a4e0ca6f0253caacc2ec83749aeba42bd4a0fb6902946da8320ec2e7954bf2a184f94a31e58c505b1d1ab9c3a19aa8a3c1da7274838c768e21978982f95c41998058c9b58b861b1090a5bc3277a1346f2108db4c0399454010510677c6c12c76cf7149f35031c8df3b243140f9716a571f62a5365a0830169b612abf0075ab40132d51070aec5566fe953382ac3a3705b8566064af52b926b765bc039d6f86ab8b27cb93b809e670da4457bfb8b6be9aa54d9b2bc94eb0c3e15ba6ce2b08ad229a469312a5caa04c8a4fca7c76cf905c6fc4d32127d84981608810a4752b9f26baa12665bdf30882d2a38200798de4a5f1d3bbb571085ab091c03e896f25b8759e43795dc83c2069fcb2cad05b166def78d18b920e0e59853c66bcb11795f604963ac3af33b43f78252e06b39d11449012b0b35bc65c2562a66f7597302377eb13119fb4285d5613d618c2227a8a187b132b08bf5b154745451fa627e0587c24118573f3628e3da59e96c6a66d26c2880c95eb1abd96202b3673bd64a74d1b11396aa406d378183325c9d03b8294177d3d6439fa79a2a6457d9f81ba8134bc781c575413e40082c686ac2f59c3fb45a580d3a50add274add391a09cb6c559623c997da498c1d002b0f9b5254c26266757849e7598c941333d580a11a1c197617b23d98b7da60b6af0521e287f8b0cb21522236395a60af9ca4dc7120925a4bf497e2ed65bcce78a33555ea459197bd5a499bc7c2b788872916ab3b961f25094cc96659db67bfeab52260456bb775f56e492564456c5d25f3d0c9bbe7118615aa37b21547255112e590eec52928173292450abf2e834f6207751b068200875d7303e3bf7141f28aec8653a463a774dbc33772849385304b42c99d3e531b0376beb153a56734887c1cbe59b55bc3cbb32da63d908345b200cfdd6303f3999bc873db53342aae6ccc789b2a4c72c7d08a58feb9c939a3214aa3b2bd27ab108aa89682e08729cbaf93a68613a8f56b7764c23cf085f6a970d8abac213f7314128aa64da213d5a53d2475f7002a6c354c1181bacaed645fae9c7509a0b10c8317f714d37f3791c03ce39c79aa0548f88a69dd6f87dd49a8e63307331e00c5c5b5fd7d9804f3c57028c2d3fe65d87ba7c07624fa35754421c4eea618cda1c5434b09acd0754e04439240988ebfb5f6d6a43c0683a287b5686364fb9fc6a62551916046442004caa42428dac71ef5879bebb09c5dc919076620b9701a2d8af248672e2ac0107c62159511cde45120ab84993fbbe65022dcaa6369508212d7a915183555181b1b9610dd147516f2496eab20f727724d7178357f50e23691c29400bf461c389932e2e663faf31ac53273058ba675cc0c3367c4872383f683a834b4a522b92276f70022153aaf4622f24f439a0d382fbf5059744c487013501d41fe9a99966506f2f5651b3ab0fd0a73c02634dae9695e850c67b154455aa749922229090b621e259d1f193b524579690262f94c114d9c690e170e526a99f5149a2840129d22c740cb5b2a50ae7809388147b943a4263d50ce72a2fc2fb6efc85c065502642f015d6b83aaf0880b715983bac12fed75b1c973046c79f72436a420b790543349b917fc4c3b18db80a1ad346389180fbb9bba1a6a8a0f0a62e6c24d580a16580c682553134738d0cc1ce766c13bf74c82ef5c548f79de19a0f2a9236100a7adc1b2f1e1b1d0066b9352ccc40663d53b0af0df9ccd6353381e5030ac08c3920847f233164df98ae8ab017efb305fcc83fbd22ea59ee59bb27757389a4a68c898dab92d0f63c3340dfba51e00312a05e721932b95b11f6da1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf +ciphertext: 262ecbd1c283c2064969cc4fdd0f4db58328c1d0415c0d279a737781571f37df0285542dbd69868d4dbeee51b9f7e73a4ebf5a2fe760ac58a594c1d451415eef1bd357d9d39c8c9e882880cf9f0fe8d750d35094aa8c8a7a33042d75d5885a7bca143e46db1c1f6ca6bfa81ab38263f74e78686101477c2f1cb733a0159e0b5fd1e3a82ea8b947f072ff363336bdfd185bf8c87f677db91dbd8f9ae2e40a3333dc817cab3ba73222443be7ed324d066c2cecbf48cb1a461610825ec8973327fa5c4291fc470db2634a942d59ce4ffb7c1dac2200131cff9ae5c5337d856bb5a959d9094ece3359f13aef1db3a81c32bb29fdb18550de8a90933402f9609576a621a5b8550a4d8bd025b08ee5fd29a83247285e50826cc778806871e9b4b2dc9257315001ba2ce2f15928b730b850fb96cb796ef7596c49c76baf598db30e3e03421dbdce7ff056ae786daff65355ad8bcac2d9fd09d659604381dc650298a9b0ca49ad3713569e6a5883b6165285d6ba97042ca40f823fc6a29c20777480e503dd5c731be8c3d5c4dd2f4b3331094a82f12f832dd8b2cd1caa43a4064cfe3556c4061cf53aabe3a463ca692d46008c4e212b475f8f127ff9f897dddb908da2cfd650db6289678d6fa52d96f08428fc2f69f19eac596da9c1ee228517f73eb45f9ce08cf0b56c2ebddfd42bf01b8b49e00fd6402bff5b456d7feee761a2b36aa31c363ae9635adf75979d2082abc115c8553a01c763c0c068c0b3d17b6690948392d5cc30c569c1ce7ff0bbd769251619559eee99523fe5e6b877e1b7b4b98a212b714447ac970d1b1f6411596c770b427c2b95fb0f4fece8dd3135bf3f8f6f4c69f673ff652a8eeb24fe64170663ec660ca27eeb43e878e8a4d509491ac22f04cf4cfdf389177fd5e5c029ad36caeda9f2a2eae6229b3a5051b4ca586d7a626ef4b2754028c0977d2cc6a803697a9d744713be696a0a643eba0f758ee467118e8954d273141a696eec5dd5bb3a4930cb825888bf95f65f47a2da8e4ae014264818db44634d149da01ebc065da3c7f25fd74ff61edee01c0fc86e19365c388b45170ef50bd19bc4528fdac7e4aa5fbcaaca5ac8f7c3600c6006924368654ede616e00a6d425eababcb41cf47cd508a004964a628222af4d8a049d7d0da51bd2e2c5a1d10935c291ceee529053a5d7126d544737dbfc866af9c7803b94d46388f7cb1c03428a8580f67e413d106e1bc65ca4794e22a97b9b30887a408b3afcc89bbf12e7c962fa7abc566cb5b4147ab1da02d2ac0dda2cfdf52f5e4a179e2bc308de9af848a676f3c3d026836b110da01bbe087c613ea6a364ab98d73628d1f9e4bc88d0421ade48692f641ab46ba6dd9c7d936475b98433dcffdcfe5f8eb1d7911fe4f584869413bf1cf5d156a02af1b79bfe3c8b2d01c0a3d76ef0203159adecfed5d418e36ce5def56f2a5b5400c018a71b9f8cc85ac6362d03742549fa6a84b74aa7d1ac71f5295c9e15a6fb48f84d0eef256357d6f5f00d2cd27e4092714d +result: pass +shared_secret: c31f7372e8c194a9589042477f34da3a60d591ea65e13bcccc07ba59402ede6d + +# Official test vector 20, seed: "81401db81138d6874e91b7c11d59596e4ace543f5a3471b6fb00999221765fec3ca057abe20f03b2d59003375fd71fe8" +private_key: f789391672b25e088e06ab6e0167cbfd56b01c01876cc67ea0cb13a4491472c4710f9cafb5d1068c207fa9875879dcbf60e78bb6236f2f00bc77f81b98d74da1f3354de5007c0b5243d15dc87282f2b2c298a5324f35cd2e6327a7008c51d2815d833e17f09b91a047d15b25e0c9782d34bc474a973ebb1585a23bdc22811448299a0a6d42669b31951da1f949e8573292089bf6b0b866f4cea0bb110fa5435550c11c477622b6c859691be5683198c198d2960f8932606dc3310f3193663abf161bcc6e1521a3c527b946a8cd20bb9c4b0627e9778e521ed5ebb7d727c79b687214c1c55b9a5da230598ec71dad4ab1833911e991531f0a32ed2a773d05a9c166cd4cf4c625f3665bc80bf1d46f88560800ec2c04a92fad947e406b8a14061642d879b6f14a4b2651d3e1c502322b256a7c0fe403038125c9f5412b5c0fb62bbc8ee41dcf071c5236c4d54621010a088970c956a5588696412d75b9e6f5a920481349634956a9a097cc8a0a5897a6fb60cc103aa1136131c5b30f4469a73c52d43578df35914d5436818a16d3eb44ef9760922c354356279b793a05a93214ac499b454e4b66ac1c1188e0c8375d0221c8b80012f21305b57ab023b822ba5de2d96f4bc0a2420ccc8afb3d9a983a59a46d4a32c3ee764b0d696669ea5b458816be782f3db39df35b6624a59f092782c886806d8503ea4c177e7385fed9c8d7416bbb9708cf8cc32a2b3e198b2c93bbbebb7aaf53f811ce50cbf173a92580861af698451c77fe1556d79a486dc75dbdfa3a09eb150f477c87857b0352418c4a66c57a0f73f60a16941ca247b4981c4aebd24985062b1fbb2f85323f87f248a71657760c8766900a1f260f2f9b2a4bb1073746ac6b73998b6171597b9d7fc42b873271801b6dd111162f7b2ffb55b044e08983f6ae95f731d0c32fb8d3108d4a048255a42ee290d33031521b46579c864cc04652e59252a3bcf315577c31695d6c8e44517b5ff76a75acc608b180a6d10842c4c92aa0ac13a5515d6c21ef25cdd3f81556f336f1da4e7fb89b73c195dfd5c772b5abf20223ce84c297b32e57a1467225314c37a27eb43f0df947b8baa3cd38b6c5cb2e5a99cc35b9637fdb1ea82c5fc3ab3c9db9cc9491b6095c499a2377a698b5b77799b1d00412d0c258d48e86801bf267cb01f17d335bbf4406463ed9c6575b10ba16622c888517579d68129603b0bdfd8284351183b6114ce424557eea2d2986bc238c85d2a1443af19b8d7051e84ac6ecfa8339d22deb23472a856b3056cd5b280c3f395f2b2370df8752827602d64bc033b26b1970c9c8f020d41c15736190db9a5ba1a87afe9575e7918e502382d9f763bc3c5b7313c8539564df19c1deab0ff7ac7d3c48981e5ab31691c0a52c4818611456481668ba8612f410b78c21a68505335b8f4519c7bab53328a700763a6d95163f75dc2ba489ccf92cb2ed1b72f2d904a54c35aa0c8397bb06cd676b28cb6d1e44502550c9d259a05204272b93600b09244423a63b4c753b69529d2b3d16114a836273fc702f17fcc046d7205e47c0903541f519641981576409a35fda1e3e76cceb8109ef446338424aa13a741b38acfea91a1c4795925026801c4c929171c164522aa3ac2361b8c80b8cd3e644f7d169f9a20380bc575968901ed7783b6969c57461dd879d4781bda106a913c629be512788d4c1f92a71f9f819ab7207d1a65499e061c5e0447360b4e70503bd58511e4c3333556b75f6a8945b8661d0572c764c82ca70ec870ccde0cc5810b816c10a46491e091c75f8b24eb975867e179d38345bdedc627a725b4d732b7b453d9b15710fe7afbc55beb26c77e9e8a58bfa764fa430f1901928fa4ea1eabe2ee827d44191708310b5e708dea4c5242a8949f658b548a2ad1badb9a6322c56697b513bc1c29872b56fe1e32d9271b44ea0b43bb896ca9a7358f45e1f1821fcb361c6ea91abca91ce95a75588402d1217d1e37a80b3c880aa83c31c5683783e3bc77bc231afc0172beb9957fd7228d8589bc171a2fe24757400cc7e9cab13d90a2cc12b771725e0f2180acc221fe5879a317fb93a10682044d6e22ac67c0722c1062ee70959333c08aaa16bd9cc1b624405f40b78411baf7bcb4af46b80ab021d7c8a02ec8d0417b759cb2dce94409be96f5b5abd1e207a9b906c71c18c763414b2d48d77c19d8e617dc4e41c3328ae39c18aa9aca985964597686c919584114c4b2429308e123fbe9a8fb86327054817bca07df8c7adb4e2a941742395cb6ea24c6106eb95cc0868f8a6452efc5aed297d933919b39a8da93137925b87ada9a5cbfc5a541c2395bbca59f95ab2c4a5352831f0d143dac60b418c2051390396326d49e27b7b6159c43b5de3e40d05956dab59088f417302588e38c1a21261c62abc8891e44ec4c7395421ac09e1b448bc2349dc88c571c74e470474935ec58001be48b854a13d9855b8c87131985c91484a695ce9931267c1d0d0b9ceb4bc7c4a11676c267958566d59431a630d4ecaa8beb98bafd22172a30e14c9acdba26922f0aae067c9a0e9b658630873139b9555b63a73bf8c65319d9423d4a927abe86a95b383a7c0c8c54170dcc70a535b1fd814cb6c87900ea94eed7b51cba571dc7b5e6370bf4928bbb27b1f66d770e43cbbf3ec0c615521e2b8adddb42971a12db3a208f6b690289b059913760471367b4154113c14606c046a9591aa744683c4024b857293eb0e02ec7c75270c571248c0aacfa7e47a35e72157877847db1efd73c0922cb211c4538d018c05382e9c97c3d98cb375f78d056196466519baf3312559315796ce3504731e811432a83294d75d8365391fb348f0136a7fd90921fc3844f57d286845d6d663e855b50d884f511a2020b09048298dc4da2be4a8398d260ca4735d84f2b66b2405d48032cf3174fb36b325e723af241d280863b4d2099fb429c0414433786d33f880d7a15d3fe019e75861c7836490ca2a5b0771ecf904f794c746b4244d99226899c847814967454d7a4aa0fa743e2d2838bc9461446b61d9b006b4240098f37021c7631131a84bd75d33374b9067aff5e900c4d0490995875606a7baf87b8f4960dc84a7eba96f4055ab6043c9fab61fbed883705893aa89899ab975284867f63035a392902a779c8df9cc63a1b944943691b770a9646cc731a93f6cb3dc3b183b71429770032d08a778217f9b72bb16ca81f07c66d436396038372aeb8edc031083d95399084751bb9f3d32490393b510796c16c630cd2d7e0666cab62b5d904befe6e93d8e755292fa875609f2f63bd194c87e6f04db7c83d8bb1b9d868bb7796590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 +ciphertext: 6aa845cf5cc8f06368e022af35d4fb1ffd740c05adccdb4f92b1f2b77b27a219dbf3e898d79dfd01d8bb73b1a9031028ba2d3ee9e02a2237bb106d1ebc05495c547fd93db7d3ca9b508a75525b13c5ede34944e8931b1c1b60329b96b49a080520442fadef089077289e7cf0570947f927449dd90c296a95306a6de4d801c06801117237feb842bb4cc9941a578fc6b06ca2763ec5f24ed083fdfaaa2bf77aaac924e1c4add5721bc9f23f918eeea2657f0e65f16f9c504282c18f588c6bcf684cf742acc6a96e33fc6bc100026753e9ffba26b4d73c915715a2827e92e19ecebb973f8fa664da4b6b464cee0024b05c3af87e28718eac5074e66992974bcddae43bb552d4be86650fa879dced0617f869a8b9933b0fdc7589c1d5125d58eaca6661d6a3d38d436a55e7aa6735514ada503df971ca3a507ba6c515b58214cdf146aef335f6e8427d794d576f9bfa677358dfe57663b0e1c5dd762bca16bef9d94fc8663c66d4465aeb8196ff85365cfb2c9b1315c2b444e5df7c710c68b08112aeb209cf8d166b9a7920005191a2530b8a8705e4b8ad5a913c08e2b68891583817bc0fb7c8bc0ab700275b81f32ebe4ae4c3c360ae7a0bfc60f3400fc1cd4b3da233476147790c8a63fd8c1d5be09bb516ac4ced4d6661897320186d7d150af8077db1d524444aee7cd374aaab5439621e0c4b5f72290dc24116afa792a332102a671547d38f9b93078be4ac7f3dd35c1eee5414a57db7a4187a6e3125142c81474c4deb9829f704835a4efc214184b1c88213e39ca70af72fb5e7d5ea58b43e829ed2b944787eaffcaf0ca13318a0d2c94cc6eca65d25d3c55038e270ffcc4069102acea6c5e6ec8de8b7c76e871dfd8b1c9a235d1bd2060e26c5a8fd13fb3017ea1fbfa72c608632abfcab1dad682adb2819dea4c7363c9ce3e1a117776712d2884968d9b56173e1fe46f8cb83a027e39693a036b749532320a9e5fad26dc90e91b44c53cf041dac798ebfa1a5cb444ee782d4788ab24880a6577398424d348ecdc45242b46b299840a9b01e11746eed2f975dd58cca828ba746764c5d1cb3a392eab866239a553c52e0e72e88bbe8063876c98d38956ac1ef62763acec6f8ed9ae6546c145090cd990149b7c57fe84ea4657310486e73d85d3f78cf82ef923685042f1c6cef7c7bbd53c809fb8bb535a3ed305c23810ba2a4f9f63da4b7a4cb45599869b57e4f4fcaa3db95be0ed98ac715a564f31c99aabcd8a37d2ec38ef929a15ffd16ec33afc8d7e5c6cae3b8cda327fdaf7bef466a24cf7ab348f798fd8a9e12e9a4d21a34f373b60926b7582d504071e0735affd8d41287ca37e152fb4bb2bd335f64d8372bc4a6ffd472849d7db497f1052599e7eb7a5acd0042e473d303dbd86241966d6990ed019b1d1000a592397495e1e599f15cee611ffbc9ed50af3f29a9d4b27ae92004ff02c0b37fdc04db01e0a07bcad738d73845074bb05b5952c701c5b1eb6a2af17ad5d20c1beb910fbe0c21d0c5eab751bb6d725d +result: pass +shared_secret: 9dfd08dbf59350ae2308096f935c6767daeddeb2c6997992d4a02c14b0e58c60 + +# Official test vector 21, seed: "30b5de5b73681ec08aaa03f6f2d2169525d25f4042a5e3695a20a52ca54927b85f8bb948fc21df7defc3910b28674994" +private_key: 0fe71ced368f0f36b7b8f1be4802ab897c8919617030a5381945883b69ba1b456a2704c52d3a24a3dc3e8c35c09655cfd6c2c0f14489a1db0a991cbcfda5b52d708fe30229c272acdaa3b7577cae68845776579ace017b2c0112adcc57ce39265eeb0c5b2585ef868b6bb56a74089fe2373294298809d820499342c7fc5343b85493f30e773668c790aa55234ae7a230fe2cabed5a55d4699b6e14155f5793300676533c230f529f8c762ff0520ddb9b78894c241181b69bb09e3f7645391367499c707cb4454353b8f6d86fefd8a3383b00d35089d6a62be348645d8c03d5e815810894b0e962e1c5303fa5580b8483b8556f55a62d49da3257f63e03533c10b74190134f1cf3530c025bb0035896628927e8c3c926b27ac05265ec90da933104232b0eaca457c9131f95069f40141db8239c483cfccc26a2f41f5b7533bcc26f4ae13ebd26986227bc4501a3f5d74d11da48bf1336a8483678a4be53154bcbb62d609733fa678fc2f946ca4c5de03741ad6b5becba4a9688c455c81b4aa528c2515c9cd33c2d071c1cd96b5b483797e9616b43bbee62088e5987eceb1a7b3217a31c37494568b40b453147644ff6b199465266911342b3cc7026b62338413827b51aa16ea0066c0e4228d0887775b89c4858a46e018e5368ccdac224ba600ec8329b0a75150b82b51fdc5eedcacb9589c870b48f02338dd3bb99501a6c6580ba52dc4f98b66564736c3f9ba887eb0351b60df54057245c8098dc440e76100d4a4d572a7f34f80d5742833f41a3bb9508359801ed187b2e94a97472c9da7374d33ab4bd425c7592cd0eb155f1d90ff1a03867599fa4c693472233f2f8c5cf86c89be5921e607566c226c515cc27447d7c6970eee6851ff06238ca9b8b18058f77357590b6e88b5cdd2c1ca7e477b25a21b2a586ba231dff318f972a1805b280df4445545a8c874053f740b462725007748dea3866df03c1b68b4d3eab9984837f0958a905ea14403a1f135c4eae2299acbc5986dc0cabe31de5459188365bb20aa917894967b39d535b5a022c5f2d02cf6431afff02b9a52162622249871b537e10cb53aa14d301b0ab13216528893b08bdf9145bc56451fd251dd0a926357303860909a1e132ffb58288752eb9cb5629591247d3456113279ca92dce372f877a42802c1dcdf175c2dc159a082c0727122618761d667b80a272244ac8b34b56004580627ba261749849c0a5986494ba851dcbb0bec8a75b1355656a824a6f37bce21cbeb1f5a36fb1639ee743fae1ce0cebb973d2a0e6ac024f434fac8882715146a5d0cf3f3ac4a6374a672b3dcc122f2ccc37d4d8a60fe34613e2b5f828674c8216eaf0402f319e3fbcc1bc9620ca698b42821312289a2f511733611ac45b0d1354b7fc815afbdc7ad8ab14f1e43f7ff73eb626944b97044021761d352468cb334e1abee2e7a7d07751a34b35c9f2492f258791763be524a00e37a3cbd31c86371cfb71388fea7e67a85c3914892d216aec165eede03cd02233a5c97af27c5ee0219c8fea7364933fda62a3702a05c207527d79a4aa44277e3ac03874c14588bc60f32b5cf60226d15377884c1b37272507915fe97be0c4aa282560ba5b2ddaf0b0019241e200929c660cf7770e111043c8dc4af1014f7ceba48a445815408b2823666c6b40684616d823c86787a412c26e521ac8c16868d7eb5646909027820444b8bff59ab46086631d5a0761a75a79d76468b74fd8c20cb9784929f2a78ad1882a094619325cdfd05de5a30d622551c840ac79b0b5b7a513f702cf58333f8b0382ce055a4c138c80764b8f882cf14324015212034581b2876efbc3ae9687cdd7f2acb964cc18ba90005730d55673bd519be3173d3e231166c7ac0193a4fd26085bcc6607d4a6f73367efb5ac1a1a063fac0207766da41901b8a61ec7e45bcdb73584b5891ef112251a84e9c07ae7c16f52362cef10aa3cd69927db4175ba47e225a220dc2653a58dc9854210087ecc2486ab13408f92bf902635d2ac331ec1c95402bb55b73b5cf063d3885fd1874d5b03100a993eaca11e978393ff33a31b6a98f72479ad9b88d3d1395c2726ed285b793c489e09a8a7bc744b361ec87427c399290d092a1d58a5007ab2209044895941088a81b1b44175ba3e7b038ed17b1b0cd5bbdd1bbea3f58812a51ae58216b1c18907f131a80897353a328435b927d377a45a6be2310cb22076cc428371d4b772ebcead61c765c875312cc91e73b20be811706caa4b52b089ea1e43d7b61cf4b705c1b7b3739fb92c53268a685c03723b4bc316f679f4d8b87375a4188382e711b1911502e502a3f523bd5531b30298815717ce2211283cd675ef106ac5d4c37a6809d7e3bf3e3c40c6c5092c34198659849713c090db27c78689c6d57ddc90c04bf1af5cd56b11c013ee7126958aba8ba7284ed58828f1384786379eb0bb2b8c50a504a3b0fb83eb5964ed6c20b908731ca5c13d980d9a1c0af7c7527da50262c65f7c2132355aacebc1ae5fa7059e7310d6d95da97871c50a17c0d1c68dcb6bd7a9a697b9bd9bf15a643748c83bc8b244058f0c93e7d1a99111ac6f046a5cd1713d977650935ca5925d6e10c84c7ac692527e27c8465ea46fce97c64dc66eb1110188c7a3afbc94c1423a845b3530e35540805c881b999a6b28ef185273e584b9acaf26746829fc6b1c88ac03578f98e71b67f5101de2233c841d2f303c52a500b3d1bbca883fe49b5a233b270bdca755658448666dff384efc9cb26a664106c49aa46c4237d9ae0ef37df159a0c9e880d7247566113c12bc4451f4c6b4946cf76c7b57f737032741a3047934b09e697acb2210b05b17047ea8a460e4cd9e7068b4202a8912812a04286208202de04d0c91b9d62992de76497dd0986917592e9902f33c4999916576eca4bc8495fc7233ea94671a3588adba1355804f1c475ebd788d683967aaf9b07a3cc9ec4c2c91a61e0456c18dda1a238132d2eabff8002c0ea6ad88d3ae3f4769e298aaf954550fa3cf86944184da2cc7303f1be393b6580cdc1a0e55bc3be7300166d570fc4b8644156cfd6c8975c29059c7a550d4b63d242b3e11b887a31bf764a911ac62801a6845d6589b0acc55e4c80cb37a3784ab8c048abe21204b152069fba2d6b75cad8ab3f133678889a99d346e3b49c0c41147deaac27bfb7c8aa3810e3b74bc0b205f02753a48457bd4b7b624a3fba1443217a88c65c5f63a0793951666453692c56b790391a7c9297e5224771c7a441d5363741dce698c33558c584f87ada29bf78a689417b645fe127d124339422be80a993e623d13bc59f3406a6fb6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 +ciphertext: ad805761011ebcebc43ee0c2d4dd21a0b6ec492ea384e8112c989442a37034525a90bcb6873464137955f8b8e41189fd97c281236242b48028f6a76c0732efdb86e30a449b895b75f9ca822cbcba38abd856a21cd65685abb38d5260183e52e69f696fe09439dd3e34148c9df57482b55d5ad6993c1a83876bcd4baa2dd542f3683c2c8d62db6268947aac07d6642cb09984ea122072c8fe2869e5045d30bff4f0caf63b1d51150003c459916ca2c590905aadf0dc742a2e7f4da143bebd6ccd55db94642ca09a3e62246a3a72399193e5f925a643c75bc0c7cfbed989c448d5e000d4e433162785d2b95c7e7bde8f5b4975dc8b16f236e1f8118c130dea5fdebfceab87582eebb27fe46f313fbeb5c8df0ea6ee306e7718bef06615e624e1880ab21c3cfbb53fe3fe9809e50d8480e6f9752478109e2e736fd3fac84d9b8206c40eb17b9d4c5780bb8f5fb5839cf7d3790059b63beae82c8d1af8477544710d38db1e0fe2beaae07334684526d4f5386ca5b7b4416150c2e928c015d4c5f03b1c95eb12056152bb712aafa12b1af1d252f2eb1a65df5b71292780efc41de0b4d49ecfd2de375d2550aa1f6844b06ac59b8525d4a902177279fe435ab7e36dea4ef0bb969fc5e91a6a27aca3b6abc9992aa485e80ff8103ecde1fbaca9c55dc0c90e119c81d6a737ed1c46b46fd6e5c4c424913a6553baac92612dad26ec382485a6b03be0174c2ad6f73fa111e0a6a212834b5cb644aea780b18d7ec85deca92c93776572ec1a188d6c912337b2c3d136baeb6660d12007ebc17755df4e07758a89151248b4d700336c5cafe3515484dfc9a7eae2f283f87b474d18a9d25a97a4ee564f9459a0d93452b0bcd3de0ed8b6bfac875638d80bfc1c734d8c9a203844dd30f0a352f889259684d1ef983ce65738683135afb28a74346c4b225893c4148fbb1593efd3a3c297e2fc912ea5a91cca050bf2329d3c181afc83809a5d73a8be85346771ad94080aa694a2d6fdd9d3a04d6ebb0eae3840e96c78fec095d58dde728e1c04d2f067e2832af5b1fa21bfe97e6e58d980bbddbbf7aee88f2560da4bcd5804008f7be7275eb5eebeb5bf1374bd4d72ab894b0ce892d71397ffb0f6b053af026377a192089e8f64790c178cae6e15e213957f7ba3515c3a001b1e72288828433624bdcd49cc2be5cbfa9388fb1a39312a391abe6d870f377c1c166c5f1c0f92cfac3c2a7c2bad2d1897c592a25cebb15425e9e23cdce8e0276c2aad0ad092916225c39f7d94f9432cf1622a5c3a8cc4a457d3e17358cf171a7bdca13512ed376911312efd62167896a0027e3d727c2d6284dede2dc0c3ca3e7609495f12c2204ece6e512f17af6d9391997c5b0f0c15bf9975b38c770d466919a232f66b5a376870ec57abfb6e23213ecc203f6c426a04125c61b4316f5ef9231e4789d8b20840bbd2d4141a9a7be879320616eeac398ca8b76aa95af7cc0743a3a2f2c1a116c536e7547bc93169e11c66fc5d4ed7a704582ed38ae2660d37e0dc +result: pass +shared_secret: 03952e1a4915d112b87569d1f79a39f5d69a8dc11c96d70c529d2162a6024dd7 + +# Official test vector 22, seed: "e335df8fc0d890588c3e305ac92c7160ff199e07c85760a828933750e3fed8c83b0dbe802234481ecf890a32d7a2884f" +private_key: 3937043d61a4126a8c1ae01ab274b31b8424ed88cd180029be89cf1ea58b2a6325ffe8627b7bc4e3e8a4b3c60fc42573225946ca400235bb54494a386eeaae44f7bb8896c4f040836110c4b5796985108d116a76e05c984cfb2a9170811e7cb4c41a12e3601b9fb24bbd3cc0132c22d814bb98f049a8c155e38c242c2156c8b058eac343c77b11f550c52e9207a25213b40648fc70872ed8c050920c4c078a9b4576b60909bce496289168114a24111b7d15f10c06d7b719ac4c4872756d760970132bf15b08972c78f4f1a5a6a15364c0aca1c4721b3c82777878a861b751aba6a1eb75172c952b017ed03c9007541110a935207b037aa7296e73b998597240b60115333e50ba0c6b837c4cf26a027470770358a537481675a7fb7cccb901ce7836b75b010fd687691e96487bda2664756fd6057ffb122f69b26e3fb3ba2625b9fd9c41f4887cd0124df978bdc26b0c6f3b0f9416c38b2145361343c2f2b752c7a885586e4ac9955ff924d2365847c22e06c6556b7858f0d9318c037e03536ce9c5a16220967ac1c55e6c61f00a5902322c8b35bd190042425249f54a3229f90453b0942aa9a31f421463f514dc64024d5616e653c9e94bbae8e82fa914863338c65413a33e520243f92f1c3a888ea8121be984b4e4cfd08285e904c34465bc1477cef53757b1025b10d45415fa2e57931ecad301929437b837146fca445211b5719a933714a1c29b1eb52a3bb36603c072b4ee0b4775d17b7af9c6049825e2b654e1c4bdd8e56f531406cc5297d2ba2cbf19b8c43835d1c184eaa661d9b90a6e99854787c82d53b794d8624d2406e57693143736bb34284608c8b20a9d99695d8f87ae57c83d095a106e793fb7325b80eb26c8cc345ea2b17ed66e3d437631a018a2c8bb7cbc42761b95f2508f92732bfcf9343c4ac48a935fd9260ae0463bdfa69120ea90f3e9909b2541da03516f922e1e58411d1492686529cb030e1c9846f63abd6ae9a781853bcf31af495acf79a49767731eba21a3403140a707c106425c5bfa2ca326247515b229eac449b01227fb1b228c8637732d818c6579e4a5f0189a23793f8e39c1cad40aa70a3c6db8707aa76831dc26a446287d8a4e45ec1ff7eb00782596f7a7aeed5307e5c84039b4231ca6609912c6e4e71dad93012a21800914997f99970489380e12be57979cb6e49861c9605d02a14727a17e286b40712233141e2fd5b3834033e2b215ef44aa752201a65334ac223817e290d2c50338a2681d298061586ad704862770867b0493d0941c4925acda9b4185b64588e25f1015705a885faafb1518a70ab415cab51a25e3139644f31f1bbc0ab9573bf63230ab125891d58143ea8bcb858c7521100ff581ec7a97b351bbcf5b4161f3141ae78986713d5bc15a57e07f2bbb8244b11d81a0804a18ae63104bf75c755f70aa758997233154bfa942a47277ef20b312a68e96201f227a908dd7bc02e19391f73825dc44cd258b707b6da20ca56a2b32c0202308357e48945d79a38c0560271ff0ab2e8c1af246940a797cef018b62873474a38a595127c026699d625ebf0774334b0a953881fbc1b0f5c472f549818d44b63ea59541a826c49754926135670855bcfa888f30a50035208f5a75de6a8e3799cc4afaa7aee007788547e7b79c7507bed6a8522be18743c101463c9d0c28328a68b0d3ec380d04a20a31ab8ce6465e5aab4e2332f30870c5024718b1412c13b7094228e6f3a1a32440edba8f5ca66d968961a3f28705b9778713cd96974e42a50ee9eb61eba399cbcbccfc8786f7963c15d61ef8d194ccf37db2e16a31cb57ba79c9aa4a5da2593eb56c29498ab66f370d7b76971f797f9cd38ac3262226a64f91e03a1119b8eea00c103358572a1f4ab68f8eb4a5f889540913b23ff11768200694597d19218a2c30c3c25829467ac2d1b67f85d37522b22e7e44b950d152a8e087a3a35e3eb1c41fb15c7fc264c39272f01a0a2a91324a1ccbec627fa1ac81edb30ce0f84a727b36a4f9015a25ac67e3c76629c2347c2478d61b42bc413f6920f7b6774542bf25b92a7715745120ac1c4226e3b623860b4a42566829317e09d5868719a1e9babffba9517ac95a7c020882939cca54005f94791f37093eab5f2d15c1e7a09b9ec7b3738a197977c3ca0baf9f093271d00387841f2ab98c9cb16f19272d5e4b8d15e69da97517cf833475336d8850b5c3c87e4ef2c526b95e75060dc52c0292eb69e3f04294c854bfaa0f0fd5432dac0fbd03414b5a4a3b7c7cf36906fee8be6479c193b7336f4c870aca768d3ac2d84234b330a1f160b105214d469c8c1529bf31b3aac01a3ee1e231f389a27d4340b35a463ad002a7f8327dd5abed8b4256e87129b1be8ac475c32b97d11397db247a019533acb1a61c15b9aa4bc91d45af064a608b1926c93acb18b7c75d9798569a89a78463b51b5bbf038dae3c5cd133690ae80c1ad4541267bc10c83343a12439d6844b931a1cc79a0b5090214ca721f61e633600e8f76db52274c6c736e4c8b63089014a4012015522a9385f863507b1f1cc7c814cb47b00395724d601ad7bb27e4b0c43deab0664cc858d4a74576642eab3c76c211a58274e14f615ffe70084d7b7c0189d4d97a927a8b008b85888c57a0f6a307234344a5960836cbf6f4473ad988429a4ae3ba697bf07429d17c059a65d9e35a845735ba0a58e989307376c1e61f33023221a6611ca0465be5200363d49c53cd44b003307e5cc0c4f7b15e1545c72a7c3410ba1bebc8f7314b3b9d295c676bfe6aba9848554fdec9192f808329c60a793754bd6256cd030da12bce0d0765e51548aab0985ac86d1537ba49635641b3a26c05def260e94593b2e0558567c5da09b2cb122655bc4cd3e985eeda6c3f4322765e6a808ca387cc369dc11c9dfab64d4a30584e5329c905dc480801dd57d9ac8ab4087967177cb3163cf3e934a951a3e248a54cb922b6ca6ce9b4cb8bd788023e6425e75aedcc135cd3c59920c5ed0356fc0fb5a1ec0035b7c8271726dc8d63dbab3c78326a26c5b0f9f952cde7373aeca36cf6a438fb39c38a56124171593ea3bb076320bc8b5e74204777b7120ba97c3e803560605cf80c39324a0e3045d0f687e8f219a2ce70aac209b86d869febc5b51398341827204ac584c6b3381471937e68efbe5866a8569838251171647b4127514db9b84482d5b9a89119761c7f6508a099961376d6ae3706f6ca1c7c031f430190d6231425b14c6544cabe8701f8e475892fe31b587aa42d334fd189bdf0c87bedd5c16c32cc3867910f734bdcf09869c7604a59ce36660074f561e12da76eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb +ciphertext: ff7b85d93c35347d0e98aa40f91253ba6c73520292eb3dfeccc37dac0112164fcc457e45f12e39aa2f7b94cb5e4038d229211c25cccaeebd8e7e08918d38b7cc302bb2015fd62a3b1fe6c56fab9294b926e425b6f8b049e8f3fccb7a6e4115df6c4ff9e8a9cef2ec7c7a03153f922ad5d85c6700092f131d7d88efcc76719ca35837678ba1781fe5ed8a106e1b37a5d5fb139d8fded8f980a64d54194ffd6d283d949973037261f7eeeef74ffa7795c7a47c8508dacd6dd346cbbd6bc2c6f978539132cb2a4c6f4e541cad9861f9069a810b3a465eb8f85b615aadc15305f7693b7188c9e486ab742bc024d7f8655ea08ec3d731c131da78251347eed4549cc36d510e9e6c761e4d30407e25664c9c6d1ac565f93216b99233da67132258fff4aaf0c9c2665a9afdc7c904404ce24c5a17a619a8c7120b43ae3f53a0da30caaec6d935e93d6f949292db368bf430a5891834558c978d23f2fccbe45d63c69dca748dfdbd05c72a9e116c2a5519c22d1ce1edd151e45c249d3660840381a3a27e9bdfd56479c31fc4fdeee7c2475d8aed29c8bdae54add3c2d91033f6d7a0ea2de783813b332bf3f2088df7111535768b8de8461eec59401484f404e59ea769b107b7ea6d9fbca55400ea73275a68ff616006c3000b7111cf85c96203e1286f6dba554f06b104295ecd4d78b4af5bed95a5ed586518e4e213c7cb61784a054f6098bc6594de6b34a099dc2999e726377eeee7f0b2fd02a718d0a605ef67d5cfcfb93b14f7a340140c02e1b843498378ca0beaefea89668dc03316c14da4cf3ce86da691d098e5d318b9095a2eee24c782e9f3576521c027ed063991544e8c65e6fa0a6edf25666a81223b9976651ca614939bf75c1586d586a6bf8429e7f174867acf873cbb6b6393d21b621005cbfaeff15f22b383de2ce9e2af54927b53ba29e406869f0b6bc172825e839459cd7420d05441f6b36541cbe9c46639b2d6f00867af7ae3cde974c00caa724fe3b48c928649e66e3792fbd5330cb6691f442617e63e0aa535952984373fd1f1016bd37de960065604b47ee621a8301fa5c087d2f4f5951b6eeda95e4065413da627b4aae73446c59044eddecd906c101efab00792026e706ecfb33615486623643e8ef5bd29e210bc2e1574adaf02766c62ad6f526b5a33836f2034ad787e9264abdfd068b5be29744d4fb3e4151494cdf007317bb161658e7e37b8994904de17acc7548fc02f08aadfa0522d441e1dd79f97a40c231baada2376197171a59812b4282ac111ffa4dd04f1c117815a965ef74de935ffd96fafa491f496b7648dcf365c18e8041c16b5068bc824474e0843201c84e538f6f9397a816124e3d58ac92081b4e13f55c95d8e0f1ca0de2218537ff4e677afd867a93ff339f10ebe8fc0456d9e7e8c5e2dbf6775606d8d6c946146340cdefe90c98145fddfc1ab102e8867e476645c693e8907c07508c433870eba5e466588289dc942bfd1091980c9c1e83d07f31dc493051923d9ffe9296570810106 +result: pass +shared_secret: 6d2e1f456c87d5a3c79456a6d35fda52f3e9cb858f85a5f7931f532fffe26dee + +# Official test vector 23, seed: "fbea1bc2c379f4f8fdcb0de260d31cdb064c9ea9b1d6dfbe91b3692add1d34dec9c9ffae7bf5e72ed2743ba3f9f2e43d" +private_key: e2903ded4136ae2736d2f6522417953c15774fd1bf9160b6553b0a6f8810e2208a9205833c5479562ac268b6618787c4859838020a1cf2d16d7f8cce4f18872c20703522463ae5c2cdeb4952d579a9c2726783562364cf8d86cd1254c76ce667df6155ddeca4572506240723ec8561d7c65ff953158ef4cb3be6ce823c5501db9e29d8c1fc23327b04067f755b87d984348acb362b22cd416d754b82e52483d8cb422eba4ba8e649faf56f30586f09d4acac0c3007ec6ca1732eae602a004b58368785325b06124156248b22d69806b6b2947a75cb16b824d35c7ec26a7a6722c4fb36a5aa538c16e4b6d366344d049b36e53a6980177f3989c301293d3450c8e2abdbc186972990dd933f9cba7ba31717bc3126d19a0fc3d090ba37c447db6143b63383745c866371c426171b667096e46e0c2942d40b4ac2f08f48b136ef09c82eb5bdb13a514876274bb20c6b40a600d1cfa0a8b29ddbcfaca547d1680067786d6e50a64b70546ae3af52451a08028976ba78b9275a2b011858e0cabff149f7854abd2b390d28a661c7a871467a2603c5ce29866839208b5386714618b6a2012fe2b4b9753c8d21bbe74c477f427e72181988d0a094c15a9c24a7eab46be919a71fd60879a67480178453f4aed9b63c11040d370322d43b4077e74d8f8966319042c9559b021cccdb0874009d61e3a3970c14b34a180cdfe0a2f9d5bf60954cb79b5b69169598fc88a9b11ea1287a8cc88f877659577433a97c16af3ca892d40cdba7642fc24f258a0207da5e818580694582b7b7982a7bbb5de714e7425b7552aeb394037827a98e765d96310d5014a7e69b3db3b6797bd60650e36e1ebb0342a77576f496a7255d936c5eab1ba3d9fb57d72305272a5e567c621746720878cdab13a9f5b0afa5101a6f7b844af1bbf660c584205bcecb22a74b79c5b4302f29bbc502b4a3c9854682c8b123a33d949d878b4ae609ac5386ab5896ae2b877338b3200e582f34fa450adbb27480296b0bc6e0e73c2ec1b633f56d1b8a54ea65ab7cb62e5e4a2c4e82a957194321e1bb39413c3990b74b54ce213008979146c47301e3c8489b257be7a50ae6d39a5cac1dafd41ef2a91b54756779e5a8e5ab79ce481ef9f80195ba808769a158e0b48b52669c01980338042d2a5e21362703827ad9433cfce6191c7c737deb92ca3053eaa80d9c9234f54715b31013cdd31afa49a24993669adb72ced3c7e3c02c76aab8ba56a29686a115f4b36deb2fe00bb42cbb6ba8a825d9888f6347a6e61a7892e06c8ff9b8fbf1270d02beddd4268fe4615f9994ef8b93c8615b6a63c9b4d752a46c51ebe9c4d97c160fa27f8cb62aa22344f14339875b6d0f920875c3b831186ee6f04c745756d57b875098a55fc1b060f353f606bb073690546769dc61600a671cac18b563aca5e6a8a887eb76bf88a33d814ce9f32db7cb5cc3d16636493421fbc550ac90a4b99611b39cef828dbf056c0f5043be8b003e260610f27a59a2765d57a13d2281d6904526b93d7745b4f8b98085397688ab559d073f88716dfe5a39d09975de107a3e6c68ee17b3b63a9b10ea6f4531bdb627bb07494f279052cbca04722bcc0014bb3993219236397dc26db4f73dd1859b06a852e89a4845a0943e5513e8a056ddcc2623034a4ef251e607268997b7e90471d5d0cfba5639da844f0c9a7227c8a22a83b9e805942b67019ebc45502c22d369abbe52a9aa6cbef78ab914337375d9c075854bc9a3484a0995a239121d918aa64b2ad76c6873790211162509ca2347366d8163803c3433d32068d0f8b64cf38c2370a3546083ed45716dbca7ceea50207736fa51c062a6a15ab8c124ab6b00334e03808c858ab4b20a368df787cde92169aa4100a2adbb4699510753b80a63b492c51f43a81be012fa13405ccbb0dcf1166ef55f450781244420a0ac9301d485ab561b9ab67f5805afff924c1f43a5b1628f60baca631931bfc6c9bb04d0fb3727d7ab6bcd6cadffe84ca57851ee201f8153ae6d64c0d2aaa432baaa0539a17e731cf4360ee37c0e38e0cd77ca85e817a827173bd9c0ad253a44fb244f47f956146b4281109297b05a9320953c022024373d60701a68450cca32883848c4cff3c64f548cf7912ff61a11f06030c5eb29fbf8bdd2b16541fa85b8683493e8239e22c01383985aca367d6cba52c7808ff12b79976b794c70471ba5cc7908e4168d5c916605337f26199c34519236a855ef063423d7777631bddf164b2375098a25c9fbe9a7f9344ac12aa0b65a1380946560123f82e033fe33638788c82e7abf79b2c4df9c6da2f4301d70465a3c05e3a485a26a3b8d98674d91594f24761f1654580719260c4b409b2fcc418a24082a11140d043a6dea028dea1a51e9224fddaab5f3aa64564b3c336586dd8587442800ead481c9d27ef08908b938945b7204557c38aee2753709b68088684637bd39f1b78c6929c84873822caa30b2584a02c93b085380524405caa5d9147e6c837bf0ccb1aea19db39471d1a573fd893028479391680282922b11ab4d78b407f7d68eb89b615c32593f2207a4b017fd1cb922778ca806b305600546700d9ecc70ccf292ca7ca0ce6b6fc2a79731f6a9e8b83c9492381ad561f657192bb3867d3cc663bc5ffb48c997403b4814c915616d03ca71d0e8a93ef0acab8a55a61a6a58d22845e27d6c453b79391dbe02797d390e262a6be41cb564152768a5b1f2b7306872bc9dd63327e22e518082ad337f0eb8494ea23e7c730f48e94d21ca9ca3f660d4f960a6285f1e586d04120a083b814ec4229717b23b73c0c14aa6bd45294601bcaa89429814ad6e8a6190289758354043eb6d81842a6f332524da9e63dc7570865695c043c9eb9c5925bf4c4b15bee14aa58a09c4d37c822ba891f2626a414d01a10f9fbcbde5609bf4d982e23392a4cc16c461260bc518717584bfb96e6960b6d4b673f61663be1b2babe74d46494ca9576f3200ae3ca8a58de308d8e99b65384ccc30aa1669898722b1a76c87dcc276474a74c2985e746194844c0e98f811dec520bb54a1b4572b0c39ad04820f8ea878baa9caf03018d4a196c5363f55373ef5a98890c719b7a019d0eb023e319241081694e74bafda502529020a8b8f1590b73d1bc36ccbc8d4bb76c44361309977270231a51a7999e65b923b1200366ef381b8fcf8c4c5d3add0c465f7db79f7563dcc67940312ca49981581a798ae477915f078f11023c50efef1acf4f751801bfeaa5ef93fe27771a40a3d377f0f1b1655f6ed13320e9a9a59f83fc58d7194ccc92bd78a45f97f721a1eb554499d0e4d5b37aefc23a8fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 +ciphertext: 5d1369e253686734a5e45c65a04129cc5fcc91ceb595fec77e2850088fe1084c3f2ab3587897c3658661e3cffe185f4a0433034b56aeaa430b5a898a1f682817c406e4219566235f78e8b4b6927e63b3fc55bfde580c381f74e4d8b708fda0156e9ba2bd0eba3927601879af7762a6362ce233b87ddc0c61870a75812aaf92ef6cfbeff50ba7dcd21f0ff403c15e6cd1be9dba02f3f426d935c13cc703766115018155648d8db45457bb17026af70212994a87fff10632249c3e87716cbd1d13d8817fe5aeb748aae801970d8b21a575bd1dff893432740d6edd652fedaa89cc026027f72d71946e67eded2b0e84dfc0e6e103d1c4dd1120be5b09980fa35ab88e5d5714739387d18aa80d1743579e220ca410f404513b8bae90d64751306e70b78de2838406dabbddad7bdb5668a180ba02c1d44c20d12402a49492b4a4eb26c9d091316c504ec7d726b904d333e6ae33b0adc8673f577d23962d1e3453560c7a07bdd400d60473b978f3a6860af623130a1a4673d3ac6d7658df376a8ce2a91dcca9026ab9d1789d35e89a05b3c298d308fe7f20bea5db11d68794f2721dedb3813d3e3c58b487ec1a44f65d80b11e0d73500ca06dad337fbe26bddfa3b72f674a608e8bf692bf122b624bb8c98cd9ac5890c774f558c2141155f658806111b4e645b07bd23260c2b8d4c88eb97b418f734fb0909a95819e74dced41551a5fc4f9743d19b66a4afda8e23d0f08caf69b4223286ee80da4ba6cc0a8071434823dabcd984b086c4b0b5d9c25bfbb7a80a3c65b4c246cc6304d7967f5c42068655f704ca329a0b671b58c93a8775d4884f0e8f8debc053a7e03338eb133870f7103a434f2f27132a0cb9bf2bc102d42394c08a621ae13cfad170969a9a8937f6bc519d5d467e63fbd98473c6db0582734c23c19cd6ac4d56e106a945ab75b23166325f33d198da7a4f7dd9ba4917da1365f248e237dbee6c19a5022ab62d86ebe2fb8ad0a35f838be5ae0184b13bbb36e8564979f6b0a6548004956cc49bc94a104a57a26b989df283e0e6ecf26f50e896183391760d757dc78d7eeec296378694343ca84b7fcf751e7dac4a889ed170928a60360a5fe2d979a766b146c2689f2299d9505fdc2f91369e4b58b432c346bf1a96d085e7a364f898bbbb258a0adddc46a4d126cdc89b6bf7674cd7e980e4cd7acb2220aa9b3adf1c9b89953825d9e1e503476a0865a66b44ca2efc23eaaacad5aa4c66b97bafd6cff9a73b1df12e92f02c6fe8402197da45798309800fb3911a8890e66cf4f094e0c0d7703d6600cb1ffb2c1dd43a9058175c86dbd0f3d6a0c29979c3b6278e2db8956ecb9aba710a5f1c90bfea10fc27a9603f8b4d289fc465f7276c8745d11855966f944c85a0ca16a004543ca7e7258f8bb975a3221d6805eadd906572f02b999e9d190c189c51523bb7c7cdcd813aaf116e813e1ea0ca8ae6c8a80d569e02ba2d666f54ae85f5cb1f22983783e9c1fbfbea8619a50578c43c2601efd0b46cb640947cf1e4406 +result: pass +shared_secret: 5c7c5cafe1fd7f3d12431ae93815c03419ff95b132caf568671ec23bdc74381c + +# Official test vector 24, seed: "7e87fb886bc3c7c9fc12569f465d2ecd12532e76cc27c65644c8d3dd603b0cb2d036c5974e675058f271d5c82ad7a813" +private_key: eb9a0f50030024200b530580640112b904c9190bcc0f7b6c9b071086aba50212517eb401a356cdbb8547b1e06ceb0695f002c9982518e6258faaa84cb7b0885d1c9272bc8acef294c2aaba89696e4569cf3493cd69db0c9629c6af282a6828a0dba65f1c2802af72bbfcd102e9ec5395f0473d29b9bcd99d8c803aedea59aa5b11f798230917c5196b2ea9a950e3834e7f272b8c6760b07c8597025cf62b63922768d89955315c2f36907ecb89b97db098d7348b9643ba56582915b9558fa519bb1530d7b8461831c996731cfd2b4d46643c0de99c459b93279173a83b423a073367ba8e79904bb431760b969a4b7b98f10a0e5fd1aa75e52b59fb9af4123ad65b645aec03c7e2c35eab02e201b92c266b98c5932ea3b6029345f1f8085c955fadf2c840cca34cc801ce489415781cbfc598f1f39ca240257a0c173b6108482c9720f56afcf250c2c704c514214fe0155289470ea5470cc1a4eb5c999bf8567d688d5a4a2a7cc1c3381c68bec925ab312acf037113fa8c5cc43a75f3baf932672ecb3ed412b17b5520351918297525c5d352076ca04d2a3833d306a321b9a9b1564504b8e70aa8e9a91ef47001a42c66b33370db2ab3e9b43f32e926e7ac189252af3c9ac7bd420c35767e1b26b161823da4fbcfa11232dea1143718b6b9e6aad183311f756c04c15e8df99bafc854e751417c1aa5fd64623df434f2c70dbd8ab6d41395cdf4814bc99ebe5c1dd0777c7344c1504b7e2ff4b82d974e01600d1293c5ec2a4b34fc895e608ad7a32b2fa6cdeeb2b2867a8aef27aae73ca70a5670c3857501f5c4231448a4e7b4a9926c1ffb58b0aa73705c1eb1e70068d97de17b19a1814c34d746570bb3d142a6b7c49d52d78f501a6bfe37abdb1905a30077a21a1b0e5a14f6784db89197121143b851ce1d975db4f50ab75a8138e60a542cc41aaa6c55626d81535044d0a1865b4d6303c649b3545511440a320cf5260d0b85041f6c26f92a13f01c77bca3357c26bd0dd00084a54ebeb7330f59683597bb733182a4ec7b15e8656dda8bf0a8b38fc3632e00bcf5938706c55d94623dd9c11bb57036783593df9b85bd9b9b2c430d94c73a53b65da10a614d93c6da7cbe899a096ef3c608f747cb782955d0402d9831b9889f6a7708ffa7caf87a8dcb1a18b74c363037c890470d18805befe3a0bf058e64850d61614948f41a2f03446bc9c6d65750ba421e2bb8510f2a8789b20ae70c1331402a550480fad8c011494d7cc25c573b4b23ba4c96f99abc5a6d8ef2195284ba54678f15543243362c6aeaaec2812e76382dfa36c2b1704dfb559a27d5b8f7469596a28c9e2b0d426aad0c57b2407346a6ba267690cc8f30857d2858aa5b97e286017c494bcbf398ace755fb5b0d041aad180691c85994d331616e91a9bc4932122c35b55b8300264e5d3533f7518c59c4cc4cdc5c3894b48f247b1433666efc9934f18234535e18bb43b5ba5d9b6979bb14bb8d407d0e15704ac6cd1bea3466d41362a261e9e3c4cb73b625690f1bf755db67ac556528700a78ca973391b34d448abe2bc96447dc8f96239e6d06c41dca9fe04272e438b7437c6e0bab01797475adf9cf716430dc2b4a9ad16e790847ed9a831c0cc2acbaa793c41913a02db8ac1c6bf056573bb75e2990a6fcb732c3461ccb174dab8ea4c55781317e400ab4ef68138ff84c27fc0bc4c68e30eb664cc8bb32b617916c155d28a195fc39a1a0419af64a59c99664f744a375113228ba3730752ce5a06701112d7328649a3755b45ad6bc4bc0859feb014e185b2e18603ea0437b31432457b36d13a5ae96b03905bb2fd0d5377eb04f34a68c57448e7909cc660a31d9f9540af17324e4b31bf04f465665b5538f7351687f238d6c423c9237b5ca35618f092cf7da879d965b67b1cdb2467c9ef3862f260c04727594aa6286f4035f0b0eeeb4b141306cf7d9c4a6bb942b7a1e30b56ae958b16c3c1237603ae6f879dc9ca96a2439e26c0834369e8b041c6327254608ad3727cdf23b842a003b91d1aee60193ae1497d5b75e2a370147f052a08b1f86179bad52605df44f6c99c75df478017318c6ba017a1b4a8302888f495acf796e0745adb0292ea6b5526fe43f96e20d98fb756b2553a9493401d4a25b9bbac13b62967a228bb6446b2067063619af66383e6bc2b3d8cbb9e6969196bb45d665bce49284c5b50f934774d500c90134535930ad2169488c4ba8ac0854f36e085318a293bd65ea8e033c754ea44191d9ac8033c031e066b2021c13fa11a15222cab4829a5c47df7418761620aad92135169e0f008760ba30a289cd41f1325a4c90334978c5176cdc5496962443b118a641d6130baca422d89fac5c968adb461ab43729b6c9b1349e71116c0226b55fc00323d6a74c03282f24997949207d72ce58fa4d87a7413c3bbaeac91fb2131c418c11ba501701549efb25cdf560239223c90e1a2f99897fad594930848a1ba2494fa87bc03c57c7bc33463b77ef80b978724153a956779028b7a565c40144047747e124c7db801d309333d3150493c3b3ab68c34c939243454d90c3c4079174a8171c77a0b0c9e54277b5bbc5033eb1eba3cac86039492b4e75a23c8c51c88177edd639a55b56fc557b580b03935765cf586c95178c330319c70a8c15c95fc18a23da11798cf6c54f68bfb766a61a9c9c461b766b4a00608575c4309a621b28d27122cbbcc76c30a30286483ba85a68524c0e21591b7347a0ac0931e121eb3bb8d0fb7d9ec577a5821487619e196400c2169a42a71c7665505bf333ac70267bb50380b947ffd54745e41de5a30a27b78a62f43786ac88b2012de563cde100358065485a73505982a265a505ed85cadc02228ff90a03d088da7410c6179558d52ca36ba1d87353985189a709a1c0a7a10cd8513c4aa26d27cf802027aa8c5bb99c12a51b7f16e10838500132cc24d79c805cf11a5bac88c4bb0377ebcc4fe7c6ffb927ebe7234016bcc1765ae9e72e62d51f9cd91017f508ae207d181ab0c4dcc8d1c4742494876d118f40c84e2706914c65a161d184a5765aec67c9dcfa4bf3418e114c6f3cc34e94a149fc84b041853af9b213759cc5a181abd5641285613875367842f1a2549c09eb9b1dbd851365d58e6335c91ee7ade6c23135c1200cfc1de3f5cf6fd13967150f01053b943c3389bc4670da9857ccc32528920f781cbf16a9dde2299db9912e87321c02aac45c4820ba2e808666ee521dc4bed006527df29a124412a4a19aa26c09b490188ccba53900a2545022bda0815dd53b263afcc1f71d2501128c41fb3606af71c5e68f0752c6d3a479c5ff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 +ciphertext: a38d892bddd188709af0e4b7ddf0672f8729ffcef2acf0be8fe4e246f83bf39ad529634a3720388c5e2295f5a071e27ed7d75d8932dd05e0182b92f98d16c4749e65d2aa96c6b45382d5c83cf6e37f30d395b289e11cfe8e108c50bb61c96749b2474492dbca1035f42dbf35f73e6d458151e37d1df2bd2d1e0965ff87f607897139450f4d17d4e13eb099c5c79cb2aaed233cc4c9eff06f38d2e910f648b07d5ceb12c30c7daaf85e3ec5906827e923658cae07f9b4e983b7d982c98fea5a3f46d5acb6bfec399e61fa7e2e64353c7ded3c7dd1d3b8bcebfe9a59c29f22d2e5dd29afcce64292480c6b6a7eb3a5f08abd7afa8641856ba7cb706355fdbfeb7db58f476a79138ffc03d945c5107a126233107fe54778e8aad57a905e97fcba09c242ee016dfab5fe3648e2dbbcf07b488e1f2d60da78307e3f9e318b7a8fc99cfbf67b3137afcae6bf9c1a7d005871bf59bca9ffed32467e04767b99b7e0e5f75c21f23c80ab76e0acde939500349e954578f0d7b0bb7972eb2e910e90fda97876d70886fdbbe3e6e4c04551eba13de33f9eb88fb9bb5c669743aa78450f658df9209e29a5d81e989aad45f006deca4c802366a18988a8f99481abccfd19da9879b702a7f6c4fe7b5aabb07e0958c4c5094ffbc0692abc928907283202e0fe512bd5fd78b49846b25f9a32a3d92d1125f9ba5620618ac27a25f6002990f6959e05658a2ab6fe88b6f055b47951fa9cdb27a8b6ff9dd69c30231c1751805ac7d98b00733ecc0309db2e856765ab9993d9d78bc10b0023b5ec237bc97bb944cd7de18e2fd0b1837f50109762c98e66859b4cf3d10a79e3a7b24f5b67e0385a68657f31d34b39f0c8c01135ac10ed79adbddb66f762ad4f20ae4d61b8b0e83d6f35f4fcf270b45364a459c9e276527365ec69bbf39c85ea8e8c24e7a6b5e4cba67fa8f476b8d57642cf1d6ffb1aee8bf475d66dd63c2d9141bc51d569037c0ae82638bbf9f5f66e04fbf21b8eb87c4ea2c701d05905441544d2934308ae1d22483e91e7fb9aa69ed86ad414764419781f249e215f4c3a273bb4b7ce2886f2ad8169f15c75705bed9ab8196700f5f10268c5d32790a8f0a26d5214151ffb62f1b3728279da8cedbfc9408a2b4811e408c5bb7b3ce1c01b8c22acc32796b5bf3963e8912dd997be5cb19c41a2861272efdc64bf799eb1e601c108e4394e8cf09137d58c34a2592a3fdcf2d969eed043518d17d8b160879c9afb8224dd0bd3d2840e833a908797b7038d250d18c3bdaad72496a5a445d1b36a165717f6af7f8b8b1919171d2e1c8365b94b23ea84a0344819c3828d8c8dba63046f15dd18f679a55f526e7ff78e066f4d06133957b73cb1e1660755229d3312a14a8f194dd0e10aabd845cf8f63c63e26360f30f1eabf02b05b20b3cb615083e6b1942e304893c308948e73084f5c88328f550ecb5f01bee599acc8db52f317f3d7790343b8a084e60926b785bf17863708b0d92a1bfb63a94cb97c8f9072965bbb84134ac114ffdfc6 +result: pass +shared_secret: 1427c322f72898a0fffd13f674719c9288d524bdd19e6a362533c1108e3a6d2c + +# Official test vector 25, seed: "ad1424e804f306c7ff513da4c1e8d445afca7bc942fac5c0b335733aaf70693712ecbde26ea726ee0f9fd9d52a83b1a4" +private_key: 878a1795956ec490aafe2190fe1a0018c9b51fcaa6b97c13da28a8c09a7fd0434596fc21d4e65bfee21efdf30059aaa51bc63c7d646f14f1aa487540380155b4e51fde096389c3a1b983373df0669553334da5ae1e9304619948cb85ad5be4219683033e33ba0f01750fc62ffe5331b4e3756e46cbca7b2fa45c26b8e6b8121719a6655f0952b9df797717ca88bd79a769938ac2f68d4347baa9dc2908757e19157953cc9522261118155df98419dd88556d961ef9855e20c86c4511cc7642c50bb4a35ab30e133b3548055c0ec585d9e1a390226749a739ebc5ca7834ae6776cdb6e461b5b736b11806e59521f010543568ad18097e8654c4cb7c9366db7990439b93a06e83391a62b90fa84a0b842500cc5bba4505ab41f60e8414768ffc1cb9e1b8334869723185aa5b141b94a21d276d3b769237e44f8ee373a8591ba9f6ca2bc852056334e41b1b3348c7687c8688c02b6d3acd484b4f2d9513bf181363a683547176cb1219fef44433899d93863e22274d7e157ee0188be6f53492655c801b4a29c7bde7048d798caf9c475665462732a51a080345fd0292b3b93b4c354a1f3c8b5680c9ef6bad9249472d761d25740e92e1c29e17bd38e989442b60a178ac720b935fa41baea41d1124183784941f510763001f20004caf2b4314cc6e3cfa7d3eda5e78451f27c7c49fb8253a93500ea757f1bcb4e97778b3866f9709083fba0cdf1031a0c667c5f65880d157bfe5986368ad80362dc1a596d31a488835b8e9b1a80ee55ddb146880a235ccb5c8dc64913a80c6c02c44e86bcd40e56737443c49d6bb4ac1501b264fc104a522784c5cc94c9e186ba7a22c329612985b6eced06e373669b691c620c4c6ea170c05c28d022158ad3053c89cae8b144c634ccde032503dd03beeb602e06165487ab4eb1292e484989f6135f50a08251bb5030088583187a57b10aac08b61b0911caa8685657bfaa40ff389310ab3b54efa8df4bacc32d112a2191a8068a390b1a8219a7954fb3cef743c22abb2c1820f86a7b3c8488788816493d300883b8370688b7d0560eca63430aaaa3f4b44d7ea887d70431c266e09c7769992328bc7b2a53734729297130a59e56c3d57893dc3fa7ffcb0070f7267cbe1ac7f2c18061b26409819d9526ee5dabaa47092ce07c2db567a72f80ce9a5284c70c6f6482701ac71c71454185099f62424c81b344fb83ab3475693d6797c5348c7985536550bfc1cabfb6806d1686139a8c920832ec675049f40a0ccca236375153a79c4ccb7380aca2e30038c8f2b745290bef444a71b73839707b524d07a2d1c4f4b00782e9c91447700594b30adfc7868eb546ac27fad089f7046ba8715c41e292415d274c3f03c5f57b311110000fc614bc30960b26edef3961c258240e333a8494b5aa3152c39c728464d6915c8016106cd34213e1137fca383d3b94d545bab479cc11231be67634beb00272b59728f628555baaf35e7bea2c664f616945629cc381042152ab0062902b6d5b3204266a98701f376a278778cb4281e47a6a82c6c1b0f2221577909f9297616f356be210f0f3265f6690ee5b1385ffa8f457a5ec860c01388480a09413181b9602909de7a3dcce34f39dabcbaa131e892a48fbb80f78961f9c440322b49edb03f0e554328eac7c0b3ceef957a82370a8e8169cb24a81595cc89f95d70179834da375d55a1d16a7a8fac8e7da64508c97f4f7a53066ac34d407b42a6be091696351b3fb1f12c05e5429cb0a14208336e110ae4b89fc9b91edd0037392948e7d3beb78b880d3c6d933a73bf909593a0654ea18a5cec051cd17c25abb7020487579a98f62b49c2969e3df7407f9bbf0b01237a0994cc7312b0992cba7566cfc2818db511d37b1f06781b3dab99db5268f527123a0366bf481faaeca57e16b37e27758c8b83125049f3f38681ba5438a795021652b5f81c02876c0f404b44f06976e368aa2cb923081e3dd07781562ae4750bc5f3809226ae6f100fb8f67faa433b66f8153d6a1b846c589b471ea6479bdb05c741dabf217a6177f2ae8224bd05b46de5f1a42ae20a1e641238f541fd282dff3821414890600a970811795c993c8ba5418a8732b6c8b8abf738fc5ca7d32aa3f87884021968a93cc271a490de61c5f8143be65485c9f34f0d433e492bbc5e215cfa037428a51d5921404d89aa0ba6181f5294d706786a30508c5990ad24c7bb6a70d6017207d3c03100a222396c44752579859e07315cf9c397549708901748c6958cbfd41e9d2880e9773ff03808480bb38c36bdefaa5f81f85700fac88ca85829e03d9bb845227a0a799b156d0952d0c54bd5b010c565a381b55885d26cd9e9b82d21a31354c17d2bcd43d93946bb58ed2a57c13509e9537fe879714c64cdbc842e93326aac0944cb3898335004d0fc9c81546086f29136227efbc798032aaf0cba0f3c6aac788886e03c87245964c99c18e62c008d646621d127856c7559370f5fa26301321bdcf502d1d12305002b2ae42e61209892d7b3afaa6cbfa9a38ac097cb26c4745a4eae395a1b10bf80829d1b216b4da59fcb4a2a57d4070ac2ab59a82b6af3b0682b53f9928f7759ce20e1a09042948ba966cee8bd176b2ec6880c063b3ed6d1160fb26714b3ae7b44a4ce6c759555c6e478c0a71a90b62a8cf8f282a4f7c21c31c5becac2595a766a977c886009e9414123e5723e101e667647bb9a2489b3acd17a81ffb4512516893ceba8838949e998043713bb41073013d487cba107f31c84480a0ce4378732d9446970716365278f70719da66ddd8283d62190530566904221b383441124b6f3d47103d64983898f8d83a4fef6489b0c08a11b82d30cc4d9eb4fd0d99085c875dd4801e3902405f0b292b8487a72867e67200c9231ffdb43e2048caaa203c7883218f9a1af7a365a19b0d2fa595a087b2afa1f16686dbd24a98b931a5999483d467d2d264b21ba527ca419b6523fc046bf7fa96bf0a277af5094f3362dc863b8bc2192e5d78173d77139d6ad07e091e7ea507f2a7a9bf982aac812f736c787c27b04e25d1cb74d5d01c3fe6aa2e7248921225632a5033fc6342495167405028d410bc42c8bdb498d9a5260693ba326e2230c6040f332454f3b2020280ffe6bb0b7021f4ea6bb4c06980b62a9b6c89a935ac206b13e091c3c6ae609417ab8c66b7bce94986e92596ee64b08a53844b706f84731755ca02c7c49906cbbdce97c64019a52f278c2f286eacd5a261f5b502251ec136ec0a3c697fc30e8b59807dff5dced3d6bef9c96bfe3e96e658787ba3f6ffb47de56322541a2c81f68e2825c74cb75ab01d4b719d6e1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 +ciphertext: 33cb33056875df21862840d7123c9d3fefec700b24a5241c24492dc094f644b5b601b974ea625b315ea7efcc27a096acefb7be53e635497185de6170320d3ca22cf41c1634fb16460723ba0da2d9c2464ca557ffedf4150e0a71d7f0b7ac64568ca2eec8a66e16f02c92f313666e67e4a0de221b3617dc59fc32541c5839325c48e7cb0381e1366f8554c1569a58e0427e3e516a5bc575438c1b464900d2f05bfa20892d6838a726ec8ee5c6e2e847a781c606d6a28dc89db35d7346e41fe8742c15f22790848a95e1648684f77d21ecd2a7642be1cf37cc1999afaeda5bb025843b4dc9a2fdd1284f5ebe880c6cef05973ef6fb939e2d39c5083d9366fd862f6de4d761b67fa99b1bbefc1a71eab5ee2815452c411f09def608c236e2c13ab35122f24ae529a2bda8ae80f66d326f646b3e9cac155fe4c765f18b2aadc455902f0f9cca178a0215463008749e7c5a64d010959842e00e830bea02debeb3da2f3f7297e03f41e4d304818e5e7854ee3c578ae69bb1795b7d62657eab867f182db15cf79f789a31377afc0a8a0adc51d1a8168ed9c531798b66b8e50b2bc4c6209eb19b8fcfc9de357653bdede452dd7e80ae3a7bb4b9dd50f384aafa3a85c484b8d5044f296cca7428109f4d6370598a483eed28c58d6e401765f9679b980e4346799ce9834a60c145d74e58c166a487b4e94640041af88eec4ff9606ff0476b48ed3c188257836e2bc5770b313ab7782807c8f387aff9777d16d5ab2439b65e9fe9d01e8bf1d4df96c1d9537dd1ce1cb5f51d14d05332bbf0d83f20087088800d4de838945502ceb034f77fc2d7aabcaf3f362071199369d64e5ed25378d39aa5b39e53814a5aa7a3c302b2f4808d1477dd04f695104a17355dfac04ed0916097bb6b4365d7ef07b4b414729a52e75278434e2d69ed838405d4ccca22cc1fa61b57483d5634a1c1e250e500e6e5c2c4a3794c0e201a68d1fac6a27ac079a79e744727fbb3d5807100480bfbacf5dfcf594998bf8e2c99766d4309bc89aba138dbc9051e7f3396e9767651c27948e04097cf2a175326434be72e1afa89c0d42a80600cbfa275a8a53c860135d54a4076e9f7276007a12261ac24203a22ea0e2f414951560aeef26a00e193cf42ccbf49c4f27e2a4e497f814fc165637c4f1ad890f56de8b0b6973f8479aefa080afb0d91ba777c58fd1ac73215cc225df9a092301f23e5190efe8d3d634f356bf170959ad1dbed270df0cf2671bdfbb2d12c15006651910b3adac8bbbd57512ae149f0746cfd5f4d9e0e6b409db6ec314a21025aecdcac16fb2a36789127162f1eaed305eb20a506c61fdb3e5a8ba26b7e03481d461d17acb86741f81a19d6af0a18866d04fa346a3c6bb6ff72d828df88a1290c018d9585f3ce96fed7787d91d153a695852bdd272b29688f4077dc3d691397f5904d9c6320bd1a748ecdd00fe7f1114adb2e0dc33c34035a7aedc540ac3b44f5c4bd9bde63cf5343ad0bdc1b16adf13bbeace84d642253ef332a92ed483dd9 +result: pass +shared_secret: d399b5ff0756707f8d1a1c2a683465c9ad4899788420643d59edf78f79b28dc1 + +# Official test vector 26, seed: "7c33ca0e987226c8524dd56c811fa4d1ccf9995b1e4e4dd5b1481974e88cfabfbf6787775c2611cefb27ed4403ea9b46" +private_key: 4b11a51a0bac67897ea9cc5d7d071855bc8bb375a18d838016fcc506bbbc7af38473e4275eb5449b0a5b7145b49c700626f7b6e5a6907879c541a0c6f027b7403a5fc25b42da3a7c9308a51e863eb346c178c469bb27022cec566df469340205fdd84f4f0a79842913a974a7f50c2aeaf35e37673c4ae52e5820c7ea843109e403ba5329a9818a856050eff789d4b71acdfc34761c39ae130fdadc300bc6b3295380d3c6944213100e43788204a41c75395142b5b5bcce2ee71ba4b14ff09325c9d884bbf9199e132551a444e527bb98e6b12a8210c6fca2a054bf8fe346c2db0ee9e97390fa2699c60a1e9c4599cc37110460d27b8a5f741d58fcb62962a38143aee0377d6d440662506200fd44bf71631c479080660a9c6286ca3bc0d5f9aa44e7cf23342bcf37a9d710c86ae39e4795c796805f0198b25d0b87e4f77e01b970e2858d26542e92eb356c276e7e95bc77019c4e90bab92c139ae10ef59b44cf8cc7e9b5b59d710f4bf2b8a4a5c5881018d9f593fa5b4c745a3f12457171b735920250778045c0fa3e1378c4aca8388245484a232d1bb020ea665e60da9f28a10e9992022098286c918cbc40476e7c8bde62cc27ebbfd4c10dc76982781ca59d630e086771dbaa1338814496a7ab32913c837264c527080c9b6d39c25e623b61fc180a29aa3271f84a1bc50b7e678143939ae5fc17d33bbf52d95e53b525ff8a8a408acf61d887585b561c3a69b088388f88532c8482a20c445e40362d1c4a331211d8f999c3f2424379b560b5ab4e6b655ff16e0904136a27774ab93233217ecfa58501c1ce6feb7e448ca9f3c76a52511a4a10008cecad9742368b104521b1b4e5461bed4c1a78ec9265d23272c06ba6c492bbe9af2704b9043510ab869af5d9b63ebbb8c2d26051b9b452d5c1605a7c4d60ced3a930aeb63a865056e1f00e3fe450a2da299d3c1583e52ff109cb2837c6b34abf6b063afe82c86b2049d7335ba4762f8b9c039f49c3554c9ccfa95e9105aaa0419d39bc695c873ea42313973724f02729383b90780c55ede19ee06b631752c2c835b0c2f04666bbcbbda79077a270bbd670edf111f5d578cc1b4589e31c22bbaad3c4044c1cb67707aca78c6d7c3441fee377720a6ab1c5b13f3530bc73020200983a962c1403a20d388b2ba71e777c28c3fa066ef0bdc5c94e0df40188f06800cd3ddf1c34b139bba633cc680079042b934db02ff093bd38fc9779f694196b160dd35c0a51c9f56bc4768333b07c4736e5c41ce048582c69f066ae08bcc4bb3c58fae435f6b53f8b533af1309a5b91bf3301b4a315491eb60670b1cb7e60424451031d6786b1f13360c8119be05955c37336f49bd4c2a7e7b15fad1a6d2c52af63870daa148ab0f8476e7a09309b529450b7e75b95988a66f037574ea5b1f3ec3d2d8570a6c46320a30286196e363028923b8af1128847db9b42c618dac72698044144d5c205d14331e91e70f55da87a45ad049d7beacfaf079b148a9da5981e1b40c36837b9e344affb519f961c45a8270d6bb125f42bc5c5089d9c7324de600184336210f57603cc229489a4e27b7fc25cc0861962ff738f06c03d4422bf12855abf225b25b254873079185bb36d9c3ba85a46a5f605706979ebd66da03c15f1b4c25b886faca00b16e04f87b773d0b8724bb4947c615344f9466f78cae8d049876c9f7143154abc47110b0deac571bbe83577f577046830031a08b465b86e1c341c82660818cd2f8173c5c558975868f0281470f39e737b6cf964008e040382b290795254380b4850db27dff98838d9921eaa8146022937e36af6b030b8919bfea844d9d602ccb3547d5c07f612c12c3c179ffc30fe52c9273b5c0dd27934b5a41737817be0739425736bb0cdd267beacd0bd77085cd2794947051099c3848fe0aa2bcaa18f6a18afb626fdf1b977f376ea74a9cbd638932600efd84fc053650474c801b1a8ed941cc5444922915173ec1971698172f8a61730358c751d2d776d93c866c47802e2ac19c7c092aceb53996c20375b47413a66c06541b4343c548b4dc5341ea92b2266d9c0f1665719f62a72650414940bf3a20a260a5953d578d5aa48a2b670aff7512bf6937e49052c3ab8ba07016d06a9d643081dd52009b358ac13c3136cc65b0127e675bb55b8598940c054c8b797d37312a1ae48120934a559ba31042e160ddd13c744d7ac5dd614d198a33253b829016fae7ca51d397330ba1aac557a8fb56477224324924276aa52b7000f77db547a604f6d7189ef83071293465012b6133a6e1209af3009a867a46bf2868f8ab8a932784b76084998e37eaa4496c661a42e9802f5e1ca947c75bc4a572562733409757855031c9627152c02cd25a9b9725adae909175b27c53c6233e4480cd3a06954afed889ae97a091df86842483edfcb5df9a365929b6da98917ca7b025490b416a7abfda408f07429244a9202a23d23ea8ae96bc8ddd747d1eb9b79a3cf3610bc4eb56f9de38c3fb77db2740504e85107f46896202684db8103b1c488e9b731f0a2bcc40b563226d05946c9fcc1a4e287628bc4985189e05a5174709f00c43eda4897429773140b30bcc090ada25c91b8858f07068bc6c154030f048c1a7002ab58e157ee5b0e682877372426e193cbbdd3c63dec0a725c90d29411986a249cb30ecd981a92519ece4074f18ab92967220ac1c963503a295c570d7084c2917ec9b6a4663a931d6a505d11757ab2935fa708e9b6ad5fc1187f3717c6a4a818d57cf5395626c8a3917012fba13315902391116ff5015051dc8d07ec0716356d20a184458b4089a37fa9a713aa35c8ad1635a7fb49e6bb44cdf4628a3b84b9869dd760262cc487f44a361b9c1106553338cc5dd71c45c37a3bde98036f45231dea2a83001d82203b27aa054cd1bfcd215f477a7e43d31d946971b0d3223868922699b0d810b6fbcc834104bc0ba2cc7a50bc198616468c212c9b9dab2550282a9b88f8a1b6d006ba801544b62564dc05cad68d7f6b143222a5bb28bc9cb57788d417fdb73bd0778fe0529a35190b0912623df81a7387cef7d201aa007a199735bc3aaef9706c6dfa1b0256b872320459951111b90caf3202ceb8c10a480addf08dae881eecd0cec08a2adc61c20e8c15b60824653492e603bc3c203fc35ca536fb7c64084112c878741b83870620eda2997f38aff953217bec592eea7947e8be23fb627251c13fdc9bb0b705491151b8197cb07ec66dd1d49dab7f9d23aa8ffa435f2cc7a7a3a1cddab6e37ab7be45fbbc8aeb3fdfcc0b171aa975028f96cd47fdba421ac08e29a0044cedc29fce35eb85109da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 +ciphertext: 61d4f41e6582007daff044918721194b5897db5c463d6c48c80ac7c37dd0b829bee3d0aa6b7af4a6acd827bf30df2b87f4420c984548f057c1eb6e7b17b19e4f61aac5ff5b8d3357a2a7df2356d8ccb697004f762df71a854322981b85a6a753a633305a140c89bbb6b698db44ef4bbe945f03718f9a9f55bdfede24104a10273321c5a2289ecb78a8d2d99dea4aa57ceb1d1179f0c71c8bc2d2b16f7f41eced3819351a463f302c5b35b45658154326c8787c555fc0336be1aa05081f4d6aa6649f7924b0e8e0575259929befed461636751fd0e27ddb9bd92a1b2f8cb718961cb1005bde873cb4489d02068a5129e83162b5fe70a4567458176e9fd2f0a5a27b5ef74a081912d6fb9a83a07cae9cf9442e2d34d076008b99275a7d49fea0b8f0261c0f2743493493113c490eddeb07e43eade98b15cf24b9f7a081fde0aa77978c41a62f9eb78b90d914f0110cc8650c01de496c81a7c88e038cdcdd8105b800a2b5f313ff803fe776f237f94415e74d6e61727862c46d70eeb517a71a5a6f754d199cdd70ca4369a4db39c9c6112f4f9bee3987c72e855fa937137468fda364937cb62412614536b837064937a5d626906ce0e83b7466cbb1a2242c893df8606eb533295b044ffa108810b85877fb3b5ab3294731372fc55427536d60676ac3d161f04a0e77f919313ce0271aa303b08fb492a1895c5785bdcadc8aeba725fff3b7cc14552b367d265360fdfa1e69a6a5d773b2b07cf5fb8d95f7356acfb648c22745258d80726d0d0ad8f12982521b4de93f081e483956d5fa97648851fb00d9e4f64c3ee4f4d7a8c53767fd9df32ca9ea70cc1180287e5ef6a77e1d44f97ff955d4feeef98d68e83d3eec6216b6c1f534b3b95b8745408385326ae23410e1e7f5f06eee0494800bfd7cc5d0640f6b39eedaafe0b4d95d63c474eaee9c5ff4cbb0c87b7e8ab20b52796a0fe1836b6e8be2afea81164c6cb633fd6c7743adbbb64522ce69ba9b4f9cbc510022424d94945e0c865bc66e3b7ad206dcfec359e42d5455a933174bf720f97ffdfce647b6cc8a33e144821dfa35aefd3320aec898f6c194e2401a937c9c746db08075b0e1d9945c771b5b72b62d9f226adfbd7feb4a9c5ca838ba6fd4fe88521559cb10af57c08f512d88245df43987c1d6c9bb2fb3d82273b7190a46be158a0a1cf6beebfd951be29ca7fc2e16117e85589c22cbd88a1ee965c18933698d2dd948c0ca8776cbd6926eabe94ebb105e3c67f466c866d81bb03ddc8e11f0bb10e7d0f30b95d94cac0d5649d3fc44a5b9f6727c1b5e70791e134ec0a3e67303f6adb6ef3f57fc968aed10b13c731eb50189885b3f8076cdb2cbec95d9f2070d7e3c3e5a727ccb56653d82b1a1f7c237dbfff2b4527f97f6d383c7c4d8f5a4826521108376dd22745384524eaf90c7d91409fc003ce9cae1afa72562a7836921d3193e8f2ca8c1d35959a52e7199957f7d1b8993c2cf39988337882ba2c05a0eed718651cd2ca564b8daa895a9060d460a47cca663 +result: pass +shared_secret: 1a0ad65924728c415ee9c92d0dcd91396665a24c59cba878050390acf2eb44dd + +# Official test vector 27, seed: "54770ea1252ea2857d6635151194f5f520adea8a41e409ff498d40c271359858fe2b084d5b96bee087b8e8f4dd4e00c5" +private_key: 06e67b30992ac43a09b6572f7b4764ea9bba93b05cc3577a8f762279c1c9991044b7c57ffec6c73a8cab976031b32c33430807913524a3e5ce0e1627dc11495aa31a0712302cd26e7d980bdda08542d30fef9a1cdef2c302c61b39d119c09909b338529b89c4b52cbc5111c20a880b493b01902ac47feaa041a72426b4625da3a79704a239138eca642f24d382dde6a0c549676bccbc63010ea8f17dbca231e69ab7acc5a9d9081090cb653871532fe48879842e7dc41bfb8820f22367189b31d1f201b7c50e25466fe4891115c2c8337a637e964c5d88c5e752c9a247047bfb2b0df93a36d06d80c3230cb628ecb5997d999b1a70a5fdd8b9588678d1e892c330bad5aabe0927029f173b6beb512d59369739ac8f0b5fb1663a874426eb31cf1818199b984c6c01b70cb56c2317078c393e5a35cc749c7d06a29c08a3637854a3cad724e8c93199dccc115b5a02902f29b482c6f1560ea778abc9c0bfcab0f4468761e17c8d265b93ba7927a2868f78bcbe6374723646a82821a4925c548679ed3bc29fd6022ea952e7b8acc220aea82c66c75c1a9d4a2a7f793ebb969b877a85a3a1a886cb57c58b3d0e091c5d136dfde61f1685626d73bfab6b672e95628be27071897d880007ef364982ea4547b195bfd79323874000d8179876a61b0589fe769e7193378c61149627acec65616d701f08f654f486628cba1574e92ef7f96c44a0ad9057b2b175012dba705a4735db91cf96155146dc53ee32a8e7620d1f6c0d969007ba84b36fd2bbad660882467b6675b77d838b95aa32c6fb04f109b1c8eaa181c4afe3cc7e2e301c8c89cab8e4587fb472dce46f3980aa62a61526b79108d611c9c103eb05746d58ac6cfa58c4a474d2a54f96e8617453847cbb296038498121b867f9aac8776fe153bf3f8895a5d02df74c934e2309414597c176857955bc7bb3c5989157ea63bddba696cbe57fbff0c71ff637a54117939708db26732ba13b33783416d0cd3390a437e8cbf4c978989000ada7c5405254b9e9094c5b9c3d211f03e205e6469c478ca212136c9ee79a427b00370b2138b0c11cb435f93c4ced3326c3b1bf9a2991f9c4c285ab09453a2cae4797aee106fd95949f2007b8a6177a18bcfa717106688c7c536d955b3db2f730c832b19cf84b31462c6c4623527b7e454085aedb59aec591b69349b00668e170b2667358daaba2d959250cb0486f0448768689b2c5450e8ba2fa3a77e9e9080dda636ffa09081576fd2b0320e69cbf017d468309076884aef925f6a9938e76b52b453eb8c563411977551057ff750f1c206236679c09f98b34026b42a2c778407014396f9cab89940a3d66d76ee512b7f07375ecc039c4258a1c7a8fe521868a99c18cb78b17e78334e598a5260ca42163ba705295f28c36cb19a242216a56079826483698bafef6755ecba3b7091ee2c3c6afc9b9d2f42317a51e2a61bdc229a4b7051afc6472062a440cc7b684e200aea93232ba945d21007bcb58bca99b269c5cb46b3915197278c27bece1b9a4e6ba09ba38573987f30490f57c09e750c9fd87be933a91b9c59717e3b5c6fb660eac8556488d942b4bb00711b2c93e4232c1c7a08669776a3f607ce80434a94334b45589b1866bcc69bad27ba323a563f47bc34073496a468dee6013330bc9a219452caa35c1a522c45c498fd4ac5564627d564d3881c731a9856ff7619622aba6f928beb9b9373b1104e2cd2e6246bdd88268c1b512867ae4ccca21140f0c046b5e5817fd64a2f93383c3a5add2f62784e2c8e80c150a1c8e1a8a47232787ad529333a07e0c512332799d9896a6071bb4e4fab647440f82cc85630c629c2c2068037948b575a1693f81d2a045a9c5a5c2306e83b911ea1e86db5763f13ca6b02ca8905b50faadf5440bec7b49913b371f0c5786fc585dea2813fa9ced349d9fa32cb5030b5efc274522ca4c6985b9dbbb245465a8849c4c78688392b0ab5bca98b04c7bf988ea84292c8505fc7acf90199eab7c31c13252680c71c9c333e91a0adbc1bd00d023c8d7a7c9068c3fa9b3cec75234663a2b73572ecc71e53a8eb5889860a336f77bbcc1c854d0c3c61c65216373bf2603a0ee72af8f747bfbd7401bcb9d599b6cdb02c210010d0425917b72891c33c97e9b39a677010d22a784003e1b917dfa3273246acbb45a79c7848143f0b583781626ba02a94922490c7b3695a787d9ae22e5470d32cb68790d75b81c55d084a43c4399aa587e07829510220469ab5e6381517bc9059353b68160ebcb0edf969e8c317442c4058423c3356b34035b9761744fefc76145300908da3c13f95eb3065f2cbb911437cd24f815197c0dd3f9c87e3b54432c50de1c7549228c5f9c32ee8c19fc4cbb04514025645e0fd1468dfa274e59a50d62c560eb051eac35bdd148ef75b0b05357619490cbf08b0b13767557c5fdb310da985dfdb9c35580217067a8c68491ba64307a618d272363ea346629ea6885acc17733a801166fd404cca58b591b68b2c73a9e890a13bb173584d2b6db351133e75d258995ce46a8f798a44ddb8526633949e5442435c7b3c083875760c00614665c4a2ab92c378863a3755ddf681905ec2044c331c4b976f6ea5335bac739c2be9cf141a9f3ab3f669c5fc49d74f79ba066a7d03b0c2036247c86305bd45194a00e33a1179ccb8d05b374deb491bf5c1d6adc4506803a8c65b18dd6621a5820ca93c339dac2bbc098c22b4e1fca3cabe58ceab66da6a35191a29ad82c74abf1c823200bb197015e074d14f224fdf30a51bccc015a152b8443892b7450734b34e77356231c6a8016aac430db0a8954c7a416b43d49120fdc4017cb61c3bfe70fbf24773412b6a91375f381658d57677fe571c3bbc800cc80ac597a8f2c5cd1f19567ab1f4c797a68e6133507aa90d1ae096148d313b48096ab96298c33c3828d645a28098c777cc10ce068c035a71f7a2a36306fbbc311d3d14214c042871388dc899ca2116baac1aa5cb261af35a0e255b228498295f6b4ae171dfe21b5f66671af532253dc724a893b933829a0c275c20407898911472a02eb484d4ad5b8d274c00bd9377f3c497e6845161868434c968bd847ee90c2ecf600867cc790b005061c8d5c49339dd3ae23920e65da2a19d649aad1b722552e07f51cca7b87efa315b6191b31279509d78b0e974860ba9f635283412038efe3ccb2a0c643c68756149a03b50f6891b9fdaa099ed50d7a012c0175b9518c15649396d94ca1266979893e82811af8c142323fc3d38b8b5e554fd046d93317dc6d0ff28990721c3f94a93024ce01b01c0ca55d634c191c4280fa71600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f +ciphertext: 45c095544a69ea32a56f9b6afa5ba17216c47a7edc519cd2a8b54b4359629d49832fcefb5adb0807ee8cb2be0a0066b782a14240462bdada4016a5ad2bf71299ef51a026ba3d0318b7f1a662b45296b20a5a25a21bfc67cb9c9286b659c1b9ddd576494e63eb9a70369b04a0ed30b6757272b7a99a591868569fa52b775facee306d7f621ba1fcaa3a5058aa7e6a65349d4aad045b70b4a26e6b5a3952fb89600e0f1edf1fbe7dfa31838a37150ee51e1c1af5b2325a4cfb2df17ecc52f42ab5b0db2032a2d01d9a77f7aaa6865d2fda4373581734b78d53fb2cf3946b9ebb0a677f8b8bcdec169ca03e928a08d05bb019c18d98ec084066b2a4fa3fd2e1b4711a44dc786724ef7c58f4bb6314b0b1486933004f51c55aca5a397d9eaf8d5dc557cf04d382e969bf96400997b046af19d5fbf9d6ec87b69c071cd6ecfb5d7966b29e3cfd7e3b310b6459af89e93f5fe3bf9ddd8f84437661581b6403c582f22ffddfe741c0fc0ba51f1340f4f32bdda61cae7ac83ea2213018fa308b3b38ecbbbf5ac3b44068d7bab95eca5afc736fab9ff8eb937ba5c8a9b5ac5abf9f368bd581ba02e3310e254ad718b16dfbd900ded9759d909d61d2e25a27abe04fb63caf38f0d2aa0518463cac1c35b22206b4aac9de635b30400efa4ea7d0fb3dcb4072b779b211cafffe97ee756e7ad57554028bb2f515eb6bc095e64fa552deeaaff90312fb6e9819783870b0c3f83da7a3f16e38fafb9221833993aa5d0aa968cc0a4888a43e5c1e1794012789819fed28a6aaaeb023467dd152204f8f7543de435c31460013c082d6f3158da33f5ea54cb1f838c1a9648589c3b09a51eb8df1b5a6c8d82f62d7a946f6d198cd846049613d00cbb57199a00b506114d230a86dc6899b3ddbc6473e6a20fc90754bdec551d0f8a42f0002f14358e0285aec30db88433b1f6a6f70798cb97cc9100a657f401d4661f82383ceb83625197617c021ff076eb9b08935fba9d8aec0aa12aa06db57cfb5574c50bebbedf9ba41f68ba09b0bb1c73be5e29a1e467af5d2aa29cb84bfa639386c1214d6801cd2ebf6111452227bfd1323e6ff880539ce0eacf74da99c75a9fc6270985caed1ad906c8b1451f399ef09e4336d596a89f1d071b372068d38a4741250c5c38cb2a893c793a8cbdfd9d78e943f728ffedd5e0a9efc228f7dca5d9faaa1052569ad2b3ce85a9d5be96be63790ffbe3e7cb05333d8bd56d5e44080a52dc00b516ffdf77594ef0e92e591b949f3d477cb6d0f887bd43273ad0e945348cacaffd5132a642c1c43fe28bbf6ac7cab18b45b8910d1a107d2058af017e3fd67c7214e039451d52ab961ce2712df6ebe5cc8f3c00414e5a817d148528d0e08b3761b774589b00862c0e1162b463b1fe43d294eb2439e80e35edb261856099f32fb548d494eaa4014de2c5e223aac793a3a55da97be77e998ffbd51ae2ecfd1dbd0fc92f9fe99e510c329a6c74fee225db455197f4be18efe98edeef43dc6632917cdaed3aa8ac4bd6f613d20 +result: pass +shared_secret: 9104061d3dbfac187f3a9eed801545a52f1fb0c3979ca8315aa31f67775d1036 + +# Official test vector 28, seed: "cd6cfe94e9c0a1cc4ffdcd2d7876504be5f50f1d1ca5cf93482943465b268276056f2781f4de805c138976ca72621387" +private_key: 101ab759f6afcd596d4445b4e3a1907b3955f81641cbd1aaef79b22ec38af5a081a570b67dabb410aa3c78925c82384b5931908d147926230522da5cfed372e9eb2b94900625e74caf1098144572a3d9ba32d875c9184989c823a3f23da4144938b88836e9c708e52967b8413f206758f578b340b2936b798775b7aaa09efd567834e52afbb17bff8b11fa0435e6f55ac73219e79254e166cbd8dcb95f0874f26925dfcb93f9461b2a48925026651b0cae117483d65b3f57b90639a39b16b1535647079f12a0d897c51cf60291a165fb884680071656c407c9e09b31977042a2ab6783a9b448ae7d924243dbadc5b00c00303c9a12308bbaa51f024884126e01346665f67344d2698adc13159a316e4175dc532c75d40d6ce54916da9ae3f763efc74dc9a904d7d8941fa34e493a74e0f9032e44a84481916530573d4b372fc6790b3c357a6b6b075b87e6b1a82928037da41f265c7a493abae425c11b6514a96c6e3949520ea4b9a7a18c76c53016a0ce644237cad882d79c60739a4d2651a4e900463a224f1769a40d04cd1c2796ce2860844ac6fbc87b00379446a637f868b73be31c57f41830d3628babb45bd5b9712b33bf5637e897c6bae6cfc6717dd87ac5da5620ca04cae154bf58f61024873f4ca93738a444801cb5b61acbc6098b36747bf6926e78b08939116ac1604e5f61570dca65832ba04c8c64da99838be418b61805b1382cc899559a62b73230cf126a701a56aea6795e6ee95c2169ce82ca352a5c411d89881a3a992704143a06d01ba15f9f59083bb70c69fa5b7eb72036da024a3707bee499fa4057a52c36272579209215f21890216c0f0dc83b5dd38867604a6175c417962a8a8513dd5aac8e0a806bf24a855c89252c392f6acad0404f9445b0b781bd26e15f4cf4a7d815bdef3936001219955797c90191c7c794987c3d1d80b07c04b14ea5a6ad49bd4ec27720e68a8e855a042a8b223821dad9b53c00912ec92249ea15af46091714759d04b4734a5c60d979735741c9acaa7b62b413c439a3bc7a6510c9c5900af2177bc5104c0c079c67a03a12f923ead47e1ba85753f822c7334e25a02a1b155e0b4c22af82b353db202627b2e4949a3c874c7207c0d96480c33c9070723b9ca1a2111321fe22170544c255d3246cfaa6960264ac042168922153970a6df7a465690a7348c1ec77b997bba243ec7508c88b730407bac2a9b6040b83ba7e034a7388e78b010ba662d15eade2495ae63568a12349c57baaeba16a32c363245f599475f7e141d1d2462076abe3071fa2566c85197bc79b24876461f9a0082f4701eeb619cb5c4b1c169715729fe2e27d85890def829473d33f47bc7216030063466f2a8c9fd5e14e87374001b256a6b98d3c53094811108c1cb6101a6bb18a8bcc7bbb7b4278d030c7f04368d655c848d1a22d8a79fa787613b653cd0106723c9e8f81439083a7f022b9c98b6dc7d39c2c7b5b61f4c8dc06728741a641a9684808b20ff84a9b2a569784705ea2758c0176517ab47c22b408ab16ec20b849f1cbadd7ca82332107d41f7e6a6135365f86098fd9a66847e03641bac2f1c933baf967e94265d40847976b68c49730d245b5723b9f70d99d171745edca3a65045bf6e0625aa4955fd125d332ad33f9a3ceb2313ad50c97614d038547f22a135a33c06c61545b9a26b46c41d1830b83d0257fcba82b36510199224855bd1a837a369a2c823391b1f84e54959a06938513681d97f34eeaa7bc42eb13574b29fb785c457786ac69ca22f644a1d53278d4c2e0f325a1209a0ca40fc32b92e906650b484e7d92cee99a078f5090d2fb60f84b47dd44224228443d36219a081f9956cd7983ab223bcc094a0c65414cc2aba8564977b147088ef41aba589653e535847450c762517dfa462037c2c1457ef3d1909d0b79d66ac6ed9803ca88a7295c4a3ae53cc77c235cd8922b36ba8b837f375755326a960beab71aa1b33a8b64d6076f0889424b1875ed6316ed420db7e02d731b2b3065c7e80115fc1406c125b651c2b4ced28ae9c67cc505bae5b747e5722f4729602bd1aaf25ba333c29ca011ce36f55494204b0f70895938c9c4658044740521097d696c8efc045709369f88c1cd46bb763b957db8f48abf1a07f431845c94beb7a3a68d42af6c2c3095f829de51b37c134f977461aa2818073682def71a65291904f0c214b727fcc7b522c2a33f7a2e07a65926fa5661172103b390fde2814b21273b318d029a112fd389d0324506d280be8c49bb923412f4c430ca82f58ca8b7122907b986fe912c323b1758901007067153db7b16168f791610df534aec8050a58296f58b7549f0665e13918c784da2d00da79559ee006566050482b2a13baa4884aa83351753cd7a48e6385292a990ca559c8d630a7dd4947e428198b06242179c369741fc067dec411765c58364d32ba655350530a4aad934a1d14b76f55a19ab7f2dc60720124a2b69ca703030b2320dcbd459cadb6662fa0aeae170f880797e2bb0a2f24e8dd1442549ba4510153640ba7f093acaf41f67f55e4269260ce2aa28261d4dd4acbc2a4a134751261991e7b36183387893c5900e8a611894c76c26217a390f86e5068a947457db75e7214b8b05a3c87251cc2101d7e6115c908d2721aab224b038c1b9c348a3c04c081496928da726c0d140d363a427b93427f16841c97447698cd0f360529725ec86113594045e143659cc1a0667832f40aa7e059d0b1389048a75429886095b3ec5a646ea12a09424338c6ab729a27e595ac7784169c6e7c7bc208b07a44cee5940f85896a7285845a2a262da092d1b0295821975754898bab492530e44a410f35563a1e45775613192dc45df526cc19b6eed8186e6f706e233542a4450fa6c89bf993af5699dc0e46965417433d5b1882340a1294d4b229d42061bade4683f8557dab0603fab1bcd956b29ba8a2af60093654f09e70f07eb3398f7bed1354a7982416ac40860538c36722ce1b37322c4a888c2359080704490b613c9a5f7318566a37139563c40d58c055b827145bd659c8fc6b7908a071fcdf0b17e4351cf3bcd9e8cb9361985c70c49bad71f860b36ae120f62c06f3b34aa4942985d149db7b13e1412cc1ff59dae21cf50017883a0aac754ae6cacbe87a46919c05752877840556af8d56fcd848f982b415d333fd8640794918ead0121d12309bf622d9c97551f294c3822644834b38fa844a035cb5458aa7240f750287f95feb1696d88988eb0648c3cc0fa9d4277fd9af8c579271f4c7721b12640bf755e94ba06204982458a9be11e1da542ece4f3d284886800fc8e8e0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f +ciphertext: 8ac1b83c47c4869e81144ba3963f3e4e1ea682e982500d19d73b368d60b66351c0da3211acf974bf952d3c6fc8a6586ef9ac89c7321263838ed84d8debd7fb67eb0aea8764d97cc371eb71970c0c189150b8665aadf4396a344ada63e29364f2a3f7199d5e1c0b5774bc87411e96a6907e193429c9cb9ed2f127e025cdf9c03068afe7647e1e433ce627b034afc329168bbcbd930b6cc52316b77697fe20797f178e3f16b45ec4a86cda556abf7c6da5d908b7975c6678edd0d4049dcad34c199f9617ebf5cde3dd3c84ff2a9f9f95248973a7c0cc5214aedb637c170b83a8cb740acb2e606a3cd524378ba26c6b019f3e8c4ac43eda767b9b135c52168cd0d548dfb0c38a1a212ca310905c4395dcd0c9e529e3aa5aefc0b6182733cb8dfb269c15d4890018f8339794d5e54939072b50c922d6543e6d3daba38d4dd1b3e9a8aaf4eae22e9f28b18d7b7e32d2f60321d3e4bc9be6cf80af16159ecd0683f840fe83112fddd0a1d85333069b818c270507668d1a0d74e018dd8b2d989502e4446acb04758cd4d00df4c05265d7702e65b34a6e2df3c77231bff33e93b9fd55148544d80cbe5b3a7bcac3a247a858eada0714003e2d9776c95dd3e2e869de54ac58ac8997d750ca6b29a9bc20fd4912d7889fda29334f7270c984567d222653e51105e63ff7b04cf5ec4de4a3e20c6ffa6b34e8a47a17936c684a0c57871a5852565f5872ce545521c832e6259e2a66234361e73b858129932e69b09eb5b7e7957bb7e8359e9257c205d1da5e455d3c3c64beada12d15e34a6ee44883054217142634a578bf42c9df1bd4b7d74d79b40fd93b3bee4e47b8a1fbe570c45061f55d6c181ec57e7cb7a845dff1bf48939ee9ad35146a0a7a9c0564628a4bd3b6443a2cbbdf82dfd11642816c130bdc4bae905028a584964c91482fbdba6b3daae7822549b04ab83087d12ba7c90b28bc418eb24165219b36c73aa32a4ee1b2fb97d421398b187a0bdc1fd7ebd508ef0afc01a6dfdf82cc37ed7c0bb771b792c6e4a5d4b4112c941b3b2066e1b6c63885861c0ecac6b20a206326283ea9d375c6aeccf179d5274389f0dc49183f36707d72ef6cd7adc3d544c7311f1983a44d2482154c77b43f0db3a1e4c4ac78a52b163425cdba002a29dc27bd9c191196e6ac0524841c3f11ea13782cd439b26b1a795c9f9629e0efd153af705bd8a35f1d70d3c5c8589475772307dcfeb6899f0076eb9a8f3272e72bfaee493ac1680ef2855741916733074a2be07b948bcb3690f965dabd4f4ad98ad5be62a6d4b23919bf3525a5c87839707e9bb7f61919deb787dba4345c1d58dd6771f1d7677e2fcbf827fab1508fed198af0264c47b2e385d5083d2f863619e368f4f3a154ce0caf496bf2970382e42876fba4797bcdecf5d47d8af4c78870c0afcfd0c7612f005af77cc8c268cdf9232a8ad5f9c373160125af1fece7654e0d9fa665bb1b59f73765d6cac9108ed7baed5a7c231fa4011ebb0bc37ffae8ea2b11e5f665d54b394b5a324f +result: pass +shared_secret: ca249f10d39267ec3725f56b90eb2e22cf8b577116af350f3d3c1e2cf090ff73 + +# Official test vector 29, seed: "265eb2de7099e4bd5614e5de7f0c2a05c78ef3e8e2dd4ae4cb70f3e5e59c8d1d88248303f07de0c5508652da66b47222" +private_key: b6a8be5c6c9e94c1b41a52cb1165b3e857604ea413dc11813442a518bbb3e1d84724109f9b1288f5f34d06c3aa30d913954c5c053486b60b254f3250e9aa656dd71553679f5f112d8e8c7f11e6b19072ab3784284dcb2988cc10d673a423a0c202f03cdcc74a43422a2fd3b934b67bceb074a349b8524786f6c126d72a384c0a84fcb8304af2c3d65994e5095274d2715d057b920ab40219ab156cbaf7c314fad57122505ed15a61dbe66cd83bbacdc9b3d3a1afb0d607d6e01a3e227d3109a1ea14696d84beb84c0cd02b2964762a36f153a8b82733872b0ba6103437a191a59439fc3e2ec899ba841de42bacae534bb3100854283175548ab055cedb836b49fa5841ca698571c4794c7648c65d5fba44b3c57d925aae29cca857301f61b6940bbc28b634bbefcb51037c301674297170469cd7ccf39a828d2110f8f3b9cec915c6423163d90b2dbbc644864a6f8761e83371e2c3724617b7ccc893561337bfe7832cc4a0636ab871f07fe9b93b7169029bebb7afbb02ab249ac3597e0ad052b233a454f6628c52c6727a4267447bf11064b61a1ba6a4b7eda764de23b0bec1b954d3c5882432e1ba6ef1b94eb1464086ec2a5ae0167eb8b5ea2b40c01953f223544e49bb5c441174537cf8953c74d318a5b4b6190881cdba5b1305b6a3e2528c4c8825107fe323ce9e979f5d33aa20712b6ccb5cdb449989922b8e571a71cc458537bbd8e9a696d644c713bd25607d4c26a39bbcc11d58a4154c1161bb1e771986a4d923dc9936806498cee91c3ffa819baa73d1103b868772340a1b1ab664ceaa82d60b328e2963259c039e12798adb66e62b827fabbd32d7b29e615ad76cb5690550af975c2edc1aa8849566cc8bd2639f009453d1fba689ba14d5c68d55ec1d90074de4b47a84944714a9c11d55b271727c64e566762459f7e381763981776665c3d908110a74b7977678e011c36058de9606ea225084331c0f2479de36c333c26122ba9fce2b360628b5b8919838829c2ce55b12a6b80a3a5ef01998549a1a26223a96916ddb8a0258b5ac936b74d496b8bd249412176b697182054b744301c2a3b10b2fcbcc11ccc89ff5b40f079817c186893bb044559ab646626f683191a03fd6f41506ccc6f49627c09a821ca427e8122ff91234d5d92318863aebe86466f108e9a51a37822a990bbba5e01292543e756b64a2191fe855844185a673c584a2c0897e1b73ead8ce548833c03447dc32bfe6f0cf615469ca61c376a3365fa6cb79c6129636c48ad68dfe2c1553f01dde270d1830096a03072095bfa24282f1d100c2673aca13c1acca01f158aa3a593d0b78458b75c8f34ba4f9391afe255dcc715eced306545a6a683191ee731cab1177532882d301a482677fb4c38d6b69201f0920162641f7f701290969d5c63eaf13a133563e95ac5e88a42f4d128b9c69b5c3f16b76a6731fccbe6f58547799bac3c9a6f3cc9a13ab0cd26a50bae9774acbb86ce8944fa01b16840a8b220d7886197f671e64a41886c80af2f66e899155b125181118697db62a4a4a0da162240e0218739cb439406219c679f9857dbfdc73d96a0f7a3181eeb3b38d8b31b7da8e65f30995f778ec5b4026a28ee770043be600f7a60b3b370bfa6a30c846c475127924071e3120879e2a158433a2a3a7791c204912da8576bc2722eb9e38139c198915986b58a9671fb054a81443553ad74563f587b226a9117c133ddc10dc0655a7d52d493b7b3db9584c49b4d1f41c06665a3d07383057ad70b69f85b6cb2682238120b830681794e042d910467a24091d81322a08aa1d83b0861113756615a119503af837eba16768046b7e64ab5940aad4da6e3165ad036959c39bc69070bd7f074776089aff76b33dcbb17bcbbe65b526c795b65943821d5b52ac1044cca52e3403a02604a1b4d9cc84e4b72b2c136de898a12451d8c74c280a67cabba42dfcbea68455c5f45bd3ec03bbcb3f72604df70737a01683369c8a57091742c60f089a673da350db8ba39c2a1108aa6a4e2a6f24b13d95f004801b240b50067dd34b60991db2a42de3dcb2c24034d0cacd24c890cac7a134bb183c92b5d66c7000a5a3f80898754827c9a7cc01a1550a9cb4f4f18d5959be0ef84c35b54468c55a15d274f996cb74449d1e5b2f88bcb6d00912a9305879bb156bbca9843610af2c5193363177d2b5867240d207819498a98209c109273dd44a4f2a06549335a63afb2660d212592c417b426268485a7e8693f865c0a7960e073153d5e578a74b34e9c3a57eb20fc825ba59e56359a627f358a4d7127be7d571c991078d9630e1262402a731b14b9f0ee4a3fa4494bde9aaf2d4603af1178b8b49a649056fe314caa92df6d816fba591fc4961cf0509d0dbb02ea7321ef75aeb20813e33a9717478be58b49fca3130ea2b54e62fd3243f4e240e54c08d26c5020a9512d2536c486772e725267bba974f3a451bd50f29c55c7189012473ae1e5a7ef35c0b479679f1a71fafb41ca6d16b39f100201bcf2515075a1c9f881a7ae4f4733b149e7c29973588c161616e9918062236332cc67f26a65fc72c78564312c429cd1f3854eb98c0ce91be6d9a24aed0ac65bc5d805490e1d8c86963c8adeb8755e0bcdfa473ee23037673773c46911ce0baf8c81bcd8047a9d19175f6bc31c2997c62c502b934d7651fc51562625538e24b235c4c38cdb82fcea4abaa963b3d67b3679b51a21cbd77228338a95b4d641b5eb26644a58a59abb0a8c0afc8894792b3c6edec9ccf7c29c620b9ca262c634621d225228f1503609b548f0418648cab5b9609e7486d57e5824c538037d32319427a3b077703a7368270c9b752217eb04b912a3843f4afa829b38174bbdd1cadc8c74697544f6229068344441ee2863150716339716ea6a8245a3c3c142b986b7462fa2417a413ab718ceb196f15f887a465c8f901c55db4718ea58c71926ea344c49635149014297275baecc90ad1c95c75281eb885264f11123ad8cd7cf1968e885220f0964f25510539be63263a4eb6169f7319f0086fecf996d2e852f139b500dc1fec8824430505a7702360d81823269ff4b2622b54b7f917bb44714660051c31d9b39494a64a86c15c516437c4a437f41c0fd5922dda52818336d93a8c750203fd859b06e127d8e33b52c34411e4199cb01cbd70b8ef0180b045119129aeb04398841bc8261444c963c3fc11c8dd4c78dc5a8cd902687e36aca5f2667abccdf2093e5ecb1a4f09769a8251104731ee68587d0a470e2ee6ab99d3af13f3177695d9e5b9151d87fed52e287992acb897a07b10ada1dd83409a5ccddabf9d7cfa50a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed +ciphertext: a63cdfb094b7b97e4a9d4f637a4b2892b308753a34686dde8ad28e5ea9dd44bb0f2b07c030c2bbe2587e1dc8c2247606fa5809d53982cb1bcc18675a7f6ee5323a12a87137236b6347ec7b6c5b188efb541b1f0809abfe697e5a3b8b6f864bbdff986ca416b6b5bac9a5b43358b47368f137a026f12984ad8b2df97ac5b43467526cf1c4766cb2b60784608998fdfd2929113be1c49b8498b03c8a690fe5a8b9797529bd14c128609e037dbe26d1b3fe26438866422c4aa8811dd420ddbc47218c9b923cec43baea872bd5277cf3ed48cba237480515e2e807e2a0999017ae70cc76cb134dfa894f780acd8d5470b055b2a96e58956dae51d001c4c9c8888bc6791f99284737aa613cb9d00dfd31b5d0649e0ff3f11718b89b398d0163227bda245ecc75756867de7beb78d6fd0bb0b713cdaa1d482a6436ba169cbd4783b5241ec44a5af9256ea6e7ae2463489dc80787022d311e900b42a09f43348c055d21af0d486d5b2c6db80f9a89b82adb93682f6e98539acea6520cd7d476b17ddc5697ffc64566445f0f90b8c187c0f904b812c592437472ae0db4b48a2b45f0d699272f7e8243a6e42e68c37c331e7b96dc676e532ddc01458df6fcb2efb17ca4b07039a0f80c7b03078752fbfa6527eb921350894f4d398238c9f8abbeb3aab93da79cda1792123d4af4562d29f05303bd90ecd47dd9940fa6bcd7377ada7b5ec3f0ab7965da90f73734b8728c4dbba594394e0461b291586a09850981b961ad327fc01a578a4cc49ca14d570d15a23989141c9dfef64fb1ca38ebc92654104b983f793cf9a553b6b422c88c7c38c524bd15bfe35559752f20074b0fa631f6d49f973b4553c81c206047f48b49a0fecb63a4868fd32e295e7a56a0e683185748bfa3aaa77676ada8b81ba5d1314574bf17a11c1b58700246a7b323f6ea0840a9db60c2b6ee1f49a06f6b6a11dce4a9d3e8d352fc82700169d1972f65273fd1148d7c9fa978167521922d614de3bef02ae3b17a183245ef9272c1a96329fe592db73821b899cdb93e4f33e31a47d7edf275c7b0921168de50c3984f7ab213682a031fcfca95194483a58053bd644268a2dd82b77ce458c37df183509e32bbd7a6fa64c04df4c91491cee59a2dbb7a3e1202d015d7276d145ec51c8a89e2abcf8125439af8b7a175326995a3f543754fb3b3b7c70094c71a37d1100b8c3bf987dcce3644964e3812b5b7dd913afdd98002692358364a1e9697a1dde2200c886ebd0b3f8faec32c92fdb2e8c83d7b04795baf19da6a54157e75bafe54026001c2e76a31d1c6f92f3906145e57ae1ba3a5c63cf59980f0b5e23555584dfc654167a5995fa4215f19469d1d729bb02523dba785c5ef873f244bc944c920da91bd702c56fa4026ee33cbbac7db1cafa48b2445491e415027824929e0e29be3809e9a3304ce69393b83db0e33155cbb3df4788937ec988c8fdaa704b5dcbf580b0cf125d7d1a540ad382508eaf5c37cdc2a44d63a18b586bbb633223933a49a65c47a98b9 +result: pass +shared_secret: 82a3856ca48c5dc582ac25605ab0c675ad646ee19acbaaab4ccb5350a3881b49 + +# Official test vector 30, seed: "806bbd111f27c2668318387bd0830f65ec21a51af01985ef48d03d64e1958ff7ee5133a4ebf6dbf36329bcaaf65f40ea" +private_key: 9d4548bbb50474e5909a3b1b9fe69c379117a840ace316a8fe3a0f68cc2488c4737f5469f025bdd6378875b173ea5b34119481b7a23388d20937eb5d85a566c8695106645ec3cb1bdc1400c1f3220669b2cc09ab752205ef2bc16961278eeb863d2c58df1c77fbc01d6f298b89049326314323a49b99c7064e8aa44f148616aabbaf76800101406ab7a34402a8da606aa9e2560deb8f00a14072e204febc3d2a48afb18608d03aa8c0a1ce1d591ee79676447a1657e19897f20b0b19a513daa2ca415ad65a2e77066606890c5de69e45367a668619e7e4a38ce656fc3702e5185142f65a6ba43d892b6f086ac0e6bbcbe0e04869eb48921936ead6c91ff3af5311b10f2622c1b137a5bb82b63247d6fb12200901e93acf5e3466ff8160d7677a0f9825d2ca85dababc27b24f3e52aa957b7371685e5fb56f1edb91d66c8ec23287846119eca062d9050cec162a8a6332cb4087d9270c7f022773c6664fd74b85eab209d15e6fa2145297232394138bc54cf4c6cd2841a65ef48cad8384a957b42885236821a3d152b631f01f1574b28990045da08eea352bdfa8bc79fb621c504dbed81b0577aeac881026322c0f295216019bb3a11569b74e91d019a6da89caca94879c801b331c115896054750fa6111207c0ab1d2ba8b328912bbccc2494a300356041c7ce28043880b56db58c78da121b41ab4d2127711c5088ed232b7b536bf00b542b15800accc5b3677802807f0b23878258d18071c1691ae63054d3aeb129798bad2f11b64238d7e83cec2717c023b5e7ee404555393541191afd8b7a79a88c36a2f711c3c2b79c64c405a84f2722643458f4c6cce4cb2556963926c42303c85d87861f4055673b7405c5b6760bb52909290168c50e7f599b798b2f6ea119f3a387d59025954c2571b095d6c761d2932d5a79761f25e52c8a64c765b2220a3ddc38039d7658b1cbdb770574f0464875b7e5c9585abf8b4b9ca9391c1a6ef647063046ddd857f7811c075250621228b80787879651f5843c175eb86883a73cdf97edc6c6b79cc917cb710744b44a9d455cec7a0c81919b600c755b8506003a86ed3276840afd59344091a8430d4705ddab1dd849b96d7238ea9bf63696f709532fd49b0833840e373336c8119a1e229e4881b23868ce260b3b3378feaac8730e69642cc068b4a6b16a0c83e4a484de007b6eb2464836242f7279a754a73e3a8cf378eea351fa7393a3baabcbe08b23ae9887b973b6c653b1bd06a5cf89326d223c365791888b7010795f0c056428425b0f647230c669128b9e0865152aab666561d43ba060decc51a4aa7a0e20502167b69f31d2e6b8b6c63135d91ae1b899afca84ca89bcfd49a725184a6be2289142248439aa568d9c18f492123301792a1ce41fc15c0739d88d05c5ae4508db9936717049df17384b261e8e1910a70cd56208689954a50a41711f9bb170abfed596fe077053603694ff7bba7f41789801df0e64119e962594716c585a30b13c44cf97d9bba5d577285827537688976933569cee793f24733656b97ad6475024cac8902760fba36ada22b9086187ac68dfd26ade8e66dc8773f4eb764d322732450675fa715cb02095b326bd0970713568b12232135a5896094834cf450d789ba498787368b4e15f1b087a704e8e327d631290177add97c0a0d84820ce367dc515fc362aaa98aa7911a867a3789f69a5b68bbbabf3aabd037b5160a3f3d8277ec47898ff3ba5ddbbca6980b5ad47c59236eb33b2a9c84b212e93d9e70aae78a4f9f6bae592ac2b5f96eee627971d27389905b215869d9f4b706c379aa802b5a99abf754ca9316872f033ecbd5b34f72c610c14037540a2c86ac7eab0c3af84729c48610615c9956751759660b3c7bab57146f7b1088501fe14b2f59141b1bc6302d88a35fe27e0cfa18c1a22a9eb517ca6060f25408d4299a7f46c458b3bc38c4794bda8f9079043854179db0071af69c9f074a83438874c882cd18b69b0b2009497b6fe94a9264470be8256b49b6c353374ad49c04b1276fd484338796e4389a523598f3776291512e25fbb5fe98591320c1bb47c6ef3b4bd1d62b6997b5561bae038854ceeb41b2925c1f1a81a702b57b2815f62aa9eb2625ff3512cf9595073ca623da43f32c21d63297a491b28dd8b1361bbc91b40b34a65f1a2b7db86b0b3bd21b26ca5795b795e355b45d1623b3a9731218174b50966d6937ed057fb10b631a51b7d42072a0845be8553e19901fb0eba35f5142c75857f642918bf24544355c4041102d8b197b429fe548433eac36c42077ed787f8e631edb856d4398a26d536911ebbd9f9c22769c756f858d180b6b51797fe9ec0833c908d9ab2730d937b76a0febb68fd84372c96c3c05197093e26d01219c15f898b2c7ac75d11485a2a413a065be744e0908b6340155a244838ddb14b74c578fca2d7e6c4e15e68421a568e7e39a4a04231926768ac4a061d67550a8512e780198738bf3e2420cf75680d1cac07798c01ca06102cb2ae5c9b99b62a7349fc8a2c558989b68e3789c2c7074b476d18212846c8a8d562166829a36587eafc95a362874e812aa951a6995f5a94d370afc9b64777a7e58cb54b62a95476ccd323073d6e466e6ab909b4b4cd840aff393c9391902f4c05bea833d254207cfe938669cbee478c57ff4424004003d151fe5e90413924bf1378419e08dbc46911e2ab2b7f45dcde5c549f679691632c3d9bae26b9fdb85c7bc3301a3900386873345974bdc007f869155df79cfc6f06c39d8bc9a99675382358ba25836a15cc222ae78e4a85a19c5da9912e48128fb37a7f386c0fc86afcd2869e292ca9b521e6ef9b12908ca5d800ae1a7a3a7070766e2802a947c7edb3452a377d9c1bcdb152d37db41ce7c74c36b32c59131b1b85f9b68a3b66773ee4a2b81f12509c33cdaab4caa563e9bfb3cd9c4c72354c1e88423f94169e18bab1a9798cb99031ff852e79229630c8f35459bf40c425af7cb0843498a3cc7fda53d932a07382018de07808aac2b4d60a1e242beffb89489ba69a6a26446180103c11f7b22361f651777b997b76ca8f5a25b97291058620ee5479e92aabb218444aee52e5c8294d578c709158f655a8930fc197f765fb3790bd62a5fe11b57f273775da27fc1b5128663c623f5175513b753543bd71aa045e77e4bd42b7e7baa5ab2c4d3c41f4db84af265acecd4906fab897b5abf5af66b4c4a0b4e783b417c6fadd71d34ea294ccf8b8c8012edb8badb3437b191165cd639bcde9eb71378e71fb551293a7acfc3d283541d985e0abd85eba5315a17d6c4a7e4f248673da60c341c29fef072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda +ciphertext: 07ff98c23d28846d4b8593dc2723f03694a5fdf7ae5770307a971e8aa7a83db47b5f9606c68e1b0a9d8d10ae26be23993f8e804c6851292c6c54ccd1a178084f8ad379eb43cbb0974fa2f5cdac3eb90a06e844be6030af49e5405be461d01598f264260e42e5c3ac1b5d9ab05bb5ad77acd5fee7356e89f5a1822ab5afeff2474bc562990e71bf0e6e1b720e59da9fafdae4d67ac58534dd33612c66c468fd9a9768dd6d6a18ced44bf35cd2887cd664176f08f1c9b0a122b7330ccc37a7ab99d5d57ee7ec4b7ead85a7a789bc6e4124e4541687399e3feb3036554ff903a595ae2d09b1abb496390da90c49171fcaba63d32d5816b43c9efa88c1a9065056a526f139291024abbc01af22511032e93f89caf7f67bf180201263a9714f335ab3808c0c3c85a9b4c9daeff295f7600287db1cb6014f34c6878d60eead25ebd39c5b27b1d5b8067b419abafdfcdc766db126026110f2b52821edb2895ceefa379a509e1c29b885582c216a3e3a7e88c0b15fa53a1bc4a2c3811d5716bb0a68a0ce08ef73a1cfc7601eebd70471e18a9e63dcbadf4a2f514e3edfc9a0ffd5226545f9798fd1588d9101334cad0a84298abf9d892c2be45398c0c67a1c912ff6c5daf42343da7d2d6f0f4f37d5218d46565a47b83cfc84dd0a76a6c86eb77dd99fa003bdbdffcdb1005160803ddf0d499a362e3c31e77491b9253b4fe3325e217676a2b6f525ed75810c37ac6c09bc9df8f9c966184f5fa3a123fccc4cdf24b886c6d7f5fec31ea0611bb3c43a2cf51b50afab8cea581a2a9e9214e7981735e8ebe4eaa8e8a44db119bcf4243d0b1a86a2150e02be402d61b98ef77cb462c8dbf55c2153ddefd08641a0d76d8bd301a59103f65018abfac4a538c12723269589d5910f658eb3c6041fa8c0c5e7bbb389f491a0c01a1853917f393ae5d90ec14c1d71d7b1088b808818d430f83d76b1d6722ab89610a7d39f13d9931ccf3c90a91f28fa8d9b00120456239aaa0ea648c1c7221122c65c822e879731cfcba33720a2ab082029ad22b2499e399c11de442bf090f416023bca3c99396a03d1480ed3cbf78b1efa5ed494baacd544c2531d51c252983acdb3b405366f88ab5957ee476fbb006caed7cb148de870247f70502f75e52b89916a14d43d11f7bea21734e3e5658109db2096ec2941adb83298b36640d81a867118a2d2d6d29f713a7d359cd3965254f05cc272077359d8601231fe4e51f72136631e2ac8269a8732413fcd39e7d5bf0793a88b69c4d86986fd2e5d2220f7059efa44a2826326e5a775a8d88965078645bef91b8d4e0c70c62964c04eca0710f12c65f6e315af8602ab8ceb13db5e4658f08b4fd8bd041117f6d1c1a4d39d4af92ee05310ab0158d8db145fe91d87d1ffea0beef800237c02ba58e61df6bf2d09f3cf271d1ef4276e09d6a8182441c8f94993a31030c025c015e9b6e918c776464a1783b1c54b34b6d2338f35871f717414f85ade6d528695f6fb7229e1a9cc1c6ec8ef89c18a7abdc43147f32c +result: pass +shared_secret: f1e13731a14d39f474806b8c177e23e4e2301a3b839539fef9591a71e4f67d29 + +# Official test vector 31, seed: "ad540a9ce816d6fb1661e5483c44f6fdd00c9e7bd1a8ceda4b4c4d3697d4f78ed0a56954996ccb7da96ecb8f5cb15809" +private_key: b141b7d0d3c420b8548eba8e71f2a751882023a2938a0628fea97eacc45bd2fa0e89f485e57355e9c58b57746519e2538060924d9032508a508a8a36382254b5880e77248c6734c7f841c309830ce19898233116c0482888c03378b5946eb53e4a59b190b62dbba173d4297405f9cd189c76fbab0786fac8a0e90eb3e8ad689726b1f8b321175094260775e143cfea2c22a5aaec749e7c7002cfe8ab16345adae43b6ca04bdc21632f799c77da62755184c51b3535830277d83ed07574ff8a478c06a7dc817afef2684c00784865116fb8755cf13d19750e01aa165132c2844c1d27409d975bb2b0c97ffc7222db3b13d47c8a5ee20dd147307bdc65b3ab91bd6481e17686d2f1534c0c73fb633260930a92c25adebc2bbd1299185439d0811ea303551e0879d825ccb08b7e307ba37b843854215ebcca1eba3237d95080c317979da65172146645a543ba045f13851781028669c9b4ccc217d5ba8585a1495d652dd89b402c87043e285d3b0c72eac388960367a428bd3e7a903ffbbd83614df2b33180843375f1c9af398975faca439b0a15b2bcf804c340176400d1b80e399597372b53380df0c61ac2f0a1757616825c8a3f90cf227ca44fc88e8608162232b1b5b882017843a6b61af95193b6375951ca70ade7a525633c75333450cbb38338a493099990080d99a788426047426cc89146b4afe079fec981884a4bb1a27931074a88bc9bc1271c40f2a8b6a1bc0ca4a24d71024bc7acc077b97cc47531d21de9f94fa8dbc522f78f698c77078788f6d90f67a661095b942cc5a349076e79ea90139cbf9c2216ca4c704f9992fb7a213c0b97d2bc5fc3491a6cd3bc599c9eb4d1469c3a3efc14b7c6020c4a85481cd86d8c2b2f51410ab1cccd55458bad9422bae77c1d544cc52c94d0d22d2e9783165548baf519bd05b4909626da8991fb48cb82b0c3a25b34f3c57a537039dba031857b40023b6ab8baa64b5234dc5403bdf3aa647ca09bec6f32148e99db47c7d141edc70c804b722559caa7214184ba97ba9802a7604604e90510295b21204b22955402ea572a12122205ade2d1524e57b85acaceb767086ee1218fd51f4799be7364137b364dd2f832e8731605c9c69f4848b3237b51ac791d4a5a3ecaa5edd29de90412ca62c5556a6389ec98948735e162745f383c9c59a99764583d19c72255454b568b908a0e0828b7dd235dbf2268416c1be640289606609f0122c0b492169954cf201a7d654e21541eebe5448b0175d9b10314397a6632865cfcc055e566b476be03773781b35842b6583105200e1cad7475bf95355268aa1cfb1c7c16a68d2c38b92b6841c0b545c5e972dd7794110b5d34cbafc9678e66d100ab1c6a1e0b5c262148f730762086bb7fd017aea3069ef76c71c110db4c80cb2c4fdc8c779486223920731906cb4553a00a400a3878afa709079354a7f3e3795ae77698668fab278688f3b21558306ee6844801b625b017203ab715d110fd636f4fa3c2c3c56ed43879468c9cca379d3cc77197908c54875b0ab7b35ec8b774b5ad15d3ca75291b1ceb201a959b57215657606dbc9b8f1c124eb8a57c6146b1931c019a0a94ea266f441b6520b199161877b30c011788cb97cb439789a67d476d3dd265cae63cbe43cb63aa124b93071d6812bc662f346481f974a73b16a505c48b9608359a3c035135258029a18b0217461830785379d3355ff3968d3c63a46685902425660b232b11b93997e60ae0a5bb95a27d553081f393040b1c30ec87535ffc6fe528b1e9866cd1e69520e376e0071087748691dcc057b95cd4c60707d8b976d6a67af4869d960d5466a9f3251dde92cfe8a0b03ea2c43bf03fabc9c9b5d97ea2f558b2bc0ec1908335ca4f2607cb04380a830b245f8b43fd06098269bf9ce33fc07c1e68a05f63560d70544eea4c0bc528859a5b09683b8b3d3c6842e6458061b7ddc4b23ec6ae83d557e5c4b1848445fe253b35e52102517cd38030e6ea28a5e1a24bd09ac6b83c5dc658d11589900a7bb09a963480a2d76225ae55bc54108fb233785174b375a184eba110e05762e7f26139dca4cb197620156c06e47e5b74a0970bc6e18b1e1c919a6c0b10e7470d5ce09e2719194da0440ac3aacd86bf724aa841a83dcf64c8e1f7704397a4cd57bbabc9a0cf940e97e8921211006044228632382ef48fb5d3b65219a5a6983ad0e48ee39081f2ba1103bc9c6314090a31aa34213c0c319eead96b865cbc98327570b965bf00cb9bac18c640273d342cedd11d72e2078399c458068439a8a27e388d3f4bb285b63992b5a4354122ac298222e39d31cb886c4958f28c5c2f37384632b4db216b43ca6246051fd704b5969c07dbd525ac6a479e730f8b11c5d41111ac65764fd71a4f43be55c563cee5c26c69cdaa485d850c2126f2bb16f5766fe86bce17535198ce99c2a66918af96641b2ec74be2b61752076a2db330984ccd7021ce360a0c488143648389f492ba20ac566cf401383a496991497208b760d36da6896bb3587788597191c3347539be92b78cc6a2b0d8eb4188320ceb8aa6ee1018e9f78f4f8097ae7527ec947cb1b27dc8a86ee200020127531273983bf66746a7b731464a6b1524b18744a8c606648b2fb1a4339d5a15d7f6a5ea3a1c08122b773ab09564792fba2e28719a603c3ed0850f2d5045de3bb93dda7a84e692c25537ef695787fb0889107395f87c6b836e138bba9f4a711daa421a396f556c26e3778f4d364d5b1844118b367d78af37836fd7a9637f1714cd9a3e52155b0047468b5420cd5c6bb64138ba16863e18b4368542800b378537b5cf303cd2b191ccf783719142ffac1ad0585b1938281ceb5c86587c43b28c49d9111982ba7ac567e1fb64d8e3c450730305cc2e4e12cc698a728977cf1c9b373f051c17f1935177ae90aa8856a5a24d18a08aa942b4250a6447c35289cf0b334af45647e21b5a2153a8a05a38ac4c728a3350a15502cba347a876cc4bd12034935bb3dc14435930d912aac8a787db3ca33521637c5159b015920100b416d22c18d6a0a52612c7d75c15741b6954ae752c4d31fbaf1b483b6b6862e6a983d5465e3b7b80e1654faca5c669e77295f86263d344031b5ea7ab99e714c0a821042bd9512677ab9e89309f41cf47944da1801521402f211a6076490ae393818ea2056954b24a624e6e54acb7d5bbb32c14b339730af6a72647a66f761bbb78012a76540763cb29dcb9b8c27a3c1e43769c31af3ef54f7c8062d713cab3803437e759a01ee76fba1a5b21916dfe025b78fc6d4dd1d1541b51cd3eecca90ae52177431b33c708faf17b55a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad +ciphertext: 90739b108d664dcc63c20ad1f2f37658b96f819a6f7801b7049e8c2bd4ee750da7d7f1b8dd47c2147ee4e282af69cc1aeeab6a8959c0a714aefb3625ba5c057c120943b5bc7b96b7bd2e8f7337bdf6fae024a2aa667c556c7f7fc62bb303e898a3f73fa2b0757302cbcf3097e56b123fb920ae88b49ea1f76008564f2f0ff54fc6e36979239d446ff38d85f84fa82a4a3624a98a37f29651613cfdc323e7fba7a913997fe19d0e5e0f825a89cb37e423f348a1d78159a90ea4aa0193c4c7ee86146e3352c80341757c2ace339fc739b33313bf3dc5b53941772e782eadcb558ed4ce7e14ec16334eca20c7d12024e47570156955b38a30e817eb139c00969005013f941bdb7da9476a29148599e679154c13b23ad1491e5c9c1b3f04e2ba290c3b7cff7bb019793f358abe6353bb6824bddd156e1d97696a8b7e32aa8a39226a29cecb496198885ff3e3671f9dec9f443c45d5fde1d1bf1ad9b54062566aa9fd87b318b6c74a2f78eff5205505321a71c3a6a1254a90c39c39d44783a8d3006744802cd64b6b5379bdd8184f6362709e8a6faececd89e25e88295e509dd8f20514c3487e20d5d32da32693146e23dac996f7b019ad79c6abc01b617f2669d92881f8565c95e3c6193c4e813fa11313221526b54c795841c115544b81903801b6507662f2fcae5feb9a4e6903411a69e5453ef822f8efc570e82b94c28a97038c32e4c08db304dff48ce7273cf1d8bef89fba35d886e05703dd5f839bb253b641fe631adaaf43e53ae0e62ef827636cb3cc7a579ce09a0b184621d147470ca5d92a97baee9dd4c1200fe0206fb50081472d9abd3b592c98cb799044b201bc2db832e83f0727018b60a69a640fd67f095d9f2e1bc42d33e673220d5f6d86b2f3e1d1d63ff39c9ed1379dc75c2b3265993eae102373945b049ae2be4b54c039029dc1680b89313ab027fa1196010d0ac8cf29ec39348a1e559eafb3d29d346802a8eb485dba3d6b9cb7ba93e1e4dfa79950d9756ef0dbbb4aaacb902a4c21c02a7a606b4214c8108949ec7c089aad9a63aed4778af6a779ba4b1df5039ceea017fe80fe590cb761ad940609c9716a1e21fd0db62039a9a21cd0d8b265e350f61a982eb167629c79483c5f23791f0b20b39c119acb3f18cfa9ce2aa03981deed204c9c4e9bfb8e404f1899890262c6183bab1133541a4248a7a7e70ace70fdc5bdb21be1aeb020117f635f2970b7497d23197969e9138a5e50f81a752b1a4b22f0199cb53503344d0bd4d90bb3c52dd3cb58cb96d477e8fbc237370a5a17f0665b942363370cd5d5801199015a5430bb23165fefe3eab656facfc5d023fb0f0016493b801cadeec5315383aae86721bde15061f17e4d775b8497b3de3684004d8c960dcca5ca0464a4f60a43893cc75299a477897c580d434c44507afbfc5760839061d481dd264f6a3f07347ebffceeebeac27dccda8d3cfd377a29426c29d57d2367a781801cb227695e657295113a6d91ceda67db4af71f0317a6ca9e206fe08f +result: pass +shared_secret: 79c5817a4ba25295cfdc817cd303f3465852b93c0c908fc4a79e88c45f3b81f6 + +# Official test vector 32, seed: "288a5f2684d862a86d2790afddddbac6fda934ee7d2e6da1508bb550838609e8107312b28e00a6c01706374ccd3aefa7" +private_key: 5e74b833c0808f44300017c6b2773ff7569ccc971250623710e01c79f2457f572dc1a8c9e23bbabf0b16de993a063931936a4d6f4a22e1961949ba5df2e3aa07693ed37b2b9d98668019123162be5a1c2907e35d0ecb258cb034e4489ff1616d5f6b83a7877e0cdc5ed4677d84924381b1aac175377b4b953863b296c601140281d9d5889f649d3a4c8c2ad662bce81753b85d26eb058b7536ab98afbd4a969ad26db781bb40d980afe249ae56aea88b59f1b28dd3f99ea3e6b8dff2bc91544f7173595fac70c0d50edec867b90188f165c8b1725a00a45406e18d242b2f63f7736f68c13c5b9606e700f9d3cc64ec0a94872adb04437cfb7ed2623eadeb11da382785c74d96c96647e482e8ab1c9af58cbcac5d4741cad8e6a80028219af15baabac6d2e884599c2b83a1307a03ad2d4791bcfc767dd36b810ca63a7587486749835514fcf4c0b7d3b06d950cb1b26b69b8abe466029fa2b66966501f6c812bb24834c3b72bca0a98913816737384d29a3e70327f86bcf85aa92d393a5d516b2aa49694e32845c559ceb89f6351b825baa599011efe9558da35a05b4537d01c6ce8b88eaf796b36a35c9ef41ddef86ef4bc695424bb63fa5cb4533abf2497d39057651b22a9806b20a9a4dd6075cdba87c04051219a8c7fbc564ca84f1d51baac7bbbb8bb2118990e5138726fe0c4ec51aa44780d5e66169ff17312d214e4d908e8461b2c004557f75ee749889fe23612875f02046ea6a6604c6c74dc746bb7c08ad8fc324be971359ca32e17864987712225257af3114be35a3483bcfc1135c0ec9a34b67ce5e20290b13d5e8a601e55633c154a83d65e1ea03d8da88bf5875429690f848bb314b664c851a266a880f68c8b69c184c773cbd73a3e32556207f432ea9126e6e778d76638607c341ab42b61d59d4be986e686474878a4d43c0877599689b35247061f98229384250e78408b76230a5485486ce70b076447bf96263c0058bb455cb4901d4c99a00eb316d4ec3540e6cd269b3093c6123d855fff761e2e394e4204366e7a132425978a0561a4e2347df685c5b6b7d291cb3e0970ddba9bf9166a91f5cfec7c751bc793a574181421c07e854103b4c5943cb3f89372e23cb98f75bae819c71de64a98b145794a6b006300f851c5581a30293542ee4482fa8987dd0a00bab3a9881a292618724d8c164281bca6a903caf5c52b31b3f341a5f3626d30443190422abd129f2e677682352c4c9427139a2b77a362043cc1af5737af761a62f27161018d76f8137df25c1872a25cb81243aca20fa738fba24d708c7f2d610422481f3ad74061c22141b7a448ec8bf7670ed198c0ea72456567108cf56991d47069e6a6639c2dca8c95086c8d3a5cc49e294400bcc2fcc39c5b673ad1e6248204969af47a4b036fe7478ea16349a4b49b857469d115be01c2662afc5880d5924ba498e353597157b559343848f2ccf4ec17951943b39cac83bb52c5665ffd1618bcd6446929cfda114ca3c554c6b9821b6b85084873a3b20e5dd8486aa7b591b1b6f7b83b585c9112884756386a35a04f60b74289e206f2994d8c56185b1698c0583717368f7ca58e7635090aa262cff0b93af222dac695d23b1a80b6c91017009cfa4925f3cca1b97d1a820b204a4ad5f4bb2147307a5350d0244ca20102b8f800c924bdb5667a5866303ed52e27c932a1d84c637c707537409fcb7515f195e557920ff79a3001354cea327f274edcbb99e66acda0aac52dc503717a3b24786afca70dd84c7c4ed1c1b3ac454c832caa687bef8a96bf6c1182f5c663c1ada4784654393d4c83219c149e31fb0ec1e9afc4297968c80209594aa567c65000a883b32e3fb82d9eeb4e9af65ca4fc0cc1ec794eb2b7ede1a5556474f3b023c45b5d8712109a2281f4527a4bbc8262c9bedd0758116643bc6a85f836825541767595c0b54516a330137f0724a1b232cf0a399e0478f732c543f81b9d05c7f5b086c64291b2d94cf02462df7c0f43eb06319265ae25656b462f1445ca5299166731b114e8458a0a0361b135e6002315b65b337304404a907f3c1d41ec9220055939e11f263186c3751f96d750f3a8588ee14f40b09178368ef03a9526a5444be096c3da8a7441638f64b4fd201e31b34f2c456ec89890f53c9a25b559b47856053227e3b36c16297949c6b11159a79a4344f0759c7071a738eb0f80c25ec2f0a2efe614c7766c9dd68fb488c4e514769d9b6be2d59e9c9cba6b5b1dbc9b0d8e5c7078663794fb4eb8c7060bc1b61286cb173ab6a80952424423746bc91bc953b67908bb34226eb382bd54bcbbf5c60e467652728186c357b3fba85f6b8553c79c730ba51ab90d06ea9edd407b89e0c0a4276ea3698ee5e6a8348a2f9f571c2b7b93f5eab702f1acc3480bbb223e68361fd89a57d1716fc8c99ff43734fc58969d35077f5bb422b859b271b085f41394f28b416565d2f90848216ade3cab7c205ef2f47d8b50b9152a9ba6032322e737089a1e5152387e3437d2190cb9e394bbb6857a1b1ead7a3d7118b0ab8367ba1cc09f910518420a46a18271408121db5dcb0670ed789d537ba3639c530a720ed9f40c023c75b1a8261b6c0192b14843252cb8d713c8736b34daacfa235c9a51468dbaa6f2e4507711344b5a722ae46a70e683c42a9056ecac5d143f9929006bb168ff2ac983ca8b1d99cfc1c8cd919b282eb921eafab2a778b227968f77ec885077ceb7bb5fa13884b6a4bac782b31f250569e0671396b780e810e4a34416166c18c4204ac4124c1020064a257c32369c892420510811f28872d59cf8db48f2a1510a5895a09c008be695699a4845210777146b56093d36960d6c36860cec578de3688bf338a28118a67833f5c4c7d93b8867d93ea7aa99a3743434d236d786cd8e617791bc5452c88e70f1189d5004e17146f3c69c60682c11e78b06b2c0815bb889a17a15eb1d985b601e6c04604cce34b13d82a328f61c2dddaaa25fd9ae0dc83962c0887e392a25c8657d61cc2ffc980d4cc4c9557e7dec446828b03e8bc9a1355dc32b1c06d504cf613235b6b9b1b04c0ed550545bc37e7000a2366786da49d637ceb5c4273041706597236be0a7213cb0394282aa998411e1236ab964a7998055a183dcc4ce765b8756760fff965d2b7c5adc272ef1d3b214b4ac9b543e0f24876e773edc54c105892cd882848fcb039e5223d0c68fa204cfdb793c5ee56659932cab213cd4eb18fa4b045103a1e865b0c567574e523be27974b08adec6d539f37479c61fe8d8c48f62011fbd5a1c10713d42a00a79ae7672e5e321872971f24ff71ed754178d6336b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a +ciphertext: c2ae583a3b4928851e1ceac877a2b061b9ce589c4a2eb6ddcb36e3621e558ab8ff4645e43144e8b58368c151f7eac2300b060e1e7a30718f96edb79aa71acfb804e3013cdbf19e10549594a37396e364c01f0377f675f4866c4be24a2cc513f07edb6ab0c205efe71eea5d9517c39f897ff4345f63a3c88c258582a4747a744c2330394efcff592ac8df852a7d9ff5d7ba994ea7935075a17bff2626849f1ef4b9097008753b814298c6d9603e7505cc0ca7bd69346edae4e9a360fbef3fd8f7b6d604c22677198578a52fd6f5e67230dd792ed9980bacce91e50214c58a2ac1e43f17e8f57670040a7fb86242a2e9fa63d8530a9fdd2059d690b994673027577db5740c8b1089deeea7bac8c2c658f77235cd9f021bd04d38c94c091cba130060850e8743dfec89b6ec2beb45f21a12bccaa3fc0cc130ca99befb6f14584f3a836f56d8ceccbf9f2e51a2254bd2621bdb7fa1829918fe49fe16a95c6d49c2a3508de93bae8a1ae832620e3929382a1c3ae8bc940df65dca1d7f7dbafa3b764422d07a8b3e5d7c0071aa20c36c87c624148d158e0ef3bf8edb698408cdead41dd99d76b2ef8dabfc2cc8331483db9f6c2a7053c1df415c7621bb3cf9ac8370bcbbc8b9305433e2b32ef8bebf615ffc1987879e3ba5bb3a6c57d42896d30cbbe63652c247c47002b879864ec0ae1e79477a5d7174ab3d10e03aa1eaf3688a287d0f0b57c923d2d3b63bc744f922bbbe6d7755beb6c4be7966034cbc917edd85d07a3a725c8e8fb0373582278a0ff79cfd0260138c7c1c890b7171ac99f7377f1f7ceed581d30700b70a9198dca6bf5406fd9e7b04ce809261a3dd0cc32e1e4c92ade1de79413e3616e371fc3a1530c85b687e93e326b98fc767b81c7409f88ff44647a6fa63a3d195b8733f2e13097502b1b712039a59cae990013251564d3421ec1ff48b07fcd5cfbb089210ece5f9841cad8f188b5774a769a8a8eb43c2e122db423630777ab36fb68443a72a76ebd9db6475765678d94150acd6a788f08f243879c8cc9ac27e766a631bffc106444e2f2faa91b5cc5b09cacc8a9f179200c81561c078554c9feb8aa018173b966349100f3499b1986875726ecbfb48abae2d2c205ace430e350a28db81f90d0c7b23526cd2809b721f34c0b46a1a078be7e2a3cea00996495c99911cfd759d6b0c7c6154b20a977e4a8aa7237bafd2f55c590ee6c85ea595d661d44d32f222ecc479305726f6347d58fe100141edacdd9b3cdf01785f6830b80db7478885201cbb445a1385877e0b5020a2acb849d1cf379002ee78d275f37cd518695ecb6a653eb1c1310d3fc5584e6ec663c495dac1dfff668cd35a4ba78f34cec527e4e6e81a3a9f78274729049b2f6713968ed0ba237f4c0d197d0e7d06447ca3dcb3c13e8feeb14fb68e1cc206fbb8e94fb6190a56669cb901dbe770f9b3a2b6497e1346d0ef60acf9e2c0ae082fb364b9ce7912abfdbf300f3896057a130c7cc089ba3fecb416cc40ce3149599a68aca244b38bc605 +result: pass +shared_secret: d92f866a744d0af51c8c2ba7b1fdf816e0334bff45182cabdfc722d75f8140c4 + +# Official test vector 33, seed: "4635dc5bb92ef98cdb6220df0dd717c7f8158375eaa2b78fc3f0b58e9c9653e92684cad3461d9158a481da3d14694c44" +private_key: c2bcc42efa0baf63bae062a1b1322114519cc504048ff26ee73b208d659518a286dc411c3097293d79bfe04790f8b87c1dca42059c447ca5a382733c27550b41a367e19175e084c49b9bc5b8d1ace0eb4ef2b220f187929171a10d5a9a46c8b89ccba3b2435720780f6851b01cb06ef5127100c4ca44c6188aa3af8e875b85317f47797d6d699e6d619441b26fee871863392ff455413ea78d53852d5b19361ce82432410adc6ba90793cd3330444b82a06da38a131a1ca91756848ca59e200c86001c21d19a7b5a40692a979bd351ff140276f176c9f189e3499d067cb054f9a5725236abba148cf05a539675331352834ca583b8029c764ebe829cbeb934ba76bf3e75a1a2b0a65b879cb0b881dda38487558adec31029783ba7ccc94ac879690049452724c3073106790748d57102236f4e9cc4159a14a042cc4c6986ed5c4027b28053d673f42811b4e54fd62507115b990849a9c3ea6153b405b6c73f27f6755db5c489761da376ca05031e027b6a34b12117ab8cdd1965cb958e6e0a7a8f9b8a780b0d06625ae7b8b5d2e97510c3c8a3b010b46506db23ad99f509d3342df563c2ccd951a7f0446d582ccc872aac034a27a90822506af8acc35f321bced03f1dbba19507c17688965b59176563088cd44dfcbca8a60baff382b15f812768c41d3aa6227c760e78fbc5e8191b01e697104164d8c1bdd2133aa222886263a573cb3d18743ebaf7abc486c5ad24cdd770250ff860acf05a88cb464088cf23c82f9a191833a780ef44bbf5a06cf1442fcffa547ffb354c8476c0b8135c6abff733c30f38a3ff331a836492ba26c668b679da54463b68573d566de97a2b4a53cf9621a6a5a7493ff190b5c9a7ea63019fd1c3a4dbc395d0b254c80f7b5668e6074fb0bccbab9811010b1c42d55982928d604ac9f3b5c0a3888cbce54cf0e1ae0c9914fb5474ec29492cd1bef2537c4e3837ffabb058993c3fd11253e87e15e84451269b6a48911ef15e4f82606a475cacf420ed6796ac04af07633b6ea63af927c611b07dd932bd0ce852c4b785f7348fe2906eafc76c3df8706735813ff796ae51837c198e2eeccbd0a64b45254209882351740fb6414363976ddbe5c302a29dcd832270732e2c6abea1969e8b17ce2b1807aaf2485e6b07e3a7419b5019b8172a3ea0b7907a70589a88cde16d1b043d7985860f623b95645ca1921ac8109870758016a5bdf37acaa273c18b6944d0911a0d255b4f9580e3b50383f93bb7871f3fc2b280f2871b1c17b2c74b9368773ab747ec2b87209910cfa859243b7a75288c163ba025fb667025433b12c471e7c9642c4ab105413e0641d7e961b3fa462ec797d6a9cec7ab1ef6a64b5d5869c4e6c3ec884afb87b2a8711a46014dad830fcc195dcc5b966252c5a350561b0359efd07df9a4b4bfc39ae6441cd70b57a4718d55a0bfd8f979c0d01e31787afbb1a8c2a87e5a7b70d8976ae4814950d00e998927039111eda21993c17fb107034faa658617568350a48dc4bb3b124b032b35ede2ba312162b57067ab245533177dae67894349327663c329c2a752002326b18cc60b1cd1098968d18168bbbcab459f4a4c18f63a7dd0e9ca68f43a6592484f27944614c35d121bf2390402bc93797055936a2d49699cdeec2f29413403aa1024d802d97c54aa316707c26a0b432821f63cd89a87f769597cec8356c2c399d3a34115cca89b9df6a55e4556a3b2150b51907ce67b860f697a65b199b370691fdcb31cf7937d1524bef41a0732cfdf464175c95d9092176ce52814d3a9231114cc31718755ccd3a7b3fe69b4290175dc440cd38c69faecb190ca684fb1001b5308fb4c1ff6a55b4be8814d602ec59c2deed654c93a45d55a3e020800e98aa786c76fcf33cea3a7bdbffa5037a171044b1b74d6094d1a3b606009b4fb0f060b6dd1d29ae67ab90c90c25db895c9515fe0a17bdd69c6773518a532ae8ac731e32155500204dae2c9284cc16f61b5a9e48334859357506e2c391d1bd38865ea489e492d8b847a6a50ba074320fa32074d89894324a705dba4e1847a5059645c77063809cbf3cb0555b6be4069c77b10a6c6f67ae1e7c09d603e87a34acd3b814d7b4798dc05acba65220289772abdbd89403e698f3556511e152bc0f77509dc36803b57d08129951ac44ecc49f43b7cfe8436baa8b5376999f6442293352e76ac592b95804217817ad5a75a76caa72172df9c69da4c170e937a69d93f12c7b533d4bce41b34d0cc8a1c969947db2c21a960d975ac029280ecbb527654a42385576286915d4b8f3fd163f0cb280736bee89786fa277c8487b0820416985855a95a10647059cf34c08915985c32321b5b8b45a468cd4253c662847eea36fb238098f059630cac83aa70cc9596cc1a0406e993b737c236e78cfbea1191d60fc6428fe7090997f1ab41c13e0c57a256a813bc559ad1e6ad10dc3cf43a64dae2955f03b46a09ac6ee30326d95d6ca8b80e61aab77579c017a1906279ac09766bd8a1b40b24d8bc4deefaab47f9c14a8441eb413dbd718e5122ae7beb94f526a31bda25d893a544670d994530d3c6ca29879085870f6d54192b1a7fd63193c7423be4867d2c134683ba25f9240e0fa2a96b47c5ac05b541c2980f51557989b3eba42dad002412f462acf75b141c5fc320bdafd3c11be291eafc04d6b5a1d4117c7703c313eaa30477253e938764364b25d859aca263962c5d6d898ada856b70e151dfa41289213acda6cdb5241bc7067bee5cb467c34d2b0a6ded6aa746290ee2e40b7be1294c583aaf415dd03213a3cb2e41f10731823e749acbc53767c12b93d8f32257a54c6a71b2041a167d685f0bf789b94b277f1b60af22c09b639ac72ca25b1c69b855bed6377126999c5708789091cedce768b253ccae981715c8922dc9562ea8a0ba102b02585281b15c7e44339cf630529c1b076106ee2b5c7be0181ce43d397a398c8547da703e2ab47bc15284f4c6a50dcb904ec9c1f60a1aeef38435997871e8501d4832bbb2a3354c70d9579f237427135329cda32573089687d9a9130375bf66ac321113a25a08aa75cb667635455a93eae7a0a6703a2dc0a85637681ecb097f1b16b2b331210b6288b13f5752bb6c731adab30ca051a817099095022892d923f571b8d879c8ddf0ab03145a32298dc6b644b25640d808006e3113accc6a0c1ccb05ec273e6b6559e287539c72d754ba9bc48c915acebb656e3cb7713e9bfc0bb6f311485ebaa078b78a737d81d38d368c220eb0e982fb0bd8a7ed97ed3d1dd05854a6542b24090a680b9aa9d6c65ef31cf1f4f5708affafeb2e398975d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 +ciphertext: 9741b66dca7f6250ac69e4d8ef7a7cde4421c8442651077d9a1ec366f49aec28e744cc924bd3cb8adb85564aa554a21d9ce485388293780d9a1e047c9da49823436a94461bfe2b4c4ac4d51af950e506c5bd4ca6da9c04262bb2b464b208c3686edfa29a512c2fe88e1de7faaa7176001ecfbe8303d779bb47bf92761e724cf12048708b21ae7dbdcacad7f977bc6a66264b648d7570460532966da05f9d950ce5fad36a9b0ee44e27ad922316833e6a18a8eea01c052a3b49eee2818634fc812c37837f0a09a42e65a5b124aff7f00c3b2e1e48523c643659a70a7651a92fc3f4340c3a5e0257859826f0fc9deab7f56258821d1638dc3ddf5fc1240469e6c7d4ff73d33758f39bea68f95449909551f8cf074b59e9d616657f2a6a336c1f5205e17f533c6b717e674f9774183d18446754d971d038d6cbcc51adc15f3e672fc612628eaeb8d0ee394a8044277b77bd1924046adfe1a5f12d778db4f09b8327497f6960d8a799935c2e9fe637570fe96280dafe0ae466cdf85633f3c926dca5eaffa5033227812aeffca6613138ecf47c1d5f06954b84feb8a580f964b1945448728ed02a0bfb6d7ec93d68eada6e34d7b4c084b36b4ef9dfcb5d7f04d0c10230889fc693303db3b45d4ed85d345ea161619b726de8a594ec59341e225401a0aa26a9937a5659e43d6af3232f985bb973857f88be76693343f34741db8cee47764c0dd96590d3abb71ed5afefc3b347540336a838703f658663c7d39cf338d8a023808bdae67f7adfccfb193e2324ff886218557504ad6dc63c86532a413b19c575001a527366e8d188c94797cc56a1c0b3184eb6b739700c9a36e03c3964ed2eca1de3b5c4d8b71c783ababc95a60e783a53e245fc7a8f6c1e7f0793b6660e250f1bb62ede38abd359b872cb033a434258c0255bb69af3f7529ecb5dbe342ddeac1e841ecb95bc312c8499b757c38d05592fdb5ff04e2b0cbf3ec766e6f6f37e7cb0f250a10fed900ab73eb61028c4e70aa8c9d763cbe9e13deff0fa2b0459962233f4ed514b8b8aec33e39cf7547aaa2b9f796da64c18e2245ed36b4e0d1dd62e3474eb4704016631f778906f4e7f6e9f45537cf8acbbc3df179090c1ec63732e2980abf292ef39cf7b87c320b76f8d6cd8f6141a21c321e72909506ec24d5ce6a46518ec59d22a809d5f54898f2df2270229e658878481a1789a71a94b28a865f5a2a48c18343d79fc850edb10730b7e0b7010631ecd9d24df0a8a1cd6cc8573f23ebc01ca355f44db9550445448d9f48c4f084c4b943a5828038b5753896676e09592eacc26a112da50957b153a23316fa6f4e70a84ac29c0969aa5fa6702ee80f57f18560b7dd4f6c81d0ef12f6735107ceac45a2bd8bd35f76a59c8d1e1859f2b1b13fca5fc58e9289e7f023e4f03bc571cfbc334f53bb23d2af3da31f00f476af0828f8240f71ba607cee6d125d3055a02307197544906ccfbb15ae8778dfba1cbdf33554c98a7c6069b9f3eb0d82316499832a878167ec9b11ddfd1 +result: pass +shared_secret: 53b3b4ce1e75cfe52d22450bfa763d07985dbc585166b4781a7e6542f9bc03e3 + +# Official test vector 34, seed: "5da2c51b4acf488c8bded5e985cc4702e4a7bcb248b5ac18aaba529f7f9cbf30efa776e99f76d5c1686e94f50fb57dae" +private_key: 9ca01438ccaf5ad79f0d253c6d29707c603905b40d1d3b93b269be9072ba04020672ec15ec059d3fa9598edca4f4db3164557b1737a0de750ef5c31572d80c5d82ab52184238c439862492403b1cc06c7efc7b94b41bb1718c6523db1e6f63533db04e4e91c405527a4ea866210731a687ce09d10e5e0945cef0807665bdfd797802092f0b6837d61550a1d481782045c99b7df6e2b9ac95bb44284f472b5ce1636b1b3662d732a82d76517b57ba46fc9bee14511be585cf0a6549584a361b7009a733c9595f01dc6290471e3d656371cb6d63c9bb25a8c5caf03a84f6684af3c7daa48b2850be6c4270412572f0c1ae74613752e6bf6d53c927f110f41922492780ad486de631565e99886a077c209b025a6561ba503599897444642db4750728e09d3ea6498d236153a743744217df5400876690e393b0f3e2a481c31b52d605cffa140651ceb93c1189aaa372e906a14b684bab42c82b2071133cc31892048c1ad57ab99a00680e03287516141c281d2e1978b44c84595a59e13647f11623ee2b822a36b4f41b8a153a3dcf6b6daa97b9240b25813343561750ab7abf17816d76616879e09668b9c277d1cdbad74a5e429074c07a3394ce72a99af63010be35611d296348a163cc2b412eba4873988ac341566d1c2e60191dc9603c62f058391392494976e073760c0a9fe058564d0334a14a4d8e9b41c2e7226842aee7dc263f35b47619c99ce66f6a546be0e716f8a61830c23f37f152607032d34a6ae3501a00818bca04cb9b7145673917b9252f449a7463565662513f92a5ad5bd4bdc6d63c7d7866019c0454956b92595efce15c900b6d60db94ece8c2f4bc7fd52240cda936a5ea069980837c32c777f60b2a5bbc41a540c0394a3ed53bf34b37d8e7627979cd52fba35b144df35cc975209f232a0d24000c826cb54d365d74182631a326ba0674b86b1af79a169ba6361d30737840bcc5f3798a9c5439541f6e036abefaa66a44a5d017855b48bab216170db6489d74a7acd5339e43ba3b6bb6d1411add611735b9083c75b5111b903965a4b56b4b27585e9670b0fa2c5ee631b6db0acd324710ece9a429c83b76bc417a087b08d989a44b3d9cd1217d835a12c62a437a34dd1568e25c6db41c4c98d0bb7cf7b12be2152c361c1a881b409730c4a9b82498245a8141a903c88cc7aef187628c226fa3ba83d2453ca397290a0cb7ead61047bc4d4f36cd6d70200a1a4139505e3a86885bd61cea052bcdd52a1cf33ff2411f4b9c91bccb7142c6657db694031649bfb8800885bb076a0eab3921e53b40c1b075677124b0187969db8384244f63c6936aac3f6770b9ede5c7129a8e55d46ad5d8636c80082c47611b5c3ad3b814db17157df41585e68f5ef027e9537d3375cf7df44bc807a7e88b8b9b083452a35a6a5844eaf3c4afdb3789806d658276c4a18361aabfe743c67b2c626f1cbb2a8cccee295e6dc7a4e695b205d4980151a89e404a2a1940b58854a7e12e0d221fca36592044492094619ebc7783dc1a12d8a6bdb95f697514f214a7707949c5e6ca4ab227800554d77639b9d2862bfc27bb686c701b0839402a33a60e0c253e32393e6a1c45003140d2b7cd56f34a39b95d90d51e8cecb49dc41a37e866c8fa1bf723c3e3815b1f388f63d791fe0cb8507020e19125bf0ba753fa89c19180a7505e15ab6c44e32f70499df5cb106f85bcc5dc4f20d9660c17307de05bc1eb6bdcebc52727ca3544772cc56a08b30c0c54a847b28387808a1747a23f6460054c582b4ca1e09691c64615a6ba3f89a05a18eccea06b550241047c1807f3323dec674f17056d71b7bea906463efaa0fa50b051723e0cd66cc7587df4b58d49fb029fda6e2e507d637ca7d489971d897b09148a6a2b47d3b4bc3a4ac0715b3abde096bfd8622ca24141683771ccad1094595b20c8af004d54873b0d42977886314fc889e5804474005527170c49882ca89648d24ba29cd30a7c2868f287345f4926f1141531d3a53cf68c8662247d47348cb1a102613ab236b67bb9a7cce47e794096c0a93d54f743cda16ea09c8d87c43e4a1b2cd9b0b5ea711f30b39812ca44da20b02cb4c8fe12343896ae6eb838ac648acb8bc8e887ac69602e7d81263315373029b2d6713705935a43177b9f9888115202ecb1a60e433d8de2bb42d235135224c7f795d342466b4c5bb8bc93931116479171800b717c033a304bc619d2a79a687e005d6215fb1e76ab67d8b46c72857a46d753674a7ef3962c90f2b62f51458204b71d95734533875819a495360ecc12b66005330593456c516ead7b3c942688a822bf0d92bf849bab6068480a0b0b4b8c3a451007dc2a733de7b51d835e5b7900ac836fbdf13a9ee82b34ccacdf6b8f4cd0594c80473040b633b7ceaa091259a21c5c881602c146e4444e1e48800a189239241813c13b724a02e6e7a70834493f794ae7991bbf1b60d4c0084c213471eb3598079adf95004942176f297ad3d55b5cfac5a3b385679ca6af26217ad8309547a0738328bc1a519712ba545ca739e8c253a65394817aa6874e432a95e5f35aa045cca1fc1c7bf467424a8d498274646c05c15b176c8a69f90a0a524b6e4b6053979499e7526ac66830d28b28ca2c6dc4061b1546a4e8d7348416c8a8fcbc0779c51ce855dfc54d94d74bee674bbc383adb248c07eb8889b0b44937356906a61b1074362754440856bb26b2fa906ebbb94ccc943fb39c00292843ed501f5f673762e3afbd7179e41835208700fef233793c0850c5b48499afed371e56e5a92a4109662247b72338db4769f9849f9516266acb133af5666b18131ed347454250cb04528c91b8334c2f5b3401cfb28e45824e73c1b6854b330c47c443d931b9e5b139f31b25d4458ac53a32025d49bb5d1a89b73bf930c74c233bba7afe30239a41587985726fa09d0a7a2ab19559ed380d9eec34b5fa83b73813a763beab0a1f7df5b87962709f255256a36800b94062d3af90990b2a43251ad9b0e400bbaa4a306520443ecc8cf45613a8fc1c61e6312cfa02d23c1547a69cfe43660d987a0210cf60965fca77c850503416c7c18a37bc10ca47f517abfcdc018ffb538f474404917dd65c8a680a667b1762b5958e43547fca1aa0da8907d7d3a25b430724477eb2844e54f35ae8f27598d568d413914bf66b70e37ddbfb7df01c08e1310932ba90ac2287187b022dc659c83b9f554871ae4aaeba7ac76f1254f174493d31eda27def0331de8e68f7b1568c4c8919e4de7a5005ce152fef9c8c88ec9e6fe12a1e2d742dcaf56c585651ed6edce4f410aca0fc83275b5acb19daeb149d248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f +ciphertext: 70fa89e37eb5689eb2b51fe7d341fe3f1e80e967d0fc12c5f7fa1b8043d02752df88cc6c54964e517fb1facae8ae9b8da1941266c4744e2fbe3a12a2cbc729ed1431c4bb333a61f0daf5ad7231ec741a9fac9a206d15c5e02ba5506a8f99a4ade752738d8ccb744d1635f609d4dfdfc54fcfa5b337ee36c93cb35ed056924cbb768dd089871663c471cdc52da3ef4f61476b9e600215cc248ebb6ff3a0ea7f410bd20f9dbaa1045b46b998caf7140e96468e5e7349fb0ed37eeb2ee46f352ee3dc2c074e258b11cec9782a1f475a2a0800f50c2e3fdb819d85f6cdb392f471f7e13cc5d2315d2a9ece5450758c2c8d83b79825dba1b230db7841fb3a6d7aa86fa08c5744c976a83e67d184b5289987d57990f8b7d38ced91410c49667c1398222cc7bb176808fd19f525102ce7a682d6bde33c91edc9bfd6844962731f1f6e1c24007e3e15f2e1b164616c1261c56032bcaaecb933dd653a6a2debe9649e0d4f3cf849ad6dfdc5d1ec65e2a04d0bd5fa5460e714bb5f8f68d2a8ec3f4470e55eeca2e879af6424340ad6ce9149f9c7f345c0d417884ea8d9f918f138aacdbb78dc5222db2b8357b3d685a633c26d14c75feba0734dcf404d29f6c057d8f076262d82ac513f8730a0d55fe8d59de174a34f697366c08569744c165631961fdc637ef3ebcf572f4b8517ec51e57a8f94637dab7130d4f7b976d16d933658c0b161404f74cff2745a719ab56e32a1b5912c8016c1f80523dcadbf9b8d5986aeeaa5251035e2d93344ec7284ed7baab5a083ef365cc61ae01f77a4b64f819eb5526172e20c39f85bd0c8eded7c20e0a8dfe3faf8d1f2834f2c813e4030899ef222fad3c1a91a9bacd7d8eac4b6d9cfcbc06e160b0e81082bea66aa34f7f76e2e6213405415e57854690243eba8f016e6caa73078b59e3e7359a15bb3f1aa096a974260ecd74524a582cd0b9db891969d7c17a2768decfa0ba0e49f57a54709d767e4e24851c719749748ebb8db80733f07460f4d00e3ce8474551aca82d148adc28cd2b8f0e61a5731bdc81cd2b79e4097a680edb6131a70a285a46d1a020c38e2f02a08bd59cd07767566f6e930e473d0e999b37bf546faa102625048db6be64c1cb94757dca3e739fdae0dae257d91a4ec2d5a5c418ae340ede0b6114d9cad63a39cbb64f85eccac201419bc2430271934f53113682586b307fa7f12f0a1ed4c507c4229cf7a4d27853c9c41fdb6286750b50b11d73fa0eca184b95ec42a4545e5cdd5c6d15d9ad02e6535e3ac87084bdbe1fb35f031ef5960f867982bc34bf7c5543c2f6d7be142082c91867a0ed7c35bea543a60bf12e25879326690a1cbf76f3a80ed8b0eb229ae70a665823363b87c044eb177d9c1ac3f87edbe0ee6329f8bb39cbe5417044371951ed3f9ef27b7088ebb97b5b6cf13a51fc08bd09143fdec693a9009987b424f0a0db914e891e880c16ca40bd05be1da299e9ec17762afcf808772875e3516050e4313ea66aaf8fa7e350a864cf9a73b7139fed5a8238224 +result: pass +shared_secret: e7165b66834d919f8c8737c7b4df17a0668c57a87b821af78fe68cbea325aab6 + +# Official test vector 35, seed: "4d2239e84b052109a78dbab6d80c51a86d38248105970476b74a0b78b9cfab6283e30d5a406fae1c7f54f8bae1110ee4" +private_key: 7079b0361596d968aeaac085c8f649ef02a20b947efa34800067938ff753bc0aa132d1a51944634ba6308e64848b60cf01ac01a7a13c5ac5763f2a07da294d955b5044f2b46e2b6f51d501c3949e32a64bf7ab5b6435986a1719812bcdba766380a0601c807ddb1a0c532017c0540b56e82c63da8276e665d0c4418101af9e07092a48422c960f7a818cb266141ce16f76dba6973b5da07449a2b5cd3e20650d753c044787a6154257785aa738418254281298c272273ee880099772c5a8d0491eba4930280f75664d6156928967c2f855053b63aca1141b8fb3c8e7720c0bd8c17d18a2c3a73902d6711c5ac31110a4008d920ef9c6cf918d0b457cc2373229516f2f0a9c70b91fd640c2959a3d95634736910c840b173fc4565912a332914bc4c6251483691ed7aba7906693eb54f36794bb0777e5b45f32756ea6889d6fb75c84845d99a5458b024257a6210c657555ab7cdb802351e1016213636c3b37af4b57aea9cdc5a336fe2b987fa5994c991c5b59aeda80a5dc1639a5dbc994e330f710752af651b11a2be27c57413704c0685973c67f969098383b341747ad8849b0d86715a2a296f0321f2e9c72b69431d4253970f25d653ccc2bf72d617bb861ac66781576a6f7aa70953d6d3c40dd659a373a1d7be285ace7c2e7c754d42c780ac5a8e9f7beac93610b9c56c64b28703b63a1684a88d76576743b650178c79b209d28a616d79ad68092b5b0cab578c4af895aaa20455000a07a9cb4bd57c04dc5ad159488b70a289f229e87552bbb9aa1f24aab37099d0db07e9ce14f500773d7326103405f5a516e0240647f556001d6cf77924c2eb3c546a25aa10a80bbb20d09faaa6115020e988a85093f2e15447b536b6c610776403afab7037b795a7fc93eab9639f400a383454e10a591ac0ca3ab344ca0892a022532bd79ae558710451175134801106c615e47ac6b333b1ff430a1d2a0b8230afca93d65e83049f01d00ad5e795902b8ec7dc496268584cc90bb8c88148bc5082b74e48b1fc2116d9033bd342b53215aeeea5788447c0c50b567b88888841b9d8c9e9488ba2a4a23a3f913e00631ac784f13c858e5b49b920b428cd24cd1ecafe553acd95982af5b8b8b00bcb1074f6ae52ea7eb34cb4482d4679efc337eab910d78210b94f7b5ef150814c01459c0154d67493fa276dbab403950a609b23d1fd37f23e6c40be57c2b9bac82d9923ae3cae126be2c0c54eb88c9e0307402971543b58b67d21760590c818b4c71855fe90080696644e074bf2a45237f037565e800e071abd930abbe6b6e4fcb8774aac945898ee8b74911726e316568068a1c545ca5e75c02c2b2872d478605341ee5b8b914690d9b0938940540a595744cd8bae7483d39d1511344ae19bc99fe5b5180f22c032b6bbe67bd507c6a9a22c2e19a8ea2cbc5436a8b307a9e69d237076a0fa8d52df9852205c4592461c252542c95e2847651011e1233834508a8b7b3d09c833e8837150ba67405ba5d651075e39590d74ead502157253a703c2d460cc21ef173e197200aa85e497c9e6989996cf2c29320bec0b671133bce293268fa9b4ee48c31c9957dd2319385301c2ba97338c99e33d828119174e1696955c4bc38dc838761a183d31e38bc21fd2b955d9002ac69ad96c03822fb4283c4216e93b96d86bbf81888b68b1e67741d4fc8af15d4642a7b65d7b408ec711055826bf634557c8a7ce4a32384592f3c5881aa530213c2435141505a8c0918186c1508ab11101b09397d82b31c85ab64f4bb38947726d2c717362858a0a3656487b0deaa38c8109e5fd061496a695581347d52aa7ed71c20d8a613bc54e8a49a92ebceab993b0fa81de448c156550aae181a537c38638c6320abaa08c50b7b54211dbc8124a487eff2b545ca3db8a07be7674b51a95efd08c4421cbf2aeb8cd92383851a044985aa9a062bf5267382db45519bbd747852ed1a590ca3a89602a6c65cc06c856e22484244fa15b928b13b91736b1680e18cb1f76a7209b76754076db872295ec76e246b1f58f80fe0610372938393288c85b2b2f2107fc39c7d805678e68a38e3e57c30ecb650dc15468674cc54aa8aaa424b5060a03bae4d74c8a43c951e6b53b2c8b1502459868a1b03a5c1395c1b10551c28a6756d251e1916c24ba33792d74eb88a5c84078f60c612beb4a7d94bca27e3377e53442284c395ecc235309d1281c53964bd34a067f225829e5cbfaed47da9e393895aa82a67ab5b44a92d8423bcb59265e73b84f549927427e9295acc8694d77020d0e4342d3c784b121250140db1c3bd38806351416c8f86b4abfc7a14911bc865baaf867f54e92f935b044b60bd5343c5fc9b2d1dc68735baa31ce155e37c1ed0c85162d2ae3492c44c29343b50351c64747f9765b6f9306bbb3e543334c987c9a1c2a5783a576ce94b8f10bc3539cd55f30b0cca01a5985eb5993d35b8cbb136bd769b13f0c5c2d40b34335a52bd34ab04f9cf3f6c313b6c5b9ef879c10c1e1b249cba2580f7da8bb06c003db8718f318979e358292b881f9ccf984c525b61a34f6681197a7834913230627b56388ea26cce0569680c968b31aaa97710c9b2cc019771a57f8b5739554e45048d59610ba990b2e1967648d3c87410aff7981a57e2bcce971b912c2bf633bb8ea55314f3327d3b4fcde33aa1e235e6eb603caa19ba83c98eea4196c78a80e8b5680227caf06ebb22042e9a5c63974650fbcb1531404c6862710215012671093911d67027d491a916539a1b84b3c966b89ed3b1e9980769267827731ece44826a3a0bfcf037d9fbb9bab4b85ad668fd1573c0e9b227fb5ad32c948037384145188b17620eb91cf6a6318f331cae3800164ccd138c8c75a3071a7c0166f5156d74171b5b854c0783f9905b88950c23ca8835e530c4037260500be9f00510b5357fd1b80b09aa06b7126ecc8bdb709e3e698761f756ad0624280778c0ca140c426f91c76f81b96cef425403c95bc00852359b638a8a75b3fcbea47990e002b346d5a9481083c4336d02191326f6ab5c5777f622cd4819bd1187cc6099cb7968474ed93c0b830bb301314551970b86a25da05dce97ab5db744c78536712c752d02206c8585285268c5842491f92636682b223b6bddd39c6070bfd74aae3f8ab1fbc357136028aa3542f006cfbe429001377d2112c5ae3805244b865ea863257aa671d0b146d04b89b233f70768a373043a59b9060b0943f56865e6a91bcdc54402574a0f1c143dd36948d781d2f3c44e2f08b52e339b6e1cb330c784bb2ca3538979b24246c2644907484719c531ea39f13c5a34046f8e5cc31646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 +ciphertext: 8a123f400b8819e4a011a98e2ad172d55caa7112312c89312463d87f29007d0f2bc26bbec2154e7bc61de53f7cf971d2653d7f6bf0ef3c3a41f3ebc81a007fec27b2071a12e5bc55cbe4b1e74ee9847ae6ebf5c19f67989d07cae375209b78ae35b5fd1a064d8436db5cfb6f1acab16b1c9e49de8ab7615b8205a521c8fd597dedcfa9380fbe458be51760d097867e180a772ef77d6e2014be9e10cda64d88f7a8442bac3f736a2cdf37fc6255a09012e4f4a42a1ace90d99db9f85b9b9689698374d0fae43afc4dde391ddd631e90e85bc63616459f44e4fa6225efac89a2f3bb802c2fdc975405e09c33cfbd52f9a5b853ac7ff30723eeebcc626e46a70ae671f490c32bb3e9d5e32404efff4663bde8e5fa3f9868569d99abdb1e47a11e37e86306e4ed59f0a4896ba667ff57cc1fb140266239f0c1942e4f274bbd359042a4c377226fe963f88079953cba6f338efa8ee2c0f68ccbfad1f78eea6130ba4ad1fc7ce65b3f592eb322deb9729975ffcb885208c73d9dbc51c29544622de87a20991852a121721340c0ee5ffebc09fdebe504e0bb4151f4c59cd24f76eedd3a93f8fd8d6758aea16cf041a3f504085d21e806b2e727526d49dfebeab1339bddd4770fb1c92d3e109a57a204f81556539872b536426faebfa0e80c48531db54573af4d1b026314fd5e0e4665c61eef611dec983c285b479d8982d05ca59efb6128d38be68fe8812469cdb652a3d0bf883396cd57c173cba03e56566f1c7008523c614435c8d734b5c9772b2ce8e806824a1fcc7f20587e6051d46757d3334a345c97095522acf713abd05326d07dc1d2a845540c6a5ecd0b4f3805d39c4cd4d4f07f92806c14e6183eba32a5290a7450cb7630c3fe0e75ac0e9b875a949c4d3ba5cb8c035aaeaa364051a59c446e98b155e8b17ce8eaaa39fd8ae46d03b1b7cc53167d980366437082e5c072b029341be639297a9ba8ca2b2c521c932bdf5c687c030f575e80233f3f802c6d72b040f451771b9005a8f4da08b153dbcebf1e9bf14099ae15245d408f42e3196a28b6ae8ab6f242cdb7f23b0a67e0ecbc9756b38a5c32c40ecc120a229d4ef618eead86a39f5cd70ec99ac88fac2ed092c0601d153ae4d24093d66d910067ea368bbf4f6720e874282320614dde2352039d6a40b394c5a2d15fa00030cabbbeef0792d0d3cb7dd5dbd76dcf411ceea06948c5dc42e7a21e89c78f6dcc03688fabb2dbee392eb4aecb1988cad46a4505785758b762865ca03bd7dfea22fc19e83e584899b1aee47f509bacf994621e910447f89816065b3b976da272973a5a4b9acdf9087f2fd69b962f743e0f2bbc958c8d832f94400703662e2ea538149f413baf7d3e42b50d9d4acd8e2e12a2d7b1914dddd108f0e08d1bc0ef663179ea01b98e476e4e71ca7a54ecc6398666552f6fa6faeb19178c2927741d3de697f273fe5da558a281d245c3b68a25e395dad0c7b1d8ab4d731db6273dd1c535215f130e043ef491dfa4ae25cef994fc538b2259ebe67d +result: pass +shared_secret: 19599e218264837d06839b6cb9a09af3bc4cdc78f7d9c00fe030ee92ba3bd54c + +# Official test vector 36, seed: "ee762f5c9021c36446706a88ef16312f4a12c725cd7afff1484337c91eda8e89f7007f3705747d29907b3fb7500e5074" +private_key: 06f99e63362cf6dccc11a8854b1407ff12142d91a19d0395f3923abff155cb4807aa932e218232dfe932aafa673150bc9e7155794565aaf7375f7195f0c1c35279a51d613c6bc32cde086f61725c28324e9e392d1d3a91b0661f1524592f6772d4e012402c18ea162a3cc36b8f565152dcabe80691ea3b84d9eab83dfc429036676d1109d9e258343b418f840a1c53b47211b55f490202c4659126bcc5f4ce23f2906630026cec8418526efcc02b0feb7728a53a3298232ad37a424b4f980827e24ca9cef26115a100bd224b4a304914c83629049f7e836b8aa539eff61a60fa8154ea97c31259b3c629dc891c027c8e5441b5f164759b13980ee0a5baa71deb08c99e6340419b0f6ec82ee2536231e2634f9307781097f8ba2a22db4412c5bcdf764f0b58bfe176163e1b5667ccc45b39c77b3673ed4c70786a33b5aaafb5d5c12d4077baa3223e2614a7e917c7462f220545fbe9275b1a62a882797e5a96cefbadb309995c9b26747ab33e543b36080c29a4bafe68ae41911aa763a8d90162a1959dfcb7890a394ed40a5340f0b8a89434baeb9414ba460178b2c5db503a28bc8f2a42caaca2fbd6c77d758f30e14bb1075ffdf535fffc76d02ac264787e45340b1dfbbbc4513ff15abd2337b6d4543492160575f44ba1c793c3054bfe767a827875322ca753e200c717c47db1ad47f12ad103c28e9380be2868c8b32f7102c26b977760e67d98109921425611b9878e215494910730956bdc7a015506c45f919071042e921607560560237bba0c3190c759295ad059b7c99ecb62222a54563ba730a7d3a4dde375c9f931cd16c4344552ff984fd6aa9ede0602a840bfcb705e078cc375437d3927455aab6ea3872499b0795df7bfd436cda3368bbbdb990d6ac9d3f637be663e7590055e00558d0177f7c63e7fa292097303d68a34f240a17c7c0b80c5a69004c195d915dcc880acc9cab1db842c14722ea534b865488c41824017cefbaa5c1127aec9e535112764e713ce403c64a6a27662a254836327d5924846dcb646b79de5ac0bdeab9223f36f5c124e595165753656b0110241f6b805b0b30b1b698190b5d4f1ce112c93b4f6a190106c7be120d2dab2995578fe9c08db3bb36c99c2c3f2001c6a269f563edd088f3b50a39d508a67c75889012cc090217b321e99e95f4f310f8db2cacbb853297601895a3430405f828827cf151a83480b4276cb73996fd5d7b357a52573912ade3394c48b7709d50cb8f2381cf50eb0e14bdf5740836138e539a7fa6a4a94339cde3bb71ec34ebae4bf4763ce93d6041f62bd61c81868f81e8b88124e667cc83c0b226157560647996a2581837b75eb59d5a934bde44cb1e664de41184ac480323ca59f624662b17bcbc20424c565385958c99246d2383a9e2000f9b817fc57b7f32513d96ccbb6140510e11e224702893bb891350404f376b0b04a674b2161bc3c68e8901348a9a9d7742aa3a210319dac25a7ea909f2e877728914cbc2332bed4876f5453aeb3365879a0a24244c6172a8d267cdf9c10787740a5852e66e3663a879a35208a07959b9c5997e57a779e8679563caf551a597697473776519f87b0d7e03c1a686d705c55d1b1ab00264fbcf666abba49136b6e6ca0ac8636bb20d305bca62bdef6301aa51899d7341147b72c210afee6a3294a4ac8685b1b6003eafb7e94d91fd958b5c3944129198bf02a2e9491491a2bad9375cd9f184aab285e91c877884b101511775cb31f2a2a3e7337406d7662c8d8c83c1933f0e27b8b2b39b1aa8897440ea5142f22b218c77c664092996e39237f577139014da6da6870d848cf98b006c9633ff138323261e1d042ea645e60813c11f9489714c197607e568c8045f0244ff40fb86634dd469033456604f19255645898181cdb830c1a82c4eb1373ba820515b6a44596342ac8b912c217603cc92b8a2b52caa29972bc95ab334a93307d7b9aee013b22118eabb947b1a23150481fa1e7b9146b9ef5fabe9debc682003eed2534d9614d90466c80a73fab8b94d187a383463e7f6a380d1b34ae5473f58167e97794767a20bce5b6d5dca88b35695e0a2baee03abd55ba0fe768a8254d40836233fab358842675508302a337840167dee53eb3ccb531a7637dd1b9dac9a00432268002165f72a5aad8ccc7131ccdb1c986a7b29bd89311099fa3e9460553900e51560364bf9af461f1487cd9f0adeff5079b07240870c310ac4702e113f68433981242c153c49c43cd93493b52395b5db073ec936f3518b7f6954426b9757476cc1bd0c4ff870a2124a8f8daa3299ac21178235c260a018c169d083cf40842bb6a0f2d407861106b4e752091dacbb85677fabcbe180abdc6235d0e8c34737a5934f431afa670d000166f6c5e4516174a205f4bb6182bb24a54907be5360cb81b5333a937c4e40ff2579b0039c0ba3374664859e376a8515b390bb46acfb54bbd4aa6daab1dfdd44c712b311798c71e162f36f562017821cc96227cc431ffbc3634acc704937187b8200d9bcbb0c25df359c386e740195662ae24cbb24b181a23a2b4cb5e3a767701d3a80f7bb82133be97daa38a706c7e2949ce86587246bd5fabc774956019c2247f5748f0988087159d42b8c6b1aaa398879c77e32b0a5494926588dc537fe1f05a10741fd8814f191cbdc50cb2a0ba1ec053a789396208415c77c18d283510f410a722a187cfc552f63159648317ed696695413ec894ab80f4c106d73933e312996b23f073bdb9625727d8c0ff1818d9f78b91c4a6c33075f9a91b772138cbf6861937c53aca7b535baacd2bceec96223ba7747b4a7d50c36d3cb0297967cc447c3bffbbb723455e421ccfd791c48f8ba558692e2ce278dd351e28d35ec1039f16d8281bc0867d529ffa6544b1663a14b6843fd85feea2b00e3c8b2131bbaab0b2161493caab5464501ff6e30074a372dc6a905b9a1a66b637365b48af4b55e45ac4236781b71b130718941f06c17d84786bf1a033b60da7c6b0d4d385f3f323dbea84c0bb8fa720569d1959473b1af84459c0ec4ef133c0688323fe8503069bc15cbb391ba7041e665f652880ee367c97f34e7230009fc401d7a34b536529ef544233761bd2a01a9da338a215492252906f979290202e5c666bb31a74feb13b05cbbb341076674c02567c80531c5573fc6428b8ceddf3ae84b8bb7018a3ffb02906770c4528c73360a867c2701158927eb5a9fac60a2f401affc4c65198b4a5e1439001d5882496fa682185d21aa4ef95ac3eb5e675c7a4a4426f93b30fe432c2e9744430805aef6b75cf3011ff387e323558212b9d71ed71f044f779238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 +ciphertext: 4730cd50dd082c8820ede968a7cfab0842f632a65a08757c67f05a01151cebd03e259aa45b446ee30753954b5c86240a0870440dc76badd33119e19a2d487f20499a48202362501ae0a106232ba9ea21b363066ec8886f8518080d736444f30e109c0354f17507e1074f7b608f16e814d76424647921aed1253dacd39e55abfca8ae74b25807cdca3b76d5fdefeb2a717ed54283022c607a22c419e236a971f96f075a7f6e46f07835732c2f9b3b32e722880b5d942c658ac72257dd0ac7cf6bc85ddf096971982a8ea480d8a7629b4b9c060c3ee287695ce0ffe1d26c385c7306044bdaad1c921fee6f93bfaf998b16fe9664a610f806b2ea0e7de8706bc1787ae6018584178893da14fffc1c99f03e8a9f54a2af50b8720f6f79be74dbfdc53324dc94e081a8c438f04a9742c0c2b1162c378a410df2be9d340f0719bca11c78dc23720a23718c1def9c31e96dd8f0d9503e43119b63390cad03fcd3d64a10130538b2cbcc9b786ae5c509b7d754a49e6784a8e66d0b80edc4a62aa5d7a6bf3a015e7df99e4f415f66b5aebb9035ee22255f2bacd84030a5128fdfa3a8343e6f84585eb47d30910f4e05f57e39230478a96f9e10920c0ad90fd32593932637f208c312e33cfa96dc2b7d3650570b7e3846727b5214ffc6c9eeab17e7343d9105a26df4bca08c6a0f28594c708c6281d7f34655370216eef77225b5ed78d4bdc303d5974a6fa92a9a75b12648f57f6f7feb9cfe8449c763138540f97c0339b52aa3c100421ca0094591a4e8a2af4fccef6ecd91b3822893e49f00a46bc53ce23eb05d489a4af115dd71a8e2eca292279b05c143cf877dc4bcce9fe75df54e39741d5d4d6a0aa594b2be511ae748ab03c9edfb8f46d6bf2a214b2d6f3d1da9f73ecfcaf564a231ae7f629b4236b52864366ea34bf23c295a921501db8f92d16c40f9651d8df6318ffc0d6f4b840f27bcc736d2e2494e65e81e1982df9d279440abc8b01108f5c92bc2655fd3d0ab0743baafcb19ac5108ec02e00af9fddb6301d9fccf2dae17152d1c06a43cc69bdce862d0a4f1290fdcfe857017c6e5802dc55c1ce2f999728df46144a55a18e54bcbe982465c8b0077dd93679363b56382a7ad1b8021a296ac90fc5fd403233397ec72d0ab74ce0ea77ca2f39cbdaa5aebc968130aaa519b0b80a141b65b3652824afb69185ad70c99e236af977f56b8e20b8401d13896b20d845270f21ff7ec1c0a86c79e4e15450ac94f18cd62e814a44d076dd7d3868a54412deb45b047aa71a9e596e385fe0cf77afa64c665c81935737e755cbaacf4ede409cbc858d63e32b004138234e294ff7cc01e637c54e719782c75cb95fda6ef4d86aa4e317745678370c76e47ecb77bbefc1a2e92a783c3d64f01f9b6d0bae50d15534bb98885562ddcf9738c9f08b4dcadef59fa856d9090a64627784dc670f03113d29a7f95a7b6162bcee928a5da0da186c7e13ae83e8e1a63bd168c3019aa59bea63cf967e2a17f2b937737c39efdf078273ff00c09f3 +result: pass +shared_secret: dc5f3931026bcedd2f57b65601f683895c365862d28a65356e94049773de2ae0 + +# Official test vector 37, seed: "d882ba69ac8bbc88715f1c6387531f53273a5dab87e66faa8221a7f628d2bdeee1cbc59c0e08d0add84520a3a70c1389" +private_key: 93b888d05aa46698878f187be0da6290127b2cacca5fe508c40a523aa56b923b5325fb7bfe0b3cbff11fefb8c9acf6b1add2a41d265be89baa96989afe97a5a749484d27b8761b6e9cbb2a957676743cc79b22a74bf92ac693bb54a31c4f269e5d00c470630f7c491a708b40bc7160415576db195fe78b3c33140882723387d4af2d120b0fd015b41b5984a8c217e818300831f1556c5489139f216a4ffa5799246e9151790b98c2b907b8cd917f8d981e7dbb760a725a30e34d997774c657cd4d2648e974510511583f15c5f0100872b91d0c1c89c307ab4dc31cde68c364a20712559a7c7c58d6cc0c8feb1645d85436a8188d7c171da14451685591380bc0a5417870645e4c633a2a430f23941c80c92694b8cea6674e97a032c89516397d42e44855b4ab29f484d4e33097754d0fcc672f452be0b3a2b752c2e2a87275aa89e65ca0efd096ec158f591557c7fb1b6e696ef2ba704006b7f6e811f2385dba947fb10c404b79b90e620a842a569dca77f1039b62403787cb36bdc8984c352c48635b552361c77b82eb67abe8ea1db025302a98b9b075a5569243a8725493f07cd025494b5c01cce508d594cd36f473b8416a9e7a8de0a99879c109161ab3adb78d01e1b2ba2809b7266575086cbb2622a4e708733bcaf322420a65873c624dbf1c20a07821a0ec02611a36f4501485a6399a91b888ac547c50120e5070e597a9a6a67f06a2039cd6ccf7246adc0576a3f4457cb9a4c4b46ccd846a77f416961072cfe64a32920851ab1a20555122942b7c3cad5b137f6885b39d66cfc4f5c7c6e63d2d45c8e184467ee336945aaca71442b1508bd9687f40a4b70db764bbf90510526ef1842151c56da153a100fc92efca3539ac6efac23fcd60665263cf435ab34336b08d2023eb147eaa00c5271459b026638b9c18d2d04e3b429ba38053dffa2b1930a7453146e798323dc5c5fda63ab285810dd734b9988691c8445098a2ed96cf2324067fc45d12f118b2726104404c2174097147cc6363c684215a12b4b34b161231331c56fab25f0418f5e55fcd8bc258349524004a7534b99051113efcb310d61556788e187c1f410b6563530d8aa4bd07690234d504b4a9795d8141d56049d8e1c019932d46219124596a64e20658f010724547e8aa25d55c042a8a58de53b10c9c26740812ce6952f765bfe6153e1b43582f5b7af3ab3881ec42b4f80163f89648c622ab625da6b730f47244d2391e32c2bb19da532c726f30772cd90b64f481cad12c86c6166bc6f38fb0f92975b9aa31b8acdbd5bf5e746891a7087849497feb4fa63c28a4836784ac8a6e631055260ebc0b33c5140fd3ecb5d82156f16aab8349411d1192fe578e3d359e22705439317b7df77d08d38e7abc8b146307bda7a7e00b8e0d51836b1ccd35611835755a72a6bcc069165164a1181920af68434bd639fe0764fe07d0b6871ccc617b5958c26763113c9062be342dc5e44fab720a30a44a10aa0458379c9d8719606a564df808e63581820606ba242ae664c4fef748ad311ac4156f597c39f17c93f88a74418b734e0caf607c4f9d72877c925c0f25410f551c2b3860fc26cae2f3a319815a239bc4fd627ded7181869719ce20c5abaccd8889286f2a77b388a58ebb7c53e79619762ae5111b6f352192288128a83202005adcf0b15c0640f2b84d2ed58ee806bd4fa22ad26c5c8eb9a035768951a579f8facd48428e508abecd418617fa5901fbbdacb6b539c148af327823009e86fa49b96c42d8ec5accecc423fc979c475fc9c63696c21d206301e9d54ad1088be167af34c57facc25d4bb49ba5677842e27c1fa666b0659c66dc412de949980ca6a707a0c21976822579a0fb1d697892fc87251354a17f630271cb3b10f5c578777a990361b467c1374897675748f763619e065104a31999a765815ca7a22103f3631879b790a862450c69af8d29c0f9a48e8dda82f2c03c0e12b62484c4ee35002848b030e41dcf1084b1f70d405677a059774e322c7b72265e32810e761d82956cc0194257f31157928b786b6fb6011a130620d2f51678d27de0965465d445e6777660865df9e73bc6858fa8155bf5cb4bf9c23527340c32211009144fe456950694b656a2a30c55647d17cfa1856981867aeb82af63f1525c31cf643b32ea822b2f389ad4255838a2bc2ff850cbbca834c87f9fba1c05ba251acaad9ad99075920653d29d94c399cc4a2e4c7a871e176a275b7ac0a4401d36b35113595d51b92ccb8618f3ca40b4900774a784644973477dd492c66d09ba9b074c3d0347dafa08dbe43a9b890f62a5b9caa996f9e362b9a2103942cb91915ce8e390af54a2578227a9389e922b9c382907853ba05eb13e7f03c079301db2135d95c934da5784cb05b9726a1c1e28b01f5c5edba7a340053ea51c32d0930653f46170025204c0adf94c2075631c55790895495f23ea104a60b88c8b627db4256b6892d1b7886f959a18ac238aea494e45aaefd72056f362e7f34ec5e20e9c9aaf2efa8683970e310390a620264ec1ac3af515c24409ef4a4b99d0725de1506c706303e2848e2904f8c4824260162e5392b5b0595d699357b190e237ce1e3692ed95b7710488ad285c04db243eea475520605cb98b98a1cc893a7f1d7492f038795da03f63a91ec925a914b3c1fd9a3b5a74bea6b6770a5b1400348f7002555ba8c9c95b88cd829eb179472245228c21afa2d39238c76cde000898b718884ac8108c06e81c02f264bb6c9c5c13081c09d431aae78a26d62fbd041f32fbc012d0c83fb9450448cfcdd8cf881036ac096396e311e923478c5a346cf5c930d01c84b04400b38759a18d3ba40e46c8af5f133258f353aaacbfa68b0bfe206bf7fa65b192a4798a0faa68b2574725dfb69ff108b7c155cf77426ef8a776f0455bcea85ffb91a74f7203bdc2a9d0096fe7ab57ebb4cf1dea1ca0c5c4f9e264d2d5a0fb64658bb3b1ccc93ea5814407b6c865bc2b2fa14311ca50016b782716841bf89474c10e182aa51c0416580769312419d1219261a548ef0aad81159e4be73bda9c8903b7a4955456a3a8b405a27c18968901d54f8a0ca16e41aa1d0c128edc33b069a1c1e4b22438beb74a996c8b30c1717f07092c46402b1d9b710c46540ab32f38381c95b7445704461c0589cb427606057c78f911fc72ba38d1b664767df30901b148b1d609601bec3e40e41136ea9edac60f1f097c49906f105c99c4b069d5325baf3e6882dfda254850ba1ae5ca738086b4bb3c91df05c11c1acb67a98dab02b962b6350a9e1314baaa272b6b13db3d1edc9f09d3addf07f6826a3556bf1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c +ciphertext: 3f7f9fa76b2379cecbbfad6321d4d1616ae26488263ba56a63acfa042d737d74212b3522f42d3981ce88d95a3de3480c6e5ab26ab2fb12a6a3abbfd75505e1b7aa5b2311cc5d0b8a2dcce7631627efc9d18c571d72622e50be2ab8b9547e1162889febd65313a588def911d4f923d9747e08ba53cc7fd9e56e91e6f4c1d4b9b164a60950286d0026267920c52a33468ee15ee508a24a390a8daafe40fe5249c6a6640354df8a60e9639bd1cfcff471e3fa9baaba6b6bd1d82efea49cf089b4a7e488b5783a8b4f575bce13109fa9d95ae542b1e5c6b5ff4bfcaa17a84424856ebc2ca2d7b5736830cf35909bad723ac2c8096dd79cdb3e642d0c6a21f0b37bdfd72f0f4594bb309f4dd83dbaffb441f3dc9889a6d4132fc7e8b4186fc71d05efac20b3f994e0063575f62b5afa6bfefecaaf19785383b45f265dfc36a0fbddb402811a214e104d7a22f38d26f6505f70f2da88fc6150d914706f699bca9b56457d401b74f248f00221c7cc7dc92989b3cf331be103e4334a7ddeaa17c9f48546c04e7d0663681d1106a8260aeb63f0d9d670b56c00b62235683842294fd2dc934aed767db150f6529eb8f908a3fd7fdefbd02b960c05279da4c7cee95a81b90bae522735cedaefd3aef318107986d1b73977e254c6397b1bba132f52bd7ee7015648745320b8e9955be4be6e7e49b481ada501c814172b47b584dc538f5c6cc2c1fb83e8f8ce6efb68e34e9b15609a42995cfb06c46eb49f0422eb3b7e1a16700fdd9f1d5610a05d3503cf18eadb4c49d9ec571c485402a60c6bca3ba36549934217ed1aa770f6e68189fd81d852ae00d6b1e7f03cbb6e07d010b65a22be0c8228d9279e53ccd3147642d9f9bf57f177af63b332cf9ca0541362dcf20ec19f66b57b4b55292111360a3d8df17e135f4546d920b6997b2da5d42c20768dfccc4d3b813fc8ef8fb4e8c46d4d579e7ed6a94a112b0da4121ce3f0d71676c96f00bbb44b55c302af407eea78fdc94397638645bce49c7b71b0a54bdfba6764bed0961a5d7446898099d8ba071bd0814cdd020880b2b24f1b07ca235a425a7eef0c7fc13b2767884b247b89b1e07f08bb91b49399167b423e77323e8555bc8e5852cbe69b323e70094d7d80dc8442089c87d81fc401a1dd1154ebe49be3a313b8b2e870375e5dc12fd09efaffdaa4104228bfac5a8f2feaf02e6e2e4d786e687d55af881a0970b460c0dfc11861ea4279379540db02b8efaf12279656a876f758a7d1b45217e9290147392aad801413d1f36b3b0e7987adf276ee4591aba78fc994282e4eb85f7f733c4bb96c45912fcb43271274db783ab639edba155370548a0a4cf56cc910c93ba3fee673f6538a61ad5448cd6d43ee8e3b66f023a3b1ce3d6291b29d6b302a967956f9cdb4e09d4d5a91c0665a042df477b7ad48628bbf63ac726adcedad5e10bcb3bee5591ebc3567e2738a0d8048c9a2709bb2d158244c562c82342a5e44abe7fbb4e5ec8345404ae4b7f5260b7ab429e085b0a1ddc13dded2 +result: pass +shared_secret: 7dbfce1fc7d937884e7b3fa7c8eaadb37e1663f77d7c8659b8f43abadf16cba8 + +# Official test vector 38, seed: "6c3aff39f5d097096d882f24717718c8a702382dc4aaffd7629763fda73c163cf084807bbb0c9f600cd31a7135f48aec" +private_key: 7db7cb1612bd434144e3e8c45dbcbd0983a000da3ad94150800c6ba82929366027b9f3213cb2aea2e094ed979a179b95629b885a77b3006d6735f6ade15589f06397ee572a11c9a23e206168d10736e0a073b28240518febc2a88135b290231c78e5afe50a21bba9256280861ef75f0e97336f1b735ac69b0f652bb6d3b46d6520964671a8309df2a2997b36a4430c7f1af27443b869dab0973793a39014614f96b4b0f554737b77481c0d16288183b71dc9794f713098edf87bc947a96f542e2a6c11670401dd475e3214be00c0054c687fd3774263bc9fd3cbb85050a02d53c1cea22c6da3585f743d14984c64046217555f45d9aa7b4944d14cbd3dd69bb520c150453bcf91387a1ca4bf4353b15a9792ea89def5cd09a6658ed57af3cb2d2b1464af2bc28e016379569d7c352ce2d2c350f8c494807a8d239c2b0654bcf2cb866bb35da6289f5505f0059e4351a44810920cc6ac87c224be4902f2f002936c4dc13554ff7588c13a1ab7a12b23c273e7fa5e94b152beccc94e0a74d3580414c60dd2e4806a056235152acbd21e7042a3c3429436a52bdfe45be4247a0d24cbaa1821543bb6d860889933897b85397c94764dc2b1aa94555ff42412377bc6902fdef97295569c8cf1585ad8ab64c124af41a534ea4b2e5b6d76e33dcc5cadd7e376dec13652115e9733c1aec91dc9446fae1702a7420b45f32c719473033925d7996915f40fd1f13d11807811f1c991b0137524acef597686b61c146526564ca162935307cb6fe15606dc660a550c848ea8171c392f5a916738db2d90534a4332c303601d14b98cf5e7cda3009bf50809d194000b10b63c7c718d8299497228932758629b5529610bf56c7a33464b206888228a257eb8a8c149b8a0846df20c84722ca98a458c09ca598d752f8273326f27600c179f1a8cb1e8f14072dbc9866058a0f448a1556531e010582b4672cb9ff873865eac6096f9a4fa0225f4855ff15c7a31968ea1447caba5c295f70d5c7990057751dd91365c4c57b601cf45547153b2258a897bfa5b3d23c00d0be449ce5172fc513141caa315b397d6d77eaa67c6570a60a3b16f90f1087da1196b363ca47b830b4902c23c97b1ac33d464b5293959f1a007e51374b3f016f7bcce7417695dc015ad84b37e07aabbb0630c467206d2471509968f88914fe6bbba9742878632ee6655418535b4e45b5595c90b4ba088541e51a32f4cb920879268f56861dc40bc9f661e8f611288faa6f0c911bdf631de2bc9d53369f2b116a26ab2bff14981fb817a9b4d8ab928fa19a3e1b03f4b89cd459a64521300f5e5ae6ed8125f2544bb039a4f09483a799ebabb8839c4111f45a013276ff79a3ae9e5001ce451a0aaa5e84b185f8747ba35c58a253618a8593d155adfd05a5f755dbee456ffc3883ff715bb42ae09531fd6d88ecbb21d3138223326b8e9362e5382be38e7035701c2f0d72c678b47a79a891487bb3c9c7d6b823231da391b2b3c6751bb66b7a7e326526f3221a3a936ff82a09c07cf33763b3072b93a2426f2508b2b734e184b6f00488f378373209552a4701c43a746e207342e463c4e11bd5ab1b5f2e2b8691057d6162dd66a1bc97ccfac8537fe04b19e38680e8b5f005167b4ccbd4bc2a87c3a98d2b2af18738b8b44b1ff480ad69183c828bd372a4a3ce12ce72867a886733f3bade4144ab55b63be2902aef88ab4e129551540e8390357631233eccf23a0668886b39942c23f902265a84a08b07d11b85c096512c09ac3c82023f23aaf48578bca4b50426713c7e5270980c78c6643ef615c2b6ab57b98111a321e30d8a38b5a376f9a2c793ba196e293fde201ba7261e222080d951b4f249a47da98c2aa4b87e165de574efda9577dc815c847ad269210970975d8322645246cfcfb46a194a9b3cb2b91a20fd9107948d8777d0a14d6187c922a5beed80600991f3040643480286a580e932032a37b8c82833535f721edf44e97397e14931cf7f49201d80b75d650f204bd37416c643ba725d2b3b4f368b033589e01cdc10ccfe264a6efe01ecd3b8e92478bfd7c1abba973459346798007990a9edf57b081c73d699b7a758a6013106597ab803870c24e4c2e0d649dea9bc0e0fbc742571b7b6bcca714881db2597c3a45cf0794022b58985a61d582aa59b17e9c567e4b4268976943982705f389566f53c49526ab6c210f4e694544d307d2c8612d1ccc23658127e8b071e58136734082616ed011397bb781896953c73b5127b28437f38c27d663b05745d3fa37e9c2a07dba767f0859e7a30e9d48cce5f37632e817060ca46633c9b4f6735c3bcbb9185abf39ba9ad600718c6fb84b7c7b867b5e5c51c0b0cdb03cc83b49568a4a02ad831fc93157a4e5010ba81c0b6bb34afb908a77b2e8d106f752c39ac1a00a9467d58484bd273733947a619439576a98b4360811c97e73431901978d295148bb991433ac72b4cc3e5cac2a8f68ac9d9a3f5d53889343af7e6b02316831b7208939a88e613c0ec5d07861099488b08deaeb2cd295b6977c7c9b2630cdaa5b0a93ab7d98728b3ccec979b869d506b9c679ecb673b7d83df908aa58603275a36291ca60fb717b74406ec852b802eacf4ec3c2533315240624b5b7a8ec960ebeb04d970cb815fb059c458d02254fe8564f154a8c240086fd98ab6a4a4510fab5205a99ab873f3ec29b603a660061b8eb803b6e71740ef174db09bd6c3447197765a0907d31fb1635435601b0a8337972263857f301ae5cf56a23dccfa392020bc84e79aa6a37450389a616f6e626e001592f7a71fd00ad82f3ac9d1979e83955bcd1248e7c9f5245a22bd26479caca02f70303b8c978187f102bb949b7a709e94fc2069489601c2752222da41090578edfc1083e0a8bc9110b0e64623e320f0bc56c4f2b2bef38452ac7c2e17c5a72166a48d55ce5d3abca1a98d6eacf734249e8820e29721931faaebc3abc1a7453b5b01b52a27284995df4f07a3827bd9567cc31b2bb08825046226e059b52bf8b0f864793926b461574b73198b6b4a128f19607bf1205380127e6597ea4b099eba13b38fa376177cf8d090881a20164d804320469b15988759025f5089d7b98675d554ce4714c124c1c30775cff79229b1b99e4206cbf28bab4017077d4721c263542ea1742ac45cc500d327a3da9c46309ba09742305b25390c50abae20b6e8c8b3ae0208aade68d9e2004bd0c26d21c8096cb97a1a2ab02548ab8f1be5fdea37e49857c092ebd421eabeaf7d76beea2feb7cff7d2376a329549c153354b0187e658306a0c860b1fe6ed14686ca77d37b7c82d66ff62149406b762d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed +ciphertext: f9b34462ce03476f877e2fa98f7434d7ea6a0fc46495f492e331440aa092a8028b6b3e06fb857eb5eee420bad25e0d46652a7d57b7ecdac38dc83f1a6a863cb76a0f9e3ea1ea69c2cda8c76598566448d2359adb3e02f7c8ef17899d9fcac8f7e20721b646615691081e40f533b73bd1c8dc047d48098d68d1aa5727c859f599c0aa14de4034d2a71c45a58c7d546724b4176682e3ddfbdfeec5aef0b4b3a82b3f8966b140e7c55ccd7ad877abea237aa7537388dea3d6dd4fdaf389e1d1248234ee6f49b6bc78c33dc3186e461276be65dee9cc8c4f2b47ab42ed9555ad5f1318c93bacbb25040b66157a3ae1f2db69a8f38ce29a4673083dcefce7473ab8625b4e9ef06c2b8e2861e758b6061595231a234a5d3a5ec49f65e8b3426e39bd5f6c530f8966cb915c31f289bf80c6a4b75920c0c4885bc4916e77e57c40595760aa826668175738d140a1e9078ce650b8e18788fd9bfd5707038f43d44d08de4fa353f7d88737326b3e2b73e3a3188ec09ee52823c6e6af1b02f3097e8993281eeb6a7ad1d8968f8d6bf9b65ec20c0d09d4835f8bd76296f63fa0dca647dfe3e774c834383da48e6fa581e2aec974e26c91cc3f9dbba60ad9d9644fc2e63da59cdac87b56f4725ece40c0045d0db183f966385d8e330b480dce5ed8332257e3fb21c1cb6c24219e7a082e9f7088bcbbd4ffdedcd3cc492477f223e73fef322ea05fcfe14e9371aad6a8032f819cf2dea992c9b591f2bc10c8f9c6199bb07fcbbeeb6866dc6b590a630341255c73c7d3f9122bdc29b548fe4a8c570dfa63cbf0904a1e7753fdd7fc0ba63e5354c00d2b80724f015f7971ec272bac080ac459635950613a02b96d6e1a1e2455e0cb11fed44d28e6d7551e4ebbdc5a64588bd80834e391e3ec77e034499f53a23e4d675242158263b105fad406545298c26e17b26505583b3653b873199cfc9f5a7fd411a4f6fb0957cfa1fed917d94d46a977784badddcae2f6387e9139712dba33246c34724cc922369f3403c0c9ef00a1df5a4a82f22868fdd2415ac1597a1ad54587b20b3067b01b681b1ec6e4c019117bfd1d5a09e37ed83c3023f3b57bd420532b7048d02b92f1b3ea97997a90b78634c4cef2491505210113bee290011a73b662d922cd3ae2daa62bb4cb096a1f66dc83fb72ef4f4c5f96e94fa69b5722cc7b07b7a661b5802f22f6785d35c4fc969b7bbff0906af3a7b8c0908e73af5cb24e5c5e61fee36edf4ad46d44fb96c810738ca2098112d00da86248c251c56d9a2306ff33c8a6feb46e082b3507426f58f8b129c3cdae9c8f5fb05552b215dd90b0f8f2f33cbd2b99293a4f4867365a77234ea178ab1a8d1f7ff3396a251e22e9eb200c2acfc37422f4c81e7a1fd1c7761280ec136c65358226be94d0d62146f5fbaa6859de1ada3e7026f42f36f3a71260e2045036316bab93387ead34818059759354b15e5d3a5a0429b03c0a78ddce1be68ea7e4d3e6b79b49c925d3410569e903533880d2729075d5831ec38b8c6402c978 +result: pass +shared_secret: 09f64cee1af4d8738ab149d34a106ea7b19ac43e5a2536defe689824409050ba + +# Official test vector 39, seed: "cf520b92a2e3677afd003ec1ec6ef136a709d78f828c9c0dd4946efbd451c5faabfc83ca66f9d3d17ee4220553b7a69f" +private_key: 4284a3f8fb141bdc3c3eb0abe19b14e1c87cd6b667aaa115c1e4004a122459887fd63b38bac7421b0c3f4b19cb8aa591e6bb8d54039156627b305638e718c92682c05b56a9005338623a54d1fa92fd8b6630d4c1e0e50cabbbc3d054ba0f03443bc87273602234441ccdbb601d30263f260c567a096fc18fd719bb7e4c6d7113a7e4398d30f793afc45f484865aea22ba9119346374438a29c3b068223a4474f8a3c6fd4ac8c009226a346bcb72d61273ae1f65ac87060cfb129d7172bc452a3e8809f6763b0641cb9e1611699cc158c5043b8d4c995cbc438f549a4454bb147cb0ae27b726c1cbc906f4920b91ddc8531fb2ac06274519096c23975404253c6bbc00a816e5a0a20d86aba4380cfab92c5dd125156b7642e8552582114beb7b38a8b1050a42a2123470bb736b68011b809549c4550459b21ac656a301c0ef8723503b29b0d2370b2f4728cfb7ee17a1952a2354216155bb9072bf307f294bdc5760724dc75ccc315ec9bbf60e78cf11c27943289a0519d75b8aabeb895866c061fd02682e5c210a552e8278f8f296f7397a8da315a83d523bed7b99137078f1010d73c3b53321f0e5b0ebb44252404811ca113f7475f7a9b3cb9229e2e2b13b4f8abf5fa62aed176fba02361f24b9fb88d82147b2a299cf084cbb6c812fb2a1bd9b89a2c56a766350123355d3bda9774527fe9eb9af2c31b25a66b5dea238f27281516bac6e02ec69c8e5c9a9a9a180bbfb7a189b66043bc379cdb58f7c1ceec0a3ea4e931e854047c95565bf3bdc15098fee54b992aac09109197e82bdd28ae36b2c60e259788b53e8eea988d93bfae472499181176627e3d823af9e23870f771fad75b9938647ff39788a24b6c4a4ffb82399138387c9037b851ce74dc41182323ae935a0798126048c32aac4d7c7390691427ca53ca52eb65fe85ac44983f80fa7923419abdf8b14c834611d5908d742e373a7dba8ba8e3d35efd6c8fdc1c12e0f7c272a350fbd275d2eb1e0d836a4254c672251c06dc560f7a7ec7c80b8fa59475479f32a258294957d5d979a83cb6fc3c1ce6819f84e45c1e311b0e873f250283ec486323219a97373f5278a52aea7b88d1c7a43974e0402e58a55e6fc91b08381078f0285f898f4282ac8e5950d09343c7827df67a74ba1275e070c15ef44ffeb681c42b35c2c1b9c9d82cf07705fdec10e5f244759699ba6c5a2ca59b76e5ad5b09187a7bc3049389a94b2e25fc295310b30a9b3fb22ab3d9f893d9d696579648a77bcaa6b4213b23c65d4c303bc50aa0493c76c9387d186f85b0cea44488f0917612244c844450a81acb15e25aee3213e5bb647fd46b974bb45cfa21d6e1cc3af7799b32caacca0c80bc61a3f3991d367515276190e061b2ca956655514090b0667673e898a13e9c8573077641aca677c81eaf09cfe2dc78d0484af1557adfc9b32809aa5c6038020166b891920bc577f0064ed0b3112b727f800b22e9ec89bc691c883133a2b43a61c539701062e8512b9d1227e8eaab2985705418a8de6029832c2bc7eac2d5c0ab4aeb9e92324b83424b2a12c04b58681748aafc566d919862db6a516934ad61abbb17024665ba258f7299d7786ba6960a04f79b57c8b4dd8ab3b7e3203f2358221c9cc0f2a671ac1846e59b3d5c95576806b571c64746bd4bd541d4c55128b9a7d5208960a2b74a900a426013f6b48fe7fa1adcba5ec1e44594d3850c1a90e2a6bb341210039b48224b97efc62583f5882c71505a96284cc7cbe9873215697ba688546d3a6f97729b22251f479ab3f92cb08fcc3a9d962a661c6150ec6dfdc7560986bf808b4504ea2d44d595a8c34f4a564147cb798fdb6836cb448ca857d5d08242e233e3826797a4191e53cee0b375d395cefad91a395527ed094daff389a198c9d3b28b9e42b002fab4aef17b3089885e8017c047c35152a0e2709cccd7bf4d4a081d3160ebbc3d7a3ba977e221fea55e01823f2f61bfbeb9388d04103fa0c3330770c5ea5a882b26d14c4266b27722f29863b60c9f6984a5f0c2ee8b6f27385933994d8f9973728c5be6898012e4766d842cd1d7b360e415286c965b0b5277a5a1c5f731dd085df0f9579a31b5920227f238c389a723f8c31ea1c45afcfb6a62e555b0b2b766e78889dbc7a8a174fec48e328b4411338b26074002261e3c19c575b42f5a09a268b223aea813706900e785c3a05a98a5708d083c5e6243872ad78f3b456173267d61d57b2f330d01f7be8cac65b1ca46d8492f39c83338d92f3ea9a3cc7b502b115d5a7700e5885f264c384aa36ff52ba08ffa3eee17531915baabb5c9c04033aa091c36a0c5e99aaf0fa446a945a6fa281750bcbcf8e6666c799a43780b4024b97a6a0b14d9722856838d00890b9a982eba53f8254072f07ec00748a61ca18b0b516076382a9a52eb19ad329bbb81534da023cb03e00cb65046615c2d41e24d6e8ca6da872d46a1181133662735c6e382a615707e3d8aa89d49801f7908262c9ba7f1a49cd3c1ce9a5344f5b3df38bf82121cc9d4284da0c662d8b74ca9470051524ad108a2756bad834a1b1b2f5c01b29d640ad11c70643c0553721504ca90edd32cb4c693fd451564a1ca80f447378423888b3a2d30022997281aaccb939b0bf2f5643b036596983768758ac6b97da4843e9d8183633a65e35cc669592ba3a73e0213489ff186cbc66b8fc49fd2916322b30a6f2cc89e42715a8722c672c246822938b32ca6c47f05c21f9da66fb457206e7b58dda0a7f28b93ce24cd182b068cb951c5b29cfe1c30eb226a81bc06629133fa0a590de985e680550dc370108a7519a0b9da5b06170bc8a647c408477333e63972a7452cac811ef60cce2b8af8cc43b848cdddd7168b01ab9d138270604671d0ce57d94481eb1361d9a7f1c5906a11cb80f6454a2c358ad27086a5214dba5c5f69b003d9856831a8c13b9c28c7087efb8cd7247853b1a9c50b70d5e086a4e48ec77c8c6f4a83a11421ba4b0871692477a6b38f68c004f4beb011a137813ac02ccfe7b73271262fff16227da310aff06a8d23938444436da66d7ec6144ab44edd1322b27179901c3c1703279fc86163f804136a13cc925e47901514da5f7c68a23b23347d2b78ecb07ab4d81420662633b8a07d686aea3bb8edb04da7d2616efb147049c45e2a0deb0c85260862d4d25b47932b54487d6396c7f94193e40483c928460eb6b9b4349e1e4c0bd180111a72246c4bc20377a7059faffaeb0f304a1a64398249b1e8626fd1aa24ae11f67a7f23fdcaeb3494842ab47ca9355ece6cc643c3274c46efbd6e927b8b4d11ae8f80b5345b487a5c7101c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 +ciphertext: 4e5a2814271daf633f5cf2f7a4b26ece3a9998020112ece4c2efc9d01de963e605fc366991cb0c46436a68f6ea28ff6b0f9c18f8a2963331cab1592a83a6bb207f4f12f5bf94f6939621c7540ee98418c66564c19922fd1d7d415f1dba2b738f6377e817848069d244c1efb59c971371cbea78c984ea42bb349ce3d47d4e66ab331e88e19602c79c0532df342cb3aac8c739f61c312e9e422357f497a91d02ec21fb79bc101b9933a6d214dc51c90c18a63077c083fd96eb09a8cc8cd240a273544714c2f12c05c0a3314fa08bdcd97276057c3f069b0c1169aea46f7c0c4d3af3ce46fc6f1a268cba433bf377800425f1cb9f2a3f67f3b6a6100f1f0b167982fb302040ec69517c9629b68328b52aa8bdd7ca7062a1f8e11e60a1ac034900bca5b84d956d92405d6b283dccbaa3297d1a760c7a5c9082938f641dbe982e14beb805d51157d1de7486f96b03fe194b25acf9222c8b86d99fbc75013ce126edcd4f51d846e2a883683f71aba14fec24476172eafaa0f4fbae56be9c14e23e913b9d60a7fbe6eb0ed093b0e2c67a61d1f160aee58f554d5d4a08e8d177b5c1df199cbc09d9e3a9bd0ffde82a7d4aa5bd638a008ca0b9036b245646e48f15ba54f6343c959f1008b5bd90465a74b7380ece0c60ba7f4f0ea683fd66442ac6e80593cff95903333bc32c5bd33cc380c0baab1ca1cbf993055140b3d15505d4598e3f0a51ab3936bb7b8188abff6b1700d4c324eb1c6442744161de85cbc43ba2a5afbc61ef8f64d50f0dab7dd7f35742d8646555bd6cf727772bdac602e4315920f825d0207be79a56390ee39226757a18ae0e68260b3f656873d518ea8e4e2bb3dbc6cefe02153378303caae4cdf13f29adffd9bf703e45cc7dba84f06e94b89b34d744a5d6e754e52e6cdc899fb7df29dff3e2842b5a3c1734f2280a01a61f4719e33f2a44218b603886a2bac8f97d3a43289e622b655351ea13f61395d96c6770d2067f7e2c3d50a9b45542747096177908fe2fc903f65c9c7653e95ecf39266de08293ced88484c95773772009ebebcf935cc894e45579372971f512646949edfdbba20dbfc8cd96605e8387b8fcaa452482a36ac052fafd5a6b9de4b7565cb0eb3e96f2164a066be4aff7cbfa5528d1ce00f3f7100e9e4cb195a6d714992476e0b7c28ca7397076939bb4d25742d1d81c64f23e7dc7ac129a094c7a0570a7720189ff9ad0c1b627c467d8ae30a094a84cc93ff199bbf2679b13532f08308c35e6ce0579e27f0a8eee34af2c4d8db0caf056566b4fe655d36a4db8daa7f2a7e5da5470118c6815673ccbbf05c221e1643d63c25ff88faf8659e03e5c0ceb7ab91cc3ebf954c7306740d0af9ebb61f03fed6e1756162764b342377e1e779a40d6dd68207c11f4297a791562d635251a3703cff46075e4bf384e657f1c32ec70764706835eba6628c708a6c8165ff624deb8baa4fae06c71171897cccec55ff89eff6cb72ffbb4db07e009b44f4762d41fed92589f7ed6b1730c3a350cb544dd95 +result: pass +shared_secret: 7104fe381d6d7995b4d550278a66a719b9e79d9bdc38fb0bb60212c4355cc520 + +# Official test vector 40, seed: "197e5d562de7e01bed4fc597db28dc6efdf0179f3a5bda5f94caa39d67bae730540534d59a7a06c8448f628da8b7859f" +private_key: 72a953d60437f6c7a3855582b211c7d6d97df18c8c53a787117758a3246ddaf89668d5c71e999418e9515a9c95926688bebc25e0f003496bc0804a66ff68ce3fd1820c5320ed9992a92b8227d5042c72c1c1839d74b790ddd371d477b29230a66526a81a0962a52b5b501075f50086f041924e6889f5f6a6a7c15826a70e3c7268b4f224dec35a73da9db8500def40ada4d7b210513acc63c753cab007981bfb876171ea867197ac97716bcb830462e59167616528e840cdd703ab4516b1e307fd5703da82bdecb0047ec49355a60ce27598d739cf9a493c9c388613b05cdb302aa7d82c0c934b95d602fbc810133a7d5c15639f52ca0bb93b06392cd8223e31a3af2aa19cf5406f5953705c3a1e649346ba530b2e34618f520382569d8755563802ca6a76164da8227d904d2e86cf653123c725c0d0b6c799a35a5c517237d405c8d945119a1c573a4b00ac224cc19115c301b8a73cd9fa72fe8366d596a3eb781aab80895704b8f298571eb3a10fd7b6bcf590bdc4461b6c1522dcbaee713bfbeace03b4ce5a8c3d0bb6a3d7e410d0e5640be91e43a134412313cb170a1ec771c73b91af1c5a20a2b097f2be408155d0e3905f1b043f8b888954384adb7916154f0683619ddcc74086a6981a18f9a51d38e44dd4b7690b37a0694c434f9869140a5f4764c968598462d7289146044118022651c6ff259aaf878c584524eb4abb65424c0d3649a76c3b2a9168ffd4c44c074d94632d615bb6a8e2a318c6144c949c27f2a7b9f914cf97025677ae31329f5fe484909689873c2987f6bfea1b4f04fb2aa7880c8e4065ced03eb5fc49df2bbd38a3aa2295c541c47faca59145eb864623baad417975fb4b5b2b3f7629505393bf590b7b21579e3f7477be32b2b7a2819ff856395a700353b6eee92dadd46703ca3be7b033770744b6216a6aa06ff38ca6f3c21bca7ac726e7a665b45c46e4b5e0ea5cef6728f1bb25a2503645b063be0244a4bb9bbf1562ee76c7c859984c878c2f299e2bb0438e11578301a39c3288d5a4657c88901789438d35a29d0446af5782d5263cbf13c831b32c4d052f55746f6d555bffb74ea5d71b136b732f0041bdea87c3a81c4af28db20c3b7d92bd355b340d234fd7a78d0b7057e44c509fd139f7bc84d3a6161295c0438509014c875b2b6b9da55e222183cc0ab15c8c1751725ff90c5a75608b96c5c18a43a315fa5d5411c5717660b5200fa01459f02171647394caccb11426c7f535545931550c6a7b7acb725525ae17ec946c062ad845105072be4ea32b12b67aa73cceef80c8f9d534ec9650131a138745010f96804c8267691824c336c41e2a9169b1ad7de971f59329e3b6548267c1ae1642c649b8ca704e7dba94d6a343ce998611745307501c2c90c5ee9795e2ec58bc825f81979bf9821c4a0b00ba2415e6ba54c36778959540e2b9797f925adc7cb54ab54f5a58c3210cb677aa8be0d6cd8d354666b70f30e7718fc107a9c3289c0407886678c4da7acec224bb85be78c23443c24be09072e03a8ce92aa8323303c09266801a6444fb6267853df12bb0e4d54e9af982168c7941e785d1fb9701db1e46da1359c53f6c9370e7700e7dbc3e120b4ef784b4d0a3b69a60403f5b9c4aa3808d7b832ab9939b2a5cd15bb36ba710f13c934f0b5dc5f125b4c4604d330608c0c608f14795f690d21ab54bb9a0ed443601f821b3c153dda33f6b102193a2343bbac83b938e521676ea2a20bad2b515c13bdba9c7efa9b8b460a8cfd6a54841bb306819b2ba7adc5b93951653c6d116c86c302e067b358631259012f1d230b892c393652fe9d778e755bb1d8bcb840c51eb93371c2cb377da1f0a33c13aa4aec4c9b79f492ebe34906b6777aba1470787bce5ecc92f494377555685e32b6d52afd230464469adda074d5a159a54e3493a3364d7443d81449006f0b88669b8f507493dfb67b1f012037438437982c868362c172556989272c8b338b8a56ac0af290c3be991c5b552b77a370c026b1c7b4044499036dff32c06bb4b1b73b66d2644d0709f59050fbdc62b36e7977a7278fdb26798d264241914391c71ae928d5c7c7800fca963f4a5ecd9ad5b1590bc941909e142be1c382d7a38b123cc23aa02c9273b5f377d97637091db6455447574bb0f26a250c63a6aedf6ce4ef9cc1c86424b226b06da65158114fdf2bca1c457f68248fea0ba9576bdfc380e45781bef85bfc87ace9f6b5c6f5805bc3403b9e9a86503396b109d2ca2916e16bc4c7a9c47270b77db678a724bb9e461e2f3adcad69ab78a60cbc52134a7557afa452eb758d4c357af310247f2b61db9c2edbb126d7284f38829861870bb494fc65b8b16d97cc5c9150d4c4318ec698cc5704f8011b19037232b1e337911565382450a4afdb8c8e07a7b4127a7d6d630c74098b528aa9cea5249a6a424536a6003787b7723027bc8dfd07b9519337d5125b8bb631502701ae2bb9c352a3407cb3903a617303a5c29cdce23c4ed747eb56bae79084ad705041ad27cc7441dd8d51ac4f5be1c594019143f41c56cf9b1773ee0cf9f116036aa65896420f82406c1b36009e12433e60993b691bf9295ba6621bec9060c82bd3d8c75d2014cb774a3eb8c8c7e698069437155da058aa4a6831c6cd0b47fb425c4f85c5481282107d4b5c61756dd3235ba61a95608404c11546a28c0191c5bf8473135a98c582608bf7c4a1387bcd92b449f888c6b9990a59725ea9c896fc58288c5905bd8ad06a80ac952106d42b298377a0da30db7f68df4119edf5b45d472c3b11c85ca1439d2ea0f074899c3155a51f26af1f52265553e2136ae3a69b529767549f146ecc6592a4448918a892af6a895a27a64480546db66c42b8a9dd029fcb2bfc14189974531c37405812295e0e85c2c44620bbac2b5376463a0490f628ba67c7bb7257bca690ce4fbae57b717423abe164a43ece7b30fc768779c5a82d3265b7a0d012383b1d8a6967a33969a5d368bbf5ca6137959093c9b321539236278043112c8ec819e1d9b532f5c7ad7506ab9c31cf2f4b95f978cf642b67b2995c8f56c272775023a438845ca46a6858b32201ca14f1bc19761452a0a6a2b6ae4bde620cd8685a89bd02f64eb51d7bb5d29e71f009a79bd060273ebc51a48bfb575afebb57215aa0fdbdc0d0ad91120d3799c8843d50068363b5c47b09572623d7ad8071ea1424799c1eaa7165343af0e808afcb39f5cc8a7f5e14bd573052725185dbcc71968200bd272d97f676c08e4a6053f4e0a7071d7abe99607e7573ab27768ce397a94bb7d29f5dad97d54054915eb66be41023e5d7052a10ed1e60e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 +ciphertext: 9be30498fa5f736eef8c48562cc8232b5d16a725fc6ee4d5021ee5440eb211f690d413b3a7f6721b79839c1ccdff5fd07d92372a5a057c9e3689412134e4cfd35bc484d0d157f8b1009594733f8c4ecf3473a752bcd6ba449e4bf9ca2d768563d79749f251d2269a40f627e52be1b5ef09a1d45d1e5c3c01583085b45e637849c5cc0ee698c728682116c835bacd91c865a8010471786a23ac73548866d3429736880ddc0c0f9c3d840c9d46cf9fabcf9f8914967288b442ee741b9ab70064a3a3832f64397cf2b66aff37582c3098014205f219681f1c243b8c96125e8c6a9ca66de25bb74c5d725357cd08402834365061e76589eeb67b2008532bb264291b6e92adc1dc550533901c4aa17d5d8501365acb3c7d4dc219aa9ea089b4d4e859d258a6bdca93e9bd770a19a3727d98b3e7c64d2fe4915f5149a0ffd6beda15552b5b3316b40a9e4e91077e736cedb5edd7e9a1c55f7b4cf448d1f3902118ddd376187c67acaaa74323e57f367fa0bd800a5facc0689480f47b7c0e4a363aaf51c34b36b21e99f393263294b78eafa045d8b9a02920d51e7fd1feb3dd9572cf1061907e7147df40bf130326ff20812957de39e4fe68bad5536df9b14f4bccd8983ea0d6185b50bba47d74403916dda1b98183403d50c85ab2ea42268ff176346c2d8dac280638964f5ee4a4d13091a8abd8498eebaa3d3b9fe625040badf9730f46b1740b83e4cd71bf299a1d4ef738a3f45750327c2194ee42a6e4338350ca872e1a1c3499e11b34869b0a8b5c4ff91c485f6cc1814f41a28400d4eaa5dcd5c6097ce27dbcd200e8b016bef1fbd6ad51e29f3b677f66398f4a3d691a19e4871f497c0a89faff13b59f6041faa36493088766e8c11a30231b2de1080dd5efe323522418680f6ae888543a10ccb720a00c765104afab09806a2da4950b3eef4359f820244ec0864199450009e7cde716cafbd25d3a833cdeaa5f13a346f423752267b96a1d70c0af7cf8e30df4482438d95b73a82ae399a4e08bec89dcb80e948903daca79d347c9dca33c9efb30a8994a3428b255f4bc63ba1cb656c9ad148209aeb4024569922bd3cc7cbbeea34133b70cec836e53405b191855dc50bad0ee9e4ba62fb2750ad0d8d0671873212757ecfff10c479a805d52a7777c300350ec3cb4aff3f28660f1e0a7bc5c39d2fb0f944fd50c6c1f484ab01fb6eae7ac4cdfa9feb60734badae4eb075c7222382c559775229fff982ad0d64578b38a505442ee3add8a665c0c25c4d4e0d872f048c39a4e6bb1db711086b3db81d8ba2a39628a18a92a44c66628d966f11df04311a3fd13b2d1270bb59e0d377e69c169feaf8e0b74616e9caced4a296caa658c0389713d20153b162c1ebccb4e678261d22f095107471dedac0923efcf9935ea4a531211b0992fcdb24b2117513230d40943c3639d7613da960e54e5159df207b17a6e15d0bb4df2a491a9ecb56867be9334aebedaa93a1304d07282e100e3ea2855f6a1653f70c96a1495fbf78f2a7062c87b +result: pass +shared_secret: 79b1ce19715dd0a74ada36d31f63f3242716890a66d6348232c914c8e5c4c499 + +# Official test vector 41, seed: "f170583cb451d8a45d105457c02c01a33a40350616ed8515bd49067142f61efb00f07857e4fff3fe11e7164c648c76ed" +private_key: 32f2c581d0b288cb18c0512172098f6e200cf9e1aba837175da86a45d4b6bd985728f5bf966b284eb96e059a8b4a99c0406046d117640ca029ff7864516cc6d49ba33b640c313569944b07a10b3820c49ddf965187d6794f491734531700571c788243cdf2c620b676657bc6cd9743242b6688d22baaa432f9015f69a179c01652d6f1c3721b4a35841bcf620552e4100beb54f494586c73cc5727c7dc023976d20bcc248bf6da8b6e36878f51177ce3326e9989c95c5219c017f59806defc68f466213c131811ca618df02df0ea6fa759b095e259243c897a132aced9661c3c04584bbc4bb218ccc118a91072cb32691432540f73403af7c09e520537592965483f25394e51a57f2403cc6ac6471ca8633a3c00a049669a3061f82770b7a7cbe4638a8c98b686c499940a004e9c3a7e9c1d41a5081943579620003f738e2d9489d5b24967b6be64d3984e4c2b69394f99f7062caa8f9be60c6fc6c801e77fc2d9b2286674df0c20414832d4193a024b26448bc33c30405c134d78948c34fbbf5a442636b87bfd3051bed47f86b2083a4198c8b224d1f8c0b0f5769ed72a18027fe4a85d9ebaa57cd20f696193645c9b1e6251b695061a711eb95270f541a730842f56d24981881b5bb071bd15af02e8641d1a3d0c093d680a7b4283c4d9751ed3c9b5b86c001da05bf5970f42b86071aa81e4d534be3b4c92b2b14821a54d9817212cc1364525bfe9cbf9978429c7c1b3a3615aec75d4651ec85469f3442ae17b929bf8aabdf0539c2b783c30875f29b68ca5ab28579f3d7722126598801368ea9648017a77c7608e1e54c5ed0bc0ec48b1af037b23665c1e675de79312637482a9655a5e72c155581b79bc9b8125c5f32248274128a993a6543172a6570c4ffa6e5968239174c6ca9a72a8a793c5fc61362c424b525fe2c23f94aa4d4bd610f1a55e330a6a9b6056aa7605b6623f8962a996e806de090adb40cb34cb8d2c024b00940bbdd025be366d12bb0b78c6b88f4a28f01731dbc7c1026a2c68da6a5bbbbd1e6a898f36a19610abb9cb6f04b3881d85bf9300142ec300ffe20b1f33763b816d6dbac076373a21501495eaab2ff3b3d0044d03658590a4c73f5486dd055745511bb4d176c5b7cc66fb0fa500b5cf14700640b2679c80da38762af61a4442687af30d5fdc2308c9af02753aa8a93b294b6e541490af4c7cfbf60415d9be34f6b7f73c4b6bb4842b5c608cf90fd8c1beba947fd9fba4eb0513e8d35c8995473ac200051c6063a3022fd6a8db9c0377f62639982556f8676464c86d856e6a599d031c35a294014a5b30b4aa5bfe779c14b50d4f6a3bec6318d6312f028b6bbb237f203b4737a9cfddf252f9b90964c01cb736a832cc337e078c6b66b9733c4f8401b8181926f2c73bfeea63cf3b843e017f60e35e062219b2e76c9c830aa187bc8a863b58a8aedc9a9e443c93520b109709089f4b40c8f7966df7af854b4718b91d3061a6aa153d7d336deeac9ccf0072d6540970741167281eab315fa2857915144f73f9b508542492706e1d285ca9c58eea9c3118ebc21c8374c6374cfe7c846e9815007b602ae23e43f68b82811498d2bf5a357c62275609022877e48a8645bfe5dca2202ca92a9b07a6b33b49872ff21b1cd901020e4ac369fca24c00593be105483a24076cafff8220780c9bcc9150b3a65571fb426ec47a82974bb2a6ba13a13551d737e1ca2cfb50103e14269263caa5b15b16066ca63b867a250318fb7335babe4fd81a2ef56ce7b5beb88c65c2bc6c5a75149898a3d8a552cbfa6af1a463a19a071cb64280da48f3684d99e0b4adc7b48d039358f201a7baa1ffa4ae95fbb0d45776bf76523cd504a379377b740d26069e933748710a63781a23765a6659eb4718dac557a8553fd5be04230166782860a3012290b068542dab126a9f921aba2b61afd6958052baa7b24ac50cbf1f613abf761d3315692c49184cf3995cea8f161c86768714afd1185161b6da86c73a6b228b953dde1713108029d7a729811b85aa906f67978239c6b6f9f4a72656b9536b23691b27b3b2316176357c07b671eb562c41621c7552265914c500a21299b17dd258e2a04352b506138187611c19e7d8860741b110c57372a3be2be7a3b5a6c688390f06a5cdbaeb6dece153ce5181c8080e4f879fc063a68739032481c2cea4611291362165a63ef3c0f436230409c8e5e57c01651471694bb67729919920c6852bd78766a5f5c1b5db45c84ac14c764549b54d8b2404523b0c00052c5d3538cbc00bfd96b8034206714a645d447dc83844ee82c069f63b59587f53c3cb0047cfe63b4f6ef41513ac5194b91eab2a5ef4d7bc55e1762e9162f2fa009a9c437d2c93308ca411e8ad7f9c2a642636d5e89f93f5bdedeb78062032db389bb6fc77be489506a98022e83c9aa9b7bf65c561e1a8a95871e4ab1875535981466286175eed087e61ea034c9488fe953106aacb251c7fa044bafe474c2eb602cdb091687558c02778f4b562692349f9b132fb3a921f75a4ee6c33440ab76fa420bfb339e2f8c225bb85538cc4388522f9628aade183c1532baa778faf937035639a5367cc64c4c036fc25a61b4f85470402e85ebb245a43c92f2cfb0ca69879a0fccbff31a35f2b46c986c66386308fac63978534e5eccd137561a6b110d82a2328a90636b55b8d67337626115448ca7eda95a6d2740e33c6cba56a9f34a95a7bc8f304702e25315f81182e54b2656913939083c052664a9844535301fcb730dfc9c5571ba72f279a0412b98cf64c069b89acda010494498f92838e32c711f1712d8b34303b3d594681305b20d2f8ad43fb6598113415460a0326bbca4c1d658a1462aca2a619abcc5a61a99921ca82882e1569c3902769e208c61124e741630fea09ec58065b889890a667d25bad039c4846a77d17acb5e726b5717b00e0b3918fc767205028cc4b67cb29b49196b4dc288a3abcb112bba52f0cae6ef09cfbd74d939b73ee610f0afa6d8b345d3ee95749cb4373ca3f52f69ecd767893135e7dc4ba6d069c053b79fea0c69b5c1258609046c761c77322a9d4626de19df5543165958a447432d5237f399bb1b9a8923ca45521b21cc4b17d36e724f5a09772a7b8609c9c86140b03e8a10c54adc91204c686049a643db89b0c375a359c943d5961a803c6ad28512839f42326f53b22dc20455c843ad64753498e10145af06270a81213046196d2192d0ae3924f4dbffa093a9eb51025b31d268a74f44b849a4c408426071fe5e18c3ec8b5c44c20aa5a85b2e43c56e051698c75bfc27bb9b1722501a6502d1c0dac0aa7f1b0f89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 +ciphertext: 505762f4bb1982d5097e0f7a5bdc8da4d943a9f9cfb960077d0c303dd0424867038ff99fcace7860f6c593cdd50bc8760b9477cc5ad473619ef4d8d8058c88a267bcb5783a1edb74f5ea36cd39f8c6910061eaa927f7a1e84b51a1ce6e507eb45730724e422c92f61a3f8743a590197b16e6050f4101b6c6d22a12c8f1a8de5f0f6d7c5dbddb65c27e98957905ed7e55d6e51a46dbe462d9b90ff0fbedcdddc99914d3a282e09564b7206c83e0cae6560053a5ba1a83a024650154f91107abbebdb10f734dd54932a6fcfa73d58ee23cdb936d74c7e9cf31e9353b6db031439e8dac753189945a9116358b797610e845e958f827e7ca0aff758d0dd5acc8a890d0771ad7c470586595f54c1ee8f1c4ff867ea4042a227ed80ab49c17ea5d2089c7b27ef405706fc08351945e21f72d7e4fb32e26e3bc21eb99145e3e357e4a10de75f348f4303ad45a83dba56bdfe92857731d55cdfee03d647c5a4ecef35b2ff54857cf1a8fd7a9a244a95917ea87184390d6ce6858afcc22fdb3d53137fde169e0a5852487d4f3ea78fd9d295491ee6fb86cba9f2e1355519994126e1301882964465eabbe07697627a22819667e8079055b8a6fc5dc35e0629a1b74d64b1912ea7f902cb1459a38a0fd5a9773933e0a10619fbe281e0ff7169a791179057df38e5424dfe9cddaf545750c2269c64a465c39ae65d5249f742b66d32033ed35781a099b02c2b5b7201a7b7c2a4e00af0c724fb1d6dc695cf261b60d24ec5a3f028c53feb6c63ee90e424ee5e467f3a0d693564676dd8f2fff3c6d45d5d7f095e44b1b5fb43d65cfbc524b001b967cfc8f1d80a198756c2dc0aebf272f71a4fdf3c4e7857461d7b645a11835b8ba7dd5545ecb5cd71113119fc7432d73f816bc91c1506dc5b4fe1448bc7fffbfafe093cda411044211bf365790c20ac1808f8bd99ef833e29f052935f35ce8620c0e113eb4153db9ca285f31b5c62e09e34cd41b427113e99b4157ad2b6b6fc269b6b350b540962601fd7dac7f6199d08bab7851cc1b5ae954288368cee962af736ad7567ed9a961dc0fd5dd428fdf6286e7265421a2b05f2278a89773b5c77d2e52611d292336f3ef4c6cb230cc91cfbc0098a41d1504253bd378d617b9020d9259bc1288d43adf5cb135cfde2d47d55479f62241de834f10334022b877149b7dee20f2c8b66d35ce27d2d48ed1a9743517d3991c45a2831be582bfea1328a09ae200628d5a0a93157abfe9dfe08d41c1101aed8e1d8576a4187cde5bf5a940b6a756b5872d8b1ffa9a33061fea423ff3d9f0c7a5cadab5f9e9f6845774f112c931ed33f020ad45895133e2f1f2a31e894660df8dc6aa7b27b15f1e868c27308450b4f496cb46d2f45d4322cda850d09e37a20e225d8678d1d1bad2044801e02c13ce351a84197b529f917d0c41f45b02e95400046b2e78dbfff61c638030ae94ef4187ed77234f21d01891c4070b7d33ab61d46926dce9b56bbf7e37eb39036706a0773f6b4399a2368c1f70191c995e5533 +result: pass +shared_secret: 66e872a4b3baa42bc3e8e4ee787ebe070a094f05d2a0792ae2ae60f8bd0ee0e7 + +# Official test vector 42, seed: "44a6774b2cac02dff210ff861a090561a453db311f47b6fedb81811872d5d9489f5fc4103010139ae53fcaed209dc9be" +private_key: f8108802536a5e0b192cd8a761c1163c02bf2c457bf4162799884650185cd6e7a978c74516e85541b212b90321a0014615a973226b927046cc24e709e988562964213a874ed5007d8c483336d80b2338313606c716a25d7fc8617a506899187ed9a73d835997de71904ff82fc4c59b12275677b90fb6c079ca872866483ebe326e33f369006b4341bccc759b6565816c8bfb3d00e11bfd7b2de14b9bdf163bba82852ee76037795df78b9a2182c883652e17621055397c6b7848b3a8365467669ecb1ab81a8747fa449f22aad5db231873bc4c40a45ea265fe45c9f8f43dcde1ab1573bf0716139549490acc91affc45aa816809d53879678d90132ff321b2c2f32892ea9e4a112258f8236623a701a453fcba1d26c3aeb37c50b72625887b5cd9eac2cae774783abebdaba500eb9445739eee33114852a841447fa19cc360e31c95012227aa11e35412c2b5716d7602cd07a5b48b35dfea154e6780f8573203d367bc9627f414879251738e3b8cb2e3c09956c798144fd6c9249b214cf25ab84ab0c7d0b03728b7847c485663470c41d59b76fc48f959199305d05117cea0e04c0c2c056ae740fd21c0cad76e70f55ed7a62bfd440a2b5601242837cc6205196971a5993dee6b51f399ae1ba47334985ca1e26245897ce954a7f393105e75cfa25302f17b45e04059803bae94251d9f51530012ba052cc8948463e48367dccc5842354e7fd7596122b56b6604fec0c58db228a2170cd64a2be9757d8be35c1a0975cc1267d789c774883de06bbd6572129b57a5e185195cf06bd70352574c68a4b71d2ef5580b57166c3746ec058302ba3da6f916f1ba4b572a82e289593dd57277c0c570c22d1cdab6aae39b16a68f5684a5e367c713e649ae802776f6c3488b494cbab596f73b1908ceb7c05c46304f4e26a54b388b61aa3c663a316314405049c67accb2a7ab62140915a09488627b3c3683c3aa198400fb6a53396f978b71189b7c4fb1ca005a79727c5e6d129af7220705222617807460948b33197ea35a091ce9ab5a2b9437f961b70c432b360be118a4b589c66af374f58668e7515b029a14a272ae4af399552796a4ea3a8d37c265b42e38c2c586792d6be661c9c4753d373004da166f69368f976bf1016550013388b562b43a00f801b2a77212237b5cf53c647714218b94343c0b06d3fcbe446514289a3bbab9a3678284ae46242d1b56bb0845b30817c669cbdda709576b91072aa38ae0a6cfe444c09239d189cac861667cd6449c0ba8a773c7106c6b8bb40b100b39a562823d33a180da2bec923d1e707d59d7a8e397c68029b93428bca352495966a79c299e531b9b59b437e86398b72157fa43391299770b7ab37c71b387401b5ed5ce81b88a26a7a9dc023635c932c26199b5c437536ab194074d1cb24f65285af6b03f6a9a7174a380ad03c6826ba5fb32c6e93c2fe011a0146717e8265b31659a806975bd589f7630461bd1b6c51a0a2cb6ad3f825c919533c24c807a9c6e3c780d0e333105b43044d7931920621874395f794483820afb55483e34abf3f0440f3253fc702e71e34270d38e4875cb9a6090dbbc53352128c18a948ee821e49bc9c690563a92728b610a38724d9a8308ac6b70d1c87bfeb07775d56703980c9a563040d1ba17297b1f253afc339ddc11a42cbb051ba2722854cbf45bb80cecaa81ab63ce32acfe953f9ac8648b95be8668822060bafbc10b59e72944185a57f790351a20de6679328169b954465f8cc028558328f3baeca98e42404299719d205cb17c745a7784b97c09130e26376778a9330c99ed84288ec3955df4076d0c9f5847af05bc58352c1364f34b0213a3cd05b2d79108af038e457a30bb5626b1dc404605678ac675201c537a8a6ad67a8e3e0b17a0e8632ca1714dd341831b2790591c1f39c530288dc8448527fa542d64192e407f2304747ca7cad98986c59622b2e63e076420916635a538871aba5469f36a5536356d176265191fc150a4dc7349f07c932c053ef4b6bd245448ba8173ca0896e51092e06537d2157b0c1624d3a29eb0d055d48a038c858e53c1045c392d6f59408df2bb19b35a87737ef90b9fdcc380af6a1ea122838c673e39f502a08908ac33276b4297c712b3c7541c7806c71dc76e9291c89cfac3a56c9c94852ec4a47bf6642349b95f69c43005fbc927113288caa2cdd6175b2a627149027e3688b436c336b51c8539cec3c5537de5ca6955543f984c73005181e916317262bd638e249cc928e048a20045907b79c441cfebf0b9106c8847b8088b4c41fe6b7356d7947ae9a9549305c9278e6e3a39060854b88b65cf9a20266218864c94377a475c0822d454ad8fb42c50a13f1be65dce1728388a8d4a81b372a1486a86b0e6d1abd445559dd3b827b834e2ab3744c0c5abc51bcb7551cc888de7f590ef780d7cc94225830732f47b6ab4777261944cbb3e6d943eab827da40a7b00d8960db1810d028529449dde0c00eacbaa321c14249b7113ba43968b79070b9117dbab36b44f05022bf25a9ec77c7a396415c7f24ce5e364b09a16308472e1d49ce92a41d3b868e4664e93279467745b9e04c39bd67cf0226d198110e6235a3a35af970a73a3472027e1c7368c867d23cbc1895790f2478f807b756516acc4c7dae3a350f26a0353930f4c23c3d982fb90176bc70e0e6b739fb67aada24d10f2ac30685c2d7606fd6bce5df369a0d176fe32b0e0e8cbf583b0e2019167640fa63c23d7223259441152b0c79d9b2012725b6eac08ba8438cb90309123abe5980b6ce6889d6b7d1c756aa7a90181a1422f5a6f803b1e772891a61ca657175f7b815cb3549d3ee613deb001c7ba200730b2771b5743d80ee48683d94015ac7221671a3a711468f8b3be5ecbc1af824dfbbacf87972874e847b399280eb649304a3687f43dfd769e13a4964892b5e635c0a2216273331da5c5b18ec0b406ab1163d4179af5aac5fc8273296e2433c8fd993f9340c5d365070cb72715188b52cc0426146c54a3687f6a57f36b0b1dd639c505bef4c71fadc68d62009bc6b27b3817660df31faad06e86b91aad252b80461200168290848f963010511763f8614f202a3a05680831b8bde86a18dd79248d46c144730bc7b4757ac95f34ba2cf0436bda09cf5a9285e7c924f3b514695300c33cc6d92c280ff81e72b549694aa7aedb46afd394a2d5826e657897fc53285905406430c2b7786e64ba44225985f95146947535aae744a3b3707467701a8bbd99b938f2fc7737f22bcb9f146983a07f72c30933b8e50425fefbf58d711f58cbf9fd8ebd2835a1b55469a2a1b993eacecd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd +ciphertext: 8d02a5fd8b7945dd8e00b27e4c2ed63c4e5566b3b2cae2f068baf7e0f8b816261f56aa61f545d41e18d5cb2f4017c97cb3b15eae810a7f6b82967420212a1f4b794b45d8f79dfd8b2ff1c21b50274fc9030b707191cd1c5b8b519873a2e53ee6b74d9347911019654a3482b80d5e9f15c5e6560bb8f7c6b3a41ddd398b254dba5fdaf91a5d37fc1df8c8fba39f75bc780def00847d929dc8f283b2ed381660ca7848eaeba9b9ac0020952945e07a946b8a4bbbed8361031315c8c5180cf072d039b63f7320616fe35dc1edc4d52635bdfd392a6b01964e232b409ffed11144b61cfb7dd477c1dd0daec06ae58c5a4bc0e609fd35972949c93cbe0382f069a39fb478ecbfced5a059a151fa09df4e2e80b3cac95129d9f75d905cf122608ff06548ed6d9aafac2e21a94079f2efdd3e569bb12b1d3d9db82922e7ab0c9eb43a83df5bf18a1d315048267f5055f04c10e1afe3dd4b8c4483e0639c08c6410acbc2c63e7e0b7e4258575ce0c85aeb6961705bd86d4c95281212b21f84e71bcb4d1bc9307d5fe07d0d530c1f404c1f2ba4ccf6327549a0f98f7fb31ec5da2858d6b3ebe63d27b51a4e3e08a10351dd521fc39945fdf515ce419de7f39c4878c5f71a1afd69a3b6b8951da056159011329d4aac3d5379f44a873a604cc60c5b6ab7422fbb31361a233c2cd664ead5ecfaae4bd71528212736ec659688d29831c01e3e5c03b5ee7bc2a4be63a129f9ff6dd8e0ace373d41e3f32fef73c54ce6d59cf15edbc276703df264c57532a6b30ffa94a32c36d7adc9af13e3a04bbc565d112bba7345c142dfd3a44798fa837492933c2f5f6fe08a43a7ad217ecf6c07509551f36463322ec364a23b444f037a53488c14f91e865285b1087d7d99f063248e22dcf798a2dc217c691e22f3e3d7d3a90de196e8d7bd18ccd0179ec35b2e350d5329af42177d7b731dbbcabbea1e6deb321b8f4f76f95db01c631df3c912afc1438e245151420cc60140451ec7401b8de1eb9cc652a008574ace90f8daefc8541b55be2b033af389226c4bcc9461a291ff6a3af15450936de9b7e923b021ef131b573e2ad16414bf874fb962a7803bb5d620e12b6839c7b889557158e79e4add1f4a243d0f3257ef397a4168a2311f3992ddb8981782caf922522faace628cca4f078f948a8aed18bb6f2708e810feea2d4f1932f6e6bb9c54a906f79e6a13b4d2f7f6f106b88e18fc955e1b4ecd5b1546c5ce295f7215b3b33fd5788e0e24306b8d1059ddba8e151ce1f5c6cc6defd3f9f9d811107511dcd882e5da61452433a24d2b0bfb7420a7924ea90a11106b5f5bc0ad7428fab53bd5fc955733b9173677e8a142f50f005cac94bd770f8397db0954fbd8d38f2031681c644362f48e6f9bf3da9cda3369174dbab9089e83fb4ef1814ec4fd33f4cff8529e9b482933de533ad2fbee4a6341f1c227a69f0c52e0a775eb0ffd8f88060b9555f0edf07791fa1709e769427833a5df7d92ea0ce6bcc5f26f280d1e8c551c7f29cca8ebf6e3d07 +result: pass +shared_secret: 56551e57abc7b80a842db9ee65aaf6e65b7c4ca10fc297e9bb0a6364e6255bdb + +# Official test vector 43, seed: "49e1855588b6235df2a400c4a70aedf8ab17b6e5e2891aa745f132fa2e7ab0c8117c1df37c39f5d57624eb77c2b4a091" +private_key: 257c04ec995fb9757415bac737300b03c991bc8a5c4be86cb0458f66a551cea67fde748c88113c07f09e2ea03efc14328381b21220741c12c1cdf9a81d3a28e9b7b4bcc88d0f38a700dab5beec59d6073ad85697d14728603b1190a81151061f3159293cb2096c093d72f33b1957cccf7085ab031f0e404b1c1bbd06831a9574b90db6025fca778d68151edc4bfcc11292f240d9e6226739036cf000dcd1b275d12316e605c72a2fccc55887220ec958412493c8aa4759dd0848ea0271c55bbbbd178642331e8c910a932a5a8d0a3479153a480c9b0ac58b10334c6b186b38526546eb31a0186e622520b2b60dcd00345222948cc833170427a301a26e920ccc6a71b979b7f8a02f86e983f1eb1b2aca4202100260a94b847ccedd8101e1b16041f96d72b8cec772c08bf5a75c5190f78b123e943e1693169eb726771a7c2826351b5a05a803134c24b72deb2a6f282b94689ee47bb47102926849821981322a03915086670896152a022036351a046bbb6d178bc7605f92254cb8ab2e24544650da4e29fc0ae9abbf0b2296d6bc7e99b4c1f9d50fe7fc7a130432bf98b28e142cb1924efe5324bdd2887a9a7b6a1c18dce15b5b127f17b5739b5c5e33e63fb2494fe403cbf9c2059618ab6fea5b1d78c4d0438fe94c447a4a2e42d974a44890db571ddfc288528b683a363a93a56eb6c9b1da246f64f0b0d3d6c38b4975f6ac2adb2c62a9d208812c0365f3a2aa39ac575595fddaae5ef5c7f7fa49d8b209784aa25c7166c92759f58421eb203a1e8291604c84d24565dc68ca7b183f78fb5a6869115bc7b7b1b33bf4e4afdac9af6dc0604070300f7273223aab0fd85401b923d6c6180c815853994ac22bc45e5b7961a176811780af4b0bd84a490a0a3ce1062204c535c9932be4137a7b6a1ff75579e72b75eccb806b67419119721fd03e59713920949e8f6b5bb278b7dfd40f1125ace9336b5bd5b46f5952d4fa0b780a875b87bbb8ba2096d940555c69e45602975b1324875e891c6c326539052c811ffc4417bc61205b430b522a1a7b4df509a4e2c9bb5a595333f29b986c113f57a9e0d91af791c8096c0330cb59c27b3b29c15b13128b86336cb0c270dbd80d451b08cfe35876594ac4011b621792458042e8906deba57ab57b9565344e2af27d87a68108a8487a817ab5c779683cb81b7bb258e598047505ee98c7d666766110256eac0694b3565b07124786966ca81f1ea5a8be616544d54f03c5bec6d81b392a723bb1176d94c75b47cd8a00aaa7836e1774824289803df38c0f6c74b4c42660d1b27e5036c647bf4089b3be19a76dd8ca518307ca92b3303253dbd9765bd26635f3bca865c215723c20358f2b4c487b008a7f0221359889dbac532deb2b38ec8f35a4a6af306597f09e1f84b808140dc31a36b1db11b13c23edc79ae5f1861dbc4eba427a62b153f721a543224caf3c54e15467057cbda9b1ae41fac0ca7658a542a87060a960d57f839712aa497f0ee03a9122315409279cc89fc6f5afaf72497f99ca8f3a18da1b7221321c87713bd484612204783117aa4f2219a9019c251c8f92d8bdb946b42068207ac04e0ea116a9d2cebb25391415630db5300bf51bbe19be36c8ccda4c9852a442d4259905628087c232f28871b05512dcd2b769179ad09a9313252dca243d73b387b279a1ca1151fda2781ab7757d2ca5c64052c8440bdd93acb5152203987bd5a693453957504242b3f8667d3c800e9a969372a13fd014715a0bff3a24c8f31a69c329a1c30ef37ca29903ce0943982413b0ba694ed53cb416f125151c8f036709aa2174ec365a56d608a2b54ec71183e2b4258e71adc09c81fe05065be2bd972979eef093cda03bbb82b6ee4180731c18fa997195d4917476427d7c07d99b663c4b50a9cbccb3c364df354685273b8b42b9e118a427c765b08036350a330be79b3ef4171b953faee56f719483717854b29aa3385545d3c9cd71b0a070aa2734f8327c095aff6b342584a570371ee7ca3f6a2a2bbda60c4e3aa264078b6c9bb206781f229b9a5cc2bba0c8933d01b469b4c687f5a1749513bfa3401cf1443ec0558c89c58cb795e3686640f6350420bed4b839ebc8106ff7043107c590c0bfb753c0aa2305e4920d1f639c3ed400a2836d3b638051b58ea9580390ab57dd7138421709759b89aab4279c5a9768cabfc44ca6a2f1cf5c039e2b0563a9048931f1565d164c13ab60e4c92ac843451cb75662ca03c47a652445b7ef0b8e622187387059a614cb08796d34758133050161743677594d51d02f290b3cd7f23d4cba1a64377baa36082249ad896990d79aa040a7858f1b3dfcb43adf040f1b245d216b2e23420e0b9613e9db6c7535063d05079c739f70759f7de0291537aaf5d6b3f4b6291c147855ea9a79ecb0ad80714520971011365dca81ab5bc0d9d70ade36a125ab2295858b79370fe21932504b9d583c787bf28762241a279663baa450172651f126bb20b85349b6344ad404e3093369569148a2a8cb7b7e08e68fda3408349b4761a171b0c2c85b37227cfa3d7c16a3950298c100955402919d14a71e7b231d60ac11e81a46515cf2f25fde507c0df59b352187af7059f3620026c84469610d0098895a3330f7638082d5b5a925afca637a1d160ecd2c83fc522a3bf40591fa5ecfbaa0a3b1859fc58b1d157c18b71d540b6aa398179bd65dc00866275cb0473964ffe5a8c638bf57304d32e24007b3c61429881ccb1a0403566bf3c46d8a19e852aac6f58d4ae32f45cc7b0f5181f18675920680c2c0ba8ed283fdf20c383bc08ccb7d46eb85204126be034374769caf39ae633924bc8ba6b7b89daf72ac4a86bf86008c02fa0fb18a5de6f8952eda2526fb1d994b4165149ed11b578359a7b9d0bdd7257a2d00b676268a38528fe34140eb408ed5b916c0c43d79ac29b0946702341cd7c20ee23c16a6b2cfd1f9107872b8965952a9a45e0e435c56695c819b71b9a6b6796553271c029d06cdb0308112a89ab4b714566a4b18d03c18d223fb6427c7b3144e64874c26a8ca418cd6f14e4cec2a0402698aa1af6ef63264806e4b42ad3dea298a404c1ec260935166418068edb71abec21040f9b3eff4389358b7cce70461ec8c0ae8873a45504e8688e266787421343699089fc31f84ec95a9f2264eb3ceda71261ca791d052a43808ba1f4706717a10fc4ac21b625fd324cd86ab8b3dc254da31bac0f9106028258adca5f754b309a6c7dd30e11b8701ef37e8715f03c0d8a32e9fa39d37e7637ba00940bce58a5d05a4840f835b8ce39703f77bb31f20b9ee4fd3795c2e326244208b288c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c +ciphertext: d09bb378673304cb931ff7390ece8f2573c1cbb9275b8c26bbd0ac09db08c43c0a9b77ccade71a051de7be9616187ddb7cdcc3382ab8f6bc6f52dc344a20b519a7adde7abe4262e2f1642b96c687ff873ce23125c8b93323f213dcefde61faec8b976a27ad4994887e92f0f69bfa51e8e197ac378e324307593331ae293c91ba16d4359c7a3d43c6da57cd988389d014c3c2bb6e3e7ba6adf91d076a408efcd265935fb6332a77595f7ccf424ff11657962998e0851db1ce4c15db64b7db28986c272bbfb34fd20e239c7ef3beab2e101562c3dac28ba965fd5c49dab3085ed0cf327677041cb38b9b509d08f4140f7fb977bbf1e7bdd0b86bfe4d1cdeb112c3bee679bd29165dc9a81e7b1d9fded5b334ba7c3066203731642e3f1bdb606cfe2855c6eef1908db8ae2d3a7f4cce4e517817c696ac5f71f2c83db6f499d019ba3a1bd0038b7aa074eebe4e78e0a2ce7919bdffda15776489ea76a90246e5ef8acf9d38e44ae3eed809c1da8e2c805012ebd83e3cab063d6084b9aa4cc0c8fbe32b900128789ec63397d45afa6bdd7839c006ef3d9300cc4f8cdec1a565dfeb8afdabd1b2f16a67ac789348b6caa780d96f0b34bebba3ad00be9231a1ac55ed651259573015133549962b5288cc733431da4aecb190a8d43fab2ae764e770c735093ab4bb61562defa7ce3097c837f15c8ebb3097d0ad7e812e24467965938eabae899f82eb417132ef67e9aab3e8bb2c535edea8db70cdc450f8f4f100992e18af931fabbba58d9558afd20915266d71e92d8f92ec3f3fe455509e57bc590857edec1873fd1ce867ebfb06cdfb910607856964913181f86ec635a32266bb2b3c497723a0b9d056175f101d8258b60087a6de5590cc73f8b0e68fd04e187162eacdf2a5f0e8ce480ba8b45d1ac9e003b4cc1307dfc3e6e101a96585bb9533e6a6e4d0dbec742f73a032ee0b249e97791128f63c774c0203f4c19152302127ad848f427bd90c36126cc3a1f8cf3cd81484789e0f51339ecf4582f6b13c1f5268b126a99490115d544ee00e8512f819ddd4ae3962109b9c4361bfdcba56baf5fe9a541d646da72cae1fae5cedc8e8a165790a430be4ff41a547c2a1fe5bb2a13af50f631afb24a55e90356179d91c922f276a202c8f7a837d77710116a85686512fed7878ec011a60f40ce808bdc75f0790d2fc9aa3dde710b31843b5c1560c8bd75cc6539ad939bcbc72768e4d418e119f69f5fc7fc00bd5681c49aa0d1d2f8f4dc39768154c10482bc06a894b20b8d134602aa11f1be166a15dff347b5a695e52f2d44ff6c50f371ee169ea64db848e1909b6392ec4b77a0658fb1243bbeadc8095ea5e8d81283e366eef91b0b2070c2e168dffc97dfcdd16b566deae57ee6a163540977eaf31774db72d21742ddfc1824eede5a9e72e9917aed7e3000f0ac3f48ba0be24fa86f62bef852a2d3d02e61e3ee6137f41af011b6dc185127913adf5d387d6298645946d205cb188ff6939b0ac696e4d75d44189831803257d3f07a5 +result: pass +shared_secret: 30abe054c82a82299e7edd52870f461ff6048daab627b6c848a9d4f1c4641a0f + +# Official test vector 44, seed: "df0e41d2f6f86c1f79d31fd5878e7ab434fc0af3a0d5f47d2ab3fef31a42bd949b0e3629df9f575befbb62e829e51dae" +private_key: 8b814f850315f33901f955a7dcd2971bb73d44db90b874804457124002ba681347b4dc33910ba22a903f480859275523598a1ff7cb818f8cba2ed0668edc45f1997f3e76628767b63890c35d334f209b62a208700820c7a41689a4c81208b05573361dd30642baea86f25bbc87d1157f05368582aac0958e87fc84c431bb2eda3c479a9cf0984a90e668427046f2946e50a43e3889aab5d649b5a17242aa6d6350a1b72b971a748cd2a0a6cababd4f77b6fe905ef270bf222c1b5c2683165b9c87458f849405aca37dc8e99699128ebc6317274993d74c77cee907e536b1a1871d1f8a3505670cdab00080db31cd0ba9269c84d9ea565d194e22d3c11573685b166f02245efde45f04ca2d851aaacf47c711a536aa1855b7693161f27e51eb52cbc1b6322537868386715b16c4802d2fb43e9ee7c28c51a5fbbc1fddf670e02cc3e24bcf75389651268e4c78949e284fe9a2a0fd3428875c7d4ba669e1f7116eac952640b9966626a867348022709cb54b05704c136b5538ac7c6e018107a27b1040211562cb1183714a2c9a634a8bd547965fa04fb62441cf7601393293f669420dd0a04d18af0c0249a3b57e0905758b7073db3c80e2634366285a86d6aa7fa8561fd4a6ed745aa04872fa7ba732c514bf045445cc4455accc40e499f71a2d3a8ac73be9404f3736908745b1c40985e4920edbaa2bb8933053124c4c300f7302fa634e6c6830b3671fea4965d58aa5c653682e88ba5ab34361409f4c1656f1772643f71134ba1b1471192de503f97868e43a4d4e9a2bb2ec38ecfa1835f24b3ff1b850fb5f4de32f196377503c25ca0989703b72d72494a2217276c9a15b600bd4dc76585774b2512da602553807aeffc5c6e8f0187bf5613d35857e7b4a1a4b805946224b4a8989c0bd4fd445cf64910194ae3ac96cd0e22144b9ac51fab7ef671b6af68d7f5c2a3b48b82fb2cb49722cb5b668ad021240871307b185b6426451588626850080d68a917b2fc3720dfb33c365934ef37bb5e7359a6008ad72d255b4e921c6b1926b917cc00c03a286b8489a53b5a7429e1cbfc42507f33bbb5ce082b58cc550e03a41b9cca243506de21f3946019dc87683b35caca42fe8272861b4633044773e5c399f8c6423922d05c528af950b6f6b0445d98c5243c932451303222e8a8a55039b34c2bc643582871236553f96b80c9041400682f05c6795b64160006359270c4526baca74b515b224ab234a6b127c4612acbf82bd540226927675f5423cce59034f4596276647c6c8c3d53b54014b6596fcceb0c29609b50e1d599bc728a41db0c3e2a6c41ebc956fec70d2b58866c3c2665ab98b153052d917ebd9ba3ed037f62c8299a02f575742d7102fdaccce7759763ad2147df656ad878ceb1b7ad5b4cd3ee0a2320727a1051d74f84477ab5c2463cce42295f656978b470708a4a26f21949635a957e12bbcc9c8c83753ccd6781474b067099425c705d78631e69632dc5909deac940398b8a6918e2f69587a5992b354b54b7931d0b4c0eef60c61b46170699035ea014778a28d8a224196beffe96c06303e5f8ba659d0229df3b5ff445cc7019e8b54b4f4346c7107b651d0277d8a195c59ae8afa99db2599004da53ea126e94c903605aee44b3d56abab69438320c91918abbb1ea2b6953753e475bc33c159c590bed80760731565279c640d361de46aae78d0a837912c66c5a347c0946f6943866750c6ac1eee713cb8636e543b2f8a08857d53834233603391417a23c88b6003246a0c8ff39edfc7ab8759207dcb7c1d923ad891c31ef564e5f53c0447a25728c934303bec26875c44a26aa36e0324ca6423855bf2ca04e27cb8f42329a3a0e28a7285658fe1748a58c538ddb710c6d7839b573b30a5c4486a448dc0bab7c07b86279058578d4a56c781752e8ab270914534c51923a6d0c226967313695987314975dc7c7a101578f326d02a086513b2608a8b58ea5a63f2c6a1cbbdc847c312f5a2309c1749c349101a42757073224b0aca598a6a72cb308a010c327afac94798f8b4c6a1279389c12d1c3015b02e37a95705d3b2b8277c2c141bc8148c94244ec5c50e65790fd6e0842185a5f2ac1e72a21d4d652a63001c650b6c8d06cd758923d42479cba96d7eb396803c77be54c831063707a35067b87b2876a1a0844d11e1a895db70d596871fd1434798771b487aed562ee1d041c06505786205166812fa718424708a207cb4a6c25ee78b8b85e869bb82a89f647a813b97dc1abfb22b430d37adcb43b7bb1616dae73b0d606940e5af7d139f73b48b4618bfd5c22274d3a27c20195794344eac73b9a09de5cc4e59a2853a412eed7062dad16b0e1aaeef83221d34b3225868da033822248e5e40a692c20ae4cb112b9c4f9e373d6dc3393f385b5f65c7f14b66d7d0b31dd7902af39812d76d5ce73ebfa4c392b069be694bbfcc7b9c0825d158b431898c9cc9080d632196378049a5a02b43cf83d37e4a731505f23009661070038917a93c452004a8023b1da44b4e5cc53adcaea033c8759a3bb4bb52761191d76c95599a9dc2a2292bf37aa3803278726b660233e9b476748a31f9fb9f2d93b59b9cab33356782a976e05b083716262278349fb14b806a7cd3e52c1a6a6f603468c4b420cd544bfa916d157a21d15c1945b31f7c6285c30529ddf735350c92c546ca776cb44360cd62f05620f8b23b94a0a720270f122b0f22316050b7cf6623cc0658a9146861785c03fc4e0833c3565ca4ebc951f5145e2e434555d45c3819ccc4c2546673c18d70af49f0aeaceb83041556d52754c10b1d66b9c0519985e9b0aed559074743c8796881e5a189a4707b8923097669b2d9a162dcda33c3b825e004aa20b1749eb198299476bf45a519d341e9b507b1e411bd5382a6a84b6dc9c1bb437e98546074076ea76654ca6519f7a71d1f39c5328b16a5b182bed6b57ae058c3201554d612628274bff57755022b7e653dbb461958ca3eefa117b57299245a9917158f2409384a7b234ab390152b01d1383aad99747258c61bd24f7b12a0332c6d7b5ace324b4e1dd9b3f8574b17382bf387155f0abaf4fc8830b7774275821e91a939da83c9c189ec08774c739fff041d40d512b171c2d0ec7e404349bf5a64a876aaaf72c9c16a004578842bfbb6ff221debdb6ffc8a6de429ca0d7aa50071bc8d68c23c379364e56e4ac247a99523f8d90b3de4b049b526f8961621b98dc534b9a756aa9c4a1b2b4c7726e701ba03d885a39d59a76d92bba31013f2a4714ea3840293675aaefa1219f8794d114bbb004463f9c631729734cb430f26f38886537ee40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd +ciphertext: 5aa4685b76a5cceafa22c32ab22392c40633343d04040d943150b99eaeaa481849d61ad30d813096b80a057b7cf919a261945d81e9806710d31b288be2e4a4c64b1930f4846e72798a0eddb67b2c447eac1f14ca8e0af01e99e1091ac30ca410dcb7eb7c992f9accbf556e0f4744d89dcd2a91c6624324a18cf9b6cbb4f4d482a671d0989ab0ea45c8115aa5d66cd6ce7d8dbf66895a3620075db3e2ab8f3a6a511ce88c3006ce3aaa0237f1d28986b5ee5f0d77cafa7d148b43fb1b9900ef24c5fc81bd4be5cbfbc3433f6121aa82ea014f7ce1823106c4b7feb9f894fd84064def9af7984cce8ccc62d1902c630b98047d7242116fc5735e6a5dc1e1b014eeb0815c056505529de4c6174b06ace73c98c23099556802a3fba32c715a3a6b62dd4dff023ff5a51ff62ce9acb7b42c7b6a5cf2859e04d18c1e56c778986e3c81c6b44add109b09493f318ce089d7641d84ce257dc13060383015b9e39d3988a1a5b0305cb75b088a7c6b0192a2a54e9a3de472b86d9a8a9612a19686d4a757cff8a8eaa192f3feaa4bced756090d4522309ee5c60fd7644363831b97bc5eeb095d9cd64a5cb97fb2e01e51c71c8fc745020fb789323bd2e252a6c52024908d387cee4c23d2f2cc38bd82eaf1a85ab9646856c434d0750c578394ef48958585103469ad69fcd688a46479de7d227809ea8b7cf9330d4ec5be978a1d2dae5b070b64c014d339b2a180328dc2a36cf83d4f7d5a2675099d2b35c91df8e4a611f4bc400a6b7eacd4170b9cdb5d5dd82dafd8ceab075f63ff7f6c16374ebdf38014a668a6c327580aac261e2194a2ba711fbfca6f73f35b2ad9ae7c1e7807c7c038b37f09c8be31759dd48267df69d00a2f6d6d9b00ad0d34fda09fc740b664e4ffdbe2971a1b88d0de74812827058f702919f700327a153d467a479e8cc06b8fb6264d6f53e7b8d84ebe4060e998a4576624937438452ec7f82ffe78337c2e8ac8ca790be987ba3bfeaa8495cc46e0f914a01b8af50e6b4c420ddf78f5d79b19575558951a713e09a447cdc52965afd3ff472a14203d393f15ba0c77bc3784b800aa78c389e3956ace626f5a28c8b67f6d9d3b7ba5c6900673230559312d4c8fd5b34abbc05600300d66ea2c8760676c205bbd6e63b0104ca3e30da4f2d7337f2dc28ebaaa7255bce5b741286ea3317e73d060babeb383d607345a808754e4f2771ff3205eba4ea36dc7d5b7534fd32b8701844d2994befec0697e4d3227813625e5d3f46b7892c1ce63c7ababb97eac2b06dbda7e460042c5d075bfd6c8b9cdf8db87c5d416e0a67d44d27338f73d5fea074c94dd5dfb8b50a32ea3128fb3432df47495120337952b1dad75b4fbfab5612c42e20ca2706728af9d89daf053141b264c9039299972ffb75c38a16a737bd89f88d603b5d83650a1f585b72e0737818cceda2fe57065f0fa2c7358219227cfde2d97ea5b5e32e5325b08792967ab8c12772a8ba9167e41d86ba7bcaaf548e1c2b0701fa1daeb45a86f727e7d91cddae1 +result: pass +shared_secret: 4b525f467ee0d96c1f4b899a114936343ec21c74738b05555b2bab9a5d0b5513 + +# Official test vector 45, seed: "d3c9ebba6eb03ccb5c9b9d2c8d7f0cfbbf50841e24396cddf0e56525b38918c2fbe6c34cc1b93f7bcd4f4d5777e1a488" +private_key: 05e74ae857ac16003fd911741a1323a9621de488789eb612908928e0435aac49ce2097cd03ebce2c8c0aa232b19bc64e81d38750395af4499de139be5d8a4152b66a56067cd9a372c667ac143151676399b516377daba3bcf2a846074786f934c8c091921353779b91c1a201cc293a83e11bac68c3e68350a90c13d65628f379c1e181a8a9783b897102be367cd21629d198c39686c02339cb92278ad1d17ce563797e9b4215ca88a37a9379ac6ccc523cd94049225b900ce145950cce099700672300ba71b22b7a1a01d30ae26975fc53795d2b49a1620a80d0076ca983c0b8b87e96399fd6869aea85d35159d5a9872242515d230ae0965d5ed31cca22a35b33c5810ac4737481b2448f324b7c208387ac045c0b7c9b25a678526857c34a7748c443ced32bd4b7a2155ab7d67297c67080f507ae2309b66800728d661472692ac22063f3886e111a5176387fa410422bf571c79a4d8b764abbbb56ef845ceec23c8381671009c1e983465e090ecac84d3e7b567ca59e5af8477ea89dba3784308c680033c3ee65b670aa43fc6932dd9692dbc8839bd94c89e85e20b2b9ff015ef85a2c9dd7208db5815e73a4ed469d38a967ba42b2ced1c959e400aaa10957010a23fb7e086b82b1e1309b64977a77b9f6bc15c92149e3587c9bc5435d4a50a62c90dfbbc339b3467795bd3e125bcc6cc83b797d4d7a6e8701953a57cec99b8c7939697bcc488f0b6601dc2f31ebca4b15059f12962e153a164076a9f6ae88cb737b8ac4f5eca0fa8b3bc9d03f7b578c8de160daea49a0211c7b007a37cac38ee02d07aa48e355cbfc43a540d9096dbc5504949239cc0b82d94755c4ca182852d56b9b9819c42b6c22f3246cd4a879662cc901e4904ef791fb34c7423a23876204618276e45cc8893b15f5277b67c391177889d8868a8c14949b684467094a9e2566bdc58b00b339e3b91fb54b63e1f43dc57a7f107cc988cc1d65e456b85325fec11db5a7c947fb1d82631fecfa57dff3a1de5ba8bd0a5c2004cddf442699c4acab590730c8aebd853a51a8ccd68839f1ac397ac4a9b6f54316537bdb99879596bbd2f517b296906345a2517318b4146d4afbb7e1c1bf377337c6b84d3363b49a7a8937cb58db3524a2525f2f2984598797b835a41961b99bab237077a5b6dacdb161c86b19469e4b99c5b552c63c3f3fe3140770c369c49e6f696f11639d625647b3fb9a38a0cbfbc01231c2206975c0c7b931597881af2cc267da7f5a320eb4408df9e39d15a7558429390048331c2109d2c46ab7d16b0412c1ba8b6b1f9b58a47c3d54564e70440eeb43c80abc8d67792324287b3db329329267f53549b6a72d94d9bbb2a02b7c985ae8f4a5c39218cda99f6d461bd27723bb20af88446ea65a7b85c074cee48feeb881ddf9773c5c6740a178e1707c50788478d3500f6aac22b0be3ed5ad240a9a336378af185dc1519c0948cbba81790da7929ecb464406cf618cc019a84868745591496ca38ac57dc5010ba815b24507ace51edee75dcba3877179c4cec474101395d9f831241c2547487636d39f1c6082041ba679b7a1b1d5bd0b295eb137ab4b210d0149b4fb0c8df5515ca6d7a67393a9f5b57aa7c9ccf796828b704efbb194d5d895cec082f5dccb78b59a61090eada66093c84267079597c9881dfb2ca8fa4cee6682c4375eee25a08bc0766eda05bedb2cabf734c4243987012a44e86cc013b7e555bd15d45306479a78ea7d4fd7723d3b074860914e24395b264d35e57867f0229912c6ad0238587355b44c155bf7b5e5c872afeb136bbc32b1a950b3122f3a5b71d8c140940b1ee62a5543f3b61719896499721f5466f7b57b119568c960a3796bbf2c8877cf8a762d6a8852619abcfb85ec7c6e79652311490b03f61bb18a23fa100fee70a0fc693163b28ebd6505773324404341e6c79b0562207ec1077cbb64053a4447866efb1894a6a544daf283474c6e0e99323f962b5cf4667640af8351059ab42e0925431d864339258752a3b08ad52f985520a1247af44366f3377d5875589ea9a8e38455a3bb5ffc29083664cda47988f4f0c59622454a7109a6722a77703b0a69a4db2ac154d53a6bd60603e9be794b0b1b0b88da57a64802ac771134b1a4776d07703db8746e610331ec3ad3926891c05b4b738d3564b79b59287174696d119717d3650aab049b401466467ec352102ce597f6e867726543067acf511975828799f920bf139c176fea838144797e79441af218d9c2c0f15a350ef82d588b45b86a2c58464239c121ed2a7650d2841eb21dd6547bd32c0e4d654a3823c4051609ed49220c2651deb6b0e55a00d261caebfa9c17d82d5f23a111c391d06c0441102c2745875d6905ae21412c2c14ae51c5609c5872828ca8d09239b82abd602005cc66ddeab736db3cc0e946d6232177e6c012a8672bd62d0a4253dbb5a908c42341503b76d428a0c38f7e978d4fd2532d075c08d9cb3a440018b323dc3ac28bf8875e412745962e512c0e0e81b4919a813766bb020c831ce0c3eea5a496e57e8d598d3bb34733b6358cda44b1960e8890ce525578d100257ed8a916a02fa2d8b59478966835c0603a8f48715ab2544d0fc487a7eba7a96a6e3918b9c9cac54c841c2899cea0312b40f9bd93eb7d392a4cb889144c224a23244067a9712ed9cf52a15edc35895c7c121822468716704e3617ccd59aeff5120524495d44ae3019adf7d25bd7871b2a98a17ab6c68c789174a28a4863ad69362fc5982aa68b3c0cf35fd2d63d064556e55b6df0d636dc5ca56a928f19c61816349c6339c59febb2b8675807a6a9181a91620a684dba5c4c596a821b66014851966547d60690f7a805bccc4bf9620c188495795c3dad55c8e7529fedc92ee3192a68bb9250420f6ff04f939c82c8442350d40f9d518c10c53ed5c3539e373d0f955d3d451e7873a22af2aa87c08105c044613334e6b585aa864795e0a6af988affb2b2eae653be5c76383b66f5205e1df2b557b66b0f9b7063d3039510ad13a9b5ae6bbae433808db7275271917d75524eb2203202c1f0b4c9afb402f5798214c28667d28727f89b95d3294cf38c129a792b16161e6b9eca60c18ed802c72225d585c7f59059dfd74944f764035c073119395478651f88352c204f89222bfff7c8bedcbb6be1728ef74e54435b40b22276f1199ef34673ebc70047956a543f3d8569f334a5fb22b4c2bc34aa9a4b27a11795a730eb96003ed4662f2f0344da2b88e634672fe48e40ec83f4ae731342e77cdf4a3acadbc64e263f1afdcddf2ad63f2fcd19799a0a8f43ec867477e249ed5fe716f8ded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 +ciphertext: 0924e57c036f105436d1eadfbaab67c55fdbd49ddcd120c08685ba7115c250799752ab883e52ef0d0c4d9bcd46bfae3b0b6df089894155bc34fe4b0db0a74fcc95cc5d56b9060070b8e475b96ceaba577832790c84eb87242cf30dbf9b9c2fd61ffc76f4894495b2f2060c10b105f9845287e9b84f10a187446714c968471550d772801214a50d9ae0d6ba97e60dd0e3935fa6e5b0425fcbc1c1c47645b5974f4906f3f67efb70ca30f01b30aeceb45bcb578e08fd006c641c5c23ad9956134de1e4b50941579266b95c092b96698b31eba48fa03eb2d38cd8339e17bc45df2a7bbe159257ecccfd09573190e53193fcc172585ba3ecc444c8bed87f0d9dd25383613e280185b145ae6be22dd90606edc02be32ec3c7c2759a9d2ba907eda6342aa9c4815edebdeeaa79538c440ebf3f7a3610e34aacd303d3338547dde1ace59f6749573847c1743694d29f99ccb1ccc6764e2555f51382973985f02db7aa11614a1202fed63445500a23b1285af9d6fcf633110caf23de2ae3a8310d7b574f49daab50988f00f7e2645bae92392c67e33c3bffd4551d5bd41bdddeda4cd105ebfacd6a56052653414d224becf74c68eefc15b1af21011add1126f949fcc8efc68f8e5359fd27c0662dfabedfa8481a04c4b355f2c1c31b0c9ee202391fdd4e3e206d96ee49ab52112a04203b8ff79a2db64f4034083b3854d7b1506c6fb2afa95c896432b969a62adfa1a017db9c3e7d3b76fb51e73f17c7cc762889ff2fb8b1066b2f05600d52bbebcc8bbb35b91e6eb9d270d80a995e59027af9acf9a1d0f80d028ac1f3bed3b3ccdc6be3a97ef00215ef569c000af549f4e31d5913ff376db11e4e7acf6745abd40fb3961a3758e375013c4b110e989474c91c8ade63f9252c09a8d760361b684424755c47a21d8aeabecec6d2bdc16d08a1ec5397cc1d0ea01c5ffb45b5faaa8043694cc073bf3632558eca1080388371768f41d23fc1a4017d0ce0bf51b4a85e6019c2a0c728e5c3a02e592287de10f43a2b9ae9e975afc4f6af27955b3af3416f4f89f818cfa602e44b8a6e32a57b07a567bc60accc98e00093d17d4b487a30301063118671c62cc5ff595fc8794c7c64386e4be6da9c580f3457630ec9e4d42be26ec0b9265891d2d36b92e3f13f0cc850b04f5079abbce1be7dea57d466dd858c0b6d5e15990a09c1f7d0ecdc46e63f857847b3535d28a6f05359205f45537f93820c7ac5e83f19326b8f727ff744bf2bcfdadf56a14412697ed028586fbaeab5aa16354cda157d5410c617520fc90c612c4076b82692364a32d9e7763d3fb16421f6c177122533afc75f915539a523c8db1ca9a64951183154111978610fdc9740466af73b05cd0dd380f39f94c429d01e0e4ae27ed1495fb9cbb90d0fc78dd28e23280efaf77e6ea6794bbf342f3801148aa241731680738de27ca171c6b2b0ab1099bfade25362f610022853ee07f68868b3a2abc899703d3553a6302d55d5b2f24112fe035bce7acae8fa695ebce771c458fe +result: pass +shared_secret: 6cba1b31809b333ea40f2f67bad438226d91bd61b08860357a840cbcc8fabfc5 + +# Official test vector 46, seed: "6b3996e8bc6f52879f2b7be012c44ad555707cb7e5fd8abb3457a298336d6fdc9eb7853008ff13201d5969a315c7e493" +private_key: b6f76178bbab01b89443c00292ac914d658044f13fbbd19cd4c0a385141c6a91208665bc45c04ad73185e6e3a0cd102a8cd20547c2335ebb3bd7e9ad50294b07d9a45e617473814ccd41078fb58d2dac1f872c6cb96c73d1aa4356a917c94704a36b9ef791c6c021cf9ed2270685c645a76141f6373b8ab6ab18963b580ae0134d8b175382847811a590080a3dea2b863e06a0990c93839906e2f942b864bee7410bbb17bc1db6373ec99b45754ec78531c205919c27a4f2445b8a777683819709c1c9a3660ccad39941e496aa791ff8d2671b74580df965d0126dc5c034b8b01f31179c1c4746d3820955206b447174eca321a5c22ae852b631e12025b5675385731ba9234ae36cd90c3e16fb5ea2494012b96498f02edc23cd0db74970961fe430129af1b94ad5b1bd95931aecb365fc257c7c1d1668164edc9d2b869a4cc95d54759182c6086785246794a6a0f81431d75fc7189416a9b1efa3832c187fea912474a8a4caa5c9d08b2386240a3d26755111a3a3e830266473b6e02286c10e23ba34ec08c1f643a8f2b74519631706690fbeb5be8bd581175412c1b83da81700ec92bd03b9516a779205c78f726126d67ac2a4c528663acd985296d187c7f6e231a95707d0f9854a4c051a12179678adbf8285b5e58251d08f2da015bcf219edf39f6be56e53b95be3165114616175a5ab44607612fc40ef814c9ba52b6c060c0f11adc8234d865282c3dc5e106753cf221ab2996ab9887ed5334bc7b83d6bb413e1fa9c074903f3c94c685c660ab00a6be85c384478cb42bde6715c9a3bb77b7acab909ce428b955476c85f153263874ca3a7429c6a79a0834c15237dc5fc7a7620897876a3c0970e1b7b789a13482a38c5455a187995960806304ce34b72e676fa589f9823c949981b6eeb887bf7c09ee147645602a640598bd29ac48c94daf0771f46acacaabb4bbb73e841b4be5ccc886987b56cc6e25a7260b3364ec4a897ac22816048756a530ad269759929bcb4ce03435784b25f6f87ca320060d2a1b3b800986cea76229b1d5fba58afa9ac3514289a9b7f63d80f2b48893b376018a0baedec2715b01d61c8cffb63b839c4129c8b97acd904a23a0cc5a38245802ef5eca812870a5717c667ca9bac328f08305621305e5d40980cb7a3f8bb01ec4469b7e17cb4657944a739448a461de11e3bea1d7141a6b7dacf8f41a8f9c6437a9c26ad5b2dffb4974bb7762c76715a9694d5d012e2254ea717369766c22cd9938ec0a4b5a88e7c45b03027926984081414cf7b3a15d46895c362a0a2928c1215601f665d675abfea867957f68178e6621871bd7ac1010abc494517804e68be80151c0aa332102822b0674915208afaa21efb3ba32b0aadc9778869bbab9ad2cf934a690f40917593667cc2ad0cab53c387957ee24960149b07a109465c5de3eb576d99481fec4ca5e8a0de36756f951896322d29c5adfd124c867a5286b59f0c2a0c632c6778a098d39c1e6029285a821c06958671651804e75de2d2414eaa19d0a18003c12f74d50655041aaddc6f5daa6dca8b46367c63bec73ce1e181cc166efe3baa2b986bff325187369982978cdfec651946a4995a20b48b035dbb5eb854a0daebc2831a4f20695579b52d3369af228842776a03c4d3284d763d1f663000930377dc86ab14486673a349d8073ff6ba44496c64467d5f531f5203a074ac7ce9090e59f1c308d2c755910af132ab81b50ad6d6c2c6716190696ae6a51433f61185a43cb1d23708d8286d066b61a6b7f9e13f8248c232d8315f40053fba0d7ffbb4ce60410899200a8a5e51bc1d8392cd56f41fbae85f35b110933a931084444036aab790cc09b84b7a235f34763b9ab5c9b53620f627778c661c4c45b36ebb3a4565795656227fdc280b327ee2f96c16e7bbbde89e9090318787b2abba7727a393cdc04dc38205e3c86ed5d5291a1149ee204b24661ab2ca16c1c0a35d3cca0d7c57f4e01985242c3b43869d9914312678710b039be4c2b775cca014b1d936ca8432a4614c4e67b69620fb49cbc787599c4bffdc3a2c786ba876864e7a5be33ab200bc2d087c3e6cc642f4a96771ba212778046b5823085c4068b209c54a5bd4153e4d986ed3512d09d40c37c1a2e57495e0a594f4430fdb1c88c4fb677b007d8804ca114c0991b90b5140761d59325502a1f0476e961a0c2b2ca78a82c8b5581d98da26de717f84c140fed0a00221ba71c34821374ad7c565ec20cefc949e98d1819702a4d38597c1db9239b9167dfc8651498927bb0e170c151e881577f58963593d3ae00870b8bb9fa3b77c468e8bd365dde088f24c2577c5aae2f24aee1552e4482352674d1d96b90880336ed44f6bf007b5eb67c52a10910a9a3fc82ab8d50aee17b667a27b4d014161f1a60c3084a25524693364ac1876cab0c93c01a153b03486e75c3a01728f625f9a7a6a99e78ea9b77b01490ab49c6dad9ca584229a8a890effe47ce0692aafb17a3db2b855a01666514e8a800a47c0cbfb4872c8c8a4d4bc52c8db43d3f7360d568f4f905ada2565a494901f229ed51bad9106bba6dc4fa7ac59a3a5a64d033be1e47c36c2cc9da10a2bd200b681c2caac5cb1eb03f36455241367d30019aac00afe312c5323cbb4575e271c01f09c6eac03ce1f02bcc4186768493f6cf97671e7a02db6047557306bb8ce086382bbab8312460663dc1bfd01b2411b3c49835690627f133935c27308be6b5d09844f477523521c2b1bb1c92b6b3c46c20cf97217683a3f2e46b0151511c7c9c4bf8620d4706ffaec98e524360986386a7b5c20c312c5b6237bd17271bc6c146124d190205f468dfb00bae08318350c1aa5910a07a67bf13a99a52a39b2b04fa56143c0c1290c5c412ce1647ba8242c851c8bea960c9c4879b83037886ae77b10e8126dd3b633a33a662076cea326765d6262619b8d0c8c3217435450070dbbd67404f5255b6557267178ed99cd4257768e728f3069bc29f8484a127d84098ff4325946371384463c4ff489cd8b6eeed0c5e3e92b1b988c41a31df71047cf78ab1ef9adac2a1ba3121672505ec77b0620617598f84d1fc7b00fdc65e7ab72274c86a424746dc74f53142be6423545d02d581933bb92058563279e522ad8507f4326699bf4831970775640887e875e1cf29a09843210a23976941af397a3c6c5605af133ba94126132311224388f340448a1252c5bc0197b4699aab73a4237d40204a46103bd605bc698111ddc3d6bc04804722c35600b001c554180d16628713bdea10cdf5ca1708c7c6e354b69720b4b4a0c358fe9a6ad3febe78bb2a71691658acae21a1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 +ciphertext: 2150f944148dec904a5077dd4d82ed0d72bee1a3dfb6d7674753e2b50cfd6727ae71811da5ed2ba0bb169aa8a4883d286dea2213ae9edab0b24c342348b20ff4c5ef3a56320ef7f2c104a3c5982ba4fc3afb68575223ec0579339be4ac6a2139e8f8838b75a0f8e90932eeef2633c8b14f4661a7bad5414513075cb8053afe34a2c1379f3a750f27d7c46bee74524245cb41a221c48c68dbee3e78dc5f9f3c551fd830d6a40d4d4fe75ec31d97b97ffc32e032a75e0466562b54fce7d2d370c65fafef8b66e9a4fb527c7b22213b22c137650137a64c53f910a2386cef26e29279c16652ccc0a81da0ceaf494f32391c915d79a94a8ab7e4fc3a4eebce4c5a0b4ed899f24881263dcd74e3b895d353faae4cf47a1c74299ad8d435cb2c927841a86e160e88815805fde2d3c9f487754b1fb8b9047057b5bcbae25754f90c8a0d1c7b8e9e8ac03936197136fd189f594b709d52112fe9ea335dc96ab2ec87c97d703994492da1c1cbd20994c1762bad07e5dec98c311156687128c76d2ff5a5c7bb65bae29343059f2c10df3e9239392769ad0f575bad34bd7213f897d3af45bd299e8d6b75753f966317cb5dd821b5a8d5bfca74871d210b2c184107fe9109503b71644c8af5bf09097f3a6f0b9f9e26df7615d503634533cf4111a5487f205f45610c777e2fe6bf75e2100c209ec650540e734d710f0a0a378905f59e8b6c19d4847bd2b02c4366958972a963d4afbbb18e55adc1fff12d07beaeb27598cfb98833d02870b902b0d9c587523792b443c453059537d0d0975b95b8ab9d94f41b6bc0e344eac841eb7656d4c610c80a8e0d0b659d1be91279ea59333ef5eeb4b42fb0a4fded5d313bc754605ab5d8740716bc1d5c9e18a998d04fc4031fe5225ab6046678777a740a998118fd7b09504695401bfd27fe44140484e8bba45e12bb2c09a3cdfa578da8c7e46bd7817ffe1bef08a5e9005950c25e2a6d467eaaaa44be9abfce7e8bdb55356a509c4df5f6aaa89dea332ba7c353a6035a4e4ad6b213366b49b4db22dc73f93a336f7dae65f20a662bd25939811d0df9851d21a2b7fc8fdfae07dfc136a7ed64c1a7b88ea62ce2093025acd1c0eda5352a15c5a95f197a611768bf0d59b72c77cdb03420ee070aec8fbed53cf2319f04b2e72d742c930cdd7b1e9864474c60757fe7cfde9c1d2760ba39f1f8ac5a2dd8edb312fa7b34e22c62c0a66c5d64cbc6c56fa0461a4bbc9105afc9c3be7bf62379a392e1ea49d62a2f91f19fe1aa1168138dd32d42be5b2c7214861ba4873726cfdaa9628f827cad22a2dbf34970fe8f4238b1c9d9af380f378d0273df041cad44f056ed08637e4a178120cf841cc8e8ed0e797587d11019b4b6756fc47803d0480bc325cf9278f78c3e00e534533c742328ac2eb2176cdfb782763ed50e510b92d56a14afa41e00c29e3e18dd037e2d6efd6e1d64e9b5760bf22453d850f9b3e2ed63fc9be5c45573d79baf8150976243bec8aaaa217aa02d707eebefc9b3710f56ab84ce72 +result: pass +shared_secret: 8087b456d37e6aff785a0ca104cb03ef71fa2d6652c52dcd86220cacf878afeb + +# Official test vector 47, seed: "730b65ece22de27d573ce3aea7cb021c415df210d228808d91d4f380070ffcb0778b683c71d4853deb569c822765f2a3" +private_key: 48f2003d718ae6848e47937d58e68162209b6c88892c931b4cc4b1ce0a0e762020495c60e89cc854f72444d21def3a5b96a004e2d9ac9b110aa8844dd02a4d8508b0ad3c480e37196e343ebc01c12cc2ce6616cbc395a8c7e02b19d25041165832584742a07fd3207dd3687c91d17e111a945985805fec8836231b7546263d96302473abfbe36fda05345950c7dea6affc45c87a3272e780a3ee920eacba1fa17500ab04a091fb355d906430cb4bfe66697a09cb08f992a3cb9b2f31624726b13223122c5694d9e0757b65b46682694c82b862aabf3811ad14db6a31b602030498993b8eb5364f3c9213e66c81744b018dc895fdfcb81a77672e71b320e3a2df75403d57c229e745310a7cf780291fe169da8290ed96a2056995fc7c59cf6cc162bb10678736a4f56af0430e6c22419a6c3535b22fcb837bc2214a1d83a6ae7414d6521149498b0e0841e7775f1e783b376c1ac39067db769af6e691c59683114c7420fba6723bb3ae5a137224ba7e816b5463902d21223064c8a8cb10f49abb765281ec372c647b862f11095b25a41705b9b327456a7859c7033691353eeba926ef880500f34fac746d9e59bef7b50457acbc33369f3f85af047bbd75a40cf62ba1ecc27cd5a6437bd28c37ea3739a784f068cd4cc68f0cc6b01e4933003c950985042b1609e0a748c9f87ce5099356ec846f9b40f6c13a6187cab40b47d04cae05d43c53956ff4553f62761068e9938f21a24734305098caf7c9022a8b52cdb54860419a532cb9750c3e439a742d9031076b99fb8a934c2c8a42430a8e65cca75286518cc08a6925c2e3b9fc854d8343b36d652f37c339b951b0f7d774b4da5171a96cf6981f1848703dc93f2ed6bfda065b7ec4056632a56a549353c12c0953757b2077e65c93c00673e88ccec700b6d2307a0609ae9035177fc41c97fc32d1b8bfe7266ab8eb2b9bdb9ec6692f7d6678633b030cc19905bc46960ba25ac8b9da762165485a7c07744d1b8fcc080993d0bf86496262f268f19b7dd7d7bddd4c947e1146f2196ceda5bb53137fb107560c4ccedb96351945bb8ab5092c9975db266e621c53c519caf639c80225248e6804d78108789b2238644f33136e853c26e1477827d3797d7c75a09044bc77b9ea05bad41a1da87a460e17779a5233a080377294a1ba3a99b4db42cd42893b937c369983811c14305cbfa0e57c3e4b19f0a77c4a2a6998525ece48cf45635c5672429b67630e603d1ceb5a22e429aff58c2ce61e79f6780d59575ca3309d559cbe6572e0671af2259a39063f628bbcdb74345af9caf02aaeb0a381e39a5bf08107811b243d130c482b0c74a47738d9a6c5d30538e64cc513160d9a8351b9ce82521ae1cc03c8a48f72252ef1b2a15e6785e639246cb8c196f9949ec094ff6639c8e216b90bc3c2099bb3093ae5242f252807bdb162b3232f3e7383145655ffb71ca43456f1a5137e7977ef214ecbc6113f198d7712178da090620a9d343025ac11595ab6b6844262822b128b8826fadc7b3f218d37941825733f43ba4cd99b63d26812772980679c3b14462b762ac8c3e8942a0b1d4ac1838a2795113c365a535d483658c4531a0ec63c010a2c7ec159add1cb33481d37e546d75b5398198a82126a7d306a26c7124518075ee6701d1ca69d16a867115582f22a7c382bab3acb5de50c34c13a5378b2b1415b5538987a77681597abab9a0b5bfc7bbd19550064489be9b897a54fd12c7229f0af5313429fc85f1936b5a325aea955021a969ae289657ba4ce7393477afab3ec0b6e46bb7a8570b2dd4372d51537ceb3023e477a36bc2b784444d0f71c3165395ae71f98921ed160be83e0572487691a43128352b3d82b223c67b33d8277b05c6c071418799583e2b87c9c2a81bb2a7658d67e637b99d5770e04b592bd5961f0c726d0058b31086ab1d23f4d200bbe6b418fd53a0131aaa5fc0380f70f1c90cd1dd5bfb3839cff013375f49919214e756856042bb10e1252a0108c1dc39a1f69bbc230a4e9c93a87a87899faaa210a781c91bdfec9a59080ae642aadfbe20f9ec600a2b297c3394a751354b6e8ac65ea45d3b66c57328249034738ea2541476ab0f2717940930c8551314851be98351d96acf6232e1960b97d930e3f424efdf706c2da2f652796caf344b86ab388f412853a5643a7932409b476d3c81c2a301e968dae28742d18232efa09b81177dc9ab33d7b2ed5e711c157bbb123506fe35c5132bd04ea87e173a7d8ab5b2e35a7eeb58ab3f549dd30228dc5197f778359b4b9b9b989b697839fbc013426016110bbe721c1c89c1d463248887491f0814c4bfcbfe7445144b88cb4ec535bb85a3016891b009dd4ea020e3799d56a710ff097b79384556c5d7d717436bc9626cc15ea509fed2bbb74c2636e8cb4e0435283c7159d8c9eb6e11e5bf977a80994278161671346b368372ab5612c85ad48db8a82067acaaa39bc0b1f49083e71e8727adca1f3c7cfacf907a71c3c73e6737bc51795c9761b5c36c87b46141400dd43874c4500606c616d90bd9d588905fab9b538c23a07b9fba6c0699259b6b81aca207138884886205955250e3e7b5d4d549a8b73c0ff41b88c305b7efa4178695abaecb97ba46dafe090a81c038ff373b13582665665b2058835b629f2925ed99082858152433bc3bbe90937c763d835638c3225e0c3485f9555d3e1556ffccb1b059dff8667ac445b474a17f360a2dbd895048b29fcc003f3c46768668b88bc0053bc3821a95d5d49cf1510894f1739c91174310b0ab2cb7836b41bc44aad9681c0067192d4a46c2fd60e2323b6fcdaa15a6581b4571b4ccc09fae5b24d8b11f67aa629e79652388ce04b9ceeb5029e80341ab6abbfe38b2584b55108a21ac64d61636ddb2094cba91c2b606cf3d2ba09d4863ee900decc2d594a042b5a63c822631533a14b6cccaa0775ea3210e3ebb22137a749b22c1eb129c872578feca153b312efe6238583793852485fc53952e4a513e64b8ac7b60241944d704246551d3372ab9e60bd8411729cab31eb908c5348c34db74f3ca60384e93c91479a52b321f8544dc13620f26c9fd324784a294197d9935551ccfbcb93f9f2ba8fda993a3598a5d37c36469024129c8f3a081c9b3a680a02ec450b0a805da455c5f696bf46681ba9f80f6b469af9b1c09fb2bdf618242f449cd017308dd80a9fa7a3a6aa25becb6f07b241f0f72b345664751b83b46a276ec74aa2569b79de21a5198e7f0c3bc2aa84e7f5c79f4cdea5b473ba2d344bf994fd3204f0066489947b572f76e1dfc2e24297b210ed0aaf228788a0b349d11689e064bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d +ciphertext: d378efc5ef259dcf2434427ba3f28dcf6d906151fbcb67b9c8e4c3bb098bf2820b9670676b6931202f38370b6e36286ac1ec05f4381867232b34b4078cf6e55d41ad44431be7c35d169436cbd71b97f160017a05d9c642e87e6b4919abf40e48747acfcc10d21ef2c309b1be596b146a6e4e848548f2c8c97c9293eb03d92349d62da60ab60f890a7ff20ea7ee1724ac64ca927413677babcce28371604e79a0a2fa134e51c19d6ca02d89682233c85618874af6487685f21de8e85dc99603f5b4c49139f9a5621380c65411aa4254d5ae205d5b0aad42d8883afa7221209abd96a91197381dd9d513bec2cb06f33760756a0aed0c169c195be9b33609b0e40c3f1400f7db12d4a760b45bfd275796e674a9bf2c8752b98fd9f9aa98f08a62f20296376578938ce94d3bdfd8161211225a7ca25b4282ad6abcc8c14e40d4d3d4cbfbdffa435258f85a29e7add20a7c1ca410517207157199d02ffd31118f13d910be88dacb9e38e2eb3762a4b35f963a17db121037c1972580cf0e5634d322ffa43559c20b494ab94941a51d0673929e2ac1c8c8961120eddd8ea1092c33c756898ffe92b02dd7491cedfdda440326e2f818a67599e3a2e146ee5d151934fdba1cdc36eb42c863e841dc214584ce178cc9876b9411d6cdfa8c2d1335dafe8f9bfc435a7ec06c9ee9543b8f0d8cfca44ca0e21511aa2c592d107545e6c0a10dfd37a2e9d0059861f563b26e544fc96049f02cb9bca10a3dd39f440f0e36bd0a2b6f029aee917c3c8abf70a893e56999c9ed0281108f1d0068cb37abd7a7f09f3ee975743db549d824847ae0adb07f0882e02d0a45115ee6191ac32447a92f83d4aaabbe0dc55de5b260079645703603d8704c8dab678bd468463b82869802e999557b0f0164e2e790126e3f1e42efd67700365698e6fdc87b4d42603571df83cca98284a388650f4dbebb622aa190b51c827ea8f14ca0692dd0dce0487b6e186dcfa3daa04a17b07e0bf8ca15ba85152e4ec0cce556bbae3745c9c1a247d0fa6c10f9c8a6843a9f91b5bae12266e1e96d4ba7c2cdabb3093aa9bf2b9883eaa4ac1861f03ad4c9141ac88aded147390197fb82f764c789ed7bd893f680834d76908758c8fb51c508603303290500c6dbbe16c86e93efed13f27e1e0f90d2aedf9f40be308e0c988cf59cbf8d7de1c8bc5aa01afddd8c58afdeca6394e9d03655c7b4fefd13c75846dcc1304ca80a4a5dd985e24e7387d3f5968312624b4a1f1b45e1353cd764e552cd16713c36e0bd1aff6369bedf509b8835c767c53e7ffab9770eb6e0a8acd9208eff61410ba64124b62868a80096eaf3d5b453fa4aac6ef1dcf1924a04e444dfb88fb57742f2c7cf923cdcffaa4512e648d2db593c160219075bd4431943203f6e54833b425df5dd442e589c7602ee877271b5842b334b98e7d171e6fe244434c451604da7885628d7367eb94bed7bab93a261740127d57d9d6acf40172a75a32432de3037bf640654418f9d3e3e9f05d17b858df6a1d8a22e +result: pass +shared_secret: 6799d393f4000857868049c19a102e5c04c55a6bfe3a41abeb4fb6d5228cda97 + +# Official test vector 48, seed: "5522a5a891a9a9b5514f4556afd8df40b9cec63a01492f0cb8a1db073a285a963e4a9ff2376c88662f7d8d241f8acf17" +private_key: 3e3a14084387ae125d7f5a0e51841407d61f85d7574b1abea52b6315d07a404372c827aadd3aba668bab52d5943c59bc500b78bd77ccc7da7a3a6c8b613b9cf761bdd73a222bd11b246431d989a9b5d7b68f8c2364c8bb9380caee16bbafec6e4ee157655528dfd8399b3912b303481607620c941cf3a314cb7013a2526229c4bcabf7642596c4100023140a4ac869a30c2a20501ab4838581f42783a18b83f5165907985363d766edc0606594188427a979d171c4a52152fa4ecf0c4d4bfb10306b98ec4a409e2baf598124abb31e34bac176a29fe7316056accc59f38a268ba03b39bb48e0a763e340dca4c3f1d8580ce304f696144efb3db5975157260dcd26194b476c5c6552f9a39b4c556028493f0bba23c96ac03d03ce54a4680e8075cfe70b01bbcff4e3026fa3185f059d401552dd966e70032f7d198a17b8620ba30a39cb1aa3f84ec2d82d154ca88f392c28574cd8dc1025e832751769560569e9bb0cf3f7a4126800142753f7e4950908bfe86b468d095f422c1dfaeb3b196a1c62cc8b0beb47fcf6a456150b780b5648ec05387cc81d485318f1bca87bc6cfd30ae2202e342345159154c8b561f92565ee2c20d7e1c385a7a1d99cba75a3121e410d3145284c826c408455a068625d35b69ff944cb880601483b81f08ddf8ca0b8931480878b25e7c73a6795222b593bf517f0c25f6b862f970bc2a652ada653838c942a68098aa6931a9a858cd4251c19b07f69b208ca1c479777907fb752d24ca06c96b394232f0e1982f4d0b9c6c245da5275f75246f4d58472457ae842c6fa886dc2305b1e2654f1a999664c2e7819571be87bd2f8216bca5486615776e30a3bbcabc3b094d90c9fd24a083d03ccc29590647c533b278a28eb667bc71e2cd62cbeaa74821456278003b9fbc18cf23f2837c8326031bc8ab260a92524e9812d307004ca9f6d709a83b77d3b15b417b1cc7de93737c02e22d0ac4486157d0a8236612f0e25985847185007c41a5846dbea0987794eb2743c87020063277cd366b2c5105421c453257a63683a719a57bacf373b8cd90bb10542fc979c92267e04e0612cbc9fafd485933b42b15404002c8ca8930d295359ff299d5aa3a5b82acf26722542819389891509d24ac2d34d7e10aecac27edf022d499357d4d8548220148a082a504baf876414faea7ddb11639a073e87c3a273713305fa19604b33f6c362dc792a0007aa577a0f3740a246ab4226297a0e66c073564b954039dea916efd14b4a32afb361b80292c6b35244ec1b9fbfeca496b35c1bd5ad7e313575dac43478816868b094c1756bab5503723d39dc2ec6bcba3103b6107544f9bcc74e25355597b69425ae77f04c0fa9a17b1351c0854964261e60284507f0b2a89b4a76cb9481c986198c3fe8514c76465de4eb364bdbc43ec1a1054462643a0d1ff57d957685d0e70213505449119628e86c02f23e1315829cccc9f60a733b8414161673c66a0f33371ca0b10df9faa4f142c4b4300b79b0c18ce8cf76811e459c98b56871345a57844ab6a3749a3e14c18c463e5596836e8c436296a84fda143e69517b8176fef3c52606170194aef5b429057b9edc7c48f1dca18605bee3e26aa7a8102df0c61577a7cd4b9a04b17ac55708d8c6746289529337b9e267737d5345f4e768e0d6656cf23593a84eb0ec290c8ba078eb9f8d1cc8ea18280981cad0f46dd29c474fdc57cb5bc93e318537ca343bd03ea6a7a466b021b3db77021a8e20b94907ea294f47baad599d51d74219e38f883b36cb323a317520997988342a7452c3aff4522ebee30211444fe78854f9f853cd189be04cc1c800607cb4acccb650ae546323e7993bf2a203487becf8328a2979dfc5c3bdfc1b47533a9a629e5fba5a2234bce8eb37d686a75bc33eeb945d80d92c218548eff794ad6c0d825b57f6f12f0ef6b8201bc0d1fb0354f051ec1a217a9a0f0c77b1d6f76c1f25b01ff356fa390079d3800f1468d745a0dc852ac140307e700f97d557eb42164844b0b6d5a37bf1bc41db5aba156359e9b4ad5649189409be58b8ad5ac89e348099ab9ffe81c71d54853eba7b42167d478693c39837f76182e0c894e0f5ccf19643fbdbc5278b500d1b07f1e62ee797930c0cc4a41832ad093b28460c8700678bda847edc6bafa64ca182016f75366af8c330d201c7ac4327b2326d8b57997734bf909b0fa1c619155aab7bc5f4026079926d04619186c4334f48bdfaeca777e91d0b0b7fc4b180e5e19f0162c5d3146b5ac5ac820781209c455d195f17d541d6916f56838f7be838ac0293cdb63f28529df3fc7d54475062b90d3034c2583b00c942102f82b9553c1120891b77d61b8c86ba21b4a78f772c4049869b56442d33c642a5c0ad167747807d5f6105ccc21af8e06c85031a2a73ada9d59453017f131b55c1e0176ee29b021b7933606c5425078b7b49cfa99f24b21818e78a0e856747e4a7888a3d1313624af81c75eca6c3c43238bb078b94c2a9c57f0c4c66ec5b59ab93b73a1000630aaa28a79415320bcc8a96195934c9f14d5dc41cb70c1104a63f5fa29953495abf71b9359563f16c7bd6bc319ed7898fd00cb580902f2196b45311962cc17a9a9f002a916d9bbc1a452bd3e6a48ca05e50ab35bd828cfe66b483e96ca1d917001b46374c41c2d079fdd8257bc339a6e13a7fa2c0948056f6553803d10fc9f1c87725230ba3713903193f200a9851a78b61534b5a949d140c9b457ec66769c6544d79f0850c4cc8e4b78eae0b260dfc9cf0848e4e09cf52047d62bb8e7e6231f4ba49859b1dedbca0d8832bd23789c6fbc40d61485e5a951de68639e07e624a72395b9e25b603acb330a37b998b7a9ab3f973003c15624c6abce84050fc0166924a397708c12308c578105c1457de7cb41dd609c0c3333be5b9c3b93e2776aa0ab3a4054c98789a4bf419bcb6eb914c2179bae02b462b1126a3a28840b9e7170618c20e8527993623cd0c776e54f8b4eb237b4f8c075fa2175f11be86e2bdf3b9b9dff89b7534134620116e0ac025f6707b00b5c743aae144241b935ba61827909b591b44cb6f36107ef81a214c6aa5b9b3e1f441c774cb7102310c4031e0e4a213a8c1f1593906a0424d657cda7c10c1354b0d5a83d2cb9d0407073fa77abe480854c953eedc6cb06c75695665b92873552cc053a9bba0c99aaf970753299db3528276b56feb8a5bbf373d13c20c2f22ae07e9542206b296f3b101d07a3bd1517d9eb8db21e1f18e6da63acfce1e0dc597cef3abfc7d0aea99da67ce6c8abcf3ec4d93505d3be02c039e5a12538e5e59adb5a5d709b9b342938dfd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 +ciphertext: 35efdcdb40a548a0269d389f25474dd39115feb706f9defbd935fd224b3564b3e5b327d7e5ae47ce9ce21f968ce4b20fa2958ac3abc36f9b301e644b327b2d5b74f26a929cb3f2a070d7a36932c1ab0084d7f8e9dcfb6632a601830a1bdb6d27811d35158315863f19a6b70cdbaa180e4e148ebe276a6bc52137c85334f743e84622263144c67e7efdbb1c6578b17025d9a144c2784eb9d9cbd4052c23d3de56d4c50624d969953d944658093c03a933c8f39f09487b1392ed0b7ffeaa8edc5dfd73349c640a75f132259b3a266513ceae23b6a9641d8a8b1d03d5f44f3ecf2111b43b8ca9b112b8d82ea0d7a4659f36c81516cbcf1f7695bf728ebe83298f8b5db14a2e8e7be0628b4f8f5d7253d18efa4bdd5725f5ef10876a9f3890b99f6beac54e9c881693aee29ee7618b04ca59dc31c7531d45156d109c1f28d13eb37aeaa8edc664ef4c7cbceeb95fbf2fe6ac4f5b3a81c185dfcec60ba16f0d6410f89732d2f7bd6a8b64d32fbbe4869caf86323a13e840470479d932fab248c1ec3d09733342c41d454819a335c3e41f87b56d92e8f2a6b598240ebe595604bdd4e18781e584523977e8f9ec732c525f8bbaab3082a97b0ba12b1fdd76851d732cb6b945e24f313861000dc4ce604217df1bc5f9947aecdb305d397f256b30607c4d4557e2d248715a47854998399fd0451cc61a138a24f238514052e26051385d4656811f83214dbf5da500467b16f9f3ed940446241166d0cc6755b518e16403da01681644dd5e58ad821a7590a3e65087a5f583c81b9cc6d59089c1710dc6ca282cbec114337ccf8c63a04e340ee93217b9d988370d6aab73b36f3ff9f4de4996ae9983c1851f06d18008cdc79dc82df1f29ae5c803a1f3f2dad2661d06060daba722f69970f18d081bd58342b329bfd3590347a022b9066bb95e5549a89f4ce681fc309751329897ef1b7a77c111191796574944755e5be70c4cc86e7a404a2844cd21983935577f583bc5e86902bbeb6fbdb6c90ff46a59136afaf006b81b0f8d8e5dd6c7dd9ba157d26ea5ffcf04693f7a338f923511cfb273a2f228323f195a42126ba6d2869aff9e6ad962c34853c67b5fed2abbc325fb5026cf9cb3617fdd147af37c88a768f5dadb5a03b7afe56ff4277d40f67edbf1ba78818cfb4416e5d8b9da09ee9ca4a3864577446b7877c833b8655f12554e62a1bdef2d8574fca989fa17df506c29254cef3712cb4576165fdb9437751cbca17b18e197931a9d2f060b7484784e02691276696289ee89911f805d0e658a75f5e13869c43dcbcdb2476d3aec985ebb8a7e367fdcb57acec9449bc856fa13aabd261743f88f5a446aa5cee3436aebacc7b386af14d4c0de976e5ff4311318d580a7ce5596b21d3e2b4d1f02397c797cd018ca12a8b8fa6dd90a4997846a3e02aa1c8977b992b59197e29db4c409013ad9c9c8f3db22085dbf8015d26fb456c9e1a453994421416858b180a4deb5f06d6052feceb72680b625d644854e72cb7465c3cb5fc9f6d67e +result: pass +shared_secret: dbbe6f3b6f5a35789697792e209428ba1f53d1b98ac2c0d1893cfee641e40375 + +# Official test vector 49, seed: "1853e72329353b3f89ae6a1b1ef700da8ed3c10d19f9e61ee9252e28ebb0e15802ee43083a12a0b7527088832605e3ab" +private_key: 1fe26897d8a471a69851d6bc3e69088da81dd3534ab410b3a3f55c8cf805341651896a61c919668c97b2db572d15b2799236545a4675d37c1ae6d96a8f640cdac13c66c98e849abaef549ab109085f0190bb5315aad870867630e41133087888231a08be1baffbc0a74cfb84f24ca020c401d79a6e615604fb1bc80b2410a0e9b251ac2714011702717f6ffb2e1a7a3ddab5acf7d3211091471fa02f0838cc14d281850465a6a51e2cb6a5aa8a9560461ab67338b30c43eb49bd5221c26d366b21db0e6f4194edd60ad499052b192c2202b6c7962e6541a8e124410bf0b4ce9964dfb153576960b1ac01966552f8230cb3fb267f57650c783f6765c4c396a864d1762df70ff2f67165a6bae7e8b6c20a63a3668b7fd76160dc0cefd968ceabc3827cb2fc191df6e1472f27015c65a222b0a007a33993ac3270ec3aafe4c869ea2985088269323829bc0304d0c21569a3a14095939224a40c9922f77bc59734b58385be242cc8329fd9a4117e38a72019301bf8c55082186b84724d541529c79d8dc1a54b2cc3b3512bac4127f683b5fb1ccf6d10539eab9c8ab4b875733a903acae2b725854934b4b28f09e966e8e987077076ba508432f02f17322cded648b206020f94171d8b82b413b7cb3573197c83c50b1387eb6caed48c26e33d8cac079fa55ad0c83fb7c045d640482c805b5845ba5a3767098c7058e43542f19e74d9758a025b008440b07a19a9fa9b24b8a4550a8a925bac6f60476ca877a459b60e285feb8a86458029cc31c3643a1949208491ec529e566d9e2b1118086cac7252740098fcd318f2b319a89ab1ea4657f06a5034ea2e4e2a9db6f06304fc27d6002f6ddcb487777d18b7c8994cbb1305a516383667c29a8144be189697e36b068b2b6e2556794e53526388ba53e10acc0373926898fbf1136420c50c01d063b7ba87233b312792b031ac0d8668afb43ef651495663263ccb99e03540015c0a9eb7b88bc888877a766f15c0f28b947aab9d74c212f80c78a6bccc9ec78c97bb5242e25790305b9c222373536c481137ffe5b9903196c85c4ea7620b854170aef2173e69af57ec93aa20168bb679140a4bb668719d8773a1c7bca0415e645006bdf7967ffb55717199dca172f70976a9f1ce41db56e088676377acecc04f7be426a57c71efa95fea2366562b61945a56e7502782c41e7ef46bc4427acaab204a8a8bd78c05471301ca4134d727bb025411e9836d14b2c7117b4e135401348697c0c66a8ac13476d67791247d97d34657514fc5829dede57c05a6404d8044dc2aa84a26bafe9bce4c1aaa8de6a43c007cc1f203d814ca06f0a4643c2b5a650e2061c1a5b7cb30684dcdab80ef3c03eb2a6a52b0c531305486a03c95aa0473a3cd7fa9861c8a9feff0c15e66094639ae7db30863a35730db258bc69b7cbb915918ce42b873c944a7907b7bc014357ae981861c36a1600050e019711360a4e227f5fa7cd54742e111028372057e982e4be277a2728b4e381333902eea825b943128b897c74c109475b3a70312c1830c7ccad8a6f60020149a2a4b843d19daaf10d426a074711b35cbbda9797ab756de92bedb7bb19ba174f7ab74aaf115cdaaab7d09c8e078c4a3954f40a2697092bbe4460f27c4ce6886628382606f395b55d1a29939a2f754a0b82968d3c865f30066c5e21e3e2839416570f5b54f24d347e2e10169571a3935307a4918b5d68ddfea58a90382e70012911729238a4919a7531242228995215fcc96ce8c1970faa902f79c7a7207a93613de0066c384786f5913b24040e6b4b48b6b679e5538f953540c25c18402be1c58762fe8bcee6a1e58d93b21165f95895afefba1f735b11fb7bbfcb40d3d54ba24ca7ef507973aab9017b66a3e271f980462752137d9ab0d1937226129bf48f68b700021b2fabe81573e49fc17819bbe46858b5c58b4ca7c83a57398a667b09c681b990b648e96ce79b72104b13e97611ee8528c9f64c376eb04925ba46d3c8ab859304ce17b9435309726045de17d8a7cae32aa9c80e1aa4058cff89010dfe22daf0a002a905f945accd2f9225739aff1863006b46f9ecba5243bc48ed1184bb9a57ae26c8cda147cacbb4a031112279dbe727fa6c467ead943269ab1e3c9657c19ba0b648c9d4a48c6163a0a79954c0c7ec63529cb8a65c851c39840bb1a7c584104016f16b43da179189343c3276bfeb5839d6622e684b421526d69517ad57b67494bca6db58cf6c95266170ddd9455a6867de052adc8909790659fa0dc0a1d011487b16a1e08bc82b22aa9444f123632ec889719e754993ac8319a72ee83a988a2c77d28acd4bb5ebc486c33b0af1d67a84a349480fbb2b0b252e8749401d8488df52356a75ba2883090dcb757451c9956888b43806431bf9ed956e34806bafc15fcb1cf2b45729eea12a6580c6d1c366a76187fc20fae7657f560973838abaa510fad13c59c5baf4773188859809d1bcdba937845759c9af40dd2f14bd7dc48028a77ff4165f2204fb3b0b9f585061616ca4fc405a0c8533c344334e511053a548ee86998e9094863b8bdc02aaf6bbc916481ac9337acbac10d90794ec239268aa376157b1955379d30c2cb4927a8077cba969ac398bc8521450efcc7e1cc617e69a66fd16b771a2497d14e35a61919dc129844379a314821c333a2f4443651a4cff234a3dcabad32610f5b54d138065d8a5a81fc5068c5060af125265cbc42c580f47b9fbda72a893329999958b026c5661ba116346ccd86633e0a603b48c8acab78662162a9f11c4349c5235a5ac46546b16b25e355b4408456f7339122b67bb48334836214e431955e979244c8c7864ba189eb24c818c15417cac84682f719c9bdd8479be5c643d937605383c6a9514118498d5b4e81d5b74a063fb53cc19a20a9cfa26e479339b988c40918c192435db1a3b2a7c6046376b97aca7a9bbb30335a0e8fd237f8833e89e41a1c67b8aa9b0d539486b1855b9fbb53b5103ab2d19606165acaa588b9d14a4e6a7823800d8a9334ff7456e75aabb81408b791c9c6bc3b5829c1ab241e8d310bb7b15a5b24123a2c691ef1b5dd80640a7b94892aa1ad7300797a3de52a66c794426230640b303e71f0b93654708bd81f706b0f71757c08fcc591525bb6c9a57777bf1bda0d81b4922a56586d21b04daa2684e14ee8c0cd542824205b2bac3c1232f2bd37109d621a25cf570573465a706583da17c39ff3ad13826b6d5988158a1602a361d7a2f86a9219450ff713e184c0f6ea4146b79b03e5ee3454a79f7fe853da745a27a1462668bb66c4348b7f4bf25c70527b360b2fd104cda48fe520a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 +ciphertext: bdc7562e2142743d9af81c76aa1fc1d52b6b46473fb7f97443903b44fa9120735320a1180c7b1631ec6faa37b011417b71bd14cc78f3af729e869d4e161d9d9d0275bc653a731f04bd7e9f2dbfedf31effbe8d24e2822fd7b534ab043e72002aeb28a1efebe22f078ec853f693fbd645d89050401eca963a0212fded375b9b66c1bc138fb13e6585b9574880da1c86cd34950d4d3122cbb2258f5d9a08ad788b67ffb535e6c6f49992f63f6f459bad7bc87b00227f3e8db542aabc9f5c8051c02eaf843c47b5490aeb92b9f4f50252f4d90395603c24a600e95b9406f7f66053a468c4d46d7c5b4347d5f13068a3253ce57ddb159ff3fab3806737d9e30a74ecca1408154211a2ad7fa5c3140ece83fbd56326aa4e7399633d030afa5a6720259a31e58e92ba5c55855a693b3e2bec092966be1adb99b5da4d6a345b3d4c55233a25b06422f3cfd76a416a1abd732ff279c094a0b3d598641b05cb8f35d7996175c5b15d6d478fd17f738b4ed2861334e9c125acb154b6540a01e7ee85c1ecdc4b354e8ae5c68603667b52344ccb24d5b2f2cd68937eca2fe5b398d072905e51fade88a44086779105277bd169ba53d1c4ab1d2502cd6ff3ea9ad8dbd9d8f8f4bd05e5ede3c22ba08366d30fe1b9bea9587b05e1913ccbe6d94fe17a0107adf69ced338256835e707cc312da14b594dd3e4f325e18921938062d9e97049b93a0115149b4aeeebc45605edb1e51bdd644594f3ce7293200787d972e2419a5cb8496bfd8afede88d188c2396af33953f335301c58421250da4a9ca1b247a3bd81ff25594dbd262b7efd31b53371d1ab4d267fe859c11e0915ed02649a319fedc1340e110ba52cc14ea72c1090145093a4c3760e023f499155d96a3215cb62b1be9e0aad7b8f75f7b94c82937327d37c3eed4e3ded7420e9f680e03c2e3b123cb9f14c98c758632f2abef5cdc7b16428c7e024208bcfc9e46bd4439eb4fc6d46cdfcaa7a9f3ab4ccfa72470981055277c9e9cf3ccc3739a33eb8f3f5e1cb0eacac8ca19b0541a6f449be5522d9b0d747677c45f60cdc98a156932f04d5247e90fc87f299a1efb12faf1ae375637a8d62bcefae6a563fc7d54a623c4d50a3d42ac70c2b1d24f3166c01b2a87d7d83be81e83087adc7c79d9aa80c85c90b552986d72f3ff2027b4bd3f716450c082e66a928d26930dc7e1bf504d88ebfd923a3f256b0dd512d6539939766ff588473ba85916177b6ccb9fb16de2c984b17b85a9a06b4691af67f8ae2dfcae468ae02c34bcade4e9ac9722bb260104a9d6cb488f599dddc9904351a9dfaef0a90f6b4adc94dbef5ca73ac1ff89c23f3706665ffc3af4a008e564ec34e3b793091129b794c1a6faba3b224dab1bcd2bb8a51eaf4b7d237fc8f9d6b9d713fd5c5d9551e0f9925e72b1606128a018d1535c9690bb8be25694b22ded91509ff965aba2b220c2506495b76a456bc881b7183e65f70c847e5fff569b5bd9b1706d64731a6a5ac669bc2adcf4d21e8abc76146805d574812069 +result: pass +shared_secret: 494550faf270431de90c96d2ddcb7c19249d5e85305b3b43626386c30b7aba5f + +# Official test vector 50, seed: "027c3d5847ed4470931141104f25b19ae76117cbb64b224ee424ffb782e9a0e988839e0bded0df666fe8e5fcbb5dbc09" +private_key: 6206ad862474f8463a601909e145bb7b68c12772311f5474c295a7bcb93ee331a5a891cce2a69af9e0820fc9ab484a6ca985090035970a587e860126801a87342cb627e769fb9badf4c075aa78cbb127ab20f34d22cc4299abafae49812a5190b95182eb635e844a5111490d754c0674c7a39d8b3323cb1bfd04a0430893b013555d253aa2739ab64808ee6c6b59572f40e3c1e42224c3b20648513172a7895a52b633f63292c04f3e61b25d064ed4834f854c932a897b7f093cc4ac98a22366b184480ba746968523c91a8a0e0980aa8a1d1dd3401966b27b7838ba246ea90432cd723793271cfbb4719e60912df891d7e4a9a63781e8b1bafb40431866ad153bc067d871ed8bb096152bfc1b731153711bb40876e835033861cf981b4de14c24f2542f84c94ea39cd757ac011c8fc5785a9021626f476df9cb687894582348c0ce00af7cd3bb01685f5cd73304011e1b989b1a509660301217130302705c4fb868c1123e0cd633514b4648a347557a9147f44ce88bcf8db4c8e18c826d34ac25c7b5582b3d1d552f2ae28174d0a84b5605d909a6051258d11a941378377f457700e2c8b3901ec33710d179639ae04d661aaa9b3caae38972dd5075d7ca40ff783bf79c1ff4e4ba037c16e3839b76b88ede1779d025841072cb21520f18ecb6e0c9bfdc0379ffa6c074a12c9482ae39b3b51c1c7d02b72d3b844e4d80a8ca3663dc7016e49b0fd686ce826205e463bc164b59bab5cb2ba3b973f7750e61a8697bb1368bcc98aa3d670b7943d7ae89e64f006783e8b67d0142bfdbe4a335a564357202d57566a8d97ae750bd61021cfc9b4fcfaa38f7b6cb55ca53f16b0edfb36ffc1bc4c347c9deb19e75873f2b41613b98c73d346e0ae0aedc0a5154342afa6a1872a73e1ef77f5d34b49f369c4529587c391fe885b0c50ca38f7227adc980df096254374553672992f84e7fc55712a1234fda91c4eb8172128e5c012d75e4ccb0b440afd1787f3a26e0230fe8a35a5c76515e4c4c6b335e60a0b417cc43109c45e6ba639a84377c204adffc0736144d43a005bd35434737c301ec15564b00ff6b8f8b83bf2d99b72a71419b83a39bc3a637276125e9037dd4741f515a41e71dfb75c94e29339a235107f3564e939828ca499986230312caf91045fd6363c9dbb7a822027fba5607dc12b4f19257e1c8832b95b537583fa6642593122eb2c0a25334da883160b9cdaf4776ff14cbe2aa7d28bc271ca7985c1b1f9324042272c1590b737b5963b8894d58670e535775e7c3bea20628b3292a43407cde31b0718678be28b05c11811e1b0016c456d63163549522ea65673e188a27a39783119d70106e9f35b437aa65cc685ae0a200a3b225516b9fd0f4687f3485cec27a7be012766ab18783cc77274c6487bd0ac369ca29a05aa0cd5ff8ac68e7b582392800fcc4ada35e2974bb1da5254ef6af37e487100b4500f82f5c76a14542c9198ac57d699f26005c37b94e7faa5ebd5c62f562351b58bdcfc15199849b33a1be9afb67cdfcb4a201a29c3b61274349f82916c9dbb38a206d81dc5036c51f70293dd51562cee893fc80b7e0abcd5a625470436af7cb7c3cb76309490df6254297f2bda4163313f3cf10a65afbe14a738352fd20b1931827758905dc32c20cf8adf6c081009ca396f270b23a5f26117862a13cb00b65f5a2850e8252053255b8232626b5bdcfe44e95c0b7b5b09802165b5310122a434c5456136cb3a77c3c7c23fc61271550cf15122fea612600aa722c8646a6760ee18ad6028850fa36b82156c09429fa188db2ec3dc229a78f92112b4357d3681aeb19779f1785195b65469c6d3af60ff063562817c4587225a10c8e9fd56c4353711f287469b87cb533b99df46bfbca625c4601aa86459b27778c7200f6a12ac8e8bc078231a37c87400a7429c476ddf7516fa4b7e27841abacceb3c24e92158eb168cd3dfc48ade061b2c02c33b2a33b59ac45a77a439371f3683aeb6a18b107bc34e7785e4146b3f668d9565cb32a23bea6af6daaae79b39a8f725e61f1355c6965d0ba0cf8da22ace189cfd0652213501b3b5f791061ca929e2fd057f357bfaa4047c28577d2105be1616044a6383ff9a087f4754926338e486cc3e76511c7946a02893d058f7100c98bf0af514a47a7630e6e2564b5459d3b52bac6884fc32c7961a34df387ab85c07965786d6bb731af75742147304a5cac936797ba658fdb88c1939c78565914ddb0334fa291fa3182e31a36d6c159ac637a0d3a37098569a009911f54b13efc46e403ba4bf0bf59499cac06c848754903a7b8a1b7549a13b2de5a2cb106a21a3a58d1d71ba30700d74243b1030258294ee022037ff9c7e752cf0fc60f582b6310d4637309ccaa3940e6617b72c0b0217924febb6f971a56a979212a452796a217909547598330557a9309161fbf7c59004d7b3a88a2c3066534153d99ac87dc5918401b860c1b4d5e763440389290d2b656c97cb9784b201a90553acceaca0f22b17852f391ded7094225053f88b6578678f178067ac944f1fb6c2e99abd946953a49b059babeae527408f520844323d9496e51e88f0899857a07b8bf8586ac7a8d13579ca934161d10c08e3b400f084cbe9c6f21e29523c41bac2187b7470f752b55addc6250c08338bac7fd0879620023899041576191b502c736115e65977de34c740c75a5c5f54ae4fa07a2943a7f5a3b8018461445c3ce938579680b68fab41ea2bb26e40eeb13ac84fc3a38b78dd66186558426cf59a1dd4958427bbcbbc13037c577b0e0551238a67f596cd0a2627965216bf733fe88718d64725ffa4b6e73077a37a4585159c887b2a2f5077d1b457c06102cdab7a0e5752263cacf7914ddf836b0e1a95ac4b941388bf7c5bd62f616726100f448001e1c6e4100bbb922b265942bcf37966a5b61ba4957dd02c484413084985d5b22b37964b5f66c11b27c25af757f08cb8ba3b3115a6839483454239bb9d0a1b6b1bcbba5060c3ae47fd0476107919281a508e0606b4ab51ae12b0866c21ca994817b87244ae55222c0807b02581856936ec0ca25e08c7e604e1f1379914702a9e209d7796ca44879a363cce71a0d9850c8ae8596e9b7157a71052602cdbf1c2ba113341fb8b612f114a82c6bb106c703603eddf80ed634be616884b9f2bb271240ab48126a40cf7c0958e0c5bb4f73185cb41dca542888720f8f930a66a66bb9c79acda38a22249f5240a5db0067a23151a6f02abac2477574d9b5d49ed6c25fc46576ca327d614492eebb65297f711f12a5ff123e6de59d1f16878e93a31612015fb961bc572f3e999cea7b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 +ciphertext: 258852ed700664326e1767409c86b549ab45251e00d64a1d830c9342e8e367f1dc43797f2e1c8cd4cf98a1f46566d40bd608996ee5199dce1b4da5ae6a8f0ac2cb4f39fa20b9d9c71335de5f0d3e7ad1057341c4b10ae98c41ac4bb60484acdfe44f7125de5ee18171b612ab9800c796e0a2f3be97b30bef0bbceeab109c46378ebefffe8ab78ec87542cb73bd3377e3b7cb4e08910e1b2c5371aaf53665679dcd90a9b7e817f59754e5185bcc76a68f476352d1ab3696ab8b191d3ed109680544484ad81d0151b976d498fee7187069c67b8d0e3f2dda521dcab2190fff6c0369232449447598c4a68a72883ba5546906f977f78d449234a0f9b5de71330978bec425839b528ed99468aafef2189aa5172a98a7bd8fd8eac32772fd7c0bba3dc6ae42d1653f12145fec4689248abba2b04e3bf9cad1d4953201cecfbe00287b3c5768136d2d9c5c18d72890998b487ae95ff9242cee73abe3005a8ea2822f3f81468eefa9954727a90b8551d9ab482f30583ef65409af625f14ca560fb3d88514b605a5ef6239f9db665ac18a2c5591fc659fa7769434f053ef3828184a0aab41fa58bfc4c58d3edc8a84b44a86eea9e6b0ff881a783c0e941ebde941cd6b960f91dac309fad4e10b063b0f1f3349ea6869c60593d211a54518ac61314ca497942533f75ba98486e0607a4c75c9ffe6a6c29bc7c6d5ce59de70a30214ef7e66c7000cf2830ddbf3fb7867d37bdf0ddd5e8233d441dbabff03e0f66e4465782cfdb527c209e559873c98db25b2d72280ced28cf2a1c951bc98d197b81f810351130a258323b38b216fe27866063809ae96bd3dcdb01890b732776556251d173770c9a3d98e3873bec11091033cb54d27d4dc585276847d37199754ab6fffb61fbac4a5f78d05f2a7873ba3dad729685686c67a6dc51d4e9a967ae8abfe406b864970b841e943da33dd8c284f5d159d7a6120fbb0e272807af4ba7b73e7aa722e81dddbb22ba1f7fc541be455e89511918aea71368c21cdc2c0b1e2989067fde5835c92766bb6fef7908a14186c7c68ae54f4e3e19bafe8c8f56b954f77c625fb1b98bc15b515c8411312bb1ad92274c9de168bd949361df97442bba52a02df06594506222654f849d08042181557caefd6e5a360e18f37ba03386c004df2c64847feed5839eb4ea417c4e0e75b5cc3db09b069f9416662b722b8bc9a0dfff96610438bd949c7b625629cf9249da3b7ee5b550812a0e7c7b6df121d59d4289c90f659a5624122d2b47bbfa6d1cfe099a7676807b1d61db21761f06bd21fef8af069e6478b9e4db55f324747863e24f52697ca20ed6870a247ad6cfa4067ae5d6232bbf1e4127bfd0f6fa96de1f9512f8c39f76500dbfefcf318ef818bf4edc9bd677f0edea6274a3a1389bdc7bda53e5fb34fc7ef0d76f367bd1f9811b276602d0d5035de19575e8b92161907989b69e90c12bce13aee5964b33cb04587026b9c2d52e9b43598e7c05a54893e7fa3d5fe97bc5bc01eb4fb267cd4b3b6d299c55c +result: pass +shared_secret: eec9e658edcad5a8a705644ccd35aa3d785cc258666ff749bdbbafae6700f1b9 + +# Official test vector 51, seed: "450751d4401737459c6d93e6c5f2fbcc4a3af7cd7250ccf404bbb817a67bab7b4c9d0ef4570bfe25cf919da331c31d88" +private_key: a8a66e47b025073a79d8e2817c64306dfb4da1390d93060be758ac111030fc2c3bf6147c63981ce6399f31e5941f65b96c13c9b09a0ee6a08c9171ab262a400a926a628b8ccb307f9bdc7eaa06424c071bc7105637e90421eb1c8db616ceb2972ae38cae319c3b181686a9adbea05305b258a2a2a965630beb687fb2f47b9a4a770d1370781b2526ca326261cdee50ca3ee802a9d5b8e1944b67fb4db24753756b9eb4289e81f1cdb1684c00c58c9977892eb7ca78b205678a352d3a7592e3970a124c9aec88b521bc26a368db678a45682d4208b9e1b099c5cb30506371c8a44b2113931e1bc1fd88a43c91b650c312c733c913835f7118b898a27b7a4a75f927a03fd914ce627d9e156b8153584f12b753e62a7148bb83f83f474985701c6d051110cf270da672a5cc72c85f560aa7b91d99539224159466387de5d39f9254b46735a0c30ac40f2b1a180a8ee30bacbd09cb45d52a4bb8336c269a78746f6a337f44604de7b76690d23e71fa307c315c377555dce8b26a945baf1225df553f518aa453b823fb618daee2aa5cf0a60414af7cf39aefa3a2fa2944d139869ffa51dc115e2ffaa1abc7438b776a7b2a869d03b05aa0238903008372a3975c36d8d6067caa75152a0305b6614c3815a589a332a860a0d1c6ebe2ad2d68b7bfa1687242960f8b8ddfab9b3e851d4d814c94371b4c9b26c3838eadf70daa5abb4952b01a44cf5426b28b4c8c2f66bca49a21e5763501708ac050b1f8d81b4bd0c0a0e5c171372c877c31882005d65580da2b33165b87eebca160c50ee970b8e1567c9ae1132b65a6bd414117eb4d2a458520a55876f17941f38045b117ce004c299208220c16d10c70124529ac8a10980cb481d069bf0319bd990e34b31ccfe87d3252bf51c2687b234246943b248104baa9ba21015ffc92877d550f5e0148c36bca544c1b1f613afed6aad1132a91aa823b1accccc3bd43b94c47b902ceea431abc8ee15aa32c1b3da6a605b0b5b8ca905c7492a9bf137f2805133275bd3cd98cd5453943058a668456e9a334302c5872307ae5db01de5b4808d477eed39efc00335f31116653cee8f81b6f147d4dd9cccb080c2dbba75b5310c0348ff8ac88e09895422c371358b248509df2d46089a5514f919ff271cb44bb70fb61bb2ed88f6d111dd8b38e155103955836be3812bb255da8db97da862c5a2491892251280c6c9dc779124c08947251f3574d3a5998f8ac8c68881927733fa59816c6aaa629d7893a3313a327a9e2401ffa5c8436f289e167ce68f4a4d232c84c23133d4b7f9b43b7e7ac8060d9bda7d11aa648add452423d91a0c7b3702da16bfed820c0f1420a842a04759f4dd336b1858d0af93b81548f2c8cc8ef064bc554b1cc6cce84968f8bf991649b59f5ab51a6e56375716e1d3074c5849e28f961d75b6f33275819342467e69498a713caec4e78f9b6c1ca774b026703167270e14b4209a9b5353cf6949eaf5c947b458038ab9761f6bcba06785852b78b050d83d70b5c845cce62cca1d8723b472907d6c8482224f10318219c42ee848425787640636a7eeb651e2a2bb5207928a68f65a6318743bf7b43c223549590463ac38acfed84aea13a9025b2ce04e31b6f647abde39d7b1cb988c37f2ab219c67839064481c2539f7c947a5187a850f61ba075a002e4621ebc290855c9e75818e3a99da9e50522976372ea0e6e201f8cf3c49e4a86c503c38ab764b2f45bfd1718f6b5c0d2e66181045be2a2a8a1e10becb8a6bae9569f42654187a9d9b24c8214abf933063526804d0998b89c884b1055a56cae82557455f3a47c677e8e262fe9569aca0c5b1c0cbbf768302099a4cf3960f9d432a0865031e2b65ddaa43e00aae05aa39152256061021669b8f2ba6bb31045e7e539830095216a846aa39d5b16bf69e152aa227c61287137e2b29d3931c6211510ea33325b2ecd20a1bbab9d30a7ad9bf83e3058520606641dd23b092831d29022542513070c8626a42386c8177c7bc1ffe5754ef5b3a2c41f91f1463b7b068816b058da287b4ac2ad82191d061630337d296a08a02030174a219c143224b4b1aa1324feb23e7d52ccdc757929342ebcc02c9a080aaff12763894928a16c1f7830d7dcb2ebd77837d97011001d83f3512f9578efac3ce1c0a17da13b375c44ac8c32e616aef48339c19a4f379c216feb9672c20d78262fa99887f92324bf667502517cd42b340b51ac0d0c71c2ca5d357554eed04c1206baee66707b10bf52a424fc7567ca023b605a0e160aba5be5aff753983b19938205188fb87a867b6cea58112a3323c2ec23a92a1c16b48f8cc7bc55c5b18a33b67580cd9383275e7b53d053aed3f41f1a74859f3536a3c07832d4b64d6a9bd591c4a1901c46490efd73c9aaec1466528bfda0af55fb7a28f4af2c332de8024f87567e1ef87dbf3061ad29490c658b8367b0b911ba3c3c91e48189c8bb1cf3a229146cb537958bc1b427add62348ba0b54718753acb2ec3a0783c58c8b6b1023580a3417cc08745feb9b3f19397fda09002cb019be30a8d3781c936847d5c7c5a8e9a7b5d8c18bc5877ed4a8d787a7b11a0464440da596a4250308398aa9cd482e0f685703058987b63e21c530b3b5367654bc30b86fe6f0645e328714fbcc0f666bb8eb28d7279339f622cb89b813c72dcf5944ecf68e4ce422744abe30261ed3e127118cbdc1d224e538b48d441359d673470978bd4b5913b6cf557760389b3f6991344d4b622c7a332239a50626ce553a6e0677bdeea96a3efa72931b6921a23be5cbba9f51166be80a542b5f341866f78225d50a608e95bdbaf02a599b7a2441537f5124b0d5150a19a7de9ac2de2460b80884512c970e7c700aa259982bbda59773c415844b272dc45807f9d641c9443717c61bf9fa9201568868655e0f791910b5077cb77a93e40b85211f9953014d953fd3f8780189840af9ae60da1fc6c48d19d88dfc689a8421c28f569bfc5184ed6a66a50202bcb51425202b6428187f0c7a92d2ad1e7a35d3bc7f7d7664cfe9765d217f766a3c068149964b7c9bdb328a7821a9646ad53a8bded2912c3c714ec81190c966c703a5b9b6bc74c89e2e0635d614624c5371efc4099c00576d05aa5552b862455fd14641e1e80f4b468cfca6cc37e032079617c6cc3c7cc68bc8fbb3329c9e28c1caa811cd6b8bcde9ab6ddfcc98f9534f3d7aaff2a508b3237070c39e22b43a424b2af4ea59c9920d24d6cda3885cad8cbc7a2e3b82554fefde1a383c558139f9e1808c824829ab0e51634cb33a2bc3fc22ff47b58d7879d703bdd661ad3c290a6d812485ef0ce8fff48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 +ciphertext: 82948c08334a2c9684b91b4a759a0091481dc5a3c3b19a22688040bdddd36248e8b41a96790d155324a2bd4bcb600cdc60f64868ef7bbdcab3fd549f0fe04cdc8197314e6d688ad7ca05a492f95ed47bc2c79b2e547b77b2f403876c0063b8c6e0f7a613e2168a8b51585396fdcf250d7846c89ee8d4bafb1a81b1d797f10be40042339e57576f3be7f2540d31878f6c4155cdcefc60730eac27a83ba6945c38f1871ee0bdf60ce96f0b2098d1a0ce84881c4850c3dcdd81f14d87fb8e5723eec26966729b90445fb728b52d63c7378b976f781471b7ee614cc3dda55e4dfbf44dec1c772f559aff3baab16c7e333c6a573517ddfdc3f2741c144cfa3dec335d662d614340d19b2b8899453ebd208fec0a529112d5b71208336b2a327ee41af51309dab4e2bf4ce56542ab15b6f502c0cc61b0b7cda523dc6c4f85501ad788f2ce37aa3c26ccb6b9655026569ebdbea550dab8275d6acfe5fdaba77968235d81a9622c53233927b22d320edcaccad05f5c48ba398e298d77fd1f25983fd5625776d5ba3e3090c53f9e2a793f7873eb9eea54fc4075034a126a2e1124a4f843017f44401f10af382db6e67373850cb36b6ae5db7beb3db7ee690b998d7ed5c4c9eb9307f2916c3dc303e8e21d5b313f943d06842c41921e559e496a996391cf4cb1029ea5a9ddeeda82760764a37a04399de11265ae3ebf64b04c52a9581002a0b7caa34793c51ff74a18ff8c34ac83d97ce45530ad85e3716668c4fdde7715c5fb5f6806c64d353c8a2659d993f87f74b70021f95f06c50e155f7c5015d9cd6be713d758d6c7bc186a5f9299f3d8dcb280af932a0f90d152985824a809cde764d648314ad108f9de2e9006e6757fde0517bf72b7a8b81b2e79e4538de724b878cf385c4fa599bfcb984191053e497b83dd6d2b3c364edab43ca296a490314ad86795547872b64b58d2b57e4c39851892e3641b3316fff304257349389d5429a7611c606fc0552cf62e434a619d521296dfa66d368b3a0d17fdfd4b7d8c796b3e2d3338dfb3ab19ed43bd8011cb1d279eccd6cb39b4a3c63a7484e73215086c21d7f2965ec89d496ff6dc79378e6db7c678c2c829c68e7890172c5a0c9f63a5197c65546315896780cc92986b901594905933e9c777e041c94d5f0f5c53625d5aa00c99a0675d58d3f7ead5a866b850a93ab9b91222644fdd9caf14627fdf088f2b252274a44cd9e606fdc5d68bcb4a56667c84b2d8f1f4f51b20e5f9661a7cb19896bddf395bbfa6047e958653598df20d0bcb2182b6c9ea4406a37b2b6dad5447579981b5dcc0606d84398e79e8852e9424689bcf40adb811fd60bae45284e3c15aff38af28e018efefcfa8cad3e072f8fab8e1b31574bb807d31eb88c64000418f68884aa86f5469131bb78c897c9da19fa172f388e74eade31d4d234e84512d5b7ee239625b5f440f1065116c8f5d40e99c1c9ff8dc101d2741e1b8b857cbb98359b1269b738837cf5ea7b84bd790216213193dec928ba234256fe20b87b4 +result: pass +shared_secret: d5c5e6657d310b0ccef250c9664a02c846ecb241f2404ca851d8219f93cb0d27 + +# Official test vector 52, seed: "5de720f2d152bf4e1f96a61e7ae5f1bed6b8548e32638c2ccec9f43b87d1bb43dfcf334f0582984d27e440d519ab662f" +private_key: a3854bbdf04e2f617b377ba9d5c1652f27b377bc73f4828fd485afb4c2a7ef05a02b1a1f06a707d68799ba1094f1208e52c9c44ec15580c6599cb244cd2617714c7ea5b07648f91d2230bf35a6910371289dbb7a6329436c4ba502c83633b64f99cc16f6c641ff62254c65511584cbe208a080495762eab49d57253063a50fb45f61544d6ad39a4a0003c4e05d193a59efa80949e1400643962e896c0c9a0c2af30e586c0821388292768538137195009d907853aab7459925498cca238419977c36bbfd326acb9832afd3b46d934255a10a0aa0932a7abff1402da645c0d2cba5d03abc21e0c09f9ca9f28032207a707b21619f7521b9a228386c29a89c53c38b8bd2db9fa4fbabd79421551b6f4e1c489c0a3692e695c73b6f04bbb2be72516ebb523ad794e9101b4cc6b7b16c5f7c2a8e41aabcdddb3f070a5de22a52b80165b3c6872f279ff87ba6eea982bb741a768640d70797724841699c45ab10a522b74c53e55a8a8968afd6ba69bb39eb4489e47343f807424ebb8b4ac8097f43b2bab8cc37990ca185a19c9c6b28dbbdb7822517670ca050ba28d724176a7a3e887bb47bc4dd648b41cbc6b52656405ca5f4e7cb06e64477b2806fa3b52afb3533034cf4772e4a383563aa5a057a6738338f92d9070ec94ab05489e278bc6688a98c2ab7a18ab86397631751c47df75ba27a801497517845b99c0b692afb31c95a78f96267cbec760743cf92140f1ed46f1cd5840d13ce1df028238c941c6044511592d2520188e86690707092eabbe9505cfba46b710b642ff2a87fe7a3d5431773378e5efb378e627058000b4921ab6e6368677492b2eb2ee219ce2e6633286b73863451ca01cbcfa570b806b5d2d5a2fc237c44d0a84c0ac097b8b299446c63a47f2c93a87c95c4b02a3d160bce70125c9073ca35f663e0ec64a189565460b8da009778a8324de7211d072522476418a6c33c17046177359f9bbe5fe72d2ca483bab4bcc05440fcfa67c17c326331b65a04acf68c1ae870208f41c66057c3483c8b2870a3308bb90a5ca085ea8c15891a39a0ac3b09297c99320568504b4284a035be76380e368018394a66be5b2f45dc3ddbe6179ad60860123d55b28d270ba24cc0a49aa5a30bca256d7148ef466b468c06ccc8c2ce439e75953c07013999ab77532b13c9e477905997ffa42f6b28c90f9471ff6b2477e7b311b34c89277803747257791a7325cee25246f656cbf57391037a3e90d74729b16b1a5175eca2871ebc7e4994b3759089e215933144909991550cd812f8f29658852ec11b3b604aa07e47c5db88c98143467ab358db51b5372124af9c983e542e74ba6f273943a646065e603f11395d92ca09f1771adc29c6bc202a9ac159ef356d3934a3a9c073ad459e1de4bb1d81ba30143302013d7043776db346d2239dcc81305386628a2c1b364ccc606804604669ada153ce5a7e6367838a6cbc8971ca750342170509e4124c09846314185387ec47a501a0c5243adb14c39c1105938292f09aa117a5bfb4649f8705696097466f25b32c4a382c877d82d31abdd6b364b936f617b532b29c837a375846bc44635c8d55a5e5dbb44315090602830ad70b50a1cfb92723d9f945a651693bcbb0c7a385928129f004263fa16bef92ae400780966a8ae8750e574947cf6a607fa4b3d252c77cd9925ff3a89e762378ebabe4c413af52cf969068d86acb44683222f93bc50bc8f7058def77a3241173222359d25c3a87c817461210c6e4c30d4a428bea8b2d459c4d9c71594c597fb9c3bd17598afa098329bdd15b1c23222f0f39189fa06319bbac7d6866ed7953a2c933b3479235790942d6146a818edfd64227e78bb47168709bc5e490291234929206a3fa1c2ec9359888641d61897927f0440929294439095db0244a05c20f9678b69ca13268622d174a915a210b8908328b162454c1c0c3c36b8acfe4ba2c38e0279ac15898f393f01468eb23a8db1567ede8b493608d3194b2f2f82e91e739479c35a59267a1c84fcc5a1ac12289b3e5845d0c8e9969bba50211ee716774ea03514c3b7359892bd4b8d9db4fd006af53961687e5b0d0fb9e16fcb3764b1b0271b9803019048048cab04e60119c8a140b401cc8c5f5770863b066429e71c8ac3751536dd3cbf4e775c7778c15920849d4b1c1b6ca9ac63d3de47cda549ed009b4ee7759fdd66eb5555b199022846671b1a819aa732a23e6bbd27605b1fb22b1aa71408b2e55bb651c1a676e13a8e9cba2b65b246b6683ab20820ff40eab949eb219851a7c2e1bc1a4cb7b06cf526bff6b1ecb4b5ae4d05dfec33de9504d2eaa4538dc9b9bb39b051ab7d2239ae0b98a34f55474871cf9059e9bf463dda3895e32c27a534737677e40527313ec993144841bc756e9222d756c3c22e56ceaf336e107c3aeec9b1dc71131271392b4a4436a14292aa0e24957534856e30ccff827cb3fdb31aaa086298c59ab71278885308803591513870867a018e61d2705b48210240739ade4c7100210bbbcb524966a9123aac92cd711f5da3b5b614eefdbc39bb36cddf47ecb196840ac84a6c721f1fa2f031c022844a64c4433f414a707992200b857ada964d17c6ceef31186c248adbc83ca2a528738ac567c4c8afbaf8ba57b3f42700dfb8c563b5e494c6679e69acae47a9bb14c79396bfa2593d63224e29cabdd0991101496a0380ac19b759cb0220517aded8371ce74667dc827c1141a233709fc47bd5ea6664c0b6c2182aa9a088df3c92bb5e6047c7b03bd9c4347db41efecb80fbbac90662c0d56b8f91b3f3b7b3417d592994771ec3695e94cc3ac73747f279984b7350ed9b9400201ed35b785f0629225af64b05bb5b6016ea50a8689c9ceaaa234748400db67ef9514e7ba63c683b4f5f6b35869586f0058ba7b9c4bac500a0034bce3b2bda7c5fd5c8ad37c6466a9b877278b7773ac79809222f80eef341236053ad1d0c95862796a9702fd977e820420d611c66163c5cd6c5fdabab7ec96a51bb24328617e375367ee616ecdb46089c6604909d055033d53d828c7f8cd6de0823022babcf521aaa67959c1881161620e397b0a25682cbc805a96a84bb84a9a99acfb6012e2ecc2e5bc1518036e40dbc3347caba399178ca912eb8367c86070833137d1bca5b5b3186ad23c2e76a4cc467d092102ba081494bc7f963a9a6ae575d2c57a38371be5b164adf29f392014d11522535b0173126bfb82721e153e74049c1e170144484dddc2716b4c487aa0398ee9ccd2804df58fab8e2d32ac05bf22a845cccc2997b502ed631257065214ab9afed11f00ca5c18c92c4d6b917165fd1ce6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b +ciphertext: adf7eabf19b964073c8b23ebd08c9c3224a3a1d1b9bc80310f9b817c153fedebbfe44f6426dcb32acf9fcfb9f49521cbefab676b0ba60e476e6bc18dea3fc67c6acfb042f592a557630ee0152db0add3e364044bcb910ceb0b79a4c7407dbc285a7003231a8d4e3c044a84d2baa164949369becc15e7d91384217dad6848424ee5d80b086f1612969c1ad430876d6b9a40a9cf3bff43e508cfe569c74e0611bf3b83758116f17b2ea11660ef51df4d20180c9a786594016a3c8b5f88e39fdf4981a629c2c3f6ecdb521a5d1556e8ddaeefd1d1db2fe5a4787356a949ef652e84ee7c447fc020e8d8fdc42dea77607247fcb55d20f1ed3271adea64165a07279b077599be443f4db254cb8ec45b21010935b543401abf91a50570bf3bbd7f94c0e3b6579e6d8b1f34520de7cb471de174fcb3c1e6380cf7156db6aa4fa483a96297842342dea8c5d0e421958942e5d4b9d9a6867c104b5f21aa6f02398cc1db26304f2bf29c124e3d5c473b5f4b2ad79a092e35e00f7ab04f4f42605d2a8632432183c24f65df8f5fec2a27a7b65cf7f2705aa9f6c4acede1f407f4fc822b60ba72f81028e4a175683796f5cd7ab11bf95ec66002670a8a01564e276b83d0ba30ec9739e917dff07478c65b931d839cd560d3756c1adcd0ddd29af90a5887f126c6bb0a27ca5c8f2c131eb7f57b876a8fd38b53ee7b3aaee459c2cf10fef41e9c853950cedf0343c044392a4b1ec58335abe2a216466e213618f36b58e1529415ad8dcefe7eca63911bfba0a27e74af1b586e52ce4f1efbe58e46259bd6a82239e58208660889c533f905a7ce54f94a97c10bd85a8a30ab219040261f4abe3c47c2b356e704a626d51c316b5ec7a180bcb41c8ea3bf3bbb846a90672571848ffb6811869f15b3317fe836436f8d758eb0393a277e4888ff85fb94b878bd54717fcfd696772bb815781e0f39eb57ffdce6abbc4df932e9d4abf64cd6ee9619aed5b4660d705fd21338bb665683c69a0bd84e7127b5816b69655e661f00095bab6259d335500881536b4bfbe84fe75cd203a7cfc595df1fad1d2a93858f98c8eceec2c1b20dde8e0dc33f98e80636e1da8945e617a47339527acd51110e74bd90148d9d3772902b879ed70d89a0370e884f38fe73aa2d51088f384c5ad2786c2eb9a9cf1965438e9d15363fc1d4cd1c850af641cc8083c95687f38caa5b631591d26a753e8413d779cf83d254180ff636207b242f9ea9c9e2c73305bb1573dc463c526ee6305d9f1b45d95a7d0ecb917eb9ded46fa43884d1f50553b4edf08c02734cf289e86649d524d5abeaa8f5b3562e80c87658dd91e66e7e55502de100be9c66bc2275c40d9ea2fc160d6178b6526dd663f798c10cf7357d8df32f75a8a6d70e46bd5d5dcdb52aa72a1be365d85986f5029b18b15bd1bbb413b8ab84ebd87aa309fcceb6e30992e5983327c033556028d974ffb076759825dcb98d20686107c72d333d0205b201b31f2963c0f762079d6358518e9e2f19351edaa5d5b426c0 +result: pass +shared_secret: f62460025ebbb273f00207758a1215c3a8053d2ac66cee11c6760aeef7e35d24 + +# Official test vector 53, seed: "d71729dcbb27d7cb39e9e905025d3e55c8602efbcc483c9b866ebf82326157833169243c14550ad728bd1470f39c642e" +private_key: f1cbc95bf8705ee2aea2832134f8b633a20a3f3b6a82a2cc688728de320944ca5e74b42744e4b2bfd860ad6920f671c4ace706ce8903e0eb9f434364d1c09aa3f81303b195e704375adc01242907f12173077384493049a136821ca239c7889fee120aa015813f987611101bbba9115a026c3766264374ac28b0c9c422b844889df150caf94409fbe61f08daa4dc4b6bc3e0c866f82145fb813dc88bee809177b13c2db2ce1c3b8e8c93c8cb86aeff1383adf0afaf5600bfdb178fcb56c899569bd497ae05186f19cd9e6baba7cac85f6317792bc6da6c6222da77b100595e84a2c9a9b9d9b131c9a0514e9c8c59c3b1a12637fff8353d468239358834d11bb0fb0cf6f37a461132f8bb5559b26eb03c0e36872399ca6e5b18a05aeb934516a484116ccd72bf780379d82c396ad39eba5b48dda856e0c82f7b9c4ccc36b20054cf5d1b2f0ea00333527c6e6977a775aa2d58b180609ce57346f9e8a2b686b7d85cb4c58a2bb938b26dbbc6ccd685a6e309838c9fe2e335b74462c2f7c521490ea527af3dbc91034c74e3e94a69e42ffc290920d64f4d662ff436345c06c242749ab140121ae330f254478d851d5f34048c2ab65c8460e8020499c33b4cb9851985817c62282dd49da96064fb2881e18697696960d9a52f409a2e3136368c0c5146ac3ed3b4aa580c143ba22ea9255397203e95c4416161447698bdd6dc462fa5cbfce3933a3cc26b2ccd5295c3e3b30429493244f63b811640f2111e86b54146d59b2e761c793b4920939c88a0cd12c882ef8192fac7bf2af22c08580bb4e20226ab02428731b72a81cdfb654ef9286b73713ecb2c90341e78a8b0d6699f59230b298a658648109b003840a2424aca7d30d7c15d3704fb88c6f66592a04ab803e83eeeb4294b2bb5c6f957b65a6aa8c88a88f5337411404ac7cc76857aeb3ac07ef32d8bf0402cd135969669e2743ce7f8060cb06be964991e797923bb291cac6e78a8c55c65a85d402e2184491e474814086824836405629f0e68cd2f86691df301f00ba2ed971fda2222e1322101130ff1f1a2d870280dac8cb98a29f93870047915146aa8a486afc16cb4d01458edd0b4d5b027fe2a6c4a884ee93a495a5c15af938e5b37aafe655ec6220c0d88557801890e6805c80a3b5e0c395548a19f404a4a6286e041a95506be194a7ab1d7ac21f52932bb3b5f5393e5d5173d2c7c8653b9433344af489f7102199523bb401cc75d80c8ce1162a69627e3a743b3201534c9bc21243961f7011731c1a3e01fa3847cc08ba7d1970e2e70b3f0c4349e707b40bb9c4b5519b8642334a97574529fde05927b25b8c13bae1e456b87d90087551d0c2918a3658e9a9b7dfc105ad9f0cc7a180bd0d0aa5042702afa02fe67801137a1faba5813f2bbcec3b05b1aca701385e159031fe9043199b07ae02682a0861812749294bdd42b6d09330248fb52fee84e98b68b49830508197a06caadb913295095108f2ab2b4854fdbc44742c673d0f55626e726d0ba68ab3508b7304d767b7f868676ddb33c917ba37b5b0c8a831756383235b81e872114278c2ffb29668df706b38153bf7b39a388b9cfb38066177b0695a511b0c9e6c709cf0cad698035eda89cff189f730a05dabb3254297561072317010327d4222de388a7e95d8d0076665061705209d59984540471fc61032904b13dac27d520a2b7cb653a68a46623316557500cf4bb6f71ac9b5ca17d45331ff06507d5732829af25417defe7aca7364d99041448328f57d94f1af2572f7468da3b9f2e432064144f0396c1a8d95ce9951530a3b33b092d67590b307944095c50c30762435b76a5dcb3af494a5b112fee2567664a376f3b30c32172059631318821de71ad62b0227d9a91530a5ef2e6c2ecf925fb95302598b722a991e989a1fd198836fb340fe44849ca144545a5a14b46f464078529bb6dac09d148949e91cb0d7912f8701d84aa48ddacbc1aab0a4eb63f9ba41465f03f1bf4b4285cab3e315acd8a3f79c465d1d31fb50670423b278f042442e2b5797483f5a2bd21e83248e3039626006d7124a324281545b8c4356396f413a1fa67577c5d15c638b7d23199aa5343473dd5b45b66f41d451358f74b82a3c18627a60c08513d34e14e3f2a4b13d7332fd8014ff817077b7ee2db80a9c00eb1da79c2193201996036d214ee7b238d82afc2e3a226159ac05240e6683ad00a55a006190a279e116626b4f70fe345594d21a8d54b9017a76d6e2a61b9585bd5e378875ca26ac071d6b1546ee99d716cb8587b7a4e184c8119cb3150611389a8ca0bcd1ab6a7107942769cce08c00174a19305d438a7a475f2a29b28d230a016479f8aa8da24273c15094d3c0e10a8a0f0d3344169b81ca508e6cb662a4ba28c8693b9a27bd46a35acbc27a6b7cf30292064b4aef36bb29909af11d8924ee59af80b5871c2bdf0c53830a360688ab31a94cda3b12c0f61ce341bc0566ca6ad1cae54989aa3083707ea74680ac1fcb254fe3866bc9c7fc33189d3f4299a8a0a985ba3fbd51fbaa45d26aa352eaa710826aab8f600ff8a9554c842657a3cd2d6588f42063e9c08e9955ab7f3ca032b440c7889595a3454025853ba4070f1cd09dc26392b2657c526052373eac80c920c58c3a24827456be174842ed722487c64373b2457836f13c4065dd7b555f3914567cd87426e1196bb03c08c7a77c77d586f18e9603f45b1b9675bc62a4e71f215c3d7071729b0a8e9069f35ab73e55948f9c3e766c4f150394716b198721676495416e54841908cf60148a7104a4df00f21a10fcf508ae9438ba162291e5245afca757ca88ed577057f543921f670b262a0022a4ea4044318a4b1af8a99cdac8e1e550b732157e8ea9194970f786665c817299a7914b4c0b3394a57adb179bd3067897421a09410a34c658daabe6250047bf15b76f826bd371f0c504a2cf9106eca67816a4865b60a87d48ef4753f90132663fb26a5fa08c59394b6770ab13081aa200c79a6802ee826396cc9b3ea9cbfb482d601952752758cb7cd18605a9336735ea2322bc82b7bca773be27f17bb8726a8cfa9070b9aa6a77cdc0b64081cbfbab45c4314f855a953231c6fb6149bab90707b87239c2f7c7103bb9b2532180bc1f16670d90b7b77c6028c4d4bf92195ea54bee1150c25cc363c57f812a0754c9bf66470ad820e12133ebf44810b7318d2a79e5eb98c17c40b0ee10179f1b5b6870f26d27ebfb588f3a0d02e10a041ab4e3b97c35070f0da64f7e0e7076ae69b2ab51a956cfd04f889560d4e598328f6302a9762bda2b0f29fa8ee34fe48dc4847810fc6f44cc1985a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 +ciphertext: e7a99c20e70cc337043c1fb4b4652347b827093a693543f2b31c03c52fdd4a2375f5a66055969e0754920a298b5335298e585c0e5831869e8714ab1b0f0d8a2dbc97d79bae54357dbcb5858bb60f55c1c739b63cfa0b57e6feb3213b5a90ba8aa94e1acf57b3fde306a854b28bacbdeae3b0610eb3d9595389fb2e29288586b39c6cd6cda86845241ded3e227792bca133a7f6b6bd2e03f5a215c63f0c682481a294b92b984ad8bf63dcf25f20dd344afcff545d8c89ea41ee0929095dea72aa2c007280eb9e12e8f7df68f43cd1392af717f01cbca7059637c7a5b869a5b3f26b1914ca8d12693c5b452c77c7ab8490ceb84a36066d26a84437fab7822512186d6069ddb363ccc3a66091a6c438667d6e423eb785b37be24c0b82524ed9fb67ed990311b010cbe63c51f6b0046c054bae7001439e4543d25511e9ae5b05f9fa0868ca7241322800e6ab6541e228fe2c4403863dcdf99bf3f01c117ffbdb4093c3fd4057f38752e878273a75567b5d8d7d23e62b7c9e478b12d8e0b910ed1c67377ec04496961892723109034b45dcac6e6d86128c1e6f7b92c45b695431406420ef8081534533182306daded5a36f9243e069914feb94fd4e21997c7eb259c4faa30d90e28bc81a2ee5033b54d1304046d8f110ea7e4008b4bdbd06c4b3031972164e9602e83143fd0640e51229f8243124ee1420d0895e30e19f4445553d236b48e65ba5f51a60a54d582e78b2b79a8f62dcdad61f33853d990ffa97f7e9e5f6a1882ea1c97efccb8c24737f897862eab1ad1be87bc7754cc69806cf53a123be63d6f08cd1251388fba7511e8457d8ba0c41410970706948cd42a73c534ec4141d408339411b480c21e60e06c4376fd0d818a287b9b2e235f7d86100aab7f3874af278561e7cbaaa269417fafb4ceeb0b0d08260db01e0b346e8e048a35508f4d888fc39d7250198c383258b735ef44c4951eb02cfa0e70d72468974a25a93858af6926c1c63f3ebbf279b8044279a4476d5fc6b190fd85d581138306b1340423bf70af7227698b740c5e106828591570269bd549cb6730674394f56e56474b76930e117dd16816c79923c31c1be831256ea63b91a4c0966bc15ff4e0abb910d088f4c5c6418c356eb076740f8d3a114584b61a52608129ba0f956e2038e9c1fb1d69f1757522c45111e26449b0f55407d09e51d50635ea272b18d029632bfed44272347b5d3c99b077ee34ef4f1c21104d9341c44aa1607eefa47d39b6af568f1615410558dcae8b7d546e0dfe88fca027d4f2bd6f249c5ec9b222a90edbf0914dafe124a56861329d09f567f8ddd477d8d73fa74119da2a40bd27a317bfc9ee8d0f2892cd201c55615466a68a16d9e39c107f053600618423a9a66e9d6acfb310c327780c47f72f45e09d27099ba53d4997aa14b5111bda61d5692dd9f73aaac26f07b590662dc5c99f6f4bb994861003dbf2d48b90da8860b911978b16098fd6cd7eefc4eeb90791486f2b4bb36023f1538cebcf9798a8ed2cd31758928 +result: pass +shared_secret: 74efee46e7b26f5022416ae9bf4a52a3940966b37fab0c3ee2e8fbb24ded6bf8 + +# Official test vector 54, seed: "a7c2c8edb3601396beb2df0657ec82fd5780a2723581a9e03dee1cdb018440439bb1142cab0487c5d136e9af46338ab7" +private_key: 61d034b4827c4405b4ce0226038c1e98f42cb587123ec8a44454c38d4407d5fbad7068c373ec34f303a6c4272990957c5803536618bf07418a9397ca03a81eb4490762da41aa5731a8b795e077ca1da336279132d785b9816819f58cad7804bbafa32fc501a5f68981c48b4e06a7088c2784e917b0645cc28116904eebc3417c525cc312a3102db9d97cee85827a1775751ca137e117a217a6fcb4546d946ced119c6b1c45a2282415e9c11d6cb18d22616be6917a38878281bade6241410a42047c156d0c6fc5dc8060d9046fa658727b8e4e045548a5909a9c7139391e058722c7969b0b48c737b3a092082bff215e98d8ae1b09b50c25176b2764bd414d84c57ec41a4b8c04c82eb22a2e52ad200a6e127968c844c8887c014ac99ba8f54067621601121de01c8f5b923fe089584ae181fe8cc353f12390c565332a7bd8953f97e75b2deb83fe53b3aaeb9f4a02ada9401fb339c9bbf09bc6b826d9d0a1ca5a563a8213b8858e91050994472dd9f1c81c831d8096b72f360a65e194c5b758b37528808b9b48a65c9a04b34ccabea12cac24599f2c366646581366b71ac7724f01d833a5e76126617bf7630886e44dede81bbbb44de625bd89e41ae0e28bf897202439c346a438b1a8b518698af80418548664ae3699efb8271e7c2ee995731d7309bedb87c2572a6b805f46654a92d188ce661b9e197203113446cc5fabe73a35b97cb417297988cd02cb8b3e0498130341dff42a85281f667abcebf576fa266f44b2368c926385cbbde21621094c492607cf58227c2a12a8ed79c6a726a7cad81b7e9a50d78417619ab575a3c54bc77f5a80206967029ab92db447b0914168d8b37be0438037e2bb3eeb95221a8db95b07fb252044760832513bb0a7032e493ed529267c278dce0b8d954b4ff0bb62785c6d24328addf3608c50c0b9eb5e3bc685fe198be984735764bea637b4f8a149bcf356d8a57d21b426b736cc8e9b396ac1577f41291f433cbfa04697180f623a6564c8c1f9723896437fe216715a30820db78f7f0a78ad2ac034f701ec129c95dc49d8eb3b7a585aa00046876a7456278bc4a617cf9b8f06e89af742c14de2a7516c65c83bc53c3335df6c00c0b344f79635f232420ec893d9e29a36986defa37403354624607e343b82660b3597eba841b250a15574b009716b4812d5b175b88929d3539e3fa97b3a16644fe6bac74c67db2832a9e8807eb9745ed0afc0025ee199b39ee3954a112ba484b3528838a4605ec659a046b1722da037f9e2b007c895217927d9aa8514ac263a08cde86720cdc012fcc84f7a089ca7c51f4ed71d7c1379fd34c713cb65ce3410214385dd6c91ca1b74a3b24bcd45b5ca097a02359a70008adb82921f7a79b30a8689053f0340453e6b9979c8c522f606eb4c72a30970c09562d9fb00899c2127311ab57653b5833035aab95c61c50680592db86718bc6a5393a96c07907748be2a9c2c2324cb1247876b9c3a53fc2340e32abe72b39ee59e284a62dac56964c721c3d305125a22a94b2b981a5f16f7ceb6a72007c92ee110362dda1deeb28d26c5a5ddb58b4b665f1aabc8a90628abb65e5769194ee98f61ebc4835775efc50cd5136a4981b339e1a1368287fc699e4d50bab5ba45320968fb7cbfb358c92e2564944571591211b510a5b044663ffc7deac3546a8aa060537bf36229bacb4c5d918726b5ae7dfaa45f153f329140106a80b3c54eaf273384dc8e47f58e68621f3be905ace09a76ec9839ac471f9404c196587cc95d90166a247029aae0802ae3cf6983355b330bc9c6a4748a6130aa510ca1afdb876ad0d7b2653c3c88079e14d7898ee482f34651b7a238f3f07bdb4989740861d358384a4863c39b8912259bd78653386801d2450cabb6bb7fc287c74b2cb24c5688b66f7952c289eaa5051b938fc833f343c273652e4a1a6ee6c35c8c8131ebb63c82d38046b41343fc0fc660168931c899088c92db171f75b1f691577e09ce56435ab060c8fc084068133cb67cbb0fd36a73d8a21200623ef324256b99b0f60841ba9cda515f62a978881318fda87c95664e4a5755c72026369813dc90c8d6c18f48d61c10e49a7e9449f95492f0e4ae14f6969b654fd39bbac79c7e0b507559d5137d2179b59b21dc60679cf1b455b94208d87514c008898a95747ca9b530164743a6f9f1878f7badff6a4b2023ca367944f288a399c52648f834c28014b0f921ef04127ff4ac656196c034c0db9a7e8ca64109b904b2427fc601732c12241cc32589790e3bb71d924c184edb521d3b090a90ce0b296365ec6911341ad4d8cc7c136c87469f1ff101faf3488f89b52e98b920a659375125b48c403b4ba3175bbc6cc5a2ccc206dcca0440d54c6dac74ce4674e46444dfb4b5070926074c089c28c5cb11cd4c9c715af34aac79644cf2ad471213889c5e7ba92d114150233c673e505376f21dbc999997f43ff9c3b0f8f1b3dec09a4ca3ac581b9192984e43999f0d34aaf32218b02c8aa2f21c579457f204bd18191811e7bd6e4aacca5aa7c6f41fdd192bcd24760a2243034021b192575bf811e1344a25e1629b019564c39b09c88ef9b1ce6761066030bab14ac202bb6a8d858c3fd316c4fa81d21904ae691f6fe7931dbc93afc09f18f3b278e4c453ab5081372c093a9a38ea1622379f56397ec6c47cb7067fef7225c952c262792dda68135e45c3c6cbad23593ffde806fecac55d682fb23839b37186d4a40b83641d9214b7e0490e305807745534de18b9d4bc5eea755cc117b68b7a30f76a9458708249f02dfd59691f0b720f257f1f96cfcc3573c5696ea33017af14a843b81ea58821db21b73a9b80ca187685dac1f8735ea219cd01c6688f5bcaf4611fb3b58ad65b8d7c8ba4ab950bcad9b23d5b2d0b718397e111feb25f1739ccdbdc5c41d943e977aff5209134722dd3d54b923b511661127b284ae9ba0c27f05aacb20181602d9bfb32c3e255e7f48735bab94e515529a9591d51be015a009a9094591c7e07a13c57e636b6e11cf4835a8180895a6581507805a1c7a39ab05633798aebcaae89e37d8d75b4f34c73c2184ffb567069f0b3911943c2060f34f10f835c8233a34b5618501aa36ebf678dae07af9a567ac7143567c92a89a94a0a4abde383706ccc3826a83dfab8ae7165c6c6555bc77a43b5b3b2b590c56ce25e792796283737c6f5b300a0cf06e0060e1634a434793383860d84a76807c2983c57522fe3f988486bc386cb335ab55689d6b449b7a38dbce911f512e4f148aa1567878025deeed7dab8e62d43c3d2096e4682692537c70ebab9e1561cba88b05ec0b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 +ciphertext: 4d85b317eb5e6bfa5ef78c31fc794d40b33fb3f1bdfa125bc5372bf84c6485f60b0e4be11cc54a2b204c1e2f67820089ce68f5eb96ce78361612f2b08316c15c609dd8dbb0f30b4c25983410a9e144c7486f348036949a892057eb4e29e23a7ad87eb5219d5a684e116f34af7fc3b5e37e76d4801ed34f066117622cc9944468109173b105805c3520de565298b2cbb47dd0343faa575d26889c032b7a53bc0a9f0c90ecce39eec6b4730c370ec58d959091d06472279262b07129610e549da8a4fbbf7dfcd5fceb985e7c27a15e78d1228222ceace2072d10b774f5c07785e9975131eef0c0abd43b98fb34502247cd7cf239978224a1a805e60926641bb20adc9a94efd26be6853eff0edc12228106ed7a58fdb150cba5ea1b68fcd58f8e65781f2b5825b0c8093183f7f6f92b438c5d7e4cae70a6cc9fb9a184ce0f254dc84141b80f5d1d2ec7f2442f49d66efabad3bdeaf4dfbccc4c36e1b4118b42ddd66d692cfa64149e1cc204635c152a8ce0020a5ef8c7032da13880e8fd4297cc107c84a1fa6674049c4c1b25a4bc8996420ccb7479eef4f5a6b7b3320b0e798e2f36db5a2be278b430ba1baddceadaab67faf9cdff46b59b3f1b37257a63462abfe731b5f6ab7a59d3028a9efd88f93fbf50f108e2a1f42a2681fd1feed062a512c3510024db9f0e9bc4e110a2642f15d84a0e0016727c837d0a5ddb357a4f3ad9a926997ae405fe1284ddff6901205440b2d675625e1bd23d8d11b9e9ac03c5eb97585b995579581df5a6c69a06f6d9e09db3a356f4227ccd069366a6030d74508a20e936ee586caa9d649fddd1c29c02ae0488ab6309f7a25cc81f246871cdbce087d7e01b2fc1274800e6ba4a263f29c9563691bada0441202a7b065704f6aba0d91c5c9d4b53ace1ef361c39ed34bb94aaa815eae25d4952a0fa45308d871ea49fc8c1ebc5b6a0a93c31dabf41d5f3097a785143839b01e218495c1d075183f35181319793254b56c29e3f02a4f220852316f53e418a6aefe8d0dcd0fcd601627f09a39a0f0ed8359a4482356f7050c09da53f2b74e003d7c2e7054353847f772fd9edfd5f2565796e128a6926f3f053d2cb146eb8871a05a1b9161cca78559f1712bb9e004f0924c1fe51973e7153050592363a93ad12947ebc73050fd849407282360d876351133f4d37e7b5fb51baf97b9ba9cae783468558ad51717656687947684bb61b9faa87519eaaeeec7a637a1fc93cf63da5b2f6d53fe878b2543fcd215be1609142e3b23c51099dd488ffd3b0ad68302127ba97d062f9887276ce45df63d99f494b5fb22c467b674954a0c68bc85cd053af86cd1704e258eba6ba7812cb2b9c9a1cfabe67d52b7f9115773d3c4e3afba0fb4bf7b9eff6f220cd2a03d4cc7c5c9202fb4d80ffb78aaa8cdaa1d8b0a603bac25afabc0502a455005eccb3c24e2b4b05ce8e29ba69f52b3741679c359d62a1f4dfe424c8e77a5e7bbd5de5499d7763a9a709d828e6c0b144828a88ad4d6c5f724f7b3fa1ba80ba6e +result: pass +shared_secret: 92fd1bb6ea9f1a0a195b3ca29e457f4b3f401fb4521842196d9471f50f5c7249 + +# Official test vector 55, seed: "467f6158cb86b724039ff18c47950ae5c49170163c910fc9a9b30141f86e9c06ebcec91497bcd156d95758c9f0c6ef91" +private_key: fa9abdc750b445e2973d9c85b0599a6310583b93c146a61256592258e79664f8a22558cdf55c2ca0240d5b1425b6d6177956afedc12885e12714982872ca17eef52085dc965de960b29972f5828d3410506e34bc54bb2dda3c6a54b5aaa89466cd44afe56388c21b0fd19b744020cf83779359097c3e3086a904376b56814a454935bb53289c1cc4d08198fa6797149c74da0d21f99177093de6dcb8b5579a9641ceaedc74ab8c3e91f2804bfcb94eac1245b53e27bb5907219bbc6b7f61ab3a35a11c3cda544dac262b4289a4a930283b56d5779ee14c62f3a89308f1120e3b34ef87087e0c0ed6b55280031927682870e09db8800467fc82602b95d1f16d680562a2b866380a411546475d1a529db537c1f2b3e3f393c1919d6fb97877297cf2ab346273478afa7ee1044bf4d3353374051e0a4ed2364587e0694920a6cd6abef9f68d00b16c7b2a53d64bbb0645098ba1a9745a15323b2bebd956942090ef2381f8fb747f5964b4ea9a57b22659635dce7c55ff10b7d1c3a76687334542315a05a0931a9a5da734f6b647de025e05e480b5a27fde1116fe03630fdc074f542ab358341ba08fcb79b48cf4273b46c54219c16bc7943887cf451b1fe224bcff9121098a75b2d9b35e71ba2bd94f106800dac689d6002df6ab6528876c39a74d63dc41490077cb94cb243947205841f8b698cc214bc9b2442ab418d7f4a7bec2a793fc6975268a4cb66f304bc7cc142a81f057501c75baf9b3a5f94935b3991c228aa52266ec289ca3333d35dbaf59aab37d659423bc9953656317f48f025076240b15fd145e86db6ea8758b9b265ccab860cf5268aa627c02ab245f466923b91db6a240d1731642229f22946be1ec538a86b7df1a1f4801791ddc487c6acd7fbcbf9f457eedc81cf0a03ca0c15e4524748ff08b7ba020e1c6a4e8e573a6d9c996842f8122bd876c4f6b193f22a68af9111f302b895d2624f992aaff265c996171889661897856b963c92061c4c1db767ecc725056b473753ad6b9046afc82c60a8d7000ccb18b7a3831933eeb9eb02c76e379a5b326c72b0647addc393a6676e6b948bc465578e9b4ccd670bb31a39c5b1aa52c6737433e930b0c2db239ff2a55d8eb649b4aa69b56987e0273d8829db39ac057f89194186dce30b1b20b17f5592c5737cd12ec38bbd228dbf7863ceccffe9587bd485090e45d84c298f811af1925b37a4ace9c751451e326ece073c1503f54984e910ba12fc79f502391784b1bb3b41211e654655868a8d2b5aa4920b9fb2ee7605bd7e8a3aa668f9721212a860dd762113efc1e1ba93a4a10cae185bdf9c80c06ea30757b12768b29a4a3950d9175e15873f104413f22ad79362643599f7d6960f3d662d24255814c2fd7b445d35651ec7c0f873a2a2c255aaac51c41118e4cbcb6f91745150c51cb7a5d5987341c807cf8969c523913b8659dc5120c6d90782d463acc647f16976f641c54ff50bff3dc1194c56c3c71b6bb296f65fc99d20b92662a19a0d8748a90932d498b7e315be3388f87b73ca99611035224fad81792e8c7a3a23dbdf0a44ef9c0ec0c4ea68804d9c9078fc08ccb733287862e01f8712f30388feb2abbd0810cf2485b19b76208b41eb99b73d2b00d7884ac289c5b4632f8362ed9f238e07a34fd7b3acfc5973070c83e03b9b45c65f8eb64a08b88592b6676db235096694073143ef758fc84c9d3097266b66c9c34a6c5f876779936e345c3a07614e2795e65c0793ef3a22cb65bd06bbd90b391eb425223c2c395674d9841109b6929d353437dd49c7cd50d781cab5850363865689dc8bcf81a80c4269a05060965b80a56081c186a2f4bb00e2e942863fb8e507230c29215c98a78e37201c263783f703b17928f36656b99f9cfe31917f05c25f57063d728a4e2bc652e4193e52877b7310f7260a1985985c26caad60c9e6f01b54be183a7c2ae986ab2a85b33788674dcd42566b406be251837266ebc6261c3b62fff702f10298119d414b580bb4077791b7096a7471595d8659614c878d8097e7437503a7c7e058a3dd295d34ace86b9302b901100adb0e6140cbf44161ab33b9aac34a0dc6f1faba14d259c546c672ebb7f528a010d5585c21c00c4b19980c6490d76083a77b8aaebcaf7917a81b55a6f2a6be7941393d0a9ebd2c549417f38682def039b4944cbc6fc629bb3a3ade353ea2005115a665087c00a4b771ef0490748b370d8b4c4ec37cdd352562a11479597d8035c00824f48805000778a81d6a31a0bb8b6201cbd3149ef96428c79569c5cba273a9bb4a77eef98bfa54ba8267bc42c643c29577b2bea5802ecc038ab70fdb1b23d9272b7ec30cfe1791126a185c40a77c57ec3088822c808ed8b1866068035590460d6a9a00c50db70b19b765e7ca8229e1a66f4fb52d752b515eba35f64097ee85399d78ad4c2cff7935ccd269731ca2b3b3217a22203e3b9438cf0b396fc99b6113cbb883c16869bb114bb1adcc06863738541acc61458ec9ac98df381825ca80ad954562ab931d1bf47a1c45a5c1c72d90cc2d3b4cf6135b8b5454ec4967523ab82e9aabefc89780722b5aa12e47344bfbc8c3426802c77c02195255e71555d9045bac868c7d45c06b6474bba2f40fcbc480112176a83ce361dacf2b386cbcd270456e7563a873c55d752151b76b3fe3c3233c5199011aead401b88b9c36efc295fe03dee6015b1ca00c5bb06dfd2c2848125af903c298c5f74fc4b9937412ac70aacf07fb99488c797287c04335821cbd6475e91d66a7d89c2f67285321442c4e7ce61d0212cc16d74c211ed2a7bd829044ff82491d1cb1746430603a0091110f626804e0b32edb0cc827c8ba7c36f87cbc67cec250f65ad2fc621363bb715557848c5a01b256524271be7b6956b72be644aa0dd33925f64bdd3481615246e95294196d6af1aa5aef6880ce2a609715b50fa7737be749cead7c84977747924bc25792509ca7a931c3ffee7341547913ee695f8144afe83430bd5c96ce61f57610f78d6c64c3c33b468b6f3cac46f29b60f0705ae1a05e5c63d21a62f5dc7208d25a7f0c09d8f77a7a7a03d51d2061fb13d9ae97386fb6da4cb6fea0923937536511ba8ff00ba753897d16b76058a15b5c706121cc792076ebc2ac1ee492a36e65d12d23f6488245e998457d4337a2c62c731afa43085a94892bd30393b1c9fcfb380f9815ea491968d6514b8707551443fcdd5926991599da552acb4a19b6342d309b5027cb88909ffc8c83b1778d8aa46c9d07aa2594a7bfd47cb7ae17d30385f988dc748b843b7b7f569e58ccc9215503e1bc2f28f5019fc72fe6d3324c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 +ciphertext: ebc5501fe8979387772fe5f486b5ab466ab6080f3c0c2f1919488c60d46908ade6243b7240e4b4faa38d3ff8a7e5099f66a0a4cc90e696b663c995004254ce33f75092abcff3dbdf52ded59ea137444bf4766a108e95db38f3ec150c2e2be33c9357ecc6f1aba15f904c66873ce66c64a341f0692de732951b43f756afe823496ee48be44b0e5ddd98db7ec401f872088dd8c570e74ede290222efb031d865559083c7cc2b01f1ef63d3defe0f186258b0e1f3a750a0888b6bbfdad4975a1e3d2cfe0370257bcdaabd0c9661098e6d343f96639017a2fe0f8528db5995e9471f4ebe77f12ff032826690b3b9137b43946ed6a6e9fc9db0d3682f18772c9cd369c30b00f66c0b2c3d912401e83fdd1c221e296025ffc49c9a7de4400fb1e05b4551b96f6e5a760730fa998834355c9ff8644620df83735101a2ba982010fd456d6279731798ef26d179582bd6c2404df96ab1402225b8b5764caca763a3a4828712d48def1968e2157c6a7a15ed1b0472f0706b59680a2096efcb8595e42f1ffac5885da71542072624c8f480c1769fb420578146c118ba21e93f9712ed3c0303e631e4a7a5aa2d6f3b247d948e27cbe2d44e2804c3a8e9dfba678a0ff44c201945c0a46cf31bf8dbd6dad5a323e6f4ec52cedcc7c8c12f03693aa0a4ace4e21af890467b7e7e876b7d45f22120bc5a6043b1a8c322f035f16d9bb5d3a629b1b783e1e44d2c1205337077dc68262179c290bc4a2f291110e8bae9de1f76f45eed9ea69f01d692c25e8f33f66dc4acbc539ad9d5a062616c7b1eef940fa546729b7ee744d655fb21ed346207aec821bcb8cbd8b71ee0f46b2e718349b6c422547feeb0fb7767403b0dec26d3dfeb7bce5cb6837960972c53cffd753467cf88088fd5b88ba493244e593e5dc1c85e6a6934956719b52ef9fad4ba14520631a12284d85ecfe9cb93cc87110e6ef5623e03f91848b67d609fdb6b3867b354ab4ed1386af75182f78189704a470cdd8576f5485bff21bfa8d87e3b88e50986909b3833b08898ed5b7e46312364d9ba911219a49251410e76e0dd66aa451ed9c07c7dda1c7c7670667b40fa44e5bfe76a101dde80c6c411f7c1820b46ec9ffe2bfadd029ce14181191594835fbeef62eae04cd00537e6d5d743a9bcd7eb5b52bac2207d7bb3c42a631f9d73fb82948f74c2d0c59d99a366b600247234f619b609f1cb66328f15241d5908acdb63c905d5959e0dcc5fc83f7d1b704274ed17c2582e651200e70f265d816468fa1b5683a4604f7cf72d57ff9aa3c698f02de106e64d99b0551649bf519c43efc04cd8c1750265473d4a1fbff0b6597d670e9aaf63b53295ccb483defa0b49404f16fc18c033dcc1c115269c97eb7c44b89c76be473a94dab492b2d98c27e418671d21288ac7b7f82380c520675140f018773d586f4faac79a08cc50bdb525d138ec4bf6a0d730e9f1e559fe9e1158509001cf6d66cc4994c08c922b6fddf40d493a049f8f587ba0adb83ed5f045b82598eb7d2e6be9d76b +result: pass +shared_secret: e1a195eb1093af69edf107980f94adb3058378cb79dc807684c26c4ee1308533 + +# Official test vector 56, seed: "687c02de1041abac7b2c1e6ec2a7c3375552ed5edb10e3a8139c24cc76bda44d719d8121a81d47a0b762b4e9eeb85235" +private_key: 26424f439191e67b1755d6893ee31789b8c6985191c9c21c1ec7cb8c990f82ac49b7996b1ef48046f8b3093a36c27cba5c35b7cd733678c10ac06a5108609e47da30a048312f1543b8761714114d37a3c70ee09813e79f37e6402d584f51673f70c5331b89a52e61a51d363a8ad8081df227dd621b20469ded708bb64374e2678424787c57940617980def632a61eba801c1a079517302f3b02db4b136d588e2a41fca2729b541c9bef00940270e257c47103449bbd47eda9bc7a9b508d42076fe7734fa5454228958d7cc932ebaa0f8d12123e7ccfddb039a2a66d6d7a0140c6ce16b9fc0b6a0a3b7a0b50a06d8d397c9020f1dd1b5f4216565dc84e8911102e54b60e88abce7714ad29668f79b7f2a7b09e7c8a92480f30b072ec14e96e77e63342841167afe3421c37c2ff3f25ccad60c652c9831c5519390bf0ee9b2f108104d77145ca4b5245b66db6607afc0141324328d746787ecad7f5a0ffeb50ddde16ee1ab87440389fa0b9c44b75fd26c726773bb8049a77784860558107e069d3d0521c6015093787ac6f263d356130b9a39e5093f62d7b2f8e5411e61a18d44155fbb4d2ba7b09072cf6fe666109ab5fc078eb026490720c82b4990a28406a450268414ad4ff1791b370722258bf103507fb9a09b09bb4373465ce5a1ea263bae6b723036af268700d496724a42539cc9b7f7357cc7b6b33e11937a884dbd30888508bdc442379eb8b3682341b3b4b760a879fc229397e05879b003a06acdf3c5530a7b90013873f47139c2d96e1d7b67427467e64cba2965766603ca30e13f2e357e3e6945cda2906416370cd699b3da77889b63be284ad538269929914092b805aac7e9a04d0275c71df020ffa6002c1703ed674dc5633367bc086ce15e4e61a93de94023b823d1fa29bc6250b92a8a04533987a6bc510bbe84ba7fa1699b077c3a05992ddd52a19aa238b466c2801b3fe9f72335e15ec2342ebebc7694ba68e276719371b933dbba3fa07262870ea9521e95650444845b41258f6ca77915345c0af3718ea09f6ad604c9a4971e618b59551f5ef54e57aa138e52cc03313398c0ae03bb4ee5d36799618955789e80a78bd896aae9e87f2bc0a6b730a02bf82af19c541ca93449b127f883af13713bf5229238b19a216478a4880a7d9b6009719209f69519e5774cf48c8aa20b96e4b0f10a94027819204532a54c48026a5cdd5841e6c8a736cbc99f9caf46b8a90648a854f9c6ae37048c6671c5e8a1b2731019351631829c205959a4b4ae87a4c3234c63e653cb75c92237c4721c66ad05871b22d69f3435baaaf311491394cb1238b899973ef79f9c371f045b4145bc20ddb71d53fb50b25c46e674778fe9069197a9861337edab3de55cc28bcca65b2a5fbe1a2a67197bda012ecad40bc86593a06c833c82aad0b714428296248a8e49304cd3955081ebb2e717b36deaa928c3c09ce1bcab3114627a7886f64d69b206cb7aa8f978c13e84a6c6453efb1328684859ec20a9ff7a560d436977294daf2abc08b78ce10a22d5fccbbdb192d57534ba04c5dfba389c3bbba4f5191ee9ac7a344cd519cd39100012da9afba0bf9a2373ac534ada885cc71322e5b4a4b84c473610631d29c37a90908cf2c89d075928ccb3b9558a5453315acabb5a228d0abbb99d63b0294b68594a0a648367fe044e14347073562aeb475c17196a3da38896f2168996ca917a0423614431963b10b5a0d3b228aeca3b26363026d1a5a952b5333cadf79a59b93b5ba484bbe4618b41756a101429cba6407b44a2b001108eb30e92d60c093b4abefb63438c481dfbaf08442d607088ebeac83a950623e057c99cb0f9e31639cacc82852f4cf9bcc83228151b91cdb0423f610552b0c170203c7f2b345443bd7d274ab14cb67b328d914366ea9a220cf46333a41feb5193ded4a5d94c6e0a43bdd6b2a52c3c4c718591f11b32ad64930a638ea9f217e64a9e31526313133c02b5b0cab821544543fe24aefce70927d9248aec2937385c79cb85df91256e176eaf3a239b370d4ef56a90dca3935507a6a86d84b021312bc718662abd432c08bb4dca3614f357321b191a8522ac109a643a5a9a63419be6845e5f5837b6188de0c779fa01430b219470a20da019688802ba8440c60d8727394114db10343fbab0993ac5d967b658b1551a6570f7d9b283445cc278298b4740884ba72b338c45249ab74c84a1435a84c42533a0bfbdd0509d7a3bd0b0635f538ce72645650931dbbc6e2850cd2585214f5cc12f2a2d9c2820d6c0550be79d5276747e2c04bf976705227c842b872e294aff495e06502819c6c92de3622ea968b07c0646dc0301c009fcd5bf7f19a357693e032cc46b4777a1714d41a59bf07721a2490be2e3cc7e4a04fe48a8db361a5cc1390d921325875f80629c2abc4d468a40d9c22911b9bdfc6ba986b9bb7226227dc63d75351fa4613de3654475c5668d651f9f03a386179cad00100b35343f48b7e36a79dbf979cdc734d5855b90128fee10c9bf40acfb67332cc8c9ecc4a3a9a98bd30c708e7a630a0909dc8ba2b1721e42250b83623a1289960e7288758525d4088525ec25511bca906930602b5ee1d127c23205e681c9db3474aa774733100838b2461e45cbd603c3a74122b679cdb9992063e089d5acbf74b03469a3ce7993c6b978313a7a735e75bb94976b3539b4298cc47af58425c24310667b1315baa5937741e35309f1c70cb8c60e06ae1793502a316a276b2e21087305f453d8e99d08730e174159db09324e4cbaa067cb1e766e455a34159465bf1138a285cc386502d698538ac63de2f496b120be468a952b02c5dcfac5a997023b5b3d98691572103e158672eaa0a4e4f44fb6920ffd874f52748a630aa41d188ece499aab324e916079b3bc2427b35896b26b0d2564b2a875881a074706713d326306fc66efaa1b8d4cadc7c85b7ac211c4f61f68a124465397385b2ac7a09686935cde06638f156e6e4670f963ca82950d3207889446be69e2a0d7cabfb16141868a6187b5be7977c354fb27a8c9cb8197565480244bf296692a02701580a2b4ac4772b13a27c869123ac3b6cb6699698c11261f657ffb6c8d78102e0c60c004c0796f319330435a29abaf33dbbb1c566aea10349981409ac31c18aa48631a1f0657116821a2a36c2403870a3787a1e3f36349b3373ae729a859af3163c078c38ef38c464ac5ba1fa8150d9093f97c17106c99c632bc42a5ca0595508bfa7485b23bde8d12ad7bfc9c10c68374b70a4a46655b5a67d10697d2f9e047e603b8845c9ecb168576f9d8bc7f3c831b6ec15c5fa4f744315d3afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 +ciphertext: ecddf4bca1ddd56813da6d33fbdec858e5623a15168dfc3e93d9114285eb4a7c75ed6c01bf62a6a1e9095e840348e68905092f8e9907a4d07f6d49c99ade01b5e5583cd93eb64695f695e99c9f646f335e37db423ac1c5376393195b6581ee7ef8db5a28f7e9dec1e0409aef29065c3b3f486753ad9cbd5491508055aff32616b3c1a3da59067c629eeb7029bb5978902886fef7d8cd0bab7474e4b6e0fc844ec6aacddbb8969810cac38a3b40d6b0927a033724ba6f77c59a173057042eeac0a9b1d4b89b04317d68feb1208607f8b5100cca617f96ab20845e1ad6b1be99ace6dfabccace157398b9e9a036a70b1fa755c2250446766baafd4d2b3daf13ad2ba8b727146ff87c463b06170bd7bf715b3f5892ca1a80a602103eec384da50f3fa5c8498be1029fc722598677bbab562ab9dab1eba0d6af783de2750568d7c4021ec95ae18413ddf4e9bbb13122e62581e66469259d79576e601a772c009714c28e3117ff2e9a24c321b1d892e5b3d42084f63c38a6d41f41032b405bfefeb9ee955055cf89bcc545ffcbf3bb3050f886637054ecb4d83e3aeb5c2a11b946386efabe4a7dc7dab6eb3d6944e8de6060894c7a81d515284d9a0c1a5bdb4d6e4d20e66e150635060cf7b3c5917dad5bb78a88ce639b012070e3614389f9e89f70cf2064bf375bd8dbb4744717e771cac29555f6300ea2077c882c933d366059dd55301ed24cabe484b23c28e5e4578baebcbd1c6595b80ba173a00e760cdbae70a0fc9b77974843c30292864fd68611382f4ff5adffa6c0585e45fadcae5bf870fc0fc7cb8a8a0e2c6f28d7b2f18a3b5f95e3ff82b002ca8075e3f9341082acb928b8a4116c2582147163d64ed111114b5c8abbf05b969dc74798479d345fa61bac4b625175e11167ad039205b70fd42426d0ded200cdef40b0aa37546f66c77d23de1d3f12da7030af08c8ecffa7617346de3bb3cfa66c5c9fe49da420bdfd80e541081d26ce873914afaa2180a683f738aff3f55930601df67dc7ee4ac20a60eeedadf36dab2115597f09235cc49d94db30b7f8550a223cdd0bc1fcfc78092fc52ab0d7651dce159dd5cb75ab3a7a79738f3e8572eba724e17fea9f70e7360fb279369015c26dd7838f117dcaaaf6b5a40bad8a04ca0c81e7578be8dd6378b6b594a64802c4bc0b2c36a62de594d2bf4ae5af1ea409c0ddf281fd250be74a173256f27830ca1dbb4d4914c7c2a179101c31838d4d2b131d6555130a5eacdbd4e64b8275a60e40ae253e44251d334b97a24f744f8b97400a90010f5232cd5b82181ec4b6b7bcedbe7b4a458ce772b508a435cbee00b784347fbac95a6493085fa21813dd7b953f04ad694936145f859a49c246d4d9c48cb94fa77bc9464c773a98df2e3e580ee6e81403bba5975bbfca547ee9afa1a48239498209d1d9544764cef4a9eece76078a72c4fa81c3ff788159ca33c733d6d06947580afa9bbfd3905cc2abf5430451b7a54e4d252bfcc449c406003966209594a2ff623978ba1ceee +result: pass +shared_secret: fa8721164f599caeb949141b24a124f2d576b3b58c1914af2b05da26b09bee30 + +# Official test vector 57, seed: "4142237070c216bcbe245a39bd9220533c97651d84832b26727855ad994a0760c52b9319ad404693e4248b8c5ff324b3" +private_key: 1023c0608301ab03cae768b68fb495c496b583b72006f0aaa985800df2b6ba238cf37748dfb231fff957ab744cd8c5710b301340426d66507f48a23df19878d9cb0ddfc06e1674c03124cdc4c1c70acb645ea55b22403190d813f287a5c245b4e7a31d11988d218988faebc195366760303ff99433cf07b68fb4bf6b8a507e902b0a07bd2f048f0393bb9f5b40ca588208faa73789a0107ca9c4d12239caca11500f3de39995d11911b9386e8bb22cc908e9906bbb247c96a0bf6ec14bb0e33113aa4ced8531beca2d415066cbd299a9dc920a935b1bb599c0c14a695253fbbc8ad7344122e8948f5b10e46138b28740348aa888ea0c18d53b875232c34bb0d44197352505231bbf5dd356b8955856a4c3bb4615dab0a07724065f4ab0ace46fc684a3dbbc9ac0e776e6d628af8a2794829567a95d2ac0699e3a87a46086781965df032586290d2edc5c57a7332a286bcf39b8af181424884863123d1145031ad069e0a56f9212c76378871848b121489773a623c69c139a33363bd032a40b4fa15637c01916c132754bea335771810303418f75a35d591f212a603dcb2f3fe9ce261acc082b4e38477ca9348dbf6bb981128be73c189147b21949666cca3db8e433fe66ca43206356884431266b9d1a92b1899217aa636d3c7d7fb11a2e9ca61abb586d20ac1e46198da618cc71bd52b922de064ff5211a2b53c51f206e025505d3273f3f682e1a873cf41433b77608739b55d457364c04315dd8b304604c2fa52734fb25ba6c69f9030008a310ea76b450281168a3201b9892e5b7926cf53c3e3a591979874248a361c5c1f601d0580351cd51a78392bc4134c708dc822ac8b9c032a80875b30eb69f9a636b2ab13c6a35ccf4d704ce40aed8fc2a3f47b50599b024f73444a09df092775f5a77113225b87cc295e336eb8668ca6b3dc1d7b5af00a75730c8c3a45f05f9a22c66143965466f5b7cca564b6afa4a3ba0a57dd5b7035651725010ac088727c5b7b5b91f173589e7b94463f70bf9813c28b405ee53c10e1943cb61ce66527d7c0529cc67b181ec6b4077ab764aa9455052495c9dadf033ce50c51a3893aa250f6e47711e96aecc69a13aa60b1e837c1ad98b5ad2931a9084c6c364b4a33de1a02d01d9155b527f036b35d5ec3d13b5bf49e8be9b0234f49400fb512e22a705e0b6212908b77f715b3813bbbe29539cb63f78075f0f3cc60821b4d24b5674e29af16647fe917452b85a1c887286a89afc31955fe8afa67aac2ab30295d8564ea94c720268ed866ad36c8bd634b2b6e6977ea1781a592e532b3f292b8fcbb10235246f8c320d6daab3a7fc26b63251dd98a12550166b513a8d66435789bd979436dbd263b18c15660693e6eb99268a3d80ea6c995234d7e08b7712b295543b0b3b9856c72cd2268f7f66a0c67c96a2a1bddeb26a4ccbaf9d7499a7a48a65982c8059851b79c735897109479108acc7e668bb16c8a530a7bf4f473841e17c191cbbf867b36059505446cb30c26ff5970fd21a4043854d96d9575ea25415c263028a2a4f35c824001eba5062e23098fc4556399241b8e48933e28c67068d34155507e23ccf4877bd170f38203fea3b9e2a289602301a00e7a56e91a766c72c04ab283d25787224a588eb4fe0c6b54d889d127a471a72c65f06375d1a545ad9b058a654324b5615138b2ec4a375989b3f1b60fd30bddaa2307205a103b29be6cb75f3567705a0c05eb845d493caf795554ab25fd03b379a6284988763698b1bbb4b3c1a54b9c2038e9ef30a3870a11604288b32336e15939fd181525909949c6cdf7737cdb382b1dccc0c49317213683b349f8da22db0b45e359b2f8e70916a0c0142fb264cb6bceb80afa3a36912d635d7b4cbf33a4a36e4c6714c551d70a18b967539b7a604c5182ee7673ce91d07736f5b97b407879e77050bcc089a14332138d92ab3e09b497b834df573dea32829b471bd5a73e61361ec699ee60320ccdc0e6fc983d3238a8d5abc3412bf48d67dd2e1b0c2692a4e705de666aaaafa9eca476a1b155d52459b563b6ef1549c51f83bee2963a93729d4746a01a21dc667b120d38d79a45a112067205c3edd378c7f65c940719f79389436a5595010678e1558ce163ad95593a751c737d4936ed9c7cfd41effb1abedc07564fa5238ea2d2908793e2a9a33e08b67ac3133402d42344f6d1c804536263661a557739cd8c29682549fff416c069a39cd48229e47066e02612988bf780256e25009ec5b1ef829bd39bc0654a0c8c3c113cf421f06965713849a83cac9f6415482d82074fbcba804b4c5f2b1fbd941c7ec8c4c691dee981392bb0736d43adb3ca548829a55bb9537396d7bb11922a9167ef01cb1aacdaf17902f671a6cf5487bb643e0a1cdfa3522860326d374ba8009833bb08eb09a2b3cab0d3193a6561c17d60b1cacb24cd3c26c455c040cf9ab0a7292bbdcab2d5b783d65bee7a666ebaa2764e98b7df61bd5ba546bd307ad7469e4ea85b6031224d9b1315720ccf95273c35767c43a3b27a31773c5b35c7e4aa0316c53cdb2fb1a60ab77c4a76f2af78bc2d6479b909eeb9c26ff97a47c468dbe7c439d232a914766fcf8772e7ba92b3182e362735c237bcffc3e940cbc5e6042df923eaec04d96e31cc3187f66735ff1e62fb5460895b22145787484e529a1d654a2d72cb9d81b4d283bb15682e8f9bf1037cc95e29cc3716fd89810e1bb95da871a2562645e0c60a27cb508c2885c19befc686db2e7a78aa66b934aa0d42c856cd361ee93294759549929b59adc1ebec3686e70c4a15c8d56dc23ad080945d4734b76b0a64b73de7b5d810ab8daf48542a4c13b8a14aef05c788448acaa51263cb31be69a91888ac66075c0e59ead1b29d6439e94253d20f965d9f0aca53a28b4903bd40a1310f0123ad221a45961527589e7048faa407028601e397a96b39728bf55437d335f1e14063d3902e923863bc90572891117516fba340263d6a0aaa0743e959da8f21ef9fb38431b36b1328a15696e97aa78ea97936f8b38bb1556d2625f5ac31e1b8cb3baeb1be7f808b6329a440045eea532624354dfb71dc321109d0058f24ba4729c375ccc0440948fd345561715654f60b378b477a208cb83f3afed2534c5ab6efc0a5761d46b6cc0a6ada55d1c92c7558bad4091772f65bedaf335ba37af34582e0bfbbc6609bdd3568001734520f45d9f4772d1d21d5080b9a7a2b2e72a0b6e030f1418beb28a229c8f63411446b83fde11b3d946c9bdabba08d495aee50911cc66291fd0d49e426ae85eaa6c911c4dca80caba6e28e5f645a54d8c016de51a2b98241a29230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 +ciphertext: 2b93edc1c5e164af29c51f768f38811685e3c326a9d98ae6628eabf5bda5c6920c7fdb738643230ef509286db3cad01e0f817cb64cba6e8a89793212057a33c5ac88b19d148a11124b0f6a6c0a4b86f25096a8cedd3f5ca81e1851ce1df2b43525ab9a0a95e8cfc725c891583089904aae1561cb9ac21806662222543d7f827cf4b6b3ed7b45bb0c5a0c1f64d73c9cf4b833a59617c2ed3580581b886fadc3bf00a6625a1afb067579db0b984b16fb645e222ea52dcd8aeb0538a14927c32ddd1c845ac95802bf48e49ade7122567923de1d73e46867f9c9dafb8ce4ae5d6a0013d82e53674227b79263abdecc6b0e0fb7fc0a2660fedd5d4e2febee35300ad0e9cf0c7e7f1ceb18ccf38a682634fd6433bc141dc354b8e3279ff1547de9853d280c9ca7bf88f34b720633aae88272ec03e7622ce0ee3c2e2c66313fd286fae22b1da9b967d926d0ba0f63a3d02814d2ad22eb462243d574e6411904ae35c859366b7e09838e12676b1bd89743c990050ae185287f4f89c1ebac8f477c23022134b343868a9db57bacd273f873ff0e96c93f026126b97b6bfb9c1d1a21b10f1cf0694159b3b01f802193d5046bfdb224f4ee0bd520151fac75338ddfb669d5d3394e0b9776a158ece27de77187cb0baf7b2c1b29a0013071078c823d1c0faa784a4d5c8d6ca224c5fee58c13e983e3369e1832e72b43e4492c21b33477324595a29da0c3cbe2c2c02652b22ab1de0803042b08254a1f3dfa5a73cc6197e3e4fadeed10f3dc5d9a4c2378fd22aef84cc98dff20ca24118d9e3a54a0c23f96bc70b102593c2ec8fa781d6622395613fc57b06c175e7cb4823eb0e692a013a493fb83355a9404af9147b2ddd81f75e673599a5dff78b9e383d656f2f27d2e9849a70e44ed84da5f3d05bdf4d929ba24fd574fa21b479b88227b82888341209d9698a700a82b2cccda24c38ff12e32d8182dc9771842da3fe51a191e1c28002eda9a7a13a0f84988b356da88e270434dc8f36359ff179066393af3b90e06220e9eede70e27b13271edae76bbb1cfd9b2a69b931d9a640dba314f8a4907c61745ce418f816a84252917cd4f4ada572b89ddfd065c3bc7604f53776347835d237c53a5c1c26a18dd37c9cf382d836f32b9fe1709c1800aae66d4527a1f1247382d54dd69d0b365f56de2cc38cb302b001e7cfb0a8b7896b38c1cef72ace55717f465e2229d806311904fc47200708c209c6f1c2a1977a845a5e83385b47aa5ac695247a4ea9aa1b3b3c7e4a096c07ce6341ca9fa0c8ce26e8765f35c04d4c7ae8c814e3910f62e50f728bd4b1ce593dc651a455e0b055554f12d652fad10ae94c1a748d3f5067b02d81347bb4d80793d07b5e71ff36c3dd11455c054a23431a830ac8022b8fdd7c273ffe4fda640c89ee7e1aea9d11eedde7b7258ac5bba74fb864663c44f22d92b28c5fcaacb8a0213d71b7f86d8de1db6a5dfefa338a61166d9f9841794b3fba4a50a5d1bdb95058b2d31aee1f987f8840b829e65f382ccfce8c298 +result: pass +shared_secret: d479c2f5e622cf848d921a7155cbbade062d0fb3ce7535d1859eb03e18ac64f1 + +# Official test vector 58, seed: "bd334d7b7eb14e00e68863f2e5551a095f8af10681c28353fd19b9a7e70b8bfe266840860609008a567abc66316c77ce" +private_key: d77060c9fc07dc7287876347eef702737a25a8b192146a5bfdb637f936b280098224a38ce6311116518028cc005089bcce93c7c4f65451b893eb1872d5470342d3627e90110022b78ca23d5eb97ffd9a16be398271444d6b17c4c5cbc680fb9f65c844c86c40b291a3cc5a85096b3f150ac9cf1540d1a29ab0d30874db91d17894d234c6bb376b3683273d198c73cac396d942c7cc2c63b19204c15792071ea41383dc864d2619bdddd11431d0b7299aa720516fcada90aac7148fea3d63a14e95d01fb51c03d74bb49aabbf70ab50ef225795340086a0b95a9cb15349501f4c059b26abf18161151c21bcf30d325c1f1d348b58b3bb0da69da24c18d6c75df0f6b0e63414ae9739e9eaceea4b00f0d33775121e78742f9c6ab1aef5aa83b14d8be365270583c0c90847724e39978095c297799774ae05cbd4794882349c68f5a2a2f23877e395c5e14286c9774aa159703312ef63af3fb2978e22a5c1c0152b4139429783ea5bc90016701f1868c2cac0acf4649886b773e5c29dfb7bc142615f93216d2c3ec9eb90e772359614c57ca97c75b593ced123f6a8bf76854d856c65d5069ba084c75f10290d104f5c9ac498200190b72f004897a8d83b0db3274148443f1b14108615a3fa02668bb9baf1086503351ff1301e65085f65cba909bcc42b32fd5578522baea9f515e48b040a259fae266127bb6a8e338965051943c63ea536b5db2c3b6c8998d4287922d5657da1269e8071939b28aef119b0eb66a87378064162b1151e852cb00f927d6dec61bce0631a93c1b51379546453c63626f2a792d20c36aff9a3182c6e7b5833da416f29772b70216732c376a4f59176617c885816bbe72c38a1230f484f1fe4671fdc1224e1bdd8d795c2e0917692517c4441cd4cc3bcd71765212b2e4986c881b2b0e8a0405ba2f7676a41f4aa152003cc185be7cc22c9f402b878bf9d44cd32ca21cf92a720e35f81007345d3bf40b821f48b4b2d693eeed8cd292b636e7360f79237720625e966b9a5d99a7a452d2bc7066163a00647aaca62044938ac6b6598e9eb003175c2a29c46228c7b6464815e9a271a690e771601e252b251f411e6ea91f2f55ea0150a7a5405f536849af80e0840c322c5b339470196b16cbf24484f407dc84819373109a9676298ca273d82bbe4e24946e0617e33897f170bacf4b7a312245ffb780f4c5100109f8c4b629ac1042cb7a946293f740a3589e069987aaac2d996f5c9886d7125cb772a6d93761851076931180d87ae808a908d3c3c1203ba85739c6095b4fbec78066ba9da4433dc4928f4d73e03108fd8f531cd6ac47c088a64562e607c7bde3867691206ba9c058432466eb54a9414c3a3127208a512ab5973b5d118c51468fa70bef827649be94d0d97acf60b693d73b062249806275a5d475afbd943e96a512f45ce54343bb6f353a9b1540f420cf4f01bb3611a09925e430237712a8c2b91beaf7623cedc6988990ef8006bc0da49c57b5eb718409c8a06f81ba501090ea67519c261574b118ebbe1765a145309677ae4fc9ed499934e24500056372a25271f40bef480218d978d6457aac1f9761bb63679396490242558b2b6c617050fd902523a8c2450c193211551409a9ff92089c54b048b6a80127c7742ba34333bec498e28d729d6085fc7f5b6e5c4212a0aca0772af8f83200d422b49a80dfa17cf56d8277b792d7b4675dba3a7502674f595a45fe93008acad026410de336fa41ac0c725bf601280bf7b4d7dfb63789175b7748dc54846f3a8b28d055c69e2424704bd84f61c896a40447bcd42b96834c8429ca79dc4a4be300c7dee38a253e35819a43d833046f6437622094d003a3b9914bc6946bb4f4cba41246ca027cf2e599a54a23e8cca88086a6bf8aa92305185a8b232a0f45903224ba2d3276715640451bf49c350fbe5b2d95a5f55223a1a794bde26012bb48ccb4384b3027855331e96ba09c7e757bc71ae9ab2a1adf51ff01bbfd4c77a40dc3e24da767d8b456979913ae97fa9446413084a45fb7827a082eca1094a9437154b2c8edb48d7bb893ae3213b5a95f86bc9e146657ae653f1c9bf54f87830aa968b96b747b9aed4007ab4030ed652652daa9612d00f36bc2dd1299c8f2c84fb56045ab45279735aa1f57ecc470d7e66696a8b7a65bccf23b63ea1d595363466a4d24540e21bde05733154180d1a80652b166cc05af5a7cdb2158471d52fa5006a8ea25c98167f4574a8a47a00b7c031e667a7daf41b32c714ae1855ea9bbd0a1aa18bf64071c44f3783b30ce8301f20cbdc5c194d6131712386bb135af9b55c680790b5147f55a6cdb94075d0f0c289f42aa638623c16be446289d099777717b89922476d8c5511997419d8b5a44ac8c4a9589c5b39c03b045ac31a6e9967fa22c21f5bae213065867945ec746f776b0daaa96d85b61864fa94e76474beec06815b556faa81ace15c552558c0575c44e26cc4f919d3e26fe1374d2afcbb3de23a9be5b366c1a174d8b78ca462705ba70b358d57a751180c781b28075435b2528104ac0bbfe5912f8fda282f93b7e3292a64b83494563741789c98eb7e84d69c7cc2cb1703ab94aa71d7491c69b52949818245acc6ef07c11fcb68c336738fd762269b7ac562aa7401965f2c5b2909404b32cbc86671043ac334e283ab194bdaabc390b0b2e275bdf0cc2651d11207a53db1a2166b7526633cb779d88da83357b51c962f567d03917f0f2b5c3c3b9ba75699efb4a8a5736d98a56b1510cd6f233c2c05909a3ba6203c11ed72a0091785acd729dd609704e51dafd4342275564615b258691b59266a0ee3a8b261c6e9e9894b681806e97fbe3b25b4b133d804a0286a909752220c11c8644417f34597db43ac66159956a11541cb4348c23196095be01023e7b267c1e51fb0c11d9b787a519b3ca3f0ae08c79ed3f256a63b488e38040195983da72f9cfc03a9c5a7c428898291a9bff3cea8089a343b73e616c5e02227553511722b04a1604d5ac718ed753e8adc001fa47665b76f944c10dce0635e9c98dd91b9e6790da2b09ce323ab41cc7c29839784e6ba907979ce815f982585297b5170dc7afeb94524563510257d99131981128c7953ad87ca696d58250aab373ffa3476aac3f650bcf58aa6bbe85168b7c4012b3359a2b6bed702524b8498d3aaa04c7915211e1e013e1961b0e2e32b90e01e0b372446931a0fe6255b412581e2b5c0d60d3b7208a63449b4216546209bab2ad3767f9793d0be98cd2899da27f7d980122d0bdf593022e2903d69da169d8f3f65eec290acf30078fe51bcbd1aeaf412dfe2d31c7b10157c1100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 +ciphertext: 6c3904a9d9575ad0a33c89bd440e63070bf0433261fc2b3beb68c1e244e489d6ff2605e48e89cea781bfac81251854e85613a0045b4da0b9535073384a36ca0ebf9ab4f3f5bcfc7682dfcd877ddfb07e5e108ae24faedaf75320fcad7edbda2a5ac5e7ca2882312699421b180b61e8f67bae67d03a241439cf6ce69a03b82d7c1d9c3e2e13fa4a83fa8151f790c2244d1952910c946dfcbc38da37a0d5970c23229860a144d374439e66113af1cee797dd7966da0cc64dc4c6586bd5d44da9513ebdfe3413199e89f359cc17cadaf503587b80313dac670791908e2f9e32bf8271cdafecf912b87ac0eb16987e4afeed57f3a83cfb62510b40fb8a0e1ba08e44f65c27e647b3f7b50e8142fc2d9a6cece5178c0bbccb8546cb31e7e5bfad1851dd63f4cc83758873c3a06dd420ae4c7bf28d21bbd811ce87bdecd9dd79d092b5aa35459dbab31c113c82790fb97633d0316fa9b6731cd03a888b32d42c460e7890c5d3873a9885f6dac651f22fba27c25060c70a1d41618c352747a4a5db855aadfaf8bb0ad62067e03ee027bb5ccf994ac6b95d3fe0d994083258ef220f0eb044019070bb9de46b39c31a6af5b63d4df8230deeed491838fef7f5f257ef95af41b1a96c44eebde9ee33a526db893f6c7fd9d85bcc562b3bff3cc293669fef93e0341bbb828153ba59404b1616ecd79b3fa048956873381f7cf298925d8272cf593afabea7de258c51fc2b5e7c0d9aef98e9de1441c07b460f320ed845f4e6efa1892e23a429cd37c71b80a4e79c92ea476af0eb3267ef787c77d5cc236e9ab87352c30deaa1e612a86a801e9e0db33f9b735561ee5e1e124773f989a83a199dcd99b342087df9e7c63fe7fd9fa6a8335ab7e2432d1cd7e53c940e293f49dce9bc005a58ac2ccf8c993641231a318e7778c8e3bbffad24312df5b6f8ec61a65607d3a417cb48daa55d76a805bffb102dab2178bfe2b8e720cf9aedb2bb4f17086f860a866164771b77b77f8d35da63d3c06d4355555284255fec035cbf45270ee83730dc69faeda7a190c45077265b1d2138891092b4d1903512cea9cea5f9cb081092f438fe80ce6b739a2b79349cbd023664d967c952ab2c6fb61e8c2981b4ea1653ca36d40674cadb7b14e37bce21a145cba822c81f93b22ab3c798baa4a3928d9d5327fcede7362e9d4cc0eb58496c27bf4b245e766bd097e9b839812b1bbc1c5dfc46044bc59aebfffd4afdcb7b28d1bfb9ce5a5c11d4d92d720bdfd0be1d5dc115a07d48f6c3fbb3428438ba14e9700246ebff56d6fa77213a06a550d69f38870af60fcae077ba78485fb59c054d3216d5cbb070c9ad6a800ef76b05fa5213a744501e366d8176787c7846dc6dac77e915d2432a6b08d1a8fb1c8f7f35a56f28aec6b2273488abb17a2386735b06fea6feb589bc25a96231d1017052dab972368c93a857e0b04a9ec9c840827c8f320a9e2eefe96e91c70f658ae1483fa651242d965fd9e67ef26e2c570f89efa24c624bdefc51f881b8bdf37a6aa99b +result: pass +shared_secret: 0dc813eb106eb0d4864ffc38432937a1db0d27745788775a8299e93d1c808f18 + +# Official test vector 59, seed: "a0264c58ab1f2cbcb212077fd378d340307accb31f1312137cf84e3d3135044d4eae8bd38bc3e540a0c14d46458f6179" +private_key: d98cab94a33c2a631d4bb8a0e314b78e68824f7b2156d3c481c32f35c82cdc5b2f0f41c2ae64295c246661dc0052209ca274b3aad8221ac955b0f30344f775b759adb1031bc5fc34e6eab6a8a10f7c576e848b2c78a31aa0f951ed8b917277153d4842317474693c5643ea6a9d49a8e5a9baf7c61f967c8679647e8c25ce3ff5a766f34b5e481dbf93550bd36595c51c51cc1c50dc278da95325f483209119942a604d3724328a28f18a6559ebc23a2ccc7d647ecfd866b17b2f2f63b31e1886c309211e7238d2c2510568262a48291a9a7a1d5c38aa61c0acfbc20e8c347c59c6cac9bc402788da55baf1a7c3c0093e4707699976bdca93646607322368addd9420df669079322edfd59bf09397c4e2392062b455d25044382e26510197106f681663a2616d7ec46efd75646952875bf708b2a20b9b7a688f256b078a140f170e3187b4ffbc2d742756c1ac1b07a29916f8347c6643131ac72c8c0840ca7f6c866f20d32dc53a448f193b4b81583da61837873b4239b9e690486c240315c387b6e5763ca226d86a028caa07f4c9963af99850f69401200f69c74a0024a4d9a7a54bb978e23c0f13474e978740422c606e7c5576702c25020415d263d9ea362f9556d64129ee182d22b76a8ae4892bfaa97b68709bf905379102a435500835871d192b48d64b5b31a5647c3634489cc2f33c6ca400371152d8148c0ea4acb95b96f3e2919ccc251e6bc458ac635470437165c2bd4a9efce81471d652deb6aa06359123b532a4c7c1a0ab0abbd193042c4a2d82b69df83045bb933eb43d1199a818f85ca0239ebefbb9294657dbe33dea89a844eb54f624c39732201db37ac46838bca17e0aa3b01448412bcb8ec98b26fd78cee583948a37bf2ce996ee852fe1d1a744f2098ca5b0720409fa592dde17432d424ba40a5362596393932c8ca7022435a763a367afb41818e12b88548392f9973619b41430cc48339a241cab26c68855b07ca4163169497e31831aaa57c3ebf384f3926b28374fc4cb2ae37173dae034ec61c48e804ac0a347d721c670357a7e78198d3b3eab02c168d26e3ef04d1468bd7ba4be00013266fb8fe3bb98a138b63a45167494c17b89c6a6e939d75584e755bbe8048fa2443c57f07f1f178965047e2a59c6815a5b92b6691c9c9dcb6250bb73725586b57c8239eccccc2fd418289a0406671d68e79e4118304637c9468b7312805599960c19a824582b5182dca37dbc63d5d33559a79beb56c60108c5655789bee1c42b75b73b9b336140b202b61ea32324134b8dbd064bd3293650c5b8e8f87793080e509cc7beab0eac8679ca5a723cfc119bc1a18e7631910a2f50601fa280084b98aa81c38907f0a685b3acdd630a3532ada83648bf858084d087c60b1ac73c76ff4477d9b01375a7cea52280b404564dd69c46e3a2125729463ca7fd724c35738094e627e5f1610a9a00ef7294f4549470b993d0447dfe34b8ac264c547a0b7a134d19ac2bff750cf2e4c80f32679375cdf0906346d64a56ec7648c4b7a20613c9b74301b12d40d1ac64f8318708820006d06e088811860a1cdb300187c694335170f6539df45834b93edfd4275e939fa5f828b6e471a5e09b352071c0a607e459c907fa29619ccfdb5147f56c208e20b3dcb82fa2304e40c46aaeb47c5bfca8a9079ecab4471d4bcf914c8ba459433ccb950772038f6892062535603b536da65dfd5c33430069a7f33a08092bd9c9617df3a5778b1d15a8a91c8b99bf5b0d4596a3f8a79d3b6994e823c20f102cb2353273471e2675633d9ab2c7668f02e7a68b2534489b169eaa92a8d78e4e182647f71758fc7f49a17fb400c1de30cc76664bd10b7c55885af696478feb919f3c24fdcc98991177b52ca647070cef77ab47c891b06575e5a0814311a75bbc9837a1c564246c163017696294533999b6700a1402552063a621205bc28823e539ad1c1795e0a23b6b47737ae839617548a514631319a78d99350eb77dfba97f7208d04ea980546a9e6642395c5177bb7b433dd47351b85e569091eaa30ce450c1b786c0272b91f9763478ac5410bc1f78175edef0021e8c0b4f074bce255ac2238a5d67b84b08a12984696e1ac7ad1131cf64bc64c5b0a1ccc94e3bba85271975c63f8d314d9f1a2d17835f873846c6858f9f285428478b2efc10bd7b49ffa006a6537684b0093a633d9cf9bf6bf97017690b4ce511b1898971b2978b6a1371e8aa70d970f8600bdd0109c84521e663845805235dd5849b192c12b49b43f824d9a16dba939609e166a8b05e4811b970915dfb527d803672c7a418293937a0c508272a5186203be64b4b1b33578d48be3e23913e73a385a8ada0fcc4cebb1070ca3006ea16f7da6eebf8b9e6637dee942cbe43395c8a7806f2c23d1c146d6359d268303a1229e5d513c79b2095892d553038b6a3431948195bac491a879c4dec39cb1b97374a65d5f066f6c66045a25b9b5889999889db34b1f42b4151126dd7431389a8331b9c123aab61c2122285530566ea23bda21cdedac78ccaa9ca1566ea1817f4791da6754379f9b0f8acb217085fa380910ed3ce4a52cabbe52d75472a63c88ddfb423c1ba6c1deb6ed3172cbc7244fb71300721aa13037ede787ffd546e60890131d8add25551d72881be0c8647aa10eb5cbb5f73c891868d4641bf8a692bcf0a5867091f4313bc976c989d1c184aea07eed11e36c215008b56a55ab5062bb41f7c5895837093671fbf7c4ec63505d15ca7efa5c6e45a5f5a757a4fda02f9f13c7926ba7c990e6dfc8b20ca1a2a9490a33210c14accde09764153bc9d4a2a68b7a80d9a91d3d47789c2a79bb212bc92812f8660f23a833d78a3f056ac030bcad487431a6357b8a1c13b512deec79ceebc37c6099b720445390277dab65346ea323d33c76e30483d51b9d01b5fdd55bb7d116b2dcca951292f3065b1628b1dbb86bd0cf5ce6a66ba1ab3717829019ceaced283c6b748b26425588ddcc47bc89ceb267ac7c03172b960160a6317d44fc5287c5e462911a8c995bb92ea1c81fed5baadabb569f9cf7c1cac71926f3e4a1a7411295a623c41240ea4e9011660227a785d989ab00a2c3091b02bd65a5b244246ffb97e23213f57b86aa21669541a60ed7014f1831839e41539dc8634d0125d61100ea4438af59434a25a1ec0bc99aa0edeb19d67ebccdd22ce5ff925ae364af7868ad6308a602033e0221ab609560144abec5a4792b8894337c866ec1a5df4076739fed133a74636ec9d904e88876b678088d8c70f3c7008cff1967030a528e748b708b0fb783577f249c04ea5536d2da034fd0d15fbac7a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba +ciphertext: af90dd989f1b2b7c11ea1d07916c07ca7571df9e020e7c40790f8791152429d8dc6fceb7791d8ccd016bb0ac0565f06af72670ed2e427fdb6aa6e8aa4575f25c48f97874d83b65433672538bb32301eb88f4538f68df4bbef7d8602606de0aa790fb7ed079b5d796d954f3fea0feb43c19c7c38695c5702d0a780127ec35b3084fc8378622eb854e8abfed625381237df67b0e2bcd4d9b6f44509c1d7e79a9afe582ef4737f6949e0f95b104ef23a854dad50adef5a50e340774121fb00c1bbae7c546be459a19218dca18b3274a48782d738fe0fa6a8c306efdeecd55b45f2a9d1c0e128168a4f5457c9c0662e724a933a3a0a417ab9d94e331ac80c5854c2b498fb95fa3c30e0795eb753ccbe5fd25c2645b9c34bc38585acb9a8c14cdde16e51cedc704db37d7892266e7476201c1170d7297e193e8b2d5bf10b89feeeb912e40b16854b9e1c2f9975c664ada0c3856a1d530df42dc1238694c30b28aa835706bf351b366a2facb2683063279d8e6106a98de212fa5d94e2a0e25208f3d6b85f6174db9b02074c555797884bff70fc8edcf89f4a553d04be27af73bb2f9718222949cd1e86cf8b8bd15915873f7f9cdd69c7b6c608cdd7331633be5b5aee83e9047af566f8bbf4a020326f566b8e3bd99e31d92edb35962de24caf78ae895c1ec087c33a7b751f9430e39bcf6ba317915326c17432989c5c6c7f0f15e121c9f14b6559d51f4a5f273a9f99a044f5c599418cac21f0d9f0e76f1e474252e75874787fbec4edae7aa86ed10e550db44e46208001d30ba8910c59cff6649c78cb4ede7e2ad4fe410362fd92c535b52cf507c559416d85533686e3641fd7b9218ebbccdf1425cee412f7030538353a785cdd918fd7e2ea6b451a436a286b8d5b341d51b1a523ad0f614868772b56625268c2c16b951f814b8b5d74ec12bba0bc5490a95564f5bb0c144d469fd93555df3a39c1cb53eb8c5c4289651951471b97d0893cd33237c0d26f27f09bc67759cf464094161ac956cf488a69ccd0bc9a38f18592f00fbc6acea75895480001276df22ace110170e2c1705aacf956c6177bba26e599e1656363f9ffe6f8526186b9b2ff7a0b612faf427980b5baed097bdc2acb71edfa32267581a6314c1b05470fd7844596795188b2dedf4e4fff047ae81d0816e82c3e4489f06d57e7b698ec099425bd998b446757d9386951161df04cb5ecdbb0c70204e9fa048936ceb62cf99f19afd9f077ee10e85bf22645469944318cfff14652a233c792df239fbfc52f332f9bb275cfdd43a5659dfa721c91791cd1a91bf0e503ba9f68f880d3d2792e2ee22eb8f7e6f1b52e851891683f3eacc39ce485f0a700c60d25acca1859d14bfbacf41a75fefa35494ce542b2ad6f2c84c15525388edf87ea701ccae772bdb7477f709c822f2b6625f8b1b86ab093d0d07867c584f1c14ff7c7a8a7ca3d1e32af4d76993cc0cd8b740598f40794786b411e76ae8707dcca465b679fff10efb4dc6d0826dbb5adcfa3ff8c0a7d53765fe +result: pass +shared_secret: c71d65ecbae83e06c622e28a4eff43c10041539d851149dbdf295eb121550d5e + +# Official test vector 60, seed: "99a9cdbfc674ab3ff2c64cded7d697a6e27a767434a47aff7c3fbf3c6a22d6043d27868955286a13efe3de36d22ec48e" +private_key: 9483b4fd275acc8cb660713ba7a57bb442aa743537e9e4b3dd73c5d3239cb876cdadd5a1dcd364327a7f8cda092d6841879b0fc7b64e81216c9acb87a4150a3fe7bab7058a6c6464fbb9ac71954e65647083f42acdb15829426c53c55a7984074dab019220b5f570211db614357ca0d3da2b648b2af10c0cd6008ac31ac8d995af6c44531d1125cb710a6bc4a573f04558a97eed49071f748310a9c844c63b491997109ca079613d96c2910b365eb343b3e405b749f33cb6a3502ed634c50196d364352aa06f5a149cebdc2e59d5b27c828292332157e98893494fde7bc51996562f13081f2ba89ec4b416c4732946b4aa26c5e5600a8b9b18278c51821ca36e153ab0a763dbd397693800a62a1e3682c9f71154aeb6772cb3368b6465400c7b4b200e571390165cbf56452072e38b797ba0465238f9e80652a0ba700951fed03fae6c91787c8b2c752a02a4ae52a16b4d1b057931174890656b53984ceb20b1b90d6fb10103c97f5dd7a0ee83cb2b34c85825766edb64e2135f897a6ac1b144ffd8225a9887d546c0d9f1b3d851003e810fa2193c856c7944315869349c93dc84616134c3901d1f137358984341069546da01864a16ca44025e78cb36744db7b3045425243526524f064f8b46c862a7660acc557d71574f227ea5d83ebf2c52db172b4fb7a70baa0df43a776a326cd2dc4367b89843a79205f34365f3b206798550c5624e241f03b41d56776c88636611fb1be2656fdc1c4e1ea84b0bd1b7c804bd53795db335531c896eb72558e6805599ca66ac7a77e4d9a1ff20349dcc76f78cae6c59b93a8165788216a7a611e2233bb4346aa01b47e5b458c970a0cac589f0cc8435b25d74a12d25f10dfb51536b465f085cb170757f8181c7b7c32176109a1a8bb3a59a4d545365960267746349caaaa182136e17f4a32bb040fd3038dada40c8443694789654db794f185cb7054c6bc50f9a24ac2edb5f34eb6a5b410561c0b12e803b998bada9e346785cb2c8e251989354540acbbbfc8517abb5071055ce7ac646e0197b89390516b9e56bb174d2b28d3aadcd0a51bf098f3325642e9b753015af338a8d309000c2313949b2b30314b924e5050bb278c2c4cd96520fd8009c8944569187a69a749b651039ca5443c30b7755782d1d5a289c4baec0f0b0e8153f3986a969e113cba21b41a06f8184b586fa312606419375387eb08980b86f97b382811400e82260d3cb5c74fa5e57b15c06aa2d8b250f92ea0ba222be524459a589a7ab46ac01a5564975cab66002c20745824c313d6167ef2c5a0266419b291401f6cd5b2497cc4cb7a7fb8c67a8761541cb281665f6da184da0ca520395cd492c86a3ae8aa91ba3d24d52322cefdb38be7a6cea16209cbc69e796a2c43b1581a015c2e37dcde072cc4012187276e81b54c20c6f95a6100093cbd9bcac7b75a904eaa9ec31338203c40cf28425ea9c5403ac6cba4cb8051cc2c5ba3f592100aa4188e2696211846bb68c4e39cebf26464b19812c98c0472a76e0a44b2631c01201546ac9982eb8334ac30a4be25342d48666ca41cb63423b9baf290499c27321b5705e8a70474b2ba392a34c17e1a4aac49da90cab751b0e5f50984a5058d467b5ff439fb0c2916ab09bd306661b18626746c8f4db817e3c4dd2c71041929dd7c5918a760f50715c6528c2d2e7c9b97c51e9009281849cfe4410b616ce03455c73580fe16634fda087387023e427902180c5e8276b797abcc47028cac91bc751c9ec4a9c39d682cb38b38882103839947b920ed453a766c04df7ba58f9714c6c370b98172a71fb7d254285e609551f31444e90c2b1d595472825fb9cca49d55c237a67377808ebcc1bb4848a75527ec467a7f94b8c4f8b1a16f789f3ca15f4f332fd0160ff6c4985b08b9996bd08892d5a836d50566bddc6adc6ebc7d3c95068c08682d54e70666f5f62b238f69bf86a3a48421bcd8b762625c06f03cd8e013561abbb2f01b1c314a6a61500aa02b9a54682325340ba328761140781885febec3a4090a5989b914a494d07e9793b703ed4b45af78c42f3bcb46cb4c7fc5352802ba0eab35b9f66c34c39259ae52d1b75b910a82fbb464d37f6befcaa811abc6485f41d38c8a4d1592ec69b5ce90c7cd10c0082c0b72dfb2e5a16b4c7ab6e65f58fbeb6c442fbaa2b4345b3a3326bccca3b5104730520383178589c4b4c751796c31aa061346620ba90d30b340c541f7cad17f86e05c91e4c21162f618b52117ddb572e1b90c0e19235a82a3e51b59c3b280ce3fa739bb70e4af9233831269ff87f3114596f317f28dc11b8b53d578a8ca85b290d31abb115b76c0a8748124fdb822f989c241b801c8b982fc733921d45853cf63880107704baa331b725a416471032a9289673f3ecad22050d9c5c9e2706a341553d168bcbad1a41a3c554260112336430fa16ca8fb98cf5d92acafa8fb427c460a27aa08358b36c5ab849ca2725b72c939fe0601d1e2abcc4434bd0ac835751315856922ed53cdc7b49468caca339aedfeb25ec2b97d43ba409693fba524ae4ecaee5b84b567432270644d6aa618669734e10c8b05a0d697b81d6c83c9f844cdc8ac755403044b14c288131e8c0c21c2361b206597782313d40bad1d56dbe159735491f7b800d6b14ca69d92bf2130badd1858b2cc4a408c33ee56fdfd719abb2a431132e15b89d83498b6bb5aeb0d7404e94cceb2a29fc392a2e466469e53da9c371e0155a774a298d515d70ec5e31aa070be92c3d6290f285a6034a97e389277eb393c5100f066c588aa33e66028976493bf41481b2eba07a720937bc02b5324d63b9487a1789a6baca91512c1a3a0a70b348c1596cce7997ed395b971442ebb3b0e2dbbf5608012030a172b259ac705af9634ad585916cd63ee1248ca143a20001a20cca0496734c2c52a59bb40f76411578e2c60f2364e8763ec1e5641c80a9d6235d4ff9ca73f4c4d6db9bcf3383d7d9a025ac76db1ca49710aa281c222a4bb81b1027d80c38c8365a39988a029a93b5dcb2b0f410fd1b63a54297c65b7de3f3a948f10988b507955aaaa2d3c699dc83ef348e3781c8723b9bd1c6637b94b6cd416427592c71311a16d449d15c0fb2753b338586f7260cdf255ca65cbc8c54101731a45544312099a66405b01eab124f116cab0003bde314b25690520a9a2131154271c89b97539035652c03b462f2635db501f9ab6983017f22b3391a67397066c86032a31080d329647a7c4f5ab89a47393636ff0671a4b06948c9f87fb580358d467fd3b5ed4c3fb678a44d92486cf091333c7f035541614729496d5dd45ce580f0d2638f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 +ciphertext: 00bf7bb6ebb760cd2f5c0704bac084e363ca6410903449755e70c085b8ef1785bd14afe673a70a8118ce2bd4d6b0d1e2c68b1d8d6dba69c1cc712bb753926d073941739c518f02efedd4c68be46638c3a1a9d097cf6513160d2954bf3c13e7ee2bc0583aaf627cec3c9658a0ec689964f54f81809958f31dd8621ecd0fa45ac4cee1773e16686ed2e50d9d4212c708f03e640e2cbc0f7f676b29834a5016971a2ddc1ea2038ec0f91133000a20af29409db0dccfa94b579ad89bff46a18b0f4f530535e45dbce9634c6e67f5308629421ee1101ea706a88bbf835dcd288c8421ba1acf5fe2945c0c657ef35af8febd7a663f8e07fd2d8a6d9588f58014caeb6f67c008806bd8b565f21f087dedd15e7c13e1c99de129c0e9be3ea77cdf2b64ee5fe46d2d7b3d4bd6e3ae489341e9c49618f16a9f6e23bfa1f37b34cc5885d8d55d7b7f816a0aa70c7559dcb6eb035360fbd157b2293e7242da423c83b1a67f3ad00710f23a4ae09c4602490271b24993da7535953b625ef455082ea5f75c5d8ecc8f280e4f564e1464d9802c7a0b4a903d3231cebb2a73fabc6090a6b7e98cbd5628e57914a143515b52b08435bed5bd9b030071c8feca74bee9f7e1ca4708198976beb8bce6a8fd9b5eab0437dd84d7a7f1188f19b0bcfb5f537b107007de82f879bd710cb9732b4752980049c97e7e5642b24cd59bab8af8feb51c64041023edfb59189942befcb4a95a2cf4b2c0e5712f34bfcb4ad08543a3ab5f102938b8c831122b193d6e24b4e5e9d46a8a88902d0d3c180a10af7d51e85ca83632c9848d6d6bb6f903a03bfe77531046531a037a9ff02a0cc45bb4b83bbef67989344e41f7869448e10ea1ea1e603f7bead5cb0c3effd793cd07204fe750ce6bd492a9effc45a15287a226de0df26cf784c1fd399b80dd9976823c7f95d241718ab6e8a362149c54ed1ef6dd3d569077d11e37f6fa74b31bbd8568579fde066e534e2134ad700f0b8a0de295134b4daeba035c5aaecfd5c8892bf5f68faac8fea4055423d9b9752db9b232275b2c946cff74fa0b5d9001b4bb54d778bf9d5f1acafd12b83c2814ec4c77dfaed6849e074c870a5b0e31e6bcd7c1dfc81a2707daa2df47c89701063c72d07f92f81862cd607d3113dff9a2c8097fc980e61f86b9a46d084a47423ffef3e20ecf50aa6ba84091ca9e7ad8bccb04cd9bb23e3681fefb1e1166c539e73ae41be71740e3583b8d881906bacaec5c253181f970e2ae7f533d839a8eeca99b8af1c0fc2c92d86329783b7dc44d1d137c02c35165fae49996d3a910e9a73bb79f17cf3b6b64c376eeb62cb32ef914917e729bf4845f304412a6aab7fb69e3af795ed9b525aa148c073d6fe225d98549ff7931e69427d7bf7a0e4c1a4bbc1229eac126f859e9178a910af8d774c4d1e10d7bcd80544f6aa96ffeceddfd4d7381105b51c62c3f4fcdfdd14066d976a6280122a168b03265af549376ee6983c424b2e867d38c7b44b6af76cb5acb962e6b31d49e656031812768819d +result: pass +shared_secret: 82360ffb5455f6dfdfc6bfc1a3999eb7453365ca311a0077c9d74968ed27b7a1 + +# Official test vector 61, seed: "c799d57b41f28c5c446dfc58a5ac6499c4bcf3c162afd2b09a16549826ec2a6f689e44bafc4acc82f5d6aec23f4a3993" +private_key: fb2abf16f6cdb674757180738286b5cbc25ee9eb1229f3781a8678ccd0c5d4219d49352913bcc4a404503d7282cc215ae337ae96c60fefc6a77e5c600962024e25328ac211d6d6c325746ec168777bb4489b04cd869522d44a62d1bb81dea56e8ef8384ac64fad710efdd327410c6b7d184fbc639e2f6c72d64b44bd303c06779be8c2b2cffbcb8abc582a2766efd9503745773ca2c4f92769cfa2b4e9052d06d1adab40137a2419891bc9098898935650197a0e3dba7f6ec54aa9b521624c48d265a667aa4269a12bea0abfc0e705fe422621848a6a87265f687de0669f56c63968569c1d807826ebaac30173586312f1ec53b0b52ebde2aa82f32ffe592fb90363cb3a281f49cf9e16b9ba4390072c5a796c4e4ac95ce2e14070014034a4a92f8c1fe4733c645b5dbec38129a4021d5c1afb9005c1756e37f431d89177142891827519d2874c9d1273967b176a311f041270cb3bc8d0779c3e40bf824102374a55fe5b2598d20d8d30249b59479946936fdc6b0e17a39d4684bd914479110e68c780f8468e3155be5acb0930fbbeaeaa79bd655592a28622cc0553a3123f2a9fe15b78c89501b0943731e71d2ab05fce4129b6324d66991114974dd7e79ddafa46879286d8d5ba285526f8767aaf45184e860e8e23ba7458aabfeb021ec68b19253a19204c7fbc81ca904cee1a2b7c38982c97a01e2330292168198101e0f30c1a429b3d243eea7114de5849e50249ac66bc24e482461895a9d28f4f181e5b036e7299832a14bb02435d9e087f7340432a632bdd84aada7a657402bc91b3b0a1075e39d66741e18855826fef247b6e1496e3866f9a2226c4d2a198c050ae706f007d1a4317b45aec0a1e7a2e359b695dc7523050c564b717e2b1005f570235129d913ab2e5fa99cfeca4b4262d48f0486e6b3c47a61946114c69150b068b92a8853c26a9c4c1016e67cc90cef8cdee024785e58586caa9f990b48546bec008956a1744dd9473f4a150445b8c46a1c4b171712c1b94a9743fba6b389b8852175b0b1d093d8d7c10fb079dbe65771a8120c1930f769b8fdbec6f857025c4c44771842d8d42ade8dc3712d9a9256167dca6c1caf1a95301cb6401afac63a7d0915059b6a7e45c0567c951a3096bf5cb44114091d497352fd2be702990608991feaa7302511e838c9a346ccc267caaa9c5221ef60b317b6c3a18a07ddc737e6221d28667c70caa3cd24533175aeb0a99bcf7cf60aab105385906fb1167cc26923a2f3c390fc2d150d3760d77b8954a61065814b6d134887b570ffa944f2d1299b6e6bae557cdb041b2b084792215cfbe30302f39573e6456f486b8dfc22b95f96b78098ffd343126671219244df0c4443f46473818c78f185dcd4765ecccaf4b67276f697d21108ebc16632be86fa48278d467021a1520ae6b0668fc7471c9262eb716cd307c98a1c205a83be5279b0143806d3aa443cc7e1a255d2df178e7e298d938c97df6260a278052b763e1bbc2f85b1389b78abadb449ce848b0eb8a5b44b2e881ac3e6bc66a2cbb9c998a0f3a2439816809b97d066b87da226907d581d981481fa8833d9aaa2eb6b5458288872c5974d9cf06cb6da269471e51cd2945b1d0a4700800708a0cbaa0e3347235004460c8f86188ae66af363ba5cee88b03a341f5255c329a7d119bcac87c46bd77a1b5966a3fb22a45d89c712909fa8c69967b1fa8878d89b8541b8a1ee6858932e0793c045deffa62250c0d0072a46328992ba7ac4fd72b48512c7448cedc902d9d69ca55626a09d1a700a92cfb1a6bd89291632c74af580e3b4aa932c8c6714337b1d72a3002c6b68b1fc981cd0686502189712f0c5327e1050ef71549aba312a59e9a342c9e76a96de6907cf235b6e3b5e36a9072ac95d856aa7014699ff48bcb7b298e5168cffa740e0a5bb1f65df9cabbd715096ce738bd39bad530a05eb58efa8b9e3dd426f1781a06179736570611c89a6f99b3c0aa5f4ab2737592082ff73dafd7671bcb60a87c5adf3445ca3381a279c6a4fb1724373827494e294ca5d83574e0877e4a31634abb106b81afd515402290318ca8a2511cb129aa52228ba4a64444b761c184a3a29b221e11cc1335e4b87c457710fa4fdee790614249fa060b0417cfaf9bc4fe88632a76766fc8c5ff424849cb91d4351ec621c2335a2d7813c01cc893c646986f7c2246b2bb05149ebda38f00acb65cb8bf53314561893eb0f1053b237915711b7577b18aa963315a3b024629689a52bdfc81e298c059380920aa5bc39759f2f56d2811c89c59acde3a5496f1a8cce9bf5266b363a40cc1b6c78fbaa4241340dd4563a5603413cb73ba1893bdbcb3ff93bb7f1132940998427769d19047bc051506b5b990074e8d1bbe2d988699b526726a91513988627c2301b44f206696353cab38f68ca111270ccc6cab887ac3b8bedacc12513ca349228b0d842bc193299ad1812b69c63c2b8233c20121d50793906c4014453e19a62da12c76f03667031f2bcb59a074cdd2417ba3789e7af38ac71335736890dac04f77e0b10529381e930c8c0031f88838efa47772a7b2541963b0c7b063472ccdf6228349cb5619c943067ad86019cd964c64767c838407eb32a4ed9c40581b63e0379d00adb275f6578f065894e8a47796489b994ab9471235455fe1f819f3cc2b378648ac625107805ec8946f1599a8329981a7775523f7c8ef7426d8a31d1d5cc98820186fc7b55076b14d2c7c1533cc3217354bb24661c162aa0895cdc4aaefa666686a0f12d1791adb7392b78d31d6bec44068c4f31cd60a768ac0b056c24864c03387715dc48bc86e1b51a649ce4945708951065f946e17c06f364590e4d16520fa2b47b230f1511fd02aae79bb8fa72791806b0d3e211de92455459066b410bfd4d437f0acbbfb02bfc5e93dc7904b649a6f9a7ab09e2679e13040c8e9754032cc3feb8c2bdc21d8f7aa56ea31370169ebcace98d54362ec24b6b6c63732b882984e58839a7f825b17871820ea9dd0dc8c5e7a15403888e80150cf5a12c5e26040708791d2074df71945d67f221b6d2bbc1b65d37559a7c248516cb4ccc19cc15f93ba6d6085bdd95568cab1069cf13138b83173ea7c58ebbea7516c6ae25bf5e07ddf29a0dcd64b455aa6e050c1d5663245318833cb95702bcab1a11fda773a73454e1055104f917b75d650dfe1c59e807314a096de713e35837ba4f2a5f3991f6ac18302647fe01a05c055ac9d19fe27027cad17633dc0f4693c1f79cf69756e79c9fae7c954a0caf2c6b326e9037042553968ff3007cdb135e368ecf440e4187e554af9d0ff272911ced339e2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 +ciphertext: 2b52c90e4ccad692e0389c6d3ff0fbf4fe09884cebab2d264766a85eb7119219267f4ec139c8c06b66b4c91f60fe6fcf20426c65fa14528637c68494fa9b30a08cdb8c85752584d824ea9be447f8756bf44d56d996d54654324450c5443d2b52abf3a69fcf0607a3b8ae4641ac07611b04a8281c29ef5cf94b25273e893386ab673c5fa490d9a36bdaa867ba7019893b79beaf3ffcfd47c3e93c87d517eaa6f0f2af0613427e4c72edf9b28bd3836e771fdcd21a7bb169c58f91e23f76f665b97549cf2dc8ba58ca617018277c704262c7652f91d8e7e3afcebc872f1f5b5b942b23124fd9066bd6b2451c6c0c353dda7e3a09853b88f98123c1a594f35a1fb6f319c010c1ebd76c95a32338e9a40312e0fcca84fcb0ba9e0043ff587d164da5c7d92386e7c6d3647b5168d8a7f9f8a13910043de109b2c9521a7746b67e3566e689576040c9970b04780e7c2b914e7e708a4b37311d5508a3ad15803555d33edc219e8a53f7bf992e8c023a29e42ecfa003312ae805960d2c40be7a781d48dd4f2e1522423bfd20f1c832fc98649652a650ca7ff33330894699cf891493c5064d7db9bd7927d81c543bc041f2dc503fabf2ba774bb743063001fbcb9767d72c5228bd44fc2ef048ac08d5b7f44d807e388ff686e73c14dca14df6c2296ca5ed2850889111db338f7393cef91bf8bf2275708a1fc0967968c9aea9f31b826f42c2feb9104006b336561adf7cb7920c2bd292f002332eb3ecb913e7019d46421a0f75969d12f8d518e7996f75a77baa002ea5e1007811f6ef47ef6ce9ebddc91622dd7d84e75a4b0d90d95a8b7b353c4c0dfc7a3bcea0971bd287905d1fae61fed39a1cad61ff0ac13f436182bbd2da83899c70e802e98a88a2d3e80e538a7370377e836d016fac084ab2378379329a346999aa6594a5271924aa72160dab6056707f29d6f1c5ed8c1208b83f4a0e4e7bea2c75d34d19d8a3e25b48238192395870d43c58309cf9ae5518584fc9f19fd2b6e94b307b7750192c41088d6e3fe9596dc34ddfec0495cacf6ca98f6a24b6ff8a7fb1de8f21ef6f04a6d23a3b7ddfc45ae77d3081d75a76eebc0450041168198e853c6d83f88a24e3fbd25e0c5631c34abe36360c3bca7a3dc522dfbd20692b4cfcefea9d3bb0c73aef359d3f58299140e815ea9bb17b676abd504973a827e792d80fb03823c9dfdc185f03165c3a0ed3819c8dd2877d33a206036c221ca0c4d0d2f935c88a33518ee5562bb1a0baa83dbf4cfb3f11561513fe479e9c9d9298e0bf36891f28773f4eed45a454af3a51fdb790f1d8e7723db1dda75ae7fc667a71310686d9350cf851d3e20faa35b2673a97997fa550faea6976256969975689360275d1e56689be0f127853ef4e45fb857bec018e87916b76393d04c6c732700eb11175205a30a31081f5a6446071bfb7740dbedfb55e5ed09450ad8e65941c85655423dfd60b387f3444afc5138f9e762351463d0d158d82394ed26de2fc4aee2a9bb9ab420ffee5896ccd44603a05 +result: pass +shared_secret: 77ef6dc5a6c8ff657070e418fdb3eb272c8784a9c38bbef950c8ac1de5ec5578 + +# Official test vector 62, seed: "f7ae036a0176a9de9a036a542dd2840033277c44ae936d10b768566216de9d4395cd42b116873b69d9804ba6ccbc05d5" +private_key: 218284084cc5e95bb4c8a7648d77bd0fa0b91235af9d447d8bf062d322bc4cd25ef1532433193509d4839baa0f4fb63143e64bb1d35408eccc80da5ccd6123344182ad9734602221c02b6cec762eb6416be03562497768d22146dfd3b04281a0542b4ce1070feb56a0b21165ba91b3b06a0dca42b15f556a5a6793de72c4548969f5f8102b49bb8cb47c8890afc022ba481837c301a619c69731743b971302957207196a56b1f071cb330a7d26327a55b296c8422b87456024c9363798a5fc94b5e026a4a3be75765b2827852908303e6ab4764c33569c657c864a39ab991b61a45de4c3d37811fea6bcbb6708cb27b83178c03571566d090647330cf9b91fa3d9b49fcb0090b226e38322603249005d3ccb00d0a65843fc3149a407b672b88aa3c6331cca33ca7a33136ba5bb4520917a9bcb673f22852240b7a577c3a78e2b0c36e32bffe4ce17ea5dbd016fd00745ddf48775e9274adbb45cb4946bd05b4ee0a38285cdc8760fdb871f629524d3e89438c5afa2ac2b5258c3923430ceb99993c9b95fab5ac7563e6e1068406860ac10bcaea63c609531ba80a637d395485111db501f78a98ac1c0241eab362ef092ec2c4306eccd5274a729b7909002831cd65fca5cbdc9440e95eb2b588c1430903078a625c9b67a4c5955c8ea25175ba7244b57290787ccab76ffb6262679b4b4130426d31d6dc754009573aee9443c4a9af619637be8c52e9486415565a6a3c3dee9a5c9f31d6ee716e0db5c219b01287a8a046bb038939baf2939a2a608674212b5743f6ff99c2a3496cbe21414c646d51399e7048ee398238beb8f0b33806ee33655573074abadfdb22df14952937cacc143c885aa0c7e144e172c1b4690cc6144304475bc02a3cdd84126e3fbbc0d5b6bcc875f89bb4883b7c841d6588a3a5b68a79613d4bb04486a2c10ce76378e07b19824d83ba89a649bb3936e6a060e84b8af0c91e1e6cf9e3b03c00320ecc5b493c88e93f9419c1aa71f27ba194c3022634ad0441f3f36280f6c2e4cbc68aa05a681aa4f16e978b0582e09fbcac4b849800616ff820b5764961e299f462a55a3083477fa15827937c7746e01c22cb1a878dba2ab1d1b5856aab05f3960e4cbc9754351c691c646a29bdbcbae01b670a7284c5a608b8609026a28ad2da69e1d5707770a6c5252917afa476d68ad7c5ca1e9b839aa887e2bc92520552523fac50f29559a803ca9da4fcaa58c1ce05e1d987b05d71ccd4a0eb184a9486819a745010ca92937a16c177c97743cb7fe680617279a0bf40f23a5456ae0346f38a5b346358cf76cf2549528815a272008d748a7a5fb3b9454cfef492b52d350b5710a3f5595e1d6473d2134070733bce526128579d7a80ead61611912644ec5171ba940398301ffb282a0150acf047c25892333514ce4595089c0702d7300a76470ff191b8b8634e56c7cb720ad8429adda29294e1a1a92e06be1e4c4b2a37af7a36515d58873972c1b40336132c0d29c0088989bb4c29ba0cba4b878c8c096c6fcc868efca2d03540f9317adb81b808aa3bd1a118d0ad70aba98792b830c7379012df373820c7e70a7805d357733d543eb657334096fd616c6d1097ab106ccaa3b1460e29047d95726801982a9349aa17edbe89d04a6ce4cc52b24d989327c855acbc39e6b9880a0783166af6d03043bd34eb427b4a8b32676a874b0c18da60759a5248ed4508abfd90723cb161e38058d4cc3b162c75261380c119c712639e50494bf195b0e6a9d4b22803278832d52a6cbfb542f451c777396ea0ba5c9d186c0786180a4a032d12bba793e2e29328c91a40de06b9b754a189c2a01404f2dc7011b036c969b1455f7a6c05b249e83009b52ca5ec643b92c0e4ec9469e3abdfc2b8dbf5638450aa498c345f126782a5c29ac7673a8db84b0f87086da21728067f3193eed391376317450a3acc5ea0322b189f56accb246bdb6ccaf7252c89be8bd846aa9d07995bf2c2c5be82385d77e566c90fd797bd9b2a5dba704d60341b1530cf3f60f231066a06590f6e3c90f1b6bcf5cb316b482c2817462ba2cd3ea4a5f0744db5128b6d07851e15266280414b6710fbbb7da113c8eaa45974c62bdb7b335315e5d093d11e5176f019dddba19b379399c7c88a9911e17d16fc5194b2a1998d219c4a5fb5531ea6e6ad37052a57fb5560ea39719c378b69c902acbd3324f9c29da73145b409a5f79c8629b4853f65d03eca0a8718dfb7295ae3483eee45bdb265638c0511864a0e471a34d839419ccbe42303fd2c51232246e0a6b81d9ab00c50a7fa656893693a8e6e245fa7b119a14336c9a0f57108ecf87a9c249c01d3a214bd42649e092e2c3c8c89a2e4d980b0bba5340330717a01f5b3abd426ccf6bfc3e5bf8969af7278b0c428cc39a36da6a7c0b8bd666a1d07bcd2845718b755d76fa61d3ca51b3b77486708606975fc377b6ee0596a6f37474b91549f6899a3c4e46a5309f035133aab371eb5599809bf32034a73c8d4c0240a306176c6b09135719ce9478d3f8136c189b715c6b4ce6612bdc973f40238994b763065d08308597ca22a3f4a43681cb500a680a476e1110005c6c6acfbc13c91abf636a7eba2a1f1280bf41293f3031a8abf8af4faa1d617a380e925861185a2bc37a806cb8bcf92354a26340481aa0e6230758a667020145057f8fc55b49b530ad5ba6f490c9a73b8fbde960a8d123c648155418b373b1189e10c9f91a4bb15592da329f61682f70e03143846b09c09da648454901ab938928280628d4a57a636397e5ca0f57dab388c65fd6e7bb5a9a0f3f95892973c990f393174bb8aa669bf28322f80a65320bc69b6460be565265e7b8af86587ad9b43f1c3e5a582773045bab8cc6e03329ab1a4e05b33afcf8009dcc67986831d0a60662b427ff5a7b9991017930524bf678c7d461e1bc95fd441a7693c3b842460ee186b3f973b35bad2fc258972c2c309490163109cd6c87a81a2d30bac5c6766e7d151da391a83a2a5e96904cf9f268706b23e8758f514072b43a6d7891a92e57ad6a9b82246a7f3459cb9cbb5e157a957b27c8192407e9820a906cbcad6794e16bae2b0664811400ca22941e576fa6fa1083571ba17884d5073c83b7a7a1ca53a90ac098eb7dd1627c2ec28d61f86fdba69308e27fa50515cdb19445405a3e6c720651ac5199a1085c8ef1995d8db0a43ecabb5229353316780f12258867c65bf257af667da224c271b02f52b8bcf4805bc2031fd9d999b3c825fff0f4c8cf37e52c6007bb4a2b63952a0c223185806aea6700e293f433a97e4b2c8485e6b4ac19ad493c4c16a10a2a884d58f5ee393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 +ciphertext: 1e3160f57717ecbdd089c8bd9d1903423f6f4e6e07c12456a7fd0fd0fb18a48ff577960585daebec1cbc0ee508193dbc0d551797641b93539e55e6efa28cfb16372e6d2ee5056599b92d83b79f4b1897bcd79e1746f132c96e26eb689ba124d38e089c95dd5a965271d392850f9c89f9f4b02b23a747bb5055822ebb3302ceb9fe031dd419f967b2e4ca068dd1708903251b635a04e9af8cca62bc3e08c777255ae8a1a54c9b5474a5866f73c1db5baed82a3c5b241cc26401126bbc5fe31e2a732c7c0294b8237987c47d4141050db42d65b7b924dca224ca75902225c32b604a60269dc0a2607b9e0ba0be02e43fdaaf6e6d3d77e8cb45ed770a966772bcd7f4b2f529bbbedf80170dce8de6b29c71ae8506910f25386695c8eb9bc26f973ffc702f95a2d8bc2c5e543c0f70d68abc7640953259af277f88323b7b6b2f9fa4a4dd726acf97c2f251603bf7c4215eb8996ac763e65c3b5199f154a07531b83db902ab8b3a2e6ca0fe2432a7e8e6524b54a62fccb6168f6de050c1c3b4f2435e9083f796dad25d63d78d53ab346cbc2555e1046c10e2a4db1160bea5d6985312954bb7f3aa0dd77050f5152b9447e59644072480edcc1e03f2e689dd6657cc818afc79db2909ee8a789468241671ca59fbf771aaa3849285d45829e3530a319bdb59b8147e983e3141356ec7711755a255a65d917f681981fe6d3cae99eb767825ccb03ec0d6dc66a8fa2304ef441eb276edcd2c2a8799f79723b335aeb0118699f283e974de2fd19b3669a693652c7db737122f469dc7e13f968145c0b3ea897c6857783ee6f2dd934dff2f017f652ca7ed1dc67456c4c31d91fb38c1c9ed43eac6a5a7eafa49801717c86df8b071cbf3a3a24daef83fed9d5d2d933197a1f90564a74a32c4787406a37899e0542ada950d5f755887f45580fe0e7ee3d7a182a7a349ad80c3a4d7455e5f54712bba91d088c08a77eb569bca7c1429180ede008640340e189130e39be6c59d0167c040fd3849a16842bd67b90ec35ddb76b8e928aee99a404d9ae3701629cc5ae8282f5ccecc165a54b3ae806e32b9754245b4227bf10a93926d75da4c5765dbe2b0dcceda93bf6d8ea1660398c38c83c8a28b9fd57c6aca304b87c34d31e94ac2c4042f2c4d2cc20660bf51ef72bcc5958f3c6c1a1fad735790d89775a5cba879db78277d089bb18efe22354ff1e597bd83824b421c265d6ce4bd80a1fb3bbf0d8780526d30329c49eb123d21b2a88a68f9827ed27631571ba4d6b23655c2d3c325edfbf64cb9e1ff70ca33c3a1b1d303001cfe001cecd5464464f998ea6d319239b9e0f0b89dc9c2c89d8a15e0b510a5840c8c09d5f9cc18df4172e17b00ec65756cfe575ccd3e7cfdbb65285bf93c9e8127f9ea0c4b8df5ea9815a1fd78587635211bf1b8c97a70659df0423feaea6b33e3297ca0ea5e4c782d35369e6978d0edfc109dabe660a4a872ebd259cdf0b5200397e57534ef622de6183bb3a2e988c5b8239ab63cdf89a2581521211ded4badc1 +result: pass +shared_secret: b0978add3085e1c972bfaf86655a287946f3853cfb372f6fa5813a11b6c4e103 + +# Official test vector 63, seed: "d995d38f934b6e1a7ca77c9522e3d037676cc939b0c8bd4b84394b3dc91a791f09d2d97199258c9943da955e7f7b26fc" +private_key: 8d3542bfa71c67eb9c7a824d7179882305ad248622b6dabebf2c435436bb86777a43380bfe26126b1089399cc3816a435621643d354d7b4989646381b6393851822276641698a597cb173f0888a3db31529a41492a5201608a30cea5114ff52686e874a676c8c9a6a5b8429451c294842904f5d4327f6a3bc30b7ebf35be21aca79126b8c3827f7dba4474e308fd9b2f4a80982d93b4c6bcb05956b5295a59a6703e8b6c4e254606fcb353ce2c2649ab07f8e8275b8536e204847f774e5b7a94dafb15a2c5571d107ee771941bec00519c1b2ee464b12b0cb4c002320c0997e5c516f402960b33363c57851a72989a5570420da7dc1d5ea5c885796bb43a9030f105e58546510129c4506b89a62f03337890d89a40ea2ad1e62ba420a321180108a8a1abaa124c5613c4cb680ed621149315c734209530185ea709d6538ebd8c2eccc6c58a1755df1090881b1ca516155b3458800735f98282b1b1af72697c6de29be547cde7f64ca29b6070cab2f9246e068c99777987c86885ef65340e868196b040007784464cb9b7f30a8410b1bf363436e657b1bc2c62d5c14a8ac3d6b636f7714b641560a0e88eb5982f36c3ce94c14a7fb979ba5110a633a2b70517c0eb0e79512844b50ed0c1b41e68bc3f1224c4cb03cda780a5105e2ce01a4921193dd86ab7f41997f893a5947464e32b2092c48fdb1d84c71a74f087e25596cb21056349b15fc73b838bc679f49ab5041fa9d53049070de760b5f574b2d9ab48d5328cb799ae5efa0c17855ad57001f2cab922c4788fa6be39b1b9656a11be63c57cbca770e5217f54b5d61990c3409d0e1306667b228a27425605b9b5802b6b795ff5a5a423138c098b4758553c14ca7a198c9960e806b2a51ee39a0fc9c7136a876187963b02e6c6e4365a33eb1dd938ad6d2510f3c873eca835c9176b4ff5921ef52dd1f671a85368ca35b878347e42b3a3e42b731fd4051f37ad84f5a1b16c72512aa959e8b0c7107a5454ab96b585099b1db79745311a80ceb070c69b1fec37598fb63f32ac282611a5c37337a0c44c960c35800018e2e1c040978260b50cb51217a22104634118d4287e88045229998a7ceac32f532c48358ed48929d7133d67ba96087586bbb37107f5423dc56f84d390ff281ffb8344139caafbcb140d065912678f8ee44cc3c78c681cbe530637de1cab0d0112dc023163031f7cd70b4d7ac2bd43678989412b0804add344f6541e007a46fbd79dbfd4156892a2d18a05c34c028f46ade763103a079d03a3945ea614d8ccc84ffabcfd300acf38c319b32d92bb18a3870219307c0394546de89e738a9f7d88c767825823b2bc0c368990681d183a1d3078b3bd43cf2f47727fa8bc6a4607928090f57c74539ac06413567c4c968c9ca8c5da0632799526b3b9df7c6271aa4906371b46c0b134a7c1d5709d8548485bb2103eaa27bd515d409cc07db2530a569c1d617a218aa215b7a2bfb0999e791f35d07d1b5b12cfe53dee8a8edc91725b138b1fc7001955991dd32bb9196cf41acfdc773899aa1ecab0854203b421406eeb85820e2116aa746466c49837a69d8e18af5d82c3a0fa0777f9800a187f327ca08e0c1e29e13dfd0ab97eac95cb2439a4d5171062a42523cc5ec7caa414654394003942aeeb720d4320c10d609de9c397d0790c585398fe0c42374ac2d220bdc6f507fe62cc592bcab77bb0a5f4ce73a380ba3640b4e491343ab7a33310e7f04c130a70f75b75e6aca5306837e9ac03c84b01c3fa4f5032069f492cfeac1585054a9fc4271da3636639aef3a065f2857a32d590e416866e71ab92d2ac27cca217756b528776a6319014867816d00837e476afc08d5da82293d37042709567052370b553cc925043957eaa3c34d2810a28163e9f4807b492301a4aaa232b1834db5932d20d8866a37fa312ca9cb129116634e95d551764487c384cf00b35682927808a28660d92e51610c68edc994c76a95549c79c162487d445293f0758a43b525b04477c2c50a47a963531b727964828c5b567fb538432c92a8c5a0be6136b9b05c2e68353d5787a0a455dba373ce60f40c4b48be8723ff760ece23d135887be491157b6b4dc8591b5046735c5588cb405057b96de0097f158c67223c5a854be20238126f1203dc59ba6d5bee4d7aa52f1a92441cb23340820d9afe134097bc8512bba1d2097201d6b7952641369649eecb884a4c35848314d2618c283ba9b343922b7cc18bea9cd1a4a3597c146d433692d15c55172847b9cbdda7a049ee455e5e43f6b18a80e60ca48822b1061835431644ee1b307d581add3b21df3367350bde75b1366505b0c88302eb1c6b164290e29204fb005f81567571552a6e22638a0018bdc94e768a9ecc7cc20e50ebc8bc9774c7caea9a1fbe1cc6c925f3fe70fe2f523fa9017b714b7ba820968b3898c1410b7e46fc54226c2c15056ea0ee2c071635b70fea288b88c9cb43a1faad97671e763d04b173426224cf217b2937246ca012edc14c529a2e2d47bf3b15b96804590e5241254a3b1e6a29378522ca0b2598491509127869a1a73dc2f334386c3bc7542f5bab81c89e938071892709f3744ed560c77d43d6ddc2537c544a4f64b19d55917165001bb74d93a1437835442c83b989bbc22ca67e6f96fd44787b8865f759419a409b78f209dc87a89e3ec883441c3ea39627c2524c4f88625594c2b0b5798386866a2c9d45c2d50d438d61c571564040893ba00a7752eb28fbf6b737088103c2a0fdfc87d99b978d2521949683b7dcc98b644504c297905d2417649c0a60ab70b5c674783739fac213f1ac5c5d69f7fe32c5995073e846d12da57cf17a73fb70fe8e7013d681dfb393a4b40922a654473c40b50249362e4aecd22515f256250365660177bf345a2cbd0884933b45d7ac67ef3871969bcf94570adc7bbc2cc948f82b7731a8bf0f980a3c373d30a4e85e1482686ae98501810c28108670078830254b7ccfca27bb0c57c56490e1a5b593816923d722d7c433534980293a1ce65219e0245a2fa049d9fb10fb54917ad82019a51212f0086afa520f34799a0361a083211a415a42b36237d40a5138c5ecfd7c70f5b084a05156df817071b709e745eb3e0252be9b1d89247b6917c72bb9e3ee78dcfb819ef5308f2aa4375578c72d02c348b16fde51f80602d0fe50da8bb5be6598fda0bb8bb1987de7bc575832baf123948215b833821afb7087a65014511a50e800cf6714ab446e189261a2a3dbac768c1e9e232985c430516bd8e18c79aef56cdb533df23b37987c6b557e4c0f8fa9e466312f19e7e90cd0a67abe6a145cbca9d44eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 +ciphertext: 37bbc380432e6694f627007ed8d97fbb1301d6b3b484e0e9748b2a8139a51cfdd6e4c610dae8a78c20619d5f9c2fdcd9e402c3fce6459fdf81d799a358dc312a792841a6888538f635ebd0e1efa47321c1ab7b83ef8a202385321201ea04de13575cc3e535a8e8f1d2bf01397150b0b0aa3d4dd9d2f569a4319f6c714f1ce71ef1521881c1413ec9cb86c02a71c7417e7745ec61de2605297c7dc0b04a5d65d21a22849c5b934c74b2acf39c7899b109e956902e8c89d9d72e664c5c733e7437d16a8535d5f7c8647359ba6b82872676531449899c1034a8e8e0b25c6ed1cba2b7525c303e91ddb814a532f265e88c1c4a07b9e0a602f4c50cbc63f14edeb72246611b65b0aa25462e76c99f84e10aacda4250d817901580a6a5b71ad65df385b8974ae98444cb5858e93f931836821b60aa3a61ee73c7aa7fa626583a0a448fc4d5965f6bb34503d1d9d2f083e38effdac841fbe0ecaa0f28f045dbd7c75cab756628d688bc7662fe2791df1674bf49b4c9d2a0ffc899deb2135aa358cd3d61252ff09a1460188d598b4c6409bb368f687b0a17ba5dedec59cfff68b83e0f27375f399cfaa3d43677bcce1cf338175871675128eda0ad04c03dba2974347f8500886a45961fdae190775256aab5a718a03e9b003d8b060afd8f33722a308f410a78323b06026d65a60d54012d09b4f7c730ffc53639bd36b510a5e24508f0f02f537f6b55a1e8f947b10dbef06ec6f5d1459d04c65db7db9a1789c160e6aa7708035f18db7d9b13d63cd8c248aafb2c95f2267d57539fd0a19d73643b481e9e8b8e309a6a546538f24cb99747bf56f62631d7cff279c4526b2b8652a5781728f63504a2935511b82f79704f2e6e6940a689ae13d6ec77202899deb2ed545b55188d0b132a42fbbe9b997d3aa146d44ab826fd548f7af1aaf8867b78d58355d072c9c46785850367819dd091ce58c1254e71f7d3129f0cd81b0161de7d5f455b1ca018ee5af5d7667a7ba14766429294d502d0d7d80d505e0f0dec5717f9532249933892f1986f077c5ab87470d583e16b79305f21bbac090cbb5e11d9bc7c854836b9dfe1f55b53daf9c7e059ea1c7a94dd7360404bfcddce0db43c050e5d866cb989b57c69997e7fbcc39960e2d86a48bb9ee83770ca896d9f8a3e74015bd0b8b9fe46fbe582553842a8b9fde8182f021cca6ea995190c3dddb92f6a6eb75786eed3414581a65b9d6097af2b4143df4430bb7c20cfb458d0226639c05f83f920050205d465a50ddc04b61999bf1d595422f5d0a4839d7ac808943fab948423600145ed175a1992fe37696885903e23db37f47d75fd690b7a3acde97335c83d8823d352c00dd0dfe3ec585c1d3b495f8b429e567463b870a5df1c992e7719ff348a541a39a60052ca9c78ae6fc1c07cdd57ba7c44ff595bff6954c3ac984c148ee6f2cab32340d495f56034e37f6f86612cd1115b1bdf495c0aa1fc2f02a5d6bd196de7dd7091485e842afd748e78972af4e3afe9b4b9bb5969ae08e608ae8d +result: pass +shared_secret: b888ef3a969e162edab17c3d3de9ca682de60a0fd6ac97e1b5a54171dba12a3f + +# Official test vector 64, seed: "5929f02a271725cb40200de32d9d03d8bea53b53ac83186c42c7f565ccb1ca508305d470850cf86e9b2c61a5b8ca1c93" +private_key: a89cac07514fd7ea49de1c8a4aaa75ccf901439529ee48160b4acb10885320b568b9377b475b180cec4c3ea2a1f6584df841b54bc8147ec79457896e24b3592a4864defc44f4e811cac6adec8c91c46bbe80d0ccd9f08e4fdb6fe1509e4932cfae8bbd3d299a389402c0e16e9f44bbb34729ec9ab7e56906491a538681607ea7af800abc2040b2411596c1e9669b2c57fed92d1de814b0351f7c99ba49613e8b8c5348d49142141fd104a6c43c66906c389903b91fccb4e3a4245049c134291b67d0c596894cacc026caf067014415d1335829795443c4924e38308da8b229c129c0ba43b98bcad09a20fe4143607c5117fcc1bb89bec1a32c1882b6c733ab4292158b71a76305856bec631532bf830309d7833e09095e008473ac0928db8202bc971821125ff288054348608978417314ca916a3f2596253cca6018c990c3c54c858c33438b28723889cdfa2a5efb9c20b11ed6228560f897c5b5adb6a3a505e4c7138c68cf550d3cf9c21ee12d83f9baa9778707075ce5ca7e319172a0a926e96b421d0c1a3abc2029a3adc2abb5163a51f07924ea727d979996fe4949fb7892a74c1649da7a382426ccaa0d825766abf51d8390bdf6116d107510a1529af44b37d6561feabb8b0704be246632f58a7968db7d3835bad6c49b29429b9a443571a1c2b1b1c8bddb690b387f5f9798ecbc84d0567d53676e93c38a38b63ea8620702c13be48ab37e02c303b2250c45baad168cbab8b87e7cb9f9e55073dc0d375a88ca92c0370b161bb35f4d4a74d6f1a4402bc32a0b50d8ab576834c15305a7ec70525d5b42fab77286dccde4d6cb79aa7c46f425209064622a86ee94a6f5f3a6f23536b63c9ab5f8bbcd148a30d46fef07c4605b2b81b75d46332b340b6719a735078c3508925f5fd4c1107c69a560cce9f74041fb521fa61a552a756bf638c88a61f103ba9adc02787a398bc35abe3993553ac0118124ec4c67a706c3fc60796ca531ee28ad89172ed5ca12bbc84cfeeb35885abdfb5061d6f774c17c1d5755c437cb7827d8107ca8b420d07331d762e73622bd22b4373ccf918c0b08a954d6ca33a1020127346b981cb750842b9edcac1cb9a6d482cd00a80136575017dac0b0345819a3a099d859c2da56a45523d3e776feca225e5a464300648845bec13b332f3bc78a497a41db4f8e88cd18694887a3babb3a97838519d3c0375e95cdec5596e0486c4a354085201e0ca9c6fbd1754cdaa05a9b204f602793aaae97d240ad11ab2c54cd0eb897f76cbd851038b09ab1442b081e6122e5b495570a7bf8363d3ae1c793a9206785b59204b1e7a46974f2cdaf9ab6d830457788921e72862a499f1ea938d08481ea103b9d6b0294bc0c5f90b6b0566ffa897592bbbc3738a0e69cc5e5a127c1622e6f245fa4607e49064aed22c7d082c62994b419807ec9d8b0c7cc3c993c3f1e2538ba21c21dc885fdc8beac5963ce9732c34a0c34637bb368a87bf2452463cd5e66275e94650d7766845bae2d79bb30336adab7aabe52774e5198af3c9ef532cc5c27780849b1cc8427eb1b451591aabc5cc5a7461a578a36ac371c66841c0ff05a90e41e79acb69c31459bc30dff0aa24452709407af616571fef73bf834c480630b9532b244d09c8f936e951961bce56157f237b0919097222df3bc6e61f47d846479a1a5bcefda59cdd8b067d19db6d9586fab2fda9b550c5170c2772ad5a4af4a67a19d215e45575e83a8ba5f099e4358a9e493677ce177f36a0f594912b6b850d3f719c155c01b68bf1dc89ccfacccfc6cc38a34ce5b4c48d2e17dd2946f493a357b1105265153c04a98992c949ed774588925c697284bc537b4d795de0463335aacbf80b10cd0a03a88256c220c3d0074ffc6c8c913c919aa19f25206a1cb7d40a50c6f55960a2298881a71a1dbc92a69371dc9a95d45a7bd6547be9414f4c31ebfd3553b89cfd9ac05727b06bbab300ecab599da76a62b97541cb3474b7390cc49942678add66d265772f55515e0623192668fe4c5273e3176bcdc52fceb081dcaa4ed699dedc59b01a29363070567772daddbcf8605bdd1268882a355ca4163ece88637e932c56c43405ac3844949c819646e394dbdaa475e62ac0463b8ce257520b3b4e141057449621b449c09c5b72d10464e59bdf2702a7f4ba1c1c6301bf51ec41bcbdddc4a069abe46d37c09050b28b073f2216a06d501bc38640600185227a63d224589a43391097226d67240619e2804589f4917db7391a4fab6778c91ef30aa41655e3e433854a52c9ce8130b802e82204bbe894517f1bbb4458616b0c309020ecfcc17f6b69cd0bc688963af0fec8f567a86ceabc9a0383681d3729a612987862e2972b6393c2c93a32861073ac3eb1cc636a52dcc23e6ea0af7d3af49f81858743962978245db5a70c34e90c64560b87ef29b5b568a716904c8326481db98c81cca47cec76e32003b36b26aece764c5551ac07c4bbce094b6772b2faa27b518ca5b96094d178f68a7409992ba7fb776117c66e97cb0be6854908aa8203aa916d26f3118842689a5347ba29d337599799691729b812961720cb80ff993d8a124e2027effa1baad40a17b564b0412681a6005888c0e27992faaa370ea3954775949a553b75aa35d5956373da54da7eb51c7e68c05777760c6b9b0a78ff2f34312876f2db27898d3aa4a187110402537f2aac7373751954f3bbc5445da3907429fbc817fb0a732bf4077d4630c93a4bf6785274019c5de6c3d8a66441620491a8537ffa1a50f0baac622cc765052ae0049eabb20d05b987b303d17714c4e79814dc5cc9593bab612359d0c7a3bc9614d0c8eb4e0a7c740520e077e2215bbbcb693a92c0293ca28b4d0ce316b5e14e165fe4745f9665c36a651a6a8ac11a162b4a111e40851ec2b29dba05590140d28aa945b42310659111a4033f972bc0163bc26a5872957c6977bbf8d727d65a8c806b4699050c994bb85651a40c6d590c337c680306fc231b7487305c4155654471c3003b93c206cda82c19f7b047e12b5cb94490f4bc850c4668b366bcb23bff1a744dd3362e94cbbc658178a012d9b784d12e965f4592067b636ed3ca3bdd89c0b30c8bf798f2282c49ed3835b70ab1ebc761b880e0779b5aa34acaea40c83eb0babd6ca11398759415252064c4e70b62d4cc813d346ca789eb86b5d3606bc3239758a62b5f76a709b602ad6987228433a01a8aeffcc22d0d315d59b15e8aca53b02fd160c62db910fddaaabbc4c2df1256095317cdff9f1e7ebcc48f838210130a5771b76066feb7f606a82cce122964da1be0b6872ee319832214ec677738c3fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d +ciphertext: 30925699a42d6bf2ab41628a20e814758a8700044fab7c3b14188ee52c8208d9641636d721d2ec32ac32436deacdf6e4786c3ea44353cebdb1827cfbd550d209461b6a14b1170893a28e84205734ebf74c171d70ca82b20b4260b3f86f7ad4c2acddb7f4c8aa82c55d6d55b8e43575ecb5bca8ef011ba9b9ac616dfc7b3e3030dbb7a0ea6b45e36155dea786c6c2643437930bd8130d8051e70506adbc396d64a68553140e91f47df35c19a79a096bebb25f0e420eddad682d21b374fbc606d5939a1d2493b43111fc71384f57b8c03817db1f9e4d0e4c5e7157a119743968948929d3b96e3ecbbd10b5f72a9f45e52f6145509aad69f8ca70d55b28edb2802a94c2cced9ae537259072b55298bd9ac0d98db002cffa8e94f9494fcb4b2da810b2244670e00aa6ded8ddba746957dcc34d537db9447577e19ab7ff1411ff6c68e7e40a3575b1389d8817a17c8cde4c93e572316dd029f4f21fe3e62d477f52480bbb527820175ceac30ee25fbed3ae258fc0786aca81ee2053e078c6bbb30d169782c74fe0ba4c8488e2ad4c334dbecfb2255dd7be3a95992e3f6a0ed5cb1f86e2b99a5a5f64ae5c810f8a6e72d2f27f8daf0c60a6d7e994cd231391ffc7edb3195bdbcd5f63acecc14b6c7f19f6d889616e8e2a5ce63c3bc0e2209d30988a1b689c968f9402b49c0f881dac8ab899433872e423ac06f5b35b483859e45b0f6fec52334d7582a6149fd984237c5f14369549c261e8e7246664b21e05725f953b21b49eb33b7eaf612a4231efb0abe4bd8f36b981f4f1ef5a57a4d27373510d1bf9c0a5b77625314a125633233c6902260e705b4995ae34b6f90eb1298cf9726a60441ba5c8d24c474ef73c02583632474956651700f318a88718519e8c7baf48f4b571aae56410d6e0d83a50ab3fb4115a1bc2272ad443b5bc5e6ae3daad6797257cf9868287486a217c631814db311226b6122d9acd2de042a95b03983261bcf902a82fc7f6c0db0e293bba27eafe29c6947f35c1e0180179b2d2872a85a63bca18a9ff5ecd144ceece9a48c68b8b6775ff1db3b9772abdf3dd6ab6d3d964da1adb4a035ed097cfafed937563125c95d7aa851d6b3387d15f7b0cf855d264a46a6732f097969872e5c1bbbac0e0853046473deea8a0ae4cfbfd1fac86d5620a3b4501fc961e4be1949e3a258bdee7d2abf4424f0a401dea2f5b0dbf7a8c82983eb1db1f69c827d4f24e36fabf34772bbce108cdc0106c074c2e30851f85fd47777e979716290eaa515e69390e6a95038fb018f240bf722fd947bffbf82373bdc8d7d78d739e119a5157294cfad5ed0899e864bb6f091e861bbe785b4773fd9b6f0ab758f2f71fe292179651da6046dff6e51caf05136e8ca7a2a60ed74015e6b8a3bb5637884d6df4ebe24b523548f5ff7ec6e42ce750a47127d5d7c312d15699722a6234d9f6a8fd51b9f3ad16a027c0a2d56efcd4bab05f5efa3ce4004ba9eb6d36329edf625c18dff3a94c5a430c3a00828a9080d9bf166a5973b60c9541 +result: pass +shared_secret: 2fc09a1852f458bc7afb58baea4d6e318bf6801e7804b98cfc250b0a1470c598 + +# Official test vector 65, seed: "905074033d7b75deb2d06a2f29144eb377b452534c5710632989f02d45312d156557e96d4486020826db200153bc4a8b" +private_key: 8a4487c253844156a9eb333c710c70398293058632014350817b2d98d68b4e0c536ee79febe01f3f423836e34436600866ca139193376db576f3920d47181eb7b2264cfa494ddb768bb10ddc002d55d25724d20f9d125cf6718466d7840941cd4783bbffe342f4a584cab59e0322ca151bcaa29bc76dfc0afc525e0791b3f9e6279d56cfc4775d84054b51e604d5ebc1a8922d783c840a9b00cdc58da2ec4a5fc1bda820622e5c10051c3c041571685697bd49ceecfa455e11af28e8a8f9c0b6c74314d2dcb8b571c5d78a7ca354567338344a305338897241d3991f3b4bf448479bb36f9fd3183c703f57f5903918bb71fcc701f586ea719e2e8183ce605575819514f4c59b72aa76bc6c0bfcb7fd19c51ef3612d45a9ecb396cf5b13c96a0bd7d3cd70a84a2ed11e66fa39c5967d080b8f7106bf00a81d208c66fa31c94e548e50849c992608db9c0ac1816ade777d36a04e6989ae0d5c1a703541f2f2ccd4570e9657cdb17202880c0c5ac3ab15b13552f91632255b02eb9db48973a3990495900acfd3b3301b38bfc4374758b0d6956241600033b55f30da2f8d1a046c27c80a403b935905f455943b0459a9a5046bc9cf54b82e175a34e628bf529a225ee25b07d73bcc4a80fd4580dd0ab679185718e5c196e25f4bc89c206409a5bb0d1c233837776832338a1d1b907e493c6240b0c6524a9e542b91f48080011b3ac1ac062bb528399b04c3bcf114a0f46424cef1c1bbb675b1999c8ddb883e7b40a1ba5ca13875bb022d8c088c810601ab2c4844aa916ec2348af4c28b552c08e970e535cb674b388bca5d3566a6edf10d10856b2eeb796bd8cb8b503f2bcc7cbecc528ed121bde4782f717e5f63658cb7251694bf0a4c2ea4d98abc70a4d87994a3317a206c34ae972a54e74d235418a5790cadc9333f2c9c349744bceb28d5bc7ae1521ab708cca937a9e10072f412a26037312145500eea42d04a549edba62185a93c1cadfbc4721fe827db83c4fcca759d575eff93848baa22d23b5a659cc5c3c3608684229bd736dc6452690c742a59b9c9e9adf6aa0fae27664a28c1490bcdf1865802a9ba2a6b49951b3753c12f3ed57fc88bae34d21befb269aa3663793b56fe162a2a47643ffab946f94cd012479f5bcd1a6a6b8019bcc4d38e180bb993d319f43ac809cc2bb8a63c9d2854ab569da8f7c0b1b24088056d799b49d6cc12bcd15ad75c5dade497ad0b312b9739214098bcf2cf90604a72013c3b52994a691105c4060657493947be3b0a6cfa91b83580457da7a6411a984cc661f0b7c59a012c5fa895096a354eea5abf893e2eb7389d0a649481421b13201ae66e3b3b4fbe6818d0f47ef7477f14e792b35ab3fb2737f9ea1c75a3001445920c2b1c65c38ea42a02d017c93924c4b3e7492574c368401276643549f5afb69177a4d807937102686958a1d564a8184624fc47e713b7d9728ae6cbcff5c52ba4966429b9c0dc659081156bc7c398d9a9bd4807907b307b1501a8bb518268897dc8610b649494aab4743e5ac392568b771433808476e6b32dda6940865c3e43077e0d9bbcee84cfcb523895b36c5596880f036648f37d483138bdf24c40d182ceba0dd3e26236509aa06326ff5cc174f51d963cb5e5b1290eaab649c91d1a03b9cb45400087248ee90f5b9509b9d44f27e814b55b5d7fd341bb663523cccca02c277f1a12f2e054008405dd7b8fb5b78f200266d62b00db2665a728b9231b99d957904d4278c9b99933972006c0afb2d46ab58810bd59492891a77f96b7e9d06eeac63cd9e3a2039a1f30ab0eb4e6a7dbe875253174f2519092761e9684c00726b8548aaf2ab3bf79c8255ec6c1591234672acad20c0bec4a5ff7b4ab4442c2982799d0203f1ddb53a260b95b51980025140556582a0c5dd9d20bfe542f79a743d45095b25c9565c1bfd1d82e5dbabbf37b934bd43a9af92ae5bac65570cd0586621708a30d8371dde11abdb8079616896533b90611a58843ca38f6105164b1de4b227b0c4b14749f5833c5f76cb5aec703b2eca6fa40c7bd224059a4938bf125653901d5d80cb4fa7213e9136d7c0a4f2059865911f68c19eff169af063e76887f192359e5e60516a92fb1842af25599aaf530b08a171d35be896590ef3a9b7878b4a3764a3bc2a800613ef1c2a31fec6ff7a8c8c4e0158202c4ffd35c1a45738d1ca197f23b8858a31dc60770e38796da35136500ec868e209217b9a10c7ae465848c82e815490da5becb32a55973aadc18afb2172c0d086de7e21d309226fd549219c0aae0c672bbe832c515811584ae3e4a59ba98a80e2a0386a187036961b4f6abeb6a84ae8b55b4e95cc9e812be00ba0925ce00ec3390e7936b52482b420b9d051f91a117122a0778c2434cb661ad59050342c63ce986e1b590d2b0b81ff4c3a1bb5a9ab4cebfa96c9f072ddf8332f5a3ad0a156fb5b6b35e38a595f30f2156815656cc487313c75952dcc12adb5b0528ca68bd53bcb1f750d5f24d15d54e83b165440528d83057fa12a983aaad4048c53c62c4a789b82728a94caaa50f7a7df6fc7d07c76727882fb8aab09811a611c5188dabc366494263cb8eafb78eb40a7f33763ea9b51318f0ac1a7a34be71aaf436ae4248346a7a25e2dcbaab226111d96d5d9165b946ae29283118bc34a46409f2eb37c469a36311caa843c112ea83c0364ec2b8b6e9ec68cb8485bfd87ff560912ff21c43d59a1476952e82a2d3f3a00cfb7c49a61e9216b728fcc30861a23e171c2c7954fd85528d911682066db1a062b50a5a11cc385db16d4f4b81785c9b8368575409738683847cd46f9389128414082c5515b5b3310658c54be69a6c3b02b5e0a1b6627e0512999862acc0b34340172a9a0b144627cac4d36fe8d71272e6ac69ac94d1f8c250515580b85d8ab300bb29b43b02195ea7c966947bff9cc323d017b48bb4f6a88b0201956e095b8092b250b53dd9f58ca90b28eab574034372d9f8305b39668bc90e2b6bb77257252b0bc36ee68ad25a7c883691a494c5626b5bd870c45a06ced4f39fc7e21958811a7b7cc93410b2fd8245b45b7462f72033d86ef2fb9b173397bbccbacaaa7177760202a8748b440f82d49218331c3760918c640dc58073883b5721548ed6e529d7f95e02a65cd7bbc3383317fbb166bf751f47fcc216513742596c2e9bb75ee80d2dc16d036b1d45102bc2275aa09b8800213f67dba3987a2f5efa1ae2c7868ce276c5110f462e65b39b2f4f753b3a3d41eeb50f7aa17723bb620b800aa3dbdab7fc31fcd120f19fe976236711e58b4ad172d25ce01eb88bc9d6d051c56564a0db11d7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d +ciphertext: 8c7069e91b0600eb165920b709b2d3e91971713faf427499bd83f286ae5c72662f583f78fc9401043582106b94c1c39c8f9348501f0c0fb580c3a40bfcec4eae177b1d73a76bf20ede2695a5a00de71403734584ac92653eaae46a696473e3b356addbe195d060888a9db895fb18f5319fa436b40b9c1d8e073fcf305b7de0d2feae428d32195c502eee3b5105b925460700ac87a55745bf1cd8481274ad8168a206b64c07f290f4433d8fcb9a068b5ff77d81d50b177605a96a3fdaf6566d6ebe5d793e8bf87be1db2ce45d61abd3613e363038cdfd4d600b37db3881b2c56f8f8ab7bc48dc86f82eedd207b7568c07dc0c5f1d656c0ec4e7c2f157587c7c2b76dc1cea2445e19b05064b9257a9137debc0ccfa0fbb723c3f320f5a8cfd1d032971336d1599d03802a74696101f8fd1b584102155c46a4c7283a6ec6e6bf9ad60e286277e05731e105b76ba4f992f37d30d59b4c224b0b44b74ea34113f6346a481977ebaffb36c291fbfaa058776effeb17e11896a22fdc1d7649a11e33cd7d22ea7655b641b5957fdf542acea5aa2d7667ad0392da7c596c8bdf38954247bcb6cb77a6e66b509dd55c2904ebc3188a1ba8e017191133c66ce9c656d7bec4464f542be009e3850a27ee58cb4a5374220226ce305cc45b98fd094dc9e2dab7acb5fca8d4563cb156f81800824031a6f342f6dc83da64184028a3a90d0d654eca4814f034bd1a452a41564cbf5f7865c9309bbdc34702a06a789709497dff45644cfe356ac9646c3ccd6ef51e48fc81b518e90d9c4f68035f1a878c893b6a7311aafa3f8a4ba6e194756e6c392dca34d51804022cd6bef7cc06eb69ddde31453387aab8c6925c7faa30bc6466d67c35512ff3094dd62c0b5a3316e8db4d8813a3bcbbb6f46aae9e17dea7ec7aab80dc9c099bf062e1006fca6cd8cb561850507e4a0760bbdbddc5a6efcdcebb861bff73e61bcbf51c7d150f5a2a531034899eb0c1975b2503722325d0229d710948d68968d662a8bf8e73a29d98c8dcb3bc128db82d1bf1894fd617d85ac70ec52214b348bc08cdba7a5ead6a7d97d2ef640bc06d71079e5d4626a4d7adb058170a07c224d123f8e0a11836696e95d5180e43169aa81e5b6e684b5d4cad7c29379de9eef671ad2d7dd8d4285a4983b2413bba4c1362a3ae57bef857d2acbf492e1ffbfc93d71fae367adcdc0bb96a76d31c4a72f5ac2164cc627f86b8dea3c175a34ca0c8b9c10b25ed2ff4327d9c683e3f9f92e69a41c59d7964d8396d06a100debd1b6d6e1051cfc17d8f8b3239ffae2d10f36904089654edbc130dc8a5838ef8daf78947800fcc084db7614afb6acdc3af16d9f2c80bee61f54d9b843d485382aca76fef93b64a33c20ec9cec415f49df42ab2799ef3b1a05c37584c9c5874def12329eb9bc047ea70927f5adeafdfa0f24e75ac4e7c4fce2d96f774a97872795036c69e6c412a4b4fc0dcda336d8eb9207623b7f263870a705df4ec5ef264c016caec1d496d5f9859c1f331d4214b13b1a +result: pass +shared_secret: 930131d3145d5485f06c16a9420a612330843e6524dd74654a85c383e28f2cc1 + +# Official test vector 66, seed: "a3e2e511afa7bb560446bdadf67d2ee2e16ffc7baeae7efb8c5455068bbd4e91bf9be9d98b280072faba7712c75b26d4" +private_key: 5a837a98d1b7d23c06ac804f9008924221681a5b35141311b383a995a75dcac87baf79b484eac622a6a594cb1ddf122030096548285bf7da99f27a8033f1ad1e442e3452913092a0f666ce6a910968e00b1785658c576fac3a68ac13abdb91255f6b5104d26750894e02a9610a632b558b4739858f72b9ced305cbf9c6929a7664ec49b6f6d18f728664953b77427180e6b2895ba6a56b391cb1263c5154061e1a4c4da221418b363f09c669c6918e911e793b92249885299923783ccee355330118199deb5a4c6890c5e61e45a2c89b3a74657686a9b1987834b309e074133a34a4a11ae92a9bb6a4af14c15b2705252fb69cdd159f5084159681183fd01287555a3ad3314871483c8040cc20894d4a5aa239cca6c733fe17220e55394c2a2063d30497716255bbabdef6c71a925a24f201b096a39ab3caa54438222b23f6c16f07910bb04a04aa1c8299053855f4a8cc852df639ce559abdb7e1a5ec9861491269bb829226bc1e99f392c1c6364d64886aea98f0e25c1f27862fa64aeb017b73f30aaf8cccf543c6e054b23b33bf926125cb263f844c70832aa6f9d66141903aac5b7ee78734949196c54a558210c91ef006e266acf833c77fd97f75b8800178b6e2b89a81764f9e851189e2ab41dacd5ec31604396d5811641ff21a40f9c45bc947aed2c629b457684252cb713de7d25955a66dd6e801bff34028101a21d10c3a6624c234b0640b4c26140e345b778a04929a596176d922dcf737f5198f677467f2990ddd5194fbb5bba6ac7a8f2c90801131bd1c9fc50cce2c802ad8da968fb71acd79ca2abb87991b90e2a76e5d547d96c4a300c32c0da3c29bb40d611b7923c4b6796b8dabe5a277ec1b444050f0b17221744e38582f95faca6807b566948203f00a0b4a8a77f724c067c5c464cb59b8547ed3b2851b9f8eda807317b5147533ab879a26b982187366bfc50266435dc2a96e8b104694f63c355435d6030aab601755b30b38e3434352660ce98e89528e9c54245846c58e914363d61d33d825b1c8c6ae439e6959743f3b6f2b762916f65f6e765044b4a3a6244c37b1b0a671779a840cdc5a7db3703a670c4f5e9c65c9bc814356b4aed09f60162ecd143f86e3b81071c917124615821e4c5bc98b312d2ff525d178a61efa0d465565e5700de4069d3c7864fd15aa9bd4c49242b0cff231aed9a270e41aa5c29e74787524a6085a129795ab5c9049c985304478578a907903aea16934f73dcdd17ed1fab3c629605bd1aef9d16b674a6411123a0ecbc718927b18642acef5a055d47af694c34b300ab6296dc2884984441eafc861ffd7767f306b7cc72f3580ad5214aa130a7e89c634c6b1923415c75dd0a256461ee6f94271027779d0b79c8b943ca32c2f62832a04cfc79786eb017f561c0c5eaa60bb44800e2ccccbd64755c8b6008bc89c52827e737dbb37ababe87980407c503cc5972a34c76913f37085c699b4a95ba473e21c14080d26315db9f17969f6b629b48de94309140104f7dbb4511a8977266101c26f5b1c78e3896e051202ebf9a5621797c775b1a2b3b7f3a53cfb9c90a545473000569214c151088a082a237a8aababa3b69bd3cd415cc1f9ac91c5e450ab970d5cc6678db12ae81962959a3d68d8a4fae40ed343cbd2e84322e2342cba7756328fb5c80a3fe07295db0e136621f8acb8eed4685cf21bb28a7fd34a9c6af4a8d1fbc8db21ac4d334afe1b71b87cc1ddba5501d38dd7e74c6c502ba04b8d1039322734418dc438fca99d0bf44f700ca473d07c0ad5094181bad2e90910c08478920461c750aaea6658112933753153aa9bdf090ef91a3f08e7c07278369df0bea9220b7d4c6b6f6a7135a5084aa54ddd270e9d41128d1944d8e7c3e1ac11a4089fe4541324db369445b5afecc41406b277e8bb93f310de57b55deabd8d2ccd2e9a417ed916ebba260e0baf95ebc0fbfc0a1b63b6f5342b3ed7c1ff4135f0a26c3daa7e2d60bbab8051123628abbb3cf9fc6369a46d4deb7ec0032847d7474356aec9a417cae8b62c9c7bf3b077eaf52c622b6a2bfa6ac49a9cebacce996a29f89acf9349363606a86a6696481233c73b273e847798b530b8662194896e22ebbd8f3640864791964069684338f453710d841aa83a2997316fc3ba06e7d6a3855cada69c35cc801cb49928ec66a56cb8a28deb2329d75c6545251ebb8526903a13f5174119b9c2037b06c165d2012723bc817297c42465cd77044436337591f239153629c3140b0ca85783d2460b207268f013988176f4c22d8ef5c096c93a52706931b4399a1849488665026a615e5955d972429eb32213ca16b587b0f7366192366f523732fb1127731cb06bc39f15f35b1283654bf361f403be5a9ab154f786080cb8ec42c8ec356847839de84a23c6e4321136477c12b20ca5642efc84c658323f90c2509b62df865e54072aac311a6d3b4eb9073b17f2291001a37e6ba438918a42663bb4d15896239f9f2b2d17a5c93c024ac595806620a8891b89f7297901a9b63e7c799cac22a515bfb3ca9a4772a5bc9a11154011e4dc0d758868a9f646d5390c631381e8566fd5603902c11686cca1f876322cd7793c338876d82008eb30f32128511a872db5cc0ac689c75266d5a9bdcd889f73dc92f1dc5076f373be64308012553d3109c7b5b2a819afdb93bb3447c878901813849c5fcca97b116ca1c2115961ac4b8c926303bd7f502eb299421cc9cb82f556327584118c6930e03f4368ab915c3df0a46b08518cdd280e17f86824958f0ca8079e857d8ba9a522a49c3f539c845968faf37e4beb443b577646967f4f824c2a706b3a7b74866aa4bfb83dd8e4356dfb1d9f4678a0a120cd2569101b034e36bf24a58c690b69ea27ca88db6645682c13b57d9a397b83772c5357082dbb6981674a772b6a94d0210b14a7703202cff38419297edf92a305a59bc51a022919b1b61bc853abca39721b83a794f1c27d17da71a205571573ce31ea27f81b744371274d6a8138b69ef967adcc75730a652f134b0f198b86a2a670a96c58d45295433851f61850d7b318245849a140a407a60080abbab77abf58d8c46f2580716a0bff0481b1973c804a406dd2bd08370ccabbc9fc7557b26534cda249ba1b3afaf2956f10b0b6ac0a7ef02252f5869a972142e06b86b64684b34b2592bc91b7c5b24c14d232b81880b3844409c6038e06023321dca0f2271144373fbfd47884f3ac96e4bee4dbfea5eedf79fb157b32e2818048bcd9b8e9bb89118362e59c75b4917014c242f75d6e3755c28f3081ecc9db44f6cc7cec9891756d74093716697781fc8cb5b2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 +ciphertext: 2ed0e760ce63fb59cd94fbb798e752d1d553c736e988de65e2716c30f329b7fa287ff0c677ed43f3d0d674776d84d36fe6a6513586a2e2bb915231481ee01d1ea06dc158456534e1060f32f06022190088e8fe3cebed9d3cacfcf7100c69d0da846df24011605cf42c2cb69dcaa578ce8c39ae68f2fd5704438753348b0fe6305350b1ec520d96aab367188162f8988a47987421fcb6d03d5e9f47fa6333b761b95aaec6a38593e512786975765247f2756ccf88d5238ba4ea61ebb18ab3cdf5649aeb67382c0a232b14489e803cb1050e1ef6ed88c6f1916524fa152bdd22b361722dd5d158025033682fe3caedd0809451b0f6c4c552f0ddf243ce5295133e424ad4fc7a7188763a08543bd3103a7480f467a7bed7a153d40a753dadf3e7af116cb594923e0c5c4c5d8ff27e0e073f84a70b1d1822ef61bad30d3ec51c9f183b6d2967a349e674d2e57cd8ee1a5ae01b37079aa4f2064ee5df394eb3540eb9b636f228f3c8f3b4a8fdba23405e36cea3e852c076b4fe53f7e877b1bda1d72396b93cdfa0278c4445b88e4d0a72aabbb646e6b87a01ec8b7739e7149c0dd373f818373b80edf7028b029eb1abba49aee7c4a0e3f290fe23e3a8487d6da923c61dff69b6bec01cd2efe0cf35ac6855fdb58ec2bddda165e99ee1de5e183ac2568ac47ec30668660d2d7613ab81824e049f1408e965b457461a7849df2dbf8276d53804cd7d9934e482dd6f3c6f167d6516c816271cfc18a6438aaafec7f87825dad2d605dfb26874f7226906a6e3514fd6c73ac0f8524007b7d5d32e6d540411b7d9ad667c5271f1c10834c7f64266d9da404bc197d3ea3ed17cc9fc8ed65e942a836c9ba4c2c167f4926158db053dc7efe70e008c2c9844533a1912c42266e7ef99f9769104ec6d7612854d3064878f02e86e65e51ce80ce5a854c4b92d0ef26a70e75770cdeda1e63dc2d7001b31fcba3a561f74d7bdd49e6559ddaded87590bb38ed03d9fb9e7f8824223fc12ea3642d42886c600f0f592fec815d454b7f0691c3b83cc3c8f1a014f5feeb2cd04720ba4a4f6577c45ea5058d20da7ba8ac58e6f8a594e7a41a91252073ec24c473050e82897357653a8b53440824c8eb26bf4e3140fa352819deaec7e3d5f8840fdc5305fa92ea8db24063f3835ea8682df449f06da48662cf06e569ec327d678953d99ee7d169c6207219ca1386af2fe4f527f6a59da051901ba6bd6798606e2435cb3da1760e135869972eb29216cc03da4c581d553765c2fa3388629fb7a8229a4301b7899e331eefcfed1adbeebf2f86699eaa9419159e669d85574bb76b1514f4092673fe4098ed54ee2873ae07cfd23104bbcf189f6c8b99b11fd2b40e03c284da6a4ced499dff116a64feefb1c07d16492481db67f72343df92b9e2a83246e8b5c31ac69deed48c019fd8633532ea972b992faa50715382e340a1cc829e4f64516a8a840b1c55688c409ca7fe79ef72cacc4ae564225592b66ddec1568b40dfc44e5895141362a3fe39e134d70b7 +result: pass +shared_secret: b276a4fb4cf77eab502dfdf56eae9f8a8ff5e7f5df3f6cfc80614b193c87f08d + +# Official test vector 67, seed: "074ab1a37ba5a0403d8f68d26fb787bc2c90f5ef88f2a6d286c3e6b168abd85d393d8225618608b8eeb301d26af53bc0" +private_key: dbb0bec6fa248682bf1eb3b226d9bb45a19beec69998797fe4d9275f1a6ba518ab41e117059338f8052945a36277678f84f761fcea21b49b9e2c85bdd2c78df17a04f121c423ba89cf15c90bf34ed5e341156206c2abb93b8924d6fbb1182ba029178be8b5b38ed868c86c54ae69b491f2450b96205484b7070aabfce83a6f0a024dbb837cf26ffd613d106c6fc6fc81f23b838782b72f7873c9f6735e71ba2d2c7f80c29efa2aab162767b414b71b1bbc5258aa61a984b2202e06286d8ae9cd14d2bd7b229e039613eb081bbedba792297cd6672241abbf5643703b098fcac273236687cd8ab0e4d21fe2e15d786c37a09741bc493bbc908f20eb7599e6a5a102030eab2ad69266ad30696eb1072793b6aa613734554f681678fb8068aab0c903580f6329baea7155c1bb09e846ab15427e0a092c3213ad42e3c1cbcb48cbca59aba88b9f60babd8087b461a2745c2973c04a8d11cbca9b3a74f7415d975004db90c4b985d990ac3e01bd72a446f2e13545052a99371e459c589ce203012182a2746d74e5b914b872678c999523b6c5ec790f986ca98c448117bc397643c339432ab2b058e340e098ace6c6a1b0e1472e8ba11cd898107ab9454a08b965329ce8758c199f10fa5c914cc236706e0a35cb5f2c4bc749b38e2184486a88be97127ec036fa78a5780b3f0515b391ea6598d1b998141d3461c141b54ed1770ea2938066d40dc3256bc6da09184b7957070391a1cc8629181954669da8c33c94511020750387417f87080907bc8e48332d293cbcfa6409e814b79154b135c5a721b447d45ed274731a30215f92004e30ab64fc87b061c8940ac9153957a21aa54ca9be2ac1acbd46283ca83219200788eb152273c61b860aac104f66e8043e7727216141097878d66a30eeec7820f6c1f140989649c2f2354b81597b298826225332aaf6ce5b6ca31ff986a665067272c6a190a454bc3654699dad2c3660e371571c8cd0b9b1e0ec5ad43106758c3b2adc01f2e46a95f662ea6733a62c2f7f67521065655c1c9e40615584b553a4697141ab010ee4a2ac76c4703043dc41a675309774c9279ca11c717ab9518074f9c77d10c4b973fc9e1fe1026c9c0dedf68db0d7bd63c67750db13e4120eddf4012ef42dcd7907b52bccba359374b48ac4988f4b6731c20295eee277a09a1140c30a6f6062dd152425d9385046417ce4808c7a44046b3c3773c90c40589524acca23b4755b23b267b2c5904cc3a634750b863bbb44243679483997a52a703ed867c57a0ac8227bd4115e88e9461481bf5ca1c6226283ab201844d25f2a094955d131305b5f1bd91789789f4790c193da4f4426693b9575af109b0824154f431ff1171e3c48686833beb3b3a4f31388f0348f6831acdaf70fb983502e8149b71511cacc7ffc0a411eea2e781656487139cffb9f7089388800ad6310015dc85502b5ab19e2cea1fab7eae59ce1429bbfc55471bc8644204596b264284c31c21b1e3e64909ec044b0342fff306486bac1c5c2aff2e52775e7338fc8b9c6d8a78538473ce1181b08048c6129eff7ad07c85bd24c2803c57a28eccbd3623713a5368c7228bfe0547566a43a1788e9e4489f8747167b6f08f7945e6597c9872b0cb4b1401288d7915be8e3715a8391a486047c15b4ab758c8d9b47541c3411417a439bb2144049744460810c01b778879425077e91ae06c1bb831c75e9d1552264a6543266e769b898b66644ca93f9da7735135d743c62a3876c0c891ab71c73c9b88b5cc14de0238c82103fa8f634902a01ce5b15e7823a36aacf6a05639a812221085b38b2ab933a12552c268ccca3cc07cb4e1ca03cdc02b1a5a8231a386456b26878b673644bc3c1613090454b582d5845268f381eb0e70128c1b06f356a9da736222400acea7c58216040a1affc5771081743b5f0721ef2b601a651d8a2658eb9c5ad8599c2f040f791ab5d93c6067ba30014af51766a41c70be6542b7224767301885a030a8d68a795e9924ed844cba1b696b18c5a64abc7ab83a163cae74ca186c01cafb53c05fa535d43786679a429677cd3f672b7c9cdf9224030b32c3a147ee0b2a8e50a0905a778ad9269bf04c2a801a1d986b15cda0ec2f51deec2005d450bc070c5e9e2a9646c3a6029beb907b632f17163b260fa5b75944b00d776862c3c362d06b7852ace9f93afbe9a4d77c548d04c68206277f569875fa677921c671fa887b98866e8c25815fc09d194adcdd34430e2c3725178f6c509fb359e5c3959d72b37a52c303490ae22138dc495bb2bf0c4fefccc89eb6b70764cf64cb2b02699e84a562f076dc4221153d8bc1dc0a29387a15da95eedc808c666b3caf04882188b5509106ba5ba1869463834b48dd9a2d7d6b46de1b83834b7db556a0b624869641a7b77c1f15291696798fd0cc1d01c417062ab36548f4f7b842e99a85a502d2ed70bb82037fcc6237f058d88ab2ded194bc6f65c723656474830581bb92f196e9fac65fbfb0e662c34cd1739ecc28ace01291f24701ec6a836a11f54d44fb50a9150d9401dd96c39b1b02ec73b86827fa1cc39d3ec5d5fcc4523a948a30bb1da4b3588f029c11234b9b571ec3593e82a0cfd428ea68b727622464fcc35e3dba3bf911cdb717ad690147ab70def66a2a66052a3844b7f6866c1b4bc80c106d3155d4bcb8c13239fc96241cb1b092696a50502a887547638499216fb31379a45bf7b43f92175fe282d98d7a4ad22844661256b711228a31fd2b01fa8f72dd357c455768a77cca28e6984913c352726176e2192de562781dccfda024fb4315eb5b14b9430bf0e783ad77a763b631f6c03c4b45aba24a88e85b70fc3b1c3049447e688c3f2145072460b838546572a42f4659a71a95392255765426451f137e8b4ca64b5c24e5cc74a816a988447ce07886cdc59eadcacf5cc5b17b4b0d058c0b3b610df489066e402ed63a5d155161bac9f2e82bd0e18cf46476935fbcc0daa0ccbfc72cae9b217d3adcb3ba7e0b759aab167ebf40f6cf92eddc17ec44508d051a6302372faa22a993386201827bdf3a1e932c093ba2cd1bb347096b53919218f321bd761abdc6ca5086c51b0c471a6c2781d1ccf20bb567ce472fc663ab10b75bdc6642832acab5c5d4db37a46572645a166edf46ac243805ac78e5c483e25624dab2aa705b9b3f6d01bee692351fb4301c562e30a513f6c73d55c0bdcf439f3f62f33e42f7f876f5314cdedfb4526a075924c59dc03d5f604585571f7e69c7c8f254bcc5af0ced187401efacef8d61e3843d6c8562cdec0e87d00c8ca8060da3f031ab663ddb43148eebd67969b7fd490aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 +ciphertext: 1a7b2ba467c4e3689e34b0acd548a2f12c8d237e4db6f80323b459fdc9d57339fcb5ad82c1cb58e8fea26f2c2ce0927a06c6d8d320ca6b55092119b86fd3fe65650cdec9b478a55a4060907bb0ce8807d964223aea9308c02bf025842e030703febc2e3e11fb99bac1e31959f1f0c3d5a76826f3c2a0e0effe131db6f0245d97518cd1177386bd7e06a5998bbf082fad47d0d7665f87642c4c7da2ce9e1f3c99e1e8cdab1a4c0df0ea0afdff801cd61dbf6d089d68d3188fc3e0a9842b6b019b25dfbfd1a5901448670194047496b70a036abc0376b9f09443497f470bfd9f44f0546fbded6312c16bd3dcf5c5416d9c63df9fb35d22c789b361f069524ebe04e237dd25c8cbc483956fc7e449347ec0d417ae71e6298fea78beb98ca4a7ab69f974c00bdfeeb40c99c102ed61f1e3d2f0250f33d8c73d74612448881c0e4f19824da0670fbd504c3e9cbff4cf41784c3c77e1acc326247b63425443759a203084be16fe8b48a4f09912be9e9db95572ce110994d87ce406f04641b5f8bb17e95cc62d3a6fb2ae6b6371e510356cd68a1876a1d04c4fa0a4b7a2f9ccf7b822e4cb6700ec5071d935dbb67221722b6664278f62093f9638759cf8d6d7b48e08310f0117c1df0500aa58ca8c3f719b84d9cfb803d5f5603bd06928375f137f98fb3183bc385888efa604f8921a9d3fc793e47abe8d7c5f14f143ed6d98f3c0c3e714d2bc2d136895dc140cafcb083375445e77f3c458e4992b245194436d2b8c395e9c46c499c03d35f08d0526ba24072f841ea07f4225583b05045f61484cee17f85b95e4193961562ce7b75ba4739b3bfa1349818ce3756d4732a85095ef613ccc05dae62c8d6d7181e213a3a601f0b9e81e2863fb15ab07f88e7bb58eec3a647fff17c2ff56db3bf13d721e2e9646eb05a20f892d66ad04927cf63293f8db9e97e8cef9c26583a1aea7cdf4ccadd9c4832971d669543a29fd9deae308131f8caca69c3f2a42bbccc57aaf908789211e64f7b51776df405e12803f434758409ea9acfcf4c5f4461ec2df8df49d993766d50858d0f6b7d0def70b4103f0a38a78fac8031624eaa5ed815373e3ae522f3afa3dca39fb9a75e86474b81b6fbb994caaf62cd35928ce5f73606a88ed31643a6cc2285aceb3b6afc155aa0a5b4b92d6e2605a24becb65b15883df261f9b273ddad943202085cd780f4db60aff972af293384b9d85c6b3daf2a3cce8490b7af695308c097d07e41afdb0e2337cfab9bb097e61d6c9a038b7203b63b28c1224af0ae62241fd9e2a17bf0e12f45886096028993372f00ee59c5b55ad7e6e9f1048db860e0440445d61322e8805e15557e2cf4de9652e109cb35d8e652dc06bb19c2420ccc23abeb44dcacafd9829d34bf74d66c67e7e9adfb6c12ec99c5ef9c371b8169bbde8fb2ab0da650937fe4f7c145635d84096076c17c911a47da0f35ec71b1be995bf500ec1afe7fd6e8aa221d61ade2788e93aca60223dce21cc98257a2c8460bac2649c7f57af835495bc7c2d +result: pass +shared_secret: f4924920e64013fae72cfdd1e94b217eebd55a011f6b7542958abb297e4fd180 + +# Official test vector 68, seed: "cc0c86cc0abf86fa21899be1953913c00e7c46e6b5f730c4e88b3c034012763981d7f14459d3081638080378348856ea" +private_key: ed0c4dcbcc3304e1646a04b9675b94430b49a83bb1552c211f8928c47785c90422bb658f33890f3fe25078cb0c5d52ab737c647b2080e32164de411c489664d5ab23130c1b4a409c1c0296bce722bffab9d60ba4854c9887f0089567994e3375e438069bd40cf0e08e1de134c1f902d0abaccffa0e866122f28894f5275a8a7c2be316811032738f99b53af64c6b346fca072ebb38b665ea616687042b240c53501e18a424b5150b98a4897a168e5be9b9a1f04f0f14858af0666e177ba7f52be6508674ea48fa23313a71372be5a718a13d41f4887892bfc013889481339b2438f8516b24990d70c1159581a109fa1cdd460e6910465e71ccc362798670933052bb03e23768c3c255d0bc7f002e7dc299ac0145bbb585b9682978302aae26047bc8a2cac90589da65d604abaae2b36bf78604d33e23a67544a79fb8131970199116b5bef702ba74506cf72965d7d8bd8b438935c1c8a1e535806009ea22a5ef4b215003b67627358151238bd50391c8384a938e7098929b7870f87321903c819c6480c992cddef1c969e4a1ed4a98d367994394571ae93a61b4336d537140887c792290a196b01bc7c30e364618fa371ba975f49b4637f9bfcc7bb1ae789156c4ab2fc6cd62195a44c7572cf9239c3b951bf636b43cccae63b82cc2bc4bc6a03ba5a087c534339905f4280b7a79186b2652f3582c1865cb6ae4b334f75cd7f358f2bc69cd1b0d21a7ac35c926772ba764a72157e51e38cc66392a1bf409a068e033b00b4a4d04516873516bec242ce93ec073c366e8534e4b55fea906daf090eee9a1fa4a17e61a644ce54536f70871e61a2a728ccdd7c1e702869a28a2ade4cd234119229c9cfe80ac664bb2016125b3822ab240989e79a72cc26207ea4b139bc1bf5a257645b9b372763d4a318d4647024c797b8a1c2d49bbb4857cd1272f56b8342c46541000c84bd676bd533e9529072e77a8f73164fcd8443c3079c1ab5ede2305e6c5c22af691a25ace01436e43d56e204b4dae93cff827c061d1354acb6cd4070c92bb4b145bb0649a6fb8985e03e4a82aa178161a2bbbf23562b342f4818100b502c88904c196c08920aab3ea154c9535ddd8c9c12911500a38db80bb70c3794ee15f7a44097a7407851007b40801d16c417e5905eb994edaa2807b9c7bef6bca9065374b856f95f09fdfa2751c20c5a42a3adef757efb8276303a6e65c4cb17abf0f97c29581139fd655d4d80224275799645008f42ef508ac9445c388a989b3ac09627041741c30b433a0d0b81a59d237753ace7a89c1dd0689cee8663ae8497e9bb885436021d4ba553c706faaafe7c8478e346caf5280e171ba24672e850cb80e491be2195749a8cac30355f5b386e47a65b22592a1f7b09317cd6f3449bb22aba8c2711e979e898a2706d80fcf52af28a68f0f7a0f6c3221ca73918140447e166a00669929b915c4aa507e49672b45154c92239ef0190b086b65fa9e4ce7995e39166c8ba70b5026ee2745c2cc409e40c56294a9d4539101cace01a2861d31924d8c3f7e824fa8bc552bf6b70c042bef1192d1517091fac862776c9a33cec6939d89a30130561d400552c195c702bb9322378a12e144a0f956d743a9918c149231c6bdf338098c07f21064775b6700ed30fb2153478b67b0f344da35ca35e4b7c289a503d5ab9eab6e374279ec8ab67b2264d7b9b80d6bce26098a305734e44342a5078597f3bd574b931c3c74461c8da856239c24c576815f7f48cfc026baeae328a8207f5091cb7248615ac076f12763f8b63c0b75a1ef075b6e1c61b1c3bacb9c8895286e30729ce083b90df566ceba4c00e06214c295ab2b95e2b70032e04422572c87b475a63b53fa84ac9fe3c8bdd3cd06c13859b263d22a588b8126f2c615e3a705e0ba960261b47638a9e83c5bd3f791b362652290c5bcdcc4f3c93909431a4ef875c5e30f0c311e5e8344deec53c3b4bf584932f168710f66cbe718886e2ace059034fcecbe39d50d012c0ea26b8cf13807f1117f32661cf997145470c8aeda68022ccc43d1bb66732f5966c11ec221ac678bcba824f43c3eda94401c17c4877490e4393404db53a27b1dd3aab78e152a58f3741e1bb1b9a8202df64434ea9c5a8c9fe7584ea538250da92295d3a4abbc3e392a36cae9af1cc51095b2b2dd97ba7072acec4b7b83bb6d284c5fb3fb634ab3012e8825f8748022d8cef7367ae46b021df68aa8239d06c09fe0555e07dbc356293d41bc4f1e133ddca95d2298b2aea88aea5637d262390a79980220095d7116447c5d5b6ba2b962c794c899f45860658a0a530c7669134519a501e5a0759f9a50777a2a6dfb942f98b50067455a7b692fb1cdc2c10f64e9114b29cbe173ac4fc2adb95c550ae7a55387bf01ac3c45222fed7bcf9e240a6d9b0d088c032aa9714a6a55c692635b6911d92353c68794be250dcd65782a6674f87343a6654324f47f5ac9b384b22766d0c96852753a4449e08371d5128f31831ee766219e910b1f6267a57bc991da5b2b69a5a9212ba06ac917d45c9aa25bc1b513f7144217e84f1693360ea0690e51688a704c45cb6b1071a0e9a130abdb6cd3b52b8a429c33d126cfc10c73c928da9507aab00950f37e9bba0ab981394b137e337a88249100da175fe9299de1d1130381b3fcd265f7b36c00959b5bc2c150eb7dabf05bdf590e32e063a01a7cff6a9a22c56752c8b948502f3f8ac5ca444e10bb6bead1c7557b2bb2e37d55646455162806a7778b1938fcdb7da3e64c01c4a36a847b77958d27ab9defa6256b6a30a9b9962175c13721cd28e979e0d60196ba8c3c940aa4718d39a9b280486a6c2264640c4b09642499957be9642b6b545dbcc868098332fb103d75e38eb7ccbee64a341b38b0097479c019257be03d5d290e89a6a6f0b61039b128b46b02bcd750a9496ec4fb8dd6378e1ac77aa9f37a75d072d268c365725926cc76b58b9da040c173d7732e1401ab222553d6aec7911d052c569c59393997372e548086abb4de201ac1c17f25d76fb58c4ff3380cc5965720b989f4aa252623c215369076e771fac786e7f0ccdd917da64126fc610eb76948f97a5c3116869a11a46e612d9df04be0b1af0e8c8bb46607ea4bc4b4b04b3f79a30a2a154691a79217537b97a7dff6ab4edc9e2ad6cd97d3aef52837aeb232f799a3ce30a6adb88f6a0aa73fea00bf0146cd5447c6dc483b4955a0a3c241e7cc353c2c7085b84c5162a49e7d61a2d0e85a009833f3eb2305d7d435e2a4c81f358aa8d0dd50628096f43cabf1c47e7aaada59ded4fa8ce378ce1d9eba621ebfe8cc96a111aaedc4b6cf0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 +ciphertext: bef3076f55b44ea1791eae3b2b28d4fc20213f11983e57b7baab4f674de12bfd5fcc10ca13c4996002b08fe7cbaec7a5b6cfd2048af1cdce87ebf46a44167cd5e31619f89f61864f2b6a613d25781d4435ceab63a9e36a7e47cac50cce866da5b5646c45248c9d9fbea2ce0a676fe7477c09d19052d3705e75b119204c155be6eb2049a1d75d6299568c0c5531becd0a852303eab69b2d0a8cdcd54b9cf61df91db58e374a6af5cd82704ce859140794d35de86c7e8fa63b57821b9fcb3da45df3f6a39bc2f5f600358f83e30b9a492d1acd2351f6ef614b9a4393ff8c3961e62c754cfd1fa877534130892a90ffe1d91262daf0f23dc0836426d6fd2be36c979fe6c0d75eaf094f23cadafebeb5271d544afbc2af4bb54c4524d2bc6482d5f82b82551594cd0780d37409f1412bb7f9bfa0428de5ad074cedb4531187db0997adec9d23bbaabfc9b230b4c14dc9c1b1180feef555c012ff85f78d24c0f26443332b7c0ffd49e7d511ad1c97d304a22a1188cacb3b36130589d8dab536a6f107e0ee9c939ea9f95552a1b2c0a14be0fb38b6d8df01eb600de3c5c66996ea5de0ee68eb24a170b6e601b65bcf563b8639e3cac74f50c6729e38cafbfcdcfc48a019eaa19bf9fa44fe254283e0153d00c4d8232bd3a621b3ec7a6fcf353ad767783c1beefe4f233f1184a67fa2f552a70c18da11d04c941c2c8e5d5091dd60b3d420baf14a941be26fbfe9fd2866b07ff0e05facc01f34fb53597cbe5c8e9ebfc2c6de58884ad77825585c339e6b983cce9c08ab7d2b0a55977d0e555939338713a09ec9c4783f29fb8652a688b9f3914bc5118397d9002a041b0ca41e170c52cd1cb8076731329db332ad3dde234e8a7adf5ee3e27bc905474f6deb6ced6846213f1a58ed38b6969e7b2bddfe679bf0a0ddbe2c6535b6f4ed57b50e49787b99ff2147af091f5cd22e3bffae0eee925e824170ffc7332572bf330b0ff7478736661284a69ff0e43347f40af1bbb11366a1a03beeca2bce132e06cc6b7538f37573820723aea8926a3be13a7f7c73548697e3b4f87ac0872472bf94b8396671bbe1542c869f188663c30509c45deb7fea82312bc4c8c5952693901275414a9e7e3de7649a8abbb9ab172189fec7b79beffd7f752885dda73a9d1ce2f707454bb13905cebf361a338c13dc090eecbf90fcd873595ed951d1e289a98a3b8901976e8248e3a16ea05536be87129c1bff0f17696967b55ce7a73cc7e87452fd5f72a4ec7857ee82338d7b8d8aa2794f45a2c0b09fc3d69463e86c1678da047ac48adcb6178582c78ea3d48730466b524acc2c339b5bdb5bee3786c7452ef23a3e9c9501df43c27668b7bec57fa7df4198d04a6ae90a895440b5bea8cd2aa810c145e95c8ce51c017ae55341228a75c3167b93b4b0667d6a91a4b66bcd98c3598634730b78bdd9539d60b9eb8a5af2a046c2a8ca7c9618f845b941f920532fb0726898f8427148e4f5117e05969e88788ae6535d20058239b321bb33c5d6b7c1a54d7017 +result: pass +shared_secret: 412bafc716efe4ff928d9a86ea4665dd841e2f102a8363b994a0faad63251eda + +# Official test vector 69, seed: "6d5a7cc326ecf3983c4e7683f45263a37f692f3bcd2d920e1fd9584350119e74f9a3f905f70d3e20318c1413de2a0dea" +private_key: 2e497feae75af1f280abf2085c0321a00911d5008bf8a4042ba44691367fccfcc2d496cc40e113a0d056b5468b190c0e2e629f3264797f0c3b647865f4d782a9601df6bc5f03c1437a23b5d222bad406874f1459f1f9aa3ac061a20677d9d785535cbe7073667e4c916725af4d7302cf76bc3c23ab89666a2019625044a8bd954df6d68c2114b31efccb7d91af07f3ad3faa852d4162fd847ae7a11d8e11133089b9307806a9237ae3a9949043b10107acc9345c17697307e0c6c3ca1734f6cfbde73c6a09aa1b8159c51179ea8b93509b223668849b1b7c59118033f969b9d34b354b32bc0b7540d3ccd2995bc36abe44c0394ef5724b058d0a575947024ce6e72463389bfb36bb851864c38097fbac7204036de72cb0da94cd2f98a1e52c1e630748a7c05838ab53b2d33b0d541c1bd31a2ba803f4205616423534c982038622b70ba4778886f2d15aaa681d6468848fb0601d7097b99040e9e8a981749f741127c6a0000b0c32e28976ecd97514c2aa15f82979497e1da91bd3200d4b0ab373e41a56aa9aba24693cf9c7939cb8733c27a7707eda2aa4f3f304c5215edfa3cc3f785bc0ba83d9f291f8787fc0032f112133fce87441b473961cc87629337cd4acb5367432cbc7407585a3e2463de228895327e883604a19ac2c46389f1b0706f720db8c17f709a796e03d53046c4ab2013afb40ed73247d0c52b0f88e2c9100b1b31813346904978d3bf6bf13b4a6c54c3894f2a2266a9987a4c8505cbd94028ef7963c97d80575549559bcca5d78c99af532b31a382567a6b1e8c56babbc5863144fc81c6322806a6269215740af996b0adaa72f425169517d1e48ac1349c343214c52482b9d19aae42c4a6ddb550040b30ccc82e7d5578355b7313a1f84f872170a6107a52008aa47988a5a78a15a6d070e308c59bc630d1a1292fc2a41c86967b4a3b3ee312ee3c2327a80cb9a112b07b9b0e5858191164a7a87427a8423f7116c2e84377af5cef303b7e9069661f1047c15bc52876c45864dd78854d0f07fd2e530fbbb9b13a4034cc38e34344d5ec41cf544359b93ccb0338bcde09e9b938d5e0c2065126ae81581f62668afc819f705af3b82bca5921699602c6af9810084933c438d4de95a6691ca3ff425fa04b614bb973d899bb8748a7571b112545548f08ff98931eb555f8308ac724a8ad09a90f109219c3032f4013cdfeca92b4cbf23e528ab6abb29370361baa8f74c3a2ca8a29d6a893ec06e60979e351b4ff6247b8fe3923cf027c55363a9243cf9a237ff09c0666aa7b6c56b17a63fec016b4c15cc70c59dcdf3294cc0c72df53c9b0b00d2383e7f48335108629762793fc70642ca91dfa1ba6d97a1a36a55fa6c9d73246a3930b31fb644e34579c2866fc4c5671667b0dcf1aef82bcce732052d766673b398aaec441cfa73dfd3b463e8aa018c4272eb0c3ef15618f9acad61bcaf64017648539c766eabf8038f5467d446912c98836055496b1b7d777cc82eb255766568822704a12640ade87d0ba066b4f3405177c9e1e41f624c5ae055887d68c97be0b0eab254dc3756d00bb8e78676ff62a94f842e9f5774b4f07b723577c742bf4623b0adf246f87c53944cbc8e4458305ab8304a53b5c47b42911ba1b011c4da11c08b281e625f6f37815dbb1f3908c4c1646142b14d846b8400114face5cba669179ef121436a1975845652c5cb4ff62fa0073738f0264401adbb78b44e61619977804aca17deea16bad48655133144781b196c2a949bbc9aa8714758061465a9cfe09f2a1316ca875523e07fba515296309b6b7391b8d192012278d684b2527318f30a7c1e598a05027409f65a7f36b57f693a660c7a9f2b0bc38420128b87b005b5ce7631e4a10ff858831cb0112f5b6f04334565563e751820da374ce2819e4ed9bc5a959eedc4052c502abc54baf3fc0e426b77de7a274f81451070042e70c19a09421454141d2600df76a740423cb887065939cfb657a76785b35a5868401cb4d88ac8194769ad2499f2f20ed2a188e8e47e918cba7342b4c8893fe411b47b058b0070771161970c4331ef67be34bbc4781171bfa19d51e11612f93cda611f4ed88f85b87e8beb6359eb410e7175ef6171faa03e29e11ea8a6caf023c357a87afc652a00cd422020295bd34170068d31b7a058800026a49fa1f7523ebc5544389cab259815114d4b01d089d3cff6956f5d0b5a9fe652825b1150e21d11f562196892ca41941b46018ee73683e008525059496a07bb029737103b729b1fcc13ac3236b47c63a6ed4458a9724ef7b62361e75ba726be6774cf6b3572657b2a6abcb69182cd3b880328bc4f52c075c150bb22aab08cb2326815712ae20cf1f257b9e6ce0725782e9590191b2055a45c4467c5e7d70c35b8a61a48a317022c298b612782203a820f2161844f6a6fea58ca9f230713c701aad2700bdc951fc9bb8f560db9e99f2849afefea6c366c982f3680dea24891c631a1032d9d884a5ad9a11fa8331be85f1c91c6de2b4143ab403b153d9dd714db314c683ca24cc45f86c2276058be32ca1cefd4116ba386069856c6128ca86a63fbf6c15e876d63f738f847a32166b1592c3307d9c6190c5c42b7ab756ccb394c7c26c28fcd158bfdac9f04c99e30254d500cd0da1b9f2b74823f14283a888bdff45ca218b89b9450fba868ea9b1a5858509137160db31aa292863ed216aef822123c294a825e26fa3adee0291ab37c1462c89a4981949bb764f4222b3527dfd8a715682d159ba380339971857272c7bd7442cb73739c450b58cbeb6936b8cb619654037856935376acab92026bbad18c512dec4e19671180599e01651f008c3a04007cf02535ad7608e1e9257fbb04e419976294702e84341531b95e1b20c2b152a4d849649113c69a8f379b5d72aa86e01a4c5202ab2e276712f1131c411d4072cb45147c562c60080c56eff7aa7d90c4dc293b01ba935e345b88faba62dca043d94c4a666786c35f9318a579a9b67e429144240d206612a6d802fdc24aadcb42b0db4251e06df92a67e632aa4a29000a77cb2fd2959f851288464c824872ae6a9fa1bb3a71d8879e303c51445956ec8ae49c4ae6ac4de2047edbf3c0b23a29b8b86b83cb24530b0d17739331292bab85868e4a9bcbb2b4d4514e52d9afbf66172ae560c08c7f9cfc0c98ea4ec9c785ffe76ab5098e9f3c5ead6a7759b529661b50e0368246c5afbbb9b876c8072c1c1ca63a4e6607fe4286fd2062614fcfb544fca36edf0785c37bb6f5fc33e2b9d9d03a0a6c2853cbbda86e7039b635d4cc850f494d42b240acb54ab2316791e9ef5b45f1d2b28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc +ciphertext: fecf9ab93b18fa40d1b385b0932aae91f8287348567fe0cec26bd6ccc57741ac3a23439efe62a433071d450e20818cab881f8ae2ff3157734d81c1a5296c7c75e0baae6501ff0631453303c2250dee03eb68f57ebca08aeab1a28ecc829ed08b67b78e248b54572d307bfb0e38c8708bb63da4e421e96381741a6a893c2ebd13982d26e223fbdd194bceeb430b8aa6b2b15e7fb3691cf4d5145023fadaa79e63558a9875d94614eacd3ff5e143dd9d93cbffcb6b6472ece3e56e6d7253fd2300b6863f19eb8e222be62a91386d21d9046b78ca2e04a38a5f028b657e26d222ada33f4ea5bcf62c191811f34beb57668f4057fe21509cc139b56ec566f8bb79157177f0680d4e5c861a3a5838233085cd80bb193ac3e06039f1fdd31eb5a025fa55c895feed3ee6bb484de762dfd614bd79f03f25fda91b05e74ff87c61132b1ad280f58e3a8ecdbb043c46d57369143d1b14ff04f689d1ae905ea93444994c09d02af7ddf59c9873c19d38ba6a66bfc1afd284e598091e5ffe6e6c3d3f0a3cf600843e2b2ce86ba6e08ca9f9fa5340472641ca84fdc047bc3c09a18e09b88f8b835707b036dc18a9ac1d03bec88950648f08cf55c924c7610fa604b686943f788611da45824f150f4e8128fc2b31a470ab59142a016a1fd7b95361ec265e3542924524754142ddc7b4feb75e849ae194888067257dd1f00c8e7f532fd06af3dd6d87191613a591707851c1758b81d41857e9a746324f9e5fb64d9ba81c33e970de17553050f639b94be0f5c4677e98514eece20663ddab722e72a6768312bcab6f5c36f1ea51f67905f433c5ecaf4da8a1af5581351d62b3dd46bfd5db9df29980ed7e522f48f4619ade16c4f0662366f0c0c9bc12e08d7510f80bdfe9577f93542341f0811de4aceb46c04b70322813d5e1ad9068c017bf2f769753195004b29c3cab038dba1b579c59e18fdc00026baf842b5a57b91821cece116b88685fe95bda154e2fbde8f49b288a2b50a6844fc2066e8be7c277623f1d8afb734baa94e7bd58013ade0aa6752307950f7a5f233e86369c75b9e34ba32360c52d1b58de44fe2945db78368c1137af9f9fee9c53ae99092fbfbde12e23bb7cf3cfda6c9ca09a203f6360bca6ff06afb3f040ee198318bd14a7dad4da9741253d7df92f186c801708aef95d53131704fb5382bfeef8c5be3071a1e606b9566632f065e3f2764a0c6ccc0c6e0f34d0b4648bce1cec4ae3d8d798a8c29effbd8d0636d09fc5d14b8245708eea3fe701249cece51ebcf50578844da1221624499fe6c3e36e91a12e1cfaf5b2e7c55706424a94be9b0c23e11f3196857e5009f915255abbc7b62770a9c498c8d7d53d0bf88450c563450fd54bbc9e3a731b0ab5c8015b829735a20b01d764892ba436acda91f9068af1042ffc82d1529d8be20bed87d43bc9e0071c2dfea7d57242eea011fcc43e6a96fae7fc018746473deb9dd9c413afdc90735c0a7660ba81cdfca11237c81afc46ea4eef1af1bd654033911da5e24270ae +result: pass +shared_secret: c514d4086428200e118c1c297ce5ed865d7452cd7770363961bbb834f56c564a + +# Official test vector 70, seed: "f68fc0314dea88f66afaa76e6c9b6804b13d4876924410d1f526fac59a62e26c560b125b1d0f8b461f1fc2e351effb4f" +private_key: 65f04f655904f41a6a88535638821638039eb85517c3899ba016172b8b3120b90e4717c51fd0a6a1d8cb799562e1901128756501bb00d4b695e11ccb335b6fc4537b236c4fba1885d89b2de48427a65357c31990d9955ae7323b30244a0f296a259c5deac728403481f0745f275401c9482ffcc3cca44832bfc0799164cbccab87bf04b813b32801f2ca915a9b35d60e34e95a74e660441a686c89397c915290821989286168b6ce76e485c946179dc484ce6bb94c9c375a899afc6932cb9876796bada211b849101aa4c5b837453cf89a0642c91721b01abef1a78ad28006e25762a65d23664c79c87cf79cbf4ee38070905e8b561a254394b9a4a3d40bc23ca6a2e98bafbdb067a34c7f450a2ec9c419c8816fb71ca46d177e148541d3ab6dad4b467ed7ab1cc94b57413c31880a418c56d851ceef706534871ddbdc8033679d82eaa69a4c4872233ec12ba28e42870e4a43c3ba3e0e36cf7cb740fceb3af481904007051c137d702c890d126f7e6b1d401bb4e81a4333d7c8ee5cb8636a984841c67817411862af5e3605fe838630a680c773725495812bfc4531106ab13b52c2d357b3139f9495c2d4e4a77a07518fac187185b2be2355dba0066d8a418bd7aa5038c6f0d4a3e5a074d409a15fe77ba7e176cbf2c7c20b10116737b6232851e688fb3279d060c8c24005a73780e7713255e6498fb50c056222f376cffebc723ab180d4eab9aee52a1e08cc2a73b90419a056e32d660c7717884f897809df5c42921871a1e59ce36aa74cbcbd9fa3069897a0a76113ab6818482548db03455a58b127dc5daa0cce8a5b5f3f10a678d04b68fb46fb6a94ef87161743b2364098a40128dc3181c551cebe151389431972498317b52d4f5332d6b74210d783d9c461453347f820acb6e4a3315a2496cc683590b08b0503b31b97688a1f6cc957c6c4724faa6a0b982859e961c808aea88862c750c6045b57f53963d83448b228847384754cd45dbbe015e6254c055163a60c02b41988cc2511fe70963c632f8180333c532109047c65ebad0aa56d3bd136efc88b6dd832bd810cebbb9ec40cb44754bf664773d5466ff0b86848314432e085761c3d81e2669ab41d9e3c1ee343ca24bca795eccfd6942dcc27170a74a02415bb732ba880a5cfa922b10e4973067109a3b210b02b691c8aa4a931252546a77b206098ba78f6e4781660a29a00ad98307b76cac825a534003154002977ba8150d3847fcb513120f43b2aea6788e5c17bfab456d7b96a1ca2d217b86ba5b87400cdee144717f5b34fa842778c0917200482c99571a36a133097365b7e36621f51ab88b0d0b3aad022f39b4ef3ec1cd0459ec3c80e56524173a2047b099c304c71e9db708ee55895dc1b30cc8fb1b1887f312d70c8b399944b4de4be1542a27bc0569674a4097288b9c60982149270d57d766c09a47045527ac8d710bb41f8c34edab551d0c022a627c2078edf078b0464b81b46057296b5ebb3571ea000a72065ad11b5cd36accd5628283554f38b6aa39bab97a171cf0cb3664842686abe589a9321d7b911b371ec5a31d13a4e91c8118d504360f668591163fdd233a6bc5e65341703cbaaa931293cbac5d0f16c77155f91195dda2b52c1bc4ff328c3732799ea0aa8ed4229e9a239e5b5c5a02c1ebe98a381dc56e1d4b56deacda3ac52b1088805476c01609a0a2373a4bca788227172c4431b000005d855ca059b4e554d3dd2103cbc7854a12cda368ce202873f5747450c4fd994898dac5926765536662c81581ab4db18e9763cd5a747659440c9a33eac713cf907ba0d5a875b90882de31b5df825f337b46451705658915630035724c127c9c4b48572951770241993f777145573bc70125d35f1b03a121d09ba4388889568ba109f04617360826ad48f2765944232b1cf636fdf3c39c40ab87b4b50bffc1019eb0fecc35cf7416ddb3146e275cc7ae209269a7330977e9dba9caf79c99e30b8880525caaa84401cbde7ccc0fda4b250b7a2a651b3afc123eff52eec55650029af651b2014f4669de319435b7dbedacc173c3dd1f3a8597b80c9c3869d7389398a2404e790c9463f2634cc7351bac9d74b62b73e7e54cbbb3ab235c7c1ce298c0c0369de33224ab7b03517856e43cef2d39f1d325d1e221998c53631d32a57a880f24476a7e89f8c1b2d1c49759c322e993cc7effb2bab738f2648bd8133208ef26ffcac76393714859ccce0515d4a7192ded6ae5e828be6653b05cacf0df1b4816a972592089ff88fa421a490ca13c6789639c909c4db18ee43a01989c51b6005ed2548ae24ac8cec10bda7649e6c9359c45bf0ea0d39f25bb1ab3c3b5b88cda24caa8c7c7106616ba05da6727896d2a895835c9b83654b358e0d4728fec8a150b39283e345f3e06b4680bc632009eb85adb811277926662e531db27b3ca60843a6370c304c1dd21a94aed90c3663c0948bc12f0a32af533866f5931d5c74423246c16aa4f01808d06a6d50444ef8a3171ac641e9417e2e025390caaff16c6703680951b1a0e5abceb8fca9830c9ce1aa08d5803280f31de3cabc923b5a1a7c4854d841729194d3685c03f975a72440b5fa01b11868a48bcb73794c83644d1d39b9664c432c7b3bc311703ec01d268a34a8a1b3dc79b9ae07b8cd133b7d4baba7f39b4088043e4a35fcd08a9ef141b78cb1f64841ebf894827bbe1ec47509817ba27cb42222272a00a633e1b2ab344bd3778e4a579ac7d64a32e2356b1822c1334fa0e6acb05798f63192ee20629106130a1ac330c6cf0200908fb37184740e5caa5ad44067ac7930f696bc9226235d212d71f57ffc2c8c185c1f3d717271022f2d256963dbac5c5a1404a71e3546695eb27d73221892b5bfef114d6f88415875c013f16e48d3cdb68c2000a39a45263504e0a7554386d68a4d3992c9f6196015066d3b8282e8d3398d2b5f62d7af54698418862db3a84286f142a8cb44be011e0f2594d161611cb335bdb018d9e58cc71a363b29439d54cc6b293af33b0dbbcb80c7797819a96c1316a783f60f987a3fbe1acf80f22f610037d17247122c4ae2b2214638205328c43fd4bebce93d47c02b84e1cdee7cb48805396c24410d71ced4805f36a105b05c6564ec3450654cc0a12e62f7c0da79496ff2bc97b7b4809aa30d577a2f3428e48220239b1b97d9278dd26d93d186628812fc697d961442879ab64b4ba0be3c46f5e55c13222058b407c1694979897ca0615e8de05d85d3532060076acafc8e0aadd8ca7406c7bb316abfde1bcdd1662d5680b483287bbd3e61a91839cca9e761429186176b7bc64034ad43f16f65e9d8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 +ciphertext: 1776384cc4bc09db580462b981e07705f1b7af05956b2942cd71a270a994b3c9ef525863d3ca86596788374eab881474d88e87e329652bed8e0eaacf44b90515f0f729a206aca3d6ce76eae6d3cda5caa6ddee0e530d841578529750e4d0fcdf5f122b9f921a5a53ce6442a733ef5ffd7ef4e52c3aae93aab7f33ae33f3eed2a3ffa5a4422c368dc210ac246b0d73dcef478be9e15867ef752fdcd1db52b733236bc9ceb8660679f9e53f62c670c68d3effd8013649bbf5685a40a1199de8baa84e701eb4a6de909230f41946c9e08e7d9713e209899f0710228bd67b4fa66950d974f5cc4bdaa1c826030a7273787c1e1717639d0ebaffcaee389afb6f044bef662da9b6b4347b0b0aef9777f5324979e660ec40d43e0a17e5bc2090aa0bf1008ff02a129d3b1210614e99f607b521767c5038b138c7d188543297c405df6e10d618d41b8cd3a9a935e048233b6af27db097721ca8999d8b12602c0aa21716c25e09d1a1b6eb4e2e4a82fc680a1d8ff2fdccca10ce2e38ab36c48f46a5b419cae0bfa00a0a153015e9c908d8439b4accd8a6b6264eece46e97b507644c200e7f985cd6c3a0a024aa0bd18b44059ad74a8d6a1462cc9c9ddc532a803b251e73775435689f80d3f79690aded41b83d8f0ddaeaf4b1a85c1bcde9e17cd1c6635272c167ffdf4272ef8d6552afb7b54500426b2f612df941d540e596038bdb21d8a2188dbdc89a2a449a2774d1f0b21b8db290e96ce027c1f0c11a8484f857a069ef77e6b9fbe0ce163b4dfec7a11e49031d69a37b516b72ea4e1ce67ce493b8c052c30517ad79a540a0c0e86093663e7a4a4641d9d291b929c59c4efc47efb19fd7e0c3b6f2c1fbb9449fc18a9eedf70f71b70f92f8369f7624a2666ec7f26792b34b79c659f1bce8d9f86776401730ae70e7d4459f0e8d7e1afa9a1c41019d536f0e8585ce4f2e7c42eb34223607e9d8afe66707475b6a1e5e532344d8aff98d5e48b782510f064768d76f4e99f6bf716df363c5e2dfd724c78e5ab362e2d8dd3a7fe3b35410b25f6071cbecb3513fcf755312fd082ce57b1ebcbdfa6fff754a9f7662c115334325cfb37d21ccf5a096a221138e61e1adcc4548a7eed9b50d3e267d1bc6eb972e678b4c5f0fe3419f663e0d4525bb0bb5859de22550225f90a70f76fdafd551b5466d289a8fdd3f338d1aca2621157aef4c64ca9f256a8f88415a6293933672ec2bde631bc1723a362edc7aabe695ebe88d38de01f0eb15bf582eaff139b8812fdb3c7abdaa0f933b6724ab3fa77fc4358456c0ce509c0b98cadf2b9e8de3c9552d363495389a9b898b2b8d5fc97fb751ef087d69c8a7fc32b62d5ec581ee625cf4183921bc62685e976d41d9ccada44570d8919132114717ad1a119dda21664a955a3f355cbc9879030142b418329b39a0f392205c811d4baba6301d829d312f8a4cde5fa12052c02a4c75a706b8f317f963f01abe5d27ee0470afa619d97d7fb5b3b0669bd08b901bd9fb56fd4a5656d8d2cfde1d116676bd8 +result: pass +shared_secret: a175feba4c1bab576085bb12683d2bc44e98c75f543cee714c75391c559450ce + +# Official test vector 71, seed: "a229218b0d51f58d915df549901548fb0722f352c7470900e7e4d8399205764a319bbddbd06c00e8c5932722ee5a404d" +private_key: 000d8a738101a329832189bfaffb213cc5789003528b06754014cb91a09b7625359b2cbe463b356e298c95a6a24646ad6114900034c83f19599bd0173846b93153aaf6f9c1e1e11d41692bf5146a48810aa89604bc2b09b32230c6c44f5a0a0086b7c688008702517b4d807bc34b8a23e968a8316df5207f2788975f458cb0db5a37c80bb2823270a3130c18bcf793147ee0a5b63a499ff28e3ae290974ba44e8730f4e56018073e0ed54924e38865bc076a809862470525d5c32b74c81d4cb95278705f01b6c6d098b951a7eed095ef386eb8d47f0d7984102872706b352c12119adc1fde40259f5450c36c4327d31f09eb589281a590f1131494b50264719a740c6d0b1c8f9aa6d281b8eda923308b02dfdbb7c2451bf80a769c683f2fc02822838f6ae1cea8d81ac91c53f53041952b82aefc4122b24cc15b3a8cc2450860869fe622036512344132701b8043b387d37986482318c134af38014cc075756838415e1a461cf0313b4907ee6753ad625ef593c99fc70b88587095e66c03044af109bcef59a3caca13e027c2cf3b350d28c1610b9bee0718ee44c223ab522ae57b532526f003345440cfedd463a0fb1ac60a2c6bfc37c7eba6a7667475d278c3a4b7c486b68f2157e9bb7646045a7ab452cde7539c755e5fe390f0174153f1531d5737da4383202103f6e01339255a04d04c83fa5119fa0f0c15c2c2d50e41d9be98c66703903c73a05680f6c454676916d1c03da6bb45482c588c6cbe57ceeef924caec94fbd096cbd13528770995bc50d0bc02b24959f4d61de3bb6dd7fa1a47db7856d53c7623897a24acae7473439217d52a2ef34a3a6c793017d6b22a3845f8087589ac311d00be84197a8bd6561fcb8472924af6547cbc78395721c75538278579469cf38553e4066027a43d9584508c7fe8f87a7f122b484a1cb922b62609cfb48c7f3bab00fd709097c87f5ef401cb9520b55cb021211b23131b2ac07ee9da735b90a37a84747a26a0f0c7b28672bb4d3cc6e0f1c3ee1c418dcb26a663519907354d2bc106fb72a1607a0905886e292d3a77716590ca57b6459ee647906401e8b268d6e782f904be442858fde72513318c06d0715405229adb7632b5bb2e9923d4fb49a5f7b995ec7b2c971b0be3aedb622cbfc344d9c9ab6536b323a68a0ec97b5bb491fbb0ac20f48873443707da5b82d85f61c98f06626761a20436f20dd1e66d5e452874e9b1c6947ed270caf85a9be3d8250e539451f61b28014144bc184e7ab57fd496a1e3a9f2fc2bafb02cd837ac91f61a3ec39e9892293a6a2be5a91739c64418a173e02870f4845d3f56ae573c5daa9387f78156c7d42d2a2c7a051964127bad8b728fad010ff0944dd6c2807b748d62492494b25bd32261115014d91baefb38a3fa06070646c71e5c6e07e64aed181ec46bc0fc4284630a038813834ce3467a0b4b615496b80681149262b833247cfa8f4b4c364833b074a467eb1623fe475aa1eb6734774995e99745d40c5c149fc91264b3149ddc2318b149c45944370cc222bad6759454cc4ae66d30091297d6468f8734dcd43e3f078fa0955d69c90e0f97ca3de54b2f38005e8296c52a27e51a1cbb69bc1c3cad697588a4004634fc1c77215f0677879aab3e63b51ae7436c5b47370e226eb4ac15dd0281ec65c56b83b60ac42de17b1374d1680b76460e294d841c1062638cc003d043a26307c08025a594fa3676df03c87789a4499575948b2574f6931673936e971f2c79598a1b7b35d28103252b4df98c47f6afa057bd87b1cc516722fd72bae0f437479c1ec6f68087453e23fb4381e5930e5a19fc9a267565b1dfc7aab9c13441101e57d9a4a454a6d1249c3cdba091113d0f1b257d0986f23b4fceb35c95ab05e2911dfb2899398808582a6b1aa9950eaa9c87c8bdae7372d46c2852e85c629c25e05a169900b24cfc0a68661b6d44c74c658ab8c00c756861be79272339a60828b9f0b8a325850b41950f97849dece714c494ba9bb09b74ac16138251363b52dc166f220623982c19ef565f80583b84d0b91267ba98b63afa31160f65961181951019419fc0627cc48de9d6b2c689969548641009cdc56b02a140bbc4a995a7f2593e0213cdd2cadbccbca41947fc8033baa1754a8815ad52cc31940451f8a62dd6b39e22a6b0db8a0f953c6cbca43f9c1285315f59ab9980ebbf57c1457dd8361da04e0eda771cdb37a6a54c6a47719790976a957978e198446320aaa840e0f1c076260e75e9a92980891aa6245e003f1fd6363d0b6e5c73b476b77ef867a60b225a99a763d0ea80a4c61739875bce5c0f361322450c93040b4d6c08120827b8026ace0ec73302fb6824367ac89a0e7df45b850618612ace284c2da4421689d8c7034113f9a1b2342736f5f11cfdd7ac7f8468075a4a2d7960dfba9e264514a8d7c6d11c660cec1efe33c04b4681dcb31fbea47247bc83c581b174b0cedcf0bd0b7b622126cbe323986b75a407e416fc0032fa2398e504967ed021e993a955713a76365ada810f9bec7ad1a6929a466f08113cfd6919e014085d4148be060ebc014fb1fa3a1ff70a3ad94baac7be6c96bc0f28a021e39cc6bb8a6e16312255880a84778cbca55f4173b2070d527357cac69c22587208496af1715711f76d5c185807a13b2c791b91f54b23ac8b66b71b3e211e55180fe7a1bb2bba7f97da8f82734ef777b7d2653e66e814ed7871da35c95761a88a611bc383add9a329706212b9780ef5d53e933c99318ac47e26859f507bb50597c3ab1a252c77d22a817b402b80a63532f21a0f296c40bb8021732fa9da01bc60bc662a0754914462689de756a397e2384c2372130c5a6f05ae6c8b81ebc22125830f04d3740d2638d031a21f1653c4f664cd182b11887f4784c27954984af251c923b5c2ca4f1777cb3eeb7a13c351c07c4f5562b4a8a477fd348bcb9b8e6bec787c2340c02c0dcb236fe8d7c6ec8bc9d156b89bfbcbf4d0599838263ad5b90fc155051137d6800c898c8a50b82a4e3940bbd3bcde2013889bc4f3a7022d7c49370ac8d826a3aee946b79897bea8512d8b899a8c17e439760b58859393a5c264b5f1549940914fe278a40b6c9a8304775ba30c8ee4cf234ac56862ca2e935691e426923973c32b4f2408cf63c99d7b2c5f0c5aadbbb9cb98b53f787431fa73542c5569e5f5ccf0e4a868cac6529bbde42a5f1881ce0a729e6a531b0c401d4979a7425baa8b0392a8ca9374323ddf2794c237e38e45a43a5a34cca2875d19217ce7547d2eba6bca38635cec71b814aaac223f748d13158dbe8eb902d9125fdc22202c4d59251cbcb6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f +ciphertext: 8ad5e238206e4068fe9be1a92e9ac82c41d247e864cf81e6006d6f3cbf6d7be8116cd5afc3764a34c2d8be6335745fbcdccc3753d787df7963565f8aa09faa473c3a31c86757e5747e5a309150ac618d96dcead932a7ab3bab72c6e2ce24069787052e998de0bc8f43ad84a48717f36e3cb6229839004f07f6c219375aa17888add3b069ca65d4b83b05eb9e83e2c2a053142dafaa26fea7e995f126079d20d1393df571160651a3602cd56422486b4dcb6ad4bb752eaee6af42128c17fcf72718c527d08817f6b2406ec25d8c86cb83ff644c3bc4fc9400d4f5f6b6c43538bfbb16033eb37428592b7c911139561872ecc14e0902c34dc540b3f232a2fb91f4b68cfe3f901f96e355c6ba7126617a8c8d231e58372912c876f8ddd6e1ffdb62934a96e9feb82babb4c3e4312fb6dd64550dadde1c3c82b42f129e6825464552281810809747f64887e7ae70c56d410e4b4349942be418f7e3ad2d85afceba02107ad44b7bd7f8505c50bd259e0bf20b8113f7eb6a209f2b97154b0198e579f66784fedbd5e100389c8e271ec01c0ddf5680c536d12599eda6196949df9aa66116d71014d79d3a632ac09aac8bd04cd07b2775cac35d158ce012a6f157265c06721ede539be6c87b6ca44e41eedf50bb79d54d3c77179ae8734941daeb930a299808d5c336bc954e0fc7341681c3c2c7a17f21eabeedab5febd906cf3c77f52387fab180a24799b9f4438810933d726a990cc0307e6f5ef94e6e7d7d074b7804d944c2f9c341e6d925ad96baaf83f4550fb30a89591cd8e66496dc59eb24405aa518337fafed03ccba8a0925be546672978d4e49f068e9fd6216cc9990ae4e7c785ae005409dd512d766dcbc8169412841521ad9a7cf48ad23c075cc27eaab6b62ca3f0a27f6583f1b6ef541b6a2035eac34b1ec3cac912d2dbe1daa6a5e7165b9093a9b8f2c0a3092af78305dbe137176dfad210382037a7233aedcd93a4bcf0b068406c0fa618cb7b4e2647ef019757fc412eb0b7f7e8b454ca0d46765928d2f7a468f8d4643553483ee671c9476ac712c9aef32e357867b95e5edfcb6d93f013e4b7d764dbd042e5133d5d5b083d9704872f841cecac31c46a4394998678d48e28d725d27d36f7e6130ea21ef6f825a2a3f45edae4b773a7b1afb981b24dfe59c181d6f3568db716a58128e546c16e42e769a62a5fc785b3be87aae4104c9737ad0aa5853ae9ce38014c51c31c0c404a0b67c7ba501766cf864f0c38eacb4701c0b658546d38b32726bc1e1649ea02ad05f4cf5c4fefe235e58e3e8ac3984a11974fbf0d440399e9aff212fec6334d5a1db23a63b0cd46157c7aeb39cb9c99be81efbedca1ce45e655ce37c3f10938904e5aaa6a144e5e2d838aa54a9a54c3e695e2171c1a512b423f94183eb3c28545ade0558697e3e0fa12ef1c5a15b123aa4d7c14c8d6fb60e5b508c083a5f93a35fbc9579f31d1968f4a9248564ecf4cf9ab4ab8eb016a82e3aefcbde9202eaed915519e346c25f04424d5f262f436b +result: pass +shared_secret: 9781578191ebf49b162aa768d093a332b9c849c11e240187cec2ee969d4b3860 + +# Official test vector 72, seed: "6960f21c7350dcf41b4770c551dc8692d8ba2c0b6e162c589166ff22e7a1ac0f94c2f48504a5f7eb0da094df427bc98a" +private_key: 4b390d378cbd58818696f39433e9a34a46109fe98b4e806a306119e2110a5ad3993f7646213c0b27dca918e624eb6090930baec770a838a501e8979c1e210f71dc4674999cb8b92cf0ab1011aa67ce5039446957be38a16dd683795621fde5ac77e94c07572fb2d95cd0169803db5698e47a6ef3c3b11766f095496ae846870a68d34b9032527902760ca97b913c42490486063f0ab27afa8b92b33d88fb6653dc6ffb3b55b3a9b5d3a9b5f89916a727439561afd8e172f5313ffebab7587649d77563df970a4030aca239b225c78177058c9ea3cc388a3f5f2732e1dc00c11b936e65833cc90f5597266e29846ba70ae0239820e47426b8a092792334f390e399469ef13ff2301f9ac94eb42386ff882a3be8ba23f473ebb271ab6c52e5b26c5eda203c0b6418250c8e2216285cc78c70a386f1935ec41740a114f5a32ef703b4a4540143165337f5bcb42743e574b93d62ae23081e2dd7c51e923ff1e25f4734395ad0ae016a6c45f8096bf2aad933027d1594d98175c91143e320c3122bcf16f10f7ebb251101882aeb94d6b8cf893b7c05373cc9bb3ee58b148d1124183c05c116b6c178a2c7756700e15b8108144f5024c9ca04a3dc2e476591a7c79970274f112c210d00c198860202a408453985a3d9b5488bc61f4c8c93741e6e733e1358605c6a2e30d7075008cd5297a5ef5a18081143d5907d88284ff284804b276a193352ad3ba5463383a024908fc05578d0521d57bbf7d03cecaa93ea1326582307725c62dc79b7e9b34bacd94ba9608463c72f68dc0eeef10bc3c52e9f295a65f460ad368092d3bbcb2c9f9e1b2783737e1c3b0ec0442aa7897ffc75471b18730399257f019fe5d73afbcca9b83932c94360612b297f3a84efe90278940e98ea2e746857ac73adedb6b4226667dc779285c6987ceb03ec14a00302444ddc02e76aa6d95392053b176258546fd0959c8a6d969cacbb809115b339d6a517578502a46b833f84712dfc01b7c35776595ad656059c4cbe72e637ca5c95572952fbc772463042d9ecc194f93c8b577a220116e7e58bbe5276a90324c5492dbe3781b623585a22a77b2cca935009eac03ff1947fc00562f1561457f0220a764b7d0c06ae3a4cab90276581445ad7bb07c817f4e3a05613541967388c3a1a784642c9952e8376c57d82a16bc98acb908521a366adf18dd95569af860994858236f5bdc7ab9655a95d28a956049c7365c84c34f33ab305a35fe3117a563b1947658988650e3c65a6551660650b33217295e79fad0bb567054b2c0c1fe5e3ca560b3a565a58d9054fcb171afeec538a1c01781870b19c63a49243fcd9b384635aff5b1642036220f15c3414a9c2f82da81b6e625c1944109a6a1ac06a07a9b8c85f86c043bbf62af18c05c5eb3bbbb3be723a8e04b9a1f875c0d645412eb8c51fb1c305c2447628c2f01b3b6a6a89d8c849f48832f7a9662b8c476bc426f54b509a8037a52023a5d02fd10394cee11aa1d5464ac41ce6961174a528e2e3677032ce03b79ce5620a3dfb3291e7bca9c249c27232bb535db78918c2a56303090e98c1503d211d95221e278764479a1eacd92e5c50b9d1a3aa9c547194275630cb7644bb5dbafcc65109cd59f7084e05cfabe4515255ccb724b3388239ce1ba8c631c1e8c0b444baaa6ac481db8b4d670ab65ca27f33a92a11c48f6ac038f0914637b749d8b962c00ac8ab0c019c92960ec3817f34840aa7b63b19826a12234a81c9faa8995d28c4d4c44a0fd2c51720cacc8751bf6c31caf045a79c6f9b15c2d406c11fc3b5df6638e1b83164175dca5a1260a88c74b4c2432a9b76c39d43597ce2e3ad1797c25f967868b66bcee9b6a4d1b53fd09540220c7ca75943c52e3d4a124453499c681c1fba4dfe80919bd9467bcc0ab34b7db6012b18b3cc4c679e325b82518baf5123c88786745c4a0600a302a2a367b717c3dcb4c32aeb4770fc93e0213aa54b2c6a37a326f121d907278203724ceb6cad8717fa3a2106217864274e6220061620052799ba22675db36863b2a447e5a62b3d2511ffc83bb34cab6cf7356a27c29798c00cb32bbe1023fe1221313cc7ad59144fbb98d0182bf0183b44990da81016e2995206f2b0af19c8e21b1afe8c98d608c0c7e52075137caf22c69dec4e0f1763c8bba263898b30946663d84b5e0808e6ab9a6df970d2568303704d4c651c912b7297a89534e324fae62628580becc3a2051cca9d5757d5e53ff8fc242e42b2adb06cb2547296ec8431fa6eb8f7384fa559f9284d528761f9a23e85a0bbb3e57b7a876d2d4934d33838906606e6da9a311c15cba30f39d05236892462824bc4a4b4d6b343e3594fd9d68972d99eb26538f9eb1fa7f0718aabcd5dfa5a670b0f8cd595ef7a082abb518fa34891a4ade983877a333e956bbec9a82a19650866981b8b8c406e22abd784aac085b6ea553e30409ed6b39b4f367ae45b9fe109c6ecb51f23d2a755caa347aa95e656cf45a15e9438b61031717b3551e9e3020ccc330f254e82d89b5e4839a9f8ae267b9365aa228786a371859d3847ae68713df98768a1c792adba39bd2359198224376cb9c011777efc4aae1c3d179583ab0952bcb5b1e8577a5c476189d3301bf87fd8a1163b81bdb4a8368934ba4867ae4dd03d40c2cb5f974a5c36a8d699546d831095e7b354490838a40900521da4a00d2fd7117e1060dfd363593ac11bd31ffcc08c1eb8806f249719751ea3eb328d3a36590919c2317429d0486266968cbc6973d483015b77eec543b7f971523589655732bdd1783365761d937266a420ef3b849a630ab5a4003ff09c116c1037f4576c58adecb5a5e0899892854b8971c9b76685164a14bc5c8b9bf212c6c7ab15b35e25a586e465ac05f3911da7063208c3df46923622402559ca963a39f003ac0334ab19d02ed58c990ad983318b33429acdc637a8393082684c517b75194506bbeb9686136a3c8a284c852ca747fb709d4533d133b5798b50c1e59f9e99781fca9f447340705c6cb7e2231e257f95d681805b8cdcf3147804405f30b4ee63c1aa9c367eabc3fc606306616eefe91026507780e6339b209cfb7a227596957b136e1cbbce15fb9a6fd9bc798c40f0ccb7651b150d281d78b3508939ba836ab719cc19c61860bd3c624827ac26639c05a39c88a1873204175bf297561723a16375dba51947b83e46e84899377411b2bf8b743cf8dc23fd2ca07d11aeec1990c42a7321ac6f01cd866f8719ef21bcc0e02346fc5d8ba3d3e7f1fcb52d37551212d647af97825a77f2f4b6a45ec1a579f9f83e89c025d8d6876db26874f38348604293273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 +ciphertext: 29172b06b0849e37c10c1a8a719b8111a2e5f7cd0b195e949d0f664220f0fece380d03ff20aae2d1f4403a795910536638f7de4b502d497bdca8386b51734a05dc23c64e5970ae9bb57963088669eb327c4238ba2cfaec2d177e5b199b82ad664ea184db6ecd35ee97f0a54f2f933f9a04383188671497a5592f4b84a8fa3e5700d28138b9d3c2c91d104a73037cf3ac5468460ab1df7de05a90e0fa6b4753059b5287dff997f0894825d3766176c2b9fdf767ba065e45e74b6c706e47459433140ac59663109de28defb54d4752147623f5621c3b48fc4368cee7253c128140d4b1dbd8afdf87b9d58454062b6b3262018e37ccbad6bf27f4f947a9711ced9a45644d3ba3b9d670324c639c9dbfe69c2d783327bf7a99aec3730057e1e1547818c67b0e96fd48d024590db6cce338b32b06c9ccf81ed967e2728306cd616d44884a2e079af7058a4eef82c48214e028bcda3b44ef696c1e08e441f28728e503465a138dd7fbbde562ed6bcee8f5a3742d23aa8c5ef32179a1c44bbe41fd153ad2aa57eabaad87fb0e022aaf3b19b1f3a649079b74e7a61e32128506160e7b5cbd31d56673764bff84aa46b99cf1aa3eda04191a769d5ef2d569fa4144f51cfb9c02cff06495f95ab8ed192fbe9b363180bf90a52c752f70f4a587381775544635c5a574244ec8a88db3b86ca46f30a481ae4179415d234596e2cd24ab966fbb670e9255eb1bd3c261592856fd9ce541be9a3b06e157c5e4e165cf91008c51d11ebb064de31e3f894d6d4d46caa0592df5dc0c236b546479119c842d3d52deb75f966a5d4050e01f7b16cf6b93fc8731e5055325ffda000114eb7cb6d7916088fbbb8ecdf4ad8cd229ff036b2a6a400ea1b375c576547cbb0ab91b8f6f4c71555836985b3cc979ff56938d9863c4b0b75b011ce70c1a60b77b67988237a2a6b6bbfb180d36981f70eee891b6c00ab1261e7a0db824981b5450b09cd96868c611f40a6e5ce6e12a31934e56fa334c3dab7515e7c185575b2798e2dc9c50273dac8bf1da90fd8d8d5272e5dd24b87f57bf47ab79c8094fca322e50fe3425b0c570764d95a7690785b7ef62c7f4d6154a898955bd19c808a3222c1ecf67f633267ff61e8ba97bb1dc0b648a1161dc2499beb5db7bd621f263884248b98b6fcc3d9bf3c4c4ea5a3f0fdb33534c15d84278f8b5f1d2e98661623ca1cf9cde7b8e834431ca82c4cf5fc2be458a1abbae90ae6802e6adbf6085ebfe11c1622ebbf2af755d8748478bdf1eca4059ade7275718a4df81fa74810ece57e38f10bcc954be61720da461f86f4ce2f3771d386d836bc7c720255dbf7aa6455170300e7ebc2773dd996859b53757343045178c7893aa36e4f231ab469af10cee8cd17b612c6347755b0e6d3a6aa451b34df9349228eb5c76e0ee3ab37633917a4c20554b2940fcfd041ad79c19634d9626ac3411c76e74756da3109062f04af2430de6301da1734ace93717b51b2eb1545d275d442edfa35ed905eb1a99dbcb468bfc3e5048120 +result: pass +shared_secret: 515dc87c21e6b134a577e4eeccf43a982ba7eac1224d701cf099ad07fee77cb7 + +# Official test vector 73, seed: "53df46012cad4a745b7a3c06e18ca95e0b839fd8161e3025749a0887549eb0ed6a44eeea08bd6060d6509dbf7e9dc864" +private_key: 5e49938e23a5c65c89d4c40917379cd2a5b5d32881a6d68c28b48a2e356de63896bad68acd4a474cfc288113afb2418173ac4b1c3255136c73a00c7128b59a50042bf4a3aef9015fdf0108b01cb701d2bf6597637227604841651e3a964326a23b038d0af855f307413236a3ef95b4433a0164ba6bb27a858ed9b22a31234480b7e559ae9194aee9945dad45b0a5e85bb486962cb19d8b52c7d4b473f5f566f2779ccd79739649665820bc0e8307457b9af5844870ca580de2394fb092edf512310b970f5377fb80118fda8517b5b16e212447e16e3a5a5de7587ff3b271533803b9282901192fb20cb298d666cea3c5386bc658c5c1de9673857a3091a413cc69b2c8e46382ac97a13a9f31c1a47f0b6f898a84dc0278bab1a7863746c03576231b59ad2610e79a933661b6f23c63ed9404de06791c087f42abb7c088ad15c54ab23c78305826cbf263d441bf62e23180a79ae14a1a1fb31e115b02a974ca7025ad0c634067d4082a835bd274a44a218fa4642caaf1c4d108570c13bc3137468a6037a0709f0c0069443c1e7fb2822a282d08b030539628448c5b0396cdb76c89ba0c13f8ab2902d44190a0342ed5acc88b72c3baaf18880561f95196f56889f1854b4cc348d6019f4a5036123c1650332fe47115105a085c2591c952b35289efaa90d55c6c888868c20075291435175c086edc5d07b01e4441b8b3867b8a93cc9ed07ad71b387ea3363064194363b77fd106ca5c13f6b585980664b2a036b730ca50610798e3b14d176e28066719581821272157d81ea550992bd76875c22736d7163b01b6e353cdfe05b63bf5ae02a68c3e105731d8af5dd90981a02715e061f8d3b94448115247bd23137cfc165dcd4c26d065a28b84cbdf4b17b1a9a27046898c529ba42217502abbafd68bf6990d2d1064a7aabd89075891678e2610120feca2ce72c0e1d8be55f4c0ebf7cb565b492d9a2370e93482201f25b5ad667b0b90fb31dc8024e4123be6733217488788980f5216116a702bd8c1ca18d0b419b785961424f6289f7a55a211615398575755b8535fb0aba1491f00517863c41f4fa1871dab1ba42599e8e54e8f4c6a54e20f5125c595e2099439b0402794b9fa3a632b4c789c9cd4613776218fcf066c22e4b12dbc90ff0b4d08cb7032c07603557ef6dbceedabca671b7b07a2cd1df6a89ea6a7dba65e145b9515068a15e7053d5a4b1323cb75a8ad0d6ba3885a7e77460cf19637c1b6c330725588091ec1f158484c6ebfe43b4e01cb5424bce33758ee10a438c0621c9217979c958ae89591f69d54c4a71719cd4aa76da6ac4ee4b472afe45412718e65a5807d452491e1a0788a570bb3723d438362f50c2b26b19dc696f492452ad13501c3bfc81766dccb5034ccc29d4c152499000aa458c961aa17d74cb5819a84135cbf8181832748917c951a468fe70c08c1333de71b64b7ab158255c20aa7b2ca8a912f898574568e27691f8b517425c1be2bf183401cc2afe08fa65a2a1135a5dfb9a86dd3985351b61de0228c112a35a889eab8a57273258a471551e15ad23328c6d00a3f78a1cb9c836e304ffec75ee1f0927962b642ec0694e50963a246d97a240639a611c414e180a227ab843cd49d4970af3b68c255512920773abae9a2e402b154b8159b63b4885736e63632313b2f99db66fd4307d411a66871c8ec859807205535d907c3c6541b283824861738acce081a14e8047a63cba2f42c71b23157c85a7763d3cebfe93aa7fa0a083284ecb7c4dc16c8119b5d90546a461a5b744b1084f120bee2b548801c381a9d561bb0c5c35336601d1cdc310a610c8df78de62477a6f26dba6038ad04371913b831c326c0537cae530469292ce41c40a81b92a5c04d69eb0303b4b38a5cc45fd2b0ee90cff0b81474d0406c8b34b34c1efb596a704ca4893949614762a30c54846023dc3a345268ce55c0be97139f5f733664a58b67656ea211a87de01f9cd902a9295355d13a15bc044fdc77c4c53f671a1438e283371b5db5f82fb0d789e877b6820771f0ebc64da864a01caff73c4a42b5416bb043e29c7b2574c6e214a352f4401d786b4d5351a2559b87ab00ba84511bac1a099b1b33e8cd45da078d447b23326574379dd3d32ddb22c6a4037fda719fb104c85f0264ba4a9ed0287a31a2af6d58291676a37c434ecb234e4e1c648fa0760da57abe45703e677fefd03687415132d03252291f02f3901d20427904511f9c11a7f07041302033054605e97fb719a2f70648a2c30a0b42899b195ea8e6cc96610943c3276698a34a61893ba8770c69cd55f1bc0f00ca0e04177d0469c4833fcc23a6ed339acaa91b6e081692340f53cac66af5a6bcc2391729ce4e1c88d5c2610b00454fa21e8faa6487022f19f2c81d5452d5170255108beaf3979ff9abc2e04c8e3669c6aab80e2b6464644ae2189c81fc92d50cc56039cf5de2325ae5163a1b63652222aab35e17430d16477537f867ba4ca0e9b1c83c61a562c6822e61bb1450426e9716a77c1934ab17ec69563b8299e6ab371d996849c8cf7a84ca1a9bb654e1ab20a81d65314595a52ba18076f8712532a81b00e19e8734968f87c03fa4763208862d9a3ca648582482bf0d5441fdb7c84ab237d9f8628ed2001a501339682f9b8aaf6606344b95342fa62e782c1d9560b6ad55aa332c1fd533a74d026a9c9757f0e91bfc96545d0b6477f31f95840ff0a4127b16c32b635471480523f93017577513ea96159ac60be179d3a09c5ccb6df44174de866cd7548339d314d160718f262edf32382915197bc2ac6e3a4f77229e22dacbdfecbe3f4b72ac6bc9d9354e7ed2c31ce7acd7f3a2c8b9abeec00613b1600c8992376b73f8c245ac9841ea06409454b48d8c3a152bb8d6168a3fa6423373651caa7aecf0a5971641bd66897e5991e793343b5190bac3107eeaabc71bc34788a345bcb9ad8a45a50a1dbdb1846bb76205b06e8aeb692b4200a596524954963f01c946131704f6b181d7781772ca6365824f6c6c22a1af3328a2c8978ea8d7c38f6a00f7a6b3a50c2507f103f72420bdf98dc19aace30b792851142d8b43319c93ccfa966d71cff9352f25fca9e8a3064cd96e42e9a2959c128fd532902419b81972838532cdfc08f34541459cc68955c9c2a431ba5126c9bc08039ca45533ad8108beba49bf8d56bd44433fe12a6c55c41f3cc20560b28cf050cc1f195c5e817d23d95e105a13555923cc21b13c9e46d34182974451bd97b6a3da440de6e5bbed681d6eea2c6822b361019afc8517ab7585926764ec7acff3c747479e837831429b97b7cf49ac3763bd9ebbe0a3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 +ciphertext: 30a4b1190e0b9a5cdf304ab06e4654e9c02c055c4b487884c6c77caa6fcd02c4a01869738f01423ee82176d321a553889d4659dfa53bac9213386dd87e00d0ed8c763d73a4909b223922dc9bf600a30270c35aaeb8d6e5e21f47e893c28380f70b4f19114944e7413f657927314114915c0b7bf7dc289a21f1c6c9b3079342364899565b604348a97aa5cabce2570944d128d12dacbfe2dfe3b17146892f1956f0cbd14edd3d65531aacf5deb667c48c5c9b76f83238c49a750552bc4740ae517c6b82fd2444d9430f3ad1e4790f609db80727cc4db6925da917789a83989883847f3901f428d93ced25ffffa87e4b9940bef4c3bdf2247d7c17fe4227d8c3b5f9c3d99edb5f6bfc6c91bfacde430d0ae2554f82e0b53a67a8822deec1d5acd054af2869b992492726f2a7c7d7b9ea0505153d878b301db69919f39640e3edc5222bc98c68b844e7454fdc6f3bccc956843919a428b2c882675820569381bbcc03d9cb932a1fd616a0d593c8aa9c4119bdbd9b1dcb046ece8a011a91056a11d2b84321df7fcbbed5cd25a236668e5b7fe2adce9e82a9cc0039501e57826c46c37177c8dc057d74b190de9bc09bf2dd47a679adcc2a5ff518abf5c8b33b95e95445c778fa97e5dde581933a71bc31884c5b515dbec13c4672d3a5f04d7930f55512e951aa8106115ad291ca9eee526513ed9872b746f3057a2d0dd6255aaf3c16a32b8de76058c79001f7cd23dcac80fb2561eaab3de336d913802e968cccda34cec120f0721a9aaa2da3c36c1e372c382fb194889c41d680f6e1faff0c1ce8627489a693d5bded36acd30817aaf860c7691569b6549c9951e06910918b894317df93856d4a13bb52646e44a3ddccd04d1d9bb5c472d11134544b2b2bdb103706e7a858a559f2e9f10a8b3981f8f858705822d4343a2aac48d9c534fc211be40ca907e1c02271377e9c544e6036234a09387b457d4c5749c80360a403aadd35ba28999aa679a4009a861ae782a614918c455959329d2bb1d91d7503f2dcf0cdd4d16de8188ba669f1dab8514d6ea80f9e7ce3e3e556d3abaff2fb2f956b081e8ae1bd62534b0783f74c7d7797481d2687427b41579fed7f2194ac898300bcbd817270bdd5b06ce0bbdaeebf60f6a308d3dff2e74e521453752974ac951aae7337378c87ef11028ab476576aadd3efe613118c9e537005969676d4cf2b8b84bbf785a7ab61ccbf29586f2c4b0c3d3a4be23aa92af35df92dd23e8b8806acde4bc187879d29444e2b1ef31712ff714072f83b028d3f2cf1aaec3020865401245970f6391a45fade62f7f22920b8729428842e21008262c091178b84c3acfa870b43ba47f8f85088fdd326d8f4de12ea21c19f8b5fdd7df0988b43511ec21a9265c3a23ae79a3938d08404cd8105e3b039cfe5714e7060e6444c77296393c6bc88c3df42c0d644781be5f232479cbc5a736e5d403b190cd6c8d3f472255c02a7ff0505afb9942f6d346fd7eb717f5beada57293e3ef9282ad10ae9a3cdc3b04030b3 +result: pass +shared_secret: edc2c0314c7c5b2b071b85e373c06b31fa54dc499168d4b43b15f1d05b8b7ea9 + +# Official test vector 74, seed: "deb963f8b1d8fbdf499d564ba8d2d47915bb402da02f17031b37b4039a842afb9b7e48f37200605992bd2429427a7a4e" +private_key: b8f488e5f0c30b5cb5052115f097a6f20c0f6c4206522a50492991829251a189c53fd67ae08a467590a38099994bd5a0b5109827b888f5322bf6eb9c6d75911b2a721c92905f145514a3138ea132e5dac52851160c171e80b728a87b855a78ce550678ea20044db943c708962c25a86c78a29cfa801aa15350841989c00563fb46d299274f18430d66cb6ed9bc89145cdb262c18d5c095703e779c14ff34459ed12c13427733c59bef3c8a6c24b5bd5171712b074c797960e2be7bf2b58a8111ec9c01a3f938e83637fc9b59123880fd26a845d26de5fccac29657cd2c8831ba76168421b276120639a98f13a07f905c2266bce1f825d1c464bb2016665a2817c84369b7708f975641026321fb4c409531cb1a3827b80f2c94b1c4d36132b10e69b8c94502cd46c540902b96eba76a55e3bcb8fa037a217bd91816ee09ce30f19721f12432d7238fca919a2b4f718674d4558dc7095f0461a20b4aa1aa080354ac60fcc8ca2400b2ef73246514c41cf3945cd6a425959d1ad08b51e43c02a834df3c8e084b04b9695b2d1500e9d5761e86c95c7c1a0e12783aeb6f18e14e157881640204cf5a7a2ed815797a49e0696ee990448c312cb7a55a28fa1367b196001cce6a56796208100828be8c241cecfb82caea1bdd36b19351cd8bb1cab7014cb887bc6e232e74d036437a3222f56bd3e0893eec360ffb220c03222513293aec7ea6da408f9c12016ca03659791ed14241331e5ceca1b53a2453689f8ad819906cb19d731e0ba7abf0096998f18917e4794c4b15659678dcdbc8980b76a4d5c5b8567d55719e774a2d1c952612a9af1ea7c77f896f88242790d989edf3781588c10a7c50ed25821b4abd882370aa74bf299975e9c54120b786f5917135b69f3ab24465aa134cb1bd3fd61f27fb38692b5f3db5cedcb40b8530834c9abdbae738c45017cef302ff334c9e2567e0ca791175813a8382489b51015bcb8ad5cb37626dd3c48c745006f5133bc5557f6afa7ca4633bbb26524ae968df362f33c716ea9131df1754515083325bb3f4e91e40f2c598912ca1da3770e81dddf8980797277711216b93b41fe456307a8135829ce7d7af348a090758bace57af3f353cdda444629a596ee64d10a5881eaab061782314d218982602cfda25a926bec7d57228844adfc31109d210bb2c88809c47ad09c466141b66ac6a013280efe78d38e73d6eb9ba00f59841050558964b2916ac04757e968bae6bb715d94199f22a81f4e3247b7caebbe3cd9bdbce68c931357a568c39acedfb0093337d95d92dde215fdc5b6bd7e2b14aa29046d2a601a91f9d4635f985a393e4408d64be23052ddaa323c5d0235d4a578a63cf6c655d55f78397d72fcc0cbb490253b9a4ad0888c742ccb474cca41bf4b51c6693767ab872586da6b470ccf0066a038deccba3e229bef1fbbbe33b42a5c524533b08ea926469c9822255150cd0633df08b01670f0c134074f22dcdfb593e477853fb383a4b683c786139891f647c8a42680d89352004560eb1232fe173c47379119b29226691b015649253673187f98827d22aa0c168fd7a339992ce4fe717b6e797f616c27d49b8df377f1300ad643220db8315a30429a6cba4e1a93cf066b6c6284b85c1ced4a4b17634c2dd8c758ee3cac74b2402460d2fc12d98943de4dacb2f5912fdc41e8b1886f38c6619831677e2a32a63860d2a1e9b994bf4f9cdf0c3c83c5b044c14b83e57c59d55629a9704994a4793a7178b69ac1892a578802a69d22d609a7832b55e731a65a1f29753870f8f6b26443824be227f578c6d97c57e570864092a66c8184ca58b1b8f89ba9c2a3e7a17c1bcd851aa552ddbe301f2774e81397a57247362426807f370ff2b7f6f7b1f5b83c2f3475cb225b71ca0750f333d72a434c88a902d542cb8f50f6ba8ae5531ce60c5c29057c2a995ced8a34cc1db7005c478fa174874bbb82981107faab591b8c9581365e7205578c55fc06b5f588c65e2ec700e6473752708853a8c9a1acad3c08bfd67c553b9c603206a1d26276e66c53a166398db6b2e51754e2a67a54902cd5839b97c66d2421df86c42c7181f89d2afae41bc116212a7492688424a2c81b85bf616ed686e8d0183c1082dd61c1144417dd10cc0e29b3168144064d700c2a295c1042ae40848fb07abf2aa7cb2883fb19454a8711c72670d8c0b152dc9cd39a108ad9348089754703a608c0b544350879ddc71c09051f92ba755717403130dc4b95c19d3510363a5dd620cdeb1918af90dd1267aa9696eb0334810b9351df981a0749a7e0c253d399a0115ae515c97b63a1b0ca42794e00ef59912a357565b427dd5aa54b706b0df583e2fb68ceab61395024abba0a8ba4ab6bae958d9c13eed40cd20978eeb5ba041b837595427a644a850340168847acbb69b8d6809b849a7d6a6b67c170dbeaa41be8341c6977dbc025688244396503411148458aa2800c44195211a86763c54e45345ac258541926b4bced6a337df4506113647828b2d4e45723d68985dbc2772a6723a032bb3b84a140a95dbc480f1495118238e74376c3aa78c25e3703ce121e8576c22ea29119b1eb5b946d261cfdc71980af7961961074584a7ed970fef29172cd98a3ea5550f994f5d763b00fd37f9c0abb1459b825c6deac0b35d451a9eac64b03c3c0139806586c8e0f63b8f77aef5b207d2615d5f296894c9a1eb0b68d0571351e18a20084580d98aef13bc4ed039d132cf015bcbf0270d5b971f10f581093656a091af7f3725a2e16c8a74c541345ede689321a436ac488b23895ed3e81fb4f25b83964400ec33c529350ac29f4876128c010ca9c4b6d3e47d7ac798559251bbe4bbc7ea4ece0b76e9f519d819b286f14fcadb1231067bcb113ecbc737020b47587c491fd26541f47ee2b6bfe6908c73ebc3715c58aa93484a5c2692598b4945209d47258441c2cde253434a5a1edc934c9762b2740795857e255921296a8bd4542f82bb6ac7e293f9e4b7890810a2e46511e241162b2af6e38c2a07b15a38a494f8412fc40d60847f957b7839e78936b6c1ae906089a80ef5c58e2659be2643083922b22da53912055f26fa7ccf410abc42cf21448290b168cf7c8ba20b28dca959acc253bfd4b67e60c0c5f82728382c96f78b48b4a4c746c32c019bf8c3202c46a7a2c9c401700eeb1c013bb399d9b62eae9a4e68e4a4bec7b7fb92888ee9bb5f52aca49b2e3f6ac6b72b2cdbf2c755f85fd14903d8712fe0bf82ac0b06aae9bea06278c21e6257bc96af0379bca07c78331bb014bb0d6489c14f5411051f9667aabce54da7a8deb73b627e3873d9390a35e03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c +ciphertext: ea2ebb121065a8def00bcbe87f29aa3fbbcba6435b50a8f16958f1bcaf938c7cb7580d196069a8455de58338736ad1d72cb7332f605349a7542982e525c1ad949f2ca7d3c894a8947d122bf8c55667aac75c6d64ffe2953b49a9ca83af87742187865645af50f1aa12042166c5b4a9262ce9691e08f9216d0120aa227b1875e7d27a28084be0aa60f5ee84fecdd7f6f1fb6f45674417cf11c8c90646276f76071d75fd05ba08eb5e83a0c9e6153d97c6456fee5640d55fe47d3f8b3c162962aaee0e15b045e9d3b319c61177a3e316112388af05395649329225b8c7576ad0bdadb78a81f1594ba0c163edb95040c1249a1f43917629bd905bc6a16cc21da6e9e16637392b56d397f4c5ccd814ea599b074925367cdba7f1667ba4c2ac8eec4ec976905ac46a45453830d6ff6fe4d3bd61bbb91fe99e3b5702d9223439f6d91dccdba1ff13b9d31cbc47ee42bfab33e3dc34bae64435ed2fae7ef112f28fa7ff754c82b9082aa944456e23ae2654e0b94186b1bb697d610b87659805b4e5a4e7c043191dfbce990c54caa0a6ab536a21fa7316f22cd8df0fb4532c45930fac927470b4f7d7353e8d000e53687ff1b3649851454194aa3acbbf4e1a1fc549d6a5c60d08a65cef540015643c7d6c1d409a093d7a796f57ca0706ca323bd3e0b26353ab1d7bd8ec8dbad952f3b85388b100367d6989de5396e2ac46d85b402094420a1bc3b0d9b440b49652610be14e36a35cf6502689ee03104af750f7f6f8216a8080298e260cfe7cc76cd84a4b7b46836eb78116ddf30c4227b984db4f482ca7411bb41e5b3ad934d2662bfb767be82b95d31f7ea00ca02d22b22b9c8868b740ec66bb221d4b401ea7cc9112680b166d007c3e279fb135e1b8ad761e2690b72f2a8dfa6aa844864e6330c433c287f246c7269ddaa947212c903d8f08edf7625599486321fc1cb9df6c896e4f61e4373aa58fadb2e095a2c23fbd9eb507d7e8c622833851cefd0ed94a388f2772fe8980d46822ae977b027591c73c113bde9591cccfe77440c476560f59255d7c7e1a566a2a41479b6168220efacd1a866fa3d710eb061412538c8fd95d9d308c4e3fc21312b33a99d7dd270d7d0983b3e60cf72e630118bcd3cff1ac38331857d75736c15537fc8e4cbc01f543e8bebf214b8a45f6b6888d9c551e0bb3dc84d3d4a3ea8eee1a453d8a53f06de71d127ac7a370a57a89ef88f5291fec70308e2c5fba82a2af93dddb05b135d7c37a04e25822682dce56e74ce34bc5b8849d5d40040809798ca4ff3b0fbc999cebe11d3d7479ca18342c82b27ade902e5f6070b122ecc7037fdbee985fea2a04732ba5f85817e19ce8cfe62d86339fde475a56f7e5f5b1f1f1e7c18829bdfc2658be9f603d44e5a4117e2b274b9e3a74dd2fd001deb4f0753a842fe1ff41799dd77b051851e8f4b8bc2fa53dd754c872c4fac00c18768ed6f0cd285ae91516e6288b18fb6e50fa88c7b97c6b898f3a6e4776e1321a9c2a939224a4c903ec117f84518f7bf48990 +result: pass +shared_secret: b3363e6e6dba3e41ac2c63895c461765bc8a0250880d3dd6e8a4479a7fd3921c + +# Official test vector 75, seed: "8e2995f1b3e43853b18916bb1212aceb05898e2b177a87abeb928ad7184e59695c56b2cccf5db80853c28a525e327d13" +private_key: 1e556e2047c1be5b68fa204c0f36add1b8c00e6b66c0906958635733f82238d1ac4686929e4664b5217a774299df70822cdab3e06c5468d8be7d8745f7569e5851317d6b6cea6909c70b72897395c57494aa20551b4501e45825018260dc315b71e72ed21049a91b01665440345a102efcb0c9329f7cf0c619941c9ea7a1651cb0591c53e804987395760ca688dd7c75bf2b255dd618c168b8ad735876e9066c7275f7eb8200970ec4b9c36e296a7be41fc8b64c35e9b15473337a3003dc62794a0aa8cdc71c65577085253220869fb2845358ea4d73ba898f123f7f0cbb58db2dbc26a98a5b8299b40318285a26573ff928bfbf75915ad0518965bd345c2072157748077c16f562067b154ec88694c1b71d20624f19b62e30844d930c91e95b28173f9df878d9507fa35812654353f99b93ef9ac6f61503229a72558570c9d5213db68347f8145a9798597219df160bdb0226ea8b569c894e2ceca7c3c86ccd66450fe13e5c4556db3c9ba3441b37e26ceb9c7fafc460ed1373aefaa3d593b7f317b2f0f8782b76c18eb11d0d804192627d8657bdb0e440490b6c196797c0459cdd791b82b329c6439d2460ccf37621a34b263b7b46f522c24c294be8b36c117418dab096fb874db3516e889b3e92569c32e17f3eec3c5b28766d3a2f4d06475bd666edf00bf0a514d8c06309934ce4a191805a38d7d69d0dc926eb58110e9c5bee187d0675b36af68f6de7a294fa7ca80486d1e561d28c8788a75cbfb718bc740d131a83f9e64f5b484de82775b2b8762dd568e8528e6f213a198a8d6a21b9ef668b49b87e8ba97ae468a379968fd18236c95c96f9c84b23296d5a9210869c5df05421e9c3c2b65975a93aba3eeaaf5d746fa679c5e93021cf93ce71a8b45fd44ed92bcf43d0172a8589585b9cdb7baaf1041e81772b37861fff4c60fc5b7e8d6871382c63fb3c7249c3059385c7d856cff293138a3b30b6b13614354a502c7bf922076d028affc5bd6d43706f5304fa2783a862552a5b2dd48471880529eb230851b6091b59139732102f66268286828fc767930c1b4a3bab3f14bb1490ba329401f8d95d347b3450d6cfd2c8355db3697052a4f3884df8bc28d3792fd09352daf9023b6484f8553fe15336a788550f6023d9c9a42034874cb0beb25a6a4517a1adc72bdab35293f16efd7171455b948103bee4fcb7d635723eea0a4f7a3dfa3838e7243143971bebd25ec82c0ef059992eec1aa37835fea57ab04347e86855e0ebbcebd828556a18b167b5a4c7baa945560a276ebce40d8b6c6b23b417fa8c39ab55791e703a3568ba28f022ff8cca8f6965792067ce23465afb4b3517b5aa80c3c7001e78b62617e87e3b27021636667e60a47258155f9a06a1f8c93f39420c141372015b70a3b69da51dfce42fd748c48916851d78c8ad5c5bdef8624df33600027495f6be5c6a78cc43b660767cc1e77d5b7396f31c8af0b35c9826c185569255fbbd7fe0533767c89fb43d1e282b0b9b348ef31d7cb15719a0c1db21cb57a1171046ba9409920f08a4a6d12855e113c427b2ccc4193c11781df61345229191b60283eccc3b05c49316c144a8b21e494d3ce1b11d58391bfb7bccb3a95a0322a62aa889781c4fa3c36f765586b2c2a20cac081cc08d06ce1cea6036463dccc34bc294a51f7b1a5dc0778c143f57b9ad2c8b41a3b3a7e3317fec687f50294158ab07441c119c299d421b3d6cd62019b4cfce69c9dc5509856b7cf087b66391793e7b2a77262db0909861b46b5d4c23fbf134ad43622357a81cb7c9f5ac9cf1c190b9f711164a9cfa4892927364d800ad7fa2888dbbaa21b689d4a20fd0ba43f27386f90026322705b0f1069b32760802581231c44db0a43753779fe88f3a824f2ed858211bc172d49221931c3e86188c287a093b1eff20af18c1004979221c85c2ebd5700473913d465359ac18deb3055075386ac3c330887879d5ca762b6b576b7f2d422f23889d51788cd84b77ae879b1eb7026dbcce20cc94f7857aea148213c1ce857277a7808857f47e45cb9b561b80895142463bcfab6c69a7712acbd64a3b6721aa9671aa934cb0c1bc52b464603779fd6ab10d57cca0a749f3a1889e10386cb7ab0bdb86ccb02ea614a0966a0ef2699da6b7282713874f36468c2014539bc804911053d1025133975e591e357a8d88a1c7138a200543a90f4aa250f44ca61870d206a236d1917b509638fb6442aa7b886a54fc21b7c40a1b7d027a09863ef94280c67a4693d28a0f842ef2268e0a67a11bdb4a18b3c459e11e977a5d143aaa82b80520f72c50d248073746662b78ff685086632e304085e9c7050a754b302338f7a2af0a223e45730de36074e1843876a6b1cab85e0d984ece18a3420aabf4d740f6039dd183c57279469bfb9f26fa4f6ae59db60532372b729cdb8bc8b26b9e511234177af2717538383bf2103726c79d84b4489d493423f7375c273a9558611b60c9fbec197047566ae9411637ca9dcb956962354872803891c728429fcd99c02ad020c11a2f1aac40b6fb13fd6c8508500fbfc34d752080536c150b402155e130c3aa1a4e914ada0740b5178c83a67fea746803a35c36a3cc034052143303bee180d8da097b24c89fdb16583b972a50c89b5ca27dd4aaa1002fe2316940a7ab294b02eca4c69957b3d02b538c239f18a342aee0c15fdca57d28930a62096567801f64c3452697d5f4a66781975b440ab3b27a5da41e889928ff41402b20b93f992db6d4216a4a2b169a6952816d61b93a82c5c0d5923152900be6b9236ab96d076b36d406b06793c7c8c85d69f423774c4a0c143e27673cecaa38c66c1dba02860cd305214a2637a90cc84a7aa6bb919e73c06ddb787b1b9117a2c6fd577a7eb417d5a34922767bade412bef212694373401554211c1213ac7bd1d1cc61f40fdbc65b89ccb3383c30476932d738b181b64e2bbc9508268c7061a4731c659d18749ec3b87c3741d1660d10978cc91ca44df588c8a0a7a68670a003ba23f03ae733067139083ed33c98dac4c06331e90b59514c7005e27f179a0ec8517931b678ec849789c656b30c4a736209e70151cd970ade5557f9e6872248b94c894220c0bd1b6a3a0149c1bbb8ba4c9337aba868b78199929044f44018fc261aca4bcf0f70cc1444411fc8cc3b6b7aa7ea9f8d06a30c7a61d89c19e7c50b84a278a921b74e2936ad07ae2b17344356a8e640a9a1392048cacc817bb0924682a027f2cf6ec9b36aad177faedba70e26db0e2958e3d520d23b10254587c9a546b5c0a567855039f6c1bca60414684e7bd1f8eeb7913f3a1795ba4bad4c9f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 +ciphertext: 5be4b5826337373eaaf9e87d53baafddb421fbb420412bdac34c5a4c4a365e7815446854bcff6f7f793578f7a8506b97adf4256649e957c6f3dd74338be6592ceef2aab2500ad35ba05eac5c08b70f196ea618f20b05ea81b9fdb4d76cfaf91d6c243e0d93d315a7c86c420add20f23bdee5bc67421797216a78053bf7a7f5258d6ac69bd06329f473270c480877cdae2784f833356e388cf0a0bde65f97cfae05bea5c149c9fda694c5a9767de87d3c9c4c7a3878fa0c2355a78cb32a44d1b80a83a2fc198f21681ff05556222af755343c735622feb9d4df7a561bef9f4a5d3fd47cb6874ddfece4870da971425aff3d8e9ec8367b97395a8a994f96695e721bdfba993af105d365b42b29ea811da19d4bc3c288e1f768102f9eeaa0a3c7a5b5efc67f3d7c70dff5df5883fa3a85b60881ff7f37bd2b73f2c160e0fda40ca341868f7b630577c4c4486b96004c980be59340ed623b50405c5732d4749b37458d0b230e57072a97ceb2f7d236f7bab0792a3bc151a786f77d8f266dabcf68cac9c89515cf15dd262a0e594246b3568ab250ba1e874f52481ef5d48affc7ac10012267e19f6eb2f57ad7a16da8dd29e26f6ea83f3b2f732e9ba9799672ed967d029f0b66f032c28ad3195f5f071e0a91e21afb721fa32eedc62f80c5dbbadfb37498cd1779e07c0f28774ad21e5e7c91b4b9196449c0773478712e43b6dad9639695d99355116956e180074f41032c332a6445d97ef237d89cb198e0ae225c13521833ab3fcdd59662fecd184c6543a73261332e713061896578524726ef15def3cb125224d831352c73d731c8def727d1db7dc668413d2d99527340f9c3d7065d93cd3f6bdd405c9ce2f7ac58155b4009718199c3fcd1c5bf5d8f7247747b74818b425839e9b7e377769c36e241580a17437557d7818f38797609d5c66fe26eadc06611f3edef762f0c34bc729ccc9cea1e6190c57d51d872fb278a6baffd6c6f8a446b707b707195979fd10f84d3a51f7734f53633c83ef6a210748f382be3edfea8e01f247eb7700644ce9e80399564839b4e8d8ba34ceac158b9664acd9bcab6d81de3638cebe7a6035e0f3165ff882e2dc57b1caa11c9d111fac396b45ccbfffe67c37274d4859177470a3dbac95c69061c963959d58c6c8dd219c360361380d5e8bc8915123e98a24d594e2d8127e918fa0e41086ca306715859a80ee4e547d11361fcc43600d79f312f8b42d38efd3e6b008a8e5bdd381cdbb6ab046ab4c1352c38e16ef981f0b0f3aa1ecaf84e166e68492aff7ee3132d598cce0b118264753b65c39d1cda91d487584da53c9baf49c249debc9de95a390815b226503443ff147b8852dbce76c2289b8818248b15b8c814bbd2b8abc3be7001343f82ca2073f9500ca3f2262d5db43fc97deadbc9aacf0d1cb941773815f83cc24e0f0a17f84d1029027c08ae735807fec4e3735c8d3fd790f45edf2e4a80b984fbcc544c118686c8f0ae66e3fa50cca80cf858744f330f6dc5dffe6d215774ae8103 +result: pass +shared_secret: 8e648593c8f6f6f7a97ce7a2d151ada30fbbc7f3c4fc517d8cbadd71e6a17476 + +# Official test vector 76, seed: "9218943c51fd2de47e509aac67eff176795102f37d7a2017e3afd768fcda7877af38739b00fcdf227c2fd62eb635942c" +private_key: 243c03e7374a7157b1f0c02c4d542e2b31a45a902d908592f3f620c347511d650af8ca8932b70a3563ca126391f178c7c1477c9af532cf1897de99bdd7f07c0d304f90190ede5967898a0e7818622cd76724f77c4d73248bf67955726afde4c4e4201a21ea48401099b05b196b4c698565094b3421c2b429cb83a99b2a7bf5c784117b9e8f7c00d8f1c801b66f63402aeb49822a92afafa445f1fc7b3e76cdec3091cbd474d10ccec25539a658a1a48b6697252d28442a36e70578b810898045c0118468e6bd05c664e4c19440b88e0e847a15ca747e9990d995cd4172b5933b58fe7062b871ca02f539e74872e283abee046c7e15372e58455e4a6de59bbf716bbb62417b6e46296e68c501d4007e1a97b7d970b5bcb8a9586fc42433eb457993e7b15d7c35de95176b09065a1a3f61734b9d453ff0b0313dd8c0888a92f6270ea93ab6e9f15e9f6c207ca9512a41364ae6591c578ad93639e795cd00339cc5b67176f771fa6c5496cba3071b67ffb88b72993ecea38f4d8244d94676e55ab3e484b0ad4776be5ba4a99766d63128828b7497725abff8a932b1a697b6c0a27b3b69121607288dddc03a4c144cbf0a0b11886b2130174b99921b1920320ba515032ed7d536f5b352975697b8a05855cc78d7979da443a06d443d52b4931c554ccf03b43631213b68385e1a2c5f87c84e13b84032804f5929fca18c2ec8a15869905a216fe2852631e00b19b45a4a0b51243b118eb358435b9b46a0525426ba232439cee0cf6f8b164d72901cbb4f1b2750279c18aa255f5d7053f10c1750894c886b59c9ac43b881cd5e4476056884ab9a246248892c0c7a3ab8425d77c178b47c8ca5262949ce47c25b90cb90942b1aaf64825a7658c4e0bef219ba2e609eae90bb6983589e128325dc42d9422c72d0452c208b23297387a9b77ab8b89ba34266130d5cc35568ab1487c335fc9a91dce293d807ab73a41eec932c0e398a762881d2da7d558352d7b8abdab79687e3ca3db89036022adebabe39175232b36703749391c9b772a79396862972ea6c0b92387fa423fcbb6030f83d68c4a44600b25c547f7173376704a6e24c12a5906afc43bf539aa6aed0281d786336373a44147b1e943a9c0c7d8f995f61377134ec1f536334aaaac6ef040dad6a42feab2d6972880c602d97540a52305b24dc7cb243259fac61d2632285099a0ab740083178cbab0ee8f17599f115e106c4abd606ae5568f7a387a086b334f7aea5f92249d678add0c26f268ca769696fc14eb1c6ab8e182e5a727793d6bd94461b0e985d67e64f794b0def70c43ef927544081011a74a28c976c553ae2e0ca49c80926f460078886f49a55475c456f2bbb84270f22c5256241aad6e05b4a9a276e3357c1b92d5df09db23a783f19b1d9d594e064b09fc815bd43b5cb8b9ac43c64a2bca445b235f7bbb3cc0a7723d0a2e351cb4ecbb1b688ca217a500fb20cd37b1a0a2c4eb79775eab657425c8b264583b5c37bbcfa624ae1af5575571aa59960f37599d25cc625916ca149502766aa06cf31fa23c99b2099b9677ba327ca317e49e029eb33993068b022e00411462d7a548f4bb6b435d8ccc1305067f923c7a914d5d77fec8c397304996ce42773532b2798c4bb8a987e57b41b820c6f8b2c64181873bc6515b0c810109890b8abd9bc650f0344e3e7a672e269547aa4bbd0baf9f2b2f3b53b1910b255f7cc6cf0394ceba359685e9f6c77ddfbcf0217611d076ab2140a8dc58199a2a235955b69fc2520b192555c1bed2777ef623760cc71b0208dbf2a5d9841a231a60e2516c5ca3c6156a0c0862b54c311ce2b6b3f442c8082348833b193cb2b22d252a9ac88098c704d83f217ab2a8799f031227b95e1fa5d1a6410e3f025485338fb8338b5c7c4c0f6641b71644f11124b13c2dd21088684035a66a4c4451b5f66c9d5aaa7ace15eaaf03497ea2e1d693b77a4402dd1943e9c68cc642997a44d2f86a339c78912e678d0e314ff162c0e3c9ed8eb726ed910d1b26b99061c01142380e5074b5a46505863f6287dc18422b323c89966340ff7146fec18095147429148c24718301c106dcbb5a1b644e5a26ebb566b504a9b2984100bb6c40b45286d4c2841d774dc8915839c32ddb22adc41c0197431bf8c5f26c2329e6b2a0efb2b0d872c4b8b125d997937236caa455389c60f9e38ba3a662ac7349a5c872d84a353f9710c6c74463f220f37558458d68da5e67f1130cc5dd5ac4608220da2b8c9048bc805bb1f6bcf04379330025ca86b42cc361baab986c32a9e266bb1fa27552192a56b4b111564646b701dc4771b8f61bb5d41278a291920ac1d01649267344732a85109a3cb45b7b8e9abb8cec49ff602c819695f61011c7ac5957fccc50859432f324d6623459d7bcbfa20645b2a54c5a8ba0df27f93ecc2ed00821e98553f680623ebb221953d3d9b8d188044d693abb88bc965984b08d112ea6b4885aca190f9877f1bc123220aad662fb7f5b0afbaaae118c6108c98b31a5b6ff15aad0a87b172bb40998ec232a9d218bca9f03e88633914561c9ff65be6dcad01550903276646208248a56e5c3239f951585ee9326808a4e4f829a15996452a3328253ce2cb3613aa4fb02acf3030b64c6a27afc5863487b9538b53a2e1456168180d257f4403b41f16b415740abb024eb54c23d6a851bf9c54932259d1bb510964445067c68ae362dac6a7c3e29ed3080b0d21a76ec220c7d562340123f7a32c62184d2d707144a1565e432dff443940736cf628caa3607076783b2b29bea7058bd164219518aa77c2b303e07dffcbb00c930ef0f0632c10aafdf32fa7bcadc5719fdb591c7635c3af83198fe306076a9da2455963b91551a1618040b0eac945f788820a1442ccd10fbdbc763cdbbb6e221e8ad076880abd561c5059e23709d40996d41fa6f129c4758b62644c30c1c06d0080091b4d5a8705f4b0694507252ef1a5980a347846160ba3256475741d50a7ae465f1b444a25729ecb66585e51992bc781f28c180593c4e5882c243017440633007db1c637733a01bb8a994347d7602ed0b34261603b84b8c2e14c5c46167af459507152da216f272371a0981fdbe740daa78b9eea655d98cd14ec90cd383863ab5fe8137ebe820df5a007a288586e18a54b43387de9b73f9037f27384be092b09941262706dd6db377f733b31a49d2467605649b9609365232252a62555b1451674b717182870c1088f4b34061f3e8b9034af0cf2c5f7eeb665e064f5f27cd5e4c84531d45d38051ef98f7bfdde2a7116ff4010cf829cbb18512f7cf44237c02241a1f75fe3ba8d22bff03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 +ciphertext: 1c54b44d8a10785f4510f996ffaae6b98533eed8ebd71ea24f7d7669446a5e6db97d90bbd13879fb301ac3042218bc5362ca6c057ca9774bfbeeabda1e2510c44e269049858a0895e6420a46b6183af4b2c0678415698749b20ff5b8ad375270763fda8e841f3babd0082bec29f635826d51d93fed0097edb491e13d264101f6077f35960ff036c9db1822476d980c294eda6ac631f40a8aaf3c288c497d19a340e9d351c4449e017086574100a846ee41f9ba811f6d3b5999ed6cb37f0a64c89c605889a3dbfa095f9e24564b636276dea2e1bbebd3469add8a00b798b531c5d7f734c400806fc2a278388fe7395756c97c3816e4b3b5eb079f376b6f6c46494f93930786d5d2fe597d1a4187235a34c0948494be6532ce29df05790382ed06396b78b51cc95ce617de6ba412ae0374361363dce738a0b3924bc3c0bbc440c660d8c5a012a1a078c26397fb9989e3f25b243a4edcdcd55d4919903a81a0e41b51a59fc676a7672d035dbbeabc379053cff3a63823b359437ed1e148a703e80bd11ca6d483bf29f574f7a3cd4be9c8623472bd3b21455ed44dc092e897bae7b958dd960ce311200a8a9578df00fa0de56ecf00447dff9b18252dd4b2a25ce35de262c28411196c2e49f5a45bd074c0d7c498e42606068b517907938eb7e5b37785a4960981dc9005e5431bb50fe55e446817b2a18064d4029673a6089e06a2ca67693134af6fd75a196c5483127e5349728de459701d0745859e58f6504543755d969c1ecf912dd54e8167910e38ab419a161178db904dbf018ff0df9fb5f0d83315c533f6ded98a06a72cfdd82a19cdfd03109c161020c1e726e43c8354e61906d156fbd7e360d85ea6e896c6731d4acdcc10a8c3ac1c5432f36c9122cd6533f452f2afc46643b36de381d00b8fcb93c32eb7e8cf915f1dcca5cd1f9af29cb4b450408c48df5c2199f8df68ea23e228494bd2ac356e461aec65ffa568fea8c281067f3356223326459d7f746b42060f816256e948960d44703d23eb45d46ab0e924c50978baf55e5ae39bb06ea3a490f9989bcbfe9119ac5f3b83c5f41e079dee501516f4e704a20bd6312103b57f6c0bf56e009eb64132fc2999bbccc8d098027437ffa1cc0cac877547c26680cf0c4f107d8e3551ec06c5aa3791af10baa6b34a10d346da6278cdeacad19cf839b501a3381a7e68d3e01604d66b92079c39bf183bcda51dd0959236f345d0c98763fdedd9a58f5ec9b2978f2319fc61af19ed6ba74db442fde15ec92729aaa8c1fcc5598be852eb8083abf5483a654fac93724ac3c23a1db1c431e56645f505f136252066531c9b6d015b1480555292ba18b3f2e074a4c3b79ba5b831cf049bf37be83ed33026cce09ff36efa757673a928884dca31b8068b0a088f464270d522f9771b7a70cf87ead5956e599789ee9a15870b808b3ae59a6c417a54c4eeed8dd2247682f8c3aac4af021f918dbe3ab8f91b0b43780fafeb58fd043faab7ea49b5a4874c7722926399db78533ef9d41aa8 +result: pass +shared_secret: bcdd6f0d744d2a35147323a4a0451fbfb7d60d73c161c1f8c6a2b5e9f4239c65 + +# Official test vector 77, seed: "542e20078add5296050af150360f057f6b9ab3ba835589dd56987de805f900b906505b5390a0d86cba28038992dfc59a" +private_key: 77f83df8951068a026ba38b5e53487b6d6a39b69129e8b45498746d529cac78b4e9437565f39083aa50ad651b2d536bfeefb93f7ac40f4f4100b231564d4880140873d1c367da759b54c5cd9409382ec3183766a4beccedc375df891c75d4866afeb0ada4a161386b698bc63b5850cd3a1801a4a80f0053251664c7642971e0a0f415a0cda2c660a052a7876a5945c172fc87d8d8c9d06c9c30357ca3f8964b9b76b4544784c16981b075bf49653fb520f99a23e2465789e6b5864b969df900fef3c80e1bb0e12fc93b6cabcdfea9006e638f265880ac630823a0678c29069284a16020ff97404e6f4b2cee5ce8434b869177134f1ae861784b4f7332c4ac89cf8c36e7bce1a59b4682376b33300b7696e3bbb6b301cb3311934514babb29a187db5a4a656bd02d379f40694a6f1b55d1a08de840126740f14bc994da75f2fc3bffcf88fbd9b88f21122dd6b5ee5c2393a69803cd5cf67647e78b94bbcc81355e938eea2aac1053675251dddf380173316970cb1990153c9a0889c3cb05715a02597bfdcf925949873558ba5cbbc8782e57b3720959c19a21bc19c65a27599f32b0f91835c421eefcb3ceedca0b02659f4805d1a5cc916e2b46873cbf6c403e97123271725932b3bb40a0de7b08ff71919b249339a22585cd99698dc1f3413b15cb09142ea1a8d8b0c1f64b1b6fba5ed3068cc262d2067686276c302b20111cbb602f29756c32279dc578e20801d2a3abb762640409b8ba349cb72c9d3056aa788b023f15160832e100b7e48d14dc4b81229c744fc20c3a94918e78c668f1aaf01bb8b202a3c8dcc0f63d456b50461c44101a6338c4b7c725490af0563968a8184daa8720bb36dcca4ae3b3ba26927284c10093c079a4aa3b846a811ce237ea9033541d91fe5308dc32cb8bcb77b064bacd816bd8725569bc85cd7f63d34539c14b56534dc516f1500631a59ad1b985c77c262a0b70c3a14d9b6b81f2c88432568ae2a7ba32824abe9866738adc1761293925c694428ea9153fce0542362be09154b4e06b8a60b57f96176843b2764c3b5f55a1738b71bb2c87e371ab7a70560c245aadeb9742951959a25895d40b453376fdd844c9126c78f3a553b9c9b9d43033ee8c6ab13348058589ec1523321a823d32a97e0bb5270672e9990a0012842c38f3212101034ca8a863ae632b53a412537a40928c503a71b7b095163e222a757f3713157b8e8e369f2e2688d50728efb42229325f475482d167515d2656b1c131bca452892c39b8b2ee658816813bb66a0b16256271f8a23c7c0b31a45c4f42551a9a15e87d507d0547921a26bef229265b24bb96b008da638727615c8686f897925b6f27ada067736a7949bec8d23778708163da61c68d806067becc118785ea432a06c3a99f6648341e80b1c5956b650afd100a63474a32fa53e2a9b49ab935ff4616292d9278e839a70bc1cb7a61a49855216d5bd3c10774836469b48496f0590127850d20c52125150e25bc8388483847c92494c0b48e66aa8805ae8c3a0e7c5ae3ec64ba22381eaf7ac28eb0b76daaebe0b6b6e28bdd478002359c79811b2f47a3c45d938c2690ca38a7a2411c223855bd7fcb83d614266251e76684418f81e47490cf733359bb77d86b1b949396baa99c9d73485e378b6eda76318b961948497db54149f386e51648187c48a94fb603eb114a9408ba0d27f3c717694f9459ddab7c6d51a58c50a79bc072d7717781a6b12073577d3a89a405829850aff65023a771a5f5456ac5b3970d545043a2254178375268abca9a967f50db28635b1d01e7d1969080438368a4b61f63efd82a811f63909aa48a055cd9345c09191abeaab8237696bdf3512b7e8625212bfe5500bd7002066357954344fe361be074069a520a470eb64bc0289f85c981995141a246ee3c6673d9026b7b490a82819ee1825ad39284fc41a01c936d0280c4c681d62e47de8e339fc0a0f958b279ab95114209231faa8962754b12a22efb67ed1c42e8c144f74476f552a297e7573a81717144648befa3b6c6096f428c10fd925ba86b29c8890f2750d1e7956664a714fcc00c88a3cc259b503d3ca39942986d19ab6d76378858d679cc61ab40edc5a007d33813698a6ae96acbe95474b188bfd3208c885179de868dd027f12256b9fe84ff460b180c7655d514168c89a516ba4ddcc56c1b5325c9312e067949a57178251158eec2fde69bc9d61be726338830a86e8e525ec00152cdc0e86473e2b54ab64790735c3a945cc83b999352ad2587fb67dcf2c9fb3b921deac54dccc8201d36562f64831c8129e67b2ae78bfacba95f29c3d20942781e090ebbab81bc5c071b0bce826173f0cad6c101518b56dd03a8bdc872d338225bb16128ca8c7212867dae513c971b687297e4c098ff7c478f841a29dea278d1bbe55423321372a44937d2aba34b279c99e8847c5d4b51f54143de991aa16aeeab267386c7f286445acb87a98cc93029658bb0981048876f0884b526ba58f201257a2245849a57cb425cd2ca92a3cbcbf963a4f360e8616c082d8be4820323df715bf5344fcf85ba070ac3068ae91989e61600416d7cc28cb6d42a461dec083f6126c749ca457146d114c84fbc576a7dc8f9c2c03cf4a3cd2535a7a396f59d73259654254e5bcf616b4970770bc8a3d030c8c61d93eb08644159414dcc6428be73357531e50ba72b5eb99d9380bc4802339070366a19760c0b15e32a48ae0038453527b10c4ab6b1ae8497f49dc47e25a514258b5c0336a812525c5a86e22d73a9a8c3da5e88a468c3439464fac42491b0bc91cdace7cdb15166a01b62cb22b745c38ca32a9727c8c57537c72563edb4aa2b400b778115b36817f188e659b2bf7c999d108c5b2d252f6a3bb78737edea48c9bb91e917487e4e6156dca609aa97bf47bab00047602f296cf611299510b195ba59ae7bc245b8c9721901995b6df4918842017945c330290c6bb3c46d9104faf014db6728c4268627f8c884bf52e011344cfa795f864a474f9c015ab09c77911a8a52c1aa46aeed6560d4bb1f3b64d65028d373ab3d51a450e600a239767aed9cf25b5c85fc24cc794162ee70e13d88fd3459cb37a92d348a1956bba09e24513d5a5fa79b593a849a1930456f39fade44b583cbd7eb4ce058056df38cd0be15205161f53f2c8681cb9e00525fb59cfd86ba1ae81ccc1636dd69c81ef620651606326a41db9b68827378c2ec238e9179c02965f938a2d0aad893c30d27267e416287d7ddec314a79402a769c3d953f0092ef4f8b595f827b1b921723cedf55fe756ff5fb67d555296c6185d171ed8ba01393d1a735018a59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d +ciphertext: 93bd84aeaf924ef5a6cf9f0299320f9745d4b7a1bbaf8c0f7a721f150d740174f4650f48b2597b513f3ad8ece3b027e23e0bc83d7bdd6dcbcdb89b0c6d40fc2689db5a8f97978d30bc54e7c706597acddc24c23779cb36256e8858e3802bff79165020d65327150ada03eb85ced6577706a26d2e0c3fadb7ab480a10431f12d0946f1a62a70652684b15ccbf082c5bdc500af9eb2d1da194e8de691fefe76b479cc558604534d4250f9b3fadc5b6ee14cd723b3cee817ab6924d33e7cd8808db81aed732d6a388902137e041c078a519c530486c85e2f4b9e89d3e818fbb83f898644269051c3b82a43f6cc34587b4c47917924cc87c5090557254743e6f754c84ab36eb3ada3251195fa8987c2c876af3621d7b78d2fbbc99cf94a4bf804542efa4d16baea4d1dbe6c911177e3004f2d4a8b69ebc50246bc1ed56853870374d2d2ac73f4c14d668289957d89e7a057cf25fb2adda583f9420956fa48a7eb9d76005e20bdea9c5c16c8fb1efc6db068b8879d1ce28ffb3a70ccd1c8578b938732b2015faa17738ffae41a300edfe2c564a85c775fccdd01af5be1c42a81c2e76806b7ccaeeaa6a98fcc1890d9ab22b04d1c0d106db4d2053fb7da715c6c3851b1c6e3b13e9b9c7915fad5a81db1a823f6e9c08bccaec434e2e143b963fb7acbe6fc01b8c0f3be2bad13ea711fe426983566d5e31e782408280dab6b43343046e59f054f45498ec9514f2e5d9432b9b28f8b716cce2a02e64bf7fdfaa30f4e4b9d5a0fab8a5f2c1d4b5c278f83889f676549fcf35bf3836894839f170fca341e7fa9f88e0e3cdbb7a18565c0b5f696731d8ede4bc6636ce988f377536e88fefb71a38e76577eba3e3e9682cf1c796cab2a66da2fbae57df62c53315eef981b97d55bb0898a474b72698ff4d695e56a11b4d59ac3c33bcb1221c498ded30c88211eebd998fe8a96f9f92eb80c5985a5037f1a929f1f5dd446336a438cb3b75c7860749fdead56495af233937a2457a92ebbdf261c302880d44cbda673ba0a67a1456ab86ed38fe7a8e964a62569b1fff21994b193e74dc25d9a78f05d9677ac92a2fe830e1e4947d7def8c911d11bfa536c6265482e8f1fca1ad0f7f36e81a275b83d2b6b89d68b6bfab6436cacba6d12d33e6662c0155baf58f8f4ad3cb57b47ba63e781d94ee461a901a7171aaee49a69b25c6d8a0c49063f7e8448d60bd8de161cd778da0476529d5a0fb2c3dd9b4c90729ef6653d7cf74288cfc75cbc989c76bb7af8579578f5ebdbc833b31927fb6e585a37f13302db297d0b50f7e3e72792e3d3dde42151067679f155794ccf4e604f8bb8d1390e6e98b065f0a01c9f0ed0b35b451f1f8653cd1acdbf97c3518557dcdfcaca9f98c2e85aec32ad3084d79850319d1ea27cfee4b746f573d1450e036cf5001d532470eeeaf2d0895aec768f051e2c29f8300f73f64fa41973bc0d1d38b1c58bbd642807a49e9515cf5ea193e30a4da032659962e2d28d41c2aa6405cdd1627e4ab927303179807db7a75a2 +result: pass +shared_secret: 072551e254959ce9f2c67657b41122d8a98cde044bb2f60955bdc6e5dbe55277 + +# Official test vector 78, seed: "6a85a61dd08c0733fcbc158abb49fe0b0d96a50dcca140a2e9f5a254f1901985844613b1c656c0cb0112620591b88ad0" +private_key: b066bd9303c7bb0c4a4a01812cf463cb338cdfe80953fb0c90d2aa7a2c1e110443d80ba64f6a435051083af14017f02886b63c8f0bceeb544b86e74e85a16db9539de52c76a624086031c0a9b84380d02ce49b0736e2277995a63c43a2ada9a60883024d50314d919c98e7a4f34c167c830c717693fb4a2f4ab1c684bba76365403d6b3b27f76a4d9570bbe73b09e32d45b6b89616bb014c5fa995779144107ff6ab3b523ee121c3cf601ca7ccb13c7783eb8702d34695c686298824884c46012c16c40576497314a0d60675fa0b1190e13a816c75543c9e54867f9fa495a4e43f0cc964ea4b19c3541930e33a63750105149484094d30a28c6eb73de702238e09272cd0415aa3b19007c90ce6407a864703d9a9f1fa3aaa762e66736f7f692a7344ae84a544b6b289c2d2187d61ae6ef70122d180cbbc09a4878cc6e4b71f1962627746a9d33c0b7c3a78048af6e811a34943fb01c5b2a248ab256c729a8ae2a1cac87870bc880bef16bbdd0724e25a0257c244c2a59737da52983cb5ec02b44fc0bdbd40c8882470285654c61bb27a9a9fd0162594343f31307cffbac216481cab73bb215b73fc96507bea727e5505e31848306c6647f7875d708fdb57c2f5a428c4d3b462122dba423251b5aeb94a2c034c025c0b39fab66b1c10b01441b9f5d9b736272718b44894820aee4c5dca164080b4774cd6af8e7c5218065a6d03917f215d2f6595dd13141c9505da959cc10bbeab184396c2b552db0c9c7a878a10a63ad920c19c9145c2cdb4556d823cb6d1e48458d72ad9886daca3bf7265b4fed2b11ae1a8b73a1ba62a3a298c339f01cf70d7118a094de950723a9b0e837a74ba18a92410228d0803dfe49e740ac2bd50bbab741743795e292616999033c7a18765648441ba9725bc1b6275484741a625a9ac0516980b903ff40c58c348940817a40bc02b0f7487fb0a09c3eb6bced56580f09edd262ec2c251a0fb303e33202d27b509b31ee87304131518b0e17ae34158ed1565caa77013a7161bf1cb6159841f8566a4a8a0c6823892ba94a541b18db1a68c9a3ad1755a1648bdbabbaeb8c8ba0a105eae48cfce175a2070693138cf6cb3c3b09c2285540e83b2b5cef51e634b5902aaac61d63b5e72069eb52a977a3e8b442f6106c13b1108eff9ce87d387640b3eb1914e0587298aa10cba2b09726ab542e2101cd6620564b1ed8945c60c674f2233236bb744307aa7db84ed11ce1d01ac0cc9b86f463c13197c7c1aa3f443cb0eeca93a817319bc45f9a587cc8a2ef05b0eb2998aecac2920387695e154831c96beb5568d880d4e480087499f0e818002a7a2db2b717aa39b2fd755c1c7678cacbd5af344ad38578a894b9d795fe65b701d3a6322f15e501610c6cc1e6fe90cd5048c93b80632fb6e18d70ecd44b36bec3ef955813d338f3af7331774962a04318556551b18930f91b3eab4464572b39f996d71e4aa3b7179b07b7717c1373194cbfebb4dce5caba80a7a7bb5aefd069db471ba0641383b0a006978b3bf5bb14348b507a624fb44c41d4c8156e2765069281e2836a7859bf3473b10f24c8d371148077014f1268824859a82bb548c25ade15cc60128a58ab4301032776b6f121675622857b8b376d708b2a861306fe931126822e2e8672fa0b577e8ca3f16495af10aae456a734368677a87fd3c2199060dc1993690c1ae2b76959664a1df6cb2b3738b294124918596b0d69394eb1efba83895d0a7f3081ef81769437cb63b726d4236a65c87c3929b79fe34438a8931cf2b889cf100747cb58d373491e7cb62db266bfb3b7e745500fa418eac8cabd966dc388d0f1b3fba850bfec8c03a29182deaa5ec4256fb3b436f429cac87399c61bc98497a3aca07cec06a128231f945a4a335ab6d1a54a9a59db106c0fd61360ce8870d1cae99201506c9c96d4969f4b487e4d87ba1d45accb5a754585f29db0991376150c65927b20c9eb421366cc840d528734c8b4f1421fe30c99f4c55f1e25d18a1b012424cc9f6250064a61c1b42ac243b6c701e293055a9ea7c44855e575cb6217c381de770cf461040c20b2cea6c2a921c9be483ecc2718dac01c4a5a15b60bfd5222fc988c60b23504919137b1226d7b72fe4105154711d25790a9f64c95356a787058018cba996410aa4f29a62b6cf77439b5784b67390b96db77c1583bab490719d804e79b8954b948388514a7fb78ebbe7959599ca374a66558a8fbe7aac91e8a62ac623690a952e94bb91e64fe57ab4db066867ecc9ee027163a8010bf901489c10ebb736ae619dd0177fcd060c4657488bc50044e4c895191351ca72aff9698577bda5536c3fa75f0d9b586822211cd88d686ca8921ca65bf8081f8604277839cc9757653a46511876f7b98983fc052bc088bc85a686ab6bfd5c2b91da8ae210313949191d13279be375d3d3197fb01808a76caa8a843e178d0dfc116c041030f2047f4b35c0900498fab680d45fd0710d75226eddec6388d56d1c2263768603ac0ba9b68a21173704bd25b6b5181405029cc4b18c6446b5afe5431f0a26bf50b2f33b0aa4032e9f28ac9fb58acd85a670f393351b33df4079a5533c44a94e968b677a68931491310cd48ea1213dd416ab650b3294f06f91aa5004f622ba173795136eedf91598153b8d2935acf33709a8b33e4b32384bab51fa69ed123a4eaac726dc7041b486e8aa3641fb8d48f908c27866753b821aaabb9894b504f845fbea8766e82671506ff5b5012765a6a7b08f9fd3c10357523fb423e02024577235fe4694349c1188b1aeff482ba7a15aa188a8bbe7108ccb7ad6a469054a45c01aac131c6a7c4acd5c050184ca77b8466b6d1992de80242454169a33382972760de2b69c3c000b900d25f2cf4731224dd9a2b84562c15c04d3d1a9ad447ee9404888141a7da3a522f90b9071ad7af54552d0060af1a66a31b9457024a46b3fc1038a7c54b76053909ab07eb36c1dfdf897276b465155aed0e70f9a4b9398e54d267377fc298b9bbc053b281486f8436017c6d98b3249c167b17358c134299ae17426bc9f067849d7c55541a205c1359a41d7a5fea37e758a0893c18226a44bdbd27e0266096dc20da357c5d1a23956b796b305c29e87718f65b8331888cbd53fc2fc011f92c6f49c7f9901a5b17059b81cb2eaca2d348a22a91105f69140d122bf59d74c16a840e4b646f5e1cbd921a24a60a0ed6cad243303a1448b6750b4e451c5e0e41b3a12a73c36272ed86537f1d2f51a0e2b5b5847b0a2d9bbff0a051bd5227600ad32a2a1197d78798bbeb13ce2e92cd7ed94b410adc37b1b31dc060af11fec8a8be99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 +ciphertext: 2513e09060af8f52ebb2c83689895b5bf166ca6e9ce9db739a4533c90c5e9f40867926244cbc396051bd543194a0635e1753f2e1366a5844142528ce5398412429ff880f27434e22c14a64a45febf5228175f5f3eaa6c7d15a4676787ab733a34ec64d3e6d35fb28128a0e5ed59b11145a6402a92bda380a38fc3710104834b131ee928f2ac8143083bec3de7dee3ccc07f348a384f8f709829a05fe94e5bc144999ae09e2ce39a88548224c37bbf716b44851f453f6bd0f1052ee8566d444ff9f146785e3a09ce54d03c3d34398730474f314e62d5600a80b2de9fd468e4b8013a278b5c7abd613685bdeb26b3927d11053e55e5aef09028b36ea99df1471dee73dfe63e9f61c1eb16b32deee237a79be98ee3468de973f5a1f3cb411daec79b25a8ae3208503ced8b0604e939e6cf0e61d55a6d0884b38b08493f8544a221a250cd9f4d9328c2eb615dbbfe71fd27e2eb4219bc8de76472dd35809813b111366b6c4ad84b3024d0b084c9c6096ce3c7b50b6108aeb0714f70ce4fde2bd2d693abfd156e090455e9ff36ae938b99d68400587d8ae263058dc64a5386cfaffa9415c54c7db1d5e6a1341db0c724a3cbacad4b286a4f59a5db6435fe0ad19edbda0e608cfdf88cc3e00bcc864e2a700476114a5b7a3b492ce1f66b10ce5e3a46a93e39bd0101d35dd371bdb491c6d4b7f015b52cae6d85f0d71a2967e04fa58fb46b308315b44cc993cd49e5499c065a811a8df99ed94f98fd2f0841a3a3a6d3d89bf869528640aa7721e59f003179442e6cf20881e353435b994fba25acf21954ddb463340979d7d74f70cea856c0b4b2c9116f596ee60443fb3491f57b745258c462c3182da098e84868c6ebee511d2857d341c68a01cec442b87cf755d86373deef1934435eec9a3805d5f2074a9e4711fe350b14b79b42af8c5b884ce4a2097239f0c63bb3b96ca91b3823c11d9b79e508c30c19e1f63b3957332ef80318448e47fd122236b2666d6c66f532ba88394c61d21d784ce765c1307cfd5335c0bf04dddd81de4144dc445ce5c8094fdeadd4f488a7d463c14994c891a1bc9e04649b87fba42556f54a3dbbaa96b08f8e93f8f68a2c4c90d75f0df55515515f438ffcc084cfc69a219d2a2ecf808495b1568ac37cb6d1642bbeaafb9df7f4aa3a22739bc7c9219938f019f12438a74631762c7f8878ca24f74e7ec762df3a3f7e9f104e01db85c1e93130cfff87083671ed10aac6b5508ba479952ef0d5bc8327712c555fa47d15d32c5e252a5dd0ca6676227ca7c5a3bf3c102ca6e0d0d5e846cb52f1d85c2bd1c3c4fd3832eda5bbb7ac1e09feb84eb1cd22ae62e9dba64b10217272af5e5f00ca3e8a03303ab13e8ab4a16e9214d44fb37b11fad964f1de2e45ecb499444f81c563a2b3c599a5e334aae0a912e577a6a8badda3dd04aa33e59ce1797f91ca0662cf36275c5f8be504ee7f4051ad2b346f67c66c17845d0e0c4ae5b049bdf6c7a82ae84fde16223d7aad9a4e54e46a1f44260ca0e2e8bca3892 +result: pass +shared_secret: 88c0c1e22b68cd65e1eedd6d6208c36492fb674e26ba4e0d4e55f831a1affc96 + +# Official test vector 79, seed: "7f4a56eda151e7b097cfb8ef980440fff707affba91867c89522ced6c5ff3bd7f5f00bb49ddd615d9361a7e4efa42851" +private_key: 024755131769c7169f4b3a0b89f81f45e6a48cc2cb0eb87badd4ab94e9bc67e85ead80158c390dac09c40a6a8de8a95b21c5158a853442a908278a6ef80551a7c16a800242c7086144444e488bbec51c3cab83594bdc2457f0152c43a9577c51799ca7b03c9ce3cb4f5c6564792ab8201a3b8304ce4d8339a2171700d7a6ec1a03c337b639f7c804a50a6f41225c1143f9d8ac9698a3eb126b9da000bb2137489a165848865b487051b7665640b2e5e2b1b4633583589f30d4572306614df8080791040daa0106633a26237a244b6a18920d87653e8b516ea895a1f75bbfa912742bb540006a95ad20b95471cd4c282a64a36ab09a86b1f90f44d41753b0a8cca50d9780351f253a691824c785ad8be9790d48643bb4611792905e5b80d2717369e4786e5901c43366a14b3b423b11139349c9107fe3f55958fa8e4df6006b3607210b525304be6551ae57e826c913cba2503260a9493bbb3cc2319d791226c27a54233c48e7084ee9ea82376142bb419cfa6c0f51426cec39b554255f56b1cda42b4ac33391b08172f7a82574b6943f6a79ac51a5e6e254a0a5c80d46538c03705705abfb2b3ef63a756ab8ac03530aa6cccb005a05d73b687d45529edba35af03c411592f652c8f1131640b943629806cb21482f8913f436a06dc790b89b2f2a49245a51a26e107bd18624b51b406381cba1ab3e8879c401a30fc9f0c40beb557343735d0a44ba150d4cb404d752805085892b709f2a97abc413c81f7a1e14811745878d66e98f1fc176e4a3cabe60557e104d24733668985ef15b87e78b57d22c4464ebb4b9eb1b124b80c6328c3bb93349359777fb09a19c1f7de48274fca6d91bb51a97c49c66295bcc6c53933e1f327f2037c7bf9c80cdc5406fac0a9f067e7703a0aa79ac0eda8c14e4c7f6b05d7fa84ce9a487ab489227910d86b0b6a3a91e21eaa9493a986ea773af7c16cccb3b059aa724a02cf936a45730aa93ccbc2b3377014350cea39c36908f5167b08001061867c603f6ce64b081b2e46b1985837684b5e3318f4531c13f80277a35683cf599b373136ec3977afa12e1d32085330c0a6828a57c2902ab0ca679c2f7f9a844091b87a4754ffaaccff0c50abb01768927ae0b2eea885b54e92db59533ae6a6e9253c18c9184c1127220775da93c5964845240a7a3795b5df5d00baa34393d3009e641828c86173ccc1a9f9749a0f9271867b2d2a364ad7335edd1c02e131117a93b0f6113dbc9ac36924ee63cb954b60a325971501b3822732007629b00a965537c3fc07791af7a0c000446d15506c8404da9676a9907969d40627a18448f353735706015f05005403aa7a7b79ac7c5a3759b569b8b5d3b86bda01c4031a1f4e45cd663bad410123a973b2b6633da3c88ba0a26f0347901c6236ca76e1266440adb415fe5c7adbab8f5d8b3dd5bb4f88c3a1e450a4850629166102471294fd05696a54f516a0263e31a895010dc034ce6a72f6294a3cb6120d59c0e57827133a2b53f40b0d5f060e9480e77ea39e02a48f4327cb066bb32d2289bd97d10ec6615a6ce06088d6f63391952c89ae8bfebc43b554aa5e4b6a87cfa9e5b457c581a437422c48aa35df5c939694737a6f3b26ca06ad98a9a6ff2122b8889bb513558fc1a8701376ceca1f7d87a53f78f953aaf9f977c2ffb4d04f88e33e0ba7d83bc6fd27914a769ae382ba5f211b2f59f0001ca30b0a0ef138adaa485953cb8b6f6ccb56a7c92598c0c83ae97684c26d70d69210c8dd16ae08c4b3c1c30110a581669245529be92d38d9cecb10f22c83d01b3b3660fab4662fc559f48041167fb3e7960328c612a7e99a0c546b63b1b04f22b78b85074e6d32f6e04b096eb89da611f30267bd8760e05c238ea2a587691181112a39c88c528977f0399cddb7a7c8bba3ba71507b3db7131302407052cc4e8125e2bc035172a967a21a0582a05f8aae28228ddca417545144882ca3d644f6167ba30e91368879efac5971c8b1a7a9674e804c08e506ade53bcd778c1af4637584b9752aa1f16a4319d296b93e5368c10863a85cbb55c11c56338285b21cd740695757adeb2ce48b7c658a36b26b670e59947a0d94d022284bf0995d56666bd7968bed8858895c779a3318275afe42488953791e97cbd6256c29a6c6e4339a15d7a7c3da95edd2a562dcc2f6fe077cbd2317a914b975692ad1c3c3d956b26634fe1d2235d66226ba766a447bc87e8674800cd898b4b02c491658b97e25a4f836ab98a99c669b60aa4c30518a6644fb048a4e34822782644038ab04a3815c61da99816eaf388e495cde4a65c12f1bb5f02a1a1b1cede817952625fd2502f2a4b8bbbd4123e71462ee433ac923583c830cc54129bac51f96846d8fcacece9b19f6063734158008342c6f48234d24571e5777074170ae24b20d125f1ba311f4b33cdf91e3a2305fbe12e44ab54cc8c4eaf8553f697c00e8040e858569120bcd0166bcfe1a66e2500c3ab8acf3b58f1309c68772154602ba6c0968553ca553252d27a0b05733d81486d86c590291a643edcca9f8470d573880d5856a6b2cbcff2803713790d17297ef11549d5412713a3e4206b1b7c85483192164209f5b32f709aacfc4bae51f180edeb7e999ace2bf98d958514951362b08a6b529a2a7669c5492c0a61645542bc1dea0b707282a0797291b8c7a510884f12e92f3200ac5ee91686e109ecf245b2672f94c0a4525b7f43fba328099bfe4330888b186d026231d2b2eab7b971ba7680f0cb4653652f8aa8b4e01bb77461d792cd5e941a31dc02d52622b37c498e4169bc0418e23c5d32999726462d3a0a6449918b18db487f422849b67cf047bfcb0c6945bb87cd779dea915b64aa0975d313f8a740de77b0d40612459c2eb73a3fc876ac39c821a52761e13115d87bcd17052fea2b98d9d83ece9b1de7124c9738c0df539045279eeb21042a13791feba9d0e23445293eb3c2c194b76c5febb5582220ca350eca9b90435372f3c5baa0549ff847aedb815c244b27dc5866b151041e884befbc7bccca2fa098b592c5aef7f53e0d712bd2119214c15f8ab848a1864705d0511c50a9942535cf06952b0357445a9854240c026733ac8a39eb3c8bca2939d195763a572353da2956799448570a21d58623635f7a7461a913c24ad04d1495c1ee42c88b82942012b2d4b410fd1907799623f1b373b9c438d2b4c3fc48c054bc5206273f7a9a3dccc0ad8d40070ef20fe4cc99c8394adf63126006ee8cbb821b12a2a0a3018c4f8e52a50183fff79e84c694277cc3f47f319f88da508f841e536a056625f206fe499387d27307257682237f969c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 +ciphertext: a93e454715b85fec95f1c8ebab9126e7b088bffa6eb8d220089c651cee97b49dde58f10f2709d6ca10a0edaf0d631e43e1e57eacba91770283b2b2386af871594867ad80b88a03d5554d151f7957391a8a675688485b2e7bf619fcecdd8be017498f2f1377d03f59482151e03f1f90bf7cc49a2192fea0509d50678f514835271e114ef1b96e453bd2a5342eee9632c0b2a54daa8a18777deb4e785d0b1b6dbf8d3fd5011c1dfdcf8dc6577bf5f0b35720412df16bca86f3d65ef0b1b01a2bbf50a036268d8cc23a9db6d0c53ed8885495059f8f0101806769836fabe5e72d8731b50c745b24944f00de44262b3f76bfd0e3658c9b05d93b98b6ce25fae3a326e59ee148d699687cba27efa3e49d719832c82faf13160b8313a5d9e8fc1c5c0f7589fd7d143b241216bd49cfb81eedbb5f732c3dfd9598198055e5946208939f9477e90febda986efba3e9e5ba2dde57e9dc864452d096642484e70a19623b6af6851641e6f41fdaca57b6bafef0b1584fb4db1864b852479c632db21089157e4442a4d7dc6eb5343d8b300c15dfedb908bee62ab57d8fd1be322412edc9f681980cfe056bae32a30d714b9e6397b1da7874c5f3a6d296a435377d0cc339485237adbc72705e054278819931f6a84a3335b9863af0aa6a3e0bde969289c1d3956da62f822dd6261661241e88042d672ac48ca1448a42f978ff134f45359e7eb734b0cb44a99fd542f961f58e0fb7a3116bc3be3394b9cf8478f01a35342e9a22bc9afca1f4eee22406cbd5ea5bd582d5b88e5bf0f11a46554323310cbba6cafdd0b3879ff49ef875bc6846133b8bc3243cb934bcd8dc8493ca3fcbd1d4ab06bf2e6b932eee6fee99b1c260c2199e801d68a00bbacda4d2f2facc57fc715ecc7f116b5fa02e131710377da8c414b9c41c3b2d0fe43b0829103407c229451990fcf1de8a5a84ba97798f2e0cfd9e2375f37d306179ad8004bf49871ad06881c2c1eb3524bbd2d547916dffb73af4a97c2cc4eb3e13fe7eac98a93cb0689ab9e1398f8df184883e20671bb4781c4eb0b78298f764a03624b2e2991c633c04edc8c23740153c23864154a0e49795c45abfcd89a619c0d5d45e54aec741fc5afef622f23c1406a0524de27872a72b43f771c618d81223ec284196849093bfcf5fa5903a1bfb843f7072b3bbb12cb1bc2ea13839bd6dca2b4c1d7f1c726c6359339d649f416e6a6132ae9008e787706d1b4dfb8f724cfc439e9ecf2c88114b2f23beb7b493a1f9980612d535fccd24626a0befb6a86c9561b96461d86db5c278c12e002e6992746fd282a6cc8e7b0be91db05f6bb256075f50e0f1676fc8b4844f931151017ee9a4423720203c4ba933be28f29f73e96e8c7b232bbb375b16c82dc53c697d2bfda5afa3d8c297ad7f3ccec05c5180e6637e060a6599269a88d09fac0c2a724e61d99965813a8c11746105b7ddc09ef377dc93f92baf2b524ed9c277a7b679334ebddcae51318ac4be3688b655635043b07d4bf5b79ed743af00ffab8c +result: pass +shared_secret: 56f717e4baddc2250873d667f73a442b05ca2f8714d4dc4d295f899217c92c9e + +# Official test vector 80, seed: "09fc004519bcf85b20d25d314a0dfc79e00cb6262a7dddf9c52473641afb8cfa0f5dd5f53558184caae9ec34b459e98e" +private_key: 2b006f1c2787d3f704935762feb046f67a0a59163ed30c83b577caf4667605730b11364a383366a74125df3526fbabb7aa3916e9a05586920f9b130ab980b2a940109552047e231cfc7a9ce7987d3d218c52a11c22953722e861a1f000385aaee23378c6372315e73315893fe0f027a44caeb37cc796ca1954b79adb22887b41b3e9c98a4c5a7101714f4cb78c9d3886393567016536a0706fa1c950dfb71af86b91610509738b3f6c192368416b1213ae508439c8c9c4f5382f926c6df08852e8955a04d5a8a30912c201483096bd202ba4b82855236b804faa20eff056e288cb699237a1e5150d027347bbc06412c972c0a783a1b794e7b2a3b45b7f842ad18b5520a143f4635059690df45b1f99bbbb0f18ad5be48006727fccf41d400430973b8f62481b73d611dbd13df47633c1a27b387398dc32af9e71a40c84cb48f131d8a7acf8d91ee2513f3f225a2d61b752e24a2860148ca68c3a75243200547fc054710293b7c7a939752959e6256cb29c0f0535055b18e2f78ec4da0bf9aa91caeb9b5c5150ad42a867c18dff50b2a1e8c2d31951d5fab52aac7d603500d9fb4b5f516fd26bbc51a622751636d2c2ba24ca5c3aac696edb821b237e7fbc2414e7cf2388644ff702821ac1e2068c76d0717c40bfc47c7f96077504d5b9b2c7a187c0c746e904cde556bacb9cbeaaadc865ba93d4837b42192b539e6de749692916df131f26c26f4b3c93fdbb33cc8b39d176a4b27351911b8b85b5567b839cc6ab5f65a3502cd994c812b72a2037e5e38f08ea97291292fe51185a603f94fa6ff6e247b8e3cc82a8b111dccbfdd715d7458b3d984ef4a17ba7314ffa8a069031b28e9b858e22900d364bcd095079c4c06a515599443ff5f434be754bad6aabece45a1ecc7dc5c95541223bf114ce60d663a3621b95826747b7005e94b8a84025fc43b8dc320964d2a610b7ce10b7c7d56c37dd647fe1920b876267cfc0607a35700cc51a3187b69c488d34816753607bc22b59aef9c3be78a2b7959ba69212be46c9411a4c1357493a73a50930020fc732acb44c036602c22341d5039dd99cc53333091e983c1c1ac47607b5e47727d1d8a313ca73e1b9c47a63a257e1a5c01ba55b802274ba8c3a35c8427c9130c71d77165e00f2a723da6febe7a17d89cd6319718452be2a80777f1469ac36356e73ca7ef420ff64661161b3eb459b33c694a6399015716d8d7b3b0669648d2331edd6a9e54933a5447946465fc21b51c31328a6763829100d02c9407a8ba8bd150e540755e210102dec9fd9a06744ba9476d0b6252cbabf718c4a917fbeac293408531c46ce91402c91b10a3994883dd83fd0c97a952441fd6485c8c34f8116b1fd392f706150fa0867bd0078b0e32ac7828b6b61624677b55c18aaeb494794b1632e686338315c92028b3828598a4ac462646349f17abe582440e39ab346052219537e909e8e80135303bfe731ba04caaac6cb89b3c37558243d97881587f45de25b128f9568ac45b4e3f39ddb861ccb0749ec3541619b164163c77b7397da453f57377c49c2a8a78c568e300a635612b7c95035f4c71ca174e7653ad15601bfa46be017610240b045032453b51ade516f190b29f6e7cc26755aabd20d4be75f2fa4c18303319edb00809152b33726b1e54c0f328c73c6805354925b43a6dbe0cadf00c9ce3b1d7fd9b47322c8b91844833250e0e99369e90c279ab48712b4e1c10c0456c754251cdae4cb4599843510be3a13277d775a3242a6232b1ca2979e6f260b3c4c86fc24bfd95255c765cdf6187854f0c9beb8cee6a8391f98475d6aa080a7a2c6147f70c2a9450901f705ab0ec23fc957619d611acc2319c6042e137496f51436a788334aa5a6d561a3e3a0937a37be9f7711c5fc6faa1024c434cc3e41a3865bc0beaa732c1789e7972f999007d4f7afdf953163197590e757a297919766428fd18ce1d531466a55109287c335bc26f946e06a4d51aa27b220001a46c2f4e339dd83511d135a9621c1ddf1083bcc9b24b994b4a3394df8ccfbcc743304383c300a9761859074a3d0e91cdd96a34513735a424238e71f42c328eedb1cdfb3ad704a1667c15045c534c448b429c474c494c7b37114911771d62c39d3f4763d881c0a21c074201301ea0eff13bb5df861ecd882a0350031b2af63572845950535e85fb323beebd613ba600702192d7cc1218309885ab9345ef32dfb757528229d73d57cc2328a5a86acc3180e392144c04cc45ca57573395ef38a95674b28ea7bc8684c8e6a81865a93256517be79fc456472976fea2538bb8b52a188cb43881c19ab47069b36968da1cacceab9bfc5c7985614a3fff7300e621e4865c5f8d30792099d3f793e58b591cdd87cfa36430aea876f30cca5d824fa29ab2b56ad3aca5d483c3c7ee90b4e028b7794592e1acae0fc721d355891c257cf821928104e1c994b8bc33eddf70c3cbcb5e272b43b5777b3921892ab198b4132ea4b200618b1e4559064d491487b1f0135c9da67a39950a5f13a1e6eb409c30957b04c645b052decc23a391a7692390de9085147c96c67f04ea8212c9d80cd00dc07b7d22826e01facca51dab91413e8cbaa24a66a00b4d2076d58c398ecf03ee56c40a1ac03cb02658e6240c41c6f06c174f3414e258a11478c7a76e05c156c1b164903b22991391955c3e75bcf0cc70d4cb79ea27638c54dcdcb1ef35b8f3caa26b0418f340597bed55d586981c77cc6093a889854a85132997bf706177099ee8b5ae44cc1f1f3c413fab7a51254490a6ac4175a99da866e5464283a74c5c300436ac1c7829c953128e5d17cb056af07b08d7f114e0be00f93854e09eb5e0be82a5a4c526030468f95bd82e08c2147736598a656476e5cb855e0c486d1fa0c661202a79b37357995ed445973959cf04116ed0c687227768a41a1b4f79b8080a740f012dd547403a30a36e62c9f5a1659abae73a165202122a330c61f492822ea25dcc22cb97c00a38bb7a4a493ae677cec267379c3a1b80ac2f4612221976ff4c7afc685283af88ef813a9beb73ef380be8a31c87135c6573c0d1d5807e63ca6f1418b947c1615233b911736b0870b766c9465cbb8b29573addb33f21a07cd890f1325c200545d5a21c5da1a0082b9c198158aa2b82cd5d94bf5718d39bac4d9096093c78a069b9210d305e9199d45ac09abe6a8033c971b2903874ac6408b3510d318ff4b464ef16ad3e56bd664cadab4cbc2eb1f13656c6547db33b5f529d253c85a728313bd36b9f09f6455b7594a10c1beaeb6ff178f3228defdd117e6ba75a34abb70e86f31fdb16d74d91e6c1b47a75fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df +ciphertext: 4173f72cfd989bd103ff41f258cdcd0bcf3a68eb82c10fbb2639b06605ad14a7b2bbe670a38b3c953df61e7a3962ccd6d554fc12e8010bebf1a2471778c69b130f6fd4a205bce7157cf527cc7480e4dec2654ee466cddd7cc3b48d4799775979070722ad3a0873a38bb9d50bed48650e5c0e659c002e1a80e2c81ab18c5862dc734c15b146880018611651a4b9a498818fd650d8f160e7b93f8f669df8b1568e7248fca844e24113899e45a4e2f9d4af45965d2e20b98fcea2e74c21c2c6c8697533b545e9d0168a74920df3813e0e9631970427d59b16b52c4c221074cd6ed9f5cb07eec18de8b7effa7dac2be3ac2e75c2f394084e64a8bef17efba88cacec6b154f66a737d540503f015971d15fe8bf1b6071061c7d1a0713118f365aa0dfef865e8aa70403d9163981dacb6e9af1697745ef842e60616d9915b5d6e5279a3713b0472dbf0e02c9d3521d48ce21b47b531f942642c961a94170479c62dddb6f81dcd5448308df2defa52d2c90af853a55136c8b6b7263078054e24d42d90e24d78d79b76fc479891305046f6a51100bd553a9b37c90b31fb1dd905c420fabc6c3a96583010e5c3c95d8fe722a185fdcfa1014e454eca7eb1ab85448efa60c988ef0bbe8254e749bb0017e1def4527b27d288a896fd2a5372d20200d0a3e6b88428f9766d1a636449b0aa3d88e108638ad159810cc75a20611adac7c2f6402b50af48a13d2c2b80e4535c37e4c1400e3f39d896a578a035e922cd3a214a6d077cad36ba84186701c0b1c6d09051d808137f523190f538b76618750994ad5dda423754e63012bd1d0ce1476753eb16ca8d3af4c7fa329cf5de9666700f8a5a510677ffa2cdd590be997cbbeddd0a9e31df4a8d05b49f52d89b53055abed0f44a35a81f82e82963ef3a74fb1845e40aefcae153ec22d670e00b5c3c21d04d6738e9b3c36db72beb653231f8df2ded30772576011049d06e56f5cee436f02a8cab545cc55126fdc9a0e247263976b6d83de2f2a5174007f7f6a437fb02eebe5e2a616509d9792b16cfad57bb1af018a87f397c71c221761a3633c5d5f8ad69283911e017691fc76096656342ec0d9aa065069b0307194bf5d8471589af26f5f95895c8d5181f9ac05524d4425750448329b53b24fe6fdf3738066a4446522aef01d9ae6d800af8486e5287185f21f5811096996c00892695d0f08d4e7da2a4c019d5153539fce47f7d8d3618e7b5ebd3cb428a8c6503896a7ab1b536da764cac22f3571be53846a117a06e1d84d7b676c6bc7d0f51e9d356c05b29652248ffaf0b2d07511df249717ab8f766657ebfbfc57ffb521a9162d786ff4364bcb2ce620e4f50040dc829af95a2af4f9771d3ad297eaedcf41d54340bb17219996fb726aa9263ecebb5552ef87651d4b46c18610e4bebf46c3f6c490c7e9ef5352f5187017546ff2022c54a3fa127cadf3542c324880d653dfad52ebf0a630d9c992c7284b9bdde76b198d27ea99fc96c2031082d417b14834ea12faa69e310a30995242 +result: pass +shared_secret: 35f5517999e15ed842904d53d5b4747639d1165014ab77474c0dbc310e586186 + +# Official test vector 81, seed: "e3c41cca6f04cfe7732fd54de30cc5caac93e2f80e76aed7d24a962a3969c1b6a311459a3ec3e510e3e9b1e4291d4d7d" +private_key: 13276431f3634d420a374a0ecd8b81c035431dac244df1ab3405626490c7407599ccd4c146c5b79653bd845286aca5c7fc13a527784bc0b0b0171261409978a4754fb612203267804a524e81772ba34b99a20047f642363f928ae781c89a7374fbc0abb1373cb3485ee31a76da703a8d39c12668a6e0869e558612a481be9ab6ac8c00109f3a184f808b1be7566250cd36cb38b57771083c64cdea6fe5e9aa02f5cd1b6c08272078745424a7a11fece731fef736471674506b9bc56707dea19858860825a14fe820563cd70dba44b57932048bf50eb27b76d8405133172ea16a5b0fe77bca259cdd46414f13425616bdbc006ea23b21bedb23ea86a099dbc48b4746ad35830d694a218b0e233842566b9dcb18822f9301b8d7a6fc2a4555278828ab27bb74b1b3cbc19b343ea64904c35c67a1ba1ad4f9cd44a2b2887b4adad130ba263321469a4f50c6a6f06b29047a3e253a19e21f3c027c55091d7777aab2b955546b58bb212d87f9361154837460966a80881e967e379a1365aa96cad80613b2cb0a34979f6c1d00e7010fa2456807217abbb1df6849be50bef9a67c973bb14f8953e7597360c076d5290f0b1bca76f02d6a600dff97cf1df0ae59ac851c29a0f99b17759182002c8141d20166f8bf1979321c1a6234b608257b6bfeba7ef679b837d6a23673a122cb1e817b5fdfe9904b1a2f953906d7a585f074af3bd445a71b431f776008b133d6269caf16b306d444fd819b4d4783828266bdb13e0807409aebb11d867667522ea606a210f68d6288bc3a484cc4464706538712921e107885834b4ecdc44af3c866ee0504d191724e5704b8b20795b6520f0cc8f1d89ddc46572024294503735551330e887e6b71bb47e97aa498791b735733a8a81d962a68d32230f0c4403056b065b379a44ba61188c7f102511ac0d894b6457402fcaba82ff0c13da32ebe5785b44b937fc020ee1544b95228fb6447e862803c941705625e0758ab5d1c3e7d771780ecb188202b23972c9dca283beb4f3303064c922d8ec8081b9529edc163affc3f585274ab0143060527d2050b34842d15d1508afa2af069744d7620e02c2fac7954bea06a1ba04c28b0287bf71ccb809d7c966b9f94b05906b003b77a0730a787610340c600ce3b4f1ed9a4b5195355501b5720498ab185c75740f2184f5a16c18b7bb58bc120a030b5d20240d570545f349365a97bc387a6bbc2c001151adebc0375fba522b7994fa4a78ff6390507ccfb8b47e208b70bea1899512fb068a9db8b262235191f6403ca5b8517db25cb8b202085cf6fca6b6e55a75dfa7557a43116179ab5c1510f887db6a9c5e8ac41fd5010c11411d8f24529674a97fc666c565cb7469aa7c8ab943606880a9832dac41fba34f3aabcb1bb0050c66f4c5b53b6892a43ea98eff429f4f6206c06290cdb504029b29752cd75fa4df4a59c5919607616c074861f3c00c18f1ab27c190937fa9597c165d8d61281873bf1eb36bdaa9f95360e54f5b8b44542f618bc99077cf75c2fe4a04efc112eb2618fc3424ae296ba1ffb9a92726bf0bb7d74960868494bae529438c898ce0c95ae47415400aba6c47ca4b301a64b97777b7209039a2403758dec41fe4093b014449985121e134c925b37b11612a9c61e97d5863f81a83f903383a517d1ab1769921563b86069c9c20841481be7a75311cb1b2c74f4cc96d2aa916509cc24d33ca7906aad07938e701177b42158c19ff3040389894f5d4c9cbd608c8234cefac9bf75fa177d5669f45a195f420b189bb340ebbba649996863618366766b7c990c6001a397b00b71272cb1734adb60a5b1523fb46be42752eba4bad8d6b008883e2697747ada77635174d5f7abc89157acc61202100cf719c9b8c5bfd7409fa95641202384629b925c240be94889bdf96bdc176e4dd3ad75f7b2e4c2abc9ea8280f07df64a162d016db3a634071944f6468e00aba03255430375660bd2c413a0b3cc530de305948d783afd0a41b4a202fcbbb620d9bd47b1181859b66f922d0b5c464f71ac5682829c8c6f4875bce8c37c5212113cf77a8cf480660b0ad108a0b67c063ed52bba442567ab31b30858cb33584d5422ed7427bf085d163005bf182c90c96cbc89ca70591dd0606f95dc6acfeb3315274f7c4937ae511963e90e6d03646292743a4178a6f344c244194f989e1c34be06a09bd5086c73992da8528caaba4fbef1502c1abb01b145a7a825a971a001055e2b1841725cb06eb23625bc0d99f89c1998023d760db1960a751988529628b6aa54308a3c895688047a003c089ef4a3232fda6aea0194154339b75a0a25402212211f3eeaba98cb656925c34f46037a436f89e01bfe408c138601e3a490675abf367194b377158f131b12740636b92bb5d184c05a23cea0c66519b2e8b094610655699976538471d77bbb3a8613a3ea1ee7b22642d63611b498e302540ca71e9b5c1aad6bbf309a13f9ab5eb57a5670fa9244280867ccc48130c74c50219da3168a26a52001713ee7b81157a6392199fdb4a56631b2d17890e6b0bb82051b9a1c85ce8aa92a2557ffa499c8910f7e98c3b4681ebe6323f4794e3e7324330a710b6a87186c36ff04602fccb97a7842104547264437921b413d52229a1555226a3bb3f090bd8cb09df92f4b4093319c434c04a773acc094bb205062903adc121ff6c178aa5d02f4b401e2b43bd79966d83a014bc8a8fa8347e1a9e8c6947134b837f019b05124279b26f20414fe326f3464929105974a853961a6b55ee90ba8d730be6a51fde90b4c23753bd9728077b90bf1c656c0738946bbbc5a2d72f95d876437c659b1bc663f6ab2b9026ba0401ac168c05933dc0509f7390ce8a024a3a1267217bae20c0d26c9d824182bf67ac60c0b121184a42c89da7a1f2de023ee6c291dea37da360b6f912eb95727e0c83efe0796d603b1c4702b2532af8d34053e1c70f8b73d5874578b3a2a8108b12e603d8cc1637d54bccba48f73d08f63c12fb8bb2e40938456c46209b262d8f08fc9b576d463329057a7fcc86652008832712e15e31eba79cb33a58262f822b9b8abbe8c4a025729dbac6f4df64f14c9959993004e0a4398b7c1e049120d404fc2683d65e85cd279b8d9e9595e995631f3469ca25412a54535c569d80c2a09117733f529bfe9a9dc766c8da35bdf0b64d1c27d0fe31ad736c06a92186034468539a3adbbcf0e67af4e797b63a0494cd91d2b9b89f8d486236b9b24772383d81aaed73286e5dc6e35a1dd0121b0a362d8c94022a515340fb2b71b8aaccf14842a6d4ecb713612f801a5044147fb9e6987ad3863759de31e11eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c +ciphertext: 6c6860f7577d496c61de133295defcda33462d99ab13f9265a9daf5a21ac8db6e6403d0fac8dc4a8ad196a93f7afc736d23f2de65a506c97b27a3aea84fad37e113607e5883be0500719746c9aa8a0992e4109d0009f350e44990117f9b80083ba57bef99d7229f4bc425026b522eae09bb2c45dc2c14bff8c65a51b624874feeab6979193f085b7b6900aeacb63a2bf5fb2f81d0b48f07d392d83eeeab6540c9b1d4ff4b3068cb471bbda0d9d336ceaf458c6f6acc5c5bdace99ca483a310b6839899f421b15ada7520e35919b475128aaae3b7b027b872c5e91bab596edd00fe954d06e3e8fb8cea0ce36f98482d55688fea29c4717a07d01fb4c5f163cd85908c548b91c83bdedc4c695e0929b630aaedc2146a099d576821cd880fcb1a1a65a58c14e278d094fed63c67b7c6994cd9158aa9e15990e68945a679534035d06e1b58012fefd73461c0f41e0c0630f7f89fc8e7ac1e8e497a2dd15e3d82eca2b5eca09ab928acebb08854959ae39a37190b4e4c6fcf1d7cd03772f10b49e5662b1237a58b2b11f597c51f23c1d105896952c4b6ab6cb645758de8ed34458ee91a8a1682a8f8fea432ad3690f0ba73f980e4ac88833b5b0a85bcba239ee176f00b78915ef7467dfbd42fe23e06deccb70c3247382ebc16b85458d284255fe85bf0544977697019dd417d7577542541fbc4633cd3ccc979aeabab5f9394fc7c7ed15641927f2d7ed87f60e7306dae6ee40667ce715329a217da1334acff5425bf643c1174e9927ccfbbeda133fa2e2a1c9c7fe912f981a4452a3e34caeb6a9e898368bdb40b4dc40915d093e1417c330e024f8a9a235d21a5184a5eb890880eac4051630bad9664ae4927e2e2d34a408de897a2839bb3e43e88e4f078be3c699c7527b8279579807c9a06ea58f32bdd5a2bad5193bfeec0cfa62ca7afd99d9261342e4179449a138066bd563399c0b35538ad109c28afc5e16b2abdd46a930246b215d57bd605bffd1cc042ef447c448fc4843b13d4608876c85d473fc5a663b2112692401c7f833680766839350c127d78ac462c6fe132fd9b1672f94e9f08a18b13ab344b87dd947a8cd9dd43f805e0d8d56c1d11c17edf45c60c1f26c364df7830411b3c96d55a1586ca15220e68069041216a2eb7217113192b518cdb235272516e766cb7b9d7a2ec1a9c32a3d2c885887cbfbd4e893a11d68546419f1c0e0b8ec69a7c574c73bed6165e32c14363dec9bf27fa2510dcdf6cd0d8ea0a7c05f97493777f9ffd69287e0861a36df8e6b8c1b28513c2e1c47c8aed6797b5e6b345df7d402b64e280e951192eb18f1ccf76c49a18a7c06250e72ae7b5f6ce6bbf86d759eb9f3a23ab6b384dd584aa26688c838ac7da9ef292b927bb7df9b4db4785e345174b46231868f70827615de884e8e2e649eb5b9c204ae097feb997b05d9837300b94e95f4356414e0253520d2b49ea98d97ef119f5423a3de5224e33d853e67eb0eeea5a101aa5c5145eaeed835a6c13d80c25b0e551ed2f357a9ae8b1 +result: pass +shared_secret: a7159981a68244549b96b27991e1323013c353bdd9c8d6f583897c35923e87a8 + +# Official test vector 82, seed: "373fdde922cfc416ed96b444e445bdd0962e8989f6c50adf9912a89937c57217d3600b06c95440448e3f601ae69ca5be" +private_key: e5a906286950db6187780184cc302f14a9ad2f7a382d93403308b8676c20cccb52347a515303a2bd15336c0b711b3a31e8d0cbdb59bf42633823ac1df61c63633171282b537cd1a19a80160d97b9dba7322d935577031c081a035890be315b7a4275979691b612b764111ba6ac57afa50c29ee436af02131442c5704b585c663935ab698dfbbc882d23fb39c75370b8c199cb0da26be27e8aa6391b5fc30bdf077490bc677d6e631af504b9af2ccf7939536d819455b91ab172cf01639fbd47618b8708f460284abcfe6d21371dc3b00e579aff432c9417d33511d9a0170baa0a3695004edb18599118146d83ea548ccb0069a3379430dcc8e3d728eaea7433ed4a704987624d0994d454374f9218b2a08ec20b2b216482a1c820e8c5ce99413dd590bb042c9d294ad98408c407b88cf6b32bfe9b95f9a9d45a33184cc8b79cbbfb379639c9b44a128c211e700a59aa4ee034e1a3375dd216ec3e2447757c70a0b4ecb6b1677755c327914cc38b425925f9f910f4f618cfd425e5f55c4955b14b08c64f976068daa8e711a3d00ed0e47e222f201891f6c7c52f282a4d471cc199e68fb9bb8bc81766a457a6ababe254c4aa96546b96f56375e68c9a713072c5ca9b0d0d36b1f1b663613075e62071f97c6c2ab44e98a76dc767fe1c0789ef155bcc976cf1b879f1a151606b996225abf147e7cccb615243e0d0775e339c909e93477b9b66fb863e726a4f231cbb98435368abed797a00db8b4dea236e75673ad8b857206d03c50b0767961f67ba0b58a668a02680f57372cc8c175c6cac858497eabbb840a5d87389c7a623fa5707353438e7a4388a1c34236294370343f90c9b38f4ac28d187bbab21c3d656c4eda62dd8127771c8038b67c80d58edcf81f526344c48b29f73a5197b0b51fc29d19396b8b7295bf524d38371c71013263c95694138a27fb56670101b0f06f6b568b4c05c486043f53c44f321a9bd8827312e5537608b5a2d7123971081e8bb7a05ab1336a2b7eb487359bc8287c42add6b72e5635e9ea9455552eaee4c92812ac32e254a90669cf6728af07763fa3ba74ec0e1c8090f2706378bca30fa69c85e50a03e8326ea4917b6515fb887d3601c83c5b4f520804cd401d0c67cf229299cee141da094a5f117403f94465c62761ea05ed1016759c60b14c352b41c8ea619e5bcb167a851ef8842845abb4f7a6ad75fb610408324ea84c665b36672b5e58f985c3a45bb3f926f5c82d16d519303271ac83368d28b2dba2083350b6205c718e2bb4aa1518fcc3c76a9b02d678732b4bcb8dd4cd9c2526fa919ad5c9bca0c6171c1a7547772c957b74dcf877b1f62921c7a17a7a8382b81f44f2a6cf559b761bb58fe8031539c02bb3222332513921411c894819a2ae856b65c1c3b113b09a6ab06ad6033bd79227aeb397d90ab3cf5985bab7c826931184642ae25755f79667aee64918575118349ac0b19963549c17f71ee14944f98b5eed708b2aea5a305458f699505083bf54ec70b80ca1287715ac2046edea5ed722ab14fb8514e67e45343db7c91324357a99db343c735c918464b532aa2d9649d33a1cb38039b176bdf69470f1a1839562b94b3b7294a77c72cc5686335a761609caf862810ba70e00c83da3cc1c208cd893233c8ac3247b013417cecd467e9cb87280aa13b061bd0a661034ebabe9ab6e7a447c2826af3cba6798270a36f7431ae9119de2245704110d159aa438a6f1546a39286a7a179c5f286073d5b944ea2000ab61fcb9373a4a94dba5c9baa94056f35ca1810106f2ce65b579c4744f94955db4730265053b812634eb5156ea819069f6371040408a2036019967f4163c1ea611c02ba295a51581644dab07872d1a5b21a32d0ffa349e3739d961a9e9bc07b6d8cba3b945be491958813600e781ecf54912d70e37832e05784c5e12271a5aa5d628233062305a28493bc2b180d802423aa4f75cb6610c16e8798cec72253798b189eb217238b5d063224f78114715818ac4ab40d34042860bee445fa9b1b02dd5a7c7b6bd8b03768e7c38282806e5fc7a93a9094246a403111a39bbb89ca4ca33f9b381fc8d6447450d3b4f6c794b565b2735f8014fe35e78a94780bc1557bb380db47d25791b1283094ce08ae4ea9961882d134bc5579aa9fb44127e2670b85001d58a162e38680d3c8fd2d3517cd4b36aba9bf1930f3d4c067f2a5b4dd702cb9b9e138bbfa91c0f49a86ba283091350a2ab3c1f3c75ca20a4a160318cf88849ef2102e47211df95a2fa325573f60ee7ec5e70d3b88d291cf9110b9906401968462d2ace979a825b088f7c2b330fbb5f15b1b9f24b84a646cc6a9b27b03767978268cba750b5429823e7ad3a00a4e813052011bb0f47cbac838a489c568391c7d05457f4033814bb9d52a011ce787f0df2ab1bc885e293bf23900f3fa019238b7447561eb85b296930232b175379f289982312790bb65743cfe65017be280063c19b033c19eb988d5a827b64777eb8b13244a9b6763c63523a6af78672b652ac38f33f2a870c494b1dd34a9af239556ed9412a48a7b3501daaaaa976daa971c1565f37be80c33fd3126c7bb3aa09f47f4c9c503e2677325418ecd2058fc7518fc247b36c0c8f59427bd2311ca493510794cdb734cdf69c6b1a9d5c990424d819f35ccc8750b4750c43394605bb60b7c4dc39d8f71dfdf1c6da319f6d671aa170065102086665707b95ca4d241c26cb4acbe928d23318d372aead3a99bbd075b5186abe6590cf5278bf289050c13789f82476620472baaf258c78eeb7755f6c6b1a113d91da945a837f0c84b353f9aa1c223404a3c071a27c84a6ae90d31a0d254234a18656095bf989456cd9aec6a837df6880c9ba79476431929c9b22d9bac09acdd8d94b7a884e261037f1bb5335f98c4c491fece5ae0a485611a50224809d48aac84c16957221924d3c2d6500107e71bab5580339b0832e0292b89a3f25bb40fa0445f2b3122f97856f739aabd568d1b0851b47ac947b25d2da6910d05b44e26088901d487cbdf2f782c2e35193021501b2cd264a6526b4aa6dd439502601fd7b203b088361e6218c1b72854648f4023199e5aaecd51a33990b74e4366c07818efcad158a56ed623f63c20e5ea3c519350cfe16b0dfd3af10a45755641a388590eb95b6e5158ac5bc4aabe686140b981cc5c2ac896945a4be089201b56744c439630b56a15b4a3591acc88f3c4680311c24d80b5725bba86cdd22a3732c6a1bf7cb10f14d57ee8e5901e46b97e63848efdc76368b797da13cb3f23ccbd9ca6a75823d1ba14ef03664560f397133935103ded2d7480b9911136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 +ciphertext: 5c2e0a97eaaca1d05377bee9a9f4cf0238030f6540802e2fae3dcc7911077887a4fdfd6c55272b80659dd86dc65f1f276ce11b1bb9e7967afdb9953976cd604e988aa1407896b2319618e7552894eac35c553ddf20e591510859354090d68b2665bb15cb352d4afba522f3eb03fd09e30a27c946f738e38eda2b6e8499413644efeca48031edc811f162c4a419eccad5206dfa59e00679a4ca5d2c056167ec2405c5241ace69dbf87b4444b213583e7996a4d349e32fbeaf611a22ab7631f2e908e0e02935899f248f9c2a0460ca4aa21e7dd79b5fd84681d1ecf7a951ee903ec1c4c92a1e928a09755e43fabe1236d383a6dfee5e75456ea6ffe1f9dbbe61df6140a432b59d6bb4a98626a62b581519a8ff93e360753f08bcaa4d61dd89f0fee8b201e9046a2afb4168215d65f097df589b12b8bdc469dad42ffa176efac5b903abc65df115d550f30fab8ed459660e34b49e0725b0b4ab2f797ae4cf6e7ae0049c539953163b040999eac7dc13ff238565626b8efaaa2ef0874dd044afe71c4c7871610ad497b82e086ba9ab31af88187393e4751fd85f5bdaa13841df1658e11827d44080094c95f3ae409bae7e1d9bf337338eb4ccc86f832817a12aeab3dda8a83433bcfbb15e989916c8dac1e758368f60d515f475d6eee6545ce33be1700e826500e302acf28e7eb8f6ed90154cf0eb1be1159013fe663ec45140e73f079af6189fec534535644557ee45870e683f040249fdec1e191ff1ab576569a2a0af75d5aac79c20a1f27b738a4d96d95dbfd8bce713031631a89a7f79ad4e9e78b17521485d07d5610d3b3554df410053ba70f8663cafcc2d6e50516240e347b5ff2e554567a7a8bcf2efa694193306727f5bcdb0c69dc32ae6bc34d555a3f801ff77c70f9bf6fa0ffaed06b1ff713c9de0502be15da43c3e7624f6256a0d59920a7f3ede109c0231dcb2801d71100b9ef431a018af4ed9e882c2df9095ce31443a962e1b39110ebdfe9ef4b575fbe5ab0d5d1fb309719ebce81687e21b85450768a4b074e1ed627c7bb2d9083862cb904a4724014e9efc5066e4cedf2612b66577852a28bfa879f76d9500791a87e884d3e7b434682c8a3dfb6aa9336a5dbe59da7091969407130e570151df14fed6a5a217bbdda35cbe20354292ad625ec1195d936f7692a123f51b90208e289886473d33cb2af68318059c4b98c9c9bb965876147e326a0d899af928fdd439a5283b550207c15511b215e0b8974b57d2bfd176a3d6b5c35949044741453576dd5474fa53f81919109c059e2f068f91109dcfb95c216cbf9e91b670a4249f8d91ca4e900e5cf8cd41096cced87c9b0452b476cc7049de394ba7d44908ebb28362fec85b08660965665c6256f63dc6ad9f6348139fcc7e989e664819cd46b0b788cb25b219da868593aa650903b6a5cec193c3a494303363e170021907c41ff4bde1ba4665dbdb57daa18c7618ae25a0af077136113512c1fdcd894a59f1ffae6d0a2631124f7691b5ecf0fcdf01de92d27e +result: pass +shared_secret: c4041a29c5b744e9039bf5155cb3ac0b799356829557a7aa3feb4b3585e6cf62 + +# Official test vector 83, seed: "16bef67f7ac3a755c59c816478b75fcc16ce5844db537791accd1ebd49d2824b105fd2e970f728c8f0cf16e439a9ae2f" +private_key: 2556bbc99ca8edb774f8b427981046c94cc902f20c2c9b1eed7555f800aeae621cd247555b383508a8a601720695b5469f21627e0aa9c7185557718de0a16b920454a642152c779be09307dcd0aa6fd97909e7227ecb7db209aacadb7d1bf5ae03cb2d14517861b2be3e0936b47b7cdd488e22956b7de9ca14b52e848c90fad497f6d1bdb42c799d8a9b51f0c9a3e3835181a2d3ccbbd95785e1e3930b410f955a311fa69ae39b9a240c50c221c61d687853658c611717eafc14f8a27f8cd190ffd433d9d863c530425da8072e467893c7b621260490f1497f4470b43507161b23729a5db94585a9d9c83a9554127ac9b7252ab4e100d346cbd7a496501979cd0b5317ea39adf970a490aa9f2b7e4ea8122900c1c882a0cb0162f9256cde1126df07bc4a30042c6587ce0b3102673e405b623416c06f9abd9bc62eb70cb794844a6a428ce8736ba9364882aac621d304b98799aea35287e023290335da841a51e4c1b2063f1198661a0c01315b2602712b47d16b5f2b19baf2a67fb13333dcbec5d9557ba4a2f103097f14be6c276f2a195a57b9b28b312c6967a3334851b075a7c3d2ac74d5897470286aeb4b29982b002d5751528c3ffb488ec4661bd58b275c229bacc62d85b8b8c560a02850ee24aca565ca30168721a182936ca8a6508226d64840903038c339c603233a9046733c0e15e016f6f080414734903bad3393c5671c5edee3cd8db0cc8aaa4927c78d51ab2309b1b053d700280a0bda9a5d268ac47d746ebfe01e6be91264fc6a180c1051a5a87038bce12a4d70930ba259cbf49039c0397845301f307922c763be3bf83fe34147e319082990a45102a1d328a0e90a8e56670577c14ad53426ce36b863e501062a5634034b98da407659b9e8f3a539907d511ace034ca15a91bc8ed3715be3c095b60b8332b6c068663d61781378c9f6d352adf794bab90ffdf330dfc77e492b6ca5bc53de21a81ac93db6b520cf3ab8b4837729f101b992c7057030271b4a7c6a7c61f399a2302155306ed3d8a0336c8081206f6dc09cd8b11bbeb89165321660a217d9f0bc770b2023832deb6492e961184827a2bffa27c13ac42844b3fbc14b0b96946427912432196e95ba949b29265b58fee38b93232afbaabfb1482f2307bda7a3004cf74fafba6c464840ced7bcd38aa764d67bf20a88e9a99549fb66ef1a53d1ec60ed744632c7875299b056c8c9375c6ef4f147ab9c8b1240822afcb68f028d4dc2be9da530c14a552acbac77d914c561c25284a9a4dcca04637048f29a99cab95117881da8404596cd0a28004a47a77f8623b4a2811ac6b90e5069d7dc82c829abc4b14ffe251507bc970f702341e382d9524672f88f33e16814977225659c8c321a0810a523d44190a7947a9b2eeba262fbb16a0ab35100385c238c55601363cc5996fcb46454c142c25046eb507d4f6287630babcf485bc5f19fd99051f12a3e683a7d89b21c2e903136b674bc0b1490d91548394738c417614077897ba9ba577f8ac9b584090d32973b4261c05385788be4b63783728d59cd5539413cdb537826aef3d304e8102c6a3b2e72e4185292c35ab60da55acbe3c6417e179c80f0024ef5113a2c42a4b21fef3306a34117e05c4f4736af0e8cc5ae6bc3f294188ae5397ef69f26303f9592a694e12916bb56e5aa43cef5c183e6ce00f78ef423c3a838ad2cd3c4f68c142eb23dd5f774054668eff212b2bbaf8274c7ad10cfcec5b10bb603ec6ab33c963ad2a22b23f7412f93715a3b0be0b1754ef383c2d52a5a16a22632c88a9635af81909d347e64715806f93e0aa26756b25a8f5984f8e298abc12be53850b83213960428562455d6a7bceef90355318b5bc78734864d1af0bf1393849ad715c711a5226065586b80f1357d961a9ba74999c8f47c7583675245749bc56152f1428910324f2706c8718208c4a13158360365337642279f5009ea86197109b78f0a037cc298f3085c46f68aab45379cf59cd504a9461b47268ba03fc7cf7b1aaf9d461bfb3a7e68b396419a44bd56462e7aa2bd82223a09c155d26dff3873a6052472d6796e24bb7daa3583711cc435a9b3d3463812734b700614396a6dac3c2d838ac103d04239c847241835768a2bcc3d6f8567f6c998b4e7ca8d30a81582686f211936087d3db54972615d4a9b0e1ab1765a18c753fb9513d097322154ea4a3f934c8fff8520af32ab05f26d1030888c0a1613ca74164793b5f798ee3c589684bfb115cd6740bdd5141f1a17393b191550192feeb3c8d2c0b4c37790091312fab615c6d194f076c49d01cb97190ed9d4a6bfe0957047933e2835353085ef611c6f9c1f86dc4366c45cbe2281b0910ae39aacb271c03260648f7c955e99367d1b130c85289d586272fa28807ccd909185dbd5999af47f79da95ccc4859e8a84b2983f0e9693b1dcb506d7b7aaf03f158759b8006511380b3aa4b46cd060f96c0e16060161698f26e073c2f74e9c5b31f9fb4df5dc0f3b0773470bbfb95135c39199f6f281280480ae88573284c44ab9b91f8942ad423783263927c5857d5832a6e1576c6a59e7b1a498ac2f5f71c51b4c9a36cc4d28c042dea588a4756740782b07cc245a069d42245943977780f11eac0c8221f9938fb05a5d096401d2a4bea8c9f46564af831c907c4fef6743ee482339212bea730113a930c0a5649951abba2c6a3afcc4738580c61a4730aac4dc3c84dea158365cc6c760b13ea10b194b2539a55da5f01ef6c55213815fc6479f1bbb67d5754161d4064ed1247aac8edc486a8ca1b311fc653da3be4fac0c81ac0fa54b99030ac2f824598ecc699a31973ffb34648183cce8cfe6495723975c7ed7cbc5281811462cc1ac48fd9c5ca3da126b8125179b651a95b7749bcf711a018eaa951cc078aff16bde9a2f5b180ebee3032b5b2826ec83af147af8288470b267a97c5ab0244d3fe538e986000de3807132937a811de5228bfdba209e642fa3095045266e11f46e99f1b1eae584dcb8805d7455d3435956cb1679b8afe26ccfa7224736998aed363c0d82b1d23b339a16abb5e60dd447bd78c80e6657bffef9bceb18a0c8e602936ba32d24871d6470c338921366a009fbade8f4ab940bbd22158ac5201f09157d0c010825b290581b4108573e720acaf53344fb876db0bbba53d14a26dab409f137535a794294814e2b3f8f42c09f323e072b2519588342448e24a769af363293f4c8786ba4b70330bb80f37de30dba857dace4b8291ecb2f6ebd5a06323b11a89242da833741e9c468302cc5af214ceda67ff8161b29bc300c4be8e1a4139437aead8a9ede3cd4ca6ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 +ciphertext: de36243ef4f99396bce0bfc9d8d3d2165aaf7cf15a636550904066b0916c4c877408c24cdcbb9d976024c532da78c1fde5dee90f86729975d698dbbf24c908a81eb44082e49a713a2412352b90f4ed6ca485def0dd5dd122fbf5e8bc8b2d2d1b66c1cb06c9ddad615049b66ae4d8fa24ce3d78598d9a973ba08d5e9e24328743e887a9cf96876fb5ff48ff4d530d4516f912d5840d06efb6664270bf8d2d5d7ef22d637e1b5d47728a6948dca765b79de8d08b151df33b27560006026350c756da22797bb886261060cc95d1adaf05436670f6029e4256d033415d759a3da6012a6d85825a2fa925751cfaca26ec701629e348ab0d5e379fac5292284008e15959859fb2f8a9e137dbd35b71cbf02f5abe1a81c65b745aa2f9f6904ffe915072e053bc7a6aaf67b441ba16f911585f256b0f6aad431bc76193305f4225b6404c9c2336afa3f1d2a8767fd1199e05af964df23a027310cea75db011dacfa4b08157125f883f3e6c00bfa3328afec8f1c638bcc32484a3b039ce3cb2c87677166ab56e0b938e655cc72e87b2fa94a2bd28e1ec65b56cc684f67188a46cfaf2ed8adecf6b9ad2459393d56dfe2d7039467a35d325f52da2e26b436600507a53eddbf9323b8b465e7f0d1921d769ef1ad5d481eb06ea61dde7d25a2fdfaa33ad8028ce4d8275eb7b82c831e217d8ab122526626bdcde7d8208e648aad8cf643b11253b9bd2b84504653379cd8afbf7735ac82814a60e829d20dbdd819b23f840bf802d0c285c418b6beb444d4d916cbc9b169befb6f19bd963af3e3d9c66ad35c26d9adf5f3b36aa3e5c1dc105344d40c2865a6837b61f2ce00a2e2b80d22f6a696d5f25de6e35cee2f3776b2534e5538fe5c27fa1b0d69cc97559d19e99260c65306db59dac203a8d7fccb1b467346cb5e4823b1a0eb5d73890eee213ec5b4dbd16377f23008bd795245e159b46f911b985fbfa0df99b33efd4aa9096bef2497794efc029d719e9331a6c042f4e08f5f4f2cf17a1dcbfeee1e7948b5f57d7a0e1cd26abc8a22ebf0eff45d3e7c16b34f72e670c139b92785fc76787d92e1eda38e4470bb55456ff37418a99c6aed43479152e040e2fc69209c487639ea915e4076218f6352285a09582275985c6ee5d49bbe6e2d9d1b18a721e42136e164437d96f2a134652ef092f2e3969efbcd394d7f2c99f1c12edcd4514be7a9ae7f5ddd5b743c819e12756d2754502052a680b24528df8aebaf96034da78e5608252ca6975db90973a65150af5da69b762724660476fcb58dda5b117b6c988dea8690bce26a36c278a449919ab85fb9e79df56471ccc6118912a27f2447252e8caa25acd52707d23ea3243037b1722741f1dcbf47fedb9675e2914f631ee01205e77ce05ebdf4c9f3a5203bb719c4efba827ef57c89c619e0d682e33033c2c05ac04c5a02042e0f6ca1bc9d92a7e11148144d6c98101868dc35541ce69089f0e02ff3e9fce5da3d4088c04ce8bd380ff62118a2513acabd71791555c6027f50690c6967799 +result: pass +shared_secret: b8441852349193321f466ccbd3afa48bafe903288108312de26e9bf0de9f680c + +# Official test vector 84, seed: "d0611f9ae5be4da5d7eadc9109944348e716cb3daee545721eea8c892e7831cf2e54603146454cbfd92387739e9a78d8" +private_key: 76c9ab126b3d022c31745279f6e684083a496be39aee74bb599a8b6de9940a26535a2600d3ca572edbcc37d721b7614824a123b4c6c8a01a0568b8ab61045c3339ad02e68f16d16c17ac572f9ba77d279d38636c9134c501b7c00518bd0e3293fa3a1612d16488c7bcc4cca7fcb5595191cf0d43c2974c0d8551a72d252896a8baa7740c419a1270e6b7145b053ff828344b30d5c18be9f2c633799970c44bc49c2c485921b96ba685ac1bd9a914bfa026a35bc1eec70b8562c9d825a4c7d5a60470c61244c88681af5804b587141dbf72bcbf7604a0705d655b00b89b9045c0a291a355ce68a07f79847a181401c028590788b7a2c3d95b84f13993da06556a240b16887b78e43c310928459312f196bb04a7bee1e0969d72264db1ba0fdbb54ed8c49c3bccdc44a9d4605db677002a0cc84402968cc7759743bf2ab97f0a4a67d95b93a5c7c51ff91201676394e69acc8aa6c88c17535cabb8dc07acdb239b848a8bd88ed0430e3381a6a92b9ddf04955dd06e01717f9036920ddcb33e017fa3103cdcb955b3958347a162f0db95a3b2377c4c6027353266a91876f698ee53787dd73bb9978c7984713deb0017fa1df2b10feef4c7ae5734ecd7ce2b043793b1a19655950799243eb493eac103fe0a174d67b728b7097dec31bf1188813b16c1129a27669fc557c0dea7bdef1303ad98b81e8665ffb009fe5440478267ab2310a34c3f11c88ef8fa5736b91cb2972d1ba772aed1b9fef64af7e547bee627fd9232cec559d4ccb36e8702379231ee5a604cdbaa53db415e0588958321709cce82748fdbc257535584d8d89dbd7cc2d857ce3ab498c31b74fa305d8b145184a906b89a28a82b071d8bc4c52623c306766a150606b63021919759c76102503c03478dcdd7cddf71042173c91c70682ae684fb488f6378678ad114d8e6c625087741e868f1176cd09721e9812d7bf5c63e21974201d0f2844959c898581994ab664ff6784601268b4589c20b4c9873e49f03856debcc266764339329b327e375406a54a0b4c89439116fab279d6b2b9ad0a09ada94a1d572ade29dff802813699026732c30167480cc2230283801bb2baf3cb3cdf88e18f79852a13269c328a555955dc04733e48582f0768f40168f468c83060d0f1bc735ba197cdbba40dc50cd38c53c2a3481b763935b1071879d77967598b2aa8aa1ad34863a6db84dca6628907723f9891a4434339dbcc19213bec2463c5b37b82bc40821f5a33cc391cba73e3c7aa397c71b6f835c29d70c226628fad2ad7014345098a55502a6bc75003b449786b9534ac31e8b6871c7c98be6ca03a974a0936c4598438bfc953b691771c93b83b87579ddb6bc6f5721e2490fa9e0b36bb26c7607bd4bdc003ac9c2b0f41b7b9b5fbe9432b9d7c164d938b43698271a991d4a234fd1bbb28b07b5b5206fb75b4ee75bb3a28539462c01cbceb619b3e2814e5efc79ecda14462b46782308a5e61c2696b71cf367fa421cafd1c0af5bc6b6a7bf07d3b504c05c57f184700572a777bb0c32c7b82212d6c783d9696e96f11a9af791857526be109141793c7b92823f4b116196b8695c0b00a46d521b49241452331a4edf2a56e0264505c0682e248784527ec73160954a18dab4986fd146767bac1506885a7abbaf203fa7923cf3644b146a7687dc0f56329e3c64b052db6c14e3211cc560d9a70a1ba641224b2eb8e70e44b25b4b346f3037454aa69744d1777498c98ce741ac1008461868839b4149135b41817d135060acecca5af744e982142de574ecac5f1432a7d907628eb75439d8af02d37e5181681f1b249bcb22d52961d20458c860ceb3175730acb9b8c8500dc258fec13677f40506bc76f8eb31cc91a605e905ee839c3e0b771c32595a3238acc079fe6034769652e5cb492da0a3e8c0cdf13c899cd5838bb46a27e343bc62ccb6294c1619af96817d77ebc2e1431f997566485327cb9331a262153cd31c80d939d473b81feb0910e027b02c29cfd66fbed3cd09c11fa08744b9e0b62dc3093c2552bc7a770a0550cd601b2e6559851bbb5d8665865555ae510c2df9637c07790639c0af6b4bdbd567b704c267e6abf2b371f580686a1910bcc02b7ec3c08a7aca3fd121cda343a61c6c995742159cce5503b4996a7a6fab9e8dd5713bf62f3c0792628ab621741034208ca01c6130d3a3499a186fd69db4b3cb77417a12992e8e448fb75b73f4ca54fda42b2df2a4f9e14c39424bd1592b90968434eb8f52a6a1438cb7e589740c8b9b2b6123600b28ee954cf0d18dab1bb3fec8a0ff6379a4313325c7011f4c7fead33c8fb543c3c90b6ab35e01e31e2dd4262bcc92ba11ba055295b3f2a273620576813232876d1e9b18e22639e9c3759eb460390bcced9bb0e368c6cad846767c69349c59fde27405d8ccc900ac2ed762b1ab6381eac33f14aa27c047e5a63921030f8ee7055df00f7cd353bdc1487fc0875746b9deaca76fbc70ef5925ebbb994833a7eed732235b06e6ec6b28217c7d9a86a5396c80d43c22c56c19570238c70e7a7c2b6a77bca45785ccc31d8a880be379b05e45a1b9a8b3b2520826f888a8a025e28abcc4320bd1e30fdd17cbb3018a7a784534379c46639a21227d279b61da608bdf9bb9304b322f103a6a762db152548f192534a94df0ba1b2c97b9af8202dfc646a84270400cbeca95aada593d8f4719abb6cd4a4699787b92d63279fe9bacc0a989a59cb0ad279a567b8ca9536e8107aa7b81b2bf7730b9f4a470c8170655a0842602bc4610f9e7bbdc6acfbdc4732e4266083c9c91d41ed1f2422822acd01bab34c4789a63a700a5a135d65495841e69ca2f5334cbb1fc4c7d42b0f53bb63f888146163a51759c43349377ca824b32091e9b9c30e025981b82cd23aeb5385be7f398aa5025e87b605827328ebb32d6682896298f652243ebb3b8a6f759db824d3f577cfb8aa04627a80a03804039478abc2a627779d1c87fb23453ca254fb51c629f17c1edc8cd8c71aafa135051320f81c65b06711282ec6e7e4b021eeac0c3fc7ceb4b192897899f6c145f53bfa2d68a5b583002667d101a9c7e721f0da0711ca79df954126d9199fd6351be89225cc52d6be5c906860f6ac81c56477cd34c94ee43b920eb6cb62bcf27e5669f9160f0eb2ce7389b8da47cf8b22f46452961457dc39c54fde66a41f95cee1ba87682ca6342ab76f6bc262632282a22293ba7be9cc567700b5c13ac19f126b16a43bae7e4af067d280590ff759d4c3a502ab563080dbfe1df14ac06d254fc149ca4d94813f81c792060502e09a88ea694c5de863ce6a50516cacb1c3f44bcfaeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 +ciphertext: 36522827b08eb3be3116df1a5c1d91851520ee9eda2a3fb54e3258d536e7b5345ccf7ee7c44e8b141a73f6251067f67090cddd2ae032447a612c6c5ddf292e1cde9cfd07f19187c2dcf0a8e5c169aeb8fa4e9db1d013413e62a7e42f1ac46ca3475bec9f8d4bce5805e4ab86d2192ea38e9dffcad59f45b3f27785d3e7165beb443382778afcfb1282f686a2abd4764a21422fcc626baa1076425e3f986eb51de5ad135cdef25dedc61023ed178a90ae633d1374eedb067896a28cda873243eabc246d43e60eebce06a065e0311ef7236b3ca74f8d0aa1147292f08401444ac8cd66dc7c43852941e384cdfa297910084c0d7a100086f6f41d1e103e0eba1db3a4cb9980cf1c072e3818e2d7ca76fdcc6b73bf91f30ecc19715671ff775ff9426edc903568cb55c757ed7f785135a14d3c151a1e0899820b5db36e7db087b7682d98580c07a4bb55e24972574f989f663adee7b4caa447bae860badb99fda32ba516afb3c9fda27a7422898f0d2f85537d3732c57cf3143009215ac73056d13e254d4ba0399f49761e960078b78da2a709aac554f0fb929c40d2affca4b53901d9edb42032b33b18238086f469addf7d27cd36d55b5102001bc18f3d1d3662477c0d51f37c150be0391bbd15889f21537ed54f2a3e4c4595819d83a39d70b28c4cfa2692eae6e9e3a71ceed89840ac4246367af61a04f90c3bc886594199f3df25a1ee7f6960ec5144313b15a1aa22e5309800ab22f7e690d1dde2bdca0506b68ebfcc16ccd97f6d901d2cf71fb5acf85feb2df8a22679671f1e65955289f35445451cbaba874b5724fd9423591a479b7e2144b9aa1d84bfb577cb7755dd6ea893f077e05a4c9d2697674892b8f66ae9c659a39d7944bfacc6575c8ea3721bfbcf1ca63c07574f3ec4a8d78e42605789bd8d905d1ae70cd4e9a9350ffd007a81a43694e8d3ed28e028cd24168cd84cad519b0b58aea046b06d5674bb656ac23fb3aa258f1f87d34f69e8b52f208adf0f476804e5080bc8d94d666fab802e950ea6c6a1f9f0c201773b303abe37af0ef90527f372dc298efd1b0768867eaed3c4b2a60cfa94ed6cbc4ded0a394e20dc7e5ff857cc7fe7285ba7257c3aacc80c9058de86b265437d0c2c6e9d1fd55be37155919e2435888defa734d4ec60789157693717fb5754b60636427c9e58b5a1af828873e1a75fa02d0763eaadc967f3973f9cbd129d1c0cefcb1facc557f1d8379db3d2b5a133964421691363178e24a8c6178fe09fd5e22cda6d7be38aa32bff539693f1d714d52aece91e93d38500a6253283295f51dd365d7ff6ec1edb6869f8e556e8444ca00308769cfabbba9846574691b6479662a392ed93de8bedc1b03a01b1e1612f395247691865efe48ae0df8472e3a07b34ebfe390c347e7f42b5c6358d679c6a22c84a7eb8fcb60486243caead763cc2db255cec565e094622d272407b703dca27e6783fae2fe6b42c24a9f8ba6444794596538ac4c1666626b3d158370ccb01fab7eba48c7e2b6029be +result: pass +shared_secret: 9d0d9ba501da1b46775258f5c0904721906b237c3461da6c31d70da8575fac37 + +# Official test vector 85, seed: "fbc38d7614d7718e931edb850d2c6f0c5eea9ee889b3e25bd69ac255d5b91e885d93e808e66bf9c88c655dc594da5792" +private_key: 672a64b0079b3b7c18878338aee97b73d9ad10231709a4547941c0c5c1a6297367bce3b5d68b929f611c5ba26f39b199ca2a82bec9ad6318be48d75f9ec7cae3eb4d1732b8eb9a742216723b4bacea934113054af3cc752201859ddc1a990680fb573efc845a85dcab5c352dc701a45e5804a819644037bd095615e7389c2bbc49cb9bcf192b072b539d93fb993bb73f5f3b1549b13e5f90c8aa82991384b310bca58183116fa964dc1cc15c933dd9604ba6cb83c694132c628ac0901c5fdc45c808c2d06947008515ca95c77b486b1db3406665b0201498f721588335c55d2366eb7867ab2a8debc248df0caa3e637643455f7ce625f9f0b43c8787fad449f9214f78551f9556272f7a7040687eb185521a1a576f201373c61840b346d91b94ffca34df0045cfa4b5364432c7e2344a837d3c09c21ca23a957038d8eb30dc91cd9b25837155663b923b6f6766a4555475b04d74f350cb2640cc07cce818609033a8730b0e7c234d9b8b4f7d77cdc095c11e0c8ef16b3eb63c06f72514b57501dcf04ddc162096b99e6b1036ee0118975932041a5d5ef118e62b0429d4117d89b72924afd97770fcacaf9bf92824b9ada2674dd4ac40dc8471ace7102d13058a740246010a685b9814216a295538dec1a9289473aeab46c6e3cdff4335dec9055c5baa481918bcfb0a63cb7e62123e19f1939c1030ee95709dea6844fb978410989ae9b2666984e38062a1d066fb91b362120c7f3bb5488628376b1c827b50fb11b3e4a630c52a32d5a40e671ba0e99269ef09bf1eab049ca04ecfbbc213b74ac06aa790a85757a9be1c852199e7ca0ada5e07e7ccf352b3f3307631e30c604bba95d8aedbc44d12f73e7f51b4b8537e5db967d2738e3a13a33149c00ed24560753f34b85b85c535ce644b15e046b104b23b3c51562c47dbc92f2b44ad0f1890f98044ff3092498416996886c55cbe1812aecc6aa3d08a4f89c62708495eccf13c02a6b2b202732888297b3aca8861bba2e1cad6e7658686ce07da3580232b5b75c61ae1ae72a344293855f47a3aad11c4b716c211128091065a07439a40abaf2d62c674d40a6b1468b61ac2e22acccf25c0783b5cdfc60a47131f0bc6133c55b92e246b9c722ef680bc0ca12c7dc1c46128863507781937b9e02b5355d2b8399c31b6a80ec1137e5fe9ae01d980e0ca647a7b3678006c678147529a32df269dcc378416b14d61b240c4742247bc1b77eb905c6889fa022910a974f262733ee14b75b302e5148063e5ccf3984d073410bcd9096c38aa99c14dcf69aaa3fb32282352fb4a315b736774558753d7a1615c9fd5d30904e1186162a2dacc96003841934a40dd604983979838fb5382fa6dee1a4cdf3063326503ed665fe3ea84953b522872c36e7888864a0e55f3466bf20db1263cc0fa91660561c6f3171f45c2bd5652c95359e0150988f58ab5f69232008b62114195f570a3dc9c916073373540538a56e22b4dba234eb315bc15b3c89ab64a9962282e3c20baa7aa540c8273b83a39815131d24e3643353e5a4df3e986abea49bcb2b96be28a6c4998ce24278652c59f0c5e6c39a52a7269bc769dc6e3b75bd34e7be7c4f86a93506b0510310c0055afab2b0f8c4481d2316c876607a02b744637928897c26c1c5762524f42a00b27d4ab7c198334a13750b8bee321cf5021cbe4536246a0879890ce6f042de3955e373c113d7c2e2df360a8fb5c76fa7f1f594b64b562d0c3b524756b2f94667de31f9a67aefeca35d6641d17d167d6d955d6bcc1709297c9277cf614423b212e96281f6100074d2c2209f976df6332285b3c412a8f618c5b5175302952366a5c67462b07fb74cecc5726ca861e47d4c599819d26329568c139ecd31b22ccac2901d0bd347ba5f10a51b69dbbbca90b574405d8c0600617e682bf81472018284a70982773434d07286b319ca4e3fa6b24b25171093cefa559aa33ad3a0336a1a18205a07ec4463511d3be9ce0b05944819b9647ffd94337c94b7831694ba31cbf8c7af238c21dc1060799c09bb8aae0a084cab07c3bb8502275398e05058b142794309e3bb287fa32a016f46e9feb9115f09a313970293b25e7d25c4abb623c1959d6246d7e00ba79068ea03963d9598fb2b04879c3379397b086960c0d896e419ca5f7667264e1907102329474867cf43a426b1e117826ca542cce64adcbe154f36637de2cbdbdd6c1ad7794a0c18fa339993e873ea54c3f92a68afe0445305bc97b76c61b3bc693e30b2a2b18a6cc28add35cdcf601554b17df39998516549b823ae1596d2a88acb9433433926af62263deb704a561b2f2397381228fc5b15bd93c3911db634b19cd7217508e328113d565b475393d95c7abe5a94fd6c1cc1283587b97db55109a08b1ae1060cecbb15675a253ea154ee19aa9ec29ec33400e4946b89b5b1b4ccd41362a3cc75808408f50ca8662b236f1830656a432e2193bc4f09ad1fc6a82252174a6530b3b078808c8798c9e110820c295797580a74572adb025cc31c75017468cae17c697a79df023aa250c827c11a1491944b9d6156d24b1f0f53c12a1aaa5946bda21485cd18aac0034de843489b7cae9ea90197cc471444067d01f873175693224c5368e3f3220ae48832c0928e65195510b5d4eba93dd3b217b79481aebc34f2123ce42c0aba83ece60034ecbc0ec4420de32851a998207f770f3e2bf94b047779b6187e083f7e04458c243d9125dd1641ec413ccf0a02811ab65d7d954bf4cc0cae00c384889d1b23405419180ec83d9ccc170e0bd6bca3e2682bf3471024445329a515456175ef6c167da459da6f3439dab20fb28bfb9764d5d9b9af055b442399361e91f84965fbcb31a4db147cf5cbd37b955fa3b0a34b78f8f4b2cf584c1f3646b5d7887a99b3847ba9010a69c89f52653c2c4fd2a6cbcec2d00392a1aa44ddad605d8e1595d2ba305cbc86b24a47725810a761c45c6cd0177262b2c85beabc07f5086ea31bd443889ae657c9528abb2769edc8cc74bc80943f92e88402ec231823e15112ff5624c982be7669010e31ac9494334488105eb88658339db648f30b3a08b7a7b5bd1113a83055f673a8fd6ca10cb4ce3c32645fc42ed24420b222d512c68651a0b99875ef8e913b984c709221228e51bd2c2407cd49a06e83f7f12c15d33b0252937f857beaf9ba79045cba8264d7706270d4787f6ecb8922582b7321c26da7813eb1c61a80038289cc84a923e03d7ae3cb232d5e0c1e7715d7b305d86d34fe89069774bf4339a1249be49b1e5c52e639e5acd0fb97c7eb44df56df5250c6de7d171c467ce6887eaa4ee3d61a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b +ciphertext: 1f5fd91c64602f502d1373cb97805effe1fa5470648fe8b403524d8031888ce5a0c69c5b350e7f47038279b9ccedb1a124ef224764dd81a80f376a282e858e2feb10f2062075dc206c9dd2f4880d83e4807dd4f03518f2fe0a57f21e554626db5ebf5aef9e7594b6c439a75dc4d6b86bf0011effd8fe05f7b07088817a2f8b669b71cd9db8c4c5981876d811601a7b6cb542fc8651ec0e7daf101cbe22137bc07df0be881e74b8b09af648a20067c1d98c995afbf286cc566751fd37b78ac33c2e1e41ea00b2d280d6b8a3d963835f84223a172cad0a37194cd8283515a0e8672a5c2cd315790181e6482156ec6ce6d361c381dacfeaff3bf013ac9ed98cc170297f4b1945ae1d535b6c6cd3032d48cdb5176a988371d2c606e4933cfadca235657088da565d528899e147b5cc202225410966e422d31048048ce770443515c403a456a60178e2e1dd77d9af89214df32355b22de9da57fe774b3fa2a70487db5acd94ae8e84a1648b502d3c47122b912d8692673a230b72a7852323b9e303a4fba4b92e28cae78816c9a51e4d456eac1f8619a8e31c37861ebf20364662a5bc485d55e026f4054ef6d01b2e034617b392b9bb8a250d2ba7f40c45205ef68ce88795cdfb2c5e8b829534d5b9ffa91a1ecaabeb08be329d5f4e99bc5c069cc969bb354a9a8efe99cda86937bce9f1b05ce27b2401acd985ac79fa0cbfeca06a6846c273dfaf87e3f1919cfe660c3cd2c2dce327d0804ebda3e5e7b43c9c80c9e1a2eddb342874ed9aacf3895bfb8d420d1377d44effa9a0b2c56eefc0e068d96c59b3028e82cca15e11d4bfb438e5c81afa6ac5a86b9d76f7b9f6b59a4bab581683869ab687d657806ef8ed1ce67b8e6186be98ac7fbdb6df7f9334fa5eb7dc24e5e3084deb1ad0b9892890c1751e5d3f2f67e4cde9fff46fb8a2b1a9348ebad7f6af4f9cbacf7ba0f5b46be61fd00ffadc0c466afc2e6e1330295846a2a681770ae8f2ce09b9b8c1e7e33a5a406b19f428708f55a0fbedbc9f2234a46088d4bd054ab8f5b2849724f0f6856439a4078c315d4fa5a0a7f5566503365f836c567e91beee69a204ef071149c85a9744442a1467d52bbe0f06fe4022f7ce152ea8a543249d7c1bfa48689178daf4727218b39324f0a8eca34f016880302b36dacf76b8ccc776878f0757b16705d9b44faeb02db311a8649fe9d41e377509b3aa8a5a487656391ce64960f34420bf5385b4d61a65e1053f9e0a6559e20eb839b709e8bbb8dad3ea772e5d1c41db14f260c90ad8e2b45306010fc46a0878cc1b3cebb440281da6862c9ddaa917ad5f5d472c1045c2416f7ae434489679d84235af9a16bcdad3f8a300778b5f247ac8a2c2fa3d7cd64759f263e3d8ada71fbbe3a785bf620afb1860e9db1aed284e7e471d7c7cb09b78443946268a50438e3520d86b8ef9d803c395307ac2260c075e95dc0d908b1367d11de1295d069e02ec7c734212d5d8df66b9245280b3d4d63b8b93b97226227eaf9a552a79d442a38eaf6942ba +result: pass +shared_secret: 188aa07faa2b7a19b6b7bfbd4cbb1ad829a7415d601fdc3b635528db136cac52 + +# Official test vector 86, seed: "1722219cb5db47374eb0af0232c856a57f026f1cb09e5a5799f4c333dd422ff6a0a67c4da502faae727fb2d45dafcf35" +private_key: 0bccbf3cf040d5b87d74815458749aace6c82dc66a6a7672e534a60474b566c4060ec61e23f5aa640245fb2817185b0b4de26ead3744f0373f4172a6095821bb873f34b94733e60dddb312a1ec916dc0c10aca85b65a9407547c133b1cc32205c7362f3e458bbc507ece9c7b13176f877336a7348b4d785c3de0641d000268a37929c254c826bb643117e36a3b28120eb67104d8ea4509536bb0d54d1d11720a31b4e20b14aa57a81f45b3133525d5a49eb1c59e9cb36774421149f734b3b7778e4b3a2ed20e5cd8a56636c100f7a704f5691d0383140a633ffbcbdc5324ff329f46e5afb27070eee32c5008637708a248593ec00884a87231b7c457d969ad8bb44841d5c76a35ab1fc3031e704cff9045f80b3a2b925af1714ff78b25e798218d163b17e154634c1141a39bf9d35aa7cc9bd2a56032032caf8a6c61319d524acdb42b1ffdfa0b6d70673de99972b21e046737b11850dfe62e30c40d2d7c212354ab529477c9345aaf8a0e840b7ba236c7a3ba508dc995e6dc4a80b77b6ce1c26f8ac42304c91c215698829137e446e49414fd91cf7b9034f5301a81cb4d3251a47c64979ea133ea16012b2c48fea9ae3eaa71f53272af878d356447c9fcb163c938225a53119b3cb914bf9b9b8bb40a2b99a6c4b6ab5055288639802df6810a9f28607ff0537b92a640ec4a2f222075ab917dd2bd49fb1debd6435257ac656687ff75bc70f7b62722664da57882fa1b336819d8367466e936a62724ddf9c6cf439d44282645d5b13d84754799ab7170bb13faacea545ec2e52394851c21c01aaa5b31f72247600a25eb05d00443b3b85c3c176450ced12a8f583716a93ec1cb9d8e03436f383a3af0322cca926dfb45554045fa903a5ae8be04bbcaf858a84ec35793aa9d03d3882ad873289a337e37aaad72b912882ad657bdccf82e65ca3e554ac1e16a44d609c62dc71356ac04536b7ed72ab0ffcc9981031f7ec68f7fa6c761d219a8a78fe7d527f82ba81592c89513b47bd41470e7110aca8b85b9042bf9b4f2e29221164bb21a0eaa30a624a285c15c92ffe3630f19c35f02b9b54bc0c2b958c1c088491b990018bb66996bfe868a55f9c000a72264a649e535bc5e5cc86b1079f556947a80a6352c6bae64a97ef3a1bb1b2886fc5e0d284f81534cc3c1a6403b8c2842cc5909bb642343fbbaaa17fa255723055f7644366c7f4744c01427b9d9d1935afcb732ebc6f2f6cfb8a6c492482e7f046b32a232c3d74472ca7cf64490f0f68f4da0b1d81650384a1288f374a2a9c0153805a2709da5d5154f79cfae9a564166c601d75d7fd3a434269497e41ad316adc65cb152148327f86134d085b2b809ce96b16f6c38e4b107a2fa3cf11b0dae7b37c4285f3f9a10e0009fc8cc1459cba60e38222648bd76a8c770282ff5c57b74f393a8d01c0ec05b4169bbf487769de35e4890382b376c030aa67b28a2a3aa4d8cc8ac6d96254dc7911ec48076247dc2db021880975a49b3995854c22b89f3b1b1d4993c43456bb647c8f83ca66d613bf3eb3b7da4a252a0a7e2e61bf82c20efb11a83d1b9d1e087520991636728318602d4f8c5b918763be1c1b1479035b2a52f4a194042a006b483c1cc248a969a9deb8ba9c43e80799f3e287b4263bda1a1055d152be8c84a4df5447b43295d0ba65d2a9b2d15a3b139507a3c2a44965e68e7caa4d9aeb4f67ced404305c81782ca49656775e10aa531f01c66793e198092e2b538df264818e7afdc94ab3cda837164cbaeec93fe2b8b59397482f084af51976bb6161c026761a22dd5a26457c648ed0817ff0a45fbc8c7e0e6c45767b7a720997ca60453785b73a43522979d06b365481a54e8124e9f4274950315faa27f5f8c50699164414398d72321a9d5c2181338de5187baa2c0c5097bfbc72945b15406eb1e88caa3ff92886a6a4fe2c8794700211ac32e1968643ae5a6c3aa309433cab3e48aa93a560fd18550f19831f6c74e811b8be5771244954da635a2fb6c314b9d77f1bf26fab613872d0a2098dff0b060516feea45293e28c0ed088bbfc0165a1906473063e97c5b2825100116793fb1dfc9447fe3227d96bc5e999cdf1f545c8753e4ab43d211c80ba9646e86651d928b0c9e64f5c2ca80b99914d878641a53a6a385acaab6d9b5690d11a8ef5a08c35e80c5df91463c76366282543b08c0bc3054ce07c32fc10ae021bdafcb744c20dd131c8d4146f1fbb282250941d8a1cdae68b4c5961a7a437b3251f144586aec15f505aa79305797a16cdf4c89209b02bdaaa0c0d367e2dc7097a9900bac5cf7063c3b2027ab05b204fbc997f333122798670e3488cf4bc64089a15a97f0c0a4ab5680fb9d5a9a815234e158316f31948b80ca33523e2303838d55ea2368b037a607b643ee8b2488ee456273158a3675b56967ce7b4a1bd2c22a91083e474ab9121cfa0f2bd1a24b27aa317c34b968df055deb839ef172ffd0489bc524109aa9897383f9cf0226810b56bc75b699187bbe86d465c7a44b65aa828c40ce76de88cbd6671093ca1689506657cdb6b3cc5a9a0293d16057e700a3bb7623e3ce1c8815b1d17066853b1cd807c0803f9a9fc2b62f637c99535a1733159ff79a863ba9203d57c80f0bbe02052e41004cd42388fdc695d9722bb0147c55510cfb9347127002fa9038f42551fe1656f1c4ba91c47e5fbcc5e83013864209290cf7d901213a26e1fa79aa7576c7c4103cfa01ec6e1459c9aacc449af7d10aca0a4171b284d4473c9af9a84546b03c7d5cea7bc723dc5032157b58431ba9a895d35f89274e827470babba0342567648ba84a51aa5a604b4c36a27c0b2710b2388b53085603cf62d9ea0a6a6864971323ed9e934d7471e65a4915ada5dd1e7482a37517cfa6255782ebc7b789c4a6d2aa746a811c0be90079f138dfcc812adac7c4bd862ddb83cf0d6b74b623b523318bc807163e6c98d777c7ed0628266bd53a29636b601e162466cfb700ed35b0966a7daf32e7dd67aa1c08e7cca8f18fcb7bd3104bb5408637c08eaca654b19523ac0a031b76968d71d9c013501a1350742467970c2813762c1b4219dc904202984cb49b33e91328b0350ad36b4a7650f7505b11b5c6f0520cccf788b87b5aef42b44b567c42555c74f40ce66cc9003730928e859c77099d8149c78588fdf0c347eeb6752b39b755122e715843ed2a859c02a81e7705127a52d53047f973952321d34d4278739c4bab50a5c344011cb196dba2bc5197accd11b3f6e5d57b37115e763177a6910c9866c85ed61c69a350302631bd506be010a3f42112ae4ea731d515d80c3a21fcce60cc4d945abce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 +ciphertext: 43ca59d61117e53738b410cbdee068783bd99064b5c2b5238843d7875a72220c28aa6835a43e8f3ed0235b92051e496e497c739e1af2e2a7765bb4a038d36edf99f0f8789f0acb8ace1e1f981d3cb4d881437dd6dc3dff995b5c53d3c8c0b7090057bfdc7945b2dc9e1977faec3879e200e53cbb02e90dbc8ee00e3ddf74546e58beea2a58eabd3f9f513425fe38af4876b8077f8e679584dd5744b9c6f2d4520373da8ad93dac74e6b91c2e186bd7b18f15ddeba8c179375414a42fe1548f33244dc3191227b59a3c9c494133894443614dc0811f8bece03633d38765e214d96da45f089182a1a6836d382256dc0937fcb91c4f38a2e388c327816b622bbc3e2e76123d43e4f3a7b4492009178258c924de1eb0ef07497d3a12f56f61a2667fe8a7d43388d892803a42ce48204948dd9e28d1382575972ea07cfc9727c0b57fbf7456ee01e377a246022d3adba2ea7b4eedb3cd16a8f12a381df1b359dbb3764eae94969b48f53191d8eb4777ee0987dfaed4ebf93486ac233e24554700640d19211c353cc660da14871a48b474199967c7f4daa130c75356d509919e33c17f8336748d2ef4a4787a502dc5b3fdffb9a124ef31f7197ae578834d64e8d1088f75f8879aff16075c48d9fc72f3facd3fce6802f7370fdcfec030c5f70f163c109062eecce2a366e3c5ef156e3443c010e1f2f520c60e1dd89998378a6859a594c65eb43ae734c864357ebbb0dd172a8c611ce8d8f073340330a57ae7bea54b9d62f778f963682a40f75644731366de60038f4a4d1eb46579ca1aa6ec09690eee7384000c35916a1c6461975ba300cb717df5f99de105fb197d2f4c540c5c87e44218adee452768631afe676e5423d4c1c8e0270c69dbaa56f146de0156c0674e60811965dd588ed266f9a0f1fe406894bc7099b26e098aad64585d7b7f57f4170526180f5eb10c10442dff1a3fe1298444391b4bb392e54e3d5549da4dd4de6be3f361d4b5c261abf61e181ded24aeff4070e2aa504f5f2f7b0e63bf00494bbea72c33a972a5d946aed66c3ca411179340246155fffb724ed2714426eac5e331eb5b7a196a16f22820e817448b36d75c2a90ccf453e2ffaea1c3f21ea8ef21908dc2f3346315c703d44467c7ee02316915989c22a6b8254d96dc56b99b6e7802e3855e07297565b63ff5dfdec11b216271dcf722fd46041df8b2ee07e27bcdfd36703d847e2b3074ccb7436b56ad9b33c68fb1a497d81b8236cbc6a585e1dc0507a15a30b3d2180c754a8dfce465bde430a2d24912dee434d59f6caf3bf2211f20262dfb5d5d0413b824e3cf05f0ebade427c741b0ccf53f84cfb488caf6f401ece816eef2f94fa85d72c445a4397d26280448140850990566ddd703e4ae232595e558b0ea45425de6cb5a1f100f2ecb36e9980d66def6daf65249e8487784ffa9425625030e8336f1c5cd9d0100631b5b5d0cd549302ecc86697c42cf39629df1bd5193bfc5a6a9a0ffd04400d0b928d35536e46cbc8f06adb7ec341af71ee4 +result: pass +shared_secret: 70df7eeecb6ad19b54498071e0840f4957e935a62feba82fe29531f79c2c1651 + +# Official test vector 87, seed: "ac139b78fd16ca0f26d6d7f9e15345c888d857b1910cf38d883339b37ead2dcac30f7cf10176f23ff34b4488eb79437c" +private_key: 88f007f412264252bd88a985188292640647b1b3cc05c76af4a6cf3675b42f4482d95993dbd327c8d4b863a8a52446c45e2019e983c05c5c95afc4a0ae860ff06189406c1555bb292a521ba8ea0ef46125e590ab804b42284b1b2bd3338e18a6d6077556fb4b4c39ced51a15568b9d0234112556385329375d55847d6ca3b3c3444a48282c166a218a1c21181b641936ee5527a9848567d5b2a0185e10ecbeaa87503a338e98c0abe960b6c0f129a8b5a532a3598d6a99d55b06cd37bdf8d7adfafac7291c00e07a2816c7ceb5d04461d503e7f382f0e2bcd3389d7dac197ee47ec1cb2261059300a70a34c4007b3579a26884fd771cbe0929dec5b2c7ba08047c99fac165905a7664f27536ca1a8995a976439cd67a7e4fec693ec8beb3ec2e1353c43538159f545bbed6612655762ae90f7785cb8c2051a4ba328ce09977d85434496c9eab763f796f77a94db4343888eb753f434a1906071ea765a07c7f21257d834681be97347ff20c45a207ff7968dc200b48909b62ca4e2caa8e90d1518e7373966b76b69b65b099814e091c2867374e4009b1a76355b2b04beca33f9949c3d700d1583f12a07ec7349c57ab810cd3471a818f8bd8c7e8656ad148561c82bfefb827c2423e92e792f6f79a8feaca75f663b765106b9376bf66b099135c1a553e5b3c0326b6774b384abee645b5cace1bda4efd521967678adf291b6e6602df992b13a0444e817576f9487de014cd563afc086dfe864c0f565a2304338e87232847c2c0885e008536e4cbbad69b78e73794999a5a3aa1096ac7789efb049f273f4e04a92b85304fda1bbfbcbbdc303607d85b4504b544597bea524b79c3c438dc25ca6612d434857971cf95d343ad31c7a8aa5875641d2773535a80cf0b331840a55290cca82b74be2f4915af544d397552d2678a9c771fc89b0f00d6a36bb6276c10c1de195a271b7cb34b971db38f27f071b7bb4c44358766ec23d9636e933b23907a08ef691e453958b325c6a9136e57d2555485ae036ba34a9ca1333bb07015821187538a58c2af375dd5a106c9e01d357b280f07cd7a08a6a9f6b7adc63ca50589cbf21a16e0b35072ba13d9792bc5555b87598946471eccb42e27c9e2a8641c5524cbd17642f41b38fc888914c5d3462da370738fb1a6bf61330f17147b87a8fd294996b3b6bb0997b3e9a076262e7206a879177cec22b51cf1b85535cb3d056e3b6190f528349b245e1fb524dd149d218c5b41b34cbd579c2e2b2eb328cc66233a806177a316956e37a69513ca6183621407075b61b655eb5e5e60ad1582359d954d859550c115c07f71304368546c926531a78479544a6fcc492ef728fe0183dfa6aea27b75bd9b1717262022d75d383c813a2247b065939d20968981ae67d343179118dd1682215631dd7179ba480e54d4a49df6687b1537ad841e668b36aee700301151eda7706adc6572465289588555d263bb484beb51a428dbacb9487a35830597457411c899c20995599c0d3e0759650040127b92c85a58b4d87682b310d165af1b7118e7332de8f90ceb223195cc1a421a1685273078fb7caa4438f7aa4b45087806776188dcccc327170949c45cfaae192c8fbfa0a033e4a6bf137a2d5c4408040972bbb41342a6f2f97c6bf7b5a05a92ef1c69a3e602f5062b4d651b9af148ebe566059454ae71919226742ac151fec6623bd5531699282cd0651a1bb436d113202aae301a6de6c132dd020cf0235944d0a041f6ad92e404f87432bf3a28035c4f6e236ca6e6b56d924800667f8816839549535f1325ceeb5b0e194b89a5800819215737a40988a43336ceaa914800278944ba54edc65071b63374fb041f07a66d5781ee8492d35221c53495248365cc438b4a65a745a64585242878997853597ce1f45371cb1f97f8638837bee3cab372c024ebe4aa52455283cc2249d82739ea481d685204a61840c856617a210fa431a31b27532b5b0868c2dd0a1e2947aef0575934905ec50c33193c8cbf15c5bb4a89b39c63337b3f4bb3b61b0581fe2362037bcab4c62ee14ac3d8a70486789a6d9641b4a112f1336d7e613b13502de7d1bdd103b6a712bd4c9ab0f5611ba825aa5b344ccaf940c5abc296088893626120b4aa3c73c3e27520b6c6411aa745cd4399bdb627ec584ae3e2a9081c4125cc37f20107f70161975355ae779d74062d4ea062a36a4b63a20e22f3af346a57b37747d3d68a486133857577dc3040342ab2c8a38c9702c66276b5439c82465304f22ca9a316b6c078bbd00a748d9689283aaa0fa584fcb922de15c170412ab5819a18019cc9221533a691503a79c71c43de9453922264ce5994c78a3ce43a1595cb0c761291200b9bdd8b6dd037326e5b40d43717e6507b5f7bbbf71800cc7a1143e7101995ca2c2a06d3a501229a913e3b350cd567e59a03ac54c35a8cb0e4faad7402cf6353a048461649d4171406503d0380f543aae846a21df31c561451fb8707b6f15ae138a8d11b53b4820e97d1293938680546000c7552dea31d4ad50e914cb85935cbcf18821d22b20d309023018a667424ac7aa71532aef2c69c0dc545e3e501e5706bc1c19b5179bd4c4ab22dccc9269560992637a7887b996a6754721a2ffa97be2b5fc2a512788334871577f7530bc06430e539aa7ee0acab022607554e2a3160c2026b8f169cd3537f523b4cb3096dcaeb4413f93e8dd26c774c98daa269cfb702d3592984a3304aa56809b61f5fa4557a08c8ab20a634bca903f456c6e835cbf23f647a47971c3726ca216014459a96531896c8bfe74fd0eb074d74a085bb32bd57857054629a3b19d0105f5aeb5e79d10b0ce0ca1189756bd74324acccebf80e849969bc008adb76ab38fbb47c59cbbaa33f22759d5f879f178a6ec6e37309a15d70c286d7549fea354b438b48d4e73d6b0584469433cb86a74be82ccee60e4a0ab3296a31fdb9a66116a765e2828f3caa12da7e0a4a0a54d1ad9d141b98413c45d277a4e0a11732b9e6a816e3f1cfdcb62d11eb09406b83c5746032e128cc2897e3243840652253b7865a079309b7ce6a1a5b2007b775a463199c4a90358b416435d69bc7c6ec48a155be7570b7fe2626515a09037a6d9dc449e344b0d570be3cb7b70a720156858d8656c296b54c7377456d22ae66402c6fa7a4d2921666171352f56cc03a76365723682c5ef77437a5d16bf343972c43b10f56c5770cb8e9c2a955e89c35d932dc466b0c198874bb242e511f4f4d35fdb1eeb7c0006fafe38c636dab4728b6725dbf53e59cb8866573e536b4017c02e31c8ed7455c841a5ccdb795fc200acaf1da2fb936bb597f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 +ciphertext: f96a0a1821b72297b925d90cefc3897dfaf0160826a92ca95326c8de0a3f790f520c64b87b0f47df0a9f1b965f51610fb40e05aca0dfc83ee06684e4ea112b6386d00e1152e4601ebb8d90e8892d6b0544a9176d9ad6ec243995749c6ac9dc4c92a3450de5823f458538464f40cf99738623c4056e72abf449d12918d209c082092bc0df62cc599998fc45bd5f6a1b5a5e58e818bd555017edba520b8f7ff8db4390aa954fe592e48f1f24289092f1b7d174e32343a3a9bcdbbd1bc0f9ac32bc0ada8bea6aee13e49b42f51a7958ef5e5f720c7e7a628e5b93c84aa38fdf3694849bd6994435ee77f9f0ccbf397e8e0982e413be93bcc86f90ab1ce79b767c462112e0ef5ef64f0b096fcd68c6dc654a1c8ef18958a03fabf0b0e3146da24b05b0ca3dcbe899491a30c8e0773873e5d91677b875a333b5996556909c8b6decec93c7f116e86b5828469e8e67e843b04bdef173563be03afc1665ec223a9415450a64862a6291bd1cd8319864c7e3fb21a83f5a44cacf2e1ada9f51c45c9bdfd632a4b1a1df427a12d192c1fd9960bda088f945eecd2c688241fb003cfc47fd8ecadab8af704867266002eddae7d0d375eba342601e3390ac2189807684c94dc879783433fde5a9dae58f31d92f9d4b554bc02842614d0e89425fd293625214a136e183689e1e447130a19cfec4a02aea2f8395b302ad34406b5a98fafc1f8ca3bb145c5337603eb96e8d1b0553eaf63512994b7ea7e130d6d42a078763b3593e34a79db4fed6973e00516fce07ae7243cd840463f4886df76ea643a0d0d6501e3876d4f052cc704b45bf2647215e69808b9eeb118e691544b977dbd5f3915829742cdb1960ba4a5c75091d6d5a0cd894c7a25e19daa208be0cc82e8ba1e5d0ff6ef6a1321c7f42fc80a4fd0a42b0c93ff8e48b2b60d2dadc5c2052b2facc783526fb1c28dd506be55c61bbd693521b5043bb472112c878f5a82c12415582853cb0ca8f542fbcc8c459e0880be34515f2aa83b3ead83914ea582b8872aa7e7a5be89b46b23e0a5be37a354d73921c5fbc25d1dfbbb7629bf38b548342451307db877a807851df9bdb66498a3d5f2b3762665285cc23eab4fe4b1bb633c1debef9bdf8a22a49501ad4b508d0e32e68fff82478c4c6a8a3d8c7a2b78ace428d7282c92f55086744985365443d6c769d359571f98401762b736694e352019684790566517e93f51228dc56ad351e420128d8368c11a8dbc3640d372edb0bdfaf18770fc191017f2805c5a4657c22110b2b39d3c3c9611b7a000a186e44d213f9e0204bd142189fe115d39841779dbd9e4e24c04d234c5a9c300176b1199640382d4a6d2d6139a31873d3f9a207463760b81ae17b0d2e796a7848fee92eb44fb77a01668fe35a1ebd679f04a616b86cb95addba35678a7c2c70f90b2b75b3300d3f73d59cc95482e3ac87754780f96bce1276bbcdffe88b40e06ed94fd80e281c63efe1cf6811cff0097ef06f23a34dce62c8b904a948b5d9ef2d8e459a3e83c4f7a2 +result: pass +shared_secret: 8baaf439867c9761e78a64652a383e21682969d18f84dbae0d3a63095948863d + +# Official test vector 88, seed: "cc7152849c98d5fed2813275d32069e44824ecb14eaef425ce017448cd9a401c91c06d0f7eed6d22b7bbe8ba6c429ec3" +private_key: 53a58b52229950c6b8aab3bad4f53abd319322c80414d817966365de802c0f8888b1eb3411256bea64bcde19b9cf5142e5698316e8cad22846d3ea9a4008512ee83cf1c8517789366e358143832624213a30079f2e8b07641a6816c1052111ae088792c7c305e9c442a47697b312945d5ccb417ccaf9b1649bb74485f4c73ceaacb7a69e06647e531b5944d64586a089cc8892ee0094c230998a22c9a1b0230557c4bc3c454fe33e96b9c5fc74b2e051178bc1a0895a782f84b75457b81a905e50ab4cabc57b2fb99c5c9978a9a4b2915459fe8b474b66c73ec2a4f3048bc5387ddaa066c2dca233ab00019bc2b3a89ba4710cae9a8fe1937be7e26b63b039f7e324ec870f2ff3c886ac649048659896294e55c7fae52f50753117e02f93751708037410e3558c87382ebc052d1783314b5956804ddce8c378ec3a4681156fe044237004f2f58c59ec8b977c9dec63678d494a22b76e1d7b22092b16a39c696c7a04def98c258b774a4323ecd6905e3c0267304d94a59028e084d7f1aa0c926965f087f0d89275b88ed075c51ee424c4125cd153782e0bcab7f57e0c038bfb29798df5579c95bdc021bf6a005a599c3ac8317a26d94b6810cb1007b9e3ac9447399db970b5b77544636481434c2acd4a92a7575c227079813447939938125670e9027be04462ef7c00345a26efd3803a26710ba975798102f8452659d2b9bedb387fb92aa038a996c51c92681dfcfc2d5754bbe04b1681c01d53d2957b6327417c4a8f22b80468808d099055e781b5c4a594fa2c57b91a70dba9909824b46944cf553d15a8c0fff742f10127183c00e3c6814cdbb87b88915fdc92a273c364b18b9c16afa3f5ca251a417816a13214a3adcac650674c309923d74972a50114d951640610a9b4278bee19c2d520a23791a136bb0afc3565750295c93513b819bea7b0144472b63e2b76e1909816b88bba368a6e41331881923ee92adc1827d2c292195ac1ad64064272a562bc0c9a325731cc2992d373403b1867746c78a89773035d1f7bc833a0c9efd1142564cb53b494b226154e7cbf86e0cb85230c2d2b2499486050509bbf8340a935a53910bab694b229103158776b4a85113e3b8bf8438fb7950d2db1153627abbda1392560611c72871455125a4984dd743a2222a6ceaa88b3fab2caf9c7bf17adb2e9be841163bd3880c6c1a6860a8eafda0dc8ab3bda2051f6a1bb313332777ac5eec69e0f70ae83958d397a488727b57553a7c4b209e6c6a0d062ae0c988ab89786f764622879be2c227b7a717a3c7962acda48df3c84043a21d2d85564159fa7e7bfadbcc6dfccc335aa3425fa958de87a6fb0b55531b66deaaca5ca251c359535aacc818abf8fcb75a9423e2bb903d2811618f5a696f230ce50ba48eb786b34ae60e8b5d6d477c3d363e838030f586796272728c37eb82773ab186968a0c2d5e03717ca5918dc420be60f77d6aa7484c730bcacbb970de161c525973171e638b73a2b824508f038ac5c5c0b43098863485ebcb91c08b60a0c731842a569c92a077c06949d7865e3f7c8b6e96d9efbcc48c428bcb8ba049669494663d2bc5fe761b42089581ad73437c875b9d89f96675bf09809c797aa612a100811c3131b8b99b3785a4a32c4ab212b5c0217b18a55190890073f2c12521beb9410040129d5947ef96b72c92ae0f58ae1ac236a5426e7a4440aa42c4bd501af4823cb621c3e6374e368aba59c45932aa0addb3473e96854e8a706c510e17ba91b8b865de529cbd093bda7b6ff8b182ef71651035ea6d8b7c00a6f6efb8dfc0b192c44260a9479539c5a4c38cccc6b1b7ff3697e3759f8e1253cf71e2d7c9119b77090a99b3be67ad965919bdac787f116a67b1ae1c7230b957cafe398027596d510b2ce87a73cf8547977631d872ed714193ba7be01bc7e16260b5bb00a4227b976eb5f0dea457d3a493d19494e5219fc67006caa818eb43ab0d80693eb616b8bb9c87c5e899321d6719801a9982049c6a98c2a63800405867251e20c117241e222a1281745e3929cbebc2444b9b0fc0148b81b96f83b9517a2ab24171c5c55898948b7f16c6a1a09cb7dca509a3876aeaaa4ab299781582cebe73e9ba63390b35847480a9a305ca7b4043ca32fa6875b88085115681bfb806268a7ba33bc0dd5311266e672147b089943c2310136ec47ad1652c681a94ff9d09f87e851f1941ab4755538d50d99169ae1bb2bb70aadc0c87ba3d2cb70f1043be7272663740ab74c05899cd7881be63a86abc13ec4e014cd1868c5799992a58a60aa2bbdc6b5dffb8915c3aebe3c9fc8f70ddc8b9b8bd69fe4f1b60202919022af3df26369c190f5f518a6479decd8626e1c16a1094e2dc7c57a1a189b8b2ed0d4b9b0d90662f134cf4325a1867505a43e411c3fb4c4477c74b658d302fea66022505a25cc2a06713fbe1c2407f187e427a0dacc9c0d20a8ff3c4538a71a639a9029f1c826e8612ba30b2de1c63bbb0f70058f13973cbee40f371c490581c5a61ba074175b6488bc9829ad658568304256bfb88db3b10a4fa1744e220ba121772d94b35233cff9f8ca6053a364ca312fe1acde98bcaa937121806b40c972b1ac1e15700ae67441e399bb0641977d058020f205b258a29bd53fc277609c31150a0134849b6b7d4564d27735507ac25bb2164d4664c0b37cd5b9000d33201831c732aab32ef114902104bdb90b638b42960ac870c14e6220806292b9d6d3bcef1a9b6e859516651f9019cbba1c636ee550a72146ab17231f22a8e1eb68209642caf3814a0121565504859810f4a81cd8c5bf10716136e77fefd995a8956d6ffc0a38f841a0905b19589619649ecb2b24ab314a9a85bfa85cc236d19600c7440771a727e6745829cec312346b92c1685507be82a7d3638d36d4a7641a9a042617c09681e0da904a21207cd7b57f183640797142ebb3aad3470b82511bb88c8cd2af6de0a4f789161f7b2c00e2000c95bcb0d270d00c89c5f102b86650e2f8a4c46c052a817cbcd978dbf2c776cc98d53c1f7db97a0f42594ef18b2444a21bb2c1a59a61ddda53d0105489967488046ff8679187800587f2ac8946688cf49e81da406a2684d1a6495d33a8f12b72686482b91c2272215975a484e8488d2b19ae220cc1387594da69195dc47ac1127738bc03ee72772481892734246681b818b16f06943021363ae890ad5e213303d86f890478a91c6d0ae28e95b4ce2a861cbfd681a47a25545c2a29b75946d0f45ba0aa193ca5544686d9f9a802fc4cecdefea4a0b33387825115cba8b0ae7da0d1aada1ce4ab05bc2479b360b6c56dfa870ca825d82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 +ciphertext: 3db10016c2e241fc73153aa86e26766d09c5f5dda88453093477f69b54282f90c00454badda5893ee6cbfe30e559d3f936584dc92c7f15bbacac3c97ce7992815e7cc2a108d7706f7ea8ae3df2e7b419daaeb41e12d97444b8803d25347c66ef410601d9ba341a1ab8a1351c4b59dfb3ba3ea5a63e69af64f135fcd051ce739a339cad1eadfbb6a01cf1de615406e4cff7c957375ce1db25a25250190f021005b0303a077ad8163b777eb9e3f5d5444432d8db403990e0bae063ae06a47fc561dd283a91f3dec6335cd0f565b406e818d1d57e9dd4b8c4983379ee60e3490d23f052b93b3dd4cffafcfe6353560969826d3c8765a1112d34c2c9b0f650c3d7ffed1c1fda47c7e998a0b71674d4b15597907435aa03584e4cef38a5524e7f2c0e270a3fa24f72aa7b84fe46001b7bdd7ef56046404774231e74058dd32f3486efe98c8bb91512a4eb9570f287895cf97b3abf9c71b175f7fc503275964d50c8511acbddc2374c11265da5c9b3c93e2765980d563d46ca5022fadbd370b76249a7ec1c2aec49d9271ec7a78f6e29000f3535ee273ae0b86747193c5b4eff608d6417134a2d0ece1971ff75df89b74d72efad92751a2751aca93691f2f08fbc560ceac102d03dff61ccce343f9074623fae090155002c01c4a70f9370088dbb1bfcf27d6247979f3fcf2a52abfb2238c4338d8a97618210427c425af435a5109c85b444076eeade7e4ca050f9f0aa63e132298fca9492fba45abee24ede0778113885c46b74aa00f14f8ed6a116d586521c7d8204619cac4a946d8838e704e7caa440bf86dd2b5d4cb3898f4795873448ba508df393f766a79e6523a55157cdf62dc2958fde888b3a9955ed6f690bc919f7c2137b9dfeae7cba52f31d6b1d1293b07611892122e8bfdfb7dee37cdda341bc3c916adf5d942417dd05febb73c2ab1b93209ff83443635db372cf0ed96f0b0d29ca7f6e0c9a85f3ca6fae10fd2ab30e99e4e72b7e7813977996370ca29338eab2a946fcadbe4f2a38b4a0c19ac0fe6e3e7681509adcacc4006a95a3166fefd558d2531c908758f79306159ebe95d4635910e257815335c4af464bd48123a2a160086f6eaf107674d248c70fc7c6fe452bd34638d01e99686216264b360adaa634c6efd771d34db91c458ef5fcb03b337baded312b0ee49bb1931f912c97799b5048e96a2c96e4e65762ef5a533768e270302a028c58439554218274f5c12b3a87b789f1aa9962c6065fe1ab97c1b259c32983f856fd8ade0449217e834e4c478c27cb53eb5a9ce7a6f639c5b2a0eeb2f607f3551c257c5deded63ab4ddd59d242743841041f2502c8a1765f9980065d8404b4bc2157baeb1c060d096b0bc9863a1387208c97f6718055216427b501197bbc6803e1937b3bc62d161a5f55491f8e87c31229849d7eaa632d50df9af1a95e913df81580bc858e7348a03606abd7447d0341802bb6112b499f53378d9a9c882e404ad1fbaa09a2f6e96c37d9f762371970150832f3e33d5533d6475f9230 +result: pass +shared_secret: 60b466221ec831f91a91b76ec6bbc29726f65ebcacc96f9e191f57a1399be186 + +# Official test vector 89, seed: "96d9a06f88ff2c2036fa8e914b89c765e4a510b468dee40f914f78858c811857efe9fd0e17c0048e7389e8d996b7e2b0" +private_key: f2b0b79aeaabcc2b79b4ba975e0baedaaa5c80d842364cc03524088c1ca3b752aff7a0ba70138dbbdc45a969c12e36819b4b101583a9e64407932796190751d393a651844f785a5fe92b567c2c2ae877bce902c887555f93b6235d80a23d049e3b9867f6164c1dc6ae80b8a22108625dcc31465703572b3a8d599f55e694f391496ac402e4b754f97b4203e30bf4267be95ca1047b2b67b36c00d6a9a86843b0508440d441afc56362cc3594b9b1093073d4fc6ea7c35901066b25305398f58485905c6f99b9f583927ae80f81a06b5c1404e04c361b236a3a6818613c2245a47dc1a613549611c627ae63e38100d1049e0c6a913287dc810d7546b6ad4891c63c230ef285ecf2a47716c8e1da751175b0d5d4c34b569b93d895461cb2382c71c4c5ac2e53493ef487dd617b7c643d7aa1608cd798854051b02093904c5f3efac3a39b98d6c69f4f02bb7bc62102e326d421cb72eb40411549b13c0b443568bc53070f381b962a5452b7aa8bcbabee0ad090e7493077b3d3db2f9d1b2833462a738629fa8174a449463e39cb097b6b81a95f01237c967c63fb3646a931c063e33a0457bbd8984cd02438a61ccd7af577c041ae58442d48591d7c65afeed9761736852a374281db883f07092dc2b1e52ca803b90eaa3cb130d86ddb67303aa9ceb6098ee45b2e34c1cc1f149cd9f6907fd104ad01865e84c6ed72567b2497b86c889accccefb61a35e9412bc25d18c438f658615793814d93c42ca9b8462568d3e389b08756843926a9a7c0b65b4c1191995bb309117c52a27545f67b8a18c270d8b7a96cda9ebaf08b546097d0dba23f543e9aea0421bb328c7cca3792b392fc53b31c411312a592a5604be84fe7f0b8f393a451ec73b7c831d3aac3d1a1058e17bd68658f73e6970601cbeea3c798417dfd3b0911b364f3bb650245581751bf75400226ab2a45ca5ab5d5c31dc018b5113676a7132c931cf87832ae85c53320bb18904b6d1cb9c87ba1ed007a80166f1e649a8a0c12cfea81a2eb4dd615794eb006dd29713e608bae25c1aa842773d82d7a624327e826786b38f184aeadd49808d5b2c650113b5c36cce812fd95156cc0a1d9c6990c637433f1c0179b47c7389e7214652df549f3724f112626b5d1418698a66de09e6828645b8cbc405a19a9a910d7ab16ad1384b109535dbba89023222f2335cc9c68aae9bedb241475d8c5140177494c7f1b273f64558647228d562131b4349368764afdb054c12c0341fc8f7279234c2170cb7434f370c601053d77355191e03f9d516bc40a53e450323fc76b465b13a6d66e8b0a61a6808822e21866f6bf7b77b9d92c2ced831a594028fe50a5a005d02133840e0696236990045b5920f1789e4bccfa90bf88b4a6266b04ae1854ffcb0ac0d6870e0a76ac5449bb9c9a9a8007ac28bbffe998adf5cc9df03e9ceb139fe293a3fc908366c179004f9f587265711c008a14a44b29c3c6699c2cc57dbc6c540274fe500082e0885db6bd71417e10a3b98c695fb812883d68c0e7770c1ba14d50e5493da79630f35e229997834207bc3387009b5201b4a6b53cb90bf60755a048de73be31338b4ed00f942acd6fa10040d836e12b650c1b9ed800414fe5b14dfca90fa6bb7e350684c3b08656374d54776c312a645987b9c80b28933550922990e2cc4064114ee12f93d3000164c333bc77d566cd91c904965367b2350b87a6b0b5aa7f8a746ffd4576d22083f23c0f3efc4d09ccb86dc4caa55365a8a406add3cba2127ece221c9139c6c273bd4d3b1bc1ec0626b35db44230662cc44af683c92176c5171337746f0f4900b7369df2b705b6387670b411e26288b8680f9cbb0a8ee01c9d0a9e4c61a19f1cba55459b78602dc14ba52a0b9de9da0cbf330d3e71625228a6a9e471d70639b05792cb8550b24ac159c5b069c30740d09065c9280bf2b4f86c1cd9b78357383b2bcc4e771661f4cb75c6589db317058e428398ea7bb88450f22525813058c609bf5b02a3098a619101c092f87aad3881eef6a2ea91a49dd3cdf1ca6952205e74f68ad5c06fc04163a70c0972c4ad752acfcfd5529b75328548c18748026bd7965f73076d4bb8f84159756c879a5919fa7286e0dc39f1884587ba5e124177eacb2a3e96410a64c2d5403ccb939e428b1e7149ca2b3368c11c8e1f38082ab06f39455d55d12e95c585f0098fe6dc44bbc97c1547600d79b193fa838e42cef6bab08d462faf017ee8414c9914316297cd56889207e13e71e544c6793b751174c5bb22294800785bb003589a899a562c6252ea679779522c03a0b933b07f29194c75b29693e27ddc6c4757cac5b9219d98137516c450884c374cfa8572f3b9e27cc706b205c398866df7972b8a44b7f975cffc3401212bda14c0bb9a50a5e5954f9534ee90c0f1f2328c618be5c2166be064d5d0a04392183fc5b3bde635992998b68b8c7bd7a0a1c3bc99975aab55aa39cc0e1d4c019ef73a53485349b58f4271aa29a4c8f8e97935981a83426b3bd0b5edd1cc10458579450ed4d065a93aa0fa734f3206718974ca6ef35191c930ef67819f535ea5e80e54659b1aec30534442e03cb9c4673679cc1cb205264ea53d20e383d98c08bff78447c3335a4c3bd6f0794ba019e1eb130faac0d2f4193a6476cf014ddc988e757b66ac5c95bb7767e6c32ea8027b5e5a00e62c582ebc4ae6738b9637355f62a053737014c475fa24b144b2b47eec97dab92f58bbaccb0c36670ccc9326287fea9fe7dc6a2ecc896652c9606943ca1a6e8688a821b69e33412025e26442aa2f70a68011f8be62db6e6283b9b85651fb8883acaa20885807237a51cec50cdd007b27c121feca8a2c026d82359de6d8b548d9a49a9914ce76584338bfc8f2cb51466414548cef544b82abcd277a6602887e4edc5e09a20b1ff343541c7ff3d4c0641109ed04cbdad8c2ee80ccc3723a3609454b733aec068fe6d28772e388255a87710ab88848722ccb2c3aba63ad04566b1ba4fdb2a2c07cc42c32b18e7280348c245e29ba51b10d4ae840b8f9858dfc68a73215ddd58df30729d2966d11d4a5b20a6d441071bd5083fbc050232b7e594b11c60a5f7ea438e015018d145b979428a899bb53a42a96e081f7da939cd0ca49dc3ee11b0dddf94430014ce96485bde669f214a3d4a88c6e4b3ffed1ab4dbc24c08224e03c47fa2a7d55997c2491717297155e1b1ca09898447ac0153435444c69b3b704d5b99189e346bfad6143bdd2780d2219878823ecff9df861e3a729f913ece36b46c0e9720fd4f96ab2cac1be382907e8cba0702018ca27b28ea8f93cc19c4809885a3b8b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a +ciphertext: 82be6534bbddcc94faf44142c820a882b94880f5264e2cf8f046d36cd8968f090fb2353773f09d560bd169849c2d56729e90b2e96f41bb2dbce40562b1141cfeb35b71f5db5f933ee12dafa086e3125e2e5bf00dd7e59a8438013dda8cc40329f8c3627a609a70d6b58a6a6a157ffcaa326d4a19d7b6b8e7db9f19fba79bbb38a2c645b369fc68450ae6c5f4acd529c248398cddd373824a5087b66ddceb5ee231dbb5950ae431fde9d15020960239c4a526da313ffb447bafc9cb5de05f090001f08bab33f8ea68826e8c057732a95d1ede21a1488e15939a05cf250e577452ddaa73dc4bc86d5394ca0ffaad331300d7d21e506bd3b430ad66db163ce5e2079be92ef4d369890ac192578a01fb1091ef7f26941832e424e114ced5598bdc6eedd0c7c0975079d86b781e8de0cac12929b38658189f53a72e66bd4105a5f7f55f7b31fca748598a230dfa86692b0afc55dc0be8160a8ff477a331cf19b03d1819e87f0b7d4bcbb973c43a3fd7378ecd65c9293a758e079e5fb073cb8ec24324e6a45d81e42cb002bed6590085736f30a3e07f7f857ed32fcdd33f0f93c0c22c78f2bffd1c4d3927d694dd0c7e3788953d1fe41c46ae574f22d14f974a7a4f7db391547b74824cf71fc3a34cb782163b46ee505208ab592ea804403dd5ff8d4b15b772e8aaaa132c1f8993788f07809f86036154e27d70adf575a6e7fd962df249fe5d1838b95e5e9484b8b2c80119ff5fe22685bbb6886e23ab3399dcbfc657773f7d7ce2c81b28c2ee7cf5b7465ba0ca6b3e66306e2bbf5ce75c3bcbecf6f520956c2be1412c4113cd9b3696e64978fccaaafe00492168ab764acaf64ce97bcdcd5fbfb234653a349790ec382f2a504fd67472aacdb5c53b20e24084673a8afa896233982de45f191b32d1e1e0bf7b8c41367d26b439c5c868bd4a179de485748900922c4c9d19455a7c9c7b9d3b67dcd6462b30d307d9fef1a20aaeef1b823038d8f39a83ddd30872da9d7a5980728f2b3bd39eaf1cf2a901c3844dd5a217c64c8cc5b489aeb95520057bb78de40578c86cfc1e051ce2da843942aade897468d65ecfe6c4cb88afdc148166d6b1a9a182b3c2fa4e50ea9e048a78cf1a432b812891cfb367763abf7037a5d06050eac00528967d7fe4c3f1bfec7e6c1b4690b2e7059d20bb8459e27db1b41a972c15f2f9e9a43bb751e8214e72c710011d3d0cb44c79981a0a6ed11d766b4bf071289c65e6234cba1f701697c71317833a772c520e99ca5d6ffcf9d09fc603d22390d6d73e42ce59f95d50dac5d81827b1d58a12daada7487052a0bcb848b8f90ad40141f8a05122fa7b9aef5f792c032c5229e53b3ec9e3ca04b24b02db5398cb9bc0214cfa715f192da527562fc521d483fd4ff440b1a0563135085c8911dfbe26258f4568fbb8117802dc120f9fb973ac309b5d1a1d0e159441af9e477943d331321eadb6a353492db5ba478a92055ccd69dd686b14797c51e6adc3470e62aa1369bcc8c8cbdf932af93e80eda2b2c96c +result: pass +shared_secret: 6a302778f406082fa285c5ee299d78b048e837c5012f42f9a80e8659b10defda + +# Official test vector 90, seed: "d26ce360d399bf7b89dc364aa7ac06bb513eab8f527383e93e30727edc3f22c262aa0ec70257b39edff0630dcdc1b79a" +private_key: f67c9ccc171f6d04bd584a4502f796e5395ae59862dde86fdf29192419a75e1b50222c8fdd18964d750ad5166ec56416c44715c22c29ba8b3f663517cca3995de71e8bfb5ebec66f19a4c7f8098908a93650e2374e483c731219ec68b480b95f4a81155703bde5aa7b5b6c57062c809f960a399a5e9d59c4e2f895bf30bdf60255edbc0d59350a2ca86c18fa200543a1f94b05c8cb0a07476fa556905415cf1de45568f07e37b37ce3e857f1d94ac9954cc9c9237439b9b0179ac0abaadabb2ada8559c80214c6a07a282627f949112218c13fc360e1fc589b6c05cae9c42df2a759760d2c5791f6e4203474a43836bf046cc931d133ebe82ec8b6414918110734318db61739568a0ab42b9642759c57333971c406c6ce9cea3c751c3bd9db336faa9c87108d80c152e51a543546548f1a7559681dd531adb919163c716ac791b5782175913b95f36bb1dbeb4ff0f443b4829deb738f76c8ba26e7a9c06a95a86543c2b95402f39180c08bd0e1ad1741bde9722819a910227b34121ca404cb6245566002174ade638533ab1d1ff9b37b9420813a28fda5b02460b1460126c80614066b2137798215266ee571759b7cb0a0e266972c4aad41612e743a8ab6022e5263d8576bb01959d2f23bf9102cef541896f2523f3422bebb252aa823b2291d3156195e05090c050966769d8774ab08d8314e29002e921aee609e40790b1531300142b9e3701058ba90be1757b5ca62b813a82a1a3654a130a8f38523d84d15d1a59eb5a81f918484037f5bba53a564399de86fff3a2850bc2946704e6721b023d01552737cced28415e819db6b6c103a71db13a9a0e4bfa74c24fcf8452630047b1a4f2c3851e7ba2fd6340e376b7451b767e5d3c1534447e0030ac023054eea4477b290ac861e16ccb00a079e68345fc626cf17a42818f3ba685377e7a1596b37791297691dfca02e02244a3372c4479e1076af237a030ab511fdf60981364d82d0909d81b0fc691a1589287ea99496fa16db4712dea0a12a1814196b1e12091344a27336d80f10b2a877d70550026a39f68aeb97606466735418cd47311ffbbb5affc90dca723518fa69615390401c8e047830f3f6b0059a9a9656a277d5b966a69e8d450bf3aba7477656e67b689f91147e3979f230996c566df9e0aa21b52e46868988e5a39f2461a5631ad35b7e049990a0f99bf39b9fef962ca8403c7453abbaccbab4215c0bacb8ba27a7427806fe2842ed930f4858b6af52098e3083e21078bed264ffa4a9cd911427b707d9832adfc28b51ab407c9c45c10c12ca15226f1036ea065388a1499ce967ca619af1d75c350a26e8673366377887f4b788861979a3218c2b5f3859c8bff841736b3b7f029f3c542dddfc271d3216f9ea9feabc14deda35399cc927d42cf17b544413826875338e8b1b7f9cab947700a55306b1a88fd5901fba92923c7c353fd5b2ca793640a57b42926858953b7b544317bb85e6189a2a162203645622885a22c8b595b36e221488c0cab5b3146ca5d04e6e218d8a215400972fed78c89a687abf95716041ce1f213ae42459470084712b863a0c574b1062f472466947296db330405b8e101c483077b1c397849032230e4c3b97c9c7bfd505e2aa01b3cbcda4096b37aac72b5b50a41aa8f6cc518181b70fd3270561bed0938d964972be491b6331a148317cd548124b7653f1709af074b1fe4424df4bb22ac91bff7c04489526e5e2c82f2973408c4828368b87a7c14a569ed7b58f8eb6cca19088c15031fadc0e5b37c442543e1eb944ea4a0541248496795bfdd56178c188f3642fc0580e70a62676555f6b3810dbc89b0a227a8ae554ddab721c954db21a87fda98477d0c2af2820b4691ffb046ad544b3d3919dce8303e2f27152170a182a756b981e6cbc0b0f00274b521c1782b0516743d17a7d7b4b29f8dab31c50739f68c57efc48ff5b1d3757cd13fb8249abbfc7b5a794e11e5b56b9f20c8e8a5718184167264bae901b3ae5005f796341897542c70545a9b6b260bc13cfe536416a0f5e8440907a4fa1e79a292ba20a461285584d3a2993f2bba8397756e1ac5050541806207fb8b313d0a6280b473c59abc9964b5dae58c6860337eb69396a24aa990349c62aaf8420b49e8a95af404b81870b3c9459acb62749e4ae2cd518e329776a6b68e33a7ac795330a8c1ddf2b326c3c269303bfdc9137ecfc9eda856148ab9dd0a920cac260e6b70a1b500d80d085fb9b91593254372c8e13b69b0d691a508a391b04478729ca19d75b566b472917614a53ca485c44e5600793a41a180697f20aca35501e7215a49f591d376a2dfe4a3e0bbcbf4652710d0ba75898ccee4c5b63514752ca8778f09d737337c9219f4b51a1277964c9e67b92888300cda37c382700a40fc185ab8fec55aa539cf115913c9c73af0819188965e57b326f6615682915363c54a267c27d625cfab0712138703cf709bc5c6b0cbb1d5d3884011c1b8ad8cbd1ba12bfdb8a80e9cfd1526d940233254b5dbc2bb17495b6466c0ebe684fbf331cbd99981a4362fd318b28015d9f3c3f1da328917cb140a0567b4782ec8bb1fe31b298b6533c39733304b5f7c74206cc688c144a23cc72aa491e48701cd7f14fb3b7767a679ba4f4c4e1b778019471bd78bf6b55c2eaf43351f85190b07a66c35ddfa67dadd28c30c5264e3c3ee88b62d2c12541d1595a519897a99bbee0207867af34b245b00185a60b4a9cb92eaee58b16f2977ceb180b32243839487ed6b88f6b94d2d4686ec7b7ea022e6d995c398896cd9876815a27ec77188640a4a4e64b65436440fac565caa10eba9d48824541a6165d0bb97a634e6715abeab2bd8f91c18a3a6e899738188744cb6b817d21cf092b64e68cb6c9747d3cc34d0d294b4770548d61cf53bac839b70f0350994ada273312545462bca9118848a343f2aacddb2207f84a66b08958576069c7b7b69c02cf4f954ce3252faaa0b7bffa5952c51fbccc7fce3b6a0c8074f72519930395d967603d327fb8231c1811712308b914a75539128a658a2eec38cb7081926e94a2903471b79b33adf94456fa6a09438dba6103062c1f5a5c66a8d15b829c8f01e7c1e21b10bed1aac6d142ea94334660bbf448511563b5564acd67f87a26f779527000584b61a65293cbd85ab5f3362bb96a61c922ffa77b8d90acba77869293a03d7cab81b688306546ac348b22e368b8d717bc969ed83a12000548310a929e9738b2448d1cd7d1cab551ae0e7b1c495565ee65f180aca4a38847375abe6cbfa4b55c7baf2651415d3f28d221b291b175340a07843b299a46e02e22657634c95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 +ciphertext: 4c52cf2dce0479dd88f84c76afec867839243ca88c7e240185f1ab343f83a681f936359ffa2d7aa1231b30fa056f9d91e9e50ae7227207c481088cdd7f458d8211f192abddb839c74e6c0ebe22f62eec0a0b85e1e63b631f2e2356c7e549b8c9ef20c970b87169643bff25ebf27344af28808cd2a57c3ba4cc82a6d1f451e8030701de5aa0d0f11dfd9c69396ae6473953826f64ad592a959daf9513081c8059e93f40a24d007237b9f7dc7b423c2d3ec49cddc93b9d10be852d9d8e73df902961c6db0bb884e716b1688fab808f9af1f5d0071d3989340abc9f1c14b7ef8d3728e639ffa7731a5bfcb42d59cae23baa3ff1d95fb65817228393b4b9fde583fb73f464bd39ad825ac28685ed830e5bb2da33784b0bb3e6f310c9ca104da7a1282ea1a08eaf4bff5d6396fb589207a7093b29b310bde1e7e83365208539f4d631f59cc9dfbee095623a0793df4c7036cda1991504d4cea2a7d298adcc4e39f5e6a3519d162da9235d5ddf2962c422725836f59eab03421ca7e7aa4b715fbcf72ddad147cb517f01fdc0998d91562a2771b13809de62031a5972fffe4694774d60979ab51332e8bf3866b15d0268867e497f71d661346cc299d220abe1292eafc72e47e113180afa470a683d6d86cac6880f1f59a84ee590c58c8826a67066d8ac772f86c5094980767cdf8c1296b189c391d64c5682b1dc368f4c2e0d88a6adb43d3340c8d8e9ea1a34d4f4792544166406fd27a0f60038c242173c924f13699fa73be3c0fcb97215503e1a28ae548619684f66a15af654c0d38c9cb34c1c77f1f79581aef0718c6fcb92e04e4d28de7f83cb90ca1a80aa2cf84467b1b7752281b714aff8647539416083dd08b6d13396041f5176a27d7d91e2860fa87fa3b7c4293016c2640a98b3f08891fddddfcd130697c849d3fba3a1e31d11ca6fb5b68b12fd3a5b561d5416ac7a2289e3fe464e7cf0f30ea7f227505ff6ec6f1713a72dd195280c7305ec3469f9c55f4877a9f49c35505779fa1247b5f02da439ec8fc6ac3aff099dbe38e4d9681f65e39c43c29518be931add5086efdb009c74655f3e8525049a6ebe6ed70f85848a4962246a62a45580d3c315c5cf91794d48139874e63ba4116c27be153e0dca53abd22eb653e47c0358aafc19d466e5337d1ab2fe6ae1fd9ff85d6af44f5f8e09ed987c10cef5184cdfed10f16a30c8b34d0c9bd8d69df3d45b30432f578bc40850f12d88d21970dfd20adc0761bb8a37b2a0b9df20e14421311d0489fbbec1f8cc88b08872ab3e129c609aabd2e7d56f6467a176825612dcc9ff1926a28f5eb71174440206f74c219dc27604754f1db7363bce80cb6fef31ecc2f4e5668eaf745317397987dc34705ccd5086a8e64b83e9d4b3c1eaa85074c3c40a6b6fd48a25709846564d4863bf5f416669f1be2e92565e7c76451fd9f31eb81ecf9d57faf8b8b63027c7e7da8b0d140a07beb6e5fcd49a91a0908c33cc3016b165eb9388130426880df40b0a579d5cc63f6bf4b775e9368aea +result: pass +shared_secret: 88a46d35cf07e48c6528b95016aa0c414344e090ee897fd80f26b67bc0451c7f + +# Official test vector 91, seed: "c5856298c3cb6ac9787a0f30938537ab2635b96f6d19cc9522063360e7a5c88e644929d2879180e3e5bcad2422b7cfc3" +private_key: 619075d10644e5f5c9cea8446de5ab5c9ba99ffba41a77cc6698b06e59aff51a688abb284a6c26fbac9ddc31bff11956651c149946797bd265338376144b67693c60db18450db25d9354a1d0d99e2e7a5ba1a871e7e60df77115d7e08aa6b96133e0af9050b784834feb9bbcd0374c0116cd0339cbd3a3649a713ed3e1c185c73a693482db86acbb2688f2c622f8abc7e4041a767698131012f51b9719208b76cb019533798563a55fa7009786049c79c8e617246aa98c4ee0407e0b262ce771eac06ae8c4354630caa42b2c8495481bd640d7a65831b099d0142da3f3239f3ac555ac6440f5b14613147294b736d7b84c035ec8b8a478801c3460509989ac71ba5163618bf25212555bab461994d58c95c3c492df3992e47687962358ad8629b8b0c9f1a1aad180b2c84a7788953145a885d388253e77b274e9c7e9b5882e386dcc9c0b34747265444b8dfb06c6944d84a9c16b9929a19451e4f09954fb2858db2e73b0c940b2239cccc167a60c18212967d7c262c6b06d9566c65c9ea1a86d665a802f5c96d75b67b93c07cf914ec50691bf676276652422a21840db291175a58da6246d5915e321ce3089ada24791a7431dcf4117d3c167123bbe4e9c4670d3696cea143f7c1f12036c63c4699d4c5a32734e85621311c4b826666dfc4578ba4c953d2a037ea1bfa58780ec1678be56997b9375d74966cf9b01a6669ad2dbaa22a26b24a61e2f982b21e9a734c88a32035edb12832f8b59257a0a84b75cc5eb2f7d194d3e1581d9e513598c0cdec0450a255808040a69db3a151c3709c80d55b985e5634839700250389d5ab81f04757a15359a0ef9263f2ac8e152aea3d60e310868c4a71b01761a6c041346d840d1924468f41553f11a14846d694b3918856d0c485562a95071f31b83ec87f3a50ebd89146bf528592b32bfac5dbce78d14467fd873549d998a8f623383861640581627567cbb0310b19b0d554803fe4202e6d41aaf0c58e9f12b1c210e1afc9ffa9c6e18381030d9442a41793bdc274105abe23471dc2423547ca8c92983c0503d1a96b4cb44852b18c5c4f8ad53010c0f3b4f0ce61ce407556fd09814f2563d64134e082be7fa574059ca964b3ddb0053b89627a4194399d01eb24b5e4777c82f7394d95abb10c320032814288799cfd089dbb8ac6941252af08d0248cec9b62b124abbc4a09db3f6188e28a07329c26ac38dbf108cd7ca28dad55514e481969a0f797a341cb05f617372046a68a221b3cfdac744b6ab6a229fdb184dec4ba266952836077129d7c1dbe0859b573f610995feea652fa35c4026b26f194d9333091ddc0fb39648c1b1c6dd69275bda5f4d725de01068abb96c418c283ff65a4c5256df2b2698d82062616de5f93fc6d5005bd449b134361467ccce99bc2dba54a65a6234851fd283b9b77ab43dc40ab1d3ae8c749b9071596785bf53e34d76910384e1a2ce38586a628b7b5b4c50d325a3d340dfccb929996c601969445121d39839cc1ac168236f032a656a01016db1109d9692c81bcc192285bc4baf0ed03d9d68849f723dfc630dd91258a2636bf4aa3c5fb429b8a01074f1983de27ce91513dd44415675597c440cbeb434f8723891f33ddda5b9ed269034b722cfccceae14aacaa81038e45b53518216ca5c332bbe3117beb9ca69287a19dc7a078b412baae7cc5181a389b121bc4ac5d0ca67a97248d8f97d7526063cd88219c396ea11435e5c1d61dccc963444b35c99c86b87e40928b88c47f64b919a028ee601229e5a01bbe17b600acb7449a291b131543709a2b8a7d015419726563e366324588038e71fc3714ccd0a68fde524932496be0ba7adfb6e15dbb99f995419c8af3db630e22393bebb25819159abc78c435342628cab40a6350a8a86d1b1a93f6c9151f1895c4674cbf76313b1992d82c6db218339292622807557f458ce057ec1969578379b75d1bf518976b9c69dc22008371930f06b4d1d2465139bc0a62c1d13db9282c00549c45cb351518df67ca3ac881501c3272b9c6ea1a7c527b0ce8ab9124257484b341b2200b49029e2624eb37b15e7d5823a3ca608f09a5fc590dd14cd2cb15cd238735d25bab119b06026884ae5176bdccbab3550fed9b8d4a473a3d0a47a5c78b7b16b880911c7015a7ec281e3ea03274c6199b345db21c0b0c541962a965fba799840c01409463d138977d9bf8ee8bb3ee3b80e021ece71ca0c6ca72f614706e0941b60c3c8c263ad8187a5d70e98740a0a729a0d07123c5b95d553cb1fd086d853869b68b44db974f5161072d6b1f2a18c5f112376c434b9e777a597b6304aa0d1dc3d2f00010e481b9a9aa60e0acb9394cd554a047a6262e4b32191e875e1688456a1877012933ffa51adf131cbd47c28535595e7bc0777b954e094d6d62a5f67bd8b674abd34500da1a4c94bcac04746c4234314e16c1320c48d714481a43c486c96d183b3ea54b19ac54e971710a293121181a16f5bcd861835c78357ea4a6e8b9b785c085545c85a36b3963288851a15abac8a39a109d0d092ac3ec60a93077486d7920a6c274e91b4f04a7e90d724d1e47f65a9cc80f806b20c98d9867a705472738982f3c608f61095548552cc01cbdf10c34f10709a31aa47a27807c74b9533523912637b1a89d8383945dc9553e9911f4b012d6c397f74c250a70d43db4aa7da34df3c9490109fe7b1561cc25f0f37907fa567dde3ae9da24d425a7fdf35b2e61241400783bc2ba3b6098d6180b25194912175548453a669650e9007be369a2181e1a46763170fc995770627b6e48903f574f06037d580ccc1649ef6eb1d8be40392b86377532fe5b55bcd7177cd817701b4700b71a498359bcaca6393710105108c6c33894a41bd1e4a659b22c76c58c0d2f9648b8908397b2d30e9a4ea60c820aa12a58c3aac757ba835483f02ae08f7c9ad8b593d756a33835759f7024867b5d98477eb6cabc4b7397ff52c6719cf73d42f00a4b362073325d48651c2088fea27d540884851cf95f1a85626642f825265411f8b25067d98b5f595482d767b1c291a9e35100e49af47a71caf2214b592831d1024f56818997bcf035b1ce53c5213aa664e2226e83c50594354aa7974d39b09860b3560a534db624b9a595baf31bfc40978cb2903bb549eda3445241620006371b0f7a410e16c828c6743846ab3644413c8c995a4527f82460e112dae7a0d0a963b87e38a66e07290789200d6018cc7c454ba7bd5e56d7ce2d10ffa73f2a284bd579dd64e4229a9f36e58fcd24287c47316b08f9675fc6d1e3cc4e0eb62d31b6b4f10022d373d2718f3d20ee1cc00ef6892d9a0e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde +ciphertext: c108c9fe8da93854f9c97333667b60ac6d357747fdc46551636f9715885306d4e0ba5a53950042e82e2449d8f871c0e69fc5fb2dd0890c09e4bcd73800728fe9f3aaa7c15a7bff2197f3d9798f8c7a9308ee9b558c6698bb852d5bcad36ef859e9f20eebf91e4eba3ba96f35a3e15bcf45466b0a0c951c49b0191ec48cbf0dfb06c07cbec041a09f93e98ac30e40757531cc7eb29725b472e4ae51d4dfedc5b782a2bf0ae88db1f6a7367bf0fe7aeab49775ae121d1f568d3a69fda9f3192e6cfe5de967d884247040a6520902d2e1b0ae32f388f4d9235510b3df3b3f3b8fe69b4917bc1990a45fd6d8d8e5bf2cec3fdb9e23dfdd4248c026b73b2907378452223a10d8bbfce7d557a40da8b4b444f189e2895dbe530493b582f004ca49e1a5b103ddf607cd25a0e20d24cd72596349c7dbb9547cfb14f0ea75af088563ac29f2cf3c358cc5c2044fb22659950fd36c4a5d1cfe534e68949781c256a2d912a739c94378339823b039273c06719f9542d293bea4e2e2a69c5de60d55882c969439da1a1ef4403b4af0068e1971c9669a88003d6b7ed3f74228f0434156f05d7cb3b82470381d0c9cb5dc05c978c214cd9e8f7654ec16e4898aa61f3a56346d697ac3d04ad0c7bcbbc97e6e86b687370bc81fc843e329d2dbe7a3f370042893521117a270d635b816c2e4d651eabd4d8b7b3b64f27c0f04e650ac334904064730b24c4796f76008847d686c46a667c2d08a52641358ce681810cb801fb76572ae3034547185bfd449f7dcf9ed2214570a30726697df678cca570a4b137e442388494011c990e3b0efff39d4983abb2d510f0907913c62df29eecc5fff802e80f7d2314e6adf01f74b265a257d829e0b114adcf5c968540949af35dcf9e8b39d8f0a70480e0c90b5dba2a6dda831f856e7178929bc54e632e323d87815639b17cc608a269a37f8a0101fde51a04dc0fedb4da16470f9ddb9139454b5cecdacd9f5d1a2c693f72282113c5f20d397d0538dd4938c17badd0cf0655fc373bcdf75a140746b38ae9e006a7dd80209ad50cd7b84921e85385f8b863492c35bb7048e3c260a45daba6fc44a901880e8ee91533bb0931a48c029d773a463fc07f6d30d022d753b149a4dc0ea32089d100b57c8abd1e6f98de0e8d447128637f21c0912f6cb12a47c7224442d835219de4f466d0cd65ee82fa1e10b84b0b372a307b72d3de3f46df0a209486b83679902ec621d2ad4a81a0b2297f70c88c882e0666ffcff459b87966dd55a1dc148648e619ddef49947690745c7794445a2b8b0199d61469eec9c3fd23232cf0b792d52d2a0c0c54ea11c29392b13a7c69744d85aa2245592adc717dd1016a64e9df28864f267ab770e32aa66b3ef4d8c00903c2bd10d1287e3f4696c09b6e3be2f513d736cb2950935a2ac517eb5cf229aa6914b1cc360658d9e7bfe1bc2aa49ff36a26d05fcea924b8fefc64541aa3da90ca5e2828ebe8f9b4ed2f94b2885af83aaa73641f9201325d88f9e2a2076b87f532693fb40a2 +result: pass +shared_secret: f3c5586476f4814a2d3728a6f0ceed7d19d076b790d3675e48611c4b8df9702e + +# Official test vector 92, seed: "a28ead0a08e7228aeff602b16a1e752278b8ed1e91dac67994f5adc372e1d82f95cc390cd97ab9212275e0566c833fd8" +private_key: a46a88df4035c55137522295e986cb5e6605f7da81fc0b1f29903b3d283022db4f8046378fca124f5580a1dc4535e64dfea6c4fed63aa73960b4e14808383cbb12cf6f204d07f852a815a793eaac2f147d24c53e412a21a7550ef4e8122f46cdc9c560bf725545c82b743041c3933eff115d15746f3fcc5934c132af7a18b2a37fdce899e9c1cc0417124f0c279360c311a08cfb301655483d7f92853274c9f81683e5ca26283527647a0ef6d09225d4af7f1c1ca7563e824454b4a2cdfb5c582c498b4a1a1645553bf7dc30d6a56e0b7ca57510aa315818e527a64bc1b7841801edab2446863d48a53dc83203a0f68be3fc498b288e8457cf6f8132b367a9529bbb814151950c3619fb49d5888aa7424c30d415d08492a7ca50e76b56fb18bcc1ca99c45ca066340ff1e5beca8c51d6355504496e9e4a407ae57ee5a30f92ca1e0d3298bc252ed70114e426a76c5c08ab67304550cd7eb6366205b639b30da30978bce2c745283087c9ba87d3273df10e3e2573479bc205824aba06ae5fd6171355a73c771939e767412333685c6cf9cb622554af01672967bba8e043ad491568aee39e35888a4b996f6279223e820f20f5c95a6a66a972cea5bba874fb018cf05ae1dc60208510c85c6e3211583c4c21965b27817982e1165b6a59017b4bbf3db1ba31d95f14bc76c104c1097aa3372992026035e89895add31669481b6c558842b3bd1ab5bc9ac2bb6754b0a8b07419a35096b2365b60b317571674012eeb7157b233c4a1d309bc1c4c7fc047d5c3382dbb4cf65c9d9a24bda690c37d47ab27500ba5748a0294c8c9fb8acc8b3d938270a73c55de662544c7c576c73a2bd9cc983a60ddc0152be508d341a29595a40c7b617d6bb45d247128505a930a4bf9194ef4e27fa9d9cbcc55c8c9b4cf675876ceb2bb711798c850c3e85bb9e84bcc716195264737c03b4b2738188c0922d50ba49c01b4fbb85e48ac9e02739fbf556c5d5210283014ff280263d7c5353a0454d93195bc4b8ed41551b10a7a19808292c73fd63e61840d10f5c5b2853ee55265f78cb112b3a3521577c90b2744d855b758431e71816fd200b47791328481c49b24f991c9824742da7043ca2b47b7449126533adb1191d4ca1e3779515eb05e9c57c383a3bcdd991fae460ac8c6983e16484d7aa00aa12afb778004366765b3ab6365737e7a4227e7b5b7729bd9086ff4b64cc7ab06ad353c6bb24e05557fe2d60436f9596639abab693449247e881827f0133b9c1569baa2bf87486cb1fa0dbccaa179b397b01906847a970ca28f29f9a8ec0a0fd0a6c02c52a75bf7c3c0c180502590f3766e56556502b1a94383866082681d564b333b852b180c91e6873b143f8475a3b9d67c1421a871a1bdd3c073cdc16f4a717084b95528d43ddf2870ba2a9689310d761a6fd4179261f219de4500ad4b186d97cd1074b71ff893b3d4c889ccbc03264540a26b8ea3551dd86d77c29756c6972ab87ac9d07999f0bdac8a8796c8b83e9311b1a529c20a715e382f21e64f9fd0624792b818d93eb2e3be8cf8bf16793aee06a018eb86ae09292d5599ea78a2553a52793c7148f12762ba5df79b5242249684b1716b818498a5b82ecb47bc7c78372b75de587297848724335f44545a35fa11e6e1208ed4764fb8bd4af9712e21c8b3c99e5a04432ec7c0b3200384534aae227c6400883ac21ec5152380b458bb69c5ce909842d3b07ef2c539c44a2df2013aa97a08b511e444996144cff78ca394b5440f4aba566383b0375edb2544a42c4df25b6a96e0263c8962bf9b716bdcaab098b41f735018735d8a26ad7d93b0f17452bb64180a572f75091af0ba9b3499a134e90a167ba72dda62cfdc27e3234b1412115ad0463da2600dec2e7010b1fc914f3772c858c80608244cc014a31036a9abb68946b51354d07fb914bf22e17ea21854ab778b67b40cef331cf8374594385c28586dcfd5421d1a008634b006965f88d58a5cb449f52136d7f82cfd0aca3b6355117b15cb51240c6a239ba26380c55abe19912be90466cb701d4bbcc5e138c525bf28d23cb2e0452927873c17c7e431051f99a6f585b89facbf71f594b49ba84c7235978aaa2baa1f9e7496509009acf56c5d09a4c53b1cf2845a0d0555528c8c1d287ce7e0aa56e85adadb89440305eb942b1fda247457751fc1b5b8811fdaa95592a047e297b9418c52f0189ae8a21254f838deb89360292956749007ca73581aa79f37116533068d2425d5ecba7447b7cc5729d987564ee3cb2ccabb6c31ba24375304a70638533c67bc6e53c51b17559133d4aca5a6bf44c635615a9881e25e4d137393b76b5017254970b56ed13f7aea587458a43b3435bb018ff6082661da9fec065c0ec23bff1b919633806a835139da4c4d34c6f4567daf07536eec3d4d0347f3abbd7f32317c33c2660393af455c2dc506ca111f48da051d8350edf5590adaae9731c2e301a824721718968ce3e66be430b8db293a22859d68b353dd45467c85ab7f4baa0d5b2cdb83c94a895a58e09e9f249153f25fc6d3c7ef50b1929b197128a64de27c48041e08c26d64b8c229cb24f9e9667aea2a33531d19dcb6ada725eee88f063cbc749c2e90f989c8f0c7cf6bcda814bb2b321f1862b32cb8294e99c78ba21d86a402a1c8c3e7f9a11f09306e588fd1856b7f5c5eaa768dd72793a3a88d35e931de0bbe0bbb697010b2c75c3308649c1260648bd3a6d6e57c56e00d5de7270d2c26572aac88e08238658332879d5ffa005f7c8db415403ae73ae728a5f3bb228a326b05bb26a0c91544d98db8cc687c597ae2e6b142b101e9731ac8c20c7eca11887b7fc8886c304a162b30cbc510ce54ea5324dc9b82f39b0d971dfa69b81ad99d49bca9e3449774985f5051a7eeaabdbd33857741c11adb51744539b1095c1b32cc99f81a0ccc6dc88ba829b11025ca5dd3353639fb8148088763ec9e7c14370766b918e93d8839a8b0a34d3090933df3a86e3976d09776a0ec3229741b2155b6c7ac5431421c7b80812523155c9cc5d890268661501628231c1c660583829e7b3984bcc8ad20632c16993673818f7ba15a5064aa42cdb9f7b0e0708328213388b06a04d559fcd83a10913c15167363f997f62b6a03614c46b9acd703be1a1b641e7910ea273022168352c89cd7616d7746983b3b51d57770196a68a50125f1634faba0c752826ce0aa6448c86fa76c6a3e2390840b0c7f333650c53e0a998b66b533746765316f08a94e18de52516228102ff16993ac61abd8d7884c9d162fce2f019205a2106acc8e3e3465b6fa3912a06c764e625cbe3b95dea6c881c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f +ciphertext: c408d3795c6f0f7a0988a41adc92be1b7b2c00660a14247df3bac9b4e8ca4090466f23a9189e7f0b5bf4a012409c5c12af873a3a847d7bd5acb26ee7269c348e6aa5ef8b573a9ca82b374a00beaadb827761008fc179f7562b775e3f4bc0d77177160ada66ecba30883ef41607a8268898ba1035ec901c7e1d33e55f68db91dfb45b7854ad2fb55cd05e0c72c425893b683fff38bc36278682beebe5953aac7551a6a70d0a0294e393c1616b7f2f63977f7bc4000664faa398b37d343683a8427938e89485daf409e5ef668705dfe003771075a9cee8ef0c28bbbc2d76c342c3dba1631acc1bff3bc9491ec686a68fd17ad432cf1f968ff3d83292a6ffdff0ce18750ba7014d0a8696f2e486367ce8fcd3cbb56eabdf699a966a156706f26c13c63a4941aecedb8c51045157a983e2dfd02085a3577cde0625da2350adad889a8d295d3a06d39cd42f42ee9f1b526595c13aa40f7e7407b0331a61e7f8c6fe070ddb7ceeac934a78d7df2715f5d6830fa5a68b84e089aef3a706cf8e47bf78d928759081fca7f59ede7b3b4a1d2f0e7dd4fe5c1e613c51f1dd25a282038d5d14d5a59efddfe980a9841bf7c8a2a7457c25805d93acad001cfb3a9cb0e6741045960f2d318e4a2da3c0f3440f4c43cf5af31d5fc80fb6f9a4b2b510a35d43ccb99ca15e20fdd7ec741b26111bfdcdd6a4dd12b2f2a63091d10ebd5d56e858111dab4f3c233f8425e749afebf296015fb2640fa42d559d90e697cc0bef441e0086ac411fd18c03008b25cdd4650b59f082f1ea6e38e3edfdd1cc848c0e80afdb8bf28e7ad7c9599b085456f01998a048b474499690e4258882ba276898a2ea93e1e68e7b8f4540eae2790e71e114e11c33ee917288b5eb8cc5b1f73b488916cbe2c504c24226b973dcc4676c8ffa422247067c8ad5e47ef8c3e8637619c94f6661d6111652fce115a2c9aaae625226522a81978905b98c659ba830e3efa0786be0166b6cf6d84707e29febd0c57447df8117d3b549d55127b22fea805740ce98268388057573a91600e7ff40061f3b0ec285d0ed684a8cf703014ba54238b28b07b539d63d8320a92eebf9f97b42b0330ae498456f507ceb200a953fb8f5cdc36bb3cd8cdf52ebb955269300642442e3a7aab1fffd31f85148de8f3b01ec857c7e10cfc336e8f5abe8f0e2e3442195c1406614910216225a53d8dc28d7199bc95265503a75341e6ad2ea37488a71c6c893f65b9265cac3d6f47ec3e49785a5f3f9a52e02af1fd7fb14e635bd9c3246adffdb7910420c9d91aa882dc700f47e575ce71c9d155262c123b529a2e1b87afcc8b5444f180e0ab6e0e272667a224f3d59f9809cd7a894e30012fe4b697836c478f8222fdccd3755828ef032906f0f0c03a463fb9101640c7ad2fc8eb4fa1112c7065b038732516626869e8124685bfe4e6fbe0bcaf6451f932d700c86498738fc43a1f5d71952caba8639cca30dadaec99c69e36e13a4935fcf13531f9f3095f06d877e9798c65fdc2b2f24ad08b1149d +result: pass +shared_secret: a828fc1446ff04a950e4f551e442aeba279f44de0ec5296fd981bcbe6ee90d8e + +# Official test vector 93, seed: "92877d706daf88ef3412eb143db8cd91bc047a9a43b7acdaa42523560dee4c172697be4332042fcab91135839bf74ab2" +private_key: 36059bf728aab04b86ac60b0f5c233a78a036beaa04a2873b71a3e29272e922b4537f97aef0700afa68b6da877b25b1ed143ba6ca538bf04662dcb500466a70eba596776c6d3662073f20c7582614eaa1517b5578378069f2704a4c5836a55006e054d623b6d04d48abd14570b4613f4c155f9d86c8c695ab9a2744e40794375c07ca62e1a3269104bb9ce60c8e2c6c3f9153ae3555a3a35a1717739ccb195e315400f3704c7c839614c4cc799a4ab250af448b70b871a3a1b8aebfa6278f6222c41aafd51bfd126032ba90e8d103e64e1036fa72dd9e752b72903d3b45443fa5302103d041b12b1a2ce0bf7406f81812807764ed435074a6a55dbce1065913deaa3e7164fcc6419a0d0cdbfc314ab66b2bd40a1e2e0af801b5e9a22023d1c797f49a345661e9c0352d9e880edd71b2e4a674265b3dbe4822738877f305f6e59bd5e4a4ba8aaaedfb28a87733411da7981f458f09a0d8bd55446aaa44f382b4bac9b08fa53b6932337b438744064c7dc9b5e95c61be3c454590df2a88565dcaea473bc3051a08bd6c238e36ea4d28064814c5d210c2cd8a8325230ec330063585b8472ad1415725b51950c171fa4c325c9a8795ad3585e515285678aa43470af7705d800bbfc14a9172b11275471f0948dfed89782d2a214095f11815026f202e18cbccfc75b46763cf37aa5558a34bfe51176b904025b16a08a07635455a01b69820541336a0397abc928e735fb969321216d17341cabb82d07a6a036d7cbebbaa1b7771497b329d67a9c247b6c31798d47347e41a425d7a5b3b1f38d914364a5176ffec86a8f743528179a5c544faba84c48387dd3264423bc083da506b356a51efb1d18da3a5ef2361ec43d2c80395d126097a7a5cc6a4354699017a7cdb02a4823f8327d729a89c1971f6a8646b92d1d38031e5c4a29733ab30063bd86abe6bb19b85687575b85406861a6a3c93085501f62088e245f25c450867c349700732578bec2152746c724a4da7b5b0a0a6df57a67341acd911d12e2774a78a6f003885cf26bfde0c8c1c24a63f33e5444ac342451e5f51820217fb20c14a64738f43a5aade60e3367c3d1695e409bcfd3e57885d87b4d19c3744ca797b74e1af7253613aaa5e9644279ccf963a8ab38ab07a1c8ec6558c3b6a285b38ea34acd49c1a74f3610745c8cc3da36202c6363079f3e252157c8882860a1852663a7b4416d33bea9a08157f61e5ae8bf3aabb7098b2110dba39e4a681eac0e765320d0fa6a6bec730a1848d5137a2f62a7b234180cb4b82568202b59713fa38d10d6c6aba1be37325db36896b80b0e6b356cb735c004d98caab7893e383da8a467c4a71c0e9316bd640f226a68ee2c138b8159a6147c9939ca45304b5df944b377ba4826964b2b86d50b9edd5294c3da3b2ddb02ce786eb02b79e8850ae923cf8b99211ba97806795c2bfa713079ba7728ba7b94b985728b83bcbd64f26a8d5594fbdc18764307a9f66a1e2b0d0d290cd23878adf03e2ebb9f0c48c9132835121c61709a740d937c8010a866f494af723d57b91b98034c6af9388d1b7dbf264f775462a5f581c0ca23c2d45f98c267951b40d36913b23612091000f49577eb8caf83744b7a6917006162efa4cfbd499b8c853e102c9639457f66812d58383e629a7522f1c683d48d8a216a0aa82454f29732077f4baa593de951857227b976a35a8013a622afe355144b63bbbe58265287cf6d605421e73e7df7301b59a885821ec0314ee76359d9d715eec1c2ae726fc0592ee01c1d45d6c94c76cff66bb3bc321358e33f16e1ad44b35e256bac5ab519e404c3cba647637537a524849cf952deda7940dc1c3a213d8c13580ebc10e2b458873ba5cb30c00d855530b0b5f86003a2c6641a72170b238feddb624f9660e16a9c545a0fe8102612979552f311a9417fcc8c8768280a4902a8ae696131c76338097f0c3a2f8731ca25d55a21b619d1c48550371cb2cac00e27c8ab9c8d7bb944e4bab625eb1bf7c55f0df84ce67c48fbb4438eabc818cc2871c619222a0c504c6898c31b9e859998911f4a29000e4063cc0a5d13975182c97047520a3fd7430117b5d0b2b088741690b5662a3b02978c5a2f1c330871957c5c73bb5a2fdeb0b5f3e5953b509b2887435b41badd607307941aad1cade20c4a22b80683b80dfff1bf82a4ae80eb0915190197c1ae23145522c86f86955d0d3b7b4b83b019123674aaac2b4138e4b36169b1784a4bbac8570aba1acb13ac0ab84a6bf987a23ec91f7c6c2dcd6b952c505515b4b4b1e7c749e693ef4a7dcdf8b7e2f89168991c0385829e46c7faea3c7fb18ebbdb333a4a16676aa81daa4ab519638807bc977729d4474f4c068897e77abe636df8525c35e7c691b49c72e50bbd8570d6b888041380a6a4b9a65868f247141ee137ba422807a57a9389cc195345968086359b36e5316c594a88959b7b006abb88d754bed942230b36945a141d4810050834caa24cf58747820a6aacdab186bba056bbc043da570f874eedd29718795ee19c9e8fd4378fa8a42ba6812dc51874cb0285420419d408e897a7f8fb9ad0238ec632674440b66e838fafd731b50092324a9b11a545bb9a9d7a242d54c6bf897a080ac0b06b57535e542d254ac581450d82d73ef779865708a2563c86e4cb3133cc5fc2e16dd2b043449a73e59a5c6a29a227a469ce406192ba4825e3503f3552f743bc3dcb945048a95c70209bf5c5efc76227ec7d947a19dfa0af12b078bc588c1cf9c1300961c59ca8529c357b9087b572a8bd2739a7a526f3d874e6e2a23c4242bdc652569c7ed3546e3e85b7865611c2cb7ad551142b2503e14c0fb8220755036f6bf95de3f1440598076db3410a4ac1e52c91f038956731622df255646ca02fe7cf1aac75d972a5d744512b4b498c666ca68660b984bbe6a1833e83caafb80e17ea49c484ae2b6475d2e276e0c9317c47090dc9bc134b606a6a1336a40881d76ebfa954dc550cac192082e1aa81f9a6d9162b038a021e09b28bd0b959884acc836a4a95100fc93071dc474e593a1d7ca409001b6c40c3fb13a5b6640a32da0b6db086f1691614d935c29b67d8d54732948dfa27296a63607c17973b764b9c05713bf0026bc0534b9187fe33690826a6c80014b2f97312d53b3b22aa1740b0a47ca8807145eae577c994b1dfeb19109b5b99019329fb6adae267c2759fdae64cf479462c4185ca67255971aace8351a94501d772b15890042363b3bb64b6373e44c5bf6ae2caed5dfc3e0f0dca2015579e6c6366833e834e34f198ab5a3504cfa0c6af6ab78de3a3ef5667e6065e084cf5d2a5bb32c06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 +ciphertext: 71f6bf72cb74390f988cc6a864a48242cee917f394d5b4da241299a2fab54da05f57393596e88605dfd86167372a80e04af7623b1ef0b07b0c0c9ae8d58389b27acc0bad8e741f2d8862229dd0f90dc927564203ac4627fde6a32d5c6ca4987caab90b659e6bdeba2b4b8de3a53b7599dcc8d8910c8cb5607a9cedaf72f5bee023ee24406e1f56c4a8aefa3be2d3abf378bed42d772a85d3ccad0b698ac6abdb856449acc3838737a5a09ae662c5a4d58c4ef6cfb1fc6fbc5b189751cb003eb8d41873f04ccddf3ff5b01c77e6700d859053d1f920d44a83f42b7982cfdea3d9a6a8c481f92360c8ff14636e55cd76896eca6a38f2944f6a24dcbf55a0aff14185ebf4d8ec0c24decb27450f6253920e112565c43ec742e942cf9d6087e311cfdad256ec27f22e6a246dc6be2c245670971d8cfa3537d6cae449fb07715f26562cd52c5d50ba4a2cda9c5f967a5e9dd72a115b9f096eeac949bf8eb3a331701652924266e8a6d6dbd93a8705a4d466a814da93c682e971c7ce8ae48f149ef51385d3f9521263a3f39fc33dfb3185d34f4019dd23456972296a82b6366b77820affbe68133f6b68dcde6a35f5787fb5636bd4babdf0dc8a590b93f90f91b52324fcbb9a529911cb31f892d2c81d3c735840032ec4e8c2893aea590fce1c9c6cf3ff5206863bc76a3153c1b49f6fcfffa467cb8eef2a98c115fe2a19c01ed361bba1417fc253ee07e7cdf7a6bd09eee099968e474dbc314685464202b3e8d4ebf6570ab30191ef3bc737544f927d6e1a1e4fea26f22845312c2f5bfdc8131572977c16655f30c4d257227ddd7c1006375827368bad4872ed2fd95249c6673ae8c6efdade12507d5d8fe278b65b8c9d0369f01ecc6cc6d8954b0ea19c1721ba535ed605c3777f1ca62467d163d832c4155f81748ceb1c501c42125d918ddab71d4bf5e94b3215f6fea85ae232528c6e5caa8ef8ad250930031bd62135f66e33861ff62571b16e51e1307ffec33062ee4c649c659bd0676e87857f015f9dca2989f4a30fa1ce540392ce96467063080d1667298406a0b1cdef7db896bb2a6ac9c07c435d25d019a3ab17021ab4cf2ba7eb03ebf33e00231abd2655bb69070d6bb6535dbefd40bc299fcc9b45c35780a6b929ac6016e61856f13d6f8afbebbf9fe70afaae59eb6549ec30c1b0db0abc7a88e1b917b123a1faa6a8ad5cce873e20a0c2bda1fd417e49b2afdd512a2bba0db0faae498227727564053f9bc7e89a40d04551c89abb48fdb723643a5dc191070fff978db5526064405f28e74f9769e531064eefb370edd18cc54e2c51505fa2a670358b074c618447c53a990d3b4bf4ec893d6e35f19bdc70fcc2e4a881772cf0cbde217b80bdfe495454ebfa204ddbe82d1d92e612db1a9b994145feb30f7c3a6241a0dd001fc8ff0ef025464925b0ac26df6356a95558eb5927a8d8f360eaf2d140ad74069a0a53aa9c3e4b54b5cb51c939e299567091a8334f19a6104439c96498f06c057f3bdb4a83880ea8d77fe254 +result: pass +shared_secret: d98b18f7b6717b8f6b3e331d6d8f9d3633eb70f54133a78e2345138420edf89d + +# Official test vector 94, seed: "bb4c0082ca4044b1ff60b036c9b0e0495d58667156786c530bc69d949a13bfaff53798e456423d7a0e162a60039367d7" +private_key: 30251db04b83a5b5969cd3354a375ca3003289d59f5197a01e2b103162bd63c0ce71e9c5b0259ab5d7ba48fc72fd3c90a5132d3b0b36dc9c411fa10bd5b45168aa6c562405d478487545b0c4034f0761897db4cd2dc13dec0253acb3051f71b170a731cf1c0e5f17cab24b64cc7682a2d4313bd23cab0849b20bb094e4570910ae5c58989a99880107ca4e617e66020043874eb861a0f72b50a924b8a4bb021504cf299b08b610bc14b0ba6226b162290c3bf6559db1ce5694bc9c75a8f4e3290900ae68e4a29a543dfcbc8e10e90472675381e0376aa408c858491be00fa782049766097a787337a616e04cc0fd8a57612ca816073c47c97d93c6a134db23b84198a0f196dd8c6ec88bbb5d08634c378b678455b005795518cd66ac170090207c84bfce5a89fe0cc1d16a3a60c810fdd780654277940a6e86e75b563b794649a29f0201d7a79930bb1a2b6177002560b5a06ca2d84dd8b45615923bd58543e53221c244ae917459149c13d15139afdc0ca0828ed5c32b2327a8bbf71e86a4071a579d6cd180a1f5248d3a148c318271a378921061041c186faaab73cc3465cc603b90138e125d909427f0c6c13c7b1af731bd7fc9c2eaa601880174b82a28a1d29db0bb708ff06c255bc17bd427275c2c12128c1253207808cf9edc6d3b106cd016821814b9ec498adaec702ad8bd24b894cb21b94de3175e2335b1e22b88c01fef553c42108f531c265f85bf7d0597d4c9b11465c6d8dccbb0b4b06259af20885458f58924b91edb64778d970a20a64f5f2c16a1736c1a81b350a14dc6f4ce1cc569bc8c197c897f4652c59cc7c9a106a2a4d8b826e057149167f2a30988504212b33322b4988e3987dc514968d4027f16c0440cbc1b4b48c18c974f8b20b6e5605d650c2c9b7e594665ba42ab96a4cd287a76e1e05f64c542e4753b2b8a7ac2eb52bd637ef9d50b4f077cea215859babbb2ec105ff5b5c37c0f5ed41b1e71a22f59922dba1d9e004a93dc69215669f530a04e45a878f14df4885be6d2ab820890c35c63061cc2f2582f575c364bf490e9365f6666a5247c950d7aadbe9bc3ee7638fdb981e574c9cf5960cb1c9fd504b6cc347c6a30bd6803cf99e003aa588caba4969b4329010c3ff6762a9ef273e6170ad64b4dcd9488c4e152d3d78aa5d91258e991e1228273372f5a4a01cb815ac2b69ef370838f28c50d82867761556f04c5d5d21abde15784dc486dab0d593069bc2401be13a7945821e2a18de2c331b9a8304613a181ac5a5ed121e0739994fa9b060c1411b261771a1321b62a614972a502a58b712c594b16ae82955817781dc858d645b354bb37e9835de8029b5ed9c430f7103857b25b888fa4bb7e36b30aa3a93d18b158a6365d598546eb025c7d7aa722b0494781c9d29121e071ab4ab73f86eb1d8aac4d5e66375d868ac6a6060f36b2a80730b541895e32c8b68882d945ae32d115e70a7e61f1c9c6945b9eac226ea551781a1bd48208a9e36d12915b69d04c278897ec79c7891a4bd44530d78b63c92640a0e07576322825998166817689799e070b2fcc7780acc596c42786fbebc5356185b008589f7363d863cc934446dd12420e6c5291a66eb2d2964860867e75349ba9999fe4be93262a08f868abb10652b51bd1c67c266156eda768e30b0c82f910eb96062177a882435c74353dda7279f2141d23a6440b900a8a476c66993477b999e23b40ede83b1e31781b4303e4bc5e0220cb0a6409c88aa8238b83d78792c5632751fb0d5246ca42fc89ce31a64069560bb87360bc2696e78062600f24db78ab630079a64c87900d4b7c9ef9201822b6bdbc69c6be718c3b2792ea32756e1a465325a763dba22861a423e65458272e77400375aab4dbf30d564a176613c264631d33f37cea0346e71649d1314862bb0d2b05711cf1af088a4c619048a7242d0be6a8b536c41a9368b22288ecd0ac7298335e5c91db419c2126a8df45b2e6d8793da63fc7e94d75d3bca2aa58f5b5bee0b43a462a12c34b93f68952b6e7abd89c97c293b0693192a44c0d4e69245e14983e87aa26da8c63517f58d66ae1610936e6a89dca87b6c70c1a78c66743b89b3c2eb854067ad97d74771f77b0906a9a7e78640de75a7b8273851dc55dece9b1941cca76cb2dac265e487585780928dfe7402710b6bd914d564568d3d4075e4141749990c40214ea51b71f855deb9349dae2108843b5cd9815f1e8458c020fadc1c65796b117f8b9851776e896891dc05aa0095a914457016172a17624a608cd49db55a42bcea68778a26a910eb566a2d942da58a4cea53ea7a67954b085eaf642405b1674309b68cb9bc3c04d67505d861a605bd6163f7cb49fb8cdcd40917bd59b94892459fa7ea64a4872f51b97e66e64f02818520164e20d5f952a3266840b4575fdb7625d07d00486bd433447d5e1abfa65b215e034aca74670d4b7ff61c36ac2a1628a20d79b352d1c82c1626233ba527967302131bc1ca837d9eb4238404a20a515fe98a9e6d9b34ec28f0b252263fc2bffaba508a6375aba51b4a36af23740d2d51705b2a1083b23bf5a6b75a214dfcba5eabb82faf49e4d326d369cab0f74c00bd54310a3620d570eee533a1a89a51a418a3cd14b25244f0c66c8e8e454e358364fab5997170a90a25f3816aa1b272b09e54435ab3096e8161926299acccae3d689eafcc7e220cc42f5a347173ec4c2510da02c3b4526d75c9b01d103b8914e41b03865e16be770a0e642251dc312cd10aecc6a9734ccc815da2bef09cd18c3a8ad6c0f90574f41075cef470039a62891ecaab5f033fcd4266a510589f7423b4992f488c3cbc450db074fdcc7cfb4a51c08e2359247c1f564cc94383892757a8164c8c985c28e288adffa9c866a6779faa0f0882abf650a4b9c5e0fb36e4e51a6442167aa97c8e25ba55a3b5d7f164f07b2917f57b16b751ac08167ae88cefa14668e7634d05865d1ea24d1013e1b270c9ee9164d18654646bbae973745e64f90e69064f38fe5744a6343ca04b1a05293c5dea9ceadcab0b1f07ca177cafff03d582b123bec8cd829aae8d7cba9f91d4c89cf9e9b52038638f54721f23c6b341419eba880368782d1a0990f57211bf31012148d74451ae1e79850b75d6efa172744cc6d77a46dd0272924bccef49053198b87e1ac122a0753950586d14c6b22bc12939f0661638b5191e6dc2ffaa147dac984cd004d6dcb637bb18b2f04c115f98cadfa79f64e6253cab64110a71d94db5762f8cb4d277e03b2435a473d60b193ed2646f4c5e157ff4357d3c26b7c4b45315f0689f135c85d952a64648b0a8cec03741fe04f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 +ciphertext: 4cedfca84ff4ab3bf3b2a94c3b87cc76668f469ac66f62ee0fd00f5774ec7ae46d34fd038c5b9ab28e988f98d4e88db9ccb5364f1fc824666a3e7f95e55660469d04b5014324cf9f77f6b731eb6cb71fdea7f5bc493b4313321a4967b45018ebb117a6668bf19597ed538149e41cd1980ab68486ad6c6391c291019854dc899327c21363ad651f0285e23e9d346206683fe9cb87b24aef767f17dbc1a1a8e3995c2dd4590dfe17077aedef6ebb4ab30159b127ea9d7e39d4b0498e59c7a8d927c0abd9f536110282d52ea16035021c7bc16bd0ccba1681242aac3afaaaba8ba52fed525a53bc8c05e6a74d219a6ba13f13d4983ba4ed151d4fe63b1b9aa6ff9b821734cb064d74d711af76c82496b5e718d2c8a334c887d4ceefbf37df4120be4e647c9aaa2936d8a2a82b3610788c9e341db471037970f9765d0816a2a728a82bb56025ddb847ad7899274e3122f5be8b126bacce82f29a15f7394de9b3526f1c8afa407a6ff90874fe1940d3d558285f0e71b793977c9e8893dd7d5aee01c47a34a01d512f235c184f84a7f526ef533583c968f3348f42a9dbdb026e054a747ac5cc7f7c61a5b02b04bcbc56b8432bc482b052cb471c6950020dd308f3e51ae575655d9176041178201f58198d37711f661cdc615bd0b801d1ca20529d448f15a99e831f15486e65a8a4f849d484ac122379aeccddabc499174059c5c52f60e041f4655b796ed5ec62e375d11d9f4d883e2291945b6aaa5a334dee61a08fd832e332282adfed2058b7a428ada4dc3d013e3ee1a2075e1c806b54825c197122c0729264e1faf761f561a04575ea0f171e40c9a4abe0a6652ee4fc4e8cd5f14cbac96a378ca4c037ed8092c1b149f005ef70240f4cdaed69752fb906b50942e97ceb9f8018718f250b792fd03772a2638aa4304f1bc772e248d1ac7137fddd30598660e67219ccf78f7a987622411b9fee83b4f1eca995207e7a42fe7b9f8878a710404f6baf41b019c71b34bd88a5f4da300f14db4bddf85353e54dce655831e5a487dc9ae72fbd3066d56cbf8b5122f7c8294db5d2ee56287ebd5bf4e01dec3f01c9a0ceb17539390f27ecf4ed2aadf2cd070d8ff50390c0f282b3f6cf6554453e94f11a019d2578c7e77f7f6aec0ca9100b12b28b6eeb48b8b8e579039519b2e8b078b3ed1f1e7c8a5ce0dc1290a970f4de5b64d9bfd944b9dd2fc1eb4b3cb0a1f2cf6e9ea7af68f6e1bcfd9a04964f16cc58e858800695d28ecc30eebc1f13f869ffc637a2799c47c4a5451e9b1481c1d99dc428da3fdee2fde40c04832f68ff05bb6f8c0011afcd7c929e06b4e3536d4648dad466d55e1937bccdc21567d586369880cc80bd0e41c37acf979fe382ee207403e0b458dc3da2f9f4e453e2bea70cb410898ff957fa2345c7299c2962d9020e87486690e6e6ae277d0a94c9f385c783f01535d87bc4b6bf630345c60502a67be236a6f1cb9d502dd61d377fc60acbb6c08594891ecf240113e6404d8e24359e4f1222e07752fe21158c6c8a +result: pass +shared_secret: b7d5919f0bab0e2715a97cab993656831bc8a3dc86c3bd32e64ccb4762f70499 + +# Official test vector 95, seed: "121d90e70af6204445d0deb28ac0c108262719e9fd3476aca74bbfde89faf04d8d5f89a624e8a75db80431f0d10ad28f" +private_key: 9c6b1557d747fbab1da3d8bc22301b37e5a5850c9e482850601c129a909da97a9090840efc118a287b19ed091e4f39b7657853502b4322b687a28532f6620bdca934361b1a5dbb0e9af71caf65280e6aba338ab888cc80cde458720ba6146c39a22bc2c8f9cb0078a54031614d60cc9c91c319e3241fdb73a78c4b5715b0cf9620e0449c8c67493a987659c19e8e9b6e2ed12ee5dc876de75589cc6d4294b40a0463d0a4899dd54a60ccbaf545166d693ce6ba3e073c63757ac06a9aa2e5e93385b9723eb339155c1e3a043779b193af883b91f78da091358c2c2dd7db9086598546c6886d1bc611c3b586a3304a473fff62371af33142b1a212236e63351903a652261093ee44209c72bcd1db9cefd7866b15b6c434c654048ca845ab31c65e93d00288c6563e35080522415e42a9d5d749f308c36c860fdbe004f6c38bbf15cfe728a2806c10af833972a6558fc204f052cfbed8b1f8649951e44949720364f752b4910616e57603342953e47f0046af76867c98fa0ecde6680b14bc14ea34569ab583c86c8f3b1af9f5ba2ec68935729f0e03844976a8c5b965f56660e60b2b93d838d3697b86d6cf3e8aa0bd6865dac093966a0793030be6a03bc9e472354471b367a27ed30e129a336df19114cba8ab99571299128b323721703bd11649fc371aeb1867c5079fe04b169501cee5b2a54f14884c5ac1b42588c5ba090382320ac8233bcc442ba2bcf9ec34446a716bf34f1c183a8829b22216855107bf6e9218d26010e63a72316cc5dd8994c4817880d4144a26a0967a25d0a82546098c6c55ba8078c0bed3bb91b5b2cb10c95b464852d7973dfbca7f6396dee46984f220431cbc969b0482453ff729ce625a3498ab299239465fa79b2d50c0cff698d2e4cff7b3182b88acc0785c69b406a3dc9504840a2a744dfcc29a99458f74b3ccdb753ef2e83065111c41052c539c83d1ac049d215ea5291110287e80977e3f578fc6dcba985327dea382c3bb9561444f64232137624e32703cc4cc12c63ba5d3ab496b7b493c1000858b8dd51368f1458d255ac57d829928dc2a0707660df753aa9c1b868703bf69013cd15f17a38496e51d63aacec4f594cff35dd027764a56b2751080d3d76b91da373636cba86395b992a7ce972c5e1101ed43176f5a5ba68801d0763762b92e499110648697389b98c5586bf69356b4623647cb0d1366b0804166299c4dd1ba0f29bbbb5dd393c40cc03967919cc32c62d6bdf9138e6b45184d445ae94825ae092df33caefb2b737e9a23f58126a6c52780e48f5ff7a14a7b255c9a474c752d9de424ccd4a8a05c79164779b8b452f3245926e2538f7299186259678298749412e96b444370bc583ac4a4d43dc7e1329d9630a7b3a79b0cc673789ee0d8026c93c17097cb83d515cecba69b13783fe1bf72338846c955b7b1af27128f0c1a2dfd0018def1c24fb16c29d326129213d831728acc4cf339cbb6d2a7ddc8b0eed4cec8850750bbb740ca89180b224721648f44a8cccbba6c2538006bc38fa34a04053dba971f165c5003d70bf9c0b7f7578d03093a3d496a0e9242b0c23a92788b668b1abe421080770078f97118e7c35dd589ce1ac805d953345881ab11467fe9883654870f7266d76755b0a368661001e627587ba42a2ffc1e2c90b154bb61c2cc3d82a3588d4004d112534f787858d23e8a182971229bb2bc77809a1b118137fb91bb09d2b39dc77773e291fbe2cfe8fa2cd4882379f9471a190f34018c5819ac4eaba7a4a24c703c8876f321267b3eaa58a90cb0271208c6631a773021b3960c14605b5e24b01c2e3c9b2196499dfa69d6a76f0551907cc79611bcbca6b1500d50854f719761a59e8bfac4d5b27a54791482ac5426f73b906631e784c3be822599bba514540efe6a7c13440ae97844a6c73ceb51c471f8014fe51fa94b271bf3206f56abfec55ed7002c27a9250fbc12c9f328ea63b3a2375ecd35634bbba0a4a0619d4571ebc7868faab83c6180dc3c129e8596ede2b64762ca7670282daa233620445bd64a44f5c395a212a088165fd16fc69c503a33b8689217ec00a738f74210d074dc3706e9a412b7982a3e0804458560ace39b54c114f8dcbeb9a1512eea2d8636bdb91c15653926b0fcab1978a02ef694086c062f097c32c9445606050e454a5ec2a43d5cb2704049eabba1933ab857acc1527c254b35cbf6fb4e267b567ca2a125b1552d1c83f408b12420b0b10c2e0aa430f695af478c9d1c54406bf400170a84c4c52e9657c1b4eb652938b4a281a809851a5f62ccf930a56b5588f6fc64b6fabc62b6a62795b3372637bd641bc55c76df070288678012247d11b09118c43fba2536f5daab402377791c906e4cbdd5291ec81a1e71a3a696c0165aa1adfb978be46a8fa5cc7c8ee30036c085888bac3797a1f189cc4035658ccaadc61432141b67bc09ce04685dae806c681729e71b62dcc56449101401d967157c093a8a2b442c3af483408791769bf7ce8910ca4f4724ffc93647375e702bacb559c11fb18b1d4a5371fa4bcc603c22254cdf2654b2873cf9e03591f4173e6a4cf86aa30e9480d49215ab503b2cf6bf42c4b314c7595c907bd4526569b3122234b9e27259619b520412b43b892a6770cc32c6c276a391a106959560687c9620d8d1a60a093f9982a46bb9365d611a86d064f3f82d81ba5c3a39578ea4583b8882efdb5e0b3517be2ab82863c68db0336f6a1b9e1777d7139bebd15af3b73e21332d471100a8a8cdc9d926d2d7c23bab39e015c65a072e0409609c0c0607ba94fdba9842146e8524cc6ddbaa3dc3c9153c667d2b4f4a4871ed642fb284c573b1735b24b9f14aa72f316d3e8b1d8bb415e28a895a7a55e5043eebb04dad9a1d7d2ca9c1973bbc485400b8bc3e897d9d977be1d6cd7d93607a123e43b56b55189586703bbb505185f167d9e24d1c1248a4bc4a98b9332666afaea93aab55b09cc95e8691872c48b3594a1930d82917823362dc6e5ca19094526c462b52d8c842183b214f710908369e9e1599c8e43ea7d890a7e5a8caa6953d774a2e6a1efb1529411228d3637f1b28437c0773a719cc85681cff772ef05b3bbe5753fa2aa5e414bdb599384fb6462565bb04da4c84e550b20163928c9673427b5d57864cd0ba25065246d3914338cc9be47b2ddb2d18888ff99a087d0012b789cc3d6c0c2d93567f7a4c87f1382c4c5ea6d084e524b82eab586ad8c8b05c9af5971a56a31f2b73ab45392bf60b762c5543dc3a259dd67fccec3ed3654c6559f5cedd022077b1a6a052f5287219393cd2e0366d0f5531b2f7ea8704d2900ce5e32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c +ciphertext: 946305bd5c4c46c2c2e3592c19e4d3f97b8830ebacd0cb22e2fe91165488e41c1bc4d8df410c422d564fa276b2d09e6d121559d1bb4b9fe4882ff9b47735f1a560af691529288b6a495d22bde53975633f37e5cb4b06ec28d80e3a14d5ef441b965946981402a4bdf5ec75216a477c0286a7c93ac7c85d0db58ba93d15a2612206fdd1da3bbef4afffad79d76c0c52cadc27513965eb5e41a8a2bc0982c5b1e4ab48856704e9999d906f8e6c9e69a75659a5d8dea96cd6491c5df26f389a5b68b92ec913af9f05f91923522e00ddcf8ea0326cf8241048cf5d0e9e1e656191c36aec989dd3b321edfa110a17f4006a52edf63a8f8c6eca1fc446b1a5502edfb71a6381b88f3694683169156b18838c26a092007217e0050025a0341f32ac09b11b34798167810162194f396bc3a15ad60e3c0e879dc2d67940b698e7fc89b7b27fdfc8d6a99c46e80268f872c9eb38e31bb108495ba4c1f4c0b772354288cd49ad1141274860e0001cb434111e47b436c5efefce8af2da3390c32e3242552c4ce7471abff8b4b603a261ccaeb1219faa229f6cd7aa778c8a5daa1c6d3b88ea34ce1c53efafbc49f4ba04a7cb778b0a974575fda8775f4926ba1fc2ff1675be8350a426b525f9de7193640a7d2a78f6f98cf82c1c5011d1cd65bd27ff699d2a0e31d15daa817389e31fe278f3c18081f1d8855680763713629afe8ba120a66ab72bfd1ccb2c8d2253824e1eba4aa4c8e16bb938ace8ffefad97a795ffd759333467aa3f00cf8eacc2c05cef9ca5289afb1dc931634a069cd642a7c87c4b871c92e0ff08d7db7988f40cdf805dbcb9b23ee633408392d81daceee30d51bb00fa13eb9ccfb084deba4a4d1f49f9675dcc31f4b16e30dabbb54c56b413ec4b8fa8cd66321a0acebb34fed2200ad8ee25478851de2f7ae93bf00a55317829f87e03f7be1c92bb503c7d0fe980f983e1f65dbf6c7f9c04fd2fc611dad8f78b0dd11b26c11ad696c2d9478b715065893453ee5fd742c4bfe74da5679602c550a671241f77bf16da6fb34f1bcdc8265181488a2c0a81f02438f6c59b5bff3ddacf0175e3db1ce24af9b566710bdedbccd79013d6bc000c4aef91af28e9407ba43c0e0477ceea33b0d9d90deb875684ca797688eafbeb93eb65521ac5a76c66b6ba87c2ffe6187f2e88dec731b4adfaf27d79340f256258706c226f47b5bda71c0022f8ee91adf3d3e5b3c6539ecaebd5a57d724e7a9a9bfa7af1e2860c9ce790ddfbd1776b540255711c5e52f904d07c97ae11e6775d8cd8f7d8bb6301647666358fd9a1b90df2eafdd0601ad13adc24c9421914bd8225e7722ac8f55a5715579571208604e986ed90aa648109887b0dafef529f4f7a6b5c0d27f16e8038ed7059a003766e3748cbcd3fad459c4cffedfa44bb7a2aaac67cf8dbba63680c39921620cb5062238c7028f0cce8a587a8eea5da03b5ed363f4cb65a0cb7885babebd0834194afa46437437f6f324eb41348eff99145a1848b4e97753052de775842b8fbc6a5 +result: pass +shared_secret: 149e4e38a07d18c0b08edf9c47e425b56f7da87b2b9c855bedd29f6f0a8fe5fa + +# Official test vector 96, seed: "b3ac6503206accc2a92cbc210d020a2654726911d11ce676aa04feaa08af1d20c654e4105883ae470ec3ab299075d420" +private_key: 29013c0db356adc444062a6955267cbb8132d72a58bb1b34ecb955795ba52f1624694741fe3c646e734c2462547a72553c51559c2c88830b1cd43089e924080807b4daa964bb85cd5cbc56edea257ec59b9c808bb66835fee1ada8fab7db67268ddb23454680d3a7245be4917a1abeefd809d7906c1b8a4dfad2160313ab7c69cba472bef251c7e1e1ce8771c1c30b7db129b8a8140aae05780664ce800600dbc8ba42e1b4ae629424735b57529f35f9abaca9054ae346c9928a3ff7884485195d02369d046dd68a7129197cc91c3a911c0cc361c9b8fc44c0ac8d98c8a18b185b9e174bdca360f589343f9509121b7b3c8046f4d8086d471b5f1b3e20c6296936a2e78583640590d52aafb321a23215546309676dc84c445ab78bb5660137a50c97aa05b7b004e396619b632e855d80c6cde8973c055c65b7a06a90421e8ce484495820d9a66f878a19e8e1bbbbf86437545a5ddc4326e400c384ce96c4698f628f9703be9aa7181a361739f7701700c47eab9f1b805d86450094c76445413fd57b20d9794aac17b1ef33186a345351c851657a9ee61463f0e912dfd8ae113a378bb51bdf5b918b6344fd74c573430259b2b18f37ce9af0bcbe3807a0d94626dac6a22c4e31f3bae1eab69f768dd4a68405290566e20ed156b5ac5a73b1c08e64e68df973b9dc8692bbcb17692c496817bb1f0465cddc6ad25903bcea873ffbc9d8472487a92c8ce7148c25288d9687532035b81b584494524f796f99904c0bfa402fe265bb7aa143a0329f4a199692472f25b2b59a3a845654a88b9356526c25a740f39c3476020b99a601b41831cd832e3053a90b5cb4de61142f65b2a2babd9a45618036af6ba54c9a2b093cfb5bd7426056e09e6771af41d607cb9375846a4952ecc3a991225db49b31753f0839967ac9319b6c5d23a6365970a3fc4497cdf793196b6c9ad5280b949c825599b5d312b2f484939b960caa2696d26789f09b4d2ccf211cb3bc580acc4b0126380a6da109ef86385640667196a2c135a3fdd780d34513c0d35f78836d0f811945b7b617c024ba5aac93438397f216a4520213c036fdc81957630236323a56c72562236be7f127653269c2a6248357b134973ca90a100618279b1306907a9076f05e46a716cf79882707c942dac8200baf3a454d8e74258682313ce3252fd7a602a3114bdc50e33b29f18acea7180226532288ab678d4c6dc60a58366a61d6b124e247a39b24ba960b39a2da80637c9cf5838cbc5a5b7c1b7fc7e16777c9cdd1460c9eb32f1da32cad0c2437e3aa59f0020a106b06113f5e896730962d1efacb72084df7475eab9cb467ecc1f41177b644c9a68a961ea65d2323628e558d6b03abb2f5491c7c36244a3ba56191eff6ae71496da7372c5e1500e22a7796b2aff8856d75d3278b5117fbc42c71743bf7f24c78b76e3ea45ee2487a8f2899f2127d687b1f8dc579c2ea811d3c50d60c85f6e66457d88f91a63ab1ebc98a0b2167262700d35201975091b9ba30120c6eeca45992376a200d161a234be0c93b68661da9cf44a01071a8614dac8906d39eb475312b0c2e998ca7ab67bc77387e5b6cc8aec14d7ea894809c54e10649325881a89b132695adfcf444770c6ffab16e9211abf5d019e1471b843a3e7a38b5ce109a0a6796a0d822a926756f0c4a0fa03f53200d6cf37a1cb741f10219102b63425063d6a910b2fc574c49067a1a40e22ccb754926481b7f0ad0111943b3e67a570f0bc269aa50de26cb5f3507791b757370517d486d7a55a88ce86b42856705f6a7a48a8892e96ff20c304e74271e0b555c1b4b0d065a50d61bb2813cc3723009179dd2b4c37a0a06b2099c2aa0c4d256a2fe2042bf4b3db91b11028275b33b4484f2ccb9971df29703dd61c17dbc0319ac63d16080f5b5c460149ef751933ab60142404b66690a2c10a6e3aaa186f6c7e130577cb02ef4e043a6d4ab22ba85b5396a4d61aa1528becc59a1843a4d70283cd2f91457762ef34424b934be9a1547dbfbbcde21552f968c2c8692475632e78ab3d7330619e74d8c71bf3797844c717e70b51367963a7cd3c4869a85ddd213a8d34b788239056544692a7741124697d237d7e2677a908358d81da2cbacefdc511d3110e1152bf2d036c4593a0512523f80a26620ab1cd8b6b1d99a08f25ae3121713ac070833c544e42acfbb78d86476743923d7310c5a4238cce27773d3989d598affe6650c1166ad4ba0e034ccbbb5a75d69b113f2a1952a2cc6980c58ca6da32718e4484d562ac700d924545b6cef439234980611c99e69706054981349041e1962b272c4b0b8b416569952e4f98d4bb12de6a13bc1c903c5477b0ffaa1c0dcbd8e4abd4670832eba3d43d9c31147aa803c17bb32c65e3c350520297da9cdd6dca30ca025e85a051af5aa82d231c159a5026a0e8f2c16769105baf7708fab822b1777c6c53137ba11298ccc15d522400b7f85430de739514c90453ba97d9359807568417ea307abb8982707b7519a65b116466e984772f87a6346ac808c7b2cd22f08aba151e79ad8e45925d29294879a9dc00f60713e33091c42bc3ab24b65b488c764ec75b4117dde39ada784835d3129cbd7b777b1b69cc3293f07ade724639b761ca598464e6676e216874c9668b19aba660974c9918d52761acfa325031835b4d44b42fb91e431373781a2f60354e837458e69a89d830e00801178ba697f82a3a914345ecc1b5cb4b3357b6b7d41b708c5a7e4f862c44c8ffa90473495b70607386c02b4f0261e197124de180cc793355135bdf37cb36b9a180dacc2f6b09efd80cf35211a0371c59f396cd9ec226e1126d69a6ab8441faae9a1cbd18e17387ca0333f94acc7e35306a8b05f4dd185fc467e5e888159a50c6c9a51ca6b2deb9ba212822020d67552d4317449b51b21c37348c44e3880367574d5c195db588ad0189a80756eda780dda9a7d3c946b10d897ab8bb40d6441179b1b0d58271ea83000c5ad56175a23d20322d516b2a487c74a64eb3514c93b919d65cedf429bd37515fff66f4d72cee39a0081452f791b8054660da44937c4a443a09727ca5198322c341c12413c19b6075bb9118540bdc105313422cf9b8fa687540af66728fa9859a642bb9479b31257912cb5e0046dc9273199f27f4f3665aee6a7bdd19e0ab8baf1d2a868b465aef75f3ceb916c82bd81791e80158f8e5b358c218305d96a683a19c930c1903b5e0a4b15ccd8ad0b9e61da304ad616af46073a781ed8d08060c1678f48941d67b3685a39ee7491a53a20ea03e400a843c8cf4d04bfe0c0a3ce63dde01045e2669f7ae5da7905775aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec +ciphertext: 326dad83eb9507d3d8c6433d9c85dd37879c8edd4271eb110e1da941c4ceb58a44d889e67f4a0a339c5cf490d27949c6716d4aecbc49fd976a67e36663fd6fa0ff29a185ce1af8dbada61b609e8acceb07a793390177024eee8f1d360f4069f7a455bf94a7a639a8fbdfeaae04177a1dd2427d748a61a72f68e119e98c9437d243bd5c3b83e07a55891b400ab069ff19abc6770b7252162800fcbe0ca2aedc5de3773e9f961440ec5db16c3fac83941cbad8be79b263321aeb01ab0c7e35f2dc12b3f00ebbb6224a5c83a51c8173876f2f7bb793c7f965b8907ae1d132d741e1c795f30d3c796094e04158fe09bf981566acf64dafefabdaa988d6f6dafaa95f912d7c78f6ff1b589edc549c93d0241c028bc0b5db30810e560389e5eab0afef7ad8b4edb2df3e921796e8823518aa21adeb02e60f8a11be5a309a88a6f48b58250d8f7147d525159978df41230036695afd9d0ebb1bffbbcfbd45a74405472c220cdcc5026b1c84710d0d187817042058c65cf5a88bb8f6b99553b013ff77b9aec4c9362a279aa2fbaacda95cc65794ca2286492670049008d58c531f70c954af90d08a6498569902f001997692022099b53a6b4e2238bd2875ac7fb374cb27f41cb69a38afb0445254623c81148b5789981140697c8866a75d4c37089c2d536b2bc4d789f6dc045ae57a977f7bec2e0dd5907eebf606dd725cb0673ac29f16378a11bc71bc5ca0ae77e2c3c2a5be6a175dd70ce5c06e906b899b81ed5c0b6000a7f1468948341687465a671e6fa5458089e8795c0faeca5321b30edc70bc60a664ac491920b69effc3bc268176059f47f54e30c4c08fedad550e34087a0c5ab189426141db1c27fcbf348b33216b1b8a184367887b1f8c46baf4bd44a3125b60de3aba6e9baa2f3c593734c38c43f8c7a7bdf20d847f1a79708e81df8f6e1ccf61c41c40b74055d04fe8a7eb091ffa7938de90d71d2a0b5e790884ae8fc4a6de70aed6aed36fab4df9a4f4d768ea2b0f08a047d2276876073196e15909e8ce1f91184e41965f25673138d5c3358cac17d611ae9bf91e10485aa53c9b570733866c9338ed111b99c618016f8ca21b283cdda6c6fb00279e4fa2ac419be7b51bdfaef65246ffbb8a4a8afe31cb67ae15bd5260a3147a32ccb0c084a7435faa8e8278f6a3bd0648c86af6df4e767b6165666a69bbf9dba5f9baeff4348f55742f25e63367a3a7a3f0838d914186cbdfe83d7850ad0c1032cf116f8c937ed9c14b45ca6ab98850f40be73121ee0f29dd3400cd54a8b4ef9f96ec3b1a19dc5099ee276df4f2ba1a6abd46bcbd04722e49e1828c6a4090e7e204908a0cda22339c4c0e733501a389196b11966e0e112c6fadd0a28b05426a562a9e293be1ae19e9d85d401bcfdcbb98c057b4accdef69e8338169cda5f851216d1a462bdb145c83958b07f824da067783e1db1ae85a86b156478280e222dcc204b3b858374514b29ea52396ea28d2313346fa53a610dc2e588252b6dc42811e5525a94e2020ca5225 +result: pass +shared_secret: 38a1fcaf302905e18940605e49e5f44c747b06e789acc9c395211823598ef516 + +# Official test vector 97, seed: "59eff60b1ef6185db34ee1e3b1dd2f159106ceceaa79beb74923b4f5623d5bc52dbf5d2594a1f7c6c64d12cf144e9ed4" +private_key: ba593157e38d7e6735b6159ad0338a4f35cad3b7ae7e79c024b4b913a313d95059e2ac7273692ee4d6217090c1774b4ca473b09214a81a374e5d5350b51c4f52376e3c7a1622cbaa2226965afbcecf5b499ff7220d572db7d7916989cdd4d2ace6cc3a40949b02c52fceeb941ff6b6d2713de078753aa73836d72abfa96ddf790f0b8243c48247abe779db1bcd5ce01bfa061fe1b5436ae7cd7b7a3a65971e35360ac52b9c5b7214478c46f5864948d20396387333d7615f872bb94b0e7d71b2f831a2d30870feb190f42771f1f1b73ed88adf6bb732a1c159147aca38950060394cf04e7150308897b3b76706a17695943500e589b10b348bec1335cce863bf68ba50019c6d072e9a2aaebef070a7d65d5d2a8bc285b22dc91915008e2854a9b408a5e1f847fa492670eab6905a6367528efaf08a688cbc6fc86672e599c3d5ade10a4a92942d5705a03e881eda311cda81982e6aba55f29cfa835b6b19a7e0c39b48939344c1caa5882a7aa86721cb5674a14e62cb613f115e0cc36792467a7dd5701543898ce06223fb505ba4503192747d4295fb57508446c927b1c8378a96b4a56243d257c89993447cc183db3f6db7b8606c21536c01eaf14a7f2931da629365a0b1df157bb60424312155a8e80d049b66e9e134006c64bef8ad0b5a33fe857de7d244b4cc2f0d29a8d50c118540772eca4517712b4aca18f64c758e6698f701804cf0821c178d6d7ba43c2c694e8b4a8a356a8c26894de30658917bbc6331a6e77e6a327aac4ba2b19b02a79484ebf90cc2a235a8737802f7b71e6731f358156232a913b63ba94b932581162b622699659f66c984155187ffe53d8d6a3ee4d84e3b190088e001b3f3aca703a39551bee2a852aa4656f355b05b28194dc025ebca70ef90a47e96049f441082861ba5e563080b27035aaa0ac761c66b6b11978c18d1431d25ce69a6373d869d8ecc72b47550dd901aed51915e61acd36c50cda5ce545b7b3293263ae13880879bf96b7c6915074d46c636f4522f340b993cafd07c91fd646893dca37eda658dbbb52a3211a4e09dc20240a3f8c606a7b095715e5af180167b5807e3b414f69ec28874398b464e08254a60cd9b693b36643d82996ae2c82b8d26bacf106879091500b6a289c4c1a0a7b9c872865498bb2a40455e0ba3b6570a804204afd3942ee6b4169b8842508b9f6a5c1883a3ec98bd8119b147671003472ce1905981326b5057a6ad026843d323cc0593a132114d70cd030aa979d639bf22bcb286c13902cfdeb0beec163f8ab3c377d211b6d502ccc41137db92cdaca20ce5b83c2baa93d5c063db6d419537a7597d03a91f9d214869ca00ae46cab450ce11591cff53610053c3dacc5901a43959e55cc2751f792ac5ed288402782dfa4912989032295b967e4145d7046e76f4079338bc26d4c9f88203ee1412683899ddc534ac37608a6959efc72d7e24582fc9629a20059fb382e5891c85091de6c2600c98c58ea8205d2574c25c9c0d17809ef40d1db44e8ea895c40c8aa2448a6655442f0bb7a160aa8df8ba5faaaee0c19d16dc4d267279c0bba589972948f7c198e8cec71569e9863f968cb5df387c6a350a81f32ad9797c09abaa56083952c0c1b6ec9a50251f3c16859c2c91c0076750016ad3ec36c42941af9c13e4086b37f5373cd29ef4d46d6179c948eac2738bcb765bbc58c8c0fc206a4e30267ed62537dc5202c5a717926744b296b2983b8291495161c920cc1258f209640549e5e7cbbe13ba52b762c6767c92a95678e066631b57e256880ae56189b699691999fa294b71135a7537202e8873d2653eacabba9d3082a5f01353b77da1cb4220301b84a14848b94d68309c6a29035e7cbf083bce5e659c0a226274e8534f61021d1743bf66525aa7c62759c9ea85155e139a9cc20f6b0776d567a8f1e697b97ca60982555c0197bae535a0d20ebd00a7774550e928647c40598d16a45da0810399cf38865ceb5c2ed7623ae9f55987fa37cce79aae79030f8c3b90898f758366f7f591452c77ea7c3203c147e591304138568d2257d07689865447179c017b0560b3165673526981c65858e842d913a9c22c0a9aac9fa4e16ea6b128b0bc99ff863b3f40b2819ab2e8a04cb353c7ecb2409e495e617a410e638bcb370b2c887b8adab2b9f95e8e922baacb1d148610cc4748cbf31b88da477029ca130b152dd923bd7796d0128aec6706c204ada1b37dc0149a7c318d8356a4f8c9cf917443fef20b02096579580d82bb8659b18365ba3347b081f42b17c3e2064a441b1a3a876c26060d22c370f82424e9b156145e93894de3ca09e4fa8ba6524eb9ea94980a038b257fb4da57d4c8b40ae5465a3a9c7169ccd30b13295546846a6bdcf13c3230b5a961b1ecf578abfa8bac3542820053717baae30a545261b873f278cefb73edf8cb73b9272dd7552e381da64c055470c199bab07cdc3293c0577d9acd9d9063b536412ac7cdee30a1dcfb6e25dbcedd5425508a1091555998931326fa69c78b5021f818f8a55deee77db38229b4104980c230dbb872cd671fe776a09be47852204c6a339126e3bac2353d36c094506092aa597449241121332900a69f8ba1b79ec56f047cbbfbd6bb2aa08f6e606d54c72cbb758357e49b937590a1191d88ba26ca576ecd320caa1bcbff8533695aa486d222b5749bc8f4297bb7938d5b4cb4f46d6ee701a35a287dc16f7dc1347ee97830ec69cdaa91ee061d3f0c81bdc695cd6939ae56be11681847629ea555747c664b5e111a9ac5159281438729916d45b8f0d3ad0e0514619ca93a8a971e9433c9eaa731192c760c5c5e32259f569dcdf39bba4c1b7269bd98417abfb1521fcbb640030563118e0f35bbfd0665023863e275c7d5319a1087bb2f956d2dd3ade6c37aa09c36cd5aa9ed09b8999c4473665ae2b784197cc9268c57bfb78dfb054bd1278e044582cc3c81c547c50fe7bfc270bf6aba9fc159a5853045af3758a8d552c3881d7c2879dbbb0b79b5a5c2300b5a380ecd199e3309251f9647598b7376290452a575f4ea7071f2a0ebb7b3dd9057350abbc1707e25d0b68d734689f0ac4c9b3242fb703ea6bb7fc064e599ce8f9269a0d63a719879ac8c396d79221babb2c4a0b7d38ac5b7e984f2212c481a353ba6bd95039443658eeab625d3d00faff2509a2c208afbc6016bb5d8726dc74993ad329bb9a554bf61209cc20e521b628d9c89c8fa687eb7464ac51820225b65b2af8489ed896d11825bc4df67f7002453d16875ce21ccf49bcacca228846450ebb8f04a2a5ef2d919dfa47c4aa265f4cedd10cf74eef3ecc1e63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab +ciphertext: 851033f1b0186cec6316ee0d2de8492c60f77e7a28e7fdd05da815a3d097b57e7648cc9a8bafe8989eab34df3c43d6984fd19b65becd0c48eca9ae5ea2f070df97a17beb6174ed74eae45153710a758c89c204a8718bf96e1a07f94bdf8efca4a5de6e75230e0f0110cfc0382361e36d286ae3c679c06e1acc9068ffc834c8f8b61e24215fc99824a988b06a4126899b085273272547055cce233c6934b0a1581e081a2ecefa722e3d7b2a2d610368bd14bea532e54795c2f28acc0950b1d1589f23c7967905eaf1548ac3804dedc3762f29e02d9933f1787d0dff3f6573fe88e78e5bef4311a0fc8a76265df4214a5996215051b4bc3fce8c67972631a9a1ef30bd0c85f228060879566def14aa169639c7c5d003010dab55f735cddeaabbf9d6a2b44bc904fa6efa5a258d09df75804cb993d689f621a635bdc3895107af08b831ed70ad4992f5613abc38eb34637110467fa1237b0614a5f370b9b9188892af64282728bfbf30cbc9855d2ff8dd016ca8a42a6bc8fabe0aa11b9fa6ba816cb6991aef25fe38e9bf9d677a95c4482bcf8cfda7ecc1f0c6c642f55a2cea0ec62aa232ac39c56a757b2026463d33109e04cf1c43a685a02a7e95dd9a628d495d2da75b95ea7f9ae1867a49a4326ac7e8b276667b6b0c1647e3370a0ce107a1110737fbf73a2a200331751f2714fc14f0b5f0551256e8f5c4eccc8fb0d95e867a021a8ff12bdf520ee6c8ce98a19233142ba18a6184d1eb92ed72810989a71fff33f712ed832ca6c3c9ab618fae23356a6078afcc812247b09032d58b5f9716cbd95a87b2a9604d15862348bbc388dc8af24415bec3797e03965e618b88b6fa44abf5f7dcb381b34b13ed9642e973edfade4f18c75b4d6bd437a93bd1740499720f68356ea2b23017c07cbb5eda895c67876dd914af22e0684734ff6ce2d301c4e79a68099e948e66b597b87c6c4fa4763eea673691d8377aab5fc4a166ba0eec69e7592cc4082182e69f7c3c9b6afb96bff870e34f56931a759ba44d25fe1b75250b5f2b6500022e00fa73a8276087e300dd1a96d520792625913671cc13ea00926199b4bdb55e5a21ba3f9fe0e9521c7fdf7a56b4d0d712a43dd4e1298b4c9e1691c243c6a1dc3d3d273014fe4395b6553abc4a81c4cf186e7868cf85db5579291b9730ca26ec09f7302b8a0b62dc0c5b3636fa8445ce0fd772c68d4898c83aae108698e809a79e3a341bc79c6ac8a1425bb7b66ef4556fb6c21906bcfe8252c173e2c637e1c86b0d3fa19fa67ee46c0bb85d94a480f24e99e4acce0a9f8ba64a2afa388dc9be4ed9d50f6a8107c44507b70dc7fda71af692c0e1743b15c998090421e454de886542b7002708f6a5180e20b2936868e84dd3afaec04ce4d628909204d757010fd682758857ce720257e01ef1e1c361646f740043f34b4dae7d8d02972039584771114333904353ecc45fc3b3428837e80d7b4df6c4923b122784acf27a5329ef474e2545baf052a2eb404fb18b13199ac35f19258782bcab37 +result: pass +shared_secret: 403543b0f8e519ba4ab878c40ab5aed412ea06bfeb2b864baa5ef4b81a42c454 + +# Official test vector 98, seed: "dddca9dc31bea737d3f474e7560b37facb2f53c803e768ffaade7669ff94b1d4fbd17068cffd5dfdd24aadada4ef6b12" +private_key: 632b0098b51f1dc64ab2b096e5ba16867caa3f5621b10c50008939adc17177533cb98244b0bc287309a67ba147c572adae003472437389d957f1d048f4b7c0e8d88469a6a87b771a7bd0a3fd1074f1b29080008fa72c9241e1b7622748d65bc6dd307645419a65fc5ba5d68e66c5ad250897b72c109541422019275b4cabb57a675eb3144be222f417aa85250c773b0689063e89802d6bb4010f4ba0cb57a1c69a5869e5a5508599744321f23496a6a9b8331786ffd2ca9b83b78469089885acc3f46b9f45437ceacf1a9707c394919801bb44f3abcc5a504f466890b15e902b9b97b8197aa19f25a41e0df87eb6b88c0c029aca3534f807837cc2c253a06c375c8728390263a6cb8d240e33c36268d283fe891e8b99bb935a33d15c0c588c82bc2905de885dafda4422e61b43bcc1b8731f1b6a85486988ae392d71aac97d326cd6115e26c23459c74ebf4ac2edc6209933a22e2162da6cca192271517687110c070d6a154a11054421bf8e3a9820f8a77794b3da4931a333928fd37e7c057117fb2f2fe9a19d65907801248a8009d0da2cbf572063ab7bee490f2c930c8ba0709579b9fc11079d48845de37a1af371c6947b12ac4a142250c92c63b7336967ca1797bac7b3a66e5a997672c4431c28a601cc1360689d1cb6304f8cc04f6c3e2f67a2a72746e5221b1d9a6018c4b6f0a6943ae927552968f7877f28cbbc9bcc410afcc780e06d6759aedf4a1b57d7cad7fc89b7b29e03810bd7babc8797768e930dfc3983aaea0a910a359b5c87d088961d529896183627277e707aa88a21096658663cbb756469542e9053f1102a73644d510b69da8b089c73ce4bf4bdc5b72ffcf4cd1c73ce0508393e409eae79c9fbf44b5e36c73d33af7fc9c084c52b3da21a57171eea865efa7c917fe92b52b40e36fc5cd8e961fd207fd7167c7d302137c5841352663a3931e96382966c58c3039e182cb1e0369813bc90312a9ac6026d4f8c24da0445b3687c27a8363d702ab0579bbd3a418fb6af26792bf96281b0373469d96e74803a5658a413f19a43f95e784b91586c14461134811a0c976c25a7b8491514a1ccf83904489585b841884c0ba39046508728dd02a9a3163ec17cb1422c3bd8194f845259952c1bc7da1616748c19e002ab8948bfb00f7b53446bd1138d7b87794423bed453e5a7bb0e915841984bad6cc970f9c95f120855203df5936a8871611ee897f9e050d5a3931c1219f61a8da6d75ba0e85c0a674cc39c583ad01f794b628ae221d9e8aaaada889c43b56602c73ed2cd5fa084c7b207a43360a8c58a3f405bba290b39723b63b10951ecad19dc266d045a49a38857941534f28e775269bab9a381a60e244543b3e26fcbcc0d47575a82da58aca50239da726e0570a8eb3f6714b2fffb9038d42345977fb3156ca1eaab577c0cf4516aeb81bd1f6b92276ac4cd37b67d1b6083e126cc32c91d28c531802e41f707ab740903e5213e2a378397a52793c0b8762d67d846de86520f8745a8112c80f48835a4033ba53ae0e7b43afc44994b13e76663d1e6a2519844ae08536aa055a428af5144be296b43aada192d142ec933546735a6accb4a5a99852ca751c24cae5738a99734408c884e736a271a17a9a5829a56e4ad6fd90402c18327f4b5b052a5d72585ad276a52228ea0794d4ae19235304674705176f76e909792b32b3f45f3c179464daa653c4885346b0921f72a2e186210542575e7abcc210bb7572c5ba97c475d8ba2810c54b9f23988725dd17967e9764513e1a34e55a9e32b05bd6a030425250a285fb331351ba4470eb2380318c9c7a56ed0664c6a16af63db6dc2a7c1c4e5a901c89ff7a589c099568c9bbb0482b04205595c242c66d99725a17468684b2be16b2757760b72a57974549c44c17bd2aa028a2c2d74b458c2bac3d34537ba095c34459b58aae4940fb3b68a73b28aca34cb018b92f65320bc3c04008394e17215abeb505b4bcd37d473da43569d557eb34b06eeca22c1264db881a6b37bbe9467899117b602304fdb72aaa60bbdba128214cc87fb980c1be3bcf9348bda62ccfa591328901c9b9851e9f9258e2a5f500053f9266891fc1ddf267c58c1aa7db72255f8c277d8535fe48db1d9b12cd97fde35c837d12f6b1c84e2c019e77469350bcb9c3791af132bf2ebc633f3c681e3801d0ba00a30672e955d84930c4012100c18b7a5a342d226341924034ac0953ce15584911d86c0689fd12d3dc4cb2d8748eec4abecc185ff63162e414e709cc3c5163de7b80e9e550d4a0b90de20b2fca850e3b11338bc3b5c369d616a2b64c764f78122abdb66860103371b773586463ea51366792872f36c53603cd876c4aea446e8811feb4417e3f21b94059f1d3c47584c09b128c549e48f6346cc3fa60ad19cb9b65359f04506cf52994ff5225aa24d68a00bc5171e0a492733e726eff02c2b956f9d6a6e7a8519e2b9c4c90b8db6b5447a0b589cb71cf0b74b899272a966c0b0da3824035c70c334818bcdfa2632e7a47ae8119661b96a6b4b17810a8840cc05bb3a0db2c6a60d10cb3e7ca365576250a380fa4b956ce066e72a0d7739a4b4e317988b64270732ff94c319a368cf0b8d8018a2d210bb37c695032a3b4da71e25e2287ef34ed68b5711ca99af1cc6b83caba7eb91d1f10eff920d9b41091e086487cc438e461344905b7e954121948ab8251fb0044e6cd8075f28b70a67132c8362b71b77298c2200e11b3013b6b2ec8b21e7a23a3cb9456567b3a090fbe642a1693501db47f8c4829d86bb1ae7accdd7763fc0b5e754ca5999a1544615dbb1acda7749c1d89073b130a4823600e322904c9599c31b67c963c307987fabc4e482910b57a56e2417eaf978008c9fa38103c15ab1a811b2b198a5b7201ef767a26a758400469ce0b1ca83920fbcbbc51c8697cc4b687d8ba41d45725551a09e5cb230532760cc15292c4ca9cc77f6e215d70c8f6e98b35fb21c5e0993588c8f76775f92c575c013270c167cddfc76de12261e84c1b506737a7448d00a6d07456fabb620d985607a32526d276846cc739276122bc14cae94543e11276805aedf36c404fc079117196383cef2681074f954249b859498a8ede375663755890613b15c2a8ff25ade0abc4d674a050369a596ac3e446cfc3171600367f89c9251e33db95c508e09a64f683fe7420c5ff73ebe5836ebec9e0ef1a39c02acd90275f5d9af9eab8c741023bc91806d255282846cb5fbcef030ee8e721d0566c29f469f5773938d679dbe17bfd7de66be5e4126f5151d1b086e26a88bd9f20710ef06aa0f834722b801f6b79c031f1f9213fda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 +ciphertext: a1752c6d6ce4394f2ec75f83b811a7216e0c22f7de325c4f443c4b42b8b591eb1cbfe51016809b0056a3791bf89a2d1c1d7f33f487456bbcdf4c129d1896293b2a247fb921586e048698a53059d76bcb892c491d7bffb93cc79dfdcca78e19bba05bc9602f35e1e1ae7a39f8cbd5fd8fcdc78d2d4465166e1de58d9fb958c697a87f003cf53e39a5d74c800b2ff3a1ff5e55697b5717a024acb384aad7b9e0378edf0a32c84041b0411ea2536756354adc9c94e434d485625eda46c49df91e19897c73088252975d53124b0207ee6f0b298eac2a3b850d38f87e8ae34ed2092847beebd022a340b8397feea6b70f58048c9e0f7ef1871e3900665187a0bbf9020c8193bb72619b23173f2519aae103412c2938385e4d95263b0c6b1861bc8a9eb18bd45b649e2c88267375af062927cbdb36073c8baeb2c18566424b19d1117eed47a2ef5c9447548181a6e1278babf995c236a0481da77ce3fae728f1af4134a74934163765df41e05cdd81f5089b4be2d98be48055b9a15e2531ceff8e25fcafdf8c6947acc221e9a7d497ae3e6b948fdf5e424ef8cbc7605b14313f96d0b8b384e83709ddcaf9ee171463e4d99ec20a0eb4c935a9fc150f8f5cd7b8cd35af793fe0c6e8acdf937b8de68fc5c340e167c9cd54e3e5e62fe5faf9a3509c12377567f0f21175cb80dabcced8ae1b0673b78604763a64ef8a168614cabe7046a4551fa6058b4eeac3906d69642eff37ec1e9f4c1de1c3dd3ed950e6673b8a9f5478d136309781b6e758e4e8b0e1864dd1dd1f961012bd47f4163e0300e46fc39ced1aa6efc4c1cff10633b6740d9436f7c024c9835f647b868f9eafc7df5b99b4347b7b417973019308d564d5ee6724c630c891bbba50fbbe8b902d7d53761115bd4c6b0cd9f1a7ba657e8d75680294f35c0cebcccad433a633e1d01b8691ff74a7c2711ee7c1aed207fa3dda7dd61082198b870344b6ef33016c27879d22a8753993b2cd017387e5c23b18367e5eb3d3d356483cd4f8225a0b6d89853fc0a2869fbbbf3f6f4dedf302e0d8919fe06f5687ddf38847d2da1fafd710410fcd5b1bbbb14e1e6e3cec8e3749d19abcdba23c817666a4bba93a14db6955bd8d9fc9a96283719e6badb4086ba2b04d7c8b4292fcae74ab859b5f1d58a691f97b9bcfc987e4c1f7aaf46d7eca4948230b83d033b006862ba19170d524a3e1c79503c548396fb3a0e0d4ccbe0ba4a5b3f49e66113069ac7436908f3e9f0e536d4c6c54081e490dd965d34767a2f9e26ce5ec761f30b9c561729b4be664a9274320cca48fc35b0e878fa6f3cfa1531bd4cffa1c09a47bedd5fb7871a56581356f2fa247c11eb60c160d4da1393cb46185ee744e220de433e3afcc3103a58ea775e4c5b8581d4ffe4df3770cf7b1a4ec174d4346440dca66c1a3dcc4f2ee81451126e069e6575fed7f292f4f9fde60bf3b0ec9c89fd92a04ff36ba28e1270e1122554aa75083844d3adb275cdd15a04b71fd25eaaba2522c2745d46475367b349ca9a4077d +result: pass +shared_secret: f7a280462f93b619888b5a72da3749556e53ef4f4440df728c8db1edcc86cea4 + +# Official test vector 99, seed: "2a6f7386b815366f572aeb6c79e272cc21b7095fe09575f18072c9d677da23bc9c8a4bc393b7524604d299bedd260c8b" +private_key: 2feaa7e47b8e973ca66cd8be82e5983d295eee270134086481a92e55d3a282cb4e702b234e3a49ae7b532f6183e0b57e4cf688121a5da377aafdd36f1180816ed91c28038776169ea0a11937e229f7b57447f4295f457bdd89191d6a89f6a7146b55a5cd16c743bc3f3f60bdac4c1ee7727946157bf1929d6b7c15836c6b28445601497e07376426239aa3c0bc8135570d9623ad828f858a6ec5e4946f189864e87249eb574875409aa22967141380c633ece33567da5811b9a40759403becc297ab63622bb9f0b5cbf52378be037882ac9b25414817b4784101683b8696a6f9178323762bc419fe939ab0c8640422743b3a7e628382d36bc42afc4dd206a160dab1d1551b0e7a349e14b5b66077d6b85082306b1dd83ad0b16157e0c1b910a5d3fa562ff2c008804f6c1caa8f18336082ac4f8abce7d4a1e680361140b69b80574658c6f6f0a4d27104dcf29c55c74500db129e55114121764152c0eafc1e88350816057197466b50da92cc034996001a503040b7847fafa5950e8acda9a3c3eaa6b7e475c806401be2183100447d82284515a1a191d01ec7ea8eba84701feb15bd149af2e66cb3844204e3bca83976a088a291fb6c70425a09e42d292b1afeb0c0ac94361b5673ffc25a4b5812d211b0aad388fe1538a5929edcabb11e317de597b8db653cdc552938925a2be642fcb78bbc271584a8b27904c4fb6001304822cba9b96b9b0a79901668236494d68a455129e9869693dab64d4b13b7ca6fad71942b955c1356735b0a27aa037b420300983155c96903bd4b1235c21e8273416660b5b977ce37b6b44bbb09bd197a97cca98cb87a2ff1bc9c0a051ed98560b6b761055d84143f052a686bb3623da02a208b184d1426683484a7594aa22cc705173024f35b8e24977d421606197e0c21c9d145c316b7cedaa13202dc2cd4c62224e01eaf865f7b018a4a938920f848f436ae530a591a2617aa97143f8ab2005b9f9b734c82145c34567c59518a8ca13100ea8b4e3420d698450b70237765b62e433cdd2a842468bcdb42a639aa9644d89f4840351f3096f5c67cf17baad6cba5c79c002ae25a55f224e3b577111b4647e0cb0cb12907554fb96b77a8f267593a3f506b1cf53b6a01136edc0a684e2b8b4825066053c8c232b736c321f1708226fc3a131b1073867cc0872c53a85426ca1bc3756b329598072a352ab82fa8a61429a58ef21c2833d1bde2c1a919c75ad52a4162abbe2829b2fe93c7990ac7cfec8eea930fc5cb9ca13b2da2e80de600325d965982626f001371f59aabff88c74e028c49d5ac3c766efea499e2375a330c91385831e990cd69d6cc8a415a4e563eafa0319607b171b130ac842c66589dcae283af2b884beb6b6ec84e48f037afab54fc2c6486a7a13c9c3396d3b6512a576cb87599aa7aedc97275766d6a96af28327dedb27386923b98b647d5003d5edc718b0477a5164000799ca30c08e8f8a9ee728cd0b0aef4c16b1d61c751e32463e4b785223bee6227e3f88fcb469cf250a64bc7a3149ab3edaa730d6b4e6920b7b5c2bd55b97473b91c3c1c5923067c08db693c97ae832427dc6439576749df139e19d9580ab8c49eb15b80e09e6845335fe1c21f16c49f6b02f2450f4ac135a9eaa5e24a3e3f350a6982b5979a93120285dac88e01923060a795d251c1fedb130828582c95ca7340b2e8e105cfd64f63e63f85a955dcc4b12b0482d0994df7ec61b8b09aa4d1b8ceb94b769a2ae12031d16c05cada3a4d0350e8d970ccf716953543a984cdb086c425915858d454880c97505bbb9ac7cfa54055526689033c8241300e11d09283441043b91354d1c0dcb4a869f225c8ba5b290a77629004ba336c8975366002667c99b88b53a4b08ab564733b5d2a3011f944b2259845dcb6ab8956836656e3370f5981203943b343389f2a98cdc96bc1a996648580b7fe837817ac4db31a2d325a869950a32d99446256cb3d8b91c159683bc8c1ff41287ca54530e84082bbafad485c0f179781950a4722c9114485f6b403f3760678e3bbefda309adc41ca562dbcb739654abc6cb05216807e2fe18fbb485977380d8c0282e271c7f1f8c14694484b76241a1b0cf3928ad9e328357ab75fe909957419defc8e0da3469e7720a5e91df7c4857ed50b89d18ffaf6a045e2c950e178adec7a3d690fa23527d3d353d8731857018d7cc909d081cab0370cfcc8bf8f5463a4fa8706a1abdf2c6a7fe8c834a4ccd8b6c869c6bf93c808a43274620b30aff22bbce53a7ff85145779cba220dabd1b597f4515c1664a374a64ae18884b0919668a70b371e24d2ac1a84af7de3b84f804e105177f6a9b914cb5dce45c678c886b3b24e3649cb194c548fba4114f278a56a4310a7cf1cb16e8ecc0b0fb8a2685b30631753b7f87eec8578684a67634119fe8cb334b67b741305aee8762639a212b9baab4032653b1537327eba5b6fed245d17631e748532426c5a4f4646716521dcc72f4c34a38bc87a892650def1bf09991e4c175d0baa1bf6469277f75a2812aacb88534c491f4d3c884a4470f01b805efc160ec17f68b0b0eb9910889a02467232fdb268848a5d6969c91410775fe717c9103cffb9a2bc13b1bbba01abb92ae303abfefc51af169d25d29316e7a12a5bca6827c25df567ef0c20f13a6fd728a32e229f72b42e74470c88c105bec0a12a1810c3d2a3d84b89a8c9bf66cc305f0b0c3fb989c3541daf147d5b02813e7904cc18a5dbb6632af4a34cd42007f09ab4a88c1705958058bbd6f996fe7642a0b45b690317d0e658ea82094d6b8d55722123fc1bd349433ad4850b19a4f6616685767e67bc21333a9f667a6c422087398b3331c075cea9aea6e29e424653d5e7a86766613732343341491726869eda4f97f1982e62c4cf135b1553a0a842b35e8ac23f29a921039bf31833f12ca8c4f02021559e1ab5bc37d247a5078280f02956ba2e2f897b48e18a769908e6b8b15c63b5a780580d02b5f70749a5442c824a0f56cb00378bc0ea2b033fbc9d45d535ecc00f5579a687865702436d3065461a06c8b274561d938d92290a8c0bbc0cc746aeb253e4823f8bd7b6becb5b1f8a5403fcb40efa5f6c34c43620921a416aa769a6ea1ca15c765d0e53c70b0a719f7b47ff783b63701af5a9cfe704c7d99830734c1b1fe00a1d9166b11060baa09501715310b93ead6825ba9998d922ae362092349aa45abb04781a98b25989e8309c40698a2676b49fbdca7775f554d2448358e6a4bf5373892b712b63af3392fa95dea1a8b6f12914ed31f14f79c652eed4db478de7ebd263fe27052509fee10b50f2d053ae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 +ciphertext: 381ebfb00ef96db47a1c412af508a5509ec6e92bb3eb0bdbc9cd3611ec6b875764aa7dc3aeb515709f9d3b4cfdf6209598233df9a84e13a1dd779cac72eba5c20c5659e8c12677eebd55584cd34bffa6572ef7e83479c271cf5131bb5070085c3e513217bae58724f5e4ff3d5eb3c21d6c46e18fdc7d95ce55c3e2e697a0c99bcd8734628e1a93f73647ffc721a0d325b4cc9ab028e1f3beb2006b46a61632d1b69f26514c0ffc18a5a7443d4719e46a55476511c868427df2cd91d9626ccfdf2b1232aa5782b698d0d5ba501ff0c993b92b263e4cadaf631522a5cc7bd293554598dc42056efe2dccc8499dd574616092461bacfef03a85c4100550514651c5fa70c7c172ad82e3844a7c5c940997ca9e9cc6333a0ef5dd0c60a97b93c6bd56f18f014182b3df3e1127411b58e2a095b8fb4a7ce43fb5ac658135952c16e8c4a2ca78b780b39518dacfdacf9e93ba28972293859644c411e37070c877e6a96dc08875d2bd92d54b60a56951af537f02cc4dec141eb68ed3ef48e4d598a0cc899488cd73d2b676cca349b2c2b70d9931dd672bcc7a15d41db475c058528c5e1f8902752a4840be08a733f277b5ae5829c36fbf55ba91338ff92bf7811f5c660e12d3d3699ad04ad1d54a21174c8c630059acc5f8f46662f0591769efb02a8bb6af57ccd05d53b96b987f2ea676bacacd6fa4be275503a726d6f1eb65438ccb9563ae9bf6dcd313f3b819eaed568ac05192886e7e2b19ee532bd076999ab8e3e489bc596f9904e7c35b0d93614c6afe2081e5d9bf545c711af029107183f1ba308d78c4becec16f49656fc03ec86d8ee25a39d11517be38d270601f888df16a70733ec3230b1cb537db4e5bc13e8b099f7337f9e3e5709ad3fb8ce2445c332b87b9f263d4cedb3f7d30f014905a214ae7223fe1263b99ed02bebc0f4a298b7b1f4722ce622f02a6e75754e567e1ceeec73ef725ed5e7caa497d5e67d133a08db2c42d876599c22e052673ff4ca3a9802dbe7b3e8f69dbc36e713e8caa0765cdd74a3902d5a23dc10a01deab09d05418ac3b30f7c06e594d550843794c4deabf8e805806583dc30f926ec191786c661e66283b01d995adde5e0d2f59fa044abcc55b78c05613d88cccbbbe8ccc19208569493831115000a8c0dc41ce0f3e7818f0d2cde58826ea8c562b84999f6a9c3d914eb109af6c804c16fc0648336e10427800a146339dd6cad05667e98a2ad35ed890095104ff45bd7c51121bc141866671d097006b491b1e6841fd34f0ae5f8298ab62a4dbff7ffaaf67e1fc29656b75aaa1a1949db4d8d3dd4cb2ca2a8fa70ed3a70db112bc261c2b58ae0ca834cb2c358278d5af6c72ff4c64fe0734f6932329d7a6c6a6ac19514401128e45e33f69a8c484ee7bf11c0e729970364490affcb5fd8ce9fae282848b7c36957b033253b8aac9b83bcb9ebd551ba3a1d1511a0847fb7657b2da87fec3a5e0e90e9a0af46d826c5c1a932f0158e5daa18397c51cd42d4e8d5c8571a065ca8568393c6a5f2e +result: pass +shared_secret: fef3730b905431d14aa7aa7bb1d253cd912335c590b8d7de1e7aa4e0ff76be04 + +# Private key not reduced +private_key: da0ac7b76d404f6e3aa1f980380cb36dcae8d33f56c7267a00a67ba7cfa2b14c414239662f68bd446c8efdf36657ad891a3cc623fc68b667ff7b29a6df1f80155eeee429d6d18d71f94856e36a832c4d338d743516659bd25879c007a52bc9586f79876afac6c9b3dd8fbcf43ceff425d6adcf4fab7ed39014757a958bc8a74565f029f350fd4b34893ed7dd5501c37255239aae2ac19f8c75ac69d0dae8300dbba710ecfcabeebca3a38c5844fb286b8519fe36ad15b9f7bcbb06a5607db375dbe976458cf6c659825763eb2cfb6ee705e69194d804c38388376c27148413da9e93afdbfdaad69f0e8bd38fd53da8775c0b739f86edb31d7cf35a434d69b07e5bcdb87434139bdcb556761bb5f2a5747b28747d80eb9d6cc673bee5769377b996d36ceb1cdc7ed9a658533324869c19aea3703e470f14c5ae49ab0715d7f8249ce404b49c0a8c3ef4ffea9631fa2add10d86b93f986e0e3a82f7d3b74e5ae621ef4252ea89bad7fe68588460baa368786486a72e5ff4d2dd76cfc03b694a5ba91a755a0b98f3bf93308cdab64639aea7a6498a3c3ddc571141abca4678cd3efb857fb88f70dcaa596b44bd4f2251bf81aed515f0472391853701bd1eff94540eee876b7c75aad7dd845caba4555264a82775e93fd08ec621aee209f3fb24442cd1cbe94175003fcd6ce77a3c64493c199987b4ddc95c53c0089b5d65c92eaa7eb2ffa93b52a461fafac8c199c2f5cfb714f97ce3c394aed735ea8a14aa59e8dfcdc878399007e747bbf44ce46b5f233d4743f3d25c66fe6c4e9b1f4a112f5f14045f56bc43ffd2b6b7b378769a6b4710dbfb6357d468e4baef3857d379e2fb8b5e63deab36f74bb1b70ae4ffcd0439b2eced9d0fda2f8f6d0995571ffc38c590bc4c86e5c6addc98ef430f30861a87f3800ce7061e475d6b3dad1b47fd039c3a447762ecff11dd3ed0acacfd55890a68f4798f9aead84e3e0fdf8b21efbe8b6ca1026666ac6bc954da449c5ead8bba7b1afedd4d8b4a588e36d2ad5db38cc858437b35e61d1c3c28fed7bbdffb24a2edd2288edc315dd8dddd90096b38a95d696f86e9e6bab335f71b22486761ee9696df88119d497fac0af843c1aea76de8ecf2adde2c77ff7b8fd6d9a6e309c0f62f83fc9a5ddbbd077f7abb83720ffc11899a098375c4615e6b2cc88bc06f9ede37d8f3b3342e4490a85606fcd3da2abd256275382a3313ecd411158d1032c519f45dc3e6abac3e33b93b4a19f7c5466e58cb1ece4b4a96c4767f9fa7ebdf173cdf354824e0e9427f95b3b4a4a4a958e476a6e6a9ece6f06cb5dfca7d448dc3eafdb581eac1fcbaf4b9ac800b976d1ec766b6f6cc2addb66b3a9dd6fc5c144527a296bb07d433bf657c0437f87597bd7c8bbbe9abc3715d931a4a86a8fa2028a74454c9b810c88d28dec8cc98a1d4ca107a6b25ea6ffe4b6b03c9545336db8082f8637cc9eb12acc0954959b5fae55de97740daba0cafc156d9bb29ce1d5fac5cac882986d3283e867a3648366d7f4d9354cd8ae96dbd9802f7b88d30ad11f9c97742f5462235e9145fa2089efd8b87fe3377ec6a3940c1e30a0cbd4e85eda35ef580d17ed6c66f02086787a6590f84393a8e651a1e685f22478a8954f007bc7711b930772c78f092e82878e3e937f367967532913a8d53dfdf4bfb1f8846746596705cf345142b972a3f16325c40c2952a37b25897e5ef35fbaeb73a4acbeb6a0b89942ceb195531cfc0a07993954483e6cbc87c06aa74ff0cac5207e535b260aa98d1198c07da605c4d11020f6c9f7bb68bb3456c73a01b710bc99d17739a51716aa01660c8b628b2f5602ba65f07ea993336e896e83f2c5731bbf03460c5b6c8afecb748ee391e98934a2c57d4d069f50d88b30d6966f38c37bc649b82634ce7722645ccd625063364646d6d699db57b45eb67465e16de4d406a818b9eae1ca916a2594489708a43cea88b02a4c03d09b44815c97101caf5048bbcb247ae2366cdc254ba22129f45b3b0eb399ca91a303402830ec01db7b2ca480cf350409b216094b7b0c3ae33ce10a9124e89651ab901ea253c8415bd7825f02bb229369af972028f22875ea55af16d3bc69f70c2ee8b75f28b47dd391f989ade314729c331fa04c1917b278c3eb602868512821adc825c64577ce1e63b1d9644a612948a3483c7f1b9a258000e30196944a403627609c76c7ea6b5de01764d24379117b9ea29848dc555c454bceae1ba5cc72c74ab96b9c91b910d26b88b25639d4778ae26c7c6151a19c6cd7938454372465e4c5ec29245acb3db5379de3dabfa629a7c04a8353a8530c95acb732bb4bb81932bb2ca7a848cd366801444abe23c83b366a87d6a3cf360924c002bae90af65c48060b3752f2badf1ab2722072554a5059753594e6a702761fc97684c8c4a7540a6b07fbc9de87c974aa8809d928c7f4cbbf8045aea5bc667825fd05a521f1a4bf539210c7113bc37b3e58b0cbfc53c841cbb0371de2e511b989cb7c70c023366d78f9c37ef047f8720be1c759a8d96b93f65a94114ffaf60d9a81795e995c71152a4691a5a602a9e1f3599e37c768c7bc108994c0669f3adc957d46b4b6256968e290d7892ea85464ee7a750f39c5e3152c2dfc56d8b0c924ba8a959a68096547f66423c838982a5794b9e1533771331a9a656c28828beb9126a60e95e8c5d906832c7710705576b1fb9507269ddaf8c95ce9719b2ca8dd112be10bcc9f4a37bd1b1eeeb33ecda76ae9f69a5d4b2923a86957671d619335be1c4c2c77ce87c41f98a8cc466460fa300aaf5b301f0a1d09c88e65da4d8ee64f68c02189bbb3584baff716c85db654048a004333489393a07427cd3e217e6a345f6c2c2b13c27b337271c0b27b2dbaa00d237600b5b594e8cf2dd625ea76cf0ed899122c9796b4b0187004258049a477cd11d68c49b9a0e7b00bce8cac7864cbb375140084744c93062694ca795c4f40e7acc9c5a1884072d8c38dafb501ee4184dd5a819ec24ec1651261f962b17a7215aa4a748c15836c389137678204838d7195a85b4f98a1b574c4cd7909cd1f833effd1485543229d3748d9b5cd6c17b9b3b84aef8bce13e683733659c79542d615782a71cdeee792bab51bdc4bbfe8308e663144ede8491830ad98b4634f64aba8b9c042272653920f380c1a17ca87ced7aac41c82888793181a6f76e197b7b90ef90943bb3844912911d8551e5466c5767ab0bc61a1a3f736162ec098a900b12dd8fabbfb3fe8cb1dc4e8315f2af0d32f0017ae136e19f028f57262661358cde8d3ebf990e5fd1d5b896c992ccfaadb5256b68bbf5943b1328626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f +ciphertext: c8391085b8d3ea9794212541b2914f08964d33521d3f67ad66096ebfb1f706424b49558f755b5625bae236f2e0079601c766f7d960808f7e2bb0c7a5e066ed346de628f8c57eebabbb0c22d911548463693ef3ce52a53f7ff415f00e657ae1c5a48fa5ec6e4be5cf462daffc84d2f6d5ff55dc9bbe8bb0d725ec64fd4cd4bd8dba0a844e8b5ce4b6a28934d7f7a050991fe185b506b451dabfad52d52cb2114ca7d9a5cf986c8fdc1bc10ec0c1869e50c03c55a76192a1049aca636ba9020bdaa8d0f58c763b0b89845ca06d4c4ddc21433e16b9c62e44871fdbc05ba218af871fdd7dcfa464e60faa5265264ce1391bd9a8c5faa7626d5f159b9805b975710a3503a0b858a11c6a647cc0e19ac88b1be9056c95b4d2087d0951d1d2f4992491117e6347794ba54571ec49bba71af3413d38a30bf5872248d1f6d07c86baf782e73d2637f043d341a00921857d8b21ddf3e1d6310036ed27af49e5de1b900fe4de79808ff29f9570859612b15adc01fbb265b305b1e3a12ae419da5b74261fa284c101da3d8dca8b2e4521aca571ef44a058e844ff32b16d5aaea05f7f3af8e2ab16222e347662eddfb891d0ecc2a55c5638f9dde92d9a3d544a5f901ac501acd1ea6a010201fcb10ad702c425a94bdf5890d500a2a147eee1d1fcba8c3abe7c2dfe70f346f033d816a0b2791b4f0b2d956d9ee5971715399a5688302495e2e07c1c8c01527184bcd0c208bc159f2e13318c0bb3dd24a6a7fc849f83385ed4dba07fe1d7bd5640cc9ed5ccfdd68763cb0d0edf61b292177fc1d2d3c11dd0495056bcb12558aebcfddef9feb4aebc57afd9023c65cfe65a24e33f1b00111e92e63e011eaf0b212cf95743cd07f5189ece1f205b7f6fcb2e6b1961b5404cebe47c8cd13b8599d5b49e6d87eeda36e9b8fc4c00635896aa2b75896e336d1b612ee13db811e1f07e61748d920f4865f3f11741399dc6162c91ca168a02329dff821d58198712dd558abb099b3a0baf9da1b730b2aa73bcf58d74f357b06f7211c804b6c8af16ff3509fad1d35b14bfdced7db8a6a25c48e5956480724daa057cd660b67ee3e472574182679d485838a6476eac02141075c812af7967ba7c9185cc2abd2a4545b80f3d3104d58d654a57792dcfabbe9c0715e8de2ef81ef404c8168fd7a43efab3d448e686a088efd26a26159948926723d7eccc39e3c1b719cf8becb7be7e964f22cd8cb1b7e25e800ea97d60a64cc0bbd9cb407a3ab9f88f5e29169eeafd4e0322fde6590ae093ce8feeae98b622caa7556ff426c9e7a404ce69355830a7a67767a76c7d9a97b84bfcf50a02f75c235d2f9c671138049ffc7c8055926c03eb3fb87f9695185a42eca9a41655873d30a6b3bf428b246223484a8ff61ee3eeafff10e99c2c13a76284d063e56ab711a35a85b5383df81da23490f66e8ea3fcba067f5530c6541c2b8f74717c35023e7b9b3956c3ee2ff84ba03ccf4b4b5321b9240895481bc6d63c1693c1847852f8e97f50a133532ac3ee1e52d464 +result: fail +shared_secret: + +# Private key not reduced +private_key: a2c3e5a16cc2cba3500aca6746967dfc8d8d171cd584bead737b50ee44d8fd1c7937398460ce829744e662ca3631deef7bf77710d4e4cd9f5a3c4734cdaab8f1f677b33694068bf30acb79b40f62f74b923afbb06ab880b75a609463b40e9d8115489f3a4f473dc8a556ef403b8ceded5eeb9818b627457a5843d5301cc34c4cb1db3be2d70eddeee4f69fdc9a685dfb89c7efb47fa4ef593a17a56d32abe0ae24c6b3e750705bd993cc64a71840399bce5d8be82b66ec9dbfb914673b6a5337394ced77d497f426cde194363c5d683e2bfc8be9d9631e58fa9bdaa234a47ad7d2a95a96b37c9f2a233e69b9779ce793789adc2faf5f9b5a9a8444afd6c6ff5ad6860c8ab1268ade57acaa53bb86c74f8cd7139ba48954ec55bee3f83ac5a47ebe3f8f063e82d395cb7576ca56a639b3663e92f79af13abc21bf51fe9d3524f9a16cd3fb631c83b1e7cf5e04800e193f1595c56397dea1fc996f48f8b2abc626c591386eeff604d223af5bc644b154267a0bc6c1077d78c993b3d6ede8f44c56363b9c5cc9b1ca6569cff876578b5e877d3d31dfdd733553551bea8e669f2999b6282db6dc0ee10ea550fe6c3973b6a396c5da03235142d7560334df78055f083bed2f59ddadb8b3a0dbdebae99ab2179f2b38b274d5efebfb57cc97f91e34bbe5fcba818a3f2da4c3fc8950f52cee806c5e6f4552f4ee87d83adcf92b7da4ff6ae04b8c86f7a91b545670c4d9dde5863cc7b7e30b937b13accd1c68e808ae6837e75bc8f39904a88a15824bf6489e1d44620844a6e9f469b3e1943cf1294ba5f27ce8dd1ade85fc85f34ec21528e5f00db3bee3f2de98a7f719fdf6ada5d3d6b425bf6b39ee931dbbf40244fbc12463aa96a0a1d4fdbf73ba15278a22448a4fc6d12d2e4def53b0fa233dbd096cfc2d45a255c75a9931d7f3f84f9b95f658d7200d343ee5801946f7ff1981ea9ff64e63940287860fa763663cacfc6e350e7a4b53f770253f34802f596c678585e3cfbcad7d782766c8399ac21b37a9be6a79e6a41f06d7469947af07c226f79145174ba4ccb4c02f6cd5cac54055b8a18e5020135b94e6560ca89c7d837e737a73a0278f0e9beb2a8d6c19858b8337967e5f7d0dd6a25a6bdf2338b23ac6a4a0496ffa8672d27d75cc9c3b21bf4fdf9548567a85f707998a375bdd044039cd9bb40aebf4fd8a37fb6b17ecc29c756ce9085edd76618b5c459bdc4e371e99ada77bd109e186f443dac6a9eca4ce9403b4c5dbeeb6d74ed2f79ce9fcd32174748c64416b676d110bf9e8ccbe1fd3aed7ddc168f9fe407d96403a3fdb0bf9515d87c6db9f2e54f33773b03f5e66ae1669052fe2ccd58ee868da2d6861a30b6814f6cb550a7d9324d80413bef5c847ca4e74e69db765869d0c9c6002aa377bf77d7f06831615de62f7fa7cdd83413f40c1088f8428784a2efa03ac8ddbf9d7ab574c4bcb356e9834d4fab5c29bf010ef33a61599c24f59465af4e43eda99c7c601b8ed2bbd7d65a9504bd6890628554534e1322ddcd03b5dfb05b5b4caf9167cf26ed4347c2ca99e3f7596ff9cefbc863626ec4b755f8795e675d5553308c70ffda8fee3be06af7f53075ac8de710ee3e77c133793c140f6c47b7e53b96f72bb18447d277cc021c144a0f7a35e30b57386a78ac976376262320a5e7e1cb42e290de684462ce1067e920ee86c32418b130a5a41a0e8268cfa7e0db2b441cb927d7897c42b1d50f9b32868a35a2c04cfe91040e9a9208902f20c477e1b1ee5c290d2e5244eb1b4b7b4c6ad074533b58d9914a6aa8829f96789f5cb87607569983003f3a2461c33c81a3672af5924c4ba37e6827fccf86d8b4103fbe9c0f6226dd0a2145a6b7aec76b186466f9c67bf169039259574456497140c8cf4ac05091973ac8c08d809465785a677a032ac09ad1d666e8c48462813ce5ac75f184b38251c30e362b0e2501d6800c8ad103c8b773780b6717cf15c401139acd54b1598b2b7c79492a86631090268c70d875bc040cb2b75a386fa96b092b8cbc25c47f70aa76cd8b9afc12b42b536e27c5578831a96dbbab7138c3f247e955a6c08b4407d4708f1914bfa48af4b28533f747b860b7076c028e245c9727b42f3248fb0408b3ef0c4918ab76ab96daca81afb1211ab3a0329ba1a5b069a68934c1ce84c2f72839311257fa19e72c62fb5686b61416caf8b22d2b26a6dd01bb7387f88eb8606980a5e2259cbd56ca1ec051cfc66f96239991a2360d75dafa1534c8a05ab9c95e2e586853714600a3455511b62d94525d8b1a965ce69f986731888d1ecce536000e4863322a83e3c8475d9eba5414a65b0561d24a7b09dca6ffe23836058bec0a85671641008c831233c7890783dafe8c359a263e796869118c4e74002dc3b0ec5b1c4ac641bafe30eb2bb743713bfed2c1e79c4a6f46593006acb35f7031f194807b893aa7a9323162168d384d0e96f2f23368626a2e027891ac94f12f30a044b85f0322ce2b16517d36aa3f23b5f391be394b54ddc28e5a9775372869a7b50b4898c072c0669d43c641a3cb5e8c170ba63bed6ad1008615201305e292e1c818e1ef64f3e0c52fba67e7249c1ec4a140dc89ce0050647f1c19f5897c77b9059040b4b5b4282e0669cb4c658f48f67338413c92fc7412e444bc635dabc93c51b030784f21461dca210cc6a54fdc25bba09705baa77c1826636b16644a5ada51270d8317a787abf53192d40dc765bfb45c7dcae58481af3a49fe762b90bac1f6f69a5de8045981c67906b9f692625fcb6a4df2641688aba61fa49a84b47c96661e4701e5826c1108069c4b9c6e480251c4b021d11cfdaca12bbf9c09a0234186668e389454ac4046f5b2468aa2fa9b117868574e729574ee57ea7495af310627b85916d6b4c708374f9fb0c9c3aa4664c6651281d8eeb98132c1af13a816ca5b869f50b50b291efd466dea090918630c6fc77247c458aa82568a41dd9d4708af3bbca5a5716447e8c2c24ad788a8632473fdc4a257196bd2b549091176fe654d3694e10a118f7b66d1cd5af199b6e90b3bffa88a92e36717fd4bbfcc78b0e08634bc080c86885c92c8ef67aa4933c7df097891369bac5fc5d0c36737aa60971310adf02c257f76a7a7b3f7e132c2a71c52ff4affb6846391c0868241a3df13408d419a78bcffd49619b03a192c683900a244289c9f7b4564823900ceacffd9a9371260d5e57a8271196f4759eead0ceac318966e76f68de95ab9db2ba4fbf83c3b27092cd339cfe48d5ca0ba11591d04566f4ed24a57b00751eb9b1253231213f8a14f06f0fe1b7a4fdb7d1cfe44c161e577e5e8f0a003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 +ciphertext: b3b339d73dfe8e3db262cdea792b4e3ecd712a75750a3b206800f11116637b58bc75ea61bd74070d7132309176608c33989fc510852c0f8d07e9862b79b069cfb3e5b78f277a74dcc832ada24f7d522e53a7cf16a7c7d952ed9f4dd4be4910d880e2e7c5b23c6cf9077e3d350ed3e7bb54ca7b39a9f68e98d2fc844c62f3eed092c8c008e4c2a28b3b1d9f34488655741ddcc440be7828ae39f25f52f57d8b1cfe3967af165e5affaddc8a85cd4939221762be2f71155c780ada5103976c77a76f838bc52a72544b22cfde6b6e843b4e552f1ba47419a8a8bf53c388537c1c08c272a02f4923d9edcc54dc767e6613c6f832889ec05ca805fc09e326d242517e91607005af03cd1acb242e630d6c20499dec187d8e5f6d421e2ceef7e3f74b751214fd58b6583bdc5ede65bbb643974d5cb45533f0a733a3353724e2d7e6821d99d317eec8781d3f1e03528fda480da8cd8e8adc51585a14acb5da154a68573b0566e5e49a53b4cb8061cdc795d13899032d549ac8f7c35099eb2ba0f0df4c9558444f4fe5f88bc46c6fca1b257c62d2116efd1c8cdef5717068405201c086da4143de277649f32538f537f8bf13a65c05747cd44f740736966422bd247f4be9a05acbcce53b9c1b0019096f93dfa86948d7b01d10952926b7a6e0e51792f9be6bab620b9fec660a2348818e4b47cd5934ffbcef5aaf20c3acf9494ae4df9d23f62a2571eca8d37fb1c8d29d5df0fa30c2f17fe3788032d124090dfbd000155ad8deca87190d66bcc9b1e3de392bacad79dc62be0d96eaf448feec5ef03544db3a782e5f9ffa20493d5ae6a58481d23cac7d3eaad57887bdd706eebf15f505d07e3592766710a658513598c94d2ff3eda5b5e900fcc9da8c012633c96a8b9e1da548dff60b1a763bb3f5ada6eea3290a01f7367f7c2384097ebee2960d904141b6c7bb30bf640350da34b9516d9f73100476e7bc077e0f88dfdeeaf9a2855448393cc26e14ac50b67065bb3694933bc64c622958a11637f9c995e17f15cfa663e7121c4ebd5fc1e153bea84c66843c90110e587462c623dc67ff0da5dadbade9b9724ff804227e188a00aa6c70bba00aaace8a035b96a595ee726fab666a08a4979ebd1e230a9c48afe7779cdd9f0d019e2400db9f686011ab05c4109db273c236646b481ac7251fd70d23188f943f6f282bf059279464645c9552de905996f2ef355a4d307448aed53728b490baf108a7d2579dc46e44334d1d99f310c8c953d4b3fbbf6b15a99b263775a1f9f0c0fbdfa260415ff4f61c263362c95fe9fa72767b8625f09b91c393fed48bc8f628ccc76b5ca49d9c01223ab4c1a9f25ac97ada8783b576575fa699140394e53daedf683ee53172ca9ff70c27a3f940675e3239e44a24804098486decb72ac8d41bda6e2d3585e2edc1e47cf1999fc67aa000677ba66ac22576ea087b6e7affd5c1617b3d94fdd314d17e6d37f9e5347807fe21fc5a9d75b3a25541cfe4a2d2c9efd00859d713cd6f67314cba4cc270fdb2e6 +result: fail +shared_secret: + +# Private key not reduced +private_key: c237d2a2a8b54046661fe48e8c686ead8d7794eb4a67454d69bef825c99c73b3620f1482ebb7ec724cb8edeae6d06afd630a4b7d967d3304fc353ad7538a8ccfeb481776baf84d73fee4870a0de32add87bafe6d36f9d7ab89fbe2b86baca7c58b03ec63aa556623e6824dad1cb45a70f3ad8f88ac7f6b42179b62707ba010ed776ff45f575436ae7dbdab0769e05587314ba7f29dfb2ce653625fa5076a991eccb79b9d835106ff38c75bc3db7b880fa104155b881f9b2b3a6d3a157fba573c1b96b2b8ebc5337f67aa47847259bf46f54c316bf6748a6f49eb3721e772032b6f0dd48a44755eeea543624cb62c6965840caf314c81a7d49c1a2ab46d047ba55f44b9bf92f82f52844335db1584974dfe1564d86b5afdf69aeaf1737f744bdbc5ed7be50affdcdc4ba03cb6120e327fdb6e9aafb1df9dd46253ea5e45870f5bb61e058b21ea5a4f86404f99459b4c8cc5e9eae4e630ff1c380b49e9c3ff2f06f633fc16f451b462141ee7e60fddb0cf760c434e404944fdcd3d64d5aa8beeeeb207f8dd7e917f7fd0f61b53ac7497eb198a417753482c3fe988c53883372d08ac11c5ae58af4b787a995f6acf6e359bc82fe032e4bda65c618963b84785a86ebef36289bb2a6b67170fd64dd43c781fdd8686b47daeb7ec2ab36c17e41fb8693724ef45e9f21acf5edace3d14c7ad682640a5f88b5574a283aa370aff6d9aa739f55c776526321a4fcc8115a69e89dae357765c8ad5ab45f66dfcfde96acf5e1f6ca86763e18999ea5e3f5b68d9130b7e2616392a45e4638b39442a6e98c44a360d5fa4a6b1488c9f181c4747a935626895f3d6f3ddb44e1d68ea11465ffbcda0a2ffa5f98e456654490a2bebf1e4485a94841519babcdcfab594b1c263ffc92982db3994162be5195cf65b679fbb768970f885f04ac0706f692c9576c81b897a0ff2e545b150c9a57f33fdfbfa7d9ebc91f5aca92a3cc39af9f2f1257f1973979b46ad1c967bab8dd2c46d80a926467f277ac234c31d7e6ccb954b617694e8eff8165aebe3ee3b7b855534fb50b88c937a29ece493ceb19561d5abef198b81c78371a58c5ca4f38bc6a8efb06ea9b60941978569173dd4abfb82ac7f9d4358c207b9e5d55458c23f50bb8e3a8a5396cfbbe157b4a266033050e3ec1b74afc55c645cff56f00392b53fa9919fa30ecc456bcaf02bdae4e5c741830c931ec377fc163b5f16b81b3897fecb961c7add8d97461cfaa8f4c48069648e8b48864dd9923babebdd54f90aa66291ce51034f85c383fa2c7e7c5517fd2168ae930dd2a1c44b54ecf4a01457829f3138875d8f5adc77efa79fab7d11ae41c57ca9c8434c8dae8e9e0f71af6fa392ff8c5346ec75a9e4852859f1a7dcab1f4a1ffb37987f3429874f3098e97af94a9557cb66fb76fa84bbf5bc875536d5000ec67ef53c5e5c68c69dd057f6a36b49e386743bde6b4800b4aa1c1984eac8a728b7f9ae6da6322af2d6a9b27b56bbc7c65f7ae343058f7e833aaa867766089d74c9fdf0c32b87fc6564e5e4953df85b24a9eaff87b052847fe647eefb03a326a96514dc6ac804f206f59dfacedd679ee1a1a9b08c7bacf2b4f2445d4ccb9abd737593aac6e7c02b820292c46c8a8a92975a2e27292cf893a7f54a84a67022845d66236dca3c4844604b16879e849c7fe3475d03f82323d822ae2cb6763842a319114f5c77754613d5fbaec05aa801a03ac1989a725337ea38a668ea65cdb36343ec3d690ccdfa47ab1fe473247bc488d98e1e33175920a0f2272a03982c8386485bc2c4245884f1d941750a1d27fa85f0067f5c377532304261aa908bfb950894cecc1bbfd197ced78a641366b9199a4ba190446e03ae51549be7959c87a629abf24cbb7a58d01cad4949734f797ae300a78f45c70f668506977d7c85a0cf64c700a5b1f7879801bc3ac75584302c8bc81c0d7f6b237a9400681bacfc7192f9c653f8a9551f796ccfc262d3a438a551ad74c80ae9e3b5a7f12c5204ad44c21f488b7824a4b1eed79da9b44e60d8b225490c062b924da04f0ef0252304cca34bb4fc70ce6b1800fb6c5dc771bf7bda9e9db2b6c6046a1672c6f6f01a0406b903411c271b20e139a69138adfbf50c1134ae0899c166b1b1a5d818515b0dd94895a253059b167630f3a0dd3c64cf257cdf93596e54288c7a4580404ba8da541abb1b6aec7e530c58a61a64d9b9bc32d870bc105ef7063b9a97519b871a60d7aaf8c193e948c267c9c815063d6a603ee8d2249b386d94395804a9af8cd2184800c7ccfbaed98c4f9f95b70145b448387183f5cc8f4b5f35a949bc74706bd03db7645c2d084624844a55a0a5abb9244cb5b8736b835b512bcd912361fb660479b2c51b99734970808ba5c6db0169756cfc986dbda94915563c15a109aeb77c01a7cff55c8430696d6e83aea5d49292462d725c428b984d15e97ed4a76403094699e1336426b54281067e675788b3a4fcebca4431bfdc8a49c215ba11004a341516018419abeab2374184b0e2b7b7a54efc678e812588960a0d009418e5289eddcac582d3c73dd93e1234518da003648853c5b5a24b389e88300aeae78c41e62e5ee303a56b548375757cd42e21a7c59ff29a133868d1d0784197573464292547161b3a8689dc0c7de11139d407f0b5784d942278d49462965f21f72cb992add160620f6a82f70aa9a830190ce3c9fa8015071c2877483c2203bab7228ee2f37bbb17c1a4bc499ec249ffbb42e4989905a878dc873e456a7d9db946572936d8d81777d1b992c00db12a35df1348ce8c9d1a02898c7403d4107f45a6bee864375b623d30e0c191f8ad835a3f3709362cc763d63c2b91649d722825402c9ec1b1c7aa02b154d69e39da196e72a25928212fe0711bbb2fd2f9550a361a28d4295bf0c036d7b79be9130232060206c919f8b864f03d6f02348ed2c8001a30124b40c6d61dc3e18bcb27c60bd1324d8386da99c3e098cfb94b018031a4d6aa5788d27a75a67b630327add804adc21642d58080956a03f03c8193ac302c92e949cea31721813390382c814b2c5a6d34a1eb44b8b62aa77bf88b5067455fc0c7be967c21bc281ad38ea6978d228a83a820c57b4039175c910a450e300101cae45b0736a4dcbb0e6eb58491da31de3b65cba0a7c80c7815f677eea7ce5ec571bbf7c4516c65e4b2528e160959c815e1bbcad0a29ce59573d749453d9b6b52a951de9b889c79cb355c345631070b7c30f1934123c9ec68ebb324d254e5d246b14a0259e49b2ccec72b8c4948349bda55b63cffa9bf953993918b18cd6595ea6433b479e89b5cd3c9339e4468cbe82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade +ciphertext: ca1e236472b3fec4e2afd4298eade05a462fc19fa22e6805b386282edba027bf2de8d13b825deb40fe10cb8c79be238201a81d7ec48400375019164b1515853e69144453f1999346ab1ff386fb3eca8149b5a2b7acd49a165e0cb7f7509e0ed5d9f279637b26570b16ff34f904a42244b15af7d3083e0cdfe3c03ea42f73c75de1860981b8a25756bdb18feed4bf461f765583f0772a81d40508498b54ca8477db0d7067a0d9f7d00fde68644fefa97c5e21e3f3ba7cacd67cfbaebd58930d7665bab99a94da09a2572b5b5232a366e556c766aaf5807004c6d3725ea33172eca8a6dfeb079b0de46ea9af3f8627ae8555ea18c0a0c12b211826768d8a8a1e57b1a95c9d98bbf1d5ec07348ade6f134712dfe84e434fae1fe9671fddc8bbd2b69a15704e8b0e62abd5492afc1835bb24013cdb83f62a68b329e8b340b904bff04b4eae972df87bed79df39313556b2cdd348f83f5bd248bbeba7ac06dac17156246083238f988cc196b5469a163d602b70b1901fd240b480d67484dc4c0e1280bbf6e528a4f3b6c734587e33a1f4442ff0310f6c83259f7b94a162a4a2a49e1047fac23a245b2db3cbcc94192d7fecf40eac4224ed4067533e8f2d468332307fa9f82c089663781851a2c3208a23cb089ab744f4aabc1c21717388bea6fb01789c4d77fd4b2e0395c841565cd8c9c2167ce483a363006583d895deda5351c1cbd0e182f59782e5e76ea45d9e8f38d683de8865e96e8360e811559c3e082edba99be598c7ced451c239e081183fd0aceaa3f75effe43a7c8700b1bdc51d0a5e1e482237d9bc8a301b20e558df1f8d520163edb8705924cd6b8971bbc3923f8067964e6c99ee3c60737ef170f5aabf6261e5b2e6430dafa73ac9d6084ddd0ed62ddf2a0d4e064c7a04260198b94fdd02ebcf817b511bd90f6243cba7ba91a8dfab6aa8f48bb67696f575da25234ffa79fa53a4b9de2ed0f15e9b20c52b764e26c5d2d0b13cd3ebdb5d560b373725556c7fd152f3e4040cd7d40ac9b4f4c49e3dc7f748601bb4611c14e03b37ed79658e2aa69e0b47f42710bed2e4ac6bbf37dbeec69a34b6045126a017732695c5474de44aca2f2670c0e36bd686d9095435359d173276ffd07c25900037c2a4974e6af401dd55523042bcf36ca27880775cdbfb6b095cf93b491dfb0f2fb0594d7d9e46a3303e3c0da3c5d39c2fabfebe6a3eb9e7c2af3022aa5148c84f9cf8f4899697c781497c70042030918353e56aa0e4bac6fd3efd8f41df94d5668802c9f63ce6fc51bc36820f0e60b2085642e502d093d3bc12849c553e05574a2929659cf3afa0f33eb117d79c3fea450996738b38ff162f77fce86949c0553269dd8fa3873615e7b75dc5429799b191cf209202dfe18230860637769df426881db849bfaf585180ba15f67410908ee6b4056acde46a1ee862ce0c696af377efca2a2878d0922bac97a53ae95cd5160f07fa978bb57ef8ed3edcf5ff907d25f50f80e488c7ab79b11333d894772a57d1a20d0c6d7224 +result: fail +shared_secret: + +# Private key not reduced +private_key: edda9b50af880d5778280a51a26ad2b5dd8f44f83afcc7ccc379faf517738bf8aafaf53eb44dd4364aabc42bb0a74db12266bc6eac91d12486729fc4862d9660e6f5c33aae9f38535903cdb178bc2ae557e71acee92d8169e8dc74044490b3ce4c06b2b68b44b3cdb47d3c9178344f7a7a30da49548656b011b74b5cdeb23a1b39f9f37dcbd9ec697799759dd7f80b3d55f6cb81c9f6311636001fcfbbaa31bc0f689e9b3b994fe3c2b3cd8d4395bbd46dbd25b345ca920f9b3546fe3d4c8d9dab0f608b4c5a1e14ea98b3320c9e802544aaa98a4916c7c49da792f7ad4a4d64afa1294a8f7eabd47c4d96e9f03c86e0a10b762f9eb38657ec8eec6efa4f59b854dc379e53ab6b9d6c5f99437ea866ffded1136435ca490264a5422d770798eebf74be6259b913b38a2c54be4ea88de1dbb3eb59b91497a13304c54a23a3a29ed6757ed25545d967b6e2b55bc82b2faed447b09bbc6f92fb9427a4baa183406ee6ca14e35808e33bd339a9c438f13aabc6ecf473c38b62aa7c6cc8c3df9a559565e4e3c805d5cd1ddfafc4420177c054fce9c946dc2e04504b8b7e7bd86b821be996b8e5347d43f65975401c76a863a2804bdc80b6d62f8f7daa973efdaf3502faca371cae8c4fc4518b52070b91ed07a5be9c9dd30438669f9890cee62449ac12589115e7c14776977bb34aff985c9504d366dfdb4ce6f1680fc9ae9e345d0ef1ce1cf96197fbb6f4f5485efbd226ab8fba97b9ed74eb0746d71e40e07a51187ff7c9559c4bea306be88e2b84515d5f8af3ba34cd7ec06e7cac19b998b23c549d0aff253a33ad23b906eec55fa6d54c3c4d0ee68f4b447404b8a752f4a9cb6acc624a798524e055733f47e4f20ffe64f6c7b6573bbda39365891cdc0318827b8deac477d8780ae2ff24b3c57b56acfd9ed2ac5ba554a8dd184fd09695cb2c798bdf3b87fd690d6840c77c53f98491846cdc335b601b26582d9758a244603045e39c98b9a723872d16694a4b5166bfffc39ee4235e855998cd6eacad79b8987f143b5a7a69feda51d67bec0e453dafb5f09b2f5c1298a8fa2fcecb2c6ebc63c763ff85ff66746ade371cc5ac957a495b55834c3b3a4ee9bf2a85c5b716f742a940a686bf0149542b6a3510efe44a849d6e7eccbf7336fa06aa4f7aae89e586c5dd93145b8265699f5f0dd1eeecdcedc96e3266d72dda4fe71789ef1c4734f3f05af6e7aed6a8858d83fef84c621f8c00645e6b53e9ba5dae042fad845a58bc4564d2bbcb9e08858aaaa8f557d70ea54412eb5b608cb7883472d10abf2cf4e43e56ec1efeeb5178cdd99f4d93666ab8f44cecb954ac53eab9afd8d91fcc29073e2df7d6954cf0280bf46c83edd838af9e4edc1548f38743bb71fc3547ad8fe4e35e9669d3f2fb7e1aaaf201f6a86f38b2202f906d659f4bb8a226ecb8a107b217ea41e65fd75e0ecba7caaf1c97c014a97ab49666e10e5eeac597718bee1e8773838958e0de7970eea7b62583f575b1c0e676a916799bfacec28ba707974131f36bb239fce4e99cc2046b68a6f4e069ae46db94fd66a5ca083851a4dba26341bb99efdc96dd5384ef085bfd9e846ec2bb5eabaa69a8d96a8975a1d6f33835a53225c1215d624156828088b63da622afa9fc5476b3603474b24d8394b93ab494ea3eb0f33ff5d91a33d34a2f666235ea009e35544cf135eff54e3575afe2fb15b6b59a4db843c25139ed345fa170003fda60b240065f761570471c4914aefb01c38fe36b3c7b80f77887a03b74bafb64d3b922701a86b027651fdbc777bc4d90d387fc15b8c12443af8636e35224c0430520bc984d71c56df26e84b683c1dba081b0a584b5793e725775482ec45b1db7c84949644d405579659cc31db130bd190d2247210c043bc8f227450ac206c13e8baa896e471f7cab2bdab29220c051ba354dc404767e812765c66ec19acba3b993caa2c0bc2367dd50846bb40d6587b51a76277f6865a5c69d885553ddfc200e970b9c0666c1854efc932af57a1f3bc0a805024efcf978f77b1dd739604b8a87b44b522ea80e87ca2cba7220e62c441a429d19b76425d51cd1e61e2a2950922637a1ab84fbf645a1f6413c288b731945d4029958d56db90aa01b712c83b73aa88581522757d505b83e61ae06eb6f5270021c61b7dabcb0229878d85c8f352a9a4349bdecb2ab0c2ab4039940a887b665f8b9dd10992b3b0493db6074fa85e1382a970953ebf113d4835e9f031d390836732b3ea6a89145183f72dbb095d7617a3abdc28912972035f1cc30aed3101d91c9eb397680c8ae222aa61e515a9396cefcc75c0cc255535a3f41212141c12558881e23798e1748bbb5464adfb167a2c44388044754a87a5ad1ce752c38b504bc443a24ff73a6cea4768e22681554b56dd59da1c7b88db126b7ec640c1bcae8a20b5f864ea6385dbba1c4ddd31775ca9f72ec6f137570fa9356de55c5c2ec92048a0cd9680837f98763fb35d1431805a7420d2bb803cc37bdc90fa921bd4d18b4f33419cf03ad0e2360d92192d7d87df71bae83d2b538741914892c0d778cfdf429be268a22f4043c29b62ff74fa770156d93127c3a7fe2c6c6c65470d1931f85a3af1a963bd919ca3c437b43d368e6e7a199407258b8bde88b4742192673499ac440b247d97225e7554482c6aa6567486074f15b19588c6d9de4619d4c493bf73f2bdbc05343a581e95197b64dcd8826442565bf629d5ce4045218bb908701a5e53b2d0679720598fa1b08f286b60e5c377ca7afafb206ed4712d6d16a47b99360426619f97db0059a15592353577765a8368d93928802704836c2279205446bbf7a2465042816d7907f143635b1434680156523b02cf1d8565ca5c7ceaa126a2753dc299c10e4968a4729991a0f5ce31c595629301c135b5810a712910a84ce1f2164c3aba248cb89c591ca0d24a7681c0a140672bf01c7f5c967f3e41b9a925af6ea75408a24684b725b446a30d0199f67af94b958c4b979c2a841b28878b5dc5154b79c944c7156538e6a130379674bba5438d64775fe1a87d3aca677541bf82c27c6d18f3bb182bc7494dc91b23c35392f21ac49e69e3c70454bdb16b2394d00a549734a1aa4790b01508be670841e09042e5a1a4a73c3b830ac5a35b826f36411639e20576a89197426005c08380c13a4a464892bc6992e236771e7b135aee096e9f65738c531b8e63c3f4a922a79222cf8b8309a04c3c7464a69982a072fb895714eb8f4e6d0a4c447ac97280a7a7b63bd585c521a49bf9230588ddd7034647a81f0f1b3e3dacb6e73e900f7c078cdfaa7119a5ede48c7685fdb7e0fe2f5de950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 +ciphertext: cf094e965c6a8d943b28fd5520db2fad4289e6770ef897f6ba80f522a2d240e201267890a7ee3d7bcb86c9996cf962bb45f8e2cd7c02c42ca4d226858b07078890b65b297bebdf776402566cdce7b52e8dd7e9f920a07f8430b58869db5bb6bc73f47e4b1b58905743fc6a63a116d9fefd1985c0e317536c5d1fd40a99e493655b86be0567eaaac00c67a83b40fe4babb98823051f7e4c565c93392df3a67b214217e62ce0175aa8fa8e3d5a290f420fc03e4d259e76c5668219154f68e1c3f1b7b44468c3eb8001bb764ca252eeb5fb934989e89d4e3a507742ce31ec20e57ac42fb9222c18b674558814636cf6af142f525ec3c8a7d5838e752eac0de8fb1d77ef7e2a979dd2126ae587e7adecc8cc21da87fd661d932b277a154a7c7dbc4caf567199660f756589fe8f77a441e6f31248f28f046d003c4d7e6146f9829827838a3baeada58163cdcc31ec0a78303695a9d51d24d72527ca3896ccad6009f701e486e6d73c4a4ce1afb00cfbb0a1e729ca6e726e4c8a2164d51e97f50f65fba4a8624e679a77a458675382716e57b74d8ed323e06f0f0d5af1b5029870ceebf657944e337cb408a0352328564cfa19006773d1b794d9216901f5b2315150bfaafb04db04c7ed09046c2c66f24fbd68a0cfa6ac5b64363459a73e3f101552002caa5e83a1f91759b5f86ee50e915fca750bb5e95c2f8bbc6d5d681313207f91d524a1a510534d9b844f39c898f9941ec4713eaa9572d8963866cf69a6d87e98c54f7a238977751b31460ae699b922c307116c3bb2e90f69bb91c8c45527065eff726ff640eaa0016022c5f1ba2261faa37f9b34eb92eb5f55ac6c3828a90be3265be251fae5a1825035e8021b70ad05a78dc4ee186bc6af75bc7ad7575831daf735973e8505d4ffce88873167aedc55940d19710dc769fcad490129cbc84ed362472accf2ed445599b2ce72465b85b4e1d6d628dce3195d4a5fde5b95e0a2ec025d5678bb92a440110839b233ec4fb34a6bfedf9c1a1d64c0b5b20f502167b35745f83ca64857ffcdc91b1fcb3739048a48a3da1d2020819dd93544e2c448760d24862401850de85b61c438a23de01be16b5f1a433e9d3a1132c638ca97d7f7485af8176ec8f14601439438552ec3abc97d29f5dd1ef805bc46fc9b77befe95f0641a94c7ad1dabe80bc168fd04054ef38b85b094b2083078f04cac56742a4c2e505eb11025a104df668dd9c3756d901dece91a521881ef207e0307c0b87170e3faf188ad9b8c25704d41dd6b5111c1a594f5ff7dfc4c78e78868f7ee7dcae347a70abb7968b4ffe8bbdabfbf52c853a7fe165f4ba616a9e9b18d00af0093f1e06efccf8863f0c937a35218bd6d043384027c5972687c1078c31e4de6b1edfd13fb149cfc9787759351f5b1a3daedcab46367bf6b4ba159dc109f7f79c478da6d0cb7866cb372770bafe05bd95c8ebfa090f70d6f051430c0f2ff76a036679be20ec3bdd91b5323af2b3273a995126a8d5f413e4ede9f27ccf1dd8974bdabe3 +result: fail +shared_secret: + +# Private key not reduced +private_key: 9ab9e962f6556eafeb81c4946abaf6b62ac53197a49e27d1eff367d7bbd0b27677cee5eb9619541ec8a180db9a7ed7342d4ed0006357895ebbe9095816cc689c8dea0cf7acccc64abb13558087d3a6a759a2d89ec01c9b8196573576c06395335bb39903187233a3c8991e447e8346dd7dae390544145abb150d4e6e23fa43e59365bf49b3cbc13084c9a3487bb0ddbb66d941506d7e6cb33b35d990dd04de87135c3abc43a5b431b72ac9981b753a5be7ea48c3ffab5917b387657bc53726f631e76ef6eb68c77dcaeabcc613b439a2ff65d22f9f8226c1a76447b535a81bc3e1b59be2373f4c2086faffe367155678ac0ebae2b3bbbe45e9ccc6840c03d6e53fb5c92966f468d9ddf3eb7d3dc2ccd77aabaf36ecda9260c361e71c7293fed152de65bf6c9cc709a4928f807543651a844fee87d38779f1af5537365c50f4dad7b28957265d5db00c6a3d34d08905ed7dbbd7dde7a49217a90bb46462b4957bcff197844335c6f0e12f6d1df94ffb5983bbe8aa3197ceb628dead6561bcd791494eaf1b954dacb4c5ffa694a1a45065efc3b0bac1d265abbdffba35b8b3b0f660d83680be6ce2dd2437a46a3367d6bd94e4dfdaf5ece2ac800a0881b3b3a12995bad3aafee4ca5e07446944fe9aa5dacc7b8c9042a5dab5ea60a4e54de2e8378589722b07e2a1d9f11357e25acfd7015ef87f5e742ac79902e4ccea25712953f85fe5896427c8efff313277b91ae9cb55bcfedc49b2d194a325f6836d2981277df0990fc457266ce3688de79a40d5b6a4c2c6d6b57cdb2e13b262a9dcf23987e138742eeaf4c0cb551abbe024fbd95f9f9be557b17326b2daab78ca8ebd26a393a175385acbabb1a87984cf71175cada27bf4967d5143edc4fef9e2d2ee9d98ffceeb1653b70c9003165d7d5a4a6f9e6bf0298dffd9452386f7910de1871dc1bf08eb59ec4cc99da717af9f4bdf4d75d53360d4f3d0d9f1e66b59d96347112c918ff680ed56dc8d69ddb11992cf86caf3ea3baec9370456c6c354859c14dfd2def6f736c92f5d860694b29dea4c1b03e161daf59e93d35d0ea27ec57eca8aca80c6c93236ee1f44b6af9adc571a833b8f6d2c8b74993f56633dcac47644eedc9b288640e32b4dd85f82765ce52b87648f7baeba3a73c31c7e2984973e74a6a7236b3c364bdbffa5fe64b4da0b49448ed2a65dce050ff1ae9d7e8863d28a47dd0c6ded6fa849858339f63b8beff42fb598613519dbce55d455b561f6dfc1d0a846dae4b2fea86507aa38c2257eca186ca21b87364643ccb668f7d880c164c398f9c46bf75a9a7c975e463bcc0b9b26d4f91839c43136614f9c9133793fed66eadc63992bf968d4c373b863ee6bfd4d58476b33585c1e9ba49549d43f7f6340c4ccea2f351a2f7cd66b5f3d05702ba6d0a2694d5b23c4042b603018cf25fcbe4cb864235fdced9fdceb589b4289ec010cc4ab3d6fdb55452a49c6617ec81aa3bac70de5be88602a6b4c49ebfa7a9a57e6c97bae7bc483f5a54be797040dbd2445758027311e4949ce43859426b23999a0568a55b33d4a838546d3f4b6cf93d3798837b229b3b1aa3b3eb6dbf3a9aa5c8b79f5293556a45010b5a571ecf46ed749711cb96f0cbb88a8c1c298c7837b2f2c3525f2313ee5cba7f6dc77413cb58ed86f75d26b39729561c28b795073c1994f69256eb0ba9c934146c4421419475d005150897a17d310bc52f43d50e8ca5706a774d5079719754c6336d1142d2387bdc1732c03e2a3a04a9dde91c46612b54ca6ab15921bc20ab4f2d21910629ff4e37516870d60ab8bab08ce45dc89ca6712f17869e645b702141ef5d64f67f62156ea90ef1c502024858e91c89de92056f3675c1a6eb2191e17300845cc3f7b52cf93c566ffa732c362a8e89c5b6f4a5a827b6259d26a31932e3141486ecc746027776a852faaf0c3c436c690e3664ffaca01582022a99130bcc402bb7234a14db7baaddf7981d6557dfc44788c7506be021359e1917837a3c3d5a598757e00f77b6b785436b6840a16151939774a10a7cb8089fda55e6ae49f30512d691716f29c8a9fa94a8a113632a20c71138851ea6ab3f84e6e18b8531119e36cbbc6d0229a491f6b3b7e20866dda8ccf802abf47a769676550e2fc52ce438c48946eeb22756734bd4572c501dcc311b26fbc9c8ed2100a68e44435520848590375b59687c94a685b6490e236193c722b7b4acb84ce9a69388d13a984f696b85122c3dc0a5c38c2992ba60a280c9c6783855093a9b886953194eea273225c1a3e10b9db18c548c05c392631dc47320f411a618c943b7a201c784885b62f7c56a6b698abf1c76a039b3e6f95c466dbc31b4173778a9d5770b68b8a8195e886e8191e043b909723209553bb942a96ec4cbda1382d02f71a6c009bdac062c791c12f68a1f0506478d1869b782bc8b0181de6ac62bc8dc844aad6403a2b907f2d1a992bc44313f711fee1bc70d326e7199fe411354db2c4ab2526d09227bcb42cce2650e341368fb493d6754715736f8151019df22b07e5b5bccb3d0d161ffbeb2e93731600c85b6ccc226c790ed5e7384e8c3555497c07ec074f2253713b1ef6927ce4c1a80da11cb609c826718a5474230d62a40b0824675c95d0cb05b7c77b1dc4aa2872b8083bb79e201a0c847061e18be1d2ab68b2bd55d24925db5f4479bc12dcbc834b0254b891bf373cf5c4971bb0811182527c72c2ee6479217c70214106b416bdf0d818acecb63fa6af4d7031bb50312023acf66986c71a25cd8a88d767844c312dd5198b965c3df3e244ffd64610eb0cb3431f98889e72e864590191692b8857675afd45b6cc31374888b40183720e1985d811098738b63a823bc7716f9ce94ec70738d7f5228199bb78b811ea912500c71e1cd93c955c0049519ffa8b523a7861b6b2a3dce97d82449b00b8961877488b50542221ba79aaa0d33b3a47025acbe47998952b08e27ac2fbce08d6bdac7b6990297504194bc0304871472cf3cb952d439646aa86c47986d160afd7f401c70bb200e6182f91872812c551e17ea8438ae4236cdd743159802b034443e8d7ba0a249b312ac91981927440cb0bdc8e4615974bd2450161614068206bdac3c2e69eea0912f8a4ca1af21ac4c033a6076e6d13039c97ca930599aa12b93d58c09d663de14158b72ba0803a1b7917b71284802340422310babf6572aec23ae33a54a1f9c65dcb70821393b95178ba5acbc0756dd8a02f8afd156dc73958bab2f2c0d24c2436f9f00b7267da9f8b2678c14626ec811aea11a24a4b09e428415f82ee836e930c3b77867aafc5e6728149e3f2bd1bbe2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 +ciphertext: 137f6e52087c3672ca92c3eec5ddd9e4915b42239efac9fb1c21267e62f4421c1b10de7e404dace358d8403d7662d7079abb4ee0eae1ef912b84152c35c190b48ae0ddb4e8bbfc9d94ce328339ed810384bd7006f07c6b65a68cb10eecdc10de690f8885589f7d7269c659d54145d6a99b9d1ac8b6a381b3c9df8265a904781bd2a8aa5e4c44c5d68525a01c3915955b2c0a8412040cd371977caff50edd1bbc643caece877270385c211cb0d9a4436fd0d0368ba885d8121dd6db0a96175e52918360435d1ea75f9331426aeb8b870344a7e628ffe5115d731ac46238868a61f0a3939c359cda3cfdc4f853813f87036d32e36c94659c42e7e57455b6f0cf72dd6d0cfe6706003c9f2935c5f2f99aacdf881fa458003c61e9ace8c849070ea67349f23fcf91fd2a13cad14d8fbbffd0a66e93e1c427276d541bf8a763e435c17c5d0b40a53d95830b2e266352a92a7156c121f5875187c0f341b236f63ac8ed3aa9f7c04decdbc422723b360348038f44bb9c5e1c7c9a21ba4405ba57dff045c2393c246a430a04260db49648bfbf9da7c3ce14a2a47749b9ab028313d1524e085d90faba17e5958448c20c1c3b4514d83f47503e1de6c9422a4ecf5332645fffac205b8c46d8d0123d6a889f48cce238546a48b526064d638c12752137a4e0a9733cd4aca910d40dfac757080684500edf82e678191f1031f6abbe51a6ac0292755db514feab858bb919d4bc2dea14d1f1c3875b249442ee3d1959bd9ab288a01596f490c47b13fe8469c282e8233a6a7e4ffb48a4cb754ab47be470b6e837db29886f45821806b64824e1196707f28a27f5b09286e711688884f8be172ea0f3dc0f22f8c554ffb181d135cde9ea3b9cb984a9403f459d98b81aee62b9f259a0b855abf605e59e5ef2506fceba5699f4511284886065feddbcef499a5ba735049ba2c3fe812cd741bd4cee6a9e7f4c7e27fa031d4ed8588bafa9e1a724ad3d442b821c4e197d0e0fcf65b24e9a3fb4f22ce221346d811c304bd4b2fd91529c722ab08c19a9b06212f78edf8e61fdc7ac463696fd2b9bdc9aa14e1033523c0ee5b5043634a99f027e2155c6d8e7a489ca5bb6faed913a8211df109df805d07d5bac69f1c42665f54726d46d189f9846b6f15cc5b8a9d3dca6dec03973f54c43d9e97a68f4f56ac4d68280e061ed8b56372cd9f58806d142dcd6220d07bc12b6ba8f19a7196f270587190e1400ea90b91f3f9dd1853e1d1919d98d763f86f82e2eb1915bd8ae55f0e70df6e45bca23bc49af9631825da5c5e9179dc270331fa4f2b148e1b6358e88f83ffc464bb715fcffad465cb8ff1b893a6f985ba181495b43282dbb99b6f7c00ac74eafd2588d12262a21a3b1da5f642f686b7df77484f0486a5a88634e2bbc1ca1ee719a47481e76b5d0ebbae155985d14128164ae3881b0e626e8a96c70ead4822ef68402a7fe703103b8dc134c89fee2c4fac3bbeef7ddee0c8d5dcfb7336adbfb36df18c2632b2582db285d100b4501c75cffbabfe4 +result: fail +shared_secret: + +# Private key not reduced +private_key: 749db68b5d71df2e628b6f56426aadd676c604479578e4e8ff77b4281cf902af9085e9ad9cb8ec7639bae92f74ee094fa38cafafff6fb287f3c8c3c2b5276e28dcbd723ea5b0bdbb248f49974fe6ce9ee18a98edcfa6f8332661e0fbd7c55465403b81d324d7cc6bf0b214ef5455c3ff8d61edc7ae34ed6982999e196ed6322564bbf9b03f3d9e1fa6bd625eff1519ee9d5f3885c6e34788a19e9efa4cf4372ff35a258f3a020c97cb59a9f5b698471483b054e0108afc2d98f4d1ba5646a89e697738ebe6926c54874dd6a55cafb89b64b1aec95f918a65c9f9fd8fcabd59ef5fb8bd7fd98dab48f6581b76ed4ea3cfda38875c9568a226fec367bd79cfa7f7b377661ea8ae16981838bb3fd6d06fbbf458ff964bfbc5ed5c67da4987ec997d5eda305b389cb9234b3aef3ccc3e6fee5e8f35c757bf77b501b983140f82f5a8d39435a6b50fb67abe4f5c2cfc69f3fb1ac9421c888b6d935911d4aab56a4b39b3a2c6c8d49f8584d85ee0fe63a1cbd633c73d51953b9d12f36c5e3885dffa5d463d9dcf56bcea5739a85441deed6b9564a4d1f4e6459a809964c16d574a42eccb1805edcae7b016ecca4eff365596ce27958d1227a72a4ca336d4e2bbaf6afb154809243b5a448a9fc38b39dc90d2177f143be959fbc767146dc9de7a3857b84e987479759997ea85ada8662035a939b3d412a771b3893ab5184dca5ed6ef0790ab86e7c57c8875d842011cd8c24fac0f3477096843039f9d1d4371d00fd29aecfc9a0a34b1f4a70dbbc3b29de1348c7e725345a60e97739a83a86c7af54960c11c3b03093cc3a39a7e2c8fb7f84e1d55f02979fbc4a872947af3cfe834254845d46bcf050f67a946d2b74a6fa968db1355d0edb9bd2aca5cf1959991c8716e28c2edcdf6a398444b853408b371ae438d4459a3a6cbd0fb73e75005cf161f5137cfb069b9560e2e3acd3642c3b3c2672daf8595d923df7fe8f8cfb7b79afe08b9459a36281379c4169b73234c7649b8a14e6eee2449ef8aeadded7910673d2ec3ba18e749152ede2bb7a9343b74d565ea80dbcf61e5f367f38725a4d8bb7b87d466593cc9b872766cb81fee9c84ec040b397d94fa80c952ca1d70838833efa83f36fce34bf6e56dbbb63f8fdb08efe97a4b4719f8a7815b682813a55e369721b88ac88e44b748e77d7788c2a7de869eab378bb4f26998845a8238b5e352d33ed9b5533797a7e3e8d1b63a3543cee642ecc9e48d8db757d0cd7ff762b4e32d8a4ee583cac889800586d351d6b7107eb52dea75c07a7d5a7d875f6ddac14ce4f2ff625e2e7ef144d4a493526c1e5c6b0de6416f9e07795fa88e95ce23809a1e475e9ca00cb3caa0b5bfed575a6c33bb1645ec60bb5bb16df18f259811bc669ce68fe40bee6369cb7923d13a26e08e9fd4f1ed9f361e56713495e8ad45175876f2836a4ef381b6b4f6ae55370ff4c8e85dd15687a8829ce9436d605825f3bb184baa9972d946af2d2c34eaea986a3d4b0a6ed6fd759b214d908d175f02dada8786faf4b57daacb432ad5558b4eaadd2c49222460525e78740c8f552cbd99653ffb4953d42e8f8efa2fd7aebf7ad7e01c03f1060c537e95381623872a36d7a8447a317771b7e77466880e15c76a39356cb459b78e6821e69b2f0f817b236a04a7cb834a743f830934043856e0dcc376730b3afca17aab6ae2c59ebbd57f52d84cb107b6c5e536edc31e57c3cd404a618700aa1dd87e43d92d4e601ca8d998c927451e9205429c643b251e8307553fc755dcc06d9003c35c310780b31ecdb05764e3c479913063978143fb9a462b011446394a287888a61f4f57b6c0548718faacecfa6571381ce25c2d10c27386cc255086419275a3ca59bfcbec4c63e5b487c41661520495e7b54b9641a1e16dddba5794a42d42e86b0007444cba4db161c6547c69a9cc18b2923b2a388710578043b77513173f6eb0190854bd6cd2612d1048e79435eb17680e99bb932c232b1ac298591d98a881696b3a46e117bc4a50565ba52e4704eb1c23c057894878434c61789ee8a594f94ac55748e2b111170c391b6b8403099928a2c60a42383ce5cea5880701aa5b60e4c789c759c12703d946416ed316e48c62603920e2f640a347a2f305602f4138aa82b78cd08fa071ba1b9711a333a3d22244dad09aac8058592b1edf9193291c8854b18003c6cfea4a8728e7ab378905e3d04349fa5e4ed9baa17b41b0a7189ab5cd0e352f174a51f3518badfa7df523bfcb64c43fac3bc5b6532bf4ca91e245e1e61a815c865bc7cf3cf87891eb1234a49b624c0e1169c400cac05359b6a15c9f3201b21f02c3ff0a4b94980757688ae0c48d0ac5c3fb650ddc38a8167c87c51cabd1698f8e3654380cbc8819599699615ef5495efba00a7a2c805c1d49552183b37bdb782f652682e02b7e26893fd97b8a7025affc7062e99557751a6a1da7828d7a003d0c62c8d006fac92589594fd729c17f38c5c83bacfe5bb8add8c1749a7550765f872c22e3e8be9db4c50a915fec511c31900890192861366d9177612d731f1912ccef5534248408c31605ed8960a612234cc23c94275a0b77302f0b82b4d121bae15539c3111b9a21031314076199849302f4274fc54b284d95903cb543902aaa5cd39d034304ee86814c6119f7fbc17d35c68b151e9048434973ae06030cff855291c71d58740ea00254ed926ab8835234490bad7b51eab118accb66f4a6a172c9a26717376e678771b44d9d452dc93988b9c9b5af98907b17487bca1397b8547ac8382f8a28a78a91b1b105f107200e839218a74d16000e90334ffc8709976b7fcdd4b742dc6bd2667ba6ac24dc510314f6b98dd711bd7a7169798874225627f2c7aad1bf37e97a4771542e8c7898fa0d8bf4c0fd91bf598580df6c0ce231a96368c8b8435f5507429006883fa88ee4e5791c2685f61c9247e72378478492ec90778c5fb8aa4a70e6cd48890bafeb05798c13795c58b62b5ba8f7c522e78365089ae735a796825d9ea8c572a6544aea86b2e08ea9748cf6b5717103a6d1c02f5d87a5e1aa94beda8691d454de0b547e951afe05061399804bfb32eb7b0857b8851810ba48e92518ba798dd54135a74419217a687620a0c665a050318e3672cd616f6d41618005cba6ea47faec63daba709acc2489417fea39b74ca2b13d4a60ab61ba89b2cdf0912757e08214b0671d8867cd2794fb30a8983b410f149ba2ca7134d00f83ccc8d1d4e2f1e83c9d8d4b95e33927f84741e362d80c3ce5833b7f2498d841f4c7e076c64235d8bd63438f13dcd038f286b9f4242070a5bec4d8990075008667aad3a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 +ciphertext: e5c184d0e6eaa03a8e46165eaa4ac0f9ba855636b6ef0900ed320d1cf734f2964662080c1b756c073874d531dfb937b298375f594ea69298c3f7c894cbbdabebf99f5f0c9279df4a60fd58e0612d5146f7da7f708938b2297a75263af995393341b5db7d1ca67ed16571bc479cda54677205833b79cdf8a935be6d097996cf5329c90a1302c9a9b3d6fdcb28b725d8ced9e6fcbb939af5105a298b6801a4670a647a7982227e0e841bcf8d7b8e5e473f534328b5b47ff53a5ef4abd2e899b401887ab69e4290e2e59f0943756584612b7e508e3b270313f5db48a92b7020b9875b5ac8f95e439c376075f63a840a8c9ae9f379ff838eeef0ef6efaeae941ee2d9a74dc79237409e44a4cb994f59605a52f9ae85a350385dbf421582aac40cbf2a21b5a1157950d1993d037c0dfa54753232820cf3478aee60e7555a643dc34ba68078b2794874873b01e4842eb4e9bebdb3ef8c4d224d3703522bf76d5f92b6438914656b4f58b94f1ac72dd2b9aff350209128dc0c707c89dbfaae0cd6e7d0fbfb38e88b25ad92b3aa2f41f6b09a003882c6e1c857dec8d0c0c1a884bb176ca5a8cfa152be28cdf11ac95654118b355d8a0ce321f7e0baa42a7e1391292af8557d5017b76db0b320be34a129b0f6ad0aa56b1af43c49c74897ed0da8f9a5455c84340f5b929218c7f2b0891b5e81dead1d9148a9dce9397674085d7ab3735a199a0c0def3bdf917247b5f287d82838bc00cf7babeb56b00b9c737f7f470374769ab3a26b318e964e5cfe49e54845c99c64dc81133aadd30f0b1fa7bd44a55449383be1495b13e83074b4ad3857095270e2c77d2a516d021dc55f900d54d99f7720e4f696b9c12afa2cf990a6a4f41f32e3be28fba5d4b3dd8b22ee160f831886551798cdabb447b08f5286c4617f67e65485732a09039d1ac07d5e54b8e06ddd8ac1d5160fb6dcb6366b22154b144a59cd3ef76fceabed5ea7fa81a6b5b36590584c11ad304ca82c2ff2c1775c6459073f75055680dbbe80ead7e6bcaf4867d6251b6b75597b9b467d3077272f1034084d307731e5fbea1c40e2d5326e4581bdc3387e2f12c9d7fb31438c002483bb7854d3e3fcf2b80fe44a2129fa1de3fc475c64f6ff0c1722b801201b0b810c94004bbe43f7bf0f56f1b0be5268244efbdb3b8adc85b128f17ce218f01b5a22f41349114b45e1216039ac03de43d067ec7d033df560bce0f8f63360263d8b001963dc824ab6efdcc04406dd70f9b4dee6c129c512ae3e6a45b48344863298c53a9b80e514b9c14bf85c2f76c0ae28a4122e6134259763a6ea7133a594305f3178008d1e9502f070f1e1abd66559a5dfb5b951bde39d8dc444f79de7e548f700c81f5c0e4e419b085bc0bfd14c6f01f342823263a314c834f220dbc4993d29e2ea64653eab1ad2c7a556840a9fb01dfb02b6d37fb4d872714db07e8dcf88a70a834b72902b633ea7934b662cde95430c80967d94af21bf10d622e20a30d0af2ec18bec74e1d8d9d8af57d0031607c9c7a5a +result: fail +shared_secret: + +# Private key not reduced +private_key: 2d8ba8d557fd324746fd3a4a9f999726dce3871a6ce85e30afad756643fc05dc3b99c8626cd699180df6f6898a321fb711ace68bd86e27c6af09bf92aa37745f993146dab93b159e9685cc09d750ebb58ddd36e5237bf98e94f2db54b97129fd69857d3dbec910c948544b6271aec5854936dfa643710b631c245e8c0dc430ee5553af93b70fd378e8f588cbe64eb3636465cb0bf931b78cd87a475dc364e4c8a6d6943ed80df4ed58644f14143c5b75719194e72fbfadd8dcc059bb5dacaaf2070f83b5c87ca06bd68405a9e2e4c7cb88941e7e62667733b95a76d2e3ab9803b547047c95eb86996beac0ad50346788ef0c682405852bd9bd8f178e4adac309e8aca30ba6ab1bc5f8ca8dcca6f91b6e6d77e3ea0514f29f2d6704ebe30e8b44819ff833597d36db65d0de30d4796a254c360ecf799d256eae54b01a264af91fdc452faa837a61dd2c983345bc158bc878987ac50fff4acfed21d47f336f5ca038663766851763eee3fe3a5d0665c8e4ead19b3faa5379333f974ed3e93f2568c19f595c0d9d40f3301f033f489e92d026e06be49304ae616347853c1d7626e49cd14c46be4660884bdb4d87f5c0477887eb771f3d5ee2aa49bfbec00d6c42b5c33fe0bff5db0640e973855e5d4ffb7db23c7ce869caddab69aa2cb75a02d9acd2f57f67cd98328fa335ef796afb96ac2f93751ace106ef19a994b2c66f5f1ec7de199e841ddc6f0c3d0ae5e46b5b682d5a6406455a475a799c0ca7c2d89c8bb759fcdde78d288f17d086dbce5a5947add691e518dccb37e898be6583220ef62df45f7fd5f71e8bfb164099043addf2dd44491b7f361cbdaef48e06cf5ce7dcaf316fca7ff2843f50ddb7ad94727fd4bcb65fdc9bf4d6a644444ebc10cbb5dac08afceebc9dbf7910e13ec8bc5d38bcca34dd77fd8c7ceaaca63227e5e639b5ae7573c0a0ba32678f45a09aa278b86e30fe28c5bc6e943e063fac6d43c63d227f8bb79e233337668e74010bd8c54f98894c45a3548b74a8be490a4b600aad5aa9e9196dfdd835746d19fbc6d4cd2d36e3e5193f04973ed3dac37d5a5ed51afbbc5c35ac63a8d9c13e8c259eed5fcdffdddbaea679150ab737003cca56556064bfabd07f96e887e92737f375e329235492d8ff1abfd609c9bff54a9c00103de7314581bb8f1ba5b344463a890cd46d07adeb52fa524ccac23f7bd722c487d955c81836f7b49329c9ef31d47ec7d3994bc54874e85bbaf278899c544236b49c04c688ab6e70dea386e1eb840634e75a3fb027e6fb33459e63393f8eae281136f217bbfe9deda14fb675e1a5075ce55164de39c57312b4c9b5f4cca2219c4b35b63b169dee6e3ad66e3d1b56d9075737ff7a37acb7e93d489762e75ada15ca43fa8be156f32e60f9b3f2a7d94f551ac6f5b8f963c79bab41234893189f3eb54ad998bd04ad53b343fb25dbf7dd10a3576776eb1d77bfb1da9edaaa42c385cd5c871a4cc37e29a3da2f5e683a78c09d63e64f6895a3dbb324d80028473bc8c53ab7af038ecedc018c21a1d8087c3b2bc2389e96d9c0a8737f01c8dffee3e2014a77f37f2e006de72fe62defdc521f434d51a49befb6140bf8fea1ded36cf50792bdc611425c6bb62e8f60764db8466613486836fa07896314a6ea13a56e2f467483848c3451602e4c6ceb2cadf378d85654a63024c5e1aa3ba242136e5302881274c1316cb26004a549b19db794fac3f7c454fd8223f560636fa5acb56f0611911954131ad94ac88272b6cf4c89fa0635a7a838c38c92e1d640955453ea44ab5a6a0868cb9c071e51705e24a1cb1c4c9d8c59082757fc5cf95b17ff0064c0c47b021b244de30aeda11251fb170efb279154515b69cba0400875c78c1844503d411521ad54c651a738bc32da29ccfe992bbdd937827c6503735116ab5079dc04006fca98a66acb6519187fca7ca935c090bb8d31b6062b34513f01e157976183a1873db1c9e878a3eb37b650205ea5245fcb614887a8def4bb44b89cbd3c221e1a9b587a8c4a50633a9f386e6aa43e360649da46ab688116e01aa75943ce061b362d74ea824870a94cdf84b38d809bea8c994d2e10057b78ea6685fee45548e6bb681a32f5346ad5467558fe6c345e6258175a84edcb32b378ac3bb24e85739681234c0f1633c334df7d853c9d00dbde8a23d463289423536a44bfab94f2c76c113fcb086e5c4cf40193220c40b509065cc3ae5c861212b898699ce1c224a04a77bf165b0bb057c30d9cca16b4dc8128e7c197a4999372906cbf38386d66c27d1e36e8d504613c36d8f655d49750a72509f32f09580fa4518d9a34eb63ba76c063af7cacf158607890380c034e2429e49125c3f543c77c3066c374a43d24a7eea2608a12b845a4c42f7354699bb169bc720b175ce7c0d6e63843f543c0a84162e388fc21c313b3a5902430cab0a61d3e3aea195b13cec41e38539f41c6e22d63f5d60825d7182ecb31dc8a0a82a952b765c0eb279b75d20be877b8fb8fbc290f56efcf5240779bd2c639a67476fae730be123236ea68e4afa9d3200d0db30b7a771bb97fc1667e94cff70bd02f32d6b0b19548b61bff4a43fa5cb73ea11483b23b1394ad5812c8875002be49510656794033fb3150c7e13611126afa639355de9c04de445eb5c7430287815771a937707e88b3c8f42587f30baef55aeb7a392c14a4dc858abb9d537f8043c64100aeee6a597315bcdb65528286e0fc7ad5a59a066725cc965c562acb9d6330f28220bfb35b21cbb4321fbb556449c5e1108c46744e48c578937cc12c20df49b79ce96aea9b231892597b8a57683c495a9729bd7b969f34899116104abb00ee4049ccbc7c37ea5868ba5c2f4a3934d6599ceec340d6a488fc28d84ba371456caf9c52da9980904e253e54332505cb9322b1ce3c1904c739433d99fdb35461d4b3f949c8734904974c5cb7dd54531e86e7f9a69b8c78e137a77c0eb6b1ff468d0b2973819ca6a69b1e640af8f3b35af45183f5284425393472b3b7674503a86592947621dac8352a64427d313d51716ed6cc78bd85412d97561c910f31923361485d138b80585cf2a59a04896b3bd8c7ec2923ccd290c962c343561226a076e7e13a0d51233b68062d0e02512aa96fd701ecb80b7f45b210311246bfb594c5059f25c1167094f966c7d88da77ba3a71d186936f6007cb7cb4941c599103792edc82e3708e4aa9706da72ced51924d19ba561843c3a70f3f91b4ff04987cc4a914fc6ad33290975bc0b534d415efbe43f7d4a4b917723aae654e4412fd220548280b7a6ace9f2f0bc7b059fc103060346e53bc3c3161d884ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 +ciphertext: f2c88dfae11fef0a6f91126673e6f27bf378e78c4e3f96a8f7cfb1a81986926e1d74d0c7b47d9c2454941e83476abf9d9a7e47c46dd39f9cea1148dd5cd086ef9a4431864541d88e3faf97f272d98ff861382e007b4c84ad5a6cbfb01e89f6f869e6e04cc1bc86eaa782b6f0fd4319ce74eadd18b5d911b8d0adabbcc45f92c1d78e4bd21662049bf7c85145d180ebf1ba5ea49a216a1c8130bfb4e4f7a3a4490735dd4fd9db3c7b2e0b1191e44c4fbec765ebb6dc058ebbf08577f24ab2b7f1809baf9b16c5b63b5f63d72923140e477c24990028f2715a28375536d985d7914bdbdbedb02b1696e4e7dd95acd7572b579543e4cdcc2e2d66e64356a07c9a93e567b06465a50fc4bcb899333000d9ace41c7abdb06bfb81d553a0e743a8f36d0d30f675934dae148ff00b96951738d679cbd8b15d0bade8eba5244abcd3bffdab5d03b91f4383e498e8984f1795569889877f2a6920a02b9b741602d84766459895f988b31b678ada1593429636002a67eba87cd0a2f627ba249699e2cdff686c03874dd57f00beab2db22360a31ad7496c510f5c91842aeee3e432826e9b124c3bff3a6ed01f0f8f576bde8c1c81eec09082b94615086024ee3aff8ff87972ec80a0fd319218d8436b34b099987fd4e0f8bb9326c32f48b7c9a4e30b9f24845401de87d212d2bc26f0fe00d1f6273f3af8fecf9e45806f236657e63615ce16949d7ef40239b637dc01bfa604f7c296ce62f9b251808abe8b97e0de81b0962982936ddb9059008d38a1f5f178cc1f08c65b703f78b8f6caa4b436e48de6bdb76ad0cb38ca6a11a1e160cf15d443d2daa201ca450b01e79779d1f7bcf8b88ff031fb815dc2bb3018b609d6249b4887e276cf0abceec216ed529484842a26c91a1b6b3d36bb237c098c90952230a2efa628dd30b232eefb0727a20f088905cb183fd65f443bcbb1b61fd0e6b83068bbc144e5754a0c09bff18c7d20562c1d0afaee00c78dc0efcb0e7890afe8c22751ac7c10693681491e09371d0d8d05778c8152892958ea0790e18c8bd00d8e06f444fc46828d43997185476dac9005683c51eb483ff552028a7638e6a6d08d71ed5c696217cf47a79ca6b0c6194f1ae9b94f2d35c2fbc94495c557e59bb70b0126aa6c495f42f8a5f7eef82d8b87b9ba582956eae20501ff7902c4f9e451aca0ebd84c20c678b149d4f924be9a3953c3ce85e985d53ae3de46bb99cc9ad4f6eac2de214c0bd5ca21b1e8f3992e96ba1bbbc19608e160bc059a0dd1be05cbd41ca51d1118d6d1f2c83919b69cb051a3f01a3cad27b9326e793c69fc13f4c787a85087907fc8a48cd988f0796d384af60029c1ccae91a1824b676514e5d3f4ecbc2a372c9d953bc7d5ab900efb0476f18170fc0b01ec4c17797056752bb912b06d0e14113e6e961e85f758bdb11eb94b85232748a7f1d75edc6f0123b2f4a89c8778cf7768abac61d73c40e8971e841994e69ee80ee4a456dc02f7cff2911c1e13d078b63928b2c59026808422745078b9c361 +result: fail +shared_secret: + +# Private key not reduced +private_key: 6d0ce30e15395ffc3feb7e601c36939f3ccb691e6ecb66a551af84c09bafe6bc93ef9f9efabc348c0e5ad58b34f589891d9a7e3473d56585eb1504fe945eff8105e2ac6587cf1ef1d32a4760bcdb6c3779c6bb5b4c0a983c7f397c544b15cc7aa395d2d47e32040889c575bb474bdfca1bc1c518e54976d6bb99a7dde8861fda4799955b1e0f65361fea0194dbc82ccbac7b99f745747dcacbb0ab34047ee0cbb3eb59cdba3273349f39f7fc0b32129beb42cf56067642adea66cd35482bebc758efd05b8c5579c5844989551cbb7377d550b17ccfa6bac2cf7de2701988ea68d436ed533bb5879cf5715eb75c6a4ffb9015a4824b33f2647f0b23b4343940976df7cb1da58a8a4bfe883c5fd9df62eccb9eaa3dddf68b0c1671bb249a52898faf3397fe07d02ab7f3f0af7261a44d721acc9c8b6556267f06e872e6888d03463c407e33eedcf6b01b9687acdb5438a1d218820d9e782f7be9ec5bb9646fc09d1c932aaefc466e87364f4a05c64cddc9c8b53c556f7b43032f6440c6909339603dbb5a66a76e0a898c53d7d0270bb1c375c2c92cf22b4c54b1cf848cf5f08e18864cfcdcbd86507a1b87df79f9c80a6bb0e93d6fbd85fecead97b7e3e3cae471cec33dfbcd89b8d2acb9c22215f07333dea3179bb75cbf1085f5a938b49a65fb8fecf1c36f740a55724fff8bb4d63be0efad28c3f46b4452578646623ba78509a287cf58e69480a835c2ba9fdcedec3768fefe1d7b3250aea51558b31b9e4d9568bb22f7fa1b55714488a699fa705a4ac58dbad9359df2f0d65df68b8841dc7fba35d6d70bff137b8e6bafe788b5661657c677283d17ce69615493691f939759fb1a8490069e7f696bf305f5f9871b61811b6cd88a53579fc48e058f9cc8f6bc53411248a15c39b2e7ba40000aa9d5134cf257e574baf01f1f60176fb7d393be919979681abf59136dbf44a1b677d4d8a68b23fcfbc1f9525b986b8a74da2f754702ccb3222d5c9ef9e6f744ffa86c8f48e8e7f907f308474d660b5f23186357f43681d93440aa562ca93d3363e54b4fa4790a8811439a85ae9f8a087b8614c6825a4eeced35b794caa70aefa967b63928965bed44f984dbd4986fd3eb78f2e4fc7623fc89d960c04fe97c53f452b6b2e117b248f5e1b8fcb0fd95da5795fe071b6567c37263d3b45bd439095ba0572584bb1990c1df87cd8f6f13468d87e9e725586708fec29c5a7fd4e67faaf6558fbb8990463298edda1974d70583e6b43ecc9129e1e7da8a82daec77159c4d654b74fb89e5597ce074dce97861f37b79b57f91687ed3d6ec682287dbbc4dcb743fb841f7f43cb55a934c488555652189bac26c508b438ed6799f2d1d8d4367d96c73d80af57f00df7731f4ea217393c2198eead7adc7099e1c0e54a11d816073882fccf409a678f1ebdc6e5942298a5b2088a2abd39b8cfa8b2a7c605758f269cf9b88566c5ea7d42f8866f469b69bee6db07ce65709eb66787e4a06597a7cddd34dda914ac1cbde96d5564864c5a597ebfc62f4bcf64c4cab3bb077d331337a6b0e39c0399ea64a369b203ceb5143dae01798b3834eb87cc5bf234e7e14b5a419b68d1e4fb0989d2a67bbd0da491d85e13790b3e85bb887d46ec144b4d8ec8bed82bddda538eea77d818c7081b3bfcec68d496035b71280b23985c6d9cb7580568286b405f937e99a8ac1fb28a927940c0a7cbd36290d130a1c23a42f3a437c6291dce36e39e8cf2ea8b9613c1fe7571ac74bcab99bc452b9c5829b586e5544e27432f06ba9c96869f5b1228a0a70fcf95212b0b2b84b45f29a49b6572483807543baa6e4f8b7b40119a5d483fd20224932a3af6869f00c8e9c6c5bf4c53dbe092d879bcd7843475a3110a559454a7375ac0418c37444a16a164acc751f56b2ac97a1158c76bb9976d750cd23761265d16473429c3da3b82eac213876c20d639bf5951e94d939985abd149b99c249445f4c9cd7421ddf21c536bc8fc2029e65d5c7de083296d88bdcf04e38d26dac500ad4457cecf8a795322f45997bcfea18ebf807e84c659937cde6d89fb490765ea9713b768ce05099e7386b4037b961a81edd79add8fb9f8ddb71ee56c349b453d2a3bf22c56730bac0ce19c4f961c008e03ed3928c7d068cb6512dba564855289bdcbc2f2b179dc7631b9372872d05c4e373577861a67eab16cba898beb2ab70c69447a156df0b36ef9c451931b4b7212c8a850799563cad55bc89fb3460f0c56ab434c5e9abe9363f1992577698af0058b54bb5b9a7b42e8d148d9dccab2d1a31d661018182ce207c036ff201a95b755e041f2e1623bef565b01a27d870046018cf65c8324fdca0dad64883da659826bf82721c3712700f435ea40c872b83935bf6cdccb41fe29c81e2210477babe0012cd635079d5932d42038c615a476ff35a523c7761d4560554c8ae0532e8d23a16912a804908411bab5fb96b9802737db82ca0d40c1a3b9913d81fc1330cee7504e2a056a994c4dc70768bc216f66921d93b81973b46352796d37b4f9009312aa957a51692ae8a65d514ab5bf7b46e0964a8f827adc51765384e8c35c900c4899ff30b1b53be227a39fd8b3acfea46bed8832c38555252b38cc5cf750221e3490ddcb80d0d73422ff47623282d273645c316181a36bf787ac90ec326d758ae71e5863c66b914db005655b1ebb057f8444e2689ad91a69150f71000ad7908897b4a3ba94c881c20271532a9653071cbd55669719b5c613abf45b3335d734b718779d51cc5162a91e4f2622a94469e09a41e8a9dbb3667312bc8d5ab7839374f689b32afa5a25de333126a49555909cb27002b18333a6a0d255b905e417eb8460d8f7566b12c99d2900794f4c0b78451777a3789c834c785274b65881bf055dc1875c6392dbea82811e49c34a3b2978468e10ab7fd91793b2856666a7c28473afbb467e60ba603230c5ef681af07c1779c6598a20e051254384467868c0b21ab7d89604153aa680611b767f19956a3b16229bc31fa3ca4315048b90f9f3252c23c02c92a6cfca28c5ad6adeb242c26023b8f76a914f888d39b59fdd1042502a68c0b416e6853e9cb5894253a129a1016108e44aa4257c2b547292642c3ab2c5abf1b5967c8fcb377eb91fef8c0d4daa3f2e04a0f869ff4bcc458f4c118a4b59715c6f3dc25a304b2fc9877d1aaa3af43a512a680f3e1bdaa90c816b95c339331f5fccdc969363977a7b9695dd6b9ba34809bb613862a0561ec25ce0d2dc86f262dc0ed164c2ad357a709eda919cda2c4f8806ecea55c3d5c042d2dca3a3925faaa9112561827dceb0754580814a84be19b8799daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 +ciphertext: b2032dd82ec001fbc4dc819809e198168d1fe4344b0167bea72705c7502e9e562be51f265dd4237c1c315cf8d94fee5c62e9e5180399eb6a387297dffa5e8ad6403dd9a867c97e8240e458cd65ce2a7458104c66cc560c8da6ed08add3c1bdccedd9237fc2893a8f7a95b5ed0866675f81be19843f4e49386adc94cf8a75639d05be7a24bad56ad7425f0c93755835ab2f13c4055b841cbee776ef0167e20170119c034dd3d1307838d96a6072f1f040e26f67307dab2adaccd957541c7416148dd5401118b08ab5a0ebc679c575c9b60a766d9d39bf193f43207968d8c39900b8d8bc452411cb17a6bcd668545c183dba966a2bd777f25856a55593d86caf1c61fc15889b477bacbc790348d6f531f59b59205644cd6754016a05b484a1006ed5e5e113b360f516b1be680e45d70cd18d374a932e26ec41f7eba1869ca7d967c5d89c508d86b575f099a5d61260766defaa8676ecf1dee1ddfdac67bb641c4fb49d05deb7641740fa1a48d3daaae62f185eb157f33296a4ede459c736a909676fa8fe8ff4063006786d7ac07924c356ce78b883b03cd976980a475402d98e94d2e6dfacfca1af7e56f473597b4f2fababe7a7eb58a51e3b8ec5c39ec37a28fc088db7575995368fb0135446f82abbc1e6196bfa8996a9012ce7a44b152dbc6158f00c5e32dfe9e48e7ed67f1864fbbd6ca4d6a53729652dec8d714c765ea836a48b4f6065e3fd6ab90615d902d4c9e2f733129a5ecae9bb29363733f83c2d73e4814c0eb3fc2f0fe0a0da2a0cebaa60fade528f0ea6d3a49e08600d24ee820655fd727f896086df69597ba643b87df8b679dec1fd72b0e5707d84720e64d7d1e0af02caa04061d7cb9ecd1c254b2f28e1f7022c3c830bb5a20bac0031779f485978d4feb62956d616c627f7f4f8e38cdf6f411b2ff9de990fb8770cd8df8b031b5653c7025391ecd977818c463630494d25b7d44da52106138e798206eadccca7ed66f4b53a193d0cdeae21b65e84817fe3dbc1284a24e961daee2b022f575f4476e5fcf45b63c32db6439e6abf13dbdcd3965089947ef2243a5f907c3d95f1a53567b202074e5b945c23d06d203e3f4320c02fc569fa87ce1c837aef80fba4b3b2ffdd3cdad4ae7948374ec8c7c848cc82fb22f23bade2b52eda30698829e1c7ec56d6987dea2741344563043f93b20d029ec1c9fa0732a6e247e053796efe1753341102550b28ba9ac83becc5c34e5a648609a5fde17945c0b998e602f03a9f7904795607fd7202fc08beaf9a12bc6cff261e1ebb285784f41fc724efeb51727819e5e4af459fb1919ffd56a7cbebb9aa12591edaa69c73f3a94164229356b1eb282841d087139f5ef99e7abe632adecdf309337c50f0411f2b5f854e1c7529586c89127fa5c375c4749aa757b7061ff154e65046a39514eeab18faf003d39760a538a517f1350dc33ab94197a40539e8aa1279a3d38c221b28fb61705dfcc54eefa1f40b253b1873a8aa4c468887bcc67d315a753192b42af190021f7903 +result: fail +shared_secret: + +# Private key not reduced +private_key: 5edb8568e989d349f4757fe2f1c7e31e6af47c6b73d58a8fb30c75b726e461f7b7f5ba4b38c9f4484964e7666dc06e77aa2662b1937050be9e60376614bc92e91e905a293cbb3da81b54d1fd067f4185c3a0f7fb5dbf60aeb8e924b85105a7403bd6c6ee09627c13ab53dbad06999d287dd4e39db4182da7030fc5f1f4585a68c56ceba1d8cfee079552fc69ec6c3bc8f4acd89537f88ce6be22ecc28ea6bee8db35a90f4a03f77e5d7c8c79b8f5ecc4c002566335e9355c0a91e5ec451ce8ec14f355ba3b82e1af93667f3ff30cca66a845e849a96093cea945c7d34f461a94b5c9595555a3fce54ed7e10dc252fe3fdbd699dfe6b5d2a3aa3b7662f988c39bf4573c59b38046317c65ca2cd9304448afc72e90bc3fbee85ff0b32b85953a5036065d231cfd28d8df0a164eee4b72b599be3a3961a8b7d491d4ab680a46615450efaf5a2febfc745fb7ce36ab05dcc5a933404925854ea5330563b41d477a775679c1f8b3e69690924fe6e9c479434ab55bff996f6b431e0ea9f4d7904d8dc667decab7f9dda70ef6e153f0d46861bddeed50d9b21c0e96902a7e26c7f0e0aeeea817e6cc478ccf2d4dd796398e1d8d04eb31ef4df7b90dea7bb89079e87d2abc641e7d30933d520475d4788bcedd194c5807cca43dfbfd25bae48493ff273cccc55447bfbde23547c45a36bf295b33ee8123bdd8bac4a83fad5260a3d061d6c1205498549567ae1ece960ed6b7ee8fa38fbf33d5e02e1ce8f2f44837a8dd86bf6273c450c58852340ed2cb8ca85039afd9e5c9cbedf39ec63eac8d63a3a76d7069b57686d3d8fd921729910edf9c815ad8fc67587df5d20057add34cd4bdd4dc830e5af9c7a41ce541a5dee832459679cbbd0626a670246104a33cb4d4769079f540cf379835be32f6ece70ef693d453071cbd7df3441e3db8540c4a525f79def5c44a8c397ccde8e4e377bd84b1c0a9e7e00d58bb99e6cbaf6a9417b314a79c536576d97a5d019e787c34e54a1aa9f2f39a70577e9e6e803be48e2bea7c245cab5073cec2be40377592237dd05f43706a5da261b99e234dfb1e63bb45438d9da39c2ee780e9db6e0b6495d0fb966c9352873a342b9e4ef18985493fab4de4f1295f7e935e565cdbf1f6646654e6b78aa3466a0ac82337b90ed86dce4bdb62bb376827a5a1b467c74ee4e597bc7db7d1666ebe00a7d20007e1f05f3ca3988068bbbb9a1a8fc5a94d37b930ae0758bb4cefe98c96f5b9dc94aa649a4647135b9169e6b81f18a193be9015b5dbd49e59f1e8ccaa98ee34f53ae469a51756c220bc827546b0b973fd221db86c43cd1b04c35cce83d69ce837b3b08e1cfad6afdab4093142738a5545a5fa97951d735aec4a3e0a0e75abd999bb2beca1c7499e7c5d4634ffd605ce6e28d47bef3231d6d5b6b8eb330f61d0ad884bb87bcaa9d2ba3b71fbd98c0a97a53989637defd78ea5cfab93b33b1396038f70974b50c4d6c8f4c8a0a71dca689c981926c9013ccb06ac85602f9d5a93fc3bfc8f79beccee078b4e8937839341169f3f26d747312450afdd731d99375ef6b8291b39ec146d0b3fe8c9084f1575b11fb4894d47fbbdad66a72ea334086fb49faffdf4384cf64735775144c098e6756148a30e8ce75a67137ad2455860252b764c15823c08358c45ac820bbdc3525543a66a22854bcb8dd8e1c920a10f67e9c8d8495865b3bf16c39ab0a86cc231a521f42316f7bbe4d019616c167e88a40b4532b1ea688222a48150c6e24859edd0210ea54e4e80654b86abaaeb52a022742fccbb336921d5807d0769bb5674141fb791c6025ead44c79cf8c1fe80987086cda07546811471cebc7eb7e8a5c554a6cc0062bc6c0b10900a8ee95239f844d26527423c30f4a1be90e29424263663406debab5025e11f00e09c24058f8077cc2313842a5ac74bba5e26cb78c4f8557cd38dc67286d9d25b18f005fbfa852c5ac738f33c24e07b26d635a09a3e3d12c9eaf432a06c4cc88b15ee7c4258b279631a9756e5086145cc2adca624410d58db0def549d2c13caa2d80ed4a088531221e9881f16e39659c3425b31b4e5c0462df53375870c2360b984a881ade524777489b8a184304372464ac7099b6afa24a9545b3ad02ac8b9c968d0b4b6e991cc0a83550dc70dfbba36de192bdb2a2239672f011bc2924622ca6c2c7c4c334ea05db489ca290390e5a18bf18b564a037157006fb9131b35983a9bd285d66482863c0cc4270a32b13e1299328acc2dc4e1812f1522a88177e813a0e6b52f11573873fc512bd004eb31cbe1446a3b3518ae2253ed3204c3e3c36439ab128c322a0160a5b40a27f3ae6121333400b050d60e9fcabcbc82ca7fb1b1399715a23417691542441923750abec3607b47b380835191d6f790a7d08f00ab209a6ba608cc9cbdfc6c8f4cc194bb22c630ae48899a058bae66f3b0cb12a0d2e3209d995010644fae989eb94cae8128585933ad0f7282940606785c07e882031c08a20f4a194be008aae8ae5ce77c17505bb0854579712f7f5231d1c32301053e9ae2a1866b634949bcb4c6952fb78376fc91bbdac8fdf096d1d987db5c71e39371f894adff2a099cab93d5353ba013aef5c58796f906e7a434590181a793ca012a6610c912daca06903b719e384c827ac62e2b2590f82f29d00bfeb50d66815fe13085395663f722399c187cc2784198b028e585b305e6126f6a003b05aba2c0a87eec6b186623dbb37dad789f7e8ba7ce01a792366117c308601664d6b7ce64a03a03090f55c5b59e66545bc0c9a29a29d2eb89eeea017026c2a4b88ccd12c96816af697c5b5f1896d340a60729984857072234c71aa5c8fed44f05dc7defa39cf409b063e68bb28b3789344bce267db328542a5530222203d6d8858e51caeb8c913163a97c0759a1d1c3562288dcd48d164004b08a1c9eb76f956ba5a562a84182caa6417e237bbe4e09a5bacca54a32c76773c84c14401a348108b2cd83377f6470019af3591b7c65bb33833517ce53f7701c4b1b2db8665cf5259b6052e73b41ee2641e9c998df327f750c44dec00ad7bc0ee69992da9455c2b26e4c7605dddbb3ed942542fa5c255b4f9d037a4264939c3a26f8a817d9c21aa958677193c13a3b1b76619a66b2a0b351601a1750ff9b78cd4506e1c19f04671fce65c5c34a6e8141628dd696b3d5b962497ed3433bcd707537ac4715a7192687826fac2fc0a60fcde02f78e69dd3b996b937332ad2161db433ef850b4c8a5bc8a48556a927ce345679d1595b8a12a0e85dc5da576cb9d31e5146967756cf7356926f2e20fc7c1fde9954cb2f593d96a80ab860da1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 +ciphertext: 9dbdea90800c59e1d99410f1addae674dcb4c432b65100834cf0bba07cbef7edb65a2ec31e8de08ba9a4815f004927ff973caaf09d359700caaa7f45334b00d4ad36e8ed5d88e12c7b3297eb2c0c40b625dea0520ba4e1dee5905cf37aef7fb7afa89f0ada61d642d12c008af944677eda3c5a53936bdf6810e16087351658852898b87f5baefb5c145dcd293c621affb8bee2756a74aa1b21b68c2f45cc6dfbe807b361b108af0ec7c878bd342f6fdcf4045dc70e14ed394ff4b39b453b0fec567b5ad743064650869e10ac49a9c18d39a6030707186d5ef0207f8fe92a5546fb4d32cbe6df84b3a7f9b6bbca8a86f87012ed69847913afd448779376f507e8366bebaa137474a46b9ee67bb0795ed780e70f6b67fe931ee0f2865148b2ab8fc58ce52d516df0854618cd97b07c5b1fb2730e500a03dbb633fbba1f49883663c6402066304ee8b34174be6a24c075181af5f06978ec21745fc4501da8409aade82dfbcb9a480377d25b3a6e7aded64660567918a0b3860bc5d71d2927a7289aefa9f5cedb16090764b7e245f31f745d8c68cb60301bbe78f1839dcd2eb0fa0ab78f4298dfefef779242b0fd3ba730a7771bb52c549525152c002a21cd5a221543ba05792aefd6335ae8f5da830452be90fc46c151d656c949f051e911c7d0dce2689f31eb58ecfa3f7a1135a2fa548b323c59223c6abd3a9f3101ff19a67d4746a20b95ddd31f30e4a650c6f0065872372ddd26885a41e43a3e3d7a830aecbc19c43911cbaaef663524945a694d514beebff95f670dd2709e859404fcbb0c3626177605d2a544745f16248cd2dc1c4943be30c9b907012276bbbcc978ba2a0d9d1d247743b7872639183aba6fa37edd6f0dc9cf7c1e8b614517573bc3dc88886dc3fe8e74bb1035aef74016f03102df50a57e9d4c212fb58623fd630df87191163c7643dd76ad27f23bc5801e6af3311aae5a6cf2e02721a072ade78648342d662f5d15cbccd03a1f9cdc35c9fee3b27843c2f819d246cfdea1f9b6807f4873bbde71fcbbb361b2d17dfb699859b26403a25ac45f3ac9187272a78175ed4a9d55047065b6d59698f296f92cad6f361058f400fa9c0770a762a711657da59c020096b5f8c235a2a74895cba8d9d380004ce35ddee9daec03f24fa6755c969fd007031ea210c9c1e542319e1fe129cf5a20a5f3c039ad502f2bae423abe0f9db88edd1db6253b972c92fa65b749aa6bd48e621dd13eac98100a1d8c63d84830fda8e482d69497f49a738a3483d081cf18dad0c62755840828b00bf09d1ba51211dd623f14d7ba83b45a218603cd203d5016725c98a36dc1f1a87a21b83fa70c47137cf2f15b84096ec817e417347a395836bbbf095ef6b049889e88aed5496c36780cb0c2cd3006054c4fa03e3177491183e72180c916e50b41d9db580a4e1101e158e839720563cc3a63bb35491152bdbe8a710bf4fe27f054bf6bf51b22ffc72629711c5486a3c44786f60fd04a4deb2bfda694ff797b701a57c5ba38f9b5b8 +result: fail +shared_secret: + +# Private key not reduced +private_key: 1ea8ec27e35d1229fff6ba764ba7e5bbb53b6afc9c3db6524bf480bb34dd9066f2d90e5afb4eb9cc78a3f049f69c9579d1bac3f614e827e883b4ad73f22758a92efa36c9ee2e1330d5fadd609ea09b8af464aea20264f5b28ba10d95d33b9a8fc3ca7ae949a8b5ea5c6f5b706feffe94aaed5cefa5743d6b8e1cf26634ae3c6dda25bd8c771456179bb24bdfc3024c5414fbcea4455cd88ebf0fb5439f77f85644309a8b6454d76463e69f2797de9089463d9abe0f55dd7267ffbdd678d6fac98c7989f0a9dd8989e3d1decdc6a378ce0bdf202c438a6f6dbab6646c0dbe17377fc027c27f9694f04fdb48ca51ba744d7c8cf9555ac0c1c8cc134572893bbfbe45671235f73db5b54659a67f4eb2dcc744ac2fd917d3c952d9c848bd38b53c36a369631493681b43512978d69e2c7c140550bae5aaf35b64b9f9b8fd6c75e8063108f7f37cd3f0ae3fa8bf9a74997d98e3f8f8f99bc54a65d4cfbbcbd36ccab973ce8e4690ca8a37805657af89c6811b8c0045ca3ff373720ca1097f59da9af7de2855f33ce6e7d7aaa32c761e2f41aac4fdb19353de53a2be1f5cdbee7468356d63256e22f6b2eeb95bc3b343ddb33165ef97c32572c41459e599d777d8623e3a7df64e945138d04ce4ab74ef5764fef36d1a99e64d8a6bc59ffd3d8f2d9edb4c18ac29e7f581f46573843f75f57986979e78bf8355e7bab59a9f726dd68aedf00589a2db8e49bfbf60241bcbd147af09cb54600ed5a603c1e22cae647662674ef56e47f0715f87dc984fd4b3cf065833451eea4975cd490488dec64654edeb0394b4148e4f18cfd7e1a9bb5dbe661ba5c7449f44267859f1544e51bd3911188bee97a12c7fd5249dcacbc9c83d7e3dae27dcf927c8b4fb94d2bdc9da93d88bd6fe9f2efbac46af692c77c58cd008e44c08b737944bac8c15901f2564bb2d56c03660e7c6bb26cec6086ee2a20338b8c4e3ef9c742163d741dbddf30c785a86ad78aa519ed65993578e65ebfcb32ce38ca6820a15f31dd56b17668490d9393a1ec8e577d60d368afd9bbf3d9369b7bfaa439389921eb72d9de4f1d967d71f86adfbb16beccaf0a7efb9bff57bdac12c6d372b6e768bcf42df6b575ffe8df5ace74acc51c36f76daa6df352e9b905d72839dc99ac8c6971c9032c34fe78fa58de45e4b36e5bedd8ba7feeaf913de1968443a4bd8e2877d04da6206af74565953ad6b7fe40565c0b680daf685049bccde9bb6616b325c0eef7069729a6a42545ade13f9ddf4b5a42c2a3410cf8960c7e71b638173057519568a83fba15f4dbb467b7e33d9785ae34f9f7d5f232ee37e473b88c978d9a49eb4cca1b5d6b52d5b303a3a8151ab4654544fc89e755e0cda432fad8beb3058af4bf606dcb6d876c5f7b8d7e6358ddeaced6f54da7d75c00faf58338f1a787dd335a70fba4c2ae3625a94def18b53f8d8a2d15ea2be6bba4fa6c40a9facf23f6abe29b852c7592e15f045655a9acb5228b4cfd8c54a43fa2f76ba3fc8cedc603c958174894dddf77f6880210e3c745fb4b38f389dace78beeaf179c3d7ce495f82a773035b08f6efeed8b309b5f94b904c4611fad03bc6467dd33a65ec7016f4d0055421dcecafd8568023753735c1bba67bbfd117911d0be47b827ed9773e4d50d8d11a5b6481357473ae2a766156b9a4e74169a1b3cd0bcb90eebc31f587d886accf3027c8f6620aee70741c403e4a72d4bba51af5b1362180158fa5867d25168871d599b04819635bbf096c4980cc336267ac6b956bc861e0a9864766a18d4b8b9ea61a0573fe60a5ce58a87cfa2974cf17d4f599673137dbc662eee9706ad9a85d780a911c209644980cea134545375c031b8e1082b4c201ea83877dcd7158435ae34d52376816719070d76c0683e0c4422750a1959932e88562ebc932bb7ae688c09cb703c6e567e6d898b6e135f483290da271d7ef16b15d12d4e0872ccb05130f52cdef878ea83768ad44885e5a2dd6b2a94493ca519c14efa09e9cc0739354cccb3850cb0c4b504c2eabb1128f55bccdc17c534b5e68b94526aa46888ae970372ecd49a7f03171872633e78997b51ca867852e638215be32eb2fb832c42038624035de54d7f4938ab78210c47bbbc931c336917c9d2a0d58454ded14fc7fcc6f5a97a6c3a5649689286f0ced68963cf24a05e9851fe1277fed36812e5984290701d5bbf138ab76f32b6043853415790a540878c3bb297b6bc7b000036007d8dcc7d32e6b7544c3225c2ca861052dd65c8f1d103103959ed0753e81258ec3770360aa924357315c18b33aa12ca06b24f1c59aad1b4ebc58f3f75b77c1b07bcb9a23fb0019de06109050b0ce30e8d6809c8a0ca70eb56e366033841ac39a6a198c5c105c85899e6403781c72ab30bf1d5917035b9fe50b081b6cc6103b72d423237189c583c702f7768fe43c182075a48828d041178e6a616340178aba89be3418c4e968f14b9396574b370f1c7d2858a1fd78b5351213b7c0a7e05382d0217457ba27a344546e197b22256b3f031c9e6b65ff377be25b6953a4dbc9a6e9aeb3b08c01358e2bcacec80033990f282b0bda655951a2b0ab83ef4459ac56a76af2b2d2669c0239496610a4274c9b3e5e998ac948b3e7427c8b380c1077480789b008054373a7fc65080f3772d1f6626e345bb417c9fbd97add68640dc12028258970cba5deaaaa32c7b022b0183c89b3e1be25606b3109ef88c9f07180c110703153a247981b5b465318abcd0a78ad1bcaa15b07edb66bd77a14b23e84afa6500bdf15b588009f05925a2fb430b0629bb4c2057f8a231760d9255746781c83ce932afe10b8602a80fc1a98c694e80333790b59e67722a7bcc2fcd9b61a56a5a8ea6b85b5861b44b521cb0b6adfa9c84f624ad499c0664aa97270d1a0209897569a64650c0a9b2cac1879e671d9f0413be9621b415641ed645fad52e2ce49f5a3bbe49655649a62baeb5634e50807f737dcef63a7fe0c5d2f573b9bc5914b97f28691f49045ec87767eef405c3b3c8c6089e03268a5f0c530f1682c4c022e3804ade91c20a0793265a45be711a607465709a24dee763ac192d0d57626561c3a6092f7777c8dba75516c39fb49c2353157aaff0787be318ce2c7385101e4d23c043742b9c5ba0d96419e192c20bd426de458585e11aa4d5c8315bbfba129a446c80b726060be07458991e973a394f163e54383d14d420ae0b4746a4b891d092db39b8e1c708768046cb0e3ca324d417302e861358385229492a291da3d601a3f41d29a75becb44d663e9976d61a687df88a8abcc6651446b81b7d136df42bfa03473c84dfd64fdb3b56047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 +ciphertext: 253b79d4c00753c7e617c2d0f419c63f496505e5d1787e2f30b58ffe0ec7d22999e50f1c5e6340eebbf4c08e441dc6569f5871e855e1e6db8f2554c205147d939068da6886fd9f0a6bf6a3b267cf7b50369a3199b73e2f87bac62e79ffc8847872974d5228c2f73413bad09e13bb4caa49624b96fb1cd7b8e4f16abaf591cc91693f014dbf3b9157af87644e45ee7c77ae0a3f8df413845ef65856219e53ce32cd2d6484b4ec97818b00a766924f05111b0d26fd58fa2c1d8de8f9612d31d68bbb3783291c6e28e5f13a5e93078564ffaf254362e52334da424cd82dd608d082074c2f31e581950db11f2921efd8e878ae591e10045469eb24e29f6e6c6d3e025c08855976c69f5b3d9c55ec4d7c6ffde8be339b75dad2cf924e113af854f0467ce7e639501b52000b0ecdd6ef38f6c84e1b0fcf980ddf3b13a9fa02227ccd41c28c8d74b8eefd7f4457df6ecb1c7a9c48dad6b8696d10aafa08ce0a5c12ef12696d50296395b5e88de5dff0cda475b989419bf14f745ba5c0a50286bc437d538e4049c6ce27e6b57d11891e85af7d2627fa594462ec09d988f8de48ee4f0dd2353928cfe0930745b7c591badd31a946e1497ad7dac6738f290ddccaded623117379556fd2e4d9d9a351cfa44d684c84878b307cd760583637eea8847b35a9d119ce9a30cc5d717be934480fdebeda223bb6c188b16827cafa4390adc9e50b52458411b931a540dd3596f1aaf2980097e0da5390803474fc5b1497ea0d22fe346fc3efaefe9285954c82439beefc0134775c2708695ecc7033fe80bb27d8917374b347d22ad56c7117459148bba9d37c5c9de61f2f78336b2fc3878232bc8c9b2ebd5428296008ce5f4ae86e08dd614bc1dcabd667037748310e3a30528613449d8229da41b03723719faed932b886f4b4de92d236a2248d0cefd3c56b5b9d15746b39ddb98baab417ab393d00e55fda4e83c954b2dcd0d0b2ed6314a9169e2dc7c7f47b2935d43a82239e7324244d3c42c3596a45c91b5c950a92fc250f9cdc11bdbba455de56810904e4991f7646fbe1d5dd503ae7dd13cc943a6791aa994748050cb59668e41c7c273838c2f294074a98bd0c1b865c3ac9d7730655cf304d6f00e234dcf51ff952caa586ad7dcb97a27a13b48d5a5b0067a21e73bb8720176013525182d35277fbd5f01aa928d478f0080055f2efcd9d8075f8cbf1c6464af59554361e9da4840066717b88726847b952a49073805a62e8f232a954fb7bcac13e1b2a444c4cfedeaee714c76359ffebe134674e3624207234bd5ea682477981c2b083396d1d33ed90dfc30245831207a38172a8826b9e608c24931d1e64a348f7b2b1511f3beb9f26b38dd96877d210c3484bff64dfac6fef55c250016bd8d427121d0eed2259b59b33f7a72015b35bddc94a473aa5601500483e55c29213023d095c26a06dd0647019f9d0057f64a638e63677cd1ab34ecf9d5f31e801a31c836fac22462c2bd520e5a42e8e0cbe2b6bbb7bcf21224215638ce5b46a2720 +result: fail +shared_secret: + +# Private key not reduced +private_key: 6423bec1793d3308ecdc6a591fefbb7d7c9c29e436557ddeeb35345aae9199234caa5dca5f5eb3c9bf4c5a96c164086ea746c3b68582ee27ec0a03cebbdeeb39ea6b1d6fe8036ee8ba696da2dc9ba9a87d197931271f73de87bd360389026e31e47b66b65fe6474cc8c68c6f8495f0179fa53d3cc06d6bb1a4dbe9a69c435f4f706c1d68c897f413ee520f8afef7cb361dac74f349d59118f77de75ec66b76c7d432f84bc17e6cf0f0a94764c66dd8738e621ef960b9b2798b4c0ddbf13c0672b563d818c8fa6cbf9277735451147fb4a4a1bac3694a2f7479b74c359cfb3ca852048ac6d52872dc73e87bf87f48afc3024b41aae5ce52e56607b5541e67b9c528503013354048e97a86a2caf8f4b7df82b37c8333afbce5b3df2367d22058779d6afe266430b89b3fd85fcb5daf6ee317c62816ec342d3788ff86544fcb912fe58d1e3e402640d5f9d0c6db4daadee62f09d89b58fa4eda56b63a62667f734d4e7952ec894c1daec89ff121a7815014fad42ea70554ae6043a6f00be3c51e876ccb65bfabcae28b75136e89fd9aecc66eda95d36fb33e8e9654eba4ecd9641e66905579429badfdbc6bd8cf31ca7e837f04f3327c5f76aaea89668da2669eabce564ae75e7df44b9596d11b6cbf7aba51ce78f60b65d5aaafd7438837a2c67b047896f9f64c1b2a54969d61e92c8a7384f962366c16c7fef45d9b11748bb819adbd0b400964be48cb7adda5627eb578933a698e08e47e46f308d3faf7e93ec744984ad3edbb34bb8603b48965ac9399ede258a9bfa4fc36ea4c8d8cf3a3978eb6fe76554bc809d5946828b0f40add55744e702a715268b8dc684133738ab9cc9543a74164e9731854327d7361b646d69bedd184b5b3ace48900ccda295eec123b4c7adea22346a10ba348883fb2aaee94bee742a36ab3c1ca9003a76e28439c6667c3d6a731883e50ded546f23f644ae4965edcf9a5c961f056e2b194b0509b3157b8d85acfa95c9ab2b5486b3fa8732bd4c18bd4b806148d65efff38c7685c9934f7b990cc378106579f981c36d5c99a26dba6df39f1c6385ca339e2744fcae148974d3bffacb9dadc6f90211d4e475dacf41c5d85036bcd3d58203d4a5db46b26a4f4282776b6dad6bc4ee9a009ce239eee7b0d4c59bf8f6bef4ee8e7499b43e749ebdaaa33710cc9737ffe8dc1994218ca439a463676add86efb83958938066dc6cebc4db59cace187700b8d508e3c9fcce960637ccbb4c8a5bf3a6d3db865696a5a5f8f4f91b7cec516415db47d0c7d6b9aadcf5963875e89a08d5f72e09d987a7c374de99113b54bdd5d63c57fd11f2f5f223a377c4ae5ed8ec3778e7aabb785ad0b5c2a0bc7e565f5dbbb305396319feed8f7fc527bf9d6f7ffdb975b9eacf7c6cd574debe4d27bf367519ad06236dd0879b343783adcc44372667aac64eb454a84b8cb6fe1db9589e4395086ed82d5e2bb9f3819b4d78cc6f0fb85d465eede0069516028b1466f8ff2fd6927965935e5b2369f959f9b39bd3fbae39da584cf4422b5545c2f846f4fcc1e45bfef5396cfeb544a865d7739cfa099ea02dec2d36c6f342cf4e677a8218640d12cca2789fddf9a488afa799e68dae7bd8287fca4992854f318a4dd4188f7f334d83a3fe0d5709e89b4ac382e9873baf2525afb10a2785c5ad09c4b28b311b4579a79f06fbc91378109271383ab1ef7169385aa2e78b70d435bdb604494a246be23b1f26874ac9165ab451355f59686a33fc6cb78464cbd98021ad69c1ed12511ef99428e3b3685380dc2b16c0ab5cf46425984702e70fca396140a95e2c1bbeb245572049df3a4192a420fa52bda254fd55186aa960669f7ae2d69954aba444fb9c6b6cbc42b5ba82e262957089c76f48ba7362d6865259c321083c464bdc992bda9635cbc88ea89726a268a34d5cf1eb9aad5347350f67d1fea925f5677e393984818053eacace1844fc52b43d408761c385cb5491645696339ba086bc733c547546e540ead9b1a7942a0316cb635a856836075d3a87b84b1944a5587cb33c653e44b5bd764f6f8b06aa8688afa0526188fbba82707a326817087ea807e2ae51071d5badc027ddf781483d906259c30ee410b69060e4f47222481cf9dbb2075f330e4cca839b093668b82c02680c236167f3621921b863cab9a42e420a050986d481cabb873b6c19fa34b7e21bc6c029598daa77e30177357ba8b0e7696b692116a97ae2f535cb5208c93611ef5e952e76417fb974879337874f3c56d47a0d695797e1313e2fb7c3c6b2c32167f7faa9f10d18d512865f6a453e3e37c5bfa100631863b4a5f4b6c957eeca3bef28f62f98336c05770e001d8fc4f595921826cbad9825a76048aef2b4d97cb354784b4b6768377342685f87142ab06a67477b66a9457c48a2f779e0872cabed62d6e73278baa3406922f8ff5465af790e02310c9b8bf6e1b2987ca6521c55bbadb249ecc26afb244029312960a55fa45b448397264aa03530b9b56643a0d7cb9a73589955631883aba865c4d34fc5f5a6b8d596cb2c4db2b740645eb0a29647089ea2bc8a92bad95c15f52f5a2d24431d83ac4e701210c5b0ba3f31bd0086e47ab3f7984363ba00041c082d33064f1b27ff26958b85c46612c6556561a2e40600ae14fa70b4c1a81109fa6822c01d0c2786f0e17cf198009349704159866e557947b81928feb459b2337f3dbca2c82162107b5e34aa202b893c103ba5cf9b4580107c1f36b6ffb9ac34c2cee189571dc7f411349ad112d20f35a740c216ff98175563599d3cf6224ba230c2b2f087525059f9ab5b80f63110719972156aa30148bfe4c907b214f683c56a38a146e1c21e688c44f40bca8d4a87d3011bf64725360478359ace455c5e395625c95cc84ea3f0d004b2e3a4a12180a1463a234c4912f00be8324906b3805151841a1f4a5595621d66ca8b1863b6ae4869b4c93e2c6c94fa6af25f37e992cbc7ad23f6a274bec8b537f89b996439b762b2faca39d1f743db79451cbcba86de02a9d8567d8977d12066a1817bd9fc2b1bda75b9d6c78a39bc851654008b266c45361dce46fb2b02e4894c784f0b017428db0ba8f1ae54f3e8050381a90bdb073c186aaa458a2e8c682b919741836397e3c59e0ab75dbdc48976a6a474969356a75e171bfb2ca76e968191d970cd9e43d2fb2843b2a5e9d24cf4b2ca947e01f0c129a763ba55b9b92260c21113c03c7002bc8c6a2c544af711c18030ca984dc584e0b0627b3d23abd9c4d9e5087bcae2bfe6581eb7f9cbf532ba6c0cfd4113c5edd408adcd03d38b12f0b6ac17525c618d6d151a761a9eebc26358d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 +ciphertext: fbdba17a3ec14cfc5f113b833e70ba6bee49a459173a7d71f6914316f042f06be6d31491389cb3d2661a460b91b84f5555d350e19f5725486b60f1e878143f20b6cfa3f9ad19c11d6cde78681efa2d75d9710a6721cc75cfbf8b104928796e5ad870a64688355654893a77ba7caa40ba960a55dc8dc524198b3a029cc9ed4ae7f54b36a0738affdcc523efd1d7b044dbbaf6149cfc90f548918d458e1ade92d771ace49df76798b12d91fab71c0699767b7d2a409e3a20e84c24402383acc9818a896e790d1f78703b16ac73f85d08f9467839f7d53b29696266f654eb5141477352545790b207d846ea55f175302b68973c992b18191bb8006834d249b3fa6175c33bf758215308c20f4606661a8ba0a9bfa754597e8bf794b2d2164d1d9f03da16d0aa8945752d65406c60e3569cc76a174854046c729d7a17de91a74442a80267db0e6ec081f4783c5ba636b73baadecad748792e3c4830ed4742e4820360d69a4ff732c277f06dea33fc765c07a77a9a909683e8c8e908a3a9ab4063ea3342ff69dc971ec4b5d89dc5a33b1e195cd648b6a0fb5d7ff1163624154c06ba0a8aee57bb8ba503160f5196d6fe274bca9b8e1ccd9b022f72bcaa92da257ead51409f547de03a6f1f643610ba9595be80428e1bd73e2125184cc6b9c97242a1f5bdf7253b29cbedac010d497c0512a56e4e501ef17619bd7ddfd929a09db29e3f4a5a3475729beeb6fc2bc9dc9c3aea7eadea3aa4e60590c2593f272f3157d257dad79e3dadc34aa8e740e139ece60e977952cefc808a11d530a22a10bdf00332a4fc43e4e31aafb686403b8f7883d580d0e46fe8c1c95e4c791038718fff25bb7563aa62d6245bc263f6fe0ef8ab63cc3cf8c47cab5e6147a0d8ed990f32e8abb2a79292cf85e5b269040144c47f824331d5446d30729b00bcee6861eb9f5cdaf901f64602dac1dda268b992ff5427fab223c223f0657177f7f0babbd161bd7027b27cb12798bc3668fd27c01f4d465312c3021ff559d9c930548f073bb7a84aac0d8ed509b3b0cb4a2bb4d44303aab75aa4987fae69d657a6c30ef1c82747455c3940d2fcbbb091ed6de1f0dd64740d2e21ac39e5ad22c5ecbd8340e7afed3445bcc41c92e938fda044f4e9cb145f0d5a86c87428ad01c3fc5280c273e6883c4889139a343155aac49dd257a13e3491418b1b926ec8e1b78212a81e313a50c8fa9473cc00e05a414a2ea1e14292c3b72b5706a7753e0e439adb63a93e5905978d3486bd5dbe3834b5253086e15c57902276a3d6f405195c43f6c317aa7a3cc2ef21fe89f3a7b4660f9f4b6357d60a129e265bc708b60ec2a1fa4f44ed476ca7f540ed4495e8ee4df67d6476793402b732546143b639cfa186f37b1a612dab0619cfe083bee29d29f5094697ef1b6781445b01ae64369b738a20b9387087481efd84035fac494af47158509c64333ec412407a549a36bcfe6d5c15b1668b8570c75110daa1c93779962315e0eb0af8c056b031a787253525438bce41121026c0 +result: fail +shared_secret: + +# Private key not reduced +private_key: c16fbfea197ad53bc1f0556d6dc8a863d46bcff5bbdbf9e9d96c409a6f7711bd417c889aca6964a75a336eb5aaaf4d674ef3a3f3f96d9207cd0988cfe76838bac93b4ec866fc4b6b1127bdeb5c9978ab3cbaa6999cc5d8358b92cb3a859754461cff5a471bca16ba9259c4db3cd3eba893eee9c95904b9303cee528285f5db45df9ca65183b63a03bf89193af24b88ea6c1ece7b4dbcab396febffd158536ba9d865695deaa68b428574f7ba0d3054ce5d7d36b9807960b94b5f3f366896c59298689efc2dec8bee62f4b4b53d4bae817cd1a56bce8d1f32559dd7eb887a947d3b66ea609869c7155ba0e8f5d9aa8cf9dbb6d337d8364ac6ede403a45f59d41f8f671dadcccc6dd2efbbaf65a7b453bdf37f1979a4988c524570826de7f794a7baf8d6a75ea732659a36938b86ab36f7536eb27c5d9c7fceeaade31c1a6b31acce8fb5473dddcc90cf605b4cd6f24866a46e38e1148f50c9a531cf4912dd31a1fea2211e37eb3deeb8c3b789fe5d3c1bdfae5fbae06981859de32a9f512bd5b57df93b288a6b9a18c3d1f337d733a6e1a7b7780b45f48e3aa855c64c0d4ef55b89da05a85b2cd638f56f6d6c87ebb947283f77a9c5392e489afbddf76dfca66687709f69bc73f373c929c7cd37c01ddf43716dcecbfbed045671500743ca55ef7d9871fe35fccc39c34196da25d47ca91be8adc3af22d84939adf2ddd3a6e897f12d6c9ffeb47da023ef76c9cae0467c359682431e8f104e330cab99a65ef642fad817fad8f0d49380a94952956346087012ac595d85a2339779c956abb3bf5fad55e2ca46527b54954fc8ebbf79ccc19de279db6d57d5c16eae374ac841b5b441be3944003c30a90c56ef2df39e746ac6fb867b5d808839639bfe3f36e5e6b5056605236f5767f844d657ad2d9135569456df349ed67f3715902c4b58952f9eaab63d0ba964bbc6884c1b57346caae7febc953b62f748f7ee67468644ac394ef8ff6a3e97fcdca3689a50ec5aa40392bad95e89ef41667be8bd7d92f01b9c7c3e94bfa77937839ec0df4960ff9cb659a9374a8dbec5e307bfe553995ab9ecb83637bb7023656918e2c4de8196fad069ebba9fa5fb6b468b0e9846f4f7af8c27d54189cf5d3fd0140ad0551697387842dd2da4eab8a1f048d934eba5c45ee3962c652f1ec97b0e44348c3218d371380c476ce987870472d72a38a2475539dcc545693d4a17af010a8ff93873dc34d51f7a69ee7c3297ca508d4ff9daefe5b95b369e5ef6863ad3531bb1fe7d92bba391d564eeba6fb403c5d565253a1c9ec63a1ef69d18bc420d3bc75c876a277adb07dadef9b5444764201ed27174334d963813a678cf85d7b566fd1028a63eff411f6a6d587ec60b5af6f6cae9719432496d7d9ec3b72df5b9890fccdafba8a8bd661a76fc881dec3646a8892d8cfd68996fdb37bfa9d6ee99a0d09693f31bec924c919de4b7ae0359b3be59d648bb4ff4ed197c8d8444c530995ce8c3aac17637f699ad24ccd153fc7572c759e84ec1fc7e982fd6e921c45160cf60afc58fca4a92dc3b942607e8cc0b60c6535d1f34b4ef858bd12677eed8d45189e191148a10fdd344ddaff54f50cba46b9c6f63594c940d40b119341d9e23062c693509304bac635f93f91bd48b362989751078ab995408ddf6787ceb3f99c6802aecb703581dc6979c4d405dbc80a985f991f31924383428d4f5a2cad4acb5f95408a3406ec53425f175651952f5b76acfe2a465b30c1d56ca0e53953dac0ee2da352a687441f45dae26b37ce8008a99308639999d325ba89585656a6d59f51d10e46f93d099490c2385788c994238ea1155ed22c96a5c5035a3488be1c29e345ebcf6b1b7288abe95c29b272a7817704bd31589a42b22053226a43329183f6160105ed05e73203d172354fa176d3fd084ce690a8b6a4cef4035a3e06bc6464e8c913b88a48c81e58dfb1267ec6c1462d93433193e50d1b2d3e3828e90b6a412c1c45668272307f4b8294f37b84857bdaac6190706ca31380533c30643fc319c866534562036b37e825462c8442641c7817650333fb02ed6a2bcd6c1ad0689001098af3657363aa1b689a20683044d15275d0fc3c9aa720c8c4c6212fa70095a2243232cdd0b0fbeaa1c8e7b45ffc2870efa9bf56c8ee86659a618a0a96c42acb48ae125af911558f7cb20c9cabc4554c8fa6c70e297625286456ee625afa756145c41373ab4fb59b2782b4a406115de4966d07629cf8cc2283b4307e6a058db3dee6413aad72f89a7c1ab4131d8ea9df020b033b1473d92c4d89aa84f044e429a43b4e22fbb693a694bba3e315e78475437387b78b33261d786288b20440c44138c84f5592bbe74c1c2ab01ccd1124394082319780b24c593149cf660946f75a930f0a8f93a50ed01b5276ba96ab6ce5f794e638697ceca94d80585ced04310612a3c6cad80dccab1c1cbf5e08b2bd6b7df8c4cde4c4507a56cc97b456e10050bdb3acd6a7e00c1742aa4710e1674c59a8240680d04b8829752332324490ed6139b550c7a832862b2c831d4093db2b256f702850bba03053fecac41a61734229b2dba3210eea0c1e8d9a54c915f54b32344296ea64855dca92ab81aacc9e73153617d8464852e8208904ace7b84509b2266f9fac55bf68378d98d3fbc0a468543a8944b9975637162a4d50c7fdeb479daa8ba43938333b897a12c224ed1c790f967b2d9708c6b67640ca9ddcc1562613c2904c6f3856d13d904cd3094965abf1ed32ce52b7dfe4429ee68a8a3ab03446376d6da1de56a7a7fd30688f513fadc5627619a99d191bd4c0ec8bc1933c00757ab3e1f5826677b5e9bec2b151058bd9a6b5d2285122c23466312559c89a634abc2a5a11324cebbda8d167880f6d59bc5fabcc23487eda84f3543386e0b8d25422d5051816315532d2120ea4723809509bcd0c2edc1c93c275ade244d4f5b27f73b0941820da0183ca2b7af8480c90243af6334b36af00bda4c1e5f50463b8c350923b4696b7eb733762d189c9eba08c09050a4946388d736ee73c62f47cdffe453776730e88531f07abdd8699e8bdc9f05bb12f275c453866d46519ce2a592a1052c1e0c6b8f093f53a057d6d1bcf759abea90883eea68c5344a0ae96cdad42f0e756070dbb496535b9e7325c02badae5533140b0d9e013c75013ffdebc855734aa9947f1ca4b879c35b32c862c933479d884b2c675d3e1bbd26391d7c429db547041502307d975aee26905f7fdeb44f418d3d1fb5b081a3b06f87691170917a1e9f3c2cdc71c5534bb819e61a9d8a257ff2eb29598ae92eccfad38abbfc9bccde5ff95a1c812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 +ciphertext: ba4b796662f059b81f900442098ae7c3e5cd9c614f972d4237b2d968a3065ba203a31e13cc8c993eed58ada9b4f443b605ab5768cfa0f2f18d15a997ac911da943f27340c26082d9e2a14d5e1c7aa180d0409142b607383706b2ed5eb6ebf14cf2a18e8604d692d551ffb4cd6cee0b43648cd88a44e2735099de7bc95164a21173acb6ef167e00d16b7e16fe950614cb738e54eda7a50d6ad2579ed6bfaa65a9a84b9a7cc679e41b88093d42ec70683df65e568d5139561c3d4538c50946bd945c02d5272c5ca3d14482fe3c3b09d52ef42e0e521806cb8e902a7d7c25f6526d32e0ae2f585cfda19abf0364484b628669d92546eda69fc6a60845bc33c0454fa631bdd0630037e195e79bd0e0c0b998fb13dbcf55f2fe766f53cc740710f72c98156963b9e5c46a3da1430c00b05251455c984a9a28a5ec47aeca9f04563f21db0b5a4c058c6549082bbebe17542247c4b9642051c39ccaddf10bb0f9ea4a7331f7c7236f4d5664fe7bf04f5a4ba41bc954ca5424167b6501d82afe234b9bb61e22d6767a3342e8d380e9612685d5536e32dd26ac50f2658cad77660ded9f58fdbbd3db502a013ecd8c045cdec7732e225d5ba217dd9b98db1b4218a02931bde33115023d6bf1110f9f20e81acf521242ddc7d53b819ec0a78c3e4898dfeef5f1df1e75c5a5c208a29f4c5bbf40467559c492112652e8c742f9a4388a70fe499ec33f818a3e8e0822936c912f9f83a1b18010e3b1b2646dbe814f938abe76e2f21eb814a94f54b52704ca06c21c492a8eaae7fd263adc133ae4478fa32e3c0e9bafeb8021e3c79a1c695195fd4f089e1cce7ce6ca1d80de31f3810d012e538a39e4d1ef85c97aa1fd8f46b4774f687b9a803405dab5406d66a3979493a8aa3d49a1eb9c89b38086e154fee3b358d6b2ae9232e22af443268489cc44f2ad1536fb116c1906db03bfe9e8f0c79dc4b59fbdda7b1afd82ebb71f23a48d9d3910a2a728cf8ae1e9b62d56897e4e87037f4b79b07afab072248b7a8f67dc1940bdcf893cbff906871318304aa0e206bf30a16556773c656d206d85b3751bfba156065594bfa1a2c335cbe588d31648127e042a42430898bd6ec82e459612c6a354df1aa8819297ba49e40e97a74b177317bb76db3fd0f72ab9a62c6606c4633bf01153a64319959385aaa13a34dac6bedcd14d23c9319cee93a26dcef25ca7d082d99a0a9e2ab02c05fd2f316f8caffb0b72ffe656d6dd079372650b749d63847e29cf3401e59279bb276fdb0a4dcaefb217525b46ce9889281e4a4bcbacad327b160d833e17bf0b38c8c706854fa4f2e0dab16d33ad120d300e50c8f9a076fbbfe35c07753189b7d598764d24cf7f0a6aad0f0c63d36445cd62fa38989c215004f0f02a8a09a974619b208decfd60fc6a1ec781f426aa75e736c9ccb34dc98350f49e49b48430241f6798125110495d8bc79ffabbd3eb91040197124d6f80c9007d2631c8ab55fa5a98488a30ac84ac65a8c463fb49f8111f337231408daa73f96e +result: fail +shared_secret: + +# Private key not reduced +private_key: 77996be8a7ae3546a363e340c67d39fbb8e13adacf805385ebde8c56b75320cc71417fc454aaf25c86ba323ef1473fdeb227e33b7dc987e381a0feb63658d6d685db9e293ea16de3c134ee086d537d86764027e741645f18d451681dd7ad4c971ede6dd3c55f8ddac1870dfa796979ee9d91cbbbea47dd93b1b89265b7a5bd8e459dcc638ffd8aa0bab48ff95e48d7f5ff9dc86a4f74aa6365ea4bbac173a658bb3f2e646f9d4645a914b70c09f494586a352dc6100ffa0217576c43518f1d88b703cfbc3a3837794706188b587fc03685c43a33ae285edaed88f5e3ff541ce67c08fe5a71a591052fbe6ec94632beb465443b7215c30146c7059d76ee24e8ea3fc2a416ec201d44b7456ed355851d5ef14bcf5723ba486cd575b608359d2a948d85895eca59dab3cfcbb6a3678e5dabe7323fcd5ccc9d42c994b18345d77c77e87f45fab31ad6d1e4d008ae636a05e702f936f7694a0db5e0badc59fb2eb3ad033f9b13e03f6655feb646f217809e0da52106f37886f63b8b76647edf049fbdb9b5d8946f828beae0667a36b01fbba0fd90cdbbcc6b1ca0e8259422f376a44f944c1e8f74a6df3e4ffbc12bd010ac32c49584004bfc66198acc0f39d7a55f7aba6fd5546efec7a27c39c659de5332ab36f2988754f86f51c642fa087bcc93521aefb35ec7aa4194bfcbfdd7e465cffa63dc6b9982dcf9892409f5592bf542b34fd38d57e189a0448841b22ea39bee7ea5e7e01a7eb2640ec43fc84edb0b8b0cb35d6f7f99562d8f6516e08239e8589c740667cb32be69ad1d4160647f50c77924fcc6ccf95ad826d3aa8481cb4bceadcb3a686eb8794ef74dd8c5b6a7674f14e2ec44e589d3d3d6833fd4df5fee059c5fff69f7b9e0b316dfd71fe7c7a83a75c53115083fb68a9ae2da8f907ce3522331b329c6eda84ecea8d284d9bd405b5a8ccc821b8aa99d4996997e448d49f1cb2c8c8c3b4e34fcd7fedf99c63fbb2923f9a4555c257a842d93badabc414778c76c7f93e369597e8cd92b4df0ae7fb5335a93cac4cd74e5efd45edda6caaa98085d107ba0dd3d70a1284bad4398ae8b9acf58992397c9f0f9b2ddcac60bf539d0253d2d3377903a6963597298f97a82bc92f726d283ef5387f57c4629a0a358fa564adb1c776c1897db27ef89b61eba601884864787ceaffb84b7cdececc21e17e20a9c5f23e5aaea649eff523ec0b54fb5face104aea317e4f6429421dcc4c3066abdcf33357cd9109eccebd2a68acbcbdf4be62fb9a7b3d1c3743ac47b5dca488c561caaca4b20beb86ab91d00a65e98bf13125836b04ea0549c301fea0115e5f0cf3c5adbfbd11bfd851078df28999c93ec14cfacc45d5872af8580053ed3519f1e959a231c64103f332bdd55b3816c150c6edefb3f4f7dba65aedca30b9bc6138abc707be19a476f857ab9226cbd26a31e9f6a06e7f369b6b5e21a7bf76538da80ad7fad879ac6fc292a44e448b8252278eeefebb283ac71b93b50d69fbef275749c4c154bb669df436f18e785988c42ba9f70c1435af55e0300bd9ec97e285a9720646acc3dbd15f63c87dcdbb757d5189ee45f0ee33b657a9cf46df48ecee30cee163ab31c76e3a523d7642ef5662032561926a6380b6d6d90aabc5617126aa509168eca264ad67c5cccc5320c138e4053b4376924e6cb250b3a61fea8689804ac3179588a29196e05d0efb6915b3526d945cfc183dafc40d46537d907a292cd63b950659ffaa57e280ade8c09dd80655fe45979b612a6c6b1e350ba0cf433552e80f58c79d91f5cbff0717f3161f83b3c59fcc021bb5cb1922b0fa3c29984bbfc3363333f561dcb99395561590409fd7b56bb7db88e4162a61f8a81ca6b55af485d9b06645c42d1f706e9ef2b3d6e425285b4973202d46f150fdd4a6bad34a455b274814ac5c4053d680bfb4816578342fad152b798a1d592a3c88b45bdc275c45a862179557d437304151548a568159691282bc08f9280bdaf30559a3a177e6b8a62b101d8342c9d72452e05bbb1634cc1a7465e479f100b6f2952dab8ac806c27a8c555ec20a995c25a9ea8c090261085bd65c137a630e787da7a6b039c38573006c79bb5c20e39756e1a72e2c016f6cc997464546283d76543d9774345ac619f9200c308c25cea332ff25533b7983db495100f24a42e4a8df11504c4b96c017871b5a594e9c0b241b01e066043d07a366e343a08ac561ec5a08168a1c61755d5c33bd693608f42e63706bae5cc8c7f47aea360093fc78045517be49566f35728bd6a8230984a5e21133b63a9cb4a7fab4befe053e37bc78900141eb21189cf2abc0764b3cc507382c8db2320ea49c988c5aaa7ae896d10702c2082a59c3a457f382f44a1f2ce5b3d29a5a08d047537163916c5f6b22995541b87e1904b62a3585429d938a1b37d419bfc533cb918a424b5a1f73a65a8605edfcbd00678b6361399ac794f2cb0c9b26939b09baceb79ffc55aaa528673ccc4a5b844ad0873b4d6a31465cc479c30273aa2edd362625512012f83b42d52781c3bc947872c78378164cb0e077cf9ad87974c75ca527aed41a8b6993073d711c1873965448b14d307c5b218717b94ca27b354ff99de1f581e9561ec3cc196d1815a7a60a8c9a94cf4354140cc5e3b98bfdeb9c95c7c87182b878ba20939a0280e2c453567215a15803c01f7f03bb0b90741df964c4fa02f1007c466ba6b8f78bec07956611420220499a013ad3e3a874c4ad961b02e4c27a9ae71d57377dbffb556334797ec28c701c220129b856e747b90aac0803b2cbc7b0bb428583b810efe1727e0598cde9681429616c7b3f8bd8b691841a7a5405ad288f77b652a49c38eceb4088201b651a5c65bbc05e40a7a0f4151eb0962c34b10c1869a003cc4cf86d39036778b3ca32d0c500f7918cf027ef920b3718ab1c191618f294866b2fe77bab8c84118ce55157714ad2d054102a4d38ab73d1f3967e98351631582545c5a60b3aad50a7852c9d43b945668bb8b6781f56057ec058b2cfd6310506133e38b75fe3086d990d92cab098f06cd376531bdb8308e5a4d2e323c87c36e7ccaac87b00a7d4cfa3b3342d74a02d888d702cb44bc31201e41fe62c7511493c068a92717cc5513045bfa197d7f83db35798354797cca7891392ae9587245e92974920551d826101d44d9f73b3113746114ac94b8c8e291892be9c8015a0114ee44e26879c02084b0192194b922284956a8fc2b26e9071847fb901fdb6603c3bf7bbf5297bea11539fbe18868709fc57dc4d46d7d541594b53b4aec0d9f86a6377c63ff80150e40fc5347714c07591dc71c6beb8daaafc8e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c +ciphertext: 260ce3c51193358dec4426f6883ce12fa323c9c8e0dab43f69562fa5daaa585e720fd75dd126b0d45bc650abc220a11d6551e3ecf31d407551ae591cbafdb1fbf7d2ca3674d8a18b6887b5b55aeb5b47d5d739634483624207b2ff32a2932029f1868da248b0583b32ab13b87c57482bb2ceeb6155d870676a6591bdd33e018d9bc2a8bd644ae6d54bb4ea81a627f9b9fa74b34d359575e0307462608bff54c6c78d0cae95d223cd2c0b663eb414007c3ab47d57dc09932461d4b93eab0e557404a53f99ca160c8d9fce51483c68e1f95b10b11a4cbf062dc9caeb89c4199d5fb160c8dc1260ad21cd26319c95a1c3aaccba6f54cd8541bb937bdcbef82b657949e7dcd586032ae3b8b47e619884c78af2964167869738fc415a19bb32c23098b9b63098d8867ab98949feab0d9f2b1a44a79df81f51924c0c151fcd1356abf64efef5a1b1adf956b99efbce9093d4824dc58fd792613fe8234502d00062e552d3cf5d52909d980345e2e89fd42aedadd6a3e9861696fab590ae3c5e24e7a1b7cd40a3286b457c269f367f05c00f0d4610a4fb9b493ee9397181d669a143aaa095f13280d896d1c8746164137735f9d80b34577f3479501d3dcf98d9ad98f8b647ee7eec41d755134157533b9360a65b5d06955ded2dad2e6b6ae721380d3784f058dd92e321730b7828799939c6cff15c3b1e9b809f2e9bb630fc2f407b1429cbbfd27529e96757c0c9893e8f7c9a1a815dff37075db39aa30ce1eb64531004e4928679ca642f9c6448c67a1c12d1a5db91a1e5cea58da7cd7a8d9322d931f5bb5f18badd4a5348653b49a75734cf50640b7ded766d90f789325b95bbcbd756aa6306815673b3637d0ef9d1a61569371bfc84be0f804461d60fc4bc89c1f24f3f052b8036c4bfb72bd47ae757a8a3117e9ba562916d05cefec5ccc2912826e8ad1f12c1b0bd392ad3c22974e2549ccf683f01dcfd279050c9f6308398bcf9d3d7cf4ced38a65da0961f6a6af287af9519e3b0ec515ee56ae728efdfb0dcd02f6e352dee113bdf8edc077ba76817893e993133afa2913ca02ef4ee35cfe9fc16e4a140ac458cc0fbc674cb8f02babf7a0a2e53a8ffa4519e4d42eb372733d9a873db6a3c32f94960ec10193071b5fe625c0bc3764d0d2177be6e8503162c5b55fc2286e19e9e2419517b9a94e85120ece63dd7b7c7559aad80b544b66d2d3bc8daf2ae107af3228041ffad445dd66a50a6028ce0f5bde1e9f917c1bfa967f686c1428185be75218905f16595cead325c57746c6ed3502c6e8feac826535010de14ee30ae060a4abc6bda346171f8fb0d85196a11582ad6e30d48ba43356b31ff1cde5101e3002a91fe4c6e7b0a3b7e70cc1ffe1a5b9859eebc97c5d6af030f1e4a34b28493feb5021a9f9b304478aa1e8b0e6877e9710911ac6e04c3596a0d0eab24409ec26e4125251dfe38bbe3028118d6e079096616405059f954ca5a67dd9bec97d9fc75e4baa141b1a1fc75abcece72d1a510c09b07cff4c7d59a304778 +result: fail +shared_secret: + +# Private key not reduced +private_key: ee1f63888c6659df9766539e247cb2ded8bd4aea61e1998c090c96c40c513ce38507b3c1c28ee31fff80497bd3259d7d32bfb1d1e53ba5efb3795c6b756cb113bc64dcddb4f47978c048892f3a5b6434ec3bbbb9bc7c593a8865f59f309728d352d9600636b8f639704ce868d0c5d69fa99a395c30cdc4b4ce48d7cbad7130cb58657edf7c5a6234a3da8b5e9b3b6ccb63c7cb898565791b8a32c594fe8f6cd283cec434930c0e61e193d65dd48cdb49ff0414e20dd862549d6605284bd9de697048fc5288c59803f30504c4bf15e89695c0f8055a09cd62c4889db97cee960bb8ecadd9f16dcbda8e8eeb1e9886fb845a2d93610371a09358f45e704be5b7ba1830812eafdafa52af2a4b42c7d21459318b15aea9dd4d700766a014f8d8d3ac383a3cfcdd3e49a8ba9a7e3c729eb6152f769ef5594954a4d40ddb0359482de59d0bace8c787aaf8bab676acbc9cea9cfcb4eb43946b53bf62dfa8302ce58f759f60dcd65e81c7d55b76dd944ea67a45fde108435335fd16fdfd2b8bcddeece1beaecc3aa46ee307a1fc39d1928fb9d817c1a3e9f2bcdbb2a8eb5fc247db9d1a36ccf94a5af3b52ffd94cbfb63ca69de24e43ac2e983b786da1887e4daabb7a8edff961c3452298b0e93614a8baf42988721965b4a8beefc3b5b6e1968e927ce29ed8bc12cbfb4df3ee095836aa5b2dca4eff2ed568a4fb8a6d6b997caf71c37b25d9be147e6515ff788861b7e3b454d5e66b22ddd59a34696b53d890e8a9e0007cd63aebb1cbd897ac835dc26ade55f8bde16c8a00995fa9362c17981c794793b199eb348606f688630bf9c20be54ec28314e65983343c3897499afcaae9785f616c87077bddd54eb8bee6b3bf5e5be83bc3eeb874594147369775d0245f936f5ed801335e0a656ceace2eff64ba0a4efa6a563274ca536c3bfeacf662a39b4c3fbd7493fd1c93c50c95b823788606f8e791f0fec27bb4eedee35f1c961fd0d95c0dc83b62f62051d4c7b9e9d5b3489e408e54bbfc0045b72ffe77a509a6cbe8d61da15371c03a6d028cd89fe3494e8699aec9ec64f91c3ee6f7887e8b83dc7cf436844d7bcea4dfaad448c022e3c1d14844845601dbcb556ca85eecc54d426621d846d01f6f797dde1a33e652904a8a9e7a73b5a87dea3afe747662bd696913cbfdccebc31893d89f4af3fdf49ad946b7c2a31c8f35a7b9c8ff01988a956634cbd632aee76d2e6c38aa3c8ab27b9dffde35a6faa08b9d9cb8e96e8f6f6f123bb3883b9d87cf3883c9dcaaedcb9e6805c5859a1ed8a7af64d610a332c3dcf4197efe8eae3b513e56f7cd31ea4a5c33cb5ef9384c8047c5863fcb7da4c9285e76536a5f4dadcd6cca9b399a938ecbf61eb3dcb1660b26d698996b3fb2e714725f99927723f46d9d125f6336b6ad1cfcf9159e928dd7aa5edc7234c924a8d3a3f43460bce9597b4c47c9c4e64ece74b8f41a913aaceb8a431973d5534e6e41e5301a969c45eac9b8c798d83cad6d9f5b7d467b24fd71bb9af4a4cfc6cf635820ea620f857f6c55aa0ad77ae2545600ef59c66fadf1eeac64b659d28961628425aafcff5144559eee4977eb351be8d0ddfdf0e164d47a83830dd7d9633fe3acda6ed7c794ee05d9b58740d13cd78ea15867a5c3cb14051223efcb36969430b45fb699c26caa918c3d9041589a1bde4484e95859a700c2510d6380c2a323e34526e22adb44a862c417b34d172269b32430c6b8a68cc3dd2bee2447555c82189e2562aa82df2a40e33b91d65b60d0ad93b127294d71002dd16b35701670564b1c07436dc2a001c751765dc93da79aff6177e9795b00c5bcbf66175357174032a2a742b3587e35f055268551c57af78090044be4200302fb0b16a40b80e092a1933bf99878852342cc6574c6230a9460b08376c42c51a48aca14d0e59294f3bcb464a74c0a296fb0182cef42b25b58711c6cc939c9e02c8302e2499640737ea07540ed89b5335a05c552472172e8bdb2f40c49a5b0295ce99a0f567af39169313c8b61ba77fd2143f97cc762c8b6be4c13300a8b78dd06011c144a1d747e1c3825cc1674b825838953574e8b6a16b3dfa8a05355c8977006c649b58d9f0ac2d704f774817eea95f6da97ab5ca71c521a277d9618881563f47792d99bebc73a74ceb5560070b75c3b8b2e2c9598195feb08ebfb5cb1d86a87f93465355a796520d0c24744c7b852bac418fd620d060118d135947d9b174cca55444096ed97fd6442dda02b4a3364732c6818c39a9d199b4cb5a4d3659c8c4851d39db9301047370351c8dc417bc1b86fa50486e759b87c4cc69a8a9ec282909c40f0b7ca0896c01f7221639b18fc3145eae4b4b8252b4af720f1a22c1e5cb980cea6b103082b31b0542ea8d64d8c9b119aef3524cad116689280a51ccc08c09a8c3313a82a581b55cae6a394efb5146ad9884344ab6904c7d5bcc75729a261239c76ebc83e2557f60d125a9578fe0b4ac8d57b08d729a8d86647708483407ba16344049f8b842496a64f84d5bf42540429ade11b10f567eba812aff9179e263a2899b770f8b3166da15bce789dee3cc7d1846f3204b26933d4803b74c3c3885748a417692f0f5ac2733804cd2a98f45547af8ccd28542ab3062211a51f454b28559c28d0751c5c6c31045a8aa41c79cd1cca536c3d6a779afd9175a006b663620bcc92b4ddcc92b61b88bd422f1dc7962a70569dacbbfc7ac9ce90f8d16c3b6973ab3e96b6539a145128631c6993c776fcf488f4ee692772645dc2cc1541874c02aba0564a46176005f6ccf2ab27893dc60d2d44ce1e5b6e317a38c032ad98bbbf79554ef2882fdb51115782ae862c9dc79a6a8293a39135460f96329548507d58c39a07ab9aa7fe913a7fbe4c466f693ee1006f6091346a4b75a2a506f6c787cab948fb76f4398b2110781ae27644211476364abe4ccc2f0ac6cc4e917dd391bd0b369ba862d5f396d8627285b0c5d9b3692ef8069ea601e6e493d841755cea52194b32b5f787f15a6478db7b6b41336000d2bdf3270f8f0aaadab89325b6a3dda4ea88021c8b61b6ba372186321f4f5575f2508625685db168830063860965a71a27ce34a7e934b9444d411da9a151b27b3ed738869100ff19099f0c2a8583b872c8a0745e455bf715b8f526cb4f378fdd931c8111d53a97379ab1d57684224780690b2c1b36bab3b0762b8fb6afcf39cdda151607a6537b985c37989299414b4c9b1894c6051242482b42289ab24793e2d7af2ca0cedbc27d0595b94c698bfa000840bb2d63e1946c2d52d0c837eb40dac0653a5e862d9fb8b832629cece9eaeb6d5feb48b6ef5da8aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b +ciphertext: 5aecef867809431a595f27d53e374f929c0927ddec2188336929346daee5287eeb67c5a916959b428b809e5c8215be769d63b7cbf828e3812a25818677109df91c1580d9a8e50f0875693123e66b7cad079584c20230ef01a0d0fd7b9ee936ff65a0261d25c60e7f9bb1b51ebc9d6cba815cc43c895661d355d12e96957acb905dc4eb18e45b46f45d23a35e8d0b4d5d71c77fa30fa244fe60f3d716ad8c8afe1781caa0668a8ca6ec94a1c31ede99532cbb042bce0a2e5cb13892e47bf27bc5d56f3ae0f156cbc5c90a290d244f1d5902c6234eeed11ce3e232cbca1cc29228d4848bee8fbc2ef61debe22518680542ff824774e38ce3c1d0225c6836785076a651653313ba74fd8dd176c3f8fdf4d102bbe0a5844d0e73f87eb04e9298e61eb8d18f335917e0f9610c3c17041537197c7041652aa39f7e06057d0c12479b07cf431308124ad8d9b22ddaeae2463070037cb14025e0d91592c8ee95b4e792a257aa73f64120c6c57729b4660f4db798087a053a40e0a144829f64468566c201264524ae339cf33d5e3e7a0a7a1f9ee75ef234cbe213db87807ffd3cf867d0a75bee8cabec8eb9858478f4470e04e7d36e54dea39e16dfd6fe882639a7edca290222db1d92d5c7207d436ec20b6e07a25e9bb2aff7c9a0629cac7121144e6666919258263d6052069747652ee973ba4db0bee6b28f85fdb3052fb6a498efd7fb82bcd2b4f5e5693d6462658d18ee04966b0d56fd1b9f560e1e29f8cf80e59f57e0cec307a9c37e7a578b98c5137982b7a085e67cc741efed81f795a40f550a15d1bb621ec702aa642271e5fc9a4f7d1bd44f39ae0a014b4792d4a8602c1699eb27c87e190911918d0f6e9e887d2ee3b7af9d19f3fe9e6bf78aa141d66328044cfe286affdbe0e1764fc5540629112b016a1c254b08749cbe45c10d1cab7991eb820167574fac5b33d971467fcd500eafbad1b9ea430a9d03971e0fabec59b9236e73ecee3166aa19d24115d63f698a1791bb6fdb4889c8e85c4bdf5f3fbd7ad66d4c733dafc073e6d5c18470baf3a685740f6f7aded2d39ecdcce03a0e097d86605fd856f6fe0d9798c1aaeca7ad1f2398b53892299797fd78f46c9c01654c91c2235110307b8f378a2a42e2970902ba96cfb25a307be48bcad1123eb0b80dffa628182a72d021ce9b26f91424ff400700d40a99d850385872d92ce7c19f2c41bcb932ddd85ea20b3eacf414799a6175b9ec819277481fd9b67b791c26b848a0ff91a8f31cc654921d70fe9eff42905f72eadaf698e31e90f4640a85a050f79b0a9084cedec141edbf20e07f48152fef5e4daec206bf2c81f1f3cbb7401c88ff986a9e90da3af08ec1de65e164df05b72ede33fe38cf772c48dc991d5118c06504677a5f806ddd17bdd13c318c023fa168795021a8d18127a79741bf31e5b953da85f1c76cc8dfe0b893563a7d5a8d792a8f148557c4ee87fdc9ef146c85541bfb95bb8d6db8e4f76686d992074941a62ed588f16826411146548cfae4f4cb80 +result: fail +shared_secret: + +# Private key not reduced +private_key: 263bae3d4edcbd4b6423bcd19569f36375fd2c1b470b7e8074ee8e08f4e2286a4df335d1ea9f6d27c43de1135df138eb65c6738a0bd72d2ad824dde617da701b97a11c36d55a7fb876df9d429857386dfed065ec860eef2eabf8167d49248691d85da4769e84ac0db02595460b9eacb77a6272d49273c35895ac796eb6406999b8d5c8f4617393fac877749ca787456211fabfd9cece7775ba14d5ebfb2ca962b6a3acd7ad4084c90e1ddcef83aba7ec45910bbe37598422c8419595e11055c99af87e08d5656dc5678b488fa9c96d366b5e6c2a5c8eaddf40bc69db4a9fba1fe724ed43d43bd89c68831a15f5c14c8e9b29fb14b83962b766230fcc753aaee5de8e23846e4fcecdd9434a77a47a69596d8b6bd19d6d568a63734384b83aa4d6f56eb9fa4da9e0d3add6efeef67c8d8f8c83259952c3cc86c364d3fe7e3ef26a9cd239381ad4370414506edaa2db0f7b292eac9a8c4e5a76ef06038ff5cfd9acb4a71c9e6386b9f8a67e83f9a5515c7d4aeec9654b8ce7798c57c089e1a038bb9b87e5c0ea69cb3c9baf14a0bf98ee6dae905be4d5e886f3420fc572ebdb7d7d5efc93a49e8f303df4d0003897c309ea6c758701a5946c947b337d9268a9a26594e409fd38e38da9b54e366f983316cb5fc61d9c2abf320b156794ec3233b5f3bcc5b1e0ec6f0158c4346ac04078c244375ae8c8ab9b67f9655daa75e8f31ae3cbec2ea17f29c8d8fc628f03e6bda563962af014338d294743269c4876689eb948e41e4ed01fa3f441bda0aa079b6f3c82553c53518f7a4a768c1fdb5e75253423d95043989cfeaba0ec544da71ac75b6fa3d4d5600914972198cc95bcb1e5dd4c1f56f1ace5c02b2bd537bd3510cd9b23fce25bfd5e92dcd8362b6e1d1e42484b736fcc46f4233ee2d5fc309edba3148d7478efd6be58068cae9e8de81aae6917d8ecf3f5a31bde873a3db59294c32e9e57926edef0d8c8ac8a6cb4673493aa6bda6a62459edbeccf86cd9df0cb86cda45ecaf9f8d1d9589cf29b9cae1df5ce563b1aebac446fb176c8a6c4349ff73ef4c549d2b3ded636c88d622e33e97f75973eb31d4ca637cbe670377ec7b97444daaebca78664188886ce34fb14f05a266895b7909f3f71e24ead6219dd5696a02224e5e5b7e1a7bcda961fa1c528767bc6e7bb79b9aa55b47dcfacb573aff4b4b5442bc573a8b9e937ad1205a4e74ee834899caf48f4eca782540e8620acf5d7f8e0c8f6c5b4559f436c736574fd28933a3b1f34415b9729cd61365c74b73ccd3e46f22db3747c289d13a4fa32ca6fb1d7a75d563097f9e39aafb967c3737a6fcd20ad629f2b774d25a2021b458524b3c2f8344ebbbd2b7a70f7bbe574158e8a1e7f3f8962aba45bb0cbc297ec3c2cc5460a6d788953d8320f41b8ecce3fb787219c9e0b7443d72f330877bf8c4c9637c6b9aedb75cb763356eb7772ba566489ed4f439e6b3e7b1066452d698dbd235fdb4ba5c37ba57ea8be97849345f7b3e8d564863f9933b9b4a09fa1a67b67c15c72a4bdcf05f36bfb2567f70ba9139cb673afe2bb6b48b71590513bae6489b47c13f20b7faf60a4d45293ca3623842de85678ce6aaa1db9de06924dd3986df541109bab4be52b48818412eb1353680f2a3c3bd9fa7e55cc79c38207fdaba1833452dcb03763672212953c53532e6051ab040208acd348af507616562d96c7c04da93c8f21566df563deab2f18c9359b0b5391e8b03b485e3dc1a7c981b2a30026b0f83b84c4505a5966f648383c9abd16638a3e557ae4925fbf1c0125d91d97511175895082a78c1272792a50a5651239cb66b3f6c1376fe332260cc27ed5972c4b6ecef6462d3b712627928cda42ce150d3d96b7f032209ca92e9937517bf2b7c5f66e3b837ec347643a6a8a4d8c299de167395c84c2aa8bf1a8a4d5db29c2962701701ead468368b40e87da45dee76ff4b287950889692a838bba17b2b47c3140b7761cb389e447b2a540ae251d61808341dbb2b9aa5f04a69c6010431b28c17b980fd00499e274c9492840cc7a1e90215be92759db8b14ef41c059c546d4482343106adb27a802c3c3f8759a8fa20141fa63c65081d40090eb1abebac9c5708a9ba50656b4e7616151a4f1b0bd678ac18188450ddace2b99b3f170ac2635a62ad88320d17a9a75ca2e1bb52576274ee12f1f3b0b1696a247c70a6cda6264dc9e892cb08548c0c8824168f471e19078737169b4549b62b634a611ad53699a5550635faa7ce4589938501834f8c4856cb2e991bac84809b424cafb5ba089f14338780178d71b1cb7b1ed12c036f727fc2a94e9a62ecab6a95c8800aaa237cfb224af5c8fcc939443176ca4bca59ce54400dc7639e0630fa7cfc292604e6ab0bcda993a78107d108783d19dded13c2033297ff513fa75c4c6d65640206b43f33cac26950533b4b053190cb23e45587509acbcfc57acfadb6160f5345a599caed04eaa02937bd5a5620a5f24e6b194c52da021233b13cf950c270f8262972031790ba4cdb4524bd92781898427b6a1adc7a986f88ddf7b39be1c7d9700c87d52aea9140aef5c6454328f666a8f476b772784c3b13494dab57b06e320b2aa701acacdce41b8b3843e9913ccb3705dab48cb9d85ab5b36bbff148c5a4239b32190193112e1184d33b88ed1e6c3a9ba0ced62bb5e634b72187030bc8dfc1a3e80e28bfcd1828ec4a2e4888d68e4bafa3ba8622a87314432801325fa66c142760272e594de825560c7c19e881ef238bd9a38013f601885e02acec715b25730fb004009eba9111c125bfb0d6b2c154945575743cd66d85906981b24c1b2029452879608a34bce8e610501b6b12f32a1b3e99b76143cc1455485b3802778b7ed52210b976cd2ba26f1551c0fda036fb33891ac77c9265c30db5a513baca1524b8499932d5633b127ab98d8c07ca1704fbc8404957251f11dbeb7000b363255f5aae1261ea5b7c741445cc2852666c5437a4054f5d3a421799318098f5aaa5262b46187f60a09d98442499e30bc54c86838e256c24ae481b6bc33bf076b04bbc798f0615cccbe8eb66dd3c97da6a89394d4c7e07b8c4d5c70a01c9e7c43b8a37c3a09d728d9fc25d933028a504dced76c2a3900ca67369cf5b822107a9ddb2a168419ac87b036064786f500e9e0a279294df8a7c632484723ba28b38b52937b40e20984c46b23dd81bedf629da6a3512ec060fde7b8b2dc987395af460998230c20a9a08c1dfbf3824cf7a6fb4ed55ed1ff461d800b59a6ffd7287e1ee3fb94cb59c394504ff02338c9bb711d263140c471409f3c42813f38424698563d9550f85a168f2da2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a +ciphertext: aad2540e5b6286cdb234a4414a07402fdfd38141f26f812025e62b851d7d565a8bfe21c5879ed182ff2960c3122ba4f9e591060548a7a2fcc87b7a5f3dfdfa79912befac7451a912ba367a1882e4ae533754a76308921ce820d52d402413651641767dce967dda4e9cff0ff2f3f1a971693eaf6dd138e5817f2600e609f24b47d6fe41959dd01f3d22bfaa05b17a4a957780d581782da44c97f794a008ae96353d0421284451cfe3e6770f418661699a218296724c33b34730c25525b2f818e7f5c9ed42afc92f6c3c56b22b1785b01d3ccc2c74aed6faebd18b9ee948ae93c8cb0f13b5225c334b5f422ebece17e54f5403604dda34c02416aa79de4f3a3d66a411c8b64f38c5dd256d5ca2ca95e3b1c724b278296f719eb70683a2926c5b5f4b9b25d13f2b2706eb6ab79bbc48bf12118d0311993504baf3a92ef79eda66cd6922c01c491c37be3f21109a21da5efac144ae7fedc440b84ec7655631b5e1b3067e8b1f4dca235b3907eb6221b3e38d51a08c36090c307aec7a124cb35ef75345c82adea4a6fa3323607aa20fad721cbcc82d01dbd7d6863b69da9792faac75730a5f5dba4a24453e91319cf8e72c2b7a9498821b5159680dc51682eb4c339694af812e664f8d5210674f0a55543c5433a9cc6573eca7ca607ebfa5efffb0e23a009f404beff30a280d8de6a79845f6687c8f137fed4dab02c8984ab7f17a22b0168eb559423ecabccd6c822334092b94858849fcbc7cb20cc58f7646c0f8541066e654811185b0dc807a0c53c785fdb005474bc54280f34871b137b44848dd0cac5d9226b342a247461ca71b031fdfe17709cc11bc5ca6fe648c13f76f7f66549bec1be4fd8c8c1f05f8e494743a25dd52e3e346366051d102e7aba6dc391e529a5a1b09e5d141414e402002f1a81d2eaa27cccac6dff2c6e38f8b3584c998809c5e18ad500c3432801b08f2cbb3e7df907e9a57059122ad8ff49cca4ad18d197bd7de4834bd550b893347119e8d323af3f6696eb0f88d600b4341af25d266e955ccee8e493979ea31e978081dec549111c7bee584f5d0d18d432c52e8058566d1950928fec5d25f02c42329f68d8734533c1cca80a8adf8e74ef4d807b755e544e2096cc42d38517aa87189bfd4bad8dcc8fffee414c19073fed509191f56eee507623d8d1c2431b771d7a7b41226d532f9da0c837bb13268d542b493d027131cd0abb4dac1eb85d680f31ac8f91a3c00e889332e1459b7a3611b70e1c5492a8ea9b4438315d5cde863b834a8ec122ca6034c808e528dc25de3eed1ebd6d7426843017eb2b7cbf1b07d4794316cd3b14b2378d3c5cb76217ae46c958bd841b27ef7823e2b0537f1022b3d8322e85580aca303fbe54dd1d2a79eec2d48e083e77df8b4d8924351ab28c9eae2331a46c11a2d6b589cadd49ee81b060de91d04f5efb9515c5049f5b8e82597ec0120db12ea26a062653f3d62e96284e9de2e247dde2950efeeefb653cf710680eac92430aa11553d8049183f263e2a9f11f51b +result: fail +shared_secret: + +# Private key not reduced +private_key: 50dfbe10ffba62ba7ddec6a73c13fe9a15cd9db841b489e620989c395d8bd6733c16dfd6c854d2e286ba0f3bf74b94ad18a5ca003d7689aab71ef8cbce7b75ce844622fc9f57b974f8a9ea8913f206f590241dfc938c6d677ffa7033442c29d135dd6f04339fa61390ceaac12dec5d0f5f75456873107a8cc1ea6d5e5450aab97b24ad6e34c8a812dcf9794897a20bbfe789dc3404c25dfaffea4c80f20fad1e85d780dc790118e1fe78dbb1d8d00ebc930f08f680aef140db9e0a9c5c751d38838459206ddbf0aabc4268f72dfbf871bcbb85757e9a0bf799f45142ebb80ba8ce30dd95ccdce952579a8a67bb57f78e2feb4e484a96854a8d4d16bea9cd8d0409f031779e0eff3222f5768775c026148cb1895b970cab860bac34aa6612e8a5b93c5aefc78e409ad3120cd37f7a509d7ce2b55453e9dbff4e5c4360a4ab1e45df822fa008f69cf2796f6c7fa58e388921863ab2fb82af6f7c60593a99a4ba7806572dca7179476b16d5aa6adc6ccd9dad700cb1305cfb29aceaaf09369dcfce8a9c31cb799186cf4ad16967fc1f69d0dba48fbda258d4c37f9484c9cc8d224f32f88b919de59ffaf6c00039d58e0cef4fe55a8457b16d3c49017c8890acdeef37973a7bfe56de9b8114b074d8c95a57c5d897c8800f4b3bd8578c89f1537beb46ce9485fff0ed87bc647c57aad958e01c74a443d74a76dde98f40611d8b1c44cc45486f0bdfc00fb79a7d88a2ef06f987b3e71d23fe441cbadeffbc173fd4566fa8944dd502779c3dfd72dd06e287e4fda0acc451e6b56bba37b3da8f1c1d5483955c7b169f89db86e70bd5a493b69567bc5a8b8655d9e9f8b7dd6ffed34c1478effab2287ff029f5997b14696f4bc4415b6771d3701b56ee76d686c93699ca6e65b00a593d69827bb39a257ae385d8b77c3ff2a5d9f0a6864ba504e4800c95f2ea9c304ad64a173c764437ebfe3444ec341939e14015d6159adab1c5639adde2c30a7290dcdb0d43dbad27b8c0d8db7dab5ed21c38459a436b5a5b2b18f27278e5180395dbe69a472672fc0ae8cc43eeca2dd9658daffc8c667bcc7a2cb9fe6f08dc1735a595a8e0dd3a5fe9938837deb50d87fa12ceb126fa498009b730139c3a1c9a23eefa56fe75608eab754f399c8bb509775a24b3987e4432fb3a4a22fc7da509578c34302ae845b818894c7a6283e7ed42657544b558f74b7978df70bf8ffb9b5ebbbecf36deb8898c65a92457b260d3816f67d3106ede4f885450eaf0977451b2a731dee6f87fcba24b4c7f09e4a7532965775cd578eabc14deb12364fc1d1b6a710bb3b65d38a38e55528caf9747695583e8c61730707facad23c7c475b9a568c70e7552b669e7217677ff6f5b15548be7465b147c60f857a833dd8ca87dc83ca3b201fcee8daeba2573d997a69ee559f1e7ba611faec0929cdc99d65d0c0a39f3ee8f8ff998004447789941151da48bcfc6c2893e84ce9f801d80ede9d5837d374f0aad2f794655f594b3dce5bbec6db0d647e468d5318534c4da9484ea4d55464da733ebdfe3ee9bb6c53e35a6f0764ed3443823f9991ca3aff1caa50edb522d5fe12ada999dca8a8e678ea1a8417d7792107f3061c87cb29a55034626f03687751b2f1abac22b4c2b1ac19567f3324fca5d82b147af141a004514d831039a612ed69b621ffb4223109171e6351bb35177b85bb5063161273abf861988a1803e647820bb53b282bc6d04cd3e075a4a1b6755b97251901a81c7911437c528951d007d9ed82368d4c833ecf2aa1a806cbad08259470461f7774a922227e812689bcb59a3483c8346d130650e06383556c067f94d41dc1171941efcc96e3fd769623861bec9bbcca4a5ed22c10a36a59efb5d7153859df348ef9c3a2745cea329a73cb831441762820c7d996b88c1d453c775a16ab2c752e68bc55839d2e79544b87af56019f02b794b166f6dd60e8efb0b14f00d1ae800e37bbe5ff7c7d47a257adccd2949cdc3d9318a0cbaa34a14e080b968533ab1d9ab674c89774187d592b4c86461e84ac0e6808c96090abe6b0cf69a2056a1c4287b1cf3dab74f8ca66ae8421fa200fbaa4b11760ac7529b92db75231958e20a3f55b8a3396a10fe957361a9bf41941b90583d8d97cade8828b8a3a5ebc36730c19fa7346aa427c489f56c7cf3716928c9082b36d3f3b82ff1348eaba325ba8c49acb2673570dc5548229ba93a5c210b586ece088d6679c975b60e0106c0003625e42c1bafc1ac1be1c1779556a95ac68776ca01363961132ff75c2185339d79a426e6c0a0011a260acb7cc0583e71623b251cb8ec1049da730c2f9a26a61075aac24ab1da2732f708221a01b27c9da1b520beb7686843360a11a292568993c28bafc7088c1767b87523e9450873f9c73912cae517ca29c066631137faa16d217ccc07f840e1013440da2ddaec6b7161b29742a2c941c7573bb0b57a58a25b00db5012a3362774fb35cd80c6f0a095753688b156b510561ca47b436cd5576ee0323f2bb2967022fe391b9cab3f41477787a96ec6667337fa4ea29b44b7c9610ab69706e820557ac7c9f9c55ab4a04fcb05ecc4157b943bbafc0b0e42567f95b8b436838d363da680a42ee01cd5353dd4276b4dc625d492aec385bfebe9767a2731fa8b3ce9271cd8d28042b66714d98d0bc0675a54b3ea3c322830a5616816c43260f6f21947e3499dfc4f9d76a7977cb467899b455a12d8628e93acbfed99cd8b813d21a15024da9ef46b1ae4f6333dc8933b52a5f100bdbdf2b23987270d550493d949e83a269ab42027b34a12a177f185af5f76ac9f9b1cf9ea4eff5529e0247d3abc3ca08b3a1d081a8c75a1ffe4337711759d25b9cc673b0263177ea93b56667c15f82b483702973c6436d40953aac60929a36a911ad25ac109a10841fb95e1ec05962c5694cc3cd7372260ea4863109254c26a44f62af0957960634354f62c624c5723416f14966417681fec883ae47544b753340f749b487a095f89784f15a6e7945da56c9e0d2c358162213403609a1c938c98c68b70a0fadc5aa746ae4ea9868f19b9ebc3282ff592960b436a7a7301e4c7fa075ff50762b866c4a9f157ad25291347a9dba5cad62c35b28a3933f5269f33a0e6d403e5721a0d36bae734481c43918f9b13acea8f6a13b1bb584938284c10e3806ed935d8e543fd5bbbab0685f099c2adf254f4906d6e05590dfb1544a32ff3bb766109561ff31c164792b6b0991fa93c14a74086a585353c3e620d3ec5b1da6ff7959016b53093137c512dfc18bbccdbce67cf49fea044df5c767996681dd2714937d31c822f3c58cc34785aa7df05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 +ciphertext: 05d490f575c5a991065a65008d6def6ce79b0c64ea9156ea6bad47fdd3926889bfd335784d7ef46aba3615e50ad4de994de59889aa2f9f8ed1de66b3caae0ad5079821b135781fa2b063198a83c0c19c3b9b479277fd1f0e7089ac711fdc5036b7e4f6d279b8b84de7724bfd425dbfae33485bd423fc10c2c576a4ffcd78eed1db45ec71df0fbf4e53e9161b174f536c88af832928d593f3e80fa353b33650a93bf4bdda6b94807b49ed507cabbc72eb3273ced31f8aa4a1c9d68ea5d7c337ca183be3cae57d0555bab6fa19b36f59c575d1b9a297eeb9c561fad4b2056a3c3ace6ed886dcd84fc4b52511cfa2e00fc49f7cfb2320e650825a2c8ca39e68be13f3514b0160e04b6d58e613bc2a70315807224496575f6b5d0934f6704cb6c3b728fb1857130aa9012511ba9344d6187191dd500a1b2427db1f5355342aa5e0a29ba2b94cee0fbf808202afc594322124cdc12fe49185ce8494950d08a4b0f6970d82e745d6a3cb726d13e77c1e5a94593c678baa1b422d71312cadd4e16df816ddb13a0d0990947c84322dd17a831f21261f82986453a1aba53e1b13a772d5d29c211fd2a37d3c1cbdce6812a09323dffdc404a964a6d842077fa744c971e4e0bc42852d0a37670837c2bdf99e87657c044c5f56a8918b163808139d00db7aff2b1768fa327a80649a67201b8c8ab04278544ed5666d6460e8a30b54283bdcf4748ff1e4328ca86eb42933831cd74d99e93b760f3dd2f0524c9c283a2d81886749e052afeab286830fec68628c4d3ed4f958678c03962b02a6b37c07e0d4ac3b3842731da4b309167fdb1cfb2ec22e9704df4b86479cb404cb31c69798bcb45eecaa31f2e80da2d2e6426ed998983e9569ad4df5a53077ae69060347012ffea15690f222f20bf917e2bb3654bbb415d38c5512888aa029df25ace2b15bdc22266b41ef0709486273c23fb1c6c4b7b45895af4e8c8358a4a40a2949142a9a773976f8ac4211d82c2f08d4d1ee348050cf24821c2aa14285d318dd83a876965358936cf7dddee74d9c9f24b656e1362a040e684b9aa38730701776a3d35a54b48a37c8f318c0464b448e9a184d8c104f1ca092d18984f5e7e65d1991bd24a237e8080f45b2ff4a973bf07c784a8e0c39b90d0bda10fbf3a1b34978de8feab4d1dda3498f1dc0b8d58c5047ade493f35899a582297b23b8807e105b373d03d21a031a8c9e2ec54a2ab4bc16ac9874a7de8342d346a57e13ac4e75e9b3543f4f6d7c394a1c3a669501ca56f571092481c09fc59f63258f5962b058aa821ae535b7290d42bd619d46f0a7fe4ac92f62261e88e53ccffb5089cd0f6f99836f8f703f9f82a906a191e00b99520b3d3e3a57f3f5a532806fef0462851d8feccb4c75beccb0e67e87d812a3704fb8047a7a5910fa609ebc0607de4ead78517d7c6e4032b018f107d945dadb329e170d99c7d14f05fb2f2c5d0be443454ead35186ab3283c05478aa9b71d7da66fbfb9ee6c47429a4d6ce1da77b526223027b2f1ed41ae66 +result: fail +shared_secret: + +# Private key not reduced +private_key: 999942a0ab80872d4429bfd98b2d5a2a7f65ef3b725eee7ce22e512fcaf226cfdc30ede47ce9d3dcfd87233dec4575784a53705577e5f8fcd9eacae4b38863c65dfb920d407b35375098a55f568ff0b4324b53d98debb5085558febdd084584bbfe68d9438d6378d9f8e4d82579e3d3225f711ae32390f43c74455b80ee632d3b88145cbd61745aa7683be2d4c4e035d526a488475e70fa86a09a3f3fce43b78b4a3b959a1b1fcf5d4593181ecf2ba883a9f18d317cf3d08de490daa68c8fa2f43533635439b5bab445a7cedf3afc22aa84355556c80a9877ac9453469b02d998477ddcedddb9f3d05c7c6f99253ab62109376dd9b384b2678698fd30d95c23b3cb38248d66978b55f2746124a98d90bcaf1c958e09be08f77e4fe7658f7eda67cb875532d90856761d57e89bdecb13c7746abef4c12294db276fa65e9f41c5e3cf254f23fcdac4cee8935c788e054f1db1d71611a3349843b7c86dce3568413756b7d838c3f48f7e167b1db27bf0546606ba6bb800eeb2e7b86186946ce0dd0fa1431237f9efa29adef75c49affc719e985e70e4b110373ae2e64ef7a85e78b7fe1ecf5ee7dd27de464f4ce333394d4bcd89f278dc639d956be5a8cdd6f54e77db5410e39e1ce36a23f763f6c6664a6b9284bd3ef18c809d94347187d91f97becddbde9134bf14e4d219895cbba75cabf62e6f6fad719f6816bc02818c71d64fad6e3bc2e58796d7a90a4bcf00c2be35a4db4d0346366763c277fac71cd3b56b6fafe49a1ef043fe9657391c7f74b6ba05f3e84fdb8e25c5efc46f986212ba2948b6db923df54fc33f9574f7b8faeb209b6441886ed83816c173eca8f6f8fb6c8e46f37d6c3f376344cf023e1347be9ec6dfa6cd6e811d6728ad3f88fa5c57648dee2286839e4a8a01761fde8a2fb49a3dab98bcbfa9634afbfec1e6072c479dedf88923d5bcb7eae872fcc89dc4733846cfa56cd2ecb4d616f3b92797bf8d8b2dcdfb74804c7cfae9f40b67394c46b479d6a44a5b669d95d4514a95f73f7465baecb8a439124d70884338485468b36b103c4af5ce9c1caad9feb3aff9b83f4e703b23dc631935ffe5b2c38228c36a3cccf39777d2015496a7fc6c618a2979d8cf6eb54169a479e6ff1679a782aef7c92c5550b4e56d573e450753beb34cd4ba8ca8949a7390a4a2e4abce4ba418525620b7c9064e8ff8d18da69fd58d847bf69833cff0f5f0e19de195f34b6f6a260c7391c97b5732f606cddb488d37ad71774636c9e1ea8a449958c1b944e76f48fc95dededb7d8bc039a81c497c3fdf8b52a714c4d679573f63305bb432b3e120bbc562be21b3df6569951986c94010f35e97affbc7dacb7b5da7acd6948ddfdb136d9209ce01bab9e63d449c2cda0faa336d8bdc1ba9c84b75e8863267ee626f4669938cced7eed7dead3649675dae2cd3d7724db6ed5b6d76604f4c58ed0b75c41deb4bb78bcb19d4c486c098279d53ce0f6f95086ba765f5e22d355155dcfabd7fc792dd8cfc5830d6c60341eabbe8e934e874b1c4a55e4884cbff57dc4cad54a7f4c7613f58ed6b63456af9b0adcdcb3ca87bd9ec25aaf42aee400e8bbe409604ba8919cc59b8916c8c8745c2f8d42cd187009317a52773c57d435faf794021bbc709b8e7d688a5dfc686c15931221a9016c3bb461a487982ded37041ad0c1d032714f7379e2fb9faf5aa6d0f5469c7156800ba258fc5b25d0996b6735665a806a74b03d9819a5832a6685157e7285df397e23b13a543a983a5b24264c971a73708de1572852465732c94830719c197c7985c0a7c53525a1ae76d18e1e9112eb4b57c1222320a8156643cbc9535a27658a3709123cd61af7798addd888053bb0de254eff530296f9ae75b2ca756539b61c62decb0e9ae611678b5190503344229096c34990a61ce8b10ed3841d48d266cdc249acc96b7d88010899c453467213d8bd23e1764e0237480c34d8396ef57c1aaf781c042471d04077eff85338ab8caef22ed064bc38164070a00cc78b8074e7569a627b49e0416a705386601d3b8a6c10a4adcbb190b4877422304ffc776b4a129d4098c603896a6020725986cfcf0083fffa66eabab82db734f5d1b5766104e8a2b8b859b6cd166dec691ae331b87e794a1c9b083c14b50b85b7e97148745c9f8975733d4262e247473ce53b85d01c6de505a352bfc0c233a396c87f856981c83fb74542c9f3cee1276f3096486ef23359c51ac553931b80c6bd245b2114c4a2d344ab53765c02c82b41412afa1ad5ba6ccee9bf09e375eddc0cd55bb6c727be26bbbc4e7392293c59455084b1542c87578c63511ae3e384e027bc07ca7401cb0096d1205f4ca86d3c73ee8273de930799369133f83f4667a92e72bee2655b17120dee233433f9c68a50c57fdc8617ac1d03f0961d4a7bd17678d8729329a0ba0591ca84670557e15fc5eb4e8255007b8c4e48206f62062e1dd53bfc43af02405d2e300d4858b1b9c9ceb531a910c0bde877450a9aaa8878a2fa45089e184d1fec1cf4e3909670bc11e78da5d8cfeb86a4c087a1b73a6099c99836b3cc76366d35a9854b3b205f4b2b69666878614117163fefdc32b6db37fdeab0a0197f79db088c3a355877cdb1313a2f200e27e37e12b4bfba04691f82b1c2e8b8172c11e466cd8d01286f2a3a4fe5a5f920476a9278b9d25e420b77d489386f9c167f2731654b19fe4886867b79ee10c18f679fae87826a0b65b44a83da5a35e0723bda3467541228b80b35d5ab869b52b5dba9b8b309360ff1022d67bc93747c392469c28b288cb73fca74001e5bb47d5b0321e08fbf832d0a9b0dbdf566d3898e1f9aba7e3c011a14c3e918589282c0f167bf14470d1f6c774e6742e40a1452c70cafb941624c02ad201e6030bf3dc6a039e6465d6772d1c184c693bd16c3367f02730ed6beb95940ff783cf9e307f38a7f4f37754f6c4ed26a1c70c90741ac89e56c989b0260f7e1178b5b975d54aa6f420e97a7b90c3c74200359d561beae98b1af044be40a2ad8491f42662e2f34bde200c63ca48e7409727c8b2185138ae7859ce43558349a1f3e641df0c14428c0c12d0a49abb904cdf8ae5cf34d379024ed528e5d84a3d25920b7a94b61a8abf9e557ff61c784501fc9e332f2b652f16a0a11148b8e594d1f377035e124d637659d4485d909543818814fe7a8a173bc8aab7066d2c927c90660dc8d30364d60a31f1d94a9e5f586cd84c167e2577d3326e41a614382f4982426e93391380c4b03db38d0f7bf0ff66d2d93c251d3347c643ef3581d438af7dec621304e0091f797346ca18a41f39401e9d03200ef48beb6df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e +ciphertext: 69a67c3915a5e699644ee255ac7f4e73fcad84976ee94f610426c60e9e736a2217118ceb9042e6d031bffdc24d61a73bb158abe5d57d5e1b7f27bbacbbf87a71925db2aebd1bad3c9b3e4504310862e8e79ea2ff1833b13e815afcd9bd5de8aa8b6917ae7321f4bad138d2b88637366186ed0ed48d4abb743c1b6601a1b3091b47953087bd077fa3432fa9420d40b0619465ef46d9347aac5ac60ce8e0aeba6c200657d3e4e8fe9dd73ddb9768a1498dadb9d15b9bc806dd92eba218b5088944b394f2226b01a2a15ced5e1e567779ec5e8752fe51a3ec1a6af64907c8b058aec3a0f323c31140904695e5148ac3d645cc89d458509efbdcc9d2bd46ba57cdda957eaf5cac08dc18ccc20254988ef1f8a0c1ad578dd061010632606dfc7dddf116a96b9704ee90102e499a182de5c5b1973317489f2a95cc015c86b8fba63b9c259a4276155b1fc7ceeba6c0bb4101d8dba10a3a297df54631006a861efd0cec14f52952c96e99d147dbd0f71c6aae5ab362e31586a967fdf6418f65d2f3bb9a7f4ea58c4a193f8e3aeb6bc048f7479080374ec8685bd3c55c83f3d864afdb65e901676556204082b90afb06f861b81095bdf538e3524fb1c07b9c0dacd3a5fa4c69c47aee8f9b6d636e56a2bf166060a31ca1966bbd36b8495c5610f86f279741260f1580f8ab41e9aaee35128917c0a0264aa992a6d2bc4516743177cce2fa2932d9a327e11cff1e86fbc71c44e6a49cc55843b1f7b78243419d53b15fec0bef99c74574e88cd27495a5700f66ae30aeb3891f839829cc1b79600e17cb5d4af88b3a2c6118ae816d28027f6790799af0c264fd17331479213de77087f7ffcc0d3831aa82e4c0cd73328057a2eeb0651e2cd6e86858129e190ef97ebcc3873c2c8dcba51a83612af4a04144dc4b488be630de461b20b6e1a2f5f115942a5a4491f30db59e4480bc0784102095f0a612efe236cbf6a0bb8eee2b82b399d8f2d594f53574e7ca440a0ec1df010d1c08650fcb5e58607fc8a67a4d08632ed0d272e5b5002c6e782e3a88478bf0e9e29acbbbb21560f546c508faf5f1219300f0340573d6cb747d15f6bbdf2002c2dcc661a0e8bf53dcc3f05a4e8c691f21ef608ff1788266349783eebee6a409c31543a0bf3265a00305989c271ae5bdd42d5293e18af9005cf673d09508fba1580da112f658ef78eb770f2906071e9056142244da1f85cd8a6290eb82b9bd9de96fca1b5a19c27c82824f0d1961575196e0840a93d9cad6ef4e97e55f0deba61b9b84729091af782d041b38ab54f86bc6a3887a299c511521505d1199be958fb35194664a1e6025b85cab73b611f1646b6e3ec3c7acd3d5323cec2d52d46e68cf9ad52557c777e24db30dce32e04084bb789c6c2afe1b8def656a9e7ec0a1f11a6890bad7f766305dc34d39df64a797446ecf53ff75848e3a0737c269f822ba27fa2a158b11ae758c8d8164fc359941c4e8939364690359470be977101ffc685b088e22c0e887b669b0e933fe6f7574a6416149 +result: fail +shared_secret: + +# Private key not reduced +private_key: c0b3872479ea735c3fd92d33d0535c3758a5d4298ddcf542556b73ed7dd9c474df5c26471849a2289c469a975839fa5d4b389e75f8423a4633ecdf9d8d1a5c19f6d9f22f40edf33aeacd7cf94ce8950cb1dcbd7963d69dd2ef447ebd500265d98cb88083a633c528ef75d53a7f0681900747c8eab98d3aac6ff35d2ccdec81aecb4e5a654a95fa086e4da10c5ec817eac3d6394b4ae3d483e2f14ff9604c682f15f45cec41b3b5509819db6044a1a4cdaf26ab4a6cbfeece5da08d97f3d32563c36aa8c3cbd1fa3798c42aaaaadb9d0ac892545ff64de4d72db98230acd460d738100fcf5fcdafe30ae4c7297337ecf05c1aef8c4ed9363765d45af9f1a7bd2b17c24d3e30c26a8b872575980f39f01f352fbe5aab0c9a96b5c51f47370aa5372bc97a22b4d29fadb91576f2903354f6aecb3d49693a19841348d075174d2969a9593eb1051ab40d1344d809cec79e717579a1b7eb52c9087d9244cf9ae6bdc32766b694708d1ba22fc76b042a6f9ad668971b4767e6a54aa5f90b699a04788edea5c914e3cb431337c0736eff7f44d139bbbcaf8ce82b72af9fa2322eb7560c9db5c9d8be1f53999da172f4c68f48ed1c7b562b1b5bd98d4635acf9dd933ba1fcef47bc4c485c8dd59976792fca7c4cb300954821695eb5fbff87fba33e7ef84b187ca77f6a1be742286959e38456594763f5ea53b9a795948fc348c7449783b5c784522f44aa3c25bd21d48660f78f71bdde49e59beae9dc4c8367c22981d8ca6b5c198cb69d6b12c5591533fafc1a4b1ce5c4ff346f5f536fe68ab9d816c98dd6c5ef1d3d251874b4dbd554f38ad18efba68763498f856d453daf0ed3d3835cd81b5791b5ded5934a0734a81fc78c6faf3ab2d96b679866459cf1ee5dabce98875167361b6f99115fbfc81f3cd4f9b5e0e98c4266536573742c53ed9d343bcb9a8bc2efa927496a71d73ab6195cd7194d31ba631e0f55717f5e6b37abde6da546dfcd263fb32a9548f1b3e9e06e846154d5832954d89a61dce3b5cbebeff79e550117402d0f7da08bfb5cdfdb25ca36b0f7dd4587ee366e526a5da8216a7f09db88ee46578b1d7ec0a46f932751d78ae67c58d9c14ca0579f3d2f64d692c9b8de07cc05a55aa5aca7607a5f5b17e13a7fdad53d9e2e4af995b3e059cb8f3d09b65f27ebc384ddf13cc63f5ebbc33b7922a5e073ac3e520e3b3aad464ea67a9d5a76557ff7ea7974e1c6e847036d95ee3201644d585cc7b4c9aa301980eecad5eaffedcd5e63f89dfdd3557e0fd6aefa23d5e2f84bc42c8fc057a4adb58d3545ca8d767ae72fcf7bd3c3178b92c5e776695ba375fb841f1f760656befcc9e5d6b5ef2cac896d7380a879a4110ece067a602a73cdcf0da4321aa880b7382407c3da7a3703ff8a0997e9e49ffd6d9ce2c88b460e79edda17bc4f5b589f2b46fc773fefa492e22efcfac69392d8dabd1d84e699d3be87b76364caf5fc8204ade5bffdc9fee653124d7f970b695c8759287898ea39bba806f0e9d48937be935b3af770d498fc2bb22df5980904759ba64f0533d378266c8114a7b4aea5e44ef9efb4a530ce63628c5c1a65a04423f5b3f3b8bcbc7dea5c42c7897aa8956473d54ed8b6c56dc931d12a8092102490881b4e2064c5a9588e257834c1aea2668e69d907db5158c3cc7321d83b9703cb74864c1057660b718c3412cc47bb92612643313c356b6b2cdeac80ec5b657e78cb2fe9ad14c28747e45466847d71c49d1355aa845a5c0fb27160156d49a3af1d8b975d694186b06a5b1111ac504df3f91ce9a4b2e248697f9a972e7b0cd048c1b6f7581af20afae4c1b9333f60e73a0dd1ceb2e19887cc712d0bbb5c24054553c3c7c972e87253d4c46c971826e8955ac0017ca6d6550335916d6a939f5c167bd68c09d85650e89b40a4686ff0bbd921ac3e43641b1600a84bad0fec9524f09fc920916a31b081e88a36803715b1476e57ce39ec27fbb04256ca64fd11225e474b06bcac9657b31de3a39f4cab5b65bcd8896655eb924243972b0bc9b755b0c69b837030a07937652c8c14f71745572882d222ba1208327d3228f0778a215b8fe6f4a14a9b3a56ecc56f09c49ca31cda853db12a2fe5d395a00cce6621833e61c2cea5bd6f0bcc6ec6b479e334fa543229b619be566e8c00a1dc7837c7b5651b8b6a94412ccddb63b8213635a5745a54bb56198d325a59109c75d2b733c77738a1328bf1370ed99b7ed8f611e69c3ed82620ce95088a91c6c6d472294260a1c5455291188e010a9467c816938f9835c1a4fa01223494c885642e5c416c82223d614a108a1128e53d9b264d61d798c4ca9bf6abc72fe779346a3208a77542272b591a6ae781996ef17961284666c85ba91b2de5f0bf9af10eb91c5793e48fdf367f46f586e05b2dd65b262506043de419482071dbaa2568256a14825b8f094b796a527fd25b8071a4041a1be279c2e3f543021364a147cff6740ba448b7010b4ddba6aa90265a95905f141a9374970a1a071799d813ecd77073b453cb2b6d83ac9cb8267a5861b9e2f23d345581a074657554781e4782d98333f1237dcafa48087aa66de4209a9a78700b09d44a0b5c929ae6612acf6b5d8ad20404a161fdd3639e659bf88291d41711015432f0e7ac759a67e0324f94c1876314687ac377ae48a30b48ba9986714ef3064f087c953ac6f86430bba9cef9857b849315dc4379799092af4c5531fc13f63b186939040da2233be05371d448fa748d76f98c3f638a6bf5864b9bc5fbe496d72966e3004409e420bc4353a5d55d0610843d0b8e6ee5bb5d6c4dd1462ae99a43df586b398a15ff5b5ff58a4006987613f5caba694dc0f736f6d47af66673e8f308a6044338d23c817c0420e679ef621739e21a4a35140dd2928e79584f787671b118e9e71e1d9430b9a3210e11c266876a44c7082e7ca5f6dc4b8d931f5bfa302fc790bd424cc3643844418f6c090e2cf5bf60f08c489bb87315464d90006375c34a5297a238a117a8770cb9795776c11f8a54ff13adb3fa77df3757938c28d03a612324858a11a860235e0e15284e36035bfc0178db841c679a47b93e3b09a9f735955d6bce328a91f2fa64273917b7371fbf166c47e9683776aec02251eddc84032cb0a852594f4c7875792fa345a43a68a193c51492a39c306b02f22c60ce5a8468c3050cc3965e2982e32b938a31cab1f36c1da3ca723261be3a864e2912199262c46741fddca501df33d04a79f8e3017e6197ab24b062cd98486dce2a7ffb22e5798643cf9ba5fa06bb0ff42f4d610a7b3df7544d66b97a486967cd9b62ba0142ebb10b8ee4ee0f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 +ciphertext: 64f1a93ea3e3017634cdd1c24a7d5a1701bc1d9bef3a908e70df00b38a15eb30395503908dc45c0ad971f0f20f72c4a75343b371ecc0a7ca7f18eab8214d8782952aba2b088514a7b232ce93385efea00abcf98e0b0a94f592ed365fbb950dbdac46e374f3261197ca7a2e31b6f2971b120c5c8aa430eb03c314cfdf15602003129e22b827a20658834f04e9e618f6fc1125bb9b71fcbf2a66e884800e74bde13c3cc9c599ce9bb815a8934f60923732fbdf1ba1a9c034fd49d0d809940f89e6693efa4bd9c30093af1a3fcc3a62ab5efe2e944b83cd93a855cb4597f3f788322521e9e11e8adb20fef58ce1185717d97c593d7423fc0498dd49fefa8b40e6c14ed55522b71298c6cdb499de705e5824c8a00431c778d21b82bb7ef6ce728d669ed541701ccc6c03cfe0600098353c9449b595017f567913bd2d233ef9455884001b94e3fcbda4edd94b4a254a4cb88bb59441e1219540328520e8f68e9c200f069af82c2dd6f36cac81f087183da9d6a2d861d19396289f93a17649d811ee5240c5b7c0e8b69adc82675d2d1dfb14d1b62ffcaf6b83bb7ad220974a87833f6c12987d821b6b874a3cb998211b54e9e70c3bf0d71c1ee7266f562d0ffce4e10dbd025e9a40b3610af564c051d346e2eff83fdc73d80a710c36990041dbfe1cb242b66dfc4dad929108d00b5e9a1899a081326b6a2956e1e352a6234dea100ef8e671f94b10612396d5a8ff765e97ded64ddf55fbfb9f3e8fc202a1d5cd8c178feb5a01f0a5011e29e018e1c9bc26e49901984dfcbed1c059bc9d9fc22538e57719ae514ddbff7a2cc9e2151f7c7d944456c3398f65513e66b73efe8594bc3d38e83cee3a5a939f20e444be0c0b48520ff200f963fd27087266706eeb7a5ffdeda7be32a98ba2a5df7fdb763b7f15bd2506d39c62e9d2750b084b44ced6ef79d6582c61e6caff2dfd69c7849c89befa002817a52542b155bc51e6a1bb50134bec0d6e272cd6d086eabe8f9c46123eea3f6dfc129640d6739308c0c530f2f0a5ab7695721d34d464e5b98d5200e5a50878599b2482a15f93b44ef13d6ac3ad16e7fbdd53a9476398ddece997e77301fdbca0cb2d406bc9372117991ac6ec0900a191c9712af80f8f6d33462e13b3b9953dadbff25dc7dcfb428f0bab661abf3453274648a5c61f729a7e0cb46731181639d43ef13a0ffa1abedac1b434abd5896c80a3116e4593312b13d4f5bb2ae47873b4dbcc51cf2c31bffb5c0f6b33ce5de62ecbcb78f9a8c59aef6a9436cee773dd6e11c177589b1eaf41ee4d3e5ac949d85d8468461f9e1a9201d9d100a835fb094b7258181d4dd585a21dc9a20241aedb30e1b4ba738039cbf237f44cc57abe3fe2820903acce0d716eacc7e78d65f8a166b9da0f3a3db0aa97865ba6be3aff891f2917c55b5220f814022abdb809fc33e0c430b6ab8ba7af0fa94584acb88543f3bfcaec64e953344dd0015ea3fd35156e433c633254c971c842b367707ffdee668ffd328c7c12acc134ca505c87833b +result: fail +shared_secret: + +# Private key not reduced +private_key: d95b5c5667b798be797a73806df8906819743e13f2070c80d97b77252d40a2d6e54dee52e2bacf89ba871dcb835aa873133a331dd3450bc5e893cbc5b17f45902655210ec56e6a9ec0da3ace136b5fee509474d6f13fa475d8cd05d3ec14897445ebbb24cba8a9e9b9fd8e9d752a5f694de62c89c4e8ee6dc4cef823739d45cd63f55aaaddbd3d02c3325649afa5a63e27af3f16cb48091b38905d3f9eb6751d44bcf61989fa953c10a5b8ea9ca81c56a04498509f48dc1675b2744e5bc9285d0e765b032f927a979ea9a47b9103c0b743f6a35945ec1cc870a693980cb7382fb85579dbccdaedf939dd15b6cc53db8b99a89395994e3f39c13d8eb9f3b3e3a6bce407585ae20e5eb2298defd84a5258a2e62aabe709c8243679dd85b82c08a8213ef06dfd424b7cab4d06e5ab2ec81da3efc6fdbab9f373fc4a98484bc6fd66d6af987bf57842cc4461014c4c737b6a52234153986aafd737d4a834971b96a81e693716cdd1639f822a43936b94b85febdd76d50303d44c1cf596f8e55684abc1f8ec228e51e2d44845d781e4a54f33fa8eaa0cae0d96c3509c6e5a973273cdb7616a929a579d6d9b83ca8c6631b87f94457312d9c58f66b20c14f97b98ed11e9c97357a9b0f5d572b343082f963869ca2a1688f623b5a42f4d2afb7bf6f4ca125e98bfcfe367acf10067a32219cb9567d42018467863c10a4b449bfafb486a85eccdba8da9a3cb5da63255ea5754b7eb0b7068cfc939cce92bdb83164f7146ab6fe749dab70f64b0875fd36d3d09466acb2694091340bc8c6df3fb8eaffe664b533c0e377bfd0bca3908d2f40a9298a6e9c41756af7b4cc765ec8779558ae4d31a6459e6abbd9fc68103fbb9528fc9586e35e154a61928db1a694e395fe2fa8996346d791666968cd9aa5ed3bc107f939c24cda10a9f2b6faa4cba9b9d677c5e0ef92e47c29a89dbdbdb664ddb30cb154d01da8e87035d63ad99a9e9a4800e9d6a769579eabddc95e416fc9a2f144b2d2c3fecf889f1aafacc434919a89d474ac629cd3ed615db3503c2ccb4612eeb831ceb76ec9798c2738429ece0386b36bf6d6623efe52db389b30dc219e4957bb6ac6f59739bc6dde48fc88ebc4430ce6e5b55cfdeadc9b79ae8b07a5e72ea392717dd7d15951f87b0e09bbc631bca040ade5f4630fd04a16d24bbcf45ec807cd7c32aa05b29d09b76e81413c202536d52b8946fd8bbc76fe5749359a3687cca6982c3bbd435da4edf454a6abf3726d5d3cba4ced97f311799c4ce57c0e1fc48cff587c4b552da83b5472353c81ec6f32dbb7264dcfa75e352287e89dd624d08f58b17914f654a61bcdfc30856cbdd9f5fb984a8e334b5333c311dc1c0ff6fa7164059bf343fec330f5cfe94bd7c7e568d6f437c0b3d7131d7de092e637519b1673a38478f9ae11ca2801b5a5ebbe91ce686ecdfc2a8695f357bbcf18c95c51591b67aca786fede33be426173a0e0596870d7508da93cf9d89bbd43479183d0705496d27d9f04e424229d54cef9ec816868aa5e46ad5e06e36ed643ea6933d6bfa0e3207e6da7f25e9d0d7ccc03755eb5c31a2a8fa81339cee7b810727471d447df58eb87db7df775eb7eff647a2eca76f22424d97bfe0b7cfeba385c55253559b0372fac0c533055ee490bed57446b637fd0c07c173b2c61345185a0288f1aa074accae383c75208fa03a6a175c3d19481e79ec833057a8d2c234ae9b01376c21bc75277738b17dea03eae594ea939e125c2592bcc95d3cb4f76a8d8383b318a48f7481b6b8419e8bb47cf1229c23c4800788cf91e465088a580762ac5d31616f114606c54efa9c0490298ccc23200154342dc7709a5ca5ca3a94b7a2ad8ea734b6e20a2d15acd47c6aeada3ef3331fcae173af5191ca8b74bee31f1b7506b595a3dee0899381111680ab02090429b93efb7b52a6884d401841a0d8193953a5a5f2417df927e5934c109722cfe18d0ff93a3df69d9cfa4d7f5801d3294771156e828924c65a18bc798006a1c8eefc3b4176634690c061b902738024c0ab981c3506d11b8f307c8f1cbc25ec764fdad76fb2117aff430c5a5a468f2966bbb877d2b8335ba3bfca985864f21a9912bea56a007e7223c7249b2e45a37db9c104438e76d16321289d4b07001241aa2f0a1a24d81c27a9adc0c768e1b3c72fa08e33f77c90f4cbdd530949b2b67da9a15f336b679937aa825989b9a450fa5f69304d37e585bc039a154257ee78907f689dfdb246d05c94c3057066d03a2f9825be6a52c3376efbea3fdeba68e13716d810b73662adda56bf30031b8f682c8ab08c4b0978bdf113b4432ec712ba306a63c327978224597c3b8155551997bb7e2881102d8b3eef786be65196ba84478c1c629f45a885db1aa4ca443d8a3300316608e8c2f71c6c7516ca5eb453cf9184bed2888ec592dcd53fed23b5ceb98cb575c474b51e7fd64d73d54f37b51fe1d432b2150ecd5b0dade606d83729586b2fdc60414a558c3c19122e47858675179c2229779b40cd882bfeb3059ffaa93552443fb70fcabb54a7015f8b6a0798b090fec5aef185cc95579aae5caa2b4923ddf65b2570c15b1b0464c086114975dbaac5a564cdfe02cbce8c68752000ee81a9eeac55d4a81be9b3c66aa3875761049565a46e305459fc7a47d75316b59a371cab01dc3bfe9108003d5f868b39ea617ce3091e3ab646db07ccc4a09367b352d1848b26e920100827c8d4c92f0c222d8482606233adbaba3005b58fd3248e67cc75733feb52a5acf5a41ab71ce0ab7e8fca8113261dd4b7297ffc9d37899ab40b0637c02ff1c73e81a02762fb264f51c849d387b9f7aea345b5e2ec44f2e0866b9574bcb13ea0d0aeb7a78d6dc7b5b0c9838297c05409bf90d86b3c1b59b92c998a8abf34fc490259289b431c5c5368acd762df8ca04e0235ae91bfd5332d67169aac2586deca4c8174386617ac98471366283f3d30a971c62f35322ac96a7b0c45779f6c17f1117a2f1b454e3557ce5733cf979156400c5a780a4da91ab8d99c4f98b141920731f361ec30950bd0c5653c83dba87658674c57473dafac42f293bee44034b9489ccfd5141ee42cd91b3c3cbacba092cfef6ba4b0a716d8162521b29853522356943c697a10948a50f27008d8a303254327c4570af822024f5b9aea82a62100856b2140015418a9ba3e77325b911a582e92a8b8e123816405ed8382820c0ce5ca491c0692b2b542b6a67ec87bb6b0334c1833e12aa958fcc0747802853f8536c1e24a0ea6e13ce23c96726b5cc886538ecdf65b7a485b73a34a72193af1ea3f884d820463601c7f843672bbec7d4f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f +ciphertext: f3559c274dcc21e1deafae8b7eb2b8f482b16570c20782312aea16690eab1b983d149994a0777c22038b785274ab1811bdc0697aafdc49487f80f4139bddd82efb395dfc83712b4e53ee6de05016f3277afeb9e3aacfd0dc21264822e93438fee414f2d8284de2e1d958a328ddb5107532d1d0f29dc93a5b833600469231f513f0dbbb1b32c0b527f469bfd08dbcea4e578a841dbcd97d92360da0334e5a72bb4b1d3b936ea94435d94b23f3a3549a11c204e1f33d0756ffa92e7627588f5edace35988346621d7b2d407cb5c3fc89e45bcae6faa82b1b5865419b9447e77055d000de9b0d80fa551362b548b3f6cb76d2325a51097e05a75691070619cdc4766c0988325b6341805a865fada300b997a2345378d848cab9ee8a40c9447532089f47f2deacade37ab519f8f10c5cd7f326acee099ada48f74b12b799a41fef7330bd9bbf23e8fde26ec7a4daff7680e1f89f25760a81117c2cebef939d71934425a0ef295900c58c2eeef7f2cbc5bff1ccbb2158721067310e0640f9cf17de6dfeec8c1d0635dbf03d32b1c302b866b343cea1c9cb7b0a57a69f22d1ea050d3587b152dc05d6a838997bbd38f162743200054c1cce745fb9655fde5020a4fb1f0f8da267fd6d3936c78e28d832534e47325aa19f6ae0fab18b9357ff59370e1833b2fd3cd65ec1f36f0e506df4a517eb6298c2e5b1dd9a8ce9dc2ad97522b607c8d3596f47534f0a0aa98aef70a9721eafbb8c46aaba1e2b8b9f12dc63edde14f2414fb3af9f76f435efdf56a855e4f75e15d3f64c1f655484077d6221b928ce551c4854f6f2e249da98f1f493c7da414e7f8bb7dd3596bc8426d1c064df107959503801fb5081f9b0f9cafea6d0c76e10afa23a49ce3b0ea3c648d895bc6e1b39b6454a529edbeaf86f34f6b253e0e5104777ae4ee5d9f3885ae099adac63db65e43f6e2765c7a4d142a62069032e3f72422d71166fa4cb75e205aaa513e4e1a6b87a070ebce326e8f17abb2b81ee4e9c7233b5d4a3c1c8754268501482431cc4850f6693139af85ff841229d499e1d37a3c7abe1d80c31121cc7790fe9a9203f97eb5a0f681c734066c1981adc3b0d9fe253064cb546f46d92ae06cb0e871f964ac0baf8f8d1e8b5d1f3f6050374e9440067a6722c6ac370baafb51b5af44ca940373338beaf1b36421453757287f18841538c6ba9e1aed10a6e3f8df29f4db175a1e595a0d880d72c14217030a81f3e57bd284098fd93b5602e90012d1417a52a5c1ac4d0641b0b9f39217571a30b20a364045d7ac2c1f0ee778882c6889c828ca6e3d04d205148730e3d69834526d5607b554c6f4c34112f94a39b2044642b65c2cb7a28a0f8a34c59d11af9cee28ed98de8a3e65239457d087d425dbbdd8591288d4b1179de2e6af5c4c22e4ea30215a635f64f5e632d78a9475307927a595b88b5dc6b54c6eb32fd249ab9d5fbc66a2531341eaca902a8bf079c4bbe45d0dec6c014589182aaf13bc05be177be4be4b8aba60f744a21c664bfb1182d7e +result: fail +shared_secret: + +# Private key not reduced +private_key: 9d897195f7e39d5b6b8075aeb6de76b60bbbad949d599dc707f460342ce2a79ac5e18a9126c7c2d0d59457deca082d34706bc54455e9fbea529b17b3317ee3f73c840ad3bc015862de98ce93344a859d94eb7ea6d6be7430dfa811d389ca465419cb8aeeabfdc3a6ec4723a7bffc96acbc79dc5be7c99b4022655d7cdcda645981ba9dad8ab7b9fe6a69b61e731c84a2df77c2be9e7f133df35f9eae5ff9ee30573dd68ae6ccecb18f4b9116958f812c7fbccca50ed732b3b946645b409b74bbf34c3769757c0bada04d79dfc3ce4df10b334c089adb54cf6b83e377d433cafba345dbaf06366eda0975b00fd8e0d545a31aada7f85369c6ff7d1983997a542e899aa275ea0f44e7b24fbf1317aa9b766de21355460bf324d5aa298bb4a90b4aa93ae1ede75f441734284afbacdcff2b95ea6d3e4e81ea510c7a31f85855fe55ce0656a88ee689339495d6cf93f483bc67e49c86644d08d896681cb2d38f78dcfba73c2bc2e15dc9e277ba7abcd72724b7c03cfff1ef4a48ec9d8b56f98d14657fc74dabf368c7cdf72fe3a5ad38d130936a2db57e5da7ed199e6ec39b9960c73e2bcb5697e9690a0db9f25496127a58d60d62ce88c0f3ac9dc60b9aa08f406e1bdf7c68988078d7f6bb9e0945b7573e36cabbcaac04c6b0ec8eab6dc26fb6d4b073a0ca8a925ac99bce9bce26fc7ab69c9a1509c7ae8c97e006b5b8f3a99ebf85043f986d65b17a67a1d2cc80d476cc3b9dcd41a9f0e41fd74925375987cb7d268ff1eb4adb07cc4d133c381b47c40b42311a8f2198ef50ea68343483ed6bbf34344d710c7e0f769eca3388b84c62688b4cfec37105fd717ceaf0e21b871e267fd275826da7aa92b372fac774b27eeb18e35dd6db3e52a58c015a8badb33c54b6daa50d5d55fbe6af7547d217670b7fe908a9b25bdbac84753496cf44af29ef7d73ac08c94b7c1b522916790a245d6eefb27435d159f89bb48aee7c0850cb97bc843a7a29e594a64f8c2ebbcca5a989993934b9a36ed1e7561663a8c9e4d0ccaa7d5cf4484cbbc80dc6b3ad2d926b3a499429d3c4eb41fb988f0d77a8d27cfc69ae4a026fb926f4bd8a26c45e76c706f68bcd738627afafd235638f6741d229427ac4e66a2d850db4661e5de9fd7ba362065acfede5bb3f59eeaaa4addfcf8c1e89e5eec4a3d67982d942ff2734e3434a45e842e167e0399dc7d46ed134466884cce6d7078431ffd48fcb58ff17e7a5e6987999a5400973809c30cbcca50efc4ed6cea37f4adec71842d88b35d53c49b14dbea967a8466772e9e3486306a0cbdc449ecfd99c349970e8462093b398b7ba10c5d5a76c4aedaa4ea76eaf1b8efa5614e7cfef6c4c1d9d8bf7fb88467752f5cefcc752ab3c324d2684b1145f4e87e5e9d98f0a1bcd3f1a567676a1392e3e202aafbb1dc15ac75b46ed6a43987d9f7cd7de147e0504f794eeff9a8877a2cbc7f2f8eff964dac09bc6215f7e919542fbe5337a5e9f35d7da4e0ca6f0253caadcfec83749aeba42bd5adfb7adf946da8320fcfe7954bf2a184f94b3ee58d5d5b2deab9c4ae9aa8a3c1db7f74838c769ffe978a8ff95d4e998058c9b58b862ced90a5bc3278ae3470fe18db4c0399454010510677c6c12c76cf7149f35031c8df3b243140f9716a571f62a5365a0830169b612abf0075ab40132d51070aec5566fe953382ac3a3705b8566064af52b926b765bc039d6f86ab8b27cb93b809e670da4457bfb8b6be9aa54d9b2bc94eb0c3e15ba6ce2b08ad229a469312a5caa04c8a4fca7c76cf905c6fc4d32127d84981608810a4752b9f26baa12665bdf30882d2a38200798de4a5f1d3bbb571085ab091c03e896f25b8759e43795dc83c2069fcb2cad05b166def78d18b920e0e59853c66bcb11795f604963ac3af33b43f78252e06b39d11449012b0b35bc65c2562a66f7597302377eb13119fb4285d5613d618c2227a8a187b132b08bf5b154745451fa627e0587c24118573f3628e3da59e96c6a66d26c2880c95eb1abd96202b3673bd64a74d1b11396aa406d378183325c9d03b8294177d3d6439fa79a2a6457d9f81ba8134bc781c575413e40082c686ac2f59c3fb45a580d3a50add274add391a09cb6c559623c997da498c1d002b0f9b5254c26266757849e7598c941333d580a11a1c197617b23d98b7da60b6af0521e287f8b0cb21522236395a60af9ca4dc7120925a4bf497e2ed65bcce78a33555ea459197bd5a499bc7c2b788872916ab3b961f25094cc96659db67bfeab52260456bb775f56e492564456c5d25f3d0c9bbe7118615aa37b21547255112e590eec52928173292450abf2e834f6207751b068200875d7303e3bf7141f28aec8653a463a774dbc33772849385304b42c99d3e531b0376beb153a56734887c1cbe59b55bc3cbb32da63d908345b200cfdd6303f3999bc873db53342aae6ccc789b2a4c72c7d08a58feb9c939a3214aa3b2bd27ab108aa89682e08729cbaf93a68613a8f56b7764c23cf085f6a970d8abac213f7314128aa64da213d5a53d2475f7002a6c354c1181bacaed645fae9c7509a0b10c8317f714d37f3791c03ce39c79aa0548f88a69dd6f87dd49a8e63307331e00c5c5b5fd7d9804f3c57028c2d3fe65d87ba7c07624fa35754421c4eea618cda1c5434b09acd0754e04439240988ebfb5f6d6a43c0683a287b5686364fb9fc6a62551916046442004caa42428dac71ef5879bebb09c5dc919076620b9701a2d8af248672e2ac0107c62159511cde45120ab84993fbbe65022dcaa6369508212d7a915183555181b1b9610dd147516f2496eab20f727724d7178357f50e23691c29400bf461c389932e2e663faf31ac53273058ba675cc0c3367c4872383f683a834b4a522b92276f70022153aaf4622f24f439a0d382fbf5059744c487013501d41fe9a99966506f2f5651b3ab0fd0a73c02634dae9695e850c67b154455aa749922229090b621e259d1f193b524579690262f94c114d9c690e170e526a99f5149a2840129d22c740cb5b2a50ae7809388147b943a4263d50ce72a2fc2fb6efc85c065502642f015d6b83aaf0880b715983bac12fed75b1c973046c79f72436a420b790543349b917fc4c3b18db80a1ad346389180fbb9bba1a6a8a0f0a62e6c24d580a16580c682553134738d0cc1ce766c13bf74c82ef5c548f79de19a0f2a9236100a7adc1b2f1e1b1d0066b9352ccc40663d53b0af0df9ccd6353381e5030ac08c3920847f233164df98ae8ab017efb305fcc83fbd22ea59ee59bb27757389a4a68c898dab92d0f63c3340dfba51e00312a05e721932b95b11f6da1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf +ciphertext: 262ecbd1c283c2064969cc4fdd0f4db58328c1d0415c0d279a737781571f37df0285542dbd69868d4dbeee51b9f7e73a4ebf5a2fe760ac58a594c1d451415eef1bd357d9d39c8c9e882880cf9f0fe8d750d35094aa8c8a7a33042d75d5885a7bca143e46db1c1f6ca6bfa81ab38263f74e78686101477c2f1cb733a0159e0b5fd1e3a82ea8b947f072ff363336bdfd185bf8c87f677db91dbd8f9ae2e40a3333dc817cab3ba73222443be7ed324d066c2cecbf48cb1a461610825ec8973327fa5c4291fc470db2634a942d59ce4ffb7c1dac2200131cff9ae5c5337d856bb5a959d9094ece3359f13aef1db3a81c32bb29fdb18550de8a90933402f9609576a621a5b8550a4d8bd025b08ee5fd29a83247285e50826cc778806871e9b4b2dc9257315001ba2ce2f15928b730b850fb96cb796ef7596c49c76baf598db30e3e03421dbdce7ff056ae786daff65355ad8bcac2d9fd09d659604381dc650298a9b0ca49ad3713569e6a5883b6165285d6ba97042ca40f823fc6a29c20777480e503dd5c731be8c3d5c4dd2f4b3331094a82f12f832dd8b2cd1caa43a4064cfe3556c4061cf53aabe3a463ca692d46008c4e212b475f8f127ff9f897dddb908da2cfd650db6289678d6fa52d96f08428fc2f69f19eac596da9c1ee228517f73eb45f9ce08cf0b56c2ebddfd42bf01b8b49e00fd6402bff5b456d7feee761a2b36aa31c363ae9635adf75979d2082abc115c8553a01c763c0c068c0b3d17b6690948392d5cc30c569c1ce7ff0bbd769251619559eee99523fe5e6b877e1b7b4b98a212b714447ac970d1b1f6411596c770b427c2b95fb0f4fece8dd3135bf3f8f6f4c69f673ff652a8eeb24fe64170663ec660ca27eeb43e878e8a4d509491ac22f04cf4cfdf389177fd5e5c029ad36caeda9f2a2eae6229b3a5051b4ca586d7a626ef4b2754028c0977d2cc6a803697a9d744713be696a0a643eba0f758ee467118e8954d273141a696eec5dd5bb3a4930cb825888bf95f65f47a2da8e4ae014264818db44634d149da01ebc065da3c7f25fd74ff61edee01c0fc86e19365c388b45170ef50bd19bc4528fdac7e4aa5fbcaaca5ac8f7c3600c6006924368654ede616e00a6d425eababcb41cf47cd508a004964a628222af4d8a049d7d0da51bd2e2c5a1d10935c291ceee529053a5d7126d544737dbfc866af9c7803b94d46388f7cb1c03428a8580f67e413d106e1bc65ca4794e22a97b9b30887a408b3afcc89bbf12e7c962fa7abc566cb5b4147ab1da02d2ac0dda2cfdf52f5e4a179e2bc308de9af848a676f3c3d026836b110da01bbe087c613ea6a364ab98d73628d1f9e4bc88d0421ade48692f641ab46ba6dd9c7d936475b98433dcffdcfe5f8eb1d7911fe4f584869413bf1cf5d156a02af1b79bfe3c8b2d01c0a3d76ef0203159adecfed5d418e36ce5def56f2a5b5400c018a71b9f8cc85ac6362d03742549fa6a84b74aa7d1ac71f5295c9e15a6fb48f84d0eef256357d6f5f00d2cd27e4092714d +result: fail +shared_secret: + +# Private key not reduced +private_key: f78939177fb25e088e06ab6e0167cbfd56b01d0e876cc67ea0dbe3a459e472c4710f9cafb6eed68d2d7fa9875879dcbf60e78bb6236f300dbc7708ec98d74da1f3354df5d07c0b5244de5dc97f82f3bfc298a5324f35cd2e73f7a80d8c52df815d833e18fd9b92ad47d16bf5e0c9782d34bc474a973ecbe586af3bdd2f811458f99a0a6d42669b31a5eda1f949e8573292089bf7bdb866f4cea0cbe10fa543565dc11c477622b6c85979ebe5683199ce98d2a6df8a3f606dc331103e93663abf161bcc6e25f1a3d5f7b946a8ce2dbb9c5bd627e9778f6feed5ebb7d727c79b687215cec55b9a5da33d598ed7edad4ab18349e1ea9e531f0a32ed2a773d05a9c166cd4cf4c625f3665bd8dbf1d46f8866d800fcfc04b9ffad947e406b8a1416e642d879b7fe4a4b2651d4eec5034ffb256a7c0ff4d3049ef5c9f5412b6cdfb62bbc8ef4edcf17ec5236c4d556f1011ad88a7dc956a5588696412d75b9e6f5a92058e349634956a9a097cc8a0a5897a6fb60cd1d3aa1136131c5b30f4469a73c52d43578df35914d5436819ae6d3eb44ef9760922c354366f79b793a05a93214ac499b454e4b66ac1d1e88e0c8375e1ff1c8c8d0130fe405b57ab023b822ba5de2d96f4ccda2420ccc8afb3d9a983a59a46d4b3fc3ee764b0d696669ea5b4598e6be88ff3db39df35b6624a59f092782c886806d95d3ea5ce77e7385fed9c8d84e6bbba7d8cf8cc32a2b3e199bfc93bbbebb7aaf5308e2cf5dcbf173a9268d861af698451c77fe1556d79a486dc75dbdfa3a09fbe50f477c87857b045f418c4a66c58adf7306db16a4eca247b4981c4aecdf498516fb1fcbff863f3f88ff48a71657760c8767adda1f36df2fabfa4cced73746ac6b73998c6e71597b9d7fd4fb883f71801b6dd22ee62f8bfffb55b045ed8983f6ae95f731d0d3ffb8e3e08d5ad48255a42fef90d43d31521b46579c864dcd4652e59252a3bcf315577d3e695d6c8e455e7b5ff76a75acc609be80a7eed842c4c92badac13a5515d7cf1ef25cdd308e656f336f1da4e7fb89b74ce95dfd5c772b5abf31ff3ce84c297c3fe58ae467225314c37a27eb43f0df947b8baa3cd38b6c5dbfe5a99cc35b9637febeea82c5fc3ab3c9db9cc959eb6095c499a2377a698b5b77799b2edd413ddc258d48e879debf267cb02fe7d335bbf4406463ed9c6576be0ba16622c888517579d691f9604bdbdfe8f84361e83b71e4ce424557efafd2986bc238c85d3ae443bfe9b8e7d51e84ac6ecfa833aeffdeb23472a856b3056cd5b38dc3f395f2b2370df87528286d2d64bc034bf6b1a7dc9c90df1d42ce5746e90db9a5ba1a87afe9575e89e8e502382d9f763bc3c5b7313c8539564df19c1debbdff7ac7d3c48981e5ab3179ec0a52c48197ee45658e668ba861204e1b79cf1a695d5335b8f4519c7bab53328b7d0763a6d95163f75ecfba489ccf92cb2ed1b72f2e9d4a54c35aa0c8397cbd6cd676b28cb6d1e4450265dc9d259a05214f72b93600b19f44423a63b4c753b69529d2b3d171e4a846f73fd8dff17fcc046e7f05e47c0903541f519641a8e576409a35feaee3e76ccec9ed9ef4463394f4aa13a741b38acfeb9ea1c4795936df6801c4c929171c164522aa3ac2361b8c80b8cd3e644f7d169f9a20380bc575968901ed7783b6969c57461dd879d4781bda106a913c629be512788d4c1f92a71f9f819ab7207d1a65499e061c5e0447360b4e70503bd58511e4c3333556b75f6a8945b8661d0572c764c82ca70ec870ccde0cc5810b816c10a46491e091c75f8b24eb975867e179d38345bdedc627a725b4d732b7b453d9b15710fe7afbc55beb26c77e9e8a58bfa764fa430f1901928fa4ea1eabe2ee827d44191708310b5e708dea4c5242a8949f658b548a2ad1badb9a6322c56697b513bc1c29872b56fe1e32d9271b44ea0b43bb896ca9a7358f45e1f1821fcb361c6ea91abca91ce95a75588402d1217d1e37a80b3c880aa83c31c5683783e3bc77bc231afc0172beb9957fd7228d8589bc171a2fe24757400cc7e9cab13d90a2cc12b771725e0f2180acc221fe5879a317fb93a10682044d6e22ac67c0722c1062ee70959333c08aaa16bd9cc1b624405f40b78411baf7bcb4af46b80ab021d7c8a02ec8d0417b759cb2dce94409be96f5b5abd1e207a9b906c71c18c763414b2d48d77c19d8e617dc4e41c3328ae39c18aa9aca985964597686c919584114c4b2429308e123fbe9a8fb86327054817bca07df8c7adb4e2a941742395cb6ea24c6106eb95cc0868f8a6452efc5aed297d933919b39a8da93137925b87ada9a5cbfc5a541c2395bbca59f95ab2c4a5352831f0d143dac60b418c2051390396326d49e27b7b6159c43b5de3e40d05956dab59088f417302588e38c1a21261c62abc8891e44ec4c7395421ac09e1b448bc2349dc88c571c74e470474935ec58001be48b854a13d9855b8c87131985c91484a695ce9931267c1d0d0b9ceb4bc7c4a11676c267958566d59431a630d4ecaa8beb98bafd22172a30e14c9acdba26922f0aae067c9a0e9b658630873139b9555b63a73bf8c65319d9423d4a927abe86a95b383a7c0c8c54170dcc70a535b1fd814cb6c87900ea94eed7b51cba571dc7b5e6370bf4928bbb27b1f66d770e43cbbf3ec0c615521e2b8adddb42971a12db3a208f6b690289b059913760471367b4154113c14606c046a9591aa744683c4024b857293eb0e02ec7c75270c571248c0aacfa7e47a35e72157877847db1efd73c0922cb211c4538d018c05382e9c97c3d98cb375f78d056196466519baf3312559315796ce3504731e811432a83294d75d8365391fb348f0136a7fd90921fc3844f57d286845d6d663e855b50d884f511a2020b09048298dc4da2be4a8398d260ca4735d84f2b66b2405d48032cf3174fb36b325e723af241d280863b4d2099fb429c0414433786d33f880d7a15d3fe019e75861c7836490ca2a5b0771ecf904f794c746b4244d99226899c847814967454d7a4aa0fa743e2d2838bc9461446b61d9b006b4240098f37021c7631131a84bd75d33374b9067aff5e900c4d0490995875606a7baf87b8f4960dc84a7eba96f4055ab6043c9fab61fbed883705893aa89899ab975284867f63035a392902a779c8df9cc63a1b944943691b770a9646cc731a93f6cb3dc3b183b71429770032d08a778217f9b72bb16ca81f07c66d436396038372aeb8edc031083d95399084751bb9f3d32490393b510796c16c630cd2d7e0666cab62b5d904befe6e93d8e755292fa875609f2f63bd194c87e6f04db7c83d8bb1b9d868bb7796590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 +ciphertext: 6aa845cf5cc8f06368e022af35d4fb1ffd740c05adccdb4f92b1f2b77b27a219dbf3e898d79dfd01d8bb73b1a9031028ba2d3ee9e02a2237bb106d1ebc05495c547fd93db7d3ca9b508a75525b13c5ede34944e8931b1c1b60329b96b49a080520442fadef089077289e7cf0570947f927449dd90c296a95306a6de4d801c06801117237feb842bb4cc9941a578fc6b06ca2763ec5f24ed083fdfaaa2bf77aaac924e1c4add5721bc9f23f918eeea2657f0e65f16f9c504282c18f588c6bcf684cf742acc6a96e33fc6bc100026753e9ffba26b4d73c915715a2827e92e19ecebb973f8fa664da4b6b464cee0024b05c3af87e28718eac5074e66992974bcddae43bb552d4be86650fa879dced0617f869a8b9933b0fdc7589c1d5125d58eaca6661d6a3d38d436a55e7aa6735514ada503df971ca3a507ba6c515b58214cdf146aef335f6e8427d794d576f9bfa677358dfe57663b0e1c5dd762bca16bef9d94fc8663c66d4465aeb8196ff85365cfb2c9b1315c2b444e5df7c710c68b08112aeb209cf8d166b9a7920005191a2530b8a8705e4b8ad5a913c08e2b68891583817bc0fb7c8bc0ab700275b81f32ebe4ae4c3c360ae7a0bfc60f3400fc1cd4b3da233476147790c8a63fd8c1d5be09bb516ac4ced4d6661897320186d7d150af8077db1d524444aee7cd374aaab5439621e0c4b5f72290dc24116afa792a332102a671547d38f9b93078be4ac7f3dd35c1eee5414a57db7a4187a6e3125142c81474c4deb9829f704835a4efc214184b1c88213e39ca70af72fb5e7d5ea58b43e829ed2b944787eaffcaf0ca13318a0d2c94cc6eca65d25d3c55038e270ffcc4069102acea6c5e6ec8de8b7c76e871dfd8b1c9a235d1bd2060e26c5a8fd13fb3017ea1fbfa72c608632abfcab1dad682adb2819dea4c7363c9ce3e1a117776712d2884968d9b56173e1fe46f8cb83a027e39693a036b749532320a9e5fad26dc90e91b44c53cf041dac798ebfa1a5cb444ee782d4788ab24880a6577398424d348ecdc45242b46b299840a9b01e11746eed2f975dd58cca828ba746764c5d1cb3a392eab866239a553c52e0e72e88bbe8063876c98d38956ac1ef62763acec6f8ed9ae6546c145090cd990149b7c57fe84ea4657310486e73d85d3f78cf82ef923685042f1c6cef7c7bbd53c809fb8bb535a3ed305c23810ba2a4f9f63da4b7a4cb45599869b57e4f4fcaa3db95be0ed98ac715a564f31c99aabcd8a37d2ec38ef929a15ffd16ec33afc8d7e5c6cae3b8cda327fdaf7bef466a24cf7ab348f798fd8a9e12e9a4d21a34f373b60926b7582d504071e0735affd8d41287ca37e152fb4bb2bd335f64d8372bc4a6ffd472849d7db497f1052599e7eb7a5acd0042e473d303dbd86241966d6990ed019b1d1000a592397495e1e599f15cee611ffbc9ed50af3f29a9d4b27ae92004ff02c0b37fdc04db01e0a07bcad738d73845074bb05b5952c701c5b1eb6a2af17ad5d20c1beb910fbe0c21d0c5eab751bb6d725d +result: fail +shared_secret: + +# Private key not reduced +private_key: 0ff7eced368f0f36b7b9febe490fab897c891a6e7030a5381945883b69ba1b456a2704c52d4af4a3dc3e8c35c09655cfd7cfc0f14489a1ebda991cbcfda5b52e7d8fe41ff9c37facdaa3b7577cae68845776579acf0e7b2d1ee2adcc57ce49f65efbdc5b2585ef868b6bb56a74089fe2373294298809e8f0499342c7fc5343b8549303df773668c89daa55234ae8af30fe2cabed5a55d4699b6e24e55f5793300676534cf3105f9f8c86fff16fdddb9b78895cf4128eb69cbd9e3f7645391367499c707cb4454353b8f6d86fefd8a3384bd0d45d89d6b6fbe348645d9cd3d5f8e5810894b0e962e1c5303fa5580b8483b8556f55b6fd49da3257f63e03533c10b74190134f1cf3530d0f5bb00358976f8927e8c3c926b27bcd5265ec90da93310433fb0eaca457d9e31fa5d6a05de41dc8f39c483cfcdcf6a204f05b7533bdcf6f4bee3ebd26986227bc460ea3f5d74d11da48bf1336a8483678a4be53154bcbc6fd609733fa678fc2f946ca4c5de03741ad6b5becba4a9688c455d8eb4ab5f8c35e5c9cd33c2d17ec1cd96b5b483797e9616b43bbef7fd88e5987ecfbea7c4fe7a31c37494568b40b453147644ff6b199465267aee342b3cc7026b62338413827b51bae6ea0066c0f5ff8d0887775b89c4858a46f0e8e5368ccdbdff4bb7ddec93f9b0a85e50c8fb51fdc5eedcacb9589c870b48f02338dd3bb99501a6c668dba52dc4f98b66564736c3f9ba887fbd351c6ddf64d57245c8098dc440e86e00d4a4d572a7f3408de584f83404ea3bba5d835a8d1ed187b2e94a9757fc9da7374d33ab4be4f5c769fcd0fbe55f1e9dff2ad3867599fa4c693482f33f2f8c5cf86c89be5921f6d7567dff6c515cc27447d7c6970eee68520fd6238ca9b8b28d58f7735769db6e88b5cdd3ceca7e477b26af1b2a586ba33ed003f8f973ae806bf80df4445545a8c884d53f84db4637f5007748dea3866df03c1b68b4d3eab9984837f0958a905fae4404aef135c4eaf2f99acbc5986ecdcabf3ede5459188365bb20aa917894967b39d535b5a022c5f2e0fcf653eafff02b9a62e62632f49871b537f1dcb53bae4d40eb0ab23f16528893b08bdf9145bc56451fd35edd0b9f63583d38619d9a2ee32ffb5828885feb9cb562969e247d3456123f79cb9fdce47ff877a42803cedcefe75c2ece59a18fc0737e22618761d667b81af72244ac8b34b56004580627ba26174984acda5986494ba95edccbdbec8a75b1355656b8f4a6f37bce21cbeb1f5a370be639ee743fbeece0cebb974dfa0e6bcd24f434fac8882725e46a6ddcf3f3ac4a6374a672b3dcd2fff2ccc37d4d8a60fe34614efb5f828674d9fe6ebfd40303e9e3fbcc1bca6f0ca698b439fe312289a306ee7347eeac46bdd1354b7fd8e5afbdc7ad8bbe4f1e43f7ff73eb626944ba7d4412e761d45f468cb334e1abee2e7a7d07751a34b35caff492f258791763be524a00e37a3cbe3ec8647ecfc7e388fea7e67a85c3914892e2e6aec165eeeed3cd12f33a5c97af27c5ee12e9c8fea7364933fdb6fa3703ad5c207527d79a4aa54f77e3ac03874c14588bc6003fc5c06d327de5377884c1b47f72507915fe97be0c4aa282560ba6bfddaf0b0019241e200929c660cf7770e111043c8dc4af1014f7ceba48a445815408b2823666c6b40684616d823c86787a412c26e521ac8c16868d7eb5646909027820444b8bff59ab46086631d5a0761a75a79d76468b74fd8c20cb9784929f2a78ad1882a094619325cdfd05de5a30d622551c840ac79b0b5b7a513f702cf58333f8b0382ce055a4c138c80764b8f882cf14324015212034581b2876efbc3ae9687cdd7f2acb964cc18ba90005730d55673bd519be3173d3e231166c7ac0193a4fd26085bcc6607d4a6f73367efb5ac1a1a063fac0207766da41901b8a61ec7e45bcdb73584b5891ef112251a84e9c07ae7c16f52362cef10aa3cd69927db4175ba47e225a220dc2653a58dc9854210087ecc2486ab13408f92bf902635d2ac331ec1c95402bb55b73b5cf063d3885fd1874d5b03100a993eaca11e978393ff33a31b6a98f72479ad9b88d3d1395c2726ed285b793c489e09a8a7bc744b361ec87427c399290d092a1d58a5007ab2209044895941088a81b1b44175ba3e7b038ed17b1b0cd5bbdd1bbea3f58812a51ae58216b1c18907f131a80897353a328435b927d377a45a6be2310cb22076cc428371d4b772ebcead61c765c875312cc91e73b20be811706caa4b52b089ea1e43d7b61cf4b705c1b7b3739fb92c53268a685c03723b4bc316f679f4d8b87375a4188382e711b1911502e502a3f523bd5531b30298815717ce2211283cd675ef106ac5d4c37a6809d7e3bf3e3c40c6c5092c34198659849713c090db27c78689c6d57ddc90c04bf1af5cd56b11c013ee7126958aba8ba7284ed58828f1384786379eb0bb2b8c50a504a3b0fb83eb5964ed6c20b908731ca5c13d980d9a1c0af7c7527da50262c65f7c2132355aacebc1ae5fa7059e7310d6d95da97871c50a17c0d1c68dcb6bd7a9a697b9bd9bf15a643748c83bc8b244058f0c93e7d1a99111ac6f046a5cd1713d977650935ca5925d6e10c84c7ac692527e27c8465ea46fce97c64dc66eb1110188c7a3afbc94c1423a845b3530e35540805c881b999a6b28ef185273e584b9acaf26746829fc6b1c88ac03578f98e71b67f5101de2233c841d2f303c52a500b3d1bbca883fe49b5a233b270bdca755658448666dff384efc9cb26a664106c49aa46c4237d9ae0ef37df159a0c9e880d7247566113c12bc4451f4c6b4946cf76c7b57f737032741a3047934b09e697acb2210b05b17047ea8a460e4cd9e7068b4202a8912812a04286208202de04d0c91b9d62992de76497dd0986917592e9902f33c4999916576eca4bc8495fc7233ea94671a3588adba1355804f1c475ebd788d683967aaf9b07a3cc9ec4c2c91a61e0456c18dda1a238132d2eabff8002c0ea6ad88d3ae3f4769e298aaf954550fa3cf86944184da2cc7303f1be393b6580cdc1a0e55bc3be7300166d570fc4b8644156cfd6c8975c29059c7a550d4b63d242b3e11b887a31bf764a911ac62801a6845d6589b0acc55e4c80cb37a3784ab8c048abe21204b152069fba2d6b75cad8ab3f133678889a99d346e3b49c0c41147deaac27bfb7c8aa3810e3b74bc0b205f02753a48457bd4b7b624a3fba1443217a88c65c5f63a0793951666453692c56b790391a7c9297e5224771c7a441d5363741dce698c33558c584f87ada29bf78a689417b645fe127d124339422be80a993e623d13bc59f3406a6fb6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 +ciphertext: ad805761011ebcebc43ee0c2d4dd21a0b6ec492ea384e8112c989442a37034525a90bcb6873464137955f8b8e41189fd97c281236242b48028f6a76c0732efdb86e30a449b895b75f9ca822cbcba38abd856a21cd65685abb38d5260183e52e69f696fe09439dd3e34148c9df57482b55d5ad6993c1a83876bcd4baa2dd542f3683c2c8d62db6268947aac07d6642cb09984ea122072c8fe2869e5045d30bff4f0caf63b1d51150003c459916ca2c590905aadf0dc742a2e7f4da143bebd6ccd55db94642ca09a3e62246a3a72399193e5f925a643c75bc0c7cfbed989c448d5e000d4e433162785d2b95c7e7bde8f5b4975dc8b16f236e1f8118c130dea5fdebfceab87582eebb27fe46f313fbeb5c8df0ea6ee306e7718bef06615e624e1880ab21c3cfbb53fe3fe9809e50d8480e6f9752478109e2e736fd3fac84d9b8206c40eb17b9d4c5780bb8f5fb5839cf7d3790059b63beae82c8d1af8477544710d38db1e0fe2beaae07334684526d4f5386ca5b7b4416150c2e928c015d4c5f03b1c95eb12056152bb712aafa12b1af1d252f2eb1a65df5b71292780efc41de0b4d49ecfd2de375d2550aa1f6844b06ac59b8525d4a902177279fe435ab7e36dea4ef0bb969fc5e91a6a27aca3b6abc9992aa485e80ff8103ecde1fbaca9c55dc0c90e119c81d6a737ed1c46b46fd6e5c4c424913a6553baac92612dad26ec382485a6b03be0174c2ad6f73fa111e0a6a212834b5cb644aea780b18d7ec85deca92c93776572ec1a188d6c912337b2c3d136baeb6660d12007ebc17755df4e07758a89151248b4d700336c5cafe3515484dfc9a7eae2f283f87b474d18a9d25a97a4ee564f9459a0d93452b0bcd3de0ed8b6bfac875638d80bfc1c734d8c9a203844dd30f0a352f889259684d1ef983ce65738683135afb28a74346c4b225893c4148fbb1593efd3a3c297e2fc912ea5a91cca050bf2329d3c181afc83809a5d73a8be85346771ad94080aa694a2d6fdd9d3a04d6ebb0eae3840e96c78fec095d58dde728e1c04d2f067e2832af5b1fa21bfe97e6e58d980bbddbbf7aee88f2560da4bcd5804008f7be7275eb5eebeb5bf1374bd4d72ab894b0ce892d71397ffb0f6b053af026377a192089e8f64790c178cae6e15e213957f7ba3515c3a001b1e72288828433624bdcd49cc2be5cbfa9388fb1a39312a391abe6d870f377c1c166c5f1c0f92cfac3c2a7c2bad2d1897c592a25cebb15425e9e23cdce8e0276c2aad0ad092916225c39f7d94f9432cf1622a5c3a8cc4a457d3e17358cf171a7bdca13512ed376911312efd62167896a0027e3d727c2d6284dede2dc0c3ca3e7609495f12c2204ece6e512f17af6d9391997c5b0f0c15bf9975b38c770d466919a232f66b5a376870ec57abfb6e23213ecc203f6c426a04125c61b4316f5ef9231e4789d8b20840bbd2d4141a9a7be879320616eeac398ca8b76aa95af7cc0743a3a2f2c1a116c536e7547bc93169e11c66fc5d4ed7a704582ed38ae2660d37e0dc +result: fail +shared_secret: + +# Private key not reduced +private_key: 3947d43e6ea4126a8c1bfdeab274b31b94f4ed88cd191df9be89cf1ea58b2a73f5ffe8627b7bc4e3e8a4b3d6dfc42573225946cb5dd235bb54494a386eeaae44f7bb8896c4f14d83621dc4b57969861d8d116a76e05c984c0bfb927d811e7cb4c42ae2e47deba0bf4bbd3cc0133cf2d814bb99fd49a9ce55e39cf42d2e56c9bd58eac343c78be1f65dc52fafd7a36fe3b40648fd7d872ed8c051afdc4c078a9b4576b619d9bce496299e68115af4111b7d160edd06d7b719ac4c497f756d86d97023fbf16bd8972c78f5fea5a7ae5365cdaca1c4721b3c82777878a96eb751aba6a1eb75172c952c0e7ed03c900764e110a935208bd37ab7f96e73b998597240c6d115333e50cadc6b837c4dff6a027470770358a537481675a7fb7cccba0ece7836b75c1edfd687691e96487beaf664756fd6057ffc2fff6abf6e3fb3ba2625b9fd9c41f4887cd11f4df978bdc27bdc6f4bdf9416c38c2e45361343c3ffb752c7a885586e4ac9955f09f5d2365848dffe06c6556b7858f0d9318c037e03536ce9c5a1632d967bcec55e6c61f00a59034ffc8b35bd1a0d42435f49f54a322909d554bd942aa9a3205fe46305e5dc74d24d66e6e653c9e94bbae8f8ffa914863338c65413a33f6fd243f92f1c3a888eb8e21be984b4e4cfd18f85e904c34465bc1477cef53757b20f5b10d454150aff57a3eecae3d1929437b847e46fca44531eb5719a933714a1c2abeeb52a3bb376d3c17fb4ee0b4776de7b7af9c604a8f5e2b654e1c4bdd8e56f5324d6cd5f97d2cafcbf19b8c43835d2ce84eaa661d9c9da6e99854787c82d53b794d8624d34d6e57693143736bb44f84608c8b20a9d99695d8f87ae57c83d096ae06e793fb83f5b80fbf6c8cc345fafb17ed66e3d437632bde8a2c8bb7cbc42761b95f35d8f9283fbfcf9343c4ac48a935fd936dae0463bdfa69120ea90f3e9909b2541da035170affe1e58411d14926875f9cb13de1c9846f63abd6ae9a781853bd03eaf495acf79a4976783eebb2ea3413e40a707c1074f5c5b0afda336f47515b229eac44acde2270bec228c863783fd818c6579e4a5f0189a23793f8e39c1cae4daa70a3c6db8707aa76831ecf6a456f87d8a4e45fceff7fbd0782596f7a7aeed63d7e5c84039c4f31ca6609a1fc6e4f7edada3d12b2e800914997f99970489380f1fbe57979cb6e49861c9605e0fa14727a17e286b418ef23324ee2fd5b3844d33e3cfe5ef44aa763fd1a65334ad2f3818ef90d2d5d339af681d298061586ad70486287d867b0493d0a4ec4925acda9b4185b64589ef5f1015705a885faa0be618b7dab415cab52af5e313964403f01bccdab9573bf73f30ac1f5891d58143ea8bcb858c763ee00ff581ec7a97b45ebbcf5b416103e51ae789877e3d5cce5a58ed7f2bbb8245ceed82ad804a18ae641d4bf75c75607daa758997243e54bfa942a57f77f02db312a68e973def227a908dd7bc03ee9391f73825dc44cd258b707b6da20ca56a2b32c13df308357e48945d79a38c067df720fdab2e9ceaf246940a797cf00e8b62873474a38a5a6ef7c026699e6f5ebf0774335bda953881fcceb0f5c472f549818d44b63ea59541b8f6c49754936e35670855bcfa888f30a50035208f5a75de6a8e3799cc4afaa7aee007788547e7b79c7507bed6a8522be18743c101463c9d0c28328a68b0d3ec380d04a20a31ab8ce6465e5aab4e2332f30870c5024718b1412c13b7094228e6f3a1a32440edba8f5ca66d968961a3f28705b9778713cd96974e42a50ee9eb61eba399cbcbccfc8786f7963c15d61ef8d194ccf37db2e16a31cb57ba79c9aa4a5da2593eb56c29498ab66f370d7b76971f797f9cd38ac3262226a64f91e03a1119b8eea00c103358572a1f4ab68f8eb4a5f889540913b23ff11768200694597d19218a2c30c3c25829467ac2d1b67f85d37522b22e7e44b950d152a8e087a3a35e3eb1c41fb15c7fc264c39272f01a0a2a91324a1ccbec627fa1ac81edb30ce0f84a727b36a4f9015a25ac67e3c76629c2347c2478d61b42bc413f6920f7b6774542bf25b92a7715745120ac1c4226e3b623860b4a42566829317e09d5868719a1e9babffba9517ac95a7c020882939cca54005f94791f37093eab5f2d15c1e7a09b9ec7b3738a197977c3ca0baf9f093271d00387841f2ab98c9cb16f19272d5e4b8d15e69da97517cf833475336d8850b5c3c87e4ef2c526b95e75060dc52c0292eb69e3f04294c854bfaa0f0fd5432dac0fbd03414b5a4a3b7c7cf36906fee8be6479c193b7336f4c870aca768d3ac2d84234b330a1f160b105214d469c8c1529bf31b3aac01a3ee1e231f389a27d4340b35a463ad002a7f8327dd5abed8b4256e87129b1be8ac475c32b97d11397db247a019533acb1a61c15b9aa4bc91d45af064a608b1926c93acb18b7c75d9798569a89a78463b51b5bbf038dae3c5cd133690ae80c1ad4541267bc10c83343a12439d6844b931a1cc79a0b5090214ca721f61e633600e8f76db52274c6c736e4c8b63089014a4012015522a9385f863507b1f1cc7c814cb47b00395724d601ad7bb27e4b0c43deab0664cc858d4a74576642eab3c76c211a58274e14f615ffe70084d7b7c0189d4d97a927a8b008b85888c57a0f6a307234344a5960836cbf6f4473ad988429a4ae3ba697bf07429d17c059a65d9e35a845735ba0a58e989307376c1e61f33023221a6611ca0465be5200363d49c53cd44b003307e5cc0c4f7b15e1545c72a7c3410ba1bebc8f7314b3b9d295c676bfe6aba9848554fdec9192f808329c60a793754bd6256cd030da12bce0d0765e51548aab0985ac86d1537ba49635641b3a26c05def260e94593b2e0558567c5da09b2cb122655bc4cd3e985eeda6c3f4322765e6a808ca387cc369dc11c9dfab64d4a30584e5329c905dc480801dd57d9ac8ab4087967177cb3163cf3e934a951a3e248a54cb922b6ca6ce9b4cb8bd788023e6425e75aedcc135cd3c59920c5ed0356fc0fb5a1ec0035b7c8271726dc8d63dbab3c78326a26c5b0f9f952cde7373aeca36cf6a438fb39c38a56124171593ea3bb076320bc8b5e74204777b7120ba97c3e803560605cf80c39324a0e3045d0f687e8f219a2ce70aac209b86d869febc5b51398341827204ac584c6b3381471937e68efbe5866a8569838251171647b4127514db9b84482d5b9a89119761c7f6508a099961376d6ae3706f6ca1c7c031f430190d6231425b14c6544cabe8701f8e475892fe31b587aa42d334fd189bdf0c87bedd5c16c32cc3867910f734bdcf09869c7604a59ce36660074f561e12da76eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb +ciphertext: ff7b85d93c35347d0e98aa40f91253ba6c73520292eb3dfeccc37dac0112164fcc457e45f12e39aa2f7b94cb5e4038d229211c25cccaeebd8e7e08918d38b7cc302bb2015fd62a3b1fe6c56fab9294b926e425b6f8b049e8f3fccb7a6e4115df6c4ff9e8a9cef2ec7c7a03153f922ad5d85c6700092f131d7d88efcc76719ca35837678ba1781fe5ed8a106e1b37a5d5fb139d8fded8f980a64d54194ffd6d283d949973037261f7eeeef74ffa7795c7a47c8508dacd6dd346cbbd6bc2c6f978539132cb2a4c6f4e541cad9861f9069a810b3a465eb8f85b615aadc15305f7693b7188c9e486ab742bc024d7f8655ea08ec3d731c131da78251347eed4549cc36d510e9e6c761e4d30407e25664c9c6d1ac565f93216b99233da67132258fff4aaf0c9c2665a9afdc7c904404ce24c5a17a619a8c7120b43ae3f53a0da30caaec6d935e93d6f949292db368bf430a5891834558c978d23f2fccbe45d63c69dca748dfdbd05c72a9e116c2a5519c22d1ce1edd151e45c249d3660840381a3a27e9bdfd56479c31fc4fdeee7c2475d8aed29c8bdae54add3c2d91033f6d7a0ea2de783813b332bf3f2088df7111535768b8de8461eec59401484f404e59ea769b107b7ea6d9fbca55400ea73275a68ff616006c3000b7111cf85c96203e1286f6dba554f06b104295ecd4d78b4af5bed95a5ed586518e4e213c7cb61784a054f6098bc6594de6b34a099dc2999e726377eeee7f0b2fd02a718d0a605ef67d5cfcfb93b14f7a340140c02e1b843498378ca0beaefea89668dc03316c14da4cf3ce86da691d098e5d318b9095a2eee24c782e9f3576521c027ed063991544e8c65e6fa0a6edf25666a81223b9976651ca614939bf75c1586d586a6bf8429e7f174867acf873cbb6b6393d21b621005cbfaeff15f22b383de2ce9e2af54927b53ba29e406869f0b6bc172825e839459cd7420d05441f6b36541cbe9c46639b2d6f00867af7ae3cde974c00caa724fe3b48c928649e66e3792fbd5330cb6691f442617e63e0aa535952984373fd1f1016bd37de960065604b47ee621a8301fa5c087d2f4f5951b6eeda95e4065413da627b4aae73446c59044eddecd906c101efab00792026e706ecfb33615486623643e8ef5bd29e210bc2e1574adaf02766c62ad6f526b5a33836f2034ad787e9264abdfd068b5be29744d4fb3e4151494cdf007317bb161658e7e37b8994904de17acc7548fc02f08aadfa0522d441e1dd79f97a40c231baada2376197171a59812b4282ac111ffa4dd04f1c117815a965ef74de935ffd96fafa491f496b7648dcf365c18e8041c16b5068bc824474e0843201c84e538f6f9397a816124e3d58ac92081b4e13f55c95d8e0f1ca0de2218537ff4e677afd867a93ff339f10ebe8fc0456d9e7e8c5e2dbf6775606d8d6c946146340cdefe90c98145fddfc1ab102e8867e476645c693e8907c07508c433870eba5e466588289dc942bfd1091980c9c1e83d07f31dc493051923d9ffe9296570810106 +result: fail +shared_secret: + +# Private key not reduced +private_key: e39d3dee4e36ae2736d2f6522417953c157750debf926db6554bda6f98e0e32d8a9205833c5479562ac268b6618787c4859838021aecf3de6d7f8cce4f18872d2d70362f463ae5c2cdeb4952d579aacf726783562364cf8d86cd1254c76ce667e06e55ddeca45735d62417f3ec8561d7c65ff963e58ef4cb3be6ce823c5501db9e29d8c1fc23327b14d67f755b87d984348acb363bf2ce4e6d754b82e52483d8cb422eba4ba8e649faf56f30586f09d4acac0c3007ec6ca183feaf7dfa004b58368785326bd6134e56249bf2d6a8d6b7bf947a75cb16c8f4d35c7ec26a7a682fc4fb36a5aa538c16e4b6d366344d049b36e53a6a9de77f3989c41ef93d3450c9efabdcce86972990dd933f9cba7ba327e7bd4ef6d1aadfc4dd90ba37c447db6143b63383745c866371c436e71b667096e46e0c2942d40b4ac3fd8f49be36ef09c82eb5bdb13a514886f74ccfdc6c4da601decfa0a8b29ddbcfaca547d178d067786d6f5da64c7d546ae3af5255ea090f8976ba78b9275a2c1ee859edcac0fe49f7854abd2b390d28a661c7a871467a2603c5ce29866849f08b53867156e8b7bfd130efb4b9753c8e2ebbe74c47804f7e7228e989dda095ce5a9c24a7eab46be919a71fe6d879a67480178453f4aed9b63c1114dd3713f2d43b4077e74d8f8966329d42c9559b021cccdb0874009d61e3a3970c14b34a28dce0eda2f9d5bf60954cb79b5b69169598fc88aaceeea1287a8cc88f877659577433a98ce6af3ca892e4dcdba76430cf4f259ad207da5e818580694582b7b7982a7bbb5df7e4e84f5b765faeb3a4d37827a98e765d974edd5014a7e69b3db3b6797be6d650e36e1ecbd342a77576f496a7255d936c5eab1ba3d9fb57d733d5272a5e567c621746720878cdab13a9f6bdafa62dea6f7b844bfebbf76dc5852d5bcedbf2a74b79c5b4302f29bbc60fb4a3c985478fc8b123a33d949d878b4ae609ac5386ab5896ae2b877338c3f00e68ff34fa450adbb2759df96b0bc6e0e73c2fceb633f56d1b8a54ea65ab7cc6fe5e5afc4f8fa957194322eebb3a4e3c3a9db74b54ce224dd8989e46c483d1e3c8489b257be7b5dae6d39a5cbcedafe4eef2b9eb54756779e5a8e5ab79ce58eef908d295ba808769a159edb48c5f669d0e980348d42d2a5e2146f7048f7ad9433cfcf6e91c7c737deb92cb3d53eab8dd9d9f34f557e5b42de3cde3eafa49a24993669adb72ced3c7e4ddfc76aab8ba56a29686a115f4b36dfbffe00bb42cbb6ba8b8f5d9888f6347a6e61a7893ed6c8ff9b8fc0ef80e0fbedde4f68fe4615f9994ef8b93c96e5b6a63c9b4d752a46c51ebe9c4d98ce610af7f8cc6faa22344f14339875b6d10afd875c3b831186ee7fd4c745756d57b875098a560ceb060f353f606bb073690546769dd6e600a77ecac18b563aca5e6a8a887eb76bf88a33e8e4ce903feb7cb5cc4de6636493421fbc550ac90a4b99611b39cf08f8dbf056c105d43be9bd03e36d611ff7a5aaf765d57a13e2f81d79d4526b93d7745b4f8b98085397688ab559d073f897e6dfe5a39d09975df1d7a3e6c68ee17b3b63a9b10ea6f463ebdb627bb07494f289d52cbdad4722bcc0014bb39a3f19236397dc26db4f73dd1859b06a852e89a4845a0943e5513e8a056ddcc2623034a4ef251e607268997b7e90471d5d0cfba5639da844f0c9a7227c8a22a83b9e805942b67019ebc45502c22d369abbe52a9aa6cbef78ab914337375d9c075854bc9a3484a0995a239121d918aa64b2ad76c6873790211162509ca2347366d8163803c3433d32068d0f8b64cf38c2370a3546083ed45716dbca7ceea50207736fa51c062a6a15ab8c124ab6b00334e03808c858ab4b20a368df787cde92169aa4100a2adbb4699510753b80a63b492c51f43a81be012fa13405ccbb0dcf1166ef55f450781244420a0ac9301d485ab561b9ab67f5805afff924c1f43a5b1628f60baca631931bfc6c9bb04d0fb3727d7ab6bcd6cadffe84ca57851ee201f8153ae6d64c0d2aaa432baaa0539a17e731cf4360ee37c0e38e0cd77ca85e817a827173bd9c0ad253a44fb244f47f956146b4281109297b05a9320953c022024373d60701a68450cca32883848c4cff3c64f548cf7912ff61a11f06030c5eb29fbf8bdd2b16541fa85b8683493e8239e22c01383985aca367d6cba52c7808ff12b79976b794c70471ba5cc7908e4168d5c916605337f26199c34519236a855ef063423d7777631bddf164b2375098a25c9fbe9a7f9344ac12aa0b65a1380946560123f82e033fe33638788c82e7abf79b2c4df9c6da2f4301d70465a3c05e3a485a26a3b8d98674d91594f24761f1654580719260c4b409b2fcc418a24082a11140d043a6dea028dea1a51e9224fddaab5f3aa64564b3c336586dd8587442800ead481c9d27ef08908b938945b7204557c38aee2753709b68088684637bd39f1b78c6929c84873822caa30b2584a02c93b085380524405caa5d9147e6c837bf0ccb1aea19db39471d1a573fd893028479391680282922b11ab4d78b407f7d68eb89b615c32593f2207a4b017fd1cb922778ca806b305600546700d9ecc70ccf292ca7ca0ce6b6fc2a79731f6a9e8b83c9492381ad561f657192bb3867d3cc663bc5ffb48c997403b4814c915616d03ca71d0e8a93ef0acab8a55a61a6a58d22845e27d6c453b79391dbe02797d390e262a6be41cb564152768a5b1f2b7306872bc9dd63327e22e518082ad337f0eb8494ea23e7c730f48e94d21ca9ca3f660d4f960a6285f1e586d04120a083b814ec4229717b23b73c0c14aa6bd45294601bcaa89429814ad6e8a6190289758354043eb6d81842a6f332524da9e63dc7570865695c043c9eb9c5925bf4c4b15bee14aa58a09c4d37c822ba891f2626a414d01a10f9fbcbde5609bf4d982e23392a4cc16c461260bc518717584bfb96e6960b6d4b673f61663be1b2babe74d46494ca9576f3200ae3ca8a58de308d8e99b65384ccc30aa1669898722b1a76c87dcc276474a74c2985e746194844c0e98f811dec520bb54a1b4572b0c39ad04820f8ea878baa9caf03018d4a196c5363f55373ef5a98890c719b7a019d0eb023e319241081694e74bafda502529020a8b8f1590b73d1bc36ccbc8d4bb76c44361309977270231a51a7999e65b923b1200366ef381b8fcf8c4c5d3add0c465f7db79f7563dcc67940312ca49981581a798ae477915f078f11023c50efef1acf4f751801bfeaa5ef93fe27771a40a3d377f0f1b1655f6ed13320e9a9a59f83fc58d7194ccc92bd78a45f97f721a1eb554499d0e4d5b37aefc23a8fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 +ciphertext: 5d1369e253686734a5e45c65a04129cc5fcc91ceb595fec77e2850088fe1084c3f2ab3587897c3658661e3cffe185f4a0433034b56aeaa430b5a898a1f682817c406e4219566235f78e8b4b6927e63b3fc55bfde580c381f74e4d8b708fda0156e9ba2bd0eba3927601879af7762a6362ce233b87ddc0c61870a75812aaf92ef6cfbeff50ba7dcd21f0ff403c15e6cd1be9dba02f3f426d935c13cc703766115018155648d8db45457bb17026af70212994a87fff10632249c3e87716cbd1d13d8817fe5aeb748aae801970d8b21a575bd1dff893432740d6edd652fedaa89cc026027f72d71946e67eded2b0e84dfc0e6e103d1c4dd1120be5b09980fa35ab88e5d5714739387d18aa80d1743579e220ca410f404513b8bae90d64751306e70b78de2838406dabbddad7bdb5668a180ba02c1d44c20d12402a49492b4a4eb26c9d091316c504ec7d726b904d333e6ae33b0adc8673f577d23962d1e3453560c7a07bdd400d60473b978f3a6860af623130a1a4673d3ac6d7658df376a8ce2a91dcca9026ab9d1789d35e89a05b3c298d308fe7f20bea5db11d68794f2721dedb3813d3e3c58b487ec1a44f65d80b11e0d73500ca06dad337fbe26bddfa3b72f674a608e8bf692bf122b624bb8c98cd9ac5890c774f558c2141155f658806111b4e645b07bd23260c2b8d4c88eb97b418f734fb0909a95819e74dced41551a5fc4f9743d19b66a4afda8e23d0f08caf69b4223286ee80da4ba6cc0a8071434823dabcd984b086c4b0b5d9c25bfbb7a80a3c65b4c246cc6304d7967f5c42068655f704ca329a0b671b58c93a8775d4884f0e8f8debc053a7e03338eb133870f7103a434f2f27132a0cb9bf2bc102d42394c08a621ae13cfad170969a9a8937f6bc519d5d467e63fbd98473c6db0582734c23c19cd6ac4d56e106a945ab75b23166325f33d198da7a4f7dd9ba4917da1365f248e237dbee6c19a5022ab62d86ebe2fb8ad0a35f838be5ae0184b13bbb36e8564979f6b0a6548004956cc49bc94a104a57a26b989df283e0e6ecf26f50e896183391760d757dc78d7eeec296378694343ca84b7fcf751e7dac4a889ed170928a60360a5fe2d979a766b146c2689f2299d9505fdc2f91369e4b58b432c346bf1a96d085e7a364f898bbbb258a0adddc46a4d126cdc89b6bf7674cd7e980e4cd7acb2220aa9b3adf1c9b89953825d9e1e503476a0865a66b44ca2efc23eaaacad5aa4c66b97bafd6cff9a73b1df12e92f02c6fe8402197da45798309800fb3911a8890e66cf4f094e0c0d7703d6600cb1ffb2c1dd43a9058175c86dbd0f3d6a0c29979c3b6278e2db8956ecb9aba710a5f1c90bfea10fc27a9603f8b4d289fc465f7276c8745d11855966f944c85a0ca16a004543ca7e7258f8bb975a3221d6805eadd906572f02b999e9d190c189c51523bb7c7cdcd813aaf116e813e1ea0ca8ae6c8a80d569e02ba2d666f54ae85f5cb1f22983783e9c1fbfbea8619a50578c43c2601efd0b46cb640947cf1e4406 +result: fail +shared_secret: + +# Private key not reduced +private_key: ebaadf5013d0253ddb530580651ee2b904c9190bcc0f7b6c9b17e086aba5031f517ec4d1a356cdbb8547b2ed6ceb0695f10fc99835e8e6258faaa84cb8bd885d1c9272bc8acfff94c2aaba89696e4569cf3493cd69ebdc9629c6af38fa6828a0dba65f1c38d2b07fbbfdeed2e9ec5396fd473d29b9bcd99d8d8d3aedea59aa6be1f7a8f30917c5197bfea9a950e3834e7f37fb8c6760b07c85980f5cf62b63922768d89955316cff379d7ecb89b97ebd98d7348b9643ba5668f915b9558fb5e9bb1530d7b846193ec99683ecfd2b4d46643c0de99c459b93289e73a83b423a073367ba8e7a9d4bb53e760b969a4b7b98f11ade60deaa75f5fb59fb9af51f3ad65b645afcd3c8efc35ebbd2e30eb92c266b98c5932ea3b6029345f108d95c955faeffc840cca34cd8d1ce48941588ecbfc598f1f39ca35df57a1ce73c7ed8482c9720f56afdff50c2d7d4c524f150fde55289470ea5470dcea4eb5c999bf8567d688d5a5afa7dcec3381c68bed9f5ac4efacf037113fa8c5cc43a75f3bafa3f672ecb3ed51fb17b65f03529e82985f5c5d352076ca04d2a3833e3d6a42eb9aabe564504b8e70aa8e9b9eef58dd1a42c66b33370db2ab3e9b43f32f9f6e7bce8935faf3c9ac7be5fdc35767e1b26b1628f3da4fbcfa21f32dfbee43718b6b9e6aad183311f756c05ce5e8df99bafc854e85e417c1aa5fd64623df434f2d7ddbd8ab6d41395cdf4814bc99ebe6cedd0777c7344c1504b7e2ff4b82d974e027ddd1293c5ec2a4b34fc895f6d8ad7b3fb2fa6cdefbfb2867a8aef27aae73ca70a5670c3857501f5c4231448a4e7b4aa9f6c1ffb58b0aa73706ceeb1f7d068d97de18be9a28e4c34d746570bb3d24fa6b7c49d52d78f501a6bfe37abdb29d5a40d77a22aeb0e6ae4f6784db99e97131e43b95ece1d975db405dbb75a8138f6da542cc41aaa6c566f6d81535045dda1865b4d6303c649b354561e440b4fdcf536dd0b95d41f7cf6f93ae3f01c77bca3357c26bd0eedd084a54ebeb7330f59683597bb743e82a4ec7b15e8656dda8bf0a8b38fc3632f0dbcf5938706c55d956f3ddadeebb67d36783593df9b85bd9b9b2c53dd94c73a53b65da10a614d93c6da7cbe89aad96ef3c608f747cb88f956dd402d9831b9889f6a87d8ffa7caf87a8dcb2ae8b74c363037c89057dd198d5befe3a0bf058e6495dd626e494804eb2f03446bc9c6d65750bb5fee2bb8510f2a878acfdae71ce3325dfa550480fad8c011494d7dcf5c573b4b23ba4c96f99abc5a6d8f0fea5284ba54678f1554324346fc6aeaaec39efe7648fdfa36c2b27d4dfb559a27d5b8f7469597af8c9e3bdd426aad0c57b2407346a6caf6779dcc903d857d2858aa5b97e296d17c494bcbf398ace755fb6bdd041aad180691c85994d43e616f9ea9bc4932122c35b55b8300264e5d3533f85e8c59c4cc4cdc5c3894b48f247b1433666efc9935fe8234535e18bb43b5ba5d9b6979bb14bb8e4d7d0e15704ac6cd1bea3466e4e363af61e9e3c4cb73b62579df1bf755db67ac5575f8700a78ca973391b34d448abe2bc96447dc8f96239e6d06c41dca9fe14f72e438b7437c6e0bbbd1797475adf9cf716430dc2b4a9bde6e790847ed9a831c0cc2acbaa793c41913a02db8ac1c6bf056573bb75e2990a6fcb732c3461ccb174dab8ea4c55781317e400ab4ef68138ff84c27fc0bc4c68e30eb664cc8bb32b617916c155d28a195fc39a1a0419af64a59c99664f744a375113228ba3730752ce5a06701112d7328649a3755b45ad6bc4bc0859feb014e185b2e18603ea0437b31432457b36d13a5ae96b03905bb2fd0d5377eb04f34a68c57448e7909cc660a31d9f9540af17324e4b31bf04f465665b5538f7351687f238d6c423c9237b5ca35618f092cf7da879d965b67b1cdb2467c9ef3862f260c04727594aa6286f4035f0b0eeeb4b141306cf7d9c4a6bb942b7a1e30b56ae958b16c3c1237603ae6f879dc9ca96a2439e26c0834369e8b041c6327254608ad3727cdf23b842a003b91d1aee60193ae1497d5b75e2a370147f052a08b1f86179bad52605df44f6c99c75df478017318c6ba017a1b4a8302888f495acf796e0745adb0292ea6b5526fe43f96e20d98fb756b2553a9493401d4a25b9bbac13b62967a228bb6446b2067063619af66383e6bc2b3d8cbb9e6969196bb45d665bce49284c5b50f934774d500c90134535930ad2169488c4ba8ac0854f36e085318a293bd65ea8e033c754ea44191d9ac8033c031e066b2021c13fa11a15222cab4829a5c47df7418761620aad92135169e0f008760ba30a289cd41f1325a4c90334978c5176cdc5496962443b118a641d6130baca422d89fac5c968adb461ab43729b6c9b1349e71116c0226b55fc00323d6a74c03282f24997949207d72ce58fa4d87a7413c3bbaeac91fb2131c418c11ba501701549efb25cdf560239223c90e1a2f99897fad594930848a1ba2494fa87bc03c57c7bc33463b77ef80b978724153a956779028b7a565c40144047747e124c7db801d309333d3150493c3b3ab68c34c939243454d90c3c4079174a8171c77a0b0c9e54277b5bbc5033eb1eba3cac86039492b4e75a23c8c51c88177edd639a55b56fc557b580b03935765cf586c95178c330319c70a8c15c95fc18a23da11798cf6c54f68bfb766a61a9c9c461b766b4a00608575c4309a621b28d27122cbbcc76c30a30286483ba85a68524c0e21591b7347a0ac0931e121eb3bb8d0fb7d9ec577a5821487619e196400c2169a42a71c7665505bf333ac70267bb50380b947ffd54745e41de5a30a27b78a62f43786ac88b2012de563cde100358065485a73505982a265a505ed85cadc02228ff90a03d088da7410c6179558d52ca36ba1d87353985189a709a1c0a7a10cd8513c4aa26d27cf802027aa8c5bb99c12a51b7f16e10838500132cc24d79c805cf11a5bac88c4bb0377ebcc4fe7c6ffb927ebe7234016bcc1765ae9e72e62d51f9cd91017f508ae207d181ab0c4dcc8d1c4742494876d118f40c84e2706914c65a161d184a5765aec67c9dcfa4bf3418e114c6f3cc34e94a149fc84b041853af9b213759cc5a181abd5641285613875367842f1a2549c09eb9b1dbd851365d58e6335c91ee7ade6c23135c1200cfc1de3f5cf6fd13967150f01053b943c3389bc4670da9857ccc32528920f781cbf16a9dde2299db9912e87321c02aac45c4820ba2e808666ee521dc4bed006527df29a124412a4a19aa26c09b490188ccba53900a2545022bda0815dd53b263afcc1f71d2501128c41fb3606af71c5e68f0752c6d3a479c5ff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 +ciphertext: a38d892bddd188709af0e4b7ddf0672f8729ffcef2acf0be8fe4e246f83bf39ad529634a3720388c5e2295f5a071e27ed7d75d8932dd05e0182b92f98d16c4749e65d2aa96c6b45382d5c83cf6e37f30d395b289e11cfe8e108c50bb61c96749b2474492dbca1035f42dbf35f73e6d458151e37d1df2bd2d1e0965ff87f607897139450f4d17d4e13eb099c5c79cb2aaed233cc4c9eff06f38d2e910f648b07d5ceb12c30c7daaf85e3ec5906827e923658cae07f9b4e983b7d982c98fea5a3f46d5acb6bfec399e61fa7e2e64353c7ded3c7dd1d3b8bcebfe9a59c29f22d2e5dd29afcce64292480c6b6a7eb3a5f08abd7afa8641856ba7cb706355fdbfeb7db58f476a79138ffc03d945c5107a126233107fe54778e8aad57a905e97fcba09c242ee016dfab5fe3648e2dbbcf07b488e1f2d60da78307e3f9e318b7a8fc99cfbf67b3137afcae6bf9c1a7d005871bf59bca9ffed32467e04767b99b7e0e5f75c21f23c80ab76e0acde939500349e954578f0d7b0bb7972eb2e910e90fda97876d70886fdbbe3e6e4c04551eba13de33f9eb88fb9bb5c669743aa78450f658df9209e29a5d81e989aad45f006deca4c802366a18988a8f99481abccfd19da9879b702a7f6c4fe7b5aabb07e0958c4c5094ffbc0692abc928907283202e0fe512bd5fd78b49846b25f9a32a3d92d1125f9ba5620618ac27a25f6002990f6959e05658a2ab6fe88b6f055b47951fa9cdb27a8b6ff9dd69c30231c1751805ac7d98b00733ecc0309db2e856765ab9993d9d78bc10b0023b5ec237bc97bb944cd7de18e2fd0b1837f50109762c98e66859b4cf3d10a79e3a7b24f5b67e0385a68657f31d34b39f0c8c01135ac10ed79adbddb66f762ad4f20ae4d61b8b0e83d6f35f4fcf270b45364a459c9e276527365ec69bbf39c85ea8e8c24e7a6b5e4cba67fa8f476b8d57642cf1d6ffb1aee8bf475d66dd63c2d9141bc51d569037c0ae82638bbf9f5f66e04fbf21b8eb87c4ea2c701d05905441544d2934308ae1d22483e91e7fb9aa69ed86ad414764419781f249e215f4c3a273bb4b7ce2886f2ad8169f15c75705bed9ab8196700f5f10268c5d32790a8f0a26d5214151ffb62f1b3728279da8cedbfc9408a2b4811e408c5bb7b3ce1c01b8c22acc32796b5bf3963e8912dd997be5cb19c41a2861272efdc64bf799eb1e601c108e4394e8cf09137d58c34a2592a3fdcf2d969eed043518d17d8b160879c9afb8224dd0bd3d2840e833a908797b7038d250d18c3bdaad72496a5a445d1b36a165717f6af7f8b8b1919171d2e1c8365b94b23ea84a0344819c3828d8c8dba63046f15dd18f679a55f526e7ff78e066f4d06133957b73cb1e1660755229d3312a14a8f194dd0e10aabd845cf8f63c63e26360f30f1eabf02b05b20b3cb615083e6b1942e304893c308948e73084f5c88328f550ecb5f01bee599acc8db52f317f3d7790343b8a084e60926b785bf17863708b0d92a1bfb63a94cb97c8f9072965bbb84134ac114ffdfc6 +result: fail +shared_secret: + +# Private key not reduced +private_key: 879ae795956ec59daaff2e90fe2ad018c9b51fcaa6b98ce3da28a8c09a7fd04345960cf2d4e65bffffeefd03d159aaa51bc63c7d646f15feaa487540390e55b4f5efde096389c3a1b983373efd669553334da5ae1ea3d4619948cb85ad5bf4f19693d33e33ba100e750fd6fffe5331b4e3756e46cbca8bffa46cf6b8e6b81227e9a6655f0a5fb9df797717ca88bd79a769938ac2f68d4347baa9ecf908757e19157953cc952236e118155df994e9dd88556da6eef9855e20c86c461ecc774fc50bb4a35ac3de133b3548055c0ec585daeea3912f6749a739ebc5ca7834ae6776cdb6e461b5b736b128d6e5a5f1f11d543568ad18097e8654c4cb7c9366db7990439b94ad6e8349ea62c9dfa85adb8435d0cc5bba4505ab4106df8414768f0cedbaeeb8334869733e85aa6be41b94a21d276d3b769237e44f8ee373a869eba9f6ca2bc852056334e42beb3348c7687c8689ddfb6d3acd484b4f2da5e3bf28e363a683557e76cc2fe9fef44433899d93863e22274d7e157ee0188be6f53492655c801b4a29c7bde7048d798caf9c47566556f732b5ea080345fe0f92b3b93b4c354a1f3c8b578dc9ef6bad9249472d86ed2584de93eec29e17bd38e989442b60a178ac720b935fb4ebaeb4ed1134e8378494206ed7641def210d4caf2b4314cc6e3cfa7d3eda5e7855ef27c7c49fc8f53a93500ea757f1bcb4e97778b3866f9719d83fcadce01d31a0c667c5f65881de57bfe5986368ad8046fdc1a596d31a488835b8eabea80ee55ddb146881af35ccb5c8dc64913b8dc6c02c44e86bcd40e56737443c49d6bb4bce501b264fc104a522784c5cc94c9e186ba8bffc32a6e2985b6ecfdd6e373669b79ec620c4c6ea27dc06cf8d032e58ae3d53c89cae8b144c634ccde13f503edd3beec6d2e16e65487ab4ec1f92e48498a06e35f51ad8251bb5040d88593e87a58be0abcd8b62bd911caa8685657bfab4dff389310ab3b54efa8df4bacc33eee2a229ea8068a391bea8219a7954fb3cef743c22abb2c29fdf86a7b3c84887898e6493e3d0883b8370688b7d0560eca63430aaaa3f4b44d7ea887e7d431c266e09c7769a9f328bc7b2a53734739f97130a59e56c3d57893dc3fa7ffdcdd7107f67cceeac7f3ce8062bf640a8e9da5f6ee5dabaa57d92ce07c2db567a7208dde9b5f84d7dc6f658f701ac71c71454195d99f634f4c81b344fb83ab3475693d6797c5348c798553665dbfc1cabfb78d6d1686139a8c92093fec685d4a04da0ccdaf36385e53a79c4ccb7380adafe30038c8f2b74539dbef444a71b73839707b525dd7a2d1c4f4c0d782e9c914487d0594b30adfc7868eb546bcf7fad089f7046ba8715c41e39f416df74c4fd3c5f57b3122ed000fc614bd3d961bf6edef3961c258240e333a8494b5ab3e52c39c728464d6915c8027ed6cd44f13f1e37fca383d3b94d545bab479cc1133ebe67634bec1df72b5972906f8555baaf35e7bea2c664f616945629cc391d42152ab00639d2b6d5b3214f66a997d1f376a278778cb438ee47a6a82c7ceb103ff15789d9f9297616f356bf3edf103f65f679dee6be385ffa8f457a5ec96dc01388480a0941328eb96039d9de7a3dcce34f39dabcbaa131e892a48fbb80f78961f9c440322b49edb03f0e554328eac7c0b3ceef957a82370a8e8169cb24a81595cc89f95d70179834da375d55a1d16a7a8fac8e7da64508c97f4f7a53066ac34d407b42a6be091696351b3fb1f12c05e5429cb0a14208336e110ae4b89fc9b91edd0037392948e7d3beb78b880d3c6d933a73bf909593a0654ea18a5cec051cd17c25abb7020487579a98f62b49c2969e3df7407f9bbf0b01237a0994cc7312b0992cba7566cfc2818db511d37b1f06781b3dab99db5268f527123a0366bf481faaeca57e16b37e27758c8b83125049f3f38681ba5438a795021652b5f81c02876c0f404b44f06976e368aa2cb923081e3dd07781562ae4750bc5f3809226ae6f100fb8f67faa433b66f8153d6a1b846c589b471ea6479bdb05c741dabf217a6177f2ae8224bd05b46de5f1a42ae20a1e641238f541fd282dff3821414890600a970811795c993c8ba5418a8732b6c8b8abf738fc5ca7d32aa3f87884021968a93cc271a490de61c5f8143be65485c9f34f0d433e492bbc5e215cfa037428a51d5921404d89aa0ba6181f5294d706786a30508c5990ad24c7bb6a70d6017207d3c03100a222396c44752579859e07315cf9c397549708901748c6958cbfd41e9d2880e9773ff03808480bb38c36bdefaa5f81f85700fac88ca85829e03d9bb845227a0a799b156d0952d0c54bd5b010c565a381b55885d26cd9e9b82d21a31354c17d2bcd43d93946bb58ed2a57c13509e9537fe879714c64cdbc842e93326aac0944cb3898335004d0fc9c81546086f29136227efbc798032aaf0cba0f3c6aac788886e03c87245964c99c18e62c008d646621d127856c7559370f5fa26301321bdcf502d1d12305002b2ae42e61209892d7b3afaa6cbfa9a38ac097cb26c4745a4eae395a1b10bf80829d1b216b4da59fcb4a2a57d4070ac2ab59a82b6af3b0682b53f9928f7759ce20e1a09042948ba966cee8bd176b2ec6880c063b3ed6d1160fb26714b3ae7b44a4ce6c759555c6e478c0a71a90b62a8cf8f282a4f7c21c31c5becac2595a766a977c886009e9414123e5723e101e667647bb9a2489b3acd17a81ffb4512516893ceba8838949e998043713bb41073013d487cba107f31c84480a0ce4378732d9446970716365278f70719da66ddd8283d62190530566904221b383441124b6f3d47103d64983898f8d83a4fef6489b0c08a11b82d30cc4d9eb4fd0d99085c875dd4801e3902405f0b292b8487a72867e67200c9231ffdb43e2048caaa203c7883218f9a1af7a365a19b0d2fa595a087b2afa1f16686dbd24a98b931a5999483d467d2d264b21ba527ca419b6523fc046bf7fa96bf0a277af5094f3362dc863b8bc2192e5d78173d77139d6ad07e091e7ea507f2a7a9bf982aac812f736c787c27b04e25d1cb74d5d01c3fe6aa2e7248921225632a5033fc6342495167405028d410bc42c8bdb498d9a5260693ba326e2230c6040f332454f3b2020280ffe6bb0b7021f4ea6bb4c06980b62a9b6c89a935ac206b13e091c3c6ae609417ab8c66b7bce94986e92596ee64b08a53844b706f84731755ca02c7c49906cbbdce97c64019a52f278c2f286eacd5a261f5b502251ec136ec0a3c697fc30e8b59807dff5dced3d6bef9c96bfe3e96e658787ba3f6ffb47de56322541a2c81f68e2825c74cb75ab01d4b719d6e1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 +ciphertext: 33cb33056875df21862840d7123c9d3fefec700b24a5241c24492dc094f644b5b601b974ea625b315ea7efcc27a096acefb7be53e635497185de6170320d3ca22cf41c1634fb16460723ba0da2d9c2464ca557ffedf4150e0a71d7f0b7ac64568ca2eec8a66e16f02c92f313666e67e4a0de221b3617dc59fc32541c5839325c48e7cb0381e1366f8554c1569a58e0427e3e516a5bc575438c1b464900d2f05bfa20892d6838a726ec8ee5c6e2e847a781c606d6a28dc89db35d7346e41fe8742c15f22790848a95e1648684f77d21ecd2a7642be1cf37cc1999afaeda5bb025843b4dc9a2fdd1284f5ebe880c6cef05973ef6fb939e2d39c5083d9366fd862f6de4d761b67fa99b1bbefc1a71eab5ee2815452c411f09def608c236e2c13ab35122f24ae529a2bda8ae80f66d326f646b3e9cac155fe4c765f18b2aadc455902f0f9cca178a0215463008749e7c5a64d010959842e00e830bea02debeb3da2f3f7297e03f41e4d304818e5e7854ee3c578ae69bb1795b7d62657eab867f182db15cf79f789a31377afc0a8a0adc51d1a8168ed9c531798b66b8e50b2bc4c6209eb19b8fcfc9de357653bdede452dd7e80ae3a7bb4b9dd50f384aafa3a85c484b8d5044f296cca7428109f4d6370598a483eed28c58d6e401765f9679b980e4346799ce9834a60c145d74e58c166a487b4e94640041af88eec4ff9606ff0476b48ed3c188257836e2bc5770b313ab7782807c8f387aff9777d16d5ab2439b65e9fe9d01e8bf1d4df96c1d9537dd1ce1cb5f51d14d05332bbf0d83f20087088800d4de838945502ceb034f77fc2d7aabcaf3f362071199369d64e5ed25378d39aa5b39e53814a5aa7a3c302b2f4808d1477dd04f695104a17355dfac04ed0916097bb6b4365d7ef07b4b414729a52e75278434e2d69ed838405d4ccca22cc1fa61b57483d5634a1c1e250e500e6e5c2c4a3794c0e201a68d1fac6a27ac079a79e744727fbb3d5807100480bfbacf5dfcf594998bf8e2c99766d4309bc89aba138dbc9051e7f3396e9767651c27948e04097cf2a175326434be72e1afa89c0d42a80600cbfa275a8a53c860135d54a4076e9f7276007a12261ac24203a22ea0e2f414951560aeef26a00e193cf42ccbf49c4f27e2a4e497f814fc165637c4f1ad890f56de8b0b6973f8479aefa080afb0d91ba777c58fd1ac73215cc225df9a092301f23e5190efe8d3d634f356bf170959ad1dbed270df0cf2671bdfbb2d12c15006651910b3adac8bbbd57512ae149f0746cfd5f4d9e0e6b409db6ec314a21025aecdcac16fb2a36789127162f1eaed305eb20a506c61fdb3e5a8ba26b7e03481d461d17acb86741f81a19d6af0a18866d04fa346a3c6bb6ff72d828df88a1290c018d9585f3ce96fed7787d91d153a695852bdd272b29688f4077dc3d691397f5904d9c6320bd1a748ecdd00fe7f1114adb2e0dc33c34035a7aedc540ac3b44f5c4bd9bde63cf5343ad0bdc1b16adf13bbeace84d642253ef332a92ed483dd9 +result: fail +shared_secret: + +# Private key not reduced +private_key: 4c1ea51a0bac67897ea9cc5d7d17e855bc8bb375a18d838016fcc506bbbc7af38473f4f75eb5449b0a5b7145b49d8dd626f7b6e5a6907879c542adc6f027b7403a5fc25b42da3a7c9308a51e863eb346c178c469bb37d22cec566df469351fd5fdd84f4f0a798439e3a974a7f51cfaeaf35e37673c4af5fe592dc7ea843109f4d3ba63f9aa8e8a866d50eff789d4c7eacdfc34761c39ae23dfdadc300bc6b3295380d3c6944223e00e43788204a41c7539524fb5b5bcce2ef7eba5be4ff0a3f5c9d884bb09ea9e23f551a444e527bb98e6b12b9fe0c6fca2a054bf8fe346c2ebdee9e973900af799d6da1e9c4599cc37110460d27b8a5f84ed58fcb62a6fa38143aee0377d6d54d6635d6200fd44c07e631c47908076da9d6f86ca3bc0d5f9aa44e7cf2344fbcf37a9d81dc86ae39e4795c7978d5f0198b25d0b87e4f77e01b970e2858d2664fe92eb356c276e7e95bc780e9c4f9dbab93ce39bfedef59b44cf8cc7e9b5b59e8edf4cffb8a4a5c5892de8d9f593fa5b4c745a3f12457171b735930f50788d45c0fa3e1378c4aca8388245484a33fd1ccdf0ea665e60da9f29bede9aafd220a8f86d9e8cbd4d476e7c8bdf6fcc27ebbfd5deddc76982781ca59d73de086771dbbae3398e4496a7ab339e3c847f64c537d80c9b6d3acf5e623b61fc28da29aa3271f84a1bd5db7e678143939ae50ce8d33bbf52d95e53c5f5ff8a8a408acf61d887585b561c3a69b088388f88532c8482a20c445f4d362d1c4a342fe1d8f999c4ff424379b560b5ab4e6b6560fe6e0914e36a27774ab932342e7ecfa58502cece6feb7e448ca9f3c76a536eea4b2dd08cecad984f368c1d4522beb4e556ebed5cea78ec9266df3273cd6ba6c492bbe9af2704b90445e0ab869af5d9b63ebbb8c3df6051b9b452d5c1605a7c4e6dced3a930aeb63a875d56e20ddf3fe450a2eaf99d4ce583f5fff109cb2837c6b34abf6b063aff8fc86c2d49d7335ba486ff8bacd39f49c3554c9ccfa95e9105aaa14e9d39bc695c873ea433e39747f4f037f9383b90780c55eeee9ee06b63185fc2c835b0c3fd4666bbcbbda79078af70bbd670ee0ee2f5d578cc1b4589f3ec22bbaad3d4d44c1cb67707aca78c6d7c3441fee377720a6ab1c5b13f3530bc83d2030d983aa6fc1403a20d388b2bb7ee778cf8c30ad76ffdbdc5c94e0d04d289fd6800cd3ddf1c34b139bba633cc690d79042b934ecdfff093bd38fc9779f694197be60dd35c0b5ec9f56bc4768333b07c4736e5c41ded48582c69f066ae08bcc4bb3c58fae435f6b53f8b533af23d9a5c9ebf340eb4a315491ec6d671becb7f6d42456ed31d6786b2fe3360d8e19ced5955c37336f49bd5cfa7e8be5fad1a6d2d5faf6397ddaa148ab0f8476e8ad9309b52955db7e75b95988a66f037574ea5b1f3ec3d2d8570a6c46320b3d286196e374df8923b8af21f8847db9b42d6e8dad7f698044144d5c206de4331f9ee70f55da87a45ad049d7beacfaf079b148a9da5a8ee1c4dc36837b9e344affc5e9f961c45a837dd6ccef5f42bc5c5089d9c83f4df7dd184336210f57603dcf29489a4e27b7fc25cc0861962ff738f07cd3d452fbf12855ac02f5b26bf54883d79185bb36d9c3ba85a46a5f605706979ebd66da03c15f1b4c25b886faca00b16e04f87b773d0b8724bb4947c615344f9466f78cae8d049876c9f7143154abc47110b0deac571bbe83577f577046830031a08b465b86e1c341c82660818cd2f8173c5c558975868f0281470f39e737b6cf964008e040382b290795254380b4850db27dff98838d9921eaa8146022937e36af6b030b8919bfea844d9d602ccb3547d5c07f612c12c3c179ffc30fe52c9273b5c0dd27934b5a41737817be0739425736bb0cdd267beacd0bd77085cd2794947051099c3848fe0aa2bcaa18f6a18afb626fdf1b977f376ea74a9cbd638932600efd84fc053650474c801b1a8ed941cc5444922915173ec1971698172f8a61730358c751d2d776d93c866c47802e2ac19c7c092aceb53996c20375b47413a66c06541b4343c548b4dc5341ea92b2266d9c0f1665719f62a72650414940bf3a20a260a5953d578d5aa48a2b670aff7512bf6937e49052c3ab8ba07016d06a9d643081dd52009b358ac13c3136cc65b0127e675bb55b8598940c054c8b797d37312a1ae48120934a559ba31042e160ddd13c744d7ac5dd614d198a33253b829016fae7ca51d397330ba1aac557a8fb56477224324924276aa52b7000f77db547a604f6d7189ef83071293465012b6133a6e1209af3009a867a46bf2868f8ab8a932784b76084998e37eaa4496c661a42e9802f5e1ca947c75bc4a572562733409757855031c9627152c02cd25a9b9725adae909175b27c53c6233e4480cd3a06954afed889ae97a091df86842483edfcb5df9a365929b6da98917ca7b025490b416a7abfda408f07429244a9202a23d23ea8ae96bc8ddd747d1eb9b79a3cf3610bc4eb56f9de38c3fb77db2740504e85107f46896202684db8103b1c488e9b731f0a2bcc40b563226d05946c9fcc1a4e287628bc4985189e05a5174709f00c43eda4897429773140b30bcc090ada25c91b8858f07068bc6c154030f048c1a7002ab58e157ee5b0e682877372426e193cbbdd3c63dec0a725c90d29411986a249cb30ecd981a92519ece4074f18ab92967220ac1c963503a295c570d7084c2917ec9b6a4663a931d6a505d11757ab2935fa708e9b6ad5fc1187f3717c6a4a818d57cf5395626c8a3917012fba13315902391116ff5015051dc8d07ec0716356d20a184458b4089a37fa9a713aa35c8ad1635a7fb49e6bb44cdf4628a3b84b9869dd760262cc487f44a361b9c1106553338cc5dd71c45c37a3bde98036f45231dea2a83001d82203b27aa054cd1bfcd215f477a7e43d31d946971b0d3223868922699b0d810b6fbcc834104bc0ba2cc7a50bc198616468c212c9b9dab2550282a9b88f8a1b6d006ba801544b62564dc05cad68d7f6b143222a5bb28bc9cb57788d417fdb73bd0778fe0529a35190b0912623df81a7387cef7d201aa007a199735bc3aaef9706c6dfa1b0256b872320459951111b90caf3202ceb8c10a480addf08dae881eecd0cec08a2adc61c20e8c15b60824653492e603bc3c203fc35ca536fb7c64084112c878741b83870620eda2997f38aff953217bec592eea7947e8be23fb627251c13fdc9bb0b705491151b8197cb07ec66dd1d49dab7f9d23aa8ffa435f2cc7a7a3a1cddab6e37ab7be45fbbc8aeb3fdfcc0b171aa975028f96cd47fdba421ac08e29a0044cedc29fce35eb85109da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 +ciphertext: 61d4f41e6582007daff044918721194b5897db5c463d6c48c80ac7c37dd0b829bee3d0aa6b7af4a6acd827bf30df2b87f4420c984548f057c1eb6e7b17b19e4f61aac5ff5b8d3357a2a7df2356d8ccb697004f762df71a854322981b85a6a753a633305a140c89bbb6b698db44ef4bbe945f03718f9a9f55bdfede24104a10273321c5a2289ecb78a8d2d99dea4aa57ceb1d1179f0c71c8bc2d2b16f7f41eced3819351a463f302c5b35b45658154326c8787c555fc0336be1aa05081f4d6aa6649f7924b0e8e0575259929befed461636751fd0e27ddb9bd92a1b2f8cb718961cb1005bde873cb4489d02068a5129e83162b5fe70a4567458176e9fd2f0a5a27b5ef74a081912d6fb9a83a07cae9cf9442e2d34d076008b99275a7d49fea0b8f0261c0f2743493493113c490eddeb07e43eade98b15cf24b9f7a081fde0aa77978c41a62f9eb78b90d914f0110cc8650c01de496c81a7c88e038cdcdd8105b800a2b5f313ff803fe776f237f94415e74d6e61727862c46d70eeb517a71a5a6f754d199cdd70ca4369a4db39c9c6112f4f9bee3987c72e855fa937137468fda364937cb62412614536b837064937a5d626906ce0e83b7466cbb1a2242c893df8606eb533295b044ffa108810b85877fb3b5ab3294731372fc55427536d60676ac3d161f04a0e77f919313ce0271aa303b08fb492a1895c5785bdcadc8aeba725fff3b7cc14552b367d265360fdfa1e69a6a5d773b2b07cf5fb8d95f7356acfb648c22745258d80726d0d0ad8f12982521b4de93f081e483956d5fa97648851fb00d9e4f64c3ee4f4d7a8c53767fd9df32ca9ea70cc1180287e5ef6a77e1d44f97ff955d4feeef98d68e83d3eec6216b6c1f534b3b95b8745408385326ae23410e1e7f5f06eee0494800bfd7cc5d0640f6b39eedaafe0b4d95d63c474eaee9c5ff4cbb0c87b7e8ab20b52796a0fe1836b6e8be2afea81164c6cb633fd6c7743adbbb64522ce69ba9b4f9cbc510022424d94945e0c865bc66e3b7ad206dcfec359e42d5455a933174bf720f97ffdfce647b6cc8a33e144821dfa35aefd3320aec898f6c194e2401a937c9c746db08075b0e1d9945c771b5b72b62d9f226adfbd7feb4a9c5ca838ba6fd4fe88521559cb10af57c08f512d88245df43987c1d6c9bb2fb3d82273b7190a46be158a0a1cf6beebfd951be29ca7fc2e16117e85589c22cbd88a1ee965c18933698d2dd948c0ca8776cbd6926eabe94ebb105e3c67f466c866d81bb03ddc8e11f0bb10e7d0f30b95d94cac0d5649d3fc44a5b9f6727c1b5e70791e134ec0a3e67303f6adb6ef3f57fc968aed10b13c731eb50189885b3f8076cdb2cbec95d9f2070d7e3c3e5a727ccb56653d82b1a1f7c237dbfff2b4527f97f6d383c7c4d8f5a4826521108376dd22745384524eaf90c7d91409fc003ce9cae1afa72562a7836921d3193e8f2ca8c1d35959a52e7199957f7d1b8993c2cf39988337882ba2c05a0eed718651cd2ca564b8daa895a9060d460a47cca663 +result: fail +shared_secret: + +# Private key not reduced +private_key: 06e67b30a9fac44ad9b667ff7b4764ea9bba94bd5cc3577a8f86f27acec99a1d44b7c57ffec6c73a8cab986d31b32c334318d79145f4a3e5ce0e26f7dd1e495ab3ea081f302ddf6e7da8dbdead8542e3dfefaaecdfffc302d6eb3aeee9c0a9d9b338529b89c4b52cbc521ec20a98db494bd1902ac47feaa041b7f426b4625da3a79704a239138eca74ff24d382dde6a0c549676bccbc641edea9fe7dbdaf31e69ab7acc5a9d918e090cb65397e532fe4887994fe7dd4ebfb98f0f22367189b31d20fd2b7d5de25466fe499e116cfc8337a637e964c5d88c5e85fc9a257d47b0bfc0df93a37dd6d80d3f30cc6f8ecb5997d999b1b7da5fdd8b9588678d1e892c43dbad5aabe0937d29f173b6beb512d59369739ac8f0b5fb1663a8754f6ec3ecf1828e99b984c6d0eb70cb56c2327d78c393e5a35cc749c7d07af9c08a3637854a3cae7f4e8c93199dccc115b5a03adff29b482c7fe560ea778abc9c0bfcab0f4468762ee7c8d265b93ba7928af868f78bcbe6374723646a838f1a59f5c548679ed3bc29fe6d22ea952e7b8acc32daea82c66c76cea9d5afa7f793ebb969b877a85a4aea886cb57c58b3d0e19ec5d136dfdf6ef1685626d73bfab6b672e95628cef7071897d891dd7ef364982ea4548be95bfd79323874000e8e79876a61b0589fe769e7193378d7ee49627acec65616e8def08f654f486628ccae574f9fef7f96c45adad9057b2b185d12dba705a4735dc9ecf96155146dc53ef3fa8e87fdd1f7cdd97add7ba84b370dfbbad76d882467b6675b77d838b95aa32c60bd5f109b1c8eaa181c4afe3cc7e2f4dec8c89cab8e4587fb472dce46f3a8daa62b6e526b79108e6e1caded3eb05746d58ac6cfa58c4a474d2a54f96e8617453847ccbf9603849822eb867f9aac8776fe153bf3f8895a6edfdf74c934e33d9414597c176857955bc7bb3c5999e57ea63bddba696cbe57fc0fdc71ff637a65ee793a7d8db26732cae3b33783417ddcd349da437e8cbf4c97899add0ada7c5415f54b9f9d94c5b9c3e3eef04ffd5e6469c478ca212136c9ee79a428bd0371bf139bdc11cb435f93c4ced43f6c4bebf9a2991f9c4c285bbd9454afcae4797affed6fd9594a03dd7b8b6e77a18bcfb7e7106688c7c536d955b3db2f730c93fb19cf84b3156fc6c56f3527b7e464d85aedb59aec591b69349b00668e27db2667358daaba2d969f50dbd486f0448768689b2c5450e8ba2fa3a77e9f9d80dda636f0ada081576fd3bd320e69cc00e7d4693d9076884ae09f6f6a9938e76b52b453eb8c563411977561d57ff85df1d2d6236679c09f98b350f6b43afc7794d7014396f9cab89940a3d66d76ee61fb7f07375edcd39c4258a1c7a8fe62e868a99c18cb78b17e78334e598a536dca52e63bb7d5296ff8c36dbe9a35ff16a66d79826483698bafef6755ecba3b719eee2c3c6afc9b9d204f417b5ee2b6ebdc229a4b715eafc6472062a440cc7b685ffd0aea93232ba945e3ed07bcb58bca99b269c5cb46b3915197279cf7bedeeb9a4e6ba09ba38573987f30490f58cd9e85dc9fd87be933a91b9c59717e3b5c6fb660eac8556488d942b4bb017e1b2c93e433fc1c8ad8669776a406d7ce80434a94334b45589b1866bcc69bad27ba323a563f47bc34073496a468dee6013330bc9a219452caa35c1a522c45c498fd4ac5564627d564d3881c731a9856ff7619622aba6f928beb9b9373b1104e2cd2e6246bdd88268c1b512867ae4ccca21140f0c046b5e5817fd64a2f93383c3a5add2f62784e2c8e80c150a1c8e1a8a47232787ad529333a07e0c512332799d9896a6071bb4e4fab647440f82cc85630c629c2c2068037948b575a1693f81d2a045a9c5a5c2306e83b911ea1e86db5763f13ca6b02ca8905b50faadf5440bec7b49913b371f0c5786fc585dea2813fa9ced349d9fa32cb5030b5efc274522ca4c6985b9dbbb245465a8849c4c78688392b0ab5bca98b04c7bf988ea84292c8505fc7acf90199eab7c31c13252680c71c9c333e91a0adbc1bd00d023c8d7a7c9068c3fa9b3cec75234663a2b73572ecc71e53a8eb5889860a336f77bbcc1c854d0c3c61c65216373bf2603a0ee72af8f747bfbd7401bcb9d599b6cdb02c210010d0425917b72891c33c97e9b39a677010d22a784003e1b917dfa3273246acbb45a79c7848143f0b583781626ba02a94922490c7b3695a787d9ae22e5470d32cb68790d75b81c55d084a43c4399aa587e07829510220469ab5e6381517bc9059353b68160ebcb0edf969e8c317442c4058423c3356b34035b9761744fefc76145300908da3c13f95eb3065f2cbb911437cd24f815197c0dd3f9c87e3b54432c50de1c7549228c5f9c32ee8c19fc4cbb04514025645e0fd1468dfa274e59a50d62c560eb051eac35bdd148ef75b0b05357619490cbf08b0b13767557c5fdb310da985dfdb9c35580217067a8c68491ba64307a618d272363ea346629ea6885acc17733a801166fd404cca58b591b68b2c73a9e890a13bb173584d2b6db351133e75d258995ce46a8f798a44ddb8526633949e5442435c7b3c083875760c00614665c4a2ab92c378863a3755ddf681905ec2044c331c4b976f6ea5335bac739c2be9cf141a9f3ab3f669c5fc49d74f79ba066a7d03b0c2036247c86305bd45194a00e33a1179ccb8d05b374deb491bf5c1d6adc4506803a8c65b18dd6621a5820ca93c339dac2bbc098c22b4e1fca3cabe58ceab66da6a35191a29ad82c74abf1c823200bb197015e074d14f224fdf30a51bccc015a152b8443892b7450734b34e77356231c6a8016aac430db0a8954c7a416b43d49120fdc4017cb61c3bfe70fbf24773412b6a91375f381658d57677fe571c3bbc800cc80ac597a8f2c5cd1f19567ab1f4c797a68e6133507aa90d1ae096148d313b48096ab96298c33c3828d645a28098c777cc10ce068c035a71f7a2a36306fbbc311d3d14214c042871388dc899ca2116baac1aa5cb261af35a0e255b228498295f6b4ae171dfe21b5f66671af532253dc724a893b933829a0c275c20407898911472a02eb484d4ad5b8d274c00bd9377f3c497e6845161868434c968bd847ee90c2ecf600867cc790b005061c8d5c49339dd3ae23920e65da2a19d649aad1b722552e07f51cca7b87efa315b6191b31279509d78b0e974860ba9f635283412038efe3ccb2a0c643c68756149a03b50f6891b9fdaa099ed50d7a012c0175b9518c15649396d94ca1266979893e82811af8c142323fc3d38b8b5e554fd046d93317dc6d0ff28990721c3f94a93024ce01b01c0ca55d634c191c4280fa71600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f +ciphertext: 45c095544a69ea32a56f9b6afa5ba17216c47a7edc519cd2a8b54b4359629d49832fcefb5adb0807ee8cb2be0a0066b782a14240462bdada4016a5ad2bf71299ef51a026ba3d0318b7f1a662b45296b20a5a25a21bfc67cb9c9286b659c1b9ddd576494e63eb9a70369b04a0ed30b6757272b7a99a591868569fa52b775facee306d7f621ba1fcaa3a5058aa7e6a65349d4aad045b70b4a26e6b5a3952fb89600e0f1edf1fbe7dfa31838a37150ee51e1c1af5b2325a4cfb2df17ecc52f42ab5b0db2032a2d01d9a77f7aaa6865d2fda4373581734b78d53fb2cf3946b9ebb0a677f8b8bcdec169ca03e928a08d05bb019c18d98ec084066b2a4fa3fd2e1b4711a44dc786724ef7c58f4bb6314b0b1486933004f51c55aca5a397d9eaf8d5dc557cf04d382e969bf96400997b046af19d5fbf9d6ec87b69c071cd6ecfb5d7966b29e3cfd7e3b310b6459af89e93f5fe3bf9ddd8f84437661581b6403c582f22ffddfe741c0fc0ba51f1340f4f32bdda61cae7ac83ea2213018fa308b3b38ecbbbf5ac3b44068d7bab95eca5afc736fab9ff8eb937ba5c8a9b5ac5abf9f368bd581ba02e3310e254ad718b16dfbd900ded9759d909d61d2e25a27abe04fb63caf38f0d2aa0518463cac1c35b22206b4aac9de635b30400efa4ea7d0fb3dcb4072b779b211cafffe97ee756e7ad57554028bb2f515eb6bc095e64fa552deeaaff90312fb6e9819783870b0c3f83da7a3f16e38fafb9221833993aa5d0aa968cc0a4888a43e5c1e1794012789819fed28a6aaaeb023467dd152204f8f7543de435c31460013c082d6f3158da33f5ea54cb1f838c1a9648589c3b09a51eb8df1b5a6c8d82f62d7a946f6d198cd846049613d00cbb57199a00b506114d230a86dc6899b3ddbc6473e6a20fc90754bdec551d0f8a42f0002f14358e0285aec30db88433b1f6a6f70798cb97cc9100a657f401d4661f82383ceb83625197617c021ff076eb9b08935fba9d8aec0aa12aa06db57cfb5574c50bebbedf9ba41f68ba09b0bb1c73be5e29a1e467af5d2aa29cb84bfa639386c1214d6801cd2ebf6111452227bfd1323e6ff880539ce0eacf74da99c75a9fc6270985caed1ad906c8b1451f399ef09e4336d596a89f1d071b372068d38a4741250c5c38cb2a893c793a8cbdfd9d78e943f728ffedd5e0a9efc228f7dca5d9faaa1052569ad2b3ce85a9d5be96be63790ffbe3e7cb05333d8bd56d5e44080a52dc00b516ffdf77594ef0e92e591b949f3d477cb6d0f887bd43273ad0e945348cacaffd5132a642c1c43fe28bbf6ac7cab18b45b8910d1a107d2058af017e3fd67c7214e039451d52ab961ce2712df6ebe5cc8f3c00414e5a817d148528d0e08b3761b774589b00862c0e1162b463b1fe43d294eb2439e80e35edb261856099f32fb548d494eaa4014de2c5e223aac793a3a55da97be77e998ffbd51ae2ecfd1dbd0fc92f9fe99e510c329a6c74fee225db455197f4be18efe98edeef43dc6632917cdaed3aa8ac4bd6f613d20 +result: fail +shared_secret: + +# Private key not reduced +private_key: 101ab759f6afcd596d4445b4e4ae907b3955f81641ccdeaaef79b22ec38af6ad81a67db67dabb410aa3c799f5c82384b5a3e908d14792633d522da5cfed372e9fbfb95add625e74cb01d98144572a3d9ba32d875c9184989d8f3a4ff3da4144938b88836e9c708f5f967b841402d6758f578b44db2936b798775b7abad9efd567834f5fafcbe7bff9be1fa0435e6f55ac84fe9e89f54e166cbd8dcb95f0874f279f5dfcb93f956eb2a48925026651b0cae117483d65b3f57c9d639a39b17be535657d7a01fa0d897c51c06d392ae65fb88468017e656d4d7caed9b31977043afab6783a9b448ae7e9f4243dbadc6cddc013d3c9b1f308bbaa5200f48851f6e01346665f67345df698aece3159a316f4e75dc63fc75e4dd6ce54916da9ae3f763efc74dc9b9d4d7d8941fa34e493a74e009d42e44a8458e91663d573d4b372fc6790b3c357a6b6b075b87e7bea82938d37db4ef265c7a493abae425c11b75e4a96c6e3949520ea4b9a8ae8c76c53017adce654f37cad882d79c60739a4d275ea4ea0d463b2f4f1769a40d04cd1c2796ce2860844ac6fbc87b00379446a637f868b73bf3ec5704e930d3628babb45bd5b9712b33bf5637e897c6bae6cfc77e7dd87ac5da66f0ca04cae154bf5806e124873f4ca93738a444801cb5b61acbc6098b36747bf79f6e79bd893a1e6ac26d4e606e570dca65832ba04c8c64da99838bf4e8b628d5b148fcc899559b6fb7333dcf126a701a56aea6795e6ee95c2169ce82ca352a5c411d89881a3a992714e43a06d01cae5f9f69d83bc7dc69fa5b7ec7f036ead24a47d7bee499fb4d57a52c3627257921afe5f21890217cdf0dc83b5dd388686d4a6175c417a6fa8a95e3dd5aac8e0a806cff4a855c89252c392f6acad14d4f9445b0b88ebd27ee5f4cf4a7d815bdef3936012fe9955797ca0e91c7c794987c3d1e8db07c04b14ea5a6ad49bd4fcf7720e68a8e855a042a8b2248f1dad9b53d0d912ed9f249fae5af56d91714759d04b4734a5c60d979735741c9acaa7c6fb413c439a3bc7a661dc9c6addaf2177bc61d4c0c079c68ad3a1209f4ead47e1ba8575308f3c7334e26bdfa1b155e0b5cf2b08fb353ebf02627b2e4949a3c874c7207c0d96480c33c90717f3b9daea21123f1ff3fe70544c255e3f46cfaa6970f64ac14f169aff153a7da6df7a46579da7348c1ec77b997bba243ec7508c88b7314d7bbcfa9b614db83ba7e034a7388e78b010ba663de5eaeef495ae63569bef349c57baaeba16b3fc363245f599475f8ee41d2df462076abe317efa2566c85197bc7abf4876461fabdd82f57d1eec6e9cb5c4b1c1697167f9fe3ef7d8599ddf08f9473d33f47bc721613d063466f2a8c9fd6ee4e87374002bf56a6b98d3c63d9492ee08c1cb6101a6bb18a8bcc7bbb7c4f78d13dc7f04368d655c849dea22d8a79fa787613b653ce1ed6723c9e908e439083a7f12fb9c98b6dc7d39c2c7b5b61f4c8dc0672884ea641a9684808b20ff84a9b2a569784705faf758d0e76517ab47d2fb408bbe6ed2db84afecbadd7ca8243f107e4ef7e6a6135365f86098fd9a66848ed3641bac2f1c933baf967ea4f65d40847976b68c49730d245b5723b9f70d99d171745edca3a65045bf6e0625aa4955fd125d332ad33f9a3ceb2313ad50c97614d038547f22a135a33c06c61545b9a26b46c41d1830b83d0257fcba82b36510199224855bd1a837a369a2c823391b1f84e54959a06938513681d97f34eeaa7bc42eb13574b29fb785c457786ac69ca22f644a1d53278d4c2e0f325a1209a0ca40fc32b92e906650b484e7d92cee99a078f5090d2fb60f84b47dd44224228443d36219a081f9956cd7983ab223bcc094a0c65414cc2aba8564977b147088ef41aba589653e535847450c762517dfa462037c2c1457ef3d1909d0b79d66ac6ed9803ca88a7295c4a3ae53cc77c235cd8922b36ba8b837f375755326a960beab71aa1b33a8b64d6076f0889424b1875ed6316ed420db7e02d731b2b3065c7e80115fc1406c125b651c2b4ced28ae9c67cc505bae5b747e5722f4729602bd1aaf25ba333c29ca011ce36f55494204b0f70895938c9c4658044740521097d696c8efc045709369f88c1cd46bb763b957db8f48abf1a07f431845c94beb7a3a68d42af6c2c3095f829de51b37c134f977461aa2818073682def71a65291904f0c214b727fcc7b522c2a33f7a2e07a65926fa5661172103b390fde2814b21273b318d029a112fd389d0324506d280be8c49bb923412f4c430ca82f58ca8b7122907b986fe912c323b1758901007067153db7b16168f791610df534aec8050a58296f58b7549f0665e13918c784da2d00da79559ee006566050482b2a13baa4884aa83351753cd7a48e6385292a990ca559c8d630a7dd4947e428198b06242179c369741fc067dec411765c58364d32ba655350530a4aad934a1d14b76f55a19ab7f2dc60720124a2b69ca703030b2320dcbd459cadb6662fa0aeae170f880797e2bb0a2f24e8dd1442549ba4510153640ba7f093acaf41f67f55e4269260ce2aa28261d4dd4acbc2a4a134751261991e7b36183387893c5900e8a611894c76c26217a390f86e5068a947457db75e7214b8b05a3c87251cc2101d7e6115c908d2721aab224b038c1b9c348a3c04c081496928da726c0d140d363a427b93427f16841c97447698cd0f360529725ec86113594045e143659cc1a0667832f40aa7e059d0b1389048a75429886095b3ec5a646ea12a09424338c6ab729a27e595ac7784169c6e7c7bc208b07a44cee5940f85896a7285845a2a262da092d1b0295821975754898bab492530e44a410f35563a1e45775613192dc45df526cc19b6eed8186e6f706e233542a4450fa6c89bf993af5699dc0e46965417433d5b1882340a1294d4b229d42061bade4683f8557dab0603fab1bcd956b29ba8a2af60093654f09e70f07eb3398f7bed1354a7982416ac40860538c36722ce1b37322c4a888c2359080704490b613c9a5f7318566a37139563c40d58c055b827145bd659c8fc6b7908a071fcdf0b17e4351cf3bcd9e8cb9361985c70c49bad71f860b36ae120f62c06f3b34aa4942985d149db7b13e1412cc1ff59dae21cf50017883a0aac754ae6cacbe87a46919c05752877840556af8d56fcd848f982b415d333fd8640794918ead0121d12309bf622d9c97551f294c3822644834b38fa844a035cb5458aa7240f750287f95feb1696d88988eb0648c3cc0fa9d4277fd9af8c579271f4c7721b12640bf755e94ba06204982458a9be11e1da542ece4f3d284886800fc8e8e0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f +ciphertext: 8ac1b83c47c4869e81144ba3963f3e4e1ea682e982500d19d73b368d60b66351c0da3211acf974bf952d3c6fc8a6586ef9ac89c7321263838ed84d8debd7fb67eb0aea8764d97cc371eb71970c0c189150b8665aadf4396a344ada63e29364f2a3f7199d5e1c0b5774bc87411e96a6907e193429c9cb9ed2f127e025cdf9c03068afe7647e1e433ce627b034afc329168bbcbd930b6cc52316b77697fe20797f178e3f16b45ec4a86cda556abf7c6da5d908b7975c6678edd0d4049dcad34c199f9617ebf5cde3dd3c84ff2a9f9f95248973a7c0cc5214aedb637c170b83a8cb740acb2e606a3cd524378ba26c6b019f3e8c4ac43eda767b9b135c52168cd0d548dfb0c38a1a212ca310905c4395dcd0c9e529e3aa5aefc0b6182733cb8dfb269c15d4890018f8339794d5e54939072b50c922d6543e6d3daba38d4dd1b3e9a8aaf4eae22e9f28b18d7b7e32d2f60321d3e4bc9be6cf80af16159ecd0683f840fe83112fddd0a1d85333069b818c270507668d1a0d74e018dd8b2d989502e4446acb04758cd4d00df4c05265d7702e65b34a6e2df3c77231bff33e93b9fd55148544d80cbe5b3a7bcac3a247a858eada0714003e2d9776c95dd3e2e869de54ac58ac8997d750ca6b29a9bc20fd4912d7889fda29334f7270c984567d222653e51105e63ff7b04cf5ec4de4a3e20c6ffa6b34e8a47a17936c684a0c57871a5852565f5872ce545521c832e6259e2a66234361e73b858129932e69b09eb5b7e7957bb7e8359e9257c205d1da5e455d3c3c64beada12d15e34a6ee44883054217142634a578bf42c9df1bd4b7d74d79b40fd93b3bee4e47b8a1fbe570c45061f55d6c181ec57e7cb7a845dff1bf48939ee9ad35146a0a7a9c0564628a4bd3b6443a2cbbdf82dfd11642816c130bdc4bae905028a584964c91482fbdba6b3daae7822549b04ab83087d12ba7c90b28bc418eb24165219b36c73aa32a4ee1b2fb97d421398b187a0bdc1fd7ebd508ef0afc01a6dfdf82cc37ed7c0bb771b792c6e4a5d4b4112c941b3b2066e1b6c63885861c0ecac6b20a206326283ea9d375c6aeccf179d5274389f0dc49183f36707d72ef6cd7adc3d544c7311f1983a44d2482154c77b43f0db3a1e4c4ac78a52b163425cdba002a29dc27bd9c191196e6ac0524841c3f11ea13782cd439b26b1a795c9f9629e0efd153af705bd8a35f1d70d3c5c8589475772307dcfeb6899f0076eb9a8f3272e72bfaee493ac1680ef2855741916733074a2be07b948bcb3690f965dabd4f4ad98ad5be62a6d4b23919bf3525a5c87839707e9bb7f61919deb787dba4345c1d58dd6771f1d7677e2fcbf827fab1508fed198af0264c47b2e385d5083d2f863619e368f4f3a154ce0caf496bf2970382e42876fba4797bcdecf5d47d8af4c78870c0afcfd0c7612f005af77cc8c268cdf9232a8ad5f9c373160125af1fece7654e0d9fa665bb1b59f73765d6cac9108ed7baed5a7c231fa4011ebb0bc37ffae8ea2b11e5f665d54b394b5a324f +result: fail +shared_secret: + +# Private key not reduced +private_key: b6a8be5c6c9e95ceb41b5fcb1165b3e857604eb4e3dd1e81354fa518bbb3e1d847251d9f9c1f88f5f34d06c3aa30e9e3954c5c053486b61bf5503f50e9aa656de7e553679f602efd8e8c7f11e6b1917fab3794f84ddbf988dce0d673a424adc203fd3cdcc74a445ffa2fd3b934b67bcfbd74a349b8524786f7def6d72a384c0a84fcb8304bffc3d65994e5095275df715d057b920ab40219ab156cbaf7d3e4fad571235d5ed15a61dbe66cd83bbacdc9b3d4aeafb0e6d7d7fdea3f2f7d3109a1ea14696d84beb85cdcd03bf96486fa37fe53a8c8f73397fb0bb6e03437a191a59439fc3e2ec899ba94ede42bacae534bb42dd854283175548ab055cedb836b49fa5841ca69867ec4794c7648c65d5fba44b3c57d925aae29cca8584def61b6940bccf8b634bbefcb51037c301684f9727d469cd7ccf39a828e3ee0f8f3b9ced9e5c74f3163e9db2dbbc644864a6f8761e83371e2c3724617b7ccc893561337bfe7832cc4a0636ab872fd7fe9b93b7179d29bebb7afcbd2ab249ac3597e0bdd52b233a454f6628d5fc6727a4267447bf21d64b62aeba6a4b7eda764de23b0bfceb954d3c5882432e1ba6ef1b94eb1464086fcfa5bfde67eb8b5ea2b40c01953f223544e49bb5c54e174537cf8953c74e3e8a5b4b6190881cdba5b1305b6a4ef528c4c88261d7fe323ce9e979f5d33aa218efb6ccb5cdb44998aaffb8e67ea71cc458537bbd8e9a696d644c713bd266d7d4c26a39bbcc11d58a4155ce161cbee771986a4e9f3dc9936806498cef9ec3ffa819baa73d21d3b868772341aeb1ab664ceaa82d60b328e296325acd39f1f798adb66e62b827fabbd32d7b29f6e5ad76cb5690550af975c2eeceaa8849566cc8bd2639f009453d1fba689cae4d5c68d55fced90074de4b47a84944714a9c11d55b2727f7c64e566762459f7e381763981776665c3e9d8110a74b7977679fde1c46d58dea6d6eb2f508443ec0f2479de36c334cf6122ba9fce2b360628b5b99e98398f9c2ce55b12a6b80a3a5ef0199854aaea272f3a979e6ddb9ad258b5ac936b74d496b8bd249412176b6a7e82054b74440ec2a4cedb2fcbcc11ccc89ff5b40f079818ce86893bb044559ab646626f683192ad3fd604e606ccc6f4a6f7c09a821cb4f7e92ffffa1f34d5e9f318863aebe864670ed9e9b5ea389ffa990bbba6fde292543e756b64a229efe855844185a673c584a3cd897e1b73ead8ce548833c03447dd3fbfe7fdcf615469cb6ec376a3365fa6cb79d6e29636c48ad68dfe3ce5540deede37dd194dd96a13d72095bfa34f82f2eed0c2673aca13c1acdad1f158aa3a593d0b78458b75c8f34ba4f949eafe255dcd7e5ecee3d6545a6a693e91ee83ecac1e77532882d40ea482677fb4c38d6b79f01f19f0162641f707d2290969d5c63eaf13a133563e95ac5e88b4ff4e1f8b9c69b5c4fe6b76a6731fccbe6f58547799bac3c9a6f3cc9a13bbdcd26a50bae9774acbb86ce89450bdeb1694da8c3fdd7896e97f77ee64b4e886d8daf2f66e8a9e55b135e81118697dc6fa4a5adda27ff40f1fe8739cb43a4d6219c679f9857dbfdc73d97adf7b3e81eeb3b38d8b31b7da8e6503da95f778ec5b4027af8ee770043be600f7a60b3b370bfa6a30c846c475127924071e3120879e2a158433a2a3a7791c204912da8576bc2722eb9e38139c198915986b58a9671fb054a81443553ad74563f587b226a9117c133ddc10dc0655a7d52d493b7b3db9584c49b4d1f41c06665a3d07383057ad70b69f85b6cb2682238120b830681794e042d910467a24091d81322a08aa1d83b0861113756615a119503af837eba16768046b7e64ab5940aad4da6e3165ad036959c39bc69070bd7f074776089aff76b33dcbb17bcbbe65b526c795b65943821d5b52ac1044cca52e3403a02604a1b4d9cc84e4b72b2c136de898a12451d8c74c280a67cabba42dfcbea68455c5f45bd3ec03bbcb3f72604df70737a01683369c8a57091742c60f089a673da350db8ba39c2a1108aa6a4e2a6f24b13d95f004801b240b50067dd34b60991db2a42de3dcb2c24034d0cacd24c890cac7a134bb183c92b5d66c7000a5a3f80898754827c9a7cc01a1550a9cb4f4f18d5959be0ef84c35b54468c55a15d274f996cb74449d1e5b2f88bcb6d00912a9305879bb156bbca9843610af2c5193363177d2b5867240d207819498a98209c109273dd44a4f2a06549335a63afb2660d212592c417b426268485a7e8693f865c0a7960e073153d5e578a74b34e9c3a57eb20fc825ba59e56359a627f358a4d7127be7d571c991078d9630e1262402a731b14b9f0ee4a3fa4494bde9aaf2d4603af1178b8b49a649056fe314caa92df6d816fba591fc4961cf0509d0dbb02ea7321ef75aeb20813e33a9717478be58b49fca3130ea2b54e62fd3243f4e240e54c08d26c5020a9512d2536c486772e725267bba974f3a451bd50f29c55c7189012473ae1e5a7ef35c0b479679f1a71fafb41ca6d16b39f100201bcf2515075a1c9f881a7ae4f4733b149e7c29973588c161616e9918062236332cc67f26a65fc72c78564312c429cd1f3854eb98c0ce91be6d9a24aed0ac65bc5d805490e1d8c86963c8adeb8755e0bcdfa473ee23037673773c46911ce0baf8c81bcd8047a9d19175f6bc31c2997c62c502b934d7651fc51562625538e24b235c4c38cdb82fcea4abaa963b3d67b3679b51a21cbd77228338a95b4d641b5eb26644a58a59abb0a8c0afc8894792b3c6edec9ccf7c29c620b9ca262c634621d225228f1503609b548f0418648cab5b9609e7486d57e5824c538037d32319427a3b077703a7368270c9b752217eb04b912a3843f4afa829b38174bbdd1cadc8c74697544f6229068344441ee2863150716339716ea6a8245a3c3c142b986b7462fa2417a413ab718ceb196f15f887a465c8f901c55db4718ea58c71926ea344c49635149014297275baecc90ad1c95c75281eb885264f11123ad8cd7cf1968e885220f0964f25510539be63263a4eb6169f7319f0086fecf996d2e852f139b500dc1fec8824430505a7702360d81823269ff4b2622b54b7f917bb44714660051c31d9b39494a64a86c15c516437c4a437f41c0fd5922dda52818336d93a8c750203fd859b06e127d8e33b52c34411e4199cb01cbd70b8ef0180b045119129aeb04398841bc8261444c963c3fc11c8dd4c78dc5a8cd902687e36aca5f2667abccdf2093e5ecb1a4f09769a8251104731ee68587d0a470e2ee6ab99d3af13f3177695d9e5b9151d87fed52e287992acb897a07b10ada1dd83409a5ccddabf9d7cfa50a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed +ciphertext: a63cdfb094b7b97e4a9d4f637a4b2892b308753a34686dde8ad28e5ea9dd44bb0f2b07c030c2bbe2587e1dc8c2247606fa5809d53982cb1bcc18675a7f6ee5323a12a87137236b6347ec7b6c5b188efb541b1f0809abfe697e5a3b8b6f864bbdff986ca416b6b5bac9a5b43358b47368f137a026f12984ad8b2df97ac5b43467526cf1c4766cb2b60784608998fdfd2929113be1c49b8498b03c8a690fe5a8b9797529bd14c128609e037dbe26d1b3fe26438866422c4aa8811dd420ddbc47218c9b923cec43baea872bd5277cf3ed48cba237480515e2e807e2a0999017ae70cc76cb134dfa894f780acd8d5470b055b2a96e58956dae51d001c4c9c8888bc6791f99284737aa613cb9d00dfd31b5d0649e0ff3f11718b89b398d0163227bda245ecc75756867de7beb78d6fd0bb0b713cdaa1d482a6436ba169cbd4783b5241ec44a5af9256ea6e7ae2463489dc80787022d311e900b42a09f43348c055d21af0d486d5b2c6db80f9a89b82adb93682f6e98539acea6520cd7d476b17ddc5697ffc64566445f0f90b8c187c0f904b812c592437472ae0db4b48a2b45f0d699272f7e8243a6e42e68c37c331e7b96dc676e532ddc01458df6fcb2efb17ca4b07039a0f80c7b03078752fbfa6527eb921350894f4d398238c9f8abbeb3aab93da79cda1792123d4af4562d29f05303bd90ecd47dd9940fa6bcd7377ada7b5ec3f0ab7965da90f73734b8728c4dbba594394e0461b291586a09850981b961ad327fc01a578a4cc49ca14d570d15a23989141c9dfef64fb1ca38ebc92654104b983f793cf9a553b6b422c88c7c38c524bd15bfe35559752f20074b0fa631f6d49f973b4553c81c206047f48b49a0fecb63a4868fd32e295e7a56a0e683185748bfa3aaa77676ada8b81ba5d1314574bf17a11c1b58700246a7b323f6ea0840a9db60c2b6ee1f49a06f6b6a11dce4a9d3e8d352fc82700169d1972f65273fd1148d7c9fa978167521922d614de3bef02ae3b17a183245ef9272c1a96329fe592db73821b899cdb93e4f33e31a47d7edf275c7b0921168de50c3984f7ab213682a031fcfca95194483a58053bd644268a2dd82b77ce458c37df183509e32bbd7a6fa64c04df4c91491cee59a2dbb7a3e1202d015d7276d145ec51c8a89e2abcf8125439af8b7a175326995a3f543754fb3b3b7c70094c71a37d1100b8c3bf987dcce3644964e3812b5b7dd913afdd98002692358364a1e9697a1dde2200c886ebd0b3f8faec32c92fdb2e8c83d7b04795baf19da6a54157e75bafe54026001c2e76a31d1c6f92f3906145e57ae1ba3a5c63cf59980f0b5e23555584dfc654167a5995fa4215f19469d1d729bb02523dba785c5ef873f244bc944c920da91bd702c56fa4026ee33cbbac7db1cafa48b2445491e415027824929e0e29be3809e9a3304ce69393b83db0e33155cbb3df4788937ec988c8fdaa704b5dcbf580b0cf125d7d1a540ad382508eaf5c37cdc2a44d63a18b586bbb633223933a49a65c47a98b9 +result: fail +shared_secret: + +# Private key not reduced +private_key: 9d4548bbc5d474e5909a4beb9fe69c38aee7a94dace316a8fe4adf68dcf488c4737f5469f025bdd6378876be73ea5b34119481b8af3389efd937eb5d85a566c8695106645ec3dbebdc24d0c103f30669b2cc09ab763fd5ef2bc16a7ef78eeb863d2c58df1c77fcdded6f298b890493273e4323a49b99d7d64e8aa44f148616aabbaf7680020e406ab7a3450fa8db6d6aaaef560deb8f01ae4073ffd4febc3d2a48afb196d8d03aa8c1aece1d69eee79676448ae658ee98980fdc0b19a513daa2cb4e5ad66afe7706660699dc5de69e45367a6696e9e7e4a38ce656fc47d2e5185142f65a6ba43d892b6f086ac0e6bbcbe1ed4869eb48921936ead6c91ff3af541eb10f36f2c2be37a5bb82b73f47d60be32019d1e93acf5e3466008f60d7677a0fa8f5d2ca85dababc28bf4f3f5faa957b7371685e5fb56f1edb91d66c8ec33f87857ee9edad62d915dcec26fa8a6332cc4d87d937dc801ff773c6664fd74b85eab20ade5e70bfe452a7f323a4e38bc54cf4c6cd294ea65ef48cad8384a957b42895f3692ea3d25fb6320df01574b28aadd45ead8eea45fbdfa8bc79fb621d5d4dbee8eb0577aeac98e0274ffc0f2952170e9bb4bee569b74e92ede9a6da89caca94879c801b43ec115896054750fb7ee1208cdab2dfba8c3f8912bbccc2494a300356041c7ce38d43880b56db58c78ebef1b41ab4d31f7711d5d88fdf32b7b536c00db543be5800accc5b36778038d7f1bf3878258d1817ec179eae63054d3afbe29798bad30eec64238d7e83cec37e7c023b5e7ef4d4555393551e91afd8b7a79a88c37aff711c3c2b79c64d4d5a85ff722643458f4c6cce4cb2556963926c42303c85d87861f4055673b7405c5b6760bb52919f90168c50e7f599b798b2f6fae19f3a387d69d25954c2572bd95d6c761d2932d5a79762ff5e52c8a64c765b232da3ddc38039d7658b1cbdb87d574f0464875b7e5c9585abf8b4b9ca9392cea6ef647063046ddd857f791ec07535d6222f8b8078787975ef5843c175eb86883a73cdf97edc6c6b79cc917cc7e0744b44a9d455cec7a0c829e9b70dc755b8506003a86ee3f7694dafd59344091a8430d4705ddab1dd849b96e7f38ea9bf63696f709532fd49b0833840e373336d9ee9a2fff9e498eb23868ce36db3b3378feaac8730e69642dcd68b4a6b17adc83e4a484efdd7b6fbf46483624207f89a754a73e3a8cf378eea45efa7393a3baabcbe08b23ae9887b973b6c653b1cdd6a5cf89327eff3c365791888b7010795f1cd564294f5b0f647230c669128b9e0865152aab66666ed43cad60decc51a4aa7a1ffd502167b6903ee2e6b8b6c73e35e9eae1b899afca84ca89bcfd49a725184a6bf2f89152f48439aa568d9c18f59f1244de793aece410ce6c0739d89dd5c5ae4508db9936727d49efe7385bf61e9ee910b7dcd572d8689954a50b4e711f9bb170abfed596fe087d53603694ff7bba704e88a9dedf0e64119e9625957e6c585a30b13c44cf97d9bba5d587f85827537688976933569cee793f24733656b97ad6475024cac8a0f760fba36aebffb9096e87ac68dfd26ade8e66dc8773f4eb764d42f73255d675fb7e5cc1fd95c3f6bd0a7d713568b12232135a5896094834cf450d789ba498787368b4e15f1b087a704e8e327d631290177add97c0a0d84820ce367dc515fc362aaa98aa7911a867a3789f69a5b68bbbabf3aabd037b5160a3f3d8277ec47898ff3ba5ddbbca6980b5ad47c59236eb33b2a9c84b212e93d9e70aae78a4f9f6bae592ac2b5f96eee627971d27389905b215869d9f4b706c379aa802b5a99abf754ca9316872f033ecbd5b34f72c610c14037540a2c86ac7eab0c3af84729c48610615c9956751759660b3c7bab57146f7b1088501fe14b2f59141b1bc6302d88a35fe27e0cfa18c1a22a9eb517ca6060f25408d4299a7f46c458b3bc38c4794bda8f9079043854179db0071af69c9f074a83438874c882cd18b69b0b2009497b6fe94a9264470be8256b49b6c353374ad49c04b1276fd484338796e4389a523598f3776291512e25fbb5fe98591320c1bb47c6ef3b4bd1d62b6997b5561bae038854ceeb41b2925c1f1a81a702b57b2815f62aa9eb2625ff3512cf9595073ca623da43f32c21d63297a491b28dd8b1361bbc91b40b34a65f1a2b7db86b0b3bd21b26ca5795b795e355b45d1623b3a9731218174b50966d6937ed057fb10b631a51b7d42072a0845be8553e19901fb0eba35f5142c75857f642918bf24544355c4041102d8b197b429fe548433eac36c42077ed787f8e631edb856d4398a26d536911ebbd9f9c22769c756f858d180b6b51797fe9ec0833c908d9ab2730d937b76a0febb68fd84372c96c3c05197093e26d01219c15f898b2c7ac75d11485a2a413a065be744e0908b6340155a244838ddb14b74c578fca2d7e6c4e15e68421a568e7e39a4a04231926768ac4a061d67550a8512e780198738bf3e2420cf75680d1cac07798c01ca06102cb2ae5c9b99b62a7349fc8a2c558989b68e3789c2c7074b476d18212846c8a8d562166829a36587eafc95a362874e812aa951a6995f5a94d370afc9b64777a7e58cb54b62a95476ccd323073d6e466e6ab909b4b4cd840aff393c9391902f4c05bea833d254207cfe938669cbee478c57ff4424004003d151fe5e90413924bf1378419e08dbc46911e2ab2b7f45dcde5c549f679691632c3d9bae26b9fdb85c7bc3301a3900386873345974bdc007f869155df79cfc6f06c39d8bc9a99675382358ba25836a15cc222ae78e4a85a19c5da9912e48128fb37a7f386c0fc86afcd2869e292ca9b521e6ef9b12908ca5d800ae1a7a3a7070766e2802a947c7edb3452a377d9c1bcdb152d37db41ce7c74c36b32c59131b1b85f9b68a3b66773ee4a2b81f12509c33cdaab4caa563e9bfb3cd9c4c72354c1e88423f94169e18bab1a9798cb99031ff852e79229630c8f35459bf40c425af7cb0843498a3cc7fda53d932a07382018de07808aac2b4d60a1e242beffb89489ba69a6a26446180103c11f7b22361f651777b997b76ca8f5a25b97291058620ee5479e92aabb218444aee52e5c8294d578c709158f655a8930fc197f765fb3790bd62a5fe11b57f273775da27fc1b5128663c623f5175513b753543bd71aa045e77e4bd42b7e7baa5ab2c4d3c41f4db84af265acecd4906fab897b5abf5af66b4c4a0b4e783b417c6fadd71d34ea294ccf8b8c8012edb8badb3437b191165cd639bcde9eb71378e71fb551293a7acfc3d283541d985e0abd85eba5315a17d6c4a7e4f248673da60c341c29fef072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda +ciphertext: 07ff98c23d28846d4b8593dc2723f03694a5fdf7ae5770307a971e8aa7a83db47b5f9606c68e1b0a9d8d10ae26be23993f8e804c6851292c6c54ccd1a178084f8ad379eb43cbb0974fa2f5cdac3eb90a06e844be6030af49e5405be461d01598f264260e42e5c3ac1b5d9ab05bb5ad77acd5fee7356e89f5a1822ab5afeff2474bc562990e71bf0e6e1b720e59da9fafdae4d67ac58534dd33612c66c468fd9a9768dd6d6a18ced44bf35cd2887cd664176f08f1c9b0a122b7330ccc37a7ab99d5d57ee7ec4b7ead85a7a789bc6e4124e4541687399e3feb3036554ff903a595ae2d09b1abb496390da90c49171fcaba63d32d5816b43c9efa88c1a9065056a526f139291024abbc01af22511032e93f89caf7f67bf180201263a9714f335ab3808c0c3c85a9b4c9daeff295f7600287db1cb6014f34c6878d60eead25ebd39c5b27b1d5b8067b419abafdfcdc766db126026110f2b52821edb2895ceefa379a509e1c29b885582c216a3e3a7e88c0b15fa53a1bc4a2c3811d5716bb0a68a0ce08ef73a1cfc7601eebd70471e18a9e63dcbadf4a2f514e3edfc9a0ffd5226545f9798fd1588d9101334cad0a84298abf9d892c2be45398c0c67a1c912ff6c5daf42343da7d2d6f0f4f37d5218d46565a47b83cfc84dd0a76a6c86eb77dd99fa003bdbdffcdb1005160803ddf0d499a362e3c31e77491b9253b4fe3325e217676a2b6f525ed75810c37ac6c09bc9df8f9c966184f5fa3a123fccc4cdf24b886c6d7f5fec31ea0611bb3c43a2cf51b50afab8cea581a2a9e9214e7981735e8ebe4eaa8e8a44db119bcf4243d0b1a86a2150e02be402d61b98ef77cb462c8dbf55c2153ddefd08641a0d76d8bd301a59103f65018abfac4a538c12723269589d5910f658eb3c6041fa8c0c5e7bbb389f491a0c01a1853917f393ae5d90ec14c1d71d7b1088b808818d430f83d76b1d6722ab89610a7d39f13d9931ccf3c90a91f28fa8d9b00120456239aaa0ea648c1c7221122c65c822e879731cfcba33720a2ab082029ad22b2499e399c11de442bf090f416023bca3c99396a03d1480ed3cbf78b1efa5ed494baacd544c2531d51c252983acdb3b405366f88ab5957ee476fbb006caed7cb148de870247f70502f75e52b89916a14d43d11f7bea21734e3e5658109db2096ec2941adb83298b36640d81a867118a2d2d6d29f713a7d359cd3965254f05cc272077359d8601231fe4e51f72136631e2ac8269a8732413fcd39e7d5bf0793a88b69c4d86986fd2e5d2220f7059efa44a2826326e5a775a8d88965078645bef91b8d4e0c70c62964c04eca0710f12c65f6e315af8602ab8ceb13db5e4658f08b4fd8bd041117f6d1c1a4d39d4af92ee05310ab0158d8db145fe91d87d1ffea0beef800237c02ba58e61df6bf2d09f3cf271d1ef4276e09d6a8182441c8f94993a31030c025c015e9b6e918c776464a1783b1c54b34b6d2338f35871f717414f85ade6d528695f6fb7229e1a9cc1c6ec8ef89c18a7abdc43147f32c +result: fail +shared_secret: + +# Private key not reduced +private_key: b24eb7d0d3c420b8548eba8e72ffa75198f024af938a16f8fea97eacc45bd20adf89f485e57355e9c58b5774651aef53816d924e9d32508a508a8a36392f54b598de77248c6734c7f94ec30993dce19898244ee6c058f889cd3378b5946eb53e4a59b190c6fdbcae73d4297405f9cd189c76fbbbd786fac8a0f9deb3e8ad68a7f6b1f8b32117509436d776ee43cffafc22a5aaec749e7d8dd2cfe8ab16345adae43b6dad4bdd2e632f799c77da62765e84c51b353593d277d83ed07574ff8a478c06a7dd8e7affff684d0d784875e16fb8755dfe3d1985de01bae6523fc2845ced284d9d975bb2b0c97ffd8ff2db4be3d47c8a5fffddd147307bdc65b3ab91bd6481e17686d3fe534c0c73fb633260a3da93cf5adeccfbbe1f99185439d19eeea303551e0879d825ccb08b7e307ba37b8438552e5ebcdaeebb3f37da5d80c317979da65172146645a543ba045f1395e7820f8669c9b4cddfe7d5ba8586ae495d75fdd89b402c97d43e285d3b0c72eac388960367a428bd3e7a903ffbbd846e4df2b33180843376fec9af398975faca43abda16bfbcf804c340176401deb80e39959747fb5348ddf0d6eac3fda17586e6825c8a409dcf227ca44fc88e8618e6233fb1b5b882017843a6c6eafa5e93b6375951ca70ade7a525633c75333450cbb38338a49309999018dd99a788436d47426cc89146b4b0ed79fec981884a4bb2af7931074a88bc9bc137ec41ffa8b7aebc0ca4a24e8ed24bc7acc077b97cc47532efede9f94fa8dbc522f78f698c77078788f6e9df67a661095b942cc5a349076e79ea90139cbf9d3fe6ca4c704f9992fb8af13c0b97d2bc5fc359ea6cd3bc599c9eb5de469c3a3efc14b7c71fdc4a85481cd86d8c3bff525edab1cccd55458bada4f2bae77c1d544cc52c94d1effd2e9783165548ba05eabd05b490a6f6da8991fb48cb83bdc3a25b34f3c57a547d39dcad31857b40023b6ab8baa64c5f34dc64d3bdf3aa647ca09bec6f32148e99db47c8de41edd7dc804b722559caa82e4184ba97baa8d2a86d4604f9d510295b222d4b22955402ea572b2fe22205ade3de524e57b85acaceb777d86ffef18fe5ef4799be7374e37b364dd2f832e883e605c9c69f4848b3237b51ac791d4a5a3ecaa5eedf9de914e2cb6fc5556a6389ec98948735e26f745f383c9c59a99764583d19c72255454b568b909ade0828b7dd235dc02f68417cebe75df8960660a01ef2c0b492169954d03dea7d654e2164eeebe5448c0e75daced314397a673f865cfcc055e566b476be03773781b35842b6583115f00e1cad7475bf95355268baecfb1c7c16a68d2c38b92b6841c0b545c5e972dd7794110b5d34cbafc9678e67eed0ab1c6a1e0b5c272e48f83d762086bb80ede7aeb3d69ef76c72dee0db4c80cb2c4fdc8c779496f23a2d731906cb4553a00b5dda3878afa719d79354a7f3e3795ae77698668fab278688f3b21558306ee684490eb626cde7203ab716eee0fd636f4fa3c2c3c56ed43879468c9cca379d3cc771989d8c54875b0ab7b35ec8b774b5ad15d3ca7539eb1cfbf01a959b582e56586d6dbc9b8f1d1f4eb8a57c6146b1932cd19a0a94ea266f441b6521be99161877b30c011788cb97cb439789a67d476d3dd265cae63cbe43cb63aa124b93071d6812bc662f346481f974a73b16a505c48b9608359a3c035135258029a18b0217461830785379d3355ff3968d3c63a46685902425660b232b11b93997e60ae0a5bb95a27d553081f393040b1c30ec87535ffc6fe528b1e9866cd1e69520e376e0071087748691dcc057b95cd4c60707d8b976d6a67af4869d960d5466a9f3251dde92cfe8a0b03ea2c43bf03fabc9c9b5d97ea2f558b2bc0ec1908335ca4f2607cb04380a830b245f8b43fd06098269bf9ce33fc07c1e68a05f63560d70544eea4c0bc528859a5b09683b8b3d3c6842e6458061b7ddc4b23ec6ae83d557e5c4b1848445fe253b35e52102517cd38030e6ea28a5e1a24bd09ac6b83c5dc658d11589900a7bb09a963480a2d76225ae55bc54108fb233785174b375a184eba110e05762e7f26139dca4cb197620156c06e47e5b74a0970bc6e18b1e1c919a6c0b10e7470d5ce09e2719194da0440ac3aacd86bf724aa841a83dcf64c8e1f7704397a4cd57bbabc9a0cf940e97e8921211006044228632382ef48fb5d3b65219a5a6983ad0e48ee39081f2ba1103bc9c6314090a31aa34213c0c319eead96b865cbc98327570b965bf00cb9bac18c640273d342cedd11d72e2078399c458068439a8a27e388d3f4bb285b63992b5a4354122ac298222e39d31cb886c4958f28c5c2f37384632b4db216b43ca6246051fd704b5969c07dbd525ac6a479e730f8b11c5d41111ac65764fd71a4f43be55c563cee5c26c69cdaa485d850c2126f2bb16f5766fe86bce17535198ce99c2a66918af96641b2ec74be2b61752076a2db330984ccd7021ce360a0c488143648389f492ba20ac566cf401383a496991497208b760d36da6896bb3587788597191c3347539be92b78cc6a2b0d8eb4188320ceb8aa6ee1018e9f78f4f8097ae7527ec947cb1b27dc8a86ee200020127531273983bf66746a7b731464a6b1524b18744a8c606648b2fb1a4339d5a15d7f6a5ea3a1c08122b773ab09564792fba2e28719a603c3ed0850f2d5045de3bb93dda7a84e692c25537ef695787fb0889107395f87c6b836e138bba9f4a711daa421a396f556c26e3778f4d364d5b1844118b367d78af37836fd7a9637f1714cd9a3e52155b0047468b5420cd5c6bb64138ba16863e18b4368542800b378537b5cf303cd2b191ccf783719142ffac1ad0585b1938281ceb5c86587c43b28c49d9111982ba7ac567e1fb64d8e3c450730305cc2e4e12cc698a728977cf1c9b373f051c17f1935177ae90aa8856a5a24d18a08aa942b4250a6447c35289cf0b334af45647e21b5a2153a8a05a38ac4c728a3350a15502cba347a876cc4bd12034935bb3dc14435930d912aac8a787db3ca33521637c5159b015920100b416d22c18d6a0a52612c7d75c15741b6954ae752c4d31fbaf1b483b6b6862e6a983d5465e3b7b80e1654faca5c669e77295f86263d344031b5ea7ab99e714c0a821042bd9512677ab9e89309f41cf47944da1801521402f211a6076490ae393818ea2056954b24a624e6e54acb7d5bbb32c14b339730af6a72647a66f761bbb78012a76540763cb29dcb9b8c27a3c1e43769c31af3ef54f7c8062d713cab3803437e759a01ee76fba1a5b21916dfe025b78fc6d4dd1d1541b51cd3eecca90ae52177431b33c708faf17b55a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad +ciphertext: 90739b108d664dcc63c20ad1f2f37658b96f819a6f7801b7049e8c2bd4ee750da7d7f1b8dd47c2147ee4e282af69cc1aeeab6a8959c0a714aefb3625ba5c057c120943b5bc7b96b7bd2e8f7337bdf6fae024a2aa667c556c7f7fc62bb303e898a3f73fa2b0757302cbcf3097e56b123fb920ae88b49ea1f76008564f2f0ff54fc6e36979239d446ff38d85f84fa82a4a3624a98a37f29651613cfdc323e7fba7a913997fe19d0e5e0f825a89cb37e423f348a1d78159a90ea4aa0193c4c7ee86146e3352c80341757c2ace339fc739b33313bf3dc5b53941772e782eadcb558ed4ce7e14ec16334eca20c7d12024e47570156955b38a30e817eb139c00969005013f941bdb7da9476a29148599e679154c13b23ad1491e5c9c1b3f04e2ba290c3b7cff7bb019793f358abe6353bb6824bddd156e1d97696a8b7e32aa8a39226a29cecb496198885ff3e3671f9dec9f443c45d5fde1d1bf1ad9b54062566aa9fd87b318b6c74a2f78eff5205505321a71c3a6a1254a90c39c39d44783a8d3006744802cd64b6b5379bdd8184f6362709e8a6faececd89e25e88295e509dd8f20514c3487e20d5d32da32693146e23dac996f7b019ad79c6abc01b617f2669d92881f8565c95e3c6193c4e813fa11313221526b54c795841c115544b81903801b6507662f2fcae5feb9a4e6903411a69e5453ef822f8efc570e82b94c28a97038c32e4c08db304dff48ce7273cf1d8bef89fba35d886e05703dd5f839bb253b641fe631adaaf43e53ae0e62ef827636cb3cc7a579ce09a0b184621d147470ca5d92a97baee9dd4c1200fe0206fb50081472d9abd3b592c98cb799044b201bc2db832e83f0727018b60a69a640fd67f095d9f2e1bc42d33e673220d5f6d86b2f3e1d1d63ff39c9ed1379dc75c2b3265993eae102373945b049ae2be4b54c039029dc1680b89313ab027fa1196010d0ac8cf29ec39348a1e559eafb3d29d346802a8eb485dba3d6b9cb7ba93e1e4dfa79950d9756ef0dbbb4aaacb902a4c21c02a7a606b4214c8108949ec7c089aad9a63aed4778af6a779ba4b1df5039ceea017fe80fe590cb761ad940609c9716a1e21fd0db62039a9a21cd0d8b265e350f61a982eb167629c79483c5f23791f0b20b39c119acb3f18cfa9ce2aa03981deed204c9c4e9bfb8e404f1899890262c6183bab1133541a4248a7a7e70ace70fdc5bdb21be1aeb020117f635f2970b7497d23197969e9138a5e50f81a752b1a4b22f0199cb53503344d0bd4d90bb3c52dd3cb58cb96d477e8fbc237370a5a17f0665b942363370cd5d5801199015a5430bb23165fefe3eab656facfc5d023fb0f0016493b801cadeec5315383aae86721bde15061f17e4d775b8497b3de3684004d8c960dcca5ca0464a4f60a43893cc75299a477897c580d434c44507afbfc5760839061d481dd264f6a3f07347ebffceeebeac27dccda8d3cfd377a29426c29d57d2367a781801cb227695e657295113a6d91ceda67db4af71f0317a6ca9e206fe08f +result: fail +shared_secret: + +# Private key not reduced +private_key: 5e74b834cd808f44300017c6b2773ff7569ccca7e2516f3711fdec7aff457f67fdc1a8c9e23bbabf1be6de993a063931936a4d6f5af2e1a6e949ba5df2e3aa07693ed38bfb9d98668029e2326fbe5a2cf907e35d0edbf58dbd34e4489ff26e6d5f6b83a7877e0cdc5ed4677d859f4382beaac175377b4b953863b296d6d1150f81d9d5889f649d3a4c8c2ad662bcf8e753b85d26fbd58b7536ab98afbd4a969bdf6db88ebb40d980b0ef49ae56aea88b59f2bf8dd3f99ea3e6b8e0ffbc91544f7173595fac70c0e5dedec867ba0e88f165c8b27f5a00a45407ee8d243bff63f7736f68c13c5b9606f7d0f9d3cc64fcda9497fadb04437cfb7ed36f3eadfbe1da48f785c74d96c96647e482e8bbec9af58cbcac5d484ecad8e6a80038f19bfe5baabac6d2e88459acfb84ae307a03ad2d4791bcfc767dd36b810ca63a75874867498365e4fcf4c0b7d3b06da5dcb2bf6b69b8abe476d2a0afb66966501f6c812cbf4834c3b72bdada999e3816737385df9a3f7d327f86bcf85aa92d393a5e5e6b2aa49694f3f845c559ceb89f645eb825baa59a1eeefe9558da35a05b4537d01c6ce8b88eaf796b36a35c9e04eedef86ef4bc695424bb63fa5cb4533abf2497d49d57652bf2aa8d6b20a9a4de6d75cdba87c14d51219a8c7fbc564ca84f1e5ebaac7bbbb8cbf118a9de51387270edc4ed5eaa4488dd5e76e6a0fe7313efe4e4e9d8e856eb2d0d4557f75ee74988a0ef3612875f02046ea6a6604c6c74dc746bb8cd8ad8fc324be971359ca32e17864987712235f57a03e24be35a3483bcfd1e35c0ec9a34b67ce6ffd291be3d5e8a601e55633c154a83d65e1fad3d8da88bf587542979df848bb314b664c95ea266a880f68c8b6ace84c773cbd73a3e32556207f432ebaef6e6e778d76638607c341ac4fb61d59d4be986e686474878a4d44cd877599689b3524716ef992f938435de794d8b7633da5485486cf7db076447bfa6f63d0d58bb455cb5aded4c99a00ec3e6d4ec3540e6cd269b3093d6e23d855fff86ee2e394e4204366e8ae32425978a0561a5ef347df685c5b6b7d39ecb3e0970ddba9bf9166a91f5cfec7c751bc793a584e8152ec07e854103b4c5943cb3f89372e23cb98f75bae819c71de64a99be45794a6b0073d0f95ec5581a30293542ee4482fa8987dd1ad0bab3a9882af92618724d9ce6438ebca6b9d3caf5c52c3eb3f44ea5f46f6d304431915ffabe1f9f2e67768245fc4ca4f713aafb77a362043cc1af5737af86ea63ff71620e8d7608e47eff5c197fa25cc8e243aca20fa738fcaf4d708c7f2e7ed42258ef3ad74062dff141b7a448ec8bf777ded198c0eb7f456577e08cf56991d47069e6a663acfdca8c95086c8d3a5cc49e294400bcc2fcc39c5b673ad1f6f48204969af47a4b036fe7478ea16349a4b49b857469d115be02cf662afc5880d5924ba498e353597157b559343849ffccf4fce7951943b39cac83bb52c5665ffd26e8bcd6446929cfdb1e4ca3c554c6b9821b6b85084873a4cfde5dd8486aa7b592beb6f7b83b585c9112884756386a36ad4f60b7428affd6f2994d8c66e85b1698c0583717368f7ca58e7645d90baf62d0fdb93b0ff3dac695d23b1a80b6c91017009cfa4925f3cca1b97d1a820b204a4ad5f4bb2147307a5350d0244ca20102b8f800c924bdb5667a5866303ed52e27c932a1d84c637c707537409fcb7515f195e557920ff79a3001354cea327f274edcbb99e66acda0aac52dc503717a3b24786afca70dd84c7c4ed1c1b3ac454c832caa687bef8a96bf6c1182f5c663c1ada4784654393d4c83219c149e31fb0ec1e9afc4297968c80209594aa567c65000a883b32e3fb82d9eeb4e9af65ca4fc0cc1ec794eb2b7ede1a5556474f3b023c45b5d8712109a2281f4527a4bbc8262c9bedd0758116643bc6a85f836825541767595c0b54516a330137f0724a1b232cf0a399e0478f732c543f81b9d05c7f5b086c64291b2d94cf02462df7c0f43eb06319265ae25656b462f1445ca5299166731b114e8458a0a0361b135e6002315b65b337304404a907f3c1d41ec9220055939e11f263186c3751f96d750f3a8588ee14f40b09178368ef03a9526a5444be096c3da8a7441638f64b4fd201e31b34f2c456ec89890f53c9a25b559b47856053227e3b36c16297949c6b11159a79a4344f0759c7071a738eb0f80c25ec2f0a2efe614c7766c9dd68fb488c4e514769d9b6be2d59e9c9cba6b5b1dbc9b0d8e5c7078663794fb4eb8c7060bc1b61286cb173ab6a80952424423746bc91bc953b67908bb34226eb382bd54bcbbf5c60e467652728186c357b3fba85f6b8553c79c730ba51ab90d06ea9edd407b89e0c0a4276ea3698ee5e6a8348a2f9f571c2b7b93f5eab702f1acc3480bbb223e68361fd89a57d1716fc8c99ff43734fc58969d35077f5bb422b859b271b085f41394f28b416565d2f90848216ade3cab7c205ef2f47d8b50b9152a9ba6032322e737089a1e5152387e3437d2190cb9e394bbb6857a1b1ead7a3d7118b0ab8367ba1cc09f910518420a46a18271408121db5dcb0670ed789d537ba3639c530a720ed9f40c023c75b1a8261b6c0192b14843252cb8d713c8736b34daacfa235c9a51468dbaa6f2e4507711344b5a722ae46a70e683c42a9056ecac5d143f9929006bb168ff2ac983ca8b1d99cfc1c8cd919b282eb921eafab2a778b227968f77ec885077ceb7bb5fa13884b6a4bac782b31f250569e0671396b780e810e4a34416166c18c4204ac4124c1020064a257c32369c892420510811f28872d59cf8db48f2a1510a5895a09c008be695699a4845210777146b56093d36960d6c36860cec578de3688bf338a28118a67833f5c4c7d93b8867d93ea7aa99a3743434d236d786cd8e617791bc5452c88e70f1189d5004e17146f3c69c60682c11e78b06b2c0815bb889a17a15eb1d985b601e6c04604cce34b13d82a328f61c2dddaaa25fd9ae0dc83962c0887e392a25c8657d61cc2ffc980d4cc4c9557e7dec446828b03e8bc9a1355dc32b1c06d504cf613235b6b9b1b04c0ed550545bc37e7000a2366786da49d637ceb5c4273041706597236be0a7213cb0394282aa998411e1236ab964a7998055a183dcc4ce765b8756760fff965d2b7c5adc272ef1d3b214b4ac9b543e0f24876e773edc54c105892cd882848fcb039e5223d0c68fa204cfdb793c5ee56659932cab213cd4eb18fa4b045103a1e865b0c567574e523be27974b08adec6d539f37479c61fe8d8c48f62011fbd5a1c10713d42a00a79ae7672e5e321872971f24ff71ed754178d6336b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a +ciphertext: c2ae583a3b4928851e1ceac877a2b061b9ce589c4a2eb6ddcb36e3621e558ab8ff4645e43144e8b58368c151f7eac2300b060e1e7a30718f96edb79aa71acfb804e3013cdbf19e10549594a37396e364c01f0377f675f4866c4be24a2cc513f07edb6ab0c205efe71eea5d9517c39f897ff4345f63a3c88c258582a4747a744c2330394efcff592ac8df852a7d9ff5d7ba994ea7935075a17bff2626849f1ef4b9097008753b814298c6d9603e7505cc0ca7bd69346edae4e9a360fbef3fd8f7b6d604c22677198578a52fd6f5e67230dd792ed9980bacce91e50214c58a2ac1e43f17e8f57670040a7fb86242a2e9fa63d8530a9fdd2059d690b994673027577db5740c8b1089deeea7bac8c2c658f77235cd9f021bd04d38c94c091cba130060850e8743dfec89b6ec2beb45f21a12bccaa3fc0cc130ca99befb6f14584f3a836f56d8ceccbf9f2e51a2254bd2621bdb7fa1829918fe49fe16a95c6d49c2a3508de93bae8a1ae832620e3929382a1c3ae8bc940df65dca1d7f7dbafa3b764422d07a8b3e5d7c0071aa20c36c87c624148d158e0ef3bf8edb698408cdead41dd99d76b2ef8dabfc2cc8331483db9f6c2a7053c1df415c7621bb3cf9ac8370bcbbc8b9305433e2b32ef8bebf615ffc1987879e3ba5bb3a6c57d42896d30cbbe63652c247c47002b879864ec0ae1e79477a5d7174ab3d10e03aa1eaf3688a287d0f0b57c923d2d3b63bc744f922bbbe6d7755beb6c4be7966034cbc917edd85d07a3a725c8e8fb0373582278a0ff79cfd0260138c7c1c890b7171ac99f7377f1f7ceed581d30700b70a9198dca6bf5406fd9e7b04ce809261a3dd0cc32e1e4c92ade1de79413e3616e371fc3a1530c85b687e93e326b98fc767b81c7409f88ff44647a6fa63a3d195b8733f2e13097502b1b712039a59cae990013251564d3421ec1ff48b07fcd5cfbb089210ece5f9841cad8f188b5774a769a8a8eb43c2e122db423630777ab36fb68443a72a76ebd9db6475765678d94150acd6a788f08f243879c8cc9ac27e766a631bffc106444e2f2faa91b5cc5b09cacc8a9f179200c81561c078554c9feb8aa018173b966349100f3499b1986875726ecbfb48abae2d2c205ace430e350a28db81f90d0c7b23526cd2809b721f34c0b46a1a078be7e2a3cea00996495c99911cfd759d6b0c7c6154b20a977e4a8aa7237bafd2f55c590ee6c85ea595d661d44d32f222ecc479305726f6347d58fe100141edacdd9b3cdf01785f6830b80db7478885201cbb445a1385877e0b5020a2acb849d1cf379002ee78d275f37cd518695ecb6a653eb1c1310d3fc5584e6ec663c495dac1dfff668cd35a4ba78f34cec527e4e6e81a3a9f78274729049b2f6713968ed0ba237f4c0d197d0e7d06447ca3dcb3c13e8feeb14fb68e1cc206fbb8e94fb6190a56669cb901dbe770f9b3a2b6497e1346d0ef60acf9e2c0ae082fb364b9ce7912abfdbf300f3896057a130c7cc089ba3fecb416cc40ce3149599a68aca244b38bc605 +result: fail +shared_secret: + +# Private key not reduced +private_key: c2bcc42e0adcaf63bae16fa1b24ff1155e9cc514d490ff6ee74bf08d659519af86dd5eec30a7f93d79bfe04790f8b87c1dca42059c447ca5a382733c2765db41a367e29e75e084c49b9bc5b9deace0eb4ef3cff0f18792927ea10d5a9a46c8b89ccba3b243572088df695eb01dbd6ef61f7100c4ca44d6e88aa3af8e875b863e7f47797d6d699e6e6e9442bf6fee97e86349fff455413ea78d5395fd5b19361cf8f4335edadc6ba90793cd343d444c8fa06da38a132aeca91756848ca59f3ddc871dec22de9a7b5a40692a979bd351ff24d277fe76cafe89e3499d067cb054f9a5735f36abcae48dfd5a539675331352834ca583c8d29c764ebf8f9cbeb934ba76bf3e75a1a3bda65b879cb0b881dda38487558aded3e029783ba7ccc94ac8796a0d494537f4c307310689d748d57102236f4e9cc415aae4a14fcc4c6986ed5c4028bf8053d673f438e1b4e54fd635d7115b990849a9c3ea6153c4d5b6c73f27f6755db5c48986eda376ca0513ee027b6a35cef117ab8cdd1965cb958e6e0a7a8f9b8a781bdd076f5ae7b8b5d2e97510c3c8a4cde0b475d6db23ad9905dad344fdf563c2ccd951a8fd446d68fccc97faac034a27b9d8235d6af8acc3604febcfdd3f1dbba19507c17688965b69e76573d88cd44dfcbca8a60baff48fb1609ef768d4ed3ab6f27c86de78fbc5e829eb01e697114e64d9cebdd2133aa32f886263a573cb3d18743ebaf7abc486c5ad24cdd88df50ff860adfd5a88cb464088cf23d8ff9a29e833a780ef44bbf6ad6cf154ffcffa547ffb354c8476c0c8e35c6abff733c30f38a3ff43ea836492ba26c668b679da54463b68573d566de98afb4a53cf972ea6a5a74940fe90b5c9a7ea73d1a0dec3a4dbc396ddb254d8df7b5668e6074fb0bccbaba8e1011bec42d559839f8d604ac9f3b5c0a3888cbce54cf1eeae0ca9e4fb5474ec29492ddebef2537c4e3837ffabb058993c40eee253e87e15e84451269b6a48911ffe5e508f606a475cac04f1ed6796ac04af07633b6ea63af927c612bd7dda3fbd0ce852c4b785f7348fe39d6eafc76c3df8706735813ff796af5e837c198e2eeccbd0a64b4525420998f35184dfb74e4363976ddbe5c303af9dcd93f27083fe2c6abea1969e8b17ce2b28d7abff485e7bd7e3a7419c6de9b827fa3fadb7907a70589a88ceee6d1b043d798586106f3b95645ca2afeac91d9870758016a5bdf37acaa273c18b6944d1aeea0d255b4f9580e3c5d383f93bb797ef40cfb281ff871b2ce7b2c74b9368773ab747ec2b8720a9e0cfa859243b7a75288c163ba025fb667025433c1fc471e7c9642c4ab105413e0641d7e961b3fa462ec797d6a9cec7bbeef6a64b5d5869c4e6c3ec884afb87b2a98eea470e4dad93dfcc195dcc5b96635fc5a45d561b0359f0dd7df9a4b4bfc39ae654ecd70b57a57e8d56adbfd8f979c1edee31787afcbea8c2a87e5a7b70d8976ae58e4951edde9999f704aee1eebfe994ce7fb117d34faa65861756845da48dc4bb3c1f4b032b35eeefba322e62b67d67ab245533177dae67894349327663c32acfa7531df327be8cc61becd1098969de8168bbbcab459f4a5ce8f63a7dd0e9ca68f43a669f484f27944614c35d121bf2390402bc93797055936a2d49699cdeec2f29413403aa1024d802d97c54aa316707c26a0b432821f63cd89a87f769597cec8356c2c399d3a34115cca89b9df6a55e4556a3b2150b51907ce67b860f697a65b199b370691fdcb31cf7937d1524bef41a0732cfdf464175c95d9092176ce52814d3a9231114cc31718755ccd3a7b3fe69b4290175dc440cd38c69faecb190ca684fb1001b5308fb4c1ff6a55b4be8814d602ec59c2deed654c93a45d55a3e020800e98aa786c76fcf33cea3a7bdbffa5037a171044b1b74d6094d1a3b606009b4fb0f060b6dd1d29ae67ab90c90c25db895c9515fe0a17bdd69c6773518a532ae8ac731e32155500204dae2c9284cc16f61b5a9e48334859357506e2c391d1bd38865ea489e492d8b847a6a50ba074320fa32074d89894324a705dba4e1847a5059645c77063809cbf3cb0555b6be4069c77b10a6c6f67ae1e7c09d603e87a34acd3b814d7b4798dc05acba65220289772abdbd89403e698f3556511e152bc0f77509dc36803b57d08129951ac44ecc49f43b7cfe8436baa8b5376999f6442293352e76ac592b95804217817ad5a75a76caa72172df9c69da4c170e937a69d93f12c7b533d4bce41b34d0cc8a1c969947db2c21a960d975ac029280ecbb527654a42385576286915d4b8f3fd163f0cb280736bee89786fa277c8487b0820416985855a95a10647059cf34c08915985c32321b5b8b45a468cd4253c662847eea36fb238098f059630cac83aa70cc9596cc1a0406e993b737c236e78cfbea1191d60fc6428fe7090997f1ab41c13e0c57a256a813bc559ad1e6ad10dc3cf43a64dae2955f03b46a09ac6ee30326d95d6ca8b80e61aab77579c017a1906279ac09766bd8a1b40b24d8bc4deefaab47f9c14a8441eb413dbd718e5122ae7beb94f526a31bda25d893a544670d994530d3c6ca29879085870f6d54192b1a7fd63193c7423be4867d2c134683ba25f9240e0fa2a96b47c5ac05b541c2980f51557989b3eba42dad002412f462acf75b141c5fc320bdafd3c11be291eafc04d6b5a1d4117c7703c313eaa30477253e938764364b25d859aca263962c5d6d898ada856b70e151dfa41289213acda6cdb5241bc7067bee5cb467c34d2b0a6ded6aa746290ee2e40b7be1294c583aaf415dd03213a3cb2e41f10731823e749acbc53767c12b93d8f32257a54c6a71b2041a167d685f0bf789b94b277f1b60af22c09b639ac72ca25b1c69b855bed6377126999c5708789091cedce768b253ccae981715c8922dc9562ea8a0ba102b02585281b15c7e44339cf630529c1b076106ee2b5c7be0181ce43d397a398c8547da703e2ab47bc15284f4c6a50dcb904ec9c1f60a1aeef38435997871e8501d4832bbb2a3354c70d9579f237427135329cda32573089687d9a9130375bf66ac321113a25a08aa75cb667635455a93eae7a0a6703a2dc0a85637681ecb097f1b16b2b331210b6288b13f5752bb6c731adab30ca051a817099095022892d923f571b8d879c8ddf0ab03145a32298dc6b644b25640d808006e3113accc6a0c1ccb05ec273e6b6559e287539c72d754ba9bc48c915acebb656e3cb7713e9bfc0bb6f311485ebaa078b78a737d81d38d368c220eb0e982fb0bd8a7ed97ed3d1dd05854a6542b24090a680b9aa9d6c65ef31cf1f4f5708affafeb2e398975d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 +ciphertext: 9741b66dca7f6250ac69e4d8ef7a7cde4421c8442651077d9a1ec366f49aec28e744cc924bd3cb8adb85564aa554a21d9ce485388293780d9a1e047c9da49823436a94461bfe2b4c4ac4d51af950e506c5bd4ca6da9c04262bb2b464b208c3686edfa29a512c2fe88e1de7faaa7176001ecfbe8303d779bb47bf92761e724cf12048708b21ae7dbdcacad7f977bc6a66264b648d7570460532966da05f9d950ce5fad36a9b0ee44e27ad922316833e6a18a8eea01c052a3b49eee2818634fc812c37837f0a09a42e65a5b124aff7f00c3b2e1e48523c643659a70a7651a92fc3f4340c3a5e0257859826f0fc9deab7f56258821d1638dc3ddf5fc1240469e6c7d4ff73d33758f39bea68f95449909551f8cf074b59e9d616657f2a6a336c1f5205e17f533c6b717e674f9774183d18446754d971d038d6cbcc51adc15f3e672fc612628eaeb8d0ee394a8044277b77bd1924046adfe1a5f12d778db4f09b8327497f6960d8a799935c2e9fe637570fe96280dafe0ae466cdf85633f3c926dca5eaffa5033227812aeffca6613138ecf47c1d5f06954b84feb8a580f964b1945448728ed02a0bfb6d7ec93d68eada6e34d7b4c084b36b4ef9dfcb5d7f04d0c10230889fc693303db3b45d4ed85d345ea161619b726de8a594ec59341e225401a0aa26a9937a5659e43d6af3232f985bb973857f88be76693343f34741db8cee47764c0dd96590d3abb71ed5afefc3b347540336a838703f658663c7d39cf338d8a023808bdae67f7adfccfb193e2324ff886218557504ad6dc63c86532a413b19c575001a527366e8d188c94797cc56a1c0b3184eb6b739700c9a36e03c3964ed2eca1de3b5c4d8b71c783ababc95a60e783a53e245fc7a8f6c1e7f0793b6660e250f1bb62ede38abd359b872cb033a434258c0255bb69af3f7529ecb5dbe342ddeac1e841ecb95bc312c8499b757c38d05592fdb5ff04e2b0cbf3ec766e6f6f37e7cb0f250a10fed900ab73eb61028c4e70aa8c9d763cbe9e13deff0fa2b0459962233f4ed514b8b8aec33e39cf7547aaa2b9f796da64c18e2245ed36b4e0d1dd62e3474eb4704016631f778906f4e7f6e9f45537cf8acbbc3df179090c1ec63732e2980abf292ef39cf7b87c320b76f8d6cd8f6141a21c321e72909506ec24d5ce6a46518ec59d22a809d5f54898f2df2270229e658878481a1789a71a94b28a865f5a2a48c18343d79fc850edb10730b7e0b7010631ecd9d24df0a8a1cd6cc8573f23ebc01ca355f44db9550445448d9f48c4f084c4b943a5828038b5753896676e09592eacc26a112da50957b153a23316fa6f4e70a84ac29c0969aa5fa6702ee80f57f18560b7dd4f6c81d0ef12f6735107ceac45a2bd8bd35f76a59c8d1e1859f2b1b13fca5fc58e9289e7f023e4f03bc571cfbc334f53bb23d2af3da31f00f476af0828f8240f71ba607cee6d125d3055a02307197544906ccfbb15ae8778dfba1cbdf33554c98a7c6069b9f3eb0d82316499832a878167ec9b11ddfd1 +result: fail +shared_secret: + +# Private key not reduced +private_key: 9dbde438ccaf5ad79f0d253c6d29707d6d3905c4dd1d3b93b269be917fba051fd672fce5ec059d3fa9598edca4f4db3164557b1737a0de85def5d3e572e8dc5e8fab52184238c439862492404becc06c7efc7b94b41bb1718c6523ebee6f63533ebd4e4f9ec4065f7a4ea866210731a687ce0aeede5e0945cffd807665bdfd79780219ff0b6837d61550a1d481792d45c99b7df7efb9ac95bb44284f472b5ce1636b1b3662d83fa82d76517b57ba46fc9bee14511be585cf0a6549584a361b7009a733c9595f01dc629057ee3d656371cb6d63c9bb25a8c5cbfd3a84f6684af3c7daa48b295dbe6d4f70412572f1ceae756e3752e6bf6d53c9280ee1f429f2492780ad486de73e565e99886a077c20abd25a6561bb5d359989744474fdb485d729ed9d3ea6498d236153a743755fe7df64d0876690e393b0f4efa481d3eb52e6d5cf0ae5075eceb94ce189aaa372f9d6a14b684bab42c83bf071133cc31892049cead57ab99b0d680e13f87526e41c38ed2e1978b44c84595a59e13647f126f3ee2b822a36b4f41b8a153a3dcf6b6daa97b9241bf5813343561750ab7abf188e6d776e687aed9668b9c278decdbad74a5f4f9075cd7a3394ce72a99af74de0be35611d296349ae63cc2b412eba4873988ac44e566d2cfe6029edca6d3c63fd58391392494976e073760c0a9fe058564d0334a14a4d8e9b41c2f7f2694faee7ecf63f35b47619c99ce66f6a546be0f7e6f8b6e831cf3f38fe52617d32d34a6ae46dea018e8bca04cb9c7e456749e7b935ff449a74635656635e3f92a5ad5bd4bdc6d63c7d786601acd454956b92595efdee5c900b6d60db94ece8c2f4bc7fd62f40cda936a5fad69a8d837d3fc77706dc2a5bbc41a540c0394a3ed53bf34b37d8e7627979cd52fba35b144df35cc9762d9f233add251ddc826cb54d365d7428f631b3f6ba0674b87beaf7aae69ba6361e3d73794dbcc5f3798a9c543964ef6e036abefaa66a44a5d017855b48bab226e70db6489d74a7acd5339e43ba3b6bb6d25eeade7ee735c9d83c75b5111b903965a4b56b4b27585e977db0fa2c5ee73eb6db0acd3257e0ece9a429c83b76bc417a087b08d989a44b3d9deef17d835a12d6fa437a34dd1568e25c6db41c4c99ddbb7cf7b12cffe52c46ec1a98eb409730c4a9b824a8f45b8e41a903c88cc7aef187628d2f6fa3ba83d2453ca3a7f90a0cb7eae6e047bc4d4f36cd6e8df00a1a413a5d5e3a86885be6ecea15fbcde5fa1cf33ff35eef4b9c91bccb7142c6657db694031649bfb8800885bb077adeab49f1e53b40c2bd75688ef4b0187969db8384244f63c6936aac3f687db9ede5c7129a8e55d46ad5d8636d9dd82c47611b5c3ad3c8e4db27e57d04e685e68f5f0df8e9537d3375cf7df44bc807a7e88b8b9b083452a35a6a5844eaf3c4afdb378a8d6d668f76c5ae8361aabfe743c67b2c626f1cbb2a8cccee295e6dc7a4e695b205d498025ea89f4d4a2a1940b58854a8fefe0e3fefca36592044492094619ebc7783ecea12d8a6bdb95f6985e4f214a7707949c5e6ca4bcff7800554d77639badf862b0cf8bb686c702bd83a5dfa33b6de0c253e32393e6a1c45013e40d2b7cd56f34a39b95d90d51e8cecb49dc41a37e866c8fa1bf723c3e3815b1f388f63d791fe0cb8507020e19125bf0ba753fa89c19180a7505e15ab6c44e32f70499df5cb106f85bcc5dc4f20d9660c17307de05bc1eb6bdcebc52727ca3544772cc56a08b30c0c54a847b28387808a1747a23f6460054c582b4ca1e09691c64615a6ba3f89a05a18eccea06b550241047c1807f3323dec674f17056d71b7bea906463efaa0fa50b051723e0cd66cc7587df4b58d49fb029fda6e2e507d637ca7d489971d897b09148a6a2b47d3b4bc3a4ac0715b3abde096bfd8622ca24141683771ccad1094595b20c8af004d54873b0d42977886314fc889e5804474005527170c49882ca89648d24ba29cd30a7c2868f287345f4926f1141531d3a53cf68c8662247d47348cb1a102613ab236b67bb9a7cce47e794096c0a93d54f743cda16ea09c8d87c43e4a1b2cd9b0b5ea711f30b39812ca44da20b02cb4c8fe12343896ae6eb838ac648acb8bc8e887ac69602e7d81263315373029b2d6713705935a43177b9f9888115202ecb1a60e433d8de2bb42d235135224c7f795d342466b4c5bb8bc93931116479171800b717c033a304bc619d2a79a687e005d6215fb1e76ab67d8b46c72857a46d753674a7ef3962c90f2b62f51458204b71d95734533875819a495360ecc12b66005330593456c516ead7b3c942688a822bf0d92bf849bab6068480a0b0b4b8c3a451007dc2a733de7b51d835e5b7900ac836fbdf13a9ee82b34ccacdf6b8f4cd0594c80473040b633b7ceaa091259a21c5c881602c146e4444e1e48800a189239241813c13b724a02e6e7a70834493f794ae7991bbf1b60d4c0084c213471eb3598079adf95004942176f297ad3d55b5cfac5a3b385679ca6af26217ad8309547a0738328bc1a519712ba545ca739e8c253a65394817aa6874e432a95e5f35aa045cca1fc1c7bf467424a8d498274646c05c15b176c8a69f90a0a524b6e4b6053979499e7526ac66830d28b28ca2c6dc4061b1546a4e8d7348416c8a8fcbc0779c51ce855dfc54d94d74bee674bbc383adb248c07eb8889b0b44937356906a61b1074362754440856bb26b2fa906ebbb94ccc943fb39c00292843ed501f5f673762e3afbd7179e41835208700fef233793c0850c5b48499afed371e56e5a92a4109662247b72338db4769f9849f9516266acb133af5666b18131ed347454250cb04528c91b8334c2f5b3401cfb28e45824e73c1b6854b330c47c443d931b9e5b139f31b25d4458ac53a32025d49bb5d1a89b73bf930c74c233bba7afe30239a41587985726fa09d0a7a2ab19559ed380d9eec34b5fa83b73813a763beab0a1f7df5b87962709f255256a36800b94062d3af90990b2a43251ad9b0e400bbaa4a306520443ecc8cf45613a8fc1c61e6312cfa02d23c1547a69cfe43660d987a0210cf60965fca77c850503416c7c18a37bc10ca47f517abfcdc018ffb538f474404917dd65c8a680a667b1762b5958e43547fca1aa0da8907d7d3a25b430724477eb2844e54f35ae8f27598d568d413914bf66b70e37ddbfb7df01c08e1310932ba90ac2287187b022dc659c83b9f554871ae4aaeba7ac76f1254f174493d31eda27def0331de8e68f7b1568c4c8919e4de7a5005ce152fef9c8c88ec9e6fe12a1e2d742dcaf56c585651ed6edce4f410aca0fc83275b5acb19daeb149d248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f +ciphertext: 70fa89e37eb5689eb2b51fe7d341fe3f1e80e967d0fc12c5f7fa1b8043d02752df88cc6c54964e517fb1facae8ae9b8da1941266c4744e2fbe3a12a2cbc729ed1431c4bb333a61f0daf5ad7231ec741a9fac9a206d15c5e02ba5506a8f99a4ade752738d8ccb744d1635f609d4dfdfc54fcfa5b337ee36c93cb35ed056924cbb768dd089871663c471cdc52da3ef4f61476b9e600215cc248ebb6ff3a0ea7f410bd20f9dbaa1045b46b998caf7140e96468e5e7349fb0ed37eeb2ee46f352ee3dc2c074e258b11cec9782a1f475a2a0800f50c2e3fdb819d85f6cdb392f471f7e13cc5d2315d2a9ece5450758c2c8d83b79825dba1b230db7841fb3a6d7aa86fa08c5744c976a83e67d184b5289987d57990f8b7d38ced91410c49667c1398222cc7bb176808fd19f525102ce7a682d6bde33c91edc9bfd6844962731f1f6e1c24007e3e15f2e1b164616c1261c56032bcaaecb933dd653a6a2debe9649e0d4f3cf849ad6dfdc5d1ec65e2a04d0bd5fa5460e714bb5f8f68d2a8ec3f4470e55eeca2e879af6424340ad6ce9149f9c7f345c0d417884ea8d9f918f138aacdbb78dc5222db2b8357b3d685a633c26d14c75feba0734dcf404d29f6c057d8f076262d82ac513f8730a0d55fe8d59de174a34f697366c08569744c165631961fdc637ef3ebcf572f4b8517ec51e57a8f94637dab7130d4f7b976d16d933658c0b161404f74cff2745a719ab56e32a1b5912c8016c1f80523dcadbf9b8d5986aeeaa5251035e2d93344ec7284ed7baab5a083ef365cc61ae01f77a4b64f819eb5526172e20c39f85bd0c8eded7c20e0a8dfe3faf8d1f2834f2c813e4030899ef222fad3c1a91a9bacd7d8eac4b6d9cfcbc06e160b0e81082bea66aa34f7f76e2e6213405415e57854690243eba8f016e6caa73078b59e3e7359a15bb3f1aa096a974260ecd74524a582cd0b9db891969d7c17a2768decfa0ba0e49f57a54709d767e4e24851c719749748ebb8db80733f07460f4d00e3ce8474551aca82d148adc28cd2b8f0e61a5731bdc81cd2b79e4097a680edb6131a70a285a46d1a020c38e2f02a08bd59cd07767566f6e930e473d0e999b37bf546faa102625048db6be64c1cb94757dca3e739fdae0dae257d91a4ec2d5a5c418ae340ede0b6114d9cad63a39cbb64f85eccac201419bc2430271934f53113682586b307fa7f12f0a1ed4c507c4229cf7a4d27853c9c41fdb6286750b50b11d73fa0eca184b95ec42a4545e5cdd5c6d15d9ad02e6535e3ac87084bdbe1fb35f031ef5960f867982bc34bf7c5543c2f6d7be142082c91867a0ed7c35bea543a60bf12e25879326690a1cbf76f3a80ed8b0eb229ae70a665823363b87c044eb177d9c1ac3f87edbe0ee6329f8bb39cbe5417044371951ed3f9ef27b7088ebb97b5b6cf13a51fc08bd09143fdec693a9009987b424f0a0db914e891e880c16ca40bd05be1da299e9ec17762afcf808772875e3516050e4313ea66aaf8fa7e350a864cf9a73b7139fed5a8238224 +result: fail +shared_secret: + +# Private key not reduced +private_key: 7079b0361596d968aeabcd85c8f649f00fa20b947efa34800067938ff753bc0aa133dea51944634ba6308e64848c6dcf01bcd1a8ae3c5ac5763f3ad7da294d955b5045ffb46e2b6f51e5d1c3949e32a64bf7ab5b6435986a27e9812bcdba766381ad601d8d7ddb2adc543de7c064db56f8fc63da8276e665d0c441820eaf9e17d92a48422ca6df7b8e8cb276e41dee6f76dba6973b5da07449a2b5cd3f2d650d753c044787a6154257785aa738418264f81298c272273ee99dd9987fc5a9dd491eba493038df75664d6156928967c2f865d53b63aca124eb8fb3c8e88fdc0bd8c17d18a2c3a73902d6711c5ac3121da4008d920ef9c6d09e8d0b457cc237322a5e6f2f0a9c70c9efd74dc2959a3d95634737aedc841be73fc4565a1fa3339e4bc4d6f51483691ed7aba89d6693eb54f36794bb0777e5b45f32756ea6889d6fb75c84845d99a5458c0f4257b6f10c657555ab7cdc9df352fed16213636c3b37af4b57aea9cdc5a336fe2b987fa5994ca9ec5b59aedb8da5dc1639a5dbc994e330f81d752af651b12afbe27c574147d4c0685973c67f979d98383b341747ad8849b0d877e5a3af96f14fef2e9c72b69431d4253971ff5d653ccc2b07fe617bb861ac66781576a6f7aa70953d6d3c40dd659a374aed7cef85ace7c2e7c754d42c780ac5a8e9f7beac93610b9c56c65bf8703b63a1684a88d76576743b660e78c7abf09d28a616d79ad78d92b6bdcab578c4af895aab2d45510da07a9cb4bd57c04dc5ad159488b71af8a02f9e8765fbbb9aa1f24aab37099d0ebd7e9dee4f500773d83f61044d5f5b5e6e034d647f556001d6cf789f4c2eb3c547af5aa10a80bccfdd09faaa6125d20e988a85093f2e15447b536b6d7ed7774d3afac7d37b795a7fc93eab9639f50da383454e10a591ac0ca3ab344ca099fa022532bd79ae5597e0461e751358d1106c615e47ac6b333b1ff430a2dfa0b833dafca93d65e8304a0dee00ad5e7969d2b8ec7dc4a6f68584cc90bb8c88148bc518fb74e48b20dfe16e9d33bd44fb542e5aeeea5788447c0d5db567b8888894eb9d8c9e9488ba2a5af3a309e4e00631ac784f13c858e5b49b920b428ddf4cd1ecafe553acd95982af5b8b8c0dbcb1074f6af5fea7eb34cb4482d4679efc337eacaedd793edb94f7b5ef25d815dde45adde54d674940af76dbab403a5da60abf3d1fd37f23e6c40be57c2b9bac82d9923ae3cae126be2c0c54eb88c9e13d7402a7e543b58b68efe76069dc818b4c71855fea0d80696644e074bf2a55f37f037565f8d0e17eabda3dabbe6b6e4fcb8774aac945898ee8b749127f6e316568069aec545ca5e76cd2c3bf872d47860544eee5b8b91479dd9b0938940540a595744cd8bae7483d3ade511344ae19bc99fe5b51810ffd032b6bbe67bd507c6a9b2fc2e19a8ea2cbc5436a8b307a9e6adf37077adfa8e5fdf995f205c459256ec25264fc96ef84776ed11f1f338355d8a8b7b3d09c833e8837150ba67405ba5d75e075e39590d74eae6df157253a704cfd460cc21ffe73e1a7f00aa85e497c9e6989996dffc2942dbec0b671133bce2a3f68fa9b4ee48c31c9957dd33e93864dec2ba97338c99e33e8f8129e74e1696955c4bc38dc838761a183d31e38bc21fd2b955d9002ac69ad96c03822fb4283c4216e93b96d86bbf81888b68b1e67741d4fc8af15d4642a7b65d7b408ec711055826bf634557c8a7ce4a32384592f3c5881aa530213c2435141505a8c0918186c1508ab11101b09397d82b31c85ab64f4bb38947726d2c717362858a0a3656487b0deaa38c8109e5fd061496a695581347d52aa7ed71c20d8a613bc54e8a49a92ebceab993b0fa81de448c156550aae181a537c38638c6320abaa08c50b7b54211dbc8124a487eff2b545ca3db8a07be7674b51a95efd08c4421cbf2aeb8cd92383851a044985aa9a062bf5267382db45519bbd747852ed1a590ca3a89602a6c65cc06c856e22484244fa15b928b13b91736b1680e18cb1f76a7209b76754076db872295ec76e246b1f58f80fe0610372938393288c85b2b2f2107fc39c7d805678e68a38e3e57c30ecb650dc15468674cc54aa8aaa424b5060a03bae4d74c8a43c951e6b53b2c8b1502459868a1b03a5c1395c1b10551c28a6756d251e1916c24ba33792d74eb88a5c84078f60c612beb4a7d94bca27e3377e53442284c395ecc235309d1281c53964bd34a067f225829e5cbfaed47da9e393895aa82a67ab5b44a92d8423bcb59265e73b84f549927427e9295acc8694d77020d0e4342d3c784b121250140db1c3bd38806351416c8f86b4abfc7a14911bc865baaf867f54e92f935b044b60bd5343c5fc9b2d1dc68735baa31ce155e37c1ed0c85162d2ae3492c44c29343b50351c64747f9765b6f9306bbb3e543334c987c9a1c2a5783a576ce94b8f10bc3539cd55f30b0cca01a5985eb5993d35b8cbb136bd769b13f0c5c2d40b34335a52bd34ab04f9cf3f6c313b6c5b9ef879c10c1e1b249cba2580f7da8bb06c003db8718f318979e358292b881f9ccf984c525b61a34f6681197a7834913230627b56388ea26cce0569680c968b31aaa97710c9b2cc019771a57f8b5739554e45048d59610ba990b2e1967648d3c87410aff7981a57e2bcce971b912c2bf633bb8ea55314f3327d3b4fcde33aa1e235e6eb603caa19ba83c98eea4196c78a80e8b5680227caf06ebb22042e9a5c63974650fbcb1531404c6862710215012671093911d67027d491a916539a1b84b3c966b89ed3b1e9980769267827731ece44826a3a0bfcf037d9fbb9bab4b85ad668fd1573c0e9b227fb5ad32c948037384145188b17620eb91cf6a6318f331cae3800164ccd138c8c75a3071a7c0166f5156d74171b5b854c0783f9905b88950c23ca8835e530c4037260500be9f00510b5357fd1b80b09aa06b7126ecc8bdb709e3e698761f756ad0624280778c0ca140c426f91c76f81b96cef425403c95bc00852359b638a8a75b3fcbea47990e002b346d5a9481083c4336d02191326f6ab5c5777f622cd4819bd1187cc6099cb7968474ed93c0b830bb301314551970b86a25da05dce97ab5db744c78536712c752d02206c8585285268c5842491f92636682b223b6bddd39c6070bfd74aae3f8ab1fbc357136028aa3542f006cfbe429001377d2112c5ae3805244b865ea863257aa671d0b146d04b89b233f70768a373043a59b9060b0943f56865e6a91bcdc54402574a0f1c143dd36948d781d2f3c44e2f08b52e339b6e1cb330c784bb2ca3538979b24246c2644907484719c531ea39f13c5a34046f8e5cc31646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 +ciphertext: 8a123f400b8819e4a011a98e2ad172d55caa7112312c89312463d87f29007d0f2bc26bbec2154e7bc61de53f7cf971d2653d7f6bf0ef3c3a41f3ebc81a007fec27b2071a12e5bc55cbe4b1e74ee9847ae6ebf5c19f67989d07cae375209b78ae35b5fd1a064d8436db5cfb6f1acab16b1c9e49de8ab7615b8205a521c8fd597dedcfa9380fbe458be51760d097867e180a772ef77d6e2014be9e10cda64d88f7a8442bac3f736a2cdf37fc6255a09012e4f4a42a1ace90d99db9f85b9b9689698374d0fae43afc4dde391ddd631e90e85bc63616459f44e4fa6225efac89a2f3bb802c2fdc975405e09c33cfbd52f9a5b853ac7ff30723eeebcc626e46a70ae671f490c32bb3e9d5e32404efff4663bde8e5fa3f9868569d99abdb1e47a11e37e86306e4ed59f0a4896ba667ff57cc1fb140266239f0c1942e4f274bbd359042a4c377226fe963f88079953cba6f338efa8ee2c0f68ccbfad1f78eea6130ba4ad1fc7ce65b3f592eb322deb9729975ffcb885208c73d9dbc51c29544622de87a20991852a121721340c0ee5ffebc09fdebe504e0bb4151f4c59cd24f76eedd3a93f8fd8d6758aea16cf041a3f504085d21e806b2e727526d49dfebeab1339bddd4770fb1c92d3e109a57a204f81556539872b536426faebfa0e80c48531db54573af4d1b026314fd5e0e4665c61eef611dec983c285b479d8982d05ca59efb6128d38be68fe8812469cdb652a3d0bf883396cd57c173cba03e56566f1c7008523c614435c8d734b5c9772b2ce8e806824a1fcc7f20587e6051d46757d3334a345c97095522acf713abd05326d07dc1d2a845540c6a5ecd0b4f3805d39c4cd4d4f07f92806c14e6183eba32a5290a7450cb7630c3fe0e75ac0e9b875a949c4d3ba5cb8c035aaeaa364051a59c446e98b155e8b17ce8eaaa39fd8ae46d03b1b7cc53167d980366437082e5c072b029341be639297a9ba8ca2b2c521c932bdf5c687c030f575e80233f3f802c6d72b040f451771b9005a8f4da08b153dbcebf1e9bf14099ae15245d408f42e3196a28b6ae8ab6f242cdb7f23b0a67e0ecbc9756b38a5c32c40ecc120a229d4ef618eead86a39f5cd70ec99ac88fac2ed092c0601d153ae4d24093d66d910067ea368bbf4f6720e874282320614dde2352039d6a40b394c5a2d15fa00030cabbbeef0792d0d3cb7dd5dbd76dcf411ceea06948c5dc42e7a21e89c78f6dcc03688fabb2dbee392eb4aecb1988cad46a4505785758b762865ca03bd7dfea22fc19e83e584899b1aee47f509bacf994621e910447f89816065b3b976da272973a5a4b9acdf9087f2fd69b962f743e0f2bbc958c8d832f94400703662e2ea538149f413baf7d3e42b50d9d4acd8e2e12a2d7b1914dddd108f0e08d1bc0ef663179ea01b98e476e4e71ca7a54ecc6398666552f6fa6faeb19178c2927741d3de697f273fe5da558a281d245c3b68a25e395dad0c7b1d8ab4d731db6273dd1c535215f130e043ef491dfa4ae25cef994fc538b2259ebe67d +result: fail +shared_secret: + +# Private key not reduced +private_key: 06f99e6346fcf6dccc11a8854b24d7ff22e42e9ea19d0395f49f3ac0fe55cb58d7aaa3fe228f32dfe932aafa67325dbc9f7e55794565aaf737607e95f1cec35279a51e6e3c6bd3fcde086f627f5c293f4e9e49fd1d3a91b076ef1524592f6772d5fde2403ce8ea26fa3cc36b8f565152dcabe80691ea3b84d9eab83dfc429036676e2ed9daef58343b418f94da1c53b4731eb55f59d202c4659126bcc5f4ce24ff90674dd26cec84195f6efdddfb0feb7728a53a32a8f32ad37a424b4f9818f7e24ca9cfff6116bed0be2f4b4b3d4914c83629049f7e836b8aa539ef06eb60fa8154ea97c41f59b3d6f9dc99ec027c8e554eb5f164759b13980feda5bab7edeb08c99e634041abdf6ed8fee2536232ef634fa3d7791d97f8cafa22db4412c5bcdf764f0b58bfe186e63e1b5667ccc45b39c77b3673ed4c70786a33b5aaafb5d5c12e4d77bab3f23e36e4a7f9e7c756ff220545fbf9f75b1a62a98f797e5a96cefbadb309995cabf6747ab33e543b3618dc29a4bafe68ae42aeeaa763a8da0e62a1959dfcb7890a394ed40a5341fdb8a89434baeb9414ba460178b2c5db503a28bc8f2a42caaca2fbd6c77d758f31ee4bb1075ffdf535fffc76d02ac264787e4544db1dfbbbc55e3ff15abd2337b6d454349226d575f44ba1c793c3054bfe767a827875322ca754ffd0c717c47ebead480efbd103c28e9380be2868c8c3ff720fc26b977760e67d991d99224f5611b9878f2e5495aed730956bdc8ad15506c4609e907114fe9226d7560560237bba0d3e90c769f95bdd59b7c99ecc7ff22a54563ba730a7d3a4dde375c9f931cd16c4344552ff984fd6aa9ede16d2a94dbfcc7d5e078cc375437d3927455aab6ea397f49abd795df7bfd436cda3368bbbdb990d6ac9d3f637be663e76add55f0d558e0e77f7c63e80af920983d3d68a34f34da17c8cdb80c5a69004c195e9e5dcc880acc9cab1db842c14722ea534b865488d4e824017cefbaa5c1127aec9e535112764e713ce403c64a7af7663af548373f7d69f4846dcb646b79de5bcdbdeab9223f36f5d1f4e5a5e65753656b12ed241f6b806bdb30b1b69829db5d5fece112c93b4f6a1911d6c7cfef0d2dab2995578feacd8db3bb36c99c2c40fd11c7af69f563edd088f3c5da39e5d8a67c7588a1efcc1adf17c4fee99e95f504edf8ebfcacbb8532986d1895a34314d5f8298f7cf25ea8358db4276cb73996fd5d7b357b5f574aefade3394c48b7709e5dcb9ff381c05dfb1ee4bdf5740846e38e539a7fa6a4a94339cde3bb71ec34ebae4bf4763ce93e6d4206fbd61d8e86808ef8b98e24e667cc84cdb236e57560647997af581837b75eb59d5a934bde44cb1e664df5ee84ac480323ca5a06f4663be7bccdfd424c565385958ca9f46d2383a9f3dd0f9c8e7fc57b7f335e3d96ccbb624d511feee2257d2893bb89145d404f376b1bd4a675bf161bc3c68e8901348a9a9d7742aa3a2113e9dac25a7eb9d9f2e8777299e4cbc2332bed4876f5453aeb3365879a0a34f44c627fa8d267cdface0787740a595fe66e3663a879a362d8a07959b9c5997e57a779e8679563caf551a597697473776519f87b0d8ed3c1a686d705c55d2beab00264fbcf666abba49136b6e6ca0ac8636bb20d305bca62bdef6301aa51899d7341147b72c210afee6a3294a4ac8685b1b6003eafb7e94d91fd958b5c3944129198bf02a2e9491491a2bad9375cd9f184aab285e91c877884b101511775cb31f2a2a3e7337406d7662c8d8c83c1933f0e27b8b2b39b1aa8897440ea5142f22b218c77c664092996e39237f577139014da6da6870d848cf98b006c9633ff138323261e1d042ea645e60813c11f9489714c197607e568c8045f0244ff40fb86634dd469033456604f19255645898181cdb830c1a82c4eb1373ba820515b6a44596342ac8b912c217603cc92b8a2b52caa29972bc95ab334a93307d7b9aee013b22118eabb947b1a23150481fa1e7b9146b9ef5fabe9debc682003eed2534d9614d90466c80a73fab8b94d187a383463e7f6a380d1b34ae5473f58167e97794767a20bce5b6d5dca88b35695e0a2baee03abd55ba0fe768a8254d40836233fab358842675508302a337840167dee53eb3ccb531a7637dd1b9dac9a00432268002165f72a5aad8ccc7131ccdb1c986a7b29bd89311099fa3e9460553900e51560364bf9af461f1487cd9f0adeff5079b07240870c310ac4702e113f68433981242c153c49c43cd93493b52395b5db073ec936f3518b7f6954426b9757476cc1bd0c4ff870a2124a8f8daa3299ac21178235c260a018c169d083cf40842bb6a0f2d407861106b4e752091dacbb85677fabcbe180abdc6235d0e8c34737a5934f431afa670d000166f6c5e4516174a205f4bb6182bb24a54907be5360cb81b5333a937c4e40ff2579b0039c0ba3374664859e376a8515b390bb46acfb54bbd4aa6daab1dfdd44c712b311798c71e162f36f562017821cc96227cc431ffbc3634acc704937187b8200d9bcbb0c25df359c386e740195662ae24cbb24b181a23a2b4cb5e3a767701d3a80f7bb82133be97daa38a706c7e2949ce86587246bd5fabc774956019c2247f5748f0988087159d42b8c6b1aaa398879c77e32b0a5494926588dc537fe1f05a10741fd8814f191cbdc50cb2a0ba1ec053a789396208415c77c18d283510f410a722a187cfc552f63159648317ed696695413ec894ab80f4c106d73933e312996b23f073bdb9625727d8c0ff1818d9f78b91c4a6c33075f9a91b772138cbf6861937c53aca7b535baacd2bceec96223ba7747b4a7d50c36d3cb0297967cc447c3bffbbb723455e421ccfd791c48f8ba558692e2ce278dd351e28d35ec1039f16d8281bc0867d529ffa6544b1663a14b6843fd85feea2b00e3c8b2131bbaab0b2161493caab5464501ff6e30074a372dc6a905b9a1a66b637365b48af4b55e45ac4236781b71b130718941f06c17d84786bf1a033b60da7c6b0d4d385f3f323dbea84c0bb8fa720569d1959473b1af84459c0ec4ef133c0688323fe8503069bc15cbb391ba7041e665f652880ee367c97f34e7230009fc401d7a34b536529ef544233761bd2a01a9da338a215492252906f979290202e5c666bb31a74feb13b05cbbb341076674c02567c80531c5573fc6428b8ceddf3ae84b8bb7018a3ffb02906770c4528c73360a867c2701158927eb5a9fac60a2f401affc4c65198b4a5e1439001d5882496fa682185d21aa4ef95ac3eb5e675c7a4a4426f93b30fe432c2e9744430805aef6b75cf3011ff387e323558212b9d71ed71f044f779238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 +ciphertext: 4730cd50dd082c8820ede968a7cfab0842f632a65a08757c67f05a01151cebd03e259aa45b446ee30753954b5c86240a0870440dc76badd33119e19a2d487f20499a48202362501ae0a106232ba9ea21b363066ec8886f8518080d736444f30e109c0354f17507e1074f7b608f16e814d76424647921aed1253dacd39e55abfca8ae74b25807cdca3b76d5fdefeb2a717ed54283022c607a22c419e236a971f96f075a7f6e46f07835732c2f9b3b32e722880b5d942c658ac72257dd0ac7cf6bc85ddf096971982a8ea480d8a7629b4b9c060c3ee287695ce0ffe1d26c385c7306044bdaad1c921fee6f93bfaf998b16fe9664a610f806b2ea0e7de8706bc1787ae6018584178893da14fffc1c99f03e8a9f54a2af50b8720f6f79be74dbfdc53324dc94e081a8c438f04a9742c0c2b1162c378a410df2be9d340f0719bca11c78dc23720a23718c1def9c31e96dd8f0d9503e43119b63390cad03fcd3d64a10130538b2cbcc9b786ae5c509b7d754a49e6784a8e66d0b80edc4a62aa5d7a6bf3a015e7df99e4f415f66b5aebb9035ee22255f2bacd84030a5128fdfa3a8343e6f84585eb47d30910f4e05f57e39230478a96f9e10920c0ad90fd32593932637f208c312e33cfa96dc2b7d3650570b7e3846727b5214ffc6c9eeab17e7343d9105a26df4bca08c6a0f28594c708c6281d7f34655370216eef77225b5ed78d4bdc303d5974a6fa92a9a75b12648f57f6f7feb9cfe8449c763138540f97c0339b52aa3c100421ca0094591a4e8a2af4fccef6ecd91b3822893e49f00a46bc53ce23eb05d489a4af115dd71a8e2eca292279b05c143cf877dc4bcce9fe75df54e39741d5d4d6a0aa594b2be511ae748ab03c9edfb8f46d6bf2a214b2d6f3d1da9f73ecfcaf564a231ae7f629b4236b52864366ea34bf23c295a921501db8f92d16c40f9651d8df6318ffc0d6f4b840f27bcc736d2e2494e65e81e1982df9d279440abc8b01108f5c92bc2655fd3d0ab0743baafcb19ac5108ec02e00af9fddb6301d9fccf2dae17152d1c06a43cc69bdce862d0a4f1290fdcfe857017c6e5802dc55c1ce2f999728df46144a55a18e54bcbe982465c8b0077dd93679363b56382a7ad1b8021a296ac90fc5fd403233397ec72d0ab74ce0ea77ca2f39cbdaa5aebc968130aaa519b0b80a141b65b3652824afb69185ad70c99e236af977f56b8e20b8401d13896b20d845270f21ff7ec1c0a86c79e4e15450ac94f18cd62e814a44d076dd7d3868a54412deb45b047aa71a9e596e385fe0cf77afa64c665c81935737e755cbaacf4ede409cbc858d63e32b004138234e294ff7cc01e637c54e719782c75cb95fda6ef4d86aa4e317745678370c76e47ecb77bbefc1a2e92a783c3d64f01f9b6d0bae50d15534bb98885562ddcf9738c9f08b4dcadef59fa856d9090a64627784dc670f03113d29a7f95a7b6162bcee928a5da0da186c7e13ae83e8e1a63bd168c3019aa59bea63cf967e2a17f2b937737c39efdf078273ff00c09f3 +result: fail +shared_secret: + +# Private key not reduced +private_key: 93b888d05aa46698878f187be0da62911f7b2cacca5ff5d8c40a523aa56b923b5325fb7bfe0b3cc00ef0efb8c9acf6b1aedfa41d265be89baa96989afe97a5a749484d27b8761b6e9ccbfa957676743cc79c2fa74b09fbc693bb54b3ec4f269e5e0dc47073df7c59ea708b40bd7e60415576db195fe78b3c3324d8837f3387d4af2e2fdb10ede5b41b5984a8c217f8e8300831f1556c5499e3a02e6a4ffa5799246e925e790b98c2b907b8ce9e7f8da8ee7dbb760b7f5a30e34d997774c657cd4d2648e97451061e583f15c5f12dd872c9ed0c1c89c307ab4dd3ecde68c365bfd712559a7c7c58d6dcdc8ffbe645d85436b8e88d8ce71eae445168559148dbc0a541797d645e4c633a2a430f23941d8dc92694b8cea6674e97a032c89516397d42e44855b4ab29f484d4e33097754d0fcc672f55fbe0b3a2b85fc2e2a87275aa89e65ca0f0dd96ec158f591557c70bec6e696ef2ba704006b7f6f8e1f2385dba947fb10c404b79b90f7fda842a569dca77f1039b634d3787cb36bdc8984c45fc48635b552361c77b82eb67abe8faedb025302a98b9b075a5579f43a97f5494fd7cd025494b6cd1ccf5d8d594cd36f473b94e6a9e7a8de0a9987aded9161ab3adb78d02eeb2ba38d9b7266575086cbb36f2a4f7d8733bcaf42f420a65873d6f4dbf2cf0a088f1a0fcd2611a36f56de485a6399b9eb888ac547d6de20f5d70e597a9a6a67f07bfd39cd6ccf7246adc0576a3f4457cb9a4c4b46ccd846a7704e7971d72cfe64a33afd851bbea20555122a4fb7c3cad5b137f6885b39d66cfc4f5c7c6e63d2d45c8e184467ee336945aaca71442b25d8bd9687f40a4b70db764bb09d6115f6ef194f151c56da153a100fc92efca3539ac6efbcf3fce6d665263cf435ab34336b08e3df3eb147eab0dc5271459b026638bace8d3dd4e3c4f9ba48d53df0afc1a3da7463e46e798323dc5c5fda63ab285810dd734b9988691c8445098a2ed96cf2334d67fc45d130ee9b37f61054d4c2184d97147cc6363c6852e5a12b4b34b26e23143ec56fab25f14e8f5e55fcd8bc2583495250d4a7534b9916ee13efcb310e6e556788e188cef410b656363dd8aa4bd0779d234e5d4b4a9795e8e41d66d49d9eec019a3fd472e9124596a65ffd6590de1724547e8baf5d56cd42a8a58de53b10cacf67418e2ce6952f765bfe6153e1b43582f5b7af3ab3881ec42b408d263f89648d6f2ac6f5da6b730f57f44d249ee33cfbb19da532d7f6f3087fcd90b64f58ecad12c86c6166bc6f38fb009fa75b9aa31b8acdbd5bf5e746891b7d87849497feb4fa64cf8a4836784ac8a6e73e05536debc0b33c524dfd3ecb5d92e56f16aab8349411e1e92fe578e3d359e237d543a3e7b7df77d08d38e7abc8b1473d7bda7a7e00b8e0e5e836b1ccd367ee835755a72a6bcc079e65164a11829f0af68434bd639fe0764fe07d0b697eccd6e7b5958c26773e13d9d62be44fdc5e44fac8fda30a44a10bad458379c9d97e9606a564d08d9e635818216d6ba34fae664c4fef748ae4eeac4156f597c39f17c93f88a74418b734e0caf607c4f9e7f877d9f5c0f25410f65ec2b3860fc26cae2f3a31a8e5a239bc4fe6f7dee7e81869719ce20c5abaccd8889286f2a77b388a58ebb7c53e79619762ae5111b6f352192288128a83202005adcf0b15c0640f2b84d2ed58ee806bd4fa22ad26c5c8eb9a035768951a579f8facd48428e508abecd418617fa5901fbbdacb6b539c148af327823009e86fa49b96c42d8ec5accecc423fc979c475fc9c63696c21d206301e9d54ad1088be167af34c57facc25d4bb49ba5677842e27c1fa666b0659c66dc412de949980ca6a707a0c21976822579a0fb1d697892fc87251354a17f630271cb3b10f5c578777a990361b467c1374897675748f763619e065104a31999a765815ca7a22103f3631879b790a862450c69af8d29c0f9a48e8dda82f2c03c0e12b62484c4ee35002848b030e41dcf1084b1f70d405677a059774e322c7b72265e32810e761d82956cc0194257f31157928b786b6fb6011a130620d2f51678d27de0965465d445e6777660865df9e73bc6858fa8155bf5cb4bf9c23527340c32211009144fe456950694b656a2a30c55647d17cfa1856981867aeb82af63f1525c31cf643b32ea822b2f389ad4255838a2bc2ff850cbbca834c87f9fba1c05ba251acaad9ad99075920653d29d94c399cc4a2e4c7a871e176a275b7ac0a4401d36b35113595d51b92ccb8618f3ca40b4900774a784644973477dd492c66d09ba9b074c3d0347dafa08dbe43a9b890f62a5b9caa996f9e362b9a2103942cb91915ce8e390af54a2578227a9389e922b9c382907853ba05eb13e7f03c079301db2135d95c934da5784cb05b9726a1c1e28b01f5c5edba7a340053ea51c32d0930653f46170025204c0adf94c2075631c55790895495f23ea104a60b88c8b627db4256b6892d1b7886f959a18ac238aea494e45aaefd72056f362e7f34ec5e20e9c9aaf2efa8683970e310390a620264ec1ac3af515c24409ef4a4b99d0725de1506c706303e2848e2904f8c4824260162e5392b5b0595d699357b190e237ce1e3692ed95b7710488ad285c04db243eea475520605cb98b98a1cc893a7f1d7492f038795da03f63a91ec925a914b3c1fd9a3b5a74bea6b6770a5b1400348f7002555ba8c9c95b88cd829eb179472245228c21afa2d39238c76cde000898b718884ac8108c06e81c02f264bb6c9c5c13081c09d431aae78a26d62fbd041f32fbc012d0c83fb9450448cfcdd8cf881036ac096396e311e923478c5a346cf5c930d01c84b04400b38759a18d3ba40e46c8af5f133258f353aaacbfa68b0bfe206bf7fa65b192a4798a0faa68b2574725dfb69ff108b7c155cf77426ef8a776f0455bcea85ffb91a74f7203bdc2a9d0096fe7ab57ebb4cf1dea1ca0c5c4f9e264d2d5a0fb64658bb3b1ccc93ea5814407b6c865bc2b2fa14311ca50016b782716841bf89474c10e182aa51c0416580769312419d1219261a548ef0aad81159e4be73bda9c8903b7a4955456a3a8b405a27c18968901d54f8a0ca16e41aa1d0c128edc33b069a1c1e4b22438beb74a996c8b30c1717f07092c46402b1d9b710c46540ab32f38381c95b7445704461c0589cb427606057c78f911fc72ba38d1b664767df30901b148b1d609601bec3e40e41136ea9edac60f1f097c49906f105c99c4b069d5325baf3e6882dfda254850ba1ae5ca738086b4bb3c91df05c11c1acb67a98dab02b962b6350a9e1314baaa272b6b13db3d1edc9f09d3addf07f6826a3556bf1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c +ciphertext: 3f7f9fa76b2379cecbbfad6321d4d1616ae26488263ba56a63acfa042d737d74212b3522f42d3981ce88d95a3de3480c6e5ab26ab2fb12a6a3abbfd75505e1b7aa5b2311cc5d0b8a2dcce7631627efc9d18c571d72622e50be2ab8b9547e1162889febd65313a588def911d4f923d9747e08ba53cc7fd9e56e91e6f4c1d4b9b164a60950286d0026267920c52a33468ee15ee508a24a390a8daafe40fe5249c6a6640354df8a60e9639bd1cfcff471e3fa9baaba6b6bd1d82efea49cf089b4a7e488b5783a8b4f575bce13109fa9d95ae542b1e5c6b5ff4bfcaa17a84424856ebc2ca2d7b5736830cf35909bad723ac2c8096dd79cdb3e642d0c6a21f0b37bdfd72f0f4594bb309f4dd83dbaffb441f3dc9889a6d4132fc7e8b4186fc71d05efac20b3f994e0063575f62b5afa6bfefecaaf19785383b45f265dfc36a0fbddb402811a214e104d7a22f38d26f6505f70f2da88fc6150d914706f699bca9b56457d401b74f248f00221c7cc7dc92989b3cf331be103e4334a7ddeaa17c9f48546c04e7d0663681d1106a8260aeb63f0d9d670b56c00b62235683842294fd2dc934aed767db150f6529eb8f908a3fd7fdefbd02b960c05279da4c7cee95a81b90bae522735cedaefd3aef318107986d1b73977e254c6397b1bba132f52bd7ee7015648745320b8e9955be4be6e7e49b481ada501c814172b47b584dc538f5c6cc2c1fb83e8f8ce6efb68e34e9b15609a42995cfb06c46eb49f0422eb3b7e1a16700fdd9f1d5610a05d3503cf18eadb4c49d9ec571c485402a60c6bca3ba36549934217ed1aa770f6e68189fd81d852ae00d6b1e7f03cbb6e07d010b65a22be0c8228d9279e53ccd3147642d9f9bf57f177af63b332cf9ca0541362dcf20ec19f66b57b4b55292111360a3d8df17e135f4546d920b6997b2da5d42c20768dfccc4d3b813fc8ef8fb4e8c46d4d579e7ed6a94a112b0da4121ce3f0d71676c96f00bbb44b55c302af407eea78fdc94397638645bce49c7b71b0a54bdfba6764bed0961a5d7446898099d8ba071bd0814cdd020880b2b24f1b07ca235a425a7eef0c7fc13b2767884b247b89b1e07f08bb91b49399167b423e77323e8555bc8e5852cbe69b323e70094d7d80dc8442089c87d81fc401a1dd1154ebe49be3a313b8b2e870375e5dc12fd09efaffdaa4104228bfac5a8f2feaf02e6e2e4d786e687d55af881a0970b460c0dfc11861ea4279379540db02b8efaf12279656a876f758a7d1b45217e9290147392aad801413d1f36b3b0e7987adf276ee4591aba78fc994282e4eb85f7f733c4bb96c45912fcb43271274db783ab639edba155370548a0a4cf56cc910c93ba3fee673f6538a61ad5448cd6d43ee8e3b66f023a3b1ce3d6291b29d6b302a967956f9cdb4e09d4d5a91c0665a042df477b7ad48628bbf63ac726adcedad5e10bcb3bee5591ebc3567e2738a0d8048c9a2709bb2d158244c562c82342a5e44abe7fbb4e5ec8345404ae4b7f5260b7ab429e085b0a1ddc13dded2 +result: fail +shared_secret: + +# Private key not reduced +private_key: 7db7cb171fbd444e44e3e8c45dbcbd0983a000da3ada4e50800c6ba839f9377df7b903f23dbfaea3ed94ed979a179b95629b885a77b3006d6735f6ade15589f06397ee67fa11c9a23f2d6169eed737eda074bf82415e8feccfa88135b29033ec78e5afe51af1bbb9f5638d861ef75f0e97336f1b735ac69b0f75fbb6d3b46d75f0964671a93d9df3af997b36a4430c7f1bff7443b869dbbd973793a39014614f96b4b0f554737b77482cdd16288183c7edc9794f723d98edf87bc947a96f64fe2a7ce16714d1dd475e3214be01ddd54c687fd3774263bc9fd3cbb8515da02d53c1cfbffc6da3585f743d14984c64046217555f45d9aa7b4944d14cbd3dd69bb62dc150453bd09e387a1ca4bf4353b15a9792ea89def5cd09a6658ed57af3dbfd2b1464af2bc28f0e6379569d7c45fce3dfc350f8c4958d7a8d239c2b0654bdffcb866bb35db6f89f65d5f0059e445ea4491d920cc6ac88dff4be59d2f30dd3936c4dc13554ff7588c14aeab8befb24cf73e7fa5e95be52beccc94e0a74d368d414d6ddd2e4806a05623525faccefee714fa3c44f9436b5fbdfe45be4247a0d24cbaa28f1543bb6d96d889933897b85397c94764ecfb1aa94555f04f512377bc7adffdef97295569c8dfe585ad8ab65def4b04ea534ea4b2e5b6d76e33dcc5cadd7e376dfce36531e5e9733c1aed9edc9446fae27d2a85fdb4503fd7194730349f5d799691504e0d2fe3d128d7812fec992cde37524acef597686c6ec1475f6564ca162935307cb6fe166d6dc76da550c848eb8e71c49ff5b9e6738ebfd90534a443fc3047ded14b98cf5e7cda40d9bf518d9d1a4d00c1db63c7c718e8f994a8ff8932758629b552a7edbf56c7a33464b206888229af57eb8a8c149b8a0846df20c84722ca98a458c09ca598d85ff8273326f27600c179f1a8cb1e9fe4072dbc9876d58a0f448a1556532fde0582b4672cb9ff873865eac6096f9a4fb1ff5f4855ff15c7a31968ea1447caba5c29507de5c7990057751de9e365c4c57b70ecf45547154cff58a897bfa5b3d24dddd0be449cf5e72fd5e3141caa315b397d6d77eaa67c6570a60a4be6f910ed97ebee96b363ca47b830b59d2c23c97b1ac33d464b5293959f2bdd7e51374b40de7f7bcce7417695edde5ad84b37e07aabcbd630c467207df471509968f88914fe6bbba9742878632ee6655418535b4e45b5595c90b4ba08864ee51b3ff4cc9f0889f68f56861dd4dbc9f76ee907ee288faa6f0d9e1bdf631de2bc9d53369f3cee6a26ab2c0fe4981fb817a9b4d8ac9f8fa19a3e2bd3f4b89cd459a645223d0f5e5ae6ee8e25f2544bb039a4f09483a799ebabb8839d4e11f45a013276ff79a3ae9f5d01ce451a0aaa5e85be85f8747ba35c58a253618a8593d155ae0dd5a5f755dbee456ffc3883f07e6bc4fae0963efd6d88ecccfed3148f23326b8e946fe548fbe38f7d3580ec2f0e7fc678b47a79a891487bb3c9c7d6c8f3231da391b2b3c685ebb66b7a7e32652704ff1a3a936ff82a09c07cf33763b317fb93a34f6f35d8b2b734e184b6f00488f378373209552a58dec43a746e207342e463c4f1ebd5bbeb5f3efb86a1d57d626fdd67aebc97ccfac8537fe04b19e38680e8b5f005167b4ccbd4bc2a87c3a98d2b2af18738b8b44b1ff480ad69183c828bd372a4a3ce12ce72867a886733f3bade4144ab55b63be2902aef88ab4e129551540e8390357631233eccf23a0668886b39942c23f902265a84a08b07d11b85c096512c09ac3c82023f23aaf48578bca4b50426713c7e5270980c78c6643ef615c2b6ab57b98111a321e30d8a38b5a376f9a2c793ba196e293fde201ba7261e222080d951b4f249a47da98c2aa4b87e165de574efda9577dc815c847ad269210970975d8322645246cfcfb46a194a9b3cb2b91a20fd9107948d8777d0a14d6187c922a5beed80600991f3040643480286a580e932032a37b8c82833535f721edf44e97397e14931cf7f49201d80b75d650f204bd37416c643ba725d2b3b4f368b033589e01cdc10ccfe264a6efe01ecd3b8e92478bfd7c1abba973459346798007990a9edf57b081c73d699b7a758a6013106597ab803870c24e4c2e0d649dea9bc0e0fbc742571b7b6bcca714881db2597c3a45cf0794022b58985a61d582aa59b17e9c567e4b4268976943982705f389566f53c49526ab6c210f4e694544d307d2c8612d1ccc23658127e8b071e58136734082616ed011397bb781896953c73b5127b28437f38c27d663b05745d3fa37e9c2a07dba767f0859e7a30e9d48cce5f37632e817060ca46633c9b4f6735c3bcbb9185abf39ba9ad600718c6fb84b7c7b867b5e5c51c0b0cdb03cc83b49568a4a02ad831fc93157a4e5010ba81c0b6bb34afb908a77b2e8d106f752c39ac1a00a9467d58484bd273733947a619439576a98b4360811c97e73431901978d295148bb991433ac72b4cc3e5cac2a8f68ac9d9a3f5d53889343af7e6b02316831b7208939a88e613c0ec5d07861099488b08deaeb2cd295b6977c7c9b2630cdaa5b0a93ab7d98728b3ccec979b869d506b9c679ecb673b7d83df908aa58603275a36291ca60fb717b74406ec852b802eacf4ec3c2533315240624b5b7a8ec960ebeb04d970cb815fb059c458d02254fe8564f154a8c240086fd98ab6a4a4510fab5205a99ab873f3ec29b603a660061b8eb803b6e71740ef174db09bd6c3447197765a0907d31fb1635435601b0a8337972263857f301ae5cf56a23dccfa392020bc84e79aa6a37450389a616f6e626e001592f7a71fd00ad82f3ac9d1979e83955bcd1248e7c9f5245a22bd26479caca02f70303b8c978187f102bb949b7a709e94fc2069489601c2752222da41090578edfc1083e0a8bc9110b0e64623e320f0bc56c4f2b2bef38452ac7c2e17c5a72166a48d55ce5d3abca1a98d6eacf734249e8820e29721931faaebc3abc1a7453b5b01b52a27284995df4f07a3827bd9567cc31b2bb08825046226e059b52bf8b0f864793926b461574b73198b6b4a128f19607bf1205380127e6597ea4b099eba13b38fa376177cf8d090881a20164d804320469b15988759025f5089d7b98675d554ce4714c124c1c30775cff79229b1b99e4206cbf28bab4017077d4721c263542ea1742ac45cc500d327a3da9c46309ba09742305b25390c50abae20b6e8c8b3ae0208aade68d9e2004bd0c26d21c8096cb97a1a2ab02548ab8f1be5fdea37e49857c092ebd421eabeaf7d76beea2feb7cff7d2376a329549c153354b0187e658306a0c860b1fe6ed14686ca77d37b7c82d66ff62149406b762d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed +ciphertext: f9b34462ce03476f877e2fa98f7434d7ea6a0fc46495f492e331440aa092a8028b6b3e06fb857eb5eee420bad25e0d46652a7d57b7ecdac38dc83f1a6a863cb76a0f9e3ea1ea69c2cda8c76598566448d2359adb3e02f7c8ef17899d9fcac8f7e20721b646615691081e40f533b73bd1c8dc047d48098d68d1aa5727c859f599c0aa14de4034d2a71c45a58c7d546724b4176682e3ddfbdfeec5aef0b4b3a82b3f8966b140e7c55ccd7ad877abea237aa7537388dea3d6dd4fdaf389e1d1248234ee6f49b6bc78c33dc3186e461276be65dee9cc8c4f2b47ab42ed9555ad5f1318c93bacbb25040b66157a3ae1f2db69a8f38ce29a4673083dcefce7473ab8625b4e9ef06c2b8e2861e758b6061595231a234a5d3a5ec49f65e8b3426e39bd5f6c530f8966cb915c31f289bf80c6a4b75920c0c4885bc4916e77e57c40595760aa826668175738d140a1e9078ce650b8e18788fd9bfd5707038f43d44d08de4fa353f7d88737326b3e2b73e3a3188ec09ee52823c6e6af1b02f3097e8993281eeb6a7ad1d8968f8d6bf9b65ec20c0d09d4835f8bd76296f63fa0dca647dfe3e774c834383da48e6fa581e2aec974e26c91cc3f9dbba60ad9d9644fc2e63da59cdac87b56f4725ece40c0045d0db183f966385d8e330b480dce5ed8332257e3fb21c1cb6c24219e7a082e9f7088bcbbd4ffdedcd3cc492477f223e73fef322ea05fcfe14e9371aad6a8032f819cf2dea992c9b591f2bc10c8f9c6199bb07fcbbeeb6866dc6b590a630341255c73c7d3f9122bdc29b548fe4a8c570dfa63cbf0904a1e7753fdd7fc0ba63e5354c00d2b80724f015f7971ec272bac080ac459635950613a02b96d6e1a1e2455e0cb11fed44d28e6d7551e4ebbdc5a64588bd80834e391e3ec77e034499f53a23e4d675242158263b105fad406545298c26e17b26505583b3653b873199cfc9f5a7fd411a4f6fb0957cfa1fed917d94d46a977784badddcae2f6387e9139712dba33246c34724cc922369f3403c0c9ef00a1df5a4a82f22868fdd2415ac1597a1ad54587b20b3067b01b681b1ec6e4c019117bfd1d5a09e37ed83c3023f3b57bd420532b7048d02b92f1b3ea97997a90b78634c4cef2491505210113bee290011a73b662d922cd3ae2daa62bb4cb096a1f66dc83fb72ef4f4c5f96e94fa69b5722cc7b07b7a661b5802f22f6785d35c4fc969b7bbff0906af3a7b8c0908e73af5cb24e5c5e61fee36edf4ad46d44fb96c810738ca2098112d00da86248c251c56d9a2306ff33c8a6feb46e082b3507426f58f8b129c3cdae9c8f5fb05552b215dd90b0f8f2f33cbd2b99293a4f4867365a77234ea178ab1a8d1f7ff3396a251e22e9eb200c2acfc37422f4c81e7a1fd1c7761280ec136c65358226be94d0d62146f5fbaa6859de1ada3e7026f42f36f3a71260e2045036316bab93387ead34818059759354b15e5d3a5a0429b03c0a78ddce1be68ea7e4d3e6b79b49c925d3410569e903533880d2729075d5831ec38b8c6402c978 +result: fail +shared_secret: + +# Private key not reduced +private_key: 4284a3f80be51bdc3c3fbdabe1abe4e1c87cd6b667abbee5c1f4d04b2ff459887fd63b38bac7421b0c3f4b19cb8aa591e6bb8d540391576f7b305638e718c9278fc05b56a9005338623a54d1fa92fd8b6630d4c1e0f5dcabbbc3d054ba0f03443bc872747df23454eccdbb601e4df63f36dc568ad970ce8fd719bb7e4c6d7113a7e4398d30f793afc45f484865afbffbaa1e9346374439af9c3b068223a4474f8a3c6fd4ac8d0d9226a346bcc7fd61273ae1f65ac97d60d0cef9d727fbc55fa3e98d9f6763b0641cb9e27ee699dce58d5d43b8d4c995cbc438f549a4454bb147cb0bef7b727cecbd9d6f4a2db91ddc85310bfbc16f74529d96c23975414f53c6bbc00b8e6e5a1af0d86aba448dcfac9fc5de1f5156b7642e8552593ee4beb7b38a9be050b4fa2123470bb736b79de1b809549c455045abf1ac656a302cdef97f3504bf9b0d2370b2f4728cfb7ee18ae953af354226e55bc9d72b03d8f294bdc586d724dc75ccd3e5ec9bbf60e78cf12cf7953f89a15e9d75b8aabeb895867cd620edf682e5c210a552e8278f8f296f7397a8db3e5a83e5f3bed7b99147d7902de0d73c3b544fef0e6bdebb54f52404811dbee3f7475f7a9b3cba2f9e2e3be3b4f8abf5fa62afde76fcbdf362ff4b9fb88d82147b2a299cf084cbb6d8e2fb3aebd9b89a2c56a76645d123355d3bda97755f7fe9eb9af2d3eb25a66b5dfaf38f37f81516bac7fdfec69c8e5c9a9a9a28dbbfb7a189b66043bc379cdb58f8ceceec0a3ea4e931e864d47c95565bf3bdc25d98fee54b992aac0a1d9197f8fbdd28ae37bfc60e259788b53e8eea988d93bfae57f49928e1776f7e3e8f3afaef3870f771fad75b9938647ff39789af4b6c4a4ffc8f399138387d9d37b95ece74dc411833f3ae935a07a8e26048c32aac4d7c73906924f7ca53ca52eb65fe85ac44983f80fa79244e9abdf8b14c834611d5908d84fe373a7dba8ba8e3d35efd6c8fdc2ce2e0f7c272a350fcdf75d2fbee0d836a4254c67235ec06dc560f7a7ec7d8db8fa59475479f33af58294957d5d979a83cb6fc4cece78e9f84e45c1f4eeb0e873f260f83ec4863242e9a97373f5278a52aea7b89dec7a43974e15dfe58a55e6fd9eb0848e0790df95f898f438fac8e5950d09343c88f7df67a74bb1f75e17dc15ef44ffeb681c42b35c3ceb9c9e8fcf087d5fdfce0e6ff44759699ba6c5a2ca59b76e5ad5b19e87a7bc3049389a95bfe250cfa541db30a9b3fb22ab3d9f893d9d696579648a77bcaa6c4f13b23c65d4c303bd5daa0493c76c9387d186f86bdcea44488f19e7612244c844450a81acb16ef5aef4fe3e5bb647fd46b974bb45c0af2d7eecc3af7799c3fcaacdadc80bc61a3f3991d367515276191ed61b2ca95665551419db0667673e898a13e9c8573077641aca677d8eeaf09cfe2dc78d0484af1557adfc9b32809aa5d6d38030e66b99e920bc577f0064ed0c3e12c7f7f801bf2e9ec89bc79ec893e33a2b43a61c539711d62e96efb9e2ff7e8eaab2985705418a8df7df9833cfbc7eac2d6cdab4aeb9e933f4b844f4b2b1fc04b58681748aafc566d919862db6a516934ad61abbb180f4665caf5907f99d7786ba6a6da04f79b57c8b4dd8ab3b7e3203f2358221c9cc0f2a671ac1846e59b3d5c95576806b571c64746bd4bd541d4c55128b9a7d5208960a2b74a900a426013f6b48fe7fa1adcba5ec1e44594d3850c1a90e2a6bb341210039b48224b97efc62583f5882c71505a96284cc7cbe9873215697ba688546d3a6f97729b22251f479ab3f92cb08fcc3a9d962a661c6150ec6dfdc7560986bf808b4504ea2d44d595a8c34f4a564147cb798fdb6836cb448ca857d5d08242e233e3826797a4191e53cee0b375d395cefad91a395527ed094daff389a198c9d3b28b9e42b002fab4aef17b3089885e8017c047c35152a0e2709cccd7bf4d4a081d3160ebbc3d7a3ba977e221fea55e01823f2f61bfbeb9388d04103fa0c3330770c5ea5a882b26d14c4266b27722f29863b60c9f6984a5f0c2ee8b6f27385933994d8f9973728c5be6898012e4766d842cd1d7b360e415286c965b0b5277a5a1c5f731dd085df0f9579a31b5920227f238c389a723f8c31ea1c45afcfb6a62e555b0b2b766e78889dbc7a8a174fec48e328b4411338b26074002261e3c19c575b42f5a09a268b223aea813706900e785c3a05a98a5708d083c5e6243872ad78f3b456173267d61d57b2f330d01f7be8cac65b1ca46d8492f39c83338d92f3ea9a3cc7b502b115d5a7700e5885f264c384aa36ff52ba08ffa3eee17531915baabb5c9c04033aa091c36a0c5e99aaf0fa446a945a6fa281750bcbcf8e6666c799a43780b4024b97a6a0b14d9722856838d00890b9a982eba53f8254072f07ec00748a61ca18b0b516076382a9a52eb19ad329bbb81534da023cb03e00cb65046615c2d41e24d6e8ca6da872d46a1181133662735c6e382a615707e3d8aa89d49801f7908262c9ba7f1a49cd3c1ce9a5344f5b3df38bf82121cc9d4284da0c662d8b74ca9470051524ad108a2756bad834a1b1b2f5c01b29d640ad11c70643c0553721504ca90edd32cb4c693fd451564a1ca80f447378423888b3a2d30022997281aaccb939b0bf2f5643b036596983768758ac6b97da4843e9d8183633a65e35cc669592ba3a73e0213489ff186cbc66b8fc49fd2916322b30a6f2cc89e42715a8722c672c246822938b32ca6c47f05c21f9da66fb457206e7b58dda0a7f28b93ce24cd182b068cb951c5b29cfe1c30eb226a81bc06629133fa0a590de985e680550dc370108a7519a0b9da5b06170bc8a647c408477333e63972a7452cac811ef60cce2b8af8cc43b848cdddd7168b01ab9d138270604671d0ce57d94481eb1361d9a7f1c5906a11cb80f6454a2c358ad27086a5214dba5c5f69b003d9856831a8c13b9c28c7087efb8cd7247853b1a9c50b70d5e086a4e48ec77c8c6f4a83a11421ba4b0871692477a6b38f68c004f4beb011a137813ac02ccfe7b73271262fff16227da310aff06a8d23938444436da66d7ec6144ab44edd1322b27179901c3c1703279fc86163f804136a13cc925e47901514da5f7c68a23b23347d2b78ecb07ab4d81420662633b8a07d686aea3bb8edb04da7d2616efb147049c45e2a0deb0c85260862d4d25b47932b54487d6396c7f94193e40483c928460eb6b9b4349e1e4c0bd180111a72246c4bc20377a7059faffaeb0f304a1a64398249b1e8626fd1aa24ae11f67a7f23fdcaeb3494842ab47ca9355ece6cc643c3274c46efbd6e927b8b4d11ae8f80b5345b487a5c7101c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 +ciphertext: 4e5a2814271daf633f5cf2f7a4b26ece3a9998020112ece4c2efc9d01de963e605fc366991cb0c46436a68f6ea28ff6b0f9c18f8a2963331cab1592a83a6bb207f4f12f5bf94f6939621c7540ee98418c66564c19922fd1d7d415f1dba2b738f6377e817848069d244c1efb59c971371cbea78c984ea42bb349ce3d47d4e66ab331e88e19602c79c0532df342cb3aac8c739f61c312e9e422357f497a91d02ec21fb79bc101b9933a6d214dc51c90c18a63077c083fd96eb09a8cc8cd240a273544714c2f12c05c0a3314fa08bdcd97276057c3f069b0c1169aea46f7c0c4d3af3ce46fc6f1a268cba433bf377800425f1cb9f2a3f67f3b6a6100f1f0b167982fb302040ec69517c9629b68328b52aa8bdd7ca7062a1f8e11e60a1ac034900bca5b84d956d92405d6b283dccbaa3297d1a760c7a5c9082938f641dbe982e14beb805d51157d1de7486f96b03fe194b25acf9222c8b86d99fbc75013ce126edcd4f51d846e2a883683f71aba14fec24476172eafaa0f4fbae56be9c14e23e913b9d60a7fbe6eb0ed093b0e2c67a61d1f160aee58f554d5d4a08e8d177b5c1df199cbc09d9e3a9bd0ffde82a7d4aa5bd638a008ca0b9036b245646e48f15ba54f6343c959f1008b5bd90465a74b7380ece0c60ba7f4f0ea683fd66442ac6e80593cff95903333bc32c5bd33cc380c0baab1ca1cbf993055140b3d15505d4598e3f0a51ab3936bb7b8188abff6b1700d4c324eb1c6442744161de85cbc43ba2a5afbc61ef8f64d50f0dab7dd7f35742d8646555bd6cf727772bdac602e4315920f825d0207be79a56390ee39226757a18ae0e68260b3f656873d518ea8e4e2bb3dbc6cefe02153378303caae4cdf13f29adffd9bf703e45cc7dba84f06e94b89b34d744a5d6e754e52e6cdc899fb7df29dff3e2842b5a3c1734f2280a01a61f4719e33f2a44218b603886a2bac8f97d3a43289e622b655351ea13f61395d96c6770d2067f7e2c3d50a9b45542747096177908fe2fc903f65c9c7653e95ecf39266de08293ced88484c95773772009ebebcf935cc894e45579372971f512646949edfdbba20dbfc8cd96605e8387b8fcaa452482a36ac052fafd5a6b9de4b7565cb0eb3e96f2164a066be4aff7cbfa5528d1ce00f3f7100e9e4cb195a6d714992476e0b7c28ca7397076939bb4d25742d1d81c64f23e7dc7ac129a094c7a0570a7720189ff9ad0c1b627c467d8ae30a094a84cc93ff199bbf2679b13532f08308c35e6ce0579e27f0a8eee34af2c4d8db0caf056566b4fe655d36a4db8daa7f2a7e5da5470118c6815673ccbbf05c221e1643d63c25ff88faf8659e03e5c0ceb7ab91cc3ebf954c7306740d0af9ebb61f03fed6e1756162764b342377e1e779a40d6dd68207c11f4297a791562d635251a3703cff46075e4bf384e657f1c32ec70764706835eba6628c708a6c8165ff624deb8baa4fae06c71171897cccec55ff89eff6cb72ffbb4db07e009b44f4762d41fed92589f7ed6b1730c3a350cb544dd95 +result: fail +shared_secret: + +# Private key not reduced +private_key: 72a953d60437f6c7a3855582b31ec7d6d97df18c8c53a787117758a3246ddaf89668d5c71e999418e9515a9c95926688beccf5e10dd4496bc0804a66ff68ce40de820c63f0ed9992a92b8227e5d42d7fc1c1839d74b790ddd371d477b2933da66526a81a0962a52b5b511d75f60d86f14e924e6889f5f6a6a8ce5826b7de3d7f68b50ff5dec35a73da9db96dddf04dada4d7b2115e3acc63c753cab007a8ebfb876171ea867197ac987e6bcb93d462e591686e6528e840cde7d3ab55e6b1f3d7fd67d3db8fbdedcdd47ec49355b6dce27598d739cf9a493c9c388614bd5cdc4dfaa7e8fc0c934b95e6d2fbd8e0133a7d5c1563a05fca0bb93b0649fcd92f3e31a3af2bae9cf64d6f5953705c4aee649346ba63db2e3461906fd382569d875556390fca6a86e64db8f27e9d4d2e86cf664ef3c725c0d0b6c799a35a5d5e7237e4d5c8d94511aaec573a4b00bcf24dce9115d3d1b8a73cd9fa72fe8366d596a3eb88eaac8d895704b8f298571eb3a10fd7b6bcf590bdc4461b7ce522dcbaef7e3bfbeace03b4ce5a8c3d0bb6a3d7f4e0d0e5640bf9ee44ae344133e3cb27da1ec771c73b91af1c5a21afb098ffbe418e55d0e3905f2bd43f8b888954384adb7916154f0683619ddcc74086a6982ae8f9b5ed38e44dd4b7690b37a0694c434f9869140a5f4764c968598462e7f89156d44128d2275ec6ff259aaf878c5855f4eb4abb664f4c0d3649a76c3b2b9e68ffd4c44c074d9473fd615bb6a9efa318d6e44c949c28ffa7b909e5cfa7d25677ae323f9f5fe484909689874cf987f6bfea1b4f040bfba798dc8f4d65cfdd3eb5fc49df2bbd38a3aa2295c541c47faca59145eb864623baae4e7975fb4b5b2b3f7629505393bf590b7b21579e3f7477bf3fb2b8af819ff856395a700353b6eef9fdadd46703ca3be8bd33770744b72e6a6bad6ff38ca6f4dfebca7ac726e7a665b45c46e4b5e0ea5cef77f8f1cbf5a35d3646bd63bf0f44a4bb9bbf1562ee76c7c859984c878c2f299e2cbd438f1e57840ea39d3f88d5a4657c88901789438d35a29d0446af5782d5263cbf13c831c3fc4d15ff55746f6d555bffb74ea5e7eb136b73300d41bdea87c3b8ec4bff8db20c3b7e9fbd355b340d234fd7a78d0c7d57e44c50a0de39f7bc84d3b6e61295c04395d9014c875b2b6b9da55e232e83cc0ab15c9ce7527f5ff90c5a766d8b96c5c18a43a315fa5d551ec5717660b63ddfa01459f12e71647394caccb11426c7f535545a3e550c6a7b7acb725525ae17ec946c16fad855e0517fbe4eb3fb12b67aa73ccef08dc8f9d534ec9650132ae38755d10f96804d8f676928f4c336c41e2a916abead7de971f5a3f9e3b6548267c1ae1642c649b8cb7d4e7dba94d6a343ce9986117453086dec2d9dc5ee9795e2ec58bd8f5f81979bfa9fec4a1bd0ba34e5e6ba54c36778959540e2b979809f5adc7cb54ab54f5a58c3210cb677aa8be0d6cd8d354666c7df30e77190ded7a9d3f89c14d7886678c4da7acfdff4bb85be79cf3444cf4be19d72e03a8ce92aa83243d3c19f66801a6444fb6267853df12bb0e4d54e9af982168c7941e785d1fb9701ebee46eae359c53f6c9370e88dde7dbc3e120b4ef784b4d0a3b69a60403f5b9c4aa3808d7b832ab9939b2a5cd15bb36ba710f13c934f0b5dc5f125b4c4604d330608c0c608f14795f690d21ab54bb9a0ed443601f821b3c153dda33f6b102193a2343bbac83b938e521676ea2a20bad2b515c13bdba9c7efa9b8b460a8cfd6a54841bb306819b2ba7adc5b93951653c6d116c86c302e067b358631259012f1d230b892c393652fe9d778e755bb1d8bcb840c51eb93371c2cb377da1f0a33c13aa4aec4c9b79f492ebe34906b6777aba1470787bce5ecc92f494377555685e32b6d52afd230464469adda074d5a159a54e3493a3364d7443d81449006f0b88669b8f507493dfb67b1f012037438437982c868362c172556989272c8b338b8a56ac0af290c3be991c5b552b77a370c026b1c7b4044499036dff32c06bb4b1b73b66d2644d0709f59050fbdc62b36e7977a7278fdb26798d264241914391c71ae928d5c7c7800fca963f4a5ecd9ad5b1590bc941909e142be1c382d7a38b123cc23aa02c9273b5f377d97637091db6455447574bb0f26a250c63a6aedf6ce4ef9cc1c86424b226b06da65158114fdf2bca1c457f68248fea0ba9576bdfc380e45781bef85bfc87ace9f6b5c6f5805bc3403b9e9a86503396b109d2ca2916e16bc4c7a9c47270b77db678a724bb9e461e2f3adcad69ab78a60cbc52134a7557afa452eb758d4c357af310247f2b61db9c2edbb126d7284f38829861870bb494fc65b8b16d97cc5c9150d4c4318ec698cc5704f8011b19037232b1e337911565382450a4afdb8c8e07a7b4127a7d6d630c74098b528aa9cea5249a6a424536a6003787b7723027bc8dfd07b9519337d5125b8bb631502701ae2bb9c352a3407cb3903a617303a5c29cdce23c4ed747eb56bae79084ad705041ad27cc7441dd8d51ac4f5be1c594019143f41c56cf9b1773ee0cf9f116036aa65896420f82406c1b36009e12433e60993b691bf9295ba6621bec9060c82bd3d8c75d2014cb774a3eb8c8c7e698069437155da058aa4a6831c6cd0b47fb425c4f85c5481282107d4b5c61756dd3235ba61a95608404c11546a28c0191c5bf8473135a98c582608bf7c4a1387bcd92b449f888c6b9990a59725ea9c896fc58288c5905bd8ad06a80ac952106d42b298377a0da30db7f68df4119edf5b45d472c3b11c85ca1439d2ea0f074899c3155a51f26af1f52265553e2136ae3a69b529767549f146ecc6592a4448918a892af6a895a27a64480546db66c42b8a9dd029fcb2bfc14189974531c37405812295e0e85c2c44620bbac2b5376463a0490f628ba67c7bb7257bca690ce4fbae57b717423abe164a43ece7b30fc768779c5a82d3265b7a0d012383b1d8a6967a33969a5d368bbf5ca6137959093c9b321539236278043112c8ec819e1d9b532f5c7ad7506ab9c31cf2f4b95f978cf642b67b2995c8f56c272775023a438845ca46a6858b32201ca14f1bc19761452a0a6a2b6ae4bde620cd8685a89bd02f64eb51d7bb5d29e71f009a79bd060273ebc51a48bfb575afebb57215aa0fdbdc0d0ad91120d3799c8843d50068363b5c47b09572623d7ad8071ea1424799c1eaa7165343af0e808afcb39f5cc8a7f5e14bd573052725185dbcc71968200bd272d97f676c08e4a6053f4e0a7071d7abe99607e7573ab27768ce397a94bb7d29f5dad97d54054915eb66be41023e5d7052a10ed1e60e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 +ciphertext: 9be30498fa5f736eef8c48562cc8232b5d16a725fc6ee4d5021ee5440eb211f690d413b3a7f6721b79839c1ccdff5fd07d92372a5a057c9e3689412134e4cfd35bc484d0d157f8b1009594733f8c4ecf3473a752bcd6ba449e4bf9ca2d768563d79749f251d2269a40f627e52be1b5ef09a1d45d1e5c3c01583085b45e637849c5cc0ee698c728682116c835bacd91c865a8010471786a23ac73548866d3429736880ddc0c0f9c3d840c9d46cf9fabcf9f8914967288b442ee741b9ab70064a3a3832f64397cf2b66aff37582c3098014205f219681f1c243b8c96125e8c6a9ca66de25bb74c5d725357cd08402834365061e76589eeb67b2008532bb264291b6e92adc1dc550533901c4aa17d5d8501365acb3c7d4dc219aa9ea089b4d4e859d258a6bdca93e9bd770a19a3727d98b3e7c64d2fe4915f5149a0ffd6beda15552b5b3316b40a9e4e91077e736cedb5edd7e9a1c55f7b4cf448d1f3902118ddd376187c67acaaa74323e57f367fa0bd800a5facc0689480f47b7c0e4a363aaf51c34b36b21e99f393263294b78eafa045d8b9a02920d51e7fd1feb3dd9572cf1061907e7147df40bf130326ff20812957de39e4fe68bad5536df9b14f4bccd8983ea0d6185b50bba47d74403916dda1b98183403d50c85ab2ea42268ff176346c2d8dac280638964f5ee4a4d13091a8abd8498eebaa3d3b9fe625040badf9730f46b1740b83e4cd71bf299a1d4ef738a3f45750327c2194ee42a6e4338350ca872e1a1c3499e11b34869b0a8b5c4ff91c485f6cc1814f41a28400d4eaa5dcd5c6097ce27dbcd200e8b016bef1fbd6ad51e29f3b677f66398f4a3d691a19e4871f497c0a89faff13b59f6041faa36493088766e8c11a30231b2de1080dd5efe323522418680f6ae888543a10ccb720a00c765104afab09806a2da4950b3eef4359f820244ec0864199450009e7cde716cafbd25d3a833cdeaa5f13a346f423752267b96a1d70c0af7cf8e30df4482438d95b73a82ae399a4e08bec89dcb80e948903daca79d347c9dca33c9efb30a8994a3428b255f4bc63ba1cb656c9ad148209aeb4024569922bd3cc7cbbeea34133b70cec836e53405b191855dc50bad0ee9e4ba62fb2750ad0d8d0671873212757ecfff10c479a805d52a7777c300350ec3cb4aff3f28660f1e0a7bc5c39d2fb0f944fd50c6c1f484ab01fb6eae7ac4cdfa9feb60734badae4eb075c7222382c559775229fff982ad0d64578b38a505442ee3add8a665c0c25c4d4e0d872f048c39a4e6bb1db711086b3db81d8ba2a39628a18a92a44c66628d966f11df04311a3fd13b2d1270bb59e0d377e69c169feaf8e0b74616e9caced4a296caa658c0389713d20153b162c1ebccb4e678261d22f095107471dedac0923efcf9935ea4a531211b0992fcdb24b2117513230d40943c3639d7613da960e54e5159df207b17a6e15d0bb4df2a491a9ecb56867be9334aebedaa93a1304d07282e100e3ea2855f6a1653f70c96a1495fbf78f2a7062c87b +result: fail +shared_secret: + +# Private key not reduced +private_key: 33ffc582ddb288dbe8c16ef172098f6f3ddcfaeeaba847e75da86a45d4b6bd985728f5bf967bf84eb96e059a8b4a99c0416d46d117640dbdf9ff7864516cc6d49ba33b74dc313569945bd7a10b3820c49ddf965187d6794f59e73463e70067ec798f43ceffc620b676657bc6cd9743242b6689effbaaa432fa0e5f6aae79c01652d7fec3721b4a3594ebd07fd552f4e00beb54f494586c73cc5727c7dd0f3977efdbcc248bf6da8b6e3687906ee77ce3326e9989c95c521adde7f5a8d6defc68f476f13c23e811ca618e0dfef0ea6fa759b096ef59243c897a23faced9661c4cd4584bbc4ccfe8cddee8aa1d72cc3f69153f540f73403af7c09f6fd53769f965483f25394e51a57f2403cc6ac6471ca8633a4cd0a049669b3d61f82770b7a7cbe4638a8c98b686c499941ad04e9c3a7eaced41b5d8194357973dd03f738e2d9489d6bf4967b6be64d3984e5cfb69394f9907d72caa8f9bf6dc6fc6c801e77fc2d9b2286674df1cf0414832d4193a025bf6448bc33d3d405c134d78948c34fbbf5a54f636b87bfe3d51bed47f87cfd83b4e98c9cff4d1f8c0b0f5769ee7fa190f7fe4a85d9ebaa57defdf6a6e93645c9b1f6f51b6a5d61b8eeeba5f70f64ea73094ff57df498198eb5cbd71bd15af02e8641d1a3d0c093d680a7b4283c4d985eed3c9b5b87cd01ead5bf5a7df42b86071aa81e4d534be3b4c93bfb1492ea54da8e7212cc13655f5bfe9cbf9978429c7c1b3a3615aec75d475eec85469f354fae17b929bf8aabefd539c2b783d3d875f29b68ca5ab28579f3d87f2126598801368ea9648017a77c86d8e1e54c5ed0bc0ec48b1af037b23665c1e675de7a3e2637482a9655a5f7fc15568eb79bc9b8125c5f42f48285ef8a993a6553e72a667dc4ffa6e5978f39174c6ca9a72a8a793c5fc61362c424c5f5fe3cf3f94aa4d4be6e0f1a55e330a6a9c6d56aa86d5b76f3f8a6fa996f8d6de19dadc4dcb34cb8d2d0f4b00a4dbbeedf5be366d12cbdb78c6b88f5af8f01731dbc7c1027afc68da6a5bbbbd1e6a898f36a1971dabb9cb6f04b3881d85bf941de42ed3d0fff2db1f33763c8e6d6dbac076373a226de495eaab2ff3b3d0044d03658590a4c73f5486dd0557466eebb5de76c5b7cc660be0a60db5cf1470074db2679c80da38762a06eb454f687a03de5fecf308c9af02753aa8a93b294b6e541490af4c7cfb06d515d9be34f6b7f73c4b6bb4842b5c608c09e0d9cebeba947fd9fba4eb15e3e8d35c8995473bdfd0051c6063b3d22fd6a8dbacd37706f739a8f556f8676464c86d856e6a599d031c35a2a4d14a5b30b4aa5bfe779c14c5dd4f6a3bec73e8d74eff028b6bbb237f203b4737a9cfdeff52f9c9d965ddecb736a832cc337e078c6b66b9733c4f850eb81829f6f2c73bfeea63cf3b843f0e7f60e35e073fe9b2e76c9c93daa187bc8a863b58a8aedc9a9e443c93521be09719d89f4b40c8f7966df7af854b4718c9ed316ea6aa153d7d336deeac9cd00d72d664d97084e16738eeac3e5fa2857915144f73f9b50864f4937d6e1d285ca9c58eea9c3118ebc21c8374c6374cfe7c846ea8e5007b602bef3e43f68b839ee499dfbf5a357c6227560a1ff877e48a8645bfe5dca2202ca92a9b07a6b33b49872ff21b1cd901020e4ac369fca24c00593be105483a24076cafff8220780c9bcc9150b3a65571fb426ec47a82974bb2a6ba13a13551d737e1ca2cfb50103e14269263caa5b15b16066ca63b867a250318fb7335babe4fd81a2ef56ce7b5beb88c65c2bc6c5a75149898a3d8a552cbfa6af1a463a19a071cb64280da48f3684d99e0b4adc7b48d039358f201a7baa1ffa4ae95fbb0d45776bf76523cd504a379377b740d26069e933748710a63781a23765a6659eb4718dac557a8553fd5be04230166782860a3012290b068542dab126a9f921aba2b61afd6958052baa7b24ac50cbf1f613abf761d3315692c49184cf3995cea8f161c86768714afd1185161b6da86c73a6b228b953dde1713108029d7a729811b85aa906f67978239c6b6f9f4a72656b9536b23691b27b3b2316176357c07b671eb562c41621c7552265914c500a21299b17dd258e2a04352b506138187611c19e7d8860741b110c57372a3be2be7a3b5a6c688390f06a5cdbaeb6dece153ce5181c8080e4f879fc063a68739032481c2cea4611291362165a63ef3c0f436230409c8e5e57c01651471694bb67729919920c6852bd78766a5f5c1b5db45c84ac14c764549b54d8b2404523b0c00052c5d3538cbc00bfd96b8034206714a645d447dc83844ee82c069f63b59587f53c3cb0047cfe63b4f6ef41513ac5194b91eab2a5ef4d7bc55e1762e9162f2fa009a9c437d2c93308ca411e8ad7f9c2a642636d5e89f93f5bdedeb78062032db389bb6fc77be489506a98022e83c9aa9b7bf65c561e1a8a95871e4ab1875535981466286175eed087e61ea034c9488fe953106aacb251c7fa044bafe474c2eb602cdb091687558c02778f4b562692349f9b132fb3a921f75a4ee6c33440ab76fa420bfb339e2f8c225bb85538cc4388522f9628aade183c1532baa778faf937035639a5367cc64c4c036fc25a61b4f85470402e85ebb245a43c92f2cfb0ca69879a0fccbff31a35f2b46c986c66386308fac63978534e5eccd137561a6b110d82a2328a90636b55b8d67337626115448ca7eda95a6d2740e33c6cba56a9f34a95a7bc8f304702e25315f81182e54b2656913939083c052664a9844535301fcb730dfc9c5571ba72f279a0412b98cf64c069b89acda010494498f92838e32c711f1712d8b34303b3d594681305b20d2f8ad43fb6598113415460a0326bbca4c1d658a1462aca2a619abcc5a61a99921ca82882e1569c3902769e208c61124e741630fea09ec58065b889890a667d25bad039c4846a77d17acb5e726b5717b00e0b3918fc767205028cc4b67cb29b49196b4dc288a3abcb112bba52f0cae6ef09cfbd74d939b73ee610f0afa6d8b345d3ee95749cb4373ca3f52f69ecd767893135e7dc4ba6d069c053b79fea0c69b5c1258609046c761c77322a9d4626de19df5543165958a447432d5237f399bb1b9a8923ca45521b21cc4b17d36e724f5a09772a7b8609c9c86140b03e8a10c54adc91204c686049a643db89b0c375a359c943d5961a803c6ad28512839f42326f53b22dc20455c843ad64753498e10145af06270a81213046196d2192d0ae3924f4dbffa093a9eb51025b31d268a74f44b849a4c408426071fe5e18c3ec8b5c44c20aa5a85b2e43c56e051698c75bfc27bb9b1722501a6502d1c0dac0aa7f1b0f89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 +ciphertext: 505762f4bb1982d5097e0f7a5bdc8da4d943a9f9cfb960077d0c303dd0424867038ff99fcace7860f6c593cdd50bc8760b9477cc5ad473619ef4d8d8058c88a267bcb5783a1edb74f5ea36cd39f8c6910061eaa927f7a1e84b51a1ce6e507eb45730724e422c92f61a3f8743a590197b16e6050f4101b6c6d22a12c8f1a8de5f0f6d7c5dbddb65c27e98957905ed7e55d6e51a46dbe462d9b90ff0fbedcdddc99914d3a282e09564b7206c83e0cae6560053a5ba1a83a024650154f91107abbebdb10f734dd54932a6fcfa73d58ee23cdb936d74c7e9cf31e9353b6db031439e8dac753189945a9116358b797610e845e958f827e7ca0aff758d0dd5acc8a890d0771ad7c470586595f54c1ee8f1c4ff867ea4042a227ed80ab49c17ea5d2089c7b27ef405706fc08351945e21f72d7e4fb32e26e3bc21eb99145e3e357e4a10de75f348f4303ad45a83dba56bdfe92857731d55cdfee03d647c5a4ecef35b2ff54857cf1a8fd7a9a244a95917ea87184390d6ce6858afcc22fdb3d53137fde169e0a5852487d4f3ea78fd9d295491ee6fb86cba9f2e1355519994126e1301882964465eabbe07697627a22819667e8079055b8a6fc5dc35e0629a1b74d64b1912ea7f902cb1459a38a0fd5a9773933e0a10619fbe281e0ff7169a791179057df38e5424dfe9cddaf545750c2269c64a465c39ae65d5249f742b66d32033ed35781a099b02c2b5b7201a7b7c2a4e00af0c724fb1d6dc695cf261b60d24ec5a3f028c53feb6c63ee90e424ee5e467f3a0d693564676dd8f2fff3c6d45d5d7f095e44b1b5fb43d65cfbc524b001b967cfc8f1d80a198756c2dc0aebf272f71a4fdf3c4e7857461d7b645a11835b8ba7dd5545ecb5cd71113119fc7432d73f816bc91c1506dc5b4fe1448bc7fffbfafe093cda411044211bf365790c20ac1808f8bd99ef833e29f052935f35ce8620c0e113eb4153db9ca285f31b5c62e09e34cd41b427113e99b4157ad2b6b6fc269b6b350b540962601fd7dac7f6199d08bab7851cc1b5ae954288368cee962af736ad7567ed9a961dc0fd5dd428fdf6286e7265421a2b05f2278a89773b5c77d2e52611d292336f3ef4c6cb230cc91cfbc0098a41d1504253bd378d617b9020d9259bc1288d43adf5cb135cfde2d47d55479f62241de834f10334022b877149b7dee20f2c8b66d35ce27d2d48ed1a9743517d3991c45a2831be582bfea1328a09ae200628d5a0a93157abfe9dfe08d41c1101aed8e1d8576a4187cde5bf5a940b6a756b5872d8b1ffa9a33061fea423ff3d9f0c7a5cadab5f9e9f6845774f112c931ed33f020ad45895133e2f1f2a31e894660df8dc6aa7b27b15f1e868c27308450b4f496cb46d2f45d4322cda850d09e37a20e225d8678d1d1bad2044801e02c13ce351a84197b529f917d0c41f45b02e95400046b2e78dbfff61c638030ae94ef4187ed77234f21d01891c4070b7d33ab61d46926dce9b56bbf7e37eb39036706a0773f6b4399a2368c1f70191c995e5533 +result: fail +shared_secret: + +# Private key not reduced +private_key: f91d8802536a5e1be92cd8a762dee63d0fbf2c457bf426f799884650185cd6e7a978c74516e85542cfe2b913f1a10e4615a973226b927046cc24f7d9e988562974f13a874ed60d7d8c483336e8db2338313606c717af5d7fc8617b5d6899187ed9a73d835997df7e904ff82fc4c59b12275677c9dfb7cd79ca97f866483ebf3f6e33f369006b4341bccc759b65668e6c8bfb3d01feebfd8bfde14b9bdf163bbb8f852ee76037795df78b9a228fc88375fe187fe055397c6b7848b3a8365467669edbeab81a8747fa44a02faad5ebf31873bc4d4da45faf65fe45c9f8f43dceeeab1573bf0726e39549490acc91affc45ab8e6809d53879678d9023fff42eb2c203f992ea9e4b2ef25808f46623a701a453fccaed26c3aeb37c50b736f5887b5cd9eac2cae774783abebdaba500eb9445739eee43e1495fa841447fa19cc360f3ec961ef227bae1e364e2c2b5716d86d2cd07a5b48b35dffae54e6780f8573203d367bca6f7f41487935e738e3b8cb2e3c09956c798144fd6d9f49c2e4cf25ab84bbdc7d1bd3728b7847c48566357dc41d59b76fc48f969e99305d05117cea1ed4c0c3cd56ae740fe2ec0cad76e70f55ed7b6fbfd54da2b66d1242837cd7fd5196971a5993dee6b51f399ae1ba47334985ca2ef6245897ce954a7f3a3e05e75cfa263d2f17b45e14d59803bae9435eda05e53011fba052cc8948463e48367dccc5842354e7fd759622fb56b76d4ffcdc58ecff8a227dcd65afbe9757d8be35c1a0975cd1f67d789c774883de06bbd668fe29b57a5e195e95dfd6bd70352574c68a4c7ed2ef5580b67e66c3746ec058302ba3da609e7f1ba4b572a82e289593dd57278cdc571dffd1cdab6aae39b16a68f5684a5e367c713e649af9df776f6c3488b494cbab596f73b1908ceb8cd5c473d4f4e26a54b388b61aa3c663a316314405049c67accb2a7ab621419e5a09488627b3c3683c3aa198400fb6a53396f978b71189b7c50beca005a79727c5e6e1f9af83fd7063ff6188d7460948b33197ea36ad91ce9ab5a2b9437f961b70c432b46dbe118a4b589c66af374f58668e85e5b02aae4a37fae4af399552796a4ea3a8d37c265c4fe39cfc58689fd6be661c9c4753d373004eae66f69368f976bf20e65510e3388b562b44ad0f90eb2a88fe2237b5cf53c647724f18b94343c1bd6d3fcbe4475e4289a3bbab9a3688f84ae56f42d1b56bb0845b318e7c669cbddb7d9576b91072aa38beda6cfe444c19f39d189cac96e667cd6449c0ba8a773c7106c6b8bc4db100b39a66f823d33a180eafbed9f3d1f7d7d59d7a8e397c68029b93428bca45f495966a79c299e531b9b59b437e86398b82e57fa43391299770b7ab37d7eb3885deb5ed5ce81b88a26a7a9dd0f3635c932c36e99b5c437536ab194074d1dbf4f65285af7bd3f6a9a7174a380ad03c6826ba5fc3fc6e94cffe11ea01477e7e8265b31659a806975bd589f773d461cdeb6c52ada2cb6ad408f5c919533c24c807a9c6e3c88dd0e333105b43044d7931a2d621874395f7944849fdafb55483e34abf4fd44103f53fd8dfe71e34270d38e4875cb9b6d90dbbc53363ef8c18a948ef8f1e49bc9c79d563b9f728c7eda38724d9a8308ac6b70d1c87bfeb07775d56703980c9a563040d1ba17297b1f253afc339ddc11a42cbb051ba2722854cbf45bb80cecaa81ab63ce32acfe953f9ac8648b95be8668822060bafbc10b59e72944185a57f790351a20de6679328169b954465f8cc028558328f3baeca98e42404299719d205cb17c745a7784b97c09130e26376778a9330c99ed84288ec3955df4076d0c9f5847af05bc58352c1364f34b0213a3cd05b2d79108af038e457a30bb5626b1dc404605678ac675201c537a8a6ad67a8e3e0b17a0e8632ca1714dd341831b2790591c1f39c530288dc8448527fa542d64192e407f2304747ca7cad98986c59622b2e63e076420916635a538871aba5469f36a5536356d176265191fc150a4dc7349f07c932c053ef4b6bd245448ba8173ca0896e51092e06537d2157b0c1624d3a29eb0d055d48a038c858e53c1045c392d6f59408df2bb19b35a87737ef90b9fdcc380af6a1ea122838c673e39f502a08908ac33276b4297c712b3c7541c7806c71dc76e9291c89cfac3a56c9c94852ec4a47bf6642349b95f69c43005fbc927113288caa2cdd6175b2a627149027e3688b436c336b51c8539cec3c5537de5ca6955543f984c73005181e916317262bd638e249cc928e048a20045907b79c441cfebf0b9106c8847b8088b4c41fe6b7356d7947ae9a9549305c9278e6e3a39060854b88b65cf9a20266218864c94377a475c0822d454ad8fb42c50a13f1be65dce1728388a8d4a81b372a1486a86b0e6d1abd445559dd3b827b834e2ab3744c0c5abc51bcb7551cc888de7f590ef780d7cc94225830732f47b6ab4777261944cbb3e6d943eab827da40a7b00d8960db1810d028529449dde0c00eacbaa321c14249b7113ba43968b79070b9117dbab36b44f05022bf25a9ec77c7a396415c7f24ce5e364b09a16308472e1d49ce92a41d3b868e4664e93279467745b9e04c39bd67cf0226d198110e6235a3a35af970a73a3472027e1c7368c867d23cbc1895790f2478f807b756516acc4c7dae3a350f26a0353930f4c23c3d982fb90176bc70e0e6b739fb67aada24d10f2ac30685c2d7606fd6bce5df369a0d176fe32b0e0e8cbf583b0e2019167640fa63c23d7223259441152b0c79d9b2012725b6eac08ba8438cb90309123abe5980b6ce6889d6b7d1c756aa7a90181a1422f5a6f803b1e772891a61ca657175f7b815cb3549d3ee613deb001c7ba200730b2771b5743d80ee48683d94015ac7221671a3a711468f8b3be5ecbc1af824dfbbacf87972874e847b399280eb649304a3687f43dfd769e13a4964892b5e635c0a2216273331da5c5b18ec0b406ab1163d4179af5aac5fc8273296e2433c8fd993f9340c5d365070cb72715188b52cc0426146c54a3687f6a57f36b0b1dd639c505bef4c71fadc68d62009bc6b27b3817660df31faad06e86b91aad252b80461200168290848f963010511763f8614f202a3a05680831b8bde86a18dd79248d46c144730bc7b4757ac95f34ba2cf0436bda09cf5a9285e7c924f3b514695300c33cc6d92c280ff81e72b549694aa7aedb46afd394a2d5826e657897fc53285905406430c2b7786e64ba44225985f95146947535aae744a3b3707467701a8bbd99b938f2fc7737f22bcb9f146983a07f72c30933b8e50425fefbf58d711f58cbf9fd8ebd2835a1b55469a2a1b993eacecd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd +ciphertext: 8d02a5fd8b7945dd8e00b27e4c2ed63c4e5566b3b2cae2f068baf7e0f8b816261f56aa61f545d41e18d5cb2f4017c97cb3b15eae810a7f6b82967420212a1f4b794b45d8f79dfd8b2ff1c21b50274fc9030b707191cd1c5b8b519873a2e53ee6b74d9347911019654a3482b80d5e9f15c5e6560bb8f7c6b3a41ddd398b254dba5fdaf91a5d37fc1df8c8fba39f75bc780def00847d929dc8f283b2ed381660ca7848eaeba9b9ac0020952945e07a946b8a4bbbed8361031315c8c5180cf072d039b63f7320616fe35dc1edc4d52635bdfd392a6b01964e232b409ffed11144b61cfb7dd477c1dd0daec06ae58c5a4bc0e609fd35972949c93cbe0382f069a39fb478ecbfced5a059a151fa09df4e2e80b3cac95129d9f75d905cf122608ff06548ed6d9aafac2e21a94079f2efdd3e569bb12b1d3d9db82922e7ab0c9eb43a83df5bf18a1d315048267f5055f04c10e1afe3dd4b8c4483e0639c08c6410acbc2c63e7e0b7e4258575ce0c85aeb6961705bd86d4c95281212b21f84e71bcb4d1bc9307d5fe07d0d530c1f404c1f2ba4ccf6327549a0f98f7fb31ec5da2858d6b3ebe63d27b51a4e3e08a10351dd521fc39945fdf515ce419de7f39c4878c5f71a1afd69a3b6b8951da056159011329d4aac3d5379f44a873a604cc60c5b6ab7422fbb31361a233c2cd664ead5ecfaae4bd71528212736ec659688d29831c01e3e5c03b5ee7bc2a4be63a129f9ff6dd8e0ace373d41e3f32fef73c54ce6d59cf15edbc276703df264c57532a6b30ffa94a32c36d7adc9af13e3a04bbc565d112bba7345c142dfd3a44798fa837492933c2f5f6fe08a43a7ad217ecf6c07509551f36463322ec364a23b444f037a53488c14f91e865285b1087d7d99f063248e22dcf798a2dc217c691e22f3e3d7d3a90de196e8d7bd18ccd0179ec35b2e350d5329af42177d7b731dbbcabbea1e6deb321b8f4f76f95db01c631df3c912afc1438e245151420cc60140451ec7401b8de1eb9cc652a008574ace90f8daefc8541b55be2b033af389226c4bcc9461a291ff6a3af15450936de9b7e923b021ef131b573e2ad16414bf874fb962a7803bb5d620e12b6839c7b889557158e79e4add1f4a243d0f3257ef397a4168a2311f3992ddb8981782caf922522faace628cca4f078f948a8aed18bb6f2708e810feea2d4f1932f6e6bb9c54a906f79e6a13b4d2f7f6f106b88e18fc955e1b4ecd5b1546c5ce295f7215b3b33fd5788e0e24306b8d1059ddba8e151ce1f5c6cc6defd3f9f9d811107511dcd882e5da61452433a24d2b0bfb7420a7924ea90a11106b5f5bc0ad7428fab53bd5fc955733b9173677e8a142f50f005cac94bd770f8397db0954fbd8d38f2031681c644362f48e6f9bf3da9cda3369174dbab9089e83fb4ef1814ec4fd33f4cff8529e9b482933de533ad2fbee4a6341f1c227a69f0c52e0a775eb0ffd8f88060b9555f0edf07791fa1709e769427833a5df7d92ea0ce6bcc5f26f280d1e8c551c7f29cca8ebf6e3d07 +result: fail +shared_secret: + +# Private key not reduced +private_key: 258cd4ec995fb9757415bac7384ddb03c991bc8a5c4be86cb0458f66a551cea67fde748c891e3c08fd9e2fad3efc1432848eb2132d741d1fc1cdf9a81d4af8e9b7b4bcc88d0f38a700dab5beec59d6073ad85697d157f8604be190b8e15116ef3169f93dcfd96c093d72f33b1957ccd07d85ab13ef0f4d4b1c1bbd0693ea9574b90dc6d25fca778d78e51edc4bfddee293ff40d9f6f26749d36d0dd1dddeb276eef316f6d5c73affccc558883fdec958412493c8aa4759dd0848eb0f71c55bbbbd17864243ee8daeda932a5a8d0a3479153a480c9b0ac58b10334c6b186b395f6546eb31a0186e6235f0b2c6ddce0d34532f948cc8331714f7a40ea26fafdccc6a71b979b7f9bdff86e983f1fbeb2aca42032dd260a94b847ccede9ed1e2be6041f96d72b8cec87fc08bf5a75d5e90f79be23e943e16a3e69ec7f6771a7c2826351b6ad5a813e34c24b72dfbfa6f38fb94689ee47bb4720f926849821a8e322a039150866708a6e52b1ff03645ea046bbb6d178bc86d5f92254cb8bbfe24544650da4e290cdbe9abbf0c2f96d6bc7e99b4c1f9e5dfe7fc7a130432bf98b28e24fcb29f4efe63f4bedf887a9a7b6a2ce8ddee5b5c1f7f17b5739b5c5e33e63fb2494fe403cbfadfd59618ab6fea5b1d78c4d0438fe94c447a5afe42d974a44890db67ede0cf88528b683a363a93a56eb6c9b1da246f65fdb0d3d6c38b4975f6bcfadb2c62aaefd8813cd365f3a2aa39ac575595fddaae5ef5c7f7fa49d9cfd9784aa25d7e66c92759f594f1ec2d3a1f8f91604c84d24565dc68ca7b183f78fb5a6879e15bc7b7b1b33bf4e4afdac9af6ecd60417d30107f73223aab0fd85401c9f3d6d6e80d8e5853994ac22bc45e5b7962ae76811780af5bdbd84a490a0a3ce116f204c535c9a3fbe4137a7b7aeff75579e72b75eccb806b674191197220dd3e5a7e3920949e8f6b5bb278b7dfe4df1125ace9336b5bd5b46f5952d40adc780a875b87bbb8caf096d940555c69e466d2976be324875e891c6c326539052c811ffc4417bc61205b430c6ffa1a7b4df509a4e2c9bb5a595334ff9b987ce13f57a9e0e9eaf89ec8097cd330cb59c27b3b2ace5b141f8b86336cb1cf70dbe8dd452bd8cfe35876594ac51eeb621792468d42e99d6deba57ab57b9565344e2bff7d87a68108a8487b8e7ab5c779683cb81b7bb258e5980485d5ee98c7d66676622df56ebcd694b3565b17e24786966cb8ef1ea5a8bf6e6544d54f03c5bec6e8eb392a723ccee76d94c75b47cd8b0daaa7836e1774824289803df38c0f6c74b4d4f661deb27f5d36c647bf4089b3be19a76dd8ca5193d7cb9fb3313f53dbd9765cdf6635f3bca865c2167f3c20358f2b4c487c0d8a801ff1359889dbac532dfbfb38ec8f35a4a6b03d6598fd9e1f84b80824ddc31a36b1ebe1b14cf3edc79ae6fe861dbc4ebb4f7a63be53f82ea5442f4caf3c54e15467057cbdaabeae41fac0ca7658a64fa8716da960d57f83a7e2aa497f0fed3a922f315419f79cc89fc6f5afb07f497f99ca8f4ae8da1b72224fec887e3bd484612204783117aa503fe9aa0e9c251c8f92d8bdb946b42078f07bcd4e0fbee6aadfcebb25391415630db5300b05ecbe19be36c8ccda4c9852a442d4259905628087c232f28871b05512dcd2b769179ad09a9313252dca243d73b387b279a1ca1151fda2781ab7757d2ca5c64052c8440bdd93acb5152203987bd5a693453957504242b3f8667d3c800e9a969372a13fd014715a0bff3a24c8f31a69c329a1c30ef37ca29903ce0943982413b0ba694ed53cb416f125151c8f036709aa2174ec365a56d608a2b54ec71183e2b4258e71adc09c81fe05065be2bd972979eef093cda03bbb82b6ee4180731c18fa997195d4917476427d7c07d99b663c4b50a9cbccb3c364df354685273b8b42b9e118a427c765b08036350a330be79b3ef4171b953faee56f719483717854b29aa3385545d3c9cd71b0a070aa2734f8327c095aff6b342584a570371ee7ca3f6a2a2bbda60c4e3aa264078b6c9bb206781f229b9a5cc2bba0c8933d01b469b4c687f5a1749513bfa3401cf1443ec0558c89c58cb795e3686640f6350420bed4b839ebc8106ff7043107c590c0bfb753c0aa2305e4920d1f639c3ed400a2836d3b638051b58ea9580390ab57dd7138421709759b89aab4279c5a9768cabfc44ca6a2f1cf5c039e2b0563a9048931f1565d164c13ab60e4c92ac843451cb75662ca03c47a652445b7ef0b8e622187387059a614cb08796d34758133050161743677594d51d02f290b3cd7f23d4cba1a64377baa36082249ad896990d79aa040a7858f1b3dfcb43adf040f1b245d216b2e23420e0b9613e9db6c7535063d05079c739f70759f7de0291537aaf5d6b3f4b6291c147855ea9a79ecb0ad80714520971011365dca81ab5bc0d9d70ade36a125ab2295858b79370fe21932504b9d583c787bf28762241a279663baa450172651f126bb20b85349b6344ad404e3093369569148a2a8cb7b7e08e68fda3408349b4761a171b0c2c85b37227cfa3d7c16a3950298c100955402919d14a71e7b231d60ac11e81a46515cf2f25fde507c0df59b352187af7059f3620026c84469610d0098895a3330f7638082d5b5a925afca637a1d160ecd2c83fc522a3bf40591fa5ecfbaa0a3b1859fc58b1d157c18b71d540b6aa398179bd65dc00866275cb0473964ffe5a8c638bf57304d32e24007b3c61429881ccb1a0403566bf3c46d8a19e852aac6f58d4ae32f45cc7b0f5181f18675920680c2c0ba8ed283fdf20c383bc08ccb7d46eb85204126be034374769caf39ae633924bc8ba6b7b89daf72ac4a86bf86008c02fa0fb18a5de6f8952eda2526fb1d994b4165149ed11b578359a7b9d0bdd7257a2d00b676268a38528fe34140eb408ed5b916c0c43d79ac29b0946702341cd7c20ee23c16a6b2cfd1f9107872b8965952a9a45e0e435c56695c819b71b9a6b6796553271c029d06cdb0308112a89ab4b714566a4b18d03c18d223fb6427c7b3144e64874c26a8ca418cd6f14e4cec2a0402698aa1af6ef63264806e4b42ad3dea298a404c1ec260935166418068edb71abec21040f9b3eff4389358b7cce70461ec8c0ae8873a45504e8688e266787421343699089fc31f84ec95a9f2264eb3ceda71261ca791d052a43808ba1f4706717a10fc4ac21b625fd324cd86ab8b3dc254da31bac0f9106028258adca5f754b309a6c7dd30e11b8701ef37e8715f03c0d8a32e9fa39d37e7637ba00940bce58a5d05a4840f835b8ce39703f77bb31f20b9ee4fd3795c2e326244208b288c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c +ciphertext: d09bb378673304cb931ff7390ece8f2573c1cbb9275b8c26bbd0ac09db08c43c0a9b77ccade71a051de7be9616187ddb7cdcc3382ab8f6bc6f52dc344a20b519a7adde7abe4262e2f1642b96c687ff873ce23125c8b93323f213dcefde61faec8b976a27ad4994887e92f0f69bfa51e8e197ac378e324307593331ae293c91ba16d4359c7a3d43c6da57cd988389d014c3c2bb6e3e7ba6adf91d076a408efcd265935fb6332a77595f7ccf424ff11657962998e0851db1ce4c15db64b7db28986c272bbfb34fd20e239c7ef3beab2e101562c3dac28ba965fd5c49dab3085ed0cf327677041cb38b9b509d08f4140f7fb977bbf1e7bdd0b86bfe4d1cdeb112c3bee679bd29165dc9a81e7b1d9fded5b334ba7c3066203731642e3f1bdb606cfe2855c6eef1908db8ae2d3a7f4cce4e517817c696ac5f71f2c83db6f499d019ba3a1bd0038b7aa074eebe4e78e0a2ce7919bdffda15776489ea76a90246e5ef8acf9d38e44ae3eed809c1da8e2c805012ebd83e3cab063d6084b9aa4cc0c8fbe32b900128789ec63397d45afa6bdd7839c006ef3d9300cc4f8cdec1a565dfeb8afdabd1b2f16a67ac789348b6caa780d96f0b34bebba3ad00be9231a1ac55ed651259573015133549962b5288cc733431da4aecb190a8d43fab2ae764e770c735093ab4bb61562defa7ce3097c837f15c8ebb3097d0ad7e812e24467965938eabae899f82eb417132ef67e9aab3e8bb2c535edea8db70cdc450f8f4f100992e18af931fabbba58d9558afd20915266d71e92d8f92ec3f3fe455509e57bc590857edec1873fd1ce867ebfb06cdfb910607856964913181f86ec635a32266bb2b3c497723a0b9d056175f101d8258b60087a6de5590cc73f8b0e68fd04e187162eacdf2a5f0e8ce480ba8b45d1ac9e003b4cc1307dfc3e6e101a96585bb9533e6a6e4d0dbec742f73a032ee0b249e97791128f63c774c0203f4c19152302127ad848f427bd90c36126cc3a1f8cf3cd81484789e0f51339ecf4582f6b13c1f5268b126a99490115d544ee00e8512f819ddd4ae3962109b9c4361bfdcba56baf5fe9a541d646da72cae1fae5cedc8e8a165790a430be4ff41a547c2a1fe5bb2a13af50f631afb24a55e90356179d91c922f276a202c8f7a837d77710116a85686512fed7878ec011a60f40ce808bdc75f0790d2fc9aa3dde710b31843b5c1560c8bd75cc6539ad939bcbc72768e4d418e119f69f5fc7fc00bd5681c49aa0d1d2f8f4dc39768154c10482bc06a894b20b8d134602aa11f1be166a15dff347b5a695e52f2d44ff6c50f371ee169ea64db848e1909b6392ec4b77a0658fb1243bbeadc8095ea5e8d81283e366eef91b0b2070c2e168dffc97dfcdd16b566deae57ee6a163540977eaf31774db72d21742ddfc1824eede5a9e72e9917aed7e3000f0ac3f48ba0be24fa86f62bef852a2d3d02e61e3ee6137f41af011b6dc185127913adf5d387d6298645946d205cb188ff6939b0ac696e4d75d44189831803257d3f07a5 +result: fail +shared_secret: + +# Private key not reduced +private_key: 8c8e4f8513e5f349d1f955a7dddf971bb73d44db90b874804467e2410fba681347b4dc33910ba22b9d3f4808592765f3599aeff7cb818f8cba2fdd668edc45f1997f3e76628767b6399dc35d334f209b62a20870092dc7a41689a4d8e209bd557346edd30642baea86f25bbc88eee57f0536868faac0958e87fc84c53ebb2eda3c479a9cf0984a90e668437d46f2946e50a43e3889aab5d649b6ae7242aa6d645da1b72b971a748cd3ada6cababd4f77b6ff9d5ef37dbf223ceb5c2683165b9c87458f84a4d5aca37dc8e9969a1f8ebc73e7274993d74c77cef9d7e536b1a197ed1f8a350577dcdbcdd080db31cd0ba9269c84d9ea565d194e22d3c11573685b166f02245efde45f04dafd851aaacf47c711a536aa1855b7693162ff7e51eb52ccceb6322537868386716be6c59dfd2fb43e9ee7c28d5ea5fbccefddf670e02cc3e24bcf75389651268e4c78949e284feaafa0fd44f8875c7d4ba669e107e26eac95274db99676f6a86734812f709cb54b067d4c136b5538ac7c6f0e8108af7b115df1166fcb1183714a2c9a634a8bd5479660ad4fb62441cf86d13a3f93f669420edda04d18af0d0f49a3b57e0905758c7d73db3c80e2634366285a86d6aa7fa8561fd4a6ed745aa04872fa7ba732d5e4bf045445cc4455accc40e499f72afd3a8ac73be9404f3736908745b1d4d985e4920edbaa2bb8933063e24c4c300f83d2fa634e6c6830b377efea4965d58aa5c653682e88ba5ab343624d9f4c1656f187f64307e234caeb158ee92df5d3f97868e43a4d4eaafbb2ec38ec0ae936ff4b40feb850fb5f4df3ff196377504cf5ca0989703b72d72494a32e7276c9a15c7ddbd4dc76585774b36efda70f553807aeffc5c6e90de97bf5613d35857e7b4a1a4b805956f24b4a898acdbd4fd445cf64910194ae3ac96cd1fff144b9ac51fab7ef77eb6af68d7f6cfa3b48b830bfcb4a8ffcb5b668ae1fe24097e308be85b74f645158862695d080d68a918bffc48fddfb33c365934ef37bb5e7359a6008ad73df55b4f9f1c7be926c9e7cc01cd3a286b8489a53b5a7429e1cbfc435d7f33bbb5ded82b58cc551ed3a41b9cca243506effef3956d19dc87683b35cacb4ffe837f861b4633044773e5c399f8c6424affd05d5f8afa5db6f7bd445d98c5243c93255e3043ffe8a8a55039b34c2bc64368f871236553f96b80d9d41400682f05c6795b641610d635937dc4526baca74b516cff4ab234a6c1f7c471facc08fbd551ff6927675f64f3cce69d34f4596276647c6c8c3d53b54014b6596fcceb1cf9609c5de1d599bc728a41ebdc3e2a6c41ebc956fec70d2b58866c3c2665ab98b153052e9e7ebd9ba3fdd37f62c829abdff575742d82dffdaccce7759763befe47df656ad878ceb1b7ad5b4cd3feda23217f7a115ed74f84477ab5c2463cce52f95f656978b57d708a4a2702e949635a958fefbbcc9c8c83753ccd6781474b067099425d7d5d78631e69632dc69d9deac940398b8a79e8e2f69587a5992b354b54b7931d0b4c0ee06dd61b46170699035fad14778a28d9af24196beffe96c073d3e5f8ba65aedf29df3b5ff445cc80e9e8b54b4f4346c7107b652edf77d9ae95c59ae8afa99db2599004da53ea126e94c903605aee44b3d56abab69438320c91918abbb1ea2b6953753e475bc33c159c590bed80760731565279c640d361de46aae78d0a837912c66c5a347c0946f6943866750c6ac1eee713cb8636e543b2f8a08857d53834233603391417a23c88b6003246a0c8ff39edfc7ab8759207dcb7c1d923ad891c31ef564e5f53c0447a25728c934303bec26875c44a26aa36e0324ca6423855bf2ca04e27cb8f42329a3a0e28a7285658fe1748a58c538ddb710c6d7839b573b30a5c4486a448dc0bab7c07b86279058578d4a56c781752e8ab270914534c51923a6d0c226967313695987314975dc7c7a101578f326d02a086513b2608a8b58ea5a63f2c6a1cbbdc847c312f5a2309c1749c349101a42757073224b0aca598a6a72cb308a010c327afac94798f8b4c6a1279389c12d1c3015b02e37a95705d3b2b8277c2c141bc8148c94244ec5c50e65790fd6e0842185a5f2ac1e72a21d4d652a63001c650b6c8d06cd758923d42479cba96d7eb396803c77be54c831063707a35067b87b2876a1a0844d11e1a895db70d596871fd1434798771b487aed562ee1d041c06505786205166812fa718424708a207cb4a6c25ee78b8b85e869bb82a89f647a813b97dc1abfb22b430d37adcb43b7bb1616dae73b0d606940e5af7d139f73b48b4618bfd5c22274d3a27c20195794344eac73b9a09de5cc4e59a2853a412eed7062dad16b0e1aaeef83221d34b3225868da033822248e5e40a692c20ae4cb112b9c4f9e373d6dc3393f385b5f65c7f14b66d7d0b31dd7902af39812d76d5ce73ebfa4c392b069be694bbfcc7b9c0825d158b431898c9cc9080d632196378049a5a02b43cf83d37e4a731505f23009661070038917a93c452004a8023b1da44b4e5cc53adcaea033c8759a3bb4bb52761191d76c95599a9dc2a2292bf37aa3803278726b660233e9b476748a31f9fb9f2d93b59b9cab33356782a976e05b083716262278349fb14b806a7cd3e52c1a6a6f603468c4b420cd544bfa916d157a21d15c1945b31f7c6285c30529ddf735350c92c546ca776cb44360cd62f05620f8b23b94a0a720270f122b0f22316050b7cf6623cc0658a9146861785c03fc4e0833c3565ca4ebc951f5145e2e434555d45c3819ccc4c2546673c18d70af49f0aeaceb83041556d52754c10b1d66b9c0519985e9b0aed559074743c8796881e5a189a4707b8923097669b2d9a162dcda33c3b825e004aa20b1749eb198299476bf45a519d341e9b507b1e411bd5382a6a84b6dc9c1bb437e98546074076ea76654ca6519f7a71d1f39c5328b16a5b182bed6b57ae058c3201554d612628274bff57755022b7e653dbb461958ca3eefa117b57299245a9917158f2409384a7b234ab390152b01d1383aad99747258c61bd24f7b12a0332c6d7b5ace324b4e1dd9b3f8574b17382bf387155f0abaf4fc8830b7774275821e91a939da83c9c189ec08774c739fff041d40d512b171c2d0ec7e404349bf5a64a876aaaf72c9c16a004578842bfbb6ff221debdb6ffc8a6de429ca0d7aa50071bc8d68c23c379364e56e4ac247a99523f8d90b3de4b049b526f8961621b98dc534b9a756aa9c4a1b2b4c7726e701ba03d885a39d59a76d92bba31013f2a4714ea3840293675aaefa1219f8794d114bbb004463f9c631729734cb430f26f38886537ee40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd +ciphertext: 5aa4685b76a5cceafa22c32ab22392c40633343d04040d943150b99eaeaa481849d61ad30d813096b80a057b7cf919a261945d81e9806710d31b288be2e4a4c64b1930f4846e72798a0eddb67b2c447eac1f14ca8e0af01e99e1091ac30ca410dcb7eb7c992f9accbf556e0f4744d89dcd2a91c6624324a18cf9b6cbb4f4d482a671d0989ab0ea45c8115aa5d66cd6ce7d8dbf66895a3620075db3e2ab8f3a6a511ce88c3006ce3aaa0237f1d28986b5ee5f0d77cafa7d148b43fb1b9900ef24c5fc81bd4be5cbfbc3433f6121aa82ea014f7ce1823106c4b7feb9f894fd84064def9af7984cce8ccc62d1902c630b98047d7242116fc5735e6a5dc1e1b014eeb0815c056505529de4c6174b06ace73c98c23099556802a3fba32c715a3a6b62dd4dff023ff5a51ff62ce9acb7b42c7b6a5cf2859e04d18c1e56c778986e3c81c6b44add109b09493f318ce089d7641d84ce257dc13060383015b9e39d3988a1a5b0305cb75b088a7c6b0192a2a54e9a3de472b86d9a8a9612a19686d4a757cff8a8eaa192f3feaa4bced756090d4522309ee5c60fd7644363831b97bc5eeb095d9cd64a5cb97fb2e01e51c71c8fc745020fb789323bd2e252a6c52024908d387cee4c23d2f2cc38bd82eaf1a85ab9646856c434d0750c578394ef48958585103469ad69fcd688a46479de7d227809ea8b7cf9330d4ec5be978a1d2dae5b070b64c014d339b2a180328dc2a36cf83d4f7d5a2675099d2b35c91df8e4a611f4bc400a6b7eacd4170b9cdb5d5dd82dafd8ceab075f63ff7f6c16374ebdf38014a668a6c327580aac261e2194a2ba711fbfca6f73f35b2ad9ae7c1e7807c7c038b37f09c8be31759dd48267df69d00a2f6d6d9b00ad0d34fda09fc740b664e4ffdbe2971a1b88d0de74812827058f702919f700327a153d467a479e8cc06b8fb6264d6f53e7b8d84ebe4060e998a4576624937438452ec7f82ffe78337c2e8ac8ca790be987ba3bfeaa8495cc46e0f914a01b8af50e6b4c420ddf78f5d79b19575558951a713e09a447cdc52965afd3ff472a14203d393f15ba0c77bc3784b800aa78c389e3956ace626f5a28c8b67f6d9d3b7ba5c6900673230559312d4c8fd5b34abbc05600300d66ea2c8760676c205bbd6e63b0104ca3e30da4f2d7337f2dc28ebaaa7255bce5b741286ea3317e73d060babeb383d607345a808754e4f2771ff3205eba4ea36dc7d5b7534fd32b8701844d2994befec0697e4d3227813625e5d3f46b7892c1ce63c7ababb97eac2b06dbda7e460042c5d075bfd6c8b9cdf8db87c5d416e0a67d44d27338f73d5fea074c94dd5dfb8b50a32ea3128fb3432df47495120337952b1dad75b4fbfab5612c42e20ca2706728af9d89daf053141b264c9039299972ffb75c38a16a737bd89f88d603b5d83650a1f585b72e0737818cceda2fe57065f0fa2c7358219227cfde2d97ea5b5e32e5325b08792967ab8c12772a8ba9167e41d86ba7bcaaf548e1c2b0701fa1daeb45a86f727e7d91cddae1 +result: fail +shared_secret: + +# Private key not reduced +private_key: 05e74ae857ac170d3fda1e741a23f3aa7fede488789ec6e29099f8e0435aac49ce2097cd03ebce2c9cdaa33fb19bc64e81d38750395af4499de139be5d8a4152b66a56067cd9a372c667ac153e51676399b516377daba3bdffa846074786f934c9cd91921353779b91c2bfd1cc293a84feebac68c3e68350a91ce3d666f8f379c1e28ea8a9783b8a8ed2be367cd226f9d198c39686c02339cb92278ad2de7ce563797e9b4215ca88a37a9379ac6ccd5f3cda4d49225b900dee45950cce09a7d06733d0bb7eb22b8aea01e3dae26975fc53795d2b49a27fda81edd76ca983c0b8b87e96399fd6869aea85d45e59d5a987234f515d33dae0965d5ee3eccb2fa35b33c5810ac4737481b2448f324b7c208387ac045c0b7c9b25a678526857c34a7748c443cee3fbd4b7a2155ab7d77f97c77d80f507ae2309b6690d728d76e47279fac32d63f3886e111a5176387fa51d422bf571c79a4d8b764abbbb56ef845cefcf3c848e671009c1e983465e19decac84d3e7b567ca59e5af8477ea89dba3784308c680033c3ee65b670aa43fc6932dd9692dbc8839bd94c89e85e21bfb9000f5ef86afc9de7f08db5815e73a4ed469d38a967bb4fb2cfdec959f4d0abbed9581eda23fb7e086b82b2ee309b64977a77b9f6cce5ca2e49e3587c9bc5435d4a50a62c90dfbbc339b3467795bd3f1f5bcc6cc83b797d4d7a6e880e953a57cec99b8c7939697bcc488f0b6601ecff31ebca4b25d5a01f962e153a174d76a9f6ae88cb737b8ac4f5eca0fa8b3bcadd3f7b578c8eee60daea49a13eec7c0d7a37cac38ffdfd07aa48e355cbfc43a540e9d96dbc5504949239dcdb82d94755c4ca182852d56b9b9819c42b7cf2f3246cd4a879662cc901e4904ef791fb34c7424af3887fd4628f76e45cc8894be5f5277b67c391177889d8868a8c14949b684467094a9e2566bdc58b00b339e3c9efb54b63e1f43dc57a7f107cc988dced65e456b863f5ffdeedb5a7c9470bee8273efecfa57dff3a1de5ba8bd0a5c2004cddf54f699c4acab69d730c8aebd853a51a8ccd68839f1ac397ac4a9b6f54316537bdb99879596bbd205e8b296906345a25183e8b4146d4afbb7e2cebf377337c6b84d3363b49a7a8937cb58db45f4a35f5f2f2984598797b835a41a6eb99bbbf37077a5b6dacdb26ec86b19469e4b99c5b552c63c3f3ff3e4087dc369c49e6f696f11639d625647b3fb9a39adcbfcdde232dff06975c0c7b931597881af2cc267da7f5b4fdeb54d8df9e39d15a7558429390048331d3ed9d2c46ab8de6b051fc1ba8b6b1f9b58a47c3d54564e7054deeb43c80abc8d6789f324287b3dc3f9339f67f53549b6b7fd94d9bbb3bdfb7c985ae8f4a5c4afe8cda99f6d56ebd287f3bc2daf88446ea65a7b86cd74cee48feeb881ddf9773c5c6741ae78e27d7c50788478d3500f6aac23bdbe3ed5ad240a9a336378af185dc25e9c0948cbbb8e790da7929ecb464406cf618cc019a84868745591496ca38ac57dd5d10bb8e5b255d7acf5eedee75dcba3877179c4cec474101395d9f831242cf547487636d39f1d6d82041ba679b7a1b1d5bd0b295eb137ab4c3edd0149b4fb0c8df65e5ca6d7a67393a9f5b57aa7c9ccf796828b704efbb194d5d895cec082f5dccb78b59a61090eada66093c84267079597c9881dfb2ca8fa4cee6682c4375eee25a08bc0766eda05bedb2cabf734c4243987012a44e86cc013b7e555bd15d45306479a78ea7d4fd7723d3b074860914e24395b264d35e57867f0229912c6ad0238587355b44c155bf7b5e5c872afeb136bbc32b1a950b3122f3a5b71d8c140940b1ee62a5543f3b61719896499721f5466f7b57b119568c960a3796bbf2c8877cf8a762d6a8852619abcfb85ec7c6e79652311490b03f61bb18a23fa100fee70a0fc693163b28ebd6505773324404341e6c79b0562207ec1077cbb64053a4447866efb1894a6a544daf283474c6e0e99323f962b5cf4667640af8351059ab42e0925431d864339258752a3b08ad52f985520a1247af44366f3377d5875589ea9a8e38455a3bb5ffc29083664cda47988f4f0c59622454a7109a6722a77703b0a69a4db2ac154d53a6bd60603e9be794b0b1b0b88da57a64802ac771134b1a4776d07703db8746e610331ec3ad3926891c05b4b738d3564b79b59287174696d119717d3650aab049b401466467ec352102ce597f6e867726543067acf511975828799f920bf139c176fea838144797e79441af218d9c2c0f15a350ef82d588b45b86a2c58464239c121ed2a7650d2841eb21dd6547bd32c0e4d654a3823c4051609ed49220c2651deb6b0e55a00d261caebfa9c17d82d5f23a111c391d06c0441102c2745875d6905ae21412c2c14ae51c5609c5872828ca8d09239b82abd602005cc66ddeab736db3cc0e946d6232177e6c012a8672bd62d0a4253dbb5a908c42341503b76d428a0c38f7e978d4fd2532d075c08d9cb3a440018b323dc3ac28bf8875e412745962e512c0e0e81b4919a813766bb020c831ce0c3eea5a496e57e8d598d3bb34733b6358cda44b1960e8890ce525578d100257ed8a916a02fa2d8b59478966835c0603a8f48715ab2544d0fc487a7eba7a96a6e3918b9c9cac54c841c2899cea0312b40f9bd93eb7d392a4cb889144c224a23244067a9712ed9cf52a15edc35895c7c121822468716704e3617ccd59aeff5120524495d44ae3019adf7d25bd7871b2a98a17ab6c68c789174a28a4863ad69362fc5982aa68b3c0cf35fd2d63d064556e55b6df0d636dc5ca56a928f19c61816349c6339c59febb2b8675807a6a9181a91620a684dba5c4c596a821b66014851966547d60690f7a805bccc4bf9620c188495795c3dad55c8e7529fedc92ee3192a68bb9250420f6ff04f939c82c8442350d40f9d518c10c53ed5c3539e373d0f955d3d451e7873a22af2aa87c08105c044613334e6b585aa864795e0a6af988affb2b2eae653be5c76383b66f5205e1df2b557b66b0f9b7063d3039510ad13a9b5ae6bbae433808db7275271917d75524eb2203202c1f0b4c9afb402f5798214c28667d28727f89b95d3294cf38c129a792b16161e6b9eca60c18ed802c72225d585c7f59059dfd74944f764035c073119395478651f88352c204f89222bfff7c8bedcbb6be1728ef74e54435b40b22276f1199ef34673ebc70047956a543f3d8569f334a5fb22b4c2bc34aa9a4b27a11795a730eb96003ed4662f2f0344da2b88e634672fe48e40ec83f4ae731342e77cdf4a3acadbc64e263f1afdcddf2ad63f2fcd19799a0a8f43ec867477e249ed5fe716f8ded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 +ciphertext: 0924e57c036f105436d1eadfbaab67c55fdbd49ddcd120c08685ba7115c250799752ab883e52ef0d0c4d9bcd46bfae3b0b6df089894155bc34fe4b0db0a74fcc95cc5d56b9060070b8e475b96ceaba577832790c84eb87242cf30dbf9b9c2fd61ffc76f4894495b2f2060c10b105f9845287e9b84f10a187446714c968471550d772801214a50d9ae0d6ba97e60dd0e3935fa6e5b0425fcbc1c1c47645b5974f4906f3f67efb70ca30f01b30aeceb45bcb578e08fd006c641c5c23ad9956134de1e4b50941579266b95c092b96698b31eba48fa03eb2d38cd8339e17bc45df2a7bbe159257ecccfd09573190e53193fcc172585ba3ecc444c8bed87f0d9dd25383613e280185b145ae6be22dd90606edc02be32ec3c7c2759a9d2ba907eda6342aa9c4815edebdeeaa79538c440ebf3f7a3610e34aacd303d3338547dde1ace59f6749573847c1743694d29f99ccb1ccc6764e2555f51382973985f02db7aa11614a1202fed63445500a23b1285af9d6fcf633110caf23de2ae3a8310d7b574f49daab50988f00f7e2645bae92392c67e33c3bffd4551d5bd41bdddeda4cd105ebfacd6a56052653414d224becf74c68eefc15b1af21011add1126f949fcc8efc68f8e5359fd27c0662dfabedfa8481a04c4b355f2c1c31b0c9ee202391fdd4e3e206d96ee49ab52112a04203b8ff79a2db64f4034083b3854d7b1506c6fb2afa95c896432b969a62adfa1a017db9c3e7d3b76fb51e73f17c7cc762889ff2fb8b1066b2f05600d52bbebcc8bbb35b91e6eb9d270d80a995e59027af9acf9a1d0f80d028ac1f3bed3b3ccdc6be3a97ef00215ef569c000af549f4e31d5913ff376db11e4e7acf6745abd40fb3961a3758e375013c4b110e989474c91c8ade63f9252c09a8d760361b684424755c47a21d8aeabecec6d2bdc16d08a1ec5397cc1d0ea01c5ffb45b5faaa8043694cc073bf3632558eca1080388371768f41d23fc1a4017d0ce0bf51b4a85e6019c2a0c728e5c3a02e592287de10f43a2b9ae9e975afc4f6af27955b3af3416f4f89f818cfa602e44b8a6e32a57b07a567bc60accc98e00093d17d4b487a30301063118671c62cc5ff595fc8794c7c64386e4be6da9c580f3457630ec9e4d42be26ec0b9265891d2d36b92e3f13f0cc850b04f5079abbce1be7dea57d466dd858c0b6d5e15990a09c1f7d0ecdc46e63f857847b3535d28a6f05359205f45537f93820c7ac5e83f19326b8f727ff744bf2bcfdadf56a14412697ed028586fbaeab5aa16354cda157d5410c617520fc90c612c4076b82692364a32d9e7763d3fb16421f6c177122533afc75f915539a523c8db1ca9a64951183154111978610fdc9740466af73b05cd0dd380f39f94c429d01e0e4ae27ed1495fb9cbb90d0fc78dd28e23280efaf77e6ea6794bbf342f3801148aa241731680738de27ca171c6b2b0ab1099bfade25362f610022853ee07f68868b3a2abc899703d3553a6302d55d5b2f24112fe035bce7acae8fa695ebce771c458fe +result: fail +shared_secret: + +# Private key not reduced +private_key: b6f76178bbab01b89444ddd292ac914d658045fe3fbcde9cd5cda38524ec6baef08665bc46cd4ad83e85e6e3a0ce2dfa8defd548cf335ebb3bd7e9ad50294b07d9a45f6e74748e4cce5ed78fb58d2dbcef872c6cb96c73d1aa4356b9e7c957d4a36b9ef89ec6c12ecf9feff70685c645a76141f6373b8ab6ab18963b68dae0134d8b175382847811a590080a3dea2b863e06a0990c9383a9d6e2f942b864bee85edbbb17bc1db6373ec99b45754ec78531c205919c27a4f2445b8a7776848e970acec9a376dccad39941e496aa89eff9df671b74580df965d11f6dc6cd34b9cdef31179c1c4746d49fd9562d6b457e74ecb3f1a6dffae95fb632fef025b5675385731bb9f34ae36cd90c3e16fb5ea2494012b964990dffdc23cd0db74970a6efe54de29bfeb94ad5b1bd95931aecb3650cf67c8ced1678e64edc9d2b869a4cc95d54759182d6d86795f46794a6a008e531d75fc7189416a9b1efa3832c187febaef474a8a4caa5c9d09bf38634da3d2675521ea3a3e830266473b7fdf287dede23ba34ec08c1f643a8f2b7451973e70679dfbeb5be8bd5811764e2c1b83da827d0ed9fbd03b9516a779205c78f737ef6d67ac2a4d5f8663acd995f96d187c7f7ef31a967d7d0f9854a5cd51b2fe79678adc08f85b5e58252dd8f2ebde5bd0feaedf39f6be56e53b95be31651156e6175a5ab456d7612fc40f08e4c9bb5fb6c16dc101eadc8234d875f82c3dc5e106753d03feab2996ab9887ed5334bc7b83d6bc4e3e1fa9c0759d3f3c94c685c660bcdda6be85c384478cc4fbde77e5c9a3bb77b7acab909ce428b955476c85f153263874ca3a7429c6a79a0834c15237dc5fc7a772d897876a3c0a7de1b7b789a13482a38c5456ae87995960806304ce34b72e676fa589f9823c949a8eb6eeb887bf7c09fee476466d2a74d598cdf9ac48c94dbfd771f46acacaabb4bbb73e94eb4be5ccc886987b56cc6e25a7260b3364ec4a897bcf2826d48756a530bdf6975a9f9bcb4ce03435785bf5f6f87ca330d60d3aeb3b90d986cea7622abed5fba58afa9ac3524f89a9b7f63e8df2b48893b376019adbaedfcf716cded61c8cffb63b839d4e29c8b97ace9d4a24adcc5a382469dfef5eca81297da5717c667ca9bad3f8f093d56223d5e5e4d980cb7a3f8cbd1ec4469b8ee7cb4657944a739448a461efeee3bfaed724ea6b7dacf904ea8f9c6437aacf6ad6bfdffb4974bb7762c76715a9694d6ede2e2254ea717369766c22cd9938fcda4b5a88e7c45b03027926994d81414cf7b4ae5d46895c46fa0a39f8c1215601f665d675abfea867957f68178e662197ebd7bded10abc494517804e68be8025ec0aa3321038f2b06749162d8afbbfeefb3ba32b0aadc9778869bbab9bdfcf934a69104d917593667dcfad0cab53c387957fef4960149b08bed9465c5de3eb576d99481fec4ca5e8a0de36756fa5e8974ffd29c5adfe1f4c867a5286b59f0c3adc632c6779ad98d3acee6039f85b9fec0695867175e804e75de3df414ebae9d1ae8004deff74e5d65514eaaddc6f5daa6dca8b46367c63bec73ce2ee81cc166efe3baa2b986bff325187369982978cdfec651946a4996af0b49bd35dbb5eb854a0daebc2831a4f20695579b52d3369af228842776a03c4d3284d763d1f663000930377dc86ab14486673a349d8073ff6ba44496c64467d5f531f5203a074ac7ce9090e59f1c308d2c755910af132ab81b50ad6d6c2c6716190696ae6a51433f61185a43cb1d23708d8286d066b61a6b7f9e13f8248c232d8315f40053fba0d7ffbb4ce60410899200a8a5e51bc1d8392cd56f41fbae85f35b110933a931084444036aab790cc09b84b7a235f34763b9ab5c9b53620f627778c661c4c45b36ebb3a4565795656227fdc280b327ee2f96c16e7bbbde89e9090318787b2abba7727a393cdc04dc38205e3c86ed5d5291a1149ee204b24661ab2ca16c1c0a35d3cca0d7c57f4e01985242c3b43869d9914312678710b039be4c2b775cca014b1d936ca8432a4614c4e67b69620fb49cbc787599c4bffdc3a2c786ba876864e7a5be33ab200bc2d087c3e6cc642f4a96771ba212778046b5823085c4068b209c54a5bd4153e4d986ed3512d09d40c37c1a2e57495e0a594f4430fdb1c88c4fb677b007d8804ca114c0991b90b5140761d59325502a1f0476e961a0c2b2ca78a82c8b5581d98da26de717f84c140fed0a00221ba71c34821374ad7c565ec20cefc949e98d1819702a4d38597c1db9239b9167dfc8651498927bb0e170c151e881577f58963593d3ae00870b8bb9fa3b77c468e8bd365dde088f24c2577c5aae2f24aee1552e4482352674d1d96b90880336ed44f6bf007b5eb67c52a10910a9a3fc82ab8d50aee17b667a27b4d014161f1a60c3084a25524693364ac1876cab0c93c01a153b03486e75c3a01728f625f9a7a6a99e78ea9b77b01490ab49c6dad9ca584229a8a890effe47ce0692aafb17a3db2b855a01666514e8a800a47c0cbfb4872c8c8a4d4bc52c8db43d3f7360d568f4f905ada2565a494901f229ed51bad9106bba6dc4fa7ac59a3a5a64d033be1e47c36c2cc9da10a2bd200b681c2caac5cb1eb03f36455241367d30019aac00afe312c5323cbb4575e271c01f09c6eac03ce1f02bcc4186768493f6cf97671e7a02db6047557306bb8ce086382bbab8312460663dc1bfd01b2411b3c49835690627f133935c27308be6b5d09844f477523521c2b1bb1c92b6b3c46c20cf97217683a3f2e46b0151511c7c9c4bf8620d4706ffaec98e524360986386a7b5c20c312c5b6237bd17271bc6c146124d190205f468dfb00bae08318350c1aa5910a07a67bf13a99a52a39b2b04fa56143c0c1290c5c412ce1647ba8242c851c8bea960c9c4879b83037886ae77b10e8126dd3b633a33a662076cea326765d6262619b8d0c8c3217435450070dbbd67404f5255b6557267178ed99cd4257768e728f3069bc29f8484a127d84098ff4325946371384463c4ff489cd8b6eeed0c5e3e92b1b988c41a31df71047cf78ab1ef9adac2a1ba3121672505ec77b0620617598f84d1fc7b00fdc65e7ab72274c86a424746dc74f53142be6423545d02d581933bb92058563279e522ad8507f4326699bf4831970775640887e875e1cf29a09843210a23976941af397a3c6c5605af133ba94126132311224388f340448a1252c5bc0197b4699aab73a4237d40204a46103bd605bc698111ddc3d6bc04804722c35600b001c554180d16628713bdea10cdf5ca1708c7c6e354b69720b4b4a0c358fe9a6ad3febe78bb2a71691658acae21a1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 +ciphertext: 2150f944148dec904a5077dd4d82ed0d72bee1a3dfb6d7674753e2b50cfd6727ae71811da5ed2ba0bb169aa8a4883d286dea2213ae9edab0b24c342348b20ff4c5ef3a56320ef7f2c104a3c5982ba4fc3afb68575223ec0579339be4ac6a2139e8f8838b75a0f8e90932eeef2633c8b14f4661a7bad5414513075cb8053afe34a2c1379f3a750f27d7c46bee74524245cb41a221c48c68dbee3e78dc5f9f3c551fd830d6a40d4d4fe75ec31d97b97ffc32e032a75e0466562b54fce7d2d370c65fafef8b66e9a4fb527c7b22213b22c137650137a64c53f910a2386cef26e29279c16652ccc0a81da0ceaf494f32391c915d79a94a8ab7e4fc3a4eebce4c5a0b4ed899f24881263dcd74e3b895d353faae4cf47a1c74299ad8d435cb2c927841a86e160e88815805fde2d3c9f487754b1fb8b9047057b5bcbae25754f90c8a0d1c7b8e9e8ac03936197136fd189f594b709d52112fe9ea335dc96ab2ec87c97d703994492da1c1cbd20994c1762bad07e5dec98c311156687128c76d2ff5a5c7bb65bae29343059f2c10df3e9239392769ad0f575bad34bd7213f897d3af45bd299e8d6b75753f966317cb5dd821b5a8d5bfca74871d210b2c184107fe9109503b71644c8af5bf09097f3a6f0b9f9e26df7615d503634533cf4111a5487f205f45610c777e2fe6bf75e2100c209ec650540e734d710f0a0a378905f59e8b6c19d4847bd2b02c4366958972a963d4afbbb18e55adc1fff12d07beaeb27598cfb98833d02870b902b0d9c587523792b443c453059537d0d0975b95b8ab9d94f41b6bc0e344eac841eb7656d4c610c80a8e0d0b659d1be91279ea59333ef5eeb4b42fb0a4fded5d313bc754605ab5d8740716bc1d5c9e18a998d04fc4031fe5225ab6046678777a740a998118fd7b09504695401bfd27fe44140484e8bba45e12bb2c09a3cdfa578da8c7e46bd7817ffe1bef08a5e9005950c25e2a6d467eaaaa44be9abfce7e8bdb55356a509c4df5f6aaa89dea332ba7c353a6035a4e4ad6b213366b49b4db22dc73f93a336f7dae65f20a662bd25939811d0df9851d21a2b7fc8fdfae07dfc136a7ed64c1a7b88ea62ce2093025acd1c0eda5352a15c5a95f197a611768bf0d59b72c77cdb03420ee070aec8fbed53cf2319f04b2e72d742c930cdd7b1e9864474c60757fe7cfde9c1d2760ba39f1f8ac5a2dd8edb312fa7b34e22c62c0a66c5d64cbc6c56fa0461a4bbc9105afc9c3be7bf62379a392e1ea49d62a2f91f19fe1aa1168138dd32d42be5b2c7214861ba4873726cfdaa9628f827cad22a2dbf34970fe8f4238b1c9d9af380f378d0273df041cad44f056ed08637e4a178120cf841cc8e8ed0e797587d11019b4b6756fc47803d0480bc325cf9278f78c3e00e534533c742328ac2eb2176cdfb782763ed50e510b92d56a14afa41e00c29e3e18dd037e2d6efd6e1d64e9b5760bf22453d850f9b3e2ed63fc9be5c45573d79baf8150976243bec8aaaa217aa02d707eebefc9b3710f56ab84ce72 +result: fail +shared_secret: + +# Private key not reduced +private_key: 490fd13e7e8ae6848e47937d58e681632d9b6c88892ca3eb4cc4b1ce1ade773df0495c60e89cc85407f545efedef3a5b97bdd4e2d9ac9c2edaa8844dd02a4d8508b0ad3c480e47e96e343ebd0ec12dcfce6616cbc395a8c8fdfb1adf5041165832584743ad7fd42d7dd3687c92de7e111a945985805fec883633eb7556f63d96302473abfbe36fda05345a5dc7dea6affc45c87b3f72e88da3efafdeaccaefa185d0ab04a091fb355e9d6430cb4bfe66697a09cb08f992a3cb9b303e624726b13233e22c5694daed757b65b4678f694d8fb862aabf391ead14db6a31c6d2030498993b8eb5364f3dafe3e66c81745bd18dc895fdfcb81a77672f7eb320e3a2df75403d57c229e745310a7cf89df920ee69db8f90ed96a2056995fc7c59cf6cc162cbe0678736a4f56af053de6d2f419a6c3536cfffcb837bc32e4a1d83a6ae84e4d76fe149498b0e0841e7775f1e783b377ceac49d67db769af6e691c59683114c7420fba6723bb3ae6ae37224ba7f8e6b5463902e3ef23064c8a8dbe0f49abb775f81ec47fc647b86302ed95b25a41705b9b327456a7859c7033691353eebb9f6ef98d500f34fac746d9e59bef7c5d457acbc33369f3f85af047bbd75b4dcf62ba1edcf7cd5a6437cdf8c37ea3739a784f068cd4cc68f0cc6b01e4933003c950995d42b26d9e0a748c9f87ce5099356ec846f9b40f7ce3a6187cab40b47d04cae05d43c53956ff4553f6286e068e993902ea24734305098caf7d9d22a8b52cdb548614e9a532cb9750c3e439a742e9d31076b99fb8a934c2c8a4253da8e65cca85f86518cc08a79f5c2e3b9fc854d8343b36d75ff37c339ba5eb0f7d774b4da5171a96cf6a8ef1848703dc93f2ed6bfda065b7ed4d5673fa56a549354defc0953757c2d77e65c93c00673e88ccec80db6d33d7a0609ae9045e77fd4ec97fc32d1b8bfe7266ab8fbfb9bdb9ec679ff7d6678634bd30dce9905bc46960ba25ac8b9da86f165485a7c07744d1b8fcc18d994ddbf86496263ff68f19b7dd7d7bddd4c947f1e46f2196ceda5bb53137fb107560c4ccedb96351945bb8ac5d92c9975db266e621c53c519caf639c80235f48e78d4d89ed878abf238644f33136e854cf6e1477827d3797d7c75a19d44bc77b9ea05bad42aeda87a460e17779b5f33a18d377294a1ba3a99b4db42ce4f893b937c369983812ce4305cbfa0e57c3e5be9f0a77c4a2a69995f5ece48cf45635c577f429b67630f6d3d1ceb5a22f4f9aff58c2cf6ee79f6780d59575ca3309d559cbe6572e077eaf2259a39063f628bbcdb74345af9caf02aaeb0a381e39a5bf19ed7812bf43d23dc483bdc74a47738d9a6c5e3d538e64cc523e60d9a8351b9ce836feae1dcd3c8a48f7235fef2bfa15e6785e649f46cb8c196f9949fcd94ff6639c9ffe6b90bc3c2099bb3093ae534ff2538d7bebe62b333ff3e7383145655ffc7eca43456f1b5e37e7977f02e4ecbd6e13f198d782fe78ead90620a9d354df5ad1e595ab6b6854f62823be28b98f6fadc7b402e8d37a4e825733f43ba4cd99b63d278e2772980679c3b1456fb762ac8c3e8942a1bed4bce838a2795113c365a535d483658c463ea0ec63c011afc7fce59add1cb33481d37e546d75b5398198a82126a7d306a26c7124518075ee6701d1ca69d16a867115582f22a7c382bab3acb5de50c34c13a5378b2b1415b5538987a77681597abab9a0b5bfc7bbd19550064489be9b897a54fd12c7229f0af5313429fc85f1936b5a325aea955021a969ae289657ba4ce7393477afab3ec0b6e46bb7a8570b2dd4372d51537ceb3023e477a36bc2b784444d0f71c3165395ae71f98921ed160be83e0572487691a43128352b3d82b223c67b33d8277b05c6c071418799583e2b87c9c2a81bb2a7658d67e637b99d5770e04b592bd5961f0c726d0058b31086ab1d23f4d200bbe6b418fd53a0131aaa5fc0380f70f1c90cd1dd5bfb3839cff013375f49919214e756856042bb10e1252a0108c1dc39a1f69bbc230a4e9c93a87a87899faaa210a781c91bdfec9a59080ae642aadfbe20f9ec600a2b297c3394a751354b6e8ac65ea45d3b66c57328249034738ea2541476ab0f2717940930c8551314851be98351d96acf6232e1960b97d930e3f424efdf706c2da2f652796caf344b86ab388f412853a5643a7932409b476d3c81c2a301e968dae28742d18232efa09b81177dc9ab33d7b2ed5e711c157bbb123506fe35c5132bd04ea87e173a7d8ab5b2e35a7eeb58ab3f549dd30228dc5197f778359b4b9b9b989b697839fbc013426016110bbe721c1c89c1d463248887491f0814c4bfcbfe7445144b88cb4ec535bb85a3016891b009dd4ea020e3799d56a710ff097b79384556c5d7d717436bc9626cc15ea509fed2bbb74c2636e8cb4e0435283c7159d8c9eb6e11e5bf977a80994278161671346b368372ab5612c85ad48db8a82067acaaa39bc0b1f49083e71e8727adca1f3c7cfacf907a71c3c73e6737bc51795c9761b5c36c87b46141400dd43874c4500606c616d90bd9d588905fab9b538c23a07b9fba6c0699259b6b81aca207138884886205955250e3e7b5d4d549a8b73c0ff41b88c305b7efa4178695abaecb97ba46dafe090a81c038ff373b13582665665b2058835b629f2925ed99082858152433bc3bbe90937c763d835638c3225e0c3485f9555d3e1556ffccb1b059dff8667ac445b474a17f360a2dbd895048b29fcc003f3c46768668b88bc0053bc3821a95d5d49cf1510894f1739c91174310b0ab2cb7836b41bc44aad9681c0067192d4a46c2fd60e2323b6fcdaa15a6581b4571b4ccc09fae5b24d8b11f67aa629e79652388ce04b9ceeb5029e80341ab6abbfe38b2584b55108a21ac64d61636ddb2094cba91c2b606cf3d2ba09d4863ee900decc2d594a042b5a63c822631533a14b6cccaa0775ea3210e3ebb22137a749b22c1eb129c872578feca153b312efe6238583793852485fc53952e4a513e64b8ac7b60241944d704246551d3372ab9e60bd8411729cab31eb908c5348c34db74f3ca60384e93c91479a52b321f8544dc13620f26c9fd324784a294197d9935551ccfbcb93f9f2ba8fda993a3598a5d37c36469024129c8f3a081c9b3a680a02ec450b0a805da455c5f696bf46681ba9f80f6b469af9b1c09fb2bdf618242f449cd017308dd80a9fa7a3a6aa25becb6f07b241f0f72b345664751b83b46a276ec74aa2569b79de21a5198e7f0c3bc2aa84e7f5c79f4cdea5b473ba2d344bf994fd3204f0066489947b572f76e1dfc2e24297b210ed0aaf228788a0b349d11689e064bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d +ciphertext: d378efc5ef259dcf2434427ba3f28dcf6d906151fbcb67b9c8e4c3bb098bf2820b9670676b6931202f38370b6e36286ac1ec05f4381867232b34b4078cf6e55d41ad44431be7c35d169436cbd71b97f160017a05d9c642e87e6b4919abf40e48747acfcc10d21ef2c309b1be596b146a6e4e848548f2c8c97c9293eb03d92349d62da60ab60f890a7ff20ea7ee1724ac64ca927413677babcce28371604e79a0a2fa134e51c19d6ca02d89682233c85618874af6487685f21de8e85dc99603f5b4c49139f9a5621380c65411aa4254d5ae205d5b0aad42d8883afa7221209abd96a91197381dd9d513bec2cb06f33760756a0aed0c169c195be9b33609b0e40c3f1400f7db12d4a760b45bfd275796e674a9bf2c8752b98fd9f9aa98f08a62f20296376578938ce94d3bdfd8161211225a7ca25b4282ad6abcc8c14e40d4d3d4cbfbdffa435258f85a29e7add20a7c1ca410517207157199d02ffd31118f13d910be88dacb9e38e2eb3762a4b35f963a17db121037c1972580cf0e5634d322ffa43559c20b494ab94941a51d0673929e2ac1c8c8961120eddd8ea1092c33c756898ffe92b02dd7491cedfdda440326e2f818a67599e3a2e146ee5d151934fdba1cdc36eb42c863e841dc214584ce178cc9876b9411d6cdfa8c2d1335dafe8f9bfc435a7ec06c9ee9543b8f0d8cfca44ca0e21511aa2c592d107545e6c0a10dfd37a2e9d0059861f563b26e544fc96049f02cb9bca10a3dd39f440f0e36bd0a2b6f029aee917c3c8abf70a893e56999c9ed0281108f1d0068cb37abd7a7f09f3ee975743db549d824847ae0adb07f0882e02d0a45115ee6191ac32447a92f83d4aaabbe0dc55de5b260079645703603d8704c8dab678bd468463b82869802e999557b0f0164e2e790126e3f1e42efd67700365698e6fdc87b4d42603571df83cca98284a388650f4dbebb622aa190b51c827ea8f14ca0692dd0dce0487b6e186dcfa3daa04a17b07e0bf8ca15ba85152e4ec0cce556bbae3745c9c1a247d0fa6c10f9c8a6843a9f91b5bae12266e1e96d4ba7c2cdabb3093aa9bf2b9883eaa4ac1861f03ad4c9141ac88aded147390197fb82f764c789ed7bd893f680834d76908758c8fb51c508603303290500c6dbbe16c86e93efed13f27e1e0f90d2aedf9f40be308e0c988cf59cbf8d7de1c8bc5aa01afddd8c58afdeca6394e9d03655c7b4fefd13c75846dcc1304ca80a4a5dd985e24e7387d3f5968312624b4a1f1b45e1353cd764e552cd16713c36e0bd1aff6369bedf509b8835c767c53e7ffab9770eb6e0a8acd9208eff61410ba64124b62868a80096eaf3d5b453fa4aac6ef1dcf1924a04e444dfb88fb57742f2c7cf923cdcffaa4512e648d2db593c160219075bd4431943203f6e54833b425df5dd442e589c7602ee877271b5842b334b98e7d171e6fe244434c451604da7885628d7367eb94bed7bab93a261740127d57d9d6acf40172a75a32432de3037bf640654418f9d3e3e9f05d17b858df6a1d8a22e +result: fail +shared_secret: + +# Private key not reduced +private_key: 3e4ae4084387af1f5d7f6ade5194e407e6ef85d7574b1abea52b6316dd7a404372c827aadd3aba668bab52d5943c59bc500b78bd77ccc7da7a3a6c8b613b9cf86ebdd74af22ceeeb246431d989a9b5d7b68f9cf364c8bb948dcaee16bbafec6e4fee576565f8dfd8399b49e2b303481607620ca4ecf3b3e4cc8de3a35f6229c4bcabf7642596c4111df3140a4ac869a30c3af0501ab4838581f42783a18b83f5165907985363d766eecd6065a4e88427a97ade71c4b5f152fa4ecf0c4d4b0be1306b98ec4a409e2baf5a9ef4abc3ee34bac177af9fe83e6056accc59f38a268ba03b39bb49eda763e340dca4c3f1d8580cf3d4f6a6e44efb3db597515736ddcd36e94b476c5c6552f9a39b4c556028493f0bcaf3c96ac03d03ce54a4680f8d75cff7db01bbcff4f3d26fb3e85f059d401552dd966e7013ff7d198a17b8620bb3da39dbeaa3f84ec2e8fd154ca88f49fc28574cd8ece025e832751769560569e9cbdcf3f7a41278d0142753f7e4950908bfe86b468d095f423cedfaeb3b197aec62cc8b0beb47fcf6a45625db780b5648fcd5387cc81d485319febca87bc6cfe3dae33dfe342345169e54c8b561f92565ee3cf0d8eec385a7a1d99cba75b3e21f5edd3155f84d8f6c408455a068625d35b69ff944cb98d601483b82fd8ddf8ca0b8a3e480878b25e7c73a6795222b593b05e8f1cf5f6b96ff970bc2a75fada653838ca4fa68098aa6a3ea9a858cd435ec1abd7f6acfd8ca1c479777907fb752d24ca06c96b39433ff0e1982f5ddb9c7cf45db5f75f85f46f4d58472457ae94fc6fa886dc33d5b1e2654f1a999665cfe7819571be87bd208f26bca54876e5776f3da3bbcabc4bd94d90c9fd25ad83d03ccc29590647c533b278a28eb667bd7ee2ce6fcbeaa74821456289dd3b9fbc18dff3f2837c8336d31bc8ab260b9f524e9812e3d7004ca9f6e7d9a83b77d3b15b418becc7de93738ddfe23ddac4496e57d0a82377eff0e25985857e85007c41a5846dbfad987794eb2743c881fd063277cd366b2c61d5421c453257a63683a719a57bacf373b8ce9dbb10542fc979c92267e05ed612cbc9fafd485933b42b164d4002c8ca8a3dd295359ff299d5aa3a5b82acf278ff5438e938999e50adf4ac2d34d7f1daecbcf7ee01ffd499357d4d854833de48a18fa504baf8774e4faea7ddc1e639a073e87c3a2747e33050aea604b33f6c362dc89fa0007aa578adf384da246ab4226297a0e66c073564b964d39deb9e6f0de4b4b3fafb46eb8039fc6b45f44ec1b9fbfeca496b35c1bd5ad7f3e3575dac43478816868b095ce756bab55047f3d39ecfec6bcba3103b6107544f9bcc74e25355597b69425ae78fd4c0fa9a17b1351c085496436ee60284508fdb2a89b4a76cb9481c986198c3fe95e4c76465de4eb364bdbc43fcea1054462644add1ff57d957685d0f7d2145d544a1e9628e86c03ff3e1315829cccc9f60a733b94e4161673c67adf3347eca1ceddf9faa4f24fc4b54ddb7abdc18ce8cf779eee459c98b56871345a57844ab6a3749a3e14c18c463e5596836e8c436296a84feae43e69517c8e76fef3c52616e70194aef5c4f9057b9edc7c48f1dca18605bee4ef6aa7a8102df0c61577a7cd4b9a04b17ac55708d8c6746289529337b9e267737d5345f4e768e0d6656cf23593a84eb0ec290c8ba078eb9f8d1cc8ea18280981cad0f46dd29c474fdc57cb5bc93e318537ca343bd03ea6a7a466b021b3db77021a8e20b94907ea294f47baad599d51d74219e38f883b36cb323a317520997988342a7452c3aff4522ebee30211444fe78854f9f853cd189be04cc1c800607cb4acccb650ae546323e7993bf2a203487becf8328a2979dfc5c3bdfc1b47533a9a629e5fba5a2234bce8eb37d686a75bc33eeb945d80d92c218548eff794ad6c0d825b57f6f12f0ef6b8201bc0d1fb0354f051ec1a217a9a0f0c77b1d6f76c1f25b01ff356fa390079d3800f1468d745a0dc852ac140307e700f97d557eb42164844b0b6d5a37bf1bc41db5aba156359e9b4ad5649189409be58b8ad5ac89e348099ab9ffe81c71d54853eba7b42167d478693c39837f76182e0c894e0f5ccf19643fbdbc5278b500d1b07f1e62ee797930c0cc4a41832ad093b28460c8700678bda847edc6bafa64ca182016f75366af8c330d201c7ac4327b2326d8b57997734bf909b0fa1c619155aab7bc5f4026079926d04619186c4334f48bdfaeca777e91d0b0b7fc4b180e5e19f0162c5d3146b5ac5ac820781209c455d195f17d541d6916f56838f7be838ac0293cdb63f28529df3fc7d54475062b90d3034c2583b00c942102f82b9553c1120891b77d61b8c86ba21b4a78f772c4049869b56442d33c642a5c0ad167747807d5f6105ccc21af8e06c85031a2a73ada9d59453017f131b55c1e0176ee29b021b7933606c5425078b7b49cfa99f24b21818e78a0e856747e4a7888a3d1313624af81c75eca6c3c43238bb078b94c2a9c57f0c4c66ec5b59ab93b73a1000630aaa28a79415320bcc8a96195934c9f14d5dc41cb70c1104a63f5fa29953495abf71b9359563f16c7bd6bc319ed7898fd00cb580902f2196b45311962cc17a9a9f002a916d9bbc1a452bd3e6a48ca05e50ab35bd828cfe66b483e96ca1d917001b46374c41c2d079fdd8257bc339a6e13a7fa2c0948056f6553803d10fc9f1c87725230ba3713903193f200a9851a78b61534b5a949d140c9b457ec66769c6544d79f0850c4cc8e4b78eae0b260dfc9cf0848e4e09cf52047d62bb8e7e6231f4ba49859b1dedbca0d8832bd23789c6fbc40d61485e5a951de68639e07e624a72395b9e25b603acb330a37b998b7a9ab3f973003c15624c6abce84050fc0166924a397708c12308c578105c1457de7cb41dd609c0c3333be5b9c3b93e2776aa0ab3a4054c98789a4bf419bcb6eb914c2179bae02b462b1126a3a28840b9e7170618c20e8527993623cd0c776e54f8b4eb237b4f8c075fa2175f11be86e2bdf3b9b9dff89b7534134620116e0ac025f6707b00b5c743aae144241b935ba61827909b591b44cb6f36107ef81a214c6aa5b9b3e1f441c774cb7102310c4031e0e4a213a8c1f1593906a0424d657cda7c10c1354b0d5a83d2cb9d0407073fa77abe480854c953eedc6cb06c75695665b92873552cc053a9bba0c99aaf970753299db3528276b56feb8a5bbf373d13c20c2f22ae07e9542206b296f3b101d07a3bd1517d9eb8db21e1f18e6da63acfce1e0dc597cef3abfc7d0aea99da67ce6c8abcf3ec4d93505d3be02c039e5a12538e5e59adb5a5d709b9b342938dfd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 +ciphertext: 35efdcdb40a548a0269d389f25474dd39115feb706f9defbd935fd224b3564b3e5b327d7e5ae47ce9ce21f968ce4b20fa2958ac3abc36f9b301e644b327b2d5b74f26a929cb3f2a070d7a36932c1ab0084d7f8e9dcfb6632a601830a1bdb6d27811d35158315863f19a6b70cdbaa180e4e148ebe276a6bc52137c85334f743e84622263144c67e7efdbb1c6578b17025d9a144c2784eb9d9cbd4052c23d3de56d4c50624d969953d944658093c03a933c8f39f09487b1392ed0b7ffeaa8edc5dfd73349c640a75f132259b3a266513ceae23b6a9641d8a8b1d03d5f44f3ecf2111b43b8ca9b112b8d82ea0d7a4659f36c81516cbcf1f7695bf728ebe83298f8b5db14a2e8e7be0628b4f8f5d7253d18efa4bdd5725f5ef10876a9f3890b99f6beac54e9c881693aee29ee7618b04ca59dc31c7531d45156d109c1f28d13eb37aeaa8edc664ef4c7cbceeb95fbf2fe6ac4f5b3a81c185dfcec60ba16f0d6410f89732d2f7bd6a8b64d32fbbe4869caf86323a13e840470479d932fab248c1ec3d09733342c41d454819a335c3e41f87b56d92e8f2a6b598240ebe595604bdd4e18781e584523977e8f9ec732c525f8bbaab3082a97b0ba12b1fdd76851d732cb6b945e24f313861000dc4ce604217df1bc5f9947aecdb305d397f256b30607c4d4557e2d248715a47854998399fd0451cc61a138a24f238514052e26051385d4656811f83214dbf5da500467b16f9f3ed940446241166d0cc6755b518e16403da01681644dd5e58ad821a7590a3e65087a5f583c81b9cc6d59089c1710dc6ca282cbec114337ccf8c63a04e340ee93217b9d988370d6aab73b36f3ff9f4de4996ae9983c1851f06d18008cdc79dc82df1f29ae5c803a1f3f2dad2661d06060daba722f69970f18d081bd58342b329bfd3590347a022b9066bb95e5549a89f4ce681fc309751329897ef1b7a77c111191796574944755e5be70c4cc86e7a404a2844cd21983935577f583bc5e86902bbeb6fbdb6c90ff46a59136afaf006b81b0f8d8e5dd6c7dd9ba157d26ea5ffcf04693f7a338f923511cfb273a2f228323f195a42126ba6d2869aff9e6ad962c34853c67b5fed2abbc325fb5026cf9cb3617fdd147af37c88a768f5dadb5a03b7afe56ff4277d40f67edbf1ba78818cfb4416e5d8b9da09ee9ca4a3864577446b7877c833b8655f12554e62a1bdef2d8574fca989fa17df506c29254cef3712cb4576165fdb9437751cbca17b18e197931a9d2f060b7484784e02691276696289ee89911f805d0e658a75f5e13869c43dcbcdb2476d3aec985ebb8a7e367fdcb57acec9449bc856fa13aabd261743f88f5a446aa5cee3436aebacc7b386af14d4c0de976e5ff4311318d580a7ce5596b21d3e2b4d1f02397c797cd018ca12a8b8fa6dd90a4997846a3e02aa1c8977b992b59197e29db4c409013ad9c9c8f3db22085dbf8015d26fb456c9e1a453994421416858b180a4deb5f06d6052feceb72680b625d644854e72cb7465c3cb5fc9f6d67e +result: fail +shared_secret: + +# Private key not reduced +private_key: 20ef6897d8a471a69851d6bc3e79d88db8edd3534ab51db3a3f55c8c08d6341651896a61c919668c97b2db67fd16bf799236545a4675d38ceae6d96a8f74dcdbce3c66c98e849abaef549ab119d8600e90bb63e5aad870867630e51e33087888232ad8be1baffccda74cfb84f24ca020d4d1d79a6e6166d4fb1bc80b34e0a0e9b251bcf7151ee7037e7f6f0bff1a7a3ddab5acf7e3f1119e4720bdff0838cc15df81850465a6b5ee2cb6a5aa8a956056eab67338b30c43eb49bd532ec26d366b21ebde704e94ede6dad4a9d52b29fc230fb6c7a6fe664ea8e124410cfdb4ce9964e0be53576960b1bcd1966552f833dcb30bf77f57650c783f6765c4c396a865de762d07e0f2f67165a6bae7e8b6c20a63a3668b7fd76160ecdcefd968ceabc3827cb2fc29edf7ee472f37d15c65a223bda007a33993ac3270ec3aafe4c869faf98508826a3f3829ccd305ddc21569a3a24d9594aff4a40c9922f77bc59734b58385be34fcc93f9fd9b4e17e38a72019301bf8c5519fe86b84724d64e529c79d8ecea54b2cc3b46efbad5ef7f683b5fb1ccf6e1d539eab9c8ab4b875733a903acae2c7f5854934b5bf8f09e966e8e987087d76bb5d8433fd2f184ffcded648b216d20fa4e71d8b82b413b7cb3573197c83c51be387eb6caed48c26e33d8cbcd79fa55ad0c83fb8cd45d74d482d8d5b5845ba5a3767098c7058e43543fe9e74d9758b0f5b008440b08ae9a9fa9b24b8a4550a8a925bac706d476ca877a459b60e285feb8a86469df9cd3ec3644ae94a2d8491ec529e566d9e3be118086cad7f52750d98fce3e8f2c3e9a89ab1ea4657f06a5034fafe4e2a9db7fd63040cf8d71dff6ddcb487777d18b7c8994cbb1305a516383668cf9a8144be189697e37bd68b2b6e2556794e53526388ba54fedacc0373926898fc0ee4652dc50d0ed063b7ba87233b312792b13eac0d8668afb43ef75e495673f63ccb99e03540016cda9eb7b88bc888877a766f15c0f28b947aab9d75dfe2f80c78a6bccc9ec78c97bb5243ef57913d5b9d3ff373536c491e37ffe5b9913e96c85c4ea87fdb864e70af0fe83e69af57ec93ab3de68bb679140a4bb668719d8773a1c7bca14e5e656dd6bdf7967ffb55727e99ddae72f70976aafece41db56e088676377acedcd4f7bf4f6a57c71efa95fea2366562b61945a56e86df782d4ee7ef46bc54f7acabbf04a8a8bd79cd54723d1cb4e34d727bb0264e1e9836d15bfc7117b4e1364d1348697c0c66a8bce3476d67791247d97d346585e4fc68f9dede57c05a6404e8d44dc2aa84a26bafe9bce4c1aaa8de6a43d0d7cc20fd4d814ca07fda4644cfb5a75de216ec1a5b7cb30684dcdab80ef4cd3eb2a6a53bdc5323d5487ad3c95bad473a3cd7fa9861c8a9ff0fdc15e76d94639ae7dc3d863a35730ebf58bc69b7cbb915918ce42b873c944a7907b7bc014357ae981861c36a27dd051fde9711360a5fff7f5fa7cd54742e22ed2848fd57ea8fe4cef77a37f8b4e48e334adfeeb8f5b954ef8b897c74d1d9475b3a7041fc1830c7ccad8a6f71df014aafa4b843d19daaf10e4f6a074711b35cbbda9797ab756df9fbedb7bb19cae74f7ab74ab0ee6cdaaab7d09c8e078c4a3954f40a2697092bbe4460f27c4ce6886628382606f395b55d1a29939a2f754a0b82968d3c865f30066c5e21e3e2839416570f5b54f24d347e2e10169571a3935307a4918b5d68ddfea58a90382e70012911729238a4919a7531242228995215fcc96ce8c1970faa902f79c7a7207a93613de0066c384786f5913b24040e6b4b48b6b679e5538f953540c25c18402be1c58762fe8bcee6a1e58d93b21165f95895afefba1f735b11fb7bbfcb40d3d54ba24ca7ef507973aab9017b66a3e271f980462752137d9ab0d1937226129bf48f68b700021b2fabe81573e49fc17819bbe46858b5c58b4ca7c83a57398a667b09c681b990b648e96ce79b72104b13e97611ee8528c9f64c376eb04925ba46d3c8ab859304ce17b9435309726045de17d8a7cae32aa9c80e1aa4058cff89010dfe22daf0a002a905f945accd2f9225739aff1863006b46f9ecba5243bc48ed1184bb9a57ae26c8cda147cacbb4a031112279dbe727fa6c467ead943269ab1e3c9657c19ba0b648c9d4a48c6163a0a79954c0c7ec63529cb8a65c851c39840bb1a7c584104016f16b43da179189343c3276bfeb5839d6622e684b421526d69517ad57b67494bca6db58cf6c95266170ddd9455a6867de052adc8909790659fa0dc0a1d011487b16a1e08bc82b22aa9444f123632ec889719e754993ac8319a72ee83a988a2c77d28acd4bb5ebc486c33b0af1d67a84a349480fbb2b0b252e8749401d8488df52356a75ba2883090dcb757451c9956888b43806431bf9ed956e34806bafc15fcb1cf2b45729eea12a6580c6d1c366a76187fc20fae7657f560973838abaa510fad13c59c5baf4773188859809d1bcdba937845759c9af40dd2f14bd7dc48028a77ff4165f2204fb3b0b9f585061616ca4fc405a0c8533c344334e511053a548ee86998e9094863b8bdc02aaf6bbc916481ac9337acbac10d90794ec239268aa376157b1955379d30c2cb4927a8077cba969ac398bc8521450efcc7e1cc617e69a66fd16b771a2497d14e35a61919dc129844379a314821c333a2f4443651a4cff234a3dcabad32610f5b54d138065d8a5a81fc5068c5060af125265cbc42c580f47b9fbda72a893329999958b026c5661ba116346ccd86633e0a603b48c8acab78662162a9f11c4349c5235a5ac46546b16b25e355b4408456f7339122b67bb48334836214e431955e979244c8c7864ba189eb24c818c15417cac84682f719c9bdd8479be5c643d937605383c6a9514118498d5b4e81d5b74a063fb53cc19a20a9cfa26e479339b988c40918c192435db1a3b2a7c6046376b97aca7a9bbb30335a0e8fd237f8833e89e41a1c67b8aa9b0d539486b1855b9fbb53b5103ab2d19606165acaa588b9d14a4e6a7823800d8a9334ff7456e75aabb81408b791c9c6bc3b5829c1ab241e8d310bb7b15a5b24123a2c691ef1b5dd80640a7b94892aa1ad7300797a3de52a66c794426230640b303e71f0b93654708bd81f706b0f71757c08fcc591525bb6c9a57777bf1bda0d81b4922a56586d21b04daa2684e14ee8c0cd542824205b2bac3c1232f2bd37109d621a25cf570573465a706583da17c39ff3ad13826b6d5988158a1602a361d7a2f86a9219450ff713e184c0f6ea4146b79b03e5ee3454a79f7fe853da745a27a1462668bb66c4348b7f4bf25c70527b360b2fd104cda48fe520a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 +ciphertext: bdc7562e2142743d9af81c76aa1fc1d52b6b46473fb7f97443903b44fa9120735320a1180c7b1631ec6faa37b011417b71bd14cc78f3af729e869d4e161d9d9d0275bc653a731f04bd7e9f2dbfedf31effbe8d24e2822fd7b534ab043e72002aeb28a1efebe22f078ec853f693fbd645d89050401eca963a0212fded375b9b66c1bc138fb13e6585b9574880da1c86cd34950d4d3122cbb2258f5d9a08ad788b67ffb535e6c6f49992f63f6f459bad7bc87b00227f3e8db542aabc9f5c8051c02eaf843c47b5490aeb92b9f4f50252f4d90395603c24a600e95b9406f7f66053a468c4d46d7c5b4347d5f13068a3253ce57ddb159ff3fab3806737d9e30a74ecca1408154211a2ad7fa5c3140ece83fbd56326aa4e7399633d030afa5a6720259a31e58e92ba5c55855a693b3e2bec092966be1adb99b5da4d6a345b3d4c55233a25b06422f3cfd76a416a1abd732ff279c094a0b3d598641b05cb8f35d7996175c5b15d6d478fd17f738b4ed2861334e9c125acb154b6540a01e7ee85c1ecdc4b354e8ae5c68603667b52344ccb24d5b2f2cd68937eca2fe5b398d072905e51fade88a44086779105277bd169ba53d1c4ab1d2502cd6ff3ea9ad8dbd9d8f8f4bd05e5ede3c22ba08366d30fe1b9bea9587b05e1913ccbe6d94fe17a0107adf69ced338256835e707cc312da14b594dd3e4f325e18921938062d9e97049b93a0115149b4aeeebc45605edb1e51bdd644594f3ce7293200787d972e2419a5cb8496bfd8afede88d188c2396af33953f335301c58421250da4a9ca1b247a3bd81ff25594dbd262b7efd31b53371d1ab4d267fe859c11e0915ed02649a319fedc1340e110ba52cc14ea72c1090145093a4c3760e023f499155d96a3215cb62b1be9e0aad7b8f75f7b94c82937327d37c3eed4e3ded7420e9f680e03c2e3b123cb9f14c98c758632f2abef5cdc7b16428c7e024208bcfc9e46bd4439eb4fc6d46cdfcaa7a9f3ab4ccfa72470981055277c9e9cf3ccc3739a33eb8f3f5e1cb0eacac8ca19b0541a6f449be5522d9b0d747677c45f60cdc98a156932f04d5247e90fc87f299a1efb12faf1ae375637a8d62bcefae6a563fc7d54a623c4d50a3d42ac70c2b1d24f3166c01b2a87d7d83be81e83087adc7c79d9aa80c85c90b552986d72f3ff2027b4bd3f716450c082e66a928d26930dc7e1bf504d88ebfd923a3f256b0dd512d6539939766ff588473ba85916177b6ccb9fb16de2c984b17b85a9a06b4691af67f8ae2dfcae468ae02c34bcade4e9ac9722bb260104a9d6cb488f599dddc9904351a9dfaef0a90f6b4adc94dbef5ca73ac1ff89c23f3706665ffc3af4a008e564ec34e3b793091129b794c1a6faba3b224dab1bcd2bb8a51eaf4b7d237fc8f9d6b9d713fd5c5d9551e0f9925e72b1606128a018d1535c9690bb8be25694b22ded91509ff965aba2b220c2506495b76a456bc881b7183e65f70c847e5fff569b5bd9b1706d64731a6a5ac669bc2adcf4d21e8abc76146805d574812069 +result: fail +shared_secret: + +# Private key not reduced +private_key: 6206ad862474f8463a6029d9e145bb7b68c1287f311f5474c295a7bcb93ee43ea5a99ecce2a69afaed820fc9ab484a6ca995d90035970a587e871ef6801a87342cb627e769fb9badf5cd75aa78cbb127ab20f34d22cc4299abafae49812b5e90ba5e82eb635e844a511159dd755cd674c7a39d8b3323dbebfd04a0430893b013555d253aa2739ab658d8ee6c6b5967ff40e3c1e53ff4c4cfd6495e3172a7895b5fb633f63293cd4f3f6eb25d064ed4834f854c932a897b7f093cc4ac98a22366b184480ba7469695f3c91a8a0e0980aa9aed1dd3401966b27b7838ba246ea90432ce7f379337ecfbb4719f6d912df891d7e4a9a63781e9bebafc4d431866ad153bc067d871ed8bb09625fbfc1b731153711bc4d876e835033861cfa8eb4eee4c25ff542f84c94ea39cd757ac011c8fc5785a912e626f476df9cb687894582348c0cf0daf7cd3bb01685f5cd733051eee1b989b1b5d96614de21723d3037d5c4fb868c21f3e0cd633514b4648a347557a9147f44ce88bcf8db4c8e18c826d34ac25c7b5582b3d1d65ff2bef8175dda84b66d5d909a6061f58d11a941378377f457701efc8b4adeec347e0d179639bed4d661aaa9b3caae38972de5d75d7ca40ff783bf7aceff4e4ba038ce6e3839b76b88ede1779d02584117fcb226fdf18ecb6e0c9bfdc0379ffa6c075befc958fae39b3b51c1c7d02c7fd3b844e4e8da8ca3663dd8de6e4abdfd686ce837fd5e463bc164b59bab5cb2ba3b973f7750f6ea8697bb1368bcc98aa3d670b7943d7ae89e64f006783e8b67d024fbfdbe4a335a564368fd2d57566a8d97ae85dbd621fecfc9b4fcfaa38f7b6cb55ca53f17bdedfb36ffc1bc4c347c9dfbe9e75873f2c4e613b98c73d346e0bedaedc0a515444fafa7ae872a73e1ef77f5d34b49f369c4529587c49efe885b0c50ca3908ff7adc980df09625437455377f992f84e7fc55713bef34fda91c4eb81731f8e5d1efd75e4ccb0b440b0de787f4af6e033dfe8a35a5c76515e4c4c6b335e61adb417cc43109c45e6ba639a84377d2d4adf0cd836144d44bdd5bd35434737c301fce5565bd0ff6b8f8b83bf2d99b72b7e419b83a39bc3a637276125f9d37dd474205e5a41f7edfb75c94e29339a235107f3564e939828ca499996f3041fcafa1d45fd6363c9dbb7a93fd27fba5607ece2b5fe9258eec8832b95b537583fa66425a3e22fbfc0a25334da883160b9cdaf4776ff14cbe2aa7d28ccf71ca7985c2bef9334d4237fc1590b737b5963b8894d5877de535775e7c3bea216f8b339fa444d7cdf3eb0718678be28b05d1e811e2bd016c456d73e6354a5f2ea65673e188a27a397841e9d711d6e9f35b437aa65cc685ae1bfd0a4cff5516b9fd0f4687f3485cfcf7a7cfde2766ab18783cc77274c6487bd0ac369ca29a05badcd5ff8ac68e7b58249f800fcc4ada35e2974bb1db5f54ef6af37e487100b4500f82f5c76a1464fc9198ac57d699f270d5c37b94e7faa5ebd5c62f66f351b58bdd0ce5199849b34aebe9afb67cdfcb4a30ea29c3b61274349f839e6c9dbb38b2d6d81dc5036d5ef70293dd51562cee893fd8db7e0abcd5b6f5470436af7cb7c3cb7630959ddf6254298ffbda4163313f3cf10a65afbe14a738352fd20b1931827758905dc32c20cf8adf6c081009ca396f270b23a5f26117862a13cb00b65f5a2850e8252053255b8232626b5bdcfe44e95c0b7b5b09802165b5310122a434c5456136cb3a77c3c7c23fc61271550cf15122fea612600aa722c8646a6760ee18ad6028850fa36b82156c09429fa188db2ec3dc229a78f92112b4357d3681aeb19779f1785195b65469c6d3af60ff063562817c4587225a10c8e9fd56c4353711f287469b87cb533b99df46bfbca625c4601aa86459b27778c7200f6a12ac8e8bc078231a37c87400a7429c476ddf7516fa4b7e27841abacceb3c24e92158eb168cd3dfc48ade061b2c02c33b2a33b59ac45a77a439371f3683aeb6a18b107bc34e7785e4146b3f668d9565cb32a23bea6af6daaae79b39a8f725e61f1355c6965d0ba0cf8da22ace189cfd0652213501b3b5f791061ca929e2fd057f357bfaa4047c28577d2105be1616044a6383ff9a087f4754926338e486cc3e76511c7946a02893d058f7100c98bf0af514a47a7630e6e2564b5459d3b52bac6884fc32c7961a34df387ab85c07965786d6bb731af75742147304a5cac936797ba658fdb88c1939c78565914ddb0334fa291fa3182e31a36d6c159ac637a0d3a37098569a009911f54b13efc46e403ba4bf0bf59499cac06c848754903a7b8a1b7549a13b2de5a2cb106a21a3a58d1d71ba30700d74243b1030258294ee022037ff9c7e752cf0fc60f582b6310d4637309ccaa3940e6617b72c0b0217924febb6f971a56a979212a452796a217909547598330557a9309161fbf7c59004d7b3a88a2c3066534153d99ac87dc5918401b860c1b4d5e763440389290d2b656c97cb9784b201a90553acceaca0f22b17852f391ded7094225053f88b6578678f178067ac944f1fb6c2e99abd946953a49b059babeae527408f520844323d9496e51e88f0899857a07b8bf8586ac7a8d13579ca934161d10c08e3b400f084cbe9c6f21e29523c41bac2187b7470f752b55addc6250c08338bac7fd0879620023899041576191b502c736115e65977de34c740c75a5c5f54ae4fa07a2943a7f5a3b8018461445c3ce938579680b68fab41ea2bb26e40eeb13ac84fc3a38b78dd66186558426cf59a1dd4958427bbcbbc13037c577b0e0551238a67f596cd0a2627965216bf733fe88718d64725ffa4b6e73077a37a4585159c887b2a2f5077d1b457c06102cdab7a0e5752263cacf7914ddf836b0e1a95ac4b941388bf7c5bd62f616726100f448001e1c6e4100bbb922b265942bcf37966a5b61ba4957dd02c484413084985d5b22b37964b5f66c11b27c25af757f08cb8ba3b3115a6839483454239bb9d0a1b6b1bcbba5060c3ae47fd0476107919281a508e0606b4ab51ae12b0866c21ca994817b87244ae55222c0807b02581856936ec0ca25e08c7e604e1f1379914702a9e209d7796ca44879a363cce71a0d9850c8ae8596e9b7157a71052602cdbf1c2ba113341fb8b612f114a82c6bb106c703603eddf80ed634be616884b9f2bb271240ab48126a40cf7c0958e0c5bb4f73185cb41dca542888720f8f930a66a66bb9c79acda38a22249f5240a5db0067a23151a6f02abac2477574d9b5d49ed6c25fc46576ca327d614492eebb65297f711f12a5ff123e6de59d1f16878e93a31612015fb961bc572f3e999cea7b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 +ciphertext: 258852ed700664326e1767409c86b549ab45251e00d64a1d830c9342e8e367f1dc43797f2e1c8cd4cf98a1f46566d40bd608996ee5199dce1b4da5ae6a8f0ac2cb4f39fa20b9d9c71335de5f0d3e7ad1057341c4b10ae98c41ac4bb60484acdfe44f7125de5ee18171b612ab9800c796e0a2f3be97b30bef0bbceeab109c46378ebefffe8ab78ec87542cb73bd3377e3b7cb4e08910e1b2c5371aaf53665679dcd90a9b7e817f59754e5185bcc76a68f476352d1ab3696ab8b191d3ed109680544484ad81d0151b976d498fee7187069c67b8d0e3f2dda521dcab2190fff6c0369232449447598c4a68a72883ba5546906f977f78d449234a0f9b5de71330978bec425839b528ed99468aafef2189aa5172a98a7bd8fd8eac32772fd7c0bba3dc6ae42d1653f12145fec4689248abba2b04e3bf9cad1d4953201cecfbe00287b3c5768136d2d9c5c18d72890998b487ae95ff9242cee73abe3005a8ea2822f3f81468eefa9954727a90b8551d9ab482f30583ef65409af625f14ca560fb3d88514b605a5ef6239f9db665ac18a2c5591fc659fa7769434f053ef3828184a0aab41fa58bfc4c58d3edc8a84b44a86eea9e6b0ff881a783c0e941ebde941cd6b960f91dac309fad4e10b063b0f1f3349ea6869c60593d211a54518ac61314ca497942533f75ba98486e0607a4c75c9ffe6a6c29bc7c6d5ce59de70a30214ef7e66c7000cf2830ddbf3fb7867d37bdf0ddd5e8233d441dbabff03e0f66e4465782cfdb527c209e559873c98db25b2d72280ced28cf2a1c951bc98d197b81f810351130a258323b38b216fe27866063809ae96bd3dcdb01890b732776556251d173770c9a3d98e3873bec11091033cb54d27d4dc585276847d37199754ab6fffb61fbac4a5f78d05f2a7873ba3dad729685686c67a6dc51d4e9a967ae8abfe406b864970b841e943da33dd8c284f5d159d7a6120fbb0e272807af4ba7b73e7aa722e81dddbb22ba1f7fc541be455e89511918aea71368c21cdc2c0b1e2989067fde5835c92766bb6fef7908a14186c7c68ae54f4e3e19bafe8c8f56b954f77c625fb1b98bc15b515c8411312bb1ad92274c9de168bd949361df97442bba52a02df06594506222654f849d08042181557caefd6e5a360e18f37ba03386c004df2c64847feed5839eb4ea417c4e0e75b5cc3db09b069f9416662b722b8bc9a0dfff96610438bd949c7b625629cf9249da3b7ee5b550812a0e7c7b6df121d59d4289c90f659a5624122d2b47bbfa6d1cfe099a7676807b1d61db21761f06bd21fef8af069e6478b9e4db55f324747863e24f52697ca20ed6870a247ad6cfa4067ae5d6232bbf1e4127bfd0f6fa96de1f9512f8c39f76500dbfefcf318ef818bf4edc9bd677f0edea6274a3a1389bdc7bda53e5fb34fc7ef0d76f367bd1f9811b276602d0d5035de19575e8b92161907989b69e90c12bce13aee5964b33cb04587026b9c2d52e9b43598e7c05a54893e7fa3d5fe97bc5bc01eb4fb267cd4b3b6d299c55c +result: fail +shared_secret: + +# Private key not reduced +private_key: a8a66e48cdf5073a79d9ef817c64306dfb4da149dd9316dbe758ac121d30fc2c3bf6147c63a8ece6399f31e5941f65b96c13c9b0aadee7ad8c927eab262a400b9f6a628b8ccc3d7f9bdc7eaa06424c17ebc81d5637f9d421fbec8dc6e6cfbf972ae38caf3e9c3b28e686a9adbfad5306bf58a3afa96573dbeb687fb2f47b9a4a770d1370782bf526ca32636ecdef5dca3ef8d2a9d5b8e1944b67fb4db24753756b9eb4289e82fecdb1684c00c58c9977892eb7ca79cfd5678a352d3a7592e3970b1f4c9aec88b62ebc26a368db678a4578fd4208b9e2bd99c5cb30506371c8a44b2113931e1bc1fd88a43d9eb650d3e2c733c913835f7118b899af7b7a4a75f927a03fe9e4cf6f7d9e156b815358501fb753f6fa7148bb83f83f474985701c6d062ee0cf37dda77fa5cd7fc85f66daa7c9ed99539224159466387de5d39f9254b46735a0c30ac40f3bea180a8ee30bacbd09cb45e5fa4bb8336c269a78746f6a337f456d4de7b76691df3e71fa307d3e5c377555dce8b26a945bb02ff5df553f518aa453c8f3fc6e8dafefaa5dfda60414af7cf39aefa3a2fa2944d139869ffa51dd1e5e2ffaa1abc7438b776a7b2a869d03b05bbdf38913d0847fa3975c36d8e6d67caa75153ad305b6614c48e5a589a332a860a1dec6ecefad2d68b7c0ae68734f960f8b8ddfab9b3e95ed4e8e4c9447eb4cabf6c3838ead07deaa5abb4a5fb01a44cf5426b28b4c8c2f66bca4aaf1e57635027d8ac15db1f8e8eb4cddc0a0e5c17147fc877c31893dd5d65580da2b33165b87eebca160d5deea7db8e1567c9bfee32b65a6be4e4117eb4d2a458520a55877fe7941f38046cee7cf0d4c2aafd8221ce6d10c701255f9ac9ae0980cb482dd69bf13e9bda9de34c3eccfe87d335fbf52cf687b234246943b259ed4baa9ba220e5ffd9f877d65df5f0e48c36bca545ceb206e3afed6aad123fa91aa823b1accccc3bd43b94c47c9d2ceea431abc8ee15aa32c1b3da6b6d5b0b5b8cb9d5c759fa9bf137f2815e33275bd3cd98cd5453943058a668456e9a334302c58733d7ae5ebd1de5b4808d477eed39efd0d33604ee16653cee808ec6f147d4dd9cccb18dc2dbba75b63e0c0348ff8ac88e09895422c371358b2495d9df2d46089a551509e9ff37ecb44bb70fc6ebb2ed88f6e2eedd8b38e166ed3955836be48e2bb255da8db97da96fc5a24918a2f51280c6c9dc779125cd8957f51f3574d3a5998f8ac8c6898e927733fa5a8e6c6aaa629d7893a43e3a327a9e35deffa5c8437ff89e167ce68f4a4d33fc84c33e33d4b7f9b43b7e7ac8060d9bda8eeeaa648add55f423e9ea0c7b3702eae6bfee8f0c1fe420a94fa04759f4dd336b1858d0af93b81548f2c8cc8ef064bc554b1cc6cce84968f8bf991649b59f5ab51a6e563767e6e1e3d74c5849e28f961d75b6f3327581944f467e69498b7e3caec4e78f9b6c1ca774c0f6703167271ee4b4209a9b5353cf6949eaf5c947b458038ab9761f6bcba0678595fb78b15dd83e7db5c845ccf6fcca1d8723b57f907d6c8493ff4f113e8219c42ee848425787640636a7eeb651e3afbb62d7928a68f65a6318743bf7b43c223549590463ac38acfed84aea13a9025b2ce04e31b6f647abde39d7b1cb988c37f2ab219c67839064481c2539f7c947a5187a850f61ba075a002e4621ebc290855c9e75818e3a99da9e50522976372ea0e6e201f8cf3c49e4a86c503c38ab764b2f45bfd1718f6b5c0d2e66181045be2a2a8a1e10becb8a6bae9569f42654187a9d9b24c8214abf933063526804d0998b89c884b1055a56cae82557455f3a47c677e8e262fe9569aca0c5b1c0cbbf768302099a4cf3960f9d432a0865031e2b65ddaa43e00aae05aa39152256061021669b8f2ba6bb31045e7e539830095216a846aa39d5b16bf69e152aa227c61287137e2b29d3931c6211510ea33325b2ecd20a1bbab9d30a7ad9bf83e3058520606641dd23b092831d29022542513070c8626a42386c8177c7bc1ffe5754ef5b3a2c41f91f1463b7b068816b058da287b4ac2ad82191d061630337d296a08a02030174a219c143224b4b1aa1324feb23e7d52ccdc757929342ebcc02c9a080aaff12763894928a16c1f7830d7dcb2ebd77837d97011001d83f3512f9578efac3ce1c0a17da13b375c44ac8c32e616aef48339c19a4f379c216feb9672c20d78262fa99887f92324bf667502517cd42b340b51ac0d0c71c2ca5d357554eed04c1206baee66707b10bf52a424fc7567ca023b605a0e160aba5be5aff753983b19938205188fb87a867b6cea58112a3323c2ec23a92a1c16b48f8cc7bc55c5b18a33b67580cd9383275e7b53d053aed3f41f1a74859f3536a3c07832d4b64d6a9bd591c4a1901c46490efd73c9aaec1466528bfda0af55fb7a28f4af2c332de8024f87567e1ef87dbf3061ad29490c658b8367b0b911ba3c3c91e48189c8bb1cf3a229146cb537958bc1b427add62348ba0b54718753acb2ec3a0783c58c8b6b1023580a3417cc08745feb9b3f19397fda09002cb019be30a8d3781c936847d5c7c5a8e9a7b5d8c18bc5877ed4a8d787a7b11a0464440da596a4250308398aa9cd482e0f685703058987b63e21c530b3b5367654bc30b86fe6f0645e328714fbcc0f666bb8eb28d7279339f622cb89b813c72dcf5944ecf68e4ce422744abe30261ed3e127118cbdc1d224e538b48d441359d673470978bd4b5913b6cf557760389b3f6991344d4b622c7a332239a50626ce553a6e0677bdeea96a3efa72931b6921a23be5cbba9f51166be80a542b5f341866f78225d50a608e95bdbaf02a599b7a2441537f5124b0d5150a19a7de9ac2de2460b80884512c970e7c700aa259982bbda59773c415844b272dc45807f9d641c9443717c61bf9fa9201568868655e0f791910b5077cb77a93e40b85211f9953014d953fd3f8780189840af9ae60da1fc6c48d19d88dfc689a8421c28f569bfc5184ed6a66a50202bcb51425202b6428187f0c7a92d2ad1e7a35d3bc7f7d7664cfe9765d217f766a3c068149964b7c9bdb328a7821a9646ad53a8bded2912c3c714ec81190c966c703a5b9b6bc74c89e2e0635d614624c5371efc4099c00576d05aa5552b862455fd14641e1e80f4b468cfca6cc37e032079617c6cc3c7cc68bc8fbb3329c9e28c1caa811cd6b8bcde9ab6ddfcc98f9534f3d7aaff2a508b3237070c39e22b43a424b2af4ea59c9920d24d6cda3885cad8cbc7a2e3b82554fefde1a383c558139f9e1808c824829ab0e51634cb33a2bc3fc22ff47b58d7879d703bdd661ad3c290a6d812485ef0ce8fff48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 +ciphertext: 82948c08334a2c9684b91b4a759a0091481dc5a3c3b19a22688040bdddd36248e8b41a96790d155324a2bd4bcb600cdc60f64868ef7bbdcab3fd549f0fe04cdc8197314e6d688ad7ca05a492f95ed47bc2c79b2e547b77b2f403876c0063b8c6e0f7a613e2168a8b51585396fdcf250d7846c89ee8d4bafb1a81b1d797f10be40042339e57576f3be7f2540d31878f6c4155cdcefc60730eac27a83ba6945c38f1871ee0bdf60ce96f0b2098d1a0ce84881c4850c3dcdd81f14d87fb8e5723eec26966729b90445fb728b52d63c7378b976f781471b7ee614cc3dda55e4dfbf44dec1c772f559aff3baab16c7e333c6a573517ddfdc3f2741c144cfa3dec335d662d614340d19b2b8899453ebd208fec0a529112d5b71208336b2a327ee41af51309dab4e2bf4ce56542ab15b6f502c0cc61b0b7cda523dc6c4f85501ad788f2ce37aa3c26ccb6b9655026569ebdbea550dab8275d6acfe5fdaba77968235d81a9622c53233927b22d320edcaccad05f5c48ba398e298d77fd1f25983fd5625776d5ba3e3090c53f9e2a793f7873eb9eea54fc4075034a126a2e1124a4f843017f44401f10af382db6e67373850cb36b6ae5db7beb3db7ee690b998d7ed5c4c9eb9307f2916c3dc303e8e21d5b313f943d06842c41921e559e496a996391cf4cb1029ea5a9ddeeda82760764a37a04399de11265ae3ebf64b04c52a9581002a0b7caa34793c51ff74a18ff8c34ac83d97ce45530ad85e3716668c4fdde7715c5fb5f6806c64d353c8a2659d993f87f74b70021f95f06c50e155f7c5015d9cd6be713d758d6c7bc186a5f9299f3d8dcb280af932a0f90d152985824a809cde764d648314ad108f9de2e9006e6757fde0517bf72b7a8b81b2e79e4538de724b878cf385c4fa599bfcb984191053e497b83dd6d2b3c364edab43ca296a490314ad86795547872b64b58d2b57e4c39851892e3641b3316fff304257349389d5429a7611c606fc0552cf62e434a619d521296dfa66d368b3a0d17fdfd4b7d8c796b3e2d3338dfb3ab19ed43bd8011cb1d279eccd6cb39b4a3c63a7484e73215086c21d7f2965ec89d496ff6dc79378e6db7c678c2c829c68e7890172c5a0c9f63a5197c65546315896780cc92986b901594905933e9c777e041c94d5f0f5c53625d5aa00c99a0675d58d3f7ead5a866b850a93ab9b91222644fdd9caf14627fdf088f2b252274a44cd9e606fdc5d68bcb4a56667c84b2d8f1f4f51b20e5f9661a7cb19896bddf395bbfa6047e958653598df20d0bcb2182b6c9ea4406a37b2b6dad5447579981b5dcc0606d84398e79e8852e9424689bcf40adb811fd60bae45284e3c15aff38af28e018efefcfa8cad3e072f8fab8e1b31574bb807d31eb88c64000418f68884aa86f5469131bb78c897c9da19fa172f388e74eade31d4d234e84512d5b7ee239625b5f440f1065116c8f5d40e99c1c9ff8dc101d2741e1b8b857cbb98359b1269b738837cf5ea7b84bd790216213193dec928ba234256fe20b87b4 +result: fail +shared_secret: + +# Private key not reduced +private_key: a3854bbefd4e306e7b377ba9d6ce652f27b377bc73f58f8fd485afb5cfa7ef05a02b2aef06b7d7d68799bb1d94f22d8e52c9c44fce5580c6599dbf44cd36e7714c7ea6bd764809ee233dbf35a691048ef89dbb7a6329436c4ba502c83633b64f99dce6f6c641ff72f54c65511584cbe208a080495762eab49d67f53063a50fb45f61544d6ad39a4b1dd3c5ed5d193a59efb8d94aee400643962e896c0caadc2a03df587cd8213882927685381371960d9d907853aab7459925498cdaf38419977c36bbfe3f6acb9832afd3b46d934256beda0bad932a7abff25dfda645c0d2cba5d03abc22edc09f9ca9f38d32207a707c2e619f85f1babff8387cf9a89c53c38b8bd2db9fa4fbabd7a4f1551b6f4e1c489c0a3692e695c73b6f04bbb2bf7f516ebb523ad794ea2deb4cc6b7b16c5f7c2a8e41aabcdddb3f070a5de22a52b90e65b3c6872f279ff87ba6eea982bb84ea768640d70797724841699c45ac1da522b74c53e55a8a8968afd6ba69bb39eb4489e47343f807424ebb8b4ad8d97f43b2bab8cc37a9dca185a19c9c6b28dbbdb89ff51777dca15dba28e7f4176a7a3e887bb47bc4dd648b41cbc6b52656405ca5f4e7cb06e64478bf806fa3b52afb3533034cf487fe4a383563aa5a057a6738338f92e9d70ec94ab05489e278bc6688a98c2ab7a18ab8639763185ec47df75ba27a801497517845b99c0b692afb31c95a78fa6f67cbec760743cf9224df1ed46f1cd5840d13ce1e0df9238c941d6d44511592d36fd188e866917d7092eabbea5d5cfba46b710b6430ffa87fe7a3d553e773378e5efb378f6f70591ddb4a2eab6e6368677492b2fbfee219ce2e6633286b73863451cb0ecbcfa570b806b5d2d5a2fc237c45dda84c0ac097b8b299446c63a47f2c93a87c95c4b02a3d160bce711f5c9073ca35f663e0ec64a18956556db8db0d9778a8324df7f11d17f522476418a6c33c27d46177359f9bbe5ff7fd2ca483bab4bcc05440fcfa67c17c32643eb65a04acf69ceae98df0904ec66057c3483c8b297da3308bb90a5ca085ea8c1599ea3aadac3b19f97c99320568504c4f84a035be7648de379de8394a66be6bff45dc3ddbf6e79ae6d8611f3d56bf8d270ba24dcda49aa5a30bdaf56e7e48ef466b469cd6ccc8c2ce439e75953c080e3999ab77533be3c9e477905997ffb4ff6b28c90f9471ff7bf477e7b311b34c8927780374725789ea7325cee35f46f656cbf57391037a3e90d7472abe6b1b5e75edaf871ebc7e4994b3769d89e215933144909a9e550ce8e2f9ff965895fec11b3b604aa07e47c5db88c98143467ab358dc5eb5383ef4af9c983e64fe74ba6f273943a656d65f6d3f11395d92dad9f187eadc29c6bd3dfa9bce59ef356d3934a3aacd73ad459e1de4bb1e8eba301433030e3d7043776db346d2239dcd8e305386628a3ceb364ccc6078d4604669aeae53ce5a7e6367838a6cbc8a7eca7503421715d9e51f4c09846314185387ec47a60ea0c5243adb14c39d2ed5948f92f09aa117a5bfb4649f8705696097466f25b32c4a382c877d82e3eabdd6b364b936f617b533bf9c837a375846bc44635c8d55a5e5dbb44325d9070f830ae7db51aecfb937f3d9f945a651693bcbb0c7a385928129f004263fa16bef92ae400780966a8ae8750e574947cf6a607fa4b3d252c77cd9925ff3a89e762378ebabe4c413af52cf969068d86acb44683222f93bc50bc8f7058def77a3241173222359d25c3a87c817461210c6e4c30d4a428bea8b2d459c4d9c71594c597fb9c3bd17598afa098329bdd15b1c23222f0f39189fa06319bbac7d6866ed7953a2c933b3479235790942d6146a818edfd64227e78bb47168709bc5e490291234929206a3fa1c2ec9359888641d61897927f0440929294439095db0244a05c20f9678b69ca13268622d174a915a210b8908328b162454c1c0c3c36b8acfe4ba2c38e0279ac15898f393f01468eb23a8db1567ede8b493608d3194b2f2f82e91e739479c35a59267a1c84fcc5a1ac12289b3e5845d0c8e9969bba50211ee716774ea03514c3b7359892bd4b8d9db4fd006af53961687e5b0d0fb9e16fcb3764b1b0271b9803019048048cab04e60119c8a140b401cc8c5f5770863b066429e71c8ac3751536dd3cbf4e775c7778c15920849d4b1c1b6ca9ac63d3de47cda549ed009b4ee7759fdd66eb5555b199022846671b1a819aa732a23e6bbd27605b1fb22b1aa71408b2e55bb651c1a676e13a8e9cba2b65b246b6683ab20820ff40eab949eb219851a7c2e1bc1a4cb7b06cf526bff6b1ecb4b5ae4d05dfec33de9504d2eaa4538dc9b9bb39b051ab7d2239ae0b98a34f55474871cf9059e9bf463dda3895e32c27a534737677e40527313ec993144841bc756e9222d756c3c22e56ceaf336e107c3aeec9b1dc71131271392b4a4436a14292aa0e24957534856e30ccff827cb3fdb31aaa086298c59ab71278885308803591513870867a018e61d2705b48210240739ade4c7100210bbbcb524966a9123aac92cd711f5da3b5b614eefdbc39bb36cddf47ecb196840ac84a6c721f1fa2f031c022844a64c4433f414a707992200b857ada964d17c6ceef31186c248adbc83ca2a528738ac567c4c8afbaf8ba57b3f42700dfb8c563b5e494c6679e69acae47a9bb14c79396bfa2593d63224e29cabdd0991101496a0380ac19b759cb0220517aded8371ce74667dc827c1141a233709fc47bd5ea6664c0b6c2182aa9a088df3c92bb5e6047c7b03bd9c4347db41efecb80fbbac90662c0d56b8f91b3f3b7b3417d592994771ec3695e94cc3ac73747f279984b7350ed9b9400201ed35b785f0629225af64b05bb5b6016ea50a8689c9ceaaa234748400db67ef9514e7ba63c683b4f5f6b35869586f0058ba7b9c4bac500a0034bce3b2bda7c5fd5c8ad37c6466a9b877278b7773ac79809222f80eef341236053ad1d0c95862796a9702fd977e820420d611c66163c5cd6c5fdabab7ec96a51bb24328617e375367ee616ecdb46089c6604909d055033d53d828c7f8cd6de0823022babcf521aaa67959c1881161620e397b0a25682cbc805a96a84bb84a9a99acfb6012e2ecc2e5bc1518036e40dbc3347caba399178ca912eb8367c86070833137d1bca5b5b3186ad23c2e76a4cc467d092102ba081494bc7f963a9a6ae575d2c57a38371be5b164adf29f392014d11522535b0173126bfb82721e153e74049c1e170144484dddc2716b4c487aa0398ee9ccd2804df58fab8e2d32ac05bf22a845cccc2997b502ed631257065214ab9afed11f00ca5c18c92c4d6b917165fd1ce6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b +ciphertext: adf7eabf19b964073c8b23ebd08c9c3224a3a1d1b9bc80310f9b817c153fedebbfe44f6426dcb32acf9fcfb9f49521cbefab676b0ba60e476e6bc18dea3fc67c6acfb042f592a557630ee0152db0add3e364044bcb910ceb0b79a4c7407dbc285a7003231a8d4e3c044a84d2baa164949369becc15e7d91384217dad6848424ee5d80b086f1612969c1ad430876d6b9a40a9cf3bff43e508cfe569c74e0611bf3b83758116f17b2ea11660ef51df4d20180c9a786594016a3c8b5f88e39fdf4981a629c2c3f6ecdb521a5d1556e8ddaeefd1d1db2fe5a4787356a949ef652e84ee7c447fc020e8d8fdc42dea77607247fcb55d20f1ed3271adea64165a07279b077599be443f4db254cb8ec45b21010935b543401abf91a50570bf3bbd7f94c0e3b6579e6d8b1f34520de7cb471de174fcb3c1e6380cf7156db6aa4fa483a96297842342dea8c5d0e421958942e5d4b9d9a6867c104b5f21aa6f02398cc1db26304f2bf29c124e3d5c473b5f4b2ad79a092e35e00f7ab04f4f42605d2a8632432183c24f65df8f5fec2a27a7b65cf7f2705aa9f6c4acede1f407f4fc822b60ba72f81028e4a175683796f5cd7ab11bf95ec66002670a8a01564e276b83d0ba30ec9739e917dff07478c65b931d839cd560d3756c1adcd0ddd29af90a5887f126c6bb0a27ca5c8f2c131eb7f57b876a8fd38b53ee7b3aaee459c2cf10fef41e9c853950cedf0343c044392a4b1ec58335abe2a216466e213618f36b58e1529415ad8dcefe7eca63911bfba0a27e74af1b586e52ce4f1efbe58e46259bd6a82239e58208660889c533f905a7ce54f94a97c10bd85a8a30ab219040261f4abe3c47c2b356e704a626d51c316b5ec7a180bcb41c8ea3bf3bbb846a90672571848ffb6811869f15b3317fe836436f8d758eb0393a277e4888ff85fb94b878bd54717fcfd696772bb815781e0f39eb57ffdce6abbc4df932e9d4abf64cd6ee9619aed5b4660d705fd21338bb665683c69a0bd84e7127b5816b69655e661f00095bab6259d335500881536b4bfbe84fe75cd203a7cfc595df1fad1d2a93858f98c8eceec2c1b20dde8e0dc33f98e80636e1da8945e617a47339527acd51110e74bd90148d9d3772902b879ed70d89a0370e884f38fe73aa2d51088f384c5ad2786c2eb9a9cf1965438e9d15363fc1d4cd1c850af641cc8083c95687f38caa5b631591d26a753e8413d779cf83d254180ff636207b242f9ea9c9e2c73305bb1573dc463c526ee6305d9f1b45d95a7d0ecb917eb9ded46fa43884d1f50553b4edf08c02734cf289e86649d524d5abeaa8f5b3562e80c87658dd91e66e7e55502de100be9c66bc2275c40d9ea2fc160d6178b6526dd663f798c10cf7357d8df32f75a8a6d70e46bd5d5dcdb52aa72a1be365d85986f5029b18b15bd1bbb413b8ab84ebd87aa309fcceb6e30992e5983327c033556028d974ffb076759825dcb98d20686107c72d333d0205b201b31f2963c0f762079d6358518e9e2f19351edaa5d5b426c0 +result: fail +shared_secret: + +# Private key not reduced +private_key: f1cbc95bf8705fefaea293f134f8b634bfda3f3b6a83afcc6897f8df4fd944ca5e74c4f744e4b2bfd860ad79f0f77ec4acf7d6ce99d3e0eb9f434364d2cd9aa308e404be95e704375aecd12439d7f22e730773844a3d49a136821daf39c7889fef2fdaa015813f9876122debbbb9e15b0f6c3776f64374ac29bdc9c52fb844889df25dcaf954d9fbf6ef08daa4dc4b6bc4edc86608f245fb813dc88bef8d9178be3c2ebfce1c3b8e8c93c8cb86aeff1383aefdafaf66d0bfebe78fcb56c899569bd497ae15e86f19cd9e6baba7cac85f73e7792bc6da6c6222da77b20d595e84a2c9a9b9dabe31caad514e9c8c59c3b1a12637fff8353d468239358835eeebb00bddf6f37a471e32f8bb555abf6eb04cde3697f399ca6e5b18a05aeb934516a4851e6cce7fbf780379d82c396ad39eba5b48dda856e0d8ff7b9c4ccc36b20054cf5d2bff0fbdd3345f7c6e6977a775aa2d58b1816d9ce57346f9e8a2b686b7d85cb4c59afbb938b26dbbc6ccd685a6f3d9838c9fe2e335b74462c2f7c52159dea527af3dbc91034c74e3e94a69f4fffc39d920d64f4d76fff436345c06c242749ab25de21ae330f254478d95ed5f44d48c2ab65c8460e91fd499c33b4cb9851985817d7ff82dd49daa6d64fb2881e18697696960d9b5ff40aafe3136368c0c5146ac3ed3b4aa581ce43cbffea92553982d3e95c441626e447698bdd6dc462fa5cbfce3933a3cc26b2ccd5295c3e3c3d429493244f63b811640f32eee86b54146d59b2e86ec793b4920939c89adcd12c882f08e92fac7bf2b0ffd0868dbb5ffd226bbd2428731b72a81cdfb654e09f96b73713edbfc9044ee78a8b0d6699f5933db298a658658e09c0d3841af424aca7d30d7c15d47d4fb88c6f66592a04ab803e83eeec4f94b2bb5c6f957b65a6aa8c88a88f533751e404ac7cc76857aeb3ac07e03fe8cfd402dde35969669e2743ce708d70dbd6be964991e797923cbf91cac6e78a8c55c65a85e5dfe2184491e4748140868248364066f9f0e68cd2f86691d03d2f00ba2eda7efdb3ff2e24ff10123dff2fea2d98df80dac8cb99af9f938700489e5146aa8a486afc16cb4d01458eeddb4d6cdf7fe2a6c4a884ee93a495a6ce5af938e5b37aafe655ec73fdc0d8855790e890e78d5c80a3b5e0c395548a1a04d4a4b6f86e14ea95506be194a7ab1d7ac2105fa32bb3b5f5393e5e5e73d2c7c8653b9433344af489f721fe99523bb401cc75e8dc8cf1e62a6a6f7e3a743b43de534c9bc2124396107d2183ec1a4fdefa3847cc08ba7d1a7de2f7db3f0c4349f7d7b40bb9c4b65e9b874f334a975755f9fde05927b25b8c13bae1e456b87e9d08765ed0c39e8a3658e9a9b7dfd1d5adafdcc7a28dbd1ddaa514f702a0ad3fe67801137a1faba5814ffbbcec3b05b1aca701385e169d31ff9d43199b07bfdf683ad86191f749294bdd42b6d0943d248fb52fee84e98b68b4993d508197a06caadb923f950a5e08f2ab2b4854fdbc44742c673d0f55626f7f6d0ba68ab45d8b83d4d767b7f868676ddb33c917ba37b6bdc8a93e756383235c8ee883ee4279cfffb29668d07d7b48e53bf7b39a388b9cfb38066177b0695a512bdc9e6d7d9cf0cad698035eda89cff189f730a05dabb3254297561072317010327d4222de388a7e95d8d0076665061705209d59984540471fc61032904b13dac27d520a2b7cb653a68a46623316557500cf4bb6f71ac9b5ca17d45331ff06507d5732829af25417defe7aca7364d99041448328f57d94f1af2572f7468da3b9f2e432064144f0396c1a8d95ce9951530a3b33b092d67590b307944095c50c30762435b76a5dcb3af494a5b112fee2567664a376f3b30c32172059631318821de71ad62b0227d9a91530a5ef2e6c2ecf925fb95302598b722a991e989a1fd198836fb340fe44849ca144545a5a14b46f464078529bb6dac09d148949e91cb0d7912f8701d84aa48ddacbc1aab0a4eb63f9ba41465f03f1bf4b4285cab3e315acd8a3f79c465d1d31fb50670423b278f042442e2b5797483f5a2bd21e83248e3039626006d7124a324281545b8c4356396f413a1fa67577c5d15c638b7d23199aa5343473dd5b45b66f41d451358f74b82a3c18627a60c08513d34e14e3f2a4b13d7332fd8014ff817077b7ee2db80a9c00eb1da79c2193201996036d214ee7b238d82afc2e3a226159ac05240e6683ad00a55a006190a279e116626b4f70fe345594d21a8d54b9017a76d6e2a61b9585bd5e378875ca26ac071d6b1546ee99d716cb8587b7a4e184c8119cb3150611389a8ca0bcd1ab6a7107942769cce08c00174a19305d438a7a475f2a29b28d230a016479f8aa8da24273c15094d3c0e10a8a0f0d3344169b81ca508e6cb662a4ba28c8693b9a27bd46a35acbc27a6b7cf30292064b4aef36bb29909af11d8924ee59af80b5871c2bdf0c53830a360688ab31a94cda3b12c0f61ce341bc0566ca6ad1cae54989aa3083707ea74680ac1fcb254fe3866bc9c7fc33189d3f4299a8a0a985ba3fbd51fbaa45d26aa352eaa710826aab8f600ff8a9554c842657a3cd2d6588f42063e9c08e9955ab7f3ca032b440c7889595a3454025853ba4070f1cd09dc26392b2657c526052373eac80c920c58c3a24827456be174842ed722487c64373b2457836f13c4065dd7b555f3914567cd87426e1196bb03c08c7a77c77d586f18e9603f45b1b9675bc62a4e71f215c3d7071729b0a8e9069f35ab73e55948f9c3e766c4f150394716b198721676495416e54841908cf60148a7104a4df00f21a10fcf508ae9438ba162291e5245afca757ca88ed577057f543921f670b262a0022a4ea4044318a4b1af8a99cdac8e1e550b732157e8ea9194970f786665c817299a7914b4c0b3394a57adb179bd3067897421a09410a34c658daabe6250047bf15b76f826bd371f0c504a2cf9106eca67816a4865b60a87d48ef4753f90132663fb26a5fa08c59394b6770ab13081aa200c79a6802ee826396cc9b3ea9cbfb482d601952752758cb7cd18605a9336735ea2322bc82b7bca773be27f17bb8726a8cfa9070b9aa6a77cdc0b64081cbfbab45c4314f855a953231c6fb6149bab90707b87239c2f7c7103bb9b2532180bc1f16670d90b7b77c6028c4d4bf92195ea54bee1150c25cc363c57f812a0754c9bf66470ad820e12133ebf44810b7318d2a79e5eb98c17c40b0ee10179f1b5b6870f26d27ebfb588f3a0d02e10a041ab4e3b97c35070f0da64f7e0e7076ae69b2ab51a956cfd04f889560d4e598328f6302a9762bda2b0f29fa8ee34fe48dc4847810fc6f44cc1985a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 +ciphertext: e7a99c20e70cc337043c1fb4b4652347b827093a693543f2b31c03c52fdd4a2375f5a66055969e0754920a298b5335298e585c0e5831869e8714ab1b0f0d8a2dbc97d79bae54357dbcb5858bb60f55c1c739b63cfa0b57e6feb3213b5a90ba8aa94e1acf57b3fde306a854b28bacbdeae3b0610eb3d9595389fb2e29288586b39c6cd6cda86845241ded3e227792bca133a7f6b6bd2e03f5a215c63f0c682481a294b92b984ad8bf63dcf25f20dd344afcff545d8c89ea41ee0929095dea72aa2c007280eb9e12e8f7df68f43cd1392af717f01cbca7059637c7a5b869a5b3f26b1914ca8d12693c5b452c77c7ab8490ceb84a36066d26a84437fab7822512186d6069ddb363ccc3a66091a6c438667d6e423eb785b37be24c0b82524ed9fb67ed990311b010cbe63c51f6b0046c054bae7001439e4543d25511e9ae5b05f9fa0868ca7241322800e6ab6541e228fe2c4403863dcdf99bf3f01c117ffbdb4093c3fd4057f38752e878273a75567b5d8d7d23e62b7c9e478b12d8e0b910ed1c67377ec04496961892723109034b45dcac6e6d86128c1e6f7b92c45b695431406420ef8081534533182306daded5a36f9243e069914feb94fd4e21997c7eb259c4faa30d90e28bc81a2ee5033b54d1304046d8f110ea7e4008b4bdbd06c4b3031972164e9602e83143fd0640e51229f8243124ee1420d0895e30e19f4445553d236b48e65ba5f51a60a54d582e78b2b79a8f62dcdad61f33853d990ffa97f7e9e5f6a1882ea1c97efccb8c24737f897862eab1ad1be87bc7754cc69806cf53a123be63d6f08cd1251388fba7511e8457d8ba0c41410970706948cd42a73c534ec4141d408339411b480c21e60e06c4376fd0d818a287b9b2e235f7d86100aab7f3874af278561e7cbaaa269417fafb4ceeb0b0d08260db01e0b346e8e048a35508f4d888fc39d7250198c383258b735ef44c4951eb02cfa0e70d72468974a25a93858af6926c1c63f3ebbf279b8044279a4476d5fc6b190fd85d581138306b1340423bf70af7227698b740c5e106828591570269bd549cb6730674394f56e56474b76930e117dd16816c79923c31c1be831256ea63b91a4c0966bc15ff4e0abb910d088f4c5c6418c356eb076740f8d3a114584b61a52608129ba0f956e2038e9c1fb1d69f1757522c45111e26449b0f55407d09e51d50635ea272b18d029632bfed44272347b5d3c99b077ee34ef4f1c21104d9341c44aa1607eefa47d39b6af568f1615410558dcae8b7d546e0dfe88fca027d4f2bd6f249c5ec9b222a90edbf0914dafe124a56861329d09f567f8ddd477d8d73fa74119da2a40bd27a317bfc9ee8d0f2892cd201c55615466a68a16d9e39c107f053600618423a9a66e9d6acfb310c327780c47f72f45e09d27099ba53d4997aa14b5111bda61d5692dd9f73aaac26f07b590662dc5c99f6f4bb994861003dbf2d48b90da8860b911978b16098fd6cd7eefc4eeb90791486f2b4bb36023f1538cebcf9798a8ed2cd31758928 +result: fail +shared_secret: + +# Private key not reduced +private_key: 62dd34b58f7c4405b4cf1ff6039cee9804fdb597e23ec8a44454c38d54d7d5fbad7068c373ec34f303a6c437f990957c5803536618bf084e8a9397ca03b8eeb459d762da41aa5731a8b795e077ca1da336289e32d785b98178e9f58cad7804bbafb3ffc60ea5f68981c48b4e06b7d88c2784e917b0645cc28116904eebc3417c525cd3e2a42dfdb9d97cee85827a1775751ca138fee7a217a6fcb4546d946cee1e9c6b1c45a238f415e9c11d6cb18e2f616be6917a3887838ebadf6f41410a42048ce56d0c6fc5dc8060e9d46fa658727b8e4e045548a5909a9c713949ee0597f2c7969b0b48c737b3a09218fb002f5e98d8ae1b09b50c35e76b2764be4e4d84c57ec41a4b8c04c82fcffa2f5fad200a6e127968c844c8888cd14ac99ba8f540687fe6022fede01c8f5c9f3fe089584bee81fe8cc3540ef490c565332a7bd8953f97e75b2deb83fe53b3aaeb9f4b0fadaa5defb339c9bcfd9bc6c8f6dadda1ca5a563b9fe3b8858e9115d99457fddafec81c93ed8096b72f46da66ee94c5b758b385f8808b9b48a65c9a04b34ccabea12cac24599f2c36664668e366c7eac87f4f01d833a5e761276e7bf773d886e44dedf8ebbbb44de625bd89f4eae1ef8bf8a7f02439c346a438b1a8b518698af814e8548664ae3699efc8f71e8cfee995731d83d9bedb87c267fa6c8d5f46654a93de88ce76eb9e1972041e3446cc5fabe73a35b97cb427f97988cd02cb8b3e0498130341df04fb8538ef667abcebf576fa266f45bf368d9f6385cbbde226f1094c492607cf592f7c2b1fa8ed79c6a726a7cae8eb7e9a50d794e7619ab575a3c54bc77f5b9df06977d29ac9fdb447b0924e68d8b37be0438038efbb3eeb95221a8db96bd7fb35f04486d8335e3bb0b7d32e493ed539f67c278dce0b8d954b4ff0bb62785c6d253f8addf3608d5dc0b9eb5e3bc685fe198be984735764bea637b4f9ae49bcf356d8a57d21c4f6b736cc8e9b396bce57805ef91f433cc0ad469728df623a6564c8c1fa7f3896437fe216715b3d820db78f7f0a78ad2ac03407d2ed1f9c95dc49d8eb3b7a585aa10d46876a7456278bc4b6e7cf9b8f06e89af84fc14eefa7516c65c83bc53c3335df7cd0c0b344f79635f33f420ec893daef9a36986defa374033546256d7e343b82660b3597eba842bf50a15574b009716b58e2d6be75b899f9d3539e3fa97b3a16644fe6bac74c67db2832a9e8807eb9745fddafc10f5ee199b39ee3954b2efba484b3528838a56d5ec659a047be722ead37faefb007c8952189f7d9aa8514bcf63a08cde877f0cedde2fcc84f7a089ca7d5ef4ee7ed7c1379fd34c713cb65ce44e0214385dd6c91ca1b74a4bf4bcd45b5ca097a02359a710d8adc8f921f7a79b30a8689053f044d453e6b9979c8c52206d7eb4c72a30970c09562d90bd189acf1284eeab57653b5833035aab95d6ec5078d592db86718bc6a5393a96c07907748be2aacfc2324cb1247876b9c3a530cf440f3fabf7fb39ee59e284a62dac56964d7f1c3e3d5126af2a95bfb981a5f16f7ceb6b7f007d9fee21d362deaedefbf8d26c5a5ddb58b4b665f1aabc8a916f8abb65e5779e94ee98f61ebc4835775efd5dcd5136a4981b339e1a1368287fc699e4d50bab5ba45320968fb7cbfb358c92e2564944571591211b510a5b044663ffc7deac3546a8aa060537bf36229bacb4c5d918726b5ae7dfaa45f153f329140106a80b3c54eaf273384dc8e47f58e68621f3be905ace09a76ec9839ac471f9404c196587cc95d90166a247029aae0802ae3cf6983355b330bc9c6a4748a6130aa510ca1afdb876ad0d7b2653c3c88079e14d7898ee482f34651b7a238f3f07bdb4989740861d358384a4863c39b8912259bd78653386801d2450cabb6bb7fc287c74b2cb24c5688b66f7952c289eaa5051b938fc833f343c273652e4a1a6ee6c35c8c8131ebb63c82d38046b41343fc0fc660168931c899088c92db171f75b1f691577e09ce56435ab060c8fc084068133cb67cbb0fd36a73d8a21200623ef324256b99b0f60841ba9cda515f62a978881318fda87c95664e4a5755c72026369813dc90c8d6c18f48d61c10e49a7e9449f95492f0e4ae14f6969b654fd39bbac79c7e0b507559d5137d2179b59b21dc60679cf1b455b94208d87514c008898a95747ca9b530164743a6f9f1878f7badff6a4b2023ca367944f288a399c52648f834c28014b0f921ef04127ff4ac656196c034c0db9a7e8ca64109b904b2427fc601732c12241cc32589790e3bb71d924c184edb521d3b090a90ce0b296365ec6911341ad4d8cc7c136c87469f1ff101faf3488f89b52e98b920a659375125b48c403b4ba3175bbc6cc5a2ccc206dcca0440d54c6dac74ce4674e46444dfb4b5070926074c089c28c5cb11cd4c9c715af34aac79644cf2ad471213889c5e7ba92d114150233c673e505376f21dbc999997f43ff9c3b0f8f1b3dec09a4ca3ac581b9192984e43999f0d34aaf32218b02c8aa2f21c579457f204bd18191811e7bd6e4aacca5aa7c6f41fdd192bcd24760a2243034021b192575bf811e1344a25e1629b019564c39b09c88ef9b1ce6761066030bab14ac202bb6a8d858c3fd316c4fa81d21904ae691f6fe7931dbc93afc09f18f3b278e4c453ab5081372c093a9a38ea1622379f56397ec6c47cb7067fef7225c952c262792dda68135e45c3c6cbad23593ffde806fecac55d682fb23839b37186d4a40b83641d9214b7e0490e305807745534de18b9d4bc5eea755cc117b68b7a30f76a9458708249f02dfd59691f0b720f257f1f96cfcc3573c5696ea33017af14a843b81ea58821db21b73a9b80ca187685dac1f8735ea219cd01c6688f5bcaf4611fb3b58ad65b8d7c8ba4ab950bcad9b23d5b2d0b718397e111feb25f1739ccdbdc5c41d943e977aff5209134722dd3d54b923b511661127b284ae9ba0c27f05aacb20181602d9bfb32c3e255e7f48735bab94e515529a9591d51be015a009a9094591c7e07a13c57e636b6e11cf4835a8180895a6581507805a1c7a39ab05633798aebcaae89e37d8d75b4f34c73c2184ffb567069f0b3911943c2060f34f10f835c8233a34b5618501aa36ebf678dae07af9a567ac7143567c92a89a94a0a4abde383706ccc3826a83dfab8ae7165c6c6555bc77a43b5b3b2b590c56ce25e792796283737c6f5b300a0cf06e0060e1634a434793383860d84a76807c2983c57522fe3f988486bc386cb335ab55689d6b449b7a38dbce911f512e4f148aa1567878025deeed7dab8e62d43c3d2096e4682692537c70ebab9e1561cba88b05ec0b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 +ciphertext: 4d85b317eb5e6bfa5ef78c31fc794d40b33fb3f1bdfa125bc5372bf84c6485f60b0e4be11cc54a2b204c1e2f67820089ce68f5eb96ce78361612f2b08316c15c609dd8dbb0f30b4c25983410a9e144c7486f348036949a892057eb4e29e23a7ad87eb5219d5a684e116f34af7fc3b5e37e76d4801ed34f066117622cc9944468109173b105805c3520de565298b2cbb47dd0343faa575d26889c032b7a53bc0a9f0c90ecce39eec6b4730c370ec58d959091d06472279262b07129610e549da8a4fbbf7dfcd5fceb985e7c27a15e78d1228222ceace2072d10b774f5c07785e9975131eef0c0abd43b98fb34502247cd7cf239978224a1a805e60926641bb20adc9a94efd26be6853eff0edc12228106ed7a58fdb150cba5ea1b68fcd58f8e65781f2b5825b0c8093183f7f6f92b438c5d7e4cae70a6cc9fb9a184ce0f254dc84141b80f5d1d2ec7f2442f49d66efabad3bdeaf4dfbccc4c36e1b4118b42ddd66d692cfa64149e1cc204635c152a8ce0020a5ef8c7032da13880e8fd4297cc107c84a1fa6674049c4c1b25a4bc8996420ccb7479eef4f5a6b7b3320b0e798e2f36db5a2be278b430ba1baddceadaab67faf9cdff46b59b3f1b37257a63462abfe731b5f6ab7a59d3028a9efd88f93fbf50f108e2a1f42a2681fd1feed062a512c3510024db9f0e9bc4e110a2642f15d84a0e0016727c837d0a5ddb357a4f3ad9a926997ae405fe1284ddff6901205440b2d675625e1bd23d8d11b9e9ac03c5eb97585b995579581df5a6c69a06f6d9e09db3a356f4227ccd069366a6030d74508a20e936ee586caa9d649fddd1c29c02ae0488ab6309f7a25cc81f246871cdbce087d7e01b2fc1274800e6ba4a263f29c9563691bada0441202a7b065704f6aba0d91c5c9d4b53ace1ef361c39ed34bb94aaa815eae25d4952a0fa45308d871ea49fc8c1ebc5b6a0a93c31dabf41d5f3097a785143839b01e218495c1d075183f35181319793254b56c29e3f02a4f220852316f53e418a6aefe8d0dcd0fcd601627f09a39a0f0ed8359a4482356f7050c09da53f2b74e003d7c2e7054353847f772fd9edfd5f2565796e128a6926f3f053d2cb146eb8871a05a1b9161cca78559f1712bb9e004f0924c1fe51973e7153050592363a93ad12947ebc73050fd849407282360d876351133f4d37e7b5fb51baf97b9ba9cae783468558ad51717656687947684bb61b9faa87519eaaeeec7a637a1fc93cf63da5b2f6d53fe878b2543fcd215be1609142e3b23c51099dd488ffd3b0ad68302127ba97d062f9887276ce45df63d99f494b5fb22c467b674954a0c68bc85cd053af86cd1704e258eba6ba7812cb2b9c9a1cfabe67d52b7f9115773d3c4e3afba0fb4bf7b9eff6f220cd2a03d4cc7c5c9202fb4d80ffb78aaa8cdaa1d8b0a603bac25afabc0502a455005eccb3c24e2b4b05ce8e29ba69f52b3741679c359d62a1f4dfe424c8e77a5e7bbd5de5499d7763a9a709d828e6c0b144828a88ad4d6c5f724f7b3fa1ba80ba6e +result: fail +shared_secret: + +# Private key not reduced +private_key: fa9abdc85db446ef973d9c85b0599a641d583b93c146b6e25669f258e79664f8a22558cdf56cfca034dd5b24f5b6e6e77956afeedef886fef714a8f872dae7ee05f185dc965de960b29972f68f8d351d506e34bc54cbfdda3c6a54b5aaa89466cd44afe56388c22bdfd19b74412dcf83779359097c3f3d86a904376b56814a454935bb5328acecc5dd8198fa6797149c74eadd21f99177093de6dcb8b5579a974eceaedc74ab8c3e92ff804bfcb94ebce245b53e27bb59082e9bbc6b7f61ab3a36beec3cda544dbcf62c4f89a4a930283b56d5779ee14c62f3a893090ee30e3b34ef97d87e1cded6b5528013e92778f871ed9db99dd467fc82602b95d2fe6d680562a2b866380a411546475d1a529db537c2ffb3e3f393c29e9d6fb97877297cf2ab346273478afa7ee1044bf4d3353384d51e0a4ed2364588ed694a2da6cd6abef9f68d01be6c7b2a53d64bbb0655d98caea9746ae5324bfbebd956952d90ef2381f8fb747f5964b4ea9a58cff659635dce7c55001eb7d1c3a7668733464f315a05a0931a9a5da734f6b647df0f5e05e480b6af7fdf2ee6fe03630fecd74f64fab358341cad8fcb79b48c04f83b46c54219c16bc7943887cf452befe224bc00aff1098a75b2d9b35f7eba2bd94f1078d0dac689d71dfdf6ab6528876c39a74d63dc414a0d77cb94cb243947205841f8b698cd2e4bcabf442ac4e8d7f4a7bfcfa793fc6975268a4cb66f304bc7cc24fa82fd57501c75baf9b3a5f94935b3991d2f8aa62f66ec289ca3333d35dbaf59aab37d659423bc9953656317f48f035d76241be5fd145e86db6ea8758b9b265ccab860d05f68ab6f7c02bbf45f466923c9edb7af40d183e6432f9f22946be1ec538a86b7df2aef490e791ddc487c6acd7fbcbf9f457eedd8ecf1ad3ca1ce5e45247490fd8b7cbdf0e1c6a4e8e573a6d9c99694ff822fbd876c4f6b193f22a68afa2eef302b895d36f4fa9faaff265c9a6e71889661897856b963c9216ec4c1db767ecc725056b473753ad6c9d46afc82c60a8d710dccb18b7a393e933eeb9eb02c76e379a5b326c72b0647addc393a6676e6b948bc465578e9b4ccd670bc3ea39c6beaa52c6737433e931bdc2ebf39ff2a55d8eb649b4aa69b56987f0f73d98f9db39ac057f89194186dcf3db1b21be7f569fc5737cd12ec38bceff8dbf7863ceccffe9587bd485090e45d85cf98f91eaf1925b37a4ace9c85e451f3f6eded73c25d3f54984e910ba12fc79f502391785bebb3c4e211e654655868a9dfb5aa59f0b90bffe86d5bd7e8a3aa668f983ef12a96ddd87fe13e0cef1ba93a4b1dcae185bdf9d8dc06ea30758be2769bf9a4a3950e9e75e15873f10441402fad7946f643599f7d6960f3d662d34f55815cffd7b445d35651ec8cdf874afa2c255aaad5ec421e8e4cbcb6f91745150c51cb7a5d5987341d8d7cf8969c5249e3b8659dc62fdc6e9d782d463acc647f16976f641c54005ebff3ece194c56c3d7eb6bb296f65fc99d20b92663ae9a0d8748b9d932d498b7f3e5be3388f87b73ca9a6e1046ff4fae8e792e8c7a4af3dbefda44ef9c0ec0c4ea698d4d9d9d790cd8ccb73328796fe01f871303d388ffbfabcdd810dff485b19b76208b41eb99b73d2b00d7884ac289c5b4632f8362ed9f238e07a34fd7b3acfc5973070c83e03b9b45c65f8eb64a08b88592b6676db235096694073143ef758fc84c9d3097266b66c9c34a6c5f876779936e345c3a07614e2795e65c0793ef3a22cb65bd06bbd90b391eb425223c2c395674d9841109b6929d353437dd49c7cd50d781cab5850363865689dc8bcf81a80c4269a05060965b80a56081c186a2f4bb00e2e942863fb8e507230c29215c98a78e37201c263783f703b17928f36656b99f9cfe31917f05c25f57063d728a4e2bc652e4193e52877b7310f7260a1985985c26caad60c9e6f01b54be183a7c2ae986ab2a85b33788674dcd42566b406be251837266ebc6261c3b62fff702f10298119d414b580bb4077791b7096a7471595d8659614c878d8097e7437503a7c7e058a3dd295d34ace86b9302b901100adb0e6140cbf44161ab33b9aac34a0dc6f1faba14d259c546c672ebb7f528a010d5585c21c00c4b19980c6490d76083a77b8aaebcaf7917a81b55a6f2a6be7941393d0a9ebd2c549417f38682def039b4944cbc6fc629bb3a3ade353ea2005115a665087c00a4b771ef0490748b370d8b4c4ec37cdd352562a11479597d8035c00824f48805000778a81d6a31a0bb8b6201cbd3149ef96428c79569c5cba273a9bb4a77eef98bfa54ba8267bc42c643c29577b2bea5802ecc038ab70fdb1b23d9272b7ec30cfe1791126a185c40a77c57ec3088822c808ed8b1866068035590460d6a9a00c50db70b19b765e7ca8229e1a66f4fb52d752b515eba35f64097ee85399d78ad4c2cff7935ccd269731ca2b3b3217a22203e3b9438cf0b396fc99b6113cbb883c16869bb114bb1adcc06863738541acc61458ec9ac98df381825ca80ad954562ab931d1bf47a1c45a5c1c72d90cc2d3b4cf6135b8b5454ec4967523ab82e9aabefc89780722b5aa12e47344bfbc8c3426802c77c02195255e71555d9045bac868c7d45c06b6474bba2f40fcbc480112176a83ce361dacf2b386cbcd270456e7563a873c55d752151b76b3fe3c3233c5199011aead401b88b9c36efc295fe03dee6015b1ca00c5bb06dfd2c2848125af903c298c5f74fc4b9937412ac70aacf07fb99488c797287c04335821cbd6475e91d66a7d89c2f67285321442c4e7ce61d0212cc16d74c211ed2a7bd829044ff82491d1cb1746430603a0091110f626804e0b32edb0cc827c8ba7c36f87cbc67cec250f65ad2fc621363bb715557848c5a01b256524271be7b6956b72be644aa0dd33925f64bdd3481615246e95294196d6af1aa5aef6880ce2a609715b50fa7737be749cead7c84977747924bc25792509ca7a931c3ffee7341547913ee695f8144afe83430bd5c96ce61f57610f78d6c64c3c33b468b6f3cac46f29b60f0705ae1a05e5c63d21a62f5dc7208d25a7f0c09d8f77a7a7a03d51d2061fb13d9ae97386fb6da4cb6fea0923937536511ba8ff00ba753897d16b76058a15b5c706121cc792076ebc2ac1ee492a36e65d12d23f6488245e998457d4337a2c62c731afa43085a94892bd30393b1c9fcfb380f9815ea491968d6514b8707551443fcdd5926991599da552acb4a19b6342d309b5027cb88909ffc8c83b1778d8aa46c9d07aa2594a7bfd47cb7ae17d30385f988dc748b843b7b7f569e58ccc9215503e1bc2f28f5019fc72fe6d3324c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 +ciphertext: ebc5501fe8979387772fe5f486b5ab466ab6080f3c0c2f1919488c60d46908ade6243b7240e4b4faa38d3ff8a7e5099f66a0a4cc90e696b663c995004254ce33f75092abcff3dbdf52ded59ea137444bf4766a108e95db38f3ec150c2e2be33c9357ecc6f1aba15f904c66873ce66c64a341f0692de732951b43f756afe823496ee48be44b0e5ddd98db7ec401f872088dd8c570e74ede290222efb031d865559083c7cc2b01f1ef63d3defe0f186258b0e1f3a750a0888b6bbfdad4975a1e3d2cfe0370257bcdaabd0c9661098e6d343f96639017a2fe0f8528db5995e9471f4ebe77f12ff032826690b3b9137b43946ed6a6e9fc9db0d3682f18772c9cd369c30b00f66c0b2c3d912401e83fdd1c221e296025ffc49c9a7de4400fb1e05b4551b96f6e5a760730fa998834355c9ff8644620df83735101a2ba982010fd456d6279731798ef26d179582bd6c2404df96ab1402225b8b5764caca763a3a4828712d48def1968e2157c6a7a15ed1b0472f0706b59680a2096efcb8595e42f1ffac5885da71542072624c8f480c1769fb420578146c118ba21e93f9712ed3c0303e631e4a7a5aa2d6f3b247d948e27cbe2d44e2804c3a8e9dfba678a0ff44c201945c0a46cf31bf8dbd6dad5a323e6f4ec52cedcc7c8c12f03693aa0a4ace4e21af890467b7e7e876b7d45f22120bc5a6043b1a8c322f035f16d9bb5d3a629b1b783e1e44d2c1205337077dc68262179c290bc4a2f291110e8bae9de1f76f45eed9ea69f01d692c25e8f33f66dc4acbc539ad9d5a062616c7b1eef940fa546729b7ee744d655fb21ed346207aec821bcb8cbd8b71ee0f46b2e718349b6c422547feeb0fb7767403b0dec26d3dfeb7bce5cb6837960972c53cffd753467cf88088fd5b88ba493244e593e5dc1c85e6a6934956719b52ef9fad4ba14520631a12284d85ecfe9cb93cc87110e6ef5623e03f91848b67d609fdb6b3867b354ab4ed1386af75182f78189704a470cdd8576f5485bff21bfa8d87e3b88e50986909b3833b08898ed5b7e46312364d9ba911219a49251410e76e0dd66aa451ed9c07c7dda1c7c7670667b40fa44e5bfe76a101dde80c6c411f7c1820b46ec9ffe2bfadd029ce14181191594835fbeef62eae04cd00537e6d5d743a9bcd7eb5b52bac2207d7bb3c42a631f9d73fb82948f74c2d0c59d99a366b600247234f619b609f1cb66328f15241d5908acdb63c905d5959e0dcc5fc83f7d1b704274ed17c2582e651200e70f265d816468fa1b5683a4604f7cf72d57ff9aa3c698f02de106e64d99b0551649bf519c43efc04cd8c1750265473d4a1fbff0b6597d670e9aaf63b53295ccb483defa0b49404f16fc18c033dcc1c115269c97eb7c44b89c76be473a94dab492b2d98c27e418671d21288ac7b7f82380c520675140f018773d586f4faac79a08cc50bdb525d138ec4bf6a0d730e9f1e559fe9e1158509001cf6d66cc4994c08c922b6fddf40d493a049f8f587ba0adb83ed5f045b82598eb7d2e6be9d76b +result: fail +shared_secret: + +# Private key not reduced +private_key: 274f4f449e91e68be755d6893ef3e789b8c6995e91cadfec1ec7cb8ca9df82ac49b7996b1ef48046f8b3093a36c27cba5c35b7cd733679dedac06a51096d9e47da30a048312f1543b886e7151e4d37a3c70fed9813e79f37e6402d584f51673f70c5331b89a52f6ea51d363a8ae8d81e0ff8de7feb20469dee7d8bb64374e2678424787c57a4d617a8ddef73fa61eba802cea07a5e7302f3b02db4b136d588e2b4efca37f9b64ec9bf0dda4037de257c47103449bbd47eda9bc7a9c5d8d52d76fe7734fa5454228958d7cc932ebaa0f9eef123e7ccfdebd39a2a66d6d7a0140c6ce16b9fc0b6a0a3b7a0b51ad6d8d397ca1fdf1edeb5f52e6565dc84e9aee102e54b60e88abce7714bdf9668f79b7f2a7b09e7c8a92480f31bd72fce4e96e77e6344f841167afe44f1c38cfff4ff5ccae6dc652c9831c551949dbf0ee9b2f118e04d87e45ca4b5245b66db76d7b0dde41324328d746787ecad7f6adffec5dddeee6ee1ab87440389fa0b9c44b75fd26c726773bb8049a77784860568e07e069d3d15f1c70e5093787ac7ff63d366e30b9a39e5093f62d7b2f8e5411f6ea18d54e55fbb4d2ba7b0917fcf6fe666109ab5fc078eb02649082dc82b4990a294d6a56df68414ad50fe791b47d722258bf103507fb9a09b09bb4373465ce5a1ea263bae6b723036af2697d0d496724b4f539cc9b7f7357cc7b6b33f1e937a884dbe3d888508bdc54f379eb8b3682341b3b4b760a879fd2f9398ed587acdd3a06acdf3c5530a7b90013873f57e39c2d96e1d7b67427467e64cba2965766603ca31ee3f2e357e3e6945ceaf906416370cd699b3da77889b63be284ad548f6992991419fb805aac7eaad4d0275c71e0df1ffb6d02c27d3ed674dc5633367ccd86dee5e4f6ea93de94023c8f3d10afabd6f50b92a8a04533987a6bc510bbe84ba7fa1699b077c3a05a9fdde5fa19baf38b466c2801b3fe907f436ee5ec244febebc7694ba68e27671947eb933dbba40ad726297deaa6fee9575d444845b41258f6ca77915345c0af3718fad9f6ae6d4c9a4971f6e8b5965ef5ef54e57bae38f5fcc043e3399cdae03bb4ee5d3679a6e8955789e80a78bd896aae9e87f2ccda6b83da02b08fbf19c541ca9344acef7f883af147e3bf62f9239be9a216478a498da7d9b600a7e9209f69519e5774cf48c8bbfdb96e4b0f10a940288e9204532a54c48026a5cdd5841e6c8a736cbc99f9caf46b8a90648a854f9c6ae47d48c6671c5e8a1b283e01945e6328f9c205959a4b4ae87a4c3234c63e653cb75d9f237c4721c66ad0597eb22d69f3435baaa03e2491394cc1f38b899973ef79f9c47ef045b4145ccf0ddc7ed53fb50b25c46e674778ff9d69197a9861337edab3de55cc28bcca65b2a5fbe2afa67197bdb1efecae4dbc86593a06c833d8faad0c7e4438f96248a8e4a3d4cd3955081ebb2e717b36deaa928c3c09deebcac4ee4627a7886f64d6acfd6cb7aa8f978c13e84a6c6453efb23f8684859ed2da9ff7a560d436977294daf2abc08b78ce11af2d5fccbbebe92d57534ba04c5dfba389c3bbba405ea1ee9ac7a344cd519cd3a2dd012da9afcadbf9a2373ac534ada885cc723f2e5b4a4b84c473610631d29c37a90908cf2c89d075928ccb3b9558a5453315acabb5a228d0abbb99d63b0294b68594a0a648367fe044e14347073562aeb475c17196a3da38896f2168996ca917a0423614431963b10b5a0d3b228aeca3b26363026d1a5a952b5333cadf79a59b93b5ba484bbe4618b41756a101429cba6407b44a2b001108eb30e92d60c093b4abefb63438c481dfbaf08442d607088ebeac83a950623e057c99cb0f9e31639cacc82852f4cf9bcc83228151b91cdb0423f610552b0c170203c7f2b345443bd7d274ab14cb67b328d914366ea9a220cf46333a41feb5193ded4a5d94c6e0a43bdd6b2a52c3c4c718591f11b32ad64930a638ea9f217e64a9e31526313133c02b5b0cab821544543fe24aefce70927d9248aec2937385c79cb85df91256e176eaf3a239b370d4ef56a90dca3935507a6a86d84b021312bc718662abd432c08bb4dca3614f357321b191a8522ac109a643a5a9a63419be6845e5f5837b6188de0c779fa01430b219470a20da019688802ba8440c60d8727394114db10343fbab0993ac5d967b658b1551a6570f7d9b283445cc278298b4740884ba72b338c45249ab74c84a1435a84c42533a0bfbdd0509d7a3bd0b0635f538ce72645650931dbbc6e2850cd2585214f5cc12f2a2d9c2820d6c0550be79d5276747e2c04bf976705227c842b872e294aff495e06502819c6c92de3622ea968b07c0646dc0301c009fcd5bf7f19a357693e032cc46b4777a1714d41a59bf07721a2490be2e3cc7e4a04fe48a8db361a5cc1390d921325875f80629c2abc4d468a40d9c22911b9bdfc6ba986b9bb7226227dc63d75351fa4613de3654475c5668d651f9f03a386179cad00100b35343f48b7e36a79dbf979cdc734d5855b90128fee10c9bf40acfb67332cc8c9ecc4a3a9a98bd30c708e7a630a0909dc8ba2b1721e42250b83623a1289960e7288758525d4088525ec25511bca906930602b5ee1d127c23205e681c9db3474aa774733100838b2461e45cbd603c3a74122b679cdb9992063e089d5acbf74b03469a3ce7993c6b978313a7a735e75bb94976b3539b4298cc47af58425c24310667b1315baa5937741e35309f1c70cb8c60e06ae1793502a316a276b2e21087305f453d8e99d08730e174159db09324e4cbaa067cb1e766e455a34159465bf1138a285cc386502d698538ac63de2f496b120be468a952b02c5dcfac5a997023b5b3d98691572103e158672eaa0a4e4f44fb6920ffd874f52748a630aa41d188ece499aab324e916079b3bc2427b35896b26b0d2564b2a875881a074706713d326306fc66efaa1b8d4cadc7c85b7ac211c4f61f68a124465397385b2ac7a09686935cde06638f156e6e4670f963ca82950d3207889446be69e2a0d7cabfb16141868a6187b5be7977c354fb27a8c9cb8197565480244bf296692a02701580a2b4ac4772b13a27c869123ac3b6cb6699698c11261f657ffb6c8d78102e0c60c004c0796f319330435a29abaf33dbbb1c566aea10349981409ac31c18aa48631a1f0657116821a2a36c2403870a3787a1e3f36349b3373ae729a859af3163c078c38ef38c464ac5ba1fa8150d9093f97c17106c99c632bc42a5ca0595508bfa7485b23bde8d12ad7bfc9c10c68374b70a4a46655b5a67d10697d2f9e047e603b8845c9ecb168576f9d8bc7f3c831b6ec15c5fa4f744315d3afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 +ciphertext: ecddf4bca1ddd56813da6d33fbdec858e5623a15168dfc3e93d9114285eb4a7c75ed6c01bf62a6a1e9095e840348e68905092f8e9907a4d07f6d49c99ade01b5e5583cd93eb64695f695e99c9f646f335e37db423ac1c5376393195b6581ee7ef8db5a28f7e9dec1e0409aef29065c3b3f486753ad9cbd5491508055aff32616b3c1a3da59067c629eeb7029bb5978902886fef7d8cd0bab7474e4b6e0fc844ec6aacddbb8969810cac38a3b40d6b0927a033724ba6f77c59a173057042eeac0a9b1d4b89b04317d68feb1208607f8b5100cca617f96ab20845e1ad6b1be99ace6dfabccace157398b9e9a036a70b1fa755c2250446766baafd4d2b3daf13ad2ba8b727146ff87c463b06170bd7bf715b3f5892ca1a80a602103eec384da50f3fa5c8498be1029fc722598677bbab562ab9dab1eba0d6af783de2750568d7c4021ec95ae18413ddf4e9bbb13122e62581e66469259d79576e601a772c009714c28e3117ff2e9a24c321b1d892e5b3d42084f63c38a6d41f41032b405bfefeb9ee955055cf89bcc545ffcbf3bb3050f886637054ecb4d83e3aeb5c2a11b946386efabe4a7dc7dab6eb3d6944e8de6060894c7a81d515284d9a0c1a5bdb4d6e4d20e66e150635060cf7b3c5917dad5bb78a88ce639b012070e3614389f9e89f70cf2064bf375bd8dbb4744717e771cac29555f6300ea2077c882c933d366059dd55301ed24cabe484b23c28e5e4578baebcbd1c6595b80ba173a00e760cdbae70a0fc9b77974843c30292864fd68611382f4ff5adffa6c0585e45fadcae5bf870fc0fc7cb8a8a0e2c6f28d7b2f18a3b5f95e3ff82b002ca8075e3f9341082acb928b8a4116c2582147163d64ed111114b5c8abbf05b969dc74798479d345fa61bac4b625175e11167ad039205b70fd42426d0ded200cdef40b0aa37546f66c77d23de1d3f12da7030af08c8ecffa7617346de3bb3cfa66c5c9fe49da420bdfd80e541081d26ce873914afaa2180a683f738aff3f55930601df67dc7ee4ac20a60eeedadf36dab2115597f09235cc49d94db30b7f8550a223cdd0bc1fcfc78092fc52ab0d7651dce159dd5cb75ab3a7a79738f3e8572eba724e17fea9f70e7360fb279369015c26dd7838f117dcaaaf6b5a40bad8a04ca0c81e7578be8dd6378b6b594a64802c4bc0b2c36a62de594d2bf4ae5af1ea409c0ddf281fd250be74a173256f27830ca1dbb4d4914c7c2a179101c31838d4d2b131d6555130a5eacdbd4e64b8275a60e40ae253e44251d334b97a24f744f8b97400a90010f5232cd5b82181ec4b6b7bcedbe7b4a458ce772b508a435cbee00b784347fbac95a6493085fa21813dd7b953f04ad694936145f859a49c246d4d9c48cb94fa77bc9464c773a98df2e3e580ee6e81403bba5975bbfca547ee9afa1a48239498209d1d9544764cef4a9eece76078a72c4fa81c3ff788159ca33c733d6d06947580afa9bbfd3905cc2abf5430451b7a54e4d252bfcc449c406003966209594a2ff623978ba1ceee +result: fail +shared_secret: + +# Private key not reduced +private_key: 1023c06093d1ab03cae768b68fb495c496b583c7f007fdaaa985800effb6ba238cf37748e0bf31fff957ab744cd8c5710c4de3414f6d675d7f49af3df19878d9dbdde0cd6e1674c03124cdc5cec70acb645ea55b234d3190e8e3f287a5c245b4e7b3ed11988d218988faebc1953667613d3ff99433cf07b68fb4bf6b8a507fadfb0a07bd2f048f0393bb9f5b40ca588208faa73789a0107ca9c5eef239caca126ddf3de39996eee911b9386e8bb22cd9d8ea9d6bbb247c97adbf6fce4bb0e33113aa4ced8531bedafd425d66ccdf99a9dc920a935b1bb599c1ce4a6a5f53fbbc8ad7344122e8948f6be0e56e38b28740348aa888fadc18d53b885f32c34bb0d54e973535d5231bbf5dd356b8955856a4c3bb56e5dbbda07734d65f4ab0ace46fc684a3dbbc9ac0e776e6e6f8af9af7958f9567a95d2bcd699e3a87a56d86781965df13f58639dd2edc5c57a7332a286bcf39b8af28e4248848641f3d1155d31bdd69e0a56f931fc76378871848b121489773b6f3c6ace39a33363cdd32a40b4fa15637c029e6c23f754bea33587e810303418f75a35d69ef212a603ddbff3fe9ce261acc082b4e38477ca9348dbf6bb9821f8be74ce89147b21949666cca3db8e433fe66ca442d6356884431266b9d1a92b1899217aa636d3c7d80ceea2e9ca61abb586e2dac1e56e98db6e8cd7ebd52c9f2de064ff63eea2b53c5202d6e0265d5d3273f3f78fe1a873cf41433b786d8739b55d457364c04315dd8b3056d4c2fb5f7340bf6ba6c69f913d008b3e0ea76b45038e168b3f01b9892e5b7926cf53c3e3a591979874248a361c5c1f70ed0580351ce5ea7849fbc4134c708dc822ac8b9c13fa80875b30eb69f9a636b2bbe3c6a35ccf4e7d4cf4daed80cfb3f47b50599b024f73445ad9df19f775f5a77124ff5b87cc295e336eb8668ca6b3dc1d7b5b00da7583dc8c3a45f05f9a22c76e43965466f5b7cca564b6afa4a3cada57dd5b7035651736de0ac088727c5b7b5c9ef173589e7b9446307dcfa8e3c28c4d5ee53c10e1943cc6ece675f7d7c15f9cc67b181ec6b4077ab764aa9465d52495c9daefd33cf5dc51a3893aa35df6e47711e96aecc69a13ab6db1e837c1ad98b5bdf931b9d84c6c364b4a33de2bdfd01e9e55c5f7f036b35d5ec3d13b5bf49e8be9c0f34f4a4d0fc6efe22b7d5e0c6f12908b7807e5b3813bbbe29539cb63f78075f0f3cc6092eb4d24b5675ef9af16647ff9e7452b85a1c887286a89afd3e955fe8afa67aac2ac3d295d8564ea94c730f68ed866ad36c8bd634b2b6e6977fae781a69fe532b3f292b8fccced235246f8d4fdd6daab3a70cf7b73f51dd98a1266de66c5e3a8d66435789bd979436dcdf63b19ce5660693e6eb99268a3d80ea6c9a5f34d8ed8b781fb295543b0b3b9856d7fcd2268f7f66a0c67c96a3aebddfbf6a4ccbaf9d7499a7a48a65a8fc8059851b79c735897109479108acc7e668bb16c8a530a7bf4f473842ee7c191cbbf867b36059505446cb31cf6ff5a7dfd21a4043854d96d9575faf5416cf63029afa4f35c8251deebb5d62e33d98fc45563a9f41b8e48934ef8c67068d34155508ef3ccf4877bd27df392d3fea3b9e2a2896034dea00e7a56e91a766c72c04ab283d25787224a588eb4fe0c6b54d889d127a471a72c65f06375d1a545ad9b058a654324b5615138b2ec4a375989b3f1b60fd30bddaa2307205a103b29be6cb75f3567705a0c05eb845d493caf795554ab25fd03b379a6284988763698b1bbb4b3c1a54b9c2038e9ef30a3870a11604288b32336e15939fd181525909949c6cdf7737cdb382b1dccc0c49317213683b349f8da22db0b45e359b2f8e70916a0c0142fb264cb6bceb80afa3a36912d635d7b4cbf33a4a36e4c6714c551d70a18b967539b7a604c5182ee7673ce91d07736f5b97b407879e77050bcc089a14332138d92ab3e09b497b834df573dea32829b471bd5a73e61361ec699ee60320ccdc0e6fc983d3238a8d5abc3412bf48d67dd2e1b0c2692a4e705de666aaaafa9eca476a1b155d52459b563b6ef1549c51f83bee2963a93729d4746a01a21dc667b120d38d79a45a112067205c3edd378c7f65c940719f79389436a5595010678e1558ce163ad95593a751c737d4936ed9c7cfd41effb1abedc07564fa5238ea2d2908793e2a9a33e08b67ac3133402d42344f6d1c804536263661a557739cd8c29682549fff416c069a39cd48229e47066e02612988bf780256e25009ec5b1ef829bd39bc0654a0c8c3c113cf421f06965713849a83cac9f6415482d82074fbcba804b4c5f2b1fbd941c7ec8c4c691dee981392bb0736d43adb3ca548829a55bb9537396d7bb11922a9167ef01cb1aacdaf17902f671a6cf5487bb643e0a1cdfa3522860326d374ba8009833bb08eb09a2b3cab0d3193a6561c17d60b1cacb24cd3c26c455c040cf9ab0a7292bbdcab2d5b783d65bee7a666ebaa2764e98b7df61bd5ba546bd307ad7469e4ea85b6031224d9b1315720ccf95273c35767c43a3b27a31773c5b35c7e4aa0316c53cdb2fb1a60ab77c4a76f2af78bc2d6479b909eeb9c26ff97a47c468dbe7c439d232a914766fcf8772e7ba92b3182e362735c237bcffc3e940cbc5e6042df923eaec04d96e31cc3187f66735ff1e62fb5460895b22145787484e529a1d654a2d72cb9d81b4d283bb15682e8f9bf1037cc95e29cc3716fd89810e1bb95da871a2562645e0c60a27cb508c2885c19befc686db2e7a78aa66b934aa0d42c856cd361ee93294759549929b59adc1ebec3686e70c4a15c8d56dc23ad080945d4734b76b0a64b73de7b5d810ab8daf48542a4c13b8a14aef05c788448acaa51263cb31be69a91888ac66075c0e59ead1b29d6439e94253d20f965d9f0aca53a28b4903bd40a1310f0123ad221a45961527589e7048faa407028601e397a96b39728bf55437d335f1e14063d3902e923863bc90572891117516fba340263d6a0aaa0743e959da8f21ef9fb38431b36b1328a15696e97aa78ea97936f8b38bb1556d2625f5ac31e1b8cb3baeb1be7f808b6329a440045eea532624354dfb71dc321109d0058f24ba4729c375ccc0440948fd345561715654f60b378b477a208cb83f3afed2534c5ab6efc0a5761d46b6cc0a6ada55d1c92c7558bad4091772f65bedaf335ba37af34582e0bfbbc6609bdd3568001734520f45d9f4772d1d21d5080b9a7a2b2e72a0b6e030f1418beb28a229c8f63411446b83fde11b3d946c9bdabba08d495aee50911cc66291fd0d49e426ae85eaa6c911c4dca80caba6e28e5f645a54d8c016de51a2b98241a29230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 +ciphertext: 2b93edc1c5e164af29c51f768f38811685e3c326a9d98ae6628eabf5bda5c6920c7fdb738643230ef509286db3cad01e0f817cb64cba6e8a89793212057a33c5ac88b19d148a11124b0f6a6c0a4b86f25096a8cedd3f5ca81e1851ce1df2b43525ab9a0a95e8cfc725c891583089904aae1561cb9ac21806662222543d7f827cf4b6b3ed7b45bb0c5a0c1f64d73c9cf4b833a59617c2ed3580581b886fadc3bf00a6625a1afb067579db0b984b16fb645e222ea52dcd8aeb0538a14927c32ddd1c845ac95802bf48e49ade7122567923de1d73e46867f9c9dafb8ce4ae5d6a0013d82e53674227b79263abdecc6b0e0fb7fc0a2660fedd5d4e2febee35300ad0e9cf0c7e7f1ceb18ccf38a682634fd6433bc141dc354b8e3279ff1547de9853d280c9ca7bf88f34b720633aae88272ec03e7622ce0ee3c2e2c66313fd286fae22b1da9b967d926d0ba0f63a3d02814d2ad22eb462243d574e6411904ae35c859366b7e09838e12676b1bd89743c990050ae185287f4f89c1ebac8f477c23022134b343868a9db57bacd273f873ff0e96c93f026126b97b6bfb9c1d1a21b10f1cf0694159b3b01f802193d5046bfdb224f4ee0bd520151fac75338ddfb669d5d3394e0b9776a158ece27de77187cb0baf7b2c1b29a0013071078c823d1c0faa784a4d5c8d6ca224c5fee58c13e983e3369e1832e72b43e4492c21b33477324595a29da0c3cbe2c2c02652b22ab1de0803042b08254a1f3dfa5a73cc6197e3e4fadeed10f3dc5d9a4c2378fd22aef84cc98dff20ca24118d9e3a54a0c23f96bc70b102593c2ec8fa781d6622395613fc57b06c175e7cb4823eb0e692a013a493fb83355a9404af9147b2ddd81f75e673599a5dff78b9e383d656f2f27d2e9849a70e44ed84da5f3d05bdf4d929ba24fd574fa21b479b88227b82888341209d9698a700a82b2cccda24c38ff12e32d8182dc9771842da3fe51a191e1c28002eda9a7a13a0f84988b356da88e270434dc8f36359ff179066393af3b90e06220e9eede70e27b13271edae76bbb1cfd9b2a69b931d9a640dba314f8a4907c61745ce418f816a84252917cd4f4ada572b89ddfd065c3bc7604f53776347835d237c53a5c1c26a18dd37c9cf382d836f32b9fe1709c1800aae66d4527a1f1247382d54dd69d0b365f56de2cc38cb302b001e7cfb0a8b7896b38c1cef72ace55717f465e2229d806311904fc47200708c209c6f1c2a1977a845a5e83385b47aa5ac695247a4ea9aa1b3b3c7e4a096c07ce6341ca9fa0c8ce26e8765f35c04d4c7ae8c814e3910f62e50f728bd4b1ce593dc651a455e0b055554f12d652fad10ae94c1a748d3f5067b02d81347bb4d80793d07b5e71ff36c3dd11455c054a23431a830ac8022b8fdd7c273ffe4fda640c89ee7e1aea9d11eedde7b7258ac5bba74fb864663c44f22d92b28c5fcaacb8a0213d71b7f86d8de1db6a5dfefa338a61166d9f9841794b3fba4a50a5d1bdb95058b2d31aee1f987f8840b829e65f382ccfce8c298 +result: fail +shared_secret: + +# Private key not reduced +private_key: d87d60c90cd8dd7f87876347ee07d3738af5a9be92146a5bfdb637f936b280098224a38ce74ee1175e8028dcd05089bcce93c7c4f65451b893eb1872d557d342d3627fade1012fb78daf3d5eb97ffdaae6be398271444d6b17c4c5cbc680fb9f65c844c86c40b39ea3cc5a85096b3f150ac9cf1540d2af9ab0e3d874db91d17894d234c6bb376b3693f73d198c73cac396d942c7dcfc64be9205ce579217eea41383dc864d2619bddeeee432ddb7299aa7215e6fcada90aad7e48fea3d64ae4e96edefb52cd3d74bb49aabbf70ab50f02f579544d087adb95a9cb15349501f5cd59b26abf28e61152cf1bc03de326cef1d348b58b3bb0da69da25ce8d6c75df0f6b0e644e4ae9739e9eaceea5bd0f0d337762fee7884ff9c6ab1aef5aa84be4d8be365270583c0d9d8487f4e39978096cf97799774ae05cbd4794882349c68f5a2a3ff3877e395c6ee4286c9774bae597043e2ef63af40bf978f2fa5c2dde52c4e39429783ea5bc90016701f1868c2cac0acf4649886b773e5c29dfb7bc24f615fa3f16d2c3ec9eb90e87f359614c57ca97c75b593cfeef3f6a8bf76854d856c65d5069ba084c7602df90e1d4f5c9ac4993dd190c7ff004897a8d83b0dc3f74148443f2be41096e5a30ad3668bb9bb0ed965033520fe301e75d85f65cba909bcc42b32fd5578522baea905e6e49bd40a259fae266127bb6a8e33896515e943c63ea536b5db2c3b6c8998d4287922d5657ebef69f8d7193abf8af0eeab0eb66a87378074e62b125ee852cb0109f7d6dec61bded631a93c1b51379546453c646f6f2a792d20c36aff9a3182c6e7b5833db4e6f2987fb712e6732c376a4f591776e7c8868e6bbf7fc39bef30f484f1fe4671fece225eebdd8d795c3ed91779f517c4441cd4cc3bce7e7663efb2e4986c98eb2b0e8a0405ba2f7676a41f4aa163dd3cc185be7dcf2c904d3b878bf9d44cd32daf1d09fa720e35f820d7345d3bf40c8f1f48b4b2d693eeed8cd292b636e7360f89f377216f5e966b9a5d99a7a55fd2bd7d66163a00647aacb7fd44938ac6b6598e9fbd03175c2a29c46228c7b6464815eaaf71a79de7726d1e35fb25104e2e6ea91f2f55ea025da7a64d5f536849a08df094dc322c5b33957d197be6cbf2448504d7dc858e9384ed9a9676298daf73e8fbbe5ef4947ed617e33897f27dbacf4b7a42ff45ffb780f4c51011d9f8c4b629bded42cb7a946293f740a358aed69987aaac2d996f5c9886e8ef5cb87fa6d9376196ed76a4ee80d87ae808a908d3c3c1203ba85739c6095b4fbec78066ba9da4433dc59f8f4d73e041d8fd8f531cd6ac47c088a6466fe607c7bde38676a2fd6baacd5853f466eb54a9414c3a41f7208b5e2ab5973b6eee8c51468fb7dbef827649be94d0d97acf60b693d73b062249806275a5d475afbd943e96a512f45ce54343bb6f353aabe54105fdcf50decb47eea0a9f5e440f37712a8c2c9ebeaf86f3cedc6988a9def90d6bc0da49c57b5eb718409c9ad6f81ba50119dea685e9c36e574c1e8ebcee765a145309677ae4fc9ed499934e24500056372a35f7204dbef59df18d978d6457aac1f9761bb6367939649034f559bfb6c627d50fe9d2523a8c2450c193211551409a9ff92089c54b048b6a80127c7742ba34333bec498e28d729d6085fc7f5b6e5c4212a0aca0772af8f83200d422b49a80dfa17cf56d8277b792d7b4675dba3a7502674f595a45fe93008acad026410de336fa41ac0c725bf601280bf7b4d7dfb63789175b7748dc54846f3a8b28d055c69e2424704bd84f61c896a40447bcd42b96834c8429ca79dc4a4be300c7dee38a253e35819a43d833046f6437622094d003a3b9914bc6946bb4f4cba41246ca027cf2e599a54a23e8cca88086a6bf8aa92305185a8b232a0f45903224ba2d3276715640451bf49c350fbe5b2d95a5f55223a1a794bde26012bb48ccb4384b3027855331e96ba09c7e757bc71ae9ab2a1adf51ff01bbfd4c77a40dc3e24da767d8b456979913ae97fa9446413084a45fb7827a082eca1094a9437154b2c8edb48d7bb893ae3213b5a95f86bc9e146657ae653f1c9bf54f87830aa968b96b747b9aed4007ab4030ed652652daa9612d00f36bc2dd1299c8f2c84fb56045ab45279735aa1f57ecc470d7e66696a8b7a65bccf23b63ea1d595363466a4d24540e21bde05733154180d1a80652b166cc05af5a7cdb2158471d52fa5006a8ea25c98167f4574a8a47a00b7c031e667a7daf41b32c714ae1855ea9bbd0a1aa18bf64071c44f3783b30ce8301f20cbdc5c194d6131712386bb135af9b55c680790b5147f55a6cdb94075d0f0c289f42aa638623c16be446289d099777717b89922476d8c5511997419d8b5a44ac8c4a9589c5b39c03b045ac31a6e9967fa22c21f5bae213065867945ec746f776b0daaa96d85b61864fa94e76474beec06815b556faa81ace15c552558c0575c44e26cc4f919d3e26fe1374d2afcbb3de23a9be5b366c1a174d8b78ca462705ba70b358d57a751180c781b28075435b2528104ac0bbfe5912f8fda282f93b7e3292a64b83494563741789c98eb7e84d69c7cc2cb1703ab94aa71d7491c69b52949818245acc6ef07c11fcb68c336738fd762269b7ac562aa7401965f2c5b2909404b32cbc86671043ac334e283ab194bdaabc390b0b2e275bdf0cc2651d11207a53db1a2166b7526633cb779d88da83357b51c962f567d03917f0f2b5c3c3b9ba75699efb4a8a5736d98a56b1510cd6f233c2c05909a3ba6203c11ed72a0091785acd729dd609704e51dafd4342275564615b258691b59266a0ee3a8b261c6e9e9894b681806e97fbe3b25b4b133d804a0286a909752220c11c8644417f34597db43ac66159956a11541cb4348c23196095be01023e7b267c1e51fb0c11d9b787a519b3ca3f0ae08c79ed3f256a63b488e38040195983da72f9cfc03a9c5a7c428898291a9bff3cea8089a343b73e616c5e02227553511722b04a1604d5ac718ed753e8adc001fa47665b76f944c10dce0635e9c98dd91b9e6790da2b09ce323ab41cc7c29839784e6ba907979ce815f982585297b5170dc7afeb94524563510257d99131981128c7953ad87ca696d58250aab373ffa3476aac3f650bcf58aa6bbe85168b7c4012b3359a2b6bed702524b8498d3aaa04c7915211e1e013e1961b0e2e32b90e01e0b372446931a0fe6255b412581e2b5c0d60d3b7208a63449b4216546209bab2ad3767f9793d0be98cd2899da27f7d980122d0bdf593022e2903d69da169d8f3f65eec290acf30078fe51bcbd1aeaf412dfe2d31c7b10157c1100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 +ciphertext: 6c3904a9d9575ad0a33c89bd440e63070bf0433261fc2b3beb68c1e244e489d6ff2605e48e89cea781bfac81251854e85613a0045b4da0b9535073384a36ca0ebf9ab4f3f5bcfc7682dfcd877ddfb07e5e108ae24faedaf75320fcad7edbda2a5ac5e7ca2882312699421b180b61e8f67bae67d03a241439cf6ce69a03b82d7c1d9c3e2e13fa4a83fa8151f790c2244d1952910c946dfcbc38da37a0d5970c23229860a144d374439e66113af1cee797dd7966da0cc64dc4c6586bd5d44da9513ebdfe3413199e89f359cc17cadaf503587b80313dac670791908e2f9e32bf8271cdafecf912b87ac0eb16987e4afeed57f3a83cfb62510b40fb8a0e1ba08e44f65c27e647b3f7b50e8142fc2d9a6cece5178c0bbccb8546cb31e7e5bfad1851dd63f4cc83758873c3a06dd420ae4c7bf28d21bbd811ce87bdecd9dd79d092b5aa35459dbab31c113c82790fb97633d0316fa9b6731cd03a888b32d42c460e7890c5d3873a9885f6dac651f22fba27c25060c70a1d41618c352747a4a5db855aadfaf8bb0ad62067e03ee027bb5ccf994ac6b95d3fe0d994083258ef220f0eb044019070bb9de46b39c31a6af5b63d4df8230deeed491838fef7f5f257ef95af41b1a96c44eebde9ee33a526db893f6c7fd9d85bcc562b3bff3cc293669fef93e0341bbb828153ba59404b1616ecd79b3fa048956873381f7cf298925d8272cf593afabea7de258c51fc2b5e7c0d9aef98e9de1441c07b460f320ed845f4e6efa1892e23a429cd37c71b80a4e79c92ea476af0eb3267ef787c77d5cc236e9ab87352c30deaa1e612a86a801e9e0db33f9b735561ee5e1e124773f989a83a199dcd99b342087df9e7c63fe7fd9fa6a8335ab7e2432d1cd7e53c940e293f49dce9bc005a58ac2ccf8c993641231a318e7778c8e3bbffad24312df5b6f8ec61a65607d3a417cb48daa55d76a805bffb102dab2178bfe2b8e720cf9aedb2bb4f17086f860a866164771b77b77f8d35da63d3c06d4355555284255fec035cbf45270ee83730dc69faeda7a190c45077265b1d2138891092b4d1903512cea9cea5f9cb081092f438fe80ce6b739a2b79349cbd023664d967c952ab2c6fb61e8c2981b4ea1653ca36d40674cadb7b14e37bce21a145cba822c81f93b22ab3c798baa4a3928d9d5327fcede7362e9d4cc0eb58496c27bf4b245e766bd097e9b839812b1bbc1c5dfc46044bc59aebfffd4afdcb7b28d1bfb9ce5a5c11d4d92d720bdfd0be1d5dc115a07d48f6c3fbb3428438ba14e9700246ebff56d6fa77213a06a550d69f38870af60fcae077ba78485fb59c054d3216d5cbb070c9ad6a800ef76b05fa5213a744501e366d8176787c7846dc6dac77e915d2432a6b08d1a8fb1c8f7f35a56f28aec6b2273488abb17a2386735b06fea6feb589bc25a96231d1017052dab972368c93a857e0b04a9ec9c840827c8f320a9e2eefe96e91c70f658ae1483fa651242d965fd9e67ef26e2c570f89efa24c624bdefc51f881b8bdf37a6aa99b +result: fail +shared_secret: + +# Private key not reduced +private_key: d98cab94a33c2a73ed4bb8a0e314b78e68824f8bf156d3c481d3ff35d8fcdc6bff104ec2ae74f95c246661ecd0532d9ca274b3aae8f21ac955b003d444f775b759adb113ebc5fc34e6eab6a9bedf7c576e849bfc78b3eaa0f951ed8b917287e53d4842317474693c5643ea6a9d49a8e5a9baf7d6ef967c8679647e8c25ce3ff5a766f34b5e58edbf93550bd36595d5ec51dcec50ecf78da95325f48321aee9942a604d47f4329af8f18a6559ebc23a2ccc7d647ecfd866b18bff2f63b31e1886c319f11f7f38d3cf510578f62a58f91a9a7a1d5c38ab6ec0acfbc20e8c347c59c6cac9bc402788da55baf1a7c3c0093e4707699976bdca93646607322368addda4f0df66907a4ffedfd59bf09397c5ef39216fb456df504448fe276ed1981d6f681663a36e6d7ec46efd75646a5f875b07d9b3bfdb9b7a688f256b079ae40f27de3187b4ffccfd742756c1bceb08af9916f8347c6643131ac72c9cd840ca7f6c866f20e3fdc53a448f193b4c8e583db6e837873b4239b9e79d486c34d315c387b6e5763dbff6d87ad28cbad7f4c9963af99850f694023ddf69c74a0024a4d9a7a54bb978e24cdf13474e978740422c606e7c55778dfc261fd416df63d9ea362f9556d75ef9ee28fd22b76a8ae4892bfaa97b68709b09d638aed2a435500835871d29fb48d64b5c3ea5647c3634489cc2f33c6cb4d0381e52d8148c0ea4acb95b96f4ef919cdcf51e6bc458ac63557d437165c2bd4a9efcf8e471d652deb6aa06359123b532a4c7c1a0bbdabcde93042c4a2e8fb69df83045bb933eb43d1199a818f85ca0239ebefbb9294657dbe33dea89a844eb54f624c3984ff01db37ac46838bdae7e0aa3b01448412bcb8ec99bf6fd78cee583948a37bf2ce996ee95ffe2dea7450fda8ca5b07214d9fa69fdde17432e4f4ba40a5362596393a3fc8cb7d22435a763a367afc4e819fefb88548392f9973619b4153dcc48339a241cab26c68856bd7ca4163169497e3193eaaa57c3ebf384f49f6b28374fc4dbfae47e73dbed34ed6ec48f8d4ac0a347d82ec670357a7e88e98d3b3eac0fc169df6e3ffd4d1468bd7ba4be010e3266fb8fe3bb98a138b63a55e67494c17b89c6a6e939d75584e755bbe8048fa2443c58fd7f1f178965047e2a59c6815a5b92b6691c9c9dcc6f50bb73725586b57d8f39eccccc2fe4e828aad40677ed68e79e4118304637c9468b73138d5599a6dc19b8f4582b5182dca37dbc63d5d33559a79beb56c60108c5655789bfeec42b75b73b9b33624db202c6eea333f4134b8dbd064bd3293650c5b8e8f8779318de509cc7bebbdeac8679ca5a723c0ce29ccea18e7631911aff517defa39dd84b98aa81c38908fda685b3acdd73da363fada83648bf858085dd87c61beac73c76ff4477dacde375a7cea62f80b404564dd69c46e3a21267f9463ca7fe7f4c35738094f6f7e6fe610aaad0f07f94f4549470b993d0447dfe34b8ac264c548adb7a134d19bcfbff85dcf2e4c8103f679375cdf19d6346d64a56ec7648c4b7a216e3c9b74302cefd41deac64f8318708820006d06e08881196da1cdb300187c694335170f6539df45834b93edfe4f75e939fa508f9b6e471a6ed9b352071c0a607e459c907fa29619ccfdb5147f56c208e20b3dcb82fa2304e40c46aaeb47c5bfca8a9079ecab4471d4bcf914c8ba459433ccb950772038f6892062535603b536da65dfd5c33430069a7f33a08092bd9c9617df3a5778b1d15a8a91c8b99bf5b0d4596a3f8a79d3b6994e823c20f102cb2353273471e2675633d9ab2c7668f02e7a68b2534489b169eaa92a8d78e4e182647f71758fc7f49a17fb400c1de30cc76664bd10b7c55885af696478feb919f3c24fdcc98991177b52ca647070cef77ab47c891b06575e5a0814311a75bbc9837a1c564246c163017696294533999b6700a1402552063a621205bc28823e539ad1c1795e0a23b6b47737ae839617548a514631319a78d99350eb77dfba97f7208d04ea980546a9e6642395c5177bb7b433dd47351b85e569091eaa30ce450c1b786c0272b91f9763478ac5410bc1f78175edef0021e8c0b4f074bce255ac2238a5d67b84b08a12984696e1ac7ad1131cf64bc64c5b0a1ccc94e3bba85271975c63f8d314d9f1a2d17835f873846c6858f9f285428478b2efc10bd7b49ffa006a6537684b0093a633d9cf9bf6bf97017690b4ce511b1898971b2978b6a1371e8aa70d970f8600bdd0109c84521e663845805235dd5849b192c12b49b43f824d9a16dba939609e166a8b05e4811b970915dfb527d803672c7a418293937a0c508272a5186203be64b4b1b33578d48be3e23913e73a385a8ada0fcc4cebb1070ca3006ea16f7da6eebf8b9e6637dee942cbe43395c8a7806f2c23d1c146d6359d268303a1229e5d513c79b2095892d553038b6a3431948195bac491a879c4dec39cb1b97374a65d5f066f6c66045a25b9b5889999889db34b1f42b4151126dd7431389a8331b9c123aab61c2122285530566ea23bda21cdedac78ccaa9ca1566ea1817f4791da6754379f9b0f8acb217085fa380910ed3ce4a52cabbe52d75472a63c88ddfb423c1ba6c1deb6ed3172cbc7244fb71300721aa13037ede787ffd546e60890131d8add25551d72881be0c8647aa10eb5cbb5f73c891868d4641bf8a692bcf0a5867091f4313bc976c989d1c184aea07eed11e36c215008b56a55ab5062bb41f7c5895837093671fbf7c4ec63505d15ca7efa5c6e45a5f5a757a4fda02f9f13c7926ba7c990e6dfc8b20ca1a2a9490a33210c14accde09764153bc9d4a2a68b7a80d9a91d3d47789c2a79bb212bc92812f8660f23a833d78a3f056ac030bcad487431a6357b8a1c13b512deec79ceebc37c6099b720445390277dab65346ea323d33c76e30483d51b9d01b5fdd55bb7d116b2dcca951292f3065b1628b1dbb86bd0cf5ce6a66ba1ab3717829019ceaced283c6b748b26425588ddcc47bc89ceb267ac7c03172b960160a6317d44fc5287c5e462911a8c995bb92ea1c81fed5baadabb569f9cf7c1cac71926f3e4a1a7411295a623c41240ea4e9011660227a785d989ab00a2c3091b02bd65a5b244246ffb97e23213f57b86aa21669541a60ed7014f1831839e41539dc8634d0125d61100ea4438af59434a25a1ec0bc99aa0edeb19d67ebccdd22ce5ff925ae364af7868ad6308a602033e0221ab609560144abec5a4792b8894337c866ec1a5df4076739fed133a74636ec9d904e88876b678088d8c70f3c7008cff1967030a528e748b708b0fb783577f249c04ea5536d2da034fd0d15fbac7a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba +ciphertext: af90dd989f1b2b7c11ea1d07916c07ca7571df9e020e7c40790f8791152429d8dc6fceb7791d8ccd016bb0ac0565f06af72670ed2e427fdb6aa6e8aa4575f25c48f97874d83b65433672538bb32301eb88f4538f68df4bbef7d8602606de0aa790fb7ed079b5d796d954f3fea0feb43c19c7c38695c5702d0a780127ec35b3084fc8378622eb854e8abfed625381237df67b0e2bcd4d9b6f44509c1d7e79a9afe582ef4737f6949e0f95b104ef23a854dad50adef5a50e340774121fb00c1bbae7c546be459a19218dca18b3274a48782d738fe0fa6a8c306efdeecd55b45f2a9d1c0e128168a4f5457c9c0662e724a933a3a0a417ab9d94e331ac80c5854c2b498fb95fa3c30e0795eb753ccbe5fd25c2645b9c34bc38585acb9a8c14cdde16e51cedc704db37d7892266e7476201c1170d7297e193e8b2d5bf10b89feeeb912e40b16854b9e1c2f9975c664ada0c3856a1d530df42dc1238694c30b28aa835706bf351b366a2facb2683063279d8e6106a98de212fa5d94e2a0e25208f3d6b85f6174db9b02074c555797884bff70fc8edcf89f4a553d04be27af73bb2f9718222949cd1e86cf8b8bd15915873f7f9cdd69c7b6c608cdd7331633be5b5aee83e9047af566f8bbf4a020326f566b8e3bd99e31d92edb35962de24caf78ae895c1ec087c33a7b751f9430e39bcf6ba317915326c17432989c5c6c7f0f15e121c9f14b6559d51f4a5f273a9f99a044f5c599418cac21f0d9f0e76f1e474252e75874787fbec4edae7aa86ed10e550db44e46208001d30ba8910c59cff6649c78cb4ede7e2ad4fe410362fd92c535b52cf507c559416d85533686e3641fd7b9218ebbccdf1425cee412f7030538353a785cdd918fd7e2ea6b451a436a286b8d5b341d51b1a523ad0f614868772b56625268c2c16b951f814b8b5d74ec12bba0bc5490a95564f5bb0c144d469fd93555df3a39c1cb53eb8c5c4289651951471b97d0893cd33237c0d26f27f09bc67759cf464094161ac956cf488a69ccd0bc9a38f18592f00fbc6acea75895480001276df22ace110170e2c1705aacf956c6177bba26e599e1656363f9ffe6f8526186b9b2ff7a0b612faf427980b5baed097bdc2acb71edfa32267581a6314c1b05470fd7844596795188b2dedf4e4fff047ae81d0816e82c3e4489f06d57e7b698ec099425bd998b446757d9386951161df04cb5ecdbb0c70204e9fa048936ceb62cf99f19afd9f077ee10e85bf22645469944318cfff14652a233c792df239fbfc52f332f9bb275cfdd43a5659dfa721c91791cd1a91bf0e503ba9f68f880d3d2792e2ee22eb8f7e6f1b52e851891683f3eacc39ce485f0a700c60d25acca1859d14bfbacf41a75fefa35494ce542b2ad6f2c84c15525388edf87ea701ccae772bdb7477f709c822f2b6625f8b1b86ab093d0d07867c584f1c14ff7c7a8a7ca3d1e32af4d76993cc0cd8b740598f40794786b411e76ae8707dcca465b679fff10efb4dc6d0826dbb5adcfa3ff8c0a7d53765fe +result: fail +shared_secret: + +# Private key not reduced +private_key: 9483b4fd275acc8cb6617e3ba7a57bb54faa743537e9e4b3dd73c5d3239cb876cdadd5a1dcd364327a7f8cead92d684187abdfc7b64e822e6c9acb87a425da3fe7bab7058a6c6464fbb9ac71954e6564708304fbcebe582a4f6c53c55a7994d74dbbd1932db5f68df11dc6e4357ca0d3eafb649bfaf11cdcd70d8ac31ac8d995af6c44531e2ef5cc8eda6bc4a574fd4558a97eed59d71f748310a9c844c63b491997109ca07a6e3d97cf910b365eb343b3e405b749f33cb6a3502ed634c60e96d364352bad6f5a149cebecfe59d5b27d8f829243f157e98893494fde7bc51996562f23d81f2ba89ec4b416c4732946b4aa26c5e67dda8babe8278c51821ca36e153ab0a763dbd3976948d0a63aee378fc9f81e54aeb6772cb3368b6465400c7b4c3dde571390165cbf5655f072e38b797ba0475f38f9f8d653adba700951ffdd3fae6c91787c8b2c85fa02a4ae53ae6b4d2bd57a4ee7499d656b53984cfbf0b1c9dd70ced103c97f5dd7a0ee83cb2b34c85825766edb64e2135f897a6ac2be44ffe8f25a9887d546c0dafeb3d96ed03f9edfa2193c856c79453e5869349c93dc84626e34c4aded1f137358984341069546ead1865ae6ca54d25e78cb36744db7c3d45435f43526524f064f8b46c862a7660acc557e7e57502f7ea5d83ebf2c52db27fb4fb7a70bbaddf43a776b3f6cd2dc4367b89843a79205f34365f3b206798550c5624e34ef03c4ed56776c886366110bece2656fdc1c4e1ea84b0cdeb7c804bd53795db335531c896eb72558e78d5599ca66ac7a77e4d9a1002e349dcc76f78cae6c59b93b8e65799fe6a7b6e1e2233bb4346aa01b47e5b458ca7da0cac589f0cc8436bf5d75befd260edefc5e536b465f085cb170757f828ec7b7d3f1771d9a1a8bb3a59a4d545365970f67746349caaaa182136e17f4a32cbd40fe3d38dada40c8443694789654db794f185cb7054c6bd5df9a24ac2edb5f34eb6a5c5ed562cdb12f8d3b998bada9e346785cb2c9ef51989354540acbbbfc8517abb5081d55ce7ac647fde97b89390516b9e56bb175dfb28d3aadcd0a51bf098f3325642e9b753015af338a8d31add0c33e394abfb30314b924f5d50cbf78c2c4cd976fdfd90d9c8944569187a69a749b661d39ca5443c30b775588fd1d6af89c4baec1fdb0e8153f3986a96afee3ccbfeb42ad6f8184b586fa312606419375387fbd8980b86f97b3828124d0e92f60d3cb5c74fa5e58be5c06bafd8b35df92fadba32fbe524459a589a7ab46ac01a5564975cab77dd2c20745824c313e6e67ef2c5a0266419b39e401f6cd5b2497cc4cb7a7fb8c67a876164ecb281665f6eae84eadca520395cd59fc86a3ae8ab9eba4df4d534ffcefdb38be7a6cea26f09cbc69e796a2c44be582bde5c2e37dceed72cd5de2197f76e81b54c20c6f95b6e00093cbd9bcac7b75a904eaa9ed3e338203c40dff8425ea9c5403ac6cba4cb815ecc2c5ba3f69f100aa4189ef69631e846bb68c4e39cebf26464b19812c98c0472a76e0a44b273ec0130e546ac9982eb8334ad3da4cef5342d48666ca41cb63423b9baf290499c283f1b67d5e8b7d474b2ba392a34c18eea4aac49da90cab752bde605d984a5058d467b5ff439fb0c2916ab09bd306661b18626746c8f4db817e3c4dd2c71041929dd7c5918a760f50715c6528c2d2e7c9b97c51e9009281849cfe4410b616ce03455c73580fe16634fda087387023e427902180c5e8276b797abcc47028cac91bc751c9ec4a9c39d682cb38b38882103839947b920ed453a766c04df7ba58f9714c6c370b98172a71fb7d254285e609551f31444e90c2b1d595472825fb9cca49d55c237a67377808ebcc1bb4848a75527ec467a7f94b8c4f8b1a16f789f3ca15f4f332fd0160ff6c4985b08b9996bd08892d5a836d50566bddc6adc6ebc7d3c95068c08682d54e70666f5f62b238f69bf86a3a48421bcd8b762625c06f03cd8e013561abbb2f01b1c314a6a61500aa02b9a54682325340ba328761140781885febec3a4090a5989b914a494d07e9793b703ed4b45af78c42f3bcb46cb4c7fc5352802ba0eab35b9f66c34c39259ae52d1b75b910a82fbb464d37f6befcaa811abc6485f41d38c8a4d1592ec69b5ce90c7cd10c0082c0b72dfb2e5a16b4c7ab6e65f58fbeb6c442fbaa2b4345b3a3326bccca3b5104730520383178589c4b4c751796c31aa061346620ba90d30b340c541f7cad17f86e05c91e4c21162f618b52117ddb572e1b90c0e19235a82a3e51b59c3b280ce3fa739bb70e4af9233831269ff87f3114596f317f28dc11b8b53d578a8ca85b290d31abb115b76c0a8748124fdb822f989c241b801c8b982fc733921d45853cf63880107704baa331b725a416471032a9289673f3ecad22050d9c5c9e2706a341553d168bcbad1a41a3c554260112336430fa16ca8fb98cf5d92acafa8fb427c460a27aa08358b36c5ab849ca2725b72c939fe0601d1e2abcc4434bd0ac835751315856922ed53cdc7b49468caca339aedfeb25ec2b97d43ba409693fba524ae4ecaee5b84b567432270644d6aa618669734e10c8b05a0d697b81d6c83c9f844cdc8ac755403044b14c288131e8c0c21c2361b206597782313d40bad1d56dbe159735491f7b800d6b14ca69d92bf2130badd1858b2cc4a408c33ee56fdfd719abb2a431132e15b89d83498b6bb5aeb0d7404e94cceb2a29fc392a2e466469e53da9c371e0155a774a298d515d70ec5e31aa070be92c3d6290f285a6034a97e389277eb393c5100f066c588aa33e66028976493bf41481b2eba07a720937bc02b5324d63b9487a1789a6baca91512c1a3a0a70b348c1596cce7997ed395b971442ebb3b0e2dbbf5608012030a172b259ac705af9634ad585916cd63ee1248ca143a20001a20cca0496734c2c52a59bb40f76411578e2c60f2364e8763ec1e5641c80a9d6235d4ff9ca73f4c4d6db9bcf3383d7d9a025ac76db1ca49710aa281c222a4bb81b1027d80c38c8365a39988a029a93b5dcb2b0f410fd1b63a54297c65b7de3f3a948f10988b507955aaaa2d3c699dc83ef348e3781c8723b9bd1c6637b94b6cd416427592c71311a16d449d15c0fb2753b338586f7260cdf255ca65cbc8c54101731a45544312099a66405b01eab124f116cab0003bde314b25690520a9a2131154271c89b97539035652c03b462f2635db501f9ab6983017f22b3391a67397066c86032a31080d329647a7c4f5ab89a47393636ff0671a4b06948c9f87fb580358d467fd3b5ed4c3fb678a44d92486cf091333c7f035541614729496d5dd45ce580f0d2638f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 +ciphertext: 00bf7bb6ebb760cd2f5c0704bac084e363ca6410903449755e70c085b8ef1785bd14afe673a70a8118ce2bd4d6b0d1e2c68b1d8d6dba69c1cc712bb753926d073941739c518f02efedd4c68be46638c3a1a9d097cf6513160d2954bf3c13e7ee2bc0583aaf627cec3c9658a0ec689964f54f81809958f31dd8621ecd0fa45ac4cee1773e16686ed2e50d9d4212c708f03e640e2cbc0f7f676b29834a5016971a2ddc1ea2038ec0f91133000a20af29409db0dccfa94b579ad89bff46a18b0f4f530535e45dbce9634c6e67f5308629421ee1101ea706a88bbf835dcd288c8421ba1acf5fe2945c0c657ef35af8febd7a663f8e07fd2d8a6d9588f58014caeb6f67c008806bd8b565f21f087dedd15e7c13e1c99de129c0e9be3ea77cdf2b64ee5fe46d2d7b3d4bd6e3ae489341e9c49618f16a9f6e23bfa1f37b34cc5885d8d55d7b7f816a0aa70c7559dcb6eb035360fbd157b2293e7242da423c83b1a67f3ad00710f23a4ae09c4602490271b24993da7535953b625ef455082ea5f75c5d8ecc8f280e4f564e1464d9802c7a0b4a903d3231cebb2a73fabc6090a6b7e98cbd5628e57914a143515b52b08435bed5bd9b030071c8feca74bee9f7e1ca4708198976beb8bce6a8fd9b5eab0437dd84d7a7f1188f19b0bcfb5f537b107007de82f879bd710cb9732b4752980049c97e7e5642b24cd59bab8af8feb51c64041023edfb59189942befcb4a95a2cf4b2c0e5712f34bfcb4ad08543a3ab5f102938b8c831122b193d6e24b4e5e9d46a8a88902d0d3c180a10af7d51e85ca83632c9848d6d6bb6f903a03bfe77531046531a037a9ff02a0cc45bb4b83bbef67989344e41f7869448e10ea1ea1e603f7bead5cb0c3effd793cd07204fe750ce6bd492a9effc45a15287a226de0df26cf784c1fd399b80dd9976823c7f95d241718ab6e8a362149c54ed1ef6dd3d569077d11e37f6fa74b31bbd8568579fde066e534e2134ad700f0b8a0de295134b4daeba035c5aaecfd5c8892bf5f68faac8fea4055423d9b9752db9b232275b2c946cff74fa0b5d9001b4bb54d778bf9d5f1acafd12b83c2814ec4c77dfaed6849e074c870a5b0e31e6bcd7c1dfc81a2707daa2df47c89701063c72d07f92f81862cd607d3113dff9a2c8097fc980e61f86b9a46d084a47423ffef3e20ecf50aa6ba84091ca9e7ad8bccb04cd9bb23e3681fefb1e1166c539e73ae41be71740e3583b8d881906bacaec5c253181f970e2ae7f533d839a8eeca99b8af1c0fc2c92d86329783b7dc44d1d137c02c35165fae49996d3a910e9a73bb79f17cf3b6b64c376eeb62cb32ef914917e729bf4845f304412a6aab7fb69e3af795ed9b525aa148c073d6fe225d98549ff7931e69427d7bf7a0e4c1a4bbc1229eac126f859e9178a910af8d774c4d1e10d7bcd80544f6aa96ffeceddfd4d7381105b51c62c3f4fcdfdd14066d976a6280122a168b03265af549376ee6983c424b2e867d38c7b44b6af76cb5acb962e6b31d49e656031812768819d +result: fail +shared_secret: + +# Private key not reduced +private_key: fb2abf16f6cdb67475728d738286b5cccf5ee9fbe229f3781a8678cdddc5d52e9d4945f913bcc4a404503e7f82cd2e5ae337ae96d6dfefc6a77e5c600a7fd24e25328bdfe1d6d6c325746ec168777bb4489b04cd86a5f2d44a62d1bb81dea56e8ef8384ac64fae8edefde3f7410c6b7d184fbc639e2f6c72d64b44be3d3c06779be9cfb2cffbcb8abc582a2766efd9503745773dafc4f92769d0afb4e915fd07deadac5de37a34e9891bc9098898935650198ade3dba7f6ec54aa9c5f1624c48d265a667aa426abefbea0abfc0f7d5ff5ff621848a6a97f65f687de0669f56c63968569c1e8d7826ebaac40e735873e2f1ec53b0c5febeefaa82f32ffe69ffb90363cb4af81f49cf9e16b9ba4390072c5a796c4e4ac95ce3ee40710e4034a4a92f9cefe4733c645b5dbec38129b4d21d6ceafcadd5c1756e37f431d99e771428918285e9d2874c9e1f73968be76b4eef051f70cb3bc8d0779c3f4dbf835ed2374a55fe6bf599efdd8e4df49b59479946936fdc6b0e17a39d4684be9e447a2ede68c780f8468e3155be5adbd930fbbeaeaa79bd655593af8622dcd553b3e23f2a9fe15b78c8a5d1b0943731f7ed2bbd5fcf5ef9b73f4d66a9e114974dd7e79ddafa46889f86d8d5ba2865f6f8767aaf55e84e96de8e23ba7458aabffbd21ec68b19253a1a2d4c7fbc81cb9d4cee2afb7c38982c97a01e23302a2e681a9ed1e003dd1b4f9b3d243eeb8ee4de5849e60f49ac66bc24e482461895aadf8f4f28ee5b036e7299832a14bb02435d9e087f744d432a73fbdd84aada7a65750fbc91b3b0a1075e39d66742ee88568f6fef247b6e1496e3866f9b3ff6c5dfa199cd50af7d6f008dea4317b45afcda1e8afe359b695dc752315dc564c7e7e3ced05f67d2361f9d913ab2e5fa99cfeca4b436fd49fd486e6b3c47b6e9471e4c6925db068b92a8853c26a9c4c20e6e67cc90cef8cdef0f4785e58586caa9fa9db48546bec008956a1744dd9473f5ae50445b8c47aec4b27e712c1b94a9743fba6b389b8852176bdb1d093d8d8ce0fb079dbe65771b9ef0c1a3df769b8fdbec6f868df5c4c4477194fd8e4fade8dc3712d9a9266e67dca6c1cbfea9540ecb650eafac63a7d19e5059b6a7e46cd567c951a3096bf5cb44124d91d4973530dfbe702990608991feaa73036eee838c9a346ccc267caaa9d5f21e06dc317b6c3a18a07ddc737f7ff1d28667c70caa3ddf4533175aeb0a99bcf7cf60aab1053859060be267dcf6924aff3c49dfc3de50d386dd77b8954b7ed65814b6d134887b67dffa944f2e1f99b6e6bae557cdb14eb2b084792215cfbf3d302f39573e6456f486b8e0dffb95f96b78098ffd34312677e219244df0c4443f46473818c78f185dcd4765ecccaf4b77f76f697d221d8ebc16632be86fa58f78d477d21a25f0ae7bd668fc7471d9f62ec7e6ce3d7c99aec205a83be5279b0143806d3aa443cc7e1a255d2efe78e8ef98d938c97d06f70a278052b763e1bbc2f86be389b78abadb449ce848b0eb8a5b44b2e98eac3e6bc66a2cbb9c998a0f4af43a8e6809b97d066b87db2f6907d581da8e481fa8833d9aaa2eb6b5468f88872c5974d9cf06cb6da269471f5ecd2945b1d0a4700800708a0cbaa0e3347235004460c8f86188ae66af363ba5cee88b03a341f5255c329a7d119bcac87c46bd77a1b5966a3fb22a45d89c712909fa8c69967b1fa8878d89b8541b8a1ee6858932e0793c045deffa62250c0d0072a46328992ba7ac4fd72b48512c7448cedc902d9d69ca55626a09d1a700a92cfb1a6bd89291632c74af580e3b4aa932c8c6714337b1d72a3002c6b68b1fc981cd0686502189712f0c5327e1050ef71549aba312a59e9a342c9e76a96de6907cf235b6e3b5e36a9072ac95d856aa7014699ff48bcb7b298e5168cffa740e0a5bb1f65df9cabbd715096ce738bd39bad530a05eb58efa8b9e3dd426f1781a06179736570611c89a6f99b3c0aa5f4ab2737592082ff73dafd7671bcb60a87c5adf3445ca3381a279c6a4fb1724373827494e294ca5d83574e0877e4a31634abb106b81afd515402290318ca8a2511cb129aa52228ba4a64444b761c184a3a29b221e11cc1335e4b87c457710fa4fdee790614249fa060b0417cfaf9bc4fe88632a76766fc8c5ff424849cb91d4351ec621c2335a2d7813c01cc893c646986f7c2246b2bb05149ebda38f00acb65cb8bf53314561893eb0f1053b237915711b7577b18aa963315a3b024629689a52bdfc81e298c059380920aa5bc39759f2f56d2811c89c59acde3a5496f1a8cce9bf5266b363a40cc1b6c78fbaa4241340dd4563a5603413cb73ba1893bdbcb3ff93bb7f1132940998427769d19047bc051506b5b990074e8d1bbe2d988699b526726a91513988627c2301b44f206696353cab38f68ca111270ccc6cab887ac3b8bedacc12513ca349228b0d842bc193299ad1812b69c63c2b8233c20121d50793906c4014453e19a62da12c76f03667031f2bcb59a074cdd2417ba3789e7af38ac71335736890dac04f77e0b10529381e930c8c0031f88838efa47772a7b2541963b0c7b063472ccdf6228349cb5619c943067ad86019cd964c64767c838407eb32a4ed9c40581b63e0379d00adb275f6578f065894e8a47796489b994ab9471235455fe1f819f3cc2b378648ac625107805ec8946f1599a8329981a7775523f7c8ef7426d8a31d1d5cc98820186fc7b55076b14d2c7c1533cc3217354bb24661c162aa0895cdc4aaefa666686a0f12d1791adb7392b78d31d6bec44068c4f31cd60a768ac0b056c24864c03387715dc48bc86e1b51a649ce4945708951065f946e17c06f364590e4d16520fa2b47b230f1511fd02aae79bb8fa72791806b0d3e211de92455459066b410bfd4d437f0acbbfb02bfc5e93dc7904b649a6f9a7ab09e2679e13040c8e9754032cc3feb8c2bdc21d8f7aa56ea31370169ebcace98d54362ec24b6b6c63732b882984e58839a7f825b17871820ea9dd0dc8c5e7a15403888e80150cf5a12c5e26040708791d2074df71945d67f221b6d2bbc1b65d37559a7c248516cb4ccc19cc15f93ba6d6085bdd95568cab1069cf13138b83173ea7c58ebbea7516c6ae25bf5e07ddf29a0dcd64b455aa6e050c1d5663245318833cb95702bcab1a11fda773a73454e1055104f917b75d650dfe1c59e807314a096de713e35837ba4f2a5f3991f6ac18302647fe01a05c055ac9d19fe27027cad17633dc0f4693c1f79cf69756e79c9fae7c954a0caf2c6b326e9037042553968ff3007cdb135e368ecf440e4187e554af9d0ff272911ced339e2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 +ciphertext: 2b52c90e4ccad692e0389c6d3ff0fbf4fe09884cebab2d264766a85eb7119219267f4ec139c8c06b66b4c91f60fe6fcf20426c65fa14528637c68494fa9b30a08cdb8c85752584d824ea9be447f8756bf44d56d996d54654324450c5443d2b52abf3a69fcf0607a3b8ae4641ac07611b04a8281c29ef5cf94b25273e893386ab673c5fa490d9a36bdaa867ba7019893b79beaf3ffcfd47c3e93c87d517eaa6f0f2af0613427e4c72edf9b28bd3836e771fdcd21a7bb169c58f91e23f76f665b97549cf2dc8ba58ca617018277c704262c7652f91d8e7e3afcebc872f1f5b5b942b23124fd9066bd6b2451c6c0c353dda7e3a09853b88f98123c1a594f35a1fb6f319c010c1ebd76c95a32338e9a40312e0fcca84fcb0ba9e0043ff587d164da5c7d92386e7c6d3647b5168d8a7f9f8a13910043de109b2c9521a7746b67e3566e689576040c9970b04780e7c2b914e7e708a4b37311d5508a3ad15803555d33edc219e8a53f7bf992e8c023a29e42ecfa003312ae805960d2c40be7a781d48dd4f2e1522423bfd20f1c832fc98649652a650ca7ff33330894699cf891493c5064d7db9bd7927d81c543bc041f2dc503fabf2ba774bb743063001fbcb9767d72c5228bd44fc2ef048ac08d5b7f44d807e388ff686e73c14dca14df6c2296ca5ed2850889111db338f7393cef91bf8bf2275708a1fc0967968c9aea9f31b826f42c2feb9104006b336561adf7cb7920c2bd292f002332eb3ecb913e7019d46421a0f75969d12f8d518e7996f75a77baa002ea5e1007811f6ef47ef6ce9ebddc91622dd7d84e75a4b0d90d95a8b7b353c4c0dfc7a3bcea0971bd287905d1fae61fed39a1cad61ff0ac13f436182bbd2da83899c70e802e98a88a2d3e80e538a7370377e836d016fac084ab2378379329a346999aa6594a5271924aa72160dab6056707f29d6f1c5ed8c1208b83f4a0e4e7bea2c75d34d19d8a3e25b48238192395870d43c58309cf9ae5518584fc9f19fd2b6e94b307b7750192c41088d6e3fe9596dc34ddfec0495cacf6ca98f6a24b6ff8a7fb1de8f21ef6f04a6d23a3b7ddfc45ae77d3081d75a76eebc0450041168198e853c6d83f88a24e3fbd25e0c5631c34abe36360c3bca7a3dc522dfbd20692b4cfcefea9d3bb0c73aef359d3f58299140e815ea9bb17b676abd504973a827e792d80fb03823c9dfdc185f03165c3a0ed3819c8dd2877d33a206036c221ca0c4d0d2f935c88a33518ee5562bb1a0baa83dbf4cfb3f11561513fe479e9c9d9298e0bf36891f28773f4eed45a454af3a51fdb790f1d8e7723db1dda75ae7fc667a71310686d9350cf851d3e20faa35b2673a97997fa550faea6976256969975689360275d1e56689be0f127853ef4e45fb857bec018e87916b76393d04c6c732700eb11175205a30a31081f5a6446071bfb7740dbedfb55e5ed09450ad8e65941c85655423dfd60b387f3444afc5138f9e762351463d0d158d82394ed26de2fc4aee2a9bb9ab420ffee5896ccd44603a05 +result: fail +shared_secret: + +# Private key not reduced +private_key: 228f84084cc5e95bb4c8a7648d77bd10adb91235af9d447d8cfd62d42fbc4ddf5ef163f433193509d4839bbadf4fb63143e64bb1d35408eccc80da5cce7ef3354e82ad9734613ff1c02b6cec86feb74e6be03562497768d32e46dfd3b0438ea0542b4ce117dfeb56a0b31e65bb9eb3b07addcb4fb15f556a5a6793df7fc4548969f508e12b49bb8cb47c899dafc12fba481837c40ea619c69731743b9723d2968fd7196a56b2fd71cb43da7d26327a55b296c8422b87456024c9363798a5fc94b6fdf6a4a3be75765b2827852908303e6ab4764c33569c657c864a39ab991c6ea45de4c3d388e1fea6bcbb77d8cb27b83178c0367e566d19d64743dcf9c9efa3d9b49fdbd091cff6e393f2613f49005d3ccc0dd0a65843fd3e49a407b672b88aa3c6331cca33ca7a33136ba5bb55f0917a9bcb673f2295f240b7a577c3a78e3bdc36f3fbffe4ce17ea5dbe0e6fd00745ddf48775f9f74adbb45cb4946cdd5b4feda38285cdc886dfdb97ef62a5f4d3e89438c5afa2bcfb5258c3923430ceb99993c9b95fab5ac7563e6f1d68406860ad1dbcaea63c609531bb8da637d395496ee1dc6def78a98ac2ddf41eab362ffd92ec2c4306eccd5274a729b790910f831cd65fca5cbdc954de95fbfb589ce4319d3078b6f5c9b67a4c5955c8faf5175ba7244b57290787ccab76ffc6f62679b4b423d426e3ed6dc754009573aee9443c4a9af619637be8c52e9486415565a6a3c3dee9a5c903ee6ef7e6e0db5c21abd1287a8a046bb038939baf2939a2b6d8685fe2b5743f6ff99c2a3496ccffe414c646d51399e7048ee3a8f38beb8f0b33806ee33655573074abadfecffdf14952937cacc143c885badc7e144e173ceb479dcc6144304475bc02a3cdd95ef6e3fbbc0d5b6bcc875f89bb4883b7c841d6588a3a5b68a79613d4bb04486a2d1dce76378e08be9824d83ba89a649bb3936e7ad60e84b8af0c91e1e6cf9e4bd3c013f0ecc5b493c88e93f9419c1aa71f27ba194c3022634ad054ef3f46f80f7cfe4cbc68aa05a681aa4f16e978b068fe09fbcac4b8498016e6ff92db5764961e299f462a55a30834770ae6827937c7746e02dffcb1a878dcafab1d1b5856aab05f3960e4cbc9754351c79ec647af9bdbcbae01b670a7284c5b6d8b8619d26a28ad2da69e1d67d7770a6c535f917afa476d68ad7c5ca1e9b839aa887e2bd9f52065f523fac50f29559b8d3ca9da4fcaa58c1ded5e1d987b05e7eccd5adeb184a94878e9a755d10cb9f938ae6c177c97743cb7fe78d617279a0b04e023a5456bed346f38a5b346358cf76cf25495298e5a283dd8d748a7a5fb3b9454cfef59fb52d350b68eda3f5595e1d6473e2e34070733bcf5f6128579d7b8deae6e611a1f644ed5e71ba9403993d1ffb282a025dacf047c2599f3345e4ce459508acd702d83d0a76470ff29eb8b8634e56c7cb82dad8429adda39f94e2aea93ed6be1e4c4b2a37af7a36515d58873a7fc1c4d33623fc0d2acd088989bb5cf9ba0cba4b878c8c096c6fcc868efdafd0364df9317adb81b808aa3bd1b1e8d0ae7daba98792b93dc7389d12df373820c7e70a7805d357733d543eb657334096fd616c6d1097ab106ccaa4be460e29047d95726801982a9349aa17edbe89d04a6ce4cc52b24d989327c855acbc39e6b9880a0783166af6d03043bd34eb427b4a8b32676a874b0c18da60759a5248ed4508abfd90723cb161e38058d4cc3b162c75261380c119c712639e50494bf195b0e6a9d4b22803278832d52a6cbfb542f451c777396ea0ba5c9d186c0786180a4a032d12bba793e2e29328c91a40de06b9b754a189c2a01404f2dc7011b036c969b1455f7a6c05b249e83009b52ca5ec643b92c0e4ec9469e3abdfc2b8dbf5638450aa498c345f126782a5c29ac7673a8db84b0f87086da21728067f3193eed391376317450a3acc5ea0322b189f56accb246bdb6ccaf7252c89be8bd846aa9d07995bf2c2c5be82385d77e566c90fd797bd9b2a5dba704d60341b1530cf3f60f231066a06590f6e3c90f1b6bcf5cb316b482c2817462ba2cd3ea4a5f0744db5128b6d07851e15266280414b6710fbbb7da113c8eaa45974c62bdb7b335315e5d093d11e5176f019dddba19b379399c7c88a9911e17d16fc5194b2a1998d219c4a5fb5531ea6e6ad37052a57fb5560ea39719c378b69c902acbd3324f9c29da73145b409a5f79c8629b4853f65d03eca0a8718dfb7295ae3483eee45bdb265638c0511864a0e471a34d839419ccbe42303fd2c51232246e0a6b81d9ab00c50a7fa656893693a8e6e245fa7b119a14336c9a0f57108ecf87a9c249c01d3a214bd42649e092e2c3c8c89a2e4d980b0bba5340330717a01f5b3abd426ccf6bfc3e5bf8969af7278b0c428cc39a36da6a7c0b8bd666a1d07bcd2845718b755d76fa61d3ca51b3b77486708606975fc377b6ee0596a6f37474b91549f6899a3c4e46a5309f035133aab371eb5599809bf32034a73c8d4c0240a306176c6b09135719ce9478d3f8136c189b715c6b4ce6612bdc973f40238994b763065d08308597ca22a3f4a43681cb500a680a476e1110005c6c6acfbc13c91abf636a7eba2a1f1280bf41293f3031a8abf8af4faa1d617a380e925861185a2bc37a806cb8bcf92354a26340481aa0e6230758a667020145057f8fc55b49b530ad5ba6f490c9a73b8fbde960a8d123c648155418b373b1189e10c9f91a4bb15592da329f61682f70e03143846b09c09da648454901ab938928280628d4a57a636397e5ca0f57dab388c65fd6e7bb5a9a0f3f95892973c990f393174bb8aa669bf28322f80a65320bc69b6460be565265e7b8af86587ad9b43f1c3e5a582773045bab8cc6e03329ab1a4e05b33afcf8009dcc67986831d0a60662b427ff5a7b9991017930524bf678c7d461e1bc95fd441a7693c3b842460ee186b3f973b35bad2fc258972c2c309490163109cd6c87a81a2d30bac5c6766e7d151da391a83a2a5e96904cf9f268706b23e8758f514072b43a6d7891a92e57ad6a9b82246a7f3459cb9cbb5e157a957b27c8192407e9820a906cbcad6794e16bae2b0664811400ca22941e576fa6fa1083571ba17884d5073c83b7a7a1ca53a90ac098eb7dd1627c2ec28d61f86fdba69308e27fa50515cdb19445405a3e6c720651ac5199a1085c8ef1995d8db0a43ecabb5229353316780f12258867c65bf257af667da224c271b02f52b8bcf4805bc2031fd9d999b3c825fff0f4c8cf37e52c6007bb4a2b63952a0c223185806aea6700e293f433a97e4b2c8485e6b4ac19ad493c4c16a10a2a884d58f5ee393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 +ciphertext: 1e3160f57717ecbdd089c8bd9d1903423f6f4e6e07c12456a7fd0fd0fb18a48ff577960585daebec1cbc0ee508193dbc0d551797641b93539e55e6efa28cfb16372e6d2ee5056599b92d83b79f4b1897bcd79e1746f132c96e26eb689ba124d38e089c95dd5a965271d392850f9c89f9f4b02b23a747bb5055822ebb3302ceb9fe031dd419f967b2e4ca068dd1708903251b635a04e9af8cca62bc3e08c777255ae8a1a54c9b5474a5866f73c1db5baed82a3c5b241cc26401126bbc5fe31e2a732c7c0294b8237987c47d4141050db42d65b7b924dca224ca75902225c32b604a60269dc0a2607b9e0ba0be02e43fdaaf6e6d3d77e8cb45ed770a966772bcd7f4b2f529bbbedf80170dce8de6b29c71ae8506910f25386695c8eb9bc26f973ffc702f95a2d8bc2c5e543c0f70d68abc7640953259af277f88323b7b6b2f9fa4a4dd726acf97c2f251603bf7c4215eb8996ac763e65c3b5199f154a07531b83db902ab8b3a2e6ca0fe2432a7e8e6524b54a62fccb6168f6de050c1c3b4f2435e9083f796dad25d63d78d53ab346cbc2555e1046c10e2a4db1160bea5d6985312954bb7f3aa0dd77050f5152b9447e59644072480edcc1e03f2e689dd6657cc818afc79db2909ee8a789468241671ca59fbf771aaa3849285d45829e3530a319bdb59b8147e983e3141356ec7711755a255a65d917f681981fe6d3cae99eb767825ccb03ec0d6dc66a8fa2304ef441eb276edcd2c2a8799f79723b335aeb0118699f283e974de2fd19b3669a693652c7db737122f469dc7e13f968145c0b3ea897c6857783ee6f2dd934dff2f017f652ca7ed1dc67456c4c31d91fb38c1c9ed43eac6a5a7eafa49801717c86df8b071cbf3a3a24daef83fed9d5d2d933197a1f90564a74a32c4787406a37899e0542ada950d5f755887f45580fe0e7ee3d7a182a7a349ad80c3a4d7455e5f54712bba91d088c08a77eb569bca7c1429180ede008640340e189130e39be6c59d0167c040fd3849a16842bd67b90ec35ddb76b8e928aee99a404d9ae3701629cc5ae8282f5ccecc165a54b3ae806e32b9754245b4227bf10a93926d75da4c5765dbe2b0dcceda93bf6d8ea1660398c38c83c8a28b9fd57c6aca304b87c34d31e94ac2c4042f2c4d2cc20660bf51ef72bcc5958f3c6c1a1fad735790d89775a5cba879db78277d089bb18efe22354ff1e597bd83824b421c265d6ce4bd80a1fb3bbf0d8780526d30329c49eb123d21b2a88a68f9827ed27631571ba4d6b23655c2d3c325edfbf64cb9e1ff70ca33c3a1b1d303001cfe001cecd5464464f998ea6d319239b9e0f0b89dc9c2c89d8a15e0b510a5840c8c09d5f9cc18df4172e17b00ec65756cfe575ccd3e7cfdbb65285bf93c9e8127f9ea0c4b8df5ea9815a1fd78587635211bf1b8c97a70659df0423feaea6b33e3297ca0ea5e4c782d35369e6978d0edfc109dabe660a4a872ebd259cdf0b5200397e57534ef622de6183bb3a2e988c5b8239ab63cdf89a2581521211ded4badc1 +result: fail +shared_secret: + +# Private key not reduced +private_key: 8d3542bfb7ec67eb9c7b8f4d7179882305ad2496f2b6dabebf2c435436bb86777a4348dbfe36e26c1d89399cc3816a43572e643d354d7b4989646381b63938529ff27674e698a597cb173f0888a3dc3e529b4e492b6fd1608a30ceb5e14f05f786e874a676c8c9a6a5b94f9452cf948439d4f5d4327f6a3bc30b7ebf35be21aca79126b8c48f7f7dba4474f3d8fdabff4b8d982d93b4c6bcb05956b5295a59a77d3e8b6c4e2556d6fcb353ce3cf649bbd7f8f8f75b8536e204847f774e5b7a94da0be6a2c5571e1d7ee87e941bfcd051aceb2ee464b13bdcb5ddd2321cd997e5c51604d3960b33363c57851a72989a55715fdda7eced5ea5c885796bb43a90310ed6e58546521ef9c55d6b89b6ff03337890d89a40fafad1f6fba52da32128d108a8a1abbae24c66e3c4cb680ee6f114a3e5c744f0964de85eb7d9d6538ebd9cfeccc6c58a1755e01d90882beca526e55b3458800735fa8f82b2beaf72697c6eef9be547cde7f64ca29b6070cab2f9246e068c99777987c86885ef65340e868197bd40007784464cb9b703db851db1bf363436e657b1ccfc62d5c14a8ac3d6b636f87e4b641560a0e88eb5a8ff36c3ce95ce4a7fb979bb6ee0a633a2b715e7c0fbde7a6ef844c5ded1ceb41e68bc402ff4c4dbd3cda780a61d5e2dfdea4a3ee93dd86ab704ea97f893a5947464f3fb219fc48febed84d7ea75fd87e25596cc3ed56349b15fc73b838bc679f49ab514efa9d5304917dde86db5f574b2d9ab48d63f8cb799ae5e0add17855ad68dd1f2cab922c4788fa6be3abeb9657ae1be63c57cbca770f5f17f54b5d61990c44d9d0e23d6668bf28a27425605b9b69dfb6b795ff5a5a423138c098b4758553c14ca7a198c9960f8d6b2b5eee3aadfc9d7e36a876187963b02e6c6e4365a33fbedd938ad6d35e0f3c873eca835c9176b4ff5921e05fed1f671a85368ca35b878347e42b3a3e42b731fe4d51f37ad84f5a1b16c72512aa959e8b0c81d7a5454ab96b58509abedb79745311a80cfbd70c6abefec37598fb63f32bcf8271ea5c37337a0c44c960c35811de8e3eec040978260c5dcb62fe7a33ed4645ee8d4287e88045229998a7ceac32f63fc48358ed499f9d7133d67ba96087586bbb37107f5423dc56f84d390ff38effb8344139caafbdbe40d065912678f8ee44cc3c78c681cbe530637de1cab0e1ee2dd0f316313ef7ce7db4d7ac2bd43678989412b18d4add344f664ee007a46fbd79dbfe4e5699fa2d19ad5c35cd28f46ade773e03a079d03a3945eb6e4d8ccc84ffabcfe4ddacf38c319c3fd92cbe8a397d21a3d7c0394546de89e738a9f7d88c7688f5824bfbc0c36899078ed184aed3078b3bd43cf2f47727fa8bc6a56d7938d90f57c74539ac06413567c4c968c9ca8c5ead632799526b3b9df7c6271aa490647eb47cdb134a7c1d67d9d8548485ccfe03ebaf7be5e5d409cc07ebf530a569c1e6e7a218aa215b7a2c0bd999e89ef36dd7d1b6be2cfe53dee8a8edd9e725b138b1fd7d01955991de3fbb9196cf41acfdc773899baeecbbd854203b4224d6eeb85820f3ee6aa746466c49837a69d8e18af5e8fc3a00ad877f9800a187f327ca08e1cee2aee3dfd0ab97eac95cb2439a4d5171062a42523cc5ec7caa414654394003942aeeb720d4320c10d609de9c397d0790c585398fe0c42374ac2d220bdc6f507fe62cc592bcab77bb0a5f4ce73a380ba3640b4e491343ab7a33310e7f04c130a70f75b75e6aca5306837e9ac03c84b01c3fa4f5032069f492cfeac1585054a9fc4271da3636639aef3a065f2857a32d590e416866e71ab92d2ac27cca217756b528776a6319014867816d00837e476afc08d5da82293d37042709567052370b553cc925043957eaa3c34d2810a28163e9f4807b492301a4aaa232b1834db5932d20d8866a37fa312ca9cb129116634e95d551764487c384cf00b35682927808a28660d92e51610c68edc994c76a95549c79c162487d445293f0758a43b525b04477c2c50a47a963531b727964828c5b567fb538432c92a8c5a0be6136b9b05c2e68353d5787a0a455dba373ce60f40c4b48be8723ff760ece23d135887be491157b6b4dc8591b5046735c5588cb405057b96de0097f158c67223c5a854be20238126f1203dc59ba6d5bee4d7aa52f1a92441cb23340820d9afe134097bc8512bba1d2097201d6b7952641369649eecb884a4c35848314d2618c283ba9b343922b7cc18bea9cd1a4a3597c146d433692d15c55172847b9cbdda7a049ee455e5e43f6b18a80e60ca48822b1061835431644ee1b307d581add3b21df3367350bde75b1366505b0c88302eb1c6b164290e29204fb005f81567571552a6e22638a0018bdc94e768a9ecc7cc20e50ebc8bc9774c7caea9a1fbe1cc6c925f3fe70fe2f523fa9017b714b7ba820968b3898c1410b7e46fc54226c2c15056ea0ee2c071635b70fea288b88c9cb43a1faad97671e763d04b173426224cf217b2937246ca012edc14c529a2e2d47bf3b15b96804590e5241254a3b1e6a29378522ca0b2598491509127869a1a73dc2f334386c3bc7542f5bab81c89e938071892709f3744ed560c77d43d6ddc2537c544a4f64b19d55917165001bb74d93a1437835442c83b989bbc22ca67e6f96fd44787b8865f759419a409b78f209dc87a89e3ec883441c3ea39627c2524c4f88625594c2b0b5798386866a2c9d45c2d50d438d61c571564040893ba00a7752eb28fbf6b737088103c2a0fdfc87d99b978d2521949683b7dcc98b644504c297905d2417649c0a60ab70b5c674783739fac213f1ac5c5d69f7fe32c5995073e846d12da57cf17a73fb70fe8e7013d681dfb393a4b40922a654473c40b50249362e4aecd22515f256250365660177bf345a2cbd0884933b45d7ac67ef3871969bcf94570adc7bbc2cc948f82b7731a8bf0f980a3c373d30a4e85e1482686ae98501810c28108670078830254b7ccfca27bb0c57c56490e1a5b593816923d722d7c433534980293a1ce65219e0245a2fa049d9fb10fb54917ad82019a51212f0086afa520f34799a0361a083211a415a42b36237d40a5138c5ecfd7c70f5b084a05156df817071b709e745eb3e0252be9b1d89247b6917c72bb9e3ee78dcfb819ef5308f2aa4375578c72d02c348b16fde51f80602d0fe50da8bb5be6598fda0bb8bb1987de7bc575832baf123948215b833821afb7087a65014511a50e800cf6714ab446e189261a2a3dbac768c1e9e232985c430516bd8e18c79aef56cdb533df23b37987c6b557e4c0f8fa9e466312f19e7e90cd0a67abe6a145cbca9d44eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 +ciphertext: 37bbc380432e6694f627007ed8d97fbb1301d6b3b484e0e9748b2a8139a51cfdd6e4c610dae8a78c20619d5f9c2fdcd9e402c3fce6459fdf81d799a358dc312a792841a6888538f635ebd0e1efa47321c1ab7b83ef8a202385321201ea04de13575cc3e535a8e8f1d2bf01397150b0b0aa3d4dd9d2f569a4319f6c714f1ce71ef1521881c1413ec9cb86c02a71c7417e7745ec61de2605297c7dc0b04a5d65d21a22849c5b934c74b2acf39c7899b109e956902e8c89d9d72e664c5c733e7437d16a8535d5f7c8647359ba6b82872676531449899c1034a8e8e0b25c6ed1cba2b7525c303e91ddb814a532f265e88c1c4a07b9e0a602f4c50cbc63f14edeb72246611b65b0aa25462e76c99f84e10aacda4250d817901580a6a5b71ad65df385b8974ae98444cb5858e93f931836821b60aa3a61ee73c7aa7fa626583a0a448fc4d5965f6bb34503d1d9d2f083e38effdac841fbe0ecaa0f28f045dbd7c75cab756628d688bc7662fe2791df1674bf49b4c9d2a0ffc899deb2135aa358cd3d61252ff09a1460188d598b4c6409bb368f687b0a17ba5dedec59cfff68b83e0f27375f399cfaa3d43677bcce1cf338175871675128eda0ad04c03dba2974347f8500886a45961fdae190775256aab5a718a03e9b003d8b060afd8f33722a308f410a78323b06026d65a60d54012d09b4f7c730ffc53639bd36b510a5e24508f0f02f537f6b55a1e8f947b10dbef06ec6f5d1459d04c65db7db9a1789c160e6aa7708035f18db7d9b13d63cd8c248aafb2c95f2267d57539fd0a19d73643b481e9e8b8e309a6a546538f24cb99747bf56f62631d7cff279c4526b2b8652a5781728f63504a2935511b82f79704f2e6e6940a689ae13d6ec77202899deb2ed545b55188d0b132a42fbbe9b997d3aa146d44ab826fd548f7af1aaf8867b78d58355d072c9c46785850367819dd091ce58c1254e71f7d3129f0cd81b0161de7d5f455b1ca018ee5af5d7667a7ba14766429294d502d0d7d80d505e0f0dec5717f9532249933892f1986f077c5ab87470d583e16b79305f21bbac090cbb5e11d9bc7c854836b9dfe1f55b53daf9c7e059ea1c7a94dd7360404bfcddce0db43c050e5d866cb989b57c69997e7fbcc39960e2d86a48bb9ee83770ca896d9f8a3e74015bd0b8b9fe46fbe582553842a8b9fde8182f021cca6ea995190c3dddb92f6a6eb75786eed3414581a65b9d6097af2b4143df4430bb7c20cfb458d0226639c05f83f920050205d465a50ddc04b61999bf1d595422f5d0a4839d7ac808943fab948423600145ed175a1992fe37696885903e23db37f47d75fd690b7a3acde97335c83d8823d352c00dd0dfe3ec585c1d3b495f8b429e567463b870a5df1c992e7719ff348a541a39a60052ca9c78ae6fc1c07cdd57ba7c44ff595bff6954c3ac984c148ee6f2cab32340d495f56034e37f6f86612cd1115b1bdf495c0aa1fc2f02a5d6bd196de7dd7091485e842afd748e78972af4e3afe9b4b9bb5969ae08e608ae8d +result: fail +shared_secret: + +# Private key not reduced +private_key: a89cac085e4fd7ea49de1c8a4aaa75cc09d243a5f9ee58e60b4acb10885320b568b9377b476be80cec4c3fafa1f6584df94eb54bd8e47ec79457896e24b3592a4864defc44f4f8e1cac6adec8c91c46bbe81ddccdafd8e4fdb6fe25d9e4a3fcfae8bbd3d299a38a4d2c1ee6e9f44bbb357f9ec9ab7e579d6491a53878e607ea7af800abc214db2411596c1e9669b2c57fee9fd1df8e4b045ef7c99ba4a6e3e8b8c5348d4914224efd104a6c43c66906c389903b91fccb4e3b4f45049c13439eb68ddc596894cadddf6cbfd670154e5d1335829795443c4924e38308da8b22adef9c0ba43b98bcad0aaf0ff4e43607c5117fcc1bb89bec1b3fc198fb6c733ab43afe58c7ea76305856bec63163fbf8313d9d7833e09095e008473ac19f8dc9fd2bca7e8221f5ff298d54348608978417314ca916a3f25a6f53cca6018c990c3c54c858c33439bf8723889cd0afb5efb9c21ceeed72f8560f897c5b5adb6a3a505e4c7138c68cf65dd3cf9c21ffefd83f9baa9778707075ce5ca7e329e72a0b9f6e96b421d1cea3accf029a3adc2abb5163a51f089f4eb7f7d979996fe4949fb7892a75ce649da7a3834f6ccbadd825766ab05ee849dbdf71e6d1085e0a25f9af44b37d666efeabb8b0704be246632f58a7968db7d3835bad6c49b2a4f9b9a443572aec2b2bec8bddb690b387f5f9798ecbc84d0567d53676e93c38a38b63ea97fd703ce3be48ab37f0fc304cff50c45baad168cbab8b87e7cb9f9e55073ecdd375a88cb9fc0371be61bb35f4d4a74d7fea4402bc32a0b50d8ab576834c15305a7ed7d525d5b42fab77286dccde4d6cb79aa7c4604f6219d64622a86ee94a6f5f3a6f23536b63c9ab5f8bbcd148a30d46fef07c4606bfb81b75d4643fb340b6719a735078c35099f5f5fd4c1107c69a66dcce9f74041fb521fb6ea552a756bf638c88a61f103ba9aecd2787a398bc35abe3993553ac0129ef4ec4c67a706c3fd6d796ca531ee28ad8927fed5dae2bbc84cfeeb35885abdfc5d61d6f774c18ced5755c437cb7827e8e07ca8b421dd7331d762e746f2be2fb4373ccf919cdb08a954d6ca33a21fd127346b981cb75094fb9edcac1cb9a6d58fcd00b8d136575017dac0b0345819a3a099d859c2da56a465f3d3e776fedaf25e5a46440d648845bec13b332f3bc78a497a41db4f8e88cd18694887a3babb3a978395e9d4cd375e95cdec5596e0486c4a3540863dee0ca9c6fcde754cdaa05aabf0507df793aaae98df40ae1eab2c54cd0eb897f76cbd861d38b09ab1443bd81f7ef2e5b495570a7bf8363d3beec793b9f06785b59204b1e7a46975ffcdaf9ab6d93d457788921f7f862a499f1ea938d08481eb1d3b9d7bd294ccdc609db6b0566ffa897592bbbc3738a0e69cc5e6bef7c27ffe6f245fa56d7e49064aee2fc7d18fc62994b41a8d7ec9d8b0c7cc3c993c3f1e2538bb2ec21dc885fdc8beac5963ce9732c35adc34637bb368a87cff452463cd5e76f75e94650d7766845bae2d79bb30336adab7aabf5f774f5e98af3c9ef63fcc5c27780849b1cc94f7eb1b45169eaabc5cc5a756ea578a36ac47ec6694ec10fd5a90f4ee79acb69d3e459bd3ddff0aa2455f709407af616571fef73bf834c480630b9532b244d09c8f936e951961bce56157f237b0919097222df3bc6e61f47d846479a1a5bcefda59cdd8b067d19db6d9586fab2fda9b550c5170c2772ad5a4af4a67a19d215e45575e83a8ba5f099e4358a9e493677ce177f36a0f594912b6b850d3f719c155c01b68bf1dc89ccfacccfc6cc38a34ce5b4c48d2e17dd2946f493a357b1105265153c04a98992c949ed774588925c697284bc537b4d795de0463335aacbf80b10cd0a03a88256c220c3d0074ffc6c8c913c919aa19f25206a1cb7d40a50c6f55960a2298881a71a1dbc92a69371dc9a95d45a7bd6547be9414f4c31ebfd3553b89cfd9ac05727b06bbab300ecab599da76a62b97541cb3474b7390cc49942678add66d265772f55515e0623192668fe4c5273e3176bcdc52fceb081dcaa4ed699dedc59b01a29363070567772daddbcf8605bdd1268882a355ca4163ece88637e932c56c43405ac3844949c819646e394dbdaa475e62ac0463b8ce257520b3b4e141057449621b449c09c5b72d10464e59bdf2702a7f4ba1c1c6301bf51ec41bcbdddc4a069abe46d37c09050b28b073f2216a06d501bc38640600185227a63d224589a43391097226d67240619e2804589f4917db7391a4fab6778c91ef30aa41655e3e433854a52c9ce8130b802e82204bbe894517f1bbb4458616b0c309020ecfcc17f6b69cd0bc688963af0fec8f567a86ceabc9a0383681d3729a612987862e2972b6393c2c93a32861073ac3eb1cc636a52dcc23e6ea0af7d3af49f81858743962978245db5a70c34e90c64560b87ef29b5b568a716904c8326481db98c81cca47cec76e32003b36b26aece764c5551ac07c4bbce094b6772b2faa27b518ca5b96094d178f68a7409992ba7fb776117c66e97cb0be6854908aa8203aa916d26f3118842689a5347ba29d337599799691729b812961720cb80ff993d8a124e2027effa1baad40a17b564b0412681a6005888c0e27992faaa370ea3954775949a553b75aa35d5956373da54da7eb51c7e68c05777760c6b9b0a78ff2f34312876f2db27898d3aa4a187110402537f2aac7373751954f3bbc5445da3907429fbc817fb0a732bf4077d4630c93a4bf6785274019c5de6c3d8a66441620491a8537ffa1a50f0baac622cc765052ae0049eabb20d05b987b303d17714c4e79814dc5cc9593bab612359d0c7a3bc9614d0c8eb4e0a7c740520e077e2215bbbcb693a92c0293ca28b4d0ce316b5e14e165fe4745f9665c36a651a6a8ac11a162b4a111e40851ec2b29dba05590140d28aa945b42310659111a4033f972bc0163bc26a5872957c6977bbf8d727d65a8c806b4699050c994bb85651a40c6d590c337c680306fc231b7487305c4155654471c3003b93c206cda82c19f7b047e12b5cb94490f4bc850c4668b366bcb23bff1a744dd3362e94cbbc658178a012d9b784d12e965f4592067b636ed3ca3bdd89c0b30c8bf798f2282c49ed3835b70ab1ebc761b880e0779b5aa34acaea40c83eb0babd6ca11398759415252064c4e70b62d4cc813d346ca789eb86b5d3606bc3239758a62b5f76a709b602ad6987228433a01a8aeffcc22d0d315d59b15e8aca53b02fd160c62db910fddaaabbc4c2df1256095317cdff9f1e7ebcc48f838210130a5771b76066feb7f606a82cce122964da1be0b6872ee319832214ec677738c3fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d +ciphertext: 30925699a42d6bf2ab41628a20e814758a8700044fab7c3b14188ee52c8208d9641636d721d2ec32ac32436deacdf6e4786c3ea44353cebdb1827cfbd550d209461b6a14b1170893a28e84205734ebf74c171d70ca82b20b4260b3f86f7ad4c2acddb7f4c8aa82c55d6d55b8e43575ecb5bca8ef011ba9b9ac616dfc7b3e3030dbb7a0ea6b45e36155dea786c6c2643437930bd8130d8051e70506adbc396d64a68553140e91f47df35c19a79a096bebb25f0e420eddad682d21b374fbc606d5939a1d2493b43111fc71384f57b8c03817db1f9e4d0e4c5e7157a119743968948929d3b96e3ecbbd10b5f72a9f45e52f6145509aad69f8ca70d55b28edb2802a94c2cced9ae537259072b55298bd9ac0d98db002cffa8e94f9494fcb4b2da810b2244670e00aa6ded8ddba746957dcc34d537db9447577e19ab7ff1411ff6c68e7e40a3575b1389d8817a17c8cde4c93e572316dd029f4f21fe3e62d477f52480bbb527820175ceac30ee25fbed3ae258fc0786aca81ee2053e078c6bbb30d169782c74fe0ba4c8488e2ad4c334dbecfb2255dd7be3a95992e3f6a0ed5cb1f86e2b99a5a5f64ae5c810f8a6e72d2f27f8daf0c60a6d7e994cd231391ffc7edb3195bdbcd5f63acecc14b6c7f19f6d889616e8e2a5ce63c3bc0e2209d30988a1b689c968f9402b49c0f881dac8ab899433872e423ac06f5b35b483859e45b0f6fec52334d7582a6149fd984237c5f14369549c261e8e7246664b21e05725f953b21b49eb33b7eaf612a4231efb0abe4bd8f36b981f4f1ef5a57a4d27373510d1bf9c0a5b77625314a125633233c6902260e705b4995ae34b6f90eb1298cf9726a60441ba5c8d24c474ef73c02583632474956651700f318a88718519e8c7baf48f4b571aae56410d6e0d83a50ab3fb4115a1bc2272ad443b5bc5e6ae3daad6797257cf9868287486a217c631814db311226b6122d9acd2de042a95b03983261bcf902a82fc7f6c0db0e293bba27eafe29c6947f35c1e0180179b2d2872a85a63bca18a9ff5ecd144ceece9a48c68b8b6775ff1db3b9772abdf3dd6ab6d3d964da1adb4a035ed097cfafed937563125c95d7aa851d6b3387d15f7b0cf855d264a46a6732f097969872e5c1bbbac0e0853046473deea8a0ae4cfbfd1fac86d5620a3b4501fc961e4be1949e3a258bdee7d2abf4424f0a401dea2f5b0dbf7a8c82983eb1db1f69c827d4f24e36fabf34772bbce108cdc0106c074c2e30851f85fd47777e979716290eaa515e69390e6a95038fb018f240bf722fd947bffbf82373bdc8d7d78d739e119a5157294cfad5ed0899e864bb6f091e861bbe785b4773fd9b6f0ab758f2f71fe292179651da6046dff6e51caf05136e8ca7a2a60ed74015e6b8a3bb5637884d6df4ebe24b523548f5ff7ec6e42ce750a47127d5d7c312d15699722a6234d9f6a8fd51b9f3ad16a027c0a2d56efcd4bab05f5efa3ce4004ba9eb6d36329edf625c18dff3a94c5a430c3a00828a9080d9bf166a5973b60c9541 +result: fail +shared_secret: + +# Private key not reduced +private_key: 8a4487c253844156a9eb333c710c703a8f93058632014350818bfd98d68b4e0c536ee79fecfdef404f3836e344377dd866dae39193376db576f4afdd4728eeb8cff64cfa494ddb768ccedddd1dfd56df5725efdf9e1f5cf77e8466d7840a4ecd4783bbffe342f4a584cab59e042fca151bcaa29bc76d0cdbfd5f5e089eb3f9f6f79d56cfc4775d84054b51f6d4d5ebc1a9affd783c840aabd0cdc58da2ec4a60cebda92d622e6ce0051c3c041571685697bd49ceecfa455f1eaf28e8a8facdb6c753e4d2dcb8b67ec5d78a7ca354567338344b3d5338897241d3991f3b4bf448479bb36f9fe3e83d7d3f57f5903918bb71fcc701f586eb7e9e2f8e83cf6d55768e9514f4c59c7faa76bc6c0bfcb7fd19c51ef3612d45a9ecb396cf6be3c97adbd7d3cd70a84a2feeee66fa39c5967d080b8f7106bf00b8ed208c66fb3ec94e548e50849c9936d8dbacdac28e6ade777d37ad4e6989ae0d6cea703541f3ffccd467de9657cdb28fd2881cdc5ac3ab16be355209e732255b02eb9db48973a3a9d496addacfd3b3301b38bfc4374758b0d69562427dd033b55f30eaff8d2ad46c27c80b4d3b9369d5f455943b0459a9b5d46bc9cf54c8fe175a34e628bf52aaf25fef5b07d73bcc4a80fd4580dd0ab679185718e5c197ef5f4bc89c2074d9a5cbdd1c233837776832338a1d1b907e493c634db0c75f4a9e64fb91f480811eeb3bceac062bb528399b04c3bcf114a0f474f4cffec1bbb675b1999c8ddb883e7b40a1ba5ca13875bc1ffd8c088c8116d1ab2c4844aa916fcf348af4c28b65fc08e970e535cb674b388bca5d3566a6ee0ede10856b2eeb796bd8cb8c5d3f2bcc7cbecc528feef1bde478307e7e5f63658cc7f51694bf0a5cfea4d98abd7da4d87994a43e7a206c34aea7fa54e74d2364e8a589dcadc9333f2c9c349744bcfbf8d5bc7ae26feab708cca937a9e20d72f51fa26037312145500eea42d04a549edba62185a93c1cadfbc4721ff8f7db83c4fcca759d575eff93848bbaf2d23b5a659cc5c3c3608694f29bd736dc6452690c742a59b9c9e9adf6badfae27664a28c1490bcdf1865802a9ba2a6b49951b3754deff3ed57fc88bae35efebf0bf69aa3663793b56fe26fa2a47643ffab946f94cd11f479f5bcd1a6a6b8019bcc4d38e180bb993e3e9f43ac809dcfbb8a63c9d2854ab569da8f7c0b2bf4088056d799b49d6dce2bdde5ad75c5dade497ad0b312b9739224d98bdffcf916d4a730e3c3c5f994a79e105d4d60657493947be3b0a6cfb9eb8368d457da7a6411a984cc661f0b7c59b1efc5fa895096a354eea5abf893e2eb7389d0a64958e421b23f01ae66e3b3b4fbe78e8d0f47ef7477f14e792b35ab3fb2737f9faec75b3d01445920c3bec65c38ea43ad2d017c93924c4b3e7492574c3695de276643549f5afb79e77a4e8d7948ed2686958a1d564a8184624fc47e713b7da7f8ae6cbcff5d5fba4966429b9c0dc659081156bc7c398d9a9bd4807907c3d7b160ea8bc5e8268897dc97edb649494aab4743e5ac392568b771433808476e6c3fdda6940865c3e43077e0d9bbcee84cfcc5f3895b36c5596880f036648f37d493e38beff4c41de82cecaddd4ef6236509aa06326ff5cc174f51d963cb5e5b1290eaab649c91d1a03b9cb45400087248ee90f5b9509b9d44f27e814b55b5d7fd341bb663523cccca02c277f1a12f2e054008405dd7b8fb5b78f200266d62b00db2665a728b9231b99d957904d4278c9b99933972006c0afb2d46ab58810bd59492891a77f96b7e9d06eeac63cd9e3a2039a1f30ab0eb4e6a7dbe875253174f2519092761e9684c00726b8548aaf2ab3bf79c8255ec6c1591234672acad20c0bec4a5ff7b4ab4442c2982799d0203f1ddb53a260b95b51980025140556582a0c5dd9d20bfe542f79a743d45095b25c9565c1bfd1d82e5dbabbf37b934bd43a9af92ae5bac65570cd0586621708a30d8371dde11abdb8079616896533b90611a58843ca38f6105164b1de4b227b0c4b14749f5833c5f76cb5aec703b2eca6fa40c7bd224059a4938bf125653901d5d80cb4fa7213e9136d7c0a4f2059865911f68c19eff169af063e76887f192359e5e60516a92fb1842af25599aaf530b08a171d35be896590ef3a9b7878b4a3764a3bc2a800613ef1c2a31fec6ff7a8c8c4e0158202c4ffd35c1a45738d1ca197f23b8858a31dc60770e38796da35136500ec868e209217b9a10c7ae465848c82e815490da5becb32a55973aadc18afb2172c0d086de7e21d309226fd549219c0aae0c672bbe832c515811584ae3e4a59ba98a80e2a0386a187036961b4f6abeb6a84ae8b55b4e95cc9e812be00ba0925ce00ec3390e7936b52482b420b9d051f91a117122a0778c2434cb661ad59050342c63ce986e1b590d2b0b81ff4c3a1bb5a9ab4cebfa96c9f072ddf8332f5a3ad0a156fb5b6b35e38a595f30f2156815656cc487313c75952dcc12adb5b0528ca68bd53bcb1f750d5f24d15d54e83b165440528d83057fa12a983aaad4048c53c62c4a789b82728a94caaa50f7a7df6fc7d07c76727882fb8aab09811a611c5188dabc366494263cb8eafb78eb40a7f33763ea9b51318f0ac1a7a34be71aaf436ae4248346a7a25e2dcbaab226111d96d5d9165b946ae29283118bc34a46409f2eb37c469a36311caa843c112ea83c0364ec2b8b6e9ec68cb8485bfd87ff560912ff21c43d59a1476952e82a2d3f3a00cfb7c49a61e9216b728fcc30861a23e171c2c7954fd85528d911682066db1a062b50a5a11cc385db16d4f4b81785c9b8368575409738683847cd46f9389128414082c5515b5b3310658c54be69a6c3b02b5e0a1b6627e0512999862acc0b34340172a9a0b144627cac4d36fe8d71272e6ac69ac94d1f8c250515580b85d8ab300bb29b43b02195ea7c966947bff9cc323d017b48bb4f6a88b0201956e095b8092b250b53dd9f58ca90b28eab574034372d9f8305b39668bc90e2b6bb77257252b0bc36ee68ad25a7c883691a494c5626b5bd870c45a06ced4f39fc7e21958811a7b7cc93410b2fd8245b45b7462f72033d86ef2fb9b173397bbccbacaaa7177760202a8748b440f82d49218331c3760918c640dc58073883b5721548ed6e529d7f95e02a65cd7bbc3383317fbb166bf751f47fcc216513742596c2e9bb75ee80d2dc16d036b1d45102bc2275aa09b8800213f67dba3987a2f5efa1ae2c7868ce276c5110f462e65b39b2f4f753b3a3d41eeb50f7aa17723bb620b800aa3dbdab7fc31fcd120f19fe976236711e58b4ad172d25ce01eb88bc9d6d051c56564a0db11d7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d +ciphertext: 8c7069e91b0600eb165920b709b2d3e91971713faf427499bd83f286ae5c72662f583f78fc9401043582106b94c1c39c8f9348501f0c0fb580c3a40bfcec4eae177b1d73a76bf20ede2695a5a00de71403734584ac92653eaae46a696473e3b356addbe195d060888a9db895fb18f5319fa436b40b9c1d8e073fcf305b7de0d2feae428d32195c502eee3b5105b925460700ac87a55745bf1cd8481274ad8168a206b64c07f290f4433d8fcb9a068b5ff77d81d50b177605a96a3fdaf6566d6ebe5d793e8bf87be1db2ce45d61abd3613e363038cdfd4d600b37db3881b2c56f8f8ab7bc48dc86f82eedd207b7568c07dc0c5f1d656c0ec4e7c2f157587c7c2b76dc1cea2445e19b05064b9257a9137debc0ccfa0fbb723c3f320f5a8cfd1d032971336d1599d03802a74696101f8fd1b584102155c46a4c7283a6ec6e6bf9ad60e286277e05731e105b76ba4f992f37d30d59b4c224b0b44b74ea34113f6346a481977ebaffb36c291fbfaa058776effeb17e11896a22fdc1d7649a11e33cd7d22ea7655b641b5957fdf542acea5aa2d7667ad0392da7c596c8bdf38954247bcb6cb77a6e66b509dd55c2904ebc3188a1ba8e017191133c66ce9c656d7bec4464f542be009e3850a27ee58cb4a5374220226ce305cc45b98fd094dc9e2dab7acb5fca8d4563cb156f81800824031a6f342f6dc83da64184028a3a90d0d654eca4814f034bd1a452a41564cbf5f7865c9309bbdc34702a06a789709497dff45644cfe356ac9646c3ccd6ef51e48fc81b518e90d9c4f68035f1a878c893b6a7311aafa3f8a4ba6e194756e6c392dca34d51804022cd6bef7cc06eb69ddde31453387aab8c6925c7faa30bc6466d67c35512ff3094dd62c0b5a3316e8db4d8813a3bcbbb6f46aae9e17dea7ec7aab80dc9c099bf062e1006fca6cd8cb561850507e4a0760bbdbddc5a6efcdcebb861bff73e61bcbf51c7d150f5a2a531034899eb0c1975b2503722325d0229d710948d68968d662a8bf8e73a29d98c8dcb3bc128db82d1bf1894fd617d85ac70ec52214b348bc08cdba7a5ead6a7d97d2ef640bc06d71079e5d4626a4d7adb058170a07c224d123f8e0a11836696e95d5180e43169aa81e5b6e684b5d4cad7c29379de9eef671ad2d7dd8d4285a4983b2413bba4c1362a3ae57bef857d2acbf492e1ffbfc93d71fae367adcdc0bb96a76d31c4a72f5ac2164cc627f86b8dea3c175a34ca0c8b9c10b25ed2ff4327d9c683e3f9f92e69a41c59d7964d8396d06a100debd1b6d6e1051cfc17d8f8b3239ffae2d10f36904089654edbc130dc8a5838ef8daf78947800fcc084db7614afb6acdc3af16d9f2c80bee61f54d9b843d485382aca76fef93b64a33c20ec9cec415f49df42ab2799ef3b1a05c37584c9c5874def12329eb9bc047ea70927f5adeafdfa0f24e75ac4e7c4fce2d96f774a97872795036c69e6c412a4b4fc0dcda336d8eb9207623b7f263870a705df4ec5ef264c016caec1d496d5f9859c1f331d4214b13b1a +result: fail +shared_secret: + +# Private key not reduced +private_key: 5a837a99deb7d24cd6ad8d4f900892432e681a5b351423e1b383a995a75dcac87baf79b484eac622a6a594dbede02ff030096548285bf7da99f27a8034fead1e54fe355f91319fa0f666ce6baed969fddb1785658c576fac3a68ac13abdcaef55f6b5105df6750894e02a9610a73fb558b4739858f72b9ced305cbf9c6929a7664ec49b6f7de8f728664953b77437e80e7bf895ba6a56b49ecb1263c5164d61e1a4c4ebff1418b363f09c669c6918faeee793b9224988529a9f3783ccee355330128e99deb5a4c6890c5f6ee46afc89b3a74657686aabe987834b30aed74133a34a5beeae92a9bb6a4af15ce5b2715f52fb69cdd159f5094e5979ee840ede287555a3ad331497e483d8d40cd2d894d4a5aa239cca6c733fe27f20e55394c3af063e3d4987e6255bbabdef6c71b9f5a250fd2b096a39ab3caa54438223bf3f7ce6f08aedbb05ad4aa1c8299053855f4a8cc95fdf639ce559abdb8eea5ec98614a1f69bc8f9226ccee99f392c1c6364d64886aea98f1ef5c1f27862fa64aec0e7b7303dbaf8cccf543c6e054b23b33bf937ef5cb263f844c70832aa6f9d661429d3aac5b7ee78734959e96c54a55831dc91f0dd7e266acf833c77fd97f75b8800178b6e2b89a81764f9e95e18aefab41dacd5ed3e604396d591e64200feb40f9c45bc947afdfc629b457694f52cc7e3de8df5955a66dd6f8d1bff340292dea22eedc3a76f4c234b0640b4c2624de345b778a04929a596176e9f2dcf737f5198f677467f2a9ddde5e94fbb5bba6ac7a8f2c90811e31bd1c9fc50cce2d9dfad8da968fc7eacd79ca2abb87991b90e2a76e5d547d96c4a300d3fc0da3c29bc4dd611b7923c4b6796b8dabe5a277fceb454d50f1be7221744e3868ff95faca6807b5669482040ddb0b4a8a7707f5c067c5c464cb59b8547ed3b2851b9f8eda807317b5147533ab879a26b982187366bfd5d266435dc2a96e8c1d4694f63c355435d613daac7de755c3db38e343445f660ce98e8a5f8e9c64f45846c58f9e4363e6ed33e8f5b1c8c6ae439e6959743f3b6f2b86f916f65f6e765044b4a3a6244c38beb0a77e779a94dcdc5a7db47d3a670c4f5e9c65c9bc814356b4afdd9f6026fecd143f86e3b8117ec9181f46169fee4c5bc98c4efd2f05f6d178a61e0ade465565e68ddde4069d3c7864fd15aa9bd4c4934fb0d0ff31aed9a270f4eaa6cf9e74787524b6d85b1f9795ab5c9049c9863d4478578a9089d3afae6934f73dcede7ed1fab3c629605cdeaefade6b674a64121f3a0ecbc7199f7b1874facef5a055d47af694c34c4ddab6296dc288498454eeafc861ffd776803d6b7cd7ff368dad5214aa130a7e89c634c7be923415c75edda25656eee6f942720f777addb79c8b943cb3fc306f832a04cfc79786ec0e7f562cdc5eaa60bb44800e2ccccbd64755c8b6008bc89d5f827e737dbb37ababe879814d7c503cc5972a34c779e3f47d85c699b4a95ba474ffec1418dd273e5dbafe7969f6b629b48de953d9151ed4f7dbb4511a8977266102cf6f5b1c78e3896e062fd2ebf9a5621797c775b1a2b3b7f3a53cfb9c90a54547310d569214c151088a083af37a8aababa3b69bd3cd415cc1f9ac91c5e450ab970d5cc6678db12ae81962959a3d68d8a4fae40ed343cbd2e84322e2342cba7756328fb5c80a3fe07295db0e136621f8acb8eed4685cf21bb28a7fd34a9c6af4a8d1fbc8db21ac4d334afe1b71b87cc1ddba5501d38dd7e74c6c502ba04b8d1039322734418dc438fca99d0bf44f700ca473d07c0ad5094181bad2e90910c08478920461c750aaea6658112933753153aa9bdf090ef91a3f08e7c07278369df0bea9220b7d4c6b6f6a7135a5084aa54ddd270e9d41128d1944d8e7c3e1ac11a4089fe4541324db369445b5afecc41406b277e8bb93f310de57b55deabd8d2ccd2e9a417ed916ebba260e0baf95ebc0fbfc0a1b63b6f5342b3ed7c1ff4135f0a26c3daa7e2d60bbab8051123628abbb3cf9fc6369a46d4deb7ec0032847d7474356aec9a417cae8b62c9c7bf3b077eaf52c622b6a2bfa6ac49a9cebacce996a29f89acf9349363606a86a6696481233c73b273e847798b530b8662194896e22ebbd8f3640864791964069684338f453710d841aa83a2997316fc3ba06e7d6a3855cada69c35cc801cb49928ec66a56cb8a28deb2329d75c6545251ebb8526903a13f5174119b9c2037b06c165d2012723bc817297c42465cd77044436337591f239153629c3140b0ca85783d2460b207268f013988176f4c22d8ef5c096c93a52706931b4399a1849488665026a615e5955d972429eb32213ca16b587b0f7366192366f523732fb1127731cb06bc39f15f35b1283654bf361f403be5a9ab154f786080cb8ec42c8ec356847839de84a23c6e4321136477c12b20ca5642efc84c658323f90c2509b62df865e54072aac311a6d3b4eb9073b17f2291001a37e6ba438918a42663bb4d15896239f9f2b2d17a5c93c024ac595806620a8891b89f7297901a9b63e7c799cac22a515bfb3ca9a4772a5bc9a11154011e4dc0d758868a9f646d5390c631381e8566fd5603902c11686cca1f876322cd7793c338876d82008eb30f32128511a872db5cc0ac689c75266d5a9bdcd889f73dc92f1dc5076f373be64308012553d3109c7b5b2a819afdb93bb3447c878901813849c5fcca97b116ca1c2115961ac4b8c926303bd7f502eb299421cc9cb82f556327584118c6930e03f4368ab915c3df0a46b08518cdd280e17f86824958f0ca8079e857d8ba9a522a49c3f539c845968faf37e4beb443b577646967f4f824c2a706b3a7b74866aa4bfb83dd8e4356dfb1d9f4678a0a120cd2569101b034e36bf24a58c690b69ea27ca88db6645682c13b57d9a397b83772c5357082dbb6981674a772b6a94d0210b14a7703202cff38419297edf92a305a59bc51a022919b1b61bc853abca39721b83a794f1c27d17da71a205571573ce31ea27f81b744371274d6a8138b69ef967adcc75730a652f134b0f198b86a2a670a96c58d45295433851f61850d7b318245849a140a407a60080abbab77abf58d8c46f2580716a0bff0481b1973c804a406dd2bd08370ccabbc9fc7557b26534cda249ba1b3afaf2956f10b0b6ac0a7ef02252f5869a972142e06b86b64684b34b2592bc91b7c5b24c14d232b81880b3844409c6038e06023321dca0f2271144373fbfd47884f3ac96e4bee4dbfea5eedf79fb157b32e2818048bcd9b8e9bb89118362e59c75b4917014c242f75d6e3755c28f3081ecc9db44f6cc7cec9891756d74093716697781fc8cb5b2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 +ciphertext: 2ed0e760ce63fb59cd94fbb798e752d1d553c736e988de65e2716c30f329b7fa287ff0c677ed43f3d0d674776d84d36fe6a6513586a2e2bb915231481ee01d1ea06dc158456534e1060f32f06022190088e8fe3cebed9d3cacfcf7100c69d0da846df24011605cf42c2cb69dcaa578ce8c39ae68f2fd5704438753348b0fe6305350b1ec520d96aab367188162f8988a47987421fcb6d03d5e9f47fa6333b761b95aaec6a38593e512786975765247f2756ccf88d5238ba4ea61ebb18ab3cdf5649aeb67382c0a232b14489e803cb1050e1ef6ed88c6f1916524fa152bdd22b361722dd5d158025033682fe3caedd0809451b0f6c4c552f0ddf243ce5295133e424ad4fc7a7188763a08543bd3103a7480f467a7bed7a153d40a753dadf3e7af116cb594923e0c5c4c5d8ff27e0e073f84a70b1d1822ef61bad30d3ec51c9f183b6d2967a349e674d2e57cd8ee1a5ae01b37079aa4f2064ee5df394eb3540eb9b636f228f3c8f3b4a8fdba23405e36cea3e852c076b4fe53f7e877b1bda1d72396b93cdfa0278c4445b88e4d0a72aabbb646e6b87a01ec8b7739e7149c0dd373f818373b80edf7028b029eb1abba49aee7c4a0e3f290fe23e3a8487d6da923c61dff69b6bec01cd2efe0cf35ac6855fdb58ec2bddda165e99ee1de5e183ac2568ac47ec30668660d2d7613ab81824e049f1408e965b457461a7849df2dbf8276d53804cd7d9934e482dd6f3c6f167d6516c816271cfc18a6438aaafec7f87825dad2d605dfb26874f7226906a6e3514fd6c73ac0f8524007b7d5d32e6d540411b7d9ad667c5271f1c10834c7f64266d9da404bc197d3ea3ed17cc9fc8ed65e942a836c9ba4c2c167f4926158db053dc7efe70e008c2c9844533a1912c42266e7ef99f9769104ec6d7612854d3064878f02e86e65e51ce80ce5a854c4b92d0ef26a70e75770cdeda1e63dc2d7001b31fcba3a561f74d7bdd49e6559ddaded87590bb38ed03d9fb9e7f8824223fc12ea3642d42886c600f0f592fec815d454b7f0691c3b83cc3c8f1a014f5feeb2cd04720ba4a4f6577c45ea5058d20da7ba8ac58e6f8a594e7a41a91252073ec24c473050e82897357653a8b53440824c8eb26bf4e3140fa352819deaec7e3d5f8840fdc5305fa92ea8db24063f3835ea8682df449f06da48662cf06e569ec327d678953d99ee7d169c6207219ca1386af2fe4f527f6a59da051901ba6bd6798606e2435cb3da1760e135869972eb29216cc03da4c581d553765c2fa3388629fb7a8229a4301b7899e331eefcfed1adbeebf2f86699eaa9419159e669d85574bb76b1514f4092673fe4098ed54ee2873ae07cfd23104bbcf189f6c8b99b11fd2b40e03c284da6a4ced499dff116a64feefb1c07d16492481db67f72343df92b9e2a83246e8b5c31ac69deed48c019fd8633532ea972b992faa50715382e340a1cc829e4f64516a8a840b1c55688c409ca7fe79ef72cacc4ae564225592b66ddec1568b40dfc44e5895141362a3fe39e134d70b7 +result: fail +shared_secret: + +# Private key not reduced +private_key: dcbdbec60af5878fbf1eb3b226d9bb46ae9beec69998797fe4e9f75f1a6ba518ab42fee7059338f815f945a36277678f84f761fcfaf1b49b9e2c85bdd2c78df18ad4f22ec423ba89cf15c90bf34ed5e341167fd6c2abb93b99f4d6fbb1182ba029178be8b5b38ed868c86c54ae69b492ff450ba6f05484b7070aabfce83a6f1ad24dbb837dff6ffe6e3d106c6fc6fc81f23b83888fb72f7873c9f6735f7eba2d2c7f81cf9efa2aab162767b414b71b1bbc5258aa61a984b33dfe06286d8ae9cd15dfbd7c2f9e03a6e3eb18ebbedba792297cd677f241abbf5643703b098fcbcf73236687cd8ab0e5efefe3ee5d786c37a09741bc493bbd9d8f20eb7599e6a5a21fd30ebbfad79f66ae3d696fced72793b6ab6e3734554f681678fc8d68abbdc90368df6329baeb7e55c1cbd9e846ab164f7e0a19fc3213ad42e3c1cbcb48cbca59aba88ba06dbabe8d87b56ea2746cf974cd4a8e1ecbca9b3a74f7415d975004db90c4b985da9dac3f0ebd72a446f3ee354515fa9947ee459c589dffd3022e82a2746d74e5b914b872678c999523b6c5ec790f986ca98c448117bc397643c339432bbfb058e340e098ace6c6a1b1ee472e8ba11cd898107ab9455ad8b965329ce8758c199f10fa5c914cc2377d6e0a35cb5f2c4bc749b38f2e84486a88bea7e27fcd36fa78a5780b3f0515b391ea6599deb99824ed356ec141b54ed187dea2938066e4ddc3256bc6ead9184b795717d392aecc8639e81954669da8c33c9451112d750387417f97d80907bc8e48332d293cbcfa6409f8e4b89e54b135c5a82eb447d45ed274731b4df160afd04f3dab64fc87b16ec8940ac9153957a21aa54ca9be2bceacbd56f83ca8321a3dd788fbe52273c61b96daad1d4f66f8d43e87f7226e41097878d66a30eeec7820f6c1f24d989649c2f2354b81597b2998f6225332aaf6ce5b6ca31ff986a675d6737fc6a29da454bc3654699dad2c3660e371571c8cd0b9b1e0ec5ad54ed6758c3b2aecd1f2e46a95f662ea6733a63cff7f67521065655c1c9e416e5584b553a4697141bbd10ee4a2ac76c4713d43dd4ea6763d9774d9f79dbeec717ab9528d74f9c77d10c4b973fc9e20fed26cacddedf68db0d7bd63c67750ebe3e52fdedd04d22e04fecd89d7b52bccba359374b48ac4988f4b6731c30f95efef77a0aae140d3da706d62dd25f425d9385046417ce4808c7a44046b3c3773c90d4d589524acca23b4756bf3b267b2c69d4cc3a634750b863bbb44243679483997a52a703ed867c58adac92f7bd51e5e88e946158ebf5daec6236f83ac3de845df5f2a094956de31305b5f1be9e789789f489dc193da4f4426693b9575b01d9b0834e54f53eff127ee3c48686833beb3b3a4f31388f0348f693eacda07e0b983502f8e49b725e1cacc7ffc0a411efafe781656497e39cffb9f708938890dad642dd15dc85502b5ab1aefcea1fab7eae59ce24f9bbfc55471bc86452d4597bf64284c31c22bee3e64909fcd44b044ff003e6486bac1c6cfaff2f5f775e7338fc8b9c6d8a78538473dfee81b18d48d7ef9eff7ad07c85bd25cf803c57a28eccbd46f3713a5368d8ff8c0ed547566a43a1788e9e4489f8747167b6f08f7945e6597c9872b0cb4b1401288d7915be8e3715a8391a486047c15b4ab758c8d9b47541c3411417a439bb2144049744460810c01b778879425077e91ae06c1bb831c75e9d1552264a6543266e769b898b66644ca93f9da7735135d743c62a3876c0c891ab71c73c9b88b5cc14de0238c82103fa8f634902a01ce5b15e7823a36aacf6a05639a812221085b38b2ab933a12552c268ccca3cc07cb4e1ca03cdc02b1a5a8231a386456b26878b673644bc3c1613090454b582d5845268f381eb0e70128c1b06f356a9da736222400acea7c58216040a1affc5771081743b5f0721ef2b601a651d8a2658eb9c5ad8599c2f040f791ab5d93c6067ba30014af51766a41c70be6542b7224767301885a030a8d68a795e9924ed844cba1b696b18c5a64abc7ab83a163cae74ca186c01cafb53c05fa535d43786679a429677cd3f672b7c9cdf9224030b32c3a147ee0b2a8e50a0905a778ad9269bf04c2a801a1d986b15cda0ec2f51deec2005d450bc070c5e9e2a9646c3a6029beb907b632f17163b260fa5b75944b00d776862c3c362d06b7852ace9f93afbe9a4d77c548d04c68206277f569875fa677921c671fa887b98866e8c25815fc09d194adcdd34430e2c3725178f6c509fb359e5c3959d72b37a52c303490ae22138dc495bb2bf0c4fefccc89eb6b70764cf64cb2b02699e84a562f076dc4221153d8bc1dc0a29387a15da95eedc808c666b3caf04882188b5509106ba5ba1869463834b48dd9a2d7d6b46de1b83834b7db556a0b624869641a7b77c1f15291696798fd0cc1d01c417062ab36548f4f7b842e99a85a502d2ed70bb82037fcc6237f058d88ab2ded194bc6f65c723656474830581bb92f196e9fac65fbfb0e662c34cd1739ecc28ace01291f24701ec6a836a11f54d44fb50a9150d9401dd96c39b1b02ec73b86827fa1cc39d3ec5d5fcc4523a948a30bb1da4b3588f029c11234b9b571ec3593e82a0cfd428ea68b727622464fcc35e3dba3bf911cdb717ad690147ab70def66a2a66052a3844b7f6866c1b4bc80c106d3155d4bcb8c13239fc96241cb1b092696a50502a887547638499216fb31379a45bf7b43f92175fe282d98d7a4ad22844661256b711228a31fd2b01fa8f72dd357c455768a77cca28e6984913c352726176e2192de562781dccfda024fb4315eb5b14b9430bf0e783ad77a763b631f6c03c4b45aba24a88e85b70fc3b1c3049447e688c3f2145072460b838546572a42f4659a71a95392255765426451f137e8b4ca64b5c24e5cc74a816a988447ce07886cdc59eadcacf5cc5b17b4b0d058c0b3b610df489066e402ed63a5d155161bac9f2e82bd0e18cf46476935fbcc0daa0ccbfc72cae9b217d3adcb3ba7e0b759aab167ebf40f6cf92eddc17ec44508d051a6302372faa22a993386201827bdf3a1e932c093ba2cd1bb347096b53919218f321bd761abdc6ca5086c51b0c471a6c2781d1ccf20bb567ce472fc663ab10b75bdc6642832acab5c5d4db37a46572645a166edf46ac243805ac78e5c483e25624dab2aa705b9b3f6d01bee692351fb4301c562e30a513f6c73d55c0bdcf439f3f62f33e42f7f876f5314cdedfb4526a075924c59dc03d5f604585571f7e69c7c8f254bcc5af0ced187401efacef8d61e3843d6c8562cdec0e87d00c8ca8060da3f031ab663ddb43148eebd67969b7fd490aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 +ciphertext: 1a7b2ba467c4e3689e34b0acd548a2f12c8d237e4db6f80323b459fdc9d57339fcb5ad82c1cb58e8fea26f2c2ce0927a06c6d8d320ca6b55092119b86fd3fe65650cdec9b478a55a4060907bb0ce8807d964223aea9308c02bf025842e030703febc2e3e11fb99bac1e31959f1f0c3d5a76826f3c2a0e0effe131db6f0245d97518cd1177386bd7e06a5998bbf082fad47d0d7665f87642c4c7da2ce9e1f3c99e1e8cdab1a4c0df0ea0afdff801cd61dbf6d089d68d3188fc3e0a9842b6b019b25dfbfd1a5901448670194047496b70a036abc0376b9f09443497f470bfd9f44f0546fbded6312c16bd3dcf5c5416d9c63df9fb35d22c789b361f069524ebe04e237dd25c8cbc483956fc7e449347ec0d417ae71e6298fea78beb98ca4a7ab69f974c00bdfeeb40c99c102ed61f1e3d2f0250f33d8c73d74612448881c0e4f19824da0670fbd504c3e9cbff4cf41784c3c77e1acc326247b63425443759a203084be16fe8b48a4f09912be9e9db95572ce110994d87ce406f04641b5f8bb17e95cc62d3a6fb2ae6b6371e510356cd68a1876a1d04c4fa0a4b7a2f9ccf7b822e4cb6700ec5071d935dbb67221722b6664278f62093f9638759cf8d6d7b48e08310f0117c1df0500aa58ca8c3f719b84d9cfb803d5f5603bd06928375f137f98fb3183bc385888efa604f8921a9d3fc793e47abe8d7c5f14f143ed6d98f3c0c3e714d2bc2d136895dc140cafcb083375445e77f3c458e4992b245194436d2b8c395e9c46c499c03d35f08d0526ba24072f841ea07f4225583b05045f61484cee17f85b95e4193961562ce7b75ba4739b3bfa1349818ce3756d4732a85095ef613ccc05dae62c8d6d7181e213a3a601f0b9e81e2863fb15ab07f88e7bb58eec3a647fff17c2ff56db3bf13d721e2e9646eb05a20f892d66ad04927cf63293f8db9e97e8cef9c26583a1aea7cdf4ccadd9c4832971d669543a29fd9deae308131f8caca69c3f2a42bbccc57aaf908789211e64f7b51776df405e12803f434758409ea9acfcf4c5f4461ec2df8df49d993766d50858d0f6b7d0def70b4103f0a38a78fac8031624eaa5ed815373e3ae522f3afa3dca39fb9a75e86474b81b6fbb994caaf62cd35928ce5f73606a88ed31643a6cc2285aceb3b6afc155aa0a5b4b92d6e2605a24becb65b15883df261f9b273ddad943202085cd780f4db60aff972af293384b9d85c6b3daf2a3cce8490b7af695308c097d07e41afdb0e2337cfab9bb097e61d6c9a038b7203b63b28c1224af0ae62241fd9e2a17bf0e12f45886096028993372f00ee59c5b55ad7e6e9f1048db860e0440445d61322e8805e15557e2cf4de9652e109cb35d8e652dc06bb19c2420ccc23abeb44dcacafd9829d34bf74d66c67e7e9adfb6c12ec99c5ef9c371b8169bbde8fb2ab0da650937fe4f7c145635d84096076c17c911a47da0f35ec71b1be995bf500ec1afe7fd6e8aa221d61ade2788e93aca60223dce21cc98257a2c8460bac2649c7f57af835495bc7c2d +result: fail +shared_secret: + +# Private key not reduced +private_key: ed0c4dcbcc3305ee646a04b9675b94430b49a83bb1553cf11f99f8c47785c914f2bb658f3399df40ef5078dbdc5e5fab737c647c2d80e42e64df5eec489664d5bbf3131ceb4b4d9c1d0f96bcf7f2bffab9d60ba4854c98880dd99567994e3375e448d69be4dcf1ed8e1eee34c109d3d0abaccf0adf877ef2f28894f5275a8a8cfbe31681113f738f99b53af64c6b346fca17febb38b665ea616697d42b34dc546dee18b4f4b525db98a4897a168e5be9b9a2fd4f0f14858bfd666e177ba705fce75d8674ea48fa23313b7e372be5a719ae3d41f488799fbfc01388958e339b2438f95e6b24a9dd71dee5968ea1090aeddd56de6a1d465f7eccc46f79877d93315fbb04ef3768c3c256ddbc801dfe7ecf99ad0e45bbb585b978f9794dfaae36d47bc8a2cad9d589da65d604ababefb36bf78604d33e23a67544a79fb823e970199116b5bef80fba755d6cf72965d7d8bd8b438936cec8a1e535817dd9eb2fa5ef5bf15003b6762735826ef38be5d391c8384a938e7098929b7870f883f1903c819c6480ca9fcddffec969e4a1ed4a98d367994394571ae93a61b4336d537140887c7a2f90a196b01bc7c30e364618fa371ba975f49b4637f9bfcc7bb1ae789156c4ab2fc6cd62195a44c7572c09f49c3b951bf636b43cccae63b82dcfbc4bc6a03ba5a087c53433a9d5f438db7a89e86b2652f368fc1865cb6ae4b334f75cd7f358f2bc69cd2bdd21a7ac35d9f6772ba764b7f157f5ee38cc66393aebf409a069ed33b00b4a4d04516873516bfcf42ce93ec073c366e8534e4b55feb9d6dbfd90eee9a1fa5ae7e61a644ce5453607d971f6ea2b7f8ccdd7c1e80f869a28a2ade4cd245ee9229c9cff8dac664bb2027ef5b49ffab34d989e79a72dcf6207ea4b139bc1bf6af57645b9b47f763d4a318d4647024c797b9aec2d49bbb4857cd137ff56b8342c4654110dc84bd676bd533e9539d72e77a8f83e64fcd8443d3d79c1ab5ede33d5e6c5c22af691a25ace01436e43d56e204b4dae93cff827c062de354acb6cd417dc92bb4b145bb0649a6fb8985e03e4a82bae78162afbbcff3562b342f58e8100c5d2c899d4c196c08a2daab3fae54c9535ddd8c9c139e1500a38dc8dbb70c3794fee5f7a54d97a84d7862dd7b418d1d16c417e69d5eb994edbaf807b9c7bef6bca9065374b856f96fd9fe0af751d2dc5a42a3adef757efc8f76303a6e65c4cb17abf0f97c2969ee39fd655d4e8d22427579964500804fff508ac9445c388a989b3bcd9637d41741c30b433a0d0c8ea5adf37753ace7a89c1dd0689cee8663ae8497e9bb885436021d4ba553c706faaafe7c8478e346cb05f80e27eba2477fe850cb80e59ebe2195749a8cac30355f5b386e47a65b22592a1f7b09317cd6f3449bc2faba9cf711e979e899af706e8dfd05faf28a68f0f8adf6d4ff1ca7391824d447e166a00669929c9e5c4aa507e49672b55e54daff39f0dea0b086b65fa9e4ce7995e49e66c8ba70c6df6ee2745c2cc409f4dc56294a9d4539101cace02af861e3e924d8c3f7f8f4fa8bc552bf6b70c14fbf01e92d25e7091fac862776c9a33cec6939d89b3d13066ed400552c195c702bb9322378a13ee44a0f956d743a9918c149231c6bdf338098c07f21064775b6700ed30fb2153478b67b0f344da35ca35e4b7c289a503d5ab9eab6e374279ec8ab67b2264d7b9b80d6bce26098a305734e44342a5078597f3bd574b931c3c74461c8da856239c24c576815f7f48cfc026baeae328a8207f5091cb7248615ac076f12763f8b63c0b75a1ef075b6e1c61b1c3bacb9c8895286e30729ce083b90df566ceba4c00e06214c295ab2b95e2b70032e04422572c87b475a63b53fa84ac9fe3c8bdd3cd06c13859b263d22a588b8126f2c615e3a705e0ba960261b47638a9e83c5bd3f791b362652290c5bcdcc4f3c93909431a4ef875c5e30f0c311e5e8344deec53c3b4bf584932f168710f66cbe718886e2ace059034fcecbe39d50d012c0ea26b8cf13807f1117f32661cf997145470c8aeda68022ccc43d1bb66732f5966c11ec221ac678bcba824f43c3eda94401c17c4877490e4393404db53a27b1dd3aab78e152a58f3741e1bb1b9a8202df64434ea9c5a8c9fe7584ea538250da92295d3a4abbc3e392a36cae9af1cc51095b2b2dd97ba7072acec4b7b83bb6d284c5fb3fb634ab3012e8825f8748022d8cef7367ae46b021df68aa8239d06c09fe0555e07dbc356293d41bc4f1e133ddca95d2298b2aea88aea5637d262390a79980220095d7116447c5d5b6ba2b962c794c899f45860658a0a530c7669134519a501e5a0759f9a50777a2a6dfb942f98b50067455a7b692fb1cdc2c10f64e9114b29cbe173ac4fc2adb95c550ae7a55387bf01ac3c45222fed7bcf9e240a6d9b0d088c032aa9714a6a55c692635b6911d92353c68794be250dcd65782a6674f87343a6654324f47f5ac9b384b22766d0c96852753a4449e08371d5128f31831ee766219e910b1f6267a57bc991da5b2b69a5a9212ba06ac917d45c9aa25bc1b513f7144217e84f1693360ea0690e51688a704c45cb6b1071a0e9a130abdb6cd3b52b8a429c33d126cfc10c73c928da9507aab00950f37e9bba0ab981394b137e337a88249100da175fe9299de1d1130381b3fcd265f7b36c00959b5bc2c150eb7dabf05bdf590e32e063a01a7cff6a9a22c56752c8b948502f3f8ac5ca444e10bb6bead1c7557b2bb2e37d55646455162806a7778b1938fcdb7da3e64c01c4a36a847b77958d27ab9defa6256b6a30a9b9962175c13721cd28e979e0d60196ba8c3c940aa4718d39a9b280486a6c2264640c4b09642499957be9642b6b545dbcc868098332fb103d75e38eb7ccbee64a341b38b0097479c019257be03d5d290e89a6a6f0b61039b128b46b02bcd750a9496ec4fb8dd6378e1ac77aa9f37a75d072d268c365725926cc76b58b9da040c173d7732e1401ab222553d6aec7911d052c569c59393997372e548086abb4de201ac1c17f25d76fb58c4ff3380cc5965720b989f4aa252623c215369076e771fac786e7f0ccdd917da64126fc610eb76948f97a5c3116869a11a46e612d9df04be0b1af0e8c8bb46607ea4bc4b4b04b3f79a30a2a154691a79217537b97a7dff6ab4edc9e2ad6cd97d3aef52837aeb232f799a3ce30a6adb88f6a0aa73fea00bf0146cd5447c6dc483b4955a0a3c241e7cc353c2c7085b84c5162a49e7d61a2d0e85a009833f3eb2305d7d435e2a4c81f358aa8d0dd50628096f43cabf1c47e7aaada59ded4fa8ce378ce1d9eba621ebfe8cc96a111aaedc4b6cf0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 +ciphertext: bef3076f55b44ea1791eae3b2b28d4fc20213f11983e57b7baab4f674de12bfd5fcc10ca13c4996002b08fe7cbaec7a5b6cfd2048af1cdce87ebf46a44167cd5e31619f89f61864f2b6a613d25781d4435ceab63a9e36a7e47cac50cce866da5b5646c45248c9d9fbea2ce0a676fe7477c09d19052d3705e75b119204c155be6eb2049a1d75d6299568c0c5531becd0a852303eab69b2d0a8cdcd54b9cf61df91db58e374a6af5cd82704ce859140794d35de86c7e8fa63b57821b9fcb3da45df3f6a39bc2f5f600358f83e30b9a492d1acd2351f6ef614b9a4393ff8c3961e62c754cfd1fa877534130892a90ffe1d91262daf0f23dc0836426d6fd2be36c979fe6c0d75eaf094f23cadafebeb5271d544afbc2af4bb54c4524d2bc6482d5f82b82551594cd0780d37409f1412bb7f9bfa0428de5ad074cedb4531187db0997adec9d23bbaabfc9b230b4c14dc9c1b1180feef555c012ff85f78d24c0f26443332b7c0ffd49e7d511ad1c97d304a22a1188cacb3b36130589d8dab536a6f107e0ee9c939ea9f95552a1b2c0a14be0fb38b6d8df01eb600de3c5c66996ea5de0ee68eb24a170b6e601b65bcf563b8639e3cac74f50c6729e38cafbfcdcfc48a019eaa19bf9fa44fe254283e0153d00c4d8232bd3a621b3ec7a6fcf353ad767783c1beefe4f233f1184a67fa2f552a70c18da11d04c941c2c8e5d5091dd60b3d420baf14a941be26fbfe9fd2866b07ff0e05facc01f34fb53597cbe5c8e9ebfc2c6de58884ad77825585c339e6b983cce9c08ab7d2b0a55977d0e555939338713a09ec9c4783f29fb8652a688b9f3914bc5118397d9002a041b0ca41e170c52cd1cb8076731329db332ad3dde234e8a7adf5ee3e27bc905474f6deb6ced6846213f1a58ed38b6969e7b2bddfe679bf0a0ddbe2c6535b6f4ed57b50e49787b99ff2147af091f5cd22e3bffae0eee925e824170ffc7332572bf330b0ff7478736661284a69ff0e43347f40af1bbb11366a1a03beeca2bce132e06cc6b7538f37573820723aea8926a3be13a7f7c73548697e3b4f87ac0872472bf94b8396671bbe1542c869f188663c30509c45deb7fea82312bc4c8c5952693901275414a9e7e3de7649a8abbb9ab172189fec7b79beffd7f752885dda73a9d1ce2f707454bb13905cebf361a338c13dc090eecbf90fcd873595ed951d1e289a98a3b8901976e8248e3a16ea05536be87129c1bff0f17696967b55ce7a73cc7e87452fd5f72a4ec7857ee82338d7b8d8aa2794f45a2c0b09fc3d69463e86c1678da047ac48adcb6178582c78ea3d48730466b524acc2c339b5bdb5bee3786c7452ef23a3e9c9501df43c27668b7bec57fa7df4198d04a6ae90a895440b5bea8cd2aa810c145e95c8ce51c017ae55341228a75c3167b93b4b0667d6a91a4b66bcd98c3598634730b78bdd9539d60b9eb8a5af2a046c2a8ca7c9618f845b941f920532fb0726898f8427148e4f5117e05969e88788ae6535d20058239b321bb33c5d6b7c1a54d7017 +result: fail +shared_secret: + +# Private key not reduced +private_key: 2e497feae75af2ff80ac0fd95c13f1a019e1d60d8bf8b4d42ba44691367fccfcc2d496cc41fee3a1dd56b5468b191cde2f6f9f3264797f0c3b647865f4d782aa7dedf6bc5f04ce437a23b5d32fbad406874f1459f1f9aa3bcd61a20677d9d785535cbe7073667e4c916725af4d83d2cf76bc3c23ab89666a2019625044a8bd954df6d68c2114b31efccb7e9eaf07f3ad3faa852e4e62fd847ae8beed8f2ee33089b93088d6a9237ae3a9949043b10107acc9345c17697308edc6c3dae734f6cfbde73c6a09aa1c8e59c61e79ea8b9350abf23668849b1b7c5a1e8033f969b9d34b354b32bc0b7540d3ccd2995bc36abe45cd394ef5724b058d0a5759480f4ce6f7f463389bfb36bb851864c48d97fbac7204036de72cb0da94cd2f98a1e53cee630748a8cd5838ab53b2d33b0d64ec1be3ea2bb8d3f52d56174f3534c9820396f2b70ba4778886f3de5aaa78ed64688490bd601e7d97ba9d40e9e8a981749f752ef7c7bdd00b0c32e28976ecd97515cfaa1508fa79497e1db9ebd43ddd4b0ab373f4ea56aa9aba24693cf9c7939cb8734cf7a87d7eda2aa4f303d5c62e5edfa3cc3f785bc0ba83daff91f8787fc013ff122e33fce87441b473961cc87629337cd4acb5367432cbc7407585a4ef463efff88963f7e883604a19ac2c46389f2bd70607f1db9ce7f709a797ed3d53046c4bcfd13afb40ed83f47d0c52b0f88e2daed0b1c3e813346904978d3bf6bf13b4a6c54c3895ffa2266a9987a4c8505cbd950f8ef7963c97e8d575549559bcca5d78c99af532b31a382567a6b1e8c56babbc5873e44fd8ec642f806b6f69215740af996b0adaa7304f516a5e7d1e48ac1349c3442e4c5258fb9d19aae42c4a6ddb55014db30ccc82e7d5578355b7314aef84f872170a6107b5f008aa47988a5a79ae5a6d17de308c59bc73dd1b1f92fc2a41c86967b4a3b3ef4efee4cf327b8dcb9b2efb07b9b0e5858191164a7a87427a94f3f81e6c2e84377af5cef303b7e90696620ed57c15bc52876c45864dd78854d1fd7fd2e530fbbb9b13b4d34cc38e34344d5ed4ecf544359b93ccb0338bceed9e9b938d5e1cf0661f6ae81581f62668afd8e9f705af3c8fbca6afe69a7dfc6af9810084933c438d4de95a679eca3f04f6fa04b614bb973d899bb8748a767eb112545549fd8ff98931eb555f8308ac724a8ad09a90f119f19d3d32f50e3cdfeca92b4cbf23f5f8ab6abb2947d361baa8f74c3a2ca8a29d6a893fcd6e60979e351b4ff6247b8fe3923d0df8c55363a9243cfaaf37ff09c0666aa7b6c56b17a63fed0e6b4c15cc70c59dcd03fa4dcdc72df53c9b1bd0d2383e7f4833510862986f793fd7d642ca91e0aeba6d97a1a36a55fa6c9d73246a3a3db31fb644e34579c2866fc4c5671667b0ddfeaef82bcce84fd52d766673b398aaec441cfa73dfd3b463e8aa018c4272fbdc3ffe5618f9acae6ebcaf74d17648539c766eab08d48f5467d446912c98836055496b1b7d777cc82fbf557665688237d4a12640ade87d0cad66b4f3405177c9e1f4ef624c5ae055887d68c97cedb0ebbf54dc3756d00bb8e78676ff62a94f94fe9f5774b5fd7b723577c84fbf4623b0aeff46f87c53944cbc8e4458305ab8304a53b5c47b42911ba1b011c4da11c08b281e625f6f37815dbb1f3908c4c1646142b14d846b8400114face5cba669179ef121436a1975845652c5cb4ff62fa0073738f0264401adbb78b44e61619977804aca17deea16bad48655133144781b196c2a949bbc9aa8714758061465a9cfe09f2a1316ca875523e07fba515296309b6b7391b8d192012278d684b2527318f30a7c1e598a05027409f65a7f36b57f693a660c7a9f2b0bc38420128b87b005b5ce7631e4a10ff858831cb0112f5b6f04334565563e751820da374ce2819e4ed9bc5a959eedc4052c502abc54baf3fc0e426b77de7a274f81451070042e70c19a09421454141d2600df76a740423cb887065939cfb657a76785b35a5868401cb4d88ac8194769ad2499f2f20ed2a188e8e47e918cba7342b4c8893fe411b47b058b0070771161970c4331ef67be34bbc4781171bfa19d51e11612f93cda611f4ed88f85b87e8beb6359eb410e7175ef6171faa03e29e11ea8a6caf023c357a87afc652a00cd422020295bd34170068d31b7a058800026a49fa1f7523ebc5544389cab259815114d4b01d089d3cff6956f5d0b5a9fe652825b1150e21d11f562196892ca41941b46018ee73683e008525059496a07bb029737103b729b1fcc13ac3236b47c63a6ed4458a9724ef7b62361e75ba726be6774cf6b3572657b2a6abcb69182cd3b880328bc4f52c075c150bb22aab08cb2326815712ae20cf1f257b9e6ce0725782e9590191b2055a45c4467c5e7d70c35b8a61a48a317022c298b612782203a820f2161844f6a6fea58ca9f230713c701aad2700bdc951fc9bb8f560db9e99f2849afefea6c366c982f3680dea24891c631a1032d9d884a5ad9a11fa8331be85f1c91c6de2b4143ab403b153d9dd714db314c683ca24cc45f86c2276058be32ca1cefd4116ba386069856c6128ca86a63fbf6c15e876d63f738f847a32166b1592c3307d9c6190c5c42b7ab756ccb394c7c26c28fcd158bfdac9f04c99e30254d500cd0da1b9f2b74823f14283a888bdff45ca218b89b9450fba868ea9b1a5858509137160db31aa292863ed216aef822123c294a825e26fa3adee0291ab37c1462c89a4981949bb764f4222b3527dfd8a715682d159ba380339971857272c7bd7442cb73739c450b58cbeb6936b8cb619654037856935376acab92026bbad18c512dec4e19671180599e01651f008c3a04007cf02535ad7608e1e9257fbb04e419976294702e84341531b95e1b20c2b152a4d849649113c69a8f379b5d72aa86e01a4c5202ab2e276712f1131c411d4072cb45147c562c60080c56eff7aa7d90c4dc293b01ba935e345b88faba62dca043d94c4a666786c35f9318a579a9b67e429144240d206612a6d802fdc24aadcb42b0db4251e06df92a67e632aa4a29000a77cb2fd2959f851288464c824872ae6a9fa1bb3a71d8879e303c51445956ec8ae49c4ae6ac4de2047edbf3c0b23a29b8b86b83cb24530b0d17739331292bab85868e4a9bcbb2b4d4514e52d9afbf66172ae560c08c7f9cfc0c98ea4ec9c785ffe76ab5098e9f3c5ead6a7759b529661b50e0368246c5afbbb9b876c8072c1c1ca63a4e6607fe4286fd2062614fcfb544fca36edf0785c37bb6f5fc33e2b9d9d03a0a6c2853cbbda86e7039b635d4cc850f494d42b240acb54ab2316791e9ef5b45f1d2b28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc +ciphertext: fecf9ab93b18fa40d1b385b0932aae91f8287348567fe0cec26bd6ccc57741ac3a23439efe62a433071d450e20818cab881f8ae2ff3157734d81c1a5296c7c75e0baae6501ff0631453303c2250dee03eb68f57ebca08aeab1a28ecc829ed08b67b78e248b54572d307bfb0e38c8708bb63da4e421e96381741a6a893c2ebd13982d26e223fbdd194bceeb430b8aa6b2b15e7fb3691cf4d5145023fadaa79e63558a9875d94614eacd3ff5e143dd9d93cbffcb6b6472ece3e56e6d7253fd2300b6863f19eb8e222be62a91386d21d9046b78ca2e04a38a5f028b657e26d222ada33f4ea5bcf62c191811f34beb57668f4057fe21509cc139b56ec566f8bb79157177f0680d4e5c861a3a5838233085cd80bb193ac3e06039f1fdd31eb5a025fa55c895feed3ee6bb484de762dfd614bd79f03f25fda91b05e74ff87c61132b1ad280f58e3a8ecdbb043c46d57369143d1b14ff04f689d1ae905ea93444994c09d02af7ddf59c9873c19d38ba6a66bfc1afd284e598091e5ffe6e6c3d3f0a3cf600843e2b2ce86ba6e08ca9f9fa5340472641ca84fdc047bc3c09a18e09b88f8b835707b036dc18a9ac1d03bec88950648f08cf55c924c7610fa604b686943f788611da45824f150f4e8128fc2b31a470ab59142a016a1fd7b95361ec265e3542924524754142ddc7b4feb75e849ae194888067257dd1f00c8e7f532fd06af3dd6d87191613a591707851c1758b81d41857e9a746324f9e5fb64d9ba81c33e970de17553050f639b94be0f5c4677e98514eece20663ddab722e72a6768312bcab6f5c36f1ea51f67905f433c5ecaf4da8a1af5581351d62b3dd46bfd5db9df29980ed7e522f48f4619ade16c4f0662366f0c0c9bc12e08d7510f80bdfe9577f93542341f0811de4aceb46c04b70322813d5e1ad9068c017bf2f769753195004b29c3cab038dba1b579c59e18fdc00026baf842b5a57b91821cece116b88685fe95bda154e2fbde8f49b288a2b50a6844fc2066e8be7c277623f1d8afb734baa94e7bd58013ade0aa6752307950f7a5f233e86369c75b9e34ba32360c52d1b58de44fe2945db78368c1137af9f9fee9c53ae99092fbfbde12e23bb7cf3cfda6c9ca09a203f6360bca6ff06afb3f040ee198318bd14a7dad4da9741253d7df92f186c801708aef95d53131704fb5382bfeef8c5be3071a1e606b9566632f065e3f2764a0c6ccc0c6e0f34d0b4648bce1cec4ae3d8d798a8c29effbd8d0636d09fc5d14b8245708eea3fe701249cece51ebcf50578844da1221624499fe6c3e36e91a12e1cfaf5b2e7c55706424a94be9b0c23e11f3196857e5009f915255abbc7b62770a9c498c8d7d53d0bf88450c563450fd54bbc9e3a731b0ab5c8015b829735a20b01d764892ba436acda91f9068af1042ffc82d1529d8be20bed87d43bc9e0071c2dfea7d57242eea011fcc43e6a96fae7fc018746473deb9dd9c413afdc90735c0a7660ba81cdfca11237c81afc46ea4eef1af1bd654033911da5e24270ae +result: fail +shared_secret: + +# Private key not reduced +private_key: 66fd4f6569d4f41a6a885356399fe638039eb865e7c3899ba026e72b8b3120c9de4717c520dda6a1d8cb799562e2ade128756501cbd0d4b695e11ccb335b6fc4537b236c4fba1885d8abfde494f7a65357c31990d9955ae83f3b30244a0f296a259c5dead7f8403481f0745f2764d1c958fffcc3cca44832c0cd799164cbccab87bf04b813c3f802ffca915a9b35e6de34e95a74e660441a686c89397d9e52919fe989286168b6ce76e485c956e79dc484ce6bb94c9c375a899afc6932cb9876796bada31eb84a2deaa4c5b837453cf8aad642d9e722cdeabffea78bdf8007ef5762a65d23664c79c87cf79cbf4ee380719d5e8b66ea254394b9a4a3d40bc23ca6a2e98bafbebd67a34c7f451afec9d4e9c98e6fb71ca46d177e148541d3ab6dad4b467ed7ab1cc94b584e3c3198da418c56d95ecef07d653497eddbdc8033679d82eaa69a4c4872233ec12ba28f4f870e4a43c3ba3e0e36cf7cb740fceb3af58e904017d51c137d702c890e1f6f7e7bed401bb4e81a4333d7c8ee5cb8636a98494ec6781741196faf5e46d5fe838630a680c773725495812bfc45321d6ab13b52c2d357b3139f9495c2d4e4a77a07518fbce87185b2be2355dcbdd66d8a418bd7aa5038c6f0d4a3e6ad74d409a15fe77ba8ee76ccffc7c21be0116737b633f851e688fc3f79d16dc8c35dd5a73780e87e3255e6498fc5dc067ff2f376cffebc723bbe80d4eab9aef5fa1e08cc2a73b90419a056f3fd660c7717884f8988d9df5c42921871a1e59ce36aa74cbcbd9fb3d69897a0a87ee3ab78e8482548db03455a58b127dc5daa0cce8a5b5f401da679dd4b68fb46fb6a94ef97e61743b2374d98a51ef8dd3e81c65ecebe25e38953e972498317c5fd4f5332d6b74210d783d9c461453347f92dacb6e4a3316af496cc68369db08b15d3b31b97689aef6cc957c6c4724faa6a0ba8f859e961c808aea88862c85dc6045b57f53963d83448b228847384754cd45dbcfde5e6254c065e63a61cd2b41988cc35e1ff7d963c73ff828d333c63f109047c65ebad0aa56d3cde36efc88b6dd832be9edcebbb9ec40cb44754bf664773d5466ff0b868493e4433ed85761c3d82ef669ac4ed9e4ceee343ca24bca795eccfd6a4fdcc37e70a74a02415bb732ba880a5cfaa2fb10e4973078ed9a4cfe0b02b691c8aa4aa4ef52546a77c2d6098ba78f6e478176da29b0dad993d7b76cac825a534013e54002977bb8e50d3847fcc5e3120f43b2aea6788e5c17bfab456d7b96a1ca2d217b86ba5b8750dcdee144717f5b34fa842779cd9183dd482c99571a36a143d97365b7e377fef51ab88b1ddb3abedf2f39b4ef3fcecd0459ec3d8de575f4174bfd47b099c304c71e9db708ee55895eceb30cc8fb2be88804efd70c8b399944b4de4be164fa27ccd569674a40a7f88b9d6d982149270d57d767cd9a57d45527ac8d81dbb41f8c34edab552ddc022b6f7c2078edf078b0464b81b56d57296b5ebb3571fbdd0a82d65ae1eb5cd36accd66f8283554f38b6aa39bab98ae71cf0cb3664842686abe589a9321d7b911b371ec5a31d13a4e91d8e18e5d4360f6685a1e63fedf33a6bc5e6544e703cbaaaa4ef93cbac5d1fe6c77155f91195dda2b52c1bc4ff328c3732799ea0aa8ed4229e9a239e5b5c5a02c1ebe98a381dc56e1d4b56deacda3ac52b1088805476c01609a0a2373a4bca788227172c4431b000005d855ca059b4e554d3dd2103cbc7854a12cda368ce202873f5747450c4fd994898dac5926765536662c81581ab4db18e9763cd5a747659440c9a33eac713cf907ba0d5a875b90882de31b5df825f337b46451705658915630035724c127c9c4b48572951770241993f777145573bc70125d35f1b03a121d09ba4388889568ba109f04617360826ad48f2765944232b1cf636fdf3c39c40ab87b4b50bffc1019eb0fecc35cf7416ddb3146e275cc7ae209269a7330977e9dba9caf79c99e30b8880525caaa84401cbde7ccc0fda4b250b7a2a651b3afc123eff52eec55650029af651b2014f4669de319435b7dbedacc173c3dd1f3a8597b80c9c3869d7389398a2404e790c9463f2634cc7351bac9d74b62b73e7e54cbbb3ab235c7c1ce298c0c0369de33224ab7b03517856e43cef2d39f1d325d1e221998c53631d32a57a880f24476a7e89f8c1b2d1c49759c322e993cc7effb2bab738f2648bd8133208ef26ffcac76393714859ccce0515d4a7192ded6ae5e828be6653b05cacf0df1b4816a972592089ff88fa421a490ca13c6789639c909c4db18ee43a01989c51b6005ed2548ae24ac8cec10bda7649e6c9359c45bf0ea0d39f25bb1ab3c3b5b88cda24caa8c7c7106616ba05da6727896d2a895835c9b83654b358e0d4728fec8a150b39283e345f3e06b4680bc632009eb85adb811277926662e531db27b3ca60843a6370c304c1dd21a94aed90c3663c0948bc12f0a32af533866f5931d5c74423246c16aa4f01808d06a6d50444ef8a3171ac641e9417e2e025390caaff16c6703680951b1a0e5abceb8fca9830c9ce1aa08d5803280f31de3cabc923b5a1a7c4854d841729194d3685c03f975a72440b5fa01b11868a48bcb73794c83644d1d39b9664c432c7b3bc311703ec01d268a34a8a1b3dc79b9ae07b8cd133b7d4baba7f39b4088043e4a35fcd08a9ef141b78cb1f64841ebf894827bbe1ec47509817ba27cb42222272a00a633e1b2ab344bd3778e4a579ac7d64a32e2356b1822c1334fa0e6acb05798f63192ee20629106130a1ac330c6cf0200908fb37184740e5caa5ad44067ac7930f696bc9226235d212d71f57ffc2c8c185c1f3d717271022f2d256963dbac5c5a1404a71e3546695eb27d73221892b5bfef114d6f88415875c013f16e48d3cdb68c2000a39a45263504e0a7554386d68a4d3992c9f6196015066d3b8282e8d3398d2b5f62d7af54698418862db3a84286f142a8cb44be011e0f2594d161611cb335bdb018d9e58cc71a363b29439d54cc6b293af33b0dbbcb80c7797819a96c1316a783f60f987a3fbe1acf80f22f610037d17247122c4ae2b2214638205328c43fd4bebce93d47c02b84e1cdee7cb48805396c24410d71ced4805f36a105b05c6564ec3450654cc0a12e62f7c0da79496ff2bc97b7b4809aa30d577a2f3428e48220239b1b97d9278dd26d93d186628812fc697d961442879ab64b4ba0be3c46f5e55c13222058b407c1694979897ca0615e8de05d85d3532060076acafc8e0aadd8ca7406c7bb316abfde1bcdd1662d5680b483287bbd3e61a91839cca9e761429186176b7bc64034ad43f16f65e9d8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 +ciphertext: 1776384cc4bc09db580462b981e07705f1b7af05956b2942cd71a270a994b3c9ef525863d3ca86596788374eab881474d88e87e329652bed8e0eaacf44b90515f0f729a206aca3d6ce76eae6d3cda5caa6ddee0e530d841578529750e4d0fcdf5f122b9f921a5a53ce6442a733ef5ffd7ef4e52c3aae93aab7f33ae33f3eed2a3ffa5a4422c368dc210ac246b0d73dcef478be9e15867ef752fdcd1db52b733236bc9ceb8660679f9e53f62c670c68d3effd8013649bbf5685a40a1199de8baa84e701eb4a6de909230f41946c9e08e7d9713e209899f0710228bd67b4fa66950d974f5cc4bdaa1c826030a7273787c1e1717639d0ebaffcaee389afb6f044bef662da9b6b4347b0b0aef9777f5324979e660ec40d43e0a17e5bc2090aa0bf1008ff02a129d3b1210614e99f607b521767c5038b138c7d188543297c405df6e10d618d41b8cd3a9a935e048233b6af27db097721ca8999d8b12602c0aa21716c25e09d1a1b6eb4e2e4a82fc680a1d8ff2fdccca10ce2e38ab36c48f46a5b419cae0bfa00a0a153015e9c908d8439b4accd8a6b6264eece46e97b507644c200e7f985cd6c3a0a024aa0bd18b44059ad74a8d6a1462cc9c9ddc532a803b251e73775435689f80d3f79690aded41b83d8f0ddaeaf4b1a85c1bcde9e17cd1c6635272c167ffdf4272ef8d6552afb7b54500426b2f612df941d540e596038bdb21d8a2188dbdc89a2a449a2774d1f0b21b8db290e96ce027c1f0c11a8484f857a069ef77e6b9fbe0ce163b4dfec7a11e49031d69a37b516b72ea4e1ce67ce493b8c052c30517ad79a540a0c0e86093663e7a4a4641d9d291b929c59c4efc47efb19fd7e0c3b6f2c1fbb9449fc18a9eedf70f71b70f92f8369f7624a2666ec7f26792b34b79c659f1bce8d9f86776401730ae70e7d4459f0e8d7e1afa9a1c41019d536f0e8585ce4f2e7c42eb34223607e9d8afe66707475b6a1e5e532344d8aff98d5e48b782510f064768d76f4e99f6bf716df363c5e2dfd724c78e5ab362e2d8dd3a7fe3b35410b25f6071cbecb3513fcf755312fd082ce57b1ebcbdfa6fff754a9f7662c115334325cfb37d21ccf5a096a221138e61e1adcc4548a7eed9b50d3e267d1bc6eb972e678b4c5f0fe3419f663e0d4525bb0bb5859de22550225f90a70f76fdafd551b5466d289a8fdd3f338d1aca2621157aef4c64ca9f256a8f88415a6293933672ec2bde631bc1723a362edc7aabe695ebe88d38de01f0eb15bf582eaff139b8812fdb3c7abdaa0f933b6724ab3fa77fc4358456c0ce509c0b98cadf2b9e8de3c9552d363495389a9b898b2b8d5fc97fb751ef087d69c8a7fc32b62d5ec581ee625cf4183921bc62685e976d41d9ccada44570d8919132114717ad1a119dda21664a955a3f355cbc9879030142b418329b39a0f392205c811d4baba6301d829d312f8a4cde5fa12052c02a4c75a706b8f317f963f01abe5d27ee0470afa619d97d7fb5b3b0669bd08b901bd9fb56fd4a5656d8d2cfde1d116676bd8 +result: fail +shared_secret: + +# Private key not reduced +private_key: 000d8a749ed1a329832189bfaf0bf23cc5789003528b06754014cb92ad9b7625359b2cbe463b356e298c95a6a24646ad6114900034c83f19599cede73846b93153aaf6f9c1e2feed4179fbf5146a499edaa8a6d4bc3bd9b42f30c6c44f5a1ad086b7c6890d87035e7b4e8d7bc34b8a23e968a93e6df62d7f2788975f458cb0db5a37d8dbb38f3270b3e30c18bcf7a3e47feda5b63a49a0ff8e3bef90974ba44e8730f4e56018073e0ed54924e38865ccd76b8d986257d525d5c32b74c81d4cb9527870600eb6c7dd98ba5ea7efdd95ef386eb8d47f0d7984102872706b352d2fe19aecefdf5df59f5450c36c4327e3ef09eb58938ea5910ee41494b50264719a84dc6d1bec8f9aa6d38eb8edb9f3309bd2dfdbb7c255ebf80a769c683f30ddf822838f6beecea8e8eac91c53f63d41952b82aefc4123bf4cc15b3a8dcf45096d869ff6f20375e2354e32701b8043b387d379864833e8c134af390e4cc075756838415e1a461dfd313b59d7ee6753ae6f5ef593c99fd7db88587095e66c03044af109bcef59a3cadae3e027c2cf3b350d28c1610b9bee17e8ee44c223ab522ae57b5335f6f00334554dcfedd463a00bebc61afc6bfc37c7eba6a7667476df78c3a4b7c486b6902e57e9bb7646045a7ab452cde7539c755e5fe390f0174154fe531d5737da4383213ed3f7fde339255a05dd4c83fa51190ae00c15c2c2e5de41d9be98c667049d3c74ad5680f6c454676917dec03da6bb4558fc588c6cbe57ceee09f5caec94fcdd96ccde352887d995bc50d0ccd2b24959f4e6ede3bb6dd70aeb47db7856d53c7623897a24acae747344afe7d53afef34a3a6c793017d6b22a3845f8087589ac311e0dbe84197a8bd6561fcb84739f4af6547cbc7839582ec75548f78579469cf38553f4d66027a43d9584508c7fe8f87a802ffb485aecba2fb62609cfb48c7f3bbbd0fe7d9097c87f5e04d2cba5f0b55cb0223eeb2323eb2bcd7ee9da735c9da37a84747a26a0f0c7b2877fbb4d3cc6e1fec3ee1c418ddbf6a663519907354d2bc106fb72a26d7a0905886e39fd3a7771669dca57b6459ee6479074d1e9bf68d6e782f904be442858fdf7f5143e8c07dd715415f29adb7632b5bb2ea9f3d4fb49a5f7b995ec7b2ca7eb0be3aedc7ffcbfc344d9c9ab6536b323a68a0ec97b5bb491fcbdac20f48873443707da5b82d85f61c98f076f6762bfd4370fded1e66d5e55f874e9b1c6947ed37dcaf85a9be3e8f50e53945106ec290e4144cce84e7ab57fd496a1e3a9f20cfcb0cdfcd837ac9106eb3ec39e99aff93a7afbe5b9e739c64419ae73e02870f4845d3f56ae573c5daa9387f88e56c7e4fd2a2c7a051964127bad8c7f8fae1edff0944dd7cf807b748d6259f495bf5bd42f61126de4d91baefb38a3fa16d70646c71e5c6e07e64aed28eec46bc0fd4f84631ad38813834ce3467a0b4b615496b80681159f62b843f47cfa8f4b4c364833b074a467eb26f3fe475aa1eb6734774995e99745e4dc5c149fca1f64b3149ddc33e8b149c45944370ddff2bad6759454cc4ae66d3019e297d6468f8734dcd43e3f078fa0955d69d9de0f97ca3de54b2f48d05f8f96c53af7e52aecbb69bc1c3cad697588a4004634fc1c77215f0677879aab3e63b51ae7436c5b47370e226eb4ac15dd0281ec65c56b83b60ac42de17b1374d1680b76460e294d841c1062638cc003d043a26307c08025a594fa3676df03c87789a4499575948b2574f6931673936e971f2c79598a1b7b35d28103252b4df98c47f6afa057bd87b1cc516722fd72bae0f437479c1ec6f68087453e23fb4381e5930e5a19fc9a267565b1dfc7aab9c13441101e57d9a4a454a6d1249c3cdba091113d0f1b257d0986f23b4fceb35c95ab05e2911dfb2899398808582a6b1aa9950eaa9c87c8bdae7372d46c2852e85c629c25e05a169900b24cfc0a68661b6d44c74c658ab8c00c756861be79272339a60828b9f0b8a325850b41950f97849dece714c494ba9bb09b74ac16138251363b52dc166f220623982c19ef565f80583b84d0b91267ba98b63afa31160f65961181951019419fc0627cc48de9d6b2c689969548641009cdc56b02a140bbc4a995a7f2593e0213cdd2cadbccbca41947fc8033baa1754a8815ad52cc31940451f8a62dd6b39e22a6b0db8a0f953c6cbca43f9c1285315f59ab9980ebbf57c1457dd8361da04e0eda771cdb37a6a54c6a47719790976a957978e198446320aaa840e0f1c076260e75e9a92980891aa6245e003f1fd6363d0b6e5c73b476b77ef867a60b225a99a763d0ea80a4c61739875bce5c0f361322450c93040b4d6c08120827b8026ace0ec73302fb6824367ac89a0e7df45b850618612ace284c2da4421689d8c7034113f9a1b2342736f5f11cfdd7ac7f8468075a4a2d7960dfba9e264514a8d7c6d11c660cec1efe33c04b4681dcb31fbea47247bc83c581b174b0cedcf0bd0b7b622126cbe323986b75a407e416fc0032fa2398e504967ed021e993a955713a76365ada810f9bec7ad1a6929a466f08113cfd6919e014085d4148be060ebc014fb1fa3a1ff70a3ad94baac7be6c96bc0f28a021e39cc6bb8a6e16312255880a84778cbca55f4173b2070d527357cac69c22587208496af1715711f76d5c185807a13b2c791b91f54b23ac8b66b71b3e211e55180fe7a1bb2bba7f97da8f82734ef777b7d2653e66e814ed7871da35c95761a88a611bc383add9a329706212b9780ef5d53e933c99318ac47e26859f507bb50597c3ab1a252c77d22a817b402b80a63532f21a0f296c40bb8021732fa9da01bc60bc662a0754914462689de756a397e2384c2372130c5a6f05ae6c8b81ebc22125830f04d3740d2638d031a21f1653c4f664cd182b11887f4784c27954984af251c923b5c2ca4f1777cb3eeb7a13c351c07c4f5562b4a8a477fd348bcb9b8e6bec787c2340c02c0dcb236fe8d7c6ec8bc9d156b89bfbcbf4d0599838263ad5b90fc155051137d6800c898c8a50b82a4e3940bbd3bcde2013889bc4f3a7022d7c49370ac8d826a3aee946b79897bea8512d8b899a8c17e439760b58859393a5c264b5f1549940914fe278a40b6c9a8304775ba30c8ee4cf234ac56862ca2e935691e426923973c32b4f2408cf63c99d7b2c5f0c5aadbbb9cb98b53f787431fa73542c5569e5f5ccf0e4a868cac6529bbde42a5f1881ce0a729e6a531b0c401d4979a7425baa8b0392a8ca9374323ddf2794c237e38e45a43a5a34cca2875d19217ce7547d2eba6bca38635cec71b814aaac223f748d13158dbe8eb902d9125fdc22202c4d59251cbcb6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f +ciphertext: 8ad5e238206e4068fe9be1a92e9ac82c41d247e864cf81e6006d6f3cbf6d7be8116cd5afc3764a34c2d8be6335745fbcdccc3753d787df7963565f8aa09faa473c3a31c86757e5747e5a309150ac618d96dcead932a7ab3bab72c6e2ce24069787052e998de0bc8f43ad84a48717f36e3cb6229839004f07f6c219375aa17888add3b069ca65d4b83b05eb9e83e2c2a053142dafaa26fea7e995f126079d20d1393df571160651a3602cd56422486b4dcb6ad4bb752eaee6af42128c17fcf72718c527d08817f6b2406ec25d8c86cb83ff644c3bc4fc9400d4f5f6b6c43538bfbb16033eb37428592b7c911139561872ecc14e0902c34dc540b3f232a2fb91f4b68cfe3f901f96e355c6ba7126617a8c8d231e58372912c876f8ddd6e1ffdb62934a96e9feb82babb4c3e4312fb6dd64550dadde1c3c82b42f129e6825464552281810809747f64887e7ae70c56d410e4b4349942be418f7e3ad2d85afceba02107ad44b7bd7f8505c50bd259e0bf20b8113f7eb6a209f2b97154b0198e579f66784fedbd5e100389c8e271ec01c0ddf5680c536d12599eda6196949df9aa66116d71014d79d3a632ac09aac8bd04cd07b2775cac35d158ce012a6f157265c06721ede539be6c87b6ca44e41eedf50bb79d54d3c77179ae8734941daeb930a299808d5c336bc954e0fc7341681c3c2c7a17f21eabeedab5febd906cf3c77f52387fab180a24799b9f4438810933d726a990cc0307e6f5ef94e6e7d7d074b7804d944c2f9c341e6d925ad96baaf83f4550fb30a89591cd8e66496dc59eb24405aa518337fafed03ccba8a0925be546672978d4e49f068e9fd6216cc9990ae4e7c785ae005409dd512d766dcbc8169412841521ad9a7cf48ad23c075cc27eaab6b62ca3f0a27f6583f1b6ef541b6a2035eac34b1ec3cac912d2dbe1daa6a5e7165b9093a9b8f2c0a3092af78305dbe137176dfad210382037a7233aedcd93a4bcf0b068406c0fa618cb7b4e2647ef019757fc412eb0b7f7e8b454ca0d46765928d2f7a468f8d4643553483ee671c9476ac712c9aef32e357867b95e5edfcb6d93f013e4b7d764dbd042e5133d5d5b083d9704872f841cecac31c46a4394998678d48e28d725d27d36f7e6130ea21ef6f825a2a3f45edae4b773a7b1afb981b24dfe59c181d6f3568db716a58128e546c16e42e769a62a5fc785b3be87aae4104c9737ad0aa5853ae9ce38014c51c31c0c404a0b67c7ba501766cf864f0c38eacb4701c0b658546d38b32726bc1e1649ea02ad05f4cf5c4fefe235e58e3e8ac3984a11974fbf0d440399e9aff212fec6334d5a1db23a63b0cd46157c7aeb39cb9c99be81efbedca1ce45e655ce37c3f10938904e5aaa6a144e5e2d838aa54a9a54c3e695e2171c1a512b423f94183eb3c28545ade0558697e3e0fa12ef1c5a15b123aa4d7c14c8d6fb60e5b508c083a5f93a35fbc9579f31d1968f4a9248564ecf4cf9ab4ab8eb016a82e3aefcbde9202eaed915519e346c25f04424d5f262f436b +result: fail +shared_secret: + +# Private key not reduced +private_key: 4b49dd378cbd598e8696f39433e9a34a56e09fe98b4f8d6a317ee9e32eda5ad3993f7646214cdb27dca918f6f4ec6d90930baec87da838b5d1e8979c1f3edf71dc4674999cb8c9fcf0bbe011aa67cf5d39446957be38a16dd6837966f1fde5ac77e94c0767ffb2d95cd0169803db5698e47a6ef3c3b11766f095496ae846870a68d34b90335f790286dca97b913d4f490496d63f0ab27afa8b92b33d88fb6653dc6ffb3b55b3a9b5d3a9b5f8a9e6a72743966eafd9ee72f63e3ffebab7587649d77563dfa7da413daca239b225c78177058c9ea3cc388a3f5f2732e1ecd0c11b936e65833cd9df55a7f66e29846bb7dae0239820e47426b8a09289f334f390e399469ffe3ff34def9ac94eb42386ff98fa3be8ba23f473ecbf71ab6c52e6bf6c5eeaf03c0b641835dc8f3fe6285cc78d7da387fe935ed4e741bee4f5b3fef703b4a464d143165337f5bcb42743e574b93e6fae2318ee2dd7c51f9f3ff2ef5f4734395bddae016a6c4508da6cffaad943d27d1594da8e75ca1e43e42dc3122bcf170ee07ecbf5120e882aeb94d6b8cf893b7c05373cc9bb3ee59be48e2ef4184cd5c116b6c178a2c7756701ee5b8118e4506df4c9dad4a3ecfe476591a7c79970274f113cf10e0dc19896d202b4d8453985a3d9b5488bc61f4c8c9384ee6e733e1358605c7afe30e7d75008cd5297a5ef6ae8091e43d69d7d88284ff284804b276a193352ad3ba5463383a0249090cd5579dd521d57bbf8dd3cecaa93ea23f65833d7725c62dc79b7e9b34bacd94baa6d8463d7ff68ecdeef0edcc3d5fe9f295a65f460ad368092d3bbcb2c9f9e2bf783737e1c4bdec054faa7897ffc75471b187303a9f5800e9fe5d73afbcca9b83932c94360613bf97f3a84eff9d278a4de98fafe746857ac73adedb6b4226667dc779285c6987cfbd3ec14a0040f444decd2e76aa6d95392054be762585470dd959c8a6d969cacbc8d9115b339d6b5e75795d2a46b833f84712d0cd2b7c35776595ad666d59c4cbe72e637ca5c95572952fbc772473d42d9ecc194f93c8b577a231ee6e7e58bbf5f76a913f4c559fdbe3781b623585b2fa77b2cca946dd9ebcd3ff1947fc00562f166e4580df30a764b7d1cd6ae3a4cacadf7668e445ad7bb07d8e7f4e3a05613541967388c4aea784642c9a5fe8376c57e8fa16bc98acc9d8521a366aefe8dd95569af96d994858236f5bdc7ab9655a95d28a956049c7365c84c34f33ab305a35ff3e17a563b1947658988650e3c65a665e66075db342e7295e79fad0bb567054b2c1cefe5e3ca560b3a565a58d9054fcb27eafeec538a2cd1781870b19c63a59f43fcd9b384635aff6be642036221fe5c3414a9c208fea81b6e626ce9451d9a6a1ac06a07a9b8c85f87cd43bb06fbf19cd5c5eb3bbbb3be723a8e04b9a1f875c0d645412eb8c520bec306cf447628c2f01b3b6a6a89d8c849f48832f7a9662b8c476bd4f6f54b509b8d37a63df3a6edffd10394cffeeaa1d5464ad4ece6a6e174b5f8e2e367713fce03b79ce67fda3dfb3291e7bcaacf49c37f32bb535db799e8c2a5630319de99ce503e3eed963fee27876447aaeeace9fe5d5db9d1a3aa9c547194275630cb7644bb5dbafcc65109cd59f7084e05cfabe4515255ccb724b3388239ce1ba8c631c1e8c0b444baaa6ac481db8b4d670ab65ca27f33a92a11c48f6ac038f0914637b749d8b962c00ac8ab0c019c92960ec3817f34840aa7b63b19826a12234a81c9faa8995d28c4d4c44a0fd2c51720cacc8751bf6c31caf045a79c6f9b15c2d406c11fc3b5df6638e1b83164175dca5a1260a88c74b4c2432a9b76c39d43597ce2e3ad1797c25f967868b66bcee9b6a4d1b53fd09540220c7ca75943c52e3d4a124453499c681c1fba4dfe80919bd9467bcc0ab34b7db6012b18b3cc4c679e325b82518baf5123c88786745c4a0600a302a2a367b717c3dcb4c32aeb4770fc93e0213aa54b2c6a37a326f121d907278203724ceb6cad8717fa3a2106217864274e6220061620052799ba22675db36863b2a447e5a62b3d2511ffc83bb34cab6cf7356a27c29798c00cb32bbe1023fe1221313cc7ad59144fbb98d0182bf0183b44990da81016e2995206f2b0af19c8e21b1afe8c98d608c0c7e52075137caf22c69dec4e0f1763c8bba263898b30946663d84b5e0808e6ab9a6df970d2568303704d4c651c912b7297a89534e324fae62628580becc3a2051cca9d5757d5e53ff8fc242e42b2adb06cb2547296ec8431fa6eb8f7384fa559f9284d528761f9a23e85a0bbb3e57b7a876d2d4934d33838906606e6da9a311c15cba30f39d05236892462824bc4a4b4d6b343e3594fd9d68972d99eb26538f9eb1fa7f0718aabcd5dfa5a670b0f8cd595ef7a082abb518fa34891a4ade983877a333e956bbec9a82a19650866981b8b8c406e22abd784aac085b6ea553e30409ed6b39b4f367ae45b9fe109c6ecb51f23d2a755caa347aa95e656cf45a15e9438b61031717b3551e9e3020ccc330f254e82d89b5e4839a9f8ae267b9365aa228786a371859d3847ae68713df98768a1c792adba39bd2359198224376cb9c011777efc4aae1c3d179583ab0952bcb5b1e8577a5c476189d3301bf87fd8a1163b81bdb4a8368934ba4867ae4dd03d40c2cb5f974a5c36a8d699546d831095e7b354490838a40900521da4a00d2fd7117e1060dfd363593ac11bd31ffcc08c1eb8806f249719751ea3eb328d3a36590919c2317429d0486266968cbc6973d483015b77eec543b7f971523589655732bdd1783365761d937266a420ef3b849a630ab5a4003ff09c116c1037f4576c58adecb5a5e0899892854b8971c9b76685164a14bc5c8b9bf212c6c7ab15b35e25a586e465ac05f3911da7063208c3df46923622402559ca963a39f003ac0334ab19d02ed58c990ad983318b33429acdc637a8393082684c517b75194506bbeb9686136a3c8a284c852ca747fb709d4533d133b5798b50c1e59f9e99781fca9f447340705c6cb7e2231e257f95d681805b8cdcf3147804405f30b4ee63c1aa9c367eabc3fc606306616eefe91026507780e6339b209cfb7a227596957b136e1cbbce15fb9a6fd9bc798c40f0ccb7651b150d281d78b3508939ba836ab719cc19c61860bd3c624827ac26639c05a39c88a1873204175bf297561723a16375dba51947b83e46e84899377411b2bf8b743cf8dc23fd2ca07d11aeec1990c42a7321ac6f01cd866f8719ef21bcc0e02346fc5d8ba3d3e7f1fcb52d37551212d647af97825a77f2f4b6a45ec1a579f9f83e89c025d8d6876db26874f38348604293273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 +ciphertext: 29172b06b0849e37c10c1a8a719b8111a2e5f7cd0b195e949d0f664220f0fece380d03ff20aae2d1f4403a795910536638f7de4b502d497bdca8386b51734a05dc23c64e5970ae9bb57963088669eb327c4238ba2cfaec2d177e5b199b82ad664ea184db6ecd35ee97f0a54f2f933f9a04383188671497a5592f4b84a8fa3e5700d28138b9d3c2c91d104a73037cf3ac5468460ab1df7de05a90e0fa6b4753059b5287dff997f0894825d3766176c2b9fdf767ba065e45e74b6c706e47459433140ac59663109de28defb54d4752147623f5621c3b48fc4368cee7253c128140d4b1dbd8afdf87b9d58454062b6b3262018e37ccbad6bf27f4f947a9711ced9a45644d3ba3b9d670324c639c9dbfe69c2d783327bf7a99aec3730057e1e1547818c67b0e96fd48d024590db6cce338b32b06c9ccf81ed967e2728306cd616d44884a2e079af7058a4eef82c48214e028bcda3b44ef696c1e08e441f28728e503465a138dd7fbbde562ed6bcee8f5a3742d23aa8c5ef32179a1c44bbe41fd153ad2aa57eabaad87fb0e022aaf3b19b1f3a649079b74e7a61e32128506160e7b5cbd31d56673764bff84aa46b99cf1aa3eda04191a769d5ef2d569fa4144f51cfb9c02cff06495f95ab8ed192fbe9b363180bf90a52c752f70f4a587381775544635c5a574244ec8a88db3b86ca46f30a481ae4179415d234596e2cd24ab966fbb670e9255eb1bd3c261592856fd9ce541be9a3b06e157c5e4e165cf91008c51d11ebb064de31e3f894d6d4d46caa0592df5dc0c236b546479119c842d3d52deb75f966a5d4050e01f7b16cf6b93fc8731e5055325ffda000114eb7cb6d7916088fbbb8ecdf4ad8cd229ff036b2a6a400ea1b375c576547cbb0ab91b8f6f4c71555836985b3cc979ff56938d9863c4b0b75b011ce70c1a60b77b67988237a2a6b6bbfb180d36981f70eee891b6c00ab1261e7a0db824981b5450b09cd96868c611f40a6e5ce6e12a31934e56fa334c3dab7515e7c185575b2798e2dc9c50273dac8bf1da90fd8d8d5272e5dd24b87f57bf47ab79c8094fca322e50fe3425b0c570764d95a7690785b7ef62c7f4d6154a898955bd19c808a3222c1ecf67f633267ff61e8ba97bb1dc0b648a1161dc2499beb5db7bd621f263884248b98b6fcc3d9bf3c4c4ea5a3f0fdb33534c15d84278f8b5f1d2e98661623ca1cf9cde7b8e834431ca82c4cf5fc2be458a1abbae90ae6802e6adbf6085ebfe11c1622ebbf2af755d8748478bdf1eca4059ade7275718a4df81fa74810ece57e38f10bcc954be61720da461f86f4ce2f3771d386d836bc7c720255dbf7aa6455170300e7ebc2773dd996859b53757343045178c7893aa36e4f231ab469af10cee8cd17b612c6347755b0e6d3a6aa451b34df9349228eb5c76e0ee3ab37633917a4c20554b2940fcfd041ad79c19634d9626ac3411c76e74756da3109062f04af2430de6301da1734ace93717b51b2eb1545d275d442edfa35ed905eb1a99dbcb468bfc3e5048120 +result: fail +shared_secret: + +# Private key not reduced +private_key: 5e49938e23a5c65c89d4d4d917379cd2a5b5d32881a6d68c28b48a2e356de63896bad68acd4a474c0cf98113afb34e8173ac4b1d3f55136c73a00c7128b59a5014fbf4a3aefa0e5fe01ed8b01cb702dfbf659763722760494e651e3a964326a23b038d0af855f307413236a3ef95b4434ad164ba6bb27a858ed9b22b4ef3458db7e559ae9194aee9945dad45b0a5e85bb486962dbe9d8c5fc7d4b473f5f566f2779ccd7973964966592dbc0e93d7457b9af5844870ca580eef3950bd92ed05e3310b970f5377fc9de18fda8517b5b16f3ef448ee6e3a5a5de7587ff4bf715348d3b938f90129ffb20cb298d666cea3c5386bc658c5c1de9673857a3091b4e3cc69b2c8e46382ac97a13a9f32cea47f0b6f898a84dd0f78bbbea7863746c03576231b59ad36e0e79a93376eb6f23c63eda4d4de06791c087f42abb7c088ad15c54ab23c783068f6ccff63d54ebf63ef3180a79ae15aea1fc3ee116bd2a974ca7025ad0c634067e4d82a835bd274a44b2e8fa474fcabfec4d108570c13bc3137468b6d37a17d9f0d0d69444cee80bf822a38fd09bd3053a6f8448c5b0396cdb76c89ba1ce3f8bbf902d44191ad342ed5acc88b72c3baaf1898d561f95196f5688afe854b4cc348e6d19f4a50371f3c175d332fe471161d5a086cf591c952b45f89efaa90d55c6c888868c30d75291435176cd86edc5d08cdee454eb8b3867b8a93cc9fdd7ad71b387ea3363074e94363b780eed6ca6ce3f6b585980664b3ad36b83dca517ed798e3b14d176e2806671968e82137f157e8eea65d992bd76876dff736e7e63c0eb6e353cdfe05b63bf5ae02a68c3f1d5731d8af5de9d982bdf716ed61f8d3b94458e15247bd23137cfc165dcd5cf6d065a28b84cbdf5be7b1a9a27046898d5f9ba53fe7502abbafd68bf6a9dd2e1d64a7aabd89075891678e272de20feca2cf7fc0e1d8be55f4c0ebf7cb565b492daaf370e934833def25b5ad668bdb90fb31dd9df4e51f3be6733217488788a8df5226e16b8dfbd9ceca19ddb419b7859624f4f6289f7a55a2126e5398575755b85360bdaba159ef015e7863d4ef50ae871dbbeba42599e8e54e8f4c6a55ffdf5125c596ffd99439b0402794b9fa3a632b4c789c9cd56e37772e8fcf066c22e4b12dbc90ff0b4d08cb7033cd7603557ef6dbceedabca671b7b08afcd1df6a89ea6a7dba65e145b9515068a15f7d53d5a4b1323cb75a8ad0d6ba3885a7e7756dcf19637c1b6c3317f558819eec2fe58484c6ebfe43b4f0ecb5424bce33758ef1da439cd621dafe7979c958ae89591f69d54c4a71719cd4aa76da6ac4ee4b472afe454137e8e65a5807d55f492eea0788a570bb3723d43836205dd2b26b19dc696f59f452bde3501c3bfc81766dccb5034ccc29d5ce524a9d00aa458ca6eaa17d74cb68e9a84135cc08e81832748917c951a468fe71cd8c1333de71b64b7bbe58255c20aa7b2ca8a912f898574568e2779ef8c5e7426cebe2cfe83401cc2b0ed8fa66afa1135a5dfb9a86dd398545eb61efdf28d2efa35a889eab8a57283f58a57e552ee5ad243f8c7edda3f78a1cb9c836f3d4ffec75ee2fd927a6fb642fcd694f5d964af46d98af40639a611d4e4e180a227ab843cd49d4970af3b68c255512920773abae9a2e402b154b8159b63b4885736e63632313b2f99db66fd4307d411a66871c8ec859807205535d907c3c6541b283824861738acce081a14e8047a63cba2f42c71b23157c85a7763d3cebfe93aa7fa0a083284ecb7c4dc16c8119b5d90546a461a5b744b1084f120bee2b548801c381a9d561bb0c5c35336601d1cdc310a610c8df78de62477a6f26dba6038ad04371913b831c326c0537cae530469292ce41c40a81b92a5c04d69eb0303b4b38a5cc45fd2b0ee90cff0b81474d0406c8b34b34c1efb596a704ca4893949614762a30c54846023dc3a345268ce55c0be97139f5f733664a58b67656ea211a87de01f9cd902a9295355d13a15bc044fdc77c4c53f671a1438e283371b5db5f82fb0d789e877b6820771f0ebc64da864a01caff73c4a42b5416bb043e29c7b2574c6e214a352f4401d786b4d5351a2559b87ab00ba84511bac1a099b1b33e8cd45da078d447b23326574379dd3d32ddb22c6a4037fda719fb104c85f0264ba4a9ed0287a31a2af6d58291676a37c434ecb234e4e1c648fa0760da57abe45703e677fefd03687415132d03252291f02f3901d20427904511f9c11a7f07041302033054605e97fb719a2f70648a2c30a0b42899b195ea8e6cc96610943c3276698a34a61893ba8770c69cd55f1bc0f00ca0e04177d0469c4833fcc23a6ed339acaa91b6e081692340f53cac66af5a6bcc2391729ce4e1c88d5c2610b00454fa21e8faa6487022f19f2c81d5452d5170255108beaf3979ff9abc2e04c8e3669c6aab80e2b6464644ae2189c81fc92d50cc56039cf5de2325ae5163a1b63652222aab35e17430d16477537f867ba4ca0e9b1c83c61a562c6822e61bb1450426e9716a77c1934ab17ec69563b8299e6ab371d996849c8cf7a84ca1a9bb654e1ab20a81d65314595a52ba18076f8712532a81b00e19e8734968f87c03fa4763208862d9a3ca648582482bf0d5441fdb7c84ab237d9f8628ed2001a501339682f9b8aaf6606344b95342fa62e782c1d9560b6ad55aa332c1fd533a74d026a9c9757f0e91bfc96545d0b6477f31f95840ff0a4127b16c32b635471480523f93017577513ea96159ac60be179d3a09c5ccb6df44174de866cd7548339d314d160718f262edf32382915197bc2ac6e3a4f77229e22dacbdfecbe3f4b72ac6bc9d9354e7ed2c31ce7acd7f3a2c8b9abeec00613b1600c8992376b73f8c245ac9841ea06409454b48d8c3a152bb8d6168a3fa6423373651caa7aecf0a5971641bd66897e5991e793343b5190bac3107eeaabc71bc34788a345bcb9ad8a45a50a1dbdb1846bb76205b06e8aeb692b4200a596524954963f01c946131704f6b181d7781772ca6365824f6c6c22a1af3328a2c8978ea8d7c38f6a00f7a6b3a50c2507f103f72420bdf98dc19aace30b792851142d8b43319c93ccfa966d71cff9352f25fca9e8a3064cd96e42e9a2959c128fd532902419b81972838532cdfc08f34541459cc68955c9c2a431ba5126c9bc08039ca45533ad8108beba49bf8d56bd44433fe12a6c55c41f3cc20560b28cf050cc1f195c5e817d23d95e105a13555923cc21b13c9e46d34182974451bd97b6a3da440de6e5bbed681d6eea2c6822b361019afc8517ab7585926764ec7acff3c747479e837831429b97b7cf49ac3763bd9ebbe0a3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 +ciphertext: 30a4b1190e0b9a5cdf304ab06e4654e9c02c055c4b487884c6c77caa6fcd02c4a01869738f01423ee82176d321a553889d4659dfa53bac9213386dd87e00d0ed8c763d73a4909b223922dc9bf600a30270c35aaeb8d6e5e21f47e893c28380f70b4f19114944e7413f657927314114915c0b7bf7dc289a21f1c6c9b3079342364899565b604348a97aa5cabce2570944d128d12dacbfe2dfe3b17146892f1956f0cbd14edd3d65531aacf5deb667c48c5c9b76f83238c49a750552bc4740ae517c6b82fd2444d9430f3ad1e4790f609db80727cc4db6925da917789a83989883847f3901f428d93ced25ffffa87e4b9940bef4c3bdf2247d7c17fe4227d8c3b5f9c3d99edb5f6bfc6c91bfacde430d0ae2554f82e0b53a67a8822deec1d5acd054af2869b992492726f2a7c7d7b9ea0505153d878b301db69919f39640e3edc5222bc98c68b844e7454fdc6f3bccc956843919a428b2c882675820569381bbcc03d9cb932a1fd616a0d593c8aa9c4119bdbd9b1dcb046ece8a011a91056a11d2b84321df7fcbbed5cd25a236668e5b7fe2adce9e82a9cc0039501e57826c46c37177c8dc057d74b190de9bc09bf2dd47a679adcc2a5ff518abf5c8b33b95e95445c778fa97e5dde581933a71bc31884c5b515dbec13c4672d3a5f04d7930f55512e951aa8106115ad291ca9eee526513ed9872b746f3057a2d0dd6255aaf3c16a32b8de76058c79001f7cd23dcac80fb2561eaab3de336d913802e968cccda34cec120f0721a9aaa2da3c36c1e372c382fb194889c41d680f6e1faff0c1ce8627489a693d5bded36acd30817aaf860c7691569b6549c9951e06910918b894317df93856d4a13bb52646e44a3ddccd04d1d9bb5c472d11134544b2b2bdb103706e7a858a559f2e9f10a8b3981f8f858705822d4343a2aac48d9c534fc211be40ca907e1c02271377e9c544e6036234a09387b457d4c5749c80360a403aadd35ba28999aa679a4009a861ae782a614918c455959329d2bb1d91d7503f2dcf0cdd4d16de8188ba669f1dab8514d6ea80f9e7ce3e3e556d3abaff2fb2f956b081e8ae1bd62534b0783f74c7d7797481d2687427b41579fed7f2194ac898300bcbd817270bdd5b06ce0bbdaeebf60f6a308d3dff2e74e521453752974ac951aae7337378c87ef11028ab476576aadd3efe613118c9e537005969676d4cf2b8b84bbf785a7ab61ccbf29586f2c4b0c3d3a4be23aa92af35df92dd23e8b8806acde4bc187879d29444e2b1ef31712ff714072f83b028d3f2cf1aaec3020865401245970f6391a45fade62f7f22920b8729428842e21008262c091178b84c3acfa870b43ba47f8f85088fdd326d8f4de12ea21c19f8b5fdd7df0988b43511ec21a9265c3a23ae79a3938d08404cd8105e3b039cfe5714e7060e6444c77296393c6bc88c3df42c0d644781be5f232479cbc5a736e5d403b190cd6c8d3f472255c02a7ff0505afb9942f6d346fd7eb717f5beada57293e3ef9282ad10ae9a3cdc3b04030b3 +result: fail +shared_secret: + +# Private key not reduced +private_key: b8f488e6fdc30b5cb5063ee5f097a6f21cdf6d5fd6522a50492991839f51a189c53fd67ae08a46769da38099994bd5a0b61d9827b888f64ffbf6eb9c6d75911b2a721d9f905f145514b3e38fae32e5dac5296ee60c27ee80c7f8a87b855a78ce550678eb3dd44db943c708962c25a86c78a29cfa801bae535094e98addd563fb46d2a9f74f18430d66cb6ed9bc89145cdb36fc18d5c0967d3e77ace4ff34459feefc144f7733c59bef3c8a6c24b5be5e71713bd74c797961efbe7cffb58b9ee1ecacd1a3f938e83637fc9b59123880fd26a846df6de5fccac29657cd2c8831ba761694f1b286e20639a98f13a0809d5c2266bce108f6d1c464bc3de6666af817c84369b7708f9756420f6321fb4c409531cb1a3827c8df2c94b1c4d36133cede69b8c9460fcd46c540902b96eba76a55e3bcb80ad47b2e7bd928e6ee09ce31fe97220ef532e7f38fca919a2b4f718674d4558dc7095f056ea20b4aa1aa18d354ac60fcc8ca250db2ef83f46514c41cf3945cd6a425959d1bdd8b51e43c02a834df3c8e085bd4b9695b2d25d0e9d5761e86c95c8cea0f1f783aeb6f19ee4e157881651fd4cf5a7a2ee8e5797a49e0696eea9d448d4efcb7a55a280ae468be96001cce6a56796218e00828be8c34ececfb82cafaebdd36b1945ecd8cbecab80e4cb887bc6e33fe75dd36437a3222f56bd4ed893eec360f0bf30c13f22523f93aec7ea6da408face2016ca03659791fde424143ee5ceca1b54af453689f8ae8e9906cb19d83ee0ba7abf0096999fe8917e4794c5be5659678dcdbc8980b76a4d5c5b8567d567e9e775afd1ca5f612a9af1ea7c77f896f8834f790d989edf3781588c10a7c50ed25821b4abd882370aa74bf299975e9c54120b786f69e7135b69f3bbf4465bae34dbebd3fe6ef27fb38692b5f3db5cedcc4db863d834c9abdbae738c56de7ce03d3ff334c9e2567e0ca791175813a8382489b51015bcb8ad5cb386f6dd3c48c756dd6f5133bc5557f6afa7ca4633bbb26524ae968df46ff33d7e6eb9e31df1754525d83325bb3f4f9ee41ffc599aefca1da3770f8edddf89807a7f7782ef16b93b41fe456307a81368f9ce7d7af349ad90758bace57af3f353cdda444629a596ee64d10a5881eaab06188f315efe89836d2cfeaf5a926bec7d57228844adfd3e10aefe0bb2c88809c47ad09c46624eb66ac6a023f80efe78d38e73d6eb9ba00f5984115d558964b2916ac04757e968bae6bc7e5da4e99f22a81f4f3f47b7caebbe3cd9bdbce68c931357a568c39aced0bd193337d95e9fddf2e5fdc5b6bd8efb14baf9047dfa601b9ef9d4635f985a393e4408d64be2315fddab3f3c6edf35d4a578a63cf6c655d55f78397e7ffcc0cbb4a0f53b9a4ad0888c742ccb474cca41bf4b51c6693767ab872586da6b470cd0dd76a038deccba3e229bef1fbbbe33b42a5d5f4534bd8eb9f6469c9822265e50ddd633efd8b0177df0c1340750ffecdfb593e477853fb383a4b683c78613999ef647c8a4278dd8945f00466deb133ffe173c47389e19b39f2679eb015649253673187f98828effaa1ce68fd7a339a9fce4ff7e7b6e797f616c27d49b8df377f140dad654ff0db93e5a314f9a6cba4e1a93cf066b6c6284b85c1ced4a4b17634c2dd8c758ee3cac74b2402460d2fc12d98943de4dacb2f5912fdc41e8b1886f38c6619831677e2a32a63860d2a1e9b994bf4f9cdf0c3c83c5b044c14b83e57c59d55629a9704994a4793a7178b69ac1892a578802a69d22d609a7832b55e731a65a1f29753870f8f6b26443824be227f578c6d97c57e570864092a66c8184ca58b1b8f89ba9c2a3e7a17c1bcd851aa552ddbe301f2774e81397a57247362426807f370ff2b7f6f7b1f5b83c2f3475cb225b71ca0750f333d72a434c88a902d542cb8f50f6ba8ae5531ce60c5c29057c2a995ced8a34cc1db7005c478fa174874bbb82981107faab591b8c9581365e7205578c55fc06b5f588c65e2ec700e6473752708853a8c9a1acad3c08bfd67c553b9c603206a1d26276e66c53a166398db6b2e51754e2a67a54902cd5839b97c66d2421df86c42c7181f89d2afae41bc116212a7492688424a2c81b85bf616ed686e8d0183c1082dd61c1144417dd10cc0e29b3168144064d700c2a295c1042ae40848fb07abf2aa7cb2883fb19454a8711c72670d8c0b152dc9cd39a108ad9348089754703a608c0b544350879ddc71c09051f92ba755717403130dc4b95c19d3510363a5dd620cdeb1918af90dd1267aa9696eb0334810b9351df981a0749a7e0c253d399a0115ae515c97b63a1b0ca42794e00ef59912a357565b427dd5aa54b706b0df583e2fb68ceab61395024abba0a8ba4ab6bae958d9c13eed40cd20978eeb5ba041b837595427a644a850340168847acbb69b8d6809b849a7d6a6b67c170dbeaa41be8341c6977dbc025688244396503411148458aa2800c44195211a86763c54e45345ac258541926b4bced6a337df4506113647828b2d4e45723d68985dbc2772a6723a032bb3b84a140a95dbc480f1495118238e74376c3aa78c25e3703ce121e8576c22ea29119b1eb5b946d261cfdc71980af7961961074584a7ed970fef29172cd98a3ea5550f994f5d763b00fd37f9c0abb1459b825c6deac0b35d451a9eac64b03c3c0139806586c8e0f63b8f77aef5b207d2615d5f296894c9a1eb0b68d0571351e18a20084580d98aef13bc4ed039d132cf015bcbf0270d5b971f10f581093656a091af7f3725a2e16c8a74c541345ede689321a436ac488b23895ed3e81fb4f25b83964400ec33c529350ac29f4876128c010ca9c4b6d3e47d7ac798559251bbe4bbc7ea4ece0b76e9f519d819b286f14fcadb1231067bcb113ecbc737020b47587c491fd26541f47ee2b6bfe6908c73ebc3715c58aa93484a5c2692598b4945209d47258441c2cde253434a5a1edc934c9762b2740795857e255921296a8bd4542f82bb6ac7e293f9e4b7890810a2e46511e241162b2af6e38c2a07b15a38a494f8412fc40d60847f957b7839e78936b6c1ae906089a80ef5c58e2659be2643083922b22da53912055f26fa7ccf410abc42cf21448290b168cf7c8ba20b28dca959acc253bfd4b67e60c0c5f82728382c96f78b48b4a4c746c32c019bf8c3202c46a7a2c9c401700eeb1c013bb399d9b62eae9a4e68e4a4bec7b7fb92888ee9bb5f52aca49b2e3f6ac6b72b2cdbf2c755f85fd14903d8712fe0bf82ac0b06aae9bea06278c21e6257bc96af0379bca07c78331bb014bb0d6489c14f5411051f9667aabce54da7a8deb73b627e3873d9390a35e03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c +ciphertext: ea2ebb121065a8def00bcbe87f29aa3fbbcba6435b50a8f16958f1bcaf938c7cb7580d196069a8455de58338736ad1d72cb7332f605349a7542982e525c1ad949f2ca7d3c894a8947d122bf8c55667aac75c6d64ffe2953b49a9ca83af87742187865645af50f1aa12042166c5b4a9262ce9691e08f9216d0120aa227b1875e7d27a28084be0aa60f5ee84fecdd7f6f1fb6f45674417cf11c8c90646276f76071d75fd05ba08eb5e83a0c9e6153d97c6456fee5640d55fe47d3f8b3c162962aaee0e15b045e9d3b319c61177a3e316112388af05395649329225b8c7576ad0bdadb78a81f1594ba0c163edb95040c1249a1f43917629bd905bc6a16cc21da6e9e16637392b56d397f4c5ccd814ea599b074925367cdba7f1667ba4c2ac8eec4ec976905ac46a45453830d6ff6fe4d3bd61bbb91fe99e3b5702d9223439f6d91dccdba1ff13b9d31cbc47ee42bfab33e3dc34bae64435ed2fae7ef112f28fa7ff754c82b9082aa944456e23ae2654e0b94186b1bb697d610b87659805b4e5a4e7c043191dfbce990c54caa0a6ab536a21fa7316f22cd8df0fb4532c45930fac927470b4f7d7353e8d000e53687ff1b3649851454194aa3acbbf4e1a1fc549d6a5c60d08a65cef540015643c7d6c1d409a093d7a796f57ca0706ca323bd3e0b26353ab1d7bd8ec8dbad952f3b85388b100367d6989de5396e2ac46d85b402094420a1bc3b0d9b440b49652610be14e36a35cf6502689ee03104af750f7f6f8216a8080298e260cfe7cc76cd84a4b7b46836eb78116ddf30c4227b984db4f482ca7411bb41e5b3ad934d2662bfb767be82b95d31f7ea00ca02d22b22b9c8868b740ec66bb221d4b401ea7cc9112680b166d007c3e279fb135e1b8ad761e2690b72f2a8dfa6aa844864e6330c433c287f246c7269ddaa947212c903d8f08edf7625599486321fc1cb9df6c896e4f61e4373aa58fadb2e095a2c23fbd9eb507d7e8c622833851cefd0ed94a388f2772fe8980d46822ae977b027591c73c113bde9591cccfe77440c476560f59255d7c7e1a566a2a41479b6168220efacd1a866fa3d710eb061412538c8fd95d9d308c4e3fc21312b33a99d7dd270d7d0983b3e60cf72e630118bcd3cff1ac38331857d75736c15537fc8e4cbc01f543e8bebf214b8a45f6b6888d9c551e0bb3dc84d3d4a3ea8eee1a453d8a53f06de71d127ac7a370a57a89ef88f5291fec70308e2c5fba82a2af93dddb05b135d7c37a04e25822682dce56e74ce34bc5b8849d5d40040809798ca4ff3b0fbc999cebe11d3d7479ca18342c82b27ade902e5f6070b122ecc7037fdbee985fea2a04732ba5f85817e19ce8cfe62d86339fde475a56f7e5f5b1f1f1e7c18829bdfc2658be9f603d44e5a4117e2b274b9e3a74dd2fd001deb4f0753a842fe1ff41799dd77b051851e8f4b8bc2fa53dd754c872c4fac00c18768ed6f0cd285ae91516e6288b18fb6e50fa88c7b97c6b898f3a6e4776e1321a9c2a939224a4c903ec117f84518f7bf48990 +result: fail +shared_secret: + +# Private key not reduced +private_key: 1e556e2047c1be5b68fb2d4c0f36add1b8c00e6b66c19d695863573308f339deac4686929e4664b62e7a784f99e07d822cdab3e06c5468d8be7d8745f7569e595e317d6b6cea79d9c70b72897395c57494ab2d551b55d1e468f5028f60dd3e5b71f7fed31d49a92bd1665440346ae02efcb0ca3f9f7dfdc619a4ec9ea7a1651cb0591c53e804987395760ca688dd7c75bf3bf55de6e8c168b8ad735876f9d66d7f75f7eb8200a7dec4b9c36e296a7bf4efc8b64c35e9b15473337b4dd3dd6f794a0aa8cdd7ec65577085253220869fb2845358ea4d73ba89901f3f7f0cbb58ebfdbc26a98a5b8299c4d318285a26573ff928bfbf75915bdd518965bd346cf072157748077c16f562068be54ec88695ceb71e2d624f19b62f3d844da3dc91e95b28173f9df878da5d7fa368e2654353f99b93ef9ac6f625d3229a72558570c9e5f13db6834708e55a97985a8fe9df26dbdc1ff6ea8b569c894e2ceca7c3c86ccd664510ee3e5c4556db3c9ba354eb38ef6ceb9c7fafc460ed1373aefaa3d593b7f317b2f0f8782b76c18fceed0e8d41936f7d8657bdb0e440490b6c196797c0459cdd89eb82c3f9c6439d256dccf386f1a35bf63b7b46f62fc24c294be8b36c1184e8dbbd96fb874db45e6e889b3e92569c33ee7f3eec3c5b28766d4aff4d06475bd666ee0ddcf0b5e4d9cd6309934ce5ae91805a38d7d69d0dd9f6eb68e10e9c5bee187d0675b36af68f6de7a294fa7ca80486d1e561d28c8788a75cbfc7e8bc84dd131a83f9e64f5b484de82775b2b8762dd568e95f8e702e3a198a8d6b2eb9ef668b49b87e8ba97ae468a379968fd28f36c95c96f9c84b23296d5bafe0869c5df064f1e9c3c2b65975a93aba3eeaaf5d746fa679c5ea4df1cf93ce71a8b45fd44ed92bcf44ede72a8589585b9cdb7baaf114ee8187fb3796efff4c60fc5b7e8d6871382c63fb3c7249d3d59385c7d856cff2a3e38a3b30b7be3614354a502c7bfa3fd76e0f8affc5bd6d43706f63d4fa2783a96f552a6bfdd484718815f9eb33d851c6d91b69e3984fe02f76f68286828fc767931ceb4a3bab3f14bb159dba32a4d1f8d95d347b3450d6cfd2c8355db369715fa4f3884df8ccf8d389ffd09352da09d33b6484f8553fe15336a78855107df3d9c9a42034874dbdbeb25a6a4517a1add7fbdab35294fe6efe7e71455b948103bee4fcb7d635723efada4f7a3dfa3838e7243143a7ebecdf5ec83cdef059992efceaa37835fea57ab04347e86855e0ebbcebe8f8557ae8b167b5a4c7baa945560a276ebcf4dd8b6c6b23c4e7fa8c39ab55791f7d3a3568ba290df3ff8cca8f69657a2d67ce23465afb4b3517b5ab8dc3c81dee78c6f617e87e3b37d21636667f6da47268e55faad6a1f8c93f39420c24e3730e5b70a3b69db5edfcf4ffd748c48916851d78c8ad5c5bdef8624df336010f7495f6be5c6a78cc43b660767cc1e77d5b7396f31c8af0b35c9826c185569255fbbd80ed533767c89fb43d1e38fb0b9b348e03ee7dbe571aadc1dc2ecb58bee71046ba9409920f08a4a7eef856fee3c427b2ccd4e93d1e781d06e4462f9191c6d283eccc3b05c49316c144a8b21e494d3deeb11d58391bfb7bccb3a95a0322a62aa889781c4fa3c36f765586b2c2a20cac081cc08d06ce1cea6036463dccc34bc294a51f7b1a5dc0778c143f57b9ad2c8b41a3b3a7e3317fec687f50294158ab07441c119c299d421b3d6cd62019b4cfce69c9dc5509856b7cf087b66391793e7b2a77262db0909861b46b5d4c23fbf134ad43622357a81cb7c9f5ac9cf1c190b9f711164a9cfa4892927364d800ad7fa2888dbbaa21b689d4a20fd0ba43f27386f90026322705b0f1069b32760802581231c44db0a43753779fe88f3a824f2ed858211bc172d49221931c3e86188c287a093b1eff20af18c1004979221c85c2ebd5700473913d465359ac18deb3055075386ac3c330887879d5ca762b6b576b7f2d422f23889d51788cd84b77ae879b1eb7026dbcce20cc94f7857aea148213c1ce857277a7808857f47e45cb9b561b80895142463bcfab6c69a7712acbd64a3b6721aa9671aa934cb0c1bc52b464603779fd6ab10d57cca0a749f3a1889e10386cb7ab0bdb86ccb02ea614a0966a0ef2699da6b7282713874f36468c2014539bc804911053d1025133975e591e357a8d88a1c7138a200543a90f4aa250f44ca61870d206a236d1917b509638fb6442aa7b886a54fc21b7c40a1b7d027a09863ef94280c67a4693d28a0f842ef2268e0a67a11bdb4a18b3c459e11e977a5d143aaa82b80520f72c50d248073746662b78ff685086632e304085e9c7050a754b302338f7a2af0a223e45730de36074e1843876a6b1cab85e0d984ece18a3420aabf4d740f6039dd183c57279469bfb9f26fa4f6ae59db60532372b729cdb8bc8b26b9e511234177af2717538383bf2103726c79d84b4489d493423f7375c273a9558611b60c9fbec197047566ae9411637ca9dcb956962354872803891c728429fcd99c02ad020c11a2f1aac40b6fb13fd6c8508500fbfc34d752080536c150b402155e130c3aa1a4e914ada0740b5178c83a67fea746803a35c36a3cc034052143303bee180d8da097b24c89fdb16583b972a50c89b5ca27dd4aaa1002fe2316940a7ab294b02eca4c69957b3d02b538c239f18a342aee0c15fdca57d28930a62096567801f64c3452697d5f4a66781975b440ab3b27a5da41e889928ff41402b20b93f992db6d4216a4a2b169a6952816d61b93a82c5c0d5923152900be6b9236ab96d076b36d406b06793c7c8c85d69f423774c4a0c143e27673cecaa38c66c1dba02860cd305214a2637a90cc84a7aa6bb919e73c06ddb787b1b9117a2c6fd577a7eb417d5a34922767bade412bef212694373401554211c1213ac7bd1d1cc61f40fdbc65b89ccb3383c30476932d738b181b64e2bbc9508268c7061a4731c659d18749ec3b87c3741d1660d10978cc91ca44df588c8a0a7a68670a003ba23f03ae733067139083ed33c98dac4c06331e90b59514c7005e27f179a0ec8517931b678ec849789c656b30c4a736209e70151cd970ade5557f9e6872248b94c894220c0bd1b6a3a0149c1bbb8ba4c9337aba868b78199929044f44018fc261aca4bcf0f70cc1444411fc8cc3b6b7aa7ea9f8d06a30c7a61d89c19e7c50b84a278a921b74e2936ad07ae2b17344356a8e640a9a1392048cacc817bb0924682a027f2cf6ec9b36aad177faedba70e26db0e2958e3d520d23b10254587c9a546b5c0a567855039f6c1bca60414684e7bd1f8eeb7913f3a1795ba4bad4c9f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 +ciphertext: 5be4b5826337373eaaf9e87d53baafddb421fbb420412bdac34c5a4c4a365e7815446854bcff6f7f793578f7a8506b97adf4256649e957c6f3dd74338be6592ceef2aab2500ad35ba05eac5c08b70f196ea618f20b05ea81b9fdb4d76cfaf91d6c243e0d93d315a7c86c420add20f23bdee5bc67421797216a78053bf7a7f5258d6ac69bd06329f473270c480877cdae2784f833356e388cf0a0bde65f97cfae05bea5c149c9fda694c5a9767de87d3c9c4c7a3878fa0c2355a78cb32a44d1b80a83a2fc198f21681ff05556222af755343c735622feb9d4df7a561bef9f4a5d3fd47cb6874ddfece4870da971425aff3d8e9ec8367b97395a8a994f96695e721bdfba993af105d365b42b29ea811da19d4bc3c288e1f768102f9eeaa0a3c7a5b5efc67f3d7c70dff5df5883fa3a85b60881ff7f37bd2b73f2c160e0fda40ca341868f7b630577c4c4486b96004c980be59340ed623b50405c5732d4749b37458d0b230e57072a97ceb2f7d236f7bab0792a3bc151a786f77d8f266dabcf68cac9c89515cf15dd262a0e594246b3568ab250ba1e874f52481ef5d48affc7ac10012267e19f6eb2f57ad7a16da8dd29e26f6ea83f3b2f732e9ba9799672ed967d029f0b66f032c28ad3195f5f071e0a91e21afb721fa32eedc62f80c5dbbadfb37498cd1779e07c0f28774ad21e5e7c91b4b9196449c0773478712e43b6dad9639695d99355116956e180074f41032c332a6445d97ef237d89cb198e0ae225c13521833ab3fcdd59662fecd184c6543a73261332e713061896578524726ef15def3cb125224d831352c73d731c8def727d1db7dc668413d2d99527340f9c3d7065d93cd3f6bdd405c9ce2f7ac58155b4009718199c3fcd1c5bf5d8f7247747b74818b425839e9b7e377769c36e241580a17437557d7818f38797609d5c66fe26eadc06611f3edef762f0c34bc729ccc9cea1e6190c57d51d872fb278a6baffd6c6f8a446b707b707195979fd10f84d3a51f7734f53633c83ef6a210748f382be3edfea8e01f247eb7700644ce9e80399564839b4e8d8ba34ceac158b9664acd9bcab6d81de3638cebe7a6035e0f3165ff882e2dc57b1caa11c9d111fac396b45ccbfffe67c37274d4859177470a3dbac95c69061c963959d58c6c8dd219c360361380d5e8bc8915123e98a24d594e2d8127e918fa0e41086ca306715859a80ee4e547d11361fcc43600d79f312f8b42d38efd3e6b008a8e5bdd381cdbb6ab046ab4c1352c38e16ef981f0b0f3aa1ecaf84e166e68492aff7ee3132d598cce0b118264753b65c39d1cda91d487584da53c9baf49c249debc9de95a390815b226503443ff147b8852dbce76c2289b8818248b15b8c814bbd2b8abc3be7001343f82ca2073f9500ca3f2262d5db43fc97deadbc9aacf0d1cb941773815f83cc24e0f0a17f84d1029027c08ae735807fec4e3735c8d3fd790f45edf2e4a80b984fbcc544c118686c8f0ae66e3fa50cca80cf858744f330f6dc5dffe6d215774ae8103 +result: fail +shared_secret: + +# Private key not reduced +private_key: 244cd3e7374a7157b1f1ddfc4d64fe2c3ea45badfd908592f306f1c347511d75daf8ca8932c7da3563ca126391f178c7c1477c9af532cf1897de99bdd8fd7c0e3d4f9029dede5967899ade7818622cd76724f77c4d83f48bf679567f6afde4c4e53dea21ea48411d99b06be96b4c698575d94b44f1c2c4f9cb83a99b2a7bf5c784117b9e8f8cd0d9fec801b66f645dfaeb49822b9fafafa445f1fc7b3e76cded3d91cbd474d10ccec25539a658a1a48b669735fd2854fa36f7d578c8e08a8d45c11e8468e6bd05c664e5ce9440b88e0e847a15ca747e9990d995cd427fb5933b58ff7d62b97eca02f539e74872e283abee046c7e15372e58455e4a6de59bbf716bbb634e7b6e56f96e68c501e4d07e1a97b7d970b5bcb8a9586fc42433eb457993e7b15d7c35dea5e76b19d65a1a3f61734b9d453ff1bd313dd8c0888a92f637dea93ab6eafe5e9f7cf07ca9512b4e364ae6591c578ad93639e795cd00339cc5b67176f771fa6c5496cba3071b67ffb88b72993ecea38f4e8f44d94676e55ab3e484b0ad4776be5ba4a99766d74ef8828b74987f5abff8a933bea697b6c0a27b3b6a2fe607288ddecd3a4c144cbf1adb11886b224de74b99921b29f0320ba51513fed7d536f5b352975697b9ad5855cc78d7979da443a06d443d52b4931c554ccf03b4374ef13b68385e2afc5f87c84e13b8413f804f69f9fdae8c2ec8a15869905b2e6fe295f632fddb19b45a4a0b51244be18eb358435b9b47ad525426ba232439cfedcf6f9be64e7f901cbb4f1b275027ace8aa255f5e7d53f11ce750894c886b59c9ac43b98ecd5e4476056884abaaf46248892c0c7a3ab8425d77c178b47c8cb5f62949ce48cf5b90cb90943beaaf64825a7658c5edbef219ba2f6d9eaf9dbb6983589f1f8325dc42da5ffc73dd452d2d8b23297387a9b77ab8b89ba3426623dd5cc35568bbe487c335fc9a91ddef93d807ab73b4eeeca3fc0e398a762881d2da7d558352d7b8abdab79687e3ca3db890371ffadebabe39175232b36703749391c9b772a7939696f972ea6c0c9f387fb4f3fcbb6030f83d68c4a4470db25c547f7173376704a6e25ce2a69d6afc43bf539aa6afedf81d786336373a44147b1e943a9c0c7d8f995f61377134fcef536334aaaac6ef14ddad6a42febbfd6a7f880d7dfd9764da533d5b24dc7cb253f59fac61d273f285099a0ab740093e78cbbbdee9fe759a0ee6e106c4abe6d6ae5568f7a387a086b334f7aea509f349d678aeddc26f268ca7696970ce4eb1c6ab8e28fe5b7f7793d6bd9456eb0e985d67e64f795bddf07dc43e09f8554d81011a74a28c976c553ae3edca49d8d926f460078886f49a55475c456f2bbb8437df22d5f5634eaad7ed5b4aaaf76e3357c1c9fd5efd9db23a783f19b1d9d594e064b09fd8e5bd43b5cb8b9ac43c64a2bca446bf35f7bbb3cc0a7724dda2e45ecb4ecbb1b688ca217a5010cfdcd38bea0a2c4eb79775eab657425c8b264583b5c37bbcfa624beeaf5575571aa59960f3759adf5cc625916dae49502766aa06cf310af4c9abf099b9677bb3f7cb3e7e4afdf9eb33993068b023fdd41156fd7a548f4bb6b435d8ccc23d506709f4c7b9e4d5d77fec8c397304996ce42773532b2798c4bb8a987e57b41b820c6f8b2c64181873bc6515b0c810109890b8abd9bc650f0344e3e7a672e269547aa4bbd0baf9f2b2f3b53b1910b255f7cc6cf0394ceba359685e9f6c77ddfbcf0217611d076ab2140a8dc58199a2a235955b69fc2520b192555c1bed2777ef623760cc71b0208dbf2a5d9841a231a60e2516c5ca3c6156a0c0862b54c311ce2b6b3f442c8082348833b193cb2b22d252a9ac88098c704d83f217ab2a8799f031227b95e1fa5d1a6410e3f025485338fb8338b5c7c4c0f6641b71644f11124b13c2dd21088684035a66a4c4451b5f66c9d5aaa7ace15eaaf03497ea2e1d693b77a4402dd1943e9c68cc642997a44d2f86a339c78912e678d0e314ff162c0e3c9ed8eb726ed910d1b26b99061c01142380e5074b5a46505863f6287dc18422b323c89966340ff7146fec18095147429148c24718301c106dcbb5a1b644e5a26ebb566b504a9b2984100bb6c40b45286d4c2841d774dc8915839c32ddb22adc41c0197431bf8c5f26c2329e6b2a0efb2b0d872c4b8b125d997937236caa455389c60f9e38ba3a662ac7349a5c872d84a353f9710c6c74463f220f37558458d68da5e67f1130cc5dd5ac4608220da2b8c9048bc805bb1f6bcf04379330025ca86b42cc361baab986c32a9e266bb1fa27552192a56b4b111564646b701dc4771b8f61bb5d41278a291920ac1d01649267344732a85109a3cb45b7b8e9abb8cec49ff602c819695f61011c7ac5957fccc50859432f324d6623459d7bcbfa20645b2a54c5a8ba0df27f93ecc2ed00821e98553f680623ebb221953d3d9b8d188044d693abb88bc965984b08d112ea6b4885aca190f9877f1bc123220aad662fb7f5b0afbaaae118c6108c98b31a5b6ff15aad0a87b172bb40998ec232a9d218bca9f03e88633914561c9ff65be6dcad01550903276646208248a56e5c3239f951585ee9326808a4e4f829a15996452a3328253ce2cb3613aa4fb02acf3030b64c6a27afc5863487b9538b53a2e1456168180d257f4403b41f16b415740abb024eb54c23d6a851bf9c54932259d1bb510964445067c68ae362dac6a7c3e29ed3080b0d21a76ec220c7d562340123f7a32c62184d2d707144a1565e432dff443940736cf628caa3607076783b2b29bea7058bd164219518aa77c2b303e07dffcbb00c930ef0f0632c10aafdf32fa7bcadc5719fdb591c7635c3af83198fe306076a9da2455963b91551a1618040b0eac945f788820a1442ccd10fbdbc763cdbbb6e221e8ad076880abd561c5059e23709d40996d41fa6f129c4758b62644c30c1c06d0080091b4d5a8705f4b0694507252ef1a5980a347846160ba3256475741d50a7ae465f1b444a25729ecb66585e51992bc781f28c180593c4e5882c243017440633007db1c637733a01bb8a994347d7602ed0b34261603b84b8c2e14c5c46167af459507152da216f272371a0981fdbe740daa78b9eea655d98cd14ec90cd383863ab5fe8137ebe820df5a007a288586e18a54b43387de9b73f9037f27384be092b09941262706dd6db377f733b31a49d2467605649b9609365232252a62555b1451674b717182870c1088f4b34061f3e8b9034af0cf2c5f7eeb665e064f5f27cd5e4c84531d45d38051ef98f7bfdde2a7116ff4010cf829cbb18512f7cf44237c02241a1f75fe3ba8d22bff03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 +ciphertext: 1c54b44d8a10785f4510f996ffaae6b98533eed8ebd71ea24f7d7669446a5e6db97d90bbd13879fb301ac3042218bc5362ca6c057ca9774bfbeeabda1e2510c44e269049858a0895e6420a46b6183af4b2c0678415698749b20ff5b8ad375270763fda8e841f3babd0082bec29f635826d51d93fed0097edb491e13d264101f6077f35960ff036c9db1822476d980c294eda6ac631f40a8aaf3c288c497d19a340e9d351c4449e017086574100a846ee41f9ba811f6d3b5999ed6cb37f0a64c89c605889a3dbfa095f9e24564b636276dea2e1bbebd3469add8a00b798b531c5d7f734c400806fc2a278388fe7395756c97c3816e4b3b5eb079f376b6f6c46494f93930786d5d2fe597d1a4187235a34c0948494be6532ce29df05790382ed06396b78b51cc95ce617de6ba412ae0374361363dce738a0b3924bc3c0bbc440c660d8c5a012a1a078c26397fb9989e3f25b243a4edcdcd55d4919903a81a0e41b51a59fc676a7672d035dbbeabc379053cff3a63823b359437ed1e148a703e80bd11ca6d483bf29f574f7a3cd4be9c8623472bd3b21455ed44dc092e897bae7b958dd960ce311200a8a9578df00fa0de56ecf00447dff9b18252dd4b2a25ce35de262c28411196c2e49f5a45bd074c0d7c498e42606068b517907938eb7e5b37785a4960981dc9005e5431bb50fe55e446817b2a18064d4029673a6089e06a2ca67693134af6fd75a196c5483127e5349728de459701d0745859e58f6504543755d969c1ecf912dd54e8167910e38ab419a161178db904dbf018ff0df9fb5f0d83315c533f6ded98a06a72cfdd82a19cdfd03109c161020c1e726e43c8354e61906d156fbd7e360d85ea6e896c6731d4acdcc10a8c3ac1c5432f36c9122cd6533f452f2afc46643b36de381d00b8fcb93c32eb7e8cf915f1dcca5cd1f9af29cb4b450408c48df5c2199f8df68ea23e228494bd2ac356e461aec65ffa568fea8c281067f3356223326459d7f746b42060f816256e948960d44703d23eb45d46ab0e924c50978baf55e5ae39bb06ea3a490f9989bcbfe9119ac5f3b83c5f41e079dee501516f4e704a20bd6312103b57f6c0bf56e009eb64132fc2999bbccc8d098027437ffa1cc0cac877547c26680cf0c4f107d8e3551ec06c5aa3791af10baa6b34a10d346da6278cdeacad19cf839b501a3381a7e68d3e01604d66b92079c39bf183bcda51dd0959236f345d0c98763fdedd9a58f5ec9b2978f2319fc61af19ed6ba74db442fde15ec92729aaa8c1fcc5598be852eb8083abf5483a654fac93724ac3c23a1db1c431e56645f505f136252066531c9b6d015b1480555292ba18b3f2e074a4c3b79ba5b831cf049bf37be83ed33026cce09ff36efa757673a928884dca31b8068b0a088f464270d522f9771b7a70cf87ead5956e599789ee9a15870b808b3ae59a6c417a54c4eeed8dd2247682f8c3aac4af021f918dbe3ab8f91b0b43780fafeb58fd043faab7ea49b5a4874c7722926399db78533ef9d41aa8 +result: fail +shared_secret: + +# Private key not reduced +private_key: 77f83df8a5e069bdf6ba38b5e53487b6d6a39b79e29e8b45498746d529cac78b4e9437565f49d83ab5dad75eb2d536bfeefb93f7ac40f404e10b33e564d488024d873d1c367da759b54c5cda4d9382ec3183766a4beccedc375df99ec75d4866affbdada5ae61386b698bc63b595dcd4ae801a4a80f0053251664c774f971e1adf416adcda2c660a15fa7876a5946ce72fc87d8d8c9d06c9c30357ca3f8964b9b76b4544784c16981b075bf49653fc6fdf9aaf3e2465789e6b5864b969e0addfef3c80e1cbde12fc93b6cabcdfea9006e638f265880ac630824ad679cf9069284a171fdff984d4e6f4b2cee5ce8434b869177135feae861784b4f7332c4ac89cf8c36e7bce1a59b4682376b343d0b7696e3bbb6b301cb3311934514babb2aae87db5a4a656bd02d379f40694a7feb55d2ad8de94d12684df14bc994da75f2fc3bffcf88fbd9b88f32ef2dd6b5ee6cf393a69803cd5cf67647e78b94bbcd8e355e938efafaac105367535edddf3801743e6970cb19a0e53caad889c3cb05715a02597bfdc09f6949873558ba5cbbc8782e57b382d959c19a21cce9c66af759903fc109e835d5feeefcb3ceedca0b02659f58d5d1a5cc917efb46873cbf6d4d3ea8ef32727f5932b3bb41adde8bd8ff729e9b249339b2f585cd99698ecef3413b15dbd9142faea8d9bdc1f64b1b6fba5ee3d68cc36fd2067686276c303cfd111cbb603ff9756d3f279dc578f2d801d2a3abb86f6414d9b8ba349cc7fc9d3056aa788b024fe516093fe100b7e49de4dc4c8e229c744fd2dc3a959e8e78c668f1aaf01bb8b202a3c8ddcdf63d456b50461c55ed1a6338c4b7c72559daf0563968b8e84daa8720bb36dcca4ae3b3ba26937f84d2dd93c079a4aa3b846b8e1ce237ea9033541e9efe63d8dc32cb8bcb77b064bacd816bd8725569bc85cd7f63d34539c14b56534dc516f25d0631a59ad1b985c77c263adb70c4ae4d9b6b81f2c88432568ae2a7ba338f4abe9866738adc186e2949f5c6954f8eb9e53fded54246fbe09154b4e06b8a60b57fa6e76844bf764c3b5f56ae738c7ebb2c87e371ab7a70560c245aadeb9742a5e959a25895e4db453376fdd844c9126c78f3a553b9c9b9d53d33ee8c6ab13348058589fce52342ea823e3fa98edbb537d672e9990a11ef842c38f332fe01034ca8a863ae73fb53b5ef537b4d928d5d3a71b7b0a5e63e32fa757f3713157b8e8e369f3ef688e5d728efb4222a3f5f475482d167516df656b2ce31bca45299fc39b9bfee658816813bb67adb16266f71f9af3c8cdb31a45c4f42551aaae5e87e5d7d0547922af6bf02f9266bf4bb97bd08da6387286e5c8686f8989f5b7ff7ada067736a7949bec8d23778708163da61c68d816d67becc118785ea53fa06c3a99f6648341f8db1c5956b75dafd20da63474a32fa53e2a9b49ab935ff56e6292e9f78e839a70ccecb7b6ea49855216d5bd3d1d774836469b48496f0590127850d20c52135e50e25bc8388483847c92495cdb48e66aa98d5ae8c3a0e7c5ae3ec64ba22381eaf7ac28fbdb76daaebe0b6b6e28bdd488d02359c7991eb2f47a3c45d938c279dca38a7a251ec223855bd7fcb83e6e426635ee76684418f81e47490cf733359bb77d86b1b949396baa99c9d73485e378b6eda76318b961948497db54149f386e51648187c48a94fb603eb114a9408ba0d27f3c717694f9459ddab7c6d51a58c50a79bc072d7717781a6b12073577d3a89a405829850aff65023a771a5f5456ac5b3970d545043a2254178375268abca9a967f50db28635b1d01e7d1969080438368a4b61f63efd82a811f63909aa48a055cd9345c09191abeaab8237696bdf3512b7e8625212bfe5500bd7002066357954344fe361be074069a520a470eb64bc0289f85c981995141a246ee3c6673d9026b7b490a82819ee1825ad39284fc41a01c936d0280c4c681d62e47de8e339fc0a0f958b279ab95114209231faa8962754b12a22efb67ed1c42e8c144f74476f552a297e7573a81717144648befa3b6c6096f428c10fd925ba86b29c8890f2750d1e7956664a714fcc00c88a3cc259b503d3ca39942986d19ab6d76378858d679cc61ab40edc5a007d33813698a6ae96acbe95474b188bfd3208c885179de868dd027f12256b9fe84ff460b180c7655d514168c89a516ba4ddcc56c1b5325c9312e067949a57178251158eec2fde69bc9d61be726338830a86e8e525ec00152cdc0e86473e2b54ab64790735c3a945cc83b999352ad2587fb67dcf2c9fb3b921deac54dccc8201d36562f64831c8129e67b2ae78bfacba95f29c3d20942781e090ebbab81bc5c071b0bce826173f0cad6c101518b56dd03a8bdc872d338225bb16128ca8c7212867dae513c971b687297e4c098ff7c478f841a29dea278d1bbe55423321372a44937d2aba34b279c99e8847c5d4b51f54143de991aa16aeeab267386c7f286445acb87a98cc93029658bb0981048876f0884b526ba58f201257a2245849a57cb425cd2ca92a3cbcbf963a4f360e8616c082d8be4820323df715bf5344fcf85ba070ac3068ae91989e61600416d7cc28cb6d42a461dec083f6126c749ca457146d114c84fbc576a7dc8f9c2c03cf4a3cd2535a7a396f59d73259654254e5bcf616b4970770bc8a3d030c8c61d93eb08644159414dcc6428be73357531e50ba72b5eb99d9380bc4802339070366a19760c0b15e32a48ae0038453527b10c4ab6b1ae8497f49dc47e25a514258b5c0336a812525c5a86e22d73a9a8c3da5e88a468c3439464fac42491b0bc91cdace7cdb15166a01b62cb22b745c38ca32a9727c8c57537c72563edb4aa2b400b778115b36817f188e659b2bf7c999d108c5b2d252f6a3bb78737edea48c9bb91e917487e4e6156dca609aa97bf47bab00047602f296cf611299510b195ba59ae7bc245b8c9721901995b6df4918842017945c330290c6bb3c46d9104faf014db6728c4268627f8c884bf52e011344cfa795f864a474f9c015ab09c77911a8a52c1aa46aeed6560d4bb1f3b64d65028d373ab3d51a450e600a239767aed9cf25b5c85fc24cc794162ee70e13d88fd3459cb37a92d348a1956bba09e24513d5a5fa79b593a849a1930456f39fade44b583cbd7eb4ce058056df38cd0be15205161f53f2c8681cb9e00525fb59cfd86ba1ae81ccc1636dd69c81ef620651606326a41db9b68827378c2ec238e9179c02965f938a2d0aad893c30d27267e416287d7ddec314a79402a769c3d953f0092ef4f8b595f827b1b921723cedf55fe756ff5fb67d555296c6185d171ed8ba01393d1a735018a59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d +ciphertext: 93bd84aeaf924ef5a6cf9f0299320f9745d4b7a1bbaf8c0f7a721f150d740174f4650f48b2597b513f3ad8ece3b027e23e0bc83d7bdd6dcbcdb89b0c6d40fc2689db5a8f97978d30bc54e7c706597acddc24c23779cb36256e8858e3802bff79165020d65327150ada03eb85ced6577706a26d2e0c3fadb7ab480a10431f12d0946f1a62a70652684b15ccbf082c5bdc500af9eb2d1da194e8de691fefe76b479cc558604534d4250f9b3fadc5b6ee14cd723b3cee817ab6924d33e7cd8808db81aed732d6a388902137e041c078a519c530486c85e2f4b9e89d3e818fbb83f898644269051c3b82a43f6cc34587b4c47917924cc87c5090557254743e6f754c84ab36eb3ada3251195fa8987c2c876af3621d7b78d2fbbc99cf94a4bf804542efa4d16baea4d1dbe6c911177e3004f2d4a8b69ebc50246bc1ed56853870374d2d2ac73f4c14d668289957d89e7a057cf25fb2adda583f9420956fa48a7eb9d76005e20bdea9c5c16c8fb1efc6db068b8879d1ce28ffb3a70ccd1c8578b938732b2015faa17738ffae41a300edfe2c564a85c775fccdd01af5be1c42a81c2e76806b7ccaeeaa6a98fcc1890d9ab22b04d1c0d106db4d2053fb7da715c6c3851b1c6e3b13e9b9c7915fad5a81db1a823f6e9c08bccaec434e2e143b963fb7acbe6fc01b8c0f3be2bad13ea711fe426983566d5e31e782408280dab6b43343046e59f054f45498ec9514f2e5d9432b9b28f8b716cce2a02e64bf7fdfaa30f4e4b9d5a0fab8a5f2c1d4b5c278f83889f676549fcf35bf3836894839f170fca341e7fa9f88e0e3cdbb7a18565c0b5f696731d8ede4bc6636ce988f377536e88fefb71a38e76577eba3e3e9682cf1c796cab2a66da2fbae57df62c53315eef981b97d55bb0898a474b72698ff4d695e56a11b4d59ac3c33bcb1221c498ded30c88211eebd998fe8a96f9f92eb80c5985a5037f1a929f1f5dd446336a438cb3b75c7860749fdead56495af233937a2457a92ebbdf261c302880d44cbda673ba0a67a1456ab86ed38fe7a8e964a62569b1fff21994b193e74dc25d9a78f05d9677ac92a2fe830e1e4947d7def8c911d11bfa536c6265482e8f1fca1ad0f7f36e81a275b83d2b6b89d68b6bfab6436cacba6d12d33e6662c0155baf58f8f4ad3cb57b47ba63e781d94ee461a901a7171aaee49a69b25c6d8a0c49063f7e8448d60bd8de161cd778da0476529d5a0fb2c3dd9b4c90729ef6653d7cf74288cfc75cbc989c76bb7af8579578f5ebdbc833b31927fb6e585a37f13302db297d0b50f7e3e72792e3d3dde42151067679f155794ccf4e604f8bb8d1390e6e98b065f0a01c9f0ed0b35b451f1f8653cd1acdbf97c3518557dcdfcaca9f98c2e85aec32ad3084d79850319d1ea27cfee4b746f573d1450e036cf5001d532470eeeaf2d0895aec768f051e2c29f8300f73f64fa41973bc0d1d38b1c58bbd642807a49e9515cf5ea193e30a4da032659962e2d28d41c2aa6405cdd1627e4ab927303179807db7a75a2 +result: fail +shared_secret: + +# Private key not reduced +private_key: b066bd9303c7bb0c4a4b0e812cf463cb338cdff8d9530bdd91dfaa7a3cee110443d80ba64f6a43516ed83bfe40180df986b63c8f0bceeb544b86e74e86ae6db9539de52c76a634d8613ec0a9b84381edfce4abd737fff77995a63c43a2ada9a60893d24e5d314e9e9c98e7a4f35ce67c93dc717693fb5aff4bbec684bba76365403d6b3b27f76a4d9570bbe73b09f3fd45b6b89616bb014c5fa995779154e07ff6ab3c5f3ee22ec3d07deca7ccb13c7783eb97d2d34695c696f98824884c56d12c16c40576497314a0d60675fa1be191ee3a816c75543c9e54867f9fa495a4e43f0cc964ea5be9c364e930e33a6385d105149484094d31af8c6eb73de81ff38e19f72ddd415aa3b19007c90ce6407a864703d9a9f1fa3aaa86fe66736f7f79fa7344ae84a544b7bf89c3efe87e6eae6e07d223de80cbccd9a4878cc6e4b71f1962627746a9d33c0b7c3a78048af6f8e1a34943fc0ec5b3af48ab256c729a8ae3aecac87870bc98dbef16bbdd17f4e26ad258cf44c2a59737da52983cb5ed0fb450cdbdbe4dc8882470285654c61bb27a9a9fd026f594343f323d7cffbac21658ecab73bb215b73fc96507bea727e65d5e31848306c6647f7875e7d8fdb57c2f5b4f8c4d3b4632ffdbb4f3251b5aeb95afc035cd25c0b39fab66b1d1db0154eb9f5d9b73637f718b448959fdaee4c5dca164080b4774cd6af8e7c5218065a6d0391802e5d2f6595dd23e41ca5d5da959cc10bbeab184397cfb552ebdc9c7a878b1da63ae9f0c19c9146cfcdb4556d823cb6d1e48458e7fad9886daca3bf7265b4ffdfb11beea8b74aeba62a3a298c33a00ecf70e7e18a094dea5d723aabde837a74ba18a9252df28d18d3dfe49e740ac2be5dbbab84e743795e2936e69a9d33c8ae8765648441ba9725cceb627548484ea625a9ac0516980c9d3ff40c58c348940817a40cddfb0f7487fb1ad9c3eb6bced56581fd9edd36fec3cf51a0fb303e43f02d27b509c3eee883d41325e8b1ee7ae44e58ed1565caa77013b7e61cfecb6159841f8566a4a8a0c78f3892ba94a64eb18ebea68c9a3ad1755a1648bdbabbaeb8c8ba0b1d5eae48cfce175a217d693138cf6cb3c3b0acf28564de84bfb5ce05ef634b5902aaac61d63b5f8fd69ec5fa977a3e8b54ff6106c13c2ed8eff9ce87d387640b3eb29e4e0597f98bbedcba3bd9726ab543ffe01cd6620564b1ed8945c60c67502f33236bb7453d7aa7db84ee1ece1e0eac0cc9b86f463c13197c7c1aa3f443cb0eeca93b8e7319bc45f9a587cc9afef06bdeb2998aecbcf920387696ee54831c96beb5568d98dd4e58d087499f0f8e8002a7a2db2b717aa39b2fd755c1c7678cacbd5af344ad38578a894b9d795fe65b701d3a6323fe5e5026e0c6dcee6ff9dcd5048c93c8d632fb6e18e7decd44b36bec3ef955813d338f3af7331774962a04318556551b1893109eb3eab446467fb39f996d71e4aa3c7e79b07b7718ce373194cbfebb4dce5caba80a7a7bb5aefd069db57eba074e383b1ad06978b3bf5bb14348b507b6f4fb44c41d4c8157ef765079f81e2836a7859bf3473b11ff4c8d47e1480770150ef78824859b8fbb549cf5aeee5cc71ef8a58ab4311d32776b6f121675622857b8b376d708b2a861306fe931126822e2e8672fa0b577e8ca3f16495af10aae456a734368677a87fd3c2199060dc1993690c1ae2b76959664a1df6cb2b3738b294124918596b0d69394eb1efba83895d0a7f3081ef81769437cb63b726d4236a65c87c3929b79fe34438a8931cf2b889cf100747cb58d373491e7cb62db266bfb3b7e745500fa418eac8cabd966dc388d0f1b3fba850bfec8c03a29182deaa5ec4256fb3b436f429cac87399c61bc98497a3aca07cec06a128231f945a4a335ab6d1a54a9a59db106c0fd61360ce8870d1cae99201506c9c96d4969f4b487e4d87ba1d45accb5a754585f29db0991376150c65927b20c9eb421366cc840d528734c8b4f1421fe30c99f4c55f1e25d18a1b012424cc9f6250064a61c1b42ac243b6c701e293055a9ea7c44855e575cb6217c381de770cf461040c20b2cea6c2a921c9be483ecc2718dac01c4a5a15b60bfd5222fc988c60b23504919137b1226d7b72fe4105154711d25790a9f64c95356a787058018cba996410aa4f29a62b6cf77439b5784b67390b96db77c1583bab490719d804e79b8954b948388514a7fb78ebbe7959599ca374a66558a8fbe7aac91e8a62ac623690a952e94bb91e64fe57ab4db066867ecc9ee027163a8010bf901489c10ebb736ae619dd0177fcd060c4657488bc50044e4c895191351ca72aff9698577bda5536c3fa75f0d9b586822211cd88d686ca8921ca65bf8081f8604277839cc9757653a46511876f7b98983fc052bc088bc85a686ab6bfd5c2b91da8ae210313949191d13279be375d3d3197fb01808a76caa8a843e178d0dfc116c041030f2047f4b35c0900498fab680d45fd0710d75226eddec6388d56d1c2263768603ac0ba9b68a21173704bd25b6b5181405029cc4b18c6446b5afe5431f0a26bf50b2f33b0aa4032e9f28ac9fb58acd85a670f393351b33df4079a5533c44a94e968b677a68931491310cd48ea1213dd416ab650b3294f06f91aa5004f622ba173795136eedf91598153b8d2935acf33709a8b33e4b32384bab51fa69ed123a4eaac726dc7041b486e8aa3641fb8d48f908c27866753b821aaabb9894b504f845fbea8766e82671506ff5b5012765a6a7b08f9fd3c10357523fb423e02024577235fe4694349c1188b1aeff482ba7a15aa188a8bbe7108ccb7ad6a469054a45c01aac131c6a7c4acd5c050184ca77b8466b6d1992de80242454169a33382972760de2b69c3c000b900d25f2cf4731224dd9a2b84562c15c04d3d1a9ad447ee9404888141a7da3a522f90b9071ad7af54552d0060af1a66a31b9457024a46b3fc1038a7c54b76053909ab07eb36c1dfdf897276b465155aed0e70f9a4b9398e54d267377fc298b9bbc053b281486f8436017c6d98b3249c167b17358c134299ae17426bc9f067849d7c55541a205c1359a41d7a5fea37e758a0893c18226a44bdbd27e0266096dc20da357c5d1a23956b796b305c29e87718f65b8331888cbd53fc2fc011f92c6f49c7f9901a5b17059b81cb2eaca2d348a22a91105f69140d122bf59d74c16a840e4b646f5e1cbd921a24a60a0ed6cad243303a1448b6750b4e451c5e0e41b3a12a73c36272ed86537f1d2f51a0e2b5b5847b0a2d9bbff0a051bd5227600ad32a2a1197d78798bbeb13ce2e92cd7ed94b410adc37b1b31dc060af11fec8a8be99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 +ciphertext: 2513e09060af8f52ebb2c83689895b5bf166ca6e9ce9db739a4533c90c5e9f40867926244cbc396051bd543194a0635e1753f2e1366a5844142528ce5398412429ff880f27434e22c14a64a45febf5228175f5f3eaa6c7d15a4676787ab733a34ec64d3e6d35fb28128a0e5ed59b11145a6402a92bda380a38fc3710104834b131ee928f2ac8143083bec3de7dee3ccc07f348a384f8f709829a05fe94e5bc144999ae09e2ce39a88548224c37bbf716b44851f453f6bd0f1052ee8566d444ff9f146785e3a09ce54d03c3d34398730474f314e62d5600a80b2de9fd468e4b8013a278b5c7abd613685bdeb26b3927d11053e55e5aef09028b36ea99df1471dee73dfe63e9f61c1eb16b32deee237a79be98ee3468de973f5a1f3cb411daec79b25a8ae3208503ced8b0604e939e6cf0e61d55a6d0884b38b08493f8544a221a250cd9f4d9328c2eb615dbbfe71fd27e2eb4219bc8de76472dd35809813b111366b6c4ad84b3024d0b084c9c6096ce3c7b50b6108aeb0714f70ce4fde2bd2d693abfd156e090455e9ff36ae938b99d68400587d8ae263058dc64a5386cfaffa9415c54c7db1d5e6a1341db0c724a3cbacad4b286a4f59a5db6435fe0ad19edbda0e608cfdf88cc3e00bcc864e2a700476114a5b7a3b492ce1f66b10ce5e3a46a93e39bd0101d35dd371bdb491c6d4b7f015b52cae6d85f0d71a2967e04fa58fb46b308315b44cc993cd49e5499c065a811a8df99ed94f98fd2f0841a3a3a6d3d89bf869528640aa7721e59f003179442e6cf20881e353435b994fba25acf21954ddb463340979d7d74f70cea856c0b4b2c9116f596ee60443fb3491f57b745258c462c3182da098e84868c6ebee511d2857d341c68a01cec442b87cf755d86373deef1934435eec9a3805d5f2074a9e4711fe350b14b79b42af8c5b884ce4a2097239f0c63bb3b96ca91b3823c11d9b79e508c30c19e1f63b3957332ef80318448e47fd122236b2666d6c66f532ba88394c61d21d784ce765c1307cfd5335c0bf04dddd81de4144dc445ce5c8094fdeadd4f488a7d463c14994c891a1bc9e04649b87fba42556f54a3dbbaa96b08f8e93f8f68a2c4c90d75f0df55515515f438ffcc084cfc69a219d2a2ecf808495b1568ac37cb6d1642bbeaafb9df7f4aa3a22739bc7c9219938f019f12438a74631762c7f8878ca24f74e7ec762df3a3f7e9f104e01db85c1e93130cfff87083671ed10aac6b5508ba479952ef0d5bc8327712c555fa47d15d32c5e252a5dd0ca6676227ca7c5a3bf3c102ca6e0d0d5e846cb52f1d85c2bd1c3c4fd3832eda5bbb7ac1e09feb84eb1cd22ae62e9dba64b10217272af5e5f00ca3e8a03303ab13e8ab4a16e9214d44fb37b11fad964f1de2e45ecb499444f81c563a2b3c599a5e334aae0a912e577a6a8badda3dd04aa33e59ce1797f91ca0662cf36275c5f8be504ee7f4051ad2b346f67c66c17845d0e0c4ae5b049bdf6c7a82ae84fde16223d7aad9a4e54e46a1f44260ca0e2e8bca3892 +result: fail +shared_secret: + +# Private key not reduced +private_key: 024755131769c7169f4b4adb8908f045e6a48dcfcb0eb87badd4ab94e9bc67e85eae9de58c49ddac09c40a6a8de8a95b21d5e58a853442b9d8278a6ef80551a8ce6a810f42c7086144444e488bbec51c3cab83594becf4580de62c43a9577c51799ca7b03c9ce3cb4f5c6564792ab8201a3b8304ce4d8339a227e700d7a6ec2ad3c337b639f7c804b5da705ef25d1e43f9d8ac9698a3ec1f6b9ebdd0bc2e3748aae65848865b487051b766574db2e6efb1b4633583589f30d4572306614d08d908aed40dbad106633a26237a244b6a19afdd87653e8c5e6ea895a1f75bbfaa1f742bb540006a95ae2db9557ecd4c38fa64a36ab09a86b109e044e4e754bda8ccb5dd988d351f253a6928f4c785ad8be9790d48643bb461189f905e5b80d37e7369e4786e69d1c43366a14b3b424be1139349ca1d7fe3f55958fa8e4d06d16b46d7210b525304be665eae57f8f6c913cba35d3260a9493bbb3cc33e9d7a2ff6c27a54233c48e7084ee9ea82386e42bc4e9cfa7cdf524f6cec39b554255f57becda42b4ac33391b18e72f7b8f574b6943f6a79ad5ea5e7ef54a0a5c80d46538c03705705abfb2b3ef63a756ab8ac0363daa6cccb006ad5d73b687d45529edba35bfd3c411592f75fc8f123e640b94362a8d6cc2e482f99e3f436a06dc790b8abff2a59f45b5ea26f1d7bd196f4b51b40648ecba1ab3e8879c401b3dfcafdc40beb557343735d0a44ba25dd4cc4d4d85f805085892c7d9f2a97abc413c81f8aee159ee745878d66e98f20ce76e4a3cabf6d557f1d4d24733668985ef15b87e78b57d22c4464ebb4b9fbeb124b80c73f8c3bb933493597770bdaa1acef7de48274fca6d91bb51a97c49c76f95bcc6c53933e203f7f2037c7bf9c80cdc5406fbcda9f067e7703a0aa79ac0eda8c14e4c7f7bd5d7fa84ce9a487ab489228aedd87bdb6a3b9ee21eaa9493a986ea773af8ce6cccb3b059aa725bdfcf936a4583daa93ccbc2b3377014350cea39c379d8f5167b0811ed61867c603f6ce65bd81b2e46b1985837684b5e43e8f463ec1409df77a35683cf599b383e36ec3977a0ae3e1e3f08543dc0a78f8a58cf902bbdca679c2f7f9a84419eb87a4754ffaacd0fdc50acbd17699f7ae1bfeea885b54f9fdb59533ae6a6e9253c18d9e84c21f7220775da93c5964845240a7a3795b5df6eddbaa34393e4dd9e74e828c96e73cdcea9f9749a009f81867b2d2a364ad7335eedec02e23e117a93b107ee3dbc9ac379f4ee63cb954c6da325971501b382283f0086f9b00a965537c3fc07791af8adc000446d165d6c94d4da9676a9907969e4d627a18448f3537367d6016fd50064d3aa7a7b79ac7c5a3759b569b8b5d3b86bebdec413ea1f4e45cd663bad52de23a973b2b6633da3c88ba1af6f0347901d6f36ca76e1266440adb415fe5c7adbab8f5d8b3dd5bb4f88c3a1e55da495d629176e0258ef950dd5696a54f517ad263f3ea8a6de0dc034ce6b7ff6294a3cc7ef0d5acde588f7134afb5404db0d6fd60e958de77ea39e02a48f53f7cb066bb33eff89bd97d10ec6615a6ce06088d6f63391a5fc89ae8bfebc43b554aa5e4b6a87cfa9e5b457c581a43752fc48aa35df5c939694737a6f3b26ca06ad98a9a6ff2122b8889bb513558fc1a8701376ceca1f7d87a53f78f953aaf9f977c2ffb4d04f88e33e0ba7d83bc6fd27914a769ae382ba5f211b2f59f0001ca30b0a0ef138adaa485953cb8b6f6ccb56a7c92598c0c83ae97684c26d70d69210c8dd16ae08c4b3c1c30110a581669245529be92d38d9cecb10f22c83d01b3b3660fab4662fc559f48041167fb3e7960328c612a7e99a0c546b63b1b04f22b78b85074e6d32f6e04b096eb89da611f30267bd8760e05c238ea2a587691181112a39c88c528977f0399cddb7a7c8bba3ba71507b3db7131302407052cc4e8125e2bc035172a967a21a0582a05f8aae28228ddca417545144882ca3d644f6167ba30e91368879efac5971c8b1a7a9674e804c08e506ade53bcd778c1af4637584b9752aa1f16a4319d296b93e5368c10863a85cbb55c11c56338285b21cd740695757adeb2ce48b7c658a36b26b670e59947a0d94d022284bf0995d56666bd7968bed8858895c779a3318275afe42488953791e97cbd6256c29a6c6e4339a15d7a7c3da95edd2a562dcc2f6fe077cbd2317a914b975692ad1c3c3d956b26634fe1d2235d66226ba766a447bc87e8674800cd898b4b02c491658b97e25a4f836ab98a99c669b60aa4c30518a6644fb048a4e34822782644038ab04a3815c61da99816eaf388e495cde4a65c12f1bb5f02a1a1b1cede817952625fd2502f2a4b8bbbd4123e71462ee433ac923583c830cc54129bac51f96846d8fcacece9b19f6063734158008342c6f48234d24571e5777074170ae24b20d125f1ba311f4b33cdf91e3a2305fbe12e44ab54cc8c4eaf8553f697c00e8040e858569120bcd0166bcfe1a66e2500c3ab8acf3b58f1309c68772154602ba6c0968553ca553252d27a0b05733d81486d86c590291a643edcca9f8470d573880d5856a6b2cbcff2803713790d17297ef11549d5412713a3e4206b1b7c85483192164209f5b32f709aacfc4bae51f180edeb7e999ace2bf98d958514951362b08a6b529a2a7669c5492c0a61645542bc1dea0b707282a0797291b8c7a510884f12e92f3200ac5ee91686e109ecf245b2672f94c0a4525b7f43fba328099bfe4330888b186d026231d2b2eab7b971ba7680f0cb4653652f8aa8b4e01bb77461d792cd5e941a31dc02d52622b37c498e4169bc0418e23c5d32999726462d3a0a6449918b18db487f422849b67cf047bfcb0c6945bb87cd779dea915b64aa0975d313f8a740de77b0d40612459c2eb73a3fc876ac39c821a52761e13115d87bcd17052fea2b98d9d83ece9b1de7124c9738c0df539045279eeb21042a13791feba9d0e23445293eb3c2c194b76c5febb5582220ca350eca9b90435372f3c5baa0549ff847aedb815c244b27dc5866b151041e884befbc7bccca2fa098b592c5aef7f53e0d712bd2119214c15f8ab848a1864705d0511c50a9942535cf06952b0357445a9854240c026733ac8a39eb3c8bca2939d195763a572353da2956799448570a21d58623635f7a7461a913c24ad04d1495c1ee42c88b82942012b2d4b410fd1907799623f1b373b9c438d2b4c3fc48c054bc5206273f7a9a3dccc0ad8d40070ef20fe4cc99c8394adf63126006ee8cbb821b12a2a0a3018c4f8e52a50183fff79e84c694277cc3f47f319f88da508f841e536a056625f206fe499387d27307257682237f969c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 +ciphertext: a93e454715b85fec95f1c8ebab9126e7b088bffa6eb8d220089c651cee97b49dde58f10f2709d6ca10a0edaf0d631e43e1e57eacba91770283b2b2386af871594867ad80b88a03d5554d151f7957391a8a675688485b2e7bf619fcecdd8be017498f2f1377d03f59482151e03f1f90bf7cc49a2192fea0509d50678f514835271e114ef1b96e453bd2a5342eee9632c0b2a54daa8a18777deb4e785d0b1b6dbf8d3fd5011c1dfdcf8dc6577bf5f0b35720412df16bca86f3d65ef0b1b01a2bbf50a036268d8cc23a9db6d0c53ed8885495059f8f0101806769836fabe5e72d8731b50c745b24944f00de44262b3f76bfd0e3658c9b05d93b98b6ce25fae3a326e59ee148d699687cba27efa3e49d719832c82faf13160b8313a5d9e8fc1c5c0f7589fd7d143b241216bd49cfb81eedbb5f732c3dfd9598198055e5946208939f9477e90febda986efba3e9e5ba2dde57e9dc864452d096642484e70a19623b6af6851641e6f41fdaca57b6bafef0b1584fb4db1864b852479c632db21089157e4442a4d7dc6eb5343d8b300c15dfedb908bee62ab57d8fd1be322412edc9f681980cfe056bae32a30d714b9e6397b1da7874c5f3a6d296a435377d0cc339485237adbc72705e054278819931f6a84a3335b9863af0aa6a3e0bde969289c1d3956da62f822dd6261661241e88042d672ac48ca1448a42f978ff134f45359e7eb734b0cb44a99fd542f961f58e0fb7a3116bc3be3394b9cf8478f01a35342e9a22bc9afca1f4eee22406cbd5ea5bd582d5b88e5bf0f11a46554323310cbba6cafdd0b3879ff49ef875bc6846133b8bc3243cb934bcd8dc8493ca3fcbd1d4ab06bf2e6b932eee6fee99b1c260c2199e801d68a00bbacda4d2f2facc57fc715ecc7f116b5fa02e131710377da8c414b9c41c3b2d0fe43b0829103407c229451990fcf1de8a5a84ba97798f2e0cfd9e2375f37d306179ad8004bf49871ad06881c2c1eb3524bbd2d547916dffb73af4a97c2cc4eb3e13fe7eac98a93cb0689ab9e1398f8df184883e20671bb4781c4eb0b78298f764a03624b2e2991c633c04edc8c23740153c23864154a0e49795c45abfcd89a619c0d5d45e54aec741fc5afef622f23c1406a0524de27872a72b43f771c618d81223ec284196849093bfcf5fa5903a1bfb843f7072b3bbb12cb1bc2ea13839bd6dca2b4c1d7f1c726c6359339d649f416e6a6132ae9008e787706d1b4dfb8f724cfc439e9ecf2c88114b2f23beb7b493a1f9980612d535fccd24626a0befb6a86c9561b96461d86db5c278c12e002e6992746fd282a6cc8e7b0be91db05f6bb256075f50e0f1676fc8b4844f931151017ee9a4423720203c4ba933be28f29f73e96e8c7b232bbb375b16c82dc53c697d2bfda5afa3d8c297ad7f3ccec05c5180e6637e060a6599269a88d09fac0c2a724e61d99965813a8c11746105b7ddc09ef377dc93f92baf2b524ed9c277a7b679334ebddcae51318ac4be3688b655635043b07d4bf5b79ed743af00ffab8c +result: fail +shared_secret: + +# Private key not reduced +private_key: 2c0d6f1c2787d307d5935762ffbd46f68ada59163ed30c83b577caf466760583db11364a383366a85ef5df45f6fbabb7aa49e6eaad5587afdf9b23daba8db2aa5de0966fd47e33ecfc7a9ce7987d3e2e8c53beec22953722e861a20dd1385aaee23378c647f315e73315893fe10df8a44caeb37cc796dae954b79adc2f887c4eb3e9c98a4c5a71027e4f4cb78c9d3886393567016536a17d6fa1c950dfc7eaf86b916115d9738b3f6c29f3694e6b1213ae508439c8c9c4f548ff926c6df08852e8955a04d5a8a319e2c30e483096bd202ba4b82855236b804fbaf0f0fd56e288cb6a9f37a1f5e50e0f7347bbc0651fc973cda784aeb794e7b2a3b45b7f94fad18b5521ae43f463505979ddf46bef99bbbb0f18ad5be480077f7fcc04ee400430973b8f6258eb73e6e1dcde3df47633c2af7b387398dd3faf9f7ea40c84cb49fe31d8a7acf8e9eee35e3f402f5a2e6eb753ef4a297de48ca68c3a85f4330d5480cd54720f93b7c7a93985f959f6f56dbf9c0f0535056be8e2f78ec4eadbf9aa91caeb9b5d5e50ae4fa868ce8d005eb2a1e8c2d31951d5fab52aac7d6045d0d9fb4b605e6fd26bbc51b6f2751636d3cfba24ca5c3aac696edb821b237e7fccf414e7cf2388644f07d3821ac1e2068c77dd717d4dbfc47c7f96077504d5b9b2c7a188cdc746f9d4cde556bacb9cbeaaadc865ba93d4837c5fe92b539e6de7496939e6df23ef27cf6f4b3c93fdbb33cc8b39d176a4b27351911b8b85b5567b839cc6ab5f65a3502cd994c91fb72b2d37e5e38f08ea972a1f92ff6ee85b6d3f94fa6ff7ef47b8e3cc82a8b111dccbfde7e5d7458b3d984ef5ae7ba83e4ffa9ad6913eb28e9b858f2f900d364bcd095079c4c06b5e5599443ff5f434be754bad6aabece45a1ecc7dc5c955422f3bf114ce60d663a47feb968f6747c7d05e94b8a95df5fc43b8dd4fd965dfa610b7ce10b7c7d56c37dd647fe2afdb886f67d0cd607a35700cd5ea3187b69c488d358e67546d7bc22b59aef9c3be78a2b7959ba7afe2be46c9411a4c1357493a73a50a4dd20fc732acb44c0376d2c22341d5039dd99cc53343d91e983c1c1ac47607b5e487f7d1d8a313ca73e1b9c47a63a258eea5c01ba55c9df274ba8c3a35c8427c9130d7ed77165e01ffa723da6febe7a17d89cd631971855fbe2b8d777f1469ac36356e73ca7e04f1ff6466126eb3eb459b33c694a63990167e6d8d7b3b0669648d2331edd6a9e54933a5447946465fc21b51c323f8a676382a2ddd02c9407a8ba8bd25de540755e32de02dec9fdaad6744ba9477ddb6252cbac07e8c4b9e7fbebcf93408531c46ce925dfc92ceda3994883dd83fd0c97a952441fd6485c8c34f8116b1fd49ff716e50fa0867be0d78b0f3fac88f8b6c6e624677b55c18aaeb494795be632e6863393e5c930f8b3828598a4ac46264634afe7abe68f440e39ab356d52219537f9d9e8f9de35303bfe83eba04caaac6cb89b3c37558243d9798e587f45de26be28f9568ac45b4e3f39ddb96eccb0749ec354161abe64163c77b7397da453f57377c4acfa8a78c568f4dda6366e2b7c95035f4c71dae74e7653ad166d1bfa46be01761034db04513f453c5eadf5e6f190b29f6e7cc26755aabd20d4be75f2fa4c18303319edb00809152b33726b1e54c0f328c73c6805354925b43a6dbe0cadf00c9ce3b1d7fd9b47322c8b91844833250e0e99369e90c279ab48712b4e1c10c0456c754251cdae4cb4599843510be3a13277d775a3242a6232b1ca2979e6f260b3c4c86fc24bfd95255c765cdf6187854f0c9beb8cee6a8391f98475d6aa080a7a2c6147f70c2a9450901f705ab0ec23fc957619d611acc2319c6042e137496f51436a788334aa5a6d561a3e3a0937a37be9f7711c5fc6faa1024c434cc3e41a3865bc0beaa732c1789e7972f999007d4f7afdf953163197590e757a297919766428fd18ce1d531466a55109287c335bc26f946e06a4d51aa27b220001a46c2f4e339dd83511d135a9621c1ddf1083bcc9b24b994b4a3394df8ccfbcc743304383c300a9761859074a3d0e91cdd96a34513735a424238e71f42c328eedb1cdfb3ad704a1667c15045c534c448b429c474c494c7b37114911771d62c39d3f4763d881c0a21c074201301ea0eff13bb5df861ecd882a0350031b2af63572845950535e85fb323beebd613ba600702192d7cc1218309885ab9345ef32dfb757528229d73d57cc2328a5a86acc3180e392144c04cc45ca57573395ef38a95674b28ea7bc8684c8e6a81865a93256517be79fc456472976fea2538bb8b52a188cb43881c19ab47069b36968da1cacceab9bfc5c7985614a3fff7300e621e4865c5f8d30792099d3f793e58b591cdd87cfa36430aea876f30cca5d824fa29ab2b56ad3aca5d483c3c7ee90b4e028b7794592e1acae0fc721d355891c257cf821928104e1c994b8bc33eddf70c3cbcb5e272b43b5777b3921892ab198b4132ea4b200618b1e4559064d491487b1f0135c9da67a39950a5f13a1e6eb409c30957b04c645b052decc23a391a7692390de9085147c96c67f04ea8212c9d80cd00dc07b7d22826e01facca51dab91413e8cbaa24a66a00b4d2076d58c398ecf03ee56c40a1ac03cb02658e6240c41c6f06c174f3414e258a11478c7a76e05c156c1b164903b22991391955c3e75bcf0cc70d4cb79ea27638c54dcdcb1ef35b8f3caa26b0418f340597bed55d586981c77cc6093a889854a85132997bf706177099ee8b5ae44cc1f1f3c413fab7a51254490a6ac4175a99da866e5464283a74c5c300436ac1c7829c953128e5d17cb056af07b08d7f114e0be00f93854e09eb5e0be82a5a4c526030468f95bd82e08c2147736598a656476e5cb855e0c486d1fa0c661202a79b37357995ed445973959cf04116ed0c687227768a41a1b4f79b8080a740f012dd547403a30a36e62c9f5a1659abae73a165202122a330c61f492822ea25dcc22cb97c00a38bb7a4a493ae677cec267379c3a1b80ac2f4612221976ff4c7afc685283af88ef813a9beb73ef380be8a31c87135c6573c0d1d5807e63ca6f1418b947c1615233b911736b0870b766c9465cbb8b29573addb33f21a07cd890f1325c200545d5a21c5da1a0082b9c198158aa2b82cd5d94bf5718d39bac4d9096093c78a069b9210d305e9199d45ac09abe6a8033c971b2903874ac6408b3510d318ff4b464ef16ad3e56bd664cadab4cbc2eb1f13656c6547db33b5f529d253c85a728313bd36b9f09f6455b7594a10c1beaeb6ff178f3228defdd117e6ba75a34abb70e86f31fdb16d74d91e6c1b47a75fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df +ciphertext: 4173f72cfd989bd103ff41f258cdcd0bcf3a68eb82c10fbb2639b06605ad14a7b2bbe670a38b3c953df61e7a3962ccd6d554fc12e8010bebf1a2471778c69b130f6fd4a205bce7157cf527cc7480e4dec2654ee466cddd7cc3b48d4799775979070722ad3a0873a38bb9d50bed48650e5c0e659c002e1a80e2c81ab18c5862dc734c15b146880018611651a4b9a498818fd650d8f160e7b93f8f669df8b1568e7248fca844e24113899e45a4e2f9d4af45965d2e20b98fcea2e74c21c2c6c8697533b545e9d0168a74920df3813e0e9631970427d59b16b52c4c221074cd6ed9f5cb07eec18de8b7effa7dac2be3ac2e75c2f394084e64a8bef17efba88cacec6b154f66a737d540503f015971d15fe8bf1b6071061c7d1a0713118f365aa0dfef865e8aa70403d9163981dacb6e9af1697745ef842e60616d9915b5d6e5279a3713b0472dbf0e02c9d3521d48ce21b47b531f942642c961a94170479c62dddb6f81dcd5448308df2defa52d2c90af853a55136c8b6b7263078054e24d42d90e24d78d79b76fc479891305046f6a51100bd553a9b37c90b31fb1dd905c420fabc6c3a96583010e5c3c95d8fe722a185fdcfa1014e454eca7eb1ab85448efa60c988ef0bbe8254e749bb0017e1def4527b27d288a896fd2a5372d20200d0a3e6b88428f9766d1a636449b0aa3d88e108638ad159810cc75a20611adac7c2f6402b50af48a13d2c2b80e4535c37e4c1400e3f39d896a578a035e922cd3a214a6d077cad36ba84186701c0b1c6d09051d808137f523190f538b76618750994ad5dda423754e63012bd1d0ce1476753eb16ca8d3af4c7fa329cf5de9666700f8a5a510677ffa2cdd590be997cbbeddd0a9e31df4a8d05b49f52d89b53055abed0f44a35a81f82e82963ef3a74fb1845e40aefcae153ec22d670e00b5c3c21d04d6738e9b3c36db72beb653231f8df2ded30772576011049d06e56f5cee436f02a8cab545cc55126fdc9a0e247263976b6d83de2f2a5174007f7f6a437fb02eebe5e2a616509d9792b16cfad57bb1af018a87f397c71c221761a3633c5d5f8ad69283911e017691fc76096656342ec0d9aa065069b0307194bf5d8471589af26f5f95895c8d5181f9ac05524d4425750448329b53b24fe6fdf3738066a4446522aef01d9ae6d800af8486e5287185f21f5811096996c00892695d0f08d4e7da2a4c019d5153539fce47f7d8d3618e7b5ebd3cb428a8c6503896a7ab1b536da764cac22f3571be53846a117a06e1d84d7b676c6bc7d0f51e9d356c05b29652248ffaf0b2d07511df249717ab8f766657ebfbfc57ffb521a9162d786ff4364bcb2ce620e4f50040dc829af95a2af4f9771d3ad297eaedcf41d54340bb17219996fb726aa9263ecebb5552ef87651d4b46c18610e4bebf46c3f6c490c7e9ef5352f5187017546ff2022c54a3fa127cadf3542c324880d653dfad52ebf0a630d9c992c7284b9bdde76b198d27ea99fc96c2031082d417b14834ea12faa69e310a30995242 +result: fail +shared_secret: + +# Private key not reduced +private_key: 13276431f3634e5fda375adecd8b81c035431dbcf44efeab340562659dc7407599ccd4c146c5b79653bd855f86aca5c7fc13a527784bc1bdb0181f61409978a4754fb72ff03267804b5f4e8187fba34b99a30d47f74f36409f8ae88ec89a7374fccdabb1373cb3485ee31a76db7d3a8d39c12668a6e0869e5596e2a58ebe9ab6ac8d1de09f4ae8508d8b1be756635dcd36cb38b57771083c64cdea6fe5e9aa02f5cd1b7cd8282d787464f4a8beefece731fef736471674506b9bc577d7dfae985896d826ae4fe92d563ce7ddba44b57a4fd48b05dfb27b76d94d513327fea16a5b0fe77bca259cdd46414f13425616bdbd0d6ea24bf1beebf3ea86a099dbc48b4746ad35830d694a219bde233842566b9dcb18822fa3d1b8d7a6fc2a4555278828bbf7bb74b1b3cbc19b343ea659d4c35c67a1caead4f9cd45afb2887b4adbde30ba263321469a505dc6a7fd6b29047a3e253a1affef3d0f7c5519ed7777aab2b955546b58bc3efd87f936115483756d966b8d881e967e37aae365aa96cae8d614bfcb0a34979f7ced00f7d110af456817f17abbb1df6849bf5dbef9a67c973bb14f8953e7597361cd76d539df0b1bca770dfe6b7dddff97cf1efdae59ac851c29a0f9abe7769e82002c8142efd166f8bf1979321c1a6234c6d8257b6bfeba7ef679b837d6a23673a122dbee817b5fdfe9904b2aff9549d6d7a585f074af3bd445a71b431f776009be33d6269caf16b306d444fe8e9b4d4783838f66bebe3e0807409aebb11d8676686ffea606a210f68d6288bc3a484cc4464706538713afee107885834b4ecdc44af3c866ee15d4d29e724e67d4b9cfd795b6520f0cc8f1d89ddc46572034f9450373565e330e887e6c7ebb47e97aa498791b735733a8a81da6fa68e3f231fdc4413d56b065b379a44ba71e88c80ed3511ac0d894b64584d2fcaba830fdc13db3febe5785b44b9380ddf0ee1544ba6ff8fb6447e96f803ca4e7066f5e0758ab5d1c3e7d87e780ecb1893dfb23a7fc9ddaf83beb4f3313d64daffd8ed8d81ba5f9eece63affc3f595f74ac0e430615f7d215db3494fd16de508a0afbf069744d86f0e03cffac7954bfad6a1cad4c29cdf87b07edcc8d9d7c966b9f94b05906b003b77a083da7887ed340d6d0ce3b4f1ed9a4b51953566deb582d498bbe85c75740f2184f5a16c18b7bb58cdef0a13db5d30f40d67d545f349365a97bc387a6bccfc00125eadeccd375fba522b7994fa4a78ff6390507ccfb8b47e208b70bfae89a6effb068a9db9bf62245e91f74d3ca5b8517ebf5cb9bf02085cf6fca6b6e55a75dfa7557a43116179ab6ce510f887db6a9c5e8ac41fe6de0c124e1d9ff4529674a97fc666c565cb7469aa7c8ab9446d6880a9832dac41fba34f3aabcb1cbd050c66f4c5b53b699fa43ea98ef04faf406f16c16f90cdb504029b2985fcd75fa4df4a59c5919607616c07496ef3d0dc18f1ab27c29d937fa9598ce65d8e6e281873bf1eb36bdaa9f9546de54f5b8b44542f618bc99077cf76cffe5ad4efd2efeb36e8fc44f4ae296ba1ffb9a937f6bf0bb7d74a6d868494baf5f9438c898ce0c95ae4741550daba6c47ca4c3d1a64b97777b7209039a2403758dec41fe4093b014449985121e134c925b37b11612a9c61e97d5863f81a83f903383a517d1ab1769921563b86069c9c20841481be7a75311cb1b2c74f4cc96d2aa916509cc24d33ca7906aad07938e701177b42158c19ff3040389894f5d4c9cbd608c8234cefac9bf75fa177d5669f45a195f420b189bb340ebbba649996863618366766b7c990c6001a397b00b71272cb1734adb60a5b1523fb46be42752eba4bad8d6b008883e2697747ada77635174d5f7abc89157acc61202100cf719c9b8c5bfd7409fa95641202384629b925c240be94889bdf96bdc176e4dd3ad75f7b2e4c2abc9ea8280f07df64a162d016db3a634071944f6468e00aba03255430375660bd2c413a0b3cc530de305948d783afd0a41b4a202fcbbb620d9bd47b1181859b66f922d0b5c464f71ac5682829c8c6f4875bce8c37c5212113cf77a8cf480660b0ad108a0b67c063ed52bba442567ab31b30858cb33584d5422ed7427bf085d163005bf182c90c96cbc89ca70591dd0606f95dc6acfeb3315274f7c4937ae511963e90e6d03646292743a4178a6f344c244194f989e1c34be06a09bd5086c73992da8528caaba4fbef1502c1abb01b145a7a825a971a001055e2b1841725cb06eb23625bc0d99f89c1998023d760db1960a751988529628b6aa54308a3c895688047a003c089ef4a3232fda6aea0194154339b75a0a25402212211f3eeaba98cb656925c34f46037a436f89e01bfe408c138601e3a490675abf367194b377158f131b12740636b92bb5d184c05a23cea0c66519b2e8b094610655699976538471d77bbb3a8613a3ea1ee7b22642d63611b498e302540ca71e9b5c1aad6bbf309a13f9ab5eb57a5670fa9244280867ccc48130c74c50219da3168a26a52001713ee7b81157a6392199fdb4a56631b2d17890e6b0bb82051b9a1c85ce8aa92a2557ffa499c8910f7e98c3b4681ebe6323f4794e3e7324330a710b6a87186c36ff04602fccb97a7842104547264437921b413d52229a1555226a3bb3f090bd8cb09df92f4b4093319c434c04a773acc094bb205062903adc121ff6c178aa5d02f4b401e2b43bd79966d83a014bc8a8fa8347e1a9e8c6947134b837f019b05124279b26f20414fe326f3464929105974a853961a6b55ee90ba8d730be6a51fde90b4c23753bd9728077b90bf1c656c0738946bbbc5a2d72f95d876437c659b1bc663f6ab2b9026ba0401ac168c05933dc0509f7390ce8a024a3a1267217bae20c0d26c9d824182bf67ac60c0b121184a42c89da7a1f2de023ee6c291dea37da360b6f912eb95727e0c83efe0796d603b1c4702b2532af8d34053e1c70f8b73d5874578b3a2a8108b12e603d8cc1637d54bccba48f73d08f63c12fb8bb2e40938456c46209b262d8f08fc9b576d463329057a7fcc86652008832712e15e31eba79cb33a58262f822b9b8abbe8c4a025729dbac6f4df64f14c9959993004e0a4398b7c1e049120d404fc2683d65e85cd279b8d9e9595e995631f3469ca25412a54535c569d80c2a09117733f529bfe9a9dc766c8da35bdf0b64d1c27d0fe31ad736c06a92186034468539a3adbbcf0e67af4e797b63a0494cd91d2b9b89f8d486236b9b24772383d81aaed73286e5dc6e35a1dd0121b0a362d8c94022a515340fb2b71b8aaccf14842a6d4ecb713612f801a5044147fb9e6987ad3863759de31e11eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c +ciphertext: 6c6860f7577d496c61de133295defcda33462d99ab13f9265a9daf5a21ac8db6e6403d0fac8dc4a8ad196a93f7afc736d23f2de65a506c97b27a3aea84fad37e113607e5883be0500719746c9aa8a0992e4109d0009f350e44990117f9b80083ba57bef99d7229f4bc425026b522eae09bb2c45dc2c14bff8c65a51b624874feeab6979193f085b7b6900aeacb63a2bf5fb2f81d0b48f07d392d83eeeab6540c9b1d4ff4b3068cb471bbda0d9d336ceaf458c6f6acc5c5bdace99ca483a310b6839899f421b15ada7520e35919b475128aaae3b7b027b872c5e91bab596edd00fe954d06e3e8fb8cea0ce36f98482d55688fea29c4717a07d01fb4c5f163cd85908c548b91c83bdedc4c695e0929b630aaedc2146a099d576821cd880fcb1a1a65a58c14e278d094fed63c67b7c6994cd9158aa9e15990e68945a679534035d06e1b58012fefd73461c0f41e0c0630f7f89fc8e7ac1e8e497a2dd15e3d82eca2b5eca09ab928acebb08854959ae39a37190b4e4c6fcf1d7cd03772f10b49e5662b1237a58b2b11f597c51f23c1d105896952c4b6ab6cb645758de8ed34458ee91a8a1682a8f8fea432ad3690f0ba73f980e4ac88833b5b0a85bcba239ee176f00b78915ef7467dfbd42fe23e06deccb70c3247382ebc16b85458d284255fe85bf0544977697019dd417d7577542541fbc4633cd3ccc979aeabab5f9394fc7c7ed15641927f2d7ed87f60e7306dae6ee40667ce715329a217da1334acff5425bf643c1174e9927ccfbbeda133fa2e2a1c9c7fe912f981a4452a3e34caeb6a9e898368bdb40b4dc40915d093e1417c330e024f8a9a235d21a5184a5eb890880eac4051630bad9664ae4927e2e2d34a408de897a2839bb3e43e88e4f078be3c699c7527b8279579807c9a06ea58f32bdd5a2bad5193bfeec0cfa62ca7afd99d9261342e4179449a138066bd563399c0b35538ad109c28afc5e16b2abdd46a930246b215d57bd605bffd1cc042ef447c448fc4843b13d4608876c85d473fc5a663b2112692401c7f833680766839350c127d78ac462c6fe132fd9b1672f94e9f08a18b13ab344b87dd947a8cd9dd43f805e0d8d56c1d11c17edf45c60c1f26c364df7830411b3c96d55a1586ca15220e68069041216a2eb7217113192b518cdb235272516e766cb7b9d7a2ec1a9c32a3d2c885887cbfbd4e893a11d68546419f1c0e0b8ec69a7c574c73bed6165e32c14363dec9bf27fa2510dcdf6cd0d8ea0a7c05f97493777f9ffd69287e0861a36df8e6b8c1b28513c2e1c47c8aed6797b5e6b345df7d402b64e280e951192eb18f1ccf76c49a18a7c06250e72ae7b5f6ce6bbf86d759eb9f3a23ab6b384dd584aa26688c838ac7da9ef292b927bb7df9b4db4785e345174b46231868f70827615de884e8e2e649eb5b9c204ae097feb997b05d9837300b94e95f4356414e0253520d2b49ea98d97ef119f5423a3de5224e33d853e67eb0eeea5a101aa5c5145eaeed835a6c13d80c25b0e551ed2f357a9ae8b1 +result: fail +shared_secret: + +# Private key not reduced +private_key: e5b9d6286950dc6e87790e84cd4dff14a9ad2f7a382d93403308b8677cf0cccb52347a515303a2bd15336c0b711b3a31e9ddcbdb59bf42633823bcedf61c63643e71282b537ddea19b9de60d97b9dba7322d93557713ec082ad3599dbe315b7a427597979eb612b764111ba6ac57afa51cf9ee436af12e31442c5704b585c663935ab698dfbbc883df3fb39c75370b8c199cb0da26be27e8aa649eb5fd3dbdf077490bc677d6e631b05d4b9bffccf7939536e8e9455b91ab27fcf01639fbd47618b8708f56d284abcfe7efe371dc3b00e579aff432ca4e7d346eed9b0e70bbada36a6dd4eebe859a1e8146d83ea548ccb0069a3379430dcc8e3e7f8eaea7433ed4a704987625dd994d45437409f28b3ad8ed2db2b216482a1c820e8c5ce9a4e3dd69dbb14fc9d294ad994d8c407b88cf6b32bfe9b95f9a9d45a33184cc8b79cbbfb379639c9b44a128c211f7d0a59aa4ee034e1a3375de2e6ec4ef447757c70a0b4ecb7be677755c3289e4cc38b4269f5fa0aedf506e8cfe4f5e5f55c4956be4b08c64f986d68daa8e711a3d00fdde48fff2f30e891f6c7c53ff82a4d471cc199e68fb9bb8bc81766a457a6ababe254c4aa96546b96f56375e68c9a71317fc5ca9b0d0d36b1f1b663623d75f7fd71f97c6c2ab44e98a76dc767fe2cd789ffe55bcc976cf1b879f2ae51606b9972f5abf147e7cccb615243e0d0775e339c909e93477b9b66fb863e726a4f33ecbb98435368abed797a00db8b4dfaf36e75673ad8b857206d03d5db0767961f67ba0b58a668b0f680f57372cc8c175c6cac858497eabbb840a5d87389c7b6f3fa67d7353438e7a4388a1c34236294370343f90c9b38f4ac28d187bbbcfec3d656c4eda62de9ef7771c8038b67c80d58edc08f0526344c49bf9f73a5198bdb520cf9d19396b8c7f95c05f4d3847ec720e3263c95694138a27fb56681ed1b1fd6f6b568b4c05c486043f53c44f321a9bd98f7312e5537608b5a2e7e23a8ed81e8bb7a05ab1337afb7eb487359bc8287c42add6b72e5635e9ea945565feaee4c9291fac33ef54a90669cf77f8af07763fa3ba74fcde1d8d90f37d6378bca30fa69c85f5da03e8326ea4917b75e5fb887d370ec83c5b4f5218d4ce5ded0c67cf239f99cfee41da094a601e7403f94465d6f761fad5ee2de6759c60b14c352c4ec8eb6e9e5bdbe67a95eef894f845abb4f7a6ad75fb610408324ea84c665b36672b5e58f985c3a45bb309f7f5d8fd16e5e9313f71ac83368d28b2dcbfd8345db6205c718e2bb4aa25e8fcc3c76aabd2d678732b4bcb8dd4cd9c35f6fb9e9ad5c9bca0d6e71c1a754787fc957b74dcf877b106fa21c7a17a7a8382c8ef45ffa6cf559b761bb58ff8d31539c02bc3f2243f513a2e411c89481aafae856b65c1c3b114bd9a6bbd6ad6033bd8aff7aeb397d90ab3cf5985bab7c826a3e18474fae25755f79667aee64918575118349ac1be9963549c1707efe14944f98b5eee7d8b2aea5a305458f699505083bf54ec70b80ca12887e5ad2d46edea5ed82fab14fb8514e67e45343db7d9e324357a99db343c735c918464b63faa2d9649d34aecb48d39b176bdf69470f2ae83966fb94b3b7294a77c72cc5686335a761609caf862810ba70e00c83da3cc1c208cd893233c8ac3247b013417cecd467e9cb87280aa13b061bd0a661034ebabe9ab6e7a447c2826af3cba6798270a36f7431ae9119de2245704110d159aa438a6f1546a39286a7a179c5f286073d5b944ea2000ab61fcb9373a4a94dba5c9baa94056f35ca1810106f2ce65b579c4744f94955db4730265053b812634eb5156ea819069f6371040408a2036019967f4163c1ea611c02ba295a51581644dab07872d1a5b21a32d0ffa349e3739d961a9e9bc07b6d8cba3b945be491958813600e781ecf54912d70e37832e05784c5e12271a5aa5d628233062305a28493bc2b180d802423aa4f75cb6610c16e8798cec72253798b189eb217238b5d063224f78114715818ac4ab40d34042860bee445fa9b1b02dd5a7c7b6bd8b03768e7c38282806e5fc7a93a9094246a403111a39bbb89ca4ca33f9b381fc8d6447450d3b4f6c794b565b2735f8014fe35e78a94780bc1557bb380db47d25791b1283094ce08ae4ea9961882d134bc5579aa9fb44127e2670b85001d58a162e38680d3c8fd2d3517cd4b36aba9bf1930f3d4c067f2a5b4dd702cb9b9e138bbfa91c0f49a86ba283091350a2ab3c1f3c75ca20a4a160318cf88849ef2102e47211df95a2fa325573f60ee7ec5e70d3b88d291cf9110b9906401968462d2ace979a825b088f7c2b330fbb5f15b1b9f24b84a646cc6a9b27b03767978268cba750b5429823e7ad3a00a4e813052011bb0f47cbac838a489c568391c7d05457f4033814bb9d52a011ce787f0df2ab1bc885e293bf23900f3fa019238b7447561eb85b296930232b175379f289982312790bb65743cfe65017be280063c19b033c19eb988d5a827b64777eb8b13244a9b6763c63523a6af78672b652ac38f33f2a870c494b1dd34a9af239556ed9412a48a7b3501daaaaa976daa971c1565f37be80c33fd3126c7bb3aa09f47f4c9c503e2677325418ecd2058fc7518fc247b36c0c8f59427bd2311ca493510794cdb734cdf69c6b1a9d5c990424d819f35ccc8750b4750c43394605bb60b7c4dc39d8f71dfdf1c6da319f6d671aa170065102086665707b95ca4d241c26cb4acbe928d23318d372aead3a99bbd075b5186abe6590cf5278bf289050c13789f82476620472baaf258c78eeb7755f6c6b1a113d91da945a837f0c84b353f9aa1c223404a3c071a27c84a6ae90d31a0d254234a18656095bf989456cd9aec6a837df6880c9ba79476431929c9b22d9bac09acdd8d94b7a884e261037f1bb5335f98c4c491fece5ae0a485611a50224809d48aac84c16957221924d3c2d6500107e71bab5580339b0832e0292b89a3f25bb40fa0445f2b3122f97856f739aabd568d1b0851b47ac947b25d2da6910d05b44e26088901d487cbdf2f782c2e35193021501b2cd264a6526b4aa6dd439502601fd7b203b088361e6218c1b72854648f4023199e5aaecd51a33990b74e4366c07818efcad158a56ed623f63c20e5ea3c519350cfe16b0dfd3af10a45755641a388590eb95b6e5158ac5bc4aabe686140b981cc5c2ac896945a4be089201b56744c439630b56a15b4a3591acc88f3c4680311c24d80b5725bba86cdd22a3732c6a1bf7cb10f14d57ee8e5901e46b97e63848efdc76368b797da13cb3f23ccbd9ca6a75823d1ba14ef03664560f397133935103ded2d7480b9911136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 +ciphertext: 5c2e0a97eaaca1d05377bee9a9f4cf0238030f6540802e2fae3dcc7911077887a4fdfd6c55272b80659dd86dc65f1f276ce11b1bb9e7967afdb9953976cd604e988aa1407896b2319618e7552894eac35c553ddf20e591510859354090d68b2665bb15cb352d4afba522f3eb03fd09e30a27c946f738e38eda2b6e8499413644efeca48031edc811f162c4a419eccad5206dfa59e00679a4ca5d2c056167ec2405c5241ace69dbf87b4444b213583e7996a4d349e32fbeaf611a22ab7631f2e908e0e02935899f248f9c2a0460ca4aa21e7dd79b5fd84681d1ecf7a951ee903ec1c4c92a1e928a09755e43fabe1236d383a6dfee5e75456ea6ffe1f9dbbe61df6140a432b59d6bb4a98626a62b581519a8ff93e360753f08bcaa4d61dd89f0fee8b201e9046a2afb4168215d65f097df589b12b8bdc469dad42ffa176efac5b903abc65df115d550f30fab8ed459660e34b49e0725b0b4ab2f797ae4cf6e7ae0049c539953163b040999eac7dc13ff238565626b8efaaa2ef0874dd044afe71c4c7871610ad497b82e086ba9ab31af88187393e4751fd85f5bdaa13841df1658e11827d44080094c95f3ae409bae7e1d9bf337338eb4ccc86f832817a12aeab3dda8a83433bcfbb15e989916c8dac1e758368f60d515f475d6eee6545ce33be1700e826500e302acf28e7eb8f6ed90154cf0eb1be1159013fe663ec45140e73f079af6189fec534535644557ee45870e683f040249fdec1e191ff1ab576569a2a0af75d5aac79c20a1f27b738a4d96d95dbfd8bce713031631a89a7f79ad4e9e78b17521485d07d5610d3b3554df410053ba70f8663cafcc2d6e50516240e347b5ff2e554567a7a8bcf2efa694193306727f5bcdb0c69dc32ae6bc34d555a3f801ff77c70f9bf6fa0ffaed06b1ff713c9de0502be15da43c3e7624f6256a0d59920a7f3ede109c0231dcb2801d71100b9ef431a018af4ed9e882c2df9095ce31443a962e1b39110ebdfe9ef4b575fbe5ab0d5d1fb309719ebce81687e21b85450768a4b074e1ed627c7bb2d9083862cb904a4724014e9efc5066e4cedf2612b66577852a28bfa879f76d9500791a87e884d3e7b434682c8a3dfb6aa9336a5dbe59da7091969407130e570151df14fed6a5a217bbdda35cbe20354292ad625ec1195d936f7692a123f51b90208e289886473d33cb2af68318059c4b98c9c9bb965876147e326a0d899af928fdd439a5283b550207c15511b215e0b8974b57d2bfd176a3d6b5c35949044741453576dd5474fa53f81919109c059e2f068f91109dcfb95c216cbf9e91b670a4249f8d91ca4e900e5cf8cd41096cced87c9b0452b476cc7049de394ba7d44908ebb28362fec85b08660965665c6256f63dc6ad9f6348139fcc7e989e664819cd46b0b788cb25b219da868593aa650903b6a5cec193c3a494303363e170021907c41ff4bde1ba4665dbdb57daa18c7618ae25a0af077136113512c1fdcd894a59f1ffae6d0a2631124f7691b5ecf0fcdf01de92d27e +result: fail +shared_secret: + +# Private key not reduced +private_key: 2556bbc99ca8edb774f8c4f7991d46c94cc9030fdd2cabeeed7555f90daeaf7fecd247555b383508a8a6028fd695b546a02e627e0aa9c71855587e8de1ae6b920454a75fe52c779be0a3d7ddddaa6fd97909f7f27ecb7db209aacadb7d1bf5ae03dbfd155e7862bfbe3e0936b47b7cdd488e22956b7de9ca14c5fe848c90fad497f7debdb42c799d8a9b52fdc9a3e383528ea2d3ccbbd95785e1e3930c5edf955a311fa69ae39b9a240c50c32ec61d687853658c6127e7ea0ce5f9af7f8dde90ffd433d9d863c63d425db8d72e467893c7b62136d491fe497f4470b445d7162bf3729a5db94585a9d9c83a9554127ac9b735fab5fed0d346cbd7a496501979cd0b5317ea39adf970a59daa9f2b7e4eb8e22a0dc1c98fa0cc0e62f9256cdf2ef6df07bc4b4dd42c6587ce0b3102673e405b623416c06f9abd9bd6feb70cb794844a6b4f8ce8736ba9364882aac621e3d4b98799aea35288fdf3290335da94ea51e4c1b2063f1198661a1cd1316bf6038efb48de6b5f3be9bbffa680be3333dcbec5d9557ba4a2f113d97f14be6c276f2a195a57b9b28c4efc6967a3334851b075a7c4dfac74d589758df86aeb4b29a8fb002d57525f8c3ffb488ec4661bd58b276cf29bacc62d85b8b8c560a02850ee24aca565ca30168722ae82936ca8a75d8226d648419d3038c339c613f33b9d46734cde16fde6f7fd80414734903bad3393c5671c5edee3cd8ebdcc8aaa4927c78d51bbf30abeb053e7d0281adbda9a5d268ac47d746ec0fdee6bf9e264fc6a181ce051a5a87038bce12a4d70a3dba259cbf59d39c03978464def3089f2c763be3bf83fe44e47e329d82a9da4520fa1d328a0e90a8e5677d578ce4ad544f6ce36b863f5d1062a5634034b98da407659b9e8f3a53a9d7d511ace034ca15b9ebc8ed3715be3c095c6db843fb6c068663e6e781378c9f6d352adf794bac9dffdf330dfc77e492b6ca5bc53df2ea81ac93db6c5f0cf3ab8b483772a0ed2ba9fc7067d30271b4a7c6a7c61f399a34df1563d6ed3d8a0336c80822d6f6ecd9cd9ceebbeb891664fe661bfe7dafdbc771bf02393fdeb6492ea7ee84827a2bf0af8c13ac42844b3fcce4b0b9694642791254fe96e95ba94abf9265b58fee38b9333fafbaabfb158ff2307bda7b3d04cf74fafba6c464840ced7bcd38aa764d67bf20a88e9a99549fb66ef1a53d1ec60ed744632c7875299b056c8c9375c6ef5fe47ab9c8b134d822afcb6900f8d4ecfbe9da530c14a552acbac77e9e4c66ec25284a9a4dcca04637049ff9a99cab95117881da8404596cd0a38d04a47a77f96f3b5af811ac6b90f5d69d7dc82c829abc5be4ffe35e507bc97108df341e382da5f4672f88f34ee6814977225659c8d4fea091da523d44190a7947aabfeecaf62fcbe6a0ab35100385c238c55601363cc5996fcb46455ce42c35d46ec5d7d506f87630babcf485bc6fe9fda9d51f12a3e683a7d8acfec2f9d3136b674bc1be490e9e548394738d4e7624d77897ba9ba577f8ac9b58419dd32973b436ec05385788be4b63783728d59cd5539413cdb537826aef3e3d4e92dfc6a4bfe72f4e8539fc35ac6dda55acbe3c6417e179c810dd34e05e23a2c42a4b21fef3306a34117e05c4f4736af0e8cc5ae6bc3f294188ae5397ef69f26303f9592a694e12916bb56e5aa43cef5c183e6ce00f78ef423c3a838ad2cd3c4f68c142eb23dd5f774054668eff212b2bbaf8274c7ad10cfcec5b10bb603ec6ab33c963ad2a22b23f7412f93715a3b0be0b1754ef383c2d52a5a16a22632c88a9635af81909d347e64715806f93e0aa26756b25a8f5984f8e298abc12be53850b83213960428562455d6a7bceef90355318b5bc78734864d1af0bf1393849ad715c711a5226065586b80f1357d961a9ba74999c8f47c7583675245749bc56152f1428910324f2706c8718208c4a13158360365337642279f5009ea86197109b78f0a037cc298f3085c46f68aab45379cf59cd504a9461b47268ba03fc7cf7b1aaf9d461bfb3a7e68b396419a44bd56462e7aa2bd82223a09c155d26dff3873a6052472d6796e24bb7daa3583711cc435a9b3d3463812734b700614396a6dac3c2d838ac103d04239c847241835768a2bcc3d6f8567f6c998b4e7ca8d30a81582686f211936087d3db54972615d4a9b0e1ab1765a18c753fb9513d097322154ea4a3f934c8fff8520af32ab05f26d1030888c0a1613ca74164793b5f798ee3c589684bfb115cd6740bdd5141f1a17393b191550192feeb3c8d2c0b4c37790091312fab615c6d194f076c49d01cb97190ed9d4a6bfe0957047933e2835353085ef611c6f9c1f86dc4366c45cbe2281b0910ae39aacb271c03260648f7c955e99367d1b130c85289d586272fa28807ccd909185dbd5999af47f79da95ccc4859e8a84b2983f0e9693b1dcb506d7b7aaf03f158759b8006511380b3aa4b46cd060f96c0e16060161698f26e073c2f74e9c5b31f9fb4df5dc0f3b0773470bbfb95135c39199f6f281280480ae88573284c44ab9b91f8942ad423783263927c5857d5832a6e1576c6a59e7b1a498ac2f5f71c51b4c9a36cc4d28c042dea588a4756740782b07cc245a069d42245943977780f11eac0c8221f9938fb05a5d096401d2a4bea8c9f46564af831c907c4fef6743ee482339212bea730113a930c0a5649951abba2c6a3afcc4738580c61a4730aac4dc3c84dea158365cc6c760b13ea10b194b2539a55da5f01ef6c55213815fc6479f1bbb67d5754161d4064ed1247aac8edc486a8ca1b311fc653da3be4fac0c81ac0fa54b99030ac2f824598ecc699a31973ffb34648183cce8cfe6495723975c7ed7cbc5281811462cc1ac48fd9c5ca3da126b8125179b651a95b7749bcf711a018eaa951cc078aff16bde9a2f5b180ebee3032b5b2826ec83af147af8288470b267a97c5ab0244d3fe538e986000de3807132937a811de5228bfdba209e642fa3095045266e11f46e99f1b1eae584dcb8805d7455d3435956cb1679b8afe26ccfa7224736998aed363c0d82b1d23b339a16abb5e60dd447bd78c80e6657bffef9bceb18a0c8e602936ba32d24871d6470c338921366a009fbade8f4ab940bbd22158ac5201f09157d0c010825b290581b4108573e720acaf53344fb876db0bbba53d14a26dab409f137535a794294814e2b3f8f42c09f323e072b2519588342448e24a769af363293f4c8786ba4b70330bb80f37de30dba857dace4b8291ecb2f6ebd5a06323b11a89242da833741e9c468302cc5af214ceda67ff8161b29bc300c4be8e1a4139437aead8a9ede3cd4ca6ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 +ciphertext: de36243ef4f99396bce0bfc9d8d3d2165aaf7cf15a636550904066b0916c4c877408c24cdcbb9d976024c532da78c1fde5dee90f86729975d698dbbf24c908a81eb44082e49a713a2412352b90f4ed6ca485def0dd5dd122fbf5e8bc8b2d2d1b66c1cb06c9ddad615049b66ae4d8fa24ce3d78598d9a973ba08d5e9e24328743e887a9cf96876fb5ff48ff4d530d4516f912d5840d06efb6664270bf8d2d5d7ef22d637e1b5d47728a6948dca765b79de8d08b151df33b27560006026350c756da22797bb886261060cc95d1adaf05436670f6029e4256d033415d759a3da6012a6d85825a2fa925751cfaca26ec701629e348ab0d5e379fac5292284008e15959859fb2f8a9e137dbd35b71cbf02f5abe1a81c65b745aa2f9f6904ffe915072e053bc7a6aaf67b441ba16f911585f256b0f6aad431bc76193305f4225b6404c9c2336afa3f1d2a8767fd1199e05af964df23a027310cea75db011dacfa4b08157125f883f3e6c00bfa3328afec8f1c638bcc32484a3b039ce3cb2c87677166ab56e0b938e655cc72e87b2fa94a2bd28e1ec65b56cc684f67188a46cfaf2ed8adecf6b9ad2459393d56dfe2d7039467a35d325f52da2e26b436600507a53eddbf9323b8b465e7f0d1921d769ef1ad5d481eb06ea61dde7d25a2fdfaa33ad8028ce4d8275eb7b82c831e217d8ab122526626bdcde7d8208e648aad8cf643b11253b9bd2b84504653379cd8afbf7735ac82814a60e829d20dbdd819b23f840bf802d0c285c418b6beb444d4d916cbc9b169befb6f19bd963af3e3d9c66ad35c26d9adf5f3b36aa3e5c1dc105344d40c2865a6837b61f2ce00a2e2b80d22f6a696d5f25de6e35cee2f3776b2534e5538fe5c27fa1b0d69cc97559d19e99260c65306db59dac203a8d7fccb1b467346cb5e4823b1a0eb5d73890eee213ec5b4dbd16377f23008bd795245e159b46f911b985fbfa0df99b33efd4aa9096bef2497794efc029d719e9331a6c042f4e08f5f4f2cf17a1dcbfeee1e7948b5f57d7a0e1cd26abc8a22ebf0eff45d3e7c16b34f72e670c139b92785fc76787d92e1eda38e4470bb55456ff37418a99c6aed43479152e040e2fc69209c487639ea915e4076218f6352285a09582275985c6ee5d49bbe6e2d9d1b18a721e42136e164437d96f2a134652ef092f2e3969efbcd394d7f2c99f1c12edcd4514be7a9ae7f5ddd5b743c819e12756d2754502052a680b24528df8aebaf96034da78e5608252ca6975db90973a65150af5da69b762724660476fcb58dda5b117b6c988dea8690bce26a36c278a449919ab85fb9e79df56471ccc6118912a27f2447252e8caa25acd52707d23ea3243037b1722741f1dcbf47fedb9675e2914f631ee01205e77ce05ebdf4c9f3a5203bb719c4efba827ef57c89c619e0d682e33033c2c05ac04c5a02042e0f6ca1bc9d92a7e11148144d6c98101868dc35541ce69089f0e02ff3e9fce5da3d4088c04ce8bd380ff62118a2513acabd71791555c6027f50690c6967799 +result: fail +shared_secret: + +# Private key not reduced +private_key: 76c9ab126b3d022c31755f79f6e684083a496be39aee74bb599a8b6de9940a26535a36d0d3ca572edbcc37e7f1b86e4825bef3b4c6c8a02ad568b8ab61045c3339ad02e68f17de6c17ac572f9ba77d279d38636c9134c501b7c00518bd0f3f93fa4ae613de6488c7bcc4cca7fcb559529ecf0d43c2975cdd865ea72d35f896a8baa784dc41aae270e6b7146bd53f08f9344b30d6ce8beaffc633799970c44bc4acfc4869f1b96ba685bcebd9b9e4c0bdf6a35bc1eed7db866fc9d825a4c7d5a6057dc61244c8878eaf5804b58724edc07fbcbf86d4a17d5d656bd0b89b9046cda291a355ce68a07f79847a28e402ddf8590788b8afc3d95b84f13993da06556a34db16887b78e43c3119f845a3e2f196bb04a7bee2ed969e8ff64ebeba0fdbb54ed8c49c3bccdc44a9d56d5db687d02a0cc8450f968cc7759743bf2ab97f0a4a67d95b93a5c7c51f09e301676394e69acc8aa6c89ce7535cabb8ecd7acebf39b848a8bd88ed053de348ea6a92b9ddf04955edd6e027e7f9036920ddcb33f0e7fa41d3cdcb955b3958348ae62f0db95a4bf377c4c6027353266b9e876f698ee53787dd73bb9978c7984713dfbd0170aeef3cedfeef4c7ae5734ecd7ce2b043794bea196559507a9f43eb493ebded3fe1ae74d67b728c7d97dec31c01e88814be6c21f9a27669fc557c0dea7bdef23d3ad98b81e866500ced9fe5440488f67ab33e0a34c3f11c88ef8fa5736c9ecb2a7fd1ba772afdeb9fef64af7e547bef6f7fe9f32cec559d4ccb36e97d2389f31ee5a604cdbaa53db415e05889593f1709cce82748fdccf57535584d8d89dbd7cc2d857ce3ab498c31b74fb3d5d8b145184b9d6b8aaf8a83bd71d8bc4c536f3c306766a25d606b630229e9759c761035d3c03478dcdd7cde08ed42173c91d7d682ae684fb488f6378678beee4d8e6c625087741e868f1176cd0a7f1ea9efd7bf5c63f2e97430ed0f2844959c898581994ab664ff6784601268b4589c20b4c9873e49f03856debdcf66764339329b327e375406a54a0b4c89449e16fbbf79d7bfb9bdda09ada94a1d572aeef9d009ef81369902683fc30167480dcf230283801cbfbaf3cb3cdf88e18f79853ae3269d3f8a555955ecd4733e48583fd76905de68f468c8316dd0f1bc735cae97cdbba40dc50cd38c53c2a3481b763936be071879d77967599bfaa8baead34863a6db84dca76f89087f3f999ea4434339dbcc19213bec2463c5b37b82bd4d821f5a33cc391cba73e3c7aa397d7eb6f835c29e7dc2276f8fbdfad7014345098a5560fa6bc85d03b449786b9534ad3ee8b6871c7c98be6dad3a974a0936c4598438bfc953b691771c93b83b87579ddb6bc6f67f1e259dfaaedb36cbf6c7607bd4becd03ac9c2b004ec7b9b5fbe9432b9d7c164d938b43698271a991d5af350debbb29bd7b5c5f06fb75b4ee75bb4af853956fc01cbceb619b3e38e4e5efc79eceae4462b467833d8a5f6ec2696b71cf367fb5fecb0dec0af5bc6b6a7bf07d3b505cd5c58fe84700572a777bb0d3fc7b93fe2d6c783d9696e970eeb9af7918585f6bf1d9141793c7c9f823f5be16196b8696cdb00a46d521b49241452331a4edf2a56e0264506cd682e248784527ec73160954a18dab4986fd146767bac1506885a7abbaf203fa7923cf3644b146a7687dc0f56329e3c64b052db6c14e3211cc560d9a70a1ba641224b2eb8e70e44b25b4b346f3037454aa69744d1777498c98ce741ac1008461868839b4149135b41817d135060acecca5af744e982142de574ecac5f1432a7d907628eb75439d8af02d37e5181681f1b249bcb22d52961d20458c860ceb3175730acb9b8c8500dc258fec13677f40506bc76f8eb31cc91a605e905ee839c3e0b771c32595a3238acc079fe6034769652e5cb492da0a3e8c0cdf13c899cd5838bb46a27e343bc62ccb6294c1619af96817d77ebc2e1431f997566485327cb9331a262153cd31c80d939d473b81feb0910e027b02c29cfd66fbed3cd09c11fa08744b9e0b62dc3093c2552bc7a770a0550cd601b2e6559851bbb5d8665865555ae510c2df9637c07790639c0af6b4bdbd567b704c267e6abf2b371f580686a1910bcc02b7ec3c08a7aca3fd121cda343a61c6c995742159cce5503b4996a7a6fab9e8dd5713bf62f3c0792628ab621741034208ca01c6130d3a3499a186fd69db4b3cb77417a12992e8e448fb75b73f4ca54fda42b2df2a4f9e14c39424bd1592b90968434eb8f52a6a1438cb7e589740c8b9b2b6123600b28ee954cf0d18dab1bb3fec8a0ff6379a4313325c7011f4c7fead33c8fb543c3c90b6ab35e01e31e2dd4262bcc92ba11ba055295b3f2a273620576813232876d1e9b18e22639e9c3759eb460390bcced9bb0e368c6cad846767c69349c59fde27405d8ccc900ac2ed762b1ab6381eac33f14aa27c047e5a63921030f8ee7055df00f7cd353bdc1487fc0875746b9deaca76fbc70ef5925ebbb994833a7eed732235b06e6ec6b28217c7d9a86a5396c80d43c22c56c19570238c70e7a7c2b6a77bca45785ccc31d8a880be379b05e45a1b9a8b3b2520826f888a8a025e28abcc4320bd1e30fdd17cbb3018a7a784534379c46639a21227d279b61da608bdf9bb9304b322f103a6a762db152548f192534a94df0ba1b2c97b9af8202dfc646a84270400cbeca95aada593d8f4719abb6cd4a4699787b92d63279fe9bacc0a989a59cb0ad279a567b8ca9536e8107aa7b81b2bf7730b9f4a470c8170655a0842602bc4610f9e7bbdc6acfbdc4732e4266083c9c91d41ed1f2422822acd01bab34c4789a63a700a5a135d65495841e69ca2f5334cbb1fc4c7d42b0f53bb63f888146163a51759c43349377ca824b32091e9b9c30e025981b82cd23aeb5385be7f398aa5025e87b605827328ebb32d6682896298f652243ebb3b8a6f759db824d3f577cfb8aa04627a80a03804039478abc2a627779d1c87fb23453ca254fb51c629f17c1edc8cd8c71aafa135051320f81c65b06711282ec6e7e4b021eeac0c3fc7ceb4b192897899f6c145f53bfa2d68a5b583002667d101a9c7e721f0da0711ca79df954126d9199fd6351be89225cc52d6be5c906860f6ac81c56477cd34c94ee43b920eb6cb62bcf27e5669f9160f0eb2ce7389b8da47cf8b22f46452961457dc39c54fde66a41f95cee1ba87682ca6342ab76f6bc262632282a22293ba7be9cc567700b5c13ac19f126b16a43bae7e4af067d280590ff759d4c3a502ab563080dbfe1df14ac06d254fc149ca4d94813f81c792060502e09a88ea694c5de863ce6a50516cacb1c3f44bcfaeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 +ciphertext: 36522827b08eb3be3116df1a5c1d91851520ee9eda2a3fb54e3258d536e7b5345ccf7ee7c44e8b141a73f6251067f67090cddd2ae032447a612c6c5ddf292e1cde9cfd07f19187c2dcf0a8e5c169aeb8fa4e9db1d013413e62a7e42f1ac46ca3475bec9f8d4bce5805e4ab86d2192ea38e9dffcad59f45b3f27785d3e7165beb443382778afcfb1282f686a2abd4764a21422fcc626baa1076425e3f986eb51de5ad135cdef25dedc61023ed178a90ae633d1374eedb067896a28cda873243eabc246d43e60eebce06a065e0311ef7236b3ca74f8d0aa1147292f08401444ac8cd66dc7c43852941e384cdfa297910084c0d7a100086f6f41d1e103e0eba1db3a4cb9980cf1c072e3818e2d7ca76fdcc6b73bf91f30ecc19715671ff775ff9426edc903568cb55c757ed7f785135a14d3c151a1e0899820b5db36e7db087b7682d98580c07a4bb55e24972574f989f663adee7b4caa447bae860badb99fda32ba516afb3c9fda27a7422898f0d2f85537d3732c57cf3143009215ac73056d13e254d4ba0399f49761e960078b78da2a709aac554f0fb929c40d2affca4b53901d9edb42032b33b18238086f469addf7d27cd36d55b5102001bc18f3d1d3662477c0d51f37c150be0391bbd15889f21537ed54f2a3e4c4595819d83a39d70b28c4cfa2692eae6e9e3a71ceed89840ac4246367af61a04f90c3bc886594199f3df25a1ee7f6960ec5144313b15a1aa22e5309800ab22f7e690d1dde2bdca0506b68ebfcc16ccd97f6d901d2cf71fb5acf85feb2df8a22679671f1e65955289f35445451cbaba874b5724fd9423591a479b7e2144b9aa1d84bfb577cb7755dd6ea893f077e05a4c9d2697674892b8f66ae9c659a39d7944bfacc6575c8ea3721bfbcf1ca63c07574f3ec4a8d78e42605789bd8d905d1ae70cd4e9a9350ffd007a81a43694e8d3ed28e028cd24168cd84cad519b0b58aea046b06d5674bb656ac23fb3aa258f1f87d34f69e8b52f208adf0f476804e5080bc8d94d666fab802e950ea6c6a1f9f0c201773b303abe37af0ef90527f372dc298efd1b0768867eaed3c4b2a60cfa94ed6cbc4ded0a394e20dc7e5ff857cc7fe7285ba7257c3aacc80c9058de86b265437d0c2c6e9d1fd55be37155919e2435888defa734d4ec60789157693717fb5754b60636427c9e58b5a1af828873e1a75fa02d0763eaadc967f3973f9cbd129d1c0cefcb1facc557f1d8379db3d2b5a133964421691363178e24a8c6178fe09fd5e22cda6d7be38aa32bff539693f1d714d52aece91e93d38500a6253283295f51dd365d7ff6ec1edb6869f8e556e8444ca00308769cfabbba9846574691b6479662a392ed93de8bedc1b03a01b1e1612f395247691865efe48ae0df8472e3a07b34ebfe390c347e7f42b5c6358d679c6a22c84a7eb8fcb60486243caead763cc2db255cec565e094622d272407b703dca27e6783fae2fe6b42c24a9f8ba6444794596538ac4c1666626b3d158370ccb01fab7eba48c7e2b6029be +result: fail +shared_secret: + +# Private key not reduced +private_key: 672a64b0079b3b8ce8878338aee97b73d9ad1033e709a4547a4ec0c6cea6297367bce3b5d68b92a07eec5caf6f3abe99ca2a82bec9ad6318be48d75f9ec7cae3eb4d183fb8eb9a742216723b4bacea934113054af3cc75230e859decea990680fb573efc845a85dcab5c45fdc80ea45e68d4a819644037bd0966e5e7389c2bbc49cb9bcf193bd72b539d93fb993bb73f5f4be54abe3e609dc8ab8f991384b310bca58193e16fa964dc1cc15c933dda6d4ba6cb83c6a4e32d6f8ac1adec5fdc45c808c2d069470095e5ca95c77b486b1db3406665b0201498f82e588335c55d2366eb7867ab2a8deccf48df0caa3e637643455f7cf6f5fafdb43c8787fad449fa2e4f7865ef9566f72f7a7040687eb185521a1a57703de373d6e840b346d91b94ffca34e00d45cfa4b5364432c8ef344a837d3c09c21daf3a967d38d8eb30dd9ecd9b25837155663c9f3b6f6766a4555476bd4d74f350cb2640cc07cce818609033a8731bde7c234d9b8b4f7d77cdc095c11e0c8ef16b3eb64cd6f735e4b585d1ddfd4ddc26f096b99e6c1d36ef1ee8975932041a5d5f0ee9e63bd429e4e17d89b72924afd97770fcacaf9b09f924b9ada2674dd4ac40dc8471acf7e02d23d58a84d2471eda685b98152e6a295538dfcea9289473aeab46c6e3cdff4335ded9d55c5baa4829e8bc0bdb63cb7e631f3e1afe939d1d30ee95709dea6844fb97851d989ae9b2666984e48d62a2dd66fc9eb3632fdc7f3bb54896f8377bec827b50fc1eb3e4a630c52a32d5b4de671ba0ea9f69ef09bf1ebbd49dad4ecfbbc213b74ac06aa790a85757a9be1c95f199e7ca0ada5e07e7ccf45fb3f43d7631f3dc604bba95d8aedbc44d12f73e805eb4b8537e5db967d2738e3a13a33149c00fdf4560753f34b85b85c535ce644b16ed46b104b23b3c51562c47dbd9ff2b44ad0f1890fa8d44003e924994e6996886c55cbe191faecc6aa3d08a4f89d6f708495ecdfe3c02a6b2b30f732898f97b3aca896ebba3eecad6e7658686ce07da358033fb5b75c61beeae72a344293855f47a3aae1ec4b716c2121f8091065a07439a40abaf2e6fc674e4da6b1468b61ac2e22acccf25c0783b5cdfd6da4723ef0bd6e33c55b92e246b9d8ffef78dbc0dbefc7ecec46128863507781937b9e02b5356dfb8399c31b6b8dec1137e5fe9ae01d980e0ca647a7b36790d6c688e47529a32df269dcc378417be4d62bf40c484f247cceb77eb905c6889fb1ff910a974f36f733fee4b75c3d2e5148063e5ccf3984d0744e0bce9d96c38aa9ace4dcf69aaa3fb32282352fb4a315b736774558753d7a1615c9fd5e3d905fee8626fa2dacc96003841934a40de6d4983979838fb5382fa6dee1a4ce03d633275d3ed665fe3ea84953b52297fc36e7888865ade55f3466c0fdeb1263cc0fa91660561c603e81f45c2bd5652c95359e025d988f58ab5f692330d8b631e4195f570a3dc9c926d73373540538a56e22b4dba234eb315bc15b3c89ab64a9a7ff82e4cf0baa7aa540c8273b83a3a8e5132df4e3643353e5a4df3e986abea49bdbfb96cef8a6c4998ce34f7875fc59f0c5e6c39a52b7f69bc769dc6e3b75bd34e7be7c4f86a93507bd5114edc0055afab2b0f8c4481d2316c876607a02b744637928897c26c1c5762524f42a00b27d4ab7c198334a13750b8bee321cf5021cbe4536246a0879890ce6f042de3955e373c113d7c2e2df360a8fb5c76fa7f1f594b64b562d0c3b524756b2f94667de31f9a67aefeca35d6641d17d167d6d955d6bcc1709297c9277cf614423b212e96281f6100074d2c2209f976df6332285b3c412a8f618c5b5175302952366a5c67462b07fb74cecc5726ca861e47d4c599819d26329568c139ecd31b22ccac2901d0bd347ba5f10a51b69dbbbca90b574405d8c0600617e682bf81472018284a70982773434d07286b319ca4e3fa6b24b25171093cefa559aa33ad3a0336a1a18205a07ec4463511d3be9ce0b05944819b9647ffd94337c94b7831694ba31cbf8c7af238c21dc1060799c09bb8aae0a084cab07c3bb8502275398e05058b142794309e3bb287fa32a016f46e9feb9115f09a313970293b25e7d25c4abb623c1959d6246d7e00ba79068ea03963d9598fb2b04879c3379397b086960c0d896e419ca5f7667264e1907102329474867cf43a426b1e117826ca542cce64adcbe154f36637de2cbdbdd6c1ad7794a0c18fa339993e873ea54c3f92a68afe0445305bc97b76c61b3bc693e30b2a2b18a6cc28add35cdcf601554b17df39998516549b823ae1596d2a88acb9433433926af62263deb704a561b2f2397381228fc5b15bd93c3911db634b19cd7217508e328113d565b475393d95c7abe5a94fd6c1cc1283587b97db55109a08b1ae1060cecbb15675a253ea154ee19aa9ec29ec33400e4946b89b5b1b4ccd41362a3cc75808408f50ca8662b236f1830656a432e2193bc4f09ad1fc6a82252174a6530b3b078808c8798c9e110820c295797580a74572adb025cc31c75017468cae17c697a79df023aa250c827c11a1491944b9d6156d24b1f0f53c12a1aaa5946bda21485cd18aac0034de843489b7cae9ea90197cc471444067d01f873175693224c5368e3f3220ae48832c0928e65195510b5d4eba93dd3b217b79481aebc34f2123ce42c0aba83ece60034ecbc0ec4420de32851a998207f770f3e2bf94b047779b6187e083f7e04458c243d9125dd1641ec413ccf0a02811ab65d7d954bf4cc0cae00c384889d1b23405419180ec83d9ccc170e0bd6bca3e2682bf3471024445329a515456175ef6c167da459da6f3439dab20fb28bfb9764d5d9b9af055b442399361e91f84965fbcb31a4db147cf5cbd37b955fa3b0a34b78f8f4b2cf584c1f3646b5d7887a99b3847ba9010a69c89f52653c2c4fd2a6cbcec2d00392a1aa44ddad605d8e1595d2ba305cbc86b24a47725810a761c45c6cd0177262b2c85beabc07f5086ea31bd443889ae657c9528abb2769edc8cc74bc80943f92e88402ec231823e15112ff5624c982be7669010e31ac9494334488105eb88658339db648f30b3a08b7a7b5bd1113a83055f673a8fd6ca10cb4ce3c32645fc42ed24420b222d512c68651a0b99875ef8e913b984c709221228e51bd2c2407cd49a06e83f7f12c15d33b0252937f857beaf9ba79045cba8264d7706270d4787f6ecb8922582b7321c26da7813eb1c61a80038289cc84a923e03d7ae3cb232d5e0c1e7715d7b305d86d34fe89069774bf4339a1249be49b1e5c52e639e5acd0fb97c7eb44df56df5250c6de7d171c467ce6887eaa4ee3d61a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b +ciphertext: 1f5fd91c64602f502d1373cb97805effe1fa5470648fe8b403524d8031888ce5a0c69c5b350e7f47038279b9ccedb1a124ef224764dd81a80f376a282e858e2feb10f2062075dc206c9dd2f4880d83e4807dd4f03518f2fe0a57f21e554626db5ebf5aef9e7594b6c439a75dc4d6b86bf0011effd8fe05f7b07088817a2f8b669b71cd9db8c4c5981876d811601a7b6cb542fc8651ec0e7daf101cbe22137bc07df0be881e74b8b09af648a20067c1d98c995afbf286cc566751fd37b78ac33c2e1e41ea00b2d280d6b8a3d963835f84223a172cad0a37194cd8283515a0e8672a5c2cd315790181e6482156ec6ce6d361c381dacfeaff3bf013ac9ed98cc170297f4b1945ae1d535b6c6cd3032d48cdb5176a988371d2c606e4933cfadca235657088da565d528899e147b5cc202225410966e422d31048048ce770443515c403a456a60178e2e1dd77d9af89214df32355b22de9da57fe774b3fa2a70487db5acd94ae8e84a1648b502d3c47122b912d8692673a230b72a7852323b9e303a4fba4b92e28cae78816c9a51e4d456eac1f8619a8e31c37861ebf20364662a5bc485d55e026f4054ef6d01b2e034617b392b9bb8a250d2ba7f40c45205ef68ce88795cdfb2c5e8b829534d5b9ffa91a1ecaabeb08be329d5f4e99bc5c069cc969bb354a9a8efe99cda86937bce9f1b05ce27b2401acd985ac79fa0cbfeca06a6846c273dfaf87e3f1919cfe660c3cd2c2dce327d0804ebda3e5e7b43c9c80c9e1a2eddb342874ed9aacf3895bfb8d420d1377d44effa9a0b2c56eefc0e068d96c59b3028e82cca15e11d4bfb438e5c81afa6ac5a86b9d76f7b9f6b59a4bab581683869ab687d657806ef8ed1ce67b8e6186be98ac7fbdb6df7f9334fa5eb7dc24e5e3084deb1ad0b9892890c1751e5d3f2f67e4cde9fff46fb8a2b1a9348ebad7f6af4f9cbacf7ba0f5b46be61fd00ffadc0c466afc2e6e1330295846a2a681770ae8f2ce09b9b8c1e7e33a5a406b19f428708f55a0fbedbc9f2234a46088d4bd054ab8f5b2849724f0f6856439a4078c315d4fa5a0a7f5566503365f836c567e91beee69a204ef071149c85a9744442a1467d52bbe0f06fe4022f7ce152ea8a543249d7c1bfa48689178daf4727218b39324f0a8eca34f016880302b36dacf76b8ccc776878f0757b16705d9b44faeb02db311a8649fe9d41e377509b3aa8a5a487656391ce64960f34420bf5385b4d61a65e1053f9e0a6559e20eb839b709e8bbb8dad3ea772e5d1c41db14f260c90ad8e2b45306010fc46a0878cc1b3cebb440281da6862c9ddaa917ad5f5d472c1045c2416f7ae434489679d84235af9a16bcdad3f8a300778b5f247ac8a2c2fa3d7cd64759f263e3d8ada71fbbe3a785bf620afb1860e9db1aed284e7e471d7c7cb09b78443946268a50438e3520d86b8ef9d803c395307ac2260c075e95dc0d908b1367d11de1295d069e02ec7c734212d5d8df66b9245280b3d4d63b8b93b97226227eaf9a552a79d442a38eaf6942ba +result: fail +shared_secret: + +# Private key not reduced +private_key: 0bccbf3dfd40d5b87d758e5458749aace6c82dc66a6a7672e534a60474b566d4d60ed6ee23f5aa650f45fb38e7186bdb4eef6ead3744f0373f427fa60968f1bb873f34b94733f6ddddc3e2a1ec916ecdc10aca85b65a9407547c134becc43fd5c746ff3e458bbd5d7ece9c7b13176f877336a7348b4d785c3eed641e1dd268a3792acf54c826bb654ee7e36a3b292fdeb78ed4d8ea4509536bb0d54d1e1e720b3eb4e21be4aa57a81f45b31345f5d5a49eb1c59e9cb367755fe149f734b3b7778e4b3a2fefde5cd8a56636c100f7a704f5691d0383140a633ffbcbdc63f4ff329f46e5afb37d70eef3fc5008637708a248593ec00884a97f31b7c457d969ad8bb44841d5c76a35ab1fd3d31f7d4c009e45f80b3a2c9f5af27e4ff79bf5e7a8f18d163b18ee54635ce141a39bf9d35aa7cc9bd2a5603213fcaf8a6c623e9d524acdb43beffd0adc6e7d673de99973cfee046737b11850dff6fe30d4dd2d8cf12354ab529477c9345aaf9ade840b7ba236c7a3ba508dc995e6dc4a80b77b6deec26f8ac42304c91d2e56998f9137e446e4a4e4fe9ecf7c9d34f64dea81cb4d335ea47c64979fae33ea26d12b2c48fea9ae3eaa71f63f72af878d356447c9fcb163c938225a53119b3cb914bf9b9b8bb41afb99a6c4b6ab505528863a9dfdf79eda9f286080fd537c9fa640ec4a303ff075ab917edfbd490beeebd6435257ac656687ff75bc70f7b6282f664da578820aec3378e9d8367466e936a637f4ddf9c6cf439d4438f645d5b13d84754799ab727dbb13faacea545ec2f5f39495ec22ddeaaa5b31f82f47601af5eb05d00443b3b85c3c176450cfeefa8f583716a93ec1cb9d8e03436f383a3bfd322cca926dfb45564d45fb9d3a5ae8be04bbcaf858a84ec35793aa9d03d3882ad873289a337e37aaae7fb91298fad657bdcc08ff65ca3e554ac1e16a44d609c62dd7e356bcd4536b7ed72ab0ffcc998113ef7ec68f7fa6c762efe9a8a78fe7e5f7f82ba8169fc89513b47be4e470f7e10aca8b85c9d42bf9b4f3ef9221164bb22adeab3da625af85c15c92ffe3630f19c3600fb9b54bc0c2b958c2cd88491b990018bb66996bfe868a55f9c000b7f264a649e535bc5e5cc86c1d79f556947b8da6352c6bae64a97ef3a1bb2bf886fc5e0d284f81534cc4cea6403b8c294fcc5909bb642343fbbaaa170af65733d55f7644366c7f4744c01427b9dade935afcb732ebc6f2f6cfb8a6c49258fe7f046b33af32c3d74472ca7cf64490f0f68f4eadb1d81650385ae288f374a2a9c01548d5a37d9da5e5e54f79cfae9a564166c601d75d7fd3a434269497f4ead316adc65cb152148327f86135dd85b2c8d9ce96b16f6c38e5ced7a2fa3cf12bddae7b37c4285f3faae0e10d9fc8dce459cba60e48f22648bd76a8c77038fff5c57b74f393a9edec0fcd5b4169bbf487769de35e499d382b376c030aa67b28a2a3aa4d8cc8ac6da6f54dc7911ec48076247dc2ebd2198d975a49b3995854c22b89f4beb1d4993c43456bb647c8f83ca66e6e3bf3eb3b7da4a253ada7e2f6ebf83cf0f0ceea84deb9d2ed875209916377f83196d2d4f8c5b918763ceec1b1479036bfa52f5ae9414fa006b483c1cc248a969a9deb8ba9c43e80799f3e287b4263bda1a1055d152be8c84a4df5447b43295d0ba65d2a9b2d15a3b139507a3c2a44965e68e7caa4d9aeb4f67ced404305c81782ca49656775e10aa531f01c66793e198092e2b538df264818e7afdc94ab3cda837164cbaeec93fe2b8b59397482f084af51976bb6161c026761a22dd5a26457c648ed0817ff0a45fbc8c7e0e6c45767b7a720997ca60453785b73a43522979d06b365481a54e8124e9f4274950315faa27f5f8c50699164414398d72321a9d5c2181338de5187baa2c0c5097bfbc72945b15406eb1e88caa3ff92886a6a4fe2c8794700211ac32e1968643ae5a6c3aa309433cab3e48aa93a560fd18550f19831f6c74e811b8be5771244954da635a2fb6c314b9d77f1bf26fab613872d0a2098dff0b060516feea45293e28c0ed088bbfc0165a1906473063e97c5b2825100116793fb1dfc9447fe3227d96bc5e999cdf1f545c8753e4ab43d211c80ba9646e86651d928b0c9e64f5c2ca80b99914d878641a53a6a385acaab6d9b5690d11a8ef5a08c35e80c5df91463c76366282543b08c0bc3054ce07c32fc10ae021bdafcb744c20dd131c8d4146f1fbb282250941d8a1cdae68b4c5961a7a437b3251f144586aec15f505aa79305797a16cdf4c89209b02bdaaa0c0d367e2dc7097a9900bac5cf7063c3b2027ab05b204fbc997f333122798670e3488cf4bc64089a15a97f0c0a4ab5680fb9d5a9a815234e158316f31948b80ca33523e2303838d55ea2368b037a607b643ee8b2488ee456273158a3675b56967ce7b4a1bd2c22a91083e474ab9121cfa0f2bd1a24b27aa317c34b968df055deb839ef172ffd0489bc524109aa9897383f9cf0226810b56bc75b699187bbe86d465c7a44b65aa828c40ce76de88cbd6671093ca1689506657cdb6b3cc5a9a0293d16057e700a3bb7623e3ce1c8815b1d17066853b1cd807c0803f9a9fc2b62f637c99535a1733159ff79a863ba9203d57c80f0bbe02052e41004cd42388fdc695d9722bb0147c55510cfb9347127002fa9038f42551fe1656f1c4ba91c47e5fbcc5e83013864209290cf7d901213a26e1fa79aa7576c7c4103cfa01ec6e1459c9aacc449af7d10aca0a4171b284d4473c9af9a84546b03c7d5cea7bc723dc5032157b58431ba9a895d35f89274e827470babba0342567648ba84a51aa5a604b4c36a27c0b2710b2388b53085603cf62d9ea0a6a6864971323ed9e934d7471e65a4915ada5dd1e7482a37517cfa6255782ebc7b789c4a6d2aa746a811c0be90079f138dfcc812adac7c4bd862ddb83cf0d6b74b623b523318bc807163e6c98d777c7ed0628266bd53a29636b601e162466cfb700ed35b0966a7daf32e7dd67aa1c08e7cca8f18fcb7bd3104bb5408637c08eaca654b19523ac0a031b76968d71d9c013501a1350742467970c2813762c1b4219dc904202984cb49b33e91328b0350ad36b4a7650f7505b11b5c6f0520cccf788b87b5aef42b44b567c42555c74f40ce66cc9003730928e859c77099d8149c78588fdf0c347eeb6752b39b755122e715843ed2a859c02a81e7705127a52d53047f973952321d34d4278739c4bab50a5c344011cb196dba2bc5197accd11b3f6e5d57b37115e763177a6910c9866c85ed61c69a350302631bd506be010a3f42112ae4ea731d515d80c3a21fcce60cc4d945abce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 +ciphertext: 43ca59d61117e53738b410cbdee068783bd99064b5c2b5238843d7875a72220c28aa6835a43e8f3ed0235b92051e496e497c739e1af2e2a7765bb4a038d36edf99f0f8789f0acb8ace1e1f981d3cb4d881437dd6dc3dff995b5c53d3c8c0b7090057bfdc7945b2dc9e1977faec3879e200e53cbb02e90dbc8ee00e3ddf74546e58beea2a58eabd3f9f513425fe38af4876b8077f8e679584dd5744b9c6f2d4520373da8ad93dac74e6b91c2e186bd7b18f15ddeba8c179375414a42fe1548f33244dc3191227b59a3c9c494133894443614dc0811f8bece03633d38765e214d96da45f089182a1a6836d382256dc0937fcb91c4f38a2e388c327816b622bbc3e2e76123d43e4f3a7b4492009178258c924de1eb0ef07497d3a12f56f61a2667fe8a7d43388d892803a42ce48204948dd9e28d1382575972ea07cfc9727c0b57fbf7456ee01e377a246022d3adba2ea7b4eedb3cd16a8f12a381df1b359dbb3764eae94969b48f53191d8eb4777ee0987dfaed4ebf93486ac233e24554700640d19211c353cc660da14871a48b474199967c7f4daa130c75356d509919e33c17f8336748d2ef4a4787a502dc5b3fdffb9a124ef31f7197ae578834d64e8d1088f75f8879aff16075c48d9fc72f3facd3fce6802f7370fdcfec030c5f70f163c109062eecce2a366e3c5ef156e3443c010e1f2f520c60e1dd89998378a6859a594c65eb43ae734c864357ebbb0dd172a8c611ce8d8f073340330a57ae7bea54b9d62f778f963682a40f75644731366de60038f4a4d1eb46579ca1aa6ec09690eee7384000c35916a1c6461975ba300cb717df5f99de105fb197d2f4c540c5c87e44218adee452768631afe676e5423d4c1c8e0270c69dbaa56f146de0156c0674e60811965dd588ed266f9a0f1fe406894bc7099b26e098aad64585d7b7f57f4170526180f5eb10c10442dff1a3fe1298444391b4bb392e54e3d5549da4dd4de6be3f361d4b5c261abf61e181ded24aeff4070e2aa504f5f2f7b0e63bf00494bbea72c33a972a5d946aed66c3ca411179340246155fffb724ed2714426eac5e331eb5b7a196a16f22820e817448b36d75c2a90ccf453e2ffaea1c3f21ea8ef21908dc2f3346315c703d44467c7ee02316915989c22a6b8254d96dc56b99b6e7802e3855e07297565b63ff5dfdec11b216271dcf722fd46041df8b2ee07e27bcdfd36703d847e2b3074ccb7436b56ad9b33c68fb1a497d81b8236cbc6a585e1dc0507a15a30b3d2180c754a8dfce465bde430a2d24912dee434d59f6caf3bf2211f20262dfb5d5d0413b824e3cf05f0ebade427c741b0ccf53f84cfb488caf6f401ece816eef2f94fa85d72c445a4397d26280448140850990566ddd703e4ae232595e558b0ea45425de6cb5a1f100f2ecb36e9980d66def6daf65249e8487784ffa9425625030e8336f1c5cd9d0100631b5b5d0cd549302ecc86697c42cf39629df1bd5193bfc5a6a9a0ffd04400d0b928d35536e46cbc8f06adb7ec341af71ee4 +result: fail +shared_secret: + +# Private key not reduced +private_key: 890dd8f52ff6435fbd88a985198f92640647b1b3cc05c76af4a6cf3675b42f4482d95993dbe3f7c8d4b863a8a52446c45f3de9e983c05c5c95afc4a0ae96dff16e89407ce555cbf92b6feba8fadef57ef5e69dab804b42285beb2bd3338e18a6d6077556fb4b4c39ced52ae5568b9d0244e12556385329375d55847d6ca3b3c3444a58f82c166a219aec2128eb641936ee65f7a9848567d5b2a0185e10ecbeaa87503a338e99cdabea6db6c10efaa8b5a532a3598d6a99d56bd6cd37bdf8d7adfafac7292cd0e08af816c7ceb6dd4461e5d3e7f382f1efbcd3389d7dbce97ee47ec1dbf261059300b7da34d4d07b3579a26884fd87ecbe19f9dec5b2c7cad8047c99fbce65905a7665ff7536daea8995a976439cd67a7e4fec693ec8beb3fcfe1353c43548e59f545bbed6612655762af9df7785cb8d2d51a4ba328ded9977d85434496c9eab763f796f77a94db4343888eb753f434a1916d71ea765a07c7f21257d834681be9734800fdd46bfd7ff7968dd3ddb499d9b62ca4e2caa8e91de518e7373966b76b69b65b099814e19ec2867374f5dd9b1a76356bfb04beca33f9949c3e7d0d1583f13ad7ec7349c57ab810cd3471b8e8f8bd8c7e8656ad148561d8fbfefc8f7c34f3e92e792f6f79a8feaca75f663b775e06b9376bf66b099135c1a553e5b4cd326b6774b384abee645b5cace1bda4efe6fe967678adf39eb6e76d2dfa9fb14ad444f8e7576f9487efde4cd563afc086dfe864c0f565a2304338e97f32847c2c0885e008536e4cbbad69b78e73794999a5a3bbed96ac7789e0bd59f273f4e04a92b85304feaebbfbcbbdd3d3607d85b4504b544597beb5f4b79c3c438ecf5ca76e2d434857a7ecf95d343ae3ec7a8aa587574ed2773535b8dcf0b43e840a55290cca82b74be2f59e5af544d397552d2678a9c87efc8abdf00d6a36bc6f76d1dc1de195a271b7cb34b971db38f28fd71b7bb4c44358766fcf3d9636e934bf3908ad8ef79ee453958b325c6a9136e58df555485ae036ba34a9ca1333bb07015821187538a58c2af375dd6bed6cafded358bf80f07cd7a08a6a9f6b7adc63ca50589cc0feb17edb3517fba13d9792bc5555b87598946471eccb42e27c9e2a8641c65f4ccde764204ec38fc888914c5d356fda47d7390bea6c06e330f27e47b87a8fd294996b3b6bb0997b3e9a07636fe7206a879177ced2fb51dfeb85535cb3d056e3c6e90f528349b245e1fc5f4dd149d218c5b41b34cbd579c2e3bfeb328cc66233a816e77a316956e37a69513ca6183621417d75c6eb655eb5e5f6dad168f359d954d859550c115c0807e304368546d9f6531a78479544a6fcc492e07f9ff0e83dfa6aea27b75bdabe71736f022d75d383c813b2f47b065939e2d968a8eae67d34318aee8dd1682215631de7e79ba58de54d4a49df6687b1537ad94ee668b36aef7d0311e51eda7706adc6572465289588556df63bb484bec5ea428dbacb9487a3593d597457411c899c2099559acdd3e0759660d40127b92c85a58b4d87682c3e0d165af1c8ee8e743fde809ddec2f3195dcea422ae685273078fb7caa4438f7aa4b45087806776188dcccc337e70949c45cfaae192c8fc0ada033e4a6bf137a2d5c4408040972bbb41342a6f2f97c6bf7b5a05a92ef1c69a3e602f5062b4d651b9af148ebe566059454ae71919226742ac151fec6623bd5531699282cd0651a1bb436d113202aae301a6de6c132dd020cf0235944d0a041f6ad92e404f87432bf3a28035c4f6e236ca6e6b56d924800667f8816839549535f1325ceeb5b0e194b89a5800819215737a40988a43336ceaa914800278944ba54edc65071b63374fb041f07a66d5781ee8492d35221c53495248365cc438b4a65a745a64585242878997853597ce1f45371cb1f97f8638837bee3cab372c024ebe4aa52455283cc2249d82739ea481d685204a61840c856617a210fa431a31b27532b5b0868c2dd0a1e2947aef0575934905ec50c33193c8cbf15c5bb4a89b39c63337b3f4bb3b61b0581fe2362037bcab4c62ee14ac3d8a70486789a6d9641b4a112f1336d7e613b13502de7d1bdd103b6a712bd4c9ab0f5611ba825aa5b344ccaf940c5abc296088893626120b4aa3c73c3e27520b6c6411aa745cd4399bdb627ec584ae3e2a9081c4125cc37f20107f70161975355ae779d74062d4ea062a36a4b63a20e22f3af346a57b37747d3d68a486133857577dc3040342ab2c8a38c9702c66276b5439c82465304f22ca9a316b6c078bbd00a748d9689283aaa0fa584fcb922de15c170412ab5819a18019cc9221533a691503a79c71c43de9453922264ce5994c78a3ce43a1595cb0c761291200b9bdd8b6dd037326e5b40d43717e6507b5f7bbbf71800cc7a1143e7101995ca2c2a06d3a501229a913e3b350cd567e59a03ac54c35a8cb0e4faad7402cf6353a048461649d4171406503d0380f543aae846a21df31c561451fb8707b6f15ae138a8d11b53b4820e97d1293938680546000c7552dea31d4ad50e914cb85935cbcf18821d22b20d309023018a667424ac7aa71532aef2c69c0dc545e3e501e5706bc1c19b5179bd4c4ab22dccc9269560992637a7887b996a6754721a2ffa97be2b5fc2a512788334871577f7530bc06430e539aa7ee0acab022607554e2a3160c2026b8f169cd3537f523b4cb3096dcaeb4413f93e8dd26c774c98daa269cfb702d3592984a3304aa56809b61f5fa4557a08c8ab20a634bca903f456c6e835cbf23f647a47971c3726ca216014459a96531896c8bfe74fd0eb074d74a085bb32bd57857054629a3b19d0105f5aeb5e79d10b0ce0ca1189756bd74324acccebf80e849969bc008adb76ab38fbb47c59cbbaa33f22759d5f879f178a6ec6e37309a15d70c286d7549fea354b438b48d4e73d6b0584469433cb86a74be82ccee60e4a0ab3296a31fdb9a66116a765e2828f3caa12da7e0a4a0a54d1ad9d141b98413c45d277a4e0a11732b9e6a816e3f1cfdcb62d11eb09406b83c5746032e128cc2897e3243840652253b7865a079309b7ce6a1a5b2007b775a463199c4a90358b416435d69bc7c6ec48a155be7570b7fe2626515a09037a6d9dc449e344b0d570be3cb7b70a720156858d8656c296b54c7377456d22ae66402c6fa7a4d2921666171352f56cc03a76365723682c5ef77437a5d16bf343972c43b10f56c5770cb8e9c2a955e89c35d932dc466b0c198874bb242e511f4f4d35fdb1eeb7c0006fafe38c636dab4728b6725dbf53e59cb8866573e536b4017c02e31c8ed7455c841a5ccdb795fc200acaf1da2fb936bb597f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 +ciphertext: f96a0a1821b72297b925d90cefc3897dfaf0160826a92ca95326c8de0a3f790f520c64b87b0f47df0a9f1b965f51610fb40e05aca0dfc83ee06684e4ea112b6386d00e1152e4601ebb8d90e8892d6b0544a9176d9ad6ec243995749c6ac9dc4c92a3450de5823f458538464f40cf99738623c4056e72abf449d12918d209c082092bc0df62cc599998fc45bd5f6a1b5a5e58e818bd555017edba520b8f7ff8db4390aa954fe592e48f1f24289092f1b7d174e32343a3a9bcdbbd1bc0f9ac32bc0ada8bea6aee13e49b42f51a7958ef5e5f720c7e7a628e5b93c84aa38fdf3694849bd6994435ee77f9f0ccbf397e8e0982e413be93bcc86f90ab1ce79b767c462112e0ef5ef64f0b096fcd68c6dc654a1c8ef18958a03fabf0b0e3146da24b05b0ca3dcbe899491a30c8e0773873e5d91677b875a333b5996556909c8b6decec93c7f116e86b5828469e8e67e843b04bdef173563be03afc1665ec223a9415450a64862a6291bd1cd8319864c7e3fb21a83f5a44cacf2e1ada9f51c45c9bdfd632a4b1a1df427a12d192c1fd9960bda088f945eecd2c688241fb003cfc47fd8ecadab8af704867266002eddae7d0d375eba342601e3390ac2189807684c94dc879783433fde5a9dae58f31d92f9d4b554bc02842614d0e89425fd293625214a136e183689e1e447130a19cfec4a02aea2f8395b302ad34406b5a98fafc1f8ca3bb145c5337603eb96e8d1b0553eaf63512994b7ea7e130d6d42a078763b3593e34a79db4fed6973e00516fce07ae7243cd840463f4886df76ea643a0d0d6501e3876d4f052cc704b45bf2647215e69808b9eeb118e691544b977dbd5f3915829742cdb1960ba4a5c75091d6d5a0cd894c7a25e19daa208be0cc82e8ba1e5d0ff6ef6a1321c7f42fc80a4fd0a42b0c93ff8e48b2b60d2dadc5c2052b2facc783526fb1c28dd506be55c61bbd693521b5043bb472112c878f5a82c12415582853cb0ca8f542fbcc8c459e0880be34515f2aa83b3ead83914ea582b8872aa7e7a5be89b46b23e0a5be37a354d73921c5fbc25d1dfbbb7629bf38b548342451307db877a807851df9bdb66498a3d5f2b3762665285cc23eab4fe4b1bb633c1debef9bdf8a22a49501ad4b508d0e32e68fff82478c4c6a8a3d8c7a2b78ace428d7282c92f55086744985365443d6c769d359571f98401762b736694e352019684790566517e93f51228dc56ad351e420128d8368c11a8dbc3640d372edb0bdfaf18770fc191017f2805c5a4657c22110b2b39d3c3c9611b7a000a186e44d213f9e0204bd142189fe115d39841779dbd9e4e24c04d234c5a9c300176b1199640382d4a6d2d6139a31873d3f9a207463760b81ae17b0d2e796a7848fee92eb44fb77a01668fe35a1ebd679f04a616b86cb95addba35678a7c2c70f90b2b75b3300d3f73d59cc95482e3ac87754780f96bce1276bbcdffe88b40e06ed94fd80e281c63efe1cf6811cff0097ef06f23a34dce62c8b904a948b5d9ef2d8e459a3e83c4f7a2 +result: fail +shared_secret: + +# Private key not reduced +private_key: 53a58b532f9950c6b8aab3bad4f53abe3e9322d8d414e8e7966365df9dfc0f8888b1eb3411256bea64bcde19b9d05e42e5698316e8cad22846d3ea9a4008512ee83cf1c8517789366e35814393f6252e3a30079f2e9bd7641a6817ded5221eae088792c7d3d5e9c442a47697b41f945d5ccb417ccafabe649bb74485f4c73ceaacb7a69e06647e531b5944d64587ad89cc8892ef0d94c33d998b2fc9a2cdf30557c4bc3c454fe33e96b9c5fc74b2e16ee78ccea0895a782f84b75457b81b9d5e50ab4cabc57b2fb99c5c9978a9a4b2915459fe8b474b66c73fcfa4f3048bc5387ddbad66c2dca233bbd0019bc2b3a89ba58edcae9a8fe1937be8ef6b64bd39f7f3f4ec97df2ff3c886ac6490486598a6f94e55c7faf5ff50753118fdff9385e708037410e3558c87382eccd52d1783314b59578d4ddce8c378ec3a479ee570ed44248dd4f2f58c59ec8b977c9dec63678d494a22b76e1d8bf2093be6a39c696c8ad4def98c258b774a53f3ecd6905e4cd2683d4d94a59029ed84d8feaa0d9f6966fd87f0d89275b88ed075c51ef4f4c51f5cd153782e0bcab7f57e0c038bfb29798df5579c95bdc12ebf6b0d5a599c3ac93e7a26d94b691dcb1007b9e3ac9447399dba7db5b77544636481435cfacd4a92a7575c237d79813447939938125670ea0f7be04462ef8cd0346af6efd3803a26710ba9757a9ed2f855f65adfb9bedb387fc9faa038a996d5ec9278edfc0cfe5754bbe05be682dded54df957b73f7417c4a902fb80468808d099055e781b5c4a5940afd57c9ea70dba990a8f4b46944cf553d15a8c0fff742f21ef7184cd0e3c6814cdbb87b88915fdc92a273c365be8b9c16afa3f5ca251a417816a13214a3adcac650674c30a9f3d74972a61ee4da5e64071da9b4278bee19c2d62da2389ea136cbdafc3565760f95c945e3b819bea8cde4457fb63e2b76e29d9816b88bba368a6f4e33198e923ef9fadc28f7d3cf92195ac1ad74d6437fa562ccdc9b3f5731dcf992d373404be867746c78a89773035d1f7bc834adc9f0eee42564cb53b494b236e54e7cbf87edcb8533dc2d3bf4994860515d9bbf8340a935a53a1dbab694b22a1d3158776b4a95e13e3b8bf8438fb7a5dd2ecee53627abbeae39266d611d7f871465e25a4984dd743a232fa6ceaa88b3fab2caf9c7bf17adb2e9be851e63bd3880c7cea6860a8eafeaddc8ab3bdb2d51f7aebb313332777ac5eec69e107dae83958d397a488727b57553a7c5cfd9e6c6a0d16fae0c988ab89786f764622879be2d2f7b7b7e7a3c7962acda48df3c84044af1d2d85564159fa7e7bfadbcc6dfccc335aa3425fa958de87a70bdb5563eb66deaaca5daf51c359535aacc818abf8fcb75aa4f3e2bc9d3d39ee618f5a697ff30cf5dba48eb786b34ae60e8b5d6d477c3d363e848d30f58679637f728c37eb82773ab186969adc2d6ed3717ca5918dc420bf6df77d6aa7484c730bcacbba7dde26ec525973171e638b74afb8255d8f038ac5c6cdb43098863485ebcc9ec08c6da0c83e842a569c93ad77c06949d7865e3f7c8b6e96d9efbcc48d4f8bcb8ba049669494663d2bc5fe86eb42089581ad73437c875b9d89f96675bf0a8d9c797aa612a100811c3131b8b99b3785a4a32c4ab212b5c0217b18a55190890073f2c12521beb9410040129d5947ef96b72c92ae0f58ae1ac236a5426e7a4440aa42c4bd501af4823cb621c3e6374e368aba59c45932aa0addb3473e96854e8a706c510e17ba91b8b865de529cbd093bda7b6ff8b182ef71651035ea6d8b7c00a6f6efb8dfc0b192c44260a9479539c5a4c38cccc6b1b7ff3697e3759f8e1253cf71e2d7c9119b77090a99b3be67ad965919bdac787f116a67b1ae1c7230b957cafe398027596d510b2ce87a73cf8547977631d872ed714193ba7be01bc7e16260b5bb00a4227b976eb5f0dea457d3a493d19494e5219fc67006caa818eb43ab0d80693eb616b8bb9c87c5e899321d6719801a9982049c6a98c2a63800405867251e20c117241e222a1281745e3929cbebc2444b9b0fc0148b81b96f83b9517a2ab24171c5c55898948b7f16c6a1a09cb7dca509a3876aeaaa4ab299781582cebe73e9ba63390b35847480a9a305ca7b4043ca32fa6875b88085115681bfb806268a7ba33bc0dd5311266e672147b089943c2310136ec47ad1652c681a94ff9d09f87e851f1941ab4755538d50d99169ae1bb2bb70aadc0c87ba3d2cb70f1043be7272663740ab74c05899cd7881be63a86abc13ec4e014cd1868c5799992a58a60aa2bbdc6b5dffb8915c3aebe3c9fc8f70ddc8b9b8bd69fe4f1b60202919022af3df26369c190f5f518a6479decd8626e1c16a1094e2dc7c57a1a189b8b2ed0d4b9b0d90662f134cf4325a1867505a43e411c3fb4c4477c74b658d302fea66022505a25cc2a06713fbe1c2407f187e427a0dacc9c0d20a8ff3c4538a71a639a9029f1c826e8612ba30b2de1c63bbb0f70058f13973cbee40f371c490581c5a61ba074175b6488bc9829ad658568304256bfb88db3b10a4fa1744e220ba121772d94b35233cff9f8ca6053a364ca312fe1acde98bcaa937121806b40c972b1ac1e15700ae67441e399bb0641977d058020f205b258a29bd53fc277609c31150a0134849b6b7d4564d27735507ac25bb2164d4664c0b37cd5b9000d33201831c732aab32ef114902104bdb90b638b42960ac870c14e6220806292b9d6d3bcef1a9b6e859516651f9019cbba1c636ee550a72146ab17231f22a8e1eb68209642caf3814a0121565504859810f4a81cd8c5bf10716136e77fefd995a8956d6ffc0a38f841a0905b19589619649ecb2b24ab314a9a85bfa85cc236d19600c7440771a727e6745829cec312346b92c1685507be82a7d3638d36d4a7641a9a042617c09681e0da904a21207cd7b57f183640797142ebb3aad3470b82511bb88c8cd2af6de0a4f789161f7b2c00e2000c95bcb0d270d00c89c5f102b86650e2f8a4c46c052a817cbcd978dbf2c776cc98d53c1f7db97a0f42594ef18b2444a21bb2c1a59a61ddda53d0105489967488046ff8679187800587f2ac8946688cf49e81da406a2684d1a6495d33a8f12b72686482b91c2272215975a484e8488d2b19ae220cc1387594da69195dc47ac1127738bc03ee72772481892734246681b818b16f06943021363ae890ad5e213303d86f890478a91c6d0ae28e95b4ce2a861cbfd681a47a25545c2a29b75946d0f45ba0aa193ca5544686d9f9a802fc4cecdefea4a0b33387825115cba8b0ae7da0d1aada1ce4ab05bc2479b360b6c56dfa870ca825d82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 +ciphertext: 3db10016c2e241fc73153aa86e26766d09c5f5dda88453093477f69b54282f90c00454badda5893ee6cbfe30e559d3f936584dc92c7f15bbacac3c97ce7992815e7cc2a108d7706f7ea8ae3df2e7b419daaeb41e12d97444b8803d25347c66ef410601d9ba341a1ab8a1351c4b59dfb3ba3ea5a63e69af64f135fcd051ce739a339cad1eadfbb6a01cf1de615406e4cff7c957375ce1db25a25250190f021005b0303a077ad8163b777eb9e3f5d5444432d8db403990e0bae063ae06a47fc561dd283a91f3dec6335cd0f565b406e818d1d57e9dd4b8c4983379ee60e3490d23f052b93b3dd4cffafcfe6353560969826d3c8765a1112d34c2c9b0f650c3d7ffed1c1fda47c7e998a0b71674d4b15597907435aa03584e4cef38a5524e7f2c0e270a3fa24f72aa7b84fe46001b7bdd7ef56046404774231e74058dd32f3486efe98c8bb91512a4eb9570f287895cf97b3abf9c71b175f7fc503275964d50c8511acbddc2374c11265da5c9b3c93e2765980d563d46ca5022fadbd370b76249a7ec1c2aec49d9271ec7a78f6e29000f3535ee273ae0b86747193c5b4eff608d6417134a2d0ece1971ff75df89b74d72efad92751a2751aca93691f2f08fbc560ceac102d03dff61ccce343f9074623fae090155002c01c4a70f9370088dbb1bfcf27d6247979f3fcf2a52abfb2238c4338d8a97618210427c425af435a5109c85b444076eeade7e4ca050f9f0aa63e132298fca9492fba45abee24ede0778113885c46b74aa00f14f8ed6a116d586521c7d8204619cac4a946d8838e704e7caa440bf86dd2b5d4cb3898f4795873448ba508df393f766a79e6523a55157cdf62dc2958fde888b3a9955ed6f690bc919f7c2137b9dfeae7cba52f31d6b1d1293b07611892122e8bfdfb7dee37cdda341bc3c916adf5d942417dd05febb73c2ab1b93209ff83443635db372cf0ed96f0b0d29ca7f6e0c9a85f3ca6fae10fd2ab30e99e4e72b7e7813977996370ca29338eab2a946fcadbe4f2a38b4a0c19ac0fe6e3e7681509adcacc4006a95a3166fefd558d2531c908758f79306159ebe95d4635910e257815335c4af464bd48123a2a160086f6eaf107674d248c70fc7c6fe452bd34638d01e99686216264b360adaa634c6efd771d34db91c458ef5fcb03b337baded312b0ee49bb1931f912c97799b5048e96a2c96e4e65762ef5a533768e270302a028c58439554218274f5c12b3a87b789f1aa9962c6065fe1ab97c1b259c32983f856fd8ade0449217e834e4c478c27cb53eb5a9ce7a6f639c5b2a0eeb2f607f3551c257c5deded63ab4ddd59d242743841041f2502c8a1765f9980065d8404b4bc2157baeb1c060d096b0bc9863a1387208c97f6718055216427b501197bbc6803e1937b3bc62d161a5f55491f8e87c31229849d7eaa632d50df9af1a95e913df81580bc858e7348a03606abd7447d0341802bb6112b499f53378d9a9c882e404ad1fbaa09a2f6e96c37d9f762371970150832f3e33d5533d6475f9230 +result: fail +shared_secret: + +# Private key not reduced +private_key: f3bdb79aeaabcc2b79b4ba975e0baedaaa5c80d842364cc03534d88c1ca3b85faff8adba70138dbbdc45a969c12e36819b5be01583a9e654d7932796190751d393a651844f785a5fe92b567c3cfae877bcea0fc887555f93c6f35e8da23d049e3b9867f6164c1dc6ae80b8a22108625dcc314667d3572b3a8d599f55e694f49e496ad4d2e4b754f97b4203f3dbf4267be95ca1048bfb67b36c00d6a9a86843b15d8440d441afc56362cc3594b9b10a3d73d4fc6ea7c35901066b263d5398f584869d5c6f99b9f583927af8df82ad6b5c24d4e04c361b236a3a78e8614cf245a47dc1b6e354a6e1c627ae63e38101eed49e0c6a923f87dd9edd7546b6ad4891c64cf30fff85edffa47716c8e1da751175b0d5d4c34b569b93d895461cb2382c71c4c5ac2e53493ef487de6e7b7c643d7bae608cd798864d51b12d93904c5f3efac3a39b98d6c69f500fbb7bd6f102f3f6d52ecb72eb40411549b14cdb443568bc63d70f48eb962a5452b7aa8bcbabee0ad090e7493077b3d3ebff9d2bf83356fa7396f9fb8e74a449463e39cb097b6b81a95f01237c967c63fb3646aa3ec063e33a0457bbd8984cd02438a61ccd7af577c14eae5854fd4869ed7c65afeed9761736852a374281db883f17d92ecfb1e52ca803c9deaa3cb130d86ddb67303aa9ceb6098ee46bfe35cecc1f149cd9f69080eed4ae0e865e84c6ee7f567b2497b86c889accccefc6ea35e9412ccf5d18c438f658615793814d93c42ca9b8462568d3e389b087568449f6a9a7c0b65b4c129e995bc3d9117c52a27545f67b8a19cf70d8b7a96cda9ebbfd8b556d97d0dba23f543e9afad421bb328c7cca389fb392fc53b31c41141fa592a5604be84fe8fdb8f393a451ec73b7c831d3aac3d2bed58e17bd68658f73e697070ecbeea3c7994e7dfd4bd911b364f3bb65024558185ebf765dd226bbfa45ca5ab5d5c31edde8b61e3676b7e32ca3ecf87832ae85c5342dbb199d4b6d1cb9c87ba1ee0d7a80166f1e649a8a1ce2cfea81a2eb4dd615794fcdd6dd29713f6d8bae25c1aa94f773e8fd7b6f4327f8f6786b38f184aeadd49808d5b2c76de13b5c36ccf8e2fda5e56dcda1d9c6990c637434fec0179b47c7389e7214652df549f47f4f1136f6b6de418698a66eed9e6828645b8cbc406ae9a9b9e0d7bbe6ad1384b109535dbba89033f22f2335cc9c68aae9bedb34e475d8c5150e77494c7f1b273f645586482f8d572e31b4349368764afebd54c13cd341fc8f7289f34d2e70cb7434f47dc601053d77355192ed3f9e5e6bc40a53e55d323fc76b466be3a6d66e8b0a61a78d8823ffe866f6bf7b77b9d93cfced93ea5a5df8ff5da5a005d02133840e0696236990045b5921fe789e4bccfb9dbf88b4a6267bd4ae1854ffdbdac0d6870e0a76ac5449bb9c9a9b9dd7ac28bbffe998adf5cc9efd3e9cfbe3a0ef93a3fc908366c17a0d4f9f5872668eec009ae4a45bf9c3c6699c2cc57dbc6c550f74ff6dd083ed885db6bd724e7e10a3b98c695fb91f883d68c0e787dc1cae4d50e5493da79630f35e229997845fd7bc3387009b5201b4a6b53cb90b06d856ad48de73be31338b4feddf942acd70bed040d836e12b650c1b9ed800414fe5b14dfca90fa6bb7e350684c3b08656374d54776c312a645987b9c80b28933550922990e2cc4064114ee12f93d3000164c333bc77d566cd91c904965367b2350b87a6b0b5aa7f8a746ffd4576d22083f23c0f3efc4d09ccb86dc4caa55365a8a406add3cba2127ece221c9139c6c273bd4d3b1bc1ec0626b35db44230662cc44af683c92176c5171337746f0f4900b7369df2b705b6387670b411e26288b8680f9cbb0a8ee01c9d0a9e4c61a19f1cba55459b78602dc14ba52a0b9de9da0cbf330d3e71625228a6a9e471d70639b05792cb8550b24ac159c5b069c30740d09065c9280bf2b4f86c1cd9b78357383b2bcc4e771661f4cb75c6589db317058e428398ea7bb88450f22525813058c609bf5b02a3098a619101c092f87aad3881eef6a2ea91a49dd3cdf1ca6952205e74f68ad5c06fc04163a70c0972c4ad752acfcfd5529b75328548c18748026bd7965f73076d4bb8f84159756c879a5919fa7286e0dc39f1884587ba5e124177eacb2a3e96410a64c2d5403ccb939e428b1e7149ca2b3368c11c8e1f38082ab06f39455d55d12e95c585f0098fe6dc44bbc97c1547600d79b193fa838e42cef6bab08d462faf017ee8414c9914316297cd56889207e13e71e544c6793b751174c5bb22294800785bb003589a899a562c6252ea679779522c03a0b933b07f29194c75b29693e27ddc6c4757cac5b9219d98137516c450884c374cfa8572f3b9e27cc706b205c398866df7972b8a44b7f975cffc3401212bda14c0bb9a50a5e5954f9534ee90c0f1f2328c618be5c2166be064d5d0a04392183fc5b3bde635992998b68b8c7bd7a0a1c3bc99975aab55aa39cc0e1d4c019ef73a53485349b58f4271aa29a4c8f8e97935981a83426b3bd0b5edd1cc10458579450ed4d065a93aa0fa734f3206718974ca6ef35191c930ef67819f535ea5e80e54659b1aec30534442e03cb9c4673679cc1cb205264ea53d20e383d98c08bff78447c3335a4c3bd6f0794ba019e1eb130faac0d2f4193a6476cf014ddc988e757b66ac5c95bb7767e6c32ea8027b5e5a00e62c582ebc4ae6738b9637355f62a053737014c475fa24b144b2b47eec97dab92f58bbaccb0c36670ccc9326287fea9fe7dc6a2ecc896652c9606943ca1a6e8688a821b69e33412025e26442aa2f70a68011f8be62db6e6283b9b85651fb8883acaa20885807237a51cec50cdd007b27c121feca8a2c026d82359de6d8b548d9a49a9914ce76584338bfc8f2cb51466414548cef544b82abcd277a6602887e4edc5e09a20b1ff343541c7ff3d4c0641109ed04cbdad8c2ee80ccc3723a3609454b733aec068fe6d28772e388255a87710ab88848722ccb2c3aba63ad04566b1ba4fdb2a2c07cc42c32b18e7280348c245e29ba51b10d4ae840b8f9858dfc68a73215ddd58df30729d2966d11d4a5b20a6d441071bd5083fbc050232b7e594b11c60a5f7ea438e015018d145b979428a899bb53a42a96e081f7da939cd0ca49dc3ee11b0dddf94430014ce96485bde669f214a3d4a88c6e4b3ffed1ab4dbc24c08224e03c47fa2a7d55997c2491717297155e1b1ca09898447ac0153435444c69b3b704d5b99189e346bfad6143bdd2780d2219878823ecff9df861e3a729f913ece36b46c0e9720fd4f96ab2cac1be382907e8cba0702018ca27b28ea8f93cc19c4809885a3b8b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a +ciphertext: 82be6534bbddcc94faf44142c820a882b94880f5264e2cf8f046d36cd8968f090fb2353773f09d560bd169849c2d56729e90b2e96f41bb2dbce40562b1141cfeb35b71f5db5f933ee12dafa086e3125e2e5bf00dd7e59a8438013dda8cc40329f8c3627a609a70d6b58a6a6a157ffcaa326d4a19d7b6b8e7db9f19fba79bbb38a2c645b369fc68450ae6c5f4acd529c248398cddd373824a5087b66ddceb5ee231dbb5950ae431fde9d15020960239c4a526da313ffb447bafc9cb5de05f090001f08bab33f8ea68826e8c057732a95d1ede21a1488e15939a05cf250e577452ddaa73dc4bc86d5394ca0ffaad331300d7d21e506bd3b430ad66db163ce5e2079be92ef4d369890ac192578a01fb1091ef7f26941832e424e114ced5598bdc6eedd0c7c0975079d86b781e8de0cac12929b38658189f53a72e66bd4105a5f7f55f7b31fca748598a230dfa86692b0afc55dc0be8160a8ff477a331cf19b03d1819e87f0b7d4bcbb973c43a3fd7378ecd65c9293a758e079e5fb073cb8ec24324e6a45d81e42cb002bed6590085736f30a3e07f7f857ed32fcdd33f0f93c0c22c78f2bffd1c4d3927d694dd0c7e3788953d1fe41c46ae574f22d14f974a7a4f7db391547b74824cf71fc3a34cb782163b46ee505208ab592ea804403dd5ff8d4b15b772e8aaaa132c1f8993788f07809f86036154e27d70adf575a6e7fd962df249fe5d1838b95e5e9484b8b2c80119ff5fe22685bbb6886e23ab3399dcbfc657773f7d7ce2c81b28c2ee7cf5b7465ba0ca6b3e66306e2bbf5ce75c3bcbecf6f520956c2be1412c4113cd9b3696e64978fccaaafe00492168ab764acaf64ce97bcdcd5fbfb234653a349790ec382f2a504fd67472aacdb5c53b20e24084673a8afa896233982de45f191b32d1e1e0bf7b8c41367d26b439c5c868bd4a179de485748900922c4c9d19455a7c9c7b9d3b67dcd6462b30d307d9fef1a20aaeef1b823038d8f39a83ddd30872da9d7a5980728f2b3bd39eaf1cf2a901c3844dd5a217c64c8cc5b489aeb95520057bb78de40578c86cfc1e051ce2da843942aade897468d65ecfe6c4cb88afdc148166d6b1a9a182b3c2fa4e50ea9e048a78cf1a432b812891cfb367763abf7037a5d06050eac00528967d7fe4c3f1bfec7e6c1b4690b2e7059d20bb8459e27db1b41a972c15f2f9e9a43bb751e8214e72c710011d3d0cb44c79981a0a6ed11d766b4bf071289c65e6234cba1f701697c71317833a772c520e99ca5d6ffcf9d09fc603d22390d6d73e42ce59f95d50dac5d81827b1d58a12daada7487052a0bcb848b8f90ad40141f8a05122fa7b9aef5f792c032c5229e53b3ec9e3ca04b24b02db5398cb9bc0214cfa715f192da527562fc521d483fd4ff440b1a0563135085c8911dfbe26258f4568fbb8117802dc120f9fb973ac309b5d1a1d0e159441af9e477943d331321eadb6a353492db5ba478a92055ccd69dd686b14797c51e6adc3470e62aa1369bcc8c8cbdf932af93e80eda2b2c96c +result: fail +shared_secret: + +# Private key not reduced +private_key: f67c9ccc27ef6d04bd584a4502f796e5395ae59862dde86fdf39e92419a75e1b50222c8fdd18964d85dad5166ec574e6c457e5c23cf9ba8b3f6645e7cca3995df7ee8bfb5ebec66f19a4c7f8098908a93651ef374e483c742fe9ec68b480b95f4b9ee55703bde5aa7b5b6c57062c809fa6da399a5e9d59c4e2f895c03dbdf70f55edccdd5945da2ca86c180af10543a1f95bd5c8dbda07476fa556905415cf1de45569fd7e37b37ce3e857f1d94ac9954cc9d9f37439b9b0179ac0abaadacbfada8559c91fe4c7ad7a2836f7f959e12218c13fc360e1fc589b7cd5cae9c42effa75986dd2c5791f6f4f03474a43836bf046cc932de33ebf8fec8b6414928e10734318dc6e739568a0ac4fb974f759c57333a7ec406c6ce9cea3c751c3bd9db336faa9c881d8d81ce52e51a543546548f1a755978edd63eadb929e63d7e6ac89eb5792e75913b95f36bb1dbeb4ff0f443b58f9deb738f76c8ba26e7a9c06a95a86543c2b95402f39181cd8bd1eead184ebdea8ff819b9e0227b34121ca404cb6245566002174ade638533bbed1ff9b37ba4f0814af8fda5b0256db1471ef6c816e4067bf137798215266ee67e759b7cb0a1ef66972c4aae4e612e743a8ac6d22f5f63d8576bb01959d3ff3bfa2dfcef64e897ff523f44f2becbf52ab8f3b239ed3166e95e15d90c15d966769d8774ab08d8314e39d02fafeaef6d9e4089db163e30024fb9e48de058ba90be1757b5ca62b813a82a1a3655ae30a8f38523d84d16dea59eb5a8209e8484037f5bba53a564399de86fff4af850ccf9477d4e682eb024ede552737ccfdf8415f8e9db6b6c103a71db13a9a0e4bfa75cf4fcf845274dd47b1a4f2c3851e7caffd644de376b7451b767e5d3c1534447e013dac033d54eea4478bf90ac96ee16ccb00a079e68345fc626cf17b4f818f3ba685377e8ae596b37791297691dfca02f1ff44a3372c4479e1076af238ad30ac5e1fd06da81364d83dd909e8eb0fc79ea1599f87ea994960ae7db57e2dfada12a28e4197bee1219e345af7336e8df11bfa877e7d5510f6a39f68aeb97606466735418cd484eeffbbb5affd9ddcb7f3518fa69615390401c8e047830f3f6b0059a9a9656a277d5b966a69e8d55dbf3aba7477656e67b68a0aee47e3979f33d996c566dfaedaa21c5fe46868988e5a39f2461a573ead35b7e049990a0f99bf39b9fefa6fca94d3c7453abbaccbab52e5c0bacb8ba27a74288d6fe2842eda3df4858b6b06fd98f3d83e31d78bfdf64ffa4a9ceaee427c7d7d993fae0cf8b51ab407c9c45c11ce2ca25f2701d36ea065389ae499ce967cb6e9af1d75c351af6e8673366377887f4b78896e979b3f18c2b5f3859c8bff841736b3b800f9f3c64fddd0cf81e4fe6f9ea9feacce4deda35399cc927e4fcf17b544413826875338e9beb7f9cab9487d0a563d6b1a88fd6adefbb9f923c7c353fd5b2ca793640a57b439f6858953b7b544317bb85e6189a2a26f203645622885a22c8b595b36e221488c0cab5b3146ca6dd4e6f2e8d8b2e5400a7ffed78c89a687abf9571614ece202e3ae42459480d84712b863a0c574c1d62f57f466957f96db330405b8e101c483077b1c39784914ff30e4c3b97c9c7bfd505e2aa01b3cbcda4096b37aac72b5b50a41aa8f6cc518181b70fd3270561bed0938d964972be491b6331a148317cd548124b7653f1709af074b1fe4424df4bb22ac91bff7c04489526e5e2c82f2973408c4828368b87a7c14a569ed7b58f8eb6cca19088c15031fadc0e5b37c442543e1eb944ea4a0541248496795bfdd56178c188f3642fc0580e70a62676555f6b3810dbc89b0a227a8ae554ddab721c954db21a87fda98477d0c2af2820b4691ffb046ad544b3d3919dce8303e2f27152170a182a756b981e6cbc0b0f00274b521c1782b0516743d17a7d7b4b29f8dab31c50739f68c57efc48ff5b1d3757cd13fb8249abbfc7b5a794e11e5b56b9f20c8e8a5718184167264bae901b3ae5005f796341897542c70545a9b6b260bc13cfe536416a0f5e8440907a4fa1e79a292ba20a461285584d3a2993f2bba8397756e1ac5050541806207fb8b313d0a6280b473c59abc9964b5dae58c6860337eb69396a24aa990349c62aaf8420b49e8a95af404b81870b3c9459acb62749e4ae2cd518e329776a6b68e33a7ac795330a8c1ddf2b326c3c269303bfdc9137ecfc9eda856148ab9dd0a920cac260e6b70a1b500d80d085fb9b91593254372c8e13b69b0d691a508a391b04478729ca19d75b566b472917614a53ca485c44e5600793a41a180697f20aca35501e7215a49f591d376a2dfe4a3e0bbcbf4652710d0ba75898ccee4c5b63514752ca8778f09d737337c9219f4b51a1277964c9e67b92888300cda37c382700a40fc185ab8fec55aa539cf115913c9c73af0819188965e57b326f6615682915363c54a267c27d625cfab0712138703cf709bc5c6b0cbb1d5d3884011c1b8ad8cbd1ba12bfdb8a80e9cfd1526d940233254b5dbc2bb17495b6466c0ebe684fbf331cbd99981a4362fd318b28015d9f3c3f1da328917cb140a0567b4782ec8bb1fe31b298b6533c39733304b5f7c74206cc688c144a23cc72aa491e48701cd7f14fb3b7767a679ba4f4c4e1b778019471bd78bf6b55c2eaf43351f85190b07a66c35ddfa67dadd28c30c5264e3c3ee88b62d2c12541d1595a519897a99bbee0207867af34b245b00185a60b4a9cb92eaee58b16f2977ceb180b32243839487ed6b88f6b94d2d4686ec7b7ea022e6d995c398896cd9876815a27ec77188640a4a4e64b65436440fac565caa10eba9d48824541a6165d0bb97a634e6715abeab2bd8f91c18a3a6e899738188744cb6b817d21cf092b64e68cb6c9747d3cc34d0d294b4770548d61cf53bac839b70f0350994ada273312545462bca9118848a343f2aacddb2207f84a66b08958576069c7b7b69c02cf4f954ce3252faaa0b7bffa5952c51fbccc7fce3b6a0c8074f72519930395d967603d327fb8231c1811712308b914a75539128a658a2eec38cb7081926e94a2903471b79b33adf94456fa6a09438dba6103062c1f5a5c66a8d15b829c8f01e7c1e21b10bed1aac6d142ea94334660bbf448511563b5564acd67f87a26f779527000584b61a65293cbd85ab5f3362bb96a61c922ffa77b8d90acba77869293a03d7cab81b688306546ac348b22e368b8d717bc969ed83a12000548310a929e9738b2448d1cd7d1cab551ae0e7b1c495565ee65f180aca4a38847375abe6cbfa4b55c7baf2651415d3f28d221b291b175340a07843b299a46e02e22657634c95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 +ciphertext: 4c52cf2dce0479dd88f84c76afec867839243ca88c7e240185f1ab343f83a681f936359ffa2d7aa1231b30fa056f9d91e9e50ae7227207c481088cdd7f458d8211f192abddb839c74e6c0ebe22f62eec0a0b85e1e63b631f2e2356c7e549b8c9ef20c970b87169643bff25ebf27344af28808cd2a57c3ba4cc82a6d1f451e8030701de5aa0d0f11dfd9c69396ae6473953826f64ad592a959daf9513081c8059e93f40a24d007237b9f7dc7b423c2d3ec49cddc93b9d10be852d9d8e73df902961c6db0bb884e716b1688fab808f9af1f5d0071d3989340abc9f1c14b7ef8d3728e639ffa7731a5bfcb42d59cae23baa3ff1d95fb65817228393b4b9fde583fb73f464bd39ad825ac28685ed830e5bb2da33784b0bb3e6f310c9ca104da7a1282ea1a08eaf4bff5d6396fb589207a7093b29b310bde1e7e83365208539f4d631f59cc9dfbee095623a0793df4c7036cda1991504d4cea2a7d298adcc4e39f5e6a3519d162da9235d5ddf2962c422725836f59eab03421ca7e7aa4b715fbcf72ddad147cb517f01fdc0998d91562a2771b13809de62031a5972fffe4694774d60979ab51332e8bf3866b15d0268867e497f71d661346cc299d220abe1292eafc72e47e113180afa470a683d6d86cac6880f1f59a84ee590c58c8826a67066d8ac772f86c5094980767cdf8c1296b189c391d64c5682b1dc368f4c2e0d88a6adb43d3340c8d8e9ea1a34d4f4792544166406fd27a0f60038c242173c924f13699fa73be3c0fcb97215503e1a28ae548619684f66a15af654c0d38c9cb34c1c77f1f79581aef0718c6fcb92e04e4d28de7f83cb90ca1a80aa2cf84467b1b7752281b714aff8647539416083dd08b6d13396041f5176a27d7d91e2860fa87fa3b7c4293016c2640a98b3f08891fddddfcd130697c849d3fba3a1e31d11ca6fb5b68b12fd3a5b561d5416ac7a2289e3fe464e7cf0f30ea7f227505ff6ec6f1713a72dd195280c7305ec3469f9c55f4877a9f49c35505779fa1247b5f02da439ec8fc6ac3aff099dbe38e4d9681f65e39c43c29518be931add5086efdb009c74655f3e8525049a6ebe6ed70f85848a4962246a62a45580d3c315c5cf91794d48139874e63ba4116c27be153e0dca53abd22eb653e47c0358aafc19d466e5337d1ab2fe6ae1fd9ff85d6af44f5f8e09ed987c10cef5184cdfed10f16a30c8b34d0c9bd8d69df3d45b30432f578bc40850f12d88d21970dfd20adc0761bb8a37b2a0b9df20e14421311d0489fbbec1f8cc88b08872ab3e129c609aabd2e7d56f6467a176825612dcc9ff1926a28f5eb71174440206f74c219dc27604754f1db7363bce80cb6fef31ecc2f4e5668eaf745317397987dc34705ccd5086a8e64b83e9d4b3c1eaa85074c3c40a6b6fd48a25709846564d4863bf5f416669f1be2e92565e7c76451fd9f31eb81ecf9d57faf8b8b63027c7e7da8b0d140a07beb6e5fcd49a91a0908c33cc3016b165eb9388130426880df40b0a579d5cc63f6bf4b775e9368aea +result: fail +shared_secret: + +# Private key not reduced +private_key: 629d75d10644e5f5c9cea8446de5ab5c9ba99ffba41a77cc6698b06e59aff51a688acbf84a7cf6fbac9ddd3ebff11956652ce49946797cdf65338376144b67693c60db18450ebf5d9354a1d0d99e2e7a5ba1a871e7f6ddf88ee5d8ed8aa6b96134edaf915db784834feb9bbcd0374c0116cd0339cbd3a3649b7e3ed4eec185c73a693482db86acbb2688f2d6f2f8abc7e414ea767698142de2f51b971a2d8b76dbd19533798563a55fb7d09796d49c79c8e627f46aa98c4fed407e1bf62ce771ebcd6ae8c435473dcaa43bfc8495481bd640d7a65832bd99d024fda303f49f3ac555ac6440f5b14623e47294b736d7b84c035ec8b8a4799dec356d509989ac71ba51646e8bf36fe2555bab461994d58c95c3c492df3992e47687962358ad96f9b9bdc9f2aeaad28db2c84a7788953145a885d398f53e77b274e9c7e9b5882e386dccacdb34747265444b8d0bd7c6944d84a9c16ba9f9a19451e5fd99540bf958ebfe74bdc941cff39cccc167b6dc193ef967d7c262c6b06d9566c65c9ea1a86d665a802f5c96d75b67b94cd7d09e4ec50691bf67627675f423bfe840ebf91175a58db6f46d69e5e42ece3089ada24791a753edd05ee7d4ce67123bbe4e9c4670d3696cfae43f8cef12036c63c4699d4c5a32734e867fe311c4b826666dfc4578ba4c953d3ad37faebfa58780ec1678be56997b9375d74966cfabd1a6669ad2dbaa23af6b24b6ee2fa8fb21e9a734c88a32035edc1f832f8b59258ada84b75cc5fbff7d194d3e1581d9f5e3599cdcdfcd450a25580814da69db3a151c3709d8dd55b985e563483a8dd250389d5ac8ef04757a15359a0e09f73f2ac8e25faea3e6de310868c4b7eb0186ea6c14e346d840d29f446804e6540eeb14846d694b3918856d0c485562a9507103ec83ec87f3b5debd99e46b05f9592b32bfac5dbce78d14467fd873549d998a906f338396e64068e627567cbb13e0b1abdd5558d3ff5fd2e6e4eaaf0c58ea0efc1d3ede1afc9ffa9c6e1848e030d9442b4e793becf74105abe23471dc34f3547ca8c92983c15d3d1a96b4cb44852b18c5c4f8ad541edc0f3b4f0cf6ece4075570dd9815ff563d74e34e18fbe7fa574059ca964b3ddc0d53b8a6f7a419439aedeeb24b5e4777c82f7394d95abb10d3f00338e4288799d0dd89dbb8ac6a5ef52bfd8d0248cec9c6fb124abbc5ad9db306e98e28a07329c26ac38dc01d8cd7daf8dad55514e48196aadf797a341dbd5f617372046a68a32eb3cfdac744b6ab6b2f9fdb184dec4ba266a5f836077129d7c1dced859b573f610995feea652fa35c4026b26f194d9343d91decdfb39648c2bec6dd79f75bda5f4e7f5de11d68abb96c419cf83ff65a4d5f56df3bf698e8f0636e6de5f93fc6e5d05bd449b134361467ccce99bc2dba54a65a623495efd283b9b77ab43dd4dab1d3ae8c749b917e596785bf53e34d77aed385eea2ce38586b6f8b7b5b4c50e3f5a3d340dfccb929996c601969456ef1d39839cc1ac168236f032a656b1ed16ecee09d9692c81bcc1a2f85bc4baf0fdd3d9d6884a07f3dfc73ddda1f58a2636bf4aa3c5fc4f9b9bde075fe983eef7ce925e3dd44415675597c54dcbeb434f97f3891f33ddda5b9ed269034b722cfccceae14aacaa81038e45b53518216ca5c332bbe3117beb9ca69287a19dc7a078b412baae7cc5181a389b121bc4ac5d0ca67a97248d8f97d7526063cd88219c396ea11435e5c1d61dccc963444b35c99c86b87e40928b88c47f64b919a028ee601229e5a01bbe17b600acb7449a291b131543709a2b8a7d015419726563e366324588038e71fc3714ccd0a68fde524932496be0ba7adfb6e15dbb99f995419c8af3db630e22393bebb25819159abc78c435342628cab40a6350a8a86d1b1a93f6c9151f1895c4674cbf76313b1992d82c6db218339292622807557f458ce057ec1969578379b75d1bf518976b9c69dc22008371930f06b4d1d2465139bc0a62c1d13db9282c00549c45cb351518df67ca3ac881501c3272b9c6ea1a7c527b0ce8ab9124257484b341b2200b49029e2624eb37b15e7d5823a3ca608f09a5fc590dd14cd2cb15cd238735d25bab119b06026884ae5176bdccbab3550fed9b8d4a473a3d0a47a5c78b7b16b880911c7015a7ec281e3ea03274c6199b345db21c0b0c541962a965fba799840c01409463d138977d9bf8ee8bb3ee3b80e021ece71ca0c6ca72f614706e0941b60c3c8c263ad8187a5d70e98740a0a729a0d07123c5b95d553cb1fd086d853869b68b44db974f5161072d6b1f2a18c5f112376c434b9e777a597b6304aa0d1dc3d2f00010e481b9a9aa60e0acb9394cd554a047a6262e4b32191e875e1688456a1877012933ffa51adf131cbd47c28535595e7bc0777b954e094d6d62a5f67bd8b674abd34500da1a4c94bcac04746c4234314e16c1320c48d714481a43c486c96d183b3ea54b19ac54e971710a293121181a16f5bcd861835c78357ea4a6e8b9b785c085545c85a36b3963288851a15abac8a39a109d0d092ac3ec60a93077486d7920a6c274e91b4f04a7e90d724d1e47f65a9cc80f806b20c98d9867a705472738982f3c608f61095548552cc01cbdf10c34f10709a31aa47a27807c74b9533523912637b1a89d8383945dc9553e9911f4b012d6c397f74c250a70d43db4aa7da34df3c9490109fe7b1561cc25f0f37907fa567dde3ae9da24d425a7fdf35b2e61241400783bc2ba3b6098d6180b25194912175548453a669650e9007be369a2181e1a46763170fc995770627b6e48903f574f06037d580ccc1649ef6eb1d8be40392b86377532fe5b55bcd7177cd817701b4700b71a498359bcaca6393710105108c6c33894a41bd1e4a659b22c76c58c0d2f9648b8908397b2d30e9a4ea60c820aa12a58c3aac757ba835483f02ae08f7c9ad8b593d756a33835759f7024867b5d98477eb6cabc4b7397ff52c6719cf73d42f00a4b362073325d48651c2088fea27d540884851cf95f1a85626642f825265411f8b25067d98b5f595482d767b1c291a9e35100e49af47a71caf2214b592831d1024f56818997bcf035b1ce53c5213aa664e2226e83c50594354aa7974d39b09860b3560a534db624b9a595baf31bfc40978cb2903bb549eda3445241620006371b0f7a410e16c828c6743846ab3644413c8c995a4527f82460e112dae7a0d0a963b87e38a66e07290789200d6018cc7c454ba7bd5e56d7ce2d10ffa73f2a284bd579dd64e4229a9f36e58fcd24287c47316b08f9675fc6d1e3cc4e0eb62d31b6b4f10022d373d2718f3d20ee1cc00ef6892d9a0e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde +ciphertext: c108c9fe8da93854f9c97333667b60ac6d357747fdc46551636f9715885306d4e0ba5a53950042e82e2449d8f871c0e69fc5fb2dd0890c09e4bcd73800728fe9f3aaa7c15a7bff2197f3d9798f8c7a9308ee9b558c6698bb852d5bcad36ef859e9f20eebf91e4eba3ba96f35a3e15bcf45466b0a0c951c49b0191ec48cbf0dfb06c07cbec041a09f93e98ac30e40757531cc7eb29725b472e4ae51d4dfedc5b782a2bf0ae88db1f6a7367bf0fe7aeab49775ae121d1f568d3a69fda9f3192e6cfe5de967d884247040a6520902d2e1b0ae32f388f4d9235510b3df3b3f3b8fe69b4917bc1990a45fd6d8d8e5bf2cec3fdb9e23dfdd4248c026b73b2907378452223a10d8bbfce7d557a40da8b4b444f189e2895dbe530493b582f004ca49e1a5b103ddf607cd25a0e20d24cd72596349c7dbb9547cfb14f0ea75af088563ac29f2cf3c358cc5c2044fb22659950fd36c4a5d1cfe534e68949781c256a2d912a739c94378339823b039273c06719f9542d293bea4e2e2a69c5de60d55882c969439da1a1ef4403b4af0068e1971c9669a88003d6b7ed3f74228f0434156f05d7cb3b82470381d0c9cb5dc05c978c214cd9e8f7654ec16e4898aa61f3a56346d697ac3d04ad0c7bcbbc97e6e86b687370bc81fc843e329d2dbe7a3f370042893521117a270d635b816c2e4d651eabd4d8b7b3b64f27c0f04e650ac334904064730b24c4796f76008847d686c46a667c2d08a52641358ce681810cb801fb76572ae3034547185bfd449f7dcf9ed2214570a30726697df678cca570a4b137e442388494011c990e3b0efff39d4983abb2d510f0907913c62df29eecc5fff802e80f7d2314e6adf01f74b265a257d829e0b114adcf5c968540949af35dcf9e8b39d8f0a70480e0c90b5dba2a6dda831f856e7178929bc54e632e323d87815639b17cc608a269a37f8a0101fde51a04dc0fedb4da16470f9ddb9139454b5cecdacd9f5d1a2c693f72282113c5f20d397d0538dd4938c17badd0cf0655fc373bcdf75a140746b38ae9e006a7dd80209ad50cd7b84921e85385f8b863492c35bb7048e3c260a45daba6fc44a901880e8ee91533bb0931a48c029d773a463fc07f6d30d022d753b149a4dc0ea32089d100b57c8abd1e6f98de0e8d447128637f21c0912f6cb12a47c7224442d835219de4f466d0cd65ee82fa1e10b84b0b372a307b72d3de3f46df0a209486b83679902ec621d2ad4a81a0b2297f70c88c882e0666ffcff459b87966dd55a1dc148648e619ddef49947690745c7794445a2b8b0199d61469eec9c3fd23232cf0b792d52d2a0c0c54ea11c29392b13a7c69744d85aa2245592adc717dd1016a64e9df28864f267ab770e32aa66b3ef4d8c00903c2bd10d1287e3f4696c09b6e3be2f513d736cb2950935a2ac517eb5cf229aa6914b1cc360658d9e7bfe1bc2aa49ff36a26d05fcea924b8fefc64541aa3da90ca5e2828ebe8f9b4ed2f94b2885af83aaa73641f9201325d88f9e2a2076b87f532693fb40a2 +result: fail +shared_secret: + +# Private key not reduced +private_key: a46a88e04d35c65e37532f95e986cb5e76d5f7da81fc1bef2a9d3b3d283022db4f8046378fdae24f5580a1dc4535e64dfea6c4fed63aa73960b5ee4808383cbc1fcf702d4d07f852a815a793eaac2f147d24c53e413af1a765def4f8e22f46cdc9c560c07f5545d8fb753d41c3933e001f5d15746f3fcc5935ce32af8ae8b2a37fdce899eacecc0427e24f1cf7946dc312ad8cfc4de655483d809f853274c9f81683e5daf62845f7648adef7dd9225d4af7f2ceca7563e824454b5afcdfb5c582c498b4a2ae645553bf7dc30d6a56e0b7ca5761daa3168e8e527a64cceb78428d1edbbf446863d48a53dc94fd3a0f68be3fc498b288e8457cf708e32b367a9529bbb824e51950c3619fb49d5888aa84f4c30e4e5d08492a7ca50e76b56fb18bcc1ca99c45ca06644dff1e5beca8c51d6355504496e9e4a407ae57ee5b3df92daee0e3f98bc35fed81ee4e426a76c6cd8ab6730465dcd7eb6366205b639c3dda30978bdefc745283087c9ba87e3f73e0edf3e2573479bc2068f4aba06ae5fe6e71355a73c87e939e767412333685c6cf9cb622554af0177f967bba8e043ad491568aee39e35888a4b996f6289f23f9fdf20f5c95a6a66aa7fcea5bba8740bd28dfd5ae1dc602095e0c85c6e331e583c5cf1966bf7817982e1165b6a69d17b4bbf3ebeba31d95f14bc76c104c1097aa3372992036d35e89895ade3e66958eb6c558842b3bd1ab5bc9bcfbb6754b0a9bd7419a35097bf365c6db31767e6751efeec7e57b233c4a1e3d9bc1c4c80cd47d5c3382dbb4cf65c9d9a24bda79dc37d47ab286ddba5748a0294c8c9fb8acc8b3d948f70a73c55de76f544c7c576c73a2bd9cc983a60dedde52bf5d8d44ea29595a40c7b617d6bb45d2471295d5a930a4bf9194ef5ef7fa9d9cbcc55c8c9b4cf675876cfbfbb711798c95dc3e85bb9e84bcc726e95264737c03b4b2748e88c19f2d50ba49d0eb4fbb85e48ac9e02739fbf556c5e6fe0294de4ff38d263d7c5354ad454d93195bc4b8ee4e552ceda7a1980839fc73fd63e6194dd10f5c5b2853ee65f65f78cb112b3a3521577c91bf744d855b758431f7e8170efd0b47791328481c4abf4fa9ec9824742db7d43ca2b47b7449126533adc1e91d4daee3779515fbd5e9c57c383a3bcdda9efae56dac8c6983e16484d7aa00bbefafb778004366765b3ab6365737e7a4227e7b5b87f9bd9086ff4b64cc7bbd6ad353c6cbf4e05557fe2e6d436f9596639abab693449247e8828f7f0133b9c1569bbafbf87486cb10adebccaa179b397b029d6847a970daf8f29f9a8ec1adfd0a6c02d5fa75bf7c3c1ce80502590f3766e56556503bea9438386618f681d564b333b852b28dc91e6873b143f8475a3b9d67c152ea872aebdd4cd73cece6f4b7e7084b95528d43ddf2870ba2a968a4edd761a6fd41792620feade55d0ad5be86d97cd1074b71ff893b3d4c889ccbc03264541af6b8ea3551dd86d78cf9756c6972ab87acadd799afdbdac8a8796c8b83ea3e1b1b5f9c20a715e48ff21e64fa0dd62489fb818d93eb2e3be8cf8bf16793aee06a018eb86ae19f92d5599ea78a2553a52793c71490ef862ba5df79b5242249685be716c8e8498a5b82ecb47bc7c78372b75de587297848724335f44545a35fa11e6e1208ed4764fb8bd4af9712e21c8b3c99e5a04432ec7c0b3200384534aae227c6400883ac21ec5152380b458bb69c5ce909842d3b07ef2c539c44a2df2013aa97a08b511e444996144cff78ca394b5440f4aba566383b0375edb2544a42c4df25b6a96e0263c8962bf9b716bdcaab098b41f735018735d8a26ad7d93b0f17452bb64180a572f75091af0ba9b3499a134e90a167ba72dda62cfdc27e3234b1412115ad0463da2600dec2e7010b1fc914f3772c858c80608244cc014a31036a9abb68946b51354d07fb914bf22e17ea21854ab778b67b40cef331cf8374594385c28586dcfd5421d1a008634b006965f88d58a5cb449f52136d7f82cfd0aca3b6355117b15cb51240c6a239ba26380c55abe19912be90466cb701d4bbcc5e138c525bf28d23cb2e0452927873c17c7e431051f99a6f585b89facbf71f594b49ba84c7235978aaa2baa1f9e7496509009acf56c5d09a4c53b1cf2845a0d0555528c8c1d287ce7e0aa56e85adadb89440305eb942b1fda247457751fc1b5b8811fdaa95592a047e297b9418c52f0189ae8a21254f838deb89360292956749007ca73581aa79f37116533068d2425d5ecba7447b7cc5729d987564ee3cb2ccabb6c31ba24375304a70638533c67bc6e53c51b17559133d4aca5a6bf44c635615a9881e25e4d137393b76b5017254970b56ed13f7aea587458a43b3435bb018ff6082661da9fec065c0ec23bff1b919633806a835139da4c4d34c6f4567daf07536eec3d4d0347f3abbd7f32317c33c2660393af455c2dc506ca111f48da051d8350edf5590adaae9731c2e301a824721718968ce3e66be430b8db293a22859d68b353dd45467c85ab7f4baa0d5b2cdb83c94a895a58e09e9f249153f25fc6d3c7ef50b1929b197128a64de27c48041e08c26d64b8c229cb24f9e9667aea2a33531d19dcb6ada725eee88f063cbc749c2e90f989c8f0c7cf6bcda814bb2b321f1862b32cb8294e99c78ba21d86a402a1c8c3e7f9a11f09306e588fd1856b7f5c5eaa768dd72793a3a88d35e931de0bbe0bbb697010b2c75c3308649c1260648bd3a6d6e57c56e00d5de7270d2c26572aac88e08238658332879d5ffa005f7c8db415403ae73ae728a5f3bb228a326b05bb26a0c91544d98db8cc687c597ae2e6b142b101e9731ac8c20c7eca11887b7fc8886c304a162b30cbc510ce54ea5324dc9b82f39b0d971dfa69b81ad99d49bca9e3449774985f5051a7eeaabdbd33857741c11adb51744539b1095c1b32cc99f81a0ccc6dc88ba829b11025ca5dd3353639fb8148088763ec9e7c14370766b918e93d8839a8b0a34d3090933df3a86e3976d09776a0ec3229741b2155b6c7ac5431421c7b80812523155c9cc5d890268661501628231c1c660583829e7b3984bcc8ad20632c16993673818f7ba15a5064aa42cdb9f7b0e0708328213388b06a04d559fcd83a10913c15167363f997f62b6a03614c46b9acd703be1a1b641e7910ea273022168352c89cd7616d7746983b3b51d57770196a68a50125f1634faba0c752826ce0aa6448c86fa76c6a3e2390840b0c7f333650c53e0a998b66b533746765316f08a94e18de52516228102ff16993ac61abd8d7884c9d162fce2f019205a2106acc8e3e3465b6fa3912a06c764e625cbe3b95dea6c881c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f +ciphertext: c408d3795c6f0f7a0988a41adc92be1b7b2c00660a14247df3bac9b4e8ca4090466f23a9189e7f0b5bf4a012409c5c12af873a3a847d7bd5acb26ee7269c348e6aa5ef8b573a9ca82b374a00beaadb827761008fc179f7562b775e3f4bc0d77177160ada66ecba30883ef41607a8268898ba1035ec901c7e1d33e55f68db91dfb45b7854ad2fb55cd05e0c72c425893b683fff38bc36278682beebe5953aac7551a6a70d0a0294e393c1616b7f2f63977f7bc4000664faa398b37d343683a8427938e89485daf409e5ef668705dfe003771075a9cee8ef0c28bbbc2d76c342c3dba1631acc1bff3bc9491ec686a68fd17ad432cf1f968ff3d83292a6ffdff0ce18750ba7014d0a8696f2e486367ce8fcd3cbb56eabdf699a966a156706f26c13c63a4941aecedb8c51045157a983e2dfd02085a3577cde0625da2350adad889a8d295d3a06d39cd42f42ee9f1b526595c13aa40f7e7407b0331a61e7f8c6fe070ddb7ceeac934a78d7df2715f5d6830fa5a68b84e089aef3a706cf8e47bf78d928759081fca7f59ede7b3b4a1d2f0e7dd4fe5c1e613c51f1dd25a282038d5d14d5a59efddfe980a9841bf7c8a2a7457c25805d93acad001cfb3a9cb0e6741045960f2d318e4a2da3c0f3440f4c43cf5af31d5fc80fb6f9a4b2b510a35d43ccb99ca15e20fdd7ec741b26111bfdcdd6a4dd12b2f2a63091d10ebd5d56e858111dab4f3c233f8425e749afebf296015fb2640fa42d559d90e697cc0bef441e0086ac411fd18c03008b25cdd4650b59f082f1ea6e38e3edfdd1cc848c0e80afdb8bf28e7ad7c9599b085456f01998a048b474499690e4258882ba276898a2ea93e1e68e7b8f4540eae2790e71e114e11c33ee917288b5eb8cc5b1f73b488916cbe2c504c24226b973dcc4676c8ffa422247067c8ad5e47ef8c3e8637619c94f6661d6111652fce115a2c9aaae625226522a81978905b98c659ba830e3efa0786be0166b6cf6d84707e29febd0c57447df8117d3b549d55127b22fea805740ce98268388057573a91600e7ff40061f3b0ec285d0ed684a8cf703014ba54238b28b07b539d63d8320a92eebf9f97b42b0330ae498456f507ceb200a953fb8f5cdc36bb3cd8cdf52ebb955269300642442e3a7aab1fffd31f85148de8f3b01ec857c7e10cfc336e8f5abe8f0e2e3442195c1406614910216225a53d8dc28d7199bc95265503a75341e6ad2ea37488a71c6c893f65b9265cac3d6f47ec3e49785a5f3f9a52e02af1fd7fb14e635bd9c3246adffdb7910420c9d91aa882dc700f47e575ce71c9d155262c123b529a2e1b87afcc8b5444f180e0ab6e0e272667a224f3d59f9809cd7a894e30012fe4b697836c478f8222fdccd3755828ef032906f0f0c03a463fb9101640c7ad2fc8eb4fa1112c7065b038732516626869e8124685bfe4e6fbe0bcaf6451f932d700c86498738fc43a1f5d71952caba8639cca30dadaec99c69e36e13a4935fcf13531f9f3095f06d877e9798c65fdc2b2f24ad08b1149d +result: fail +shared_secret: + +# Private key not reduced +private_key: 36059bf728aab04b86ad6db0f6cf33a79ad36beaa04a2873b71a3e2937fe922b4537f97aef17d0afa68b6da877b26beed143ba6ca538bf04662dcb500466a70eba596776c6d376f0740fdd768f614ebae517b5578388d69f37d4a4c5836a65d06e054d623b6d04d48abd14570b56e3f5ce55f9d86c8c695abaaf744f4d794375c07cb6fe1b3f69104bb9cf6dc8e2c6c3f9153ae3555a3a35a1717739cdbe95e315400f47d4c7c839614c4cc799a4ab35daf448b70b97ea3a1b8aebfa627806f32d4eaafe5ebfd136d32bb9de8e1d3e65fed36fb7fdd9e752b739d3d3b45443fa53031d3d042be2b2afce0bf740708e812807764ed435074a6a55dbce1065913deaa3e7164fcc74e9a1ddcdbfd3e4ab66b2be4da1e3edaf801b5e9b3fd23d1c797f49a34576ee9c0352d9e880ede7eb2e4a674265b3dbe482273887803d5f6e59bd5e4a4ba8aaaee0bf8a87733411da7981f458f0aadd8bd55446aaa44f48fb4bac9b08fa53b6a3f337b438754d64c7dc9b5e95c61be3c45469ddf2a88565dcaea473bc315ea08bd6c238e36ea5df80658e4c5e3edc2cd8a8335f30ec43d063585b857fad1415725c5e950c27efa4d3f5c9a8795ad3585f5e5285678aa43470af87d5d90dbbfc14a9173be1275471f0948dfed89783dfa214095f128e50270fd3e18cbccfc75b46763cf37aa5558a34bff5e176c9d4026be6a09ad7635455a01b69820541337ad397abc928e735fb9693222e6d1744ecabc8fd07a6a036d7cbebbaa1b787e497c3f9d67a9c247b6c31798d47347e41b4f5d7a5b3b1f38d914364a5176ffec86a8f743528179a5c544faba84c48387dd3264423ccd83db5d6b356a51e0bee18da3a5fff361ec43d2d8d395e1f6097a7a5cc6a4354699017a7cdb02a4823f8327e7f9a8ace971f6a8646c9fd1d48d31e5c4a29733ab40d63bd86abe6cbe9b85687575b85406861a6a3c9308550207fd88e245f25c450867c34980d732578bec225f746d7f4a4da7b5b1ada6df57a6744eaceaeed13ef774a78a6f003885dff6bfeedc8c2cf4a63f33e5444ac342451e505e9212e7fb21ce4a64738f43a5aadf6de3367c3d1695e409bcfd3e57885d87b4d19c3744ca797b74e1a07f63613aaa5e9644279ccf963a8ab38ab08aec8ec6558c3b6a285b38ea34acd4acea74f46e0745c8cc3da36202c6363079f3e35f157c888296da1852663a7b4416d33beaaad815706ef5ae8bf3aabb7099bf110dba39e4a681ebcde7663f0d0fa6a6bec730a1848d5137a306fa7b244e80cb4b82578f02b59713fa38d10d6c6acaebe383f5db36896b81bde6b356cb735c004d98caab7893e383da8a467c4b7ec0ea3e6bd74df226a68ee3ce38c8e59a6147c9939ca463d4b5df944b377ba4826964b2b86d50b9ede5f94c3da3b2debd2ce786eb02b79e895dae923cf8ba9f11ba97806795c2bfa713079ba7728ba7b94b9867f8b83bcbd65ff6a8d5594fbece87653d7a9f66a1e3bdd0d39dcd23878aefd3e2ebb9f0c48c9132835121c61709a740d937c811da866f494b07f3d57c9eb98034c6af9388d1b7dbf264f775462a5f581c0daf3c2d45f99cf67951b40d379e3b246e20a2dd0f49577eb8caf83744b7a6917006162efa4cfbd499b8c853e102c9639457f66812d58383e629a7522f1c683d48d8a216a0aa82454f29732077f4baa593de951857227b976a35a8013a622afe355144b63bbbe58265287cf6d605421e73e7df7301b59a885821ec0314ee76359d9d715eec1c2ae726fc0592ee01c1d45d6c94c76cff66bb3bc321358e33f16e1ad44b35e256bac5ab519e404c3cba647637537a524849cf952deda7940dc1c3a213d8c13580ebc10e2b458873ba5cb30c00d855530b0b5f86003a2c6641a72170b238feddb624f9660e16a9c545a0fe8102612979552f311a9417fcc8c8768280a4902a8ae696131c76338097f0c3a2f8731ca25d55a21b619d1c48550371cb2cac00e27c8ab9c8d7bb944e4bab625eb1bf7c55f0df84ce67c48fbb4438eabc818cc2871c619222a0c504c6898c31b9e859998911f4a29000e4063cc0a5d13975182c97047520a3fd7430117b5d0b2b088741690b5662a3b02978c5a2f1c330871957c5c73bb5a2fdeb0b5f3e5953b509b2887435b41badd607307941aad1cade20c4a22b80683b80dfff1bf82a4ae80eb0915190197c1ae23145522c86f86955d0d3b7b4b83b019123674aaac2b4138e4b36169b1784a4bbac8570aba1acb13ac0ab84a6bf987a23ec91f7c6c2dcd6b952c505515b4b4b1e7c749e693ef4a7dcdf8b7e2f89168991c0385829e46c7faea3c7fb18ebbdb333a4a16676aa81daa4ab519638807bc977729d4474f4c068897e77abe636df8525c35e7c691b49c72e50bbd8570d6b888041380a6a4b9a65868f247141ee137ba422807a57a9389cc195345968086359b36e5316c594a88959b7b006abb88d754bed942230b36945a141d4810050834caa24cf58747820a6aacdab186bba056bbc043da570f874eedd29718795ee19c9e8fd4378fa8a42ba6812dc51874cb0285420419d408e897a7f8fb9ad0238ec632674440b66e838fafd731b50092324a9b11a545bb9a9d7a242d54c6bf897a080ac0b06b57535e542d254ac581450d82d73ef779865708a2563c86e4cb3133cc5fc2e16dd2b043449a73e59a5c6a29a227a469ce406192ba4825e3503f3552f743bc3dcb945048a95c70209bf5c5efc76227ec7d947a19dfa0af12b078bc588c1cf9c1300961c59ca8529c357b9087b572a8bd2739a7a526f3d874e6e2a23c4242bdc652569c7ed3546e3e85b7865611c2cb7ad551142b2503e14c0fb8220755036f6bf95de3f1440598076db3410a4ac1e52c91f038956731622df255646ca02fe7cf1aac75d972a5d744512b4b498c666ca68660b984bbe6a1833e83caafb80e17ea49c484ae2b6475d2e276e0c9317c47090dc9bc134b606a6a1336a40881d76ebfa954dc550cac192082e1aa81f9a6d9162b038a021e09b28bd0b959884acc836a4a95100fc93071dc474e593a1d7ca409001b6c40c3fb13a5b6640a32da0b6db086f1691614d935c29b67d8d54732948dfa27296a63607c17973b764b9c05713bf0026bc0534b9187fe33690826a6c80014b2f97312d53b3b22aa1740b0a47ca8807145eae577c994b1dfeb19109b5b99019329fb6adae267c2759fdae64cf479462c4185ca67255971aace8351a94501d772b15890042363b3bb64b6373e44c5bf6ae2caed5dfc3e0f0dca2015579e6c6366833e834e34f198ab5a3504cfa0c6af6ab78de3a3ef5667e6065e084cf5d2a5bb32c06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 +ciphertext: 71f6bf72cb74390f988cc6a864a48242cee917f394d5b4da241299a2fab54da05f57393596e88605dfd86167372a80e04af7623b1ef0b07b0c0c9ae8d58389b27acc0bad8e741f2d8862229dd0f90dc927564203ac4627fde6a32d5c6ca4987caab90b659e6bdeba2b4b8de3a53b7599dcc8d8910c8cb5607a9cedaf72f5bee023ee24406e1f56c4a8aefa3be2d3abf378bed42d772a85d3ccad0b698ac6abdb856449acc3838737a5a09ae662c5a4d58c4ef6cfb1fc6fbc5b189751cb003eb8d41873f04ccddf3ff5b01c77e6700d859053d1f920d44a83f42b7982cfdea3d9a6a8c481f92360c8ff14636e55cd76896eca6a38f2944f6a24dcbf55a0aff14185ebf4d8ec0c24decb27450f6253920e112565c43ec742e942cf9d6087e311cfdad256ec27f22e6a246dc6be2c245670971d8cfa3537d6cae449fb07715f26562cd52c5d50ba4a2cda9c5f967a5e9dd72a115b9f096eeac949bf8eb3a331701652924266e8a6d6dbd93a8705a4d466a814da93c682e971c7ce8ae48f149ef51385d3f9521263a3f39fc33dfb3185d34f4019dd23456972296a82b6366b77820affbe68133f6b68dcde6a35f5787fb5636bd4babdf0dc8a590b93f90f91b52324fcbb9a529911cb31f892d2c81d3c735840032ec4e8c2893aea590fce1c9c6cf3ff5206863bc76a3153c1b49f6fcfffa467cb8eef2a98c115fe2a19c01ed361bba1417fc253ee07e7cdf7a6bd09eee099968e474dbc314685464202b3e8d4ebf6570ab30191ef3bc737544f927d6e1a1e4fea26f22845312c2f5bfdc8131572977c16655f30c4d257227ddd7c1006375827368bad4872ed2fd95249c6673ae8c6efdade12507d5d8fe278b65b8c9d0369f01ecc6cc6d8954b0ea19c1721ba535ed605c3777f1ca62467d163d832c4155f81748ceb1c501c42125d918ddab71d4bf5e94b3215f6fea85ae232528c6e5caa8ef8ad250930031bd62135f66e33861ff62571b16e51e1307ffec33062ee4c649c659bd0676e87857f015f9dca2989f4a30fa1ce540392ce96467063080d1667298406a0b1cdef7db896bb2a6ac9c07c435d25d019a3ab17021ab4cf2ba7eb03ebf33e00231abd2655bb69070d6bb6535dbefd40bc299fcc9b45c35780a6b929ac6016e61856f13d6f8afbebbf9fe70afaae59eb6549ec30c1b0db0abc7a88e1b917b123a1faa6a8ad5cce873e20a0c2bda1fd417e49b2afdd512a2bba0db0faae498227727564053f9bc7e89a40d04551c89abb48fdb723643a5dc191070fff978db5526064405f28e74f9769e531064eefb370edd18cc54e2c51505fa2a670358b074c618447c53a990d3b4bf4ec893d6e35f19bdc70fcc2e4a881772cf0cbde217b80bdfe495454ebfa204ddbe82d1d92e612db1a9b994145feb30f7c3a6241a0dd001fc8ff0ef025464925b0ac26df6356a95558eb5927a8d8f360eaf2d140ad74069a0a53aa9c3e4b54b5cb51c939e299567091a8334f19a6104439c96498f06c057f3bdb4a83880ea8d77fe254 +result: fail +shared_secret: + +# Private key not reduced +private_key: 3035edb04b83a5b5969cd3354a375ca40d3289d59f5197a01e3be0326fbd64cdce71e9c5b0259ab5d7ba48fc72fd3c90a523fd3b0b36dc9c4120bedbd5b45168aa6c5634d5d478487545b0c4034f086e897db4cd2ece3ded0f53acc3d5207eb170a731cf2cde5f17cab24b64cc7682a2d4313cdf3cab0849b20bb094e4570a1dae5c58989a99880107ca4f6e7e671fd043874eb96ea0f72b50a924b8a4cbd21504cf29abd8b71dbc15bdba6226b16239dc3bf6559ebece5694bc9c75a8f4f3f90a0dae68e4a29a543dfcbc8e10f9d472675382ed376ab4d8c858491cfddfa89fd49776d97a787337b6e6e04cc0fd8a57612ca816073c47c97d93c6a134ebf3b94e98a1fe96dd8c6ec88bbb5d08634c378b678455b005795518cd66bce701adf07c84bfce5a89fe0cc1d16a3a60d8e0fdd780664f77940a6e86e75b563b794649a2a01fd1d7a79930cbea2c6e77002560b6ad6ca2d84dd8b456169f3bd58543e64ff1c244ae91745914ace3d25e39afecdca18f8ed5d3fb2327a8bb07ef86b4d71a579d6dde80a105f58d4ae48d3e8271a378931d61042ce86faaab73cc3465cc603cade38f1f5d90a4f7f0c6c13c8beaf83ebd7fc9c2eab6d1890e74b83af8a2df9db0bb7090fd6c255bc17be4f7276cfc131f8c1263f07808cf9edc6d3c1d6cd016821814b9ec498adaec702ad8bd24b894cc2eb94df3e75e2335b2fffb89ddefef553c431d8f532cf65f85bf7d0597d4c9b11465c6d8dccbb0b4b06259af20885458f58924c9eedb64778da7da20a64f5f3ce6a1736c1b8eb351ae4dc6f4ce1cc569bc9ce97c897f475fc59cc7c9a106a2a4d8b827ed57159e67f2b3d9895d4212b33322b4988e3987dd5e4968e4d27f16c0440cbc1b4b48c18c974f9bf0b6e5605d75dc2c9b7e594665bb4fab96a4cd287a76e2ed5f64c542e4753b2b8a7ac2eb52bd637ef9e5db4f077ceb2e5859babbb2fce05ff5b5c38cdf5ee4eb1f7ea22f59922dcaed9f0d4a93dc69215669f63da04e45a879fe4df4885be7dfab820890c35c63061cc2f268ff575c364bf490e9365f6666a5247c950d7aadbe9bc3ee7638fdb981e574c9cf5960cb1c9fd504b6cc347c6b3dbd6803cf9afdd3aa588caba4969b53f9010c3ff686fa9fff73e627dad64b4dcd9488c5ee52d3d78aa5e9e258e991e22f827347ff5a5ad1cc8e5ac2b69ef47d838f28c50e8f86786e556f04c5d6efeabeee5784dc486dbbdd5a3d69bc34d1be13a79468f1e3ae8de2c331b9a8304613a181ac5a5feef1e0739994fa9b061ce412bf61772ae321c6fa614972a60fa58c8efc595be6af8f955817781dc858d645b354bb37e9835de90f9b5ed9c43007e13857b25b888fa4bb7e36c3daa3a93d19be58a6365d598546ec0f5c7d7aa723bd49488ec9d3aef1e17eab4ab73f86fbed8aac4d5e66375d868ac6b6d60f36b2a80730b64e895f3fc8b68882d945ae33eee5e70a7e62fec9c6945b9ebcf26ea551782aebd59fd8a9e36d139e5b6add4c278897ec79c7891a4bd44530d78b63c92640a1ed75774ff8259981678e7689799e071bffcc7780acc596c42786fbebc5366e85b008589f7363d863cc934446de1f420e6c5291a66eb3df964860867e75349ba9999fe4be93262a08f868abb10652b51bd1c67c266156eda768e30b0c82f910eb96062177a882435c74353dda7279f2141d23a6440b900a8a476c66993477b999e23b40ede83b1e31781b4303e4bc5e0220cb0a6409c88aa8238b83d78792c5632751fb0d5246ca42fc89ce31a64069560bb87360bc2696e78062600f24db78ab630079a64c87900d4b7c9ef9201822b6bdbc69c6be718c3b2792ea32756e1a465325a763dba22861a423e65458272e77400375aab4dbf30d564a176613c264631d33f37cea0346e71649d1314862bb0d2b05711cf1af088a4c619048a7242d0be6a8b536c41a9368b22288ecd0ac7298335e5c91db419c2126a8df45b2e6d8793da63fc7e94d75d3bca2aa58f5b5bee0b43a462a12c34b93f68952b6e7abd89c97c293b0693192a44c0d4e69245e14983e87aa26da8c63517f58d66ae1610936e6a89dca87b6c70c1a78c66743b89b3c2eb854067ad97d74771f77b0906a9a7e78640de75a7b8273851dc55dece9b1941cca76cb2dac265e487585780928dfe7402710b6bd914d564568d3d4075e4141749990c40214ea51b71f855deb9349dae2108843b5cd9815f1e8458c020fadc1c65796b117f8b9851776e896891dc05aa0095a914457016172a17624a608cd49db55a42bcea68778a26a910eb566a2d942da58a4cea53ea7a67954b085eaf642405b1674309b68cb9bc3c04d67505d861a605bd6163f7cb49fb8cdcd40917bd59b94892459fa7ea64a4872f51b97e66e64f02818520164e20d5f952a3266840b4575fdb7625d07d00486bd433447d5e1abfa65b215e034aca74670d4b7ff61c36ac2a1628a20d79b352d1c82c1626233ba527967302131bc1ca837d9eb4238404a20a515fe98a9e6d9b34ec28f0b252263fc2bffaba508a6375aba51b4a36af23740d2d51705b2a1083b23bf5a6b75a214dfcba5eabb82faf49e4d326d369cab0f74c00bd54310a3620d570eee533a1a89a51a418a3cd14b25244f0c66c8e8e454e358364fab5997170a90a25f3816aa1b272b09e54435ab3096e8161926299acccae3d689eafcc7e220cc42f5a347173ec4c2510da02c3b4526d75c9b01d103b8914e41b03865e16be770a0e642251dc312cd10aecc6a9734ccc815da2bef09cd18c3a8ad6c0f90574f41075cef470039a62891ecaab5f033fcd4266a510589f7423b4992f488c3cbc450db074fdcc7cfb4a51c08e2359247c1f564cc94383892757a8164c8c985c28e288adffa9c866a6779faa0f0882abf650a4b9c5e0fb36e4e51a6442167aa97c8e25ba55a3b5d7f164f07b2917f57b16b751ac08167ae88cefa14668e7634d05865d1ea24d1013e1b270c9ee9164d18654646bbae973745e64f90e69064f38fe5744a6343ca04b1a05293c5dea9ceadcab0b1f07ca177cafff03d582b123bec8cd829aae8d7cba9f91d4c89cf9e9b52038638f54721f23c6b341419eba880368782d1a0990f57211bf31012148d74451ae1e79850b75d6efa172744cc6d77a46dd0272924bccef49053198b87e1ac122a0753950586d14c6b22bc12939f0661638b5191e6dc2ffaa147dac984cd004d6dcb637bb18b2f04c115f98cadfa79f64e6253cab64110a71d94db5762f8cb4d277e03b2435a473d60b193ed2646f4c5e157ff4357d3c26b7c4b45315f0689f135c85d952a64648b0a8cec03741fe04f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 +ciphertext: 4cedfca84ff4ab3bf3b2a94c3b87cc76668f469ac66f62ee0fd00f5774ec7ae46d34fd038c5b9ab28e988f98d4e88db9ccb5364f1fc824666a3e7f95e55660469d04b5014324cf9f77f6b731eb6cb71fdea7f5bc493b4313321a4967b45018ebb117a6668bf19597ed538149e41cd1980ab68486ad6c6391c291019854dc899327c21363ad651f0285e23e9d346206683fe9cb87b24aef767f17dbc1a1a8e3995c2dd4590dfe17077aedef6ebb4ab30159b127ea9d7e39d4b0498e59c7a8d927c0abd9f536110282d52ea16035021c7bc16bd0ccba1681242aac3afaaaba8ba52fed525a53bc8c05e6a74d219a6ba13f13d4983ba4ed151d4fe63b1b9aa6ff9b821734cb064d74d711af76c82496b5e718d2c8a334c887d4ceefbf37df4120be4e647c9aaa2936d8a2a82b3610788c9e341db471037970f9765d0816a2a728a82bb56025ddb847ad7899274e3122f5be8b126bacce82f29a15f7394de9b3526f1c8afa407a6ff90874fe1940d3d558285f0e71b793977c9e8893dd7d5aee01c47a34a01d512f235c184f84a7f526ef533583c968f3348f42a9dbdb026e054a747ac5cc7f7c61a5b02b04bcbc56b8432bc482b052cb471c6950020dd308f3e51ae575655d9176041178201f58198d37711f661cdc615bd0b801d1ca20529d448f15a99e831f15486e65a8a4f849d484ac122379aeccddabc499174059c5c52f60e041f4655b796ed5ec62e375d11d9f4d883e2291945b6aaa5a334dee61a08fd832e332282adfed2058b7a428ada4dc3d013e3ee1a2075e1c806b54825c197122c0729264e1faf761f561a04575ea0f171e40c9a4abe0a6652ee4fc4e8cd5f14cbac96a378ca4c037ed8092c1b149f005ef70240f4cdaed69752fb906b50942e97ceb9f8018718f250b792fd03772a2638aa4304f1bc772e248d1ac7137fddd30598660e67219ccf78f7a987622411b9fee83b4f1eca995207e7a42fe7b9f8878a710404f6baf41b019c71b34bd88a5f4da300f14db4bddf85353e54dce655831e5a487dc9ae72fbd3066d56cbf8b5122f7c8294db5d2ee56287ebd5bf4e01dec3f01c9a0ceb17539390f27ecf4ed2aadf2cd070d8ff50390c0f282b3f6cf6554453e94f11a019d2578c7e77f7f6aec0ca9100b12b28b6eeb48b8b8e579039519b2e8b078b3ed1f1e7c8a5ce0dc1290a970f4de5b64d9bfd944b9dd2fc1eb4b3cb0a1f2cf6e9ea7af68f6e1bcfd9a04964f16cc58e858800695d28ecc30eebc1f13f869ffc637a2799c47c4a5451e9b1481c1d99dc428da3fdee2fde40c04832f68ff05bb6f8c0011afcd7c929e06b4e3536d4648dad466d55e1937bccdc21567d586369880cc80bd0e41c37acf979fe382ee207403e0b458dc3da2f9f4e453e2bea70cb410898ff957fa2345c7299c2962d9020e87486690e6e6ae277d0a94c9f385c783f01535d87bc4b6bf630345c60502a67be236a6f1cb9d502dd61d377fc60acbb6c08594891ecf240113e6404d8e24359e4f1222e07752fe21158c6c8a +result: fail +shared_secret: + +# Private key not reduced +private_key: 9c7be557d747fbbbeda3d8bc234deb37e5a5850c9e482850602ce29b9d9da97a909094defd1e8a288be9ed19ee4f39b7657853502b4322b687a28532f77fdbdca934362bea5dcbde9a07edaf75f80e6aba338ab888cc80cde458720ba6146c39a22bc2c8f9cb0078a5413e614e6dcc9d9ec319f3f41fdb73a78c4b5715b0cfa6f0e0449c8c67493a98765ace9e8e9b6e2feefee5dc876de75589cc6d4294b40a0463d0a4899dd54a60ccbaf555e66d693ce6ba3e073c63757ac06a9aa2e5e93385b9723eb339156cee3a04377abe93af883b91f78da19e358c3cfdd7db9086598546c6886d1bc611c3b586a3304a473fff62371af33143bea212236e6345e903a652271d93ee54f09d7fbcd1db9cefd7866b15b6c434c654048ca845ab31c65e94edd288c6563e45d8062f415f4fa9d5d749f308c36c96dfdcfdd4f6c38bbf15cfe728a2807ce0af833972a65590dfd4f15fcfbed8b1f8649951e4494a8fd364f752b5aed616e5760344f953e47f0046af76867c980adfcde6680b14bc14ea34569ab583c86c8f4beaf9f5ba2ec689367f9f0e03844976a8c5b965f56660e61bfb93d838d3697b86d6cf3e8aa0bd6865dbcd93967ad79313dbe7ad3bc9e472354471b367a27ee3de129a336efe9114cba8ab995712a9e28c3f37227d3bd11649fc47eaeb1867c5079fe05be6960ecee6bfa54f14884c5ac1b42588c5cad9048f320ad8f33bcc442cafbcf9ec34446a716bf34f1c183a8829b22216855107bf6fafe8d37de0e63a72316cc5dd8994c58e7880e4e44a26a0968af5d0b8f546098c6c55ba8078c0bed3bb91b5b2cc1dc95b464852d7973dfbca7f6396dee469850ff1431cbc96abd482453ff729ce625a3498bbf99239465fa79b2e5dc0cff698d2e4cff7c3e82b88acc0785c69c4d6a3dc950494da2a744dfdcf9a99458f74b3ccdb753ef2e830662eec4115fc539c83d1bcd49e2e5ea539e110287e80977e3f578fc6dcba9863f7dea382c3bb9561444f6433f1386f4e337d3cc4dce2c63ba5d3ab496b7b493d2dd0858b8dd51368f1458d255ac57e8f9928ecfa0707660df753aaaceb8697d3bf79d13dde5f17a38496f5ed63aacec4f594cff35dd027764a56b2761d80d3d76b91da373636cba86395ba9fa7cea7fc5f2ed1ed53e76f5a5ba698d1d0763762c9fe4aaee0648697389b98c5586bf69356b56f3647dbdd1366b0814e66299c4dd1cadf29bbbb5dd393c40cc03967919cd3fc62d6bdf9138e6b55e84d445ae958f5ae19fdf33caefb2b737eaaf3f69ef6a6d5f780e48f5ff7a14a8bf55c9a474c85fd9df4f4ccd4a8a05c79164779b8b452f3245927ef53907f99196f59688f9874a4e2e96b44447dbc583ac4a4d43dc8ee329d9630a7b3a79b0cc673789ee0e8d26c93c17097cb83e5e5cecba69b137840eebf72338846c955b8beaf281f8f0c2afdfe1de8dffec250be6c29e3f613afe3d93e728acc4cf339cbb7dfa7ddc8b0eed4cec895d750bbb740ca89181bf2482e648f44a8cccbba6c2538006bc38fa34a04053dbaa7ef165c5003e7dbfacdb7f7578d03093a3d496a0f9f42b1cf3a92788b669beabf5fe08087d078f97118e7c35dd589ce1ac805d953345881ab11467fe9883654870f7266d76755b0a368661001e627587ba42a2ffc1e2c90b154bb61c2cc3d82a3588d4004d112534f787858d23e8a182971229bb2bc77809a1b118137fb91bb09d2b39dc77773e291fbe2cfe8fa2cd4882379f9471a190f34018c5819ac4eaba7a4a24c703c8876f321267b3eaa58a90cb0271208c6631a773021b3960c14605b5e24b01c2e3c9b2196499dfa69d6a76f0551907cc79611bcbca6b1500d50854f719761a59e8bfac4d5b27a54791482ac5426f73b906631e784c3be822599bba514540efe6a7c13440ae97844a6c73ceb51c471f8014fe51fa94b271bf3206f56abfec55ed7002c27a9250fbc12c9f328ea63b3a2375ecd35634bbba0a4a0619d4571ebc7868faab83c6180dc3c129e8596ede2b64762ca7670282daa233620445bd64a44f5c395a212a088165fd16fc69c503a33b8689217ec00a738f74210d074dc3706e9a412b7982a3e0804458560ace39b54c114f8dcbeb9a1512eea2d8636bdb91c15653926b0fcab1978a02ef694086c062f097c32c9445606050e454a5ec2a43d5cb2704049eabba1933ab857acc1527c254b35cbf6fb4e267b567ca2a125b1552d1c83f408b12420b0b10c2e0aa430f695af478c9d1c54406bf400170a84c4c52e9657c1b4eb652938b4a281a809851a5f62ccf930a56b5588f6fc64b6fabc62b6a62795b3372637bd641bc55c76df070288678012247d11b09118c43fba2536f5daab402377791c906e4cbdd5291ec81a1e71a3a696c0165aa1adfb978be46a8fa5cc7c8ee30036c085888bac3797a1f189cc4035658ccaadc61432141b67bc09ce04685dae806c681729e71b62dcc56449101401d967157c093a8a2b442c3af483408791769bf7ce8910ca4f4724ffc93647375e702bacb559c11fb18b1d4a5371fa4bcc603c22254cdf2654b2873cf9e03591f4173e6a4cf86aa30e9480d49215ab503b2cf6bf42c4b314c7595c907bd4526569b3122234b9e27259619b520412b43b892a6770cc32c6c276a391a106959560687c9620d8d1a60a093f9982a46bb9365d611a86d064f3f82d81ba5c3a39578ea4583b8882efdb5e0b3517be2ab82863c68db0336f6a1b9e1777d7139bebd15af3b73e21332d471100a8a8cdc9d926d2d7c23bab39e015c65a072e0409609c0c0607ba94fdba9842146e8524cc6ddbaa3dc3c9153c667d2b4f4a4871ed642fb284c573b1735b24b9f14aa72f316d3e8b1d8bb415e28a895a7a55e5043eebb04dad9a1d7d2ca9c1973bbc485400b8bc3e897d9d977be1d6cd7d93607a123e43b56b55189586703bbb505185f167d9e24d1c1248a4bc4a98b9332666afaea93aab55b09cc95e8691872c48b3594a1930d82917823362dc6e5ca19094526c462b52d8c842183b214f710908369e9e1599c8e43ea7d890a7e5a8caa6953d774a2e6a1efb1529411228d3637f1b28437c0773a719cc85681cff772ef05b3bbe5753fa2aa5e414bdb599384fb6462565bb04da4c84e550b20163928c9673427b5d57864cd0ba25065246d3914338cc9be47b2ddb2d18888ff99a087d0012b789cc3d6c0c2d93567f7a4c87f1382c4c5ea6d084e524b82eab586ad8c8b05c9af5971a56a31f2b73ab45392bf60b762c5543dc3a259dd67fccec3ed3654c6559f5cedd022077b1a6a052f5287219393cd2e0366d0f5531b2f7ea8704d2900ce5e32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c +ciphertext: 946305bd5c4c46c2c2e3592c19e4d3f97b8830ebacd0cb22e2fe91165488e41c1bc4d8df410c422d564fa276b2d09e6d121559d1bb4b9fe4882ff9b47735f1a560af691529288b6a495d22bde53975633f37e5cb4b06ec28d80e3a14d5ef441b965946981402a4bdf5ec75216a477c0286a7c93ac7c85d0db58ba93d15a2612206fdd1da3bbef4afffad79d76c0c52cadc27513965eb5e41a8a2bc0982c5b1e4ab48856704e9999d906f8e6c9e69a75659a5d8dea96cd6491c5df26f389a5b68b92ec913af9f05f91923522e00ddcf8ea0326cf8241048cf5d0e9e1e656191c36aec989dd3b321edfa110a17f4006a52edf63a8f8c6eca1fc446b1a5502edfb71a6381b88f3694683169156b18838c26a092007217e0050025a0341f32ac09b11b34798167810162194f396bc3a15ad60e3c0e879dc2d67940b698e7fc89b7b27fdfc8d6a99c46e80268f872c9eb38e31bb108495ba4c1f4c0b772354288cd49ad1141274860e0001cb434111e47b436c5efefce8af2da3390c32e3242552c4ce7471abff8b4b603a261ccaeb1219faa229f6cd7aa778c8a5daa1c6d3b88ea34ce1c53efafbc49f4ba04a7cb778b0a974575fda8775f4926ba1fc2ff1675be8350a426b525f9de7193640a7d2a78f6f98cf82c1c5011d1cd65bd27ff699d2a0e31d15daa817389e31fe278f3c18081f1d8855680763713629afe8ba120a66ab72bfd1ccb2c8d2253824e1eba4aa4c8e16bb938ace8ffefad97a795ffd759333467aa3f00cf8eacc2c05cef9ca5289afb1dc931634a069cd642a7c87c4b871c92e0ff08d7db7988f40cdf805dbcb9b23ee633408392d81daceee30d51bb00fa13eb9ccfb084deba4a4d1f49f9675dcc31f4b16e30dabbb54c56b413ec4b8fa8cd66321a0acebb34fed2200ad8ee25478851de2f7ae93bf00a55317829f87e03f7be1c92bb503c7d0fe980f983e1f65dbf6c7f9c04fd2fc611dad8f78b0dd11b26c11ad696c2d9478b715065893453ee5fd742c4bfe74da5679602c550a671241f77bf16da6fb34f1bcdc8265181488a2c0a81f02438f6c59b5bff3ddacf0175e3db1ce24af9b566710bdedbccd79013d6bc000c4aef91af28e9407ba43c0e0477ceea33b0d9d90deb875684ca797688eafbeb93eb65521ac5a76c66b6ba87c2ffe6187f2e88dec731b4adfaf27d79340f256258706c226f47b5bda71c0022f8ee91adf3d3e5b3c6539ecaebd5a57d724e7a9a9bfa7af1e2860c9ce790ddfbd1776b540255711c5e52f904d07c97ae11e6775d8cd8f7d8bb6301647666358fd9a1b90df2eafdd0601ad13adc24c9421914bd8225e7722ac8f55a5715579571208604e986ed90aa648109887b0dafef529f4f7a6b5c0d27f16e8038ed7059a003766e3748cbcd3fad459c4cffedfa44bb7a2aaac67cf8dbba63680c39921620cb5062238c7028f0cce8a587a8eea5da03b5ed363f4cb65a0cb7885babebd0834194afa46437437f6f324eb41348eff99145a1848b4e97753052de775842b8fbc6a5 +result: fail +shared_secret: + +# Private key not reduced +private_key: 2a0e3c0db356adc444062a6955267cbc8e32d72a58bb1b34ecb955795ba52f26f4694741fe3c646e734c256f547b7f553d5e559c2c88831becd53d89e934d80807b4daa964bb85cd5cbc56edfaf57ec59b9d8d8bb66835ffeeada8fab7db77f68debf3454680d3b7f45be4917a1abeefe8d9d89d6c1b8a4dfbefe60313ab7c69cba57fbef35ec7e2eece887ec1c30b7db129b8a824daae05780664ce8016d0dbc8ba43eeb4af6f9424735b585f9f35f9abacb9d54ae346ca9f8a3ff7884495e95e0f369d046dd68a7129197cc91c3a912cdcc46ec9b8fc44c0ac8d98c8a18b185b9e174bdca360f589343fa5d9121b7b3d8d46f4e8d86d57eb5f1b3e20d6f96936a2e78583640590d52aafb42ea23215546309676dc84c445ab78bb5660137a50c97aa05b7b004e396619b632e855d80c6cde8973c055c65b8ad6a915fee8ce4844968f0d9a66f879ae9e9eebbbbf86437545a5ddc4326f4d0c384ce96c469906f8f9703be9ab7e81a46e739f770180dc47eab9f1c8d5d8655d094c764464e3fd58bf0d9794aac17b1ef43e86a345351c851657a9ee61463f0f9e2dfd8ae113a378bc5ebdf5b918b6344fd74c57353d25abfb18f37ce9bfdbcbe48d7a0d94626dac6a22c4e31f3bae1eab69f768dd4a6840539d567ffded156b5ac5a73b2cd8e64e68df973b9dc8692bbdbe7692c496817bb1f0465cddc6ad269d3bcea873ffbc9d857f487b9fc8cf7e48c35f88d9687542d35b81b584494524f796f9a9d4c0bfa4030ef65bb7aa144ad329f5ae9979f472f25b2b59a3a845654a88b93575f6c25a740f39c34771fdb99b6d1b41831cd93fe3053a90b5cb4df7ee42f65b2a2babd9a45618036af6ba54c9a3bd93cfb5bd84f6057ed9e687eaf41e6d7cb9375846a4952ecc3aaaef25db49b31753f0839967ac9319b6c5d23a6365a7da3fc4497cdf793196b6c9ae5f80b949c825599b5e3e2b2f484939b960cbaf697df678afd9b4d2ccf211cb3bc68dacc5bd12648da6ebed9ef8638574d667196a2c135a3fdd780d355e3c0d35f78836d109ee945b7b618ddf4ba5aac934383980fe7a56fd214cd36fdd8e95773d2373f3a56d7f562236be80ef8663f69c2b6f48357b134973ca91ae00628f79b23d6907a9077fd5e46b7e6cf79882707c942dac8200baf3a454d8e84f5878f313cf3f52fd7a602b3e14bdc50e34bf9f18acea728d22663f288ab678d4c6dc60a58366a61d7cef4e247a39b24ba960b39a2da80637c9cf5838cbc5a5b7c1b7fc8ee6777c9cdd156dc9ec3ff1db3fcad1cf437e3aa5a0dd30b1d6b071e3f5e896730a6fd1efacb72084df7475eab9cb467ecc1f51e77b644c9a68a961ea65d2323628e558d6b03abb2f5491c7c36244a3ba66e91eff6ae71496da747fc5e25d0e22a7797bfaff8856d75e3f78c6ee7fbd4fc71743bf8ff4c78b76e3ea45ee2487a8f2899f31f7d688bef8dc579c2ea811d3c50d60c85f6e66457d88f91a63ab1ebc98a1bf16736f700d35201975091b9ba312fdc6eeca45a9f376b3ddd162af34cedc93b68661da9cf45bde071a8614dac8906d39eb475312b1cfe998ca7ab67bc77387e5b6cc8afce4d7ea894809c54e10649325881a8abe32695adfcf444770c6ffab16e9211abf5d019e1471b843a3e7a38b5ce109a0a6796a0d822a926756f0c4a0fa03f53200d6cf37a1cb741f10219102b63425063d6a910b2fc574c49067a1a40e22ccb754926481b7f0ad0111943b3e67a570f0bc269aa50de26cb5f3507791b757370517d486d7a55a88ce86b42856705f6a7a48a8892e96ff20c304e74271e0b555c1b4b0d065a50d61bb2813cc3723009179dd2b4c37a0a06b2099c2aa0c4d256a2fe2042bf4b3db91b11028275b33b4484f2ccb9971df29703dd61c17dbc0319ac63d16080f5b5c460149ef751933ab60142404b66690a2c10a6e3aaa186f6c7e130577cb02ef4e043a6d4ab22ba85b5396a4d61aa1528becc59a1843a4d70283cd2f91457762ef34424b934be9a1547dbfbbcde21552f968c2c8692475632e78ab3d7330619e74d8c71bf3797844c717e70b51367963a7cd3c4869a85ddd213a8d34b788239056544692a7741124697d237d7e2677a908358d81da2cbacefdc511d3110e1152bf2d036c4593a0512523f80a26620ab1cd8b6b1d99a08f25ae3121713ac070833c544e42acfbb78d86476743923d7310c5a4238cce27773d3989d598affe6650c1166ad4ba0e034ccbbb5a75d69b113f2a1952a2cc6980c58ca6da32718e4484d562ac700d924545b6cef439234980611c99e69706054981349041e1962b272c4b0b8b416569952e4f98d4bb12de6a13bc1c903c5477b0ffaa1c0dcbd8e4abd4670832eba3d43d9c31147aa803c17bb32c65e3c350520297da9cdd6dca30ca025e85a051af5aa82d231c159a5026a0e8f2c16769105baf7708fab822b1777c6c53137ba11298ccc15d522400b7f85430de739514c90453ba97d9359807568417ea307abb8982707b7519a65b116466e984772f87a6346ac808c7b2cd22f08aba151e79ad8e45925d29294879a9dc00f60713e33091c42bc3ab24b65b488c764ec75b4117dde39ada784835d3129cbd7b777b1b69cc3293f07ade724639b761ca598464e6676e216874c9668b19aba660974c9918d52761acfa325031835b4d44b42fb91e431373781a2f60354e837458e69a89d830e00801178ba697f82a3a914345ecc1b5cb4b3357b6b7d41b708c5a7e4f862c44c8ffa90473495b70607386c02b4f0261e197124de180cc793355135bdf37cb36b9a180dacc2f6b09efd80cf35211a0371c59f396cd9ec226e1126d69a6ab8441faae9a1cbd18e17387ca0333f94acc7e35306a8b05f4dd185fc467e5e888159a50c6c9a51ca6b2deb9ba212822020d67552d4317449b51b21c37348c44e3880367574d5c195db588ad0189a80756eda780dda9a7d3c946b10d897ab8bb40d6441179b1b0d58271ea83000c5ad56175a23d20322d516b2a487c74a64eb3514c93b919d65cedf429bd37515fff66f4d72cee39a0081452f791b8054660da44937c4a443a09727ca5198322c341c12413c19b6075bb9118540bdc105313422cf9b8fa687540af66728fa9859a642bb9479b31257912cb5e0046dc9273199f27f4f3665aee6a7bdd19e0ab8baf1d2a868b465aef75f3ceb916c82bd81791e80158f8e5b358c218305d96a683a19c930c1903b5e0a4b15ccd8ad0b9e61da304ad616af46073a781ed8d08060c1678f48941d67b3685a39ee7491a53a20ea03e400a843c8cf4d04bfe0c0a3ce63dde01045e2669f7ae5da7905775aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec +ciphertext: 326dad83eb9507d3d8c6433d9c85dd37879c8edd4271eb110e1da941c4ceb58a44d889e67f4a0a339c5cf490d27949c6716d4aecbc49fd976a67e36663fd6fa0ff29a185ce1af8dbada61b609e8acceb07a793390177024eee8f1d360f4069f7a455bf94a7a639a8fbdfeaae04177a1dd2427d748a61a72f68e119e98c9437d243bd5c3b83e07a55891b400ab069ff19abc6770b7252162800fcbe0ca2aedc5de3773e9f961440ec5db16c3fac83941cbad8be79b263321aeb01ab0c7e35f2dc12b3f00ebbb6224a5c83a51c8173876f2f7bb793c7f965b8907ae1d132d741e1c795f30d3c796094e04158fe09bf981566acf64dafefabdaa988d6f6dafaa95f912d7c78f6ff1b589edc549c93d0241c028bc0b5db30810e560389e5eab0afef7ad8b4edb2df3e921796e8823518aa21adeb02e60f8a11be5a309a88a6f48b58250d8f7147d525159978df41230036695afd9d0ebb1bffbbcfbd45a74405472c220cdcc5026b1c84710d0d187817042058c65cf5a88bb8f6b99553b013ff77b9aec4c9362a279aa2fbaacda95cc65794ca2286492670049008d58c531f70c954af90d08a6498569902f001997692022099b53a6b4e2238bd2875ac7fb374cb27f41cb69a38afb0445254623c81148b5789981140697c8866a75d4c37089c2d536b2bc4d789f6dc045ae57a977f7bec2e0dd5907eebf606dd725cb0673ac29f16378a11bc71bc5ca0ae77e2c3c2a5be6a175dd70ce5c06e906b899b81ed5c0b6000a7f1468948341687465a671e6fa5458089e8795c0faeca5321b30edc70bc60a664ac491920b69effc3bc268176059f47f54e30c4c08fedad550e34087a0c5ab189426141db1c27fcbf348b33216b1b8a184367887b1f8c46baf4bd44a3125b60de3aba6e9baa2f3c593734c38c43f8c7a7bdf20d847f1a79708e81df8f6e1ccf61c41c40b74055d04fe8a7eb091ffa7938de90d71d2a0b5e790884ae8fc4a6de70aed6aed36fab4df9a4f4d768ea2b0f08a047d2276876073196e15909e8ce1f91184e41965f25673138d5c3358cac17d611ae9bf91e10485aa53c9b570733866c9338ed111b99c618016f8ca21b283cdda6c6fb00279e4fa2ac419be7b51bdfaef65246ffbb8a4a8afe31cb67ae15bd5260a3147a32ccb0c084a7435faa8e8278f6a3bd0648c86af6df4e767b6165666a69bbf9dba5f9baeff4348f55742f25e63367a3a7a3f0838d914186cbdfe83d7850ad0c1032cf116f8c937ed9c14b45ca6ab98850f40be73121ee0f29dd3400cd54a8b4ef9f96ec3b1a19dc5099ee276df4f2ba1a6abd46bcbd04722e49e1828c6a4090e7e204908a0cda22339c4c0e733501a389196b11966e0e112c6fadd0a28b05426a562a9e293be1ae19e9d85d401bcfdcbb98c057b4accdef69e8338169cda5f851216d1a462bdb145c83958b07f824da067783e1db1ae85a86b156478280e222dcc204b3b858374514b29ea52396ea28d2313346fa53a610dc2e588252b6dc42811e5525a94e2020ca5225 +result: fail +shared_secret: + +# Private key not reduced +private_key: ba593157e38d7e6735b6159ad0338a4f35cad3b7ae7e79c024b4b913b3e3da5d59e2ac727379fee4e6f1719dc1774b4ca473b09214a81a374e5d5350b51c4f52376e3c8ae622cbaa2226965afbcecf5b499f07f30d67fdb7d7916989cdd5dface6cc3a40949b02d5ffceeb941ff6b6d37e3de078753aa73836e7fabfa96ddf89df0c8f43c58f47abe779db1bcd5dfdebfa16efe1b5436ae7cd7b7a3a65a7ee3546dac52b9c5c8fe4478c46f5864949efd396387333d7615f97fbb95bde7e7eb2f93ea2d30870ffbe90f42771f2feb73ed88adf6bb733aec159147aca3895016d394dfd4e725d308897b3b777d6a176959445d0e589b10b348bec1335cce863bf68ba510e9c6d17fe9a2aaebffd70a7d65d5d2a8bc285b22dd9e9160d8e2854a9b408a5e1f847fa59f670eab6905a63685f8efbfd8a688cbc6fc86672e599c3d5ade10a4a92a4fd5705a03e98eedb4eecdb8e982e6aba56ff9cfa835b6b19a7e0c39b48939345cecaa598fa7aa86721cb5675ae4e62cb61401e5e0cc36792467a7dd5701543898ded6223fb505ba450329f747e4f95fb57508446c928bec8378a96b4a56244df57c89993447cc183db3f6db7b8607cf1537cd1ebfe4a7f2931db6f9366adb1df157bb614f4322e55a8f8dd049b66eaee34006c64bef8ad0b5a33fe857de8df44b4dcff0d29a8d51ce1864d772eca45188efb4adae8f64c758e6698f80e804dfd821c178d6d7ba43c2c694e8b4a8a356a8c26894df3d6599e7bbc6331a6e77e6b3f7aac4ba2b1abd2a79484eb09ddc3af35a8737802f7b71e6731f368e5633fa913b63ba94b93269ee62c7ff699659f66c984165e87ffe53d8d6a3ee4d84e3b29d089fdd1b3f3aca703a3965ebee2a852aa4656f355b05b38e94eddf5ebca70f09da47ea6d49f54e08296eba5e563081bf7035aaa0ac761c66b6b11978c19de431d25ce69a6373d869d8ecc72b47550deadeaee5e915f6eacd36c50cda5ce545b7b32a3f63bee3880879bf96b7c6925d74d46c636f4522f44db993cafd07c91fd646893dca37eda658dbbb52b4fe1a5ed9dc30f40a3f8c606a7b0967e5e5bfe80167b5807e3b414f69ec28874398b464e18f54b6dcd9b693b36643d82996ae2d8fb8d26bad01d687919e500b6a289c4c1a0a7b9c97f865498bb2b4d455e0ba3b667da815fd4afd3942ee6b4169b88435d8b9f6a5c1883a3ec98bd8119b14777e00357fce29d59823f6b5057a6ae0f6843e3f3cc0593a24fe14e7dcd030aa979d639c02fbcb286c13a0fcfdfbdbeec163f8ab3c378efe1b6e5d2ccd4e137db92cdaca20ce5b83c2baa93d5c063db6d419537a7597d03b9ef9e2e4869dad0ae46cab55dce1169ecff53610053c3dacc5901a43959e55cc285ef792ac5ed28840288fdfa59e2999d32295b967f4e45d7046e7604d89338bc26d4c9f99fd3ee24e2683899ddc534ac37608a6959efd7fd7e24582fc9629b3dd59fb382e599ec8519ede7cf600c98c58eb8f05d2574c25c9c0d17809e04de1db44e8ea895c40c8aa2448a6655442f0bb7a26daa8df8ba5faaaee1ce9d16dc4d277f79c0bba589a7f948f7c198e8cec71569e9863f968cb5df387c6a45da8103fbd9797c09abaa56083952c0c1b6ec9a50251f3c16859c2c91c0076750016ad3ec36c42941af9c13e4086b37f5373cd29ef4d46d6179c948eac2738bcb765bbc58c8c0fc206a4e30267ed62537dc5202c5a717926744b296b2983b8291495161c920cc1258f209640549e5e7cbbe13ba52b762c6767c92a95678e066631b57e256880ae56189b699691999fa294b71135a7537202e8873d2653eacabba9d3082a5f01353b77da1cb4220301b84a14848b94d68309c6a29035e7cbf083bce5e659c0a226274e8534f61021d1743bf66525aa7c62759c9ea85155e139a9cc20f6b0776d567a8f1e697b97ca60982555c0197bae535a0d20ebd00a7774550e928647c40598d16a45da0810399cf38865ceb5c2ed7623ae9f55987fa37cce79aae79030f8c3b90898f758366f7f591452c77ea7c3203c147e591304138568d2257d07689865447179c017b0560b3165673526981c65858e842d913a9c22c0a9aac9fa4e16ea6b128b0bc99ff863b3f40b2819ab2e8a04cb353c7ecb2409e495e617a410e638bcb370b2c887b8adab2b9f95e8e922baacb1d148610cc4748cbf31b88da477029ca130b152dd923bd7796d0128aec6706c204ada1b37dc0149a7c318d8356a4f8c9cf917443fef20b02096579580d82bb8659b18365ba3347b081f42b17c3e2064a441b1a3a876c26060d22c370f82424e9b156145e93894de3ca09e4fa8ba6524eb9ea94980a038b257fb4da57d4c8b40ae5465a3a9c7169ccd30b13295546846a6bdcf13c3230b5a961b1ecf578abfa8bac3542820053717baae30a545261b873f278cefb73edf8cb73b9272dd7552e381da64c055470c199bab07cdc3293c0577d9acd9d9063b536412ac7cdee30a1dcfb6e25dbcedd5425508a1091555998931326fa69c78b5021f818f8a55deee77db38229b4104980c230dbb872cd671fe776a09be47852204c6a339126e3bac2353d36c094506092aa597449241121332900a69f8ba1b79ec56f047cbbfbd6bb2aa08f6e606d54c72cbb758357e49b937590a1191d88ba26ca576ecd320caa1bcbff8533695aa486d222b5749bc8f4297bb7938d5b4cb4f46d6ee701a35a287dc16f7dc1347ee97830ec69cdaa91ee061d3f0c81bdc695cd6939ae56be11681847629ea555747c664b5e111a9ac5159281438729916d45b8f0d3ad0e0514619ca93a8a971e9433c9eaa731192c760c5c5e32259f569dcdf39bba4c1b7269bd98417abfb1521fcbb640030563118e0f35bbfd0665023863e275c7d5319a1087bb2f956d2dd3ade6c37aa09c36cd5aa9ed09b8999c4473665ae2b784197cc9268c57bfb78dfb054bd1278e044582cc3c81c547c50fe7bfc270bf6aba9fc159a5853045af3758a8d552c3881d7c2879dbbb0b79b5a5c2300b5a380ecd199e3309251f9647598b7376290452a575f4ea7071f2a0ebb7b3dd9057350abbc1707e25d0b68d734689f0ac4c9b3242fb703ea6bb7fc064e599ce8f9269a0d63a719879ac8c396d79221babb2c4a0b7d38ac5b7e984f2212c481a353ba6bd95039443658eeab625d3d00faff2509a2c208afbc6016bb5d8726dc74993ad329bb9a554bf61209cc20e521b628d9c89c8fa687eb7464ac51820225b65b2af8489ed896d11825bc4df67f7002453d16875ce21ccf49bcacca228846450ebb8f04a2a5ef2d919dfa47c4aa265f4cedd10cf74eef3ecc1e63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab +ciphertext: 851033f1b0186cec6316ee0d2de8492c60f77e7a28e7fdd05da815a3d097b57e7648cc9a8bafe8989eab34df3c43d6984fd19b65becd0c48eca9ae5ea2f070df97a17beb6174ed74eae45153710a758c89c204a8718bf96e1a07f94bdf8efca4a5de6e75230e0f0110cfc0382361e36d286ae3c679c06e1acc9068ffc834c8f8b61e24215fc99824a988b06a4126899b085273272547055cce233c6934b0a1581e081a2ecefa722e3d7b2a2d610368bd14bea532e54795c2f28acc0950b1d1589f23c7967905eaf1548ac3804dedc3762f29e02d9933f1787d0dff3f6573fe88e78e5bef4311a0fc8a76265df4214a5996215051b4bc3fce8c67972631a9a1ef30bd0c85f228060879566def14aa169639c7c5d003010dab55f735cddeaabbf9d6a2b44bc904fa6efa5a258d09df75804cb993d689f621a635bdc3895107af08b831ed70ad4992f5613abc38eb34637110467fa1237b0614a5f370b9b9188892af64282728bfbf30cbc9855d2ff8dd016ca8a42a6bc8fabe0aa11b9fa6ba816cb6991aef25fe38e9bf9d677a95c4482bcf8cfda7ecc1f0c6c642f55a2cea0ec62aa232ac39c56a757b2026463d33109e04cf1c43a685a02a7e95dd9a628d495d2da75b95ea7f9ae1867a49a4326ac7e8b276667b6b0c1647e3370a0ce107a1110737fbf73a2a200331751f2714fc14f0b5f0551256e8f5c4eccc8fb0d95e867a021a8ff12bdf520ee6c8ce98a19233142ba18a6184d1eb92ed72810989a71fff33f712ed832ca6c3c9ab618fae23356a6078afcc812247b09032d58b5f9716cbd95a87b2a9604d15862348bbc388dc8af24415bec3797e03965e618b88b6fa44abf5f7dcb381b34b13ed9642e973edfade4f18c75b4d6bd437a93bd1740499720f68356ea2b23017c07cbb5eda895c67876dd914af22e0684734ff6ce2d301c4e79a68099e948e66b597b87c6c4fa4763eea673691d8377aab5fc4a166ba0eec69e7592cc4082182e69f7c3c9b6afb96bff870e34f56931a759ba44d25fe1b75250b5f2b6500022e00fa73a8276087e300dd1a96d520792625913671cc13ea00926199b4bdb55e5a21ba3f9fe0e9521c7fdf7a56b4d0d712a43dd4e1298b4c9e1691c243c6a1dc3d3d273014fe4395b6553abc4a81c4cf186e7868cf85db5579291b9730ca26ec09f7302b8a0b62dc0c5b3636fa8445ce0fd772c68d4898c83aae108698e809a79e3a341bc79c6ac8a1425bb7b66ef4556fb6c21906bcfe8252c173e2c637e1c86b0d3fa19fa67ee46c0bb85d94a480f24e99e4acce0a9f8ba64a2afa388dc9be4ed9d50f6a8107c44507b70dc7fda71af692c0e1743b15c998090421e454de886542b7002708f6a5180e20b2936868e84dd3afaec04ce4d628909204d757010fd682758857ce720257e01ef1e1c361646f740043f34b4dae7d8d02972039584771114333904353ecc45fc3b3428837e80d7b4df6c4923b122784acf27a5329ef474e2545baf052a2eb404fb18b13199ac35f19258782bcab37 +result: fail +shared_secret: + +# Private key not reduced +private_key: 633bd098c5ef1dc64ab3bd96e5cae6867caa3f66f1b10c50008939aece7177533cba8f44b0ccf87309a67cae47c67fadaf0d3472437389d957f2dd48f4b7c0e8d88469a6a87b87ea7cdda3fe1d74f2bf90810d8fa72c9242eeb7622748d65bc6de3d76464e9a65fc5ba5d68e66c5ad250897b73ce0964e422029f75b4cabb57a675ec3e44cfff2f417aa8535dc774bd689063e8a9dfd6bc4d10f4ba0cb57a1c69a5869e5a55085997453f1f23496a6a9b8331786ffd2ca9b83b78479d89885acc3f46b9f45437ceacf1aa7d7c39491990ebb44f3abcc5a504f466891be5e902b9b97c8e97bae9f25b4ee0df87eb6b88c0d0f9aca3534f807837dcfc254ad6c375c872849d263a6cb8d34de33c36269df83fe99ee8b99bb935a33d16cdc588c82bc39d5de885dafda4422f6eb43bcc1b883ef1b6a85486988ae49fd71aac97e3f6cd71e5e27cf3459c74ebf4ac2edd6f09933a22f2e62da6cca1a2f71517687111cd70d7ae54b2ed5452ebf8e3a9820f8a77794b3da4931a333928fd37e7c057117fb2f2fe9a19d6590791ef48b9dd9d0eafcbf67f063ab7bee59df2ca3dc8cad709579b9fd2ed79d48845de37a1af371c6947b12ac4a152f50c92c63b7336967dae797bac7b3a66e5a997672c4431c28a601dce360689d1cb6304f8cc04f6c3e2f67a2a72746e63feb1d9a6018c4b6f0a6943af9f7552968f7877f28cbbc9bcc410afcc781ed6d6759aedf5aeb57d7cad7fc89b8bf9e049edbd7babc8797768ea3ddfc3983aafada910a359b5c87d088961e5f9896183627277e707aa88b3ed96658663cbb756469542f9d53f22dfa73644d510b69da9bd89c73ce4bf4bdc5c7fffcf4cd1c73ce0508393f4d9eae79c9fbf44b5e36c73d33af7fc9c084d5fb3ebfea5727eeea865efa7c917ff9fb52c4de36fc5cd8e961fe2d7fd7167c7e4df137c584145f663a3931e96382966c58c3039e182cb1e0369813bc90312a9ac70f6d4f9cf4da0445b3687c27a8363e8dfab0579bbd3a418fb6af2689fbfa6f81b0373469d96e758d3a5658a414fe9a43f95e784b91587ce4471e34812adc977cf5a7b8491514a1ccf83904489585b841885cdba49d465097f8de0fa9a3163ec17cb1422c3bd8194f855f59953cebc7eae616748c1afdd2ab8948c0cddf7b53446ceee38d7b877954f3bed453e5a7bb0f9e5841984bad6cc970f9c9602fd8562d3df5936a897e611ee897faed50d5a3931d2fe9f61a8da6d75ba0e85c0a674cc39c583bedef794b628bfff1d9e8aaaada889c43b5670fc73fdfcd60ad84c8cfd7a43360a8c58a404d5bba39db3a7f3b64ced951ecad19ecf66d045a49a38857a4e535ff8e785f69bab9a381b6de244543b4ef6fcbdcdd47575a82da58acb5d239da726e0570a8eb3f6714b2fffb9038e4f345977fb3156ca1eaab578cdcf55e6aec8ebd1f6b92276ac4cd37b67d1b6084fef6cd3fc91d28c5329dfe4107d8ab84d903f5f13e2a378397a52793c0b886fd67d846de86520f8745a92efc80f48835b4d33ba53ae0e7b43afc44995be3e76663d1e6a2519844ae08536bad55a428af5144be296b43aaeae92d24fec933546735a6accb4a5a99852ca751c24cae5738a99734408c884e736a271a17a9a5829a56e4ad6fd90402c18327f4b5b052a5d72585ad276a52228ea0794d4ae19235304674705176f76e909792b32b3f45f3c179464daa653c4885346b0921f72a2e186210542575e7abcc210bb7572c5ba97c475d8ba2810c54b9f23988725dd17967e9764513e1a34e55a9e32b05bd6a030425250a285fb331351ba4470eb2380318c9c7a56ed0664c6a16af63db6dc2a7c1c4e5a901c89ff7a589c099568c9bbb0482b04205595c242c66d99725a17468684b2be16b2757760b72a57974549c44c17bd2aa028a2c2d74b458c2bac3d34537ba095c34459b58aae4940fb3b68a73b28aca34cb018b92f65320bc3c04008394e17215abeb505b4bcd37d473da43569d557eb34b06eeca22c1264db881a6b37bbe9467899117b602304fdb72aaa60bbdba128214cc87fb980c1be3bcf9348bda62ccfa591328901c9b9851e9f9258e2a5f500053f9266891fc1ddf267c58c1aa7db72255f8c277d8535fe48db1d9b12cd97fde35c837d12f6b1c84e2c019e77469350bcb9c3791af132bf2ebc633f3c681e3801d0ba00a30672e955d84930c4012100c18b7a5a342d226341924034ac0953ce15584911d86c0689fd12d3dc4cb2d8748eec4abecc185ff63162e414e709cc3c5163de7b80e9e550d4a0b90de20b2fca850e3b11338bc3b5c369d616a2b64c764f78122abdb66860103371b773586463ea51366792872f36c53603cd876c4aea446e8811feb4417e3f21b94059f1d3c47584c09b128c549e48f6346cc3fa60ad19cb9b65359f04506cf52994ff5225aa24d68a00bc5171e0a492733e726eff02c2b956f9d6a6e7a8519e2b9c4c90b8db6b5447a0b589cb71cf0b74b899272a966c0b0da3824035c70c334818bcdfa2632e7a47ae8119661b96a6b4b17810a8840cc05bb3a0db2c6a60d10cb3e7ca365576250a380fa4b956ce066e72a0d7739a4b4e317988b64270732ff94c319a368cf0b8d8018a2d210bb37c695032a3b4da71e25e2287ef34ed68b5711ca99af1cc6b83caba7eb91d1f10eff920d9b41091e086487cc438e461344905b7e954121948ab8251fb0044e6cd8075f28b70a67132c8362b71b77298c2200e11b3013b6b2ec8b21e7a23a3cb9456567b3a090fbe642a1693501db47f8c4829d86bb1ae7accdd7763fc0b5e754ca5999a1544615dbb1acda7749c1d89073b130a4823600e322904c9599c31b67c963c307987fabc4e482910b57a56e2417eaf978008c9fa38103c15ab1a811b2b198a5b7201ef767a26a758400469ce0b1ca83920fbcbbc51c8697cc4b687d8ba41d45725551a09e5cb230532760cc15292c4ca9cc77f6e215d70c8f6e98b35fb21c5e0993588c8f76775f92c575c013270c167cddfc76de12261e84c1b506737a7448d00a6d07456fabb620d985607a32526d276846cc739276122bc14cae94543e11276805aedf36c404fc079117196383cef2681074f954249b859498a8ede375663755890613b15c2a8ff25ade0abc4d674a050369a596ac3e446cfc3171600367f89c9251e33db95c508e09a64f683fe7420c5ff73ebe5836ebec9e0ef1a39c02acd90275f5d9af9eab8c741023bc91806d255282846cb5fbcef030ee8e721d0566c29f469f5773938d679dbe17bfd7de66be5e4126f5151d1b086e26a88bd9f20710ef06aa0f834722b801f6b79c031f1f9213fda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 +ciphertext: a1752c6d6ce4394f2ec75f83b811a7216e0c22f7de325c4f443c4b42b8b591eb1cbfe51016809b0056a3791bf89a2d1c1d7f33f487456bbcdf4c129d1896293b2a247fb921586e048698a53059d76bcb892c491d7bffb93cc79dfdcca78e19bba05bc9602f35e1e1ae7a39f8cbd5fd8fcdc78d2d4465166e1de58d9fb958c697a87f003cf53e39a5d74c800b2ff3a1ff5e55697b5717a024acb384aad7b9e0378edf0a32c84041b0411ea2536756354adc9c94e434d485625eda46c49df91e19897c73088252975d53124b0207ee6f0b298eac2a3b850d38f87e8ae34ed2092847beebd022a340b8397feea6b70f58048c9e0f7ef1871e3900665187a0bbf9020c8193bb72619b23173f2519aae103412c2938385e4d95263b0c6b1861bc8a9eb18bd45b649e2c88267375af062927cbdb36073c8baeb2c18566424b19d1117eed47a2ef5c9447548181a6e1278babf995c236a0481da77ce3fae728f1af4134a74934163765df41e05cdd81f5089b4be2d98be48055b9a15e2531ceff8e25fcafdf8c6947acc221e9a7d497ae3e6b948fdf5e424ef8cbc7605b14313f96d0b8b384e83709ddcaf9ee171463e4d99ec20a0eb4c935a9fc150f8f5cd7b8cd35af793fe0c6e8acdf937b8de68fc5c340e167c9cd54e3e5e62fe5faf9a3509c12377567f0f21175cb80dabcced8ae1b0673b78604763a64ef8a168614cabe7046a4551fa6058b4eeac3906d69642eff37ec1e9f4c1de1c3dd3ed950e6673b8a9f5478d136309781b6e758e4e8b0e1864dd1dd1f961012bd47f4163e0300e46fc39ced1aa6efc4c1cff10633b6740d9436f7c024c9835f647b868f9eafc7df5b99b4347b7b417973019308d564d5ee6724c630c891bbba50fbbe8b902d7d53761115bd4c6b0cd9f1a7ba657e8d75680294f35c0cebcccad433a633e1d01b8691ff74a7c2711ee7c1aed207fa3dda7dd61082198b870344b6ef33016c27879d22a8753993b2cd017387e5c23b18367e5eb3d3d356483cd4f8225a0b6d89853fc0a2869fbbbf3f6f4dedf302e0d8919fe06f5687ddf38847d2da1fafd710410fcd5b1bbbb14e1e6e3cec8e3749d19abcdba23c817666a4bba93a14db6955bd8d9fc9a96283719e6badb4086ba2b04d7c8b4292fcae74ab859b5f1d58a691f97b9bcfc987e4c1f7aaf46d7eca4948230b83d033b006862ba19170d524a3e1c79503c548396fb3a0e0d4ccbe0ba4a5b3f49e66113069ac7436908f3e9f0e536d4c6c54081e490dd965d34767a2f9e26ce5ec761f30b9c561729b4be664a9274320cca48fc35b0e878fa6f3cfa1531bd4cffa1c09a47bedd5fb7871a56581356f2fa247c11eb60c160d4da1393cb46185ee744e220de433e3afcc3103a58ea775e4c5b8581d4ffe4df3770cf7b1a4ec174d4346440dca66c1a3dcc4f2ee81451126e069e6575fed7f292f4f9fde60bf3b0ec9c89fd92a04ff36ba28e1270e1122554aa75083844d3adb275cdd15a04b71fd25eaaba2522c2745d46475367b349ca9a4077d +result: fail +shared_secret: + +# Private key not reduced +private_key: 2feaa7e47b8e973ca66cd8be82e5983d295eee37d134086481b9fe55d3a282cb4e703bf34e3a49ae7b53306e83e0b57e4cf688121a5da377aafdd36f128d816ee9ec28038776169ea1bee938fff9f7b5744704fa5f457bdd99e91d6a89f6b7e46b55a5cd16c743bc3f406dbdac5ceee87f7946157bf29f9d6b8ce5836c6b28445601497e07376426239aa4cdbc8135570da6f3ae8f8f858a6ec5e4946f189864e87249eb574875409bbff96724e380c633ece33567da5811b9a40759403becc297ab63622bb9f0b5cbf52378be037882ac9b264e4817b478420e683b8696a609e88323762bd4e9fe939ab0c864052f743b3a7e628382d36bc42afc4dd206a160dab1d165eb0e7a349e14b5b76d77d6b850833d6b1dd83ad1be6158edc1ba1da5d3fa5630ffc0098d4f6c1caa8f1833618fac4f8abce7d4a1e78d36124db69c8d574658c6f7fda4d38ed4ddff9c55c74500ebe29e65e1422e76425fc0ea0cef8845d816057197466b50da92cc0349971dea513d40b7847fafa5950e8acda9a3c3eaa6b7e475c8075debe2183100447d82284516aea192edeec7ea8eba84701ffbe5bd149af2e66cb3844204e3bca83976a088a291fb6c714f5a09f4fd293beaffbdc0ac94361b5673ffc25a4b68e2d31eb0aad388fe1538a69f9edcabb11f3e7de597b8db653cdc65f9399f5a2be642fcb78bbc37e584a8b27904c4fc7dd13058f2cba9b96babda7aade668236494d68a466ef9e9869693dab64d5be3b7ca6fae7e942b955c1356735b1af7aa037b4213d0993e55c979d3bd5be236dfee827341676db5b977ce37b6b44bcbd9bd197a97cca98cb87a30febc9c1ad51ed98560b6b761055d84143f052a686bb3623ebdfa209be84d24f6683484a7594aa22cc705173024f35b8e24977e5fe606197e0d2ec9d145c316b7cedbae3202ecfcd4d6f225fdeeaf865f7c0e8a4a938920f848f436ae530a591a36e7aaa7e43f8ab2005b9f9b734c82145c34567c5a5e8a8dae3100ea8b4e44f0d698450c8df37765b62e433cdd2a842468bcdc4fa639aa9644d89f494d35203d96f5c67cf17baad6cba5c7acd02bef5a560ff5e3b577111b4648edcb0dcef907554fb96b77a9ff67593a3f507becf53b6a01136edc0a684e2b8b4835d66053c8c33fb736d3f1f27d8226fc3a132be073867cc097fc53a85426daebc3756b329598072a352ac8ffa8b6e429a58ef22cf834debde3cea919c75ad52a4162abbe2829b2fe93c7990ac7cfec8eeaa3dfc5cb9ca14bfda2f8dde70d325d9659836f6f001371f59aabff88c74f0f8c49d5ac3c766efea499e2375a330c91385831ea9dcd69d6cc8b4e5a4e563eb0ad319607b172be30ac94fc66589dcbef83af2b884beb6b6ec84e49fd37afab54fc2c6486a7a13c9c3396d3b6512a576cb87599aa7aedc97275766d6a96af293f7deebf73879f3b98b647d60d3d5edc718b0477a5164000799ca31cd8e8f8a9ef7f8cd1bdaef5ce6b1e6ec751f3f463e4b7862f3bef7ff7e3f88fcb469cf35da64bc7a3149ab3edaa730d6b4e6a2db7b6cfbd55b97473c9ec3c1c5923067c08db693c97ae8334f7dc6439576749df139e19d9580ab8c49fbe5b81ed9e6845335fe1c21f16c49f6b02f2450f4ac135a9eaa5e24a3e3f350a6982b5979a93120285dac88e01923060a795d251c1fedb130828582c95ca7340b2e8e105cfd64f63e63f85a955dcc4b12b0482d0994df7ec61b8b09aa4d1b8ceb94b769a2ae12031d16c05cada3a4d0350e8d970ccf716953543a984cdb086c425915858d454880c97505bbb9ac7cfa54055526689033c8241300e11d09283441043b91354d1c0dcb4a869f225c8ba5b290a77629004ba336c8975366002667c99b88b53a4b08ab564733b5d2a3011f944b2259845dcb6ab8956836656e3370f5981203943b343389f2a98cdc96bc1a996648580b7fe837817ac4db31a2d325a869950a32d99446256cb3d8b91c159683bc8c1ff41287ca54530e84082bbafad485c0f179781950a4722c9114485f6b403f3760678e3bbefda309adc41ca562dbcb739654abc6cb05216807e2fe18fbb485977380d8c0282e271c7f1f8c14694484b76241a1b0cf3928ad9e328357ab75fe909957419defc8e0da3469e7720a5e91df7c4857ed50b89d18ffaf6a045e2c950e178adec7a3d690fa23527d3d353d8731857018d7cc909d081cab0370cfcc8bf8f5463a4fa8706a1abdf2c6a7fe8c834a4ccd8b6c869c6bf93c808a43274620b30aff22bbce53a7ff85145779cba220dabd1b597f4515c1664a374a64ae18884b0919668a70b371e24d2ac1a84af7de3b84f804e105177f6a9b914cb5dce45c678c886b3b24e3649cb194c548fba4114f278a56a4310a7cf1cb16e8ecc0b0fb8a2685b30631753b7f87eec8578684a67634119fe8cb334b67b741305aee8762639a212b9baab4032653b1537327eba5b6fed245d17631e748532426c5a4f4646716521dcc72f4c34a38bc87a892650def1bf09991e4c175d0baa1bf6469277f75a2812aacb88534c491f4d3c884a4470f01b805efc160ec17f68b0b0eb9910889a02467232fdb268848a5d6969c91410775fe717c9103cffb9a2bc13b1bbba01abb92ae303abfefc51af169d25d29316e7a12a5bca6827c25df567ef0c20f13a6fd728a32e229f72b42e74470c88c105bec0a12a1810c3d2a3d84b89a8c9bf66cc305f0b0c3fb989c3541daf147d5b02813e7904cc18a5dbb6632af4a34cd42007f09ab4a88c1705958058bbd6f996fe7642a0b45b690317d0e658ea82094d6b8d55722123fc1bd349433ad4850b19a4f6616685767e67bc21333a9f667a6c422087398b3331c075cea9aea6e29e424653d5e7a86766613732343341491726869eda4f97f1982e62c4cf135b1553a0a842b35e8ac23f29a921039bf31833f12ca8c4f02021559e1ab5bc37d247a5078280f02956ba2e2f897b48e18a769908e6b8b15c63b5a780580d02b5f70749a5442c824a0f56cb00378bc0ea2b033fbc9d45d535ecc00f5579a687865702436d3065461a06c8b274561d938d92290a8c0bbc0cc746aeb253e4823f8bd7b6becb5b1f8a5403fcb40efa5f6c34c43620921a416aa769a6ea1ca15c765d0e53c70b0a719f7b47ff783b63701af5a9cfe704c7d99830734c1b1fe00a1d9166b11060baa09501715310b93ead6825ba9998d922ae362092349aa45abb04781a98b25989e8309c40698a2676b49fbdca7775f554d2448358e6a4bf5373892b712b63af3392fa95dea1a8b6f12914ed31f14f79c652eed4db478de7ebd263fe27052509fee10b50f2d053ae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 +ciphertext: 381ebfb00ef96db47a1c412af508a5509ec6e92bb3eb0bdbc9cd3611ec6b875764aa7dc3aeb515709f9d3b4cfdf6209598233df9a84e13a1dd779cac72eba5c20c5659e8c12677eebd55584cd34bffa6572ef7e83479c271cf5131bb5070085c3e513217bae58724f5e4ff3d5eb3c21d6c46e18fdc7d95ce55c3e2e697a0c99bcd8734628e1a93f73647ffc721a0d325b4cc9ab028e1f3beb2006b46a61632d1b69f26514c0ffc18a5a7443d4719e46a55476511c868427df2cd91d9626ccfdf2b1232aa5782b698d0d5ba501ff0c993b92b263e4cadaf631522a5cc7bd293554598dc42056efe2dccc8499dd574616092461bacfef03a85c4100550514651c5fa70c7c172ad82e3844a7c5c940997ca9e9cc6333a0ef5dd0c60a97b93c6bd56f18f014182b3df3e1127411b58e2a095b8fb4a7ce43fb5ac658135952c16e8c4a2ca78b780b39518dacfdacf9e93ba28972293859644c411e37070c877e6a96dc08875d2bd92d54b60a56951af537f02cc4dec141eb68ed3ef48e4d598a0cc899488cd73d2b676cca349b2c2b70d9931dd672bcc7a15d41db475c058528c5e1f8902752a4840be08a733f277b5ae5829c36fbf55ba91338ff92bf7811f5c660e12d3d3699ad04ad1d54a21174c8c630059acc5f8f46662f0591769efb02a8bb6af57ccd05d53b96b987f2ea676bacacd6fa4be275503a726d6f1eb65438ccb9563ae9bf6dcd313f3b819eaed568ac05192886e7e2b19ee532bd076999ab8e3e489bc596f9904e7c35b0d93614c6afe2081e5d9bf545c711af029107183f1ba308d78c4becec16f49656fc03ec86d8ee25a39d11517be38d270601f888df16a70733ec3230b1cb537db4e5bc13e8b099f7337f9e3e5709ad3fb8ce2445c332b87b9f263d4cedb3f7d30f014905a214ae7223fe1263b99ed02bebc0f4a298b7b1f4722ce622f02a6e75754e567e1ceeec73ef725ed5e7caa497d5e67d133a08db2c42d876599c22e052673ff4ca3a9802dbe7b3e8f69dbc36e713e8caa0765cdd74a3902d5a23dc10a01deab09d05418ac3b30f7c06e594d550843794c4deabf8e805806583dc30f926ec191786c661e66283b01d995adde5e0d2f59fa044abcc55b78c05613d88cccbbbe8ccc19208569493831115000a8c0dc41ce0f3e7818f0d2cde58826ea8c562b84999f6a9c3d914eb109af6c804c16fc0648336e10427800a146339dd6cad05667e98a2ad35ed890095104ff45bd7c51121bc141866671d097006b491b1e6841fd34f0ae5f8298ab62a4dbff7ffaaf67e1fc29656b75aaa1a1949db4d8d3dd4cb2ca2a8fa70ed3a70db112bc261c2b58ae0ca834cb2c358278d5af6c72ff4c64fe0734f6932329d7a6c6a6ac19514401128e45e33f69a8c484ee7bf11c0e729970364490affcb5fd8ce9fae282848b7c36957b033253b8aac9b83bcb9ebd551ba3a1d1511a0847fb7657b2da87fec3a5e0e90e9a0af46d826c5c1a932f0158e5daa18397c51cd42d4e8d5c8571a065ca8568393c6a5f2e +result: fail +shared_secret: + +# Private key too short +private_key: 7e9530cee74463359378b5b6adfe7743777bc4 +ciphertext: 0cefbac2497ae8c8d2baaad5b21399e8d7477dc7cf929a8a3d4119b8446d0f9e11f4ac898bb12bd97e575abbc087c837f54335901c395a29db91d437fa78b3bfc19aca90fd6585250a325f69c6fcc6d8138bd13891cb9001cc65d41af0cfcff617ea111c53e0f51a9e23a190dc5447adb5b2df414d23da142a37f73eb966cdb7f001f02d973e11aed2ac5d1d941a0b1d8d344c575f46b9b075dc96a2c96ec0257b70a312512e8c6a99be2d86633c7e2109da03b2effeb74132b3a4bfc8eac5947c2e730299e4be00b1ace403c13e0b4516d38916a2c2f53d02b736ae384f09aac95d03c1f2557f95109f6d9381f5f4bbbd0de6e5a413c630269d8bb25955c8540db62fa1eba362a6114431d388e21647734b9aefb187fab0a6dbdf77ec78d0a14e9f0397629a219f2ecfca2e1e7f4d29b5d252435d3f3a81d74717de4cd1d535e6d6891b0eddb1df081dae81277b7199fbfae4be7a369cff05bdc9861d28bd27298b3dcc3dd1f223fdc2e72e19bc1244212ee144c3e809c73d3401141d8ebd9eb6de3b5b6408a0b6911d9b96448a36e5ba98cac4d302bcb7a4f1a695bf9004b77de46385be8ecbb403da0cb64dc3175cfc059a32442608189ad4c777edff92e0ea06c1dc2392f728cc1eae193ec744a5fc1905ff07b19897b0693866c6e490c082a0768ba73a8aa9ca0e4d73e687696632d8126cb1de6c7bcd4eba095a01cd6494c8ca064cdd77609a897cefb993bf93445951ffd7c72fa41c6e065b2045344cc21b61082117c0dda9352ff1c3f4bb864e102b3441a40b8e4387aa87cf13ddca9281f147530dc60badb0f8e088dc157e564ae7c03795fd08a2a6401ac05e89ca039261245042c1016332d04a70c7e16eb8b3a21db58159baa028a0fff748bcb48776805b860db1eaea518469c68566bf073fc99f3dce0d09c0c62f6af9f8afb645120018496d3f6e4322b8367f4eedcbe91b6d4cc668386afc2f04b17eb2897e12df103636cb03b74488b87236dd989c7f73dc9a91173b685ee40327119caff4d422be1da25d114ff5c9424061f92a82420abe15f24defed9827d5a80e17f85f8e8a5ec7eae3db1ea52568333494218e501690527f694e5e91d99e0f64ff8a1ec78257fbb3fbf5bb7ad2ea78a21dcea4d92e941310490f7a02be85a1f9aa3006957a176099685238a43514005ddd2d12431e230c86317cc577d2f82f1fb71ba8f0488f126504cbc6dbaee9b435f6509f3d3aaf55bbea285a3e34b026d53d8452bbaedeebeb3e53d2d6558305a0e01dd1fb5d1e4db2df3fb91b315bd829f814bd58b83e2abd349518ea9450af97e6e9fe2bfb7e9b920746a3d3d87756b6446e09fc8d3356d1a13618d2822a2d942bcf0b27fc8b474fb55a1952e93180a31a0cb07f1c1df7e395e952578f85f8303fdd62297aedc9d2c33a4be7188af442c15a7b3f64e28df27049d440281810c983e2147c2aaeb4ed5b3edcc61eac26bc61557788aeb3a9419114b141d77ca638871fdcc4dc7b89ec19fb26d318340931efd867 +result: fail +shared_secret: + +# Private key too short +private_key: c099330493dc8f01847fad306aef182cd674178f588e1ef101b06881e76b38f2793bae89cf8d721f6a2166f1a432b70619c08cb002f768acdc5a628088ae775482482b9143c722b4264d81a0fac41789552508a548a3a50270a4124b25b88dba61a34474fed80fe5550d67f2c06110114f33a2093287e3fb38ed332d49685dce2a7a0922a8d4e84bcb5128747794593a96b60c0a0e57244ed5c317f799034bad47b4b5bdf57c92553a68389fc41210182604a6352fca425aee183c631108bc9ab3e97a2bae33b6f520bb2b7624b7e1c7710354f57203264929a83b41ff839c58018e61041bf2e45278ea64218cb817a4a7ea9a4c740c4209b0a3e0657de0887b2fa37f30a46914db917a7447c1a820bdb2a064a59aefc073cedb437c9039c9a6cf49b864dc0c853d6a1f53e728f895b1604a25c4941fa667267960277e4171c4c32182ab968a307d3147872e4938c257bdbf39cd30e605c318a9869677f7a887e91c61b9645494f95510f8928abbb4f61aa964f8ce1844915361071b0561e815a3cf033d9005cfdacbafec630e61106b55818639a1c1b1560942ab859a3970dc2a3a14cc3a51d7b401100ee19b084a09 +ciphertext: d3c7fd2477986daedd3f2d29fa7cfe526facb195cd922d0def5a0f7702f14c3602779afaf1d9424a88e936d5ce6004a0261ecfda7f5ac7aea76d3e11257572c7c0fb8221144b52c6e5ecafbb82522f66bcf3ded8822f5653bc338d85ce5e92529c2ff8cd5bc0347209b3960aee10797b640dee8613e1eeb1959839e7b884cf82d75683d175c647bf59262329348454977fc0fdd47f1418b805145ee1e820230522c3c220e655d8fab5a46ff318913182447f7593ef61f2f8cd2c2a5d2e70c5c065f43704655cf898a35d7fd273b0f118fb127214df654e46bba40182b72eeec210485286c22f779c5a220db02e2ddc70af83f06e005318c050eab1ad703b8800afa1b9ee2553c82166f4b849602ccbada9ac016458d03c867655cbb46bad42f66aac96c5ce5f37a9bcfc16dd08d74b7454adff3fae1ffc08a4f7e05ec4d2290ecf8523f33b728951c0e6e9dfb3d6931baee1907a32fe28cf0fa49b8c19f290d9b6e0e026e18d978410344957ebfdee60c827bf24ec678fff22298d707db9262df9da20fec00bfa75e9f8a9581dbce08ab1a431b7a3ef62af40f40ad9b0ba1aefd333632dcfeb56de808a276cf0f4e42386a4fb9c6f075dd68aecad812003f9b032d49ba4f6907a2e3ede7a9b0e803b390f3ed811e1f13783b9edd1d5b4b846b77a7f91f505a8f2977aa28f84d3ded43bc17a2989c41cdda34109042ffb288b4c49823f511b40884ddda5bb52b60af80aa2ac9c61bf224026dbf16d8fc67f6fdd472c8629fe6e1b2f6d0fc0285e947babd3c041ec569ad99f740e492e146300bfd243a25693f6e2025012e5fb6b7ec64e209a657c22ae3b54319360343a09b5055df2a06d29b62b4bccb78ab8399b4a7f5168909340a33b753e12399e674774ff5220ff7829646d982ac7c51dea40ec30a2b0b2e1715df3fb647afcb0a1f321b1b81d0ef7485716a664047a7730ca8e6fc70d082dd7abe0da67be322aa0a7c51684447242ba9eeb2c6df4241a25bfc8e2dbbef0efbd3313741627dbaf5105ed3f7ec62612a4626fa34982f04af64c1f9879b16a6bc4b8ae9dc3cacb2b6ff703b0a9269b5795243041205f230d0fac7b8905e839eb2386c69538eda4450b4cfe65d9db2e55100235c018ddd1f8f00bbf709b21f899b2a70d6e29b80d06cc0a5ffbd0a2ff62b35fd2401b13be4a59b66999086fc285d5aebadb76dbc9b6e101c917f3414dd311ae9341e6246d73f7c2db1e47b15419eb18dd9317580e17e5d419c6cb51d451b1b576842e10d7677dd35dcda2d5309fba98416696e0c63925189132e258bca588ab6fcc28dfc800eb3bfcf57b9099090979b27b0fb64fd25a15331850b1165299f9c10f39c342776a23bfb53c180ccb04c14c05b58ba16ddf18c029307451dfd8b34c0a6b73c70c629f5d175718cf17ed1f807a34da9fe8dd04c9d8cfaf1c7919542369652cd801fc127d2507fc156a49d4cb5671964d15bb6bc44e342a2aa750d086c99b856b966bfae44410e8ddea513e7c92918a83315f654028 +result: fail +shared_secret: + +# Private key too short +private_key: 39196fe2f9c1f9958a2a969d39b9429b49d1b04341caa7d1103e5e50a518e930427258655d8959a1c1abb34e931eda1462aa3b3f422f952239d76efd1703ebd6705052273dc329 +ciphertext: 3db6e85b424d50198641c791d93d8b85b16514913e02fb99d4d48381c02fcecee62637c0b542aad39a06224fda7a0f55a3f7a2c97a4facf95feebb8f959da200cd2b48b670afadd67fc8984ff7548a86baf80d94fc901f957327b1fbbe366be489954c8de2a6ba3f381f99bc2ab3fe7b2d4a34eadc8cf9d158364ed80d5e4fe75cc6862c0b21c5d5392e61c1394d4e968a5d64f0eab08e810bd693ffc2d6a22eeaf4631adcb4917db92b8976f0ec03797397cf5346f631f591f05a624f32a7e366fc11b59e1f5b4f3fa633232e8b5d6cf85c9603ec5beb3bdd81a00d36bc5e2d75c17341c2e372eda079a66b21d3d83e35713c722d8845f0f289b5b903bd17b4adad3c852c0edee236d9f9eb5e74df9146bab9965ba628676d903528ce5c5249621c2d3571f7d01bd5099a0b11c121bdeb1c35c83420945974e3f102c09f4f2c5bbbb95ad4e662a6befb0fc7f13e2386c7450561f5bc7d824749c3335523b4439c3496a9ca022366fd94821b7a4907679ef236f06114304dad9ef38f769ed5094754ce1b5368388e2ec2f00994b9bb2452e13c6fe6beccccdfc37cb7b0a201114e0253242059ae800dde78212dc8535e268e1e869199643606371ccd060419b2a10cf2eca8645e97a9d32dd4d35c253c01a9de987b294d417b8a0b12c536ad70bd4720bc867846ff90447531db3541e86aabbb2dafb84bec8347dcdf466991b0269c319ab82fea3ae215eb255df41ef87316d22e2d843b0bd2284356232a116f5f424faee0201c7841049847775d76db3bc138ecc47ef1125d3ec21e56a0a966c23b632a03f1da52bd7136f5c3f512dfa2e9bcf91139d61d6d75825c6db7813fcebecb39da5cec1f8db73efe1ed2719aebbd8e2bfad3a4b2f63e9047e9529f565b50933589d491a25fd50ab756017e8d9aae0471c1bbcf669e0ffbd071186f2b85883771917a0748290ed17542eaee27dabfa547ae55437c0e85cf099a4f2660403757b0c8e2fe28614aab3f1d65e1b9907d6c1bdeeec2bc0a293973587589e0e353082f07648f569749063b1294b102bec8a6f9cd8c27628cef4c26f0485c06dcc059507933ecec15204649845f054b83450416b63ab3d8498b32b3eb50e7ff6cb4926bd74b6d0d6635721d72251bf4992b6a6b7e808cf55c6a69f9ada3af5effafc5f024062d6e92c4efa008d46903e643949178ca836bd5bc6fadf49a9110f16038c13da9a901ebf6703f8b06cfa2d648282e96581a52ccc78b3000b75f241622845322e32c2e6a08e54fb756bfc583e3e197e72d8a64781356dd3b928297af6e90ca7272960e6fe51c057e8369bd8cf415ad898551b688b6feed04d85448ff7ade72b5f3d31285c3aeeed57f3baa62d7620313286ae05f26d9c07c080e514c289767787ea53f105c32ef6c97400ca4fd76f9e3438047e0f261a8c17032e3c01f5ccb2bd1670679125c33b9a26e22af9a4d7cc8e12a4b9a4d3dd9025df59a96869a03f71b3434c418cfb57579cbde2a7a43e8271adac4db62b091573361d2 +result: fail +shared_secret: + +# Private key too short +private_key: 3cac6e4a97fdb50c90d996e6078eadb32f864b802d8b6047e37d029505946419c9302b50147c7c49ab00ac5e9b3bc6c2ab77111b1271387169d7453a956b40a74d48a280eea91d84a2aa22a42ae8c055b567857787362181b40c9449b6158677d3c53729c8bf8b2b15e418f589b0f97b5a7e76740748165585b58877ba6f332f5a956e61b84143bb89870883bd7c4d2a05517d74c410e37c9f63b04fa66dfd318750974c06821fbcfca4017a568338047760a1e1e778ab714fc7539a7b1165f43b889f7c60823151c407c8e1fc8ab8aa8c226983521b9c1739a0df7850023268eda729ad131ef0b8a0c821c81c266a7686480cab2bf95666535cc247479de7f57275327a92e2371a3633c7d84678b7b962b9c6785751253b1200c7cdb5aa810d1c06a2735632fc3a5f964882432d8cfb17186855f1514a72b09abf3a45d505261b4741ea7842971646c96c05c9b5b59d765a4b233825a5217984137991990082274c4b9d6949b67d1a584591cb08594cfad9a1d7077037a3641d6994057c1336f3bed24a4f2a2c59e0a406c7aaa032d22857226791138f848a065d0b5f8feb412815a58af078600a8d8fcac57e9a56354c7079e04461d83e0d439dd0d59525e8845696bf44c50c0606cb1c2c2e7372ad28828efb905ad42a376ff9051536aa37a1b79ee7283e3712fe629ddd1bcbc43005dbb42f13dc99676c58505153e1ec2c76127697e655348213775c06d69444037a895c04530352991b6095fc8cc8dbd2afd329914418aaab4acf206c13b1e76dbf672051e493af149288516eff760db0b21c6214b30c452a1670ab8e0981ae1352f0280f3618260416735b78c33e72c9950750d42c6f964937d9c832258433e84178e7759bcc5c498579ca4aaa6f83e3c71833681b356cd1b3ce39fa1a914909e2d82e1a8ca10d5535d77120269738ba693c532c20a461c0adfc3f462575873ca7b91582d6d036687369a3f287ae4238072b12b10baab73c7440a1c37ea143afbb8dc7ab84d2bc5d0f114a04141c3a0943e75c10119085b0a02dc2b2793e255a9b83beaf7688e1276f19a4b2ad3bb71d71735aa85a932a5eb0a340bfc2cee3d43a8d38516d24ce38660a68952573177e24221dc2784535cc32a04bb208f1b272ec053a9bc42de662638b837ce557ca3ab763aaa69d72a889b4012057bc437673217931e828b249c9bcb2cca192bc62b9551d32437967681337c79e5ab0396700caecabc11cd46210212e3c495b36677dc09676a1236eb8cab37689a030238f3b4c86b2eb1a184796925b0fa1d366bf60c100a84c46244f99410b259291ea7192c43a740d1747c78b6569e7a830e91ff6605e0c1c79400bbdd3b5cd424903cda7199324b520d21d1989a8db008be120376d966c152a405cec5801396772c4c3067891e4307903d01e0d290a1449c07081a528b576f0b4256e1c5e8e8ba754438832491fe0ebac974896275633c00c6132e61e37fa5aaab240900886a10b8dbbb299abc61e5e5b56068199ad694ee3bc85c84912458bc5f7e8442a0b73d1cb5aadf367745297d501849886b0667cb3fd2840ec5a31d696cb5776bf023c04905b4a8ddc33bfb541597b1e5c88193d6c22be40a799a67863eb0f2a66a54ff47886e5c3d3ca2919143a8eac7096910a65 +ciphertext: a25775f00ca72592c892c841d8d7aa3846e96f80d623995dd0be7b0a9483f9323b444b6ab12bfe33543a231904e70ef09326d72f2f1638f320eae3a83b876b3a0b7c3c484c75df06b71c956c56350e2842008adb54bee17c6677522518c97bc1f93ad5369c24227ea1f4208244bee479e04e4885ee1769dca10e337d32daa43962c564af439c12cd5e3abdb069c300c753c7cab39fa268d3191e00b6302df407e9f5992207d7666c2892555f2d404b0c2a6f0458ea7f3c46511d96a13db996b247876548f3319756655249cf8436d5ddbdb301ec158a428d5fd5faac464dcbebaf2416994d6396add4794f213fd176a25b20b879b63e9f139a339be75a296ac0c04adfd5a40fa62b7756766d5c51cad04f9948dbfff4eb2a866385e064e92ddbeb406763664e82ad07184b7e83b8de31c1f47bb0b6795b517375574f61e4fc88ab7c99aa6e1392e0041e8fa39f09c411869c0f576a14de58b5da1f96a76d01f927579b461f94ec4e37def35b60e11beddaa6886d5aa3fe8798a722fc4ece0d4ba84bfdbce92c10b20943c9614399d4e7c85227ad209e2fa4e113cf6816d655b0270bbe5edba9187e3144b368876f8b892d223e71f13bed8d1ffbab194819cd0cf7f633ac118ca328b452fbf34177d09746375dfede185f906338bb6fa8db74116a6ccc5d51798d956698efb756babdc448648491acb2b0728f72982576cba7bfb60aa28ac49506a0a54779b138e30d487cf562a4cf2063497534d8bd54e55cca0b4897da50ac5a8521bab25223c81dafb3d88efa61ca6af06ea27074a4d368a462173d04703bf383a6d398611d83fd09a07641fd9fe56544017edbe36273b1f67ecc5df4c5810bc8dc237a7d473cf106cfab6ae60e12a8115baa19e9b55c30505e1dfd3946bf2af27d618aa2f66f8366c7e45345f570697c36d8e9a3680110127bf5e3a51c109672d6545eaa61652776494d805baa610321fdaaf2a77c27352a271fc32ddaef300b3dc39971a129a2d4e453e2a021439245a67ae4c2e8015d8a2ba916f500591cc93fcfad2b2bd7334f441dd67e935781d83586ffd8ab3464c224ecab396885cbd11c0bc7dd1bd0972e89c6e3251a8ee7d2937286036029e56767c8718853d2f3527e3c6522c1cf6e6435dd810c0899acb4c54661f06be0a8aa01d0f1d9d5dd68d26d14018c953be9fb2d9eabacc3b8efee87cc781b21823719355135d54e48e75a314615e9b619e11e8778ec21dd8b7a6ef2a85454dbf11d1a122669064c8bef1c135eb8cce95b927cd4ce09a9c5da5308f7c2b87e970485333698cdbd3c66e9950634f4553234c677d219b8e957c8c2023ca9177df212535440141b60dfdafba45b7004061492d8a3f1d8cefce286a77d98a6c0acb1b07c1e2d69fbcaeb8c8baa5c63978a7b815783fa33c73f8fd910c552d2f71cc3f0237ca22b05c83dc963b04e7dd28d78f92a6bb9d3607d43609d39040229767b00e55b52bad50799b8cd32da2ed2de13c02650c5de9f1f1c360e18a5d40a0e264b5455 +result: fail +shared_secret: + +# Private key too short +private_key: 55f7b55660aba5dcb8578a4771010ce258a27ee41a28664b8800cc25a85982b60fa468bdf567c55835a98237b8e4261fcdf61c7c82bcb014476f3005f7306fed9387f0b9b8a5f06afc1c048c83ce455c4987a093870a0a20f05b7c609743627bdab05bcf12870e362ffa690aa61347cd396c3ba205b33bc12b5470d6564b9277c78cab7b8d2235b72928b16abb3a044ca4541cf1d95e1c214db52a2ced7c703b8787f6d91ccc63ae8fb22e03bba98eac637ad33ace0a5461aa81e6007de3504fafda02a06211125a0d32cbc3fb03c3381cc8c2f074800c6c9be1733b4a0e55827cb752519eb04298e3367ea3cc5eca1745d0bdf95943e0fbafa6f60b2be15a37bb3499b41f890102e4832ceb2c918679489aa7792380693ed535c28713c2106e55897126a376d3782cb6800e00f499a6acab15720845267d0cd128ea0027a886cce28489e314633ce130c0c89ad5f0b88a7ca9b6067f0353c5333a1f5da234e8a89fde88c18464a18b1260ab1183bcf0bd83ec69cf48bee677b02ad9330cc90c0609c1599b3829047bb1cba14f708985b47c71e57f91471a05d656c850c8e53b4b32b0cbcceb6a6cb1c9216874f5881bd2da9d23c113ed686969d13be6dc3d66d04909f1526b929dd25caf90d6193a6c9a841bb774c7b01a053e219a24b76295c11ba48721c35b160747cc92d4f4141099a550eb91f3803c688b95cb682da4d64fa910aa045c6637a7141ab2681d573b353c0567d96e5d53857a567eaa8b0991413bc54364d1acc1065944d2dbaa5188ca86f3878a9b7dbdd2af0a958ba04c432cf57836a2002051cab832573a0823cde77a81c7bfe2a558d0402634a65a1dd55bee5479ac313f27fb8f30690767a59ca699c5e44a2ffe160aa7179d6ccca5300118e0a1107ba2ceffec26e8b29996f7baa1a3941f7b9441e3885c402f5d361c5fec1e62385283c134e824cd50471b5963c679c04f45513dffe95152dc9a8e4c994a7365543bbe8c81856c072733306693985f319c7b5e8b3bafd603f4e419f7c624a5f6c2a6ec26bda1c64f1baec9849a959b6252ab829065be2fa43a5652cd6b21c75c91b6e78b2349886cec56b1792498d7614338db838242792490211857a53ab58634f87c68a374ae367cb75c13f9ca0d9c719e5b839fa89b32d9315633f570ce97288210af279a4cf826ae2359b0f567429f602b12387c0fe3af6145715fc70343c356bfc807ac48490e372176953e7eb845e16943125b174514ca2d151bc0cb78ea837f614b9c68b80862c508395b2dd92a44c306cdcf861d1d235be8d6ca0c914ec9f20f791b699cab28bfe2b2d6918fad717e1b8883b6748f90746026e03932c97ca4b91294d78a68013570ca0477c39217131450d858bf193034d3a2df08053848205c0595fcb87b3771802ef2cb7d747623fc7d4b30034df068af0a9e75044ef568b799816c7229962fb8c7dfc251386955b64245efa76232e270c7a34597d1aa6cbc8df11a20ad1c2d01f6395325c1f641baff1c2c1f041a2684710ad2011c585682656f651186550778d6f36bb0d2b71e4651eed556c3ac3375778e874cb6e9888537325032591063cc478ddbbc0bd0b8af739391e4c143550e604803438c87b0931d1eb5bd0f83c08775056ec564f3d174b12abb19f54050451e704222190904e1da6118cb165ff5a62b079a962743777c589513773a061f4b134410a67c40043183f7193d561107 +ciphertext: 2b8b1b6e479d5cd0c29faf7be645a667e16ccd0ad20031a3f5dc81abc4e79148f9a40277dab716767a200dd4faf573365fc79ed22bc291a57feee14ba5844c6d11beec87caeaa3c2df683747919dbf7bb9a22383a0087c3889d5febb78b60eb3b381525180229944245ed333099290516074e5c5f515dd74b2fb3dff816fbc7eafe8443d37e0d501e675883aa38979fde4ddbdbf7dc7de7966a7c4e7987c30636e3ac51184a4afffa45786c3388854ff1208a86f6a6af8c7fc094668f9f669e1efa91d235659f923ac51f3c7bcc18d2e15ef1a5e5d98617f98923304a7644bd5bdab25791ef29590e9b3a63c1731cdc0790af1fbfb74b0572b22d7116c97bc180606b7e80f40c58da3d3cc405496c180b9452d83618272ab79e38ab338ba036abd9560053fc58f2b1d30706bfcc5512a2006cb0476436a7a5d557406255b129fca3f734c964b8339a3d07f3f2d9ce96da61f54501b05bf8b311060fabd73b15c1a572fccb9931b917085080d781a94c0a9b2dfc612d077640ae4ae8353b2b60898ccbccfe6f6de2f73a990b39f5935168dc0889cad5be488f3796cd4a9f235da617e35a5bd0e0b67c5b51c485c29192f6ba063c6c66b5248ad7d260438f508d812767aedbff2d06ac216ec7d494356089e5342d07aa15314d2f1d6073c234c0c49a3c2dbcde6b02d59aa9faad95ada3f3b3d13749b842e62d5036468151415057aa472330a346ed3d29848da754d2128267dabf8f5e4c54ce3f5121d3bb721b66064e60fa6d85bbfa3bfea4dc027b9a046b5c4da0a4b14e655a33067115a90b27fb0b0126dcd41e12860f4e92e4b7ececaa91a17e3df0c8eb30d80b75c651e23ee1b9362acf185016c54a3bfefa659af29eb3815c8764b0f5137fe71af10c321bed49d4a228bf14f65c97c6af7178813c4373c9e0d4b1d26610a36ba7cc3fe72b233891213688a6ab61b4ae2762f29bf40d1530a6391d99dee367e30c05351e75eafa181b1a518c038202d3cdc6189982bec6e56bf7bcdd998b1ee2e02c5523aa022c5b70b0dfe78986c9ae542124dc5acba05315b4ef81598c28d1575aceb6415fdaaa852ff38ab6ab9e357f9da348b6d0de6b008ea0af211212a7fe9ed4abafac5863e982f1a604c75f9c01350f7ded29496a7526fee9a7987562d2025c937b195192b147a510564fa359d2ec846fd7673dd288300436be16f487c977553c699cb038e589f936dabf882c123fcad7d9faaf6f6821b5fcd609a9e44db343f54a367c322381a6f56af81f9c74d5ddeb7fde45560485c37dfb5ffe6a12c6f792f4d083d0535afcac1c19f2d3399629f57f2bddcf8dcbf209e3c9269a68dece4b0d1c7140ee5e5437e5b36edc88d4fa946fa8ac194fddd74ee7903df9d890b51af955a924d9c472fce38584492dfe2391559c553f775cec8e4f7995fe894d5f71d1c7abd7a57b3789371e8659d2c9bdc78c99ee3c9c6d4056d00b120d254c3aa8faf7c2302a80bb50ff5f250381c28d211de8db3417e37b5d2940f080485934088 +result: fail +shared_secret: + +# Private key too short +private_key: 0c08e048f94462268719d72409c1a54527367b8bc408e13580e4638d0fe319ba300212e7236bfc0d6ca26b37f37b0b65abfc229cbfe6be23a20bda3c8503f6448c44a0d0d5cf9b440a2b5098f8acc36d45a59908bd659430f1f67eba624b9e57c7143b74685bbb40aac7c5617ec7116463d959eb24cf51b4abe390ca1f6ab7646130f673179b377fdcfa1733389145995c971243458680a961c538839416f4b6a0e5ad639922b0362eeec3b01563117872b6804c23e8eb3c2364b69cc7468bb68fb1b728431c23194ab80e16bc7be20eff257f1d04a775497abcb14608e0a4a62cbcfb47ba0087 +ciphertext: 44b1862b852e3dbcabcc3d90b7d40b244eaac4237c79a784621c35ac60328df6dc184fb0b1865b3d29954f7da28d7415d52fda13e7bc12d162726cc5c40efff6ade83cb520457193cdc994521b8a2749e9c37cde2c7fbe2e0a387937ca6d60b03991dd0ba27113356c227dacc2fa2a1d4e3a2fe7f2cd1968187373dfbf9c56bff3414182e01d73481f9b5138bb6160f1c13e5a68049d12e3515f4e5c905581e95d8773695d7079aae3dc0181a21e676c37d91fe2cf91f5f8877a929519ff2be45b6d29fceb10af689bdede17610f74985b5886269aceb81e2a59d84b8eb5be0881a7920ac20fe6a149c2855db4f3df0417e950cbb82d2d92034fc2346a3b4caedfc422a2f62e716283e164b352618d4cd81f4fba0948f1a7e544aada3aea65486b385a05a46373d904337574d0c29a6056b04ee92fa7202c6cda7b103f32f1d14d8c18c3cd10d3b4cefa9e94eb61be3184b736a01218bdc4fc23bba91b516a214e414fae96a42c845e7fbc85dba2bfb39d08773595a719ed284f8c729fcc7d6b08a1f4af7e55cfb3faad8637e8356f9bb44af87ff79ff2e1b2fb62981e502229a2dfa277776654980bd09c7b68ae8ff0b06eff3f087b84a0eea270abbad8ca0e05eabc1c19c36e01e5c7dfde21bc601b7e49ba0ad31767f358376715973c7a7b3242102d22bf6af648504cda61e50b741df9699440de8c149b29a117dd3829523698064e315eb02908f167c3b9d969e2d7ffa122f2da789600f1c5096bedeacfde724a5aa8c81377d5545b2e07b349c18900e6eb50e36e8c607f50358c95ea41fc8dc5e91968c83d2f4d233271f3511c0a593592944628eeb686ffa3b6cd2e5af1518519e96ff3426f1d4e7fe9f9c71239177712e29a42d8de7ec5584a8ac09e0ca2dc39e00d253de5ac39ec339ffa679a5c0079c861a7e2bc1ca3b06d9d4cd3b373062339c46e9f454736361b1a6fd4831adee6a467162c1205b34cca796c1f2def06b9c92f6bf3fb51de09e80d1d9941f80cbe6eeb2af15c4d17968fc028a4d4bc53c557312fb06f170e34fd4e13b66202272965e34d4ff5e063824bb3b03ac6dbde9fcfc7043b8d20a86fc55feb3ae3e6acfaeeb10c0cf4cec207253438918ac6cf5244d729fc2c56699d40db6412786df3a1e7367b3fb056ecf4454a75a90b3d5f51717008dd02c45c4ecd91ffe1786c09d26412af4322d765b93959cb064c2e163895cbfb3006970c82f71a168377085b3754e869be34ad8cec6abb81b76aafd59351d1977586a83b6af84032370a4a39ce4e6b0a4eef242c6c1241408d9679d27beea68c5a93982513122f8ba0ce00c9f27a37415828974953b9c720d86b2cd1bab636f8f0a9bb7ba4c36cffc1f4f8b938f571ef6b9520cf59e2a3a4138d0697faf11689fc50126bc172b0a8932a950e10794432ca3979529cdb77a4732a158fdc958c72dcc34e2283d602a88ee0d44173f5f920fe5e49c5fb0355126dba3f8c5c1e492dc4bb3d3585526a67c47e20135ad90a29b114fa68e5b8f6014c +result: fail +shared_secret: + +# Private key too short +private_key: 25aec01394caa332d7664e6f5c17404b2e2de451d8842b86d5044f7cbcda696a73dc84ca58976175100a7684a7175b931270a582b9d8cb625b6b1cf644809110ccb4381931c368e69acaeac5be1209ae9cc9a074d10a564ab1cf14a9ab480baca64fa6503426b5ae5c340889349fb3a69a15422791c5500b55af7cfa17d8eac6e047b5116bb6e79a630d3b4ad3b5629659c38d45b34db6616af83ba557462c3967b72750db9ab64474a72d00687edb557dc00f4ed3182023ace6e6697d1638401c80314aab00b2b38983190da87b36f75919f46734cbc59f08052d393160f04ca0aa5ac2721350f2046bb0a1ab5623cf891b041c30fae36a9fdbacde3508f5a8cc4765b37076c7c9b577307457ba8a5e48375b03eb78e79b22d56c0490392b5e882ec5e00cb6042436056a880474f1da8a6e82adf1186b6366a9bb1083a8e675a0864e5aa641052357ebaa38ee85683d7c1eb3a7ca47d91f69d55d4a053d2f793e57da793f9527b589a2cf32a734c14705f57a98d618d2d29d0a1978e3154a936151fd73c7789468d999a17fc548dc9c7b7d2832b2596793106577d5afd4645adf2872dcb06b3c4016f038c876ec4765b37eb35492ef9a2cf3747d245737d90046c7951ad5934319317d41f7c21750cee62a34d28b6fe754742a1c833174449694a024fa7e79333171cb8ea041c660755bd821742dea4ffc76cf73224edfc786f66a5a3c1b8269c454b7ca40fbd00556c327b31407ca55294b98a1fb2c96abd06c73776c647422b4b27debc387251022883263dc5479459776e30c846ccc4706999789200307c82ba79b7809a42fdd34733bb5bb8d298b3bbc2813e07e5ef1238b7a15a4372ffcc85bd58869fbf3cf65a685e7f07cc4025745b568bd0a301e48a74fc07396c24d54f2bb061904fa40ae56c7749f63b64180510d1c2490c09c69d124a6db28c393313b7a5bdad593a981687e885043c99f93545c90d6b819fc5f9fc53ce341194bcc230721b5a5f27d27237d61d9b2c4e328436912305b5b1990611cdc2d07785705e02513dba593e43b17713de7ec659d20ccc5d52b679310d2129e25758b24781cdac7c116a118be31a12f29a2e8905b5f0ccf2fba760df24b6b5577a2585c1a67c6bcb8aec121b579e932925b7fb26a04a7a99b47030f1c1382c456a945d33f9479bac0b882b7581e87a336c650c08b74cde75794e0a52335e828f51c4a46738d0e17357d5643d9e33b5e4196f75c144b22a8edc78ac0722ee50a1bc6e47bf134ba4de043bcd6ce73e8039ee96fd18c8959e8460c726f5ecca5eea87d23e11691b60a75d52bed03003d242cfc49482ae8c2c7d406d5a495b00636dd888ceb384ce04264177350f7a1a1cc668929174614655b22f26139b5c1ece66f8d62baf123ab5e0918261a8cd6e2c3406798b4e386dceaa31d5518c4fbb8e4a6922e1ab15349992ab40deee75071447225c0cd020271e8c56895968aac55506151b6a4716d10f80c1184c69b7667fcf6cbe682507c35ce5354ca0449cdfb6086c7c898183422ad742907e935caa164031a92395cb0b66438f6aa7f54518039ec822aa120b58c9a45ac70027331ddf49dda428eb92711151c1a712b7f128419fa7076f6a12bf7e79c54e91d81a3894526c913cc5379f2942939c77c517390dc7580f242adf7526d90163e20babacabd958c00194241ac45b29030696bbb6e5be80f9b90ba1d3ca86219a72f4bcbe56192294a6f6bbb8e3b43b0efc93f64e7091735ae81d04501283be856c9a62495e0b753ddc522c2886542947f0ca4b8f14284de31a304d47213cb6b1a53aa634b1d23d4cb2970365b0a88a40c57d61617c0955d52a04d70fb0201a02b2893937912bb9482a0fe780a380929ab0664a2d108673246acd366e0184d8cf72181379ae4b677d348be3f6632fb96abdab34263db15aa078231a75c22f32b9f3319ad97a7e76aabb0a7b9d781cf6d850a5d28a1ea774877da9785ba7c90c38bc19227f1d803957b9f2e784552d64cb1040f243996dcec2c3db645ec078e6e3872f8cb23b032be6926156773064f749018292b98029a22207c0e698dfa4b56a22a +ciphertext: b3605851d498a5771765a858120b33eba379f672f11f0cf974270227c5e109b840dc9bde9d2be215884dded745e2573bafc8b19b8f498cf3f1521692995cd2517da90d903913ffaac619c3f5ae07765def1d1f065060fed15731f3b4ee96c1b85157d07c1d57d68b9430b0beac8970399c49035a83ab85d1562da3803d9d9dada3130dc5ebf7ae8b70fa12f69b3fa39433dee289f100b6dc5570d76dd2100a7859eb7ebec5b234bcaca4ecc033c274a6df20759573dbb12d67dcc9205c8ed53455663d43d7033f1c879b82327ce9971a9d83d2ead8b2b89a1dad51048c383625c93f5398800376ce678f829677b8290c673209f0d6297458f95a6bf8a1ddbcbc1eb259139d25aa98282c083c6adeb46871b80a957ccd9de80c3f1272022829fa9a9159ddaa04855b99957e30207141d06e93cae7bd6b5863ca541ccfe6845673fc61fcecabc2b65089ad6881b6b6e1e31ceca6a428f8d053669c6c29f54b86eedd4ec21004b67cf95185b56b42e2fe1ba8f7ef1262d908fee8c8a11d2df0e2a26863c181f0e4b9a31f862f602d908ce45e7aad4a44f9829980e93763cf6b37faa8a4e351aa9b1bb88f3299eda9587f3b870887daa86e7bf57a2d7a6b38673b954bfc501badb0eb0550a0fcc7132479a9de1e961d5e06eaf82cd074ba2f36a837e7e9f9e4194e207d1cef74ee3d20764c7a0c2f7beca779eca04693411ef59ad781766c7b1bf432863baa9bc6cd352bce1ca3035cbd795b55c1de3449c9fc21b3c6cb81bc31ae76cfeee5d2465d0f608d19ab0a514ca0f7eac74027a948c976cebeee367afec95e282f82cf946b608b3a3e1a370ff991d9d3e71840ca5f503f31d1d0167a8fb7d2150b2339e0a33a1e0b09ad69c06ce1b0873da797d51773162cf676f9d9bc4cc87c7ba1bbab7a7cf1bb4bd04c2360fd37af3dd2b107386096db91a9b0b8e293c2ceb5f46af97924ddf6d32d3fbc868be2d33b46982c38105fb1be39b7b545fe9c389535bcd479db9f1e4758723303bdcf58276c247b3ff7fb4a7f364d63ab5940862b26831cf144f1a6552ff166be714387246486a3537c560c97c759aff3a675be06d75e1b90d03db5565b8ff9121fcf32da0cf8b382b72c16cb1de8b956695528cbb87e52a26d72119dcc28af49b530739cb62dfcc6a5bb9f8f37472dff3cac7ad579a48ee86bf46e53ecfc920666d6596f56610fb803f8be6a90b61d5526fd476d0a12129bff40418e7d4d28a585e4cbfcde7cef1d6b0b56fb36e0158e9d3ace9c622d978915d6ca5947b2df22213878a6c1151e20fb5a9f1ba1c640d87ae5a3c088798f1323f767d5fe43387852c53d8f22603bc305ba5bee7247e2e1891de9ae8c12e793e6f811038d8abe92538ab3f2e1dbbb7d3e4ed6704b1309b74773d2e8601538c785b3bf37fd714df13cbc4b6908c536a22afb164400a909333bf4db492ed69802980c5bf84306e3a6611a3f65d8e1f90db7fc1cf2077cc9aba2e953465cfeed83505a4f8f1ab2c1100d2a505c282a2da126d91d +result: fail +shared_secret: + +# Private key too short +private_key: 3f7f29ce488c5bf877baf95076f6b00dfb4a1c6d5924caa7c5191a8f06783e05258486c236460c8d14a67d2aa8261919bcda710ff0984264e6947f43afeab6bb1ca265fd15178fd9cfd12074283c98e6ecaa551066178b4edee63fa4e3b6574992bb955a71c9738b909bf9ec6699f26162e1cda6884d45e6066720a9b00a5282d11908c472ed602199071400c78b46b66d214432cfc60a691b3d98329339e1369a4a7f04ccb25a238f0ff16117452746d50eb9f747e6684f74851d0aa6228db106c4a83580c4c2fcc29ad90c2d1f3bc768b9ad79e150daf141edd60d66366725796228e2546ed71c2f541b45401040688863205372818c7c23c9591b697c2683f8784b78e5a8bf284873c81e8977032db9629c428a787bcbb5504961a705bc1859b81422fda5141ed80d2b0257ad065da3379fa90c0c76daa465762933b822f7349182461a58833bd6782432210df4f596a2592d8930c46d37031a477f849a5ef9353ba7b1bc7c28b8c8430e0897b153d79fe992190f27644fdb8ad729cac7b64814d7974d18c3990748435abac6034c0d582425334fd4d47f57f21bd0c5a06f85658bd89fc0f70144347865a4507b7c5e7908aaeec19e8275936cc22756c30959c400d291a102f996da72ad86f245b1cb013a2c01905232476980ead340ab78488a558572712feac612b271216369ab3433c3bc7294b3506f9b0c0f8c72cc0ba2448d67b63cf7643fb35e5ec36001e88da945294879c0eeb95471940541d6bb7d7a0392cca878e011f45b191954131a4a560bd8b352949cca90b6b5b776021390b00c5a90168fa656326ebc31beaa8562c75330f76e7c70b41ee59ede630eca9b7dd99aa02ceb718408488eb2c262736925042981c203b0756d61f5c208288eb0a148a2395465c234004dcdc334a94dc4327cb6a726089fa0d140d163a15d179632a484ef2018dbc345802c16cca5a9fc2a018cc42832a5b7f060529c657d398c79ffe025b2f3b774985d7ceab4192321e4c0224a52b310380535ca59fd67b46264813d53c750e22e1c096cf323ba173c60c70037341153efdc9ea42398a7731e119b936caca946686f5ac4604b9b4c94f42228b9a852cb4fb554718ec7906dbc02e0238517f2647180738a018002ac2cbd45167196caff3679510a5bef8705937c3826293ebe3767e8ecadb9313b104bc52239a4aaab1b68851aaeb5865e3284e03bc824613211327b20b7ce07bc997c94014d16b75f4b023c228f39eac6c72c2dfd14415c8b04db4890809c695c504ba3097bb4854a4f922cc2c7b83383bd71b38c7d0c5ab2d8a9303698cf750d4e145a9e1ba2c3602a68f33212387c354524f8f3a4a375af28403d30eb5f68857745d6ca7de020599004906ccc4d753b8ae42fd1107f72794de7e37871e08ba2d858eafa84d82538bb3a802b3035808c53f46871963435456430653b2f3836337ed0c2793068081ab00e8b088f98866bd52c57c80217b7213d5c2a3e49a4413cb10a672ac3f42540c74b0f66452061267b93a7ac4a44de1a4c8dd03feec42d63655866c05000e49f3ce4a927334209a245b15065a1107daed71149756ac68a9ea670862e0862b4d127874bc745887bffdcb533947671603db9ac3dccf05f7b7b9627e58eed3744e73a2e4510c1463948a35320c5c475c33862ac36b42dc345f650c54cb60b91211887052200fa46b903c8f1a497956a074f1b0c01941e4e6b5696313111f816f6a8a27cecac0572727170516b1488f3346ccce874ee30bdcae0aab494559794c601879f4a30a6dfa4985fc47174a347216715e630330f31ba5ea1ab2d11448bc38c62a453aa80ba084334c35c5d5d1a29c192535fa4ca37e165fb5ba9482b7e038282ab561c6627562e4333771818e9980a34a949a3d63cd912021e7c2fda237cbd593c0647bbaff949f800a4fd079bf62417620152a9e1824135aaf34071206a969c761676b427d7c866148aacef3946dae41430932063718b1f3bafe4287156296aae2b698625bb82794dd987a017d93e4fb73131b83f79a875b8c41bbbb4ac78651de41c674700a65ab5b748732e76921178963ff3a9c5cef47d64843ae4d02feea35b915589eb897fe025ad918875c6150d7b270c8028a9f434a6a3754711856ef255149dab982cd724231c8c2cb6c073db95877a92d7fa23e8aa0123f25a88bc8cd7737e79e738ef8175580252e9f7abbb9a6afb28721b869c5e4b3b08a5438f5148373406735213163b496a40715a3c7253f43d55e38a059107634924221829a0c84e4bea69f68a5eecca37da2289ffe52475100686234c152c57c6e50ba704849983863335cc62463068d2a059b86417f6c0767695c9955cf34062096a34f8881d9687aedf6bbfa87c90b9db4bed286251847780cb7f206cc6cc8674a63231ae88bc227948fcd03ddac075c73a1a44d977fa212eb3b6469b7c63084801196050a11940de21a159151bd4f4775927600da231cc8c4b338449007b08bf48a969ec4a1180cb48d11e0dd64f96f8584087a1b64b2ca7ba0cbfd44aa3f048096ba95749020acaba51c55ae7894c507a286e122506dcccd3966e2a35901ec83e +ciphertext: 778b7d3e5dbc15f2423cac1170db19a0c6e9916b6aae719d707aa9d04948e8a87650b59cc3c25e8f6af643959b28f6d6d913b5e5bf8aa8526670e6c487ca11614686215bcc5d23edd7a0149be4377ef48ebb9346ebe3d8b340bb4f81e6bc15a3f2fce15e6e7819443a7b451ce3780a2a94b2f1dca8ca9eeb1b9f71c9c6ebdc76537b9595b13e0457334ee33ac4d58fd01a2497025588c5693a3cf34af71a6f733dee70e71cf3c67efe217d64c2ef1dd3537fc34152242bacfb6e2d0ace260a10b7c4cf1e5bb5a89c3a12c5d4fba6fc03650877f1d640120937a84ff3f1e9ebda037886896b6d53cf49fa1ff64a46e0083581263a4fa00e8abaceaf66cf9ea6fc10288b63f86d633b76574b2a711db5798a0c6148487cd4d987aee924025d7e1265907a11c6340f2bb1e73ae181ffe9457e88818029d8a45a78e2da2c769fe8beb8c73e2b13e3d764f93fb9fc012acd8075e5f0f8c07c06db6bf49c41e75b981db1e279052f73de021a4444f5b7ef23ea0581730e5d868e3ad7d4df61d8bf592d144b4a8b7f7e5b899065de105b69119ed8381f8e993677d0ed520e4543d8306091c8b6e357c0494a79b7b2db9b4b0aed2813d482dc8f2f07c6c72f5d4952262cee65e9fe4af7bdac7a830fea05533d39d199b34a3f74654166f77ed2abcb7021fca469e948edefa8565bd4186b294cb7aa0ab3e087d0f9b31f36c3d14fc6ae4b3c57ec846d61dc0456aa35f5e4699414e3da53c4f3f39e9718cc7581bd2701c150f2c3133e44a7c8c1e5727388275986f8b23ac9b3cf5ef51833b6c36dc4bb6eba24eb572ef4653f63157aff0ebdf31332028b6589816a4f733fc1ff1d6058d3fbdc81cad16764c083bf7c2cea95c1e484410f5047db86cdb0476725ef6ec2680b143df05c2caff088864f6e8b5f2fea22d76c7f0070f64ecdbb19605d7a4439b65b5ecb662d91b468711bad5bc369e77ef367f1da649c8a8f37bbd62092422dce04982ffee62305de5a6751cca0284b5a274405f31d9f9a37f2270a7768ba490ebe847a24bb085c7cebe61333b1a105b55c8cb1287090b8ab648cac108b09e7130c5a2f4d7719445c0cae5df19351f14054ef2c00ff92bb3b56fd180e81dceaa35f745679ee164853490d208c97bd87f5e85a65cfca4acaa49b62a5c1a3e4d47a7391c937b670ea263ab1c3243fec2c3ebef7e96a58bfedfc357e73541b2f717cb64f392e9fb970e7ff39eac566f291df314848513b8deb492aba0f1781dacb9cd39f0eac4476d27dc72f302edf05e86f483dd74a7589e9010e14069e9ff63eff56d1e2a550af157243e72d4292462eb5e5c1c82e758ab300ed3f929732f4bd7ae10c4593b64acfc8759d780ca4002e3d637a3e2e58baf6e29a2af14d17f6be4d687e046c8dab23a0cfebbbd7412590799416ebbe46310e6e36d4b57e50559e8396cdbede4a938baa5aa494fa639bdf57f4285201515405abbe5751cc3897f326203722441769350da4855dfc083f8861f4c1c05e5f162eacdecdcb01d20509 +result: fail +shared_secret: + +# Private key too short +private_key: 71e63acc22cc564839ef9cb227574c1e046ba5623346b6749aa14b7ee376358b7ca8b61b870ba3f430bda65449e9c92599e50f77ca5a59b548726b75301377615b6a58b8c1b9a04849d77b36c9ac66a868f9749159e65da7777571f2979188024aac287fc9abb4fba7b045616f65b91efb2b1e +ciphertext: 05b37a076f10d98c35ec9c8e869c4624f369d56eb2a13ae88dfe3e2059fe87eeb6569417e7994b599e1c08cfb7612b1b6a09ff9522f8ce7023caab258a8c4b7bf5b233916c900fb98919eab240be011686f35e1f0ee2335c34ff5a8c86a362d33c6c823c33115e2842f0a667b3ebdcd58250a9ee2ca989e64783c7461b7e143d2e022611383e9e1fbc27118a6acf8818792d9a049ed220e6eec9517e1fd76a1fda9d793361d72b4e7bc4920696c7d1a133a2269542505a1acb97ba61d5daf79a216c84d6021baf48afc4800f550045587ba0bc84521ce031b33774f2ed68cf1bd9caf331433ee248ad665e34b88de9b57b2b5b9419b6ec21acab44e208a051566aa1c61c03073202bcbae82019b4d25bbb674f4bbfb2828afde961d272cccd5ac18e73fbd2ae6e1d3000987be2323f4937efc14d8e50335df8b1f83e18fa7eb2e6650d8b2f04e772251cb310e4801914fe700b2e535600ff470040fb2b532b845dd94db9f3383e886bf712c58a108fb5c572435e7ca5fd6fc20c68ed363dc3ce6d8cb3f3583e04ca0c25e8ea46c111c13d4c6193a9b6966787e88577f97977dc19bca84c6a1e7820195fed2cb9064242e48defcb9e2739f4920f186f8fc796e33fcfc9e0186d7468b584a956b7cc68e3de682041637c287da7122f6af10ad8c30c09fff917e6ed81d41675693bf492b6538fc22fc73172bf5944bc353aaf6cabb46ff3071d51938b090ce9542f4d0b94db8ed2c2c8a104bd4404c0878cafc340223921e9c574e80f609b79c42d8085e2106c8c03709badf41992b5176a8abda1d2665e936ce503c9181a8ce4ea13fd8f48fdb41da2606992b7209c4da5cce01fc6e228ce9a53bd2dd8fb2d98fa4fc3bd1d8d5c53d0be15e28f8bfd589d164021b316ab2288cc567969bd359f99917509da8de2a517d977bab1ee24fcb9c869b52265fffd3a25c7ad6cf7b26db062d5bf33a9fa1ad4f8db934899792edde045141a82dfaaebe121451a2d320711631dc24273f625805b08f6e1d9d698a540a14b9ced487800dadd782bcc2a50d6bb2b2cc8df81d2415003fc6b04ee398740d9cf4e2f49115a18153df530720b88bed90b859f796de168e09762396e54253b6fce2bb3f461a9fcc1b1d1357bf1553921e10c383bad00b06ffdab2246c7efee4416202738ea95b02e4059f39d0307c13c6fc7abc280e05b63dfe5d18397efa0c8fe3dbb1aa0bc5b3345a50c0d5590f1d8b338b90e50c092756df1d85cf97e68a4e74b7b77b0e479b3bed27c859aabf09a7bb8258566d85b7e7e63f8ec419ad1f816c2055988d0c77f5aa06baf5aa7a11621928e081c919560a52c20fa7f6f36ddcf27002e2d0aee57bb13055c45654c92635d85d6322c1e66428137959d946565de9120a487ea47e9a3e8dd83f5a2db6fe91d11a827122fb5a5ca0f7983b8666d9271607271d5ea1c8c4338a7d45332dad9735ed4266e0e057180fdf739aacd1fa0b412e696d7802c258f12a7e5198d1f866a7e699a967a5457a8b49e9819bf9673 +result: fail +shared_secret: + +# Private key too short +private_key: 1068aa3fe1062be5ba85529475a04c190db7ac9a0757ef9a7df13666b5569be200b354c137c8e88266d97e0e17a95737b6ffa57e34a8be8402a39132cf3584220a580a1a63a1c9945ee44a8191b34319526bb9d18e7a936354004ffdc73ece1056ea523a55bca094884bedc47f1a17abf339c3a8bc84a6f6cda7538700c3ba83477f89f4abf239b18c629ababc338bc265b83932384cca33fa6981a80d21f71afda1a59b20b448430bec4087cc234038ac202d1410f47219eed49a32e68fbc635c75f48e27a44dea503f5ae09b42c858bc444913ca25f7fb3358939f4610bb90924ac9f3b2d73bc72bcb8f050a530351b78b17623dcb6c5738500e45621214c9470695666991cdc02dd9897ef7703ee6fb43970bd06708b0f203c66e0574a0a3a900dbaa044000fd939b7e623de359bb1b9b44902b31fb8a0958b1b9dd894e45eba1a4c2910eeb5b92811fcdf38d054165c9b953b3d4a49eebaac077917cd3c8df0b9201d308c682874b0554f80ac026f21e7c4ac9a9a2a0a0737fb47c6bc7d910a81b8668a5992e97337e980ee72977e0e8185c956aa9b6a7fb175562c286ff5971713774f9f065a27768c9dc4f47c9788fe07094a9ae52428ff5256db2d3356ec96d91230292949ef4739c4f097e09c3a18f0a5493534f7ca1378cf6a66e34bff3a03f34003094712bdea1480801adbdb96bb1c80df0eb78bdd98c7ac4048d066dc87701515b305080b9c964b18669bd3542a1b4414e7e34392ab439b7327acb730d40b2aa6b5a29b654014a36bbef4530ef162cf9cc57f169a62f25a7b382a67a92ace9f9b08fb46994356facd62463555de41baca6e42e6be354b4064c12b83f456c1d8766a49cd1ac8666bb7a0a2ca7c36c9bcb8905a528f57cb90548834d418ca539b833f9af3a16174c12cd45142008c79adf5c612fb89da63bc1f37a288c99c8479abe3af1a6d8241c61115dfacb52d5b17b73894a7308606fababa7255177160454e4477060bd6a265f57e75cf41c709dd5915112cc57b024bc586e97308f96ba2540b08ea377cc46473d17124e1d944a98e0aeb2e11e9b0342f797bafd1a1d25f719d9504778da5814009d71864587d61bd17a79d73154dc5293baf93711996bbae59f01f7478f5b0c864018defa1a6dd31b5438a5809c27e1e94dcfc149b7b83392a46b2c48be09e986a559acd3065754211a72ca574a2b636bc543802b6d6f894fc184882d733ee375675324250703967da5ad42b68d60549e1feb443e651f0f3787eab88b91733ea4351c99336f06305119144808a25f +ciphertext: d3f355b69436337b72d62cd37f1af766b18f6fda8b0af6607813d9bdac42ef622f56ea5b6679f64c79c7a1bebb28be1bc4b3f25f4a288ed5841f7164ff5a718bbcbe42dad121aeadf27d2fa854068bc36fae2dbc838527dcd794551509b66899562ea59585879504d42fa65bd4c687f1e26bc5d1a17bd93d7ba85cf292e0a500e5931531252fb6b647b428ceafc607f1fab76d908cba9c1b4dcc8509855d0d807ca8f3ad266a2f5b7c5e734d5e5f53530d1c1fc32de5db731555b8aa871d01464b0e63ce65db659a37e11af909d2f79290fbe2d915023a7e87d5cdfaa70db27e6283fac2b0c3ff88bfbb56a2781bce5150d28d2f87b0fa74c289d5cbbe19cd9035cecfca63535683ac477454fe794033cd509c8e5e8821603ca0d85c515898283e485af9c7ad5911d5c778093310c1e1ce8fe5b593c38116a16066997052551dcfe4d5942e095905df7b4678d595b9e63f76da3de6cb8366cd30c0588c10cd1b20326e61d5e83ab358cbb48935acfda374a8ba8386e86fddbc1b5706c150026597fc11183aff4138bf7eba56911f84d2dad936ed7daa42f262751b05fb1e16cfe186c515fb2ef4e4a006fd5ca7cf7b078de563ab57ae9a70cfceaee7626c63e8925d947cbb50345de4aa46fbe38fadac4bbdfe1a2e70a90869ca0c6179cbd0e98ab29a92a7cc8710fe5f5c574534f9a275a36dbd249b6522fa91790c0fa85e40892846e6d57f59b38ee8e6cd68af6aca41b5f76ec46c141d64dbaa032abfcb999abef801e366d3c7495e58156edb52deea93a18d8ff0b8c69e10b6958fe622f56be6782679d5976eef2cc9ad6f09e844637f722c4c742d9b26ec34cb227185a239bd2d7550c812e1435f7b4c7223d99e550a5ce9e87e978cc68d397c72aa827a4a4e370a6446ecb48796d8b94035b1e8ad0a652e7d4a9c1a9fa7caa188622162c855737bb0e8cd3325b1b3314587c805a290f981df7cea99d241dffa7278c25f2f9be717419f4b594f9bc6a6190e0b5b9e0f232fdde5d17df56b648175efe1162e6c7208369fdc70b502fac1c45b91325d1d3bb248bf6d73fc17335c20de9b11ccdb16a0dde8c99cd1a1fcba31f51c17b7631099ddd00628884f0e2d941471b571e48262c6f21c5091f43741b69d14d65ebb89283ab75ddb54e6b18e17e0966def2b71a0e8dfd1fd65cd74a3b964ac5ee9f6fea5118525e7770f3a65f0bf86669d5483b627ec0c20fa6352e78f02bc4f39b1ae3c8b4a20f637e14f9db5e26170fdb9adf6eabb4aadee9a60da05c902b0204ee1a2076a1bc175468e50df140251fff37ff1a98844e091efd8d7d276e9b3f0cf29831a3bf3e9bb1eb044fab3eaf7beda9437a751a86e6ebb6117e805d29fc2292fdc78ae6ab70b7475ccc75152eee45230cc7085d79faccd30c7e2bca0a3eeaf5733266e79e4421ed6354d4fe2609ec7f0acc544586658ac6a6af1cdd4d42bb294116d788a7684611e9906a36826f98db10f519fe8991488fed35897193d03e48d1676920f0045530cd1a7c37d9e +result: fail +shared_secret: + +# Ciphertext too short +private_key: f2737e8ec66101d22d18b0a9f6c819d7dab43390b89980999bd092ecac6006790a87261ee1a378585063d18a5d2b733d7a8587a0f5a553920261031a907a7234633618aa2a754b274e33b10a584dce462c2347be05173beadab6d0aa62a5aa906309b9802c4f47ab4196f0676bf109800492481a37a8a5b36f3237b8728527414d1bbb6956259875437cd142978f4230b7c6201d56c9fb558e0f0447407a138837a10aa745ab598da2d2979dc5b2dbba0fcac50d93db1d294972adccb2a38c04fb7970e5d1ba88e7935712917510b8f36cb3c70492c7448ba97992c481c4d1e91d6a3043efb6602cfb6867b2c20105ac3c7a9a4429c17a06abc487312f18299b6711f98ab72c874447058663b72cd0f479e09551e6b420d0c30402b33e601336473a168993ae80211e522768ab21bc0e7bb6738b968e81258ab650bf932284ec62bf06bc00d92fa4d981d9061db5841809fb9b2af396174520e5fb4bbb6c24104c9f20bc2c44b85f77838185f55493f8656af738ae239ba20001aee25d91b48e0408c4f120838b5a1379007e23d24ca2e92bf92b36cb64b8e2a03e27361af49229cc4bacc8c33212eabb891443ad4bcfd401792ea08a84b674590757a5a89243828eb7eac0a152c2ec7954c4570bfd073cabd6087a021d6c16bce866b37eb16748e37ca14b51a7a0a1bafa1b976baa4a7282956400eb044a616b6d29401083167d98d793e88998f6ec06cc3b0792a5a9cfa217d89c80571bb0aa4b5080c75417858d75557b4ceaa65ba63607fc69d5a818acdac2e289b2dd68b5cc48cc29e75924d548da76be40c543c38b23bd9cafb911aff086254dfc65db27846741ba38d6ac93d601d4610e3e50991d7782b581340b6240a8958227f888fb4c94dee6122ab6663d6aabe52061d6ebb62465abcf6a234ef40af8c41671187a47e10d95741990b91a7c65b0a0962b7a4bacc43203bcbb5bb98b85d1d0cee762a789f52396627b717c6657d0a260230981754255744bbb82118c164590bc8fc3ca3fb6b616673b344397a6a8730705406de764702c2b800711752df828b28c368c592ea16650947b905d4a876291bf3cca76a81748e1d86e4b16a1ad64cffe2156ce7b135f6ca1d0151d0a69989417bb70004379f534a319056351b5cb4b773be81298736b7ea0481c921b57a9a6a2259d633a75f471ce9c05043b95bf14d71621480604c2736ee2b78c6b3d13502a0e848a5fc31f5eca41df7472f35b37173ca5ae785049d051d50b014d952ddca01ed8ca6986663b9c3194be64c2d0c22ac9604ecf313f8f2578657a63e752abc757a2b7d6135bf25238960f8d1045a04bcbe959585661a5b839196539c11ce30d63a67f34bab2c2c214122845036c274c133bbde7acd33837d6565c446b5006d358ee87489b127505711d854cad959734e64944b7d77d46a1539ea38e02b00763b0b5f9c709d4b71dc9707e3669109df6c492b88d04fa58584a513ef0629fc8ba3f007851dabec9e4c219a811fcb24fcd610cc2e9833cd7ad9738797cca2bba05770630bb7961ce621bcf313b5fc1f63939061ebb078054785d86f169e0f87f8501c2618099d77ba3c8021e2ee2a04f0c2a3420593d4bbbce711948b7540fa5264f1b98ac13bf1737b42c0a518b81772151374bab8a4f737d14539356f9935df68a27bbcbc87070034b07c8ec039ebabf32a099644a3b9d6335f342590ca93d2310a6cccc21cf133d38bcaf756c619ff394c68710ac5cb6491393368c0613e3affa7310b6c19a1bcac6a6631a4083235dbbc0332961b88a7620cb27502044ec455216ca0b68f4cabe831b326019ce39466dc399f4073a4f9bc78c90bbf9455bdcc5af36c99a9af16a55415242e0c8899878f7eb9b6c7c17b0d1354ce4759f38c5ca37053ce6aa814577704803f3ea048d988dd3b6b9ffb097055a007ab041b098980febb4e73178b6d025afcc55f9562ab68ac2506a2d7ae52cf626b135029d98c29d5cd97eb13753ce195c5a990924cba3c4702189226926984db3f9239f75aa0af0530bf0330228c773871e8af266986931308205bfc72a8f176da3f195b2861115d6629db6b05085574b379d6a38cd88256508151b84694d1be80c57348713fb78475a67efc00fd4fca087596983471183a94ef4c1bd808840518a3e48a533e28ab975ba4a5d6689110c02101654e684787e584734fb220875017b5b6495097ea757ba0f94a034fac947a8a000794bfb4654aea605fe998590e94815b972d1f6088e1994fa8663a272c99890ac54364dfff2b7642787b1b0b4544229c3f1c1e5bc3357129f1d1434bf57477b52cebc7c19a7c8b610b37fcf596c81c33f2d94aa8aa2b553e988a259bbb810a19cc878750b5e0c244594c3564553a36603613c311874a4197a0a9a869c5a04a4b03222bdc7302c36117d1b94702e3666dcf4a9d26c669e7ca291541d47652cc9c60a71dc4fee4cb27683cc6cc1100d3217fd9a5ff6d33d621aa8a00479f4aab5df865387358ad5191a3998b1451c9b6ac99513b49a104bb03ce95f2201376ac33f7a951d67cbc71fa70aae1b49b185af82db1310823233f3c2815346d83009a8ea605f4425e8010769fb001b23039c6b96ec316142eb2d7c6173d0fc3a8f232768b282970596897645b497a0a1506ae7db4ab052480515844ca12038a9203deb9c98ec8000e0ad8a1315d1788d713146de9548dc4697f4ab091eb085b4179d1eb96677e271d9973e13b9caa16107cb860b92613b73e5391f773ca0ba3e58690df1597632f905f1303b52b4105b53b6ae3b3a9fd35ab047a38b6794bcf3529c67496b701cfde7982654731df08125a799d6e576116900518826b8b87622a7b1da53c6af817a3141539795277c9b8e39962713d69b30e36df5376031f53713c7c7f76b9feb357778800818c0b972f478bcc9011bb29414f0cca8c40e28b88a0865af4d43a0df74751c422965428d6df5bf6ac8a264678792861fafb8ae3ea14bba961c0903825c0c1485aa80c0c9bb9360accb4328ca4a22fde23ace3acbd5c885240a048c8c11d0271b5ef47fd3014cadba7861c92e5ab4c4f5f704f371316445ce14d87ca6f3065323328d7a8717e6093de506b2837823b57a7905c884395b0fe0b2456c57396309c23bccd985bdb7f240cda8237e2704cad8966c35bec681602fe13918a1b5d5006887684bbb2c7cf9107a52d5be4f0106b3756966a97d3ed426d396bb9db0ba49e7ac56ff6921cd10af4a5afe98b20f2386226ba3cec2edb781e53615c9859f4538d9a842d65b886e827d5ce0c72eba229deecfb018f69b1c63777434ffa7a53c61c80ee946e8d9f731facde93115d1e27e2319004a45802c2bf328744eced7dc1493 +ciphertext: 310f51ff9f3ef32c3354a6264b3527c185e0c166349da57afc0506b31cf56edc1af73e46b608a52bccce3797c04ae2ad2723b2e355f7af8ef8bf776549c9932cbde982660c9a7cf7044041b0a2a1a771fdc7a3d6b7f33e6ebb618331d6d745710a7d664032d3bef3d32ef6ba41abfbae95ccb7f255009c5bce2907901c3669940c90390c40d2e97797eab3c81ba525bc3d90a5df8266fef16317c5db08886d845357bdef7bb535c320c2c71f2fe6af37b29466fa10e1d67a6cc0cce9662f864ece0ca8972fd03a251472a494a366d31cc18d0c1459903ad4b6d9480f197fd139d280343f752c8803e78452c8 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 82799033a18065ccb7bf807e53dcb6dac671d16aa24ef0c7bbf0c6050a99cc442c850aa1fb260108a79c9e8b8c0dab124026be24635905b5c4ed123890778f81bc4fe69c7fb8a0273b2c8d03e698c56bcf36c3b41deb53a77695b1f0af391c9d19350740d68511728bf5941d5ab785690067fe7929f698b352270550c7ae3cc6025ce94190879f74f31a0b355a40aa1fedcb4be6881dd355723e7c0ca00c796738ad522c9913884b27d6511a0856079272f061a211ea2c3c039a6b7cc653b01b00950ddd5c78529b98094b9b54d62f804b7418032dd63b5e3c136e1590a07699967d226b6f3492a2d4a0d9403c597276fa12039280157762c121f2064c5a669583097e7666b63b3a1d78a0ee688246f903ad09791d7bcd4992640df43b1d760c2c7140cac25b363c5675539a43f70e55238a6ae80381e77b2d26c81be81a61764f81b9cc87c7a6915903dec7028c37abd62c231ac7a6f76b80e19029de178b4c146cb3b15b1e03af451173389934b1fbaa429c2c5361a78331003544bb6b4c5926188810426c7cd24bfe989596a90f3b1a205fe178098006cbf3562c932e96252d957018a345781d3c98bcc06c4b4b25eac07cd9f463eef70c16b25890e19ee72b50bea2260a1c423ad56ae7818d7c0927006c6af815cdec9906037202835a4839b749182771effa424521a5156b4246f213723145906159a3b53bd616cab476998a34a77623c28f937e80b19aa68a7718d6b439938324c601e1554b257313055a28539b743b5b1b7740a9e349a78a86027b9b66d96c6b901255a45279a21a1007bc984fe331c682cc82ea7be1fa5dde6793fe424ebafc451266ce5366ab709175940ccf4e8b1c1b92692c4c6617bbc8e9c10e8ecb7c6d78a1a8238c75cc1062d577a8f81ae165038c42a28f4c1cf911c1907a0f2b6352e9cc29362a1cfe93151562473ba062e462afac60c907231ed9d51a2b55c0fe3b66e4305eacb56f7ab79a67f264a3c7065de85771cc3a08b06b1c627004308cb81729d2830d767439e69956ec84972204546eb9299c2333cd58792cea5deb761c8f63aaf074a6a8c2109ed935fba645211aa646104e473987cf4c761470cf1714729ee700b3aa7b8755611f5a2c7a14a49dc7741be7c9cc34445658af8175855aaab26a9a5c290881ca831d37e01d89c37c1f6b030e81777351b2c11171e2382b0271321238c29d5430af61add17758cee8ad8f1b5190e49625b2064da1316d8b479cd474904a0e80c622009036f1b241da06c7e0a67d7cf07a87fa788d07b3ac50cd13f232625b66eb64aaff79bb04264ac8b175b4c815dc989ae4b5a45d06b18c6510f63b50eb79396ef6b179aa84df7b864795b211954a15697781f68266778fc8053ca534904c947fda24883608a68b20a76f62414ed3b197a220dbf2209edb7336232d08aa0ffa439f5b26562a58c80f0a4b3bf96963daaf019036d46a890b742eeca6b2bf139c99e7cef96858e20a8dd5d364e0078338700223c4003ce44721f6015c2670426734eac57c78035bdb3355eab0b5e38773288a0f63a4084de5b71c12c366653ed2219310e1c725b95605d1491a392d8e6363b2ba0c3f3c250f5159d84b315da188e383015ffa0540f09b926b3abf69af60322afe01cb9f3a68e47a69d4829ccd921bce110e819526531c05aae01f5932b8d5e20e09d85adffba616b8cf09097e9973308d43c81283648deb5e78051341b53aeb496edc100b5e98132bd37fb1c2bec01355dba88e32252f35a86390721267288567a6b97a4822fb7091887b3b62fa7f52f2b607fb7ebcd3aa7544c315974f41d89bd988be5bb60d7b4c44ccfc7bea9b02b9860eb81a55346bb875459f814b8dbf834bb26745b36b3ba239b924024303d28902d066d1347566353815a33eea1429c222883d273abc3a14a0803002ac7bcc6c59ad5c040efa14d596a33c169801583b4a8719f28b8d2d98c6336a4b8a42ad88957be0a2c226e955cc5953ccd8a0eefa25065070cc0446ba1312d84bceb5568cd0b6254e1b31c430931c6c6485894a98c6a4c94b32ba6705c6408bbef4c34950b55e187866a47a65d2999fc68d00b944def3bfc83b6311b5bfeb2278700c22afbc3c06323718bb52f48b0b20286b04b42e1ef7c5f74248f78ab6bbdb0da0a6cebc927269674704c2b97d6cc915348c97eb6fec4c56328456153a6543ea9c66b9361516341c7a1e97fa7417083291fc181e586eb92385fd108106f557249386ab13b51e922361aa8edd020cc7e4068e2a0fa4a4216bf40c2d179af0b091f84960ed7a157576316dfa870425ab39099cf0f549ebd8a6a8d47bff2005d08a63ceb87c9e7c4d255865f06537a772579382318e3ac0d0eaaac4696d93307f29969b20eab7a82307af73557f131ff6aa29e0c36f52456646772f9df634a0701038f367cacc4a36ac955da2c8cadacd85412eacb91c69067f8250691ca3411181a543fb0f7ebab8d372b62f142b6cf25ccc75cefb15421d34882d00353a485616984cac114080c01d104b432eba2f1a054db07a6a15e4c0142b23468100eeb97a4e4b091456c04344b97b1533b86964349a7557c827bc19a22779aeee756d7635be86d3c7d3e97361b575be79214f051edaf1bd892818f08c5557e5b4b6bc88e2b7ad02a22e117c6772e89d6f7611aea482fc692e64f076c053cbb076470f2968b978ce798c221bc5b863e43679223e723b8f4e9448ce516ff4b890b759665eab69a353afa42658acd7a6276b1a0a7053655674b8e052559b880281525fc71e9311348615c0e541aafc987f68186387d0bb1cbcc3d9ca72faf7ac9b59c05e5843d56284c7d02d6ab916f453486a4632d3c82a19535168684c01ac02ab331aa36945ff65aecb4957c69a51bcc4ae48f27209f984b3844e4b42bb5b4c454e34754cab37d98a4a6b90370f0c0e5143c2d3dc1794d3960dd6b7a3bb7a231545b8d4a3040ca72e0b8d61326b9e970af5c0598c2995aa4a93a10a020ea4c14710ae5d92b1994858efb3216e887ed5b6bcfe964906477691348d2bf4b32685bff9ca90d63c8eb47a7b6c25942496a36759479ecab385853477502c97b681ac2880f6a30886781d3fb1129eea73ae7481d606aa71a358ea7b943e423e7b362c3823b33444281116530f9104cdccb7621bbd90889481059966ab975d1893ed57849d66b859eb192b9324a370ae0e236594d76da5f8ad87866be5853ee1d8201ef7004da5b5674cb5d63a1b1e1a1c813275be2bfe63c832e91aa86a3da1952eaf7171b3eb82eda55eba9ab16aabd1c0324e7013248c05ffdd23594c114da5f5e7b33ee63f7958842d32c0c463d56bf65dfe67e63a8e4983b33f880379ae53764dc1cfe0de4c +ciphertext: d9f3ef33 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 5ea77ff76c64be5a2df0969378616abc3396c1bb8766c8893120ae98c52fe555a56f1355b3330cb05b818bb75fa5c77d2f40a674cb039d73cc7b1931b0a0b236f892eba8b71ef8a398b48853c792571b199165be01c77aa75c98f4d73c51327411952efa5342552580037449334570a434c33109b113cbc2e88155a9c94e58fa5fa1b937c4208f336912642737e1f7702ec31cda7a90d23a2919c298a5d4c7b96381b1c3bc95997aa0fa4a9eeb3a2a0a936f93251225cef3ac2d5ad19a98f150069b81ec7370c0263dd388cab57a8721599072b281f4a61580c83e25e4c6686a94f44642b5522b33898d05ebcc4f0a830e5ab494f611f3b26b0668abbdd818902c2e53a08854f5acba3032ac496f4b87b39481c1cea9c143f4a536ac09f9958ac60ac1da87481f2baa0643b4379c53a50bb4fcf37e053b3228e23a7654929408a269a24d3c1835c2e71e3bb71850945930057196007ea8dc0dbd6761a730bb670402dc8c51f03a346a8079ab368291411c58bc95338194fd57a4a55b53732c2e59a1b89cf92081fb36d2f4a6a76a5197c492a711a78ad821fdd6b611575cbae7b02b93b9079456ad82a3764263f080139cba7752fa7367228042736f52288ee508c77416873f6b1d2219593892c1bdd36412c85d2a1a48bfb7cd634b950e71711904cdab1980ff911a7ec37e1be57ecce6aa039390c6866dba8b1943a89a834b64733a0231e6595d70a0a77b1b19f86c7b62a2995783f40b49fb70a3b924afb017a206c2773075650eac5540c13a4ef230a95b422cabb8b41c3e1a6649856421cd63236292b4bf47ab5be75923a52204a834aff4221313429e3201cf984f17aa2782a00353957da7b5c6af16b6294510ada54d83a63ec68b4164253f112b03dc5b3effd38fb63088e4f17810f545c38b566e55a47f05a3511734fdba11d0aa3e4a679134cc1d6a346e721814e9e85cd2097d00e1360b191371d83ce65a9dc91554e7cc9843eb21f42306f6cab2eedcbee3b88e588177db9a2b109364776a08db4707ad4341eee1485ef64f951b457484c1007ccf205371e0aba3a011973ed2a2b3e60dadd1b5358bbde860b646081e57b96f1e908ca114c8b04316ae2583345c2f2f807de401962174ab84ba0cf6521b6311cf17e0a23880a79f40b821226f3e93c362570b05a81f88f2c5da458941591b4d60c485cb72e4787b04193c38c978cdf84f110991154576e31c9ffd3334962bbafd520d20257442fa7a37363fd88851385945d3167bdf2421f1d03e8b89bb670443402049bd2970a6f464a3aa0536c43fe5c73532532b50ba00b0729ebdda9cc904c5369918cad5b761190f7bec01534aa49cf7277b5229c5d6488d401660c70952474a94a278e18780a3098a25fb2440114a977ca4a349389c59be27aa7d08a95d94d40335918f96c7c36ec70bdcf109e116306848b30a3b28c259bac9a608e9673573d58dbde0cdd4516e655865f9bac1ae23ac5b014a8bf768d72cb07e86b7a9076737d5404ffbb6a74a872b1c8082180068b7a64bf91042f6a3e9bab66fc5a17811cdd1e487f3da95fa680d3e5682e625254647162b9812b552adb8484cce0444821793b725cb87144e2181ccb4099790c729ed2ac41629a8009967de36c0f6c306f1820605395cb9125d80805388453c9bc8b7b20407dee0080a811944117fed70a3c98ba04df127e1a0cfa2ac72da60b59c9a36a9fc9fd438c9cbaac54537320478909f6657b4a54bb12c7ce7e626c30975379162132c5106b12ee5a88305383e339bcc138b2fa628136c178bce47a0e8e2b48b436e83d1641b13bd444c87d8bc21ceea4432d6bd7258c87167ba2b310634d484d5835fa463973c80b598f20e54d8345452ca70a6bf0c20a040c8083b16109be6af6a5706dab36611d6443157219cecafd4b15a9d30a9b127949f05bbefc20350bc9493b23c50376e02b0628bb8caae9292cc487942530573aaa1e362320e652760121df50009a8fa7a3f741faa9b454d28b559aaa54508cbed96a498670bf6882184752fcc482a3343a20ba2a6e27b735f991dc3b859a6a493c01407c97341794943421b98d1e14d2946c7643b706424aef4b883d4cc721b39b821e18ed63544ae329400322e1614330501a3ff0227809c467f8743db4c794fb07671397ab6ba0b7b77960f67a5a51b99b19452a1f5adaf124978e615af237d436bb61a051cdb6032bcf67080e73023aa47cef6acadd48aef33644a185734a65751a15efcc933f70a272c7a4c0de2a6bea9529a5c23bf921ac3641065b974628aa1c867ab9b3599921bcdfc2c075dc955e2f6965857cf3d6c408c7b34304944f3f47cfbe4a6f99059d198577fd1c696758c8e76b13155752085637364591a876984986871aa8a79a1c3d6c7c6ca736cff8a45a3f0b5f694cc0faa2e32369fbd1458d25355240c82438362578077cd430f8e911539c016b7f61693db60ea16b8fa34bccdbb65587189cd0c4cc5e647ba5315a4102fa8174cc41a44968ca16a7b41834396cd942533f41b24971d7eec17bde883dbbb913952ac50ec04ab727ae4a06c3e4c43dde72a3bcc98ce5c3302755abcd58dc535beadc915e49a05407a9e459604e03371c7604b82b13a1bd5bd71e4336ea0410cb83d6d6439f9da6959ca6a5dc89cb3bab09b7a7b7e4ab075a08ac4c56a3f70bdbf102562da804ee97d873980f2c429009d68332703fa83c1f0b2ca7b615b176920783a6ca62598e43bc277428e2e34175983c007537f29375afd8b30329205574071d7d254e010a9668218e2ab3218aa35a9d54a17d2295f02c22645bb448b271a8195121b4ff3271a8ae57c0b372f5c464b4b3a57a297118de763cb017501b33f318073fcecc01b56b490f28f29db73fda4184d28c2b8364bbd3c5598730084a358ba9b8534878a08a431d1807fc1d40a7a044fd63542865846139a57d2da482f278ee9ea6d3db27216f070f32738df0a10f90815fcd131e4aa68b8cc16c6a42157438ed36ab5aca94902882638999fb367348beb083a0390c6e641394c5da4644326caae519aaa5e332bbe38270c69a8559034c6d37599c2008627178cdb4f8e149e05f66def993fe7b75f34f213f5e701fdc8b8cf71b2acd3470c9ac723a46fdee11f2828b4faf68f799203003919fee7a0618b437939cd8643421017a4e7f38ae52989ac05322eb96c1a037d659784414190194a60a6c39690509d62f6c0ce29cc2e25085ba455d594bec49690cdf6fea21b7d9a3f2083a38f15ed7c4030a5adfc2a53947540c00424a7017a05d21a69b30061e37fe72cc1392f9e7974348e8996a68a247a358e65ec0422b6a8bfc77cff0f4dade8d6881ae14b752dff539a255438a15f078df6 +ciphertext: 59a643f5add197b39e9328195fbcc681868e8b1047d84a7d2ce8ad7bd0818f7e6c556d11419469281ee47aa86faa170cb755f64c90542b463ae85c6590c99fceb456746486c60be32cbf138519c6edf7bc77e86e30d54c8c2b6c3a84a72609f8ed3ba87b33f65a521317780227712991e721767b279ef7c7d8eb5dd5cdbebebc907fb47c4b48a2cc00439b1cc2cdf64a04bbf876c065408a0cf099977174e8a77a16ac9845944a1d361c22b631048fa015dda24b19763ef23a8b26ca1ad7c4bb3b095be661815886a72d2fdc81134968fda083b14858f288b184701e967bf605a3ec40feaaef97540bea502c16166a42c48dfc352c198f9eed34d7b61d53294dec724e512fde187e05ee05b4eb85b5c9681ae3ac477b24a6b86fed26a7efff64d1293151c604d2f23189232a +result: fail +shared_secret: + +# Ciphertext too short +private_key: d833cdaf6b09e6aca2788b53484699bdb5b777f82dbff192cb7bb667862f4ba680e4aa5217bb84acb938562659a16a1a530335acb1bfa0642194ea38440799c0da87598aa1388a4602f42d6ea99bfe46446960438a904ef2505f7dc04bb8638b6dc47b54372bb3b335df46298bc5b4882a8a2bf01e7c3058ac4766b250b863132eb5f0a31620befa507a0514ae38b4cfc853ce967a6c4e6c90e70b895768bc03b7bbd6326f8db7b0bd2138ed61070536cb16fa54ee414a7235681dc386f3378cf3999c09bb4dca1204dffc61cec143342414dc88ace216777db18f0f5c00bc923cff0c5a4161b38d663ad67633ad512d0d6478eaa49ec503b5415b5532a8ba5ab04f31f80546a780ce15109053a1763c67506c74abd6cd34a3b92e2ca801a82021cbb758f838e8c9047df7bb193a4f93ab61cd51a766500f22d5023b43cb421a80c7a381f2ac1e0da44c8192b756e66ee13718ea07b144da0ecb21a4003cc9be332914db1bac40082fcc69c488646417818f008b4bf3a8902a56ab2b8473a0bfc9d3ae3c64ab3af855a31a48b885bbdb177bb9049cf4c50323734fed575c22058027f10f93394d3fdb562ec2850a63527f4c5ef2197993a5622550777475cff014176c1078ac2b0a8f7b4cd9f043245564eb335d6e909383875823e0a1f0f7802ce87c3d862764d675f0f85dccc40a7e4b9603e817d6798070e61512b520ddc3422007a19591c4758208cd59532d13339c20a7bb8b9dad054dccc8990050678c40591734521ecaa3de58c61760c888713d8d9067be14506440a1e17a81d58c59c2085e05687e391b60983567cee8cdcd13c0661a782405b788775063e47b97c28d69d18e1d377502e17b29f23db36498f946c3d4c50c3d07b6f81c3e36fc068480041d125ac626b5867a80f70a45605705d806c95a177175a29848f5547a37bf696c7995eba596f406710b4242b31f55dc68fd31c7ac7312de011de3a5812f2681bf213d53a90951c595b9725694ebabbf9c821d9969406320479014e1c751f47cb79c17bf3ad775b61bbf254b3df074513b6ca25082bfb1e079063571ba553eae864830033da63baa0c3026df042dce265d760a3c9d165daa701c696861e985af3b7729e5242fb9022de5770607072b64fa154e7216f5a94e098b03a1c585486425fe4c4b62fa36ff3310eba0531f43398cb8b17bdca7b18c98ad01aa47152931d67a636c79cd478c66279724a25bf0007a8f332b6a4b38b673a244a37cfed46810884af783179361a3a8211bbbb8b3669ba0801362cad94a36b5253b06bb4ad17beb2468209b10f1679da74462fa709164f43e6e84af9a877e8f25b653227592a376c2007ccda6ab7598625fc18020d866377ca860a17ca2c875db90b67fd1587971825b40cf58da652f539a7a95ab5f6929d11388393b9d3c5245e25aa7f0a1aacb480cf177cfdd072f6d3623184129ba966c5a97b579f58b1e524e98d1aabbe276c09b67422507ee561ea253491e38bf2ae18af62138e84249be3a6116ca3e49f770fe50227a082fceb536909b0933c560dae02fbea3662e39c6855652b71a7315f75f05598331b799da5a81b2948274391b6c3b9842255b4e8095a63631c9fa919fc761e4a33e6e3ab9d6394ac17994a3da441e1c93600b8733a840a7baa2c7ba1488f0a34f4c9368f25bc5c58ab8e109c79a416c6b74b06513a26a40ac13ab63d2711a17bc36cb4b81e36ae0083c091559f70c36d37257e7e2432727af2d198024a2c79a9a74dbf23d49c9b84b5b4a9f765f7243afb32ca4a5947ae50b5636a8cbf75c2b8087741b53cc5ee318ed589566f5018724867c56ab5250a46f6840b066ba78693a9ea409ec57584c90b9e22762ae387a72478dcf1b07c8b68661a8a8b49a5a8ea4c0e465454835bc93d13681561fb955822291c127a800c26115bc99830554706756690cd04544626ab3b4b7b93702e3192764a53fae648556294f5b64955fc26d6c92564553809839c294ac9badf954ae2b9520e13abd411dafd90193dc1b7be751b7134d30dc80d6f667f71062fbea64f9323ea63785550346acbc2aee0a4bc8bb77c22b420711567f445859202980b97b6af73ce73c4e7a6530ca039da0341674535811f628af1608039bbca0983b44b8c70cf28841ba720d1972bf941d56b28a95284b1d7492ba270ff5e26c9aa99371c62951b06995c5b9e60cbbf2b9ba19674f8ea5055886bd76848aa784c8648b696da83bd9f9514c5b997cd02035fb4922da70aa223cd76250145b8a3cbc56363827b7346ccbd28a4233725b110116f194430c8c25b32085054a1e4a9880f8a5c3654ea6844a861b3806f06042ac9a02676e3401629734c943c954cfa06935c7b2361a1441673c548975f3c59b9d7ccd3cd4272f8c28dca209ba4b9898097d128baaa4e3bcbc238fec3961df0018644c866fc3ce1405c1e6d27590eb44bf7b2f6ea78cd16b29fc7b97ae76c22cc3a748d5797465cebee06b51663a904b3ce4976dffc1138c2337b84714a0d308566987bee7813f9c6a24d16e99ebac32457b13c07bcd90ab87f47fe4a661953a17c51cb156400bb57082d3069d9302bf1a3a09a4e6414f2c958cb5629670b5047a15a0120fe333a8075ab459a03e6888124cbcad76e91cf87364d93cc1731091a183a430b2353de50db2a13ac4680f631339124a5464c30844a607a41c2352e64f10166dfe92a0db38a71e952c4946c6911b703c29c4c219279db091ef57cbf81252c3fb486516170d7580efe55f706b264ee728b69807e64048130a7fa5670772564ad3034ee41a2dc909cb8f3263e8b6bf498c29a71c807614bafed39266c68249f93764e000c16263f343a041ca3a5a68bf7b3a6b954460b5b6203ab34754f122a9309b6e97a846a1418c9ab65d442e50ec515328626c745c69826e4929b2e6a59c721c365bba17e749cd82c29a2af7bc15c64108d38dd05163d35516811737480c0d837c1091a4375a3c5a8b444ebc78186f16c6d2763deaa42811d6770dec425671ab6630adbd7743b725307ef3329d9c5619bb5f63d414f1718116e5b0d22b12f37793b8d14f56444178444cca6bb91997adb3858263271d384136ef6679833784967100e698226045cb29d16d1b306f79475113b3355d68514c2870bbd7051a93743f5aada773b88c62c53a4c75a40092649647de3608f8d9626a28a669b53d84510c6a65c40dc46909f531ce07ae56a8122e2111679988f1ab0ca36b8a8be9b4cc9957df02716c9cbdbe72dec037ada8617ddccffeae5bdd1ecc1973c4b5ca540f1ec9ab2f13dd796c86aef9bc30d0dee4c3a5e37f154b5b0a6b2672d3944f48d7ba79bdfe223a0df0303581c94dde083450c85ecf4d50 +ciphertext: b27620547b337799a4b619fd95f0d14a78bf9151cc5697 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 32f34b401033dec93341c19d3fc84374d98762cb0a30f49f5f36b463824da2a56c3806102e192b11c7abe98ac289c49e3f1b7a1a7b6b7113b63a65335af14a90d8987f08770ce8228020b5505cb07844aab8331c9a3686789014938c10bec980f45a1e657a6c0708183515c744f32e5c7638958c1e7f7812bc1ca68ff4382f956ad4ec846258b405e2cc14ea469f1a8b61082167f45a5df439637c7154a478418698162b95732805fd262e7a36b568a58740e40e8ae1525352c968888547ba623397c78f1999eac615a243104779545e158eaff5330f0ab0e97a1b9c930aa300466ef2c9117030ee178d67736fd3668813dba04706aa5a919730527eced87c82f09b421317b9c85f6cbca17ee886b25a31a1eb3a293966016602895b58db39371f1046a814bc0fcb1363ba4a32b02751b16b5abc8741344973fa10c6cabad8439d33746b29f84663eab43fb821466a17cc843916a600cad63ae8b9a0957477f0d932b2dc65e2e52c72428f6c1128a4abcefbfc1e3340927e869a4b070e771938b8da43dd523ec4a96b5cac9b33361feae19966ca6c5795248589cd5727327341b3fd546477993aebe9a3a1d5114061cf2cf667bbb57dc68c9dc10106888616fb9caeefc367b86b89b14c3adfe5a980a418fac81857388983ebce5bb676a4d22e1e777cab60b058646a8bf2220b364aec0ca6ab47859f0838e115c0692b62ee6a0d659b7d6201b32b71c2ca443c731812c43763673208579112a53b1956a62373528b65cac5d1915efe84c35073913b71c7af857602ac72dd4722859a7fb212b9b4178703f4b693a715342aa9b43ba4a4a733b1eca429cb6edb4b2284c30a55a1175f692d3b081c2a24773f5c50a88cc433d78ef400a903c37aa1b107de872ef6218c9464605ec50961e8bb38f2467f62475644b401c97bcc24b929faa92da623a6f87c22b399aa3563c73936f839751c463ba5c78ec1cc31f7b119499b63cc57089e481fb0401fc1c4698d17b67b0aa839a969cfc9ba5f80b9660583c259b5b2c54ad7331116aaa9bc1931f32681402b117bc38e262bcd3f38650049555fc8af0d722d7c75b263249b13e6a2b787bde8eb83f553a39e50a85db5bf50d57a70e29721c61acb658a8953947644bd758196a9304f321b2dea8a95f482078c764d4ea6068b230b78f27535e1740feba3173204d5852d5b9bab19f50dbf76aefff6a5875052d68884c513b22155862fc476433c42cd78735d9311657b57c759bda4c378abe5388da75b90f1a27e07a945788d2a468c2c07692f8437251b840e8229f118a7160a1c2d3a5b68420701d6b437e539b37205b3b686b1768fcf3146cb4bb890d84312706f53aa63de9c65ac32573064855b8caf564198dcb1c8fb330fe7813e9648bd5e593a86ba17ca1518d062842eb104bb73cf12b59d272b9629f0ce1fe5c2f1e70bbf7687488bcf9766a17fba687a630e1ea2637b3a96f5c4935d3c72ed954adc285305e78d371136a8c3c8c5aacc5f209c34c750b7654c8ce87846c780be223a595940804429f743667608a602ac267faa683c27200173a6d0410e906730a8538da8e227e7a06475c2a6c1cca586988cc6317482954368eb83bcd28de940393d437c0e5b35d9820281d56a7ca165078136069ca60aba6a0d018d0a177ccb6c497092c44de387e724759baa264098af3e39a1ed8306815801f3a1c2115569cf3a8023e415dce1131aaca2e270261ef322d530761a94bf9f015a93786518e637ac23044b59a2a3b87aa120c8e05650d020a845b8b5bd1098e1658a66fb7744f483e5863461807d3cb29151095603c53f7faa6fe5527d6c1553c59567d07ba1bc05c8951039a53b37a5e8baf56ba69337847a0a1fa6f00710c5545056888e0cb2ae1634f4bac7467caa2e261aea4c1ac47c9206925bb13954eac901b7f5a8e698a275e85ceb85bf69e4b9258b4dbbc1421a075aefb009c7acbdc96c9842732d87f20f49165eb53c5838314a18904923f42d25eb7bb7b69efaa244dad9329a12af28cc324ca0a82211c39669302b07ca0e6266e81830d9391b26861ddf06c3fc57c098ec7a0ada2c31e2bc1a744712891d07bc4c85d6c587108e0428506e77793701ad588858b1291193f27df11921a1db2d74e633f2c5ad16e0b054483645f1c2947186823989a35238f19b786f6096a5ac4235abaf1a471d11c58c12002e29771078e305fe2794f0ac4c5f5167e620c107a9381dd05b52579bec7b7f6df42457c7cd60fb421690c48bc4994ec2227c56a9acacc74d349abfac1d7b7923b85a01a2609eb8fb5a30482d39282284331a94166631fb88c9531458545c09752d87e737afca2351a612438213d2b4070ce983cf6991540293687baeab15a1bed2859c89a7ba9a161309b7f6a560010984d97080bafa483f2942cb70ac62d4372e255a831b936c672eda52529e350bc9997c5fdbae55e517c2642256577026191fcaa3998ea0ce80777b92706372997d759857bf97c675286bd595221e43aa93273f94f2903bf1b5326c697834affeb3b60a4143ac4a3c10c839ce85ae07562be80230fd5a969e7c3c45f9420948c6d2e83aaf5541a66a550b34b569750f18ab591002917fa4c07fd88254672d388a41c2491d333060654b736ce8cd31ec7dd1189aff416c8bbcc3ff9403f8f33f47304e2b11612c719252b9056b12b1c4daaadd59559de4c7a2907787501115a9796b91ca9da779b9888afd4b4d456c33959b64e3fab77e9189e9d687e1a19533f6641f388292209496b26258357001d62651f1c276b00a58f55e3bb94e7100352fbb085314a09d7b074d534a8ca23d83313adad5b5695a92cd6817c0c4a786e4a84cc2cccdf1b3e5e72289b7a69ae68a6aa09204c704a252bca50628aea475dda3399be0b99f7bc4ef7c651031c27b575ac96171ebc99173a12b3b60cce72517d672ba3e1b5d09937e6f448cad58ba5ceb97430a61bb26c5f2f139e491702b759e06fb5eb74c81d3a710c919b4087c2035127da67c216eb88b2a086a2cf759d90c6bcb669dc4e9102f0868c184aba60cababf223047ca97ec3b4d7d347a2379b43680013a846b969339099a15ed538361045aa7699a7a90b693400379a906ed8bf4730747e9b9789097a52090909d1b0013755a8540d88dca4fdbaad3d7045044a2e5a80726fd285f9c83fbf23cb9c6c798c53631962688ab10029a6316657558ada824524ccbae9b8333a7ecada383fb2465035acc81bd753c5ad23503b0767ac2ce039f67fa29579ff4c6fd12221c17085f737acc6fdb68882fe46e09b204df79d5f81e4c458050f9ac70482538a57637a822efb5625bef5639463dceb90e569861dd289eb7497e22f561e93502ad61e0d +ciphertext: 226a87712fe40adea7600033fc6dbc60c9c14ea9d454143c430fcc22fb92d350f58372435e5e0bc011dc7d8c6926450098c7800d8d2b42bb0dc42b04a55b7065e81f399a0f48996a2fea70693f81b67bd5b01f7073ba25539e54c3d19057484258f6771581e4ed7f4838d2f7362370cb930a637182fa9cfbc84631abf3a6d2e5db5588cdb817fd94fde84f9ecd3afb562698ad89e141dd204b83865aef10a65fc88f1af70d1aba4d0c186e110d8f5dc8f14107b3fadbc3fbfae1c48f1da65ea51c700bf788bd4c1f77a065432f7080c59f95ebc743261865a0f831201051a66b0666de09322e70cece35fb40d898a1e891a79742815470564f23c8d5b1679b62 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 7bc645186041c32a6fc98499e9829522702841f4bbad64b73c193053d6acbddc2e25b941213541543c6a3193a6cb2abe27f279f67063a56b97ca8638808a8d6e38cca782ad21e16f591b75947808ae230cc5d3b9adb364a2c75162c5c429c69f37a459b9a756aa3b48f888cdd30308ec292945650887d34243060e98144e5355c851e9073c79a77ed1841cacb233c58031716d5be4a40b9cac381431810440ae0b290aa378687856679ccff015cf8af933fdc2766918199c252dc50294ed5c17775a97183841652418e4c25b44b7cf376a8858e71d76b1618c597dc7dc82eeb7afdc61290f4c555d0b7f7c30b3a9c17193e76d869136a01826e29a54bab6ad93dbbf987645ac4a422b1a6ce738746e367c53eb2be0a72b11b3b510b69fdc23bd0f825bbe3b72f6706097854b590cbc1b45ba8da2a2f7bb29ac14971cb04a4eb6b0969c0d83819a5159274cc16bc4068753f5016e705a99d7895f220c92a09f1fa2b8d33193bd34b9ca9044e7a28b2f0c87df759285907ddc04c3227c6856dc669bf67589e14d6f4515e957506b73110dc20baa01027339ca44b8212039cf44d2a401227058dcceac8c7a2695649985c240563b71654b4eda444c2061620c73c4a6b79ca89e666844c533c771219be6326efa005a99f31d9dc885d74c020b02b542180216f4994dba44429449bc4536db444b2cd70dca2b4a32643cc8d67c87f862c8178bc6833da0b2b1fdc84681e6b34a7852550ab59275728a0b1a735756e24711aa840835117519d426e7ba28f65a23a0cbaee09c10918866e8591ba3ba23b8cc4e00457f9429b93a85a37cf86bd7fa750a8317d8e9562e57014ec96442cb96bc8a0e3f69281952259d2891abe9bad1197213096bf90a6fa90449014b2fb9d4b8011137b3349786bb109fdc045b075013eca170f48b7a67acfd0c6bc287c66e9803ce354e12490d537451cbea61fba868fd584cbc4b49b19699ae2c4f0b969329e85a96d235bc5a5561fa2a1dd72c2542a96ed2ca5d45461f1a24f8530ef9a7356f630ffd07315a693424b4ced56481617103c9c7b90e531c86c14a0155735003b0c36baadf1103a927887c40909f4372846b2f39fb12ef174b12a7c976e71d4517bdb24a5992c635ac588724d63162298f40f2677103c4f783c57e61939c2b2c1d3bbd31a5686213a2f3a97578486932b00c892ca61a0a21677cc444779a997caf3fa5056a861a485c430c3cac73e7abf29b853df8004ea924d3956a8dd2196697498d23b7eb0964244125c733a2df213ac059052200427d41be97027feb43a45a3871172b7b00fb4393165b53c76337767616808826016437f14a90f7c106509c9427869ef092af9c3740c5004d9b331c37660f1b11e9528cb29bc142b581c7512a0176886c8a39fb7108b9b15a268b8e63441169ec4d2202373bb1495ca08487244e008d5233024f03268ce3e47a5137bdef2a058afc16ef4228b7698dfef31e6de6881bc725d75815129543d4a0cb9eea2178124f01426775cb7facbb234fba2339029d7ff39868d41d2bfa31eaa5771af20d606494d140971b1c65cfa68fcf40522f8b9b88f864f4c7681a5816e295083daca1c7b8ccd71bc79b6763ba82675d78c6332bcee6168efb0607f05348aeca071a15583b079a48610da2db336a324e17457624616243fbb9b4d40354492af7d52909ab35caa8490faaa7469c59ac0b287110a8bb04968ce4aea10acaede2801c060270e53f570294b75536ff1535222bb755d3be6d839066409604fa7b22440331387477700ba097c89ad66a667200957c0aebe93f0043a283c040050c1288250973e871487a2294e0b99b14232b187676abcf9cd7a921283629db375183090c3aac7a6c3eebc26f69cbcbabec87c726ac8029447140292003ccfe729f1825ac7fca7a6e7a558244bacf68593b3b8c36598f5974907ff37077e61051fa0e2cf3ac067b65a3b38474cca5ae276ea719620667c7ebdc5473391f4ca12a142a20686566d2050011d28762e81db3e68bd3653f80bba30846aef5a610468339e14242a8a3b8bf26277d35c5cf080c89fb0ed14bb34f588fad7451d15c79306c859c61676e865fcdf54324e9848e445604e1504c5191d6240ad10a956e1950adf11882036792448997ca6cddd7a211599aff79942f479da83a7625436a18c4a04b8cbacfc35428a497f6d5ce031c59e9c81a387a9d181616f86269af563c17038281892a70b51119845792886cf50a6d25e3157ee1a1c5dbae9d70b53e282b6bfa277de403c15bce7ad48a6926465791a473c662a6d81a9f901f41b35aa88b939ea02926d78c6772902209b3a837c74d3833f3bbc161b03477c0c66f31cc71c0b1bf35317134825b589d07391de7cc212e53cd2e64548c30367744b6d82106395ba4d87ba336162695fb72c60a5e3933ac0e5a1dd27460fd2330a5c6443c097a25367e3ae4322bda60cb602a2456487226179bf5a0950399ba093fdde134fc5a003461234905cf702459f60b31533797a72985f4c146f906085ec3ac71770f8106cae9896dce412826678e76465b81125044a44e20453a5443ba6a506c27a38d4a2c50b0d0a67ca85159293c30f5ac3f32bcff9424d5426308257a48e48b8e76b48be255d7d32e29869ad946c4e8e9c5d62279f0cbb9e95c291698a1ea4056858ab5780382e0a20ab0f60391e2b1adcc0738d23a0855c32c44ad22055a9ce078a1b432eb02804e2c40b57b8f800129c733337f5787a336189ca86612bb1aa7e72cbc6432a5f18611738284169df3e0663b121263523e6bb123f1793b4c5091f9988ddcc53263bb2390e99f898947dc0cc23b5592bb150c7b083d17c0bfe097ac54474a9089adc7bc8b3b0438ee897dd384803ad40787524712873c469549094cb5e4653a0e886dd7f20e744b06746bc19b468daf747890404772447ed71a30f3d72257eb399700c90d0b6495b5b20855438d02180a058842c96b7061122b48c35fb0cf16549a39a3ab7396178d712384a2a9a10c3ba17141e489ca4b88c08e10bbb856c9fb4bb020fc85cc2747a7cb3827ac08b2640a5aaa273e467bd4706b8050c89121abae8a1c0f829eacd49b17740f5b72b188275cfd6cadb60246e1c099e3d3c837e840338446da042f60c57d14bc225a54b32bf39e2be2b51e034a32f160ba9366fa16397ad373e32cc2939b8d50b0acec2966c1ca516142a998d1c6d0c8b245b17e23555911b576cefb5e36aba33ffa940bfc42a2c699265497a6ede26214e4df20071eac7e077c50cc03588c06bd0ef20be8414beebd32b789bf55f95dfc03f3dcaaca4507d8509ee75522a0309cd19aebd84e1ff4989a0392b5052fc6490b251f2c5987fb4023b33e98 +ciphertext: 6bc987f4b7b85e14671904d8c90f281fc4310b603ae1047a58213e475b2608346a8619ebfde15b53dbaa4f05032da123702191d579d91ca4bdab6ffbf8573a96557ba6427f93fc94841b7f072b509e59b43f7b08d11a73d3909a8c48fec38daffde8767aaa1fff9977ff +result: fail +shared_secret: + +# Ciphertext too short +private_key: b70c2da5913c6db6b03d05aabaa5a362571379941bba4c17e21c3cda47838e018120a5a8a64c5bed955d32f75d2cd68f19974cb7932056830f6ec6a5b25a06fc0b7ffa0526af04797e8c12d33924b7abab73467d97c24a1b9a74f36869e0ec7a2e08b7322666b41c85bb8cb5b5fc4b065a7582904d11e5c27e608aea2a313a9641d39014d9d95a742ac77233aff7f2ab4f881581dca232801df31a544e8102f246cd3aa40ec130b8ae404416a86ecc87080b5575cf09472799486c8725f2567c2fca5624fa7160e72944c7c7e9644362c69bf444050b557721267c6e2490874ac74e327593e461288cc558d154fbf7773d680179847c24a6b5ae551ad69c90830c228ea7b33d1c83fa055ccb1b2408f14147845a189921149239d434c06ee318e4e60e903410b576b269b1b8fb4ab94239ac868b3fd85839ab908f621b79a95741858b4c04b66ca7b9b85b094c3b290e90b632f52232902636f776c28ab216e8fa0088e33f3d623b3bdcc29d226b396b0d76a4413f2a02c787a2df61628ac294658b6e41882068c9b2e7f2c883550e0750a5e12c539e929e873310f3079e3fb2900f466090ab0c1af80fe75a8f4f77a00e5aaad3c66d02511553091c2e06a6928b0178eb3267753b0428b53a60403825826ffb52088bb07337ada46c36fa328316021f42fa181c04a3232acce3254153d2b756f32f29786681ca57b353c4defa2945312973256374d6738f493bd3c31a49194b321ac7748a284fe11a88e718c7c794e046893213003e423206d7c66ed828998cb372aa04d2d130a1585aee345532c994cc7b50c12477b846c7c746926260bbc53a848aea30490466ce2009a7e5967b5c6558800af71135f62c434bf9cc7f7205b5542a086b334ce3603b3ba59b0b4b5baac82e9a16457285befb615d941554651d1055138457894554c8e5c18435d4669f825822490498abaa9875508cf87ce9e439d0305a3cf2ae4a279a4ba87a771b7a710aa9be298a31dc570920aec28cc789754c15c2c7214317834458adeb68fc9633b7f6468a0c00895c9a6d8c58c9377c72186d4001c5952a04026b0bc4a6023246b728e654aa3c9ad9a91d8a6c963ab5576450558a27227587b918d634a98a1946f6c4d85a943de4641a8c99170902f6f467e1e0ad77a9b271fc4d7237722a4b11e0d639fcb1af65b4cebf07c41256bc4cf43d4096b90008bb1363bc9b502513f00c57641fd8282a417a1eed9b14926a43675c3884c9479775b4993554aec59f20856388808190006114838f990b4f651b90d64a7f34e319b9e9b459fc8c6ad5b322661ad7965cbca52fd2c698405469025b7b56c4b411b355ba287fbcac6a008cba3a857fdb125fb715403ab8b15609711e3262ae0c3691a5bfe8f59128084204671f4f0c5a4252ce613c169ef5a01f6b1bc96c2cb9a1839d6c1176693b9c429056fab404c55d27899054dc750bf558d4a1aefd739a3ce053adca0cb06c69216b4a34839b0f739b4de608cea440356635b6f65e64639d2a1c1a5306a003c35eeb9a0b8851764510c14ea73c39c6bf187c5dbc8c1ef1b19458cabdbcac637495588960742290adc1390147340467db61eee61350bb039100358eb7c64df3309f24ba95c91bf574a26784123b24208ea6b489045e9b60bf6f4888a759b8b2425183eab9d74ca4ce1b3381f93eceeb48f3b2c02d6a09324376ac3081e86b94b4c690581c9613a37397146ef8086de51b970306661b4a2f9ccc98ad22870f726f0de044c50c137d034adf35203ee0b20c4ba6c4d3cf90617a8dd5039e855446f9bbaab792eab9af67163561830b5f37cbfae56ef1c1aa1727b903541d82d38cc0715fd6ba6f6fe287e1f8bf2196af4529afee417ae4987b80f7a866874d08907197a3b2fb5247781bcbbac491e50a15b4e50ff910ce0453967f353438b910a5a1805a354355f3393bd51be4880e41874cfdfb9e4f786bd4c47bea17ce85346cab6b64b865025943a9cb22a09001886d39b0a1ab68f7498a67d7bf4b01879d9907e9600e6553976b45615367c0b481720786cfd6ca1e62773c284980c7b096e7da21521097e60a0b4e3c4a4c913b542117cc9b2245a6189dd47c49891194db9d82a8aafadabd3c866ed5f08846b4c0bb82b13d8cb2912228464981e0e85ed6c807e2e68efae6b0f5f20b640380adc239f6e51e688b3db4628f557ba8237b240897b1c4251ebe66293ff62497ca0dda2a614e197ffe4b24e744250a46cf57f117597a0c116c34b1f895b4e8b9406b12de701193429b0e0221c8e441c41cc83dc858119aa18fa94db995a30122417d855db6fa7ee6606f968b8e117317d5669c0d967678887d097b02159438e6c8917a1817aba288d0c8561a0c6f52ec115f97a06d2420ba6b1a5be746fdec26e6381dfb8a04705981aff001314614f44c6322c67b58c7ac4653c15f717808cb6b901509b164933c962f6d1b16c2b146e992b68651647e9c456232993882297d761f6769782b18c011cc745deb9da6521c21521686798cba4701ddf67a9af203ea519855180222f36f6c2791c82721d8b2874334cf60519efd3a3af9d2285923b141130f58f6450c644ecfb573a14933b01c5a9ad37381fbbf2e49710acb0e9c523e46a33b7dcc8ad14317c86b2c9fbc465a4b3b379970def4122bd019d2f051fcd37f2a4c56808c3c5cd545dd09b4524c63235a0038fa68099143aacaa5aa447c432544deb48d4e08cf3a25346e7caece529c30e8bb634b6540ea46568c07aae62bacb01a2da199d5638a54281c09909f0259c46398a2538353e48173dd2b8b695217b3f6c8f30a65bf6367b3f41c9fa861166ba6756c535e55c1c4f7384e6905e79619fdd9a9bf1b63441b4cb0858f442709498c04ac7bba7bf74670aa2870018c9694417c92886e95a5bc7914feabb0c50005c929670d055662ccaf0058a109db8d044ca828d70edba27f7a98aa22d58adb7c7729366cbfd409d5306a9db5418950c9e7e963fe28763b346989964dd9b808da272e5ca195d433425f785154d5416df734c8571b16275985c13fe20b8c45921879ec92fc168bec2c4c41486592407970a674b2659f3100a95ecb89f4920ec11260051105c4fb93e2c0bc6a31a6725ccb511b2c8987746becb36cd7505b0cc5acb141e26862db7728ae66632b65ac9a739bbb0c99057c169b75a6bbe80f18da1d96a370d12474cc57cb9a021359e800617176de3439b2696e0671528a6ac7f9966706052dff60a4f7401a9279e1cb918a92fc58ae46393767d664baf44b74ef13d602cf497a479a827a082e516572965bdd0bb760746f53d41e1b9f1e71cebb1448f52782f1038cd22aca84778ebb5d9c3b10b1b597d3ea3bee7c36e51b67 +ciphertext: 95a91b23401270e4614fe88e693d465f1f801bc7743e631eac05074d515923a7b0bcd6cf1c78087c6c42c5bb713cf765d3b04a4e651cf211e975cb72c7a3b241e76585825177b429749d268e17baa70ee0c13b0b4a49526bccc8b220ec054d660779bfd23972f3e080f0be9b02e7cd19cb89d88d6b5fbbe36caea000bb0c90ac8f2d4bc0ac7e8791ce8d572f51ceb0634991f211c0dcbbdc815a12488104f18f1599e0273dbfc89b835e8a542769a0e35c805adf4644c3a3af84b16135691589da56b7ea17d36f25969b0e3a714435d59c82db0c7473a0db7c45f04fa750262ac9ca257d84bec7942286bb3dc8f2202419c7ef19d026fda070817a1dcaedcc3db05b65a857f86ab29c41494aeb5419a5e918811a378242c753e60f34fcb24e44fb8c3a3cf968087c4266c85518cfd37359738d3762bbee816969b8f6f1a070561d74a1386264c23abbe91f450553e01e973926d5b8e1ab14353529d8f1abf2cbc0b6ff1e45579987ba46c6d3c2 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 5c813aa7d54e2b5127983aa133f3a16cd235617cb4c1903174fa0c581ac6b94c7aec2283e5608950e61fd6b7abc9c7635becc3d501551b39bbea868211f1992a0a54c44c06bd9b15f9abc9d0317cdaeb454a3179fbe0603203959c900845466240400bb93788ec294cdbe335e401c9e7217370d979dbbb36373bacf89c656c945e52c461b77152338b7868a36df88a873d239bc5194c5e82614c615ff9a5bccc1c47ff56a2c9ab55d488ab75f471e3494be4c033481254644ac46fbc6016288e83248406153269d26e78b5299ad9698733cf067818a546bcb7c40fbada19327c6b23704ba36438771a3952478cd70c7b819020e14175e35459ba4c7d46b50973e3989d875f15772433108a633473e1847692298e48b466f672a2f2a9458401b8473684289c275fc699cbb169f7db5c5972902efb843557ab031a4ab9d611be628069ccbda0dc7e877a0fd11ab7ab68a315e0351e368d4df00345f72b69598ee365b9dd943f0ac8865a1c7a23c30f8f27a24ff64587263cbb5c5986bb7dafd07b8a5a5bb3c890261848a0763e3c5bc3d0a3bf3b31017514410cd5ce1a02c8f3a88f1c5829b8657ddeca19d2c4381984cc73cc165737a40518751ad77e199b84ba3c3742f84722ba8943cb8e894362d4e36467981590b87972f941a3a238f1340f29d0728704b2f7348477751f2675cef34bad8e8393ac8574657092a8569d4ab2b1ef474388e30253d124a0e286d0a2311a772b2d567843c5a5c28072f0b8ccf823b5a98023d8ab3928c293afd4ca4fcc8f51a566c0e9371be8859634018e68cf072b438ada2055731b24d5b698d76f2ec1c674d4379949944701243c5a5582c0a65ddb9b446491ea873753a1815b80477257272ce16edee5c2a107535de827aee7b726970035179ff47567b121a7df6093bfe78087f562ebfb68a119c93b59b861cb3cc167849db217104bcd7019a68b196f7aa6604ffc234757c2a2563be576ca024cb01512c0acd3779c130fe0f5c02a3c8b3fb3bd15ca945e877edd1771d30c54a6363d99112791b100315156443a4554bb4dbae788c1ea80835a476fb0cbbd83ada4d9c6e3b11ef20cb2404b9616876e7b7b600d015dd6f4c65b234dfb200343f836f113b6a5189615d9cb2436bb6af556397bacba8996bd623452b16411566d4722bdbca133df8cb98d716f7f02a01397c52ae0a869205aea1065a8c1b4f3169edbd575fcfb26b6f38ee88a9f82b25eedf8c10f58c6f11b91eb580644f0a3e995ac60f49a7a6243ff50c304a9a8c1ca341b36ccffe86dec2c1dae940c3ff239e97aa06222add856c8bce4254cd47a4f849440e4b4960b015de2c89a48c93ea7cfb44c5dc5019a8d917902982fdd7188a93ca14a93bb8f03bd74823f5d7cc4ef6030879bb9615c9fb641aa810ba9c0bc268b6b7e8ba2a9ce94b7ab942572a96386558142c934dec339f9248864005d5ca5631b9b06f203c89d78ab8b936b5c2b575379bfe4446719988148bc5499f6b24a92428665227537bdd67c9670d04c08d991d564567b4cb6f204c89d849c7e0890d85154487a20f6b65d172367a996a8c65aa2c9d686fbf610c7565e25d6a6153c0c24c3616d5c6182356fb906a11b239238814709771c9d0430615a26d6e337daa4b269d4a0485a432ad0ba00d076e3498b00fc55b2227d04f77ec5889b166277b6817e53404b823b1f1dea40d5867fb99acd4f9bb69c6cbb0408b93ed2190b1c1184972e8893876cb282baf3c029f43bfd154e13e94c9879ac413b9c806a40e7c56f0586b26e57691e3c19a7fb45a4837649b16ef059c8481b7186932cb461a385c6c541231901eb3f20aa65653088b65067d707206c505153f5051b1856e9b155fdfa31857025f35c3b4e842327e9a9b50c04961014d3b40aeca37e81d2cf45f646e25b37f8ba4d1f73c45ef41d03c4a4bce76d5d28981cb68c809974f1ccb09798145d5437ca9949085a7a6d9044d8417e01586211c24942f124f711aed0c61dd987b3e8968ba7e85bb1d926bae3138fc6c46db3345fe667910566861c8e829b87f6db5559899255460c0ec01d16aacb3408c13f349e58bcb8a8f1a9d2e83c61694876327c6117bd2d62b739151464995e722115393163e749ba2f3559beab39eb43bd5d67bbad95151acc388ed175831b239974bc4c19073649c48b85cfd4b89ecd444063038bc8e7a0b3b852f1e250118085fe90c7b2343a4ce566a40a1a4cf29695b29da1611a38f2a38ce59958457162182207f86292b54ab40b7c313b7871f27955b483982717c036132d3044114610faa7be176174c5a22712312b0f6928d68c0c88a94bb35532db357a7ee9c836306d2339a4824072330594a6b7b974a40480b39cabb77efb97a8f87cb266dcc0e6a70c263175e82bb5d85956f52576f12498571b10e957c43027a29926c106009858dbb37b6530fe33a127dc41b89caf7143ce4ab0133ca310cb553cb1437857bb3177e1c73bc5b2db787de1b85c78dbbd3290699ea3ce629c421c7972fce96b930ba3888b8119a258c68300e5cc036a1922788c24000c2bacbb9e55336826fa868ad5027b66c92b425fd2b69aea223ed2bb18c6a534741b32f3862f7bc37d1915972b65a1dbeba66a011274cb6f90593a16eb063a01ca2a08c1f9e987730b2770a41b33f383ecc5071a74568212c6acc74ab2262e3ac470a68b2da320963711b45eec0335602e0f264b3ae76caf0b4beae9420d54ae084bc03ee929bf2812e6d83f8e70796d941616bb64c26b7816ac3a9eca7ce226414c422b1547204c460d539026d97621f2347ab4582f63f77537614d3056396198645f75707fa155269cccb5c3b6f02a0da4d03c385327dd74132f3cc13384cff84376a720ab3bf825f969c86b75bc25c0326da77eb5600667a21e4153ce70393bb1b460461976176085f0c3521fdc2ebc3164c1763305831ac9f8b635e6883694b9358b4151938b9158772b8aa608e83e3045b2d4b819d524764bc121d88bc54a2987cac2065a4094e6e86bee7a26825968ad4a4df7859f11e8358248180deb39a2148ec0c3a10bd92b5cd92f2106bee9c64cf69c22094584f031245b31cd07d280fd9860da806da0a6c31df3a421c3cda2711257f5959b211d7b8881c38b91426695e5f481c656620e5762a271bd7546170fdbcc7daa1cbdda41b137aeb49685f953c82391c2443bcf47f27b6bb066cc056c812acbc43302802b54edb353d9023d49ec442879ac0f20661bedabd2cb1f96185435e4ead42acad8d942bc15278e85045fca630bc2dce38ff0bd549d283bfcedaa151bd615b798834d2c8b1e52a79784a390ee4a479f469d52cc407eb065df1cc3210922ea6a569861b8def505a209959925 +ciphertext: aa058dd940688d7055ba16b375b90ccdd7df701b0146265ccd99e19452b6ed0a687d4a9e0c86cb5d63c8fb43b028beaf7ee651d3dcc92164a58730fa0ae279d9c12c88b0a9e56f778332f71f438c422899f6bb03a6dae0bf43a98fa4b2efca42a80b28082bbe60697229c6a8b6cd7a5ac2c82328e7cf9dcb79c5d6cb92fec98e709a7cab134eb4aa3b6f99981b381e6ad84f150091dd934efa01f8d184660f6f70db0b233d3a623f296d66791e40642954cd3ada39481aedb060b063b16c9aa70dde1afe0a9e1a25a240dbd57244ee22b1e7053d926e60fe968fbdb777dc71cebaf7226fd3ef44219c4e8a184220fac785c9f341433cac361811cb0f7510acd81935a1ade1ea8df7 +result: fail +shared_secret: + +# Ciphertext too short +private_key: 8a21b34ba2c65d2c256bd946deb08502b23c4092742b41bc9018abf77845a4ba0dfa8a0b5de27a114c1bb4172341aa2dc3113681f39ef21a981c4b329ec04bac60a75672363244a19887156ea3af1b75c55bbb5227b31ab90759465c9c7f2b0f2a46a8b3b41ba5fca2d12a83006d01e8e10cb4b34007c65e6e3a4bcc9ccbe060a36bcc2b31583ab2710585f66a9d138d6ea90379193046295988e71b6482bbcb60625d554a02a45253f90901543daca1a03e127c25f56fc178c9a8853b59489e417012960a3da884313dec2e4ef9ce5967afaaca0fb391404c956be1e6205580709c233713d47d8c698ba8cac953fa7823696ce5d5b15af70336ca5c28079e981612f3f685b6d0cec672452d3c4aa7f83563f658dec03c74b73d13bb49d0d47213436eb8e4364ab49726870b43c5c4e4c31096b2945364bf5aa736dfc3a4de831caf8024e29c0f0590974567323c04a987ba3ee1fc49e6f67e4478a5109303e1dc90e8e93099161c1c7c411c117a05aa63abec1665047917106394c2210285b15279a23f39b3279471455a55fbca5e84b098a4967c5db49e0c892826588c27576c589b658ad614bc69bb5f443ffde17c775b5f1f360c7024a742e92bed72af09425f10013e642bb45c2349b686c9bf5a302177076105ca10f70e9e88a3d55bb0a2ac5613b47356bc326c4438b5c7bb582ab3d3e31ea9b9ba10241cd58322a1d8170d23b1b1741c43db6e4a598266b6aa8028ca03d987be5a2a4b27a8b19c980f426ba8308d86470aab79ac01a61cc21881415a4d429c4153314a6be1032b47b1c00bc2a5985b4e4c5d8087bc5a9b083d87397d7b845200ad2971a67260bc3c556aed8328e74a95b4b32198b98cede847bce60796b83925d21083f2060cc54a4a8a29e129328a60a4b6e371b693b2019468d733a6f6e574bfc34d00b878587c40be298b1a100b7bf613a634648445a1e7d8991fa2ce0f0aa0a20c4acd4c60cc787462b31a95da4ffeb09ea8c61de3c096b46992d49b3bcc060746db5415cb75f4149eefc33c883c26b2409fa9f95a813080d82c73ec627008faa57555a2d414a4f721c010463663440763109549a83088b4bbf356916ce26a0d064c395c231cb2423ff856f097a38cd3736771bfe473bef364b5528418bbf978fc009c3a351716679cf7127f1c40bc79eba2bdc19a96629118a43e9211a2defac0831b6f228ba55aa1aaa0f7c703a601f90394d8c171a0264546bb80b6eb768acc5bff276ee31a557147b72fb817ae41cf3cac6d86489a81d870500ba0846b964032afd2530cf4c00158c6370cc61e37e033cab8ceb63a1434695647c819a597ad1ed0c528406fa08a303dca62ca217976a16402669f97d4b048a42ff00843233271d3b17ad3b0615b5a694a61c939527ed74cab08c9bf39318df45aa18512145b8856854112e9a44399b7057661853df760d1f3c68743956749bd2d080039e7362be6938409cc845ccd3ada23db8b6101c941e716583f949a539583079c81b5c02507f1075717b8b43c2de288938aa7afb943c5af746b0664c67510b9ea25c15fe8c25ee5194e7c640512b61e5394784a93e498720c2cc941da01befa9e32813cc6654a082476e422205fa5a295a5a94f7027d95500c2484cfb88af84257e6d962d5866c1d9969d0a35cffc20a3e1ab82ce804664c6cb93308d0fb061a52912cffc61e2b16228933e7d6b354a2c6ccc54368881a7bfa1cf9b053f19a8b678158806952f6c375669006bfe41c5cd9867a4817407734910a07fb823cb7e6b98aa089305e8771d9b9c87c793311c8ea631272ef1910de6947c28a5052532e7b63e5d61974eac9e83d85e711c2ac5a0816ae274e2a60f7aca1bb069a578bc2180b8734f70346c1787e0182d3957caa0f61e57489cc0e07995307bdee20aab32229ee05d9423b4b54541cf5c4959f00a37acb67a28b40b91bbdee87880e74d7ffb256dd098ac121fd5c3116827802116784a0a79a369bd680c1dbd999ccdbb38309928e626433f56acc67041aa705f1cbc7c4e9ba362ba68dda40f38899c6610b703612fdbb845adc37c51057241c7045e86433a2109f2461f14837a8a3b9509b03549722d41a137854201f1894e46d73682301413eb9f81421022dc7cb58a84e928b36db75629a23f45377447504a72444acafc6048c7572c3180afc2643f225bef36273f97450a20c0bf71685e1180620859a3b635d20593f71c059633725ab999cc994cee209eca47595be66c425a5666960c4ea67752bc3136727b49d75b7f8bcda6d35b22595bd704a4fce50e34fbae4b3b9d2085b2eea695aa787e0632020c881588bcbc93a43439cb79b0ac676acb9d3f9139c1c4b837c59b08265cf5f610e9a54467a77549dcc3da55c980614be843aa4c1a5eafe2307f5710244637570106e0e0139ef47f4116529a578fc4db5b36e1648f541676323e8ad99885bb2ad024ce60069ba3673c1cfc055acb9eefb5ceb35a484bfa207450ccb627006e22982c5ac38d7c078eb522064b115a1c1175512afe789888a9a87f634f5e5863194787f0895776f1618dcb712c975f8aa885d3db7b6eb9978e15a38e155972a1c92057cc4ca478080a678f7a0c6da94a60f9a6199b4e2009c352d057a2f89ea24b104eb519a7447201e42475a88349a371daa038431134fff062c1054f9ee4cc0eb97402c0444c991bc748a032d052e7a151d119a4fd8b08f1c2719ae74a71f257cb0aabc29840b95365f47142d5a19b6b000919e511c07b29a4d39df01a8406862e2078a20344132f5331b6116f9c02984923b168d6a66f6125b08b34affacbd8348387572e8d1171e64a6ff0e49ea7da281f6cb5bc5480d9a9606b9b650fe451d592567be70232d2c8e18a123152b7fd904f3e75be481401ea77c5bdd0c872962c04e0227538316a9b310fdc6a2e720a2c41c3c6709e12acbc66680e1bf95c6353098b69545f076d645a77868a9e0f711de5b0811d0b1bb41cbc0e73908abc9f2a855f80079e9bd7c00a685dbc6c13b0050a29f483f9e24b8db3a1138c91bc833b6336ad3bc982ccc74672f60376f5bef066c7a3a335d0a3105a3a8812329671946c1e95891a46776c003e95d41eaab40f0bc7bcf632ae614acb883a59e056aa25b20836e1120cd85721c7051a480d6eb41964ab242f9a6af68634df846981e0999b99249967c1f4883a303b7e4dc239ca9a97f1b9843116a2b981bf72955fb2906b4f51869c933d98f6792fde068f211ff67ab74487c53baa7a92d6b5f4e707e4780f87c38d43c69d2c04794bd20a55b0bc15ad636c4de26ecc3a94484cd221df27c3fc9f1e7d73d44ecc0715e998611f3af8f7e5238f6383033842d4edf747fed8f24c13171413 +ciphertext: 7fa22cceb79756ad5eac533580ff041373fd909b0677668e453e7dfbec746cbfb654177ad71890f220e472d9b09f15efd19f489bc6b2f1ddf0a5910291285002d11b237e213e0d4a049f733096a3f7c9716cbd149a58a0983f509bc1f032f4253bfbb40b3158947c +result: fail +shared_secret: + +# Ciphertext too short +private_key: b7517bd817baff981528366a6a69956b22a9c12389eca88e903915169b75f8078b72c4c688a3bdaef438495359542aa76b3b027526391e141ff00cbaf790cc1c41a16adb2c99407d759c936c823859f6c8985b8cfba3cf5ec7194534a22a4c3a66c7c12218760309c1dcf1ab6569ca007c68dd70cb0935ae79249ddbcb721e371d280b1bff729bd34b7182f4ac365174cd940575e140dd30176e739678972311cc8477f92187b0095bd22f1ad687167962c58473c6816eb845a16c3b716152ae4301c18fe85797104d8e019e11976f0c3a14cea69932c9569dd8884f075a188c245ed1154d105441d74485069617008b76836142eb0eb52c02a2c18e9e9215b71143c3d530ec787b264243886982ae6aa128d68f4e5900a9dbb15e2189daa177bf4601cbdc4bbae7439d72ba2fa9bdbdd57ebadc91c30783d883a1d6477d48319b0f8722e5809a04da62dca28a7ab2511c76699dd553009434bec779a9518fdb8815527bcf4142a763f916480ccc812b81fb98a56aa97181568bd694bf975b2f2069caaf935a138987cb23c4c8923540db63db252995c806156c3903613930eb3c8e2191b69781142157d7a25c77bb1b6d8c4b1723772772ac0ab589c3d0498d097cc47991caeb734b6b59a380235bd7790c858009648435b86c2ac99b648220ad63701721733525a70ba892d0d1892879a7447bae21d8aff33bc28142678cc2c63b20004f126ba2804ca4e59bc7b567dd9bb0483b052008b524a209028233b8e3a223774158429d6e3744ac3b924c048b37d70d61b65f2f4b5eb2f79520660f1e3008ab6b0fe7d25bfd203c65f8133d1a287d47523ec66cf501cc84969b4e602d3677ac713b2e9f054241b6b7f67ab4fa9cbd421819baa6573db3184867a9ebac6b3c054483a8b0ac435e3a6a25f2f0b76dda203cfcacfe28abe72433b2ba812d4c673ba0324f564ae2a95cc2432ec8303c12149eed345b3851cd60980a68db2168a5703e561bff6805601506b7e88090f864a370650af9547084405c329a03ab0eacb0401d4b90f84216db8a19daf580dcbc0762d78ce098a99f28223cf77079a7b107f4ca6e660ffc8761925b7119bb86ce987891b39cc4443c5e4040dff7111f3a1586cb5658722257d2c14b7a56e16b3496945c4511a1f19a84d2815f8f19868596ab9df54a09437d53713e84fb76cf0c1a56368ef3923082e408c24a0b0c84946574944a48a3fbc5a587a096e2e727439ab0c4d4b8c15036fe8025703101e3f6cad409c76394612137169ecb8a7c7a0abaf5a5f0653d76e40be4da5548fc8553498475905cb7ebcb66c96da7bab8336511bf06082087ca3510803663ba3892116a4594138a24b631351ef5b6fc3b43b3d3215448bd2d59972de1826919480c653100a013178b7d24e473724ab631485b9ef0553d6a6db802cc9ae32b114992977cb800109dafa99c7287574a102f5b4028527c6d54209da88690bdd343e7301ca9c4b9592bb1a7f61e3e95115ce3500ffba825e9372c1846ee135c7fe426e700797fac66c518212148a017020d4d3a730eb91664929a441c994e1b284f3a32196b26c4aab59c02c513d83955955708d75cc62cb276f5bf4e314375a4c340468cc77c73c3fc2c62176c18422be4365f43441914b72733272321dac9784c9c61266f8b643f2892b36b83a3a26789c91566af124367a79e6ae50938dc3daf050f5ee5c978f456075a866de441df0c3ccb7a18c47ab024a82189f02c612c1758a87b8675c0319347a88b39743625bf97a43264069c28365c88579ceba527d38092b916f661c25b7158c1499a94295c5a7a0205d12fb9759b4e276a25458eb09c08c828cc06389449e53d5224c8b1a38af5d3690c5976f5231275d5791313ca50bc85ed0993f2563eda704910cc683745abcc09b5fde1c8c3210dddb73ce6a4ccf5929d78e7248375b4209013cc13bb1a32bdbd3ba63449c4f3f18d9a804e14f83c10a63223b932aed671d2b98c987266bf26b4a023023c98a3d3db57807242475659ebf06f23c921b899083c6725bf843b2a1c5e38bc6e82fbc6eee958b3fb13a8da7aaf670d2292caecd6881e16c021ec43324597051c9c77a411ab0005d83b6624846f9e735f0eea7508383fbd941e99f22ce13c2a82960a1c63961be12c3d96c6179b3ca6632fabfbce5a067d4ad01c599bc7614c0cc3650f0d64684a9383be62728363b614ec39b81a899d8503592698c98ac6416883f4b68da982790e4c79f7d3c6765064c69a1c8c91863ff06b72c06ad0870e884ab1cd070acc266b3487864e1267ffc8b7b0022d7f76652136b04b553b3e1a95496081e4f05d8ab53ce771b76684bba5a630eeba39d9386a1458049683ba9922967f897e2869babf750fe264bf7633a3926b5b01f6156f0a5c78328c6aab546ac4983bf4b05556665a3c7b19cc3d0ef34f65b3bb043b5cb594605701364dda6b1982b04ef36509a4cde57214ab359a37bb134ba967091a81b8e969e493ade401407061a38b99a6a0d41782d3aac24b17d5498e2bd1b09c86811ac888416750bc7a94a783b1b637b1684cc6e7fb46f0269755b4457700ce8f0250e5796ba16cca12116cddb2c02e9075e94470b4e410fd3ccfb030744838840f7202510c62e4da058bd6043a06b1512cb142f2c2246672e5da970cda6a4d421780a22e58bb059dd3afb235c2c9f279b13cc6f352c3fbc0470c90a412469e5c5ba84db80cf9c03a4120baec9cc65041cadba42dfd33cf62139dd47a9c53f0c4eeba075b206faf048a26d65067e12b4c06aa64370cacd4346cb7b959eab916fbca233a1293627e849c8b855660f69427b9f065e789c64dd28005189ddac16a2f0456aaf5891727bafde2325594bf5f81a301d20192536dc3e482eb37a395890cabd25a56d2ab4534b8e18ab0c8c1c1944b37175abfecf285aba29be69a3bcafaabcddab4b54cad721acfa4674c5212253515649da40c6a9a92aba2338e26786dc259788b05d9f5a58d115afa929d1924788ab74fcbb5b8a07764eca76cb9187b2f51aa10cc7b4549bb6aa876356a94410574c41a1688c926916475521c7c7238aa82b9176abc84e99278fcc9593871c24a659559ba915d01938b5cbf9b501d86c9af20e2b02f826ce0ac62edf767e03b6a4c5858acd98d08e64f0becadce50ca097c59f5a6857e0a738d574a9b468eedc984779797c3573670316813c2a994c5b6a41aa8cf85750cf13e7c746fea094a7a7200bce1d1e557bc084f8dacc364926385d966ed71939f118331559d56e63a72de86bb0dfec804461bc8adb2dae0fd6318a9da9f674c9b47e86f3f66cc5d7c450105316a4893db60d390c59ab679dbd10e3cdbe4268d649f40d432cd35d8c2 +ciphertext: 393c9377e58598b01344defdfcf73e6860614816b0e76cc36182c6934bd346b3c1ed18276bbeb5febfe4c2e749b036799bef518b41584c69fa4bebf2f327c2d59701acc02537328c5c1480fed6dcbbd392d61be4c5335514e19063b734792bec54752f1b7db08103a40d47e95e67842bf94038abd539f5c5260ad9a77f46f0f6b8f684bb0e1d67ba8aaaec7362ca9abbd27ff0d3d0973abf297a8f72f2024b2f4a1ef6fd1b5e821adc5e663595d431a8538a29caef9297e99dc6b9b4e029053219160281ae450a93dbde54c6d7d90206b1eaf673704ef2b054fff2d0384267feb2a2d5e3a9d365e34b27dea8054793725f0b89f00b1a42db6274a3797e051689a9c14faac8343ac154cdcba987935d79f99fdbf3bbf17f24f546fdd4a542c9ecba0b70e63070dc81df6275ab66fa6c421bb30c4cf9774b776f11fe038df70be62403ff3c2c3f107c38b593e2382dc7954319448afbff7a4c7f9b3dcb02dc1bc57d1d6a107fa9a4f628c596a409bb8b05e5b6404cbdcaae452cf536868dbc2e2821a1fc510228b80feb98c3508ef64b3cca80a435c6e3b8a21a8f85926773afaf3f7a66b0c1ce913f48ac5bccb0e0e1d0c01b840bced4d1be33a865e403bf993ceab8605fabd57d2217d70cc75e36a6d5d9c2ccb0db2e4d25d06f2a62e9bc385768a704e2e766cbabca78c478c7c5b046d64dfb1084d8eaf7a30c91517f1598467ed3eca0dd899c084db31823a4c451f8da2c0a56a00ae822da2f1780442bea11ca6665cbc9766198d15cdc8280a240756ddb5088bb181a69705bca8abe02d0ec521e3cef87bbeb9ba63399137f17de1deb8b5175bd114fcb48d3f0a818b7b078dd9e98dc7f1ec791e5a27df367fa7c19f16e60559824cdb8787fd81c67dc90f4835dad4abdddd222d36a9a6f03a475900886692f4b93afc7adabaf1ef7335cd9a04489ca74fab1446b85494a5c49c882b6cd4b69408798e202ca5f7d0e45 +result: fail +shared_secret: + +# Private key too long +private_key: c46450723b1c2a293dc7783a9f81b13729bd9c68c0855a2b391788f48ba3df318952231c94170bd91204ddb4accd4169c2b0bf5791c0e4a039486536e977afa8c7cc02c1b3c4a19d53facd9cf89ab44534db37ae3f76951cc4acd2c52c84c443486b9281c5b92f5c528366235416436a16b2fbd99066a2c8607050dbea1fe9c3b97ce967c431391ca22a61358248230aec63a41ae4a2388b51e95a4b60617712d1768f477b82f3ca3f25bcbc713e320203e2bc685d4331b76b0cfe5497d00b6aed242d2b93587d411129686e4ec5766e3b03fec6548f088e958b6b20899ea0aa2f3b0c502a00459fb9bd26e13011342122532959331fbde54e792c4286a5a1e52b97913b01d146045b4790d2f7c2a2b890fb57b6f9c1987baa2e9d51aeb9f87939dcc0d026c33cf6590ef48d8a76859fe62bb79337bcc2574b61578841892b42c918b513e8bb8bf8977385f6b2b90b44dafaba0e0459052c27fceb63398676a03300ec092745d532791066d45c0c5f4b2d918b73bf751b33ec6f9cb589fa37bafe42343a7710d192a54fe0a63b71c5c3aa5b0a17a6170b49228b15e6f2b46c79af110215079040748a876b449a1d9a59018988e9e254d9b7164f3bb2b87072519c712061b21a132b5eb4cd5e617ff201810eb84ca33331d037b714c72686057c0c066c7cd249e5b079581cb9c1ea4ffc523d14d6ce38449df9943f3ec82814745aaea81c1e374261a08be727c5ac9981ad841956e9b7cd14c2affab6464cbf6e5c0f29f21b11a37fd79024fb1bc9c1d375e5639ba5c50792a46880527eaad85ef3b709a0c15f15484d23302586807b00f6823043be4cd95ab30c52ce34412f15afcf249af6a1bb34568c1c91aec4f843bcb7bf6420af002aaee06a9854e9858b769bdb21aba3d152b3d5c1bc696ad556abb78706a137a7a70829e58c7ebe5c5cec429f7855897904360bb76241e5c16e917a2c3ac4cb1a7a7627ca45f908df2c2d19ca98f5b5b830d11e4338470ed53c1fcac0d558430b3693f0896c1adc36f3e44cf1e2345cfa8032f70b82f22852807342180d16c54f22114f9834555078bd537667ce9893bd762061d33f705912966c71d46574eb49008673256463c51920a9e37876220631f99338baf3bb530ccecceaa54ca3543ac720fef68e09333630f181d9da264577b2f8a76f4c7125c5265730e5153595916ef77932ca9d1136766dd15b2f307c7dba365458a4eba73996c391f0d77fcc27554aa55de338202db8ac41ec36f26664be6a0b84817979f800660704a9b08c54267fbcb4c1c2d25cb0d786dc57098143c287a5c23ed253ed5745387c0b3bc24349445833704024325889c9551342018332bfa14ab214a640ac830a07ec7ddd61001fd6878e1c04a80101b788933d391cc1553052e558165a6f5c498f2c067012bb43abe3a5c182a6fdd478e60516473777dc99c742d68bf0fc9232687470d0a39663a17cd7b259bacfacaaa9e8da455ae7a9f4206b6fd2948efa7cccb33ae85378eab5cc58727494e368d61c3ec845947577383ec5c5c0bb21791b064e0204e3f85c1b5728fecb6f61a66e10ba0f3a007a0ddcae16ab9958b07e3a021a32455e35505d06395f17d432d13b77d6ab58f6888a09322eeaa44292fa94ee5559d10a7c53947a22830e650c0897386df3a03d6f0313c9e94ef1360f03647e9556cfbf87c0158c7b655587b8929673c352d730205a59994348ad985a0249325e54565172c9c452b0a1e5db5143d69107142ed102993979262ab280a3e6ad43dcb0c14ac09a632d14602cbc38a9587c153a13b8c7994d2a7a7fa0632e723914bbe31d42f1b6bb2499457455a619c8b203cc17854de00573876737b14ab796259586431e8ceb529722bd06e21767b2a9e8a9a5c3e8484f8879ff219d1098089987857bd526a093a7f412469157098c00396e983d82e9ce92e6cf4650b3bd22ba985445d18bc5e4b836d7f5798a4ccdbed04a1e4888658b5c1424c1b968ab7a2b67d6f887968207d4d254d1b8ab8102502a9b0a3ac349de1c604d6424daa01bc0e69ade45c82405bf1bb49326073edd8b12386485e99943c1fa14bbc42852f4b9e0b31d9f05aaf067718ff37cb36b971b2a6d353b3d5ac37b37c224ffc88df2b44f0fb68cbad3847bb50e2bf1556533c4be0c8637a50f69933fcf61a69f34bbc3cb8174b577066447808aa9d95b5abe6356b622094561a617bc153fe0abef4793451623f4abc49b504dcb52c8a881357d53257b2452b5f8585498b281ba765903368be0973d511e1370639e75872a1050f8a5b4e9e095f3ca7c0d7acb9691621d0a9464b056b2160e061159f63ab4474c2edb67890405019c80ce4b94bef0349f575568c4e171b5cc0cd784cad0697ba7370dd77a00549c4f20091c2f3b6c4d90681cc30d73ab6b0dba661938ba3a067d7d70641d036a7ec94d61817baff62e8f225023dba7c8797e9963bdb0f9cc46c292bf148fbbda871551a116f781db3612edbc8bb0e63d91b9496f691cf080bb0fb027e63218f8fc49753aa6466bc33c3347273a06bc6005ea799d404b626ff9a35b034ad78a0f032a4977243e1d8839e13879dd78bcf8a42ab1a4c9a95924d9f58298f7ad891b9be151a41d7020beabbfb613bfa279c14676ba8e04cbd1f0cc80e344245a125e638847877b913cb6d8f0a0a6c74c7427601aa6251c77c5a82171567247914135db657bba29a6d65914b3a8b8ddb549f7750e8e03c5b01046e76b2382c1830e3360d4246ef9673d2625117da1824ec995775987efd56f927c67d2f775a2022f43206a12cb02b0cb508538bbb32054ed613a01d4198029b06c8bc4de11abe5aa1a4d73ace4395a98f630487b83f1f0ccd0da1829918924c653451531f97a8beb8c5b792436e67a3c84d544695c2e98490de6d458aabc38f1934cdca1086ab843bb2aa35bd3027b625229927019f23f9bfb77e4eac152e064c9b7c07647a032f99e59e79dda921b7bf652b578702394c10870caa7915f0d98313e1c32dfbabab0c60be894458c1619373889642cadc347b2e35b9735b36616250d4206a7e38c51279b5809f8cbc14212c3f5aa21243b6d85806b8cbc5ae87003ac283e4715328bbafa3c6dcee95f6716923bac8891c493aff594d1ba7bc51a1d19d26bd37b633337779c01ca087c88cf58b080a82b76d4a255905e926bb45a5c3dae700e25833a627606c75cc7145a5728597f9d07b0192b05e4103db4e2cbd59bf77b696cc177b29604c61b33cd4266b021abd8338a99af37f35c5387a6dd555a6d355279622ff5f78bcf8eade1d130bdc4549cae4b98dbc533bb287846bb4d7df0510a1fa29fc1f84ee51f36c2b9ef4c4b9922c0f2fa048e4a0e799cb5ae7111bbc2466b6f0289e2 +ciphertext: 17680d0ed196554d94b4f6b0955a4e9fa8084e39eb1a23fa1e36a28677e6c5ac12185fad84e3ba740b53c902c7da4c4159a444a8ac05a0e5ecccb207a691e30e6cb013ff513f17031a036d013c7abf43d4848464bfc56f51eeb3ddd05116294bc20df43b76bc255e722d804e029069fcb160d7791312d468ee9b1589b0d2051ae92f4f0953e989cd75839388f494c576e59d0a53b9920bcc59b9479eaae93ab2aa0cb64c33316e9311b389480520a0a3b242120e318e36512ad71363c198cadb7c2362eea4765e4ec1de2d60441fbcd2fd145ee8e14219a2000b1bba5d33cca88de2be96d9bb9160901ac37f4d35ee8d5da312ede8d99eb4d32e93cbdf4cda405aaea562d9ba7d578aa0511d00824594b5688754db24ef829870b1de02157b693905492c80b46ce38a8f05da74bbea4a5d99065b5628be2471097153cdc9d0bc24fcda546c9b4cd805ed2e8be49094c93ee4bee777e8f803877345234497edbd454d301d099a4f2cb93d1fff64b5132e7fd30b2460ccc09d2aad5f3c080e1b6d359626646711cba9620f2e9bb98dc378968b69f6c6a790198efe0e9b7d7cd024ee40d4bfd63e479fca4d7931eecb097af053c9bd8000e8c02846afccde63c155c91b91d0f46d05ae77a8c4899068ab451630027e9562d9ee236f8d8491448923ee11f8c2e2d4cd936ec261e44f86ee9aaaaf2ca76bf8059708dc8378c5967728bc4d3364fa02b6f07967a9aaf5c6609887143dae1c97708f7699b217af2d75e8a11adce10047d2f828ca6358dfcf86ab48afc3dd2444d99cb1e8e0f98964dcf506842b1e2834135646ec98ba4f9ddfca94d3cc378362def0006972785502c05e8aaecaa211e92ada98bb11f2a5a901de9f7c3df358c1751528baa905b507e3c8b64d750a970cf0fb42f59adaec1e4dfdc5b0dfdecb36e83e7869059b695739756034aa51e639f030a8712b416739150f6222af572698f00c4396de5b7ca93ce019aee7988821ec83bcecfbdc58014a463262b9f6888cbac367b03101c7e172cd9b6488d5f77ebcee00510d8d3c5d4bc7c26673f46ecd61fab3d4db2639d37cf3b0ca27f43a77f01a1551240419577225ed6dcddb409747f1561a1435d53fbbe39ac4f49befcd27f306c8df6ff0a4ba552efaea449e01e661cf08a88671df57b6ffa9fc6eafa4c88e3d98b2941871553e47292b8a187c70c6a2e75773130c2bbf5e16d73bc4caece7fd83179a3c99de2685c84b53d216b71e8dfcb889d0d1cea5570aeb984e6961699361794ea6d441d10f6e18c85d9b97ec009a6a8707dab118d56e319f7c6e4a17f2086646cfb1341c4b758146f6276de439845fd8e6677555000307ea364a4a1500d44eff98dc91210007ba6ce01d9b3a9846a6e5edd74fcac30ba4c4c244957ea3e2a956691a4242fd9423084191ac71fb06afc6443da82604cf2b77087b34dc42e36b72e360f1b9f36261eafd8c7b517a5ab20a34605e12f4e7a320522345f4d4d703427e60d1b63e1f576fc11e8dc8cf4c705e5274a87a +result: fail +shared_secret: + +# Private key too long +private_key: 0cc1c61ba3aa0fbb09e574014ca97df7e4416a759d76dab232082cb433c60fc97add814497ea9382898dc6b93ac1272e11e2414013bb5fbbc9b1975fd1e40a1b8501bd919856b40d99d6ae1a301121520e90a42eb3b5c6ea7b6f0487b14030239b99bb14367bc4e7743054aeb1a839483baec15bb6dc220db54b2423b6a425323adb9a1deffc29e9c34457a593ed381ba40a2f7a0c0425769a18b303625807142c098691165bb1ca02158b953a396873809d7a1ffce4c6a5f5c4488b7c28e8182ce07358811bf6686d078b7424a7c3848b5e39a3b1ec1119eec9040ef70330855753f21f9430c872705a5d22313343256c16037e4c25c5f071245c0a1826322ea1c59dc3a2316b6deff9cb304ab0bfa3bacd6219921306fca7c1ac808cf17c15ae16cc0b46b6cf57108b3b5881189ee96a5e39481ce1bb992d984cbb213a266850d10244f65a12df471df1cb0f6b6c06cf492b54fc6320413cd5d4cbfad0a709e9753ad06b28fb51662839fcb22d45e5b7dc2bb8a3562711d4cacac5c39b030d83f46b22a76ea383658143ae23ac8f897342692aaf4b8497fbea9a1e7b93b73975bb7c9c81042c5045bd2a8a0b7ef2b429a59d8e18a98b473256370a31944d6dc8187be2788db1494d791d916690ed746693641252daa82248bfc3188b9a4c92e099557e242b3b39841be012f2e09bc5eb9421875991f792b851a111839bd58ccf69319353b57789575b2de625fdf4680e95208c31bfd4c42f497b8ceaa18cc855a356e93dbcaa79c3891c24906420285917a73f8be798123c2e2d9890d9772a33d2bed641ad43dbcc8f9b47f15567cdd11cd36ba0ac1071b375183133019bbb8169f6077ad21ee11699ece142aaac57195220cc85244d47987a46600c77aefa6c6c60c29e4318544be2530f57cf05a44d366924d788bb88279472a99a9b93a2ad02b9760a8399d4ac17816072dc060084b0d243acea68c18cd115c7f77f19243d43865c3321c77a8982f16ac5e5404749004dfee959de8a1502283a50c88d0d5b75c6b8448443c3af2baf788a6d55c368ef57370c69c4f31846f809af182b8a112c9bfa2211c11b18e91a3d8c9363e779a28b25b7f368158ee29c69b96e361a61f35b021a183abefa78efc330449764996b3ca047a9ed8c273be7a96232aad975a6e8f20ceb157c3f53a324b76758ac9b84b70fcda9b2514885b972c223a434d80567d0a0c82c1767f6550daa566d60c7c250c01782a237b0d4781560b866dc2f3c9851c067bb7dd981d9a03fe0178e85270a76637450f59ed5920855c10aeb36c8c5fc61aef323c183767160a02832b9f7bb71c797604b5635debc74910a555753cc37b180d55014797a0a5c0c5fab3150e54b72569302b85c0537b71575205685f966cfdc631650cdc757c4865757e98911ec56838eaa8f4ab04f4ae8091b9a5699624c03d71ef7484af79c6829353b3337cefde7563a9a49aee4812d158e2c88556a4580855c4cc24c2632a361d74ab05fd7415e452f9b6944800591e791725f6a3565482cc3a3045f211ccf0bb0923370c9a6623519817302584dc5693d033114c13125011f5125118e6669bb8834ab0165e4cc82a79ca3de77171021628d56a4afd54bd0f54896047a9874513109ad9bb0ac08f429db211cbb83900c65778cd19d8e029fae74cebdeb07125502b5393fb798060d310db320994d530eb3bc590c8a0e983a2c2805666f6b71c52c96b8d70d18630ea53c644ba0802ea3bda814200e28a6141b40be14a57ce23fc9ea7ad5320518803a3b781ca3038930a45927d69b9fe75c06a985bc4b0b1e0848cc4a107681b78de95700b76415eb6a15ca05537ac59ae55e1b4bc9e7ea386957b028dc4a9fc8c955c7087eeb8e6620ca110c98f2e411407cb0b0c2320f79436c7c5741d7a81f808f77b9c9ced2b81b260abb849696d82f22f93c234b64cf5817c3ac483cf53f051b1e661c7292d19bd8a15385295561a979664b4037139d58c163fa9789668c556c4994b21064992b099b899a1ea2b83cb90a31b5974967a79b222cb53b32c8a85120e30c72a106b69b1d39c5b5fdf4bd8e70cb03abadcd42411db26568c9bc09fb854937297c0a17b8f25330375a6e588579daa71ff9982150cb58c88c70c21bb084b45c2762a53604dcca0e8a185a6ed39896281212f25b0ae50205178b1a60394bc72e04294bc873a6e9989eec065685a8263591a5b1e46fba4789721c25f4cc08f4aa8c30f20047f286fae16c22096338494e75f17b5752b8d7163943086053f5c5931631e575ad6169cd774cb63e78a79cbb4f28709fd7886af08c222c94503b273ac5aa0f51c1becbe62079b83e4903a14a5239f948546523b3b4ab7083571df235a369c628b38a54f62832f53412e52568f0d23af6b4877a164923e22d420287d4b20255f45e56b8afd4b059dacb271ba0a5e2d2543a638ceacccca60c0d8cc25c8ea97fd6ca5960f0bc2a0a5bde7c403545537f7b7f7d43b4d7a618e3e97940948c0a21184af29ac68a89ea971b1fb898398767ccfb572323acf4c57609b0601d9043fc1a164a4515e8b56cc0f31f908666472a00c4ca2f647baa1feb0df5a1348496706d28736e48cad27c3284c74245137a361549a503559ff04a5d2856b023095a9068fc24612b8872d3c4c3748ab1295b07d42598ccac5928ecbf6c01b806acbc6d8714d728c7f5475807938bc9e2694cbc0ca625c4f8f3ac258646ed971a403a3747d47550d3a02dd243a2f9004798c65a398962868f35f81fd4ab8ec18864d2759e6ef436166515efd738398523998698f04a2084a53aefc00396269ccd31c65ff59dca22b5a2422e79e24cb0973c41843095a78a94263235b8c52008864babcd77c4635cc36d33fa2ca951c713fb6ce9d4ad003c76a28757a1829177394c6439cafd9003f7ac02da9c91950c23e1999bffdc7e4ee35fa787a461850a4c06b7ed903780a6a185a40355a39b9e1cc49f069ba238049ba867c09584a6d1cd1ac57533d01376537f28fab46efc00727580a74b1eb8b89afe1062fc648e24f92f7a9774ba03607849c3f2c9a44620af26d746ad2485b1c86961dca0d960742b4aa7210b6d264c982b0090ad2c74bc19c308ebcda01226f6ca9180bc58aab01bef6b743bc2cbba1904a84677b4537028246eb0c61aa7d4ca238065abb99e5ee0ab1cc429c2f64f5e2b9bd3da2c6f145f1749015a53ce41b633717a3d718a5ad6616b5b736c27155c7dbdb1316f231bf164ea9f06b3250b9aea6506300c65d006b5524a3d2b61abfabe9625cee8bb624e907e65f5879ab1459a275f2d9e924f014d5cf7f79d8a46b73f256d19beabc074728e12fb1fdf0973e31cee5b79b48855c1951cd3813999801753b8fbd824565da62b7d81165eea69fbbdaa31f88c +ciphertext: 7fa51bcce66b2fa2453a5725e917ebb7e6041772fd23a777651c28e89df63d5628daa2e1e438fc9d29601dea612f34811b884b6c3c97e8976953228588cfdf8aec123aad5062d4a859d19cb2f632eb92414bc8944c02e41c9de410d20d627071d9205cd2b011425c78cec26d7eaa53c1f54c454a331f325b4d70560a80b73a8075e21cbf87aa5732e072b10b6cd5cd94e0a4c401934a6774f64d5d6cffef023f42f9e578ba34df63859d9f911f6e92318d29cabf704f1ae17a5d21c9ef6a7e8d8590045c7c41dc515c625fb31cdea7a9bb1960b0713c21b89e2a8978a8704d4fa519b5d415e2c544725bf502ebed2ec4b5b8f320f39e14eccc6fb31a5252d7aaadd68b6dcffa29e22c2548865d2042d5c7b79fb7b009ea6dadbaaf03dfbffd7077f3edeee1b06ddb8b61d37fa662b147f72c74e75e31633a960eb5187fe0ed277822691363285f5e8512907e8ad5be6c0679d48af6453cd5b68e8a53efdac1a3397e01f7880cac5db9dc5dbe0c195d2cac8e8efeefe7afb04ffb5dfd93639f2b17173d08e95faeccb8cfaf97520adb0daa25f0a0152037159594017e32287395cd3f4f10a3691cf4a6a5d0faf0e6f08a3b1e1897d282b1d07a690b2eb5d20f2d039c23bb901d6d6c2bbb1ab33116625b682280f3a46bc300a58dda7bc82e738a98a113cba82a9927cabc16ef49276648e58b4d4551fb8020fd16a9c08dae03fa28351b5bf782ddf641663343f38bb68c06e1c4024be5342a04dd0bab9a32493b89b610ef4b87717278fbddcacb90d7a8606a3666d68729b6a757a08cdd981ab50820c0021ee5eba5704ed0df25451e1458020078d8fcf05300a5d0e9dd883a6554a2a40a0035bff4e9c460642a73ff44808fd0595e2e054b380586df8246cbc62d2df0d0447a455d594b5cb0acccbaac097f4a9af43d8b8a45575eadcad14165e420892f254e45000311296183f90765d1a83bb71537e27088d0031717ec5accc29d0df0c08c0a787d57273e7ac8e4c21314c4c466e32edc2dce92bb03066958a28719cfad1daefbdc5784b9c0cd57fb1f4924bb03341dd4648d6700e5d14d791dc64684a8e2f31a8fe2c485e70d04067715c870ed6f201a546a6d9d254682ab8132c1dab0d22e2656497d428a0b63814237327bb8bc81f470a15a594df064bafd919676e0b92afd7fc8a288d8bd91e28b86112642c0be6d487d3055383552139d67ba9777482979e3960a187d97fa36513416f03b2191cb12c011bc46bb513fd43bf3bc9e04b560bb9683d9fe5cf3239a5691da548adc84287700a52bf910b570ba5d56ad96f11c2df7fda7cfa07119ed65dc4dda1a01b797a455b6ad2c9481a79a25c9327e7eed218eb96ca60ecb46252e05288981d8beb3f67e1f0cb1dc5f86c3bf04e5f13efacd5876137d986af6084ad752ac8e02e5cc674ba93f60847bb56bd879cdd86e2dce6bc01b4435d688f67173809e231c3255f383d031a9ce53a0003bb482b763123bfce23ddd65b0899d000d0009e3661ad8edd4447c9c926a +result: fail +shared_secret: + +# Private key too long +private_key: 472aa3dddab9f8377dca6495a321c3afe3608b01a7eae63bfb091045e9b0ef33989cea9af054bcd3b7961ec7b21f92bceb100511a42f264503bd885286474f74f47723ea2e878cafef0879af17c296d18827f08357fb27d6a45ccd404f25e82874410038049431053630219823b27fd77524e40148d518b6adbc39c21ba5f0644510d078abbbc725cac510a3b17b2801bbb220c79602c763623a6c0c69d70fc2d05e70b898d8f8862c576fe74c2857a4acfe655a9993a984260ce4faa3bfdc36d4b1458bc1bc33c2a95f545d0b318eed72310ebc57ca2c393484aece8b0fbd99828e2025ec592b3427b212650ed7e07388769630927b8d6b674c4aa013a0b7bf43157032ca478c3c7a1c1e5ea106de8a226eba6fc52a53770b0d79a8b861dc54219597189b8f30b154bc749db784a0c91caddec80273c93d33a9b2a3e4778050b0aa9430e8076d8a7958dca88a44e0111bb006345102c668c7dd35c6444a9cdab91d5161647498355c17328a7a1721e4957232b82226b29a735315585690820ee8377a4fe877d02655a0f59aa7e9337ae97e313b242ce23c59531e5dfca74c9167c32bc973d66aaa645dcfe6a058218ab508838b46537fe822f7d036773a757ea4b4f9d5179501a6ee31434f31c499f36cf34bc0f6728a28146bd5b9b665bacbbfa8751f0275782a897e9ca48126c0ea1a950e3bb9eebb8397da3168e75218f97f8e2b0a86a68adedac733138c7de4c8a1609b49bb7cf9aa06c6f98f0294136bc1682233639c969ad3641ddac94bd270614da96aabb1b20c35631822c8f6c6374e9052b7434c7b2949af840f90d6854b90158c59727c6b815a2b0085772b9f72098edb2383e2074381cca1ba285db45b47345fb2051958e90827492a1ee98f5c479d4201cb609b3fdf033eeaa0762ddaca1c270d860128cff146297b14825a404c092260103998d622a40c5cb37519bf533f18946c830c36505bcc163cce505ac2f4ccbfa0a9600cd7c5f7382a9227a94055b8b012179a4633a6399c1bf737305c01e0e3cd76abab5c70c9a8071db42487a31285c38c5e46038c802498d14946c75148a1d631bee349b81b9f68eb50930aba4c65a688652403f125aca3bcb7ba66dedbab21475a7189a967684361420712a2827f7988b9640768d45aeab9cbe4d5415cc9310b946aff2814ebd98f75999d062228c8758666f68287f773e5548e0f845d8cc13a49341aa3cabc65b901ad1898a04390a4796c349b9310c2cbdf2048639c5102d43863375710954db7d97b42320f91658caf665a4c0bbeb0cb9863a4c39e5535608347d0261599797e87274a7f140a3f639040ac7e72f5cd62b8817e2a77fe818fffacb7b167518407a60f180d96f2990fa88fdf86722d4a3f0c45ada388ae5963473c162cac5586cc36a7da945c2d042d426392739b7e1ea62f5b3cbf4f7a35a18b7e5448580023a6c8828b66216a33eb6b5c0a21bdb4ca7920536a83bc0fcb4279858a58215b93bc2ab1a25d3df18b3d7407d5d39cf1b0bf586736bafa8df397386366684a7001ebb18b8b0467e0f14b4a87adfcc75b8f471e536aa39d7298d2306158a87e89005d5ac8a4a6d0210a927c7a126aaada46491163916451ee2a1e156700e265b3a6c63905f9577ea59d574108f51b8ff392946d7a6e17ca06e9485f78908439bba4aca66ff697b532e23663ab988f25bef647391dcc02a5747902c104127168bc3a0d11b1ad794432438081ca3a42f0cc9f572c63e6734bc239627cb68f2d2009896b42880b0258f411fd377ea21792fdac62cc6c5f4fa28ce7541a40aa7bf371b4dee939b09c9a6d272a77c3258272ca9ddb45396c1175b7c4b9a8c300468e07a30c93e50aae792e94ca6e8e27a6c092a6fcd183648a79b1409607d67e66a4ca64a89b3e6634c0b30ae71c4d3ea15345da7bf9f1a7f876427294cf45449628552e2024c28f38bb22e24be2090065002edfb78dce08055dabbf93d630673ca8a51c7ba62c5c0f25c21e5a3dff947504b09094f82312c7b9eaa469bd96344467713d6b1157f9b49cd054235421c212cf24fb15c141068d77cb2e0c9d77c1cb37325ef70c88930572ea38844ea33f0822acc268273a514be98a22ea5063528ba605259309a0c0385c6cb3d8bd468508b02abded183ce0e62267d72f24d73156b74805172e6a76396dd64bfac4cbe9096d482a8d0f519d0d200f21901787f902d1c5595a3a8dff419520749e429166f3f48164697d8fd32c7f82590d2babd5e34062356b7e18a6aa785e04c2a9ebd66b8e746a95124d45b143c7e8875ad6026520021bf2478a030bcb7125234377877b07eca6095b863096ca5f87dabe1f178171271d9249499246093fb6bbdc99aab5774e945b649d9b5e965c032bd88db623b45498807ca582bd91c039638fbfb080dd49120cdabcaf7280d1b3c85ce5c98f0a5b1f3494e7169e0854a941e3ca06e7719d749f29970ef78a986a024a2a0711cbe448945451d2c6493cdc0dd36172316800f2717e8a33a7c4c6ca0ea54b510aad09c225c41c285100753b709a6942c4cf4aa2a68b01c5155a1d24b9019894fb255b872a39d29609294a580d812d7ce1b077b926b596a4f0094cea2422eab1229be255617103c6b5b330eb77e705c155fa0b191b9ebf81c90fdcb3d152bbe8196878d6c8b9c66e95a5be6ab967613046e99a558046cbee8827c53988fd071dc8eaa4b6f98f3b906fda771b390caa396932dd8747acd731928a4570330aed2860be025966198e6c554fba1c8956306109c5af3a196d08f0625666c17cb800c579b8ca0b86308a2611ab601de06b2ed739e6e27161ec93afd0b3ef82a31b256b48e6856662a70f6112a1297b86b399fe4b52f6514eccf265a3137dcaa11286b8555c87196971a9afd8929543c123775a8d91cec8d7498df3cbfc7bada2b6b0f7749db1909812eb62e7a54d6fa46e99ca628fab4094101d50378d77f7a1b80b9e6cf102e2014bd0d51bffa2364f52b5c6c39da34343422badc8e81e474a29d4cb452c415cd94bacb25ac6ebc52d81084f88f5278f333dab8082cbd93a2ac7b84b246100eca0af96b9b6ea754ae35074182785b45b5350b935940a656675ec884a747210854940a5ac08148cbda23b7339616fced229c098c44f78b7b190524ec034b433b9d78c5026baa632633f4217407657a241132e2f6a8dcf066e71a2afaec8423fe0a04b403b8dea4cef3abab517b264131b8213b4e52588687d3d1195b171f75d20640b44d597320a4afba95722a895d950368fb22757b4271dcec084256a59f162846115a5eb582f070a88040cbabea78186da7396ffd939addb0ad3fae21e07e1ae91c5d95908e2a778806fc69ed8f7b6c07db39d8a24a476e37ed0f2d201ebb66ba71a27772a19a3783fbb16e346a4d4 +ciphertext: c7224cff9e05657edd50bece56b015a8d1ccb1e2dcc4bf51b4d3136f8674d289481b578334a8046003c85f06acf32d0b5cae4af5a4aa11d56825b704ef5dfd4801f8622f3d6a91b38983dfad5ee248b754ed533053e52157605cf2a0f5b80dccf1718e58d6b50195a9037da0c495d7ed6baedf912cba4e0f46e7b2ad4b2708f7b26de261c7906db9d552ee8d8cd6fd4e3ceb47a35ce1c669914593ee374ac0932cd1b5b8f60742ec17ef6953f7d69366affdc6d9901a24a9f81b22f9635b53a8141624f9f0cefb9ef0ab2da6123c0a81cabf322d7b1459a12a9aeb64de260a5aacd3d1a064a07df9c1806f67927484862cbd53c83d28de9f394059018c605fc9a24bdacee729d63a76538d061aab2bc723527d00c5eac85e0bae3c6da5f64d6a2d5d249e91a77f6748c9dde4289006e01bbd7b6943b6dc844e48f60b6cacdcacf324c466811151e214dd801deb517c4a9614ff7108a1eb5e52adbb1ebdc2b83c56056752590fbe442cd78bf13733e063754df73adeed48add5e9414cb2490ae2c0de0474b01c6a6b477eb852d379294d5ab4fb516cb140d1664e2d7463e01f28693c8c5e0cda384d673dbc8b09009623f4327fb3c2064b03f052025a59af9cd90b3f8b3d00732ae67e18186b9c0fb069d65f779495f93feef8c041885dc8806bcf1c32482e9e5be9ba385f297e904f8a54cd0bc7d5eae8ae3e6b4d53ad0ff4a5a6f5f9798bf7e6c4b17a9fc5b49a2ac489d9979238fcba9d7cd51da29baa929de384a26cc7fcfbc0333154a7a35e56a5a558b49541a8d53bcb5cdbd56664b0e50dd49c4727d786ce08597f9d73ae19a1ef7479394cc60bfec69f533845f6ec9d371bb1c806f19f708d11efb2f7bece174eee6ed85a9ceda4184910a8fce370758096560866be23fc235c06d8e1373cf35ad367daa527a72104ee28a41fab08b415cb44a36b21bd04ec022e4c2787b6d91fc31c374480a8b92812a49bc651a1a7dc3282bab377e653c93a36a14c8a24a6ed3875180cf50d01e2e0a3a96f1d9c523169abd707007803601fe501f1c6b108ce242a55011fc50bd9aebc99cae5c61cb0911f444c61d5c23f83c0471828b3bf60667493c914996e07a168ca38894542e931b6ba8ec3ad5c3e37a19b01ad19c7786ee47e6136331e0863516ae745042927842c336ea8b93527e97e300ede73f0a0523d050fcb338c3f7524e0fc2960a148348cd48851453e29fb95fde84f9fa750364b7dff6247cbd23a1a76af04f8d4a57db84d785489990b41eb5506457702c27f3d3eb63a6cf1a17453b920213cf9425d86cca45a835809ecca64d690b74c2e46b0be3c8f8182878d84af5e6873eb69f39473360785f94ef425a823f9feefce7a3ff5ec1d30cacff8e8725e234b3f0f6b491e3cbf5d20486da5bd77781a6f6ef3ff753eebedfd60e2105f9adbb50196689438aa081c33abe763c60ef18d7e0bbc53bfd8f484fca6953d7bae90534e453bc2595e44d79a062be8bf1a1997f76d6862914105f2db8506214927e8b02c +result: fail +shared_secret: + +# Private key too long +private_key: dc1942f5269a8ab282175231004076d01b88921740e4b5c083b2134c32b4879a767ec18169811097f8431626072219b1b51a5b4655107e6c06e616024e932933275e51f147d7f28e17d25f39db9ef7b526c9a64b21ea29d68547a1406c42e6ae7233be1d3634d28b717ca8ab8eb160ef93af4ecb167f35628203539669ccdb90ccde15a51b2287110b78dc9c30ba288310a998fb3471cae81195c8bfaaabc00de7af50e33b49812fd77818555691f5ea01f0f78d7e344c59364d54d72439924071632ae027aad56a0e6d91a3bbdb8d881ba9c3376e320a8d4fb0c75932bc1f46c399d9ac09072c20653a7e71c7a8161cf688c35ac51789913c6cc5c99d5522de758da743890000ad2c32a6378822b64b5beee9b89353701d636ab0bb836faa4e63314053174d3225027cc4cbf1f80e78a694d6f01daac95e45927716972da89a0d27b26c2a52112fea4649801980db1ca76b792025b868f2a2f53bcb50861df38091fa505fe13513a5b176e1e9153f9042e7839e4b1ba13d27121cf396bb23423a2b2e6a56158615445032446712ad52c98909d27dde513f397931795437f3027e18385f46cbaf014c89a69a65ff41021a581c2b06a3efeba1f3354310363f4149bbde4375b37903f5240934403edd8b4e0691449d184e89c63bf1716270403964d6639d2b51fe05a86b54b2f80ba57a4509e9353321e12677701750134581a12da3e01539952395b55085f22be7fc539f31ac3ed1bc285bc68b467fc12445b2567d67dc2f2f2c82f7e0a47dfb479c4b46b9e6680c50b8c6c0490e538410f63cf5c85466f9a41db1994195a63182498521caf7e362762900628687af434d17d556f1899eb5984dc53754e004858b6537fd224187206aad8c35b374a3df40b97bfb4c19300ceeb28580416fbac5114ca80a906157131b9af1dab9fe6b206f33068d06435156acd1d84728fababbbb961860c6e8506a1ce39a50592f5e66c855a992aa73aec9658571f023278b592c0229cff575a039c77fb91e44fabb1a39c97ee3950b0a9ddeab8239d7cfd3d807134c7782e27aa406b912289852d53297dc48eea63f0767250d429c0a66861e30ae735301961cba066a7e8fa98b1e290ce531be7483b975506741f49dac762c51ec007e31364f12ad064c19ee356cd0324f94368d9aacb7cec21cca375e45138b5248a9976c170cb4af5facc4b9888e1e38387361c806557229ec385360275065259f7a754c087c739876389a8f48e289ba2709ae8c6f192027c6ac5a14e2c92e144bb80087a96b5ff60b304d97120be22ae4799af1976cc26892db02bbf682cb5684399354ae76e65e189c74f2f5145c12210d250888d2a381565f4a510a8ca026a958471a8cca11752fe575147a654ee330a9db2a01f52926eac461e549cf9b085505f009bd2b373be9578ce5c4708c312d274fff350e8197c34e5c595e699493252a042c6cb4b71c2dc49b22e2b8b1ec82330aaf4a0b08dca58fcf2cbe178b588a401caa6938018acff1bc11601a96df116242d0c03662bdbaa98b5c45070fe798660b7bd0a4bb7d4877eea1c62b17894995602ed72e84e07f0105994c4c0e557977d899aa3036a225a4047f346952f223d16134c6c5424bc4875e704156005c97db5302d8082e9ab208ba70dd34cd2d4247ba3acedb945a68ca02c285ca61c07e0b25646e72a5647a3eff560932bc0c03fa22beaa1beb7691d4960c7e4592e1487073d3c299bb1b5818af80569e6d4129cdc21cef7b76cc00208723a494c030d8a045b9da9f1573a19bc940588bc3325062a04bcf5c1cb0d6e96cb11700c6323a84101588887ad5ba3f374aa196b386ea1947708b469b91be8c4695f3538fb3655b5a814f25629e34b29147509401151c4639b578c2b298a7cf9de24b0aa3276650bdd2a24b6dd579a2c91d3fb31109258a61250a6593a28f1440da5286ef386ad9db2a9c6324688535a5fb66351bb8d5979988581d8b8c20af53021cfbbdd5d793efba7407257d1162531087a0f3a102acb49612faab4ac7827fa31bcda42947155966b5c411c74378c8b2a890c3c6046574a5aab60537271cc20b728a54c2ce9ba8a289946f30d2552d5098a758bc9f667907a621d673a86ac61cb6c08315a001ed71231a7a17781442d8179f46a7a062762cf9a2a12760c900458f23955e2b19488df6c9ffdbb63cbb454265862f313acb7b67a43839632b3789f4bc806c9f250c5a7be1c3543b8f7e59811c0330f721459a28b6b6582b1344743b8190c361b5ae6b860938277715cf949cb328ba294dd4674f7336a86c0d8e026102ac8b45c7a4cdd7cbf3e521d2427864d921ab2b56ac224df9287ef38c26f99636a05010d4894e7d43ab73a31272395fd948b6fc682cb3e751538b91add34da1cb77efb205ed873459617d5393418cac5e963b05d9c17afce2a1d4817c7ec8cedd4c128d03aedfd4489397b1dfa568444620ace8626339ac1f149a458669030c66c6ab35c3c5166ce733eee8caf7bbb96f90b2072bccf33b9b0620a79d2840dc015f26e14db690af60b10adc38097f81b81b900da02bc21a965ea455c284f02b9f8881b342c53ee1c1ebda8a4d6972acd990c744c6d4302a7a5195a3d79dd4421a3c813ae8db7404f45669f43e6810c425680a2168990fb08867a0b61545c20c98c434bacb29281416522f0e75037d5436ca158b86c79307089da02258e2a6c663885e962a43c69c05a8d277345b6d8b85c7ea8c086eab45b65871fb125b53735dde0c330566a336248be6ec0465989158eb9560935133e60401e688edd2bf96e9670a6960000076b19279510779de4c87a8da98dca4b87d11b372166f97639e77922e74ca359937cc2edb1998b245ad23c81d44ce17c2cefb42a850e7bcf8b4118fc2439fc27146b6c26184c3aae95db7857dffc30b10bb48de657975ba57fb4ba722aac62a73c909558b06d751e2b1371bd79be7111f26e1b31db30addabb92f4219e965c74be4108a6ac062c885eb83369e378a3459cd12191517884e0b5aaa429363a5b91a504bba1c28914b701b1270c693f41fabe318c25c747f5c2714e6b253f62a561c44545a2709ea767099b8aa65624e92c6a4343d5b786595b4809638909a3a79b25289270a6cdf035b2a22b164322600082a64f6374ca32f68cbab1a985fd4551b5d617a2a1b6428a256bcaa2d5e004865058e16128ed03149557b6d291a5e6de2be8a363f619a86db8758000c75ce88dc75733c6542616e7e04c7f2b8e9dcfd44fa3d25970fd2d0bcd302fedd590893966d2e9be499a422ca81383f85b15a4aeb9b6c7d00e1724165ae40f1b528cbf835f0e64d787a09c4e5cdcfd910d016b2f3717a98e7bbab9e4483eac9f365b9921888544812339d3a203c6ac4 +ciphertext: dcbd91003dfa696cb94ed5d5d3556e95d6d2f7769dc09ecae14a20828a291272dead64f7cd1ec5054c5250144f7a217e271b37f16e12ffbefa09c95edcb80dc67f1cca10bc3b3249c2bc7aa3150854ef8b35c86a0d8ea4d90bee72fe032bd3e267079189f120f71d36e75f052f02068274383666dadb4925f557e9694fd03820222f80528a95d8d9009fc4da5913d77b20d5a973b1c327af7f7d6ecc2d96edd37ff01b0ea6ff57e7ba0ef4d4c5e66c258c55ec5651a9e1aed311c4a3978f6088b785e6eab416b767823f6a454a66e9a710babc71205e88e30107cce4779dae3b158c057a12a387ce9f19717ee00189da9c1be736f5670188b00e74876612271b87fd853869b097dd4c127ce86b5e967d62f800bd59217cfc7d7b991311de4eb7e62357f313a47d055cf5d39b6651ee5c598833a0dd9c9913061cb4d1d1382f506004c94645b77e818b7dfd8868c91e8052391d3a3aa90c965ffa7180c1b046a35dfa5608400723cb507d67b47dec6d02d299477ffbb0f04e217984c074c6e259cd60c42bfe5408418fb41e17e868817c268f4470eacaf71b51ca8577429404f95f31ecda57d6f329aee695230d55b3d02389a62ae9dc35eae38247ccd021cab143a1057d749b7c58080b112e2943295d0a5e67eb50a10b4c1b674e39075bfedac748a0d04d2b2fa9287a1f57b678154841eb3b30990647c26399dcd0529b28c172f52cbb43d5b63f9e3a2bbe49545d91efcb042d1a70e187986e12d1439393d2d97a2668676bf510b40fbe04aa7a110d33964e2c19560a0c2343c4ae31fb21c1e33b5e63f2f34a4e7fa5c05099e8cf1d39f82a9ff5c363e541d76e0ce006bb63e59fed90f927239cd6423b57565549957ee356dd86cb5bcc3daf04f688e87f33bda03999c4f493a792e7684eec17601600352dfa843d781510e1dd2e6a3f57672465e7a4399c6c55398920ba8f8b5e01fce45a08ce9efead33440050af8e449ac0750f82d93cf9f076d071d84bd66cac6c3ca839f481a1778c951effc65ca228407b40f36b3b115e089c4cd489cc8257cf269e7595e9393803e4c41a425703781eddd0dabd49c11db8e8714e967d9b2e57d62f959660bcbb0ac906d42ce21d9811328763a7dabc07bfedba13b500116761b5104a85b029f81e369f8318a0de69444f21932401bf8f0363ae2bf75e5ad1ae46fd01111a5d0c127858c992cd86920eb4927e2d4bec364d2a81252cfec2e9a6382abb9986ef49f3aae3ce0946c16c178838054d5636624cc1363e372b6d31ab0cc1283cfb2f517b385dcf960befcb66d752c834bebbc617525d39b80df62a52600b5ff9e264fa9daf5b0728930ebe3fecc4f50dfddf800b6693bac52964b8b92b5e05c734de8a82d8fbfc40d8218327c56996ab512f1533627fffc73f7d487b5cfa38b78e02248c85eceebefbafb371cca88b84c63eaa63d720824cc369ec88db55a290089d0155f923a183db8a09c0c258f8f7b5fa9ce1a5055e7d978afd77e977adebd8794f00e6577f8a4640c7 +result: fail +shared_secret: + +# Private key too long +private_key: 59639c74c22e319888131c82dc48c1958bb00b3195c7287a2b7032522b793bd82758f87180a32e29558c59e2bb5f477b472ca37ed7c018952439898fd7db680674723c387a483b4db42519212017f2d8bbf603b72bc0c25c3269d1c366ae8a04bb4b7d1a2237abbb001de23acc743187f14b2c679129c7b7641023a7b67b4e34901191a43b2b57ae8baf7e38c280b540202783fe66b2110b91c2f18bef931e31a22d8f617b6a53694bb67ffb8b51d98c276f435823e58ee1eb747f4b124f3c35b457816303807e80ba55314fd25b7b0bc456430b8209a4b21a87c777a1ba17c60a32811b55ea8b8e4abbf4032dd2570e3e8192f1e3b89e9257130a86a999354d4275db312170d528a24394ae113ac03b60375c083344177309c264a25a6fa1b04db73569794bd52b4b63121af8402c16388dcbd23b12f95461b3055fc9b4a6b2187eeb0e3899ca914845ece68d51fb39e1c277a46304df9584a38946bb4221bf6b37e1b269468501d11727c95425c4967905101f79f9c0005ca835aa9dcd7ca7eaec14017637ad49568edc180130adce17c11f412ea16239876929914a2bc90c7b1161c4a1e1559f649118f7964bf708d39a705a831fefaac442973491482169223611eb68f6626962f20dd0c9556953a3be26bfa491c2dfc93da3496591757edd2c6ea7d29683f64bcb0904fbdccff06b85065a8e23c369a6369f993264f58acb7d717a3bc70638779493435fe6c99349c855a687c51a5622c6547dc3f583651455fb2bb076eba8c0b831c8ea8b54330d9c4010d8e443a07b2959f68954e5c3cab72146a73ce0b46e27727aad274e20e2abc4f41312c429aca5a3f2b17fcdeb375af4117ff13dba84427b90a4c0f6a44ef0a7e7c326cb119be6ea5da80333de525e50fac95276bcc5e9384fa683fb820d67568402f87c8f519b24099c38f11a5e140454a97896376c681759c79323d3f200e0a388631a1ace40c784e608aa9478802b3ff0fb7bd904722968be6480560ce0c8ecdb3c3fe8ce97b0458f25447492873f705c0f4b52c08181a19573e0070216c67022d79fb0f86bbfb3af3255373332312d42c200a90650fb751a39806431c1b6913fd774215ffb4ae7b6b9f854cedb3a381a2082611367c0cb1413397d3daba2aab8b1be3a26e7078ce3223686f61dcd89ab11d774183b1b19b1cb71db0a58e17edf52a4aec478cb847cf87594aaf41e0d89498c835ae138b566a78ea741265a741d5ec736215b44d1e224a1e751d02c1d3c394835146c375a1837a186a1f7a2c416091f6b30831890786a4704eab687a27219430df2433bbfe688d66a8ef1d05190011835899b07dc5faf0c938ae864ade2c221b2b7cd7b950c32602d591803e030d2d7873439a344fb85c1b386d39a4f3e3893b122c62c05bacc3353a559c8240057301740ae883be5f7243bf96b33bc67f1858e8f5aaccfe0889fc88e40ca322fb01aa820a5c87714cc43a4ab231222d85d803b55a54495d4b93e63c9206b01b3ad7800d544bdc740ced95417b60aae370a1d97c2adc74209b31726d1c851fba77aab6b914eec556b5c35e5da3c55e48363f42b52a8c393eb8472757dfa6a324b7b88bb149bedb398c5f590e697538d1514f7971c4757818de7675d8204b1c6175f2b140e678d11e6821717b8148a5037062f777011a83273fdfb4fc5893bf11bb5057c35f4f63ee9d172220842628949df8491c424a9ab855ce953ac1fa5c454653ab4b0a298a3210044cb06d39527a4333b3608ced2c05863a749ea950c5553d3e34aec02b7286587c3a468db16b58b6a000752c1659a8c120b0bb00a09c1cc7a6d70405a612f09d593646c489e2c8d234b809fc38b653c54db9a965e549f7ad0c871301e07dc71ce785f10f56db5d44b8d817a8e272bc5998e3b2b5b8e2b8e9a9311764897ad6a4a04bca6a9146a637509a82c6c8478ce4d7c0242894936829d6f32732573039151510bc8a044279a71f353ef992996a81eff98bddfb45c651498c4f3010ea4babcf5636bc07099a3760b03ca1192aaefb3322fa3ca1ac2cf268285e6ba594bc53903e8cb9cb71c89182dcd47910abccd9546830f471d9fb41566414ae2b996aaeca78d9192a9137f58c8532a9123510938ced61d33f5b85b7389f5c4c1b1d86f23b02fa078bb79631b06e0ce389622605b4e9b4322462141dd2a0357fa923833c646454ff6e65b8ef0570202c8f1b43e02d43529798422c9957f57963171aab151150576a38b5c0548528fa060b6dda001a2c48d45447666536d01257e095106f34c113794ac29464bb2f32162300f4fc18c1c46a03f0a3f812131f090c66d5a7d54a027494a64be09496d2388ff88bfa1f6a536a8119e85b5469a61c4f1579b34cb5c2cbeada7606c60966eea1ab8dc3887ebbde7793930aa4c55bb196b6205e159bd4b5343257643fa4a231ada0f925a7fe3b97078ac303c7c056c7697f96679e3c520c9a22df0bb0d45a937787cad6838c38dfa73b5b39670e1c7b2413cd8344f06fbc00f428db5068ef0993f5b77728b6c8bf171816f37c141ca608fb1a7d338949214873988526be77e900c7754651af43c2fb3846a85c70d639b80b7da90226246f8e3524c64700790b9db260d3279789466785ea25a55602423a6801cac63eac4b93281443217b4e7b403bdeb5581cc90d5700f7e76c8310cade4779d0cb3ceb2c35a85707d6236878156b55774a4ec3794ce4659fb5c531fd385637958c3c74ad10a33a315203fa093b8414824b14cb2e4cde1c65dc305517c303d57237e91b9b064e726b209637cc26477f2bd2f4162e35071b3d9622f5b739ddacc520baa41417d5d7c8564cbcde84a8f0a51ad31403ea419cf2895409a43bac3c2cac5f54631b693eb86303ba7625707324ad58c27603c52d97f3e42b52185ca85b1503bd2c91b57745b48c0285119a459b2913b1f34a36ba215a4c9f1316a990054042b14a69b0c940fb26055d0a5660a5b45398c8907a28a3c95ac68c3723309108cb283df868ade11028552225b82488cd9ceafd0af0105bd200a6a00bdbb7ba7c96cc6230232567c60ab53f0556c63bf0f47873544c340553438e304d6cb1ca9fb0b4ea05e32729c060a990ff21ba04198b5d296893825a4b3c0f5f6ca09501c15d645e29c346b318130869966406711818ae754c9f81755106c59a267a15f70acd374c94b54993dda7e8de484ac339a70e1b504d990332444a448a0fa196aca7527b8156df7715bc8a4f58c2d78f038bc8844e668f943872ea2e32bd59aa57362cbddc4ccba834cd071ec4051c64272c6ab22be8fc679df4f18b8258a65ca8606661c8173bab7c63436961be7bf3fbdf22ce5dfc9ca24334fc79219bf6096805aa24ca71197e8134055fb611a79e489cec3a6 +ciphertext: fe0db242d5dcb3762ec27e9c414fece011e9730eb8bd5eb9be826083a8794e2d871e3a1fa8f390f72a19ce5fe2962b34749a4c817e0f9e4135ae2ed032462146346e850ee02e416c8b0a9bdb6be376f42097c61005d89bc64e0f7aa105801b8de96913a443a8f627d3f6635461a1fe35b46746f1994cf748329f6b44a156f1abb7cbd5a20e6adcf132b63c17341a989f19b1296d0a933bd57b380b2fdb54863a6b5dd0a90cf28c0af29e02b2c5cbde8ff5a84d14d9a570aa0049f83c2c4c67309c5b1600bb9e9dc0ddf7b5e9e02bd3364e1cb35220cb1902377fce9e1cd9e9c93281052e49890afec836bdb804b0d373c929fb8c46c672efc4ae9e3ffbed4c96c6912779f3a1e184f74d25a3cd4c4b548abb1b742e7ff6fcfb96ca4659e7be37469e5e8a34a5837324a87571a5b27c965151bbec4d933c109079db604d7a0fe47dd2bca28de8f6cb8ce06387026202ca95d290bee98744a620763ee8426cc1f18c27fe29cf70bced92af71867d40607fb71802a0ad0fe6896868849797d63bf756e8fac5c3f9a8630007722e603db8dc319260bad0c81c071ecba2fcecff14fdd7089622713258b93c86cc7c3daae69393068cb60ac216e23596cffed75524bdb63987ea6f72f86a64470937f52628ea50988e3ac758fc5fa081f901f04b8538ccbba36bc421a9f596c723b72fc9c55508580f52378ef4bea1d5d2fbfb59374f58f7ece5610ff3eeea6af20986f8cf3572cd1108cb019adf99ae2d6e19dd58f83f84aa65a2c4e0c624cd2fce3dd8a1a035489a206311b5fa9df00ddf308c14f0d06411cf2a253c0c979be75ef80b750ce15cfd10e5732111c127c247375a1238253796b3fbeca738e6799315e95f37a5ad796cac2c3d35586eabf80bf126ea34e77f1b68ff650989ae8ebc832c9840e47d0f0b1469cc40665ca9534341c7395cfa1c7040838828bae940c427ce609e25a3d5bb4d3f24a71dd5a02567846fac8f2c513165423346d4a8211f95f4f267b0d31f19cb2486cac3afb52fb8964fff2c6f2b99e5dfb03c24cd477cb4c71ac72d5209beeb6a23e656bf562cf85b79ed8e6f7a5ae107bbed99819490c065f58570cc08f04d9d85c67a8bddcf9f6ba9fd8d9106e894d8ae8cb233700563187780b820e94b4e40dd8f713a82abfdd55d6b1ae26953d0ae259b4945b1ca7c5f7104169f99c85f17c621d3efc8f40744cec2dd39be5b6d7fd8cc8502a6645639e4d26ab9f039b817b99d9eef0d2ef83defccd1a52e12aef2d3316fd395364c081306e34ca98745a49cb3fe8d9adde2dc404cfe93852b2eed784ed313be9f1332c309e8cdc07cb6ded5c09512f19b3b29c10d08c32e8c4e48d64af13fac60ca53194ec66be6c676f0117c409f75f706fe594f51b171baedee2f161bea8b7b6eb9d6df0caea76fbe253915bea94ba491a437dfec798d6b95935b95907408978b49568ecc66034931985599285332c4322b74e77a818df940c7752e3d0c56c7f4e357db7f8281a8d8ab1ba26a7293f6ec6168a696 +result: fail +shared_secret: + +# Private key too long +private_key: 6b505c9cf71ca708ae3dac65326c62a6a027538cab7ca2cef9e316f67649395c2e55cc666b6a8dbbc8575e0a106ee39f9ecc7aefa5c2c5b918d1967e8ed2b035d9348164284a8747bbe15290669515690f979605564a0d7b204d30268e00e48bd1352943d217bef6121fc7cb591752c3307fe30300aeecb1b2a09f5c0a89621040cab75d2cbca440176dead7029306bafc6867e7a973692cafee995a50792b0a78b2f3d96d32c278d49abaea176bfb66ac853410f2fc6bcce28749d252ba4747fa6852b937775b206e2564079eb9647327cea6c6cd096171af411ccbb75c5932868b868e01370e338a64ffb59211910d5c17a0a2b532fe36b40ca17e73360048c13924c56ad433312b6c3f9611265bf7b64718b88bcc0d9b32b0d9e133f413693a3c1e19b3b3423ca2bd724d7cb4561f8c9a18682d42f9a9f9798d37fb460c573ec13c5955e2025c180a47b310d436755e5123b1924f530cc8e8712724922bce51aa5ffc007094b50d3035cfd34b11952a5f6640ef898f798ccac4f6b3e543ceb24aad022587db4242c81010e4f43d9f108406673370d1991e673041f2ac5db6285c2a936bdaada581b56a8acf556786a9647b59270c3d6b2550e1cc72c3623151ab4b870528c2c8ffac26387b667e551cd2acaeac8a39c876bfbe5a7cf196474aa266e2b90c6729a572ec98c5324d14044c0ac5cbd98c8cc327080fcc241ad2078118c3c9535b1f0520b2f81f18396dd3a8117d4694214447f709b005538547cb7e113196cf35c528687f13b75137b13ea5a1954a9879aca568a9397a8fc561dbcc06306658ba44caa9b09942b3a7ad56848de44be1758e9cb79826cc8a3040a619ab7b8c6848f91546593337093820304b814185809228b8129c553a2669cf2bae7ca61ce79c88878393a6891e44a85180154a30d92a0ada4c4f1886e455c7a7d405bb4254ef3a88954956de0a33b27219362421912114a8e9a19f79981f564c0c4689e25075d0d554e27753270a23ddd85544ec5b8fd45bc0668aa3b55a1d37aedb1cb95885ab37f1bb00d1c43a2860b85526759b4389f69982dc08f2813569e03c9559735d2b66fd3a4ec5151b20250451403d33a81c2a987cf1634afc450bdce27ccee2b3e651c8179350792ca3dc84052a4453a10297625616df258255daa48ccc63472313fdd85bf1072b23c064ebc98d4d28a930866bcc0c02c1905fc81b433c138b2c9618f528ba99970af40b044d586c6c6379416c7494f129c7e383bb9c9b40729858a99f009ac08b99095af526d82c4fc0d7c461e363e554669c0034373397c6f6bd9639b77c0a3787173275a08ce0ca8eb509b892f3342564c46618c7c381cbb692c9052c68ae802f6cb99b5a708540c9cb8ba52cae8223acb8bd198baec0c9a52e30ab7db911460b22f47a1e179041bb8018dfe897ab92408246b0e69993f0e465a73b3ded986f2ad0203047a63dc0281adc9546254f57eb0d3c358b066610dee84c8ccc66ce8c974bd983ff50ce545901393a3a085b5213c55f5a315865d84eb52a1dfa5257489c1645648da195927677587049335f03b87b322f3b07caaa5100481c8564ac07c608ab4c715ea3ba3314f210b6fb29fb122e12b53f898a8ff2ea7c8df062bb25b8e06682ceea21d70784a38577a159ac28b314e609998119a16930bd21d303df686fad983c483750c8636a065aa5897820514624ddc102251802997685e76338867c83de45065f169166220405616616948a4d0a8a0f6060297a69c6876bbca9bcf802bf9d5761a7971e780bc5a2433b10c4cec826bcab114867503c405a004fd20e565a3338d97161b3b3984554e4e05cb2d23cabac6eba6927eb1c283d4a93f871809e067ec99177dbe52557753da51c104ae22f89a1b854a9423a29089f4187479453f2343e6f96a6c128a3720a436e90318d1114d8446991d3756cc9790543014d8a3c7af277f57b91eac94bdf7c1e4068c529725e6d3ab36eda0231fb14f2835bf77ca23a58cc69011ee13b65f293ccf944b47d8232c7f51300f52a7df93009498f572479d2c6a0b23a3967c3c057f08ebb79c59ac6b0727564b61288f5bc04a5945a48619aba794be2e3a218c25281c0536c209839d9717f7a4466b61a88a7199ae0a728d2bad1c7c4bbbcb39579264902bd60d7636ec2949303aeda3a5a26030a88b685a7c3bae4674e995a9afd37ca5517abb383bee659bae84c246ad770d4aa2c058354c52556dd989fb466642967a0d7e0785dc59e4d381341d36ebf320884e1a99bbc14bc021297ebaee127665df632f1068c9f3b0a10ea7aa82cc5c6a13232d9332dc504031b7e6f2948ad2997078618383a5fa119b916328fdcca5da63a711904349b398fa5339f71344e4ef432703b687ac52c4355720b8605efdca1aeb33aee43ca48e58571dbaab304ae25fa574b1891e2a82e53f08e69498048d102f5e4cc5521c903e3c10807b95746b205634289c64c4c42961d25102755588e22568b125a94c71846f315bb96a64fb815dcc51471c83881120b8c5a4494fa8132a83220d620897b1eacfb673759af2f2335945b67db637c1c735ed53ab381b49e3a650b4de572b3b3cefc241917d2489bf798bf244a67da95f3654c1715c01c7249bf69362e4a313a4956bd746a37e51466b790b8801ca79772f2864cde7511bee6243ed9c07c73060e750e82a033c82bbc15a52487a48b20b50db705c0818371f79c6fac3c61a2ca4597cb0fa467406c4a16c856cead8959210c44a858bf8a97bb73154e5e971d498087f34c251f9628caa9b519937f57a7ae90742791679e27d395a9ab4f9b83802463264bda072211cc290a19aefb0395563ce42a5038891c750419f854a003440e14fb96f8056cbcc77244501f6ff75887989f9b1bc7d8fc479c3b67c4a952d26663769bb49cc6713797c3c0f744ca846e32f0c7b3889bafe34e1a46bd62099fc9909a602b64785693fa6b8f6459b3226ac556f8c5d4a854b43589dddc561ee2141f41a9543c76643545b52bc61ff88a832c72152bbfa9e98be2bc95ae13b8ef55c4481b530017053c197ea5c893639396a2fa336bc9964c436f3d155ef114c59243b5528836f61aad9245b894229bf5e70ab0141ffa0688b53131a9dc86b534a72c6a74a4b5c668aa7fee30194f4ccb5d0264b681b2f9e8a9c30292a4474be8961778435e7a6c3ce5d275bd89524db765498520d7692b58d49c37e28e04f44b9bec57b4409e1792a0410c9a3428ed1dc6f065436afc8b695730b315c65f248cbc3c088e88f520e5f92e7bf97ce9983314b76739ea744f77a817792f4662ea02382bc55794856f60fbd61c1d49688213a953a73ff332475f2e44df9c77f572e9cead0cb7d1317a66 +ciphertext: 84a9f911760143a305d86d66b2e3af72fff10330cdd1752991f52894254c739e4c418af8f01e9f602e2fbd906162e8d3452953ddcdd86c7de078ee404915dc85b4a984f106cda7fd9cd9c69eef2f42e8152178e958a24fbdddf1bc620f2d558bb96b3477a74a8d6ba1f1e6b099dc00f355a70a2d56dfab6d7e6a574dc9647c8d33801ae860c0fb470a659a58742932154b2f05d7637796ddaf93ecaf1147c3e378d4be5d8c72d86806e11149cd7d27d8a92b7b72765042592582fe7443134c6ca82d3ed2800d5ecab8c1a51ceda52758472d1d1bb5e84a8c250dc2d380cebb673568099bc6ea6e89fd7a5afcc4b6b7f3eec38c05346e903764b06479f146c7efdc57e88251d5d36c5232bddefb268b189c9bde92b0c1997eb22de1c1b5490e481df891f86e4302bf238d44a9663aa3c2baf4d23578359e1ee128bd8f967a2f7cb8f1ec8a7144fa959ddace07f6efd4ae49c61b90656eea5c7e6733811a852a11a2d8828dbb4cb00fd1d6ee7836b7881e06d44e74bf3594e029602f08eda09067397b863b0577ddad51b69678e24895ad93c8c1ea38b2e7ef413c04be22709adce0a060b2c525cb663f1c5c3c9e0372b93b86966c62d649a2c499db2e9e2b18b8dfa585b5601dd0866518c0d8fbf6dee08a74ab00acdbaf84aefcf1472ff6dcfc438fcb0f5c23ad05a9b2308aa84046406465dc1a116141e96f95b0c25e9ce3c7895a46c29d916a9b9d4c9cdd2689cf2a93b0cd962ea28019612bc1c6c9757a3d23946e4eaef8ba6a8ae3f6a1022f895a0fe0dad4a58afb8c70e38b3661ab25908d3fb062f70bc0dc9b9a235ca41ab35fff001c8480044d6f0ea527ff854104e28041dd6f9624a4686b5489651191c6353b2340598b45402d6ed679449ba463b066ec15bd0af0428c8b066c84749389413bb0763b8f6673bcd77664603968b87703d3d519192c49d03b66d71d1dfea3505b21b576aa98d4ae866b0f29d85b324adabe6cc623b93fecd884f8a928765f5a3703d63db4ba2edf430987be4749834b7dea02edbe51b64c0f282c8e5d8308ffed6233258fa8b4323228157a74050e1a339cb7d1ff2d8845afb316f191a59dae948e1df55f56ebc1c1855648a9908e16348fec0b9c47b152aec6f20825d2db4ab073dd9c60f59d03c0c4684dc406759910b28780e268bfef08692d1590bb92841d42d920e012607319be118f3853ffc28acf91e3f2d871728945bd8caa08101922c37a250a0432de950b8658fd5763b79655c3e08c9a1fd2b3d63046d2cbf5f799d17f34635c93defc8331a782626247a0f5e7846c7cb76bbd6d41fae5e5e6a608041a7633e145a3789d82d28e55f64ea9a4ea0dfb05bdb1fcb060e872e6db636d646e6b7fde060f0d42327bf67aae02053458dcf76d169be16ee49d5f1fe3f5fda7ace5e86c22e52b76895c5c77dce6f5960994e224d7b8f9bb5dd466be4f7d3d513a8e45f3ae58bf77c52ebe6a174c59931ce8a9f5ac826598bae7c8435344061f1e200286e7e22bbc2e0769cecaed +result: fail +shared_secret: + +# Private key too long +private_key: d2aa3a89f51fe9c386c648577a1694fa916d741bcc01e11a6f778f228c17ce6308dbb7494af295faa81c842a0d7db244eee7c390c8c1e4ea0ffc5bcd49801e330c487206090c6a7841375d4dd44ed071bec425abe248982ea274fa546f1b1c8751f97875d35f64654b85a33cf77a54afa12a7bda2a1598066853157849954890751a9837fa0846c2b454bf628e7e5c0379917de5f7988d818ebe339d262314ab2445aa02085634179b93c050dc7552206c3ddc82205bcff870c9de13c40405b0a3ca13f115c6a9eb7c74733ecd687e0b4a9e8cfb9e4fd8bf1885645298071c3c229ec3443e91b90df5703612372f134ce18794a783aeabd422a9fa63bd74139e265712581ea8067b58645160567a169902e22b09fdf70c3bb106144556ecda73cb7323fdeb97faf122554829c96b56ca40819725346bd10ef0f32123ca7a62852db5e1a5c42528fda4a2a8e1955ba10f0b263f6bbac650f2671d6b0389b332b604a943989e51f56e8b8038f608d0ec7830d820662c86514dcb9a83b2ab7d3a50d2813e70b02f8c8369de2440ecbb68a3a07985269640b52a121b860b93389e162dbc23a0616724f93aa21a039044a5a421294442d27737a58c01697b750619e11b19916b823108353cd69e29a1060fe53843739000c104286c8e3015c6b34074dec6591627b1857286664962ea4249df8183abc82592844899ec8590f879e6339ae32bcd5e1a1245986ce936104982903a512ac9726e8d07bc664086204378b5f7b867aabd066354e0066a618580d62b6a313ba44f636b5956327fe35e8512b0ee344fb95ac0e2f86273767ad823424dc3741bf4012b3991e24b32a502141a497d95a869b03939c8ec192c2a4e7f865a383b8b07c40e23e1aaeb1a85501000a7fca548050e9811c720ab739750304ae31c70eb07be6514d1b2ad69a43006545dba78186c3a9bf978065fd3b8dc5aa021002ca1d65f02a0793ae251e91858d28767c1927e3bd8026f6c9d60b09b0e9a3b02f4950c8a40dfc5afb93c014efb9d7710409b97ba0faa156404aa34375a4ce98a78685db7b3b60ffc0d262037a6a3cc49f2697424225bf82772e9cf5ae58b35235a1b2c246a0ba31f669fda373493b0b7d2265168779cb178b6d27a4afcb91866abcb1d203ad1a889e1e65c14c2ad3aa83b212802a1ac937027bd79600838fc6e23473f394c36d53972d25793c6537b6ac1c7de2a7be47a2ddaa4867b49b04d122c7df9519e990f4c9500c01c375f0a6e6be537fae2631080b00a46b097e570b293ce44d34cbcbc18de439ecf87794e0bac97e3597706325c63c5efe61b5eb3093a2437cf02c8e82754131b183ed88ab4f0c0cd6c40a22875c3033f1e34cba412ca3523bd9839b727a143eeec0b5fa8c885fa1e2c794898981dcf6040c151835e3120ea2327df19711fa8b1f5f799d6cc0bfaca2349613cfa8185681b120f63912f3b3e2b87b220670670ba5c9f307d9ca383390343e21b0811659113cc43a0f8b56c82cea5245361e0a47e6c9bb689471d50516dd808d8f4214d44974e14695ed4ce2df541553a9646c19933084813e52c6a563b60779c5ea771366513b0293fe32b4667f79129733cfaaa1e0b78a8a18327d6353953da62e60a84771a3e9db13307ccb7ded546e60aba043911da610c7f617fe71a0dd6973c1ed75a5e12499198bc9bea365fc552b8d1b352c057393c476cacab623330cb90580b97b12754051eeba4840c0935b763c5ba4cfcfba775d1bf433933cdf50aaec7284a798f1f04ba22764d91b44ac4317920c99d1ff0ad1e62bb783bce1c69319e30a45e8545b064165c24af7afcaf8144040a2378552bae1be596e59a203c15cd7bcc0778cac5cdbb935b87c52bfc0c76bcccd67b97f4150b08b16f6fd97e5ed975ca2a53a5d9155c48058ffb0029345d33681c01f7364152a7e2f4787be046113a9c24c0851f940bbbb624521260be8762f981164fd096d1f08240996509154dc4a30bf3e965fb11c0cefc1b6b97254e6c90061b113e5b59ec56bad410867162905027456af398f07589f7b2a28c3679d76401036c56b4ca2746baae37da0ef8c7387d583c88227494a86f1363683470c5d9072926150cc25a5875da428c630c02a4747f1a7eddaa542427ab46b7be9bd7a6028a3a0349522c56629339ac918aa6cad3b331c0078e18567d450799263e8b8a003ac80d495c5445295637c1c2e20773220a4f7ad23af0da41f3359299a5ba8dd1025543859e407ba4f644adac4fe118770c19334e010f0eb88d3eb804cc2a2eb802614969be0f59a25b2a429e79280b50b04295a3beba061a7502b6391d59ab1fbe8348939c779fc3c7c067981bb188d21c05816a48f2796c386bceb639597e8c5d6b89105207457da72cb9a4cc58cacdeac96ec693a0f3d4c58019712443bcfc4185defcb93e2193cf93bd88e20d528b17f817739c222957023639847e1980aaebba8f5f22cff3193bdfb3886cc40604035b52252f470a8bb4097156144c7b149c429524cee65df24cb4fddc983a4c6fccc598e6e530e764ce005258f8586fd2977e2d6c404916cfe455995dfb23997ca8ac4a92ee00025384498083173074165e97c9cc4853823c0f1c3421fdf4a8dd5123124a03dad45d7325a843d68a7eeb7eae616cd47866635c8c1a82303fdcca1a17a84d643840f16d0f4261d4bab59ad411baf73c5ce64805551dd95b0bb431322cccb5cb30038d583f61f07e2a2ac433d98299f56cd8a809a1a97c9769c3a7a5a7cef5bbcb7b026dc23e349981743cac34521326723659b321bf4b0c7e201de87a68dd87359abb105691bc4b31260c1924c30b67287454b829625eaa7d83179e33a99bb58626fff01016c11817e6447f81c639285867e0047ae56fd0fb5bf7429246850aa115544c463edf33a046611820a5068fc82d1d108cd340710850b48f1a18bac7819914061937059b68018ee01908210f0d989c2087a87c465f6da24d0e785d18521d505c3a7898053278ad6834315787b6fd7ab867aa7061e867a4fac4946602478b42c8a2400de78937c90cbbecce820864ef86c0b58925a3033e0fa25398107b25a37f03c3cc97f64b14f853a7b47c53e58bf2d202474bb6564570a618cfa5f47a8d4b7858773761d5c6dc9c777d3079a03cccce627e05221bc54b643a01cb0c3bc3d58085c85074785554459187b15912bb101ddfbc090ae30a88433444f816ff649def14ad75324bc5b64526be16a426fa7d792aa9bde6019dc8b4067836a0b55f835fbbe8ffb09bdb5fd06d3d1463fe2c0348c6f2cae5cbe3e39fb91679a7159ad279818484f4223debca8ab3cdc38ec3bddb27231c454ca335d9a4df69a925660c5bb6cb34eab79fabbaab +ciphertext: a7507c7026f8f9fc8bd6ebb390fc34948a17594c4a96c2fdc6e4e993308484790d99cfb866e515177de14d2d4ebeff07233e6674c7c7c9668068b0bc7189885a271c34ba65e903fe416c29a5008f9672c7580f77f34de4eacd4dbffeb6873805f1871c8a83fb59750df92a6f93ff8d3d517e277cdc9592d2613d3bda745bfb814351b379bb1b7a6fb08c0d10b13ff34e467989774e15e43c4563dca244066bb91f2a8f13ab6218f4aedfa24a11a47f4cf397cc0694cd97e1ed042c7bab88c38361c58d2259687a905564a3c1de91309c0dc46962c1cb8d7929eb2a7032c3ac006e061211d0cbb0e6edc547b38ef364c39946359daa00598b56d8d12024217ac58d698455edf338a15a8fcef9e38aac44010455f9885d95e9a94817e2daa6e166b70fdfa7e842dfc5c7f17e1fa196816638fcbbddc8f5bee8919d9614953429f2224a5f1f983bdd20cc0128bf0e9bfad0d3e40a9009cf206680864e64644236dce9f00651e17c56069cbe4420a7979fdc56b70b093fdc5c54360c95dd4245770e237cbc01666eb29b6d891c1c025a8a75891fca5a481d158f9c18d5685fa86d351d9b085dc7a6099cede6dc303a0cfcff772e95e71aaf953a2393dd7afbef659fb03a1132db0ae1e17cbf8743ceaf0677bbb837b1414e5859f636928ce81da547ef3c5de08e96651e41c297ada12f4887b206e8ce0a060f2d1c084371bfdc7fae1cc841c465fb8a396c216df2dde81d05fdd084b5cb9744faba375054e580abd00c451f49d817367a51630f31d0f6ab9169668384808fc366e377d4c7431f5d85a68840a276409b70e3fdd203e27bc01c457ab581e7eccb94f5d2e3b14fb6c75ad38748443d86173e5c4d03bc83dcf8c2cc2e9564a6f0421fe57d4fa27fbb68ce6ed48459b1bc03a83552fa48cbbb1f30d4f9d3f62f6cd2d4df35d792cb18e9c945fbe152c172c87f0cc6960abb2b02c7269b04a2bb30f4e9373e48e22558c496a2214d8b287bce63901ec0dc942b51965717686a15a7bc6a4b0b9cf53f8e6b05af86de113d9ae04a36e44b81572155d0953d8d9acebe78bbe318c1123743adea7f78dac5d3a48f77db717bbe929f9d4a37a3c7b7352a9685a9437c4be221f7d57bb7a3fec00e0c8849c717efc2e51306a5b81ce341907b39b83a205ff4a1e4512bef4a41fd2006d75d96429b810814ead6d492aec907c90fffb21b6fa4f0a5c25af6ba75403078a54e09e30e7cb5e735caff626f26880ee9c8a34057dde256084a23edfe23d10bed56c32658f750bd821f96ef3ccc76f39971fb0de9b1a38e825e3d9577a0aed90d53322f656e7d46c7331e236d14f6378fc995837906a407bf20aba3c9fcb36ba5076994e0b1d409b1aa3f00d13f947b6d82f1310cbe159ff5ad184a7e4ae6d5fe2fd5ade6647e8b515c221c7a987d1913c6b850fde8bbcda12d58cc15d94ab1d8a58f3add7dd89732de8e8ee8231ca6baa29c434e3805051eaeb13c8b3075a896e7246ac8d09d84843a0b4b86b73f3577a709dd7c5681d1d6 +result: fail +shared_secret: + +# Private key too long +private_key: 0b106288794d1e175623d54d024262892b5ca9e7b0a0790b2572180bb9aa5c231678818c27d459621313f4739c6b6b83c14222238158b5f42464a74d25a1473ddc72b410419252575b4cc3e7581fd0963924a890927197a263a7501c17a3b1b0296418abd981ec5aac8ce4a8b3dbc7fa0c1eba0b5d74f2ca5a85056a4158aa0939496b794a91ba3bf391b88a9ecb772c0295776ca015ff662f796207d151a5d2a562989a17d507946081343f72ceb0f2c889aa159ea141ca3a344843b30268adf07639dda5cd1908743817b47593af4cc18b8120a19dc60b4781974d9324b35b45ad773756035679409b55a61c9b68526f84047367b1599ac6eb8788acaa5c54492e65bb30f62487739a70a74a3aa6dc662bf9aa57170345261a87361ba205c96dd001f3b617f8f0bc7d863d83b15978d9144d139b3eb20ba1b150670c809a7cb5ec24b31110991dea260e30a1ace4b0bb746f455a28a8f51b86254214c15d204883bd021cc3b589ac35ba0ec41599f9c8a2e6006077b80d4badbe0b480c947df7abb506c46dd288859f3b399ff11c5f054f57fb819ca0c65ee40fb3504a84398fd68cb4c00aab31962232c29f4d7b80123634129b9d8493bc0650ab9eb9944b995e13d76271999f1f165839247869d34167b28e7fb00b01aa4f8558106e4324afe637f2c1639e8bb39727202dab4b619172d2b3afb5584eb5369bc5983297c293f0304cc05abf4425b408835ded16abc8e605073354cbc5a6067276d9a5ac84826c2cf71bc184211df050b4c48994aa6c9bf91b058c8b4a115d1c6638b4d10a346a5e82ec805f9a47d2826608033737d90458a7101a6c91af5c1caaf7c036b07deb511f8f41041322ab7f2b17d8f42ff105c20b2c9a09c736a914989632419338604df607e54c0b034779bf71524b867a8b0a32d91384c694821ce9a58af7cfa8ac17dfab42f1939ef51b6171832fbaa33d69971910e092941883164ac5ffe0741c3917897879de523a25d80555640d22b4262c993abc7368fb964980fcc45a948343862552446c173c899a27a13c608f11c4848a036523d69f17c0b602c289b7946960978a7c3284dc569d94368e6c892024ab62bd8a7b70e686193a4cb553aadf8b4cc59c28a3e15fdd2522fc9864385a87b25c6942f745458b7707c0168fdb1b7f58c285f6030cb0868bf389f34bb70bd2cbfdb67b5bdba257288967e61605683c897b55f8f00f2741bebc9ca6647431c788aa8714898432a9dfb4133b6ac72c80b2b95691f5168158f7221b1c923e9c30f1357904f674e6e19f1c923496f5212c980ca32bc40f04a9bb174b2a9486dc6b492a2abb8071c74d8000973661275383e43531e18ac26c1332b51a58ffa275de43525641142982c53e728d31278abda6671b541e2d9b69db6b75bc083e76507af16b33351702229c201b692381a13590e2016ac351e16c61ebb071ac487099171cea552e6e687f1b468ae3f9771c57048ce5bd52f348a030508d6b4122e2cb7a65a93f94867cb0cc4b36241dcc015e53bf52e85203338f648a312efb1cc5877eeee7cc56f0771b64982ba534c609862a02709a3a093399a6c1f968ea593d63294cb5f395cd8682b1f989b9b960279b13786ba7809b091905a98b2887de44421a115b9afa38ae611ba64bcd14abba616192cbc87556d6c6cb997f22e4b3f08a01e39b7e20100318e30846caa3f9901d70580e7168bc148364f1871927437aa0394fffd980eea80cab0958cb386a13646bc879baf3c759e2c7582b331a456ac1d89b9460732c6b67b221a14d6e21c7689b2238424b2dc35448067cebfb586e236da0f580a5f09d2190b90960ba997c0c57a427e537a5b7272f9f6a466a1b1342a922b707b387d89ec2c19aefb3904d6978c0c9410af5c6f56bc6fc639a179baeccea8ba9a2476d4624c7cb61a5e96f0e8279687504f3f821446c7fadc4ba669175f5b3bd41480c7f24124b3ba3bdf68ef804bae4196f303424a6063fae9852e7dacb6ec74856f14c5fd6a56d496be7c2bf8a908a144a2cf7a253e69050bae93c3ea86ea799304680922f2b5d7cca446f732c2a4a95f7819df3057b93d049d1b7326cfb3ce67cccba9412e643408274a984812c4c4a61dabba04b6383c61467241b4da06054090713507abe53acc23a41ac4ab15424549693d91d432291c4d624034670ceb775bb40b25ba361a062027d0c2da9235a939b2bd64077a4a069e80b8efeec5303762c943a734213ab1425316c4724bc67a29ebca660b219ea9cad6e17ca6846103a764d9f6322dab55b119c443db10101d7636c629430383213a318e4d900f1f61fd1d572ac6113bbeb71e6070bbf5b68b01614deec3d15d1cbf718be247c053b59ce5c37b3db34aeb091131fc71959c07b27e713990724397268d4f10341ec14424cb235239138b1cd7744ca3af43d3fc9a41cac0475c97858a41fb67ba25ef6479080cd763157e831cac2b923592a7c1f996336a63031664e51916a64231febc26c5602b73d81368663b744777281b003b7ab673a993efde2ace1820c76bb0c47f7c69f9bc5c7868d332a5f8c22b73d0a71fa7397921cb13db0b52c960db669318bcbce0e794ac8a16cec912dd6b6cf837172fe10822911cb03ab7ab427842ca5a85d924d95e07251f69c09b7b38d2ab901a97d753a947305b911c800f92a2b4117a02bd918670003c122427162bbcd3ccae75ac030a1a010c31f859a25b4111b2e4043d8b588cb43c5b4674b0336636af5b62041495c295c4c7479e521b1aac743ca406a20574c9226a4664381e005b8809b80882243ed537997e312793c2f12bb22ee0c86e946338daa8177f5526ad07adbf36f3a901ac7d53920747b48abaf81fcc7132588cd64a12a134d1158c423d91ea1d2ccce76ae40d4bef93497a1b025e35969aa351ebc15ba3521622c379fad893cac6a2910086f997a8c3755b292e74cf96aa7ddc806185174c4bb610d72643a3a830cb1c6b1a9bff41aa2e850cdc90a09a93aac8dda13f7c8b5d61c9082680750041b04ba45fd458063c8525d11808b2a20543817e4437fef351c5fc991878031d6172d838a80ca501721583f3c51b2f07c37dcd5603641c291113fbba403037ca85fc0264ba95b01d803b71566f30c162b6046998c443af804bea4c0edb5680819795448915943b553e05c7be6addf403ff9e9cc1d580168254b5fb87190d743b6833e3a3a7d43db3da4034f047582f229964d3a100be941cad5870e106661d476796a53b0dcdd34d92ed7966194bd52d9393eb2490748ba7b86e647ef4c96b193e4e758c31edfcd913039c2d046a72ed39fe4e3bcffdb00f32bb6035910e85cf52db3160dd064812d3af252d98287ae1d3bf4a70b8289466a970ed23f2e57767c221b84e2aa0eafe409ad00f8c9b0 +ciphertext: 342fd9a1b0d8d171a535678f6c22b54713693f988ad0c6f339d07e14398d012ad97f298b2d813d9ff5681ef0f976a7552049b8343b2ff7fee67a1c23062de7ba1f75040b1acc7adc5c36624ff28fe593f6530b423d34d6afc9e9592731b046e497b36cdaaf36a8976cf490c90da3f961e5a21bb148cacdf17f6317faebbf84320b51e3c645dd317fe97d6372f31aed68ccc00876b8c3cc52bbe0a0a1272cf8d3f4a4def45f59e244e285bb3f0bfa7ce102144740c25aaa01652620bbadca20f3887f69fc6c6b269ed9836ad2d74c35f2ca10b67b640fe00a8704a0f940aa49a5f63f181af51c4a6a32ed21a1f49da5c383146c2f5f2e14dbdfe23b87339b449889acbc749ce5cb3504660f0f82abf62bb84bf1fdceb17bef616b475bc630ce1988c3c7165aace844059754cb9a41dbb1c33b7f5807b2f78766e688082bfcacee6791889416d1b3ec3e1d75d30ba79609f584d466a5aff9868d8a507974dc87cda0da74f4c7160339583619020857f87dfe0b24f1a12b66af95efe9d110d230457aee8f3613829fe89579ea97f247526c2303753275b6fe50de98910bb193c52a22c3ce61fbb29d2e8e6f85ff801ea51035c07c61e901d1ac855c35d82375ffa350487440043af7432d26c4b7ca1180e7cb12fcb2f0c2b565523300836c6480ef5fbd76f521f9c3ce116fb5bac4e163d6d0d43f0a293cfd84a363cb5375d158465f6155e3bf7a6c882bf45353f1a6670d5b4db77e0f5b18720aa1f86e4582fa28369bd1a3db57d82245b2a6e6b3353d9920c7c31b763bfeb25b7c9af7ac12c00520f911b1071118aee3819b71907461cf8022b65ecc5828a4c64c62e9016d3cb090fa0e178196e3d4ad073559a24a037d29c429087fba25707702b31975589563969b1635e1373a5acc92da9c533f6380f53624d7974f6e685c142482806201af55ff7ef07584511163fdac984e3d1c8e268be5e381cad29d1e698fffab558e731656edb488431a55307a4a021816d559ec64732d6cadcf8d36e5c88a8f51ce8ed1e3a3a107b7b5c9a0cd771300bde6c7430745a7ce2876baef4f68c843e7fc440f9c0d4ff6dc3c975d861158851d5e34eaf36a081a7a739255a67bb6ee0f5aa55039dac4d6de1f34ebdcf5ac30600ecc569200febf2aa4939462f35a51b3874fe4107e8fd02e3e6d92ea0843fe752d8ffbb669f56a05d22c91d3538b7878a2423f288405d34f964d78c95db8e292ec570b26f42e3eed18473b81099a93bd7f4a53e5396e1c34d6bf1baa38418d52d297ae579bd301a4e4514f02693d867cea13af7a63d0d05e5a74e8c341d62ead505bf4c84d829f2c37a570c4598514bbd7240b0d3e9d084e1c01299d085668e3a40e1f0414323620b6dc744bc9bac6938f47e88d88abcfa071da2ddef517b175ef695288a93ef06d86be941785760f231a4d309f78de52aabdb6e34f823e4d8760255cb0ec3e06be1772cfe3286fca2c5cc8f00ec9d843590ca5b830360932ff5a3c593c4fa416e392192b2b887dfade8957 +result: fail +shared_secret: + +# Private key too long +private_key: 70b81ab3b36bb1073b3fe5038297a394b93b6359451cf0324515c6f2632efc971f40d90f82255d9bc7abf76a44712616639b25fee447fc0918fd7252e1747d23a4a97407b5b5186e07d3977f010f1efc8bc32290084967e1118f72ea2a6779903c4575653598b1779c19cb8052e18336a1563188b0c465446174815f12411eb59f8d811aebc733f1c859627a7524557cb1a47dfd9a25812ca09cdb6b02f93bf905c9302b6a620ca2b0e859cfc68bc7c435623c7a0fe57b9879bd43c406b3c76b3408a4ff477566e1800e541eae0c07f8a54e298c23164b6d00d90dfeb63b7994ce11509b9e923e8d09071f0ab95186c2e7c67270e5abc7d313ef7b905eea9813a0a56c9b9665c2cba4712fd7a2091cfa657b42c476c06a7929ac06a7cae4db3bf370ac15d7300f83add1a47fa27a15d3118063741b09c55a37708a96a62215b2bdb46b484173a2541b33198588746a9e332a90e5826a81853c10271dd2f0a1a4cc20c7f0cdba05395b7a8046e39e73eb33812191126ca390897fa18300bd86bf2ff58250584b03c498b1e158b5719af9d7b4665ab15594211821863fb203915b41a8f42905872a7669bdff316a9043767a4a4c0583a286da48e3668b4fb9cfc754b8d8f7888b9c87215163ebe477e1dc1637921908c62e372387dac356b1173d16ba05fd389896a6bb3b3bba4c4caaee97cffeb1144da2cbf70c713a16c77b02c361c778f6c09487013183645fa9c56e1df932bea13fe186565c1c7b1d01078af5ae08971e6d7b95768a5c166c28d0e229e88b859846265b9965df2b925163aa8c6c829c9c5ccfc7946d73173f4b09032048fe0532a4824ffd7049eeb3175dd747573b65a1937d7b5a851ac90b5e324641846c5a7b85f54a0e205894f9e860cdbca362cba963ac29129a6f0f1963fc4b6b1834a65615b407e7a0907579c51a024dd369f8f751507ccf635a624f4280e3b46edf32ab14425555f61677c5acabc87dfed746d6435432c5c29d8815ecb8c13c79b74208ca1c7119d820a1abb10271563a904883e31a0fbee29e38e534abf09f6f7516e7453a1be85c5bc197d56b6a0b641f1b961fcbdbb049728018b00d7b08a2831557c76c2b889275eb3aa922d78717bcb321bc538601677cc91b7dfa5ee6896038471709225385457d8ca46bfd0218fe32341bc0b29f0a9d94c007ca69c1226b123b8cb8224ac53475caafb05bab7b0c28a811063111974647771c1849c17aeda4918530106e646880928ec2843ecec4c7ebf37250b621f948b895a9a88c58a3852b86f873cef4fc3f698b74788367514a98d9b75355221344d83537020244ca4d8b0a85f649801279ad7901481e18413ab015f0b6513598234a521d73131310b24543a71d8c9532e67102c1b9330d9712de1b80161a049f988e2e4065512961d1b10f2096bb822a94bc081971753ab51082f3cbcb3876acc3420e84c949bf7330be927af6f872bbc40ad4fa0e355a160b2cc524b09c0bbc0d6155345dda0f2188ad845746ee8442d3149e53f9ab309428b79a54a8fc908b42c1548cb5a919c4356707e5387aa7b21c8d1c3683e84e5a046cc820a180285daab218ad4ac8d191a689790021479462c0b3d5881058d1133672167f3416ce863713f5b0d7c04b3737933e865e4062398fb3185322c3303c144cfbbba19245bc01ceea203225e7769654ca9ea60f62e1885a526f76e10d6543b7a6536fe85b0311fc53566a3eb7636bed40cbca64817dbc877f252a22d60c2566bd1acbc0d336b88b172b0de1c2c6db6714e19fd0a722615b4a93576edfb1be15b06bc8d7820669c2ceb9b627e5536cf274dd35795de7cf129b8106a858c10900538016be484787970f57d174aa071592c365c0673b8f099fe05c186b76800d3c6d1986c9d100bc142c309b8689438335956181f24c8f0cb3c3e416b112c53e7949154584182688b09f7040ab88b459e82f93dbb9905441bc91222fe657c6aa8abfb1acff6ca9b243a834265a0e33122801a90e9115fc296fadc547e148665bfa12ffa799e96604c7745998d111b9c0bd928a5f7311b1de37358074130a561cf67c517a916e462483c9033f8d78203ee70e01760a48cc94dce7535b83a4b293cdc2c54c01f51f40d233ee735ed13535f14cc028650fb038877b327ffacbab3600a0c5287e2ca01929148cf0fcccbcd55e6a042fe8a14d98441536e95216a395dbcb7867b6c45d079bda80343c1b9f8f61ca7ae82b50e9481b0442a4dc71c3848f460074a33275b70ac7885133ba8cca389643c4120cf54800cb1c2fe66a5b5ca383b8e493eda72c673367eaa019a75c879bf32370066f5d228207c612a49257ca2819814716521a44a306d04582b898278b9877c252004bd455a811151cde6894ac1bc09ad5380d859b4e12908f7412a273265e29597b86cdee47c8b437356b5113de11ab6b928379e73ca274bbfd37025d28cb501673eab500da889b0ca1322ca41ccedc2469d3a648cc59ee355b50776b181ba233354e643ab18b1b8804235eb7ea36bea8c495c23c3de050a28c3421c8ba517078384a8960fc15b3375c0ba8548872b8f07909c6d05b3c125054245fa1c53e59434288ec843c32bb8d69b259c25aaab47afe7b6cbef11ebd6c7a0189264868342b076ea57b1481137d3014bbf2b11d9a3a334d44a402d2aff2d4aa87ccb4fb0263c5d06146d378fe0a39d7931969027b7681688e55abc1a461ae44409f43337403801f1059577276ebb1a1dd3398dc22b1f93a5ba68ca8a9ca2d2acabb37d323109c75f29b0b286b0289fcc1d21c87afb924c82b9f92d0a42ad5a4a06907e355a8d9b0a07f7c82cca71e0cd647a44a87a40844dc046271d6b0eed0c083a40df69b3b56da75600126210a83617b635be75f7f0cb48ee376b6255def29af07711336dac02db9042194a56b3667dc699ff2166be568117034c774f9b481296ea943b1ad5a7bf3242d5761571ec969cb2601892a3431f326730a4f49b0a942ec8e053b88f47c930f242e861a8bdec21f258400fdca979e8ba701a0116e1b7c6f8a0eaa8235b7d93562c1283a83397a042c40a0cba93b6f17ea64038952fba57ea8598c80c77bc06513428c2295e971d72565a729c4c9949abce138b0c591ff2420a2c014360226d155523500a5cf66454ed535d8591d0bdc7765421ba029b716268bf2f4c573d02c1f652c5619bcbb318e23b8146fd78368779890438b61da18bc827b7b64ab286cb3947b8c976c1b37305071e04f2435c26b312b28279c6f6a0881ee5c037c0a5abaac091450516854c777e936693f67e03e0d24d4578d2b20410bf68e8e296a97118445a483cd24dc70350db4db912d0df7c6bbc43455d3f063b4868fcf92540362e976931e3168daaa165fda43dbba4076f5 +ciphertext: bf67a1f5c5518972c7c27a6f7b70709f0114c4d9f40a7e61903a2e56168ae0071296e5ccfda53de161a9e4f891d0b547a5bebeb75326672631a7f99e3ed105f6b3c806763d6a50cf18cc7137cbae617b5e816c8de2be02bcb3e24bafbee702eb001a318ae6d763159c58e88e13b6058810489b47df039ca207b3ad76ecb5731804f53d68867d14fccf667b287b0e309f8c9a5ddb6d433d61094c146622331c6c5b215d48de636a99b5d8e74255f1917104b8aa523daf8028994ce9268e27bf5b7bfa434392d68b2a7b6841bfd52f2a7780e53350ab0119aa03f3f062a7fa50f0d38a7a8eb253fdfeed82c0e3a88220d6744cc50f62c3ccded933c263e1f705c247943625ca68d0561b5f7b47dc2915e45674363782e124dd12f26600e3929f91c2aa01e18966d28f02c22cd2f0d1c7dccdb2c3b604bc32b33d3adf68e3edcffb0c64f29ff7f7cb09b5e7ba2634f1f19bbae94d543ff9c65137f7deb42f1a4405bfb045d45f7d61fb1c97629aad68d48de73ed29dab497a84336b2386a4714dd377860221ef736d22fed6eebf998d756d51e7706707af0e3a6460108836149aa9b903764e5b53cf92b8a1f863e6c4d87c8df2195e646feeeeef266c488ada31ea1791b82e79d6aa00c95867623104aafb9c27226c79224129a9e5f4d30ac7c570a140346f5fc15f1e39596e9209243f966c15155200cf0984ad29710468baac8e97d469d8f95ca24deb41838481857a9a6f763a6a58d783a29eed4fe21a3381795cc644decd346c47660228ba9d1690079568aa8eadbec731e6c9e537c514fd270bae5fb99f2aa37287a6df6d7c1a34386690b1b3b48a28ccde38aed78c377d7d4003e523911099c20fc852f3ad05bb2c6ffeecfee7ff26baa112923edc3fe3c545bab5f949ae1d102971780a7c67506763c7764d564213c6d1bfc899bc7c8cee77261357ba9fc32fe58fe1d1b80705e70ef431eb882f83a55092a96dbfcd468d9e1c2bfaef065d9092d1e0d9d2366d2d5296e9b153b7be9b592b6d20e4b061debdd7d3a8b3886e52634da9e126810388c5100ecf72e5d444f1b114bae0404b1f950dfa0b3e334557135f83525f1318fbc5d1cb80630167afc4590f524aa2f7c86d1cbcc7c62c295176feb6d96c2dc58f86358964877ac19416b68b2e6d74a2eb4ba408975286d3d9d3d0f7ae4e90eeb96489a2af7e2bdd6c2294cc8dbf887d130b3d7941a20195d77e99f3b4cab1fdbd71f84fce8634056f81f064ea80010f62beef3b9078516cb9252bb12857be6543ab017f34092fe7f6facd6cdd19aba1cbb77eab029a86ffffd33efbb6c03ea0facaaf0135ff27debed0931b212456a33918f915bda10bf7b06ce6196774b9c6ec7224b1f3254b72979c36c36428da188a698f721890971f6a79d1a2b771eede9d330a392fdc3f33e34669a43de152dd12f2c79a0a47fde61a71728429a8e2f83d0202837d86a08b77d9b62758fe995df235c3c8b3cd9a184b089e0dbd669af25a7e06ac94bf4e3db9735c3ce03f235064 +result: fail +shared_secret: + +# Private key too long +private_key: 6b3b61ed404607c7b83cc40f1c00c5516c5d71b550133370bcb02c719a0f3d1c20784964e8a01fa0cab6c5267119333734dc5e775a2d65c49ef16ab26b784d0e4657dae903eea134e5b17dcc49908763cdbd2b67ee059650487462d00cfe7587ead8442971a2bae95ed9f8898c03537fc13861119702bcaf3ef423b6c82a9b90379e870337f54433893264daae2c232f6f3c005724a99b022cb18528ea436b1b4775f4f904b200abffc6221c8989b795babec47580c6cae02c9221b5bf6e0b2ba65c0c49005a28ec892ab32879148749d114549669b767355b605a686bc2f18aae4e8620ecb2c334d985924134c5e28c3b804a871254d808afb1a16c35a31e518418c92c72aa54a685019a44d31a6efa61ef23654b8216375ac5f33b89a8eb555778c91394ac6a5b9a5e9c15a460ce89dc0b4ad369adfb680cb64ce7826a21088b402a0bc85b81e1269bd2bbba65e5ba38ea0b4f2b0e587b6c8262094f7c5de8b69355631dd231011a57c958263c131075ba21a374041081553802670f936910a2501e036bb2d7d674c0534b8f0ccf8d8c43d7892458997d6306b24d883443a4b61b244fcaacb427b64372b74eecb76fc2a203f19713bd6a85fc6b8c6fa391ccaa9510423d76c5922a586aadb4740f870b8fc4504af982baf70e7580088bd7a26904c305ea5074fcccf6fb8dbd88747094bed0f149c76269e0e0aeabd39f51b70fc299a8ec1976d5088daa85a5e1314e99256d44086d35d13f8276c3eac2b30df594e51a54ba78942461327b2b3ec06baeaedc278619bc64bb56fd7c03b5f1626bf352caeb9dcc265af7e714b70996e7531c84555807f82d1577b541ac0d1f8c931b1c536d5ba351b5c69fb8514fe611a4ccc341e1cf7f365d83c890ee4059ba28b0a7d19cbbf7aa4da1ca868c83fd1713d952c7b2db814772679dc871fdf0641f877f7362a8da297653070fab8b0106e0a2a63657727a7304a02e9870a3fc531c2341a566d59b9ee40ca1b87208d66af4bbb6dee9061a0b8ad113c5597b4eb24224217599f0e08de933365aea70fbca3027a44b9fd4b9e1f9bf42d7bc671671c0b85bda1801029b1fe7358e02f53dd08420d27476a11b561c551a44744bbc1442c9995ff7fb1b0f24ab2289cd5f015b4e2cb0b4ea5e96202fcb15635309206aeb5609473b074aba3ea245591c16197596db32877915243403c48ebb8b1f67953fb1aaa8e0899c142ebe7caaade83e80bcbcab3715ba149e55570155e27be6a17b973544cf67303ff4381d822fcd03521bf31d599b5a0d112574e84e81e993ec8784ec993ba016c01fea021df073910a5d4ce1b09dd1748428a3d64a93895825bdfb7fc10371f7a9764683b5870451fbf3cb8db6c852e20cca678b8d875da453917cc5b47d803442d5cacc3bc1a3cbc7eae5a02113c2d0cac2daf404ac614196a5217a841908b009bfd296b0cab254626aca450a35723d2f78ac23c05b48d64379d997df47426e8c0de6d723b3a977bb37643480ae5c967201e133174ac6cee8cd63b3b4a93b2ae9188cea0a52c3a93824184abdd1710f906ef93770d20b69e100cc50949ecff373391a110db88685212ffae29662999c6b172de6587b028504e625c1d89818b1010683b31587fb1df3927426d06b77653af8b425f7475bb6ca9b555568f8f9a14adbade5730a594139ead79acf173d8c49ca1c099d3de268f6363fb9a569d0a27487a4663b0c8c14022da6b157d8968eab23610f1921db219d12425bcfb24af9dc4ec9839b2ec56c7e609c96fa0875da57b1e9070db837a4928f114252768954760a5fc7b09c7d523f29029bb89a686d8498a3ca526df0338011347884645ada68ad561d51e577dca06462d7ac6b9291bf8a84410719a05829728b8737b3a9377b056d80a3bd74932c7a0b0ca02adf1671d1c3109ee5822dc2cf1c036ecc9948180b0d249847f3fc2640c61807c9232644c42da76727d88481909bfb2554e9e4ba2f882b50144f1dc70cefdc766fbcc4c8ea4dfb5153caca833864126771c8ab80532887c382cb70f1774ee4805d0ee34f03a90d2bf779ae6244d7786ad9a82048e8819c9b1b21608e69d6c463915a59da1434c48732a12d38ec3b98d91168678658292dddd1821daa0cb675ad11f61d0bc27ef8103ab6d84ac8178404237be490cc95278227d22396c7b4f65a7bc2dc4365fc4dbc609bcaa02d44a21308d708efb6591543007edc109e5c67a236014fc667020b64094374f8c1af000244ae3879dfe59831c88c145619e0a351797477f6c2c249d0a70e717e2890cdfad0c9f398434fd04ab5922551731e43f68d250b1a9b8a6368ac5d7c354079595cd4491732f6a217e56ef4316820233e18b5b1f632ab65c947b953170cc81b6d95100cda3cececb0bd9b5bbcf932f34a08dd040676ec5a6af221c936260a364bac628f10e64f49d28512779572a240748bc1ba106a045abd423b244f74a6e551ca14758af10a2b52e087ef8699430b5fcf4315788592f6017a5f8414201caa8fd9869f112a09734c343935ea8549a77301290c69c3c12477898d1e59a1278a712d6c5609fb7a52152b8eaca1f0d2488acaa29ff360acf08b8ac8cb33e5499f263851d72ee3c34ca738c760397410eb27284a9127e073557258a6f9bd50fa4541062bceb4b002220562d4b68ff0113913a8535824ad684a5c8c896925092fb35fcfcc6f1f03570525520c350e3ae6371ed02329a0819e85b6e81c01e5e6102d9236998b85e6c862f2c93f2ce83b597221617bc0180c27527cc42bf54d75a5a693dcc92be9a152c555d15a7f0d43b0c033b3b0c81db0a226ea20aaf5717a4394a7560712046bc7a4c413f5267c008067a194a78cbc4613b342d7b54f2a156a0c7073cdb3a8d3878b982baa646c2a026c5bd26398b1f4635c1a000f544557b560306aaffff45cbd94bd5ac88c94e67cbda2a42db366b209c871126f53a63f8db82f94b303c1cac529301884249736333456f02b3f1027881003b01b477ccb3e74306769e36b481c151d33cd836b0ce1561058055e5db4c1bf1372e4a3917d556b8fe2a65b385262cb08faa4c720d52c7bec5e2c630985bb2be2485bf76b9428bbc8649235d86956d2b10529109a585486dc622290b1959a6631aaaca599fba837692b533703e363b514121625eba105c38fc7116aad9672120036681322c5534dbce36d871052182ac3f59403ccd960115b1dd10aaf23ba0d1a097959571025df9357043793d33d9718b4d61a52c92768413251be32d77c615bab149d1d5fe85a6d2958743e121822cfe7ce7a26e0bcffbd616802ace0681669e8b0deabf61e3312a1bdd23d81647b94f09ceaf385e212241ec964c6f0890be494df30fad68bb02efd167ab7468daa8a3f2761016ce4e51ff8121050a1c1f1 +ciphertext: 99e4f2e5ee9b3ca4b096358df37595c943ef56fa1d49e0263751b3267aed0f902d061275ca8461ef93b3fc90e9d0ab4ae4a4f84c88d97781d0eb64bdd9089788d40793795687d688b96f59856f36ed44d2e037354ae29cb1c9be88fddb984b83c5b703ed6aeff221c8dd4c6e00e86d056c12e0ae0383a6760e1415b2e9c4d1a1812abab7e28c67dffa39d015a66e5deabb030a9abc0a3708cdbce3c9eeb601fe2ccee1a874cdc77660890803841ee307d7a93677390b9361569ed189d2c86b39e15c3ea4c4dd0b1b4933f08deb96bf9ff941d25b8e934225b850596ba5264b5d5555d28d5413fbc9e7d926046e38dc32b4afe1e3a2ae0b9e8b7f40222742cab3f881c0d66de197cc65f610c78f451c4fbab7a5ca4ae68e4f80c973ade891617ef84d0f27a3baf442aa77325058aefc3a6c349cab9ff9c992eaea9bbbafa7c5b45cb8f0aa3dbbe3d1ee1b42b1dc427b569ac6c673c4950058597efee33edc8c0b006863ddc4451d04874b68c5ea025a03ea84560d75af2fd4d61fa8c1885e82991f9b7e2295ce5a64c62b244f62156b3d7fcce5478844288d8e0f281bdf10602e2e21f3a23c500da300fc5b046145ffa6837489617d2cf8b901eb2bdda2ded25811712503d21735e31f9ccb0f39b5df7591d6cfa691a88f2a6838b24fd1f6cbdfff7b27cc37552760287ac735458c3e207773742ee4a9d469fe6422f2c9311800b3699e061ff23ac70e9280bd265ecbc4a792f01960880da8ce019cd5ca0d257b6dd08247d3e897e1b4054406027b1cd8b3cb1a61b8162fbf666b6d6da2de5866d6667d1fd2c7db64b679b09333cc2fe758478b1c5ef2f46324e7046239fa3d4a09977ac4aa7443014b33e0878d832f59ad2c934ab12a873167982a8e4884610e52cc57b905f029d19871bfd42859420f5c02b37fa5aad6a10886e5bbe18e0509771047d00f304a7c6a027f8f99ac09306fa7df36813b023cc971b67333f32a83f4c355e27ebe3ad09f27bb44de1568dfc716a6ba0fe4cd2a5777ec0d1cc82e9cfecdbddf8876deb2f136bb09943922f7014505e421058b8761c37a330cfa564d1ce875026f963a71125ae5bfd3ede4d0a03f714753351571094c93664bd90bfc58f4f8f7af06b141d1188af8b7a5cd0f655090d4263048a0da21064d020978c3c11c3768218a9030511d2225b7c642dc95914cd4b4d7d0fa0cfeb0a28965904df3e3d74ae5f2035940a0eb8958e0fbb58336ae412e5fdd68c8f0991f394169c6beb65f792f9c5e67f7f4c0983a62672bf5bdf5dcb5eefb2edca9db572e4ca6866838b6617937ea74b0ab0d5308a30097b407e6eb8fbd4a3b302b3db4467cf7b8bdeb9d9a4ba2212c4accf7c3328c50d241ef8e74ae07f0630eca9036a1486b2bcfd216b8f9d5ebc9376b4ec6c5fdcf57b1be2feba8c1ac9573df2edc28346237e0f97aa03dc453902f5a2d9a2945e9edbc3bd05be4479de27b787b24b34707906e082d1f5990503690891be95877dd17bce80b51722ad5acb87672cff9c336b9 +result: fail +shared_secret: + +# Ciphertext too long +private_key: c13658b2ac2d90ab9a0a291078812be8070da7c1cfc6facbff051ad23c6057330171398130212a10a7b4593506be941ff1290adad08f96d9bdcaab210f2a702664aa23126aab228d239b1d5c290654a3b042d715e2dc2cc2e0283a26b3bc94b290e2a4da42660262ca823056cb45427a795200e85994a264f2bc828a68308d772dae793bcd1957d5968a00f504bdb622c37495cf388d5d697b58b2a5554964c944504e128a9df5911fcc0658fa8569225d8e301d6b859d7fc26c12044a4002166343a623232d64da3e344aaacd3464f70a1dac05350b5a3f97cb126a8bc02554b86787b64336462ce087f2a716a0c20510655650876e47829cc65ca3761b0a20003684aab83b0a1d7975b45fdcc2362b49f5207561b7642d58c79b413aa6e673e4f050210374d5d601f475997a5b1269c00ef4240424dc32f7cb65d4f703a3ecb2eba52ec3928bf0d3b8813002a0963b171b963e1a4da1aa5de3eabac8dacd97d7c67f4aa43933aabc4434ae12b658456938386ed9a25764585c15d70656c37a1a5a717b51ce8e8140a31b911b36ac1b0568d3c125a66885d08aa9a7f8483586803b87a5ef9126b86b3b7ed48d6d582bea1790051a9e14099be709b39826b279a100d4b9cae3a2580ad6a57d45c9e93bcd5fc12900ea0e18b692f5d419fc984ac70ac4eb0b21e753267c049a7a8c584cba88002ab495786f0b35a7e15b5257b446c8e28186317cda718d9d01a2542850735c27e91a942c72354c99b5a57b40890399e8f67072210379e2c538db2c12b32d6a3a4b3c36bbd4c016de2a4667caa2be828a8bb80c9c618f226387e4689bb34b64faf3027b791e0a233ccfc77ed4d870907b8784286c241487960a4fdbac40eea80d3132cfd77934dfaa37ac729625e9ca6ab94d7da03384a76596cc6e8c6bb1dff1ca55675c62e2994787b29957adcea980e6e69e37fcc045520cb5f08639880329459269c50db665a18d9c2de7459b19a722869cb27cd9979b2b5a827c41266c30e01678fc07cde3455c5617b18be88fe72734ae43becafbb1c37c09ab992db59bc4bfd177d0f6b619b382111613fca1a55c281e6912c08b94864bd3bf9432733600ab4288b287f8bf2083c0128925f7fb2b60153ba0b0338852a6c9e116fdb5465a9345681791767b7537d05415794c2ea04514356ad524c8a200327394a5b43a94d53974210a19831b1e0af7a34ee4c1cc982f4d7c519fc7aa036038a3829890838327c43ebc174b9ad70e638c0338f5c491b9b6b3e56f05268e7508779e80ccbca380afda3b83c69a74d251b33630b84146d0d97d5fa75dc731732895be5019015cd00dc34c474da14f00d89e9ce872d9185afa107e8af162fd102874a27786d76bff230d79f597dc2c6dd396357ec6ab26f3c0cf0350fd8611ea0bc51902136437ae70ebb3eee31fe5bac035f9a63eda5fc6616b31b2abd3d9bdd51188ee80bf34907f51cb003da444a197cbd8577ac0070c6994b16778233ae1aac6e590e7ba86841a3fd72a90ed72a929dc72931921d7083832a5016ca84111580357a18bb66088fd2807d38b25b291a6ced0b5b9a8b2e32b70455903ae2a54db95620217b8a9887395007c3f392caa21149a7b77bd478b6dd3b2ad1a9957656f854a268a7b8adbd41f28db11c1652114e8280dc598d4102ecb964ed40b9c8a696c9f0b2d4b858ee5344e50b30e17327142bbc01e36ac5481adb80971aa736ad3d07313e325c03974e1f67ca7160da2d57dc62abd64d4af28dac958da4b15431e0428829bc480e2724f7644a96815588a121aa58474a8e6c33443c0b3a29a5cd0ad49c34933b018a24c6a918b07a2781feec38648eb9b38c81f23092a936b6b1890543a0b2afe2b690fc69c98a87fd3b6bea4cba39a320807c237e05667dbf1392185838a48012e18374c674a7ed5132f9438894611ea78478fda4b9f900d983a15b5bb9743d36ba0a532349a42e873b5b195c9fc38735d3c60bad431873ab11bd68febdb199310b4abf3a19f84bb39f08c999b56553b2ac3a30e12aa0438926906f83f0c91749458a18d176b0e358d4e44bf58fc883d819386aa11a86a64f731a93eb2a6beda295102c44cd22646c68f2d75695071aea68036efd181099c8c615650ff6b63a9178901f9362ba75fb5d01b58785a70714f0b4707aa30178e673d0b3c2a1e18cf12658c2e87b89bc21823d66be3b0727553724f32aacb99492bc96c698c2060f2c4abec10cf8a522cc5ad4f9495550c5040d845ef163af2e7909e21b164a661a8f70dfd419f1e9c408ed4a5f3619259d3ca6a336b7c3c2c8fa149285442c5f461a398a6fbf1829bf53b4e05c40c09c98edc2069b5c1a1bb270e482bfa7c43b55505ab7b72b18a20be313aed86479bbcbdc09128d970c0e32a505c138e6c68b6b5fa2968139489578c72132071e7448059485ebb2151e5b689c44d0eaac13c637308b31469acb969bc68af2005a622a5f8f5621212b4ae3c3ed35a01c34a08e19449a7a8906283ce83100eabd634ae9121a36b17bab105b5b0275cb0b3e1e006b49a53abf11a1e4a35ee6c2ad66a29df046e424b4729a089e182a9e28781bf3c525d578c4a0145acf55bfc712168485b02aabfb01a95c9e6c4ff187b2a234f7b0a92b1fbadc20105a0833d88873908e013ff14ca00a44be33877d7a86fd3887a4a5528081126d469c60f60b500887c1a8826572a899bb7bbd59c347a422dfed7487ca50ac464ab02a20fb6eb8baf7a197643ce5ec58d9e9b7b9bc838c3b740216819630b8cf8fc227464a7c754beb43328bca446bfb2854512417d479b49416e6ae283c97a5baed11c83f821cc52353836630d8c8dd4c2a98f72897272698b34415ec785651b18d515a7f180b82892362deb09587b1aedba202f8279e3106fe5dc4dba808b01e41c8b63c361fa33238013e554268ee22976003192998e5d672b710639859cad6d1b106cb303a5d219e5251043ea10d5e9bebe7383a236535a659fc8b253421385ed8b23acf69d0bdc52dd2197237499d0606f78012d1363100100bca1a160aa6c805b815e6786b7020239d07b74a92c27be8448de8b794ca1965ae445ee2702eb41a515c42ccd080c020852974584c6955b98448959d274ac9a36bddc57c3b525765664cbcb186e80c0b070ca1ff899967c9fc667a9f6288959a651cd7aa5c4b30922ecb5ddb8852530bedd339a27f06293c024fe6583b902019e1023ca580b855427c07c4a3ca4d1df6e6bc58bf532916680b7547485b7c48f60bb81e362f47022491f971d3400f5f893674970fe3736861d5cef1170fb4eb12de87a7ae30f8fee17115183fa11715c296d1e75806175b305dad7b7f53b991b17935881975ebdc118e5e3ed +ciphertext: c4be3e6e2ac78baef00a51e4c1ffa9539c35ef9053a78dfed5462d4f1cd63f3f96cfde208631329ca4f46a84305a43f789133b6b91d9509ef2b3cd5ae2ae0f0e95417e3b05128875774e838e0374dc1242a437ab180b6c76dd62c07b85e8a58ae7f7e97dc8a84818907820a320bcea557e8e48305abf29c2c586ccb13852a71fbe44c3681d03663ce80356a606906a6fedd10d0c32ff6db2bd7889d3e23f73636b47b43fda96986183da351dbe4ac65e542254082a769872a7d3ec78279d01a6a66e9bf366c6d8dae79f764eea5fb8d0c48438126ef046ffabe2cc544f4f1ac34e8bba5e5f7622321b5fff3b0413bc79ee8411575bfc8ccffcbb95b0cc588c75c363a1d0f37541499deb96e19470c68ac74826aa9d06d9ca12b42f8c543e620871f925b12727b9daf75a28624876a2c224fdb65b104d42a8d216f2cc35cead8ceb1a4a44e7b235d2a37561233d3786b64c95da7dd4c289e8c82c3340e1293c78becd765d132acc222959e69ce1eb4c5adfa624050bf4ed585956526b1f0fd15043cebdc4de7433795357bdc84a0467498bcfa4fd48f7ed0ac81dcddc3c2ee03edc576de7766f86017a4bac33bd2611bcb3d6fe1aa463fb84ea519bedf10349d692d86f3218f41827cd0a26813194342c7d9f939dd3e6474cda4c76d242e6d7eba36dcba76ef0a26cff85cdc53c905a72409a8725f7bbb7a04aa49913007f33e41a6e6ec3de45308f21a876eb5b60ca0e6f2d5c71dcc54fa200b7e96bba23ad5239def73598d9c3f79e0a39dccd6967a741ed9b4305c32f3e499f5fdaa88ef57f61e31f6c9fd2d81fcedf77a20a0b34107b26daf3f4e7db6bb9b830ae7042b3a9fe0f7a3f7347c96ded20612074e377b57dd613ca14edb8d2ef2a1d091787589fc751b33f6f9a7c7c2e6bdde97a1de369c9a29e32fe271d170a4ef0b56b6d2c9341f52b51b84c717fab072493e34e81ec06649bdd6d1f237e08e846f63e6f86a37c1d0cf07f27ded44304a52074664621951b8f022c0f1f3f40de6febe4e7bb690c227e31fb2eebbc86679149e6f4f0160469a5acb114a2e305dfaaab73cd7c2545bfd6118f18d8a3b683aced09ce59e62e9f1670f67a4610c74ec4e262c0f8abfa0142c86c40703ad3292eefe584c1b91f4f1d00d9bfdc9687ddb87cc8fe04db53a647402e56a013514e8eb84d2e0c6e20dba1e188be8c981e9995b6fa60b56354ce6ac9455cdfc93ae6a5979a8a9f479b8cf16ac1eb6eb764d8927494dbd55da9050d75c29b5409b082c38033c532a336709a268c3e2cbb302b319e30cfe2a98a4a89dbaaa95fbca58c1e03112f77df3d514a585605ad66a54386ef8ed6056d0484a22ee926a7caa20eb3eb1bbb0bd46959e64acd25c347cc1b14e56618ac7131e989da5f22c20093f05506870811576e9386baf15b4840b31c0ad23acdc5e0ce20ea368c7de7f99d8d74d50ca356ec9b3409f1a3c059bbe5d2b7b988775fb1acca239ca2a78ae912413864bbcbd397309e4e7a36b61c943a2ed63038800eeb09 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 5e42026541944e174d2c38aef3443052b55459c302d97610743429f2c1be0268c498178972c105b0ba3b77b23c7b4112db8540a7559f6ea416c722336fc26e96118b3d6575d44010a8310111557c95e2ac33e92462e85605d1a315ab0d99b36c61f420e10ac118432cf7e81c00da79e4e083c965969e452b57507a88e17f68484f11b06a38859dcba1560fc8b406018dba8b36743c7f9010064eb1714b266c953b93db773438d82707f39ada181be9517efb18c4dc107b5cac6f35d16eefd81d0f6737b7bc99a362b964237bb022c3b1f0963100522be19a0e8b58d395455f284ac9626c156c0ce5c64ba9cac9090856d7aa98d9c30c653b24fa08bf4aeb28062762ab44a4cb9c61488091ac50a58cb251646815045c00a9d74413361408683705895f5c69725e5448490cceae432374c627aa93b984646faed638af24948346a57dc4cf9e9296e3f4a394331b4f871c3b97b5094a56960a443ed7a285648e1954b1a9fa65807a11af8c55a028bc6da11e2e6053ee7b9ee24c0625db764df5a7b361ced39567fab7c1c756ccecd79e8e7b30705bcf9ab814a328c45e3644b3f0ab84125f012161ad70173630af7afa0f2655198640bca3e350de141bc0756d3de2b40648309966726c694e3b0b4097847948f3c071f9ccf292520e9b9bef207fef800c33e3bfe612c6b6313800918c93f990c2718957e67048821269642733b58841b08ca688721fe4728eb08696c133b3a61370bb3be080708a4ac6c4ba4449f89b3f81bb332565b8668e90dba8c1779fc9b85a77d481f6b5014d6a2ffe8a9bdbf9b062542011b67fad7321029bcf7ce8a0f5b6a9b1921da91b5c7bf15df9c3034c4a6a28623da7954754650f44c2240ee40aec251ec6457e5cca3b15a80d7640791bc35218d6aac3382cfc567a51833381343514821e05301938196b70d51488238b62494446852d3c31acd2a3c6f188a593a640cc901f93e9ac9593571dfa5dd2b638571cb7b0b1846d418840212fbe12b6ec5566f95b382ef471c2e06c16b0b4b05a34015628b1fa3b7772621dd4c670570a80c105ff12b98376b313707c13c5901b2223cd27867627ae27c622900c3f4fc6470c61cc31abcf08257e8097c275f18d4ad093b17c63e43b4bde9c2f32b0a39d976bd8891fb3503c58e75337a7a7e25c44f9e116d9a56bae977ef2fcaa6da61e53560c1b16cdee1c5356f178cb2b0987d868473512beeb3a54a28f19da2443316e50c7011a8a2c6e6babe1438d66f07fc00886112915d16c30b776834f66a860333a357802925c4f73788561934f53a876ebab075139c98b528da66a06ef7703bc83aa44c23fb163c470dc64adcab787db268a9accfa7793fccb5d54485d4f59cfbab7397d446dab9230ab52802ce12ad863aef9e3c46753cb0c77825f12018f98c0d8fb341bccb513c176c06b8060643aa575249d0127c0145c271321fc169872ca2c9e016cbaaa4e40269801b84bc83413c1e51707753c8a7926e39ca820a184adfbc72e33cb61e1acb83013d2cca280fa268282b075f5bf2a5bc0c92c54acac24bbbc809713695418671eeb177072800d9b7973d216c4e346a3c4395b753071747e95a273a1f307b3da1bf08668b5aa92a5ab846573989a2a72bbb556b5965818553c8f2517ef268bb118c33391a344ca5de64b1a618211aef727b6858d5ca4abe81b73ac5b3f2de54209977fc87574495a334cc486f795b221e6bb0cd360b23cc1d091bd387345f8b07483269f6d2a75c3ac82d74cb0a3e183c226710ec12d3eea34ebe803603b972593c5872accdc352bdf6ba1a6820b5db385a2ac46c8c44bb8e94653455fea805f9948a593b766487287f61572f1d3b74cd55981b61e7ddb9f0c42b07ae432f05227c6650e806659d2031949b8865d51551c017419128938597ff82129fa25256907b163b22615da1fd48270a744a74828ce61030082434ae0a7454efb8117d140f4c925fe89967bc915cf4c6b74798625a3867f50ba9f30a9039c93a9534d8192b7d733916dd693d06597786223c64ba918bb1f14ba50425ab6d51920b18268e21ca1e0c51978671640eb48dc0c5d42495fd58c5db60922d5ab5a30548c18d6549da285bbd0c244b189991172395301e8c3483ea217dd324b37d2b635ab5b90b82d9767c8fd2b86dda51eb75b674dd827acd13a9ac82b622ab38a5b8dd3e66054d14d32fa19d90c9f37400d4e14b8508acf0e701b9381af9ab91a06901ba87204eb3035dcfb9324c43a701b678a3858817780b21cb7d75c20a1046df891cc36a5328135577a5b159c0a3d66f85656f178b7cc8d75235cca9a9227d9c4f3752539e04a2f123d6e4451a1091dec575a753227628058f8fca22b1391b9221b364b17d7d88f162c170db390a780353b6c0c93137a2ed32037c85df41887144165e6b11324750abb75a612442b3c313674e0aa0de42cf41a95742759daa31c331c64f0e77cd331b553f00bd993c3a945b2cf5728dcb67d8ebb3e8a07c314b6bdf7069a05942a451846372c6df1e0537d4cac8a99229e126fd96bacf7007f8b8524f994b121a155316a723aba19cc314167c21ff24980c5704f305bc050689f2566c8f4114b5e6c5552f32abf88a97e87170222920b6358a27950b59801aeaa45a9b5ade516bfb6d47139c0c5f3f470b4b354263559854a94a9120d88e42022aa0494250d48160407ea6dc138800c7984fa974441e370dfa588927900af1650f3521e2b55c4689060088bc73f9c615db2beb8aa4870a8c3dbf03b44757126326bccd660ce5473a9e277f3ea05191019de0852c6765278d4c6fb523956404b0104c6d1c386d310c180327b559b6408937980f58d23131d4cc737a1a697990aafa707c53f9caf3b692d6d2b4d16718dc4f5ba2b04b82727c656a62232a18e6ada0eff3c810a8097cdbabdbc2309faf6aee9a5ad7248ab1237c241ab01b1056049d49949bbc11279bfde27a57fd5406137b5ae945e9af506cbb8893cb459c8887cad0960fd453801865146336b3d50cf832b59b4c06d84bba54803ae29e628b4240e4d64a6216a2ab2b3c702b00abf179980796e27931e2cdc4aaa91a93c8a2638e94c4b1bca07a226fa791e5ba752c465224a440d95f092e6ca2c7428cade474235aa74ef4623f6053464953c4cd2779270b34b534a41a1a6cd91b59ef39dcf034d1b22815d71c1ede306bcc28eaf714127648e5dfa4dc4ea210b5b0a5b94ccdd32156ebcbac4528e2d5d539c5d8746b0aca6136878817f281431f1761b3d46b10f218fb79c8602903918698e58c65bef6867bf3af443e2c1aa050e38b2dd1abce197dec89b827dace101ea2d0942f26e76e7d157d298cb773b82180423c86a3216f3cb1a08 +ciphertext: 4c7a075c0f2e8c3e7b60e91e995fa680c0c5d1d65aa4b9b9f7e6189d991991820745e80f09a3399cb6847e43a766fcf0e8e55d0746d549067d1b6a2120678d9b543a01413aa481bfa1ea44b09303df438dd85cb0f0c268ace7171942b869d73c6cbb1bb9cebac3c353b9f08b119eebe2af46c1fd7e97f8f8526284e69c088cbc94bf06a7b596d13855508491b88cc971456c472559d911b8aa8205c58e462bfe6a412b46ce5e273bf3f5de37f1ca9f34a08e6a25f7277808a176e6cc041998333d55f6e7d7b6ce336e5a392c8593a9917f22e0180a761d85d3189304c725dacc2d123fe6c70422f67254211ce221133d36598359ae46be8be8606322299b10d5942596c1f87291580eae59f0bd9132e98ffaac0d1c158899ed88432e6c9ade1a7673455bc96b34e52925cef14b3e64a44bdc2234821a08dc9332d1dd32e1e780501e1d918e9d2f4ed2e2b6aa17d3dd786b73ed2bdd8df19ec5fc40fe1d27c58f2c00f02f6a7f3063aa748f6254fc8033a91abee02d0057c3ea9070c42bfdadb36c00c421009d6d62e201c968becd039bae8df405cee9ed40673d3a1abf837efe0270fd0e639b4e682416ff569a97886fa0c0990233105db561a476a8f218dbb36244f17475c8816fbe58080b5a50d06b94dadd5bf3ba8cc52e5e4bed5510226a5005d285eba37a5213abe165c85b5727411dd27089e4f12cc89acb14188db166130f1df407d727e96f9aa527a9b21f0a4e4f2c6b55fbc3f54990cb3a547ceb8d593c0be6944bc749a325959bcf3af75d2ce88edcce6dfeb238fd83287e406ee1138e6f012b47a7fe44c195fba58a839dd631d41b17147e0a45b6e330a6eb23e68e04fa289f4505ddf19a3680c3bdcc8124a6b08ba49a2443b894d4daf070d3ba2dff3bd6dde24e6fb7f416fd3e2dbe2e38e7e8c139595b0abef62fee1ff9e24e8758e81a54e39b52a2d1e3c55d4eafaf541b44d3b6b7d7056c8bff95c14baae1be094d5f43945f34da10913adce353ef4b407d4d85adab51919ee209964aa3776bce5febbb8210dfdd0d48f00680195579bbd5b615b913f52098dca6a96a286b8147de03cafa0af08215356ec3aab74148e271315c8c4a2fec4f3e62f175e40d4f04bb29dd2110be7e062a9b4318806ce5bcff7413febb63042f433c97e71efdc9e669047408675397b26aabe84ffd9b6615aaaf75f3ff77d1f47985fd8c6b10aacd290b81d7cd2c7481b52edea024335081d810a64f91e4a63dc301a4cafe0434da882306fc95b21d6124fd3a634ab4d37dd4a72e131379af837fbcc227bfa596d688139aeb2cac0eaa132d30f5287eff79285533f4f518263b836f4496bb5674fd9f2503c24a28dd51b41a463bd687a5b8e4c689bc1a89ef3fc930b1889837c2ed07ab4a0cc79f83d6efd20b97dcfa9ab0188a16ade77b4545609cd3d9eadcd308c3ac65b751d982175ef7c125b9132ade7416b6a5abd58f6eba67d22eca893a6702f75a2326820b2573cc9adac81ce23fe9c3fbbed3f3ec4bc3740579fad76fa252d161c03e82 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 7570ae22b889bdbb319e55486dc253e9216d99fb7e3c2753f87648242004649934901074835b55ba54907df4370a8cc69cf65380b517631972fa343d9ed38e343046677a59b91760939965201013f6c996cc72be8d4cbfcb859a9a0a916dc980976ac7aea5b1e9756d150197ec4ccb66d495dff7b8d6881a40873004e736e359404cb59b98bba5de6282496024e2d1ba31650f85c6560320b4ab88acc12a2a3e45aebc667f58753ff7a6bd9e240570c3c13d7a15b85481bf49c9af46a9f3f9886b01a62538a5691232a9e268d6a99102b38b2b8b7954515c7a8aca6af7409ee9cdb0a36a18d12f15c17dd5844cdca90278286180cbc707069cbb562bc46ba25b097e7df498508cc9f3bab5e5c05035337132f33f76096d18f0520c103ca7b8607d669c9be90226a9534dcc2030aa51391a474f1a51a81ba6cb28bd05b4a0fbe0326f894740b038438c1a45415a35bba6d2738a94988895448879916101288c40ba1fc46854718c60b3432122563a65369fea424f1ec2a2d3c20235241ddb0627a150b871a15a9dda08fadc7d3114cbe0924792a281d234af80bcb162748e41e869a9f121c4c007923392368159091a72be641d94194050fa42947325a2f3c8052408ad126957a7c9d25833b5f9a4a92117804519eaf876882abe63c36b39f8062f497ec7e77b349a8b2b801bd7408709c27259b40c213708e73077839c6b7c7bc7853204e73c31dc9a81fabc99d51284c4994a1ac2bcb1aa4737c8a219806e7dd84fa0ea525f370733276856e7c1e82cb61ac1004c616934a14c2294aceb165f54e427035358b27b78ff449c05e0acb1a972b09c4209d28e0e48b97c5cc8bed4c3897a5328665b0814499e68c63a803e29cc840283ad5218ba8bd61864713ee5470f09e0742a6186aaa3cabb15907c10c3e988614e30b928030c637232ee6213a3c559c7dba35097b18d866563186c401a87768969d978703fd396a688170b990fa4e0867bd77b3a800bfed64f3e06522059a7079c676b7c80822963a053ac98178bed5539a0f001ab55a9e1698948b8889d1423b2142f8d43a453748b0043ae0f014531eb0226f19982441ea789562bd1180a2c285cf2995d4bbe0bebab716a68146a668dac98fc168d6ce9c93969a72ea070c01145784a1956e97e9ee63c903c233bb84f4a40c5cc8a40c5556e8d2c56c92c03c4d77b3d32b221f86dd8526ef592a0069101bd2b5fbd0a3bcf6c6bb6397f6226b202ba5dbe291178d20754a0837295c3fefcb3b20acc5e554f487c938938244a824a03c5aa45b54d28893d0dea93cd66458206aa92086362084de10b885482a42c7145f4f114b9d22707830901917f68e820fa84990253a2ecc92f7cc10b1498a494c67b395b34357aaecd3baa04276b925aa72f613a29f7b84a10a70d971dfa187651e1110d860c55d77d56367927d96a26504298c4a10102c66e22bac48031c7387c118c4e42c923c5ea1deb946fc037c2f1165f1d6333aac64eb648a2ab016a0590cf238254b2487b5e7b8d8d716c7b35aa5d47c2ef583dde8b0e20bc4db1f3379ba675d2e8b5c436296bfa98b9fa892a7990bac9ca18660fd0c36718688ff1e64c1216674878a56eb11bcda00301fa12a5ab3a36f334b769604b0098f23464242ac326626bfec64ceac0ce26971883b53223669c07746ae30c0ca14aab533629d608205ecc1c951c5b257790141632e6c2bc85b70ecb6b1a9eb692a05c77ebf4c4f72b2e0c287dec983f5b9a4f357b29fa1083dd03ba94624dd481c51b2a06850c04ca6757f921ae0895887af845525c673f4130f7329eaa72c50a7966204302e6882be0715b57e250fbf5b398ba96fa715614e414568c1062126eb4bc3cb020469a506879c110a6e6b0e55c9ccb5372f37a1b61bb48d2e8032c5995d4a005da7b4b4b01af53ca53be67bf7a20734131693c2562943643d911bb45777b6e063760c35bf3b4767a880952b1556df67898c3290bec105f769b07151e60584956f0bcf1da8dae81179475a08dc293c7c690e73977798959c37263f9c37fe3e64fe4bb38aed691f77526104592b98c135986243e85351de317e3cb4831b13ca7213a0c0430ba6b0a4a6ac448888ba1a18ef7c98e080a3a26042f36d794b590717cc8ccf06324dbc52c062a2dfe89cdbdb22c2b11614876229a96be78229177bc4aec9317b0f062937303746788e568a19f9330429c5a6935856b317e1bf3031939bbbb71b9f020c900144018a8430ee6a325843a28b271977bbdafb2837d4abb496a4d70264d6565380be21ccd232fce4043bc8c6197332cfc574bd032b095d09c805811bc2851fea5ace9f061de350a4aca3d00ca786c16cd6859606ea43330b18a70c1a1f4938b8ba0a79eab30af795f8eb51992a12425ab02d6f514c38ba18c43b22c05ba268b2575d316c8a544a8d69a89e9520f40719e297eb2114f7357871ed0a9235312b2db28c82bca88977a5d2a9c77209a9452784b517881eb269e83cc7a276cf3a861e8f2cc13999458bb9e2517579f5147eeac6d08a3cace8070c9ac6504a3907557613b07147a8c3b5cf33a8d628eb0d0852f9b2f0514b5d043983099a289b92372d5ad1eac77b711500594a32354cf535c9dad19853124c6fcca6e856985e9a741b7114a08510ddff202c59321faa08198cc93aaf95a34409ced03a22e23bc141b306179beba3a4616673b20052a58fccd27e20f791a218b27a33a450a6242b4e32b114f091d4a545b29ec0f58b224781a0172d458977186a851cc54bb01e5c19a2279b603cc54faa98ef0b697fccaba20c93594f01f521aa80d887cd17cae1f1580d9b991a93328ba900afc902111c67e2049c17bd5648c7935d2e9be55e7c49ff9215dbca10e7bb3597938845401786a5483751796941d19bc4bc5950917a9bf0f4297aad521d14236b87b6e25ccb37211a36b5b2655cb2e5a8528733b350a66c2bbd529d63b839ea89df394c65a1380ca509bd5e5a946e7ac8c6634cc49645e44c4ffe16ce81aa8d54199c53b8fd5c652abd279c19271afab8af967b8aa813ba0b09d3ea8437fb7a7b1c978b3db9c215b7088655a6d40c3d24ac7b96838eef1cd108720bbd6cb9d594a5b488a353370fca36d7541b196261bf4407d10e8265118546a1406fc40071d680e755718d7594cc3144abcb64ec1e56bb496ca49a49fe2280480a224631108bd946f7464b47fcc6d0d903c93b68d784b078d867344f2018202c5ea537a58c58f0066cb42f9e9872d53581d185fcecce32a28aad3dbd3ee749ec6efc4b27bc6b7911c86cf1e2c0ed5b82de0aa9818f323a65a7ae23fdfb8debba9c8b9408bc1bb2d8621eefd59024e39ef59d8f2205cae5dccf97278a5554d20ec +ciphertext: 091416d411fce290c9df8d6c95cab83b1161c9df5ac7a4166226d1b1c211939b0f1dfe59a9a983364c67d6bd265cf6827429ac5bad5a741559672f6b3897669f72fbe7cd084ccdf5d0cdf8f35d91e9d46902aa0d8dd6fd1847710628f2c85b82fd9d94936d8663f3ff820f302e264ad77755d9b8c04a5f146bcd3a24c5abd145e1235e89667ec4111f5af6d260695f9008ddbbeaa1a55d1935286f6aecd38822de74ab156d5516cd0a3838907f4d16ad864d1c131f04ea7add6d57d035d8bf9e4b7e6e641c8b6422a95bdc624a7fcafef7546ffd0be26ded64b772e9469201c0defef69050cd771c38eddc21a54262bc1e8053e4bff0a9939d46e43995a99a945c87c6297600bb839744b8eb86cdc3b22008262057c167f677076843478f1158625dc7bee211edbf26cb160dcc3ef4ffe474df28a924d971dfa9bcd06eb5c0629f67306a911d1e5c0b6b22e5e75f104b40a9b7a5d5065e621698554abfccf93e45fd5906f7c4861442610f2c09248648f073ee4380218cd6da1821038df3c49be9d5b46f62be9ffd4c5b96735452e53b248a2f573baba341c96348905224f1d2fcbc2f8060dc6ab08cc217c9a792722d9c87045b72ae9d3e3ef87c599a1c6f058d3292c1296023c7bfab1c25c3263f9be10f04e8b062426be96bdd8ca996c0fd453931e972c20adb2d7c4dabd0196945081fcbbdd14ec826b388bf6c5159ab10b87112c3882e93fd4fd8551d8d9e6613caf0cdea93300c3f3b66d45512a5a322c129e60c9e267f2bff1a98e07846a40e248e929455e97521a27c853e291cadc41f913bd963c6f5f3ad650f97905302ce6e21e333d6b12c40b8797735aafa0cd45b90ae72e0a7e3c763ce3ddb929f8f8f7fbcc6122a6d45508ba1fccd787a346c868a812715c1ce4d596a1b98071f3ff075e425b9b7d1bdd9ada601ddda26611e6d1a342a4a8e438f7677f1fc90ee2d8b65169b325a0668a38b93a78d8e17038abebe83abdbdd37fd8c7cd8700c72c9244c77bc9dea3ce0fecfc3ee44a5a17bfb1837645d79faee860bd5e9f3416d701a8d4487b5266bf4eb53ef9884e0db9630fc64bf9ccf9920b6dcc1dcaf79cbafa5efe62febd8baa560908b57c8dd51616151b538ff8be3504b232ef77aa739f2aa5f45e6cf9c2da97f4ffa3338b15ab88fd1c75e9239d668095df55e466ee071e607a5692b62fcee426443ffec0e84078786feed437d5807f152a7f2ec57a3bbc3eaa105a4dc3e2c3988c64f80990a71352aedb9947929223fe6d1d26c9bc44eb2961bbac7d488b1832538e1be0632d8f3eb40239285db8a12172f195b9738cbe9a10cac738925d03ce65d676ce7a1c1007a7b043a6adc1d54ef8a42db7624ae7211a3b6a1c3f15ef2dd0f218601385429b15eaae32e2af93b777862d0a6a94756037bc3bbea1e78a6b5d1dfd10a0c8d23efc55312f06969cd0afa9a893b6b22fcb81b791e30020ae75849d66d702608a4bb7ba054142898b818051de54d23ad0368129528479c48381ad2de893065e4c59b3b427b35b8f0803399fe1bc78a5349114f5f181bb9c5b82ae0d5c8 +result: fail +shared_secret: + +# Ciphertext too long +private_key: f8cc0186b8ae38329fe6956c21c7b801c331ab010e4aeab234c7762fd798fd92baaad556a69cbbb5e22756507b629661c2f67a80a972273aadd70c54974c6b2de53454bb123ce425619c2edcd2b4fea9c4f6978c404aa1e788640698b8278247940b3cbd476083c27a0dd966d631cea890339b11205680c8a6044e45f8bec92c425f1b8fd9676d29512a9e5636c46438e10b6af36696abc9899b68cf40c7386a9087171629dcf60e8e560f5039205e7b0e72926572619f872b0776e8051b12c9fca93e08d300f2f47d7299181fc509bbdbb4a6480fb89310e695b91ba3893950453cca42c3e29ef5939541fc084a4a28d2980af4e8090ad0091563c69f0017561b9950644ed3a793e79a90f112b33e510f892c9711605ffc155843fbad64145f3fe1baecf993c1477e1aa7756097c49be68e4ceb9d3c285f8f93b22bab2fecd401c8115800bd1e2a9630b18c3072101b403685da95b46bf4257f89a7b7ca1e39d296851304ee454368089dfaa77f239b91816a192f6138546678ca34967ceb0a047a9325f61ab29320c4752498c9840b747c4b536716aa0c677abe216379b167b7b9d0886a938270ab099dec80e4d198c1ab9e6cf599b23a2865338b7b9935efc0831af0b115b92c91c560bc28a0f8d764d04909c5d21da54212af415e05715a36d19a4b3813a1206376156548c00500468ba1a53e90c88f6f81c8463087f130675107561e96ae2385c5f321246ff4bcde915a5ae0500c46708ca31381b5575f9380138acb080275ce6882cbbab3b552475058b7e5fc8881ca82bd910bc57006ffd48e91944cc02a296517af313cacc4014b9d87b253d7b4b441caa4f891df1103fc82110989c953938bf24738ebaa04afa7a898e326c97c60d65597af16bbac233cf6185788cbcc30b93d818cb9242874af8447680b36317878a82c6aff38342a1585a2d36171b90294d21bdadc5bd3767da55682d13508b037af177510f0f2563b239fb4976f38f54e0c936c728ab525212d89949f6f018b65e567a9338805c236a2c9ab251766c1a13c4d882068cca55df552beb250143963b98c9612b779172656c8d4cbddf090f012b7361103a38a20c11c22a8b10f9756241b27127df381b0e9164a8c8a11168f90329da044cd0e0834642a139cfcc460a4507c589ecf00a3bb033c5728b2ebe15d0328c625191e9ef30bdb4a5ca9e952effc438177a3580267d51caeb8675b49a01d2e5917e54a15b4db8637accd962c117a930a6dfa394a0c26412453ef15241220959a932598293a32e3cd64ec2bd3093626054e53f26d94bc5f6db55b840bae68e989d6b0332f18a443304a02355c88d95c90392c4bc778ca9458dba17a5e034a434629f772b77e5190538817a70a39d6433e14ab41ae9a9841e17a994b6a0baa866ccc06b66c38328c99e3277669d571ab035f287b2491d6a28a6a96a60b740ea3cc564030b44ba91f37c8f3c29d315829e73c26c8c9749f8aaedfe7811e943309267b5cb65a97d8bf4fb3ccf6ca9dfe058c4cbcab4892125e885528742631d48f421a60f5d34a60299b7f344dcf6cca63eb5764852d748952acb83e04c8660f803f3105aa7443c5e232640ae11eca781ccac2833893398043148880291fea825e9cb0935ccc878052a9e22d6fac0f6f3093ef59a16f250e08c7424ec5bec5c61b0fdb4b70f68e87acad7cd041436950c9096a50c140b565320c012a52556f907672739274add83a4548566d668bbd7618b1429ac5696c9eb6756e233449269676f3ad2ef98f2818c1ed539918029d1e3363a210cac5a6a780b0a1c8ccc7cca776dee732426acb2f32ba8cb2444cdb6702225fd207b436aa8a69300d21ba18b1ec40a4116228579def0410cc780792f54871da4d91370b23417b13870bb5f38d98f5af69613886fac95fd826dac3395877952c0bcc757ab8c78ca9a316c24384106ab4bba56c036223a423dc88b8f262950057a4aa5e4004016164c7cac7268c54759b68030bf70518e23b19073735e80ee25848ef311ac7671dca328979a75594a1c93e7b851f613d354a3a992a3a02927db9f62ef8da678ad69f01818bdf45c801334bf3a169bb3aafb7a45f59e39a9f11cc56e70e3a695537f73c94d879631966d014ab6d94a06af10a1ed35d93dc353ae1a0d9f7b40641c97f47324a3ccc62a6bbcfdb155072b0f7820640f18db30bae6ec3762594992245632d7735994a3a611166126915a3447fd148b9169149d131354337bae70197942620dda086ec37798f2346f0eb8694a7b7a5e1a096b66e3fe17821880ccdb0c353b347ff1780ae235401f889828a37f369053d8058b6da5ff8aa6984764b23600912395cf5357153b49f8a9099944b3a4a933214e37cbdc053ef9ab05a1488327c8483156c40c3c2e8a06600b261aa38a3d430a199d02bf7e086283583d6853a975276f7314aab7a148ce18d78865537b6900d5453dc031313b63f9adc519b758964d48eacd119b0b480e129539587ad6d98050c718d9492840fc3cbe2d21efa48234bf0007d9b2bdce0a45f5639d3f9725776c7e30ccbed598042681c10c424534c2465654e63763369c147c5e60a33c43cf0bb73be043800ecb5e9bc5005251b0ae500a89351a10775466c9541e159d1dca6bd4bb854ec69b6e553ec0936d4d6841061c145232aa1b43cc79c92a89ac85312b54330798a5980d57406aa74310f42745f200e44715ea26c55e068a636fc6b15731af1c612d294630242a62f7c364ef24386440ce8e39d4151b4f8f933b03a12fe986899d812885bbbd82224e9f45f07c152dc363691f393459a9c46db236270648de1490eb8a6160b187992c295791457d32742d0c5e144cbf5e38289527f1d51955a526fa48a216b55574480c4a0d5900a4cb66162652e813273ebc95ea82e432892eef21f17366915956d13c20ade663d8a047d68a23e01c782f348a6c14034c3b4bc25b256a9696826647f5405536b9638a0e54ea9c1286adc05e072391f35893eb2cab0257c377021750c3e4906487e3c6b26b6c50bf9501579261fa812a9513d2979531cfba3d8d62f8b0221763623be55cbb8d42421a29a674c1e758474ee750f34e50dfceb29a771338f516ad2662881c4cd562198bd3c2017ac5159b63536dc88188b24936c2fa29a005b538511b8582f7bcc8fe1a0d39c9c13a86d4b51a4ccf99480011b11eaabd5f4b2a689c2a0b7bdb793704e4b86d861bd5a868d0fcb2e4b6247a05060d3ce61f7a950bbb05c42620402cd1d8a18c88cbdd0327b00fdfe91c93f8e9c2c4dbdf15f48a6d8d7a6ce78959ad6e66a40999b57a6c36703b543b9358716020d14307fdbfe089e2b4a70e29c575cbea1f8b097a37c2e7773b9d26bec16 +ciphertext: 74d7ba54010958c5f139208fda77d92a10a10365a526d621af3b613a3f9a7328eccb9207cb28a0f2801a3e4f4d1f9d0c1b8ce5ff82e7e29079e8d93f93bd58b31cb13ca0d24875ed2b5b56b3fefeb15bf7a951e53d1804ddf3f8ff4af57dda862abf03e2757438eb8568b40b9e88360255455556a094c76afd1bf7d19b29b47def094b6bb5428e868cab19f011b4c518cabffa5893ababd9e9220a4d28cea0ddeed178c8154bc5473718d7fdfbedfe34c3ed0b37abc352bcdf9b44a94ea34e90fcd80fde842c386635ffe77bb054b23601e3777e31c0347f9d28711f0ff90d6fbbe365403c84a6b65303d5d2bd60911529967e06962d19fbf59478b87f4a85eb7725b938423ffcc068141e8b2e095bec6a4b2c2ccef2f239ba6e83c33c312d5dca7d18ef31395884fbd0f49f0ee7749c2a598deaa843004a346a9ac962545c6ad10f586d1eaadec6a77834428207fe4c799fd649789b9a724f8b5dd573371d25b44c93d53e003c87ab784d7d4abdcfba98b44b91aaf8e1f5b850b4a5f6074f7307764a20a80c58abb81131f19349e4c3bd0e5c098df2ab821b331fb4d6ab838adb64b6cb1ba9f37b4cf06bfdf633e03a1fc8e11a6ca919eddd08069ffc943e92de8edc85e6f0829a2777575e968c6ecebf6fc3c072d5dfe9b3651c9bbb6570dccedf971cc4d4b9767abd343eb5374bd147544e00f65f711725d1f9afd45d9e45421dd70095a3240b3ff480319b31ec78731ca0a31b81ac3df8c72e48b2b53a2e73c5acc2d8447883e2db2ec164784c2c74ca4fa32d941b588caa600cfc766fa3326f865830dac01b74e924aa32ec98851856603b308474a5b172b9eef6cee08fdc43ae1f64747bd90de6457c61b8c31a7a231d50f5cf5ba2602063b93f8e03650ecd61ceddd37d7276cd74a1d84f2e8039320c4e934a71ceb077349ddccd46bade299dc48b9113b21f4e0df32548e04282ff8254772a23de5aeeba33fdb4b31422dcb669b537ab9c3fc8dc43ead07b21c8bae771045491a6df36b0ab7b7279561bebfbc19c11b5ad80ab9511547251323e8519f22c54706f3f0aeae2294da6c56d4c3029c108bd2cd991834e08c0a5ed3036a0b26c9d61bc7ee012f34c2ab79d83a6dbb8b532af48efd0176f10309acbbf011522f6470123e1b2591b99d91f37a3fefa926a401ac47243a9662541bd1218766a56335a1b3a5da2ca18ab33ee26d09679ec4426746ec3209fb25e38844434910683d28ccd7a4bb2c99bcbe3aced00888e0fc3738c2209e2bc7a7b2df8870ddc8ff6343875b7523f9013f7bf77be6f12ffdd858710cc1a91b1bc845bc27664da5e7c8440feb4aa3f7a370c18c1eb183404b153c3446d2524b952b5f31327be8f23e17bb056e7affe24e1e5983d43d9a9985e0a190f8df316a691b4ed5a17a784ca56f425a8cff0e5244310c235734814dc4b47e5e0587cffc97baae270890d26c3053bf70eaf4470baf69542544d56c82a3760487be24b745847540e38f68b09c43a565b6dd64e5df83c8e490cd15cb533f7169afd07e690f2 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 111a083fd56e95f7322d7c69aa3cc6cc93ca870ca875736e0eeaa0b18ab24a842d94974164d9960c89291600917844901951bb31b41195070979931eecf823a2ac29d86653da3301c7913d43464a20b034426807d7d49f0dab403e544d33a570c18354c7b4333ac7154e9135a0e05de9d51e2c113e3edc6fb72158cda1b87268a7bf4087ddfbbd2951aa46c276746cbaef600235999b958c7436625724e7a606d6712bb196cf2a73a59c781980ca97f23a51c9af0a783ee0c47ac013c9cba7370ab82da1182df50380e9060b3c5877641304e23907d020103eb2604fd042723889f83b356ba29a6e133065fa4c95bc73831267444759d5aa400becb91cc191effcca22d315f7a8452ac47049904ff5923a93428cdba17b2a443e60658da675c71a48cd178719d2fbad5373953291a86a7963a5573f27b38f787b7950eb149d7a028aa2bec0a6588a45bbf9b8351f10cdd3c51b911b9b28411f00a47b02531ae6dc55db71b09f63275d48ca9647937d116cd65b2fa4b8684889b434258f468a810421323a3c7878508373502d64174d0d3c6f986a1f89d51cdc551d48644c65e36898813a6eec0a1a77585412699c1506f2e40233450143224d017aa031f891e2805972d82ec7c1025f1aaa57862180b166462525b3887fd5253b261c6314f867f15b363cb3a01fab8a707a7227927e317baee1824db946c66d3855fb324989591e3329b76e1a67ad046780297cec629545914819f527e4d431c5033dc1c5731bdb7e585a31e14b90604565a785cf62a675b98b5972eb641f2c169e4519b55371e7b43ea0279f1a6407e0b127f2090febf36aacec9821619c50b54bdc8b42a0d61bd12a5e8494abdc5a066e8863f3e126a829329de1912455055da7a18195b229d171d2db7ad940cc226c9f91533bf8b65f65d88065e9beea841635f85b2fb51c6b351aced841093773e115b8c927a0a05682d5f76aed041df83cb577e1229dc7bc1bc5aea0d97518d02ff4d4375e486edd6576f318c3760306d37a6568d340471524c6bcaf6a4a9050d312768132b2a7549558282ad0132f399d80c2153b6cbcf074393b999aa4a0c48ed7b4bbfbac391b120921b8baf65ace8130a730a6cd6c7613e99ad8b60de947acfc2a43d8140f492b3af248b9a1344c9762b44a133947c4b60f8037fab099dcc0c519d90fdd589040ba183ce937ec6a117f44a35cf275714a05b8990bd203ad54936ecb544db301b90fdaba1b60021d821dbc9a9081c788683b4ed9b1c49076ccff78385216ba64ab3eb6852a3020b7d3b9160dc44ca42b7eee7ba23698ab2aa259cbfba9ca04c39a2131dffb7999d61edff1c00cfa623f57cc718b7c7ec43539ec4c438b0dd750c9d3238e03442391a51d6c600cb97526a6106f11473981c1264642394fabc46850cc64568523a176e951314e94968323c2d0e7963b833bfaf492f65053df87952cb3033fb6989bfa904caa028db171336ac4439ca48af08743d1625aa2cbe4dc84d67b35238213d9c7131823b9e0a9922df9921d140a28f48028856086dc9e48e15095381b36518412335d5435674302a8e1516a89fabb957895b4d42aa9884f9b99bd2c769166e65188727e063007ea944a9cd7c38009120e364fb93004c4ca99b004c5f4885c0c130c9a346273da014ab149229604ecf521a4b5bddc49cddcea0b98db45f722287644a6ba335812bac01dfa8c06164d97e1185c9a14c51a1ed4122135037a93f7390945596612913583a4ede39d6603b53e120b4eb2c5ffe10fb1906d7464cb0f472165186887c98588613d18e44b07c2cc4f1100b0888554c4aa757c9bde6c4c02e40ed384cdae5c242608361b95ac52724f8ff68a0e0c4e49ecac4f60b4182510a4884982181ddcc5842b585d3db16e253c42f9d0ab39d97fde5a2fffa5054ce68e139b0fed995336b1a7e2e897df36079781735dbb286965b642b6791dc6905d973e6760c07acb541c9bbf2507085c25c6d88779cbb521edc06c5e8403c0b00067fca5a0785577667a2a65b5c5349531d794bcaab294f987f257b92a33979800079ab979774b350420a10ca77226b3cd54bb193dd649628721f46a449dcb029c6a1ec319538517798ff318e6a6cbf416a08fe3af4ab1c3fda65c19222dc24179a471c42a892cfe4879a98cae30fca9da86b6de39486c81c2fbb043aa516be714a6edc0cc2ddc79ba5c3f05c2b5e62607be6253e8f45aec8376844775cb778aafc672a43928450a26de71b8a26cb2e0f8cd83649641421f90bc34f162327714c3f93a8c871b6574b51c42d84b8d877e475459769b679be41ef21ba60c006c7a078296278cf1256b3a119e7f951acd27581e8141344655b21c06baba1e5d057692a4ccd6e7228f60c8ad5ba86ce90a3af7c493072ddf3871ea12cf1523477d0acfefbb3eee2440199792c86b79e05aceb9a9aae841ad9be76deb4251efe4691575542b5b52757b1c8e38bc28da68c3e447f70111ade8a4c5fc7a02c1a4e41732b2a5cb81640f3bd81ebaa19e7277102eb5354c3abdd7037077e2137fc716287445d7d94f6dc58c0c214b69f3c658680e957606cd131a11e448e5a99a3e297e6a662f974b7b283518bce80046f596ad3b462dc37e128a192e653e119199d4e41783a0555c7774d5528a899a2e4d425407961c619c8509f86fa250062ada7215c13a36f24487109716e09b0f942b980aa35848320ed72415a23e0e4bcf3b7a3cc8060bbb10b8a20baf764a420e691b8ef332953238de42c345cacb903c0140bb67d5b03d2e806647658f5cd73af886bf261470cfe7cbc5e346874a0bbb645b54a3c4db41520c2a5a970b4800165001d0562f984154c4647e9a3f98d07589c366297ac6bf979112a58f1ca92bdc8b857c6bbbb3e4697b9ac2c2a97ea2e536fb802a4daac9efca179f88b70ab6962a0b009eb24ffb0a2d551c8cdb9b1117927fcd2b3f4af1448e4383c28c7274b23aec38296b979b40091495d924ac09b83ee141e5e93951a8c64e2000c34b84077c6d545a2c52195fe463c5463710ed159170e5101f850fa3d6b71986b049eccb0e05222f3bac17e28fa7b6a9dff6ccf8e4c4a7c86f283b1bb82136be077bc2835a738b2a254a71b7a43daeec3199a2b3eda10282fb90b4510c3adb84459537ee32528744b62c916815365a84aa167381be97a3442e422c3411b46bd46caa418249f97862ea48cf11579edaa322a71ebcb09a7a8842776a1025033367c9a38e921f25a9b0fa9b0f5e43bc2d32c9053ba61af4a0a36b8c6508ef32ffaaf24dfd1a521fb2f6321d4e8c9cbf9dcb415d9191d6c9dea9cf17d78725a3b729b2dbbefc68c462c4184e3096ed25774d236960ca5796f62e5e59599b972dbf +ciphertext: f7f1f6edf4d6138eba6c6eaac7ebde910268c2c96f0f8a6e1c681fa07ccc9a05ff1fdc748297345b311bbf708882bcaea47a8ce5a5fba70b97f1fd7af2d7ee9d4533a3cab9055386638cc6cca30cd47475cf9a64eff7d2d690d9096580b9942dfd9b2492a8b0b5bf93d330a99e99b286a386bbbf62a9fa4ce5fb08e3ddd082988e85fa4b047c45777f0d238219e99059da2744a9531d036505181e4cdf406449e7d77bb6dcb50ab7decee2c750300169c6fba49b9aa15f1ef2d78d6fadb9ffc6e5558b10521ee856a8f6445959b4a480a3e511e270801c782e4839fb152198c4e45223b7b1ecbe9447e15bd1d8f3ae6ce641f106f3d95ddc11b90846b88e4c241b0527374c0c541ff0a01b017e5437f8fe60fea2a8a5ab15c79a00b7371af198ea888cea09b28c01418f1b663ba5e362734c3b65ac351d608a5f962f0b019e437dcb0d3998f99ffecc2380021196f6be129d49cfdd25d39729c0eadeb3e56a5640957213b7a8cfacb357faabee5ee2b8fce36b55277a75b8e99a0a788ba3a2e638e172c98672e8d74a8aa455bf9082cb6d35b0bab96a611359e5d7b101a88b8a8a78a35f3d8c14571e1b6eee0643af315db2465d674045b033dccb0d7829237f7a7e89418c05309492ef6dda317c538e465854241674b375c6f409760914dba95510cd17453e534b43f46ee2f0c0cdeb0b2aa3ce0b39139f2ac761a841941aad9e50118d06c9d7ba42c7240c49933f841a999610edc3393503cf2a3f726161d750aabf52cc3578df52f7d04de9f36f4bdd03e07b00add772b1f04a6f2b753d0d9a5835f2da2fc25a1f0f8ae8b0e682827a48ed3b1bdab99e2e1a93a653cf3a7335c33ef0edc7b0f360905fe659019022eb1ca0666a5de9e1eb077fea62dea90c6f0000279ce015667e5167cb9571909cb86262fdb3fad9af07832a005de0e22fcd1c27cebc54884246a6f64196e9bca6bd768d987989b9820f4b4ceb79fc96946bd2706f6a84badf99c49db4521d97955da754b25c596047ec5284dc5b958e162bd19a2c0dffd2759e5d29e439e88d3f79cba1b110c64a1bf300678b84f67406fa09e3e8aedaca768a549c8a271093e84b855f0bb60bea30ace88ed2d8038efdfa1391a914bddaf312289a4b57e88a2191ccdda38e213cf20f7197c68877f1ff215569f6e934587e4349a7593b54f04dfcebb45c5af5f342daeb2bdc47c8eecbfbd502d86b5dd104cad111a735a650c6bb9256dd87f7df7ab26d2e37582f0991ad7b1739a8add536175941c4219daa546b3f2841f71ce36d7484613b197f4178943b6e8aa6e79a567396a3e506fd0de0ac70aa191219e9706550daf242477d3d5b9c9f96b5ee2629b5f8f4e0a73348d9fe65f152e35fab0efa8b00391655464390dc3fc7cfa66a2eb665fc80f6fca2781e9026feb29cde1f0d0c5f14669cdb1c5b4f7b9012a8d31eedc2a9c450340d6d5f9cdc2664e608ca340529b11cbf2e87a9ea10421bfd471e40d7ed939a7513826c04d97badb00a10f76aa080eff4f5feac9b6ae1c177c1e39ee963d8f2d76963e9cce1 +result: fail +shared_secret: + +# Ciphertext too long +private_key: f8083c12979e6a796e2d678f7c091bff420e4df505147570488cc8fff874d9c970c2ea07eac444a874a813637d4e264826342ebb282e76689195db522a238b4d8a102d0750a191a2abb1141922aba3ab82ae57c03714a36df4b7a42401daa7059edc38572aa1ffd8835805b68653bf27554aecca3700689e34066dfc4923279947e1156d95c73e2a84b1a094218c08c2d77249e5c98f8e5129f2c5abbaf74767c9b3d7393757d668ae2c4d61cb4811c4a743ec83178a58b2558f0afb9fc2a784b0a01b9863249568a25e21a7cd08cea1dac821e815e3eb7f145548ab718e22156278402afa631d7e5b7f79910cd5a13c9549ce1901b047f14c47f55487784abd5c08fd10979d06cacb8a87df165fe4527f6cd5ccfd389838db322db858fcb9a5728b28163b76bb19c1317c20f952b9cdccca27c56b5d62b799b0a484152f8d2b73795ab81efb6f276c5a8b0cb8611652ecd91259083189216bf905446ab40538790aca7048941c671f1b509c2737a2a204d4e0399082bde379c03babbd8a602648d9844737c2308904fffa229820197e1a3db050414c1b760b4a4c0c4c198db078dfac5e2a5205b88c4e02d4a280537e09501c6f3a4e9f884bec9420e5b6a59f4b9bad694cd9501a4fd7b4b1e87f929ac90480a41250c377f207602bbcbe613784178adb87ad5d4138908351fc20375a990c20bb840f00ab0d421580332ee0b41544909a3f8c34d09c5a583c97c7064a15a240f9554f0e0c88997aab06a0952c2b5c44b68922f624fd568d1b904af862ce02cc7e22d80004e07602f9cec96922e1baa700339ae122a7834559e79220002b6d21092daed3a72477bac4881a91055d16245dffca053696c441c9025060266cf974d77243eb458e0085ac32b347583613f0d361d7400f0ef2af97b62433623ec536856358bd6ca97bf8c60aebc83ffa5c1a2094c7111039b6c35a9c8a1982f9bfd3a076fb81b7ae15a4e789c3c7c2cbe7213a4e954007b2974419c9942bcd14d27b4a0b2c7fe587b18703f8db995820c34deb64c632bb694758ee4128745c281871bb45e0b6a6080d0477a81e6698d8201f62cabfa3c947eafc0a73ca522f88cb4904726ce2c7a8c31dcb68373c5b5158829b4b53a5ff2a30c7ba0bbe3301a1e3b8d49c8d68115b5e274c08f46d648a480a3a55f49ca565953bb091622f05627db7c71c402f68a29c00b234ea76941c178adf08829216379fe8842bc24701c9209a135f9c556f714690b87073a9347b3056c219836a27047bb50b6eaa840563b098d55967a87a65d16a4fb9fb3a7ea69e8275b624f61ee1a398b78712a1fc98167280d09a9f06e416dc586bda7343cb3a5713d69d63803d204779e1e23673f57f681c1e49b6700b705466ec65f0e102b72784bf15a396492cae8b0e94ea50dfd5908ff1c756437e52c8aa300c2265a9cb9e629cd577975ba9492cd8577dc57a29a20e379b8639a718b60a7edc71b546cb2893ba92cbda2e9030ab937b8b405643d38abeb96150f7d22789c7a370892b05947a0723bf2d284352699201712f68872d4cd962dfa4cc69a91943f23f8db990b8772b8f99450508567b5783f0f37878435f5e119e0e437947928642bc81b0a262bf04ae9518039b27cde2110f363705e0802b02194cdc85a5c94497f4024cc82cafa3998ed82523a0469fb38bb27a9bae4619b6cd7029a5283dd6f611f48255b155cd5fb7907ca9559303b14fe52bf4f2171cec5ad683387da0c63e41b9e0869d62961e3387a12c7378ee9107ecd3a91b35836329614eea4554272c9f24021cab36db015bfc7735aa75c3d255cdff6a648a977acf91bbdf10a400244e63db51bf5bbda9552ab562859e72449214c278e96f41ec121f20ab81b19323006111a07f7c6066a4f65ae7a4c4e067405b5051a21a07dc7a7257e47e2a87c4d5796b4da779e3185c6d4ba882a90134bca09eca90b8c57cc33548a490b1c83a6f87506f3a969d184072d5295e0eeb74c5704465c660d21451bd34919261b327b234a5d44772c319ba32650a571880aab94d04c757b5b0be6882acf71c313a9234e35aff6b9992cc82de4232888764ae1ca828da71eb6b4f18387dbe423a000684b01aa4214098b0ab9455845b1e18ca4739b802c49c698b9a0b360c9b4a96b6c80abc678912e9c523863f7a2686a9b29e64e9b3b9d9a5441cb5da223efdac2e264c111d0824855a3a67775734b0a0292521e2726ac706a19bc40fa485714ada047c561ed1f61dc05c7efadb894d5a79b1bb01e7f9699610638dd76e70b972cc728807984faf7a6e13676cf5c37d2dca9933695ac76b732009cdc5b29dd5022f9dc6bf8af1818f962e93a6be9f812ad135a6530010e1c8bc6fe8443a1b07d3ca6f97d9a3fb78187f972ac5073def8b54f3680d4b2c96e1dc860cb0054a5047090b41113b66003365a44a2eebe8a0d6f280ef30141a77c22dbab48d932d3d7a5f0b9bb4d35601ef43318bb82529b84bec326fcbd5736fba66221c9d3643199e7ca9d214510d999cd908c06d4b8359213af8588c41224f005b5d9ca4b16653afe17b640ee0337d9aabb6748785115d9837979658beae2399a9707f0a3b202c190a7b592156e7427a4ac4d4ec00d0b35ebad1b8d4c5c6775917be5273446786d26c0831c6ad1ca8456a7891e087316b7c575293bcc9284c9d93b48a4ca6c135625df10e8da31f2507561d090d09e51211492d150336e232330d4120f5b255d8a4509c338cd114baac84a7ba360ec7c133815366ea46709b5945d5ec5df5e3abeb92bd52f759ecc5671b1483c42a9c712b5b22b11748083433fb601d92152a399f0bc2077014bb7438b3355abc3690146e120915820a4f1a3578b26aeed9c71c7c069484496faac5812379785c2ba1107e8fcc502c9c99605199416278bdb594e9fb731d853ab370b260d9566be76f26413da3d483e8b6bf11f04e89db16a73241f66c29e96a2f1d971f312296977a6779912a0a89b12bc85ace095d3a567a6086ab27534f3ff46e5de68eacbc19c2a533bbc508959a291a36979a57bd1df69eeb748b0bea0db074016dd1acc2284fe24a8293a00bf02487b3749ebca202c5cb9863d962687b6752ea620a5a5d3f6717a46a2286b12885067c8e5481982c0266b762a301772869a6f0819a6567a90234509c7b4051208597f96830ab45e2367b749ca16afca03b74c691095516f4cde22091495a07ac8677b856cf93088cd3007d6aeb7b613523b747f03d08be1373162095f599b7dcded91b19768f9e7f1ef02834036d0d0c9abe8c675468f0831be365e3e0887ff70005910f59e9e087ade9d6e07efd557a90c5e4c8f652a9ecc2cd5993781fdb5f8439018af1b5424f910093cd2144 +ciphertext: 53ea8ce61c0ef1ba35a45e4b61e9e8e18ba97bdf0868e5d65d9d81cd5ab33104b6b2e53dd83bc1e3d02b12f5a8aac5b134cb5829a876651882b7e0ced516754062c79b7ff1cc57cd221b97c90ab0f75f1db4b5e1173e93c12b2ec1bb9f44c0b1a7bac6e308dfa978da22bd5f4c05eca050dcdc35b1489cfd1652028cc50adf77624d824952b9831e2a2e821b9539039b3d1b093c2909258c9a79ca68132b2a8b5b27f4fa0a76e629771fc31e4ee0b6246421ddd742c69dee53029d121ca0268df013c0f0cee458fa506bc34c28e5d8c0f91004bc7bc6745db4a8c2678c27e3b83c95bf7c9cb76400dc26c18639e5ef68056283d30d669d29bb2752f531ab246792d9b94585eb1e723e960bc25ef974337913d5b61bb2f11ee56695ec8671bbb34fe3187b7001f4c435ba009f36400ecd97924fbdc3bc2e9d804787a25cefdff85aa59d527541d9fb0f48536187a8fe6a511b841f46b291c34e0df5d64213d83c66b0ba1816980f986fbb561197551a552288d8f5521d566505e1b862a7c2a7ee46eb53a6d5de7340322635eab34ed031151c855d38363246021fdf2817dbbc8c9d4d28b2872166c83c5f9ff5c588b1749f93c1e55f13a810beef232c472b6fac674610087d87e5365bdb5ec2b3a9cf2f1bb7ec5d2358845bb915c6df43dcd863427ea0034d6852a9c49f22b723bd2fb085830af8737c3f30385015ff41724c979ca28fc7f869175f486fe04b231b443bb61d8199d2cf745d0c2df89eb6f09db5a8b1c977da9f9b14a7f1a2824a02e9b31cc3b9fb3e57db25364c04ad10cbab72bdcef82ddc9f723c8413b4ff422c32dcb62b7f7dcd61807803b1c732f16b1669aee5651dc83af90f05e465332361400b7e768fe5c237b7d884a887a83a9a1fedeceff2733c59ad6f871325af5a97a2a8b586961f31cc187cb003285e72d579bd2ea9facdce8f4d574f94b2419ae3598bc97c7006a1686cfa18280c40883f3662a031b81cfe5b937b8a56292bae4d9b44dc7857f88cfd3f94a8add5a25aba829fe66708807d40fc4639850d0f8c047cadaf620302d3f2d8d1b57bf28edd729b92ed3b721a6ecea4ea653e1650ad692431a68ce1f8f5fbc165530668ade2499d19d4c64c0aa62dc17d9a07d1bad14c5a05e7aa5ba679aff8f4c244ab9da738221120f6d054045061643b8a6b57af705b08423fe81447de3e85a02c255f0fbc289d0096e7e3e1fdf96ce38c83f851af23e6b321dd0b7a69b92f93fc637d82a9782708a19f004f27d3d11dcc5147cbadbf1eed5bd1d6bcbcb02d8286530af0758722bc795a055c3f9b7eb7f0d81059d079baa5a996e567e976cf3d6a1a3ccb2118cc1969c5473744109b5d87abcb30f244675d467a14c3d47bc5b6b8a35003d81e92221745ce393519014aec65010656a96fd78f102af2c05d87fb391bab02ce49cbfaa421c00f011c7be6ab0e8796a93620ac00d00ef3daf075ed176e794251b6be1f2c9083dcf34b8922e43fbaa4a30e7801a22a6a5f97093ef5089e8882021ffc8ec10a914a45d06fa3c1eb +result: fail +shared_secret: + +# Ciphertext too long +private_key: f4a3c341d760c15caca9b376dfd3525623141425b63bf4415e285ce5b09547579e27348143e9b0c7da8aadc0882b8332054004ae5019d0123464b06b4157be8b2847cfe91afe24c6c067b7ad102b486c295ba92936b473dce33e92b772adeca3b09b95773012b1b5189c7c6b7e397e04359d78571b5244cb8a2b78b74ba1916187912655f458877e22a5cd8672875c888710523c5b575a673d963649bb5b30f0b5209e3ab572965b30140f6ff76eafac9309a579f2e0b6b51089610c6bb4486e59080f0c074e79a32252fa06c2005e218160b03642eea12a76f6ac7a3b64fec384da8507a558315dc4ac98e8364098a7693a270159345e200d45e6597c31623c4c3436b03f9190c3c2ea2c49c81a07123daac1b4bd40a60a849baad9aeaa7928bf6c39d5f61c11d81034c39d87f7cc10513d00a50d4cc548ec316023f902f18aab28f95b116760caf8b5d1cc3dd73a8b9a5521de348f5821790c3924241924a64449c7ea01a5d0c3a3104508b356af411c87cb0eece4992de083cb282f498b23eadb5cfa08b6066a122a9abb15a47d9d213fd8808e85003268d687d0675e60447f10d11368823401f18b3c27a6cf595de744c4144b9005ac4bbf72c79786240f4680acc3c55e52b73347beb614cb8eb8485aa75d459a8e616c72377140fc3c35cb5448308240b72045b0188ebb86a6b8f25b745620aa50725860989a211a29c87d4ab3435763b4e4a40c5ea774ee024598605c051c177d73058d371d6717b880197ad060b1fd925e3b69aaff326045f608f2c50f08e5a33496bf1f147680e652cbe5564471396e871ebe495865334158a9742042937d091358f59de4660357c2033445cef1da40b500542faaa02fe495dba5bc49f77808036dca962cab5883552cac6a8465b3f04ddc7743e1558186e8c71b5b246b095536474f5e753a5f979d8fb17054c6a8ab6668960514ec464df4b8608623c50e53b6879aab644041ba0010f4e586cbc24de1b11fc45366373a6114555aa56518e98b5faa05222ce5045072cb9a1cc255e9706d5950013984e882b86e603e1002ab6d6436804995dcd2cf9c1360f7223c803a5d6bf68cff3b8c21aab8996a5ab67015bcc18fa05511da4c25a6720664660bdf494b320638b96b20b5e0c876e86bc3767aefa2b1adb15faad19fcff16ebebc04b764c0e18c06ce682dc51a41422278e604632f68730e8c51ce961ce8336e5eba489fd696d33b505845c5651b284655bbda454c4da337e4c3a36734191d098439d0716a751fc41ba93c155f5c9720b5c9417a669a147ca2a0ca8027529045071581e6c75b7b987d1b596197c1843ac545955dccf38cc610bf7869c2cd8516d541ceefe4aebd7005267ac902647a0f95856847b727f19de139095449153c83667ff674bdb81a18456da24986af17b92761a168411a6177060e01656a2b127ee84f391c91fb4647e27533431277cb69221a9b65d8d4aefaa50a7f2acbadb5782f485a3aa013066639dda561d4a02145e21d982b0a12db74fcb28d4d187bead6cdfca92d39e02abbc95348666fe9203e20e66d9b841371488d11bbb356142df77654e5a0ad44053f7e6cad9f5209c025516678c821c153bf967b0ccccffc9b08e9204391688551890a3117989dd02ee0a61de04292cc933957ac885c932244c47345e43f21299e61955b13501d581617c178b16f298e1d59386c37a7cec64d214b33d37aaf4160af23db14309c22abb08d4b6b1d66173c10061482808d9b781e9903949951658a6c42ab13554ae533f8e65cfb5978c0510e65ca88c4039782d67d640a319b76929e677862591cca367cfa047259c98272e3205647c93cd94d6d063fc19c4f85f56d1129a35c9977dd286988a92f26b6731ba8a55f038900082681332f5701b26b853069610000a892e9917a0c124eb9a6cf73b005ee54adca19579751754763b8a29abfae796673cabb128acd834259d9da9bd20aa11b3b6bae1941017a66b3073e88f81c2188358a5a6a29949a7e334a2b9a843c213586381d36db8922a39793533a43b0471b1474de30715ccac408787519b01ad2e7bef127082315951ed68e2a349a79b64b12ea00db4344e4a3bd66f44fa51347a4809395246a135b38db42bdeef6b87d084ad307cc56e4757af854a7147f278a2143650ef17063ec1b7e174a61bf9652e05492c4e67538576167855ff2069c7c551422025ddb790b222893d2cbabd22c2689d43fb714278b7aa7b730688ff18122338b108729151850e506ab646c2b460045f83331450578974075e55259e7910e2cf8259dbb3520e51ebf0807add9b3c8b1ccce976e73e08caa95474e742982168abcf1148a13518df40664e97c54703d3d9c2ffaf06a3b3ac6b4c58ac206c04d727834a89a2d79017465c432f614af72abc10330e0da4ecde3a1aba43ee415830d984f0e99c39eb77dad642b0bb852b038b43ebc8997498cab009836891d83c32cbe41bfa42b018e265db8d75869c08a16664714c43cbd9b2dd3a5af9a7cbead98c9af0575c726910494c882c7acee77c01459233772526f82082b9035f90b6f49db1a5ca8c60a938cde57b4bf23c3a179208af691d31133713c8ba0bc16dcc6c6f012125b253a22d554855985c1b15639c78241a3617853b077a1a842761efe0bcb1bdaaae7794f91ec05c4e94a44544b07d300dfbb9ff61730f68ba94f34a952e5b37c3a0824523ef76c07ff5c907bfb147f20440e85240af73a5638a2db9898fb855777b20429473f0ee2ca886c4e35e72be3c34ead78a895711bd9e26177a50e5306b8ca2a775fe1b8cdb7387ed14200235ea9e7587625296e911a50f08a8b8703cbf12b72737161caaccab8885ffb4324d6ca69284fb28a82855220c34339420114892629f6e23afb653242691188cc3ef96a7fb8cc7accc37e0acc4b2923a9e5991cef3a74efd416976203ec6a2e1af12962d00483b895a4559bd1198330371972ab23c7221bfebc3ecb7902ff543415049c0444177f84543a717218049dc5178cd3ab0e21769e40c350e039a02ee616943cbbd5d396fe01ba63f834cd850968115c347ccc9f794869222248b016b0aa036de256f81a88e0bb97ff682071117acf5635348b0b4d34abd173c0c3ca940a5097a9aa1394b3b028870676593ce15283d5394a3bdc0888989383201e95438a323a7557887553304faa0c1f6441930443a023a7c5b7ec64a4f5aad1fc12b9e3bf14c7984fcc44eb1530729d73f702c4d9457503e3575b207b017f6029b29c57fce8166e457d0af15d769f91c1fa8f77529bff9ef1378bccbe595ce6c7b812415da33a27c1d0da86d151204bbfe19adcae426ccbc269bcb58c92acb6544c1fbf17ede65abd4716ac135c +ciphertext: 63974695e3472678998979e77accda3dd1d3c5667c47c090d7b51ec923fd5e22555d55f0a1f91be1cf635e54fb8d4dfad61d911e3bd34d33f6169be1fa13c28556b17a37c2871c7847a2a7796d422be9ab5ed8b9b4936878ca26491b733b27654a39e80280691717077323b6f9eeff713e49e1efe98fc65d865cdf24b5725ab6adcef6ba3e0a4803c3bef5ada99c411042dba7a679aeb9d22bb606568bcb73d42bf8c9e26efc7f0492186ddcaa76265caaa268acaf1c13c2c8f154f4478de17a7f7c689c791f99e077881293507a42ea37ccf006c89a4ef69879f5a0b75ba11ee4c42d49ac9cb5f414aaff9e2d0af12dae5f4c5525d3218e2c27d80028017c9322d2c619dbfc4d3dda9efbe1e18d132f3fea43be802ff41e110aee94a2b8b18614df42e6669fff13bfd6ccd38ae2a706e97e5c18aa9e69daca6279fea6ee3cce805ebff5bde2b2ad682383b6ac3b9cc491b73465f58126fc79c34127c5b7d9d187da0d5cd4ea84d6d7f02d752d9aa803079ce72387ec6de51a1ff031a01e6ccda083f46e93fc7e477505ab6315e5a94e0db8373bf5673ec39b82634c7517c819f5087b4ed7b1e8ff0bb25b22bf1dbf024b21bb7c868b0ab414521258b819df9123e8351239ea8e3c22e2bfb83901b47c563f66238b1cf5c07cd1e9464c82b08b783a72158fe1ee7045d0706f7d5558421d23717ebf9eb2a947814ce074796f7aaa237d37a01af0a6fd8d4ddfcfae4c9fd5cf5e0ce8808591b386579ebf9bbda378c4ebc0c83b653b2ba67e8c9a0026496e43bdf357cf3e7be4715b0a9eff6c89b69fe0b643adba1b65d516d281d91f83d13c77479a2413e1920e7083d7b4f71f50f8a49430f55bd1ad3f6d99a121f7245a556403e24101811dc201b67746ce9910064619195de1c36285bc5cef80b683de33a8e69c75c9b38597ac54fa99b5a6c5bfe48f2c558e19a537c01a4ff192e259bad9f26a7aafaeb6ab6c428bf944fb70804da2e2bd34f4c3e10e6051ad15fba46fe52c2f7c1d345e5506b4aceec4318c7887098d39a7ae1a12180c3e700a34e26a302dda1ee2ef04f3df0a78d5be7e18e5f109a619f9cf033d92b36bb3cb5cb2bfd866083ffec0b02eaadb12884367cdd7512722ac975318c325d5a034ca8b109c62324fbbc41140433ea119e59488166fa559a376d0a8afeeebbcb75b6e3a9a2f33a47e692e573d16b3f32270c66ca222b8e5238832362c84b4f501f9ee5c14051855eaba14f64b87b5d133d7c55b51cd7f2a5aefd3034aeea647db7e24b176f3f82d492966a4e5fad52cd424dcec15893a2cde2442dfb94bd6ecf9353cf1fdd80999fcba70fe35b7a5175ea6463a1229da63d406a47a46afcbe2ec698b35f64dd7270b398572c59fffa2cf249f5d9ace044e025dcc0ad8d61399435e89b6bb85046040a3930d1cd9233236555789546dac393815399a30c90f10a7e383890f9600db03124a3b1311783c2f4af993b0b0ed8bdb3d1b8db791cb01c5523f4ff1dc7ed46c37bc4e1e57cb14db628250498a +result: fail +shared_secret: + +# Ciphertext too long +private_key: 23c97ab4f30c9df7b37d090399a9b7a21c69c1169e012259332939f809c78160a4c2b31b91b5c9f2a610eea91f12281d0086734cb62a71372ad2eb04b83495432184d56b113457b3b592ba0a283e5cca5c8ec88c9504b69e9941fa015e40b44894874861820fc413bbd702014fb2915a915cc3b9b44bc2559900afaab68f06e6203bd46e2436a1cea509fd0944d3604e0e6a052645a5fd3118152024351a21893a500970a2edf07b00ec055ec9833f8c8ef6053cdcd483fa8acda6604c1fb4b562e5a2d4c8c4dbf50b3662b48716b4b5b19daef8bac3f1602e628f51c5b19f73cfd25a4471c157c88b0b7ff05f1b23aa067968feb9cc0e0b9860f8661017cfca9b74c9c13a50db99b6507ad3260654f49d5b59a8a7f55e29f9297d309ec615a645f1c29644c8784cc46c016cc0cba9c2d8a344a6ae964b7b5a0136bf83941b561ca26bbf84333fea5c90727417432a937519692e6755a4879b92dbac66e0b6ed0537d431bd353904d453a5588c7b6f62c58694ce7832ad7008a06d266edaa16bfdc080afb86f832c07d8937b29b57d08a462b9b889f009980c3aaa76c3178d6b375a396ca6a2b6140004f348496fb322d246b3a2e32df394294a7a2047f5b3a7f46636372b57c2caf76638b2880c526a8099312458617b40e38f3a8cb9e0bc9423b9a430327b4db91bbe16ab70e626749cbcfb6095962185037972e16221a0495e50182793f41152a63cebf301b59a27829aa1ac2c869da694876a74f829a8909931c2a5700f3522827bcfa59cc9e266c993d0a635b97fb0bc9afe49855361640a58c548034385599163d48027f81523229311857621132c508aceb161c81413257695837484cf3a33499ab702c7851867a387432b38c2d82390b90961c88b68c5c392bc4d226765a2807238e070c694687b685d10d18838c40da1f27851e52f1266b6b12193f093c9d6caa9c76b59c0d7209c812b94813943579d68b4086cf3b79510198be90e5677b55a3726b93b03b3e9c585271086f73550294148a28f3bb1b7623abc8b5b37bba49f207b6c0284910005c93ae234a3457dbde8c44cea1b76334a21a6b10c5793b67ca2d417b55a4a20b6630cb6ccb18272be4f8977614b87305249bba06072f02a28a02d638bb8a52765da941793a2937f89546de60f55d159ad72434e926554fa6692323d9db1a8e9f0ab35d493977a26a8796203fbba0f130b962bce76090def606df9533f1302ca8b234dec8c00cba793b20668cd571711413729722a3381cc60877139c42e8f072291412547d88c7af35919432a1d1a3b698745f3998e08b1770f666f344b11be62679cdb6722880eeec08d39db8da1794398e183f9ab1771f350b62a5e3ab88d1bb8369b693fb5271c0908b7ac0aa7481c94787287e70a57a4a819564bbcd8f81497c4215f1016ea4188e86485d5b7680961c6360985a14136f92892f5e27686191ac5f390dd70ad5e7c6b05ac759ad26c310288905469e22c27b0a08301d7808fc027f63588d59711e68955884380576175a2315db0c8cd09ac1dbacb3d82e4c66abaa51e486f2e6391c56bbae1574dc599b7ea087dc14ac3c77cb4085808f96cc77cd57fed160c0497587dc40c0bd5735e419ae347abd7cc542ad30ac3d34063c552bb5c5c6884c1427938253601974b6f0c0b3c46640a92d5c3ae858bad3441ffd34e5bfc3042d26eade194bc8a3f46dab79107cbf231c0841c32670a41c9d02b2be7790304cb1f37008c36878ea008ca07c7ac806e0c4c7cee8971e7a25c714c269247045c0841ea3b26487a55bd81167a9970c5095be2c3169e0828dd962c1694884f361912a936514599333b4298f8166a8bbb1eb579a63b0ad256ba12f562a1968fba500cdf5419b8a55bc8d189da288ecc253ee791ae73001dd16b1984513e0aab0d21e87f23f914367abff2951528383851033bf1701403e28da1c56ac9cca1b5a3c722444d4f23c393982a982c9d3bd916dd447f0eb7baa59b26671cc0b9dac3576a7ab72c2e1f157fcd0b1e6bb49a9f62ad09333cd8e32e9cdb91ea3a5d0b0a6da061391d1ab48e724f93284ddf06991c7c7c971a28218716fd82973e24a58f0103c6a87899d01f602258fbda5f5e296249640600264b9e04ab1266c716b83a46c280249b1a02ea8c4cc6aeb9c55d45eba1c400cd4fa0cc1a9046600372311b68a820c6349490d9c0271ba4b6e4dc3cd4945235889f33b2a594c18a6b25887816227a9b22d5b40c253a24cc54724e5809ba0500c36826e016320c6579261ac5190420a9b4ad7773cef02875b6f19f922c0f585c20ea4c6dd363c5dfe55c32a2ad7421005ef2a0a0466001d8398e41c8b3b5554f0732760b8578eb7e49fc8cf3a6ad52486cac370195705ca479b498116f367c16da099f48a182f4a7498d25477847c578db562a772e3006c02e7c1cf6c169fa495ff9066c8c1b6a0d790f2c8630f4b7352fc6bfd4f230403299f26c98b6f269e9f8b54878481aea78d14097881c9b58ca9ddc626c40d3939f3979e4a35de29447232cbdea0973c8f1c738402511727357185a9687b3153b09d563a3e737843cca2b95a9b82e7b23acfa3ebd47c7deba5a12b43a4468ae4f482884a85a592c2aa61a7bc9cc7e6cc539a5ab800f484b9ce1c03f3314ec1c7631d34edea5cc327b92c2675d3fd72196795d1ca461b9f77d5594bb4d380e9a669191112b6bbb8679593f33295f50094703c5c11dd883c3cc67594250199ab9010aafb9fc377c337b43a6b80ac9bb0e67c8e5b90b5317b07c602d54019c882bae6d04ca853c08a3118b71296c5f1c7e89055152870f24382d6c1a127f278189d6c9f5750cfc435903065cc6492255447092537aca35a7c7f59c1fa86952cb5580a23befd21e1483cf7cb9115ea3c844e8812e001d2618396c19a773c3bd43c5a743579674cace3d7885053868f22b6aee875412681a92c637fcc9b53836742d281026660f04aa35f3abba38412a6ee4355a362927574d64439b1439867ef02e4e2520f3a037e7221606787ca057136fc65277d30048dc02b5d696a7312cf4fc5237d7ab8a827ef0342f4531705343c9512bcbfcdaa010ea92eea39a78f3264f821cd09c5b3d80bd5a7ba05d86375b857faaa9832e115ec0a9021609ad901224e83061145a9333705d4c603e20aab10b0b44bb2b9fd4185f0c510fdf33856ed888fa87129debbb09d8406be63bbb9c8996238518356905a4020aa517a9d3522d5c18bfdf7fc6c86d129179ba82e41d31703e1306ca6a7aa3fc67600a51826fcf600b5d1f2318dfd8a1642c3b2793062afb8d9af1e127c9bccaff11577f3d69d50d8e05b66a0a51979553243a2a5f911385d3748f8628d1917d283eb0750829 +ciphertext: 598d2b2e7e3456bdc8bbb25e8cbd009bf6df7b5c466ae93f8839b12709c5847bacc127330bab0605057605f49a00b7ad9c6452a4666f4ac91eacf6f9f95700c519714ddad10a8401fd5b666b3ce8d3e7a26f45dec4f4909b2381f38eba4b4cf818cf462908468f185e723754b1e568593768a078364d09ca0435425dd733a7f42f627d57213f023c61fe65da374b066276a4377970dfc2521e182385715434d148f49d8930c894bed5f0e49f4ee08d4279ecfa4832f36857549a46d2cc1978fff3ad898c393b6e0656a0dc540cd2395f401a93511698c358b7ae80e7484d81baac1a576440fceea80e6e51d78f4274d81fed3962ea146cba4aceb886f07b868451b7ccdb1f25f42fc16f5739a103de0df6e5ae058ce99d8c4f9486385e08a27ded873c5a0e2de558983836c0176302c22516e425a681e6ebd59251f74b3ef5cf3b247d03162e8b9852b231985952a36c856c1815ea6d844903809ff971a797ec220935f3204914916ec6356e83a73e626e0385fa919031b91156149057b3fbb878a6e9ae4531079c675cfe09c173d66b0717b7f6f740d9071c9545da538b6f1225990a30b3645185cd8134ce8a2142c162fe5306e9582c2d86eb6dd3ce179a73a24fbf8a0de8eff9525d11f169bb433565afb31c27472f165f2ab81e7e2e09e41593f3b6e7914b4b0bd48e23e86824d226728985750af82496db4add86624716dfec149d8ae859520d6a27853b171db909bdc37e9c5d5d2212698d254074a1aaebc25114de210853ab76504d8269b78efb5a791b6a44b24fe7b1705836b23f9516054382dd830117fc06a12d457359283d1dc07bda95fb71a50acabbcdb50c501c6be745179106a101c6aa33182f435bc60f1f7a1b5249d35874527e4ede6f47405a16f36ca5e45e7dd9a6588f8aa9097f2b206fc37ddcd268cd0ab939647d791c65c4dab7b40c8946028c8b4400bcad935318be922f874c619970f3f5a7857e161bfb59bf41ad7ba5b939af0a7b888ac8c1b09390b646c89ce431793933df0897467b766c9cca33a42290a774a79f4a8e2e55f979358530e917739d7b48e99c4210f8b506451e5553138f8ad3d6528f2a6f04e450b6f41e240640550d198e3e54d7addc7f29ba110e8d244db555b5007ab82b09dd44d2a3adcf8e607eb13f8cda9578bb1b679eef313dd54a654c29d89be24f2b80721cc23eb14ad9e41eebde91e95f55f2c4d059723f4bdac35e7d599450309b8b16ef6da3028af31ae62a08c91b956ebcbb23d9f7b07e5929cb630d2eea5d5b724bce44843ec7585980a145ba7b58f51237362aa26364f6e31ddd964641b5dc0a31270317192db909fbc728465d0142ac0d267e2f23e472126b71aa12c5398318f1f1f671e76dd5dc17861fab0fa3222b2390bd469202ae1c8d1b69a6ec4b23d742d900fc48b0c301da43c2b8c9c890aa31c6cbb652db8d5d8dbb66c842f4df79071971e1a94adfd83e6f180b7fcc5b07f3ed4b8c03b4971bc6155ec4b249efd8de6811b81ef90a6ecdfc941e985d731ab93436fb2c13d9f46546fdb40b05 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 32fa70ec626cf4bbc2f47c833015858dd154e29c6b3307a19752110860bcc2e6bb2067965862109b43907b0126adbcc02cb48a8e50b78cb6478b19520b446fcb8043ca66b70178416d6c62fc75c1942a530e815546975f180c58d9b90dd9937da8f686ebe85189cb4589fca0c7cc9c58dc98ea7019128bc9f9ea4c613a71b0799e39ec4d4091705bb97482731559224804208a8fa523c18668c7581abd9a8aa801abf3c7868fc232d5638e022bc87f4877ce11cdf1e74dafa0a235853f2cf444f9422f30d02a7ab36b873547840153693ab52209838c124f1943bff7a519cd822bfbea2eee400ae9b87dd9573ccb43366c09ccc3cb680cf49a70705b43479753811bf29b1dd7407a43ab8518b4132bd35f99b780c50b3f54a66e16015ef6c84f95564dd7fbc2b318bd2556a68b585feb32af1b00c536c3840f8678d7f3c8a0b5a410f7cbbbcc3148b7462035c1b9672bf55940d478596c3934bad014b210c95f5103b2a13c20ea54fee0bed9cc057d1c31d296448c4c58b9151e5d84c421766783db20d88a94c31b4d26b84b12c37343c34f46b4706209515ddb571c9927f7c8bd47703c388a5944842a53c65fb081075193a1801c45acc20378a764421712b9b0c4d12498d33c78035017e5fc69fbf795fdac471d549404bb8b4bc39bbbc9cfd4ab7226c495c7e262824193bc862d1a347075ab4a854289cff898ec1b68f45671fac064191ca675f836e65b736b681b12caa39e3b978e11cc98187d279754fdc638ed9a258b48cbb2bc5b5940551aacb6445a07cfaaa85f781860b5981117cec8573b978abc3263529b6cbd1318c5dec087edd667a0f00ec66ca4c91bc7caf3222bd79d2c9216d7ba6928a4ce3a852b6485409e243d096415e2859a826008f38a753b9372bd77ba14e1b6501ab731257291175b10895961b5bfdc56662077cf67591d7d1817c70b01a7c32954891ef6588da84b6c0258c27c6860120a91dd8b78ef6bbc683bada173526a7173ff9b0990f3bdb4e21e81019b276b4bca5290318494c7040072d2a03f6c949d396ef5aa93de29ac5aa2b1c5a204e3aba83daacddf1b3661f253d5da0dad14cb1bb7c62db9226942c5e578503d89b5c7a8b075932c93bb2867a25a77d5b203b019b0b8ba8e28a388f104bb5b3f2e71bff53c892a2a4092d3513ee250f4a242e17c640fc82d4df773b4fa671e45a755056ef5b1a6bb0cd0a8049e6f37a22ceb53b8c19b77d5ab39781fd70c7cb2a90588ab9fcdb520ad926a893ac30fd1088b892672033b06b14ccf65721eca99a1d32ea593b228cabee7265a84867cf1623edc2c9b7069b37ad53c16b68cf481132ec23ef0483eadab813265b625e7bfc6667205a112fdb87f54117c9bec9fb63bbd574ac0914cce1ba616007155d129959f877806faa4d02b322665b166b104110153229674243b30fd1c43ac7161c9b89b70454419c15074868fb4051572d14328b1436fa51a56c458ba9037f684a4c4193f43513b16a391ca97c7f02a23e083301f618c54d185ffa0bb398a954195878c423d9ba36291e55eaea2192495265ca21f9f0346fd61939508a509703d52886c4b613f4e49545ada4cd90026623073cdd7867c40bdcda66b7294c0f4995d3f788c517c8fd90b45baf43dafba51b02a8909cbcd3cd4ba9b1839edbb49905c0a17a24d06e6a3dd4b44c749c6261693dd69132266aafdc73c6c5c26b2b2206a957554c728d21b2e34b64a21539f85a550957928c022962643c1b92256f1147a9ddba955f8432b7aab18445e5a52c70b483167635dd702c628e661e632b080514bea115b0b98845c67aca882a038404d8685826460a57fb9bd0758458820a4ddb6071c502412205caf401c29a158e6a6099bd75259b97849f9cd3892399c8c1a47d382f50b31a17a98c8f96017b2a1588aaf4e03060ef48f88fb17b0d1a5f0fb3c80da5d40e108eb7ca178c7a53e34cefcc2326a74155c8b7715eb4e98f824c407afe7452c442792411b35e5921ba4051eba44935c762d12f202482734c9020e7855532642821fb5393551bde5c7cde7e393483b8906113ed1dc9051b66af89a8967f0177d8803f9f9011e1883ce439a60128fc3658516c1ce2f33a9a25c76b696a28c198d3ee2325394c3cc2a50b2123fc8ca484311685e22c7df9744ef8242789710c2bab8017c8204c4b17616abe41009e1a8a59c9ca376b1ab2f8b11a4897ba367036a63b826e3043c060d0a0337b4d613e9463295a3cf3b54c4cf5528a82899df6bbc67152d9f6b8be5c0b9d7502e6b2969acc2919fbbb67a2b667053c261b9a1f55945be4ca3e4a88d583c7435ccadb9880cb69b78d9c47091d2b7f6b94292845162199548ca898583ca12363187a6290a3a9934e98c2fe7c0adc4618b483db891506ec5ac10d05364f2b88fd36227b4c43b153364a54738a57be986c33dbb38dc996358314b4a5c7c5ec92103198302e658c3384171f55e56751f9294735a79c5add335b6cc08fc97466c0aacb4469a3b8aa34342a63c3361182044da264bf39580f02b1972f9657aa575dbd253f11331f8c50541eb2466e1c8e8078da7d7aa340b6e25d57922c07c6c082e04f3584213b24ae75c39d129dfe57f889a0a38ca36954cb551bc24f424ad1a6a704db903e57a52f1e380cbaa5287dc9a23026d227cb88f7c5a8609302605c79dabc956c741e0d966753465b406ba4ef3168b1202c376aaba8624c9300eeba104e8d837a379b995e7a37bca53e04549d5f168f57b4591354b8fc302781905054379a6721367154660e58e21e7335e67045532a5461c13aee3103111840e941594c808d2259817373ff7916f4d6c3533646504c03c6268c698f24c068301202103192422e5144ea12871eccc6850f87846ac87a3e5bc8ba040f769780f2794617648d5d91e1eba50b8d27e80519a6e78026468346ddb06add526d50170083510e9106109136386c324e9c1bc773731b8ab5204d65929c57901e9bbc6b03a7a4004ef1a8d52d08ba8737a113077dec93e4b9623b1284d77810723055bc9140c42e078affc01ccd0049193b155fc15b4d507ad80bf03a61f680017b10ca868508879e38de5524628220170574ea4fbbfc03c4012ac964062ac6cfbbba800811ac12d43d086920c6192b588c04953b272bd3fb0c0873267e4c4b6b8d47a82e45834923c2548b7b0ea9eaf9a6b269606a994c4e1011e91b45e82e17de844b3523ac497597514ebc3e646acaab96c0543575c702fb982ae63f0f8ea9a73530d03ea4232b84b65c88a7dccc4c6118c54514828774917bd0204a0847b52170dfe67cdf0329eea587c96203aba599f1691dcecd088a3c3a380d1627e179ce48a82dbf7b8caa767167fba3d4b08 +ciphertext: 9d5b14d4d5ef3ad5e2e45caafdba66db9e5edacfa7842a3c539d44912ba41d32ea5be2f43d88b4bb7981d3a92bde08898f03d81176fdfd2c64107fd22e8fde3a7563ab5d8c880665330cef8ddb740693b82ee00244d071122186bf80f057f16d6ad92bcf8f274b50dbb17f39c62c216c8758cd1a31981319f757840f758f345373a0bc49e89ab9f6ce166f0c8bd29f3c43cbf4a41c45774f025729fdd89e4b979ee709f41f6b1fad1e7b9e99affe91da14b44f324248205a9a6bda3adb68e2e881e13d54c0d8b473ef5e6e3ad8825aaba97bf98f34f49bb789da6ff5a7b0d46968b2e3cc177200874d62c6f213a8cee09c54e895e5f623f0ffc6ff040a985c8431a4c8492956ec2b9a5660792c319d6c20650a9bbfb8c3713d18b789949a1e66d7d98e74255ba34ebb2153a3174ea7a97c00bd1954d9fa04d830429bc369fa462f0a7f583326e7af69c30c1fc2732d9d408d6e114d722e1d5758add34737ae4e152485490d055a50167e8c86138530b34ee3f0af3cec3bfbe0d38251b77484262e95f83f4e64e1513e1dfef4de1b3f3953018ea3c18cfabf167f5f373548285c5d4ff0d5155be71c72c9742be65fd0a2b0dd5559070bfb41c122985d8261b345b93c881151aefe88d33c84169c02b8aab8385408f8aeaa54813609ee3b7ef1c648f86deee2677b66023a12d6750001635478c9bad930dcb25b71757bce47e0b1f47110cf5ef3e338dc778c593522d42cc594fd83e70d54706ab0f232739918a3de20c9ee63e2c1c3088b7d89db8202ff58789ce403e3f6883f321c8572c50b51cabb0aecdac7f4af3343d900acf7091c5812baebd4cc67663b0d467c3dac9c4b1cb888cb47af0afba0f9257629474128c0d836d03e95342da377f94e8d854a96617ed587448373ddc553a2c919b79e9a8ee676eb918e753da19f7f5fb416452feb6af253c81f5ef97ed29c64b1d2b535b2a006edb043ae0012f818ebfe47bca95d83bc653a3a974c9f0d9a0eed7588ec762c685658b83facbd62a057e13d3c3391e01bbfa1daaee71e17b39b9f301df918ccb0b17c6f41c8b459e870a03c8cc33f428574b5105d15fe57bab6201594462bf87dfd805960fc42955b1ac1b6aa542bcef8d2d53ec89b1ac55397d792b74535e1671a56a4ff5d0a093f09ca22045af7eb75044c94c890939783756f8905f9af8ecd1c793865bea82cf29d757e11b544424c311deb871ab7e75841a8e96ad5547b72357a89336eea474276e7beb11dd36cf9189d06b988fab2ac62f5a1d0fe05e20e8313039e34715077a00fe87876378967200511b2053018f1d3c157901afd0308ae861d1d78eea454814ab083ff0184189ed6c6b0bc2ead449be8b7c08005db1abe3d76ce18cbd87007c03ee4f3671cb5a35b2a441941c724705c80c8601c3491c5ef18bf575230a01480f6f15db394e663dc47e4d8dc956ad5fd76d7582192bd2f8ce26bcab75cd8909533448e0433d0b80f242aad4c25f68b918ca3cdc123f27af27ff9bb70d2abba68ee25d975bbcf051d5ab1da6cd341d8693119 +result: fail +shared_secret: + +# Ciphertext too long +private_key: 7795b8c3791bac51a990d4608d96689df7646708147fb5616b646b62b22dc17320c443a05101b167608fb499cc09603a2995cc57a591aea256d2493f9f2222b52a1fd73c5eed35c7ab766bc7474db5381bcbd74fd61a49591254f593cc0aa4a328127af6e94f9a99190c939e07a4524863932c907d54177846b28ffd9c57a0f71fe4e86a41a39033f89ff118203512159ca0b8b7a3b0ea5520d016b67de32f7e990afadbae2270b4367944bbd17f8b9101835a9e1d4186da6472e44b8ec4575027819b819bc29ec7c96d475ba988849a4c0a8768afc769b8fda3a48dc21463a63b458711bdcc8b014934cb2b980f794880859500b5ce0fc46458ba05141a6e9d6cb927007fa266549e78661c2a2296f38d698085e99254a2120c61a06d55b52bc9695f49f32b943394cf756e2adcb23c46a1d3a9b92874c61698119ff585c8978a71c4402c2a19ced92084c873645c865c60af737385320426bea892baf517d3a7817c7ac4cad176a2191606f2c7c6e1345854a8b1e08573f090c6d495b0262dc4c42c1a34829cf08c3c8433ca913017c6cc2865965b18c52d302f4f414440e59b9f51873a52179bd413040464092bcdd06939a15a7aa5dca6a62694cb93cba1b46672e137fc00b802251ac2d22f21d92bfbc28f930918092c0e6498ac51382f9ed45ea58641f1a8af863cbea3310da71b941575990334ac4aea23f1bba2cdb0b63c80aa5cf29802d0ba4f8798924229366aa9f472ca78a2c4c5f003dfe8cce5a09d3e8c7b01a9864a823a090bc135f37f4da1200766a02eb51b6ef9a79eea61cc8378bfc2225e520203f08a60a812f81a7484043aaac9ab134a360100068302436e172672004394124ba232537c7bbbb4321c2b0b32799c2a41229480643666552472416aafe319bae237253a86b401c26edba221fbb9811a183af713264c46ff555871085ff1f39da59b72e80bce30c020dfe833ce8b172e2b4a38580f5c76a18c4967ac8416a73a438980a8b75718f55506f3e13aff553057f0aed6708cb3d4c4cd74cb4f8b5ab19195aba572493b314b131b865ccbafc18057cb47358b134405bb2019a5ddf8c2880645bcb8a18c59631433b8962479d9e3c112e24ca6ea6ca80b44e75629ffcb17ec89677a316fa58515889aa8fbca92ceb97de2e0b5f5238179a08b7db49ccd1673aa200641b5a419d954e1737f1327b1c6f3a694fa0544e1363fca01f93a81aaaa18256532e2a45a938954df863075753a04d6cbb7dabd362164468324995969423cb3fac19abd0b24052125d996a5917374ff9a9a7afa46d422a64d1b2ae39a1cc34b014af45c60f36a3eca01f6994ba8010bae3ccb9d754af1e36dc6c5a7031345ea3966bd9c21ee144891292c11a31cdc7abb9f091120fb761ec518dc6b3568426651e12e5672a29f2705f5e2b20759a3668a06abdc66035b56b56a0bc15c84e3fbc400f380302282810862de636547d11448c7097c389600f107f007a5514c720112576134634a10ce3f614b267a38d7d6ce3491c0e32b015fd29832632b3075a0fc560c8d6261575156b538a78b7396bf72ca5eb492c7b504bcb63a1c07aae668892e51694f6a30ab3078bfb434c51a009cd9a7631776d44a5d766783e120acd4580eb869127d54be3495781df99e80477ec800396aea6de802add6c170504229761b94c8739ea7c74eb2b1a7e495a912d29de1e838518134023b03695b388e69ab26894ee403a6243638603917cf79499b34732d7ac8a146aba23023247a5842c46bc236a0fe466672395bbb397d58635b7b100200ea9e8d3cbd8b6a965ec63301858b17137c5af567ff63a59b011437d582a07b16726b6efa6c49be31324331bae6b98df0247607160fb14065c8e98234a46d96e84f5bcb76e4423769235cf7e978ffc81c0ef9a09c6377329c1777412da3e694590963dd4100b404c2f1624b13918f555047e5a19c493998838647947b6de106b4f4cc04a5d72602dbbc5a52a446e1adc77336e28b8f848329ee4a89b4926f52b83efe2123d38a6a48f25878a7a4f98c44de310a0b930a360602caa0413444cdad965a0d565337158488738adc9c459d976fe244760d58625b804c723b7d48f29062d39aa0274bf2318f4feb39e0fa7447d54ac6e1912f84099df0c3ac85cb312163b179a4e21962f5105205a29e43aa69182b16433755e1384c20c039be38ca91e901f9e1958f048935191b7cf6b04b090182b21c4e93b687627db628ba2f036d1745550c863a90f9bacf63bc97691e79e84908819fc436cc71568ec2a0b1e5db5aa97c99f4facbb94c7010d3a240346cd1d75985e5902447badef7bcbc2930410051e6277fb40907c965544a3abadebc09016248dcc3891ef82cec26001a9bb459da61c9aa6a27cc295ae464ae87386fe46fa0a069cc7b83d9bc834b487727a262e1a990d77b5c06b99112413b5ad955e8d82b2b0910d724ba57759eca068e96c8332359c29bf23161c1b1bcf54120a63136d54275f021bd22a5777235b451bca9963315730a429207d30bbe894486d8e2444c818e95e00f01ea077a94b06e506117a8bbc1425631f912a979c70d510129a44c7a01bad819bd286c3e7fd504268c86bcaa23ca3a1611062fa7338c506525956854b0d8c10e1bbe078923c3c5042f750225e88314f92d766805dbab5d6f907aa6c7aa6f0bcef4b38551228d5d196cf7e55717ab78fc4aa63d49a62b6a54f7b4b96a513fc7b22198d16090741f155aaca512a63e228535492ea0e77d3da59ec12a916cc09f32282946c199231160dbcb6d04806ff46745c6e8b88193a2fe817214f09a4fd5707b786f038327ed11b6cca79bb48c55785b645a8a4706d51c8267cd80a78dfbe81932d384cf29b420927fbafa2d3bfaaa8f049819a1896f3792237b92d74ba006d73f0376c671bccfb490703fc6b6aac060effb712c110aa1b759267c28d5a78eed47578b0262a11177fab908f7228dc0214e5813afb8765d67859145e38d75788aac096d20722cae5a157f074764aa06a3bc686de3086d613f85ab486850c192960bae975d20f51ebca65639655acf5761044884816b10f939bf7ab80beea6854bd854cb8593da802e8caa5d11459b0c935416266eb35096efdcb156f330774c626cf406374737403801d546474fa456e976923f5798a53aaca404271a80a9c55c209b830d7ac7ba1c341cac5544623573f8b9505d65330372182701ad0ae855c19c64d9091f286ca7aebc575c104d267b4f615167c06a282941b991ee518b60d12713a33830a15e323a01f3e584b677dd68e20e378da7e922e091c8ed59c9d83724fcf6cde0a9fd694370642121598dc9fe98734e034ab9baff8c41a46491d5397b70296d12 +ciphertext: 6d7841fd5f38c56eed4696017cfc6be2c33fdbc72f89da93e8698e034392cd90a893d594390354d2693192f06e8ac92005c84c88360ae345fcd4e10e4f7dcdfbaf5564c358534868214dd4fd211edc7c1889357e3d9d64d7edb6cefb54bdf680da259795b458f6b7b9fda36072377a7fddb5bc529cfc9e6eea1cf534ba644736b17c29325547e547e54f2cf9c8a09810519ff1e8e4d393ba6883fa48be76b207b5635d2792a08fc211572cca759430d8350ebbf85e4f8036781345fc136ef9fb3ea8066f35a3c37d0223bed1557d797c22db33725d9ce20bf81e8d30176125de299f8ee4f04044125219775793035bea0e1edce1c7267184735eac816f30402dbc4879a3545921f3a5ab779c30808d4a6d5f42d4e7acd123f3ce31187a70a2dda7cb5a3f1b22fdfa880dc26446bf9378bf996513c03daf821432268a6415a17656e78f775c1917ce358e6e72edade061ce2e1dfcd04ed8c0cc0eee8e97c7897160e33d13c48089b96ce751a36b416f8fead2faae53d707f5d8b82f64d18ce08411d285b2ecb90b4fb8b81351a0597703b6c6fe5bc130d26e7c67f205e5244ceb27c5dbd30ad454e4223483cb6fbf39d38e2cd181eea3df4b9d66156b59087d97a7f27a04c5cb1537810f793700bf43a1d14070737ad08138aa43a89cda1ce09ba02edce1bf61808d55ec3ab542a389266ba4f222d92841d670b7f83939065711b85b62d5fedd051304d2203471988c20d01f6a48e6eeddf11ea3d57556fa116311239769ba442b20dc1a9bb5a6c4a4c9e2023f38394cea27d960e10c643a30821ddf3ae8395805846ae8d6f7851bc29c3fba4a48f839861b4a2a2a64d5d539ce37150b728cf529203ec7844cea27cdb56fbfaefdf4c18186247e58c3ab4deab221bbbb9079f14f7581c26b86b808ef800a919c04b7c61d5c1c8974adbb1e7e331e6fa0f0221007a0d944eb78818f36ab1e57abc0d6921c9c91d5ea229ad03080771394fc94ff354a2a28bb7f0da656f4e0e2158d4f76db75db9990d8a3a4c7cc397deab160339810aa89270fe22e4656abba3b8ebd6024e80402bfafa7a83b6017ff09fd5f957732e57c70c6d182716d7bcbe848e6d50ce40a86eab4df217144131593c48511194a840bbeb19ed46d101596618bd9998feda45237662e78f021e81916d1375a90e17393f33a9051238a06290b3504832507e01012cfa842d22ff67073fd8be38e9e0c130b08953359c1c21d09c7275c510909b54eea597c5152f79d869e48d091bcac1d97978e7e65761f501559195830d4721407ad11d0d5f74ff25ee9ae2e24fc2e5cb5dc63e56a29d2f64ccffc1922c3949a0342d13cc54b0bd6230c4ccceb52bc362996e76571b4b2c3d582a2335588267a66b63af0d33f3ca3dac3a6e444d62b288d4464307bde5974f26170168a0d7ba4e38d4578830af9960de08a9962fa4716c835dc2a782facb3524f0e252f6265e5d7dc43598f46aca579b776b0068d0a186f0bd00b0e540c466b62b64b507cfd801433b615d6e9d8a0b391cd220714157b657f487e51e659ce62c40e426bd1b347b5 +result: fail +shared_secret: + +# Zero secret and error +private_key: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef21fd867d2b0695ede50dbb4994a8ca35e185f176bf1f28b3854d6e5f2dca7c8cd11536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 7d3db5cd14b6db21e23580dcef17133205df090d24fb80487306aa6d894143dcd9bf9c47f9ae2634d4c2bef2400f839d42fa417a2b53baca917ac3e8e6c62083d8d1e849603ad45a6522f8e1058b328e38f66aec79c96065470ab0d15947dc61aa1ee1bd4a178c957bf81b8247c68425c4bc3f2e243b8ccc50fa0018ecbc215f3487b4f54a0fb18333ea2da8e2200a608a83554ac5649445a53da1177a3a11f69fe12c6ce093ac3cadb9be5ce9e6fb895345dea2a4cf386ff6ed2d477719af3bcaf2dd34f2f6746d039f82063fc589e5322b02dda783f524bf59fe9ea30b101ffd83be9d1965ed3eb16c52df822425f9029209e303df1725842e94fd806476e684f6f53fa74ae4960f498088b5eecf024b24eca054cff625feba4d133e6263b07617a467e0d9c0bdc0aa8e1f12620ade63643fdb573a798ebd81e1b0cda60a08ade91c92c3ff8c5877593ef0a90e6c20fd9bbcc3797d3dcc7a5bab85ec1e08471c73c3a19dac7d7690eafe2ecf5d19f3d0d3de2b700a622d1ef40631dae81f725849a2fc8a0225598b5941d74da237376e3c4cb72749e3bd76a81701d79f1423b2787a5b4276ca277e5279a820aa9abf164d921ec41a5a3598f13665c19311d0a75a0968926ef664869b8b2e6628db1887ebb2a7ec06432662b9c1494eb399142b2f05b6ec71d37ab33392f755f2a9c772f60a802648e3e54494c6006067f95946c09c6db484c526a4bdca4a663b329c45d7888cf8cf6cb20192b57b21f06800d711d1a79301d05eed76bfe406f85c2bc32e8680bbf7742719686f59564e39ad7f77e1d6226efa41e5918c4e4fefd8f24e7d3bc885af5a3e4965dbcac0b0ca594df119af883309ff10183b2f6d26a43f0cb9df9284c04e5780ea2bb2c160bcfe25a764fc0789bf40da40f7001c5d92e03ab1907e9287c7879c3fd3d30a1fbb3f4b5684d73b8cb0e7e0b8cf455ccceea2c5e92e8f90e0a1f99ab2d2353c391d20d9d9fcca8d449ea1b2d7b2e161bc198f34aac1a9221f5e6178be1f15dd26fb5973ef7b56a9214ffba6683071370e619ad805f6fc3aca3dcbea742c975f72d3c1c8b6f7a0fb86e9b4dd4fb76c5531d8d5a48be510e3c3454c2ae8196efd398bf117c2dc8c9891c8ac7db5317d4c98b5b300d6422ff8ad7c0b748d8dadedbea0a0742afc0383f6082c8428c97f49f1225a40e9f10ff3cd42d701d7a8d4d24fed319fd3b601601a9e9eea1552c1d169b4b7073b3212bd86ba3efe733b549950ec4b71078b3f7c09880a810492463d8152b11ef165a1ac29b81a17b844ef04bfde87f9c090a1453299c231c7453376f3a676f75e4836ac80ac294d69da31f60f1e470888808008088888000008000088088880880000088008808080880808008888888800088008088000088088800800808888880008008800000880080808880880888880088008080808008088800000008000880800800880800088088800008880080008080000088888088880800800080880880000880808888080080888 +result: pass +shared_secret: b30f8bbff487ef7613d1676569986a72ed98afa9f37842013a2467a9ba6d013f + +# Zero error +private_key: 76da327e31334a81297ac41a07b9c1d4e04ef3fb8b06e9bc13071c98f6a80523801d0c6e5e7848d143a5dc011eab319ce6308bde406c4ca459fd3c20c5c76dab11c3eff0a060f52d6c677242b6019ea40c0709d071f587c06557d0cc36f7c428383834b69b877308c55e8c816d8195f614336e50357da66fb3f03de7c3742fb23c2398c7868690648122afe321a0b2b55abb99306265b8e9c4be1771b7727775a25adb2108a8d62bf5c18571267e6c1b5dfc547019c331532a40550579e79426304b52c88cb722da72d63a8da549731d5625a6e28db6ec22f3d1733df7775d5771857382bbca11dd271fc35b4854f58b6ffb25fd42286823790b1bbccb40c105e38092f5a744e19d7b758ce2a5379fcb1f401aa4db967fee4bcfd73811b214516a098d1cc726ba418118e14970aaab00293bdd9b18de001075e2a1d25183bca677db703b010a7f3166b7a4bc374b913394c504463a42cbac84ea799d70db4ac0db6dc3da8c78149bae1cc5e4b65f701bca315866d6a67e9bebbea36ca91fa694929cba572c60a1d1006c95941a640d472bc2b30cbb635087170381a4328cbd462964c80692f224ca17575fd7cce32425d6fb19a363cd114524d8c4106cb628253bca70377aa242751b626447fc43de18333dc21c841c236eb0b2073a2a8f9a268c931669daa4c9036228394fc8a0a2cf809a1a2929a5ccc98f924a9b7282f922c5ecd96cd1436b5b21692610a44747a2435807c50581dad25268d737fee3834a54967e76c3e7f537023b57f6a7b58c191427a12282e06421289448c97f7cb042ca66927a417e6747b3dd501d119cbd4dc43d18174aac099ef85839c7d9425d87a17cd77ccd568bbf4bb0fa8ca4e5005f9ae815a307471219a9aaf60bea631e07162a1818c3c5da6c29385fbeaa76ff4804beca79d1f842c46b9fb29c81fc4875afa0b178564d26b26cb21aaad891822ecb471b76a869b83838388b9f5839e0c344a7eab55c392c99019a0841b20dd14f36875853c6150fa46c2572828f51b9636b00bad5940912923252be3c49190577c928d5bcd6983bccf00875db487287ada1849d3339069195380c1a3ea34703792251e5c7877523c1b6278f9e40cfb1614a04c01d966c41bea36a10492edba56a90e370c1995de2203aff43002446a30f3771af65924b8354e0dc2fb4aab0295925a23576e4e9770740845ba541eb23610125c782c6c82af506d9a25d148373f5f48537d7b0df7c9e72f10938f9cd66aa6b2dea9322412eb01cb04de39797f78efa29186af03d90588d8488914f94033b644663269435e2c26b47297af4a324526301f2cea3446c2507717e83c29c8a53f277cb739851bfc94db3db6c6d2a35df897ad06420452281d1659e7aa89e3062abd2a1a7113cb373e6856b7acc402abd86418c554858eecbc2b38b8b9920cc0fa091b891c8a4248cbec13d52984c6512a025ca69b34477dda65e12b7839128427c42832a1c5f31e5c3ec09497667ca7e0059c5f43889460344fb6985441afee726b58172e2ba2312aa10639737325cb82e2947299b94aa8bb021857232878b45b03f9f0ba5b0ab75c1773c471ab51e666231c3c37f1bc4630628a9b1272fb9af1c398b2065bb3d95582d63859ec7006f9c80b1d0c26c22666dec1784f76b4096b4fc5892a49c925ad388a3e31ab2bab228c91985b295b730861ae72cd0f733a0ecb85d26844ddc8d28766dfaec97486105a4281663c67585864367b7521e968357940bb31ac0658ba60e23baf9d5cf4b2600ed8b19f6a7c974fca655b0b2e5bc019c8398bfda6bd6442e51d365c3839e6e4cc124cb5529782692bc68a58617517a9d6a316ad9e93695e48791897a0ee3010c43809d0a6f5127ad9f43578d5842ed91902ae068ce3ac8cfa419e0dc8c90b0cac51a47a2a16162c515d0b98099a02c7bd82cce9532590c2588955c8c37c5d957736c25cdc7329f3951653747b7b8f9b1da32027121a53d62b949e9b15a7a29d07716a74486ca28bf6ce3b8bed381cc391890f2259e60a12dcacd293908c97c503606a78a4c035a10a966415788033cf870234986820ac71db9e322392652547a6f5836c138b869dc409c16d67f1deb186454ba33e6c45cb24e969734d4da25946a427346915d598a0cb45986fc73dbd63c387421bf95c11f6a0956a76697d6216485352da8932f697e8a02c293bb76688c550c63ca633a18f1e07bdc07951a996cec3644755c4a0f55230c48844ff6a82511976e4a0a17a499e768207df0c309b814e30a099a6511d6f3a499994a821c9dd41872860a977e7406cc2b3b69768b7ea720b2f5858df28f97b77f05d2361c62b100271db35c660493b12b66938845c1c799b5231251980a99ccab6356a0b445e86098108126812121176f13979e59a1029cb040bf36aef192aa622523866ab99459a01dd94535477e1755101478b53ec165c3197d0110a7b4b4892a3bb82831b300e55807c44df5f6c1571ca125b74bc33863603501abf51120acb848eb1daa2a7f50e640fedb74e01307f68798e98acee0e91bffd8150f2bc9780956b4a2697a825da419aab3d3946797762aab8cca9a5a65dc2edf507e8a9474d803c8fb637e05c94cabd721eef5716ca4410e69220c4a22deb89c82526a5b506bdde8789e2359352c07cbb90f3faa867c538d1926051e3c318939302dd31c34e894e3917e4ddc60f3ca9d3775242003ae7642035267757438a5deeb96c46489670abb8918c3c4b42ec7c7c3f2bc74f1269989080782c8941a2838439c3425d88f0d5537282a677ae1102ed695dc447668113481f89e60659f1e017dcd3336ed47710a8721cc421b024595a86125af941203392fb0f9cfb2fb7af950772319070ac60f97c2932ffa71bba6a94d47c695bca3922835d86a94cfc360ba637939034a7850579c7c5e6ef90cd7ccc983d28f357ac379a6b7d6f328bb0283d79356d6b28041aa0151d16605798fb65652ff270114f29241b8774f94553351536526aec996be9396282c66c77b63399310019ad8474912bff5bb1503d481bb4aab4fa23824c68ae5058230ac2ba43a4805ca8cf6b07b810ba6d415c4bad388d17373b4535af6234e42187d33ba51dc75a8cdd3c80870cbbbba89277c1b79e631f959c8f45689fdb7a6e72a97257aa188f8548da934533076937a140ac62c598a40adcb0bc0e0af7af639efa4128d10b8dc0197a12ba1e3c9c68b461dc3a7ab2975482c62810a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2d1eb791335eb534d3f66b1e40c2a9eb888bd36454b2a069805f787b8530ad7c511536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 8d0f4960c3b07ce8148731d6f2424e614145f9bc98adf02c0c9faf944c708502d96b8142b0823b6283faa03ab500500684ab8646951f90a09ddb241f5afefcb2a75c3bbe742961ee3dde84518933dd19dddc08fe0c2157743a5d464738f430fcb0940e3b12d8a2458234cf3d2dc475fbc589d90f5918dc8c1be0bae511d6bfa0c26598529a3646453019008df6bd4d2689ec76d5b0bf1efcad50bcdc1945bc670b24db9e0fdf1880aa9d90687bb1f4d4186ab444d2cd1c91b7a7c57324aec0e96240f9d817929f6b91d136447e46cfcfe0d6e11ab16d47dd095252e13d61ba2ba1f5ea4fedcdc0cc16b2780edc9b4e4941e8b2dddf791da9f8aa6b67906c52fd368e1808035377af67def8840fc44bd11896e594deca14d4cb942b28df99583081a3e9c0f5c8a989d781a062765214ca381cd65683faff599eb6db4752fc667014a8dbd7d2fbd64016fa33c7c8d39a36265f300501d52ad4c532abd18f43662e9a0110b5c54797f1148615e52ebfd60b07f9dd61c5f22f563620735a5c55dd3173366b0ec207722afa4e7791453f522a898b9fe97759e6112e096185e40b7447c112d508ef6f8afd64b0c2bf1f75cdaa42c9db11f0d997c38dc5417fe39d2f99f00abb50b66cf1f9ba5472b05605d492b8d483b7708568753bf415938a3c26ccb361873d0a1d1d42820cf5ec6986cce388b0356b40ba6d572f19be691a654356dc7e90b31bd04e8ba9e27fdf179037c0c8e2d4440eca4d849bc85d61f2df423bd09d90ba00766e5e6ba946e53a66c119611d5b017032c5a39c9a533097dcae083d3832821668b1633ba1aeab81f556d61dc96d3052b6497f7cc349b548f90fde55604c33ce018095d72e8c1a2468da1c6c5f679234636352e5ac1b08c7508a887b1fed6fe466520f88cb5951b86a4aa6c94398db200f4ad7e51b3321af70124f7f34823c4af599ccf925c3002d297760bf4baf7fd1465e95cc824853562623540c544c8d46a4c4e006837983f976d47cbce04b703dae965111948159ef0c95093df21d80555016265c582b19b0dc8403e4e297c980129485311ee1ab7ee9e4f37f627ab239f5c6158a7434b8c6a654dc305e338b2e7c9da053d6932bf4640c2215f68e2020658ec82ace46300fab43412d12b2cfd7e09954acc0e7b928b2fb791f68f7fb455230292eab955b4818031e65a54bfea008ee5605205fe4d68b26de0e60e99ee5acd069a23e5d83ba43745985bb0cf05da32028e66bba8516889e6dba565a006624433c6cb23147008dbd238163739adca132ee73b4eb0415a3b754fbdece10f926f7979c6f85d0a6e9ee0e881f13f50c657cbfc345185f55167c215d35dd0a0f88c3736119d1c5891fe5555dc3350c86e2df0383aa876ed91f03207811e0d6d752669b8832de3836481c33d416f63ac05234a996d7330b00837c3f267f09c74f0b4b85a2bf0b0ffbcc23ec403fb621f7f94ff5b14db6bc699545f15e448223e677906f8d4eef5a162e0b2d4b95e205b57ec7fb50a03c7ce1f53d7b +result: pass +shared_secret: 6f68f7fde8fdc93b27a91e7989842c6132d60007d2bb9d99fbb91d4e1c79fcd9 + +# Zero secret +private_key: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076da327e31334a81297ac41a07b9c1d4e04ef3fb8b06e9bc13071c98f6a80523801d0c6e5e7848d143a5dc011eab319ce6308bde406c4ca459fd3c20c5c76dab11c3eff0a060f52d6c677242b6019ea40c0709d071f587c06557d0cc36f7c428383834b69b877308c55e8c816d8195f614336e50357da66fb3f03de7c3742fb23c2398c7868690648122afe321a0b2b55abb99306265b8e9c4be1771b7727775a25adb2108a8d62bf5c18571267e6c1b5dfc547019c331532a40550579e79426304b52c88cb722da72d63a8da549731d5625a6e28db6ec22f3d1733df7775d5771857382bbca11dd271fc35b4854f58b6ffb25fd42286823790b1bbccb40c105e38092f5a744e19d7b758ce2a5379fcb1f401aa4db967fee4bcfd73811b214516a098d1cc726ba418118e14970aaab00293bdd9b18de001075e2a1d25183bca677db703b010a7f3166b7a4bc374b913394c504463a42cbac84ea799d70db4ac0db6dc3da8c78149bae1cc5e4b65f701bca315866d6a67e9bebbea36ca91fa694929cba572c60a1d1006c95941a640d472bc2b30cbb635087170381a4328cbd462964c80692f224ca17575fd7cce32425d6fb19a363cd114524d8c4106cb628253bca70377aa242751b626447fc43de18333dc21c841c236eb0b2073a2a8f9a268c931669daa4c9036228394fc8a0a2cf809a1a2929a5ccc98f924a9b7282f922c5ecd96cd1436b5b21692610a44747a2435807c50581dad25268d737fee3834a54967e76c3e7f537023b57f6a7b58c191427a12282e06421289448c97f7cb042ca66927a417e6747b3dd501d119cbd4dc43d18174aac099ef85839c7d9425d87a17cd77ccd568bbf4bb0fa8ca4e5005f9ae815a307471219a9aaf60bea631e07162a1818c3c5da6c29385fbeaa76ff4804beca79d1f842c46b9fb29c81fc4875afa0b178564d26b26cb21aaad891822ecb471b76a869b83838388b9f5839e0c344a7eab55c392c99019a0841b20dd14f36875853c6150fa46c2572828f51b9636b00bad5940912923252be3c49190577c928d5bcd6983bccf00875db487287ada1849d3339069195380c1a3ea34703792251e5c7877523c1b6278f9e40cfb1614a04c01d966c41bea36a10492edba56a90e370c1995de2203aff43002446a30f3771af65924b8354e0dc2fb4aab0295925a23576e4e9770740845ba541eb23610125c782c6c82af506d9a25d148373f5f48537d7b0df7c9e72f10938f9cd66aa6b2dea9322412eb01cb04de39797f78efa29186af03d90588d8488914f94033b644663269435e2c26b47297af4a324526301f2cea3446c2507717e83c29c8a53f277cb739851bfc94db3db6c6d2a35df897ad06420452281d1659e7aa89e3062abd2a1a7113cb373e6856b7acc402abd86418c554858eecbc2b38b8b9920cc0fa091b891c8a4248cbec13d52984c6512a025ca69b34477dda65e12b7839128427c42832a1c5f31e5c3ec09497667ca7e0059c5f43889460344fb6985441afee726b58172e2ba2312aa10639737325cb82e2947299b94aa8bb021857232878b45b03f9f0ba5b0ab75c1773c471ab51e666231c3c37f1bc4630628a9b1272fb9af0a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2e866bee46434ba9cf83567a32eadf682184ad0feb178fc612796d9b870e80fdf11536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 591416ed43f689aa76a117f623b7647c6ebade29bec5e089f06a7ba3048178df0aa0c26680f99d0186432f9fc3987e0a511f2bd3d075603d315956b2319b4a61c250c09a5f8a49445050e6c2260daa43a6e12e7f25bde3a94fba40f990c950bd30f9229d5c65b6bb4e13fb8ea50baa866cdda065636656941dcf58907f6bc45c778dbb8e1e8a9bc1eaacbd3ed5c034136afd74228e70c4cf735a82c696ba386a451cecf4b43a71340012ff8676c7d5b4b80e0e59f1c548a40e7c4d25b8526bc4fc14aa9fa7935c9860efd43095538dc081982ae2c81a96f9634685f506bf7cfb1fa7fde39594c5252fdf753818be40ec6191fac29f9512ab94e8c03ffaa7990e3b788ec43d749d78da8f729803eaa864efdba24dc3db1a65d1110922f612ac60c3cc731d65f8a1ee946ab348d5ca8f4d749d5b07d0ec91c0f74923533f86640cbb30b470650d2b710c690651c99c03caf4792d923e5a094ce709678efad3b474e803a87b7d390ef05ce6fb2b84eee8c31f9cd325479f78ed7dcc82d06d390c616019ad6bf8d7c18cc5f719afb06ca331034d620b108da68656c2c5bcf206046cf954ff9aab6f76833312f55b0ae36330035afea8e4b9c3fb522599d7158f3584d7d0d70e4557568b7838e437f04bb41d4f8e8d41969fc8dd2d35fdef69b85d331fffbc5d47e1fdcd60e8a10979f35722a430c55e9564126182a8d9140e8cff41386b6e81a1033a9b40d75ca6aec60beb7e3080223dbde023eb59decb9054663fe1170f2da33c352c86b10c4cba4cd79878a7c4e83745764355b3c1a8b4a61384e1e9db00bcef2068ac7d4a4e67a1aea96c52ae35f998eceaef3db46b43b85dfcab0a2994dc700868125e3460e2f9c11a0402432e34a0193ac2cde8fbda0f1a81371b43f271f737d7af2af211f5287389989f71cff7c107fadf8010bb837d3cf2ac884653ad9854caf494d5196d4fbe49585525e50b009332eb86303ba5cf5ca11cd19b687b5f3ab06c2e36327c89e0ce03efb32a813190a1849382e82cf554d86caa9cc2c9385bc3b203d20415d0282543ed33ccec14b2275014a13121aa206a98ed60261e22acf4a8eac9c853e96f99d09ad7c0c46fc8e93db918818ebf249f871dda0c5220c4a46475266d2dca6b609167e120930861bce88859a822f18d044befb231ea1e6c7459bdeb14b6e988a85c50b4969215451d96a653ca2990c8db43f44df0809dd894b072037e647251aba319267f7448b408aa959825d79e011a5792ce8dccfad35553e4fc662867811081836a839927a4060bc9be4ddc69391e0824bb16d6376f03077919e3525a6865410c71a5fc8e86b9cbe9043a294c90650888808008088888000008000088088880880000088008808080880808008888888800088008088000088088800800808888880008008800000880080808880880888880088008080808008088800000008000880800800880800088088800008880080008080000088888088880800800080880880000880808888080080888 +result: pass +shared_secret: 1ef65648be69ac3ca3ade1382a2b4a4ba1c0c7a04eecbcdd9e34af67665bbff2 + +# Random ciphertext +private_key: d13875ddd0b807227dcb5288a8991b7140752a20a8117970cfcaa91c04c4b46483d81c4133a08ae5cc0334e94561b597e111097dea36292ab537395be5d80788cc4d2920ae28789c831b09774a5d8206731b966b3794ccc03b50dde90e32359f731c3ff518972dca5fd29a5843a79d63804158bc27631bb53f18a6ad31c88a8c138de0823e3797c82a5a89c2bccc3ab20bb88b5a60b845321ffa3929ecbbca813c945366967781a2a9966e1ba5016214691160617236b45a5b7ca745416680412944ca2d69841947287d5a4ca53775683728e07956eea8439909c6437cbd2366ae58ba4c27a35381fa9f5b380105d3060f14aa81b7163a403754a962579731cce213d3e43f842c9a33f26578539356b3ceb4bc40f558a933b779e62b7e91f71d78e9b21aba5813abb14cd6b43aa169e2fac8de37ca4b335edd818fd25593f6dc33c2f283cca6a8d3188e60c66e5d9122d7888befe9863225bbb607880724801c7b4d7dc8110b06805da0a12a926a143c80f35c052e203fbad9525f7679ea485893fca4e55a578c6429e4510e70c0a44de4aa1400322b2536ba2b4ebb8b947a3a169eab6cb8f099776582514a74dea155914ab05ce220e8791ba01aa4a5c95af319972c802150da50446997026612b783bb9de66ee39491a30153bcdab1fd85b959fc153ac79e2de429d8d929c867073364236f5a51aba4a4d98a5a61282e6bd6caad860de637a3d123abef01b536d30abea07a199ab4ad4871a6b19b7e4401bcec928c320ca339b49b864c33e50aeef15b01b683bcac709d860cc36413e9b8bfea3128d1f20d0cf279d017022cb1b9b2c0c676b3c869641da3358a2167c3ccf4088a9508300139034993849258387a1b46074dd5a27761068df09a388b0bc99c233d5ea711c877a14e30c57ac41113d2c319a1ca11c20b73e1208fe27076cbb31971917b14c661774f386b863e78abc3ec8cc870a06604a5a31ccf4b8637bdd2b6d9d4b4aa2a41dd75a71b62934563530bdb87f6c4b4660ba0da795b9924cf30e63edbc02c0215c92904af43c35cfaf00c308240688b17ef78c766837ec73a13ba97b2c8444e7e4960eba097ab02838940ccb387b20adb8021d064835508b5bc9da7e10a400751907598e7615ad8217fa301bed4590d576353aeb20a66b1cec3990f97919b27c48c97cabec0025033e66d2be8063c188c44d4c76465cf2f07ccc0338f0161a897922db40757fad600ac02126bba3f5054b41f34692715c1783c1ac761a791b89f1a7108f71cc9a8cc45635762b1b2b78ba103b4dc2bfc6bcd56e23b4128b0ffb5b1dd040910552300046897f7bff91aa949f7010a64ce77cac12088af69d537f302aa9490ac668a00256193bcd9af76bc65ee8a0c72209e8624cf0417365e610526e224ca5c9a09dc3e9fc81290b1988a1bc8e2dac11e62ad7ec75436da67d05a9f562a3f1e976759b857bdb142baa9ca7c77a4c39131eb7b135590b886b54735d25e4a96a0ea22660438bd7f9c812352b6a19cac7565c5dc7811a8f001d4616dddc57610473086640f2f663b5cb29a20b05576f4c0a2d6183e0b059b5540aaf240dcbb68d5b05ddd5abfbb7348757a85657a993ea6a913d277a8632ddaa4336e236c2109b41f72a2e9c432541376d90c13ab6c89b15698710169fadc583ddcbe54e239220a212e2998cf52aa264b553acba6341a897d06c929719558d189ffc105e9f0577cb5bd3088ba251797e3c75885c6872a13c43ffa04b8c7082c9646ccc7395d17b5075972f0220dd318977ecab921947dbd3a9f1b7c0ae155c1166384c2aa86f5a018ca8b20fc154d185a94313b2980cb4596786cc128b4c6e55da31ca48a019ed6443b781a91b50b3bfda0adb78ba095783ac73b0ec422272521cf93986ad83a108136ab5f9438b8b19d8442a43be77ef4a1c00c860687e138bb2aaf7cc39cebca70415a7e5770242c1364a672a5db569cc6e0aa50a685aef343c4465b28d55f267b8eaed658df4945d11b96c6dc38e3614b18430a5864b43234819f933bcea4569ecc9f47fa03b0b9585e3282c55c5f4af2ab4b5124325bb89fe0b5a2311e77d9b6b4f5cdc4940f807ac1d8503bb9b3615e82c4ca4255457327f7f734bf3ca188130ce2f4b95ab132d2146437a1921c3875b78ac538f79cabc4cb15dc94d4c89238f3558df2113165baa2e0cff5a889e73a9c1b949aa6b00379db3ca6667f9b0043ccd8b0e0a948cf314405d7253d54cdfab11ed7778f60198c097a46a763161dca044f90716ffa80119a3e5ff229a01b9e78f0176d407fb6329b4b66b8be35b4c5a838f39395aa744690c83b16e382879b7f6117895ec2baa24b7215580165458fab1c21b7661b1f2b92ad73a941873e68d135adf4be7eb9b23ea60908f6c3d0602330e507fc09586945672cb69c5e77806d300f4f472dddd813188280191520db2401b3b1699f7acf35196b95645be7ac4f87fa89b46862470730f1d952272a6b0508c425c97a09d010421463b8938c1f19b401da54a33b27b645aa613c0954980e9f8a161336cb79693ba645af106a7d916ca1cec284e65b2fc461c222b98a927a7643f70f087994b2b1caca0874d234625072aa9081c3dcdc3c77077a836088dc538f7a8aa1b0942c2b19522bcb6122309512059d942a25235206a82c8c10984a7a5790e7dc9e29e7bef8718dea15ba5176a318696ccfeaae6b3bb7ff68977b0588ac8b1a0932009cb029b22059dd6b8b7356b19353922a63b7ea823b8b1346b8723abb57008ed8af968ab77a2485f9a74c47d6ba5e026a20b9914e04196282a02be8a67ce77654341775dc2b5de8b5d92416b83a9d7529b333eb2ee419a83de47a37129a929c72f2b6cde0a51694128724d6bbb6b37a9a06134aab5e09652502e8b1dd16b74ed37da1b28004c33c3c5732059a0d08a5259b82208968bdaa02033ef90aa688b9bb976f0443464b5a0784c49b4e469272097f98928751b78969e81dba80a0627c887d5222a70571cfb385fc8a6bc1368484a7bb86e809b5b14a7c90b68b5cafe353998ae2666de75f3d57cf373438b7822b86b3cdbd3cb80b3b599a372220b52cbe6b57ab7610c7091f2239ad20397cc32b07560b4aa4061249859f5b86458c528acc072a9bb0956f19be82658025a6365f245b505a3ef0d925518c86d3905084519600b4c715034e0a2b309897b288eaa79ad0617a7a9858436a3472caaa9b4b1bb0b10d554f21cc0643f76105f702b0045d9b0b044093bd2f0946d77bdcf6e6e6ac9d0056f390a94f273f14a0cbeaa8cb72f8d2364068400870e1d9939d32be7354acd94e9e399d5e20903d1674047e7e7a1649482e1d9b0de92455cd14d0049bdcb7cea4b867ace5c8922b +ciphertext: 542acf1e3c7dd990f1879ef5b5aebd32055618c4e5b958995f0b22a78f9e2bdd8dd0cda23893c56f48a20d4df878e1cdbd39f50310f2ac0cd502e761329da00d49e7b8721f53af649ef7edfe74f259ffefd492f13b1ac396eb65916e02b3348560ca426e9b93beccad58bcf0c5804f0a10532635fcb74e45c1f8eaa83d56e78d8a7ee5aadcb7e06eddef900b484632bf1bdb0e1a4ef8b6fe34789934d9baa887ec5a39dbc6416f66008751aa193a9c313ef8a57a515bfe046953fa6a1329a770e9e1bfdc33f3a68dbd5cec1c2a55a0e41093583230ac35386645e6dcd166f25706efc779fec0cc4299e8e7501b93a857378713475782cb0b31ab645940f4c875548345ca0138372719c3cf9022034f17c28bb90f6090d4b8be957ec63c297a0ba95dc02f8761c18e7a948c1c20158230e2f9ff809cfd01b9d020b7164f8a3c54a143594d7d35b8e1ad6cb25d96c11c1b7f47f62a8d90c0e2b3d1460b86a463579e7b44ff74b6a29f30521588a26887797c60d86235e0bf4c2bc7166bbeb275996e1f50cfc36641710a52fe08fb5dda30f6129d3a304e336ff0d8698515b2cc450cffb45cceea7ef51a989d036c71367a4d26cd6025479d2f7ae58e700928e176c59b3040b054a09312d9fe529ce784a71513b44c1cd4073209a93a4df73b7097da88cea0b31c3e77e70abcb4b2ba5edd8db8f47ce844750158ddc5609dde43eac393eb5909d9415ee4698d923d8ebc28612f8b0676565010360b9406091ddc881fb6a992b70645b6898d13a8e3e449be589cf17bf9312e5cc58b03d3c181f7f176b67bea210337d6c52913f8cfe145da9426434c1fad0da7911bdb35e68b86b5bc6717dccee9222c4842c28fb13115278f1249b213498791082bab15d32f59481b29b9512945602eeba8af490af99fbb841bd1aead2b4f6f57f19dc970e83bd3928ea2d33ca3c3e50cd5d68e6ef516371cbaecb6b73f57fd5ae5b38a74f20759dcf217066081fee51f0fe8a93aabeab4717f05395e304e86bedbe11d462c1cb9d4e32e75b35fb707e7b509e43b450d6025b2d3e84e00f3d92b717578e820a33788013b2bda42f2701a9c6044ac2082e0387e141bc97a60bac45e0c1f4787bb5b892cb190e4b6776f5139082850494bc5ac56a6f759a0505ed4757009c35a4d36bad276185f1fc75399043168b22cc668a4b1202e03407b9fbb6a0799ba6a396ea78e137f7c68996f18f1636037179c4b920ef68526fc9008aecbfc0a2b02432e2b15832b35a61f438e06ce977c4d447612c13eebd0549edf316f64f5e7f3ccb0b46d19b79d103c1ab8f1551b6b3d22ab75a85660af2a9eab9c734875fef1d526da819829b66d65c8459a1aa404ec83842aa97a595e0271630644ade4df047f06778fe1bd1466bd413279940f15b9b848fae294bf4964286629682abed221e1ede635f315273854d57f68872bd9cb503545ef7b949b36df853eb7a4f47805406555d361aeeec6b77a0b6030b5a124f34cc121a927740aeaa6a381083f4e645b0d +result: pass +shared_secret: 0483742b451a5b2364318ed5cc233ce07dbb3fd4ec9386050cb8cf0adc8d41e9 + +# Random ciphertext +private_key: 1d184d45e296cb177aefe9b41996c8f1169d18c2a9c3261883391023c9c5327c32e0124a48b05cd6d91f2e0bae0e17aba9381a872c185e25313c8c71c245c7c90a3e130b8b4bf599e73b063058b59e502605f4a4186a8202a603cc77a765c4167856c9195c9727d719baa7ace6f671b5e86482664346ab8d5251156e6a435a8886ab03c61067af054cb16eb211c0438824cb50dc951fd4ec6e27c203feaa094d26ce879c9e022743d6c8b5b2d4a311b00bf6b4009c8a1da79bc2d3919848e44fef6894b5958c4455c08d6504fbe61a0f3365e5d789287bbaded67d6f4060fee9940210b9f9e5381689b746923cf5b80115a85065e956724ca69f922566e90b25d439fc14334586a8e17c8fc0f28adf90a68f411d76e52d578949acf9742d823edd347f5e3704d8e2c64971a3c1337478dab4e03944ac68475055cfde70942a6ab5cfb928098624df248344f798e79a8446a62d541b11ef279ae0eac8d1fa5b5b724b5f862fc4c97d81394d3ce19c391019f6eb898bd9544201a1e996697c354093f544d3cc3696f3bc67b46af2403ba0bbc92cd63bea1469ba860c0a66664ff43b56714d5509b9a855a53c5039b9a0539a8cae0b0c0ed7b368ed4c0dfcaa0b44440c82503b98614487a4468ea7a5cda1cd35ab7b0a720d4ae3b46f9670a409964820908ca160d9dc0dbd340afb9a309893352d27ae1339511cfb3924e6bdfdcaad015a415df9a1f923c9c3093286c82ecdf73ac914af21813acea38b984b055fe244c6d2715515cf490bbe98b3ba84c0ce4c066865b49686cc0dcb787e60d66e8b17a32d84049d2ac3f7b50b1870794cd1749b7a74727799628a5ad968264694987ee72e5165b07b7cad4bf3af0893b615b6caa91a332b73c52cd85f8fd88d93f2c411a112e2d25a3f13c853334f109b19140a8e5f534132c5af9d86aebe6010c4bb054d238c61c025916519a50a35cb2958a93b9cc9db0554ec830c08a56be813d2e6770a14623845c2f5208200fa80e36989c776c8dcf3be67bac91cec8afb4b4a4fcac5c372a2dddbc192e7c7140b79c4323c8686cb42871959639f43001a1e504360ca058c336eb757368f83905f95866a2c86f1b20d70341b42b5482bea31225593bce1527157258b625fb029967b135df517124e16a97146cd53803904405e2fa71ce4a3797e586cae9b4c55f226320727a81b8bb5d323e7291c01797fa1195d6292c16a77044e71bda6c920e006c0892ac70d48acbab321b79ab7af131df129ae500185cafa23e0485a38780114e10908f1bc6a420b4c84808956a335a11de114971c9a2701f2b9eedb833c5a0d2bd3190d14a368b0cd5e5b44ce430a5ba2c8bfa6a79e477de71c54db86ce2bfc071d9051fa8142a86acea7b8801ed3ad67450e1c8aa199cc848bf4a6f6b3994a9108d73b4876d59bd1f02a5a91a5f317b38b322db1e966f028600f79a71dd42de95749788754450521d8241324e732b655540e92173a460eda82178e125c3db14536356ee730a9e334648262cdc43c634682bf2f50089b5990f24065694549643b4262bb17105c642cebb20f121c6a736b9805640cf795f6963e7b58aeb920a8ad7a0f5afcac055095210b9cdd3a8477b9320cac3cf1f76cd8b90545a6a6f07a741c655bd0e905d26548ffeb2b2fa218c68280add1afd2770a1d7517bb6965de62a5b971ad6f9064b31465fcf5b0b8c75dcd293ef403a512857da8a7b56d78c4b055c40354c52fc18cc02bc621d37e1036bcdd778776143e201a1216445851d9a91ca359037a9beeb0608bd02a3fd5920d375cda3b5ce1e21b3f122f82a6c317ec63d060b98fb40832261cdc925bb3eb9f15fa330eec8b0041a5992a31fbba9b8cbaa26bd3ad7682a59a452dbeda20052c6cfbc1bd85c53f6925b92b78942141b28fc5a1e220a630d14187cbc8ff95c358869840a432e6e14a0ee75e921c93d3036b3f16c44c45124c27adaaf37453cb2e236524c39a80edcc3bd8e1befc444acfdc33a4cc14a6c8aa9db16c86e84a58b26c4c7c05c2a712b3005880ccb604989a07698015094fbf2b4ccdb76eb9046724e3336a891a358a6e57f95fe243185a3bb1d4f7a6b7470374e8935be677b593a0a6c93f0935182ccbb3d2a59b97baa7adf87e415c20b6a711888a13b6fa60968bc0c50c6e84cab64b88c07d88bf8c3706d1b92ab32514834320d936c660f95d382a2753042b6e55919a95c7120354997767e3bc92024369f4d717cab060f39a16fe1004d8a06fd9e56d5979650eb80063231b06553c22b007764395b1c23b1bf1cdaf2aa432203c14983ace961c3eca74ed025ef45050708a941f18537d2b49642983a0599af73a5407570f91d5879ef3568a707932e8c7860b2e36702b7fc946104122771a3c47f164057a95af2a5746f18c2e1628d3dc0b58f14489f674a85455ed0cbee96ba850a2ae4cf82e7be6c1ce318f4753aa5cfb41693c23a467b87f72963bf51b3632333fb49b51297621f66236aa80fa257b8f6284998837535c9d3d14016729ca68896527b883ea8601f03284f7151f00b35738798f9fdb551820294145416bd59091514d276497c2b0a05a593251c72446cc0a843b605f52acde9b20df8c17fdfb43acabb64116607c5c37ad1b90734abe6fc66374a13cc29c939824afc06a29280248c6003ae3501eef4660e72a81e75a8b6082c523db0e22e7463826b165a1784c707fff31cc09753228556d7f19632eeacdd8d78ba7c2999f2b84294c8126c84a54e632fd2a8a3a8a0cf383b1b56a0609e599a3850bc3f5bab7fa93a5300bad02604e39974a354df572371500779638730a0cc1b3b8a3ab49aa0bf533f5232e9bc3813ff50d9ad2be9377467402714e145e3ec60807e638e7964c39369eecd1b092a1c6fe51186cd9bd1475c21542ca4063c2971a337747cfa283a0b01bcb0b6cac3510a96a583b03fa2b755cc203a3969c30581de231f9a11e78a440de77bd590cc7241c86950835902033d2aa4434e0093fc588b95955eb94ca3a93c61a582928729064ea46656949510a41bf915ba443b3be6788c3b3ab94f76a1b26c32096733265cf39c2121c413066789420b43f46870854261d5b22923e0681c8f52a2b41cd28c6417866bc6d040c9a630b63b7a2e47640eec5897676a13db7691ff38b34f65bf9a893448b1ce1142974573ce1d8518cfb2b66e3240b85b6965c2a03ec7381d7315bb9cb0b41b216646c53081c6cb342efc1cd89fac523331027cc324821ffa0738c9521a9ce4e63b3138cba243423c374ca54922d7232a6927bc6e1e7389acc1f12607651710e04dda26064fc13b873e623b60440ded913ef40fa68b4079833a9e34b24965c61d3a0ebf9866c9ff613a2af4a +ciphertext: 2036904d3d5f2c54ffb9debd5e80a77fda6ac9d3bdbe6ad673b9442507f68cc10d98116d37e8dbcc11d42b7787436801e52ac957040fce6ced2daae1d7b254b82e5aa8ab17e519956f40613d4bcad0171ee7850ae5adffcd61d10ba83486e8bda501e9a8e004b7b478b885b0fce034c9ce1673dabca43d12def5d81fd52ab8316aef232d51f751c574b05ba66dbd93a4012f9ab31e571148e7c649b4a437596250c5e8c91bc675b42c0c480723071fcf1a6e9612b684d78c25b8f645c127de0b9ff04ad51362b612869ef64507425b89eddcb4d3d69f693b0e0e0c4042f74545e4ab11fafe4aeb97f1c3b02d4f20c8e0be11c3d9b6ae778cc90ce2b029d2790348442c52562e73442f4e558019fe9a59c15d552801130a32d4cb6e4cf8ffeada36799490d3d33f29347a4518ea89bc127bc80da6d883a8db9700edbf62a8815a7542ba20a58724a50eb33cf25af24a974a0e85436a259c1ee27cfd8435e7588533c3e7f2b7ab02b6561bef18048dfe4217f6bc9767d481a7053e96539147854ee48b93ced985af30685d7ff3a0c1e7cf0a45b893d7d8badfe9e9e97ad772b8dd6d60f75ffb9b9c3b0661cc1c5b2296ca101528a32075bdaec375f20feadb56e1d8fa011f588795379748aa34ea25a8bb7564ee250a2f648085d04a9c8cdd0ccccb7d8bdbeb03318588da507c614598bf0c7640f9c6a15771b8edce1acbeeb4b1c5ec60769391e0b5ed616e8a49f054bed4e39ab9c0922f95f9f93319251721b6ac5ac90b61ec4d6cf25a55e36a7b2eae23bbf287a98de7adf1102b9cd45e3805fa8590cc39fe1b23db203c6e789dc9d78751a2da38509875cc3f755135bf4a27a0bcb7a0d1706a2c197b6883702f68c80b8634dabf75ac987623ef38d4cd7ef648e57a4df13dac839bed8959b558ad338636c3e04e67859cd28edd68d8cd47f8381b5ec5e92ddc6b07f7ff6d02f2edd8a1c4aa01a22821a90a9b11913f0a549efdb82df28370bd2186e798c47834cd23d1a6662e3f4eeded40f6ced0844c4b797d67095d3669aeef795ead942599a99b4d84164f42c312b215a4663c98c316ebb0b599f016d90931adbd41ad7cf5375a891e2f86da9da068ea44b9d4f2dae558622add24abf0ab1f95ec797082aa3c92d1d727f96b31bb2d0bb6764610a7459d30c90526db4e636207a26256cb3df10362bcbbba133d66587200aad59e1beba2fbe5df63d4434324bfc7daea0951384ed4bfb07e668ad2876ff781e133acaee564f701a721a6033a3928d8edd599cbf26bb0209b76bb5dfdf421dae28818a8925d3395c60ee3fa6e1b2ba1975b2d995f1ddcd8ba2e8cf2e14ba099b5ab34adbb63cd4f75bba2bc3a0a1bc147f0a1f3aee817f6d4b5a24e88792a9b64dd967e0514ecbf536116724356b38ff7b67933f777be2ad9baa93ceb7b101a27e6017ec571d5666078617a07b0f5b2c61325ad5fa9cb05b5342c8d38f7c76eaed5531801376486a1a2a507ba48af291a771aaa8fbf75f3b15f438010a3c5cb2195262395 +result: pass +shared_secret: 83979b9c20391249e9a0630a7220c29414dfbb2528b8faf2bd3802abf0d97453 + +# Random ciphertext +private_key: ba011806ca45a423c099dc7ca9216d4de853815480db82cf5a75a4e6292bbedb183978556cb34ee88687acb682ee4aa16dec17f6b95ac19744cf6c2d869bb2e373a2ac307fb0f2af69f44f11a90907d08e17238ea571ce31583f74669dabda081e7826fd7b42edc6261fd1629508788355a8616b84b472a33d863291316f7a49bb450b4920c0aab213299663a550d94385fa3e71c42fc600864ecb3c3980050d4558cdf827e957ba06b76013e2a65b38cd9e772a2aa6b46f516d3df31efe950add7b9006bc39ab266cc3058a9f852f918104ec868293498d42c3c6cb9acfa197b1182b7c76070430790251b433224888e8163a9b4870bf18c351ea9187a15aea31b42aab1200ed1299e99d0f2b9c2e82781632346d7370ca9a2584288fb6d9913b97810f7672fc47cd519a80ffe99fc15b49267b5a51348014a9a2a8e6cab5e763765a99570271c9c698d734458b16140fe85b3e6a4bae97aebcf017bb343bdf78893085765530b9be64a472f91e66d1886ca16c8857771858abc000382bc82f7f8a56c8c54caf5ccfb5b1a0c14081bb46416a1bb345a10c3bd803b3503bda040192f31eba489452eb7e9bf46b95f34534a916b13a1170a9ccb52c0aeaa28750a6b145ca75295794c2d9a4c6e433af210658b34157ec1c0889a7323a9c7b62af3a1094528b5ac644b66141688e2033a8c76b5b2486853a9b35661d2d69ac5180c4565c8c320b4c68e99524ea0e85202633c1409c056540ba6a7750041c57509806b430e8215e817e25a632b8fc5054b0b8f8a544cdeb9254f72abed823a176173d64c7894882fc43b10c69acac857e739cbf889bbefe5377b9186a26277c6b81472e3363d4817887a449b46998c363260a1c6363532ad63019e1781dfb8a413bc80a55e043c6d506cbd4cd9b9533241b10b5d9970112b0a0267bb6fc7f38627cef722f7bb79639e5732c27c5687025ef77b43fcb79b9a972a4fb55ccb56a98034d07cb55cf0535df6771fe577b342939cae475b80a0485fa7430ea17c52008bdc2cd691b772ca01e2a510fe4e6929a6ac18870506e4b703dd3c2be98ae0efc1941c1ce527221695a9a8752bcac45c863661b9221134ffb231409699cac71353026a2b893d4c56af718665f8573eed718ccb410f364c9f0b846622a3fe4e209e219bbbb44496e096f4cba269b091933691f7bb44365672c740bc13577a16bd5c4b3e2a36f217429d81ccc670ccb5bbcf740a8aaac30b1723b24098fb6771cb23379d98c9c16516bc6d66bd1ea86d5251818968ddc097bbdb5c38a2a6c1d783bb56bb51dc092649a4f34b0ca5800124ea18c1b74741f3bb4ebf90391c58ae779cea9e8004ff837487aab71447fa59b674961cbf1018fd313c53e90bc1b3b50d04745b46859fb891e4b7807ff7c46929211b0194b547a9255106695e25a3d2268af07c0ead72ab58351411c6b9031360371b937532301263766a868f9c2359eaa36e7d643804c48e4c59e7d36140a6cb5adc316babab1eab03fe99365cbb138fe3b3c6986b20deaa7afc1837864b03212ac9b6a6164d083273b0fc525948e349742e19770390d54529fca603cc8669939a3436d831e4d3666d51c1ad0a8031aa8aff30c9c6a0c6ffa51705f8b0b6233c253f5534e96ced5c03f98fc55b3a57cec7692ed295a502391f53b4de1750ed5b70057722dc8743abae7a01239601742846af35d8753326983cac140c60ab52a88aaa73da601b6b84bb38c524d638e3a3aa323d5674bf2ba8ae20bc32511ec4626d51c79d9a796133b4f92588ede04b859c4a3dba723c2241fea5978fa389fb2d9a0db0043a03a92368a2d86ca87bb810421320fb332ac467394a9db6f6744a58df07670d05fa820c7af90973fe875601b7564f5b323934d883b16a7f970bc59cd752a7da6386f3066544abbb6b80b5eeef01eaccb9204731defc57dbdd417dd89cdbfab5552425cd3993f9e044d87537c220c34db556e188726ab1187a1cb1b156168ec4894ee28ae401c992c87b39270c347c37bf8502581f51a1b47ac2bc38565a40d1cf095c5d444e7558a16833e55f96691776ff4d761ace02786f69821c639ba970334b6c773e55870b609e71617a3c693231720aca38e86149c7c651b66897a93a404d6f7324b32675908d0fa646d650126ec89304f1a1b0389a2722b7d602938fb835516546c977630027b0184f329051a77d16b35d263bbc44c548ec849a69bcca5b948e0205c28873fe5ea3f7f1b3562759e0cec4df4b579444c082955cafa652d811294b7950d56ba623cb145ae1acbb0b3c736c570308091bf89004086cce7ea5b0eb750dd60c68229bbc9da04023cba012941a1d28e0780bda636317a0a8905880788b611c43abfa1f5c8b8d0a216f300da0206c423b245d21803b39a4d686a7e03cb409b874db06469080089dc97cd2c5c55f14f066ab9cab92c0cb97601d6c28d143219132c60b6a49fd311700cbff499758d93614952be34cc33a916497b59c0f3cb2f7eca2f17777b9d87ceb86022cbd35dfbd67cd7a4870ac08fce123fe198c9f0474d65e7c5906765759091c15cb099ebce6a208e8977bd31031752f68349a646afaa9f4ba7b5600bc5b688705bb043249560cc17b437b001b35328a7d0476fc858e3878c8cd4c0a6878fdc85a0ba09cda430a2cfc0ca08b72480288d2d905019319c5848b798a86965bc94e8a3acdb132c2de073ad042b4f297a0a1c6b5622b20f0bcf1b3c6e93a08c223a62c09567d8a02740790f97b8436e862c9d342a950024703b7a92081e78e97bbfa0951ef6bfb99cc3fdea33987a0611c0505e159275a8c7859146ea766af0653581b1a33bc80ab53bbadce74c9920018448950a1889d2a2823e440524f2046d6337a6c423b3452b7ae63a18b2b891307c1e0742518b1adf948d6b75334010ce10a7716e66059b7143d0f9a4bd4c71cc57542c214c33286940d445062135e5c3cba4a9aa6d355e531686685cafdb98c244041dbf401c83712b2c614d23c66bf20c63d51018d3ab38aa4b4876c15d8f7467e03c8ffad978437b648cc972c1d796535c2304cb13ac140b95f7878cb59472c370626193075c91a369305b2091ae027ba12157d3d10a3a271727d3710e90cbd9fc7e4ce70454e4275354b359f87ae9179d2e15ca81c076630314c98586def08f05300ff1526d10d1585ebcb9e6876c4db215eb3857f0d0677c51ae0ff1169d2a1872f09dc9468461109c3bba6e188f5a12c776d6e8dfa580dbc582b8877afe751a69b117be2d7da98f91ee072da11aa820e93a7624aab39ecd233c3cbf2450c6c58c82e8447f64b2b50040bcb2cb150ce09f04a2b867682356e033b1811c2ed0dee885674ce196bb5ff3aff6ae +ciphertext: 78c3ec20811d7388fee659f579cb5b4aacd7d217aead43fa1cdbd063d9deaa331cf6222dc834fa8a6ce74c36659206eb558c1a7d533ddc4bc9d6d363a07597f6a6c9102be7209e5cad6b613e70967ba861c5dd8cd419ca9e532aeda76c8ea1c7d9da58c0320a52378d01a48f4141d0fab529d494f86b80b2f1d5b36afb4ad90f25f4290c6854d2d2e44d2d7506101f4a18de268d388789e5f2f89132afbe6ff855e24185ee01d028d4d9ea6b3220764fa7d5b2d9a24433e848c91dd8f1e5496cb88820644359c20ae0be33a0e749700f30f0a484fb18d695883b493255acfbc8a285bf477f8f102212b8613e8cb72b59e6456aab7a6c767a26aa8e8a6c9443b5dade8101e6afec8d7d4eb3bf9f068c68f206277b40bdc7519f719bdcef914e481303bfce7ed672bd84c32080cc83db38ae032c5e4c47d0f9883e511a540b90d254ca6e26efaaa6dde4cb53074dfd568f73d38122959ca47f9a2ee58bf593835c9df43f145f5c9bfce2c44d2047b8fe39bb9aee898d757cdb1a11136f8a558fc15968f181c9f496952bdbc60638c05cc2f159842ec9879d6130a4fe867e49c8c294f4d97130365293fba41d79dcdc6e8d20568294c56cd28a2ce4887b2d7a2ea273b61912be611fe8b9f0029c304d62d2a8b4de6adafd62d50bcc5d497e542e9065dfe03a4e57fde3dafc007446567576bc34b6ebf844ea8ee7e88d5cd79d1c5b76a631d22778818dc15ceedaedccf88ea551705f52444d4a8f4c1cfb3859ae5c4707341fd7723786d9ec4024c7d7b48efa44cac071b40c61b45d0bc707ced0565ecaac81e4bb567684f0974ad727db1b218396e1c2e733acb8ac1fc09cada03dfae5b995b8ffe8b866c8019796d3eba80268b3f1341e2ddd9162a1bde8566d58d39cb7cef1c7b32d28e5da23dcfe39d24ba929eecc8e35620d26acfb625200b1f2cd102eea2f4036256a31a91bc8b237f82b17c7109f87520e709a849b694343ef60358456e69ee3831a8386d3889e963f9a9a39b796b12c0443eb11c53990cb0e113f677a2f97a2305f007c07b682526d7dfffb92c51efc7404c44eef5ef33c7131695a67184e876f4fceb90029a17a543c8dd24618fc0530a32eccf727907b00e7b5e9d86ab96427702c99cdd1fe59f7d7b4c38eda17226646528192077299a71607a823242937015828ddf1006061344d65b2a6b4bef4fe42814ee5b97bbb7044694f2f7c0540b2aafebb13a48249ddb91a0603783c45947de5beba31e6b10d26e231e6a9f50b8307577874bd39d7ff4c3e3c2ce647ec90463a5920f934a6b7c7cca4faf96e54f3f9b9814444ee9dd031704edc5c6e7dced1bca24971dedf55ac2ff16c12037d10bb4f31ea649d134965caf76b13479d4acca397e629e15727eaff7b6a81f06271d94a6c2cfe59227bbd9063faecc9d611f6d8140a55236fbc1eac5dad404bbe7a5f02acc1dd4fdc7dc1a93e0bb6a6548096744e39e3810d7e19245ec38d9cd779842eaea9d676d65522748299029f92f0d5df94d823bfc7 +result: pass +shared_secret: 560ee82de0d28ffdc1644150918fe6261095c4d8a1b15894faeff7f2d46575d6 + +# Random ciphertext +private_key: 9242c1dad172ceb70a1b682a278c97b757646c7b71d7dc2fef2030ceb9b4a0fa7490c85e52f233510240e5db134e6acdbd78786697b80328c827b627370bc4e05ba96155255c3c246f863e7f025623556a77b76f3a82045939a0440b8fd2e7cdf35194aae1587a5177c7252e761675b8ab577445456faa0283818139f40365720271a64fcdc0c529ecc935a7cb56b39f0f2a6a10e12ae853813ad707fca83076782fedf946fcd80e56b7c6faa822c6a02358941517232607fa7b9b6447f2e0b4306a8241138f9548964f8c45e8431f22e7a3a00093cc30b347d29f7b416aecd125d3f42658b15dcd0bcbaa2b311d4585ebe85a3c1721d210232d920c89b43ab009cd1d145e0a1585b35172ec36692fe079c99bc4c61c60809b94f853a312f4b665549bd8551a66a6cbb7f82b60a20de6ec0e6a001f3364530d9c7175fc1a9ee076bb378394d9b361b21dbdd08c02e111a0086bf2d27a9f648cd412a4635781ba42cfea82859cc35dc6673a96c80a7096b670e787890b72ddc77845396c7c2b5773827ccc092a3ae67b08a82598066792785547e6b6cdfb0a32c741bd7a6dcbc990a5039671a7c056c17c1eb817d35962d209a8078c5d01c559cab1b5ca249bcc1704d94585c3a41a7fa12c7843a8ee964507f5a0f384c0ca321a066b84d69a37a7f29bf4527062c8838c493581a3078fd5277f9a448dc822c16428b8375f9382727f91248bfc0323c38feee695302b21ed6347384b0a24483b4b7c470a291757c0362be13b85ba7713caa1de02403e2a1bb5804ac0005d6553ce3d12ac488bacf6cccc77bac4a752bc2bd40e77e473d5e5b01707b89420857fb567c6da067c78bd7ca02f1ac3135244a30a072ab46a523ec614724b37b92397b64207f2c2c750455ade00c0229717638a39ab6b37a6e200114052f13045f4f135a5c5aa4847400392244e360d32779ab83369b6aa09e7f93b06107009738c04361c17d4a7581b997d5a94a4302f6282ca8a2609fad0a0720584ab40160d453566958dbb7925e2250980bb62f21cccd03774ed2979c73abfcfda3d8559b9a786b8a6e82ea4a4b61131659e7324c2f52541d19a6523268e847f101355802a0e5605803ad1b6d68bb5427600ceab91f0487d879cbe89224e8b587d7fcb20045a0c883c7c5bf5ceae27627ab3a8999ccbd84745df55049893bd5dccbb6347abecf7054ef7ae8ca3358729070bc00ed80023171482f8037e5307191e1ca340252e24f586518600a9389e55a140803484c7a6bd9267874d390d7d0c789eba2445db38fb0379b9057e534707a25a510c852e6eca713a922b27869c84a296d87bba8da49ea95ac395c23f8cd2be12cc269c00a79f834c617a5f373baebef6a89af318a5cc552df281431bad0148a5c07a762b52afccdb2ce2d929ac00241ef7b0a676cd717803add24365054a8a13561c3a90a031b737d8178ab371d4a81642728a780aaa0a6ab8d63071c3a71428a11ccdb6194285722b5c6b1353c19b6a12bb977d6e7730e0ba0d4b8c382a4081c9a8556028b6b7c4a6bc21b6ca7b92ab3a20fa0547e3e0aa577654092a5f388995991c52305b8d8313a0a0c4c50e97cc3f9913cf17ab8cf14a78b76ab0e63d6431c58e17c2064346632c5df12ccaffb8ad3f20825488706736bbf725cb1b506b2bf4b33693a93727b6ff60400b3a6f348888dcb99c2326276be43a50887317f0723a93b401fcbeecd1abd0a7c21a296530e368f964165be620fb239c5d077dd4a33462d10123140aaafb26db33545070a9b4468eb104c84bd5c47e84c8f49069656bcddd8c8e70c246a632a699817edb7969f1857b2c678ac292970995c9ae02c184e64cadb1a44f281030412ed2052e024744595acd53eca7f976353820137aba8533dc6a13f916a311cb82a13da02c1ba044228bcc2b5e70bc8914729c4114e506a775746dc2032504173545fb17c55cc233e11c749662a40a42287a5707d3c6dd4227c4f2c66d35c5a1576aeaab7db8f515b8719f1fd4aa86b92a774525d5689d469023579b6ad8c9ae81475acab9212b1c8e548090ccb51d2cf7ab28106adf510a7cb87b3933217f71333d031d90d43ef9c61d53aa513ef3433b6a0aef9432dc665aa1f14123fa5d8065b38fa7cbae271cbc5b2e52d824495aabba4bb5d06ac780c0cac18a6895735e2ad8c3671c79e27c8869fc23092663aa464396639aa224a16cd6cbac5b4a1fc9c1795c44e7715126f7559ed190108617bfd8c6fc839d027676305cc39e760be875cd9ffba1ead1a07d049cbd269d1c172228f2af91f5b8798929d93529f3719082e60326725ef7eba0999a2c45cc6273449e1e50137b371aef04a273babbd9236704fbc073f679576794873b5884aa0a6939c856a2bc0e50b8f9ebcd11bb441b6459708b06dd0a0a29458b1ea56d5a5980695cb4f6db9375b42cea5b710d82aca4b4534e91cf0a860c50d291a8eb1704800e03d503d6c5865ae8a9bfb398a34b22ac85ccfc98c2cde47f4e604e64c27a7842788377645313679c0b5e2244b72c761f83cc078ffbbe32066c79f4001750780780980245077f05c022c52d98d295dfb7a84ecc763ae37525401b6637161124320b56042a044bb1759b0f136a8bbb8dddaac40a1549482a9d6195c38371119de266fe3aa7da810d70e47959f86496ab2879cab92ed41df570c9e18a4bb4dcc73ad296adb72ff0c40b21c691c2a81cfbab2cca2c3062762d52a86f3917873050ab17a57edfba7d52f087eea09527e15a6aea2f8862898a2c6b2bd9642825423fe39cca5616dec9776da423c9945543e595fd55c4f932c649b82988332b1e478cf06c876378a790c433ac340fc37970a2185fa770934e69b00363a00742c6f6b19a7a8652a0bc00a596052caa4c8301c29b8b6104509f8ada238b461fc4995f89f91ea685841ca197d90117df97cacfd511dbf24217b0922f32604548079bc29884994c90961a5ac386cfd6620849a4fcd1b40d766ed37b29c3612db737bf83e780c2376e833b5fcd44ae4aa8242423227de94940f592b1e0451d4c9862bbcd5ea684b7b43cbff15d67e516d9c039c0eb5540aac3176ca029a74a9e925139c76278bba68a4a002d960b05475c1b41bb8dda15123a35dea286bde7a68da4c757423a2d7b6617fb128f5a6a12c24d3e29382daa045de64b06995e9c8002c3b4306d236d4bebc2b304cc93b87e203500ba2b7ef71455d2500666892f1bf7adf6c34bfcf9af4958b7cd180e4948a472d394049b1dbd301e0bbe82834e79557ff67cf5adfb85783abdbe377675ac3b346e7b78a1e5b9a973ac1b2446b7c3123c2476ab3fa0d00163bd9cbbc3bc5fbd9afc31e665d6d4950e89dd8e6a9cbc778255c69f +ciphertext: d1c30ae263bc893b6c0475e3ab25a8d4649cf2bbba7a721745636562b6794a997219d65563534e62f170a093dc52396f85d57f29d2486774fb5cd3bbdb79e09587736aec48ce664c13fc71eb4a0b0d45a94354da57f89ee8294301e6f1e42971347e99c12329a24b73cfbd07ddc629ed87dbb8ae1dd82a696a526e63721cbf3010d5e327a6b4854327e9dcb8528585320a4135bec448901a14b7037da06a7699dbacf03919f776990a847ec127890f2423ae7e86863e90732a40928711f5dcbc38eba531e5b12234fbbcebc6f5181e23463807fc8f7d8677f514aeac12afaf988c68d8afd5917bdb15bfe9303acb804f0d1c126e848aef4351000619bfdc31bf74441116bc9d1ae5771debce8131058aae07ba87c503a07f85e21ca25910d10fc9872b56f8c7d68aaf2c8e525dfbc9c50570c0747af243741d3dab4765587d8c25d393acb2417675d1faf59851bf853d6e6c3a6f789ffff296bcd2001331e8e79143db36b0fd1e4fdcc6d98593e19a69c3caeb71358ed8466ff2294acc9a85df4b81dca83ab0bf508eb6321d294001f95afad4bab0e9bb2c51220864b5f2b5b17db45257a0f89d890703a84f9f4284fb1ad50bbb7b933aeee30d8f872c200dd003d9f48a8ca490501241f964d3c70a544a71dd8871ce438104b80bb3dd3da8e3f0663caeaca97f15c89627da17ffb69a3a16282cb9d99166625a52cd6ad4ad911c81f5086a445b8574daad901d7db029b9efffcf93bbab71fb9a1ec072f67e7628dec0d21102c05e24fa8b9b97a3f64175e55329cdc64cce560e442c836a7e627038a5fa81888919d42f4c4f5ed7132552a21361759274eb2dc866f8de9c325bf4cc4a6fb3c9a4d1ada4a0d1fcc3828f93ea8d54e4dabdfb6b57bfc926466d51ff7471835a474866dc9da441568e8d22bb55c36c494d9ee6c34b908ac4f513623f4ca74e29c9343ea47f73bc5a937621b61f409915219cf3f21e4eb3b437d0e9d7d0e6416a1a2c0828bdbe8a3794f20348c4d72b20a8e3d13044a0500cfe1181a7b5a7ef144906d18a273b7655a13eb822b2063dca8324e7594761a3dbf2555603d25c6686dbdcb0af2747088721e70e18272dbeddfb02384c3326b30c074a78729954378b6b49202f29f6edcbe45e9eb26a8b3295d791423a933ebc310d29e3a8cbbdb0f09cd3dd1e985f798556f4e9d599e6f54c78f54ce8c3d84a0ccbb8ec8ba11c01a8f1569804ed3d009179e1cadba10266465e2c156dac73b8c4170a58505fa484d3470f0ea752829c59fd489d6e0306b1bb1f87f372918f399cbcce15f4ca31f07d2638547be292a1716cc32d2c786277fe6cd859ae46752002e4bd318fe9884387b8a8453f6f54dfab9041e776f9c6cfb4fd71865bdf735cabdc2e474a1188a3bacadfabb4a3f01342679f937de7c7e7438d54ff0dea35a7899a672cc0bbd92f9098fc28804236c0eb9ef98e88263bc4b7bdd2377e9df62667b424c0b791871325885e9d588da86ceff1492fb4a4829a171f2473e2d14b5a861fdb34 +result: pass +shared_secret: a9d1121a137441b98f2d6abc730eec6cf3ac8231bee94c5462ef3cbbc34aafbc + +# Random ciphertext +private_key: eeeb04ae497d88a85333f81fd034b979cc177bbbb50b18259c1a2b09fa80d4fa4be1809e246c4330a7cb3d0337328c64dac306c9f340c65a00cd809f7fa2c8dfc25266cb8e7ffb0e1386a362d1c13e79cb0b1785ff60060f06229fe9122b7495676603bfa631943237f737cc2e88b24226bb72515349db157747b94f6ac0dba4358b3006e17b139e06ca26971f11d3a20e1029dec0c1ca7b0eb81b5e8bd4950fb85df8a363aa09908e710260cb553425747eb8957125be68524e54c54e1a92ccc32378a0f220eb34496ea20f12c30d7f622282668fc570a232c891f55c98ac1077089485e450134eb56dbf9226310113db701344e4b20418105e8b8f07a4443e161b1c6299ee41218da08ef7aa4e2623051f612f65716405d23419276d9d7275a6e3ba2f504009a738b0645d7e5179f6a360335423bb78571cb465ca21043272955086cef4e4944ac9796e69285140405b1639dae15a496a5dadc57984831a6a0919c863b8029bb770567b92c3886711197658214997b991173774a722e8d22710db3932244772307dac08025ea885b159c6e511c4ab6997c0e28a71c76354c7b7cf044024a41416c63abba78525562dd76275bec906109c88db0623f5b1c3310483d7d9c25dfa9a94d55521262eb1e75562813f23d07c3d156f84dc631eb00a72471023f101e76312dd354de22bb600b47d942a8d6ed1cd8c140ae2c966b8d560f6c71f1e57143afa3cd7b17c13db90b0e733f6b01a27917c38096a342cc84c9145b544823d90c2a6c9c9a2402b95232fff63bf47f64b81156ae1b0351694885916ae3c88bba7c8ac42bc55d5b3cd0c9a325818732c663688dc41b2650f23f1169b39402a394ae8d840ff01a96368c0f3b307f53a3745b4cf51c29a9c16c5e44176bcba6e4b946df8d214b55abae3d1514b82062d12c95af8617893426954a359411411385e604baf9bf1b337b1323f5a5795da6f2d0998bc102a56fc4ec560cb004835c7d5372f78a3e6cb4636290876f9ccc002b0ec8c67418aaed1dc3326e2c99e7b998755a6dfe10f6925227bc76e2e866129f3c13ff4a42f1671dbc37213fa6aa7335a8996619a08a6211c60b599091ff67fe657307c55058a7a7f0226a1154a3964f449f08268bc6721bb720a5d6236fbd717b101790182814c61757c478f384b3ffa9342e9c103af724cd9189fc041956dc44004252a0b23a4bdb61124d52f952832f57aa7fb46bdf4c26203737f920383089c69eab27d68524b230079ccb21e3f4b2f58627c083299433a529cd7203f09a26e9b9299a1c9378b6db019898c946e414ccfe1b6b1761094a31a3701fa359153554177a76c29cae59c71cb601ab0c9a8a25674ebe34feaabcfec37c71e42c39a8753ef406a02274174e24794b08652931591ebac4cf20c3f8878d2f0c8ece73082e2615f918e718604cc55609be6149a576f79d451416302ccb64b27eb577964199ac298de0314faa87e2925a94ceb3dd144abcba086ebb90ca37b0cad5bc14ad66b40369e10e6823f5c1023a02ea2a77480009cb1336a09d313ff207b45bc2630d2c6f4b5c5e6867d54b2b957ab978a220370c88d91a2b7498a9ca6f48d9f932233645c5dd884b01408d599c31c515804e6c063fb198fd58f456ab026a7a24c121e4bd0cdcac44ff7b2c7e1bca187d874fbcb50d3753c310a1b6a78200afb0e8ef339a15559d0f21a091a2352c19f1db74dcc15cbad161dd7e75acdd05a866c63bea03537db36233c30e0bc0dfff845e8f19a2233c1ab7301e96c00889b0e35078c7134c351a05c86f8b03a9484eef962bd91c8684356aae768076751da83bcd5e640002ab7dbd3727de90de674b3a9cb3046353aa8a9b3081a6796b433e4476739e9c5cb9bbc59718368ec59469c794b83b76c5542c0537605233245ab1ebf730ac0a2c8aba65cba69babbd8a84a5a9ceb50ae68410bdc29a450e1a4ef5a2cb948805cbb1382a1649f53585ca1cca64a8df443b2dba15dcfa79ea37461d06319f0e877e404b09f27bd07ca8d374c15d0f06351f40fb638cd96c4089d2608ded21765fa3462f80320758f130822292550c76b187c872b974547f47456fb43b065753666e34d537c1b337897420773450115c2c82eb3d7421a29ac56f5a2344b7070ac358eb98d1d9474a5d869a93b301c1b2e104c0ce8a09932868dc8398eca8525303b50aeab60aff32d033267c1f09017949d312c62d2d351e2a96f8286182b2382dab82719763dfcea86a4389d944ab71f2173eb7ccb24c322be691215d31e6a287e7e73764d841272760cc6599fb4e926eff77c7e2267f2438940ec2e52396e4e0178d88397668c43a395b32da812b165757e93ba4050acb9a197588b50bd6656af514386c88be69310f2659c83304d0e7ca6cb866ab6055b7b95af16829cc8d63bb0c10ef1a352767cc722c06a32706efc4aa0fc467512120e382b4da930367fb705dc9a63a10392edf814cd2c9c1f497483c9164ce14ce9687fd4c28b9be7189359969647787da9a4c375b0e8eb704b25a5098c8690e6243280174dc35d9869c019138afff93ce4359aafc8bb7e4c5de6f66d0da0369ef56850d2c93a1c06402a5d6221ae8819a2c928672ba34d16baaf2584219a27ad8e64b553e046e6d94b907c3cde96760369b01e9658df423d852801538745eaa17829388c05202e4de9ac53386fd3a5a765ea835c8497565571fef02f6f05838d882694c9403a700891cbca8de70479aa7cc3b138b53a80a61624bb8b5804bb665464acce866ffe5190c8eb61c14bca03703c1e13cf646b9749a3ad350c91aab64e42e2b12b64155df44a6ce7515ba191d696a0f2a82beda645a9ebafd01c5bcb23934e7abe4cc5710a10c7c6030213a43a174076c7d5b83b047256076808065d41e07de01cc748478e4b9722f630a4c76565142c4274a6aba6112c360b0919a6caffb6905a3a3692dcc64b5c3b61c45cfb004f07b115d3064cfe90cf49f10564173738d88d73010adbe02db0fbaf2c101fc7542311ab3b23193dbaf612b6064e7c41729a6981d1d56d806a07c9f500627961b053491f67b12fb9381d1bcd6fc152354b9a3b4774b4d144c0979daaa45fd4e963d6f362150a5a57c68d360b8fa7f658f779572421160ceab442c06e667b88a5b25dee5b0cbd9352ec0157ba255bb2386fe2282dc757b0bf9008337a51cc9054753ccee7d2adbf3691487874e247b169c4a38f268ff5151bbadc242584c19e5918a975d8e380b1c31e84468b6b9559fe642574284c44420466a11063f97ad118080033f37f6a3ec5c577390f684faeee9f458c960d65c09b34b05c409d461b032b69edb4159adfc163e9e34e9eed04221f62dcad381aa78eab653f6a9afc +ciphertext: 88d74278dbc5a94b5d37fb5a172029902f48b84ed6eea29d26e2094d5553790afb59d992cefae6532d5f224c96dae06a9e39641260fe6d9682a74ba9ac11ea1721eb79f7345adda7d1f2f5b12b69a0db708bfdfeaee55613a7dfe67ff8099d9677bb633a9ddff300dae09fd8b9f722c2fdbcccdd163b549ac2e52bb8569935cb030d0e032a7a2b59e9d518892bda8e9f4b569f8892d02a32a547311ac32c5ce16467e11b1cdd25ae274c734dfd84836146e7755dd0de590daf446213ed7da37358f1a49964fbb65d5b512b9bcd2be2fd24e4ff9263971962776c3eaa8b7a5af83a5291a7e19d8ca0fb7516f4e5bae5b064678f839e29f8f85ffc3e16245d8f7a117f7b32b20825f8efc5778232cc1be8702d56ce61d5e3a54f7aac7f25fdebf5fe7c953e03f103c6fc9563a5414b321e0fe4f739d7bb9c51177766dc89ab66215e1526b35eda38b91da4ee26b2d6d2935d912267df162176028dfa448a748b66299393f5bcee9ecbaff19bd40f8e2bd07c8de938d8d1f1ffbedab2a4bf8f9cadef421ee7ae07d0c60d89ea81f18e1c8c36a6adc473b1b9684f325832a2b5e067a9f275d2881a3d569a8c9ff5a41ba2109f03174a8e28f0c4396647b69fd3547d345e3dff677a56f7e9fc1facfa393f0138133f9b173d571cc43ba3174ae4f7ab52a3437ae127be2a352e99a6a176fff9d60ee2683b5e7be29d4043da6d139d879ca57e903d0ebb59e2fccc1059a10e583a2c3e2d549aa940c8f586b7b4b33f575e133f5d01941bb138ebcd8e5bb1772804818ab602b7bfe50ec5439ec3249ea21636f6b3db85dd17879f8102fa072537a8913bed1e11655dbdc88a49cc95454b7792fd3b51aa2fc361ab6efe6b3f146cdd476300cfc0dd44deed24d89464b6fe3ecd3beb341aa45ffe1612034b2907ba2865ed681251e87bd14e46ddfbf59e822dae952de16da4812c083c14ca6998fe7d46827d73bdde6e79fcaafc83bb0f3f168bb36559e6ac3ea6c8ea1381c180805b6ec6658f822518b380c7c8eb7ba961f35ee8cc7133eceb952d6d48e0c58f7be6e5ec78297865f09653ab1a2af694334ac2a9da3a1131a6bab197d72b3e1acd1c7082d61e643696ff56dbca20c3dfacdcded9d0dca5535188080b85135fd2d4ceabeab2e3d81413949ac4385eee258f54e12a5691532b8f860070952a7df55cf5d84fe7baf9f13a488bd32fa8754f7851cffe67252f89bd164c38aa6cb5c48a68bcb3b350a01f29dd8d3d7429bb774cc42868c6b835f1cd09fb9fb5719180b662adcb9d44ca2c2032338e38228de0c429c1d92ffd745b0cb1502a3af031ce1793b76125a2c97fd14857dc4bb6f214e99e2ad9b6c505e2c120af5ae41f3490698dd3b6a454033e121821331045c92059ccb2beffb0c8f48c9c7909431488d20e6dd83275e7dd05a65ee2e651c119bc16b2d29394f12ce4b65ffbc94a8dfa2f3868fdfeb6a88cc9c6ba68ab40ea58dec5c94bf6d57f15dd7bb79d39f62d969a3313ae5adc4a4510ed56bf9b58a229dd77 +result: pass +shared_secret: ddcbf4a8e934a4eb0941d6e3032d16c60a551a285e9a4782dd34daa156837f2c + +# Random ciphertext +private_key: 4a0bb822b4ba67065c985ca54e4628932728dab6793487926a3a537d98aac5cb368fb9838ec7c83e3979000a3042d406b2d27a12eaafaff883022324b21932241002eac470ad5c3931a2afbf00b3ca56a78939c90a27a5e6b95a08895e5156be16e78ba34283f643418b475f7ec8c99245281833ad398079007929766a934748ba9707859b750fb8b5bbc5e50984f48f4a73532a8914a3aa6fbbf217ba7773fba3888f3a3902537d4e416ca8ab9002a991eeb48c98358697c9be83272ad3714c12f3360df35608016689929180a40e0d5125335b5fce7abc017c0fc7fa6bb48916ec8788e9199d1190b665221ba9bb559c3b8fe5e1487c8151f829ade2b1821336b0a329699069536f054076359aab624bab0b43f486aec6c54fd9babe38f2babe38ab68d4ce967ca372d61095fcb7e50a3f6d1cc24e9357589764c50888fcb56a32930fa154acf8104292f821bdbc8efed06447c80bfdd426c484b7f2389477723dbbb234f089bc95cc4df9b1c4c020518f5ac0f377831f2a4a368c73fe67c21bc10094401821e18cf2cbce5330bf9b39399facc794f54687a880e21ccbfb79a6b4d5a337590fe3d13701c77b77cb449d2b53da65b25c082b8ba9b61174ae7b64b5e6f4bf6072b653f4ac8eda0087ca57d7f6a523a0ccee34be3932a3caec12bd69be32b87ac0ab413b367703331b552405c98c599f267ffb3731aa8a42ea4c9156003160780ac2ca0169ba28a9d1850fb1c02ff79a9fe80e84c71a856a8b6a56b35aca6633f84e321c3b232c3f156252db93bfaa3284fed302c565b1c0e08f2e37bb68d8bc8718cb05921321a547c0511bd2d9823c88827ba42f50922739a69dcb10683c3a357ec87243fc93dd1b0811982e0f2a33ce948982924782823eb1d8127cf258b6053289897be3807bb6cb357feace6213b9f547c737ba71eb8382587341567aa1e38082ec375e1029cca9a7a23d2b797946ad761b27ec374fc6eb7c9523333254b86c3b8da7a2cc82056a80c02491831f0ab3a55e77118541497b7151b77405fec5057ee9afe3254c7be37e0c153b6f66b32b67a2977292bfa81af46718e00566520981479038bc95004ef317ddb1192da9061aa0aa39a30498a2be4662968c558bc664729ff99c1b716241f43eb85902c7e45312128e070029d91532c5c321614b9485b21437329e13bbbb305b39ac4b3b60228b66614a8c725d56887de7ec0e4be155ec2907c9857a6f942e48b29a9ea3b6e83049dbc9b36a9b50b82901c65ba47ae9790174b9af087e8d1042ead17f34a7408cc68d8c1464eccb69c4d105f79c8fd7e26863527290fa9f0a686451721f9b59496e181ac8a42b4d4b132ee2c6fa217705a8b200d554aa374cf4d930d57127b44a381e6996e9451c10c95d34c17ec504be64a5353b764c465c939b865f15c25d53324c8d6bbeb5590d6e86896d58a4d11c9508550ef1298bb5149be5d94bbc13ad4fa1c39b20324c37a54de5225d5324e99a2e28f747a1985737c763e70b94201184d6b375ee672676c57eb10accc254049fc2c696fb9212443ab6080cd763b32db9b4441860c2b10324352106476ddabca56968448a723f5b25bc8f81968b00472f2c67ed306df69b16c4dc0ede9895bd5824881815bca9588a3b4dca0c8cb4d29e20ea353c714f490a97f45aaf9188a00b95149e2b078fd81c4a7c92fc845f7b09a41cc48e950b10b5314870069d64f2889725a5bb4740207b6bb31c23e2379c5e5a9e2ee1ba50772a41cc5496e7b45810634917a14e040716000735ea3f58b2c21c546f1dc4affbac5bf46042d26a9ae2db55aef3ac7600911ae3a2ad2488bd26a2b3066699895a8f773022a950b24cb55d972452e3521c6305e6eb8b4eba1a37c1cdc9d5c9e53021e32356a71a506e9097152abae7615528fc8a28e6332eeb451c7bb04efc860e456ade42c6e26c607e981b21080cad07acbc1a9b6acc9b30fbc3b1c518c969340dbbb1ce464842304fcc7c874c3c1846e532ee4ac9e4492fd36a6f78626f2b5bbd9d40714915a4be0c5d844c6eb61c4c2fe47237f437ad1b2cd9fb00cc836aca216a0978a8ee83bb96994aaa3569d0c0730403358f710b9c61794a86676e9a39777873c98957c5b232b83490d029a7e1dbcdf8c954fee577eb6a3da0204e78d400e60809578a193e5832b466c360000aa7fc40ba32aa25d496e5d6a6c88698e8968aeb63a589947d30d3c3c3e1391188337cdb9224f92325e594af1455d36636c1507e3f93c9ae3780c671a9e30b49abe49497095c34c7a0c1b15fee4c222f44927b23a5bd193aad012cdef19e6db803e0445b99127b9779a369d52618fab558339e19ec61b31422afa50b34d8a9100a169c359a22485d8d08b5ef924c3b9472e6dcc375d04a9f793d5b7ccc63198d871ba87845aa823c05a281b5e543160743cf57b890c9c22afff996b1108b124c263a5b321b7b25503878369b54c5f93ce95627e9c8a0a971bed2b158e7257420f55a5c48b8d2670735f50303eb2e1e0a0b2e0174932596ac7194a82332585b443b828cbd2a9479e459ee693a5d60247cfc26ff899d936bafafe8b80ad4be46a99f34626bc247491acc6edd6291f13b1939531cb4166a5a3228f08091378959e3845dd489446d16a967693556c31909276d3d3945fdd0522775c55419b3ab4621bf880f8156399a2c98c2710bccd83263944477a149ec7918f5ac9671245144903bae23053c527a8fbb3cc0aa1834ac5fee6cc91cec48b1b8270934965237aa670c46d1e194a2f638545100ea59b0d5b75629f53f0084bc2c635a78061791d687e228631459ccd543ad442a6c190c34c1385abaf471262bc6a1a0839d8367a4b1876be7349514162cfb5109767a1d073c16c00881ab0aee398aa752049b49a85539220cf5743458cc2f9336a771604f07c4bab42f0bc19d55e70c72c217e8fa1fd70498de4921e06432097bbb40d75bd8f71e6a71134ef9128c65be3757164955c65bbb55ced02874aa4630d365bcf424b585225d3bc422f917e26a30474b5062513175f65c682c502be257dcb1190ac7428c778d71e442e30047a07c2493185b7962ac2ae91ed4da280a46342fe6685da45d93b55168bc2970598e07ecac7af871df893f05470d5e8794523317f7857118ba9651dc69acac973b843aad67373a1311c12b434085a4f21b4b3483aece987a1fd06fdda727e354315e713bf804baf5250ff398476472ce57ebbae9bc256231789053fa9e796acc28e310858ab4e177b2a9352fd78c5574a2ca5691cc0dc328ba45efa77127a819800465f5b12b5f3db23b8d6b56858f00af1fcc3eed3073ed97a2d5c30d0b2df6abcec95bb27e2336fdfceaea5522bf1cc5804ea06903 +ciphertext: a3332a7d121e4fe145c2788bd6199c27c4ade8d0705795a0a0d8c7fb392940599d936addba522349f4e07a451075d88362211cc692ab4e7af11294ebe881ceb263667bb291b5d3d419424daccc5d275bd2d10c7a2f8f22ef0c117cd12741fb3dfc8449d877def1f9988d486d21a084c60faf2402ea80f2e03c85e58ea23b0f0b700b8f3ecb3e43373b6e307391a0af9bb81b2e351d1dbc3715931f094d00b64bc1683501cfbef95de190023f0150c543e91184597b57c1a228418eb7a185558719ef1527d9b8bfef2684037f18fa987ba982ef99f135b827971639b4ce4cf0c5f2bf031a687590a29201fa3382668be4ccd3b807fbffe54e01176faf7d92163d1cf058d56e84e8890a6b9d1bb7ea5be4428a84bb41f5f481cdfe533046f04d6e83f5b9fe9b0a383e9dbafd34aa8acf1b6e66edc6d062a0cf0de5dc16dd5597e87d8fe84cfe182a1218a554acb449d3aebefe41c7d7827402b5e66a6572735bf21b1cb3d1c01f51c2b07dac5fc024e6ea9c690ecb66eca01e65ad4947b69155f7bb297058363c5f6cd093564a240500bf5f7d2579a3c7f4d9c97325fd10e2842056a4e246a30cc2d5f0c5b95904550eb81d9ea56dad663a766a79685a7cb64e4b784bc37bd123ef66ba43ed61a9456a0a4177c0e1e4112181caf2903d6b57575c34f5df89232204edf02268168b44f0c2acd435f7ba45cf2113c3fbc0303541b1c7554f1b68a01436becab80e86e88493f658755ef88e0db8c2d7379ead05de98aa787af70614b95b660ae28f53ebd12f582d1ae367d7570fa9777bf3d05aba1b7b75abf863ea0a5ca91d42bb4d282b213666c87630ff4a9615b35388d7a6f507cb4f1fa8a30d98eeb08843d7628864da17ac38e42eb9adb9045a2061173cdb246a5a55f019dd1bd5ec8c4357ed2e45dad105b6afa74580d5bbcb9151153ce50d7ecd0bfd88d22a57c373e6246dd665d7d8a917730970308fe7d8cae9a63e03ccec6696d59fed80e2ba99dfe417fef7fe2261caae76c5db20392fe3add53102787a06ea9a851f595be131654d08bd011726070074058f2e04b282a85f006f935576c9b1b6c1609bba178269bc8c6d4caeb45df28e827ec75f3dfd09348e3b92141c2f6384336c16497bea7e8694170e57b0ed67a0dae1b869f9361ca50b946eefd4e5503bb93d5c4eefe0e911f7fe19f8a68ac2efa942a1712609dff5bdd04d202ce423214d61f75dec6d3d86372c0b4ea1572b8225b5eb16ac070254b94dc6108f52bbae81a239a521587a9f15ba38c5207dee5ec0ec28666b0578dc514bd57d50534ce43b92814c4025b9f6105a05da50385f20b0f313990edf80ff3fb4cd97c1d5da137851fba5cd1d846ba384a7b36efee3f95d195761deb8f43b4715d99e37e88efa1c4f1b75f1d3ad2bd508809eb2dfe127e977fd378b83c90a2182764cff83be78263bcecd78ea3cbba374855339d917db298cd747452ed3394367e255f53a4cf4e9c4c2838a1483b980bd613f3c0687c01db555ce991cb14cc42af550 +result: pass +shared_secret: 54893c7f77cf00610344e4abdd8300f1598ae8efd2c55d8b038ccd8116b61962 + +# Random ciphertext +private_key: 692c09d0a98cb5186349e8aa1c470fa782773643090515513e7b4f7312b5e7d44269828353c35f867136186b175bf5060b2b2e6ec89ce6637fcab899fad22dd132ae5f994063b815e4c44fd98baccc5c1906ec42164248b4ba3d522627d72474cb855c16731f0d73c82bb7c72e46086bf58926531ba3f04d1e656900b1ac5cab320f7188a7eb25d0143f83d55d63db9394451ff1b02358d74f49e479b602828b673f1ed208c2d357238519d0f8784f9474abb9341a212bddd69bde0c4d1c7a8672e33f8a753b1ba464c5601c313239c6096e361b0336720762177e792837110a9a18b7a4b3545a7d7753a324cc9b08a6ac1b2abc831c62a0c5a65957286c598cf73d1b409aa1342b043bbab8b85ac7c849847521663ba60f8a9ef383cbd8237a4f84af8288630db82351f298e6455345640346827f8d1258b4684fbd70810e18bc7e9902771c3aa3e8ba4cc3ba2c03c62d6aadfaaac83ad9773688453d19b703d49de5407ebed71dfa4a33bd2b963e7313f2f6541c3b0cde665590726000a2944ec49259a3ba09ec63ae22a2146b32dc829e065b8692ea682102c8f4635383c6355449280949757e688fd8c6cff614b6d2c34681b60716b156c9a90d2c64765596751d1447b9abc0604b17b170708ab563cf78475a035a145740f0f20da96bb9a4ab2dcc99a249f780ecf6bdbb4667fc0bcc8301c3a7c940beec573efcc601d1181ce0022aec8c9e69ce79e3569acc00afd5ab94e99bd7379f041274916683f24ab27c143895734f5642aeeb10ab6708c5f1550302390c45637b03ba7813db84ec5a6c1c770f02197111eb30710ac9a59736da514a42db88ff4722da137594285c48c97ea515cbf46957a17930ea27bb20c73b6c29203e4873542a29e284b0bf3c313b6165bc44c093b456375b73f68b19f998602796ab2f6b91554a396b9a891f36942c910663c23fead8b3e4326cb3b218a01c7dbb5833817020945a775d244ce606a3c0d328ee79922912699ed32e2070cf2db097d406653b614af375c2b55715edc5477a36346603b4b59a705fd384db7a1a9cbb2d97f45df99208932a841eca36842466eb53c29ae841bef88051e50f98760bcf034c6f551da9c2bd9b98460e171d5975c421d91a05119032f65269d1b02596816b1018c9274eb9a9a844407699bc52ef3c2ea5b8b0fd062e91e1168e29389340c1c300af2a0067684a4a41a62386e9033533173d1c79d3a7c6f9f0ccf1d57ac021305de28acfa10b7937683bc05025a942e8b33dcfb65771e919a882456ce78ac63193e0a897e8da9f20335e135472ef66c3ca6766729777732445edaac10231368cfa9a3962a4f577c73d901cda54b39ce12cb0a321662b3a88d2c200d181cb0c2f22fab71da087bfd065809cb08dc297aa166da80c0a79d08565f32d843009dea19cb9e89ac588aa51a704203565d0c279dae29dce44b703b544b9a7bf4cb2946b9903d610a4b318883c7c2c8ea169031974fb65bfb567154678adb6690a7f294202c27ead49bb9dd155be57457204115f8c3f87fb87c6c4a773e52502497b87673e6a2287b3a48e6076575013023bc464f2708f3c4c23964a3d408a2010f71f98606316730a3a1a811eec6f13340fb240b9f4bb2f1128588219485931c77eb37fff100d38faa1bae12ab6a096428b65fee02227766ccfe346089b0e8a674e7c50116525bc5cb402fb691984135da52b3a2f697477fb0db481a41487c574791f7cbb2c8c896d25a05b88a71c3706cbde203989278db9230d38071ad632ca2609a01f2298e1526b2e163b4b3c576c55a7e61cbb7f933aa8c52286865b1ab9816b023ba8c70394d70f98429afbb16a1fb961642ca2ff692951538f16f44bfeeabb0be3c5e1142e3c3772f3192b28c5ce9c65764d13053bc4014f0b3d6e953337dc883f9c13f0897f78a0a4e31c8b075a34066bcea056bad2a1156397ba8f53b4b1a69963bc3c0b14c329384141f44396b91c8e146eff13717bc032669706054ba00597bf3c35a3db114992fb2e9ed81a9eb5a8526a91e79cc077969baf05cda19933100104a2c9aa0da897e7911675f24e353b4b64e261a2882536f3be9d95615787142de2cc4694b2d240b4ec582509a26b31840a803c20c3607cfb2c505231a10ce2a1c830a285627a077b9b222809a5436fbca63b15334e35dc0eb347c26b165f869b1266bc9c0c3c02e147287ca523b8819b26797e50a8ce4d6ac5927c18bf2884f5362e3636cdb7128d06fc0884e4a329a18d4a1c10a9c8bb7285399d490210228f5f662f9e5a2401151c3980bf09b67fa5587975613d314354c810c8871ca22a703469d94f1b9516f5e03acf015d65e01e749ca989dc9168b1868378ca24133c44b5ccf43bc0557c5e2a2266eed7628f093d8ba2578421266e0cbba665a9a26ac0fa7164a7b33b3a262d43b9993e773284fa4dd793c8e3c0b8c7949992a89bb28084cefcc6bd5cbef74876b580b750e18554acaed8555ea49c347d779fea8696dfa801991773ee0b26b5408de45c76db12b4c4939bebb074490a2f9cf209304195cfaa815a128a53cbc6bbc02174d52479f36a77624f63331c601c9162697c34fc654fc02b8ee894b370914bd5bd037a23c17bae5a5980e4aac8cd323b217b80ad6a265e0bb08fa22754a7b8bf663a08cb88edfa23b866bb38712d370902e7e91254b6ba64e47587689bef9a9facf60d054a4460e9696097710cd51444b1713b380a79323b6a74a90c33b5c3c42a57e213ab5aad68672a6740c3db9b80facc58af547ad785bf10512a6604170c0778c2250b9901131b74694c5b67a6fc14c3f43e39e94b953b2981f753bd5a42687146e6c7789601621cc3b7458ab07db728e529751625cf23db74691882e8d3156a33ab4fbc6ce15910b9c86557c3bd11b1929bd51b368341c494762ef35c34d040d38415bd6185d3509df5b094020ac1df80b5a31334bad7ce4ba66ee331182642acbcd45137843943a35e1f73b8d6233d70f3bdb07c57d49511cb4a11d763271e69a73742cf3b7b71625b4010dc23309606e1e3bd3280125fb84d541711988b22792ab6ea2c165c53255546c65350cfaeb744336621d91a91b7b4a432905aff9150bdf6b910a96c69f6c1774c677cd5a1b3161256c91686d79029554909103671f29c8a2a4e666c516243b970e34654e4a6f2c08347d17f4f5cc8e856c69419c82c695239359d0fdb0684470df9267862520813c99ded3117f4f26df33e2166018e205d32e12ba152cb0c56ff6bc70cfa5b691f76752dc3f0f1e38bbcabf1df7f402b8779a280c6ff6d6c03afc5240894a6ed28cf78e3ee8e3f60f939b11ddcd2dacf4d7863869d9625f7cb6b5ae2b782a988a0245044b29b +ciphertext: 8f3c3c0bd7ab261fe7816a9e37c7132fe93864a447226c84d69d8f5e6823f60679d2beaaf8db5c9b4564882a4b696441c5abfb3e9c84c177363e203dfa1d9bdad52748d97813c5e4ef7e62619b005a5934962210d88009b0678f1b8662ad7dfcb10400a93406cc809ea06810c21d58f0282ccd099b616f846bf7c093972e84403c90868fa13ada9f7fec375e464367ac59f7ee6bd971f6eda3aa1a8780aa22364acc453e9a0c60f22640d7db10119f87c4a20e04697b6681196e9475134224d6ebf7cccf87f72c721acaab099c66f4c0ab6669f1d1c74e31f6e5ce13ecfe006684a7b670fe9dea8eab1016252a96f50a20540895c6d0d1c869466b62c35ed4b6e5659dfcbd0da8db530518bd89ba1eec19b01073e7f51ca548b888a586e7100cbc6a8e436aa94a6dabaed9d889093c56b7c89d80233eedc8127facbd91e3b517a8c8dc1cc20bfe23773ade950a79b053df9e1e25765b06cff75ac4562748d55161c5425ac5c8ff824d4b6331cb729bad065f30d9be54fb69e8b01fe712f041d156946accb855a01af8465247240b102d1e50540f744a266bb35245ff6ca3f72183f4df551efb148cd717b1446b01ab774eeed39ae847b8d61c04538f452f54de89138bed8f553eb781630ceb5f80338b9af3d1919f5742907062caf83ea89973262b41825b0fce41b6ad6cbebcc17839a6ed1cd671502072524d409aaf6d149c71ceea7980fe65a568163dcabf38a9facb26abaf2e712429bd463c7d4d25410ec4a59213db4017e9c19ffe993cf08f797d20ccfb1d9351c1ec24b06277e3055f89fe5c5044f16a046222d3484e34a03410542ec15a0eb73a86fa25b9d36a239d0fb03e8646aa60a435cad13f806f7c806094da905acf7c2150da4d462429a11e2f4cbd63994614ff7d292936e74ff3a1d936aef30b133969dbbb9430918361ac3ccc52347d4b6a5c963011134b6985d2a542df1aa59c789beed11c036a1df3e94ceb4417f521689e339ee341d79945b20a4e3dda4d34dad8608ed4cb5fff2e33cccb698a18b743cc29d8300a93a709b0b88abdcfe335f92de475c0e477e2f4fb3e75407d8922790bca55e517550861a7e63bdffa31f96157836019cfaead37d9675a71c742a32951526fa01ae9ffdeeda1537faeca534bf9ad0d3f2968d1d4a017addddc7ae547ee7d9b2d9d05980ceb1171fe3bc5c26895e4c5805743e05f52710798de8a7e9846139dd0d56d3762029e9b8fb2b4dd3e9b8a33b77118b79ad5a2c2d665e10dce38c2de2695fb54cb84027c2178881bffc1a12eae5506baf6ace611764fbe9647c752a8653fae47fe31d36870754921c66d2bc2f8f919ba727be30bd2ceedb541d412fd211b926bad736d0640f9f8a8c111a1ceb26976d5cf92fce56242834a1a999498f1f17cf96736d21dbefe9528951dda9631566b5696a846c0fa9757992072aa401cefa7127d189303519a10218f62d62e79099a9e4efcf032e496b41f2e6031a011a68c9720ee1b6b3edfef1d5567afcfb65e7b9c6649 +result: pass +shared_secret: b794ab6a6b7844d506eb46737dc78c260b475d8a18cb8156ccf5c883eed5dc9f + +# Random ciphertext +private_key: 4b3c0d878500059c78c4d84511f75a2b08cfca15b50f7987f2041d8e32813476906602bc2617c27f0b2d80222eb81bab471522d25297ba3b5701f0a194c235bea804d3d42d158306ed005e7125ab43eb5da7912d8351cca0147c9ef608408bc975962bddb771afda1bc3f7c89f96c16b563481d822dd9366c89141e1f18e86072ad2665dcb14366ffc3eb6eb7560d578de0a531d5574be436a12a79f920c12078059191aaebde713a5aa497c5a487d19aeff2170f214241a665cfd1811a5cb183df1cfb0e6187499b0f6937303a9a1ee049da180a16d6103d7747f79d5758f7495342403c34737c190321259380a0c76b6040a477946dbc30993e4685c72593a0213678b3fb6405bc6d525cbbc4924145f7997572993bf01567e38b418599a06c669abc093982b25c0e9f57e4c5670da618006bc522d26600f99108ce87a90a95c536a0de3b45b96612772695b0e48c6b2156c1a35a86ac787f1c76d44280a0d521ab3d522ffcc6fe796c037831d7119cf6f6c16acc696f424aeeea34090b589aa8038f6316736a51e231c874d7ca8bdba75c8923e84d47da8acb1a21aa28a618425d311d707896794413abc4220d61b13523c678a56d02a4123522a344431fda295303c1da13365d91bb05307c063323c04917bc55122d63b4c6ea122f51935f592597ef26508dc5b3c360727eb520793c61f927ef2669d40c0153d437c13b782c29763c63189b9613d70f09665a2591ac885a23367fd2050479a77e2c7ac6e8086b6e84665d35c419b82ba2491059026d70b0bdc518795799f5e69c23165ba53450e8583901cc78e23c67e2b0c851e2023e787bc5bfc10de8a6689a18662d9549dacc0814931eb7612b92450630856c66b4b3589857055467d3317a720a80125c6465b878e7966db0ac5c7b15f315c6e8fbacba1982b275c0ed7f23ba67a6982807ce1e978075659d299b78f057a588942779b7b9f942cec8b41e5bb3d5222050d119665a68c95ba15f7c10b4ea53a07f859afab08a880bf59fa67d050b5e343b3bc68295d146b81617bd038160f3ac092e036a687b6b2583389480469eabd3227a57c2b0c2ea76e8019ba4dcc36a2446c28e65c18dc72427aa81bab5bb710439a4a05e629bc2ee94644a6837bb7a3b1780600687da0a33670a2c41035b25ad9be286063c19182e40524d253bccd4b21b8a18b24cb41d484c48ae09025013bb0551db253abf22218ae629894eb35b966a8b1237447f663ef8b421535cd70e0979b193e867a9066d75cfc142574f81f45239f350b1e1abb8b25c3bfe6ec9c6cc8a7bd31ca9c26704d370e16f46b02e3c03021c0d16916ce66cefbc7c8bb39ce0ad89825234483c0009091876efaa0556486df9ba97b5521f441ba8b6a0c9a2284107b7729c1a28e99617f81ce40d493ea021ddb7c45522242cbcc684029a1cdf405a1533527fa8502011c62d03aa0c79afb821a4fd2aca877736c29c1d5b67141a71982bc84bc85a1bb742a2338bc17bb1ccb7784134c8c7149bfe50072de0027a85c10af184a00869a14588fd9744fae66b881465a72f518f6d648c29b50f523690bcb45cf8822231b76cd9451a31583f0b024c852211f059b099581edb31b6c0911018715c570182f237096539376bb24000b43e0529001c677a8252a702099db983a13a66153c007e63c8686a333a3404dea49a645119a4de6c9bb8b5693916d80cb0aae165cc8159ef4208224725610caad928526f4d85d279009ad3c0933f1ad64c34356fc7ddbbba63b95088f6c610360a2b5315f6a307e16a2b3694b4f658acf39f9cbef92c8b490b8645cb7d4a2bf2f5b6397a0c4932385c9b404d8c259b7b26e5d80687b2a5ce2a8b3eec3c798c023cfd8c384c31c4a39605b8c0340694911543a4608ce66cb2dbcf8bd11873228a595263c8e36861c21b31faba34fe7784e5cc77eb5478e8c867cba8181f71089234b6a2fe8a6e89333d6e5c09b30151c6209494767d0e423dcb56f0069035da890c94cb1eb948f52a74f18878eb7f4463e03245ce33f4615c7ca6c37c464c2eea4380d4b768902c3e1d732778319b21a381a28880b3b3aac157598e6b5f51bc0d04705e9451aaec18f695cc830eb1cbdc1626cc0795f019b715657f68b7a429abd58992b65d58463b8c959a7336a21526a889188254789f683e2470db810b8a537aba1f82de957962187aff87404acec6a889846e5d4b2b332ab829792d2f7142717a45282b117666ccfac721555a34b889d958a678650cab8824121f647d120775e49c78d6baf9c345ab721345990050398322f17003df915cd03ae93a572b53989052cc738f7676e19734adb08b58399e3246198cb799cfc2ddbe19b2c8368a3c42c33f415ab20b0c82801b2a8063147370634be1e40ba63fb29d7f6a63b97103e6bc65379a12a49a12366adec360e507a04c07c2506dc0e404cb1c6ec3208cca9a4fcbfbdf3c1910c7f96e3a22731b3708540769cb153cca17b19bd8b24a0ee475ab3f9065c9038b56450b9e70a0604a046abb0c0993eb8647388a515bf4367b7780a554a4bdef7afc1a334163b0e71db09d4b125f7d4000f1cb421d60882a682e59b0d4f4849bc627b70088980d3ca2e5b850208c77cda3e399c85c43486828b1b4db1cdb34658c8d727286341b9aa61b5a12352cbc0f707bced52846858b09bf527014a3a059b19fce1382147608b5cca2c091a7c12b576032746123ea55bc4dc97ae7cda6c97054cb8107be6bb7e28518fd4f31ce2d1a93b421e58b4328675a5995696fe4a58e5c839bb8caa54139b4883c379d11443343af24c07b3286d16648d2cd6c3a5e078c5f5adb7aa9b80919026a2900c0218a0d6201d61cc1a6ca9aad442bb94bb9051024aa8079eac80a5a4cb7fe109ce40bcde584711880f969a003c2ac79d4a3a1fd0c5daa975ba2b81f0f9005872bd14c18eb07b9c450900194a8f62d42a668451bdbb8c68803048f684e501222f0285c898cb9f7aa5c8e7bd3b91b0ea8c46de221d558c06d698c95cd7756944b64ea4c0c46390ea2c6c556a67fd456c6e12698fdc3501b9076a8b2107446aae620e1624b387a07da3121097aa50fcdc02cc06cf5399aca369289d4351261943cff2c6ca07490e717f0ce7390c093e02b8a863d18f3f5186338cab03e55980420cfbb60745c11c5ce6323dac9fd540180113bd83ca1632b44ed72c06014bb275d519068390d96ba17ffc18b17907dfb87256c99674a53a658be2b0507388ecf3ff8a1924feb5dd45dcb2b53cc8a673509491ec274e7315cd228164c469a7544c8a88cc1a529996279bbbd84e899de2fb7b7c0c20211eadcf7576162664a1deafd5b003bd9f09614e07c0bd0d96da003a8fea91c4ee0bd3 +ciphertext: b34f9ec31bcb31d121a4845322e2fb19a9fec82ddc4f3fc9b027698042f5da9cdc623b95fe1098a2f7ab61313f76e0e8d119b5ee1bc5aadbc4a70582f40d5bae56ae8515f712d4bbdacbd4e01e9406f577b0336f76345e67a866f4cdbfd8a8c341341b4d5f169900379e90a68cb5d3f80f4f2d9c563473d4891f0cf7f181ccf44855a295420b8c9d93a2b2b759066f5fa4f14572fe31febb882a950b295345a25ac68ead21c497c924490e604d6643c790ad356fd907c948aad261b2a206618543a2d05471e7c63352c90c29d3fa19e52c04b1f147e7319e796c997e2c6de273a6a417c1942defae5f361215ffc1953795579fb37028acf68a4acc6cde46a99bd81d6d54ca9781c903e772c339fa75286334fbd3f0a2e5640a3508ea00353cca5660f01bde3d1f8739b14f5eca89d2a99d3296c94db7a4782dfb2aa33e676e6e0e1de0e758f3804b39fc79089b47bf0ff7f4357fa86ef6c5c5de0a3a7f67d16ccb0c1e26ae4de28ef3ef8be7e57b4d1df58787780c750e7e114e71cc57f23037e999510f727c9eaeb50024728d332e4f393d05337c3e997c5bd3b2c6575a0339dd80818bf6e65920bab775212475eeeb02edfc1f307ff092fad3671f37d95de70c354f02c88a0ff2b14debc6ecd8ff8a3cf9a9f3d96aec075d706da2e9eea5e93bf02dbf9bc385b1c7b5c4f20015540b06ff086e4e91eb9a45d43b0a73f45605991f22a7cfe34fbbb6302d31a43d07cbfba9588ac6d93dc5058fe152e50895d8cbb3741bc79c77ff13c0b26d331503b4fbd491a5633a9d3c95b482ac86342075670bad0fdb6b5463e038b4f100f9acd8f9fcd651e1e514bd9c4b7e5f1f152526ae0f0f7aeb8c195abfc4030f66b5920800b4d4d04fc9f4e8178013d1d0f915bd9b92923699570baf512c66a79b5897380ad4938b4802ebd30a005afc57af45327de2866c73dff619efae173687ef44bb8df3ebc08ab29f1cc22f4831f75ee70b681ebd159164fd1834513c382bf47d15025dc6e85ea69a2cbc4b74d753d4c014714495540ff3c1c598cf593aacf905a2dab3a034ff81affd95344d64dca032b1f95612e5d7be6cbde26bbbb092d7024b3efccc7e3a9efbf5493a1bf2c26b824f37b2817a39e7728b687ee73d0b329e5106cda9e0eb986027d75a9607e9516cb86ab0753fbf675e157b8893bdc565174600c54ff7e81310579d1b849e215669437b4811fd0950e5482c70d29b22ac55b175562534b1300639a2079c295e66f4471fac9eb54ea6b83ec3cb06ae560545737d184be403fc13a8f1c31ed374f1b7ebb878d084341a5c62fbb834f6d7a03374b832af4c762c8959c15ba620922e9f5e2de7e03adc1e22fa9ec3c76f9f2ac4ee5628b017e3efb526cff693aaaee13fa36c5098998bcb62f5827927afb363bab182ebc987aa70588b56fc6951e60354b95705d634744684a453666609752d8c8ae29764ec02b4bdef9cc702549ca7890640af7292b7eab518cabf8cd231b83e119b79ee6cf12ce7fb51acb6f7da7163dc +result: pass +shared_secret: 822255fdf2b40392a52e30ea1010f61b8d9e13d0843a859136e53c6a87803cfb + +# Random ciphertext +private_key: 397871dde35d0bb36b316932a918460b45bc49064ec4abb23282b033b23b66934f0e18b0a392a82c7cc20d9138e24ac0b64b4f5c9b31ac81a155e6371bac4cf676185ffa66eff962228647c9b92a2b0b0282741ad3a260b273c4f1c114d86b53fc68475e96b0be6900a7e459208a2ce66b1bc5eb79048a463d316e953790147ab52561b434029d6be684c53b719c592b4659a2fdd301bc7b925dd5cfc8c1bc63932f4e15b710eb49c154658d98bf3ca5a88a237f49c315e9441a18018925cb8ad910bc903cb69aa9888a747a1fb86786db6b4234451d18af2089b8beac1a7c881fc88b9c3ce1673662b1d1d93237d33910faa3cba744aeb97bb77951d32794cf72b455c69794f89238141eb394645b1841cf932ea7031a97e0622f24700de346b86991962516aa5855baa61e9c245db9d710730cb26be6125e5cb87a267004a1af803330f130389060ca85a85a6b765fa8b2068244383a37b649005b3e049a270bb3f3974fcc894bc9c3150182af115ca53d81ceae629e984a75178491bfa677bab7592610cbfd2cbc6bf47bb7010ce4d09846594d93b38fd9a18f438336e5b79848cccb47f63c84586cb0816ce6584da7bacadd2294ca21283a6b920c771e09a8878d6b7c86149938a8617d48cc9d3681275b2e9dba36dd41596185650d540e77a73284805aeb2488e9e956fc780b2a6a7239f813487551e4c7ca6e799cba8a1ffcdbbf03b05c63744787e7ad5dc3bedf7b6ffb279add14c73f38b617f04e50b8568c105698f23693942a84375fdf23ab71f4b9a3a70804cc43fa2c1758a2c90f351de4507323f75c50a28e1f6ba96bf5ac9806a370f49f0b8aa8fc9352d776ce92eb64f43ba5e41715ff9ca43d054090ecb20a4c5313f7692557584e43c6c7e7915656a7c000928c29beed139919d2484e5745381b86e3061de246a1bc4aa9ae2b7097c784343ba03d4c75a5431281152d70103a35b41fda217695e0b62eb68dae6b7ec7bb99ca432a5cb91efb6c0b0d30741a0b17e42042889676184149a583c565fa5168b658045a90b2b6aee21996a8327699d895e419587cb3a8069785cbe3186524443d344a0ce66b60c24ab8dc1bfadcb4b86643a4c48b3bac7657a13f858613441500940a857aba8b95e3af00401d3a33a372e7054c6b6bfcb33ad91a2a7dfa5391848a26ec5b43911ac6b6a7256138173519e59a4ae6b70872750a1568ad835ba755d44840a7c474038ef80a4aaea67b66498e2b9cae9a7644be3cc3bfc0c99d94c9135b566a4a2ae107b3352ba298370d61d532b6e05e67db410a097b8f43a3ff6ccdfdf033a4e054e1b5cbdd0a2081a2b84c86690b28a497733337fb572c4b6a074717a88752388c520826717d15249f701c233865d4d9c64b5b8b0511c227a87b5da6661981c01447b34cf96f359536e36847c1799234f95b2b50719721830c039362276e5f9ccfcee93567a7afae3075a87165c17505863442884969a26821e2b160cdf03c0f41bfbf6b92798243913a2d166b8e152ca8982241362232074cc6e52b2fc8d55b65b5b4c52a04814b41d5eaa6ace874548027c5f02b4d9a955f9a4f8c2c701bc19294ca1b74aa26e8492511b36bd033025a394f6f2a4e84f70eb09a569fd463aff27d3789218b06760e3037165c90ea9b87a72879f869105e299ec5f715acf02e760ba49eb300c36209b96522fa355591f465cc5107e691975bd905a484333b21a79d3cae1569491b60a9cad6598c67ae93968ac11a3a98c638a2b65abfc929f446215a310221ba173c5201fdf1144c590e149831003810e17a89d07aaa0935ac41e776942cb610144f848787b96ba5a5a29170d6c5bfa950b9742a7ee81ea8dc5b35c88af89b3e9b876af5f0875d855ebad786a5033d6bac49713bc0a9b485f802429641b5a3f55dd5159894a73fd6c504919971cc487107f557813b9942d132fb1433f24c2a0d442a6dd125d5d5b3be091863ca34593483f26a8cab32a6dc7358d095818687988f8a1c1fd50b9a4c7fff3c7f2cd9314210a67e5866fd480fad325da1435e1c5003811ba92e754f4deb8d35b53bfce5bd874398ff3a1e34971cc9744fda8acfb715cda52074e95094a96bbacb98ac7a25a429c28ea8591b3471a2f0faa1518215e3131dbee552809b0aa78c094b7b41c1f955d5d79bb6b739d08035aa2ba7405c258e2261d2c283c9f470e55bb21c431644d2966bb300a4248809b66d31d9bf81f4779980909b0a8f6e89693655073159c90a77a60dca9963342a46d69beca3293e9a2360b044ff3ccd6266c291d93c7cb6248d6514d6097060e179ec62c633a884590a95d17a8db7f89077400574fa5702bc8e210ca7252a6d5c03b0b1278fc7e3b879a3a52e1cbb051677569c3c577a72c0179b99e547efa6723bbb85a81798a020a86e260f488a50f12c454412cb5d3bc7d6614edf0026d5a992b9fbb332971937ebb7a9b017b34025c0f4bdd4e5b2ce3546e41b7d04b582bd522de021448c4233b91913581bc4c1b28ce309abf6a4331e6a1a585ba270046adda1c4d1e887fd3220549963fb16b8f9b233566a7eb081b3267cb877a218321cb019799f701cc9e93255431960084036e8e9487a03aee7330979d896434b839d154ef8c840bc04a44fa199ca83595e9c1b8e9226611cade541891c98c2b06aad7afb3bc96a8456507e66738d77d9a302cc573910bdad713061a7c3420576343b2705216a44c13f713701072875bd042559e13e92a73c963ba4ff90b24838ba673767630859a8a367639c98e7b1125c22917b638b7dc526eff758a2f5579f3228a9ea48cc05785658963cab07f2da6a4059ae21759ea4314cf0d1536a09a623e131d6550b46034364a55ff5e16f83e622519564b9012e781145611a9b447873c599a71069cb83729482926cce702edfe32d2da311986a4d30007c109897f48093b5e7b74ba6554cc4cfd484a6e7909a7a5b6eaa980f20dc3b96b21a8d938d757c7fb3db0e0d2485bd94a4c409165c535057bb2f140b7195750842035090ac48324ac6dd3a24d2e1a99d39b10eba71b1a66ff986a841a00b16410c7dda484834cca2ea813d59608760bc68940783283ddca29c0e402cc397ba228238f3565b67cb70876a929a94619eb98448e61c4da86c336616d44c5c52b1371712307226b7c6cc20c47622b3949a968a0fd31ac0ec52a034f952b50c6c6cf539e929aebb409ea1b0440aa4ad732927f4869c29606d465ccd1ad7d1ef8d767f813990ba43d4766a73429ca85c72c593adac1f3c5c7b3bffdf694a4e13bea3992111772c7d179c64b6b9ab8c20d492c8a04d5bfedc19a6fa4a1436778320b4a906531aa225f830c1467a823974226337d0d27700a6f0fae0cf +ciphertext: 3f65a74eacdd023bcff1a27d6c23a8e2a3a186874bec8fa4d351a2ab31dc56dba5742784beb47b640a74656f10175a0215e82c9ec86a6b1c32ebf9c1d5153e8f26fa8fa2e9c4c9e54f66d025eee9c8dcf6dae71afb6b9c40f951b810ac4c8873fa60ecbd800efa86b6a528504defb434ff3dc02e03a3926f1bf88af42445b00e023ed5d08d1f2ef3531b16713f93a0a82666fe83605cff715a0eaa4652352bb5c6875449066567e313434d58348facc180fd516c121e500e475f9cdd20308c358c5b6504da818d80126c2b203290ac355f1ae10372c27a04a5b24cb092dda152abc052b927fb332630dd712b74f96707b4626858c93edd5d08328e6fb9c8397a339f4b1f34f715af75265930002a8aeae099808d1da69ecb6dd4eddcad7c1962be136fffdf03be5a0b689252638285b2b6f30d5da86bb24cd4c182141d3acae716766577663c2cdcea6d27bd59a1c3161894cdd0fbe91e35220a597196e37ba7b9b48d4b6fca7eccc9b9c6f1c7d26436f2ec2028dc0a541fc180f263cddcb26d9c8ef80b732ee66a806ff317c81d51242f81a48b91662a78c6b430160a3c358d9be74b671af5b2f5d1088ca951780d9b528a7c014b67f11b711732008ec8e30e2d70548afc2792eb52460c37cdc8caa77efcffa0b8412d0730b79ef953a9b90b112aa871dc65192d988abc8b3aa8377eaa76ed5376f850712b2dbe0cf67ae6bb215adfeee94eb2eccaef0a6b57cce7a721daf0f9f22e26f71d52900bfb2eaa0a2edc96c81af6d03a93da2ee83582ad542c9c81f7c5c6a37b484082d426b36e6a26ab4fda7fdd82f692fc186de8148efffdbbfedc7565192e74ed37d5494daf224632850adf2df1e11d9b64f8bb8fdcb4d1ca8b662271332b2f87ccabfc7da0243b84a7726cf2681c07be79d1b0e2de3322cc4f5f221d10b030d51c410ec6ae2dcbde994fb86ef7ff8565f51d4e0fee2a0a10d93862fd275a11e46b34182db8d12e01cf5992f23145a0ade46fa3ac1ef566827b3537373ea431f779f267ac781e519025d84e7e8552852d42b3420cb5316e0e68610a5c7ad4decc5760f75dfb20fa67945be93e95a025c4476b7f7a9257820e26ffc88109de705022d0990d1c210070ea338ccce7143059919907bd70b0db618ff3defcbf7c9ff885ff03ce8e92965b0f6d3ac3a48ac6297136077530bbcb06445d953f118b648dd172a5290902700ee9fc8ed8ecf4cad560262c2539ded77ff6beadf90080e5cba8fd39554733d2acb6a401b1b3e458b6a10afa2dfd346fe7f978163c8f280d6973630604864fa6519608c148bc86b6d24ef4c7dda82cfbdfd6a0abf4a17076b817ff87d972c6d69d4300f17f2bcfb48afe82f0c433eac03055d0d4a09341ece6f706a3976aa928d95a70a9995601cab1c2f12c2a75fa87a0c23407d95249f18b2aceac24470297dd0aab16b2a1f50722c55f50a024341784daa2e23787c12191247f4acf2cd806fd76053699aca7b44d322679dc763cb7419c54375f9a46ed63f74c36e03e46 +result: pass +shared_secret: e4863d639f68345af3cdbed85e317ec8b87208a25ebaec91633fecdc0b97433f + +# Random ciphertext +private_key: aec603e5263f4a1b9bb8a571b8a487c8481df8189a7e1aba81d60dd2a1b4587276abb883d3873e4dba1914492d143366351acc522976beb196611726c05956121167844650d944b60cb67c210c0449243c0f052193c8b6b423817403cdf25594ae854d4ba0b08c912a09262559713f1fab1212625a3fe421e3f91313493405210954fa7099f83db036ad1b17665ff3a5f6faa448507eb68b570611558aa7076d480b0e1c7053d55fec55328d01a7d8104afcda67b5218ef7549b1937a1627b59e16a34821335d6748464910991582f1009afaee11667195968118f0ec30133ab24f97940c3f6ae87b47cb5d0202d4922451a625c28608e04a21e9a88af924752d0364ee37a23d12ca83a61f37b158f101b290b13c598bd943bb75560aee7f55bb91a739e8c0eb2570713d534c6b2b0c7a49ef6034f88e59d1afaca74553e65062a04d5140b2a836027b4443ba60bb5cc0c4b5927252a0d3c6ba634231ee406e0b15520e68fe7194940535941bb3833042b2cd2b2c372595ff0a39c6018361c2804b69240931a0e7ac89717a1aa3ab8cbe9c207e64c7d862e093a185fe33208992fc4d0bbbc570b62f185a2b173600ca0a0d81e574ab34b00b1aedb63d4587df4d709f3f852c7c76df2a826fc0649462275d6b5c8f0402ef9f03ee3a9cd7286340c0c737c339e2f530230797d9e654b447118950354b058752b549236440c892473274414a6b7c7bd5456cbd3937cc196d7bb928874777d68c4d20a50da021e83e4caea31175fc25b4f951385034349f251e53c252967728d7ac9f8792322196095eb859fb574ede423abc813f3b71471d1a3b9f35f7dc270a45ca88bb742f6618b48e266e1b549066a8b19b5399c340a584c8856f40f78f02607f4a9a32a388b0a4f491402133b0022f895fc3a13f30349b9c74d00b731d746b68365a03f264c68d33305b643b5a79eb3817e5c8cc1d194c1a06767c81a8d36d319d107862593aaa2a028a16124fa3030d11770818a2bfe170b5ec2102df5945b229da0ab89703a1ebac51aed655dd09c05ca8b4ab8a8b076260ddc090522129180b4bc51e79d8de032bad6286c30538d8ba1b4a51cc91995479b22af9c54cfcb26ace06c80c6721298b81ab575254602d74a89bca3aec724722f526372f54be864171d3b07651880b389cdd57073953a851bf1cdb9fb9f7b834bbf4310a7805aa67516bdfb81675440918c538e2b3a4b86b4808740af72742c1c3259cc20f1bc89470781deabca313118900424c526c9c367b829fc957d41b20fba45667714f939c0b0b02afe6b94e45ba4618498ac2ba4653ca3624792fbbacbeaf5a49afbcbe09428af705d4bc7bb56e2299bc0303ca0ae2b50597327c6b2935b179339ed16199767675526c2b407d05d9b25d6675744e3690fd57915aa063d452a1d9c45918b37bc3833261caa19e67873dca72da87efe50c102d96baa3aa316a1165344ce0a753a0e1c7e96755b4e579028e937cbd896aa07a6ce047b3539cc4c8b57b58964513ba3984111b1aa4b453c2c138c093ef2806817509d42170b279ce0008306ca5dda45673f6363595041ae210637608dd396998506113371a1cb2724e9f96c23d380231a19e8805fd76c0c5ef82601d5164cbab05c63a96ad69e257251d30a7a22e7056c33ab24fa476e92a512940f7773c455409cedd695878bb59b8201c585307d1b87c092c9a3ea1270636592cb2f2061184a768133648dd5f20e7cdb5f820b81e6747fb27a867abc9164b208896b59a93b1e761330304a591a46194ad85f4731a9b476729132750cd61bcc6c06a52456b9e70790b1b213cc30c6974e60e40f8d39105b526faaea53fab7a1738a40ec6b4ceae085616171c5c415c62a71a18a31cf3803d47cb29448a3ec416cc03baca39a28cf4518b0a03751199cb8e93eaaab40f2587ace17ae2fea9da403845e0b504d281fb60737cd691188cb965e31ad4e22173c415abff02d79212a2a4292bfa33238d7963fec731d4885ac631647483f2000ce54f7bc22f7c2b15aab25d2771e62883e1b2e45760b03ca272ce78380b042661ca6f447379e190a08d83955c610bc4a9f66a999095a3d9ef9b40fc597daf3358bdc4dfd59c4a6461378c25755324c04159d90e69d3aeb1002835850711568791e48f1c2e68102ade46135a61828aa9912b83260489b19758b6fb1aa40dac5d4709aa4572a103a5010f2190c2c2faaa0ab77158cb7b75fdf2bc72b4c248e8661e2b76caf497758b4c61cc4474f4acf5af8a69362ab2175a69539bc64c1823d0b0c27b964a5e4498266a8b6fb9c7eca00ba6324229a1182128eab5ba7783370152633dac85f0d93a987082ee2788970a71daf925cae4aa176491646569cefd88704e14a17355f61fb8a3bb19c4b33132ec5498ffcae27100b1453ae8994bf9204a0ffe9bb77e63c0d7511d9d466853ab4bc106bd6975cb52037cc5b536feba35168b75418630dfc2badfc09cf424cea4cb4e8b0ab304c1ab8ea21c3ba719d8b13ec92c3c5dba6ac67a3414809b8b00ca675804ba83767b60dc3b542cc26b533833bb26557b7a30d2505c3a2f889b2f02427c1640d432abe5942840c4f99730d7969bc5056cfa8795871b857530a58ad5337446a81ad216ac37bc2f7d80425f32b9d6a92b7c97c97170c5da43bed66272a610a9a6ac459c914ed3481bc5a47469088c6b96792084bfe84284869a7f9f08a7df9c3e1f4423216ae314a5fe2c9901ba1a69b23736ce6380eabad057b8380b289d0e8c571555e8c3896f9298847057c42736cf2095f04e695697045e858541be873c4aa852649afdb9aa4c4b814be75170549cd51e4cbf661a5d684c5e986ab6c5b2531a00d34c447336812e73213e7314e25452786545eddb14dac2775d1b8206f466cf28331ae00398ec9cfa6eb69cca3bc2db90468f45f6e6c6096286620a0a9000189c2486732292cfc809b9a970008a8107113911148cc231a0fd0411194c212c559326806481048aa75d4ab7ea44ca3a46f72e49981a855bad509686c35467865d4b690a88b38f396210be88c892157390a1dc06841af0a9e0b0827f4b71e5f5b68d0d0a054073f62251c6c2ac3dda857699373d60b283fec466e2671674973d082cff735b0d35157e4fc1c4ca249efc9315bf60925cab0c5dc7ac9e534e118b08a48906883ac572a8a02c35426a01fcdfba95294ce34a36d8c2c92561008c3d85b5db313946a11ff9ba45586489615391546bc8f69e2bc030898abbf1bfe48592a1f79801ed39ae5f04f4aa0ea99c15c6dbbd7e466735e7f8fc27c082eb4eaa4d6f146a7747809a0e3bc2ca3f695dbc072134d67f2d4c55d939741894ba538a0b7643bbe840a92170207d225aa +ciphertext: 6a09b4a4f5c7f9d08d4dcb12c46960bbc4ace0f99696b181be447dba0f84c8340fceafe4c1f4843672b0ea8f952f81d25a8874ae726405d340ee9c00297b85117f30ac4de4b68cfa913310641f54c700c9379eef6b0417f17f1186f7fdbe88d439f5d2bdba170c4e744a9c4c3d6f9112018fe0feb67392b0539f3c72738779fd986d33c1697516b60729cf3539b26c0dc8c7fb923d9a482e6ddeefb4ccbcd644f3f35b71e247a1d784e904c13b0408aba79016f095b1568067c0bb7f8dc77c2cce87128e7df71fd5c645c0d5be57a0d5f8d4e4da7240ba10110e45db4931691dd43054a69aee7889575ac21514ad05e0cf59235ee25e9a696ac78008ab7421f8672cbeb123b7e43f44397f9c12a52066e9dc752e4e415dc14866701859e89e3383d58e87d97320b0a8d7e55532da19a7c7610f788af5b969aba829bf968fa892611f5debee9c5ed7c000bba5141289148308c1d0f3318adc27e9b73c0ccd38c86996b39ebe4733e1b3fe74dc384f75e7f2c0f5a6f497065109c43f3cbe5438f38a049f410505dbfed98bc0011fa3e5c6b0da063058fc7942599910f29cdbd826a34a078c22ab52f43cde7cf85e987dbbb9c39ff2116755e3d571a355cdc3a1b120940a2ea3d70690927382a7e22d1bfec3b8423a71db3f8875f0275c3ad01d5409811425b224583429672e5a80d0f7ad1ef4bb2b8e97c878e9bdf820292528dffd99d5cf4f2d4bd08076abd00429987812d35cf4dcf8c1d0c2af6b6f7eefe42e533b702382aa064107c979667d2a501c5129235524cb7a79cccbb28ab725376f246b262b23dde0ac20e29ec6677278ad62668abf356667667255d5c08dd2f7f9eb89f8ae4af57976b2499762fbd07f35b5137e21b6c298d82276e31607d86480eb449b6f6ba268d739ba6e656a189c010e593ae058dc2fe2e4f94d864fda7a2b0cd863be16b20266d1485ed997c4a9791f8ff4cdee24616d1f853bbdfdcd835a0591a099e26b47601eb379c5eb032cf72b2d0369855354254f595998800af5bc0f09434edf252cca91ab921738b816d6b3b08d168bc3b0523f10f7ca0d6762777a2ef34b049a8cbb6140eef689145a86ecddad542783247c2b439be003820bb7d4922c26207133bde6b89c79bb2f26cb324abf011dfc9b19450336feae29acc7d9df4f39204429b0b4e2e4bb4a1bbf6fea04418eeb9ffe10a34f09f86b2d2f2aecc46ca43aaf08ea52374a69319e3c332d286c3f2fb2482239fd0b550f73673511386a9c052ab47f60adb1a8683160f140a196dffdf8430dc97e5e21e9ecc82792db9de624233b7a621851813af23ed418c6c2c155a822de0f7cf1ca76403078a00c76ae2ad4a992cbc9a5e17e91896899988eed8157ee391a4397b36f899574794568cb62bcf45e4a5178d9d7e5c6ecdaaf8b5bf714ee1da2dd902c14aa2243a16cdf1cd9bc6889ae6ffb04be1213338183fc5208ab36a2708cea71042412f98181ba0500b76c17c375762bb07812ddbcf693185aa385252cd810793b331a8b +result: pass +shared_secret: 12511f92b1c44bf6e2c5330640b54b83d09bd9560f7ceae43fa6a8f5a2386911 + +# Bit flipped ciphertext +private_key: 6129a59df21a91b158eada8658d5bff7d43f7bb5043a0732f713beed65b1ac016781500a89007d8b84344741a718bcb1a6dbb6000587a9e79f5bdc1d88a8938a3b3f5370001a25a6c9b062061924b6166e41d4705c75059f20628811105ce59ea2942e4341871eab6f8e4c2e5a5ab4c4b87cee9cc333a678cd784f1b354395654ef4eb28e858665bc47cae896b99b17781a888d47191ba157f1a912270296e8185b2fd93913c63b5f1652fec382e79979a1918aa503b159b90b8c7b9109337bd23d9461943cd8b15696a2c3334b08bf9cc271d139b4b1126d2ea0f8927ac52b8b5918735a57b0c6fd09183a2c41390692d20afe351912e595c042bb37b073f5a125f3bc650fc5592dcfab63a4a40ef1c671a65c3e41953dc37b69fd836fcd1358b928cdd27069d66c104973d4eabbb6da18eba403bca36376a242002732e302ab16f7814b187295dc966bbeb6711f9c055b00896d8af72094c0ac94caaabcc7f99c2fa5845cdd12fa3a06582f4226b86b58fc4380d9663ebf567053c3d08764674805a72028b86271f3b4b73f814a933e76ef3083e4824a277599aa1005e234b3b53a41378f97111b8639abb367e325511dcb7234813226b0f3df53ce263b0302c62071bbf8c324ebc595a279c67352b9d2d041c73436259c7317720386f8c22cb591d05cc419be8151fcbab6ae07bc3a2bdac2ba990450fcee002b7e455e95614776232cd560a171112eb036bcae20d6f5a4df130595acc0f68a3a4b2c38a49957679ccbd870a6ea401a4d1f024e8168b48ea8302d799e908cabeda135ac0bdc097ab20a06da0c1061077cefd1a67fc08503fa1347e35a33d73b43408bc1c1a72e8c57c12a104aa9b30a8619df9916c7793876508167407ac3465359e5b9ea76131026aabfd739f4d252bbc361e2bd0b6b7d4c619c5702b127f6c975cb93061114a401fe07d0c44bcde864fa7511c681a659d334e5941ae5ad3694caa03c928807c979b55a32c7dc4c8cee8aa555c792bc547c4e4c388e09965118d46494f291113155062c220b30c887b6c4892fe2c54517272d602482f554f3a42053f04778796c9f9ca2b3485c7b8062668d0439cb89d5140718913a5bce9612a555b80381dd228ab09309471e21da2413d29c953df821e250390e49a14ed7b4928977d8fe7542941be0d127110f8c3f47032f789344b144028b6cda3b939cbea5beb8aa178d80ed1dcb4e2138d56690dc1d1604a687a6963b14d725eb66810aeb869ef5231b75c8cd2d48ae179c99ba23855506134619cee516519d7ad2e54bf18012cbb64b1176b7d190a75679c8e19681bcc611a9c94caf9bb4a575ac6482798139c6518fc3b11903c4b0a7afb4a0bf8d3389f15c21c394591057ea00a150f5a9ecb8b9ece5763fd14a6d99026b15718145c15b6368feea62bc981cf42a5cf704470f70277b16a0cb67cc283402b1d271cb61678a84c00e305997891679ce990f9130db109bd59601d3c2c92e1e02a629b8058d1480d9496c8d1b50b8350c17aaf58845aa3334c78c85c14a1732f42cf7c588dcca54ee2574dbefb73ceccafc3123dce933f6df02ee8fb19dc523baea7a906f526fa7b1fca7aa9f865320c4b19d54690080b427cdb35bc46231f156be9b1c5d2749e6118857df5877278cb83c83805048d1120bc6e7105c8b8b5c86a9927e13b8d8338de794a6667ae0192cc805173b735456597ce25f21af4b4b9b6710c419c20e91b5ba4a3ad19e84ab7413a0c4b043cb7c5ccf32e2c27aaf28420622bba58bc9d129c4f80132994263db305abdc748a14273c496b2f96859827e8b45f0116c615a82e1415f0cc92827378a8cc48d8d740426c2deb5b318db110935b12ee1a569e917494988ab4c08967b17e58003dbc5c8eb88872bef520c0436861c5690188b0d286440826505c928249b2947ac399ffc376ff1b28b4f1a9ec3ccfdbc0a6257610882762f0c70e5537aec5f4bb32c9af7231b199a78d23116cb81a086b349747b789e3ba21439821006b4f0e31ab25962751b4671b8b8c96740b6d0a428e8995f1926e4f1538cbc8b69c661ed4119db4b1759a5591edbac6e9b79744316d1ca3ab98f8532881c9b56c0565aa5d8ac26d0bdc95c507137eebbe49f2c6d80614f2f53ae3f77f32fca79ff96d58324428b4cf8b0445b6b38a8ce97617880b082c80857965d9192ce75b3e782772e4288353cb2d201c170746b4c5aa9c2a5626934a8123660ece678da5c53e12d56270a2c9b4eca18b391d3f632e3a7ac058f1737ef457f3c3c030f9c1012c5ef78286da171238e164f6fcca46335cff5a3fa8d202863156b9b99626f5361ef3cc08a91b74d618233c9618e13317a63e4087818e601e3f7c661e602c7614647e389cab276710c05986b2a4253b99b45c9c569894e0616610988c75e1533a184e7ad099d9f3cb3ab09013b45550d24b78e6858445915e1c60d871b2c1d181660837fbf5c37b2b062958760499474907b4e556b95bc73f850056256770297a81e90607a651691da505e2abc436990c3817adf5b45927f74d2013a141c44b80a602848467be6b444b8b1b513793f7f944f5c3b7a30caff1e70fcc9759c32ba92cf4a8e07c0972c67d2dabb56ddb0441dc04c0885355898667fb61f24a87b267466e3c48bf4688ab08205cb445c50b852468b3c1b159d73777fce6438c1830f3b8ab1fe116e7567ea447618ebc4b1ea59d41b3959ea32a23d028b8889ca07ba45f4a54bba405dd102d7f29b9316692d2ab8f3d7b82064453cfba933f71889091776ad34ba8a556db480a6c7b4d0b89977c4ca3f363ac572b5d5c007e05a703e4231154b3531c32cecab787fd258912880b0e20a29af1add5384859b8b82b253b5504033c3b6daa96a599d36acbf400b58678dc2ab071a18e439b98fd525dc507450a95aa8326788ec06972d227ae1097d4a71111c5716b97756c9a57dd6275eb581e4147a26e1801cff689ca1a15523c6a43244670ec0ced9aa28322484a5b6cab0721ec808367c8c931724d07c41facac10382697d843b98fd1735ebabd1bd4cb1c9389101874b250c6f0842c58fc3141545062f3c3e62a4f3f292e015aca5e6434083b68c3c19afbab939281a2def918bcf3beec35275d9436e39850fa23057feac3e3dcadd70941f4f5c0d7f8a205fc926d155eaa151a3958563f178718646cfe7b8cb70341ea8cbcbd3aae125806ec41a73b4676e7e9cb2b0a8b11b06d636c09ba378680efbc7733618fdbdeec4d633d2a74a9109235307dac3dc58836233522d99132fdba4bb393ef70036655bbd8d89d0b0366c40d35e1145ed3edcc705811568b1b91376ac7486036995c3088f66641357cbb4b78df57965db17ba4a4c561da976b +ciphertext: 2c3950af249007129e7d7af3f435503bacf70f70936005d594d520a5a326f30908696a20c2a5c16597496d4338dc321f4a8244226a22545eaa4389c7a9f651d5ae287ac7be48acebf87e9c8a2b947faff342b025712891544a274be1d2b7d4c427d0d5c49ca25e02668e5ba06ea55b689a91951f6c99c1378a1e6cffd7d9f49680621ae85c9a8b5a547e6d8884262b2298d92b31fd61499198ffb031d488507bfd494e582af632d0a237cd9e9d5d079b7068298845ce47a097277b4253acc239d2dc1c708cbdb694158973494512e8f7ea9650086c58e5a6071bbdec04ca9a6613e3b9c433cdff0d441d2df4392bfbee0fa3e8fe153cc45c1489c031561cc228f104e5797bd4125f4cf2f2753dee2e1cbb279bcc85da4536d6e9af384ed1e14e95c71dc3b32396330972206c2f96a74f85c97a639a7103e7c221de65821c2d3f88b48664eb1deb0a321703c3bbaca3f50d2b05d3f2b4ef379c463cb528ff2e9491cb6b9101bc4cb4b93c5f1a60212dd8ef6f8d30d642f0e505f2c9094381aabb3b3f79037eccbc136e9a2eec082b3a4a558465b877fcd847403bc173100e50e9ed47c4e6205207143d98bfd7be4a4037e36aeeb1ff96dcf257725868c0ef138cacc2fab33cad86cf6dde9d71ec843fcb7f124e956b92e2162b962123d2e6e999864fecb1d683c3d779c8fa6487f71277d3257c0c1ad29d51d0327bd3b32e55aab71cbfdb372d4621d6dd2604c5de323da32b4705e90d2cdcc45b22fb5e960ee6ece08259bbfd8f772fc6638d7eb48ac6496f67f2cd453cca693a6673421944fcdb226c2b5cbaac92dd054d2820d987e34f3caf617ed6a9ec03f35d17ce52e25b6f1999f57cb1ae69001e75652e656c02ca8ae0f06b4f99447805c4d71d6adb283696bbd566a5602808fa6036a7bd7c636ed4bf7a3a035f941b058287cd7b400277dde91a8580222fe03b00249abc1d3f6cbb4029c63671e1cb5cc145e3d7222751579cbaac7187080e4e75ea48e3a1bd7ab51d1328565601944e5363e243e173ff70efa17293bc1f0fdf4458d67c4b0f40e129593a607126413bf4a006c7d6d31f130f6e4c64e9ab20727f05f66fecb90513fc589a54b5589ed3d06e37188f7f42ddf7ef4b5e1b902009c2f239f9af5b2cd19013cc487aa3a3d7b23dfedaad47340bc4b11cad33c8f335a5246db8d71117722167a3908f2519894d457fc762f0d435d550ac97e394be75a647b676648b3e8defef1a951974492ee5ad6a813ef642963b86c3c866c6d331b9e2c400552a8540b01c5f9a58f506cfc7181c91e4308854e839433dbfe89be00cad46f477c75fd95cdc0ada28dd6530ad75aa0ed65daf029339cca77505c7b65de647d316c630837f0e5ab6bd4d9c4497f91311fb412445f7120cbfc2bf7f8001dd7e456280dfb8b0122195761a7d1f8a927ecb6e2b090fccd33e6c49a56f6e80048f8e7b09a3a3d50db70a561f4aab2d730cf7864de24a2ce926b0c359a2145cbcb44db12ebde465521aa34269d5ca81a918f556e2 +result: pass +shared_secret: cefc2442a375c0a9468db9b9ffd5c5a08f178a187a943a6875afd9cc20ffcead + +# Bit flipped ciphertext +private_key: b5c8993f174ca68823a2528ee29016f3a86fdaa574469b08329981e072b8809bbc21ecaa0090a5c7185385454fbafc0c2d6b5ecb51630344c3d1b00b5386ab8ac98c03b6b8b45567f1258748d6477297008e748534d175be794dc869c9f2e8c9b16a16391b3ba0b7bdee315e8e430b61d2604ab45dfe7a935048966c3075c3f61e87438a95053f21184245d60569a523fbf1aea5dc43ada2bc8f927b5b851f33993fb88108b9b11fb3499607a8c02bf8bc657c50b82024b897201f563761554c154629ff12bd98c1beeec8c54dc793205797591b11565126984a2aadc4cc96397916c75ec012b11c74be26ca20dfb462606c58b616c6e7f6a9e90893ec130486b8b68657c9afdc6c4ed396e360bd20c1670c27c991a0b30692732dfb995330740954718e15cab169717a268175b5ad5748a416000e0437b1667238f1fc291bf659f0a310ebb0c24d4b43608c14ef8ca8010863ba80c2e426214ff0b93e0ab8cfa108d3958a0f3575865c52ff851420b249d5587f13878b8d67c5679a986a9c9f2e0024d9d9285952a180e7b835d55016a83593921a3993756aa0c294b3978b19b3384a282c3c5ccc7666ecfa98a4f48e8b7278a3a3ad5b998ed58146acba5b996538c5d862483c2d60c6c31e80b4fb97a883623839a895a3cb46bcb807e487bea3337e5ad12f6aa245e3557e5df6505e4a96b85c2aad46ce91263749c15042f3caef3772e5ab884d936f4f3928af5546826a4c9d08ba9dea3721d852fc56a9cd77c3688600a8f880dd651a4522a0e1fb59b084c187b1bc4c91b6d433b8e499775b959dabf7c0de44cd8de994cf48a8cd2331679977512269ba9937069c915210b8472702219529c8a26ffe45af586025fb03c4c14855c5611666a523a6f081affa7d246b7efe670b79585b0095c3cf02214ff6c8cb9797a584c48da65437e81ccb76682ba2783b452c96e9a900138dcb2a3f7f75083e70cf163896e4d2944e789551093031b9882e8008b261aa01ba786d7651e97c587bfac0d9575752f66587459bb12cc476b4b6cfc83d36bb49bd78162701711c8730d15789e2d69c5d9cab50b31ea8d4166a21c370eca17bea7e38ac6b13403ec281599b81270c963ba48a275bb4339507191d8a37b1b5a788287d51450fbe08afa3b34a9289644563010aea8f3f00015085b974e836735a688850c613080c0503bb7ecb7a2c32bc39799803948e11abb24a266efb8497f85c45e9004ba0e4be2e0c5579c50535f94d3f2a4621d55428d5bdc75bc2125b7fab69559331080b2aba4d5b111bc49d614326d7a5abd902c6ed6819f86307de2bb7b7eaaac0d68a6d7908b59046ec1900894294b913ac06d120a0b78543b73f4fa53435d5c13b05b0d3a21f03c84b06ac9381a270cb5561dff0b32f6b6edc3a36de323593dac185d250565a83f40a87549b806dda95f3000726b489b26b43fcb58b882107e6d72a13074bf5521b35311b912801aa4570785897b6dc953b495f4c4b84638a46f784631393726f254fe481c04dc0c1749a6a02cb0dd017b1471201742884a9da9505896a7d60902d01aec308ae56535ed8596d14d3a3eaa135380c8fd8d8148a7caee083b3b3e94986877743ec78140bb5b797bd21912aa529c754b2054f987b2ab38df56995ac3541c4a59c84f0ac2af9ccf8f0899c423a0ed518461c39001a2909338942861786db858f787d2baa8354610e2fb5338d690d10737068bc904d447237ac997865396793470b6bb6b2c6c3ff4a5e6f322f1fd414532a0220f85fbc7768155a592047c028a5181d875754d3490b35c8caf7bf61863b6fb0bd1549c4266530bcc09d61fcb44440cec749bba775a51b92683da67d4e6878fbd47668b8c867da635c78646ac94009a0c6f21a8c49e5b94c0710d4e957aeec68a935781df63ceae1252465ac62face3d024f9e64cc880c6675e564efb84ff9449339fb4e13457e0bf5003cd11dc3112acc1a6d764c69d42a9e5c11ca72867f2d23851ba60d04f344c221c177c09cb6785ae6234bd3d467b3c31d67203320fcc2a7b1189ee6cfa8210f27f845bb05c456da1e994274b3534e8833371b74ad3606a18de4b803c4ae5231c429161b839cac9d360980b53b38e8309bb58be232c90b9b98dc09a51390207c30017b168c6a95221884bc7919c38f9499ab9561a0b061ff68cd9209000b496474d092faf435d4d4a6a34742c135b8fd23ac63d1b4dc370f9e6c68ca37217a1cc4d702a5e8990d26457f912a6658ea7247038079d379aa655b0e340d71f2141a84718aa589eebb31f8656c9d2730d0259e0200909dd89a35979c34690f9830540a8002b75884439b8e8de42080014f0172147c867e6bc68a23e74dc8a16c2a7a59a059afc5821b0f6a23fd2640f9723fc247b7fe50cf2b1548ba4b7d7a37b83c85237f7278f8064463039f230546f2da5ce492798d8bcd9f942aaf53a0e2743aebc0713fba1407b5858f904234fa2391133019857f6a319f60eb6777639a8d1594343044cc1c70159379aea06ccad04073b8322427ad1acc30c11b526e95062b62c7a5eb81a02a0bc7f6aa11dbc7d0a834cb2675fcb94178e036f9c0beac64b48ea16422530f5d474aea90897ddc2144e43f9cc5587e551b6e26a710e58d8695a05f70659c1a90aa086833b8125d51575fba2105a44458655a753cbb3a3c45f1e77424e47a57eb92ee007fa185c00cf5006cc858452a63688831165a9839b64716783017f62d4646b30346b91f4425a030824a50af8f6a38a78a45fd4428fcc136fd4764b0f798d45100cdb859e925a8e8005c56c73049e90a090a411ad8778632542f0a4103181c5a119c9859af76ca39d051a218b34d75b99e696c4d05246e43a829db20ca9574c6f22691dfc92183e81f2b2922f7dc41327517b3d70f5b4156abc464cd776a1bf5c17285a4773086e7d0b9054ab3e3860b45f572a6aa7720c43d01f6c62cc270fdc35e23268222bcc3a769a3ec39857b300c93c52ad7b05ab0e9544f21196fe62a9a16a04487526ce24e8baa4e5123cb2c8a7122da5d697686bab49c8046442a92bd34b663f926a24f529c8dbaba5dda288ef580b43c8c525aaf92e5992495486d399398493a77b2354307c4e8a365d5832171c0c4797bbf1c4c0a30778a9fb2677372b51e1ba06e2ba214e003072cb321523a1077c047426b4f68bb7ff87679934e3d94c5e655c21506617d539b1e534e43a650130b2413ea604d07c2b8b035722e370f26d6f900e66500b4fd1591565024d3e4d0b7f3d625bc98e4d6151d6e470e8cd2d515163ad172ecc559f3d9f58b63a0d69dd1f31727b8b332e70752da70a68ad68f34aa279c731c2bed5bace26b636ced453492fd80cb48e34792f12f +ciphertext: 6bb81617e71b20e8c41c01b290cd167f67d9956637668b5ceff84cdd596383a345577c79a552d4c4bdaa106fea04eedb5b1c6e676bdb0c74e38bb8ea5e63f439da5e7910af1c4909a69f71e39b88b97712246fc7ac4e0554f7aa59aca6206d64e00d61b143e8572a2e342cadcc0b155fd8520d5bd82fa07d896eabcf0cb1dc09f92e95b0d2b9f2a926de4fa3465c04dbd30370c3673225d7f4844ec53a262629c09ecda64ba6f680ce1bd2f03afd37830ccd263321fc2b183b6e5f3ca484fc12469a1b032e8ae26b9b2b3232a24e0eae90f61857eb88735a2c3d66a1b4f1a9a403f3f75c1fbe119c9617d2479371e2f027dfe552326f60be989387e13eeda8b57ec553d05dfb6e7dc333f883717834b73256e352a7ea47757f03772be068f8394d3fa8f168ead2ee9b24948367e8708db0d3237685caf7f89ca359c05b449fbac2a0791ff3245af4fab1ff4436f6d6387806c8c9fff2032ff06362a7cbe7bf581d5e2b606a7142696a48386a230c4d123a203673611152b81dc3e7be6d8763a50dfbdaa75bdcf6ee61858608645f3b29863216caa3d4b35b43480a8bac59249e7197b3822b0ea006806afa774688226eaf50b8cbed3e0d8600fe483955c7e4123f9fc22f178012f329efede7d923b4f3c6218735b74a2534aea1ff46e9d0a9ad3d1899366dff7c49b3b583cf74209f111ccb8466abe08838de40affc734b0fd368f35a61d8a391ae5cee9f409ddba8232af453f7f80d00d0132e5ed568b610866251018b94ce9b1fa032499a20d85f4d7377a7f1f44cea9141981cb278ac6d1a82491c2997f672a821f49d0468df731a4342393099be646caad205f7704f77bf6ef5c4a4f816caabe5fe16275a3d6d038e35913230c310360d5030b16ba9b5c4d6f199c7f351c5e98bbcfbea3fb2e1a666bc9854affbe889e50a582763614775ad8e1cbc4d2cdd9857fa358dcf41fe5ad108ff3688fa5a8092033e2a8c73a3ad175fb187b914bbc34cf3b4384d8113a0879c13403414e0f8c8e4d3fab3815e54e5438256f5bb0360b420eeb32f645bc0af3a765f686641e18747457db53aa614c98c5204bb9dd3bce0ab46751151a44bf78e851a38e2cc965a1ea7ecf9c33462d85b81a13eb710990a3b2a88a8387a09448e2483b3465ff156af0d02cac2a8428772393ffa4e98658f6fa8217382a645505367a16fd8efe9f1e7324effb8064dc856c6b44fa5676e47030a2cdfb1778d3839a93dd74773b1fac5e9fc1b3f8e8dfdd66fcef8965795ec33f9bccbd6620a626b54627037160f53c5c5feebc53bec3fd355851594d15ebc15e21d5f3fe9d6d2f042daae91ae8b27a6c8739bec77d90cbb6319e361b947fb4704f6172d2abac531ee9719211989b543dca1abe3828612b6622fc6d677bdcc3e5ce957808817b4822097bfa3a39c5180979fdbb05c90429bf373e7e893a27f11c6cb7b81d23f7fb9c8d3166312653a01195f3ddf0fdda770df2a9878cf1e79abf08fa9194cfa74a18b9845791bfa5961c3fe28d88b38 +result: pass +shared_secret: c3c12c77af63d29b45f5f98beaa18f47a6e76a652881d65508314b5f4dea071a + +# Bit flipped ciphertext +private_key: 36fb8016c6b86941994276324e236d8290542961532f7b1509f757fab75bca32b564312051e8cd1bb600b3c3b69b193997752936a758be2aafcf359aad358160212b61d598e974944a4015051068ef5cb7dff84503442b9c15b2d1c507d5d9abd3e16945800f8dd51dbd55b5748b14d3b3be01786481f35f6e95ab6422a62fe6ad0f5a2010d8a80c3671bbd6c616734af6955b9d81beffa99c7c0b892b239bd0d19747e5208a437072f3cc32929828250f044a17f3b77b22519cc13b9c76aca1cfe244483951d97226607113e2072b99e17c319165d506182610ccdf9493b66cc643057f77164613422b0fd84c0f9aae0c2340916300031ba352a36efc711760505dda50890a91cf2c8908eb88b32937b6d49ca5345c14f9912b3111467bc14192b40278261dbf782be4e71663009e3f808b58614c25fcb3ad70b0ebbc9e16a408df247ac33c75f1ec49da188987a038ad62a5312949e0321f10d8930e3abdef4a71d0e4522d432825c625bb02bf792143e169028a76ce5a9ac3d4f70c3fb19668a84e0fa4106444bbe7868279b64e9b30c1f8c23b51e7113b8a4f7a5744290b4f69295deb30655f5b4406ca0b09435befc2af839a3e77a181270bafefb4a16d12bac0294c66b9a6fc61aba8b24f6d2c3345fc0c910802f0ac8328a9524b9b11612716d7f2a5f3998a448a9c20db648ea9886dc309078c8b53e9c4e43580dbaa44f95827f67695b7db41cf063516b64587b340c0e957b75311bd86b05718b4ec757d5f601a10b839f96424e80c3de0f5bb2087211087b402f5072a292eb25478eab1b0081561bb486a9ce4a4b1c83b52f104dc92ce0055230bd51eb416468177adf6a0bc625b4b5228338d2978168213e0d3c75dc954f626559ce8c8889b7283283b88ac5947660073468c8e4b6897c6692528c9a187a5a87ba5dbd13de1590634fc454c09b4c0b676ae7b4025490f0f6496e33cb5780015a3485696b2b8467b24644a9225c843cdcacaa7f89edff35285f144dce9c0c1375329e3a4305152afd5359cf2650cf356c94b5425151c07f44c338cc990e41b5c76503bf86a283627bea29cf81a1207698b92ab196c978864b77f531008236478b07a4007792e4f94818079b8107c0146e711a84c4b7e13105f803ed7815ab18b5339884c76cb17e7582162690037c66829055d0be2039df561b434a1c810009cc38506aacc964bbee47c92e9a577ca3547607b6f673251cc7a05633a7bb38c49c5bc734dda84cf2a2c50eb32fc798613654a4498b1cca6c4416130459606429177296381a9c1060c501e19095474f61c37079681b528da5940c9cb697f849765db415539c4db479d94884625c736da62b7ef998262a4697ef8c0718c9ab706bba8c0b6afd479a9b38499dbad39e716ef83a5a01c904b9595de9b7330b25e94fcaa5d2733de87b723d99494e7c3183761cadb6277d69190525fba46094657c202e613399a391252b7fc16714050a09ecc93c283203e517829f0b354d00a0360a2dcf3cb7afb402fd9554f934df0070eee8b93fa13cd39c7732804319ad13a528018f058cf7d4078a0743c61e683050c0fca18cdcda72746041d80019864363252a87a0db17d7810b1b7047222091308f1c60ef260b381914c7335db3723bdd455c6ba93ad0958374b7fb7c832c78aca0aaa685c9081e9c56c3a570885aa25302911646ba4714b79847c2bc177501ac4191b92b6a3c8ced316a74c73737c703d6c9ab0c7bb4e8a1118476848688a8fbc33579466cc15121a86371b287319a4929fb9d7b69efa7a3d79991d0b10ee467679308343d44c164544fc140b7dd1b7551795f5bb009d47a696243ec7130564298df7b3303aa30a12a97862c422a7e33795a8739a698c10516b869bc3a71c6435e8261f7ccda3700d3ceb3b1a8c522a2c8654c1777a1c12fc03ae41d072e5d2268e495947a1b3e9b64c01e86de80b0d504898d11b547285cbdb1c22f359b08d62c7081cb21ad6a4860b5ef871b90e98ab2b128e4f93bcb3c76c6ae286a98a16ec7932a5a1c42a52b3845875ad247aee8cbb2da13eeeb770df8228cfe9cf890b946bf27b9a5c4b20a41f1eb7be7c039bdbf918c6b5095b224baa8bafed27bf758448ecf354ecf86d7bd8076f493a3d6a1eda689e69e03b28e9c42d69623f353e77e688f310a27159ba0f80c7d6c1c602b602798b988ad79d3637c92465c2bf9039d559baee685b9ce76d87063ce38c5924b20638744cc4155483143ea1d28136fbcbac67bf387743eb8b35627c8b9f4bb8e78a19c4e586f0e5797cf7615c70726c4c68b5cb63b749219f22a8614b407485c573baae3f9b7c05892e4a9b1889158dcd198db9c5072996ce06a05d01ec5ae8ea85fd6389e877a660c2a744e2233e2084246a45a33855c8393f39418c626622b8139db8fbc107a0ae39247000354c732597955bb77c173fd73a47a350b46466c8e151a0680b87c25003d99ac0af11915dd218ba63672c8120f98a8e4bb63ceec7ce65b1b64ab40c912c324dbb9581292287231e84a21277430e3e6c3bd8b835b547c6b70b524a28933c00051cb9348c69738965856fcc7be1ea3874ca5cbbc9035f321ed76a8fe49ca5cac359f581b31d7b9b14c6b2b6a305c092300a2b42df9b14f0c908f63201e078229de5a80f3b7bab937bd5d16711a0699bdb7ac0fc3542f87b615c61acb5417623ad2693771794a6edd22d22866637a1940ac89fe0db3416daaa4eb58d12c4cd2ee11d1f803e4af00d7f97074e31cb79883bdc22358954139d0a6f13a406834c16f4904c58724a2f0759a0c9bddaa54bc4283d70330bc43616fb111c0b5626dce2b3ac0384b69a9b28153d3fbc7ee78c72c0b8067772c32f45c554b234f54bbc6927322a67a87ee1573ca84d722229555449982948976c7a5b0225bc8536fd692d8ef537e1083219618f48559c32092846eac462a045d2041b9c1ca37de4a51aa89ead054da9534db5b97b146622301a502edb7e9a2c426509639425c4366a14cd100c94bc1ec78656c195bc608ba47cb30f70d34516c0b7c2fa99cc58599d6038e002b55bf408cf641c9c7cc265e8c4b218b94af1a57533c37ae15d577c72669b99e74375129bbee92c67cd6c405912199526c590e96333801a8688188313cf52ea1741d191c1a209cf73583c3aaf1228a9efc153b0610752d53d6908a8663bbf4f6307c98c23c6b51edd8557208518ef04abdbd1a3df331e3c2478efb36b327ab9d707c1df4ddba43d14571ac74c83aadf7eaf7de0ccb3e951c0ea28a387b5a0a0fc623ec208d8b040f40844e7df31aea917b2096e78efc7f21a5a107ee483326c786f3f8d1ab73e72a4cd1a0cc37f59299e9cce622f072ad25cac91c699 +ciphertext: 7ace9d0d1855c06c6874d7576edcdc15bee22ccc1d84c946cae6136a9bcf389a097ab64511c6c7237e05f70b81eaa7206f3191c4fe156306e7591a68917298dcccadf451fed7e897a0fd7c0da188080e2fa9ecc231351ecab33bf9647023c4fb2ad3ca5bb4abd0e7ca661e36bf896f4167a7f8d86282dfe7442d822536cce510e550185c261e357c4e9d3c6bf1115273d82d40cef236b948f59bd120678d2dd14c7a2aedb9b2830d540d9c3c665028f46e0c7a5148436e90388e48d7583fac6d61993f1a2e708db2d5979f1a7e125f29dd6c35d8caef22b2e03b484fed758985094790f6f122cc5946a96a2501389207788498a905f41ddf0d8e0119428bf01244db9952ca2379c24838906b0235e567bebf805eec41adfa3287d8ac3c7faf76d8e04c5e0f9179f3934575a069927ec77fe255a65406c2dd81367f853ccaf7ac54e221c1919cb483a251f8137483450df330585a7b23da996c97e4a2ded9b6c88c4bdb8f546fc0dd01f35ae37696d8b48bde2efd856a9bff17cfdf33bd5043db70bce4da71933c55b170fd227a64f70ca3e26a46e40a2bbe622db663a7a26d43137004cf261c4c1ad2001561c8b9cbb98996e9b2be9703ba90926707c933e1c8a093e85c83e7b69da605f8b05caac0c5c94173b47c42213c8109416b9b6f46bc5a88168ffaa98cedbae4ee3144dd6c042f6fc9b07f5687136c762cb0b5c11183e160083f5296bff0022ce1a1370ced0ff83f51a93c792c71002ebdd06c088d3dc2c93b5004fb5fdc8b2cf72671d5ceeddd5904f7b3922b4a27b4564ef5f6fa40436c60271e9680d57a7edcf4913da6460e202ab6747646215211776e7f8938b34fe9dfd920d22746e608ad3bac8610e48eab433f566cece5c291b35044a58af799c3f58623ba4334b7731f7da1a10f5464c95e8a06f972faae0bc7a5019a82b3802d086baa0862a5ead284e144b71b2dff35555076208ad33b4f03240b75ea8463c7657770557c6a636d42d5ca6bdece22dabcb9c6c065c3050a83ae5d5c5d265a146ca3a1563dcb5b69d549c6f2bd53a65443b0bbdcc8e0c00715738d758ceba8ddcf42c3d4ffdc75e7ac94ab3ef1b92a8090252ba0e748f663e64b76582673d3725d2910d7daba68f279b4e8e8ee77437ac333a2fde32fdca637acb2711e86a331a86bc2c4c4851eccce769d0cd0791f1109ef4aae510e482b84e4ecc378d3af48fc400ace42f4947ff3a28a43147f263b81bd69226514bd4c5c6685de198c1967bfa3516c8af00592ef9e10ec4af71ee8a6796473f406125bb1fa90ff2a9b4136b0863e8619c2d1033c4418df4acaa54edf1e7291314c92653a87b8caa3ad963ba048cfd8894ef0156a4f46892bf03ae019fe33293e19d62b425be4fca3677d1edcaab92aa27c13d37d7fdd8ccdc26ba4a129d30fbfab18f7cf4fd9ed392d6c71bac7a8e1075b9d4aef6dff1bebc09469efcf610bd71d86fa8e8b0c6c5f483d527f9867921a2cce5ca2bef47a957089463fdf7b7010634196956c29314fe0 +result: pass +shared_secret: a5db5c52a2a72ca6fbaf0454047ea11c7b5de92aee5578b5564c1b975e8aa992 + +# Bit flipped ciphertext +private_key: 62082bf28a00a0041b82c22f3bf03e652455b574026e5c0a99e86c7196cbce741cfbdb59935653ac1ba0fa57924b404738118c44e758f3162ab19b400a471829b8acfef3617fe89796ea3e033895f0200813e3a5da9a13fdf32255518e18e00714397da36b6e4c612f225965ef9b55683a64df4c63f5e5263a57116205714e468610563d6192212d51a4c2d286b529bde729252000b7d3c301f05aba34bc26beb15da9fc422d696ab078c8eec039feca90f78c3cc4b4723f44756bf71360e286da309834d7aac09c56837c33b40abb9ca11ea53c30633046b4a960b6bb31b8f36c8a053868735d86363af937c9b7d37ceefc1bdbc207ed9621b6d6250b5bc3d0662ce11970b55a603aa1ce92f24cde2072ed2413ad9cb19de1b98a33bd250a2e1c927e393636fbe2a494362e01d874c4006252d969d3bcae80551144c46b80bc6b7f6c0ddf4c5bf55a83803468c0145dcf60a9b0590ec4ec4fbee0c4eeb3915e7419f3f149f87a95e4c62c0cb83fa4eb4cb41756626964e6d6adeab67a0a5aa39cb3a6b72252e7705e3bd6c2ef2142a300b27e3cb2332485e0d674934a23fb395f6b80404ec6a1ce5374377a9d83f5780cab977445ac60835c8f24b222015aa1e41baef5652e2ca6df935a03736c2c648c887c4f370661c80baed6dbb5b9e9920b9192e017a22fb324c89a734de70968c68765d10664785102148460579c12b261f16121f1157d6e6c237a45146456357d1973be5b2717794b2b079806412453b956dd577088a3c3208625e7f18ec5b4bad075b6069198fd420b89872201a82e6cb6849d6623bc2430500b4c282a1c393a72308a01a9fa65329261919a6509e568c53315efea43ca251e2f727ec9053d98633379e04f4740bdb2c8c23a6338477bc4a7542ca5001e1ff658cd076539fa6e94a5b61154adc6100a965a7df84a577922bc15b04d6a4ca3a4ab7e77314d68436455a4936d3b441ab76ea09054d9b51f4f9662fa673f06a2001e9594f36058bd9329fd262ead8c90b6c09dc1b0a72755c3830a534a67a001564065e33b36f46c31cc0f7235464653af4ebb5fe2da9f1dfc12f156b6b75b2e368b82f230a19eb1ab03b22caa7007e173cae0713728cc701142548a27a74a45a57d668439dc5bfe77a3d1d289f65b2eb907be0b2749e5b6134d537ee1a240b9dc59216645c8901848a5284d66a00dd6a14892a32ba611a939c3e1b4a9436418b2038e4a58bb9526595a524d1975bcecc284d527666964bf449268fcd53943517e09c993041554fd83704d6003b4a80153dbc341bc322df418fb79779a19527736aec17372f82653b8e7734e71c87de7cf1149576cd86e6d7c458473bb66b004494b1db5e0ccfb4a0b6b8107c04420dd6259d3ca805145cf25299a409793d7c6250a2448a013983502be17cc5aa813b6f897323dab30255809a7f32bc849c0782340715c1b3b400d223c267e62a620025ef016661ce16c251111ec465243212e4d34334c27bc81956d9db642cf134217942457bb1d0db9a5a271c63b29ccea597e66e70c510419a70826e5f538e5828269c4b28a078174c235ba32b16153c1fde49900a3243a2356cc9b970b82cac324195774791f03b27451af5a54a8895520c016b53669add57c069bb6356881670cc96c8604bbb6183fd7a29fa858c665747e5a315aa601a09d8a7c4e290ad9148b3ac78ef5c348c9713fa83acbf5bbcf93ca4b80d1b23f704c0b0613eb55ca4cfc49fe70200e126aa8888468b066f01467738b4c5959c7d736697c7c43bf49c2914b9e17f0272ed3a4f4c28bb09655276b2ce02aaa09917fc4e4a44db67afa509b3177cd846736e7a14855325d74498be3d7a056117f7c09adbf319bd74c18efc24ee1f722d5ea171d6279a4b65b40d0239ff403343998abe5a3cde4175b0a96ac05468909642c1b39cea004982074a4074c86f8a80e0698ffe3c03a6b9df22cb3cfa157f259aa3d319fdf84b8b59aa86196a0c7fa190bb4a5c4761807939588e9c7b95a57aba05ea4d85cf322b6f0354787d12f62242c742c019ba23d86c05a0e8787d156c2d691ce17377af7ea0b47040a169c912f803302dc648bcb803976a2ee28cbf9520266b3307da387b0a73a6f70982a806b3167ca86a747a4fb18211b4094734e34cb06d7b176b3f61c9ff62de649058e72617b95881e614db8d98bf4992cd70aa3bdab34e9a9bcfab84917e7ab9b1795729c3c6ae521b56a889b54c60c8c41e7ccae9e43932a9acf2fc87731388fb687ad137c2ac2468941141010320bad00808a895191ba65e88aa43bb45a9ea2603f84111066c40ad71480a22ad474192c27811050c7cb277e53f2ceacd73f8a177e2da0c711528873a5cab45692a531a85ef14b10636ccc9a886130b8f0688db14b5728075fd88a1d154804a28404bef0cba8f0b11d3a165a403042fa1a73d15955f1529fd447c53b2e714412db95590bb457bdb9537a211c39f3616e602697ac69348623a0fa66dc49c0a6992186c2782b6b5595768933933fbdf48517b766101917ea4c7b57394422239749899955b2326bebc35f88917beb95500c9998c13765f753f57b08a191addc2ac3901b8b2e86b57bb0b779a952ee57a4e8f6a1155c2e3ba37c03944a7fe0785f9c4db684a43a56802cf986fa203102c8b50a61845d1b15a2b207d7b012bc27a530d82f2fc30a9fd627b5dc953e008e2e8244f348966657646f42358f4052271ab6980ab237a92390b171fbe11b87116c0a20b833f57b323234a978a3be53acb2f695afdc10aa305ef5f39b62589d8cb312ec73471d6c4673202968d1a77e1baac343212cb8cc21e3bdcd530d64c2631483aba615384a312c93b00543a439ffa763fb141437eb86a5964eb04b9115b88437598908b4c4ea46476a5b11b33203ae294f929c6858a2363f35920d43bd5f645ae0861c174b5f71c94a8b27399c73c9bf80cacee89c699537a690b49421811f39abac2a76df286512e65ce83ace85ecb4375a6c0c1206c7b20f0f63adcbe86c153a1154c56a2c0374eba3598dba5b21ba0905bbc534693f5fa85dba6071dc93613d200909d9985c2746b1636a2e703401dac8a911c53f176b35e91acd84c235435a9ebcad2a939bd6e129c79a59d4863b9df12884748699c989467c57008a0e5d8ab31bd4967d16c8b8eb47033b22c6b37ce15b8a4263b016d5caf3d0c783f11b2cc08b607092aab7839314887c76bcd0c409cff35009d3683aedb4b725ddfd6fd12e32e91a51160d3775ef7ff3f39d707d9ab24f2168b5b5d508167a19c6fed755bb7724840bceb4390fe650ac654d333019074edf59df0cb88ae4110a6b14fbfc53537c5c826a8531b465a13abde01e6be7290384656604 +ciphertext: 5f11706146c01697308a84f1d8a529dce54df57c6f0b72ea3288aa39ab3957d5c9986d881899c93e2292e8b67d0b197e4958042a7eb73cad858ee1b04ed09c81e26b1ac955f626dc4c5be81c5278377e1bfa1f93b5cdb685ef4e79ccc58b8319500b11d6aecec0287464c2342130f6fd6607603fb398a7f2333ca0ebe3175a1185de6e481e70f14bbb9134b2b5977a3ad8381688698ee8ef808534d51d0fc0a528ba607fd0733bcad5b57764621a6ce351bf5c40ff3349cdafe96b2e9529c1a6be60d099aaa4be1f45b51f53fe8f1aa05271d1085d06827cde896a6e434fa4e1338954f4860e9372fcd4c59865173d16975e4210b3c6d02fbd4cdbb6eb2628f4c94a97320add9c710989b50b8e5c65d697241eb8d426661db731f33d1a2088b078bb07bb854eda22692b24d506633f7c17068ddcb3111856b5f948442c81787bdee2c78d2b26142cc10772fcf1754c847f4ee764abc65e9c95952ccf92988afdae6d2da1010838a9ee584715f94f080e3e1280611e8a9db39a9a8522b0cdbefb2e5020fc9dd06bfc5187ea6cf8b05873011c67bd95e40289f11b3ad513077dbca4d97e7439238ecdad11dcde930ba02c29df03e8bef7c3e0b7cfbb396c93da47383d9b0dd08cb8685cdc24b2ee2339113f591629c9203e4872955eb4359dfc01f18bd8b0d78f0e5565f2f2c1039168616c1e1e6cdd24376541bf1637103118d8c452aeac39558c2c8277f88c7eb0deacca502dba457c511788355f898153be603bc6f3357b7a7ad0f0ff465eecf84f315060192decb9bcc641dacf029f08b83770c32d6216e318480d469643fe7a1fc0db751abece0d735b05a611953de48b88290f0819a02fd94e17bfb51714633997043b806c6f5e7fe265aa38c3a59e78a723dfa34ebf211408aaf227cd0a7d1ec929dc5989fcf697131b20a4f3a7695ad4f7058e9970094cbdf51aae4261c3e2a81c2f1b39e1003a2b5a4f8014638f0134cc558cc35bfae23f4791e78449e3b5174f8a60e2cd1144775ed1dba5e6b314829310393fc1ad570a3fb2579e922617492af1310efc59d82a02193a5529f2629feb02b4be85118ba367b522aa59be898b0e4c8dc435b3712d994ee1d49e618d159e0663311f8ebc403b0a1d9fdc11c0cf3c2878dd4f8358ccec171acec8dfb4bb3f1923c06312e146cb172643e1f565a8a3701acb9fb0e223eee082d33b0b6f47d7e2398fb03270fe8cd789ea228ade6c19f4fabc54c984900e868da3cbd9ad6d9156cc992fb39f9fe2c441a59c71757e8b347ba8da3db4b57901f3bc6fa8a61e20780041054a441aad28fe8462672459487212d2bd0581963922a69c298d240ac10622955be32309d3867445ab168649619172124933ebaf01381b337627978f2555a349eb785da12dc060fb22021d287a27adf356dfc90cb4eff0dc648314ce3ed7d9970297080812c8f37c3bfbb59d352c35847ed850132ac86b49e8a1007aab2eaf3c508d945067a64daa8ed1190b9698c412f2287a79875d9c1ac4ac6cd7 +result: pass +shared_secret: 955369fbcb23d97a304f2b300844d6efa71463f587cac9114ad2dac1c0450cf9 + +# Bit flipped ciphertext +private_key: ffe40c01a9ac36036ce474a973e909eea4c82dfc10949959ca623a0b50ab65762057070acf0c4323f4a80de34319f5272418675c34270e28cfbdd2ba001c921d5ba15194b3258b50208c16fb5acb48a5402dd266fed4c90235a9e087384460327e00396766cb10c7a7026505145c852d2598c7f2798e6a9be4b82717e1042652cf89a8cee7d8c33bf92de809152bc60f2ffbc029dc75762955612b19ef8acb8608548221af8b0678f4cb4e74186e4de85905d942b13a854ae0b304360ed5e0553ba3994ea55d77829d345557a3e088b2638e5483b4f6290356caa1fff5858ff02f9d7501bbc8234ec0160e07bdd0f23f34c43bbf758b6fa0cbee4b7672501fc2b98471449957c857c6c2306e97322bd672c8d4a2d1720621e6009365ac73da6af3e21966b034aa411a3d4790e28a4505113a87102b962795cbe5178521575b69c6bdab5cfe78b012510a298426ab9935b6218d739261a8b7047d475290d9369d740bf1eabee7870f8ca5a1cce933e79476cef1415c132334215652e730a2d00078f22553038d44f40938f38899d31b4982b0f931bd0a388433e0a0fb828bbfa47f324ac0ace4b5780392e03caa81ab5d5af84c2ae48e79c5464f311c7af721b1e261c8f1a2fe473a4700c6ee70bdee467121b94a8e0c86d191230f4077883cb6ad45b90e2414ce541812911bfb6338f8458976670da4c3c98f484a8966cee2156d3480013af95a14b9b8b0bb6499cca3fe14c265361f9da7ce2549606ea87d5c1278f5f5296bb16156041093886d320b26309c83e01307b8a81e5e3a7c1be170f02a2405c6b398658d759354974a4539e85236131028a28dcc09ae0376cf3b33a341350cf6719b4845b07e926dbf83a6da90a303512ab916c8fcb84befca44e707a845f759e6e32beff4bbeb32681322666a29459e39764877b33168855df729001d70432b609a87882ed59c3fa9c20ff948b95134fca63d9376445ed4ccb1e903b8da38b52621649017910b2edbb53b803c23cdb5904455721ecc8e3be02b684403ed2a035536be61e6385f957d72a6404543971bf63905fab1b0cca6c2b65bc5a55a2b19a94828c8a7c6adb4b9ca94c81ce5b35eb7e650d9456336b04e661b4a229c7b10a8289ee7b7e458bfd9991643338c7255100a9c50372cbf50bbc54ed5a6c7028a22e7c18f6a0e312478e8412366422a33ea77c1b7aaa401af9092050a03423d677bd152750eba3c9f1114d5385a954268d1b365cdc221f5c8490767612488be57da705223285c1980542362eaf49a76e427242c8e0742b1999206e61a0a6f0766704773c1a80a0bf239a6d2be7385b3cfe75028b765e7f829b66448acb990895bca7922ab81a8461674abe90a917cd08cbd9a6f64e89b756a4f2fcc3429e75d8cc45bb5b587d131b6f27c3406946f57da7477314f66b32d20cca77a687f294b63b0e3a2eae4625dc36852d6a130c3afd620bcfaa986bccb550c62871e546391741ad3978a2bd212e7a461b2f90067d49cd4f79ef0dcb3faa14eb8c460b9b9443bc924c1f224a8b60a14d050d557bb16d952a705a0bed728cc9b3bae822767d63e3e05993f14837d5730ad371af284c4b2751f51194a3ebc94d868bafe70060dfc6fc5c97375861f1dd2cebacb80aae32dea78a8702cae2ca67bdd580b1a81a156d7af6e91bba5d21bdf294732125dac416632ba5241b3a16db337352b755ee53803ba89d9d7b974174e0fd75bcd2c65b0e06d13c48125331a3ac8cac63b96ac0b5107446738d4cc27abafd6d79966508dc4b1bc96c62df21907ab4b6117e868ab21c03d14bfeca573e9741b4ae01f9687b3db07a2a80c3fd1212ec5f9608278ae24671b871abeaaf16f37e8687c120ce04c726f1919bdb91c4656081ba9351811a11a7451e9b982aacac5564b02b490683fc91d4aa68ee6a89466a13ee3d52623c6a3baf48415ba36c281ac73339bcae052cce5069b31b9b9f549d7743c5430145b5b8ccca7bbf8d468e2a2292e5a9ab2365ec7b595799132df88c663837202173679146bc24cb727644ba6785c63b44e994b881b754cfc07d0c08446a6e15a32f01264e86a6bc9595d898dd11246c2e4a6183c9f533905b907c94a307b7aa876bb752fc49866060bb59b3160b044326baba854704ebe55b42ebc5b8e0387ead15d1571bf4f116ba7e99ea907a4f7114c67b1553c5c5c85f193c4bc7ac5a956a79547d6c0becd374d19b6ab118517d01a9eab66a36d38cccd3565db1ca2b8559e2e703385c8cc2a879f54c16c9af0486fa7661c1bcf15f45a15493b3eac3324d8657e503d8b516bef969871d7280b050827cbade36a2fed69b4d939cca0fb47134815ecc4831aba0c3741025ae5ce239cb9d5d33b0db83a5cf6143c8ab0994a491a2c34a5785997984c5f9850d8f64ea30cc169b167146547799a77fa96b235e3562a7998fa6c319d997c1e2c9dc7f12dbfc04ddca067167206a7046be7833abe9862d8f7c611356f60875b3b4b33cb748979c18876298b2b2b8301b51ac8165653f6a6aad6458b754637e1ce2c90cc9118968aa804ef55b71d37855f77a6ae79b322d1bcc1d63ef21aafbb2724ac8c17800577418563bacb06b48684bc2b27d8f10deba29f5d0ba1bd18a90af44cf970bd16cb927af934574c0e9524aaa0356fbdc515f3e4ac5ec9be903615bf6c4ab2d1183ad7bbc5733610d2770e3c89f209b6036a33c1824e22254791437cd88368a1fc445ca71f057ac79c37963857b73cbb6b5e9aa119c5cb51c81b5911503ec9ad6f28c73f70cb6a7336e7e13701671b886b670c3bbeb9728c2387b038420083d22537753955696c26f13d8791819124b81d980f24535cf14b498a5c485c523b920669e9c34807360f2885cc2f63a160917ff59000eedcb7d809c6bec6305fdb6fa3458b7524c0365167c19a9fb879bb716835f6a40b760737f8ac3336a48ea03514b0eb2bcdb23f791353d090bf214910dc7c80ab878030bbc96f39918af224af967e293412b6d458d6f25b9d223cc0365fc32cc1a9583fb23a7f9ff98de2da3253e5612b02b00e58c69dcb88befbb9b8183f1bbc2597f65c277125f9047e32544c7fd60889685408c30282041acae2ac90795865b4a1a8f293f0b92447ab46e3d1481ec9096743c3dd36162fe437e1a70e55c7544f6807d62916a06864fec410fbe67593c3034e78acc704a65396c7b22177fcb87cb157ca3eca0fb899a8a652491ec80024f84add49b260426778a2fd1da268f391fc2bb28ed50db033efe2728c0b0a682cafdbd32f2a8529268815200a08852c724dc2c05632b1ee7d271d050e06bd917fe6fb18c4afe8481086ad358ce7a53e20788500ad424163952272968204ae63125ca906449b +ciphertext: 82e37d92c8e676129c4f9848ec5d6091cc1b7d6f9f94cd7ba7712409100d9f5a61cb8a88cf0cdc3812e509f04fc4f1c9fa944cbe62ce5074a77929110002ab2603f95d18d3ab443ffb90fef519b14e2db80591b02a01b304ce59ec608df080c3a97d45250d56cec6bd8cf6456f7d6092764e8bd7a67c878cb8392bb6f4b7c3048fd8701054cbb20b2e2ccc74d9a6ecfb7a6e45e7ad1c87c435c687c761072afa9ea262a10dd1ba5996c7915d8d26016df43115247025fc9ab40ae786a5e4f1fbb7288f04a011764e24603d953abfc0a4236dd44294a08fe572ac730cd51717870fd85491eb4d5ba261c930e508eda896836907bba5629743a1eb6bdd2eb1a4bbeba28d6ce876ee29f6c3c4051f0b38391e81e44d12be6028a5878f037f53828ccbbd2933d326ea79a9ad24a376877a49cc088294fe7fe801d0b0a2413246d1cae363945f859be2618106cc0fb199bad97e015e7ca654bb3567fa599c5a39f8f2e6c6c304fc81d7fdd9aca7710babbb21e1371043c2374d158d3de3a6e103999bbd0243b1db3efe2b849f985b850b98c8e8513765e280d6861c0119a18ec6765bc5da5a0f97339d593c94315ccda810215aa817ad4751ea6ae4759bede914c8421e4c3d2044bf1f0ba6ebdaecf999c46caee6330aef35211f0d75bdae4dc142bdf5517295be71ab384ac378c42078bd608e88161957aaff5e2edf49bdf5a3b773cd72194c5425f72c54da2cf9493e670629ec5459ea388db17844bfd2cafcdbf3a857d0fddfa14b2ccbdd5f582a31f80bdaad837e09a07cdb42c16508ef7013f7178690383420ce6336ee49a8ba4c08293e620c865e81650793b1b6b8f2fa8333bb8962a8da0622f38b359f810da0ab0c191200888b0a72d5efe4142b189f805dc3e1c46717afaa59f9bf5a56e2ab751b7374c07b4e094df4897d62c57d81c01c0d32783de9f018a96348aa8c09029484ce2cfad9e260ab86fb862e0bb8846ca920e463ba82e61be3f55ad4f72bff438ed7c5ef749eea4f593ae122fa4ec97990f392d5e11dad3a352f540b414c457c54c9964f0608612f786ffc4acf002e86a00be1fddd05636b74232584dc2696da0c1849757b397da85442bd50be66aec2a41f5e0a3bc8b9206023189e3ebae3c7a1110d032398c629ddcdbb71c6e1a875adcb5021d626422364d4e2427523195729f5910b3c467653b5783b6fdcd015f0f0090648fb80f774b0c790644eecaebcc6785405be5c83870e1a318487438e8a047a4f1cb9c27dcd2d6768772ece50b6c65f74f4b96da295458c8bf0d2463f85021310f6dd89784e7dec58e4df3ffd237ba75831e2d21afeef0a1c0eaf9f8be5448db9d71bbd600300a0aa0e9387c9cb6c38a1cb86c49cdd4d6b069198525f24e70a8f8a50eb5df94166f4d926211acccb300c6e42a079b3e8d08213c4452b6b844e72df6d855634a5545dd15c3bef36fcf69a81659813fd33a9a8ec574844b73988cdaa86dda3ce9a7dc6f67fac122c8068c47e5114f3c0cbc374838c6834a3d5 +result: pass +shared_secret: 4f55a6c4ac54c6cfbd94535c6a91d420882532687b09d178977ccf13add81422 + +# Bit flipped ciphertext +private_key: 52e172d7a2ac8195b0fb0401f4b351ca3bbf277b6f8bc051f191b94b1cb25d0a807f81051172a2eca18295b0145464413680b1493185662c26ecb77bee37a32617003f2b551a6c601e702626f04a166b637558709abc39322c5e8083533977b83b0cc27d90c160f064c5b545e0101e07a155e2c4a901b032f582ac27a98a1bb9938fc112fc8bc3c56829402004aaeb3aeb271f0186c11759171a40221a027499fa328847676f4b81939a7356218fbb640ee7aa5653f59dc2852181b610d756a30e7a2f0de47efdf76ef64b329864b9d65842e44b18a1529432252f44bc261ff08847e029dab8bef9b69936900fcc7b1cb36c1e0287c816490f8ed514ceb859da495c81603864810694132be9802041daabae8c53fdbbbc585439cf935992704da2f23ad0e3494e123ac4a6c3bba38ce2393e8b09467fd808ef25b8bf720f40c61120182d1e18b9b7898c5a772d6185344c353dfd2ccb170a2c709247180bb055130bd3747964465e41196d3fa7cd4b566ad30b8384c0659cf437f6cc789755c281b4438569187e6c4b736154cf763d6f0550c3a9437a25837d6752859bb859a91c16699fed065deeac967fd727aed671fbb459e7d4b7b02020f1488385e60c8e58a9257c903844c9bc88634166b2285123e8cc9593733a19e5535845586bfc6b00c9c920438c08a84fde04079751093c6683474430b3664039b273ed5047dc6c792a8ab7accabe6808743bcbaf6c49a810b388693874326b904b265c5ea41fe2f62edadc04020026aa157d5de6347cf250b4c93e51b71891424f31813b7414a50ee9441de3c12d77cc84f6ac0fa11edaf34172893268a9b2d0dbafb6bc3049472572b754d52b2e66fa04d5fa19e5818dbcfbc649b07d3216720c331b57003c3ab37484e70e48caa0086616fdf4ce0bc61f3ff25f312b90a7994e3dccbdf0a203efb2620bc69a9967b7c20ccb5be0cf380aa4528414e1365c1b1284486006d53a9109b72b9693824f4a7e982550c3826b2e675f9f16a8dd4665fab07dbdcc064846512be581e2fba1899b94c910bf3cb7b0e18bbf82d92992aba5e2e0b7dfc8289bd00504239c015674cad4befbb245c4ac15f2c698f19874c7fcad86d46fe58cbc07c515e9d89beaab0f60710fb73b201b384127c0bc62d481f2411e5f17b3fcba3a5fa790bf7a87dff9bf039cad15c5172e91497789119b6812a9c6a1030abe16d10287ea383b0894ae55a3194814e772877d285383eab60db0250aca58e9b966f3d532fe798059643f6f46c79989ac3953978f14abf7f12f45494fd17870ad0c1a53c53f28f2b7d6d22501633b70c5b169655eb9509b0ff72af0c7cfe2da4f04450c09b34e806ac619599b6cab292daa2a377a59bbdacbb1a2b092d82d685780f3a68c97e0431e2baa7fd30cc635317c0749dcb88b714cb5f052075fd66e96f00c8fec3c2aa9489275aaa92a2991f12c960abceae76978ca9a0178290e6764a01a46bef399acac64c07ab23b8797a7ba0ec4dc01f3790b964b2b2b2532bf64a74b3043d5299781112a6f5c4b2e096825cba18ad765c47c874a557d887731650aa812a5aa883c418ff5447d1538009967dbdc65f946a1b5b5865d344eaef9351b7c87a4146e2573a0042aabac234d1d3a5333b8b0c1ba56c0bbc1da53a211845d9d089b57a4ca204c4ba09501fe088e6fc8405eacbc15e227bd0c9f3d8a125c0c23a726a20dc64fe22bc71f5347a471cc86d693c993a32e264e1d463cd62c42dee1bfc9b334b71a0222244310f63e4809926be803bd70b7579968d0aa0d56b707ceeb19cbf2088e0270e329c925442becf8669516cc04044bba667ef6ca1d74307a814bc033a1095a973df78cbb628108976047879465bcd27931212fe2e21acd44ae15725352d2267920126a41c0041273c0eac489b32f36aa60e384089ebb4de2693978da1c25936b884714eafca93ad1af7efb5d792374f42ac7e6262cbd676f956b323059913c821ee59b30bee278a463674fdc9082ba6bc5299e83ab5dcd2bb2d3d6975ae797f49632427277f26bb77eda69765a95bfd3537f676dc61b179fd175f27ab30dd2bf461c83cb0268e73b355fb109af122e6fbc934f28a12482977dd07bc87628b224069011a79466924f9a8204bb4a9615a550986380176d6222c44d64b8f9401e605b4a9fc87ab884c85d6604b5763a47da5280221fcc4a18d3fc3e8a0c2fda44657887946da25899030222c522765b34e0652c7b251822e8b99ee900851ab16613c926833a2d4b5cb7b71a9399ba4b50ab51d0c54989440e23630a0b3a5d649a9668ab77876a7d5a7c7d447aae03625a9752feb8a1ebd42a4dac84cd2bae7e8277202a3a25a483dd981deb05b107db809225bdd0caa0713a86699996ffd8cdfe0a3c34028c6859cf7f9a043030708e8a96de896c9c5a33926bb453605778d2b45fb4bac1c9554dc41904641481cb41f0e53167666dac8918e453369ac412aca8306d7b57ac1780eab4a262a96abf389aa22553bed6bdad78b2bd427879a9182cf431b8f503543c481ad18da5458b82b2af44745f55469d1645969e162d51810288e08e0c52668372a680681219c16bb7f168d9592402f0cbea7c7a9099b489427b6a922ba57bc097f98447491f551b08d7b207d8554a29326ed83900c99a23efbc6c463b6964b4104f56ca4dc804fcc03f650a065272c21eb6c74b301e1e8c3858704d5bf34bcaa9c2f077531c90a04785b0aaf3298e93866b6c8952e989aeb9c3761907f2c8579920b3cfcc6b993579b3a4548f544761781e7b60cc89f30103a91237b363a6457dd747b6f38b4d42e93362303d11742b9b415e2d09c04450199b578cea9c6d5678371d3534f9e3ce8c47c8729805087855bcc9ca96634a3c49604a2c3a2caab9d4ea1a99421270b5a02ac717b6d70a36c71aa0f061734a2e85920397d00230c523cee713cbaa0b38aca0aa955781d5c2a7149c5ef77d746badeebb8dadf5777b012d2fc24f7f90412e16a15ad9b4e39a27a522aaaa8ba3b965ca620385c370254b3a7d98312d29334181d92c2a573d20d05f33bbaf63cc5cc6f96950d80e9b03baab738f837b10e1fb43482018b01a1a64110baed717c0158188a8832366518f491b7db355e96890133ac1d54248d5765e2790459433a2cb3313b168239a88c9a7f4cc79d2a778673722b8b04cd437da80c3d257a8da5cb4958c6d2f95a969dac287e853342790cd289a2b118432185f5a1114cc46e80763e40cc090d51dd73b573dd3b187c8462da1777614479269d37f3cd2f9f4771085641b05e45c8daf9359b0e539a2c93700ebe663d274eac139d5a6249a8d980a807e8d7a9325a5cecb74d55069f213bb4dbd95297795ce9daf +ciphertext: 8222de379dc5e2a96c7387ca7ecbadb147b3c0d435ac7057cdc69296c7b11a5bfef22b106374f3b5c71b3be9d19c2eff0e8681806197536da0c1878548820d9888bee9a073291d07a38df2a4f806ecd052eae6961cff847216810ce487d25c871a2fe47102abe276a0e554a64c36b7a7e272434859403ac177167515984b9d4f61bc0b965d4983e316ab19b190b08ad779d7df7c23f65d1ef050e604336456e7ace8c180adaf6610451f5124ab3c76c92452001df9e8692ee2083e1fd5b3a30e9a9260edc05a156ac92d7aacde6a255135ba911fdedada6f2b9034d1d8898c5d053aace83a6a0e8fd6eec846e57ba89e58eace31428c32a005ff5793f4071ab05412ed9217d436c3465dc51ae1b34a58e3ec2c144c524d051e8431f885c01dead4078286fe60e046cbf65d14611ec2b6b48044110f3f8471deb3e8c969ee3d6702780331fb727154dd1ddbce62cdd55276ce24004e581a950f6902ed86f0545b5baca9efddffb5b7e2d7f96979482288a03f8ef6f2ae9022b3f6ebee5b64081ba1bc8196194b14ca45e5e14de92f07f617feee1deeafd08165296e59e0bb645c494f4832472c90ff88a97fa1061d5cda1e029dc6956122e3bbf435d5985f11a4ff0143c19884b699c9aea74610e77a9c861ed3cb9d3c7dc249938d1438139823ebbe891c7eaa11d9f1b44aba9cd4a7a9c413f2c68ac1e9a05b32633ccb2a6110491b291da7ad846966ceeb19fbd77d978c733c694a5c70c136498ef2f13f7c746da68f04f454a30296d5b6c8781a8c35e62ae57f8334a7bdfd74db2e7be049a63074075e0b461394b6571634daa6f3a73c943d4222564e586dd58123bf89456ebe0ca139a0c62799c032daec878dadc90ef105f5d8edec0bd8605313d08e797836c32ff281741eb127b12beef215265a3cdd100dcd0705b22cdf0075e2746e6df74b2ffd7b2fcca205706791bdabc067d3b57b0e36ea82c7ca1f80dfb34de36dde852fa2bcf3a62a9d25e77ed81eee157316226c03df56c51968d2c3de44fe865157a426cab8bdbc681f61b662bcc472a29756395c0aea691f75e252e174a7739240b2387a644bdb76a04ad5830f0a5bed3fb33ead956ac722ed0ed79986a0fcf2e7d9f09e2b36c17e07dfb2aa47a04577f01f425c3d6129f31f8ffe2bba077fa3f39a2e53c1f7b94ca0454798cba4e35436ac5261b5b3d3316966e82a05d87b48fbd90ca5c503c8550b46fc677ba1ecd0c4c1e0ec309dfab192118ef93862088273637b197fbeb725e5352f8857599e6a836c0fd2b16d912e314dc4721222c630a43c77d659887ba5a7ba2b1fb002aecf4c0b2e289124e806f97af2a9ec4ba91af97257801b665af9c85525f9ddef950558843bb9c1a31985929b5de412e4fddecc68c9b77fa5044b99ec0ca88935a9c9952ba673a30351f76d0fbc90549445dd5e2fde1eda2533579546008557d03f67ed57afb95cade5375e24037a5f4f13e004874f30f8fc2906678c94902ccc8eec1e3a0b1f58e92f2d5e312a6eaf26fd +result: pass +shared_secret: 7574902e5f3baae97cbb16c58521bece405f5d79f960bc055cd6f45767b702b5 + +# Bit flipped ciphertext +private_key: 4d07379f1703b1a9ab5db0c82428c41ce768d6518edd08cd153ca8c1cc4c696777345781713b362cb3749ef431f608c050b4256e1ab22476c2ca3c95b6a349cf7531d3d10ddd8a2ed27c8d757bafb05c6d46e4264fa3241f518afd51ba075211dd2a2804db677f372753b3ce3eca0a76b12230540bdba57c7bf313907359e32c5632e6cbebcbca9ddc4d3d415c39041c6b050fc3a4405f7bc780568e66960f71668278e71b7bf953b60c5d93014bb5c700371bce49609ea9e6c54f529643aa9274b3a6921128049abe3958cb4b042b754cc1fd28ba1ce69db8c65d295b819bb963b66ac3fc58554dc9c7b71a14e85866f827596720c4ac34970f55b0a0f889af3a202c9318fb08c684db195b868c0311ad704c5641552555e27741363b7bea9cefab932b301da6592092282f94fbc6a6556f384b3bd1eb814a079e7d87b14d8c4131c458618c94e5245f5097865f975d04425a443ca42f8296206a24bd71533ac0613b145abe569564f82f74c5b04b81af897bc27ffc11a79a8d94c112df930bc3db406c9c9a27c627dfa2bb39e482978a9a354c6933229a9e630568a7c06ab26551d0c5023c4f90d07e80c5aa0f4b07670c4523f142ad383ae3808fedb979671739782881f0e83aa6d49915c65a942077cd722dab5ba599614fb903afc2d050e6827334b408d4ec06b3c44784c90a8d86bac4744231b8b544ac99411153a1540766938120fa46c0592524315d4fa1854bb50eba842612496b2f55206854871fb204ba299057145f09b0ab5b8667f5ab3a9c348f41c97351f962ed0b3a28794871db6168e27b69e27911c7175dfbb8f40020652a4024d82188aa1b8c276369ecae07fa306f358ba120293cfb9e36a18f06078cf9b965e1a6349ca01b41d4b59f171975e68e9c698fa036242061b824db5e74d86e477c42485a013d1270c45839561c9af8ac158b4249b041afb15017d200cfcc6ac785f3318adc7e494ccbe093256b24724ff9b6f98c15ca8841f50c2d1906b5975bb56c27ad6e92c4254b10c2340be31693cd6242be4c1a007103d9f62f6d3068c1c77b478789b7cac854c9863dbc0eaf088ce670196096712c3a772c904fc5caa357626f60142f06704d8f5133e776c1232461a7e8ac39d1004b8119735646712cc81ef7bf93fb3776585ac56a6017416aa1470bf8e40fcfd0b79e265c61e2a51afab61b4c1dc62067f6e685795c45acf17b03a55562115418cb381ca5bfde783349d78a79acc91e0a5dfdc468da963c2c11054833c60676994bbc12a644a86c2a0f765333b9625b74c093855b2487d5cafc65718da6cd21eb69d5173be275adf7443a0896c55aa3c37dec24d511574d1c2c8fc5876bc9941f28a49cdc1137aa2bf045068f943579679df093936277815a758fa6476ce2767080da6b30019ed8a88179a1bb015733f614861070a6d1d51075310a220238d93229d051c32ab25fa69348ae8cb798ea510d760d962a8684798cc7242733171f8cc1269df34398043620b9cfa5c324053c5cd75444d3c4a18dea60dd297fe9179cc4677070970a90592566370af8592ad76753179c4c0b354fce644f8a2894221473ab3bc585324075c57d9e07a4771211bf1412bc9428d9f25e56553bdfb997564866ee083a29981e8bf64c9fcc5a0ed67ce9019361334c431cc6e02983e3ebbd34b93cfa269b4b202fdff84631d27c336a90d56acc3a6254dc8acf08f31d92365ce5389184f7b35df62b2be59d2a07b29ca511a9616b1932ac0d52196c1967690563901b1cea23aeb9e4c941e0470672695304bc8a07b79931983aa31824a141a3590f80a651ff0c8cc4228349d835750cb4515871535a4e879863d6c2a67dc2be51b2916843a4451c5f66606713b9b4a3e6bf00a22e64a96edbf14737f875b7c85320d9bef1817af24b0a0639b0f22b012f386972cb6f7aca389cc44c636c38179673f4e1013e5a963378544dcc0429fa9c5eda8cbb541c88c005acfa54e66339fa903294bb7079f609562a4d497c96c08a89cf564ff4c1341a73666a932ade7a279960839fa87309c7027810758de0b94bb903ce56bf58c0cb301c83b95831d6c307a06c329bf46f48ea61700804f2c03f88bbcc215b3745f75d5c4703389224f8f567c1fb1f0a2c2ab0cac18fd4816fe7be8753011d6955075283f8140f4d6127cde88611496e606248f4bb170e2ca57a735c93103c75c657e2ec817a511242c101e709330c700dc4fc015f622e5b7a0643c20c28c3a91cb72e458a7c3c206fd4a6c53b736036778062f087db81014c321d82c94fa5545fbd618d4815cf89c78c4bc6c12e00674aa05177e50983f02cd1c7bc238386d0a7ad3e998404a409ffe8224ba69301516b31064cf7b666b2b8b8be96a10c8a3288906e99974900e956a14cc12811828fb51b55685ce8cb1adad6b063ccac7298572e165e3b0c42f1845b4df5b845b72cef041dcf23725064628a2978be8584bf1bbfc87b0e42295e73e0007df05ad9e98d0e8158928124caa5944c1b79c5b6060966690d28804047672b1bc2cb3242be2c5c9b8a4cd53aa9b30c5975559222d00a18044646a8608c8b17902972a9fb0888d22cdef56b664a18e1f5689e731538c19a51921111fab6ff6aaed3e701fee2774ec225f27961abb6946d33c524186353245fb622b62eaa36fc4c02b33c6521d44f715babcae56552e060b2772b0b560e80c2146106a1c7ea0009a718d67b8cd672ab82ba0378d17c3c9029eee6b8e34a11a73b1f372c973c4a039893cbb4e84c963c4624c10398eb1dc0aa9c7b0c066878247d1b7aad55ca00738baa34047772afcd5c5ca054b0cc040d89e68730a46737061b94fb0983c496dc62b64461ae6d87765b3729d157519f48aba8478162e27848518f51f329ec05c04839341d62c0b7d203fcb824afca633aa9bd3406253bf11d206ac46163197a674db930198ef69377c4cabbbbcdb2cb34ee910db852598be0c5e1642737910456d577c91c057dc686ed2cc91bd4140ae314e73123ce6849f1ec3a16d3be1f9a2456a44f8ca70e86ea452f14a3a9bc235eea8f8f53a426b1020519b44b594e02b27b108bc3ee5243c5f747c2b747ff7ab42543c27b7a5bc30ca14ffc6c6a5bc0907603b2a489b735605aa65f71450cc5f188b766c636014b36424d77a7afafc66642961bc55a579ed755a543a7ee194a15e8590c58553d98c20a29200201b570eca860486cdb8c5349434085d6cc05e3c4df37c21d05010f74d224e1947c8faa0a1a17c840a55b09daa3191a0b421f4ec9fd297ffad6701c58cc01259fa43f7dc33a5dcc621cfb93206521a2690211868db998834f7a69485ab536f1aa85afd7246d1c350ee5b293c6bddf9d9d6199ce49 +ciphertext: 211381914f3a38f4980b186cb0ac14ae7240b714bea8d7aaeadc7f9ca756401c4d2f63a323ed033ae28c1b652f62ed7ebee0ded16fbee5f0c8fffc563e3ceefa74c6786452d45e00528c34d66769bdce91311750560cdb67f30790973701fcf3c707c672b398c43f656b01469c89bd8801f66440662ffed68341c13ff76664192f74dab5f35d191dff5c9347a65e93168d173a683960601c311562c5fd3ac77b8f4bcff8739bc38fabe0a1d92bdbd1a6f7dd75502a1953ea7c7c1610c90e1dc95592ae4e15e639245d1639101be9d8f5d067e944059fffdf83144d4a0438379be0ddde7060e736a424776085f7e318da6ce28c29a220c22b7b5f4780404ae57144d38886b94c89bce83d24b5435195b574b16f8450938b4b357f9472ef309304aa6e10b5a01054446679e86e162352e5b93e8c3ea7bc1ffbb685f7ccf97518666dbc9953a8d95df9b04992d913e7a9a6544c2413b349746f4a49896d3c8c05342228f2b557a50fbd9bbe4422979f591f2db954a06094f34fe5de34b581ba2658ffe1d24f4230a20106e4adfe677361c225b6bbf7e9a7b4237608ee37e9bec564a461171e8d8fba11d3d5030962fc35a5461d57c1c4aeef63f651b32bf1c198b3e3a53aba9f937fd22ca77c5b6b0fd0104587bb5c7c553370bd0805b2a58e38b72c016d14f418e43ebe2ee8e56e861e6d24b834124445198303ab36a2fd1bcf68ecf41cf3cb4d431eee43015d373434d0d2210839a87c0f92b2f66569c72f28e489134a46d6c83915998fa07144f6f6a0cb59397fa1a875f9936aaa1d3c57b32ae53c47216e7a158e795c97ecbda0ed91f4dc440e071601b1ba54c3a97d23fe513cc7f5d8c29206fbbbccb5dd447a05457b9453fc947895a0ca5995eec4292b9049a9d51010cb20c1e8bb2c3724bbee2c8f9bb3e09435964bd9ad45bf034beea33cbf9f949788a514dfea1f43319b361ae77c758e228eeb4fb591eaa64c2203ec098e4b833ee7c24eb07cc3f0054fe9fe05caf0421b2958a469b86bed766bbd131e7051e45a36787f2376f397a25fd17e62c28edce0761795a0c9757bb3511146fc9b77b97f37b18b8e29a29239fdbf5150c197e9523a315f0aae889ccdcaec4b80fd62bf55df5ca7f1dafd4d4a24a9140e448da70e6eac3e2f40286f85295c7fff9a0e551eea47fbd4df40c848006b4e5f574ae6e3ff2af30890288eabb9f14873e79d816574b1cc1c1d8b383c3f6a26c662bb8f1811d4859caf572b188cffb25466c9a90bccf7f4718abe023dd349828868f4ecafb265fc5fa2831261c97fb28c4a23ea4613f5f3d3307ecf3e48060abc18232b0726330bdfba924dfdc125da665aa15eb3a075888586d8d2d206e53bef5f940a03e17ad68eebdfcff20534c887daa65263dfcc4e002f14852b630d0c62de70f6f142d8806fa5532708c16b51bf545b7d61c561e9c12e56ed82e252a4033184b3240db6b151ece2b6a7df9bcce77c6b8f4420b34b4b4a22f57b2a6a4b770376bd3cf02f15a96746ab99ce19d7 +result: pass +shared_secret: c3d3de7e8a73ee49c43244e9e97032d4af6cf0d6898e72f0c4821096bd61349f + +# Bit flipped ciphertext +private_key: acf0b6a7b2c487920142e3a5afd48ab700b371f43ce76bbbafb95c88dca20ab64cdb59259f707d5f265c08d16cca321d09f0652e56b69ad61f270455fd1727c91aad6e08b5d417bf132366c5e29f2edc601b3788ff4965c82918effa192aa768a44875de25527cfbcdaad50862f75b4e530f37a300abb85159ac505539ba82b70b0367c830cab1dc20aa4840487cc5c262138e14a51a0304981fc161a8382fd04688c3246375a96be6226d14b3145234933c85b0877a4c8509861128b86d81bf8c496daf898c67569de4ecb264a93ef5482f9fe89a397011fb607036eb0f6da2b535899019a9763575aee3b6966781572ad98cec6713d76078ef45ba446623de745736fb314337a1f3f121f71094b38572ac350a5c12b5279198b6635445051e6d251cdd1a0996b6906da46d8b8c363ad1c19b89b5fdb835e6bb7bd55c5a6e5733c0d712b323c411f6223a2c76542551c50229ada7a2eae65bcb99bff7135647bb5980cca591a305adc89fcdc43feb51439a2926c50a39f57c284f2a309fb5bc4836c6212c2802033b0dd0090b2656303108576256440993419c97c1333f5458af8b38238889971f66523c4c6f3d107d23b872f81b25e0d50191b9cba9578f5a15c8b6723704a49852c3adf2d530bb2682c2146f30f3c2cd53060f0206c9ab815eb5c0e507b26a8463d3b0745849b3b6bc4bbee45fce57cc333b7ae94c27ad68a1399724f2708b3a6b9130d47daff900ac9c281b42abb0f670c72bad8e57b364ab9b2f68686bb505898328ba3537760684ec09ad34da1e3b47c85882bfd49665d4a030e8e283522b85612a29dd03a3ffe31bfdfa184cf8a9f6128dd432b561dc8bf51533107814741917e96284d8b1ab75a7ab5645c9042070e019451e9421938964739431c621c9d0a9c9b6ea0eaa8cadb503ba93615a23fa44671a5f5da4a5a8770eeb6b3ae8fbb771b31338ab07343550bbac8a68040691cac42932434306189a2754c6721ee4ca35d3ba4a501b755857638cf1b287a6a7d3aba4d7e01f8587c98502a07c22187709170df2be5c353ff41b989b567493e42ec38668b42c4ebfb304a18c4890f85977e392a66a8f051c04da44478b502e7c0568f41221c0c3a53a9900b1b9094955b8128b3862a4b0b6bc71c532909fcc94a75697071662f4fc1c789cca1393971d7870c87c5d280c746c459b965069a9648df70b03d0aa7c8aba15cd344d8edb0c47f7431cf49150e401ed389b3d84c208441787c11d6b9a09440b778179b26480a2a6b377210c3d7b46bb0eb20f164c5b966359b7730653cb8f97629c6f798535d9690c3590809bc07eb6b7e098b4fe204338d6626a6c178727ad0be7654d8a5f83a1a45e6c2656752d1c3625a047b9fb88b10ae9674c157c3c4c67d02392982ab589e83717019b06f8af5a87a837452d7a470601713c081b920bfca4469a5f16a0bae6d53b4ce319d47214a39aa2e0c1341c8c237359a3f83ab9c3a25beaa4a6d872077c136957c933b6b203566ac80649a209ba2b743282da0a7d5e03cbc2982c066077a5b739a63b32c7180e7b086a4b63cabd857f72584237749be7224acd3c0d1be466440c113a885448656d79fc8608c343cec71223861320023ebaf4cad67811b05c0bd732a4cda7c1f8c81fd0ec136789af71e7ac24e40f20613ffc207e9d4231fccba9cea06e647517856678c09176829c69bdc24d593a26c757cf490aa33d7331c75161d553c2535bc4e6f45144c154b53154423bb505e548ab001adc7454cc195047bc03eb9950b097717629c92324ac862a8ab24450b13762843704d285b331420ef037a5c1270bfb8390ababc165480b242089dd33138f56bbfe0cba199778b188782987a5de695e6cc29a91e77480833fa9b59603029214b25ff6fc49465b036da523c578578dc48079883cfd25bdb037c7dd6889f6fc73a6543c53d536c0f8256856828a65a1e7d06620446dc4c7406152aea9c39483b860b05622f38996be235514940e24381006a353ffe6634932803f1463d254384e2117e5114d64883da17067603c0e32d5b7bca8161644735ba865a84267c06c02f7ca92a2588395ea117f150cffc34c14f3a8f6f234cf25225d88876e036e466676970bca33e23924d61cb0367a70ec4f11760b8f856ccbc9afa8bb2966686377d161181b5e247018023a6529ac3fb6f2acd6a42455a10ea9f9a409689bb247c442826edda56afb2aa49e9c81a90c7cedc96c97196c333b213e446787ebb8f0b64fea52b2052cb572327f6f4168a8e59928e5b4ce60c384ccca554124d227940f4cc0c405482d28a783386d41450066e961bd6a2531738f84b82f6375699fd35b0c764c31085382732b2002b3a37928ae9849d69c83f656a691d2995876099da8533d284463ea08ced96e65f90ff2b72e88d03cd06768bdca549913bf1c5c1035ea58e915c52ca219a0ac6497267c07a5a995b49b94a978381c2a557c0e8d202c32d1b0f83646f3039d64e0c6ce4944181abb0b069314d465cec3976426639cbb2f243a475851c504b6c8b66932f602378bb326c85269e40234d06836ffa784bcd26a30430ce295b9ffb2702e340ba4954084a5880f7bbb0104bc3e73c4fd0900a036a7883320439aae54749138e5c54b1a55fcd6a27c0629e51837f110555d74cf1752757aabb3aea3c4639ca3cb4223e6c0cc2e849745332056b843e7b0b6b63a4f1dc0424c4bab658a1ef2565e11ab98aaf00caa0ab8b1008a2a7b03ad4c86b989302fe0a76577a7f612ca45d7b98a1b5f5c20c723c1cd1dc4820cd32d9294c3bd6aa8b8a96901424b7fb69ca16b51c51264f9629799178070772a304a164e28bfe63b0e789b146f26863aa31a5200cf36a74b45b7b2708b7ed677c47492055e793d654b5fca260baab98fa1f50e4557997c7845383a3c4521885fc570f0d70eaab63866a179cad216f78722d3869b28f4ac036345d8c1c9df947d5a2155b31c98ff2b608f265070aa8f6cd63589c5c7f656ca01162377360bd6c9637511943155b0506a892b599a1a495e25304f2ef3b2dee80d47b57e5ae2b39c1907a4d77b1365c2f3eb66dad40d2ecbc2a0426f127ca82938b497014181451f902b355602797d0cd01503a25744025db12f0a6672e250a6cb4333cb50998babbd01473af9f5397e816da21aadf3009049c356e8c4b72db64a1437c5ea71ba7c7c776b46c4cd46b1f0e96d917580dfab4c36f351a847140c6504ddd4987d5db6b2f18f4b01893411dc984bdc51253178383ac2885c8daef5c03257ba92b5529e44cac448a063bb8c5b2b540536017e176514a29206860c0e7aed3987ab41cdbb2d50a62d85e38482b01af69a14890e73789cc93bbfdfb192eca7b1f8d5 +ciphertext: 2179ea5bdda93b932b2350fad179131a81e28ba77e801c0b655d154a84224eadbd9d53fadbb23677061ccd4ebaa86d140c0b707d558a0a95fc15e038bdb161b399de90699108442119d4c7ee060db4bbd012321b019b90f68cb16ea9dee5d887e2af20a076fa8b34d978c4cc5f153d85b43da85c7c0579726bffa3821049d9af853dd10ec3ef06c5a0d03bfc3b168fad552328fabf6a46d3368e9bd8706c88847964dd4c710bea3337cb50d291be480601ee8bf61daebd52f76b9b18d7947d777f5a14fc60eca1327c929a0a23904e9c61a99710db3b86ad00ee2ea786a41bab1b05cbc7480b2a2cdc5f2fd56311ba5e47ac7a404fae36d9ccc614c881dd16f9e47d3c0a6e989a08d413fb472502806197da90611c2bf2e906c4d51939913da30d6799506f4a38c05d4ab9b089254cd87770eeaa65e31c1a2bf835f6abbfc96757275b92e692307e368b23482cad3c553ed99b164dd70501284bb7f72f409c4a03d7d130f0a1a4a80d5c284baaf2caa84014a84092db47541ac04c76a2c5d4e8e5ddfbf8691ff20ecdbd6e4cf2aca0edfc1597963640f7620b711ddc6ab7c740c7e4fe5861d32e6daefd9ff04d3168d0f88129bbeb07db9e67830e2dd3d7058d1376333bb8917210187a09aec2f4c8991de07f405c3a9bbfdd9ff687da7f2973a837dec60c3102394845c8caf78761afcd01dfa71ea140f58a75c948abe4946927301f663549f4117463e486360b9e704d29496b92aa40560276ab434db3fca2fdeb358d0148b3a82343aff5673a9d2a9416bec1f0816c7680893d74bb3bfcdea709c7921b425669e43a0ee76b7f31bb49798a8b7b11df068db94da9c1cfdbebc2b2aa9976ce2e67f408e2edad233549887f703132396ad5e956035fcb4511f140fe63c7bc402e08239e45fcbd64db854a2f292ac1bf33e7f41dad14cf3b1f2fc8a104ec2138c4aa6be32e96814a8fa56fd7e1f5e85f8b6989bdea9f32af37e73c78c6990ca8ad210b7159a96b2d9f798c85b1b7c8aac71979009dec29431679b131c66a4ed1cfcbc78668c59d01eb8ae29228d23368135fa24d158afec61f9c75312d2d887bdcfb09492284441c2cb7cd19a8f1871444e8bb7fb98f2eff695bdbc76556413fecef673cfbccc24e7472f7af5a62b6e29806d67325e03a459c11ee10904806f7be63ce623b2e7cf85d0935eacd24b3055b47579b7314b1c73603f83afa69539ecab4e1942c1bb3e26da1125e85d5a49b02d7cbafda8693d0c3e0dfa10934f001002c52590dc7df7cbec3722a58d77e828f1087eb003c67bd251129723242e822623f86f49703bbf575733a17e63bb4a8466131d829a377a7296e95a14bfc2ca17230bde0afb5f9199e9f7992ad655c458e57c46500f7f84c92d58c3a55ce4c0cb2cf8992d66949b1cc2f8c21333704a45ee30fa3d4ebbee75c0c5cb873e354375a61a76f4a7a78fc788b3a19d9ddbb85909baf88dd06f33ba580b3007cd45ab9fe0a32ef79f69235a0791f9a7a713e3f433e9a7adcd4ee2ad3db +result: pass +shared_secret: acbb4c519a7f495fe3fec1dffc2db71ee441028f7f2ae77cb379015e414d56a4 + +# Bit flipped ciphertext +private_key: a0a987c353709ea019be302bf2e9516aab92fdb2c233ba0fd932665e1a89d334607b71b262047c669b1f4af803f9494c394c8e81c97039569bfc9c678804ab99c039a2fb2a7cc5286839b2a268c322e59709d78fadf427f63a21fa345acfdb86e099aab5a290adb6afe1511db358754297ab04639974a9785ec72dd8c0c8206591f74b410f3b3100353a74974a60b766af55b3ee6c4b19e2360c93aa12ec41688b46ad082a99f7802284b6e7335bbda1cb87279a16745419b664d4b693e6895a4d094f5721ad8e2083f09995e5bbbd7729c667e04d893569ecf8b62dbc015564a1ca0651fec9c61fa7cd90618aeee5645cca0720656351576014a8c375e281ca6823b5b66e3287a30a9aac3bb59a93e539fbe349220a56ca771f62f31040782ff5b31471488cdbda8d0e716c83489eb606c862ebc1f280c703da522e78625182c462d0bffcc291e550278a8563ed8b74d6a0cfb7117c34412271e43473b5bc7d382896f26e0bb9500cc53d5ac67094c28231ca9a59d02fcd880783c271c6fa86a3d7872946b1138762e9621cc3b70297559aa2b3b9d1467a82f67fca9772c7e61f65f87f61e2383394048b744fd5755037134b10e9726d49713033579ab7999a29819c901e4b9b323e101411240778fc64fb9ab922cb84557b5fd1a7c8271588917016509769ec61b6c3c3bd5a7c534345113f67b4db309f2149b4847889e4eb570079183a801e6243c53e3aafb3790c9a6c70332c5006b9a577659c7c1a3f7fd4afac88ca49fab129f0c566526660f3779a62aa0ca33f8ea1ab894260eb114b5746b6c1955176007bdf7bc4f78c013c1a347e87a248214e70e9a61ab955365bbf44c11bbcb9635839b937ca016ad770f094038c5aa1980120799c6cd2373ac66ab9f070beaf952f17f5c7153a75f9c69502347a93092116a632b2f73b9b70188941420b535180b9cfbc2033dc13827b8b8fd32cc43ff265f1152ce0d51069287d26781afae947edd865f2c05c64927a5ba3466c4473bebc1df9a45b58a21011f17b568b9b16d50d4d953848b8824a02bdf3858aa5e64d8d9932ccb79e6700a3e5a5202616786a237c80209d43bc61f4129d37baa25f64aac616ce3711851368a3f2d30a91ca7d3044b3c4229816634b97a50cc8861712d5384ed46e87d2177b7275c599a9c7959b7294af46c47d5ec94b4a513962f8909fe540af5616faea565353a9b8568a6c9330faf49c5d1742c9b09995235d687c8a41806296b44d348112f15b07417610d7f66afcc0cb04844aeb49ad180706e1e76801168c9ea45a9a224b8e509cd82a9072975836aaa37f26264611c98174cf7a78b5bca66535b1bcf38ba5143931f0cb8ece605bd8c015b8a22a01310f79a06dfdf925007299eca95522147a276ac2bcc32bb2b09664386cc926c288b79e3c1c532c46b1391b8d44f5ba7f2c8f98c08311631f4806bbe9b123a2c81322f1c6d4e3c8bda03647e3aaaa0a1afbcb0098653e1c978693f12057218b8ec072727910221410f282768b7b4a4c4286d9d4665b4c6913e56ed11bc9bc32837fd14a4410c792a65fd5eb7e6f27093f92795d41acfd14729a6b9cb37494c6f58ba682080a4749f7b135110694acd3bf03b14fe306051115463495a8d6131b410799ed9a9d09c7932d74b84e3c76521192210454c9cb357a290f2d737c48cc3b9470873a42b19eb2458529882710ab14b5791df147fbe8a26785b4e8d74a35274fd793b1cbdcb09143ac39a111d8c71b94ac3e7963bcac170214a0733b15ca4ef376af7a1810e6434ebb95987cb536b40fd644ad88dbce6b359efa10c5076b22b972a87ed6cb20dcaa9f9a9b0ac12c2c6c47fee7a4b20646cf9127ae570e06aa06ef478de6e472c0794e0cabad83738488001181d72dd63b8cf9884584183b895a5bb0c2142fab16b6e90f3c36b256b942deb2b3bf29c8f889c838f34d458a64d551cd95f61e01d9567694046e9a553470008aa125518a677c881b868b185b065e7a5c4e065c941c48776944b2d78789ad5349ac779950079afc9b044ef6a9a708a0167740f5b45d503b3db2982158d83671f37f265459f3c7a8ed1854ecbc43148c6df4ab9709faa35999ce4912c68c58053e00716c80987651a2bdd72057b2a1a220356f23a068e46bdd7cb52a534d43129a5f063bff4c0949807193098444a5a249844aa0d50ed4833d93e0397dc49c4bac5ff49099e5fb57af023631f7b6a987b0e14772cd33433bd89af9fb1e13d721d36100c09cb7fdc8658974a6f85b89d3d9918a05cb2e6930e9d7265d407f38e132287c4eb2391ac875b0373084a3b540c7823bd9cb91e9534be9a23aee8c449122780ec67145200088b22c4fe22c132a3563d52067c542d35a42824499dc690126844daec2283493590ff3c7f7614a57eb1353f1a6cfe45a903625b3ea599c4954750c2562b504435c81012a202b9c6162f7252e704620a80ddb696080cc721e5868aa277cd26bab578a029a51c22f16437be320195c2c3d321aa6d197ae5cb568ab751bbcad6d60879136502b00cfefc9194f4b07884339ee460771f624b61612e77588766715a6a725e0895b63a4a2f54a1603cbb5297cc0e89213582a8fbb4c635620c2822c84867334bb132bacc3c16859bd3f397f02eaae95168c3fe367c067c6f4e260b95a91dd1605a36bbcd184bbc77a5130917d7401841ce3bc6ce6c870ba15eec3005b6437a1c8351b61824e1659134182330c5a02250b34e30e206bc64b309ffe5a930f53571f4c028abbadedbacf4b6a54ede415bc90391cf99e75131c733415124b1eada42b76e96a3ef8bbdee21836b3646c5ac6e70065fc2c52414a64ed7476b640270a9701fbc61a4978c076b58e2091907528080a168ce9a2ce9aa672f5846c80f99281c99ca297368cc8b6c7e21e28083c09a140ab523ee564cb3060039085b906db20853a9ba66011bc060fc9a97eec25cf34c56a9354a2fa3cb46f82cb8c69b1aa6c447fa9b172097bf07ac8718606756ba3e3c9cce8dc2a9558565c41c0e7e96b84259f61e08eddb967f9244ef4e461d5600be8a1371edc71e6678f52619625e84ed4cb7beee25c4d68a665bc246b3351cc781870c760b2fbc2fb469a42e02c47a6b0c37ca248373518d467764315bde763988005b3e448296881534066b4cba4113335c4650bac7829215a468bda41ef0b0846819aff441d231c20a04290e986ae18643f0604a64396057ba99c65086a222f52b4dc061e12bbb25639289439ee97ecf6350639536761256e1a13f768b15a0e9ee3566aa459d9c5255e8b4a3f31c88f61b27a2f29ab854d7595496b702446d5653b79317045e807ffbba9ffcead4faf3288e5eddf041415e7a6590fe691 +ciphertext: c595ade60560be9b568600c9dbc321096c99dfcf841f6d2677f522aa7a237dc4759fc9ac301f14bd6b86ede4d9c7b5be728ec97652cb572b5f3ed6e79724b566546b72cb6aced191cd3d933bb5958ce4553cebc1724e13b1be8f20fb19842e92408091ad7a55bd7cd4f19f7a4504096443ec9218cab541ca750f89126a6b0ba47434e7462460154e16121ca3e58aea045a2b78dac37f6e5f6ff7b688c57a17222208137f32bb70f9152085c13c3a8fc9a988bcff1adba668b8f9c1502ff14f4977ee469c1984e3804f80256125833fdcd5cf63e55a9cb6d2099614a4c14db3f083171fae005b3422b8eced46086f79f922a5d508b12cb6753f1ddc0b67d76adfbe9e9e670b3daa881739fda1831da7e2455e63ba40dcd01bf76f22e76f0bfb25e170a749cbb195fcac60314d6d430e87654eb2164db4434f2250480a0c95d5ab6dbc46b410df3b060f614229efef22bb4d1e0aabb400b0689507de4a71b07e4b691a8f1af7d786147fb6c0129b2c4aa98307ee01f986885826904fbdda1b52bba6c227eeb6be3ae82f1eb4299e7fce7d84b36f8e33f3941f29389a23863b922da1f3a07a2d2c7a7bb2b87f6aaff382829663dd137771fe8552723e413deddb4de758d527ad0b7140ee8a1e8bcbe5d2b51de4e0e8d0f04cb167e69652d841eab788d23420a7f877ae8e070499a612f9799ff4566c68b232ca26d39f93804848db0a09f4774e452551aba18858080e596f139eed1b2ca0aeb6d0c90b7904a6d5c5449f66580f1210fe9301a4f02be681a3a57d94ffd62c88f9a2e71fca8b46257faf593e6e07b8ec0f8ebb7a8dab422ce2c4e0c5e15e10086ee0cf564958f7786f0b9708c7a15107bd23979c3155e0f9604d26a1c53c7fa0875a73d11644162190f238e5bbea38d9b6657e621df799248245dac3fefb198db7a3097724fdb91a6cea0d008450927a1abd99b43aef10f7823fc8a7a8c052cc3e256a279089c57b84800f301b5cded958c0198277adb1f0458f9dee75ccab4f8fef0dc3a0ecda732557c1c069b9b6686b729fba0e5af0664f0b9e6ea287a77b4faa71a7edb27364729074f933051c2b931e54e982d95495d5ae5f08a25ab86e75fc8fc57c3b116236d801b7e66a8ec48aef7c775bd179ca25d1ce4f0de6a09e3a26c2c6561691414fd884105d8e78e8797bbcd4fb6afb2aa148ef229cdfbc3310ecd0d5fd8f2684e5a6737803594614d31bd681a30e65aa9f6236b60dff5d404f1ae113c9077bfb3b43d12c68df40c46a9c4a65202308fbf8d7cf2ba41ff4ccadd8865b5d6a64faa3977f3cf1a58e76a70c83e8315cca6bed740a8730d375a7f024e155ec4ec3692951fc87cc34be14a67a41804d31d865a3c2844e5343a3b314d05e3d94960f8108db025e6c96524e77928cbd6bfaaa66f8e3166dd3ddcd7aff4a8629586fa44fd89c2b836da6c15e56324dbb7448deab4ff16bcd69f4cfc7d7a2df9b911ec3eedf6a8a7f7013059688183d118f4c64c0bd41352d06f02c2afb4488b0b096ba76de +result: pass +shared_secret: 67efa9e9d933e418eb2c7a07ac2b8ba1673964b056530046ec8bd152e5cf9b4e + +# Bit flipped ciphertext +private_key: f93a34da82bd58c8be9a7c300a19773eb63ff9631ec824ae99470cdac5b06478cb8ab4b2e9d4201f524d1e669c4f76c287e109c0fa0ed101303f86ac07d5c35de5ae67a4420493c37d640de8ca903a245f54f4c2fa9966929bb381b6334545142ffa73800869ca813419ba81e157c672ecc2243c1ca77868341553009d2d8c812c54502ca29721ca5b597b515fee1b8ce0b4a6c8f1553d5aa77409560db5756399792c48ab3e19b3a32b987cf87bc7482c34d233b102b8a1e7c4798a8462e70bb3d62bc08a7c86f682e1645c391764aaf91f8af78f98f71b7447a85e5391819356fcd26fede59c47dc6759f48429c831aa5472c1ac3e494a46a6859f7b2977175567443b8e45119ed1e7c48f755ca9b073ea0c0558ca113ee612a7807621aa39234748cd55b9cc959bd92300e44c10a89454a93761d647842c48b46ee5c8820340fda634666785daab4906b31159e5bee398835e831cdceaa8b96c1e62006c2e6722de851849250c210151c0861562c2a455017775400d52ab94c68c656d37c6f3976a2c4100723b795fa7a77ed78a23e358f8e4a195b293888c30c08798eb446b4d26a906f76b583c35dc546101a698f0c242af680442273022e2a95d5bcae5c7b6a580c7a25671712b59341581c16b7a2d04658ef9b583a64acb9835c5a03c96861c410496ac8bb009b45d6725b34f7b36f138b4e91172fec13417f728fdda5bb9da9a49f7473894646c55c53822b90c07cc8a735d4f8a025765bb37982e0139c1ddc38f993a8522217ed8f30503a54483da6a73398d9c43bbd9088d0801a3e8e164d054881ba4b2e9e12c6487a4460b269b077dbd784e903b23de448a449291c4537018eb0655f57d3874bc64c1ada6ec4427da1c4a61316e2527cc80a859d893d1300065bc1b5676a4102c1e811112483c04f589854a5a791c4653a1acce65d6740e4baf1a9b03a3212c776ba01be059845c6860691f71059d9bac652ec8754de45cbf23647d18021f107a55bcae89128c7e68aef3e4bda7a8c85230bdf4a06475a96470932d44994175d5cdf1e45fe56298034c51f2e12eb1508d9b425f1af6999f810cb3b5a0a42b607c550f44198563d8c13ea9715683bd56472eb46791bb8b700486419c05395fd19204415d87b9a2fd722fb2b742c566827e2777bc2abf559a937f77969b21a46569ca7358b5fcabb2f296a6358cb0b511120ea99c5d200b75215d63a24e9fb9c21a3471e9926b976095a01b6f92d990a3d6837182615ef75a9919cdca763fe6b40bf2663d6b2445daf693ea3b0a275c55661994ade2196f9390756a86496b76abd59df8b93883fb3216e36b0f586c598c8a6a251644184dd1d0253c1591170943e6604c5157792e988367ccadd490c97e0278d7653a85473a07c1c273acc4d6f4c9bcfc0c285169b3d2709d183864f939c39b443014397365392bf47d812165d6d49379a8643d24bf17f9cf73f48063fb8633f63940220771d26560e27dd6e067b0ec80bfca563b3341f579aca0b478e8232864650911b76789e3ccd44b98dbe56e58918a22c8b3f9db3496d0b4f1372be238025c93654369314d6012e6f37937622b7f2c5becb12ce68878eba43cd63abda428cc4696a46abab941188077a64909b40f1c25ca0d504af5e48f073c6a42e400f1234901234f3942031604195cb068cb69c11238c33e076370f6a668064acd6255559a0a245c15698301273044bd34631514bc3ee4701eb9bde710761458887312aab7954297e1810476615942bb2b7777c6d91f5850cb16a15bec05c2dbfa3f88a2bfbb6721fb192ed42068ba945f80526143d763cc285279c48f472155e45a95b6b8c469e108d64904b62a52eed19361f0704d102f47911273c1ae308ca1286143c5c060228538a128211098a4012c6371426bae148388f7ce7eb511ec58a8311634dbd947b790b6d2ea4699f579cb2282f6e9b390755bfc4318b753ca3639a72e31c69a3115673663f336620af04892814a4d37cb7b2958d0751d87e009a9ccb5ee6ab862a1132700c352369536070a44f400d935783b987367c676ba60934ac8a4f4401e8ab3714882a5343cac52b431ae699caf14b1fa585669aa5339841d67165571d9aaf311052e616de24526fcb91ed84b96cdf9b4fdd8328c5813ec818a12721935a0367184cf86f435bb65a4b74c1e25111c9228819612a2891447fe56305be23e627374cc49930b102b9c4601fb7983ba0ba42495a8d92905d231c885f9c6fef5a213d1c7b3fc5b5f52ae5145bc123492a44b8afd13095f091fb73824f60071707997201b1b767c69156ab52ea98101088e0996a015cc16e95137ce729ccd563d6e02a01212539a44321e070e4714ae92e6af931cb5015ab96d2a727ba042a66a8963034616fcb007da142699c2fec7cc2c11a0a5ecc98c0aa2c2c9aba291907b09bc408501b515b4dfd2531a87021a088cbc37875213ac86c9c51765136fb4a9a3d9caaf4a5b861880655c9e5f509be2b96f13c7398c09b990c54dead456f04972144710ece1cecaf853d2bb226e35cd11a672ede78c9fe8a20e020500862210e8c4a3b3473e21a2b39b888fd17497c15e2739920b44ab00857d682b94233527db012ff07875ec184fd52ca208d64154257d5b755ad31baf9760885c4c53bd462aa57a4f8b911911b4afd046426ea4342c9aa970ab525995a90baa3936dc909eb29aa40479f1f6acf7d298b65447976487e27b38b5841d9de74f284149d87616f7360aed7b6f365a74bd217300ed702174232a88a0a0fbc59d3287b6319d37e873faf06397f503684a71698b227d94b1db905db540bbb0dac82934be9ba5cb03427ed1fbce1be0140aa7b0a1e322b3708b61e64420d01e8664250a7056efc40ede1910303631cdfbcbe9124fd8b3a302d9a3876291a4197252db5ee4212697191bd501a86dfa011e98b841a97e332914ce8135db5a8c64057842b466e7b54727d94686904a93084462fba0108780667b167d4bba660bb9db805f37237c51741584a16eb8cc56b2a98e2ea4c03d1b5f223a5f8dd6b2f4fc3f3fc2c856444025d1043e1348a1ec29542934e47a17e02b372863b1063673269831da370cec8a4104835df2fb6fccf48e5168c7f090ab64d79bd6a520a7fc26a939be55c7612eda70d96912080c8b963297f80104d5b57952c0b976f2904b726b3cd4ae0b7bb3600403b4d91cfcc72fbdccb32c477e50b7a198cc3a95fc0755c6932a184d94c72f1bc481473f9400280fb102da9ab408023e11c6d096f8456a226d96a4452509602046ffe11099c758bb5588332e38a8a436c9b9e81738efba08396a6c4600e4912eee10aa277a5bc25505fcbcaf9a017c9aa66bedf10ecc5907154ba75d +ciphertext: 730a15d5a5a3cbbb90726d46e4b4fc662a1dd502b31754803c87aa5594165dae6146d56f4661ffb25abcaa9aa830e262d0afdd72a32067c52c51842e857e22bc375e90d783a22813562e42fbf24870300cf26cfb38e4fd0d2e3b9efd61e39346571265aab2b52a777f98143c32e3b8421ced5b3ee024bf1d9d6dcc565b503bfffb8bd6ced4f7a156022b3dea37c4dd0fa8433d3c71494cf0a5d5ab7c3a2a7203d2eefb38773ed3d36455867ec3d5088bec82ade249c971053eb0445a3cea079b61d543416fe71b170044603c7c5397febc97dd8c185005226246e14d5fc09939c7458c27d88dc3e0530e0dad4901cfa1c02f7a646927d65f3812ea0e9b136faf5e9a8b9608c9451a061ad04b070f8bf6638ad9b5d4a82c78397429313a0873790e7b47933b027ecb1f0ad7994fea752d5641be5b06a77ed987fd2a1f41f3a05546abf6d0aa8bc9aae8a66ff982647786bbdfde07bbb7a6adc17b8c56d48707c367fe2055f1f1fccbf407b5090783b2dc8391c0387506ac307fc4fcb029491a97437a1b501c9f7625633c6ce0e83a21a7b7aba296ef65d6037bf63e3b95eadcaf98cd2d1f971c86c35cc2f350b733fea27a005c4aa3b5ec59cd3d3ab39b1a92dfa3067a421704e1d99d1aca2fda0060f5d96c1085cf5f38b25b43b68c140dfacd547aeebb65fb7af5708fb737234494dc4334b46f219b82911f1d0782990cb69dbb7fe80593b0108dc5602d29ca8796feb128e4f93ff4dc0a99facd0268df07ccc54a003ef60dfd98c1ae42055329a9342a55bd555f0189018fb0b318ec0473adf9452a17318d4ddba332d8011beeb48b2e24dd8caca083b24ec6577ec637cc031af261491831966483cbaa6d05c11cee9a40d835530c7558eefd85267be3ced7225b93407e6cea997a277ae5f344018adba0921b2587a3bf8baff9d388368c9d087155a87b0c1ec746b8d18871eb2fc4c41e50b991024d816298b8bd8c515bb3d17e0daff751dc76a02061a9c17010ec196fe6ed0786d5f5dcefdb03c5a559593e0abefc0391a10c0ca52d0c291cd836ea3acca25a3b3057e02872a0d79bdc0faa10de532979415308fc88142a461ee26ff0b78181ea8395382bce438eefb8e558381eb3db844d98a747a6db41ec2d6d43cd2d6bc51de2a699254fde0980e0ce6287b1489ecadad94482f629004b1a7dfebd1f48f6b5997a59d6de4c6f3e68fd8cef1c014d7b7ad4fca70c402573276fcae7914f93ef3dde8ab56e1f81b38735394e365bce6c1fda1e1970e6a427473a9e8915fbde312969ef689dce25d9abf28ec85ec57efbc1ae5ba0fedb3cee33e7c595e86c00d998736e9a2589843832c57f216b25f5db32bc014142a672b734b12f935d09cff6796b22ddb690e00e3c3092453ab45528512ddb9f4c10836bbe2f30af45d670591048a2bf9d6779ca10cf8d88c2dd9d6b3217fa7db62accecdfc1583f470a2d46cfba3beaa8a032d5c3f40bd0dce231c407ab1cee868f16afaafe5234aa237170093def8d252c3a71f68d +result: pass +shared_secret: fe61122c2de55dc4f077f00b10b4fd9799580aafc85947e030d6f996f2797c80 + +# message all 0xff +private_key: 17ec419ada2c0d918b5567032f1548c1478b029621bacab901c8031a8014d7f1335e79131f2ac7fbe7c30553649b0b305a1695cba670a8a90ffd980715ab36697b21ca0a43bb9b4dc33ca3b20c2ddc095e23ac6200e8542ff64900e19b69a242aee490e5e08331da623bac61193a5ae08055c78211bd3110620855c3e879729c9d0abb5986c30fe02a3e2e6614cc027a03a29952007e07c743c1f378e0f6cb50a334b5ac1a415665d5b310a91a8d480a5e50450fc6848f4aa407c594a65676c4c74179b1fc4f8b15a8234c85bfb61dd5b7b8578a87b6f4a4fb1a8a5536202f4b211de7b66489c589d16a57a6bc56b6c47654591a234ac4c2cb72f49a356c44ac29142701046616a1695b4e9ca191ce58c5901ca792440c8f8092b8714464141105549795e392008763c8a059087249e5c652e82a0c4fbcc2fd8a09b6d13eded3b994969964d2054a6204f6a7383bac8773e8934679c48926b909228b59e78ba2eb26ac553cb9b3a8c0b0458cab9b19f840ceb5090dda91b26a83f51c9eb4a75ca8829c56332860017b82c3a26600338d7c444432c0fc709e3f9767064b638a6c0da4bc1e74a60265c69ee2abca73841d73296f6471afde11a15c60b949a88c197c5fc9c2b24f89c91d995b1ee40e749c19c4292d18e28adbb86cea7704a1a36632bb9e523c3d1c677e243369f53527230088c2e73476e881ca696cf23a4ebd29633256150c3371a19616b117778b76806112c8b4a75aa28c85eec1254cb8b2dc36654d45901581661660c167f216d3a34ebe3590688b738f55a976eba4de297352606f0bf99fa0235a21009cfd302e37938e44e16f80b8abd2b62eaf41068437cf1b02272e9a5a5838193eba865f0696b5cb9304337be5961d4b835ef0ec1cc3ec8d6613aef36c3a512773fc9c09a2dc0fea5110abc794cf4239a0fa9f5632751ac00586ec8fe4800dae5b58d44774ad9b17fb65c9e6faabe2902d293347a75c9da54b33fd436571c4963216b876153044414f3116884b389a7873b36281397b53a00c1b218b6010db253c984204e3e81ad04642bb31539773af30c0707269c3cb214cf59733bd3109ad190ff7599a8afb4863991feee1bbf595459eb6bb771b1749d32d03a3aa56c0c4efa81ef52ccd5c946d7d593cded8828089b97c9b4b171333a047a9a671b85bc64619f741fe47609231b0a661276fa144d2c892693a506e8c198f33c3f1152dbd494136e9b560711e7caa49b3e2cb43b3aa1773249a85be2b6820981b4db6a330fb370f50fc6c21877f4b9654cf2bba395c7300d9b6880c1c14a080eff83f7ec0177770223945bbcd51a5505822fc275b70451113acbe7e656de93c6afb3189eef27ced706f88861060754e7a938dd1669233e5ac5623398f523a3375be4c71798b87bd7c95918f74787ab6911ec25d33543d3a58cd9a892dcb2a9f566b54832172531c7765fc37c0047e0e9a0629a89557a81a09f3ce365970e1f367cfb3c8b0f7b4b9e235c72404af31965254247afb1b10951cf8310439ca71b0b5c8c78aaf9f7b147a3a97c41c18bec41690f44e9ecbc04ba551186bcf3d0a137fc4c6b8902c8e95b04395b91b1727722342f93933095183a724cc1631c132372a8bbb5d7378c8387a32b279751b3013594501d0e2b97088489441aa69e8008da493fcd748703b60fa62afb52b7ab4ea9323b16cdd5968cfd453180a5b190747ac960a127cc7802c623883aaad559ad49aa42c9243e6b9a434a193e69432f7f0af6ac35ce99c3546f6a5ab8401cea70b0b36cdb2147975697d033b49b0520d41f0808218c9b2178718305389f553553bb471e20a142980ef86bb241856929b0fb579681448a86cb800b69724fe3296235090438414294a79916a694624c77834297e98723ff17dca811460a4cfe524b578211814c8092c9399a0c0becbc472ad177a4c75acc7872a308255386605e0f813a7d5b827b1b3455a94ec58bafe0c3cd6e51efc5a2caf270df950a241ab7844db00da17313e182ab180cf994c9f50c57f51f75ccd03809217bc2009c82d52a62f284320e84346c8b8ab307843526d3a772dabc129f578283ac25e1500267dd93a3f729d21bbcdf1f9b9b7c20f358a18be0a84cfd01ddb8b1b9b54bca275bd4b41bad32964861a1195aaabc9e891b216352ff18b87231c032cbe6ba8c32d190d675207c684cc3a855623a5b3b54c8650c8c075bb2072a01565519962701ce67098eff18d99fc39742b1306a67a3c095d5c3ab9d48b9ff7ab3615d976d6c601b61c7dffdcb1c4f374e9c998b1004a6dc7beb69c5966622b8352351b2194e8809a00f93514b27eb57562e7a6a95b88cc4627215cf30ef9a8099aa1c1c08a3586d88bc6aba898c438ce8b359132b2cf31b83499af96a69b3f952cd3c6047f88a9430534d09a42c1f1cb57d50f2eca9747ea8132d3977d0c160b5a0172221a97b86681374f2ecc65472c087211bd1e2c4de9e706b808a471692d6a04c233b28ce3c921fd222f403096c7a285b23abde54b338cd18432e056e444bc0ac49074a3c3b7bb842c2c9f88b01bf8773afb1a81161a3bd4ca6c8570558dd3657a396d7eb564e080187299bd224454645471ce7aced999b31164b3af63821c86069e95007b305b6e551a1bdacc0ddcaea4f93819948295ac45142730372ab1aa71536c60051c6b6f23e851ee282ed16cbf5c77674a635a5fe992f8d97e4ba39a272ccd2111973790875bb94bb6cbc6977acb4f8b700533440964a5962632a3fc5dd219b0b50c441794cd7ef15e649b709f4c62cb68ca9fbba191832966d1a1820082779a82968217d963c26af89690735dc42a077b33bf6765b0f2b59eb59b815011a90a9090106a6d8ae52b1b5899313361e3634b5afc90c32cbeca86542f19819f58a8e38270dce6a3f6953c8e15c645591d89e3baed52c1b0a1bcfc7cac1803bfa306b3a426ab5bd185634a4d0fa92c70e7ae2b538bd5c68ea442849a319cc749682bc398522607b9e05a2db54b1fe02c89c33cc020567d6a66b3a78212641c0a36cdbc3a43e38274d9eb86aea22b3652abd6a83d470ab36f2a9dae663dc2e512bc26703b93927d7b901a96c0858b4ca004cf9b359b8ffb3fc465445536716feb7aa866a266831e66a9be595661fe382afc472a07b6c664b00a212b57a4bbc70a707e0f808ae8573394d3414e5943a6f8ca6d1b9771968cb3a904a8772952a451b5319c6bfc62712a5a6a86482336c95ca4eb752481cc6fd4b22342e7c9ebd27dff8f94d268de99b246d34252184fcad377f5676cf58b8e8bc19701c0786eaaaaa80f04c6098a5e8f71ab315bf67363c4f9f4b5e160e78c9fe8d6d03f9697b1706bb5c347148e96b3b172f94cc6a8db +ciphertext: cbca6cc7f2b281d1c67eb91825e992cfba3592461868200490dcffaa23122655ab6bb977fe78a9246f9d69ffa22e874b706608dc3784f3e4498cca9fc6763aa2ae90571246a534e0d4c163c04d2bb806463c5f450b7ad8e7335a8c22b78d852c36ae6e544261299fd78b34071bac18e33e9fff3fbacdd9f1bcbc02560286f9b3b1ac88bd50211f8de3542a74e55ec1ccf86d3655b38b91604756b5228bfd8d5fe3e45328bc1c47bfe4c6aa26352373854dbbddfcb62a17b1593c16070029c771b0d6bbd120e84fcdbbb8a2dedebe673a4fd5199ed6964b899199c574668d2647343dd26001a57571ad67321aaa719f7be7d986ac4b2b2d2ac076f11119d4bc115d6cb5e0ae5024c1b51c8375307238ff3e76fca926353e82ad34845243a761d292f4abd515cec17d2af9a6d5b5bb1a7f63e3fbe7f8dba33ff216ddb2a0908157562cdd9ea6771c1b7b9b23916a88a4aef66d931ede645cee5ae9edd095d17726d568fdff8eacfddc6eb790c7a66107104902fd7acce80827857fb403a62e3076d3e2e7ae27b1fa1aee615a7d3d616f909a42b82a5dd8903b4c7df2b06f52e17b11c52854b1f34ba26a1fe5478f48b5d68ae8a276dc49649114c553141bfd7461a6bbde2a0733f55bd757004195f81fed533f134c8ba4446b1007ad2a1813ce94e40c5d10b3f76bcfbacd9cc560359fdbda99cc9f6e07fed62ba32c30e3be23013cd362557bd320031a1a0fa8bcb4c6f26b64bb9584a0fe5b6e9762f5394dda413ba0987873e9ed91717c96c6d85122a240728a56857993869568ea1f4f3a22a57ed9d7ede953477fd469e6d5d936019dbc45b204ea70f27710fdde4047cac39e268dab69959914eabedf5750fa6a99549f25b1bd4d01e7a6f5d86302bf8a0e21c3d2383f6db0e6eca94fe67e35a092ce19e196c27165646d43199a7ae3c8be21318cfe08bb551fa42fba6012f9adaef6530122d027f4056ef433524866617d2786e5cc1fcc6f8280b7f69a542dfd749b38c8df68f66b99b5b0038459b9a51cb5d3eee654f4ec506a4c58cb82cd53a883f9d5d60e3c2fad5b47e183e036b34101df037095cf5c6af3933fba043eda0104d02d49d327be2809031b4907dfff8fcf44062299a7fca50229be95eac0b2b7b397857c5dc489ac2edf94b4b6164294c2d611d3ea5293501932411fc6f3f76f34f6060597a29978416c5a10dad6d030bdadcce38c077fad1e353317057c9ac7e44587dfef6f849531b27d90aadf8f32591d0c462aa4312246f01aca8e5a58451b6d8400436fd72d99a96d8b8e9310da9d23813615743d01ede049c4e7152da854282d5565ac3266801c8fa6afeaa28fbd3662921d05634fed09b32564970c5a3c9888a02b7897edbf15a453d385cee14afc68ccb4782db627b214f7d83f1d4c3e6039b80fd0506397d78e6c41e1283f3e8f2c8b0648b6fefd453148746324890a33307a982a1e929df0e21f50f486d1673c2f0f838e2835c9733fa3daf4abfd41b5b3c256f3151f51bc172006803777b0 +result: pass +shared_secret: 0ca2714e446dcf6d2bd14bd66f674b8256d9b44e75b9671055f63249ed807865 + +# ciphertext secret and error zero +private_key: 17ec419ada2c0d918b5567032f1548c1478b029621bacab901c8031a8014d7f1335e79131f2ac7fbe7c30553649b0b305a1695cba670a8a90ffd980715ab36697b21ca0a43bb9b4dc33ca3b20c2ddc095e23ac6200e8542ff64900e19b69a242aee490e5e08331da623bac61193a5ae08055c78211bd3110620855c3e879729c9d0abb5986c30fe02a3e2e6614cc027a03a29952007e07c743c1f378e0f6cb50a334b5ac1a415665d5b310a91a8d480a5e50450fc6848f4aa407c594a65676c4c74179b1fc4f8b15a8234c85bfb61dd5b7b8578a87b6f4a4fb1a8a5536202f4b211de7b66489c589d16a57a6bc56b6c47654591a234ac4c2cb72f49a356c44ac29142701046616a1695b4e9ca191ce58c5901ca792440c8f8092b8714464141105549795e392008763c8a059087249e5c652e82a0c4fbcc2fd8a09b6d13eded3b994969964d2054a6204f6a7383bac8773e8934679c48926b909228b59e78ba2eb26ac553cb9b3a8c0b0458cab9b19f840ceb5090dda91b26a83f51c9eb4a75ca8829c56332860017b82c3a26600338d7c444432c0fc709e3f9767064b638a6c0da4bc1e74a60265c69ee2abca73841d73296f6471afde11a15c60b949a88c197c5fc9c2b24f89c91d995b1ee40e749c19c4292d18e28adbb86cea7704a1a36632bb9e523c3d1c677e243369f53527230088c2e73476e881ca696cf23a4ebd29633256150c3371a19616b117778b76806112c8b4a75aa28c85eec1254cb8b2dc36654d45901581661660c167f216d3a34ebe3590688b738f55a976eba4de297352606f0bf99fa0235a21009cfd302e37938e44e16f80b8abd2b62eaf41068437cf1b02272e9a5a5838193eba865f0696b5cb9304337be5961d4b835ef0ec1cc3ec8d6613aef36c3a512773fc9c09a2dc0fea5110abc794cf4239a0fa9f5632751ac00586ec8fe4800dae5b58d44774ad9b17fb65c9e6faabe2902d293347a75c9da54b33fd436571c4963216b876153044414f3116884b389a7873b36281397b53a00c1b218b6010db253c984204e3e81ad04642bb31539773af30c0707269c3cb214cf59733bd3109ad190ff7599a8afb4863991feee1bbf595459eb6bb771b1749d32d03a3aa56c0c4efa81ef52ccd5c946d7d593cded8828089b97c9b4b171333a047a9a671b85bc64619f741fe47609231b0a661276fa144d2c892693a506e8c198f33c3f1152dbd494136e9b560711e7caa49b3e2cb43b3aa1773249a85be2b6820981b4db6a330fb370f50fc6c21877f4b9654cf2bba395c7300d9b6880c1c14a080eff83f7ec0177770223945bbcd51a5505822fc275b70451113acbe7e656de93c6afb3189eef27ced706f88861060754e7a938dd1669233e5ac5623398f523a3375be4c71798b87bd7c95918f74787ab6911ec25d33543d3a58cd9a892dcb2a9f566b54832172531c7765fc37c0047e0e9a0629a89557a81a09f3ce365970e1f367cfb3c8b0f7b4b9e235c72404af31965254247afb1b10951cf8310439ca71b0b5c8c78aaf9f7b147a3a97c41c18bec41690f44e9ecbc04ba551186bcf3d0a137fc4c6b8902c8e95b04395b91b1727722342f93933095183a724cc1631c132372a8bbb5d7378c8387a32b279751b3013594501d0e2b97088489441aa69e8008da493fcd748703b60fa62afb52b7ab4ea9323b16cdd5968cfd453180a5b190747ac960a127cc7802c623883aaad559ad49aa42c9243e6b9a434a193e69432f7f0af6ac35ce99c3546f6a5ab8401cea70b0b36cdb2147975697d033b49b0520d41f0808218c9b2178718305389f553553bb471e20a142980ef86bb241856929b0fb579681448a86cb800b69724fe3296235090438414294a79916a694624c77834297e98723ff17dca811460a4cfe524b578211814c8092c9399a0c0becbc472ad177a4c75acc7872a308255386605e0f813a7d5b827b1b3455a94ec58bafe0c3cd6e51efc5a2caf270df950a241ab7844db00da17313e182ab180cf994c9f50c57f51f75ccd03809217bc2009c82d52a62f284320e84346c8b8ab307843526d3a772dabc129f578283ac25e1500267dd93a3f729d21bbcdf1f9b9b7c20f358a18be0a84cfd01ddb8b1b9b54bca275bd4b41bad32964861a1195aaabc9e891b216352ff18b87231c032cbe6ba8c32d190d675207c684cc3a855623a5b3b54c8650c8c075bb2072a01565519962701ce67098eff18d99fc39742b1306a67a3c095d5c3ab9d48b9ff7ab3615d976d6c601b61c7dffdcb1c4f374e9c998b1004a6dc7beb69c5966622b8352351b2194e8809a00f93514b27eb57562e7a6a95b88cc4627215cf30ef9a8099aa1c1c08a3586d88bc6aba898c438ce8b359132b2cf31b83499af96a69b3f952cd3c6047f88a9430534d09a42c1f1cb57d50f2eca9747ea8132d3977d0c160b5a0172221a97b86681374f2ecc65472c087211bd1e2c4de9e706b808a471692d6a04c233b28ce3c921fd222f403096c7a285b23abde54b338cd18432e056e444bc0ac49074a3c3b7bb842c2c9f88b01bf8773afb1a81161a3bd4ca6c8570558dd3657a396d7eb564e080187299bd224454645471ce7aced999b31164b3af63821c86069e95007b305b6e551a1bdacc0ddcaea4f93819948295ac45142730372ab1aa71536c60051c6b6f23e851ee282ed16cbf5c77674a635a5fe992f8d97e4ba39a272ccd2111973790875bb94bb6cbc6977acb4f8b700533440964a5962632a3fc5dd219b0b50c441794cd7ef15e649b709f4c62cb68ca9fbba191832966d1a1820082779a82968217d963c26af89690735dc42a077b33bf6765b0f2b59eb59b815011a90a9090106a6d8ae52b1b5899313361e3634b5afc90c32cbeca86542f19819f58a8e38270dce6a3f6953c8e15c645591d89e3baed52c1b0a1bcfc7cac1803bfa306b3a426ab5bd185634a4d0fa92c70e7ae2b538bd5c68ea442849a319cc749682bc398522607b9e05a2db54b1fe02c89c33cc020567d6a66b3a78212641c0a36cdbc3a43e38274d9eb86aea22b3652abd6a83d470ab36f2a9dae663dc2e512bc26703b93927d7b901a96c0858b4ca004cf9b359b8ffb3fc465445536716feb7aa866a266831e66a9be595661fe382afc472a07b6c664b00a212b57a4bbc70a707e0f808ae8573394d3414e5943a6f8ca6d1b9771968cb3a904a8772952a451b5319c6bfc62712a5a6a86482336c95ca4eb752481cc6fd4b22342e7c9ebd27dff8f94d268de99b246d34252184fcad377f5676cf58b8e8bc19701c0786eaaaaa80f04c6098a5e8f71ab315bf67363c4f9f4b5e160e78c9fe8d6d03f9697b1706bb5c347148e96b3b172f94cc6a8db +ciphertext: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008088808880888000808808808000088000000888000808888808808880008800088088800808808800000080808080088888880888000888080800000088000800008088880088808080008800888080088808808088008800888080880800080000808888808808808080088000880088888880008008888000080088088080 +result: pass +shared_secret: 309d56795b2a044fb483648e7f54d27bd98d02b2f8e5d6a51f49f2130c244218 + +# Rho leads to frequent rejection on matrix expansion +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca1c63473a75acda757b3ac6ad26221ef4f671e01461ab865f59c26f22c61de17800336b18365a190e7a123a34193f375e9f9643ae99889eda085d5317d5887e6b2c8999c133e20c49b3294aa0e064dec63c7a00acc1c08fabfacc28203e616b5a06f02e66e87fe1789725e8538b405323b9233fa61771980626b98b014ccbb9573d57d85dff1b000b38502af474add3a32f1ac7c1ab8adf93350ef1939ea376226a37c9675fa33503fcb753a1c86ca8c10e10ac74658944af239b48b97ca2b85ca4034ca7d662c91237c63c6b35137fd0429562b5856fc11662d0777c111ad9c6c34bebbd61eb6b538378b0123033c11ae1f0715553ae62cb27f15ab26b46ce4e540d39679ad9613fc91a35ca1073497cba5c57cc2c77bc75e7281e518f7640ad48451ecc32bb26bb2512fb76c9f6c46dfb6dad9c7be4762cba596184f37259143983e906002b34acac2be801c837c53771b048dbbca14b6c33e9ea7886c3be529a488aaa4deb590fdc96aa62a68f67abb4073b2f0f13a874fa7065e3c16a8b549987c5f2733ac4bca74be87f2e14cdf7d8916d47b69652244552a7d74b846961333a5755ec1179eba27b598333a07aad70626429153b7609a131e63c6bc94c32e345b9b293345598ae20a6f6cb25ff143f68e28013793183b5c9bc8a9d289967ccf613ad510a63c94c2b6b32214a9248fa89f85949ee3cbe0ba3a778ac7b754498dc3a79a95519606171608840587040a70aa1331899bb1082802c2aeef31ca2a773ef27382c2a84eb04ca518a83af9b44028c56427013b7036e441c20acf86ae09a82b8fb6ab2a234853a7b3ea386558a0bdfcb4487455a95c30cbcd54a6df965c2830f37c41bfef65013671411db77b8d69f6d386fd254ad7e175ceed98cc1e16190965b97e7375ce1105a491875007030c01cefc43e7a45615b665e073b0ba41a8309fc7cd70a271e71a36530c80ea227a9b57645899003c60e97609aa0761e60e8aa1f414518006cf1c62ea53826d53981f2264bc6c24ae072a2699886b75912ecc880ad6939b6a40d539232fa155b0d101aa7791cf74a1fa459ab8c8cafbe2911289312ca990fba952cb0253b71a792a5d9c6bfb31219e898c7125197f7b7a90aac7d527f62bb5fa7e00e106961d1babcc582590989262f1a1463e44d839221717b49b28980ea8b81f5f2cc44252c771b47d5550e3d68a8f5599aec848347ca728eb6c93b717fd6dcb7d8e338a6543d3a434245a44c2191a550794783212f44a94e46a64117f0b98157015fb0c6fb7564847703674945ca3b272e14aaa3a02cb8eb7fe3445e45940315b4408c5b4400812b0b48925862cd5c27abd9a2a0c3656290b11f6a342ec589720135a47b555aba0b098b37539cd0a05e729165d82b82ca1988dbb5bae64c7cb44a3bb190fd701b7927257a0c564fd2762f0c999341600bf86ecac593f7320e4f77bf720a42399c3b36642885b5b53a527a7b9606de8703805a72a777b1bf3674de08419e3ab4e424678e42ac87c15ed6c49afff1c246fb6b80d1182f57b6360203bb6640291a0b9d067aad6b8e3465a84275b923ea4853f799a7d31766bc84b5a0230aa43b9a3153f509b0ad9c63b00b4f68c75e29a6cf40d7000000000000000000000000000000000000000000000000000000b80a908a7f6edcb4bb86f2a0ec5da99c374870127a29b670702bea6a13ae462811536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 515463ea5284839dc84869288f9c03f0e384e56fe04c60cd7af8bdf53057698a984c2ac336de2932d3d4ba3d2073b481a125bd6cfae82da6ded2b0e8fbf7f579dfe5d590a6c03a95b53df59baaf4f0dad94a7b821cbf9c1c809b5d089d38be1c30d455ef44fef503be587c4be0929e2cbd931d10f1a8027ef2d14e15a931f3881a2bd914adf3fc93f97ceeaa8a521762540307ce5a670313d828d5ac71680d4f46bb1ba551ed7fb47e4b82e6c6b4713228038d5011df91b07ea0fb98790924b4cb859bfaeb309ffea5c2cbbf3f12fac5a063e1fe7bbdb0de70683837b180a13e0cad655b6fcd1f5b635d3342dc84298269c1de8ce6b39452297fa6bffca90ca6045cf304c4691cd052148dfb0812162e7e000dc5c18c21209df9d9f0fe7dd8d0962cd0ac01402a7f8170265af8804747857d31aa7aea612900e9067ba8970e1a60ae3ab1105b1eff223c755c045b81de79659d001b7c45ce64dfd2dc16853276b50053988337ef88e4c70ef5861dbcb8a7d6d1b2a5fc5f044160be5694e12201fc57f0c8e3ed5e48c83c2815d78fc68a118918615b2ea0898eb7a33d446c449aa92c82131fb80267666d9e11425c9bb8e10f745828b72570194465c7b2eca785228244e08c06e0d8f20222221f5dec81fcb478945564e2e53ddb68dbae7c6b1540ca7f4087d2833a752d97a69cba3f604483a6eda26e8f5ec27f3ca84730237cf1bb30d70aee528eab3e4493c7f5787f5757ca6a3ab5c278c631584bdbcebfba318db0fcdaee34cfac4422b448f00006c97abf3175c379fcb16f5b150e398355212d8c60ecbfcb3503824565bf841743bce55fbb2606dce0b45a5e2c1fc9fa20c1847e9173de2d8dbbdba840b42b002cf5c0c1d34e709816806e525ca217e37cb2d23e3c268fc4b31608f89ceda1c78c7d3c6b23863f2c6b80747dea4fd11ddbbb8421728c4dbd97fecb9bb652150278a3a3dd388789d2edf85baeff8f6153317a9cc9b72af8f69f260ca96cf602e2831cdfbc14958bf62968e7c019d7c71f6ad55fb51cfd9adf82894e56c05f6b19304cc04d2906b935639f2e96b56768abe27199b5af84268ee89c97f42925bd3350aaf8832d1f7b2225515759ef64d2d75ab29039b549774a3ed7209e1e0e50656794b315ce2bfe35e20a33bf180ac724b9a47cb9198ce2174f6b9cff075f94ede24074f169f15a8eadb54d5cd8241efe8bdac98ce02706ab86c10089ea23470e048c0f9bab797c240b5c499f75ffef8ee6da533642301c897f66770fe1860a01e82449c4259f54be74a46d96ff5c78f0c07d43f66ab578a795a5f3fca06a1d3cfa16449a278da74a5eb6f0494ebee89d4ce6dff6c008e10953b9df95f0e2e7310d33239206598cf4a729e1466f3718534d914617d260298b45a5314d045516a15701c269ec948b681a4b3dba464878a193731e174ea8902873b7132eeebacfec09ccbce7f50835116ce5b0a9e10fbc7c76559ce0044ddc494a9224bc197c494510f2c44e43b037798c1613416f2240394f +result: pass +shared_secret: b177b87b89197809b36026136b06fc1d749dee4cd4881b4ecf113f28df2bd4ac + +# Rho leads to frequent rejection on matrix expansion +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc2597a577981e1c300ed316423494735483aed71b9f85903dfca56970907910317d72a309adc2cfb0f062d4cb215a1caf67f4543f499001ec9db4db066d9989b600223d3830bf1818809881efb057a7626ed7948f2dcbb9a1582d6f421e08571655916d3a99b14ca30145e3330b31086d5a039a89ade149c9f362cd03c1919b4abe4178713a8400c0d0a21f866cdeb55b1a4202c79a5a26874004eb8a2681742f5bb97ae578faa58e856a8d186a07826a54c1495503d9180073275f139bc1a3749daccec551a809981520aab0c19c3bb59571e9cc0942799f71b502475397e9508d673b14652b65644565a436bba2aa8fbc4802663608e97a2da50249f6187217e01d5f4812f889b958d2ae4af89b255836795049b87bc45ff47549532c00499964e046191c26bdcc8eff1553ff488124d709dae90df510204f234923dacebdb46e5efa933c693c00b4823e276b5d78af2b336309919168fa38a224415ee61a6f729958f5605d57b748a09993f8c809212393b381f1e7c139844dccc37273488562a28fa232b51b6b22de4c0b4c909a03231078f2cb05581cce12432d44a66ea24ddee28ccb2a20a31130822cc74112686599ced4320878826ca51a9e892a5be735260be64c11697fafea1cfe152eae96a4d3acbf21594af1b5507c417679e6bd85e169319931922631e8042c093a6269205b4e8121fad69ea1f4037282852afcb3ec477cf7d25343c59e94e74eea681502c6939c297367dc3502e21724a77f2535a70d383a24d29e872aca63d9cbebd9b737fb2d565968bfd2a27d44061aa88cee5869e3fc96e337033de554ba4229d9ac62743c509ff3cba9c25e7ce3913e9812a5b9ae281c1374e86f653b7d78216af6f233e47a5b9830c5e3c3b932d2604c45c7777898d9078bcea38138a170fba8b41012648983b6c6e1cdfea72ff838922fd55cf1e62688798b6d425d20f2ab12c75714e8b3ec0028441259ff5aa175184731d98d2e7215c87970141580e91cc6cc2561de55387e63346acb04a6f017c9d7cf7ee39b26dcb012fb59eda233efc411aaecb51a6037ed4ab3dc227a4a977100ed804aeab9f7f585c7f5b76f441ef3b2b5b96434a647012fa13c1fabc08d1b46cd8a05753b7f7bc345847151c4a40ffb19238c122e7ca6220ed8acee34129075aae84b3732bb23257b33892c80309b89a0f33b1d7a4102d55f81b1996c90c5258a880e2aa0e80700803b9a80952316e654cb6c2349a0c88117b5f60138a571250ab0cadf7294457646215ca866487e6b8590fa926c2b5c367d1a234714a733671fe6f8b966b9b96b4296692981bd19b519a4a951eabb0d40751d916f03b3223ae4b12851b0d1e7486543272e71097bbaafce2a82642252d650c82f38a4a40b9360d789e00a3a903b71b6b91bb4bc17a67b864312c4c030127de12552f97dd814ce03ec14ce737ce3539a8f71b369c8947a759d18dc2b76aa0edf820d512615e8a7a8dbeb4d7aa92e8faca354f7192f7a42257b92fdfc017de9016a969efea146d1516316e31ad40b5829c06fac16b2c6d425b0b5aa17623af5a26ee4e0587f6c67dbac006c236f0ca216eeebc201c107b2879a247a60b1a7be7094ac8ea62841cd0933ae00000000000000000000000000000000000000000000000000000041186490472ac37b8929cbe8238e5f6f3994006c05bf47d88f1a5b571caac8082e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: d8e28962213efbabc8a9e3efde9de2573855032cecc3be756c87151a368e15e8c734155213614c931c083fa04313898680f70839229ee7f34eefcf639bbd35f3c375e49aaecfcd3b0b506a1708f4d8c26a69a46483c5db50201db95c0de02f67fff0811b43d58cfa1f2a61838835ba909e87e58708b07ed43c69b1cf67655baac003b6dd004434d22bed1aa21796d3c9c1085a2c04ce5c03797023545a1cd0d6dcdec111b896a7b34b36c24be3bc890a65d3b1f9fb96fc56928d456b845ed5b526865d9d588df3a977cf7ad0277c5e02ffb8ab67360d0009279eae50e8b038d43390000c2805875e9978879288c827fc3fd49305d3ccfa9c7fdb63833b5765b21f70d52ccf2802644332f961029dbec5c0ab56ff9fc72dc3df3b97311ba4058eee91b0634459a59213df74385ecedd341fd0b7235b9d7e061746149ec12cb1c6fa8b28bf995672f1c7cd1c01b80d2be48493988f0a43bba9ba45b6098fa8ab08ff8941aa8ffb2b7fcc82b07afa401f02f562d6b4656eb0fe8a3f8c2e97e45372c35a8b97041e4d2bc92302bd4fab1bd989e16e5ba7c315a8a2441c0607368c116159b005fc18504f12c96d557857e35726f9a4bf2c0012453663cea4481f3b4efbbde568664c54c1be3e346a499ee98e06ce2534b5d9bbcfecb804b8f4ce6b876e1ee00c12ca97b90940334d6cc0fd4cd010e3d83c7c4ae91761d8f73d699d2086e7fd635a028b1ed094e50b633d153f71161094b9aa230cf1bc005a9b2591c4ed06ed9b1695479bc67c41b0f7f3e25cfab21f06c4dfc68fdef64ea5b86ba05fad5b8a5316593c9ff8a9f3636167cb3148e97af82869e42e1bb3f110ffd711478427796256d82a665ef33745ea2b949a4aa55ab56e86d2f5feee5f0b203ff6354399a0ebe00c36d09060e467b434db070e77e9a125ea82362dc76cde94202acc71b47777e6821dc477a466caf6ac724761a1ba63020393ff2c33b6c0e14edca3527e897e184509e48424526534c4f2ef34a91a28711c53675eb4cd3c0419c747e2e67ac03ca3015e651dae27bb559993b2f0d20f0179300e5e69580323534d1289117ad6ee3ba03e3cb5f6bae436b9ef634a8c7be8e8c5567c5576657d1820f83c6578385d7911de91585a28d1d4c681ec03cd69081b40bd5143387fd020a9dc5cbd5fce0e8baed3d16ad548435db9adbe14566052c2d8d93d0b24bcadae084ba69ec63735cf19a6d46d534efa4c65bca47ef83f94d9fedd42578f794549bd5331b9aa1a2fce0c6d83a6e392cd4695e13245f8c91f3e76b187c55ccfc0c0a6344a6c89fa6544a86f762df3c59da21964ba4aed245647c56817a600ea3ad3fcc3c104197e2bc7e09fb81d9f8fb7ef559514da710f8093989f51c5c6dfe18cd821917aac8c7e9bdd9c61296ea839b8a54e466e49454e212314f39d50dc762e6c4c5623a88ddd423536aa51007bf6c56e3697c3879fcc6f2a55f0246a032dbbb073a1048f91d0264845c405c5063852cb507e4c9f3646db75c99abfadb6cd50f7a1 +result: pass +shared_secret: 8a746f85a41b6c46e0ef358c9407c702c86fb907e85f86de98d6f7bf7d6e9866 + +# Rho leads to frequent rejection on matrix expansion +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca5d4aa88217021609b2499381632883e6c690d720297f130a546b8c101487a31579bfa132c9b06aaf8b6583e633487752aa9fa26551650afe52d67d182bb035848e30696d1be1e56c687eb6387043e28e6a381b4536eb18dbfaaac8f6123ae066ed7568fc1fb580facb933875eea026d182329214cc62f75383d68bccc63788d228f88d17d3aab08f91c19ded4b19a876bc19984075a529dd267b823b7c83bade5e6a782013f8de263e992031e8a32252035e6d292f6d98e022c632d115ef2c60d53e47345e470aadc7816cb6c43f0ae1ee2bec3786b6b159b8d2a958ae567f364c70e4987f237a5d7dcada9066df63018ec4b21f0000f4674a4ca155e761c41c6a54490b3c64c42b2777cbdcc5cce8543a5f9a605e7aac50012c7c2088721d69910f9b3fe26013f45c68b7b04069b9d41555b5d7339c371389c95ca419b77d2c5c1a5b068846972ddab9cafd26308f790ee0a8e7d73ad4c12c4256b237a9659a6ca866197a2ccf39c005c47b4102ebd47607181795cc66a2b677ee68b02a5fa4be222c5f2a5b44436be13aa589044b574997c5f085ca099bfe8b2554ff981d2872a78d6a08840caf9a9051609c586409923a989ab4bc1521b8d23ba04f30a3df77378ce88abf81309de61646ae15e7bb62c8f300b5a7952c5d4881bcc2a81e64a6c612f7c6a9eb8007a2742b4bdc8bc0b5a0218479506c746396867b1a869038943147ccab4a9c735fb318a7b84efd56ed70b05e8a9cd05a650e2fb7ef5c48be6d39222082080b74aa7f4ab869b4e189710770cbbc5a70193597a0282a02445c5f5772750e505b968bf5c665ef2eb79c01a8e12948ddeb641fae4c4e8d7a88d13433611553292910e831d786b0dbf5cc13f77a881f82c98263a86174223184fa96a2c53f1b77c0c12c11c54cbc37776b568b4574b458494ee6b8e0c356a4195bacdf2b11876bfd3a84804a3001a37967b40855326c261d778cb544d346127eb7091821a5bf5eb3c6215b3c7933e05205754635cb4b15a89f827289c20844a6f7e4a817bb140057991858a6091157fde0717bd2428b50711443195f4a9b462eccb9c2325a092439452aaea85521556a17102223a65452c5b152c8b476db176cf76a6575188222215d32b5c08a80e80bb84e7007a350776165c1ba259a2eb06c5a3b36d27ba4b7530a104d2a18cd896dcbabc020a6de3f09bcf24a1e5e5772cec886f5102c71930dc00a07dc71f56fa905cf8acce66a717279ef7718fd9d40864474338c0729f4cae12d2b0bfa579f742c5de322225b0c633359108d8644c47b539d3b6f99cb8bcd42d39208fa5dbb87e600ac3cb1179a63936881748eb99a7bb8631d65dce2078edcc4abf0608575977ff4a805cd81b5679899d36227d1479d25a52072c07e7ac65148559ed558ccb164b9822b5f80575dceb5166121f4ef56c32950ba46217f0dcccd3f4ab8b42b4b0213adc08a5136a404f4532449915cdbcb3fba8ba3aaa7f32a63371f5c09ea1cf1094b205b2681b476375c481a5f336f38251d4bcb652c2a849daa65c827d5163359292b8e4b98a6e6c38fa592fd068197661282d457df84367f5f46815905203d635e9540811b66b990045e4e42532862012ae783c1d000000000000000000000000000000000000000000000000000000666980dcae61cd9d2602a64f618f15dea5431543375dbe5fc600d68e360d30d35ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: 1ea478e56a462e1f366f167cd818372a44d1d0311631d74a6e2ba29a86357bd7e066489d32f4eedb2398e2baf12dc4e90188b81cbd961047889a81c4a2f1c040a4527fef9518029458d524cbdd897409255258a9da92edb0d9bbaac73705614171db771c68532750750a70af8acfdcba1ebd423858b01ce3ecc821f9359c043b37dafb9574c5f4abda2cea0d09c0fedd0cbf40041a613e4de883ec725de57a89a2d0a9ced380acd54bea2eeef2abf769f81d92b302911b4ce0d865b5636372543e218e52c5a1ef0872607e4422a6c10aa77022120ce4875e9b11273281044b5d200a61e3c29a69f177a6fe530399fbfdc4edd2f0aae57102e66a4c48e549afb78e503c90517b7d741abbc2dfea9681ab74bbbe5bab1f25bf4be19964548fe3048cc27be264ad196e837e2e0fdd8475e6909d0d464cfc8df600c1a71523582378d1d70224330c852aa2f70b9536f1768736e95ef8ba0b5f595b683ff8a0a2e691522784a38c44171250719ce54cda4216052df02d164034acd650cd47d465be69399b9a148a5fff2974b7b42beca2039ad52358626e2b8d808b6a52d8b7eae2fd92a7d5b019b018f473b712c2df01295ce33cdb56cead9402adb1f245682d29af706c270d16f63edef39a49e9346a2a647aa8e481e5f72ac87aa5348af2c655c074ecaa0394bf531d9ba5851ec692f577e09918e4013ba53d529dbddc98dc041cb5e11598474f34e5356877c4adcfeda2bc44872ab538b908521088e06a166b58424a462dcbf88ba92362f691ad015083d83aa686147e635842fd2dcf58faf92d94a104719dbf7e5ea19522d395eb4e1092bffabc6aa314de0549381b8ce4b416e102c3fac0adddb2094fd1eea9451d6c14295446606f9e65ddac902a1fcbe65fdda0c1cb5322af2805dbd33633e5d5ed3289bc133983920491728c9b851b46e04c7dbc6a2bd24bfd63d3f5236ca8b2fabd0ae30506c885deb0696317929f3c8aa27b6320ee241d434ec50f2d2423d7c958c6fbfd04b059b3e98214faceb96ed5e3b8fcccf169c7873fb87c1c236539cd1297cbc9f8c3e66408666a678d80ad6e29b85df490fa0e83686aa3261cfa5e123f3fc7dab946691524bef770da4952ce4702d1d854996d9c2e30f8bd88accb0ef4917f3d5f9aa7cc51e566b9f94a3fdddc7640a6bfa0c7b6bdbce57c7fd76102dac7de2761aa971c949020cf11981d55d5a283a1b9943b2692b3a280b6312e32ed52d4f50a38f366b91cec8167f6fe4769f1403ab0750671257194b62b856ee5459d095298001e381d36df7e2c1a5c10241ed4c278d3d477bcbc1973728d7934f9ecdb0ead0d26ee993ec91199bccca33fac5881ff093880b727e2226658ad44c4edfc74b0c3893cd281923724482e1897215d3cad17f1b27dcaba869971f7e24adde068943faa11b45f88cca96997291126523d7ae9f956908a0003e93b39d1b88dabe66ddc777629b8a6202bc0adb7e97f754b0546d5bfdd2a13ad7b316d199b10694de28503e77d6a514e376bea64 +result: pass +shared_secret: 144bfb50c676e6c8efda24b8f5c94e9305dd281e3a6493d877f3face684df1bf + +# Rho leads to frequent rejection on matrix expansion +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc52a278678a38ca0034edc7b238f66c60b9ac1f309147c4cc7c78c393ec196c5b04c7906cc476b6931c494d0e4b11187948019cb75b0abdba480d61b6a58f4b8d9158486a7b94c05521fd7a1d0e8ba9c5a9612a8351f1b82c6db939ec326f34c13ba5497d7632e076c363157b156a289486a0b8a1b01a7154059149093a59cbe69ab6d8a67673b808fd217fada63f92402261327f84cc85ab50cb93517f4f3697e7b7c684064bc474ee617363f11711e4a7d5a422f68834abdfc685385877444cfab3b42a5e7649e0893d953b0db408bad47a6d8d061b884551e8031d4d2c207c93ff984b71a46c8c6b8174f22604c4a6d2d1c125117a281d37c2e001bdd6c42c3e3b90ea3c4386a7add997018a7330b0c2745f075ec10441870a890722d003d252923ca79ec870291329795072ed804a8045a34651191e824810b4c70b8a00e2c1504ea929364bef4027597f12a5c392889295fd6526f3d36572470a6b48188602093aebb3feb5b54db342bcd70c7ac881da4874f1d058dc3db26fd736acf9377ac64803a4b37743c6ea55969e13579872a6237d374adc29b5eb11a1d9b3aabc0377f550555d367cc7bc0c1b960a877a80a391aada5486c620f58182090436a8e26ac140292e547031ffb16f33c2a3cd2277a50903ebc67a22997d599a0037bbbe73057ef3296c7d3271cb17b13cc844b2aca8cbb1329b4886472747c026f63a1c4131c97dd8253c2a05e9a414b78c3c4fa2a6003712512310ab9b19090d7cf127b29aaf59923db8f33150fe2c34b0ddb8d3989513fd7b4a10495c9d86927b2cb505863b7bb3640912a39d0903db082ee47c0e8a01ab22b256682bbf6bb69b4b2394fe7aeaa939f4b624906b0c1b67665e6560f82c55b6b188aa7762ddd224e9648cc7c2c2e08589f948cc3f2f0b09150879a47a0e8bc1782c5befd0734120069e83814e34c663f115802b220f5277798076863e54ad0496aaf55baf21b5dcf60aa6ca42ef46c3c30052d7b78acd9e40a7079aa437908495c2506549750704577695f70725ef3eb8e98d88683501b3ac08ca8e5b4364c8c68eb5c7e4c690db96ee7194e5cfab7db691a67914c3fc3c219c56e52081f9ccc592de13ee5e266df71a350a63f1a63aa4984b2f4319e3399b058b4b56528bd14191e0657a76476392e9a5d84d83e87a3009b800004f60f4b4ba8d0bb2beac7362e762b417824e1539a2c39be5db8013060c76cd6453e313bbfe87a350982dc04ad7da459dbfab6c3f52b5a779c33047ab4f9ca16238d0049200d394cf44b92caec54659221e2e6b6078ccebb35b6bc045aaa331c8f29b55f3654e51b0ab20c16eb331843d2ae43749f5632056e101cf2ba7bc2921647aa0875f099cb7ac083ea662ecb0be57c383554464ea40f1248802fb9a48ddb4ba409b6db621b5395720b215efe32c47bdac84c5aaaf05c61c4dc2781a87b00710202fabbb077cc93602df8868756334362d3564baaba98c6c80fa15da5b2c924b8c85c918fa0d18bea758fea9b750da0c37751370b4300a1b6a3d7da6566375155793a97269cf4f87172832aee156ac1f18fc1179003637b3aab85db0b7b4b152b4fba7f990964d56c2dbae99d070419690a7b4293c6f3450000000000000000000000000000000000000000000000000000000817dc205a979273e6bc58838c286506eeaa89ba33d4e1971291f3a4da3a37988bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: e60755df5f91c38cab8e8769ae6c40bac77397480afce10cb1bccb30c8b8729b1bcb2d6be360089e8edbaa14ecaf528c488704870a6b9b299fcdfd910431cfb7da36eb755ad9fecaa91754a28ef2461886a0fea6c757f8e5298e047d5b61ded088a8c04787d32650a9124ade453b9b233832d699e5a71403ac186aec624d25ae3f8154c9b7c1a3723847c9b6e9f97870e81a6fac4888629e3b81e7df3d8a56f911d1559ff6f5fc15eeedbab77b70231d9e4a640ba4e1fef23fbcd073ae4c1793ad824b5c30287f24c52522e6d315e2d90c7fdf692c795b7634c3d935c98012075e0d263e917aa5c9f05ea049e1a8e8009b65c26d53017cfe5d2ca2212a78a5039e12e2b0490c2238dd693978f1d75551539834a954dac8f745a1fa48218eff905a592d0548bd927a5104185934f16c8c46dfe581f6c6ceeec019c73d0a0c041dce578ec5919b9ccc7f5df84822c4f5e82c0e020c6a9c326fdd74626da86fffc3a1067d3081d3c8ab58b3613a9d0f3013eccf6b3e5bc34bef9da1672bfd11d9b51222d109e5d3c66244d9723a4d4e1be1520a15d58f966349fdeaeb587790e2a0d87647f2445b8673be9045940b01647964e3e611433fb126e5619f8cc96a7f2f6bcfaed300592389ff60d40315ab87fd91215249b911166e648708b3c71f412c2b06fdb3fec91d287dcabe7c33b96318381fcde852017cd911bfb0e9bd09fb481af1494ab51c9057d77cdec4d615207d7637c007d2f2515bf532b7402a496d0687a82cf6a603348501585fe9fa987b47e06393f377832f16a6e3bd2022e45a81174a12de22b2a5af4ec78a55c2ca1488c564af9becdbcf2f7b635d88dfa14caf10fbe1ae4fd89c4d57eb04b35b810529b3fe3aa10d202b14e0c2417b1c2cb2adc02474fb4bc74d813dfec562e17c43fcfc1a35df1008c6bcf73a71e67525c78da2b0c5480edac41f839f8f67bddcc14b92d5a04412327a9e1cd34d5c3f5ef6cd1a59af4526d05996fc049a39db14dafd81d96a8f1b80d77a4f330747dc0bcec5214992dbe7fda726e4d0413ddac4ad0f583018a378c844c56d9ea0329904945cfb4f55cd0e0f4ff2358eed74675791d74cb7ab3ece8eefc771106dc4bccc7525e3118b8fb13956125402b310596c5ad0eea3ac8ef75f8b63bbe11ccdf7aad66d05ec052ed9b54becc2fc7ae185c9c752209d29c76bc02d1d05b693e12e660f18a326cc42a4ef4b6dbde69f4c4676c4bfbfd1bf3dd75c262e2f5ae9b4db247d3e824d1d87151c40a7ab56ad5fe9deb8ab40137860e87fcc972e12f6eca84c284eda1b925a2dd4b36eeedac18f1052f280ba55ce11f55b0f45443b4943fb0fa7354068259667defec383e380768276f97af4a0bb7dd2ef1669e69345d08155a0ea23846dbb9397cbdd023d5dbfc4a544572e82f21ad601f31cb01def894978cdb210b3617e65493f898bd6492adf5acdfcde3474f6aff97a86497b9fb6bfdc51882d3d5a3a35c4c80ca1c21fa3031a3985c7a2e34eadaf1ab6182c1a471721ce2d +result: pass +shared_secret: e3f0f3e54c7a50d4047b6fafea1311637c76e6a426940afc55a432bb7a23956d + +# Rho leads to frequent rejection on matrix expansion +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00bb3c06376046b4f295572947b7fc5597b38596655f25f6603255aa19ea7f9fdc5c9efbc5b1343b9d214923121da4fab101076d9144b2881ab988092fa858a407db97248516981a9d4c336df1395c8920496f487c60d46a97368103bb9af9b62162ecca0c023b7bcb71086c1b1ba92efa1b0521b472539b0a87030b7477bdc4d980be20ba45c0aece03c49de971a6f9c8f7522c1a4a6df1225e836640966348a777bb325c4f4b972d484a74c1c743ba88b7d9a3305755992eb5723cc8280aea6ed64b827a0518e7b4cd2cf56bcd97023195a7aca9486ce2b50e35a967da1f8c39c9fcb895cd9895e116b6f58555ae82609fb703732452dd60274ed87adfe293b5a2be5554ba0c455836c98267e77ba6f5b5dd90134e126c703cc1648cc827754c9c2928073493332b6394511e1499c0818866fa0951f8c1400fc51cb9eb6cf37b4a3eb3959ed2af6995c480844291766a66d81713aa6351555068324f84262c9460cbe041598f519c8b387b442a6d6c873508ecccf6b2ae4e89bbd1306f962915a2d759e2e8184df59620d8bd60fb2464ba40188666aad85279423cea249db21b34525b55191375c2f19dfc811d3b77ae56b9366262834c2b1dd500ac17828bcd44c024e90e06e9a7a9607aeaac2c93d48236d114d352859d9a559b9b6e003cbb9a07c65d0a9f264288083609434ba7ab3a826a821bf2db0306a84f386252f7c56011b96fab3b3fe2ea43536a3cd39c2f11d1bc62e03365211e82e4b5287740aac771cd772575c17f0c712c6e1485e8f4cb8e11a89fc4a0296b567e835b6f18946cd3887b56bc4bca9327c52239ab34925c2440ac7cfe6644c9c8058f840143d782ec82793a234e9ce9a2d2f7c96085c6899436cb9c97ba4bc3187b2ed5e622c212ab557bb828e196e0336474e1231ae72f16233ac7f844abf5434d457aef124963c85c25b7414df98bbff69008c27b9f25ab2d9990faba0bd9c00f7d27944f718fbbc1446b3a0e98611af4c22e4ae958ee993f8abc59e3c41252b160de5407a498a0d4f90505da3e90a4b2f8697e99ac7e7c769250a5bc489a74b44cae15a59be7f5922705ad8deaa41d4cbbcde7919c3360e2892914640d19765edaf3203ec950035550072a53b379982b3a3d1d18763f9b1601854679965ba34b1b073809ba675e09997a8519510780b593638dea00cba3598855125ac71c91ad671bca1499037b7791f32fb82134319b1ec041475a238bb5c4ccf3524d613c8aaa096217b5afcd2c4803720b549c8916bcbfac990ada5509c9362488d66f80b2556964a856c06b746a6a27877c0a213bd501b939796ef0cac630705d44e66a1d3c2517f940bbfc711ea1c5dba3a491b61fe4649428c6007052517004416b0201f2440d467733d923277d54bafd729d84e2440270a259c14d88a4564fc9941152b591aa644fc93abf08371ac162b9e180c0fcb2783653e5137a9faa04ba137113697b11e419dbd708f18b2fb5f20409448f31906c2a557da57621ad4242524a8f9f754e199a2b62e87132a33af47166dc614dc7034935c4b21b7c102d71762239c03084bf0e381524a94b6c22a7e499baf0ab6c9bbc8573909c8e99ab09a44e6d3b017dec2cba8b60c13400000000000000000000000000000000000000000000000000000037d9447735ae18442d1b8db2c77e3cd72ae226b0fdbe34ce9a0b82d721e8517de42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: d388adf22faa385735ac4630979b0d692aab8fc502ac7f8a0e3561400f8d04a4447cc9ad1003d530ad2f7b5da076b02bf291aa837ba4212d43bfc514ee60a422c07471572340d7fd5fd127dd82283a4e0d145e294841124d0dfef27579119d8a9eda24bec0aedce586026d1107568831363fee0187f8a0bfaeb384bc9ec4282d03acc461e26c4b2826b15943d95d96ed7cb72c53665e19ef8b4641f6eef759a1d7fe860cf72c342b3d3e2fc784269460e0a1ba6c394a9c24db5a4c5f6ac523a155491d149806d73550b2b9f8f00074dd06ba24188a3bbb5f3370f398011899758365850054928429a7565ca5b9935f5e1b2600a779152dac16e78486a716a393cbb917f060c83a5a0cd56f1ce4de12bf088cd5e80e540ae97a2ce2b8ea35b3a7011116c7131aef928c23809b3ab4a464497d4be034543d5ff1112c6ea13242c4b60503607b9f4de544cb49c4580518e15ba51c12518312cd44dfcf39a4c544c71a84cfce3f70b789e4814ffb36c1e0767f15ffdc82ae5f0800bd8e2a973b8f30f34ffc792c9f7db5a91c2e0e02461ecaeaf2ae5d33e879f01475e102f85609acd1a8f0b1fc57739c331c25bf0caccba793b659d90483c220bd9cbf0691c5a4f11fa0c87fd630243a9f6e9d6082017dfc84b6ef1cb1fc793d14aad856fbbe051c724557eac7c8f123fd50c0c8368d48f153ab93da02b09fcbe5a91eaf3ffc9a7837b1e68170cd544057afff19163d3ff479b1d2be4f834a5b8ea082e2e37d9932936e5b3ead4ac83201a504ef4bbb6621349fb473aa38bd0370ee39105c5b635c1b149e263f5513867abab92c00c4019e6206600829f1b3ac1c849139cd4e04247801b2d126bfe94c6c019916247ea2fec03598aedc84197dcf7db900653fbb5236c52b640f1b489d79ccb4e4d062e77b6f9772218f64b02b3c29044c62279f11755791d8600758850cad537800e77d7727a63802e3a256031c94f3cd3f7cd20e10a781a29c2f699a3b4425ba4198d3e9fb3e5fcc726d99bc735ff16e2d1eaed171fe4ed00b0fccd81a8d08dd5d4a6c72bb8909ab98c35e0efaea3e9a4ed31ab0c6ddab06444150d36637077275796802b792354567f2af4dfe79bbc095f2bf801db578ce720e8e4fc9ff772d016bf400e5d330560aa5d91760f3dbfe7c0a175f7d0e730665ac079b4aa29f9b51a20784bee6020be8cd3862b3d992863d25a8215e1169f5eb4cfda064cbba34e1344009b461334490f7261c9a6a4457fcfe7b8536c59a8ee36703e8b439feafa9b4536119b863a91805706dbeb6e79a9aaa8d3c959acd75ed03cf0137546141fce29dc5723db5356661b62a5e2addc6cf479cbb4b6214e44b0674381fcf8d23bff22ab413701d8613cb03e140e85e6c00f75204a6fb1ed29ce15ec90cceaed7e216876b5e5b21b7e99da01f6c2c6318591e57e188548dc9a98e14a61c472d9726cbb09635bf99b32fbad21e4777804565d749b380924d7d5de3ec6be5b4b2cd2b784abc179b478c9237e111ce04f99706bd85c7 +result: pass +shared_secret: a8006ea55b49d054de26ec8780ee0928650ba04f33699616396fbd980d9bbd72 + +# Rho leads to frequent rejection on matrix expansion +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b16971c5c222e297e1951c5424665e24b2f8c0a98fe5988a202b02db7021b8caf6f390469cb3a3a44b1bba8028572290ad3987c84380706046d3147f2a098f6c11912d204ca7830b49946da095d77e4b55fbc763df31a6731b9bfe871f8f383d3645a44b18e8b59bf1841c48da75a66a1322a70c186d7751853949a83af71494384221876695a35eb526b3431b4c02a00503d962c1e35898cfe9666b5b71aa88309266ac0cb7c50121707c06086e4d7aaa918ba75f2ac0502a43d985eaec44c081b7aac733c065b2af38807477501dfd6a84436bf9609b5ee21c78e2c5ea1e2053853b0ebb570fec357fbd227123683292c58d082b4990c7b8a9b8a15b1a72017844b572eded48d2f902621280cc4d0174e0a04c712b558184ab893bb70b39f7e92b5c3ac61c4e0a4070a78a6b0bed6170a0e07606fd15f0dbc553c64672ca3b8c30821d6973a5176aa2a0343fa15a75d26953b965d64d94b6e3c5873fc2ecd13199f9caee6672847a87dc7d31534870502c3a0b9493aaaa5441099b29a2c0078854e13f15e1da411cd086a12f587ccd03038c049e8ba7532db25d4a855a1f7696a0737c1fb5e2130a4f3ca0ae1a45429a44ee55604e31858db353241d620818a5b9698556833398878825f22a2f0b739d39c07242aa2d349002979929af37c74457683f940e503ab5e475035921abc92b5850b39f6d2052f811a869c11aac93fb6e063e7b495a958670e276e6e64bb63268bcd01064a782ba3443c4e0255e3db3e55ba7082438bc303c94146bc67270a12265eec0637761c47ef5c19fdd22d4685c335146998a4ab70e6b3a9f63c7f95257cb7a7ac216c480568056a825ba6b6a25b084a604349bc4fd668a0c6bccf84db88fbd504aad20b68b67ca7d7c9881b948af06ba3f172456b250850aa03580de5312bd85b9ff9e746fb26c8e3da128e2ca463bb010a6872bfe975947b9b00bbbae5e53cace8380d1c3b34e71b35517764635f1c29be58b9aeb4704b2bd58f81a7a20ed1a0a505a994b0a8e71a72431991541c9b39d4b7de179df2ba5dbc12af93f057358301d701c3fbf119d1f450ba9900c483546e3cb55716ab5f193dcbc6c175697d9403816b263bbb71930f55081d8c945db976ff8b130ef1164d6bc8d0d1b2244a08b5903587932bbdbb7d60a29ec8016c9cd30ec7b81b1bd527b59c063c134340d35495d89f3d46728159874b8cb8edeab232885d635c1e46f4653c70c95aeb0370da4529d319a812c9b9d210f8655222ab13dae5c0f9bc3b6b55a23edc15b132c937c0833beb8058529a1f2a880d7b198c947c65db8a0423848720248d7cc937346bf0e01996032106192c58131335fc52b6817c97250d71f613a0217fec98b713a08998b8932ce850097361f077683147740a8a18cb16367fc1cc8771bb50fa550c667fa28822ca407399634eb42a79250483663708819c55fae2c4cca04ebfbb7582bc84ce27c2796955d334af342589ab196b3d03ba7b58bb209017c69a95672138b526245137265948239476496a6100d9ec7092d931f8009bfff9a7dc22908074c3e41a8e6ffcc199fca488753321467850514ff99606b7a8b975c03b05e3c031a99da72bc953db617dc41d664cad9913000000000000000000000000000000000000000000000000000000dfcd8e31042a2b903abc95630619551d24aaa4eb3a69f40224dfb4ae4538a303c975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: 852e70f6d10dcba613c39fef87c4147fbe2af99288ad6c18b6e266dad0746ee662ad0926f4c0ebd669b27b893777a545d12744de0ee34da7b38568eb1809245f9a03547704e353ba537f35d5784c37ca5cbf3696975aee1ead6b376960131f6e73250307390b74a10645cb38c7c16a7bff98324f994e6e3a8d7a0c0ceac903e8be98892bab7d7691ca83233d61a31c2295a134682176787a40a263f9d8a97c9b262ad343f3823739bac811f95014f6403c0bd8a7fea4064454333e8eb63dfff6b3a9afe291217b0b0178c075cf04ee3a0895606c422e24b634237c1ee72784e14af8bfcc232ebdbcd2b493efd28c9a849bf47737e20948ae7a399907b0f2a5ac9ded63aee710a30f76327f3e1ad042dc12776fef148daa0acafed5598650eaf46dd53998e6c38ed318ce56bd35ed18f99a34fcb4f427b3de31f4fd0ce2bdce0f80248ff2370e08cc2eec3e6a71783aba779abf38a8bcdac9abb75d80625bb4420e2bca3cf4d8867bab62d6b884ae9e6f98099458158947e1169685b1a6f7d6f554bffab3dad8488e0a159232f3777cf85d9dd4399a89f1610943bb7279514e0fc3737ef8ef9ba12a4db6d11933db6f57c48b54db03470b0deb7dadbff48d75ccdf374f8bab3b7d3752c8dc4b513070fcd884d94e435e63b4b40c15abf109ccc5d9ab51c4d069685550baeacf37a6736daebad595f96e2f82c5c458a27e129af4dde2eac2a5768f5e4a4970a0bc68bc4d0d32fbc275d1aa988ea425838297722b826852735c4931b97e145be9c6b399bbf4e970c83e98bd5c1be7942c6419b0819e600015ea82ca0d55894b0ace32f24b2652424b85b0f86755f1f8db64138a704cb6ec6f3e2a4a5e708713398101e0cf8d6029ffccdddd03d8a8074792232622e00384ee5b9db3535d7ebb14713a32806861877ed3ad5b293980b68f0408eedbbeee9bf449698f0ecee6635f0a8905d378d083f80a482334d30443c139cf5a1e2ea7048cc4a1829ff36f9e0f674ca22d794c2d7e9dd3cea60318788e56b3e6670215b82acdd4c9534fcf5545eac516261dbe4bb2e7fc38face7c59668487507ac122d295ca90af4035760c9b89ec44f432e8977583ea2da6a21249f667fbbb5c4307bd3f2e47ddfc8aeacb54bc33d1365ca3b6f75c0b50917e2c84849f1898a3e1c76ea67b21143f39d4002026b0e2686908bb9fa502a88c7b5c747f57c13b9704452c1ceb14a5342e40cad9987bfb32c769f110d3d39cd41178e248d51fe7d7f1c55a5f64764814495cf92a4155640a4d3411a74597f4c8571dd0662ac2ccf0ec3a82750c0ba5c3745247b7f09b62dd9c6484a1e0a0199555078d3a750784c96be465053f3e024189cfa2875b3763971b48b5c8ecd155f879f494d9be7f4e27417a6fbb8843200eefceb4334341f8a5a0e98769cc977979b405fb0efccbf442008f7cfa18b28b48ab56682a91d8362b6b5df54db3dcdfa25d4740a13ad8dbe014b210ec14af156b34511896e64d08f37b2cf2a383466351270118846b6fe505 +result: pass +shared_secret: 8da6007bf6e536286b9f65fec6f014680d193306a55d37978cb56b245e256eb9 + +# Rho leads to frequent rejection on matrix expansion +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe33170cc2bf4fcc4e0ec002da4250cd5320095843f29795b36b634ac922e3796ae428c894b1703332b83d9759027588f1ab2539180b75da984246a745ab595c46ce9852029995997ab27fa2b94e165025e7e7061f2cb35a907eb6ebb0e1d2a29e139f179078dbe13abf1787c3282fe45a1578e5752b6950e7428ff2693c6e6c4ad9b960f024a7e1f41783f7112489112af688b762819b222e1d6246717b730aa9b224ea64a1a45ace60257522505e69bd1b2235f8d71f8ba5b5ed425ffcdba742379a7e1c28af1c8b35994324051d7b46a6047b77762c158fd5977e57bd4f398d4f1a70175897de6c8a3ff6ae90373065233d7c4a0e5dcb8b0731914b37cbdd29148be2649f055df6bb82fb398a630a6c556c3fc442ad78e24bd1406a35d82c5f582610bbae17d118b3f0347bd84f7b8a6deaeba8c698c456502eff6203594966c1f7413a056064d09bdd273b0ce56e506c0cce2267df24a13d7a0cb5513273f37438b568c569681314c3b6db28e05478e075abfdd53cd9291614c2650dd58b40f66b10e3a5cd11ae650aac35821d5ff612d1662a3714962b3411e5996e3ca3b839a58898848ebfb869e9b214635109129c333e931b22d34c63c96a74c3745be124c153512c060ccc6a36d244139f106bcd78808db7cd0dbc3e5b452ec753a643107a5f946b8f319a0fd28bf86c08bd16cb0324c44a0ca5165174f4681b6fe85b21791bbe1b11874270069839213b5829aca7861ac642e4757437742898416e2988c3277f9ce35f82218e9eb72afec300b9e59bd1b10349994bcb34c9fd2b31ff7482ac4c75b693af46a581dd85cf33d21e600bbc2921ba49053cd5d28595799fe23541a7d6b4e4e6b59f761e0339157d5a272406be1a776b3eb2c3d33055626712b304c4e651996f26866dd8a99c607f0a044a4ed4c04eac8122114eb6f567e1133a7d385b4edc71d19655668a86cd64503f0bb1cfdc06d9d387e55296c4a76a71b78e64daa58440264a8a6e73d2bb8c028ec970c3fd7535bcd65110967cff563ee9c5777a465003fa7ad97230c2c76bfc41b5c9d26d9a7c3605905fcd99b36ad5c6ff585513f633b26617f144a3dc4c70cbb40b7c3b8d0331014fbbb7f3c59179d226dcd4758ccc3cab8679085103e8949ea10c796204ae993750104a2123ebb902aa8902b6241be505a9e3a6734191734bba77c969e92a9c0894367dec1f0d50ce5046ad6f3aabdb138f5746a737082bcf6b8d0777b4bce1a9a35b2e0d794ef713736b4966d1322594eb8e90a5af2b42c2d7874296401f4e6a66c088a73580362031c9b0119d22dc9e6b649ff220919d42167f5ab863603d474051e3c424a0f8516ec0652545c6bf0831cd8aaa992c120d2477f791ba1ff56ed2bbc2e39266cf618580b7b19aa94755869d7834a7d4a87e234c25c0e595cea31a8715bd76d3bf5e6badfc4a758d7bcb88b5a018228c234836a0c77bed231a64249a064402d5f0b66276113022b3bca4486efa97103560751b108a5a10579c73c1e06b0eb117ba5a635b459e2f3887734b83dceab3ce9a7dc758265471b795221958359ff3ea282bd2c099436fe3d3c5b2000cf0db36a63123e9c897249130d1d27bba527eea241d8c930ff80d000000000000000000000000000000000000000000000000000000535a9913e52f1282c372204cb9bacfdb259c053eea92cc8e75bdc797a5b16148d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: b931ab298f4492e30329ab86e3d92e6241f72c568f8a2744d493c2b02b8d5d41470f0d73ffc08deb1812a6f4143f97afee2682f6d4809a0ef3e97ac2ae4468a5d436c5549f751b440167f86cf238270eb8c2e3d3d9ac004fb9ef5245d32b4740fe79543c073b41c8a1773f11b41c04ea5eaa467758660c17a6b38cf19b151e9b6c68fc35708be261a9e7cc45d771853132a5d7059e3b6b9bc94755f451452f444377be5821aafcddb7e708fb80f31bf1a89e1691009e1e36b09d754870e24fdc640afb41ac6c4260b68dece256aa9467dfbd29a25ab901bd1dbaf2efc055263f06780a73fea14bafb12f14ea2b6516c97b1a9f56713554b218613510ed7637940272b502ef32c3f99718efa3fac323207da815c6c5d04823dd28f99049ec50fbc590f519d843e0cece45713e42ceffd48dc1b7a739124c698acffd4fcf1390351af06ac1212be3abc5f8a51369c57b0108fc593c5d7185686c6a27363416e53f1d578e7066456e6164c030328ac53c2ea6fbb6ff508be8c2f973d3a43476831c94a7e85de88b71fa77be26168f82ca3620d1024e2bf998340271a4e2df0654ef1b6c9d5a8d95ace50a5f5ca3d321a9286210a21ab97d64066390e287d85345d22f6b42d597c5ca8888c1f871e34a4d1d7e89380abc284afe3f1f7784d47f75c674354825791191b2cbf5607ad26931bc0bd05ad2113d5c93c9e0e71a8b6c69ae4df3383baf71877bd3274de23d68ae57d54e3679b40950c73fcd38c1b8ed7c58f887e5cbc74bd388f77b72875828667b143571f6d0b69cebdf828b49d6f4a6d9dbbdb2188e1b0b30eea6a5b9970962f00f8b8440dda64629988de710a3e086e6a220d27358272b680a91195115741c77ff04c0bed30a2c47422664669aee91d263a196ad48dc24bd386dd9df5724965f2af73bb7a406bf9d17f3485f140b52fdbb06b9153bd96cf0be8ed4c0024571f859c8492ed4d970e700e11360d4cd51b3cb29decc38944a895978824ee94ee6ccb6988337755c07491f43526db47e557636740b393d460b3434fa70833c490ff59aa62e0fdff9a0e664dea7425ee586c29c7648a3ce8ebe5b441f647596af140a87d9525643bd97707cd910e17cec76ed33f4dec0c5222ca182654c8b5ca12d5801ea4c26bc7ab9877d9f838d8455b59c5590f4c602887e219a12077f9639be7a6f5d227d64540f3636c46cbc1461e665f677b0183c5ce13f77d923b368d05030b04c16ceda5d511fd0db061ef3b626e50767cce8a5cc108486e941b7912d944a7a0e0acdf050eab2f600c242c250bcfdb93ab9218a4b495457dddb959e0a8f976bbe147674d5ee92ba71491812ed10fb7de3e607d6ae67344e0a611a6e82a1b66e0528598b30daf398c98d5370e6a1630b7d10d98b12a1470fff4c04a1859415595362e29c3245164a2f1124189c3c0e7b0c875c658fab040c5e0ab690193e3eb1951f24ef0f39bf51fdacd68b65b445266b758dea04de3b3d3137c9445351e9fb80f394b76f24383c49c747e9b15814 +result: pass +shared_secret: 46f591e3c6491c7e12d58a7d06ea5354bbb77337572b70d94e4badf7ce394e08 + +# Rho leads to frequent rejection on matrix expansion +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960f8569c9dd09912b200bcb155e7f388139675afca87b0aab4e4e2535207b4d1123062772bc8aaa028597d15f02f1240b3a4aa96c1b344b0b892bd52b3856ccf6ae94028574f13c09418eb998f741c1607461bdb8cf4094c795acada2c015bc2b5f4da99bc85b6715b6bd57aba2d016220ba2db3a9ccf6524474e0c3cf0003376b2aec2b031cc4a224b66e139397e338a8a1ca0ad7c8a8356b09078588955157fee40e4ea1177f7c13261427eb047d14a826fbdba1cf607547a93a61c8a5ba200abcb676deba97fab023f5234b46c99cbbb38f27fb68b0a2b89937be4f61b3bad5446b74542b52048ec9310b1a2c30c25c569a2fba55be118472f6147dd65b171c654e8c3acc53637a2f409dd14b99ab1a772d755bf34a43fa745f7d2a55600a8873a5cf852b1f6356bcbc2a70d134471c7720918528b63270e729472d1093ef72629c521e49508a3e584f81250717f73909e36e231b0883d9c474ea0dd64400d26317fb8569106983b4bc3d0818987adb741d547fb15235811819493c1a92f665352a92495acb6981aa5fe83fbcf620045275017bb652ccce8b748eb9354bc374c131a74854f9a2bba3173b1c4004607a2c975e3ca635737a7f5bd35c8798174f6bc30473c5e700b42a96054de8237b1927f999351f370f1e241d89083ab9cb09a9e908fa82a0a3ec9f37375f30eac10e20ae566b4ebf811513825baa99c7a9265f73b2833808a52a755bb106afce71721e71c693f29b402b8e483000e1a6375ba0848881c817b47d3cf8a2d64a757eb80e02109a8e0a873eda7333e7847902a4f4c44e533a8a8039516549aa7f172579e063d73999eaf47c13d73749796dd022cfcc9522738127a1c984d9d3755c29bfc6b52c08297662e24ab77790c056101bb2916385bf418222d752408ad1843cf6bd80353a2068ca714c082ef86503064274f94065926fc59c107ec5594b365606b20bc010946f60c7516c4e59c33a527ca3229b2cc35459bcdabb9dd8170b1b319571b535d514f37b3de62a906a05bb90320b88b989d3204511a2151bf39425a1572c192d8be2b695f18dff4a7ba7206d4409c9e51c54f5797ff9055837d2459dc85233d3c95a597f7596580a83ca3cd6ced5278c24142f90b653280b54fba3159147cb08095422d4765112030f5a696a628d8a67b90d27762665274c338540d7a32894523bc53dbfa760146b32edb938461c14792216a4b94615615afb151604f31b518c37ccd502709325a2013aaf22ac49a67350067f405809addb023e9a13d6734ce5e71f802a147c191536eccde7a67295bc86322a7fb83308f40a5517b61a790a8fccc469dfd752a45416f352b6eab11f0623551b49a5ec2754a674c1847bcfce66c9f80946eb65a419c06747c2a037a492d11947afac79db877af9750a85652f6b06447216bd69418a86169614e27b3579a8b3b669f8eb8b84c252574c856d91b081043710d0abca178b215854f867c5b0da0266977fa1e75d29d560015755f64b867f011369ab7189a916207c99deeab286e635b4aa6521da156c310cf4a592926b33f49062c94129a9547ae24a7e0bfb6d4f67bfefaa68cce739f46815afe593e8ab3a63a90797c01aab7a5f0e73a2d589000000000000000000000000000000000000000000000000000000b7fed2a7dc9aff1d845fd0f7f86e39a5d5e66f376a9d68ffeff6cb718eac8503a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: 87147134ba6c085c2b878dd751b77273438b4e9efb50696b22e725bca466abff4ba40a150b68401f043b73127177e579be1d727ad37ebb79b2f5d3ba038d4a8a6b74633f31bffb103290c0694beb9c4cefcf47fb2f33ffb3d8b6126665cee64c6eaf385a816167d149a328df0efd29c4bf324e4f3769f8d7dc784da38bedcd8a653a42b0738661d3799db5c9a8c65b88849d07b27c5c88032a3b090026fa2d818a4e26672fc81a97769e432b217df4c551243354131100947f91df1cb442200a08eded975c39b74da9c22dca588f8fe63cbbb6470e3b029eebfb5ecef2825e834fdcfa2337f55571506498dbf2c97fc02baecd0d14ddbbbb4bf48eae0de95d42cc8b364d6703574a0faf12f72df2482b78b005d800e31bf1492f4250254a0a48990505300d90baf577191d8cb6161a4b39d18c84515f26216af074d110bed4b2af846ae9b13fc485e55f9a72f7347efb147045f27c914a415fffa32ab9f8251a03fc7efef160da5dc25e5b5ff12fd5e999fb7e55c9014a9866e2018d09a4e5b3a3c1c833985e3bfe3cf484a6910248794e636822c40f6a7ba6cc35baafd7557e1000da487574bc7f252c9b82b19febc1455de0b9b79ad1f69931180b47367c8f621b46fc09d8a6d43d91078121956eb44ee1f1548f8d3513a300c626aabe660ae38fc0625ad42afbb5786694b747c65fa38292cd5127f20d8ef0039daeb8963d8639a17a64012357d1612910591faf05e842e23f14faa4b01cb657bb4a4cec7a11d35cc2dacd5556ae116a1dc53a82d1f9ce151a41dd05c953407669f86730f9ffb68478179306d56009f2e937e77995937ff72df576c552672893f1f4021d1be8511ed04d02278c9628b0ecd3182a32ffcd9e37ab0795cb161b50ecd0f97aaa90a9b4af816dcc21ec5f1f54e7170a4167dd2017325888732138e854aaf7e2eeaa964d974cfd3fb810386937e92ad92cb4fd0b730004918aa6eba5b64d1df55f9c2d0d4c2db8188918b7812a71592d4a0924fa67b62e3feeb78106e491cbb7ac9d456c3bcd747db26ebd3b822944bbacb1e742578b35b4d6d9f49efca4c929276ca6015739a0b4a369a7961babe2ac95b3df89214630218182aaff57be9268367282e4a040accded4cb93170cfd765535e26d2ffcc4e6eb6832ebe880497dbe5edc3c724b659727d5aa9b067719b6a9f02616504cd3eddf0d56e33766856b4542132560619866958f8aa54d434d302f9280208fcd3ff42bccfeb450d6ad4f0dad91208d357b2174fa67df22ea7b4b3176843bdd5e581654fef45c16017fee95b92e5a1f33cc6e3eb1db250e7c6485d368f8fe9e53f5c863edb436d7ea007af06570d3725f07213f24989a637d9481ee38e26a4713450d122849990892bb2f95abb6c402053a9d41bc8b9cc9281bc6a45e295997a1523942f125c3f899f9722397dd1678d3d30e43c20fb0f57ba95e6d825adb66ad7cd23c7a921709b921bf1bdf0c22838ccadc9866c61880de260f32aae94d6fb6e5310e72ef8d881c3d5aa08 +result: pass +shared_secret: 05c30333e58ef628d111f6aea0cd8eaefb393f4e1b9ea8ce21c16decc506a407 + +# Rho leads to frequent rejection on matrix expansion +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3964af3214683995edbbcb52acd7830454cf669b608c3cda86752d97e95c16c99b258ae01735c94a7bcfb585f451d58a0673103b203e32f64dc94b301363cf1542202074458b6d6e8cd0076327718531ba40f2543a1a91b0fbbc76a93ba4c6685bba5560a9d6c6c42897fff8594ec665e311ab39edbc99580c35b35796b0c3b0d89b8658a1b140979ecd28e87f135b5b781374a766cc18f1fc03a7a3ac7f5fc0c639a2ffb43bbfe74c709b303abb1432614bb3388baf38980f18a141d502797674d76bc8159a8062c79146f24973d090bd70390961ba5ef62a5575abad1219e5bd2c3a063acca14702ee58a32a593c5236bbd4ba938a339108c8cabf2a08516408444584ecc4124991cba6219c7f031ece14288097ae7ca9fd370a52ed7835388403816bb1bac26d56809e9ea77a788c8d6bb215b0caeda1717884913754c42190cbf10387e56f92bf46209fe448312d930cd735770b6ba940cacd71a04d1692044a1930b0c11b701c851a26c2462b0451930180415de6a1addc504724042bb832faae8576f2316fd718657d7ba8c975f6584cc91c9cef5609a433b6cb1f08476363687944bc58c888a00925cdb862df89cf96b5a9e7948c53a51d02001e0a97bcf4735d99554bc86106f0970869a4470794e20051723f40ec64625ade826bbb9bdf962a0190c708c0946d96263ae580e0968b01d03c31d494bc002737d990bd0252662bc34337b1093b97d084baa73eab8636615a832b7df2a9c6196495ca7422ebc208d6048e16c2390c1c91325a30f9ba64b06911fe41b5ce35f62c1567029018d34775b6a0c8f70081e5c12d0c73dd6693b34e29c6c669fc485c6b5004fa06a7fc2d2c995bc15b477a1f7463d12016613b24332e4729f8784f9024c2b4c2e91a9055cda9347f7cc02f532c3e80620fbb124f0b8da57abc6e421606b2422dc450c5b97ba040d781a0ab4ba5cb7998aa5ab8a0681339dd4b8c1eb77ff830a4e865f36897899d003bab7395f5b580b78b0046014181c640341aa0a5920b1609245f140bc7a31fa942157569096495affa32248c4a67ff5456fd8189b5593412539173c6fc898118b2b98535401ccccc1fa7945eac36bd248cd081925c941937213263c81274bec5773abb1c4607373029c6fa59723b893fde7b77124929361467aeaa1a86278e6b3c47a68cbc28781ad199c68bc09f3538f2933aa011b800f9609f6887ca4fb3857f869c1ac3147a842359065b6a59d999465ebd4228735a5c7f984cc93928d4c7c44ec4d90d55d66709ef68827df87abcdf433f79342ad4152e405ae69f56689747ecbbc0b23d55c5f86b5a699a06df3573d8715c6e667bab949da615dc1f9620dd28d2eb1ae6674506ddb212b315b7c89b050e48fb76a4946b7572e6a187dcb4130c80f38328037e2ae7477bcfaa71efc3531b2438800744116b96a0f48a1e549a33d19b0a05c206baa07345ac3427578650a97ea1150ab66cacbe848d39c0c744612b4d0738075251f7bb508113126a6b0e93b67bef50e07843c271614a4dc8799bcbd633a1879195f570907c05310fc91ae2e6a7ef474c6cc1112653589b32393d1bb6d741c19d616b6a93c2adcea5762d35aa285702882463b1d5cb9de000000000000000000000000000000000000000000000000000000f81db56542740a79d6677b9acfa5a3841151471bedddc4d62cea3558b2ef18fc53f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: 738318f855b7a4cf13603f7cb528da3e04dbf38e61b3947e9c98d96d4733e6a2096a06afd90b4ce3eebdad11c4635d9e1ae8e058908df28e936cd049100ce5b69a29f80ab7e827c3be492bd854d20f9b0788fd3c933f3827add6ddfceb81a95f116d48adbdd6f543bc312fd5fea9f1fff44f97ac89b1695ca27f6afdd4a01eb80182830f4e1fe457f1dd7ea64c496f49b4904e47be3919a0d90da460ce60c8a6d66bc8d3ff55a8a580899eed0597981b9118c7deebbb746d015c8e117814f9abd649d6616bc075239cd7301413c4815eb880f7162666f296e06e4df2349272058d8f13e7255707830e98acc340195c0f0b61080fa8aeee33f1ef7a02e3faad19f1ced92c3941751980f5dd3c33b933423ec450f16543f480b6c3773764cd09a469db5d4fda16c64a0b80105f796adcefea0cf17fb41887e29d56b86d35574aa8a04992160408b6c30bb6370ad3b2eb0b8d772ef1680f1160e4fd3a6431ae5eef86ba8a4550b9344e2155e7606f211e85160642e83a923c76989d5f131986ba424c2d007b22d3efb868fcbdcf0b78a41b59d34c9fb24d3d65b9fa3bb87e36601ce99ecce01cc44bc120e983aa0142e6a56a3a6a19ca75c73185d48bb6179f8dece198e59ab821dbb83c429336e81f90b562f3da63c3fc910a13b8bb04a8e53ec067377fc1f1db752e9b2caf3827870e01f5f632734658a2c69da353959e5f00574d595bcddc551bb728bc13267acb7cade43b21b244a54716ba3b765ae331fca979948ded2c7fcb9a773d6bbd4509536d29b730712dec068353fdcb9d267b5ef0f905f34823a21a1be3df2657a078e678f6eeb6e0ab1c65c034b329421bcbc8f505a58a78d250e1a003d13d928cd6d305842dd127cfc805b02280d6f6146446b551ccbbbac16a4f1316359e5c2b801a31f674ec5a48287d7818f7e8e56f53c77a0004d8cabb530f95a54477fe5ed63dd47bdbc3d3d26194d9a488a909fbd4a3ec97163c7b8fd0467c6bc20d1cfd03046200baf232f6f5a6798300b70c197f1f616d12cdd17691406636fb1094a2e3e4343beb84f9a67146921397ae9be4160c1c81886db504591122ae7c90f1131572e54152ee1a203f521405bb928af9441a63fcb5445c5e9b2afce13800750babfeb6fa88994a8330d8d51061642698f02380d853bf2a57a8eace6b1d52361820342d00bfffc2dbfbbc3c0a8699c5f80fae249dc1bac232383b6eeb243d9e960809fafa5bea564fd610ca7c399c4dbf5000e4386f4700a561450d02d92d8b5ccf428306a9e57eaff931b31a4ca17e4d6a179db2abe53452560649f5b8f1858c0f66bf64fcd440b6384dff5e62f8983d46d924d85a4b449543ef8d5e0c023353aefc8f552e186b84378a1c34375cc28d83a62b04addcd057f4d83b42926f811b2f9e0bdf9d59cc1f65dbed5835b60404c048b386a3d09e0e7700735fdcb124c4238e1874f99703a685645cbd5cc3506799984d0ead93cfdcb6507d0cd757d2c0f1e350b17a1258e65965c2c6c092b6d4663aa3 +result: pass +shared_secret: 10198ed9166d13a1ca423fe3b36244be9b94fe16deb306ad742f505ace69e1d3 + +# Rho leads to frequent rejection on matrix expansion +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d7493cab527e162b7b5b390723c83ffc170e3e153b16285676101d66999fab321e9577d9f284fc3531e50715e790a2714e404232640de9bb0a4649e344ba2c33977f20c4488463a0dc58c1f71055b353a749a54db7b9dd1321d1f2812ce8a90a503a1e0e36ce0ab91309424b896bca7d39575bb6129e0460282c76b3937313839ad8672d4a13ef0f9c738c3c473f38be4a84de989c745576ad6f3bf7933879f69b8d72b93aff64c3d29292a794db4a140029519b99abd78017e5d84c578369a71089ac7b93c97a114e74a62c98b0b7ad707e60b0332b82af5d346f8373c11c83bfe543d8fb10cb9f128f1509ac3e02ceef44e52070305853fab0831bb05bc4ab8b311a2867a051b2e43a8254c787fd437838160ff13b752255e52a466b8543865dc61a40681b1e74eb7504442e943f99b7a4a695119628dd8603f9ce29bb9ab9202cbc52b78bea806d0d2305b442943c3d812e2d2cf07f2c2df778c6d6794114189162c537a9540a0bb75660548ffc56b1a5598aadc5055067f87d545f87b5bb232ad6497bf5f68110d16530bf80380410b67a47b081587fa78acc0621e70624605456aefd9ae2849c715a89a00332779216a6a8b3418196e23e76f919c6d4476b4ca606fa212258bd520e9d9162b066ac4e12568b532d584cd091606eb9a2f91882daaa2815230bc21ac33e8a8408be21b13c1cf90ab1e6f753843f6b5fd3446f93a2072cb3a94d5090e870ff2d788a94c912837899c2b04598c0085409acd1767214c822cf3579637c8beb94ff9b6327ff47ef5618e70a5bdcc76c287551ee2ac24229507b0d87b779cc59be8cc4d30ae0e161ab62a05c7eaa9a209152f37c798a2b1c76b2265dbcf930b131ad88c65224c4a5a2d1712c2a631c2982bca5afa6029e52824920c3c7b3093988d998001bfa23d9b01c91b111cc0fb7accb88d34f34bb7829192d21923d15faa81267e284b7aa18df181a02932a56dc4662f19148d055a91f8a3d97407ab9257108b7447e24a24c12a65fb1331dc2d06f60561d7bac9c993797255340c6770025f776270742c88ee4a899609304d75b55dd2c303b97cff2871cca3bb9cc8400b930087571dbb4c73ea1460bfd34595650098f38548906c2a8154b4017626a6b8a1db4b2a221c010937fcc8c06d6c7132688e1f2bccc869ca8f881303a52bc6313149b6450de00728808143f438be904c8de5923d8a02482a3a201b050d4b1735867eb8e7bf11d5023668c37c867d156ccadb2c383e113dace4a090aa9c1cc530cd17a94fba6c6ef062eb357e3293b343b169c6e169209b0faf0bbd5e42c3b6c077b1728ebb2a1e44d431f7c34835d9b0021871aac86d0782448d08236d94c0f69a46090b6c5916339baa15222a0496600dbf012c20faab5c7b7613c85a5c759d178c6a9b1596d291ce6b975363e47331b16735db2fee1027ffd018d8f338d712b2a79729fd20392c837fe40b3bb0ec9f11fa566e426637149d9041088419575db0734d854d0a0c769550a8dfb80da3cb9f4a7ba9b4c84e45b3457007ba2f380d19098d4f915023ab00e0872dd6485e1b365802d0326bda7c75e7346b001cfdb5710d1746bfccb0946151abeb7122baa4b79c4f6cc10828771cc9160000000000000000000000000000000000000000000000000000000982bf7a037500daa285465a7b1fc2d22ac15a00c1fbbb2c84d7da1bcb2b7bc9e366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: 37abc2d961d3bba2efa196b62a4f9acbcd14137a7253a9b30fadd1455c22014f3542558291c55a8a00cb44aabb2d0726210b887933dd24955282fb51d17d1838b6804186de8130529c251621677d8464131c99dc5de3879df80b5130df5409f0d75526357ceecb0be3bc1709ffd3df917e38680bc53017f934179ba3467674d8231f6513c64f4f06507a2e3d10a4f2e145d759a23897dcede141e5b13b235b274074eb976f84edda05d507b23f248dfc3ee139f4309ba099fcb250d7c4d0eb61ba359fec9ba74186c5956f118c90417931aefd5adbc179f58282a1885679f21d2ca69a30dadccd896b2e84b4497c347a17a9e3bfb9bd8804c3b3c7b689e1ca00d3d32e1efa17edd4c9c8a9c8f1ff06d991142c193489e1de0e4bce1e989491a0e1eb2447fdf301b5f72a31601a119315af7bb534a088707920f8ec8a951f22929f90e601e231b7e5b46e930d19298afc429fbc0a68a6227757b14fe547caeb56826e008786e5cb4d01feb8ffa890612127c17474a50671890c5ea51460973b3944b66295b917f0bbd0c188e37e6d85d3a2aaa1f8e0045a2d954fd6d22a36ea5f6283652feb40a694e5e46d1953de2e17a090d60fc16dfae7b0d0ab5bccb33ff90d13860be15cd4f1e4c12233a009537920f4b4738ef1e5d40c67e9aa6b07f921ed1100a1e6138c779062ffce429167c4f204fef3b6912f3b35eb44c9efbe164ce5c939027d8e9bf77ae311a6df1fdedb4b5fde5aff35dc94bf023048507371ecc567a1a7ffd9aec53e2301e2c8f9660890c61693fa638cb62d94fb436709c7e619248a8ddd71104d4b45f15c1878a847aeca848f7826e319856c09c4418b9ca0893b983734daac815a97985e4529cbc455855122f8754ced61b89d43df961bd6ffb1c6a7a74ca4a88bf7c2bbe9ff412b8f2a41294503425a3c39a64627a41d70499ae7cdee4fbc33f042e7cf4fa04d7f60452d6ed80076dac04c7fc2c8c9d79d7f7ac8f125b3b7b12dc36b6a50f9316ef24843594ff5d0f42e6bea4fd893d7f59d5d219f119cd682438a917c28166ceb2e96cb5d7e096889543fa145ca760827f9734171ca2c46f49f195e38784bdc6890d953b6edc4d04c4cc635b34847563edb6371e1cf168b47a506b324e66783890f5e21780a94f3d0a9d3021bd426a6e8c5c748661cb11ab4e4101db18f077bb973207634a674c7940863cb87481884a173aab7d5929b5a77127299868c4dc275669a1827a16788a0adaa52e85f52a349ebf4bd8f864d052e1b6978605a6d368dac7cdbdfb13f90ea6d2039e375928d8b9fdda278d896d847faa28a9a1723b16af26110922c76bad4154ce7807e5a8f7720b7b28ff4e097bcbc70bb8f7bf25a565d8a81b81f7569ab3e3d868abb474845bc2e6850ae4c3caa887524cb34950f8434baad75e7ce00808f1381d93d6f6f6d8d85c86b55678e5bb819dd1283485f4e1dab73819d8882e5149fec4e34357f881bdbd0345a6868e520c6c51bd9b355765cb129248cec784e7658e33f8929e0d4 +result: pass +shared_secret: 2bb1532ce907d285b2d2860eb9bb5070a41ae73585743b26b948cccd1731ce66 + +# Rho leads to matrix containing zeroes +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca0d849d09133648875d99c8a2d199343e2069be06914b183e36f76206920fbb9294e3f17787c4595ab553ffe18287896cf6452e149cad67b901767a6e37740624d12b4657072571b9ce524780e2374d1b381e211159eaa9e8f5ab21315e3ae48041f50eb75430018199290325406bb65eca0088fc5e0b72ae2522a1e65962afea8cdc2c1ecd1a8efdf38d12ca5d4bdb8ba4d50d5de96f25034707aca01a296e63033a58200f32079cb8cab973026934180857d054dd75371700ad89102434f2438a823048900ff4fbaca832065ad99fecd12a742c286c067a93ca6de6e85304572a4bc2729ee2b421a41316c0bd766087eb2a88d50cb182559da4492a0324afcfc519e0c1c83336913881cdc9504ead243878caa6783557eb26599fc56fa26c6209f31222b7bda6db9b50341f5741b6f029a00440bb1af6b4e07a46ba9626d2a3475fac7bfb2047a9b3139c225c36bccb085a3b60c51a6227230df260d8f47ae6598ae065395e5abb6d5478ee97a9eb1a369ad367b075642997513159a1bd426c19542c86da7de7d626c7828dff7c9a6b53006ce03cd54c4f709c231f70829593358ab2515bba53da61c71c9b5b1df2029fe3404a6a1b7bab3be1299577c86997e48d38a17242e75847a23a8ad5a7511bc87a0261a8ab0e07889a53323ccec92e497c930dd57e43f39fd495b5cc2268cadc2918cb8ca24aa28c110b84c5b2b075c2effb3d44b6351cec34503c94e8aa016ac837f504aff5f68def8c8e0324754736950f28bc4d38bb6115584fb681b1b05f8f8ca69f924d25ca3f7715c72fcc1706f83f8538ac14b79581e103cf385dd8962d012309ce7774c687ace4d8372d1ca7acb1cf8f27545c07b6204140737316cf8971b3448127434156c9a4d35352dec27dfa82bd5e72522517bed633a3686ccb64759396db9ba279a5e967c5284814058a2ad44b8b1e9a7786ec1cd7f63a7ef72bc1f5c35ceba1a0fb934a2a547c86a6e00a51e9f89ff8eb68e3a48e7ba03418072cf0fbcde0bb15a6ec0ae648c012203bd6d83e3dc917b7914ca31505e5aa62875aa96c4b4c5cbc5b368b18f68264cab71332a38680826895d339ca656d358a0d40db12ec43733e60a287ba3998e7aab76972ffdb3139b30abc0ab3a089a6223a04c92a9880b89daa915130fb21ef6127fbe74721677d129793fd035d6fa2a1f1719a710a5030abbb917bc659b57f166304a0474daed828e8145423a87abfb36822d8211d9508a6d53994eaa9053c1a69d03dfda68593b1b9ad2b3cc4591067658f8d62347e022205823942c0981ce6846bf02fa16a8b20f39e1a53caa21a8f8ab4667b00c040228b262724d7a95e1718af48ab870675a4ae537d364378560b4dfba04146381f4977647a333df3e718ced96d66051c3f5c2fadc67f29596c3687948f455c3b7b13e2789b518866968788758c2a172b0de0fb370722571be5259c76b06c101250a49b542375a97907d393328afba0dc21948d96861b5cc8059b5feaab36aed39a1180a2bb11ad797752edb36a5cc98ca13c4e90e48f91404212e9ccd4a76569d661735bc9709b0aaf7b068a09b598c96557ec2695755c53a7a70509d0294a55a1707e040b2a8564a623c5ab9094000000000000000000000000000000000000000000000000000000d4a83033492ea7388d0d03b115ff3bad6b0a7c4970d30342a3e5c3bf11253ab611536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 37fa90752936a8099c78fb7599926bdca1d3ee985af00c51add7e3ff7b282d26b1690f34cd3a8997ead23c2ccdceb07ec9df81ed6a8967b848c406340dfbfb9bfb223b6dc849ca5b1969f7aa519a011e33cf10e641fec3c0411d22508a18bfb316946ff41be61a16a75bff04d87c44f33bb3ff9faba915ef3e94ea4bdf1a6a296bfdaeb3dc50aea22c4ddf77b1b53b753f3c228876c6aaeeafbd5c59d748b5e596535995e075d5e47370e5b0b570408b1f8ca0bc0c6d60099c6a465c5e6600deeca2dffe0eec616d97d9eb534671251956505e1c546975c8f125ef2a50192d5106be103fa8b475a407a1a0452310e8b1d78c1147640e3873ecc21811678c276185f24e5c6742423a8778f5a2d74a3fb7ce6862c5481a079f7574864e23886658b2108891480a481b64fa372d5d628948c202a4232bc0f8bf80ce2eb4f90fa47b6ff1dd55a6c02a41f6a7c68ee7f83a2fa094789ea8bdfc70126de68a61b5f8ff5b92601f97ebf53b3e196fbd595dad44490722147737f54d9e69835a98d42ec10cf1524dff2a267156028a60bef51cda83abb1f5df8a5672aa336c02d6591aeee7a4313b4e6dc2e06404158a0714bef56df074cd290fa8a16daa8a1fc8f49ec7067be5bb5856f23afc6b2ff72a2a64c967c374a7917c3552ad54124633285b5f0cedb49795a20116b692b8ed2b49b0d421eef3c51cb99f7aba701b0387059f34f71b12d8517e7495eb0433b69340bce1c755449f1d08789ef7cf9d0bd528c262178af413d4f40cef52392b87d805a4d88677b1b8275640b066e46fdf1ff25264fb5f4eba7e9e1fc2965a27108bc32dfc4ce565b98577f0d1bfe37471d11c3afeece6a411b33ccee3692f32c22f077401135713e33f5f868ac1852120c170336581521834e762070b403f49e08e52ed0458866fa7df50d8d3b5fa8e33e931313aaeca6bafee1cbfb2743762314ce70fd9fca8fc34b402ee5a2ca330f60725d5b81a6d35e1c41f6d8c88939859e3f48c654dd8b9cbb4e9e0afb8aa3344f6abf18b6f5d011d8905e12f4be7e7d4081573649d157d4cce8b7b2c5e13875e0d2c7dc4bff5e9d436ae112338390acd59c7b7e5a086cd3b00817a1a377681a73531d4f1efc7ebaaf6d528e984d9609c81714efb89b3f0bab8505bcbcdc5535dcea227d3507d38cf72133c252f5b425cb800ab6198ef3b33391bd5043ec17293fa73eb8f3f972e64c5dddc851f50f5c48175117e533c87903f2d215a27c01f6050795109d200f5e39793554b35b2a339695bfc55d1d32a06336749c09f0ece1e197dadb485e2d544823e013cb84a11cf44ac7fb4f74dee147e4fb805059fe67fb1eb7daea7be1c5e7a050236ea8079a6cd1578715d8510a53c03a94ffde8a21507086d007145080e07aad2e7398cd98305536e6f3a0a67f83b16698232591337d0cb465bb13c3570df161e97f6e1deb3b6548aa7ff4a30d145f64f2571bd7f748f3044afc5a8d3e2f01113430ce83dd59b0a627ca759551a635a68838246af6c304ba843 +result: pass +shared_secret: 359de9eb5f1a17bf7215b7c1ab7cc320d7801f826f917755a79f413876973ef6 + +# Rho leads to matrix containing zeroes +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc40da241478b798a39e11830b402803ee9c4decdca918a7276f2168cce60092c29bba4cb8f532bb209367748599501572dceb9560ca00bc841e442a41e15b590cd63fa7921b344018f1a223e9e44ec933877c330d2b72531729ac91746e26c61381c80d98003265c306040c85fb95be547a46e3c01671401a42237da688795dc8c9acc86208c36911295ad22b05a2717d810076b63b632eb254491a414128377de53f941cc7ea1018bd83cf7e6a76d85211af63cf2ec856e636a9210b04a24abab1355478d132805802725345c43a981c2cc3fb0318db62531a045d2ef57680b547bfdb9d5d356464592f47c2360cd249e73a0f59fb470f4491a9e55d6fa9a982b97ee235adbbd8039beb9f07ac35ee5cc6243897f5c81bd9db5591c7225e90587279b35c5a1c075ca5b7106510559eec9ba2d2e7143c01afee598283403a6d7597a38b01bf1c02582035ba743e1aa20c49983779ca8279bbb53d5115534916184c5edc70ce4372bb25c48a2355c22a5b15e7563554e9a0e6f5afdb3aa3a1cc5b32b67ffc13756d65309dc95d561c91d45a1fe57a83f9c4ae8716bcd8708efceb851e4c3cb3acb4ebc7993d1056a485bacdb50694a81d12dc098d39a1f407468e215f6e055498d215f6f4bb8471121eacb2a324635a07864199a0199b0b6276a8a4e5b9ff0ab9ad13474ea6b2ca46b2c41027644a416771cafa07a1ac28519bbc0888f3878262c871b138aa109966040447484b3a999b7b4a75ad185475ac46ed92a373070e03a90f8e1ba97a91b5ace881377a51c24bb1fa85451cc94c72517f3d72024e7b421666cd3814066ccc5d70595efa756bc3760688123e9c3aceeb270a30a23261ab23e30c7f0785a360e8a0bbf5401450114f80580b03ae0b503419a25861331d58c11ec1c21d47ca9dcab60a56a5baee20417172a4535bb6de18b151bcb4159aab3fe69a31d5adf64c530726677db07dceda5d94a7427c189344027fe819c50f10ae70e550e154bc7e5a698c324096e9cd1e78053c6a05c7c11e9b2b532d19a87dc08dde0c73f0d3357f732c441462c8476e5dc5881d55465893438e60350175178213c0b1d8b503782d786b63c1e66cd3837bbc4c891a364b42130c1864c675097f65b6acab701de01124ded8aef4f70479eb996c5558cff287ce1826ec962bbf554abb282442a1bbcdc210ca389c50105eb253ae05c1477ff0523c85a294e084504616d7f75ce624925dc0c00b9c3f2f1363d2b05cbcf165f365390376b9d1817cd24560604c1512720b09d25a82f7179b74399fe46db356253a8320b393b068f064db6a353ada951411390171b47dc29bc4f05a2bf99aad4087ad54be6602bc7db23ae34b27d594b83e798f22fca1fdb56333374f892487e7289cfb01be4b8b03f0d9c2a589ab101494517264b6ba494cb0490a1871d301483a4c647e5c88be907c7c92abd813865606728bb95aa9058bba6cb3953b012cbc2af7a4770eacb6f2a7b9e8e94833e0592717be06517e9d33389b993a53833f9ca20699cc3dff64995ef914c05bbfe154951b7221fbc779740b86cf59ceb353233288911b1242c579c508149ed71052aba9bb79903e23c75258a445611c9deb185efb25524bd60000000000000000000000000000000000000000000000000000009c1b1fb64c47e73550adb98b72060f295b67b70d01eb99fe6c7c4922ee2362412e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: 06f9463d5e9d8718bd3f56e92a41b4147298b758e670e938ccf1b048a6facc0709e58ded8fe9a88a11ff81007e066c6038388b7fe0e5496c02edd8c28509f584b9d58604c7a01f3196f99d3bb5fe1e9a6d2ebb47b2d2e0da69071b0f4af22dcc830745229081c266780c1c5dec5af5b74b9a2355274ee0d0b0243ab75a5f59f09dfcc2bf305f5df0ba6fb24c01c9bfbc38749681dcd401ef1f38d2bfc29ae990835c48a80f56b0869e84f7524f7d469ad2c63aee4137130575cacc87dc8fada26c4b2195644b54db3ebfee1e4fc3f13ab744dabfa044ed7cd099ac836b8faa41e510d3995c129429e2f4c8b188b612ef32eed540915294be069d64c662bd301381a430123a6ac2dfcf2c6ea4eac8dc5b066d7cca6af8f399add96abb2154b9167f57fba21a145288ee90a4e47595738d7c32be27cb1b0e5e16cebbfcf5323bd0b719a641ca98bec4b148128e3fa11963070eecc2329efbe9bdfed16df4fed34cfd03e65a59e20bd3c7b8f012e88b8262473c7a36d00a381bf37c15ee6d709f9f4f0042080d4f67cb6f4777f92a2f0a4b07bff9e925a7d7ab581ce46f055f35c1963d283e4a210a59dad5dfc7a679cd828ad96382046816848b1789ffc84babaa60991082418286bd281947c7b664543af16b8ade454d3d8ae5b416f82cadcd7eefc5b135bd6ed577e8d85848419ea73c3e0ad7276b3ce8773e9881384b9d48ddb6eee9d9aba7dd2a3e0ac8972e301d9cdb0f25893c90e68f2d1ff8ff892c6b59bae088dfbdea3135e74501236e416a01c770bb3c77c3a634a29ee6d99a0f954171078c1eb44d76612d25d7e51fe3756df2c87482a709384825f52dce92884f8a3ea3ebbe219e0bb36327660b1b7c44583bdd924bb4ffd6baa933034e92a5feaa13b3bb8e8e4c0a54ce58f4a48ce0c8baa273e963d74538c55d2414891bcea9789764247e64897c25a8b154d2ef8d1356a77b8a5909c9a53d45d2e4d7362e96edbddf27bda011a439bfefcb09bd46bde933b5375bdcbabda95933f859c0c43cd60f21186439701b7ab4f19c8bcd63ab3adee01ff5c2c47867297297ff823c814bbba614e87898bd0bad020c6f51440037a687bbb96c558ddc0f2a250b836bbb36d88009a2575728eabbd15e3dd14b47c00586f371e8e7d964d2cb7c7acf1bdb0077ef2f79ad0c20e6134b54a8add35540cecb4a1db7bd8bec65467745c2dd4763d7c67d9a53826c42f67176354d472bca647540b404c0e84ab05e4d474dac551f0624ab099d24fefa1066f495e0bda8439291e4c18718ba9ee97c16c385309c0d9505e51ab5651470148223603cba76d767ac5131a13f097a537eeba099a18144692b718cfba31b748a72b69f03d8226bf5f8ed7b5ca93b40f7e64e5a56e6edf2829b61e96283518594414603e7acb8e5cbeee0a8e9026196afd72dd3448ede9819a89a580992060b1852af4e2d3451ff7518f18c75c4e4c453f2d7dba5cdd60f5f4686b5e2ef272ea958867501a3e29a9746bfb41f42d08ab860d862b6c0f4c0 +result: pass +shared_secret: 9cf796413560833a3c2e39edb3f4f4bbe551109a4c0b9a25c42777d7d89361c7 + +# Rho leads to matrix containing zeroes +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca513c4781290679e16c822f2246004c38ee6ab27fcc694e665ec690515542eee6350d4a13740b417d1b91883537b2bba248a61108a818d80c5c67b1c3265c124f9e56be2a13129121e030aced4585189d58978cc3750815688763bdb44a0ee46c678999081d42ca342b414cc00539b6d19645ed18ace96a46c2453af3af9b73ad649febba71e40802e3871cb3661c2c7c1480b9e15625fb61c322f0141268583f4c9b19950018c70a55ed500625cb207e9219d2c9cea134c6f32a606393e94923e3fa5729ad2264fc8667d140d232a3b68a93caa9098fe242f99305a0fcb3413ec8b22472e66754edbec064e89245301bbf48a8994d36b4093401943a427cb5388132d3543944e656ae51c72118821102322a8f7246368b5d9e4756fd45d5886477e476e641b10d0f196cb6638f6c30ac2e6ce57230d4036cb23d14e8ba30d66e92656090199f1652003af17393b1fa912df25b6fba7bb3fbb5037915e46c8217cc88142e14622f028fadba21455b00ca96b2d039663f0aa6d48b0b5b3672203b76330ca4a14434b877cf83a818e71b97b77a4eb99858542b316c809f1630f9bba7e00a265ef2b6b2aaa45611726e1ea7d96a50f5cab524b138288f74b8575256fd7504740a256e1bf34318733f6b7a53aa30536bf0e5079e5b0395189262027cbd497c350b1ad89f4aaf88b219de48801c7bf97486824a7b7bf723f516293f2f786a6989a35c192eb8b009fd37f950cc6e08592a1350c680952e92887b5759249cc70bf477277cc18a9e95da3579bc4bc42761c505504372eac4cee71b4d82c787356983380666b3718b288948372c11fc855b3950e633a70762490ca13c11c6b824478a293f5161c782c4ffa5fd0a64b5522c23979b2434ab52b783a37098ba2da100da063dd3191c29c12bab3927ca721263cb518924483091070981a902518df41ac1280bfc7ba2f2703cfe2f8cde65427818215fe57b68669ca97c977af38845433295e770c4bd4cc308cb203d823c84639cc9496d31424ea778b0f215430437deae7b8c6906bd4fcb589d251b637030f9607e9bba487fa0fbeb9545eaa8353c738a9f02b78e19774b84ab8144f20e39c62a16032d924658262c75b91e5a471ffb95ca40b5c1d388be8b55e09f4980a274ef5a5cdf5137c1afc0325913bb1ac608a210ae92220f4a47d8ec6806dc6b5efc67ccd677d5be615bed15cd76625ee4300f1e8aa9330952d49aed6b14c8550204d2c3c61828cbf36322fca4faa3190a6635e2f0809f45b5064929c14e0762d62a3c8839663fb8b9a135b715440d81836bf40a6cae8333d4496e4703b4ad50482e8ba9f5163838271bfb66d1fb462d51418e2792cc7370f7806d0ce7b7b4a66af2af770f5a253c46001bf82988a4c0c008b8bebe64bcbca680d3136e48bac4f030cb495095af7cc418b3acaf95bd6b636a4f92dec211c4b2b4e8bb90969681c61ac380c16ce7dd0aa3236957415b29144737c5b9124575872950a23c5315bd3b0ccf2a608e6a0d3659cd1053938cc1e68c131095cca20c4b2b358c65192b3d812cf73e820f89ab1c5b4c4c2270e7b465e2253c179d312bdf77f22252d3332cf685abeac1c4026f95e9b9b79c5a3842a49b4ac59000000000000000000000000000000000000000000000000000000fc068f82a15745766e3ec7df374ddf20df18b64e7ff18bd526fe226dfdb92d545ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: b812896d14f191fba331fe20ae245f968a421c46ae8e3360f380a9f0a00d50da4247b232f5181ea946b494e9d99f82e7fff27d8ccbeb6fa8dd5e12f12d2afb02004f2bf046f23115aa3f7e9e5bab06803c4df1d6a0bd935c882721d09a3b5c41050afe0ae3706fc83f87c49fcc22ca331fedf7787ab7ab0ac9f04fe405f21d3384b1f377332feebd65e11d7989f56cf7430ae8441072a4a8e9c8be24a4a1fcf380dbc0a8543d2159de861281493516d3fe7f0819da15d259aa2159c37d325c884217a03c83d8f4d5c1b9f2af4e734aca05ed1d3951d3bd5c021a4e81069678a210ee5f5c9404b52ffa495ebe6b05cd02cd84ab3f3795793e03d26e83a647921c2c970170c0ecdaca8d2e5c469b1a3309e46dcc9122623b6f41771131db303eadbd7b7df5c86bbd6ab0060df29c95a0c014da4939271a98c12ed92a91d8b3a37e2236ba269e7df73f7df2fe447a20bfc56e6b9249485cd71a9fc83af54946537872649949b49f3d98425453fce02defb6d09790322afe334c53ca802510a87f543264e5bbce4665564d23695a08161e28db4c90bb6bee38c00c5d3cc2e403e225afe39ed45ca3c23a35e64769486e4e38b122e3d1bd2bc8d1a38f689e5ccf26db07c8b7c14b19431686ef783382d02080b9221d2a15b41db02a63db7b5396e4b516d241ea0ba533c6f1c90b67d0e6bb2bee066015dd7c42f0226809fbd81a8a56630b93aecd63bec94c168142bc64f0086e02ddeafe7615192575e74e174cf7e2c4df95b55ae810d5cd5cc706605800a0417bbfbe3097890621721939e01e51f46dff10e0777bb93e0b87e8fb88c5100b47ea0c1f356fe669ab2ede1f6eab8a52b45815f9698e86baf38c35ee99f5d3613be4fde9febaa6c33f3a493a37eae52530b8ff0282671a01a13ab74b547c4bd7ae87666c20f857bc4fdd2eeb15a09722cf158083d7a31cc13dbc53e0fd2b2957f5032761e777474f17188835bd79090087ffc0ebc01af02e4d0e0be1d532eefee9ff92afff8cca34286cd6e9c03b2c41b2080484c725afc5aa3c76d4c807e8c5beadf261061c4df268b4d4e6e24ea68f2fa085153d37be084e9d69d2bc48c819f898ab482c0b80659ff473e8b186cd5304c62b4b3f3b714c628478b8a29cfc5be37773cdcc4558986d29578b5dd087ce0d989a70616d380c3c5f68410b3a7a0fd247b7a3d9c9dec0e8f13fb1fa1e6cc579e31a202afb994d6fb4e40e6377dd2ba3247e5150db44d4515d31296f00bd2ff2838d5070821396ffcfb424bdba4ba3e9bcd2e02fe85f5feaeb0106fd8270a47aca634101102c08dae778d40d070d1ff0542414d71a7dcacb25536b4462014e5093710ead409aa1ba2c21c1716cfc4f1091aa39b41c28ac9cd3293c00c853a267cab452473fac0c84bbfafb4e2754a1c1ba244fe1ba8fa356e78f89a94501e068126acf20ba176586adfc0c03535eb6fdb1ddd41c6272d0e8c49f039dfccd737c284351ce14b2f7e0d01639d502d519fa9cfab9e41632b79353ff861303508f +result: pass +shared_secret: ce303d3ea30cdad19af0a9f428943317278b22f4c7c229aaca25d0709b23e6e5 + +# Rho leads to matrix containing zeroes +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5b08c45bbdb5d4053b675fc7ffba8cab1f105c8095a0a209c4f16447198cda9d73c62bb98dbb3c86e8761978bb77a5c7a28f03f10d8558cab3c71d498429786280383f944b75c7139e533bcf7019fbf953dcc00c884446e8bc3ccf75b3dee9190526662b33527600296aab664ef58c5890111c4d1c04262ac22985181c80f3906cf11f38af489a75cf5596757a8ec56cb3d3a7c2594441113c427f7b43a019ce1bb1756a9223b8b15c3cb649e93497fb34ed17b7c4d185ea1e9a5a6dba569f1414aec8bacd1adb784c714a7b2b89989bab281eff81ed093373d5c6d3f36ac3952aec99ccacdb0634928668264bc70303fad4a746592778568570ff75585422bf3cb6a6960946432928a0b39e5bb017840c7c4d99b8b25a0c76349766b0d39f7076a839abf883252743731b53c3f650a32b0297e806addd02999d61086362322c840d8dbcd820ca008e5ac150b7932f081491415c1c3300e0976e7f9c14fc045be34983ca26b71690d216989a01b03b6930fff0964fdd98b2ac6bbc408d0731a501ec87a93e19096fa3161870bf7964ab5d6a5ba764ed8206815d83045b24db9a9483bb776dbc3ad85435d7cd449248c4058e3568bda4e41061ee5f0bfb0e29867491bf796140e8a2194572c23f75922c4ab0014c9ee5a98663ca78741a4b15335d14a3fc92a24b05b5233a43914b274ad531e94656309249f79fc93c13652933529e72690e1b8b7c6a21c756614307229135977fab1727a497617c695b9299d81358354c9962d231183d8512adc5f10e56a053610cb042cc4fc2e485099b973b320c090a4459f8dc279beb9568f840932c77d28ebafa40ca22bc60adc785449800c8fb71e80ba9a67c4383049b36fc89f0248a688298453e480ec525dd45803dac94ac380c468ac2c85015560965b7c7838e59a8f90cab718246dd4a0578fd41438e09716d3530a3272618b191c521887ca38aa8c994c93820f78673f5cc95ca93e3eb976946b8785ec3f12641d41f60db3085931aa365970190b93c37625332fe92e4532519d8825c46200e8b576592ca557794e370144d378a62e5c54cf6820f1671934db0b6c47ca8d302bf18a8b82152926853df7d255da51cc7a19657ed77377fa4eb8b2a929b46ff18910d1832b71842cffc3849a66107702ac7a86630769889fd90d8ea22788805876321ca2158ec7bc878c568822c0bfa03c10c9f5b5a8076357c6b934b75617a20606712b0e8cce40f4ced0d17defa628bab4751e56b3ad040be6e3264e6011fde7c4cebabee0701c6023c218d07b47ba4ec811b286ec3031f5254302be6b776666897b3062649252c5f7c1bb0dfab6b4f13155c91f318963109421a4a33306eb0b66da38fdbb541bbb3e2037c1a0d4493e0878aba23e7138bee255b3423009ecc8920a3a4b86932167b1affab27a8821598851bee698665a2130816b66b7e81842819ea1560a0c5292be2cc7d5428aaf3b7ef5002d5145aee9a82c9d44bdd0842adf54b38d9213e904052905adf3255828147fb64960c9167b17126d61b05007c759c938cd2086695e0636b25b69312a70235b6e201c23e2f9a9ad696716f53333d004fc663d5c0b0776f875ad988aa6c6230218cf6806353409000000000000000000000000000000000000000000000000000000c624c0376c3309778d9aafbd0bb50366caebf7b7b46b4e9aed69b929a277342e8bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: 87099f26e8493f157e405f8cbaf679f5fb0aff16ff9e2c2fa8c263c6819287da7484cf93e0a6cca4d0a94d0f710081c0bfab292981dec83558b651abca873980d077e9febdfa82398896e88560e805948d84ea38cc77554e9421dba3a85ba24f3328ffeb4de0bfd1da900412a71903908e3b8cacf00ea86f21e4eb124167b3ec769a8a22498ec6cf26cd4b1470e95c37b3716462929ddd9e247d3f23b98b3efed529066532b8f6042ee8eb6ad00233329e0b634e300ec2932fd6631b1bf14d7e992f54b985b51cf1b05f5ce7d9f7458bb3b530fa3feb7ca1a72dbb8c4b01c0f03d8b45e550514fa4fba32705c95316960bf50d64e3f07c48bcdc31265f0fadb5f348799fe0364c93765e2bb4688704f3027e69689861dbbd65bba05f158fd329c5474386f9ad7afb65b297004664ebf3cb7ac1e8a34e33ba15ac0c92e7abedbfa96fe4c68ff6d7a4d1dadcf56824285883d74370e2840cefb887b7b934fec461c50781dfcae2bdcc9983e0b34c3be81a0dca5ff0ac834f5bf71b4e6135c79c27a525bda87c2c1c05e5e2addbca7c43e49ad11ea240cb09bd77d22e7e9d0ccc4d638feff6fe9bc04300202313197a9a53b99e67e96aa72ebe3200758c1f17b05c0b793dba17278f3e79563a532161190eb3a0724524b210f26038ccf08d55c0bf29b95917c0bf97df6872438b25d6d90091ada34b46ff2df784370c8bd3a523687902dd9a1d70f9aa9b1a06dcf4a1fdb740ac3a0c25c3840bba2e5c6cd1dbef9aca23d5f29ffc00cec2fd9dbcc187cd2d3c690f436e6265f8cc6857b3ddc1cc1415877d83d80337fc4c4e38808b9e05b14173497330077fe4c38699523491d4a3248e5dc4c401a3a29054c924c744f7514b7a84e91ca6cd2cdd5cb51c4ab4f2dd4aa0027b294b299896b558754264ab10b0c0306465ddd4e88f2e42b580801746452467558d3238d21a74ddefcbdcff5d79886b101c57c0d4d1bd4af284aef20f558928ae0768a07f397c5f9f7f334a446755a22549cd7fb1efb14bab48513e52c454e57c381518ff6d3d02278abc01bd0d54d53e77d361bef85c33efbbfb295bbe3aad332d5131e8cb5cd90a960bf2d429524b45abd686ef95882ffe6751da4f750a367fcdf0e807fc204834d6957ba8fbcc0e9e3d4922c45085aad54b08934e0d909b334d3952cd479931c75c5f4aa1ec286099bedbe5ec17123384e83dab7230ccf5fca4f085ff348197d837b752c2bab7f0fed29e6347624c51059a48dce7f4eebe03b5bf9b15b13ec85e8acdef861fbf93f17e377e950dbe9d6cc96ae83e94a3c5848dbc2ccf6090882f048a174bc42107cf9bb0df711551e2d550e74d2d416453be7fbdae5a24ceddc7dbec4329b4a67d187461ebcbd9845c5ba04967ee59da4bf822460053383935cf1bb1766a7ea5568f16ccf8400d9a73fc86a7570742d76d4f52d20ec80b8ce2a937d53fe88f60bd3deefe27642fc7cd7d79cbc59fbadef2ed189edb3239a948aae68bb2bccbd42c872dabd7a261625af4fd0b92c1 +result: pass +shared_secret: 53865f61850687872fbe708ccf896f7f24ea01283510faf76481abdb0cc17e89 + +# Rho leads to matrix containing zeroes +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba000674c3adf498654b7d8078c405881705953d58fb08954a73cbeb43d564894eb48e104763d35563358693f2f2442ba8a01c38af0d94be822a1bfb7560e75abff623401fa043d4f10f8cf688b20c56cd18867712688c992f18617331631527cb4c7b0a526aa488b5122553e332280ca64deb0c0ad36db2267b633b3f8bb8a83551000e1ac17f7b426813caed005892a7077c4bc02f703befabc0f6b324b1422ec290ca42f630bd441d1f119f1c633b2031cc759322a4d762265c5e642462c0b38ae5339747a62062e07aacf8aaae3725424c4f30f38e1c727f40e53788c68bbfbcccd8db7364388a46a366b53bae89f09d64c7c1955357e256586dd5cf508967cfc97b0b481267566b7eaa00dff67158f81cfd8a406dd8c0095c2c6e4c9e03a466ec79232885145ab0a321149879a25c77378dd1e231be71519122b4f1394e1998081f271840a245e1774012d508bcc0830c5901cfb7cbc178875fab73b4aca397d13da45b9e93342d4f5aa813048d46e0b56c8a9ad7194fcb6046da9b9d16d56da6399315c924f18c527437c9fb03ac3774ccb272614b0cc55968ad346187a5f1716a944fb3946783a6511a6997cd482ead064356f843bd6b6379f6c662c9c655705c6265c8702729c3bbc022a8828312bbc7c7b90c373448a59cb67ca2da3771882130043488eedb9c91b39917a1629918580381972c34a0e7abaf372527e1902088e1354c5353c900a0a16536435124a9e51369bb46d226170a064e91e85dd6d987956820b1446a6181535d3ac8a994341ca43b0cf06a83825a85a5ad192582554864561c5bb2915287a502c39b8b54abafce465abbe7092a83384fd35d91d5604c7a4c14395cd57713baac0d7f906ac9274a8bbb34074b3f96fa8fa23831ece3975f3011a815bc7a4c1a96849d386511e61a9ac187024eb50135aaaa0ae2347a804e55e4b3d3e3c678da9e5997419c836948370d1af0a1c1c15d70f4711e825244b1521345304af589877b64afc28ac625a237a3226e1873101345e9ebc060a255fe0862de4800097a89fbe07aac5c1cb983049c369c8f0924c8320df70ac9da023cba2b1e40757a3323833d12229ce607a63275f305c3b8bb830dcc9f63bb479969cc0cdc30afc75a8308cff8e59d5b2a20d46b200dbb7d80e011bb726e33c968e3ba8809771269a096e85260828c1fb0a719fc638442b2935ae4cf82a2c27bf471e48264ccf912d4f09910ac12c19077a8f52bf3b2c8fb4ac7ace2ace1250347c3beb2d89299673a6328c8483805be327079f8552af16117d12550042b7eb635cb0a8c0d370ab508a7789235fb81bd60b882c8909140eb487c5acb092c024a9c6c8556b832c36bd0dba31565b70c35c2ea4cbf7a1b42d2d7184d37b3bb180b9e1078a793b7fcb2bbc97bcd8bd7cb3c0758f398a482565d185abfa4310c3a84b77b9280e7a6222098aa627497fd13abc2130ae6d34ea6c626fec532f1eb4ca97266eb95a728434ea1987e7e666ad09c0f08c6c581dc733f962fd04780a7565355083b12a56a7c4ca774b3cbf4cb762949631d8bbccf7b48e2ea459343a6beb3a2c38b64990a01971579014b41a3a90c06eb3bf83c502388a5bfbb0c9be9beee4f3c26cc000000000000000000000000000000000000000000000000000000c4ee36b1f287cf80a73521ada9ad4a1b7879d18d9264224ffb630b088865f8b6e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: f557aae24c7a8527f8a1ee03310c78172826128ca814882e33e4af6612c938d174209b287ae8a53adeb6fa0aa25fe6d19f027367239cfb89bf0dde0f99497ef7d7477bd332264ba237ec0e1035440029fbb5064ddcf9bfbd136e92f1b35a0a2cba8405ba42b8ce36cd2a686bde2fe338a013c230b1f1a99113c01babef6881f471081c9b9fe25f28c0fbf828c243284e6be4c0feb138729ac4a6d6b2869493abdb39a08563b2bbabcdabc3b349f74708b714f7e11243d90a69f68585b21de1cf742ed7637fdb5248cb5fee5a3245136e85dd5042163f2417e58a634224db95d004a4e9665ce10dd120b80df855c5ca5e464875752a70857511a705be5f3edda976ce536a5a83d5173c194d0a9ecc24f83a6b6c12bf06521f9494dc56d3a85df270518bf930474d9fbc3c77b61a1799db7146d5865d3d71e84a64e52deda9e16cb73ca1babc487a5b653664278f6256954397300b150b9159e5ef19c71e45fdc1919fb99508606e180305f7bf11f9c772e49e7a0890cb5b0264749035c3725e3f6dc99710889f8501b71872ed3674557e5fbbed85f819fdd9f6d83f1c40a04afeb67452dc3a44c77a90bbe770ec918557923e61fa704b3c08012873a0c672e511241612de52cfcb8c8e129f3b81f3ee76d99bb42398eaad6a1028b0c618b6c0c2afc7713ccc226d4c853227cc6864dec677e39dea238d79066f427c2cf7e9597b8b5a0c59536ea78485511b3c804be288c57d894322dcc2ebaf11d2da207c71381dc654a7458cd22c34703e0b720163ced269283a7a3a50f5e31868ed996227f49d8f0e02e6eca130356cb125f948eeaa0aaa8c324401f5931298fb20fb0ca6cba46bb98b02575e7abd822838467ccbf1d80868ee866bdbed1f7d84eb1604abe5f88a39041a18d301967260f8589cadb4e35c39cd50fbbd6a3922234732f25231ddc0df32fd80289fa8ceaebb0d19ee014200b3bc9f896e1e2585a0f6ece96a9983cdebd5738fa4b10a90536d820ba5f91b3fccc8e77a8bd01a56721608d402e4171cd91a56ffdf9236fb75e7041903a327bb2f8c487fdac2e369a4895b5affd68bb2967c2bf4f46144e6bfa796731ffa338eb9acc96374f2db1429b5568e79cf9cc077e74b3e048894c3b0686f4f071203c2ac7dd94e029ad9b9d8ff680d8bd5de38491c43ae7917c18b4cc50cb9793dc7da034cae15b8740b519d8c673d276488b8bc9c3c6fd127a7e9bced8385f39538ae500d76283779a4de8c360a976bb237822abb96dbde0408f9f9ecaa639af81c941460ea2c19541ede082e0635fba083de29c5d460079d6ba038e961745a0837edf37f7b0548c65fc6f8eae8706e54056b6b2819b79231139da08c6f66a4455be50ad702f1469770e30ba9b108b84d77d30e0fd4a220a4f4bdb7d07878ec837553f4210385c760fb7f180c943a965df8b3118e3423e28f6172a2c9f9c268342e1a0cc63e158c51abfdd23efc929b8dc17274063ac8c3e4a9f1b3ac373f7f279257fdbdf044e14861f4ceb75bac6710 +result: pass +shared_secret: bf9eb969821d6b129da2e353e7ee8619859fa2e1480599b3546f305e56c7be7e + +# Rho leads to matrix containing zeroes +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b169780002535317ab0223bcad8c9d0c6876dd03beb06403e50606a33937515359663546cc0bdb16a4a9d6ccfa0315882739380c591e4b3302d807f76256f441b99acca228f17c904f88143840648971cf03735ae9ab070b6c4057c6865c88964748d8e1c5fe919037f3853abc58a3950cd307c39f8db6b9c6794d6d921da4b5ea23391d916b7f2bc8b50061eed220e901495c9744da194790cabb66a3b34eb020af87532a7967a5ab190f1898cd402c093e4c0a7967460d5b0ca0bad973ca86e533435536366370388178d28349aab06090ee40291263c16d26551a03fac734b0f17c2ecc693bae40475f7cf5edc778060186e5811a3dbac9d34b9f478c2b7e1c7654938cf8031e433ce38c47dd5e9aedabb6eac802123a82c6aeabaabd76a254c451460639fa646d87576ba154fe0b024eb114af1d2b17e245c442ac9a82bc948db520ce2c887d57f0621270b819aeea5422129372142ac87c1762e6b891af95a47912029d09118f97c5a67628dd2997c669523c542393b97f74c4974395a857bb9b47b39d22b00d5e946365a2dda868934e514b35954ead55a76d812cf619113719b322b72d6d94187ca4d3a26847437b2195a1a034b530ec0b8c7e1401be0308237094abc79fc9c92d79675f590347d7b706361556f2c00277289ba296aad73c9f3f654d1893062735869255c68357a97558f0af74a44879ccdf7122ba5bfc5d21d805430432abee64c7f271a930db3aaf5f78d8889b59e654c18ecc915db8df2eb7930426bf64b62088406c4b5948b984d29f149ee897c1bb8664a8617183a3c477994aee870d1089cc77079369200eb944a79f5aa8c5315da8a7571a6ced0850b2a71a9ba6221cf14be48935e12c8a4cb7630b1661c3504885a065ab5e3c1f78327c779122d772cf64c4b3a63aeb7b7b2c11cbb8ba98e5c340b8634bf743731f0942b8c333261a8b9e5d60c91a707d3e4035e30bef3bb6089e5017d154279b89303a2a10709bc8a44ae248827c477c7568013db462b34e8a8d7731340f7658486c3e83631e21938c4c560e00b521e76695d09844a0a35a6b758e711687debafc31532d2d6a41e512e3ca5bc88770fe49a794292c0437017082c5d11b8a6fb36401fc92aa5ca7cab8b550fab6a74119b5ffa8a14069f58f81231f2a646eab240fb56e0bab328c4637d3559c9b7351f4c7f68eac27618a874790f0ce75e7c32333bf534d0512fdc837d7fdcb49762cb3c8529b8538fa725476e0939394c9eedbb73ccaa0a8879b2c029b9dc350e911278720240ee262830c41440b89e18446f195c7fa50c8a94b02ceb5c93d2eb27f406b80e758da7f99eb320cb28b2aa6465b50c6c42b9a77390b521f3e2830f789a3882298c649722748edfa9c8ff2b7abbe61aeac3171cf16ec0997952323d11bc29fc1a76e022cf2a07300e3a87fbd47047c1504e8516c4e2358113b8ab8078d6466ca802ba3141287181777ac12618081892529a0d5879f4ccc979286ddd4c3112145dec7a711548214d62b92c238e82b4cf1cd6b78cd94d6490ccf69005d9ea13efb1cff0028f6c1543c501255495118d76137fa4c12331800c5250a71a4a8ec01a30bbbcda5a038c682f2b85b6885714f6ec2e27fd00000000000000000000000000000000000000000000000000000049f9b6cfa4b1a8cf67a3b1f225a621065805a3939f4ae4a6d1111906e9c6b7e8c975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: 7a47d5eee9259bcb9ff2d28b7ecb9b5cf70cc36298f0578b0b8fa211f51453fccfbefa32711bf6e83b796bb7927185afd4776069ced5de3731a1b4783db069092607bdceda88782b7c7bce5f77bce5bc70aa9edec73634c6d55b6c7e66a80a1628cc5a0ac5a83141bd060c5e790c6d1e2d604b948df39289825258a575d559e1c06090ca398332b5df350870abdbf17a5aff739c49c50bdc1f92df4555f4ac757f5e98e43b287873a6ee4f35970785b7e43213d5d49078504d0f2d376d590440eebce8e86cd12a5f1669ccf0be6e8eafa396ec1407be8a02198a287649865cd0b6c149403f6d4866bf117e2f9b5f3353ef662b64381acb92bff6208dea2c65f49868404a02b5286dfaff50472d24300497d8b673098a8ffa09a3633d91853491be3e925b18a6f81d757da0585c948afd41081c654853f3c7d6befd41ebafa1a2393bb1415e312d0930da60f010775d4f86076c19f2957da96a0ce4903b9ca5f7ef18d33c681a4252e58e2eac4a1d292ab9952b0339313cf5ede08f000b3bac1344fbd5a23ce63f810c993285816e42a2c13b35ee685863d691bc1dcf61ecc4b2ae54a2732873c065170609aa0654279cbf77f790056f337f45d9ef3be9b278565decd4f86574322da9d37e4e6afa7165cd2b5d1d96fd6a27570e1797ca8ec1b64db363ee5bda8d756ae024ae1061826d90ffb68440aef1aff662c801255906fb040cec10e4b34353193e3476612ca6467a19a2635ed3497cb565b8d765642a8cccbdfb2fabea1e2a64fdeff5ad9b8cebd9505872132286731bf566bb8caf5016ff4eeda1fc612593cf812d69b12dcdfe5ab34d03a8804feb9f79683f3ea44da7293ae812f68d6a21cb0b66bb610cedb2976531e6b174d8a1cb46dab41d87c3ccf4e23c5f0860f0cf118fa50cf8429d239d80d81311e090a2533f88c707a64ea25cbaadecf72eb202c647fc1bf3bb76cad5c05a305fa2e67b4ff8fefc82d9b1868aea7dd7aec33d60a4039c08f0f10aec4826d3e1b8e0b845082fbb95fbae30293a92d5ac73856a72ff52040b5f5844b61af07de922d65319b943cbfdbcaff62390f3b162e64956320aaea0e2abbbbfb9678e15ec9dde1509edb4643d997b25db8ffe372ac7845dbf2a0d703340cba5bdfd9225526f249561a16e21fb899a71293750b122fa22e23424aed5a72bbce45995050f6940a51e495931fcdbb289bcab11607eb21a18f35ba5fccf786f04d536c165d4d3f5055b661a31f43deb64575aff3c2b61556c20ed98939517179e86902083ffec6d42c6f744487cc4fda790e87a73829b8849990a4c3c0b5ab5c0ea8f0567729bab9f2ffb6f032403ecca6e4bacf608851dacc924ba6b8051bf48aeeec8c5ca87b56e3cf440521e72f569ec80e07a8683fe06f4a584e7faaeb2ce6c8031755648755c75475a2d83941d96b269dfe365cabdcbbf207e79e00075dc4259f96cc9fdb3429418072c93ab4f9322246b3db1f436e579d1f541306ce036a8effa25efe0fd0b2a208d340cfd70cb1506 +result: pass +shared_secret: 43e175ccf07fb358c9b4a6117c15c327b88d4d8b95a645fcf1ed096f0eaa17d2 + +# Rho leads to matrix containing zeroes +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe33176cebbc9157cd2d0228c6385f0d9aa0f99335c9cb777e96b597551a0a644a34d3a419b3ad5351876d93490598a90f31a3a2a227119b7cb397988c8971a0459b2c811ebc8a19a094457c118f6db50b7b1ba6de5aa85e316f71866d759cab439c71d90691f1d27da41779f2c3380c600196133f15938125583ac7650eedb0b069004073205b49943a4fc00ab5ec5e68ea5299b95b303b1cb08b687c0b533ef3a98a7b0c3b6419a6cb825874c4ca5688dc5cc5ba5c49448b479b84baba1344a29493fa3828e953b3ba64b087ac9f5b9a3f12cc6cf9942612606998207a852b35f42ab80f1ac8bada3f107b37cc6c1b8df40391b1afafe848a92853c9b32b9ecb758b88c8f76a9b5e866e8c359f3fa29019f439eb0c9b5d4b2a516877de0295fe7409dc79caa4da5f6a87a26f9265581cb6d141c3d0e597f385bc77f966ae1c01cf29cf0bc536ddb0a8d75c8c5db79e967c899b46bdedb9528f596de02c120fa2702f73b3756aac59a750ef97ae2a7213ee95797f2149af542b992405c9d79e085521d2e303c14146180904f41937cf4180edc666d70238030b4b6572af377693677a5762ea7775c34b9314c10489518525cdea77cfe8b24233dcb477e9cf48acce10911dc9517587b409742b06e3142ca7a54f36d6ba225bb933632ff06802779563fc43a231a11b42b91feba135d7229f1d29781eeb65d93537c58525c4e48b85083b3226937acb2c7bb3941f95664c254c18bb9f91f54f69263a1d590c64f51f0d8789cb60cc9682082bb399fd87279fe4039c9bc69202a309faa488e26a4e3a5d64ea4161b9a8bef9997346ba46da3414965c4ac84ebad1c2f067a3ec5a0866e4a5a26a7403bbbc447c3b13e9c282ea36307c83a91b25b8b565155146fb5a5146e01c21f4aaa3dc7082e93a2dd95e7364b6a97cad2b0bc27d0aa3f393195250118f9c635f41ce82cb1c8ac2158b3101e3f44132a271a545240938bb56d11520e2474678391d4abf7200b775b27dbe81970ccc517542222a67b693d151ecf5485c198838a2cea0060da6285c6f0321472710d62a78c42c9edf07518704157cc5669c3ac775635e09356304819d718abeb0603886c67d8c0c523691a22b987af137a18d20ba3af239de79cb85672d8ed6beb818c5b09baea6c456ae3a4a7481343aa890a94a15a6502399a0101da2448f55666aca18d0259d95838135097273ab117a60cecae8108dab28d6945cd0a30099645892737c3238974588bc9b4384615917e8ec0c10076b2249a42f1841252533376830f1c2bd85456f4e8577f7ec1bfc7a92165ca5a83b85ed4c0dd0652b0ccc9bf5fc6946f710b0bcc42c9529de51bd99166eb4030bd1c394cce0835dcc311cfb6e3c951643f5736045baf1c3a7f11603cc168b6a47ca7eb909c6d9806543380c603a09d435f7695e6b117b75538d92fb03fbd92d05c7461b113eb5dca813c43efd7835525a228005076b969e9446be37c707ae0025e54863fcd72462b6aed873850cbb92cdbb209246945df26c6412cc16214155e57bac92562c5c14e1da60f9e036172cbec09caee2d14242d16b1b1b9659a7705a59b23fd93e6eb23442825473c820df8342bc33177f39451149340964c3ccd20000000000000000000000000000000000000000000000000000002201b62fed0c7f34d9f72842d1c5e796bd86e451f91f03e9cc73d31f8d7cdb16d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: e4cc5f39086d1886cc8362e6210515fec1d8474263af5d7eb7b5ac9c1bfc65109de928c818728fc17548bee754bf8df9f972fc2f5943291e24d0911a1963bc3e4999b6de2add2e5c15b3100a83be4647f3fadba3d61022970ce43a6d0cf5a84b387b5d05847185cc862eb6b71b5a8ef9747a12e399866b3839e73f3a73e38877a1faf8b88c3283f22f6fc2dce6fe43118ff68ca6cb9e88471dcad4ab28c657e30462f64a34a108bec7e3b6eb988c6bdbdf4a300d476c170879ecd62ceed6b530575bcae1f23da95ae486b3322470523429052a3059eb75b699a9941a028da267b970eb0a8d444296e421abeaac7106f0a45dfcb30a69d5336ea98d999e65bfa6a2cf43bd302512f086f8441d92c11937b2773b1cf33b82076a64b8327bf2f94f7ec3e83037dc543bcc8bfed37e3a2ef05e009745cf504f2e261fe194c256292d86d935c7c971dc4c32653fe88fa2dd822fc37b644a3d5dfbe5a710551adc671f954beb44da64c06b9f5a0fb78c1d1b3f94dd2c0a41829fdef6395da7493d18423b52bac69b26b2773d0c4242d5172722780843911f864959c14c4bfbd83ae4c19602460428f9f111e43fdd3c64f9eed410da10348444e6af25f0f83970fb23f0f5515c68041ad694cb9ce9621dc504b564a4757dc4d8ead6db23a889fea5a7982fdf403e609f51758ad7bb78dc6b69a53e32b808fcfa44b547d7b23fdce81ae90070e8cad630ea8000d8f840af81c6feb308b8a5135db80c2963203e9a13d2c5b4926e68b8893113c309c3bb4cb48f06fb87313d414b9fac19fdaade98e1b396d789381b057a293de05fd96454f4394b122de31d72bde9b39a3c171c4e1a036d7d94b8e59506dd16aa28596513c3a0e6d2618fe8d39671c28f33630745b3e671c872a01035da1624c6516b57226aced46e63c0a5c6f791f188ddc8b0c4637695b1b711a92ee422225f5509d9a53e894c959438fdd81f692b930ffb29bbd9b7418c97ce03263877390f86bdf59b617622d181061e9f146c6c355c7d8c16924f99d9b135174935fbb63b09d06734e41eacdb7c55f561da81126487732cc6ae18a1d8df377f865fde5db3289f0a77359550ff31b7778724449db57483c59a94bdcfb7680476a9a5a38cdac1c1033be8c1f4e6689bc7551a7d01912bc00e804b6e9e6b4e84e096b9ba4f07f0d67a3baea5e2fda3224387e298a144c06d78f26948ee7c88c11c121b4ce69ff2912c93ee7cd96ce4faf7ed6412b3ac238c05c9378dff1051e3a48c16a3daa8597ee0ee83fc0b95e2346f5195a2d8af8df16c9608fee9c1fed1d5ba11f31513431d304a3382f18c9ffce39a7c637caddd67153c18ebec8138b7cfe9e08c9a7844e879424531f47444b1cb48bf2cb4c92756a1c03f1d37d1f6a2a22967e5a719aae38732dd5e37f795591ac91faec146131b354ec31fc0e0f80d02c79cb6f40f42f3ef1d0ec6ad1cb208fd6e56ace109c1e5a82079eb7b6a32d358963ea06f7234221e84b67c716d7e523b502de542fd468b130b9ce5ee +result: pass +shared_secret: eb7106b4bbabe9796e68f15931ea311dd171561dd000bba4a80cbb13c17e9709 + +# Rho leads to matrix containing zeroes +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d6296030fcbc7549ba7ccb22607740c4a4ae9c72a7c9d75f27120e6551a24baa69b07859abfc0a3f81ae50b410cb4b13f4d3174acc7a36b3cac768430678b86030a92506bc3a37bd721320f658bbd2798bf78135c8a29c5c3b7eabd292aa278a0f58620a89c8b502b3cf9b0ed7d3606f612651f28f5d39646b5b6a16cc57b4574b42fbc5dc6b15b92723ede862ee02cddfa891a7b243b4b8ccab0969ad050a35ba05a8d650c2b19a77f8c97b9c15386233cb543063645dcf1c976d79999b5b16e095724e872c9a799246e9c68388573db17fb137a936aa3629e68398851bab14cba8d1c0be8c213453863a470b6e4a640adab4c97375d72422c1e55d6c892fd117999c9b0a000b7a51064505b237055882c3733020fb6375e48d1a07454cc6b2a7c40bba61c10062a9c1957037310aa66a1d560a61d2e2362d912ca5953e8c3a33967b6121b9a888ba87c388bf1b80064b8b75fbd6afc7dbac45d45cb3d9410aa9c56ab369cb4b3ecbc43942d344a3a6785049b78329610a297512bc9a2920bca6aa08e44467572c2d93b513fa83c97b1a29c161c00bac6484659c67e74ead90095d19481fa476bce539459321aa258da0e2579b06cd91e88bdd297447db2f5b836d2c3613d25a8cd00331948a93cfb6bcf5e374f9f623f571b330ca63ce6210c7d229d27256ffa9a32911aeb77024ccaa5145ab493eb29a2e2a134f7bae4c39ab6a162bbac174ac12b1df51bfd02c159eab2dad955ad3a978f85449a9f7b253a74b4c81adbdfc3efd90ca2d7c8b63e574a09bbda6599f98761ff0c1b14ad429512a46e3c1392a800594f95cf3603a760cbcd6c7ba86ec1c9c74c232f31a56f8a3cfd29f05914ad5220bb4dc23900b55ae5607e00022fc0002dc363ed67c5aa49abeed31994e3440253b82dc937ec718273e25293c01305f4c2c47ba47a5558c17fa2f9640034eea6e2f2955189677eca2af91aabe48fc93ad497ed05208d8401d921a5aac231964fc169673289b270ceb9c745ba2b07dd402d3961c2653c27a697087a58a184a9d8b4a34e355063da16bacabaab34c0f6a35ca4500b7e7ec51af92480f726b034b6246295ea017ac5d7586d2b17d074c7ddb3cb5e9597c35692e405a900a535958fa713d0ab6c9466baab305e83597d167783e22b7099bb913d932672954724631225b6b7c1b717388746ed51050d26f4ab89c56e12697a9ae925c5d91194097da004b7925a90cbb849a2e8e250532fabf1c9bcbdb15a5f17395cb93c7e374461c254ca69c3567c01468aa02d3e445a1dcb194303cdc3c580ebabe6d95aae182621dc52e18055050274f024ac6a5180a49dc0fa5033f07295d00b70a5a93be6ac1a412c4217fd177a8c433f4b26cfb14303d42a705984a27c305e1f08da46213da399eb658c14eb03209e601e38887f2c5cb2aa4384a1790ed16a19032cfa3f368a9c1218abba6b0b606baf73d58b4c771baab5481ae971188a4a323352a2b0f0c3e45e808e88b2ab20942c14496abacb28c313f246b807ce73d7b09a612382ad295c74bda7ae1249dcfb534143acd4ac6a68f7573bf256a946395cfe4463e76bf8b0263559b9618a859f46bc3aba5ae34f903038a1df1e02603801be7c53f12a500000000000000000000000000000000000000000000000000000019d4dbdd018404448fd2208e2433d1344c4488d6553afc581dc2cbaa10459f8ba9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: f28a06a7b862171162d64f9df3702b7336c47af5e15b1ced699164ae57797974e7fb78276e883360e2b51016d72d69164becd785570d9906641b0650c34bd1c556013688dfd9f2858c1a2151465e5ab51aa40c595ef4909b9c0de1eb7d4ae92467721131e5ce21f7365788798d18682a8035e14d2e769ca10589531ec5243e077a60abfae9bd0c03d8ecd7c4717c90137515c764ae0540a99fb2bb4057342eadca362c1b540d97d59408b2131df36a950d0a257eea95796f9230d649961d1cee9bbd30d1b88bb3680075a4c5976efeb95211e184db3665c7e184a912bcbcd3ccaa249c722b89c35d7374256b5490bfce5a449c2ec93793f0426c4655ec82f5b4492d44cef93e55802eb64d3fefe0d3b450c9b72df7bd85997c6c6b94033102091d4829ba10ec59dd5ca88feb328c39748d26bf44c5b5310d814c4cd9a1291a041169b0ad0af9dad279dd80a5f465bdc74c5060c2b226dcc04f8d8c03cc38a4eb1437c8500c9707170bea771fa27343b0efeb485c0c2b0b5fdd2d0e9c450a05b9d7f554031125e336484d235643f429c015dadfe10d050734e2dec4b915c3350277ab2bfc38479dd3f773f6d54a397eb7825a398e415664ec884dcd6d958c5794d53ed9f8bc8d1de0e48a12ba149626bb1bda6710b48e1803347412298db17c224f8279dbcd311a4e67711fa0a8de2f7d4234ec25952a415c96f4d3a92e8b9dd6d37d726375145d0dc68afaa08701ad5af5a9a029cff366e01f6bfc1d63069d8c2b00f9db8f1794d714b36e6e783b6a2fcbed61d16eda97803602bb0211cbf5b8895c2a451407fa4937369f0deb8807759b16d81f215b69a257e207396df441eee6f8069a9637cac41aaf6155dfb45a7402596370faeb1ef9bf633aa5eb96a207cd3ade1765a597d4f277b6f7c33b36e816d2368a19af20df4bcddc15381f2d8f04e4650157ec4cc0943ee080d24bd771bb35c0f8269be961249ff8a5a315c1ec1ed4ffe5a4210b5455f6d367c2df5f0da09d20eba91c6dcf63b215b39dca326fbc4649d7862b56927b41db2217459c23a9a9b9e83d79fd6f34295f3853eee312bfd30ee31d02fe026eb56adb6135fd51a8c9da35c171dcf5c999b1ccd78de1b9574b029cc0a845b196330a3e32309d61294468cd40ac3d51011eec5e1af1e397c0f6d2355e4a5bf69391e7e90825c524d76c688bb8cf495d2dd70d316996d3b0fcc8d1008427413f0498e63d5001e4ec571bc0e68c37947782e48d71feaccadbd1d99888bb6c4f22e9eee0800c09ce8ddee3af45272b4d9a3ff372ff1a7fc3f5fff8fc2eb3cc909fe273eabe09983223dcbe0cdb6641b5c905be7bab920a21ae6f43beacac025fe07ebd3d5065d49dbd0ba5d603f2c534b6533049c62628bbf3002c0da4da81f1e0f4e957565d79c4b1896b6de04393629fb453512f1e1d39b1462ce7f693ab482224dd376b0602dd2fe0ac592d7d0fb92ec5657af2317255ae3f757b01aff57e112c61f53b850d41a0d2964121a33d15db32dab2ac7583136e +result: pass +shared_secret: a39c5a7a5e9f4aa4a81e5463048c7028d0a2df5491fa678d38161dbd3a08825b + +# Rho leads to matrix containing zeroes +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa39692a59b6806bf4af964b370a7a5c3b2681cac9561bc4f59c0f32151e25ac4b1c80452e7cf2544824ebbc8d33ba3ade7ab1a585a98a51cf8632a02295284f2acb78373b0078081a291477510e7f6569751cde2106f8a064a24ec6a921103b8e5b820410f15e51ec7a49de77799b16c58d0c350f83a5aa63a286220c9ae97c2455780d917b2a7d6738735be61964574805f848c1d0a689060e591d60c7f057c92896a71e5109c07c0aaddd3622b672109664fadc3304118afc71644c2b7844802529f38b9a2212301dc2d2e589e7577ca2454a7fb78bab8165ce4f94cf8f121eec4531afa5fa02251090caa9425aac327af64601fdbf19feba983b0f55a22616048c646cbf08091b315dea5637fc8aed7b4418e09a70dd90ae1004d8162b5d58c24eaf7cfb47b26ffd98c48870c583aa2a5a6b5385b51e5f46236081cf9317c662498cce911b1c736e02503650761fb528d33d6708a4bab573456c2f01a52a024996a80ae0311dd56aa532709be25ac0e9b7862205e300253bd31210974b44477c3d0c62ab02b1f7d8bc910e5ac0ff29af6c66f05c48edd4601edb547ece62f8c4944af201221886da1f36cfd937e98d6a8bb606507c5099a76bc91a38812b822da60afa0d1606cac59b267ad4f47782a882a8415b9cef663ca89240c474ea265adc9f71eab97cd8215c10a32cc45287ed53180e0982fc6aa3db2b0cef48640992a33365454761ac072f765e84a46504304d775929222a6fe7a3c790b48bcc255ff189b5391add20c4581e4c59d09744a56a1941734fd24a81a968322b33da31234cea9387d31a9e9374cc4203a608285de5996b62143aa9a4dfa5a2cb0066d2bc4be6885587a4408bb3103a24b2561729021458b77951c8b8564ef0a08add70c3b7a1afcd3b4d5d3be685ba1439aa66a2393531b86a707576da189ec3885f5756c851abe689024bdc2671d926ca511b7c3b41e03c79c2b3caba27bb31f5a3184e16055c8127ba7b0d87216f81318a0d88f1665996a6b47bc7808daeb799935ac67653c59e23178da6a7cf40f9ca22246ac56db9417e5062d487c1b9ae3664109a9329567bd8c577d8cc0ed65cf1b6887ec3836fd16bff20a7671cc37b0921129b410a5e22b01d3477da0230ee5018a571f7519610c4badf145c5c4f5a29357a17f245f24e3bec0d22937457c38955f0aaabfb4d80bccf57909892e120546868b9b556289cc5594c7cc083e808f66e20d9c855d4cc936db566a4ada6e46b680df8b91898a002d9494a30127855c4cb843a8080205fee96f101b9c06104191d0bf92273fb0cc6f089a202984c0ea1c46d1f3b037b7c9b557af96e89784d990a66a1634888dabe6058d03c8b857605621a0b031a52cf26385a55f72d36555b87c5f2a36fdd4a72820ae20e90025a077e82c20cc7a8ce4f64c12940976d34e49b1200bd2b11b94bc5fd379f88779133a2f6453797f5c34a7b916f4f3bdc8c10de83b08312ab49f34cbca4917311401c7581a3cc02cbfca9b1da3cccba54c1ef7992335b25e282ec7677698c8ce94a1846443b1ea9261ff688f467212977493b27a43aebb681450ad64f31e158a5cb98a9ed43554c807090c22a1f343605bdac089362c0e2bf23a830000000000000000000000000000000000000000000000000000009aca1ba802d896abf9daa0d84b46b63742699b4ebe792d40deb9e4eea6e5755453f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: cbfe4560b3b067abd9cc82c2c40676f02b730c5280fb13645666b719e7d9d5527e029f3d75a3024502b338be060364a41981db3c7f52c59426b43fa835fc2fccd92a26c903adb74de93c2dbdf590996ebf1a9e2003e77cc896e2afce50d15bedf3fbcb65675f125745fcb1804e25ef99b6f792578520e82e599c5e83a500428b191bd93798b73645ffd10c9beb3abf33535bf149a3471f85f55789e3f73b55425185449c60bdf62c01a8fb1936f50db5d436066824b378902a81c5edc3b74b3bac3c58eaf3a993b3b4c1f2a0027cd7156b7127412294214fc7aae635edf26f6e5f8034464abc05f4059de6cabc5e4a8fb83a8c25bc88e7e9bee1a8cf312434410ead60d1b482399422621006ab52127df15f7385d62480bb0fe494843775aba4049ef94cceb78e9dcd3318608d3fff2e75e29769cfd8df0e12a77ba6db5f54d69be74a2b03d62db822a8cad7f20ad4655bfd73c62064d23fe521d37daafcf143f693eab811d28da6d0929be3cdf61a56e487289c02151f11342756bd419553186ce79bb17d5d5754752bcb72349b65cd64b8fc6066656a9cedda0aa9a09f567cccc23e547cc9ad86f636233be7815dea220e29863d830d0ef9b0a13a62a56237e2c6f443e61410253957ce3b0f95dd422012e1b84d32ec17f534f56641e7fe92ed181d830b4d0f3245df6ad891c26bfa116d40460c497d8fbcb6def0ee530ff4422d132726751d724cd84f8dd19e286e0a4d891af0e4a913352b9afecfbaf0210077c5be9ee7f5546700754f7f0dd2c2600f113c747d2a706009a8838a7b2b958324842f8fe3933b8e522d63d772a3bd0d5186342a20ff3a5e7a5728fcbb3ec18d0c90e5fd2430359affbd9648d1ca2400a55a99586807bf18041fe7af6f51120ec366c99fd4994f20e540e31caa71d5f95e60a921cc62db1fe6f9219a7705edc1a7015e7ec126a22f7ff0c9bb4aa3a1126d83ce4987ebbda148fa5b3cc07bd7c78f26699486a3dc690920fd21d75fedc4b631841b634641594fbd98ce2d8376b179da29f925a31589e04c74c4fea00db64289e30ac9e58043955ccabd9515e0c2a88e6b50dabdec8b6f574a6c44f4a0ba4d00478396852263376574706e5f92220492782df64becc8149b24feaf808c85723b7911961051468d38bb94421a18364e2c158035172e9368810d2f68f64499b6b407bf775223a3f345223ea3c1c5f456f48983d994fe4da62d0eca318b130bc8ade488a900b7746633187bf12a598f6f144c55738d4831f0ff3802a6a8f742d7a9f64f95f2401194ffade9def6f73fdc67b386115c9d905719808f41e2035947cde0bbbb44d92e51258822bb4e4493a7a4b0ce64f8620b3c54078985a3dfd4cc2b3b5ec3fd870cd6ae095c39049ad69234966c5f1f70140f88c75f11f03fa25c3d673e5ddc14f79f567bdb29a2fff88e11660327559bd0d2511d21a8ff1957c0beaeb1a26f280b3f1146be891b39ce13010c77b775d11552e59dbfabbb64409553d3da222902d0ac1e78b21677ef +result: pass +shared_secret: aa50a536b37f28e5f80904269d0555a6172d717433bf9a680e75e98af3209a91 + +# Rho leads to matrix containing zeroes +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d749389f5b871bb5473b52efb4ba5b2a8317c7255790b7e96937f9c95466431a268b0bbb12aa639d418775a56d3595231262c6602be765498dfc0b5cd404a630cbf46e06cb235ca7064a8b7e2471fe34ec3db94c8ea14abf797d5259ea7236391c3b7ddd3c3aa1745cc6857dac8a42693274507985c32bf65535d6644463753c00e18ba859b86b654916c9b14be78a5d11a2fbcf9ba9225566b600b0edb3637a18319027aa494a9631c6958221703579d75b9cb09d21c34409a3d2b342c05bfa4b82b19444612395bafd8ce0bd772b303bdc37c1e57a26c6efca874fb244ce314f63b6635c7af1be1a3205498204505a80138bffa0e79b60f58675965578719813e31b352390ab04376b45344bd8efa65fea466e8c78d45680be0e1381ca5af4cb666749676b2eb1e02d003dee20f4298b720aa6895a80a17f242a983c97a43981122043d444a5af3066816c7a07c7c880b2b2b8958323711e5551c91268b1ecbaa3342418b322766334d5d4691e0111d56e48637c012bd04a9b06524c30752fb7834a2506db7ac7ead1b72cde45dc793cf875085f67a055f6cc0f7b703e29c578d0329dd2a01ff05ce9b1a5a8b993621611fc51356b5d4a55c4a6ca3b5046d7b9e305494c93177c2e78ed1bca1110c7221ccb07ef99b3aec74a8f083ee5a897d55515a5117b1c244c0898738636e577ca59d16cd1c44299d41c311a8728ff38bc476b1027426bea27795396e2bc24e0ca43e17cc8e63bab9463b42bb6812e7b840a9943ff11210aaf11568c85978816bae1457ff364923c846548b5908b2737514c625c8c11a0898924ba682b3c8c30437e8b23477d06d89d39f590c8e2561c698362e99224450217cd0a393ccf870a84159273083008345b2973e98d78089317f7993c299b7c64ed3309b5b6594a236bb8c1c67cac692a2a1746987ed6ca84d5a5a4003b1b1347a9846656a36034d7a148cc8157afa6c915a05a81b1d88568fc3f62b9996062bb99e43447bb22a5b29473a728c929d57b6ff774f5364c9f4145944b979bc549c1d5b0e9e676b2d493f799875762360ab9bb4b322484bb78fa399bcb889c08c94638d95518bb8742bb2a801233adab5bb95903f355126629aa87477b19d3135af8695f3da81df3559d510a7da3cc364939c8b507c99096630601d60999278b731824642c6a018c22c82a60bc9e0203e0b8139dff977c2a903b812a0a6c79c9bf21618b4ca7a836e20346f64483c277750d38b0a204baa8b258db85b3222a5cbbeb599af8ccb19c649ae048d97153b5a7c974738a08c1c653292496287682670cf30197142dcce7fac5694f58bb9e23c9b496f0a939636d6522129038e99179c8cc37697c83e908aee62a1fd266a613853fa12180407a222682b49bb41c9c23c55c63cc7d115da6cb53bc688fa178f632b0b9042631999b6de6165322a817ee3037bd33e6d6024174439119993e1776ccf6862e104019cf739ebe62e0dd10628dab37946c0f1e762ab4bb94fc993cffa89ba245d7e48055c43a8819c4701bcbf44044210c451fd4c5a82231676ac2941278ffd12c686bb21547a1e832a48cf991bca13433d4a55fb485f04546c8a3201dec55d1889942d1928250867ddbf1a9138000000000000000000000000000000000000000000000000000000d5caa2fdfd51a2788de89e6d3e77f6abb8f38693cb010deed4069f451284de44e366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: 0802659cbd143028c3d5f499c51d88e361522a2a6c353f8bad088b1f0a6eb02f94458508a80aa98ec29952e405f754a77ea9cbc07ccc41ff66fff5c4664910a6363da480ea8f0de3e7bda007593199494e6be43c713178b791119adcd4fa712e077eb46b39d1bb073ba7f39b56885906fed63a0d6a1be4bfc2d512a17ae327fea8f1f8ddacc103fd8a1131908ac348dfd01372968ce3ed40ae90f747be9294f8e3c356f425dcc5002e9363189969f3316774acfe7982361e6f057a322d667032c5e1b235cb44a7e7be4cf46d3f6b59154ba303abd608e75e55214ac4993683dcfb5f4cf3d99b31b43a054325cb6fc3614b76ba18c6f40ca3a289c6ed338a5ede7677f6a57cc4d1c0ba121feb6cd170419a7c9b85c63233ede2db86d8a52018e2f00ca1ac31157154dbb539cb65090b2eb3a5ddf6195dcd25a2c3c8ada060d2a9fcf43bb1e67ac25dcbe67709f00abc94b9ffcf754fe742addb0b928df78122f0b86a2a3b7db85db4a9596f53048cb0bd2e849b97f99f1dc4deb86d4333a891f1e5e205637a31956cdf6442632618e97b8e2f71f0d97a88908925fd1f19956d34b67b258c49058c9a162626066731ac4c8272682c6816e7a513178ab4468772185d461ea5db42ceeff258be448ae8337f1c8ce44771bb79d6e7736949db9b68307388c7a28781a0b0180bece5e0f21d99309621d6ede5031cd791d591b7296f8fda67af0563598b463e19aed4576c369dac22c7e74ef6c1be036a74e9483bdf534cbfa78455a84568a7a2ec9a43b0be67ea16758cd60c999cd72a8b14dbe544bc142eae6ebe838091602535a127f7c1d6ddc92c07f5852158da2ccc90551edac0f043a951e5c47259001c8fe9ef8a9af5d4e40422dd8b0244468a5a9f0fc62e300f0b80069993cb0b5fd6555c5feb71a9e07fa121c82dca7d9df561b967436dadf5752e9cad9bf587a3e6c18d6fcdb00aa21e6698617ba0166b52f4406b7b184abf053a713e55e4b6d5148651fb29ce1297554a254df7ed1c97c2e30e6afb19289f1e8c94831211af2fcf6e3cdd67a04a65c19ceccf08e80f649b5120f6f6efa2af36c53884ab9a5fb5ce24971b9c907a130605bd996e6a7e4b8fa852d421c5cc46d05148957288a98ede63b556c96b6056496736b1f1832463e5ce4ca602eb3c2e86712cf4d8e44942554d930ebfa9eabaefe29358f23939948616c5ff831f162826732c25c319155808eeca9d7cc5e3325b01bffbecb7520a72b3b71e4c50d959f45b6a79789dce902ad29e3a66373bc1b40a821c6f0e6057c9427f30f3a7cad672542aba0142ac6b371fc3da667a5aaddfecd70986571b49bec52c59eaceac305dde821d248da99058e3a23df496fe51cdcb45501b02cf5338df7fe762990c2a6dcefb23dc1e5a257c14962501ab1e479881ffe5868e00074cb8fafe6477b16530854da6223153680571865a6ebc058e64c11f09236886c736592e73a41de2c093e88348631cf31de6440ae21bcbd045166d3af8539d77f2aa1b202056d23b +result: pass +shared_secret: 9f4a910d1fcff86f96149e88e28cddd95526ee64c491291e72a2719f97b2beb9 + +# Rho leads to non invertable matrix +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988ccca947895240c96489219f575bdf7b6305fe7ba4db674f8b57be7d17947b73ba481a51737962bd0ce801254d54bc9d6d5bb184609d844501eb81ad43007fd3513e7e6aabde15bfec8b74ef67be8e4b61b4358d4828914033d65f89915e6c27e5676c98423f0d2508c343e049cb8044a4a77666a3475a52a4c73f38acd49519486e511ee7b8797b35fa8301ba8fb793f6906304842604b5608fba93f3505a765ba5c329289fb4a69347501c686b5d126ddbc58f5b8c5bbf044a1a58926d77ee9a7bb0ffb69f1986cf10719b2379130872b8c6640ab856622eaa08b298adf98115e68615d9627f339c4f08ac67fa464ab5b4824ca3765e33a16f7706ab7c1deb31b262a3e14870ee4bc30a746171f3c998fc73663320ea3475564c25e9fd869f1e3b94ec15ea8f355e6944b874c469e96050b0ca62985912a4b87c4aa5434e4929430b06f220737cabcb771b6714497cb07b319e57165449bc7904201012fac808013836dde3555ff6462a77125a6a0c6f4aa0822006ba5357ffc494602d87866854ec8b646ef5a545430bbf155cb4e9c36ce2c42b6e48fc26296b2c1415cdc8d06c38ec4c37f9e16afd6fa232fa396832a26c7562fd55b80bea977fdb5b7a5f95e221401a932687e535b0213056297391d36b0cb320cb3358e1ff19a2d239a8f5a75cf40a5b4130ac2972c1a5b9e4fe799394c23196805459336deb36367b6b2c81cbbdc56840ee0058ed799c5c735df07a99043201c2427a4699f5ccacd3c86299e458f3783628258677126556c485406d0678d030afb082b88676745189800fd9d6267b557a3936e262baed80ce471997b0147b3556a8f74760e85391300ae4f84c494a09da042422f196dc0ac3a65687d33ba4219788037a14fc4087b585842290593dc853c68d70c410b98117249654c3332685de518a3beebb5469c4d2a624855124025544afad7a26f5234bba21b8e772c0a58572608857336a9ad070b6b01990fa4bf797902d0765c83604ee4767e11e4bf45ab7dbc9ab7efc180789070380badd67b96f0c90cb95a4152144956309cc0ea6771655ef11579dd703caa09c1e314493b758e8a12a8e7dc8336c29a2a9198873b2065caa6c8ec545c03827b39b210544668e9884353791348bc74032d4a7a00396744813baa1a83b0d1139ceb18c75f6cab6b13cb8722647a730f67219096b50375a105a5dbc960142648fca49aba468ad77a031334ae650ba879a859e80901a70fc2d80083c2b0786a589f1b65e0f83527b60d298b8b93a177901b78c61bc6ba296a342a412f1c48250340a0bb5e2b227b42451aead12b196540c9f001907a40bc68821b040607f918d9199693395d4f828de0502c8c601b2a787d15dabdbc764ad9022cbcc87fbc4a84c22840a39cc610905423a5c4211abe722b69ae78803fbc56b5f3671491495ea9a7b067541954650582a1a6358af04419c4d2acd16910a03a2c04a1ac3ac6138f162d61e6258c863427a8937b65c183734b533c4bf0e52c3c06cb5422c2bdd063e405d08bd7a82dc731c2e526a5d19156b19b68db05421c5d099334bba29da2d953164c6cb5c6860de4adbd60525dc96e1d261786d79f09819d680598a900c42c3042e336828a1700000000000000000000000000000000000000000000000000000001a391043e522eb6682ef71d7ce5fe4a7b6be5a0d5507ad3083378ef190a50a611536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 2a7190d8db048ee0963d59eeb251bed93d3223db4415e438d40fa06cfb65c5dbc9cdc219a8e007434870fa10c8d64f0aa3e5016c67378b670852af5615e23b612f08d0f83d26d4f48e108b6e6a639649d618245055270d7e6f47c48152ce42effa918f74118dfabf87a497a412a0cc464e99d2460e0dcf6a16b99e8f35224894defa85a02ac162e122a4389a7c85668781c6d682422bdff1edcb442a73982c4512111c54545fc8cb65d1fa2ee1ab685cd047aed9085af1144014810959fa49e7c08ef15bb7c97e8306e7a28404c9c26e21b053e9fb6ce86a76b13fc28df94f3719bd55dd281ad1b8289f8c53175838fc406a7d705c4a91a2a0053507fd7176c1efe28bbcac57f555504f5b2ad0a7e8e9d941fc80080f6615130284e428fa18740af5fdfbf848b4c772e38347ea7cad57a72cf02e41b114de1380238a6fdd35d20e1847e92c64a84039fc3564a7ff85ee6c4a7f5b05fc90f95cafe52747b34e3a9ae91b28c659f4941f2c9ad595700c31b0dedb53d6a2d4fead5d754637e89c4aa7175f17882aaf775d850287460e4971dc112c498000f4da174aa4f4f3f3202ea9e119cee357caf9c1fa9623fd1033df981c09a010dc44a71a7d43d55c328eaf205586b225ca998c066623993046eaf93d827a891f1e997fba4008db106e430ec7528286b2b2032d299acf11fd3f8fb57aa2cbb2642412546e09fe139b377ce8f6e1890be4a23f50de04b5c93b701a8679ea102f90f4766d603a164aeb7270ca85faba085f15eabbe1c89ff2edd4b50227503cb31c34f645323fd38c7bffec6a825621579b565339624b434abc090ccc4c1227bc63d4bc1a6e2535cb5b299ef03061f9bff77052fd23984d7d6f63d986cf310474feaf338791b158c542a361c9c222f4012d4981247f4cfcdc3a2cdbbeebf9aecfb97e29f9c328be170d5da3539b277d3f4295c6ed3712627b5176b7ad1d2aed1445ef2e47e46d251b74b906f6dc3c3d9f54968245845f2fcb33522659508bf54e6358dd3cc43c2e097b880371c6cae243b11f36f8c34ade6ff113da5ea0868c4f8a5d0eafa3fd5ac8f5bfe776f5f72791d654fd845d0ee6c9d28fd835dba5c367af22ef2232526bbef604c163417542bf6fb768ce2c29000ec626cd56acd6f3dbd18b5485b710e4456f2a01c25bc0af5aa330a5f9d45bdfe985710351c167556acbe0fd0b7bddbd3a86dcc7d7ad63130f33b651afc897a7fb2a724c205867c4dbc86d53e68b1679626c750fe5335853a3489821e52402d0b1ed47c69992179c663ecd914e77b0c94e870ba17929d53e567d444e592e580b23c160933fe3024a49fa8656236d3917192c44b0c5a30d79a121ff12411dd6b3d443a5490276dd379fa9e3227b1756981b1cc0ce44fbb939de802d16ef81bbb98ad6add920c42d908c72b7abfd6e946dc16598272be95c72a05658070a211801b6ba7b04248898272e6a348b26e93207185c2d57600493a313ad162561da704b75b52388d84b240993fb3a4900a2951bd380589fcb +result: pass +shared_secret: eb34705a8743c042134c4f17ed6fe334ee260a7e77223af5bf77788ddbe5cac6 + +# Rho leads to non invertable matrix +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc33e5bf55f1b014715eeb1340e17172a3414c573732bed83d3318b40e32a5f4fb064a8988dba93c5f1aa8249b1d0d0393ec765cae519961c109f607306b8322125b0eb6bc000a061b2222b58faa86fa706e27803b02b79aa4e9b26e37130cf14b903a70bf042f4d72c091297179f3a1567b1cd98bcc4be1c38a75139df8c422769289fa73562a8429e88dc60571e933b22d8a9471cb7bc11a6b74e0b62643574f91413e9913229584dc8936016cc5f5560a044488183a53822c77f5b26ff9f2c289e7c88795301e095efab2b84f90350524549c855dd9928dd735a0da461450a31ee2e3b285698b5049000b58344e393a33ec7b114acbb6c69ee40b62b986a7a70a6bda64ac03423517360df820cc2f5a0e279b30fc77a41b220d6ee3ccdd4802ca3447d5065dbcbccc0b3a79e932c1225acc8c02c906c49586037e6a16c5b6c64e6e6c338937ca94c77d9cdab427a258804768e739ba637725b7f98ec064b645e23710d50e1a563719b190d8127e8d8557165a7e61770008621b211c1ad9f004a97556d41511d2a8a290490a0f6b289d3c35cb8830f5f6c4d60b9cbda14b50677c210b6539229d44c7376159c4d4f4b7e1557e1a25a51f6456bbb983177599f7f1ced0b15c751b1046a1015b4acaf53c8e43c7ae7a14202a54a7e3037027fc5e8736a4d7d9145a56cf65b862f03b3a9848c8c2704295f328a6cc83cb17774cf20f9db1162fe604c77100ece175ac3a9f3f297c72b7a3efda073fb6397e0aa8fe60c9e5d26281699c911632d055434ef4792a87c96d17228611828c0282ac82abc3041fc902c09a1c918fe20a0506788a31cd01583847373db827b87b7c29c519ae2071185910b4f586be80488ee85a31c63857fe02a11bb270337b6b92a32103197f260b0929e289f9c9308056a7539394c0071df82591428bb8a2b734db430074f9749da3bcfc46163c3b5f31430e4556b91efc1f62aa912361209746909eca91b40ccc815c1274762b9c697cb7659dd200a29a641db2404b954a1c17994d5b3a49af157f7d645df88863f145734d7262cbf8a640d2b31e601124717c6f456db325b1b4b344bf3a922f624df598756f8a2c2acb0c4e62140ffa4cacf4c6e03828ec903acdecada6d0074b2364057584b3f0530bb587666a88d2e354ba68bee404227d7a963d8bab4c7545b95a984d117ab3f576fb1ba4e912b468889762009eeb83949d39613ae7054d9c76ea556ee4a8286bb489e4da9e4bda4db0714104da37fe1777adb632c57020164331bc29abeb356344081e3907c467657ea53a1111d45ee2f416f945396e6c63df328575808640ac5b1d5a711a5523cb7a18263224ae615840f9c448274409369b2d66b135e57648f07333fa326045681dd20cd9bac300c834ff582c1be9223f427bfb13731b27175c1028f55736ea50a7adbc819c742c22328363632f1917cf5c89441b841c3532693c3718a1fb693b28c103ca3ab9690502965f907b82cfdb4e0fa2884ba7ce8b0768ad36a32ff60b4db45edf64a5d02018836a8230c6a2f8a037b72261f4436b987066bbc90f65f2c940635cdbf1b4c5a853a1113c86010bb7b558f9a773cab0434399874e01afe167908045c34d3f452196000000000000000000000000000000000000000000000000000000794a6406d252e3b08bcb62b3bce496a88019d6769334ea4c56acad3af1c5da402e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: 0b52af120747b8cc02ce11b70f30e159c9f3028f0b44757f23deb9b62ec75c61d64dcc774729b5ed59c23cc809a88d075021e7799b50024bd9ebdd3ccf710f17dfa89423d20542a44a97ab3bda0bc0825f76f8f481a52e66c344c024d0350e4d28b49bed05dfa166d8a5ec175e43a2a535abc6dc4decc1cb9afd9f05634d5054fd7b4c17dac997a70798c5c712b276e56e2af4543f9b9e5ce362d2f5f7c2f5af150c9782af88ea561161a6e5892c6a7d22a367dd461971cd801e9c5f2e2fdfa70f39550d06157e66e0806143fa56d5a9667e038d0c818b2be48de10408c67c948ec5cd1c543fc92d76fe299af65f94edd82f0be2ab3cca31272592549699555dc08e1de7097e20b83fe3eced16446d90f79ab46ab702804cb3a0358c927b7d126799f52c47e613a2730680713e8056135a26bafdd8a9e38d8c30e628a090878037da0afd82b9fe89a601d3641b6514b0450e3792fbc60d3e78c7316301b2e3dad4422c85b4afb1d1af20de6938a1d8aa2625b637ebcec8754ab5b66aed8b13b669c81f986d158cdd9bc82db0eaff8c80895d9289e30f0595131bb9aa1e77fbba451c1988117e2ce8b4e3cfa6f0b5c00d894753a9c93d269d477b1c86fbfaafb1dc083c7ecf3c688b36b4107a2c800f17d14acaaf795fe9ff913f702d188a204a26a3c301e44a84c5e32e9c8efb7236943849dc442bba5552fb34dd7e7c486959fdc8df5d380b199a9d637c1d11091406b3e3d2ab587794eafef76f6302c1356813109acf1dbc7380f6eb082a2e5cd4e53f93dc277372230997a0858229f9ffec2691d39f748dcf1c911f8d49d281bb9299582e1dabcac1119a7bed289a1d5ca9b471542be7e5bae58d275061eed3ab92dca9e444061d641f3e128d9d44757b350bcf673de1165abf6e10f87d101562eb6585baea22583fd8193da19f15bd88ee614523305e2d996b04db09aa3ddb422c7b9dfe93237e3c85043469916763bd58132835795d4c6d01682fbd877d132589ff21de3e4882a927971ddab6e2b31a01f3c32ea60f506bab44f8ae74cbd33e551cd7d52791155f390b409f169f2fb2166719265c6d4fab72abdfaf530842ca86e6f2d6a04ff0c96335ea20564f6328f4a10caa1b9ae6a2873a966e2d2ad2819f3e398a493d878bfea76b4372d2b24b93edc9f1e2438ac6f3fcc1944ab99c3729c3526bf1069b866f7b630c5b6ba7e10696326bc0096aca3a6e526e484b8161716b7377f9c5ac7401a850374c3adc7057d0f783eed9c98a3004ccd529a5f0846bb6cecf98c55470a7b55d3c1be06cbe3a3fba17f118dfd68aecd0ba783cc7489b7ea3bb8fac98e70c1e8f047deefc3760dbcf6571305eb1cc3f88ae3fba08359217ba391c1990d33b89174a5e896d655aa36909a4fb65495651ce122870b5e870edbc4b0dc9d72dfdb873cb219d1d7b5143993c01ab6929baf37ae6de2d920eeb333eb55a0a32a1a9ed2d4f29f9dca34969b268a9f26aa6c0d8378aadb5f206beb4f607f308ab64a9b1669c87fb74a55f +result: pass +shared_secret: 4ef9b4bb13acabdc211c3e0860f1b2dbb4ad467478f8fee194ac57a869a4a8cd + +# Rho leads to non invertable matrix +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca5e1b4c439d04b5c35913283bdfad965fd4749a9eacd65d1182e83b448bc3d8f25b525d57db01394cd2b99fcbb6b3140c46c9685916cb4d572a78f59af75342188156fe6b991a7780ad5366104630700d585a6b93ef15a8025b8a32c57681ffa88c1850fca4b65928970549aa668477547b30afea83bd3cb6efa038e451688d6932d342336fa074565775680790404770a520b0845a7a09caa5ab20326c8db671541305ef9264e0074505804ca2b7bce041b69c20d0c67a50bb46e57cc920d4405e4960ed1b20a14fc8fde1626f7607a77cbb9e7835f1407b83ef53c66e3145d764cd297badba3c290957180f650844c31feba01ed2631cad26057fb610f302636500e3337b073e33b50fa647eda24425021c5c1c8eec6163ddbb6419aa3be57bffe37cca885b8456652f7c00ea65c78d2db431a28883577679485611a9cb77f95339436787f1369110203ecb1859fe49662bbae39b6bf736266e1670940780db319c969570c719499ef871e87ab61cf435114551295ea4fba96ca5939ace7a9b712635c09667a2ca87a241380edf030abb8290d1856b520aa75e52fcd3316ecc31a8c71136480c41e7c6074207be522155d66a70d73c913a62fc4f77202203c3fb58171706d55455adcf115314b71ae00745764877d44321df625916a5eb5a39bc915a7adb5c16835817ba9438d8772273038abfc29104909da051dc542719d19007a786189e2cc9ed9268486068a1a531c108659ba37383a9585440dff07116f4b5fe9b1a2dd73320b2051216009a498c2c64b59aa539244e487464475918075ee807ee8bc9bd413af46f80717f31365653b1173693f1c5992b45770c515323c74296a0ef3e8b52be344f1000f22971ac19233f25a4c0df631a2d2b14fb5cb85d6ba9c55a5dcf42be1f18f9be91134a64c57a723f02a13d2e4029d6baa6d0aac1dd5cd6d483c3b7bcfe7f69202d321d4423962a304dafb930cca0671eb6ce7a0754866827a94af22b26985e264af1278cf481193390a2e870b413884c3da9928caa8ea5595a4c4aa2d4a6f3a9956e87c87ce699f04640d2d699a4ff314abf653674b351c69367a7c6041b87aaf8a47ce07857244b71c16112db463dc3239c3908bbf715b86a2b7edec09080c1840a2687c4b57854238a2555d9d2469e798cfdbc6ca06470bbe3659e1949df3f8a6ae42822c8702271029689b4ae1573b66f5541177ac5e05118d4364f43c79d5d2cde2567811617b06965cae7491aff33d5fb4bc24fb8a69f4c0c651cd53084938a56e792c29d941abfd448a38830f9b482b26fc0f5f8a25a2c570c51a62e605cac0a0b19d3b3d5478bc879896a3e01d5e6a97a8cc876bc96ff3040a81c87afea285a35b3375d5b8f95665c1bc6896e46b09d4a5b13a48eda54cfb168a74349887a93ed9e5a1f40a5e37e2a97823a2aa7c5cb028a3e30b19d4b94857090a3e8276ffd45eac0240dde5a80f46ae14f184fbc29804726ca50462ee2583cb92953b22839a27aaac963013b13c1d1847130c96371202b8027f3df427b03119e5e57284f4751ee76cffe81f315932174560dcb211dfa13ee9d242dff22934550227ac0f59698bb700b97bcc95fec45cc65b12e25663059565330c000000000000000000000000000000000000000000000000000000b2024fa7dc204dc572e389002c78d0f96de9fd70568e31343cc05c95ff1aeb8a5ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: d421883017a28b1b0fb5cbd2e19168a0405633601a3ca939f5660877863828dcd366e6602ebc6b7410fdbdbb148fd9d9b5f803467e0bf26a4b3c84f2f90aed4f64d60ba2862eeecd9bda7f4ddd0c031c231f5727a9681845774573711afe23605c2aa64a89753f8aa0c4b51209c3117f111b82e70aa6c55826e12be53216d299b1ff18d2fc2c8c207131e462d614a92171bfd0855a2319ed6a4812d6385a3786a39b489405fded21cf7a9e5d581900c3f04a75be593d4ef5955fd7419813f65c3d672a8be0cf12b42f19d3775a489090cd8cbd07f2f5ea5d4895e15c53737f43dc934d2252873554ba8f50bbbc4a6964c746c34541eff210290c3b128129b2f8d7e033ea6c945d666c4baf45883fc724da572265bea46d6036f029a7d25b9adcb0e88f290c553378a940bd0425caf60374cfbc4dfc54879b95f7ae4331a8789c2086dc4ade9c580bb8eb2fd07f3170cc5306136d715600e05499fe6940aac16f82759065a153bdaf51335affd893c296bdfad1ba11fe4b10b49c2b2bb54444b613d6b5c4fcf458ccec4ae711f840c5bf7c75e4f808e5da7d112b735345d7b7cda8f6aa8489fda2790d096dcb9f8733c7f589ed047e9a56e4dc0c5adea121966be8a1215eda38db95efe2ffd6356209fabedcdf2ea4cad4b0b180ea2522d98cae0f09f793f037dbedd5f03d12db9016bfd79e07726cb575981da69f88a8aa5d104e90ea53ab57fe27b291bedc7acd5aa4449053a7ac8012fcf9899bfc423c0018e539321a986d4011f9beea70ca0e984026277290bd9373da79389341c90f1ea64de20a5415dfa16b7857df261e68d515c497dae0a6fb5b21224f0b2a3125dc3fee9395316d4f269154f528f5bf3ade728f8cb9d27147751304ad1239b955c911ef2f61f0c193365ed6305d4c0bd97c9b2f70e3f5f60fb9cda8128bd7cd6e6aeb1e7909881a6a35d34df4224b0db7631df1a497a0dd699a086aa8efaeef0e3cb582a71deabab97bfb77fcfc2067652311604d56ef3999c34b72793323607c59febf9b41816d03a4db06afd9c19444abf09e1126a5cb19842c9316718d3cfc48e52a0181521008cb90607a18548c6521520d887935c0d789942ed48e68c28905b267c9493e33004056ca159b823aa7e42d9b5104ccf165b0a8e8dc19a3db59b415049b1d82aab62bc6f2adfec2ae128c8b79c0c9d750ebd0517b6ed61f8345aea60c04968896da13f84224fd92d9c56862adb73c0d5c3ee8fff1c05a4586446f0a74ebf39898adec7f07a7ba97c138530403f2523d85931e406d476c8569e0877f73aa37cf41f0448dd2ebc89556e79bc9a081e7f34586cd7cf2f960ce8156a3e500e63fc9d652f9af37bcc36117449b06f67caccd7b9f94782d84791990497761d503d07fbb50e1891dad302f20b16bad86e1e31f7c03a9172a6f079e244314551ca5772d43ae75b4c3e44aa362f9a950c7007a7e3d9758f8ba2664add4e37cfbede8066068b449a100db9e35386da603f7abad9fc85d32090ddbff01052c1601 +result: pass +shared_secret: 96b7761b785b1423456e7b84f37464eac941840ce73cb0e5903dda9c4c43a296 + +# Rho leads to non invertable matrix +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5a58974c8174cf998b681737830ab9132c2b925ba0a9dd7573197a72997cfc9fcb9b7fb8f7f7b881b280e43b1719fca705a209516981c2e88a617625beba7acc5a2335aa57daebb02869339b907cdcd2c4aae01a57a58702fd0883732c9b334bdc6a9bd8340bd83d5b0cef4ab2da156ba283005111360695be97576dc880d2e2a32a9e666070666e4f46b14f2a52d7006c94803ddd872b02bb31ca08901c42834d95a79fab04d8c08bb2bbb0348261f8426cc16720fa188458a4224b92dbfa067c3b518cd74a639119555844df56c0cf9023259d97fb326c45067c18adab10a881fbd4354f348139613b8f5e911b969aad197cfbbf4c1e24616b8f0b87e4206e2c46201b99da006a3c8a704ffe6ae36e3a7c07373dca58e1aab2bb6cb62a3ea5a248450df074dee89511e837b66b409061abdca119d00047252668cab621d0ab82518c66d41d951af924cb6b0189f9654a4a7b58359bde2e5ad4ef729e3d35ce95a589b237f03d10604002debb248e80a93957830c2a06d483c9f062c59b7313cfff647a80834809a3f6198658f792ecf9cb679a53ed41519b5b91015005cebe8b343d16928b9480daa3b025c68c8e9cdb7276bd588c8af8296eaba9a6ff44ff257a4542077e70a73a959738a48c007544d7fab9e87d25b04a01d27a8473ce83a6f91b3c8c9cd0493c35aa01fb38613f5d1932ee81e8622ae09f30cf5394e6ecc849fa881a555a1c4a7931e91100b7b26797b643a3a5773648609b5013f565ec161b657c653de89266a34aa6d80b35450bcafda7fbf1c0aacd8647508bba9e9b2ae6675149a9e042b6378c76335857f0bdc2b2a93c2e23b6f89d743415b71371c9e61f4590254508da401b0d8789b66c6abf2bc31a8560f988586301f54d6123dd8a4e7a41e9246ce3cabb721db810ec54ce806be4b203b8ff6574b397f8e933d930c23f6a128f1c17f017c2c2b22bbf52b4741a8c2198b6a2aac6836c09a3dd1115074249e26180c850567c33fa55b9a23fa365cb8c425eb5523dab4243b3cfe3a7fa7e75aad3b206a32a11282774745bc96c566b05562a6696efc789fe8989a6fc218011c4cbf15b960401b4e4937c752aeda715ee0e39225494db1a0acd61c704a62bf903cb6219951fb568934f2bab9595895390eb5dc3ae6e32390a942875826b453b42bd32045c5cd917a01e283812ec0274de627c1061a8208c7ea0a4b5d71004c77419fd080e662051eb2692d7676c5f319f728169db707e4b9c538f9c7f3d823a53199fc9a9f27f8a183d62247529ad152cffae14bb2d33e15dc669df777ec06600723a7da656f7d4463f0694e46649fdfa1446306377541aaa7e3948b83b7b39522e0eccf544859f1459375db295a879f97755b40e514f6a22d90f20f22674cd071a5454275af02c461152f79b8a247f69a56aabd6a4275c9757ef708ba492892473ca461730bc069a5ed103eeeb21ab5d5b96e868f5b64bb5f18174710bed8108742c25f6fa5b598a81c8a509454d8b6b3744a0e85a64ed9c5855c3014853d4836565419adc67b6566968c2d82bc4bdc424737894f48c19f60079df447b82573c2d28ac4bb29c9272580776b43d21474e52e09ac2255b95e3b3c7ff02442dc47000000000000000000000000000000000000000000000000000000a3db11a0e8a06e78944c960e175fd62f4b32871e83ffe837b7f34ff75f9ebe588bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: 2363ea527c82054080a7e6dbfd16d3e96e07463bc44815397c970be5db84d68b72bce2772578c82f916b29fa0ad068e9c383bde469fefce18c63557db19ce93f1c302a9fa6d1d39faf7b4b5774b045f825ef9139cf113b531a12ce15c7c24393092eb886df18e295acfbcad1ad8edb5d20be0a412afa1857e722a20c2740d1a3ba0b101e7ce331933057f0b1cc19161344c87340f2b78510dd754395e6368e222bfd9413df061a3be812022ce2da08bc4de3bf6e657a3a80200e51f82fb098ba9770178dfded93c3772c4aa610648e7b5b330ea921c1547cae8d2a0621afbaeea92f43435bb40020776f529a7754e7f318f9968bb74057f371eb11013daee9cf8128046e492517b16ec8722d993b345fb0d0c7eb615d1e558acbb39f74e08572bd8ea2503a319767899889196a0a42f26e7434e359594a87f0fdd68149028bbe8bd26e3b912e95776884e83dcb3da50659c54c7f49832996faa3de449cb61715b81f75887529c7e8e98f39eaf3af683b5fbb150f7dea6da5867e0aa9b2ab42ba7ba42fcfdcb076690255d5ea8260c7b106738a63e887fc6993ad0bc93d1e6e9ef893981ae0540200ca393ecb5f7b90394dbf15bd33afdfa499199eb2c3ccd93a0e54fc2211b705640e87475c24e5524bfd5a80fa0ce6cf9db8d263cc203e52e6bc5891755331cff855b04c98fae0b416c61a8e38f669619a44b455752ddcc94fe1bb5608ace3029ffdf881e09c49cd7a1e397efd9f47c2c598c624cab914ead90bc50bbfc5c1aaf42362c48d4c2feb42f95057502f30a1a9d9baf49199d05c89db7cff332c24c7cdac1c3317bb884c4ab041580d3c50a68d3444ea0046850473ebc5bccbbac4f94de8dcd7453ee15e001242214cd26548bbbbb0681e4169223a7e0fead1299152476e9eb86f2a84c08d5308c61b9af960374f407e0d49af22d871a7fa048aa386fa83bdcda6bf1fd27996d597802595cb0d85360ad1717b9900b3f6d68ec680693de41eea73607de43668e55491b9e2670deac0ea38fc3218fb4797ec037b5c5075f7a65bb958a8eb551de7c0886f8d5056c1711cdf2c705be5d879d4dd45aeb3d514b09864333b6c8393fb37c4585018c8ed0d952df661c4808baf4ee3b2a93248e0ce1ba65b04d2ba5e520eb2520039f76c637749751e504acc792dde698b04a4b0b9e2f90c98ba8beda3c1a26c6941e509bed0d4b44809e27c982d1373f89a6a5cc60c3e4042f6182fe28d2d1a034f21ba4a007fad040aa2e0762adb6bbb92a218d3d18919714acc77ee1c281de78743337fe9a0d788d9993b91808f7aae1e88193f6fe8422c0876d225d724bbe5b3967f0fb2c2e4e2aa98fff8a8d82be444b840294f51fbe7972dc8b4cdb701b733b465002c1e49fbdede6f4137a2d4d12235f3f9e7726ca176e4229ebf382de8210a68280ad795199ff82740c5ace14acd100cd39c29a28bdc49a8ae8393c832416f52dcae1f3c24c5a9afa613f8d2df09eccfa1194f39d69cebaa778572f42b1d8537c9364cd165f05f +result: pass +shared_secret: e02c8542d46fcd5031c0efe0464fab43d07337181fbc4ab3d58bb7bda0cfd7bc + +# Rho leads to non invertable matrix +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba0082600ec863a0a0831fc05c3ce85c3ee9417f6c993412227e7be59aacf03cd9231c2e0aa9020c2d17510574e2a1e89a9905722a13b23d3e8561fe37b034916f0bf61aafa00bdfb1321f798a8b0c61062b9835f389c33b18169a156c11917d8949e9f1c8ca2bc0e3803674436f62798295982b6b3933b09378cb837c5ad440cda657c68c76806b96dfa865e0352bd5290b91a42fc74b1e47033942b07632093b5e717b9b90120ef389b8b2c4c7bb324807251b26c779327f4b776644a55e17e4a67c1a3ac2457636a057cb29329dd0b5d0f3295d128394259649e5b735ab80b3738495a170dc9880be07ad06c2a60cb7a5791295e9c03f4ab96fd287097df52942352cc31c9ff50683ade3c0a4015216b28b0b695b2cb62010aa19dfaac2ad2231dce54aeaf75197db12c291568d5a9a8147280cd956d9d67f7bac1296025801f36eeae79a2f71065f01759f68b30d521333baa96a998dd1946f90380174450692fcbc0e56a31fa238cce178a8b50477831f0b203da58943af694caed2cd3b2a6f58ab3ada92cc5a1860e0f9845f5639a1f555a7d1045d5a07b428b5f2db893dd3a80936759b73642aca1ec7b1535eaa36dd695707b89a9062ca107178673ab34d31cca4944642babd3e79045d4bce48c8b7d46c522291a6e81330f1071258219b4245cd5e381686cab8a9e10120e625516c1299c184066a3bf60a1dc8535398c43a8deb7546000ece3a429003982940bef6870be1585c58423f419a042c30289c80b6f5624458ca8da2713c564282aaba77670c73be5c7bf0e58d1948beea9a97750a06bfe472d721bfa1e54b23a35cd5672b4e84677179579a29723d5003e7a44a8e691cdb015f4ad123d13a8da615a3f52763d334a6a07258ff127e15ab23b0f29e3b4061914b8349056d45f06886051d6ed5a6974bc4d38a7282b837f18082759530c20689f838831a937b7ee74d4ec64b57693c72a778dbf73ebaac041c4b846f78585a81971289bd51a3359035ab12222a3af7bbed6a64a856601af10efd0b23e3d06df7d243b04ca8c07a0e2d0b883c997d74fac67957469189a1ac592b83669f2f638e0976c373fa354045799824bfcf9c45cd408343239ed168b8e25b831d2c200be6303e93103a14549ca30d9f8a0e4b976870801d6bb50d2ef8914371414bfaa56e724582d14879634bea15ac530983a996a31fc9578d88cb242b63057802e7bab2cf2981fc2a9aea2cb173b873e1569a73356cef7476b9fc3a0b18cd978011dcd8b6e0b3c0769069dd94a6f39c940f6a5764d8671208271820c444d1c2ade4043677b1a9d7cc04871981838284c85850d416b7d2825ae95f79bb95f6262bea8a37e240bb02d6ca8fb03ef2d221ee818454222c4d4b998cf586d3434024b304b6ca68b478c773955f2933921e882f15c3ae726547f9a019de89b8335ca3e7f74fadb8ade6c061106c335e85311dd3208724381e28cf3636ba7f784da2718e857467e70a6682e5891473002e176adb848a96b26641e89463b488c616ba0cd4206583804ef8ad9ce3668129157077922bf00999b711af0973ae169ce7f81157d298fe033a7d547cd5b617cfb908a8db40cce2022578006549c05c594a8b13ec66bf000000000000000000000000000000000000000000000000000000ee201edabcebc02a69a6e0bfa467e1541791f802226c10be95df3819959f493ae42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: 4cbe8e1ceb4f29a5a28a605625ff03b2ab4a82f81154af1731b0b930c6bb04af7bff3d7c2058c5788b389cd258851b6d3a17b9667d12a8fa61ba7c98b573dbc9cedc3e03a8f53b96214a4e1dd1d38f321d7e3851531246fcc1a2a1f937a101eace805aff3877438dee254bb7bb8b7ef71f2a202d36f532f2bb37f236021662f7eb0473be940f1b63f74276ac8c8fc8e92f805119e240b1df416dbb599a1a6055eef456d7ddc920fdf2277c6b72ed23e3b4b77d604974e7c10290214ed8aa9d592c2f0acee64a5a06ae2d95cca227c23e48abec08b22d9ee7ad35b0fa799b4b5f4cc0effada3f23fbf30a50ebef37ef6f30f6aeba700c6b8d10bf3141dc87e8c118d13bf23c9fcc8aa7473d2748d7dcd88fe5c2311d69ea29c6f5beac3b0d47fb5563b3c57277ec69e6fc2b91342e79b70d976c4359c00e0d08733701690dedd6f93a2fc751fcb020407d9d53ac454fcc8e0204da5e9e5e5f48cd7f3d787a95cb37e01f9bf9ee87e174e4367a0ce9f4aaae125a631d55e13e3cef3e6913f3203b9239a9ab31f297b6aeb5e0044d05fe3f620d3494a95b19bac5c782321651443716ee815ddb9bde2fd4cd0f274feb208dcf50e3a8f68971b69e847e21b948394bae8be37dfd645006a27aae0c4301a0801adf533e5229c6af3d9f9196e38869f68f71ecf720e837062e13ff754c72d101ee202b023c105765db30e5c51c06679b8cd504b83525a3e4a277eae5b2e6d59156cbe11df8792c3563c74076f93357917a1855943db2d68d89dfd53041143014142361d1617aedb76b1d536ba5b3ec8bd008e8d6e709565e02fb4eaca108623468071c9efd3de94d0a380f7b84788c7d17a5ff7b158531cd2fdd72181dd98f2c03aa872cb429e6f2f5474f27f6533d0a24f8a78178f280d9232e3215d89978ed0e0e00cb9b90ae09132bf14d9e0bb23e3f6c1a2d3139d912fe0b2dad2adf2a4a06f392db783167a332db072790324f9fffeafb3efa8547186ff8c198fd47fe91f0c2d513a91cbf36dff2ee65234b9ec53412f44c32d3bd856478507d293761cf61b9f9ab82a1c54d9952124069865b94258d29a2752a3c518f2c8407e022e66577281aa704fe6628282896ce6b7e8d642c7193f6cba50e8ac0b2ef48992649dc8180632a4f9b393b6ec5c0ff2ef5e33d5550c445ae9e60ffdf7adaf9375d3111c9d896d8a4673cb25ec0d05d2c8564137998e43f7dd51f7b7a438d1c09e02e6caf1aeeec2819ee801992b3326d45739263b66d5d7e483c6fc00bcf69b969421844a0042038907be2e853d965f26f3f5d543230cbcfcd7a5f3ddcaea581869cbac5828be28c4bf58c45f539e6681091f9a5699c9cab2f17f0862cf65454513977854339a81aad65fa1a631a4ac1d9275bbf46b11d8b62c9417bb2f5c30502665ebae8784f281cddb3dc0ce1e76d61f8420aee5419242dd5e09949d18d3fa1a81307b51b6b8a30473076e8041f46847b91278ce78bba4e7bdb2b1aecc7d3e3bf6c01e61ff59d9e1e9eb7ff7393d9005dd6 +result: pass +shared_secret: e572300d1bb28e65f38527a8007b312961b7c6cb204572fa0c7f53531c6c98f6 + +# Rho leads to non invertable matrix +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697f8111cd446cb2c44753cf29cacd39a7c9cc96af28545c40a6cc64f5974810ae45a97380302375de7c95b44318815776f80397c4608cbc22086e9fc06fed87c6c780ead85a8d5a82f0fc2ac28366f229566cfdcbd0c65ab3c112b70a908a85660547719e8304d513912a215acd011918cba5423e9094ccca3ef073832c3b81863242c864a90f1bd9e6359d9c72dbed85e76a926f6a84cc4a4839e5266aa9020f445ae1062b3751a438fec3dd862a8d7831db1c84fdb9102872b2c55b28e6f00623e2a971eb4982842392c10bc3e786a5ef5be5a69903728196c028a0ae20fa5921773f35c296770c8cc63a48844022a32e6d928ef042e0537876d3b276ad42ee7585b8dd38cfb58492e28488b0488330b935ee8701bf05372abbf4bdb1ab7da67367ccd8df4469c13355992a036d0a0eef51045a9b40ddc04c492c784a945e99c2a8ca52b99734e3116caaf2330ff4195bc2776ff8644d4d510f1d7cea4682b1533b4c567a1f0d052ce387237b92fd14246adf34ab4455f97f579d3e746bd97313ce10e4a331bdc8a1974481289000b39baacf9c757dcc357b2ab4756309849881289d66f7692a084dbc9b92b671ef115b979b26a8873480977ee621faf6b6a506b2fc2570ec44a9d5eda9d46f2437749367eda6af411ab661162ce8809e2c6999cf26ba5a37fcfc009f60b7dd857bfec86a3fe095df844388c31ab44c26b090c4afe58052a80bb39e614eca3c07e7871811b19b45224e7db6cd077aa4dd366b6755623453fd29b42af2732db855e0e829a9b51714f362b083bacc9e68eaa8507b0127b40227b9de014dcbb93b8db567343c1c1807d5f81b64031c364210531008976aa1daa866579aab9a6e1baa049624487cabf044c0e576902373ab2c0ce00f22a0bb61b38f98f4bbb5bb4018f6ff8a815d4338447bd133a610ebb10365276b2d0a473281c64e8c3677741a1a0c360a8797a3a4dfa06ca5bf50658600de1175822e27f187b6cf7198b8427750246b8db6653e448a16b21ab2e343ed4d55287341155a7b1b9d92cfadc26e138c3e784c03bcb6e36a1acd0e0ae04d78cef528b9636ab4fbbbdec0b7ec5e3c94c808f90646b7f833867b654fd9415d4b971e67920432103d00928f0f3af9274bbac2c5a7bd7cb27d2b1318b840b899257065026a576931735600698e2d49b136c641e080e034544325780fd683ded1caa11052fd89b5d18869f8a8024d4657e4870ced241974d2c8f6194886b509bacd5ad2ecb8cb2850bf55200d2226602a640e8812eb26a4cc0a960979ccdadc5b31d98cc59283df09a6c2d5b7f6ab703a6305709d10cd968826c6a019a264210c699030804db419c5ba4460b25510cb43e16e36eba7b74449612eb73662c79ba481816598045f601be5da995f02229d5d130f6688a57585c959c69cab00e462512e6129afc9bbc5845c9714a3cf14a1061b46139c79e02849b6114b80a75828cc946a5f00096a4a43d065ddd5897f3756d0bd208b4f8685d2a165442c132a74f78da6370422d0b01b812c009da680ae91ca0fc56bdfa36a32a6308c8eb32ccd23ed3eac3c9a029186a73c8d63e8fc92a5dd42905198405c76a2ad92f9a21a2b62b11e8831b4062425c62000000000000000000000000000000000000000000000000000000c7251fbc2a67f5f93c6cc8351988b94fa564f61234b66064e5b41eaada415781c975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: fa75f5533fef3b994435bcbd3d2080030cf8b04d5773762f1ca6fbce54d86af4ec2f36fac7b3f249f4bc11cb376b23e70a7ebd39da39d9377ee63a7c02105ff9538d6752482378b4140266f13faf8c7ee695dad10b590b40ed5627ac417e8399dd398cd7413587f7d5c530801c6c3d7a33838cd42ab4d4d47d263f4e1366c539319faa0bbe179e069a4880f928f7f5107298b1bc2bf75e6f9d135cd9c96e8fd1483e3f9211bb73fbb5623b9ce1154cbe01797b4d69b9940c20d4fc5b1d1e103a9fde78aa11310e9ec3cf57bc2f41e3296c42991e03b19938e2c57efe6579c192b66077b4da4a7bffb383d23d7315ee81794f2c4f74c4349904190a73eeb1eebe03ea314f708f9f103b2862f8a4a05aa8aaef91818e6deba42b60a9957e5261e01f7c68efca04eb61fa7ff86996b69a2d7e293a6407004bebe90bb481daf560e446338ed6ba259e1d0910ceed2afc7dbb520629e8cd92f1759803bf0a598ae25254f054c4551009f9f331d24c9e443b3942ce662b28c5dd5a6f082ed5aa2725ac7a9e3abc6e57d9d8603052015944ee9d6d55198a5fa9d9fd953ab5afb63eed2e0e6d01983a8e2dc19708c404ce6a7092f2761b8dfad19e0d4dc657827756a99932c88643c6e3adb0d272b9cd877079754fcc2e60c5f222d7c751914621873edd16289370e246bf6e63ca7442b54f7d6198c99deb20e635367fb3c187063713d4a6059ce5623fd8203a73b62c2476605107a64efa177e435b5c7bf6b7c36627e1192a00d6d376612bef6560acfc270257ea0b561af6c2e4738207d60197dc1126c89ad7416e45af6022b227f9e1c4beedd248c8fff802675e21b15f06c3aec36400515c4bb9f4ad2e878ba4eba2658c66f4f38cdb2c73e71de1796290133857e90965bd334628eb83ac769cf63fa9a59298d089302cec86c2d10aa03c6d620a1e735176665435479ccae37a168a0827d7f4d8070d98065ad0bcde435c9e9e9d75e71ad0e40d061a2dbb2a3262e18704649a14310e545e8ce93be3b33fc442d437acaa3b5bda4f770f5eb60f56b0fbd0e9a4820f3c464cb900be522928d9a3a29573b07884e19da158b317fcdf047a2307d0066f16a3a4e389f0166650937ff1df8c4e637e24e2d50f4d2b731e7befab3b0c33ab81b4b031174a61be15d992315464f99d292696bb1536ddab0195a140beb68e72eddca6220d01d4fbc77ef3d743ac1dbe06450614d9255f13e60417624dde40a25515f19b52750c1fabcd7f128b472d80337c469cb8ff95bbd2875ed03efe8df9aeb677146002c138edb668a22c1e1b671cdf636a725de9bfa9c0e12035939c8136b8da4792eda4e82f29d33bf3f67954863eb993e51344ffc4d144d651219de292bef3f3763e2aa061264b11016b6bd4586f46215eee237b8b616a260071004e253c7e1424d01c4b71bf53e085f93c6917a028e6f5134e2c04bc8d9a371083180c3d95a709bf56f79dae2be4b1df4db2fa14b075ca14d0cc7875fee90f8ad2ef73fd4bbfa3422475bd9a7b8195 +result: pass +shared_secret: 0749d8808bf77c517e622f26abcf23f7c40144b37bab16c6605ef1c97636689c + +# Rho leads to non invertable matrix +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe3317a86b5b613c6c4c869dd552a711040a0a205a6a9b7ee5c7607825a76206b3db25aa6a0960da259ec279960a5a947106b51a299792707447856085a12397e60cbf91713a6c4bc56b03531081b0b38b0866718c53bea1220f3e5c3a59c74f10c765148c595becb9aaf0ccf2e429575889b462bd59678f860a5e501aa758674d22842cf65a3f8dbbaa7da061c54073a92cbed742163df301e3675c5ad96b26b12651fc9507b7361a8bc0cdc47e7f38c1ad80456ac3443bab147e86924ec112adfc9f1c1b81b478740b752d030537c817a727451668d9ba1fe092d5e116c20262b722b6f895b78e3622c00596ac8b5d4ec11b0413635e85637ecb9a87516cb8c46ef2aaa6fdab62860160c4b29e23f921ed3a381711540cfa5df115a700d40c38b99efb870c6ed14f2261b17ac21900a427528cbff423b0ecf29c2a901baa9c7ae3d438c145385c73b0961c4e9dd5cb48c2ba247a30b9691dd8fac963a5c46ea44de03274896c8f36e57f84dba494c473af0a64d97533b223a32f8078d933bc6db125c2e7a779e0676e09648cf6b85c2968b71146763b7082ca2fec33884d6704afa71f5723617f83737cebae33b95be2393cf1f104c093b4caf26548704490b4aff5d6175ee4c7a3c0718436bf996003039aaaeeb18e92e341938b7a71609082b18995aa042e628f18e8c6f67b67770597772259e0e7b1025c29ea809beb994483a6863d038f6b9bb814a5215d299ad0b0b577d70e7c946be6c93ee257c68b1653ded84761b3a6104814a265988bea5a6ae96951f1bef6f53f50aa78c1f655dec149706ccc561a846d9cac61a339c3c279a290829f972a1931ab5ddc4893f71127d1a96796a24152a5d56016bb5c9d483b9b4346a8550784a828a3b53573e61104b6392d0bb246b8116d8f78021bd012c322c8b0d8392677afb40b36e49c0211449a2bd841e44b72b25b11cd099bf4ca292af2722dd9ca2ad3c36f4377ee54986b737a6a0b87817384ae9964244b140689b2d2db0deaccbe9f63b182164b89c932bdb22e6127303044b91eb76572e19785747e6da01c20318bc8092a7dea7ecfcb638e0584a6e00ccf243e06c577b784704c3b448e22a2b2c9c1dc0224c7ca798567b1c5f3a7ba660af4028387f2c573a52a28a3449c26342f214923e3932f3bbac2819329b83a2e89b78d93afc3c134be3c5fb8c67617666c22c71c4cb99063898f65b41117893785f376d2330b3b5a2fa946374f8a1a2eca1645d255c2a28fc8d7734fa10c67979e5950a1b5e085e2d52763326f3dea8b783297d509333947b9a47a9ce9caa0fff56637a54ffa6a00ed942e0d382ac6c834a7e40859f58d3ae991a9e359e91530bdb75c5568330236149e71040dd9219f5c24cf35c4e6a670e0719b2e738969f509cc55bfb6ca08c68c28165bbc43598ebd9744a18820b5947f0b41a311846588187c0aa669843bc6f4620cd1c62f1aaa90f93b7537828b42f59c153b9ebcc9ae1168b2ee7b2f10c062bdd49259024f4fd51c8994acd60478cd3a00593c403a3279877801d3c88f65b7bd83b76fb54c49bdc8af3cb4b2717741bce1bad123cd062211e74782f4620e9130a9950423afdc98cf0519a643a265e4c6ba4142557d000000000000000000000000000000000000000000000000000000d79f3c29a80eb53b13433a57b98af3c8beae20850d72d14a2e8fc6758d059111d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: 0d6a627804b6e54c49e39e098b20c978cfdda91acd2d5d883111b0fe855460e981f041682f419dee54cf5b7f923c2017b1012f0b3233d507ed065e96ba51f92f70a38aff0ce071110bb0513b22262aac6ffc1287c63c07f312ca2310293a56e85e429bcf3b8662426c086f388312513825888762fb3aa87a40653de37f48870ae16c19ec088bba8911e944b41a8cd595e2fbb680971981b5352a9032b28fd3bdd63ea4a72b5d999d6fad88e19aa84e5d60f173283f7597b682f4616bcf532ae1cd5e9e5e231c6bcb1c9d5fd0e50d54c53ec8a4f1162696aa72c02a6fc97e80686886b84899a7ad7a1ff6468031dc403dfabdcd793bc31a3036d5937f5af337f806001f4ee79dd889e72f5585636205a3a906c01588150d73571ffaffb9775970af6c98a17f1a6a6a0161de795ee20fdfae34fe40e4423012dcb1cb918144225716dc32c6d9d453a148f3a5999b6df6748a97429ab5b8c6007f2595b47fb52030ffaf99735f22657fa8e93f31238941436b76088a72dc6a133f96f0461eab8ad3361f59d4539090c2dd4b05ef665786de899af3582a8a41400b0421c6c646050171f6c2c8231e7fd295f855d2236f6b17f36cd998b47542ad2a73c1751883175a71ad2695b7b372b71ac8cbc2729ab1f4b76eeb8187777404ff81e46aa3a246cb0c9dd3b7fcc443f6a89df493b64e770aa8507253aebc041587b3b9e365688138518d2e84b635c045c9f7e50e62fedc9a42344bece5e21e05c52baee9da1e5fd50ed674aa83845343894439da9188a149b04d7110900fd3a6bd950be022cdf91e6bc896125a10e64ca3e55785aa5ee668e42f338abf50690c61cf19481b1162cfac86b4f8b8800e3c65e82e94e987e37986a3669e401f199021a98294018a602801c07b51faa641a34183ae5a101189887189f072943a712f74b3710a98ec0a992ae4ad1d4d56a508ea3d0762d1b004f399261f2fd836b97740f4d96e3a939ec8854b711ee358425943d218f92a7e07799215ea2e4e097448f7d75e79850560fff7695c4b3f1266f60c430b602db4cd75983e3e252c541f5d39cd15253441f76534cfa94017f1801797503b9d1518fe4857a27e79c842cd3909eca55ec46d9652ff448ae113134c7d24a506987875e9aa17841c9453ff951aee63372957333e8af8ad72ca7e8bff5e0372209fd0bf11881475d0900c643b42b911ed8da750f4d0afa53d13c749bedd5c69a006dfe44a736a44232de96075b6db454644ed3403bde16116a670d7e6c60e03e25a72711ba7b17e5b65bb8af376eb71df16f7d48af1a903bb6eeb599d8acd74d7990053b39d4c81887411927689e20b51006a582fa0c0416299c850e75a81fea3f4dd3d3985087fa7b5f163827c89c2737a86bbdfebc4240c166acd4fefdda881f76be78a079295033b10b5e2bbd9590e3354d86c2532e43b9d1ad7c66766d2faf2877eb0ad087fe52fa1ea1a0d5661872735badad7ee15754168059d5f527c6b188e6dcee930e09718f6551da8475df376ece9e890 +result: pass +shared_secret: 951e3d8eecad130865f9f89c27c36ea8d091b6f3c00e35969f92bfc4f91d657f + +# Rho leads to non invertable matrix +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960f486c7d6766d95f2b7296a07c8c7b767c1057548a18263a4366040c003c50084bddd31af425b261083ccaac26948ba1882739732bcc1e73685b52287148526bdfc47d8822d1d5853c9447b21f200592937b9229b471646beca2cca630502e167b7c861d03cbe302600c6e1806f6040cbe518e15c0eec4395ec1a47c44c8456830709a3be9d05cc5cb3266f616f9f8a7adf9b2a04bb623f801da0c8c0cb4b45c16282c412c24ab90c7471b554057b6c0623481a46a0aa53dc167c15ea8a723c81d9d56691b060bf00554548c34f1c603b17b705a72b2c3091ac134d192806635385a5ec9cd28a3bb56b83cd2b153e00b66eb58d8580a47e696aba9abd36b19b3cd47a0dc4ca2d6b7ef106a3b94b349c665b295433f4ab8711a01e2de8295d58b20eb2ca49c23d595c96c874a2749087dafc044c0b8bd5b340ffd12fec07640099753d4c993fc69d986210dbeb95bab40f6ca0096ea866ef216c6b2657600813052886452c130e7c925940564918a5266531af820d0e69c10471ab3b74585f2cbaa1b27274589fea64b2172b4020b4619b6953a9d56d022c7bf937650ee5608b15988b3377bbb617c4016c1ea3a7afcb9665d995eebc2b0ce76c38a0b6bdf9436ad78bb97852ffe8a618f3c82dc4afd81c99a9512777094b12564ce1a469cb49045a90aa3d2c20fdabbc5bb4940d30360f17a66d58b7a3ba7920c102ccf8b30f03621ef722776b2fba0164b3426d514104a6689286649862b7cbd84011008ba69c6148201b576a7b4b58a53035946a0af9646251b8c1cc7bc4c058ed8bbc53c91ef74cc06e1c32a211ac42570b7a7181f23552c762118a9c0f4862687a502c232b9d43224f5fab525f6186332969b246082c44cae7236e38865e4dbbcba87c12e90b2b970097c0e307dda00d7cb98574915a03d25384d4584611c837e19ca906a80868b382940d909091527b0bf261be5ac0a9ea151b8979ae46f2453b420d5b6b1fe02605fb8bba1e065bb9506e1be7c471a9b8083734a110aa6aeb8340338b14aa71189cca4ff01777e7a251b7a0cd1cba9a9a7b9ff3953fd9c87f5b043f719f692a9f4c7352a0756393e50f0592cac59bc21e198729f23b4500d0e620bd02222a88c5688ac02809315cce210db4169fdd1312c0dc85baa25f3d48ceab80754987553fcc7806827441b590cf9a8d5c590b2e00bdbc9b4ac3d2883f6cbf9e047407858b99ab6577a66b498b0f18628d16a389a5f5a20e1b0ffc228eef287a36968ed913b8fd74a34de23ede7743da2311fd10c46eeb84c38986bca7536ae8a3a42acbe5dcb3fe9432bdab1f3d1226a99148d01219f3e68f68d7a689e39d7502b6e13b665cf0235af1489bf4ce8619624eb4509c7639ec411fa223793b4cbbc990256b390fe23a2624977477428ec39835809343023c1dfefba3aef98e7aa15ae694861ad54e0c74a6d8122ab181c9d23397902c99b0dbaf78a463682294a2eacc1cd36c8fc1ad2e282a72fba0bc179520ba2b410acc977b9f2cdba3213175204568dc249571c20fee0874fec364eaf210ad31b6018c2d841269bdc95ce753cf6a765af4bb9deba17253985277f71d2563a585a7573d31c87b80913c0a38d3905a41de6fdc4700000000000000000000000000000000000000000000000000000097e7e324c2d12c3d0bdbda0ba8582b04e2ebf47f5ecee9b9173053949f6ede27a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: 068bcf0833a0a08f1a1c9128e6575a62ed3f2e075c4444f2b4584b18e4af26b4e84f16b697141c2b000847dc2916b8718608465198935e67d873335d065b994e2946244d3d739b1d31ee6b8d54c5bb04fc9d7d6d22496a869e5331d5e293a712408207fabc35004b13d3ee3aca54200182249642c5e9de88bf5a489cdfe6330170c0b2cbae18f65043ee306db39d333344c37fa76ab05675568a5dc576290abac1d6f28f6ee1d800a3c638b91cd40cb02e531c88c0a3328a176f872386082f07b4a782f79d0b2cb2df14a62e3db5a30fc753f25db235588652c51b251685ffc1090ffff37671384482d4ad055f0d51a5f00c1c14e67824a29ff8910d9e9295f633b6e8dccaebb2da47cb628a246c6a443b87981453e4ec64e7d0df499f026977b039f73d5edb354bdb536896f35a5431ffed50861551f5e6114da8782d3e1530858e516fb623dc3c0bea0c8981bd3091af72555ea18ba409bfe2419a60d769999d82f7bf588be754496143ef980a3995daa51e370984e212f41681fcf6f1235871389fd3b52e76537b84af594f5405fdfab1d90c79a302c142f88affab1f4d524a139ca894cad46f270270f2d8024d06582492fd1502a65e7b70ba0941dd957808206ce00c6be60d8fedeaaa0149f17ff0b3b775fe59317e769024c91ec83a191cd72481e3d90361a4dbf59968a33a56ecde8aa618a8046e0c021c6954f983b489bba80d15decb9955e118899d98c1df865355f5b9ffd97c52c097474704088cd2dcc01f303ec675d87938d21cacba1fed2483e144bd6bdfaf5a9a233238313489e1aadb82a060390adbbedc55050ff86f967b4b7aefa563117556c4ca5ce9ec3db571b5d2c9f5fef63e731c86b0ef3d84239641fb082063ee3c3756006b306754124f9b964dfffe718c72b93999255fdb3c4eea7907a8bfb5936801e799d499269226df5d9d3232b5bd5dba5c2ad9b03826b961535044dba6640b7da63a9f639a834f7311e7d9ec4a1591d041de4f080416acce59b2f1fa4f4a7654368761bf1025a2de5f02cfbc2150685f3e457aea26ba25ad3b828f9dc07d33a55450a0f0c6fc3898dfdd7a43488ff012cca26828e5a1dc5a0d605c59afcca1cb0c76b3c20524eecca2ba2afc939204bf06adf3a5c0a809641cd83bc1c5991c9d16696a4e4e6462ede7953d2694ec9ce865523b1faa9ec4b8d5f737ab31bd929c45ad6292a6926e1c62c7d48cbdc6c6e30f289a539feeaf84cdaf23330c37c97de3ba6dae06b737e2a51faaf0363a961cec9aadb8c74779e242572fece99801eeacb7e972931da610b75a3ab2f7803b8f3b9460f1ad39385e9bd1fde1b46b676132f5590c6cefad5450de5c52087f7f5dc79ae1ea8491dfb8b2d205361eecd231f3af8d95a12da4ece84d6985325f4d948eccfd42fca19014e7af568175879101da556d615b3f4d81e0a4878bb32ae24eb4fa91334b214b379f6deeeeca45a89ac0d16d533707ea5e4b5e0c06be84656e5475c4257eeaa3353d4444cb88e499ce7f5a2cb2 +result: pass +shared_secret: 5a7f85e2ae8e79a1b178cfb5f38cdf9e240b9997584fe9c432fd63607139f08e + +# Rho leads to non invertable matrix +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa396029b98bddb329742ad26390f48a7c0f624c336e5b71727a4cc29c06e1a2968d864e131b79e5365dce048453ca51bd8718427a35c63ab784ac5476627ced945b656adc438a5294800b6b62f62320adf193b198998a845954a2488e0ca4154a442b0012d44b7b24fa5a6f03a8efb739ccac77b8b54cd235ac65773223f3709d0cb8195671f9ed7b324a11d920332d41c9ae0c0c30279721c80c3a2423cddac9311cbb39f7512d8859074558942504d9c087d9524bb21f5cad2826688e5bb86b91c1f120da1808a654348fd3ba11f3b20bc7612950c392dc27cf6a4aea8f47b841645d4860cba4b3a865c46c0f259af1a60c43141f548308088353617bf95427fa094389a3a6d2df6ccafc7384efa1cb0ba2ae5a2a8d89335d1eca833ea026f9a08c9e2586239aff1845fc5fb6472d0056770a0cae059d81812b8c679c502b3527ab21c9b142f89bc4092cca0a6c20bd1a22c29b773b2aca72ab0a9922d85a8bd676267e9d6452235c270698c5a7a13a1640e5d20c1abc844493ca3634c1ca0813e7f73532388c1e059c414c24bfef16654850f9673afecf630fff9c3aa0a56fab46eb5cb436f4ba94f046e5d57a2d1897680631128c42dca353861a7aceb79267a48b429539f51475414c66bc66a1e8155435df18ccc2993d5e93642354921e9b2205a6270e34b4622c9c69915ba80c9ff994263a11c46a95b8f5c43de1c5221b0745fd2ac0ad5696e5323935a688c906aa2050f89881d3d21605c9564997b66c6452e333cc33ca839db53c17192796e9213b0d7a2ed796e7b2842d9aac2398c3ad11abb5cd342eaa2c6468b70130a5b8b2aadfdf08a2c39732708842ec03d62f60c59b28b81f726f078a06df43faeac927d8c52d14664bde5200bb55cfb06478ffa9b62db67f07565a5673393a388ddca18b7d7978f338d93f37d24a38ef8786e3ed14109421e5884c18da611cb7b62d745323611ade1527fd841a4f3e7122bec4c81609be78b1e1aa274b06193a9291bfcd88ad0fcb90c69c2d4b4073f89a733729d3adc79ad93138b8116fc05b07d7ac6d1645e3a7ca15569b1fe923115133892279f2da7be3f96a3a4417d3b929fb4d842ac017368bb461dd4673da34583f71dd89963718a487db15dba89b26f57b5843804f4f77467936157a504bf106fffe93b82a5be0396161be988c415666b1a26823755274310b8c07d2db27b4e0a7f62747b37527b4b3c87c758603adc3b240a359639634480834de99a6efb12cee23625d563cf969adafba20feb785ba71a5278cbe18a112c673e3332575fe982c6fc853ba675a610357dd2275aa0c6ebf3b5a66a38d253b13b8a21170647c28a7397498d9473c463b7b4762939af5a8dac0066e9f14b8e7534c21342d4c7cf4b539d766a350d882b70c29bcde61f854aa75d427a84780220278716eb8ee1698fd5825cf206a0797552e2f18d3ad062d283719dd61d160681d685ac3004c0c9802d78ba41e8404436d8563de6174e911ebb16a4ffe945034932f335467b250bd95b1d80966aceba882f2858e2011f9be167e6e3c70b234da466a28f8140c9581a9755b5216882f0d43bb70751ffa702eebc7dbf12450cfa3b542777c35b96077cc1cc2c5fa7ab00000000000000000000000000000000000000000000000000000054a21826b02592023db2703799411b54bb21a140a3cb4772b53669afbee98aba53f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: 9d12c628e857d6fd5a1932a879dcd28bff777cd6132e14fa17480771b09c7f325a9127f610aae2bacacf515132f848a943bd40e75b894d37b55018284ddc5899431636325a5e86a79222196fee72545b368cc998059b0d88587ccef6e6eb833d05e08123f9b18c13ce6d456f4995340e17a26a9c3eb97930dd207d5155fca9a160e5e8c3f8b7259637721391d9f0787a34af39b136f306400b4805befbbeac25eeb533678b6994fe71ff8691c85bb2cfaea77efbd0299415a4adbf6cff3f4e63cced78154525b5b3d21cc838a5c89f42a1f7c2e2847c8cdca0351c47c1a6fd3e0b20d2d24989b931e1bf6f9e3d015a1fd3deb195a959a44f87b168976b71ec5096a92c0708d96ce00930abd77f4dd101c64106671656f668a07934c89353ce8b27e76007c7d7aa159939210295ad05377625b6dff8744332b834382df6ea2254d523f415928831a46077488f925dea5bbbe4ce007852ea26353de810a78d79be4da1fa41546739b74ae5153d692b14693ede93e2e5248a9244a35a7b64acf95290d1547d6e4e1d63c653a0e52c83264d7349d209147c97c9971957336f036c7195aab3e80afb7189542c45194024e349ab7f62c9cb2983e238a8c76f4c5ad6dd07516d29fec6f38579abcabd1c04005c4106b22c45d27b7786575b15ba00be22d752d6dc7e689aeb21ba9980c63476e742b1f780e6f9e220ab09a5952126ab01a59277a52ba8159d3f25dac39df888ba0e920cea9cf8d40525f79f74766f62bfa2478afaee5240f30a106fde661789d15780bdfe17e15cc033e179735f1de3aa82089dbfcc9df71253bcbc99cec3c5cf163abdba2b8a37e8321666ebf0639e9b240a3fd1cdffd249b8e0f04228ba21b777b8cc76c1942656ae9ff36410564a9d776b82f1e61728e71fd88c1077fa74d08bc2d5cf59b82163e122bceb5b05f6bc493ee02b111af667fa67bd0f7464d8738d6e1b47b282e83f3d83b1ed5c32e1534407c6976e280fafca2dc950597dea6efc162139cfd2bdb5379ddaf6c2d2ce876801bf5dc8ace9bb766be0452105861e99534f84512ecb98ddaa2bd2938e371385deb1623a13900eb624f734cad7047790251bffe4af673e7caa5595138b8dcf15bbea0acfb745cf84e98053ed593fc1103e80fc4ccbdea7cd3049c43dc46a21d68bf194a101767570d6ecf7ce087dd34a526673b6b959a9dd83e809ffe8984d5d86fa9c23c0a47ef11359283ebae3a1c5e6cd9f61a73a2a875d0d8fa1a801d31826ffbe79179c9b32f1ecae0097350b44918242aadc9ecab9bbd1e889a113d9cf1454163317684e0a99318d66f6435e373eec3ad87789afb0f7dae49d2b03610b5db9788e2b3e0c96474baee4bfc166d3f5580c7654ed4b19c325503898b38eb24aa30e4496eceea05954780dd389939b87a4eaefaf86ce855d1d1708660add4c70d30f7d14262aec22a294987b2b850390b799c67ed354bedbb86bb8c1a69e38313d4d52ed2619b3c482f2e16153263b3e6b7863d8cff75fbe549ec30da553 +result: pass +shared_secret: 5e36034b55f986e8e39485c2de5de7f5bc816322c6f36ce00b8ef8d7513edecc + +# Rho leads to non invertable matrix +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d7493c30b1c077bcd1dd852cdb9736289bb441013f7132a86664c31990bf601cffb845d39a9a95f4b44e285c537cca542335e77b8ca7ac4037c56822d524f74b76f2a113693a63400334967f9a29008ad53f01921499e54e8c315b47788aacdaae2269957010f4652c48a19cea9b2a32406b4ab4128e150beb10e0811b2aed3c95c89639a0ba3ecb689a911acc463708b733d3b724c63b100f62c1863c2771cf7c6aa215e5848687546446c75a1b3d56d8f07b3a8f8bf79dcc360010fc833056d04a80132816a63122c591cae5a4c26ec119a7cccf7f74db33c8a83c379f8f3cc75e85a8016529157aeaeab503e7b9734c8801c309ac580b792433f46451c8bcc0fab6a9ce7b0a2110a933d62cc55f953a036b3bcd3a9078c01b16bb6f78c9f14aac2949617bd6c0a99f003ed2bca0a3690ad444d314a1c44f1638db6c31a3884823a92a28aa3eb498452895733d97aba3c3c7d26139843adea69b3730451fe75aa74f6a1dc87988012318cb172b37843bf1385bb400018416344a4c61ed9436e142d9a512d63693c46f47e2581a97349bbe6f463e5ec806f2bbe56025932eaae009591ec6260c83202b4574f6274414e998d2999371d39855d7b52544558a0da3456191950f96f0995313bd06ac4371207f606781870244b3994ac91a0030b9b26072e121322c7b3a7723527340606c9657007b70700739b278da9a14759024537aabff70bbad9bc513e5809677bb170d8886b2176b9999fcfd5c5e260475d315445d9a6a53b8c7e5919fbb6209d2112074243c16c783fdc571dc842eae4379378827721030cf601b92a5f06aa877b8070e0b3a44762786645cca13c8e5c84a5010290459a3637d7c240cb8b1cf0c58a649c1b33cbd0c62636707d321cc93960a42807a8a4fa9f7c889a4c6ba672b14206926849257bead619167c8cc7c466186821bbb8c67618c6c0d9064e71519902280534623bac0af20259304a46b0352f0b62707d7645b1ba5817e41079893b1ac00fb14480bce6bc19b337a05cc79e96ca15dc7686b33e2e85146224b96266c8164b4f17ba6c3070960ce26630fc454cb25b51e935c507afed34b029838822a0a77a24bf45e9b9047627dfec040e648738e05a62fbc972e4c1b4218300221ce3dbb3db904e82bab6f207743422b453f728084501ae7b96c26534913568edb18446c409613b3ee4f52af5b466c9ea7af349bdc5eccfe9a510f6fc24226687a9e19f6a925b8653209fe4a932588cd52bc41e48404e369394385d87a5b28b80b971836e3c8929547a6e002d5f26dc4417f0850c44ca3905708aa40556b426b6700d4e9126b8ac7081d291fd7569f0b08f789b8556864483ab668fb781db2837e73c20891928e1eb3d29f7a9a294641696a1fac1c4bd526e1fc73c78c01ceacc4a5b707262307f8aa28f61642d71d4aefd205a5bd414150188fd679636ba5fdb21740fe3738c5bca69ba72d1f0871244b0fd430605253499d351fc102280987956e287bfe40daa05a6d6179ddc75aebe5076f18a676ee71658283752ba79a2457fbb107c1f7b7540513df0119b40fa2342b64b2aeaa21c94905a5c68f222c84ea63e9c0b0afc55bc605a46a8179edcf8882ac203302879a33b000000000000000000000000000000000000000000000000000000b35abc5ac256d7f72e6a83cdf27e19e97e40639a6832eb08f3e534e831c385cbe366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: bb7e0dca6eca3ef57e945d921c2f80875556f7786d6bcca1312f86b3bea6d0f0a73f7d6036a7c38c62d4e356961ec6a28d8026a2d915d9721ef815147fc09ca65a3394aa5dc14c08d41cbe932337b9a531ddf68df20b6aea297194ac398f15919830e3ee6c20145c0aae7a2cd276ccad7b5c414212f0c0ae7106333868938a6a00da19377d996c7796d400606007dff30fe554a5fef86944d43ba047a00da5c2c2a1aad053aeafcc75a1e826a417b4c320e60a68e63dd7b54827f5b8b0063a00043f29ce8975d95bd418eb2ed29db0d9263c67fdcc153ba9b5a33279becb7ab193c2f257bd660fd7012712be3fdc2e52490ade145e8e030ba1ee5368791e6f3efe00deb34cb454cbf7fdae3a507261d9fce66ab58998ca19380187e3455d425977a8396cee3442935e24347aed45fba9b323a289f1b98691e35017ecfd7a423cd8d0149432a2063e0786c2f912e1134ebed188511c905a1a9890cd55d496e8441ccf637b4d660d93c7a46c3e17219167c3b4740878ae35766470b5eff3c6b1fc8c30e5c9645a94ebd48d2d40fbd4baf9d822deb26c089da84043340a564e6c311bca18c7a2c868831fbb866d89652556b53297b9c0040e98a692fa536af4c9a7aa09321ca27068ca66c665b1121ee4529cb3e6d899964de759ab915b0d2c571c5aa76cd64df4a4e55d9de59eca7b4379b30f8559db41e804a18b8771f594b9bee3de9ae98a003430aac58c141e6f0b7b1e5e08e27d1127b682882be055ba31e280dbace7878ae60426626ea4c5bc034a9206e27f578edd17fa6c33180b649bc7bd437b2c86ef4e0f4583071f99090b95db1e415d21ddd88a910b1fd10e3a04e391d947558a6619683ae070be04cab88300614839503f088e2f04cc4a7d091af9833a4f957cfdc574b1c994673ea14dce6ad89adebf5130d266c1440b3f544eea380ba245e21651f1f2aeb2b3d578000a87683dec69ccac18b0702d3d030077981076766e7e5f3ae1174eaf21bf03662c6bda5fd209da19ff6792c0bbc5d210851061dcdd2e4794d2c3c0c531e92a2c4a23556878d3e890b65289a6a02530bbd40ed66db3bb220aeb71fcc3c0b5d5b3afc71377746b22ce636dba028bc052c219783d468fac1d4eed555c1b4676705c8d27aa8a09c6fd8640a6f7b6790ff173ac39b5f3c709281df4274cccdc1e3b690ac0a77f7ece34cdf3216d2b6058baf5f649ff5036360dff99334ff06a366785c0404c584f623801190082fe5cdf88f9cf41032681e8fd6b84d127add01d4b2286af648b83fe69aa8d109c9320bd40621cf75adff8603e3da00be36f03ed7925f19b2e913d756e952a9402cd4fbffc0428cd7eebdd7fc7d3b4cde181b16b26811cd53d9f5d85d37c1670b957d4b3d04fd06567ac68d3f9dbdd45d182619180cf9292e86f42bcc213e94900e0c759e051bc0e30ffbdb91a2493913dc8b81ba4c3e8ba0e7277dc38dc91eb2b27823dac71b6f1c47e2a04136e2c0474fe070e2e4bf8e6fc98e73143ead3c5f778ce8a4efde4 +result: pass +shared_secret: 5b357f714a293b6724c0dc2e2c5509676782a9dddb050d88e6efa0a6d09d20b7 + +# Rho leads to a matrix with unusally large entries +private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988cccad7dab73b47cd1ca43c7e036d41c94f8f31a0de404fa38a1da0992933d752acc0407234883488a581e340bf5a8dd7112099259ebfdb0cb094c8d592485f25729e1844870a3d57d63fe9c1295fc2c4a374508f359a7e9b062348c6c807322f1a2dc887a20ff1b8e951b103698492504dd86babc01339f5b0c9bdb01b65514c8df3a61abb7941da84b8005648fa0e5b094e54e56a56e8c840371349820dc3f48ef0fa488f180f57b5c0ad663512467836d6765f6517ebd0172d886430357baec25c709b3abb9c01dda27e2ac7c17cac7511726a39050fe92399e14780e3288ae775612b2c4baaa032af561d0356c43175c6263c5d9cbc62f57194c9f76fb5293e86d9a95a641325013dee98067d513525eb5d2f7cb5783915d0917faee635bcdab95a61592fdb1de202c439dba37a235e3888134249044519732701111385b9c91c2fc96b039d6483c6d1bba2223cb0f612c3f7c6dc62bf64a04b349a0fab73290acbb15ce1cfaa15c68d896493e67dd9a518782b35fe141a4d70bf33e97a616c51193b711b04a40c9634bb62726f748572155667146d311016880c670067c653e9a8dc0bc32865adbf41ba99f19b2dd9ac7998bfc8679c689a05a5038042885742a68ef84c429984588995a6cee077c3a099caa7a5d3761cb4411d1dab8fe7258c75903ef515b6b0629ff659436ff687e6625d2080671e0cbe0cb624bf8b367e780452ea3713804e083aa6e0c7adc15618cf223b3587a364320d56c58be8f037f89cae0be209ded78cbae29ed73767ede6793f0051cd5692f63661a257ccd9d859a92ac08784070bfa7ede4577e7ab1ff6c7b159089b8dbcc5ba56357b2659a7a04c8748a86991b2b775c2015a4c12341ebb419e1244396c233c161495366104b8e29979e571c9614fe10c868db56cd934c5b2d04986a70be8dc25d61cb6f0054d5e4000ef72557b712658d962b1e673a07222d59bcbc4e8339bb5b37cc1c2bbd38780f8233843ad420782b4951c3321888fc3b488897c8bab046f79cc456bba9f666ba261284a1285bf1a9a9d274d9b87788c225c0ffa20388183f35817e5825d450a1eee881f94a5a129e688ce6664021356580190a3ec5ed220b8a5878068ec5cd485816f8c1ee05c3c23ec0d0aab7f73aac249142d8992678b38410d41be710a285d3b593a8245e514a870c3c348fa45f99aacc464b399ecc0cb3c306c273e5f4c671b806864120a88c07caa53a550d52c5641203a7927b40631e21344a9337da2d128dbbb5f97b68b8e57cfbb1a67ca7741c60c2533e49ece409b0492a2e81523e6b6ad655a6dd1870b5de3690de3369c898b557886c4877ad1d67a1583bc70502b32a44afb9b60f88838eae005e2703ca26355ddc479bdf1a93756af16b7789a3221fed9a4e468b710035060752e884c56034b768d0a7106a4bebde7622bb46b6649195301192c498bb555c653c42f6d84883be82e8fa56ea303caac534014b6bbf38a9f73283e5a40b36e36c9d8b1a9856aa7d9913b22c40cb103b74853c53c3ab4ce895388aca8584449fae927b16534f48b3aaf350030a8460c8572bcc527f1f62bf1c5a9bb8ccf3ee66f66dc19286782911a6765c72db77ac0e976a2bc114a1b110000000000000000000000000000000000000000000000000000006bb77bbab15f219641914e23e02624045beeb4d7f4608d5e52063d1ecdd8ac5f11536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2 +ciphertext: 1a2dd390e05984bfc0f55ef96da5050fd9bb03891d4d2ddea46c463aab28fdfaf63d4b2e0c9af992e4f1421efc26ae86c2b296f6851bbe2e898b8bdf4057e875d4a98469b7d2646edb86a5eb5259341e0d14986a8ccf93563bc6ac067f8ff6997c2e7bbd897f02e844f180769fec5af9d6fa017022cb0af622b6e4f7a69d73ab01d3d09067b118d51805e1b6413b7a9e0ef292a6fca18a8828912a2db675f0244cd63d9340aa3ca00dc5d70c915b0061664b1e1d64d3d4dced3ef739302f1063442569efed0dfbe8c019c27823a3aabd865a47600ff9e24f748302bfca1bb60faf4105889a548be9ecaf266d8f02d3aa4997202477a70ee71b6e79dd1609acb4dabab72a38448758d8debf55369c5d3e0870ca193018e0ae6d0ffa33b93e962598b43e89d5978a9d55a608b98ceae5e897363f8a9e253acf8af560c57e07c4c4bde807620b6deb76d581bf92b7f514509446f5c4e4d09430b1855e62854988302c931b9e624644a636ab8acaec56d7673b26852c692e8325fa1b6215f24ebfb388ad1022fedc0bef272c87e10dca97df1e63f1a0e9582daae0f49e30c6acd119f7c4eef59d47443f491df846431cfbd23900341086a304589f52de1d862c26af32095e922b92650c68facfc13892430d428f626fba00cf9501e1e4646e55f5304c806b5acafe100084d7635702139725561522632e7e3871effe883298a7264a411484cdef78f9e721c0e5f3937f2fb7d40bb91620e473f9b97adddea69b3ac682e8aea2513b985fbae268176c1bff90e401a31e729fe8b76d13b5c8c85ed833d9b076b5e11acecbf0e96edcf8ff562255124edbeb5b9117cf486f30d7883aa353b9e433a77ac6912cc8e5093c12385ad926be1d0893afc7e64fb9ec55d3285e01a3ca63f3c07b95399bb4411c3f820f53d8350d1979ee9cc6bbf2d7c92d0cb2fd0a1de910d92589cf1aac29992489bc179676c31ae768869398fda50ff14860a1b4dd3bb2e4ba8b2c87aef7ee00d375956a62dc1e5d548a59f209448e62c4b1221631d4776dd5192154d637217d31feea1c4cb3ef1903b8987f4c184cf3d6b5355ad53c7bd3e0ae5373d9971115698214a93e12b98489cdd75028cf22c1da41096daca95854b35d8bbf7d0d4ca2727aa511eeb6cec5352ed487bd3b00b261cbabcfa9f082ba7300610c6f92725d532a86e00b2ed1929a8be7a342c079835a2285569dca92a808049f170fba39d990884ef39ca511aaf9a713b8d78973b4f4a2fde7ca8b6adbdc5a70241fe3ea7d005b33e48cc9fe6ce5bc2bae0746827e548332adf83f8aa707e703fd688c494136d8dfa50961a9e5b69b542ed6ae0e70ae159df95dd9d4789e284a675fe048585214047f7f6819f7f011141d265de9fd4c04f4ed5dead63fa4c8938b2f42108d263d5394d164b3254294402cbeb48663cf1ab2c296d6ada107e8aa5b505da49af96e1cebc6b302faa148216d38b9e8130cc654974ce299172cb875742e62c32c063ffe7535db2726f65fc8f600d4dbb1a20f +result: pass +shared_secret: 54c35602dafe572b99aedb7069a59c4f7818c860b27a947347657ac1954d6454 + +# Rho leads to a matrix with unusally large entries +private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc47340db6d04313d3a689b357566b9743cace5d5b906a39249f1c2bcdf335f37aac2565932631ac318bbb7ca75db36ac198ac6b15a02173049721d10f7521a52f358f35f3719269a695a4b0fa03b32d8a209aa12a5d786d8dea4ba05498ba222eadd647dd5a397e655ed309883d76326231a6764a7ba4226567022d70fa20cc53a045cc5a1fc54abe0189a4a2b6bf8a969d61706944bc59c6add2992b6e562e9732973d32b97956203dbc523803ca0a462ae118633483cab85c645ee3ad51682c0596378dea5e93bc7ab652648cf1954745172a75c2bf6a3177a7841b089b6ee911149871a9d987c6d499b6e0c4d15c9b74685401b680d3e112d6d70bdad6a3f9954b0057335ca36823328ac4e124d55b9932d548f58b85a32844e9f0260d8a4339285ab46152bbc05a967c5f16072f16178687b0bc06b621f5a4a14ef86b9cf1bade0185c5c52b3f2c407479467e5516ab9a1128260317605d4db250e8f4b59bf28a6ac2606d280af28664b75092fdea1fe9374976722dff579728e121fc1944891c586625a880a7bd154aace3e919b841b1f5f8c0fb841d1eac1fb18002ece216d42cb401dc1681836c1198653456c9392944054200a3b95b986a396d443a306b66018b525fbbb042e662ec108f6b872749d3287440c12bd07d1061a524a01ad7342d74f8a4b76222c5a439eef4235d51c9494602f6624dee256ea7fc09ceba9877f9332bf195c43502ee43c75e78720c306c2fa47f4ef6b7d69038dbcb8272b334c98cb665b306c04252fad3559eda4b96c14bf50b78d4a9a37081a2d61cad33b3b9418bba25409fbf4a5bb3c775a43b39520b37b5b82191b4983398858bbb0c6c8031b9736a5f76cab0e647443cb6d983a5e0a6c27756cbf471baa17870015566db8c8a51aba969e976a1c6cb2be166f20680893950ddf09cf8e3827a2a884a7a65d61c7c70a522d17ac0939625fe63958741255b012712e76fa8da809a8cb447d730d4097bd3e86471019dc8897bfc82c3804a76a38919f7cb50ce79bc13ec4bdda215bda9789503aa822c71ad8107a35818a7cb055b303338e465933565b94950c11836e8e33ae8093b0aa0c5d5d555cbec5eb4190eecaa1525014e8a341e9400180937afeb126c278a5bc4713fe9c417c50c1e47c8756fbb6a6b265bdffb4c1456c5b7d7a895b6932dd9a55623341354549283ccfb36abb3068b2db7348bdb1172318357bac12422ab93a32b453bcc0faa4e8e595b05a145e614aded6bb77278bd78907b828b18a22aabea48bdd69cab061522a618cf39406f6c78cb983354384415d8b857cb451e01b24f489a3133070d775307fb61a0f6d56d1255c4d4e18c62e57d8422080cebc919b81e67c4304cdb560ab16d929413af650a53f870e8017e90096452ca3ea648ca644010d34bb79c5898b775b197189a55840f43371dd9cccb7b4a28a66309a515658f06acdddc47042acee250a37632b42af51adf1c0666902fe0acbfc8f59127753a40161de4ca07a5c8bec0d8ad3141487da4a842147b9de945e4962699033375548d680b88ae8354d6114efe284517778eb9b7957eecaf5b4165424a5f82f100d02b7d39968b98f69c2cea1a0b39394f49265b492ea8f4000000000000000000000000000000000000000000000000000000050f496e61849154f498d752102402b70d58f7e61615f724973e5ffa9065b18a2e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2 +ciphertext: bc07d2caff561b4645e3878d1de0730a88c05f46348526829a396f05a0a00603f0e2fc79e13beaacbe903827c20d9d687f3fb4eb2a8e9335459fb21380b8bf3734518778d8cfae9524ead1427c6a2dc379ddd2e985e2977bb63e932ed59c83a8b9a593e2adba0cc5f106620fc8c6c4cba5106bfdb4105def0c1d7b6800327cacb964e1d4ebbddfaa15b279115a1d05754c0c8a715fc2fe5aa09af7b96d5a93e758458aa5af8cba03b942f4d3c0fbbc2a45d3f7af5818d67219a72f4f538883ee2d3e507e2dbf4f7748446443bb71bfbb4eff0f57d8154d29f5cb26cfb52c51b676e9b1ac08786d5f475cbbfb49697a748b7902a83da49d285a48c7e9cae74b66a30b02a353a287b40a66a0663e7a71adab7d03272f2ec32d47097d4c303396db3e7b7a947f467a70646777cda227d72310806107b5dc16cfb36918e88784524e3a46c30242a40811593aa8f72c742f885a9623534753b2bac5e29110a1a854646abe1c0337251e85987aa612f3a095409a5a632af14acd19491577223c278b18a9c3ffa7f72ae49b89df6dc45ebb2803ece96cfa94ef9ef5b24fbe686ff90d130d3ae953a4f9ee6581a346b0612f84cb6ccad4fe94a53602817d67c61a9604d288319f5933f4a97dcc6ffc36cf14db593fe27f873be712186a6695d949d4552dab37e36e2e0ced229ea9dccd6d3bae22f9fb888ef400b594ec08a15972e8d2478e50f11947b52bf384c731b0e50dcd4ba116abab8af3b880c54badb11d83b4266d3e5fc25c2c8dbbba12fee2fa5c2017987f31277a67ac702b8dbe110894a8c81011c7c662ce9ab96a2e25cf5056a3e202dbf6bd5bef2347537f7811637e932d13ce02283d48d032c284b6cfb84fd813b6c3421017a7527eafcd3fbc5d4324b5351b30abcf1b366f424a8a0b5edf6bc1f3e8702b03eff875687c6caebd7bc15f1118696cc63859e3aab75aa9acc58484da7f2bc9a120844e4830429c0eee2b2324890bde302bc93f661edd9c04e1183528482f9950654e8c267234245aa9482d94e90e00e929b65431f986e7bb34524cc41f4b4443646713c7abe6c4131a2d67f3bf42f0a7f2eddf82b5c08a94d99a0a7d14c1b0b375fc158b7d4276eab22efb438f0d0a9b30e9dc127026181e42643af8da0b24bd10a532069392724948ad722b25477b481006fc1fd030aa62b217e6695dd4c7ad34dbfb75aff1df5774b061a4ea8526e9bcdf9679405c0d2e40dca00c9e80840e832fd663596dc55f602d094253893405a02d4414f119d23c4544cf832888db5ae8494dd2e8ee357753515d929b8a37b5b45446ffac20fb204b5c937f6344c453ffa449fe839b4afe1da61301057338fe29df93aa962a7374a2ec181ffff9252c8af5c3f75ebee02fba58a76066df4c6acfd5d1c18390652eb2f469d35dd708e63a498c08c5241b2717333904ba0e6e0845dca8c9608f28bd1046805cf7b220498145b23cb18184a259458dd2fbaeb1c383005a0d289562b0a9daf7d1e320aa302fd3d9a02c65fa901d46d4 +result: pass +shared_secret: 7e1b4195e9cb70e6884d3d00f0b3f0a66b4d8c00ce112e1e79a1dd236ab62b26 + +# Rho leads to a matrix with unusally large entries +private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca5ddabceea01649d9c6588d68c05e93cb6959fbe348468cb6e7f482d2b0507a097625325a7ff5740086bc203410414845a177c578698b313842dd2737d79806fdc8aa4ad8b91b514b6aab60885a49be68ba60d05891dd1cb47c1850b0105ec15a95c93136f22a170e346d2256a0cea672941335423cde35492967759b4317981c34fb0d759a2b08aeb411c362b2630c4b8ef342cf844206d7a5a3934bdfda95ba9fac912fb1844a0bb62041868ba0e3660a5551951b39880eac2959b5028eaa765492416ecf7a05102450eb20eb2a28be460972066b41ac87abcc28b38a7c92d91779e0c7cc8b42f107b48269521edf0c558a1b767536d295c3a7e60b9de6a8f299563be7c4d33d33940234af8c7764b181fb7b5af1dc88e4e830725533656520af7344e4ab40f6df34a90a898c672b854021d0631c1b1e9999d8176b22a5ce829a240642e19472e635a83c5086f87872f72a62e5fa038481a6861141227666f9203675db45a444c6310518d86a9221c9b6bedd753bb7914f7995e39031963ea056536a96c9b14598c95652091dba9210168467d7388b73770aa905052645eaa877c6f8a45acbb775d080521479314e214a5217835667dc2cc67dac17b0103b1049a03585b30631c6dac53b6d4056e5877786b295fe94c8804b57a027609bee938a8812666d12345e04c92469463443fad1c2188c951cfc6a06c3b8c3ad8856ef26a67b7841428a1f5b69a3fb82cad843a55645b78219d6de824701b0b1f192d4f816f45032b1cd5b465d33b3a9cb2fb04cb271a3cc74a8bf7ab6ac7a00e8ce6a0486c660680219c6ace0917b31595584f4756c9c5273ee36c37d25d5da146e57613edd34795b9cf61bbb7ebc441d575631215a87c4070159136348854c297cf3ca44fb2814448e30eb2c555aa2393bee966ceec0221a278f048aaa6d09b1d801aa0fb369ae4480f051329390af222712c61a59f98a31a03ba90c1a6c34c1c98c0be7bf59fd717ad9894786acb1cd081405c66a2e79a1fd77cad853761461c99218aca3cf4920703654fb9529c106f41a78b259294709bbc91679d0442bb383c28d64683ebdc7b94f4592c8ba2c1126c9dba9377040d3a124176fa33a3905cbb96764bc89a69480b74e38f558b422ef22e390bbc76e048c01129c97c26125bb2f86c4bcd274816265d8c41167223b0a22406d2a193ad3b1083b0cb75f9542e55b9aac02845f59618b5aa580b5b2bb44c192a906ce61b8c368278618d8ca8409fc02bb9b097acb208e3c2a9b651a316b70cafe6b9bdb32ad794b4f018b66ce55639e5558f5a3990475794bcaa06f17093d490fa583e6fd9596b40958359a30f813b940b1e1e4223d3857cfea691eeca944de845c2fb502e35a5f1a3750454593fe1c41662a3b3da407aa269c43167acc98f5f3c662d6177d3594d0cb800087c6a525c586d86c12e941b046625d90c8ec6dc8a5c546abb19a0b585aef39379db926691124265103bbb49cfc4e9100c803b4ef68a904273a6c899e48609bca003bcea9cf82203d52b5f9b65c409ba9503b3b16c7077465aae45d2cd4ada79ca43a9e99a124b7c9fa24a323f6c6bc18b81d9a6161191561f3776740b539479582a46bd913ad73e0900000000000000000000000000000000000000000000000000000009ff3bbc6c725ac014b798e2d5146532f55ca1f580b27b436aafd30679eb4bf35ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64 +ciphertext: 79efa2d537baa2b87a787317162d3dbcb40cb3c25f540ddb91aea6cea9870bbc5a5f86f8900b913fd4154bcfc7c8a463b9b66118c502ddad539186fcb079664f44a5363cc8d80d6a4c09f28cf8952157526cfef7bad2fc2cb69ff03ac39e37d47faab64cf54f63919303badeaab9e59df7040511ae335c5230e46e00a666b994d647d11cb032e7ee235b5e18b1894621ae93ee129823334580381b857cf0360196cb75180410f9fe7558d0e189502a5dbac5b4f0597cb3d1d201f89de26f7b4ec0d200a418a26cfb82cd4496c3ee22f6eb60f3ad2e1af981c238da13063d1746d65f77ce0ef30894468b687b31443c7acacfc3b3878fc9ec56878e7bd1a9f72ecb1706a4e5face0a83282cbc2bd15c89afbe3c97dfaf395a96ffbe1a3f75af03311afc69dbc01b11ffed2aeb8906505e910105806febc6e1298fbb5c0bf501232b888b7e8b285953d250b866a20cfdc7833a732966b3a03485ae2852d0a3fbeec6dfd0ec8015db5de69e55f091e956ab4392834c5128417105541b1145b27175fe35efbf3102277b35e42bd83aac25e25da6c55c28a03b9e2a8135871b4cc49fbfd5598c9eaa2482f249c0b6332a6999306be55921a3016499bc63a072a6e9eac894a3ec209177d07208d0d271c47f8065d0facd2e975011944f7884088768fdc053cf86f31f6d348222c06467fcf8ce0d404a2558e8cc422521a4e249549037d3e8a29e03a9a9bb511d9ffef4c5185a380d874732c9e862a6e8fa3fb72b213dab2ad0d91b047440b1d334660067566e6d2e14765d8fd0a45b9b8e8566419a6d7138e5a106c31b1278d50027d152bc8658d7045cb2297bb8382585b38be2d5fafaa7e8c867c74be013793874f181a9798193dee26fd5812eb469d1b842a969cda65d3440c67b00e6d1c3ae8630165499c1b4cf3153fb5731916ab779a2562ec62637d747d61342d832aed330e5cd794de900fa507d4b5fbdbc5f3ec1aa69d0319b3644d46d9502d435c1b5a329c0d3524611a145e3024595e91c2afd577a422d59d4d54a430f439534003be467b6f018736c4bebceaf7c83c799c2b7745ce7498dc84b9e455b96410dba1a0a5720fe703b7c0d859a42445eee7ca3353f294438a7d463fc3e98f4403f93b5fc4add88cc22db7bba150a2988639ba96cba8e2a0c980c9bf8cebdb5beb262d79e86cceb774750cd9a192ae93d85e60722ec6590beb7df8e4d036837c97dc05c7964dab00034683a576da5b51aa8a0622edc27975978c7daf1b942285572b09c170dd332a99bbf703d84becc6a96373fd1c0b355f063e4c2c6e59f5437802676000a819b9b99418df893b98a8e6ca22d95da2c151fb24a3a0e5944ac4ca6376e6c281b275589a3907c0473282967a121f1792d09a15e9d71e71e73f9f627ef0dd478061cf053af434b0663624c3bbafe0f37d7a32504e9c686f41bf48e287aaa8fadb73fece907f26a9576611ab2176a58e5c1f3e98ec0248a15774434c2a81c7a8f57f9950b83c0d3770d17c4e57582387d6f19bd +result: pass +shared_secret: 2522e72d308dc9d7d701e0b024af9e15627572f13573b27c406fa750df9636fd + +# Rho leads to a matrix with unusally large entries +private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5e2c1184862562b91806efa62f1b72a8ec43e70663de1f66a59687ae0cc1d9de1ce69244fccb0841b4b1de2e964e29408094a1ac0a9b4daa836e94454ebb942c6e9ac66f39abae73f61a99834292ada3c824bb53c8e67912a07377da92e63087f8d947f59d94a842b7aa8832b2c3c1aa957577f55027e76c106f86946f036804671b0e0416cf62e70eb8194d88030e2b38585181c4ab1fd8165a821bd68dc8fb3b403016ba5fd129bb9d23182029c4a292433087632816c009a237a608e65cbae17d688a326bd6c1ab4634576fdab2322b983f29c3e63b31303cc386bc90641c84965572c49a91f4e8258764834f38ca7f869cddbb10674d4296e5205ad805ac48462d3b31a9e6067fc0a27470aa593b896c3c319357b9bdf0632bf0786fadb0ac242609462a06f82460ea75762a678fcb07c350649d13c24c9e33200c9ca0e9bb87dd2c8578c7c4e27b1b75681a0b6aec6a55e767c4e14820f2ea609a16b862d5695556b0937f53e0ae370086c8f771295b1a09f0003a07bf512c4272f7241752a6603f8f51ea9a088e5263a59eb0b13b87a1d2929c2c29557681f180261f46c294de4aeaf380ca5f79efa2c64ed3131272ba489494ddbea14c69c46fd6346a7ec9f72d89559435e139a67bc3240bca29b3774127dd85d53c20bef719724612c462bc598c54738c87a00a9cb8c4b44e4e7ad4573afd9324fcab820cbf2091fd83fea52adc1b82b3f6c86369aa358498197631a20d40c790c2ddc66b0871c1ef882305bd978055bb934467d3ffc0359c2b31748cb19f615a63262fdf695f555be1ac432126b08e4a97acc18b8606ab6adc5cbe4589389e1121d737ba2b3a84d02bfbaa669f3a06b1be13fafd42a1773c830749cad35456e956c0ee64a5fcc46f1763c3b0c0d3de5c296a28f61194ae72979add8c7ce710d4ee846af81cba3e18d5e459addea9fb565b010e9ceed5798155227dcab155984635d7539d68c9f0d30537ce8b573b6bef1170540d0c10528737d6a5b219b2d96e5709a721b40536ee3c416fcec0bdba013b0fc0e786c9765d312692a80a5c9a3d65a6662788d194722d63b4bdcaa700e4c3daeb911e4d45674c3720be35269a21c0717a4c3aa2f3e1ab4f20a885cac44228138ebb70bb4548dedf8678d2163c339c1a9c719c2f1a51748571358c1451b0ced7b90109c98591126fbe57e1c913b5a935eff14450a22c4a108108b99b6efcc9bfd8438b5024677144885f1886ba068a6191ae17b9ffac1087bc94badf510095baa7167a7fe245a89a2a627d2631706a15d5aa081d037a4101b217c1c45fa0d83dc790447121cd9a533592cf8ac424de8770b45307f0aab484467c4acaa82a5669f7621e8ca42ec0b9222766b52775173b288ff5b01d70a60a853aa44917b8cd09a4b666138e91a3206c97877c96d690957b58553018f55f168c1c51bd9a48ae762a65dc73f366c79e77c42e793750924bcc1472cd5e552e20868a42047593842619c2e0fd40a3c7bba9557bb5c71185430a0158b9b95d04fefa266005141ffb4ba5160a5eee1499c09b11c549bc88cc501dc94a0a5828ee8a776a2a4aba3bafd410cc8354216cc3a93a457e9847af39b898b04b60a0c661a72a2df2b000000000000000000000000000000000000000000000000000000da8d41b69d2601355a1e57206c862dee967af0224b3c5ccbbbb89be1bf12fc688bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4 +ciphertext: b0e578cabf9deab616e52934955f42eec74bde5ea98acb022c427e08232142dd08f9120eefe5f455c8f120e672cb68f3a146c3aa457b637d0901fe2b4cd45e8b208e06823b8aae09778cd00fff5bed5232d219a2c33645f2dc30593e591f697118a8472eadbce05c9fbbc5d4b717b880065173cc0854182555376dbbe39194e4204067358808c890e5fe96028921fca344e3500b615f2201a1c4e4d13dcc889cc9b1ac72429074c21a52f4c78ea2c467d65cd2c9ed682f21f31b27af4eb5cad33dd633185bf32e726fe6e57b03168803f693bd85f5a9f2c3ec6944e9ded2b8f3270a89139ce50ba6ded6bc6b0be8893f44aa5856acda60dc1c4c0834d45574ecb6183d6e59a183c0125ff45c718be2cf85b5ce6daae6e37336ea63856561f1bd4404df725d5ed9263038d1c623b2e1aeb35924b79de474407168834891af783fe5d83a631eb14d7cfa949d698ffa45e7d8c46ed4abf75cc666b78526c9b95ebb2920c77c56227eae6c893b57f9f463ff2ebc9acddb2f7ad543c5b2259047a4cc87ad05c08bbf02e8bb267bc490c4b67106fb598d42135c927fef3397f4c3f6838776787f23a9759dd3214075e79eb3929932becde84e82c257e4638a19e1e3312cfe09d4ac681d653d749c8fa6efa6dac35ad59399f1e233540fa354681ca55db90007039b7e504e2e4082aa3e4d672019741aa02a281454d4e1c73a1c7d0b5449c2e143ceaa3b18cb9a74a89f1ba74963dc5dd4155a356211277af3a267947700a2cfd84a605ab02d37bd6faa8a26b50f7b3d9bdc79913272c31dcc0f0183d05933a9f233504ddee2dd851529667ec5174a3d23bfca197538ebacda36bc29ca675384c0b3f45e4f67fb66d8dd4aa57b7da50ead391e6b663af173e7f4d46139f5d0f4cea84dd32e4e718967c6b93617271224f2fb3a1ca5febff5f26c4edc60e9acdd9e464ebb4571dced645814e1038a50515a7e06501adb2de19fec4119dec7548c41097964c3151226153ccac24abd1415579ba1c37c805a5827332d97ba90713829fb30b7b09b275d75bc10d4a26b33980a0ccd4b00844d9f379551bd0170ee895286526ea9625a72b6cb8decd9cf18e57262f8102a025025e8168465a65a7c7e4d5fc8742781acdc16171085d51dd5ec9f4f71f58cfaf4557a55d07e7c164ccf7eb427145c7f9a800e9bd9192ec0f74d19fc17d3881b1d55e8600aa55abf78fd1e226d9dd6e8da2bea15712f5f43325d4b9c083d6e37d35c043f2bc8c796ade072555263331bee7fffa54e2099135ea363575847abb770322376cbfd3f1b7980a1857c55fc82aa80bdcd701c7b7d66221f08492efb5438a04d041b485bcb61f6fd306e96cfe758d99ca1cee70b200eedee86145fe37ab7aafcfbb2df694361fe9923e754187c3277cc895c4a53732ee118c7b6156b55b30847a6e828b7069a5d4be623abff66ba87bff49294dd9b1f698ba445d610973d052a80691c9968e3179aa3eea5b0bccb3cf674c5cfe7d2c14d7b6daa7a4813abcd56ef930099 +result: pass +shared_secret: 1cffb3d6d9dd9cf90d79fb2c5c974818c5bd6f32ea4d44c302337c4cbea44334 + +# Rho leads to a matrix with unusally large entries +private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00e8014b4f4687bb6670b1c2a29ba577100943d5b926cb396423663f710328a8b536403530eee05006e7a7cd679ea44c29146494f1775cddd3b43ce6a903283f7890979ee98842d5a76f93777297abffccc0b8faace8f362c081aa435c32a5c31773bc046e61921f1a5707579fe36067588a0f32e2cbf91aa3ca6b38a0e12ffdf8685874869028775fcb7d7fd7a1e37c611316515638a510a13e950960e6f39395e436821165e734837ed575ad510d4fba6c3ad67e039b71a9b6c2a7ac240ccb3742d65b4b1c50a6a1a496995da77921ce33624fc48135e88c59caa47b299605ac1c79009dabb2062e375547ec907590b9bec52c86a6b9e394ba5f02401e4545c462c5f320939075b516c4a5dd0aa5d879456449a115125369584a609a83df8685ed2ab45f038559dc6b0ea170b09680e7e747cc7246b6c182d9199941847d9c1168a84400da2a98215a9e96f6bc869035a8822b27d459cb52147d966e0c354b70ecbe46daa9034074019acdac30055d8a1a02741ed8e602e2cb3185ea44c9e61fab637188554c8b12cc5abb9073b35108f59f6832112ff23b00acb0936594c00c0534a8c4c11cae4787092bf497b60b4a44116156e8368c0c950f3677f6424690803ee92373ed5c13d84c355bf041edcc872965816d6723b344244d0a54f8ecb0f1703ac251293503baac445996a1c9bd6ab851eb52f042692a2b10e4b9b44dc9625973af03fba67a3a93ff849dbea64739f643bfb803ea8653c2b9ab9639614000994bf48a8024c4e61c8a07a5c79b19540084bc7664ad44122e46ca1fbd517c8e68aeb3d835e53846848742a9fc2a4058047969bc11a773e623462c7bac66a34c62db861ef64dedf23c0b7441f6b75b4e60b86fe309b1b7746d558987f6a92cb8513792360ef76cb6548f0813ae8dbac418c25a1d95b06c530d79c6751e7569a2027f8a5354de3a70752764fabc632f3a1bf2473e8aa2a5cf815b3856a89afc122d98ba3f74185a3b2c09049601e23ee226329f024ac2692adccb2018b22a592a450b4a5819b2a498738d29f7145e534e527c859f05ad96cb963314c58a5a6b050ac6ead9adc4782859e3383170cabe4871cfc17a30ea4ac55cb998e77e1a26662a255f99f4ac7b98723341b2c7134adcdcab12a473bfe001127bcb01f84df31384af06171776263085bed1aa3374da7136648608b569a88663d2122e84b4b946b35c1f24a836e924202b7c7828c15507b17f906bc0e4b28c230134d90655696edde11a32c7a70303aaae3363e2a6947b4bccefe9ce62953f92521029959096a8910e71c51b69a0615ac790341c0ac3a574a79d34c11b4a974ffd7cccb05995d4089f8186b545b80a166982cb53123ef644e82897c77889ef91bd8c5a4ed1a4a414389d77307d53487940fa32782061e8458e0c601c884321d121b48ec04bca78c60d39b0c4bc9291945ae18224ec73ab7a451b9cb511bae34a20e326a497cb6ce46b5848c289da630f497ea3975eda79489f18a405e91bde288379f291f538c1a1426cf1634bc033098bbc9958f7af6e408354314e7221c37c1610bf904cf9e7807ad327f0f316761939674867ec7223f06a245711b0d47832b1a699badc8e1217798c0d0000000000000000000000000000000000000000000000000000007420233153145d018d37197db4a72facb39b5779cfde51a1ffe665b09f338119e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a +ciphertext: 3159aa52482f4262cee553f9eb6d853d091a507831f5ed1af37b9c55f217eb1e87e8b0dfb653932c27e9e9f2c4d45cf89e9cfe9ba0d5175be56b7fe3751a4255649cfabdf0cbd5a8704d58511acf6e0580eed572561fab262b24d39c3a430a4e54fca969394037df12fd8cd71b7b6ec3d8f7345b05d4c16c5871b686690cee9804012a3379bbcf720f405c3c83f59aa391cefd8b00a73b41147d42c8b7820b0e779c44e032209067349fa4cd35e83850ae37ee73f96fc6bc5b71ff9b0462604b4e07be60cc76903175b045b908c9b8e7e94c6bc7c48ffd49698873913f9132025e51614317d27a874e319d802923804d1ce1626420d5794bbbe5e077cbd7fa3d958fb2d9608a3d41f605908d21fc7f942e3152337115a28b661f76405620b056692bfcc066f370449628f8e31b7453e5b7b10702f7c195dfb779fb3253f86acbaf4444ba9ce01c9b043133a233030247f8fc44d5b8c9b024ee83c186a62ba9fa5a3e45389217884a478f238d6a9b8eaf3d87b7b4b4375d4d5226dfb80255faab42380365b5511567978be9726d21178eced7294463a348b1e976d800b1114fb8230115b28e51f628a31aa8cf2e3253a7dccaa37f975fa2b8d32a6b6147033cfcbde33ab8857e3a6af95e4cd0db62fc020f55c2d6c9204a05835e2cf878c66502f572016d95b30c45c2ef6048471ad0cb7fe14250dddcb4014c392c22fb1dce1adc8e02f416d3e9b417f41c1b4065b975de472d0e9fd5b3a012ee9bf6311345b4968f6f18262bfc2a38d56d911f9efb981813f77a8a8d6af0618e015b8b005e7ea957f89f140192c7442a645ea7012b5ea2ba9f8cd2fea2ad3e41c6a57582237d53444fceaa933d61eac36d03a2865bfb7f12fd8cf451edb5050a35a75c95dd328296dc32daf61622ce0cc457c5968414b634b3e12a0ce45bbd733e3982c087a037d89cc86d546007bd92eef33949d19dbd4daa18e59c7ea3572bf3155a9a46af527347f4f4dcc2be3cc285d65f2f86c681a137850431ce8d2f76e295e74bd0b3c88f1b68885522dadb99fe1c8e40d938c9610e466770d62c34e9393241907d9cd7bfa470cb8fc149306d9450a7a1887d03cddad3fcdeda1ea54d3f126bb29a1ac3d7c5a60ead90d74ccbf1a75b4289a74a49e0a7c4006ab76a83915ebd4a95a471525444dd2c3e748b1bd347774e2cf01f90f05a1672c58f4f563e4da083e95e0fadd4ba57acebcb45611a3923da1d0d73f5c9a55489fb0097e123694e413460252892a0c6317dcb56efa834f7a51db4a413976afcb30ab4dafbe737f43da11c1b08a2472cdff3995dd7d23382b866873624fedee76823d37ec230dee2107258993d5b802fadeb89c9469a33c66c91567ea92581e0c2c1eaa2e2a4696b024c7c6009687d07769438a8b2ba75a7bfb32841dab8acfb8cbd4d1e26c5eb68bc49bb394b178e6f89dde843f4e2c5353b04390c245a0bddd1aeaefb87528b719fe42b35ad2a89ef34826d9e23f95b1bd3c3b24f785985e10dcaf0eb33f5f71f5cbe55 +result: pass +shared_secret: fd9e333ac811ae8be12c052c65131e3a7a32ce82e39055012ea564e10acaa85e + +# Rho leads to a matrix with unusally large entries +private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697f6513e1ec8234bc145eba3446eec18b3826b2ae709792648e071a7c4627e4ac7716db5b1d6040ba7b8ac39b347ef721a99c879453846e1aa591b8495e19003df973580d4192cabb72ae2b1f498bae9b3cfffc8bbce09122cd1910a406574106810dc556894777f35316c992f3b902186dba411ca3462b927688c81f7269b7c2770de5aaf90c81f752a3ec77942729a68fcb38a62946c601c945249bf0e280b66764ba71a44134ba84df1400bebccc61456fdf3bf50aa85e8e60f491ac1c1317d831ba5db6601133883fda81115c67fe4691d9df01fd3732b336bbc3899cf067b9e3905294902ca5686480cc94eb4e98260408b4dd060cf4b5344380c89d564b31158ce098ce1e06b91446c4189c6a4d89aa7e81befa900b250a7060406e25725e09399963c5e3e04219d390e6c28983e335646485023312c4d5bcad9aa7ee683b935d71af1908703fa2c9d66c8b6c55049b3319d39c047b5824d04975a9034e8ca1a9e1a5b0bcb222c5b5c848818d14503c31270d4f8446d013d4ecbc250b72dc25934726b426afc85631ca1065ca6e957ba00f1176a6a45b68a5e93274423e642451129ce83b7de439963c0c4e5d8b25f3b74fc053151610b4263725fe51423e886bed19c534165b4cc90fbd67256839b9371290af9853c948251c768e157041ac91fe6649bd1b1855dc417624b8ca0d798b1947c720b3414db56f01500fba30207322ede05612bb6505818a9a68538c9eb98f2b0a83dd38b765891f0d01f1db768d2355fc6b7a47414527c92ba104637072a72a6c0ce74772664e68660c9c0c28347315b17273a6846a79904a04b90a60c5b15973630209d9460365529bb72524404b3d9cacc013b0a7355a7eb2172d317cd356a07e5a341bab7c33db5a48fca4b1600443df6bf441983cc05125f6aa94f114a8c3ccea3f9c498c1126c072f27e97555456114f6bb3244c4698c3f6091864274a16bd82aaf0711eb8c4fd86a11b35b3b8b0528cefc253d7906b6b05382e37428253ebda5b48b6a068354381b24348dec73c279010bd32e41431d139a021a398f0e5c7fc1a98863f069b9d42a96b029455670caa89e0b867781f73fb7549392124485cb032a008d63812f832cab899a8d5d24b403e76d17d6ccb56c729e15abb2e04e32928c9b8971be6a4c70b15bee620eef375489347df7c622d9a803a86c2a9ec5a7a0554ff763912bcb7f57eb8b8633cf6ef39556162eadf8c285b61a53f4837c8c9ef48c3a58b3b6c31b8227c98df0b9057d452df2c258da8a1de1b99449c0054c48a0bc61a2336323367077cee252d366661904b12ea6215b3ba55aab06f60a517704a4046312731325df563cbed805e2c7b2a5848fa1cb97e17a2f926664c2947a2fdb56ed1b3c5e084a680073669b2b9e888ee010410acba461910795958e7c0c98294865cc700315e86a5c54912dc2affc2469244912d8180eab244332a00b7536c4cab62345872dc31ca3c0d2078d07beda4431f278aeaf2482cde53afc56352a894dfe3948fc14956917a4dc836f54369eacd4af052b4aa6b60af5e86bc868be275abd1118a83e5acfdcd4c92a3c2e2b13cce7101a9d303339f0b2dd4a282499579b803ede0b26c75eb8af340000000000000000000000000000000000000000000000000000005781f74024912ac52aead1be2a87e042830737220659467bd06128a096343d5fc975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce +ciphertext: 5ab063c95a541d1be3fa0744e0db7e0ece17b6b47cca0fa41d08e7969fe87de63f319f80b9a31ff01e203de6e518e62e6133edd108e5a3e08d3f8ae0556cfd36b399dc1ebf3b229bc5013d06d7550512280bad2b27657d3ca0679d9fc62f0bf875dd0b326008a89b4f29e97211ee7ec75108a9e4a320a34daed15fd7ad394a1747e4e35bbe4f1118703c330aea81bef3e3883fd41c3efc3423ab46b553c7587894ad64db57bb0fe4d289d54c8ba78d40683bdf6330ccecbacd3f7f41541f1f2b1a7626d3969df6586b4214c02f921451f6adc04f5e8de1e3beda82e4aebc5e06abb33f4cd8a3b3b5741617b6a385739133cf5b77dd5607a5c8721d5b51c6c0b6df551a5b440082093f49f31910a04e4226b9ae6f41383672e0694bc4075207034e39c40668aa3174cfc8a75fb1a474485e9aff01f3572a5c7e4914e7519344c8ce7b81377d8c2af66bebc558359601b21beb984c1f00564d46585b4bf02c958c6b348642be25119b12f34a6e5755588f649837ba53c0efaa4c6c95d109a4ce1f761c1dcecb84cce8376cb1c4e34ff932408ccd2d06f20c5397f6277bf9c3234b20cedd45afecb7e87793d85af15909546c6ee41987f36d85865c8c1e281e13d9575abb9a9f215c08d89420535f73643dc584707deb7d5275252e862393fb6493f9e126c651b7981f26af8daf978153fa4476d615183bf147629fe36de7cceaa670dab930ba8a684b0bee24b55961ea556123b34e29491704d2122e46bed0f6fd50601e13a5d46c907b915f3b8e695e0bbf474aab6e082d156e79e59572731b48338892f2268dcbb8fc21cfd537979278ceb210fe3efd052365fa249c97e8e596ae6225839e5b8b296770f3b42240b8727a0a730534d0f42f8c6ef148fc04e4285e1aecf060c3666fc17a1ff794f584b26b0b1c41f0fcca249935cd411a151932b09402016a99832850b3f56c4846145738f709f5e11e28a90d9137e4e43f03dd1ddb6565c67c2a138aca59e8aebcfa61984bc7ac13a60ddd2c1f0fa84fcf9264ad5049c888b9f555e024f0fa685474e083025da168e3b9c4ad91f074e7e711f84bb808604114e09d1ceb83b697cc0f045b5089b0bf7381ff2efc08e7316ddb7eb7be47a1d82cf533ea898e668f0da124d2e87fef2b558f877b50b13a08641c74e2726b19fa7c0f33ab213f403c328ea60d08c07155ca0c19bb75f7f6716de89e34c20f9d15ba8aebcb98e9b6461477f56f9c65ea7e8744a4d7306e216f806ea8f9f1dc45781c1adba44319031fb9e81c6d33bb317d959bc53a677270f13d96da19833965aea9a18172f6f975bc4d03036b1239e7c315ecacec35cc0f788be1220c0497844fe7c989fff5ef7fcdf89c261a0fed3915cbfae94b1fba22827daaaaa0f968f1ac71e9772aed587d607d5d3f57c1500b6e08760e0b971c1999d01553bf87f55fbad96ce61d0750d75180623543f40e5b0cee74bb429edbed1b4c2a3e1aab86c8dc7381afb0b9e7d4151a3f76b7dec4199b97304d7b3845788e19126e +result: pass +shared_secret: b4b4634ad37852e19175ccfb5eca50093291da8f76b86be7511379188bc20d92 + +# Rho leads to a matrix with unusally large entries +private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe3317b0abba905c1559715f25f720b7b745a52332355154e60577e598c754b6346b335b0195ac305268bae78bb4617807ca4666738ca81515bb041d43a4188003c52ac4ae4b3808d8c755d3e99d00537249d39d4cc02ed9f98ed4106895666c47538f79e30f5104adab1540a1fc58d1a857a1a4611257be37e0327491aa4b543aa6322ef7816a5c9a55eb3bc8604b15540b62c3405b861a84218211c20bc3d35a8a506b0153306fa98b9488a7841d85197c170f84c380098077e42cafdf1913df369f37f3291ec47289710c57f152b74572c23324f83618fd281f5e41976e77097a570a991b3bc623ad6331a1bb34673b1c328319758ed731ca2981b50a5a2cf8c66d31b10e88c95ffc27c3b6aabe8b207e6cb4373464b1b83f4a5a9806449bf7fb622360bf9f098b56729c5738191d57492b377ca8f989a87922a7368d724b07b7e36133620fa0735d60f5be8b51c19ed1655de5108681cb27273d511c643b7867516c2982a74f62e4cb759bb1f5f0808cc90e1baab60365722293bb07841803076504d00e6fbaae853749fc322e3458810ea41d832b35bf05a10e62a4ff8317b506b9af7216c445663c9061cc62914b0b72b5989d7d9c2b761c2fc5a28b5839bee5596c0de25c10a15776447e17770edb666249a2310962152059c5ed5738741a29e899072427891fb53606ab8b5dd06c005d239adb7bc368b10b74508c45c4aca726fe59c7729cc1ad617236e1b75c760e47815df33297c084429ca371c16c5761c9a23ebbcc2cb43ae9734ba9495d5a86a89e75aef50b9e73470d8d9974cf27a961c0cb2c180ff36140818b005f05afaabc86d8b8bf5c2a62f0632ebeca0c9c567514c9311ba6216fb13f1603c77656cced520d977ac75031044c8790d1b4c97dd38b2aa43dd8808a79e406f8e01503db8f7b51cc1e4265ee830461f41cec398251ea60d2c573ec59b4d28b09dc9446bb972f6d134e2e192e987153b39538e1f631bd81b2e65c2c5c68a96d1b78360889efa4c692b7cc374160e8dc485f47a676d77706e047d3e717386bb49cd942e4c05374b3a1cca148535a3ff1085102f4a7077b5f9c7b1a9ed651edb32691037f9388b672a662bc247beed215d51b414d3530c6b0631999663fd7c0e5da7e411c32c506476fd08a09d499ba3c27bbf6a804cc7e8be5c1f3f97d7aac085dbb3bd1076a69db89bc990efe59b00ca943ef8560642176e926af342b48e8002f6d1aa99b58cd013b03e0d285455786b54a4be3c581419730081361c04697b1b2c07df068621213c8ca6554b5982d5a1aaa113ed9343a56101aec68b838a37ef2c8a15d0504c672b278556b40c766c2066ac995caa32676da182545773881545cd58b71d3d7a02a209bc7407f420a830513b9d9d6c93c56571e42c8bf154afa060667a46d13cc542429c9d1a35be012cd3c9abc2bb7484fc89a4a83a20f7c2bb088793dab732ff370cbab614aa851fb77ce176b8f806c4f2e6068235b93d08c39e96badb37a457e8a790b2b8ef00b0b9e941592373fd2caa3ec3477c6c440d0daa755ac0ad2285754ac64b0852086112b0c9794f1657916fc173209a40425afc9b19946c529ca95154f24ca3cda5f9547c429836c377123c6ec0000000000000000000000000000000000000000000000000000006f8e54b993cf2cd10ba4e61693d9aad8943af37178908ab532712df5dec4b908d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c +ciphertext: 925fde875ae198cfea88c4eeb3a0091897e25a793672df1de3f24ab4fd3edb2cad0b07e698f35dc97bfd1d551fcace3282c8c3d8131857d96ee9986da7b79a02ddc6cfc9fb7f2b809a8e5511b1c1256dbab33e7606d8a5fc048b36f6ee53c7f556efadf94494595a549ca260ac9c45bf9962bf406610ca58dc286a9eeccc447a767b6db3ab009f5848558acea4503de747d72d43218babd6f68c091b4581f4e41f2e850047f5f543a02407e7331202b0eac7bed180061bb53f4dd3504ccbd3f298d96b43bbaf8f0c2545be54c59830e1f343ca88bb9c6812c66bfbb59a6d68298985767a73d34fa69b52cea98d95d8305f97c4d4fd643b56c60fe31e3c2ee7e938ac2e4a5da2297e670931c1dea5fcbe9cf118c62a76a461495f10f640fb416ff7bc2478c0e8a1356bb840345f3d43476bc4cd990eb7f7cde7ccb96452d055397ee402be2ce395a29a4f4061ec3d85b99f086341441022435b636028a1a04c5d787abe1c24a5a55653b7063b1cacdaee40ae0de77b4034b9ac0e860a90c8834b352c71e353c02b1f46b135fa68fa7a5c1c719896987d79f3174b8d0b0c28ed64cf9f2907924497e35bf519d519a9199a4dd68025992c6f466604bb2ec3d7b13eba76e4803fb73bb125b83413998ae86691a0b35c0054e1418898f435ab26cc12a12fd4dcfa9e80887af7ebb6c856a7fc010cfcaef9e1c5a4dc24a91a622fb7307521faff0b8e8e966b7b6ae849ccc75d31c8d700a3b6a9c3f646b2a88d1e9391c2ddc6c9ff15db961874c87dd94bf0165cfc8f719806539a8beb8e28350610461b1252872f0f3ac273b3366abd78d9fe8868dca1a5eecb683ab8b50ced8cf4a5ed3b721e0fe6b205fb191985ca745ff5dae0010493f8296b6586e1c96f7f23fcb4ac4dda15eab811107c977aa0a16439b06986a9027640cf7a01051934dfc758215d22c6f06866d5b871dfdb6ed240a73dfde43f7f89c0ce6909b54b0a633a25f7253c10906166f81ae91a1419028d6182c1f277dc7872b824c7a5a22bc7afc02afeaa9ba4c271ee68882397e6cec34a955cfc672f4e6f5ed870a35ebce97f34542cf0a162938c91922230ee3fe9ed9a166a790ccf450b80cb5f483c3c6ae5b2e52e907824b45e69e5ab38226cbd6519de995e1a62a910fd45ed189540e0b4058ff01edbc6ba4eebd58d55c0e33702de299eb53d6518254b8471f282779533eaaef90602e52373be8b519c56a2f6fac0953c0f84135715c5674e45d15804fb94d9e0525ab493aa625fbf73ebdf74f0a1246e1eb0e4e2e261b24ab81d8da6e1770634c747542450cf0a2af23507f8b6766a16dbb2e67b2c94859228b91eec6c59f5a271902b340320412ae947398ad102073f8b9b8c021f81f786622c3483e61f812aa76232e6f9453eae044c5e918e6e4e0e18a78efaf6cb36f7b75929d0036c44edf928d6efe1ddc87b96288c7c624655d302b98865978ed7bc779c800e6113a0484dd225aef29796c8ba300b3f48dd566fd877dfeb5d25f96da5d07e643c5d +result: pass +shared_secret: d4b9a0f77a52d4f8b9c95951257348d1931725c27eede694ecc09204a931daf7 + +# Rho leads to a matrix with unusally large entries +private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960038c5d80656805b427d0b9167abb3697444af88a0f3eb48bf658be44f36b01233902291860215084ec7bb3e170e517c65c623ecf4a488f69923f9045ea18334d5c8ee847381b5a8903a6233796b1def36e46d343cd3547f4a757d82c262278432bd555fb5430e7f936affb453ac1a031c70cb1b3a8f3762dbe226461501d13d10052fb621be30b8ce63ce93591979863816397f0d198a6c534b55213d778ae7bb1a20ef1809ec37b08382c43e82b4a758458d7758d23a350538b3e524d27c9074d1cc4e3e1a17a6b06fd71178c5b18803b1c439b9e903a0d63018d2f765fa7426a0684793ea789c30435657b9aed58886cb8788e14426ea0295da18293024eb1a39eb99a20619a3e2db48a93eb90dbf42b84fbcec1f0b9571946b6f150ef5a672686a30e52be2d536bf3664550f60c99a89b81f3c911784d8a371ebea0b97ff50e2af68f822a72e9a76cf473bcc1cb81fe2a03051771b1c91f1e1a444ab6119c0a83b25a434fd598bc767315881aef9cb4d4c51ceadbb3b1a1142e0b87d5826b161233ce253d2adc9a00bd00e3cc21fff09abd919b54e09ba6b505601a358e50593dfa117eb2b8d7458745a25e7c7321cda0c432aa5bb41aab60eb3dc7e03ce4017b245809a534c3dfa49e97f4474689901e814a97fc0892ca04d0c00e3dfc836b36bbf74256e77525a031160fb3bf8ac31502c049d0a264140104c7488e36a46d23a76f4535b5902677cb98a5abec57b9357b0cb3b36b68349b273a2f8396e6c8594b4a32f0aa8a622378b3ca0426f44443942c02162907b2651ac2168fd1279b040192716bb584211df4ba36cb363b8c3adc39b410977ae3cac26c21470426837a43b821f65d8ee1950c87b4765a034aba1a35579f4148b8c2f39949812cf9d850d5e25be7713ce62ba31366737c03ad45f23e9b226d1835c5ab01c081063dc193630d72821cfa2a56d16108c40ffc483177d075b6a7a1bbf5cac7da0834d755acd10b9b9850a7c97d90a1061ce94efa4b0c0707339dbc7f160a45eeec022815a4494334254c08ade388c07c34e3a07e51ea60fdeb9b20b4b9afdc6c3c2b63e872aac9b2a90b798bc2dc8d585c69c1b33c1d51372c583e835b9ed561c218a2968c044051f8a969a7b2db6a7031d20cc9e024bbaab4385a3ae13ca264c25f6c5b4170b5c0da13044664a10f335ae9045bd6319abe139bb2b8b635bb06e2f48427e256a16a0f71f119230a9acfb19f0fe07c71828063f42a844a5c703aab9a844f689944ead511d8c97127d99429fc87ede190e0fa002261494076b7a10496dbe12919f585685733ae780eab3ac168287aae3842cfb637a94483f68170f6a3092d51b82ef10496a6374572a527aa7a7d1a99315953f625842ec0bc8851180b98cbe411453027c9b8a4a07fc3bbe32b897fc09e5e65a0457556a8b28e5b7c8b28db24e5431893953c912c195ca52db5d125c3f595f2ea75a63b6c83c8cbca257824ac60ce16bb5be02b30488974a22a66d37b19531e3cf17b59bb43d738cea25326dbd6355243ceff3caae98446927351ff623260472f8c7a715016ca5480af5cecc001c6b65f41221b16bfa61863e225709775b5e6393e4b71920c0c539c6bc5ec5c609466000000000000000000000000000000000000000000000000000000313af29c47d66acaecdafe1b91b95ddce43b0cd52be1d1a84428587728f01522a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed +ciphertext: 7c06bbeca8b58423e2ad420ec36064ed42c881e3655668f8865a2d643ecd1a4eecf915b6c64b37c98947f06c3ccc8e00bbd16017c246db88cc83f12c887aaad7db61b4d567c285841689169c3f928f1d178a0ddae50d8c46cfd95258667d6239c300595738defd2e806637ca46baa4c6c7b97f1a9b47d53cba9ffe074f88d104c4971d250d085b1800fcbd91584d8cc48e145fc81438290d74765e7ee8c1605e8048b37b9d22b050791fe008b9b84b7f23b0f49955e32c0eef78d7a3a0b2effe8b37d124e19d4cb6f6914204598a525239d9baa116e1c9c39c47f9f37f965941b2aef8519782c65f3ad3a6509d1e31e7efb67db21911e4edeb1f7e9c37b3f852c81d63a95e4775e3f2a8ff315a214680adf44d290e42ebab8ca95bf471140b9d7e03f5e9f97864289a0ae8c9a105e00409f714e413b69be366303b4a138ed51264ab0e5cca5f6dc9387c6608109e8859893efa3bc7384e9f418468b1078807dadb768e254094039d1b807d67353c8e0b5a03d28b8e41ffa0eb3ce0837a132144597908f7a059a097b79a1bac323757324e907b445d064e25c378d2069e7c5d671036871e4fe36705747635e40c6e835319e3ff81714cacc44515d671b703c5581dc76afca0b881f37c1ffc93f2e4afab1e8ac776ca883f3adf7f9ab99396f7e19541c26342a7d5618958523b81871326c357ad84ccc6d3574d97cbd875524e7b08a102263d80f318a48e510c22126568f76936c904c231700ad042d73137eec741c827a082de4a45d296745c55b8367719dd08b8295e38d8d3894b9f8e2f9b483b266e1fc71d6374353ca7d9ed1c6b73ab5a42f6abff7b2ba8fd484d1ae6928b5ea92ea3577be01dc1e88abcd0886eb771dca4d36e91c45bca4807c89736b7d6a927cf64b22c5f323077f5488f6044976f310b4b99f7d486335dcca60571157ac0e480a4dba79a826b4bac3dcb7327a33b16381eb41e1d39915e91a58750ceb71098ec7f1a2d7e44d4bab75bb7482eec277df206502c497eaa345109a145a4da6bed1900b680ad12fb028d33563bfb204ecf66e6ead587c5fe27f8a2eb0e27471925ea0f35eb9d5e53ef801eba3acaaa7790b105eb6128ace992668181c1d7cf203afdccdfefbac67dbd97cad05d499239df84e4cf7372117932c973957e5c70a8520f822be430758990296877df62069d818768513d14df0568be8e63e123bdde35036dcc69a98197f52dfbaae5e5e0cee4a48c67fdda605dad8a27651625c2b35e81dfcacd2a41a6d17f6d7067a67faf2479b3868673b248270f4a2d8ee26de9c787ce966ecf186c1401ad9d3bbf2c43b1d5de32bdd77f5433f4325427254a13985d733ab0863e62a4f3d484ab3f5d3b88f23049079143b058babffc8367cebdd9d2468d7af782979a3ef12841370da6ef2db03679e6bca0db72166c361adfbfc02234119abaf98d4fea8ddc6e8490c2fb5a1be4806a61bc7b36884cf4631cfd53138a23fdda11e597aed323748314282672473a1819ef2b9488f6744544ad +result: pass +shared_secret: c9d0cf3edb1172344364afec3615ba98477ce9316f92ca46ca5f42b73553a9f5 + +# Rho leads to a matrix with unusally large entries +private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3967dd722a23522b0d8cb522a67d63a75af305c05f3659bc496f1c47e410582a0e58bbba80751bb2f5ab71414051627f46a78f9708e3139f8950b999378df4709a08b9b511982ab1b2cc4d51d177578ef263c8e12752f914733023d9e8068d4fc1aac34106fa72197f6b4e4bb26ab29ab64d7c848f98ef5557ec2b35edea70b67c084193921d8cb52e132a24372be7046aa2af66696007e2e0830df1c7b4396bcc8f27aca46932c463b49db0ed88882f3a45901a4b96ee3b74e78afb8dbae7bc653be895179f208c27c6ecd60c26e54152aecbc13bb5ece39840574c56fb39fd2385c76d62c59a41b3311702d5a99e366467b6c4f6c252a95db32e5096e61d1ba872924d358b346dc099a485c3df72a94e437a82a6cd778888995c473c203e091309ba42511950c19db3acbc5987259bea952b5a549839f197d7bf64ca0772cc1dc89572a0e04690fe651a79ffb3dc07388c30c06711c6b25572bbc83ba868a379d54c6439754bcd67c9b0364ab3790967a062948084ab33a80ac5971fa99830aa7d1e9263e7087af67ab6a83ab34f405dbd72b3fe46e9f2114e26cc6643b6d3adb9de63090394213e72b64ecbb2242266139579ea9cab2e51868ef82ababaac38e7ca0b9554d665365dd8b0b58f3020cc9218b866955f54d9f7b9af9634ab995a0b5e234fcc78cd1594e1cb8a845ca0cdbc82e3fbb35414c53423b76875ab267a702d51710149061e7655a0168695053aa61b990fa9439883640e7600345033ca90678925b1d632962deaa0ef5642b870610be3387eda90cf608254dc2b000c06632331680e12e9b277597d07633a31f6445318ac7b9cc1b087cb58bddd30a07ea6e1b1429950b7e7efb1a6b88b037c92cf987c904268ce39cba4bd3c163f5a8bdb9698488152a18b02bc98a83fb6c28a55a018b48979660ad5b42281b8745a4bdcb02cabd16735ab1523916adcb031e34ccbf4c50bf61bb7d562804d4104d3f6ac183f447e6608acb0bc40a34ada4897e9a91c542571877931864b612cec01c88010cbe039d42540835422f5900c944c7025ba3365543536d093a68c27abe1175bc227faa590f8fb8ca9ab1a87366574422379fd8659fe5bb5ec76e179666adebcedc7b54f1aa9388b2907a4ba5c48441ad90499c64a57768631d4a961d88976c816adb897da7715a100c75099cc122f3b1df183385673a3bbc98cbb0ccb0b090b3517993815e3f6b26b984bdda32c11947b2fa5411004c2c41f2a646036b86bba618e72be7f97ec6369af5ca2ab2dc9493d9078a0c8598841385205177c80a3be42a31d1166b02cd1dd2871148033c794242962e8645ae2e4867a3e5c74f71a1d978379ad45f7fa5c70066cbfc4cbfbe05cf23612b2dea551cc52dd90a8468ec771ff071371544e96400e288a82e9c9eefe807d6f4903ac567741abeaec9707533b38dd8c4366bb33cf86f77272478e43a2d8061293332c8d805a4516238d5ad1934a9683655674aa6b6d91610d4c82e966d74c41dfe7ac18e993c22d59b2d286a0b5272cd44988510b9b342405757a25731729e934c58c601f5c311a244a24dbcc772088a20dac4c8410167304fda18445f6c6126b9645d4042d6033419d246968848e1f5000000000000000000000000000000000000000000000000000000ed43f6cfc5464d2f56a817a3dc74b5ab404164947d8c0792f6bc9bc00bb4d20253f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523 +ciphertext: 83ea5ed982570cd981b7430de924469d4e2faba68e03261a74f5114ab8c448376cfcd1b9cb3e72bb031bf0fefe772bc40888abc6acffc1d335d46d267acde2cb89cf1b3c67a139796d6a5763805d5edcebb81070b44ffe021b6c2b3c6c3d5dfb6d9e546930223ab0139990c6c5d6257520fe394a3aa30c6a71d47f415ac86b68eb8c83b131a3c5cbf051971fef5ef3bda355d3868e71ed8a0e2c6de8a759bc0c9e760277cc2c04c783d29d1ad3d3385accb85cc88c39bc8348f84dd8c714c5feda50b0770414a333136d6678be6ccbc5df488bafdcade883fbb310c99cc648493aed72680fe1e43c0cf523d3dd06417d29dd97c98ce53089505d36a476c0ae6d89b165c3ff6b2c62ba954fb81ac5782ae648a6802bc057c64fabd3726559ba79de9c144aaa525f6a840ed55abf21b37231c6c4cbb0110fdbcd0004f6f4974ec644c33a8aea34ef4a0a146f7502650c3def5a313d2f309cb428880502d3bdf39196a99bee296f9231d87972efd1159d3cf59bea05f0d0373a0e218ee5e0528e1ac7132440980d1153b9423bb2e099d05fbc8241ec1f316bf0add575a69982f546e99c64457c12ac83951ad46a5f024f6a61c91b7d3853ba1fa41d5a95f6ca811610ba3f32addf011ea4091ef217cdd126ec5e45cc40ec6f1292602b16c02718419646370e5b2c7c55c1128fc5d6c767cc75248b79e2379d40f91a8617e8a3db43c42cabb5cd39a7a7969147f30344c4b03de7034b12d8a1c3639697c97c4483e4191ca0fa81d8659f40e31b899b4ef4610644b1314ab2ef14b8dd8dc0082826fe65dc17211572cb14fa376f1b1784a00033c8dcddc44d6a1128a200eea668b6516ba42585cbb2e2be2a42148120013d0a9378ed7c185071fa8fdc09102164c63a665fd09c08d34104c9abb64e394b2e2a00dd834f7c7f5de16f6c02906ae37acc923dd76e530c78f2143396bfc371d14e6c48bec072b6b4e18eeae967456beb3f897a06eae17de174cf09be1435e691350632c0b1eac69dd66549c1d980fb147fa295ca6f21b5dc398e63a7c4263c75b55c85b4f38fbd7cc0fad84aba90dda1f2c9ca88d88905602096162486dba1ed0a8caa6b897c99e25934152a35fd0d476de09fb211abf36565af3744f3fb737247f5d8f172fbf438ed04422a6b3e17bdfe2cb0f09a1d57f1f1a113a768697f23d61ab288f15abc760feb0f5c5d4d5c0b1c891d3dad6089a3b7e54516b8f9755d38430312cf17b21efeeecbfd2719b62480225b9b3ee8940b1f1784ed5630d152635a1233acdd16e5489a9a15eafa7bec99aff25b18d9cac1e726c9e424773a7083f213cea53dcd310b0037aecbde1d584657f32cf548a6872c6f5a1a3a70d4db29ee3773291c94b00b5a596e1691f7752e246ca0960561cd233ec7d5f54496d34ba65b359a856315f02d16c990cdf3db2051b17bf283fed1b808ac79a9ce8250c806896bf75f2cfe76465c09360aba4c9688acea341fe755363abe41c0cba3ebad00c6c7bcc3f7ce091f87079f60094b92 +result: pass +shared_secret: 4bb6a6b27596869efae3d411c69c593afff99b1a703ee1f4ff3e0e7e9756e75b + +# Rho leads to a matrix with unusally large entries +private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d749359b479b444b510d9b6d89b7001b237f4a34c57509f69208c7e6b956144bedc8b2d19b12c1baa725dd106f5418ed943370050808ed2636fa634add059541a7a8c7976b0990e59c20c00343d1c37bc3ab587e312991bb88a74227651b340346c58bbb174ac18c204f37445681bc5905354d834f86016d0921219fb467d829daf24901815666d664b8c4aae307485cb95885b7cb9125a14d4d988d3a42c0816ba7ef14de9b622e08871988b8c02d857626b65065551d5bcc81112384f979cd8d2b9ecb55c6afaa700e92e3ecbb285c01112a19cbdb90b8af135b235914c901e2314902a43c939d065481128f83ac801dc2fa69c912f2b69189736d72414df12646680c9c858a9afaa28b994531960b0f2b82fc6b9c6f10706930786ab5c6b0da61ae813cdb7387c27324499b111c6ca5767056070e608cf421af52cb45a842da82560dd86acf45a7e70245e0b535f7559a9fceb9369c44032c09302438cb4670925c7a831d52f083a7919e575be844d9e6a009957c15e6c5f84f050cc4801561876f9f483ded505b3c77a4a97788358801f012b59d716fed55975f8abd3464420d849d89c16dd2a95c372cf631a93a8897ddda2a038070adc2a97b5538778c0215cea399deb8279b2ade6c5ab84bbc8c6e181c091b7002a4d5f395bb60c817e03966b63ba76e88fb05b79d126ab0975c995b5bb2ae6550af78d80b96af40c9514f945d72b0c9602412242c81b60b2df97999fbbaec0404056195879535041231803aa7cf064b5fdfc8b86344d65eb30e52cc0d5b86947b8051ea93008d789914493b58abbd5395b657560f5823c387574db554118d06b26ba14b9660b4b390f8b828ba8a852870cba24a114a68094cf0168b721af8f0998e599b5db2135a3e9360b5754dd49155eea830f0035c2c116dbc9039cf69034c505ed998f8460a170eb5f09786d902664c8135ad77101d0b802248b6f3165a847b5c989131d7ee3135cbcb48b3cabfd100074c00f2e7bc85d4c84bec8980a6920e6f318a4bc805900b548fc7d98316c1b3c3b49f6c5d90595ff7a7b56465385620544aa3f39114e53581e851849726023d953b5df56b87be98854b253a39297f060449fc1c02725c3442a4ed8624f7f6abf3854cf04166b24c3b5a38358bae933ee4777df09720415314b152efc0b175b664c0c0a3521cac1817314d1e69fe03b351fe211c4c44639622a73a4547ef52d46b033aa52a79182baf49a8808fb259c048a04cc03f8a1038e9112eb30965c797f90c277b3549df4f757526351bd1a100767b4bcfa7489c17cb181b707986b9af85e766aa1f99b08aa2a7bc8a385d294277cb00d705b4ce2583e61c16be2b18445d051d7f0cee51703db3162bdd328cf0b0b24a424bd830c6574091088ab746a291c737e8cd595d1b51f9646c7813a8991f89c168489d1a3b61a82466d98ac9de55b4d5aa020243e638328fedbc93d341e1fdc7eb861bba3783a57c86a7184aaa7d5051b7018f3f18b40b69fd7780ae9609194db70123801729c561e973dff3a7ea5ba9045b24e5fe5bc63ea858c687184a8276612c80ab600cc37699583b9ffa8c5a1b7934f3c12873522dd1c4f976b73121bb79766803d247de1dff18807000000000000000000000000000000000000000000000000000000c69860913068eb936405db039e82a2f7fec48a8ea570bd538dc9741a6aaadb02e366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891 +ciphertext: d4e89c9a1b36b648551ac2180f2f59158514568358f66a6fadd88492a0e1c122d1d7806287eecbcc8e8e6a463dc1c909f13842f734b9eb5bf690291c9d5b7836de8f4a28b8242c21131c53ebda4002b329a1951f469168ce0199f0a1d2edcdf3e6566f9e638e5a1095025cdb591aeaed8bb115ca3a1f1e9a8e911b2b9d3838608a27e50018e9a99e65b04adab67a75db892676c28ff41f118286f0ad2f5b650baf9441470db659e262e64cbebb4e808b1e7cfde0ff5c1ffbe1336beb42155fd9cb1cef90f306f5aa2f121b30b4d6091b19f37243cc15df2a0a16c4b5f70ffba99456f535af0eb0df80771150ff28c7925da7293878699c00f5136c340d1d06460b0ca7223f37ca553be904ebb7a7f41daa8288aa244202247eb8c35b7bc6d1dc8b95c220319532dfed22dc5d0f2f77a4bba0f5ee599420a94c446d89e3e8532117bd8ed0f7d9cb1f0a58a92bbf30a9d7c16d5ebffe16f39f682c18a8fc2ec0a551370c0e3ea706259f52333f5e86a83fb60b9ee3776f08e3f85ae4ee66be8c653cbe25e316e6ad33415a13e5139f53480625f09f593a598d6fd864729362efc3d09f5b171b0eff76cf860c8fd80583bfcae3bd7535e0270d622c2c09886bf9fddff6dfd045fea3259d26f17500b6b1e0b5068dc06a510da4809fabd615221f672f6d1d220c22dc080c9dbd7544ccb3369deccb76287c77e1a2af0afe133cd19325e6a77a8bf96fae6dc0381bb303815df4de480a9f3f97f1baab7774d7d5d9eda6c5927692fa2277934b0ebd30b4e7785f0c61a44357f49adac4430fdff3af956904b789c2dc9bcf87eb4cf93c48256ae13e90a1bcd713f77446593837b81baa6fd7050455d69a16b429018390a47e6e881467b57a2cfb043ce5a8cb114c4bd916ffe353579b599994efae24ced2dcf1a2923a0d0d8e771e7c230d887e596b80e01d84c908ec9fe81270f12e2f9ba2d783b1200fdb106e9d340c21667b722564a0cb4603dbc2193d3b455e06cf8c1d8fdf3e7ebe16a47f0181407f66c214379a5f336545818782835f6be2e9ad89f180ae0747067cdaff1f3b9386debdf3f057cd02f6eb00ecd656838e2ee5bdb99d6260c0447707d747bb6ff33ed65c2b3e22074ff25a7a0933be3e9b51de95d99e02ed4204f5ed8a6ff864e2f04266c9392c6feada8805ad44dffd5abe8d4262ddf6d2b1b4099367927b0bc075cf1d1d802f2d10b6d31d7f8c48b043340cae34b5b7c2f1e9b5043a0c2a977c51ff038171f8c81f04b284b2ee262befb6a54bdec146b84dfa116542bd13123ea79e4a660e44f3d23a0ce35ae4eb7b45611f87ae836081742d3cae6c65a0f93514bfe118cbbe7011e2a9502b197ac4bf31fe17016e184657b8dcdd62a223d1bd88b98aa0bc200ca91e123fa956b3d804b2c0ea139f934124f8d0c3f4412d8effc554f8364b0f351a789cae775b241cd6aa6d15251cbd28f0f85fd4f2a48fb467444f2f759ab6048d33c27832cccf9cc45fffaaa17a6f5e4b766f861529cb1a0641b6d3854c11 +result: pass +shared_secret: fc501515ab8bf04e3cdbc78c032524d6b9ac385122bd2324b11a2ba812158fe6 diff --git a/crypto/mlkem/mlkem768_encap_tests.txt b/crypto/mlkem/mlkem768_encap_tests.txt new file mode 100644 index 0000000000..76b0cbdef3 --- /dev/null +++ b/crypto/mlkem/mlkem768_encap_tests.txt @@ -0,0 +1,1840 @@ +# Official test vector 0, seed: "061550234d158c5ec95595fe04ef7a25767f2e24cc2bc479d09d86dc9abcfde7056a8c266f9ef97ed08541dbd2e1ffa1" +entropy: 147c03f7a5bebba406c8fae1874d7f13c80efe79a3a9a874cc09fe76f6997615 +public_key = a8e651a1e685f22478a8954f007bc7711b930772c78f092e82878e3e937f367967532913a8d53dfdf4bfb1f8846746596705cf345142b972a3f16325c40c2952a37b25897e5ef35fbaeb73a4acbeb6a0b89942ceb195531cfc0a07993954483e6cbc87c06aa74ff0cac5207e535b260aa98d1198c07da605c4d11020f6c9f7bb68bb3456c73a01b710bc99d17739a51716aa01660c8b628b2f5602ba65f07ea993336e896e83f2c5731bbf03460c5b6c8afecb748ee391e98934a2c57d4d069f50d88b30d6966f38c37bc649b82634ce7722645ccd625063364646d6d699db57b45eb67465e16de4d406a818b9eae1ca916a2594489708a43cea88b02a4c03d09b44815c97101caf5048bbcb247ae2366cdc254ba22129f45b3b0eb399ca91a303402830ec01db7b2ca480cf350409b216094b7b0c3ae33ce10a9124e89651ab901ea253c8415bd7825f02bb229369af972028f22875ea55af16d3bc69f70c2ee8b75f28b47dd391f989ade314729c331fa04c1917b278c3eb602868512821adc825c64577ce1e63b1d9644a612948a3483c7f1b9a258000e30196944a403627609c76c7ea6b5de01764d24379117b9ea29848dc555c454bceae1ba5cc72c74ab96b9c91b910d26b88b25639d4778ae26c7c6151a19c6cd7938454372465e4c5ec29245acb3db5379de3dabfa629a7c04a8353a8530c95acb732bb4bb81932bb2ca7a848cd366801444abe23c83b366a87d6a3cf360924c002bae90af65c48060b3752f2badf1ab2722072554a5059753594e6a702761fc97684c8c4a7540a6b07fbc9de87c974aa8809d928c7f4cbbf8045aea5bc667825fd05a521f1a4bf539210c7113bc37b3e58b0cbfc53c841cbb0371de2e511b989cb7c70c023366d78f9c37ef047f8720be1c759a8d96b93f65a94114ffaf60d9a81795e995c71152a4691a5a602a9e1f3599e37c768c7bc108994c0669f3adc957d46b4b6256968e290d7892ea85464ee7a750f39c5e3152c2dfc56d8b0c924ba8a959a68096547f66423c838982a5794b9e1533771331a9a656c28828beb9126a60e95e8c5d906832c7710705576b1fb9507269ddaf8c95ce9719b2ca8dd112be10bcc9f4a37bd1b1eeeb33ecda76ae9f69a5d4b2923a86957671d619335be1c4c2c77ce87c41f98a8cc466460fa300aaf5b301f0a1d09c88e65da4d8ee64f68c02189bbb3584baff716c85db654048a004333489393a07427cd3e217e6a345f6c2c2b13c27b337271c0b27b2dbaa00d237600b5b594e8cf2dd625ea76cf0ed899122c9796b4b0187004258049a477cd11d68c49b9a0e7b00bce8cac7864cbb375140084744c93062694ca795c4f40e7acc9c5a1884072d8c38dafb501ee4184dd5a819ec24ec1651261f962b17a7215aa4a748c15836c389137678204838d7195a85b4f98a1b574c4cd7909cd1f833effd1485543229d3748d9b5cd6c17b9b3b84aef8bce13e683733659c79542d615782a71cdeee792bab51bdc4bbfe8308e663144ede8491830ad98b4634f64aba8b9c042272653920f380c1a17ca87ced7aac41c82888793181a6f76e197b7b90ef90943bb3844912911d8551e5466c5767ab0bc61a1a3f736162ec098a900b12dd8fabbfb3fe8cb1dc4e8315f2af0d32f0017ae136e19f028 +result: pass +ciphertext: c8391085b8d3ea9794212541b2914f08964d33521d3f67ad66096ebfb1f706424b49558f755b5625bae236f2e0079601c766f7d960808f7e2bb0c7a5e066ed346de628f8c57eebabbb0c22d911548463693ef3ce52a53f7ff415f00e657ae1c5a48fa5ec6e4be5cf462daffc84d2f6d5ff55dc9bbe8bb0d725ec64fd4cd4bd8dba0a844e8b5ce4b6a28934d7f7a050991fe185b506b451dabfad52d52cb2114ca7d9a5cf986c8fdc1bc10ec0c1869e50c03c55a76192a1049aca636ba9020bdaa8d0f58c763b0b89845ca06d4c4ddc21433e16b9c62e44871fdbc05ba218af871fdd7dcfa464e60faa5265264ce1391bd9a8c5faa7626d5f159b9805b975710a3503a0b858a11c6a647cc0e19ac88b1be9056c95b4d2087d0951d1d2f4992491117e6347794ba54571ec49bba71af3413d38a30bf5872248d1f6d07c86baf782e73d2637f043d341a00921857d8b21ddf3e1d6310036ed27af49e5de1b900fe4de79808ff29f9570859612b15adc01fbb265b305b1e3a12ae419da5b74261fa284c101da3d8dca8b2e4521aca571ef44a058e844ff32b16d5aaea05f7f3af8e2ab16222e347662eddfb891d0ecc2a55c5638f9dde92d9a3d544a5f901ac501acd1ea6a010201fcb10ad702c425a94bdf5890d500a2a147eee1d1fcba8c3abe7c2dfe70f346f033d816a0b2791b4f0b2d956d9ee5971715399a5688302495e2e07c1c8c01527184bcd0c208bc159f2e13318c0bb3dd24a6a7fc849f83385ed4dba07fe1d7bd5640cc9ed5ccfdd68763cb0d0edf61b292177fc1d2d3c11dd0495056bcb12558aebcfddef9feb4aebc57afd9023c65cfe65a24e33f1b00111e92e63e011eaf0b212cf95743cd07f5189ece1f205b7f6fcb2e6b1961b5404cebe47c8cd13b8599d5b49e6d87eeda36e9b8fc4c00635896aa2b75896e336d1b612ee13db811e1f07e61748d920f4865f3f11741399dc6162c91ca168a02329dff821d58198712dd558abb099b3a0baf9da1b730b2aa73bcf58d74f357b06f7211c804b6c8af16ff3509fad1d35b14bfdced7db8a6a25c48e5956480724daa057cd660b67ee3e472574182679d485838a6476eac02141075c812af7967ba7c9185cc2abd2a4545b80f3d3104d58d654a57792dcfabbe9c0715e8de2ef81ef404c8168fd7a43efab3d448e686a088efd26a26159948926723d7eccc39e3c1b719cf8becb7be7e964f22cd8cb1b7e25e800ea97d60a64cc0bbd9cb407a3ab9f88f5e29169eeafd4e0322fde6590ae093ce8feeae98b622caa7556ff426c9e7a404ce69355830a7a67767a76c7d9a97b84bfcf50a02f75c235d2f9c671138049ffc7c8055926c03eb3fb87f9695185a42eca9a41655873d30a6b3bf428b246223484a8ff61ee3eeafff10e99c2c13a76284d063e56ab711a35a85b5383df81da23490f66e8ea3fcba067f5530c6541c2b8f74717c35023e7b9b3956c3ee2ff84ba03ccf4b4b5321b9240895481bc6d63c1693c1847852f8e97f50a133532ac3ee1e52d464 +shared_secret: e7184a0975ee3470878d2d159ec83129c8aec253d4ee17b4810311d198cd0368 + +# Official test vector 1, seed: "d81c4d8d734fcbfbeade3d3f8a039faa2a2c9957e835ad55b22e75bf57bb556ac81adde6aeeb4a5a875c3bfcadfa958f" +entropy: cde797df8ce67231f6c5d15811843e01eb2ab84c7490931240822adbddd72046 +public_key = 93c140f6c47b7e53b96f72bb18447d277cc021c144a0f7a35e30b57386a78ac976376262320a5e7e1cb42e290de684462ce1067e920ee86c32418b130a5a41a0e8268cfa7e0db2b441cb927d7897c42b1d50f9b32868a35a2c04cfe91040e9a9208902f20c477e1b1ee5c290d2e5244eb1b4b7b4c6ad074533b58d9914a6aa8829f96789f5cb87607569983003f3a2461c33c81a3672af5924c4ba37e6827fccf86d8b4103fbe9c0f6226dd0a2145a6b7aec76b186466f9c67bf169039259574456497140c8cf4ac05091973ac8c08d809465785a677a032ac09ad1d666e8c48462813ce5ac75f184b38251c30e362b0e2501d6800c8ad103c8b773780b6717cf15c401139acd54b1598b2b7c79492a86631090268c70d875bc040cb2b75a386fa96b092b8cbc25c47f70aa76cd8b9afc12b42b536e27c5578831a96dbbab7138c3f247e955a6c08b4407d4708f1914bfa48af4b28533f747b860b7076c028e245c9727b42f3248fb0408b3ef0c4918ab76ab96daca81afb1211ab3a0329ba1a5b069a68934c1ce84c2f72839311257fa19e72c62fb5686b61416caf8b22d2b26a6dd01bb7387f88eb8606980a5e2259cbd56ca1ec051cfc66f96239991a2360d75dafa1534c8a05ab9c95e2e586853714600a3455511b62d94525d8b1a965ce69f986731888d1ecce536000e4863322a83e3c8475d9eba5414a65b0561d24a7b09dca6ffe23836058bec0a85671641008c831233c7890783dafe8c359a263e796869118c4e74002dc3b0ec5b1c4ac641bafe30eb2bb743713bfed2c1e79c4a6f46593006acb35f7031f194807b893aa7a9323162168d384d0e96f2f23368626a2e027891ac94f12f30a044b85f0322ce2b16517d36aa3f23b5f391be394b54ddc28e5a9775372869a7b50b4898c072c0669d43c641a3cb5e8c170ba63bed6ad1008615201305e292e1c818e1ef64f3e0c52fba67e7249c1ec4a140dc89ce0050647f1c19f5897c77b9059040b4b5b4282e0669cb4c658f48f67338413c92fc7412e444bc635dabc93c51b030784f21461dca210cc6a54fdc25bba09705baa77c1826636b16644a5ada51270d8317a787abf53192d40dc765bfb45c7dcae58481af3a49fe762b90bac1f6f69a5de8045981c67906b9f692625fcb6a4df2641688aba61fa49a84b47c96661e4701e5826c1108069c4b9c6e480251c4b021d11cfdaca12bbf9c09a0234186668e389454ac4046f5b2468aa2fa9b117868574e729574ee57ea7495af310627b85916d6b4c708374f9fb0c9c3aa4664c6651281d8eeb98132c1af13a816ca5b869f50b50b291efd466dea090918630c6fc77247c458aa82568a41dd9d4708af3bbca5a5716447e8c2c24ad788a8632473fdc4a257196bd2b549091176fe654d3694e10a118f7b66d1cd5af199b6e90b3bffa88a92e36717fd4bbfcc78b0e08634bc080c86885c92c8ef67aa4933c7df097891369bac5fc5d0c36737aa60971310adf02c257f76a7a7b3f7e132c2a71c52ff4affb6846391c0868241a3df13408d419a78bcffd49619b03a192c683900a244289c9f7b4564823900ceacffd9a9371260d5e57a8271196f4759eead0ceac318966e76f68de95ab9db2ba4fbf83c3b27092cd339cfe48d5ca0ba11591d04566f4ed24a5 +result: pass +ciphertext: b3b339d73dfe8e3db262cdea792b4e3ecd712a75750a3b206800f11116637b58bc75ea61bd74070d7132309176608c33989fc510852c0f8d07e9862b79b069cfb3e5b78f277a74dcc832ada24f7d522e53a7cf16a7c7d952ed9f4dd4be4910d880e2e7c5b23c6cf9077e3d350ed3e7bb54ca7b39a9f68e98d2fc844c62f3eed092c8c008e4c2a28b3b1d9f34488655741ddcc440be7828ae39f25f52f57d8b1cfe3967af165e5affaddc8a85cd4939221762be2f71155c780ada5103976c77a76f838bc52a72544b22cfde6b6e843b4e552f1ba47419a8a8bf53c388537c1c08c272a02f4923d9edcc54dc767e6613c6f832889ec05ca805fc09e326d242517e91607005af03cd1acb242e630d6c20499dec187d8e5f6d421e2ceef7e3f74b751214fd58b6583bdc5ede65bbb643974d5cb45533f0a733a3353724e2d7e6821d99d317eec8781d3f1e03528fda480da8cd8e8adc51585a14acb5da154a68573b0566e5e49a53b4cb8061cdc795d13899032d549ac8f7c35099eb2ba0f0df4c9558444f4fe5f88bc46c6fca1b257c62d2116efd1c8cdef5717068405201c086da4143de277649f32538f537f8bf13a65c05747cd44f740736966422bd247f4be9a05acbcce53b9c1b0019096f93dfa86948d7b01d10952926b7a6e0e51792f9be6bab620b9fec660a2348818e4b47cd5934ffbcef5aaf20c3acf9494ae4df9d23f62a2571eca8d37fb1c8d29d5df0fa30c2f17fe3788032d124090dfbd000155ad8deca87190d66bcc9b1e3de392bacad79dc62be0d96eaf448feec5ef03544db3a782e5f9ffa20493d5ae6a58481d23cac7d3eaad57887bdd706eebf15f505d07e3592766710a658513598c94d2ff3eda5b5e900fcc9da8c012633c96a8b9e1da548dff60b1a763bb3f5ada6eea3290a01f7367f7c2384097ebee2960d904141b6c7bb30bf640350da34b9516d9f73100476e7bc077e0f88dfdeeaf9a2855448393cc26e14ac50b67065bb3694933bc64c622958a11637f9c995e17f15cfa663e7121c4ebd5fc1e153bea84c66843c90110e587462c623dc67ff0da5dadbade9b9724ff804227e188a00aa6c70bba00aaace8a035b96a595ee726fab666a08a4979ebd1e230a9c48afe7779cdd9f0d019e2400db9f686011ab05c4109db273c236646b481ac7251fd70d23188f943f6f282bf059279464645c9552de905996f2ef355a4d307448aed53728b490baf108a7d2579dc46e44334d1d99f310c8c953d4b3fbbf6b15a99b263775a1f9f0c0fbdfa260415ff4f61c263362c95fe9fa72767b8625f09b91c393fed48bc8f628ccc76b5ca49d9c01223ab4c1a9f25ac97ada8783b576575fa699140394e53daedf683ee53172ca9ff70c27a3f940675e3239e44a24804098486decb72ac8d41bda6e2d3585e2edc1e47cf1999fc67aa000677ba66ac22576ea087b6e7affd5c1617b3d94fdd314d17e6d37f9e5347807fe21fc5a9d75b3a25541cfe4a2d2c9efd00859d713cd6f67314cba4cc270fdb2e6 +shared_secret: 5f0c5d9f39d3e724b5a2bd54e69e360f72ffab5d4d6cc5e572fecba80acd4796 + +# Official test vector 2, seed: "64335bf29e5de62842c941766ba129b0643b5e7121ca26cfc190ec7dc3543830557fdd5c03cf123a456d48efea43c868" +entropy: f43f68fbd694f0a6d307297110ecd4739876489fdf07eb9b03364e2ed0ff96e9 +public_key = c02b820292c46c8a8a92975a2e27292cf893a7f54a84a67022845d66236dca3c4844604b16879e849c7fe3475d03f82323d822ae2cb6763842a319114f5c77754613d5fbaec05aa801a03ac1989a725337ea38a668ea65cdb36343ec3d690ccdfa47ab1fe473247bc488d98e1e33175920a0f2272a03982c8386485bc2c4245884f1d941750a1d27fa85f0067f5c377532304261aa908bfb950894cecc1bbfd197ced78a641366b9199a4ba190446e03ae51549be7959c87a629abf24cbb7a58d01cad4949734f797ae300a78f45c70f668506977d7c85a0cf64c700a5b1f7879801bc3ac75584302c8bc81c0d7f6b237a9400681bacfc7192f9c653f8a9551f796ccfc262d3a438a551ad74c80ae9e3b5a7f12c5204ad44c21f488b7824a4b1eed79da9b44e60d8b225490c062b924da04f0ef0252304cca34bb4fc70ce6b1800fb6c5dc771bf7bda9e9db2b6c6046a1672c6f6f01a0406b903411c271b20e139a69138adfbf50c1134ae0899c166b1b1a5d818515b0dd94895a253059b167630f3a0dd3c64cf257cdf93596e54288c7a4580404ba8da541abb1b6aec7e530c58a61a64d9b9bc32d870bc105ef7063b9a97519b871a60d7aaf8c193e948c267c9c815063d6a603ee8d2249b386d94395804a9af8cd2184800c7ccfbaed98c4f9f95b70145b448387183f5cc8f4b5f35a949bc74706bd03db7645c2d084624844a55a0a5abb9244cb5b8736b835b512bcd912361fb660479b2c51b99734970808ba5c6db0169756cfc986dbda94915563c15a109aeb77c01a7cff55c8430696d6e83aea5d49292462d725c428b984d15e97ed4a76403094699e1336426b54281067e675788b3a4fcebca4431bfdc8a49c215ba11004a341516018419abeab2374184b0e2b7b7a54efc678e812588960a0d009418e5289eddcac582d3c73dd93e1234518da003648853c5b5a24b389e88300aeae78c41e62e5ee303a56b548375757cd42e21a7c59ff29a133868d1d0784197573464292547161b3a8689dc0c7de11139d407f0b5784d942278d49462965f21f72cb992add160620f6a82f70aa9a830190ce3c9fa8015071c2877483c2203bab7228ee2f37bbb17c1a4bc499ec249ffbb42e4989905a878dc873e456a7d9db946572936d8d81777d1b992c00db12a35df1348ce8c9d1a02898c7403d4107f45a6bee864375b623d30e0c191f8ad835a3f3709362cc763d63c2b91649d722825402c9ec1b1c7aa02b154d69e39da196e72a25928212fe0711bbb2fd2f9550a361a28d4295bf0c036d7b79be9130232060206c919f8b864f03d6f02348ed2c8001a30124b40c6d61dc3e18bcb27c60bd1324d8386da99c3e098cfb94b018031a4d6aa5788d27a75a67b630327add804adc21642d58080956a03f03c8193ac302c92e949cea31721813390382c814b2c5a6d34a1eb44b8b62aa77bf88b5067455fc0c7be967c21bc281ad38ea6978d228a83a820c57b4039175c910a450e300101cae45b0736a4dcbb0e6eb58491da31de3b65cba0a7c80c7815f677eea7ce5ec571bbf7c4516c65e4b2528e160959c815e1bbcad0a29ce59573d749453d9b6b52a951de9b889c79cb355c345631070b7c30f1934123c9ec68ebb324d254e5d246b14a0259e49b2ccec72b8c494834 +result: pass +ciphertext: ca1e236472b3fec4e2afd4298eade05a462fc19fa22e6805b386282edba027bf2de8d13b825deb40fe10cb8c79be238201a81d7ec48400375019164b1515853e69144453f1999346ab1ff386fb3eca8149b5a2b7acd49a165e0cb7f7509e0ed5d9f279637b26570b16ff34f904a42244b15af7d3083e0cdfe3c03ea42f73c75de1860981b8a25756bdb18feed4bf461f765583f0772a81d40508498b54ca8477db0d7067a0d9f7d00fde68644fefa97c5e21e3f3ba7cacd67cfbaebd58930d7665bab99a94da09a2572b5b5232a366e556c766aaf5807004c6d3725ea33172eca8a6dfeb079b0de46ea9af3f8627ae8555ea18c0a0c12b211826768d8a8a1e57b1a95c9d98bbf1d5ec07348ade6f134712dfe84e434fae1fe9671fddc8bbd2b69a15704e8b0e62abd5492afc1835bb24013cdb83f62a68b329e8b340b904bff04b4eae972df87bed79df39313556b2cdd348f83f5bd248bbeba7ac06dac17156246083238f988cc196b5469a163d602b70b1901fd240b480d67484dc4c0e1280bbf6e528a4f3b6c734587e33a1f4442ff0310f6c83259f7b94a162a4a2a49e1047fac23a245b2db3cbcc94192d7fecf40eac4224ed4067533e8f2d468332307fa9f82c089663781851a2c3208a23cb089ab744f4aabc1c21717388bea6fb01789c4d77fd4b2e0395c841565cd8c9c2167ce483a363006583d895deda5351c1cbd0e182f59782e5e76ea45d9e8f38d683de8865e96e8360e811559c3e082edba99be598c7ced451c239e081183fd0aceaa3f75effe43a7c8700b1bdc51d0a5e1e482237d9bc8a301b20e558df1f8d520163edb8705924cd6b8971bbc3923f8067964e6c99ee3c60737ef170f5aabf6261e5b2e6430dafa73ac9d6084ddd0ed62ddf2a0d4e064c7a04260198b94fdd02ebcf817b511bd90f6243cba7ba91a8dfab6aa8f48bb67696f575da25234ffa79fa53a4b9de2ed0f15e9b20c52b764e26c5d2d0b13cd3ebdb5d560b373725556c7fd152f3e4040cd7d40ac9b4f4c49e3dc7f748601bb4611c14e03b37ed79658e2aa69e0b47f42710bed2e4ac6bbf37dbeec69a34b6045126a017732695c5474de44aca2f2670c0e36bd686d9095435359d173276ffd07c25900037c2a4974e6af401dd55523042bcf36ca27880775cdbfb6b095cf93b491dfb0f2fb0594d7d9e46a3303e3c0da3c5d39c2fabfebe6a3eb9e7c2af3022aa5148c84f9cf8f4899697c781497c70042030918353e56aa0e4bac6fd3efd8f41df94d5668802c9f63ce6fc51bc36820f0e60b2085642e502d093d3bc12849c553e05574a2929659cf3afa0f33eb117d79c3fea450996738b38ff162f77fce86949c0553269dd8fa3873615e7b75dc5429799b191cf209202dfe18230860637769df426881db849bfaf585180ba15f67410908ee6b4056acde46a1ee862ce0c696af377efca2a2878d0922bac97a53ae95cd5160f07fa978bb57ef8ed3edcf5ff907d25f50f80e488c7ab79b11333d894772a57d1a20d0c6d7224 +shared_secret: 7f3bcc03a35a0030255264914e5d88a0c93611c7ca21f0609678a88ca42ce1c9 + +# Official test vector 3, seed: "225d5ce2ceac61930a07503fb59f7c2f936a3e075481da3ca299a80f8c5df9223a073e7b90e02ebf98ca2227eba38c1a" +entropy: ea74fbc3c546500ed684bed6fe3c496d3b86d2d6dfaf223969b942e9a8c95e85 +public_key = 25c1215d624156828088b63da622afa9fc5476b3603474b24d8394b93ab494ea3eb0f33ff5d91a33d34a2f666235ea009e35544cf135eff54e3575afe2fb15b6b59a4db843c25139ed345fa170003fda60b240065f761570471c4914aefb01c38fe36b3c7b80f77887a03b74bafb64d3b922701a86b027651fdbc777bc4d90d387fc15b8c12443af8636e35224c0430520bc984d71c56df26e84b683c1dba081b0a584b5793e725775482ec45b1db7c84949644d405579659cc31db130bd190d2247210c043bc8f227450ac206c13e8baa896e471f7cab2bdab29220c051ba354dc404767e812765c66ec19acba3b993caa2c0bc2367dd50846bb40d6587b51a76277f6865a5c69d885553ddfc200e970b9c0666c1854efc932af57a1f3bc0a805024efcf978f77b1dd739604b8a87b44b522ea80e87ca2cba7220e62c441a429d19b76425d51cd1e61e2a2950922637a1ab84fbf645a1f6413c288b731945d4029958d56db90aa01b712c83b73aa88581522757d505b83e61ae06eb6f5270021c61b7dabcb0229878d85c8f352a9a4349bdecb2ab0c2ab4039940a887b665f8b9dd10992b3b0493db6074fa85e1382a970953ebf113d4835e9f031d390836732b3ea6a89145183f72dbb095d7617a3abdc28912972035f1cc30aed3101d91c9eb397680c8ae222aa61e515a9396cefcc75c0cc255535a3f41212141c12558881e23798e1748bbb5464adfb167a2c44388044754a87a5ad1ce752c38b504bc443a24ff73a6cea4768e22681554b56dd59da1c7b88db126b7ec640c1bcae8a20b5f864ea6385dbba1c4ddd31775ca9f72ec6f137570fa9356de55c5c2ec92048a0cd9680837f98763fb35d1431805a7420d2bb803cc37bdc90fa921bd4d18b4f33419cf03ad0e2360d92192d7d87df71bae83d2b538741914892c0d778cfdf429be268a22f4043c29b62ff74fa770156d93127c3a7fe2c6c6c65470d1931f85a3af1a963bd919ca3c437b43d368e6e7a199407258b8bde88b4742192673499ac440b247d97225e7554482c6aa6567486074f15b19588c6d9de4619d4c493bf73f2bdbc05343a581e95197b64dcd8826442565bf629d5ce4045218bb908701a5e53b2d0679720598fa1b08f286b60e5c377ca7afafb206ed4712d6d16a47b99360426619f97db0059a15592353577765a8368d93928802704836c2279205446bbf7a2465042816d7907f143635b1434680156523b02cf1d8565ca5c7ceaa126a2753dc299c10e4968a4729991a0f5ce31c595629301c135b5810a712910a84ce1f2164c3aba248cb89c591ca0d24a7681c0a140672bf01c7f5c967f3e41b9a925af6ea75408a24684b725b446a30d0199f67af94b958c4b979c2a841b28878b5dc5154b79c944c7156538e6a130379674bba5438d64775fe1a87d3aca677541bf82c27c6d18f3bb182bc7494dc91b23c35392f21ac49e69e3c70454bdb16b2394d00a549734a1aa4790b01508be670841e09042e5a1a4a73c3b830ac5a35b826f36411639e20576a89197426005c08380c13a4a464892bc6992e236771e7b135aee096e9f65738c531b8e63c3f4a922a79222cf8b8309a04c3c7464a69982a072fb895714eb8f4e6d0a4c447ac97280a7a7b63bd585c521a49bf9230588ddd7034 +result: pass +ciphertext: cf094e965c6a8d943b28fd5520db2fad4289e6770ef897f6ba80f522a2d240e201267890a7ee3d7bcb86c9996cf962bb45f8e2cd7c02c42ca4d226858b07078890b65b297bebdf776402566cdce7b52e8dd7e9f920a07f8430b58869db5bb6bc73f47e4b1b58905743fc6a63a116d9fefd1985c0e317536c5d1fd40a99e493655b86be0567eaaac00c67a83b40fe4babb98823051f7e4c565c93392df3a67b214217e62ce0175aa8fa8e3d5a290f420fc03e4d259e76c5668219154f68e1c3f1b7b44468c3eb8001bb764ca252eeb5fb934989e89d4e3a507742ce31ec20e57ac42fb9222c18b674558814636cf6af142f525ec3c8a7d5838e752eac0de8fb1d77ef7e2a979dd2126ae587e7adecc8cc21da87fd661d932b277a154a7c7dbc4caf567199660f756589fe8f77a441e6f31248f28f046d003c4d7e6146f9829827838a3baeada58163cdcc31ec0a78303695a9d51d24d72527ca3896ccad6009f701e486e6d73c4a4ce1afb00cfbb0a1e729ca6e726e4c8a2164d51e97f50f65fba4a8624e679a77a458675382716e57b74d8ed323e06f0f0d5af1b5029870ceebf657944e337cb408a0352328564cfa19006773d1b794d9216901f5b2315150bfaafb04db04c7ed09046c2c66f24fbd68a0cfa6ac5b64363459a73e3f101552002caa5e83a1f91759b5f86ee50e915fca750bb5e95c2f8bbc6d5d681313207f91d524a1a510534d9b844f39c898f9941ec4713eaa9572d8963866cf69a6d87e98c54f7a238977751b31460ae699b922c307116c3bb2e90f69bb91c8c45527065eff726ff640eaa0016022c5f1ba2261faa37f9b34eb92eb5f55ac6c3828a90be3265be251fae5a1825035e8021b70ad05a78dc4ee186bc6af75bc7ad7575831daf735973e8505d4ffce88873167aedc55940d19710dc769fcad490129cbc84ed362472accf2ed445599b2ce72465b85b4e1d6d628dce3195d4a5fde5b95e0a2ec025d5678bb92a440110839b233ec4fb34a6bfedf9c1a1d64c0b5b20f502167b35745f83ca64857ffcdc91b1fcb3739048a48a3da1d2020819dd93544e2c448760d24862401850de85b61c438a23de01be16b5f1a433e9d3a1132c638ca97d7f7485af8176ec8f14601439438552ec3abc97d29f5dd1ef805bc46fc9b77befe95f0641a94c7ad1dabe80bc168fd04054ef38b85b094b2083078f04cac56742a4c2e505eb11025a104df668dd9c3756d901dece91a521881ef207e0307c0b87170e3faf188ad9b8c25704d41dd6b5111c1a594f5ff7dfc4c78e78868f7ee7dcae347a70abb7968b4ffe8bbdabfbf52c853a7fe165f4ba616a9e9b18d00af0093f1e06efccf8863f0c937a35218bd6d043384027c5972687c1078c31e4de6b1edfd13fb149cfc9787759351f5b1a3daedcab46367bf6b4ba159dc109f7f79c478da6d0cb7866cb372770bafe05bd95c8ebfa090f70d6f051430c0f2ff76a036679be20ec3bdd91b5323af2b3273a995126a8d5f413e4ede9f27ccf1dd8974bdabe3 +shared_secret: c630736985fdb7830d7446e18b6b81fa4a707a6058964b99190120de85e7559c + +# Official test vector 4, seed: "edc76e7c1523e3862552133fea4d2ab05c69fb54a9354f0846456a2a407e071df4650ec0e0a5666a52cd09462dbc51f9" +entropy: 64efa87a12cb96f98b9b81a7e5128a959c74e5332aaab0444fca7b4a5e5e0216 +public_key = 711cb96f0cbb88a8c1c298c7837b2f2c3525f2313ee5cba7f6dc77413cb58ed86f75d26b39729561c28b795073c1994f69256eb0ba9c934146c4421419475d005150897a17d310bc52f43d50e8ca5706a774d5079719754c6336d1142d2387bdc1732c03e2a3a04a9dde91c46612b54ca6ab15921bc20ab4f2d21910629ff4e37516870d60ab8bab08ce45dc89ca6712f17869e645b702141ef5d64f67f62156ea90ef1c502024858e91c89de92056f3675c1a6eb2191e17300845cc3f7b52cf93c566ffa732c362a8e89c5b6f4a5a827b6259d26a31932e3141486ecc746027776a852faaf0c3c436c690e3664ffaca01582022a99130bcc402bb7234a14db7baaddf7981d6557dfc44788c7506be021359e1917837a3c3d5a598757e00f77b6b785436b6840a16151939774a10a7cb8089fda55e6ae49f30512d691716f29c8a9fa94a8a113632a20c71138851ea6ab3f84e6e18b8531119e36cbbc6d0229a491f6b3b7e20866dda8ccf802abf47a769676550e2fc52ce438c48946eeb22756734bd4572c501dcc311b26fbc9c8ed2100a68e44435520848590375b59687c94a685b6490e236193c722b7b4acb84ce9a69388d13a984f696b85122c3dc0a5c38c2992ba60a280c9c6783855093a9b886953194eea273225c1a3e10b9db18c548c05c392631dc47320f411a618c943b7a201c784885b62f7c56a6b698abf1c76a039b3e6f95c466dbc31b4173778a9d5770b68b8a8195e886e8191e043b909723209553bb942a96ec4cbda1382d02f71a6c009bdac062c791c12f68a1f0506478d1869b782bc8b0181de6ac62bc8dc844aad6403a2b907f2d1a992bc44313f711fee1bc70d326e7199fe411354db2c4ab2526d09227bcb42cce2650e341368fb493d6754715736f8151019df22b07e5b5bccb3d0d161ffbeb2e93731600c85b6ccc226c790ed5e7384e8c3555497c07ec074f2253713b1ef6927ce4c1a80da11cb609c826718a5474230d62a40b0824675c95d0cb05b7c77b1dc4aa2872b8083bb79e201a0c847061e18be1d2ab68b2bd55d24925db5f4479bc12dcbc834b0254b891bf373cf5c4971bb0811182527c72c2ee6479217c70214106b416bdf0d818acecb63fa6af4d7031bb50312023acf66986c71a25cd8a88d767844c312dd5198b965c3df3e244ffd64610eb0cb3431f98889e72e864590191692b8857675afd45b6cc31374888b40183720e1985d811098738b63a823bc7716f9ce94ec70738d7f5228199bb78b811ea912500c71e1cd93c955c0049519ffa8b523a7861b6b2a3dce97d82449b00b8961877488b50542221ba79aaa0d33b3a47025acbe47998952b08e27ac2fbce08d6bdac7b6990297504194bc0304871472cf3cb952d439646aa86c47986d160afd7f401c70bb200e6182f91872812c551e17ea8438ae4236cdd743159802b034443e8d7ba0a249b312ac91981927440cb0bdc8e4615974bd2450161614068206bdac3c2e69eea0912f8a4ca1af21ac4c033a6076e6d13039c97ca930599aa12b93d58c09d663de14158b72ba0803a1b7917b71284802340422310babf6572aec23ae33a54a1f9c65dcb70821393b95178ba5acbc0756dd8a02f8afd156dc73958bab2f2c0d24c2436f9f00b7267da9f8b2678c14626ec +result: pass +ciphertext: 137f6e52087c3672ca92c3eec5ddd9e4915b42239efac9fb1c21267e62f4421c1b10de7e404dace358d8403d7662d7079abb4ee0eae1ef912b84152c35c190b48ae0ddb4e8bbfc9d94ce328339ed810384bd7006f07c6b65a68cb10eecdc10de690f8885589f7d7269c659d54145d6a99b9d1ac8b6a381b3c9df8265a904781bd2a8aa5e4c44c5d68525a01c3915955b2c0a8412040cd371977caff50edd1bbc643caece877270385c211cb0d9a4436fd0d0368ba885d8121dd6db0a96175e52918360435d1ea75f9331426aeb8b870344a7e628ffe5115d731ac46238868a61f0a3939c359cda3cfdc4f853813f87036d32e36c94659c42e7e57455b6f0cf72dd6d0cfe6706003c9f2935c5f2f99aacdf881fa458003c61e9ace8c849070ea67349f23fcf91fd2a13cad14d8fbbffd0a66e93e1c427276d541bf8a763e435c17c5d0b40a53d95830b2e266352a92a7156c121f5875187c0f341b236f63ac8ed3aa9f7c04decdbc422723b360348038f44bb9c5e1c7c9a21ba4405ba57dff045c2393c246a430a04260db49648bfbf9da7c3ce14a2a47749b9ab028313d1524e085d90faba17e5958448c20c1c3b4514d83f47503e1de6c9422a4ecf5332645fffac205b8c46d8d0123d6a889f48cce238546a48b526064d638c12752137a4e0a9733cd4aca910d40dfac757080684500edf82e678191f1031f6abbe51a6ac0292755db514feab858bb919d4bc2dea14d1f1c3875b249442ee3d1959bd9ab288a01596f490c47b13fe8469c282e8233a6a7e4ffb48a4cb754ab47be470b6e837db29886f45821806b64824e1196707f28a27f5b09286e711688884f8be172ea0f3dc0f22f8c554ffb181d135cde9ea3b9cb984a9403f459d98b81aee62b9f259a0b855abf605e59e5ef2506fceba5699f4511284886065feddbcef499a5ba735049ba2c3fe812cd741bd4cee6a9e7f4c7e27fa031d4ed8588bafa9e1a724ad3d442b821c4e197d0e0fcf65b24e9a3fb4f22ce221346d811c304bd4b2fd91529c722ab08c19a9b06212f78edf8e61fdc7ac463696fd2b9bdc9aa14e1033523c0ee5b5043634a99f027e2155c6d8e7a489ca5bb6faed913a8211df109df805d07d5bac69f1c42665f54726d46d189f9846b6f15cc5b8a9d3dca6dec03973f54c43d9e97a68f4f56ac4d68280e061ed8b56372cd9f58806d142dcd6220d07bc12b6ba8f19a7196f270587190e1400ea90b91f3f9dd1853e1d1919d98d763f86f82e2eb1915bd8ae55f0e70df6e45bca23bc49af9631825da5c5e9179dc270331fa4f2b148e1b6358e88f83ffc464bb715fcffad465cb8ff1b893a6f985ba181495b43282dbb99b6f7c00ac74eafd2588d12262a21a3b1da5f642f686b7df77484f0486a5a88634e2bbc1ca1ee719a47481e76b5d0ebbae155985d14128164ae3881b0e626e8a96c70ead4822ef68402a7fe703103b8dc134c89fee2c4fac3bbeef7ddee0c8d5dcfb7336adbfb36df18c2632b2582db285d100b4501c75cffbabfe4 +shared_secret: 41e078d0d0c4fe5df5c6683171d5c1c3f1ef152c4945f9cb299f74278ce4cc4f + +# Official test vector 5, seed: "aa93649193c2c5985acf8f9e6ac50c36ae16a2526d7c684f7a3bb4abcd7b6ff790e82badce89bc7380d66251f97aaaaa" +entropy: 8a95d71228acaa5f9ae6f9d9ca8ae55fde296463b41083a39e833e37c4c90f88 +public_key = 317771b7e77466880e15c76a39356cb459b78e6821e69b2f0f817b236a04a7cb834a743f830934043856e0dcc376730b3afca17aab6ae2c59ebbd57f52d84cb107b6c5e536edc31e57c3cd404a618700aa1dd87e43d92d4e601ca8d998c927451e9205429c643b251e8307553fc755dcc06d9003c35c310780b31ecdb05764e3c479913063978143fb9a462b011446394a287888a61f4f57b6c0548718faacecfa6571381ce25c2d10c27386cc255086419275a3ca59bfcbec4c63e5b487c41661520495e7b54b9641a1e16dddba5794a42d42e86b0007444cba4db161c6547c69a9cc18b2923b2a388710578043b77513173f6eb0190854bd6cd2612d1048e79435eb17680e99bb932c232b1ac298591d98a881696b3a46e117bc4a50565ba52e4704eb1c23c057894878434c61789ee8a594f94ac55748e2b111170c391b6b8403099928a2c60a42383ce5cea5880701aa5b60e4c789c759c12703d946416ed316e48c62603920e2f640a347a2f305602f4138aa82b78cd08fa071ba1b9711a333a3d22244dad09aac8058592b1edf9193291c8854b18003c6cfea4a8728e7ab378905e3d04349fa5e4ed9baa17b41b0a7189ab5cd0e352f174a51f3518badfa7df523bfcb64c43fac3bc5b6532bf4ca91e245e1e61a815c865bc7cf3cf87891eb1234a49b624c0e1169c400cac05359b6a15c9f3201b21f02c3ff0a4b94980757688ae0c48d0ac5c3fb650ddc38a8167c87c51cabd1698f8e3654380cbc8819599699615ef5495efba00a7a2c805c1d49552183b37bdb782f652682e02b7e26893fd97b8a7025affc7062e99557751a6a1da7828d7a003d0c62c8d006fac92589594fd729c17f38c5c83bacfe5bb8add8c1749a7550765f872c22e3e8be9db4c50a915fec511c31900890192861366d9177612d731f1912ccef5534248408c31605ed8960a612234cc23c94275a0b77302f0b82b4d121bae15539c3111b9a21031314076199849302f4274fc54b284d95903cb543902aaa5cd39d034304ee86814c6119f7fbc17d35c68b151e9048434973ae06030cff855291c71d58740ea00254ed926ab8835234490bad7b51eab118accb66f4a6a172c9a26717376e678771b44d9d452dc93988b9c9b5af98907b17487bca1397b8547ac8382f8a28a78a91b1b105f107200e839218a74d16000e90334ffc8709976b7fcdd4b742dc6bd2667ba6ac24dc510314f6b98dd711bd7a7169798874225627f2c7aad1bf37e97a4771542e8c7898fa0d8bf4c0fd91bf598580df6c0ce231a96368c8b8435f5507429006883fa88ee4e5791c2685f61c9247e72378478492ec90778c5fb8aa4a70e6cd48890bafeb05798c13795c58b62b5ba8f7c522e78365089ae735a796825d9ea8c572a6544aea86b2e08ea9748cf6b5717103a6d1c02f5d87a5e1aa94beda8691d454de0b547e951afe05061399804bfb32eb7b0857b8851810ba48e92518ba798dd54135a74419217a687620a0c665a050318e3672cd616f6d41618005cba6ea47faec63daba709acc2489417fea39b74ca2b13d4a60ab61ba89b2cdf0912757e08214b0671d8867cd2794fb30a8983b410f149ba2ca7134d00f83ccc8d1d4e2f1e83c9d8d4b95e33927f84741e362d80c3ce5833b7f2498d841f4c7e0 +result: pass +ciphertext: e5c184d0e6eaa03a8e46165eaa4ac0f9ba855636b6ef0900ed320d1cf734f2964662080c1b756c073874d531dfb937b298375f594ea69298c3f7c894cbbdabebf99f5f0c9279df4a60fd58e0612d5146f7da7f708938b2297a75263af995393341b5db7d1ca67ed16571bc479cda54677205833b79cdf8a935be6d097996cf5329c90a1302c9a9b3d6fdcb28b725d8ced9e6fcbb939af5105a298b6801a4670a647a7982227e0e841bcf8d7b8e5e473f534328b5b47ff53a5ef4abd2e899b401887ab69e4290e2e59f0943756584612b7e508e3b270313f5db48a92b7020b9875b5ac8f95e439c376075f63a840a8c9ae9f379ff838eeef0ef6efaeae941ee2d9a74dc79237409e44a4cb994f59605a52f9ae85a350385dbf421582aac40cbf2a21b5a1157950d1993d037c0dfa54753232820cf3478aee60e7555a643dc34ba68078b2794874873b01e4842eb4e9bebdb3ef8c4d224d3703522bf76d5f92b6438914656b4f58b94f1ac72dd2b9aff350209128dc0c707c89dbfaae0cd6e7d0fbfb38e88b25ad92b3aa2f41f6b09a003882c6e1c857dec8d0c0c1a884bb176ca5a8cfa152be28cdf11ac95654118b355d8a0ce321f7e0baa42a7e1391292af8557d5017b76db0b320be34a129b0f6ad0aa56b1af43c49c74897ed0da8f9a5455c84340f5b929218c7f2b0891b5e81dead1d9148a9dce9397674085d7ab3735a199a0c0def3bdf917247b5f287d82838bc00cf7babeb56b00b9c737f7f470374769ab3a26b318e964e5cfe49e54845c99c64dc81133aadd30f0b1fa7bd44a55449383be1495b13e83074b4ad3857095270e2c77d2a516d021dc55f900d54d99f7720e4f696b9c12afa2cf990a6a4f41f32e3be28fba5d4b3dd8b22ee160f831886551798cdabb447b08f5286c4617f67e65485732a09039d1ac07d5e54b8e06ddd8ac1d5160fb6dcb6366b22154b144a59cd3ef76fceabed5ea7fa81a6b5b36590584c11ad304ca82c2ff2c1775c6459073f75055680dbbe80ead7e6bcaf4867d6251b6b75597b9b467d3077272f1034084d307731e5fbea1c40e2d5326e4581bdc3387e2f12c9d7fb31438c002483bb7854d3e3fcf2b80fe44a2129fa1de3fc475c64f6ff0c1722b801201b0b810c94004bbe43f7bf0f56f1b0be5268244efbdb3b8adc85b128f17ce218f01b5a22f41349114b45e1216039ac03de43d067ec7d033df560bce0f8f63360263d8b001963dc824ab6efdcc04406dd70f9b4dee6c129c512ae3e6a45b48344863298c53a9b80e514b9c14bf85c2f76c0ae28a4122e6134259763a6ea7133a594305f3178008d1e9502f070f1e1abd66559a5dfb5b951bde39d8dc444f79de7e548f700c81f5c0e4e419b085bc0bfd14c6f01f342823263a314c834f220dbc4993d29e2ea64653eab1ad2c7a556840a9fb01dfb02b6d37fb4d872714db07e8dcf88a70a834b72902b633ea7934b662cde95430c80967d94af21bf10d622e20a30d0af2ec18bec74e1d8d9d8af57d0031607c9c7a5a +shared_secret: 7da491b5623a43ae17160a54e45e8328453cfe1acc692a1e300906ebd2a1d9b2 + +# Official test vector 6, seed: "2e014dc7c2696b9f6d4af555cba4b931b34863ff60e2341d4fdfe472fef2fe2c33e0813fc5cafde4e30277fe522a9049" +entropy: 90d79d75d0bbb8921cf70d46bab497022a8e750efdc99e5f1bae653275441c7b +public_key = 611425c6bb62e8f60764db8466613486836fa07896314a6ea13a56e2f467483848c3451602e4c6ceb2cadf378d85654a63024c5e1aa3ba242136e5302881274c1316cb26004a549b19db794fac3f7c454fd8223f560636fa5acb56f0611911954131ad94ac88272b6cf4c89fa0635a7a838c38c92e1d640955453ea44ab5a6a0868cb9c071e51705e24a1cb1c4c9d8c59082757fc5cf95b17ff0064c0c47b021b244de30aeda11251fb170efb279154515b69cba0400875c78c1844503d411521ad54c651a738bc32da29ccfe992bbdd937827c6503735116ab5079dc04006fca98a66acb6519187fca7ca935c090bb8d31b6062b34513f01e157976183a1873db1c9e878a3eb37b650205ea5245fcb614887a8def4bb44b89cbd3c221e1a9b587a8c4a50633a9f386e6aa43e360649da46ab688116e01aa75943ce061b362d74ea824870a94cdf84b38d809bea8c994d2e10057b78ea6685fee45548e6bb681a32f5346ad5467558fe6c345e6258175a84edcb32b378ac3bb24e85739681234c0f1633c334df7d853c9d00dbde8a23d463289423536a44bfab94f2c76c113fcb086e5c4cf40193220c40b509065cc3ae5c861212b898699ce1c224a04a77bf165b0bb057c30d9cca16b4dc8128e7c197a4999372906cbf38386d66c27d1e36e8d504613c36d8f655d49750a72509f32f09580fa4518d9a34eb63ba76c063af7cacf158607890380c034e2429e49125c3f543c77c3066c374a43d24a7eea2608a12b845a4c42f7354699bb169bc720b175ce7c0d6e63843f543c0a84162e388fc21c313b3a5902430cab0a61d3e3aea195b13cec41e38539f41c6e22d63f5d60825d7182ecb31dc8a0a82a952b765c0eb279b75d20be877b8fb8fbc290f56efcf5240779bd2c639a67476fae730be123236ea68e4afa9d3200d0db30b7a771bb97fc1667e94cff70bd02f32d6b0b19548b61bff4a43fa5cb73ea11483b23b1394ad5812c8875002be49510656794033fb3150c7e13611126afa639355de9c04de445eb5c7430287815771a937707e88b3c8f42587f30baef55aeb7a392c14a4dc858abb9d537f8043c64100aeee6a597315bcdb65528286e0fc7ad5a59a066725cc965c562acb9d6330f28220bfb35b21cbb4321fbb556449c5e1108c46744e48c578937cc12c20df49b79ce96aea9b231892597b8a57683c495a9729bd7b969f34899116104abb00ee4049ccbc7c37ea5868ba5c2f4a3934d6599ceec340d6a488fc28d84ba371456caf9c52da9980904e253e54332505cb9322b1ce3c1904c739433d99fdb35461d4b3f949c8734904974c5cb7dd54531e86e7f9a69b8c78e137a77c0eb6b1ff468d0b2973819ca6a69b1e640af8f3b35af45183f5284425393472b3b7674503a86592947621dac8352a64427d313d51716ed6cc78bd85412d97561c910f31923361485d138b80585cf2a59a04896b3bd8c7ec2923ccd290c962c343561226a076e7e13a0d51233b68062d0e02512aa96fd701ecb80b7f45b210311246bfb594c5059f25c1167094f966c7d88da77ba3a71d186936f6007cb7cb4941c599103792edc82e3708e4aa9706da72ced51924d19ba561843c3a70f3f91b4ff04987cc4a914fc6ad33290975bc0b534d415efbe43f7d4a4b917723a +result: pass +ciphertext: f2c88dfae11fef0a6f91126673e6f27bf378e78c4e3f96a8f7cfb1a81986926e1d74d0c7b47d9c2454941e83476abf9d9a7e47c46dd39f9cea1148dd5cd086ef9a4431864541d88e3faf97f272d98ff861382e007b4c84ad5a6cbfb01e89f6f869e6e04cc1bc86eaa782b6f0fd4319ce74eadd18b5d911b8d0adabbcc45f92c1d78e4bd21662049bf7c85145d180ebf1ba5ea49a216a1c8130bfb4e4f7a3a4490735dd4fd9db3c7b2e0b1191e44c4fbec765ebb6dc058ebbf08577f24ab2b7f1809baf9b16c5b63b5f63d72923140e477c24990028f2715a28375536d985d7914bdbdbedb02b1696e4e7dd95acd7572b579543e4cdcc2e2d66e64356a07c9a93e567b06465a50fc4bcb899333000d9ace41c7abdb06bfb81d553a0e743a8f36d0d30f675934dae148ff00b96951738d679cbd8b15d0bade8eba5244abcd3bffdab5d03b91f4383e498e8984f1795569889877f2a6920a02b9b741602d84766459895f988b31b678ada1593429636002a67eba87cd0a2f627ba249699e2cdff686c03874dd57f00beab2db22360a31ad7496c510f5c91842aeee3e432826e9b124c3bff3a6ed01f0f8f576bde8c1c81eec09082b94615086024ee3aff8ff87972ec80a0fd319218d8436b34b099987fd4e0f8bb9326c32f48b7c9a4e30b9f24845401de87d212d2bc26f0fe00d1f6273f3af8fecf9e45806f236657e63615ce16949d7ef40239b637dc01bfa604f7c296ce62f9b251808abe8b97e0de81b0962982936ddb9059008d38a1f5f178cc1f08c65b703f78b8f6caa4b436e48de6bdb76ad0cb38ca6a11a1e160cf15d443d2daa201ca450b01e79779d1f7bcf8b88ff031fb815dc2bb3018b609d6249b4887e276cf0abceec216ed529484842a26c91a1b6b3d36bb237c098c90952230a2efa628dd30b232eefb0727a20f088905cb183fd65f443bcbb1b61fd0e6b83068bbc144e5754a0c09bff18c7d20562c1d0afaee00c78dc0efcb0e7890afe8c22751ac7c10693681491e09371d0d8d05778c8152892958ea0790e18c8bd00d8e06f444fc46828d43997185476dac9005683c51eb483ff552028a7638e6a6d08d71ed5c696217cf47a79ca6b0c6194f1ae9b94f2d35c2fbc94495c557e59bb70b0126aa6c495f42f8a5f7eef82d8b87b9ba582956eae20501ff7902c4f9e451aca0ebd84c20c678b149d4f924be9a3953c3ce85e985d53ae3de46bb99cc9ad4f6eac2de214c0bd5ca21b1e8f3992e96ba1bbbc19608e160bc059a0dd1be05cbd41ca51d1118d6d1f2c83919b69cb051a3f01a3cad27b9326e793c69fc13f4c787a85087907fc8a48cd988f0796d384af60029c1ccae91a1824b676514e5d3f4ecbc2a372c9d953bc7d5ab900efb0476f18170fc0b01ec4c17797056752bb912b06d0e14113e6e961e85f758bdb11eb94b85232748a7f1d75edc6f0123b2f4a89c8778cf7768abac61d73c40e8971e841994e69ee80ee4a456dc02f7cff2911c1e13d078b63928b2c59026808422745078b9c361 +shared_secret: eeba3c0571fa453fcd9f7f0d6baeb75d59ec9854c12846089d65bd8dadf9f6b0 + +# Official test vector 7, seed: "aefb28fdd34e0ab403a703b535296e3a545ca479c1d8148e2d501b3c8dd8b1034bd986f13f1a7b4671be769359fd2aab" +entropy: be8a32f97b9a8d596382c02fa2a0eeebc15c083e970ddaa4f2622b91d6718663 +public_key = 3790b3e85bb887d46ec144b4d8ec8bed82bddda538eea77d818c7081b3bfcec68d496035b71280b23985c6d9cb7580568286b405f937e99a8ac1fb28a927940c0a7cbd36290d130a1c23a42f3a437c6291dce36e39e8cf2ea8b9613c1fe7571ac74bcab99bc452b9c5829b586e5544e27432f06ba9c96869f5b1228a0a70fcf95212b0b2b84b45f29a49b6572483807543baa6e4f8b7b40119a5d483fd20224932a3af6869f00c8e9c6c5bf4c53dbe092d879bcd7843475a3110a559454a7375ac0418c37444a16a164acc751f56b2ac97a1158c76bb9976d750cd23761265d16473429c3da3b82eac213876c20d639bf5951e94d939985abd149b99c249445f4c9cd7421ddf21c536bc8fc2029e65d5c7de083296d88bdcf04e38d26dac500ad4457cecf8a795322f45997bcfea18ebf807e84c659937cde6d89fb490765ea9713b768ce05099e7386b4037b961a81edd79add8fb9f8ddb71ee56c349b453d2a3bf22c56730bac0ce19c4f961c008e03ed3928c7d068cb6512dba564855289bdcbc2f2b179dc7631b9372872d05c4e373577861a67eab16cba898beb2ab70c69447a156df0b36ef9c451931b4b7212c8a850799563cad55bc89fb3460f0c56ab434c5e9abe9363f1992577698af0058b54bb5b9a7b42e8d148d9dccab2d1a31d661018182ce207c036ff201a95b755e041f2e1623bef565b01a27d870046018cf65c8324fdca0dad64883da659826bf82721c3712700f435ea40c872b83935bf6cdccb41fe29c81e2210477babe0012cd635079d5932d42038c615a476ff35a523c7761d4560554c8ae0532e8d23a16912a804908411bab5fb96b9802737db82ca0d40c1a3b9913d81fc1330cee7504e2a056a994c4dc70768bc216f66921d93b81973b46352796d37b4f9009312aa957a51692ae8a65d514ab5bf7b46e0964a8f827adc51765384e8c35c900c4899ff30b1b53be227a39fd8b3acfea46bed8832c38555252b38cc5cf750221e3490ddcb80d0d73422ff47623282d273645c316181a36bf787ac90ec326d758ae71e5863c66b914db005655b1ebb057f8444e2689ad91a69150f71000ad7908897b4a3ba94c881c20271532a9653071cbd55669719b5c613abf45b3335d734b718779d51cc5162a91e4f2622a94469e09a41e8a9dbb3667312bc8d5ab7839374f689b32afa5a25de333126a49555909cb27002b18333a6a0d255b905e417eb8460d8f7566b12c99d2900794f4c0b78451777a3789c834c785274b65881bf055dc1875c6392dbea82811e49c34a3b2978468e10ab7fd91793b2856666a7c28473afbb467e60ba603230c5ef681af07c1779c6598a20e051254384467868c0b21ab7d89604153aa680611b767f19956a3b16229bc31fa3ca4315048b90f9f3252c23c02c92a6cfca28c5ad6adeb242c26023b8f76a914f888d39b59fdd1042502a68c0b416e6853e9cb5894253a129a1016108e44aa4257c2b547292642c3ab2c5abf1b5967c8fcb377eb91fef8c0d4daa3f2e04a0f869ff4bcc458f4c118a4b59715c6f3dc25a304b2fc9877d1aaa3af43a512a680f3e1bdaa90c816b95c339331f5fccdc969363977a7b9695dd6b9ba34809bb613862a0561ec25ce0d2dc86f262dc0ed164c2ad357a709eda919cda2c4f880 +result: pass +ciphertext: b2032dd82ec001fbc4dc819809e198168d1fe4344b0167bea72705c7502e9e562be51f265dd4237c1c315cf8d94fee5c62e9e5180399eb6a387297dffa5e8ad6403dd9a867c97e8240e458cd65ce2a7458104c66cc560c8da6ed08add3c1bdccedd9237fc2893a8f7a95b5ed0866675f81be19843f4e49386adc94cf8a75639d05be7a24bad56ad7425f0c93755835ab2f13c4055b841cbee776ef0167e20170119c034dd3d1307838d96a6072f1f040e26f67307dab2adaccd957541c7416148dd5401118b08ab5a0ebc679c575c9b60a766d9d39bf193f43207968d8c39900b8d8bc452411cb17a6bcd668545c183dba966a2bd777f25856a55593d86caf1c61fc15889b477bacbc790348d6f531f59b59205644cd6754016a05b484a1006ed5e5e113b360f516b1be680e45d70cd18d374a932e26ec41f7eba1869ca7d967c5d89c508d86b575f099a5d61260766defaa8676ecf1dee1ddfdac67bb641c4fb49d05deb7641740fa1a48d3daaae62f185eb157f33296a4ede459c736a909676fa8fe8ff4063006786d7ac07924c356ce78b883b03cd976980a475402d98e94d2e6dfacfca1af7e56f473597b4f2fababe7a7eb58a51e3b8ec5c39ec37a28fc088db7575995368fb0135446f82abbc1e6196bfa8996a9012ce7a44b152dbc6158f00c5e32dfe9e48e7ed67f1864fbbd6ca4d6a53729652dec8d714c765ea836a48b4f6065e3fd6ab90615d902d4c9e2f733129a5ecae9bb29363733f83c2d73e4814c0eb3fc2f0fe0a0da2a0cebaa60fade528f0ea6d3a49e08600d24ee820655fd727f896086df69597ba643b87df8b679dec1fd72b0e5707d84720e64d7d1e0af02caa04061d7cb9ecd1c254b2f28e1f7022c3c830bb5a20bac0031779f485978d4feb62956d616c627f7f4f8e38cdf6f411b2ff9de990fb8770cd8df8b031b5653c7025391ecd977818c463630494d25b7d44da52106138e798206eadccca7ed66f4b53a193d0cdeae21b65e84817fe3dbc1284a24e961daee2b022f575f4476e5fcf45b63c32db6439e6abf13dbdcd3965089947ef2243a5f907c3d95f1a53567b202074e5b945c23d06d203e3f4320c02fc569fa87ce1c837aef80fba4b3b2ffdd3cdad4ae7948374ec8c7c848cc82fb22f23bade2b52eda30698829e1c7ec56d6987dea2741344563043f93b20d029ec1c9fa0732a6e247e053796efe1753341102550b28ba9ac83becc5c34e5a648609a5fde17945c0b998e602f03a9f7904795607fd7202fc08beaf9a12bc6cff261e1ebb285784f41fc724efeb51727819e5e4af459fb1919ffd56a7cbebb9aa12591edaa69c73f3a94164229356b1eb282841d087139f5ef99e7abe632adecdf309337c50f0411f2b5f854e1c7529586c89127fa5c375c4749aa757b7061ff154e65046a39514eeab18faf003d39760a538a517f1350dc33ab94197a40539e8aa1279a3d38c221b28fb61705dfcc54eefa1f40b253b1873a8aa4c468887bcc67d315a753192b42af190021f7903 +shared_secret: 8bf57e5d1ce24e9942b1b3f456d184d4c0937b9b699e69c6524e93e140f39c90 + +# Official test vector 8, seed: "cbe5161e8de02dda7de204aeb0fbb4ca81344ba8c30fe357a4664e5d2988a03b64184d7dc69f8d367550e5fea0876d41" +entropy: da2cfaf69e25b2a89ff2557bbb6f69e01d8e2e7bb27a7a1ce7e40fead16f33b2 +public_key = 35775144c098e6756148a30e8ce75a67137ad2455860252b764c15823c08358c45ac820bbdc3525543a66a22854bcb8dd8e1c920a10f67e9c8d8495865b3bf16c39ab0a86cc231a521f42316f7bbe4d019616c167e88a40b4532b1ea688222a48150c6e24859edd0210ea54e4e80654b86abaaeb52a022742fccbb336921d5807d0769bb5674141fb791c6025ead44c79cf8c1fe80987086cda07546811471cebc7eb7e8a5c554a6cc0062bc6c0b10900a8ee95239f844d26527423c30f4a1be90e29424263663406debab5025e11f00e09c24058f8077cc2313842a5ac74bba5e26cb78c4f8557cd38dc67286d9d25b18f005fbfa852c5ac738f33c24e07b26d635a09a3e3d12c9eaf432a06c4cc88b15ee7c4258b279631a9756e5086145cc2adca624410d58db0def549d2c13caa2d80ed4a088531221e9881f16e39659c3425b31b4e5c0462df53375870c2360b984a881ade524777489b8a184304372464ac7099b6afa24a9545b3ad02ac8b9c968d0b4b6e991cc0a83550dc70dfbba36de192bdb2a2239672f011bc2924622ca6c2c7c4c334ea05db489ca290390e5a18bf18b564a037157006fb9131b35983a9bd285d66482863c0cc4270a32b13e1299328acc2dc4e1812f1522a88177e813a0e6b52f11573873fc512bd004eb31cbe1446a3b3518ae2253ed3204c3e3c36439ab128c322a0160a5b40a27f3ae6121333400b050d60e9fcabcbc82ca7fb1b1399715a23417691542441923750abec3607b47b380835191d6f790a7d08f00ab209a6ba608cc9cbdfc6c8f4cc194bb22c630ae48899a058bae66f3b0cb12a0d2e3209d995010644fae989eb94cae8128585933ad0f7282940606785c07e882031c08a20f4a194be008aae8ae5ce77c17505bb0854579712f7f5231d1c32301053e9ae2a1866b634949bcb4c6952fb78376fc91bbdac8fdf096d1d987db5c71e39371f894adff2a099cab93d5353ba013aef5c58796f906e7a434590181a793ca012a6610c912daca06903b719e384c827ac62e2b2590f82f29d00bfeb50d66815fe13085395663f722399c187cc2784198b028e585b305e6126f6a003b05aba2c0a87eec6b186623dbb37dad789f7e8ba7ce01a792366117c308601664d6b7ce64a03a03090f55c5b59e66545bc0c9a29a29d2eb89eeea017026c2a4b88ccd12c96816af697c5b5f1896d340a60729984857072234c71aa5c8fed44f05dc7defa39cf409b063e68bb28b3789344bce267db328542a5530222203d6d8858e51caeb8c913163a97c0759a1d1c3562288dcd48d164004b08a1c9eb76f956ba5a562a84182caa6417e237bbe4e09a5bacca54a32c76773c84c14401a348108b2cd83377f6470019af3591b7c65bb33833517ce53f7701c4b1b2db8665cf5259b6052e73b41ee2641e9c998df327f750c44dec00ad7bc0ee69992da9455c2b26e4c7605dddbb3ed942542fa5c255b4f9d037a4264939c3a26f8a817d9c21aa958677193c13a3b1b76619a66b2a0b351601a1750ff9b78cd4506e1c19f04671fce65c5c34a6e8141628dd696b3d5b962497ed3433bcd707537ac4715a7192687826fac2fc0a60fcde02f78e69dd3b996b937332ad2161db433ef850b4c8a5bc8a48556a927ce345679d1595b8a12a0e85dc5da +result: pass +ciphertext: 9dbdea90800c59e1d99410f1addae674dcb4c432b65100834cf0bba07cbef7edb65a2ec31e8de08ba9a4815f004927ff973caaf09d359700caaa7f45334b00d4ad36e8ed5d88e12c7b3297eb2c0c40b625dea0520ba4e1dee5905cf37aef7fb7afa89f0ada61d642d12c008af944677eda3c5a53936bdf6810e16087351658852898b87f5baefb5c145dcd293c621affb8bee2756a74aa1b21b68c2f45cc6dfbe807b361b108af0ec7c878bd342f6fdcf4045dc70e14ed394ff4b39b453b0fec567b5ad743064650869e10ac49a9c18d39a6030707186d5ef0207f8fe92a5546fb4d32cbe6df84b3a7f9b6bbca8a86f87012ed69847913afd448779376f507e8366bebaa137474a46b9ee67bb0795ed780e70f6b67fe931ee0f2865148b2ab8fc58ce52d516df0854618cd97b07c5b1fb2730e500a03dbb633fbba1f49883663c6402066304ee8b34174be6a24c075181af5f06978ec21745fc4501da8409aade82dfbcb9a480377d25b3a6e7aded64660567918a0b3860bc5d71d2927a7289aefa9f5cedb16090764b7e245f31f745d8c68cb60301bbe78f1839dcd2eb0fa0ab78f4298dfefef779242b0fd3ba730a7771bb52c549525152c002a21cd5a221543ba05792aefd6335ae8f5da830452be90fc46c151d656c949f051e911c7d0dce2689f31eb58ecfa3f7a1135a2fa548b323c59223c6abd3a9f3101ff19a67d4746a20b95ddd31f30e4a650c6f0065872372ddd26885a41e43a3e3d7a830aecbc19c43911cbaaef663524945a694d514beebff95f670dd2709e859404fcbb0c3626177605d2a544745f16248cd2dc1c4943be30c9b907012276bbbcc978ba2a0d9d1d247743b7872639183aba6fa37edd6f0dc9cf7c1e8b614517573bc3dc88886dc3fe8e74bb1035aef74016f03102df50a57e9d4c212fb58623fd630df87191163c7643dd76ad27f23bc5801e6af3311aae5a6cf2e02721a072ade78648342d662f5d15cbccd03a1f9cdc35c9fee3b27843c2f819d246cfdea1f9b6807f4873bbde71fcbbb361b2d17dfb699859b26403a25ac45f3ac9187272a78175ed4a9d55047065b6d59698f296f92cad6f361058f400fa9c0770a762a711657da59c020096b5f8c235a2a74895cba8d9d380004ce35ddee9daec03f24fa6755c969fd007031ea210c9c1e542319e1fe129cf5a20a5f3c039ad502f2bae423abe0f9db88edd1db6253b972c92fa65b749aa6bd48e621dd13eac98100a1d8c63d84830fda8e482d69497f49a738a3483d081cf18dad0c62755840828b00bf09d1ba51211dd623f14d7ba83b45a218603cd203d5016725c98a36dc1f1a87a21b83fa70c47137cf2f15b84096ec817e417347a395836bbbf095ef6b049889e88aed5496c36780cb0c2cd3006054c4fa03e3177491183e72180c916e50b41d9db580a4e1101e158e839720563cc3a63bb35491152bdbe8a710bf4fe27f054bf6bf51b22ffc72629711c5486a3c44786f60fd04a4deb2bfda694ff797b701a57c5ba38f9b5b8 +shared_secret: 2f714d31bbc778518e2b67d264065d9731c12149cf931211e649addd6daf0b92 + +# Official test vector 9, seed: "b4663a7a9883386a2ae4cbd93787e247bf26087e3826d1b8dbeb679e49c0bb286e114f0e9f42f61f63dec42b4f974846" +entropy: 511c2ab40782322c06111e144e505328c4e5bfc890a5980a2bbc44aeda4c738b +public_key = 023753735c1bba67bbfd117911d0be47b827ed9773e4d50d8d11a5b6481357473ae2a766156b9a4e74169a1b3cd0bcb90eebc31f587d886accf3027c8f6620aee70741c403e4a72d4bba51af5b1362180158fa5867d25168871d599b04819635bbf096c4980cc336267ac6b956bc861e0a9864766a18d4b8b9ea61a0573fe60a5ce58a87cfa2974cf17d4f599673137dbc662eee9706ad9a85d780a911c209644980cea134545375c031b8e1082b4c201ea83877dcd7158435ae34d52376816719070d76c0683e0c4422750a1959932e88562ebc932bb7ae688c09cb703c6e567e6d898b6e135f483290da271d7ef16b15d12d4e0872ccb05130f52cdef878ea83768ad44885e5a2dd6b2a94493ca519c14efa09e9cc0739354cccb3850cb0c4b504c2eabb1128f55bccdc17c534b5e68b94526aa46888ae970372ecd49a7f03171872633e78997b51ca867852e638215be32eb2fb832c42038624035de54d7f4938ab78210c47bbbc931c336917c9d2a0d58454ded14fc7fcc6f5a97a6c3a5649689286f0ced68963cf24a05e9851fe1277fed36812e5984290701d5bbf138ab76f32b6043853415790a540878c3bb297b6bc7b000036007d8dcc7d32e6b7544c3225c2ca861052dd65c8f1d103103959ed0753e81258ec3770360aa924357315c18b33aa12ca06b24f1c59aad1b4ebc58f3f75b77c1b07bcb9a23fb0019de06109050b0ce30e8d6809c8a0ca70eb56e366033841ac39a6a198c5c105c85899e6403781c72ab30bf1d5917035b9fe50b081b6cc6103b72d423237189c583c702f7768fe43c182075a48828d041178e6a616340178aba89be3418c4e968f14b9396574b370f1c7d2858a1fd78b5351213b7c0a7e05382d0217457ba27a344546e197b22256b3f031c9e6b65ff377be25b6953a4dbc9a6e9aeb3b08c01358e2bcacec80033990f282b0bda655951a2b0ab83ef4459ac56a76af2b2d2669c0239496610a4274c9b3e5e998ac948b3e7427c8b380c1077480789b008054373a7fc65080f3772d1f6626e345bb417c9fbd97add68640dc12028258970cba5deaaaa32c7b022b0183c89b3e1be25606b3109ef88c9f07180c110703153a247981b5b465318abcd0a78ad1bcaa15b07edb66bd77a14b23e84afa6500bdf15b588009f05925a2fb430b0629bb4c2057f8a231760d9255746781c83ce932afe10b8602a80fc1a98c694e80333790b59e67722a7bcc2fcd9b61a56a5a8ea6b85b5861b44b521cb0b6adfa9c84f624ad499c0664aa97270d1a0209897569a64650c0a9b2cac1879e671d9f0413be9621b415641ed645fad52e2ce49f5a3bbe49655649a62baeb5634e50807f737dcef63a7fe0c5d2f573b9bc5914b97f28691f49045ec87767eef405c3b3c8c6089e03268a5f0c530f1682c4c022e3804ade91c20a0793265a45be711a607465709a24dee763ac192d0d57626561c3a6092f7777c8dba75516c39fb49c2353157aaff0787be318ce2c7385101e4d23c043742b9c5ba0d96419e192c20bd426de458585e11aa4d5c8315bbfba129a446c80b726060be07458991e973a394f163e54383d14d420ae0b4746a4b891d092db39b8e1c708768046cb0e3ca324d417302e861358385229492a291da3d601a3f41d29a75becb44d66 +result: pass +ciphertext: 253b79d4c00753c7e617c2d0f419c63f496505e5d1787e2f30b58ffe0ec7d22999e50f1c5e6340eebbf4c08e441dc6569f5871e855e1e6db8f2554c205147d939068da6886fd9f0a6bf6a3b267cf7b50369a3199b73e2f87bac62e79ffc8847872974d5228c2f73413bad09e13bb4caa49624b96fb1cd7b8e4f16abaf591cc91693f014dbf3b9157af87644e45ee7c77ae0a3f8df413845ef65856219e53ce32cd2d6484b4ec97818b00a766924f05111b0d26fd58fa2c1d8de8f9612d31d68bbb3783291c6e28e5f13a5e93078564ffaf254362e52334da424cd82dd608d082074c2f31e581950db11f2921efd8e878ae591e10045469eb24e29f6e6c6d3e025c08855976c69f5b3d9c55ec4d7c6ffde8be339b75dad2cf924e113af854f0467ce7e639501b52000b0ecdd6ef38f6c84e1b0fcf980ddf3b13a9fa02227ccd41c28c8d74b8eefd7f4457df6ecb1c7a9c48dad6b8696d10aafa08ce0a5c12ef12696d50296395b5e88de5dff0cda475b989419bf14f745ba5c0a50286bc437d538e4049c6ce27e6b57d11891e85af7d2627fa594462ec09d988f8de48ee4f0dd2353928cfe0930745b7c591badd31a946e1497ad7dac6738f290ddccaded623117379556fd2e4d9d9a351cfa44d684c84878b307cd760583637eea8847b35a9d119ce9a30cc5d717be934480fdebeda223bb6c188b16827cafa4390adc9e50b52458411b931a540dd3596f1aaf2980097e0da5390803474fc5b1497ea0d22fe346fc3efaefe9285954c82439beefc0134775c2708695ecc7033fe80bb27d8917374b347d22ad56c7117459148bba9d37c5c9de61f2f78336b2fc3878232bc8c9b2ebd5428296008ce5f4ae86e08dd614bc1dcabd667037748310e3a30528613449d8229da41b03723719faed932b886f4b4de92d236a2248d0cefd3c56b5b9d15746b39ddb98baab417ab393d00e55fda4e83c954b2dcd0d0b2ed6314a9169e2dc7c7f47b2935d43a82239e7324244d3c42c3596a45c91b5c950a92fc250f9cdc11bdbba455de56810904e4991f7646fbe1d5dd503ae7dd13cc943a6791aa994748050cb59668e41c7c273838c2f294074a98bd0c1b865c3ac9d7730655cf304d6f00e234dcf51ff952caa586ad7dcb97a27a13b48d5a5b0067a21e73bb8720176013525182d35277fbd5f01aa928d478f0080055f2efcd9d8075f8cbf1c6464af59554361e9da4840066717b88726847b952a49073805a62e8f232a954fb7bcac13e1b2a444c4cfedeaee714c76359ffebe134674e3624207234bd5ea682477981c2b083396d1d33ed90dfc30245831207a38172a8826b9e608c24931d1e64a348f7b2b1511f3beb9f26b38dd96877d210c3484bff64dfac6fef55c250016bd8d427121d0eed2259b59b33f7a72015b35bddc94a473aa5601500483e55c29213023d095c26a06dd0647019f9d0057f64a638e63677cd1ab34ecf9d5f31e801a31c836fac22462c2bd520e5a42e8e0cbe2b6bbb7bcf21224215638ce5b46a2720 +shared_secret: f2c29a0a4782d83f2073c7c37d90556b1a005f072f94063d2db8114430f36c8d + +# Official test vector 10, seed: "980d0ba7c8f8b23d0e948a6029ff2659810ea1360064663a8994d0333c8543ee5ff5d6d5c9acf446e61dc464f792b9d3" +entropy: dca92dbec9b260dd97e8886f876862d6effc3b91fcf3fbc986cf56ab93ae79a2 +public_key = 87fca4992854f318a4dd4188f7f334d83a3fe0d5709e89b4ac382e9873baf2525afb10a2785c5ad09c4b28b311b4579a79f06fbc91378109271383ab1ef7169385aa2e78b70d435bdb604494a246be23b1f26874ac9165ab451355f59686a33fc6cb78464cbd98021ad69c1ed12511ef99428e3b3685380dc2b16c0ab5cf46425984702e70fca396140a95e2c1bbeb245572049df3a4192a420fa52bda254fd55186aa960669f7ae2d69954aba444fb9c6b6cbc42b5ba82e262957089c76f48ba7362d6865259c321083c464bdc992bda9635cbc88ea89726a268a34d5cf1eb9aad5347350f67d1fea925f5677e393984818053eacace1844fc52b43d408761c385cb5491645696339ba086bc733c547546e540ead9b1a7942a0316cb635a856836075d3a87b84b1944a5587cb33c653e44b5bd764f6f8b06aa8688afa0526188fbba82707a326817087ea807e2ae51071d5badc027ddf781483d906259c30ee410b69060e4f47222481cf9dbb2075f330e4cca839b093668b82c02680c236167f3621921b863cab9a42e420a050986d481cabb873b6c19fa34b7e21bc6c029598daa77e30177357ba8b0e7696b692116a97ae2f535cb5208c93611ef5e952e76417fb974879337874f3c56d47a0d695797e1313e2fb7c3c6b2c32167f7faa9f10d18d512865f6a453e3e37c5bfa100631863b4a5f4b6c957eeca3bef28f62f98336c05770e001d8fc4f595921826cbad9825a76048aef2b4d97cb354784b4b6768377342685f87142ab06a67477b66a9457c48a2f779e0872cabed62d6e73278baa3406922f8ff5465af790e02310c9b8bf6e1b2987ca6521c55bbadb249ecc26afb244029312960a55fa45b448397264aa03530b9b56643a0d7cb9a73589955631883aba865c4d34fc5f5a6b8d596cb2c4db2b740645eb0a29647089ea2bc8a92bad95c15f52f5a2d24431d83ac4e701210c5b0ba3f31bd0086e47ab3f7984363ba00041c082d33064f1b27ff26958b85c46612c6556561a2e40600ae14fa70b4c1a81109fa6822c01d0c2786f0e17cf198009349704159866e557947b81928feb459b2337f3dbca2c82162107b5e34aa202b893c103ba5cf9b4580107c1f36b6ffb9ac34c2cee189571dc7f411349ad112d20f35a740c216ff98175563599d3cf6224ba230c2b2f087525059f9ab5b80f63110719972156aa30148bfe4c907b214f683c56a38a146e1c21e688c44f40bca8d4a87d3011bf64725360478359ace455c5e395625c95cc84ea3f0d004b2e3a4a12180a1463a234c4912f00be8324906b3805151841a1f4a5595621d66ca8b1863b6ae4869b4c93e2c6c94fa6af25f37e992cbc7ad23f6a274bec8b537f89b996439b762b2faca39d1f743db79451cbcba86de02a9d8567d8977d12066a1817bd9fc2b1bda75b9d6c78a39bc851654008b266c45361dce46fb2b02e4894c784f0b017428db0ba8f1ae54f3e8050381a90bdb073c186aaa458a2e8c682b919741836397e3c59e0ab75dbdc48976a6a474969356a75e171bfb2ca76e968191d970cd9e43d2fb2843b2a5e9d24cf4b2ca947e01f0c129a763ba55b9b92260c21113c03c7002bc8c6a2c544af711c18030ca984dc584e0b0627b3d23abd9c4d9e5087bcae2bfe6581eb7f9cbf532ba6 +result: pass +ciphertext: fbdba17a3ec14cfc5f113b833e70ba6bee49a459173a7d71f6914316f042f06be6d31491389cb3d2661a460b91b84f5555d350e19f5725486b60f1e878143f20b6cfa3f9ad19c11d6cde78681efa2d75d9710a6721cc75cfbf8b104928796e5ad870a64688355654893a77ba7caa40ba960a55dc8dc524198b3a029cc9ed4ae7f54b36a0738affdcc523efd1d7b044dbbaf6149cfc90f548918d458e1ade92d771ace49df76798b12d91fab71c0699767b7d2a409e3a20e84c24402383acc9818a896e790d1f78703b16ac73f85d08f9467839f7d53b29696266f654eb5141477352545790b207d846ea55f175302b68973c992b18191bb8006834d249b3fa6175c33bf758215308c20f4606661a8ba0a9bfa754597e8bf794b2d2164d1d9f03da16d0aa8945752d65406c60e3569cc76a174854046c729d7a17de91a74442a80267db0e6ec081f4783c5ba636b73baadecad748792e3c4830ed4742e4820360d69a4ff732c277f06dea33fc765c07a77a9a909683e8c8e908a3a9ab4063ea3342ff69dc971ec4b5d89dc5a33b1e195cd648b6a0fb5d7ff1163624154c06ba0a8aee57bb8ba503160f5196d6fe274bca9b8e1ccd9b022f72bcaa92da257ead51409f547de03a6f1f643610ba9595be80428e1bd73e2125184cc6b9c97242a1f5bdf7253b29cbedac010d497c0512a56e4e501ef17619bd7ddfd929a09db29e3f4a5a3475729beeb6fc2bc9dc9c3aea7eadea3aa4e60590c2593f272f3157d257dad79e3dadc34aa8e740e139ece60e977952cefc808a11d530a22a10bdf00332a4fc43e4e31aafb686403b8f7883d580d0e46fe8c1c95e4c791038718fff25bb7563aa62d6245bc263f6fe0ef8ab63cc3cf8c47cab5e6147a0d8ed990f32e8abb2a79292cf85e5b269040144c47f824331d5446d30729b00bcee6861eb9f5cdaf901f64602dac1dda268b992ff5427fab223c223f0657177f7f0babbd161bd7027b27cb12798bc3668fd27c01f4d465312c3021ff559d9c930548f073bb7a84aac0d8ed509b3b0cb4a2bb4d44303aab75aa4987fae69d657a6c30ef1c82747455c3940d2fcbbb091ed6de1f0dd64740d2e21ac39e5ad22c5ecbd8340e7afed3445bcc41c92e938fda044f4e9cb145f0d5a86c87428ad01c3fc5280c273e6883c4889139a343155aac49dd257a13e3491418b1b926ec8e1b78212a81e313a50c8fa9473cc00e05a414a2ea1e14292c3b72b5706a7753e0e439adb63a93e5905978d3486bd5dbe3834b5253086e15c57902276a3d6f405195c43f6c317aa7a3cc2ef21fe89f3a7b4660f9f4b6357d60a129e265bc708b60ec2a1fa4f44ed476ca7f540ed4495e8ee4df67d6476793402b732546143b639cfa186f37b1a612dab0619cfe083bee29d29f5094697ef1b6781445b01ae64369b738a20b9387087481efd84035fac494af47158509c64333ec412407a549a36bcfe6d5c15b1668b8570c75110daa1c93779962315e0eb0af8c056b031a787253525438bce41121026c0 +shared_secret: 13c99ded4db3e6618f5927d58c89afbe83c86a86ac2073421b2560b3f8be5aa3 + +# Official test vector 11, seed: "6c029462ca42ed520f10a579f52687101105e0b90c6e7bfa582a4c112b579d5ad0a0abd38f72abcfdcaaf5893a112bdc" +entropy: 57c170e691d7a914a901b9a11c62b8b569b3806427557a9dbac9faa720ec3641 +public_key = 0d40b119341d9e23062c693509304bac635f93f91bd48b362989751078ab995408ddf6787ceb3f99c6802aecb703581dc6979c4d405dbc80a985f991f31924383428d4f5a2cad4acb5f95408a3406ec53425f175651952f5b76acfe2a465b30c1d56ca0e53953dac0ee2da352a687441f45dae26b37ce8008a99308639999d325ba89585656a6d59f51d10e46f93d099490c2385788c994238ea1155ed22c96a5c5035a3488be1c29e345ebcf6b1b7288abe95c29b272a7817704bd31589a42b22053226a43329183f6160105ed05e73203d172354fa176d3fd084ce690a8b6a4cef4035a3e06bc6464e8c913b88a48c81e58dfb1267ec6c1462d93433193e50d1b2d3e3828e90b6a412c1c45668272307f4b8294f37b84857bdaac6190706ca31380533c30643fc319c866534562036b37e825462c8442641c7817650333fb02ed6a2bcd6c1ad0689001098af3657363aa1b689a20683044d15275d0fc3c9aa720c8c4c6212fa70095a2243232cdd0b0fbeaa1c8e7b45ffc2870efa9bf56c8ee86659a618a0a96c42acb48ae125af911558f7cb20c9cabc4554c8fa6c70e297625286456ee625afa756145c41373ab4fb59b2782b4a406115de4966d07629cf8cc2283b4307e6a058db3dee6413aad72f89a7c1ab4131d8ea9df020b033b1473d92c4d89aa84f044e429a43b4e22fbb693a694bba3e315e78475437387b78b33261d786288b20440c44138c84f5592bbe74c1c2ab01ccd1124394082319780b24c593149cf660946f75a930f0a8f93a50ed01b5276ba96ab6ce5f794e638697ceca94d80585ced04310612a3c6cad80dccab1c1cbf5e08b2bd6b7df8c4cde4c4507a56cc97b456e10050bdb3acd6a7e00c1742aa4710e1674c59a8240680d04b8829752332324490ed6139b550c7a832862b2c831d4093db2b256f702850bba03053fecac41a61734229b2dba3210eea0c1e8d9a54c915f54b32344296ea64855dca92ab81aacc9e73153617d8464852e8208904ace7b84509b2266f9fac55bf68378d98d3fbc0a468543a8944b9975637162a4d50c7fdeb479daa8ba43938333b897a12c224ed1c790f967b2d9708c6b67640ca9ddcc1562613c2904c6f3856d13d904cd3094965abf1ed32ce52b7dfe4429ee68a8a3ab03446376d6da1de56a7a7fd30688f513fadc5627619a99d191bd4c0ec8bc1933c00757ab3e1f5826677b5e9bec2b151058bd9a6b5d2285122c23466312559c89a634abc2a5a11324cebbda8d167880f6d59bc5fabcc23487eda84f3543386e0b8d25422d5051816315532d2120ea4723809509bcd0c2edc1c93c275ade244d4f5b27f73b0941820da0183ca2b7af8480c90243af6334b36af00bda4c1e5f50463b8c350923b4696b7eb733762d189c9eba08c09050a4946388d736ee73c62f47cdffe453776730e88531f07abdd8699e8bdc9f05bb12f275c453866d46519ce2a592a1052c1e0c6b8f093f53a057d6d1bcf759abea90883eea68c5344a0ae96cdad42f0e756070dbb496535b9e7325c02badae5533140b0d9e013c75013ffdebc855734aa9947f1ca4b879c35b32c862c933479d884b2c675d3e1bbd26391d7c429db547041502307d975aee26905f7fdeb44f418d3d1fb5b081a3b06f87691170917a1e9f3c2cdc +result: pass +ciphertext: ba4b796662f059b81f900442098ae7c3e5cd9c614f972d4237b2d968a3065ba203a31e13cc8c993eed58ada9b4f443b605ab5768cfa0f2f18d15a997ac911da943f27340c26082d9e2a14d5e1c7aa180d0409142b607383706b2ed5eb6ebf14cf2a18e8604d692d551ffb4cd6cee0b43648cd88a44e2735099de7bc95164a21173acb6ef167e00d16b7e16fe950614cb738e54eda7a50d6ad2579ed6bfaa65a9a84b9a7cc679e41b88093d42ec70683df65e568d5139561c3d4538c50946bd945c02d5272c5ca3d14482fe3c3b09d52ef42e0e521806cb8e902a7d7c25f6526d32e0ae2f585cfda19abf0364484b628669d92546eda69fc6a60845bc33c0454fa631bdd0630037e195e79bd0e0c0b998fb13dbcf55f2fe766f53cc740710f72c98156963b9e5c46a3da1430c00b05251455c984a9a28a5ec47aeca9f04563f21db0b5a4c058c6549082bbebe17542247c4b9642051c39ccaddf10bb0f9ea4a7331f7c7236f4d5664fe7bf04f5a4ba41bc954ca5424167b6501d82afe234b9bb61e22d6767a3342e8d380e9612685d5536e32dd26ac50f2658cad77660ded9f58fdbbd3db502a013ecd8c045cdec7732e225d5ba217dd9b98db1b4218a02931bde33115023d6bf1110f9f20e81acf521242ddc7d53b819ec0a78c3e4898dfeef5f1df1e75c5a5c208a29f4c5bbf40467559c492112652e8c742f9a4388a70fe499ec33f818a3e8e0822936c912f9f83a1b18010e3b1b2646dbe814f938abe76e2f21eb814a94f54b52704ca06c21c492a8eaae7fd263adc133ae4478fa32e3c0e9bafeb8021e3c79a1c695195fd4f089e1cce7ce6ca1d80de31f3810d012e538a39e4d1ef85c97aa1fd8f46b4774f687b9a803405dab5406d66a3979493a8aa3d49a1eb9c89b38086e154fee3b358d6b2ae9232e22af443268489cc44f2ad1536fb116c1906db03bfe9e8f0c79dc4b59fbdda7b1afd82ebb71f23a48d9d3910a2a728cf8ae1e9b62d56897e4e87037f4b79b07afab072248b7a8f67dc1940bdcf893cbff906871318304aa0e206bf30a16556773c656d206d85b3751bfba156065594bfa1a2c335cbe588d31648127e042a42430898bd6ec82e459612c6a354df1aa8819297ba49e40e97a74b177317bb76db3fd0f72ab9a62c6606c4633bf01153a64319959385aaa13a34dac6bedcd14d23c9319cee93a26dcef25ca7d082d99a0a9e2ab02c05fd2f316f8caffb0b72ffe656d6dd079372650b749d63847e29cf3401e59279bb276fdb0a4dcaefb217525b46ce9889281e4a4bcbacad327b160d833e17bf0b38c8c706854fa4f2e0dab16d33ad120d300e50c8f9a076fbbfe35c07753189b7d598764d24cf7f0a6aad0f0c63d36445cd62fa38989c215004f0f02a8a09a974619b208decfd60fc6a1ec781f426aa75e736c9ccb34dc98350f49e49b48430241f6798125110495d8bc79ffabbd3eb91040197124d6f80c9007d2631c8ab55fa5a98488a30ac84ac65a8c463fb49f8111f337231408daa73f96e +shared_secret: 83302cab48eb0832bd8df0db3fce81595754772e4c951c444a1b2ee9f58c48c1 + +# Official test vector 12, seed: "db00120937570d62331f4c3f19a10465231eff46465cdee336a0d46aa1e7493df80f18617f9ffd0476cf7784a403ef4f" +entropy: 6b5a14e1473abf5a33d44975ca2088bd8fa6fddcb3f80e8fd5c45b9d90c24a5c +public_key = 62032561926a6380b6d6d90aabc5617126aa509168eca264ad67c5cccc5320c138e4053b4376924e6cb250b3a61fea8689804ac3179588a29196e05d0efb6915b3526d945cfc183dafc40d46537d907a292cd63b950659ffaa57e280ade8c09dd80655fe45979b612a6c6b1e350ba0cf433552e80f58c79d91f5cbff0717f3161f83b3c59fcc021bb5cb1922b0fa3c29984bbfc3363333f561dcb99395561590409fd7b56bb7db88e4162a61f8a81ca6b55af485d9b06645c42d1f706e9ef2b3d6e425285b4973202d46f150fdd4a6bad34a455b274814ac5c4053d680bfb4816578342fad152b798a1d592a3c88b45bdc275c45a862179557d437304151548a568159691282bc08f9280bdaf30559a3a177e6b8a62b101d8342c9d72452e05bbb1634cc1a7465e479f100b6f2952dab8ac806c27a8c555ec20a995c25a9ea8c090261085bd65c137a630e787da7a6b039c38573006c79bb5c20e39756e1a72e2c016f6cc997464546283d76543d9774345ac619f9200c308c25cea332ff25533b7983db495100f24a42e4a8df11504c4b96c017871b5a594e9c0b241b01e066043d07a366e343a08ac561ec5a08168a1c61755d5c33bd693608f42e63706bae5cc8c7f47aea360093fc78045517be49566f35728bd6a8230984a5e21133b63a9cb4a7fab4befe053e37bc78900141eb21189cf2abc0764b3cc507382c8db2320ea49c988c5aaa7ae896d10702c2082a59c3a457f382f44a1f2ce5b3d29a5a08d047537163916c5f6b22995541b87e1904b62a3585429d938a1b37d419bfc533cb918a424b5a1f73a65a8605edfcbd00678b6361399ac794f2cb0c9b26939b09baceb79ffc55aaa528673ccc4a5b844ad0873b4d6a31465cc479c30273aa2edd362625512012f83b42d52781c3bc947872c78378164cb0e077cf9ad87974c75ca527aed41a8b6993073d711c1873965448b14d307c5b218717b94ca27b354ff99de1f581e9561ec3cc196d1815a7a60a8c9a94cf4354140cc5e3b98bfdeb9c95c7c87182b878ba20939a0280e2c453567215a15803c01f7f03bb0b90741df964c4fa02f1007c466ba6b8f78bec07956611420220499a013ad3e3a874c4ad961b02e4c27a9ae71d57377dbffb556334797ec28c701c220129b856e747b90aac0803b2cbc7b0bb428583b810efe1727e0598cde9681429616c7b3f8bd8b691841a7a5405ad288f77b652a49c38eceb4088201b651a5c65bbc05e40a7a0f4151eb0962c34b10c1869a003cc4cf86d39036778b3ca32d0c500f7918cf027ef920b3718ab1c191618f294866b2fe77bab8c84118ce55157714ad2d054102a4d38ab73d1f3967e98351631582545c5a60b3aad50a7852c9d43b945668bb8b6781f56057ec058b2cfd6310506133e38b75fe3086d990d92cab098f06cd376531bdb8308e5a4d2e323c87c36e7ccaac87b00a7d4cfa3b3342d74a02d888d702cb44bc31201e41fe62c7511493c068a92717cc5513045bfa197d7f83db35798354797cca7891392ae9587245e92974920551d826101d44d9f73b3113746114ac94b8c8e291892be9c8015a0114ee44e26879c02084b0192194b922284956a8fc2b26e9071847fb901fdb6603c3bf7bbf5297bea11539fbe18868709fc57dc4d46d7d54159 +result: pass +ciphertext: 260ce3c51193358dec4426f6883ce12fa323c9c8e0dab43f69562fa5daaa585e720fd75dd126b0d45bc650abc220a11d6551e3ecf31d407551ae591cbafdb1fbf7d2ca3674d8a18b6887b5b55aeb5b47d5d739634483624207b2ff32a2932029f1868da248b0583b32ab13b87c57482bb2ceeb6155d870676a6591bdd33e018d9bc2a8bd644ae6d54bb4ea81a627f9b9fa74b34d359575e0307462608bff54c6c78d0cae95d223cd2c0b663eb414007c3ab47d57dc09932461d4b93eab0e557404a53f99ca160c8d9fce51483c68e1f95b10b11a4cbf062dc9caeb89c4199d5fb160c8dc1260ad21cd26319c95a1c3aaccba6f54cd8541bb937bdcbef82b657949e7dcd586032ae3b8b47e619884c78af2964167869738fc415a19bb32c23098b9b63098d8867ab98949feab0d9f2b1a44a79df81f51924c0c151fcd1356abf64efef5a1b1adf956b99efbce9093d4824dc58fd792613fe8234502d00062e552d3cf5d52909d980345e2e89fd42aedadd6a3e9861696fab590ae3c5e24e7a1b7cd40a3286b457c269f367f05c00f0d4610a4fb9b493ee9397181d669a143aaa095f13280d896d1c8746164137735f9d80b34577f3479501d3dcf98d9ad98f8b647ee7eec41d755134157533b9360a65b5d06955ded2dad2e6b6ae721380d3784f058dd92e321730b7828799939c6cff15c3b1e9b809f2e9bb630fc2f407b1429cbbfd27529e96757c0c9893e8f7c9a1a815dff37075db39aa30ce1eb64531004e4928679ca642f9c6448c67a1c12d1a5db91a1e5cea58da7cd7a8d9322d931f5bb5f18badd4a5348653b49a75734cf50640b7ded766d90f789325b95bbcbd756aa6306815673b3637d0ef9d1a61569371bfc84be0f804461d60fc4bc89c1f24f3f052b8036c4bfb72bd47ae757a8a3117e9ba562916d05cefec5ccc2912826e8ad1f12c1b0bd392ad3c22974e2549ccf683f01dcfd279050c9f6308398bcf9d3d7cf4ced38a65da0961f6a6af287af9519e3b0ec515ee56ae728efdfb0dcd02f6e352dee113bdf8edc077ba76817893e993133afa2913ca02ef4ee35cfe9fc16e4a140ac458cc0fbc674cb8f02babf7a0a2e53a8ffa4519e4d42eb372733d9a873db6a3c32f94960ec10193071b5fe625c0bc3764d0d2177be6e8503162c5b55fc2286e19e9e2419517b9a94e85120ece63dd7b7c7559aad80b544b66d2d3bc8daf2ae107af3228041ffad445dd66a50a6028ce0f5bde1e9f917c1bfa967f686c1428185be75218905f16595cead325c57746c6ed3502c6e8feac826535010de14ee30ae060a4abc6bda346171f8fb0d85196a11582ad6e30d48ba43356b31ff1cde5101e3002a91fe4c6e7b0a3b7e70cc1ffe1a5b9859eebc97c5d6af030f1e4a34b28493feb5021a9f9b304478aa1e8b0e6877e9710911ac6e04c3596a0d0eab24409ec26e4125251dfe38bbe3028118d6e079096616405059f954ca5a67dd9bec97d9fc75e4baa141b1a1fc75abcece72d1a510c09b07cff4c7d59a304778 +shared_secret: 93ce6d06568d795c2a28d1196f53cbaa2cb05df1427ac76f44df09d479e14241 + +# Official test vector 13, seed: "bd26c0b9a33e3b9b4c5d7ea32d5bd1fc371015be163c86f584e49bfd5362c8d8341161cd1308115b2a03b7e5eaddd418" +entropy: 40e593754e6eddb7f9cf176ba2d5fd1087c90ad377556d0b0f686537b1a3165e +public_key = ed7c794ee05d9b58740d13cd78ea15867a5c3cb14051223efcb36969430b45fb699c26caa918c3d9041589a1bde4484e95859a700c2510d6380c2a323e34526e22adb44a862c417b34d172269b32430c6b8a68cc3dd2bee2447555c82189e2562aa82df2a40e33b91d65b60d0ad93b127294d71002dd16b35701670564b1c07436dc2a001c751765dc93da79aff6177e9795b00c5bcbf66175357174032a2a742b3587e35f055268551c57af78090044be4200302fb0b16a40b80e092a1933bf99878852342cc6574c6230a9460b08376c42c51a48aca14d0e59294f3bcb464a74c0a296fb0182cef42b25b58711c6cc939c9e02c8302e2499640737ea07540ed89b5335a05c552472172e8bdb2f40c49a5b0295ce99a0f567af39169313c8b61ba77fd2143f97cc762c8b6be4c13300a8b78dd06011c144a1d747e1c3825cc1674b825838953574e8b6a16b3dfa8a05355c8977006c649b58d9f0ac2d704f774817eea95f6da97ab5ca71c521a277d9618881563f47792d99bebc73a74ceb5560070b75c3b8b2e2c9598195feb08ebfb5cb1d86a87f93465355a796520d0c24744c7b852bac418fd620d060118d135947d9b174cca55444096ed97fd6442dda02b4a3364732c6818c39a9d199b4cb5a4d3659c8c4851d39db9301047370351c8dc417bc1b86fa50486e759b87c4cc69a8a9ec282909c40f0b7ca0896c01f7221639b18fc3145eae4b4b8252b4af720f1a22c1e5cb980cea6b103082b31b0542ea8d64d8c9b119aef3524cad116689280a51ccc08c09a8c3313a82a581b55cae6a394efb5146ad9884344ab6904c7d5bcc75729a261239c76ebc83e2557f60d125a9578fe0b4ac8d57b08d729a8d86647708483407ba16344049f8b842496a64f84d5bf42540429ade11b10f567eba812aff9179e263a2899b770f8b3166da15bce789dee3cc7d1846f3204b26933d4803b74c3c3885748a417692f0f5ac2733804cd2a98f45547af8ccd28542ab3062211a51f454b28559c28d0751c5c6c31045a8aa41c79cd1cca536c3d6a779afd9175a006b663620bcc92b4ddcc92b61b88bd422f1dc7962a70569dacbbfc7ac9ce90f8d16c3b6973ab3e96b6539a145128631c6993c776fcf488f4ee692772645dc2cc1541874c02aba0564a46176005f6ccf2ab27893dc60d2d44ce1e5b6e317a38c032ad98bbbf79554ef2882fdb51115782ae862c9dc79a6a8293a39135460f96329548507d58c39a07ab9aa7fe913a7fbe4c466f693ee1006f6091346a4b75a2a506f6c787cab948fb76f4398b2110781ae27644211476364abe4ccc2f0ac6cc4e917dd391bd0b369ba862d5f396d8627285b0c5d9b3692ef8069ea601e6e493d841755cea52194b32b5f787f15a6478db7b6b41336000d2bdf3270f8f0aaadab89325b6a3dda4ea88021c8b61b6ba372186321f4f5575f2508625685db168830063860965a71a27ce34a7e934b9444d411da9a151b27b3ed738869100ff19099f0c2a8583b872c8a0745e455bf715b8f526cb4f378fdd931c8111d53a97379ab1d57684224780690b2c1b36bab3b0762b8fb6afcf39cdda151607a6537b985c37989299414b4c9b1894c6051242482b42289ab24793e2d7af2ca0cedbc27d0595b94c698bfa000840bb2d63e1946 +result: pass +ciphertext: 5aecef867809431a595f27d53e374f929c0927ddec2188336929346daee5287eeb67c5a916959b428b809e5c8215be769d63b7cbf828e3812a25818677109df91c1580d9a8e50f0875693123e66b7cad079584c20230ef01a0d0fd7b9ee936ff65a0261d25c60e7f9bb1b51ebc9d6cba815cc43c895661d355d12e96957acb905dc4eb18e45b46f45d23a35e8d0b4d5d71c77fa30fa244fe60f3d716ad8c8afe1781caa0668a8ca6ec94a1c31ede99532cbb042bce0a2e5cb13892e47bf27bc5d56f3ae0f156cbc5c90a290d244f1d5902c6234eeed11ce3e232cbca1cc29228d4848bee8fbc2ef61debe22518680542ff824774e38ce3c1d0225c6836785076a651653313ba74fd8dd176c3f8fdf4d102bbe0a5844d0e73f87eb04e9298e61eb8d18f335917e0f9610c3c17041537197c7041652aa39f7e06057d0c12479b07cf431308124ad8d9b22ddaeae2463070037cb14025e0d91592c8ee95b4e792a257aa73f64120c6c57729b4660f4db798087a053a40e0a144829f64468566c201264524ae339cf33d5e3e7a0a7a1f9ee75ef234cbe213db87807ffd3cf867d0a75bee8cabec8eb9858478f4470e04e7d36e54dea39e16dfd6fe882639a7edca290222db1d92d5c7207d436ec20b6e07a25e9bb2aff7c9a0629cac7121144e6666919258263d6052069747652ee973ba4db0bee6b28f85fdb3052fb6a498efd7fb82bcd2b4f5e5693d6462658d18ee04966b0d56fd1b9f560e1e29f8cf80e59f57e0cec307a9c37e7a578b98c5137982b7a085e67cc741efed81f795a40f550a15d1bb621ec702aa642271e5fc9a4f7d1bd44f39ae0a014b4792d4a8602c1699eb27c87e190911918d0f6e9e887d2ee3b7af9d19f3fe9e6bf78aa141d66328044cfe286affdbe0e1764fc5540629112b016a1c254b08749cbe45c10d1cab7991eb820167574fac5b33d971467fcd500eafbad1b9ea430a9d03971e0fabec59b9236e73ecee3166aa19d24115d63f698a1791bb6fdb4889c8e85c4bdf5f3fbd7ad66d4c733dafc073e6d5c18470baf3a685740f6f7aded2d39ecdcce03a0e097d86605fd856f6fe0d9798c1aaeca7ad1f2398b53892299797fd78f46c9c01654c91c2235110307b8f378a2a42e2970902ba96cfb25a307be48bcad1123eb0b80dffa628182a72d021ce9b26f91424ff400700d40a99d850385872d92ce7c19f2c41bcb932ddd85ea20b3eacf414799a6175b9ec819277481fd9b67b791c26b848a0ff91a8f31cc654921d70fe9eff42905f72eadaf698e31e90f4640a85a050f79b0a9084cedec141edbf20e07f48152fef5e4daec206bf2c81f1f3cbb7401c88ff986a9e90da3af08ec1de65e164df05b72ede33fe38cf772c48dc991d5118c06504677a5f806ddd17bdd13c318c023fa168795021a8d18127a79741bf31e5b953da85f1c76cc8dfe0b893563a7d5a8d792a8f148557c4ee87fdc9ef146c85541bfb95bb8d6db8e4f76686d992074941a62ed588f16826411146548cfae4f4cb80 +shared_secret: 071db527a2ee8ce982527cb19355793859bb8557e7cc99dec58a53153eceddf4 + +# Official test vector 14, seed: "e2819ef86853bca1b9dee7ee1c1619988964f9a913e635aacf0d96ca6e0300d084329dabd8f149e24176d22757404260" +entropy: c152523abd8248bed40c3827bcf0f8e8127037a55c780695e2c28ea3e041a44c +public_key = 109bab4be52b48818412eb1353680f2a3c3bd9fa7e55cc79c38207fdaba1833452dcb03763672212953c53532e6051ab040208acd348af507616562d96c7c04da93c8f21566df563deab2f18c9359b0b5391e8b03b485e3dc1a7c981b2a30026b0f83b84c4505a5966f648383c9abd16638a3e557ae4925fbf1c0125d91d97511175895082a78c1272792a50a5651239cb66b3f6c1376fe332260cc27ed5972c4b6ecef6462d3b712627928cda42ce150d3d96b7f032209ca92e9937517bf2b7c5f66e3b837ec347643a6a8a4d8c299de167395c84c2aa8bf1a8a4d5db29c2962701701ead468368b40e87da45dee76ff4b287950889692a838bba17b2b47c3140b7761cb389e447b2a540ae251d61808341dbb2b9aa5f04a69c6010431b28c17b980fd00499e274c9492840cc7a1e90215be92759db8b14ef41c059c546d4482343106adb27a802c3c3f8759a8fa20141fa63c65081d40090eb1abebac9c5708a9ba50656b4e7616151a4f1b0bd678ac18188450ddace2b99b3f170ac2635a62ad88320d17a9a75ca2e1bb52576274ee12f1f3b0b1696a247c70a6cda6264dc9e892cb08548c0c8824168f471e19078737169b4549b62b634a611ad53699a5550635faa7ce4589938501834f8c4856cb2e991bac84809b424cafb5ba089f14338780178d71b1cb7b1ed12c036f727fc2a94e9a62ecab6a95c8800aaa237cfb224af5c8fcc939443176ca4bca59ce54400dc7639e0630fa7cfc292604e6ab0bcda993a78107d108783d19dded13c2033297ff513fa75c4c6d65640206b43f33cac26950533b4b053190cb23e45587509acbcfc57acfadb6160f5345a599caed04eaa02937bd5a5620a5f24e6b194c52da021233b13cf950c270f8262972031790ba4cdb4524bd92781898427b6a1adc7a986f88ddf7b39be1c7d9700c87d52aea9140aef5c6454328f666a8f476b772784c3b13494dab57b06e320b2aa701acacdce41b8b3843e9913ccb3705dab48cb9d85ab5b36bbff148c5a4239b32190193112e1184d33b88ed1e6c3a9ba0ced62bb5e634b72187030bc8dfc1a3e80e28bfcd1828ec4a2e4888d68e4bafa3ba8622a87314432801325fa66c142760272e594de825560c7c19e881ef238bd9a38013f601885e02acec715b25730fb004009eba9111c125bfb0d6b2c154945575743cd66d85906981b24c1b2029452879608a34bce8e610501b6b12f32a1b3e99b76143cc1455485b3802778b7ed52210b976cd2ba26f1551c0fda036fb33891ac77c9265c30db5a513baca1524b8499932d5633b127ab98d8c07ca1704fbc8404957251f11dbeb7000b363255f5aae1261ea5b7c741445cc2852666c5437a4054f5d3a421799318098f5aaa5262b46187f60a09d98442499e30bc54c86838e256c24ae481b6bc33bf076b04bbc798f0615cccbe8eb66dd3c97da6a89394d4c7e07b8c4d5c70a01c9e7c43b8a37c3a09d728d9fc25d933028a504dced76c2a3900ca67369cf5b822107a9ddb2a168419ac87b036064786f500e9e0a279294df8a7c632484723ba28b38b52937b40e20984c46b23dd81bedf629da6a3512ec060fde7b8b2dc987395af460998230c20a9a08c1dfbf3824cf7a6fb4ed55ed1ff461d800b59a6ffd7287e1ee3fb94cb59c39450 +result: pass +ciphertext: aad2540e5b6286cdb234a4414a07402fdfd38141f26f812025e62b851d7d565a8bfe21c5879ed182ff2960c3122ba4f9e591060548a7a2fcc87b7a5f3dfdfa79912befac7451a912ba367a1882e4ae533754a76308921ce820d52d402413651641767dce967dda4e9cff0ff2f3f1a971693eaf6dd138e5817f2600e609f24b47d6fe41959dd01f3d22bfaa05b17a4a957780d581782da44c97f794a008ae96353d0421284451cfe3e6770f418661699a218296724c33b34730c25525b2f818e7f5c9ed42afc92f6c3c56b22b1785b01d3ccc2c74aed6faebd18b9ee948ae93c8cb0f13b5225c334b5f422ebece17e54f5403604dda34c02416aa79de4f3a3d66a411c8b64f38c5dd256d5ca2ca95e3b1c724b278296f719eb70683a2926c5b5f4b9b25d13f2b2706eb6ab79bbc48bf12118d0311993504baf3a92ef79eda66cd6922c01c491c37be3f21109a21da5efac144ae7fedc440b84ec7655631b5e1b3067e8b1f4dca235b3907eb6221b3e38d51a08c36090c307aec7a124cb35ef75345c82adea4a6fa3323607aa20fad721cbcc82d01dbd7d6863b69da9792faac75730a5f5dba4a24453e91319cf8e72c2b7a9498821b5159680dc51682eb4c339694af812e664f8d5210674f0a55543c5433a9cc6573eca7ca607ebfa5efffb0e23a009f404beff30a280d8de6a79845f6687c8f137fed4dab02c8984ab7f17a22b0168eb559423ecabccd6c822334092b94858849fcbc7cb20cc58f7646c0f8541066e654811185b0dc807a0c53c785fdb005474bc54280f34871b137b44848dd0cac5d9226b342a247461ca71b031fdfe17709cc11bc5ca6fe648c13f76f7f66549bec1be4fd8c8c1f05f8e494743a25dd52e3e346366051d102e7aba6dc391e529a5a1b09e5d141414e402002f1a81d2eaa27cccac6dff2c6e38f8b3584c998809c5e18ad500c3432801b08f2cbb3e7df907e9a57059122ad8ff49cca4ad18d197bd7de4834bd550b893347119e8d323af3f6696eb0f88d600b4341af25d266e955ccee8e493979ea31e978081dec549111c7bee584f5d0d18d432c52e8058566d1950928fec5d25f02c42329f68d8734533c1cca80a8adf8e74ef4d807b755e544e2096cc42d38517aa87189bfd4bad8dcc8fffee414c19073fed509191f56eee507623d8d1c2431b771d7a7b41226d532f9da0c837bb13268d542b493d027131cd0abb4dac1eb85d680f31ac8f91a3c00e889332e1459b7a3611b70e1c5492a8ea9b4438315d5cde863b834a8ec122ca6034c808e528dc25de3eed1ebd6d7426843017eb2b7cbf1b07d4794316cd3b14b2378d3c5cb76217ae46c958bd841b27ef7823e2b0537f1022b3d8322e85580aca303fbe54dd1d2a79eec2d48e083e77df8b4d8924351ab28c9eae2331a46c11a2d6b589cadd49ee81b060de91d04f5efb9515c5049f5b8e82597ec0120db12ea26a062653f3d62e96284e9de2e247dde2950efeeefb653cf710680eac92430aa11553d8049183f263e2a9f11f51b +shared_secret: 598bd66a4a063652b2a6b25b8d1c3bab0251682ce6c362a8c680295f47f3d6d9 + +# Official test vector 15, seed: "669c4ef8a051ce201da65fc4bc34d398ec1f806276fc5d987ad71d93bc12dc8f107b58be6e8422a0795c88cb9a0e7488" +entropy: ad6466dd59f26b762fb02b19eedf5f79964da68bce0459b91c3a6ee5a7e01183 +public_key = 034626f03687751b2f1abac22b4c2b1ac19567f3324fca5d82b147af141a004514d831039a612ed69b621ffb4223109171e6351bb35177b85bb5063161273abf861988a1803e647820bb53b282bc6d04cd3e075a4a1b6755b97251901a81c7911437c528951d007d9ed82368d4c833ecf2aa1a806cbad08259470461f7774a922227e812689bcb59a3483c8346d130650e06383556c067f94d41dc1171941efcc96e3fd769623861bec9bbcca4a5ed22c10a36a59efb5d7153859df348ef9c3a2745cea329a73cb831441762820c7d996b88c1d453c775a16ab2c752e68bc55839d2e79544b87af56019f02b794b166f6dd60e8efb0b14f00d1ae800e37bbe5ff7c7d47a257adccd2949cdc3d9318a0cbaa34a14e080b968533ab1d9ab674c89774187d592b4c86461e84ac0e6808c96090abe6b0cf69a2056a1c4287b1cf3dab74f8ca66ae8421fa200fbaa4b11760ac7529b92db75231958e20a3f55b8a3396a10fe957361a9bf41941b90583d8d97cade8828b8a3a5ebc36730c19fa7346aa427c489f56c7cf3716928c9082b36d3f3b82ff1348eaba325ba8c49acb2673570dc5548229ba93a5c210b586ece088d6679c975b60e0106c0003625e42c1bafc1ac1be1c1779556a95ac68776ca01363961132ff75c2185339d79a426e6c0a0011a260acb7cc0583e71623b251cb8ec1049da730c2f9a26a61075aac24ab1da2732f708221a01b27c9da1b520beb7686843360a11a292568993c28bafc7088c1767b87523e9450873f9c73912cae517ca29c066631137faa16d217ccc07f840e1013440da2ddaec6b7161b29742a2c941c7573bb0b57a58a25b00db5012a3362774fb35cd80c6f0a095753688b156b510561ca47b436cd5576ee0323f2bb2967022fe391b9cab3f41477787a96ec6667337fa4ea29b44b7c9610ab69706e820557ac7c9f9c55ab4a04fcb05ecc4157b943bbafc0b0e42567f95b8b436838d363da680a42ee01cd5353dd4276b4dc625d492aec385bfebe9767a2731fa8b3ce9271cd8d28042b66714d98d0bc0675a54b3ea3c322830a5616816c43260f6f21947e3499dfc4f9d76a7977cb467899b455a12d8628e93acbfed99cd8b813d21a15024da9ef46b1ae4f6333dc8933b52a5f100bdbdf2b23987270d550493d949e83a269ab42027b34a12a177f185af5f76ac9f9b1cf9ea4eff5529e0247d3abc3ca08b3a1d081a8c75a1ffe4337711759d25b9cc673b0263177ea93b56667c15f82b483702973c6436d40953aac60929a36a911ad25ac109a10841fb95e1ec05962c5694cc3cd7372260ea4863109254c26a44f62af0957960634354f62c624c5723416f14966417681fec883ae47544b753340f749b487a095f89784f15a6e7945da56c9e0d2c358162213403609a1c938c98c68b70a0fadc5aa746ae4ea9868f19b9ebc3282ff592960b436a7a7301e4c7fa075ff50762b866c4a9f157ad25291347a9dba5cad62c35b28a3933f5269f33a0e6d403e5721a0d36bae734481c43918f9b13acea8f6a13b1bb584938284c10e3806ed935d8e543fd5bbbab0685f099c2adf254f4906d6e05590dfb1544a32ff3bb766109561ff31c164792b6b0991fa93c14a74086a585353c3e620d3ec5b1da6ff7959016b53093137c512dfc18 +result: pass +ciphertext: 05d490f575c5a991065a65008d6def6ce79b0c64ea9156ea6bad47fdd3926889bfd335784d7ef46aba3615e50ad4de994de59889aa2f9f8ed1de66b3caae0ad5079821b135781fa2b063198a83c0c19c3b9b479277fd1f0e7089ac711fdc5036b7e4f6d279b8b84de7724bfd425dbfae33485bd423fc10c2c576a4ffcd78eed1db45ec71df0fbf4e53e9161b174f536c88af832928d593f3e80fa353b33650a93bf4bdda6b94807b49ed507cabbc72eb3273ced31f8aa4a1c9d68ea5d7c337ca183be3cae57d0555bab6fa19b36f59c575d1b9a297eeb9c561fad4b2056a3c3ace6ed886dcd84fc4b52511cfa2e00fc49f7cfb2320e650825a2c8ca39e68be13f3514b0160e04b6d58e613bc2a70315807224496575f6b5d0934f6704cb6c3b728fb1857130aa9012511ba9344d6187191dd500a1b2427db1f5355342aa5e0a29ba2b94cee0fbf808202afc594322124cdc12fe49185ce8494950d08a4b0f6970d82e745d6a3cb726d13e77c1e5a94593c678baa1b422d71312cadd4e16df816ddb13a0d0990947c84322dd17a831f21261f82986453a1aba53e1b13a772d5d29c211fd2a37d3c1cbdce6812a09323dffdc404a964a6d842077fa744c971e4e0bc42852d0a37670837c2bdf99e87657c044c5f56a8918b163808139d00db7aff2b1768fa327a80649a67201b8c8ab04278544ed5666d6460e8a30b54283bdcf4748ff1e4328ca86eb42933831cd74d99e93b760f3dd2f0524c9c283a2d81886749e052afeab286830fec68628c4d3ed4f958678c03962b02a6b37c07e0d4ac3b3842731da4b309167fdb1cfb2ec22e9704df4b86479cb404cb31c69798bcb45eecaa31f2e80da2d2e6426ed998983e9569ad4df5a53077ae69060347012ffea15690f222f20bf917e2bb3654bbb415d38c5512888aa029df25ace2b15bdc22266b41ef0709486273c23fb1c6c4b7b45895af4e8c8358a4a40a2949142a9a773976f8ac4211d82c2f08d4d1ee348050cf24821c2aa14285d318dd83a876965358936cf7dddee74d9c9f24b656e1362a040e684b9aa38730701776a3d35a54b48a37c8f318c0464b448e9a184d8c104f1ca092d18984f5e7e65d1991bd24a237e8080f45b2ff4a973bf07c784a8e0c39b90d0bda10fbf3a1b34978de8feab4d1dda3498f1dc0b8d58c5047ade493f35899a582297b23b8807e105b373d03d21a031a8c9e2ec54a2ab4bc16ac9874a7de8342d346a57e13ac4e75e9b3543f4f6d7c394a1c3a669501ca56f571092481c09fc59f63258f5962b058aa821ae535b7290d42bd619d46f0a7fe4ac92f62261e88e53ccffb5089cd0f6f99836f8f703f9f82a906a191e00b99520b3d3e3a57f3f5a532806fef0462851d8feccb4c75beccb0e67e87d812a3704fb8047a7a5910fa609ebc0607de4ead78517d7c6e4032b018f107d945dadb329e170d99c7d14f05fb2f2c5d0be443454ead35186ab3283c05478aa9b71d7da66fbfb9ee6c47429a4d6ce1da77b526223027b2f1ed41ae66 +shared_secret: 92bd980f79cbb34c67594c6922549b99962e54d388034ea61f892fe250581c4e + +# Official test vector 16, seed: "9debccfe818f6b5204db4ea09c03ec9a19dcf1629c1527685b8a29776bb1daaec45f8abf8f0adc9a8c8bd6e2df6d8048" +entropy: 1a4d5dff5847cfb48333e33bb00ca7301b144aa89dcd412ff5a3b1081d775b7f +public_key = cd187009317a52773c57d435faf794021bbc709b8e7d688a5dfc686c15931221a9016c3bb461a487982ded37041ad0c1d032714f7379e2fb9faf5aa6d0f5469c7156800ba258fc5b25d0996b6735665a806a74b03d9819a5832a6685157e7285df397e23b13a543a983a5b24264c971a73708de1572852465732c94830719c197c7985c0a7c53525a1ae76d18e1e9112eb4b57c1222320a8156643cbc9535a27658a3709123cd61af7798addd888053bb0de254eff530296f9ae75b2ca756539b61c62decb0e9ae611678b5190503344229096c34990a61ce8b10ed3841d48d266cdc249acc96b7d88010899c453467213d8bd23e1764e0237480c34d8396ef57c1aaf781c042471d04077eff85338ab8caef22ed064bc38164070a00cc78b8074e7569a627b49e0416a705386601d3b8a6c10a4adcbb190b4877422304ffc776b4a129d4098c603896a6020725986cfcf0083fffa66eabab82db734f5d1b5766104e8a2b8b859b6cd166dec691ae331b87e794a1c9b083c14b50b85b7e97148745c9f8975733d4262e247473ce53b85d01c6de505a352bfc0c233a396c87f856981c83fb74542c9f3cee1276f3096486ef23359c51ac553931b80c6bd245b2114c4a2d344ab53765c02c82b41412afa1ad5ba6ccee9bf09e375eddc0cd55bb6c727be26bbbc4e7392293c59455084b1542c87578c63511ae3e384e027bc07ca7401cb0096d1205f4ca86d3c73ee8273de930799369133f83f4667a92e72bee2655b17120dee233433f9c68a50c57fdc8617ac1d03f0961d4a7bd17678d8729329a0ba0591ca84670557e15fc5eb4e8255007b8c4e48206f62062e1dd53bfc43af02405d2e300d4858b1b9c9ceb531a910c0bde877450a9aaa8878a2fa45089e184d1fec1cf4e3909670bc11e78da5d8cfeb86a4c087a1b73a6099c99836b3cc76366d35a9854b3b205f4b2b69666878614117163fefdc32b6db37fdeab0a0197f79db088c3a355877cdb1313a2f200e27e37e12b4bfba04691f82b1c2e8b8172c11e466cd8d01286f2a3a4fe5a5f920476a9278b9d25e420b77d489386f9c167f2731654b19fe4886867b79ee10c18f679fae87826a0b65b44a83da5a35e0723bda3467541228b80b35d5ab869b52b5dba9b8b309360ff1022d67bc93747c392469c28b288cb73fca74001e5bb47d5b0321e08fbf832d0a9b0dbdf566d3898e1f9aba7e3c011a14c3e918589282c0f167bf14470d1f6c774e6742e40a1452c70cafb941624c02ad201e6030bf3dc6a039e6465d6772d1c184c693bd16c3367f02730ed6beb95940ff783cf9e307f38a7f4f37754f6c4ed26a1c70c90741ac89e56c989b0260f7e1178b5b975d54aa6f420e97a7b90c3c74200359d561beae98b1af044be40a2ad8491f42662e2f34bde200c63ca48e7409727c8b2185138ae7859ce43558349a1f3e641df0c14428c0c12d0a49abb904cdf8ae5cf34d379024ed528e5d84a3d25920b7a94b61a8abf9e557ff61c784501fc9e332f2b652f16a0a11148b8e594d1f377035e124d637659d4485d909543818814fe7a8a173bc8aab7066d2c927c90660dc8d30364d60a31f1d94a9e5f586cd84c167e2577d3326e41a614382f4982426e93391380c4b03db38d0f7bf0ff66d2d93c251d3347c64 +result: pass +ciphertext: 69a67c3915a5e699644ee255ac7f4e73fcad84976ee94f610426c60e9e736a2217118ceb9042e6d031bffdc24d61a73bb158abe5d57d5e1b7f27bbacbbf87a71925db2aebd1bad3c9b3e4504310862e8e79ea2ff1833b13e815afcd9bd5de8aa8b6917ae7321f4bad138d2b88637366186ed0ed48d4abb743c1b6601a1b3091b47953087bd077fa3432fa9420d40b0619465ef46d9347aac5ac60ce8e0aeba6c200657d3e4e8fe9dd73ddb9768a1498dadb9d15b9bc806dd92eba218b5088944b394f2226b01a2a15ced5e1e567779ec5e8752fe51a3ec1a6af64907c8b058aec3a0f323c31140904695e5148ac3d645cc89d458509efbdcc9d2bd46ba57cdda957eaf5cac08dc18ccc20254988ef1f8a0c1ad578dd061010632606dfc7dddf116a96b9704ee90102e499a182de5c5b1973317489f2a95cc015c86b8fba63b9c259a4276155b1fc7ceeba6c0bb4101d8dba10a3a297df54631006a861efd0cec14f52952c96e99d147dbd0f71c6aae5ab362e31586a967fdf6418f65d2f3bb9a7f4ea58c4a193f8e3aeb6bc048f7479080374ec8685bd3c55c83f3d864afdb65e901676556204082b90afb06f861b81095bdf538e3524fb1c07b9c0dacd3a5fa4c69c47aee8f9b6d636e56a2bf166060a31ca1966bbd36b8495c5610f86f279741260f1580f8ab41e9aaee35128917c0a0264aa992a6d2bc4516743177cce2fa2932d9a327e11cff1e86fbc71c44e6a49cc55843b1f7b78243419d53b15fec0bef99c74574e88cd27495a5700f66ae30aeb3891f839829cc1b79600e17cb5d4af88b3a2c6118ae816d28027f6790799af0c264fd17331479213de77087f7ffcc0d3831aa82e4c0cd73328057a2eeb0651e2cd6e86858129e190ef97ebcc3873c2c8dcba51a83612af4a04144dc4b488be630de461b20b6e1a2f5f115942a5a4491f30db59e4480bc0784102095f0a612efe236cbf6a0bb8eee2b82b399d8f2d594f53574e7ca440a0ec1df010d1c08650fcb5e58607fc8a67a4d08632ed0d272e5b5002c6e782e3a88478bf0e9e29acbbbb21560f546c508faf5f1219300f0340573d6cb747d15f6bbdf2002c2dcc661a0e8bf53dcc3f05a4e8c691f21ef608ff1788266349783eebee6a409c31543a0bf3265a00305989c271ae5bdd42d5293e18af9005cf673d09508fba1580da112f658ef78eb770f2906071e9056142244da1f85cd8a6290eb82b9bd9de96fca1b5a19c27c82824f0d1961575196e0840a93d9cad6ef4e97e55f0deba61b9b84729091af782d041b38ab54f86bc6a3887a299c511521505d1199be958fb35194664a1e6025b85cab73b611f1646b6e3ec3c7acd3d5323cec2d52d46e68cf9ad52557c777e24db30dce32e04084bb789c6c2afe1b8def656a9e7ec0a1f11a6890bad7f766305dc34d39df64a797446ecf53ff75848e3a0737c269f822ba27fa2a158b11ae758c8d8164fc359941c4e8939364690359470be977101ffc685b088e22c0e887b669b0e933fe6f7574a6416149 +shared_secret: b7325a08fa617e19260264bb02ed6b8ab2081589fd5dcc1e92b9d0d4ebfdb6b6 + +# Official test vector 17, seed: "8098ae7a92c10f707d405f7dea02c2efbef44efa132ba8aefe81bd45e543ecec74f10920ae48a40b0653d63532517f2a" +entropy: 34f44ec2092eeaf686f2ea170591a98527cbb03a4fa9477a7aef6b41a54feeb2 +public_key = d8b6c56dc931d12a8092102490881b4e2064c5a9588e257834c1aea2668e69d907db5158c3cc7321d83b9703cb74864c1057660b718c3412cc47bb92612643313c356b6b2cdeac80ec5b657e78cb2fe9ad14c28747e45466847d71c49d1355aa845a5c0fb27160156d49a3af1d8b975d694186b06a5b1111ac504df3f91ce9a4b2e248697f9a972e7b0cd048c1b6f7581af20afae4c1b9333f60e73a0dd1ceb2e19887cc712d0bbb5c24054553c3c7c972e87253d4c46c971826e8955ac0017ca6d6550335916d6a939f5c167bd68c09d85650e89b40a4686ff0bbd921ac3e43641b1600a84bad0fec9524f09fc920916a31b081e88a36803715b1476e57ce39ec27fbb04256ca64fd11225e474b06bcac9657b31de3a39f4cab5b65bcd8896655eb924243972b0bc9b755b0c69b837030a07937652c8c14f71745572882d222ba1208327d3228f0778a215b8fe6f4a14a9b3a56ecc56f09c49ca31cda853db12a2fe5d395a00cce6621833e61c2cea5bd6f0bcc6ec6b479e334fa543229b619be566e8c00a1dc7837c7b5651b8b6a94412ccddb63b8213635a5745a54bb56198d325a59109c75d2b733c77738a1328bf1370ed99b7ed8f611e69c3ed82620ce95088a91c6c6d472294260a1c5455291188e010a9467c816938f9835c1a4fa01223494c885642e5c416c82223d614a108a1128e53d9b264d61d798c4ca9bf6abc72fe779346a3208a77542272b591a6ae781996ef17961284666c85ba91b2de5f0bf9af10eb91c5793e48fdf367f46f586e05b2dd65b262506043de419482071dbaa2568256a14825b8f094b796a527fd25b8071a4041a1be279c2e3f543021364a147cff6740ba448b7010b4ddba6aa90265a95905f141a9374970a1a071799d813ecd77073b453cb2b6d83ac9cb8267a5861b9e2f23d345581a074657554781e4782d98333f1237dcafa48087aa66de4209a9a78700b09d44a0b5c929ae6612acf6b5d8ad20404a161fdd3639e659bf88291d41711015432f0e7ac759a67e0324f94c1876314687ac377ae48a30b48ba9986714ef3064f087c953ac6f86430bba9cef9857b849315dc4379799092af4c5531fc13f63b186939040da2233be05371d448fa748d76f98c3f638a6bf5864b9bc5fbe496d72966e3004409e420bc4353a5d55d0610843d0b8e6ee5bb5d6c4dd1462ae99a43df586b398a15ff5b5ff58a4006987613f5caba694dc0f736f6d47af66673e8f308a6044338d23c817c0420e679ef621739e21a4a35140dd2928e79584f787671b118e9e71e1d9430b9a3210e11c266876a44c7082e7ca5f6dc4b8d931f5bfa302fc790bd424cc3643844418f6c090e2cf5bf60f08c489bb87315464d90006375c34a5297a238a117a8770cb9795776c11f8a54ff13adb3fa77df3757938c28d03a612324858a11a860235e0e15284e36035bfc0178db841c679a47b93e3b09a9f735955d6bce328a91f2fa64273917b7371fbf166c47e9683776aec02251eddc84032cb0a852594f4c7875792fa345a43a68a193c51492a39c306b02f22c60ce5a8468c3050cc3965e2982e32b938a31cab1f36c1da3ca723261be3a864e2912199262c46741fddca501df33d04a79f8e3017e6197ab24b062cd98486dce2a7ffb22e5798643cf9ba5 +result: pass +ciphertext: 64f1a93ea3e3017634cdd1c24a7d5a1701bc1d9bef3a908e70df00b38a15eb30395503908dc45c0ad971f0f20f72c4a75343b371ecc0a7ca7f18eab8214d8782952aba2b088514a7b232ce93385efea00abcf98e0b0a94f592ed365fbb950dbdac46e374f3261197ca7a2e31b6f2971b120c5c8aa430eb03c314cfdf15602003129e22b827a20658834f04e9e618f6fc1125bb9b71fcbf2a66e884800e74bde13c3cc9c599ce9bb815a8934f60923732fbdf1ba1a9c034fd49d0d809940f89e6693efa4bd9c30093af1a3fcc3a62ab5efe2e944b83cd93a855cb4597f3f788322521e9e11e8adb20fef58ce1185717d97c593d7423fc0498dd49fefa8b40e6c14ed55522b71298c6cdb499de705e5824c8a00431c778d21b82bb7ef6ce728d669ed541701ccc6c03cfe0600098353c9449b595017f567913bd2d233ef9455884001b94e3fcbda4edd94b4a254a4cb88bb59441e1219540328520e8f68e9c200f069af82c2dd6f36cac81f087183da9d6a2d861d19396289f93a17649d811ee5240c5b7c0e8b69adc82675d2d1dfb14d1b62ffcaf6b83bb7ad220974a87833f6c12987d821b6b874a3cb998211b54e9e70c3bf0d71c1ee7266f562d0ffce4e10dbd025e9a40b3610af564c051d346e2eff83fdc73d80a710c36990041dbfe1cb242b66dfc4dad929108d00b5e9a1899a081326b6a2956e1e352a6234dea100ef8e671f94b10612396d5a8ff765e97ded64ddf55fbfb9f3e8fc202a1d5cd8c178feb5a01f0a5011e29e018e1c9bc26e49901984dfcbed1c059bc9d9fc22538e57719ae514ddbff7a2cc9e2151f7c7d944456c3398f65513e66b73efe8594bc3d38e83cee3a5a939f20e444be0c0b48520ff200f963fd27087266706eeb7a5ffdeda7be32a98ba2a5df7fdb763b7f15bd2506d39c62e9d2750b084b44ced6ef79d6582c61e6caff2dfd69c7849c89befa002817a52542b155bc51e6a1bb50134bec0d6e272cd6d086eabe8f9c46123eea3f6dfc129640d6739308c0c530f2f0a5ab7695721d34d464e5b98d5200e5a50878599b2482a15f93b44ef13d6ac3ad16e7fbdd53a9476398ddece997e77301fdbca0cb2d406bc9372117991ac6ec0900a191c9712af80f8f6d33462e13b3b9953dadbff25dc7dcfb428f0bab661abf3453274648a5c61f729a7e0cb46731181639d43ef13a0ffa1abedac1b434abd5896c80a3116e4593312b13d4f5bb2ae47873b4dbcc51cf2c31bffb5c0f6b33ce5de62ecbcb78f9a8c59aef6a9436cee773dd6e11c177589b1eaf41ee4d3e5ac949d85d8468461f9e1a9201d9d100a835fb094b7258181d4dd585a21dc9a20241aedb30e1b4ba738039cbf237f44cc57abe3fe2820903acce0d716eacc7e78d65f8a166b9da0f3a3db0aa97865ba6be3aff891f2917c55b5220f814022abdb809fc33e0c430b6ab8ba7af0fa94584acb88543f3bfcaec64e953344dd0015ea3fd35156e433c633254c971c842b367707ffdee668ffd328c7c12acc134ca505c87833b +shared_secret: b400082a764291666c080ae9ea9f22c383f3c1e87b4cc56775a19c8ec29a4157 + +# Official test vector 18, seed: "d5f23808871544e9c1d6eace2028362b48e225312f77663e9f78cafeb512b908cd9e25875d61a16ec615f4b8ff826856" +entropy: 6250c81126572eec2da330271db36ee591f060fc7e53eeefe2e1c476c675fa33 +public_key = 6f22424d97bfe0b7cfeba385c55253559b0372fac0c533055ee490bed57446b637fd0c07c173b2c61345185a0288f1aa074accae383c75208fa03a6a175c3d19481e79ec833057a8d2c234ae9b01376c21bc75277738b17dea03eae594ea939e125c2592bcc95d3cb4f76a8d8383b318a48f7481b6b8419e8bb47cf1229c23c4800788cf91e465088a580762ac5d31616f114606c54efa9c0490298ccc23200154342dc7709a5ca5ca3a94b7a2ad8ea734b6e20a2d15acd47c6aeada3ef3331fcae173af5191ca8b74bee31f1b7506b595a3dee0899381111680ab02090429b93efb7b52a6884d401841a0d8193953a5a5f2417df927e5934c109722cfe18d0ff93a3df69d9cfa4d7f5801d3294771156e828924c65a18bc798006a1c8eefc3b4176634690c061b902738024c0ab981c3506d11b8f307c8f1cbc25ec764fdad76fb2117aff430c5a5a468f2966bbb877d2b8335ba3bfca985864f21a9912bea56a007e7223c7249b2e45a37db9c104438e76d16321289d4b07001241aa2f0a1a24d81c27a9adc0c768e1b3c72fa08e33f77c90f4cbdd530949b2b67da9a15f336b679937aa825989b9a450fa5f69304d37e585bc039a154257ee78907f689dfdb246d05c94c3057066d03a2f9825be6a52c3376efbea3fdeba68e13716d810b73662adda56bf30031b8f682c8ab08c4b0978bdf113b4432ec712ba306a63c327978224597c3b8155551997bb7e2881102d8b3eef786be65196ba84478c1c629f45a885db1aa4ca443d8a3300316608e8c2f71c6c7516ca5eb453cf9184bed2888ec592dcd53fed23b5ceb98cb575c474b51e7fd64d73d54f37b51fe1d432b2150ecd5b0dade606d83729586b2fdc60414a558c3c19122e47858675179c2229779b40cd882bfeb3059ffaa93552443fb70fcabb54a7015f8b6a0798b090fec5aef185cc95579aae5caa2b4923ddf65b2570c15b1b0464c086114975dbaac5a564cdfe02cbce8c68752000ee81a9eeac55d4a81be9b3c66aa3875761049565a46e305459fc7a47d75316b59a371cab01dc3bfe9108003d5f868b39ea617ce3091e3ab646db07ccc4a09367b352d1848b26e920100827c8d4c92f0c222d8482606233adbaba3005b58fd3248e67cc75733feb52a5acf5a41ab71ce0ab7e8fca8113261dd4b7297ffc9d37899ab40b0637c02ff1c73e81a02762fb264f51c849d387b9f7aea345b5e2ec44f2e0866b9574bcb13ea0d0aeb7a78d6dc7b5b0c9838297c05409bf90d86b3c1b59b92c998a8abf34fc490259289b431c5c5368acd762df8ca04e0235ae91bfd5332d67169aac2586deca4c8174386617ac98471366283f3d30a971c62f35322ac96a7b0c45779f6c17f1117a2f1b454e3557ce5733cf979156400c5a780a4da91ab8d99c4f98b141920731f361ec30950bd0c5653c83dba87658674c57473dafac42f293bee44034b9489ccfd5141ee42cd91b3c3cbacba092cfef6ba4b0a716d8162521b29853522356943c697a10948a50f27008d8a303254327c4570af822024f5b9aea82a62100856b2140015418a9ba3e77325b911a582e92a8b8e123816405ed8382820c0ce5ca491c0692b2b542b6a67ec87bb6b0334c1833e12aa958fcc0747802853f8536c1e24a0ea6e13ce23c96726b5cc8 +result: pass +ciphertext: f3559c274dcc21e1deafae8b7eb2b8f482b16570c20782312aea16690eab1b983d149994a0777c22038b785274ab1811bdc0697aafdc49487f80f4139bddd82efb395dfc83712b4e53ee6de05016f3277afeb9e3aacfd0dc21264822e93438fee414f2d8284de2e1d958a328ddb5107532d1d0f29dc93a5b833600469231f513f0dbbb1b32c0b527f469bfd08dbcea4e578a841dbcd97d92360da0334e5a72bb4b1d3b936ea94435d94b23f3a3549a11c204e1f33d0756ffa92e7627588f5edace35988346621d7b2d407cb5c3fc89e45bcae6faa82b1b5865419b9447e77055d000de9b0d80fa551362b548b3f6cb76d2325a51097e05a75691070619cdc4766c0988325b6341805a865fada300b997a2345378d848cab9ee8a40c9447532089f47f2deacade37ab519f8f10c5cd7f326acee099ada48f74b12b799a41fef7330bd9bbf23e8fde26ec7a4daff7680e1f89f25760a81117c2cebef939d71934425a0ef295900c58c2eeef7f2cbc5bff1ccbb2158721067310e0640f9cf17de6dfeec8c1d0635dbf03d32b1c302b866b343cea1c9cb7b0a57a69f22d1ea050d3587b152dc05d6a838997bbd38f162743200054c1cce745fb9655fde5020a4fb1f0f8da267fd6d3936c78e28d832534e47325aa19f6ae0fab18b9357ff59370e1833b2fd3cd65ec1f36f0e506df4a517eb6298c2e5b1dd9a8ce9dc2ad97522b607c8d3596f47534f0a0aa98aef70a9721eafbb8c46aaba1e2b8b9f12dc63edde14f2414fb3af9f76f435efdf56a855e4f75e15d3f64c1f655484077d6221b928ce551c4854f6f2e249da98f1f493c7da414e7f8bb7dd3596bc8426d1c064df107959503801fb5081f9b0f9cafea6d0c76e10afa23a49ce3b0ea3c648d895bc6e1b39b6454a529edbeaf86f34f6b253e0e5104777ae4ee5d9f3885ae099adac63db65e43f6e2765c7a4d142a62069032e3f72422d71166fa4cb75e205aaa513e4e1a6b87a070ebce326e8f17abb2b81ee4e9c7233b5d4a3c1c8754268501482431cc4850f6693139af85ff841229d499e1d37a3c7abe1d80c31121cc7790fe9a9203f97eb5a0f681c734066c1981adc3b0d9fe253064cb546f46d92ae06cb0e871f964ac0baf8f8d1e8b5d1f3f6050374e9440067a6722c6ac370baafb51b5af44ca940373338beaf1b36421453757287f18841538c6ba9e1aed10a6e3f8df29f4db175a1e595a0d880d72c14217030a81f3e57bd284098fd93b5602e90012d1417a52a5c1ac4d0641b0b9f39217571a30b20a364045d7ac2c1f0ee778882c6889c828ca6e3d04d205148730e3d69834526d5607b554c6f4c34112f94a39b2044642b65c2cb7a28a0f8a34c59d11af9cee28ed98de8a3e65239457d087d425dbbdd8591288d4b1179de2e6af5c4c22e4ea30215a635f64f5e632d78a9475307927a595b88b5dc6b54c6eb32fd249ab9d5fbc66a2531341eaca902a8bf079c4bbe45d0dec6c014589182aaf13bc05be177be4be4b8aba60f744a21c664bfb1182d7e +shared_secret: 03c7470224ba22fde280005d9a8f8354c49459e9a168cc282f9d41f4f0d2da2b + +# Official test vector 19, seed: "822cb47be2266e182f34546924d753a5e3369011047e6950b00bc392f8fec19ea87c26d8021d377df86dc76c24c5f827" +entropy: 35d470bcc5880872754810dfb3f2796da2fd7f397537146f6488c27804072b34 +public_key = 010510677c6c12c76cf7149f35031c8df3b243140f9716a571f62a5365a0830169b612abf0075ab40132d51070aec5566fe953382ac3a3705b8566064af52b926b765bc039d6f86ab8b27cb93b809e670da4457bfb8b6be9aa54d9b2bc94eb0c3e15ba6ce2b08ad229a469312a5caa04c8a4fca7c76cf905c6fc4d32127d84981608810a4752b9f26baa12665bdf30882d2a38200798de4a5f1d3bbb571085ab091c03e896f25b8759e43795dc83c2069fcb2cad05b166def78d18b920e0e59853c66bcb11795f604963ac3af33b43f78252e06b39d11449012b0b35bc65c2562a66f7597302377eb13119fb4285d5613d618c2227a8a187b132b08bf5b154745451fa627e0587c24118573f3628e3da59e96c6a66d26c2880c95eb1abd96202b3673bd64a74d1b11396aa406d378183325c9d03b8294177d3d6439fa79a2a6457d9f81ba8134bc781c575413e40082c686ac2f59c3fb45a580d3a50add274add391a09cb6c559623c997da498c1d002b0f9b5254c26266757849e7598c941333d580a11a1c197617b23d98b7da60b6af0521e287f8b0cb21522236395a60af9ca4dc7120925a4bf497e2ed65bcce78a33555ea459197bd5a499bc7c2b788872916ab3b961f25094cc96659db67bfeab52260456bb775f56e492564456c5d25f3d0c9bbe7118615aa37b21547255112e590eec52928173292450abf2e834f6207751b068200875d7303e3bf7141f28aec8653a463a774dbc33772849385304b42c99d3e531b0376beb153a56734887c1cbe59b55bc3cbb32da63d908345b200cfdd6303f3999bc873db53342aae6ccc789b2a4c72c7d08a58feb9c939a3214aa3b2bd27ab108aa89682e08729cbaf93a68613a8f56b7764c23cf085f6a970d8abac213f7314128aa64da213d5a53d2475f7002a6c354c1181bacaed645fae9c7509a0b10c8317f714d37f3791c03ce39c79aa0548f88a69dd6f87dd49a8e63307331e00c5c5b5fd7d9804f3c57028c2d3fe65d87ba7c07624fa35754421c4eea618cda1c5434b09acd0754e04439240988ebfb5f6d6a43c0683a287b5686364fb9fc6a62551916046442004caa42428dac71ef5879bebb09c5dc919076620b9701a2d8af248672e2ac0107c62159511cde45120ab84993fbbe65022dcaa6369508212d7a915183555181b1b9610dd147516f2496eab20f727724d7178357f50e23691c29400bf461c389932e2e663faf31ac53273058ba675cc0c3367c4872383f683a834b4a522b92276f70022153aaf4622f24f439a0d382fbf5059744c487013501d41fe9a99966506f2f5651b3ab0fd0a73c02634dae9695e850c67b154455aa749922229090b621e259d1f193b524579690262f94c114d9c690e170e526a99f5149a2840129d22c740cb5b2a50ae7809388147b943a4263d50ce72a2fc2fb6efc85c065502642f015d6b83aaf0880b715983bac12fed75b1c973046c79f72436a420b790543349b917fc4c3b18db80a1ad346389180fbb9bba1a6a8a0f0a62e6c24d580a16580c682553134738d0cc1ce766c13bf74c82ef5c548f79de19a0f2a9236100a7adc1b2f1e1b1d0066b9352ccc40663d53b0af0df9ccd6353381e5030ac08c3920847f233164df98ae8ab017efb305fcc83fbd22ea59ee59bb +result: pass +ciphertext: 262ecbd1c283c2064969cc4fdd0f4db58328c1d0415c0d279a737781571f37df0285542dbd69868d4dbeee51b9f7e73a4ebf5a2fe760ac58a594c1d451415eef1bd357d9d39c8c9e882880cf9f0fe8d750d35094aa8c8a7a33042d75d5885a7bca143e46db1c1f6ca6bfa81ab38263f74e78686101477c2f1cb733a0159e0b5fd1e3a82ea8b947f072ff363336bdfd185bf8c87f677db91dbd8f9ae2e40a3333dc817cab3ba73222443be7ed324d066c2cecbf48cb1a461610825ec8973327fa5c4291fc470db2634a942d59ce4ffb7c1dac2200131cff9ae5c5337d856bb5a959d9094ece3359f13aef1db3a81c32bb29fdb18550de8a90933402f9609576a621a5b8550a4d8bd025b08ee5fd29a83247285e50826cc778806871e9b4b2dc9257315001ba2ce2f15928b730b850fb96cb796ef7596c49c76baf598db30e3e03421dbdce7ff056ae786daff65355ad8bcac2d9fd09d659604381dc650298a9b0ca49ad3713569e6a5883b6165285d6ba97042ca40f823fc6a29c20777480e503dd5c731be8c3d5c4dd2f4b3331094a82f12f832dd8b2cd1caa43a4064cfe3556c4061cf53aabe3a463ca692d46008c4e212b475f8f127ff9f897dddb908da2cfd650db6289678d6fa52d96f08428fc2f69f19eac596da9c1ee228517f73eb45f9ce08cf0b56c2ebddfd42bf01b8b49e00fd6402bff5b456d7feee761a2b36aa31c363ae9635adf75979d2082abc115c8553a01c763c0c068c0b3d17b6690948392d5cc30c569c1ce7ff0bbd769251619559eee99523fe5e6b877e1b7b4b98a212b714447ac970d1b1f6411596c770b427c2b95fb0f4fece8dd3135bf3f8f6f4c69f673ff652a8eeb24fe64170663ec660ca27eeb43e878e8a4d509491ac22f04cf4cfdf389177fd5e5c029ad36caeda9f2a2eae6229b3a5051b4ca586d7a626ef4b2754028c0977d2cc6a803697a9d744713be696a0a643eba0f758ee467118e8954d273141a696eec5dd5bb3a4930cb825888bf95f65f47a2da8e4ae014264818db44634d149da01ebc065da3c7f25fd74ff61edee01c0fc86e19365c388b45170ef50bd19bc4528fdac7e4aa5fbcaaca5ac8f7c3600c6006924368654ede616e00a6d425eababcb41cf47cd508a004964a628222af4d8a049d7d0da51bd2e2c5a1d10935c291ceee529053a5d7126d544737dbfc866af9c7803b94d46388f7cb1c03428a8580f67e413d106e1bc65ca4794e22a97b9b30887a408b3afcc89bbf12e7c962fa7abc566cb5b4147ab1da02d2ac0dda2cfdf52f5e4a179e2bc308de9af848a676f3c3d026836b110da01bbe087c613ea6a364ab98d73628d1f9e4bc88d0421ade48692f641ab46ba6dd9c7d936475b98433dcffdcfe5f8eb1d7911fe4f584869413bf1cf5d156a02af1b79bfe3c8b2d01c0a3d76ef0203159adecfed5d418e36ce5def56f2a5b5400c018a71b9f8cc85ac6362d03742549fa6a84b74aa7d1ac71f5295c9e15a6fb48f84d0eef256357d6f5f00d2cd27e4092714d +shared_secret: c31f7372e8c194a9589042477f34da3a60d591ea65e13bcccc07ba59402ede6d + +# Official test vector 20, seed: "81401db81138d6874e91b7c11d59596e4ace543f5a3471b6fb00999221765fec3ca057abe20f03b2d59003375fd71fe8" +entropy: 8d667921c5db401a86fe1c35dfcf164a6bb2ab7400fd6a0b67eafd4a0ed11940 +public_key = 801c4c929171c164522aa3ac2361b8c80b8cd3e644f7d169f9a20380bc575968901ed7783b6969c57461dd879d4781bda106a913c629be512788d4c1f92a71f9f819ab7207d1a65499e061c5e0447360b4e70503bd58511e4c3333556b75f6a8945b8661d0572c764c82ca70ec870ccde0cc5810b816c10a46491e091c75f8b24eb975867e179d38345bdedc627a725b4d732b7b453d9b15710fe7afbc55beb26c77e9e8a58bfa764fa430f1901928fa4ea1eabe2ee827d44191708310b5e708dea4c5242a8949f658b548a2ad1badb9a6322c56697b513bc1c29872b56fe1e32d9271b44ea0b43bb896ca9a7358f45e1f1821fcb361c6ea91abca91ce95a75588402d1217d1e37a80b3c880aa83c31c5683783e3bc77bc231afc0172beb9957fd7228d8589bc171a2fe24757400cc7e9cab13d90a2cc12b771725e0f2180acc221fe5879a317fb93a10682044d6e22ac67c0722c1062ee70959333c08aaa16bd9cc1b624405f40b78411baf7bcb4af46b80ab021d7c8a02ec8d0417b759cb2dce94409be96f5b5abd1e207a9b906c71c18c763414b2d48d77c19d8e617dc4e41c3328ae39c18aa9aca985964597686c919584114c4b2429308e123fbe9a8fb86327054817bca07df8c7adb4e2a941742395cb6ea24c6106eb95cc0868f8a6452efc5aed297d933919b39a8da93137925b87ada9a5cbfc5a541c2395bbca59f95ab2c4a5352831f0d143dac60b418c2051390396326d49e27b7b6159c43b5de3e40d05956dab59088f417302588e38c1a21261c62abc8891e44ec4c7395421ac09e1b448bc2349dc88c571c74e470474935ec58001be48b854a13d9855b8c87131985c91484a695ce9931267c1d0d0b9ceb4bc7c4a11676c267958566d59431a630d4ecaa8beb98bafd22172a30e14c9acdba26922f0aae067c9a0e9b658630873139b9555b63a73bf8c65319d9423d4a927abe86a95b383a7c0c8c54170dcc70a535b1fd814cb6c87900ea94eed7b51cba571dc7b5e6370bf4928bbb27b1f66d770e43cbbf3ec0c615521e2b8adddb42971a12db3a208f6b690289b059913760471367b4154113c14606c046a9591aa744683c4024b857293eb0e02ec7c75270c571248c0aacfa7e47a35e72157877847db1efd73c0922cb211c4538d018c05382e9c97c3d98cb375f78d056196466519baf3312559315796ce3504731e811432a83294d75d8365391fb348f0136a7fd90921fc3844f57d286845d6d663e855b50d884f511a2020b09048298dc4da2be4a8398d260ca4735d84f2b66b2405d48032cf3174fb36b325e723af241d280863b4d2099fb429c0414433786d33f880d7a15d3fe019e75861c7836490ca2a5b0771ecf904f794c746b4244d99226899c847814967454d7a4aa0fa743e2d2838bc9461446b61d9b006b4240098f37021c7631131a84bd75d33374b9067aff5e900c4d0490995875606a7baf87b8f4960dc84a7eba96f4055ab6043c9fab61fbed883705893aa89899ab975284867f63035a392902a779c8df9cc63a1b944943691b770a9646cc731a93f6cb3dc3b183b71429770032d08a778217f9b72bb16ca81f07c66d436396038372aeb8edc031083d95399084751bb9f3d32490393b510796c16c630cd2d7e0666cab62b5d904b +result: pass +ciphertext: 6aa845cf5cc8f06368e022af35d4fb1ffd740c05adccdb4f92b1f2b77b27a219dbf3e898d79dfd01d8bb73b1a9031028ba2d3ee9e02a2237bb106d1ebc05495c547fd93db7d3ca9b508a75525b13c5ede34944e8931b1c1b60329b96b49a080520442fadef089077289e7cf0570947f927449dd90c296a95306a6de4d801c06801117237feb842bb4cc9941a578fc6b06ca2763ec5f24ed083fdfaaa2bf77aaac924e1c4add5721bc9f23f918eeea2657f0e65f16f9c504282c18f588c6bcf684cf742acc6a96e33fc6bc100026753e9ffba26b4d73c915715a2827e92e19ecebb973f8fa664da4b6b464cee0024b05c3af87e28718eac5074e66992974bcddae43bb552d4be86650fa879dced0617f869a8b9933b0fdc7589c1d5125d58eaca6661d6a3d38d436a55e7aa6735514ada503df971ca3a507ba6c515b58214cdf146aef335f6e8427d794d576f9bfa677358dfe57663b0e1c5dd762bca16bef9d94fc8663c66d4465aeb8196ff85365cfb2c9b1315c2b444e5df7c710c68b08112aeb209cf8d166b9a7920005191a2530b8a8705e4b8ad5a913c08e2b68891583817bc0fb7c8bc0ab700275b81f32ebe4ae4c3c360ae7a0bfc60f3400fc1cd4b3da233476147790c8a63fd8c1d5be09bb516ac4ced4d6661897320186d7d150af8077db1d524444aee7cd374aaab5439621e0c4b5f72290dc24116afa792a332102a671547d38f9b93078be4ac7f3dd35c1eee5414a57db7a4187a6e3125142c81474c4deb9829f704835a4efc214184b1c88213e39ca70af72fb5e7d5ea58b43e829ed2b944787eaffcaf0ca13318a0d2c94cc6eca65d25d3c55038e270ffcc4069102acea6c5e6ec8de8b7c76e871dfd8b1c9a235d1bd2060e26c5a8fd13fb3017ea1fbfa72c608632abfcab1dad682adb2819dea4c7363c9ce3e1a117776712d2884968d9b56173e1fe46f8cb83a027e39693a036b749532320a9e5fad26dc90e91b44c53cf041dac798ebfa1a5cb444ee782d4788ab24880a6577398424d348ecdc45242b46b299840a9b01e11746eed2f975dd58cca828ba746764c5d1cb3a392eab866239a553c52e0e72e88bbe8063876c98d38956ac1ef62763acec6f8ed9ae6546c145090cd990149b7c57fe84ea4657310486e73d85d3f78cf82ef923685042f1c6cef7c7bbd53c809fb8bb535a3ed305c23810ba2a4f9f63da4b7a4cb45599869b57e4f4fcaa3db95be0ed98ac715a564f31c99aabcd8a37d2ec38ef929a15ffd16ec33afc8d7e5c6cae3b8cda327fdaf7bef466a24cf7ab348f798fd8a9e12e9a4d21a34f373b60926b7582d504071e0735affd8d41287ca37e152fb4bb2bd335f64d8372bc4a6ffd472849d7db497f1052599e7eb7a5acd0042e473d303dbd86241966d6990ed019b1d1000a592397495e1e599f15cee611ffbc9ed50af3f29a9d4b27ae92004ff02c0b37fdc04db01e0a07bcad738d73845074bb05b5952c701c5b1eb6a2af17ad5d20c1beb910fbe0c21d0c5eab751bb6d725d +shared_secret: 9dfd08dbf59350ae2308096f935c6767daeddeb2c6997992d4a02c14b0e58c60 + +# Official test vector 21, seed: "30b5de5b73681ec08aaa03f6f2d2169525d25f4042a5e3695a20a52ca54927b85f8bb948fc21df7defc3910b28674994" +entropy: ec750b3939385a3f8df868119dc76f77ca845567ef068de6ada5478a56bc78b6 +public_key = daf0b0019241e200929c660cf7770e111043c8dc4af1014f7ceba48a445815408b2823666c6b40684616d823c86787a412c26e521ac8c16868d7eb5646909027820444b8bff59ab46086631d5a0761a75a79d76468b74fd8c20cb9784929f2a78ad1882a094619325cdfd05de5a30d622551c840ac79b0b5b7a513f702cf58333f8b0382ce055a4c138c80764b8f882cf14324015212034581b2876efbc3ae9687cdd7f2acb964cc18ba90005730d55673bd519be3173d3e231166c7ac0193a4fd26085bcc6607d4a6f73367efb5ac1a1a063fac0207766da41901b8a61ec7e45bcdb73584b5891ef112251a84e9c07ae7c16f52362cef10aa3cd69927db4175ba47e225a220dc2653a58dc9854210087ecc2486ab13408f92bf902635d2ac331ec1c95402bb55b73b5cf063d3885fd1874d5b03100a993eaca11e978393ff33a31b6a98f72479ad9b88d3d1395c2726ed285b793c489e09a8a7bc744b361ec87427c399290d092a1d58a5007ab2209044895941088a81b1b44175ba3e7b038ed17b1b0cd5bbdd1bbea3f58812a51ae58216b1c18907f131a80897353a328435b927d377a45a6be2310cb22076cc428371d4b772ebcead61c765c875312cc91e73b20be811706caa4b52b089ea1e43d7b61cf4b705c1b7b3739fb92c53268a685c03723b4bc316f679f4d8b87375a4188382e711b1911502e502a3f523bd5531b30298815717ce2211283cd675ef106ac5d4c37a6809d7e3bf3e3c40c6c5092c34198659849713c090db27c78689c6d57ddc90c04bf1af5cd56b11c013ee7126958aba8ba7284ed58828f1384786379eb0bb2b8c50a504a3b0fb83eb5964ed6c20b908731ca5c13d980d9a1c0af7c7527da50262c65f7c2132355aacebc1ae5fa7059e7310d6d95da97871c50a17c0d1c68dcb6bd7a9a697b9bd9bf15a643748c83bc8b244058f0c93e7d1a99111ac6f046a5cd1713d977650935ca5925d6e10c84c7ac692527e27c8465ea46fce97c64dc66eb1110188c7a3afbc94c1423a845b3530e35540805c881b999a6b28ef185273e584b9acaf26746829fc6b1c88ac03578f98e71b67f5101de2233c841d2f303c52a500b3d1bbca883fe49b5a233b270bdca755658448666dff384efc9cb26a664106c49aa46c4237d9ae0ef37df159a0c9e880d7247566113c12bc4451f4c6b4946cf76c7b57f737032741a3047934b09e697acb2210b05b17047ea8a460e4cd9e7068b4202a8912812a04286208202de04d0c91b9d62992de76497dd0986917592e9902f33c4999916576eca4bc8495fc7233ea94671a3588adba1355804f1c475ebd788d683967aaf9b07a3cc9ec4c2c91a61e0456c18dda1a238132d2eabff8002c0ea6ad88d3ae3f4769e298aaf954550fa3cf86944184da2cc7303f1be393b6580cdc1a0e55bc3be7300166d570fc4b8644156cfd6c8975c29059c7a550d4b63d242b3e11b887a31bf764a911ac62801a6845d6589b0acc55e4c80cb37a3784ab8c048abe21204b152069fba2d6b75cad8ab3f133678889a99d346e3b49c0c41147deaac27bfb7c8aa3810e3b74bc0b205f02753a48457bd4b7b624a3fba1443217a88c65c5f63a0793951666453692c56b790391a7c9297e5224771c7a441d5363741dce698c33558c584f +result: pass +ciphertext: ad805761011ebcebc43ee0c2d4dd21a0b6ec492ea384e8112c989442a37034525a90bcb6873464137955f8b8e41189fd97c281236242b48028f6a76c0732efdb86e30a449b895b75f9ca822cbcba38abd856a21cd65685abb38d5260183e52e69f696fe09439dd3e34148c9df57482b55d5ad6993c1a83876bcd4baa2dd542f3683c2c8d62db6268947aac07d6642cb09984ea122072c8fe2869e5045d30bff4f0caf63b1d51150003c459916ca2c590905aadf0dc742a2e7f4da143bebd6ccd55db94642ca09a3e62246a3a72399193e5f925a643c75bc0c7cfbed989c448d5e000d4e433162785d2b95c7e7bde8f5b4975dc8b16f236e1f8118c130dea5fdebfceab87582eebb27fe46f313fbeb5c8df0ea6ee306e7718bef06615e624e1880ab21c3cfbb53fe3fe9809e50d8480e6f9752478109e2e736fd3fac84d9b8206c40eb17b9d4c5780bb8f5fb5839cf7d3790059b63beae82c8d1af8477544710d38db1e0fe2beaae07334684526d4f5386ca5b7b4416150c2e928c015d4c5f03b1c95eb12056152bb712aafa12b1af1d252f2eb1a65df5b71292780efc41de0b4d49ecfd2de375d2550aa1f6844b06ac59b8525d4a902177279fe435ab7e36dea4ef0bb969fc5e91a6a27aca3b6abc9992aa485e80ff8103ecde1fbaca9c55dc0c90e119c81d6a737ed1c46b46fd6e5c4c424913a6553baac92612dad26ec382485a6b03be0174c2ad6f73fa111e0a6a212834b5cb644aea780b18d7ec85deca92c93776572ec1a188d6c912337b2c3d136baeb6660d12007ebc17755df4e07758a89151248b4d700336c5cafe3515484dfc9a7eae2f283f87b474d18a9d25a97a4ee564f9459a0d93452b0bcd3de0ed8b6bfac875638d80bfc1c734d8c9a203844dd30f0a352f889259684d1ef983ce65738683135afb28a74346c4b225893c4148fbb1593efd3a3c297e2fc912ea5a91cca050bf2329d3c181afc83809a5d73a8be85346771ad94080aa694a2d6fdd9d3a04d6ebb0eae3840e96c78fec095d58dde728e1c04d2f067e2832af5b1fa21bfe97e6e58d980bbddbbf7aee88f2560da4bcd5804008f7be7275eb5eebeb5bf1374bd4d72ab894b0ce892d71397ffb0f6b053af026377a192089e8f64790c178cae6e15e213957f7ba3515c3a001b1e72288828433624bdcd49cc2be5cbfa9388fb1a39312a391abe6d870f377c1c166c5f1c0f92cfac3c2a7c2bad2d1897c592a25cebb15425e9e23cdce8e0276c2aad0ad092916225c39f7d94f9432cf1622a5c3a8cc4a457d3e17358cf171a7bdca13512ed376911312efd62167896a0027e3d727c2d6284dede2dc0c3ca3e7609495f12c2204ece6e512f17af6d9391997c5b0f0c15bf9975b38c770d466919a232f66b5a376870ec57abfb6e23213ecc203f6c426a04125c61b4316f5ef9231e4789d8b20840bbd2d4141a9a7be879320616eeac398ca8b76aa95af7cc0743a3a2f2c1a116c536e7547bc93169e11c66fc5d4ed7a704582ed38ae2660d37e0dc +shared_secret: 03952e1a4915d112b87569d1f79a39f5d69a8dc11c96d70c529d2162a6024dd7 + +# Official test vector 22, seed: "e335df8fc0d890588c3e305ac92c7160ff199e07c85760a828933750e3fed8c83b0dbe802234481ecf890a32d7a2884f" +entropy: 74f1d52af09b12c36eb062ea7528550cb4c18a3ce8e4f4ea9fac43ae383bc925 +public_key = 670855bcfa888f30a50035208f5a75de6a8e3799cc4afaa7aee007788547e7b79c7507bed6a8522be18743c101463c9d0c28328a68b0d3ec380d04a20a31ab8ce6465e5aab4e2332f30870c5024718b1412c13b7094228e6f3a1a32440edba8f5ca66d968961a3f28705b9778713cd96974e42a50ee9eb61eba399cbcbccfc8786f7963c15d61ef8d194ccf37db2e16a31cb57ba79c9aa4a5da2593eb56c29498ab66f370d7b76971f797f9cd38ac3262226a64f91e03a1119b8eea00c103358572a1f4ab68f8eb4a5f889540913b23ff11768200694597d19218a2c30c3c25829467ac2d1b67f85d37522b22e7e44b950d152a8e087a3a35e3eb1c41fb15c7fc264c39272f01a0a2a91324a1ccbec627fa1ac81edb30ce0f84a727b36a4f9015a25ac67e3c76629c2347c2478d61b42bc413f6920f7b6774542bf25b92a7715745120ac1c4226e3b623860b4a42566829317e09d5868719a1e9babffba9517ac95a7c020882939cca54005f94791f37093eab5f2d15c1e7a09b9ec7b3738a197977c3ca0baf9f093271d00387841f2ab98c9cb16f19272d5e4b8d15e69da97517cf833475336d8850b5c3c87e4ef2c526b95e75060dc52c0292eb69e3f04294c854bfaa0f0fd5432dac0fbd03414b5a4a3b7c7cf36906fee8be6479c193b7336f4c870aca768d3ac2d84234b330a1f160b105214d469c8c1529bf31b3aac01a3ee1e231f389a27d4340b35a463ad002a7f8327dd5abed8b4256e87129b1be8ac475c32b97d11397db247a019533acb1a61c15b9aa4bc91d45af064a608b1926c93acb18b7c75d9798569a89a78463b51b5bbf038dae3c5cd133690ae80c1ad4541267bc10c83343a12439d6844b931a1cc79a0b5090214ca721f61e633600e8f76db52274c6c736e4c8b63089014a4012015522a9385f863507b1f1cc7c814cb47b00395724d601ad7bb27e4b0c43deab0664cc858d4a74576642eab3c76c211a58274e14f615ffe70084d7b7c0189d4d97a927a8b008b85888c57a0f6a307234344a5960836cbf6f4473ad988429a4ae3ba697bf07429d17c059a65d9e35a845735ba0a58e989307376c1e61f33023221a6611ca0465be5200363d49c53cd44b003307e5cc0c4f7b15e1545c72a7c3410ba1bebc8f7314b3b9d295c676bfe6aba9848554fdec9192f808329c60a793754bd6256cd030da12bce0d0765e51548aab0985ac86d1537ba49635641b3a26c05def260e94593b2e0558567c5da09b2cb122655bc4cd3e985eeda6c3f4322765e6a808ca387cc369dc11c9dfab64d4a30584e5329c905dc480801dd57d9ac8ab4087967177cb3163cf3e934a951a3e248a54cb922b6ca6ce9b4cb8bd788023e6425e75aedcc135cd3c59920c5ed0356fc0fb5a1ec0035b7c8271726dc8d63dbab3c78326a26c5b0f9f952cde7373aeca36cf6a438fb39c38a56124171593ea3bb076320bc8b5e74204777b7120ba97c3e803560605cf80c39324a0e3045d0f687e8f219a2ce70aac209b86d869febc5b51398341827204ac584c6b3381471937e68efbe5866a8569838251171647b4127514db9b84482d5b9a89119761c7f6508a099961376d6ae3706f6ca1c7c031f430190d6231425b14c6544cabe8701f8e475892fe31b587aa42d334fd189bdf +result: pass +ciphertext: ff7b85d93c35347d0e98aa40f91253ba6c73520292eb3dfeccc37dac0112164fcc457e45f12e39aa2f7b94cb5e4038d229211c25cccaeebd8e7e08918d38b7cc302bb2015fd62a3b1fe6c56fab9294b926e425b6f8b049e8f3fccb7a6e4115df6c4ff9e8a9cef2ec7c7a03153f922ad5d85c6700092f131d7d88efcc76719ca35837678ba1781fe5ed8a106e1b37a5d5fb139d8fded8f980a64d54194ffd6d283d949973037261f7eeeef74ffa7795c7a47c8508dacd6dd346cbbd6bc2c6f978539132cb2a4c6f4e541cad9861f9069a810b3a465eb8f85b615aadc15305f7693b7188c9e486ab742bc024d7f8655ea08ec3d731c131da78251347eed4549cc36d510e9e6c761e4d30407e25664c9c6d1ac565f93216b99233da67132258fff4aaf0c9c2665a9afdc7c904404ce24c5a17a619a8c7120b43ae3f53a0da30caaec6d935e93d6f949292db368bf430a5891834558c978d23f2fccbe45d63c69dca748dfdbd05c72a9e116c2a5519c22d1ce1edd151e45c249d3660840381a3a27e9bdfd56479c31fc4fdeee7c2475d8aed29c8bdae54add3c2d91033f6d7a0ea2de783813b332bf3f2088df7111535768b8de8461eec59401484f404e59ea769b107b7ea6d9fbca55400ea73275a68ff616006c3000b7111cf85c96203e1286f6dba554f06b104295ecd4d78b4af5bed95a5ed586518e4e213c7cb61784a054f6098bc6594de6b34a099dc2999e726377eeee7f0b2fd02a718d0a605ef67d5cfcfb93b14f7a340140c02e1b843498378ca0beaefea89668dc03316c14da4cf3ce86da691d098e5d318b9095a2eee24c782e9f3576521c027ed063991544e8c65e6fa0a6edf25666a81223b9976651ca614939bf75c1586d586a6bf8429e7f174867acf873cbb6b6393d21b621005cbfaeff15f22b383de2ce9e2af54927b53ba29e406869f0b6bc172825e839459cd7420d05441f6b36541cbe9c46639b2d6f00867af7ae3cde974c00caa724fe3b48c928649e66e3792fbd5330cb6691f442617e63e0aa535952984373fd1f1016bd37de960065604b47ee621a8301fa5c087d2f4f5951b6eeda95e4065413da627b4aae73446c59044eddecd906c101efab00792026e706ecfb33615486623643e8ef5bd29e210bc2e1574adaf02766c62ad6f526b5a33836f2034ad787e9264abdfd068b5be29744d4fb3e4151494cdf007317bb161658e7e37b8994904de17acc7548fc02f08aadfa0522d441e1dd79f97a40c231baada2376197171a59812b4282ac111ffa4dd04f1c117815a965ef74de935ffd96fafa491f496b7648dcf365c18e8041c16b5068bc824474e0843201c84e538f6f9397a816124e3d58ac92081b4e13f55c95d8e0f1ca0de2218537ff4e677afd867a93ff339f10ebe8fc0456d9e7e8c5e2dbf6775606d8d6c946146340cdefe90c98145fddfc1ab102e8867e476645c693e8907c07508c433870eba5e466588289dc942bfd1091980c9c1e83d07f31dc493051923d9ffe9296570810106 +shared_secret: 6d2e1f456c87d5a3c79456a6d35fda52f3e9cb858f85a5f7931f532fffe26dee + +# Official test vector 23, seed: "fbea1bc2c379f4f8fdcb0de260d31cdb064c9ea9b1d6dfbe91b3692add1d34dec9c9ffae7bf5e72ed2743ba3f9f2e43d" +entropy: 4b3a70d85f640d1a2a852fb6fe96704af56a7415a8ee4282e9207bc3a2dc116a +public_key = 7dc26db4f73dd1859b06a852e89a4845a0943e5513e8a056ddcc2623034a4ef251e607268997b7e90471d5d0cfba5639da844f0c9a7227c8a22a83b9e805942b67019ebc45502c22d369abbe52a9aa6cbef78ab914337375d9c075854bc9a3484a0995a239121d918aa64b2ad76c6873790211162509ca2347366d8163803c3433d32068d0f8b64cf38c2370a3546083ed45716dbca7ceea50207736fa51c062a6a15ab8c124ab6b00334e03808c858ab4b20a368df787cde92169aa4100a2adbb4699510753b80a63b492c51f43a81be012fa13405ccbb0dcf1166ef55f450781244420a0ac9301d485ab561b9ab67f5805afff924c1f43a5b1628f60baca631931bfc6c9bb04d0fb3727d7ab6bcd6cadffe84ca57851ee201f8153ae6d64c0d2aaa432baaa0539a17e731cf4360ee37c0e38e0cd77ca85e817a827173bd9c0ad253a44fb244f47f956146b4281109297b05a9320953c022024373d60701a68450cca32883848c4cff3c64f548cf7912ff61a11f06030c5eb29fbf8bdd2b16541fa85b8683493e8239e22c01383985aca367d6cba52c7808ff12b79976b794c70471ba5cc7908e4168d5c916605337f26199c34519236a855ef063423d7777631bddf164b2375098a25c9fbe9a7f9344ac12aa0b65a1380946560123f82e033fe33638788c82e7abf79b2c4df9c6da2f4301d70465a3c05e3a485a26a3b8d98674d91594f24761f1654580719260c4b409b2fcc418a24082a11140d043a6dea028dea1a51e9224fddaab5f3aa64564b3c336586dd8587442800ead481c9d27ef08908b938945b7204557c38aee2753709b68088684637bd39f1b78c6929c84873822caa30b2584a02c93b085380524405caa5d9147e6c837bf0ccb1aea19db39471d1a573fd893028479391680282922b11ab4d78b407f7d68eb89b615c32593f2207a4b017fd1cb922778ca806b305600546700d9ecc70ccf292ca7ca0ce6b6fc2a79731f6a9e8b83c9492381ad561f657192bb3867d3cc663bc5ffb48c997403b4814c915616d03ca71d0e8a93ef0acab8a55a61a6a58d22845e27d6c453b79391dbe02797d390e262a6be41cb564152768a5b1f2b7306872bc9dd63327e22e518082ad337f0eb8494ea23e7c730f48e94d21ca9ca3f660d4f960a6285f1e586d04120a083b814ec4229717b23b73c0c14aa6bd45294601bcaa89429814ad6e8a6190289758354043eb6d81842a6f332524da9e63dc7570865695c043c9eb9c5925bf4c4b15bee14aa58a09c4d37c822ba891f2626a414d01a10f9fbcbde5609bf4d982e23392a4cc16c461260bc518717584bfb96e6960b6d4b673f61663be1b2babe74d46494ca9576f3200ae3ca8a58de308d8e99b65384ccc30aa1669898722b1a76c87dcc276474a74c2985e746194844c0e98f811dec520bb54a1b4572b0c39ad04820f8ea878baa9caf03018d4a196c5363f55373ef5a98890c719b7a019d0eb023e319241081694e74bafda502529020a8b8f1590b73d1bc36ccbc8d4bb76c44361309977270231a51a7999e65b923b1200366ef381b8fcf8c4c5d3add0c465f7db79f7563dcc67940312ca49981581a798ae477915f078f11023c50efef1acf4f751801bfeaa5ef93fe27771a40a3d377f0f1b1655f6ed13320e +result: pass +ciphertext: 5d1369e253686734a5e45c65a04129cc5fcc91ceb595fec77e2850088fe1084c3f2ab3587897c3658661e3cffe185f4a0433034b56aeaa430b5a898a1f682817c406e4219566235f78e8b4b6927e63b3fc55bfde580c381f74e4d8b708fda0156e9ba2bd0eba3927601879af7762a6362ce233b87ddc0c61870a75812aaf92ef6cfbeff50ba7dcd21f0ff403c15e6cd1be9dba02f3f426d935c13cc703766115018155648d8db45457bb17026af70212994a87fff10632249c3e87716cbd1d13d8817fe5aeb748aae801970d8b21a575bd1dff893432740d6edd652fedaa89cc026027f72d71946e67eded2b0e84dfc0e6e103d1c4dd1120be5b09980fa35ab88e5d5714739387d18aa80d1743579e220ca410f404513b8bae90d64751306e70b78de2838406dabbddad7bdb5668a180ba02c1d44c20d12402a49492b4a4eb26c9d091316c504ec7d726b904d333e6ae33b0adc8673f577d23962d1e3453560c7a07bdd400d60473b978f3a6860af623130a1a4673d3ac6d7658df376a8ce2a91dcca9026ab9d1789d35e89a05b3c298d308fe7f20bea5db11d68794f2721dedb3813d3e3c58b487ec1a44f65d80b11e0d73500ca06dad337fbe26bddfa3b72f674a608e8bf692bf122b624bb8c98cd9ac5890c774f558c2141155f658806111b4e645b07bd23260c2b8d4c88eb97b418f734fb0909a95819e74dced41551a5fc4f9743d19b66a4afda8e23d0f08caf69b4223286ee80da4ba6cc0a8071434823dabcd984b086c4b0b5d9c25bfbb7a80a3c65b4c246cc6304d7967f5c42068655f704ca329a0b671b58c93a8775d4884f0e8f8debc053a7e03338eb133870f7103a434f2f27132a0cb9bf2bc102d42394c08a621ae13cfad170969a9a8937f6bc519d5d467e63fbd98473c6db0582734c23c19cd6ac4d56e106a945ab75b23166325f33d198da7a4f7dd9ba4917da1365f248e237dbee6c19a5022ab62d86ebe2fb8ad0a35f838be5ae0184b13bbb36e8564979f6b0a6548004956cc49bc94a104a57a26b989df283e0e6ecf26f50e896183391760d757dc78d7eeec296378694343ca84b7fcf751e7dac4a889ed170928a60360a5fe2d979a766b146c2689f2299d9505fdc2f91369e4b58b432c346bf1a96d085e7a364f898bbbb258a0adddc46a4d126cdc89b6bf7674cd7e980e4cd7acb2220aa9b3adf1c9b89953825d9e1e503476a0865a66b44ca2efc23eaaacad5aa4c66b97bafd6cff9a73b1df12e92f02c6fe8402197da45798309800fb3911a8890e66cf4f094e0c0d7703d6600cb1ffb2c1dd43a9058175c86dbd0f3d6a0c29979c3b6278e2db8956ecb9aba710a5f1c90bfea10fc27a9603f8b4d289fc465f7276c8745d11855966f944c85a0ca16a004543ca7e7258f8bb975a3221d6805eadd906572f02b999e9d190c189c51523bb7c7cdcd813aaf116e813e1ea0ca8ae6c8a80d569e02ba2d666f54ae85f5cb1f22983783e9c1fbfbea8619a50578c43c2601efd0b46cb640947cf1e4406 +shared_secret: 5c7c5cafe1fd7f3d12431ae93815c03419ff95b132caf568671ec23bdc74381c + +# Official test vector 24, seed: "7e87fb886bc3c7c9fc12569f465d2ecd12532e76cc27c65644c8d3dd603b0cb2d036c5974e675058f271d5c82ad7a813" +entropy: 26e38ac804fb5b4d59ddf747715e7e6041d875f99c7b638024b4af82d622da60 +public_key = 790847ed9a831c0cc2acbaa793c41913a02db8ac1c6bf056573bb75e2990a6fcb732c3461ccb174dab8ea4c55781317e400ab4ef68138ff84c27fc0bc4c68e30eb664cc8bb32b617916c155d28a195fc39a1a0419af64a59c99664f744a375113228ba3730752ce5a06701112d7328649a3755b45ad6bc4bc0859feb014e185b2e18603ea0437b31432457b36d13a5ae96b03905bb2fd0d5377eb04f34a68c57448e7909cc660a31d9f9540af17324e4b31bf04f465665b5538f7351687f238d6c423c9237b5ca35618f092cf7da879d965b67b1cdb2467c9ef3862f260c04727594aa6286f4035f0b0eeeb4b141306cf7d9c4a6bb942b7a1e30b56ae958b16c3c1237603ae6f879dc9ca96a2439e26c0834369e8b041c6327254608ad3727cdf23b842a003b91d1aee60193ae1497d5b75e2a370147f052a08b1f86179bad52605df44f6c99c75df478017318c6ba017a1b4a8302888f495acf796e0745adb0292ea6b5526fe43f96e20d98fb756b2553a9493401d4a25b9bbac13b62967a228bb6446b2067063619af66383e6bc2b3d8cbb9e6969196bb45d665bce49284c5b50f934774d500c90134535930ad2169488c4ba8ac0854f36e085318a293bd65ea8e033c754ea44191d9ac8033c031e066b2021c13fa11a15222cab4829a5c47df7418761620aad92135169e0f008760ba30a289cd41f1325a4c90334978c5176cdc5496962443b118a641d6130baca422d89fac5c968adb461ab43729b6c9b1349e71116c0226b55fc00323d6a74c03282f24997949207d72ce58fa4d87a7413c3bbaeac91fb2131c418c11ba501701549efb25cdf560239223c90e1a2f99897fad594930848a1ba2494fa87bc03c57c7bc33463b77ef80b978724153a956779028b7a565c40144047747e124c7db801d309333d3150493c3b3ab68c34c939243454d90c3c4079174a8171c77a0b0c9e54277b5bbc5033eb1eba3cac86039492b4e75a23c8c51c88177edd639a55b56fc557b580b03935765cf586c95178c330319c70a8c15c95fc18a23da11798cf6c54f68bfb766a61a9c9c461b766b4a00608575c4309a621b28d27122cbbcc76c30a30286483ba85a68524c0e21591b7347a0ac0931e121eb3bb8d0fb7d9ec577a5821487619e196400c2169a42a71c7665505bf333ac70267bb50380b947ffd54745e41de5a30a27b78a62f43786ac88b2012de563cde100358065485a73505982a265a505ed85cadc02228ff90a03d088da7410c6179558d52ca36ba1d87353985189a709a1c0a7a10cd8513c4aa26d27cf802027aa8c5bb99c12a51b7f16e10838500132cc24d79c805cf11a5bac88c4bb0377ebcc4fe7c6ffb927ebe7234016bcc1765ae9e72e62d51f9cd91017f508ae207d181ab0c4dcc8d1c4742494876d118f40c84e2706914c65a161d184a5765aec67c9dcfa4bf3418e114c6f3cc34e94a149fc84b041853af9b213759cc5a181abd5641285613875367842f1a2549c09eb9b1dbd851365d58e6335c91ee7ade6c23135c1200cfc1de3f5cf6fd13967150f01053b943c3389bc4670da9857ccc32528920f781cbf16a9dde2299db9912e87321c02aac45c4820ba2e808666ee521dc4bed006527df29a124412a4a19aa26c09b490188ccba53900a2545022 +result: pass +ciphertext: a38d892bddd188709af0e4b7ddf0672f8729ffcef2acf0be8fe4e246f83bf39ad529634a3720388c5e2295f5a071e27ed7d75d8932dd05e0182b92f98d16c4749e65d2aa96c6b45382d5c83cf6e37f30d395b289e11cfe8e108c50bb61c96749b2474492dbca1035f42dbf35f73e6d458151e37d1df2bd2d1e0965ff87f607897139450f4d17d4e13eb099c5c79cb2aaed233cc4c9eff06f38d2e910f648b07d5ceb12c30c7daaf85e3ec5906827e923658cae07f9b4e983b7d982c98fea5a3f46d5acb6bfec399e61fa7e2e64353c7ded3c7dd1d3b8bcebfe9a59c29f22d2e5dd29afcce64292480c6b6a7eb3a5f08abd7afa8641856ba7cb706355fdbfeb7db58f476a79138ffc03d945c5107a126233107fe54778e8aad57a905e97fcba09c242ee016dfab5fe3648e2dbbcf07b488e1f2d60da78307e3f9e318b7a8fc99cfbf67b3137afcae6bf9c1a7d005871bf59bca9ffed32467e04767b99b7e0e5f75c21f23c80ab76e0acde939500349e954578f0d7b0bb7972eb2e910e90fda97876d70886fdbbe3e6e4c04551eba13de33f9eb88fb9bb5c669743aa78450f658df9209e29a5d81e989aad45f006deca4c802366a18988a8f99481abccfd19da9879b702a7f6c4fe7b5aabb07e0958c4c5094ffbc0692abc928907283202e0fe512bd5fd78b49846b25f9a32a3d92d1125f9ba5620618ac27a25f6002990f6959e05658a2ab6fe88b6f055b47951fa9cdb27a8b6ff9dd69c30231c1751805ac7d98b00733ecc0309db2e856765ab9993d9d78bc10b0023b5ec237bc97bb944cd7de18e2fd0b1837f50109762c98e66859b4cf3d10a79e3a7b24f5b67e0385a68657f31d34b39f0c8c01135ac10ed79adbddb66f762ad4f20ae4d61b8b0e83d6f35f4fcf270b45364a459c9e276527365ec69bbf39c85ea8e8c24e7a6b5e4cba67fa8f476b8d57642cf1d6ffb1aee8bf475d66dd63c2d9141bc51d569037c0ae82638bbf9f5f66e04fbf21b8eb87c4ea2c701d05905441544d2934308ae1d22483e91e7fb9aa69ed86ad414764419781f249e215f4c3a273bb4b7ce2886f2ad8169f15c75705bed9ab8196700f5f10268c5d32790a8f0a26d5214151ffb62f1b3728279da8cedbfc9408a2b4811e408c5bb7b3ce1c01b8c22acc32796b5bf3963e8912dd997be5cb19c41a2861272efdc64bf799eb1e601c108e4394e8cf09137d58c34a2592a3fdcf2d969eed043518d17d8b160879c9afb8224dd0bd3d2840e833a908797b7038d250d18c3bdaad72496a5a445d1b36a165717f6af7f8b8b1919171d2e1c8365b94b23ea84a0344819c3828d8c8dba63046f15dd18f679a55f526e7ff78e066f4d06133957b73cb1e1660755229d3312a14a8f194dd0e10aabd845cf8f63c63e26360f30f1eabf02b05b20b3cb615083e6b1942e304893c308948e73084f5c88328f550ecb5f01bee599acc8db52f317f3d7790343b8a084e60926b785bf17863708b0d92a1bfb63a94cb97c8f9072965bbb84134ac114ffdfc6 +shared_secret: 1427c322f72898a0fffd13f674719c9288d524bdd19e6a362533c1108e3a6d2c + +# Official test vector 25, seed: "ad1424e804f306c7ff513da4c1e8d445afca7bc942fac5c0b335733aaf70693712ecbde26ea726ee0f9fd9d52a83b1a4" +entropy: a319d2b8f114f1acd866478bcdeba6fd164dc4e37b0adfa8d8034afb3e197376 +public_key = 39dabcbaa131e892a48fbb80f78961f9c440322b49edb03f0e554328eac7c0b3ceef957a82370a8e8169cb24a81595cc89f95d70179834da375d55a1d16a7a8fac8e7da64508c97f4f7a53066ac34d407b42a6be091696351b3fb1f12c05e5429cb0a14208336e110ae4b89fc9b91edd0037392948e7d3beb78b880d3c6d933a73bf909593a0654ea18a5cec051cd17c25abb7020487579a98f62b49c2969e3df7407f9bbf0b01237a0994cc7312b0992cba7566cfc2818db511d37b1f06781b3dab99db5268f527123a0366bf481faaeca57e16b37e27758c8b83125049f3f38681ba5438a795021652b5f81c02876c0f404b44f06976e368aa2cb923081e3dd07781562ae4750bc5f3809226ae6f100fb8f67faa433b66f8153d6a1b846c589b471ea6479bdb05c741dabf217a6177f2ae8224bd05b46de5f1a42ae20a1e641238f541fd282dff3821414890600a970811795c993c8ba5418a8732b6c8b8abf738fc5ca7d32aa3f87884021968a93cc271a490de61c5f8143be65485c9f34f0d433e492bbc5e215cfa037428a51d5921404d89aa0ba6181f5294d706786a30508c5990ad24c7bb6a70d6017207d3c03100a222396c44752579859e07315cf9c397549708901748c6958cbfd41e9d2880e9773ff03808480bb38c36bdefaa5f81f85700fac88ca85829e03d9bb845227a0a799b156d0952d0c54bd5b010c565a381b55885d26cd9e9b82d21a31354c17d2bcd43d93946bb58ed2a57c13509e9537fe879714c64cdbc842e93326aac0944cb3898335004d0fc9c81546086f29136227efbc798032aaf0cba0f3c6aac788886e03c87245964c99c18e62c008d646621d127856c7559370f5fa26301321bdcf502d1d12305002b2ae42e61209892d7b3afaa6cbfa9a38ac097cb26c4745a4eae395a1b10bf80829d1b216b4da59fcb4a2a57d4070ac2ab59a82b6af3b0682b53f9928f7759ce20e1a09042948ba966cee8bd176b2ec6880c063b3ed6d1160fb26714b3ae7b44a4ce6c759555c6e478c0a71a90b62a8cf8f282a4f7c21c31c5becac2595a766a977c886009e9414123e5723e101e667647bb9a2489b3acd17a81ffb4512516893ceba8838949e998043713bb41073013d487cba107f31c84480a0ce4378732d9446970716365278f70719da66ddd8283d62190530566904221b383441124b6f3d47103d64983898f8d83a4fef6489b0c08a11b82d30cc4d9eb4fd0d99085c875dd4801e3902405f0b292b8487a72867e67200c9231ffdb43e2048caaa203c7883218f9a1af7a365a19b0d2fa595a087b2afa1f16686dbd24a98b931a5999483d467d2d264b21ba527ca419b6523fc046bf7fa96bf0a277af5094f3362dc863b8bc2192e5d78173d77139d6ad07e091e7ea507f2a7a9bf982aac812f736c787c27b04e25d1cb74d5d01c3fe6aa2e7248921225632a5033fc6342495167405028d410bc42c8bdb498d9a5260693ba326e2230c6040f332454f3b2020280ffe6bb0b7021f4ea6bb4c06980b62a9b6c89a935ac206b13e091c3c6ae609417ab8c66b7bce94986e92596ee64b08a53844b706f84731755ca02c7c49906cbbdce97c64019a52f278c2f286eacd5a261f5b502251ec136ec0a3c697fc30e8b59807dff5dced3d6bef9c96bf +result: pass +ciphertext: 33cb33056875df21862840d7123c9d3fefec700b24a5241c24492dc094f644b5b601b974ea625b315ea7efcc27a096acefb7be53e635497185de6170320d3ca22cf41c1634fb16460723ba0da2d9c2464ca557ffedf4150e0a71d7f0b7ac64568ca2eec8a66e16f02c92f313666e67e4a0de221b3617dc59fc32541c5839325c48e7cb0381e1366f8554c1569a58e0427e3e516a5bc575438c1b464900d2f05bfa20892d6838a726ec8ee5c6e2e847a781c606d6a28dc89db35d7346e41fe8742c15f22790848a95e1648684f77d21ecd2a7642be1cf37cc1999afaeda5bb025843b4dc9a2fdd1284f5ebe880c6cef05973ef6fb939e2d39c5083d9366fd862f6de4d761b67fa99b1bbefc1a71eab5ee2815452c411f09def608c236e2c13ab35122f24ae529a2bda8ae80f66d326f646b3e9cac155fe4c765f18b2aadc455902f0f9cca178a0215463008749e7c5a64d010959842e00e830bea02debeb3da2f3f7297e03f41e4d304818e5e7854ee3c578ae69bb1795b7d62657eab867f182db15cf79f789a31377afc0a8a0adc51d1a8168ed9c531798b66b8e50b2bc4c6209eb19b8fcfc9de357653bdede452dd7e80ae3a7bb4b9dd50f384aafa3a85c484b8d5044f296cca7428109f4d6370598a483eed28c58d6e401765f9679b980e4346799ce9834a60c145d74e58c166a487b4e94640041af88eec4ff9606ff0476b48ed3c188257836e2bc5770b313ab7782807c8f387aff9777d16d5ab2439b65e9fe9d01e8bf1d4df96c1d9537dd1ce1cb5f51d14d05332bbf0d83f20087088800d4de838945502ceb034f77fc2d7aabcaf3f362071199369d64e5ed25378d39aa5b39e53814a5aa7a3c302b2f4808d1477dd04f695104a17355dfac04ed0916097bb6b4365d7ef07b4b414729a52e75278434e2d69ed838405d4ccca22cc1fa61b57483d5634a1c1e250e500e6e5c2c4a3794c0e201a68d1fac6a27ac079a79e744727fbb3d5807100480bfbacf5dfcf594998bf8e2c99766d4309bc89aba138dbc9051e7f3396e9767651c27948e04097cf2a175326434be72e1afa89c0d42a80600cbfa275a8a53c860135d54a4076e9f7276007a12261ac24203a22ea0e2f414951560aeef26a00e193cf42ccbf49c4f27e2a4e497f814fc165637c4f1ad890f56de8b0b6973f8479aefa080afb0d91ba777c58fd1ac73215cc225df9a092301f23e5190efe8d3d634f356bf170959ad1dbed270df0cf2671bdfbb2d12c15006651910b3adac8bbbd57512ae149f0746cfd5f4d9e0e6b409db6ec314a21025aecdcac16fb2a36789127162f1eaed305eb20a506c61fdb3e5a8ba26b7e03481d461d17acb86741f81a19d6af0a18866d04fa346a3c6bb6ff72d828df88a1290c018d9585f3ce96fed7787d91d153a695852bdd272b29688f4077dc3d691397f5904d9c6320bd1a748ecdd00fe7f1114adb2e0dc33c34035a7aedc540ac3b44f5c4bd9bde63cf5343ad0bdc1b16adf13bbeace84d642253ef332a92ed483dd9 +shared_secret: d399b5ff0756707f8d1a1c2a683465c9ad4899788420643d59edf78f79b28dc1 + +# Official test vector 26, seed: "7c33ca0e987226c8524dd56c811fa4d1ccf9995b1e4e4dd5b1481974e88cfabfbf6787775c2611cefb27ed4403ea9b46" +entropy: ff646071b2509e6b75790917e08e4f0b0d9f0116ec6291c0b59eaa4b583ad830 +public_key = 185bb36d9c3ba85a46a5f605706979ebd66da03c15f1b4c25b886faca00b16e04f87b773d0b8724bb4947c615344f9466f78cae8d049876c9f7143154abc47110b0deac571bbe83577f577046830031a08b465b86e1c341c82660818cd2f8173c5c558975868f0281470f39e737b6cf964008e040382b290795254380b4850db27dff98838d9921eaa8146022937e36af6b030b8919bfea844d9d602ccb3547d5c07f612c12c3c179ffc30fe52c9273b5c0dd27934b5a41737817be0739425736bb0cdd267beacd0bd77085cd2794947051099c3848fe0aa2bcaa18f6a18afb626fdf1b977f376ea74a9cbd638932600efd84fc053650474c801b1a8ed941cc5444922915173ec1971698172f8a61730358c751d2d776d93c866c47802e2ac19c7c092aceb53996c20375b47413a66c06541b4343c548b4dc5341ea92b2266d9c0f1665719f62a72650414940bf3a20a260a5953d578d5aa48a2b670aff7512bf6937e49052c3ab8ba07016d06a9d643081dd52009b358ac13c3136cc65b0127e675bb55b8598940c054c8b797d37312a1ae48120934a559ba31042e160ddd13c744d7ac5dd614d198a33253b829016fae7ca51d397330ba1aac557a8fb56477224324924276aa52b7000f77db547a604f6d7189ef83071293465012b6133a6e1209af3009a867a46bf2868f8ab8a932784b76084998e37eaa4496c661a42e9802f5e1ca947c75bc4a572562733409757855031c9627152c02cd25a9b9725adae909175b27c53c6233e4480cd3a06954afed889ae97a091df86842483edfcb5df9a365929b6da98917ca7b025490b416a7abfda408f07429244a9202a23d23ea8ae96bc8ddd747d1eb9b79a3cf3610bc4eb56f9de38c3fb77db2740504e85107f46896202684db8103b1c488e9b731f0a2bcc40b563226d05946c9fcc1a4e287628bc4985189e05a5174709f00c43eda4897429773140b30bcc090ada25c91b8858f07068bc6c154030f048c1a7002ab58e157ee5b0e682877372426e193cbbdd3c63dec0a725c90d29411986a249cb30ecd981a92519ece4074f18ab92967220ac1c963503a295c570d7084c2917ec9b6a4663a931d6a505d11757ab2935fa708e9b6ad5fc1187f3717c6a4a818d57cf5395626c8a3917012fba13315902391116ff5015051dc8d07ec0716356d20a184458b4089a37fa9a713aa35c8ad1635a7fb49e6bb44cdf4628a3b84b9869dd760262cc487f44a361b9c1106553338cc5dd71c45c37a3bde98036f45231dea2a83001d82203b27aa054cd1bfcd215f477a7e43d31d946971b0d3223868922699b0d810b6fbcc834104bc0ba2cc7a50bc198616468c212c9b9dab2550282a9b88f8a1b6d006ba801544b62564dc05cad68d7f6b143222a5bb28bc9cb57788d417fdb73bd0778fe0529a35190b0912623df81a7387cef7d201aa007a199735bc3aaef9706c6dfa1b0256b872320459951111b90caf3202ceb8c10a480addf08dae881eecd0cec08a2adc61c20e8c15b60824653492e603bc3c203fc35ca536fb7c64084112c878741b83870620eda2997f38aff953217bec592eea7947e8be23fb627251c13fdc9bb0b705491151b8197cb07ec66dd1d49dab7f9d23aa8ffa435f2cc7a7a3a1cddab6e37ab7be45fbbc8a +result: pass +ciphertext: 61d4f41e6582007daff044918721194b5897db5c463d6c48c80ac7c37dd0b829bee3d0aa6b7af4a6acd827bf30df2b87f4420c984548f057c1eb6e7b17b19e4f61aac5ff5b8d3357a2a7df2356d8ccb697004f762df71a854322981b85a6a753a633305a140c89bbb6b698db44ef4bbe945f03718f9a9f55bdfede24104a10273321c5a2289ecb78a8d2d99dea4aa57ceb1d1179f0c71c8bc2d2b16f7f41eced3819351a463f302c5b35b45658154326c8787c555fc0336be1aa05081f4d6aa6649f7924b0e8e0575259929befed461636751fd0e27ddb9bd92a1b2f8cb718961cb1005bde873cb4489d02068a5129e83162b5fe70a4567458176e9fd2f0a5a27b5ef74a081912d6fb9a83a07cae9cf9442e2d34d076008b99275a7d49fea0b8f0261c0f2743493493113c490eddeb07e43eade98b15cf24b9f7a081fde0aa77978c41a62f9eb78b90d914f0110cc8650c01de496c81a7c88e038cdcdd8105b800a2b5f313ff803fe776f237f94415e74d6e61727862c46d70eeb517a71a5a6f754d199cdd70ca4369a4db39c9c6112f4f9bee3987c72e855fa937137468fda364937cb62412614536b837064937a5d626906ce0e83b7466cbb1a2242c893df8606eb533295b044ffa108810b85877fb3b5ab3294731372fc55427536d60676ac3d161f04a0e77f919313ce0271aa303b08fb492a1895c5785bdcadc8aeba725fff3b7cc14552b367d265360fdfa1e69a6a5d773b2b07cf5fb8d95f7356acfb648c22745258d80726d0d0ad8f12982521b4de93f081e483956d5fa97648851fb00d9e4f64c3ee4f4d7a8c53767fd9df32ca9ea70cc1180287e5ef6a77e1d44f97ff955d4feeef98d68e83d3eec6216b6c1f534b3b95b8745408385326ae23410e1e7f5f06eee0494800bfd7cc5d0640f6b39eedaafe0b4d95d63c474eaee9c5ff4cbb0c87b7e8ab20b52796a0fe1836b6e8be2afea81164c6cb633fd6c7743adbbb64522ce69ba9b4f9cbc510022424d94945e0c865bc66e3b7ad206dcfec359e42d5455a933174bf720f97ffdfce647b6cc8a33e144821dfa35aefd3320aec898f6c194e2401a937c9c746db08075b0e1d9945c771b5b72b62d9f226adfbd7feb4a9c5ca838ba6fd4fe88521559cb10af57c08f512d88245df43987c1d6c9bb2fb3d82273b7190a46be158a0a1cf6beebfd951be29ca7fc2e16117e85589c22cbd88a1ee965c18933698d2dd948c0ca8776cbd6926eabe94ebb105e3c67f466c866d81bb03ddc8e11f0bb10e7d0f30b95d94cac0d5649d3fc44a5b9f6727c1b5e70791e134ec0a3e67303f6adb6ef3f57fc968aed10b13c731eb50189885b3f8076cdb2cbec95d9f2070d7e3c3e5a727ccb56653d82b1a1f7c237dbfff2b4527f97f6d383c7c4d8f5a4826521108376dd22745384524eaf90c7d91409fc003ce9cae1afa72562a7836921d3193e8f2ca8c1d35959a52e7199957f7d1b8993c2cf39988337882ba2c05a0eed718651cd2ca564b8daa895a9060d460a47cca663 +shared_secret: 1a0ad65924728c415ee9c92d0dcd91396665a24c59cba878050390acf2eb44dd + +# Official test vector 27, seed: "54770ea1252ea2857d6635151194f5f520adea8a41e409ff498d40c271359858fe2b084d5b96bee087b8e8f4dd4e00c5" +entropy: 0584270ec26f3b9818e4af074d17b2d51037cc8dfdcbe3b140fa4fed5deebc54 +public_key = e80434a94334b45589b1866bcc69bad27ba323a563f47bc34073496a468dee6013330bc9a219452caa35c1a522c45c498fd4ac5564627d564d3881c731a9856ff7619622aba6f928beb9b9373b1104e2cd2e6246bdd88268c1b512867ae4ccca21140f0c046b5e5817fd64a2f93383c3a5add2f62784e2c8e80c150a1c8e1a8a47232787ad529333a07e0c512332799d9896a6071bb4e4fab647440f82cc85630c629c2c2068037948b575a1693f81d2a045a9c5a5c2306e83b911ea1e86db5763f13ca6b02ca8905b50faadf5440bec7b49913b371f0c5786fc585dea2813fa9ced349d9fa32cb5030b5efc274522ca4c6985b9dbbb245465a8849c4c78688392b0ab5bca98b04c7bf988ea84292c8505fc7acf90199eab7c31c13252680c71c9c333e91a0adbc1bd00d023c8d7a7c9068c3fa9b3cec75234663a2b73572ecc71e53a8eb5889860a336f77bbcc1c854d0c3c61c65216373bf2603a0ee72af8f747bfbd7401bcb9d599b6cdb02c210010d0425917b72891c33c97e9b39a677010d22a784003e1b917dfa3273246acbb45a79c7848143f0b583781626ba02a94922490c7b3695a787d9ae22e5470d32cb68790d75b81c55d084a43c4399aa587e07829510220469ab5e6381517bc9059353b68160ebcb0edf969e8c317442c4058423c3356b34035b9761744fefc76145300908da3c13f95eb3065f2cbb911437cd24f815197c0dd3f9c87e3b54432c50de1c7549228c5f9c32ee8c19fc4cbb04514025645e0fd1468dfa274e59a50d62c560eb051eac35bdd148ef75b0b05357619490cbf08b0b13767557c5fdb310da985dfdb9c35580217067a8c68491ba64307a618d272363ea346629ea6885acc17733a801166fd404cca58b591b68b2c73a9e890a13bb173584d2b6db351133e75d258995ce46a8f798a44ddb8526633949e5442435c7b3c083875760c00614665c4a2ab92c378863a3755ddf681905ec2044c331c4b976f6ea5335bac739c2be9cf141a9f3ab3f669c5fc49d74f79ba066a7d03b0c2036247c86305bd45194a00e33a1179ccb8d05b374deb491bf5c1d6adc4506803a8c65b18dd6621a5820ca93c339dac2bbc098c22b4e1fca3cabe58ceab66da6a35191a29ad82c74abf1c823200bb197015e074d14f224fdf30a51bccc015a152b8443892b7450734b34e77356231c6a8016aac430db0a8954c7a416b43d49120fdc4017cb61c3bfe70fbf24773412b6a91375f381658d57677fe571c3bbc800cc80ac597a8f2c5cd1f19567ab1f4c797a68e6133507aa90d1ae096148d313b48096ab96298c33c3828d645a28098c777cc10ce068c035a71f7a2a36306fbbc311d3d14214c042871388dc899ca2116baac1aa5cb261af35a0e255b228498295f6b4ae171dfe21b5f66671af532253dc724a893b933829a0c275c20407898911472a02eb484d4ad5b8d274c00bd9377f3c497e6845161868434c968bd847ee90c2ecf600867cc790b005061c8d5c49339dd3ae23920e65da2a19d649aad1b722552e07f51cca7b87efa315b6191b31279509d78b0e974860ba9f635283412038efe3ccb2a0c643c68756149a03b50f6891b9fdaa099ed50d7a012c0175b9518c15649396d94ca1266979893e82811af8c142323fc3d38b8b5e554f +result: pass +ciphertext: 45c095544a69ea32a56f9b6afa5ba17216c47a7edc519cd2a8b54b4359629d49832fcefb5adb0807ee8cb2be0a0066b782a14240462bdada4016a5ad2bf71299ef51a026ba3d0318b7f1a662b45296b20a5a25a21bfc67cb9c9286b659c1b9ddd576494e63eb9a70369b04a0ed30b6757272b7a99a591868569fa52b775facee306d7f621ba1fcaa3a5058aa7e6a65349d4aad045b70b4a26e6b5a3952fb89600e0f1edf1fbe7dfa31838a37150ee51e1c1af5b2325a4cfb2df17ecc52f42ab5b0db2032a2d01d9a77f7aaa6865d2fda4373581734b78d53fb2cf3946b9ebb0a677f8b8bcdec169ca03e928a08d05bb019c18d98ec084066b2a4fa3fd2e1b4711a44dc786724ef7c58f4bb6314b0b1486933004f51c55aca5a397d9eaf8d5dc557cf04d382e969bf96400997b046af19d5fbf9d6ec87b69c071cd6ecfb5d7966b29e3cfd7e3b310b6459af89e93f5fe3bf9ddd8f84437661581b6403c582f22ffddfe741c0fc0ba51f1340f4f32bdda61cae7ac83ea2213018fa308b3b38ecbbbf5ac3b44068d7bab95eca5afc736fab9ff8eb937ba5c8a9b5ac5abf9f368bd581ba02e3310e254ad718b16dfbd900ded9759d909d61d2e25a27abe04fb63caf38f0d2aa0518463cac1c35b22206b4aac9de635b30400efa4ea7d0fb3dcb4072b779b211cafffe97ee756e7ad57554028bb2f515eb6bc095e64fa552deeaaff90312fb6e9819783870b0c3f83da7a3f16e38fafb9221833993aa5d0aa968cc0a4888a43e5c1e1794012789819fed28a6aaaeb023467dd152204f8f7543de435c31460013c082d6f3158da33f5ea54cb1f838c1a9648589c3b09a51eb8df1b5a6c8d82f62d7a946f6d198cd846049613d00cbb57199a00b506114d230a86dc6899b3ddbc6473e6a20fc90754bdec551d0f8a42f0002f14358e0285aec30db88433b1f6a6f70798cb97cc9100a657f401d4661f82383ceb83625197617c021ff076eb9b08935fba9d8aec0aa12aa06db57cfb5574c50bebbedf9ba41f68ba09b0bb1c73be5e29a1e467af5d2aa29cb84bfa639386c1214d6801cd2ebf6111452227bfd1323e6ff880539ce0eacf74da99c75a9fc6270985caed1ad906c8b1451f399ef09e4336d596a89f1d071b372068d38a4741250c5c38cb2a893c793a8cbdfd9d78e943f728ffedd5e0a9efc228f7dca5d9faaa1052569ad2b3ce85a9d5be96be63790ffbe3e7cb05333d8bd56d5e44080a52dc00b516ffdf77594ef0e92e591b949f3d477cb6d0f887bd43273ad0e945348cacaffd5132a642c1c43fe28bbf6ac7cab18b45b8910d1a107d2058af017e3fd67c7214e039451d52ab961ce2712df6ebe5cc8f3c00414e5a817d148528d0e08b3761b774589b00862c0e1162b463b1fe43d294eb2439e80e35edb261856099f32fb548d494eaa4014de2c5e223aac793a3a55da97be77e998ffbd51ae2ecfd1dbd0fc92f9fe99e510c329a6c74fee225db455197f4be18efe98edeef43dc6632917cdaed3aa8ac4bd6f613d20 +shared_secret: 9104061d3dbfac187f3a9eed801545a52f1fb0c3979ca8315aa31f67775d1036 + +# Official test vector 28, seed: "cd6cfe94e9c0a1cc4ffdcd2d7876504be5f50f1d1ca5cf93482943465b268276056f2781f4de805c138976ca72621387" +entropy: 51e05c7b4ca3079781e8293f4eccebeeb2f8c8b4c59468eddb62a21bcb4ab8a3 +public_key = 70d99d171745edca3a65045bf6e0625aa4955fd125d332ad33f9a3ceb2313ad50c97614d038547f22a135a33c06c61545b9a26b46c41d1830b83d0257fcba82b36510199224855bd1a837a369a2c823391b1f84e54959a06938513681d97f34eeaa7bc42eb13574b29fb785c457786ac69ca22f644a1d53278d4c2e0f325a1209a0ca40fc32b92e906650b484e7d92cee99a078f5090d2fb60f84b47dd44224228443d36219a081f9956cd7983ab223bcc094a0c65414cc2aba8564977b147088ef41aba589653e535847450c762517dfa462037c2c1457ef3d1909d0b79d66ac6ed9803ca88a7295c4a3ae53cc77c235cd8922b36ba8b837f375755326a960beab71aa1b33a8b64d6076f0889424b1875ed6316ed420db7e02d731b2b3065c7e80115fc1406c125b651c2b4ced28ae9c67cc505bae5b747e5722f4729602bd1aaf25ba333c29ca011ce36f55494204b0f70895938c9c4658044740521097d696c8efc045709369f88c1cd46bb763b957db8f48abf1a07f431845c94beb7a3a68d42af6c2c3095f829de51b37c134f977461aa2818073682def71a65291904f0c214b727fcc7b522c2a33f7a2e07a65926fa5661172103b390fde2814b21273b318d029a112fd389d0324506d280be8c49bb923412f4c430ca82f58ca8b7122907b986fe912c323b1758901007067153db7b16168f791610df534aec8050a58296f58b7549f0665e13918c784da2d00da79559ee006566050482b2a13baa4884aa83351753cd7a48e6385292a990ca559c8d630a7dd4947e428198b06242179c369741fc067dec411765c58364d32ba655350530a4aad934a1d14b76f55a19ab7f2dc60720124a2b69ca703030b2320dcbd459cadb6662fa0aeae170f880797e2bb0a2f24e8dd1442549ba4510153640ba7f093acaf41f67f55e4269260ce2aa28261d4dd4acbc2a4a134751261991e7b36183387893c5900e8a611894c76c26217a390f86e5068a947457db75e7214b8b05a3c87251cc2101d7e6115c908d2721aab224b038c1b9c348a3c04c081496928da726c0d140d363a427b93427f16841c97447698cd0f360529725ec86113594045e143659cc1a0667832f40aa7e059d0b1389048a75429886095b3ec5a646ea12a09424338c6ab729a27e595ac7784169c6e7c7bc208b07a44cee5940f85896a7285845a2a262da092d1b0295821975754898bab492530e44a410f35563a1e45775613192dc45df526cc19b6eed8186e6f706e233542a4450fa6c89bf993af5699dc0e46965417433d5b1882340a1294d4b229d42061bade4683f8557dab0603fab1bcd956b29ba8a2af60093654f09e70f07eb3398f7bed1354a7982416ac40860538c36722ce1b37322c4a888c2359080704490b613c9a5f7318566a37139563c40d58c055b827145bd659c8fc6b7908a071fcdf0b17e4351cf3bcd9e8cb9361985c70c49bad71f860b36ae120f62c06f3b34aa4942985d149db7b13e1412cc1ff59dae21cf50017883a0aac754ae6cacbe87a46919c05752877840556af8d56fcd848f982b415d333fd8640794918ead0121d12309bf622d9c97551f294c3822644834b38fa844a035cb5458aa7240f750287f95feb1696d88988eb0648c3cc0fa9d4277fd9af8c579271f4c77 +result: pass +ciphertext: 8ac1b83c47c4869e81144ba3963f3e4e1ea682e982500d19d73b368d60b66351c0da3211acf974bf952d3c6fc8a6586ef9ac89c7321263838ed84d8debd7fb67eb0aea8764d97cc371eb71970c0c189150b8665aadf4396a344ada63e29364f2a3f7199d5e1c0b5774bc87411e96a6907e193429c9cb9ed2f127e025cdf9c03068afe7647e1e433ce627b034afc329168bbcbd930b6cc52316b77697fe20797f178e3f16b45ec4a86cda556abf7c6da5d908b7975c6678edd0d4049dcad34c199f9617ebf5cde3dd3c84ff2a9f9f95248973a7c0cc5214aedb637c170b83a8cb740acb2e606a3cd524378ba26c6b019f3e8c4ac43eda767b9b135c52168cd0d548dfb0c38a1a212ca310905c4395dcd0c9e529e3aa5aefc0b6182733cb8dfb269c15d4890018f8339794d5e54939072b50c922d6543e6d3daba38d4dd1b3e9a8aaf4eae22e9f28b18d7b7e32d2f60321d3e4bc9be6cf80af16159ecd0683f840fe83112fddd0a1d85333069b818c270507668d1a0d74e018dd8b2d989502e4446acb04758cd4d00df4c05265d7702e65b34a6e2df3c77231bff33e93b9fd55148544d80cbe5b3a7bcac3a247a858eada0714003e2d9776c95dd3e2e869de54ac58ac8997d750ca6b29a9bc20fd4912d7889fda29334f7270c984567d222653e51105e63ff7b04cf5ec4de4a3e20c6ffa6b34e8a47a17936c684a0c57871a5852565f5872ce545521c832e6259e2a66234361e73b858129932e69b09eb5b7e7957bb7e8359e9257c205d1da5e455d3c3c64beada12d15e34a6ee44883054217142634a578bf42c9df1bd4b7d74d79b40fd93b3bee4e47b8a1fbe570c45061f55d6c181ec57e7cb7a845dff1bf48939ee9ad35146a0a7a9c0564628a4bd3b6443a2cbbdf82dfd11642816c130bdc4bae905028a584964c91482fbdba6b3daae7822549b04ab83087d12ba7c90b28bc418eb24165219b36c73aa32a4ee1b2fb97d421398b187a0bdc1fd7ebd508ef0afc01a6dfdf82cc37ed7c0bb771b792c6e4a5d4b4112c941b3b2066e1b6c63885861c0ecac6b20a206326283ea9d375c6aeccf179d5274389f0dc49183f36707d72ef6cd7adc3d544c7311f1983a44d2482154c77b43f0db3a1e4c4ac78a52b163425cdba002a29dc27bd9c191196e6ac0524841c3f11ea13782cd439b26b1a795c9f9629e0efd153af705bd8a35f1d70d3c5c8589475772307dcfeb6899f0076eb9a8f3272e72bfaee493ac1680ef2855741916733074a2be07b948bcb3690f965dabd4f4ad98ad5be62a6d4b23919bf3525a5c87839707e9bb7f61919deb787dba4345c1d58dd6771f1d7677e2fcbf827fab1508fed198af0264c47b2e385d5083d2f863619e368f4f3a154ce0caf496bf2970382e42876fba4797bcdecf5d47d8af4c78870c0afcfd0c7612f005af77cc8c268cdf9232a8ad5f9c373160125af1fece7654e0d9fa665bb1b59f73765d6cac9108ed7baed5a7c231fa4011ebb0bc37ffae8ea2b11e5f665d54b394b5a324f +shared_secret: ca249f10d39267ec3725f56b90eb2e22cf8b577116af350f3d3c1e2cf090ff73 + +# Official test vector 29, seed: "265eb2de7099e4bd5614e5de7f0c2a05c78ef3e8e2dd4ae4cb70f3e5e59c8d1d88248303f07de0c5508652da66b47222" +entropy: 9eca0fe36c80fc5eba171c3ae66a5b1c923faa50b4521bb055e7bf51005c93df +public_key = e770043be600f7a60b3b370bfa6a30c846c475127924071e3120879e2a158433a2a3a7791c204912da8576bc2722eb9e38139c198915986b58a9671fb054a81443553ad74563f587b226a9117c133ddc10dc0655a7d52d493b7b3db9584c49b4d1f41c06665a3d07383057ad70b69f85b6cb2682238120b830681794e042d910467a24091d81322a08aa1d83b0861113756615a119503af837eba16768046b7e64ab5940aad4da6e3165ad036959c39bc69070bd7f074776089aff76b33dcbb17bcbbe65b526c795b65943821d5b52ac1044cca52e3403a02604a1b4d9cc84e4b72b2c136de898a12451d8c74c280a67cabba42dfcbea68455c5f45bd3ec03bbcb3f72604df70737a01683369c8a57091742c60f089a673da350db8ba39c2a1108aa6a4e2a6f24b13d95f004801b240b50067dd34b60991db2a42de3dcb2c24034d0cacd24c890cac7a134bb183c92b5d66c7000a5a3f80898754827c9a7cc01a1550a9cb4f4f18d5959be0ef84c35b54468c55a15d274f996cb74449d1e5b2f88bcb6d00912a9305879bb156bbca9843610af2c5193363177d2b5867240d207819498a98209c109273dd44a4f2a06549335a63afb2660d212592c417b426268485a7e8693f865c0a7960e073153d5e578a74b34e9c3a57eb20fc825ba59e56359a627f358a4d7127be7d571c991078d9630e1262402a731b14b9f0ee4a3fa4494bde9aaf2d4603af1178b8b49a649056fe314caa92df6d816fba591fc4961cf0509d0dbb02ea7321ef75aeb20813e33a9717478be58b49fca3130ea2b54e62fd3243f4e240e54c08d26c5020a9512d2536c486772e725267bba974f3a451bd50f29c55c7189012473ae1e5a7ef35c0b479679f1a71fafb41ca6d16b39f100201bcf2515075a1c9f881a7ae4f4733b149e7c29973588c161616e9918062236332cc67f26a65fc72c78564312c429cd1f3854eb98c0ce91be6d9a24aed0ac65bc5d805490e1d8c86963c8adeb8755e0bcdfa473ee23037673773c46911ce0baf8c81bcd8047a9d19175f6bc31c2997c62c502b934d7651fc51562625538e24b235c4c38cdb82fcea4abaa963b3d67b3679b51a21cbd77228338a95b4d641b5eb26644a58a59abb0a8c0afc8894792b3c6edec9ccf7c29c620b9ca262c634621d225228f1503609b548f0418648cab5b9609e7486d57e5824c538037d32319427a3b077703a7368270c9b752217eb04b912a3843f4afa829b38174bbdd1cadc8c74697544f6229068344441ee2863150716339716ea6a8245a3c3c142b986b7462fa2417a413ab718ceb196f15f887a465c8f901c55db4718ea58c71926ea344c49635149014297275baecc90ad1c95c75281eb885264f11123ad8cd7cf1968e885220f0964f25510539be63263a4eb6169f7319f0086fecf996d2e852f139b500dc1fec8824430505a7702360d81823269ff4b2622b54b7f917bb44714660051c31d9b39494a64a86c15c516437c4a437f41c0fd5922dda52818336d93a8c750203fd859b06e127d8e33b52c34411e4199cb01cbd70b8ef0180b045119129aeb04398841bc8261444c963c3fc11c8dd4c78dc5a8cd902687e36aca5f2667abccdf2093e5ecb1a4f09769a8251104731ee68587d0a470e2ee6ab99d3af13f31776 +result: pass +ciphertext: a63cdfb094b7b97e4a9d4f637a4b2892b308753a34686dde8ad28e5ea9dd44bb0f2b07c030c2bbe2587e1dc8c2247606fa5809d53982cb1bcc18675a7f6ee5323a12a87137236b6347ec7b6c5b188efb541b1f0809abfe697e5a3b8b6f864bbdff986ca416b6b5bac9a5b43358b47368f137a026f12984ad8b2df97ac5b43467526cf1c4766cb2b60784608998fdfd2929113be1c49b8498b03c8a690fe5a8b9797529bd14c128609e037dbe26d1b3fe26438866422c4aa8811dd420ddbc47218c9b923cec43baea872bd5277cf3ed48cba237480515e2e807e2a0999017ae70cc76cb134dfa894f780acd8d5470b055b2a96e58956dae51d001c4c9c8888bc6791f99284737aa613cb9d00dfd31b5d0649e0ff3f11718b89b398d0163227bda245ecc75756867de7beb78d6fd0bb0b713cdaa1d482a6436ba169cbd4783b5241ec44a5af9256ea6e7ae2463489dc80787022d311e900b42a09f43348c055d21af0d486d5b2c6db80f9a89b82adb93682f6e98539acea6520cd7d476b17ddc5697ffc64566445f0f90b8c187c0f904b812c592437472ae0db4b48a2b45f0d699272f7e8243a6e42e68c37c331e7b96dc676e532ddc01458df6fcb2efb17ca4b07039a0f80c7b03078752fbfa6527eb921350894f4d398238c9f8abbeb3aab93da79cda1792123d4af4562d29f05303bd90ecd47dd9940fa6bcd7377ada7b5ec3f0ab7965da90f73734b8728c4dbba594394e0461b291586a09850981b961ad327fc01a578a4cc49ca14d570d15a23989141c9dfef64fb1ca38ebc92654104b983f793cf9a553b6b422c88c7c38c524bd15bfe35559752f20074b0fa631f6d49f973b4553c81c206047f48b49a0fecb63a4868fd32e295e7a56a0e683185748bfa3aaa77676ada8b81ba5d1314574bf17a11c1b58700246a7b323f6ea0840a9db60c2b6ee1f49a06f6b6a11dce4a9d3e8d352fc82700169d1972f65273fd1148d7c9fa978167521922d614de3bef02ae3b17a183245ef9272c1a96329fe592db73821b899cdb93e4f33e31a47d7edf275c7b0921168de50c3984f7ab213682a031fcfca95194483a58053bd644268a2dd82b77ce458c37df183509e32bbd7a6fa64c04df4c91491cee59a2dbb7a3e1202d015d7276d145ec51c8a89e2abcf8125439af8b7a175326995a3f543754fb3b3b7c70094c71a37d1100b8c3bf987dcce3644964e3812b5b7dd913afdd98002692358364a1e9697a1dde2200c886ebd0b3f8faec32c92fdb2e8c83d7b04795baf19da6a54157e75bafe54026001c2e76a31d1c6f92f3906145e57ae1ba3a5c63cf59980f0b5e23555584dfc654167a5995fa4215f19469d1d729bb02523dba785c5ef873f244bc944c920da91bd702c56fa4026ee33cbbac7db1cafa48b2445491e415027824929e0e29be3809e9a3304ce69393b83db0e33155cbb3df4788937ec988c8fdaa704b5dcbf580b0cf125d7d1a540ad382508eaf5c37cdc2a44d63a18b586bbb633223933a49a65c47a98b9 +shared_secret: 82a3856ca48c5dc582ac25605ab0c675ad646ee19acbaaab4ccb5350a3881b49 + +# Official test vector 30, seed: "806bbd111f27c2668318387bd0830f65ec21a51af01985ef48d03d64e1958ff7ee5133a4ebf6dbf36329bcaaf65f40ea" +entropy: 0c5719261caab51ae66b8c32e21c34e6d86ee4aa127d1b0195663c066497b2e9 +public_key = 13568b12232135a5896094834cf450d789ba498787368b4e15f1b087a704e8e327d631290177add97c0a0d84820ce367dc515fc362aaa98aa7911a867a3789f69a5b68bbbabf3aabd037b5160a3f3d8277ec47898ff3ba5ddbbca6980b5ad47c59236eb33b2a9c84b212e93d9e70aae78a4f9f6bae592ac2b5f96eee627971d27389905b215869d9f4b706c379aa802b5a99abf754ca9316872f033ecbd5b34f72c610c14037540a2c86ac7eab0c3af84729c48610615c9956751759660b3c7bab57146f7b1088501fe14b2f59141b1bc6302d88a35fe27e0cfa18c1a22a9eb517ca6060f25408d4299a7f46c458b3bc38c4794bda8f9079043854179db0071af69c9f074a83438874c882cd18b69b0b2009497b6fe94a9264470be8256b49b6c353374ad49c04b1276fd484338796e4389a523598f3776291512e25fbb5fe98591320c1bb47c6ef3b4bd1d62b6997b5561bae038854ceeb41b2925c1f1a81a702b57b2815f62aa9eb2625ff3512cf9595073ca623da43f32c21d63297a491b28dd8b1361bbc91b40b34a65f1a2b7db86b0b3bd21b26ca5795b795e355b45d1623b3a9731218174b50966d6937ed057fb10b631a51b7d42072a0845be8553e19901fb0eba35f5142c75857f642918bf24544355c4041102d8b197b429fe548433eac36c42077ed787f8e631edb856d4398a26d536911ebbd9f9c22769c756f858d180b6b51797fe9ec0833c908d9ab2730d937b76a0febb68fd84372c96c3c05197093e26d01219c15f898b2c7ac75d11485a2a413a065be744e0908b6340155a244838ddb14b74c578fca2d7e6c4e15e68421a568e7e39a4a04231926768ac4a061d67550a8512e780198738bf3e2420cf75680d1cac07798c01ca06102cb2ae5c9b99b62a7349fc8a2c558989b68e3789c2c7074b476d18212846c8a8d562166829a36587eafc95a362874e812aa951a6995f5a94d370afc9b64777a7e58cb54b62a95476ccd323073d6e466e6ab909b4b4cd840aff393c9391902f4c05bea833d254207cfe938669cbee478c57ff4424004003d151fe5e90413924bf1378419e08dbc46911e2ab2b7f45dcde5c549f679691632c3d9bae26b9fdb85c7bc3301a3900386873345974bdc007f869155df79cfc6f06c39d8bc9a99675382358ba25836a15cc222ae78e4a85a19c5da9912e48128fb37a7f386c0fc86afcd2869e292ca9b521e6ef9b12908ca5d800ae1a7a3a7070766e2802a947c7edb3452a377d9c1bcdb152d37db41ce7c74c36b32c59131b1b85f9b68a3b66773ee4a2b81f12509c33cdaab4caa563e9bfb3cd9c4c72354c1e88423f94169e18bab1a9798cb99031ff852e79229630c8f35459bf40c425af7cb0843498a3cc7fda53d932a07382018de07808aac2b4d60a1e242beffb89489ba69a6a26446180103c11f7b22361f651777b997b76ca8f5a25b97291058620ee5479e92aabb218444aee52e5c8294d578c709158f655a8930fc197f765fb3790bd62a5fe11b57f273775da27fc1b5128663c623f5175513b753543bd71aa045e77e4bd42b7e7baa5ab2c4d3c41f4db84af265acecd4906fab897b5abf5af66b4c4a0b4e783b417c6fadd71d34ea294ccf8b8c8012edb8badb3437b191165cd639bcde9eb71378e71fb55129 +result: pass +ciphertext: 07ff98c23d28846d4b8593dc2723f03694a5fdf7ae5770307a971e8aa7a83db47b5f9606c68e1b0a9d8d10ae26be23993f8e804c6851292c6c54ccd1a178084f8ad379eb43cbb0974fa2f5cdac3eb90a06e844be6030af49e5405be461d01598f264260e42e5c3ac1b5d9ab05bb5ad77acd5fee7356e89f5a1822ab5afeff2474bc562990e71bf0e6e1b720e59da9fafdae4d67ac58534dd33612c66c468fd9a9768dd6d6a18ced44bf35cd2887cd664176f08f1c9b0a122b7330ccc37a7ab99d5d57ee7ec4b7ead85a7a789bc6e4124e4541687399e3feb3036554ff903a595ae2d09b1abb496390da90c49171fcaba63d32d5816b43c9efa88c1a9065056a526f139291024abbc01af22511032e93f89caf7f67bf180201263a9714f335ab3808c0c3c85a9b4c9daeff295f7600287db1cb6014f34c6878d60eead25ebd39c5b27b1d5b8067b419abafdfcdc766db126026110f2b52821edb2895ceefa379a509e1c29b885582c216a3e3a7e88c0b15fa53a1bc4a2c3811d5716bb0a68a0ce08ef73a1cfc7601eebd70471e18a9e63dcbadf4a2f514e3edfc9a0ffd5226545f9798fd1588d9101334cad0a84298abf9d892c2be45398c0c67a1c912ff6c5daf42343da7d2d6f0f4f37d5218d46565a47b83cfc84dd0a76a6c86eb77dd99fa003bdbdffcdb1005160803ddf0d499a362e3c31e77491b9253b4fe3325e217676a2b6f525ed75810c37ac6c09bc9df8f9c966184f5fa3a123fccc4cdf24b886c6d7f5fec31ea0611bb3c43a2cf51b50afab8cea581a2a9e9214e7981735e8ebe4eaa8e8a44db119bcf4243d0b1a86a2150e02be402d61b98ef77cb462c8dbf55c2153ddefd08641a0d76d8bd301a59103f65018abfac4a538c12723269589d5910f658eb3c6041fa8c0c5e7bbb389f491a0c01a1853917f393ae5d90ec14c1d71d7b1088b808818d430f83d76b1d6722ab89610a7d39f13d9931ccf3c90a91f28fa8d9b00120456239aaa0ea648c1c7221122c65c822e879731cfcba33720a2ab082029ad22b2499e399c11de442bf090f416023bca3c99396a03d1480ed3cbf78b1efa5ed494baacd544c2531d51c252983acdb3b405366f88ab5957ee476fbb006caed7cb148de870247f70502f75e52b89916a14d43d11f7bea21734e3e5658109db2096ec2941adb83298b36640d81a867118a2d2d6d29f713a7d359cd3965254f05cc272077359d8601231fe4e51f72136631e2ac8269a8732413fcd39e7d5bf0793a88b69c4d86986fd2e5d2220f7059efa44a2826326e5a775a8d88965078645bef91b8d4e0c70c62964c04eca0710f12c65f6e315af8602ab8ceb13db5e4658f08b4fd8bd041117f6d1c1a4d39d4af92ee05310ab0158d8db145fe91d87d1ffea0beef800237c02ba58e61df6bf2d09f3cf271d1ef4276e09d6a8182441c8f94993a31030c025c015e9b6e918c776464a1783b1c54b34b6d2338f35871f717414f85ade6d528695f6fb7229e1a9cc1c6ec8ef89c18a7abdc43147f32c +shared_secret: f1e13731a14d39f474806b8c177e23e4e2301a3b839539fef9591a71e4f67d29 + +# Official test vector 31, seed: "ad540a9ce816d6fb1661e5483c44f6fdd00c9e7bd1a8ceda4b4c4d3697d4f78ed0a56954996ccb7da96ecb8f5cb15809" +entropy: 0e59f6f9047c784c1f00b24454aa4f1bd32c92ae7e626549972f86fab90e7e89 +public_key = b30c011788cb97cb439789a67d476d3dd265cae63cbe43cb63aa124b93071d6812bc662f346481f974a73b16a505c48b9608359a3c035135258029a18b0217461830785379d3355ff3968d3c63a46685902425660b232b11b93997e60ae0a5bb95a27d553081f393040b1c30ec87535ffc6fe528b1e9866cd1e69520e376e0071087748691dcc057b95cd4c60707d8b976d6a67af4869d960d5466a9f3251dde92cfe8a0b03ea2c43bf03fabc9c9b5d97ea2f558b2bc0ec1908335ca4f2607cb04380a830b245f8b43fd06098269bf9ce33fc07c1e68a05f63560d70544eea4c0bc528859a5b09683b8b3d3c6842e6458061b7ddc4b23ec6ae83d557e5c4b1848445fe253b35e52102517cd38030e6ea28a5e1a24bd09ac6b83c5dc658d11589900a7bb09a963480a2d76225ae55bc54108fb233785174b375a184eba110e05762e7f26139dca4cb197620156c06e47e5b74a0970bc6e18b1e1c919a6c0b10e7470d5ce09e2719194da0440ac3aacd86bf724aa841a83dcf64c8e1f7704397a4cd57bbabc9a0cf940e97e8921211006044228632382ef48fb5d3b65219a5a6983ad0e48ee39081f2ba1103bc9c6314090a31aa34213c0c319eead96b865cbc98327570b965bf00cb9bac18c640273d342cedd11d72e2078399c458068439a8a27e388d3f4bb285b63992b5a4354122ac298222e39d31cb886c4958f28c5c2f37384632b4db216b43ca6246051fd704b5969c07dbd525ac6a479e730f8b11c5d41111ac65764fd71a4f43be55c563cee5c26c69cdaa485d850c2126f2bb16f5766fe86bce17535198ce99c2a66918af96641b2ec74be2b61752076a2db330984ccd7021ce360a0c488143648389f492ba20ac566cf401383a496991497208b760d36da6896bb3587788597191c3347539be92b78cc6a2b0d8eb4188320ceb8aa6ee1018e9f78f4f8097ae7527ec947cb1b27dc8a86ee200020127531273983bf66746a7b731464a6b1524b18744a8c606648b2fb1a4339d5a15d7f6a5ea3a1c08122b773ab09564792fba2e28719a603c3ed0850f2d5045de3bb93dda7a84e692c25537ef695787fb0889107395f87c6b836e138bba9f4a711daa421a396f556c26e3778f4d364d5b1844118b367d78af37836fd7a9637f1714cd9a3e52155b0047468b5420cd5c6bb64138ba16863e18b4368542800b378537b5cf303cd2b191ccf783719142ffac1ad0585b1938281ceb5c86587c43b28c49d9111982ba7ac567e1fb64d8e3c450730305cc2e4e12cc698a728977cf1c9b373f051c17f1935177ae90aa8856a5a24d18a08aa942b4250a6447c35289cf0b334af45647e21b5a2153a8a05a38ac4c728a3350a15502cba347a876cc4bd12034935bb3dc14435930d912aac8a787db3ca33521637c5159b015920100b416d22c18d6a0a52612c7d75c15741b6954ae752c4d31fbaf1b483b6b6862e6a983d5465e3b7b80e1654faca5c669e77295f86263d344031b5ea7ab99e714c0a821042bd9512677ab9e89309f41cf47944da1801521402f211a6076490ae393818ea2056954b24a624e6e54acb7d5bbb32c14b339730af6a72647a66f761bbb78012a76540763cb29dcb9b8c27a3c1e43769c31af3ef54f7c8062d713cab3803437e759a01ee76fba1a5b +result: pass +ciphertext: 90739b108d664dcc63c20ad1f2f37658b96f819a6f7801b7049e8c2bd4ee750da7d7f1b8dd47c2147ee4e282af69cc1aeeab6a8959c0a714aefb3625ba5c057c120943b5bc7b96b7bd2e8f7337bdf6fae024a2aa667c556c7f7fc62bb303e898a3f73fa2b0757302cbcf3097e56b123fb920ae88b49ea1f76008564f2f0ff54fc6e36979239d446ff38d85f84fa82a4a3624a98a37f29651613cfdc323e7fba7a913997fe19d0e5e0f825a89cb37e423f348a1d78159a90ea4aa0193c4c7ee86146e3352c80341757c2ace339fc739b33313bf3dc5b53941772e782eadcb558ed4ce7e14ec16334eca20c7d12024e47570156955b38a30e817eb139c00969005013f941bdb7da9476a29148599e679154c13b23ad1491e5c9c1b3f04e2ba290c3b7cff7bb019793f358abe6353bb6824bddd156e1d97696a8b7e32aa8a39226a29cecb496198885ff3e3671f9dec9f443c45d5fde1d1bf1ad9b54062566aa9fd87b318b6c74a2f78eff5205505321a71c3a6a1254a90c39c39d44783a8d3006744802cd64b6b5379bdd8184f6362709e8a6faececd89e25e88295e509dd8f20514c3487e20d5d32da32693146e23dac996f7b019ad79c6abc01b617f2669d92881f8565c95e3c6193c4e813fa11313221526b54c795841c115544b81903801b6507662f2fcae5feb9a4e6903411a69e5453ef822f8efc570e82b94c28a97038c32e4c08db304dff48ce7273cf1d8bef89fba35d886e05703dd5f839bb253b641fe631adaaf43e53ae0e62ef827636cb3cc7a579ce09a0b184621d147470ca5d92a97baee9dd4c1200fe0206fb50081472d9abd3b592c98cb799044b201bc2db832e83f0727018b60a69a640fd67f095d9f2e1bc42d33e673220d5f6d86b2f3e1d1d63ff39c9ed1379dc75c2b3265993eae102373945b049ae2be4b54c039029dc1680b89313ab027fa1196010d0ac8cf29ec39348a1e559eafb3d29d346802a8eb485dba3d6b9cb7ba93e1e4dfa79950d9756ef0dbbb4aaacb902a4c21c02a7a606b4214c8108949ec7c089aad9a63aed4778af6a779ba4b1df5039ceea017fe80fe590cb761ad940609c9716a1e21fd0db62039a9a21cd0d8b265e350f61a982eb167629c79483c5f23791f0b20b39c119acb3f18cfa9ce2aa03981deed204c9c4e9bfb8e404f1899890262c6183bab1133541a4248a7a7e70ace70fdc5bdb21be1aeb020117f635f2970b7497d23197969e9138a5e50f81a752b1a4b22f0199cb53503344d0bd4d90bb3c52dd3cb58cb96d477e8fbc237370a5a17f0665b942363370cd5d5801199015a5430bb23165fefe3eab656facfc5d023fb0f0016493b801cadeec5315383aae86721bde15061f17e4d775b8497b3de3684004d8c960dcca5ca0464a4f60a43893cc75299a477897c580d434c44507afbfc5760839061d481dd264f6a3f07347ebffceeebeac27dccda8d3cfd377a29426c29d57d2367a781801cb227695e657295113a6d91ceda67db4af71f0317a6ca9e206fe08f +shared_secret: 79c5817a4ba25295cfdc817cd303f3465852b93c0c908fc4a79e88c45f3b81f6 + +# Official test vector 32, seed: "288a5f2684d862a86d2790afddddbac6fda934ee7d2e6da1508bb550838609e8107312b28e00a6c01706374ccd3aefa7" +entropy: a3963ade17d69debbc358dda82c7bebe2c39d25b36813058e7a161542e3f8c2b +public_key = d23b1a80b6c91017009cfa4925f3cca1b97d1a820b204a4ad5f4bb2147307a5350d0244ca20102b8f800c924bdb5667a5866303ed52e27c932a1d84c637c707537409fcb7515f195e557920ff79a3001354cea327f274edcbb99e66acda0aac52dc503717a3b24786afca70dd84c7c4ed1c1b3ac454c832caa687bef8a96bf6c1182f5c663c1ada4784654393d4c83219c149e31fb0ec1e9afc4297968c80209594aa567c65000a883b32e3fb82d9eeb4e9af65ca4fc0cc1ec794eb2b7ede1a5556474f3b023c45b5d8712109a2281f4527a4bbc8262c9bedd0758116643bc6a85f836825541767595c0b54516a330137f0724a1b232cf0a399e0478f732c543f81b9d05c7f5b086c64291b2d94cf02462df7c0f43eb06319265ae25656b462f1445ca5299166731b114e8458a0a0361b135e6002315b65b337304404a907f3c1d41ec9220055939e11f263186c3751f96d750f3a8588ee14f40b09178368ef03a9526a5444be096c3da8a7441638f64b4fd201e31b34f2c456ec89890f53c9a25b559b47856053227e3b36c16297949c6b11159a79a4344f0759c7071a738eb0f80c25ec2f0a2efe614c7766c9dd68fb488c4e514769d9b6be2d59e9c9cba6b5b1dbc9b0d8e5c7078663794fb4eb8c7060bc1b61286cb173ab6a80952424423746bc91bc953b67908bb34226eb382bd54bcbbf5c60e467652728186c357b3fba85f6b8553c79c730ba51ab90d06ea9edd407b89e0c0a4276ea3698ee5e6a8348a2f9f571c2b7b93f5eab702f1acc3480bbb223e68361fd89a57d1716fc8c99ff43734fc58969d35077f5bb422b859b271b085f41394f28b416565d2f90848216ade3cab7c205ef2f47d8b50b9152a9ba6032322e737089a1e5152387e3437d2190cb9e394bbb6857a1b1ead7a3d7118b0ab8367ba1cc09f910518420a46a18271408121db5dcb0670ed789d537ba3639c530a720ed9f40c023c75b1a8261b6c0192b14843252cb8d713c8736b34daacfa235c9a51468dbaa6f2e4507711344b5a722ae46a70e683c42a9056ecac5d143f9929006bb168ff2ac983ca8b1d99cfc1c8cd919b282eb921eafab2a778b227968f77ec885077ceb7bb5fa13884b6a4bac782b31f250569e0671396b780e810e4a34416166c18c4204ac4124c1020064a257c32369c892420510811f28872d59cf8db48f2a1510a5895a09c008be695699a4845210777146b56093d36960d6c36860cec578de3688bf338a28118a67833f5c4c7d93b8867d93ea7aa99a3743434d236d786cd8e617791bc5452c88e70f1189d5004e17146f3c69c60682c11e78b06b2c0815bb889a17a15eb1d985b601e6c04604cce34b13d82a328f61c2dddaaa25fd9ae0dc83962c0887e392a25c8657d61cc2ffc980d4cc4c9557e7dec446828b03e8bc9a1355dc32b1c06d504cf613235b6b9b1b04c0ed550545bc37e7000a2366786da49d637ceb5c4273041706597236be0a7213cb0394282aa998411e1236ab964a7998055a183dcc4ce765b8756760fff965d2b7c5adc272ef1d3b214b4ac9b543e0f24876e773edc54c105892cd882848fcb039e5223d0c68fa204cfdb793c5ee56659932cab213cd4eb18fa4b045103a1e865b0c567574e523be27974b08adec6d539f37479c61fe8d8c4 +result: pass +ciphertext: c2ae583a3b4928851e1ceac877a2b061b9ce589c4a2eb6ddcb36e3621e558ab8ff4645e43144e8b58368c151f7eac2300b060e1e7a30718f96edb79aa71acfb804e3013cdbf19e10549594a37396e364c01f0377f675f4866c4be24a2cc513f07edb6ab0c205efe71eea5d9517c39f897ff4345f63a3c88c258582a4747a744c2330394efcff592ac8df852a7d9ff5d7ba994ea7935075a17bff2626849f1ef4b9097008753b814298c6d9603e7505cc0ca7bd69346edae4e9a360fbef3fd8f7b6d604c22677198578a52fd6f5e67230dd792ed9980bacce91e50214c58a2ac1e43f17e8f57670040a7fb86242a2e9fa63d8530a9fdd2059d690b994673027577db5740c8b1089deeea7bac8c2c658f77235cd9f021bd04d38c94c091cba130060850e8743dfec89b6ec2beb45f21a12bccaa3fc0cc130ca99befb6f14584f3a836f56d8ceccbf9f2e51a2254bd2621bdb7fa1829918fe49fe16a95c6d49c2a3508de93bae8a1ae832620e3929382a1c3ae8bc940df65dca1d7f7dbafa3b764422d07a8b3e5d7c0071aa20c36c87c624148d158e0ef3bf8edb698408cdead41dd99d76b2ef8dabfc2cc8331483db9f6c2a7053c1df415c7621bb3cf9ac8370bcbbc8b9305433e2b32ef8bebf615ffc1987879e3ba5bb3a6c57d42896d30cbbe63652c247c47002b879864ec0ae1e79477a5d7174ab3d10e03aa1eaf3688a287d0f0b57c923d2d3b63bc744f922bbbe6d7755beb6c4be7966034cbc917edd85d07a3a725c8e8fb0373582278a0ff79cfd0260138c7c1c890b7171ac99f7377f1f7ceed581d30700b70a9198dca6bf5406fd9e7b04ce809261a3dd0cc32e1e4c92ade1de79413e3616e371fc3a1530c85b687e93e326b98fc767b81c7409f88ff44647a6fa63a3d195b8733f2e13097502b1b712039a59cae990013251564d3421ec1ff48b07fcd5cfbb089210ece5f9841cad8f188b5774a769a8a8eb43c2e122db423630777ab36fb68443a72a76ebd9db6475765678d94150acd6a788f08f243879c8cc9ac27e766a631bffc106444e2f2faa91b5cc5b09cacc8a9f179200c81561c078554c9feb8aa018173b966349100f3499b1986875726ecbfb48abae2d2c205ace430e350a28db81f90d0c7b23526cd2809b721f34c0b46a1a078be7e2a3cea00996495c99911cfd759d6b0c7c6154b20a977e4a8aa7237bafd2f55c590ee6c85ea595d661d44d32f222ecc479305726f6347d58fe100141edacdd9b3cdf01785f6830b80db7478885201cbb445a1385877e0b5020a2acb849d1cf379002ee78d275f37cd518695ecb6a653eb1c1310d3fc5584e6ec663c495dac1dfff668cd35a4ba78f34cec527e4e6e81a3a9f78274729049b2f6713968ed0ba237f4c0d197d0e7d06447ca3dcb3c13e8feeb14fb68e1cc206fbb8e94fb6190a56669cb901dbe770f9b3a2b6497e1346d0ef60acf9e2c0ae082fb364b9ce7912abfdbf300f3896057a130c7cc089ba3fecb416cc40ce3149599a68aca244b38bc605 +shared_secret: d92f866a744d0af51c8c2ba7b1fdf816e0334bff45182cabdfc722d75f8140c4 + +# Official test vector 33, seed: "4635dc5bb92ef98cdb6220df0dd717c7f8158375eaa2b78fc3f0b58e9c9653e92684cad3461d9158a481da3d14694c44" +entropy: 97beafabf2c8575586487c7a80e8af5fc50f94b6051c1bc66a5ae9f66be3cea7 +public_key = 4f27944614c35d121bf2390402bc93797055936a2d49699cdeec2f29413403aa1024d802d97c54aa316707c26a0b432821f63cd89a87f769597cec8356c2c399d3a34115cca89b9df6a55e4556a3b2150b51907ce67b860f697a65b199b370691fdcb31cf7937d1524bef41a0732cfdf464175c95d9092176ce52814d3a9231114cc31718755ccd3a7b3fe69b4290175dc440cd38c69faecb190ca684fb1001b5308fb4c1ff6a55b4be8814d602ec59c2deed654c93a45d55a3e020800e98aa786c76fcf33cea3a7bdbffa5037a171044b1b74d6094d1a3b606009b4fb0f060b6dd1d29ae67ab90c90c25db895c9515fe0a17bdd69c6773518a532ae8ac731e32155500204dae2c9284cc16f61b5a9e48334859357506e2c391d1bd38865ea489e492d8b847a6a50ba074320fa32074d89894324a705dba4e1847a5059645c77063809cbf3cb0555b6be4069c77b10a6c6f67ae1e7c09d603e87a34acd3b814d7b4798dc05acba65220289772abdbd89403e698f3556511e152bc0f77509dc36803b57d08129951ac44ecc49f43b7cfe8436baa8b5376999f6442293352e76ac592b95804217817ad5a75a76caa72172df9c69da4c170e937a69d93f12c7b533d4bce41b34d0cc8a1c969947db2c21a960d975ac029280ecbb527654a42385576286915d4b8f3fd163f0cb280736bee89786fa277c8487b0820416985855a95a10647059cf34c08915985c32321b5b8b45a468cd4253c662847eea36fb238098f059630cac83aa70cc9596cc1a0406e993b737c236e78cfbea1191d60fc6428fe7090997f1ab41c13e0c57a256a813bc559ad1e6ad10dc3cf43a64dae2955f03b46a09ac6ee30326d95d6ca8b80e61aab77579c017a1906279ac09766bd8a1b40b24d8bc4deefaab47f9c14a8441eb413dbd718e5122ae7beb94f526a31bda25d893a544670d994530d3c6ca29879085870f6d54192b1a7fd63193c7423be4867d2c134683ba25f9240e0fa2a96b47c5ac05b541c2980f51557989b3eba42dad002412f462acf75b141c5fc320bdafd3c11be291eafc04d6b5a1d4117c7703c313eaa30477253e938764364b25d859aca263962c5d6d898ada856b70e151dfa41289213acda6cdb5241bc7067bee5cb467c34d2b0a6ded6aa746290ee2e40b7be1294c583aaf415dd03213a3cb2e41f10731823e749acbc53767c12b93d8f32257a54c6a71b2041a167d685f0bf789b94b277f1b60af22c09b639ac72ca25b1c69b855bed6377126999c5708789091cedce768b253ccae981715c8922dc9562ea8a0ba102b02585281b15c7e44339cf630529c1b076106ee2b5c7be0181ce43d397a398c8547da703e2ab47bc15284f4c6a50dcb904ec9c1f60a1aeef38435997871e8501d4832bbb2a3354c70d9579f237427135329cda32573089687d9a9130375bf66ac321113a25a08aa75cb667635455a93eae7a0a6703a2dc0a85637681ecb097f1b16b2b331210b6288b13f5752bb6c731adab30ca051a817099095022892d923f571b8d879c8ddf0ab03145a32298dc6b644b25640d808006e3113accc6a0c1ccb05ec273e6b6559e287539c72d754ba9bc48c915acebb656e3cb7713e9bfc0bb6f311485ebaa078b78a737d81d38d368c220eb0e982fb0bd8a7ed97 +result: pass +ciphertext: 9741b66dca7f6250ac69e4d8ef7a7cde4421c8442651077d9a1ec366f49aec28e744cc924bd3cb8adb85564aa554a21d9ce485388293780d9a1e047c9da49823436a94461bfe2b4c4ac4d51af950e506c5bd4ca6da9c04262bb2b464b208c3686edfa29a512c2fe88e1de7faaa7176001ecfbe8303d779bb47bf92761e724cf12048708b21ae7dbdcacad7f977bc6a66264b648d7570460532966da05f9d950ce5fad36a9b0ee44e27ad922316833e6a18a8eea01c052a3b49eee2818634fc812c37837f0a09a42e65a5b124aff7f00c3b2e1e48523c643659a70a7651a92fc3f4340c3a5e0257859826f0fc9deab7f56258821d1638dc3ddf5fc1240469e6c7d4ff73d33758f39bea68f95449909551f8cf074b59e9d616657f2a6a336c1f5205e17f533c6b717e674f9774183d18446754d971d038d6cbcc51adc15f3e672fc612628eaeb8d0ee394a8044277b77bd1924046adfe1a5f12d778db4f09b8327497f6960d8a799935c2e9fe637570fe96280dafe0ae466cdf85633f3c926dca5eaffa5033227812aeffca6613138ecf47c1d5f06954b84feb8a580f964b1945448728ed02a0bfb6d7ec93d68eada6e34d7b4c084b36b4ef9dfcb5d7f04d0c10230889fc693303db3b45d4ed85d345ea161619b726de8a594ec59341e225401a0aa26a9937a5659e43d6af3232f985bb973857f88be76693343f34741db8cee47764c0dd96590d3abb71ed5afefc3b347540336a838703f658663c7d39cf338d8a023808bdae67f7adfccfb193e2324ff886218557504ad6dc63c86532a413b19c575001a527366e8d188c94797cc56a1c0b3184eb6b739700c9a36e03c3964ed2eca1de3b5c4d8b71c783ababc95a60e783a53e245fc7a8f6c1e7f0793b6660e250f1bb62ede38abd359b872cb033a434258c0255bb69af3f7529ecb5dbe342ddeac1e841ecb95bc312c8499b757c38d05592fdb5ff04e2b0cbf3ec766e6f6f37e7cb0f250a10fed900ab73eb61028c4e70aa8c9d763cbe9e13deff0fa2b0459962233f4ed514b8b8aec33e39cf7547aaa2b9f796da64c18e2245ed36b4e0d1dd62e3474eb4704016631f778906f4e7f6e9f45537cf8acbbc3df179090c1ec63732e2980abf292ef39cf7b87c320b76f8d6cd8f6141a21c321e72909506ec24d5ce6a46518ec59d22a809d5f54898f2df2270229e658878481a1789a71a94b28a865f5a2a48c18343d79fc850edb10730b7e0b7010631ecd9d24df0a8a1cd6cc8573f23ebc01ca355f44db9550445448d9f48c4f084c4b943a5828038b5753896676e09592eacc26a112da50957b153a23316fa6f4e70a84ac29c0969aa5fa6702ee80f57f18560b7dd4f6c81d0ef12f6735107ceac45a2bd8bd35f76a59c8d1e1859f2b1b13fca5fc58e9289e7f023e4f03bc571cfbc334f53bb23d2af3da31f00f476af0828f8240f71ba607cee6d125d3055a02307197544906ccfbb15ae8778dfba1cbdf33554c98a7c6069b9f3eb0d82316499832a878167ec9b11ddfd1 +shared_secret: 53b3b4ce1e75cfe52d22450bfa763d07985dbc585166b4781a7e6542f9bc03e3 + +# Official test vector 34, seed: "5da2c51b4acf488c8bded5e985cc4702e4a7bcb248b5ac18aaba529f7f9cbf30efa776e99f76d5c1686e94f50fb57dae" +entropy: 75461decd34c50d6a094b4a64fb75e5e9479f8f9250d82bb7d729dedeb2d4b65 +public_key = 39b95d90d51e8cecb49dc41a37e866c8fa1bf723c3e3815b1f388f63d791fe0cb8507020e19125bf0ba753fa89c19180a7505e15ab6c44e32f70499df5cb106f85bcc5dc4f20d9660c17307de05bc1eb6bdcebc52727ca3544772cc56a08b30c0c54a847b28387808a1747a23f6460054c582b4ca1e09691c64615a6ba3f89a05a18eccea06b550241047c1807f3323dec674f17056d71b7bea906463efaa0fa50b051723e0cd66cc7587df4b58d49fb029fda6e2e507d637ca7d489971d897b09148a6a2b47d3b4bc3a4ac0715b3abde096bfd8622ca24141683771ccad1094595b20c8af004d54873b0d42977886314fc889e5804474005527170c49882ca89648d24ba29cd30a7c2868f287345f4926f1141531d3a53cf68c8662247d47348cb1a102613ab236b67bb9a7cce47e794096c0a93d54f743cda16ea09c8d87c43e4a1b2cd9b0b5ea711f30b39812ca44da20b02cb4c8fe12343896ae6eb838ac648acb8bc8e887ac69602e7d81263315373029b2d6713705935a43177b9f9888115202ecb1a60e433d8de2bb42d235135224c7f795d342466b4c5bb8bc93931116479171800b717c033a304bc619d2a79a687e005d6215fb1e76ab67d8b46c72857a46d753674a7ef3962c90f2b62f51458204b71d95734533875819a495360ecc12b66005330593456c516ead7b3c942688a822bf0d92bf849bab6068480a0b0b4b8c3a451007dc2a733de7b51d835e5b7900ac836fbdf13a9ee82b34ccacdf6b8f4cd0594c80473040b633b7ceaa091259a21c5c881602c146e4444e1e48800a189239241813c13b724a02e6e7a70834493f794ae7991bbf1b60d4c0084c213471eb3598079adf95004942176f297ad3d55b5cfac5a3b385679ca6af26217ad8309547a0738328bc1a519712ba545ca739e8c253a65394817aa6874e432a95e5f35aa045cca1fc1c7bf467424a8d498274646c05c15b176c8a69f90a0a524b6e4b6053979499e7526ac66830d28b28ca2c6dc4061b1546a4e8d7348416c8a8fcbc0779c51ce855dfc54d94d74bee674bbc383adb248c07eb8889b0b44937356906a61b1074362754440856bb26b2fa906ebbb94ccc943fb39c00292843ed501f5f673762e3afbd7179e41835208700fef233793c0850c5b48499afed371e56e5a92a4109662247b72338db4769f9849f9516266acb133af5666b18131ed347454250cb04528c91b8334c2f5b3401cfb28e45824e73c1b6854b330c47c443d931b9e5b139f31b25d4458ac53a32025d49bb5d1a89b73bf930c74c233bba7afe30239a41587985726fa09d0a7a2ab19559ed380d9eec34b5fa83b73813a763beab0a1f7df5b87962709f255256a36800b94062d3af90990b2a43251ad9b0e400bbaa4a306520443ecc8cf45613a8fc1c61e6312cfa02d23c1547a69cfe43660d987a0210cf60965fca77c850503416c7c18a37bc10ca47f517abfcdc018ffb538f474404917dd65c8a680a667b1762b5958e43547fca1aa0da8907d7d3a25b430724477eb2844e54f35ae8f27598d568d413914bf66b70e37ddbfb7df01c08e1310932ba90ac2287187b022dc659c83b9f554871ae4aaeba7ac76f1254f174493d31eda27def0331de8e68f7b1568c4c8919e4de7a5005ce152fef9c8c88ec9e +result: pass +ciphertext: 70fa89e37eb5689eb2b51fe7d341fe3f1e80e967d0fc12c5f7fa1b8043d02752df88cc6c54964e517fb1facae8ae9b8da1941266c4744e2fbe3a12a2cbc729ed1431c4bb333a61f0daf5ad7231ec741a9fac9a206d15c5e02ba5506a8f99a4ade752738d8ccb744d1635f609d4dfdfc54fcfa5b337ee36c93cb35ed056924cbb768dd089871663c471cdc52da3ef4f61476b9e600215cc248ebb6ff3a0ea7f410bd20f9dbaa1045b46b998caf7140e96468e5e7349fb0ed37eeb2ee46f352ee3dc2c074e258b11cec9782a1f475a2a0800f50c2e3fdb819d85f6cdb392f471f7e13cc5d2315d2a9ece5450758c2c8d83b79825dba1b230db7841fb3a6d7aa86fa08c5744c976a83e67d184b5289987d57990f8b7d38ced91410c49667c1398222cc7bb176808fd19f525102ce7a682d6bde33c91edc9bfd6844962731f1f6e1c24007e3e15f2e1b164616c1261c56032bcaaecb933dd653a6a2debe9649e0d4f3cf849ad6dfdc5d1ec65e2a04d0bd5fa5460e714bb5f8f68d2a8ec3f4470e55eeca2e879af6424340ad6ce9149f9c7f345c0d417884ea8d9f918f138aacdbb78dc5222db2b8357b3d685a633c26d14c75feba0734dcf404d29f6c057d8f076262d82ac513f8730a0d55fe8d59de174a34f697366c08569744c165631961fdc637ef3ebcf572f4b8517ec51e57a8f94637dab7130d4f7b976d16d933658c0b161404f74cff2745a719ab56e32a1b5912c8016c1f80523dcadbf9b8d5986aeeaa5251035e2d93344ec7284ed7baab5a083ef365cc61ae01f77a4b64f819eb5526172e20c39f85bd0c8eded7c20e0a8dfe3faf8d1f2834f2c813e4030899ef222fad3c1a91a9bacd7d8eac4b6d9cfcbc06e160b0e81082bea66aa34f7f76e2e6213405415e57854690243eba8f016e6caa73078b59e3e7359a15bb3f1aa096a974260ecd74524a582cd0b9db891969d7c17a2768decfa0ba0e49f57a54709d767e4e24851c719749748ebb8db80733f07460f4d00e3ce8474551aca82d148adc28cd2b8f0e61a5731bdc81cd2b79e4097a680edb6131a70a285a46d1a020c38e2f02a08bd59cd07767566f6e930e473d0e999b37bf546faa102625048db6be64c1cb94757dca3e739fdae0dae257d91a4ec2d5a5c418ae340ede0b6114d9cad63a39cbb64f85eccac201419bc2430271934f53113682586b307fa7f12f0a1ed4c507c4229cf7a4d27853c9c41fdb6286750b50b11d73fa0eca184b95ec42a4545e5cdd5c6d15d9ad02e6535e3ac87084bdbe1fb35f031ef5960f867982bc34bf7c5543c2f6d7be142082c91867a0ed7c35bea543a60bf12e25879326690a1cbf76f3a80ed8b0eb229ae70a665823363b87c044eb177d9c1ac3f87edbe0ee6329f8bb39cbe5417044371951ed3f9ef27b7088ebb97b5b6cf13a51fc08bd09143fdec693a9009987b424f0a0db914e891e880c16ca40bd05be1da299e9ec17762afcf808772875e3516050e4313ea66aaf8fa7e350a864cf9a73b7139fed5a8238224 +shared_secret: e7165b66834d919f8c8737c7b4df17a0668c57a87b821af78fe68cbea325aab6 + +# Official test vector 35, seed: "4d2239e84b052109a78dbab6d80c51a86d38248105970476b74a0b78b9cfab6283e30d5a406fae1c7f54f8bae1110ee4" +entropy: 2607dcf4fd6ca1c614c21b5e37c24981c32b91c8c3e6955777da8a3f5d9c9335 +public_key = e1696955c4bc38dc838761a183d31e38bc21fd2b955d9002ac69ad96c03822fb4283c4216e93b96d86bbf81888b68b1e67741d4fc8af15d4642a7b65d7b408ec711055826bf634557c8a7ce4a32384592f3c5881aa530213c2435141505a8c0918186c1508ab11101b09397d82b31c85ab64f4bb38947726d2c717362858a0a3656487b0deaa38c8109e5fd061496a695581347d52aa7ed71c20d8a613bc54e8a49a92ebceab993b0fa81de448c156550aae181a537c38638c6320abaa08c50b7b54211dbc8124a487eff2b545ca3db8a07be7674b51a95efd08c4421cbf2aeb8cd92383851a044985aa9a062bf5267382db45519bbd747852ed1a590ca3a89602a6c65cc06c856e22484244fa15b928b13b91736b1680e18cb1f76a7209b76754076db872295ec76e246b1f58f80fe0610372938393288c85b2b2f2107fc39c7d805678e68a38e3e57c30ecb650dc15468674cc54aa8aaa424b5060a03bae4d74c8a43c951e6b53b2c8b1502459868a1b03a5c1395c1b10551c28a6756d251e1916c24ba33792d74eb88a5c84078f60c612beb4a7d94bca27e3377e53442284c395ecc235309d1281c53964bd34a067f225829e5cbfaed47da9e393895aa82a67ab5b44a92d8423bcb59265e73b84f549927427e9295acc8694d77020d0e4342d3c784b121250140db1c3bd38806351416c8f86b4abfc7a14911bc865baaf867f54e92f935b044b60bd5343c5fc9b2d1dc68735baa31ce155e37c1ed0c85162d2ae3492c44c29343b50351c64747f9765b6f9306bbb3e543334c987c9a1c2a5783a576ce94b8f10bc3539cd55f30b0cca01a5985eb5993d35b8cbb136bd769b13f0c5c2d40b34335a52bd34ab04f9cf3f6c313b6c5b9ef879c10c1e1b249cba2580f7da8bb06c003db8718f318979e358292b881f9ccf984c525b61a34f6681197a7834913230627b56388ea26cce0569680c968b31aaa97710c9b2cc019771a57f8b5739554e45048d59610ba990b2e1967648d3c87410aff7981a57e2bcce971b912c2bf633bb8ea55314f3327d3b4fcde33aa1e235e6eb603caa19ba83c98eea4196c78a80e8b5680227caf06ebb22042e9a5c63974650fbcb1531404c6862710215012671093911d67027d491a916539a1b84b3c966b89ed3b1e9980769267827731ece44826a3a0bfcf037d9fbb9bab4b85ad668fd1573c0e9b227fb5ad32c948037384145188b17620eb91cf6a6318f331cae3800164ccd138c8c75a3071a7c0166f5156d74171b5b854c0783f9905b88950c23ca8835e530c4037260500be9f00510b5357fd1b80b09aa06b7126ecc8bdb709e3e698761f756ad0624280778c0ca140c426f91c76f81b96cef425403c95bc00852359b638a8a75b3fcbea47990e002b346d5a9481083c4336d02191326f6ab5c5777f622cd4819bd1187cc6099cb7968474ed93c0b830bb301314551970b86a25da05dce97ab5db744c78536712c752d02206c8585285268c5842491f92636682b223b6bddd39c6070bfd74aae3f8ab1fbc357136028aa3542f006cfbe429001377d2112c5ae3805244b865ea863257aa671d0b146d04b89b233f70768a373043a59b9060b0943f56865e6a91bcdc54402574a0f1c143dd36948d781d2f3c44e2f08b52e339b6e1cb3 +result: pass +ciphertext: 8a123f400b8819e4a011a98e2ad172d55caa7112312c89312463d87f29007d0f2bc26bbec2154e7bc61de53f7cf971d2653d7f6bf0ef3c3a41f3ebc81a007fec27b2071a12e5bc55cbe4b1e74ee9847ae6ebf5c19f67989d07cae375209b78ae35b5fd1a064d8436db5cfb6f1acab16b1c9e49de8ab7615b8205a521c8fd597dedcfa9380fbe458be51760d097867e180a772ef77d6e2014be9e10cda64d88f7a8442bac3f736a2cdf37fc6255a09012e4f4a42a1ace90d99db9f85b9b9689698374d0fae43afc4dde391ddd631e90e85bc63616459f44e4fa6225efac89a2f3bb802c2fdc975405e09c33cfbd52f9a5b853ac7ff30723eeebcc626e46a70ae671f490c32bb3e9d5e32404efff4663bde8e5fa3f9868569d99abdb1e47a11e37e86306e4ed59f0a4896ba667ff57cc1fb140266239f0c1942e4f274bbd359042a4c377226fe963f88079953cba6f338efa8ee2c0f68ccbfad1f78eea6130ba4ad1fc7ce65b3f592eb322deb9729975ffcb885208c73d9dbc51c29544622de87a20991852a121721340c0ee5ffebc09fdebe504e0bb4151f4c59cd24f76eedd3a93f8fd8d6758aea16cf041a3f504085d21e806b2e727526d49dfebeab1339bddd4770fb1c92d3e109a57a204f81556539872b536426faebfa0e80c48531db54573af4d1b026314fd5e0e4665c61eef611dec983c285b479d8982d05ca59efb6128d38be68fe8812469cdb652a3d0bf883396cd57c173cba03e56566f1c7008523c614435c8d734b5c9772b2ce8e806824a1fcc7f20587e6051d46757d3334a345c97095522acf713abd05326d07dc1d2a845540c6a5ecd0b4f3805d39c4cd4d4f07f92806c14e6183eba32a5290a7450cb7630c3fe0e75ac0e9b875a949c4d3ba5cb8c035aaeaa364051a59c446e98b155e8b17ce8eaaa39fd8ae46d03b1b7cc53167d980366437082e5c072b029341be639297a9ba8ca2b2c521c932bdf5c687c030f575e80233f3f802c6d72b040f451771b9005a8f4da08b153dbcebf1e9bf14099ae15245d408f42e3196a28b6ae8ab6f242cdb7f23b0a67e0ecbc9756b38a5c32c40ecc120a229d4ef618eead86a39f5cd70ec99ac88fac2ed092c0601d153ae4d24093d66d910067ea368bbf4f6720e874282320614dde2352039d6a40b394c5a2d15fa00030cabbbeef0792d0d3cb7dd5dbd76dcf411ceea06948c5dc42e7a21e89c78f6dcc03688fabb2dbee392eb4aecb1988cad46a4505785758b762865ca03bd7dfea22fc19e83e584899b1aee47f509bacf994621e910447f89816065b3b976da272973a5a4b9acdf9087f2fd69b962f743e0f2bbc958c8d832f94400703662e2ea538149f413baf7d3e42b50d9d4acd8e2e12a2d7b1914dddd108f0e08d1bc0ef663179ea01b98e476e4e71ca7a54ecc6398666552f6fa6faeb19178c2927741d3de697f273fe5da558a281d245c3b68a25e395dad0c7b1d8ab4d731db6273dd1c535215f130e043ef491dfa4ae25cef994fc538b2259ebe67d +shared_secret: 19599e218264837d06839b6cb9a09af3bc4cdc78f7d9c00fe030ee92ba3bd54c + +# Official test vector 36, seed: "ee762f5c9021c36446706a88ef16312f4a12c725cd7afff1484337c91eda8e89f7007f3705747d29907b3fb7500e5074" +entropy: 38c89bbe7145c29e9a831c11431eb9929cb24fb4992db20737e4687d397fd732 +public_key = 00264fbcf666abba49136b6e6ca0ac8636bb20d305bca62bdef6301aa51899d7341147b72c210afee6a3294a4ac8685b1b6003eafb7e94d91fd958b5c3944129198bf02a2e9491491a2bad9375cd9f184aab285e91c877884b101511775cb31f2a2a3e7337406d7662c8d8c83c1933f0e27b8b2b39b1aa8897440ea5142f22b218c77c664092996e39237f577139014da6da6870d848cf98b006c9633ff138323261e1d042ea645e60813c11f9489714c197607e568c8045f0244ff40fb86634dd469033456604f19255645898181cdb830c1a82c4eb1373ba820515b6a44596342ac8b912c217603cc92b8a2b52caa29972bc95ab334a93307d7b9aee013b22118eabb947b1a23150481fa1e7b9146b9ef5fabe9debc682003eed2534d9614d90466c80a73fab8b94d187a383463e7f6a380d1b34ae5473f58167e97794767a20bce5b6d5dca88b35695e0a2baee03abd55ba0fe768a8254d40836233fab358842675508302a337840167dee53eb3ccb531a7637dd1b9dac9a00432268002165f72a5aad8ccc7131ccdb1c986a7b29bd89311099fa3e9460553900e51560364bf9af461f1487cd9f0adeff5079b07240870c310ac4702e113f68433981242c153c49c43cd93493b52395b5db073ec936f3518b7f6954426b9757476cc1bd0c4ff870a2124a8f8daa3299ac21178235c260a018c169d083cf40842bb6a0f2d407861106b4e752091dacbb85677fabcbe180abdc6235d0e8c34737a5934f431afa670d000166f6c5e4516174a205f4bb6182bb24a54907be5360cb81b5333a937c4e40ff2579b0039c0ba3374664859e376a8515b390bb46acfb54bbd4aa6daab1dfdd44c712b311798c71e162f36f562017821cc96227cc431ffbc3634acc704937187b8200d9bcbb0c25df359c386e740195662ae24cbb24b181a23a2b4cb5e3a767701d3a80f7bb82133be97daa38a706c7e2949ce86587246bd5fabc774956019c2247f5748f0988087159d42b8c6b1aaa398879c77e32b0a5494926588dc537fe1f05a10741fd8814f191cbdc50cb2a0ba1ec053a789396208415c77c18d283510f410a722a187cfc552f63159648317ed696695413ec894ab80f4c106d73933e312996b23f073bdb9625727d8c0ff1818d9f78b91c4a6c33075f9a91b772138cbf6861937c53aca7b535baacd2bceec96223ba7747b4a7d50c36d3cb0297967cc447c3bffbbb723455e421ccfd791c48f8ba558692e2ce278dd351e28d35ec1039f16d8281bc0867d529ffa6544b1663a14b6843fd85feea2b00e3c8b2131bbaab0b2161493caab5464501ff6e30074a372dc6a905b9a1a66b637365b48af4b55e45ac4236781b71b130718941f06c17d84786bf1a033b60da7c6b0d4d385f3f323dbea84c0bb8fa720569d1959473b1af84459c0ec4ef133c0688323fe8503069bc15cbb391ba7041e665f652880ee367c97f34e7230009fc401d7a34b536529ef544233761bd2a01a9da338a215492252906f979290202e5c666bb31a74feb13b05cbbb341076674c02567c80531c5573fc6428b8ceddf3ae84b8bb7018a3ffb02906770c4528c73360a867c2701158927eb5a9fac60a2f401affc4c65198b4a5e1439001d5882496fa682185d21aa4ef95ac3eb5e675c7a4a4426f93 +result: pass +ciphertext: 4730cd50dd082c8820ede968a7cfab0842f632a65a08757c67f05a01151cebd03e259aa45b446ee30753954b5c86240a0870440dc76badd33119e19a2d487f20499a48202362501ae0a106232ba9ea21b363066ec8886f8518080d736444f30e109c0354f17507e1074f7b608f16e814d76424647921aed1253dacd39e55abfca8ae74b25807cdca3b76d5fdefeb2a717ed54283022c607a22c419e236a971f96f075a7f6e46f07835732c2f9b3b32e722880b5d942c658ac72257dd0ac7cf6bc85ddf096971982a8ea480d8a7629b4b9c060c3ee287695ce0ffe1d26c385c7306044bdaad1c921fee6f93bfaf998b16fe9664a610f806b2ea0e7de8706bc1787ae6018584178893da14fffc1c99f03e8a9f54a2af50b8720f6f79be74dbfdc53324dc94e081a8c438f04a9742c0c2b1162c378a410df2be9d340f0719bca11c78dc23720a23718c1def9c31e96dd8f0d9503e43119b63390cad03fcd3d64a10130538b2cbcc9b786ae5c509b7d754a49e6784a8e66d0b80edc4a62aa5d7a6bf3a015e7df99e4f415f66b5aebb9035ee22255f2bacd84030a5128fdfa3a8343e6f84585eb47d30910f4e05f57e39230478a96f9e10920c0ad90fd32593932637f208c312e33cfa96dc2b7d3650570b7e3846727b5214ffc6c9eeab17e7343d9105a26df4bca08c6a0f28594c708c6281d7f34655370216eef77225b5ed78d4bdc303d5974a6fa92a9a75b12648f57f6f7feb9cfe8449c763138540f97c0339b52aa3c100421ca0094591a4e8a2af4fccef6ecd91b3822893e49f00a46bc53ce23eb05d489a4af115dd71a8e2eca292279b05c143cf877dc4bcce9fe75df54e39741d5d4d6a0aa594b2be511ae748ab03c9edfb8f46d6bf2a214b2d6f3d1da9f73ecfcaf564a231ae7f629b4236b52864366ea34bf23c295a921501db8f92d16c40f9651d8df6318ffc0d6f4b840f27bcc736d2e2494e65e81e1982df9d279440abc8b01108f5c92bc2655fd3d0ab0743baafcb19ac5108ec02e00af9fddb6301d9fccf2dae17152d1c06a43cc69bdce862d0a4f1290fdcfe857017c6e5802dc55c1ce2f999728df46144a55a18e54bcbe982465c8b0077dd93679363b56382a7ad1b8021a296ac90fc5fd403233397ec72d0ab74ce0ea77ca2f39cbdaa5aebc968130aaa519b0b80a141b65b3652824afb69185ad70c99e236af977f56b8e20b8401d13896b20d845270f21ff7ec1c0a86c79e4e15450ac94f18cd62e814a44d076dd7d3868a54412deb45b047aa71a9e596e385fe0cf77afa64c665c81935737e755cbaacf4ede409cbc858d63e32b004138234e294ff7cc01e637c54e719782c75cb95fda6ef4d86aa4e317745678370c76e47ecb77bbefc1a2e92a783c3d64f01f9b6d0bae50d15534bb98885562ddcf9738c9f08b4dcadef59fa856d9090a64627784dc670f03113d29a7f95a7b6162bcee928a5da0da186c7e13ae83e8e1a63bd168c3019aa59bea63cf967e2a17f2b937737c39efdf078273ff00c09f3 +shared_secret: dc5f3931026bcedd2f57b65601f683895c365862d28a65356e94049773de2ae0 + +# Official test vector 37, seed: "d882ba69ac8bbc88715f1c6387531f53273a5dab87e66faa8221a7f628d2bdeee1cbc59c0e08d0add84520a3a70c1389" +entropy: b2c35e33c72d90182791f0e12a0324f5b216efcab2c8da1bee025dfbe13f4152 +public_key = 869719ce20c5abaccd8889286f2a77b388a58ebb7c53e79619762ae5111b6f352192288128a83202005adcf0b15c0640f2b84d2ed58ee806bd4fa22ad26c5c8eb9a035768951a579f8facd48428e508abecd418617fa5901fbbdacb6b539c148af327823009e86fa49b96c42d8ec5accecc423fc979c475fc9c63696c21d206301e9d54ad1088be167af34c57facc25d4bb49ba5677842e27c1fa666b0659c66dc412de949980ca6a707a0c21976822579a0fb1d697892fc87251354a17f630271cb3b10f5c578777a990361b467c1374897675748f763619e065104a31999a765815ca7a22103f3631879b790a862450c69af8d29c0f9a48e8dda82f2c03c0e12b62484c4ee35002848b030e41dcf1084b1f70d405677a059774e322c7b72265e32810e761d82956cc0194257f31157928b786b6fb6011a130620d2f51678d27de0965465d445e6777660865df9e73bc6858fa8155bf5cb4bf9c23527340c32211009144fe456950694b656a2a30c55647d17cfa1856981867aeb82af63f1525c31cf643b32ea822b2f389ad4255838a2bc2ff850cbbca834c87f9fba1c05ba251acaad9ad99075920653d29d94c399cc4a2e4c7a871e176a275b7ac0a4401d36b35113595d51b92ccb8618f3ca40b4900774a784644973477dd492c66d09ba9b074c3d0347dafa08dbe43a9b890f62a5b9caa996f9e362b9a2103942cb91915ce8e390af54a2578227a9389e922b9c382907853ba05eb13e7f03c079301db2135d95c934da5784cb05b9726a1c1e28b01f5c5edba7a340053ea51c32d0930653f46170025204c0adf94c2075631c55790895495f23ea104a60b88c8b627db4256b6892d1b7886f959a18ac238aea494e45aaefd72056f362e7f34ec5e20e9c9aaf2efa8683970e310390a620264ec1ac3af515c24409ef4a4b99d0725de1506c706303e2848e2904f8c4824260162e5392b5b0595d699357b190e237ce1e3692ed95b7710488ad285c04db243eea475520605cb98b98a1cc893a7f1d7492f038795da03f63a91ec925a914b3c1fd9a3b5a74bea6b6770a5b1400348f7002555ba8c9c95b88cd829eb179472245228c21afa2d39238c76cde000898b718884ac8108c06e81c02f264bb6c9c5c13081c09d431aae78a26d62fbd041f32fbc012d0c83fb9450448cfcdd8cf881036ac096396e311e923478c5a346cf5c930d01c84b04400b38759a18d3ba40e46c8af5f133258f353aaacbfa68b0bfe206bf7fa65b192a4798a0faa68b2574725dfb69ff108b7c155cf77426ef8a776f0455bcea85ffb91a74f7203bdc2a9d0096fe7ab57ebb4cf1dea1ca0c5c4f9e264d2d5a0fb64658bb3b1ccc93ea5814407b6c865bc2b2fa14311ca50016b782716841bf89474c10e182aa51c0416580769312419d1219261a548ef0aad81159e4be73bda9c8903b7a4955456a3a8b405a27c18968901d54f8a0ca16e41aa1d0c128edc33b069a1c1e4b22438beb74a996c8b30c1717f07092c46402b1d9b710c46540ab32f38381c95b7445704461c0589cb427606057c78f911fc72ba38d1b664767df30901b148b1d609601bec3e40e41136ea9edac60f1f097c49906f105c99c4b069d5325baf3e6882dfda254850ba1ae5ca738086b4bb3c91df05c11c1acb67a98d +result: pass +ciphertext: 3f7f9fa76b2379cecbbfad6321d4d1616ae26488263ba56a63acfa042d737d74212b3522f42d3981ce88d95a3de3480c6e5ab26ab2fb12a6a3abbfd75505e1b7aa5b2311cc5d0b8a2dcce7631627efc9d18c571d72622e50be2ab8b9547e1162889febd65313a588def911d4f923d9747e08ba53cc7fd9e56e91e6f4c1d4b9b164a60950286d0026267920c52a33468ee15ee508a24a390a8daafe40fe5249c6a6640354df8a60e9639bd1cfcff471e3fa9baaba6b6bd1d82efea49cf089b4a7e488b5783a8b4f575bce13109fa9d95ae542b1e5c6b5ff4bfcaa17a84424856ebc2ca2d7b5736830cf35909bad723ac2c8096dd79cdb3e642d0c6a21f0b37bdfd72f0f4594bb309f4dd83dbaffb441f3dc9889a6d4132fc7e8b4186fc71d05efac20b3f994e0063575f62b5afa6bfefecaaf19785383b45f265dfc36a0fbddb402811a214e104d7a22f38d26f6505f70f2da88fc6150d914706f699bca9b56457d401b74f248f00221c7cc7dc92989b3cf331be103e4334a7ddeaa17c9f48546c04e7d0663681d1106a8260aeb63f0d9d670b56c00b62235683842294fd2dc934aed767db150f6529eb8f908a3fd7fdefbd02b960c05279da4c7cee95a81b90bae522735cedaefd3aef318107986d1b73977e254c6397b1bba132f52bd7ee7015648745320b8e9955be4be6e7e49b481ada501c814172b47b584dc538f5c6cc2c1fb83e8f8ce6efb68e34e9b15609a42995cfb06c46eb49f0422eb3b7e1a16700fdd9f1d5610a05d3503cf18eadb4c49d9ec571c485402a60c6bca3ba36549934217ed1aa770f6e68189fd81d852ae00d6b1e7f03cbb6e07d010b65a22be0c8228d9279e53ccd3147642d9f9bf57f177af63b332cf9ca0541362dcf20ec19f66b57b4b55292111360a3d8df17e135f4546d920b6997b2da5d42c20768dfccc4d3b813fc8ef8fb4e8c46d4d579e7ed6a94a112b0da4121ce3f0d71676c96f00bbb44b55c302af407eea78fdc94397638645bce49c7b71b0a54bdfba6764bed0961a5d7446898099d8ba071bd0814cdd020880b2b24f1b07ca235a425a7eef0c7fc13b2767884b247b89b1e07f08bb91b49399167b423e77323e8555bc8e5852cbe69b323e70094d7d80dc8442089c87d81fc401a1dd1154ebe49be3a313b8b2e870375e5dc12fd09efaffdaa4104228bfac5a8f2feaf02e6e2e4d786e687d55af881a0970b460c0dfc11861ea4279379540db02b8efaf12279656a876f758a7d1b45217e9290147392aad801413d1f36b3b0e7987adf276ee4591aba78fc994282e4eb85f7f733c4bb96c45912fcb43271274db783ab639edba155370548a0a4cf56cc910c93ba3fee673f6538a61ad5448cd6d43ee8e3b66f023a3b1ce3d6291b29d6b302a967956f9cdb4e09d4d5a91c0665a042df477b7ad48628bbf63ac726adcedad5e10bcb3bee5591ebc3567e2738a0d8048c9a2709bb2d158244c562c82342a5e44abe7fbb4e5ec8345404ae4b7f5260b7ab429e085b0a1ddc13dded2 +shared_secret: 7dbfce1fc7d937884e7b3fa7c8eaadb37e1663f77d7c8659b8f43abadf16cba8 + +# Official test vector 38, seed: "6c3aff39f5d097096d882f24717718c8a702382dc4aaffd7629763fda73c163cf084807bbb0c9f600cd31a7135f48aec" +entropy: afb7d6dc2b7eb6d84acc080c1be63c98afe7b07786b5801f716444a3e8e64800 +public_key = fe04b19e38680e8b5f005167b4ccbd4bc2a87c3a98d2b2af18738b8b44b1ff480ad69183c828bd372a4a3ce12ce72867a886733f3bade4144ab55b63be2902aef88ab4e129551540e8390357631233eccf23a0668886b39942c23f902265a84a08b07d11b85c096512c09ac3c82023f23aaf48578bca4b50426713c7e5270980c78c6643ef615c2b6ab57b98111a321e30d8a38b5a376f9a2c793ba196e293fde201ba7261e222080d951b4f249a47da98c2aa4b87e165de574efda9577dc815c847ad269210970975d8322645246cfcfb46a194a9b3cb2b91a20fd9107948d8777d0a14d6187c922a5beed80600991f3040643480286a580e932032a37b8c82833535f721edf44e97397e14931cf7f49201d80b75d650f204bd37416c643ba725d2b3b4f368b033589e01cdc10ccfe264a6efe01ecd3b8e92478bfd7c1abba973459346798007990a9edf57b081c73d699b7a758a6013106597ab803870c24e4c2e0d649dea9bc0e0fbc742571b7b6bcca714881db2597c3a45cf0794022b58985a61d582aa59b17e9c567e4b4268976943982705f389566f53c49526ab6c210f4e694544d307d2c8612d1ccc23658127e8b071e58136734082616ed011397bb781896953c73b5127b28437f38c27d663b05745d3fa37e9c2a07dba767f0859e7a30e9d48cce5f37632e817060ca46633c9b4f6735c3bcbb9185abf39ba9ad600718c6fb84b7c7b867b5e5c51c0b0cdb03cc83b49568a4a02ad831fc93157a4e5010ba81c0b6bb34afb908a77b2e8d106f752c39ac1a00a9467d58484bd273733947a619439576a98b4360811c97e73431901978d295148bb991433ac72b4cc3e5cac2a8f68ac9d9a3f5d53889343af7e6b02316831b7208939a88e613c0ec5d07861099488b08deaeb2cd295b6977c7c9b2630cdaa5b0a93ab7d98728b3ccec979b869d506b9c679ecb673b7d83df908aa58603275a36291ca60fb717b74406ec852b802eacf4ec3c2533315240624b5b7a8ec960ebeb04d970cb815fb059c458d02254fe8564f154a8c240086fd98ab6a4a4510fab5205a99ab873f3ec29b603a660061b8eb803b6e71740ef174db09bd6c3447197765a0907d31fb1635435601b0a8337972263857f301ae5cf56a23dccfa392020bc84e79aa6a37450389a616f6e626e001592f7a71fd00ad82f3ac9d1979e83955bcd1248e7c9f5245a22bd26479caca02f70303b8c978187f102bb949b7a709e94fc2069489601c2752222da41090578edfc1083e0a8bc9110b0e64623e320f0bc56c4f2b2bef38452ac7c2e17c5a72166a48d55ce5d3abca1a98d6eacf734249e8820e29721931faaebc3abc1a7453b5b01b52a27284995df4f07a3827bd9567cc31b2bb08825046226e059b52bf8b0f864793926b461574b73198b6b4a128f19607bf1205380127e6597ea4b099eba13b38fa376177cf8d090881a20164d804320469b15988759025f5089d7b98675d554ce4714c124c1c30775cff79229b1b99e4206cbf28bab4017077d4721c263542ea1742ac45cc500d327a3da9c46309ba09742305b25390c50abae20b6e8c8b3ae0208aade68d9e2004bd0c26d21c8096cb97a1a2ab02548ab8f1be5fdea37e49857c092ebd421eabeaf7d76beea2feb7cff7d2376a329549 +result: pass +ciphertext: f9b34462ce03476f877e2fa98f7434d7ea6a0fc46495f492e331440aa092a8028b6b3e06fb857eb5eee420bad25e0d46652a7d57b7ecdac38dc83f1a6a863cb76a0f9e3ea1ea69c2cda8c76598566448d2359adb3e02f7c8ef17899d9fcac8f7e20721b646615691081e40f533b73bd1c8dc047d48098d68d1aa5727c859f599c0aa14de4034d2a71c45a58c7d546724b4176682e3ddfbdfeec5aef0b4b3a82b3f8966b140e7c55ccd7ad877abea237aa7537388dea3d6dd4fdaf389e1d1248234ee6f49b6bc78c33dc3186e461276be65dee9cc8c4f2b47ab42ed9555ad5f1318c93bacbb25040b66157a3ae1f2db69a8f38ce29a4673083dcefce7473ab8625b4e9ef06c2b8e2861e758b6061595231a234a5d3a5ec49f65e8b3426e39bd5f6c530f8966cb915c31f289bf80c6a4b75920c0c4885bc4916e77e57c40595760aa826668175738d140a1e9078ce650b8e18788fd9bfd5707038f43d44d08de4fa353f7d88737326b3e2b73e3a3188ec09ee52823c6e6af1b02f3097e8993281eeb6a7ad1d8968f8d6bf9b65ec20c0d09d4835f8bd76296f63fa0dca647dfe3e774c834383da48e6fa581e2aec974e26c91cc3f9dbba60ad9d9644fc2e63da59cdac87b56f4725ece40c0045d0db183f966385d8e330b480dce5ed8332257e3fb21c1cb6c24219e7a082e9f7088bcbbd4ffdedcd3cc492477f223e73fef322ea05fcfe14e9371aad6a8032f819cf2dea992c9b591f2bc10c8f9c6199bb07fcbbeeb6866dc6b590a630341255c73c7d3f9122bdc29b548fe4a8c570dfa63cbf0904a1e7753fdd7fc0ba63e5354c00d2b80724f015f7971ec272bac080ac459635950613a02b96d6e1a1e2455e0cb11fed44d28e6d7551e4ebbdc5a64588bd80834e391e3ec77e034499f53a23e4d675242158263b105fad406545298c26e17b26505583b3653b873199cfc9f5a7fd411a4f6fb0957cfa1fed917d94d46a977784badddcae2f6387e9139712dba33246c34724cc922369f3403c0c9ef00a1df5a4a82f22868fdd2415ac1597a1ad54587b20b3067b01b681b1ec6e4c019117bfd1d5a09e37ed83c3023f3b57bd420532b7048d02b92f1b3ea97997a90b78634c4cef2491505210113bee290011a73b662d922cd3ae2daa62bb4cb096a1f66dc83fb72ef4f4c5f96e94fa69b5722cc7b07b7a661b5802f22f6785d35c4fc969b7bbff0906af3a7b8c0908e73af5cb24e5c5e61fee36edf4ad46d44fb96c810738ca2098112d00da86248c251c56d9a2306ff33c8a6feb46e082b3507426f58f8b129c3cdae9c8f5fb05552b215dd90b0f8f2f33cbd2b99293a4f4867365a77234ea178ab1a8d1f7ff3396a251e22e9eb200c2acfc37422f4c81e7a1fd1c7761280ec136c65358226be94d0d62146f5fbaa6859de1ada3e7026f42f36f3a71260e2045036316bab93387ead34818059759354b15e5d3a5a0429b03c0a78ddce1be68ea7e4d3e6b79b49c925d3410569e903533880d2729075d5831ec38b8c6402c978 +shared_secret: 09f64cee1af4d8738ab149d34a106ea7b19ac43e5a2536defe689824409050ba + +# Official test vector 39, seed: "cf520b92a2e3677afd003ec1ec6ef136a709d78f828c9c0dd4946efbd451c5faabfc83ca66f9d3d17ee4220553b7a69f" +entropy: 28f5e9dbda122b2cf8f3754fe9e0c73a84ad4b0c093522e0b62cf815d60bbc3c +public_key = 57c8b4dd8ab3b7e3203f2358221c9cc0f2a671ac1846e59b3d5c95576806b571c64746bd4bd541d4c55128b9a7d5208960a2b74a900a426013f6b48fe7fa1adcba5ec1e44594d3850c1a90e2a6bb341210039b48224b97efc62583f5882c71505a96284cc7cbe9873215697ba688546d3a6f97729b22251f479ab3f92cb08fcc3a9d962a661c6150ec6dfdc7560986bf808b4504ea2d44d595a8c34f4a564147cb798fdb6836cb448ca857d5d08242e233e3826797a4191e53cee0b375d395cefad91a395527ed094daff389a198c9d3b28b9e42b002fab4aef17b3089885e8017c047c35152a0e2709cccd7bf4d4a081d3160ebbc3d7a3ba977e221fea55e01823f2f61bfbeb9388d04103fa0c3330770c5ea5a882b26d14c4266b27722f29863b60c9f6984a5f0c2ee8b6f27385933994d8f9973728c5be6898012e4766d842cd1d7b360e415286c965b0b5277a5a1c5f731dd085df0f9579a31b5920227f238c389a723f8c31ea1c45afcfb6a62e555b0b2b766e78889dbc7a8a174fec48e328b4411338b26074002261e3c19c575b42f5a09a268b223aea813706900e785c3a05a98a5708d083c5e6243872ad78f3b456173267d61d57b2f330d01f7be8cac65b1ca46d8492f39c83338d92f3ea9a3cc7b502b115d5a7700e5885f264c384aa36ff52ba08ffa3eee17531915baabb5c9c04033aa091c36a0c5e99aaf0fa446a945a6fa281750bcbcf8e6666c799a43780b4024b97a6a0b14d9722856838d00890b9a982eba53f8254072f07ec00748a61ca18b0b516076382a9a52eb19ad329bbb81534da023cb03e00cb65046615c2d41e24d6e8ca6da872d46a1181133662735c6e382a615707e3d8aa89d49801f7908262c9ba7f1a49cd3c1ce9a5344f5b3df38bf82121cc9d4284da0c662d8b74ca9470051524ad108a2756bad834a1b1b2f5c01b29d640ad11c70643c0553721504ca90edd32cb4c693fd451564a1ca80f447378423888b3a2d30022997281aaccb939b0bf2f5643b036596983768758ac6b97da4843e9d8183633a65e35cc669592ba3a73e0213489ff186cbc66b8fc49fd2916322b30a6f2cc89e42715a8722c672c246822938b32ca6c47f05c21f9da66fb457206e7b58dda0a7f28b93ce24cd182b068cb951c5b29cfe1c30eb226a81bc06629133fa0a590de985e680550dc370108a7519a0b9da5b06170bc8a647c408477333e63972a7452cac811ef60cce2b8af8cc43b848cdddd7168b01ab9d138270604671d0ce57d94481eb1361d9a7f1c5906a11cb80f6454a2c358ad27086a5214dba5c5f69b003d9856831a8c13b9c28c7087efb8cd7247853b1a9c50b70d5e086a4e48ec77c8c6f4a83a11421ba4b0871692477a6b38f68c004f4beb011a137813ac02ccfe7b73271262fff16227da310aff06a8d23938444436da66d7ec6144ab44edd1322b27179901c3c1703279fc86163f804136a13cc925e47901514da5f7c68a23b23347d2b78ecb07ab4d81420662633b8a07d686aea3bb8edb04da7d2616efb147049c45e2a0deb0c85260862d4d25b47932b54487d6396c7f94193e40483c928460eb6b9b4349e1e4c0bd180111a72246c4bc20377a7059faffaeb0f304a1a64398249b1e8626fd1aa24ae11f67a7f23fdcaeb349484 +result: pass +ciphertext: 4e5a2814271daf633f5cf2f7a4b26ece3a9998020112ece4c2efc9d01de963e605fc366991cb0c46436a68f6ea28ff6b0f9c18f8a2963331cab1592a83a6bb207f4f12f5bf94f6939621c7540ee98418c66564c19922fd1d7d415f1dba2b738f6377e817848069d244c1efb59c971371cbea78c984ea42bb349ce3d47d4e66ab331e88e19602c79c0532df342cb3aac8c739f61c312e9e422357f497a91d02ec21fb79bc101b9933a6d214dc51c90c18a63077c083fd96eb09a8cc8cd240a273544714c2f12c05c0a3314fa08bdcd97276057c3f069b0c1169aea46f7c0c4d3af3ce46fc6f1a268cba433bf377800425f1cb9f2a3f67f3b6a6100f1f0b167982fb302040ec69517c9629b68328b52aa8bdd7ca7062a1f8e11e60a1ac034900bca5b84d956d92405d6b283dccbaa3297d1a760c7a5c9082938f641dbe982e14beb805d51157d1de7486f96b03fe194b25acf9222c8b86d99fbc75013ce126edcd4f51d846e2a883683f71aba14fec24476172eafaa0f4fbae56be9c14e23e913b9d60a7fbe6eb0ed093b0e2c67a61d1f160aee58f554d5d4a08e8d177b5c1df199cbc09d9e3a9bd0ffde82a7d4aa5bd638a008ca0b9036b245646e48f15ba54f6343c959f1008b5bd90465a74b7380ece0c60ba7f4f0ea683fd66442ac6e80593cff95903333bc32c5bd33cc380c0baab1ca1cbf993055140b3d15505d4598e3f0a51ab3936bb7b8188abff6b1700d4c324eb1c6442744161de85cbc43ba2a5afbc61ef8f64d50f0dab7dd7f35742d8646555bd6cf727772bdac602e4315920f825d0207be79a56390ee39226757a18ae0e68260b3f656873d518ea8e4e2bb3dbc6cefe02153378303caae4cdf13f29adffd9bf703e45cc7dba84f06e94b89b34d744a5d6e754e52e6cdc899fb7df29dff3e2842b5a3c1734f2280a01a61f4719e33f2a44218b603886a2bac8f97d3a43289e622b655351ea13f61395d96c6770d2067f7e2c3d50a9b45542747096177908fe2fc903f65c9c7653e95ecf39266de08293ced88484c95773772009ebebcf935cc894e45579372971f512646949edfdbba20dbfc8cd96605e8387b8fcaa452482a36ac052fafd5a6b9de4b7565cb0eb3e96f2164a066be4aff7cbfa5528d1ce00f3f7100e9e4cb195a6d714992476e0b7c28ca7397076939bb4d25742d1d81c64f23e7dc7ac129a094c7a0570a7720189ff9ad0c1b627c467d8ae30a094a84cc93ff199bbf2679b13532f08308c35e6ce0579e27f0a8eee34af2c4d8db0caf056566b4fe655d36a4db8daa7f2a7e5da5470118c6815673ccbbf05c221e1643d63c25ff88faf8659e03e5c0ceb7ab91cc3ebf954c7306740d0af9ebb61f03fed6e1756162764b342377e1e779a40d6dd68207c11f4297a791562d635251a3703cff46075e4bf384e657f1c32ec70764706835eba6628c708a6c8165ff624deb8baa4fae06c71171897cccec55ff89eff6cb72ffbb4db07e009b44f4762d41fed92589f7ed6b1730c3a350cb544dd95 +shared_secret: 7104fe381d6d7995b4d550278a66a719b9e79d9bdc38fb0bb60212c4355cc520 + +# Official test vector 40, seed: "197e5d562de7e01bed4fc597db28dc6efdf0179f3a5bda5f94caa39d67bae730540534d59a7a06c8448f628da8b7859f" +entropy: b0d713cbef0bb1df70cbb425d1e9373e9f7790fdc7980cc96a240dfc53f1e8e2 +public_key = f784b4d0a3b69a60403f5b9c4aa3808d7b832ab9939b2a5cd15bb36ba710f13c934f0b5dc5f125b4c4604d330608c0c608f14795f690d21ab54bb9a0ed443601f821b3c153dda33f6b102193a2343bbac83b938e521676ea2a20bad2b515c13bdba9c7efa9b8b460a8cfd6a54841bb306819b2ba7adc5b93951653c6d116c86c302e067b358631259012f1d230b892c393652fe9d778e755bb1d8bcb840c51eb93371c2cb377da1f0a33c13aa4aec4c9b79f492ebe34906b6777aba1470787bce5ecc92f494377555685e32b6d52afd230464469adda074d5a159a54e3493a3364d7443d81449006f0b88669b8f507493dfb67b1f012037438437982c868362c172556989272c8b338b8a56ac0af290c3be991c5b552b77a370c026b1c7b4044499036dff32c06bb4b1b73b66d2644d0709f59050fbdc62b36e7977a7278fdb26798d264241914391c71ae928d5c7c7800fca963f4a5ecd9ad5b1590bc941909e142be1c382d7a38b123cc23aa02c9273b5f377d97637091db6455447574bb0f26a250c63a6aedf6ce4ef9cc1c86424b226b06da65158114fdf2bca1c457f68248fea0ba9576bdfc380e45781bef85bfc87ace9f6b5c6f5805bc3403b9e9a86503396b109d2ca2916e16bc4c7a9c47270b77db678a724bb9e461e2f3adcad69ab78a60cbc52134a7557afa452eb758d4c357af310247f2b61db9c2edbb126d7284f38829861870bb494fc65b8b16d97cc5c9150d4c4318ec698cc5704f8011b19037232b1e337911565382450a4afdb8c8e07a7b4127a7d6d630c74098b528aa9cea5249a6a424536a6003787b7723027bc8dfd07b9519337d5125b8bb631502701ae2bb9c352a3407cb3903a617303a5c29cdce23c4ed747eb56bae79084ad705041ad27cc7441dd8d51ac4f5be1c594019143f41c56cf9b1773ee0cf9f116036aa65896420f82406c1b36009e12433e60993b691bf9295ba6621bec9060c82bd3d8c75d2014cb774a3eb8c8c7e698069437155da058aa4a6831c6cd0b47fb425c4f85c5481282107d4b5c61756dd3235ba61a95608404c11546a28c0191c5bf8473135a98c582608bf7c4a1387bcd92b449f888c6b9990a59725ea9c896fc58288c5905bd8ad06a80ac952106d42b298377a0da30db7f68df4119edf5b45d472c3b11c85ca1439d2ea0f074899c3155a51f26af1f52265553e2136ae3a69b529767549f146ecc6592a4448918a892af6a895a27a64480546db66c42b8a9dd029fcb2bfc14189974531c37405812295e0e85c2c44620bbac2b5376463a0490f628ba67c7bb7257bca690ce4fbae57b717423abe164a43ece7b30fc768779c5a82d3265b7a0d012383b1d8a6967a33969a5d368bbf5ca6137959093c9b321539236278043112c8ec819e1d9b532f5c7ad7506ab9c31cf2f4b95f978cf642b67b2995c8f56c272775023a438845ca46a6858b32201ca14f1bc19761452a0a6a2b6ae4bde620cd8685a89bd02f64eb51d7bb5d29e71f009a79bd060273ebc51a48bfb575afebb57215aa0fdbdc0d0ad91120d3799c8843d50068363b5c47b09572623d7ad8071ea1424799c1eaa7165343af0e808afcb39f5cc8a7f5e14bd573052725185dbcc71968200bd272d97f676c08e4a6053f4e0a7071d7abe99607e757 +result: pass +ciphertext: 9be30498fa5f736eef8c48562cc8232b5d16a725fc6ee4d5021ee5440eb211f690d413b3a7f6721b79839c1ccdff5fd07d92372a5a057c9e3689412134e4cfd35bc484d0d157f8b1009594733f8c4ecf3473a752bcd6ba449e4bf9ca2d768563d79749f251d2269a40f627e52be1b5ef09a1d45d1e5c3c01583085b45e637849c5cc0ee698c728682116c835bacd91c865a8010471786a23ac73548866d3429736880ddc0c0f9c3d840c9d46cf9fabcf9f8914967288b442ee741b9ab70064a3a3832f64397cf2b66aff37582c3098014205f219681f1c243b8c96125e8c6a9ca66de25bb74c5d725357cd08402834365061e76589eeb67b2008532bb264291b6e92adc1dc550533901c4aa17d5d8501365acb3c7d4dc219aa9ea089b4d4e859d258a6bdca93e9bd770a19a3727d98b3e7c64d2fe4915f5149a0ffd6beda15552b5b3316b40a9e4e91077e736cedb5edd7e9a1c55f7b4cf448d1f3902118ddd376187c67acaaa74323e57f367fa0bd800a5facc0689480f47b7c0e4a363aaf51c34b36b21e99f393263294b78eafa045d8b9a02920d51e7fd1feb3dd9572cf1061907e7147df40bf130326ff20812957de39e4fe68bad5536df9b14f4bccd8983ea0d6185b50bba47d74403916dda1b98183403d50c85ab2ea42268ff176346c2d8dac280638964f5ee4a4d13091a8abd8498eebaa3d3b9fe625040badf9730f46b1740b83e4cd71bf299a1d4ef738a3f45750327c2194ee42a6e4338350ca872e1a1c3499e11b34869b0a8b5c4ff91c485f6cc1814f41a28400d4eaa5dcd5c6097ce27dbcd200e8b016bef1fbd6ad51e29f3b677f66398f4a3d691a19e4871f497c0a89faff13b59f6041faa36493088766e8c11a30231b2de1080dd5efe323522418680f6ae888543a10ccb720a00c765104afab09806a2da4950b3eef4359f820244ec0864199450009e7cde716cafbd25d3a833cdeaa5f13a346f423752267b96a1d70c0af7cf8e30df4482438d95b73a82ae399a4e08bec89dcb80e948903daca79d347c9dca33c9efb30a8994a3428b255f4bc63ba1cb656c9ad148209aeb4024569922bd3cc7cbbeea34133b70cec836e53405b191855dc50bad0ee9e4ba62fb2750ad0d8d0671873212757ecfff10c479a805d52a7777c300350ec3cb4aff3f28660f1e0a7bc5c39d2fb0f944fd50c6c1f484ab01fb6eae7ac4cdfa9feb60734badae4eb075c7222382c559775229fff982ad0d64578b38a505442ee3add8a665c0c25c4d4e0d872f048c39a4e6bb1db711086b3db81d8ba2a39628a18a92a44c66628d966f11df04311a3fd13b2d1270bb59e0d377e69c169feaf8e0b74616e9caced4a296caa658c0389713d20153b162c1ebccb4e678261d22f095107471dedac0923efcf9935ea4a531211b0992fcdb24b2117513230d40943c3639d7613da960e54e5159df207b17a6e15d0bb4df2a491a9ecb56867be9334aebedaa93a1304d07282e100e3ea2855f6a1653f70c96a1495fbf78f2a7062c87b +shared_secret: 79b1ce19715dd0a74ada36d31f63f3242716890a66d6348232c914c8e5c4c499 + +# Official test vector 41, seed: "f170583cb451d8a45d105457c02c01a33a40350616ed8515bd49067142f61efb00f07857e4fff3fe11e7164c648c76ed" +entropy: 32bdcdb7059fe27f6409901980c080308951ffd90deffa8317b4d213a5f04495 +public_key = 8645bfe5dca2202ca92a9b07a6b33b49872ff21b1cd901020e4ac369fca24c00593be105483a24076cafff8220780c9bcc9150b3a65571fb426ec47a82974bb2a6ba13a13551d737e1ca2cfb50103e14269263caa5b15b16066ca63b867a250318fb7335babe4fd81a2ef56ce7b5beb88c65c2bc6c5a75149898a3d8a552cbfa6af1a463a19a071cb64280da48f3684d99e0b4adc7b48d039358f201a7baa1ffa4ae95fbb0d45776bf76523cd504a379377b740d26069e933748710a63781a23765a6659eb4718dac557a8553fd5be04230166782860a3012290b068542dab126a9f921aba2b61afd6958052baa7b24ac50cbf1f613abf761d3315692c49184cf3995cea8f161c86768714afd1185161b6da86c73a6b228b953dde1713108029d7a729811b85aa906f67978239c6b6f9f4a72656b9536b23691b27b3b2316176357c07b671eb562c41621c7552265914c500a21299b17dd258e2a04352b506138187611c19e7d8860741b110c57372a3be2be7a3b5a6c688390f06a5cdbaeb6dece153ce5181c8080e4f879fc063a68739032481c2cea4611291362165a63ef3c0f436230409c8e5e57c01651471694bb67729919920c6852bd78766a5f5c1b5db45c84ac14c764549b54d8b2404523b0c00052c5d3538cbc00bfd96b8034206714a645d447dc83844ee82c069f63b59587f53c3cb0047cfe63b4f6ef41513ac5194b91eab2a5ef4d7bc55e1762e9162f2fa009a9c437d2c93308ca411e8ad7f9c2a642636d5e89f93f5bdedeb78062032db389bb6fc77be489506a98022e83c9aa9b7bf65c561e1a8a95871e4ab1875535981466286175eed087e61ea034c9488fe953106aacb251c7fa044bafe474c2eb602cdb091687558c02778f4b562692349f9b132fb3a921f75a4ee6c33440ab76fa420bfb339e2f8c225bb85538cc4388522f9628aade183c1532baa778faf937035639a5367cc64c4c036fc25a61b4f85470402e85ebb245a43c92f2cfb0ca69879a0fccbff31a35f2b46c986c66386308fac63978534e5eccd137561a6b110d82a2328a90636b55b8d67337626115448ca7eda95a6d2740e33c6cba56a9f34a95a7bc8f304702e25315f81182e54b2656913939083c052664a9844535301fcb730dfc9c5571ba72f279a0412b98cf64c069b89acda010494498f92838e32c711f1712d8b34303b3d594681305b20d2f8ad43fb6598113415460a0326bbca4c1d658a1462aca2a619abcc5a61a99921ca82882e1569c3902769e208c61124e741630fea09ec58065b889890a667d25bad039c4846a77d17acb5e726b5717b00e0b3918fc767205028cc4b67cb29b49196b4dc288a3abcb112bba52f0cae6ef09cfbd74d939b73ee610f0afa6d8b345d3ee95749cb4373ca3f52f69ecd767893135e7dc4ba6d069c053b79fea0c69b5c1258609046c761c77322a9d4626de19df5543165958a447432d5237f399bb1b9a8923ca45521b21cc4b17d36e724f5a09772a7b8609c9c86140b03e8a10c54adc91204c686049a643db89b0c375a359c943d5961a803c6ad28512839f42326f53b22dc20455c843ad64753498e10145af06270a81213046196d2192d0ae3924f4dbffa093a9eb51025b31d268a74f44b849a4c408426071fe5e18c3ec8b5c4 +result: pass +ciphertext: 505762f4bb1982d5097e0f7a5bdc8da4d943a9f9cfb960077d0c303dd0424867038ff99fcace7860f6c593cdd50bc8760b9477cc5ad473619ef4d8d8058c88a267bcb5783a1edb74f5ea36cd39f8c6910061eaa927f7a1e84b51a1ce6e507eb45730724e422c92f61a3f8743a590197b16e6050f4101b6c6d22a12c8f1a8de5f0f6d7c5dbddb65c27e98957905ed7e55d6e51a46dbe462d9b90ff0fbedcdddc99914d3a282e09564b7206c83e0cae6560053a5ba1a83a024650154f91107abbebdb10f734dd54932a6fcfa73d58ee23cdb936d74c7e9cf31e9353b6db031439e8dac753189945a9116358b797610e845e958f827e7ca0aff758d0dd5acc8a890d0771ad7c470586595f54c1ee8f1c4ff867ea4042a227ed80ab49c17ea5d2089c7b27ef405706fc08351945e21f72d7e4fb32e26e3bc21eb99145e3e357e4a10de75f348f4303ad45a83dba56bdfe92857731d55cdfee03d647c5a4ecef35b2ff54857cf1a8fd7a9a244a95917ea87184390d6ce6858afcc22fdb3d53137fde169e0a5852487d4f3ea78fd9d295491ee6fb86cba9f2e1355519994126e1301882964465eabbe07697627a22819667e8079055b8a6fc5dc35e0629a1b74d64b1912ea7f902cb1459a38a0fd5a9773933e0a10619fbe281e0ff7169a791179057df38e5424dfe9cddaf545750c2269c64a465c39ae65d5249f742b66d32033ed35781a099b02c2b5b7201a7b7c2a4e00af0c724fb1d6dc695cf261b60d24ec5a3f028c53feb6c63ee90e424ee5e467f3a0d693564676dd8f2fff3c6d45d5d7f095e44b1b5fb43d65cfbc524b001b967cfc8f1d80a198756c2dc0aebf272f71a4fdf3c4e7857461d7b645a11835b8ba7dd5545ecb5cd71113119fc7432d73f816bc91c1506dc5b4fe1448bc7fffbfafe093cda411044211bf365790c20ac1808f8bd99ef833e29f052935f35ce8620c0e113eb4153db9ca285f31b5c62e09e34cd41b427113e99b4157ad2b6b6fc269b6b350b540962601fd7dac7f6199d08bab7851cc1b5ae954288368cee962af736ad7567ed9a961dc0fd5dd428fdf6286e7265421a2b05f2278a89773b5c77d2e52611d292336f3ef4c6cb230cc91cfbc0098a41d1504253bd378d617b9020d9259bc1288d43adf5cb135cfde2d47d55479f62241de834f10334022b877149b7dee20f2c8b66d35ce27d2d48ed1a9743517d3991c45a2831be582bfea1328a09ae200628d5a0a93157abfe9dfe08d41c1101aed8e1d8576a4187cde5bf5a940b6a756b5872d8b1ffa9a33061fea423ff3d9f0c7a5cadab5f9e9f6845774f112c931ed33f020ad45895133e2f1f2a31e894660df8dc6aa7b27b15f1e868c27308450b4f496cb46d2f45d4322cda850d09e37a20e225d8678d1d1bad2044801e02c13ce351a84197b529f917d0c41f45b02e95400046b2e78dbfff61c638030ae94ef4187ed77234f21d01891c4070b7d33ab61d46926dce9b56bbf7e37eb39036706a0773f6b4399a2368c1f70191c995e5533 +shared_secret: 66e872a4b3baa42bc3e8e4ee787ebe070a094f05d2a0792ae2ae60f8bd0ee0e7 + +# Official test vector 42, seed: "44a6774b2cac02dff210ff861a090561a453db311f47b6fedb81811872d5d9489f5fc4103010139ae53fcaed209dc9be" +entropy: 4ed7c92d83bd03b2a25b567f17ae55542e2f6a4308ec0f3fe69f8ba5ae24331b +public_key = 38724d9a8308ac6b70d1c87bfeb07775d56703980c9a563040d1ba17297b1f253afc339ddc11a42cbb051ba2722854cbf45bb80cecaa81ab63ce32acfe953f9ac8648b95be8668822060bafbc10b59e72944185a57f790351a20de6679328169b954465f8cc028558328f3baeca98e42404299719d205cb17c745a7784b97c09130e26376778a9330c99ed84288ec3955df4076d0c9f5847af05bc58352c1364f34b0213a3cd05b2d79108af038e457a30bb5626b1dc404605678ac675201c537a8a6ad67a8e3e0b17a0e8632ca1714dd341831b2790591c1f39c530288dc8448527fa542d64192e407f2304747ca7cad98986c59622b2e63e076420916635a538871aba5469f36a5536356d176265191fc150a4dc7349f07c932c053ef4b6bd245448ba8173ca0896e51092e06537d2157b0c1624d3a29eb0d055d48a038c858e53c1045c392d6f59408df2bb19b35a87737ef90b9fdcc380af6a1ea122838c673e39f502a08908ac33276b4297c712b3c7541c7806c71dc76e9291c89cfac3a56c9c94852ec4a47bf6642349b95f69c43005fbc927113288caa2cdd6175b2a627149027e3688b436c336b51c8539cec3c5537de5ca6955543f984c73005181e916317262bd638e249cc928e048a20045907b79c441cfebf0b9106c8847b8088b4c41fe6b7356d7947ae9a9549305c9278e6e3a39060854b88b65cf9a20266218864c94377a475c0822d454ad8fb42c50a13f1be65dce1728388a8d4a81b372a1486a86b0e6d1abd445559dd3b827b834e2ab3744c0c5abc51bcb7551cc888de7f590ef780d7cc94225830732f47b6ab4777261944cbb3e6d943eab827da40a7b00d8960db1810d028529449dde0c00eacbaa321c14249b7113ba43968b79070b9117dbab36b44f05022bf25a9ec77c7a396415c7f24ce5e364b09a16308472e1d49ce92a41d3b868e4664e93279467745b9e04c39bd67cf0226d198110e6235a3a35af970a73a3472027e1c7368c867d23cbc1895790f2478f807b756516acc4c7dae3a350f26a0353930f4c23c3d982fb90176bc70e0e6b739fb67aada24d10f2ac30685c2d7606fd6bce5df369a0d176fe32b0e0e8cbf583b0e2019167640fa63c23d7223259441152b0c79d9b2012725b6eac08ba8438cb90309123abe5980b6ce6889d6b7d1c756aa7a90181a1422f5a6f803b1e772891a61ca657175f7b815cb3549d3ee613deb001c7ba200730b2771b5743d80ee48683d94015ac7221671a3a711468f8b3be5ecbc1af824dfbbacf87972874e847b399280eb649304a3687f43dfd769e13a4964892b5e635c0a2216273331da5c5b18ec0b406ab1163d4179af5aac5fc8273296e2433c8fd993f9340c5d365070cb72715188b52cc0426146c54a3687f6a57f36b0b1dd639c505bef4c71fadc68d62009bc6b27b3817660df31faad06e86b91aad252b80461200168290848f963010511763f8614f202a3a05680831b8bde86a18dd79248d46c144730bc7b4757ac95f34ba2cf0436bda09cf5a9285e7c924f3b514695300c33cc6d92c280ff81e72b549694aa7aedb46afd394a2d5826e657897fc53285905406430c2b7786e64ba44225985f95146947535aae744a3b3707467701a8bbd99b938f2fc7737f22bcb9f146983a07f +result: pass +ciphertext: 8d02a5fd8b7945dd8e00b27e4c2ed63c4e5566b3b2cae2f068baf7e0f8b816261f56aa61f545d41e18d5cb2f4017c97cb3b15eae810a7f6b82967420212a1f4b794b45d8f79dfd8b2ff1c21b50274fc9030b707191cd1c5b8b519873a2e53ee6b74d9347911019654a3482b80d5e9f15c5e6560bb8f7c6b3a41ddd398b254dba5fdaf91a5d37fc1df8c8fba39f75bc780def00847d929dc8f283b2ed381660ca7848eaeba9b9ac0020952945e07a946b8a4bbbed8361031315c8c5180cf072d039b63f7320616fe35dc1edc4d52635bdfd392a6b01964e232b409ffed11144b61cfb7dd477c1dd0daec06ae58c5a4bc0e609fd35972949c93cbe0382f069a39fb478ecbfced5a059a151fa09df4e2e80b3cac95129d9f75d905cf122608ff06548ed6d9aafac2e21a94079f2efdd3e569bb12b1d3d9db82922e7ab0c9eb43a83df5bf18a1d315048267f5055f04c10e1afe3dd4b8c4483e0639c08c6410acbc2c63e7e0b7e4258575ce0c85aeb6961705bd86d4c95281212b21f84e71bcb4d1bc9307d5fe07d0d530c1f404c1f2ba4ccf6327549a0f98f7fb31ec5da2858d6b3ebe63d27b51a4e3e08a10351dd521fc39945fdf515ce419de7f39c4878c5f71a1afd69a3b6b8951da056159011329d4aac3d5379f44a873a604cc60c5b6ab7422fbb31361a233c2cd664ead5ecfaae4bd71528212736ec659688d29831c01e3e5c03b5ee7bc2a4be63a129f9ff6dd8e0ace373d41e3f32fef73c54ce6d59cf15edbc276703df264c57532a6b30ffa94a32c36d7adc9af13e3a04bbc565d112bba7345c142dfd3a44798fa837492933c2f5f6fe08a43a7ad217ecf6c07509551f36463322ec364a23b444f037a53488c14f91e865285b1087d7d99f063248e22dcf798a2dc217c691e22f3e3d7d3a90de196e8d7bd18ccd0179ec35b2e350d5329af42177d7b731dbbcabbea1e6deb321b8f4f76f95db01c631df3c912afc1438e245151420cc60140451ec7401b8de1eb9cc652a008574ace90f8daefc8541b55be2b033af389226c4bcc9461a291ff6a3af15450936de9b7e923b021ef131b573e2ad16414bf874fb962a7803bb5d620e12b6839c7b889557158e79e4add1f4a243d0f3257ef397a4168a2311f3992ddb8981782caf922522faace628cca4f078f948a8aed18bb6f2708e810feea2d4f1932f6e6bb9c54a906f79e6a13b4d2f7f6f106b88e18fc955e1b4ecd5b1546c5ce295f7215b3b33fd5788e0e24306b8d1059ddba8e151ce1f5c6cc6defd3f9f9d811107511dcd882e5da61452433a24d2b0bfb7420a7924ea90a11106b5f5bc0ad7428fab53bd5fc955733b9173677e8a142f50f005cac94bd770f8397db0954fbd8d38f2031681c644362f48e6f9bf3da9cda3369174dbab9089e83fb4ef1814ec4fd33f4cff8529e9b482933de533ad2fbee4a6341f1c227a69f0c52e0a775eb0ffd8f88060b9555f0edf07791fa1709e769427833a5df7d92ea0ce6bcc5f26f280d1e8c551c7f29cca8ebf6e3d07 +shared_secret: 56551e57abc7b80a842db9ee65aaf6e65b7c4ca10fc297e9bb0a6364e6255bdb + +# Official test vector 43, seed: "49e1855588b6235df2a400c4a70aedf8ab17b6e5e2891aa745f132fa2e7ab0c8117c1df37c39f5d57624eb77c2b4a091" +entropy: 060ea5d2ed1dd88144a9885e79278590821c22917b55a48920f96b53ebe0e689 +public_key = be19be36c8ccda4c9852a442d4259905628087c232f28871b05512dcd2b769179ad09a9313252dca243d73b387b279a1ca1151fda2781ab7757d2ca5c64052c8440bdd93acb5152203987bd5a693453957504242b3f8667d3c800e9a969372a13fd014715a0bff3a24c8f31a69c329a1c30ef37ca29903ce0943982413b0ba694ed53cb416f125151c8f036709aa2174ec365a56d608a2b54ec71183e2b4258e71adc09c81fe05065be2bd972979eef093cda03bbb82b6ee4180731c18fa997195d4917476427d7c07d99b663c4b50a9cbccb3c364df354685273b8b42b9e118a427c765b08036350a330be79b3ef4171b953faee56f719483717854b29aa3385545d3c9cd71b0a070aa2734f8327c095aff6b342584a570371ee7ca3f6a2a2bbda60c4e3aa264078b6c9bb206781f229b9a5cc2bba0c8933d01b469b4c687f5a1749513bfa3401cf1443ec0558c89c58cb795e3686640f6350420bed4b839ebc8106ff7043107c590c0bfb753c0aa2305e4920d1f639c3ed400a2836d3b638051b58ea9580390ab57dd7138421709759b89aab4279c5a9768cabfc44ca6a2f1cf5c039e2b0563a9048931f1565d164c13ab60e4c92ac843451cb75662ca03c47a652445b7ef0b8e622187387059a614cb08796d34758133050161743677594d51d02f290b3cd7f23d4cba1a64377baa36082249ad896990d79aa040a7858f1b3dfcb43adf040f1b245d216b2e23420e0b9613e9db6c7535063d05079c739f70759f7de0291537aaf5d6b3f4b6291c147855ea9a79ecb0ad80714520971011365dca81ab5bc0d9d70ade36a125ab2295858b79370fe21932504b9d583c787bf28762241a279663baa450172651f126bb20b85349b6344ad404e3093369569148a2a8cb7b7e08e68fda3408349b4761a171b0c2c85b37227cfa3d7c16a3950298c100955402919d14a71e7b231d60ac11e81a46515cf2f25fde507c0df59b352187af7059f3620026c84469610d0098895a3330f7638082d5b5a925afca637a1d160ecd2c83fc522a3bf40591fa5ecfbaa0a3b1859fc58b1d157c18b71d540b6aa398179bd65dc00866275cb0473964ffe5a8c638bf57304d32e24007b3c61429881ccb1a0403566bf3c46d8a19e852aac6f58d4ae32f45cc7b0f5181f18675920680c2c0ba8ed283fdf20c383bc08ccb7d46eb85204126be034374769caf39ae633924bc8ba6b7b89daf72ac4a86bf86008c02fa0fb18a5de6f8952eda2526fb1d994b4165149ed11b578359a7b9d0bdd7257a2d00b676268a38528fe34140eb408ed5b916c0c43d79ac29b0946702341cd7c20ee23c16a6b2cfd1f9107872b8965952a9a45e0e435c56695c819b71b9a6b6796553271c029d06cdb0308112a89ab4b714566a4b18d03c18d223fb6427c7b3144e64874c26a8ca418cd6f14e4cec2a0402698aa1af6ef63264806e4b42ad3dea298a404c1ec260935166418068edb71abec21040f9b3eff4389358b7cce70461ec8c0ae8873a45504e8688e266787421343699089fc31f84ec95a9f2264eb3ceda71261ca791d052a43808ba1f4706717a10fc4ac21b625fd324cd86ab8b3dc254da31bac0f9106028258adca5f754b309a6c7dd30e11b8701ef37e8715f03c0d8a32e9fa39d37e7637ba00940 +result: pass +ciphertext: d09bb378673304cb931ff7390ece8f2573c1cbb9275b8c26bbd0ac09db08c43c0a9b77ccade71a051de7be9616187ddb7cdcc3382ab8f6bc6f52dc344a20b519a7adde7abe4262e2f1642b96c687ff873ce23125c8b93323f213dcefde61faec8b976a27ad4994887e92f0f69bfa51e8e197ac378e324307593331ae293c91ba16d4359c7a3d43c6da57cd988389d014c3c2bb6e3e7ba6adf91d076a408efcd265935fb6332a77595f7ccf424ff11657962998e0851db1ce4c15db64b7db28986c272bbfb34fd20e239c7ef3beab2e101562c3dac28ba965fd5c49dab3085ed0cf327677041cb38b9b509d08f4140f7fb977bbf1e7bdd0b86bfe4d1cdeb112c3bee679bd29165dc9a81e7b1d9fded5b334ba7c3066203731642e3f1bdb606cfe2855c6eef1908db8ae2d3a7f4cce4e517817c696ac5f71f2c83db6f499d019ba3a1bd0038b7aa074eebe4e78e0a2ce7919bdffda15776489ea76a90246e5ef8acf9d38e44ae3eed809c1da8e2c805012ebd83e3cab063d6084b9aa4cc0c8fbe32b900128789ec63397d45afa6bdd7839c006ef3d9300cc4f8cdec1a565dfeb8afdabd1b2f16a67ac789348b6caa780d96f0b34bebba3ad00be9231a1ac55ed651259573015133549962b5288cc733431da4aecb190a8d43fab2ae764e770c735093ab4bb61562defa7ce3097c837f15c8ebb3097d0ad7e812e24467965938eabae899f82eb417132ef67e9aab3e8bb2c535edea8db70cdc450f8f4f100992e18af931fabbba58d9558afd20915266d71e92d8f92ec3f3fe455509e57bc590857edec1873fd1ce867ebfb06cdfb910607856964913181f86ec635a32266bb2b3c497723a0b9d056175f101d8258b60087a6de5590cc73f8b0e68fd04e187162eacdf2a5f0e8ce480ba8b45d1ac9e003b4cc1307dfc3e6e101a96585bb9533e6a6e4d0dbec742f73a032ee0b249e97791128f63c774c0203f4c19152302127ad848f427bd90c36126cc3a1f8cf3cd81484789e0f51339ecf4582f6b13c1f5268b126a99490115d544ee00e8512f819ddd4ae3962109b9c4361bfdcba56baf5fe9a541d646da72cae1fae5cedc8e8a165790a430be4ff41a547c2a1fe5bb2a13af50f631afb24a55e90356179d91c922f276a202c8f7a837d77710116a85686512fed7878ec011a60f40ce808bdc75f0790d2fc9aa3dde710b31843b5c1560c8bd75cc6539ad939bcbc72768e4d418e119f69f5fc7fc00bd5681c49aa0d1d2f8f4dc39768154c10482bc06a894b20b8d134602aa11f1be166a15dff347b5a695e52f2d44ff6c50f371ee169ea64db848e1909b6392ec4b77a0658fb1243bbeadc8095ea5e8d81283e366eef91b0b2070c2e168dffc97dfcdd16b566deae57ee6a163540977eaf31774db72d21742ddfc1824eede5a9e72e9917aed7e3000f0ac3f48ba0be24fa86f62bef852a2d3d02e61e3ee6137f41af011b6dc185127913adf5d387d6298645946d205cb188ff6939b0ac696e4d75d44189831803257d3f07a5 +shared_secret: 30abe054c82a82299e7edd52870f461ff6048daab627b6c848a9d4f1c4641a0f + +# Official test vector 44, seed: "df0e41d2f6f86c1f79d31fd5878e7ab434fc0af3a0d5f47d2ab3fef31a42bd949b0e3629df9f575befbb62e829e51dae" +entropy: 10ef9426f8c4a13b52325c5bb4ead4596ecf2c6b5bd2d37d8350e90d4164fdd9 +public_key = 8afa99db2599004da53ea126e94c903605aee44b3d56abab69438320c91918abbb1ea2b6953753e475bc33c159c590bed80760731565279c640d361de46aae78d0a837912c66c5a347c0946f6943866750c6ac1eee713cb8636e543b2f8a08857d53834233603391417a23c88b6003246a0c8ff39edfc7ab8759207dcb7c1d923ad891c31ef564e5f53c0447a25728c934303bec26875c44a26aa36e0324ca6423855bf2ca04e27cb8f42329a3a0e28a7285658fe1748a58c538ddb710c6d7839b573b30a5c4486a448dc0bab7c07b86279058578d4a56c781752e8ab270914534c51923a6d0c226967313695987314975dc7c7a101578f326d02a086513b2608a8b58ea5a63f2c6a1cbbdc847c312f5a2309c1749c349101a42757073224b0aca598a6a72cb308a010c327afac94798f8b4c6a1279389c12d1c3015b02e37a95705d3b2b8277c2c141bc8148c94244ec5c50e65790fd6e0842185a5f2ac1e72a21d4d652a63001c650b6c8d06cd758923d42479cba96d7eb396803c77be54c831063707a35067b87b2876a1a0844d11e1a895db70d596871fd1434798771b487aed562ee1d041c06505786205166812fa718424708a207cb4a6c25ee78b8b85e869bb82a89f647a813b97dc1abfb22b430d37adcb43b7bb1616dae73b0d606940e5af7d139f73b48b4618bfd5c22274d3a27c20195794344eac73b9a09de5cc4e59a2853a412eed7062dad16b0e1aaeef83221d34b3225868da033822248e5e40a692c20ae4cb112b9c4f9e373d6dc3393f385b5f65c7f14b66d7d0b31dd7902af39812d76d5ce73ebfa4c392b069be694bbfcc7b9c0825d158b431898c9cc9080d632196378049a5a02b43cf83d37e4a731505f23009661070038917a93c452004a8023b1da44b4e5cc53adcaea033c8759a3bb4bb52761191d76c95599a9dc2a2292bf37aa3803278726b660233e9b476748a31f9fb9f2d93b59b9cab33356782a976e05b083716262278349fb14b806a7cd3e52c1a6a6f603468c4b420cd544bfa916d157a21d15c1945b31f7c6285c30529ddf735350c92c546ca776cb44360cd62f05620f8b23b94a0a720270f122b0f22316050b7cf6623cc0658a9146861785c03fc4e0833c3565ca4ebc951f5145e2e434555d45c3819ccc4c2546673c18d70af49f0aeaceb83041556d52754c10b1d66b9c0519985e9b0aed559074743c8796881e5a189a4707b8923097669b2d9a162dcda33c3b825e004aa20b1749eb198299476bf45a519d341e9b507b1e411bd5382a6a84b6dc9c1bb437e98546074076ea76654ca6519f7a71d1f39c5328b16a5b182bed6b57ae058c3201554d612628274bff57755022b7e653dbb461958ca3eefa117b57299245a9917158f2409384a7b234ab390152b01d1383aad99747258c61bd24f7b12a0332c6d7b5ace324b4e1dd9b3f8574b17382bf387155f0abaf4fc8830b7774275821e91a939da83c9c189ec08774c739fff041d40d512b171c2d0ec7e404349bf5a64a876aaaf72c9c16a004578842bfbb6ff221debdb6ffc8a6de429ca0d7aa50071bc8d68c23c379364e56e4ac247a99523f8d90b3de4b049b526f8961621b98dc534b9a756aa9c4a1b2b4c7726e701ba03d885a39d59a76d92bba31013f2a4714ea384 +result: pass +ciphertext: 5aa4685b76a5cceafa22c32ab22392c40633343d04040d943150b99eaeaa481849d61ad30d813096b80a057b7cf919a261945d81e9806710d31b288be2e4a4c64b1930f4846e72798a0eddb67b2c447eac1f14ca8e0af01e99e1091ac30ca410dcb7eb7c992f9accbf556e0f4744d89dcd2a91c6624324a18cf9b6cbb4f4d482a671d0989ab0ea45c8115aa5d66cd6ce7d8dbf66895a3620075db3e2ab8f3a6a511ce88c3006ce3aaa0237f1d28986b5ee5f0d77cafa7d148b43fb1b9900ef24c5fc81bd4be5cbfbc3433f6121aa82ea014f7ce1823106c4b7feb9f894fd84064def9af7984cce8ccc62d1902c630b98047d7242116fc5735e6a5dc1e1b014eeb0815c056505529de4c6174b06ace73c98c23099556802a3fba32c715a3a6b62dd4dff023ff5a51ff62ce9acb7b42c7b6a5cf2859e04d18c1e56c778986e3c81c6b44add109b09493f318ce089d7641d84ce257dc13060383015b9e39d3988a1a5b0305cb75b088a7c6b0192a2a54e9a3de472b86d9a8a9612a19686d4a757cff8a8eaa192f3feaa4bced756090d4522309ee5c60fd7644363831b97bc5eeb095d9cd64a5cb97fb2e01e51c71c8fc745020fb789323bd2e252a6c52024908d387cee4c23d2f2cc38bd82eaf1a85ab9646856c434d0750c578394ef48958585103469ad69fcd688a46479de7d227809ea8b7cf9330d4ec5be978a1d2dae5b070b64c014d339b2a180328dc2a36cf83d4f7d5a2675099d2b35c91df8e4a611f4bc400a6b7eacd4170b9cdb5d5dd82dafd8ceab075f63ff7f6c16374ebdf38014a668a6c327580aac261e2194a2ba711fbfca6f73f35b2ad9ae7c1e7807c7c038b37f09c8be31759dd48267df69d00a2f6d6d9b00ad0d34fda09fc740b664e4ffdbe2971a1b88d0de74812827058f702919f700327a153d467a479e8cc06b8fb6264d6f53e7b8d84ebe4060e998a4576624937438452ec7f82ffe78337c2e8ac8ca790be987ba3bfeaa8495cc46e0f914a01b8af50e6b4c420ddf78f5d79b19575558951a713e09a447cdc52965afd3ff472a14203d393f15ba0c77bc3784b800aa78c389e3956ace626f5a28c8b67f6d9d3b7ba5c6900673230559312d4c8fd5b34abbc05600300d66ea2c8760676c205bbd6e63b0104ca3e30da4f2d7337f2dc28ebaaa7255bce5b741286ea3317e73d060babeb383d607345a808754e4f2771ff3205eba4ea36dc7d5b7534fd32b8701844d2994befec0697e4d3227813625e5d3f46b7892c1ce63c7ababb97eac2b06dbda7e460042c5d075bfd6c8b9cdf8db87c5d416e0a67d44d27338f73d5fea074c94dd5dfb8b50a32ea3128fb3432df47495120337952b1dad75b4fbfab5612c42e20ca2706728af9d89daf053141b264c9039299972ffb75c38a16a737bd89f88d603b5d83650a1f585b72e0737818cceda2fe57065f0fa2c7358219227cfde2d97ea5b5e32e5325b08792967ab8c12772a8ba9167e41d86ba7bcaaf548e1c2b0701fa1daeb45a86f727e7d91cddae1 +shared_secret: 4b525f467ee0d96c1f4b899a114936343ec21c74738b05555b2bab9a5d0b5513 + +# Official test vector 45, seed: "d3c9ebba6eb03ccb5c9b9d2c8d7f0cfbbf50841e24396cddf0e56525b38918c2fbe6c34cc1b93f7bcd4f4d5777e1a488" +entropy: a4bd30a64cbf29a4e290fa1cc1dfb99e68348713041e4409a1af23c5d80c15c4 +public_key = a7c9ccf796828b704efbb194d5d895cec082f5dccb78b59a61090eada66093c84267079597c9881dfb2ca8fa4cee6682c4375eee25a08bc0766eda05bedb2cabf734c4243987012a44e86cc013b7e555bd15d45306479a78ea7d4fd7723d3b074860914e24395b264d35e57867f0229912c6ad0238587355b44c155bf7b5e5c872afeb136bbc32b1a950b3122f3a5b71d8c140940b1ee62a5543f3b61719896499721f5466f7b57b119568c960a3796bbf2c8877cf8a762d6a8852619abcfb85ec7c6e79652311490b03f61bb18a23fa100fee70a0fc693163b28ebd6505773324404341e6c79b0562207ec1077cbb64053a4447866efb1894a6a544daf283474c6e0e99323f962b5cf4667640af8351059ab42e0925431d864339258752a3b08ad52f985520a1247af44366f3377d5875589ea9a8e38455a3bb5ffc29083664cda47988f4f0c59622454a7109a6722a77703b0a69a4db2ac154d53a6bd60603e9be794b0b1b0b88da57a64802ac771134b1a4776d07703db8746e610331ec3ad3926891c05b4b738d3564b79b59287174696d119717d3650aab049b401466467ec352102ce597f6e867726543067acf511975828799f920bf139c176fea838144797e79441af218d9c2c0f15a350ef82d588b45b86a2c58464239c121ed2a7650d2841eb21dd6547bd32c0e4d654a3823c4051609ed49220c2651deb6b0e55a00d261caebfa9c17d82d5f23a111c391d06c0441102c2745875d6905ae21412c2c14ae51c5609c5872828ca8d09239b82abd602005cc66ddeab736db3cc0e946d6232177e6c012a8672bd62d0a4253dbb5a908c42341503b76d428a0c38f7e978d4fd2532d075c08d9cb3a440018b323dc3ac28bf8875e412745962e512c0e0e81b4919a813766bb020c831ce0c3eea5a496e57e8d598d3bb34733b6358cda44b1960e8890ce525578d100257ed8a916a02fa2d8b59478966835c0603a8f48715ab2544d0fc487a7eba7a96a6e3918b9c9cac54c841c2899cea0312b40f9bd93eb7d392a4cb889144c224a23244067a9712ed9cf52a15edc35895c7c121822468716704e3617ccd59aeff5120524495d44ae3019adf7d25bd7871b2a98a17ab6c68c789174a28a4863ad69362fc5982aa68b3c0cf35fd2d63d064556e55b6df0d636dc5ca56a928f19c61816349c6339c59febb2b8675807a6a9181a91620a684dba5c4c596a821b66014851966547d60690f7a805bccc4bf9620c188495795c3dad55c8e7529fedc92ee3192a68bb9250420f6ff04f939c82c8442350d40f9d518c10c53ed5c3539e373d0f955d3d451e7873a22af2aa87c08105c044613334e6b585aa864795e0a6af988affb2b2eae653be5c76383b66f5205e1df2b557b66b0f9b7063d3039510ad13a9b5ae6bbae433808db7275271917d75524eb2203202c1f0b4c9afb402f5798214c28667d28727f89b95d3294cf38c129a792b16161e6b9eca60c18ed802c72225d585c7f59059dfd74944f764035c073119395478651f88352c204f89222bfff7c8bedcbb6be1728ef74e54435b40b22276f1199ef34673ebc70047956a543f3d8569f334a5fb22b4c2bc34aa9a4b27a11795a730eb96003ed4662f2f0344da2b88e634672fe48e40ec83f4ae731342e77cdf4a3a +result: pass +ciphertext: 0924e57c036f105436d1eadfbaab67c55fdbd49ddcd120c08685ba7115c250799752ab883e52ef0d0c4d9bcd46bfae3b0b6df089894155bc34fe4b0db0a74fcc95cc5d56b9060070b8e475b96ceaba577832790c84eb87242cf30dbf9b9c2fd61ffc76f4894495b2f2060c10b105f9845287e9b84f10a187446714c968471550d772801214a50d9ae0d6ba97e60dd0e3935fa6e5b0425fcbc1c1c47645b5974f4906f3f67efb70ca30f01b30aeceb45bcb578e08fd006c641c5c23ad9956134de1e4b50941579266b95c092b96698b31eba48fa03eb2d38cd8339e17bc45df2a7bbe159257ecccfd09573190e53193fcc172585ba3ecc444c8bed87f0d9dd25383613e280185b145ae6be22dd90606edc02be32ec3c7c2759a9d2ba907eda6342aa9c4815edebdeeaa79538c440ebf3f7a3610e34aacd303d3338547dde1ace59f6749573847c1743694d29f99ccb1ccc6764e2555f51382973985f02db7aa11614a1202fed63445500a23b1285af9d6fcf633110caf23de2ae3a8310d7b574f49daab50988f00f7e2645bae92392c67e33c3bffd4551d5bd41bdddeda4cd105ebfacd6a56052653414d224becf74c68eefc15b1af21011add1126f949fcc8efc68f8e5359fd27c0662dfabedfa8481a04c4b355f2c1c31b0c9ee202391fdd4e3e206d96ee49ab52112a04203b8ff79a2db64f4034083b3854d7b1506c6fb2afa95c896432b969a62adfa1a017db9c3e7d3b76fb51e73f17c7cc762889ff2fb8b1066b2f05600d52bbebcc8bbb35b91e6eb9d270d80a995e59027af9acf9a1d0f80d028ac1f3bed3b3ccdc6be3a97ef00215ef569c000af549f4e31d5913ff376db11e4e7acf6745abd40fb3961a3758e375013c4b110e989474c91c8ade63f9252c09a8d760361b684424755c47a21d8aeabecec6d2bdc16d08a1ec5397cc1d0ea01c5ffb45b5faaa8043694cc073bf3632558eca1080388371768f41d23fc1a4017d0ce0bf51b4a85e6019c2a0c728e5c3a02e592287de10f43a2b9ae9e975afc4f6af27955b3af3416f4f89f818cfa602e44b8a6e32a57b07a567bc60accc98e00093d17d4b487a30301063118671c62cc5ff595fc8794c7c64386e4be6da9c580f3457630ec9e4d42be26ec0b9265891d2d36b92e3f13f0cc850b04f5079abbce1be7dea57d466dd858c0b6d5e15990a09c1f7d0ecdc46e63f857847b3535d28a6f05359205f45537f93820c7ac5e83f19326b8f727ff744bf2bcfdadf56a14412697ed028586fbaeab5aa16354cda157d5410c617520fc90c612c4076b82692364a32d9e7763d3fb16421f6c177122533afc75f915539a523c8db1ca9a64951183154111978610fdc9740466af73b05cd0dd380f39f94c429d01e0e4ae27ed1495fb9cbb90d0fc78dd28e23280efaf77e6ea6794bbf342f3801148aa241731680738de27ca171c6b2b0ab1099bfade25362f610022853ee07f68868b3a2abc899703d3553a6302d55d5b2f24112fe035bce7acae8fa695ebce771c458fe +shared_secret: 6cba1b31809b333ea40f2f67bad438226d91bd61b08860357a840cbcc8fabfc5 + +# Official test vector 46, seed: "6b3996e8bc6f52879f2b7be012c44ad555707cb7e5fd8abb3457a298336d6fdc9eb7853008ff13201d5969a315c7e493" +entropy: f4b66a7d3b65b896dfe100b2cad24b175a1168cfd2ae11fd704b835f6bcd311a +public_key = b854a0daebc2831a4f20695579b52d3369af228842776a03c4d3284d763d1f663000930377dc86ab14486673a349d8073ff6ba44496c64467d5f531f5203a074ac7ce9090e59f1c308d2c755910af132ab81b50ad6d6c2c6716190696ae6a51433f61185a43cb1d23708d8286d066b61a6b7f9e13f8248c232d8315f40053fba0d7ffbb4ce60410899200a8a5e51bc1d8392cd56f41fbae85f35b110933a931084444036aab790cc09b84b7a235f34763b9ab5c9b53620f627778c661c4c45b36ebb3a4565795656227fdc280b327ee2f96c16e7bbbde89e9090318787b2abba7727a393cdc04dc38205e3c86ed5d5291a1149ee204b24661ab2ca16c1c0a35d3cca0d7c57f4e01985242c3b43869d9914312678710b039be4c2b775cca014b1d936ca8432a4614c4e67b69620fb49cbc787599c4bffdc3a2c786ba876864e7a5be33ab200bc2d087c3e6cc642f4a96771ba212778046b5823085c4068b209c54a5bd4153e4d986ed3512d09d40c37c1a2e57495e0a594f4430fdb1c88c4fb677b007d8804ca114c0991b90b5140761d59325502a1f0476e961a0c2b2ca78a82c8b5581d98da26de717f84c140fed0a00221ba71c34821374ad7c565ec20cefc949e98d1819702a4d38597c1db9239b9167dfc8651498927bb0e170c151e881577f58963593d3ae00870b8bb9fa3b77c468e8bd365dde088f24c2577c5aae2f24aee1552e4482352674d1d96b90880336ed44f6bf007b5eb67c52a10910a9a3fc82ab8d50aee17b667a27b4d014161f1a60c3084a25524693364ac1876cab0c93c01a153b03486e75c3a01728f625f9a7a6a99e78ea9b77b01490ab49c6dad9ca584229a8a890effe47ce0692aafb17a3db2b855a01666514e8a800a47c0cbfb4872c8c8a4d4bc52c8db43d3f7360d568f4f905ada2565a494901f229ed51bad9106bba6dc4fa7ac59a3a5a64d033be1e47c36c2cc9da10a2bd200b681c2caac5cb1eb03f36455241367d30019aac00afe312c5323cbb4575e271c01f09c6eac03ce1f02bcc4186768493f6cf97671e7a02db6047557306bb8ce086382bbab8312460663dc1bfd01b2411b3c49835690627f133935c27308be6b5d09844f477523521c2b1bb1c92b6b3c46c20cf97217683a3f2e46b0151511c7c9c4bf8620d4706ffaec98e524360986386a7b5c20c312c5b6237bd17271bc6c146124d190205f468dfb00bae08318350c1aa5910a07a67bf13a99a52a39b2b04fa56143c0c1290c5c412ce1647ba8242c851c8bea960c9c4879b83037886ae77b10e8126dd3b633a33a662076cea326765d6262619b8d0c8c3217435450070dbbd67404f5255b6557267178ed99cd4257768e728f3069bc29f8484a127d84098ff4325946371384463c4ff489cd8b6eeed0c5e3e92b1b988c41a31df71047cf78ab1ef9adac2a1ba3121672505ec77b0620617598f84d1fc7b00fdc65e7ab72274c86a424746dc74f53142be6423545d02d581933bb92058563279e522ad8507f4326699bf4831970775640887e875e1cf29a09843210a23976941af397a3c6c5605af133ba94126132311224388f340448a1252c5bc0197b4699aab73a4237d40204a46103bd605bc698111ddc3d6bc04804722c35600b001c554180d16628713bdea10cdf +result: pass +ciphertext: 2150f944148dec904a5077dd4d82ed0d72bee1a3dfb6d7674753e2b50cfd6727ae71811da5ed2ba0bb169aa8a4883d286dea2213ae9edab0b24c342348b20ff4c5ef3a56320ef7f2c104a3c5982ba4fc3afb68575223ec0579339be4ac6a2139e8f8838b75a0f8e90932eeef2633c8b14f4661a7bad5414513075cb8053afe34a2c1379f3a750f27d7c46bee74524245cb41a221c48c68dbee3e78dc5f9f3c551fd830d6a40d4d4fe75ec31d97b97ffc32e032a75e0466562b54fce7d2d370c65fafef8b66e9a4fb527c7b22213b22c137650137a64c53f910a2386cef26e29279c16652ccc0a81da0ceaf494f32391c915d79a94a8ab7e4fc3a4eebce4c5a0b4ed899f24881263dcd74e3b895d353faae4cf47a1c74299ad8d435cb2c927841a86e160e88815805fde2d3c9f487754b1fb8b9047057b5bcbae25754f90c8a0d1c7b8e9e8ac03936197136fd189f594b709d52112fe9ea335dc96ab2ec87c97d703994492da1c1cbd20994c1762bad07e5dec98c311156687128c76d2ff5a5c7bb65bae29343059f2c10df3e9239392769ad0f575bad34bd7213f897d3af45bd299e8d6b75753f966317cb5dd821b5a8d5bfca74871d210b2c184107fe9109503b71644c8af5bf09097f3a6f0b9f9e26df7615d503634533cf4111a5487f205f45610c777e2fe6bf75e2100c209ec650540e734d710f0a0a378905f59e8b6c19d4847bd2b02c4366958972a963d4afbbb18e55adc1fff12d07beaeb27598cfb98833d02870b902b0d9c587523792b443c453059537d0d0975b95b8ab9d94f41b6bc0e344eac841eb7656d4c610c80a8e0d0b659d1be91279ea59333ef5eeb4b42fb0a4fded5d313bc754605ab5d8740716bc1d5c9e18a998d04fc4031fe5225ab6046678777a740a998118fd7b09504695401bfd27fe44140484e8bba45e12bb2c09a3cdfa578da8c7e46bd7817ffe1bef08a5e9005950c25e2a6d467eaaaa44be9abfce7e8bdb55356a509c4df5f6aaa89dea332ba7c353a6035a4e4ad6b213366b49b4db22dc73f93a336f7dae65f20a662bd25939811d0df9851d21a2b7fc8fdfae07dfc136a7ed64c1a7b88ea62ce2093025acd1c0eda5352a15c5a95f197a611768bf0d59b72c77cdb03420ee070aec8fbed53cf2319f04b2e72d742c930cdd7b1e9864474c60757fe7cfde9c1d2760ba39f1f8ac5a2dd8edb312fa7b34e22c62c0a66c5d64cbc6c56fa0461a4bbc9105afc9c3be7bf62379a392e1ea49d62a2f91f19fe1aa1168138dd32d42be5b2c7214861ba4873726cfdaa9628f827cad22a2dbf34970fe8f4238b1c9d9af380f378d0273df041cad44f056ed08637e4a178120cf841cc8e8ed0e797587d11019b4b6756fc47803d0480bc325cf9278f78c3e00e534533c742328ac2eb2176cdfb782763ed50e510b92d56a14afa41e00c29e3e18dd037e2d6efd6e1d64e9b5760bf22453d850f9b3e2ed63fc9be5c45573d79baf8150976243bec8aaaa217aa02d707eebefc9b3710f56ab84ce72 +shared_secret: 8087b456d37e6aff785a0ca104cb03ef71fa2d6652c52dcd86220cacf878afeb + +# Official test vector 47, seed: "730b65ece22de27d573ce3aea7cb021c415df210d228808d91d4f380070ffcb0778b683c71d4853deb569c822765f2a3" +entropy: 1d7b03d3c5eefb8ae5799dc569aa668f1bcb8c86607b089d3530cf61d6380147 +public_key = add1cb33481d37e546d75b5398198a82126a7d306a26c7124518075ee6701d1ca69d16a867115582f22a7c382bab3acb5de50c34c13a5378b2b1415b5538987a77681597abab9a0b5bfc7bbd19550064489be9b897a54fd12c7229f0af5313429fc85f1936b5a325aea955021a969ae289657ba4ce7393477afab3ec0b6e46bb7a8570b2dd4372d51537ceb3023e477a36bc2b784444d0f71c3165395ae71f98921ed160be83e0572487691a43128352b3d82b223c67b33d8277b05c6c071418799583e2b87c9c2a81bb2a7658d67e637b99d5770e04b592bd5961f0c726d0058b31086ab1d23f4d200bbe6b418fd53a0131aaa5fc0380f70f1c90cd1dd5bfb3839cff013375f49919214e756856042bb10e1252a0108c1dc39a1f69bbc230a4e9c93a87a87899faaa210a781c91bdfec9a59080ae642aadfbe20f9ec600a2b297c3394a751354b6e8ac65ea45d3b66c57328249034738ea2541476ab0f2717940930c8551314851be98351d96acf6232e1960b97d930e3f424efdf706c2da2f652796caf344b86ab388f412853a5643a7932409b476d3c81c2a301e968dae28742d18232efa09b81177dc9ab33d7b2ed5e711c157bbb123506fe35c5132bd04ea87e173a7d8ab5b2e35a7eeb58ab3f549dd30228dc5197f778359b4b9b9b989b697839fbc013426016110bbe721c1c89c1d463248887491f0814c4bfcbfe7445144b88cb4ec535bb85a3016891b009dd4ea020e3799d56a710ff097b79384556c5d7d717436bc9626cc15ea509fed2bbb74c2636e8cb4e0435283c7159d8c9eb6e11e5bf977a80994278161671346b368372ab5612c85ad48db8a82067acaaa39bc0b1f49083e71e8727adca1f3c7cfacf907a71c3c73e6737bc51795c9761b5c36c87b46141400dd43874c4500606c616d90bd9d588905fab9b538c23a07b9fba6c0699259b6b81aca207138884886205955250e3e7b5d4d549a8b73c0ff41b88c305b7efa4178695abaecb97ba46dafe090a81c038ff373b13582665665b2058835b629f2925ed99082858152433bc3bbe90937c763d835638c3225e0c3485f9555d3e1556ffccb1b059dff8667ac445b474a17f360a2dbd895048b29fcc003f3c46768668b88bc0053bc3821a95d5d49cf1510894f1739c91174310b0ab2cb7836b41bc44aad9681c0067192d4a46c2fd60e2323b6fcdaa15a6581b4571b4ccc09fae5b24d8b11f67aa629e79652388ce04b9ceeb5029e80341ab6abbfe38b2584b55108a21ac64d61636ddb2094cba91c2b606cf3d2ba09d4863ee900decc2d594a042b5a63c822631533a14b6cccaa0775ea3210e3ebb22137a749b22c1eb129c872578feca153b312efe6238583793852485fc53952e4a513e64b8ac7b60241944d704246551d3372ab9e60bd8411729cab31eb908c5348c34db74f3ca60384e93c91479a52b321f8544dc13620f26c9fd324784a294197d9935551ccfbcb93f9f2ba8fda993a3598a5d37c36469024129c8f3a081c9b3a680a02ec450b0a805da455c5f696bf46681ba9f80f6b469af9b1c09fb2bdf618242f449cd017308dd80a9fa7a3a6aa25becb6f07b241f0f72b345664751b83b46a276ec74aa2569b79de21a5198e7f0c3bc2aa84e7f5c79f4cdea5b473ba2d344bf994fd32 +result: pass +ciphertext: d378efc5ef259dcf2434427ba3f28dcf6d906151fbcb67b9c8e4c3bb098bf2820b9670676b6931202f38370b6e36286ac1ec05f4381867232b34b4078cf6e55d41ad44431be7c35d169436cbd71b97f160017a05d9c642e87e6b4919abf40e48747acfcc10d21ef2c309b1be596b146a6e4e848548f2c8c97c9293eb03d92349d62da60ab60f890a7ff20ea7ee1724ac64ca927413677babcce28371604e79a0a2fa134e51c19d6ca02d89682233c85618874af6487685f21de8e85dc99603f5b4c49139f9a5621380c65411aa4254d5ae205d5b0aad42d8883afa7221209abd96a91197381dd9d513bec2cb06f33760756a0aed0c169c195be9b33609b0e40c3f1400f7db12d4a760b45bfd275796e674a9bf2c8752b98fd9f9aa98f08a62f20296376578938ce94d3bdfd8161211225a7ca25b4282ad6abcc8c14e40d4d3d4cbfbdffa435258f85a29e7add20a7c1ca410517207157199d02ffd31118f13d910be88dacb9e38e2eb3762a4b35f963a17db121037c1972580cf0e5634d322ffa43559c20b494ab94941a51d0673929e2ac1c8c8961120eddd8ea1092c33c756898ffe92b02dd7491cedfdda440326e2f818a67599e3a2e146ee5d151934fdba1cdc36eb42c863e841dc214584ce178cc9876b9411d6cdfa8c2d1335dafe8f9bfc435a7ec06c9ee9543b8f0d8cfca44ca0e21511aa2c592d107545e6c0a10dfd37a2e9d0059861f563b26e544fc96049f02cb9bca10a3dd39f440f0e36bd0a2b6f029aee917c3c8abf70a893e56999c9ed0281108f1d0068cb37abd7a7f09f3ee975743db549d824847ae0adb07f0882e02d0a45115ee6191ac32447a92f83d4aaabbe0dc55de5b260079645703603d8704c8dab678bd468463b82869802e999557b0f0164e2e790126e3f1e42efd67700365698e6fdc87b4d42603571df83cca98284a388650f4dbebb622aa190b51c827ea8f14ca0692dd0dce0487b6e186dcfa3daa04a17b07e0bf8ca15ba85152e4ec0cce556bbae3745c9c1a247d0fa6c10f9c8a6843a9f91b5bae12266e1e96d4ba7c2cdabb3093aa9bf2b9883eaa4ac1861f03ad4c9141ac88aded147390197fb82f764c789ed7bd893f680834d76908758c8fb51c508603303290500c6dbbe16c86e93efed13f27e1e0f90d2aedf9f40be308e0c988cf59cbf8d7de1c8bc5aa01afddd8c58afdeca6394e9d03655c7b4fefd13c75846dcc1304ca80a4a5dd985e24e7387d3f5968312624b4a1f1b45e1353cd764e552cd16713c36e0bd1aff6369bedf509b8835c767c53e7ffab9770eb6e0a8acd9208eff61410ba64124b62868a80096eaf3d5b453fa4aac6ef1dcf1924a04e444dfb88fb57742f2c7cf923cdcffaa4512e648d2db593c160219075bd4431943203f6e54833b425df5dd442e589c7602ee877271b5842b334b98e7d171e6fe244434c451604da7885628d7367eb94bed7bab93a261740127d57d9d6acf40172a75a32432de3037bf640654418f9d3e3e9f05d17b858df6a1d8a22e +shared_secret: 6799d393f4000857868049c19a102e5c04c55a6bfe3a41abeb4fb6d5228cda97 + +# Official test vector 48, seed: "5522a5a891a9a9b5514f4556afd8df40b9cec63a01492f0cb8a1db073a285a963e4a9ff2376c88662f7d8d241f8acf17" +entropy: 554f3385b382f4a46314de37ee3885addfc5332bd4038785094e0a832e9e8c2c +public_key = a7a8102df0c61577a7cd4b9a04b17ac55708d8c6746289529337b9e267737d5345f4e768e0d6656cf23593a84eb0ec290c8ba078eb9f8d1cc8ea18280981cad0f46dd29c474fdc57cb5bc93e318537ca343bd03ea6a7a466b021b3db77021a8e20b94907ea294f47baad599d51d74219e38f883b36cb323a317520997988342a7452c3aff4522ebee30211444fe78854f9f853cd189be04cc1c800607cb4acccb650ae546323e7993bf2a203487becf8328a2979dfc5c3bdfc1b47533a9a629e5fba5a2234bce8eb37d686a75bc33eeb945d80d92c218548eff794ad6c0d825b57f6f12f0ef6b8201bc0d1fb0354f051ec1a217a9a0f0c77b1d6f76c1f25b01ff356fa390079d3800f1468d745a0dc852ac140307e700f97d557eb42164844b0b6d5a37bf1bc41db5aba156359e9b4ad5649189409be58b8ad5ac89e348099ab9ffe81c71d54853eba7b42167d478693c39837f76182e0c894e0f5ccf19643fbdbc5278b500d1b07f1e62ee797930c0cc4a41832ad093b28460c8700678bda847edc6bafa64ca182016f75366af8c330d201c7ac4327b2326d8b57997734bf909b0fa1c619155aab7bc5f4026079926d04619186c4334f48bdfaeca777e91d0b0b7fc4b180e5e19f0162c5d3146b5ac5ac820781209c455d195f17d541d6916f56838f7be838ac0293cdb63f28529df3fc7d54475062b90d3034c2583b00c942102f82b9553c1120891b77d61b8c86ba21b4a78f772c4049869b56442d33c642a5c0ad167747807d5f6105ccc21af8e06c85031a2a73ada9d59453017f131b55c1e0176ee29b021b7933606c5425078b7b49cfa99f24b21818e78a0e856747e4a7888a3d1313624af81c75eca6c3c43238bb078b94c2a9c57f0c4c66ec5b59ab93b73a1000630aaa28a79415320bcc8a96195934c9f14d5dc41cb70c1104a63f5fa29953495abf71b9359563f16c7bd6bc319ed7898fd00cb580902f2196b45311962cc17a9a9f002a916d9bbc1a452bd3e6a48ca05e50ab35bd828cfe66b483e96ca1d917001b46374c41c2d079fdd8257bc339a6e13a7fa2c0948056f6553803d10fc9f1c87725230ba3713903193f200a9851a78b61534b5a949d140c9b457ec66769c6544d79f0850c4cc8e4b78eae0b260dfc9cf0848e4e09cf52047d62bb8e7e6231f4ba49859b1dedbca0d8832bd23789c6fbc40d61485e5a951de68639e07e624a72395b9e25b603acb330a37b998b7a9ab3f973003c15624c6abce84050fc0166924a397708c12308c578105c1457de7cb41dd609c0c3333be5b9c3b93e2776aa0ab3a4054c98789a4bf419bcb6eb914c2179bae02b462b1126a3a28840b9e7170618c20e8527993623cd0c776e54f8b4eb237b4f8c075fa2175f11be86e2bdf3b9b9dff89b7534134620116e0ac025f6707b00b5c743aae144241b935ba61827909b591b44cb6f36107ef81a214c6aa5b9b3e1f441c774cb7102310c4031e0e4a213a8c1f1593906a0424d657cda7c10c1354b0d5a83d2cb9d0407073fa77abe480854c953eedc6cb06c75695665b92873552cc053a9bba0c99aaf970753299db3528276b56feb8a5bbf373d13c20c2f22ae07e9542206b296f3b101d07a3bd1517d9eb8db21e1f18e6da63acfce1e0dc597cef3abfc7d0aea99da +result: pass +ciphertext: 35efdcdb40a548a0269d389f25474dd39115feb706f9defbd935fd224b3564b3e5b327d7e5ae47ce9ce21f968ce4b20fa2958ac3abc36f9b301e644b327b2d5b74f26a929cb3f2a070d7a36932c1ab0084d7f8e9dcfb6632a601830a1bdb6d27811d35158315863f19a6b70cdbaa180e4e148ebe276a6bc52137c85334f743e84622263144c67e7efdbb1c6578b17025d9a144c2784eb9d9cbd4052c23d3de56d4c50624d969953d944658093c03a933c8f39f09487b1392ed0b7ffeaa8edc5dfd73349c640a75f132259b3a266513ceae23b6a9641d8a8b1d03d5f44f3ecf2111b43b8ca9b112b8d82ea0d7a4659f36c81516cbcf1f7695bf728ebe83298f8b5db14a2e8e7be0628b4f8f5d7253d18efa4bdd5725f5ef10876a9f3890b99f6beac54e9c881693aee29ee7618b04ca59dc31c7531d45156d109c1f28d13eb37aeaa8edc664ef4c7cbceeb95fbf2fe6ac4f5b3a81c185dfcec60ba16f0d6410f89732d2f7bd6a8b64d32fbbe4869caf86323a13e840470479d932fab248c1ec3d09733342c41d454819a335c3e41f87b56d92e8f2a6b598240ebe595604bdd4e18781e584523977e8f9ec732c525f8bbaab3082a97b0ba12b1fdd76851d732cb6b945e24f313861000dc4ce604217df1bc5f9947aecdb305d397f256b30607c4d4557e2d248715a47854998399fd0451cc61a138a24f238514052e26051385d4656811f83214dbf5da500467b16f9f3ed940446241166d0cc6755b518e16403da01681644dd5e58ad821a7590a3e65087a5f583c81b9cc6d59089c1710dc6ca282cbec114337ccf8c63a04e340ee93217b9d988370d6aab73b36f3ff9f4de4996ae9983c1851f06d18008cdc79dc82df1f29ae5c803a1f3f2dad2661d06060daba722f69970f18d081bd58342b329bfd3590347a022b9066bb95e5549a89f4ce681fc309751329897ef1b7a77c111191796574944755e5be70c4cc86e7a404a2844cd21983935577f583bc5e86902bbeb6fbdb6c90ff46a59136afaf006b81b0f8d8e5dd6c7dd9ba157d26ea5ffcf04693f7a338f923511cfb273a2f228323f195a42126ba6d2869aff9e6ad962c34853c67b5fed2abbc325fb5026cf9cb3617fdd147af37c88a768f5dadb5a03b7afe56ff4277d40f67edbf1ba78818cfb4416e5d8b9da09ee9ca4a3864577446b7877c833b8655f12554e62a1bdef2d8574fca989fa17df506c29254cef3712cb4576165fdb9437751cbca17b18e197931a9d2f060b7484784e02691276696289ee89911f805d0e658a75f5e13869c43dcbcdb2476d3aec985ebb8a7e367fdcb57acec9449bc856fa13aabd261743f88f5a446aa5cee3436aebacc7b386af14d4c0de976e5ff4311318d580a7ce5596b21d3e2b4d1f02397c797cd018ca12a8b8fa6dd90a4997846a3e02aa1c8977b992b59197e29db4c409013ad9c9c8f3db22085dbf8015d26fb456c9e1a453994421416858b180a4deb5f06d6052feceb72680b625d644854e72cb7465c3cb5fc9f6d67e +shared_secret: dbbe6f3b6f5a35789697792e209428ba1f53d1b98ac2c0d1893cfee641e40375 + +# Official test vector 49, seed: "1853e72329353b3f89ae6a1b1ef700da8ed3c10d19f9e61ee9252e28ebb0e15802ee43083a12a0b7527088832605e3ab" +entropy: 38bf0033b779edf5367d9ebc01c988af90904c560970815837380650e4749eea +public_key = e078c4a3954f40a2697092bbe4460f27c4ce6886628382606f395b55d1a29939a2f754a0b82968d3c865f30066c5e21e3e2839416570f5b54f24d347e2e10169571a3935307a4918b5d68ddfea58a90382e70012911729238a4919a7531242228995215fcc96ce8c1970faa902f79c7a7207a93613de0066c384786f5913b24040e6b4b48b6b679e5538f953540c25c18402be1c58762fe8bcee6a1e58d93b21165f95895afefba1f735b11fb7bbfcb40d3d54ba24ca7ef507973aab9017b66a3e271f980462752137d9ab0d1937226129bf48f68b700021b2fabe81573e49fc17819bbe46858b5c58b4ca7c83a57398a667b09c681b990b648e96ce79b72104b13e97611ee8528c9f64c376eb04925ba46d3c8ab859304ce17b9435309726045de17d8a7cae32aa9c80e1aa4058cff89010dfe22daf0a002a905f945accd2f9225739aff1863006b46f9ecba5243bc48ed1184bb9a57ae26c8cda147cacbb4a031112279dbe727fa6c467ead943269ab1e3c9657c19ba0b648c9d4a48c6163a0a79954c0c7ec63529cb8a65c851c39840bb1a7c584104016f16b43da179189343c3276bfeb5839d6622e684b421526d69517ad57b67494bca6db58cf6c95266170ddd9455a6867de052adc8909790659fa0dc0a1d011487b16a1e08bc82b22aa9444f123632ec889719e754993ac8319a72ee83a988a2c77d28acd4bb5ebc486c33b0af1d67a84a349480fbb2b0b252e8749401d8488df52356a75ba2883090dcb757451c9956888b43806431bf9ed956e34806bafc15fcb1cf2b45729eea12a6580c6d1c366a76187fc20fae7657f560973838abaa510fad13c59c5baf4773188859809d1bcdba937845759c9af40dd2f14bd7dc48028a77ff4165f2204fb3b0b9f585061616ca4fc405a0c8533c344334e511053a548ee86998e9094863b8bdc02aaf6bbc916481ac9337acbac10d90794ec239268aa376157b1955379d30c2cb4927a8077cba969ac398bc8521450efcc7e1cc617e69a66fd16b771a2497d14e35a61919dc129844379a314821c333a2f4443651a4cff234a3dcabad32610f5b54d138065d8a5a81fc5068c5060af125265cbc42c580f47b9fbda72a893329999958b026c5661ba116346ccd86633e0a603b48c8acab78662162a9f11c4349c5235a5ac46546b16b25e355b4408456f7339122b67bb48334836214e431955e979244c8c7864ba189eb24c818c15417cac84682f719c9bdd8479be5c643d937605383c6a9514118498d5b4e81d5b74a063fb53cc19a20a9cfa26e479339b988c40918c192435db1a3b2a7c6046376b97aca7a9bbb30335a0e8fd237f8833e89e41a1c67b8aa9b0d539486b1855b9fbb53b5103ab2d19606165acaa588b9d14a4e6a7823800d8a9334ff7456e75aabb81408b791c9c6bc3b5829c1ab241e8d310bb7b15a5b24123a2c691ef1b5dd80640a7b94892aa1ad7300797a3de52a66c794426230640b303e71f0b93654708bd81f706b0f71757c08fcc591525bb6c9a57777bf1bda0d81b4922a56586d21b04daa2684e14ee8c0cd542824205b2bac3c1232f2bd37109d621a25cf570573465a706583da17c39ff3ad13826b6d5988158a1602a361d7a2f86a9219450ff713e184c0f6ea4146b79b03e5ee3454a79f +result: pass +ciphertext: bdc7562e2142743d9af81c76aa1fc1d52b6b46473fb7f97443903b44fa9120735320a1180c7b1631ec6faa37b011417b71bd14cc78f3af729e869d4e161d9d9d0275bc653a731f04bd7e9f2dbfedf31effbe8d24e2822fd7b534ab043e72002aeb28a1efebe22f078ec853f693fbd645d89050401eca963a0212fded375b9b66c1bc138fb13e6585b9574880da1c86cd34950d4d3122cbb2258f5d9a08ad788b67ffb535e6c6f49992f63f6f459bad7bc87b00227f3e8db542aabc9f5c8051c02eaf843c47b5490aeb92b9f4f50252f4d90395603c24a600e95b9406f7f66053a468c4d46d7c5b4347d5f13068a3253ce57ddb159ff3fab3806737d9e30a74ecca1408154211a2ad7fa5c3140ece83fbd56326aa4e7399633d030afa5a6720259a31e58e92ba5c55855a693b3e2bec092966be1adb99b5da4d6a345b3d4c55233a25b06422f3cfd76a416a1abd732ff279c094a0b3d598641b05cb8f35d7996175c5b15d6d478fd17f738b4ed2861334e9c125acb154b6540a01e7ee85c1ecdc4b354e8ae5c68603667b52344ccb24d5b2f2cd68937eca2fe5b398d072905e51fade88a44086779105277bd169ba53d1c4ab1d2502cd6ff3ea9ad8dbd9d8f8f4bd05e5ede3c22ba08366d30fe1b9bea9587b05e1913ccbe6d94fe17a0107adf69ced338256835e707cc312da14b594dd3e4f325e18921938062d9e97049b93a0115149b4aeeebc45605edb1e51bdd644594f3ce7293200787d972e2419a5cb8496bfd8afede88d188c2396af33953f335301c58421250da4a9ca1b247a3bd81ff25594dbd262b7efd31b53371d1ab4d267fe859c11e0915ed02649a319fedc1340e110ba52cc14ea72c1090145093a4c3760e023f499155d96a3215cb62b1be9e0aad7b8f75f7b94c82937327d37c3eed4e3ded7420e9f680e03c2e3b123cb9f14c98c758632f2abef5cdc7b16428c7e024208bcfc9e46bd4439eb4fc6d46cdfcaa7a9f3ab4ccfa72470981055277c9e9cf3ccc3739a33eb8f3f5e1cb0eacac8ca19b0541a6f449be5522d9b0d747677c45f60cdc98a156932f04d5247e90fc87f299a1efb12faf1ae375637a8d62bcefae6a563fc7d54a623c4d50a3d42ac70c2b1d24f3166c01b2a87d7d83be81e83087adc7c79d9aa80c85c90b552986d72f3ff2027b4bd3f716450c082e66a928d26930dc7e1bf504d88ebfd923a3f256b0dd512d6539939766ff588473ba85916177b6ccb9fb16de2c984b17b85a9a06b4691af67f8ae2dfcae468ae02c34bcade4e9ac9722bb260104a9d6cb488f599dddc9904351a9dfaef0a90f6b4adc94dbef5ca73ac1ff89c23f3706665ffc3af4a008e564ec34e3b793091129b794c1a6faba3b224dab1bcd2bb8a51eaf4b7d237fc8f9d6b9d713fd5c5d9551e0f9925e72b1606128a018d1535c9690bb8be25694b22ded91509ff965aba2b220c2506495b76a456bc881b7183e65f70c847e5fff569b5bd9b1706d64731a6a5ac669bc2adcf4d21e8abc76146805d574812069 +shared_secret: 494550faf270431de90c96d2ddcb7c19249d5e85305b3b43626386c30b7aba5f + +# Official test vector 50, seed: "027c3d5847ed4470931141104f25b19ae76117cbb64b224ee424ffb782e9a0e988839e0bded0df666fe8e5fcbb5dbc09" +entropy: 048ea516d0ebbd9f709b47eaac66f344c571cf50f0d01c9466aa061a50b66a24 +public_key = a4163313f3cf10a65afbe14a738352fd20b1931827758905dc32c20cf8adf6c081009ca396f270b23a5f26117862a13cb00b65f5a2850e8252053255b8232626b5bdcfe44e95c0b7b5b09802165b5310122a434c5456136cb3a77c3c7c23fc61271550cf15122fea612600aa722c8646a6760ee18ad6028850fa36b82156c09429fa188db2ec3dc229a78f92112b4357d3681aeb19779f1785195b65469c6d3af60ff063562817c4587225a10c8e9fd56c4353711f287469b87cb533b99df46bfbca625c4601aa86459b27778c7200f6a12ac8e8bc078231a37c87400a7429c476ddf7516fa4b7e27841abacceb3c24e92158eb168cd3dfc48ade061b2c02c33b2a33b59ac45a77a439371f3683aeb6a18b107bc34e7785e4146b3f668d9565cb32a23bea6af6daaae79b39a8f725e61f1355c6965d0ba0cf8da22ace189cfd0652213501b3b5f791061ca929e2fd057f357bfaa4047c28577d2105be1616044a6383ff9a087f4754926338e486cc3e76511c7946a02893d058f7100c98bf0af514a47a7630e6e2564b5459d3b52bac6884fc32c7961a34df387ab85c07965786d6bb731af75742147304a5cac936797ba658fdb88c1939c78565914ddb0334fa291fa3182e31a36d6c159ac637a0d3a37098569a009911f54b13efc46e403ba4bf0bf59499cac06c848754903a7b8a1b7549a13b2de5a2cb106a21a3a58d1d71ba30700d74243b1030258294ee022037ff9c7e752cf0fc60f582b6310d4637309ccaa3940e6617b72c0b0217924febb6f971a56a979212a452796a217909547598330557a9309161fbf7c59004d7b3a88a2c3066534153d99ac87dc5918401b860c1b4d5e763440389290d2b656c97cb9784b201a90553acceaca0f22b17852f391ded7094225053f88b6578678f178067ac944f1fb6c2e99abd946953a49b059babeae527408f520844323d9496e51e88f0899857a07b8bf8586ac7a8d13579ca934161d10c08e3b400f084cbe9c6f21e29523c41bac2187b7470f752b55addc6250c08338bac7fd0879620023899041576191b502c736115e65977de34c740c75a5c5f54ae4fa07a2943a7f5a3b8018461445c3ce938579680b68fab41ea2bb26e40eeb13ac84fc3a38b78dd66186558426cf59a1dd4958427bbcbbc13037c577b0e0551238a67f596cd0a2627965216bf733fe88718d64725ffa4b6e73077a37a4585159c887b2a2f5077d1b457c06102cdab7a0e5752263cacf7914ddf836b0e1a95ac4b941388bf7c5bd62f616726100f448001e1c6e4100bbb922b265942bcf37966a5b61ba4957dd02c484413084985d5b22b37964b5f66c11b27c25af757f08cb8ba3b3115a6839483454239bb9d0a1b6b1bcbba5060c3ae47fd0476107919281a508e0606b4ab51ae12b0866c21ca994817b87244ae55222c0807b02581856936ec0ca25e08c7e604e1f1379914702a9e209d7796ca44879a363cce71a0d9850c8ae8596e9b7157a71052602cdbf1c2ba113341fb8b612f114a82c6bb106c703603eddf80ed634be616884b9f2bb271240ab48126a40cf7c0958e0c5bb4f73185cb41dca542888720f8f930a66a66bb9c79acda38a22249f5240a5db0067a23151a6f02abac2477574d9b5d49ed6c25fc46576ca327d614492eebb +result: pass +ciphertext: 258852ed700664326e1767409c86b549ab45251e00d64a1d830c9342e8e367f1dc43797f2e1c8cd4cf98a1f46566d40bd608996ee5199dce1b4da5ae6a8f0ac2cb4f39fa20b9d9c71335de5f0d3e7ad1057341c4b10ae98c41ac4bb60484acdfe44f7125de5ee18171b612ab9800c796e0a2f3be97b30bef0bbceeab109c46378ebefffe8ab78ec87542cb73bd3377e3b7cb4e08910e1b2c5371aaf53665679dcd90a9b7e817f59754e5185bcc76a68f476352d1ab3696ab8b191d3ed109680544484ad81d0151b976d498fee7187069c67b8d0e3f2dda521dcab2190fff6c0369232449447598c4a68a72883ba5546906f977f78d449234a0f9b5de71330978bec425839b528ed99468aafef2189aa5172a98a7bd8fd8eac32772fd7c0bba3dc6ae42d1653f12145fec4689248abba2b04e3bf9cad1d4953201cecfbe00287b3c5768136d2d9c5c18d72890998b487ae95ff9242cee73abe3005a8ea2822f3f81468eefa9954727a90b8551d9ab482f30583ef65409af625f14ca560fb3d88514b605a5ef6239f9db665ac18a2c5591fc659fa7769434f053ef3828184a0aab41fa58bfc4c58d3edc8a84b44a86eea9e6b0ff881a783c0e941ebde941cd6b960f91dac309fad4e10b063b0f1f3349ea6869c60593d211a54518ac61314ca497942533f75ba98486e0607a4c75c9ffe6a6c29bc7c6d5ce59de70a30214ef7e66c7000cf2830ddbf3fb7867d37bdf0ddd5e8233d441dbabff03e0f66e4465782cfdb527c209e559873c98db25b2d72280ced28cf2a1c951bc98d197b81f810351130a258323b38b216fe27866063809ae96bd3dcdb01890b732776556251d173770c9a3d98e3873bec11091033cb54d27d4dc585276847d37199754ab6fffb61fbac4a5f78d05f2a7873ba3dad729685686c67a6dc51d4e9a967ae8abfe406b864970b841e943da33dd8c284f5d159d7a6120fbb0e272807af4ba7b73e7aa722e81dddbb22ba1f7fc541be455e89511918aea71368c21cdc2c0b1e2989067fde5835c92766bb6fef7908a14186c7c68ae54f4e3e19bafe8c8f56b954f77c625fb1b98bc15b515c8411312bb1ad92274c9de168bd949361df97442bba52a02df06594506222654f849d08042181557caefd6e5a360e18f37ba03386c004df2c64847feed5839eb4ea417c4e0e75b5cc3db09b069f9416662b722b8bc9a0dfff96610438bd949c7b625629cf9249da3b7ee5b550812a0e7c7b6df121d59d4289c90f659a5624122d2b47bbfa6d1cfe099a7676807b1d61db21761f06bd21fef8af069e6478b9e4db55f324747863e24f52697ca20ed6870a247ad6cfa4067ae5d6232bbf1e4127bfd0f6fa96de1f9512f8c39f76500dbfefcf318ef818bf4edc9bd677f0edea6274a3a1389bdc7bda53e5fb34fc7ef0d76f367bd1f9811b276602d0d5035de19575e8b92161907989b69e90c12bce13aee5964b33cb04587026b9c2d52e9b43598e7c05a54893e7fa3d5fe97bc5bc01eb4fb267cd4b3b6d299c55c +shared_secret: eec9e658edcad5a8a705644ccd35aa3d785cc258666ff749bdbbafae6700f1b9 + +# Official test vector 51, seed: "450751d4401737459c6d93e6c5f2fbcc4a3af7cd7250ccf404bbb817a67bab7b4c9d0ef4570bfe25cf919da331c31d88" +entropy: 686c921c9db1263e78ae753b1c9c2e7936b8229dca48c0942c56c6bca4f10917 +public_key = 25b2ce04e31b6f647abde39d7b1cb988c37f2ab219c67839064481c2539f7c947a5187a850f61ba075a002e4621ebc290855c9e75818e3a99da9e50522976372ea0e6e201f8cf3c49e4a86c503c38ab764b2f45bfd1718f6b5c0d2e66181045be2a2a8a1e10becb8a6bae9569f42654187a9d9b24c8214abf933063526804d0998b89c884b1055a56cae82557455f3a47c677e8e262fe9569aca0c5b1c0cbbf768302099a4cf3960f9d432a0865031e2b65ddaa43e00aae05aa39152256061021669b8f2ba6bb31045e7e539830095216a846aa39d5b16bf69e152aa227c61287137e2b29d3931c6211510ea33325b2ecd20a1bbab9d30a7ad9bf83e3058520606641dd23b092831d29022542513070c8626a42386c8177c7bc1ffe5754ef5b3a2c41f91f1463b7b068816b058da287b4ac2ad82191d061630337d296a08a02030174a219c143224b4b1aa1324feb23e7d52ccdc757929342ebcc02c9a080aaff12763894928a16c1f7830d7dcb2ebd77837d97011001d83f3512f9578efac3ce1c0a17da13b375c44ac8c32e616aef48339c19a4f379c216feb9672c20d78262fa99887f92324bf667502517cd42b340b51ac0d0c71c2ca5d357554eed04c1206baee66707b10bf52a424fc7567ca023b605a0e160aba5be5aff753983b19938205188fb87a867b6cea58112a3323c2ec23a92a1c16b48f8cc7bc55c5b18a33b67580cd9383275e7b53d053aed3f41f1a74859f3536a3c07832d4b64d6a9bd591c4a1901c46490efd73c9aaec1466528bfda0af55fb7a28f4af2c332de8024f87567e1ef87dbf3061ad29490c658b8367b0b911ba3c3c91e48189c8bb1cf3a229146cb537958bc1b427add62348ba0b54718753acb2ec3a0783c58c8b6b1023580a3417cc08745feb9b3f19397fda09002cb019be30a8d3781c936847d5c7c5a8e9a7b5d8c18bc5877ed4a8d787a7b11a0464440da596a4250308398aa9cd482e0f685703058987b63e21c530b3b5367654bc30b86fe6f0645e328714fbcc0f666bb8eb28d7279339f622cb89b813c72dcf5944ecf68e4ce422744abe30261ed3e127118cbdc1d224e538b48d441359d673470978bd4b5913b6cf557760389b3f6991344d4b622c7a332239a50626ce553a6e0677bdeea96a3efa72931b6921a23be5cbba9f51166be80a542b5f341866f78225d50a608e95bdbaf02a599b7a2441537f5124b0d5150a19a7de9ac2de2460b80884512c970e7c700aa259982bbda59773c415844b272dc45807f9d641c9443717c61bf9fa9201568868655e0f791910b5077cb77a93e40b85211f9953014d953fd3f8780189840af9ae60da1fc6c48d19d88dfc689a8421c28f569bfc5184ed6a66a50202bcb51425202b6428187f0c7a92d2ad1e7a35d3bc7f7d7664cfe9765d217f766a3c068149964b7c9bdb328a7821a9646ad53a8bded2912c3c714ec81190c966c703a5b9b6bc74c89e2e0635d614624c5371efc4099c00576d05aa5552b862455fd14641e1e80f4b468cfca6cc37e032079617c6cc3c7cc68bc8fbb3329c9e28c1caa811cd6b8bcde9ab6ddfcc98f9534f3d7aaff2a508b3237070c39e22b43a424b2af4ea59c9920d24d6cda3885cad8cbc7a2e3b82554fefde1a383c558139f9e1808c824829ab0e +result: pass +ciphertext: 82948c08334a2c9684b91b4a759a0091481dc5a3c3b19a22688040bdddd36248e8b41a96790d155324a2bd4bcb600cdc60f64868ef7bbdcab3fd549f0fe04cdc8197314e6d688ad7ca05a492f95ed47bc2c79b2e547b77b2f403876c0063b8c6e0f7a613e2168a8b51585396fdcf250d7846c89ee8d4bafb1a81b1d797f10be40042339e57576f3be7f2540d31878f6c4155cdcefc60730eac27a83ba6945c38f1871ee0bdf60ce96f0b2098d1a0ce84881c4850c3dcdd81f14d87fb8e5723eec26966729b90445fb728b52d63c7378b976f781471b7ee614cc3dda55e4dfbf44dec1c772f559aff3baab16c7e333c6a573517ddfdc3f2741c144cfa3dec335d662d614340d19b2b8899453ebd208fec0a529112d5b71208336b2a327ee41af51309dab4e2bf4ce56542ab15b6f502c0cc61b0b7cda523dc6c4f85501ad788f2ce37aa3c26ccb6b9655026569ebdbea550dab8275d6acfe5fdaba77968235d81a9622c53233927b22d320edcaccad05f5c48ba398e298d77fd1f25983fd5625776d5ba3e3090c53f9e2a793f7873eb9eea54fc4075034a126a2e1124a4f843017f44401f10af382db6e67373850cb36b6ae5db7beb3db7ee690b998d7ed5c4c9eb9307f2916c3dc303e8e21d5b313f943d06842c41921e559e496a996391cf4cb1029ea5a9ddeeda82760764a37a04399de11265ae3ebf64b04c52a9581002a0b7caa34793c51ff74a18ff8c34ac83d97ce45530ad85e3716668c4fdde7715c5fb5f6806c64d353c8a2659d993f87f74b70021f95f06c50e155f7c5015d9cd6be713d758d6c7bc186a5f9299f3d8dcb280af932a0f90d152985824a809cde764d648314ad108f9de2e9006e6757fde0517bf72b7a8b81b2e79e4538de724b878cf385c4fa599bfcb984191053e497b83dd6d2b3c364edab43ca296a490314ad86795547872b64b58d2b57e4c39851892e3641b3316fff304257349389d5429a7611c606fc0552cf62e434a619d521296dfa66d368b3a0d17fdfd4b7d8c796b3e2d3338dfb3ab19ed43bd8011cb1d279eccd6cb39b4a3c63a7484e73215086c21d7f2965ec89d496ff6dc79378e6db7c678c2c829c68e7890172c5a0c9f63a5197c65546315896780cc92986b901594905933e9c777e041c94d5f0f5c53625d5aa00c99a0675d58d3f7ead5a866b850a93ab9b91222644fdd9caf14627fdf088f2b252274a44cd9e606fdc5d68bcb4a56667c84b2d8f1f4f51b20e5f9661a7cb19896bddf395bbfa6047e958653598df20d0bcb2182b6c9ea4406a37b2b6dad5447579981b5dcc0606d84398e79e8852e9424689bcf40adb811fd60bae45284e3c15aff38af28e018efefcfa8cad3e072f8fab8e1b31574bb807d31eb88c64000418f68884aa86f5469131bb78c897c9da19fa172f388e74eade31d4d234e84512d5b7ee239625b5f440f1065116c8f5d40e99c1c9ff8dc101d2741e1b8b857cbb98359b1269b738837cf5ea7b84bd790216213193dec928ba234256fe20b87b4 +shared_secret: d5c5e6657d310b0ccef250c9664a02c846ecb241f2404ca851d8219f93cb0d27 + +# Official test vector 52, seed: "5de720f2d152bf4e1f96a61e7ae5f1bed6b8548e32638c2ccec9f43b87d1bb43dfcf334f0582984d27e440d519ab662f" +entropy: 2387772e50059cabda53cb93ba24b19ae529496c03b36584169451525c4a0e7e +public_key = d9f945a651693bcbb0c7a385928129f004263fa16bef92ae400780966a8ae8750e574947cf6a607fa4b3d252c77cd9925ff3a89e762378ebabe4c413af52cf969068d86acb44683222f93bc50bc8f7058def77a3241173222359d25c3a87c817461210c6e4c30d4a428bea8b2d459c4d9c71594c597fb9c3bd17598afa098329bdd15b1c23222f0f39189fa06319bbac7d6866ed7953a2c933b3479235790942d6146a818edfd64227e78bb47168709bc5e490291234929206a3fa1c2ec9359888641d61897927f0440929294439095db0244a05c20f9678b69ca13268622d174a915a210b8908328b162454c1c0c3c36b8acfe4ba2c38e0279ac15898f393f01468eb23a8db1567ede8b493608d3194b2f2f82e91e739479c35a59267a1c84fcc5a1ac12289b3e5845d0c8e9969bba50211ee716774ea03514c3b7359892bd4b8d9db4fd006af53961687e5b0d0fb9e16fcb3764b1b0271b9803019048048cab04e60119c8a140b401cc8c5f5770863b066429e71c8ac3751536dd3cbf4e775c7778c15920849d4b1c1b6ca9ac63d3de47cda549ed009b4ee7759fdd66eb5555b199022846671b1a819aa732a23e6bbd27605b1fb22b1aa71408b2e55bb651c1a676e13a8e9cba2b65b246b6683ab20820ff40eab949eb219851a7c2e1bc1a4cb7b06cf526bff6b1ecb4b5ae4d05dfec33de9504d2eaa4538dc9b9bb39b051ab7d2239ae0b98a34f55474871cf9059e9bf463dda3895e32c27a534737677e40527313ec993144841bc756e9222d756c3c22e56ceaf336e107c3aeec9b1dc71131271392b4a4436a14292aa0e24957534856e30ccff827cb3fdb31aaa086298c59ab71278885308803591513870867a018e61d2705b48210240739ade4c7100210bbbcb524966a9123aac92cd711f5da3b5b614eefdbc39bb36cddf47ecb196840ac84a6c721f1fa2f031c022844a64c4433f414a707992200b857ada964d17c6ceef31186c248adbc83ca2a528738ac567c4c8afbaf8ba57b3f42700dfb8c563b5e494c6679e69acae47a9bb14c79396bfa2593d63224e29cabdd0991101496a0380ac19b759cb0220517aded8371ce74667dc827c1141a233709fc47bd5ea6664c0b6c2182aa9a088df3c92bb5e6047c7b03bd9c4347db41efecb80fbbac90662c0d56b8f91b3f3b7b3417d592994771ec3695e94cc3ac73747f279984b7350ed9b9400201ed35b785f0629225af64b05bb5b6016ea50a8689c9ceaaa234748400db67ef9514e7ba63c683b4f5f6b35869586f0058ba7b9c4bac500a0034bce3b2bda7c5fd5c8ad37c6466a9b877278b7773ac79809222f80eef341236053ad1d0c95862796a9702fd977e820420d611c66163c5cd6c5fdabab7ec96a51bb24328617e375367ee616ecdb46089c6604909d055033d53d828c7f8cd6de0823022babcf521aaa67959c1881161620e397b0a25682cbc805a96a84bb84a9a99acfb6012e2ecc2e5bc1518036e40dbc3347caba399178ca912eb8367c86070833137d1bca5b5b3186ad23c2e76a4cc467d092102ba081494bc7f963a9a6ae575d2c57a38371be5b164adf29f392014d11522535b0173126bfb82721e153e74049c1e170144484dddc2716b4c487aa0398ee9ccd2804df58fab8e2d32ac05bf22a8 +result: pass +ciphertext: adf7eabf19b964073c8b23ebd08c9c3224a3a1d1b9bc80310f9b817c153fedebbfe44f6426dcb32acf9fcfb9f49521cbefab676b0ba60e476e6bc18dea3fc67c6acfb042f592a557630ee0152db0add3e364044bcb910ceb0b79a4c7407dbc285a7003231a8d4e3c044a84d2baa164949369becc15e7d91384217dad6848424ee5d80b086f1612969c1ad430876d6b9a40a9cf3bff43e508cfe569c74e0611bf3b83758116f17b2ea11660ef51df4d20180c9a786594016a3c8b5f88e39fdf4981a629c2c3f6ecdb521a5d1556e8ddaeefd1d1db2fe5a4787356a949ef652e84ee7c447fc020e8d8fdc42dea77607247fcb55d20f1ed3271adea64165a07279b077599be443f4db254cb8ec45b21010935b543401abf91a50570bf3bbd7f94c0e3b6579e6d8b1f34520de7cb471de174fcb3c1e6380cf7156db6aa4fa483a96297842342dea8c5d0e421958942e5d4b9d9a6867c104b5f21aa6f02398cc1db26304f2bf29c124e3d5c473b5f4b2ad79a092e35e00f7ab04f4f42605d2a8632432183c24f65df8f5fec2a27a7b65cf7f2705aa9f6c4acede1f407f4fc822b60ba72f81028e4a175683796f5cd7ab11bf95ec66002670a8a01564e276b83d0ba30ec9739e917dff07478c65b931d839cd560d3756c1adcd0ddd29af90a5887f126c6bb0a27ca5c8f2c131eb7f57b876a8fd38b53ee7b3aaee459c2cf10fef41e9c853950cedf0343c044392a4b1ec58335abe2a216466e213618f36b58e1529415ad8dcefe7eca63911bfba0a27e74af1b586e52ce4f1efbe58e46259bd6a82239e58208660889c533f905a7ce54f94a97c10bd85a8a30ab219040261f4abe3c47c2b356e704a626d51c316b5ec7a180bcb41c8ea3bf3bbb846a90672571848ffb6811869f15b3317fe836436f8d758eb0393a277e4888ff85fb94b878bd54717fcfd696772bb815781e0f39eb57ffdce6abbc4df932e9d4abf64cd6ee9619aed5b4660d705fd21338bb665683c69a0bd84e7127b5816b69655e661f00095bab6259d335500881536b4bfbe84fe75cd203a7cfc595df1fad1d2a93858f98c8eceec2c1b20dde8e0dc33f98e80636e1da8945e617a47339527acd51110e74bd90148d9d3772902b879ed70d89a0370e884f38fe73aa2d51088f384c5ad2786c2eb9a9cf1965438e9d15363fc1d4cd1c850af641cc8083c95687f38caa5b631591d26a753e8413d779cf83d254180ff636207b242f9ea9c9e2c73305bb1573dc463c526ee6305d9f1b45d95a7d0ecb917eb9ded46fa43884d1f50553b4edf08c02734cf289e86649d524d5abeaa8f5b3562e80c87658dd91e66e7e55502de100be9c66bc2275c40d9ea2fc160d6178b6526dd663f798c10cf7357d8df32f75a8a6d70e46bd5d5dcdb52aa72a1be365d85986f5029b18b15bd1bbb413b8ab84ebd87aa309fcceb6e30992e5983327c033556028d974ffb076759825dcb98d20686107c72d333d0205b201b31f2963c0f762079d6358518e9e2f19351edaa5d5b426c0 +shared_secret: f62460025ebbb273f00207758a1215c3a8053d2ac66cee11c6760aeef7e35d24 + +# Official test vector 53, seed: "d71729dcbb27d7cb39e9e905025d3e55c8602efbcc483c9b866ebf82326157833169243c14550ad728bd1470f39c642e" +entropy: 155c29c5f0378df0cd0e847a80a07143cf7522fcd880c9229eb9feb1ce340cd2 +public_key = 698035eda89cff189f730a05dabb3254297561072317010327d4222de388a7e95d8d0076665061705209d59984540471fc61032904b13dac27d520a2b7cb653a68a46623316557500cf4bb6f71ac9b5ca17d45331ff06507d5732829af25417defe7aca7364d99041448328f57d94f1af2572f7468da3b9f2e432064144f0396c1a8d95ce9951530a3b33b092d67590b307944095c50c30762435b76a5dcb3af494a5b112fee2567664a376f3b30c32172059631318821de71ad62b0227d9a91530a5ef2e6c2ecf925fb95302598b722a991e989a1fd198836fb340fe44849ca144545a5a14b46f464078529bb6dac09d148949e91cb0d7912f8701d84aa48ddacbc1aab0a4eb63f9ba41465f03f1bf4b4285cab3e315acd8a3f79c465d1d31fb50670423b278f042442e2b5797483f5a2bd21e83248e3039626006d7124a324281545b8c4356396f413a1fa67577c5d15c638b7d23199aa5343473dd5b45b66f41d451358f74b82a3c18627a60c08513d34e14e3f2a4b13d7332fd8014ff817077b7ee2db80a9c00eb1da79c2193201996036d214ee7b238d82afc2e3a226159ac05240e6683ad00a55a006190a279e116626b4f70fe345594d21a8d54b9017a76d6e2a61b9585bd5e378875ca26ac071d6b1546ee99d716cb8587b7a4e184c8119cb3150611389a8ca0bcd1ab6a7107942769cce08c00174a19305d438a7a475f2a29b28d230a016479f8aa8da24273c15094d3c0e10a8a0f0d3344169b81ca508e6cb662a4ba28c8693b9a27bd46a35acbc27a6b7cf30292064b4aef36bb29909af11d8924ee59af80b5871c2bdf0c53830a360688ab31a94cda3b12c0f61ce341bc0566ca6ad1cae54989aa3083707ea74680ac1fcb254fe3866bc9c7fc33189d3f4299a8a0a985ba3fbd51fbaa45d26aa352eaa710826aab8f600ff8a9554c842657a3cd2d6588f42063e9c08e9955ab7f3ca032b440c7889595a3454025853ba4070f1cd09dc26392b2657c526052373eac80c920c58c3a24827456be174842ed722487c64373b2457836f13c4065dd7b555f3914567cd87426e1196bb03c08c7a77c77d586f18e9603f45b1b9675bc62a4e71f215c3d7071729b0a8e9069f35ab73e55948f9c3e766c4f150394716b198721676495416e54841908cf60148a7104a4df00f21a10fcf508ae9438ba162291e5245afca757ca88ed577057f543921f670b262a0022a4ea4044318a4b1af8a99cdac8e1e550b732157e8ea9194970f786665c817299a7914b4c0b3394a57adb179bd3067897421a09410a34c658daabe6250047bf15b76f826bd371f0c504a2cf9106eca67816a4865b60a87d48ef4753f90132663fb26a5fa08c59394b6770ab13081aa200c79a6802ee826396cc9b3ea9cbfb482d601952752758cb7cd18605a9336735ea2322bc82b7bca773be27f17bb8726a8cfa9070b9aa6a77cdc0b64081cbfbab45c4314f855a953231c6fb6149bab90707b87239c2f7c7103bb9b2532180bc1f16670d90b7b77c6028c4d4bf92195ea54bee1150c25cc363c57f812a0754c9bf66470ad820e12133ebf44810b7318d2a79e5eb98c17c40b0ee10179f1b5b6870f26d27ebfb588f3a0d02e10a041ab4e3b97c35070f0da64f7e0e7076ae69b2ab51a956cfd04f8 +result: pass +ciphertext: e7a99c20e70cc337043c1fb4b4652347b827093a693543f2b31c03c52fdd4a2375f5a66055969e0754920a298b5335298e585c0e5831869e8714ab1b0f0d8a2dbc97d79bae54357dbcb5858bb60f55c1c739b63cfa0b57e6feb3213b5a90ba8aa94e1acf57b3fde306a854b28bacbdeae3b0610eb3d9595389fb2e29288586b39c6cd6cda86845241ded3e227792bca133a7f6b6bd2e03f5a215c63f0c682481a294b92b984ad8bf63dcf25f20dd344afcff545d8c89ea41ee0929095dea72aa2c007280eb9e12e8f7df68f43cd1392af717f01cbca7059637c7a5b869a5b3f26b1914ca8d12693c5b452c77c7ab8490ceb84a36066d26a84437fab7822512186d6069ddb363ccc3a66091a6c438667d6e423eb785b37be24c0b82524ed9fb67ed990311b010cbe63c51f6b0046c054bae7001439e4543d25511e9ae5b05f9fa0868ca7241322800e6ab6541e228fe2c4403863dcdf99bf3f01c117ffbdb4093c3fd4057f38752e878273a75567b5d8d7d23e62b7c9e478b12d8e0b910ed1c67377ec04496961892723109034b45dcac6e6d86128c1e6f7b92c45b695431406420ef8081534533182306daded5a36f9243e069914feb94fd4e21997c7eb259c4faa30d90e28bc81a2ee5033b54d1304046d8f110ea7e4008b4bdbd06c4b3031972164e9602e83143fd0640e51229f8243124ee1420d0895e30e19f4445553d236b48e65ba5f51a60a54d582e78b2b79a8f62dcdad61f33853d990ffa97f7e9e5f6a1882ea1c97efccb8c24737f897862eab1ad1be87bc7754cc69806cf53a123be63d6f08cd1251388fba7511e8457d8ba0c41410970706948cd42a73c534ec4141d408339411b480c21e60e06c4376fd0d818a287b9b2e235f7d86100aab7f3874af278561e7cbaaa269417fafb4ceeb0b0d08260db01e0b346e8e048a35508f4d888fc39d7250198c383258b735ef44c4951eb02cfa0e70d72468974a25a93858af6926c1c63f3ebbf279b8044279a4476d5fc6b190fd85d581138306b1340423bf70af7227698b740c5e106828591570269bd549cb6730674394f56e56474b76930e117dd16816c79923c31c1be831256ea63b91a4c0966bc15ff4e0abb910d088f4c5c6418c356eb076740f8d3a114584b61a52608129ba0f956e2038e9c1fb1d69f1757522c45111e26449b0f55407d09e51d50635ea272b18d029632bfed44272347b5d3c99b077ee34ef4f1c21104d9341c44aa1607eefa47d39b6af568f1615410558dcae8b7d546e0dfe88fca027d4f2bd6f249c5ec9b222a90edbf0914dafe124a56861329d09f567f8ddd477d8d73fa74119da2a40bd27a317bfc9ee8d0f2892cd201c55615466a68a16d9e39c107f053600618423a9a66e9d6acfb310c327780c47f72f45e09d27099ba53d4997aa14b5111bda61d5692dd9f73aaac26f07b590662dc5c99f6f4bb994861003dbf2d48b90da8860b911978b16098fd6cd7eefc4eeb90791486f2b4bb36023f1538cebcf9798a8ed2cd31758928 +shared_secret: 74efee46e7b26f5022416ae9bf4a52a3940966b37fab0c3ee2e8fbb24ded6bf8 + +# Official test vector 54, seed: "a7c2c8edb3601396beb2df0657ec82fd5780a2723581a9e03dee1cdb018440439bb1142cab0487c5d136e9af46338ab7" +entropy: a9cb9a61a3324b1ea5afe693b32784e2871096b2ca14a11acc9577c52359a241 +public_key = 4981b339e1a1368287fc699e4d50bab5ba45320968fb7cbfb358c92e2564944571591211b510a5b044663ffc7deac3546a8aa060537bf36229bacb4c5d918726b5ae7dfaa45f153f329140106a80b3c54eaf273384dc8e47f58e68621f3be905ace09a76ec9839ac471f9404c196587cc95d90166a247029aae0802ae3cf6983355b330bc9c6a4748a6130aa510ca1afdb876ad0d7b2653c3c88079e14d7898ee482f34651b7a238f3f07bdb4989740861d358384a4863c39b8912259bd78653386801d2450cabb6bb7fc287c74b2cb24c5688b66f7952c289eaa5051b938fc833f343c273652e4a1a6ee6c35c8c8131ebb63c82d38046b41343fc0fc660168931c899088c92db171f75b1f691577e09ce56435ab060c8fc084068133cb67cbb0fd36a73d8a21200623ef324256b99b0f60841ba9cda515f62a978881318fda87c95664e4a5755c72026369813dc90c8d6c18f48d61c10e49a7e9449f95492f0e4ae14f6969b654fd39bbac79c7e0b507559d5137d2179b59b21dc60679cf1b455b94208d87514c008898a95747ca9b530164743a6f9f1878f7badff6a4b2023ca367944f288a399c52648f834c28014b0f921ef04127ff4ac656196c034c0db9a7e8ca64109b904b2427fc601732c12241cc32589790e3bb71d924c184edb521d3b090a90ce0b296365ec6911341ad4d8cc7c136c87469f1ff101faf3488f89b52e98b920a659375125b48c403b4ba3175bbc6cc5a2ccc206dcca0440d54c6dac74ce4674e46444dfb4b5070926074c089c28c5cb11cd4c9c715af34aac79644cf2ad471213889c5e7ba92d114150233c673e505376f21dbc999997f43ff9c3b0f8f1b3dec09a4ca3ac581b9192984e43999f0d34aaf32218b02c8aa2f21c579457f204bd18191811e7bd6e4aacca5aa7c6f41fdd192bcd24760a2243034021b192575bf811e1344a25e1629b019564c39b09c88ef9b1ce6761066030bab14ac202bb6a8d858c3fd316c4fa81d21904ae691f6fe7931dbc93afc09f18f3b278e4c453ab5081372c093a9a38ea1622379f56397ec6c47cb7067fef7225c952c262792dda68135e45c3c6cbad23593ffde806fecac55d682fb23839b37186d4a40b83641d9214b7e0490e305807745534de18b9d4bc5eea755cc117b68b7a30f76a9458708249f02dfd59691f0b720f257f1f96cfcc3573c5696ea33017af14a843b81ea58821db21b73a9b80ca187685dac1f8735ea219cd01c6688f5bcaf4611fb3b58ad65b8d7c8ba4ab950bcad9b23d5b2d0b718397e111feb25f1739ccdbdc5c41d943e977aff5209134722dd3d54b923b511661127b284ae9ba0c27f05aacb20181602d9bfb32c3e255e7f48735bab94e515529a9591d51be015a009a9094591c7e07a13c57e636b6e11cf4835a8180895a6581507805a1c7a39ab05633798aebcaae89e37d8d75b4f34c73c2184ffb567069f0b3911943c2060f34f10f835c8233a34b5618501aa36ebf678dae07af9a567ac7143567c92a89a94a0a4abde383706ccc3826a83dfab8ae7165c6c6555bc77a43b5b3b2b590c56ce25e792796283737c6f5b300a0cf06e0060e1634a434793383860d84a76807c2983c57522fe3f988486bc386cb335ab55689d6b449b7a38dbce911f512e4f148aa1567 +result: pass +ciphertext: 4d85b317eb5e6bfa5ef78c31fc794d40b33fb3f1bdfa125bc5372bf84c6485f60b0e4be11cc54a2b204c1e2f67820089ce68f5eb96ce78361612f2b08316c15c609dd8dbb0f30b4c25983410a9e144c7486f348036949a892057eb4e29e23a7ad87eb5219d5a684e116f34af7fc3b5e37e76d4801ed34f066117622cc9944468109173b105805c3520de565298b2cbb47dd0343faa575d26889c032b7a53bc0a9f0c90ecce39eec6b4730c370ec58d959091d06472279262b07129610e549da8a4fbbf7dfcd5fceb985e7c27a15e78d1228222ceace2072d10b774f5c07785e9975131eef0c0abd43b98fb34502247cd7cf239978224a1a805e60926641bb20adc9a94efd26be6853eff0edc12228106ed7a58fdb150cba5ea1b68fcd58f8e65781f2b5825b0c8093183f7f6f92b438c5d7e4cae70a6cc9fb9a184ce0f254dc84141b80f5d1d2ec7f2442f49d66efabad3bdeaf4dfbccc4c36e1b4118b42ddd66d692cfa64149e1cc204635c152a8ce0020a5ef8c7032da13880e8fd4297cc107c84a1fa6674049c4c1b25a4bc8996420ccb7479eef4f5a6b7b3320b0e798e2f36db5a2be278b430ba1baddceadaab67faf9cdff46b59b3f1b37257a63462abfe731b5f6ab7a59d3028a9efd88f93fbf50f108e2a1f42a2681fd1feed062a512c3510024db9f0e9bc4e110a2642f15d84a0e0016727c837d0a5ddb357a4f3ad9a926997ae405fe1284ddff6901205440b2d675625e1bd23d8d11b9e9ac03c5eb97585b995579581df5a6c69a06f6d9e09db3a356f4227ccd069366a6030d74508a20e936ee586caa9d649fddd1c29c02ae0488ab6309f7a25cc81f246871cdbce087d7e01b2fc1274800e6ba4a263f29c9563691bada0441202a7b065704f6aba0d91c5c9d4b53ace1ef361c39ed34bb94aaa815eae25d4952a0fa45308d871ea49fc8c1ebc5b6a0a93c31dabf41d5f3097a785143839b01e218495c1d075183f35181319793254b56c29e3f02a4f220852316f53e418a6aefe8d0dcd0fcd601627f09a39a0f0ed8359a4482356f7050c09da53f2b74e003d7c2e7054353847f772fd9edfd5f2565796e128a6926f3f053d2cb146eb8871a05a1b9161cca78559f1712bb9e004f0924c1fe51973e7153050592363a93ad12947ebc73050fd849407282360d876351133f4d37e7b5fb51baf97b9ba9cae783468558ad51717656687947684bb61b9faa87519eaaeeec7a637a1fc93cf63da5b2f6d53fe878b2543fcd215be1609142e3b23c51099dd488ffd3b0ad68302127ba97d062f9887276ce45df63d99f494b5fb22c467b674954a0c68bc85cd053af86cd1704e258eba6ba7812cb2b9c9a1cfabe67d52b7f9115773d3c4e3afba0fb4bf7b9eff6f220cd2a03d4cc7c5c9202fb4d80ffb78aaa8cdaa1d8b0a603bac25afabc0502a455005eccb3c24e2b4b05ce8e29ba69f52b3741679c359d62a1f4dfe424c8e77a5e7bbd5de5499d7763a9a709d828e6c0b144828a88ad4d6c5f724f7b3fa1ba80ba6e +shared_secret: 92fd1bb6ea9f1a0a195b3ca29e457f4b3f401fb4521842196d9471f50f5c7249 + +# Official test vector 55, seed: "467f6158cb86b724039ff18c47950ae5c49170163c910fc9a9b30141f86e9c06ebcec91497bcd156d95758c9f0c6ef91" +entropy: e99fbae8a024ebbbdcef32ce213f6aa942e3eca925e5da4c09975d773b33a175 +public_key = 5b19b76208b41eb99b73d2b00d7884ac289c5b4632f8362ed9f238e07a34fd7b3acfc5973070c83e03b9b45c65f8eb64a08b88592b6676db235096694073143ef758fc84c9d3097266b66c9c34a6c5f876779936e345c3a07614e2795e65c0793ef3a22cb65bd06bbd90b391eb425223c2c395674d9841109b6929d353437dd49c7cd50d781cab5850363865689dc8bcf81a80c4269a05060965b80a56081c186a2f4bb00e2e942863fb8e507230c29215c98a78e37201c263783f703b17928f36656b99f9cfe31917f05c25f57063d728a4e2bc652e4193e52877b7310f7260a1985985c26caad60c9e6f01b54be183a7c2ae986ab2a85b33788674dcd42566b406be251837266ebc6261c3b62fff702f10298119d414b580bb4077791b7096a7471595d8659614c878d8097e7437503a7c7e058a3dd295d34ace86b9302b901100adb0e6140cbf44161ab33b9aac34a0dc6f1faba14d259c546c672ebb7f528a010d5585c21c00c4b19980c6490d76083a77b8aaebcaf7917a81b55a6f2a6be7941393d0a9ebd2c549417f38682def039b4944cbc6fc629bb3a3ade353ea2005115a665087c00a4b771ef0490748b370d8b4c4ec37cdd352562a11479597d8035c00824f48805000778a81d6a31a0bb8b6201cbd3149ef96428c79569c5cba273a9bb4a77eef98bfa54ba8267bc42c643c29577b2bea5802ecc038ab70fdb1b23d9272b7ec30cfe1791126a185c40a77c57ec3088822c808ed8b1866068035590460d6a9a00c50db70b19b765e7ca8229e1a66f4fb52d752b515eba35f64097ee85399d78ad4c2cff7935ccd269731ca2b3b3217a22203e3b9438cf0b396fc99b6113cbb883c16869bb114bb1adcc06863738541acc61458ec9ac98df381825ca80ad954562ab931d1bf47a1c45a5c1c72d90cc2d3b4cf6135b8b5454ec4967523ab82e9aabefc89780722b5aa12e47344bfbc8c3426802c77c02195255e71555d9045bac868c7d45c06b6474bba2f40fcbc480112176a83ce361dacf2b386cbcd270456e7563a873c55d752151b76b3fe3c3233c5199011aead401b88b9c36efc295fe03dee6015b1ca00c5bb06dfd2c2848125af903c298c5f74fc4b9937412ac70aacf07fb99488c797287c04335821cbd6475e91d66a7d89c2f67285321442c4e7ce61d0212cc16d74c211ed2a7bd829044ff82491d1cb1746430603a0091110f626804e0b32edb0cc827c8ba7c36f87cbc67cec250f65ad2fc621363bb715557848c5a01b256524271be7b6956b72be644aa0dd33925f64bdd3481615246e95294196d6af1aa5aef6880ce2a609715b50fa7737be749cead7c84977747924bc25792509ca7a931c3ffee7341547913ee695f8144afe83430bd5c96ce61f57610f78d6c64c3c33b468b6f3cac46f29b60f0705ae1a05e5c63d21a62f5dc7208d25a7f0c09d8f77a7a7a03d51d2061fb13d9ae97386fb6da4cb6fea0923937536511ba8ff00ba753897d16b76058a15b5c706121cc792076ebc2ac1ee492a36e65d12d23f6488245e998457d4337a2c62c731afa43085a94892bd30393b1c9fcfb380f9815ea491968d6514b8707551443fcdd5926991599da552acb4a19b6342d309b5027cb88909ffc8c83b1778d8aa46c9d07aa2594a7bfd47cb7ae1 +result: pass +ciphertext: ebc5501fe8979387772fe5f486b5ab466ab6080f3c0c2f1919488c60d46908ade6243b7240e4b4faa38d3ff8a7e5099f66a0a4cc90e696b663c995004254ce33f75092abcff3dbdf52ded59ea137444bf4766a108e95db38f3ec150c2e2be33c9357ecc6f1aba15f904c66873ce66c64a341f0692de732951b43f756afe823496ee48be44b0e5ddd98db7ec401f872088dd8c570e74ede290222efb031d865559083c7cc2b01f1ef63d3defe0f186258b0e1f3a750a0888b6bbfdad4975a1e3d2cfe0370257bcdaabd0c9661098e6d343f96639017a2fe0f8528db5995e9471f4ebe77f12ff032826690b3b9137b43946ed6a6e9fc9db0d3682f18772c9cd369c30b00f66c0b2c3d912401e83fdd1c221e296025ffc49c9a7de4400fb1e05b4551b96f6e5a760730fa998834355c9ff8644620df83735101a2ba982010fd456d6279731798ef26d179582bd6c2404df96ab1402225b8b5764caca763a3a4828712d48def1968e2157c6a7a15ed1b0472f0706b59680a2096efcb8595e42f1ffac5885da71542072624c8f480c1769fb420578146c118ba21e93f9712ed3c0303e631e4a7a5aa2d6f3b247d948e27cbe2d44e2804c3a8e9dfba678a0ff44c201945c0a46cf31bf8dbd6dad5a323e6f4ec52cedcc7c8c12f03693aa0a4ace4e21af890467b7e7e876b7d45f22120bc5a6043b1a8c322f035f16d9bb5d3a629b1b783e1e44d2c1205337077dc68262179c290bc4a2f291110e8bae9de1f76f45eed9ea69f01d692c25e8f33f66dc4acbc539ad9d5a062616c7b1eef940fa546729b7ee744d655fb21ed346207aec821bcb8cbd8b71ee0f46b2e718349b6c422547feeb0fb7767403b0dec26d3dfeb7bce5cb6837960972c53cffd753467cf88088fd5b88ba493244e593e5dc1c85e6a6934956719b52ef9fad4ba14520631a12284d85ecfe9cb93cc87110e6ef5623e03f91848b67d609fdb6b3867b354ab4ed1386af75182f78189704a470cdd8576f5485bff21bfa8d87e3b88e50986909b3833b08898ed5b7e46312364d9ba911219a49251410e76e0dd66aa451ed9c07c7dda1c7c7670667b40fa44e5bfe76a101dde80c6c411f7c1820b46ec9ffe2bfadd029ce14181191594835fbeef62eae04cd00537e6d5d743a9bcd7eb5b52bac2207d7bb3c42a631f9d73fb82948f74c2d0c59d99a366b600247234f619b609f1cb66328f15241d5908acdb63c905d5959e0dcc5fc83f7d1b704274ed17c2582e651200e70f265d816468fa1b5683a4604f7cf72d57ff9aa3c698f02de106e64d99b0551649bf519c43efc04cd8c1750265473d4a1fbff0b6597d670e9aaf63b53295ccb483defa0b49404f16fc18c033dcc1c115269c97eb7c44b89c76be473a94dab492b2d98c27e418671d21288ac7b7f82380c520675140f018773d586f4faac79a08cc50bdb525d138ec4bf6a0d730e9f1e559fe9e1158509001cf6d66cc4994c08c922b6fddf40d493a049f8f587ba0adb83ed5f045b82598eb7d2e6be9d76b +shared_secret: e1a195eb1093af69edf107980f94adb3058378cb79dc807684c26c4ee1308533 + +# Official test vector 56, seed: "687c02de1041abac7b2c1e6ec2a7c3375552ed5edb10e3a8139c24cc76bda44d719d8121a81d47a0b762b4e9eeb85235" +entropy: 67a216f37d67f5e74f782f1badbce1cc8c80a6130aec305b421899a4faa0a6c3 +public_key = 3610631d29c37a90908cf2c89d075928ccb3b9558a5453315acabb5a228d0abbb99d63b0294b68594a0a648367fe044e14347073562aeb475c17196a3da38896f2168996ca917a0423614431963b10b5a0d3b228aeca3b26363026d1a5a952b5333cadf79a59b93b5ba484bbe4618b41756a101429cba6407b44a2b001108eb30e92d60c093b4abefb63438c481dfbaf08442d607088ebeac83a950623e057c99cb0f9e31639cacc82852f4cf9bcc83228151b91cdb0423f610552b0c170203c7f2b345443bd7d274ab14cb67b328d914366ea9a220cf46333a41feb5193ded4a5d94c6e0a43bdd6b2a52c3c4c718591f11b32ad64930a638ea9f217e64a9e31526313133c02b5b0cab821544543fe24aefce70927d9248aec2937385c79cb85df91256e176eaf3a239b370d4ef56a90dca3935507a6a86d84b021312bc718662abd432c08bb4dca3614f357321b191a8522ac109a643a5a9a63419be6845e5f5837b6188de0c779fa01430b219470a20da019688802ba8440c60d8727394114db10343fbab0993ac5d967b658b1551a6570f7d9b283445cc278298b4740884ba72b338c45249ab74c84a1435a84c42533a0bfbdd0509d7a3bd0b0635f538ce72645650931dbbc6e2850cd2585214f5cc12f2a2d9c2820d6c0550be79d5276747e2c04bf976705227c842b872e294aff495e06502819c6c92de3622ea968b07c0646dc0301c009fcd5bf7f19a357693e032cc46b4777a1714d41a59bf07721a2490be2e3cc7e4a04fe48a8db361a5cc1390d921325875f80629c2abc4d468a40d9c22911b9bdfc6ba986b9bb7226227dc63d75351fa4613de3654475c5668d651f9f03a386179cad00100b35343f48b7e36a79dbf979cdc734d5855b90128fee10c9bf40acfb67332cc8c9ecc4a3a9a98bd30c708e7a630a0909dc8ba2b1721e42250b83623a1289960e7288758525d4088525ec25511bca906930602b5ee1d127c23205e681c9db3474aa774733100838b2461e45cbd603c3a74122b679cdb9992063e089d5acbf74b03469a3ce7993c6b978313a7a735e75bb94976b3539b4298cc47af58425c24310667b1315baa5937741e35309f1c70cb8c60e06ae1793502a316a276b2e21087305f453d8e99d08730e174159db09324e4cbaa067cb1e766e455a34159465bf1138a285cc386502d698538ac63de2f496b120be468a952b02c5dcfac5a997023b5b3d98691572103e158672eaa0a4e4f44fb6920ffd874f52748a630aa41d188ece499aab324e916079b3bc2427b35896b26b0d2564b2a875881a074706713d326306fc66efaa1b8d4cadc7c85b7ac211c4f61f68a124465397385b2ac7a09686935cde06638f156e6e4670f963ca82950d3207889446be69e2a0d7cabfb16141868a6187b5be7977c354fb27a8c9cb8197565480244bf296692a02701580a2b4ac4772b13a27c869123ac3b6cb6699698c11261f657ffb6c8d78102e0c60c004c0796f319330435a29abaf33dbbb1c566aea10349981409ac31c18aa48631a1f0657116821a2a36c2403870a3787a1e3f36349b3373ae729a859af3163c078c38ef38c464ac5ba1fa8150d9093f97c17106c99c632bc42a5ca0595508bfa7485b23bde8d12ad7bfc9c10c68374b70a4a46655b5a67d1 +result: pass +ciphertext: ecddf4bca1ddd56813da6d33fbdec858e5623a15168dfc3e93d9114285eb4a7c75ed6c01bf62a6a1e9095e840348e68905092f8e9907a4d07f6d49c99ade01b5e5583cd93eb64695f695e99c9f646f335e37db423ac1c5376393195b6581ee7ef8db5a28f7e9dec1e0409aef29065c3b3f486753ad9cbd5491508055aff32616b3c1a3da59067c629eeb7029bb5978902886fef7d8cd0bab7474e4b6e0fc844ec6aacddbb8969810cac38a3b40d6b0927a033724ba6f77c59a173057042eeac0a9b1d4b89b04317d68feb1208607f8b5100cca617f96ab20845e1ad6b1be99ace6dfabccace157398b9e9a036a70b1fa755c2250446766baafd4d2b3daf13ad2ba8b727146ff87c463b06170bd7bf715b3f5892ca1a80a602103eec384da50f3fa5c8498be1029fc722598677bbab562ab9dab1eba0d6af783de2750568d7c4021ec95ae18413ddf4e9bbb13122e62581e66469259d79576e601a772c009714c28e3117ff2e9a24c321b1d892e5b3d42084f63c38a6d41f41032b405bfefeb9ee955055cf89bcc545ffcbf3bb3050f886637054ecb4d83e3aeb5c2a11b946386efabe4a7dc7dab6eb3d6944e8de6060894c7a81d515284d9a0c1a5bdb4d6e4d20e66e150635060cf7b3c5917dad5bb78a88ce639b012070e3614389f9e89f70cf2064bf375bd8dbb4744717e771cac29555f6300ea2077c882c933d366059dd55301ed24cabe484b23c28e5e4578baebcbd1c6595b80ba173a00e760cdbae70a0fc9b77974843c30292864fd68611382f4ff5adffa6c0585e45fadcae5bf870fc0fc7cb8a8a0e2c6f28d7b2f18a3b5f95e3ff82b002ca8075e3f9341082acb928b8a4116c2582147163d64ed111114b5c8abbf05b969dc74798479d345fa61bac4b625175e11167ad039205b70fd42426d0ded200cdef40b0aa37546f66c77d23de1d3f12da7030af08c8ecffa7617346de3bb3cfa66c5c9fe49da420bdfd80e541081d26ce873914afaa2180a683f738aff3f55930601df67dc7ee4ac20a60eeedadf36dab2115597f09235cc49d94db30b7f8550a223cdd0bc1fcfc78092fc52ab0d7651dce159dd5cb75ab3a7a79738f3e8572eba724e17fea9f70e7360fb279369015c26dd7838f117dcaaaf6b5a40bad8a04ca0c81e7578be8dd6378b6b594a64802c4bc0b2c36a62de594d2bf4ae5af1ea409c0ddf281fd250be74a173256f27830ca1dbb4d4914c7c2a179101c31838d4d2b131d6555130a5eacdbd4e64b8275a60e40ae253e44251d334b97a24f744f8b97400a90010f5232cd5b82181ec4b6b7bcedbe7b4a458ce772b508a435cbee00b784347fbac95a6493085fa21813dd7b953f04ad694936145f859a49c246d4d9c48cb94fa77bc9464c773a98df2e3e580ee6e81403bba5975bbfca547ee9afa1a48239498209d1d9544764cef4a9eece76078a72c4fa81c3ff788159ca33c733d6d06947580afa9bbfd3905cc2abf5430451b7a54e4d252bfcc449c406003966209594a2ff623978ba1ceee +shared_secret: fa8721164f599caeb949141b24a124f2d576b3b58c1914af2b05da26b09bee30 + +# Official test vector 57, seed: "4142237070c216bcbe245a39bd9220533c97651d84832b26727855ad994a0760c52b9319ad404693e4248b8c5ff324b3" +entropy: 52b19fea232c9154a3e431e9d69cda40013cf2d485c3cd027ad24e645420420b +public_key = 00e7a56e91a766c72c04ab283d25787224a588eb4fe0c6b54d889d127a471a72c65f06375d1a545ad9b058a654324b5615138b2ec4a375989b3f1b60fd30bddaa2307205a103b29be6cb75f3567705a0c05eb845d493caf795554ab25fd03b379a6284988763698b1bbb4b3c1a54b9c2038e9ef30a3870a11604288b32336e15939fd181525909949c6cdf7737cdb382b1dccc0c49317213683b349f8da22db0b45e359b2f8e70916a0c0142fb264cb6bceb80afa3a36912d635d7b4cbf33a4a36e4c6714c551d70a18b967539b7a604c5182ee7673ce91d07736f5b97b407879e77050bcc089a14332138d92ab3e09b497b834df573dea32829b471bd5a73e61361ec699ee60320ccdc0e6fc983d3238a8d5abc3412bf48d67dd2e1b0c2692a4e705de666aaaafa9eca476a1b155d52459b563b6ef1549c51f83bee2963a93729d4746a01a21dc667b120d38d79a45a112067205c3edd378c7f65c940719f79389436a5595010678e1558ce163ad95593a751c737d4936ed9c7cfd41effb1abedc07564fa5238ea2d2908793e2a9a33e08b67ac3133402d42344f6d1c804536263661a557739cd8c29682549fff416c069a39cd48229e47066e02612988bf780256e25009ec5b1ef829bd39bc0654a0c8c3c113cf421f06965713849a83cac9f6415482d82074fbcba804b4c5f2b1fbd941c7ec8c4c691dee981392bb0736d43adb3ca548829a55bb9537396d7bb11922a9167ef01cb1aacdaf17902f671a6cf5487bb643e0a1cdfa3522860326d374ba8009833bb08eb09a2b3cab0d3193a6561c17d60b1cacb24cd3c26c455c040cf9ab0a7292bbdcab2d5b783d65bee7a666ebaa2764e98b7df61bd5ba546bd307ad7469e4ea85b6031224d9b1315720ccf95273c35767c43a3b27a31773c5b35c7e4aa0316c53cdb2fb1a60ab77c4a76f2af78bc2d6479b909eeb9c26ff97a47c468dbe7c439d232a914766fcf8772e7ba92b3182e362735c237bcffc3e940cbc5e6042df923eaec04d96e31cc3187f66735ff1e62fb5460895b22145787484e529a1d654a2d72cb9d81b4d283bb15682e8f9bf1037cc95e29cc3716fd89810e1bb95da871a2562645e0c60a27cb508c2885c19befc686db2e7a78aa66b934aa0d42c856cd361ee93294759549929b59adc1ebec3686e70c4a15c8d56dc23ad080945d4734b76b0a64b73de7b5d810ab8daf48542a4c13b8a14aef05c788448acaa51263cb31be69a91888ac66075c0e59ead1b29d6439e94253d20f965d9f0aca53a28b4903bd40a1310f0123ad221a45961527589e7048faa407028601e397a96b39728bf55437d335f1e14063d3902e923863bc90572891117516fba340263d6a0aaa0743e959da8f21ef9fb38431b36b1328a15696e97aa78ea97936f8b38bb1556d2625f5ac31e1b8cb3baeb1be7f808b6329a440045eea532624354dfb71dc321109d0058f24ba4729c375ccc0440948fd345561715654f60b378b477a208cb83f3afed2534c5ab6efc0a5761d46b6cc0a6ada55d1c92c7558bad4091772f65bedaf335ba37af34582e0bfbbc6609bdd3568001734520f45d9f4772d1d21d5080b9a7a2b2e72a0b6e030f1418beb28a229c8f63411446b83fde11b3d946c9bdabba08d495aee50911cc66291fd0 +result: pass +ciphertext: 2b93edc1c5e164af29c51f768f38811685e3c326a9d98ae6628eabf5bda5c6920c7fdb738643230ef509286db3cad01e0f817cb64cba6e8a89793212057a33c5ac88b19d148a11124b0f6a6c0a4b86f25096a8cedd3f5ca81e1851ce1df2b43525ab9a0a95e8cfc725c891583089904aae1561cb9ac21806662222543d7f827cf4b6b3ed7b45bb0c5a0c1f64d73c9cf4b833a59617c2ed3580581b886fadc3bf00a6625a1afb067579db0b984b16fb645e222ea52dcd8aeb0538a14927c32ddd1c845ac95802bf48e49ade7122567923de1d73e46867f9c9dafb8ce4ae5d6a0013d82e53674227b79263abdecc6b0e0fb7fc0a2660fedd5d4e2febee35300ad0e9cf0c7e7f1ceb18ccf38a682634fd6433bc141dc354b8e3279ff1547de9853d280c9ca7bf88f34b720633aae88272ec03e7622ce0ee3c2e2c66313fd286fae22b1da9b967d926d0ba0f63a3d02814d2ad22eb462243d574e6411904ae35c859366b7e09838e12676b1bd89743c990050ae185287f4f89c1ebac8f477c23022134b343868a9db57bacd273f873ff0e96c93f026126b97b6bfb9c1d1a21b10f1cf0694159b3b01f802193d5046bfdb224f4ee0bd520151fac75338ddfb669d5d3394e0b9776a158ece27de77187cb0baf7b2c1b29a0013071078c823d1c0faa784a4d5c8d6ca224c5fee58c13e983e3369e1832e72b43e4492c21b33477324595a29da0c3cbe2c2c02652b22ab1de0803042b08254a1f3dfa5a73cc6197e3e4fadeed10f3dc5d9a4c2378fd22aef84cc98dff20ca24118d9e3a54a0c23f96bc70b102593c2ec8fa781d6622395613fc57b06c175e7cb4823eb0e692a013a493fb83355a9404af9147b2ddd81f75e673599a5dff78b9e383d656f2f27d2e9849a70e44ed84da5f3d05bdf4d929ba24fd574fa21b479b88227b82888341209d9698a700a82b2cccda24c38ff12e32d8182dc9771842da3fe51a191e1c28002eda9a7a13a0f84988b356da88e270434dc8f36359ff179066393af3b90e06220e9eede70e27b13271edae76bbb1cfd9b2a69b931d9a640dba314f8a4907c61745ce418f816a84252917cd4f4ada572b89ddfd065c3bc7604f53776347835d237c53a5c1c26a18dd37c9cf382d836f32b9fe1709c1800aae66d4527a1f1247382d54dd69d0b365f56de2cc38cb302b001e7cfb0a8b7896b38c1cef72ace55717f465e2229d806311904fc47200708c209c6f1c2a1977a845a5e83385b47aa5ac695247a4ea9aa1b3b3c7e4a096c07ce6341ca9fa0c8ce26e8765f35c04d4c7ae8c814e3910f62e50f728bd4b1ce593dc651a455e0b055554f12d652fad10ae94c1a748d3f5067b02d81347bb4d80793d07b5e71ff36c3dd11455c054a23431a830ac8022b8fdd7c273ffe4fda640c89ee7e1aea9d11eedde7b7258ac5bba74fb864663c44f22d92b28c5fcaacb8a0213d71b7f86d8de1db6a5dfefa338a61166d9f9841794b3fba4a50a5d1bdb95058b2d31aee1f987f8840b829e65f382ccfce8c298 +shared_secret: d479c2f5e622cf848d921a7155cbbade062d0fb3ce7535d1859eb03e18ac64f1 + +# Official test vector 58, seed: "bd334d7b7eb14e00e68863f2e5551a095f8af10681c28353fd19b9a7e70b8bfe266840860609008a567abc66316c77ce" +entropy: 64440adb05db3308b189bf999f9ee16e8ee3a6ccbe11eebf0d3ae4b172da7d2f +public_key = 2450c193211551409a9ff92089c54b048b6a80127c7742ba34333bec498e28d729d6085fc7f5b6e5c4212a0aca0772af8f83200d422b49a80dfa17cf56d8277b792d7b4675dba3a7502674f595a45fe93008acad026410de336fa41ac0c725bf601280bf7b4d7dfb63789175b7748dc54846f3a8b28d055c69e2424704bd84f61c896a40447bcd42b96834c8429ca79dc4a4be300c7dee38a253e35819a43d833046f6437622094d003a3b9914bc6946bb4f4cba41246ca027cf2e599a54a23e8cca88086a6bf8aa92305185a8b232a0f45903224ba2d3276715640451bf49c350fbe5b2d95a5f55223a1a794bde26012bb48ccb4384b3027855331e96ba09c7e757bc71ae9ab2a1adf51ff01bbfd4c77a40dc3e24da767d8b456979913ae97fa9446413084a45fb7827a082eca1094a9437154b2c8edb48d7bb893ae3213b5a95f86bc9e146657ae653f1c9bf54f87830aa968b96b747b9aed4007ab4030ed652652daa9612d00f36bc2dd1299c8f2c84fb56045ab45279735aa1f57ecc470d7e66696a8b7a65bccf23b63ea1d595363466a4d24540e21bde05733154180d1a80652b166cc05af5a7cdb2158471d52fa5006a8ea25c98167f4574a8a47a00b7c031e667a7daf41b32c714ae1855ea9bbd0a1aa18bf64071c44f3783b30ce8301f20cbdc5c194d6131712386bb135af9b55c680790b5147f55a6cdb94075d0f0c289f42aa638623c16be446289d099777717b89922476d8c5511997419d8b5a44ac8c4a9589c5b39c03b045ac31a6e9967fa22c21f5bae213065867945ec746f776b0daaa96d85b61864fa94e76474beec06815b556faa81ace15c552558c0575c44e26cc4f919d3e26fe1374d2afcbb3de23a9be5b366c1a174d8b78ca462705ba70b358d57a751180c781b28075435b2528104ac0bbfe5912f8fda282f93b7e3292a64b83494563741789c98eb7e84d69c7cc2cb1703ab94aa71d7491c69b52949818245acc6ef07c11fcb68c336738fd762269b7ac562aa7401965f2c5b2909404b32cbc86671043ac334e283ab194bdaabc390b0b2e275bdf0cc2651d11207a53db1a2166b7526633cb779d88da83357b51c962f567d03917f0f2b5c3c3b9ba75699efb4a8a5736d98a56b1510cd6f233c2c05909a3ba6203c11ed72a0091785acd729dd609704e51dafd4342275564615b258691b59266a0ee3a8b261c6e9e9894b681806e97fbe3b25b4b133d804a0286a909752220c11c8644417f34597db43ac66159956a11541cb4348c23196095be01023e7b267c1e51fb0c11d9b787a519b3ca3f0ae08c79ed3f256a63b488e38040195983da72f9cfc03a9c5a7c428898291a9bff3cea8089a343b73e616c5e02227553511722b04a1604d5ac718ed753e8adc001fa47665b76f944c10dce0635e9c98dd91b9e6790da2b09ce323ab41cc7c29839784e6ba907979ce815f982585297b5170dc7afeb94524563510257d99131981128c7953ad87ca696d58250aab373ffa3476aac3f650bcf58aa6bbe85168b7c4012b3359a2b6bed702524b8498d3aaa04c7915211e1e013e1961b0e2e32b90e01e0b372446931a0fe6255b412581e2b5c0d60d3b7208a63449b4216546209bab2ad3767f9793d0be98cd2899da27f7d980122d0bdf593022e2 +result: pass +ciphertext: 6c3904a9d9575ad0a33c89bd440e63070bf0433261fc2b3beb68c1e244e489d6ff2605e48e89cea781bfac81251854e85613a0045b4da0b9535073384a36ca0ebf9ab4f3f5bcfc7682dfcd877ddfb07e5e108ae24faedaf75320fcad7edbda2a5ac5e7ca2882312699421b180b61e8f67bae67d03a241439cf6ce69a03b82d7c1d9c3e2e13fa4a83fa8151f790c2244d1952910c946dfcbc38da37a0d5970c23229860a144d374439e66113af1cee797dd7966da0cc64dc4c6586bd5d44da9513ebdfe3413199e89f359cc17cadaf503587b80313dac670791908e2f9e32bf8271cdafecf912b87ac0eb16987e4afeed57f3a83cfb62510b40fb8a0e1ba08e44f65c27e647b3f7b50e8142fc2d9a6cece5178c0bbccb8546cb31e7e5bfad1851dd63f4cc83758873c3a06dd420ae4c7bf28d21bbd811ce87bdecd9dd79d092b5aa35459dbab31c113c82790fb97633d0316fa9b6731cd03a888b32d42c460e7890c5d3873a9885f6dac651f22fba27c25060c70a1d41618c352747a4a5db855aadfaf8bb0ad62067e03ee027bb5ccf994ac6b95d3fe0d994083258ef220f0eb044019070bb9de46b39c31a6af5b63d4df8230deeed491838fef7f5f257ef95af41b1a96c44eebde9ee33a526db893f6c7fd9d85bcc562b3bff3cc293669fef93e0341bbb828153ba59404b1616ecd79b3fa048956873381f7cf298925d8272cf593afabea7de258c51fc2b5e7c0d9aef98e9de1441c07b460f320ed845f4e6efa1892e23a429cd37c71b80a4e79c92ea476af0eb3267ef787c77d5cc236e9ab87352c30deaa1e612a86a801e9e0db33f9b735561ee5e1e124773f989a83a199dcd99b342087df9e7c63fe7fd9fa6a8335ab7e2432d1cd7e53c940e293f49dce9bc005a58ac2ccf8c993641231a318e7778c8e3bbffad24312df5b6f8ec61a65607d3a417cb48daa55d76a805bffb102dab2178bfe2b8e720cf9aedb2bb4f17086f860a866164771b77b77f8d35da63d3c06d4355555284255fec035cbf45270ee83730dc69faeda7a190c45077265b1d2138891092b4d1903512cea9cea5f9cb081092f438fe80ce6b739a2b79349cbd023664d967c952ab2c6fb61e8c2981b4ea1653ca36d40674cadb7b14e37bce21a145cba822c81f93b22ab3c798baa4a3928d9d5327fcede7362e9d4cc0eb58496c27bf4b245e766bd097e9b839812b1bbc1c5dfc46044bc59aebfffd4afdcb7b28d1bfb9ce5a5c11d4d92d720bdfd0be1d5dc115a07d48f6c3fbb3428438ba14e9700246ebff56d6fa77213a06a550d69f38870af60fcae077ba78485fb59c054d3216d5cbb070c9ad6a800ef76b05fa5213a744501e366d8176787c7846dc6dac77e915d2432a6b08d1a8fb1c8f7f35a56f28aec6b2273488abb17a2386735b06fea6feb589bc25a96231d1017052dab972368c93a857e0b04a9ec9c840827c8f320a9e2eefe96e91c70f658ae1483fa651242d965fd9e67ef26e2c570f89efa24c624bdefc51f881b8bdf37a6aa99b +shared_secret: 0dc813eb106eb0d4864ffc38432937a1db0d27745788775a8299e93d1c808f18 + +# Official test vector 59, seed: "a0264c58ab1f2cbcb212077fd378d340307accb31f1312137cf84e3d3135044d4eae8bd38bc3e540a0c14d46458f6179" +entropy: c8bb46b3a7344ad170c2052fb042b5a3b62e0590562ee82577b1081f6f114d16 +public_key = 352071c0a607e459c907fa29619ccfdb5147f56c208e20b3dcb82fa2304e40c46aaeb47c5bfca8a9079ecab4471d4bcf914c8ba459433ccb950772038f6892062535603b536da65dfd5c33430069a7f33a08092bd9c9617df3a5778b1d15a8a91c8b99bf5b0d4596a3f8a79d3b6994e823c20f102cb2353273471e2675633d9ab2c7668f02e7a68b2534489b169eaa92a8d78e4e182647f71758fc7f49a17fb400c1de30cc76664bd10b7c55885af696478feb919f3c24fdcc98991177b52ca647070cef77ab47c891b06575e5a0814311a75bbc9837a1c564246c163017696294533999b6700a1402552063a621205bc28823e539ad1c1795e0a23b6b47737ae839617548a514631319a78d99350eb77dfba97f7208d04ea980546a9e6642395c5177bb7b433dd47351b85e569091eaa30ce450c1b786c0272b91f9763478ac5410bc1f78175edef0021e8c0b4f074bce255ac2238a5d67b84b08a12984696e1ac7ad1131cf64bc64c5b0a1ccc94e3bba85271975c63f8d314d9f1a2d17835f873846c6858f9f285428478b2efc10bd7b49ffa006a6537684b0093a633d9cf9bf6bf97017690b4ce511b1898971b2978b6a1371e8aa70d970f8600bdd0109c84521e663845805235dd5849b192c12b49b43f824d9a16dba939609e166a8b05e4811b970915dfb527d803672c7a418293937a0c508272a5186203be64b4b1b33578d48be3e23913e73a385a8ada0fcc4cebb1070ca3006ea16f7da6eebf8b9e6637dee942cbe43395c8a7806f2c23d1c146d6359d268303a1229e5d513c79b2095892d553038b6a3431948195bac491a879c4dec39cb1b97374a65d5f066f6c66045a25b9b5889999889db34b1f42b4151126dd7431389a8331b9c123aab61c2122285530566ea23bda21cdedac78ccaa9ca1566ea1817f4791da6754379f9b0f8acb217085fa380910ed3ce4a52cabbe52d75472a63c88ddfb423c1ba6c1deb6ed3172cbc7244fb71300721aa13037ede787ffd546e60890131d8add25551d72881be0c8647aa10eb5cbb5f73c891868d4641bf8a692bcf0a5867091f4313bc976c989d1c184aea07eed11e36c215008b56a55ab5062bb41f7c5895837093671fbf7c4ec63505d15ca7efa5c6e45a5f5a757a4fda02f9f13c7926ba7c990e6dfc8b20ca1a2a9490a33210c14accde09764153bc9d4a2a68b7a80d9a91d3d47789c2a79bb212bc92812f8660f23a833d78a3f056ac030bcad487431a6357b8a1c13b512deec79ceebc37c6099b720445390277dab65346ea323d33c76e30483d51b9d01b5fdd55bb7d116b2dcca951292f3065b1628b1dbb86bd0cf5ce6a66ba1ab3717829019ceaced283c6b748b26425588ddcc47bc89ceb267ac7c03172b960160a6317d44fc5287c5e462911a8c995bb92ea1c81fed5baadabb569f9cf7c1cac71926f3e4a1a7411295a623c41240ea4e9011660227a785d989ab00a2c3091b02bd65a5b244246ffb97e23213f57b86aa21669541a60ed7014f1831839e41539dc8634d0125d61100ea4438af59434a25a1ec0bc99aa0edeb19d67ebccdd22ce5ff925ae364af7868ad6308a602033e0221ab609560144abec5a4792b8894337c866ec1a5df4076739fed133a74636ec9d904e88876b678088d8c70f3c70 +result: pass +ciphertext: af90dd989f1b2b7c11ea1d07916c07ca7571df9e020e7c40790f8791152429d8dc6fceb7791d8ccd016bb0ac0565f06af72670ed2e427fdb6aa6e8aa4575f25c48f97874d83b65433672538bb32301eb88f4538f68df4bbef7d8602606de0aa790fb7ed079b5d796d954f3fea0feb43c19c7c38695c5702d0a780127ec35b3084fc8378622eb854e8abfed625381237df67b0e2bcd4d9b6f44509c1d7e79a9afe582ef4737f6949e0f95b104ef23a854dad50adef5a50e340774121fb00c1bbae7c546be459a19218dca18b3274a48782d738fe0fa6a8c306efdeecd55b45f2a9d1c0e128168a4f5457c9c0662e724a933a3a0a417ab9d94e331ac80c5854c2b498fb95fa3c30e0795eb753ccbe5fd25c2645b9c34bc38585acb9a8c14cdde16e51cedc704db37d7892266e7476201c1170d7297e193e8b2d5bf10b89feeeb912e40b16854b9e1c2f9975c664ada0c3856a1d530df42dc1238694c30b28aa835706bf351b366a2facb2683063279d8e6106a98de212fa5d94e2a0e25208f3d6b85f6174db9b02074c555797884bff70fc8edcf89f4a553d04be27af73bb2f9718222949cd1e86cf8b8bd15915873f7f9cdd69c7b6c608cdd7331633be5b5aee83e9047af566f8bbf4a020326f566b8e3bd99e31d92edb35962de24caf78ae895c1ec087c33a7b751f9430e39bcf6ba317915326c17432989c5c6c7f0f15e121c9f14b6559d51f4a5f273a9f99a044f5c599418cac21f0d9f0e76f1e474252e75874787fbec4edae7aa86ed10e550db44e46208001d30ba8910c59cff6649c78cb4ede7e2ad4fe410362fd92c535b52cf507c559416d85533686e3641fd7b9218ebbccdf1425cee412f7030538353a785cdd918fd7e2ea6b451a436a286b8d5b341d51b1a523ad0f614868772b56625268c2c16b951f814b8b5d74ec12bba0bc5490a95564f5bb0c144d469fd93555df3a39c1cb53eb8c5c4289651951471b97d0893cd33237c0d26f27f09bc67759cf464094161ac956cf488a69ccd0bc9a38f18592f00fbc6acea75895480001276df22ace110170e2c1705aacf956c6177bba26e599e1656363f9ffe6f8526186b9b2ff7a0b612faf427980b5baed097bdc2acb71edfa32267581a6314c1b05470fd7844596795188b2dedf4e4fff047ae81d0816e82c3e4489f06d57e7b698ec099425bd998b446757d9386951161df04cb5ecdbb0c70204e9fa048936ceb62cf99f19afd9f077ee10e85bf22645469944318cfff14652a233c792df239fbfc52f332f9bb275cfdd43a5659dfa721c91791cd1a91bf0e503ba9f68f880d3d2792e2ee22eb8f7e6f1b52e851891683f3eacc39ce485f0a700c60d25acca1859d14bfbacf41a75fefa35494ce542b2ad6f2c84c15525388edf87ea701ccae772bdb7477f709c822f2b6625f8b1b86ab093d0d07867c584f1c14ff7c7a8a7ca3d1e32af4d76993cc0cd8b740598f40794786b411e76ae8707dcca465b679fff10efb4dc6d0826dbb5adcfa3ff8c0a7d53765fe +shared_secret: c71d65ecbae83e06c622e28a4eff43c10041539d851149dbdf295eb121550d5e + +# Official test vector 60, seed: "99a9cdbfc674ab3ff2c64cded7d697a6e27a767434a47aff7c3fbf3c6a22d6043d27868955286a13efe3de36d22ec48e" +entropy: 2e2b70609f3fe029a14d09d5d659871ac776ce2797a0355f16e2eb68f5613fd1 +public_key = 4a5058d467b5ff439fb0c2916ab09bd306661b18626746c8f4db817e3c4dd2c71041929dd7c5918a760f50715c6528c2d2e7c9b97c51e9009281849cfe4410b616ce03455c73580fe16634fda087387023e427902180c5e8276b797abcc47028cac91bc751c9ec4a9c39d682cb38b38882103839947b920ed453a766c04df7ba58f9714c6c370b98172a71fb7d254285e609551f31444e90c2b1d595472825fb9cca49d55c237a67377808ebcc1bb4848a75527ec467a7f94b8c4f8b1a16f789f3ca15f4f332fd0160ff6c4985b08b9996bd08892d5a836d50566bddc6adc6ebc7d3c95068c08682d54e70666f5f62b238f69bf86a3a48421bcd8b762625c06f03cd8e013561abbb2f01b1c314a6a61500aa02b9a54682325340ba328761140781885febec3a4090a5989b914a494d07e9793b703ed4b45af78c42f3bcb46cb4c7fc5352802ba0eab35b9f66c34c39259ae52d1b75b910a82fbb464d37f6befcaa811abc6485f41d38c8a4d1592ec69b5ce90c7cd10c0082c0b72dfb2e5a16b4c7ab6e65f58fbeb6c442fbaa2b4345b3a3326bccca3b5104730520383178589c4b4c751796c31aa061346620ba90d30b340c541f7cad17f86e05c91e4c21162f618b52117ddb572e1b90c0e19235a82a3e51b59c3b280ce3fa739bb70e4af9233831269ff87f3114596f317f28dc11b8b53d578a8ca85b290d31abb115b76c0a8748124fdb822f989c241b801c8b982fc733921d45853cf63880107704baa331b725a416471032a9289673f3ecad22050d9c5c9e2706a341553d168bcbad1a41a3c554260112336430fa16ca8fb98cf5d92acafa8fb427c460a27aa08358b36c5ab849ca2725b72c939fe0601d1e2abcc4434bd0ac835751315856922ed53cdc7b49468caca339aedfeb25ec2b97d43ba409693fba524ae4ecaee5b84b567432270644d6aa618669734e10c8b05a0d697b81d6c83c9f844cdc8ac755403044b14c288131e8c0c21c2361b206597782313d40bad1d56dbe159735491f7b800d6b14ca69d92bf2130badd1858b2cc4a408c33ee56fdfd719abb2a431132e15b89d83498b6bb5aeb0d7404e94cceb2a29fc392a2e466469e53da9c371e0155a774a298d515d70ec5e31aa070be92c3d6290f285a6034a97e389277eb393c5100f066c588aa33e66028976493bf41481b2eba07a720937bc02b5324d63b9487a1789a6baca91512c1a3a0a70b348c1596cce7997ed395b971442ebb3b0e2dbbf5608012030a172b259ac705af9634ad585916cd63ee1248ca143a20001a20cca0496734c2c52a59bb40f76411578e2c60f2364e8763ec1e5641c80a9d6235d4ff9ca73f4c4d6db9bcf3383d7d9a025ac76db1ca49710aa281c222a4bb81b1027d80c38c8365a39988a029a93b5dcb2b0f410fd1b63a54297c65b7de3f3a948f10988b507955aaaa2d3c699dc83ef348e3781c8723b9bd1c6637b94b6cd416427592c71311a16d449d15c0fb2753b338586f7260cdf255ca65cbc8c54101731a45544312099a66405b01eab124f116cab0003bde314b25690520a9a2131154271c89b97539035652c03b462f2635db501f9ab6983017f22b3391a67397066c86032a31080d329647a7c4f5ab89a47393636ff0671a4b06948c9f87fb580358d467fd3 +result: pass +ciphertext: 00bf7bb6ebb760cd2f5c0704bac084e363ca6410903449755e70c085b8ef1785bd14afe673a70a8118ce2bd4d6b0d1e2c68b1d8d6dba69c1cc712bb753926d073941739c518f02efedd4c68be46638c3a1a9d097cf6513160d2954bf3c13e7ee2bc0583aaf627cec3c9658a0ec689964f54f81809958f31dd8621ecd0fa45ac4cee1773e16686ed2e50d9d4212c708f03e640e2cbc0f7f676b29834a5016971a2ddc1ea2038ec0f91133000a20af29409db0dccfa94b579ad89bff46a18b0f4f530535e45dbce9634c6e67f5308629421ee1101ea706a88bbf835dcd288c8421ba1acf5fe2945c0c657ef35af8febd7a663f8e07fd2d8a6d9588f58014caeb6f67c008806bd8b565f21f087dedd15e7c13e1c99de129c0e9be3ea77cdf2b64ee5fe46d2d7b3d4bd6e3ae489341e9c49618f16a9f6e23bfa1f37b34cc5885d8d55d7b7f816a0aa70c7559dcb6eb035360fbd157b2293e7242da423c83b1a67f3ad00710f23a4ae09c4602490271b24993da7535953b625ef455082ea5f75c5d8ecc8f280e4f564e1464d9802c7a0b4a903d3231cebb2a73fabc6090a6b7e98cbd5628e57914a143515b52b08435bed5bd9b030071c8feca74bee9f7e1ca4708198976beb8bce6a8fd9b5eab0437dd84d7a7f1188f19b0bcfb5f537b107007de82f879bd710cb9732b4752980049c97e7e5642b24cd59bab8af8feb51c64041023edfb59189942befcb4a95a2cf4b2c0e5712f34bfcb4ad08543a3ab5f102938b8c831122b193d6e24b4e5e9d46a8a88902d0d3c180a10af7d51e85ca83632c9848d6d6bb6f903a03bfe77531046531a037a9ff02a0cc45bb4b83bbef67989344e41f7869448e10ea1ea1e603f7bead5cb0c3effd793cd07204fe750ce6bd492a9effc45a15287a226de0df26cf784c1fd399b80dd9976823c7f95d241718ab6e8a362149c54ed1ef6dd3d569077d11e37f6fa74b31bbd8568579fde066e534e2134ad700f0b8a0de295134b4daeba035c5aaecfd5c8892bf5f68faac8fea4055423d9b9752db9b232275b2c946cff74fa0b5d9001b4bb54d778bf9d5f1acafd12b83c2814ec4c77dfaed6849e074c870a5b0e31e6bcd7c1dfc81a2707daa2df47c89701063c72d07f92f81862cd607d3113dff9a2c8097fc980e61f86b9a46d084a47423ffef3e20ecf50aa6ba84091ca9e7ad8bccb04cd9bb23e3681fefb1e1166c539e73ae41be71740e3583b8d881906bacaec5c253181f970e2ae7f533d839a8eeca99b8af1c0fc2c92d86329783b7dc44d1d137c02c35165fae49996d3a910e9a73bb79f17cf3b6b64c376eeb62cb32ef914917e729bf4845f304412a6aab7fb69e3af795ed9b525aa148c073d6fe225d98549ff7931e69427d7bf7a0e4c1a4bbc1229eac126f859e9178a910af8d774c4d1e10d7bcd80544f6aa96ffeceddfd4d7381105b51c62c3f4fcdfdd14066d976a6280122a168b03265af549376ee6983c424b2e867d38c7b44b6af76cb5acb962e6b31d49e656031812768819d +shared_secret: 82360ffb5455f6dfdfc6bfc1a3999eb7453365ca311a0077c9d74968ed27b7a1 + +# Official test vector 61, seed: "c799d57b41f28c5c446dfc58a5ac6499c4bcf3c162afd2b09a16549826ec2a6f689e44bafc4acc82f5d6aec23f4a3993" +entropy: 4725dd8fb314bfd8ee23731c2341dbe114606d9abe6434c471b5573e7df193bb +public_key = d0a4700800708a0cbaa0e3347235004460c8f86188ae66af363ba5cee88b03a341f5255c329a7d119bcac87c46bd77a1b5966a3fb22a45d89c712909fa8c69967b1fa8878d89b8541b8a1ee6858932e0793c045deffa62250c0d0072a46328992ba7ac4fd72b48512c7448cedc902d9d69ca55626a09d1a700a92cfb1a6bd89291632c74af580e3b4aa932c8c6714337b1d72a3002c6b68b1fc981cd0686502189712f0c5327e1050ef71549aba312a59e9a342c9e76a96de6907cf235b6e3b5e36a9072ac95d856aa7014699ff48bcb7b298e5168cffa740e0a5bb1f65df9cabbd715096ce738bd39bad530a05eb58efa8b9e3dd426f1781a06179736570611c89a6f99b3c0aa5f4ab2737592082ff73dafd7671bcb60a87c5adf3445ca3381a279c6a4fb1724373827494e294ca5d83574e0877e4a31634abb106b81afd515402290318ca8a2511cb129aa52228ba4a64444b761c184a3a29b221e11cc1335e4b87c457710fa4fdee790614249fa060b0417cfaf9bc4fe88632a76766fc8c5ff424849cb91d4351ec621c2335a2d7813c01cc893c646986f7c2246b2bb05149ebda38f00acb65cb8bf53314561893eb0f1053b237915711b7577b18aa963315a3b024629689a52bdfc81e298c059380920aa5bc39759f2f56d2811c89c59acde3a5496f1a8cce9bf5266b363a40cc1b6c78fbaa4241340dd4563a5603413cb73ba1893bdbcb3ff93bb7f1132940998427769d19047bc051506b5b990074e8d1bbe2d988699b526726a91513988627c2301b44f206696353cab38f68ca111270ccc6cab887ac3b8bedacc12513ca349228b0d842bc193299ad1812b69c63c2b8233c20121d50793906c4014453e19a62da12c76f03667031f2bcb59a074cdd2417ba3789e7af38ac71335736890dac04f77e0b10529381e930c8c0031f88838efa47772a7b2541963b0c7b063472ccdf6228349cb5619c943067ad86019cd964c64767c838407eb32a4ed9c40581b63e0379d00adb275f6578f065894e8a47796489b994ab9471235455fe1f819f3cc2b378648ac625107805ec8946f1599a8329981a7775523f7c8ef7426d8a31d1d5cc98820186fc7b55076b14d2c7c1533cc3217354bb24661c162aa0895cdc4aaefa666686a0f12d1791adb7392b78d31d6bec44068c4f31cd60a768ac0b056c24864c03387715dc48bc86e1b51a649ce4945708951065f946e17c06f364590e4d16520fa2b47b230f1511fd02aae79bb8fa72791806b0d3e211de92455459066b410bfd4d437f0acbbfb02bfc5e93dc7904b649a6f9a7ab09e2679e13040c8e9754032cc3feb8c2bdc21d8f7aa56ea31370169ebcace98d54362ec24b6b6c63732b882984e58839a7f825b17871820ea9dd0dc8c5e7a15403888e80150cf5a12c5e26040708791d2074df71945d67f221b6d2bbc1b65d37559a7c248516cb4ccc19cc15f93ba6d6085bdd95568cab1069cf13138b83173ea7c58ebbea7516c6ae25bf5e07ddf29a0dcd64b455aa6e050c1d5663245318833cb95702bcab1a11fda773a73454e1055104f917b75d650dfe1c59e807314a096de713e35837ba4f2a5f3991f6ac18302647fe01a05c055ac9d19fe27027cad17633dc0f4693c1f79cf69756e79c9fae7c954a0caf2c6b326 +result: pass +ciphertext: 2b52c90e4ccad692e0389c6d3ff0fbf4fe09884cebab2d264766a85eb7119219267f4ec139c8c06b66b4c91f60fe6fcf20426c65fa14528637c68494fa9b30a08cdb8c85752584d824ea9be447f8756bf44d56d996d54654324450c5443d2b52abf3a69fcf0607a3b8ae4641ac07611b04a8281c29ef5cf94b25273e893386ab673c5fa490d9a36bdaa867ba7019893b79beaf3ffcfd47c3e93c87d517eaa6f0f2af0613427e4c72edf9b28bd3836e771fdcd21a7bb169c58f91e23f76f665b97549cf2dc8ba58ca617018277c704262c7652f91d8e7e3afcebc872f1f5b5b942b23124fd9066bd6b2451c6c0c353dda7e3a09853b88f98123c1a594f35a1fb6f319c010c1ebd76c95a32338e9a40312e0fcca84fcb0ba9e0043ff587d164da5c7d92386e7c6d3647b5168d8a7f9f8a13910043de109b2c9521a7746b67e3566e689576040c9970b04780e7c2b914e7e708a4b37311d5508a3ad15803555d33edc219e8a53f7bf992e8c023a29e42ecfa003312ae805960d2c40be7a781d48dd4f2e1522423bfd20f1c832fc98649652a650ca7ff33330894699cf891493c5064d7db9bd7927d81c543bc041f2dc503fabf2ba774bb743063001fbcb9767d72c5228bd44fc2ef048ac08d5b7f44d807e388ff686e73c14dca14df6c2296ca5ed2850889111db338f7393cef91bf8bf2275708a1fc0967968c9aea9f31b826f42c2feb9104006b336561adf7cb7920c2bd292f002332eb3ecb913e7019d46421a0f75969d12f8d518e7996f75a77baa002ea5e1007811f6ef47ef6ce9ebddc91622dd7d84e75a4b0d90d95a8b7b353c4c0dfc7a3bcea0971bd287905d1fae61fed39a1cad61ff0ac13f436182bbd2da83899c70e802e98a88a2d3e80e538a7370377e836d016fac084ab2378379329a346999aa6594a5271924aa72160dab6056707f29d6f1c5ed8c1208b83f4a0e4e7bea2c75d34d19d8a3e25b48238192395870d43c58309cf9ae5518584fc9f19fd2b6e94b307b7750192c41088d6e3fe9596dc34ddfec0495cacf6ca98f6a24b6ff8a7fb1de8f21ef6f04a6d23a3b7ddfc45ae77d3081d75a76eebc0450041168198e853c6d83f88a24e3fbd25e0c5631c34abe36360c3bca7a3dc522dfbd20692b4cfcefea9d3bb0c73aef359d3f58299140e815ea9bb17b676abd504973a827e792d80fb03823c9dfdc185f03165c3a0ed3819c8dd2877d33a206036c221ca0c4d0d2f935c88a33518ee5562bb1a0baa83dbf4cfb3f11561513fe479e9c9d9298e0bf36891f28773f4eed45a454af3a51fdb790f1d8e7723db1dda75ae7fc667a71310686d9350cf851d3e20faa35b2673a97997fa550faea6976256969975689360275d1e56689be0f127853ef4e45fb857bec018e87916b76393d04c6c732700eb11175205a30a31081f5a6446071bfb7740dbedfb55e5ed09450ad8e65941c85655423dfd60b387f3444afc5138f9e762351463d0d158d82394ed26de2fc4aee2a9bb9ab420ffee5896ccd44603a05 +shared_secret: 77ef6dc5a6c8ff657070e418fdb3eb272c8784a9c38bbef950c8ac1de5ec5578 + +# Official test vector 62, seed: "f7ae036a0176a9de9a036a542dd2840033277c44ae936d10b768566216de9d4395cd42b116873b69d9804ba6ccbc05d5" +entropy: 818d3bb8ebfb32bf464775f7139bac0a5bddce80ec5798595992f9403002cd5d +public_key = 60e29047d95726801982a9349aa17edbe89d04a6ce4cc52b24d989327c855acbc39e6b9880a0783166af6d03043bd34eb427b4a8b32676a874b0c18da60759a5248ed4508abfd90723cb161e38058d4cc3b162c75261380c119c712639e50494bf195b0e6a9d4b22803278832d52a6cbfb542f451c777396ea0ba5c9d186c0786180a4a032d12bba793e2e29328c91a40de06b9b754a189c2a01404f2dc7011b036c969b1455f7a6c05b249e83009b52ca5ec643b92c0e4ec9469e3abdfc2b8dbf5638450aa498c345f126782a5c29ac7673a8db84b0f87086da21728067f3193eed391376317450a3acc5ea0322b189f56accb246bdb6ccaf7252c89be8bd846aa9d07995bf2c2c5be82385d77e566c90fd797bd9b2a5dba704d60341b1530cf3f60f231066a06590f6e3c90f1b6bcf5cb316b482c2817462ba2cd3ea4a5f0744db5128b6d07851e15266280414b6710fbbb7da113c8eaa45974c62bdb7b335315e5d093d11e5176f019dddba19b379399c7c88a9911e17d16fc5194b2a1998d219c4a5fb5531ea6e6ad37052a57fb5560ea39719c378b69c902acbd3324f9c29da73145b409a5f79c8629b4853f65d03eca0a8718dfb7295ae3483eee45bdb265638c0511864a0e471a34d839419ccbe42303fd2c51232246e0a6b81d9ab00c50a7fa656893693a8e6e245fa7b119a14336c9a0f57108ecf87a9c249c01d3a214bd42649e092e2c3c8c89a2e4d980b0bba5340330717a01f5b3abd426ccf6bfc3e5bf8969af7278b0c428cc39a36da6a7c0b8bd666a1d07bcd2845718b755d76fa61d3ca51b3b77486708606975fc377b6ee0596a6f37474b91549f6899a3c4e46a5309f035133aab371eb5599809bf32034a73c8d4c0240a306176c6b09135719ce9478d3f8136c189b715c6b4ce6612bdc973f40238994b763065d08308597ca22a3f4a43681cb500a680a476e1110005c6c6acfbc13c91abf636a7eba2a1f1280bf41293f3031a8abf8af4faa1d617a380e925861185a2bc37a806cb8bcf92354a26340481aa0e6230758a667020145057f8fc55b49b530ad5ba6f490c9a73b8fbde960a8d123c648155418b373b1189e10c9f91a4bb15592da329f61682f70e03143846b09c09da648454901ab938928280628d4a57a636397e5ca0f57dab388c65fd6e7bb5a9a0f3f95892973c990f393174bb8aa669bf28322f80a65320bc69b6460be565265e7b8af86587ad9b43f1c3e5a582773045bab8cc6e03329ab1a4e05b33afcf8009dcc67986831d0a60662b427ff5a7b9991017930524bf678c7d461e1bc95fd441a7693c3b842460ee186b3f973b35bad2fc258972c2c309490163109cd6c87a81a2d30bac5c6766e7d151da391a83a2a5e96904cf9f268706b23e8758f514072b43a6d7891a92e57ad6a9b82246a7f3459cb9cbb5e157a957b27c8192407e9820a906cbcad6794e16bae2b0664811400ca22941e576fa6fa1083571ba17884d5073c83b7a7a1ca53a90ac098eb7dd1627c2ec28d61f86fdba69308e27fa50515cdb19445405a3e6c720651ac5199a1085c8ef1995d8db0a43ecabb5229353316780f12258867c65bf257af667da224c271b02f52b8bcf4805bc2031fd9d999b3c825fff0f4c8cf37e52c6007bb4a2b63952a0c223185 +result: pass +ciphertext: 1e3160f57717ecbdd089c8bd9d1903423f6f4e6e07c12456a7fd0fd0fb18a48ff577960585daebec1cbc0ee508193dbc0d551797641b93539e55e6efa28cfb16372e6d2ee5056599b92d83b79f4b1897bcd79e1746f132c96e26eb689ba124d38e089c95dd5a965271d392850f9c89f9f4b02b23a747bb5055822ebb3302ceb9fe031dd419f967b2e4ca068dd1708903251b635a04e9af8cca62bc3e08c777255ae8a1a54c9b5474a5866f73c1db5baed82a3c5b241cc26401126bbc5fe31e2a732c7c0294b8237987c47d4141050db42d65b7b924dca224ca75902225c32b604a60269dc0a2607b9e0ba0be02e43fdaaf6e6d3d77e8cb45ed770a966772bcd7f4b2f529bbbedf80170dce8de6b29c71ae8506910f25386695c8eb9bc26f973ffc702f95a2d8bc2c5e543c0f70d68abc7640953259af277f88323b7b6b2f9fa4a4dd726acf97c2f251603bf7c4215eb8996ac763e65c3b5199f154a07531b83db902ab8b3a2e6ca0fe2432a7e8e6524b54a62fccb6168f6de050c1c3b4f2435e9083f796dad25d63d78d53ab346cbc2555e1046c10e2a4db1160bea5d6985312954bb7f3aa0dd77050f5152b9447e59644072480edcc1e03f2e689dd6657cc818afc79db2909ee8a789468241671ca59fbf771aaa3849285d45829e3530a319bdb59b8147e983e3141356ec7711755a255a65d917f681981fe6d3cae99eb767825ccb03ec0d6dc66a8fa2304ef441eb276edcd2c2a8799f79723b335aeb0118699f283e974de2fd19b3669a693652c7db737122f469dc7e13f968145c0b3ea897c6857783ee6f2dd934dff2f017f652ca7ed1dc67456c4c31d91fb38c1c9ed43eac6a5a7eafa49801717c86df8b071cbf3a3a24daef83fed9d5d2d933197a1f90564a74a32c4787406a37899e0542ada950d5f755887f45580fe0e7ee3d7a182a7a349ad80c3a4d7455e5f54712bba91d088c08a77eb569bca7c1429180ede008640340e189130e39be6c59d0167c040fd3849a16842bd67b90ec35ddb76b8e928aee99a404d9ae3701629cc5ae8282f5ccecc165a54b3ae806e32b9754245b4227bf10a93926d75da4c5765dbe2b0dcceda93bf6d8ea1660398c38c83c8a28b9fd57c6aca304b87c34d31e94ac2c4042f2c4d2cc20660bf51ef72bcc5958f3c6c1a1fad735790d89775a5cba879db78277d089bb18efe22354ff1e597bd83824b421c265d6ce4bd80a1fb3bbf0d8780526d30329c49eb123d21b2a88a68f9827ed27631571ba4d6b23655c2d3c325edfbf64cb9e1ff70ca33c3a1b1d303001cfe001cecd5464464f998ea6d319239b9e0f0b89dc9c2c89d8a15e0b510a5840c8c09d5f9cc18df4172e17b00ec65756cfe575ccd3e7cfdbb65285bf93c9e8127f9ea0c4b8df5ea9815a1fd78587635211bf1b8c97a70659df0423feaea6b33e3297ca0ea5e4c782d35369e6978d0edfc109dabe660a4a872ebd259cdf0b5200397e57534ef622de6183bb3a2e988c5b8239ab63cdf89a2581521211ded4badc1 +shared_secret: b0978add3085e1c972bfaf86655a287946f3853cfb372f6fa5813a11b6c4e103 + +# Official test vector 63, seed: "d995d38f934b6e1a7ca77c9522e3d037676cc939b0c8bd4b84394b3dc91a791f09d2d97199258c9943da955e7f7b26fc" +entropy: c92aa5fb91c980d9cade9ce99d4c75b2ffa7d6a6ff9bd59def1aa701f2a0992b +public_key = 7eac95cb2439a4d5171062a42523cc5ec7caa414654394003942aeeb720d4320c10d609de9c397d0790c585398fe0c42374ac2d220bdc6f507fe62cc592bcab77bb0a5f4ce73a380ba3640b4e491343ab7a33310e7f04c130a70f75b75e6aca5306837e9ac03c84b01c3fa4f5032069f492cfeac1585054a9fc4271da3636639aef3a065f2857a32d590e416866e71ab92d2ac27cca217756b528776a6319014867816d00837e476afc08d5da82293d37042709567052370b553cc925043957eaa3c34d2810a28163e9f4807b492301a4aaa232b1834db5932d20d8866a37fa312ca9cb129116634e95d551764487c384cf00b35682927808a28660d92e51610c68edc994c76a95549c79c162487d445293f0758a43b525b04477c2c50a47a963531b727964828c5b567fb538432c92a8c5a0be6136b9b05c2e68353d5787a0a455dba373ce60f40c4b48be8723ff760ece23d135887be491157b6b4dc8591b5046735c5588cb405057b96de0097f158c67223c5a854be20238126f1203dc59ba6d5bee4d7aa52f1a92441cb23340820d9afe134097bc8512bba1d2097201d6b7952641369649eecb884a4c35848314d2618c283ba9b343922b7cc18bea9cd1a4a3597c146d433692d15c55172847b9cbdda7a049ee455e5e43f6b18a80e60ca48822b1061835431644ee1b307d581add3b21df3367350bde75b1366505b0c88302eb1c6b164290e29204fb005f81567571552a6e22638a0018bdc94e768a9ecc7cc20e50ebc8bc9774c7caea9a1fbe1cc6c925f3fe70fe2f523fa9017b714b7ba820968b3898c1410b7e46fc54226c2c15056ea0ee2c071635b70fea288b88c9cb43a1faad97671e763d04b173426224cf217b2937246ca012edc14c529a2e2d47bf3b15b96804590e5241254a3b1e6a29378522ca0b2598491509127869a1a73dc2f334386c3bc7542f5bab81c89e938071892709f3744ed560c77d43d6ddc2537c544a4f64b19d55917165001bb74d93a1437835442c83b989bbc22ca67e6f96fd44787b8865f759419a409b78f209dc87a89e3ec883441c3ea39627c2524c4f88625594c2b0b5798386866a2c9d45c2d50d438d61c571564040893ba00a7752eb28fbf6b737088103c2a0fdfc87d99b978d2521949683b7dcc98b644504c297905d2417649c0a60ab70b5c674783739fac213f1ac5c5d69f7fe32c5995073e846d12da57cf17a73fb70fe8e7013d681dfb393a4b40922a654473c40b50249362e4aecd22515f256250365660177bf345a2cbd0884933b45d7ac67ef3871969bcf94570adc7bbc2cc948f82b7731a8bf0f980a3c373d30a4e85e1482686ae98501810c28108670078830254b7ccfca27bb0c57c56490e1a5b593816923d722d7c433534980293a1ce65219e0245a2fa049d9fb10fb54917ad82019a51212f0086afa520f34799a0361a083211a415a42b36237d40a5138c5ecfd7c70f5b084a05156df817071b709e745eb3e0252be9b1d89247b6917c72bb9e3ee78dcfb819ef5308f2aa4375578c72d02c348b16fde51f80602d0fe50da8bb5be6598fda0bb8bb1987de7bc575832baf123948215b833821afb7087a65014511a50e800cf6714ab446e189261a2a3dbac768c1e9e232985c430516bd8e18c79aef56cdb5 +result: pass +ciphertext: 37bbc380432e6694f627007ed8d97fbb1301d6b3b484e0e9748b2a8139a51cfdd6e4c610dae8a78c20619d5f9c2fdcd9e402c3fce6459fdf81d799a358dc312a792841a6888538f635ebd0e1efa47321c1ab7b83ef8a202385321201ea04de13575cc3e535a8e8f1d2bf01397150b0b0aa3d4dd9d2f569a4319f6c714f1ce71ef1521881c1413ec9cb86c02a71c7417e7745ec61de2605297c7dc0b04a5d65d21a22849c5b934c74b2acf39c7899b109e956902e8c89d9d72e664c5c733e7437d16a8535d5f7c8647359ba6b82872676531449899c1034a8e8e0b25c6ed1cba2b7525c303e91ddb814a532f265e88c1c4a07b9e0a602f4c50cbc63f14edeb72246611b65b0aa25462e76c99f84e10aacda4250d817901580a6a5b71ad65df385b8974ae98444cb5858e93f931836821b60aa3a61ee73c7aa7fa626583a0a448fc4d5965f6bb34503d1d9d2f083e38effdac841fbe0ecaa0f28f045dbd7c75cab756628d688bc7662fe2791df1674bf49b4c9d2a0ffc899deb2135aa358cd3d61252ff09a1460188d598b4c6409bb368f687b0a17ba5dedec59cfff68b83e0f27375f399cfaa3d43677bcce1cf338175871675128eda0ad04c03dba2974347f8500886a45961fdae190775256aab5a718a03e9b003d8b060afd8f33722a308f410a78323b06026d65a60d54012d09b4f7c730ffc53639bd36b510a5e24508f0f02f537f6b55a1e8f947b10dbef06ec6f5d1459d04c65db7db9a1789c160e6aa7708035f18db7d9b13d63cd8c248aafb2c95f2267d57539fd0a19d73643b481e9e8b8e309a6a546538f24cb99747bf56f62631d7cff279c4526b2b8652a5781728f63504a2935511b82f79704f2e6e6940a689ae13d6ec77202899deb2ed545b55188d0b132a42fbbe9b997d3aa146d44ab826fd548f7af1aaf8867b78d58355d072c9c46785850367819dd091ce58c1254e71f7d3129f0cd81b0161de7d5f455b1ca018ee5af5d7667a7ba14766429294d502d0d7d80d505e0f0dec5717f9532249933892f1986f077c5ab87470d583e16b79305f21bbac090cbb5e11d9bc7c854836b9dfe1f55b53daf9c7e059ea1c7a94dd7360404bfcddce0db43c050e5d866cb989b57c69997e7fbcc39960e2d86a48bb9ee83770ca896d9f8a3e74015bd0b8b9fe46fbe582553842a8b9fde8182f021cca6ea995190c3dddb92f6a6eb75786eed3414581a65b9d6097af2b4143df4430bb7c20cfb458d0226639c05f83f920050205d465a50ddc04b61999bf1d595422f5d0a4839d7ac808943fab948423600145ed175a1992fe37696885903e23db37f47d75fd690b7a3acde97335c83d8823d352c00dd0dfe3ec585c1d3b495f8b429e567463b870a5df1c992e7719ff348a541a39a60052ca9c78ae6fc1c07cdd57ba7c44ff595bff6954c3ac984c148ee6f2cab32340d495f56034e37f6f86612cd1115b1bdf495c0aa1fc2f02a5d6bd196de7dd7091485e842afd748e78972af4e3afe9b4b9bb5969ae08e608ae8d +shared_secret: b888ef3a969e162edab17c3d3de9ca682de60a0fd6ac97e1b5a54171dba12a3f + +# Official test vector 64, seed: "5929f02a271725cb40200de32d9d03d8bea53b53ac83186c42c7f565ccb1ca508305d470850cf86e9b2c61a5b8ca1c93" +entropy: 7e8086a01dc5b3bb9eda25bcc45d27f99874841b97237968495800e007696ac5 +public_key = 616571fef73bf834c480630b9532b244d09c8f936e951961bce56157f237b0919097222df3bc6e61f47d846479a1a5bcefda59cdd8b067d19db6d9586fab2fda9b550c5170c2772ad5a4af4a67a19d215e45575e83a8ba5f099e4358a9e493677ce177f36a0f594912b6b850d3f719c155c01b68bf1dc89ccfacccfc6cc38a34ce5b4c48d2e17dd2946f493a357b1105265153c04a98992c949ed774588925c697284bc537b4d795de0463335aacbf80b10cd0a03a88256c220c3d0074ffc6c8c913c919aa19f25206a1cb7d40a50c6f55960a2298881a71a1dbc92a69371dc9a95d45a7bd6547be9414f4c31ebfd3553b89cfd9ac05727b06bbab300ecab599da76a62b97541cb3474b7390cc49942678add66d265772f55515e0623192668fe4c5273e3176bcdc52fceb081dcaa4ed699dedc59b01a29363070567772daddbcf8605bdd1268882a355ca4163ece88637e932c56c43405ac3844949c819646e394dbdaa475e62ac0463b8ce257520b3b4e141057449621b449c09c5b72d10464e59bdf2702a7f4ba1c1c6301bf51ec41bcbdddc4a069abe46d37c09050b28b073f2216a06d501bc38640600185227a63d224589a43391097226d67240619e2804589f4917db7391a4fab6778c91ef30aa41655e3e433854a52c9ce8130b802e82204bbe894517f1bbb4458616b0c309020ecfcc17f6b69cd0bc688963af0fec8f567a86ceabc9a0383681d3729a612987862e2972b6393c2c93a32861073ac3eb1cc636a52dcc23e6ea0af7d3af49f81858743962978245db5a70c34e90c64560b87ef29b5b568a716904c8326481db98c81cca47cec76e32003b36b26aece764c5551ac07c4bbce094b6772b2faa27b518ca5b96094d178f68a7409992ba7fb776117c66e97cb0be6854908aa8203aa916d26f3118842689a5347ba29d337599799691729b812961720cb80ff993d8a124e2027effa1baad40a17b564b0412681a6005888c0e27992faaa370ea3954775949a553b75aa35d5956373da54da7eb51c7e68c05777760c6b9b0a78ff2f34312876f2db27898d3aa4a187110402537f2aac7373751954f3bbc5445da3907429fbc817fb0a732bf4077d4630c93a4bf6785274019c5de6c3d8a66441620491a8537ffa1a50f0baac622cc765052ae0049eabb20d05b987b303d17714c4e79814dc5cc9593bab612359d0c7a3bc9614d0c8eb4e0a7c740520e077e2215bbbcb693a92c0293ca28b4d0ce316b5e14e165fe4745f9665c36a651a6a8ac11a162b4a111e40851ec2b29dba05590140d28aa945b42310659111a4033f972bc0163bc26a5872957c6977bbf8d727d65a8c806b4699050c994bb85651a40c6d590c337c680306fc231b7487305c4155654471c3003b93c206cda82c19f7b047e12b5cb94490f4bc850c4668b366bcb23bff1a744dd3362e94cbbc658178a012d9b784d12e965f4592067b636ed3ca3bdd89c0b30c8bf798f2282c49ed3835b70ab1ebc761b880e0779b5aa34acaea40c83eb0babd6ca11398759415252064c4e70b62d4cc813d346ca789eb86b5d3606bc3239758a62b5f76a709b602ad6987228433a01a8aeffcc22d0d315d59b15e8aca53b02fd160c62db910fddaaabbc4c2df1256095317cdff9f1e7ebcc48f8382101 +result: pass +ciphertext: 30925699a42d6bf2ab41628a20e814758a8700044fab7c3b14188ee52c8208d9641636d721d2ec32ac32436deacdf6e4786c3ea44353cebdb1827cfbd550d209461b6a14b1170893a28e84205734ebf74c171d70ca82b20b4260b3f86f7ad4c2acddb7f4c8aa82c55d6d55b8e43575ecb5bca8ef011ba9b9ac616dfc7b3e3030dbb7a0ea6b45e36155dea786c6c2643437930bd8130d8051e70506adbc396d64a68553140e91f47df35c19a79a096bebb25f0e420eddad682d21b374fbc606d5939a1d2493b43111fc71384f57b8c03817db1f9e4d0e4c5e7157a119743968948929d3b96e3ecbbd10b5f72a9f45e52f6145509aad69f8ca70d55b28edb2802a94c2cced9ae537259072b55298bd9ac0d98db002cffa8e94f9494fcb4b2da810b2244670e00aa6ded8ddba746957dcc34d537db9447577e19ab7ff1411ff6c68e7e40a3575b1389d8817a17c8cde4c93e572316dd029f4f21fe3e62d477f52480bbb527820175ceac30ee25fbed3ae258fc0786aca81ee2053e078c6bbb30d169782c74fe0ba4c8488e2ad4c334dbecfb2255dd7be3a95992e3f6a0ed5cb1f86e2b99a5a5f64ae5c810f8a6e72d2f27f8daf0c60a6d7e994cd231391ffc7edb3195bdbcd5f63acecc14b6c7f19f6d889616e8e2a5ce63c3bc0e2209d30988a1b689c968f9402b49c0f881dac8ab899433872e423ac06f5b35b483859e45b0f6fec52334d7582a6149fd984237c5f14369549c261e8e7246664b21e05725f953b21b49eb33b7eaf612a4231efb0abe4bd8f36b981f4f1ef5a57a4d27373510d1bf9c0a5b77625314a125633233c6902260e705b4995ae34b6f90eb1298cf9726a60441ba5c8d24c474ef73c02583632474956651700f318a88718519e8c7baf48f4b571aae56410d6e0d83a50ab3fb4115a1bc2272ad443b5bc5e6ae3daad6797257cf9868287486a217c631814db311226b6122d9acd2de042a95b03983261bcf902a82fc7f6c0db0e293bba27eafe29c6947f35c1e0180179b2d2872a85a63bca18a9ff5ecd144ceece9a48c68b8b6775ff1db3b9772abdf3dd6ab6d3d964da1adb4a035ed097cfafed937563125c95d7aa851d6b3387d15f7b0cf855d264a46a6732f097969872e5c1bbbac0e0853046473deea8a0ae4cfbfd1fac86d5620a3b4501fc961e4be1949e3a258bdee7d2abf4424f0a401dea2f5b0dbf7a8c82983eb1db1f69c827d4f24e36fabf34772bbce108cdc0106c074c2e30851f85fd47777e979716290eaa515e69390e6a95038fb018f240bf722fd947bffbf82373bdc8d7d78d739e119a5157294cfad5ed0899e864bb6f091e861bbe785b4773fd9b6f0ab758f2f71fe292179651da6046dff6e51caf05136e8ca7a2a60ed74015e6b8a3bb5637884d6df4ebe24b523548f5ff7ec6e42ce750a47127d5d7c312d15699722a6234d9f6a8fd51b9f3ad16a027c0a2d56efcd4bab05f5efa3ce4004ba9eb6d36329edf625c18dff3a94c5a430c3a00828a9080d9bf166a5973b60c9541 +shared_secret: 2fc09a1852f458bc7afb58baea4d6e318bf6801e7804b98cfc250b0a1470c598 + +# Official test vector 65, seed: "905074033d7b75deb2d06a2f29144eb377b452534c5710632989f02d45312d156557e96d4486020826db200153bc4a8b" +entropy: bb321ef14d44d8698df879fd52450567657f52a2df8d111185dcd7d4f30a72d4 +public_key = 36509aa06326ff5cc174f51d963cb5e5b1290eaab649c91d1a03b9cb45400087248ee90f5b9509b9d44f27e814b55b5d7fd341bb663523cccca02c277f1a12f2e054008405dd7b8fb5b78f200266d62b00db2665a728b9231b99d957904d4278c9b99933972006c0afb2d46ab58810bd59492891a77f96b7e9d06eeac63cd9e3a2039a1f30ab0eb4e6a7dbe875253174f2519092761e9684c00726b8548aaf2ab3bf79c8255ec6c1591234672acad20c0bec4a5ff7b4ab4442c2982799d0203f1ddb53a260b95b51980025140556582a0c5dd9d20bfe542f79a743d45095b25c9565c1bfd1d82e5dbabbf37b934bd43a9af92ae5bac65570cd0586621708a30d8371dde11abdb8079616896533b90611a58843ca38f6105164b1de4b227b0c4b14749f5833c5f76cb5aec703b2eca6fa40c7bd224059a4938bf125653901d5d80cb4fa7213e9136d7c0a4f2059865911f68c19eff169af063e76887f192359e5e60516a92fb1842af25599aaf530b08a171d35be896590ef3a9b7878b4a3764a3bc2a800613ef1c2a31fec6ff7a8c8c4e0158202c4ffd35c1a45738d1ca197f23b8858a31dc60770e38796da35136500ec868e209217b9a10c7ae465848c82e815490da5becb32a55973aadc18afb2172c0d086de7e21d309226fd549219c0aae0c672bbe832c515811584ae3e4a59ba98a80e2a0386a187036961b4f6abeb6a84ae8b55b4e95cc9e812be00ba0925ce00ec3390e7936b52482b420b9d051f91a117122a0778c2434cb661ad59050342c63ce986e1b590d2b0b81ff4c3a1bb5a9ab4cebfa96c9f072ddf8332f5a3ad0a156fb5b6b35e38a595f30f2156815656cc487313c75952dcc12adb5b0528ca68bd53bcb1f750d5f24d15d54e83b165440528d83057fa12a983aaad4048c53c62c4a789b82728a94caaa50f7a7df6fc7d07c76727882fb8aab09811a611c5188dabc366494263cb8eafb78eb40a7f33763ea9b51318f0ac1a7a34be71aaf436ae4248346a7a25e2dcbaab226111d96d5d9165b946ae29283118bc34a46409f2eb37c469a36311caa843c112ea83c0364ec2b8b6e9ec68cb8485bfd87ff560912ff21c43d59a1476952e82a2d3f3a00cfb7c49a61e9216b728fcc30861a23e171c2c7954fd85528d911682066db1a062b50a5a11cc385db16d4f4b81785c9b8368575409738683847cd46f9389128414082c5515b5b3310658c54be69a6c3b02b5e0a1b6627e0512999862acc0b34340172a9a0b144627cac4d36fe8d71272e6ac69ac94d1f8c250515580b85d8ab300bb29b43b02195ea7c966947bff9cc323d017b48bb4f6a88b0201956e095b8092b250b53dd9f58ca90b28eab574034372d9f8305b39668bc90e2b6bb77257252b0bc36ee68ad25a7c883691a494c5626b5bd870c45a06ced4f39fc7e21958811a7b7cc93410b2fd8245b45b7462f72033d86ef2fb9b173397bbccbacaaa7177760202a8748b440f82d49218331c3760918c640dc58073883b5721548ed6e529d7f95e02a65cd7bbc3383317fbb166bf751f47fcc216513742596c2e9bb75ee80d2dc16d036b1d45102bc2275aa09b8800213f67dba3987a2f5efa1ae2c7868ce276c5110f462e65b39b2f4f753b3a3d41eeb50f7aa17723bb620b800aa3dbdab7fc +result: pass +ciphertext: 8c7069e91b0600eb165920b709b2d3e91971713faf427499bd83f286ae5c72662f583f78fc9401043582106b94c1c39c8f9348501f0c0fb580c3a40bfcec4eae177b1d73a76bf20ede2695a5a00de71403734584ac92653eaae46a696473e3b356addbe195d060888a9db895fb18f5319fa436b40b9c1d8e073fcf305b7de0d2feae428d32195c502eee3b5105b925460700ac87a55745bf1cd8481274ad8168a206b64c07f290f4433d8fcb9a068b5ff77d81d50b177605a96a3fdaf6566d6ebe5d793e8bf87be1db2ce45d61abd3613e363038cdfd4d600b37db3881b2c56f8f8ab7bc48dc86f82eedd207b7568c07dc0c5f1d656c0ec4e7c2f157587c7c2b76dc1cea2445e19b05064b9257a9137debc0ccfa0fbb723c3f320f5a8cfd1d032971336d1599d03802a74696101f8fd1b584102155c46a4c7283a6ec6e6bf9ad60e286277e05731e105b76ba4f992f37d30d59b4c224b0b44b74ea34113f6346a481977ebaffb36c291fbfaa058776effeb17e11896a22fdc1d7649a11e33cd7d22ea7655b641b5957fdf542acea5aa2d7667ad0392da7c596c8bdf38954247bcb6cb77a6e66b509dd55c2904ebc3188a1ba8e017191133c66ce9c656d7bec4464f542be009e3850a27ee58cb4a5374220226ce305cc45b98fd094dc9e2dab7acb5fca8d4563cb156f81800824031a6f342f6dc83da64184028a3a90d0d654eca4814f034bd1a452a41564cbf5f7865c9309bbdc34702a06a789709497dff45644cfe356ac9646c3ccd6ef51e48fc81b518e90d9c4f68035f1a878c893b6a7311aafa3f8a4ba6e194756e6c392dca34d51804022cd6bef7cc06eb69ddde31453387aab8c6925c7faa30bc6466d67c35512ff3094dd62c0b5a3316e8db4d8813a3bcbbb6f46aae9e17dea7ec7aab80dc9c099bf062e1006fca6cd8cb561850507e4a0760bbdbddc5a6efcdcebb861bff73e61bcbf51c7d150f5a2a531034899eb0c1975b2503722325d0229d710948d68968d662a8bf8e73a29d98c8dcb3bc128db82d1bf1894fd617d85ac70ec52214b348bc08cdba7a5ead6a7d97d2ef640bc06d71079e5d4626a4d7adb058170a07c224d123f8e0a11836696e95d5180e43169aa81e5b6e684b5d4cad7c29379de9eef671ad2d7dd8d4285a4983b2413bba4c1362a3ae57bef857d2acbf492e1ffbfc93d71fae367adcdc0bb96a76d31c4a72f5ac2164cc627f86b8dea3c175a34ca0c8b9c10b25ed2ff4327d9c683e3f9f92e69a41c59d7964d8396d06a100debd1b6d6e1051cfc17d8f8b3239ffae2d10f36904089654edbc130dc8a5838ef8daf78947800fcc084db7614afb6acdc3af16d9f2c80bee61f54d9b843d485382aca76fef93b64a33c20ec9cec415f49df42ab2799ef3b1a05c37584c9c5874def12329eb9bc047ea70927f5adeafdfa0f24e75ac4e7c4fce2d96f774a97872795036c69e6c412a4b4fc0dcda336d8eb9207623b7f263870a705df4ec5ef264c016caec1d496d5f9859c1f331d4214b13b1a +shared_secret: 930131d3145d5485f06c16a9420a612330843e6524dd74654a85c383e28f2cc1 + +# Official test vector 66, seed: "a3e2e511afa7bb560446bdadf67d2ee2e16ffc7baeae7efb8c5455068bbd4e91bf9be9d98b280072faba7712c75b26d4" +entropy: 210a423dadd899b810f011794b79aa7f860823ac1962370e791287d3a1afa384 +public_key = c5e450ab970d5cc6678db12ae81962959a3d68d8a4fae40ed343cbd2e84322e2342cba7756328fb5c80a3fe07295db0e136621f8acb8eed4685cf21bb28a7fd34a9c6af4a8d1fbc8db21ac4d334afe1b71b87cc1ddba5501d38dd7e74c6c502ba04b8d1039322734418dc438fca99d0bf44f700ca473d07c0ad5094181bad2e90910c08478920461c750aaea6658112933753153aa9bdf090ef91a3f08e7c07278369df0bea9220b7d4c6b6f6a7135a5084aa54ddd270e9d41128d1944d8e7c3e1ac11a4089fe4541324db369445b5afecc41406b277e8bb93f310de57b55deabd8d2ccd2e9a417ed916ebba260e0baf95ebc0fbfc0a1b63b6f5342b3ed7c1ff4135f0a26c3daa7e2d60bbab8051123628abbb3cf9fc6369a46d4deb7ec0032847d7474356aec9a417cae8b62c9c7bf3b077eaf52c622b6a2bfa6ac49a9cebacce996a29f89acf9349363606a86a6696481233c73b273e847798b530b8662194896e22ebbd8f3640864791964069684338f453710d841aa83a2997316fc3ba06e7d6a3855cada69c35cc801cb49928ec66a56cb8a28deb2329d75c6545251ebb8526903a13f5174119b9c2037b06c165d2012723bc817297c42465cd77044436337591f239153629c3140b0ca85783d2460b207268f013988176f4c22d8ef5c096c93a52706931b4399a1849488665026a615e5955d972429eb32213ca16b587b0f7366192366f523732fb1127731cb06bc39f15f35b1283654bf361f403be5a9ab154f786080cb8ec42c8ec356847839de84a23c6e4321136477c12b20ca5642efc84c658323f90c2509b62df865e54072aac311a6d3b4eb9073b17f2291001a37e6ba438918a42663bb4d15896239f9f2b2d17a5c93c024ac595806620a8891b89f7297901a9b63e7c799cac22a515bfb3ca9a4772a5bc9a11154011e4dc0d758868a9f646d5390c631381e8566fd5603902c11686cca1f876322cd7793c338876d82008eb30f32128511a872db5cc0ac689c75266d5a9bdcd889f73dc92f1dc5076f373be64308012553d3109c7b5b2a819afdb93bb3447c878901813849c5fcca97b116ca1c2115961ac4b8c926303bd7f502eb299421cc9cb82f556327584118c6930e03f4368ab915c3df0a46b08518cdd280e17f86824958f0ca8079e857d8ba9a522a49c3f539c845968faf37e4beb443b577646967f4f824c2a706b3a7b74866aa4bfb83dd8e4356dfb1d9f4678a0a120cd2569101b034e36bf24a58c690b69ea27ca88db6645682c13b57d9a397b83772c5357082dbb6981674a772b6a94d0210b14a7703202cff38419297edf92a305a59bc51a022919b1b61bc853abca39721b83a794f1c27d17da71a205571573ce31ea27f81b744371274d6a8138b69ef967adcc75730a652f134b0f198b86a2a670a96c58d45295433851f61850d7b318245849a140a407a60080abbab77abf58d8c46f2580716a0bff0481b1973c804a406dd2bd08370ccabbc9fc7557b26534cda249ba1b3afaf2956f10b0b6ac0a7ef02252f5869a972142e06b86b64684b34b2592bc91b7c5b24c14d232b81880b3844409c6038e06023321dca0f2271144373fbfd47884f3ac96e4bee4dbfea5eedf79fb157b32e2818048bcd9b8e9bb89118362e59c75b4917014c2 +result: pass +ciphertext: 2ed0e760ce63fb59cd94fbb798e752d1d553c736e988de65e2716c30f329b7fa287ff0c677ed43f3d0d674776d84d36fe6a6513586a2e2bb915231481ee01d1ea06dc158456534e1060f32f06022190088e8fe3cebed9d3cacfcf7100c69d0da846df24011605cf42c2cb69dcaa578ce8c39ae68f2fd5704438753348b0fe6305350b1ec520d96aab367188162f8988a47987421fcb6d03d5e9f47fa6333b761b95aaec6a38593e512786975765247f2756ccf88d5238ba4ea61ebb18ab3cdf5649aeb67382c0a232b14489e803cb1050e1ef6ed88c6f1916524fa152bdd22b361722dd5d158025033682fe3caedd0809451b0f6c4c552f0ddf243ce5295133e424ad4fc7a7188763a08543bd3103a7480f467a7bed7a153d40a753dadf3e7af116cb594923e0c5c4c5d8ff27e0e073f84a70b1d1822ef61bad30d3ec51c9f183b6d2967a349e674d2e57cd8ee1a5ae01b37079aa4f2064ee5df394eb3540eb9b636f228f3c8f3b4a8fdba23405e36cea3e852c076b4fe53f7e877b1bda1d72396b93cdfa0278c4445b88e4d0a72aabbb646e6b87a01ec8b7739e7149c0dd373f818373b80edf7028b029eb1abba49aee7c4a0e3f290fe23e3a8487d6da923c61dff69b6bec01cd2efe0cf35ac6855fdb58ec2bddda165e99ee1de5e183ac2568ac47ec30668660d2d7613ab81824e049f1408e965b457461a7849df2dbf8276d53804cd7d9934e482dd6f3c6f167d6516c816271cfc18a6438aaafec7f87825dad2d605dfb26874f7226906a6e3514fd6c73ac0f8524007b7d5d32e6d540411b7d9ad667c5271f1c10834c7f64266d9da404bc197d3ea3ed17cc9fc8ed65e942a836c9ba4c2c167f4926158db053dc7efe70e008c2c9844533a1912c42266e7ef99f9769104ec6d7612854d3064878f02e86e65e51ce80ce5a854c4b92d0ef26a70e75770cdeda1e63dc2d7001b31fcba3a561f74d7bdd49e6559ddaded87590bb38ed03d9fb9e7f8824223fc12ea3642d42886c600f0f592fec815d454b7f0691c3b83cc3c8f1a014f5feeb2cd04720ba4a4f6577c45ea5058d20da7ba8ac58e6f8a594e7a41a91252073ec24c473050e82897357653a8b53440824c8eb26bf4e3140fa352819deaec7e3d5f8840fdc5305fa92ea8db24063f3835ea8682df449f06da48662cf06e569ec327d678953d99ee7d169c6207219ca1386af2fe4f527f6a59da051901ba6bd6798606e2435cb3da1760e135869972eb29216cc03da4c581d553765c2fa3388629fb7a8229a4301b7899e331eefcfed1adbeebf2f86699eaa9419159e669d85574bb76b1514f4092673fe4098ed54ee2873ae07cfd23104bbcf189f6c8b99b11fd2b40e03c284da6a4ced499dff116a64feefb1c07d16492481db67f72343df92b9e2a83246e8b5c31ac69deed48c019fd8633532ea972b992faa50715382e340a1cc829e4f64516a8a840b1c55688c409ca7fe79ef72cacc4ae564225592b66ddec1568b40dfc44e5895141362a3fe39e134d70b7 +shared_secret: b276a4fb4cf77eab502dfdf56eae9f8a8ff5e7f5df3f6cfc80614b193c87f08d + +# Official test vector 67, seed: "074ab1a37ba5a0403d8f68d26fb787bc2c90f5ef88f2a6d286c3e6b168abd85d393d8225618608b8eeb301d26af53bc0" +entropy: bc856afe24213e3d14c3d6f9b89223bbcfb2c890722d770fa3492c1e46d1c302 +public_key = 08f7945e6597c9872b0cb4b1401288d7915be8e3715a8391a486047c15b4ab758c8d9b47541c3411417a439bb2144049744460810c01b778879425077e91ae06c1bb831c75e9d1552264a6543266e769b898b66644ca93f9da7735135d743c62a3876c0c891ab71c73c9b88b5cc14de0238c82103fa8f634902a01ce5b15e7823a36aacf6a05639a812221085b38b2ab933a12552c268ccca3cc07cb4e1ca03cdc02b1a5a8231a386456b26878b673644bc3c1613090454b582d5845268f381eb0e70128c1b06f356a9da736222400acea7c58216040a1affc5771081743b5f0721ef2b601a651d8a2658eb9c5ad8599c2f040f791ab5d93c6067ba30014af51766a41c70be6542b7224767301885a030a8d68a795e9924ed844cba1b696b18c5a64abc7ab83a163cae74ca186c01cafb53c05fa535d43786679a429677cd3f672b7c9cdf9224030b32c3a147ee0b2a8e50a0905a778ad9269bf04c2a801a1d986b15cda0ec2f51deec2005d450bc070c5e9e2a9646c3a6029beb907b632f17163b260fa5b75944b00d776862c3c362d06b7852ace9f93afbe9a4d77c548d04c68206277f569875fa677921c671fa887b98866e8c25815fc09d194adcdd34430e2c3725178f6c509fb359e5c3959d72b37a52c303490ae22138dc495bb2bf0c4fefccc89eb6b70764cf64cb2b02699e84a562f076dc4221153d8bc1dc0a29387a15da95eedc808c666b3caf04882188b5509106ba5ba1869463834b48dd9a2d7d6b46de1b83834b7db556a0b624869641a7b77c1f15291696798fd0cc1d01c417062ab36548f4f7b842e99a85a502d2ed70bb82037fcc6237f058d88ab2ded194bc6f65c723656474830581bb92f196e9fac65fbfb0e662c34cd1739ecc28ace01291f24701ec6a836a11f54d44fb50a9150d9401dd96c39b1b02ec73b86827fa1cc39d3ec5d5fcc4523a948a30bb1da4b3588f029c11234b9b571ec3593e82a0cfd428ea68b727622464fcc35e3dba3bf911cdb717ad690147ab70def66a2a66052a3844b7f6866c1b4bc80c106d3155d4bcb8c13239fc96241cb1b092696a50502a887547638499216fb31379a45bf7b43f92175fe282d98d7a4ad22844661256b711228a31fd2b01fa8f72dd357c455768a77cca28e6984913c352726176e2192de562781dccfda024fb4315eb5b14b9430bf0e783ad77a763b631f6c03c4b45aba24a88e85b70fc3b1c3049447e688c3f2145072460b838546572a42f4659a71a95392255765426451f137e8b4ca64b5c24e5cc74a816a988447ce07886cdc59eadcacf5cc5b17b4b0d058c0b3b610df489066e402ed63a5d155161bac9f2e82bd0e18cf46476935fbcc0daa0ccbfc72cae9b217d3adcb3ba7e0b759aab167ebf40f6cf92eddc17ec44508d051a6302372faa22a993386201827bdf3a1e932c093ba2cd1bb347096b53919218f321bd761abdc6ca5086c51b0c471a6c2781d1ccf20bb567ce472fc663ab10b75bdc6642832acab5c5d4db37a46572645a166edf46ac243805ac78e5c483e25624dab2aa705b9b3f6d01bee692351fb4301c562e30a513f6c73d55c0bdcf439f3f62f33e42f7f876f5314cdedfb4526a075924c59dc03d5f604585571f7e69c7c8f254bcc5af0ced187401efacef8d61e38 +result: pass +ciphertext: 1a7b2ba467c4e3689e34b0acd548a2f12c8d237e4db6f80323b459fdc9d57339fcb5ad82c1cb58e8fea26f2c2ce0927a06c6d8d320ca6b55092119b86fd3fe65650cdec9b478a55a4060907bb0ce8807d964223aea9308c02bf025842e030703febc2e3e11fb99bac1e31959f1f0c3d5a76826f3c2a0e0effe131db6f0245d97518cd1177386bd7e06a5998bbf082fad47d0d7665f87642c4c7da2ce9e1f3c99e1e8cdab1a4c0df0ea0afdff801cd61dbf6d089d68d3188fc3e0a9842b6b019b25dfbfd1a5901448670194047496b70a036abc0376b9f09443497f470bfd9f44f0546fbded6312c16bd3dcf5c5416d9c63df9fb35d22c789b361f069524ebe04e237dd25c8cbc483956fc7e449347ec0d417ae71e6298fea78beb98ca4a7ab69f974c00bdfeeb40c99c102ed61f1e3d2f0250f33d8c73d74612448881c0e4f19824da0670fbd504c3e9cbff4cf41784c3c77e1acc326247b63425443759a203084be16fe8b48a4f09912be9e9db95572ce110994d87ce406f04641b5f8bb17e95cc62d3a6fb2ae6b6371e510356cd68a1876a1d04c4fa0a4b7a2f9ccf7b822e4cb6700ec5071d935dbb67221722b6664278f62093f9638759cf8d6d7b48e08310f0117c1df0500aa58ca8c3f719b84d9cfb803d5f5603bd06928375f137f98fb3183bc385888efa604f8921a9d3fc793e47abe8d7c5f14f143ed6d98f3c0c3e714d2bc2d136895dc140cafcb083375445e77f3c458e4992b245194436d2b8c395e9c46c499c03d35f08d0526ba24072f841ea07f4225583b05045f61484cee17f85b95e4193961562ce7b75ba4739b3bfa1349818ce3756d4732a85095ef613ccc05dae62c8d6d7181e213a3a601f0b9e81e2863fb15ab07f88e7bb58eec3a647fff17c2ff56db3bf13d721e2e9646eb05a20f892d66ad04927cf63293f8db9e97e8cef9c26583a1aea7cdf4ccadd9c4832971d669543a29fd9deae308131f8caca69c3f2a42bbccc57aaf908789211e64f7b51776df405e12803f434758409ea9acfcf4c5f4461ec2df8df49d993766d50858d0f6b7d0def70b4103f0a38a78fac8031624eaa5ed815373e3ae522f3afa3dca39fb9a75e86474b81b6fbb994caaf62cd35928ce5f73606a88ed31643a6cc2285aceb3b6afc155aa0a5b4b92d6e2605a24becb65b15883df261f9b273ddad943202085cd780f4db60aff972af293384b9d85c6b3daf2a3cce8490b7af695308c097d07e41afdb0e2337cfab9bb097e61d6c9a038b7203b63b28c1224af0ae62241fd9e2a17bf0e12f45886096028993372f00ee59c5b55ad7e6e9f1048db860e0440445d61322e8805e15557e2cf4de9652e109cb35d8e652dc06bb19c2420ccc23abeb44dcacafd9829d34bf74d66c67e7e9adfb6c12ec99c5ef9c371b8169bbde8fb2ab0da650937fe4f7c145635d84096076c17c911a47da0f35ec71b1be995bf500ec1afe7fd6e8aa221d61ade2788e93aca60223dce21cc98257a2c8460bac2649c7f57af835495bc7c2d +shared_secret: f4924920e64013fae72cfdd1e94b217eebd55a011f6b7542958abb297e4fd180 + +# Official test vector 68, seed: "cc0c86cc0abf86fa21899be1953913c00e7c46e6b5f730c4e88b3c034012763981d7f14459d3081638080378348856ea" +entropy: 5fc00f89563e44b24cd67d0ce684effe5731619fd08e7d72e2406eb016afb66b +public_key = d743a9918c149231c6bdf338098c07f21064775b6700ed30fb2153478b67b0f344da35ca35e4b7c289a503d5ab9eab6e374279ec8ab67b2264d7b9b80d6bce26098a305734e44342a5078597f3bd574b931c3c74461c8da856239c24c576815f7f48cfc026baeae328a8207f5091cb7248615ac076f12763f8b63c0b75a1ef075b6e1c61b1c3bacb9c8895286e30729ce083b90df566ceba4c00e06214c295ab2b95e2b70032e04422572c87b475a63b53fa84ac9fe3c8bdd3cd06c13859b263d22a588b8126f2c615e3a705e0ba960261b47638a9e83c5bd3f791b362652290c5bcdcc4f3c93909431a4ef875c5e30f0c311e5e8344deec53c3b4bf584932f168710f66cbe718886e2ace059034fcecbe39d50d012c0ea26b8cf13807f1117f32661cf997145470c8aeda68022ccc43d1bb66732f5966c11ec221ac678bcba824f43c3eda94401c17c4877490e4393404db53a27b1dd3aab78e152a58f3741e1bb1b9a8202df64434ea9c5a8c9fe7584ea538250da92295d3a4abbc3e392a36cae9af1cc51095b2b2dd97ba7072acec4b7b83bb6d284c5fb3fb634ab3012e8825f8748022d8cef7367ae46b021df68aa8239d06c09fe0555e07dbc356293d41bc4f1e133ddca95d2298b2aea88aea5637d262390a79980220095d7116447c5d5b6ba2b962c794c899f45860658a0a530c7669134519a501e5a0759f9a50777a2a6dfb942f98b50067455a7b692fb1cdc2c10f64e9114b29cbe173ac4fc2adb95c550ae7a55387bf01ac3c45222fed7bcf9e240a6d9b0d088c032aa9714a6a55c692635b6911d92353c68794be250dcd65782a6674f87343a6654324f47f5ac9b384b22766d0c96852753a4449e08371d5128f31831ee766219e910b1f6267a57bc991da5b2b69a5a9212ba06ac917d45c9aa25bc1b513f7144217e84f1693360ea0690e51688a704c45cb6b1071a0e9a130abdb6cd3b52b8a429c33d126cfc10c73c928da9507aab00950f37e9bba0ab981394b137e337a88249100da175fe9299de1d1130381b3fcd265f7b36c00959b5bc2c150eb7dabf05bdf590e32e063a01a7cff6a9a22c56752c8b948502f3f8ac5ca444e10bb6bead1c7557b2bb2e37d55646455162806a7778b1938fcdb7da3e64c01c4a36a847b77958d27ab9defa6256b6a30a9b9962175c13721cd28e979e0d60196ba8c3c940aa4718d39a9b280486a6c2264640c4b09642499957be9642b6b545dbcc868098332fb103d75e38eb7ccbee64a341b38b0097479c019257be03d5d290e89a6a6f0b61039b128b46b02bcd750a9496ec4fb8dd6378e1ac77aa9f37a75d072d268c365725926cc76b58b9da040c173d7732e1401ab222553d6aec7911d052c569c59393997372e548086abb4de201ac1c17f25d76fb58c4ff3380cc5965720b989f4aa252623c215369076e771fac786e7f0ccdd917da64126fc610eb76948f97a5c3116869a11a46e612d9df04be0b1af0e8c8bb46607ea4bc4b4b04b3f79a30a2a154691a79217537b97a7dff6ab4edc9e2ad6cd97d3aef52837aeb232f799a3ce30a6adb88f6a0aa73fea00bf0146cd5447c6dc483b4955a0a3c241e7cc353c2c7085b84c5162a49e7d61a2d0e85a009833f3eb2305d7d435e2a4c81f358aa8d0dd50628096f4 +result: pass +ciphertext: bef3076f55b44ea1791eae3b2b28d4fc20213f11983e57b7baab4f674de12bfd5fcc10ca13c4996002b08fe7cbaec7a5b6cfd2048af1cdce87ebf46a44167cd5e31619f89f61864f2b6a613d25781d4435ceab63a9e36a7e47cac50cce866da5b5646c45248c9d9fbea2ce0a676fe7477c09d19052d3705e75b119204c155be6eb2049a1d75d6299568c0c5531becd0a852303eab69b2d0a8cdcd54b9cf61df91db58e374a6af5cd82704ce859140794d35de86c7e8fa63b57821b9fcb3da45df3f6a39bc2f5f600358f83e30b9a492d1acd2351f6ef614b9a4393ff8c3961e62c754cfd1fa877534130892a90ffe1d91262daf0f23dc0836426d6fd2be36c979fe6c0d75eaf094f23cadafebeb5271d544afbc2af4bb54c4524d2bc6482d5f82b82551594cd0780d37409f1412bb7f9bfa0428de5ad074cedb4531187db0997adec9d23bbaabfc9b230b4c14dc9c1b1180feef555c012ff85f78d24c0f26443332b7c0ffd49e7d511ad1c97d304a22a1188cacb3b36130589d8dab536a6f107e0ee9c939ea9f95552a1b2c0a14be0fb38b6d8df01eb600de3c5c66996ea5de0ee68eb24a170b6e601b65bcf563b8639e3cac74f50c6729e38cafbfcdcfc48a019eaa19bf9fa44fe254283e0153d00c4d8232bd3a621b3ec7a6fcf353ad767783c1beefe4f233f1184a67fa2f552a70c18da11d04c941c2c8e5d5091dd60b3d420baf14a941be26fbfe9fd2866b07ff0e05facc01f34fb53597cbe5c8e9ebfc2c6de58884ad77825585c339e6b983cce9c08ab7d2b0a55977d0e555939338713a09ec9c4783f29fb8652a688b9f3914bc5118397d9002a041b0ca41e170c52cd1cb8076731329db332ad3dde234e8a7adf5ee3e27bc905474f6deb6ced6846213f1a58ed38b6969e7b2bddfe679bf0a0ddbe2c6535b6f4ed57b50e49787b99ff2147af091f5cd22e3bffae0eee925e824170ffc7332572bf330b0ff7478736661284a69ff0e43347f40af1bbb11366a1a03beeca2bce132e06cc6b7538f37573820723aea8926a3be13a7f7c73548697e3b4f87ac0872472bf94b8396671bbe1542c869f188663c30509c45deb7fea82312bc4c8c5952693901275414a9e7e3de7649a8abbb9ab172189fec7b79beffd7f752885dda73a9d1ce2f707454bb13905cebf361a338c13dc090eecbf90fcd873595ed951d1e289a98a3b8901976e8248e3a16ea05536be87129c1bff0f17696967b55ce7a73cc7e87452fd5f72a4ec7857ee82338d7b8d8aa2794f45a2c0b09fc3d69463e86c1678da047ac48adcb6178582c78ea3d48730466b524acc2c339b5bdb5bee3786c7452ef23a3e9c9501df43c27668b7bec57fa7df4198d04a6ae90a895440b5bea8cd2aa810c145e95c8ce51c017ae55341228a75c3167b93b4b0667d6a91a4b66bcd98c3598634730b78bdd9539d60b9eb8a5af2a046c2a8ca7c9618f845b941f920532fb0726898f8427148e4f5117e05969e88788ae6535d20058239b321bb33c5d6b7c1a54d7017 +shared_secret: 412bafc716efe4ff928d9a86ea4665dd841e2f102a8363b994a0faad63251eda + +# Official test vector 69, seed: "6d5a7cc326ecf3983c4e7683f45263a37f692f3bcd2d920e1fd9584350119e74f9a3f905f70d3e20318c1413de2a0dea" +entropy: ea22a76065db4b565ee1807fbd813b43bde72b0e08407fb867c6a18995025e50 +public_key = 8e4458305ab8304a53b5c47b42911ba1b011c4da11c08b281e625f6f37815dbb1f3908c4c1646142b14d846b8400114face5cba669179ef121436a1975845652c5cb4ff62fa0073738f0264401adbb78b44e61619977804aca17deea16bad48655133144781b196c2a949bbc9aa8714758061465a9cfe09f2a1316ca875523e07fba515296309b6b7391b8d192012278d684b2527318f30a7c1e598a05027409f65a7f36b57f693a660c7a9f2b0bc38420128b87b005b5ce7631e4a10ff858831cb0112f5b6f04334565563e751820da374ce2819e4ed9bc5a959eedc4052c502abc54baf3fc0e426b77de7a274f81451070042e70c19a09421454141d2600df76a740423cb887065939cfb657a76785b35a5868401cb4d88ac8194769ad2499f2f20ed2a188e8e47e918cba7342b4c8893fe411b47b058b0070771161970c4331ef67be34bbc4781171bfa19d51e11612f93cda611f4ed88f85b87e8beb6359eb410e7175ef6171faa03e29e11ea8a6caf023c357a87afc652a00cd422020295bd34170068d31b7a058800026a49fa1f7523ebc5544389cab259815114d4b01d089d3cff6956f5d0b5a9fe652825b1150e21d11f562196892ca41941b46018ee73683e008525059496a07bb029737103b729b1fcc13ac3236b47c63a6ed4458a9724ef7b62361e75ba726be6774cf6b3572657b2a6abcb69182cd3b880328bc4f52c075c150bb22aab08cb2326815712ae20cf1f257b9e6ce0725782e9590191b2055a45c4467c5e7d70c35b8a61a48a317022c298b612782203a820f2161844f6a6fea58ca9f230713c701aad2700bdc951fc9bb8f560db9e99f2849afefea6c366c982f3680dea24891c631a1032d9d884a5ad9a11fa8331be85f1c91c6de2b4143ab403b153d9dd714db314c683ca24cc45f86c2276058be32ca1cefd4116ba386069856c6128ca86a63fbf6c15e876d63f738f847a32166b1592c3307d9c6190c5c42b7ab756ccb394c7c26c28fcd158bfdac9f04c99e30254d500cd0da1b9f2b74823f14283a888bdff45ca218b89b9450fba868ea9b1a5858509137160db31aa292863ed216aef822123c294a825e26fa3adee0291ab37c1462c89a4981949bb764f4222b3527dfd8a715682d159ba380339971857272c7bd7442cb73739c450b58cbeb6936b8cb619654037856935376acab92026bbad18c512dec4e19671180599e01651f008c3a04007cf02535ad7608e1e9257fbb04e419976294702e84341531b95e1b20c2b152a4d849649113c69a8f379b5d72aa86e01a4c5202ab2e276712f1131c411d4072cb45147c562c60080c56eff7aa7d90c4dc293b01ba935e345b88faba62dca043d94c4a666786c35f9318a579a9b67e429144240d206612a6d802fdc24aadcb42b0db4251e06df92a67e632aa4a29000a77cb2fd2959f851288464c824872ae6a9fa1bb3a71d8879e303c51445956ec8ae49c4ae6ac4de2047edbf3c0b23a29b8b86b83cb24530b0d17739331292bab85868e4a9bcbb2b4d4514e52d9afbf66172ae560c08c7f9cfc0c98ea4ec9c785ffe76ab5098e9f3c5ead6a7759b529661b50e0368246c5afbbb9b876c8072c1c1ca63a4e6607fe4286fd2062614fcfb544fca36edf0785c37bb6f5fc33e2b9d9d03a0a6c +result: pass +ciphertext: fecf9ab93b18fa40d1b385b0932aae91f8287348567fe0cec26bd6ccc57741ac3a23439efe62a433071d450e20818cab881f8ae2ff3157734d81c1a5296c7c75e0baae6501ff0631453303c2250dee03eb68f57ebca08aeab1a28ecc829ed08b67b78e248b54572d307bfb0e38c8708bb63da4e421e96381741a6a893c2ebd13982d26e223fbdd194bceeb430b8aa6b2b15e7fb3691cf4d5145023fadaa79e63558a9875d94614eacd3ff5e143dd9d93cbffcb6b6472ece3e56e6d7253fd2300b6863f19eb8e222be62a91386d21d9046b78ca2e04a38a5f028b657e26d222ada33f4ea5bcf62c191811f34beb57668f4057fe21509cc139b56ec566f8bb79157177f0680d4e5c861a3a5838233085cd80bb193ac3e06039f1fdd31eb5a025fa55c895feed3ee6bb484de762dfd614bd79f03f25fda91b05e74ff87c61132b1ad280f58e3a8ecdbb043c46d57369143d1b14ff04f689d1ae905ea93444994c09d02af7ddf59c9873c19d38ba6a66bfc1afd284e598091e5ffe6e6c3d3f0a3cf600843e2b2ce86ba6e08ca9f9fa5340472641ca84fdc047bc3c09a18e09b88f8b835707b036dc18a9ac1d03bec88950648f08cf55c924c7610fa604b686943f788611da45824f150f4e8128fc2b31a470ab59142a016a1fd7b95361ec265e3542924524754142ddc7b4feb75e849ae194888067257dd1f00c8e7f532fd06af3dd6d87191613a591707851c1758b81d41857e9a746324f9e5fb64d9ba81c33e970de17553050f639b94be0f5c4677e98514eece20663ddab722e72a6768312bcab6f5c36f1ea51f67905f433c5ecaf4da8a1af5581351d62b3dd46bfd5db9df29980ed7e522f48f4619ade16c4f0662366f0c0c9bc12e08d7510f80bdfe9577f93542341f0811de4aceb46c04b70322813d5e1ad9068c017bf2f769753195004b29c3cab038dba1b579c59e18fdc00026baf842b5a57b91821cece116b88685fe95bda154e2fbde8f49b288a2b50a6844fc2066e8be7c277623f1d8afb734baa94e7bd58013ade0aa6752307950f7a5f233e86369c75b9e34ba32360c52d1b58de44fe2945db78368c1137af9f9fee9c53ae99092fbfbde12e23bb7cf3cfda6c9ca09a203f6360bca6ff06afb3f040ee198318bd14a7dad4da9741253d7df92f186c801708aef95d53131704fb5382bfeef8c5be3071a1e606b9566632f065e3f2764a0c6ccc0c6e0f34d0b4648bce1cec4ae3d8d798a8c29effbd8d0636d09fc5d14b8245708eea3fe701249cece51ebcf50578844da1221624499fe6c3e36e91a12e1cfaf5b2e7c55706424a94be9b0c23e11f3196857e5009f915255abbc7b62770a9c498c8d7d53d0bf88450c563450fd54bbc9e3a731b0ab5c8015b829735a20b01d764892ba436acda91f9068af1042ffc82d1529d8be20bed87d43bc9e0071c2dfea7d57242eea011fcc43e6a96fae7fc018746473deb9dd9c413afdc90735c0a7660ba81cdfca11237c81afc46ea4eef1af1bd654033911da5e24270ae +shared_secret: c514d4086428200e118c1c297ce5ed865d7452cd7770363961bbb834f56c564a + +# Official test vector 70, seed: "f68fc0314dea88f66afaa76e6c9b6804b13d4876924410d1f526fac59a62e26c560b125b1d0f8b461f1fc2e351effb4f" +entropy: e9602b34fe73ad57f4bf6ead99743d645641553a5b9b9bf2e7016629e3e9bd76 +public_key = 77155f91195dda2b52c1bc4ff328c3732799ea0aa8ed4229e9a239e5b5c5a02c1ebe98a381dc56e1d4b56deacda3ac52b1088805476c01609a0a2373a4bca788227172c4431b000005d855ca059b4e554d3dd2103cbc7854a12cda368ce202873f5747450c4fd994898dac5926765536662c81581ab4db18e9763cd5a747659440c9a33eac713cf907ba0d5a875b90882de31b5df825f337b46451705658915630035724c127c9c4b48572951770241993f777145573bc70125d35f1b03a121d09ba4388889568ba109f04617360826ad48f2765944232b1cf636fdf3c39c40ab87b4b50bffc1019eb0fecc35cf7416ddb3146e275cc7ae209269a7330977e9dba9caf79c99e30b8880525caaa84401cbde7ccc0fda4b250b7a2a651b3afc123eff52eec55650029af651b2014f4669de319435b7dbedacc173c3dd1f3a8597b80c9c3869d7389398a2404e790c9463f2634cc7351bac9d74b62b73e7e54cbbb3ab235c7c1ce298c0c0369de33224ab7b03517856e43cef2d39f1d325d1e221998c53631d32a57a880f24476a7e89f8c1b2d1c49759c322e993cc7effb2bab738f2648bd8133208ef26ffcac76393714859ccce0515d4a7192ded6ae5e828be6653b05cacf0df1b4816a972592089ff88fa421a490ca13c6789639c909c4db18ee43a01989c51b6005ed2548ae24ac8cec10bda7649e6c9359c45bf0ea0d39f25bb1ab3c3b5b88cda24caa8c7c7106616ba05da6727896d2a895835c9b83654b358e0d4728fec8a150b39283e345f3e06b4680bc632009eb85adb811277926662e531db27b3ca60843a6370c304c1dd21a94aed90c3663c0948bc12f0a32af533866f5931d5c74423246c16aa4f01808d06a6d50444ef8a3171ac641e9417e2e025390caaff16c6703680951b1a0e5abceb8fca9830c9ce1aa08d5803280f31de3cabc923b5a1a7c4854d841729194d3685c03f975a72440b5fa01b11868a48bcb73794c83644d1d39b9664c432c7b3bc311703ec01d268a34a8a1b3dc79b9ae07b8cd133b7d4baba7f39b4088043e4a35fcd08a9ef141b78cb1f64841ebf894827bbe1ec47509817ba27cb42222272a00a633e1b2ab344bd3778e4a579ac7d64a32e2356b1822c1334fa0e6acb05798f63192ee20629106130a1ac330c6cf0200908fb37184740e5caa5ad44067ac7930f696bc9226235d212d71f57ffc2c8c185c1f3d717271022f2d256963dbac5c5a1404a71e3546695eb27d73221892b5bfef114d6f88415875c013f16e48d3cdb68c2000a39a45263504e0a7554386d68a4d3992c9f6196015066d3b8282e8d3398d2b5f62d7af54698418862db3a84286f142a8cb44be011e0f2594d161611cb335bdb018d9e58cc71a363b29439d54cc6b293af33b0dbbcb80c7797819a96c1316a783f60f987a3fbe1acf80f22f610037d17247122c4ae2b2214638205328c43fd4bebce93d47c02b84e1cdee7cb48805396c24410d71ced4805f36a105b05c6564ec3450654cc0a12e62f7c0da79496ff2bc97b7b4809aa30d577a2f3428e48220239b1b97d9278dd26d93d186628812fc697d961442879ab64b4ba0be3c46f5e55c13222058b407c1694979897ca0615e8de05d85d3532060076acafc8e0aadd8ca7406c7bb316abfde1bcdd166 +result: pass +ciphertext: 1776384cc4bc09db580462b981e07705f1b7af05956b2942cd71a270a994b3c9ef525863d3ca86596788374eab881474d88e87e329652bed8e0eaacf44b90515f0f729a206aca3d6ce76eae6d3cda5caa6ddee0e530d841578529750e4d0fcdf5f122b9f921a5a53ce6442a733ef5ffd7ef4e52c3aae93aab7f33ae33f3eed2a3ffa5a4422c368dc210ac246b0d73dcef478be9e15867ef752fdcd1db52b733236bc9ceb8660679f9e53f62c670c68d3effd8013649bbf5685a40a1199de8baa84e701eb4a6de909230f41946c9e08e7d9713e209899f0710228bd67b4fa66950d974f5cc4bdaa1c826030a7273787c1e1717639d0ebaffcaee389afb6f044bef662da9b6b4347b0b0aef9777f5324979e660ec40d43e0a17e5bc2090aa0bf1008ff02a129d3b1210614e99f607b521767c5038b138c7d188543297c405df6e10d618d41b8cd3a9a935e048233b6af27db097721ca8999d8b12602c0aa21716c25e09d1a1b6eb4e2e4a82fc680a1d8ff2fdccca10ce2e38ab36c48f46a5b419cae0bfa00a0a153015e9c908d8439b4accd8a6b6264eece46e97b507644c200e7f985cd6c3a0a024aa0bd18b44059ad74a8d6a1462cc9c9ddc532a803b251e73775435689f80d3f79690aded41b83d8f0ddaeaf4b1a85c1bcde9e17cd1c6635272c167ffdf4272ef8d6552afb7b54500426b2f612df941d540e596038bdb21d8a2188dbdc89a2a449a2774d1f0b21b8db290e96ce027c1f0c11a8484f857a069ef77e6b9fbe0ce163b4dfec7a11e49031d69a37b516b72ea4e1ce67ce493b8c052c30517ad79a540a0c0e86093663e7a4a4641d9d291b929c59c4efc47efb19fd7e0c3b6f2c1fbb9449fc18a9eedf70f71b70f92f8369f7624a2666ec7f26792b34b79c659f1bce8d9f86776401730ae70e7d4459f0e8d7e1afa9a1c41019d536f0e8585ce4f2e7c42eb34223607e9d8afe66707475b6a1e5e532344d8aff98d5e48b782510f064768d76f4e99f6bf716df363c5e2dfd724c78e5ab362e2d8dd3a7fe3b35410b25f6071cbecb3513fcf755312fd082ce57b1ebcbdfa6fff754a9f7662c115334325cfb37d21ccf5a096a221138e61e1adcc4548a7eed9b50d3e267d1bc6eb972e678b4c5f0fe3419f663e0d4525bb0bb5859de22550225f90a70f76fdafd551b5466d289a8fdd3f338d1aca2621157aef4c64ca9f256a8f88415a6293933672ec2bde631bc1723a362edc7aabe695ebe88d38de01f0eb15bf582eaff139b8812fdb3c7abdaa0f933b6724ab3fa77fc4358456c0ce509c0b98cadf2b9e8de3c9552d363495389a9b898b2b8d5fc97fb751ef087d69c8a7fc32b62d5ec581ee625cf4183921bc62685e976d41d9ccada44570d8919132114717ad1a119dda21664a955a3f355cbc9879030142b418329b39a0f392205c811d4baba6301d829d312f8a4cde5fa12052c02a4c75a706b8f317f963f01abe5d27ee0470afa619d97d7fb5b3b0669bd08b901bd9fb56fd4a5656d8d2cfde1d116676bd8 +shared_secret: a175feba4c1bab576085bb12683d2bc44e98c75f543cee714c75391c559450ce + +# Official test vector 71, seed: "a229218b0d51f58d915df549901548fb0722f352c7470900e7e4d8399205764a319bbddbd06c00e8c5932722ee5a404d" +entropy: f72b9080a6c051bbdb9b0abc1949034be0f89a9f73fe277ec4d4740c78d04a83 +public_key = 697588a4004634fc1c77215f0677879aab3e63b51ae7436c5b47370e226eb4ac15dd0281ec65c56b83b60ac42de17b1374d1680b76460e294d841c1062638cc003d043a26307c08025a594fa3676df03c87789a4499575948b2574f6931673936e971f2c79598a1b7b35d28103252b4df98c47f6afa057bd87b1cc516722fd72bae0f437479c1ec6f68087453e23fb4381e5930e5a19fc9a267565b1dfc7aab9c13441101e57d9a4a454a6d1249c3cdba091113d0f1b257d0986f23b4fceb35c95ab05e2911dfb2899398808582a6b1aa9950eaa9c87c8bdae7372d46c2852e85c629c25e05a169900b24cfc0a68661b6d44c74c658ab8c00c756861be79272339a60828b9f0b8a325850b41950f97849dece714c494ba9bb09b74ac16138251363b52dc166f220623982c19ef565f80583b84d0b91267ba98b63afa31160f65961181951019419fc0627cc48de9d6b2c689969548641009cdc56b02a140bbc4a995a7f2593e0213cdd2cadbccbca41947fc8033baa1754a8815ad52cc31940451f8a62dd6b39e22a6b0db8a0f953c6cbca43f9c1285315f59ab9980ebbf57c1457dd8361da04e0eda771cdb37a6a54c6a47719790976a957978e198446320aaa840e0f1c076260e75e9a92980891aa6245e003f1fd6363d0b6e5c73b476b77ef867a60b225a99a763d0ea80a4c61739875bce5c0f361322450c93040b4d6c08120827b8026ace0ec73302fb6824367ac89a0e7df45b850618612ace284c2da4421689d8c7034113f9a1b2342736f5f11cfdd7ac7f8468075a4a2d7960dfba9e264514a8d7c6d11c660cec1efe33c04b4681dcb31fbea47247bc83c581b174b0cedcf0bd0b7b622126cbe323986b75a407e416fc0032fa2398e504967ed021e993a955713a76365ada810f9bec7ad1a6929a466f08113cfd6919e014085d4148be060ebc014fb1fa3a1ff70a3ad94baac7be6c96bc0f28a021e39cc6bb8a6e16312255880a84778cbca55f4173b2070d527357cac69c22587208496af1715711f76d5c185807a13b2c791b91f54b23ac8b66b71b3e211e55180fe7a1bb2bba7f97da8f82734ef777b7d2653e66e814ed7871da35c95761a88a611bc383add9a329706212b9780ef5d53e933c99318ac47e26859f507bb50597c3ab1a252c77d22a817b402b80a63532f21a0f296c40bb8021732fa9da01bc60bc662a0754914462689de756a397e2384c2372130c5a6f05ae6c8b81ebc22125830f04d3740d2638d031a21f1653c4f664cd182b11887f4784c27954984af251c923b5c2ca4f1777cb3eeb7a13c351c07c4f5562b4a8a477fd348bcb9b8e6bec787c2340c02c0dcb236fe8d7c6ec8bc9d156b89bfbcbf4d0599838263ad5b90fc155051137d6800c898c8a50b82a4e3940bbd3bcde2013889bc4f3a7022d7c49370ac8d826a3aee946b79897bea8512d8b899a8c17e439760b58859393a5c264b5f1549940914fe278a40b6c9a8304775ba30c8ee4cf234ac56862ca2e935691e426923973c32b4f2408cf63c99d7b2c5f0c5aadbbb9cb98b53f787431fa73542c5569e5f5ccf0e4a868cac6529bbde42a5f1881ce0a729e6a531b0c401d4979a7425baa8b0392a8ca9374323ddf2794c237e38e45a43a5a34cca2875d19217ce7547d2eba6bca +result: pass +ciphertext: 8ad5e238206e4068fe9be1a92e9ac82c41d247e864cf81e6006d6f3cbf6d7be8116cd5afc3764a34c2d8be6335745fbcdccc3753d787df7963565f8aa09faa473c3a31c86757e5747e5a309150ac618d96dcead932a7ab3bab72c6e2ce24069787052e998de0bc8f43ad84a48717f36e3cb6229839004f07f6c219375aa17888add3b069ca65d4b83b05eb9e83e2c2a053142dafaa26fea7e995f126079d20d1393df571160651a3602cd56422486b4dcb6ad4bb752eaee6af42128c17fcf72718c527d08817f6b2406ec25d8c86cb83ff644c3bc4fc9400d4f5f6b6c43538bfbb16033eb37428592b7c911139561872ecc14e0902c34dc540b3f232a2fb91f4b68cfe3f901f96e355c6ba7126617a8c8d231e58372912c876f8ddd6e1ffdb62934a96e9feb82babb4c3e4312fb6dd64550dadde1c3c82b42f129e6825464552281810809747f64887e7ae70c56d410e4b4349942be418f7e3ad2d85afceba02107ad44b7bd7f8505c50bd259e0bf20b8113f7eb6a209f2b97154b0198e579f66784fedbd5e100389c8e271ec01c0ddf5680c536d12599eda6196949df9aa66116d71014d79d3a632ac09aac8bd04cd07b2775cac35d158ce012a6f157265c06721ede539be6c87b6ca44e41eedf50bb79d54d3c77179ae8734941daeb930a299808d5c336bc954e0fc7341681c3c2c7a17f21eabeedab5febd906cf3c77f52387fab180a24799b9f4438810933d726a990cc0307e6f5ef94e6e7d7d074b7804d944c2f9c341e6d925ad96baaf83f4550fb30a89591cd8e66496dc59eb24405aa518337fafed03ccba8a0925be546672978d4e49f068e9fd6216cc9990ae4e7c785ae005409dd512d766dcbc8169412841521ad9a7cf48ad23c075cc27eaab6b62ca3f0a27f6583f1b6ef541b6a2035eac34b1ec3cac912d2dbe1daa6a5e7165b9093a9b8f2c0a3092af78305dbe137176dfad210382037a7233aedcd93a4bcf0b068406c0fa618cb7b4e2647ef019757fc412eb0b7f7e8b454ca0d46765928d2f7a468f8d4643553483ee671c9476ac712c9aef32e357867b95e5edfcb6d93f013e4b7d764dbd042e5133d5d5b083d9704872f841cecac31c46a4394998678d48e28d725d27d36f7e6130ea21ef6f825a2a3f45edae4b773a7b1afb981b24dfe59c181d6f3568db716a58128e546c16e42e769a62a5fc785b3be87aae4104c9737ad0aa5853ae9ce38014c51c31c0c404a0b67c7ba501766cf864f0c38eacb4701c0b658546d38b32726bc1e1649ea02ad05f4cf5c4fefe235e58e3e8ac3984a11974fbf0d440399e9aff212fec6334d5a1db23a63b0cd46157c7aeb39cb9c99be81efbedca1ce45e655ce37c3f10938904e5aaa6a144e5e2d838aa54a9a54c3e695e2171c1a512b423f94183eb3c28545ade0558697e3e0fa12ef1c5a15b123aa4d7c14c8d6fb60e5b508c083a5f93a35fbc9579f31d1968f4a9248564ecf4cf9ab4ab8eb016a82e3aefcbde9202eaed915519e346c25f04424d5f262f436b +shared_secret: 9781578191ebf49b162aa768d093a332b9c849c11e240187cec2ee969d4b3860 + +# Official test vector 72, seed: "6960f21c7350dcf41b4770c551dc8692d8ba2c0b6e162c589166ff22e7a1ac0f94c2f48504a5f7eb0da094df427bc98a" +entropy: f1e5542190db8ecf4b8d617a04fd3783ad0df78bf8dab749afb57db8321d151b +public_key = bafcc65109cd59f7084e05cfabe4515255ccb724b3388239ce1ba8c631c1e8c0b444baaa6ac481db8b4d670ab65ca27f33a92a11c48f6ac038f0914637b749d8b962c00ac8ab0c019c92960ec3817f34840aa7b63b19826a12234a81c9faa8995d28c4d4c44a0fd2c51720cacc8751bf6c31caf045a79c6f9b15c2d406c11fc3b5df6638e1b83164175dca5a1260a88c74b4c2432a9b76c39d43597ce2e3ad1797c25f967868b66bcee9b6a4d1b53fd09540220c7ca75943c52e3d4a124453499c681c1fba4dfe80919bd9467bcc0ab34b7db6012b18b3cc4c679e325b82518baf5123c88786745c4a0600a302a2a367b717c3dcb4c32aeb4770fc93e0213aa54b2c6a37a326f121d907278203724ceb6cad8717fa3a2106217864274e6220061620052799ba22675db36863b2a447e5a62b3d2511ffc83bb34cab6cf7356a27c29798c00cb32bbe1023fe1221313cc7ad59144fbb98d0182bf0183b44990da81016e2995206f2b0af19c8e21b1afe8c98d608c0c7e52075137caf22c69dec4e0f1763c8bba263898b30946663d84b5e0808e6ab9a6df970d2568303704d4c651c912b7297a89534e324fae62628580becc3a2051cca9d5757d5e53ff8fc242e42b2adb06cb2547296ec8431fa6eb8f7384fa559f9284d528761f9a23e85a0bbb3e57b7a876d2d4934d33838906606e6da9a311c15cba30f39d05236892462824bc4a4b4d6b343e3594fd9d68972d99eb26538f9eb1fa7f0718aabcd5dfa5a670b0f8cd595ef7a082abb518fa34891a4ade983877a333e956bbec9a82a19650866981b8b8c406e22abd784aac085b6ea553e30409ed6b39b4f367ae45b9fe109c6ecb51f23d2a755caa347aa95e656cf45a15e9438b61031717b3551e9e3020ccc330f254e82d89b5e4839a9f8ae267b9365aa228786a371859d3847ae68713df98768a1c792adba39bd2359198224376cb9c011777efc4aae1c3d179583ab0952bcb5b1e8577a5c476189d3301bf87fd8a1163b81bdb4a8368934ba4867ae4dd03d40c2cb5f974a5c36a8d699546d831095e7b354490838a40900521da4a00d2fd7117e1060dfd363593ac11bd31ffcc08c1eb8806f249719751ea3eb328d3a36590919c2317429d0486266968cbc6973d483015b77eec543b7f971523589655732bdd1783365761d937266a420ef3b849a630ab5a4003ff09c116c1037f4576c58adecb5a5e0899892854b8971c9b76685164a14bc5c8b9bf212c6c7ab15b35e25a586e465ac05f3911da7063208c3df46923622402559ca963a39f003ac0334ab19d02ed58c990ad983318b33429acdc637a8393082684c517b75194506bbeb9686136a3c8a284c852ca747fb709d4533d133b5798b50c1e59f9e99781fca9f447340705c6cb7e2231e257f95d681805b8cdcf3147804405f30b4ee63c1aa9c367eabc3fc606306616eefe91026507780e6339b209cfb7a227596957b136e1cbbce15fb9a6fd9bc798c40f0ccb7651b150d281d78b3508939ba836ab719cc19c61860bd3c624827ac26639c05a39c88a1873204175bf297561723a16375dba51947b83e46e84899377411b2bf8b743cf8dc23fd2ca07d11aeec1990c42a7321ac6f01cd866f8719ef21bcc0e02346fc5d8ba3d3e7f1fcb52d37551212d647 +result: pass +ciphertext: 29172b06b0849e37c10c1a8a719b8111a2e5f7cd0b195e949d0f664220f0fece380d03ff20aae2d1f4403a795910536638f7de4b502d497bdca8386b51734a05dc23c64e5970ae9bb57963088669eb327c4238ba2cfaec2d177e5b199b82ad664ea184db6ecd35ee97f0a54f2f933f9a04383188671497a5592f4b84a8fa3e5700d28138b9d3c2c91d104a73037cf3ac5468460ab1df7de05a90e0fa6b4753059b5287dff997f0894825d3766176c2b9fdf767ba065e45e74b6c706e47459433140ac59663109de28defb54d4752147623f5621c3b48fc4368cee7253c128140d4b1dbd8afdf87b9d58454062b6b3262018e37ccbad6bf27f4f947a9711ced9a45644d3ba3b9d670324c639c9dbfe69c2d783327bf7a99aec3730057e1e1547818c67b0e96fd48d024590db6cce338b32b06c9ccf81ed967e2728306cd616d44884a2e079af7058a4eef82c48214e028bcda3b44ef696c1e08e441f28728e503465a138dd7fbbde562ed6bcee8f5a3742d23aa8c5ef32179a1c44bbe41fd153ad2aa57eabaad87fb0e022aaf3b19b1f3a649079b74e7a61e32128506160e7b5cbd31d56673764bff84aa46b99cf1aa3eda04191a769d5ef2d569fa4144f51cfb9c02cff06495f95ab8ed192fbe9b363180bf90a52c752f70f4a587381775544635c5a574244ec8a88db3b86ca46f30a481ae4179415d234596e2cd24ab966fbb670e9255eb1bd3c261592856fd9ce541be9a3b06e157c5e4e165cf91008c51d11ebb064de31e3f894d6d4d46caa0592df5dc0c236b546479119c842d3d52deb75f966a5d4050e01f7b16cf6b93fc8731e5055325ffda000114eb7cb6d7916088fbbb8ecdf4ad8cd229ff036b2a6a400ea1b375c576547cbb0ab91b8f6f4c71555836985b3cc979ff56938d9863c4b0b75b011ce70c1a60b77b67988237a2a6b6bbfb180d36981f70eee891b6c00ab1261e7a0db824981b5450b09cd96868c611f40a6e5ce6e12a31934e56fa334c3dab7515e7c185575b2798e2dc9c50273dac8bf1da90fd8d8d5272e5dd24b87f57bf47ab79c8094fca322e50fe3425b0c570764d95a7690785b7ef62c7f4d6154a898955bd19c808a3222c1ecf67f633267ff61e8ba97bb1dc0b648a1161dc2499beb5db7bd621f263884248b98b6fcc3d9bf3c4c4ea5a3f0fdb33534c15d84278f8b5f1d2e98661623ca1cf9cde7b8e834431ca82c4cf5fc2be458a1abbae90ae6802e6adbf6085ebfe11c1622ebbf2af755d8748478bdf1eca4059ade7275718a4df81fa74810ece57e38f10bcc954be61720da461f86f4ce2f3771d386d836bc7c720255dbf7aa6455170300e7ebc2773dd996859b53757343045178c7893aa36e4f231ab469af10cee8cd17b612c6347755b0e6d3a6aa451b34df9349228eb5c76e0ee3ab37633917a4c20554b2940fcfd041ad79c19634d9626ac3411c76e74756da3109062f04af2430de6301da1734ace93717b51b2eb1545d275d442edfa35ed905eb1a99dbcb468bfc3e5048120 +shared_secret: 515dc87c21e6b134a577e4eeccf43a982ba7eac1224d701cf099ad07fee77cb7 + +# Official test vector 73, seed: "53df46012cad4a745b7a3c06e18ca95e0b839fd8161e3025749a0887549eb0ed6a44eeea08bd6060d6509dbf7e9dc864" +entropy: 74efa414ae171bf60b6f884cb7e5ce12028f49365daccfa23e845d551711660b +public_key = e180a227ab843cd49d4970af3b68c255512920773abae9a2e402b154b8159b63b4885736e63632313b2f99db66fd4307d411a66871c8ec859807205535d907c3c6541b283824861738acce081a14e8047a63cba2f42c71b23157c85a7763d3cebfe93aa7fa0a083284ecb7c4dc16c8119b5d90546a461a5b744b1084f120bee2b548801c381a9d561bb0c5c35336601d1cdc310a610c8df78de62477a6f26dba6038ad04371913b831c326c0537cae530469292ce41c40a81b92a5c04d69eb0303b4b38a5cc45fd2b0ee90cff0b81474d0406c8b34b34c1efb596a704ca4893949614762a30c54846023dc3a345268ce55c0be97139f5f733664a58b67656ea211a87de01f9cd902a9295355d13a15bc044fdc77c4c53f671a1438e283371b5db5f82fb0d789e877b6820771f0ebc64da864a01caff73c4a42b5416bb043e29c7b2574c6e214a352f4401d786b4d5351a2559b87ab00ba84511bac1a099b1b33e8cd45da078d447b23326574379dd3d32ddb22c6a4037fda719fb104c85f0264ba4a9ed0287a31a2af6d58291676a37c434ecb234e4e1c648fa0760da57abe45703e677fefd03687415132d03252291f02f3901d20427904511f9c11a7f07041302033054605e97fb719a2f70648a2c30a0b42899b195ea8e6cc96610943c3276698a34a61893ba8770c69cd55f1bc0f00ca0e04177d0469c4833fcc23a6ed339acaa91b6e081692340f53cac66af5a6bcc2391729ce4e1c88d5c2610b00454fa21e8faa6487022f19f2c81d5452d5170255108beaf3979ff9abc2e04c8e3669c6aab80e2b6464644ae2189c81fc92d50cc56039cf5de2325ae5163a1b63652222aab35e17430d16477537f867ba4ca0e9b1c83c61a562c6822e61bb1450426e9716a77c1934ab17ec69563b8299e6ab371d996849c8cf7a84ca1a9bb654e1ab20a81d65314595a52ba18076f8712532a81b00e19e8734968f87c03fa4763208862d9a3ca648582482bf0d5441fdb7c84ab237d9f8628ed2001a501339682f9b8aaf6606344b95342fa62e782c1d9560b6ad55aa332c1fd533a74d026a9c9757f0e91bfc96545d0b6477f31f95840ff0a4127b16c32b635471480523f93017577513ea96159ac60be179d3a09c5ccb6df44174de866cd7548339d314d160718f262edf32382915197bc2ac6e3a4f77229e22dacbdfecbe3f4b72ac6bc9d9354e7ed2c31ce7acd7f3a2c8b9abeec00613b1600c8992376b73f8c245ac9841ea06409454b48d8c3a152bb8d6168a3fa6423373651caa7aecf0a5971641bd66897e5991e793343b5190bac3107eeaabc71bc34788a345bcb9ad8a45a50a1dbdb1846bb76205b06e8aeb692b4200a596524954963f01c946131704f6b181d7781772ca6365824f6c6c22a1af3328a2c8978ea8d7c38f6a00f7a6b3a50c2507f103f72420bdf98dc19aace30b792851142d8b43319c93ccfa966d71cff9352f25fca9e8a3064cd96e42e9a2959c128fd532902419b81972838532cdfc08f34541459cc68955c9c2a431ba5126c9bc08039ca45533ad8108beba49bf8d56bd44433fe12a6c55c41f3cc20560b28cf050cc1f195c5e817d23d95e105a13555923cc21b13c9e46d34182974451bd97b6a3da440de6e5bbed681d6eea2c6822b361019afc +result: pass +ciphertext: 30a4b1190e0b9a5cdf304ab06e4654e9c02c055c4b487884c6c77caa6fcd02c4a01869738f01423ee82176d321a553889d4659dfa53bac9213386dd87e00d0ed8c763d73a4909b223922dc9bf600a30270c35aaeb8d6e5e21f47e893c28380f70b4f19114944e7413f657927314114915c0b7bf7dc289a21f1c6c9b3079342364899565b604348a97aa5cabce2570944d128d12dacbfe2dfe3b17146892f1956f0cbd14edd3d65531aacf5deb667c48c5c9b76f83238c49a750552bc4740ae517c6b82fd2444d9430f3ad1e4790f609db80727cc4db6925da917789a83989883847f3901f428d93ced25ffffa87e4b9940bef4c3bdf2247d7c17fe4227d8c3b5f9c3d99edb5f6bfc6c91bfacde430d0ae2554f82e0b53a67a8822deec1d5acd054af2869b992492726f2a7c7d7b9ea0505153d878b301db69919f39640e3edc5222bc98c68b844e7454fdc6f3bccc956843919a428b2c882675820569381bbcc03d9cb932a1fd616a0d593c8aa9c4119bdbd9b1dcb046ece8a011a91056a11d2b84321df7fcbbed5cd25a236668e5b7fe2adce9e82a9cc0039501e57826c46c37177c8dc057d74b190de9bc09bf2dd47a679adcc2a5ff518abf5c8b33b95e95445c778fa97e5dde581933a71bc31884c5b515dbec13c4672d3a5f04d7930f55512e951aa8106115ad291ca9eee526513ed9872b746f3057a2d0dd6255aaf3c16a32b8de76058c79001f7cd23dcac80fb2561eaab3de336d913802e968cccda34cec120f0721a9aaa2da3c36c1e372c382fb194889c41d680f6e1faff0c1ce8627489a693d5bded36acd30817aaf860c7691569b6549c9951e06910918b894317df93856d4a13bb52646e44a3ddccd04d1d9bb5c472d11134544b2b2bdb103706e7a858a559f2e9f10a8b3981f8f858705822d4343a2aac48d9c534fc211be40ca907e1c02271377e9c544e6036234a09387b457d4c5749c80360a403aadd35ba28999aa679a4009a861ae782a614918c455959329d2bb1d91d7503f2dcf0cdd4d16de8188ba669f1dab8514d6ea80f9e7ce3e3e556d3abaff2fb2f956b081e8ae1bd62534b0783f74c7d7797481d2687427b41579fed7f2194ac898300bcbd817270bdd5b06ce0bbdaeebf60f6a308d3dff2e74e521453752974ac951aae7337378c87ef11028ab476576aadd3efe613118c9e537005969676d4cf2b8b84bbf785a7ab61ccbf29586f2c4b0c3d3a4be23aa92af35df92dd23e8b8806acde4bc187879d29444e2b1ef31712ff714072f83b028d3f2cf1aaec3020865401245970f6391a45fade62f7f22920b8729428842e21008262c091178b84c3acfa870b43ba47f8f85088fdd326d8f4de12ea21c19f8b5fdd7df0988b43511ec21a9265c3a23ae79a3938d08404cd8105e3b039cfe5714e7060e6444c77296393c6bc88c3df42c0d644781be5f232479cbc5a736e5d403b190cd6c8d3f472255c02a7ff0505afb9942f6d346fd7eb717f5beada57293e3ef9282ad10ae9a3cdc3b04030b3 +shared_secret: edc2c0314c7c5b2b071b85e373c06b31fa54dc499168d4b43b15f1d05b8b7ea9 + +# Official test vector 74, seed: "deb963f8b1d8fbdf499d564ba8d2d47915bb402da02f17031b37b4039a842afb9b7e48f37200605992bd2429427a7a4e" +entropy: 0b4c3cffb2ba4380ead13dc0d8acad2356b448a810da1df29f264c44aab6d24f +public_key = a6cba4e1a93cf066b6c6284b85c1ced4a4b17634c2dd8c758ee3cac74b2402460d2fc12d98943de4dacb2f5912fdc41e8b1886f38c6619831677e2a32a63860d2a1e9b994bf4f9cdf0c3c83c5b044c14b83e57c59d55629a9704994a4793a7178b69ac1892a578802a69d22d609a7832b55e731a65a1f29753870f8f6b26443824be227f578c6d97c57e570864092a66c8184ca58b1b8f89ba9c2a3e7a17c1bcd851aa552ddbe301f2774e81397a57247362426807f370ff2b7f6f7b1f5b83c2f3475cb225b71ca0750f333d72a434c88a902d542cb8f50f6ba8ae5531ce60c5c29057c2a995ced8a34cc1db7005c478fa174874bbb82981107faab591b8c9581365e7205578c55fc06b5f588c65e2ec700e6473752708853a8c9a1acad3c08bfd67c553b9c603206a1d26276e66c53a166398db6b2e51754e2a67a54902cd5839b97c66d2421df86c42c7181f89d2afae41bc116212a7492688424a2c81b85bf616ed686e8d0183c1082dd61c1144417dd10cc0e29b3168144064d700c2a295c1042ae40848fb07abf2aa7cb2883fb19454a8711c72670d8c0b152dc9cd39a108ad9348089754703a608c0b544350879ddc71c09051f92ba755717403130dc4b95c19d3510363a5dd620cdeb1918af90dd1267aa9696eb0334810b9351df981a0749a7e0c253d399a0115ae515c97b63a1b0ca42794e00ef59912a357565b427dd5aa54b706b0df583e2fb68ceab61395024abba0a8ba4ab6bae958d9c13eed40cd20978eeb5ba041b837595427a644a850340168847acbb69b8d6809b849a7d6a6b67c170dbeaa41be8341c6977dbc025688244396503411148458aa2800c44195211a86763c54e45345ac258541926b4bced6a337df4506113647828b2d4e45723d68985dbc2772a6723a032bb3b84a140a95dbc480f1495118238e74376c3aa78c25e3703ce121e8576c22ea29119b1eb5b946d261cfdc71980af7961961074584a7ed970fef29172cd98a3ea5550f994f5d763b00fd37f9c0abb1459b825c6deac0b35d451a9eac64b03c3c0139806586c8e0f63b8f77aef5b207d2615d5f296894c9a1eb0b68d0571351e18a20084580d98aef13bc4ed039d132cf015bcbf0270d5b971f10f581093656a091af7f3725a2e16c8a74c541345ede689321a436ac488b23895ed3e81fb4f25b83964400ec33c529350ac29f4876128c010ca9c4b6d3e47d7ac798559251bbe4bbc7ea4ece0b76e9f519d819b286f14fcadb1231067bcb113ecbc737020b47587c491fd26541f47ee2b6bfe6908c73ebc3715c58aa93484a5c2692598b4945209d47258441c2cde253434a5a1edc934c9762b2740795857e255921296a8bd4542f82bb6ac7e293f9e4b7890810a2e46511e241162b2af6e38c2a07b15a38a494f8412fc40d60847f957b7839e78936b6c1ae906089a80ef5c58e2659be2643083922b22da53912055f26fa7ccf410abc42cf21448290b168cf7c8ba20b28dca959acc253bfd4b67e60c0c5f82728382c96f78b48b4a4c746c32c019bf8c3202c46a7a2c9c401700eeb1c013bb399d9b62eae9a4e68e4a4bec7b7fb92888ee9bb5f52aca49b2e3f6ac6b72b2cdbf2c755f85fd14903d8712fe0bf82ac0b06aae9bea06278c21e6257bc96af0379bca07c7833 +result: pass +ciphertext: ea2ebb121065a8def00bcbe87f29aa3fbbcba6435b50a8f16958f1bcaf938c7cb7580d196069a8455de58338736ad1d72cb7332f605349a7542982e525c1ad949f2ca7d3c894a8947d122bf8c55667aac75c6d64ffe2953b49a9ca83af87742187865645af50f1aa12042166c5b4a9262ce9691e08f9216d0120aa227b1875e7d27a28084be0aa60f5ee84fecdd7f6f1fb6f45674417cf11c8c90646276f76071d75fd05ba08eb5e83a0c9e6153d97c6456fee5640d55fe47d3f8b3c162962aaee0e15b045e9d3b319c61177a3e316112388af05395649329225b8c7576ad0bdadb78a81f1594ba0c163edb95040c1249a1f43917629bd905bc6a16cc21da6e9e16637392b56d397f4c5ccd814ea599b074925367cdba7f1667ba4c2ac8eec4ec976905ac46a45453830d6ff6fe4d3bd61bbb91fe99e3b5702d9223439f6d91dccdba1ff13b9d31cbc47ee42bfab33e3dc34bae64435ed2fae7ef112f28fa7ff754c82b9082aa944456e23ae2654e0b94186b1bb697d610b87659805b4e5a4e7c043191dfbce990c54caa0a6ab536a21fa7316f22cd8df0fb4532c45930fac927470b4f7d7353e8d000e53687ff1b3649851454194aa3acbbf4e1a1fc549d6a5c60d08a65cef540015643c7d6c1d409a093d7a796f57ca0706ca323bd3e0b26353ab1d7bd8ec8dbad952f3b85388b100367d6989de5396e2ac46d85b402094420a1bc3b0d9b440b49652610be14e36a35cf6502689ee03104af750f7f6f8216a8080298e260cfe7cc76cd84a4b7b46836eb78116ddf30c4227b984db4f482ca7411bb41e5b3ad934d2662bfb767be82b95d31f7ea00ca02d22b22b9c8868b740ec66bb221d4b401ea7cc9112680b166d007c3e279fb135e1b8ad761e2690b72f2a8dfa6aa844864e6330c433c287f246c7269ddaa947212c903d8f08edf7625599486321fc1cb9df6c896e4f61e4373aa58fadb2e095a2c23fbd9eb507d7e8c622833851cefd0ed94a388f2772fe8980d46822ae977b027591c73c113bde9591cccfe77440c476560f59255d7c7e1a566a2a41479b6168220efacd1a866fa3d710eb061412538c8fd95d9d308c4e3fc21312b33a99d7dd270d7d0983b3e60cf72e630118bcd3cff1ac38331857d75736c15537fc8e4cbc01f543e8bebf214b8a45f6b6888d9c551e0bb3dc84d3d4a3ea8eee1a453d8a53f06de71d127ac7a370a57a89ef88f5291fec70308e2c5fba82a2af93dddb05b135d7c37a04e25822682dce56e74ce34bc5b8849d5d40040809798ca4ff3b0fbc999cebe11d3d7479ca18342c82b27ade902e5f6070b122ecc7037fdbee985fea2a04732ba5f85817e19ce8cfe62d86339fde475a56f7e5f5b1f1f1e7c18829bdfc2658be9f603d44e5a4117e2b274b9e3a74dd2fd001deb4f0753a842fe1ff41799dd77b051851e8f4b8bc2fa53dd754c872c4fac00c18768ed6f0cd285ae91516e6288b18fb6e50fa88c7b97c6b898f3a6e4776e1321a9c2a939224a4c903ec117f84518f7bf48990 +shared_secret: b3363e6e6dba3e41ac2c63895c461765bc8a0250880d3dd6e8a4479a7fd3921c + +# Official test vector 75, seed: "8e2995f1b3e43853b18916bb1212aceb05898e2b177a87abeb928ad7184e59695c56b2cccf5db80853c28a525e327d13" +entropy: 1c82471dcdfca3a6942061ab4f3d5bf0d197321437c706d9cccccce449447002 +public_key = 5a0322a62aa889781c4fa3c36f765586b2c2a20cac081cc08d06ce1cea6036463dccc34bc294a51f7b1a5dc0778c143f57b9ad2c8b41a3b3a7e3317fec687f50294158ab07441c119c299d421b3d6cd62019b4cfce69c9dc5509856b7cf087b66391793e7b2a77262db0909861b46b5d4c23fbf134ad43622357a81cb7c9f5ac9cf1c190b9f711164a9cfa4892927364d800ad7fa2888dbbaa21b689d4a20fd0ba43f27386f90026322705b0f1069b32760802581231c44db0a43753779fe88f3a824f2ed858211bc172d49221931c3e86188c287a093b1eff20af18c1004979221c85c2ebd5700473913d465359ac18deb3055075386ac3c330887879d5ca762b6b576b7f2d422f23889d51788cd84b77ae879b1eb7026dbcce20cc94f7857aea148213c1ce857277a7808857f47e45cb9b561b80895142463bcfab6c69a7712acbd64a3b6721aa9671aa934cb0c1bc52b464603779fd6ab10d57cca0a749f3a1889e10386cb7ab0bdb86ccb02ea614a0966a0ef2699da6b7282713874f36468c2014539bc804911053d1025133975e591e357a8d88a1c7138a200543a90f4aa250f44ca61870d206a236d1917b509638fb6442aa7b886a54fc21b7c40a1b7d027a09863ef94280c67a4693d28a0f842ef2268e0a67a11bdb4a18b3c459e11e977a5d143aaa82b80520f72c50d248073746662b78ff685086632e304085e9c7050a754b302338f7a2af0a223e45730de36074e1843876a6b1cab85e0d984ece18a3420aabf4d740f6039dd183c57279469bfb9f26fa4f6ae59db60532372b729cdb8bc8b26b9e511234177af2717538383bf2103726c79d84b4489d493423f7375c273a9558611b60c9fbec197047566ae9411637ca9dcb956962354872803891c728429fcd99c02ad020c11a2f1aac40b6fb13fd6c8508500fbfc34d752080536c150b402155e130c3aa1a4e914ada0740b5178c83a67fea746803a35c36a3cc034052143303bee180d8da097b24c89fdb16583b972a50c89b5ca27dd4aaa1002fe2316940a7ab294b02eca4c69957b3d02b538c239f18a342aee0c15fdca57d28930a62096567801f64c3452697d5f4a66781975b440ab3b27a5da41e889928ff41402b20b93f992db6d4216a4a2b169a6952816d61b93a82c5c0d5923152900be6b9236ab96d076b36d406b06793c7c8c85d69f423774c4a0c143e27673cecaa38c66c1dba02860cd305214a2637a90cc84a7aa6bb919e73c06ddb787b1b9117a2c6fd577a7eb417d5a34922767bade412bef212694373401554211c1213ac7bd1d1cc61f40fdbc65b89ccb3383c30476932d738b181b64e2bbc9508268c7061a4731c659d18749ec3b87c3741d1660d10978cc91ca44df588c8a0a7a68670a003ba23f03ae733067139083ed33c98dac4c06331e90b59514c7005e27f179a0ec8517931b678ec849789c656b30c4a736209e70151cd970ade5557f9e6872248b94c894220c0bd1b6a3a0149c1bbb8ba4c9337aba868b78199929044f44018fc261aca4bcf0f70cc1444411fc8cc3b6b7aa7ea9f8d06a30c7a61d89c19e7c50b84a278a921b74e2936ad07ae2b17344356a8e640a9a1392048cacc817bb0924682a027f2cf6ec9b36aad177faedba70e26db0e2958e3d520d23b10254587 +result: pass +ciphertext: 5be4b5826337373eaaf9e87d53baafddb421fbb420412bdac34c5a4c4a365e7815446854bcff6f7f793578f7a8506b97adf4256649e957c6f3dd74338be6592ceef2aab2500ad35ba05eac5c08b70f196ea618f20b05ea81b9fdb4d76cfaf91d6c243e0d93d315a7c86c420add20f23bdee5bc67421797216a78053bf7a7f5258d6ac69bd06329f473270c480877cdae2784f833356e388cf0a0bde65f97cfae05bea5c149c9fda694c5a9767de87d3c9c4c7a3878fa0c2355a78cb32a44d1b80a83a2fc198f21681ff05556222af755343c735622feb9d4df7a561bef9f4a5d3fd47cb6874ddfece4870da971425aff3d8e9ec8367b97395a8a994f96695e721bdfba993af105d365b42b29ea811da19d4bc3c288e1f768102f9eeaa0a3c7a5b5efc67f3d7c70dff5df5883fa3a85b60881ff7f37bd2b73f2c160e0fda40ca341868f7b630577c4c4486b96004c980be59340ed623b50405c5732d4749b37458d0b230e57072a97ceb2f7d236f7bab0792a3bc151a786f77d8f266dabcf68cac9c89515cf15dd262a0e594246b3568ab250ba1e874f52481ef5d48affc7ac10012267e19f6eb2f57ad7a16da8dd29e26f6ea83f3b2f732e9ba9799672ed967d029f0b66f032c28ad3195f5f071e0a91e21afb721fa32eedc62f80c5dbbadfb37498cd1779e07c0f28774ad21e5e7c91b4b9196449c0773478712e43b6dad9639695d99355116956e180074f41032c332a6445d97ef237d89cb198e0ae225c13521833ab3fcdd59662fecd184c6543a73261332e713061896578524726ef15def3cb125224d831352c73d731c8def727d1db7dc668413d2d99527340f9c3d7065d93cd3f6bdd405c9ce2f7ac58155b4009718199c3fcd1c5bf5d8f7247747b74818b425839e9b7e377769c36e241580a17437557d7818f38797609d5c66fe26eadc06611f3edef762f0c34bc729ccc9cea1e6190c57d51d872fb278a6baffd6c6f8a446b707b707195979fd10f84d3a51f7734f53633c83ef6a210748f382be3edfea8e01f247eb7700644ce9e80399564839b4e8d8ba34ceac158b9664acd9bcab6d81de3638cebe7a6035e0f3165ff882e2dc57b1caa11c9d111fac396b45ccbfffe67c37274d4859177470a3dbac95c69061c963959d58c6c8dd219c360361380d5e8bc8915123e98a24d594e2d8127e918fa0e41086ca306715859a80ee4e547d11361fcc43600d79f312f8b42d38efd3e6b008a8e5bdd381cdbb6ab046ab4c1352c38e16ef981f0b0f3aa1ecaf84e166e68492aff7ee3132d598cce0b118264753b65c39d1cda91d487584da53c9baf49c249debc9de95a390815b226503443ff147b8852dbce76c2289b8818248b15b8c814bbd2b8abc3be7001343f82ca2073f9500ca3f2262d5db43fc97deadbc9aacf0d1cb941773815f83cc24e0f0a17f84d1029027c08ae735807fec4e3735c8d3fd790f45edf2e4a80b984fbcc544c118686c8f0ae66e3fa50cca80cf858744f330f6dc5dffe6d215774ae8103 +shared_secret: 8e648593c8f6f6f7a97ce7a2d151ada30fbbc7f3c4fc517d8cbadd71e6a17476 + +# Official test vector 76, seed: "9218943c51fd2de47e509aac67eff176795102f37d7a2017e3afd768fcda7877af38739b00fcdf227c2fd62eb635942c" +entropy: 46fe60a18124125ab93e0c578f1c02f1bd1301595013001c7f3c2fa56cde294e +public_key = ec8c397304996ce42773532b2798c4bb8a987e57b41b820c6f8b2c64181873bc6515b0c810109890b8abd9bc650f0344e3e7a672e269547aa4bbd0baf9f2b2f3b53b1910b255f7cc6cf0394ceba359685e9f6c77ddfbcf0217611d076ab2140a8dc58199a2a235955b69fc2520b192555c1bed2777ef623760cc71b0208dbf2a5d9841a231a60e2516c5ca3c6156a0c0862b54c311ce2b6b3f442c8082348833b193cb2b22d252a9ac88098c704d83f217ab2a8799f031227b95e1fa5d1a6410e3f025485338fb8338b5c7c4c0f6641b71644f11124b13c2dd21088684035a66a4c4451b5f66c9d5aaa7ace15eaaf03497ea2e1d693b77a4402dd1943e9c68cc642997a44d2f86a339c78912e678d0e314ff162c0e3c9ed8eb726ed910d1b26b99061c01142380e5074b5a46505863f6287dc18422b323c89966340ff7146fec18095147429148c24718301c106dcbb5a1b644e5a26ebb566b504a9b2984100bb6c40b45286d4c2841d774dc8915839c32ddb22adc41c0197431bf8c5f26c2329e6b2a0efb2b0d872c4b8b125d997937236caa455389c60f9e38ba3a662ac7349a5c872d84a353f9710c6c74463f220f37558458d68da5e67f1130cc5dd5ac4608220da2b8c9048bc805bb1f6bcf04379330025ca86b42cc361baab986c32a9e266bb1fa27552192a56b4b111564646b701dc4771b8f61bb5d41278a291920ac1d01649267344732a85109a3cb45b7b8e9abb8cec49ff602c819695f61011c7ac5957fccc50859432f324d6623459d7bcbfa20645b2a54c5a8ba0df27f93ecc2ed00821e98553f680623ebb221953d3d9b8d188044d693abb88bc965984b08d112ea6b4885aca190f9877f1bc123220aad662fb7f5b0afbaaae118c6108c98b31a5b6ff15aad0a87b172bb40998ec232a9d218bca9f03e88633914561c9ff65be6dcad01550903276646208248a56e5c3239f951585ee9326808a4e4f829a15996452a3328253ce2cb3613aa4fb02acf3030b64c6a27afc5863487b9538b53a2e1456168180d257f4403b41f16b415740abb024eb54c23d6a851bf9c54932259d1bb510964445067c68ae362dac6a7c3e29ed3080b0d21a76ec220c7d562340123f7a32c62184d2d707144a1565e432dff443940736cf628caa3607076783b2b29bea7058bd164219518aa77c2b303e07dffcbb00c930ef0f0632c10aafdf32fa7bcadc5719fdb591c7635c3af83198fe306076a9da2455963b91551a1618040b0eac945f788820a1442ccd10fbdbc763cdbbb6e221e8ad076880abd561c5059e23709d40996d41fa6f129c4758b62644c30c1c06d0080091b4d5a8705f4b0694507252ef1a5980a347846160ba3256475741d50a7ae465f1b444a25729ecb66585e51992bc781f28c180593c4e5882c243017440633007db1c637733a01bb8a994347d7602ed0b34261603b84b8c2e14c5c46167af459507152da216f272371a0981fdbe740daa78b9eea655d98cd14ec90cd383863ab5fe8137ebe820df5a007a288586e18a54b43387de9b73f9037f27384be092b09941262706dd6db377f733b31a49d2467605649b9609365232252a62555b1451674b717182870c1088f4b34061f3e8b9034af0cf2c5f7eeb665e064f5f27cd5e4c84531d45d38051ef9 +result: pass +ciphertext: 1c54b44d8a10785f4510f996ffaae6b98533eed8ebd71ea24f7d7669446a5e6db97d90bbd13879fb301ac3042218bc5362ca6c057ca9774bfbeeabda1e2510c44e269049858a0895e6420a46b6183af4b2c0678415698749b20ff5b8ad375270763fda8e841f3babd0082bec29f635826d51d93fed0097edb491e13d264101f6077f35960ff036c9db1822476d980c294eda6ac631f40a8aaf3c288c497d19a340e9d351c4449e017086574100a846ee41f9ba811f6d3b5999ed6cb37f0a64c89c605889a3dbfa095f9e24564b636276dea2e1bbebd3469add8a00b798b531c5d7f734c400806fc2a278388fe7395756c97c3816e4b3b5eb079f376b6f6c46494f93930786d5d2fe597d1a4187235a34c0948494be6532ce29df05790382ed06396b78b51cc95ce617de6ba412ae0374361363dce738a0b3924bc3c0bbc440c660d8c5a012a1a078c26397fb9989e3f25b243a4edcdcd55d4919903a81a0e41b51a59fc676a7672d035dbbeabc379053cff3a63823b359437ed1e148a703e80bd11ca6d483bf29f574f7a3cd4be9c8623472bd3b21455ed44dc092e897bae7b958dd960ce311200a8a9578df00fa0de56ecf00447dff9b18252dd4b2a25ce35de262c28411196c2e49f5a45bd074c0d7c498e42606068b517907938eb7e5b37785a4960981dc9005e5431bb50fe55e446817b2a18064d4029673a6089e06a2ca67693134af6fd75a196c5483127e5349728de459701d0745859e58f6504543755d969c1ecf912dd54e8167910e38ab419a161178db904dbf018ff0df9fb5f0d83315c533f6ded98a06a72cfdd82a19cdfd03109c161020c1e726e43c8354e61906d156fbd7e360d85ea6e896c6731d4acdcc10a8c3ac1c5432f36c9122cd6533f452f2afc46643b36de381d00b8fcb93c32eb7e8cf915f1dcca5cd1f9af29cb4b450408c48df5c2199f8df68ea23e228494bd2ac356e461aec65ffa568fea8c281067f3356223326459d7f746b42060f816256e948960d44703d23eb45d46ab0e924c50978baf55e5ae39bb06ea3a490f9989bcbfe9119ac5f3b83c5f41e079dee501516f4e704a20bd6312103b57f6c0bf56e009eb64132fc2999bbccc8d098027437ffa1cc0cac877547c26680cf0c4f107d8e3551ec06c5aa3791af10baa6b34a10d346da6278cdeacad19cf839b501a3381a7e68d3e01604d66b92079c39bf183bcda51dd0959236f345d0c98763fdedd9a58f5ec9b2978f2319fc61af19ed6ba74db442fde15ec92729aaa8c1fcc5598be852eb8083abf5483a654fac93724ac3c23a1db1c431e56645f505f136252066531c9b6d015b1480555292ba18b3f2e074a4c3b79ba5b831cf049bf37be83ed33026cce09ff36efa757673a928884dca31b8068b0a088f464270d522f9771b7a70cf87ead5956e599789ee9a15870b808b3ae59a6c417a54c4eeed8dd2247682f8c3aac4af021f918dbe3ab8f91b0b43780fafeb58fd043faab7ea49b5a4874c7722926399db78533ef9d41aa8 +shared_secret: bcdd6f0d744d2a35147323a4a0451fbfb7d60d73c161c1f8c6a2b5e9f4239c65 + +# Official test vector 77, seed: "542e20078add5296050af150360f057f6b9ab3ba835589dd56987de805f900b906505b5390a0d86cba28038992dfc59a" +entropy: 52fb7cb6a633fd2e83f2892bd9441b48fe59ecee6d026f5246fa7f2a5e55ee3b +public_key = 18f81e47490cf733359bb77d86b1b949396baa99c9d73485e378b6eda76318b961948497db54149f386e51648187c48a94fb603eb114a9408ba0d27f3c717694f9459ddab7c6d51a58c50a79bc072d7717781a6b12073577d3a89a405829850aff65023a771a5f5456ac5b3970d545043a2254178375268abca9a967f50db28635b1d01e7d1969080438368a4b61f63efd82a811f63909aa48a055cd9345c09191abeaab8237696bdf3512b7e8625212bfe5500bd7002066357954344fe361be074069a520a470eb64bc0289f85c981995141a246ee3c6673d9026b7b490a82819ee1825ad39284fc41a01c936d0280c4c681d62e47de8e339fc0a0f958b279ab95114209231faa8962754b12a22efb67ed1c42e8c144f74476f552a297e7573a81717144648befa3b6c6096f428c10fd925ba86b29c8890f2750d1e7956664a714fcc00c88a3cc259b503d3ca39942986d19ab6d76378858d679cc61ab40edc5a007d33813698a6ae96acbe95474b188bfd3208c885179de868dd027f12256b9fe84ff460b180c7655d514168c89a516ba4ddcc56c1b5325c9312e067949a57178251158eec2fde69bc9d61be726338830a86e8e525ec00152cdc0e86473e2b54ab64790735c3a945cc83b999352ad2587fb67dcf2c9fb3b921deac54dccc8201d36562f64831c8129e67b2ae78bfacba95f29c3d20942781e090ebbab81bc5c071b0bce826173f0cad6c101518b56dd03a8bdc872d338225bb16128ca8c7212867dae513c971b687297e4c098ff7c478f841a29dea278d1bbe55423321372a44937d2aba34b279c99e8847c5d4b51f54143de991aa16aeeab267386c7f286445acb87a98cc93029658bb0981048876f0884b526ba58f201257a2245849a57cb425cd2ca92a3cbcbf963a4f360e8616c082d8be4820323df715bf5344fcf85ba070ac3068ae91989e61600416d7cc28cb6d42a461dec083f6126c749ca457146d114c84fbc576a7dc8f9c2c03cf4a3cd2535a7a396f59d73259654254e5bcf616b4970770bc8a3d030c8c61d93eb08644159414dcc6428be73357531e50ba72b5eb99d9380bc4802339070366a19760c0b15e32a48ae0038453527b10c4ab6b1ae8497f49dc47e25a514258b5c0336a812525c5a86e22d73a9a8c3da5e88a468c3439464fac42491b0bc91cdace7cdb15166a01b62cb22b745c38ca32a9727c8c57537c72563edb4aa2b400b778115b36817f188e659b2bf7c999d108c5b2d252f6a3bb78737edea48c9bb91e917487e4e6156dca609aa97bf47bab00047602f296cf611299510b195ba59ae7bc245b8c9721901995b6df4918842017945c330290c6bb3c46d9104faf014db6728c4268627f8c884bf52e011344cfa795f864a474f9c015ab09c77911a8a52c1aa46aeed6560d4bb1f3b64d65028d373ab3d51a450e600a239767aed9cf25b5c85fc24cc794162ee70e13d88fd3459cb37a92d348a1956bba09e24513d5a5fa79b593a849a1930456f39fade44b583cbd7eb4ce058056df38cd0be15205161f53f2c8681cb9e00525fb59cfd86ba1ae81ccc1636dd69c81ef620651606326a41db9b68827378c2ec238e9179c02965f938a2d0aad893c30d27267e416287d7ddec314a79402a769c3d953f0092ef4f8b595f8 +result: pass +ciphertext: 93bd84aeaf924ef5a6cf9f0299320f9745d4b7a1bbaf8c0f7a721f150d740174f4650f48b2597b513f3ad8ece3b027e23e0bc83d7bdd6dcbcdb89b0c6d40fc2689db5a8f97978d30bc54e7c706597acddc24c23779cb36256e8858e3802bff79165020d65327150ada03eb85ced6577706a26d2e0c3fadb7ab480a10431f12d0946f1a62a70652684b15ccbf082c5bdc500af9eb2d1da194e8de691fefe76b479cc558604534d4250f9b3fadc5b6ee14cd723b3cee817ab6924d33e7cd8808db81aed732d6a388902137e041c078a519c530486c85e2f4b9e89d3e818fbb83f898644269051c3b82a43f6cc34587b4c47917924cc87c5090557254743e6f754c84ab36eb3ada3251195fa8987c2c876af3621d7b78d2fbbc99cf94a4bf804542efa4d16baea4d1dbe6c911177e3004f2d4a8b69ebc50246bc1ed56853870374d2d2ac73f4c14d668289957d89e7a057cf25fb2adda583f9420956fa48a7eb9d76005e20bdea9c5c16c8fb1efc6db068b8879d1ce28ffb3a70ccd1c8578b938732b2015faa17738ffae41a300edfe2c564a85c775fccdd01af5be1c42a81c2e76806b7ccaeeaa6a98fcc1890d9ab22b04d1c0d106db4d2053fb7da715c6c3851b1c6e3b13e9b9c7915fad5a81db1a823f6e9c08bccaec434e2e143b963fb7acbe6fc01b8c0f3be2bad13ea711fe426983566d5e31e782408280dab6b43343046e59f054f45498ec9514f2e5d9432b9b28f8b716cce2a02e64bf7fdfaa30f4e4b9d5a0fab8a5f2c1d4b5c278f83889f676549fcf35bf3836894839f170fca341e7fa9f88e0e3cdbb7a18565c0b5f696731d8ede4bc6636ce988f377536e88fefb71a38e76577eba3e3e9682cf1c796cab2a66da2fbae57df62c53315eef981b97d55bb0898a474b72698ff4d695e56a11b4d59ac3c33bcb1221c498ded30c88211eebd998fe8a96f9f92eb80c5985a5037f1a929f1f5dd446336a438cb3b75c7860749fdead56495af233937a2457a92ebbdf261c302880d44cbda673ba0a67a1456ab86ed38fe7a8e964a62569b1fff21994b193e74dc25d9a78f05d9677ac92a2fe830e1e4947d7def8c911d11bfa536c6265482e8f1fca1ad0f7f36e81a275b83d2b6b89d68b6bfab6436cacba6d12d33e6662c0155baf58f8f4ad3cb57b47ba63e781d94ee461a901a7171aaee49a69b25c6d8a0c49063f7e8448d60bd8de161cd778da0476529d5a0fb2c3dd9b4c90729ef6653d7cf74288cfc75cbc989c76bb7af8579578f5ebdbc833b31927fb6e585a37f13302db297d0b50f7e3e72792e3d3dde42151067679f155794ccf4e604f8bb8d1390e6e98b065f0a01c9f0ed0b35b451f1f8653cd1acdbf97c3518557dcdfcaca9f98c2e85aec32ad3084d79850319d1ea27cfee4b746f573d1450e036cf5001d532470eeeaf2d0895aec768f051e2c29f8300f73f64fa41973bc0d1d38b1c58bbd642807a49e9515cf5ea193e30a4da032659962e2d28d41c2aa6405cdd1627e4ab927303179807db7a75a2 +shared_secret: 072551e254959ce9f2c67657b41122d8a98cde044bb2f60955bdc6e5dbe55277 + +# Official test vector 78, seed: "6a85a61dd08c0733fcbc158abb49fe0b0d96a50dcca140a2e9f5a254f1901985844613b1c656c0cb0112620591b88ad0" +entropy: 0f81a5f97082121244403da3feeb734f6084b314b8d94beb11627aa6ad1914e9 +public_key = 776b6f121675622857b8b376d708b2a861306fe931126822e2e8672fa0b577e8ca3f16495af10aae456a734368677a87fd3c2199060dc1993690c1ae2b76959664a1df6cb2b3738b294124918596b0d69394eb1efba83895d0a7f3081ef81769437cb63b726d4236a65c87c3929b79fe34438a8931cf2b889cf100747cb58d373491e7cb62db266bfb3b7e745500fa418eac8cabd966dc388d0f1b3fba850bfec8c03a29182deaa5ec4256fb3b436f429cac87399c61bc98497a3aca07cec06a128231f945a4a335ab6d1a54a9a59db106c0fd61360ce8870d1cae99201506c9c96d4969f4b487e4d87ba1d45accb5a754585f29db0991376150c65927b20c9eb421366cc840d528734c8b4f1421fe30c99f4c55f1e25d18a1b012424cc9f6250064a61c1b42ac243b6c701e293055a9ea7c44855e575cb6217c381de770cf461040c20b2cea6c2a921c9be483ecc2718dac01c4a5a15b60bfd5222fc988c60b23504919137b1226d7b72fe4105154711d25790a9f64c95356a787058018cba996410aa4f29a62b6cf77439b5784b67390b96db77c1583bab490719d804e79b8954b948388514a7fb78ebbe7959599ca374a66558a8fbe7aac91e8a62ac623690a952e94bb91e64fe57ab4db066867ecc9ee027163a8010bf901489c10ebb736ae619dd0177fcd060c4657488bc50044e4c895191351ca72aff9698577bda5536c3fa75f0d9b586822211cd88d686ca8921ca65bf8081f8604277839cc9757653a46511876f7b98983fc052bc088bc85a686ab6bfd5c2b91da8ae210313949191d13279be375d3d3197fb01808a76caa8a843e178d0dfc116c041030f2047f4b35c0900498fab680d45fd0710d75226eddec6388d56d1c2263768603ac0ba9b68a21173704bd25b6b5181405029cc4b18c6446b5afe5431f0a26bf50b2f33b0aa4032e9f28ac9fb58acd85a670f393351b33df4079a5533c44a94e968b677a68931491310cd48ea1213dd416ab650b3294f06f91aa5004f622ba173795136eedf91598153b8d2935acf33709a8b33e4b32384bab51fa69ed123a4eaac726dc7041b486e8aa3641fb8d48f908c27866753b821aaabb9894b504f845fbea8766e82671506ff5b5012765a6a7b08f9fd3c10357523fb423e02024577235fe4694349c1188b1aeff482ba7a15aa188a8bbe7108ccb7ad6a469054a45c01aac131c6a7c4acd5c050184ca77b8466b6d1992de80242454169a33382972760de2b69c3c000b900d25f2cf4731224dd9a2b84562c15c04d3d1a9ad447ee9404888141a7da3a522f90b9071ad7af54552d0060af1a66a31b9457024a46b3fc1038a7c54b76053909ab07eb36c1dfdf897276b465155aed0e70f9a4b9398e54d267377fc298b9bbc053b281486f8436017c6d98b3249c167b17358c134299ae17426bc9f067849d7c55541a205c1359a41d7a5fea37e758a0893c18226a44bdbd27e0266096dc20da357c5d1a23956b796b305c29e87718f65b8331888cbd53fc2fc011f92c6f49c7f9901a5b17059b81cb2eaca2d348a22a91105f69140d122bf59d74c16a840e4b646f5e1cbd921a24a60a0ed6cad243303a1448b6750b4e451c5e0e41b3a12a73c36272ed86537f1d2f51a0e2b5b5847b0a2d9bbff0a051bd5227600ad +result: pass +ciphertext: 2513e09060af8f52ebb2c83689895b5bf166ca6e9ce9db739a4533c90c5e9f40867926244cbc396051bd543194a0635e1753f2e1366a5844142528ce5398412429ff880f27434e22c14a64a45febf5228175f5f3eaa6c7d15a4676787ab733a34ec64d3e6d35fb28128a0e5ed59b11145a6402a92bda380a38fc3710104834b131ee928f2ac8143083bec3de7dee3ccc07f348a384f8f709829a05fe94e5bc144999ae09e2ce39a88548224c37bbf716b44851f453f6bd0f1052ee8566d444ff9f146785e3a09ce54d03c3d34398730474f314e62d5600a80b2de9fd468e4b8013a278b5c7abd613685bdeb26b3927d11053e55e5aef09028b36ea99df1471dee73dfe63e9f61c1eb16b32deee237a79be98ee3468de973f5a1f3cb411daec79b25a8ae3208503ced8b0604e939e6cf0e61d55a6d0884b38b08493f8544a221a250cd9f4d9328c2eb615dbbfe71fd27e2eb4219bc8de76472dd35809813b111366b6c4ad84b3024d0b084c9c6096ce3c7b50b6108aeb0714f70ce4fde2bd2d693abfd156e090455e9ff36ae938b99d68400587d8ae263058dc64a5386cfaffa9415c54c7db1d5e6a1341db0c724a3cbacad4b286a4f59a5db6435fe0ad19edbda0e608cfdf88cc3e00bcc864e2a700476114a5b7a3b492ce1f66b10ce5e3a46a93e39bd0101d35dd371bdb491c6d4b7f015b52cae6d85f0d71a2967e04fa58fb46b308315b44cc993cd49e5499c065a811a8df99ed94f98fd2f0841a3a3a6d3d89bf869528640aa7721e59f003179442e6cf20881e353435b994fba25acf21954ddb463340979d7d74f70cea856c0b4b2c9116f596ee60443fb3491f57b745258c462c3182da098e84868c6ebee511d2857d341c68a01cec442b87cf755d86373deef1934435eec9a3805d5f2074a9e4711fe350b14b79b42af8c5b884ce4a2097239f0c63bb3b96ca91b3823c11d9b79e508c30c19e1f63b3957332ef80318448e47fd122236b2666d6c66f532ba88394c61d21d784ce765c1307cfd5335c0bf04dddd81de4144dc445ce5c8094fdeadd4f488a7d463c14994c891a1bc9e04649b87fba42556f54a3dbbaa96b08f8e93f8f68a2c4c90d75f0df55515515f438ffcc084cfc69a219d2a2ecf808495b1568ac37cb6d1642bbeaafb9df7f4aa3a22739bc7c9219938f019f12438a74631762c7f8878ca24f74e7ec762df3a3f7e9f104e01db85c1e93130cfff87083671ed10aac6b5508ba479952ef0d5bc8327712c555fa47d15d32c5e252a5dd0ca6676227ca7c5a3bf3c102ca6e0d0d5e846cb52f1d85c2bd1c3c4fd3832eda5bbb7ac1e09feb84eb1cd22ae62e9dba64b10217272af5e5f00ca3e8a03303ab13e8ab4a16e9214d44fb37b11fad964f1de2e45ecb499444f81c563a2b3c599a5e334aae0a912e577a6a8badda3dd04aa33e59ce1797f91ca0662cf36275c5f8be504ee7f4051ad2b346f67c66c17845d0e0c4ae5b049bdf6c7a82ae84fde16223d7aad9a4e54e46a1f44260ca0e2e8bca3892 +shared_secret: 88c0c1e22b68cd65e1eedd6d6208c36492fb674e26ba4e0d4e55f831a1affc96 + +# Official test vector 79, seed: "7f4a56eda151e7b097cfb8ef980440fff707affba91867c89522ced6c5ff3bd7f5f00bb49ddd615d9361a7e4efa42851" +entropy: 31af9345365549ea0360169ed57daf98cc5444799d4c75d9f1f5d615e9df8a91 +public_key = a6f3b26ca06ad98a9a6ff2122b8889bb513558fc1a8701376ceca1f7d87a53f78f953aaf9f977c2ffb4d04f88e33e0ba7d83bc6fd27914a769ae382ba5f211b2f59f0001ca30b0a0ef138adaa485953cb8b6f6ccb56a7c92598c0c83ae97684c26d70d69210c8dd16ae08c4b3c1c30110a581669245529be92d38d9cecb10f22c83d01b3b3660fab4662fc559f48041167fb3e7960328c612a7e99a0c546b63b1b04f22b78b85074e6d32f6e04b096eb89da611f30267bd8760e05c238ea2a587691181112a39c88c528977f0399cddb7a7c8bba3ba71507b3db7131302407052cc4e8125e2bc035172a967a21a0582a05f8aae28228ddca417545144882ca3d644f6167ba30e91368879efac5971c8b1a7a9674e804c08e506ade53bcd778c1af4637584b9752aa1f16a4319d296b93e5368c10863a85cbb55c11c56338285b21cd740695757adeb2ce48b7c658a36b26b670e59947a0d94d022284bf0995d56666bd7968bed8858895c779a3318275afe42488953791e97cbd6256c29a6c6e4339a15d7a7c3da95edd2a562dcc2f6fe077cbd2317a914b975692ad1c3c3d956b26634fe1d2235d66226ba766a447bc87e8674800cd898b4b02c491658b97e25a4f836ab98a99c669b60aa4c30518a6644fb048a4e34822782644038ab04a3815c61da99816eaf388e495cde4a65c12f1bb5f02a1a1b1cede817952625fd2502f2a4b8bbbd4123e71462ee433ac923583c830cc54129bac51f96846d8fcacece9b19f6063734158008342c6f48234d24571e5777074170ae24b20d125f1ba311f4b33cdf91e3a2305fbe12e44ab54cc8c4eaf8553f697c00e8040e858569120bcd0166bcfe1a66e2500c3ab8acf3b58f1309c68772154602ba6c0968553ca553252d27a0b05733d81486d86c590291a643edcca9f8470d573880d5856a6b2cbcff2803713790d17297ef11549d5412713a3e4206b1b7c85483192164209f5b32f709aacfc4bae51f180edeb7e999ace2bf98d958514951362b08a6b529a2a7669c5492c0a61645542bc1dea0b707282a0797291b8c7a510884f12e92f3200ac5ee91686e109ecf245b2672f94c0a4525b7f43fba328099bfe4330888b186d026231d2b2eab7b971ba7680f0cb4653652f8aa8b4e01bb77461d792cd5e941a31dc02d52622b37c498e4169bc0418e23c5d32999726462d3a0a6449918b18db487f422849b67cf047bfcb0c6945bb87cd779dea915b64aa0975d313f8a740de77b0d40612459c2eb73a3fc876ac39c821a52761e13115d87bcd17052fea2b98d9d83ece9b1de7124c9738c0df539045279eeb21042a13791feba9d0e23445293eb3c2c194b76c5febb5582220ca350eca9b90435372f3c5baa0549ff847aedb815c244b27dc5866b151041e884befbc7bccca2fa098b592c5aef7f53e0d712bd2119214c15f8ab848a1864705d0511c50a9942535cf06952b0357445a9854240c026733ac8a39eb3c8bca2939d195763a572353da2956799448570a21d58623635f7a7461a913c24ad04d1495c1ee42c88b82942012b2d4b410fd1907799623f1b373b9c438d2b4c3fc48c054bc5206273f7a9a3dccc0ad8d40070ef20fe4cc99c8394adf63126006ee8cbb821b12a2a0a3018c4f8e52a50183fff79e84c69427 +result: pass +ciphertext: a93e454715b85fec95f1c8ebab9126e7b088bffa6eb8d220089c651cee97b49dde58f10f2709d6ca10a0edaf0d631e43e1e57eacba91770283b2b2386af871594867ad80b88a03d5554d151f7957391a8a675688485b2e7bf619fcecdd8be017498f2f1377d03f59482151e03f1f90bf7cc49a2192fea0509d50678f514835271e114ef1b96e453bd2a5342eee9632c0b2a54daa8a18777deb4e785d0b1b6dbf8d3fd5011c1dfdcf8dc6577bf5f0b35720412df16bca86f3d65ef0b1b01a2bbf50a036268d8cc23a9db6d0c53ed8885495059f8f0101806769836fabe5e72d8731b50c745b24944f00de44262b3f76bfd0e3658c9b05d93b98b6ce25fae3a326e59ee148d699687cba27efa3e49d719832c82faf13160b8313a5d9e8fc1c5c0f7589fd7d143b241216bd49cfb81eedbb5f732c3dfd9598198055e5946208939f9477e90febda986efba3e9e5ba2dde57e9dc864452d096642484e70a19623b6af6851641e6f41fdaca57b6bafef0b1584fb4db1864b852479c632db21089157e4442a4d7dc6eb5343d8b300c15dfedb908bee62ab57d8fd1be322412edc9f681980cfe056bae32a30d714b9e6397b1da7874c5f3a6d296a435377d0cc339485237adbc72705e054278819931f6a84a3335b9863af0aa6a3e0bde969289c1d3956da62f822dd6261661241e88042d672ac48ca1448a42f978ff134f45359e7eb734b0cb44a99fd542f961f58e0fb7a3116bc3be3394b9cf8478f01a35342e9a22bc9afca1f4eee22406cbd5ea5bd582d5b88e5bf0f11a46554323310cbba6cafdd0b3879ff49ef875bc6846133b8bc3243cb934bcd8dc8493ca3fcbd1d4ab06bf2e6b932eee6fee99b1c260c2199e801d68a00bbacda4d2f2facc57fc715ecc7f116b5fa02e131710377da8c414b9c41c3b2d0fe43b0829103407c229451990fcf1de8a5a84ba97798f2e0cfd9e2375f37d306179ad8004bf49871ad06881c2c1eb3524bbd2d547916dffb73af4a97c2cc4eb3e13fe7eac98a93cb0689ab9e1398f8df184883e20671bb4781c4eb0b78298f764a03624b2e2991c633c04edc8c23740153c23864154a0e49795c45abfcd89a619c0d5d45e54aec741fc5afef622f23c1406a0524de27872a72b43f771c618d81223ec284196849093bfcf5fa5903a1bfb843f7072b3bbb12cb1bc2ea13839bd6dca2b4c1d7f1c726c6359339d649f416e6a6132ae9008e787706d1b4dfb8f724cfc439e9ecf2c88114b2f23beb7b493a1f9980612d535fccd24626a0befb6a86c9561b96461d86db5c278c12e002e6992746fd282a6cc8e7b0be91db05f6bb256075f50e0f1676fc8b4844f931151017ee9a4423720203c4ba933be28f29f73e96e8c7b232bbb375b16c82dc53c697d2bfda5afa3d8c297ad7f3ccec05c5180e6637e060a6599269a88d09fac0c2a724e61d99965813a8c11746105b7ddc09ef377dc93f92baf2b524ed9c277a7b679334ebddcae51318ac4be3688b655635043b07d4bf5b79ed743af00ffab8c +shared_secret: 56f717e4baddc2250873d667f73a442b05ca2f8714d4dc4d295f899217c92c9e + +# Official test vector 80, seed: "09fc004519bcf85b20d25d314a0dfc79e00cb6262a7dddf9c52473641afb8cfa0f5dd5f53558184caae9ec34b459e98e" +entropy: 774ae54093d694ef40b63b62c73e6c98295f606feb8699807eda1d030ffb996d +public_key = 190b29f6e7cc26755aabd20d4be75f2fa4c18303319edb00809152b33726b1e54c0f328c73c6805354925b43a6dbe0cadf00c9ce3b1d7fd9b47322c8b91844833250e0e99369e90c279ab48712b4e1c10c0456c754251cdae4cb4599843510be3a13277d775a3242a6232b1ca2979e6f260b3c4c86fc24bfd95255c765cdf6187854f0c9beb8cee6a8391f98475d6aa080a7a2c6147f70c2a9450901f705ab0ec23fc957619d611acc2319c6042e137496f51436a788334aa5a6d561a3e3a0937a37be9f7711c5fc6faa1024c434cc3e41a3865bc0beaa732c1789e7972f999007d4f7afdf953163197590e757a297919766428fd18ce1d531466a55109287c335bc26f946e06a4d51aa27b220001a46c2f4e339dd83511d135a9621c1ddf1083bcc9b24b994b4a3394df8ccfbcc743304383c300a9761859074a3d0e91cdd96a34513735a424238e71f42c328eedb1cdfb3ad704a1667c15045c534c448b429c474c494c7b37114911771d62c39d3f4763d881c0a21c074201301ea0eff13bb5df861ecd882a0350031b2af63572845950535e85fb323beebd613ba600702192d7cc1218309885ab9345ef32dfb757528229d73d57cc2328a5a86acc3180e392144c04cc45ca57573395ef38a95674b28ea7bc8684c8e6a81865a93256517be79fc456472976fea2538bb8b52a188cb43881c19ab47069b36968da1cacceab9bfc5c7985614a3fff7300e621e4865c5f8d30792099d3f793e58b591cdd87cfa36430aea876f30cca5d824fa29ab2b56ad3aca5d483c3c7ee90b4e028b7794592e1acae0fc721d355891c257cf821928104e1c994b8bc33eddf70c3cbcb5e272b43b5777b3921892ab198b4132ea4b200618b1e4559064d491487b1f0135c9da67a39950a5f13a1e6eb409c30957b04c645b052decc23a391a7692390de9085147c96c67f04ea8212c9d80cd00dc07b7d22826e01facca51dab91413e8cbaa24a66a00b4d2076d58c398ecf03ee56c40a1ac03cb02658e6240c41c6f06c174f3414e258a11478c7a76e05c156c1b164903b22991391955c3e75bcf0cc70d4cb79ea27638c54dcdcb1ef35b8f3caa26b0418f340597bed55d586981c77cc6093a889854a85132997bf706177099ee8b5ae44cc1f1f3c413fab7a51254490a6ac4175a99da866e5464283a74c5c300436ac1c7829c953128e5d17cb056af07b08d7f114e0be00f93854e09eb5e0be82a5a4c526030468f95bd82e08c2147736598a656476e5cb855e0c486d1fa0c661202a79b37357995ed445973959cf04116ed0c687227768a41a1b4f79b8080a740f012dd547403a30a36e62c9f5a1659abae73a165202122a330c61f492822ea25dcc22cb97c00a38bb7a4a493ae677cec267379c3a1b80ac2f4612221976ff4c7afc685283af88ef813a9beb73ef380be8a31c87135c6573c0d1d5807e63ca6f1418b947c1615233b911736b0870b766c9465cbb8b29573addb33f21a07cd890f1325c200545d5a21c5da1a0082b9c198158aa2b82cd5d94bf5718d39bac4d9096093c78a069b9210d305e9199d45ac09abe6a8033c971b2903874ac6408b3510d318ff4b464ef16ad3e56bd664cadab4cbc2eb1f13656c6547db33b5f529d253c85a728313bd36b9f09f6455b7594a10c1 +result: pass +ciphertext: 4173f72cfd989bd103ff41f258cdcd0bcf3a68eb82c10fbb2639b06605ad14a7b2bbe670a38b3c953df61e7a3962ccd6d554fc12e8010bebf1a2471778c69b130f6fd4a205bce7157cf527cc7480e4dec2654ee466cddd7cc3b48d4799775979070722ad3a0873a38bb9d50bed48650e5c0e659c002e1a80e2c81ab18c5862dc734c15b146880018611651a4b9a498818fd650d8f160e7b93f8f669df8b1568e7248fca844e24113899e45a4e2f9d4af45965d2e20b98fcea2e74c21c2c6c8697533b545e9d0168a74920df3813e0e9631970427d59b16b52c4c221074cd6ed9f5cb07eec18de8b7effa7dac2be3ac2e75c2f394084e64a8bef17efba88cacec6b154f66a737d540503f015971d15fe8bf1b6071061c7d1a0713118f365aa0dfef865e8aa70403d9163981dacb6e9af1697745ef842e60616d9915b5d6e5279a3713b0472dbf0e02c9d3521d48ce21b47b531f942642c961a94170479c62dddb6f81dcd5448308df2defa52d2c90af853a55136c8b6b7263078054e24d42d90e24d78d79b76fc479891305046f6a51100bd553a9b37c90b31fb1dd905c420fabc6c3a96583010e5c3c95d8fe722a185fdcfa1014e454eca7eb1ab85448efa60c988ef0bbe8254e749bb0017e1def4527b27d288a896fd2a5372d20200d0a3e6b88428f9766d1a636449b0aa3d88e108638ad159810cc75a20611adac7c2f6402b50af48a13d2c2b80e4535c37e4c1400e3f39d896a578a035e922cd3a214a6d077cad36ba84186701c0b1c6d09051d808137f523190f538b76618750994ad5dda423754e63012bd1d0ce1476753eb16ca8d3af4c7fa329cf5de9666700f8a5a510677ffa2cdd590be997cbbeddd0a9e31df4a8d05b49f52d89b53055abed0f44a35a81f82e82963ef3a74fb1845e40aefcae153ec22d670e00b5c3c21d04d6738e9b3c36db72beb653231f8df2ded30772576011049d06e56f5cee436f02a8cab545cc55126fdc9a0e247263976b6d83de2f2a5174007f7f6a437fb02eebe5e2a616509d9792b16cfad57bb1af018a87f397c71c221761a3633c5d5f8ad69283911e017691fc76096656342ec0d9aa065069b0307194bf5d8471589af26f5f95895c8d5181f9ac05524d4425750448329b53b24fe6fdf3738066a4446522aef01d9ae6d800af8486e5287185f21f5811096996c00892695d0f08d4e7da2a4c019d5153539fce47f7d8d3618e7b5ebd3cb428a8c6503896a7ab1b536da764cac22f3571be53846a117a06e1d84d7b676c6bc7d0f51e9d356c05b29652248ffaf0b2d07511df249717ab8f766657ebfbfc57ffb521a9162d786ff4364bcb2ce620e4f50040dc829af95a2af4f9771d3ad297eaedcf41d54340bb17219996fb726aa9263ecebb5552ef87651d4b46c18610e4bebf46c3f6c490c7e9ef5352f5187017546ff2022c54a3fa127cadf3542c324880d653dfad52ebf0a630d9c992c7284b9bdde76b198d27ea99fc96c2031082d417b14834ea12faa69e310a30995242 +shared_secret: 35f5517999e15ed842904d53d5b4747639d1165014ab77474c0dbc310e586186 + +# Official test vector 81, seed: "e3c41cca6f04cfe7732fd54de30cc5caac93e2f80e76aed7d24a962a3969c1b6a311459a3ec3e510e3e9b1e4291d4d7d" +entropy: 9f27a47604ab5146caaf0aafe6d149424f8d66e39ba3baf5e6c73b19221b7e21 +public_key = 8dec41fe4093b014449985121e134c925b37b11612a9c61e97d5863f81a83f903383a517d1ab1769921563b86069c9c20841481be7a75311cb1b2c74f4cc96d2aa916509cc24d33ca7906aad07938e701177b42158c19ff3040389894f5d4c9cbd608c8234cefac9bf75fa177d5669f45a195f420b189bb340ebbba649996863618366766b7c990c6001a397b00b71272cb1734adb60a5b1523fb46be42752eba4bad8d6b008883e2697747ada77635174d5f7abc89157acc61202100cf719c9b8c5bfd7409fa95641202384629b925c240be94889bdf96bdc176e4dd3ad75f7b2e4c2abc9ea8280f07df64a162d016db3a634071944f6468e00aba03255430375660bd2c413a0b3cc530de305948d783afd0a41b4a202fcbbb620d9bd47b1181859b66f922d0b5c464f71ac5682829c8c6f4875bce8c37c5212113cf77a8cf480660b0ad108a0b67c063ed52bba442567ab31b30858cb33584d5422ed7427bf085d163005bf182c90c96cbc89ca70591dd0606f95dc6acfeb3315274f7c4937ae511963e90e6d03646292743a4178a6f344c244194f989e1c34be06a09bd5086c73992da8528caaba4fbef1502c1abb01b145a7a825a971a001055e2b1841725cb06eb23625bc0d99f89c1998023d760db1960a751988529628b6aa54308a3c895688047a003c089ef4a3232fda6aea0194154339b75a0a25402212211f3eeaba98cb656925c34f46037a436f89e01bfe408c138601e3a490675abf367194b377158f131b12740636b92bb5d184c05a23cea0c66519b2e8b094610655699976538471d77bbb3a8613a3ea1ee7b22642d63611b498e302540ca71e9b5c1aad6bbf309a13f9ab5eb57a5670fa9244280867ccc48130c74c50219da3168a26a52001713ee7b81157a6392199fdb4a56631b2d17890e6b0bb82051b9a1c85ce8aa92a2557ffa499c8910f7e98c3b4681ebe6323f4794e3e7324330a710b6a87186c36ff04602fccb97a7842104547264437921b413d52229a1555226a3bb3f090bd8cb09df92f4b4093319c434c04a773acc094bb205062903adc121ff6c178aa5d02f4b401e2b43bd79966d83a014bc8a8fa8347e1a9e8c6947134b837f019b05124279b26f20414fe326f3464929105974a853961a6b55ee90ba8d730be6a51fde90b4c23753bd9728077b90bf1c656c0738946bbbc5a2d72f95d876437c659b1bc663f6ab2b9026ba0401ac168c05933dc0509f7390ce8a024a3a1267217bae20c0d26c9d824182bf67ac60c0b121184a42c89da7a1f2de023ee6c291dea37da360b6f912eb95727e0c83efe0796d603b1c4702b2532af8d34053e1c70f8b73d5874578b3a2a8108b12e603d8cc1637d54bccba48f73d08f63c12fb8bb2e40938456c46209b262d8f08fc9b576d463329057a7fcc86652008832712e15e31eba79cb33a58262f822b9b8abbe8c4a025729dbac6f4df64f14c9959993004e0a4398b7c1e049120d404fc2683d65e85cd279b8d9e9595e995631f3469ca25412a54535c569d80c2a09117733f529bfe9a9dc766c8da35bdf0b64d1c27d0fe31ad736c06a92186034468539a3adbbcf0e67af4e797b63a0494cd91d2b9b89f8d486236b9b24772383d81aaed73286e5dc6e35a1dd0121b0a362d8c94022a515340f +result: pass +ciphertext: 6c6860f7577d496c61de133295defcda33462d99ab13f9265a9daf5a21ac8db6e6403d0fac8dc4a8ad196a93f7afc736d23f2de65a506c97b27a3aea84fad37e113607e5883be0500719746c9aa8a0992e4109d0009f350e44990117f9b80083ba57bef99d7229f4bc425026b522eae09bb2c45dc2c14bff8c65a51b624874feeab6979193f085b7b6900aeacb63a2bf5fb2f81d0b48f07d392d83eeeab6540c9b1d4ff4b3068cb471bbda0d9d336ceaf458c6f6acc5c5bdace99ca483a310b6839899f421b15ada7520e35919b475128aaae3b7b027b872c5e91bab596edd00fe954d06e3e8fb8cea0ce36f98482d55688fea29c4717a07d01fb4c5f163cd85908c548b91c83bdedc4c695e0929b630aaedc2146a099d576821cd880fcb1a1a65a58c14e278d094fed63c67b7c6994cd9158aa9e15990e68945a679534035d06e1b58012fefd73461c0f41e0c0630f7f89fc8e7ac1e8e497a2dd15e3d82eca2b5eca09ab928acebb08854959ae39a37190b4e4c6fcf1d7cd03772f10b49e5662b1237a58b2b11f597c51f23c1d105896952c4b6ab6cb645758de8ed34458ee91a8a1682a8f8fea432ad3690f0ba73f980e4ac88833b5b0a85bcba239ee176f00b78915ef7467dfbd42fe23e06deccb70c3247382ebc16b85458d284255fe85bf0544977697019dd417d7577542541fbc4633cd3ccc979aeabab5f9394fc7c7ed15641927f2d7ed87f60e7306dae6ee40667ce715329a217da1334acff5425bf643c1174e9927ccfbbeda133fa2e2a1c9c7fe912f981a4452a3e34caeb6a9e898368bdb40b4dc40915d093e1417c330e024f8a9a235d21a5184a5eb890880eac4051630bad9664ae4927e2e2d34a408de897a2839bb3e43e88e4f078be3c699c7527b8279579807c9a06ea58f32bdd5a2bad5193bfeec0cfa62ca7afd99d9261342e4179449a138066bd563399c0b35538ad109c28afc5e16b2abdd46a930246b215d57bd605bffd1cc042ef447c448fc4843b13d4608876c85d473fc5a663b2112692401c7f833680766839350c127d78ac462c6fe132fd9b1672f94e9f08a18b13ab344b87dd947a8cd9dd43f805e0d8d56c1d11c17edf45c60c1f26c364df7830411b3c96d55a1586ca15220e68069041216a2eb7217113192b518cdb235272516e766cb7b9d7a2ec1a9c32a3d2c885887cbfbd4e893a11d68546419f1c0e0b8ec69a7c574c73bed6165e32c14363dec9bf27fa2510dcdf6cd0d8ea0a7c05f97493777f9ffd69287e0861a36df8e6b8c1b28513c2e1c47c8aed6797b5e6b345df7d402b64e280e951192eb18f1ccf76c49a18a7c06250e72ae7b5f6ce6bbf86d759eb9f3a23ab6b384dd584aa26688c838ac7da9ef292b927bb7df9b4db4785e345174b46231868f70827615de884e8e2e649eb5b9c204ae097feb997b05d9837300b94e95f4356414e0253520d2b49ea98d97ef119f5423a3de5224e33d853e67eb0eeea5a101aa5c5145eaeed835a6c13d80c25b0e551ed2f357a9ae8b1 +shared_secret: a7159981a68244549b96b27991e1323013c353bdd9c8d6f583897c35923e87a8 + +# Official test vector 82, seed: "373fdde922cfc416ed96b444e445bdd0962e8989f6c50adf9912a89937c57217d3600b06c95440448e3f601ae69ca5be" +entropy: 90044031b7597b5e60a4f946b713e8996d0426d2cb013243d9b7d8f8ef159a0f +public_key = 86335a761609caf862810ba70e00c83da3cc1c208cd893233c8ac3247b013417cecd467e9cb87280aa13b061bd0a661034ebabe9ab6e7a447c2826af3cba6798270a36f7431ae9119de2245704110d159aa438a6f1546a39286a7a179c5f286073d5b944ea2000ab61fcb9373a4a94dba5c9baa94056f35ca1810106f2ce65b579c4744f94955db4730265053b812634eb5156ea819069f6371040408a2036019967f4163c1ea611c02ba295a51581644dab07872d1a5b21a32d0ffa349e3739d961a9e9bc07b6d8cba3b945be491958813600e781ecf54912d70e37832e05784c5e12271a5aa5d628233062305a28493bc2b180d802423aa4f75cb6610c16e8798cec72253798b189eb217238b5d063224f78114715818ac4ab40d34042860bee445fa9b1b02dd5a7c7b6bd8b03768e7c38282806e5fc7a93a9094246a403111a39bbb89ca4ca33f9b381fc8d6447450d3b4f6c794b565b2735f8014fe35e78a94780bc1557bb380db47d25791b1283094ce08ae4ea9961882d134bc5579aa9fb44127e2670b85001d58a162e38680d3c8fd2d3517cd4b36aba9bf1930f3d4c067f2a5b4dd702cb9b9e138bbfa91c0f49a86ba283091350a2ab3c1f3c75ca20a4a160318cf88849ef2102e47211df95a2fa325573f60ee7ec5e70d3b88d291cf9110b9906401968462d2ace979a825b088f7c2b330fbb5f15b1b9f24b84a646cc6a9b27b03767978268cba750b5429823e7ad3a00a4e813052011bb0f47cbac838a489c568391c7d05457f4033814bb9d52a011ce787f0df2ab1bc885e293bf23900f3fa019238b7447561eb85b296930232b175379f289982312790bb65743cfe65017be280063c19b033c19eb988d5a827b64777eb8b13244a9b6763c63523a6af78672b652ac38f33f2a870c494b1dd34a9af239556ed9412a48a7b3501daaaaa976daa971c1565f37be80c33fd3126c7bb3aa09f47f4c9c503e2677325418ecd2058fc7518fc247b36c0c8f59427bd2311ca493510794cdb734cdf69c6b1a9d5c990424d819f35ccc8750b4750c43394605bb60b7c4dc39d8f71dfdf1c6da319f6d671aa170065102086665707b95ca4d241c26cb4acbe928d23318d372aead3a99bbd075b5186abe6590cf5278bf289050c13789f82476620472baaf258c78eeb7755f6c6b1a113d91da945a837f0c84b353f9aa1c223404a3c071a27c84a6ae90d31a0d254234a18656095bf989456cd9aec6a837df6880c9ba79476431929c9b22d9bac09acdd8d94b7a884e261037f1bb5335f98c4c491fece5ae0a485611a50224809d48aac84c16957221924d3c2d6500107e71bab5580339b0832e0292b89a3f25bb40fa0445f2b3122f97856f739aabd568d1b0851b47ac947b25d2da6910d05b44e26088901d487cbdf2f782c2e35193021501b2cd264a6526b4aa6dd439502601fd7b203b088361e6218c1b72854648f4023199e5aaecd51a33990b74e4366c07818efcad158a56ed623f63c20e5ea3c519350cfe16b0dfd3af10a45755641a388590eb95b6e5158ac5bc4aabe686140b981cc5c2ac896945a4be089201b56744c439630b56a15b4a3591acc88f3c4680311c24d80b5725bba86cdd22a3732c6a1bf7cb10f14d57ee8e5901e46b97e63848efdc76368b797d +result: pass +ciphertext: 5c2e0a97eaaca1d05377bee9a9f4cf0238030f6540802e2fae3dcc7911077887a4fdfd6c55272b80659dd86dc65f1f276ce11b1bb9e7967afdb9953976cd604e988aa1407896b2319618e7552894eac35c553ddf20e591510859354090d68b2665bb15cb352d4afba522f3eb03fd09e30a27c946f738e38eda2b6e8499413644efeca48031edc811f162c4a419eccad5206dfa59e00679a4ca5d2c056167ec2405c5241ace69dbf87b4444b213583e7996a4d349e32fbeaf611a22ab7631f2e908e0e02935899f248f9c2a0460ca4aa21e7dd79b5fd84681d1ecf7a951ee903ec1c4c92a1e928a09755e43fabe1236d383a6dfee5e75456ea6ffe1f9dbbe61df6140a432b59d6bb4a98626a62b581519a8ff93e360753f08bcaa4d61dd89f0fee8b201e9046a2afb4168215d65f097df589b12b8bdc469dad42ffa176efac5b903abc65df115d550f30fab8ed459660e34b49e0725b0b4ab2f797ae4cf6e7ae0049c539953163b040999eac7dc13ff238565626b8efaaa2ef0874dd044afe71c4c7871610ad497b82e086ba9ab31af88187393e4751fd85f5bdaa13841df1658e11827d44080094c95f3ae409bae7e1d9bf337338eb4ccc86f832817a12aeab3dda8a83433bcfbb15e989916c8dac1e758368f60d515f475d6eee6545ce33be1700e826500e302acf28e7eb8f6ed90154cf0eb1be1159013fe663ec45140e73f079af6189fec534535644557ee45870e683f040249fdec1e191ff1ab576569a2a0af75d5aac79c20a1f27b738a4d96d95dbfd8bce713031631a89a7f79ad4e9e78b17521485d07d5610d3b3554df410053ba70f8663cafcc2d6e50516240e347b5ff2e554567a7a8bcf2efa694193306727f5bcdb0c69dc32ae6bc34d555a3f801ff77c70f9bf6fa0ffaed06b1ff713c9de0502be15da43c3e7624f6256a0d59920a7f3ede109c0231dcb2801d71100b9ef431a018af4ed9e882c2df9095ce31443a962e1b39110ebdfe9ef4b575fbe5ab0d5d1fb309719ebce81687e21b85450768a4b074e1ed627c7bb2d9083862cb904a4724014e9efc5066e4cedf2612b66577852a28bfa879f76d9500791a87e884d3e7b434682c8a3dfb6aa9336a5dbe59da7091969407130e570151df14fed6a5a217bbdda35cbe20354292ad625ec1195d936f7692a123f51b90208e289886473d33cb2af68318059c4b98c9c9bb965876147e326a0d899af928fdd439a5283b550207c15511b215e0b8974b57d2bfd176a3d6b5c35949044741453576dd5474fa53f81919109c059e2f068f91109dcfb95c216cbf9e91b670a4249f8d91ca4e900e5cf8cd41096cced87c9b0452b476cc7049de394ba7d44908ebb28362fec85b08660965665c6256f63dc6ad9f6348139fcc7e989e664819cd46b0b788cb25b219da868593aa650903b6a5cec193c3a494303363e170021907c41ff4bde1ba4665dbdb57daa18c7618ae25a0af077136113512c1fdcd894a59f1ffae6d0a2631124f7691b5ecf0fcdf01de92d27e +shared_secret: c4041a29c5b744e9039bf5155cb3ac0b799356829557a7aa3feb4b3585e6cf62 + +# Official test vector 83, seed: "16bef67f7ac3a755c59c816478b75fcc16ce5844db537791accd1ebd49d2824b105fd2e970f728c8f0cf16e439a9ae2f" +entropy: a7a31e140891ea37d2b6424b59b1f84f89220f32dcb73e037eb912b389d34a48 +public_key = a4b21fef3306a34117e05c4f4736af0e8cc5ae6bc3f294188ae5397ef69f26303f9592a694e12916bb56e5aa43cef5c183e6ce00f78ef423c3a838ad2cd3c4f68c142eb23dd5f774054668eff212b2bbaf8274c7ad10cfcec5b10bb603ec6ab33c963ad2a22b23f7412f93715a3b0be0b1754ef383c2d52a5a16a22632c88a9635af81909d347e64715806f93e0aa26756b25a8f5984f8e298abc12be53850b83213960428562455d6a7bceef90355318b5bc78734864d1af0bf1393849ad715c711a5226065586b80f1357d961a9ba74999c8f47c7583675245749bc56152f1428910324f2706c8718208c4a13158360365337642279f5009ea86197109b78f0a037cc298f3085c46f68aab45379cf59cd504a9461b47268ba03fc7cf7b1aaf9d461bfb3a7e68b396419a44bd56462e7aa2bd82223a09c155d26dff3873a6052472d6796e24bb7daa3583711cc435a9b3d3463812734b700614396a6dac3c2d838ac103d04239c847241835768a2bcc3d6f8567f6c998b4e7ca8d30a81582686f211936087d3db54972615d4a9b0e1ab1765a18c753fb9513d097322154ea4a3f934c8fff8520af32ab05f26d1030888c0a1613ca74164793b5f798ee3c589684bfb115cd6740bdd5141f1a17393b191550192feeb3c8d2c0b4c37790091312fab615c6d194f076c49d01cb97190ed9d4a6bfe0957047933e2835353085ef611c6f9c1f86dc4366c45cbe2281b0910ae39aacb271c03260648f7c955e99367d1b130c85289d586272fa28807ccd909185dbd5999af47f79da95ccc4859e8a84b2983f0e9693b1dcb506d7b7aaf03f158759b8006511380b3aa4b46cd060f96c0e16060161698f26e073c2f74e9c5b31f9fb4df5dc0f3b0773470bbfb95135c39199f6f281280480ae88573284c44ab9b91f8942ad423783263927c5857d5832a6e1576c6a59e7b1a498ac2f5f71c51b4c9a36cc4d28c042dea588a4756740782b07cc245a069d42245943977780f11eac0c8221f9938fb05a5d096401d2a4bea8c9f46564af831c907c4fef6743ee482339212bea730113a930c0a5649951abba2c6a3afcc4738580c61a4730aac4dc3c84dea158365cc6c760b13ea10b194b2539a55da5f01ef6c55213815fc6479f1bbb67d5754161d4064ed1247aac8edc486a8ca1b311fc653da3be4fac0c81ac0fa54b99030ac2f824598ecc699a31973ffb34648183cce8cfe6495723975c7ed7cbc5281811462cc1ac48fd9c5ca3da126b8125179b651a95b7749bcf711a018eaa951cc078aff16bde9a2f5b180ebee3032b5b2826ec83af147af8288470b267a97c5ab0244d3fe538e986000de3807132937a811de5228bfdba209e642fa3095045266e11f46e99f1b1eae584dcb8805d7455d3435956cb1679b8afe26ccfa7224736998aed363c0d82b1d23b339a16abb5e60dd447bd78c80e6657bffef9bceb18a0c8e602936ba32d24871d6470c338921366a009fbade8f4ab940bbd22158ac5201f09157d0c010825b290581b4108573e720acaf53344fb876db0bbba53d14a26dab409f137535a794294814e2b3f8f42c09f323e072b2519588342448e24a769af363293f4c8786ba4b70330bb80f37de30dba857dace4b8291ecb2f6ebd5a06323b11a89242da833741e9c4 +result: pass +ciphertext: de36243ef4f99396bce0bfc9d8d3d2165aaf7cf15a636550904066b0916c4c877408c24cdcbb9d976024c532da78c1fde5dee90f86729975d698dbbf24c908a81eb44082e49a713a2412352b90f4ed6ca485def0dd5dd122fbf5e8bc8b2d2d1b66c1cb06c9ddad615049b66ae4d8fa24ce3d78598d9a973ba08d5e9e24328743e887a9cf96876fb5ff48ff4d530d4516f912d5840d06efb6664270bf8d2d5d7ef22d637e1b5d47728a6948dca765b79de8d08b151df33b27560006026350c756da22797bb886261060cc95d1adaf05436670f6029e4256d033415d759a3da6012a6d85825a2fa925751cfaca26ec701629e348ab0d5e379fac5292284008e15959859fb2f8a9e137dbd35b71cbf02f5abe1a81c65b745aa2f9f6904ffe915072e053bc7a6aaf67b441ba16f911585f256b0f6aad431bc76193305f4225b6404c9c2336afa3f1d2a8767fd1199e05af964df23a027310cea75db011dacfa4b08157125f883f3e6c00bfa3328afec8f1c638bcc32484a3b039ce3cb2c87677166ab56e0b938e655cc72e87b2fa94a2bd28e1ec65b56cc684f67188a46cfaf2ed8adecf6b9ad2459393d56dfe2d7039467a35d325f52da2e26b436600507a53eddbf9323b8b465e7f0d1921d769ef1ad5d481eb06ea61dde7d25a2fdfaa33ad8028ce4d8275eb7b82c831e217d8ab122526626bdcde7d8208e648aad8cf643b11253b9bd2b84504653379cd8afbf7735ac82814a60e829d20dbdd819b23f840bf802d0c285c418b6beb444d4d916cbc9b169befb6f19bd963af3e3d9c66ad35c26d9adf5f3b36aa3e5c1dc105344d40c2865a6837b61f2ce00a2e2b80d22f6a696d5f25de6e35cee2f3776b2534e5538fe5c27fa1b0d69cc97559d19e99260c65306db59dac203a8d7fccb1b467346cb5e4823b1a0eb5d73890eee213ec5b4dbd16377f23008bd795245e159b46f911b985fbfa0df99b33efd4aa9096bef2497794efc029d719e9331a6c042f4e08f5f4f2cf17a1dcbfeee1e7948b5f57d7a0e1cd26abc8a22ebf0eff45d3e7c16b34f72e670c139b92785fc76787d92e1eda38e4470bb55456ff37418a99c6aed43479152e040e2fc69209c487639ea915e4076218f6352285a09582275985c6ee5d49bbe6e2d9d1b18a721e42136e164437d96f2a134652ef092f2e3969efbcd394d7f2c99f1c12edcd4514be7a9ae7f5ddd5b743c819e12756d2754502052a680b24528df8aebaf96034da78e5608252ca6975db90973a65150af5da69b762724660476fcb58dda5b117b6c988dea8690bce26a36c278a449919ab85fb9e79df56471ccc6118912a27f2447252e8caa25acd52707d23ea3243037b1722741f1dcbf47fedb9675e2914f631ee01205e77ce05ebdf4c9f3a5203bb719c4efba827ef57c89c619e0d682e33033c2c05ac04c5a02042e0f6ca1bc9d92a7e11148144d6c98101868dc35541ce69089f0e02ff3e9fce5da3d4088c04ce8bd380ff62118a2513acabd71791555c6027f50690c6967799 +shared_secret: b8441852349193321f466ccbd3afa48bafe903288108312de26e9bf0de9f680c + +# Official test vector 84, seed: "d0611f9ae5be4da5d7eadc9109944348e716cb3daee545721eea8c892e7831cf2e54603146454cbfd92387739e9a78d8" +entropy: 70eb3f791faa91f1f982fa477dbcddeb2c55691c07f93b04cd31b37544c94b42 +public_key = 2e248784527ec73160954a18dab4986fd146767bac1506885a7abbaf203fa7923cf3644b146a7687dc0f56329e3c64b052db6c14e3211cc560d9a70a1ba641224b2eb8e70e44b25b4b346f3037454aa69744d1777498c98ce741ac1008461868839b4149135b41817d135060acecca5af744e982142de574ecac5f1432a7d907628eb75439d8af02d37e5181681f1b249bcb22d52961d20458c860ceb3175730acb9b8c8500dc258fec13677f40506bc76f8eb31cc91a605e905ee839c3e0b771c32595a3238acc079fe6034769652e5cb492da0a3e8c0cdf13c899cd5838bb46a27e343bc62ccb6294c1619af96817d77ebc2e1431f997566485327cb9331a262153cd31c80d939d473b81feb0910e027b02c29cfd66fbed3cd09c11fa08744b9e0b62dc3093c2552bc7a770a0550cd601b2e6559851bbb5d8665865555ae510c2df9637c07790639c0af6b4bdbd567b704c267e6abf2b371f580686a1910bcc02b7ec3c08a7aca3fd121cda343a61c6c995742159cce5503b4996a7a6fab9e8dd5713bf62f3c0792628ab621741034208ca01c6130d3a3499a186fd69db4b3cb77417a12992e8e448fb75b73f4ca54fda42b2df2a4f9e14c39424bd1592b90968434eb8f52a6a1438cb7e589740c8b9b2b6123600b28ee954cf0d18dab1bb3fec8a0ff6379a4313325c7011f4c7fead33c8fb543c3c90b6ab35e01e31e2dd4262bcc92ba11ba055295b3f2a273620576813232876d1e9b18e22639e9c3759eb460390bcced9bb0e368c6cad846767c69349c59fde27405d8ccc900ac2ed762b1ab6381eac33f14aa27c047e5a63921030f8ee7055df00f7cd353bdc1487fc0875746b9deaca76fbc70ef5925ebbb994833a7eed732235b06e6ec6b28217c7d9a86a5396c80d43c22c56c19570238c70e7a7c2b6a77bca45785ccc31d8a880be379b05e45a1b9a8b3b2520826f888a8a025e28abcc4320bd1e30fdd17cbb3018a7a784534379c46639a21227d279b61da608bdf9bb9304b322f103a6a762db152548f192534a94df0ba1b2c97b9af8202dfc646a84270400cbeca95aada593d8f4719abb6cd4a4699787b92d63279fe9bacc0a989a59cb0ad279a567b8ca9536e8107aa7b81b2bf7730b9f4a470c8170655a0842602bc4610f9e7bbdc6acfbdc4732e4266083c9c91d41ed1f2422822acd01bab34c4789a63a700a5a135d65495841e69ca2f5334cbb1fc4c7d42b0f53bb63f888146163a51759c43349377ca824b32091e9b9c30e025981b82cd23aeb5385be7f398aa5025e87b605827328ebb32d6682896298f652243ebb3b8a6f759db824d3f577cfb8aa04627a80a03804039478abc2a627779d1c87fb23453ca254fb51c629f17c1edc8cd8c71aafa135051320f81c65b06711282ec6e7e4b021eeac0c3fc7ceb4b192897899f6c145f53bfa2d68a5b583002667d101a9c7e721f0da0711ca79df954126d9199fd6351be89225cc52d6be5c906860f6ac81c56477cd34c94ee43b920eb6cb62bcf27e5669f9160f0eb2ce7389b8da47cf8b22f46452961457dc39c54fde66a41f95cee1ba87682ca6342ab76f6bc262632282a22293ba7be9cc567700b5c13ac19f126b16a43bae7e4af067d280590ff759d4c3a502ab563080dbfe1df14ac06d254fc +result: pass +ciphertext: 36522827b08eb3be3116df1a5c1d91851520ee9eda2a3fb54e3258d536e7b5345ccf7ee7c44e8b141a73f6251067f67090cddd2ae032447a612c6c5ddf292e1cde9cfd07f19187c2dcf0a8e5c169aeb8fa4e9db1d013413e62a7e42f1ac46ca3475bec9f8d4bce5805e4ab86d2192ea38e9dffcad59f45b3f27785d3e7165beb443382778afcfb1282f686a2abd4764a21422fcc626baa1076425e3f986eb51de5ad135cdef25dedc61023ed178a90ae633d1374eedb067896a28cda873243eabc246d43e60eebce06a065e0311ef7236b3ca74f8d0aa1147292f08401444ac8cd66dc7c43852941e384cdfa297910084c0d7a100086f6f41d1e103e0eba1db3a4cb9980cf1c072e3818e2d7ca76fdcc6b73bf91f30ecc19715671ff775ff9426edc903568cb55c757ed7f785135a14d3c151a1e0899820b5db36e7db087b7682d98580c07a4bb55e24972574f989f663adee7b4caa447bae860badb99fda32ba516afb3c9fda27a7422898f0d2f85537d3732c57cf3143009215ac73056d13e254d4ba0399f49761e960078b78da2a709aac554f0fb929c40d2affca4b53901d9edb42032b33b18238086f469addf7d27cd36d55b5102001bc18f3d1d3662477c0d51f37c150be0391bbd15889f21537ed54f2a3e4c4595819d83a39d70b28c4cfa2692eae6e9e3a71ceed89840ac4246367af61a04f90c3bc886594199f3df25a1ee7f6960ec5144313b15a1aa22e5309800ab22f7e690d1dde2bdca0506b68ebfcc16ccd97f6d901d2cf71fb5acf85feb2df8a22679671f1e65955289f35445451cbaba874b5724fd9423591a479b7e2144b9aa1d84bfb577cb7755dd6ea893f077e05a4c9d2697674892b8f66ae9c659a39d7944bfacc6575c8ea3721bfbcf1ca63c07574f3ec4a8d78e42605789bd8d905d1ae70cd4e9a9350ffd007a81a43694e8d3ed28e028cd24168cd84cad519b0b58aea046b06d5674bb656ac23fb3aa258f1f87d34f69e8b52f208adf0f476804e5080bc8d94d666fab802e950ea6c6a1f9f0c201773b303abe37af0ef90527f372dc298efd1b0768867eaed3c4b2a60cfa94ed6cbc4ded0a394e20dc7e5ff857cc7fe7285ba7257c3aacc80c9058de86b265437d0c2c6e9d1fd55be37155919e2435888defa734d4ec60789157693717fb5754b60636427c9e58b5a1af828873e1a75fa02d0763eaadc967f3973f9cbd129d1c0cefcb1facc557f1d8379db3d2b5a133964421691363178e24a8c6178fe09fd5e22cda6d7be38aa32bff539693f1d714d52aece91e93d38500a6253283295f51dd365d7ff6ec1edb6869f8e556e8444ca00308769cfabbba9846574691b6479662a392ed93de8bedc1b03a01b1e1612f395247691865efe48ae0df8472e3a07b34ebfe390c347e7f42b5c6358d679c6a22c84a7eb8fcb60486243caead763cc2db255cec565e094622d272407b703dca27e6783fae2fe6b42c24a9f8ba6444794596538ac4c1666626b3d158370ccb01fab7eba48c7e2b6029be +shared_secret: 9d0d9ba501da1b46775258f5c0904721906b237c3461da6c31d70da8575fac37 + +# Official test vector 85, seed: "fbc38d7614d7718e931edb850d2c6f0c5eea9ee889b3e25bd69ac255d5b91e885d93e808e66bf9c88c655dc594da5792" +entropy: 30f4095015ba88b6d969672ca3f438c395dacf7d476ea7a9e805ce932d270a13 +public_key = 0055afab2b0f8c4481d2316c876607a02b744637928897c26c1c5762524f42a00b27d4ab7c198334a13750b8bee321cf5021cbe4536246a0879890ce6f042de3955e373c113d7c2e2df360a8fb5c76fa7f1f594b64b562d0c3b524756b2f94667de31f9a67aefeca35d6641d17d167d6d955d6bcc1709297c9277cf614423b212e96281f6100074d2c2209f976df6332285b3c412a8f618c5b5175302952366a5c67462b07fb74cecc5726ca861e47d4c599819d26329568c139ecd31b22ccac2901d0bd347ba5f10a51b69dbbbca90b574405d8c0600617e682bf81472018284a70982773434d07286b319ca4e3fa6b24b25171093cefa559aa33ad3a0336a1a18205a07ec4463511d3be9ce0b05944819b9647ffd94337c94b7831694ba31cbf8c7af238c21dc1060799c09bb8aae0a084cab07c3bb8502275398e05058b142794309e3bb287fa32a016f46e9feb9115f09a313970293b25e7d25c4abb623c1959d6246d7e00ba79068ea03963d9598fb2b04879c3379397b086960c0d896e419ca5f7667264e1907102329474867cf43a426b1e117826ca542cce64adcbe154f36637de2cbdbdd6c1ad7794a0c18fa339993e873ea54c3f92a68afe0445305bc97b76c61b3bc693e30b2a2b18a6cc28add35cdcf601554b17df39998516549b823ae1596d2a88acb9433433926af62263deb704a561b2f2397381228fc5b15bd93c3911db634b19cd7217508e328113d565b475393d95c7abe5a94fd6c1cc1283587b97db55109a08b1ae1060cecbb15675a253ea154ee19aa9ec29ec33400e4946b89b5b1b4ccd41362a3cc75808408f50ca8662b236f1830656a432e2193bc4f09ad1fc6a82252174a6530b3b078808c8798c9e110820c295797580a74572adb025cc31c75017468cae17c697a79df023aa250c827c11a1491944b9d6156d24b1f0f53c12a1aaa5946bda21485cd18aac0034de843489b7cae9ea90197cc471444067d01f873175693224c5368e3f3220ae48832c0928e65195510b5d4eba93dd3b217b79481aebc34f2123ce42c0aba83ece60034ecbc0ec4420de32851a998207f770f3e2bf94b047779b6187e083f7e04458c243d9125dd1641ec413ccf0a02811ab65d7d954bf4cc0cae00c384889d1b23405419180ec83d9ccc170e0bd6bca3e2682bf3471024445329a515456175ef6c167da459da6f3439dab20fb28bfb9764d5d9b9af055b442399361e91f84965fbcb31a4db147cf5cbd37b955fa3b0a34b78f8f4b2cf584c1f3646b5d7887a99b3847ba9010a69c89f52653c2c4fd2a6cbcec2d00392a1aa44ddad605d8e1595d2ba305cbc86b24a47725810a761c45c6cd0177262b2c85beabc07f5086ea31bd443889ae657c9528abb2769edc8cc74bc80943f92e88402ec231823e15112ff5624c982be7669010e31ac9494334488105eb88658339db648f30b3a08b7a7b5bd1113a83055f673a8fd6ca10cb4ce3c32645fc42ed24420b222d512c68651a0b99875ef8e913b984c709221228e51bd2c2407cd49a06e83f7f12c15d33b0252937f857beaf9ba79045cba8264d7706270d4787f6ecb8922582b7321c26da7813eb1c61a80038289cc84a923e03d7ae3cb232d5e0c1e7715d7b305d86d34fe89069774bf4339a1249be49b1 +result: pass +ciphertext: 1f5fd91c64602f502d1373cb97805effe1fa5470648fe8b403524d8031888ce5a0c69c5b350e7f47038279b9ccedb1a124ef224764dd81a80f376a282e858e2feb10f2062075dc206c9dd2f4880d83e4807dd4f03518f2fe0a57f21e554626db5ebf5aef9e7594b6c439a75dc4d6b86bf0011effd8fe05f7b07088817a2f8b669b71cd9db8c4c5981876d811601a7b6cb542fc8651ec0e7daf101cbe22137bc07df0be881e74b8b09af648a20067c1d98c995afbf286cc566751fd37b78ac33c2e1e41ea00b2d280d6b8a3d963835f84223a172cad0a37194cd8283515a0e8672a5c2cd315790181e6482156ec6ce6d361c381dacfeaff3bf013ac9ed98cc170297f4b1945ae1d535b6c6cd3032d48cdb5176a988371d2c606e4933cfadca235657088da565d528899e147b5cc202225410966e422d31048048ce770443515c403a456a60178e2e1dd77d9af89214df32355b22de9da57fe774b3fa2a70487db5acd94ae8e84a1648b502d3c47122b912d8692673a230b72a7852323b9e303a4fba4b92e28cae78816c9a51e4d456eac1f8619a8e31c37861ebf20364662a5bc485d55e026f4054ef6d01b2e034617b392b9bb8a250d2ba7f40c45205ef68ce88795cdfb2c5e8b829534d5b9ffa91a1ecaabeb08be329d5f4e99bc5c069cc969bb354a9a8efe99cda86937bce9f1b05ce27b2401acd985ac79fa0cbfeca06a6846c273dfaf87e3f1919cfe660c3cd2c2dce327d0804ebda3e5e7b43c9c80c9e1a2eddb342874ed9aacf3895bfb8d420d1377d44effa9a0b2c56eefc0e068d96c59b3028e82cca15e11d4bfb438e5c81afa6ac5a86b9d76f7b9f6b59a4bab581683869ab687d657806ef8ed1ce67b8e6186be98ac7fbdb6df7f9334fa5eb7dc24e5e3084deb1ad0b9892890c1751e5d3f2f67e4cde9fff46fb8a2b1a9348ebad7f6af4f9cbacf7ba0f5b46be61fd00ffadc0c466afc2e6e1330295846a2a681770ae8f2ce09b9b8c1e7e33a5a406b19f428708f55a0fbedbc9f2234a46088d4bd054ab8f5b2849724f0f6856439a4078c315d4fa5a0a7f5566503365f836c567e91beee69a204ef071149c85a9744442a1467d52bbe0f06fe4022f7ce152ea8a543249d7c1bfa48689178daf4727218b39324f0a8eca34f016880302b36dacf76b8ccc776878f0757b16705d9b44faeb02db311a8649fe9d41e377509b3aa8a5a487656391ce64960f34420bf5385b4d61a65e1053f9e0a6559e20eb839b709e8bbb8dad3ea772e5d1c41db14f260c90ad8e2b45306010fc46a0878cc1b3cebb440281da6862c9ddaa917ad5f5d472c1045c2416f7ae434489679d84235af9a16bcdad3f8a300778b5f247ac8a2c2fa3d7cd64759f263e3d8ada71fbbe3a785bf620afb1860e9db1aed284e7e471d7c7cb09b78443946268a50438e3520d86b8ef9d803c395307ac2260c075e95dc0d908b1367d11de1295d069e02ec7c734212d5d8df66b9245280b3d4d63b8b93b97226227eaf9a552a79d442a38eaf6942ba +shared_secret: 188aa07faa2b7a19b6b7bfbd4cbb1ad829a7415d601fdc3b635528db136cac52 + +# Official test vector 86, seed: "1722219cb5db47374eb0af0232c856a57f026f1cb09e5a5799f4c333dd422ff6a0a67c4da502faae727fb2d45dafcf35" +entropy: cf31220f44de862e1719570e1b26e897790159366a385452334fe24cdcae28ba +public_key = c1cc248a969a9deb8ba9c43e80799f3e287b4263bda1a1055d152be8c84a4df5447b43295d0ba65d2a9b2d15a3b139507a3c2a44965e68e7caa4d9aeb4f67ced404305c81782ca49656775e10aa531f01c66793e198092e2b538df264818e7afdc94ab3cda837164cbaeec93fe2b8b59397482f084af51976bb6161c026761a22dd5a26457c648ed0817ff0a45fbc8c7e0e6c45767b7a720997ca60453785b73a43522979d06b365481a54e8124e9f4274950315faa27f5f8c50699164414398d72321a9d5c2181338de5187baa2c0c5097bfbc72945b15406eb1e88caa3ff92886a6a4fe2c8794700211ac32e1968643ae5a6c3aa309433cab3e48aa93a560fd18550f19831f6c74e811b8be5771244954da635a2fb6c314b9d77f1bf26fab613872d0a2098dff0b060516feea45293e28c0ed088bbfc0165a1906473063e97c5b2825100116793fb1dfc9447fe3227d96bc5e999cdf1f545c8753e4ab43d211c80ba9646e86651d928b0c9e64f5c2ca80b99914d878641a53a6a385acaab6d9b5690d11a8ef5a08c35e80c5df91463c76366282543b08c0bc3054ce07c32fc10ae021bdafcb744c20dd131c8d4146f1fbb282250941d8a1cdae68b4c5961a7a437b3251f144586aec15f505aa79305797a16cdf4c89209b02bdaaa0c0d367e2dc7097a9900bac5cf7063c3b2027ab05b204fbc997f333122798670e3488cf4bc64089a15a97f0c0a4ab5680fb9d5a9a815234e158316f31948b80ca33523e2303838d55ea2368b037a607b643ee8b2488ee456273158a3675b56967ce7b4a1bd2c22a91083e474ab9121cfa0f2bd1a24b27aa317c34b968df055deb839ef172ffd0489bc524109aa9897383f9cf0226810b56bc75b699187bbe86d465c7a44b65aa828c40ce76de88cbd6671093ca1689506657cdb6b3cc5a9a0293d16057e700a3bb7623e3ce1c8815b1d17066853b1cd807c0803f9a9fc2b62f637c99535a1733159ff79a863ba9203d57c80f0bbe02052e41004cd42388fdc695d9722bb0147c55510cfb9347127002fa9038f42551fe1656f1c4ba91c47e5fbcc5e83013864209290cf7d901213a26e1fa79aa7576c7c4103cfa01ec6e1459c9aacc449af7d10aca0a4171b284d4473c9af9a84546b03c7d5cea7bc723dc5032157b58431ba9a895d35f89274e827470babba0342567648ba84a51aa5a604b4c36a27c0b2710b2388b53085603cf62d9ea0a6a6864971323ed9e934d7471e65a4915ada5dd1e7482a37517cfa6255782ebc7b789c4a6d2aa746a811c0be90079f138dfcc812adac7c4bd862ddb83cf0d6b74b623b523318bc807163e6c98d777c7ed0628266bd53a29636b601e162466cfb700ed35b0966a7daf32e7dd67aa1c08e7cca8f18fcb7bd3104bb5408637c08eaca654b19523ac0a031b76968d71d9c013501a1350742467970c2813762c1b4219dc904202984cb49b33e91328b0350ad36b4a7650f7505b11b5c6f0520cccf788b87b5aef42b44b567c42555c74f40ce66cc9003730928e859c77099d8149c78588fdf0c347eeb6752b39b755122e715843ed2a859c02a81e7705127a52d53047f973952321d34d4278739c4bab50a5c344011cb196dba2bc5197accd11b3f6e5d57b37115e763177a6910c9866c85ed61c6 +result: pass +ciphertext: 43ca59d61117e53738b410cbdee068783bd99064b5c2b5238843d7875a72220c28aa6835a43e8f3ed0235b92051e496e497c739e1af2e2a7765bb4a038d36edf99f0f8789f0acb8ace1e1f981d3cb4d881437dd6dc3dff995b5c53d3c8c0b7090057bfdc7945b2dc9e1977faec3879e200e53cbb02e90dbc8ee00e3ddf74546e58beea2a58eabd3f9f513425fe38af4876b8077f8e679584dd5744b9c6f2d4520373da8ad93dac74e6b91c2e186bd7b18f15ddeba8c179375414a42fe1548f33244dc3191227b59a3c9c494133894443614dc0811f8bece03633d38765e214d96da45f089182a1a6836d382256dc0937fcb91c4f38a2e388c327816b622bbc3e2e76123d43e4f3a7b4492009178258c924de1eb0ef07497d3a12f56f61a2667fe8a7d43388d892803a42ce48204948dd9e28d1382575972ea07cfc9727c0b57fbf7456ee01e377a246022d3adba2ea7b4eedb3cd16a8f12a381df1b359dbb3764eae94969b48f53191d8eb4777ee0987dfaed4ebf93486ac233e24554700640d19211c353cc660da14871a48b474199967c7f4daa130c75356d509919e33c17f8336748d2ef4a4787a502dc5b3fdffb9a124ef31f7197ae578834d64e8d1088f75f8879aff16075c48d9fc72f3facd3fce6802f7370fdcfec030c5f70f163c109062eecce2a366e3c5ef156e3443c010e1f2f520c60e1dd89998378a6859a594c65eb43ae734c864357ebbb0dd172a8c611ce8d8f073340330a57ae7bea54b9d62f778f963682a40f75644731366de60038f4a4d1eb46579ca1aa6ec09690eee7384000c35916a1c6461975ba300cb717df5f99de105fb197d2f4c540c5c87e44218adee452768631afe676e5423d4c1c8e0270c69dbaa56f146de0156c0674e60811965dd588ed266f9a0f1fe406894bc7099b26e098aad64585d7b7f57f4170526180f5eb10c10442dff1a3fe1298444391b4bb392e54e3d5549da4dd4de6be3f361d4b5c261abf61e181ded24aeff4070e2aa504f5f2f7b0e63bf00494bbea72c33a972a5d946aed66c3ca411179340246155fffb724ed2714426eac5e331eb5b7a196a16f22820e817448b36d75c2a90ccf453e2ffaea1c3f21ea8ef21908dc2f3346315c703d44467c7ee02316915989c22a6b8254d96dc56b99b6e7802e3855e07297565b63ff5dfdec11b216271dcf722fd46041df8b2ee07e27bcdfd36703d847e2b3074ccb7436b56ad9b33c68fb1a497d81b8236cbc6a585e1dc0507a15a30b3d2180c754a8dfce465bde430a2d24912dee434d59f6caf3bf2211f20262dfb5d5d0413b824e3cf05f0ebade427c741b0ccf53f84cfb488caf6f401ece816eef2f94fa85d72c445a4397d26280448140850990566ddd703e4ae232595e558b0ea45425de6cb5a1f100f2ecb36e9980d66def6daf65249e8487784ffa9425625030e8336f1c5cd9d0100631b5b5d0cd549302ecc86697c42cf39629df1bd5193bfc5a6a9a0ffd04400d0b928d35536e46cbc8f06adb7ec341af71ee4 +shared_secret: 70df7eeecb6ad19b54498071e0840f4957e935a62feba82fe29531f79c2c1651 + +# Official test vector 87, seed: "ac139b78fd16ca0f26d6d7f9e15345c888d857b1910cf38d883339b37ead2dcac30f7cf10176f23ff34b4488eb79437c" +entropy: bb5e65669a44e5d5c709bafa98c16ccba6ac2c4ae923334f69a11543eda64f5d +public_key = 33e4a6bf137a2d5c4408040972bbb41342a6f2f97c6bf7b5a05a92ef1c69a3e602f5062b4d651b9af148ebe566059454ae71919226742ac151fec6623bd5531699282cd0651a1bb436d113202aae301a6de6c132dd020cf0235944d0a041f6ad92e404f87432bf3a28035c4f6e236ca6e6b56d924800667f8816839549535f1325ceeb5b0e194b89a5800819215737a40988a43336ceaa914800278944ba54edc65071b63374fb041f07a66d5781ee8492d35221c53495248365cc438b4a65a745a64585242878997853597ce1f45371cb1f97f8638837bee3cab372c024ebe4aa52455283cc2249d82739ea481d685204a61840c856617a210fa431a31b27532b5b0868c2dd0a1e2947aef0575934905ec50c33193c8cbf15c5bb4a89b39c63337b3f4bb3b61b0581fe2362037bcab4c62ee14ac3d8a70486789a6d9641b4a112f1336d7e613b13502de7d1bdd103b6a712bd4c9ab0f5611ba825aa5b344ccaf940c5abc296088893626120b4aa3c73c3e27520b6c6411aa745cd4399bdb627ec584ae3e2a9081c4125cc37f20107f70161975355ae779d74062d4ea062a36a4b63a20e22f3af346a57b37747d3d68a486133857577dc3040342ab2c8a38c9702c66276b5439c82465304f22ca9a316b6c078bbd00a748d9689283aaa0fa584fcb922de15c170412ab5819a18019cc9221533a691503a79c71c43de9453922264ce5994c78a3ce43a1595cb0c761291200b9bdd8b6dd037326e5b40d43717e6507b5f7bbbf71800cc7a1143e7101995ca2c2a06d3a501229a913e3b350cd567e59a03ac54c35a8cb0e4faad7402cf6353a048461649d4171406503d0380f543aae846a21df31c561451fb8707b6f15ae138a8d11b53b4820e97d1293938680546000c7552dea31d4ad50e914cb85935cbcf18821d22b20d309023018a667424ac7aa71532aef2c69c0dc545e3e501e5706bc1c19b5179bd4c4ab22dccc9269560992637a7887b996a6754721a2ffa97be2b5fc2a512788334871577f7530bc06430e539aa7ee0acab022607554e2a3160c2026b8f169cd3537f523b4cb3096dcaeb4413f93e8dd26c774c98daa269cfb702d3592984a3304aa56809b61f5fa4557a08c8ab20a634bca903f456c6e835cbf23f647a47971c3726ca216014459a96531896c8bfe74fd0eb074d74a085bb32bd57857054629a3b19d0105f5aeb5e79d10b0ce0ca1189756bd74324acccebf80e849969bc008adb76ab38fbb47c59cbbaa33f22759d5f879f178a6ec6e37309a15d70c286d7549fea354b438b48d4e73d6b0584469433cb86a74be82ccee60e4a0ab3296a31fdb9a66116a765e2828f3caa12da7e0a4a0a54d1ad9d141b98413c45d277a4e0a11732b9e6a816e3f1cfdcb62d11eb09406b83c5746032e128cc2897e3243840652253b7865a079309b7ce6a1a5b2007b775a463199c4a90358b416435d69bc7c6ec48a155be7570b7fe2626515a09037a6d9dc449e344b0d570be3cb7b70a720156858d8656c296b54c7377456d22ae66402c6fa7a4d2921666171352f56cc03a76365723682c5ef77437a5d16bf343972c43b10f56c5770cb8e9c2a955e89c35d932dc466b0c198874bb242e511f4f4d35fdb1eeb7c0006fafe38c636dab4728b6725dbf53e59cb8 +result: pass +ciphertext: f96a0a1821b72297b925d90cefc3897dfaf0160826a92ca95326c8de0a3f790f520c64b87b0f47df0a9f1b965f51610fb40e05aca0dfc83ee06684e4ea112b6386d00e1152e4601ebb8d90e8892d6b0544a9176d9ad6ec243995749c6ac9dc4c92a3450de5823f458538464f40cf99738623c4056e72abf449d12918d209c082092bc0df62cc599998fc45bd5f6a1b5a5e58e818bd555017edba520b8f7ff8db4390aa954fe592e48f1f24289092f1b7d174e32343a3a9bcdbbd1bc0f9ac32bc0ada8bea6aee13e49b42f51a7958ef5e5f720c7e7a628e5b93c84aa38fdf3694849bd6994435ee77f9f0ccbf397e8e0982e413be93bcc86f90ab1ce79b767c462112e0ef5ef64f0b096fcd68c6dc654a1c8ef18958a03fabf0b0e3146da24b05b0ca3dcbe899491a30c8e0773873e5d91677b875a333b5996556909c8b6decec93c7f116e86b5828469e8e67e843b04bdef173563be03afc1665ec223a9415450a64862a6291bd1cd8319864c7e3fb21a83f5a44cacf2e1ada9f51c45c9bdfd632a4b1a1df427a12d192c1fd9960bda088f945eecd2c688241fb003cfc47fd8ecadab8af704867266002eddae7d0d375eba342601e3390ac2189807684c94dc879783433fde5a9dae58f31d92f9d4b554bc02842614d0e89425fd293625214a136e183689e1e447130a19cfec4a02aea2f8395b302ad34406b5a98fafc1f8ca3bb145c5337603eb96e8d1b0553eaf63512994b7ea7e130d6d42a078763b3593e34a79db4fed6973e00516fce07ae7243cd840463f4886df76ea643a0d0d6501e3876d4f052cc704b45bf2647215e69808b9eeb118e691544b977dbd5f3915829742cdb1960ba4a5c75091d6d5a0cd894c7a25e19daa208be0cc82e8ba1e5d0ff6ef6a1321c7f42fc80a4fd0a42b0c93ff8e48b2b60d2dadc5c2052b2facc783526fb1c28dd506be55c61bbd693521b5043bb472112c878f5a82c12415582853cb0ca8f542fbcc8c459e0880be34515f2aa83b3ead83914ea582b8872aa7e7a5be89b46b23e0a5be37a354d73921c5fbc25d1dfbbb7629bf38b548342451307db877a807851df9bdb66498a3d5f2b3762665285cc23eab4fe4b1bb633c1debef9bdf8a22a49501ad4b508d0e32e68fff82478c4c6a8a3d8c7a2b78ace428d7282c92f55086744985365443d6c769d359571f98401762b736694e352019684790566517e93f51228dc56ad351e420128d8368c11a8dbc3640d372edb0bdfaf18770fc191017f2805c5a4657c22110b2b39d3c3c9611b7a000a186e44d213f9e0204bd142189fe115d39841779dbd9e4e24c04d234c5a9c300176b1199640382d4a6d2d6139a31873d3f9a207463760b81ae17b0d2e796a7848fee92eb44fb77a01668fe35a1ebd679f04a616b86cb95addba35678a7c2c70f90b2b75b3300d3f73d59cc95482e3ac87754780f96bce1276bbcdffe88b40e06ed94fd80e281c63efe1cf6811cff0097ef06f23a34dce62c8b904a948b5d9ef2d8e459a3e83c4f7a2 +shared_secret: 8baaf439867c9761e78a64652a383e21682969d18f84dbae0d3a63095948863d + +# Official test vector 88, seed: "cc7152849c98d5fed2813275d32069e44824ecb14eaef425ce017448cd9a401c91c06d0f7eed6d22b7bbe8ba6c429ec3" +entropy: 9ddb3aa9c7905d1a438c93bcf78e3e321813580371ab4e1289e2dbf3701972c2 +public_key = c797aa612a100811c3131b8b99b3785a4a32c4ab212b5c0217b18a55190890073f2c12521beb9410040129d5947ef96b72c92ae0f58ae1ac236a5426e7a4440aa42c4bd501af4823cb621c3e6374e368aba59c45932aa0addb3473e96854e8a706c510e17ba91b8b865de529cbd093bda7b6ff8b182ef71651035ea6d8b7c00a6f6efb8dfc0b192c44260a9479539c5a4c38cccc6b1b7ff3697e3759f8e1253cf71e2d7c9119b77090a99b3be67ad965919bdac787f116a67b1ae1c7230b957cafe398027596d510b2ce87a73cf8547977631d872ed714193ba7be01bc7e16260b5bb00a4227b976eb5f0dea457d3a493d19494e5219fc67006caa818eb43ab0d80693eb616b8bb9c87c5e899321d6719801a9982049c6a98c2a63800405867251e20c117241e222a1281745e3929cbebc2444b9b0fc0148b81b96f83b9517a2ab24171c5c55898948b7f16c6a1a09cb7dca509a3876aeaaa4ab299781582cebe73e9ba63390b35847480a9a305ca7b4043ca32fa6875b88085115681bfb806268a7ba33bc0dd5311266e672147b089943c2310136ec47ad1652c681a94ff9d09f87e851f1941ab4755538d50d99169ae1bb2bb70aadc0c87ba3d2cb70f1043be7272663740ab74c05899cd7881be63a86abc13ec4e014cd1868c5799992a58a60aa2bbdc6b5dffb8915c3aebe3c9fc8f70ddc8b9b8bd69fe4f1b60202919022af3df26369c190f5f518a6479decd8626e1c16a1094e2dc7c57a1a189b8b2ed0d4b9b0d90662f134cf4325a1867505a43e411c3fb4c4477c74b658d302fea66022505a25cc2a06713fbe1c2407f187e427a0dacc9c0d20a8ff3c4538a71a639a9029f1c826e8612ba30b2de1c63bbb0f70058f13973cbee40f371c490581c5a61ba074175b6488bc9829ad658568304256bfb88db3b10a4fa1744e220ba121772d94b35233cff9f8ca6053a364ca312fe1acde98bcaa937121806b40c972b1ac1e15700ae67441e399bb0641977d058020f205b258a29bd53fc277609c31150a0134849b6b7d4564d27735507ac25bb2164d4664c0b37cd5b9000d33201831c732aab32ef114902104bdb90b638b42960ac870c14e6220806292b9d6d3bcef1a9b6e859516651f9019cbba1c636ee550a72146ab17231f22a8e1eb68209642caf3814a0121565504859810f4a81cd8c5bf10716136e77fefd995a8956d6ffc0a38f841a0905b19589619649ecb2b24ab314a9a85bfa85cc236d19600c7440771a727e6745829cec312346b92c1685507be82a7d3638d36d4a7641a9a042617c09681e0da904a21207cd7b57f183640797142ebb3aad3470b82511bb88c8cd2af6de0a4f789161f7b2c00e2000c95bcb0d270d00c89c5f102b86650e2f8a4c46c052a817cbcd978dbf2c776cc98d53c1f7db97a0f42594ef18b2444a21bb2c1a59a61ddda53d0105489967488046ff8679187800587f2ac8946688cf49e81da406a2684d1a6495d33a8f12b72686482b91c2272215975a484e8488d2b19ae220cc1387594da69195dc47ac1127738bc03ee72772481892734246681b818b16f06943021363ae890ad5e213303d86f890478a91c6d0ae28e95b4ce2a861cbfd681a47a25545c2a29b75946d0f45ba0aa193ca5544686d9f9a802fc4cecdefea4a0 +result: pass +ciphertext: 3db10016c2e241fc73153aa86e26766d09c5f5dda88453093477f69b54282f90c00454badda5893ee6cbfe30e559d3f936584dc92c7f15bbacac3c97ce7992815e7cc2a108d7706f7ea8ae3df2e7b419daaeb41e12d97444b8803d25347c66ef410601d9ba341a1ab8a1351c4b59dfb3ba3ea5a63e69af64f135fcd051ce739a339cad1eadfbb6a01cf1de615406e4cff7c957375ce1db25a25250190f021005b0303a077ad8163b777eb9e3f5d5444432d8db403990e0bae063ae06a47fc561dd283a91f3dec6335cd0f565b406e818d1d57e9dd4b8c4983379ee60e3490d23f052b93b3dd4cffafcfe6353560969826d3c8765a1112d34c2c9b0f650c3d7ffed1c1fda47c7e998a0b71674d4b15597907435aa03584e4cef38a5524e7f2c0e270a3fa24f72aa7b84fe46001b7bdd7ef56046404774231e74058dd32f3486efe98c8bb91512a4eb9570f287895cf97b3abf9c71b175f7fc503275964d50c8511acbddc2374c11265da5c9b3c93e2765980d563d46ca5022fadbd370b76249a7ec1c2aec49d9271ec7a78f6e29000f3535ee273ae0b86747193c5b4eff608d6417134a2d0ece1971ff75df89b74d72efad92751a2751aca93691f2f08fbc560ceac102d03dff61ccce343f9074623fae090155002c01c4a70f9370088dbb1bfcf27d6247979f3fcf2a52abfb2238c4338d8a97618210427c425af435a5109c85b444076eeade7e4ca050f9f0aa63e132298fca9492fba45abee24ede0778113885c46b74aa00f14f8ed6a116d586521c7d8204619cac4a946d8838e704e7caa440bf86dd2b5d4cb3898f4795873448ba508df393f766a79e6523a55157cdf62dc2958fde888b3a9955ed6f690bc919f7c2137b9dfeae7cba52f31d6b1d1293b07611892122e8bfdfb7dee37cdda341bc3c916adf5d942417dd05febb73c2ab1b93209ff83443635db372cf0ed96f0b0d29ca7f6e0c9a85f3ca6fae10fd2ab30e99e4e72b7e7813977996370ca29338eab2a946fcadbe4f2a38b4a0c19ac0fe6e3e7681509adcacc4006a95a3166fefd558d2531c908758f79306159ebe95d4635910e257815335c4af464bd48123a2a160086f6eaf107674d248c70fc7c6fe452bd34638d01e99686216264b360adaa634c6efd771d34db91c458ef5fcb03b337baded312b0ee49bb1931f912c97799b5048e96a2c96e4e65762ef5a533768e270302a028c58439554218274f5c12b3a87b789f1aa9962c6065fe1ab97c1b259c32983f856fd8ade0449217e834e4c478c27cb53eb5a9ce7a6f639c5b2a0eeb2f607f3551c257c5deded63ab4ddd59d242743841041f2502c8a1765f9980065d8404b4bc2157baeb1c060d096b0bc9863a1387208c97f6718055216427b501197bbc6803e1937b3bc62d161a5f55491f8e87c31229849d7eaa632d50df9af1a95e913df81580bc858e7348a03606abd7447d0341802bb6112b499f53378d9a9c882e404ad1fbaa09a2f6e96c37d9f762371970150832f3e33d5533d6475f9230 +shared_secret: 60b466221ec831f91a91b76ec6bbc29726f65ebcacc96f9e191f57a1399be186 + +# Official test vector 89, seed: "96d9a06f88ff2c2036fa8e914b89c765e4a510b468dee40f914f78858c811857efe9fd0e17c0048e7389e8d996b7e2b0" +entropy: 26d90b190a6c3d0d9a86cf66005154e7086749e966e7187c249ccb9329fd3b8b +public_key = d800414fe5b14dfca90fa6bb7e350684c3b08656374d54776c312a645987b9c80b28933550922990e2cc4064114ee12f93d3000164c333bc77d566cd91c904965367b2350b87a6b0b5aa7f8a746ffd4576d22083f23c0f3efc4d09ccb86dc4caa55365a8a406add3cba2127ece221c9139c6c273bd4d3b1bc1ec0626b35db44230662cc44af683c92176c5171337746f0f4900b7369df2b705b6387670b411e26288b8680f9cbb0a8ee01c9d0a9e4c61a19f1cba55459b78602dc14ba52a0b9de9da0cbf330d3e71625228a6a9e471d70639b05792cb8550b24ac159c5b069c30740d09065c9280bf2b4f86c1cd9b78357383b2bcc4e771661f4cb75c6589db317058e428398ea7bb88450f22525813058c609bf5b02a3098a619101c092f87aad3881eef6a2ea91a49dd3cdf1ca6952205e74f68ad5c06fc04163a70c0972c4ad752acfcfd5529b75328548c18748026bd7965f73076d4bb8f84159756c879a5919fa7286e0dc39f1884587ba5e124177eacb2a3e96410a64c2d5403ccb939e428b1e7149ca2b3368c11c8e1f38082ab06f39455d55d12e95c585f0098fe6dc44bbc97c1547600d79b193fa838e42cef6bab08d462faf017ee8414c9914316297cd56889207e13e71e544c6793b751174c5bb22294800785bb003589a899a562c6252ea679779522c03a0b933b07f29194c75b29693e27ddc6c4757cac5b9219d98137516c450884c374cfa8572f3b9e27cc706b205c398866df7972b8a44b7f975cffc3401212bda14c0bb9a50a5e5954f9534ee90c0f1f2328c618be5c2166be064d5d0a04392183fc5b3bde635992998b68b8c7bd7a0a1c3bc99975aab55aa39cc0e1d4c019ef73a53485349b58f4271aa29a4c8f8e97935981a83426b3bd0b5edd1cc10458579450ed4d065a93aa0fa734f3206718974ca6ef35191c930ef67819f535ea5e80e54659b1aec30534442e03cb9c4673679cc1cb205264ea53d20e383d98c08bff78447c3335a4c3bd6f0794ba019e1eb130faac0d2f4193a6476cf014ddc988e757b66ac5c95bb7767e6c32ea8027b5e5a00e62c582ebc4ae6738b9637355f62a053737014c475fa24b144b2b47eec97dab92f58bbaccb0c36670ccc9326287fea9fe7dc6a2ecc896652c9606943ca1a6e8688a821b69e33412025e26442aa2f70a68011f8be62db6e6283b9b85651fb8883acaa20885807237a51cec50cdd007b27c121feca8a2c026d82359de6d8b548d9a49a9914ce76584338bfc8f2cb51466414548cef544b82abcd277a6602887e4edc5e09a20b1ff343541c7ff3d4c0641109ed04cbdad8c2ee80ccc3723a3609454b733aec068fe6d28772e388255a87710ab88848722ccb2c3aba63ad04566b1ba4fdb2a2c07cc42c32b18e7280348c245e29ba51b10d4ae840b8f9858dfc68a73215ddd58df30729d2966d11d4a5b20a6d441071bd5083fbc050232b7e594b11c60a5f7ea438e015018d145b979428a899bb53a42a96e081f7da939cd0ca49dc3ee11b0dddf94430014ce96485bde669f214a3d4a88c6e4b3ffed1ab4dbc24c08224e03c47fa2a7d55997c2491717297155e1b1ca09898447ac0153435444c69b3b704d5b99189e346bfad6143bdd2780d2219878823ecff9df861e3a729f913ece36b46c0e9 +result: pass +ciphertext: 82be6534bbddcc94faf44142c820a882b94880f5264e2cf8f046d36cd8968f090fb2353773f09d560bd169849c2d56729e90b2e96f41bb2dbce40562b1141cfeb35b71f5db5f933ee12dafa086e3125e2e5bf00dd7e59a8438013dda8cc40329f8c3627a609a70d6b58a6a6a157ffcaa326d4a19d7b6b8e7db9f19fba79bbb38a2c645b369fc68450ae6c5f4acd529c248398cddd373824a5087b66ddceb5ee231dbb5950ae431fde9d15020960239c4a526da313ffb447bafc9cb5de05f090001f08bab33f8ea68826e8c057732a95d1ede21a1488e15939a05cf250e577452ddaa73dc4bc86d5394ca0ffaad331300d7d21e506bd3b430ad66db163ce5e2079be92ef4d369890ac192578a01fb1091ef7f26941832e424e114ced5598bdc6eedd0c7c0975079d86b781e8de0cac12929b38658189f53a72e66bd4105a5f7f55f7b31fca748598a230dfa86692b0afc55dc0be8160a8ff477a331cf19b03d1819e87f0b7d4bcbb973c43a3fd7378ecd65c9293a758e079e5fb073cb8ec24324e6a45d81e42cb002bed6590085736f30a3e07f7f857ed32fcdd33f0f93c0c22c78f2bffd1c4d3927d694dd0c7e3788953d1fe41c46ae574f22d14f974a7a4f7db391547b74824cf71fc3a34cb782163b46ee505208ab592ea804403dd5ff8d4b15b772e8aaaa132c1f8993788f07809f86036154e27d70adf575a6e7fd962df249fe5d1838b95e5e9484b8b2c80119ff5fe22685bbb6886e23ab3399dcbfc657773f7d7ce2c81b28c2ee7cf5b7465ba0ca6b3e66306e2bbf5ce75c3bcbecf6f520956c2be1412c4113cd9b3696e64978fccaaafe00492168ab764acaf64ce97bcdcd5fbfb234653a349790ec382f2a504fd67472aacdb5c53b20e24084673a8afa896233982de45f191b32d1e1e0bf7b8c41367d26b439c5c868bd4a179de485748900922c4c9d19455a7c9c7b9d3b67dcd6462b30d307d9fef1a20aaeef1b823038d8f39a83ddd30872da9d7a5980728f2b3bd39eaf1cf2a901c3844dd5a217c64c8cc5b489aeb95520057bb78de40578c86cfc1e051ce2da843942aade897468d65ecfe6c4cb88afdc148166d6b1a9a182b3c2fa4e50ea9e048a78cf1a432b812891cfb367763abf7037a5d06050eac00528967d7fe4c3f1bfec7e6c1b4690b2e7059d20bb8459e27db1b41a972c15f2f9e9a43bb751e8214e72c710011d3d0cb44c79981a0a6ed11d766b4bf071289c65e6234cba1f701697c71317833a772c520e99ca5d6ffcf9d09fc603d22390d6d73e42ce59f95d50dac5d81827b1d58a12daada7487052a0bcb848b8f90ad40141f8a05122fa7b9aef5f792c032c5229e53b3ec9e3ca04b24b02db5398cb9bc0214cfa715f192da527562fc521d483fd4ff440b1a0563135085c8911dfbe26258f4568fbb8117802dc120f9fb973ac309b5d1a1d0e159441af9e477943d331321eadb6a353492db5ba478a92055ccd69dd686b14797c51e6adc3470e62aa1369bcc8c8cbdf932af93e80eda2b2c96c +shared_secret: 6a302778f406082fa285c5ee299d78b048e837c5012f42f9a80e8659b10defda + +# Official test vector 90, seed: "d26ce360d399bf7b89dc364aa7ac06bb513eab8f527383e93e30727edc3f22c262aa0ec70257b39edff0630dcdc1b79a" +entropy: 7db6d1a129d6123f1f805b79ad3b413012ea86aed42a05e98e7b1f32f9fbbdec +public_key = 0e4c3b97c9c7bfd505e2aa01b3cbcda4096b37aac72b5b50a41aa8f6cc518181b70fd3270561bed0938d964972be491b6331a148317cd548124b7653f1709af074b1fe4424df4bb22ac91bff7c04489526e5e2c82f2973408c4828368b87a7c14a569ed7b58f8eb6cca19088c15031fadc0e5b37c442543e1eb944ea4a0541248496795bfdd56178c188f3642fc0580e70a62676555f6b3810dbc89b0a227a8ae554ddab721c954db21a87fda98477d0c2af2820b4691ffb046ad544b3d3919dce8303e2f27152170a182a756b981e6cbc0b0f00274b521c1782b0516743d17a7d7b4b29f8dab31c50739f68c57efc48ff5b1d3757cd13fb8249abbfc7b5a794e11e5b56b9f20c8e8a5718184167264bae901b3ae5005f796341897542c70545a9b6b260bc13cfe536416a0f5e8440907a4fa1e79a292ba20a461285584d3a2993f2bba8397756e1ac5050541806207fb8b313d0a6280b473c59abc9964b5dae58c6860337eb69396a24aa990349c62aaf8420b49e8a95af404b81870b3c9459acb62749e4ae2cd518e329776a6b68e33a7ac795330a8c1ddf2b326c3c269303bfdc9137ecfc9eda856148ab9dd0a920cac260e6b70a1b500d80d085fb9b91593254372c8e13b69b0d691a508a391b04478729ca19d75b566b472917614a53ca485c44e5600793a41a180697f20aca35501e7215a49f591d376a2dfe4a3e0bbcbf4652710d0ba75898ccee4c5b63514752ca8778f09d737337c9219f4b51a1277964c9e67b92888300cda37c382700a40fc185ab8fec55aa539cf115913c9c73af0819188965e57b326f6615682915363c54a267c27d625cfab0712138703cf709bc5c6b0cbb1d5d3884011c1b8ad8cbd1ba12bfdb8a80e9cfd1526d940233254b5dbc2bb17495b6466c0ebe684fbf331cbd99981a4362fd318b28015d9f3c3f1da328917cb140a0567b4782ec8bb1fe31b298b6533c39733304b5f7c74206cc688c144a23cc72aa491e48701cd7f14fb3b7767a679ba4f4c4e1b778019471bd78bf6b55c2eaf43351f85190b07a66c35ddfa67dadd28c30c5264e3c3ee88b62d2c12541d1595a519897a99bbee0207867af34b245b00185a60b4a9cb92eaee58b16f2977ceb180b32243839487ed6b88f6b94d2d4686ec7b7ea022e6d995c398896cd9876815a27ec77188640a4a4e64b65436440fac565caa10eba9d48824541a6165d0bb97a634e6715abeab2bd8f91c18a3a6e899738188744cb6b817d21cf092b64e68cb6c9747d3cc34d0d294b4770548d61cf53bac839b70f0350994ada273312545462bca9118848a343f2aacddb2207f84a66b08958576069c7b7b69c02cf4f954ce3252faaa0b7bffa5952c51fbccc7fce3b6a0c8074f72519930395d967603d327fb8231c1811712308b914a75539128a658a2eec38cb7081926e94a2903471b79b33adf94456fa6a09438dba6103062c1f5a5c66a8d15b829c8f01e7c1e21b10bed1aac6d142ea94334660bbf448511563b5564acd67f87a26f779527000584b61a65293cbd85ab5f3362bb96a61c922ffa77b8d90acba77869293a03d7cab81b688306546ac348b22e368b8d717bc969ed83a12000548310a929e9738b2448d1cd7d1cab551ae0e7b1c495565ee65f180aca4a38847375abe6c +result: pass +ciphertext: 4c52cf2dce0479dd88f84c76afec867839243ca88c7e240185f1ab343f83a681f936359ffa2d7aa1231b30fa056f9d91e9e50ae7227207c481088cdd7f458d8211f192abddb839c74e6c0ebe22f62eec0a0b85e1e63b631f2e2356c7e549b8c9ef20c970b87169643bff25ebf27344af28808cd2a57c3ba4cc82a6d1f451e8030701de5aa0d0f11dfd9c69396ae6473953826f64ad592a959daf9513081c8059e93f40a24d007237b9f7dc7b423c2d3ec49cddc93b9d10be852d9d8e73df902961c6db0bb884e716b1688fab808f9af1f5d0071d3989340abc9f1c14b7ef8d3728e639ffa7731a5bfcb42d59cae23baa3ff1d95fb65817228393b4b9fde583fb73f464bd39ad825ac28685ed830e5bb2da33784b0bb3e6f310c9ca104da7a1282ea1a08eaf4bff5d6396fb589207a7093b29b310bde1e7e83365208539f4d631f59cc9dfbee095623a0793df4c7036cda1991504d4cea2a7d298adcc4e39f5e6a3519d162da9235d5ddf2962c422725836f59eab03421ca7e7aa4b715fbcf72ddad147cb517f01fdc0998d91562a2771b13809de62031a5972fffe4694774d60979ab51332e8bf3866b15d0268867e497f71d661346cc299d220abe1292eafc72e47e113180afa470a683d6d86cac6880f1f59a84ee590c58c8826a67066d8ac772f86c5094980767cdf8c1296b189c391d64c5682b1dc368f4c2e0d88a6adb43d3340c8d8e9ea1a34d4f4792544166406fd27a0f60038c242173c924f13699fa73be3c0fcb97215503e1a28ae548619684f66a15af654c0d38c9cb34c1c77f1f79581aef0718c6fcb92e04e4d28de7f83cb90ca1a80aa2cf84467b1b7752281b714aff8647539416083dd08b6d13396041f5176a27d7d91e2860fa87fa3b7c4293016c2640a98b3f08891fddddfcd130697c849d3fba3a1e31d11ca6fb5b68b12fd3a5b561d5416ac7a2289e3fe464e7cf0f30ea7f227505ff6ec6f1713a72dd195280c7305ec3469f9c55f4877a9f49c35505779fa1247b5f02da439ec8fc6ac3aff099dbe38e4d9681f65e39c43c29518be931add5086efdb009c74655f3e8525049a6ebe6ed70f85848a4962246a62a45580d3c315c5cf91794d48139874e63ba4116c27be153e0dca53abd22eb653e47c0358aafc19d466e5337d1ab2fe6ae1fd9ff85d6af44f5f8e09ed987c10cef5184cdfed10f16a30c8b34d0c9bd8d69df3d45b30432f578bc40850f12d88d21970dfd20adc0761bb8a37b2a0b9df20e14421311d0489fbbec1f8cc88b08872ab3e129c609aabd2e7d56f6467a176825612dcc9ff1926a28f5eb71174440206f74c219dc27604754f1db7363bce80cb6fef31ecc2f4e5668eaf745317397987dc34705ccd5086a8e64b83e9d4b3c1eaa85074c3c40a6b6fd48a25709846564d4863bf5f416669f1be2e92565e7c76451fd9f31eb81ecf9d57faf8b8b63027c7e7da8b0d140a07beb6e5fcd49a91a0908c33cc3016b165eb9388130426880df40b0a579d5cc63f6bf4b775e9368aea +shared_secret: 88a46d35cf07e48c6528b95016aa0c414344e090ee897fd80f26b67bc0451c7f + +# Official test vector 91, seed: "c5856298c3cb6ac9787a0f30938537ab2635b96f6d19cc9522063360e7a5c88e644929d2879180e3e5bcad2422b7cfc3" +entropy: 1d129b27be7384c359d04311fe5c44917d1fde4bfb57314f483ac617edd5ac49 +public_key = 91f33ddda5b9ed269034b722cfccceae14aacaa81038e45b53518216ca5c332bbe3117beb9ca69287a19dc7a078b412baae7cc5181a389b121bc4ac5d0ca67a97248d8f97d7526063cd88219c396ea11435e5c1d61dccc963444b35c99c86b87e40928b88c47f64b919a028ee601229e5a01bbe17b600acb7449a291b131543709a2b8a7d015419726563e366324588038e71fc3714ccd0a68fde524932496be0ba7adfb6e15dbb99f995419c8af3db630e22393bebb25819159abc78c435342628cab40a6350a8a86d1b1a93f6c9151f1895c4674cbf76313b1992d82c6db218339292622807557f458ce057ec1969578379b75d1bf518976b9c69dc22008371930f06b4d1d2465139bc0a62c1d13db9282c00549c45cb351518df67ca3ac881501c3272b9c6ea1a7c527b0ce8ab9124257484b341b2200b49029e2624eb37b15e7d5823a3ca608f09a5fc590dd14cd2cb15cd238735d25bab119b06026884ae5176bdccbab3550fed9b8d4a473a3d0a47a5c78b7b16b880911c7015a7ec281e3ea03274c6199b345db21c0b0c541962a965fba799840c01409463d138977d9bf8ee8bb3ee3b80e021ece71ca0c6ca72f614706e0941b60c3c8c263ad8187a5d70e98740a0a729a0d07123c5b95d553cb1fd086d853869b68b44db974f5161072d6b1f2a18c5f112376c434b9e777a597b6304aa0d1dc3d2f00010e481b9a9aa60e0acb9394cd554a047a6262e4b32191e875e1688456a1877012933ffa51adf131cbd47c28535595e7bc0777b954e094d6d62a5f67bd8b674abd34500da1a4c94bcac04746c4234314e16c1320c48d714481a43c486c96d183b3ea54b19ac54e971710a293121181a16f5bcd861835c78357ea4a6e8b9b785c085545c85a36b3963288851a15abac8a39a109d0d092ac3ec60a93077486d7920a6c274e91b4f04a7e90d724d1e47f65a9cc80f806b20c98d9867a705472738982f3c608f61095548552cc01cbdf10c34f10709a31aa47a27807c74b9533523912637b1a89d8383945dc9553e9911f4b012d6c397f74c250a70d43db4aa7da34df3c9490109fe7b1561cc25f0f37907fa567dde3ae9da24d425a7fdf35b2e61241400783bc2ba3b6098d6180b25194912175548453a669650e9007be369a2181e1a46763170fc995770627b6e48903f574f06037d580ccc1649ef6eb1d8be40392b86377532fe5b55bcd7177cd817701b4700b71a498359bcaca6393710105108c6c33894a41bd1e4a659b22c76c58c0d2f9648b8908397b2d30e9a4ea60c820aa12a58c3aac757ba835483f02ae08f7c9ad8b593d756a33835759f7024867b5d98477eb6cabc4b7397ff52c6719cf73d42f00a4b362073325d48651c2088fea27d540884851cf95f1a85626642f825265411f8b25067d98b5f595482d767b1c291a9e35100e49af47a71caf2214b592831d1024f56818997bcf035b1ce53c5213aa664e2226e83c50594354aa7974d39b09860b3560a534db624b9a595baf31bfc40978cb2903bb549eda3445241620006371b0f7a410e16c828c6743846ab3644413c8c995a4527f82460e112dae7a0d0a963b87e38a66e07290789200d6018cc7c454ba7bd5e56d7ce2d10ffa73f2a284bd579dd64e4229a9f36e58fcd24287c47316b08f +result: pass +ciphertext: c108c9fe8da93854f9c97333667b60ac6d357747fdc46551636f9715885306d4e0ba5a53950042e82e2449d8f871c0e69fc5fb2dd0890c09e4bcd73800728fe9f3aaa7c15a7bff2197f3d9798f8c7a9308ee9b558c6698bb852d5bcad36ef859e9f20eebf91e4eba3ba96f35a3e15bcf45466b0a0c951c49b0191ec48cbf0dfb06c07cbec041a09f93e98ac30e40757531cc7eb29725b472e4ae51d4dfedc5b782a2bf0ae88db1f6a7367bf0fe7aeab49775ae121d1f568d3a69fda9f3192e6cfe5de967d884247040a6520902d2e1b0ae32f388f4d9235510b3df3b3f3b8fe69b4917bc1990a45fd6d8d8e5bf2cec3fdb9e23dfdd4248c026b73b2907378452223a10d8bbfce7d557a40da8b4b444f189e2895dbe530493b582f004ca49e1a5b103ddf607cd25a0e20d24cd72596349c7dbb9547cfb14f0ea75af088563ac29f2cf3c358cc5c2044fb22659950fd36c4a5d1cfe534e68949781c256a2d912a739c94378339823b039273c06719f9542d293bea4e2e2a69c5de60d55882c969439da1a1ef4403b4af0068e1971c9669a88003d6b7ed3f74228f0434156f05d7cb3b82470381d0c9cb5dc05c978c214cd9e8f7654ec16e4898aa61f3a56346d697ac3d04ad0c7bcbbc97e6e86b687370bc81fc843e329d2dbe7a3f370042893521117a270d635b816c2e4d651eabd4d8b7b3b64f27c0f04e650ac334904064730b24c4796f76008847d686c46a667c2d08a52641358ce681810cb801fb76572ae3034547185bfd449f7dcf9ed2214570a30726697df678cca570a4b137e442388494011c990e3b0efff39d4983abb2d510f0907913c62df29eecc5fff802e80f7d2314e6adf01f74b265a257d829e0b114adcf5c968540949af35dcf9e8b39d8f0a70480e0c90b5dba2a6dda831f856e7178929bc54e632e323d87815639b17cc608a269a37f8a0101fde51a04dc0fedb4da16470f9ddb9139454b5cecdacd9f5d1a2c693f72282113c5f20d397d0538dd4938c17badd0cf0655fc373bcdf75a140746b38ae9e006a7dd80209ad50cd7b84921e85385f8b863492c35bb7048e3c260a45daba6fc44a901880e8ee91533bb0931a48c029d773a463fc07f6d30d022d753b149a4dc0ea32089d100b57c8abd1e6f98de0e8d447128637f21c0912f6cb12a47c7224442d835219de4f466d0cd65ee82fa1e10b84b0b372a307b72d3de3f46df0a209486b83679902ec621d2ad4a81a0b2297f70c88c882e0666ffcff459b87966dd55a1dc148648e619ddef49947690745c7794445a2b8b0199d61469eec9c3fd23232cf0b792d52d2a0c0c54ea11c29392b13a7c69744d85aa2245592adc717dd1016a64e9df28864f267ab770e32aa66b3ef4d8c00903c2bd10d1287e3f4696c09b6e3be2f513d736cb2950935a2ac517eb5cf229aa6914b1cc360658d9e7bfe1bc2aa49ff36a26d05fcea924b8fefc64541aa3da90ca5e2828ebe8f9b4ed2f94b2885af83aaa73641f9201325d88f9e2a2076b87f532693fb40a2 +shared_secret: f3c5586476f4814a2d3728a6f0ceed7d19d076b790d3675e48611c4b8df9702e + +# Official test vector 92, seed: "a28ead0a08e7228aeff602b16a1e752278b8ed1e91dac67994f5adc372e1d82f95cc390cd97ab9212275e0566c833fd8" +entropy: bbc773ebd2df42c36ae05952d6a64c63a5dfb82ceb3ef4f8d4df3a30ec8c0467 +public_key = 2ecb47bc7c78372b75de587297848724335f44545a35fa11e6e1208ed4764fb8bd4af9712e21c8b3c99e5a04432ec7c0b3200384534aae227c6400883ac21ec5152380b458bb69c5ce909842d3b07ef2c539c44a2df2013aa97a08b511e444996144cff78ca394b5440f4aba566383b0375edb2544a42c4df25b6a96e0263c8962bf9b716bdcaab098b41f735018735d8a26ad7d93b0f17452bb64180a572f75091af0ba9b3499a134e90a167ba72dda62cfdc27e3234b1412115ad0463da2600dec2e7010b1fc914f3772c858c80608244cc014a31036a9abb68946b51354d07fb914bf22e17ea21854ab778b67b40cef331cf8374594385c28586dcfd5421d1a008634b006965f88d58a5cb449f52136d7f82cfd0aca3b6355117b15cb51240c6a239ba26380c55abe19912be90466cb701d4bbcc5e138c525bf28d23cb2e0452927873c17c7e431051f99a6f585b89facbf71f594b49ba84c7235978aaa2baa1f9e7496509009acf56c5d09a4c53b1cf2845a0d0555528c8c1d287ce7e0aa56e85adadb89440305eb942b1fda247457751fc1b5b8811fdaa95592a047e297b9418c52f0189ae8a21254f838deb89360292956749007ca73581aa79f37116533068d2425d5ecba7447b7cc5729d987564ee3cb2ccabb6c31ba24375304a70638533c67bc6e53c51b17559133d4aca5a6bf44c635615a9881e25e4d137393b76b5017254970b56ed13f7aea587458a43b3435bb018ff6082661da9fec065c0ec23bff1b919633806a835139da4c4d34c6f4567daf07536eec3d4d0347f3abbd7f32317c33c2660393af455c2dc506ca111f48da051d8350edf5590adaae9731c2e301a824721718968ce3e66be430b8db293a22859d68b353dd45467c85ab7f4baa0d5b2cdb83c94a895a58e09e9f249153f25fc6d3c7ef50b1929b197128a64de27c48041e08c26d64b8c229cb24f9e9667aea2a33531d19dcb6ada725eee88f063cbc749c2e90f989c8f0c7cf6bcda814bb2b321f1862b32cb8294e99c78ba21d86a402a1c8c3e7f9a11f09306e588fd1856b7f5c5eaa768dd72793a3a88d35e931de0bbe0bbb697010b2c75c3308649c1260648bd3a6d6e57c56e00d5de7270d2c26572aac88e08238658332879d5ffa005f7c8db415403ae73ae728a5f3bb228a326b05bb26a0c91544d98db8cc687c597ae2e6b142b101e9731ac8c20c7eca11887b7fc8886c304a162b30cbc510ce54ea5324dc9b82f39b0d971dfa69b81ad99d49bca9e3449774985f5051a7eeaabdbd33857741c11adb51744539b1095c1b32cc99f81a0ccc6dc88ba829b11025ca5dd3353639fb8148088763ec9e7c14370766b918e93d8839a8b0a34d3090933df3a86e3976d09776a0ec3229741b2155b6c7ac5431421c7b80812523155c9cc5d890268661501628231c1c660583829e7b3984bcc8ad20632c16993673818f7ba15a5064aa42cdb9f7b0e0708328213388b06a04d559fcd83a10913c15167363f997f62b6a03614c46b9acd703be1a1b641e7910ea273022168352c89cd7616d7746983b3b51d57770196a68a50125f1634faba0c752826ce0aa6448c86fa76c6a3e2390840b0c7f333650c53e0a998b66b533746765316f08a94e18de52516228102ff16993ac61abd8d7884c +result: pass +ciphertext: c408d3795c6f0f7a0988a41adc92be1b7b2c00660a14247df3bac9b4e8ca4090466f23a9189e7f0b5bf4a012409c5c12af873a3a847d7bd5acb26ee7269c348e6aa5ef8b573a9ca82b374a00beaadb827761008fc179f7562b775e3f4bc0d77177160ada66ecba30883ef41607a8268898ba1035ec901c7e1d33e55f68db91dfb45b7854ad2fb55cd05e0c72c425893b683fff38bc36278682beebe5953aac7551a6a70d0a0294e393c1616b7f2f63977f7bc4000664faa398b37d343683a8427938e89485daf409e5ef668705dfe003771075a9cee8ef0c28bbbc2d76c342c3dba1631acc1bff3bc9491ec686a68fd17ad432cf1f968ff3d83292a6ffdff0ce18750ba7014d0a8696f2e486367ce8fcd3cbb56eabdf699a966a156706f26c13c63a4941aecedb8c51045157a983e2dfd02085a3577cde0625da2350adad889a8d295d3a06d39cd42f42ee9f1b526595c13aa40f7e7407b0331a61e7f8c6fe070ddb7ceeac934a78d7df2715f5d6830fa5a68b84e089aef3a706cf8e47bf78d928759081fca7f59ede7b3b4a1d2f0e7dd4fe5c1e613c51f1dd25a282038d5d14d5a59efddfe980a9841bf7c8a2a7457c25805d93acad001cfb3a9cb0e6741045960f2d318e4a2da3c0f3440f4c43cf5af31d5fc80fb6f9a4b2b510a35d43ccb99ca15e20fdd7ec741b26111bfdcdd6a4dd12b2f2a63091d10ebd5d56e858111dab4f3c233f8425e749afebf296015fb2640fa42d559d90e697cc0bef441e0086ac411fd18c03008b25cdd4650b59f082f1ea6e38e3edfdd1cc848c0e80afdb8bf28e7ad7c9599b085456f01998a048b474499690e4258882ba276898a2ea93e1e68e7b8f4540eae2790e71e114e11c33ee917288b5eb8cc5b1f73b488916cbe2c504c24226b973dcc4676c8ffa422247067c8ad5e47ef8c3e8637619c94f6661d6111652fce115a2c9aaae625226522a81978905b98c659ba830e3efa0786be0166b6cf6d84707e29febd0c57447df8117d3b549d55127b22fea805740ce98268388057573a91600e7ff40061f3b0ec285d0ed684a8cf703014ba54238b28b07b539d63d8320a92eebf9f97b42b0330ae498456f507ceb200a953fb8f5cdc36bb3cd8cdf52ebb955269300642442e3a7aab1fffd31f85148de8f3b01ec857c7e10cfc336e8f5abe8f0e2e3442195c1406614910216225a53d8dc28d7199bc95265503a75341e6ad2ea37488a71c6c893f65b9265cac3d6f47ec3e49785a5f3f9a52e02af1fd7fb14e635bd9c3246adffdb7910420c9d91aa882dc700f47e575ce71c9d155262c123b529a2e1b87afcc8b5444f180e0ab6e0e272667a224f3d59f9809cd7a894e30012fe4b697836c478f8222fdccd3755828ef032906f0f0c03a463fb9101640c7ad2fc8eb4fa1112c7065b038732516626869e8124685bfe4e6fbe0bcaf6451f932d700c86498738fc43a1f5d71952caba8639cca30dadaec99c69e36e13a4935fcf13531f9f3095f06d877e9798c65fdc2b2f24ad08b1149d +shared_secret: a828fc1446ff04a950e4f551e442aeba279f44de0ec5296fd981bcbe6ee90d8e + +# Official test vector 93, seed: "92877d706daf88ef3412eb143db8cd91bc047a9a43b7acdaa42523560dee4c172697be4332042fcab91135839bf74ab2" +entropy: 5b17a6adad541efcbf5ae4b0c0452cd2ce32e4f0f8701801c5b63e197c1fcbf4 +public_key = 7a6917006162efa4cfbd499b8c853e102c9639457f66812d58383e629a7522f1c683d48d8a216a0aa82454f29732077f4baa593de951857227b976a35a8013a622afe355144b63bbbe58265287cf6d605421e73e7df7301b59a885821ec0314ee76359d9d715eec1c2ae726fc0592ee01c1d45d6c94c76cff66bb3bc321358e33f16e1ad44b35e256bac5ab519e404c3cba647637537a524849cf952deda7940dc1c3a213d8c13580ebc10e2b458873ba5cb30c00d855530b0b5f86003a2c6641a72170b238feddb624f9660e16a9c545a0fe8102612979552f311a9417fcc8c8768280a4902a8ae696131c76338097f0c3a2f8731ca25d55a21b619d1c48550371cb2cac00e27c8ab9c8d7bb944e4bab625eb1bf7c55f0df84ce67c48fbb4438eabc818cc2871c619222a0c504c6898c31b9e859998911f4a29000e4063cc0a5d13975182c97047520a3fd7430117b5d0b2b088741690b5662a3b02978c5a2f1c330871957c5c73bb5a2fdeb0b5f3e5953b509b2887435b41badd607307941aad1cade20c4a22b80683b80dfff1bf82a4ae80eb0915190197c1ae23145522c86f86955d0d3b7b4b83b019123674aaac2b4138e4b36169b1784a4bbac8570aba1acb13ac0ab84a6bf987a23ec91f7c6c2dcd6b952c505515b4b4b1e7c749e693ef4a7dcdf8b7e2f89168991c0385829e46c7faea3c7fb18ebbdb333a4a16676aa81daa4ab519638807bc977729d4474f4c068897e77abe636df8525c35e7c691b49c72e50bbd8570d6b888041380a6a4b9a65868f247141ee137ba422807a57a9389cc195345968086359b36e5316c594a88959b7b006abb88d754bed942230b36945a141d4810050834caa24cf58747820a6aacdab186bba056bbc043da570f874eedd29718795ee19c9e8fd4378fa8a42ba6812dc51874cb0285420419d408e897a7f8fb9ad0238ec632674440b66e838fafd731b50092324a9b11a545bb9a9d7a242d54c6bf897a080ac0b06b57535e542d254ac581450d82d73ef779865708a2563c86e4cb3133cc5fc2e16dd2b043449a73e59a5c6a29a227a469ce406192ba4825e3503f3552f743bc3dcb945048a95c70209bf5c5efc76227ec7d947a19dfa0af12b078bc588c1cf9c1300961c59ca8529c357b9087b572a8bd2739a7a526f3d874e6e2a23c4242bdc652569c7ed3546e3e85b7865611c2cb7ad551142b2503e14c0fb8220755036f6bf95de3f1440598076db3410a4ac1e52c91f038956731622df255646ca02fe7cf1aac75d972a5d744512b4b498c666ca68660b984bbe6a1833e83caafb80e17ea49c484ae2b6475d2e276e0c9317c47090dc9bc134b606a6a1336a40881d76ebfa954dc550cac192082e1aa81f9a6d9162b038a021e09b28bd0b959884acc836a4a95100fc93071dc474e593a1d7ca409001b6c40c3fb13a5b6640a32da0b6db086f1691614d935c29b67d8d54732948dfa27296a63607c17973b764b9c05713bf0026bc0534b9187fe33690826a6c80014b2f97312d53b3b22aa1740b0a47ca8807145eae577c994b1dfeb19109b5b99019329fb6adae267c2759fdae64cf479462c4185ca67255971aace8351a94501d772b15890042363b3bb64b6373e44c5bf6ae2caed5dfc3e0f0dca2015579e6c636683 +result: pass +ciphertext: 71f6bf72cb74390f988cc6a864a48242cee917f394d5b4da241299a2fab54da05f57393596e88605dfd86167372a80e04af7623b1ef0b07b0c0c9ae8d58389b27acc0bad8e741f2d8862229dd0f90dc927564203ac4627fde6a32d5c6ca4987caab90b659e6bdeba2b4b8de3a53b7599dcc8d8910c8cb5607a9cedaf72f5bee023ee24406e1f56c4a8aefa3be2d3abf378bed42d772a85d3ccad0b698ac6abdb856449acc3838737a5a09ae662c5a4d58c4ef6cfb1fc6fbc5b189751cb003eb8d41873f04ccddf3ff5b01c77e6700d859053d1f920d44a83f42b7982cfdea3d9a6a8c481f92360c8ff14636e55cd76896eca6a38f2944f6a24dcbf55a0aff14185ebf4d8ec0c24decb27450f6253920e112565c43ec742e942cf9d6087e311cfdad256ec27f22e6a246dc6be2c245670971d8cfa3537d6cae449fb07715f26562cd52c5d50ba4a2cda9c5f967a5e9dd72a115b9f096eeac949bf8eb3a331701652924266e8a6d6dbd93a8705a4d466a814da93c682e971c7ce8ae48f149ef51385d3f9521263a3f39fc33dfb3185d34f4019dd23456972296a82b6366b77820affbe68133f6b68dcde6a35f5787fb5636bd4babdf0dc8a590b93f90f91b52324fcbb9a529911cb31f892d2c81d3c735840032ec4e8c2893aea590fce1c9c6cf3ff5206863bc76a3153c1b49f6fcfffa467cb8eef2a98c115fe2a19c01ed361bba1417fc253ee07e7cdf7a6bd09eee099968e474dbc314685464202b3e8d4ebf6570ab30191ef3bc737544f927d6e1a1e4fea26f22845312c2f5bfdc8131572977c16655f30c4d257227ddd7c1006375827368bad4872ed2fd95249c6673ae8c6efdade12507d5d8fe278b65b8c9d0369f01ecc6cc6d8954b0ea19c1721ba535ed605c3777f1ca62467d163d832c4155f81748ceb1c501c42125d918ddab71d4bf5e94b3215f6fea85ae232528c6e5caa8ef8ad250930031bd62135f66e33861ff62571b16e51e1307ffec33062ee4c649c659bd0676e87857f015f9dca2989f4a30fa1ce540392ce96467063080d1667298406a0b1cdef7db896bb2a6ac9c07c435d25d019a3ab17021ab4cf2ba7eb03ebf33e00231abd2655bb69070d6bb6535dbefd40bc299fcc9b45c35780a6b929ac6016e61856f13d6f8afbebbf9fe70afaae59eb6549ec30c1b0db0abc7a88e1b917b123a1faa6a8ad5cce873e20a0c2bda1fd417e49b2afdd512a2bba0db0faae498227727564053f9bc7e89a40d04551c89abb48fdb723643a5dc191070fff978db5526064405f28e74f9769e531064eefb370edd18cc54e2c51505fa2a670358b074c618447c53a990d3b4bf4ec893d6e35f19bdc70fcc2e4a881772cf0cbde217b80bdfe495454ebfa204ddbe82d1d92e612db1a9b994145feb30f7c3a6241a0dd001fc8ff0ef025464925b0ac26df6356a95558eb5927a8d8f360eaf2d140ad74069a0a53aa9c3e4b54b5cb51c939e299567091a8334f19a6104439c96498f06c057f3bdb4a83880ea8d77fe254 +shared_secret: d98b18f7b6717b8f6b3e331d6d8f9d3633eb70f54133a78e2345138420edf89d + +# Official test vector 94, seed: "bb4c0082ca4044b1ff60b036c9b0e0495d58667156786c530bc69d949a13bfaff53798e456423d7a0e162a60039367d7" +entropy: 61ab87659525de9656af41246f20e1dbe85c24e335e7ecf9493f46168bc14e94 +public_key = 4860867e75349ba9999fe4be93262a08f868abb10652b51bd1c67c266156eda768e30b0c82f910eb96062177a882435c74353dda7279f2141d23a6440b900a8a476c66993477b999e23b40ede83b1e31781b4303e4bc5e0220cb0a6409c88aa8238b83d78792c5632751fb0d5246ca42fc89ce31a64069560bb87360bc2696e78062600f24db78ab630079a64c87900d4b7c9ef9201822b6bdbc69c6be718c3b2792ea32756e1a465325a763dba22861a423e65458272e77400375aab4dbf30d564a176613c264631d33f37cea0346e71649d1314862bb0d2b05711cf1af088a4c619048a7242d0be6a8b536c41a9368b22288ecd0ac7298335e5c91db419c2126a8df45b2e6d8793da63fc7e94d75d3bca2aa58f5b5bee0b43a462a12c34b93f68952b6e7abd89c97c293b0693192a44c0d4e69245e14983e87aa26da8c63517f58d66ae1610936e6a89dca87b6c70c1a78c66743b89b3c2eb854067ad97d74771f77b0906a9a7e78640de75a7b8273851dc55dece9b1941cca76cb2dac265e487585780928dfe7402710b6bd914d564568d3d4075e4141749990c40214ea51b71f855deb9349dae2108843b5cd9815f1e8458c020fadc1c65796b117f8b9851776e896891dc05aa0095a914457016172a17624a608cd49db55a42bcea68778a26a910eb566a2d942da58a4cea53ea7a67954b085eaf642405b1674309b68cb9bc3c04d67505d861a605bd6163f7cb49fb8cdcd40917bd59b94892459fa7ea64a4872f51b97e66e64f02818520164e20d5f952a3266840b4575fdb7625d07d00486bd433447d5e1abfa65b215e034aca74670d4b7ff61c36ac2a1628a20d79b352d1c82c1626233ba527967302131bc1ca837d9eb4238404a20a515fe98a9e6d9b34ec28f0b252263fc2bffaba508a6375aba51b4a36af23740d2d51705b2a1083b23bf5a6b75a214dfcba5eabb82faf49e4d326d369cab0f74c00bd54310a3620d570eee533a1a89a51a418a3cd14b25244f0c66c8e8e454e358364fab5997170a90a25f3816aa1b272b09e54435ab3096e8161926299acccae3d689eafcc7e220cc42f5a347173ec4c2510da02c3b4526d75c9b01d103b8914e41b03865e16be770a0e642251dc312cd10aecc6a9734ccc815da2bef09cd18c3a8ad6c0f90574f41075cef470039a62891ecaab5f033fcd4266a510589f7423b4992f488c3cbc450db074fdcc7cfb4a51c08e2359247c1f564cc94383892757a8164c8c985c28e288adffa9c866a6779faa0f0882abf650a4b9c5e0fb36e4e51a6442167aa97c8e25ba55a3b5d7f164f07b2917f57b16b751ac08167ae88cefa14668e7634d05865d1ea24d1013e1b270c9ee9164d18654646bbae973745e64f90e69064f38fe5744a6343ca04b1a05293c5dea9ceadcab0b1f07ca177cafff03d582b123bec8cd829aae8d7cba9f91d4c89cf9e9b52038638f54721f23c6b341419eba880368782d1a0990f57211bf31012148d74451ae1e79850b75d6efa172744cc6d77a46dd0272924bccef49053198b87e1ac122a0753950586d14c6b22bc12939f0661638b5191e6dc2ffaa147dac984cd004d6dcb637bb18b2f04c115f98cadfa79f64e6253cab64110a71d94db5762f8cb4d277e03b2435a473d60b193ed2646f4 +result: pass +ciphertext: 4cedfca84ff4ab3bf3b2a94c3b87cc76668f469ac66f62ee0fd00f5774ec7ae46d34fd038c5b9ab28e988f98d4e88db9ccb5364f1fc824666a3e7f95e55660469d04b5014324cf9f77f6b731eb6cb71fdea7f5bc493b4313321a4967b45018ebb117a6668bf19597ed538149e41cd1980ab68486ad6c6391c291019854dc899327c21363ad651f0285e23e9d346206683fe9cb87b24aef767f17dbc1a1a8e3995c2dd4590dfe17077aedef6ebb4ab30159b127ea9d7e39d4b0498e59c7a8d927c0abd9f536110282d52ea16035021c7bc16bd0ccba1681242aac3afaaaba8ba52fed525a53bc8c05e6a74d219a6ba13f13d4983ba4ed151d4fe63b1b9aa6ff9b821734cb064d74d711af76c82496b5e718d2c8a334c887d4ceefbf37df4120be4e647c9aaa2936d8a2a82b3610788c9e341db471037970f9765d0816a2a728a82bb56025ddb847ad7899274e3122f5be8b126bacce82f29a15f7394de9b3526f1c8afa407a6ff90874fe1940d3d558285f0e71b793977c9e8893dd7d5aee01c47a34a01d512f235c184f84a7f526ef533583c968f3348f42a9dbdb026e054a747ac5cc7f7c61a5b02b04bcbc56b8432bc482b052cb471c6950020dd308f3e51ae575655d9176041178201f58198d37711f661cdc615bd0b801d1ca20529d448f15a99e831f15486e65a8a4f849d484ac122379aeccddabc499174059c5c52f60e041f4655b796ed5ec62e375d11d9f4d883e2291945b6aaa5a334dee61a08fd832e332282adfed2058b7a428ada4dc3d013e3ee1a2075e1c806b54825c197122c0729264e1faf761f561a04575ea0f171e40c9a4abe0a6652ee4fc4e8cd5f14cbac96a378ca4c037ed8092c1b149f005ef70240f4cdaed69752fb906b50942e97ceb9f8018718f250b792fd03772a2638aa4304f1bc772e248d1ac7137fddd30598660e67219ccf78f7a987622411b9fee83b4f1eca995207e7a42fe7b9f8878a710404f6baf41b019c71b34bd88a5f4da300f14db4bddf85353e54dce655831e5a487dc9ae72fbd3066d56cbf8b5122f7c8294db5d2ee56287ebd5bf4e01dec3f01c9a0ceb17539390f27ecf4ed2aadf2cd070d8ff50390c0f282b3f6cf6554453e94f11a019d2578c7e77f7f6aec0ca9100b12b28b6eeb48b8b8e579039519b2e8b078b3ed1f1e7c8a5ce0dc1290a970f4de5b64d9bfd944b9dd2fc1eb4b3cb0a1f2cf6e9ea7af68f6e1bcfd9a04964f16cc58e858800695d28ecc30eebc1f13f869ffc637a2799c47c4a5451e9b1481c1d99dc428da3fdee2fde40c04832f68ff05bb6f8c0011afcd7c929e06b4e3536d4648dad466d55e1937bccdc21567d586369880cc80bd0e41c37acf979fe382ee207403e0b458dc3da2f9f4e453e2bea70cb410898ff957fa2345c7299c2962d9020e87486690e6e6ae277d0a94c9f385c783f01535d87bc4b6bf630345c60502a67be236a6f1cb9d502dd61d377fc60acbb6c08594891ecf240113e6404d8e24359e4f1222e07752fe21158c6c8a +shared_secret: b7d5919f0bab0e2715a97cab993656831bc8a3dc86c3bd32e64ccb4762f70499 + +# Official test vector 95, seed: "121d90e70af6204445d0deb28ac0c108262719e9fd3476aca74bbfde89faf04d8d5f89a624e8a75db80431f0d10ad28f" +entropy: eca2adc3da1fb15f34033405ec08ef2f46163df4bfcccf8842c600ce0bc2026c +public_key = 345881ab11467fe9883654870f7266d76755b0a368661001e627587ba42a2ffc1e2c90b154bb61c2cc3d82a3588d4004d112534f787858d23e8a182971229bb2bc77809a1b118137fb91bb09d2b39dc77773e291fbe2cfe8fa2cd4882379f9471a190f34018c5819ac4eaba7a4a24c703c8876f321267b3eaa58a90cb0271208c6631a773021b3960c14605b5e24b01c2e3c9b2196499dfa69d6a76f0551907cc79611bcbca6b1500d50854f719761a59e8bfac4d5b27a54791482ac5426f73b906631e784c3be822599bba514540efe6a7c13440ae97844a6c73ceb51c471f8014fe51fa94b271bf3206f56abfec55ed7002c27a9250fbc12c9f328ea63b3a2375ecd35634bbba0a4a0619d4571ebc7868faab83c6180dc3c129e8596ede2b64762ca7670282daa233620445bd64a44f5c395a212a088165fd16fc69c503a33b8689217ec00a738f74210d074dc3706e9a412b7982a3e0804458560ace39b54c114f8dcbeb9a1512eea2d8636bdb91c15653926b0fcab1978a02ef694086c062f097c32c9445606050e454a5ec2a43d5cb2704049eabba1933ab857acc1527c254b35cbf6fb4e267b567ca2a125b1552d1c83f408b12420b0b10c2e0aa430f695af478c9d1c54406bf400170a84c4c52e9657c1b4eb652938b4a281a809851a5f62ccf930a56b5588f6fc64b6fabc62b6a62795b3372637bd641bc55c76df070288678012247d11b09118c43fba2536f5daab402377791c906e4cbdd5291ec81a1e71a3a696c0165aa1adfb978be46a8fa5cc7c8ee30036c085888bac3797a1f189cc4035658ccaadc61432141b67bc09ce04685dae806c681729e71b62dcc56449101401d967157c093a8a2b442c3af483408791769bf7ce8910ca4f4724ffc93647375e702bacb559c11fb18b1d4a5371fa4bcc603c22254cdf2654b2873cf9e03591f4173e6a4cf86aa30e9480d49215ab503b2cf6bf42c4b314c7595c907bd4526569b3122234b9e27259619b520412b43b892a6770cc32c6c276a391a106959560687c9620d8d1a60a093f9982a46bb9365d611a86d064f3f82d81ba5c3a39578ea4583b8882efdb5e0b3517be2ab82863c68db0336f6a1b9e1777d7139bebd15af3b73e21332d471100a8a8cdc9d926d2d7c23bab39e015c65a072e0409609c0c0607ba94fdba9842146e8524cc6ddbaa3dc3c9153c667d2b4f4a4871ed642fb284c573b1735b24b9f14aa72f316d3e8b1d8bb415e28a895a7a55e5043eebb04dad9a1d7d2ca9c1973bbc485400b8bc3e897d9d977be1d6cd7d93607a123e43b56b55189586703bbb505185f167d9e24d1c1248a4bc4a98b9332666afaea93aab55b09cc95e8691872c48b3594a1930d82917823362dc6e5ca19094526c462b52d8c842183b214f710908369e9e1599c8e43ea7d890a7e5a8caa6953d774a2e6a1efb1529411228d3637f1b28437c0773a719cc85681cff772ef05b3bbe5753fa2aa5e414bdb599384fb6462565bb04da4c84e550b20163928c9673427b5d57864cd0ba25065246d3914338cc9be47b2ddb2d18888ff99a087d0012b789cc3d6c0c2d93567f7a4c87f1382c4c5ea6d084e524b82eab586ad8c8b05c9af5971a56a31f2b73ab45392bf60b762c5543dc3a259dd67fccec3ed3654c6559 +result: pass +ciphertext: 946305bd5c4c46c2c2e3592c19e4d3f97b8830ebacd0cb22e2fe91165488e41c1bc4d8df410c422d564fa276b2d09e6d121559d1bb4b9fe4882ff9b47735f1a560af691529288b6a495d22bde53975633f37e5cb4b06ec28d80e3a14d5ef441b965946981402a4bdf5ec75216a477c0286a7c93ac7c85d0db58ba93d15a2612206fdd1da3bbef4afffad79d76c0c52cadc27513965eb5e41a8a2bc0982c5b1e4ab48856704e9999d906f8e6c9e69a75659a5d8dea96cd6491c5df26f389a5b68b92ec913af9f05f91923522e00ddcf8ea0326cf8241048cf5d0e9e1e656191c36aec989dd3b321edfa110a17f4006a52edf63a8f8c6eca1fc446b1a5502edfb71a6381b88f3694683169156b18838c26a092007217e0050025a0341f32ac09b11b34798167810162194f396bc3a15ad60e3c0e879dc2d67940b698e7fc89b7b27fdfc8d6a99c46e80268f872c9eb38e31bb108495ba4c1f4c0b772354288cd49ad1141274860e0001cb434111e47b436c5efefce8af2da3390c32e3242552c4ce7471abff8b4b603a261ccaeb1219faa229f6cd7aa778c8a5daa1c6d3b88ea34ce1c53efafbc49f4ba04a7cb778b0a974575fda8775f4926ba1fc2ff1675be8350a426b525f9de7193640a7d2a78f6f98cf82c1c5011d1cd65bd27ff699d2a0e31d15daa817389e31fe278f3c18081f1d8855680763713629afe8ba120a66ab72bfd1ccb2c8d2253824e1eba4aa4c8e16bb938ace8ffefad97a795ffd759333467aa3f00cf8eacc2c05cef9ca5289afb1dc931634a069cd642a7c87c4b871c92e0ff08d7db7988f40cdf805dbcb9b23ee633408392d81daceee30d51bb00fa13eb9ccfb084deba4a4d1f49f9675dcc31f4b16e30dabbb54c56b413ec4b8fa8cd66321a0acebb34fed2200ad8ee25478851de2f7ae93bf00a55317829f87e03f7be1c92bb503c7d0fe980f983e1f65dbf6c7f9c04fd2fc611dad8f78b0dd11b26c11ad696c2d9478b715065893453ee5fd742c4bfe74da5679602c550a671241f77bf16da6fb34f1bcdc8265181488a2c0a81f02438f6c59b5bff3ddacf0175e3db1ce24af9b566710bdedbccd79013d6bc000c4aef91af28e9407ba43c0e0477ceea33b0d9d90deb875684ca797688eafbeb93eb65521ac5a76c66b6ba87c2ffe6187f2e88dec731b4adfaf27d79340f256258706c226f47b5bda71c0022f8ee91adf3d3e5b3c6539ecaebd5a57d724e7a9a9bfa7af1e2860c9ce790ddfbd1776b540255711c5e52f904d07c97ae11e6775d8cd8f7d8bb6301647666358fd9a1b90df2eafdd0601ad13adc24c9421914bd8225e7722ac8f55a5715579571208604e986ed90aa648109887b0dafef529f4f7a6b5c0d27f16e8038ed7059a003766e3748cbcd3fad459c4cffedfa44bb7a2aaac67cf8dbba63680c39921620cb5062238c7028f0cce8a587a8eea5da03b5ed363f4cb65a0cb7885babebd0834194afa46437437f6f324eb41348eff99145a1848b4e97753052de775842b8fbc6a5 +shared_secret: 149e4e38a07d18c0b08edf9c47e425b56f7da87b2b9c855bedd29f6f0a8fe5fa + +# Official test vector 96, seed: "b3ac6503206accc2a92cbc210d020a2654726911d11ce676aa04feaa08af1d20c654e4105883ae470ec3ab299075d420" +entropy: c4f15bec2d7701339d0ade4835193bea3632edcf89e74992620d9eb623a0d0d4 +public_key = 2695adfcf444770c6ffab16e9211abf5d019e1471b843a3e7a38b5ce109a0a6796a0d822a926756f0c4a0fa03f53200d6cf37a1cb741f10219102b63425063d6a910b2fc574c49067a1a40e22ccb754926481b7f0ad0111943b3e67a570f0bc269aa50de26cb5f3507791b757370517d486d7a55a88ce86b42856705f6a7a48a8892e96ff20c304e74271e0b555c1b4b0d065a50d61bb2813cc3723009179dd2b4c37a0a06b2099c2aa0c4d256a2fe2042bf4b3db91b11028275b33b4484f2ccb9971df29703dd61c17dbc0319ac63d16080f5b5c460149ef751933ab60142404b66690a2c10a6e3aaa186f6c7e130577cb02ef4e043a6d4ab22ba85b5396a4d61aa1528becc59a1843a4d70283cd2f91457762ef34424b934be9a1547dbfbbcde21552f968c2c8692475632e78ab3d7330619e74d8c71bf3797844c717e70b51367963a7cd3c4869a85ddd213a8d34b788239056544692a7741124697d237d7e2677a908358d81da2cbacefdc511d3110e1152bf2d036c4593a0512523f80a26620ab1cd8b6b1d99a08f25ae3121713ac070833c544e42acfbb78d86476743923d7310c5a4238cce27773d3989d598affe6650c1166ad4ba0e034ccbbb5a75d69b113f2a1952a2cc6980c58ca6da32718e4484d562ac700d924545b6cef439234980611c99e69706054981349041e1962b272c4b0b8b416569952e4f98d4bb12de6a13bc1c903c5477b0ffaa1c0dcbd8e4abd4670832eba3d43d9c31147aa803c17bb32c65e3c350520297da9cdd6dca30ca025e85a051af5aa82d231c159a5026a0e8f2c16769105baf7708fab822b1777c6c53137ba11298ccc15d522400b7f85430de739514c90453ba97d9359807568417ea307abb8982707b7519a65b116466e984772f87a6346ac808c7b2cd22f08aba151e79ad8e45925d29294879a9dc00f60713e33091c42bc3ab24b65b488c764ec75b4117dde39ada784835d3129cbd7b777b1b69cc3293f07ade724639b761ca598464e6676e216874c9668b19aba660974c9918d52761acfa325031835b4d44b42fb91e431373781a2f60354e837458e69a89d830e00801178ba697f82a3a914345ecc1b5cb4b3357b6b7d41b708c5a7e4f862c44c8ffa90473495b70607386c02b4f0261e197124de180cc793355135bdf37cb36b9a180dacc2f6b09efd80cf35211a0371c59f396cd9ec226e1126d69a6ab8441faae9a1cbd18e17387ca0333f94acc7e35306a8b05f4dd185fc467e5e888159a50c6c9a51ca6b2deb9ba212822020d67552d4317449b51b21c37348c44e3880367574d5c195db588ad0189a80756eda780dda9a7d3c946b10d897ab8bb40d6441179b1b0d58271ea83000c5ad56175a23d20322d516b2a487c74a64eb3514c93b919d65cedf429bd37515fff66f4d72cee39a0081452f791b8054660da44937c4a443a09727ca5198322c341c12413c19b6075bb9118540bdc105313422cf9b8fa687540af66728fa9859a642bb9479b31257912cb5e0046dc9273199f27f4f3665aee6a7bdd19e0ab8baf1d2a868b465aef75f3ceb916c82bd81791e80158f8e5b358c218305d96a683a19c930c1903b5e0a4b15ccd8ad0b9e61da304ad616af46073a781ed8d08060c1678f48941d67b3685a39ee7491 +result: pass +ciphertext: 326dad83eb9507d3d8c6433d9c85dd37879c8edd4271eb110e1da941c4ceb58a44d889e67f4a0a339c5cf490d27949c6716d4aecbc49fd976a67e36663fd6fa0ff29a185ce1af8dbada61b609e8acceb07a793390177024eee8f1d360f4069f7a455bf94a7a639a8fbdfeaae04177a1dd2427d748a61a72f68e119e98c9437d243bd5c3b83e07a55891b400ab069ff19abc6770b7252162800fcbe0ca2aedc5de3773e9f961440ec5db16c3fac83941cbad8be79b263321aeb01ab0c7e35f2dc12b3f00ebbb6224a5c83a51c8173876f2f7bb793c7f965b8907ae1d132d741e1c795f30d3c796094e04158fe09bf981566acf64dafefabdaa988d6f6dafaa95f912d7c78f6ff1b589edc549c93d0241c028bc0b5db30810e560389e5eab0afef7ad8b4edb2df3e921796e8823518aa21adeb02e60f8a11be5a309a88a6f48b58250d8f7147d525159978df41230036695afd9d0ebb1bffbbcfbd45a74405472c220cdcc5026b1c84710d0d187817042058c65cf5a88bb8f6b99553b013ff77b9aec4c9362a279aa2fbaacda95cc65794ca2286492670049008d58c531f70c954af90d08a6498569902f001997692022099b53a6b4e2238bd2875ac7fb374cb27f41cb69a38afb0445254623c81148b5789981140697c8866a75d4c37089c2d536b2bc4d789f6dc045ae57a977f7bec2e0dd5907eebf606dd725cb0673ac29f16378a11bc71bc5ca0ae77e2c3c2a5be6a175dd70ce5c06e906b899b81ed5c0b6000a7f1468948341687465a671e6fa5458089e8795c0faeca5321b30edc70bc60a664ac491920b69effc3bc268176059f47f54e30c4c08fedad550e34087a0c5ab189426141db1c27fcbf348b33216b1b8a184367887b1f8c46baf4bd44a3125b60de3aba6e9baa2f3c593734c38c43f8c7a7bdf20d847f1a79708e81df8f6e1ccf61c41c40b74055d04fe8a7eb091ffa7938de90d71d2a0b5e790884ae8fc4a6de70aed6aed36fab4df9a4f4d768ea2b0f08a047d2276876073196e15909e8ce1f91184e41965f25673138d5c3358cac17d611ae9bf91e10485aa53c9b570733866c9338ed111b99c618016f8ca21b283cdda6c6fb00279e4fa2ac419be7b51bdfaef65246ffbb8a4a8afe31cb67ae15bd5260a3147a32ccb0c084a7435faa8e8278f6a3bd0648c86af6df4e767b6165666a69bbf9dba5f9baeff4348f55742f25e63367a3a7a3f0838d914186cbdfe83d7850ad0c1032cf116f8c937ed9c14b45ca6ab98850f40be73121ee0f29dd3400cd54a8b4ef9f96ec3b1a19dc5099ee276df4f2ba1a6abd46bcbd04722e49e1828c6a4090e7e204908a0cda22339c4c0e733501a389196b11966e0e112c6fadd0a28b05426a562a9e293be1ae19e9d85d401bcfdcbb98c057b4accdef69e8338169cda5f851216d1a462bdb145c83958b07f824da067783e1db1ae85a86b156478280e222dcc204b3b858374514b29ea52396ea28d2313346fa53a610dc2e588252b6dc42811e5525a94e2020ca5225 +shared_secret: 38a1fcaf302905e18940605e49e5f44c747b06e789acc9c395211823598ef516 + +# Official test vector 97, seed: "59eff60b1ef6185db34ee1e3b1dd2f159106ceceaa79beb74923b4f5623d5bc52dbf5d2594a1f7c6c64d12cf144e9ed4" +entropy: 28878249e2ac2b6263422993923a0c8bd05ce56e385ed13c943b03d226856947 +public_key = 09abaa56083952c0c1b6ec9a50251f3c16859c2c91c0076750016ad3ec36c42941af9c13e4086b37f5373cd29ef4d46d6179c948eac2738bcb765bbc58c8c0fc206a4e30267ed62537dc5202c5a717926744b296b2983b8291495161c920cc1258f209640549e5e7cbbe13ba52b762c6767c92a95678e066631b57e256880ae56189b699691999fa294b71135a7537202e8873d2653eacabba9d3082a5f01353b77da1cb4220301b84a14848b94d68309c6a29035e7cbf083bce5e659c0a226274e8534f61021d1743bf66525aa7c62759c9ea85155e139a9cc20f6b0776d567a8f1e697b97ca60982555c0197bae535a0d20ebd00a7774550e928647c40598d16a45da0810399cf38865ceb5c2ed7623ae9f55987fa37cce79aae79030f8c3b90898f758366f7f591452c77ea7c3203c147e591304138568d2257d07689865447179c017b0560b3165673526981c65858e842d913a9c22c0a9aac9fa4e16ea6b128b0bc99ff863b3f40b2819ab2e8a04cb353c7ecb2409e495e617a410e638bcb370b2c887b8adab2b9f95e8e922baacb1d148610cc4748cbf31b88da477029ca130b152dd923bd7796d0128aec6706c204ada1b37dc0149a7c318d8356a4f8c9cf917443fef20b02096579580d82bb8659b18365ba3347b081f42b17c3e2064a441b1a3a876c26060d22c370f82424e9b156145e93894de3ca09e4fa8ba6524eb9ea94980a038b257fb4da57d4c8b40ae5465a3a9c7169ccd30b13295546846a6bdcf13c3230b5a961b1ecf578abfa8bac3542820053717baae30a545261b873f278cefb73edf8cb73b9272dd7552e381da64c055470c199bab07cdc3293c0577d9acd9d9063b536412ac7cdee30a1dcfb6e25dbcedd5425508a1091555998931326fa69c78b5021f818f8a55deee77db38229b4104980c230dbb872cd671fe776a09be47852204c6a339126e3bac2353d36c094506092aa597449241121332900a69f8ba1b79ec56f047cbbfbd6bb2aa08f6e606d54c72cbb758357e49b937590a1191d88ba26ca576ecd320caa1bcbff8533695aa486d222b5749bc8f4297bb7938d5b4cb4f46d6ee701a35a287dc16f7dc1347ee97830ec69cdaa91ee061d3f0c81bdc695cd6939ae56be11681847629ea555747c664b5e111a9ac5159281438729916d45b8f0d3ad0e0514619ca93a8a971e9433c9eaa731192c760c5c5e32259f569dcdf39bba4c1b7269bd98417abfb1521fcbb640030563118e0f35bbfd0665023863e275c7d5319a1087bb2f956d2dd3ade6c37aa09c36cd5aa9ed09b8999c4473665ae2b784197cc9268c57bfb78dfb054bd1278e044582cc3c81c547c50fe7bfc270bf6aba9fc159a5853045af3758a8d552c3881d7c2879dbbb0b79b5a5c2300b5a380ecd199e3309251f9647598b7376290452a575f4ea7071f2a0ebb7b3dd9057350abbc1707e25d0b68d734689f0ac4c9b3242fb703ea6bb7fc064e599ce8f9269a0d63a719879ac8c396d79221babb2c4a0b7d38ac5b7e984f2212c481a353ba6bd95039443658eeab625d3d00faff2509a2c208afbc6016bb5d8726dc74993ad329bb9a554bf61209cc20e521b628d9c89c8fa687eb7464ac51820225b65b2af8489ed896d11825bc4df67f7002453d16875ce21ccf49b +result: pass +ciphertext: 851033f1b0186cec6316ee0d2de8492c60f77e7a28e7fdd05da815a3d097b57e7648cc9a8bafe8989eab34df3c43d6984fd19b65becd0c48eca9ae5ea2f070df97a17beb6174ed74eae45153710a758c89c204a8718bf96e1a07f94bdf8efca4a5de6e75230e0f0110cfc0382361e36d286ae3c679c06e1acc9068ffc834c8f8b61e24215fc99824a988b06a4126899b085273272547055cce233c6934b0a1581e081a2ecefa722e3d7b2a2d610368bd14bea532e54795c2f28acc0950b1d1589f23c7967905eaf1548ac3804dedc3762f29e02d9933f1787d0dff3f6573fe88e78e5bef4311a0fc8a76265df4214a5996215051b4bc3fce8c67972631a9a1ef30bd0c85f228060879566def14aa169639c7c5d003010dab55f735cddeaabbf9d6a2b44bc904fa6efa5a258d09df75804cb993d689f621a635bdc3895107af08b831ed70ad4992f5613abc38eb34637110467fa1237b0614a5f370b9b9188892af64282728bfbf30cbc9855d2ff8dd016ca8a42a6bc8fabe0aa11b9fa6ba816cb6991aef25fe38e9bf9d677a95c4482bcf8cfda7ecc1f0c6c642f55a2cea0ec62aa232ac39c56a757b2026463d33109e04cf1c43a685a02a7e95dd9a628d495d2da75b95ea7f9ae1867a49a4326ac7e8b276667b6b0c1647e3370a0ce107a1110737fbf73a2a200331751f2714fc14f0b5f0551256e8f5c4eccc8fb0d95e867a021a8ff12bdf520ee6c8ce98a19233142ba18a6184d1eb92ed72810989a71fff33f712ed832ca6c3c9ab618fae23356a6078afcc812247b09032d58b5f9716cbd95a87b2a9604d15862348bbc388dc8af24415bec3797e03965e618b88b6fa44abf5f7dcb381b34b13ed9642e973edfade4f18c75b4d6bd437a93bd1740499720f68356ea2b23017c07cbb5eda895c67876dd914af22e0684734ff6ce2d301c4e79a68099e948e66b597b87c6c4fa4763eea673691d8377aab5fc4a166ba0eec69e7592cc4082182e69f7c3c9b6afb96bff870e34f56931a759ba44d25fe1b75250b5f2b6500022e00fa73a8276087e300dd1a96d520792625913671cc13ea00926199b4bdb55e5a21ba3f9fe0e9521c7fdf7a56b4d0d712a43dd4e1298b4c9e1691c243c6a1dc3d3d273014fe4395b6553abc4a81c4cf186e7868cf85db5579291b9730ca26ec09f7302b8a0b62dc0c5b3636fa8445ce0fd772c68d4898c83aae108698e809a79e3a341bc79c6ac8a1425bb7b66ef4556fb6c21906bcfe8252c173e2c637e1c86b0d3fa19fa67ee46c0bb85d94a480f24e99e4acce0a9f8ba64a2afa388dc9be4ed9d50f6a8107c44507b70dc7fda71af692c0e1743b15c998090421e454de886542b7002708f6a5180e20b2936868e84dd3afaec04ce4d628909204d757010fd682758857ce720257e01ef1e1c361646f740043f34b4dae7d8d02972039584771114333904353ecc45fc3b3428837e80d7b4df6c4923b122784acf27a5329ef474e2545baf052a2eb404fb18b13199ac35f19258782bcab37 +shared_secret: 403543b0f8e519ba4ab878c40ab5aed412ea06bfeb2b864baa5ef4b81a42c454 + +# Official test vector 98, seed: "dddca9dc31bea737d3f474e7560b37facb2f53c803e768ffaade7669ff94b1d4fbd17068cffd5dfdd24aadada4ef6b12" +entropy: 17fc65f7fbd7c75ceec421dee84dff5a8cb22764a182db17e0ebe857f54d60eb +public_key = 9734408c884e736a271a17a9a5829a56e4ad6fd90402c18327f4b5b052a5d72585ad276a52228ea0794d4ae19235304674705176f76e909792b32b3f45f3c179464daa653c4885346b0921f72a2e186210542575e7abcc210bb7572c5ba97c475d8ba2810c54b9f23988725dd17967e9764513e1a34e55a9e32b05bd6a030425250a285fb331351ba4470eb2380318c9c7a56ed0664c6a16af63db6dc2a7c1c4e5a901c89ff7a589c099568c9bbb0482b04205595c242c66d99725a17468684b2be16b2757760b72a57974549c44c17bd2aa028a2c2d74b458c2bac3d34537ba095c34459b58aae4940fb3b68a73b28aca34cb018b92f65320bc3c04008394e17215abeb505b4bcd37d473da43569d557eb34b06eeca22c1264db881a6b37bbe9467899117b602304fdb72aaa60bbdba128214cc87fb980c1be3bcf9348bda62ccfa591328901c9b9851e9f9258e2a5f500053f9266891fc1ddf267c58c1aa7db72255f8c277d8535fe48db1d9b12cd97fde35c837d12f6b1c84e2c019e77469350bcb9c3791af132bf2ebc633f3c681e3801d0ba00a30672e955d84930c4012100c18b7a5a342d226341924034ac0953ce15584911d86c0689fd12d3dc4cb2d8748eec4abecc185ff63162e414e709cc3c5163de7b80e9e550d4a0b90de20b2fca850e3b11338bc3b5c369d616a2b64c764f78122abdb66860103371b773586463ea51366792872f36c53603cd876c4aea446e8811feb4417e3f21b94059f1d3c47584c09b128c549e48f6346cc3fa60ad19cb9b65359f04506cf52994ff5225aa24d68a00bc5171e0a492733e726eff02c2b956f9d6a6e7a8519e2b9c4c90b8db6b5447a0b589cb71cf0b74b899272a966c0b0da3824035c70c334818bcdfa2632e7a47ae8119661b96a6b4b17810a8840cc05bb3a0db2c6a60d10cb3e7ca365576250a380fa4b956ce066e72a0d7739a4b4e317988b64270732ff94c319a368cf0b8d8018a2d210bb37c695032a3b4da71e25e2287ef34ed68b5711ca99af1cc6b83caba7eb91d1f10eff920d9b41091e086487cc438e461344905b7e954121948ab8251fb0044e6cd8075f28b70a67132c8362b71b77298c2200e11b3013b6b2ec8b21e7a23a3cb9456567b3a090fbe642a1693501db47f8c4829d86bb1ae7accdd7763fc0b5e754ca5999a1544615dbb1acda7749c1d89073b130a4823600e322904c9599c31b67c963c307987fabc4e482910b57a56e2417eaf978008c9fa38103c15ab1a811b2b198a5b7201ef767a26a758400469ce0b1ca83920fbcbbc51c8697cc4b687d8ba41d45725551a09e5cb230532760cc15292c4ca9cc77f6e215d70c8f6e98b35fb21c5e0993588c8f76775f92c575c013270c167cddfc76de12261e84c1b506737a7448d00a6d07456fabb620d985607a32526d276846cc739276122bc14cae94543e11276805aedf36c404fc079117196383cef2681074f954249b859498a8ede375663755890613b15c2a8ff25ade0abc4d674a050369a596ac3e446cfc3171600367f89c9251e33db95c508e09a64f683fe7420c5ff73ebe5836ebec9e0ef1a39c02acd90275f5d9af9eab8c741023bc91806d255282846cb5fbcef030ee8e721d0566c29f469f5773938d679dbe17bfd7de66be5e +result: pass +ciphertext: a1752c6d6ce4394f2ec75f83b811a7216e0c22f7de325c4f443c4b42b8b591eb1cbfe51016809b0056a3791bf89a2d1c1d7f33f487456bbcdf4c129d1896293b2a247fb921586e048698a53059d76bcb892c491d7bffb93cc79dfdcca78e19bba05bc9602f35e1e1ae7a39f8cbd5fd8fcdc78d2d4465166e1de58d9fb958c697a87f003cf53e39a5d74c800b2ff3a1ff5e55697b5717a024acb384aad7b9e0378edf0a32c84041b0411ea2536756354adc9c94e434d485625eda46c49df91e19897c73088252975d53124b0207ee6f0b298eac2a3b850d38f87e8ae34ed2092847beebd022a340b8397feea6b70f58048c9e0f7ef1871e3900665187a0bbf9020c8193bb72619b23173f2519aae103412c2938385e4d95263b0c6b1861bc8a9eb18bd45b649e2c88267375af062927cbdb36073c8baeb2c18566424b19d1117eed47a2ef5c9447548181a6e1278babf995c236a0481da77ce3fae728f1af4134a74934163765df41e05cdd81f5089b4be2d98be48055b9a15e2531ceff8e25fcafdf8c6947acc221e9a7d497ae3e6b948fdf5e424ef8cbc7605b14313f96d0b8b384e83709ddcaf9ee171463e4d99ec20a0eb4c935a9fc150f8f5cd7b8cd35af793fe0c6e8acdf937b8de68fc5c340e167c9cd54e3e5e62fe5faf9a3509c12377567f0f21175cb80dabcced8ae1b0673b78604763a64ef8a168614cabe7046a4551fa6058b4eeac3906d69642eff37ec1e9f4c1de1c3dd3ed950e6673b8a9f5478d136309781b6e758e4e8b0e1864dd1dd1f961012bd47f4163e0300e46fc39ced1aa6efc4c1cff10633b6740d9436f7c024c9835f647b868f9eafc7df5b99b4347b7b417973019308d564d5ee6724c630c891bbba50fbbe8b902d7d53761115bd4c6b0cd9f1a7ba657e8d75680294f35c0cebcccad433a633e1d01b8691ff74a7c2711ee7c1aed207fa3dda7dd61082198b870344b6ef33016c27879d22a8753993b2cd017387e5c23b18367e5eb3d3d356483cd4f8225a0b6d89853fc0a2869fbbbf3f6f4dedf302e0d8919fe06f5687ddf38847d2da1fafd710410fcd5b1bbbb14e1e6e3cec8e3749d19abcdba23c817666a4bba93a14db6955bd8d9fc9a96283719e6badb4086ba2b04d7c8b4292fcae74ab859b5f1d58a691f97b9bcfc987e4c1f7aaf46d7eca4948230b83d033b006862ba19170d524a3e1c79503c548396fb3a0e0d4ccbe0ba4a5b3f49e66113069ac7436908f3e9f0e536d4c6c54081e490dd965d34767a2f9e26ce5ec761f30b9c561729b4be664a9274320cca48fc35b0e878fa6f3cfa1531bd4cffa1c09a47bedd5fb7871a56581356f2fa247c11eb60c160d4da1393cb46185ee744e220de433e3afcc3103a58ea775e4c5b8581d4ffe4df3770cf7b1a4ec174d4346440dca66c1a3dcc4f2ee81451126e069e6575fed7f292f4f9fde60bf3b0ec9c89fd92a04ff36ba28e1270e1122554aa75083844d3adb275cdd15a04b71fd25eaaba2522c2745d46475367b349ca9a4077d +shared_secret: f7a280462f93b619888b5a72da3749556e53ef4f4440df728c8db1edcc86cea4 + +# Official test vector 99, seed: "2a6f7386b815366f572aeb6c79e272cc21b7095fe09575f18072c9d677da23bc9c8a4bc393b7524604d299bedd260c8b" +entropy: fa0489f3730100609488e951e6aaa15c0f193bc1dbcfcd013bc418d6c507b176 +public_key = 5fe1c21f16c49f6b02f2450f4ac135a9eaa5e24a3e3f350a6982b5979a93120285dac88e01923060a795d251c1fedb130828582c95ca7340b2e8e105cfd64f63e63f85a955dcc4b12b0482d0994df7ec61b8b09aa4d1b8ceb94b769a2ae12031d16c05cada3a4d0350e8d970ccf716953543a984cdb086c425915858d454880c97505bbb9ac7cfa54055526689033c8241300e11d09283441043b91354d1c0dcb4a869f225c8ba5b290a77629004ba336c8975366002667c99b88b53a4b08ab564733b5d2a3011f944b2259845dcb6ab8956836656e3370f5981203943b343389f2a98cdc96bc1a996648580b7fe837817ac4db31a2d325a869950a32d99446256cb3d8b91c159683bc8c1ff41287ca54530e84082bbafad485c0f179781950a4722c9114485f6b403f3760678e3bbefda309adc41ca562dbcb739654abc6cb05216807e2fe18fbb485977380d8c0282e271c7f1f8c14694484b76241a1b0cf3928ad9e328357ab75fe909957419defc8e0da3469e7720a5e91df7c4857ed50b89d18ffaf6a045e2c950e178adec7a3d690fa23527d3d353d8731857018d7cc909d081cab0370cfcc8bf8f5463a4fa8706a1abdf2c6a7fe8c834a4ccd8b6c869c6bf93c808a43274620b30aff22bbce53a7ff85145779cba220dabd1b597f4515c1664a374a64ae18884b0919668a70b371e24d2ac1a84af7de3b84f804e105177f6a9b914cb5dce45c678c886b3b24e3649cb194c548fba4114f278a56a4310a7cf1cb16e8ecc0b0fb8a2685b30631753b7f87eec8578684a67634119fe8cb334b67b741305aee8762639a212b9baab4032653b1537327eba5b6fed245d17631e748532426c5a4f4646716521dcc72f4c34a38bc87a892650def1bf09991e4c175d0baa1bf6469277f75a2812aacb88534c491f4d3c884a4470f01b805efc160ec17f68b0b0eb9910889a02467232fdb268848a5d6969c91410775fe717c9103cffb9a2bc13b1bbba01abb92ae303abfefc51af169d25d29316e7a12a5bca6827c25df567ef0c20f13a6fd728a32e229f72b42e74470c88c105bec0a12a1810c3d2a3d84b89a8c9bf66cc305f0b0c3fb989c3541daf147d5b02813e7904cc18a5dbb6632af4a34cd42007f09ab4a88c1705958058bbd6f996fe7642a0b45b690317d0e658ea82094d6b8d55722123fc1bd349433ad4850b19a4f6616685767e67bc21333a9f667a6c422087398b3331c075cea9aea6e29e424653d5e7a86766613732343341491726869eda4f97f1982e62c4cf135b1553a0a842b35e8ac23f29a921039bf31833f12ca8c4f02021559e1ab5bc37d247a5078280f02956ba2e2f897b48e18a769908e6b8b15c63b5a780580d02b5f70749a5442c824a0f56cb00378bc0ea2b033fbc9d45d535ecc00f5579a687865702436d3065461a06c8b274561d938d92290a8c0bbc0cc746aeb253e4823f8bd7b6becb5b1f8a5403fcb40efa5f6c34c43620921a416aa769a6ea1ca15c765d0e53c70b0a719f7b47ff783b63701af5a9cfe704c7d99830734c1b1fe00a1d9166b11060baa09501715310b93ead6825ba9998d922ae362092349aa45abb04781a98b25989e8309c40698a2676b49fbdca7775f554d2448358e6a4bf5373892b712b63af3392fa95dea1a8 +result: pass +ciphertext: 381ebfb00ef96db47a1c412af508a5509ec6e92bb3eb0bdbc9cd3611ec6b875764aa7dc3aeb515709f9d3b4cfdf6209598233df9a84e13a1dd779cac72eba5c20c5659e8c12677eebd55584cd34bffa6572ef7e83479c271cf5131bb5070085c3e513217bae58724f5e4ff3d5eb3c21d6c46e18fdc7d95ce55c3e2e697a0c99bcd8734628e1a93f73647ffc721a0d325b4cc9ab028e1f3beb2006b46a61632d1b69f26514c0ffc18a5a7443d4719e46a55476511c868427df2cd91d9626ccfdf2b1232aa5782b698d0d5ba501ff0c993b92b263e4cadaf631522a5cc7bd293554598dc42056efe2dccc8499dd574616092461bacfef03a85c4100550514651c5fa70c7c172ad82e3844a7c5c940997ca9e9cc6333a0ef5dd0c60a97b93c6bd56f18f014182b3df3e1127411b58e2a095b8fb4a7ce43fb5ac658135952c16e8c4a2ca78b780b39518dacfdacf9e93ba28972293859644c411e37070c877e6a96dc08875d2bd92d54b60a56951af537f02cc4dec141eb68ed3ef48e4d598a0cc899488cd73d2b676cca349b2c2b70d9931dd672bcc7a15d41db475c058528c5e1f8902752a4840be08a733f277b5ae5829c36fbf55ba91338ff92bf7811f5c660e12d3d3699ad04ad1d54a21174c8c630059acc5f8f46662f0591769efb02a8bb6af57ccd05d53b96b987f2ea676bacacd6fa4be275503a726d6f1eb65438ccb9563ae9bf6dcd313f3b819eaed568ac05192886e7e2b19ee532bd076999ab8e3e489bc596f9904e7c35b0d93614c6afe2081e5d9bf545c711af029107183f1ba308d78c4becec16f49656fc03ec86d8ee25a39d11517be38d270601f888df16a70733ec3230b1cb537db4e5bc13e8b099f7337f9e3e5709ad3fb8ce2445c332b87b9f263d4cedb3f7d30f014905a214ae7223fe1263b99ed02bebc0f4a298b7b1f4722ce622f02a6e75754e567e1ceeec73ef725ed5e7caa497d5e67d133a08db2c42d876599c22e052673ff4ca3a9802dbe7b3e8f69dbc36e713e8caa0765cdd74a3902d5a23dc10a01deab09d05418ac3b30f7c06e594d550843794c4deabf8e805806583dc30f926ec191786c661e66283b01d995adde5e0d2f59fa044abcc55b78c05613d88cccbbbe8ccc19208569493831115000a8c0dc41ce0f3e7818f0d2cde58826ea8c562b84999f6a9c3d914eb109af6c804c16fc0648336e10427800a146339dd6cad05667e98a2ad35ed890095104ff45bd7c51121bc141866671d097006b491b1e6841fd34f0ae5f8298ab62a4dbff7ffaaf67e1fc29656b75aaa1a1949db4d8d3dd4cb2ca2a8fa70ed3a70db112bc261c2b58ae0ca834cb2c358278d5af6c72ff4c64fe0734f6932329d7a6c6a6ac19514401128e45e33f69a8c484ee7bf11c0e729970364490affcb5fd8ce9fae282848b7c36957b033253b8aac9b83bcb9ebd551ba3a1d1511a0847fb7657b2da87fec3a5e0e90e9a0af46d826c5c1a932f0158e5daa18397c51cd42d4e8d5c8571a065ca8568393c6a5f2e +shared_secret: fef3730b905431d14aa7aa7bb1d253cd912335c590b8d7de1e7aa4e0ff76be04 + +# Public key not reduced +entropy: 147c03f7a5bebba406c8fae1874d7f13c80efe79a3a9a874cc09fe76f6997615 +public_key = a8e651a1e685f22478a8954f007bc7711b93087fc78f19fe82878e3e937f3679675339e3a8d53dfdf4bfb1f8846746596705cf355e42ba7fa3f173f5c41cf952a37b25897e5ef35fbaeb73a4acbeb7adb89a4fceb195531c0cdb07993954483e6cbc87c06aa750fdcac62d7e536bf60aa98d1198c07db6d5c5eee020f6c9f7bb68bb3456c74ad1b81dbc9ade7739b5e716bad1660c8b629bff570fba66fd7ea993336e896e84ffc5731bbf0356dc5b6c8afecb748ee391e98934a2c57d4d069f50d88b30d6966f38c37bc649b82634ce87f2645ccd635d63364646d6d699db57b45eb67466ee6de4e4d6a818b9ebeeca917af594489708a43cea88b02a5cd3d09b44815c97101caf5048bbcb247ae2366cdc254ba33ef9f45b3b0eb399cb9ea3045df830fcd1db8bfca58dcf3514d9b226d94b8bdc3ae33ce10a9124e89651ab901faf53c94e5bd88f5f02cbf29369af983df8f22875ea55af16d3bc6907dd2ee8b75f28b47dd391f989ade314729c43efa05ce918bf78c3eb60286851292eadc825c64577ce1e63b1d9644a612948a3483c7f1b9a269dd0e40e96944a403627609c76c7ea6b5de01764d24379117b9ea29848dc555c454bceae1ba5cd7fc74ab96b9d9eb911df6b89bf5639d4778bef6c7d6e51a19c6cd793845447f465e4c5ec39f45acb3db5379de3dabfa629a7c04a8353a8530c95acb83fbb4bc8e932cbfca7a848cd366801444abe23c83b366a87d6a3cf46d925ddd2baf9daf65c48060b3753ffbadf1ab2732d72554a5059753594e6a70286efc97684c8c4a7540a6b07fbc9de87c974aa8809e9f8c7f4cbc08d45aea5bc6688f5fd05a522fea4bf539210d7e13bc37b3e58b0cbfc53c94ecbb047ede2f5e1b989cb7d7dc023366d78f9c37ffd47f98fdbe1c759a8d96b93f65a951e4ffa06de9b8e795e995c7125fa479ea5a70fa9e1f3599e37c768c7bc108994c0669f3adc957d46b4b6256969ef90d799fea85464ee7a750f39c5e325fc2dfc56d9bdc924ba8a959a68096547f674f3c838982a5794baee53387e331a9a656c28828beb9126b6de95e8c5d906832c87e0705576b1fb9507269ddaf8c95ce9719b2ca8de2efbe10bcc9f4a37bd2beeeeb33ecda76ae9f69a5d5bf923a8695777ed619335be1c4c2c77ce87d4ef98a8cc466460fb4ddaaf5b301f1aed09c88e65da4d8ee64f69ddf189bbb3584baff716c85db654049ad04333489393a07427cd3f2e7e6a345f6c3cfb14cf7b347f71c1bf7b2dbaa00d237600b5b594e8cf2de6f5ea76cf0ed899122c9796b4b0198dd4268d49a477cd11d68c49b9a0e8cddbce8cac7864cbb385e40084744ca3d62694ca795c4f40e7acc9c5a1894d72d8c38dafc5d1ef4e84dd5a819fcf4ec175e261f962b17a7215aa4a749ce5836c389137678204838e7e95a85b4f99aeb574c4cd7909cd1f833e00df485553f29d3748d9b5cd6c17b9b3b84aef8bce13e683733659c79542d615782b7ecdeee792bac5ebdc4bbfe93d8e673e44ede849193dad98b4634f64aba8b9c04237f654afdf381cea17ca87ced7aac41c82888793181a6f77ee97b7c9def90943bb38449139e1d865ee5466c5767ab0bd6ea1a3f736162ec098a900b12dd8fabbfb3fe8cb1dc4e8315f2af0d32f0017ae136e19f028 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: cde797df8ce67231f6c5d15811843e01eb2ab84c7490931240822adbddd72046 +public_key = 94ce40f6c47b7e53b9707fbb18447d277cc022ce44a0f7a35f3db57386a78ac976386f62320a5e7e1cb42e39dde684462dfed67fafdee86c32419be30a5a41a0f8f68cfa7e0ebfb441cb927d7897c43bed50f9b32868a35a3cd4cff9e040e9a92099d2f20c477e2beee6cf90d2f5f44fbeb4b7b4c6ad074533b58d9914a6aa98f9f96789f5cb87607569994dd3f4af461c33c81a3672af69f4c4ba37e78f7fccf86d8c5ed3fbe9c0f72f6dd1bfe45a6b7aec76b186466f9c67bf179d39259574456497140c8cf4bcd5091973ac9cd8d809465785a678ad32ac09ad1d666e8c48462813ce5ac75f184b38251c30e46fb0e36ded690dc8ae1d3c8b773780b6717dfe5c411e39acd54b1598b2b7c79492a8663119d268d7dd875bc040dbfb75a386fa96b092b8cbc25c47f70aa76cd8b9b0defb42b536e27c557893ea96dbbab7138c3f247e955a6c08b4407d57d8f29e4bfa48af4b28533f747b860b7077ddf8e245c9727b42f3248fb14d8b3ffdc4918ab76ab96dacb8eafc2fe1ab4ad329caea5b069a68934c1ce84c307f83942ef580ae9e72d6ffb5686b624e6caf9bf2d3bf6a6eedebb7387f88eb8606a8da5f2f59cbd56ca1fcd51cfc66fa6f39992af360d75db0ae534c9ad5ab9c95e2e5868547e4600a34566eeb62d94525d8b1a965ce69f986731888d1ecce547dd0e4863322a83e3c8475d9eba5414a65b066ed24a7b09dca6ffe23836058bec0a8567174e008c831233c7890783dafe8c35aaf63e796869118c4e85dd2dc4bdec6bec4ac74ebaff3deb2bb743713bfed3cee79c4a6f46593006acb3507d41f194807b893aa7a932326f168d384d0e96f2f23368626a2e027891ac94f1203db044b85f14ffce3be6517d36aa4ff3b5f49ebe394b54decf8e5a977547f869a7b50b4898c073cd669d43c641a3cb5e8c170ba63bed6ad100861530e305e39fe1d8e8e1ef64f3e0c52fba67e7249c1ec5ae40dc89ce015d648fec19f5897c77b905914db4b5b4283ed669cb4c658f48f67338413d9ffc85efe444bc635dabc93d5eb030784f21461ddbfe0cc6a54fecf5bba09705baa77c28f6637be6644a5ada61f70d93e7a787abf5329fd40dc765bfb45c7dcae5858eaf3a49fe86fb90bbcef6f69a5df8d45981c67906b9f6936f5fcb6a4df2641688aba61fa49a84b47c96661e58dee5826c1118d69c4b9c6e59df51c5bd21e1ecfdadae2bbf9c09b0f34186668e389454ad4d46f6bf468baffaacee7868574e729574ee57ea7495af41d627b85916d6b4c708374f90bdd9c3aa4664c665138ed8eeb98133ceaf13a816ca5b86905dc51bf91efd466dfad90918630c6fc77247c458ab8f568b4edd9d4708af3bbca5a5716447e8c3cf4ad788a873f473fdc4a267e96bd2b5491aee76fe654d3694e11bee8f7b66d1cd5af199b6e90b3bffa88a92e36717fd4bbfcc78b0e08634ccd80c86885c92c8ef67aa4933c7df097891369bac5fc5d0c36737ab6d9724edae00fc257f76a7a7b3f7e23fc2b7ec52ff4affb6846392cd86834ea3efe3408e4e9a78bcffd49619b03a192c683901af44289c9f7b4564823900ceacffd9a937136dd5e57a8281e96f4759eebddcead3e8966e76f68de95ab9db2ba4fbf83c3b27092cd339cfe48d5ca0ba11591d04566f4ed24a5 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f43f68fbd694f0a6d307297110ecd4739876489fdf07eb9b03364e2ed0ff96e9 +public_key = c02b82039fc46c8a8a92975a2e37f92cf893a7f54a84a67022845d66236dca3c48456d4b16879e849c7fe3475d0308f423e8f2ae2cb6763842a329e14f5c777556e3d5fbaec05aa802ad3ac1989a725337ea38a668ea65cdb36343ec3d690ccdfa47ab1fe473247bc488d98e1e43e75a2da0f237fa03a8fc8386485ccfc4245884f1d941751aed27fa85f0067f5c3775333d4261aa908bfb950894cecc1bbfd197ced78a641366b9199a4ba29d446e03ae51549be7959c87b6f9acff4cbb7a58d01cad4949734f797ae40da78f45c70f668506977d7c85a0cf64c700a5b1f7879801bc3ac75584302c8bc82cdd7f7bf37aa4d0681bacfd7e92f9c653f8a9551f796cd0cf62d3a438a65ead74d8dae9e3b5a80efd5204ad45dfef488b7824a4b1eed79da9b44e60d8b22559dc062b924ead4f0f0df62304cca34bb4fd7dce6b28d0fb6c5dc87ebf7bda9e9ebfb6c6046a177fc6f70deb0406b9045eec272bf0e139a69138adfb05dd1134ae0899c167beb1a5e8e8516bddd94895a263d59b167630f3a0dd3c64cf257cdf93596e64f88c7a45814d4ba8da541acbeb6aec7e530c58a61a64d9b9bc32d870bd1d5ef7063b9a97519b97ea60d7aaf9ce93e948c267c9c815063d6b6d3ee9eff49b386d94395804a9af8defe8490dc7ccfbaed98c4f9f95b70145b448387183f5cc8f4b5f35a949bc74706cdd3db7645c2d084624844a56ada5abc9f44cb5b8736b835c6efbceaef361fb660479b2c51b99734970808ba5c6ebd169756cfc986dbda94915563c16bed9aeb77c01a7cff55c8430696d6e83aea5d4929256fd725c428b984d15e97ed4a7640309469aee336426b5439ed67e675788b3a4fcebca453ebfdc8a49c215ba120d4a3425e60194e9abeab2384e84b1efb7b7a54efc678e812588961add00a4e8e5289eddcac582d3c73dd93e1234518ebdd3648853c5b5a24b389e894ddaeae78c41f6fe5ef3d3a56b548375757ce4fe21a7c5a0ff9a133868d2dd784197573474f92557e61b3a8689ecdc7efee139e4d7f0b5784da4f278d49462965f2107fdba9fadd26d620f6a82f70aa9a94de90ce3c9fb9de5072cf877483c2203bab82f8ee2f37bbb17c1a4bc499fcf49ffbb42e4989905a878dc873e456a7d9db946572936d8e8e778deb993ddddb12a35df1348ce8c9d1b0f898c84d3d51d7f45a6bee864375c6f3d31edc191f8ad835a3f3709362cc763d64cfb91649d7238f5402c9ec2bec7ab0fb154d69e39eae96f7fa25938f130ed711bcbffd2f9550a46ea28e4f95cfdc036d7b79bf9e3034fd60206c919f8b865fd3d700f348fdfc8001a30124b40c6e6edc4ee8bcb27c60cde324d8386da99c3e098cfb95bd1813ea4d6aa5789df7a75a67b6313f7ade8d4aedfe642d58080956a04fd3c8193ac302c92e949cea327f1813390382c814b2c5a6d34a1eb44b8b62aa77bf88b50674560cdc7be967c21ccf81ad38ea6978d228a83a92dc57c4d39175c910a55de311ed1cae45b0736a4dccbde6eb58491da31de3b65ccada7c80c7815f677eea7ce5ec571bbf7c4516c65e5bf528e26d959d8e5e1bbcad1af9ce59573d749453d9b6b52a951de9b889c79cb355c34574ed70b7c30f1934123c9ec68ebb324d254e5d246b14a0259e49b2ccec72b8c494834 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ea74fbc3c546500ed684bed6fe3c496d3b86d2d6dfaf223969b942e9a8c95e85 +public_key = 26def15e6f41578f8088b63da72fafa9fc5476b3603474b24d8394b93ab494ea3eb0f33ff5e9ea33d34a2f666235fad09e35544dfe35eff54e3575afe20be6b6b59a4db843c35e39ed345fa28dd03fda60b35dd65f86e57057ec4914aefc0ec38fe36b3c7b80f77887a03b74bafb64d3c9f2701a86b027651fdbc777bc4d90d387fc15b8c12443af8636e46ff4c053d520bc984e7ec56eff6e84b683c1dba082bda584b5793f7f577558fec46bedb7c84949644d405579659cc31ebe30bd29dd2257f10c043bc90ff8450ac207ce3e8baa896e57ef7cbbfbdbbf9221cd51ba354dc404767f9ef765c66ec19acba3b993cbafc0bc2367de5d846bc4dd6587b51a86f77f6865a5c69d885553dd0cf10ea7db9c0666c1854efca3faf58aef3ccda8060f4efcf978f78bedd739604b8a87b44b522eb8de87dafcbb8ff0e62c441b4f9d19b76425e5ecd1f6ee2a2950922637a1ab84fbf645a1f6413c288b731945d50f9958d56db90aa01c8efc83b73aa88581522757d505b83f6eae06eb6f538dd21d6eb7dabcb0229878d85c8f352a9a4349bdedbfab0c2ab4039940a887b665f8b9de1d992b4bd493db6074fa85e148fa970953ec0ee4d4835e9f13ed390836732b3ea6a89145183f72dbb095d7617a3abdc299e2982d35f1cc30aee3e01e9ec9eb397680c8ae222aa61f5e5a9396cefcc75c0dcf55535a3f423ef142def55898ee23798e1748bbb5464ae0be67a2c44388044754a87a5bdece752c38b504bc444af4ff73a6cea4768f2f681554b56dd59da1c7b88ecef6b7ec640c1bcae9bfdb5f864ea6385dbcaec4dde3e775ca9f72ec6f137570fa9356de55c5c2ec92049adcd978d837f98763fb35d153e805a7420d2bb803cc37bdd9dfaa2ebd4d18b4f344e9cf03ad0e2360da2e92d7d87df71bae84dfb53884e91499fc0d778cfd04fabe268a2204d53c29b62ff74fa88de56da3e27c3a7fe2c6c6c65470d1a3ef85a3af1a963bd919ca3c437b43d368e6e7a19a4d7258b8bde88b474229f673499ac54db247d97225e755458fc6aa6567496d74f16be9588c6d9de4619d4c493bf73f2bdbc05343a581e95197b64dcd98f6442565c06f9d5cf4d45218bb9097d1a5e53b2d0679720598fa2bd8f286b60e5c377ca7afb0cfd6ed57e2d7de6a47b993614f6619f97db0059a1569f353577765a8368d9392890f704836c228afd5446bbf7a24650438e6d89d7f143635b1434680156524cdfcf1d8565ca5c7cebae26a2753dc299c10e4968a57f9992adf5cf3ec5966f9302ce35b68e0a81f910a84ce202e64c3aba248cb89c69eca0d24a7682cda140672c00ec7f5c967f3f4eb9b9f5af6ea75409af4684b725b446a31ede99f67af94b958c4b979c2a841b28878b5dc5154b79c944c7156538e6a23d379674bba5438d64775fe1a87d3aca67764ebf83cf7c7de8f3cbe82bc7494dd9eb23c3539302eac49e69e3d7d454bebe6b2394d00a549735aeaa489db025d8be77d841e19d42e6aea4a73c3b93dac5a35b826f36411639e20576a891974270d5c0848dc13a4a46499fbc6a9fe236771e8be35afed96e9f65738c531b8e63c3f4a922a89f22cf8b830aad4c3c7464a69982a17ffb895714eb8f4e6d0a4c447ac97280a7a7b63bd585c521a49bf9230588ddd7034 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 64efa87a12cb96f98b9b81a7e5128a959c74e5332aaab0444fca7b4a5e5e0216 +public_key = 711cb96f0cbb88a8c1c298c7838bff2c45f5f33e3ee5cba7f6dc77413cb58ed86f76df6b3a7f9562cf8b7a5d73c1994f69256eb0ba9c944e46c55fe419475d015e50898ae7d41dbc52f43d50e8ca5706a774e5d79719754c6336d124fd2387bdc183fc04efa3a04a9ddf9ec4671fb54ca6ab16afebc20ab4f3efe9116f9ff4e3751697dd60ab8bab08ce45dc89ca77e2f17869e645b70224eef5d64f6706f256ea90ef1c502024858f9ec89df9f056f3675c1a6eb229ee184dd845cc3f7c5fcf93c566ffa732c46fa8e89c5b6f4a5a827b625adf6a31a3fe324e486ecc746027776a95ffabfdc3c436c690e3664ffaca0168f022a99130bcc402bb7235ae4db7baaddf7981d6557dfc44788c85d6bf1fe35aee917837a3c3d5a598757e00f77b6b785436b6840a26e51939774b1da7cc8d89fda55e6ae49f316efd6927e6f29c8a9fa94a8b1e3633bfdc71138851ea6ab3f84e6e18b8542ee9e36cbbc7edf29a59ef6b3b7e20866dda8ccf802abf47a769676550e2fc52ce438c48946eec2f756734bd467fc501dcc312bf6fbc9c8ed32dda68e444366fd84869d375b59687c94a685b6491ef36193c722b7b4acb84ce9a69388d13a984f696b96ef2c3ecda5c38c2992ba60a38dc9c6783865d93a9b886963e94efaf73226cea3f1db9db18c549cd5c392631dc4732105eea618c943b8af01c784885c6ff7c56a6b698abf1c76a039b3e6f95c466dbc31c4e73778a9d587db68b8a8195e886e829ee043b909733f09553bb942a96ec4cbda148fd0207eb6d0d9bdbcd62c89ec12f68a1f15d6479de869b88fbc9cde81de6ac62bc8dc844aad74d3a2c9d7f2d1a992bc4431307e2ffeebc70e3f6e7199fe51e354ebfc4ab35f6d1aff7bcc4fcce2650e44e368fb493d6754715736f826ed19e0ffc07e5b5bccb3d0d26effbfbfe9383e600c85b6cdcf26c89ded5e7384e8c3555497c07fcd7502f53714beef79f7ce5cea80ebeecb609c8277e8a5484f30e6fa40b18f4675c95d0dbd5b7c77b1dc4aa297fb8083bb79f3dea0c847062ee8be2dfab69bfbd56df4925db5f4479bc12dcbc835bd254b891bf373cf5c4971cbd81128f527d7fc2ee6479217c70225ed6b416bdf0e8e8acecb63fa6af4e7d31bc5d312023acf66986c72af5cd8a88d767844d4efdd5198b965c3df4ef44ffd64610fbdcb353ef98889e72e8645a0e91692b8857675afd45b6cd3e374888b40183720e1985d92ed98738b63b8f3bc87e6f9ce94ec70738d705f38199bb78c8e1ebaef500d7ee1cd93c956cd04a5e9ffa8b523a7861b7bfa3dce97d82449b00b8961877488c5d54232eba79aaa0d33b3a480f5acbe47998a5fb09ef7ac2fbce08d6bdac7b6990297504194bc13d487157fcf3cb952d439646aa86c47986d26dafd704d2c70bb200f6e8309e87291fc552ee7ea8438ae4236cdd74315a9dfb034443e8d7ba0a249b312ac91a8e92754dcb0bdc8e4615974cdf45026e614078f06bdac3c2e69eea19e2f8a4ca1b0febc5cd33a6076e6d23d39c97ca930599ab1fb93d58c09d663de24e58b72ba0804aeb7917b7128480244d42241dbabf6572afcf3ae33a54a1f9c65dcb70821393ba5e78ba5acbc0756dd8a02f8afd156dc73958bab2f2c0d24c2436f9f00b7267da9f8b2678c14626ec +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 8a95d71228acaa5f9ae6f9d9ca8ae55fde296463b41083a39e833e37c4c90f88 +public_key = 317771b7e7746698de15c76a39356cb459b78e78f1e6abff108e7b237ad4a7cb834a743f830934043856e0dcc37683db3afca17aab6ae2c59ebbd57f52d84cb107b6c5e536edd3ee57c3cd404a61880daa1dd87e43e9fd4f7deca8d998c927451fafd5429c643b35ee8307553fc755ddcd6d9003c35d4ed780c3eecebd5764e3c47a9e3063978143fb9a463bd11446394a287888b6ef4f57b6c0548718faacecfa657148ece26cfd11cf7386dcf55086419275a3ca59bfcbec4c63e5b487d4e6626fd495e7b54b9641a2ee6dddba5794b4fd42e86b0007444cba4db26ec6547c69a9dce8b39f3b2a388710578043b77513173f6fcde90854bd6ddf612e1d48e79435eb17680e99bb933cf32b1ac29869ed98a881696b3a47fee7bc4a50565ba52e57d4eb2cf3c057894878434d6e789ee8a594f94ac55748e3cee1170c391b6b8403099929afc60b4f383ce5cea598d701aa5b60e4c789c759c137d3d946416ee3e6e48c626049f0e2f640a347a2f30560304e38ab8fb78ddd8fa17eba1ba7e1a333a3d32f44dbdd9aad8d58593beee09e93291c8855be8003c6cfea4a8728e7ab3799d5e4dd4349fa5e4ed9baa17b41b0b7e89ab5cd0e45ff174a51f45e8badfa7df523bfcb64c43fac3bc5b6532bf4ca92ef45e1f6ea815c865bc7cf3cf87891fbe234a49b625cde1169c400cac05359b6a15c9f330eb2200fc3ff0a4b94a8d757688ae0c48d0ac5c3fb75dddc38a8167c87c51cabd1698f8e3654380cbc8819599699615ef5495efba00a8afc806ced4965f183b37bdb88ff652682e02b7e26893fd97b8a7025affd7d62e99557751a6a1da7828d8ad03d0c62c9edd6fad9f589594fd729c17f38c5c83bacfe5bb8add8c1749a7550765f873cf2e3e8be9db4c50b9e5fed6eec32add89029f861366d9177612d83ef1a1fccef55342494d8c326d5ed8960a72ff34dcf3c94275a0b77302f0b82b5eef1bbee5539d3e11baaf10323e4086e9984a3d2f4274fc55bf84d95903cb543902aaa5cd39d0353d4ee86814d7ee9f7fbc17d35c68b25ee9048434973ae0613dcff855291d7ed5884dea10f54ee9f6ab883523459dbad7b51ebcee8accb66f4a6a172c9a26717376e678771b44d9d55fdc93988b9c9b5af98907b17487bdae397b8547ac8382f9af8a78a91b2ced5f117f00e839218a74d171dde90334ffc97d9976b7fcdd4b742dc6bd2667ba6bcf4dd6ed314f6b98de7e1bd7a71697988752f5628ffc7abdebf37e97a487e542e8c78980ade8bf4c0fe9ebf598580df7cdce33ea96368c8b8435f5507429006883fa88ee4e5791c2685f61c9247f7f378478492ec90778c5fb8aa4a70e6cd4899dbaffbd5799ce3795c58b62b5ba8f7c522e78365089ae735a7978f5d9ea8c572a6544aea86b3ed8ea9748cf6b5717103a6d2ddff5d87a5e1aa94beda8691d454de0b547ea5eafe15d61399804bfb32eb8bd857b885191dba48f9f518ba798dd54135a7441a2e7a6886f0a0c665a15d318e3672ce6e6f6e4e618005cba6ea47faec63daba709adcf48a4e7fea39b74dafb13d4a60ac6eba8abfcdf1aef758ed8215bd671d8867cd2794fc3da8983b410f149ba2ca7135eddf83ccc8d1d4e2f1e83c9d8d4b95e33927f84741e362d80c3ce5833b7f2498d841f4c7e0 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 90d79d75d0bbb8921cf70d46bab497022a8e750efdc99e5f1bae653275441c7b +public_key = 6124f5c6bb62e806d864db84676e3486836fa07896314a6ea13a56e2f467483848c355e602e4c6cfbfcadf378d85654a640f4c5e1aa3ba34f136e530299ef74c23e6cb36d04a549b19db794fac3f7c454fd92f3f560636fa5acb57fd611a1e95423ead94ac88272b6cf4c89fa0635a7a838c38d9fe1d74d955453ea44ab5a7ad868cb9c071f5e706ef4a1dbec4c9d8c5918f757fc5cf96be7ff0064c0c47b022bf44df3daedb2ef520be70f0bf791555e5b69cba050d875c78c18455d3d51e521ad54c651a738bd3fda29ccfea9fbbdd937827c6503745e16ac5d79ecd4006fca98a66acb75e9187fca7ca935c090bb8d31b6062b345140def157976184ae873ebec9e878a3eb37b661fd5eb5f45fcc6e4887a8def4bb44b89cbd4dff1e1a9b587a8c4a50633a9f386e6aa43e46d649da46ab698e16f0eaa75943ce16eb362d74ea824870a94cdf84b38d809bea8c994d3fed057b78ea6685fee45548e6bb681b3ff5346ad5467558fe6c345f6f58175a84edcb32b378ac3cbf4e85739691f34c1fe633c334df7d853caedddbde8a23d46328a4f3536a44bfab94f2c76c113fcb086e5c4d05de9332dc40c5d9065cc3ae5c861212b898699ce1d2f4a04a77bf165b0bb057c30d9cca16b4dc91f8e7c197a4999372906cbf38386d67cf7d1e36e8e5d4613c36d8f655d4985da735d9f33fd9580fa4518d9a34eb63ba77cd63af7cacf15860799d381cd34e34f9e4a1f5c3f543c77d3d66c374a44df4a7efaf609befb845a4c42f7354699bb169bc721be75ce8cdd6e63843f543c0a94e62e388fc21c313b3a590253dcab0a61d3e3aea195b13cec41e38539f41c6e22d63f5e6d825e7e82ecc3edc9ada82aa5fb766cdeb279b75e2dbe877b8fb8fbc290f56efc05f50779bd2c639a67476fae83dbe133f36ea68e4afa9d330dd0dc3db7a87ebb970ce767e94c007ebd0203fe6b1be9548b61bff4a43fa5cb73fae1484bf3b1394ad69efc8885d02be49510656794033fb325dc7e13611126afa639355de9c04de445eb5c743028781587ea9387d7e88b3c904f58803dbaef55aeb7a392c14a4dc858abb9d537f8043c652ddaeee6a5983e5bcdb65528286e0fc7ad5a59a0677f5cc965c562acb9d643df293fdbfb35b21cbb4321fbb556449c5f2ed8c46744e48c578937cc13dfddf49b79ce96aeaabf31892597b8a57683c495aa7f9bd7b969f34899127ed4accddee4049ccbc7c37ea5868ba5c2f4a3934d6599ceec340d6a4890cf8d84ba371456caf9d5fda9a8d905ef53e54332505cb9323bece4ce904c739433d99fdb35461d4b3f949c87359d4974c5cb7dd54531e86e7f9a69b8c78e137a77c0eb6b1ff468d1bf973819ca6a69b1e74daf8f3b35af55e8405f84425393472b3b7674503a86592947621dac8352a64427e3e3d527e6ed6cc78bd85412d97561d9e0f329f3361485d138b80585cf2a59a04896b3bd8c7ec39f3ccd39dc962c34367ef26a076e7e13a0d61f33b78d62d1fdf512aa96fe8deecc8db7f46bf1042ef46bfb594d5d59f26ce167094f966c7d88da77ba3a71d18693707dd7cb7cb4941c599103792edc82e47d8e4aa9706db7fcee5e924d19ba561843c3b7df3f91b4ff04987cc4a914fc6ad33290975bc0b534d415efbe43f7d4a4b917723a +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: be8a32f97b9a8d596382c02fa2a0eeebc15c083e970ddaa4f2622b91d6718663 +public_key = 389db3e85bb887d46ec144b4d8ec8bee8fbddda538eea77d818c7081b3bfcec68d4a6d35b81f80b23985c6d9cb768d568286b405f937e99a8ac10bf9a927940c0a7cbd46f90d23da1c23a42f3a437d6f91dce36e39e8cf2ea8b9614cefe767eac74bcab99bc452b9c5829b586e5544e27432f06ba9c96869f6cef28a0a70fcf95213bdb2b84b45f29a49b667f4848d7543baa6e4f8b7b51ee9a5d483fe3df24a3fa3af6869f00c8e9c6c5bf4c53dbe19fd879bcd7843475b4ee0a559454a7375ac14e8c37444a17ae64acc751f56b2ac97a1158c76bb9976d85dcd2386e266de64744f9c3da3b82ebcf13876c20d639bf5a5ee94d939985abd149b99c249445f4c9cd85fede02ec536bc8fc30f9e65d5c7de083296d88bddfd4e39df6dad6ddad4457cecf8a7964fff45997bcffae8eb08d8e84c659937cde6d89fb59d765ea9713b768ce15d99e7386b4037b961b8eedd79add8fb9f8ddb71ee56c349b453d2a3bf22c56730bac0ce19c4fa6ec009ed3ed49f8c7d068cb76efdba564855289bdcccff2b179dc773eb947f872d05c4e37357796ea67ebbe6cba898bfbfab70c69448ae56df0b36ef9c451a3eb4b83efc8a95d799563cad55bc89fb3461fdc56ab434c5e9abe9363f1a9f577698af0058b54bb5b9a7c4fe8d148d9dccab2d1a31d77ed1828fce208cd3700fd2a95b755e14ef2e26f3bef565b02af7d98dd46018cf65c8324fdca0dad64883da659826bf838fec381f700f435ea40c872b83935bf6cdccc4efe29c81e33ed477babe011fcd645d79d5a3fd42038c615a476ff35a523c7761d4560554c8ae0532e9df3a17aefa8059d8411bab5fb96b990f737dc8fca0e4dc1a3b9913e8efc143dcee85d4e3ad56a994c4dd7d768cdfe6f679f1d93b81973b46352796d37b4f9009312aa957a51692ae8a65d514ab5bf7b46e0964a808f8add5e765384e8c35c900c4899f03dc1b53be227a39fd8b3acfea46bed8832c3855535fb38cc5cf761ff1e359dddcc8dd0d73422ff4762338fd273645c326e81a36bf787ac90ed3f6d758ae71e5863c66b914ebd05655b1ecbd57f8444e2689ad91a6915007e100ad7908897b4a3ba94c98ec2037e532a965317ecbd55669719b5c613abf45b3335d734b718779d51cc5162a91e5ff622a94469e09a41e8a9dbb3667312bc8d5ab7839374f689b32afa5a25de333126a495569d9cb37d02b18333a7add255b905f4e7eb856dd8f7566b12c99d3add794f4c0b78451777a3789c834c795f74b65881cfd55dc1875c649fdbeb8f811e49c34a3b2978468e10ab7fe9e793b2856666a7c28473afbb467e60ba60333dc5ef681af07c1779c6599bfde061f54384467869cdb21ab7d8a6d4153aa68071eb768fe9956a3b16229bc31fa3ca53e5048c9dfa03f52c24cd2c92a6cfdaf8c5ad6adeb34fc270f3b8f76a914f888d39b59feeed4260fa68c0b416e6853e9cb5894253a12aae0171d8e44aa4258cfb54739f642c3ab2c5abf1b5967c8fcb377eb91fef8c0d4daa3f3ed4a0f869ff4bcc458f4c118a4b59715c6f3ecf5a304b2fc9877d1aaa3af43a512a680f4eebdab9dc816b95c339331f5fccdc969363977a7b9695dd6b9ba358d9bb613862a0561ec25ce0d2dc86f262dc0ed164c2ad357a709eda919cda2c4f880 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: da2cfaf69e25b2a89ff2557bbb6f69e01d8e2e7bb27a7a1ce7e40fead16f33b2 +public_key = 35775145cd98e6756148b3de8ce75a67137ad245586035fb765ce5824cd8358c45ad9fdbbdc3525543a66b2f854bcb8dd9eec921bedf67e9c8d8495865b3bf16c39ab0a86cc33ea52104f416f7bbe5ede9617ce67e88a40b4532b1ea68832fa4825dc6e24859eeedf10ea54e4f8d654b86abaaeb52a12f742fccbb3379f1d68d7d0769bb5684e41fb791c70f5ead44c79cf8c1ff8d987086cda07546811471cebc7eb7e8a5c554a6cd0d62bc7cdb11adda8ee95239f844d275f7423c30f5aebe91ef94242636644d6debab5026feef01ed9c24058f8077cc2313842a5ac74bba5e26cb78c4f8557cd38dc77f86dadf5b190dd6fbfa852c5ac738f33c25ed7b26d635a09a3e3e1fc9eaf432a06c4cc89be5ee7c4259bf79631a9756f5d86145cc2adca6255edd58ebddef549d2c13caa2e8ded5ad88542ff1e998ef16e39659c3425c3eb4e6cd462df5337597dc246db984a881adf5f4777489b9ae84304372464ac7099b6afa24a9545b3ad02ac8b9c968d0b4b6ea9ecc0a83550dd7ddfbba36de29fbdb3af23977ff011bc29256f2ca7cfc7c4c334fad5db489ca290390e6ae8bf18b564a0371580d6fb923eb35983a9cdf85d66482864cdcc437da33be3e1299328adcfdc5ee812f25f2a98e77e813a0e6c5ff11573873fc512cedd4ec3ecbe1446a3b45e8af2f53ee4fd4c3e3c36439ab128c322b0e60a5c4da27f3ae622e33350db050e6de9fcabcbd8fca80beb139a7e5a244e76915424429f3750abec46d7b47b380845e91d6f790a8dd8f00bbf09a6ba608cc9cbdfc6c8f4cc194cbf2c73dae48899a058bae66f3b0cc1fa0d2f3f09d995010644fae989eb94cae8128585933ad107f829416d6786cd7e99fd31c08a20f5ae94cfdd8aae8ae5ce77c185d5bb085457a8eff805f31d1d3f301053e9befa1866b634949bcb4c6952fb78376fc91bbdac8fefd96d1d987db5c71e39371f894adff3ad99cab93d5353ba013aef5c5879609d7e7a4345a0e81a793ca012a6610d9e2dadad6903b719e384c827ac62e3bf590f82f2aeddbfec5dd678e5fe23d85395663f82f399c187cc2784199cdf8e585b305f6e26f7ad03b05aba3cda87eec6b1876f3dbb37dad789f7e8ba7cf0ea792366117d3d8601664d6b7ce65ad3a0319df55c5b59e66545ccdc9a2aaf9d2eb89eefad17026c2a4b88cce1fc96816af697c5b5f1896d44da60729984867d72234c71aa5c8fed44f05dc7defa39cf409b063e68bb28b3789344bce267db328542a5530233fd3d6d8858f5ecaeb8c913163a97c0759a2dec3572f88dcd48d175dd4b09aec9eb76f956ba5a66fa8428fcaa74e7e237bbe4e09a5bacca54b3fc76773c84c14401a348109bfcd83377f658dd19af3591b7c65bb33833517ce53f7701c5beb2db8665c05f69c6d52e73b41ee2641e9c998e03f7f750c44dfdddad7ccdee69992da9455c3bf6e4c86d5dddbb3eda4f542fa5c255b4f9d037a4264939c4af6f8b8e7dadfeaa958677193c13a4beb776e9a67bfa0b45e601a1750ff9b78cd55d6e2ce9f0477efce65c5c34a6e824e628dd696b3d5b962497ed3433bce7d7537ac4715b7e92687826fbcffc0b6dfcefdff78e69dd3b996b937332ad2161db433ef850b4c8a5bc8a48556a927ce345679d1595b8a12a0e85dc5da +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 511c2ab40782322c06111e144e505328c4e5bfc890a5980a2bbc44aeda4c738b +public_key = 023753736cebba67bbfe1e7912ddbe47c8f7ed9773e4e5dd8e1ea5b658e357473ae2a766156b9a4e84e69a1b3cd0bcb90eebc31f587d886accf40f7c8f76f0aef7d741d4d3e4b7fd4bba51af6be36228d158fa5868df516897ed59abd4819635bcfd96c4a8dcc346f67ac6b956bc861e0a9864766a18d4b8b9ea61a0573fe60a5ce58a87d0af974dfe7d4f599673137dbc76feeea7d6ad9a85d88da912dfd9644980cfae34545375c13eb8e118fb4d3deea83877dce7e58435ae34e5f3778e671917dd77cd683e0c442285da1959932e88562ebc932bb7ae689cd9cc7d3c6e567e6d898b6e135f493f90da37ed7ffe6b16eefd4e0872cdbd513005fddef878ea83768ad44885e5a2dd7bfa94493ca519c14e0adae9dcd739354cccb3850dbdc4b504c2eacbe128f55bccece7c534b5e68b94526aa46888ae970372ecd49a7f13e7197f633e78997c5eca867852e648f15bf3feb2fb832d5fd38634d35de54d7f4938ab88f10c47bbbca3ec3379e7cadfa0d58454dfde4fc7fcc6f5a97a6c3a5649689287fdced68963cf24a05e9851ff1f77fed36812e598439d701d5bbf138ab7703fb6043853415790a64d878c3bb297b6bc7c1dd0370d7d8dcc7d32e6b7544c3226cfca871d52dd65c8f2eed3103959ed0753e91f58ec3770360aa924357316ce8b33bae2ca06b24f1c59abdeb4ebc58f3f75b77c2bd7bcb9a240cdd19eed610915db0cf3de8d78d9c9adca70eb56e376d3394eac39a6a198c5c105c85899e640388ec72ac3dbf1d5917035b9ff5db081b6cc6103b72e4f3237189c583c702f7768fe43c182075a498f8d051e78e6b6e6350e78aba89be44e8c4e968f14b9396574b371fec7d2858a1fd78b546ef13b8cda7e05382e1fe7457ba27a344547ee97b32f56b4fd31c9e6b65ff377be25b6953a4dbc9a6e9aeb3b09dde359efbcacec80033990f38fb0bda655952afb0ab83ef4459ac56a76af3bfd2669c0239496610a4274c9b3e5e998ac948b3e84f7c8b380c1077480789b018d54373a7fc75d80f387fd1f76f6e345bb417c9fbd97add68640dd2fd28258970cba5deaaaa32c8bd22c0e83c89b3e1cef5606c3e09ef88c9f17e80d2ed703153a247981b5b465318abcd0a78ad1bcaa16bd7edb66bd78ae4b23e84afa75d0befe5b599dd9f069f5a2fb430b16f9bb5cf057f8a23186dd925574688ec83ce932b0fedb870fa810cea98c694e80333790b59e688ffa7bdcffcd9b61a56a5a8ea6b85b5861b44b521dbdb6adfa9c8406f5ad499c0664aa9737dd1b1fd9897569a64650c0a9b2cbce879e77ed9f14e3bea6f1b415641ed645fae5fe2ce49f5a3bbe49655649b6fbaeb5634f5d807f737dcef63a80edc5d2f573b9bc5914b97f2879ef49045ec87767ee04d6c3b3c8c6089e03268a5f0c530f1682c5ddf2e48d4adf9ec20a0793265a45bf8eea60746570aaf4dee763ac29fd0d5762666ec3a619ff7777c8dba75516c39fb4acf353157ab0fd787bf3e8ce2c73862dee4d23c04384fb9c5ba0d974e9e29fc20be4f6de458586feeaa4d5c8315bbfbb1f9a446c80b736d60ced7458a9ee973a394f163e54383d14e4f0ae0b4746a4b892dd92db39b8e1d7d8778d46cb0e3ca324d417302e861358385229492a291da3d601a3f41d29a75becb44d66 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: dca92dbec9b260dd97e8886f876862d6effc3b91fcf3fbc986cf56ab93ae79a2 +public_key = 87fca4992854f318a4de4e88f7f334d83a3fe0d5709e89b4ac48fe9873baf35f5afc1da2785c5ad09c4b28c3e1b4579a7afd6fbd9e378119f71383ab1e07e79385aa2e78b70d435bdc6d4495af46be23b1f26874ad9e65ab55e355f59686a33fc6cb78464cbd991fead6aceed135e1ef99428e3b368548ddc3be6c0ab5cf474f59858dfe70fca39624da96efc1bbfbf4568fd49df3a4192a420fb5fbda254fd65e86aaa6d669f7ae2d69954aba444fb9c6b6cbc42b5ba82e36f957089c76f48ba746fd6875f59d4fe083c464bdc992bda9635cbc88ea89726a268a34d5cf1eb9aad5347350f67d1fea925f5677e393984828d53eacace1844fc52b43d408761c385cb559e645696339cad86bc733c547546e64deadabea7a4fa0316cb635a856846d75d3a87b85be944a5587cb33c653e44b5bd764f6f8b06aa8688a0ad626188fbbb8f707b3f6827d87eb8d7e2af5e071d5badd0f7ddf88e483e9d6259c30ef5edb6916de4f57f2258ecf9dcbf075f330e4cca83abd93668b82c02680c246e67f46f1921b863cab9a42f4f0a15d986d58ecabb873b7ce9fa34b7e21bc6c029598daa77e30177357ba8b0e7696b7afe16a97ae2f535cb62d8c947eeef5e952e774e7fb974879337874f3c56d47a0d695797e23e3e2fb7c3c7bfc32167f7faa9f11de8d512865f6a453e3e37c5b0ae1073e863b4a5f4b6c957eeca3bfff8f62f98337cd5771fdd1d8fc4f5969f1826cbada8f5a76048aef2b4d97cb354784b4b676837744f685f87142bbd6a67477b66a9457c48a2f779e097fcabee6fd6e83f78baa3407afff8ff5465af790e033e0c9b8bf6e2bf987ca6521c55bbaebf49edcf6b0bf4402a3e2960a55fa45b448397264bad3530b9b56643a0d7cb9a73589955631883aba865c4d34fc5f5a6b8d596cb2c4ebfb740645eb1af9657d89ea2bc8a92bad96ce5f52f5a2d24431d83ac4e81ef10c6bdba303ecd0086e47ab3f7984363cbdd042cd82d43d64f2bf7ff26958b85c46612c655666ea2f4d600bee4fa70b4c1b9ee09fa6822d0ed0c2786f0e17cf1a9dd934a7d4159866e557947c8e928feb459b2337f3dbca2d9fe62107b5e34aa202b893c103ba5cf9b4591ed7c1f36b6ffb9ac35cfcee189571dc7f411349ae2efd20f35a741cf16ff98175563599d3cf6224ba231cfb2f087525059f9ab5b80f73e10719972156aa30148bfe4c907c2e4f683c56a39ae46e2cf1e688c4504dbca8d4a87e4de1bf6472546d478359ace455c5e395625c95cc84ea3f0e0d4b2e3a4a1228da1463a234c491300dbe8324906b48d5151841a1f4a55966f1d66ca8b1863b6ae4869b4c93e2c6c94fa6af25f37e992cbc7bdf3f6a274bec8b537f89b996439b763bffaca39d1f743db79451cbcba86efdfa9d8567d8977d12066a1817bda0cfb1bda75b9d6c78a39bc851654009bf66c45361dce46fb3cdfe4894c785fdb0184f8db0ba8f1ae54f3f8d50381a90bebd73c186aaa458a2e8c682b919741836397e3c59e0ab75dbdc48976a6a474969356a75e27ebfb2ca76e978e91da7dcd9e43d30bf843b2a5e9d24cf4b2ca948fdef0d1f9a763ba55b9b92261cf1114cd3c81dfbc8c6a2c544af712ce8030ca984dc584e0b0627b3d23abd9c4d9e5087bcae2bfe6581eb7f9cbf532ba6 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 57c170e691d7a914a901b9a11c62b8b569b3806427557a9dbac9faa720ec3641 +public_key = 0e4db11944ed9e33d62c69350a3d4bac635f9309ecd48b362989751078ab9964d8ddf6787ceb3f99c6802aecb70368edc6979c4e4d5dbd8da985f991f329f43844f8d4f5a2cad4acb5f95408a3406ec53426fe75651952f5b76ad0efa465c3dc1d56ca0e53953dbcdee2da352a687441f45dae26b37cf8d08a99308639999e3f5ba89585656a6d5905ee10e46f94dd99491cf385788c9a4f38eb1e55ee2fc96a5c5035a3488ceec29e345ebcf6b1b7288abe95c29b37fa7817704be3e589b4fb22053226a43329183f627de05fdd5e742d3d172354fa176d40dd84ce79da8b6a4cf04d35a4ed6bc6464e8d9e3b88a48c81e58dfc1f67ec7ce462d93433193e51deb2d3e3828f9db6a51fc1c456682733d7f4c8f94f37b84857bdaad6e90706ca3148d533d3d643fc319c86653466f036b37e825462c854f641c781775d3340cdfed7afbcd7cead0699d01098af3657363baeb68abfd683044d15275d0fc3c9ab8fdc8c4c6212fa70096af24333fcdd1bdfbebaec8e7b45ffc2870efa9bf56c8ee86659a618a0a96c42acb48ae125af911558f7dbf0c9cabc4554c8fa6c70e297625286456ef6f5afa756145c41373ab4fb59b2782b4a417ee5de4966d086f9cf8cc2283b4307e6a058db3dee74e3aae7ff89a7c1ac4e31d8ea9df12db034be473e9fc4d89aa84f044e429a43b5ffffbb693a694bba3f3e5e78475437387b78b33261d786289bf0440c44138c84f569fbbe74c1c2bbd1cdeee243a4d82319780b24c593149cf76d946f75a931fda8f93a50ee0eb5276ba96ab6ce5f794e638697ceca94d80585cfdd43117efa3c6cad80dccab2cecbf6ed8b2bd6b7df8c4cde4c4507a56cc97b456f2dd50bdb3acd6a7e01ce742aa4710e1674c59a824078dd04b882985f332324490ee6e39b65dc7a93f863bfc831e4d93ebfb25607d3850bba03053fecac41a6173422abfdbb4fe0efadc1e8d9a54d9e5f54c3f344296ea64855dcb9fab81aacc9e731546e7d8464852f9fd8904ace7b84509c2f66f9fac55bf68378d98d3fccda468543a8944b997563726fa4d50c7fdeb479daa8ba43938333b897a13cf24fdec790f967b2d9708c6b67640ca9dddce5636e3c2904c6f3856d13e9d4ce3d94965abf1ee3fce52b7dfe54f9ee68a8a3bbd3446376d6eaede56a7a7fe3d68805e4fadc56286e9a9ade91bd5cdec8cce934ddd757ab3e1f68f6677b5e9bfcfb161d58bd9a6b5e2f85123cf34673e2559c89a634abc2a5a11324cebbda8d167880f6d59bc5fabcc23487eda84f3543386e0b8d265ffd515e816315532e3ef0ea57f380a5d9bdddc2eecec93c275ade244d4f6bf7f74bd9429fdda0183ca2b7af858dc90243af6334b36b0ddcda5cee605d463b8c350923b4696b7eb733762d189c9ecad8c19d50a4946388d736ee73c62f47cdffe453776730e88531f07abdd8699e8bdc9f05cbe2f275c453866d475e9ce2a592a115fc1e0c6b8f093f54ad57d7debcf759abeb9d883eea68c5344a0ae96cdae4ff0e756070dbb496535b9e83f5c02badae5533141bdd9f0e3c760e3ffdebc855734aa9947f1ca4b879c35b32c862c933479d884b2c675d3e1bbd2649ed7d4f9db557d4160f307d975aee26905f7fdeb44f418d3d1fb5b081a3b06f87691170917a1e9f3c2cdc +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 6b5a14e1473abf5a33d44975ca2088bd8fa6fddcb3f80e8fd5c45b9d90c24a5c +public_key = 6213f5629f6a648db6d6e9daabc5617126aa519e68edaf64ad67c5cccc5321ce38e4053b4376924e6cb250b3a61fea868a8d4ac3179589af9197ed5d0efb6915b3526d945cfc183dafd4dd46537d908af92cd63b950659ffaa57e38dade9cd9dd80655fe45979c7efa6c7bee350ba0cf433552f8df58c79d91f5cbff17e7f326ef83b3c59fdcd21bb5cb1a2fb0fa4cf9984bbfc3363333f561dcb9939566e5914d9fd7b56bb7db88e426fa61f8a81ca6b55af485dabd6645d4fd207d6e9fffb3d6f4f5285b49743dfd47fe50fdd4a6bad34a456bf74814ac5d4d53d78dbfb58e657844ffad25fb799aed592a3c88b45bdc275c45a862179557d43730425e548a56815979e282ccd8f938dbda03d659a3a177e6b8a63be01d8342c9e7f453ed5bbb1634cc1a7465e479f20db6f2a5fdab8ac807cf7a8c555ec20a995c25a9ea9cd9037ed85bd65c137a630e787da7a6b039c385740d6c79bb5c20e39757eea72e3cd16f6cc997464546283d76543d9774345ad6e9fa3ddc309cf5cea332ff25533b7983db495101ff4a42e4a8e01e504c4b96c017871b5a594eacdb242bd1e076d43d07a366e343a08ac561ec5a08168a1d6e755d5c33bd69360804ff647d6bae5cc8c7f47aea46d093fc780465e7be49566f35728bd6a8230984a6ffe133b63a9cb4a7fab4befe053e37bc78910e41ec3ee89dffabc0764b3cd5d7382c8db34fdea49c988c5aaa7ae896d117d2c218fa59c3a457f382f45aef2ce5b3d29a5a09dd47547e63916c5f6c2f99564eb87e29d4b62a35864f9d939aeb37e4e9bfc533cc9e8a424b5a1f73a65a96d5edfcbd00678b646e399ac794f2dbdc9b26939b09baceb79ffc55aaa528673ccc4a5b844ad0873b4d6a31465cc479d3d273bafedd46f6266ef012f83b42e5f781c3bc947872c78378164cb0e077cf9ad87974c75ca527aed41a8b69a3d73e8eec1873965448b14e3d7c5c2e8717b94ca27b354ff99de1f581e966eec3dce96d28e5a7b6da8c9a94cf4354140cc5e3b98bfdeb9c95c7c8728fb878caf093aad281efc453567216ae5804ddef7f03bb0c9d741df964c40ad3f20d7c466ba6b8f78bec0795671e42032d499b0e3ad3e3a874c4ad962bd2e5cf7a9af7ed57377dbffb556334797fcf8c702cf20129b856e747b90aac0803b2cbc7b0bc4f8583c8e0f0ee727e0598cde9681429616c7b3f8bd8b69194ea7a64d5ad288f77b652a49c38eceb40893deb651a5c65bbc05f4da7a004e61fbd962c34b10c1869a003cc4cf86d39036778b3ca33ddc500f7918d0df8f0afdb3718ab1c29e619ff94867bffe77bab8c94e18ce551587e4ad3dd54102a4d38ab73d1f3967e9835173e582545c5a60b3aae5da7852c9d43b945668bb8b688ef56057ec058b2cfd6310516e33e38b75ff3d86da9dd92cab099fd6cd376531bdb8308e5a4d2f3f3c87c36e7ccaac88bd0a7d4cfa3b3342d74a02d888d702cb44bd3e201f4efe62c7511493c068a92717cc5523d45c0ae97d7f83db35798354797cca789149fae9597f45f9f974a2d551e8f6101d44d9f73b3113746114ac94b8c8e291892be9c8016bde14ee44e26879c02084b02afe94caff284956a90cfb26f9d71847fb901fdb6603c3bf7bbf5297bea11539fbe18868709fc57dc4d46d7d54159 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 40e593754e6eddb7f9cf176ba2d5fd1087c90ad377556d0b0f686537b1a3165e +public_key = ed7c794fed5d9b58740d13cd78fae5867a5c3dbe40522f3efcb3696953db45fb699c26caa918c3d914e58aaebde4484e95859a701cf510d6380c2a323e34526f2fadb44a862d4e7b35de72269b32430c6b8a68cc3edfbee2447555d8f18aef562ab8fdf2b4de33c9ed65c6dd0ad93b137f94d82dd2dd16b3580e670564b1c07436dc3ad01c85e765dc93da79aff6177e9795b00c5bcbf76e75367e74033afa742b3587e35f065f68551c57af88d90044be430d3030bdb16b4db80e19fa1933bf9987885244fcc6574c633da9461bd8376c42c51a48adae4d0e69f94f3bcb464a74c1af96fc0e82ce04fc25b58711c6cc939c9e02c8302e2499640737ea07540ed89b5335a05c65f47227fe8bebff40c49a5c0f95ce99a0f567af39169313c8b61ba77fd2143f97cc762c8b6be5ce3300a8b78edd6012ce44a1d747e1c3825dce674c8f5838953574e8b6a16b3dfa9ad5355c89780d6c649b58dafdac2e7d4f7758e7eea95f6da97ab5ca71c62ea277d961898e563f47792d99bebc73a74ceb556017db75c3b8b3efc95a8e95ffbd8ebfb5cb1d86a87f93465355a7976fdd0c24744c7b852bac418fe6f0d17de18d135947d9b174cca55454d96ed97fd654fddb0fb4a3364732c6818c39a9d199b4cb5a4d3659c8c495ed39db930104737045ec8dd4e7bc1b86fb5d486e759b87c4cc69a8a9ec38f909d4df0b7ca0897cd1f83fe63abe8fc3145eae4b4b835fb4b08fdf1b2fc1e5cb980cea6b113d82b32bd542ea8d64d8c9b119aef45f4cae1e668938da51ccc08c09a8c43e3a82a581b55cae6a394efc5e46ad9884344ab6904c7d5bcc7572aaf61239c76ebc83e2557f61eef5a9578fe0b4ac8d57b08e7f9a8d86647708483407ba16344049f8b842496a64f84d5b04f6414f9adf1eb10f567ebb9efa009f79e263a2899b770f8b3166eae5bce789dee3cc7d1846f42d4b26933d4803b74c3c3885748a417692f0f5ac2733804ddfa98f45547af8ccd28542ac3d62211a51f454b28559c28d0751c5c6c31045a8ab4ec79ddecca536c3d6a779afe9e75b0d6b6646f0bcd9fb4ddcc92c6eb88be4f2f1dc7962b7d569dacbbfc7ac9cf9df8d16c3b6973ab3e96b6539a1461f8631c6993c776fcf488f4ee692772645dc2cc1541874c02aba0564a46186d05f6ccf2bbf7893dc60d2d44ce1e5b6e317a38c13fad98bbbf79554ef2882fdc5e11588fae96fc9dc79a6a8293a39135460f96329548507d58c3aad7ab9aa7fe913a7fbe4c466f693ef2dd6f619e346a4b75a2a506f6c787cab948fb76f4398b2110781ae2764431e476364abe4ccc2f0ac6cc4f9e7dd49ebd0b369ba96fd5f396d8637f85b0c5d9b3692f08d69eb7dee6e493d841755ceb5f194c3fb5f787f15a6478db7b6b41336001dfbe03f70f9fdaaadab89325b6a3dda4ea99df1c8c6eb6ba3721873f1f4f5575f35d8625685db168830063860965a72af7ce34a7e934b9444e4e1daaae51b27b3ed73886a2ddff29d99f1cfa8583b872c9ad745e455c07e5b905f6cb4f378fdd931c92eed53a97379bbed5768422488d691bfc1b36bab3b0762b8fb6afcf39cdeae51607a6537b985c3798929a4e4b4c9b1894c605134f482b42289ab24793e2d7af2ca0cedbc27d0595b94c698bfa000840bb2d63e1946 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c152523abd8248bed40c3827bcf0f8e8127037a55c780695e2c28ea3e041a44c +public_key = 109bab4bf5fb498e8412fbe35378df2a3c3bd9fa7e55cc79c49fd7fdaba1833452ddbd376377f212953c5363fe615eab051fd8acd348b05d761666fd96c7c04da93c902e566df563debbff18c9359b0b5391e8b03b485e3ecea7ca8eb2a41df6b0f83b84c4505a5966f648383c9abd16638a3e557ae59f5fbf2cd125e9ed986ee175895082a78c137f792b5da5661f39cb66b3f7ce376fe332260cc27ed5972c4b6ecef6462d3b712627928cda42ce25dd3d96b7f14ff09cb9fe9937517cffb7c5f66e3b837ec347643a6a8a4d9cf99eee67395c84c2aa8bf1a8a4d5ebf9c2a6f7028deead468368c4de87da45dee76ff5bf87950889692a838bcae7b2b47c324db7761cb389e447b2a540ae35ed628d8341dbb2b9aa5f04a69c611d431b28c17ba8dfd00499e274c9492840cc8aee912e5be92759db9be4f04ec059c546d458f3441d6adb27a802c3c3f8759a90bfd141fa63c75d81d50d90eb1abebac9c5708a9ba50656b4e761625ea4f2bdbd678ac18188450ddace2b99b3f27dac2635a62ad88321de7a9a75ca2e1bb52586f74ffeff1f4bdb1696a247d7da6cda6264dc9e892cb08548c0c98f4168f471e29d78747e69b4549b62b634a71ead53699a565d635faa7ce45899396de834f8c4856cb2ea9ebac858d9b424cafb5ba08afe433888d178e7eb1cb7b1ee1fc03607f8fc2a94e9b6fecab6a95c98d0abaf37d0cff4af5c8fcc939443176ca4bca59ce54400dc763aed630fa7cfc39f604e6ab0bcda993a88e07e1d8784de9ddfde3c2043f97f05e4fa75c4c6d656412d6b43f33cac26950533b4b063e90dbf3e45587509acbcfc57acfadb6160f5345a599cafdd4eab0f937bd5a5620a5f24e6b194d5fda13ef33b13cf951cf7108f62982d31790ba4cdb4524be9f781898427b6a1adc7a986f88ddf7b39be1c7d980dc87e5faea924daef5c64553f8f666a8f476b772784c3b13494dab57b06f3f0b2aa701acacdcf4eb8b3843e9913ccb47d5dab48cb9d85ab5b36bbff148c5b4f39b42e901a4ee2e1184d33b88ed1e6c3a9cadcee6fbb5e634b72187030bc8dfc1a3e81ef8bfdde828ec4a2e4888d68e4bafa3ba8622a873144328023f5fa66c14286d272e594df8f5560c7c19e98eef238bd9a48d1407de886fdfaced7e5b25730fc0d4009eba9112ce25b0bde6b3ce54945575743cd66d85906a8eb25ceb202945287a6d8a34bce8f7ed501b6b1303fa1b3e99b76143cc1455485b3802778b7ee6ff10b976cd2caf6f165ec0fead36fb33891ac77c9265c30db5a513baca25f4b8499932d5633b127ab98d8c07dae704fbc84049572520eeebec7d00b363255f5aae136eea5b7c741445cc295f666c5437b4d54f5d3a421799318098f5aaa5262b4618706db09d98442499e30bc54c86838e256c24ae481b6bc33bf076b04bbc799fd615cccbe8eb66dd3c97da6a89394d4c7e07b8c4d5c70a01c9e7c43b8a37c3a09e7f8d90cf6d943d28b5d4dced76c2a49d0ca67369cf5b8231d7a9debfa1694e9ac87b03606478605d1eaeda279294df8a7c632484723caf8b38b52937b40e20984c47bf3de8ebee06f9da6a3512fcd60fde7b8b2dc987395af460998231cf0aaad8c1dfbf3824cf7a6fb4ed55ed1ff461d800b59a6ffd7287e1ee3fb94cb59c39450 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ad6466dd59f26b762fb02b19eedf5f79964da68bce0459b91c3a6ee5a7e01183 +public_key = 0356f6f03687752bff1abac22b5cfb1bce9567f3324fca5d83be47af24ea0055e4d94ed39b7efed69b621ffb42241d9171e6351bb35177b85bb5063161273abf96e989ae803e647820bb53b38fbc6d04cd3e075a4a1b6755b97252adea81c7911437c528a5ed007d9ed82368d4c833edffaa1b8d6cbbdd825957d461f7774baff227f8e2689bcb59a3483c8346d23d650e06383556c067f94d41ece171a4eefcc96e3fd769623861bec9bbcca4a5ee2fc10a36a59efb5d7153859df348ef9c3a2745cea329a73cb831441762820c7d996b88c1d453c775a16bbfc752e68bc55839d2e79544b87af67de9f02b794b166f6de6de8e0bdc150dde1af8d0e37bbe5ff7c7d48af57adccd2949cdc3d9318a0cbaa35ae4e18db968533ab1d9ab674c89784e87d69fb4c86461e84ac0e78d8c9619dabe7bdcf6aaf057aec4288becf3dab74f8ca66ae84220bfd0fbaa4b1186dac85f9b92db75231958e20a3f55b8a3397ae0fe957361a9bf41a4eb90583d8d97cade98f8b8a3a5ebc36731ce9fa7346aa427c489f56c7cf3716928c9082b36d3f3b830fe348eaba325ba8c49acb2673570dc5548229ba93a6cf10b586ece088d6679c975c6de0106c00046f5e43cebb0ceac1ceec1779556a95ac68776ca0136396123fff76cf185339d79b4f6e7cda0012af60acb7cc0583e726f3b251cb8ed1d49da83dc2faaf6a71d75abcf4ab1eaf73207d9222ad1b27c9da1c5f0beb7686843360b1ea292568994cf8bafd7d88c1767b885f3e955d873f9c73a1fcae517ca2acd66641e37fbae6d217ccc07f840e20e3440eafddaec6b726eb2984fa2ca4ec7573bb0b57a58a26bd0dc6de2a346f774fb35ce8dc6f1ad95753688b156b51066eca47b436cd5576fed323f2bb2978df2fe49eb9cab3f41477787a96ec6667337fa4ea29b44b7c9610ab69706f8f0557ac7c9f9c55ab4a04fdbd5ecd4e57b943bba0cdc0f4f567f95b8b436838d363da78da42ffdecd5353dd4276b4dd6f5d59faec385bfebe9767a2731fa8b3ce937ecd9df8042b66714d98d0ccd675a54b3ea3c32293da56178e6c53f60f70fea47e3499dfc4f9d76a7977cb467899b456ae2d96f8e93acbfed99cd8c8e3d22ae5024da9ef47beae4f6333dc8933c5fa5f20dbdbeffb23997f70d65d493d949e84af69ac4f027b34a13ae77f185af5f76ac9fabecf9ea4eff65f9e0247d3abc3ca08b3a1d18ea8c75a1ffe433781e759d25b9cc673b0273e77ea93b56667c1508fc4847d2973c6436e4d953aac60929a36baeead25ac10abed841fb95e1fcd5962c5694cc3cd747f260ea48641d9255cf6a4406fbf095796063435406fd624c57244e6f1496641778efec883ae47544b753340f749b488ad95f89784f15a6e7945da56c9e0d2c35827ff13403609a1c938c98c68c7da0fadc5aa746ae4ea9868f19b9ebd3f82ff592960b436a7a7301e4c7fa075ff50762b866c4aafe57ad35f91347a9dba5cad62c35b28a393305f79f33a0e6e4d3e68fea0d36bae734481c43918fabe3acea8f6a13b1bb584938284c10e3806ed935d8e543fd5bbbab0685f099c2aeff54f59d6d6e05590d0be644b3fff3bb766109561f03ed164792b7bd991fa93c14a74086a585353c3e620d3ec5b1da6ff7959016b53093137c512dfc18 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1a4d5dff5847cfb48333e33bb00ca7301b144aa89dcd412ff5a3b1081d775b7f +public_key = cd18700a3e7a52773c57d435faf794021bbc709b8e7d688a5dfc686c1593132ea9016c3bb56ea487a8fded47d41bddc1d13f714f7379e2fb9faf5aa6d0f5469d7e56800ba258fc5b26dd996b6735665a806a74b03da8e9a593fa6695e57f7f85df397e24be3a543a983a6bf4264c971a73708eee57295f46583fc9493d719c197c7985c0a7c53526aeae77de8e1faee2eb4b57c23ff320b8e56643cbc9535a27658a3719e23ce6eaf7798addd888053bb0de254eff63d296f9ae76bfca756539b61c62dedbde9af6e1678b51915d33452f9096c34990b6ece9ceded394ed49df66cecf49acc96b7d98d10899c453467213d8bd24ee764f0f37480c34d8396ef58ceaaf88ec042471d14d77eff85338ab8caf0fffd064bc38164071bddcc78b8074e7569b6f7b4aed416b7d53877ded3b8a6c10a4adccbe90b48774233d4ffc776b4b1f9d4098c603896a612d725986cfd00d83fffa66eabab82db734f6deb5777ed4e9afb8b859b6cd166dec79eae43eb87e794a1cabd83c14b50b85b7ea7e48745c9f8975733e4f62e247473ce53b86edec6df5d5a45fbfc1cf33a396c87f856981c83fb74542c9f3cee1276f3096486fff3359d5eac553931c8dc6bd245b2114c4a2d344ab53765d0fc82c4e412a0aebd5ba6ccee9bf09e375edecdcd55bb6c727be26bbbc4e7392293c59465d84b164fc87578c646eeae3e384e027bc07ca7401dbd097eef05f4ca86d3c73ef8f73dea3d799369133f83f4667a92f7fbee2655b182fddee233433f9c68b5dc57fdc8617bced04fd961d4a7bd17678d97f932aadba069eca8477d558ee5fc5eb4e8265d07b8c4e492d6f6216fe1dd53bfc43af034d5d2f4ddd4858b1b9c9ceb63ea911cdbde877450a9aaa8878a2fa55d89e184d1ffcecf4e390977dbc11e78da5d8cfeb86a4c087a1b73a6099c99836b3cc76366d35a9854b4bf05f5bfb696668796e4117163fefdc32b6db37fdeab0a0197f79ebd88c3a355877cdb23e3a303dde27e37e12b4bfba0469208fb1c2e8b8173ce1e466cd8e1ef86f2a3a4fe5a5fa2d476b9f78badf5e420b77d489386face67f2731655be9fe4886867b79ef1dc18f679fae87826a0b65b44a83da5a35e17f3bda3467552ff8b80b35d5ab869c5fb5dba9b8b30936100ed32d67bc93747c392469c29bf88cb73fca84d01e5bb47d6bd322ed8fbf93fd0aabddbdf566d3898e1f9aba7e4cd11a14c3e91858938fc0f167bf1457dd1f6c774e6742e41ae452d7dcafb941625cd2ae3dee613dbf3dc6a039e6465d6772d2ce84c693bd16c336800f730ed6beb95940ff783cf9f3d7f38a7f4f37754f6c4ed27aec70d9d741ac89e56c989c0f60f8fee78b5b975d54aa705fde97a7b90c3c74200359d66ebeae98b1af044be41afad859ef4276fe2f34bde30dc63ca48e7409727c9bf185138ae7859ce4355834aaef3e74edf1ce4429cdc12d0a49abc9d4cdf8ae5cf34d38adf4ee5f8e5d84a3d269f0b7a94b61a8abf9e557006fc7856defc9e332f2b652f17ada11148b8e594d1f377036fef4d637659d4485d909543818814fe7a8a173bc8aab7067dfc927d9d660dc8d30364d60b3ef1d94a9e5f586cd84c168ef577d43f6e41a614382f4982426e93391380c4b03db38d0f7bf0ff66d2d93c251d3347c64 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 34f44ec2092eeaf686f2ea170591a98527cbb03a4fa9477a7aef6b41a54feeb2 +public_key = d8b6c56dc931d12a80932df49098eb4f2d64c5a9588e257835ceaea2668e69e9d7dc5e58c3cc7321d83b9703cb74864c1057660c7e8c351fcc47bb92612643313c356b7bfcdeac80ec5b657e78cb2fe9ad15cf8747e45466847d71c49d1355aa845a5c10bf7160156d49a3af1d8b975d694187bd6a5c2ee1ad5d4df309ede9a4b2e248697f9a972e8bdcd048c1b6f7581b0fdbfae4c1b9333f60e73a0edeceb3ee9887cc712d0bbb5c34d54553c3c7c972e97f53d4c46c9728f6e8955ac10e7ca6d6550335916d6a939f6ce67bd68c09d85650e89b40a46870fdbbda2eac3e43641b26d0a84bad0fec9525fd9fca2d916b3eb081e88a378d3716be476e57ce39fcf7fcbd4256ca64fe2ef25e474b06bcac9657b31de3a39f4cab5b65bcd8896655eb924243972b0bc9b755b0c69b83713da07937652c9ce4f71745572882d32fba1208327e4ff8f0778a215b8fe6f4a14a9b3a56ecc56f09c49cb3ecda853db13affe5d395a00cce672e833f6ec2cea5bd6f0bcc6ec6b479e334fa543229c6e9be566e8d0da1dc7837c7b5651b8b6a955efccddb63b92e3635a5745a54bb56198d325a59109c75d2b733c77738a23f8bf147ded99b7ed806e2e69c3ed836f0cea5d88b9ec6c6d4722a4f60a1c54553aee88f1eda9467c816938f9835c1a40ad2223494c885642e5c416d9ff23e6e4a109ae128e53d9b264d61d798c4ca9bf6abc72fe779346a3208a7754237fb591a6ae88e996ffe7961284666c85ba92bfde6fdbf9b0edfb91c5793e48fdf367f46f586e06bfdd66bf62516d43df4e9492d71dbbaf568256a158f5b8f094b796a5280df5b817ea4042aebe279c2e3f543021364a147cff684dba448b7010b4ddba6aa90265a969d5f141a9374a7da1a17e799e8e3ecd77073b453cb2b6d83ac9cb8267a596eb9e3ff3d345581a074657554781e4782d98333f1237dcafa48087aa66df4f09a9a78701bd9d45adb5d9f9ae77efacf6b5d8befd405ae61fdd3639e659bf98f91d427e1015432f0e7ac759a67e13f4f95ce876314687ac377ae48a30b48ba9986714e03d74f087c953ac6f86430bba9cef9857b84a3e5dc43797a9d92af4c55310ce4f64be86949d40ebff33ced5371d448fa748d76f98c3f638a6bf5864b9bc5fbe496d72966e40d4409f4f0bc4353a5d55d071d843d0b8e6ee5bb5d6c4dd156fae99a43df586b399ae5ff5b5ff58a4006987613f5caba694dc0f736f6d47af66673e803d9a6044339df3c818cd420e679f07fe73affea4a45e40edf928e79584f787672cee8e9f7ee1d9430b9b3f10f1ec266876a44d7d82e7ca5f6dc4b8da3ef5bfa302fc790be4f4cc36438454e8f6c19de2cf5bf61fd8c489bb87315464eadd06375c34b5f97a238a117a8770cb9795776c11f8a54ff13adb3fa77df3757939cf8d03a612324858b1ea860235e0e25f84e46d35b0cd278db841c679a47b93e3b09a9f735955d6bce328a91f2fa642749e7b747efbf166c47e9683776aec12f51eddc84032cb0a95f594f4c787589ffa345a43a68a193d5e492a39c307bd2f22c60ce5a8468d3d50cc3965e2982e32b938b3ecab1f36c1da3ca733f61be3a864e39e21a9f62c46741fddca501df33d04a79f8e3017e6197ab24b062cd98486dce2a7ffb22e5798643cf9ba5 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 6250c81126572eec2da330271db36ee591f060fc7e53eeefe2e1c476c675fa33 +public_key = 702f424d97bfe0b7cfeba385c65f5355abd372fac0c543d55ee490bed57446b637fd1cd7c173b2c61345186ad289feaa074accae383c762d8fa03a6a175c3d1958ee79ec833057a8d3cf34aeabd1377cf1bc85f77738b17dfad3eae594ea939e126cf592bcc95d3cb4f76a8d8383b318a48f758eb6b94e9e8bb47cf22f9c23c4800788cf91e465088a58086fac5e3e61701e4606c54efaacd490298ccc33f00154342dc7709a5ca5ca3a94b8afad8ea734b7ffda2d15acd47c6aeada3ef343efcbee73b05e91ca8b74bef3ef1b85d6b595a3dfed89949ee1178dab0219d429b93efb7b52a6884d401841a0e8e93953a5a6ff417d09f8e5934c10a7f2d0ee8d0ff93a3df69d9cfa4d7f68d1d3294771156e8299f4c66ae8bc798007aec8eefc3b417663479dc061c9d2749df4c0ab981c45d6d11b8f307c8f1cccf5ec764fdad76fb31e7aff53dc5a5a468f2966bbb877d2b8335ba3bfca9858650feb9a1fbea57ad07f8ff3c7249b2e45a37db9c104438e77de6321289d4b17d0134eaa2f1aea24e8ec27a9adc0c768e1b3c730ad8e33f77c90f4cbdd63d94abfb67da9a15f336b679937ab8f5989b9a450fa5f6a3d4d37e585bc039a164f57ee78907f689dfebf46d05c94c3057067dd3a2fa8f5be6a52c3376efbea3fdeba68e147e6d91db7376fadda56bf3013eb8f78fc8bbd8c4b0978be0ee4b453fec81fba306a63c327978224597c3b815565e997bb7e299ee02d8b3eef786be75e96ba84478c1c629f45a885ebeaa4ca443d8a33013e6608e8c2f71c6c7516ca5eb453d09e84bfdf888ec592dcd53fed23b5ceb98cb575c474c5ee7fd64d73d54f37c5efe1d432b225decd6bddadf6d6d847f9587bffdd6d414a558c3c29e22e47858685e79d3ff9779b40cd98fbfec3d59ffaa9365f443fc7dfcabb54a80e5f8b7ad799bd90fec5aef185cc95579aae5caa2b59f3ddf65b267dc15b2bd465cd86114975dbaac5a564cdff0fcbce8c68763dd0ef8ea9eeac55d4b8ebe9b3c66aa387587ed49565a46f3d5459fc7a47d75316b59a371cab01dc3bffaed8003d5f868b39eb6e7ce319ee3ab646db07ccc5ad9367b352d1848b26f9f01018f7c8d4c92f1cf22d8482616f33adbaba3005b58fe3f48e67cc75733fec5fa5acf5a41ac7ece0ab7e8fca811336edd4c7f97ffc9d37899ab41bd638ddfff1c73e82bdf7620bf7505ec849d387b9f7aea345b5e2ec44f3ed866b9574bdbe3ea1ddaeb7a78d6dc7b5b0c9838297c05409bf90d86b3c1b59b92c998a8abf34fc490269f89b53ec5c5368acd762df8ca04f0f35af9ebfd543fd67169aac2586deca4c8174386617ac9857e366283f3e3da971d6ff364ffac96a7b0c45779f7ce7f21e7a2f1b454e3557ce5733cf9791575ddc5a88da4db9eab8d99c4f98b142afd731f361ed3d950cddc5653c83dba87658674c57473dafac42f293bee54d34b9489ccfe5e41ef4fcd91b3c3cbacba19fcfef6ba4b0b7e6d826f522bf98546ff356943c698ae0948a50f38dd8d8b3d32553f7c467daf93fd24f5b9aeb8fa6220d856c2e400164e8a9ba3e783f5b911a582f9fa8b9fef38174d5ed8382821cdce5ca491c0692b2b542b6a67ec87bb6b0334c1833e12aa958fcc0747802853f8536c1e24a0ea6e13ce23c96726b5cc8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 35d470bcc5880872754810dfb3f2796da2fd7f397537146f6488c27804072b34 +public_key = 0115e0677c6c12c76cf7149f3513ec8df3b24324df9716a57106fb5365a0840e69b71fabf0075ab50e32d61d70aec5566fe953382ac3a47d5b8576d64a05fc926b765ccd39d6f86ab9bf7cb93b809e77dda4457bfb8b6be9aa54dabfbc94fbdc3e15ba6defb08beff9a469312a5caa04c8a4fca7c76c09d6c6fc4d331f7d84a8e6099eda485fb9f26baa12665be03d882d2a38200798de4a5f1d3bbb581d85ab19ec03e896f25b8759e43795dc83c2069fcb2cad06be66def78d18c9f0e0e59853c66bcc1e79606d4963ac3af33b43f88f52e06b39d11449013bdb35bc65c266fa66f759740f377fbe3119fb4285d5613e6e8c2227a8a187b133bd8bf6be54745451fb6f7e0587c24118573f46f8e3da59e96c6a67df6c298dc95fbeabda7fd2b3673bd64a74d2cee396aa406d3781843f5c9d03b82a4e77d3d6439fa79a2a6457d908eca8134bc88ec5764e3e4018fc686ac2f59c3fb45a580d3a50aedf74add391a09cb6c559623c997da498c1d10fb0f9c5f54c36f66757849e7598ca4e333d68da12aec1986e7b23d98b7db6db6bfd521e287f8b0cb2163ff36395a60af9ca4dd7e20925a4bf497e2ed65bcce78a33555ea469e97bd5a499bc7c2b7888739e6ab3b961f35d94cc96659db67bfeab52260456bb775f56e492564456c6df5f3d0c9bbf8ee8615aa37c2e547265e12e69deed5f928183f9255dabf2e834f72d7752bd68200875d83d3e3b07e51f28aec8653a463a774dbc337728493863d4b42c99d3e531b0376beb153a56734888cecbe59b55bc3cbb32da63d908345c3ddcfdd6303f3999bc873db53342aae6ccc789b2a4d7fc7d08a58feb9c939a3214aa3b2cdf7ab108aa8978fe097f9cbaf93a696e3a8f56b7765cf3cf085f6aa7dd8abac213f7314128aa64eaf13d5a53d2475f710fa6c354c1181bacaed645fae9c750aadb10c831807e4d37f3791c03ce39c79aa0548f88a69dd6f87dd49a8e643d7332fddc5c5b5fd7d9804f3c57029cfd3fe65d87ba7c086f4fa35754421c4eeb6e8cda1c5435bd9acd0754e04439240988ebfb5f6d6a43c0683a287b5686364fb9fc6a6265e9160464430d4cab4f428dac71ef5879becbd9c5dc919076620ba7d1a2d8af248672e2bcd107d6f15a6eecde55e20ab84993fbbe661ffdcaa6369518f12d7a91518355528eb1ba7eddd147516f2496ebcfdf7287f4d717835705df2379ec2a5ddbf56ec389a3fe2e663fb03eac53273058ba675dcdc3367c4872383f683a834b4a522caff7708dd22153aaf57fff24f439a0d382fb05d69744c4880e3501e4efe9a999675d6f2f5651b3bbdfd0a73c02634dae9695e95dc67b154455aa749a3ff2919db622ef59d2fe93b5245797adf62f94c114d9c691ee70e526a9a05e49a294d12aeffc740cb5b2b5dae88d9388147b943a4263e5dce73affc2fb6efc85c0666df6430de6d6b83aaf0880b715983bbce2fed75b1c973046c79f72436a420b790543349c9e7fc4c3b18dc8da1ad346399e80fbb9bba1a6a8a1fda62e7cf4d68da1668dc682553134738d0dcece767ce3bf74c82ef5c548f79de1aadf2b9f36100a7adc2bff1e2bed0066b9352ccc40663d54bdaf0df9ccd6353381e5030ac08c3920847f233164df98ae8ab017efb305fcc83fbd22ea59ee59bb +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 8d667921c5db401a86fe1c35dfcf164a6bb2ab7400fd6a0b67eafd4a0ed11940 +public_key = 801c4c939e71c164522aa3ac246eb8c80b8cd3e644f8de69fabfd380bc575968901ed7783b6969c57461dd879d488ebda106a913d6f9bf6ef788d4c1f92a71f908eaac8fd7d1a6549aed61c6ed44746db4e715d3bd58511e4c3333556b75f6a8945b8662dd572c764c82ca70ec97dcceedcc591db817deda4659ee091c75f9bf4eb975867e179d38345bdedc627b7f5b4d83fb7b453d9b15710fe7afbc55beb26c77e9e8a58bfa764fa430f2ade928fa4ea1eabe2ef8f7d54e917093e0b5f7d8dea4c5242a8949f658b548a2ad1badb9a6322c56697c5e3bc2cf9872b56fe1f3fd937eb44fadb43bb896ca9a7358f45e1f28f1fcb361c6ea91abca91ce95a75588402e2fe7d1e37a80b3c880aa83c31c5683783e3bc77bc33eafc027fbeb9957fe8ff8d8589bc27ea2fe2475750dcc7e9cab13e9da2ddefb7727f5e10fe90adcf21fe5879b3e7fb94ae0692d44d7fffac68cd723ded62ef7d959333c08aaa16bd9cc1c6f440504dc795eebaf7bcb4af46b80bbd21d7c8a02ec8d0417b759dbfdce94409be96f5b5abd1f2d7a9c9d6c72ce8c7644e4b2d48d78ce9d8f6e7dc4f4ec3328ae3ace8aa9aca985964597686c919584114c4b2429308f1f3fbe9a8fb873f70558e7bdad7df8c7adb5efa94184f395cb6ea24c6106eb95cc0868f8a6452efc5aed297d9349e9b39a8daa3e37925b87ada9a5cbfc5a542cf395bbca59f95ab2c4a5352831f1de43dad6db419cf05149d3973f6d4aef7b7c6e59c43b5de3f4dd05956dab69d8904e7302588e39cea2136ec62abc8891e44ec4c739552eac0aeeb448ccf349dc88c67ec74e57d474935ec69dd1be48b855ae3d9855b8c97e31985c91484a695ce9931267c1d1ddb9ceb4bc7c5ae1677cf67958566d59431a73dd4ecaa8beb98bb0eff172b3de14c9acdcaf6923fdaae067c9a0e9b65873d873139b9555b63a73bf8c65319da4f3d4b9f7abe86a95b383a8cdc8c64e70dcd7da536befd814cb6c87900ea94eed7b51cba571dc7b5e647dbf4928bbb28bef66d770e43cbbf3fcdc6165f1e2b8adddc4f972befdb4bfd8f6b69028abd5991376057e367c4e54114ce4607cd46a9591aa744683d4d24b857293fbde02ec7c7537dc581f48c0aacfa7e47a35f7f157877847ebeefd73c0922cb211c4538e0e8c0548fe9c97c3d98cb375f78d066e964675e9baf3312559315796ce3504731f9ee432a83294d75d8365391fb348f0136a7fe9d921fc3844f57d286845d6d663e855b50d884f512af021bd9048298dc4eafbe4a8398d36dca4735d85ffb66b34d5d58d32d03e74fb36b325f7f3af34ed280863b5efd99fc4f9c14e4433786d33f880d8ae5d40fde9e75861c7836490dafa5b0771ec09d5f794c746c4f44da9f26899c8488e4967454d7a4aa0fa743e2d2838bc9461446b61dacdd6b434d098f37021c763123ea84bd75d33374b9067aff5f9d0c5dd490995875606a7baf87b8f4960dc84a7eba96f4055ab6043c9fac6efbed883705893aa89899ab975284867f73d35a49f902a779c8df9cc64aeb944943691b770a9646cc83ea93f6cb3dc4be83c7e42988dd32d08a7792e7f9c7fbb16ca81f07c66d436396038372aeb8edc13e083d95399084751bb9f3d32490393b510796c16c630cd2d7e0666cab62b5d904b +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ec750b3939385a3f8df868119dc76f77ca845567ef068de6ada5478a56bc78b6 +public_key = dbfdb0029f41e30d929c76dcf787de121d43c8dc4af20e4f7ceba48a4458164d8b2823666c6b406856e6d823c86787a413cf6e521ac8c16868d7eb56479d90289fd444b8bff59ab46086631d6ad761a75a79d76468b74fd9dfdcb978492affa78bde882a09461a3f5ce0dd5de5b3dd622551c94dac7abdb5b7b5e3f80fcf58333f8b0382ce055a4c138c80764b8f98fcf153f4026fe2034581b2876efbc3ae9687cdd8ffacb964cc18ba90005730d55673be5e9be3173d3e33e166c7ac0193a4fd36d85bcc6607d4a6f73367efb5ac1a2ad63fbcd207766da429d1b8b6eec7e45bcdb73584b5891f0ee3251a84eacd7ae8ce6f5246fcf01daa3cd69927db4175ba47e225a220ecf653a58dc9854210087ecc2486ab1340909fbf902635d2ac331fcec9550fbb55b73b5dfd63d3885fd1874d5b13e00a993eadbeee978393ff33a31b6a98f72479ad9b88d4de395c37f6ed285b793c489e09a8a7bc744b46eec884f7c3a9f90d19fa1d58a5007ab2219d44895941088a81b1b44175ba3e7b038ed18beb0cd5bbdd1bbea3f58812b5eae69fe6b2ce8908fe31a80897353a328435b927d377a45a6be34edcb32d76cd4f8371d4b772ebceae6ec765c875312cc91e73b20bf8e1706caa4c5fb089faee43d7b61cf4b706ceb7b3739fb92c53268a685c03723b4bc316f679f4d8b87375a4188382e81eb19125d2e60fa3f523bd563eb30298815717ce232ef83cd675f01d6ac5d4c37a78d9d7e3bf3e3c40c6d5d92c44e98659849713c090ebf7c78689c6d57ddd9dc04cfeaf5cd56b12dde3ef8ef6958aba8bb7f84ed58829fe384786379fbdbb2b8c50a504a3b0fb83eb5964ed7cf0b908731ca5c13da8dd9a2cdaf7c7527db5d262c65f7d2e32355aacecceae5fb7d59e83e0d6d95da97871c51ae7c1dec68dcb6bd7a9a697b9bd9cfe5a643748c83bc8b254d58f0c93e8dea9921eac6f046a5dde713d977650935ca69f5d6f1dc84c7ac6935f7e27c8465ea46fce97c64dc66eb22ed188c7a3afbc94c24f3a845b3530e355418d5c881b999a7bf8ef185273e584b9acaf26746829fc6b1c88ac03578f98f7eb6705e11efff33c94ed303d3c52b5d0b4debbca883fe49b5a234bf70bdca755658448666dff384efc9cb26a664106c49aa46c4237d9ae0ef37df159a0c9e880d72475671e3c12bc4451f4c6b4946cf76c7b57f737032741a3047935bd9e697acb231db05b27d47ea8a460e4cd9f7d68b53dfa8a1f812a14f86218f02eed4d0d9eb9d62992de76497edd986917592ea9d2f33c499a9e6576eca4bc8495fd7f33ea94671a3588adcae3568d4f1c475ebd788d683967aaf9b07a3cc9ec5cfc91b6ee0456c18deaea248e32d2eabff91dfc0ea6ad88d3ae3f4769e298aaf954550fa3cf86944184eafcc83d3f1be393b668dcdc2ade55bc3be84dd166d570fc4b8644156cfd6c8976cf9059c7a550d4b63d34fb3f1eb887b3ebf764a911ac62801a6845d6589b0acc55e4c80cb37a3784ab8c048abf3ef04b25f069fba2d6b75cad8ab3f133678889a99d346e3b49c0c51e47deaac27bfb7c8aa3810e3b74bc1bf0600f753a48457bd4b7b624a3fcae443217a88c65c5f64ad793a5e666453692c56b790391a7c9297e5224771c7a441d5363741dce698c33558c584f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 74f1d52af09b12c36eb062ea7528550cb4c18a3ce8e4f4ea9fac43ae383bc925 +public_key = 670855bcfa88903da50045f08f5a75de6a8e3799cc4afaa7affdd7788547e7b79c7507bed6a8522cee8744ded1463c9d0c28328a68b0d3ec380d04a20b3eab8ce6465e5aab4e2332f30870c60f4719be412c13b70a5ff8e6f3a1a32440edba8f5ca66d968961a4ff8705b9778713cd96974e42b5dee9eb61eba399cbcbccfc8786f7963c15e6eef9de94ccf37db3ee6a31cb57ba79c9aa4a5da2593eb57cf9498ab66f47dd7b76971f797f9cd38ac336f226a64f92ed3a1119b8efbddc103358573aef4ab68f8eb4a5f889540913b2400ee8693dd694597d1a2e8a2d3dc3c268f9467ac2d1b67f85d37523cffe7e44b951de52a9ed87a3a35e3fbec420be5c80cf64c49f72f02ada2b9e324a1ccbed6f7fa1ac81edc3dce0f84a727b36a409d25a25ac67e3c76629c2348cf478e6eb42bc413f79f0f7b677464fbf25c9fa771574522dac1d5ff6e3c6f3860b4a4256682a3e7e09d5868719a1e9babffba9517ac95a7d1fd882939cca64d05f94791f47d93eab5f2d15c1e8ad9b9ec7b3739ae97977c3ca0baf9f093272edd38794ef2ab98c9dbe6f1937fd5e4b8d15e69da985e7cf833475336d895db5c3c87e4fffc526b95e7516ddc53cd292eb69e4fd4294c854bfbadf0fd5432dbcdfbd03414b5a4a3b7c7cf379d6fee8be6479c193b7336f4c870aca768d3ac2d94f34b43da1f26db1062e4d469c8c1529bf31b3aac01a3ee2ef31f389a27d4340b35a463bedd2a7f8327dd5abed8b4256e8712abebe8ac475c32b97d11397db247a019533adbea61c15b9aa4bc91d45af064a608b29f6c93acb18b7c75d9798569a89a78463b51b5bbf038dae3c5cd133690af8dc1ad4541267bc10c83344bef439d6844ba3ea1cc79a0c5d90214ca72106ef6346d0e8f76db62f74c6c736e4c8b63099d14b5de20165f2a9385f8645d7b2fecc7d8e4cb48bd03967f4d70ead7cbf7e4b0c43debbd664cc858d4a74576642eab3c76d3eea58274e1406e6fff7d084d7b7c0189d4d97a927a8b008b85888c57a0f6a307234344a5960836cbf6f4473ad988429a4ae3ba697bf07429d17c059a65d9e35a845735ba0a58e98a3d7377cee61f330243fea671eca0465be530d363d49c53cd44b0043d7e5dcdc4f8be5e1545c72a7c3410ba1bebc8f7314b3badf95c676bfe6aba9848554fdec919208d9329c60a793754be6f56ddd30db1fbce1dd765f5e548abbd985ac86d1537ba49635641b3a27cd5def36de94593b2e0558567c5da0abfcb22f655bc4cd3e985eeda6c3f54ff765e6a808ca387cc369dd1ec9dfab64d4b3d584e5329d9d5dc58d801dd57d9ac8ab4087967177cb3163cf3e934a951a3e248a54ccaffb6ca6ce9b4cb8bd788023e6425e75aeddce35cd3c59920c5ed0356fc0fb5a1fddd35b7c82727f6dc8d63dbab3c78326a26c6bdf9fa5fcde7373aeca36cf6a438fb39c38a5612427e593ea3bb076320bc8b5e85fd4777b7120ba97c3f8d35616d5d08dc39324a0e3045d0f687e902e9a2cf7daad2d9b86d869febc5b513983428f7204ac584c6b338157e937e68efbe5866a8569848f51171647b51f7514db9b8458fd5b9a89119761c7f6508a099961376d6ae3706f6ca1c8cd31f430190d6231425b14c6544cabe8701f8e475892fe31b587aa42d334fd189bdf +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 4b3a70d85f640d1a2a852fb6fe96704af56a7415a8ee4282e9207bc3a2dc116a +public_key = 7ecf6db4f73dd1859b06a852e89a4846ad943e65e3e9ad56dddcf623034a4fff51e617f68997b7e90471d6ddcfba5639da844f0c9a7227c8a22a83b9e805942b77d19ebc45503cf2d369abbf5fa9aa6cbef78ab914337375d9c075854bc9a3484a0995a249e21e9e8aa65bfad76c687389d21126f509daf347366d8163803c3433d42d68d0f8b64cf38c247da3556d83ed45716dbca7ceea50207736fb5ec062a6a15ab8c124ab6b00334e048d8c858ab4b20a368df787cdf9f169aa4101afadbb4699510753b80a63b59fc51f43a81cfde2fa13405ccbb0dd0ee76ef55f4507812454f0a0ac9301d485ab66eb9ab67f5805afff924c1f43a5b26f8f60baca631931bfc6c9bb04d0fb47f7d7ab6bcd6cadffe84ca57851ef3def8153ae6d64c0d2aaa432baaa0539a17e83ecf446dee38cde39edcd77ca85e817a827173bdacdad253a44fb244f47f956146b42821d9298bd5a942d953d1ff024373d618dea6855dccb3f883848c4cff3c64f548cf8aefff62ae1f16d30c5fbf9fbf8bdd3be6541fa85b8683493f8f39f2fc01383985aca367d6cba52c780900efc79976b794c70471ba5cc89d8e4168d5d9e6605337f26199c355e9236a855ef063423d777773ebddf164b2385d98a25c9fbe9a7f9344ac12aa0b66ae3809465611f3f83ed33fe33638788c82e7abf7abfc4df9c6da2f4301e7d465a4cd5e3a485a26a3b8d98674e9e594f24761f16545817e9260c4b40abffcd4e8a2418fa1124dd043a6deb0f8dea1a51ea2f4fddaab5f3aa64564b3c336586dd85874438d0ead481cadf7ef099d8b938945c8fd4557c38afef753709b68088684637bd3afeb78c79f9c84873822caa31bf584b0fc93b0853815f4405caa5d9147e6c837bf0ccb1afae9db39471d1a573fd89302847939178d283affb11ab4d78c4d7f7d68eb89b615d3f59403fd7a5cde7fd1cb922778ca806b3067dd5478ddd9ecc70cdff92ca7ca0ce6b6fc2a79731f6a9e8b83c959f381ad561f667e92bb3867d3cc663bc5ffb48c9984d3b4814c9166e6d03ca71d0e8a93ffdacab8a55a61a6a59eff846ef7d6c453b7949edbf0f797d49de262a6be41cb56425f768a5b1f2b730697fbc9dd63328fffe528d82ad337f0eb8494faf3e7c83df48e94d21ca9ca3f660d4f960a6285f1e586d052fda083b814ed4f29717b23b73c0c14aa6bd55f9470ebcaa89429814ad6e8a6190289758354043eb6d8194fa6f43f524da9e63dc7570865696cd43c9eb9c5925bf4c5be5bfee4aa59ad9c4d37c822ba892ff626b4e4d02bedf9fbcbde66d9bf4d982e23392a4dce6c57ef60bd5e8717584bfb96e6a6db6d4b673f61663be2bfbabe74d46494ca9576f330dae3ca8a58df3d8d8e99b65384ccd3daa166989882fb1a76c87ddcf76474a74c2985e756e94845cde9808e2ded5f0bb54a1b467fb0c39ad059fdf8ea878baa9caf14de8d5ae96c5363f55373ef5a98890d7e9b8bde9d0fbd23f3e924118e694e74bafda502539d20a8b8f169db73d1bc36ccbc8d4bb76c44361309977280f31a51a7999e65b924be200366ef48eb8fcf8c4c5d3add0c465f7db79f7563dcc6794041fca49a8e581a798ae477916fd78f22df3c50efef1acf4f751801bfeaa5ef93fe27771a40a3d377f0f1b1655f6ed13320e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 26e38ac804fb5b4d59ddf747715e7e6041d875f99c7b638024b4af82d622da60 +public_key = 790847ed9a831c0cc2acbaa793d4e914bdfdb8bcec6cfd56573bb75e2990a6fcb732c3461cdbe74dab8ea4c557823e7e400ab4ef78e38ff84c270cdcc4c68e30eb664cc8bb32c6e7917ce55d28a195fc39a2ad419af64a59c99664f744a385e13228ba383d752ce5a0681ee12d83f8649a3755b45ad6bc4bc0859fec0e4e186bfe196d3ea0437b3153f457b36d13a5ae97bd3905cbffd0d5377fbd4f34a68c57448e7909cc660a31d9f9540bfe7324e4b31cfd4f465665b5538f745e687f238d6d4f3c9237b5ca35618f19fcf7da879d965b68becdb2467c9ef3862f36dc057f7594aa628604d45f1bdeeeb4b1423d6cf7d9c4a6bb942b8aee30b56ae958b16c4ce2386d3ae6f879dc9ca96a2439e27cd834369e8b14ec6337f54608ad3727cdf23b842b0d3b92deaee70e93ae1497d5b75e2a47d148fd52a09bef86179bae5f605df44f6c99c75df4780183e8c6cad17a1b4a840f888f495acf796e0745adb039fea6b5526fe43f97ffdd98fb756b2553a9493401d4a25b9bbac13b62968af28bb6446c2d670646e9af66383e6bc2b3d8cbb9e6969196bb45d665bce49284c5b50f934774e5d0ca0e34535930ae2e69488c4ba8bcd854f36e0863e8a293bd65ea8e033c754ea44191d9ac8033c032ed66b31fec130ae2a26ff2cab4829a5c47df84e87626f0aae9f135169e100d8760ba30a289cd42fe325a4c90334978c5176cdc5496962443b118a641e6e30baca422d89fac5c968adb461ab43729b6c9b1349e721e6c0226b560ddd323d6a74c13f82f24997959f07e7fce58fa4d87a7413c3bbaead9efb223ec419ce1bb6de701549efb25cdf67df39223c90e2aff99897fad594930848a1caf494fa87bc03c57c7bc33463b77f08db9797f4153a95678adf8b7a565c50e44047747e124c7dc9ded309333d325d493c3b3ab68c34c939243454d90c3c4089e74a827ec78adb0c9e54277b5bbc5033eb1eba3cac8603959fb4e75a23c8c51c98e77edd639a55b56fc557b581bd3935765cf586c95178c3313e9c70a8c15c95fc19af3db1e798cf6c54f68bfb766a61a9c9c461b766b5ad0608575c53d9a622bf8d38ef2cbbcc76d3da30286483ba85a695f4c0f2e591b7347a0bcd932fef1eb3bb8d0fb7d9ec577a69fe4886e9e1974d0c2169a42b7ec7665505bf333ad8df67bc5d380b947ffd54745f4ede5b3da27b78a62f43786ac88b31efde563cde20d358065485a73505a8fa265b5d5ed85cadd1ff28f09db04dd88da84e0c6179558e5fca36ba1d87353995e89a709a1c0a7a10cd8513c4aa26d27cf813df7aa8c5bb9ace2a51b7f17fed8396dd132dcf4d79c805d0eeb5bac88c4cbd377ebcc4fe7c6ffc9f7ebf7f34016bcc1765ae9f7fe62e5ef9ce9e01705d9af2d7d181ab0c4dcc8d1c4742494876e1e8f40c84e2706914c65a162de84a5765aec67c9dcfa4bf44e8e114c6f3cc34e95ae49fc84b041853afacfe3759cc5a28eabd574e2866e3875367843fea254acd9ebabedbd95e365d58e6335c91ee7ade7cf3136def00c0ceee3f5cf70de396725df01053b943c3389bc4670da9857ccc32528920f88ecbf16a9defff99db9912e87321d0faac45c4820cafe808666ee521dc4bed006527df29a124412a4a19aa26c09b490188ccba53900a2545022 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a319d2b8f114f1acd866478bcdeba6fd164dc4e37b0adfa8d8034afb3e197376 +public_key = 39dabcbbae31e99fa48fbb80f78961f9c440322b49eebd3f0e554328eac7c0b3ceef957a8247da8f8e69cb24a81595cc89f95d70179834da375d55a1d16a7a8fac8e7da64508c97f4f7a53066ac34e4d7b42a6be091696351b3fb20efd05e5429dbda14208336f2edae4b89fc9c9eede0d37392948e7d3beb78b880d3c6d933a73c09d9594ad654fae8a5cfcd51dde7c25abb7020487579a98f62b49c2969e3df7407f9bbf0c1ef37a0994cc83e2b0a9fcba7566d0cf818dc5e1d38bef0688eb3dab99dc5f68f537e23a0366bf58efaaeca57e16b37e27758c8b83135d49f3f38681ba5438a795021652b508ed02876c104d4b45fd6976e368aa2cb92318ee3edd778166fae485dbc5f3809226ae702ddfb8f67faa433b6608e63d7aeb846c589b57eea6479bdb05c741dabf217a6178ffae8224bd05b46de6fea42bffda1e74e238f541fd38fdff48f1414890600a97091e795c993c8ba5418a8732b6c8b8abf738fc5ca7d32aa3f87884021968a93cc271a490df6ec5f8143be65485c9f34f0d433e492bbc5f2e5cfa037428b5ed5a2e404d89aa0bb6e8205f94d706786b3d508c5990ad24c7bb6a70d70e7207d3c0320da222396c4485f579859e083e5cf9c39754a7d8901748c6958cbfe4ee9d2880e9773ff048d8480bb38c36bdefaa5f81f85700fac88ca8582aed3d9bb845228ada79abe56d0952d0c54bd6cde0c565a381b55886df6cd9e9b82e2ea31354c17d2bcd43d93946bb58ed2a57c145d9e9537fe879714c64cdbc94fe943f6aac0944cb3898346dd4d0fc9c81546087ff91372f7efbc798032aaf0ccadf3c6aac788886e03c87245964c9ace8e63cd08d646622eef7856c755947df60af63024febdc05d3d2eef3061dfb2af4fe622d9892d7b3afaa6cbfa9a38bcd97cb26c4745a4eae395a1c1dbf818f9d1c2e6b4da59fcb5afa57e4d70bcfab59b8fb6af3b0682b53fa9f8f7759ce21eea0914f948ba966cee8bd177bfec698dc063b3ed7eee610bf6714b3ae7b44a4ce6c759555c6e478c0a71a90b62a8cf9ff82a4f7c21d3ec5becac2595a766a977c897dd9ea4e4123e5723f2dee667647bbaaf489b3acd17a81ffb4512516893ceba8838949e9a8d43713bb41073013d487ccbed7f31c84481adce4378732d9446a7d716375f7907d719da66dde8f83d72e90530566915ff1b383441124b6f3d47103d64983898f8d83a4fef6489b1cd8a11b82d30cc4d9eb4fd0d99085c875dd58d1e4adf406fdb292b8487b7f867e77f00d9f31ffdb43e2048cabbfd3c7883218f9a1af7a365a19b0d2fa595a087b2a0af016686dbd24a98ba3ea5999483d467d2d264b21ba527cb4e9b75f3fc046bf7fa96bf1af77b05d94f346fdc863b8bd2e92e5d78173d77139d6ad08ed91e7ea507f2a7a9bf982aad8e2f736c788cf7b05ef5d1cb74d5e0ec3fe6aa2e72489222f5632b5d33fc63424a5e67415d28e5edbc42c8bdb498d9b5f60693ba327fff30d6d40f43f454f4bf02038dffe6bb0b81fef4ea6bb4c06980c6fa9b6c89a935ac207be3e091c3c6af6d9417ab8c66b7bce94986f9f596ee64b08a53844c7d6f84731755ca02c7c49906cbbdce97c650e9a53ff78c3ff86eacd5a261f5b502251ec136ec0a3c697fc30e8b59807dff5dced3d6bef9c96bf +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ff646071b2509e6b75790917e08e4f0b0d9f0116ec6291c0b59eaa4b583ad830 +public_key = 185bb36d9c3ba85a46a506d6706979ebd66da04ce5f1b4c25b886fadbddb17ed4f87b773d0b8724bb4947d6e5344f9466f78cae9dd49876c9f7153e54abc47111bddeac571bbe83577f577046830032ad8b465b86e1c341d8f660818cd308e73c5c558975868f038e470f39e737b6cf974d08e14d383bf907a5f54380b4850ebf7dff98838d9921eaa81471ff937e36af7bd30b99e9bfea844d9e6d2ccb3547d6cd7f71fc12c4ce79ffc30ff5fc9273b5c0edf7934b5a41737817ced739425736cbdcdd267beadddbd77085cd279494715e099c38490edaa2bcaa18f7ae8afc6f6fefeb977f376ea74a9cbd6389336d0efd84fc053650474c802bea8eda4ecc54449239e5173fce971698172f8a6183d358c85ed2d776d93c866c488d2e2bce9c8cd92aceb53997cf0375b47413a66c06541b4343c548b4dc544eea93bf266d9c0f166571906fb7275d414a4dbf4bfda260a5953d578d5aa48a2b670aff7512bf6937e59d52c3ab8ba17d16d06a9d653d81de5f009b358ac13c3136cc65c1ef7e675bb55b8598a4dc054c8b797d37313aeae492fd934a559bb4ed42e26dddd13c744d7ac5de6e4d198a33253b82a0e6fae7ca51d397330caeaac557a8fb564782f43259f4276aa52b81ddf77db547b6d4f6e7e89ef93d7129346511fb6133a6e1209af3009a867a46bf2868f8ab8a932784b76084998e37eaa4496c76ea42ea8d2f6eeca947c75bc4a57266f733409757865d31ca6f7153cd2cd25a9ba7f5adaf9d9176bf7c53c6233e4480cd3a06954afed889ae98ad91df86842483edfcb5df9a365929b6da999e7ca8bd2559db416a7abfdb4d8f084f9244a9203af3d23ea8ae96bc8ddd747d1eb9b79a3cf371dbc4eb56f9de38c3fb77db284d504e85107f468973df684db8104bec488e9b732fda2bcd4db574ff6d05946c9fcc1a5ef87628bc4995e89e05a51757d9f00c43eda4897429773140b30bdcd90aeaf5c91b8858f17d68bc6c15413df049cea710fab59ee57ee6bde6828773734f6e193cbbdd3c63dfcda725c90d2a4e1987af49cc3decda8ea935e9ecf4d74f18ab92977f20bcec9645d3a295c570e7d84c39e7ec9b6a4663a931d6a505e1e757bbf935fb7d8e9b6ad60dee87f47e7c6a4a818d57cf5395626c8a3928de2fcae3316adf3921e6ff60e5051dc8d07fcd716356d21ae84458b4089a37fa9b7e3aa35c8ad1635a7fb49e6bb44cdf4628a3b84b9869dd87df62cc487f44a361bace106553338cc5dd71c45c37a3bdea8d36f55f31dfafa841ded832d3b27bad54ddebfce2e5f477a7e43e3ed946971b0e3f23868922699b0d91db6fbcc834104bc0cafcc7b5dbc1996e6469cf12c9b9dab2550282a9b88f8a1b7edd6bb9de544c6f564ecd5cad68d7f7be4332fa5bb28bc9cb57788e4e7fdb73bd0778fe15f9a3529db0a1f623d08eb7387cef8efd1ab0d7a199735bc3aaefa7d6c6d0aec0256b8734fd459a5e111c9dcb04fd2ceb8c10a58dadefd8dae98eeedddcec09afadd6ec20e9ce5b618f4653492e603bc3d2d3fc35ca536fb7c64084112c878741b838716f0eeaf997f38aff963f17bec592eea7947e8be23fb62735ec13fdc9bb0c7d54a1e51b8197cb07ec66dd1d49dab7f9d23aa8ffa435f2cc7a7a3a1cddab6e37ab7be45fbbc8a +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0584270ec26f3b9818e4af074d17b2d51037cc8dfdcbe3b140fa4fed5deebc54 +public_key = e80434a94334b45589b1866bcc69bad27ba323a563f47bc34073496a468def7de3330bc9a219452caa35c1b5f2c45c498fd4ac5564627d564d398ec731a9856ff761972faba609f9beb9b9374be105efcd2f6f46bdd88269ceb512867ae4ccca2124df0c046b5e68e7fd64a2f93383c3a5add206f885efc8e81ce50a1c8e1a8a47232787ae5f9334ad7e0d6ef332799d9896a6071bb4e4fab64754df82cc85630c629c3cf068037948b575a1693f82dfa045a9c5a6cf306e83b911faee86db5764fe3ca7cdfca99d5b50faadf554dbec7b49913b371f0c5786fc585dfaf813fa9ced349d9fb3fcb513db5e0cf8462fca4c6985b9dbbb245465a8849c4c7868849fb0ab5bca99bd4c7bf988ea94f92c95d5fc7acf90199eab7c31c23f52680c71c9c333e92adadccebd01edf3c8d7a7c9068c3fa9b3cec75234663a2b73572ecc71e53a8eb5889860a336f77bbcc1c854d0c3c61c75f16373bf2603a0ef7faf8f747bfbd7401bcb9d599b6cdc0fc2111edd0425917c7f891c33c97e9b39a687d10e2fa7850d3e1c9e7dfb3f73246acbb45a79c7848144fdb58388e626cad2a959f2490c7b3695a787d9ae22e5470e3fcb6889dd75c8ec56dd84a43c4399aa587e0782962df20469ab5e6381517bc9059353b78e60ebdbdedf969e8d3e7442d4d58423c3356b34035b9761744fefc761464dd908da3c13f95eb3065f2cbb911437cd2408e6198cddd3f9c87e3b54432c50de1c754a2f8c5f9c32ee9ce9fc4cbb055e4025645e10de468d0af84e59a50e6fc560fbd51eac35bede48ef75b0b05357619490ccfd8b0b13767557c5fdc3e0da985dfdb9c3569df17067a8c68491ba64307b6e8d272363ea346629ea6885acc17733a801166fd404cca58b591b68b2c73a9e891ae3bb173585dfb6db45e133e75d258995ce46a8f798a44ddb8526633949e5442435c7b4cd83875760c016e4665c4a2ac9fc378863a3755ddf78e905fcf044c331c4b976f6ea5335bac73acfbe9dfe41a9f3ab3f669c5fc49d74f79ba066a7d04bdc2046f47c86305bd45195bdde34bee79ccb8d05b374deb491bf6ced6adc45078d3a8c65b18dd6621a68f0ca93c339dac2bccd98c22b4e1fca3cabe58ceab66da6a35192af9ad82c74acfec8243ddbb1a7d15e074d150ff5fd03db51bccc016ae52b8443892b7450734b34e7735633ec6b9de6aac430db0a8954c7a416b43d4a2fdfdd5de7cc6ec3bff7dfbf2477351fb6a91375f48e658d57677fe571c3bbc800cc80ac597a8f2c5cd2fe9567bbef4c797a68f6e33507aa91deae0a6e48d313b48096ab96298c33c3828d645a28098c777cc10ded68c035a71f8afa373d6fbbd3e1d4de4215cd42871388dc899ca31e6babceaa5dbf61af35a0e255b228498295f6b4ae27edff2eb5f66671af63f253dc724a893b9348f9a1cf75c214d78999e1473ad2eb484d4ad5b8d274c00bd9377f3c497e6845161868434c968bd847ef9dc2ec06d1867cc791cdd5061c8d5c49339dd3ae24afde65eafa19d649abdeb72265fe0705edca7b87efb3e5b629eb31279509d78b0e974860ba9f645f83422d38efe3ccb3adc643c68756149a03c5df699eb9fdbad99ee5dd7b1efc0175b9518c15649396d94ca1266979893e82811af8c142323fc3d38b8b5e554f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 51e05c7b4ca3079781e8293f4eccebeeb2f8c8b4c59468eddb62a21bcb4ab8a3 +public_key = 70d99d171745edca3a65045bf7ed625aa49560eef5d43fad33f9a3cfbf313ae5dc986e4d038547f23ae35a33c06d6e545baaf6b46c41d193db84edf57fcba82b365101a9f24855bd1a837a36aafc823391b1f84e54959a0693851378ed97f34eeaa7bc42fbe3575bf9fb785c457786ac69ca22f644a1d53278d4c2e003f6a22d9a0cb4dfc32b92e906650b484e7e9fcee9aad7905d90d2fb60f84b47dd54f24228443d46f19a18ef9956cd7983ab223bcc095adc664e4cc2aba8564977b157d88e04ebba589653e535847450c86f517dfa462037c2c1457ef4de909d0b79d66ac6eda8d3ca88a7295c4a3ae53cc78cf35cd8922b36ba8b837f375755326a960beab71baeb33a8b64d6076f0889424b1875ed73e6ee5fddb8fdfd732bfb3065c7e91ee5fc24d6c125b652cfb4cfdf8ae9c67cc505bae5b747e68fff4729602cdeaaf25ba334cf9ca11ece36f554952d4b107d895938c9c465804484d521097d696c8efc045709369f89cecd46bb763b957db8f48abf2ad7f53e845c94beb7a3a68e4faf6c2c309508fadf5eb37c134f977461aa38e8073682de07eb6539e905fdc214c7f7fcc7b523cfa33f8afe07a65926fa566127f103b390feef814c3ef73c3e8d02aae12fd389d13f4507df80be8c49bc9f3412f4c430ca82f58ca8b82ff907b986ffaefc324be759ade007067153db7b16168f7926e0df534aed8d50a68f96f58b754afd665e13918c784da3eddda79559ef0d656615d483bfa13baa4884aa83351753cd7a48e6385292a990ca559c8d73da7dd4947f4f8199bd6242179c369741fc067ded5ee765c58364e3fba65535063da4aad934a2de4b76f55a19ab7f2dd6d7211f4a2b69ca713d30b34fddcbd459cadb66620adbebee70f98d797e2bb0a3ff4e8ede442549ba462de5374dba7f093aca04f067f55e4279f60defaa2836ed4dd4acbc2a4a134751261991e7b36183387893c5900e8a611894c76c36f17a49df86f5d68a947457db75e82e4b8b05a3c97f51cd3ed1d7f6e15d9d8d282eaab224b039ceb9c348a3c05cd81496928db7f6c1de40d363a427b93428fe6841c97447698cd0f36052a7f5ec96e135a4d45e143659dcea066783304daa7e059d0b1389048a75429886095b3ec5a646eb1fa09424338c6ab72aaf7e595ac7794e69c6e7c7bd2d8b07a44cee5940f85896a7285846afa262ead92d2bd2969fe975754898bab49263de44b4e0f35563a1e457766e3192dc45e05f6cc19b6eee8e86e607d7e233542a4450fa6c89bf993af5699dc0e469664e7433d5b1882340a1294d4c2f9d4216ebade4683f8557dbbd603fbbebcd956b29ba8a2a06d193654f09f7df07eb3398f7bed1354a7a8f416ad4d860538c378ffce1b37322c4a889cf35918d70459db613c9a5f83e8566a37139563c40d58c055b827145bd659c8fc6b7908a17efcefdb17e4351cf3bcd9e8cb9361985c70c49bae7ef860b36af2fdf63cd6f3b34aa4a4f985d149db8be3e151fcc1ff59daf2ecf510e7884adaac754ae6cacbe87a4691acd5752877840556af8d56fcd848f982b415d333fd874d7959e8eae1ef1d133d9c07ffd9c97551f294c392f644834b38fa844a035cb5458aa7240f750287f95feb1696d88988eb0648c3cc0fa9d4277fd9af8c579271f4c77 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 9eca0fe36c80fc5eba171c3ae66a5b1c923faa50b4521bb055e7bf51005c93df +public_key = e88dd43bf6d0f7b6db3b47dbfa6a30c846c4761f792417ee322d879e3ae58433a2a3a7791d2d4912da8576ccf722eb9e38139c1999e5986b58a977efb054a81443553ad74563f587b226a9118ce33dece0dc0655a7e5fd493b7b3db9584c49b4d104ed06665a3d07383057ad70b69f85b6cb279ff3822db83078e795ed42da1d467a34d91e8e322a08aa1d83b0872ee37576e5a119503af837ecae6768046b7e64ab5a4daad4da6e3165ad036959c39bc6917dbd7f074776089aff76b33dcbb17bcbbe65c5f6c795b65943821d5b52ad1d44ccb5fe3403a02604a1b4d9cc84e4b72b3ce36de898a12451d8c74c280a67cabba42dfcbea68455c5f45bd3fcd3bbcb3f736d4df70737a01683369c8a5719e742d6df089a673da350db8ba39c3ae108aa6a4e2a6f25be3d960dd5802bf40c6dd67dd34b60a9edb2b4fde3dcb2c34d34d0cacd24c890cac7a134cbe83d9fb5d66c7000a5a3f808987558f7c9a7cc02ae550a9cb4f5fe8d5959be0ef84c35b54468c55a16df74f996cb74449d1e6bff88bcb6d019e2aa3d5879cbe56bbca98446e0af2c5193363178dfb5877f40d207819498a98209c109273dd44a4f2a06549335a63a0bf761efe2592c417c4f6268485a7e8693f865c0a7a6de083e53d5e578a74b34e9c3a57fcfdfc825ba59e56359b6f7f358a4d81f7be7d571caaed78d9630e136f402a731b14b9f0ee4a3fa4494bde9aaf2d4603b0ee88b8b49a659d56ff3e4cab9fdf6e8e6fba591fc4961cf15d9d0dbb02ea7321ef75aec2d813e33a9717478be58b49fca3130fafb54f6ffd3243f4e34de55cd8d26d5d20aa5e2d2536c486772e735f67bba974f3a451be5df29c55c7199d12473ae1e5a7ef36cdb479679f1b7efafc4eca7de6b3a0ed1201bcf2525d75a1c9f881a7ae4f4733b149e7c29973588c1626e6e9928d62236332cc67f26a65fc72c785653e2c429cd1f3854eb98c0cf9ebe6daaf4afddac65bc5d805490e1d8c86963c8adeb8756edbcdfa473ee33d37673773c46911dedbaf8d8ebce8d47aade9175f6bc32cf997d6fc502b934d775efc51562625538e25bf35c4c38cdc8ffcea4abaa963b3d67b3679b51a21cbd782f8338a95b4d74eb5fbf6644a58a59abb0a9cdafc8894792b3c6edec9ccf8cf9c72db9ca36fc6356f1d235f28f25d3609b548f14e8648cab5ba6d9e7486d57e5824c538037e3f31a4f7a3b077703a736837dc9b86ff17fbd4b912a3843f4afa829b38174bbdd1cadc8c74697544f6239d68344441fef86325d716339716ea6a8245a3c3c24fb986b74620af517b4e3ac7e8ceb196f15f887a465c8fa0ec55db4718ea58c729f6ea344c49645e49024f97275baecd9dad1c95c7538eeb895f6502ee23ad8cd7dfe968e885221fd964f25510539be63263a4ec6e69f83e9f0086fecf996d2e852f139b500ecefec98f44315d5a88df360e8e823269ff5bf622b54b7f917bb457e466015ec31d9b39494a64a86c15d5e6437c4a43704ed0fd5922dda52818336d93a8c761fd3fd859b07fef7d8e33b52c34411f4e99dcdecbe7db8f00e80b055e19129aeb04398841bc8261444c963c3fd1ec8dd4c78dc5a8cda0f687e36aca6ff667abccdf2093e5ecb1a4f09769a8251104731ee68587d0a470e2ee6ab99d3af13f31776 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0c5719261caab51ae66b8c32e21c34e6d86ee4aa127d1b0195663c066497b2e9 +public_key = 13568b1233f135a5896094834cf450d789ba498787368b4e16feb087b7d4e8f3f7d74ef90177add98cda0d84820ce367dd5e5fc46faaa98aa7911a867a3789f69a5b68bbbabf3aabd037b5160a3f3e8f77ec47898ff3ba5ddbbca6a8db5ad47c59236eb34bfa9c84b212e93d9f7daae78a4f9f6bae592ac2b5f96eef6f7972df738a9d5b215869d9f4b706c379ab9dfb5a99abf754ca9316872f033ecbd5b3507fc611ce403764da2c86ac7ebbdc3af84729c486116e5c9956751759660b3c7bab67e46f8be0896defe15bff5924eb1bc6302d88a360ef7e0c0ae9c2bffa9ec5e7cb6d60f264d8d4299a7f46c458b3bc38c4794bda8f9089d43864e79ecdd71af69c9f074a83438874c882cd18b69b1bf009497b6fe94a9264470bf8f56b49b6c353374ad49c05cef76fd484338796e4389a523598f37762926efe25fbb5fe9859142dc1bb47c6ef3b4bd1e6fb6997b5561bae038854ceeb41b39f5c1f1a81a80fb57b38e5f62aa9eb36f5ff45e2cf9595073ca623da43f33cf1d73f97a59eb28dd8b1361bbc91c4db34a65f1a2b7db87bdb3cefeb26ca5795b795e355b45d26f3b3a9731228e74c5d966d6937ed057fb10b631b5eb7d52d72a0845be8553e1aadefb0eba3605e42c75857f74f918cff4544355c415ee02d9be97c4f9fe548433eac36c52d77ed787f8e73eedb856d4398a26d536911ebbd9facf2769c756f858d180b6b51797fe9fcd833d9d8d9bbf730d937b77adfebb68fd84372c96c3c05197094ef6d022e9c15f898b2c7ac76eee486afa414ad65be744e0908b6350e55a244838debe4b74c578fdafd7e6c4e15e68421a568e7e39a4a14f31926768ac4a061d67550a8512e88d198738bf4ef420cf75681decac07798c01ca0620fcb2ae5c9b99b62a7349fc9afc558989b68e3789c2c7074b476d29fe2846c8a8d66f1678f9a36587eafc95a362874e91faa951a6995f5a94d47dafc9b64777a7e58cb54b62a95476ccd333d73d6e466e6ab909b4b4cd94daff393c93929d2f5cd5bea833d265fd7cfe938669cbee478c57ff4424014d03d25efe5f9d4149f4bf137841aed8dbc46911e2ab2b7f45dcde5c549f679691632c3d9bae26b9fdb85c7bc43d1a4add386873345974bdd0d7f879e55df79cfc7fd6c39d8bc9a9967548f358caf5837ae5cc32fae78e4a85a19c5daa9e2e59ef8fb37a7f386c0fc86afcd2869e39fca9c6fee6ef9b12908ca5e9ddae1a7a3a717d767ef802a947c7edb3452a377dacebcdb25fd37db41ce7c74c36b32c69e31b1b85f9b68a3b66773ee5afb820ef609c33cdaab4caa563e9bfb3cd9c4c72354c1e894f3fa4e69e18bab1a9798cba9d31ff852e8aff9630c8f35459bf40c425af7cb0843498a3cc7fda53d933ad7393de8de07808abcfb4e6da1e34fbeffb89489ba69a7af644628d104deef7c2f361f75e777b997b76ca8f6af5b9739e0597fdee5479e92aabb218444aef5fe5d8f94d578c709158f655a89300cea7f765fb389dbd62a5fe11b57f273775eaf7fc1c5e28663c62305e85513b753543bd71aa045e77e4be4fb7e7baa5bbfc4d3d4ef4db84af265acecd4906fab897b5abf5af66b4c5adb4e783b417c6fade7ed34ea294ccf8b8c8012edb8badb3437b191165cd639bcde9eb71378e71fb55129 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0e59f6f9047c784c1f00b24454aa4f1bd32c92ae7e626549972f86fab90e7e89 +public_key = b31cd11788cb97cb439789a67d476d3edf65cae63cbe43cb63bae24ba3d71d78e2bc76ff346481f974a73b16a505c48b9608359a4cd35145f58029a18c1fe7461830785379d3355ff3968d3c63a46685902425660b33fb11b93997f6dae0a5bb96af7d563d81f3a3d40b1c30ec87535ffc6fe528b1e9866cd1e69520e376e017e087748691dcc057b95cd4d6d707d8b976d6a67af4869da6dd5466a9f335eddf9fcfe9adb03fafc43cfd3fabc9c9b5d97ea2f558b2ccdec29d8335ca4f2607cb0448da831bf45f8b43fd16d98269bf9ce33fc08cee69ad5f6366dd70544eea5cdbc528859a6bd9683b8b3d3c6842e645816eb7ddc4b23ec6ae83d557e5c4b1848445fe253b35f5f1035e7cd48d30e6faf8a6eea24cdd9ac6b83c5dc658d11589900a7bb09a96358da2d87ff5ae55bc551d8fb233785174b376ae84ecbee0e05762e8ff6139dca4cb197620156c06e47e5b74a0970bc6e19bee1d9e9a6c1be0e757dd5ded9e2729e94ead440ac3aacd86bf724aa841a83dcf64c8e1f7704397a4cd57bbabc9a0cfa4de97e892132ed06054f2873f382ef48fb5d3b65219a5a6983ad0e48ee49d81f2cae103bc9c6324d90b3eaa352e3c0d3e9eead96b865cbc993f7570b965c00dcb9bbce8c75df73d44fceeeeed73ffd78399c458068439a8a27e388d3f4bb285b63992b5a4365ef2ac298222e39d31cb886c4958f28c5c2f3738473fb4dc2e6b43ca624615efd704b596acd7dbe5f5ac6a479e83df8c1ec5d52ee1ac65764fe7ea4f43be55c563cee5c26c69cdaa485d851cf127ffbb16f5766fe86bce17535198ce9acfa66918af9674eb2ec74be2c6e752076a2db330984ccd712ece361adc498e43648389f59fba20ac566c04d2383a496a9e497208b760d36da6896bb3587788597191c3347539be92b78cc7afb0d8eb41894fdceb8aa6ef2de8e9f78f508d97ae85f7ec947cb2bf7dc8a86ee31dd20127531273983bf66746a7b731464a6b25f4b18744a8d6d6649bffb1a4339d6ae5d7f6a5ea4aec092ffb773ab09564792fcafe297e9a603c3ed095df2e5d45de3bb93dda7a84e692c25537ef6957870bd98a1d7395f87c6b836e138bba9f4a711daa421a396f557cf6e3778f4d364d5b1844118b367d78af37836fd7a9637f27e4cd9a3e52155b0047468b64f0cd5c6bb74e38ba16863e18b4368542800b378537b5d03d3cd3be91ccf783729e42ffbcead0585b1948f81ceb5c86587c44bf8c49e9e11a8fba7ac567e1fb64d8e3c45083d305dcfe4f1fcc698a728977cf1c9b373f15ec18fe935177ae90aa8856a5a24d18a08aa942b435da6447c35289cf0b334af45647e21b5a2153a8a05a38ac4c728a3350a165d2cba347a876cc4ceef034935bb3ece4435930da1faac8a787db3ca3362e637d5e59b01592020db417effc18d6a0a536e2c7d75c1584eb6954ae752c4d31fbaf1b483b6b6862e6a983d5465e3b7b80e1654faca5c669e77295f86263d344031b5ea7ab99e714c0a93ed42bd9512677ab9e8930a04ecf47944da29de5225dff211a607659dae393818fbfd56954b24b6f4e6e54acb7d5bbb33ce4b339730af6a72647a66f86ebbb88d12a76540763cb29dcb9b8c27a3c1e43769c31af3ef54f7c8062d713cab3803437e759a01ee76fba1a5b +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a3963ade17d69debbc358dda82c7bebe2c39d25b36813058e7a161542e3f8c2b +public_key = d24bea80b6c91027d09cfa4925f3cca1b97d1b9fdb204a4ad5f4bb2147307a5350d0244ca31ed2b808d1c924bdb5667a5866303ee5fe27c932a1d84c637c707537409fcb7516fe95e557920ff79a310e354cea327f274edcbb99e66acda0aac52dd5d3717a3b24786afcb7ddd84c7c4fdec1b3ac454c93fcaa687bef8a96bf7ce182f5c664ceada4784654393d4c93f19c149e310bdfc1e9afc4297968d8d209594aa567c6510da883c3fe3fc8fd9eeb4e9af65ca40cddc1ec794fbfb7eeeea5556474f4cdf3c45b5d882fe09b2f81f55f7a4bbc8262c9bedd0758116643bc6a85f83682564e767595c0b555e6a44de37f17f4a2bf32cf0a399e0478f83fc54308ec9d05c7f6bd86c74f91b2d94cf02462df8cdf43fbd6329f65ae25656b56ff1445ca52a9e6683eb114e8458a1ad362be35e71df315b65b3383d4404a907f4ced41ec922005593afeef273e86c385ef96d750f3a8588fee4f41bd9178368ef03a9526a5444ced96c3da8a754e638f64b4fe3dee31b34f2c456ec89890f53c9a25b559b47856064ff7e3b36c16297949c6b11159a79a4344f0759c717ea738fbdf81cf5ec3fda2eff6e4c7766c9dd68fb488c4e514769d9b6be2d59e9c9cba6b6bedbcabdd8e5c7078663794fb4eb8d7d60cceb61286cb173ab6a809524254f3746bc91bc953b689d8bb44f26eb382bd54bcbbf5c60e4676537f8186c357b3fba85f6b8553c79c730ba51ac9dd06ea9ede4d7b8aedc0a4276ea3698ee5e6a8349aff9f67ec2b7b93f5eab703feacc358dbbc2f3e6846efd89a57d27e6fc8c99ff43734fc58969d45d77f5bb422b859b37eb08504e495ff8b416565d209d9492e6ade3cab7d2d5ef2f47d8c5db9152a9ba613f322e73708aaee525f387e3437d229dcb9e394bbb6857a2beead7a3d7118b0ab8367ba1cc0a0aed5195fda47ae82724d8121db5dcb0670ed789d537ba3639c530b8fded904dd023c75b1b8f61b7cd193be484335fcb8e7e3c8736b34daacfa235c9b5e468dbaa6f2e450781e344b5a722ae46a70e683c42a9056ecac5d143f9939d06cbe68ff2ac983ca8b1d99cfc1c8cd91abf82ec9f1eafab2a778b227968f77ec885077ceb7bb5fa13884b6a4bac88fb31f35d56aed671396b780f8e0e4a34416166c18d4f04ad4e24d2df0065af57d3f369c99f4216ed812ff8872d59cf8db48f3ae510a5895a0acd08be695699a48463ed777146b56093d36a6dd6c36860cec578de3688bf338a39ee8a67833f5c4c7d93b8867d93ea7aa99a3743435df36d786cd8f6e7791bc5452c88e710ee99e6dd4e27e46f3c69c6078fc11e78b07bfc0815bb88aae7a15fbed985b601e7cd4604cce35be3d82b3f8f62cfdddaaa25fd9ae0dc83963cd887e49fa25c8657e6ecc2ffc980d4cc4c9557e7dec446828b03e8bc9a1355dc33bec06e5d4d06e3235b6b9b2bd4c0ed550545bc37f8dd0a2366786da49d637ceb5d4f7314e7065a7f36ceda7213cb03a4f82aa998412fef36ab964a7998056ae83dcc4ce765b875686dfff965d2b7c5adc37fef1d3b214b4ac9b543e0f24876e773edc54c10599fcd98f848fdbd39f6ff3d0c68fa204cfdb793c5ee56659a3fcac2e3cd4fbe8fa4b045103a1e865b0c567574e523be27974b08adec6d539f37479c61fe8d8c4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 97beafabf2c8575586487c7a80e8af5fc50f94b6051c1bc66a5ae9f66be3cea7 +public_key = 4f27944614c35e2febf249d402bc937a7d55937afd49699cdefcff2a4e3403bae024e8d2d97c54ab3e6708cf6a0b53f821f63cd89a87f769597cec8357cfc399d3a34115cca89b9df6a55e4556a3b225db529d7ce67b860f697a66be99b47d691fdcb31cf7937d25f4be04eb083fcfdf464175c95d91afe76cf5f814d3a9242ee4cd3e718755ccd3a7b3fe69b42a0e75dc54dcd38c69faecb190ca6850ced01b63d8fb5ceff6a55b4be8814e7dfec5acfdeed654c93a45d55a3e0218d0e98aa786c76fcf33cea3a7bdbffa5038ae71045beb74e6d94d1a3b617dd9b40be0060b6dd2df9ae67ab90d9dc25db895ca5e5fe1ae7bdd69c67745e8a63fae8ac731e42e55511fd4dbefc9284cc1706eb5a9e483348593585d6e2c49ed1bd38865ea489e59fd8b847a6b5dba0753f0fb4fd74d89894324a705dba4e1847a5059645c87d63809cbf3dbd555b6be4069c77c1da6c6f67ae1e7c09e6d3e87a34acd3b814d7b4798ecd5acba65230f89772abdbd89403e698f3556511e25fbc0f77509dc36803b57d19ef9951ac44ecc49f43b7cfe8436baa8b5376999f654f29345fe76ac592b95804217817ad5a75a76caa82e72df9c69da5ce70e937a69d93f12c7b533d4bce41b34d0cc8a1c969947ebfc21a960d975ac039f80ecbb527654a42385576286915d4b8f40de63f0dbf80736bee89786fa277c8487b08214e6985855a96ae0657d59cf34c08915985d3f321b5b8b45a468ce4f53c76f847eea36fb238099fd59630cac83aa70cc9596cc2ad406e993b737c236e78cfbfae191e6dfc74f8fe719d998feab42ce3e0c57a256b8e3bc559ad1e6ad10dc3cf43a64dbef955f03b46a09ac6ef3d326d95d6ca8b80f6eaab77579c017a1916f79ac09766bd8a1b41bf4d8bc4deefaab47f9c14a8441ec4e3dbe7e8e522fae7beb94f526a31beaf5d893a54477dd994530d3c6ca2987908597df6d64e92b1a7fd73e93c84f3be4867d2c134683caf5f934de10afa96b47c5ac05b542cf98105e557989b3ebb4fdae1df412f462acf75b141c5fc42dbdafd3c11cef91ea0cd5d6b5a1d51e7c7703c313eaa30487f53e938764364b25d859adaf63962c5d6d898ada856b71ee51dfb4e28a2e3acda6cdb534ebc7067bee5cb467c34d2b0a6ded6aa74639dee2f4db7cfef94c583ab04e5dd14fe3a3dbfe420ed8328f3e749acbc53767c12b93d803f357a54c6b7eb2042ae67d685f0bf789b95bf77f1b60b02fc09b639ac72ca25b1c69b855bed6377126999c570878919ecedce768b253ccaea8e715c8922dc9562ea8a0bb2dfb02585282be5c7e44339cf63052aceb087ed6ee2b5c7cfde81ce43d397a398c8547db7d3e2ab47bc25f84f4c6a50dcb904ec9c1f61aeaeef38435997871e8501d4832bcbfa3354c70d9579f2384f71363f9cdb3f573089687d9a9130375bf66ac332ee3a26ad8aa75cb667635455a93eae7a0a77d3a2ecda85637681edbd97f2be6b2b331210b6289be3f585fbb6c83eadac3dca15ea8170990961ff892e9f3f67eb8d879c8defdab03145a32298dc6b644b25640d818d06f4ee3accc6a0c1ccb05fcf73e6b655aef87539c72d754ba9bc48c915acebb656e3cb7713e9bfc0bb6f311485ebaa078b78a737d81d38d368c220eb0e982fb0bd8a7ed97 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 75461decd34c50d6a094b4a64fb75e5e9479f8f9250d82bb7d729dedeb2d4b65 +public_key = 39b95d90e5ee8cecb49dd4ea37e866c80aecf723c3e48e5b1f388f63d791fe0cb8518df0e2aef5bf0ba753fa89c29e80a85d5e15ab6c44f3ff70499df5dbe06f85bcc5dc4f20d9660c17307eed5bc1eb6bdcebc52727ca3544772cc56a08c3dc0c54a848bf83888d8a1747a23f6460054c582b4ca1e09691c656e5a6ba3f8aad5a18eccea06b55035ed47c28d7f43f3dec674f17056d71b7bea906463efaa0fb5db0527f3e0cd66cc7587df4b58d490bd39fda6e2f5d7d637ca7d489971d897b09148a6a2b47d3b4bc3a4ac0715b3abeed96bfd8622daf4141683771ccad1094595c2dc8b00d4d54873b0e4f977886314fc889e68d44750d552727dc4998fca89648d24ba29ce3da7c2868f287345f59f6f124e531d3a53cf68c877ff47d47348dbea1036e3ab236b67bb9a7cce47e7a4d96c0a93d54f743ceae6ea09c8d87c43e4a2bfcdabdb5eb8eef30b39812ca44db2db02cb4c8ff1f343896ae6eb838ac648acb8bc8e887ac6a7dfe7e9ef63315373029b2d77e3705935a43177b9f9888126fd2edbea60e433d8eefbb43df35146ff4c7f795d44f466b4c5bb8bc93942ee6489e71800b717c033a304bc61adfa79a687e005d62150bef76ab67d8b46c72857a46d753674a7ef3a6fc91ffb6305e458204b71d95734533875819a49546decd1fb66005330593456d5e6ead7b3c942688a92fbf0e9fbf849bab6068480a1bdb4b8c3a462dd7dc2a733de7b51d835e5b89d0ac836fbefe3a9ef8fb34ccacdf6b8f4ddd594d8d47314db633b7ceaa19e25abfec5c98e603ce46e4444e1e48800a18923934e814ce3b725ad2e6e7a70834493f794ae7a9ebbf1b60d5ddd84d2e3471eb3598079adfa5d04a5fe76f297ad3d55b5cfac5a3b385679ca6af36f17ad8309547a07393f8bc1a51981fba545ca739e8c253a653958e7aa6874e432a95e5f35aa045cca10ced7bf467424a8d4a8f74647cd5c16be76c8a69f91ada524b6e4c6d53979499e85f6ac66830d29bf8ca2c6dc416eb1546a4e8d7348416c8a8fcbc0779c51ce855dfc54d94d74bee674bbc383adb248c07eb888abdb44937356906a61c1d74362754440856bb26b2fb9d6ebbb94ccc943fb3acd0292843ee6def5f673762e3afbe7e79e418352097d0ffff33794cd850c5b48499afed47ee56e5a92b5ed9672f47b72338db4769f9849f9526f66adbe33af5666b28e31ed347464f50cb04528d9eb8335cff5b44d1d0bf8e468f4e74ceb6854b330c47c443d931b9e5b13903ec25d4458ac53a330f5d49bb5d1a89b73bf930c75cf33bba7aff4df39b4e5879857270ad9d0a8afab19559ed48dd9eec34b5fa83b748e3a763beab1aef7df5b87a6f709f255256a36800b94062d3af90a9db2a53f51ad9b0e50dbbaa4a30662d443ecc8cf466e3a80ced61e6312c0ad3d24ce547a69cfe43660d987a031dcf60965fca77c8515d3416c7c18a37bc10ca47f517abfcecd18ffb538f4744059e7dd65c8a680a667b1762b5958e43547fca1aa0da99d7d7d3a25b53d724477eb2844e54f35ae9ff7598d568d413914bf66b70e37ddbfb7df02cd8e24ed932ba90ad2f87188bd22dc659c83b9f554871ae4aaeba7ac7701f54f174493d31eda27def0331de8e68f7b1568c4c8919e4de7a5005ce152fef9c8c88ec9e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 2607dcf4fd6ca1c614c21b5e37c24981c32b91c8c3e6955777da8a3f5d9c9335 +public_key = e1696955c4bc38dc83886ea183e3ee38ccf1fd2b955eadd2ac69ad97cd3822fb4283d4f16e93b96d86bbf81888b69bee6784ed4fc8af15d4642a7b65d7c4d8ed8ee0568f6bf634557c8a7ce4b3f38469ff3c5881aa63d214cf43524e505a9cd918186c1508ab122deb09397d82c3ec85ab64f4bb389487f6d2d7e7362858a0a3656487b0deaa38c91d9e60dd61496a69568e347e5faa7ee7ec20d8a613bc54e8a49a92ebceab993b0fb8ede448c15665daae28ea537c38638c6320abaa08d5db7b64f11dbc8124a487f0ffb545ca3db9ad7be7674b51a95efd08c4421cbf2aeb8cd92383852ad44985aa9a16fbf5267382db45519bbd747852ed1a590ca3a8970fa6c65cc06c856e224842440ae6b928b13c9e736b1680e18cb1f76a7209b76754076db98ff95ec76e247bef5808e0e17ed372938393288c86bfb2f31d7fc39c7d805678e68a38e3e57c30ecb650ece5468674cc54aa8aaa424c5d60a03bae4d74c8a43c951e6b53b2c8b1502459869aeb03a5c1396ceb1065ec28a6756d35ee1916c24ba33792d74eb88a5c84078f60d6e2beb4a7d94bca27e3377e53442284c395ecc2363d9d138ec53964bd35ad67f225829e5cbfaed47da9e393895aa82a67ab5b44a92d94f3bcb59265e73b84f5499284f7e9295acc8694d88df0d0e4342d3c784c2fe25024ddb1c3bd398d63524e6c8f86b4abfc7a15aeebc865baaf867f54f9ff936bd44c6dbd5343c5fcabfd1dc68735baa31dee55e38ceed0c85163dfae359fc44c29343c5d351c64747f9765b6f9306bbb3e543334c987c9a2cfa5783a576ce94b901dbc3539cd5503dc0cdad1a5985eb5993d35b8cbb136bd76abe3f0c5c2d40b34335a52bd34ab04f9cf3f6c313b6c5b9ef879c11cee1b249cba2580f7da8bb07cd03db871903e8979e358292b881f9ccf984c525c6ea34f6681197a78359e32316f7b56388ea26cce0569680c968b31aaa9781dc9b2dcd1987ea57f8b5739554e45048d5a7edbaa9db2e1967648d3c8751daff7a8ea58efbccea7eb913cfbf633bb8ea55314f3327d3b4fcde33aa2ef35e6eb603cbae9ba83c98eea4196c78a80e8b5691ff7cbfd6ebc3fd42e9a5c63974650fbcb163e404c6862721fe50126710949e1d78df7d59ea916539a1b84b3c966b89ed3b1e9a8d76926782783eece44826a4adbfdfd37d9fbb9bab4b85ad668fd1573c0e9b227fb5ad32c948037384155e88b17620ec9ecf6a6318f43ecae48d0164ccd138c8c75b3d71a8cd16605e66d84e71b5b854c0783fa9d5b88a5dc23ca8835e530c40372616ddbea0dd610b53580deb80b09aa06c7e26ecc8bdc7d9e3e698761f756ad16f4280778c0dae40d4f6f91c76f81b96cf04f5403c95bc00852359b638a8a75b3fcbea47990e10fb346d5a9491d83c4336d0229e326f6ab5c5777f72fcd4819bd1187cc6099cb7968474ed93c0b93dbb40e31465e970b86a25ead5dce97ab5db744c78536712c752e1ff06c8585295f68c594f49109f73678fb223b6bddd39c617dbfd74aae3f8ab1fbc357147df8aa3542f006cfbf4f9001377d221fc5ae48d5244b865ea863257aa672ddb147dd4b8abf33f70768a383d43a59b9061bd943f56865e6a91bcdc54402574a0f1c143dd36948d781d2f3c44e2f08b52e339b6e1cb3 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 38c89bbe7145c29e9a831c11431eb9929cb24fb4992db20737e4687d397fd732 +public_key = 00264fbcf666abba49136b6e6dadac8636bb20e3d5bcb6fbdef6301ab5e899d7341147b72d3edafee6a3294a4ac8685b1c7dd3eafb7e94e9efd958b5c3944129198bf03afe959e491a2bad9375cd9f184aab285e91c877885be0161e775cc3ef2a2a3e7337406d7662c8d8c83c1933f1ef7b8b2b39b1aa889754dea524ff23cfe8c77c66419f996e49f37f57713a0e4da6da6870d848cf98b006c96340fe38333f61e2dd42ea645e618e3c11f9489714c1986d7e568c80460df54f04e0b86634dd469033456605fe925564589828ecdb93dc1b8fc4eb1373bb9fd515b6a44596342ac8b913dfe7603cc92b9afb52caa29a7fbc95ab334a93307d7b9aef0e3b231e8eabb947b2af315058efa1e7b9146b9ef5fabe9debc6830d3eed2534da6e4d90466c80a73fab8b94d187a383463e7f6a380d1b34ae5473f68e67e97794768af0bce5b6d5dca88b35695e1afbafed3abd55ba0fe768a8254d40836233fab35894f6765d8302a337850e67dee53eb3ccb531a7637edeb9dac9a0054ff6811fe6607fa5aad8ccc723eccebec986a7b29bd89311099fa3e9460553900f5e560364bf9af461f1487cdafdadef05d89b17f4097dc310ac4703fee3f68433991f42c153c49c43cd93493b52395b5ebd73ec936f3518b7f6954426b9757476cc1cddc4ff97da2124a8f8daa3299ac21188f35c36da019ce69d083cf40842bb7adf2e4d78621d6b4e85f091dacbb85677fabcbe180abdc6235d0e8c34737a5934f431afa670d11de66f6c5e4526e74b2d5f4bc6e82cbf4a559d7be546dcb81b5333a937c4f4dff2579b0039c0ba3374664859e376a8515b390bb46acfb54bbd4aa6dabbedfdd44c712b311798c71e26ff36f5620188f1cca6f27cc431ffbc3634acc704937187c8f00d9bcbb1cf5df359c386e740195662ae24cbb25be81a23a2b4cb5e3a767701d3a80f7bb82133be97daa38b7d6c7e2949ce86587246bd5fabc77495601adff47f5748f0988087159d42b8c6b1aaa398879c77f3fb0a5494926588dc537fe2fd5a1084efd98e4f191cbdc50cb2a0caeec053a7893962094e5c78ce8d2845e0f51da723ae87cfc552f73e596493e7ed6966964e3ec894ab80f4c106d73933f3e2997bf3f073bdba6f5727d8c0ff28e8d9f78b91c4a6c43d75f9b9eb782e38cbf6861937c53aca7b535baacd2bceeca6f23ba7747b4a7d50c36d3dcdf97967cc447c3bffbbb723455e421ccfd89ec48f8ba55879fe2def78dd45ee28d35ec1039f16e8f81ccd867e5f9ffa6544b1663a14b6843fd85fefafb00e3c8b223ebbabbdb2161493caab54656deff6f3d074a372dc6a905baaea66b637365b48af4b55e45ac4236781b72be30718941f06c17d84786cfea033c6dda7c6b0d4d385f303f4dbea84c0bb8fa82d569d1959474beaf84459c0ec4ef133c06893f3fe95d3069bc15cbb391bb7d41e665f652880ee367c97f34e734dd09fd4d1d7a34b5375f9ef54423386ebd3bdea9da338a21549235f906f9792913dfe5c666bb31a74ffbe3b05cbbb351d76675cd2567c80531c5573fc6428b8ceddf3ae84b8bb7018a300cef90687dc4528c7346da868cf701158927eb5a9fad6da305deaffc4c65198b4a5e1439001d5882496fa682185d21aa4ef95ac3eb5e675c7a4a4426f93 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: b2c35e33c72d90182791f0e12a0324f5b216efcab2c8da1bee025dfbe13f4152 +public_key = 86a7e9cf2dc5abaccd8899f86f2a77b388a58ebb7c53e7961986fae62eeb6f45f192288128a832030d5addfdb15c0640f2b84d2ed58ee806bd50bffad26c5c8eb9a035768951a579f8facd494f8e508abece4e8617fa5901fbbdacb6b53ace48b03f78240d9e86fa49b96c42d8ec5accecc423fc979c475fc9c63697dfed2073d1e9d54ad1088be167af34c57fadcf5d4bb49ba5677843ef7c1fa666b0659c66dc412de949980ca6a707a0c21976822579a00bee697892fc97f51354a17f73d271cb3b10f5c578777a990361b467c1374897675748f763619e065104b3e999a765815ca7a33ed3f373e879b790a96f450c69af8d29c0f9a48e8dda82f3cd3c0f1fb62484c4ee45d02848b030f4edd01d84b107de405677a059774f4ffc7c8ff65f3f810e86ed82956cc019425703e2589f8b786b6fb71eea1316f0d205e779df7de0965465d445e6777660865df9e73bc6858fa8155bf5cb4bfacf352744dc333ee009144fe456950694b657afa30c55647d17cfa1856981867aec8faf64fe525d3ecf643b32eb9ffb2f389ad4255839afbc2ff850cbbca834c87f9fcaec05caf51acaad9ad99076afd654df9d94c399cc5afe4c7a871e176a275b7ac0a4401d36b35113595e5eb92ccb8618f3ca40b4900774a784644973477dd59fc66d09ba9b074c3d0347da0ad9dbe43a9b99df62a5b9caa996f9e362babfe03a4fcb929e5ce8e390af54a2589ff7a9389e922b9c3839d7853ba05fbe3e7f03c07a4dedb2135d95c934da5784cb05b9727aec1e28b01f5c5edba7a340053ea51c32d0a3d653f461710f5205cdadf95cf07573ec5589d895495f23fae04b6db88c8b627dc4f56b6892d1b7886f959a18bcf38aea494e45aaefe7f056f362e7f34ec6ffde9c9aaf2efa8683a7de310390a73df64fceac3a05e6c254d9ef4a4b9add725eee506d7d6304ef848e39d4f8c482437de62e5392b6bd595d699358be90e237ce1e3692ed95b7710488ad285c04ebf43eea47562d605cb98b99aecc893a7f1d7492f038795ead3f63b9eec925a914b3c1fd9a3b5a74bea6b6770a6be400348f710f555ba8c9c95b88ce8f9eb179472255f28d2eafa2d39238c76cdf1dd898c7e8884ac8109cd6e82cd2f264bb6c9c5c1318ec09d431aae78a26e6ffbd14ef32fbc013ddc83fb9450448cfcdd8cf891d36ac096396f3e1e923478c5a346cf5c931edec85bd4400b3875aae8d3bb4de46c8af5f133258f353aaacbfa69bdbff2d6bf7fa65b29fa4799adfaa68b25757f5dfb69ff108b7c155cf784f6ef8a776f0455bcea85ffc9ea7508fd3becfa9d0096fe7ab57ebb4cf1dfaeca0c5c4faef64d2d5a0fb64658bb3b1ccc93ea68e4407b6c865ccfb30ae4311ca50016b782716841bf89475dede182aa51c14e65807693134e9d22e9261a548ef0aad81159e4be73bda9c8903b7a4955456a3a8b406af7c18968901d54f8a0ca16f4eaa1d1ce28edc33b069a1c1e4b22438beb74a996c8b30c27e7f0719fc475dfb1d9b710c46540ac3ff3848ec95b7445704461c0589cc4f7606057c7809e2fd7fba39deb664767df319d1b148b1d609601bec3e40f4e136ea9edad6df1f097c4a9d6f105c99c5bd69d5325baf3e6882dfda254850ba1ae5ca738086b4bb3c91df05c11c1acb67a98d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: afb7d6dc2b7eb6d84acc080c1be63c98afe7b07786b5801f716444a3e8e64800 +public_key = fe04b19e38680e8b5f015e67b4ccbd4ccfa87c3a98d3bfaf18738b8b44b1ff58dad79e83c828bd372a4a3dfefce72867a886733f3bade4144ab55b63be39d2aef88ab5fef9551540e849d35773e233eccf24ad668886b39a4fc240adf265a84a09bd7d11b85c0975e2c09ac3c93df3f23aaf48578bca4b504277e3c7f5f70a8dc78c6643f06e5c2b6ab57ba8e11b4fee30d8a38b5a376faafc793ba197ef93feffd1bb7f61e33fd80da5eb4f249a47da98c2aa4b88ee65de574efda9577dd8e5c847ad27afe0970975d94ff645246cfcfb46a194a9b3dbfb92bfdfda1d7948d8777d1ae4d6187c922a5beee8d600a9ef314d64359df86a68de942d32a37b8c8283353507f2edf44e97397e14a3ecf7f49201e8db75d650f204bd384e6c643ba726dfb3b4f368b033589f0ecdc10ccfe264a6f0fdeecd3b8e92478bfd8ceabba9734593467a9dd7990a9edf57b081c73d699b7a758a60141d6597ab80397dc24e5cfe0d649dea9bc0e0fbc74267eb7b6bcca714881ebf597c3a45cf0794022b58985a61d68faa5abe7e9c567e4c4f689769439837d5f389566f53c49526ab6d3edf4e694544e3d7d2c8612d1ccc23658127e8b071e581367340836e6ed11e397bb781896953c73b5128bf8437f38c27d663b05745d3fa37eacfa07dba767f0859e7b3de9d48cce5f37632f8e7060ca46633c9b4f6735c3bcbb9185abf39ba9ae6d0718c6fb84b7c7b867b5e5c51c1bdcdb03cc83b49568a5ad2ad93efca3e57a4f5d10bb8ec0b6bb34afb908a77b2e9eed6f85fc39bcea00a9467d58484bd273733947a619439576a98b446d811c97e7353e901978d2a5e48bba9e433ac72b4cc3e5cbcfa8f68ac9d9a3f5d53889343af7e7bd2316831b82d8939a88e614cdec6dd7861099489bd8deafbfcd295b6977c7c9b2630cdaa5b0a93ab7d98728b3ccec979b869e5d6b9c679ecb673b7d83df908aa596d3275a36291ca60fc7e7b754d6ec95fb802eacf4ec3c25343e52416f4b5b7a8eca6debfbd4d970cb8150bd69c458d02254fe8564f154a8c250d86fd98ab6a4a4510fab5205a99ab873f3fcf9b603a66016eb8ec8d3b6f7e740ffe74db09bd6c3447197765a19d7d310be735435602bda8337972263857f40eae5cf56a23dccfa4afd20bc84e79aa6a3755d389b6e6f6f6f6e10e592f7a71fe0dad82f3ac9d1979e83955bdeef48e7c9f5245a22cdf6479caca0207d403b8c978187f102bb949b7a709e94fc206948a7dec286ff22db4e090578ee0ded83e0a8bca2edb0e64623f4fdf0bc56c4f3bfbef38452ac7c2e17c5a72166a48d55ce5d3abca1a98d6eacf744f49e99fde2a8fe931faaebc3abc1a7453b6cdeb53af7284995df5fd7a3827bd9567cc32bfbb098f50472f6e059b52bf9bdf864793926b461574b73198b6b5bef8f1a6d7c02fd5391ef7e6597ea5bd99ecae3b38fa376177cf8d19d882bfd164e8d4320469b1598876adf5f5089d7b98675d554ce57e4c125cec30775cff89f29b1b99e52d6cbf28bab50e7077d4721c263542fae742ac45cd6ddd327a3da9c46309cad97433d5b25390c50abae20b6e8c8b3ae12d8aade68d9f3dd4bd1cf6d21c8096cb97a2afab02548ab8f1be5fdea37e49857c092ebd421eabeaf7d76beea2feb7cff7d2376a329549 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 28f5e9dbda122b2cf8f3754fe9e0c73a84ad4b0c093522e0b62cf815d60bbc3c +public_key = 57c8b4dd8ab3b7f3f03f2358221c9cc1ffa671bce846e59b3d5c955778d6b67ec64746bd4bd541d4c55128b9a7d62d8961afb74badda437de3f6b48fe70aebdcba5ec1e44594d3850c1a90e2a6bb352fe0039b48224b97efd6f583f5882d7e505aa6f84cc7cbe9873215697ba688546d3a6f987f9b2235ef479ab3f92cb08fcc3a9da6fa661c6150ec6dfdc7560986bf808b4504fafd44d595a8c34f4a564147cb798fdb6836cb448ca857d6dd8243ef33e48f6797b4e91e53cee0b375d395cefae9ea3965f7ed094daff389a198c9d4bf8b9f4fb002fab4affe7b3089885f9de7c047c3525fa0e37d9cccd7bf4d5ad81e3e60ebbc3d7a3ba978fff1fea55e028f3f306ebfbeb9388d14e040adc3330770c5ea5a883bf6d14c4267bf7723ff9863c6dc9f6984a6fdc2ee8b6f27385933994d8f9973728c5be6898012e4766d94fcd1d7b360f4e5286c965b0b5277a5a1c5f731dd085df0f9579b3eb5931ff7f238c389b7f3f8d3eea1c45afcfb6a62e555b1bfb766e78889dbc7a9ae74fec48e328b4411338b2607400236ee3c19c575c4ff5a09a269cff3aeb8e37079d0e785c3a05a98a67d8d083c5e6243872ad78f3b456173267d61d57b2f43dd01f7be8cac65b1ca46d859ff39c83338e9ff3ea9a3cc7b502c1e5d5a87d0e5885f264c384aa36ff52ba08ffa3eee17531915baabb5c9c14d33aa19ec37adc5e99aaf0fa446a945a6fa38e750bcbcf8e6666c799a4388db4024b97a7adb14d9722856838e0d890b9a982eba53f8254073fd7ec00748a61ca18b0b516076382a9a52eb19ad329bbb81534da023cb04fddcb75d46616cfd42ef4d6e8ca6da97fd47bee81133662735c6e48fa6167d7e3d8aa89d49801f89d8262c9ba8fea49cd3c1ce9a5344f5b3df38bf832fecc9e4f84eadc662d8b74ca947015e524beed8a2756bad834a1b2bff5d0eb29d74dad11c70644cd5548fe504ca90ede3fcb4c693fd55e565aeca80f4473794f3888b3a2e4dd229a7f81aaccb93abdbf2f5643b036596983768758ac6b97da4843e9e8e83633a65e35cc66969fba3a73e021348a0fe86cbc66b8fc49fd39e6322c3da6f2cc89f4f715a97f2c77fc2479ff938c3fca6c47f06dfef9da66fb467f06e7b58deada7f28b93ce24cd183bd68cb951c6bf9cfe1c30ec2f6a81ccd6639e33fa0a590de985e78d550dc370108a751aadb9da6bd6170bc8a647c408477333e63972a7452cac811e06ddce2b8af8cc43b848cddde7e68c0eab9d1382716d4672ddce57d94481fbe361d9a7f1c5906b1ecb80f6454a2c358bdf7086b5f14dba5c5f69b003d985693ea8c13b9c28d7d87efb8cd7247854bea9c50b70d6ed86a4e48ec77c8c6f4a83a124f1ba5bd87179f477a6b38f68c004f4beb11ea1388e3ac02ccfe7b7327136ffff26f27db3e0b0fd6a8d23938444436da66d7ed6e44ab44edd23f2b37e79901c3c1713f79fc8616308d5137ae3cd9f5e48ade514da5f7c68a23b23347d2b78edbd7ab4e8e42076f633b8a07d686aea3bb8eebd4da8df616e0be57049c45e3addeb0c85260862d5df5b47a3fb54487d6396c7fa4e93e40483c928460eb6b9b4349e1e5cdbd29de11b8ff46c4bc20377a7059faffaeb0f304a1a64398249b1e8626fd1aa24ae11f67a7f23fdcaeb349484 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: b0d713cbef0bb1df70cbb425d1e9373e9f7790fdc7980cc96a240dfc53f1e8e2 +public_key = f784b4d0a3b69b6d403f5b9c4aa3808d7b832ab9939b2a5cd15bb36bb7e0f13c934f0b5dc60ef6b4c4604d43d609cdc609fe4795f690d21ab54bb9a0ed44360108f2b4ce53dda33f6c2df194af343bbac83b938e521676ea3af0bbdfb516ce3bdba9c7efa9b8b56da8cfd6a5494ebb3078e9b2ba7adc5b93951653c7eee6c86c302e067b35863126ade2f2df30b99fc39375ffe9d778e755bb1d8bcb840c51eb93371c2cb377eaef0a33c13aa4aec4c9b79f59febe34906b6777acae470787bce5ecc92f494377555685f3fb6e5fafd33d464469adda074d5a159a54e3493a3364d7443d81449007fdb88669b8f507493dfb67b20de3037438437982c868362c27f556989272c8b338b8a56bcdaf290c3bea9ec5b65fb77a47dc027bec7c4d444a9d36df03fd06bb4b1b73b66d2644d17d9f5915dfbdd6fb36e7977b7f78febf6799df642429e4391c71af9f8d5c7c7800fca963f4a5ecd9ad5b1590bca4e90aee42be1c382d7a38b123cc23bad2c9273b5f377d97637091db6455447574cbdf27af50c63a6aedf6ce4ef9cc1c86424c2f6b06da65169ee4feffbca1c457f78f48ffadba9576bdfc48de4588ebef85bfc87ace9f6b5c6f68d5bc44d3b9e9a86503396c1d9d2daf916e16bc4c7a9c4737db77db678b7f4bb9e461e2f3adcad69ab78a60cbd5f134a7557afa452eb758d4c357b04ed248ffb61db9c2edcbe26e7f84f398f9861870bb494fc65b8b16d97cc5d9e50d4c4318ec698cc570509de1b29d37233bee3389e1565382450a4afdb8c8e07a7b4127a7d6d630c84d98b528aa9cea5249a6a424536a6003787b87f3027bc8e0dd7b9519337e6ef5b8bb63160f701befbb9c45fa3407cb3903a6183d3a5c29cdce23c4ed747eb56bae79084ad715d41bdf7cc754edd8e5eac4f5be1c594019143f41c56cfabe773fedcfa01e6036aa658974f0f834d6c1b3600afef433f6d993b691c09f95ba76f1bed9d60d8fbd3d8c75d30e4cb774a3eb8c8c7e698069437155ead58aa4a6831c6cd0b47fb425c4f85c548138f107d4b5c61756de3f35bb6ea95608404d1e546a28c0191c5bf8473135a98c5836d8bf7c4a1387bcd92b449f888c6b9990a5a7f5ea9c896fc58288c5905bd8ad06b8daca6fe06e4fb298377a0db3ddb7f68df51e9edf5b45d57fc3b11c85ca1439d2fadf074899c3155a52ff6af105f365553e2136ae3a69b52976754afe46ecc6592a4448918a892af6a896af7a6458d546db66c42b8a9eedf9fdbfbfc24e89974531c384d5822f95e0e85c2c44620bbac2b5376464ad49106f8ba67c7bb7257bca79dce4fbae57c7e7423abe164a43ece7b30fc768779c5a82e3f65b8add012383b1d8a6967a33969a5d368bbf5cb6e37969d93c9b321549f36288d4321fc8ed8e9e1d9b532f5c7ad85d6ab9d3ecf2f4b95f978cf74fb67b2995c8f56c272775023a438845ca46a6858c4ff01dae4f1cce976155fa0a7afb6ae4bde72dcd8685a89cedff64eb51d7bb5d29f7ef009a79bd16d273ebc51a48bfb575afebb57215badfdbecdd0ae9e120d3799c8843d60d68363b5c48bd95736f3d7ae8d71fae424799c1eab7e65343af0f8d8afcb39f5cc8a7f6ee4bd583d52725185dbcc71968200bd272d97f676c08e4a6053f4e0a7071d7abe99607e757 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 32bdcdb7059fe27f6409901980c080308951ffd90deffa8317b4d213a5f04495 +public_key = 8645bfe5dca2202ca92aabd7a6b33b4997fff22becda1ed20e4ac369fca24d0d593cfed5484af4076cafff92f0780c9bcd9e50b3a65571fb426ec47a82974bb2a6ba14ae3551d737e1dafcfc6de03e24f69263caa6be5b16066ca63b867a35d318fb7335babe4fe8ea2ef56ce7b5beb88c65c2bc6c5a85e49898a3d8a552cbfa6af1a463a1aad71cb64280da48f3684d9aedb4adc7b48d0393590fd2a7baa1ffa4ae95fbb0d45776bf76523ce5d4a379377b84dd26069e933748710a63782af3765a6659eb4718dac557a8553fd5be0433d16688f860b3d1239db06864fdac1f6aa0afeaba2b61afd695815fbaa8bf4ac50cbf206e3abf86ed3315692c59e84cf3995cea8f161c867697e4b0eee8526eb6da86c73a7bf28b953dde27e3119df9d7b7f9811b85ab9d6f67978239c6b6f9f4a72656b9537bf3692bf7b4bf316176357c07b671eb562d4e621c75522669e4c60da21299b17edf58e3ad4352c5d6148e87612ce9e7d886084eb110c57372a3be2be7a3b5a6c68849df06a5cdbaeb6dedee53cf5e81c818de4f879fc063a68749d3258ec2cea461139e362165a63ef3c0f446f30409c8e5e57c0175e471694bb687f991a9f0c695fbd78766a5f5c1b5db45c84ac14c764549b54d8b34d4524bdc0015fc5d3538ccdddbfd96b8045fd6714a645d447dc83844ef8fc069f63b59587f53c3cb0047cfe63b4f6e04e613ac5194c9eeab2a5ef4d7bc56ee762f9e62f20ad19a9c437d2c93308ca411e8ad7facfa642636d5e89f93f5bdedeb78072d32db389bb6fc77be489506a98022e83c9aa9b7bf65c562eea8a95871e4bbe875535981466286175eed087e61fad34c9488fe953106aacb251c7fa044bafe474c2ec6d2cebd91687558c02778f4b562692349fabe32fb3a921f75a4ee6c33440ab76fb4f0bfb339e2f8c225bb85538cc43895f2fa6f8aaeee83c163fbaa778faf937035639a5367cc64c4c0360cf6a61b4f8557d402e85ebb245a43d9ff2c0bdda69879a0fccb003fa35f2b46c986c66386308fac63978534e5eccd137561a7cee0d83af328b9d636b55b8d67337636e15448ca7eda95a7df740e33c6cba56a9f34a95a7bc8f304702e2531609ee82e54b26579e3949d83c15f664a98445363d1fcb730dfc9c5571ba72f279a051fb98cf64c069b89acead1049449909f838f3fc712fe712d8b34303b3d594681306bf0d2f8ad43fb65991e341556da0326bbca5ced659ae462aca2a619abcc5a61a9a9f1cb8f882e1569c4adf76affd8c72ef4e84e630ffad9ec68d65b889890a667d25bad039c4846a77d17acb5e726b5718bd0e0b3918fc767216df8cc4b67cb29b49196b4dc288a3abcb112bba52f0cae6ffd9cfbd74d939b73ef7edf0afa6d8b345d3ee95749cb4373ca3f52f69ecd767893135e7dc4ba6d069c053b79ffadc69b6ce2596d9046c761c783f2a9d4626eee9df5543165958a447432d5237f399bb1b9a8923ca45522cfecc5be7d36f7f4f6ad9772a7b8609c9c8624db03e8a10c54adca2fd4c696d49a643db8abdc375a359c943d5a6ea803c6ad296ef83904f426f53b22ecf0455c843ad64753498e10145af16f70a92fe3056e96d229fd0ae3924f4dbffa093a9eb51025b31d268a74f44b849a4c408426071fe5e18c3ec8b5c4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 4ed7c92d83bd03b2a25b567f17ae55542e2f6a4308ec0f3fe69f8ba5ae24331b +public_key = 397f4d9a93d8ac6b70d1c87bffbd7775d56703a8dc9a563041deba17297b1f253afc339ddd1ea42ccbd51caf722854cbf45bb80cecaa81ab63cf3facfe953f9ac8648b95be866882216dbafcdedb59f7f944185a57f790352af0de6679338e69b954465f8cc028558328f3baeca98e434d429a7e9d205cb17c745a7784b97c19e30e26376778a9330c99ed94f88ec3955d04d86d0c9f5847af05bc58353ce364f34b0213a3cd05b2d8aed8af038e457a30bb66f6b1dc404605678ac675201c537a8a6ad67a8e3e1be7a0e8632dae714dd341832bf79069ec1f39c530288dc8448527fa542d74e92f4d7f2304747ca7cad98986c5a6f2b2e63e0774f0916635a538871aba5469f36a5536356d17626529efc25da4dc7349f07c932c053ef4b6bd245448bb8e73ca0896e61d92e06537d2157b0c26f4d4af9eb1dd55d49ad38c858e54ded45c49fd6f59408effbb19b35a87737ef90b9fdcc380af7aeea22f838c673e3905d3a099d8ac43f76c4f97c81fb3c764ec7806c71dc76e939ec89cfac3a56c9c9495fec4a47bf674f349b95f69c43005fbc9281e3288caa2cde6e75b2a627159d27e3688b436c336c5ec8539cec3c5537de5ca6955543f984c740d5181f9e6327f62bd638e249cc929ed48a30d45907b79c54ecfecfdb9106c8847c8d88b4c41fe6b7356d7947ae9a954a3d5c9278e6e3a39060854b88b65cfaaf0277fe8864c94377a475c18f2d454ad8fc4fc51ae3f1be65dce27f8388a8d4b8eb373ae486a86b0e7deabd445559dd3b827b834e2ab3745cdc5abd5ebcb7551cc888de7f590ef88dd7cc9422593d732f47b6ab477736e944cbb3e6d943eac8f7da40a7b00d8960ebe810e0f8529449dde1cd0eacbaa322ce4249b7113ba43968b79070b9117dbab36b44f061ffbf25a9ec77c7a3974e5c8ff4ce5e364b0aae6308472e1d49ce92a41d3b868e4664e93279467745b9e04c39bd67cf12f6d1a9ee0e6235a3a35af970a73a357f028eec7368c867d23cbc1895791ff47908d7b7575e6acc4c7dae3a351ff6a0353930f5cf3c3d982fcade76bd7de0e6b739fb67aaeaf4d11ffac30685c2d86d6fd6bce5df369a1de76ff3fb0e0e8cbf583b0e30e916774dfa64cf3d82f325954e153bdc79dabf0137f5b6ebcd8ba8438cc9d309123abe5a8db6ce6889d6b7d1c756aa7b9d182ae422f5a6f804bee772891a61ca657175f7c8e5cb3549d3ef6e3dfcdd1c7caf0083db2771b5743e8dee48683da5de5ad8ff1671a3a711468f8b3be5ecbc1b08f4dfbbacf87a7f874e847b3a9f80eb649304a3687f43dfd769e13a496499fb5e635c0a32e627343eda5c5b18fcdb406bbe163e4e79af5aac5fc8273296e2433c8fd993f944dc5d375d70cc7f715188b52dcd426146c54a3687f6a57f37bdb1dd639c505bef4d7efadc68d630d9bc7bf7b3817660d03f0abdd6e86c9eaad35fb8056e200168290848f974de0511763f96e4f202a3a0578d831b8bde87ae8dd89f48d46c14483dbc7b4757ac95f34cafcf0436bda09cf5b9f85e7d9f4f3c5e46963d0c33cc6d93cf80f08ef72b549694aa7aedb46afd394a2d5826e657897fc532869d5406430c2b7786e64ba452f5985f95146947535aae744a3b3707467701a8bbd99b938f2fc7737f22bcb9f146983a07f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 060ea5d2ed1dd88144a9885e79278590821c22917b55a48920f96b53ebe0e689 +public_key = be19be36c8ccda4c9852a442d42599066f8088cf32f28871b065e2dddfb769179ad09a931335fdca243d73b387b279a1cb1e51feaf781ab7757d2ca5c74d52c854dbdd93acb525f203987bd5a693453957514f42b3f8667d3c800e9a96947fa140ede4716adbff4af4c803eb69d3f9a1d3def37ca29903ce0943982413b0ba694ed53cb4170ef6151c8f0377d9ab2e74ec365a56e6d8a2b54ec81e83e2c4f58f7eadc09c81fe15d65cefbd972979effd93cead3bbc8fb6ef4e80732ce8fa997195d4917476427d8cd7d99b663c4b50a9cbccb3c364df354685273b8c4fb9e118a427c765b18d36350a330be79b3e04e81b953faee56f719483717854b29aa3385545d3c9cd72bda070baf734f8327c095aff6b342584a57047eee7ca3f6a3afbbdb6dc4e3aa264078b6c9bb20688ef229b9a5dcfbba0c8933e0eb469b4c687f5a174a5e3bfa3401dfe443fcd558c89c58cb795e3686640f635052dbed4b839ebd8e06f07d53107c591cdbfb753c0aa33d5e5afdd1f639c3ee4d0a2836d3b638051b58ea968d390ab57de7e384227d9759b89aac4f79c5a9768cabfc44ca6a3fecf5c039e2b0563a9048932fe565d164c13ab60e4d9fac843451cb75662dad3c47a652445b7ef0b8e632e87397d59a614cb08796d3475813315d161743677594d52edff290b3cd8ff3d4ccaea64377baa46d82249ad896990d79aa040a7858f1b3dfcb43adf14df1b245d217bfe245fde0ba6e3e9db6c7545d63d15d79c739f70759f7efdf91537aaf5d6b3f4c6f91c147855ea9a79ecb0ae8d71462d97111e365dca81ab5bc0d9e7dade36a125bbf295858b7947dfe21932504b9d583c787cff876234ea279663baa450172651f126bb20b85349b6344ae4d4e3093369569149afa8cb7b7e08e68fda44d8349b4762ae71b1cfc85b47f27cfa3d7c16a3960f98c20d95550f919d14a71e8bf31e6dac11f8ea475e5cf3ff5fdf5d7c0df59b362e87b07d59f47fd026c8446a7edd0098895a3330f7638082d5b5a925afca637a1d26decd2c83fd6ffa3b04d691fa5ecfbaa0a4be859fc58b1d157c18c7ed540b6aa3a8e79bd65dc00866275cb0473964ffe5a8c638bf583d4d33ef4007b3c61429881cdbea0403566bf3c46d9ae9e95faac6f58d4af3ff45cc7b105e81f18675920680c3cdba8fdf83fe0fdd383bc08ccb7d46eb85215ef6be034374769caf39ae6349f4bc8ba6b7b89db07fac4a86bf870d8c020ae0b18a5de6f8952eeaf5260bee994b4165149ed11b578359a7baddbdd7257a2e0db676268a395f8fe44e40ec4d8ed5c9e6c0c43d79bcf9b094670244ecd8dfdee24ce6a7bfcfd109e1797fb8965952a9a45e0e435c56695c819b71b9a6b6796553272cd29d06cdb13d8112a89ab4c7e4566a4b19dd3c19eff3fb74f7c7c3e44e64874c26a8cb4e8cd7fe4e4cfcfa050f698baeaf6ef632658d6e4c4fad3dfaf98b4d4c1fcf60945e66428d68edc7eabfdfe040f9b3eff4389358b7ccf7d461ec8c0ae8873a45504e8688e26678752e3436a9d89fd3ef84ec95aa0ff74eb3cedb8ef61ca791d15fa43808ba1f57d6718ae0fc4ac21c6f5fd324cd86ab8b3ecf54db3ebac009e16038f58adca5f754b309a6c7dd30e11b8701ef37e8715f03c0d8a32e9fa39d37e7637ba00940 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 10ef9426f8c4a13b52325c5bb4ead4596ecf2c6b5bd2d37d8350e90d4164fdd9 +public_key = 8afa99db2599004da53fbef6e94c903605aee44b3d56abab69438320d9e918abbb1fafb6953753e475bc34ce59c69dbed80760731565279c640d46ede46aae79dda838aefc66c5a348cd946f6943866750c6bceeef7e3cb8636e544bff8a08857d5383423360349e417a23c88c7dd3247adc8ff39edfc7ab8769f07dcb7c1e9f3ad99ec31ef564e5f53c0447a25728c9353d3bec26875c44a26aa36e0324ca6423855cffca05ef7cb804f429a3a0e28a7285658fe1748a58c538ddc7e0c6d7839b573b30a5c4486a448ecdbab8cd7b86279058578d4a56c78185fe8bbf70914534c529f3a7ddc2269673136959883e4975dc7c7b2de57803f7d03ad86513b2608a8b58ea5a64ffc6a1cbbdc847c312f5a230ace749c349101a42767d73225bdaca598a6b7fcb309ad10d3f7afac94798f8b4c7bef79389c12d1c3016cdfe37a95705d3b2b8277c2c24ebc8148c94244ec5d5de6589dfd7ed842185a5f2bcee73bfed4d75fa641dec650b6c8d06cd7599f3d42479cba96d7eb396803c77be54c831063707a35067b87b2876a1a0844d12eea895db70d5968720de434798771b487aed66fee2dd41c075d5797fd51678e2fb7e84257d8a207cb4a7cf5ee78b8b85e869bc8fa89f647a813b97dc1abfb22b430d37adcb43b7bb26e6dae73b0e6d6940e5af7d139f73b48b4618bfd6dff274d3a27d3de95794344eac73baad9de5cc4e5aaf853b5efeee7d62dbde6b0e1aaeef93f21d34b3225868da033822248e5f4da693dfdae4dbe12b9c4f9e373d6dc3393f385b5f65c7f14b66d8ddb31dd7902af39812d76d5ce73ebfa4c393bd69be694bbfcc7b9c18f5d158b431898c9cd9d80d73f196378049a5a02b43cf83d37e4a83e506ff300976e070038917a93c463dd4a90f3b1da44b4e5cc53adcaea033c8759a3bb4bb52771e91d76c95599a9dc3bff92bf37aa48d32797f6b670f33e9b476748a31f9fb9f2d93b59b9cab33356782a976e06bd83726f6227834a0be4b806a7cd3f5fc1a6a6f603468c4c4f0cd544bfb9e6d158af1d16ce945c3ef7d6f85c315f9ddf735350c92c546ca776cb4446dcd63fd5620f8b23b94a0a83df7102ffb102f31615db7cf76f3cc0658a9146861785c03fc4e0833c3565ca4ebc951f5145e2e434555d45c3819ccc5cf546673c18e7daf4afdaeaceb83041556d52754c11bed66b9c0519985eabdaed569d74743c8796881e6ae89a57d7b8933d97669b2daae62dcda33c3c8f5e004aa21be749fbe98299476bf45a519d341e9c5d7b1f4e1bd5382a6a84b6dc9c1bb437e98546074076ea76654ca75e9f7b7ed1f39c5329be6a6be82bed6b57bed58c43de554e6e2638f74bff577561ffb7e653dbb56e958ca3ef0bee7b67f99245a9917158f2409384a8bf34ab390153bd1d1383aad99747258c61cdf4f7c1fa0332c6d7b5ace324b4e1dd9b3f8574b1748fbf397e55f0abaf4fc8830b7774275821f9ea939da83cace89ec08774c739fff14ed40e5e2b27ec2d0ec7e404349bf5a64a876aab07fc9c17ad04578842bfbb6ff32edebdb6ffc8a6de429ca0d7aa5017ebc8d68c23c379364e56e4bcf47a9a5f3f8e9db3de4b049c5f6f8a6e621b98dc534b9a756aa9c4a1b2b4c7726e701ba03d885a39d59a76d92bba31013f2a4714ea384 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a4bd30a64cbf29a4e290fa1cc1dfb99e68348713041e4409a1af23c5d80c15c4 +public_key = a7c9ccf796828c7d4efcbe94d5d895cfcd82f5dccb78b59a6119deada66093c84267079597c9881d0bfda8fa4cee6682c4375eee25a08ccd766eead5beebfcabf734c42439881efa44e86cc013b7e555bd15d45306479a78ea7d4fd7723d4bd7496d914e24395b264d35e578680df39a1fc6ae0f38587355b45ce55bf7b5e5c872affbe36bbc32b1a950b42fff3a5b71d9ce40941beee62a5543f3b61719896499721f5466f7b57b119568ca6da3796bbf2c8877cf8a762d6a88536e9abcfb85ec7c6e7975f31159db0306ecb19af3fb2ddfef7da0fc693164bf8ebd75d57743f4404341e6c79b067ff07fded77cbb64053a4447866efb1894a6a544dbff83474c6e0e99323fa6fb5cf466774daf846ed59ac4fe0925431d864339258752a3b08ae5ff9865f0a1247af44366f3377d5875589ea9a8e38455a3bb5ffc39d83664cda47988f5fdc5972f454b8ed9a78ffa787d3b0a69a4db2ac154d53a6be6d603e9be795bdb1b0b88da57a6490fac781e34b1a4776d07703db8746f7ed331ec3ad49f6892cd5b4b738d3564b79b69f87174696e1e9717d3650abbd49c5de466467ec46fe02ce597f6e867726543067acf511975828799fa2dbf13ace76fea838144797e79441b0fe9dacfc0f15a350e08fe588b45b87afc5846423adef1ed2a7651df841fcfedd6547bd33cde4d654a3823c40526d9ed59f20c2651deb6b0e56ad0d36ecaebfa9c17e8fd5f23a111c391d07cd4422dfc2745875d79d5af2e412c3ce4af5ec5609c58738f8ca9dd9239c8fabe7df005cc66ddeab736db3cc0e946d633f177e6c012a8672be6fd0b4f53dbb5a908d4f3425d3b76e4f8a0c38f7e978d50df532d075c08d9cb3a54d018c3f3dc3ac28bf8875f5ef745a6fe513cde0f8eb4919a813766bb020c831dedc3eea5a496e57e8d598d3bb34733b6358cda44b1a6de899dce525578d21df57ed8a917bdffa2d8b59478966835c0603a8f497e5ab2544d0fc487a7eba7a96a6e3918b9c9cac54c94ec2899cea14efb40f9bd93eb7d392a4cb899e44d2f4a23244067a9712ed9cf53ae5edc35895c8ce2192f468716704e46e7ccd59aef05e30524495d44ae3019adf8df5bd797eb2a98a17ab6c68c789175af8a4863ad6946ffc5a8faa68b3c0cf35fd2d63d064556e55b6df0d636dc5ca56b9f8f19d6e816349c6339c59febb2b8675807a6a9181a91620a684dba5c4c596a821b66014851966547d60690f7b8d5bccc4bfa7fdc188495795c3dad55c8e85f9fedd9fee329fa68bb92515fdf70fd4f939c82c854f350e4df9e5e8c10c53ed5c3539e373d0f955d3d55ee7873a22bffaa88cd8106cd44613334e6b585aa864796eda6af988affb2b2eae653be5c76383b66f62d5e1effb557b66b0f9b7063e3d3961dad13a9b5ae6bbae433808dc7f7537e917d75524fcff0330fc1f0b4c9afc4d2f5798215cf8668df8727f89b95e3f94cf38c129a792b26e61e6b9ecb6dc18ee8d2c83ff5d585c7f69d59dfd74944f764036cd73119395478651f88352d2d4f8a3ffbfff7c8bedcbb6cee728ef74e54435b41cff2770eea9ef34673ebc70047956a543f3d8569f334a5fc2fb4c2bc34aa9a4b28bee795a730eb96003ed4662f2f0344da2b88e634672fe48e40ec83f4ae731342e77cdf4a3a +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f4b66a7d3b65b896dfe100b2cad24b175a1168cfd2ae11fd704b835f6bcd311a +public_key = b854a0daebc2831a4f20695579c5fd3369af228842777ad3c4e3f84d763d1f663000a3d377dc86ab14486673a349e8d73ff6ba44496c64467d5f63ef5203a074ac7ce919de5afec309dfc756aedaf23fab81c5dad6d6c2c77e6190696ae6b5e43306e285a43cb2df3708e8f86d066b61a6b7faee3f8248c232d831605dd53fcadd7ffbb4cf6d4108a9f00a8a5e51cced849fcd5604f0bae85f36cee0933a931084444036aab89dcc09b84b7a235f34763b9ab5c9b546f0f627778c76ec4c45b36ebb3a4565795666f27fecf80c3f7ee2f96c16e7bbbde89e919d318787b2abba7727a393cecd4dc49fd5e3c86ed5e5f91b1e49ef2d4b2476eab2dae6c2cda35d3cca0d7c57f5fde98534fc3b43869da9e4312678711bd39be4c2b775cca014b1d936ca853fa4614c4e67b69620fb49cbc787599c4bffdc3a2c786ba876864e7a5be33ab200ccfd087c3e6cc642f4a96771caf12788d46b68f3085c4069cfd9c54a5bd4153e4d986ed46efd09e4dc38cea2e57495e0a594f453dfdb1c88c4fb677c0d7d8804ca115cd991c9db524d761d5932560fa1f0476e962adc2b2ca78b8fc8b568ed98eaf6df7e7f85ce40ffdda0032eba71c34821374ad7c565ed2dcefc949e99de81980fa4d38597c1db9239c9e67dfc8651498927cbde171ce51e98e577f58963593d3bfdd870b8bb9fa3b77c468e8bd365deed88f25cf577c5aae3ff4aee1552e458f352674d1d96b9098d336ed44f6c0dd8b5eb67c53ae0910a9a3fd8fab8e5daee17b668af7b4e0e4162fea60d3d84a265f4693364ac1876cbbdc93d0ea154bd3486e75c3b0e72906f5f9a7a6a99e78ea9b77b0159dab49c6dad9ca5852f9a8a99deffe47ce079fab0be7a3ebfb856bde6675e4e8b9dda48cdcbfb4872c8c8a4d4bc52c8db43d3f7360d568f509d5ada2565a49490202f9ed51bad9106bba6dc4fa7ac59a3a5a64d033be1e47c37cfcc9ebeda2cefd0b78ec2caac5cb1fbd3f36455241367d41de9abdddaff4efc5323cbb4575e272cd1f09c6eac03ce200fbcc4186768493f6cf97671e7a02dc6d47557306bb8ce086382bbab831256d663ecebfe0eb2411b3c498356916f7f133935c283d8be6b5d09844f4785f3522cfb1cbec92b6b3c47dfdcfa8fe7683a3f2e46b01525e1c7c9c4bf96f0d57d6ffaec98e524360986386a7b5c20d3e2c5c6f37cde7271bc6c157ef4d2adf05f468dfc0dbae093e8351ceaa6aeda07a67bf13a99a52a39b3bd4fa66e43c1def90c5c412dee647bb8f42c95ec8bea960c9c4879b83037886ae78be0e91f6dd3b633a33a662076cea326765e6f62619b8d0c8c321743545017ddbbd6740405f65b6557277e78ed99cd4257768f7f8f3069bc29f8484b1f7d84098ff53f594647e384463c4ff489cd8b6eefddc5e3f9fb1b988c41b3edf81d47cf78ab1ef9adac3aeba42fe6735d5ec78bd6216e7598f84d1fc7b00fdc65e7ab72274c86a424746dc74f5324fbe74f3546edfd581933bcafd58573f79f6ffad95d7f4326699bf4831a7d77574d887e875e1dff9a09843211af3976a4eaf397a3c6c5605bfe33baa4e2623f311224388f44d449bef52c5bc0197b4699aab73b4f37d51fd4a57ed3bd605bc698111ddc3d6bc04804722c35600b001c554180d16628713bdea10cdf +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1d7b03d3c5eefb8ae5799dc569aa668f1bcb8c86607b089d3530cf61d6380147 +public_key = aedecb3358ed37e546d75b5398198a831f6a7e3d6a26d7e24528d75ee6701d1ca69d16a8681e55830ffb7c48fbab3acb5df5dc35ce3a5378b2b24e5b5538987a77681597ababaadb5bfc7bbd19550064489be9b897a54fd12c722afdaf5313429fc85f1936b5a325aea965d21a969ae289657ba4ce7393477afab3ec0b6e46bb7a867db2dd4372d51537cec3d23e477a36ccfb784444d007ed3165395af7ef99afeed26dbe84ed572487691a53e2845fb3d83bf23c67b33e8f77b05c6c0724e8799583e2b87c9c2a81bb2a7658d67e637b99d587de04b592bd5961f0d7f6d0058b31086ab2df3f4e3ddbbe6b418fd53a023eaaa50cd48007e01d9dcd1dd5bfb3839c000f3375f4991a2e4e756856042bb10f1f52a11d8c1dc39a1f69bbc33da4e9c93a87a87899faaa210a781d9ebdfec9a5918dae642aadfcffdf9ed6d0a3bf97c3394a751354b6e8ac65ea45d3b66c583f8249034738faf541476ab1ff717a4d930c8551314851be98351d96acf633fe1a6db97da3de404f4efd07d7c2eaff652796caf344b86ab38804e3853a5643a7932409b476d3c81c2a301e968dae28742d28f32e0adab91e77dc9ab33d8bfed5f7e1c157bbb123506fe35c523fbd04ea87e173a7d8ab5b2e35a7eeb58ab3f549de4df28dd5e97f778359b4b9b9b989b697839fccd13436d1621dbbe82ec1c8aced473f48887491f18e4c4bfcbfe7445144b88cb4ec535bb85a3016891c0d9dd4fad20e3799d56a7110fd97b79384556c5d7e7e7436bc9626dce5eb5d9fed2bbb75cf636e8cb4e0435283d7e59d8c9eb7feee5bf977a80994288e61671346b368372ab5612c85ad48db8a82067acaaa39bc1bef49083e71e8727adca1f3c7cfac09d8a71c3c73e6737bd5e795c9761b5c36c87b461424d0dd43874c55d0606c616e9dbd9d588905fab9b538c23a07b9fba6c06a9f59b6c8eacb2d71388848872d595535de3e7b5d4d549a8b73c0004fb88d3d5b7efa4178695abaecb97ba46db0ed90a82cd38ff373b13582665665b2058835c6f9f39f5eda9d82868e52433bc3bbf9d937c763d835638d4ff5e0c3485f9555d4ee556ffccb1b059dff8667ac445b475ae7f46da2dbd895049bf9fdddd3f3c46768668b88ccd053bc3821a95d5d49cf161d894f1739ca1e74311bdab2cb7836c4ebc44aad978ec0077e92d4a46c2fe6de2323b6fcdaa15a6581b467eb4cdcd9fae5b24d9be1f67aa629e79652388ce04b9ceec5d29f8d341ab6abbfe38b2584b55108a21ac64d61636ddc2d94cbb9ec2c6d6cf4dfba09d4863ef9d0dedcfd595ad42b5a63c92f631533a14b6cccaa0775eb4fe0e3ebb22137a74acffc1fcef9c97f578feca153c3e2eff6f3858379395f485fc53952e4a513e64b8ac7b6034e944e7d424665ed347fab9f6dbd851e729cab31ec9d8c5348c34db74f3cb6d384e93c91479a52c3f1f8544dc146f0f26c9fd324784a294197d993565eccfbcb93faffba8fda993a3598a5d37c364690251f9c8f4ad81c9b3a681ad2ec55db0b8d5da455c5f696bf4678eba908e06b469afabec0a0bfbdf628f42f449cd017308de8da9fa7a3a6baf5becb6f08bf41f007fc345664751b83b47af76ec74aa2569b79de21a5198e7f0c3bc2aa84e7f5c79f4cdea5b473ba2d344bf994fd32 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 554f3385b382f4a46314de37ee3885addfc5332bd4038785094e0a832e9e8c2c +public_key = a7b8e02efdc61577a7cd4b9a05be7ac567d8d8c6746289529337b9e267737d5345f4e768e0d6656dff3593a84eb0fcf90c8ba078eb9f8d1cc8ea28f80a8ecad0f46dd29c474fdc57cb5bc93f3e8537ca343cdd3ea6a7a467cdf1b3db77021a8e20b94907faf94f47baad599d51d74219e38f883b36cc3f3a3185f0997988342a7452c3aff56ffebef3d211444fe78854f9f853cd189be04cc1c90d607cb4acccb650ae546323e7993cffa203487becf8328a2979dfc5c3bd0cec47533a9b6f9e5fba5a2234bce8eb37d686a75bc33eeb945d80e9fc218548eff794ad7cdd825b57f7fe2f0ef6b8201bc0d10bd455fd51ec2af17aaadf0c77b1d6f76c1f25b01ff356fa49d079d3800f1468d745a0dc95fac24d307f8ddf97d557ec5fe64844b0b6d5a37cfebc41db5aba156359e9b4ad564918a4d9be58b8ad5ac89e348099ab9fff8ec71d54853eba7b42167d478693c39837f86e82e0c894e0f5ccf19643fbdbc5278b500d2bd7f1f6fee797930c0cc4a41832ad093b2856dc880d678bda847edc6bafa64ca29fd16f75366af8c331efd1c7ac4328bf326d8b57997734c09d9b10aec619155aab7bc5f50f607a9f6d056e9186c4334f48bdfaeca777f9ed0b0b7fc5be80e6ee9f026fc5d3146b5ac5ac820781209c455d195f17d541d79e6f56838f7be838ad0f93cdb63f295f9df3fc7d54475062c9dd3034c2584bd0ca5fe0308fb9554ce12099eb77e6eb8c86ba21b4a78f87fc4049869b56442d33c642a5c0ad1677488d7d607ed5cddfeaf9ed6c8513ea2a73ada9d594540e7f131b55c2fde76fef9b021b79346d6c5435d78b7b49cfa99f25cfe818e78a0e856747e4a7888a3d1313624a08ed75eca6c3c43238cbd78b94c2a9c57f0c4c66ec5b59ab93b73b2dd0630aaa28a794164fdbcc8a96195934cafe4d5dd4ecb71ce104a63f60af9953495ac07eb9359563f16c7bd6bc319ed78990eddcb68d90302e96b463e1962cc17a9a9f002a916d9bbc1a55fbd3e6a48dad5e50ab35be8f8cfe66b483e96ca1e9e7001b46374c41c3dd79fde8f57bc339a7ee3a80afc0958d56f6553804eedfcafec87735f30ba3713913e9403dda995ea78c6e534b5a949d24dc9b457ec66769c6544d7afd850c4cc8e4b78eae1bf60dfc9cf0848e4e09cf52047d62bb8e7f6f31f4ba4985abededbca0d893fbd23789c6fbc40e6e485e5a951de6863aed7e624a72395b9e25c6d3acb330a37b998b7a9ab3f973004ce5624c6abce840500cd2679f4a3987d8c133d8c588e05c1457de7cb41de6d9c0c3333be5b9c3b93e2776aa0ab3a4054c98789a4bf419bcb6eb914d2e79bbfdfb463be126a3a2894db9e727d619dfde8527993623cd0c776e54f8b4eb237b4f9cd760bfe7601ebe87efbdf3b9b9dff89b7544e3473de16e0ac025f6707c0db5c743aae154f41b935ba628f7909b591b44cb6f46e07e08eb214c6aa5b9b3e1f441c774cb720f310d4d31e0e4a213a8c1f1593907ad424d657cda8ce0c1354b0d5a83d2cb9d0417d73fa77abe58d854c953eedc6cb06c75695665b92873552cc053a9bba0c99aafa7d753299db45f8276b56feb8a5bbf373d14dfdc302fae07e9542206b296f3b101d07a3bd1517d9eb8db21e1f18e6da63acfce1e0dc597cef3abfc7d0aea99da +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 38bf0033b779edf5367d9ebc01c988af90904c560970815837380650e4749eea +public_key = e078c4a3954f41af69719fbbe456df27c4ce688662848f606f395b56dea29939a2f754a0b82968d3c865f40d66c6ffee3e2839416570f5b54f24d347e3fed16967ea3935307a59e8b5d68ddfea58a90382e81de29127f9238a4919a753135ff289a5f15fcc96ce9ce970faa902f79c7b8fd7a946e3df0d66c384786f69e3b34d40e6b4b48b6b679e5538f953540c25c1850fbe1c58762fe8bcee7aee58d93b21165f95895afefba1f735b11fb7bbfcc4dd3d54ba24ca7ef507973aab9017b66a3e37ef980462762e37d9bbdd1947f26129bf48f68b711df1b2fabe81573e490ce8819bbe46858b5c58b4ca7c83a57398a667b09c78eb990b648e96ce79c7f105be3e987eeee95f8c9f64c376fbd4925ba46d3c8ab859304dee7b9435309736d45eee7d8a7cae32aa9c81eeaa4058cff9ade0e0fffdaf1ad02b9d5f945accd209f35739aff1863006b46f9ecba5243bc48feee84bb9a57bef6c8ceae47cacbb4a13e112279dbf7f7fa6c467ead943269ab1e3c9657c19ba0b648c9d4a48c6163a0a79954c0c7ec645f9cb8a65c95ec3994dbb1a7c584114d16f16b43eae79189343c3276bfeb5839d76f2e684b4225f6d6a5e7ad57b67494bca6db58cf6c9526627dddd9455a6867de15fadc99d9790659fa0ecda1e1ee488be6a1e08bc83cffaa9444f123632ec889719e754993ac8319a72ee83a989afc77d28acd4bb5ebc486c34bdaf1d67a84a349480fbb2b1bf52e8749401d8488d05f456a75ba2883090dcb75755ec9956888b4380653ebf9ed956e358d6ba0ce6fdbecf2b45729efae2a668dc6d1c366a86e880dfdfae7657f66d973838abab6edfad13c59c5baf4783e88859809d1bcdba937845759c9a04ded3fe4bd7dc48028a77004f65f32d4fb4bdb9f595d61616ca4fd4d5a0c8533c344334f5e1053a548ee86998f9d94863b8beddfaaf6bbc916481ac9337acbac10e9d794fcf39268aa376157b1955379e3dc2cb59f7a8077cba969ac398bc862e450efcc7e1cc617e69a670de6b772af498de4e35b6e919ece29844379b3e4821c333a2f444375ea4d0ff34a3dcabae3f610f5b54d148d65d8a5a81fc5068d5d60b0ef6265cbc42c580f47b9fbdb7fa8943f9999958b026c5661ba116346ccd86633e0a603b48c8acab78672e62aa0eed4349c5235a5ac46546b17bf5e355b4408456f7339122b67bb48334847fe4e53e955e979244c8c7864ba189fbf4c818c15417cac84682f719c9bdd8479be5c643d937605383c6a9514118498d5b4e81d5b74a063fb53cc19b2da9d0af6e479339b988c40918c192435db1a3b2a7d6d46376b97aca7a9bbb30336ade90df37f8833e89f4ea1c67b8aaabdd539486b1855b9fbb53b61d3ab3de9606165acaa588bade4a4e6a78249ddd8a9334ff7456e75aabb824d8b89ec9c6bc3b5829c1ab34ee8e4edbb8be5a5b34e23a2c691ffeb5de8d640a7b94892aa1ad83d0797a3de52a66c79442633d640c3d3e72fdb93654708be8ef707bdf71757c08fcc5925f5bb6c9a57777bf1beadd81b4922a56586e2eb04dbaf685ee4ee9cdcd5438f4206bfbac4ce233ffbd381d9d622af5cf67d573465a706583da17c39ff3ad148f6b6d5988158a1602a361d7a2f86a9219450ff713e184c0f6ea4146b79b03e5ee3454a79f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 048ea516d0ebbd9f709b47eaac66f344c571cf50f0d01c9466aa061a50b66a24 +public_key = a4163313f3cf10a65afcee4a738352fe2db19328f77599d5dd3fc20cf8adf7cd81009ca397ff70b23a5f271e7863ae3cb00b65f6af850f8f52063f55b833f626b5bdcfe44e96cdb7b6bd9802165b542de22a434c5466e36cb3a77c3c7c23fc61271550cf25e22fea61270daa722c8646a6760fee8ad70f8850fa36b92e56c0a4f9fa188db2ec3dc229a790afe12b4357d378eaeb19779f1785195b65469c6d3a06e0f063562817c4598ff5a10c8e9fd56c4353711f287469b87cb533b99df46bfbca625c56d1aa86459b27778d8fd0f7befac8e8bc088f31a37c87400a7429c476ddf7516fa4b7e27841abacceb4cf4e92158eb168cd3dfc48aeed61b3ddfc34bfa33b59ac45a77a439371f3683aeb7ae8b107bc34e7785f4e46b3f668d9565cb33af3bea6af6daaae79b39a907f5e62fe355c6965d0cadcf8eaf2adee89d0dd652213501b3b5f7a1d61cb9f9e30dd57f357bfab4d47c28577d31d5be26e6044a6383ff9a087f4754926338e486cc3e76511c7946b0f893d058f720dc98cfdaf514a47a773de6e2564b5459d3c5fbac6884fc32c7961a34df387ab86cd7965786d6bb731af75742147304a5cac936797ba658fdb88c1939c785669e4debd3350af91fb3e82e31a36d7ce59ac637a0d3a37098569a009911f54b13efc46e403ba4cfdbf59499cac06c848754903a7b8a1b7549a13b2de6afcb106a21a3a58d1e7eba317d0d84f43b113d258294ee13fd37ff9c7e85fcf0fd6df582b6310d4637309ccaa3940e76e7b73cdb02189f4febb6f971a56a989f12a55f797bfe7909547598330557a930926efbf7c59004d7b3a88a2c3066534153d99ac87dc69e8401b860c1b4d5e763440389291dfb656c97cb9784b201a90553acceadadf23be7852f391dee7d94235d53f88b6578678f188d67ac944f1fb6c2e99abd946953a49b059babeaf5f740805f18453f3d9496e51e88f0899857a07b8bf8586ac7a8d13579ca944e61e1dc08e3b400f084cbe9c6f22ef9523d4ebad2e87b757df752b55addc6251cd8338bac7fd0879631df38a9d41586e91b60fc7371e5e65977de34c740c75a5c5f54ae40ad8a2943a7f5a3b8018461445c3ce93857978db68fab41fafbb26f4deeb13ac84fc3a38b78dd76e865594f6cf59a1dd4958427bbcbcce3037c577b1ed551238a67f596cd1af627975f16bf733fe88718d64725ffa4b6e83d77a37a4595e59c887b2a205d87d1b457c16e02cdab7a0e5752263cacf89e4ddf836b1eea95ac4b941388bf7c5bd6206e7737ed0f458d01e1c6e420dbbba2fb265a4fbcf37966a5b61ba4957de0fc4854e3084985d5c2fb37964b5f67ce1b28cf5af757f08cb8ba3c3e15a6839483454239bb9d1aeb6b1bcbba516dc3ae47fd04761089e9281b5d8e16d6b4ac5eae13bd867dfeca994817b97f44ae55223cd807c0f581856936fcdca26ed8c7f6d4e1f13799157d2aaffd9d7796ca44879a363cce72add995dc8ae8596e9c7e57b8ed5270fcdbf2cfba113341fb8b6130ee5a82c6bb106c7046d3edd08dfd634be616884baffbb281f40ab58e26b4dcf7c0958e0c5bb4f83e85cc4edca64f8898fdf8fa3da66a66bb9c79acda38a22249f534da5db0067a23151a6f02abac2477574d9b5d49ed6c25fc46576ca327d614492eebb +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 686c921c9db1263e78ae753b1c9c2e7936b8229dca48c0942c56c6bca4f10917 +public_key = 26bfce04f3eb6f647abde39d7b1cb988c37f2bcfe9c67839064481c2539f7c947a5187a85006eca075a002e4621eccf90855c9e768e8e3a99da9f5d522976372fade6f3def8cf3c49e4a86c503c38ab764b2f45bfd27e8f6b5c0d2e66181045be3afa8a2fedbecb8a6bae956a04f654187a9dabf4c8214abf943d63526804d0998b89c884c1d55a56cae82557455f3a47c677e8e36ffe9569aca0c5b1c0cbbf768302099a4cf3960f9d432a0865032efb65ddaa43f0daae05aa3926ff5617ed21669b8f2ba6bb41d45e7e539840d95216a846aa39d5b16bf6aee52ab2f7c61287138efb29d3931c73ee510ea33326bfece2da1bbab9d30a7ad9bf83e3058520606641edf3b092831d3adf25435e3070c8626b4f386d8e77c7bc1ffe5754ef5b3a2d4ef92fe463b8bd68816b058eaf87b4ac2ae9fe91d16e630337d297ad8a12d30175af19c143224b4b1aa23f4ffbf3e7e5fccdc75792944febdddfc9a18dab00ef863894929ae6c1f7830d7dcb2ebd77837d970121ded83f3512f9578efac3ce2cda17eae3b375c44ac8c32e616aef48339c19a4f37acf16feb9673dfdd7836ffa99887f933f4bf6675035e7cd42b340c5eac0d0c71c2ca5d357554efdd4c1206baee66707c1dbf52b4f4fc7567cb0f3b606ade160aba5be5aff753983b19938215e88fb87a867b6cea68e12a43f3c2fcf3a93aec16b48f8cc7bc55c5b18a33b6768dcd9393f75e7b53d053aed304f01a74859f3536a4cd7832d4b64d6a9bd69ec4a2adec4659defd73c9aafce4675f8bfeadaf55fb7a28f4af2c43fde90f4f87567e1ef87dc03d61ad29490c658b8367b0ba1eba3c3c91e58e89c8cbecf4bff9146cb537958bc1c4f7ade6f348cadb557e8753acb2ec4ad783c58c8b7be02368da3417cc08745feb9b3f19397fda19d02dcde9bf3da8d388ec936847d5c7c5a8e9a7b5d8c18bc5877ed4a8d787a7b12ad46454dda596a42513d8398aa9cd58fe0f685703058987b63e21c530b3b5367654bc30b86fe7fd645f3f8714fbcc0f666bb8fbf8d727933906f3cb89b813d7fdcf5944ecf68e4cf4f2744abe3036eed4fef7118cbdc2eff4e538b48d54e359d673470978bd4b5913b6cf557760389b3f6a9e344d4b622c7a332239a50626ce553a6e0677bdeea96a3efa72931b6922af3be5cbbaa06ee66bf8da542b5f341866f89ff5d50a608e95bdbb0dfb599b7a254e53806ef4b0e5e50a19a7de9ac2de2460b80884512c970e7c700baf59982bbda59773c415844b37fdc468d7f9d641c9443717d6ebf9fa9201568868655e0f89e910c5d77cb77a93f4db863eef9963d14d953fd3f8780189840af9ae60eaefc6c48d19d88dfc689a852ec28f569bfd5e84ed6a66a61fd2bcc5e4263dfb6438e87f0c7a93dfad1e7a35d3bc7f7d7664cfe9765e2e7f766a3c078e49964b7c9bdb328a88f1a9646ad53a8bdfdf912c3c714ed8e190c966c703a5b9b6bc74c89e2e0635d614624c5371efd4d99d0d576d05aa565fb862455fd14641e1f8df4b468cfca6cc38ed3207a6e7c6cc3c7cc68bc8fbb3329c9e29cecaa91ecd6b8bcde9ab6ddfcc98f9534f3d7aaff2b5d8b3237070c39e22b43a425bfaf4ea59caafdd24d6cda3885cad8cbc7a2e3b82554fefde1a383c558139f9e1808c824829ab0e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 2387772e50059cabda53cb93ba24b19ae529496c03b36584169451525c4a0e7e +public_key = d9f945a75e693bcbb0c7a385939ef9f014f640ae6bf09fae400780966a8ae885de574947cf6a607fa4b3d35fc77cd9925ff3a89e86f378ebabe4d4e3b05fcf979d68d86acb44683222f93bc50bc8f7058def77a3251e73222359d25c3a87d8e7472fe0c6e4c30d4a428bea8b2d459c4d9c71594c597fb9c3bd17598a0ada8329bdd16bec243fff0f49e8a0ad6319bbac7d6866ed7953a2c933b347923589d942e6e46b8e8edfd64227e78bb57e68709bc5e5adf91234929206a3fa2cfec935988874ed61897928fd440939f94449d95ecdf44a05c20f9678b69ca13268622d174a916af10b99d8329be62454c1c0c3c36b8acfe4cafc39fdf79bce5898f393f01468eb23a8db1567ede8b4946d8d3194b2f208ff91e739479c35a69f67a1c84fcc6aeac22f89b3e5845d0c8e9969bba61fe1ef7e6774fad3514c3b7359892bd4b8d9db4fd006af53a6e687e5b0d0fb9e16fcb3765beb037eb9814de9058d48cbbd4e611e9c8a24db401cc8c5f5770863b0674f9e71c8ac385e536dd3cbf4e775c7778c16afd849d4b1c1b6ca9ac63d3de47cda549ed009b4ee7759fdd66eb5555b1aadf2846671b1b8e9aa83fa23e6bbd286d5b10bf3b1aa71409bfe55bb651c1a676e13a8e9cba2b66bf46b6683ac2d820f04dfab949eb219851a8cfe1ccea4cb8bd6d05f6bff7beecb4b5ae5dd5dfec33dea5d4d2eaa4538dc9b9bb39b051ab7d2239ae0b98a34f5547497ecf9059e9bf463dda3895f3fc27a534737677e415f7313ec993144841bc756ea3ffd756c3c22e56ceaf336e107c3aeec9b1dd7e13137e392b4a4437ae4292aa0e24957534856e30ccff827cb3fdb31abad86298c59ac8ef78885308803591513870867a018f6ed2705b4832df40739ade4d7e0031dbbbcc5f4966a9123aac92ce7e1f5da3b5c6e4eefdbc39bb36cddf47ecb196840ac84a6d7f1f1fa2f032cd22844a64c4433f414a707a9f200b857ada964d17c6cee03e287cf48adbc83ca2a528738ac567c4c8afbaf8ba57b404f700dfb8c563b5e494c6679e69acae47a9cbe4c79396bfa2593d74ff4e29cabdd0991101496a048dac19b759dcdf20517aded8371ce74667dd8f7c124ea2347d9fc47bd5ea6664c0b6c228faa9a088df3d9fbb5f6d47c8bd3bd9c4347db41efecb80fbbac9076fc0d56b8f91b3f3b7b3417d592994771ec3695e94cc3ac73747f279984b7350ed9b9411fd1ed35b786fd629225af65bd5bb5c6d16eb5da8689c9ceaaa234748400db67efa5e4e7ba63c683b4f5f6b3586958700d58ba7b9c4bac500b0d34bce3b2bda7c5fd5c8ad37c6466a9b877278b7773ac7a8d922208dfef44e236053ad2ddc9596f796aa7d2fd977e8214f0d71ec66163c5cd6c5fdabab7ec96a51cbf43296e7e375367ef6e6ecdb46089c6604909d055033d53e8f8c7f8cd6eed82312fbabc05f2aaa6795ace88126e620e397b0a25682cbc805a96a84bb84a9a99acfc7de2e2ecc2e5cce518036e40dbc3347caba3a9e78cb9e2eb8367c96d70843e37d1bca5b5c3e86bdf3c2e76a4cc467d0a3ed2ba18e494bc7f963a9a6ae575d2c57a3847ebe6be64aeff9f3a3de4d125f2536bd1741f6bfc8f721e153e74049c1e170144484dddc2716b4c487aa0398ee9ccd2804df58fab8e2d32ac05bf22a8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 155c29c5f0378df0cd0e847a80a07143cf7522fcd880c9229eb9feb1ce340cd2 +public_key = 6a8d35eda89cff189f731ad5dabb325429756117f3181ed327e4f22de388a7e95d8e0d76675d61716fd9d59984540471fd7ed32904b13dbcf7d62da2b7cb653a68a46623316557500cf4bb707eac9b5ca17d453320fd6507d5732829af264e7defe7aca7364d9914e4493f8f57d94f1bff572f7468da3b9f2e53f064144f0396c1a8d95ce9a5e530a3b33b19fd6769db307944095c50c30762435b76a5dcb3af494a5c2effee2567664a376f3b30c42e720596313198f1df7ead63cdf27d9a91530a5ef2e6c2ec09f6fb95302598b722a991e989a1fd198836fb340fe44849dae44545a5a14b46f474d78529bb6dbcd9d148949f9ecb0d89e2f98ded84aa48ddacbc1abbda4eb63f9bb4e466fd3f1bf4b4285cab3f3e5acd8a3f79c465d1e3efb50670424bf78f14f443efb5797483f6afbd21e83248f3d39636d06e8ef4a334f81545b8c435639604e4a1fa67577c5d15c638b8df3199aa5343473dd5b45b6604ee451358f74b82a4ce8627b6dc095e3d35ee4e3f2a4b13d7332fe8d14f08e8077b7ee2db80aadddeb1da79c2193201996037efe4ee8bf38e8fafc2e3a226159ac15f40e6683ad00a55a016e90a279e1176f6b407e0e345594e2ea8d54b9017a76d6e2a61b9585bd5e378875ca26bcd71d7be546ee99d716cb8587b7a4e184c8119cb325d611389a8ca0bcd1ab6a7107942769cce09ddd175ae9305d438a7a475f3af9b29df30a016479f8aa8da34f73c25d94d4cde10a8a0f0d3344169b81cb5d8e6cb662a4ba28c8693baaf7bd46a35acccf7a6b7cf3039f064b4aef36bb29909af11d8924ee59af80b5872cfbdf0c53830a360688ab31a94cda4cefc106ece341bc0566ca6ad1cae54989aa3083707ea74680ac1fdbf54fe3866bc9c7fc43e89d304fa9a9ada985ba3fbe5efbaa45d26aa352eaa710826aab806d1ff8a9554c842657a3cd2d658905fd63eacd8e9955ab7f3ca032b440c7889595a34550f5853ba4071fecd09ecf6393bf657d5f6052373ead8dc920c58c4af4827456be174842ee7f2487c64374bf457836f13d4d65dd7b555f3914567cd884f6e1196bb04cd8c7a77c77d586f18e9603f45b1b9675bc62a4e720fe6c3e7d71729b0a8f9d69f35ab73e55948f9c3e766c4f25d394716b1998fe676495416e548429d8cf70e48a81d4a4e0de022bedfd05d8ae9438ba27ff91f5f45afca757ca88ed587d57f543921f670b36fa0022a4ea4044318a4b1af8a99cdac8e1e65db742e57e8ea9194a7df786665c827f99a89e4b5cdb3394a57aebe79be3d678984f1a0a4e0a34c658daabe636dd47cfe5b7608f7bd47ef0d5d4a2c09e16eca67816a4865c6da87d48ef4753f9023f6630bf7a50ad9c59394b687dab23d81ab3ddc79a6802ef8f6396cc9b3ea9cbfb482d70e95285f758cb7cd196d5a9336735faf322bd8fb7bca773cef7f17bb8726a8cfa917db9aa6a77cecdb6418ecbfbab45c53e4f855a95333ec6fc6e49bab90707b8723acff7d8ed3bbabf53228dbc2fe6670e9db7b77c6028c4d4b09f295ea54bffee50c25cc363c57f91fa0754c9bf66470ae9fde12133ebf44810b83e8d2a79e5eb98c17d4db0ffed17afeb5b697df27df7ebfb588f3a0d02e10a041ab4e3b97c35070f0da64f7e0e7076ae69b2ab51a956cfd04f8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a9cb9a61a3324b1ea5afe693b32784e2871096b2ca14a11acc9577c52359a241 +public_key = 4a8eb33aeea1378f87fc699e4e5dbab5ba45320968fb7cbfb358c92e25649445715a2fe1b61da5b044663ffc7deac3546a8aa060537bf47ff9bacb4c5e9e8726b5ae7dfaa45f153f339e40106a80b3c54eaf273384dc8e47f58e697fef3bf9d5aded9a76ec9839ac471fa4d4c196587cc95d90166a258df9abed802ae3cf6983355b43dbc9c6a4748a6130aa510daeafdb876ad0d7b2653c3c88079e14d7898ee482f34651b8af38f4fd7bdb4989740861d358384a4863c39b8912259bd786533878d1d255dcabb6bb80cf87c75bfcb24c5688b66f7a5fc289eaa5051b938fc833f343c27375fe4a1a6ee6c35c8d8e31ebb63c82d38046c4e3430ce0c77de68a3ec899088c92ebe71f75b1f79e577e09ce56435ab16dc8fc084068133cb67cbb0fd36a73d8a2130d623e03f5256b99b006d941ba9cdb5e5f62a9788823e8fda87c95664e4a5755c83df636a8e3dd9dc8d7ce8f48e6ec10e49a7e9449f95492f0e4ae14f6969b654fd39bbac79c7e0c5d7559e5e37e2e79b5abf1dd6d679dfeb455b94208d87515ddd8898a95747ca9b64de64743a6fafe878f7badff6a4b2023ca367944f288a399d5f648f834c39de4b009f2ef14e27ff4ac666e96c034c0db9a7e8ca64109c9d4b34f7fc70e732d2ff41cd3f58989de3bc7ed925ce84edb521d4bd90b9dce0b296365ec691144ead4d8cc7c136c87469f200ed2faf3488f89b52e98b920a659386ef5b48c403b4ba3175bbc6cc5a2cddfd6dcdad440d54c6dac74ce4674e46444dfb4b50719f6075cd89c28c5cc1ecd4c9c715af34aac79644dffad482fe3889c5e7bb9fd124e50233c673f5d53770feebc999997f43ff9c3b0f9feb3dfcd9a4ca3ac581b9192984e43999f0d34aaf43fe8b02c8aa30fed579457f204bd1829e811e7bd6e4aacca5aa7c604f0dd29fbcd24760b2f43045df1b29f575b08e2e1344a26ee629c0e9564c39b09c88efabece687ed6613dbab14ac202bb6a8d858c3fe3e6c4fa81d229d4ae79ef6fe7931dbc93b0cd9f18f3b278e4c453ab508147fc093a9a38fae622379f56397ec6c47cb7067ff08ff5ca5fc26289fdda78e35e45c3c6cbad23593ffdf8d6fecac55d78ffb23839b47e86d4b4db8374ed9214b7e059de3068d7745534de18b9d4bc5eea755cc117b68b7a30f76a94597d824a0dfefd59691f0b720f257f1f96cfcc3573c5696ea44de7af14a843c8eea598f1dc2eb73a9b80ca187685dac1f8735ea219cd01c6688f5bcaf57eefb3b58ad65b8d7c8ba4aba5dbcad9b23d6bfd0c7e8398fee1ffbf5f1739ccdbdc5c41d943e977aff62d91358ffdd3d54b923b51177ee27b284ae9cadc28fd5aadcfd1827dfd9bfb32c4ef55e7f48735bab94f5e5529a9591e5ebe016ad09b9d94591c7e08ae3c57e636b7feecf4835a828d895a65815088d5a1c7a39bbd5633798aebcaae89e37d8d75b4f34c73c2184ffb56706afdb3911943c216df350ee0835c8233a34b5618501aa36ebf678dae07af9a567ac7143567d9fa89a94a0a4abde383706ccc3826a83dfab8ae7165c6c6555bc77a43b5b3b2b69dc56def5e792796283737c6f5b301adcf07fdd60e1634a434793383860d84a76807c2983c57522fe3f988486bc386cb335ab55689d6b449b7a38dbce911f512e4f148aa1567 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: e99fbae8a024ebbbdcef32ce213f6aa942e3eca925e5da4c09975d773b33a175 +public_key = 5b19b76208b41eb99b74dfb00d7884ac289c5b4632f846fedaff38e07a34fd7b3acfc597317dc83e03b9b45c65f8eb64a08b88592b6676ebf35096694083e43ef758fc84c9d3097266b66c9c34a6c5f876779936e345c3a086e4e2795e66cd793ef3a22cb65bd06bbd90b391ec4f5224cfc395674d995ee09b79f9d353437dd49c7ce5dd781cab595d363865689dc8bcf81a80c4269a0516d965c8da5618ec187aff4ccdde2ea4f863fb8e517f30c3afe5c98a78e48fd1c26378407d3b189f8f36656b99f9cfe329e7f06cf5f67d63d728a4e2bc652f4e93e52877b84edf736da1985985c26caad60c9e700eb54cee83a8cfae986ab2a85b33788674dce4f566c4d6be35e837266ebd6f61c3c6ff008eff10298119e4e4b68dbb4077791c7d96a757e595d8659614c878e8d97e7437503a7c7e058a3edf95d34ace86b9302cade100adb0e624dcbf54e61ab33b9aac34a0dc6f1faba14d259c546c672ebb7f529ad10d5585c22cd0c5be9980c6490d86d83a77b8aaebcaf89e7a81b55a6f2a6be7a4e394dda9ecdfc54a4e7f3878fdef039b4944cbc6fc629bb3a3ade353eb3dd5115a665087c00a4b771ffd490748b370d8b4c4ec37cdd352563ae1479597d8035c018f4f498d5000778a81d6a31a0bb8b73decbe3e49ef96428c79569c5cba273a9bb4a77eef98bfa54ba8267bc42c643c29577b2bea5802ecc038ab70febeb23e9f72b7ec30d0ee791126a185d4da77c57ec3088822d8d8ed9be86606803569d460d6a9a00c50dc7db19b765e7cb8f29e1a66f4fb52d85fb515eba35f74d97ee85399d78ad5cfcff7935ccd269731dafb3c4fe7a33fd3e3b9438dfdb396fc99b71e3cbb883c16869bb114bb1adcc0686373864eacc61458ec9ac98df381825ca80ad954562ab932debf48aec45a6cec72e9dcc2d3b4d06e35b8b5454ec4967523ab82e9aabefc897817f2b5bae2e47344bfbc8c3426802c77c021a5f55f7e555e9d45bac868c7d45c06b6474bcaff40fcbc491ee2176a83ce46edadffb386cbcd270456e7563a873c55d86fe51b76b3fe3c3233d5e9911eaeae5deb88b9c36e0cfa60ed3def7de5b1dad0c5cbd6e0dfc2859ef5b09d3c298c5f74fc4b9937412ad7daadfd7fb99488c7a7f87c0433592ecbd6475e91d66a7d89c2f77f85321442c4e7ce62edf12dce6d75dfe1ed2a7bd839d44f08f592decb1746430603a00a2ee0f626804e0b32eebdcc827c8ba7c36f87cbc67cfcf50f65ad2fd6f1363bb715557848c5a01b25652437ebe7b6956c7fbe644aa0dd33925f64bdd358e615246e95294196d6af1aa5aef698dce2b6d9715b50fa7737be749cead7c84977747924bc2589f509ca7a931c3ffee7341547913ee695f8144afe83430bd5c96cf6ef587edf78d6c64c3c33b468b6f3cac46f29b60f17d5ae2ad5e5c63d21b6ff5dd7f08d25a7f1cd9d8f77a7a8ad3d52efd620be3d9ae97386fb6da4cb6fea19f3937536511ba8000eba753897d16b76059ae5b5d7d6121cc792076ebc2ac1ee59fa36e65d13df3f6498f45e998457d4337a2c62c83eafa53d85a94892be3d393b1c9fcfb380fa8e5ea59e968d75e4b97d7551443fcdd5926a9e599da552acb4a19b6342d309b5027cb88909ffc8c83b1778d8aa46c9d07aa2594a7bfd47cb7ae1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 67a216f37d67f5e74f782f1badbce1cc8c80a6130aec305b421899a4faa0a6c3 +public_key = 371d631d29c37b9d908dffc89d075928ccb3b9558a5453315acabb5b2f8d0abbb99d63b0294b68595ada648367fe044e1434707366faeb475c17196a3da388970fe78996ca918ad4246e4431963b10b5a0d4cff8aeca3b26363027dea5aa5fb5333cadf79a59b93b5ba484bbe56e8b41756a1024f9cba6407b44a2b11ee08ec3de92e6dc093b4abefb63438c481dfbaf0854fd617d88ebeac83aa5d624ed57c99cb0f9f3e639cacc8295ff4cf9bcc94ff8151b91cebd42407ed553bdc1712d3c7f2b345443bd7d274ab14cb67c3f8d914366eaaaf20cf46333b4efec5e93ded4a5d94c6e0a43bdd7bfa52c3c4c718591f11b32ad64930a638eaa0fe8e64a9e325f6313133c02b5b0cac8f1544543fe24aefcf7d927e9f48afcf937385c79cb85e0aef56e176eaf4af39b47dd4ef56a90dca39365d7a6a86d85cdf1312bc71876fabd53fc08bb4dca46e4f357321b29ea862fac109a643a5a9a644e9be6845e5f5837b6188de0c779fb0e430c2e9471bfdda01968890fba854dc60d97f73a5ee4dc1d343fbab0993ac5d967b659be551a6570f7d9b283445cc288f98b4740884ba72b338c45249ab74c84a1435a84d4f534adbfbedd509d7a3bd1bd635f538ce72645650931dbbc6e295dcd2595f14f5cc12f3afd9c38f0d7cd550be79d5276747e3cd4bf9767062f7c842b872e294aff495e076df819c6c92de3622ea968b08cd646ecd302ddd9fcd5bf7f19a357693e032cc46b4777a27e4d41a59bf087f1a259dbe2e3cc7e5ad4fe48a8db46ea5dce390eafe325875f816f9c2abc4d468a40dadff911b9bdfc6ba986b9bb7236f27dc63d7545efa56e3de3654475c5668d75ef9f03a386179cae1de00b35343f48b7e36a79dbf979cdc734d5855b911f8fef1dc9c04dacfb67332cc8c9ecc4a3a9a98bd30c708e7a630a19d9dc8ba2b28fee4235db846f3a1289960f7f887595f5d4088525fcf5511bca906930602b5ee2eef7c34fd5e78ec9db3474aa7747342dd839bf461e45cbd603c3a85ef2b679cdb9a9f064ed89d5acbf75bd3469a3ce7993c6b978313a7a735e75bb94976b3539b4298cc47af58426cf4310667b1315baa5937741e3530afec70cb8c60e06ae1793502b3e6a277bfe21087305f453d8e99d0883de184e59db09324e4cbaa067cb1e766e455a34159465c01e38a285cc3875d2d698538ac63de2f496b22dbe468a952c0fc5dcfac5a9a7d23b5b3d9879e5731d3e158672ebada4e4f44fb7afdffd874f52748a630aa41d188ece499aac3f4e926d79b3ccf427b35897bf6b0d2564b2a875882ad74706713e3f6306fc66efbaeb8d4cadc7c85b7bdfe1c406f069bef4465397386bfac8ad9686935cde06638f156e6e4670f963ca82a5dd3207889446be6aefa0d7cabfb26e41868a6187b5be7977c3540bf8a8c9cb819756559df44cff96693ad2701580a2b4ac487fb13a27c86a1f3ac3b6cb6699698d2ef61f657ffb6c8d792dfe0d6dc005cd79703e9330435a29abaf33dbbb1c566aeb1d349a8e409ad3ec18aa48632aef0667e1692ea2a37cf40397da3787a1e3f36349b3373af7f9a859af3163c078c38ef38c464ac5ba1fb8e50e9d93f98ce7106c99c73fbc42a5ca0595508bfa7485b23bde8d12ad7bfc9c10c68374b70a4a46655b5a67d1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 52b19fea232c9154a3e431e9d69cda40013cf2d485c3cd027ad24e645420420b +public_key = 00e7a56f9ea766d7fc04bbf83d25787224a588eb4fe0c6b54d889d127a471b7fc65f06375d1a545ad9b058a654324b5615138b2ec4a375989b3f1b60fe3dbddbaf307205a104bf9be6cb75f3567706adc05eb845d493caf795554bbf5fd03b379b6f84988763699bebbb4b3c1a54b9c2038e9e03db397da11614f88c3f336e1593a0de815269d9949c6cdf7737cdb382b1dccc0c49317213683b349f8ebffdb0b45e35abff8f7d916a1cd1420bf74cb6bcec8dafa3a36912d635d7b4cbf33a4a36e4c6714c551e7da18b967539b7a604d5e82ee7673cf9ed07736f5b97b407879e7715dbcc089a1443f138e9fab4ed9b497b834df573deb3f829b471bd5a73e61361ec699ee613f0ccecde6fc983d3238a8d5abc351fbf48d67dd3eeb0c279fa4f7d5de666aaaafa9eca476a1b155d52459b563b6ef1549c51f83bee2963a947f9d4746a02bfedc667b120d38d79a45a122d67205c3edd378c7f65c9417e9f79389436a559511d678e1558ce163ad95593a85ec737d4936ed9c7cfe4ee00bfabeecd7564fa5238fafd2908793e2a9a34ed8b67ac31345dfd42344f6d1c804546f6376ea557739cd9cf9682549f004f6c069a39cd58f29e57d66f0f612988bf790f56e36dd9ec6beef829bd39ccd655adc8c4dee3d05fef06965713849a83cac9f74e5482e8f074fbcba804b4c6ffb1fbd941c7ec8c4c79edeea8e392cbd736d43adb3ca5498f9a55bb9537396d7ccee922b9e67f0dedb1aacdaf17902f77ea6cf5487bb643e1aecdfa45f28613f6d374ba8009833cbd8eb0aafb3cbbdd3193a6562ce7d61becadbf4cd4cf6c456cd40cf9ab0b7f92bbdcab2d5b783d65bee7a666ebbaf764e98b7d06ecd5ba546be3d7ad7469e4ea85b613e224d9b13167f0ccf95273c35767c43a3b27a31773c5b35c7e4bad316c53cdb20beb60ab77c4a76f2af78bc2d6479c9d9eebacf6ff97a47c468dbe7c439d33fa914766fcf8772e7ba92c3e82e46f735c237bcffc3e940cbc5f6d42e09f3eafcd4d96f3ecc3187f66735ff1f6ffb556d896cff145787484f5f9a1d654a2e7fcb9e8eb4d283bb15682e8f9bf1037cc96ef9cc47e6fd8a8e0e1bb95da97ea266f645e0c60a27cb509cf885c19befc686db2e7a78aa66b934aa0d42c856cd361eea3f94759549929b59aeceebec3686f7dc4a15c8d56ecf3ad18d945d4734b76b0a64b73de7b5d810ab8daf48542a4c13b9ae4affd5c788448acaa51263cb31be69a91888ac76d75c0e59ead2bf9d6439e94253d20f965dafdaca54af8b59d3bd41ae3110de33beff1a45961527589e7048fab4d70297dee397a96b3a7f8bf55437d335f1e24d63d49d2e923863bd9d57299e1185e6fba44d263d6a0abad743e959da90feff9fb38431b36b23f8a15696e97aa78ea97936f8b38bb1556d36f5f5ad3ee1b8cb3bafbebe708d9b73f9a450d45eea532624354dfc7edc43ee09e0d58f24ba4729c375cdcd440948fd34556171565506db378b477a208cb83f3afed2534c5ab6efc0a5761d46b6dcda6ada55d1d9fc7558bad419e772f65bedaf335ba37af3468fe0bfbbc6609bdd3568001734520f45d9f4772d2efed518db9a8afb2e73adb6e13df1418beb28a229c8f63411446b83fde11b3d946c9bdabba08d495aee50911cc66291fd0 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 64440adb05db3308b189bf999f9ee16e8ee3a6ccbe11eebf0d3ae4b172da7d2f +public_key = 255dc1943ee5524d9a9f09f189c54b048b6a811f7c784fba34333bec498e28e7f9d6085fc7f5b6e5d4f12a0aca087faf8f93f00e5ffb49b8ddfa17cf56e8f77b89fd7b4675dba3a7502674f595a45fe93008acad0274e0de336fa41ac0c725bf611f80bf7b4d7dfb63799e75b7748dc54846f3a8b28d055c6aef424704bd8406ed896a40447bcd42b96834c8429ca79dc4a4be300c7dee38a253e35819a43d843d46f6437622094d003a3b9914bc6946bb4f4cba41246ca027cf2e599a55af3e8cca88086a6bf8aa92315e85a9bf32a0f459042f4ba2e3f7671564055ebf49c350fbe5b2d95a5f562f3a1a794bde36d12bb48ccb4384b40f785543ee96cad9c7e757bd7eae9bbfa1ad05f0f01bbfd4c77a40dc3e24da767d8b456979913ae97fa9446413084a45fb7828ad82edbed94a9437155bfc8edb48d7bb893af3f13b5a95f86bc9e146657ae653f1c9bf54f87830aa968b96b747b9aed50d7ab413ded75f652daa9613eddf36ccfdd1299c8f2c84fb66d45ab45279735aa1f57ecc57dd7e66696a8b7a65bccf23b63ea1d595363466a5df4541ffebde05733164e80d1a80653be66dcd5af5a7cdb2158471e5ffa60d6a8faf5c98167f4574a8a48ad0b8cd31e667a7da04ec32d7e4ae1855ea9bbd0a1aa18bf64071c44f3783b30ce830202dcbdc6ce94e6e31712386bb135af9b55c680790b5147f55a6cdba4d75d1fdc28904fba638623c16be456f89d099777717b89a2f476d8c5511997419d8b5a44ac8c4a9589c5b39c04bd45ad3ea6e9967fb2fc21f5bae223d65867945ec746f777bddaaa96d85c6e864fa94e76474befcd6815b556faa81adee5c552558c0575c45ef6cc409ead4ef6fe1374d2afcbb3eef3a9be5b367cea174d8b78ca462705ba70b358d57a751180c781b38d75435b2539ed4ac0bbfe6aeff8feaf82f93b7e339fa64b83494563741789c98eb7e84d69c7dcfcb1703ab94aa71d759ec69c5f94a8e8245acc6ef07c11fcb68c336738fd762269b7ac66faa750e965f2c5b2909404c3fcbc86671043ac335ef83ab194bdaabc391bdb2e275bdf0dcf652eee207a53db2bfe66b85f6633cb779d88da83357b51c962f567d049e7f0f2b5c3c3b9ba75699efb4a8a5736d98a56b161dcd6f233c2c05909a3ba6204ce1ee7fa0091785ace7f9de6d9704f5edafd4342275564615b25879eb59266a0ee3a8b36ec6e9e9894b78e806e97fbe4bf5b5be33d804a0286a90986ff20d1ec86454e7f34597db43ac66159957bee541cb4349cf3196095be12df3e8bf67c1f5efb1deed9b787a519b3ca4fdae08c79ed4ff56a63b488e48d40195983db7ff9c0cd4a9c5a7c42889839ea9bff3cea8089a343b73e616c5e13ff75545e1723bd4a26d4d5ad7e8ed753e8aecd01fa47665b76f945ce0dded635e9c98de9eb9e689dda3bd9ce323ab41cc7c29839784e6ba907979cf8e5f982585297b5170dc7afeb94524563510257d9923e9821f8c7953ad87ca696d68f50aab373ffa3476aac3f75dbcf58aa6bbe85168b7c4012b335aafb6bee7d2524b8498d3aaa04c79163eee1f0e3e1a6eb0e2f3fb91fdee0b47f446a3ea0ff6f55c5ef582efb5c0e6dd3c8fd8a63449b4216546209bab2ad3767f9793d0be98cd2899da27f7d980122d0bdf593022e2 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c8bb46b3a7344ad170c2052fb042b5a3b62e0590562ee82577b1081f6f114d16 +public_key = 362d71c0b6d7e459c9070afa619ccfdc5e47f57cf08f2db3dcc8ffa33d4e40c46aaeb47c5bfca8a9079ecab4471d4bcf914c8ba459433ccb95088fd38f6892062535603b536da65dfd5c33440d69a7f33a0819fbd9c9617df3a5779bed15a8a91c8b99bf6bdd4596a3f8a79d3b6994e823c2102dfcb235327357ee2675633d9ab2c7668f02e7a68b253448abe69eaa92a8d78e4e28f64707e858fc7f4aae7fb50dc1df3dcc76664bd10b7c55885af696478feb919f4cf4fdcc989a1e77b52ca64717dcef77ab47c891b06575e6ad81441ea75bbc9838aec564246c174de76a6f94533999b78dda150f552063a6222d5bc298f3e539ad1c1795e1af3b6b47737ae839617548a514631319a78d99350eb77dfba97f7208d04ea980546a9e674f395d5e77bb7b433dd47351b85e579d91eab3dce55dc1b786c0272b91f9763478ac5410ccef78175edf0dd31e9cdb4f074bce255ac2238a5d67b84b08a12984696e1ac7ae1e31cf64bc64c5b0a1ccc94e3bba8537e975c63f8e3e4d9f2afd17835f873846c6858f9f285428478b2e0ce1bd7b4900bed6a6537685cdd93a633d9cf9bf6bf9701779db4cf5e1b1898972bf978b7ae371e8aa70d970f97ddbde1ed9c855f1e663845815f35dd5849b29fc12b49b4308f5daae6dba93960aee66a9bd5e491eb9719e5dfc5f7d803672c7b4e8293937a0d5d8272a51872d3be64b4b1b33578d48be3e23913e73a385a8ada0fcc4cecbe070ca3006fae6f7da6eebf8b9e6637deea4fcbe43395c8a7807ffc23d2ce46d6359d268303b2ff9e5e5e3c7abf09599fd563d38b6a3431958e95bac491a879c4dec39cb1b97374a65d6fd66f6c66046af5b9b5889999889db34b1f42b41521f6dd753e389a8331bace23aab61c32ff28563d566faf3bebfecdedac78ccaa9ca1566ea28e7f489eda6754379f9b0f8acb217085fa48d910ed3ce4b5fcabbf5fd7557fa63c88ddfc4f3c1ba6c1deb6ed327fcbd7f44fc7e30082eaa13037ede787ffd546e6099d131d8add25551d72881be0c8647bae0eb5cbb5f73c891868d474ebf8a79fbcf0a586719ef4313bc976c989d2ce84afad7efeeee37dfe5008b56a55ab5062bb41f7c589583709377efbf7c4ec645d5d15ca7efa5c6e45a5f5a757a4fead2fafe3c7926ba7ca9de6dfc8b20daea2a9490a44fe0c14accde09764153bc9d5afa68b7a80d9a91d3d4778acfa79ccfe2bd9f812f8660f23a833d78a3f056ac030bcad487431a6357b9aec13c6efdeec79ceebc37c6099b7204453a0f77dab65346ea323d33c76f3d483e5eb9d01b5fdd55bb7e1e6b2dcca95139ff3065b1629bedbb86bd0cf5ce6a66ba1ab3717839d19ceaced283c6b748b26425588ddcc47bc89ceb267ac8cd3172b960160a6317d44fc5287c5e56f911a8c995bb92ea1c81fed5baadabb569f9cf7c1cac729f6f3e5aea752ef95b6f3c4134dea4f9d1177df27a785d989ab00a2c3092cdfbd65a5b254f46ffb97e242e3f57b86aa21669541a60ee8de4f193e839f4e539dc8635ede25e7ee00ea4438af59435af5a1fcdbc99badedfbe9d67ebccde2fce5f09f6ae364af7868ad73d8a612d33e13feab609560144abec5a4792b8894337c866ec1a5df4076739fed133a74636ec9d904e88876b678088d8c70f3c70 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 2e2b70609f3fe029a14d09d5d659871ac776ce2797a0355f16e2eb68f5613fd1 +public_key = 4b5d58d467b5ff439fb1cf916bbd9bd306661b18626746c8f4db817e3c4dd2d7e0429f9dd7c5918a86df517e5c6528c2d2e7c9b97c51ea0d9281849cfe54e0b616ce03455c7368dfe16634fead87398df3e42790228dc5e8276b797abcc58df8cad9ebc85ec9ec4a9c39d682cb38b3899fe03839947cafded453a767cd4df7ba58fa7e4c6c47db9827fa71fb7d264f85e60955203e444f9dc2b1d5954738f5fb9cca49d55c237a673788d8ebdcebb4848a765f7ec467a7f94b8c4f9bea16f789f3dae5f4f332fe0e60ff6c4986bd8b9996bd0899fd5a836d50566bddc6adc6ebc7d3c95069cd8682d54e70666f606fb238f69bf86a3a495febcd8b762625c06f03cd8f0e3561abbb300eb1c314a6a625d0ab0fb9a54682325340bb3f876124d781885febec3a419da5989b914a494d07e9793c7d3ed4b45af78c42f3bcb46cb4c7fc5352802ba0eab35b9f66c34c49f59af5fd1b75b910b8ffbb464d37f6befcaa811abc648504ee38c8a4d169fec69b5ce90c7cd11cd083cdb72d0bff5a16b4c7ab6e65f58fbeb6c442fbaa2b4345b3a3326bccca3c6ed47315f0393e78589c4b4c85e796d3eaa16e34672dba90e3db340c541f7cad17f86e05d9ee4d3ee6306e8b531e7ddb67fe1c9dc0e29f35a82a3e51b59c3b38dce3fa739bc7de4a09f4394ef69ff87f311459703e7f28ece1b8b53d578a8ca86bf90e3eabb115b76c0a87491f4fdc9fff98acf41c9dec8ba8ffc733921d45853cf638811d7704baa331c7f5a41647113fa9289673f3ecad2215dd9c5c9e2706a341553d168bcbad1a41a3c554271ee2336430fa16ca8fb98cf5e9facafa8fb427c461af7aa08358b36c5ab849ca2725b72c939fe17ded1e2abcc4434bd0ac83585e315856922ed53cdc7b49468caca339aedffbf5ec2b97d43ba409693fbb5f4ae4ecaee5b84b567432270644d6aa618669734f1dc8b06add697b81d6c83c9f844cdc8ac7564d3045be4c298e31e9cdc21c2361b20659788f313e4dbad1d56dbe15973559ef7c9ddd6b14ca69e9fbf223dbaede858b2cc4a408c33ee56fdfe7e9acbfa43123fe15b89d83498b6bb5aeb0d7404e94cceb3af9fc49fa2e466469e53da9c371e0155a775af98e5e5d70ec5e31bad70bf9fc3e6f90f285a6034a97e399f77eb393c62ddf066c588aa33e670f8976493bf41481b2eba07b8fd937ccd2b63f4d63b9487a1789a6baca926efc1a4ada70b348c1596cce7997ed395b971442ebb3b0e2dbbf5618d1213da173bf59ad7d5af9634ad585916cd63ee1248ca143a2010ea20cdad496734c2d5fa59bc4df775ee579efc60f2364e8763ec1e5641d8da9d6235d4ff9ca73f4c4d6db9bcf3383d7d9a025ac76db1ca4981daa282cf22a4bb81c2df7d80c38c8365a39988a029a93b5dcb2b004e1fd1b63a64f97c65b7de3f3a9490eda88c5d7955aaaa2d3c699dc83ef348e388ec8723b9bd1c6637b94b6ce4e642769fc724eea16d449d16cdfb2753b338586f736dcdf255ca65cbc8c64e0183ea45544312099a66405b01ebbe2501e6cac1dd3bdf3e4b25690520a9a224ee5437ec89b97539035652c03b463ff635dc5d1f9ab69840e7f22b3391a67397066c8613fa31080d329647a7c4f5ab89a47393636ff0671a4b06948c9f87fb580358d467fd3 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 4725dd8fb314bfd8ee23731c2341dbe114606d9abe6434c471b5573e7df193bb +public_key = d0a470090d708a0cbaa0e3347245d0456dc8f96e88ae66af363ba5cee88b03a341f5255c329a7d119bcac87c46bd77a1b5966a40cffa45d89c7139d9fa8c69968befa8878d89b8541b9aeee6858933ed793c045deffa62251cdd017fa46328992ba7ac4fe7fb496efc7448ceddadfd9d69ca566f6a0adea700b9fcfb1a6bd99f91632c74af68de3b4aa932c8c6714337b1e7fa310fc6b69befca8ecd0686502189712f0c5328fed50e07e649aba312a59e9a44fc9e76a96de6907dff35b6e3b5e36a9072ac95d856aa7014699ff48bcb8bf98f5e68cffa740e0a5bb1f65df9cabbd725d96ce738bd39bad63da05eb58efa8b9e3de4f6f188ea0617973667d611c89a6f99b3c0aa5f4bbf7376afd82ff73dafd7671bcb60a87c5adf3445ca3381a279c6a40be824373827494e294ca5d83574e0877e4b3e634acbe06c8eafd51540239d318ca8a2511cb129aa52228ba4a64444b86ec184a3a29c3fee11dce335e4b87c457710fa4fdee790624f49fa16db0417cfaf9bc4fe88632a76766fc8c5ff424849cb91d445eec72ec2336afd7813c01cc893c646986f8cf247bfbb05149ebda38f00acb65cb8bf543e4561893eb10ed63b2379168eeb7577b18aa963315a3b0256f9689a52bdfc81e298c05948d920aa5bc39759f2f56d291ec89c59acde3a5497fea8cce9bf5266b363b4dcc1b6c78fbaa4241340dd4563a66d3413cb73ba1893bdbcb3ff93bb801e32940998427769d29d47bc15e506b5b990074e8d1bbe2d988699c5f6726a91513988628cf301b44f206696353cab38f68ca22ef70ccc6cab887ac3b8bedadce2513ca34a2f8b0d94fbc1a3f99bde812b69c63c2b8234dfd121e5d7949d6c4014453e19a62ebefc77fd366713ef2bcb59a074cdd34e7ba3789e7af38ac71335736890dbcd4f78edb10529381ea3dc8d0d31f88838efa47772a7b2541963b0c7b06357fccd06f38349cb5619c943067ad97de9cd964c64767c8394d7ec3fa4ed9c40581b63e0379d00adb275f6578f065894e8a47796489b994ab957e235455fe108eaf3dcfb378648ad6f51088d5ec8946f1599a8329981a7775523f7c8ef84f6d8b3ed1d5cc9893de86fc7b55076b14d2c7c1533cc3217354cbf4662ce62aa0895cdc4aaefa666687adf13de791adb7392b78d31d6bec54d68c403edd60a768bcdb057cf4865cd33887e5dc48bc86e1b51a649ce4945708a6ed65f946e18cd6f364590e5de65200afc48bf30f26eefd02aae79bb8fa72791807bdd3f3eede92455469d66b51dbfd4d437f0acbbfc0fbfc5e93dc89d4b649a6f9a7ab09e2679e23d40c8e975413fcc3feb8c2becf1d8f7aa56ea31380e69ebcace98d54362fcf4b6b6c6383fb882984e58839a808f5b1797e820ea9dd0dc8c5e8ae5403888e90e50cf6ae2c6ef60417d8792efd74d07ea45d67f221b6d2bcceb65d37559a7c2495e6cb4ccc19dce5f93ba6d6085bdd95568cbced69dfe3138b83173ea7c58ebbea85e6c6bef5bf6ed7ddf29a0dcd64b455aa6e15dc1d56632463e8833cb95702bcab2beefda773a73454e1065e0509e7b75d650e0eec59f8d7315ad96df7e3e35837ba5ffa5f3a9ef6bce8302647fe02ad5c055ac9d19fe27027cad17633dc0f4693c1f79cf69756e79c9fae7c954a0caf2c6b326 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 818d3bb8ebfb32bf464775f7139bac0a5bddce80ec5798595992f9403002cd5d +public_key = 61ef9047d957279de982a9349bae7edbe89d04a6ce4cd5fb24d989327c855acbc39e6b9881ad783166af6d13d43bd34eb427b4a8c3f676a874b1ce8da60759a5248ed55d8abfe9d723dbe61e48d58d4cc3b26fc7536e380d1e9c712639e50494bf195b0e6a9d4c2f803278832e5fa6cbfb542f55ec777396ea0ba5cade86c0786180a4a033eefbba793e2e29328d9ea40eed6b9b754a18acfa024d4f2dd7d11b036c96abe455f7a6c06bf49e93d09c5fca5ec643b93cde4ec9469e3abdfc2b8dbf5638450aa498c345f126782a6cf9ac7673a8db84b0f87086eaf1738d67f3193eed49e3773e7450a3acc5fad323be89f56accb246bdb6ccaf735fc89be8bd846aa9d07995bf3cfc5bf8f385d77e566c90fd797bdabfa5dbb7d4d60341b163dcf306e0241d66a06590f6e3c90f1b6bcf5cb316b482c38e7462cafcd3ea4a5f0744dc6ef8b7dd7852ee526638d414b6710fbbb7db1e3c8eaa45974c62bdb7b3363e5e5d093d11f5e7700e9dddcae9b379399c7c88aaaeee18de6fc5194b2a1998d219c4a5fb5531ea6e6ad37052a57fb566dea3a7e9c378b69dadfacbd3324facf9da83e45c4d9a5f79c8629b4853f65d03eca0a97e8dfc7f95ae3483eee45bdb265639cd511864a0e57ea34d839419ccbe433d3fd2d5e232246e0a6b81d9bbd0c50a7fa656893693a8e7ef45fa8be19a14336caadf581d8ecf87a9c249c01d4af14be4f64aed92e2c3c8c8aafe4da8db0bba534043d718bdef5b3abd426ccf6bfc3e5bf8969a07f88b0c428cc39a36da6a7c0b8bd666a1d07bcd2845718b755d76fa61d3ca51b3b774877d8606975fc377b6ee0596a6f37474c9e549f6899a3c4e46a5309f035133aab371eb559a8d9bf42d34a73c8d4d0f40a316e76c7bd91367e9ce9478d308e46c189b715c6b4ce6612bdc97405df38994b763065d093d8597daf2a3f4a4378ecb500a680a476e122dd05c6c6acfcce3c91abf636a7eba3aef138dbf41293f313ea8abf8af4fbaed617a380f9f5861185a2bc37a806cb8bc09f455af634058eaa0f6f30758a6681fd145057f8fc55b49b530ad5ba6f59dc9a73b8fbde960a9eef3c658e55418b374cee89f1dc9f91a4bb15592db3f9f6178ff71ed3143846b0acd9da648454a0eab9399f82816f8d4a57a636397e5dadf57dab388c65fd6e7bb5aaadf3f95892973c990f393174bb8aa669bf293f2f80a65320bc69b6460be565265e7b8af86587ad9b43f1c3e5a68f773045bab8cc6e043f9ab1a4e05b33afc08d19dcc67986831d0b6d662c4f7ff5a7b9aaed17a3d524bf678c7d461e1bc95fd54ea7693c3b94f460fee86b3f973b35bad30cf58973cfc309490174ed9cd6c87a82afd30bac5c6766e7d25eda49ea83a2a5e979d4cfaff68707bf3e8758f524d72b43a6d799ea92e57ad6a9b82246a7f3459cb9cbb5e157a957b27c81934d7ea9fda906cbcad6794e16bae2b06648124d0cb2f941e576fa60ae18367eba17884d5073c83b7a7a1ca53a90ac098eb7dd26f7c2fcf8d61f86fdba69309ef7fa515e5cebe94464d5a3e6c72075eac5199a1085c8ef1995d8ebda43ecabb522935331678102ff58867c65cff57af667da224c272cdff52b8bcf4805bc2031fd9d999b3c825fff0f4c8cf37e52c6007bb4a2b63952a0c223185 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c92aa5fb91c980d9cade9ce99d4c75b2ffa7d6a6ff9bd59def1aa701f2a0992b +public_key = 7eac95cb2439a4e5e7116fa42523cc5ec7caa4146543a4d03a4faeec8fdd442dc10e6d9de9c397d089dc585398fe0c42374ac2d32dbdc605d8ff6fcc592bcab77bb0a5f4ce73a380ba3640b4e491343ab7a343e0e8fd4c130a70f75b75e6aca5306837e9bcd3c85bd1c3fa4f514fd69f59fcfebce585054a9fd4f71da3636639aef4ad65f2857a32d590e416866f7eab93dfac27cca217756b528776a73e9014867817edd837e476b0cd8d5db8f293d370437d956715f370b553cd9f5043957eaa3c34d39eda28163e9f58d7b59f301a4aaa233be834db5933efdd8866a37fb3e2ca9cb12a1e6634e95d551764487c384d0ddc3578f9288d8a2876dd92f5e610c68edc994c76a95549c79c162487d455f93f0758a43b525b04477c2c50a47a96363eb727964828c5b567fb53853fc92a8c5a0bf6e36babd5c2e68353d5787a0a455dba373cf6df40c4b48be8723ff760edef3d135887be59e157b6b4dc8591b5046735c5588cc4d5057b96df0d97f158c67223c5a854be202381270ef13dc59ba6d5bee4d7aa53fea9254ecb2344d820d9afe144d97bc8512bcaed20a7f01d6b795274e369649eecb884a4c358493e4d2618c283ba9b3449f2b7dce8bea9cd1a4a3598ce46d433692d15c5527f847b9cbdda8ad49ee455e5e43f6b18a80f6dca499ffb116e83553e644feeb307d581add3b21df336745dbde76be3675d5b0c88302fbec6b174f90e39f050cdd5f81567571552a7fff639bdd18bdc94e768a9ecc7cc20f5debc8bc9774c7caea9a1fceecc6d9f5f3ff7dfe205f4fbade7b714b7bb9fd968b3898c24e0b7e46fc65ff6c3ce5056fadee3cd71635b70ffaf88b88c9cb44aefaad97671e763d05be73436f24d0fe8b2937246dad12eece4c529a2e2d47bf4be5b978d4590f5f41254a3b1e6a29378522dadb259849151aef786aaea73ecff334386c3bc7542f5bab81c89e948d7199f709f3744ed66dc77d43d6decf537c544a4f64b19d55917165001bb74d94ae437835442c83b989bbc22ca67e6f96fd44787b8865f75a4e9a409b7902d9dc87a89e3ec88354ec3ea39627c35f4c4f88625594c2b0b5798386867afc9d46cfd50d438d61c571574d40893ba00a7752fbf8fbf6b737098e03c3adfdfc87d99b978d36fe949683b7dcc98b644504c297906df417649c0a60ab70b5c674783739fbcf13f1ac5c5d69f7ff3fc59a5d73e846d12da57cf17a73fc7dfe8f7d13d78edfb393a4c4d922a654473d4db50249362e4aece2f515f256250365660177bf345a2ccdd884933b45d7ac67ef3871969bcf94570adc7bbc2cc94908fb7731a8bf0f980a3c373d30a4e86ee482686ae996de811cf810877d07893d254b7ccfdaf7bb0c57c5659de1a5b593816923e8ffd7c433534a8d294aece662e9e0245a2fa049da0cedfb559e7ae9fd19b6ef1300d86afb5f0f34799a046ea094fe1a415a42b46f37e4da5138c5ecfd7c70f6bd84a15e56d08e8071b709e745eb4fdf52be9b1d99f47b79e7c72bb9e3ee78dcfc8e9ef63d8f2aa4375578c73edfc349be6fdf5ef817dfd0ff5dda8bb5be6598fda0bb8bb1987de7bc57593fbb01f39492e5b8348f1afc7d87a75d1461ea50f9ddcf6714ab446e189261a2a3dbac768c1e9e232985c430516bd8e18c79aef56cdb5 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 7e8086a01dc5b3bb9eda25bcc45d27f99874841b97237968495800e007696ac5 +public_key = 616571fef73bf834c48073db963fb245dd9c8f936e951961bce56158ff37b19e90983ffdf3bc6e61f47d846479a1a5bcefda59cdd8b068de9db6d9586fbbffda9b550d5e70c287fad5a4af4a67a19e2e5e45575e83a8ba5f099e4358a9e493677dee77f37adf5959e2b6b850d307eac155c01b68bf1dc89ccfacccfc6cc38a34ce5b4c48d3ee7dd2946f493a357c2ed5275e53c04a98992c949ed7745899f5c6a7f84bc537b4d795de0463335aacc08db10ddda03a98f56d3fdc3e0d74ffc6c8c913c919bae9f36fd6a1cb7d40b5dc6f55960b2f98881a71a1dbc92a69371dc9a95d45a7bd6547bea4e4f4d3eebfd3553b89cfd9bcd5728bd6bbab300ecab599da76a62b97541cb3474b7390cc49942678add66d265772f565e5e16f3192668fe4d5f73f3e76bcdc52fcfbd81dcaa4ed699dedc59b02af936317d56787fdaddbcf8605bdd1268882a355cb4e63ece88637e932c56c43405ac3844949c819646e394dbdaa475f6fac0463b8ce257520b3b4e25ed57449621b449c09c5b72e1d464e59bdf38dfa7f4ba1c1c6301b05efc41bcbdddc4a069abe46d37c0915db29bd73f32e6a06e5d1bc3864071de85227a63e2f4589a43391097226d672416e9e2804589f59e7db7391a4fab6778c91f03daa41655e3e433854b5fc9cf8e30c9dfe832d4bbe894518febbb4458617bdc30a1fdecfdce7f6b69cd0bc688963af0fec8f567a86ceabc9a0383681d3729b7ef98796fe2a7fb6394cfc93b3f861073ac3fbecc636a52ddcf3e6fadaf7d3af4908e958743962978245db5a70c34e90c64560b87ef29b5b568a716904c8326481db98c81cca47cec76e330d3b37bf6aece764c565eac07c4bbded94b687fb2fbaf7b518ca5ba6d94d178f68a7409a9fba7fb776117c66e97cb0be6854908aa8203aa917df6f3118842689a5347ba29d3375997996927f9b812961720cb80ff993d9bef4e30f7e00afbaae4da17b564b051f681b7dd5889cde27a9ffaaa370ea3954775949a553b75aa35d5956373da54da7eb51c7e68c05777760c6b9b0a78ff2f34312876f2ebf7898d3aa4a1871115df538ffaac7373751954f3bbc5445da39084f9fbd8e7fb0a732c04d77d473dc93a4bf6795f74019c5de6c3d8a6644172d491a853700afa50f0baac72fcc775d52af0d49eacbf0d05b987c3d3d187e4c4e79814dc5cc9593bab71f359d0c7a3bc9614d0c8eb5eda7c84d520e077e2215bbbcb693a93cd293daf8b5ddce316b5e15ee65fe4745f9665c36a651a6a8ac12ae62b5bee1e40851ec3bf9dcad559024dd28aa945c4f310669e11b4d33fa7fbc0163bc26a5872957c6977bbf8e7f7d65a8c806b469915dc994bb85651a40c6d590c337c6813d6fc33eb74883d5c415565457ec3003b93d2d6cdb8fc19f8bd47f1fb5cb94490f4bc850c4668b366bcb23bff1a744dd3362e94cbbc668e78b1efd9b784d12e965f469f067b636ed3ca3bdd89c0c3dc8bf798f238fc49ed3835c7dab1ebc761b98de0779b5aa34acaeb4dc83fbdbabd6ca1139875a4e5252064c4f7db62d4cc813d346ca789eb86b5d3606bc3239758b6fb5f76a709c7dfad6987228433a01a8aeffdcf2d0e3e5d5abe5e8aca53b02fd160c62db910fddaaabbc4c2df1256095317cdff9f1e7ebcc48f8382101 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bb321ef14d44d8698df879fd52450567657f52a2df8d111185dcd7d4f30a72d4 +public_key = 375d9aa073f6ff5cc17405ee963cb5e6cef90eaab649d9ed1a03b9cb45400097f48ef9df5ba5d9b9d44f27f8e4b55b5d7fd341bb663523cccca03cf77f2ae2f3ed540094d5dd7b8fb5b78f210f66d63bd0db2665a728b9231b99d957904e4f78c9b99933a7f007cdafb2d46ab598e0bd5949299ea77f96b7eadd6eeac63cd9e3a203aaef30bbdeb4e6a7dbe875263e74f35e909286ee9684c00726b8548aaf2ab3bf79d8f55ec6c15a1f34672acad21cdbec4a5ff7b4ab454fc2982799d12d3f1ddb53a36db95c5e980035e40556582a0c5ddaefdbfe64ff79a743d55d95b25c9566cebfd1e8fe5dbabbf37b934bd43a9a09fbe5bac6567dcd0586621708a30d8371defeeabdc8d79616896533b9071ea58843ca3806e15164b1de5bf27b0c4b14749f5833c5f76cb5aed7d3b2eca6fb4dc7be2f4059a4938c0ef66549d1d5e8dcb4fa7213f9e36d8cda502d598669e1f69ce9f0fe69af063e76887f192359e5f6d516b9ffb194faf25599aaf530b09ae71d35be896590ef3a9b7878b4a3764a3ccfa8016e3ef2cfa31fec6ff7a8c8c5fde5830fc4ffd35c1a45738d1ca198ff3b8858a31dd6d770e38796da351375d0ec868e21afe7babedc7ae465848c82e815490da5becc3fa55973aadc18afb227fc0d086de8ffed31aff6fd54921acdaae0c672bbe832c515811584ae3e4a59ba98a80e3ad387ae87036961b4f6abeb6a84ae8b55b4e95cc9f8e2bf0dba0925ce00ec3390e7936c5f482c5fdb9d15ef92bee7123ad779cf434cb661ad69d5044fc63ce986e1b590d3bdb81ff4c3a1bb5a9ab4cebfa96c9f17fddf8332f5a3ad0a156fb5b6b35e38a59503e02156815656cc4883e3c75952dddefadb6bd528ca68bd53bcb1f750d6ff4d15d54e84be654415f8d93d57fb1fa983aaad4048c53d6fc4a789b82728a94caaa50f7a7df6fc7d07c7672798ffb8aab0991ea611d5e88dabc366494263cb8eafb78eb40a7f33763ea9c5e319fdac1a7a34bf7eaaf436ae4248346a8af5e2dcbaac2f6111d96d5e9e65b946ae29283118bc34a474d9f2eb37c469a3641ecaa843c112ea83c0364ec2b8b6e9ec68cb8485bfd87ff66d91300fed43d59a1476952f8fa2d3f3a00cfb7c49b6ee9216b728fcc3096ea23e27ec2c7954fd85528eaee682066db2ad62b50a5a11cc385ebe6d4f4b81785c9b8368575409738683847cd46f9399e28424d82c65e5b5b3310658c54be69a6c4bd2b6eda1b76f7e061f99996facc0b3434027fa9a1be44627cac4d36fe8e7e272e6ac69ac94d1f8c2515e5580b85d8ac3d0bb29b43c1fe95ea7c966947bff9cc324ede7b48bb4f6a88b030e956e095b819fb250b53dd9f58ca91bf8eab574034372d9f8305b39668bd9de2b6bb77267f52b0bc36ee68ad25a7c883691a494c5626b5bd97dc45a06ced4f39fc8ffe9599eea7b7cc9351db2fe8f45b45b746207f133d86ef2fb9b173397bbccbacaaa717786d202a8748b54df82d4921843ec386d918c74ddc68d73883b5721548ed6f5f9d7f95e02a65cd7bbc33843e7fcbe66bf85ef47fcc2175e3742596c2e9bb75ef8dd2ece6d037bed462dfbc2275aa09b88012e3f67dba3988aff5e0aebe2c7868def76c5110f462e65b39b2f4f753b3a3d41eeb50f7aa17723bb620b800aa3dbdab7fc +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 210a423dadd899b810f011794b79aa7f860823ac1962370e791287d3a1afa384 +public_key = c5e450aba7dd5cc6678ecefae81962959a3d68d8a4faf4ded343cbd2e84323ef342cba77573f8fb5d8da40ed7295ebde1376f1f8acb8eed4685d0fecb28a7fd34a9c6af4a8d1fbc8dc2eac4d334afe1b71b87cc1ddba5501d38dd7e74c6d6dfba04b8d1039322734418dc438fca99d0bf44f700ca474dd7c0ae5d9428ebad2f9d911cd8479afd461c750aaea66592ef933753153aa9bdf19def91a3f08e7c07278369efdbeaa3fdb7d4c6b6f6a7135b5d84aa54ddd37de9e5ee28d1944d8e7c3e1bce1a4089fe464e324db369445b5afecc41406b277e8bb9303e1de57b55deabd8d2ccd2e9a417ee9e6ebcaf60e0baf95ebc0fb0cdb1b63b6f544fb3ed7c1004f35f1af6c3daa7e2e6dbbac8d511246f8abbb3cf9fc6369a46d4deb7ec013f847d7474356aec9b4e7cae8b62c9c7bf4bd77ea05fd622b6a2bfa6ac49a9cebacce997af9f89acf9349363606a86a6696491f33c74bf73e847798b530b876f194896e22ebbd8f3640864791974d69684338f453710d94eaa84af9983e6fc3cad6e7d6a3855cada69c35cd9decb4a9f8ec66a56cb8a28dfbf329d75c6555f51ebb85279d3a1305e84119b9c2037b07ce65d31ef723bc817297c42465cd77044436337592ff391546f9c324db0ca85784df460c2d72690de4998e76f5dffd8ef5c096c93a537d6931b4399a1849488665026a615e5955da7f429ec3f213dae6b587b0f7366192366f523732fc2ef7731cb06bc39f15f35b1283654bf361f403be5a9ab154f786080cb8ed4fc8ec356847839de85af3c6e4321136477d1fb20ca5642efc84c65832409dc2509b62df865e5417faad4eea6d3b4eb9073b180ffa110ea37e6ba4399e8a42663bb5de5896239f9f3bfd17a5c93d0f4ac59580672da8891b89f7297901a9b63e7c799cbcf2a515bfb3ca9a487fa5bcaae1165de1e4ecdd758868a9f646d549dc631381e8566fd66d3903dee686cca1f876322cd7793c338876e8f008eb30f43ef8511a872db5cc0ac689c85f66d5a9bdcd889f73dc92f1dc5076f373be6430811f553e4ed9c7b5b2a819afdb93bb3447c879ade813849c5fcca97c1e6ca2dfe15a6eac4b8c926303bd806dfeb299421cc9cb82f556327584118c6931ed3f4368ab915c3df0a46b095e8cdd38de17f86824958f0cb8d79e857d8ba9a522a49c3f539c845968faf37e4beb443b577646967f508f4c2b7d6b3a7b74866aa4bfb83dd8e4356d0bee9f4678a1bef0cd2569102bd34e36bf24a58c690b69ea27ca88db664578fc13b57d9a397b8387fc5367d82dbb6981674a772b6a95edf10b14a7714fd2cff38419297ee09fa305a59bc52ad22919b1b61bc853abca3a8feb83a794f2cf7d17da71a205571573ce31faf7f81b74448ef74d6a8138b69ef967adcc75730a75ff135bdf198b86a2a670a96c58d55f95433851f61850d7c3e8245849a24da407b6d080abbab77abf58d8c46f2580717adbff0481b1973c804a406edfbd0847dccabbc9fc7557b26534ceaf49ba1b3afbff95701db0b6bcda7f0df352f5869aa7f143ed6b86b64684b34b269fbc91b7c5b25ce4d33fb8198db38454d9c6038e070f3321dca0f237e144373fbfd47884f3ac96e4bee4dbfea5eedf79fb157b32e2818048bcd9b8e9bb89118362e59c75b4917014c2 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bc856afe24213e3d14c3d6f9b89223bbcfb2c890722d770fa3492c1e46d1c302 +public_key = 08f7945e6597c997fb0cb4b1411f88d89e5be8e3715a8391a496d47c15b4ab758c8d9b47541c34124e7a439bb2154d49744460811cd1b778879435d77f9eae07cebb831c75eade552264a6553f66e769b898b66644ca93f9da7735135d743c62a3876c0c99eab71c73c9b88b5dce4de0238c831d3fa8f634903ad1ce6be5e88f3a36aacf6a05639b9ef221085b39bfab934ae2553cf68ccca3cc07cb4e1ca03cecd2b1a5a8231a386456b26878b673644bc4ce61319d454b68fd5855f68f48eeb0f7d129ceb06f356a9da7362234d0acea7c592e6041aeaffc5771081743b6fd721fffb601a651d9af658eb9c5ad8599c3fd40f89eab5d93c6067ba30014af51766a41d7dbe664fb722476740e885a13da8d68a795e9924ed844ccaeb697be8c5a64abc7ab83a163cae74ca187ddecafb53c05fa535d43786679a429677cd3f672b7c9cdfa2f4030c3fc3a147ee1bfa8e51ad905a778ae9f69bf04c2a90ea1d986b15ceadec205eeefdfd05d55dbc17dc5eaefa9646c3a6029beb907b633fe7164bf60fa5b75945bd0d776862c3c362d06b7852ace9f93afbe9a4d77c548d04c68216f77f569875fa677921c671fa887b98866e9cf58150cdad194adcdd34431efc3735e78f6d5d9fb359e5c3959d72b37a52c30359dae22138dc495bb2cfdc4fefccc89eb6b70764cf64cb2b02699e84a562f076dc53fe153d8bc1ecda29387a15da95eedd8d8c666b3cbfd4882188b5519e06ba5ba1869463834b48dd9a2d7d6b46eeeb83834b7db556a0c6f486974ea7b77c1f25f91696798fd0cc1d01c41716fab36548f4f7b842e99a85b6dfd2ee7dbb92d37fcd6f37f058d88bbfded194bc6f65c723656474830581bb92f196e9fac65fb0bdf662c34cd1739edcf8acf1ef91f24701ec6a837beef54d44fb50a9150d9401dd96c3abeb02ec73b878f7fa1cc39d3ec5d5fcc4523a948a30bb1da4b35890dfac21f34b9b571ec3593e83adcfe4f8ea68b72772f464fcc35e3dba3c0aeecdc7e7ad7ade47ac7ddef66a2a76d52a3844b7f6866c1b4bc81ded6d3155d4bcb8c13239fca6f41cb2bd92696a5060fa887547638499216fb31379a45bf7b43fa2e75fe38fd98d7a4ae2f84477ef56c8ee228b3efd3cdefa807fed357c455768a77cca28e6984913c352736e76f2e92de66f781dccfdb0f4fb53e5eb6be4b953dbf0e783ad77a763b73ef6c03c4b45aba24a88e85c7dfc4bec3049447e688c3f214507256db838546572a42f4659a71a953922557664f6452fe37e8b4ca64b5c24e5cc74b8e6a988447ce07886cdc59eadcacf5cc5b17b4b0d058c0b3c6e0df489066f4d2ed63a5d165e61bac9f2f8fbd0e18cf46476935fbcc0dbadccbfc72cae9b217d3adcb3ba7e0b759abbe67eb04e06c09ffdece7ec455d8d15ea6302372fbbffa9933862028f7bdf3a1ea3fc093cafcd1bb347096b53929f1904febd86eabdc6ca5086c51b0c471a7cf781d1ccf20bb567ce472fc663ab10b75bdc664293facab5c5d4db37a4667f646ae66edf46ac243805ac78e5c483e266f4dab2aa705b9b3f7edebee79f351fb4301c562e30a513f6c73d56cdbdcf439f3f62f33f4ff7f876f5314cdedfb4527ad75924c59dc03d5f604585571f7e69c7c8f254bcc5af0ced187401efacef8d61e38 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 5fc00f89563e44b24cd67d0ce684effe5731619fd08e7d72e2406eb016afb66b +public_key = d743a9919ce4933ec6bdf338099cd7f31d64775b6700ed30fc2e53478b67b0f344da35ca35e4b7c289a503d5ab9eab6e384f79ec8ab67c2f64d7b9b80d6bce26098a305734e44342a5078597f3bd574b931c3c74461c8da866f39c24c5778e5f7f48cfc026baeaf3f8a92d7f519ecb7248615bcd76f12763f8b63c0b75a1ef075b6e1c61b1c3bacb9c8895286e317f9ce083b90df566ceba4c01ed6215cf95ab2b95e2c7d033ed442267fc87b475a63b53fa84ac9fe3c8bdd3cd07ce385abf63d22a588c9ef6f2d6e5e3b7d5e0ba96036eb47638a9e83c5bd3f791b46f65239dc5bcdcc4f3c9390953ea4ef875c5f3df0d4eee5e8344deec53c3b4bf584932f168710f66cbe718886e2ace069d34fcecbe39e5dd013cdea26b8cf148d7f21e7f3276ecf9a7e4557dc8aeda68022ccc44debb6683ff5966c11fdff1ac678bcbb8f4f43c3eda94401c17c4877490e4393404db53a28bedd3aab78e25fa58f3741e1bb1b9b8f02df64434ea9c5a8c9fe7584ea548f50db9f295d3a4abbc3e392a36cae9af1cd5e096bfb2dd97ba717facec4b7b83bb6d284c5fb3fb634ac3d12e98f5f8748022d8cef7367ae47bd21df68aa8239d07cd9fe0555e07dbc356293d41bc4f1e133ddca95d2298b2aea88aea5637d36f390a7998033dd95e8ee6447c5d5b6ba2ba6fc794c899f45860659ada530c7669134519b5d1e6ad759f9a50778afa6dfb942f98b50067455a7b6930becdc3dedf64f9e14b29cbe173ac50cfadb95c550ae7a55387bf01ac3c463fffed7bcf9e34da6dabdd089cd32aa9714a6a55c79f635b79e1d92353c68794be35ddcd65782a6674f87343a6654324f47f5ac9b385cff767ddc9695f753a4449e08371d61f8f3193eee776f19faedb206f67a57bc991da5b2b69a5aa3efba06ac917d45c9baf5bc1c5e3f7144217e84f1693360fad690f5e688b7d4c45cb6b117ea0eaae30abdb6cd3c5fb8b4f9c34eef6d0dedc73d9f8daa5d7abcdd950f37e9bcadaba8e394b137e337a8825aed0da175fe9299de2eee3048eb3fddf65f7b36c00959b5ccfc150eb7dacfd5bdf69de33ed63a01a7cff6a9a22c56752c8b9496dff3f8ac5ca444e10bb6bebdec7558bfbb2e37d5564645526f806a7778b1938fcdb7da3e64c01c4a36a847b77958d27ab9defb6f56b6a30a9b9962175c1382ecd28e979e0e6d196ba8c3ca4daa57e8d39a9b280486a6d2f64640c4b0974f499957be974fb6b545dbcc868098332fc1d3d75e38eb7ccbee64a341b38b0097479c029f57ced3d5d39de89a6a6f0c6e03acef8b47bd2bcd750a9496ec4fb8dd6378e1ac77aa9f37a76dd72d268c3667f5926cc76b58b9da14dc173d7732e24d1ac3ff553d6aec8aeed052c569c59393997372e548086abb4df3deac2ce7f25d76fb58c4ff348dcc5965720b989f4baf52623c215369076e771fac786e8fdccde9e7da75ef6fd7edeb76948f97a5c3116869b1ea46f7efd9efd4be1beaf0e8c8bb476d7ea4bc4b5bd4b3f79a30a3ae5479ea79217537b97a7dff6ab4edc9e2ad6cd97d3aef52837afbf32f799a3cf3da6adb88f6a0aa73ffad0c00e46cd5447c6dc483b4955a0a3c241e7cc354cfc7085b84d5e62a49e7d61a2d0e85a009833f3eb2305d7d435e2a4c81f358aa8d0dd50628096f4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: ea22a76065db4b565ee1807fbd813b43bde72b0e08407fb867c6a18995025e50 +public_key = 8e4458305ab8304a53b5c47b43aeeba2cde1c4eae1c09bf81f6f5f6f37815dcbef3908c4c1646143be4d846b84011e4face5cba679e79f0ef2437ae975845652c5cb4ff62fa00737390df7450eadbb78b44f6e619977804adae7defae6bad4865513314488eb197cfa949bbc9aa8714768d61465a9d0ed9f2a23e6ca875524ed7fbb5e52973d9b6b7391b9de92022f78d684b25283e8f30a7c1e598a060f7409f65a7f36b57f693a660c7a9f3bdbc394f0128b87b005b5ce7631e5bedff858831dcde12f5b6f04334565563e7528f0da374ce38e9e4ed9bc5a959eedd4d52d6dfabc54baf30cdf426b77de8af7508e45118dd42f7dc19a09421464e41d36d0df76a7414f3cb897d65939cfb657a76785b35a5868401cb4d88ac8194769ad2499f30fdfd3ae88e8e47e918cba744fb4c8893fe51eb47b058b017d77126e970c4331ef67be34bbc4791e71c0ae9d52fee612f93cdb7eef4ed88f85b87e8beb6359eb410f7e75f06e71fbad3e2afeeea8a6caf023c357a87afc75fa00cd42213df95bd34170068d31b7a0599dd026a49fa1f7523ebc5544389cab2598161e4d4c0ed089d3cff6956f5d0b5a9fe652826be151ffed11f562196892cb4e941b56d18ee73684fdd8535d59497ad7bc0f97381d3b72abefcc13ac3236b47c63a6ed4458aa7f4ef7c6f361e75ba726be6774cf6b3572658bfa6abcb6928fcd3b98d328bc4f53cd75c25dbb22aab08dbf326815712bffdcf2ff57b9e6ce0725782e9590192bf055a45c4467c5e7e7dc35b8a61a48a3181ffc298b61289ff03b9fdf226e844f6a6fea58ca9f33d713d7d1abdf700bdc951fc9bb8f66ddb9e99f2849afefea6c366c982f3680dfaf4891c631a113fd9d884a5ad9a11fa8331be85f1d9ec6de2b4143ab403b153d9de7e4dc3e4c683ca24cc45f87dff76058be32daecefe4e16ba386069856c71f8ca86a63fbf6c15e876d63f738f847a32166b1592c3307d9c6190c5c42b7ab756ccb394c7c27cf8fcd158bfdac9f04c99e30254d500cd0da1b9f2b74823f24f83a888bdff45ca218b89b9450fba868eaabea5858509147e60dc3eaa39f863fefe6ae08f3124cf94b8f5e26fa3adffdf91ab37c156fc89a4981949bb76404f32b45f7dfd8a71578fd159ba380339971857272c7bd754fcb73739c450b58cbeb6936b8cb619654037856935376acab92026bbad18c512dec4e1977e180599e0175ef008c3a050d7cf02535ad86d8e1f9f57fcbd4e419976294702e8434163eb95e2bf0c3be52a4d84965aee3c69a8f379b5d72aa86e01a4c530fab2e2767130ee41d5eed417fcb45147c562c60080c56eff7aa7e9dc4dc293b01ba935e345b88faba62dca043d94c4a666786c35f9318a579a9b67f4f914434dd2076e2a6e8d2fecf4aadcb42b0db4252ed6df92a67e73faa4a39d00a77cb30df959f95e288464c824872ae6a9fa1bb3a71d8879f3d3c51445956ec8ae49c4ae6ac4de2047edbf3c0b24af9b8b86b83dbf4531bdd1773933139fbab85868e4a9bccbfb4d55e4e52d9afbf76e72ae560c08c7f9c0cdd98ea4ec9c785ffe76ab5098e9f3c5ead6a7759c5f9661b50e0368246c5afbbb9b876d8d72c2ceca63a4e6607fe4286fd2062614fcfb544fca36edf0785c37bb6f5fc33e2b9d9d03a0a6c +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: e9602b34fe73ad57f4bf6ead99743d645641553a5b9b9bf2e7016629e3e9bd76 +public_key = 77155f91195dda2b52c1bc4ff328c3732799ea0aa8ee5ff9eaaf39e5b5c5a03ceebe98a381dc56e1d4b56deacda3ac52b1088805476c026d9a0a2373a4bca7892f7172c4431c1dd005d855ca059b4e554d3eefe03cbc7855befcda368ce30f873f5747450c4fd994898dac592676553676fc8168eab4ebe8e9763cd5a747659440c9a33ead7e3cf907ba0d5a875c9d882df3eb5d08f6f337b4655e70565891574dd35724c127c9c4b48572951770241993f787e45573bc711f5d36feb03b2fed09ba4388889568cae09f0461746d826ad48f276594433fb1cf636fdf3c39c40ab87b4b50bf0ce119fbdfecc35cf84e6ddc3e46e275cc7bffd9269a7330977e9dba9caf79c99f3db88815f5caaa84401cbde7ccc0fda4b250b7a2a75eb3b0def3ef05ffec55650029af652bf014f4669df3e9435b7dbedacc173c3dd1f3a8597b80c9c3869d7389399af404e790c9463f2634cc745ebac9d74b62b73e7e54cbbb3ab235c7c1ce298c0c0369de43f24ab7b03517856e43cef2d39f1e3f5d1f3fe998c53631e3fa57a880f24476a7e89f8c2bfd1c49759d4ffe993cc7ef0bfcab738f2648bd8143f08fff6ffcac763947e4859ccce15e5d4b7e92ded6ae5f8f8be6653b05cacf0efeb4816a9726afd89ff88fa52ea490dae3c6789639d9d9c4ebe8ee43a01989c51c7dd5ed2548ae24ac8cfce0bda7649e6c9359c45bf0fadd3aff5bb1ab3c3b5b88ceaf4caa8c7c7106616cad5da77f7897dfa895835c9b83654b358e0d57f8fec8a150b39283e345f4ed6b478dbc643dd9eb85adb92ef77926662e63edb27b3ca60843a647dc305cedd21a94aee9dc3663c0948bc12f0a32af533866f5931d5c74433f46c16aa4f028d8d06a6d50444ef8b3e71ac641ea4e7e2f0f5390caaff16c670378d952bea0e5abceb8fca9830c9ce1bad8d68d328003eee3cabc923b5a1a7c4854d841739e94d3685c03f975a72440b50ad2b11868a48bcb73794c83644d1d39b9664c432c7b3bc41e703fdded268a34a9aeb3dc79b9ae07b8cd133b7d4baba7f39b4098d43e4a35fddd8a9ffe41b78cb1f64841ebf894827bbe1ec4750a8e7ba27cb4233ff72b0da634eeb2ab344bd3778e4a579ac7d64a33ef356b28f2c1334fa0e6acb05798f73e92ef2d629116e30a1ac330c6cf030d908fb3718484de5caa5ad54d67ac7930f696bc9236f35e3efd71f57ffc2c8c186cef3e7e72721fff2d256963dbac5c6ae404b7ee3546695fbf7d743fe892b5bff01e4d6f88415875c014fe6e48d3cdb69cf000a39a45263505eda7554386d68a4d3a9fc9f6196015066d3c8f82e8d3398d2b5f62d7af5469841896fdb3a84287fe42a8cb44bf1eee0f2594d26e611cb335becde8d9e58cc71a363b29439d54cc6b293af34bddbbcb80c7797819a96c1316a78306e0987a3fbe1acf81ff2f620d37d27f47122c4ae3cff14648f05328c43fd4bebce93d48ddfb85eecdee7cb48805396c24410e7eced58d5f37bed5b05c6564ec3450654cc1befe62f7c0da794970ffbc97b7b4809aa30d577a2f44f8e59ff023abeb97e9f78edf6d94de866298e2fc697d961442879ab64b4ba0be3c46f5e55c143ff058c4d7c1694979897ca0615e8de05d85d3532060076acafc8e0aadd8ca7406c7bb316abfde1bcdd166 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f72b9080a6c051bbdb9b0abc1949034be0f89a9f73fe277ec4d4740c78d04a83 +public_key = 697588a50d46340ced782e5f0677879aab3e63c5eae7436c5b47370f2f6eb4bce5de0f81ec65c56b83b60ad4fde18be375de680b76460e294d842ce062638cc003d044af6308cd8025a594fa3676df03c87789a4499575949bf574f6931673936ea7ef2c79598a1b7b36df810335fb4df98c47f6afa057bd88becc5177f2fe7fbae0f43747aceec6f68087453e23fb4381e5930e6ae9fcaaf67565b1dfc7aabace34422dee57d9a4a454a6d1249c3cdba0921e3d0f2bf57d0986f23b4fceb35c95bbd5e3aeedfb28993998d8582a6b1aa9950eaa9c87c8bdae7372d47cf852e85c62acf5e06ae69a0db24c0cdb6876eb6d44c74c658ab9dddc756861be89f72339a60828b9f0b8a32595db41a5df97849decf7e4c494ba9cbd9b74bce6148f51363b52dc166f2216f3983ce9ef565f80583b85ddb91267ba98b63afb4ee60f6596128e95101941a0cd627cc48de9d6b2c689969548641009cdc57bd2a24dbbc4a995a8ff593f1fe3cedfcadbccbca41947fd8d33bbae754a98e5ae5fcc31a4d451f8a62dd6b39f2fa6b0db8a0f953c6cbca43face2863e5f59ab9980ebbf58ce457dd8361ead4e0eda771cdb37a6a54c6a4771989d976a957979ee984473f0aaa840e1fec07636de75e9a92a8d891ab6f45f0d3f1fd6363d0b6e5c73b476b77ef867a60c2f5a99a763d0ea80a4d6e739875bce6cdf3623f2450c93040b4d6c18e20827b8026ace0ec73302fb6824367ac8aade7df45b8516e8612ace285cfda55fe689d8c7045ee3faaeb2342736f60eedfdd7ac7f8468075a4a2d7960dfba9e2655e4a8d7c6d11c660cfceefe33c04b4681dcc3efbea47247bc83c68eb175bdceddfdbd0b7b622126cbe323986b75a407f4e6fd0d32fa2398e504967fedf1e993a9567e3a76365adb9edf9bec7ad1a6929a466f091e3cfd79e9e024d85e4e48be16debd0e4fb1fa3a1f07db3ad94baac7be6c96bc0f28a021e39cc6bb8a6e16312255880a84778cbca5604e73b217dd527357cac69c22587208496af27e5711f76d5c185808ae3b2c89eb91f54b23ac8b66c7eb3f3eee5528dfe8aebb2bba7f97da8f82734ef777b7d2653e66f8e4ed7871da35c9586ea88b7eebc383add9b3f9717fe2b988def5d53e933c99318ac47e2685a05d7bb50597c3bbea252c77d22a817c5dfb80a635330feb0f296c40bb802183ffa9ead1bd6dbc663ad7559e4462689de756a398ef384c2372130c5a6f05ae6c8b81ecdff12593df04d3740d2638d13ea21f1653c4f664cd28fb11887f4784c27954984bff51c923b5c2ca4f1777cb3eeb7a13c351c07c4f566fb4a8a477fd348bcb9b8e6bec787c2340c03cddcb236fe8d7c6ec8bc9d156b89bfbcbf5dd599848f63ad5b910ce55061e37d79ddc898c8a50c8fa4e3940bbd3bcdf3de3889bc4f3b7d22d7c49370ac8d826a3aee946b79897bea8512d8b899a9ce7e439760b58859393a5c264b5f15499419e4fe278a40b6c9a8304775bb3dc8ee4cf234ac5696fca2e935691f4f6923973c32b4f2408cf63c99d7b2c5f0c5aadbbb9cb98b53f787431fa73542c5569e5f5ccf0e4a868cac6529bbde42a5f198ece0b7f9e6a63eb0d5ded4979a7425baa8b0392a8ca9374323ddf2794c237e38e45a43a5a34cca2875d19217ce7547d2eba6bca +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: f1e5542190db8ecf4b8d617a04fd3783ad0df78bf8dab749afb57db8321d151b +public_key = bafcc65109cd5907d94e05cfabe4515255ccb724b3398f39ce1ba8c73ec1e9cdb444baaa6ac481db8b4d670ab65daf7f33b9fa11c48f6bcd38f19e4637b749d8b962c00ac8ab1cd19d9f960ec3817f34840aa7b63b19826b2ff34b8ec9faa8995d28c4d4c44a10dfc5182dcacc8751bf6c31cbfd45a79c6f9b15c2d406c11fc3b5df6638e1b83164175dca6ae260a88c74b4c2432a9b76c39d43597ce2e3ad1797c25f967868b66bcee9b6a5deb540dd95413fdc7ca75943d5fe3d5ae24453499c78ec1fba4dff8d919bd9467bdcdab34b7db71efb18b3cc4c679e325b82518baf5123c88786745c5ad600b3d2a2a367b717c3dcb4c32aeb4770fc93e12e3aa55bfc6a37a3270ef2d917f78203724ceb6cad97e7fa4af1072e7864274e633dd6173dd52799ba22675db36863b2a447e5b6fb3d35e1ffc83bb34cab6cf7356a27c29798c00cc3fbbf2df3ff2ff1313cc7ad69e44fbb98d028fbf0183b44a9dda92de6e2995207ffb0af19c8e22beafe8c98d608c0c7f5f075137cb02fc69dec4e0f1763c8bba263898b30946663d84b5e18d8e6ab9a6df970d25683047d4d4c75ec912b7297a89534f3f4faf6f62868dbecc3a2051cca9d5757d5e53ff80cf52f4fb2aebd6cb2547296ec8431fa6eb8f7384fa559f9284d528761faaf3e86adbbb3e57b7a876d2d4934d338389076d6e6da9a312ce5cbb3df3add523699f4638f4bc4a4b4d6b343e3594fd9d68972d99eb26538f9fbefa8fd718aabcd5dfa5a671bdf8cd595ef8ad82abb518fa34891a4ade983877a333e956bbec9b8fa1975d866a8eb8b8c406f2fabd784aac085b6ea553e314d9ed6b39b4f367ae45b9fe109c6ecc5ef24dfa755caa347aa95e656cf46ae5e9438b6113e717b3551e9f3d20ccc330f254e82d89b5e4839a9f8ae267b9365baf28786a371859d3847ae697e3df98768a1c792adba39bd23591a9ff4376cb9c11e777efc4aae1c3d179583ab0952bcb5b1e8577a5c476189d3301bf87fd9bee63c8ebdb4a8368934ba4867ae4edd3d41cfcb5f974a5c36a8d699546d93e095e7b35459d838b4d9016feda5bddd2fe7e17f1d60dfd363593ac11be3effdcd8c1eb8806f24971985eea3eb328d3a365919e9c33e742add486266968cbc6973d483015b77eec543b7f971523589655732bede783365761d937266b4f0ef3b849a73dab5b4d040fd9c117ce037f4576c58adecb5a5e0899892854b8a7ec9b76685165ae4bc5c8b9c0fe3c6c7ab15b35e25a586e465ac05f3911db7d63208c3df4692372f402559ca963a39f003ac0334ab1aedfed58c990ad983318b33429acdc637a83a3d82684c517b85e94506bbeb9686136a3c8a284c852ca747fb709d4533d133b5798b50c1e59f9e99781fca9f447340705c6cb8fff31e257f95d681805b8cdc03e5780440603db4ee63c1aa9c367eabc3fd6d63076e6eeff9e0275d7780e6339c2d9cfb8af27596957b136e1cbbce15fb9a6fd9bc798c40f0ccb7652be50d38ed78b3508939ba836ab719dce9c61860bd3c624827ac26639c05a39c89ae873214e75cff975627f3a16375dbb5e947b83e46e84899377412bfbf8b743cf8ecf3fd2ca07e1eaeec1990c42a7321ac6f01cd866f8719ef21bcc0e02346fc5d8ba3d3e7f1fcb52d37551212d647 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 74efa414ae171bf60b6f884cb7e5ce12028f49365daccfa23e845d551711660b +public_key = e28da227ab843cd49d4a7daf3b68c2566ef920773abae9a2e50fb154c8e59b63b4885736e63632314bff99db66fd53d7d51ea6697ec8ec8598082d5535e9d7c3c6541b28382496e738acce082ae4e8047a63cba2f42c71b33e57c85a7763d3cebfe93aa70adb093f84ecb7c4dc16c8119b5d90546a461a5b745be0850ef1bfefb5499dec381a9d561bb0c5c353377ded1cdc310b7edc8df78de62477a7ff6dbb6d38ad04371913b831d3f6c0537cae63d46939fce41c40a81b92a6cd4d69fbd303b4b38a5cc460dfb0ef9dcff0c8e475dd406c8b34b35ceefb596a704ca4893949614762a30c54857df3dc3a345268ce56cdbe97139f5f733664a58b67656ea31ea87efdef9ce9d2a9295356de3a15ccd44fdc77c4c53f672ae439ef83371b5db5f82fb0d789e877b6820771f0ebc64da864a01caff73c4a42b5416cbd43e29c7b2574c6e214a352f4401d786b4d5351a2559b87bbd0ba84511bbcea09abeb33e8cd45ead78d447b243f6574379dd3e3fddc2fc6a4037fdb7e9fb104c8600f64ba4a9ed0287a32afaf6d68f91676a37c434ecb234e4e1c6490ad760da57abe45703e677ff0dd36884e5133dd325239ef02f3901e2d427904511face1a8fd70424df033054605e97fb719a2f70648a2d3da0c4f899b195ea8e6cc977ed943d3f76698a34b6e893ba8770c69cd56febc100dca0e14e77d0469c4833fcc23a6ed339acab9eb6e18e69244df53cac66af5a6bdcf391729ce4e1c88d6cf610c0d4550bfee8faa64881fff1affc81d5452d527d2561d8beaf3979ff9abc3ed4c8e3669c6aab80e2b6464644ae2189c81fc92d50cc56039cf5eef325af5e63a1b63663ff2aab35e1753dd16477537f867ba4ca0eabec83d6ea562c6822f6ebb155d426ea7e6a78ce934bbe7ec69563c8f99e6ab371d996849c8cf7a84ca1a9bb655eeab20b8ed663e4595b5fba28d76f98ef532b8eb01ee9e8734968f87c03fa4763208862d9a3ca64858258fbf0d5441fdb7c84bbf37d9f8628fefd01b6de33978ff9b8aaf6606344b95342fb6fe783ced966db6ad55aa333cefd533a74e0f6a9c9757f0f9ebfc96545d0b647703f09594dff0b4e27b16c32b63547158d523f93017577513ea96159ac60cee79d4ad9c5ccb6df54e74de866cd7548339e3e4d26d718f36fee03f382925e97ccfac6e3a4f782f9e22dacbdfecbe3f4b72ac6bc9d9354e7fdfc31ce7acd7f3a2c8b9abefddd614be600c8992376b73f9cf45ac9841ea06409454b48d8c3a152bb8d6168a3fa6423373651caa7aedfda5971641bd66897e5991e793343c5e90bad3e07eeaabc71bc34788a345bcb9ad8a45a51aedbebe846bb76206bd6e8aeb692c5fd0a59652495496400ec94623e704f6b181d778187fca6365824f6c6c23aeaf3328a2c8978ea8d7c38f7ad0f7a6b3a51cf5080ed4f734f0bdf98dc19aace30b79296ee42d8b43319c93ccfa966e7ecff945ff25fca9e8b3d64cd96e42e9a295ace28fd5329034e9b81972838532cd0cd9f34541459cc68955c9c2a431bb6ef6c9ccd8039ca45533ad8108beba49bf8d56bd44433fe12a6c55d4ef3ddfd561bf8cf15dcc1f195c5f8e7d23d95e106ae35569f3cd2eb13c9e46d34182974451bd97b6a3da440de6e5bbed681d6eea2c6822b361019afc +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0b4c3cffb2ba4380ead13dc0d8acad2356b448a810da1df29f264c44aab6d24f +public_key = a6cba4e1a93cf066b6c6284b86ceced4a4b17634c2dd8c758ee3cac75bf40256dd30defd98943de4dacb2f69e2fdd4ee8b1886f38c661993e678efa32a63860d3aee9b994bf4f9cdf0c3c83c6bd44c14b83e57c59d55629aa7d4994a4793b7e78b69ac199fa5799dfa6aeffd609a7832b55e731a65a2ff975397df8f7bf64448f4bf2f7f578c6d97c57e570864092a66c8184ca59beb8f89ba9c2a3e7a17c1bcd851aa65fddbf3d1f2774e81397a572473634f6807f370ff2b7f6f8bef5b83c2f3475cb225b71dad750f333d72a434c88a902d64fcb805e06ba8ae563ece60c5c29057c2a995ced8a34cc1db7005c478fa174874bbb82a9ee07faab591b8c9581365e82d5578c55fc06b5f588c65e2ec700e64737537d8853a8c9a1acad4cd8bfd67c553b9c6042d6a1d36f76e66c53a166398db6b2f5e754e2a67a559d2cd5839b97c66d35fedf86c42c728ef8adfafaf4ebc127fe2a759f6894f4a2d8eb85b06e7ed686e8e0e83c118fdd62ce1454e7dd10cc0e29b3168144064e7d0c3af95c114fae40848fb07abf2aa7cb2883fb19454a98eec7277dd8c1be52dc9cd3abed8ad9348089754703a608c0b54445d879ddc71c19d51f92ba7567e740323ddc4b95c19d3510363a5de7fdcdfbe918a09ded1267aa9696eb0334810b9351df981a0749a7e1cf53d399a0115ae515c97b64aeb0cb4f795fddef5a9e2a357565c4f7dd5aa54b706b0df583e2fb68ceac6e3960f4abcada8ba4ab6bae958dace3eee4dcd20978eeb5ba041b8375964f7a644a85044d168847acbb69b8d78d9b849a7d6a6b67c27ddbeaa41be8341c6977dbd0f56882443975d3411148458baf800c441963eea86763c54e45345bcf5864e926b4bced6a337df55d6113647829bfd4e45723d68985dccf772a6723a13fbb3b84a140a95dbc480f1495118238e74376c3aa78c25e3703dfef1e8576c22faf911abeeb5b946d36ecfdd7e980af7961a7ed74584a7eda7dfef39e72cd98a3ea5550f994f5d763b00fd37facdabb1459b825c6debcdb35d55ea9eac64b03c3c0139806586c8e0f63b8f77aef6cfd7d36e5d5f296894c9a1eb0b68d067e352ee8a20084580d98aef13bc4fdd39d23fcf015bcbf037dd5ba7ef10f581093656a19eaf7f47f5a3ee6c8a74c541345ede689321a436ac488b23895ed3f8efb5ff5b83964400ec33c529350bcf9f4886e28d1edca9c4b6d3e47d7ac798569f51bbe4bbc7ea4ece0b76e905ead819b287fe4fcaebe231067bcc1e3ecbc737020b47587c4920df6541f47ee2b6bfe79d8c73ebc3715c58aa93484a6cf692598b4955f09d57f5854ec2ceef53434a5a1edc934c9762b284d795857e2569f1296a8bd464ff82bb6ac8ef93f9e4b78918e0a2e46512ef41163bfaf6e38c2a07b15a38a494f8412fd4dd60847f957b7839e78936b6c1af9d6089b8def5c58e2659be2653d83a2fb22da53912055f26fa7cd05edabd4fcf21448291be68cf7c8ba21bf8dca959adcf53bfd4b67f6dc0c508f82848fc96f78b48b4a4c746c32d0e9bf8d3f02c46a7a2c9c4028ddeeb2cd13bb399d9c6feae9a4e68e4a4bec7b7fc9f888ee9bb605faca4abfe3f6ac6b73bfcdcffc755f85fd14903d8712fe0bf82ac0b06aae9bea06278c21e6257bc96af0379bca07c7833 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1c82471dcdfca3a6942061ab4f3d5bf0d197321437c706d9cccccce449447002 +public_key = 5a13f2a62aa88988ec4fa3c36f765587bfc2a20cac081cc08d06ce1cea6036463dccc34bc294a51f8bea5ecd778c143f57b9ad2c8b41a3b3a7e43e7fec687f50294158bbd7442ce19c299d421b3d6ce6f019b4cfce69c9dc65d9856b7cf087b6649e793e8bfa7736fdb19d9861b46b5d5cf3fcfe34ad43622357a81cb7c9f5ac9cf2ce90b907e2164a9cfa4892927364d90dad80af888dbbaa21b689d5bfdfd0ba43f27386fa1df63237d5b10ed79c3f76090f58133ec44ebda43753779fe88f3b8f4f2ed858211bc172d49221a3ec3e96e88c287a094bee002eaf19ded04989f21c85c2ebd5700473913d465359bce8dec3d55075386ac3c330887879d5ca762b6b576b7f2e5fff23889d51788cd84b77ae879b1ec7d26dbcce20cc94f7857aea148214cece867f77a88d8857f47e45cb9b561b808a5e42463bcfab6c69a88efacbd64a3b77f1aa9671aa934cb1cebc52b464603779fd6ab10d57cca0a749f4ae889f1d386cb7ab0bdb86cdcdfea614a0967adef2699da6c7f82713874f36468d3de4539bc805aee054eed25133975e69ee357a8d89aec7139af00543a90f4aa250f44ca61870d206a237de917c5d9638fb6442aa7b886a54fd2eb7c41aeb7e0f7a09863efa4f80c67a4694df8a0f94fef2268e0a67a11bdb4a18b3c45afeee977a5d143aaa82c8d52007fd51df48073746662b78ff68508673fe314d85e9d7d50a754b302338f8afaf0b2f3e4583dde46d74e1843876a6b1cab85e0d984ece18a3420aabf4d740f6039dd183c57279469bfb9f26fa4f6ae59db60532372b729cdb8bc9bf6b9f6ee234177af37e7538383bf31d3726c79d84b4489d493423f7375c273a9558611c6dc9fbfce97047566ae9411637ca9dcb956a6f35497f80399ec7294f9fcd99c02bedf0c12aff1aac40b60be4fd6c85096ddfbfc34d762d80537ce50c5df156ee30c3baea4f9e4ada0740b5178c83a67fea746803a35c36a3cc044d521443d3bfee80d8ead97b24c89febe6583b972b5dc89b5ca27dd4aaa21dffe33e6940a7ab295bd2eca4c69957b3d02b538c239f18a342afedc15fdca57d28930b7fd96567801f64c3452697d5f4a6688e975b54dab4bf7a5db4ee88a9f8004f402c2db93fa9fdb6e4f16a5afb169a69538e6d61b93a82c5c0d69f3153addbe6c9f36ab96d076b36d406b06793c7c8c85d6904f4774c4a0c143e27673cecaa38c67cedbb0f860ce3d5215af637b9dcc84a7aa6bb919e73c06ddb787b1b9118afc6fd577a7ec4e7d5a34922767badf4e2bf0fe3694373401554212ce213ac7bd2decc6104e0dbc65b89ccb3383c30476932d738b181b64e2bbc9508268c716ea4731c659d18749ec3b87c3741d176dd10978cc91ca44df588c9ada7a68670a003ba24fd3ae743d67149d83ed33c98dac4c06331e90b59514c7006ef7f17aadec95e7931b678ec849789c656b30c4a747fd9e80e51cda7dade5557f9e6872248b94c894221cdbd1b6a3a0149c1bbb8ba4c9337aba868b88e99939d44f55de8fc36eaca4bcf107dcc1444411fc8cc3b6b7aa7ea9f8d06a30c7a61d8ace9e7d5db85af78aa2eb74e2936ad07ae2b17344356a8e74da9a149f048cacc817bb0924682a027f2cf6ec9b36aad177faedba70e26db0e2958e3d520d23b10254587 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 46fe60a18124125ab93e0c578f1c02f1bd1301595013001c7f3c2fa56cde294e +public_key = ec8c397304996cf4f77363fb2798c4bb8a987e57b41c9fdc6f9bfc6428e873bc6516bdc8111d9890b8abd9bc650f0344e3e7a673ef69547aa4bcddbafaffb2f3b53b1a1db255f7cc6dfd394ceba359685e9f6c77ddfbcf0217611d076ab224da8dc5819aafa235955b690cf621be92556cebed2777f06f3760cc71b12d8dbf2a5d994ea231b6de2516c5ca3c6157adc0862b54c41ece2b6b3f442c8082348834be93cb3bf2d35fa9ac98d98d7d4d840fe8ab2a879afd31227b95e1fa5d1a74e0e40df6485338fb8338b5c7c4c0f6641c7e64502ee24b13c2de3ed88694d35a66a4c455eb5f66c9d5aaa7adee5eabfd3497fafe1d693b77a4402ede943e9c68cc74f997a44d2f86a339c78912e678d0f3e4ff26fc0e3c9ed8eb726ee9e0d2bf6b9916ec0124f380f5d74b5a46505863f6287dc194f2b323c89966340f07e56ffce80a5e47439e48c257e8302ce06dcbb5a1b644e6af6ebb566b504a9b2994e00bb6c40b55f86d5cf841d774dc99e5839c32decffadd4ec0197431bf8c5f27cf329e7bfa0e0bfc0d97fc4b9be25d997937236caa455389d6df9e38ba3a76fac7349a5c97fd84a353fa8edc6c7446403fdf37558458d68da5e67f123dcc5dd5ac4618f20eafb8c9048bc805bb1f6bcf043793310f5ca86b42cc46ebaab986c32a9e266bb1fa2755229fa56b5be11564646c8dedc487eb906ebb5e5ef78a39e920bced01649267344732a85109a3cb45b7b8e9abb8cec49ff70fc819695f621eec7ac5957fccc5085943303f4d6623459d7bcbfb2d645b2a54c5a8ba0eff7f93ecc2ee0d821e98553f78d623ebb221953d3d9b8d198d44d693abb88bc965984b09eee2ea6b4885aca190f9877f1bc1243fdaad76ffb7f5b0afbaaae118c6108c98b31a5b70fe5aad0a87b27fbb40998ec33fa9d218bcaafd3e8863391466ec9ff65be6dcad0165d9032766472d8248a56e5d3f39fa5e585ee9326808a4e408faa15996452a3328253ce2cb3613aa4fb02acf313db64c7af7afc5863487b9538b53a3ee456178e80d257f4403b41f16b41584dabc0f4eb55cf3d6a851bf9c54942f59d1bb510964445067c68ae362dac6a7c4ef9ed318db0e2ea76fdff0c7d562351ef3f7b3fc62184d2e7d7145ae565e53fdff443940736cf628caa46d7076783b2b29bea7058bd174f19518aa78cfb304ed7dffcbb00ca3def1fd632d1daafdf32fa7bcadc67e9fdb69ec7635c3af93e98ff3d6076a9da2455963c9e552ae61814db0eac945f788820a1442cdeedfbdbc763cdbbb6f3fee8bdd76880abd561c505aef3709e4d996e4efa70efac4758b62644c31cec06e0d80091b4d5a97d5f5bd694517f52ffea5980a347856e60bb3f56475741e5da7ae465f1b444a267f9ecb66585f5e992bc781f29ce80593c4e598fc254de7440633007db1c637733b0ebb8a994347d7602fddb3436e603b84b8c3ee4c5c56e67af459517e52db2e6f272371a0a8efdbe740daa78b9eea655d98cd14ec90cd383863ab5fe8137ebf9fddf6bdd7a288586e18a54b43387de9b7409d37f27384be19fb09a4e2637d6dd6db377f733b31a49d2467605649b9609365242f52a62555b155e674c7e7182870c1088f4b34061f3e8b9034af0cf2c5f7eeb665e064f5f27cd5e4c84531d45d38051ef9 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 52fb7cb6a633fd2e83f2892bd9441b48fe59ecee6d026f5246fa7f2a5e55ee3b +public_key = 1808ef4759dcf733359bb77d87beb949396baa99c9d73485e378b6eda76318b961948497db64e49f386e51648187c48a94fb603fcee4aa4d8ba1df7f3d7e7694f9459ddab7c6e5ea58d5da79ccd72d87e7781a6b12073577d3a89b4d582995daff75d23a87ea5f5456ac5b3970d545044af254178375268abca9a96705deb28635b2edee7d1969080438368a4b61f63efe8fa811f63909aa48a055cd9345c0929eabeaab8237696bdf45e2b7e862531fbfe66ddbd81df066357954344fe46ebe084d69a62da470eb64bd0f89f85c9819a5e41a246ee3c6673eadf6b7b490a838e9ee28f5ad49f84fd4ea01c936d038dc4c78ed62e47de8e339fc1adf959bf79ab951152d9231faa8962754b13af2efb67ed1d4fe8c144f74476f553af97e7573a827e7144648befa3b6d6d96f428c10fe9f5ba86b29c8890f285dd1e7956664a714fdcd0c88a3cc259b503d3ca39a4f987de9ab6d76378858d679cc61ac4dedc6ad07d33813698a6ae96acbe95474b188bfe4fd8c895e79de868de0f7f12256b9fe84ff56db180c7655e5e4168c89a516ba4ddcc56c1b5325ca3e2e067949a67e7836ee58efcffde69bc9e6ebe726338830a86e8f5f5ed1de52cecde86473e2b54ab6489d735c3a945cc83b999352bdf587fb67dcf2c9fb3c9f1deac54dccc8201d36562f64831d8e29e67b2ae78bfacba95f29c3d20a4f782ed90ebbab81bc5c072bdbce836e73f0cad6d2de518b56dd03a8bdc97fd349ff5bb26e28ca8c7212867daf5e3ca7eb687297e4c098ff7c478f94ea29dfaf78d1bbe564f332147fa44937d2aba34b279c99e8847c5d4b51f64e43de991aa16aeebbf67386c7f286445acb87a98cc93029658bb0981048876f0884b526ba5903de258bff45849a57cc4f5cd2ca92a3cbcbf963a4f46de8616c082d8be492d323d07e6bf5344fcf85ba17dac3068ae91989e627dd416d7cc28cb6d42a461dfcd83f71f6c749ca457146d114c84fbc576a7dc8f9c3cd3cf4a3cd2535a7a396f59d73259654254e5bcf616b4970770bc8a3d030c8c61d93eb0864415a4e4dcc6428be7335763ee50ba72b5eb99d948dbc59df33917d367ae9761cdb15f3fa48bfdd38453527c1dc4ab7beae8497f49dc47e25a514258b5c0336a8135f5c5a86e22d73a9a8c3da5e88a468c3439464fad4f491b0bc91cdace7cebe5167ad1b62cb22b745c38ca32aa7f7c8c57537d7f563edb4aa2c4d0b788e15b36817f188e65abfbf7c999d108c5b3df52f6a3bb78737edea48c9bc9ee917487e4f6e56dca609aa97bf47bab00047603ff96d07ee29a6edb195ba59ae7bc245b8c982e901995b6df59e8853de7945c33039dc6bb3c46da1d4fb00e4db77f8c4268627f8c884b05ff011344cfa795f864a474f9c015bbd9c789e1a8b5fc1aa46aeed6560d4bb1f3b64d660f8d373ab3d51a450f7dda239767aed9cf25b5c860cf4cc7a4e62ef7de13d88fd3459cb37a92d348a1956bba0aef4513d5a5fa79b593a849a1a3d456f39fade44b583cbd7eb4ce068d56df38cd0cee520526ef54ffc8681cb9e015f5fb59cfd86ba1af8eccc1636dd69c81f07fd6526d6326b4edb9b68827378c2fcf38e9179c02965f939afd0aad893c30d27267e416287d7ddec314a79402a769c3d953f0092ef4f8b595f8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 0f81a5f97082121244403da3feeb734f6084b314b8d94beb11627aa6ad1914e9 +public_key = 776b6f121675622857b8b376d708b2a96e306fe9311278f2e2e86730adb577e8ca3f16495b0edbae456a734368677a87fd4cf19916ddc1993691ceae2b76959664a1df6cb2b3738b2a5ef4918596b0d69394fbeefba83896dda7f318eef81769437cb63c7f6d4236a65c87c3929b79fe34438a8931cf2b889d0ed1747cb58d373491e7cb62ebf66bfb3b7e745500fa418eac8cabd966dc388d0f1b3fba95dbfec8c03a39e82deaa5ed4f56fb3b43704f9cac87399d6ebc98497a3adad7cfcd6a138f31f945a4a335ab6d1a54a9a59db106c0fe6e360ce8870d1cae9a3de506c9c96d4969f4b487e4d87ba1d45accb5a754585f29ebd991376150c65928cfdc9ec4f1366cc840e5f8734c8b4f24f1ff3dc99f4c55f2ef5d19aeb0134f4cc906f60064a61c1b42ac243b6d8dee2a3d55a9ea7c44855e575cb6217c381de770cf56e041dfdb2cea6c2bafec9be483edcf718dbcd1c4a5a15c6dbfd63fffc988c60b23504929e37c2ff6d7c7ffe51d51558eed2589da9f64c95356a787058018cba9975edaa5ff9a62b6cf77439b5784b6749db96db77c1583bab59d719e8d4e79b8954b9483895e4a7fb78ebbe7959599ca374a66558a8fbe7aac91e8a62ad6f3690a952e94bb91e64fe57ab4db066867ecc9ef0f7163b8d10b09d248ace0ebb736af6e9dd0177fcd16dc4657488bd5d044e4c89529e351ca72aff9698577bda5536c3fa75f0d9b58693ff11cd88d686ca8921ca65b08d91f96d4277839cc9757653a46511876f7b989830cd62ccd88bc85a686ab6bfd6cfb91da8ae31d313959e91d23f79be375d3e3e980cde808a76caa8a843e178d0d0ce26c14e0310fd57f4b35c1add498fab680d45fd18edd762f6eddec6388d56d1d2f637696d3ac0ba9b69af11747d4bd25b6b528e4060f9cc5be8c6446b5afe5431f1af6c05db2f34bdaa413fe9f28ac9fb58acd85a670f393351b33e04d79a5533c44a94e968b677a6893159e310cd48ea22e3dd416ab650b3295fd6f91aa500406f3ba173795136eed09e698153b8d2935acf33709a8b33e4b32384bab51fa69ee1f3a4eaac726dc7041b486e8aa3641fb8d4809d9c27866753b821aaabb9894b504f845fbea8766f8f6725d6ff5c5d12765a6a8bd8f9fd3c10357523fc4f3e13df4587f35fe469434ace189beaeff58fba8ae5aa188a8bbf7e08ccb7ad6a469054a45c01aac131c6a7c4acd5c15d184ca77b8466b6d1992df9df42464e69a33382a7f760eefb69c4cd00caddd26ffcf484ef24dd9a2b84562c16cd4d4dea9ad447eea4d488824ea7da3a52209dc917ead7af54553edd60bfea66b3eb9468df4a46b3fc1038a7c54b76053909bbd7eb37cedfdf897276b465155aed0f7df9a4b9398e54d267377fc298b9bccd53b38e486f8436017c6d98b324ace67b17358c144f99bee7426bc9f067849d7c55542bfd5c1359a41d7a5fea37e759ad894ce8226a44bdcdf7e0276d96edfdda357c5d2af3956b796b305c29e87718f65b8331888cbd53fc20cd2209fc6f49c7f9a0ea5b27d59b81cb2eadafd349af2aa2ed5f79e40d22fbf59d74c16a840e4b646f6eecbda2ea24b6da0ed6cad2443d3a1448b685db4e55ec5e0f4eb3a12a73c36272ed86537f1d2f51a0e2b5b5847b0a2d9bbff0a051bd5227600ad +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 31af9345365549ea0360169ed57daf98cc5444799d4c75d9f1f5d615e9df8a91 +public_key = a6f3b26dad6ad98a9a700fe32b8889bc5e35580ceb880e376ceca1f7d87a53f78f953aaf9f977c2ffb4d04f88e34edba7d83bc70df7914a769ae48fba60fe2b2f59f010eca31bda0ef138adaa485953cb8b6f6ccb56a7c92598c0c83ae97684c26e7dd6a3edc8ede6ae08c4b3c1c30110a581679f45529be92d38d9cecb1102fc83e0eb3b376dfab4662fc559f4814e167fb3e7a6d328d7efa7e99a0c546b63b2bd4f22b78b95d74e6e3ff6e04b096eb89db7eef30267bd886de06cf38ea2a5877aee8121fa39c88c528977f0399cddb7a7c8bba3ba725d7b3db71324df40715fcc4f8e25e2bc03527fa968af1a068fa05f8aae39ff8ddca417555e4498fca3d644f6167ba30f9e368879efac5971c9bea7a9674e804c08f5d6ade53bcd778c1af4637584b9752baef16a4319d296b93e5368d1d863a85cbb56ce1c56338286bf1cd84d695757adfbfce48b7c658a36b26b670e59947a0d94d032f84bf0995d56666bd7968bed8858895c779a3318275afe42488953791e97cbd6256c29a6c6e4339a15d7a7c3da95edd2a562ddcff70ed77ccdf317b9e4b975692ad1c3c3d956b26634fe2eff35d76f26ba766a447bc87e867490dcd898b4b02c491658b97e25a4f836ab98a99c669c6daa4d3d518a66450bd48a4e3482288f644038ab04a3815d6eda9a8e6eaf388e495cde4a65c13febb600fa1a2becedf8e79536f5fd36dff2a4b8bbbe4e23f7e462ee433ad9f3583c830cc64e29bac51f96846d8fcacece9b1a06d63744e58008342c6f48235df4571e5777084e70bef4b21eef5f1ba311f4b33cd09ef3a33d5fcfefe44ab54cc8c4eaf8553f697c00f8d40e85856922dbcd0166bd0eea66e35d0c3ab8acf3b58f23d9c6887f1557dfba7cd968553ca563f52d28adb05733d81486d86c590291a643edcca9f8470d573880d5856a7bfcbd0ff803713790d27f97f0ee649d5412713a3e52d6b1b7c85493e92175fd9f5c3ff709aacfc4bae52fe80edeb7e999ace2bf98d9595e4951362b08a6b52aafa7669c5493cda61645542ccedea0b70738fa07a7f91b8c7a510884f12f9ff330dac5ef9e687fed9edff45b277ff95cda4525b7f43fba328099bfe4330889be86e0f6232dfb2eab7b971ba7681fdcb4653652f8aa8b5fdebb77461d89fcd5ea4ea31ecd2d536f2b37c498f4e69bc14e8e23c5d3299972656fd3a0a644a9e8b18db48805ff849b67cf047bfcb0c6945bb87cd779deb9e5b64bad975e3e3f8a740de77b0d416e245acfeb73a3fc876ac39d8f1a52761e24ee5d87bcd1715ffea2b98d9d83eceabede81f4c9738c0df539045279eec3ed42a13791feba9d1ef3445293eb4cfc194b76c5febb5593ff0ca45deca9b90435372f3c5baa0549ff847aedc8e5c245bf7dc5866b26ed41e884befbc7bccdaffa098b592c5aef7f53e0e8efbd31e9215ce5f8ab848a1864706dd511d5da9942535cf06952b0357445a985434dc026733ac8a39eb3c8bca2939d195763a67f353eaf95679944867da21d58623635f7a7461a913c24bdd4d1495c1ef4fc88c8f94211fb2d4c4e0fd29d779a6f3f1b373b9c438d2b4c3fc48c054bc5206273f7a9a3dcdcdad8e5dd70f0fe0e4cc99c8394adf63126006ee8cbb821b12a2a0a3018c4f8e52a50183fff79e84c69427 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 774ae54093d694ef40b63b62c73e6c98295f606feb8699807eda1d030ffb996d +public_key = 191bf9f6e7cc26755aacefdd4be75f2fa4c18303319eebd0819e52b347f6b1e54c103f8c73c6805354925b43a6dcedcae00dc9ce4bed7fd9b4742fc8b91844843f50e0e99369f9dc279ab4881fb4e2dedc0456c75435ecdae4cb459984361dbe3a23f77d775a334fa6233beca2979e6f36db3c4c86fc24bfda5f55c765cdf6187855fdc9beb8cee6a8391f98475d6aa080a7a2c6147f71cfa94519d1f705ab0fcf3fc957619e7eeacc33e9c614fe137496f51436a788334aa5a6d66ea3e4ad937a37be9f87e1c5fc6fab2df4c434cc3f4ea3865bc0beaa732c1789e7a7ff9aadd7d4f7afdf953163197590e757a2979197664290de8ce1d531466a55119f87c335bc26f946e06a4d51baf7b33dd01a46c2f4e339dd83511d135a972ec1de0ed93bcc9b24b994b4a3394df8ccfbcc743304383d4dda986e859074a3d0f9ecdd96a34513735b4f4238f7ef42d3f8eeebecdfb3ad705ae668ce5045c534c448b429c474c494c7b48ee4911771d62c39d3f4763d98ec0b2ec0753de301fadeff13bb5df861ecd882a045d032bfaf6367f845a5d535e85fb323beebe6e3bb7dd70229fd7ddef18309885ab9345e03fefb7575292f9d73d57cc33f8a5a86acc328de3a2e44c04cc45ca57573395ef38a95675bf8ea7bc8684c8e6b8e865aa3f56517be79fc45657f976ffaf538bb8b53ae88cb43881c19ab47069b36968da1cacceab9bfc5c7985614a3fff7300f7fee4865c5f8e3d792099d3f793e58b591cdd87cfa36430aea87703dcca5e8f4fa29ab2b56ad3aca5d483c3c7ef9db4f0f8b7794592e1acae0fc721d355892cf57d09fe9291d4e1c994b8bc33edd07dd3cbcb5e37fb43b5777b4afe892bbe98c4e32ea5bf00618b1e4559064d491488bef0135c9da67a39a5da5f14aee6ec4d9c30957b04c645b15fdedcf3a391a769249dde9085147c96c68fd4ea93efc9e8dcd00ecd7b8eff827fdefacca51dac9e413e8cbaa24a66b0db4d2076d58c398edfd3ee56c40a1bcd3cc0f658f6f40c41c6f07ce74f44e4e259ae1478c7a77ed5c157ceb1659d3b22991391955c3e75bcf0cc70d4cb79faf7638c54dcddbeef35b8f3cbaf6b14e8f340597bed55d586981c77cc6093a889854a8523f997b07d7187d99ee8b5ae44cc1f1f3c413fab7a61f54490a6ac4175a99da866e5464283a74c5d3d0436ac1c88f9c964ef8e6de7cb056af08bd8d801e4e0cfddf93854e09eb5e0bf8fa5a4c52613d468f95bd83ed8c2147736598a656476e5cb855e0c486d10add672fd2a79b37357995ed445973959cf15ee6ed0c687227768b4ea1b4f79b818da7410de3dd547403b3da36f6fc9f6ae659abae74ae65213ef2a43dc61f59f822faf5dddffcb98cd0a38bb7a4a493ae677cec267379c3a1b80ac2f57ef221976ff4c7afc695f83af88ef813a9beb73ef48dbe8b3ec87135c6574cdd1d68d7e63ca6f24e8b948ce615233b911736b097db766c9465cbb8b29573addb33f22ad7cd99df1325c200545d5b2ec5da2ad082b9c198158aa2c8fcd5d94bf67e8d39bac4d9096093c78a069b9210e3d5e9199d45bcd9abe6a8033c971b39d3874ac6408b3510e3e8ff4b464ffe6ad3e56bd664cadab4cbc2eb1f13656c6547db33b5f529d253c85a728313bd36b9f09f6455b7594a10c1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 9f27a47604ab5146caaf0aafe6d149424f8d66e39ba3baf5e6c73b19221b7e21 +public_key = 8dec41ff4d93b014449995e21e134c925b37b126e2a9d6ee97d586408ea8409d3383b5e7d1bbe76aafe563b86069c9c2094e481be7a7541ecb1b2c74f4cc96d2aa916509cc24d33ca89d6aad07938f8de177c4f159ce9ff314d389894f5d4c9cbe6d8c8234cefac9bf750ae87d5669f46ae9605fdb189bb340ebbba649996863618366766b7c990d7dd1a397b00c8ef72dbe734adb60a6be523fb46be42752eba4bad8d6b008883e2697747ada77645e74d5f7abc99e57acd6e2032ddcf719c9b8c5bfd84d9fa95641202384629b925c34dbe94889bdf96bdc176e4dd3ad75f7b2e5cfabc9ea8281fd7df65ae62e0e6db3a634071944f6468e00aba03255430375660cdfc414adb3cc63dde305948d783afd0a41b5bfd2fcbbb620d9bd48cee81859b670affd0b5c46507eac578f829c8c6f4875bce8c37c532fe13cf77a8cf480661bdad108a0b68cd63ee5fbba54f567ab31b30858cb33584d64f2ed84f7bf085d174dd5bf28fc90c96cbc89ca7069edd16d6f95dc6acfeb3315274f7c4937af6ee963f9de6d0364639f743b4e78a6f344c254e94f989e1c34be07ad9bd5086c73a9fda95f8caaba4fbffe502c1abb02be45a7b8f5aa7ea001055e2b1841725cb06fbf3625ccdd99f89c19a8d23d86ddb1a6da75198852a6f8b6aa54308a3c895688048ad03c089ef4b3f32fda6aeb0e94154339b76ada265df2133eef3eeaba98cb656925c34f56d37a436f8afdebff4d8c1396d1e3a490675abf377e94b387e58f23eb1284d636c9fbb6de84c06af3cfadc66519b2e9bd94610655699976538471d77bbb3a96e3a3faeee8cff642d63611b498e40f540cb7ee9b6ceaad6bbf30aae3f9ab5eb57a5670fa924438d867ccc4823dc74d6df19db3e68a26a5210e713ee7b81157a63a2e99fdb4a5673eb2d17890e7bdbb8215eb9a1c85ce8aa92a2557ffa499c9aedf7e98c3b478eebe73f3f4794e3e83f4330a710b6a87186c36ff04602fccb97a7842104547264437921b413e6ff29a1555226a3bb4fd90bd8cb09df92f4c4d93319c434c04a773acc094cbf0516f903aece21ff6c178aa5d02f4b402efb43bd79966d83a014bc8a8fa8348eea9e8c6947134b8380deab16ef427abf6f214e4ff3f6f3464929105974a853961a6b55ef9dba8d730be6a51fdf9db4c23753bd9728077b90cfec657cd738946bbbc6afd72f95d876437c659b1bc663f6bbfb9026ba0401ac169cd5933ecd509f7390ce8a024a3a1278fe7bbffdc0d26c9d834e82bf67ac61cdb131e84a42c89da8aef2efdf3ee7cf91dea37da46db70aefeb967f7e0c83efe0796d603b1c58dfb263faf8d44d53e1c70f8b73d5874578b4afa8108b12f6d3d8dce637d54bccba48f74dd8f64deffb8cbfe40938456c4620abf62d9fd8fc9b576d463329057a7fcc866530d88338efe15f3eeba79cb33a5826208f3b9b8abbe8c4a0267f9dbac6f4df64f14c99599a3d04e0a4398b7c1e059e20e4d4fc2683d65e85cd279b8d9e9595e995631f3469daf5412a54535c569d81cfa0a1e773305fabfe9a9dc766c8da35bdf0b64d2cf7d0ff3ead736c06bafe86034468539a3adbbcf0e67af4e797b64ad494ce9ed2b9b89f8d486236b9b24772383d81aaed73286e5dc6e35a1dd0121b0a362d8c94022a515340f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 90044031b7597b5e60a4f946b713e8996d0426d2cb013243d9b7d8f8ef159a0f +public_key = 86335a7626d9caf862810ba70f0dc83da3cc1d2d8cd8a3f33c8ac3248bd13417cecd467e9cb87280bae3b16ebd0a76e034ebabe9ab6e7a447c2826af3cba679837da36f7431af9e19efff45714e10d159aa438a6f1546a39286a7a179c5f286073d5b944faf000ab61fcb9373a4a94dba5c9baa94056f35ca29ed107ffce65b579c4744f94955db483d265053b812634ec5e56eb8e9069f637114d408b2d36019967f4163c1eb6e1c02ba295b5e581644dab07872d1a5b21b3fd0ffa349e3739da6ea9e9ccd7b6d8cba3b945be59e9598e3600e781ecf54912e7de3793fe05784c5f2ff71a5aa5d638f3316f305a28493ccfb180e8d2423aa4f75cb6611ce6e8798ced8ff53798b189fbf17238b5d073f24f88e14715818ac4ab40d3404296dbee445faabeb02dd5a7c7b6bd8b03768e7c382838d6e5fc7a93b9d94246a4042eea39bbb89ca4ca33f9b381fc8d6447450d3b4f6c794b566bf73508d24fe35e78a94780cce557bb380db47d2589eb1293d94ded8ae4ea996198fd134bc5579aa9fb54e27e2670b96dd1d59ae62e38680d3c8fd2d3517cd4b36aba9bf1a3df3d5cd67f2a5b4de7d2cb9b9e138bbfa92cdf49a86ba293d9145da2ab4cef3c75ca20a4a1613e8cf88849f03ed2e58fe1df95a2fb3f557306dfe7ec5e70d3b88d39ecfa2edb9906401968462d2ace979a825b088f7c2b330fbb5f16beb9f24b84a646cc6aabf7b03767988f68cba750b64f9823e7ad3b0da4e823d5211ebb0f47cbac838a489c56849ec7d05457f4033814bb9d53bde1ce787f0effab1bc885e293bf24addf40bde9238b744766eeb86bf96a4df32b17537aff899833e2790bb65743cfe76de7be38d064ce9b034ce9eb988d5b8f7b64777eb9be3244a9b6763c63523a6af78672b75fac38f33f2a97dc495bedd34a9af239556ed9412a48a7b46dedaaaaa976daa972ce565f37be80c33fd41f6c7bb3aa09f47f4c9c503e26773264e8edefd58fc75190cf47b37cdc8f59427cdf311ca493510794cdb734cdf69c6b1a9d5ca9d424e8e9f35ccc885db4750c433956d5bc6db7c4dc39d807eefefec6db3e9f6d77eaa28dd6521fd86665707b95ca4d34ec26cb4acbf9f8d243e8d47faead3a99bcdd75b5186abe6590d05f78bf289051ce378908f5777fd472baaf258c78eeb7755f6c6b1b1e3d91da945a837f0c84b353f9aa1d2f3404a3c072af7c84a6ae90e3ea0d254235ae8656095bf989456cd9aec6a837df6880c9ba79476431929c9b22d9bac09acdd8d94b7a884e271d37f1bb5335f98c4c59efece5ae0a485611b5d2258d9d48aac84c1695732e924d4cfd661de07f7ebab568d33abd832f0f92b89a3f25bb40fa0445f2c3e22f97856f739aabd568d2bd851b47ac948bf5d2da6911dd5b45ef6089aded487cbdf2f782c2e351941fe502bfcd264a6526b4aa6dd4395036d1fd8bf03b088361f6f18c1b72854648f50f3199e5aaece5ea33a9db74e4366c07818efcad158a56ee6f3f64dfde5ea3c51945dcfe16b0dfd3af10a4575574ea388590eb95b6e5158ac5bc4aabe686140b981cc5c2ac896945a4be09afd1b56744c439630b56a15b4a3591acc88f3c46814eec24e8db5725bba86cdd22a3732c6a1bf7cb10f14d57ee8e5901e46b97e63848efdc76368b797d +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: a7a31e140891ea37d2b6424b59b1f84f89220f32dcb73e037eb912b389d34a48 +public_key = a5cfefef43d6a45ee7e05c4f4736af0e8cc5ae6bc3f2a4e88ae5397ef69f273d3f969fa695fef916bb56e5aa43cef5c183e6ce00f78ef423c3a838ad2cd3c4f69ce42fbf3dd5f774054668f00fe3b2bbaf8274c7ae1dcfcec5b10bc6d3ec6ab33c963ad3bffb23f7412f93715a4bdbe1be754ef383c2e5fa5a16a2273fc88a9635b08e909d347e657e5806f93e0baf6757bf5a8f5984f9ef98acdefbe53850b94fe39614f8562455d6a7bcee09d4563e8b5bc78734864d1bfdbf1393849ae7e5c81ea5236d65586b80f1357d961a9ba74999c8f47c7583675245749bc56153fe428a1d324f37d6c97e8208c4a1315836036533775ff7a06dd9ea96e97109b78f1ad37dcf98f3085c46f68aab45379cf59cd504a9461b47268ba03fc7cf7b1aaf9d56ebfb3a7e68b396419a44bd56462e7aa2be9ff23a09c156df6dff3873a615f472d6796e24bb7daa35848eecc435a9b3d346391f734c8dd614396a6dac3c2d838ac103d04239c84734e835768a2bcc3d6f8567f6c998b4e7ca8e3da8168f68703ee936087d3db549736e5d4aabde1bbe765a18c753fb9514dd97332e54ea4a3f934c8fff95f0b03fab06ff6d113d888c1ae613ca74164793b5f798ee3c589684bfb115cd684dbdd524ef1a17393b29e55029ffeeb3c8d3cdb4c377900923e2fac6e5c7de94f076c49e0ecb9729ded9d4a6c0ed957047933e2835363d85f07eec6facef86dc4366c45cbf2f81b1aedae39aacb37ec0336d648f7c955e99367d2be30c95f89d5862720af9807ccd919e85dbd5999af47f79da95ccc4859e8a84b2983f0e9693b1dcb506d7b7abfd3f158759b90d651148db3aa4b46ddd60f97cde1616d161698f27ed73c2f74e9c5b31f9fb4df5ecdf3b0773470bbfba5e35c49e99f7ff81280480ae88573284c44ab9b91f8942ae4f3783263927c5857d5832a7ee576c6a59e8bea498bcff607ec51b4c9a36cc4d29cd42dea588a475674088fb07dcf45a069d422459439777810eefac0c8221f99390bd5a5d096402dfa4bea8c9f46564af93ec907c4fef6743ee58f33a3efbea83d113a930c0a5649a5eabba2c6a3afcc4738580c61a4730aac4dc3c84dfae58365cc6c86db13fbedb195bf539a55da60deff6c552148e5fc6479f1bbb67d5754161e4d64feef47aac8edc486a8daeb311fc653da3be4fbcdc81bcdfa54b99030ac2f824598ecc699b3e973ffb34658e83cce8cfe6495723975c7ed7cbc538e81156fcc1ac48fd9c5ca3eae26c9ef5179b651a95b7749bcf712ad18eaa951dcd78b0fe6bdeaaff5b28debef3d32b6bf826ec83af147af8288471bf67a97c5ab0244d3fe538e996d00de380723f937b9eede62f8bfdcaf09e74ffa3095045266e11f46e9afeb1eae584dcb8805d7455d3435956dbe679b8afe26ccfa82f4736998aed363c0e8fb1d23b339a16abb5f6ddd447bd78d8de6657bffef9bceb18a0c8f6d2936ba32d24871d6470c338921366a009fbade8f4ab940bbd22158ac63def09157d0d1ed826bf90581b4108573e720acaf53344fb876db0bbba54de4a26dab40afe37535a794294814e2b3f904fc0a03f3e073bf519588342448e24a769af363293f4c8786ba4b70330bb80f37de30dba857dace4b8291ecb2f6ebd5a06323b11a89242da833741e9c4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 70eb3f791faa91f1f982fa477dbcddeb2c55691c07f93b04cd31b37544c94b42 +public_key = 2e2487855f7ec83e60955ae8dab49870de46767bac1506885a7abbb02d3fa89f3cf3644b146a7687ecdf573f9e3c64b052db6c14f3f11cc560d9b7da1ba641225bfeb8f7de45bf5b4b346f3037454aa69745de777498c98ce741ad2dd8461868839b4149135b428e7d145d60acecca5af744ea9fe42de574ecac5f153fa7d907628eb75439d8af02d37e528e681f2bf49bdbf2d52961d20458c96dceb3175730acb9b8c8500ecf58ffce367704d606bc76f8eb31cd9ea605f9d5ee839c3e0b771d3f595b3f38adcd79ff6d34769652e5cb492eada3e9cdcdf13c899cd5838bb46a27e343bd6fccb6294c1619af978e7d77ebc2e153ef9975664863f7cb9331a37fe53ce3ec80d939d473b81ffbd911fdf7b03cf9cfd66fbed3cd0adeefa08744baedb62dd3d93c2552bc7a770a0550ce7deb2e6559851bbb5d8665865555af6edc2df9637c07790639c0af6b4bdbd567b704c267e6abf2b371f68d686a29e0bdddfb7ec3c08a7aca40eef1cda343a61c6c995742159cce5503b4996a7a6fab9e8dd5713bf62f3c0792628ab62184e0352d8ca01c6130d3a349aae86fd69db4b3cb784e7a12a9fe8e448fb75b73f4ca54fdb4fb2effa4faee4c3a4f4bd169fb90968434eb8f52a6a1438cb7e589740c8b9b2c7ef3601bf8ee954cf1de8dab1bb3fec8a0ff6379a53e3325d7d11f4c7fead33c8fb543c3d9db6ab35e01f3ee2de4f62bcc92bb1eba065f95b4ffa2747fd5778e3232876d1eabe8e22639e9c3759eb460390bcced9bb0e368c6cad846767c69349c59feef7405d8ccca0dac2ed762b1ab6381eac33f14aa28cd47e5a6392113df8ef7d55e0de07cd353bece4880cd875746b9deaca76fbc70ef69f5ebbb994833a7eed732236bd6e6ec6b292e7c7d9a86a5396c80d43c22c56c1967d238d7de7a8cfb6a77bca45785ccd3ed8a98dbe379b05e45a1b9a8b3b36fd826f888a9bdf5e28abcc54fdbd1f3dfdd17cbb40e8a7a784534379c46639a222f7d279b61db6d8bdf9bb9304b32301d3a6a86fdb25f548f29f534a94df0caeb2c97b9b09fd2dfc646a94f70400cbeca95aada593d8f57e9abb6cd4a4699787b92d73f79fe9bacc0a989a59cb0ad279a567b8ca9536e8107aa7c8eb2bf7730b9f4a470d8e70655a08436d2bc56e0f9e7bbdc6acfbdc4732f4f66083c9c91e4eed2ff42292facd01bab34c4789a63a700a5a135d6549594ee69daff5334cbb1fc4c7e4fb0f53bb63f888146163a51759c43349377ca824c4fd91e9b9c31fdf5981b82cd23aeb5385be7f398ab6df5e87b605827328ebb32d678f896298f662f43ebb3b8a6f759dc8f4d3f577cfb8aa04627a80a03804039478accfa627779d1c87fb23453ca254fb51c629f17c1edc8cd8d7eaafa1350524fdf81c65b078ee282ec6e7e5bd21eeac0c3fc7ceb5be92897899f7ce45f53bfa2d68a5b583002667d101a9c7f8fef0ead711ca79df964e26e9e99fd6351be99f25cd5fd6be5c90696df6ad8ec56477cd34c94ee43b920eb6cb62bcf27e566a09e60f0fbfce7389b8da47cf9cfff4655f961457dc39c54fde66a41f95cee1ba8778fca644fab76f6bc262632283af2293ba7be9cc5688ddb5c13ac1a0ef7b16a43bae7e4af067d280590ff759d4c3a502ab563080dbfe1df14ac06d254fc +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 30f4095015ba88b6d969672ca3f438c395dacf7d476ea7a9e805ce932d270a13 +public_key = 0055afab3bdf8c4481d33e6c8776d7a02b744637928897c26c1c57635f4f43bddb27d4ab7c198335ae3750b8bee42ecf512ecbe4536247ad87999dce6f14fde3955e374ce13d8cfe2df360a8fb5c76fa7f1f594b64b562d0c3b524756b2f94667df3ef9a67aefeca35d674ed18de67d6d955d6bcc1719f97c9277cf614423c3efe9638ef621dd74d3cf209f976df6332285b3c412a8f618c5b5175302a5f366a5c67463bd7fb74cecc67f6ca96ee47d4c59a8e9d273f9569ce39ece3eb22ccac2a0ed0bd347ba60edb51b69dbbbca90b574405d8c06016e7e78fbf8157f018284a70a8f773434d07286b319ca4e3fa6b25bf5171093cefa559aa33ad3a0336a2ae8206ad7ec4463511d3be9dedb05944819b9647ffd94337c94b793e694bb3ecbf8c7af238c21eded60799c09bb8aae1ad84cbbd7c3bb8502275398e15d58b24f7953d9e3cbf87fb3fa016f46e9feb9116fd9a313970294bf5e8df5c4abb623c1959d6246d7f0dba79068ea03963d9598fb3bd4879c3379397b086a6dc0d896e419ca5f7667265ee90720f329474867cf43a427bee1188f6ca64fcce64adccee54f36637de2cbdbdd6c1ad7794a1ce8fa339993e873ea54c3f92a68afe0445305bc97b76c61b3bc693f3db2a3be8a6dcf8add35cdc06d2555be7df39998516549c8f3ae1596d2a88acb94334349f6af72f63dec7d4a66eb2f23973822f8fc6be5bd93c3911db634b19cd7217508f3f8113d565b475393d95c7abe5a94fd6c1cd1f83587b97db65e09a08b1af1d60cecbb15675a253fae54fee9aa9fcf9ec33400e4946b89b5b1b4ccd4146fa3cc758094d8f50ca8663bf36f193d656a432e2193bc5fd9ad1fc6a8235f174a6530b4bd78808c8798c9e1118f0c29579768da7467fadb025cc31c75017468cae17c697a79df023aa250c827d1ea1491944b9e6e56d24b1f0f53c13aeaaa5946bdb2e485dde8aad0d34de843489b7cae9ea90197cc471444068edef883e756a4ff4c5368e404ff0ae48832c19f8e75e95510b5d4eba93dd4bf17b79481aebc3503ef3cf4fc0aba83ecf7dd34ecbc0ec54f0df3f851a998207f770f4efbf95bd47779b6188ed83f8ed4459cf43da1f5dd174eec413ccf1bdf811ab65d7d954bf4cc0cbfddc384889d2bf34064e9180ec83d9ccc171edbd6bca3e278fbf358ed24445329b5e5456175ef7ce67da459da6f3439dbbf0fb28bfb9764d5d9b9af055b442399361f9ef84965fbcc3ea4ebe47cf5cbd37b955fa4bda34b78f8f5bfcf584c1f3646b5d7887a99b3847ba9010a69c8905f754cfc4fd2a6cbcfcfd0049fa1aa44ddae6d5d9ee595d2ba305cbc86b24a47725810a86ec45c6cd0187f62b2c85beabc0805d86eb3ebd443889ae657c9528abb2769edc8cc74bd8d94309ff895dfec33e823e25e12ff5624ca8fbe7669010f3eac9494334488105eb88658339db648f30b3a08b7a7b5ceee13a93d55f673a8fd6ca10cb4ce3d3f645fc42ed24420c3ffd512c68652adb99875ef8f9e3b984c70a3fe228f5ebd3cf407cd49a06e83f801fc15d33b0252937f857beaf9ba79045cba8264d7716f70d4787f6ecb8922582b84fec26da7813fbec61b8d038289cc84a923e03d7ae3cb232d5e0c1e7715d7b305d86d34fe89069774bf4339a1249be49b1 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: cf31220f44de862e1719570e1b26e897790159366a385452334fe24cdcae28ba +public_key = c1dcf48a969a9deb8ba9c43e80799f3e287b4263bda2bed55d25fbe8c84a4df5447b53f95d0ba65d2a9b2d15a3b139507a4cfa44965e68e7caa4d9aeb4f67cee4d4305d8e782ca49656775e10aa5320ded66793e1a8d92e2b538df264818e7afdc94ab3cda837164cbaeec93fe2b8b59397483fd84b05e976bc6e61d0f6762bffdd6af6457c648ed18e7ff0a45fbc8c7e0e6c45767b7a82d997cb6d453785b73a43522979d06b365481a54e91f4ea04f749513e5fbaf7f5f8c506a9e64414398d733f1a9d5c2181338df5e87bbafc0c5097bfbd7f946be5406fbee88caa3ff92886a6a4fe2c879481df11ad3fe1968643ae5a6c3aa309433cab3e48aa93a5610de8551fe9831f6c74f9eeb8be5771244954da635a2fb6c314b9d78febf26fab61397fd0b2d98e0fdb0615e6feea45294ef8c0fdd88bb0cd266ae906483d63e97c5b38f51011e67930beefc9447ff4ff7d96bc5e999cdf1f545c8753e4ab43d211c80ba9646e86651d928b0c9e64f5c2ca80b99914d878641a53a6a385acaab6d9b5690d11a8ef6ad8c35f8dc5d09e563c7636638f544bd8c0bd3d54ded7c320ce1af1febdafcb745dfddd23ec8d4146f1fcbf8235d941d9aecdae68b4c5961a7a437b335ef144586afce5f505aa79305797a16cdf4c8920acdfbdabadc0d367e2dd7d97aa9d0bac5cf7063c3b30f7ab06bf04fbc997f333122798670e3488cf4bc64089a15a97f0c0a4ab578dfb9d5a9a825f34e15831603ea48c8dca345f3e33d3838d55ea2368b037a607b643ee9bf488ee456283e58a3675b56967ce7b4a1bd3cf2aa1d83e474ab922ecfa1ffbd1a24b27ab3e7c34b968efd55deb839ef27fffd0489bd5f4109aa9897383f9d0df3691db56bc75b6a9e87bbe86d465c7a44b65aa828c40ce76de88cbd678ed93dae689506657cdb6b3cc5a9a0293d16057e700a3bb86f3e3deec8816bed17066854becd808cd803f9a9fc2b62f637c99535a1743e59ff79a863ba9203d57c81fdbbe12d52e52dd4ce4f388fdc695da7f2bc0e47c565e0cfb9347137d02fb9d3904f5520ee656f1c4ba91c47e5fbcc5e93d13874f0939dcf7eade214af6e1fa79aa7576c7d5ed3d0bdeec7ee459c9aacc449af7e1daca0b4e71b284d4473c9af9a84547bd3c7d5cea7bc723dd5d32157b5853eba9a895d35f89274f8f7470babba0342567648ba84a51aa5a604b4c36a27c0b38edb2388b53085603c06fe9fada6a68649723f3ed9e934d757ee65a4915ada5dd1e7482a37517cfa625588febc7b789c4a6d2aa746a91ec0bfadd79f138dfcd8e2adac7c4bd862ddb83cf0d6b74c6f3b5243e8bd8d7163e6c98d777c7fdd628266bd54af9636c6d1e26f466cfb700ed35b0966a7da03ff7dd67aa2cd8e7cca8f18fcb7be4ed4bb64d8638cd8eaca654b19523bcda031b76968e7ed9d0e3502ae35084f467a7dc2813762c1c4f19dd9d4202984cb49b33f9e328b0350ad36b4a775df7505b11b5c6f062dcccf788b87b5aef42b44b567c42555c7504dce66cc900383d928e859c87d99d8149c78588fdf0c347eeb6752b39b766ef2e715843fdfa85addfa81e7705127a52d63d47f9739534fed34e4f78739c4bac5da5c344011cb196dba2bc5197accd11b3f6e5d57b37115e763177a6910c9866c85ed61c6 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bb5e65669a44e5d5c709bafa98c16ccba6ac2c4ae923334f69a11543eda64f5d +public_key = 33e4a6bf137a2d5c440814d972bbb4144fa6f2f97c6bf7b5a05a92ef1c69a3f6d2f516fb4d75eb9bfe48ebe566059454af7e919226742bce51fec6623bd55316a9f82ddd651a1bb437eee3202aae301a6de7ce32de1fdcf0235945dda041f6ad92f4d4f87432bf4af8035c4f6e236ca6e6b56e9f4800667f8816839549535f23f5ceeb5b0e194b89a5800829f15737a40988a43336ceab9e4800278944ba54edc65071b633740bd51f07a66d5781ee8492d46ff1c53495248365cc438b4a65a745a6458534f878997853597ce1f45371dbef97f8638837bee3cab373ddf4ebe4aa52455283dcf249e8f739ea481d685204b6e840c856618af10fa431a32bf7532b5b0868c2dd1aee2947aef05759359d5ec50c33193c8cbf15c5bb4a89b39c63337b3f4bb3b61b0581fe2362037bcab4d6fee14ac3d8b7d486789a6d9641b5bee2f1336d7f6e3b146dfde8debdd103b6a81fbd4c9ab0f67eeba825aa5b344ccaf940c5abc2960888946f6120b4aa3c73c3e285f0b6c6411aa745cd4399bdc6f7ec584ae4efa9081c4125cc37f31ed7f80e61975355ae779d7416fd4fad62a36a4b64bfde22f3af346a57b37747d3d68a496e33857577dd3d40342ab2c8a38c980fc66276b5439c824663d4f22ca9a316b6c078bbd00a748d9689283aaa0fa584fcc9f2de15c1715efab68e9a190e9cca3fe533a691503a79c71c43de9453932f64ce5994c78a3ce44ae595dbdc771f91200b9bdd8b6dd037326e5b40d447e7e75d7b5f7bbbf728d0cc8ae143f7e01995ca2c3ad6d3b5d1229a913e3b350cd567e5aad3ac54c35a8cb0e4faad750fcf6353a04856e649e4e71406503d0380f543aae846a21d03ed561451fb97d7b7fe5ae138a8d11b53b59fde98eef93938680556d00c7552deb3ed4ae5de914cb85935cbcf18821e2fb20e3d90240e8a6684f4ac7aa7163faef2c69c0dc545e3f5d1e67d6bc2ce9b5179bd4c4ab22dccc9269560992637a7887b996a67558fea2ffa97be2b5fc2b5e2788334871577f763dbc06430e539aa7fedacac1ff607554e2b3e60c30f6b8f169cd3537f523b4cb3096dcaeb4413f93e8edf6c774c98dbaf69cfc7d2d369f984a3304aa56809c6ef5fa4557a08c8ac2da634bca903f456c6e835ccff3f647a47971c3726daf16014459a96531896c8bfe74fd0fbd74d74a085bb32bd57857054629a4be9d11d5f5aeb5e7aeedb0dedca1189756bd74324accceb08df849969bd0d8adb76ab38fbb47c59cbbaa33f22759d5f879f178a6ec6e3730aae5d71cf86d7549fea354b438b48d4e73d6b0584469433cb86a74bf8fccef6de4a0ab3296a31fdb9a66116a766ef828f3caa12da7e0a5ada55dead9d24eb994e3c46df77a5eda1183fb9e6b8e6e4fecfdcc6fd11fbd9406b83c5746033fef8cc2897e324384075f253b7865a079309b7ce6a1a5b2007b775a463199c4a90358b416435d69bc7c6ec48a155be767db7fe36f6516ad9037a6d9dc449e344b0d67dbe3cb7b70b8fd156858d8656c296b54c7377456e2fae675dfc6fa7a4d3afe66627e352f56cc03a763667f3682c5ef77437a6de6bf343972c43b10f56c5770cb8eacfa955e89c35d932dc466b0c198874bb242e511f4f4d35fdb1eeb7c0006fafe38c636dab4728b6725dbf53e59cb8 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 9ddb3aa9c7905d1a438c93bcf78e3e321813580371ab4e1289e2dbf3701972c2 +public_key = c797aa613ae0091ec3131b8b99b3785a4a32c4bbf12b6cd218be8a5529d890073f2d1f521beb941014d129d5947ef96b72d9fae0f58ae1bcf36a64f6e7a4440ab4fc4be5d1af58f3cc7fec3e6374e368aba59c45932aa0addb3473e96854e8a706d5e0e17ba91b8b865df5f9ccdd93bda7b6ff9be82e07e751035ea6d8b7c00a6f6efb8dfc1be92c54f60a9479539c5a4c38cccc7beb7ff3697e3759f9fef53c07ef2d7c9119b77090a99b3be67ad965919bdac7880ee7a68beae1d7f30b957cafe398027596d61db2ce87a73cf8547977631d97fed724e93ba7be01bc7e1636db5ccdda4227b976eb5f0dea457d3a493d19494f6fe9fc77d06caa818eb43ab0e8d693eb616b8bb9c87c5e89a3f1d77e9801a9982049c6a99cfa649dd405867252ffdc127f41e32fa1281745e49f9cbeccf444b9b0fd0e48b81b96f83b9518afab2427ec5c55898948b7f16c6a1a09cb7dca509a3876aeaaa4ab29978168fcebe73e9ba63390b3584758da9b3d5ca7c4d43cb3ffa6875b8808511578ebfc8d6268a7ba33ccddd64ee266e672148bd89943c2320e36ec47ad175fc681a94ffadd9f87e851f1a4eab4755538e5dd99169ae1cbfbb70aadc0c87ba4dfcb710ed53bf7f72663740ab74c05899cd798ebe63a86acce3ec5fde4cd1868c5799992a58a60bafbbdc6b5dffb8915c3aebe3c9fc807dedc8b9b8bd69fe5feb6030f91912faf3eff636ace90f505e9a6479decd8626e2ce6a1094e2dc7c57a2ae89b9bfed0d4b9b0e9d663fe34cf53f5a1867505a43e411c3fb4c4477c74b658e3d2fea660235d5a25dcfa077e3fbe2cf408fe87e427a0dacc9c0e2da8ff3c4538b7ea639a902afec826e8612bb3db2eeec63bcbdf70058f13973cbef4df371c49068ec5a61ba074175b6488bc9829ad658568314f56bfb88db4ceda50ae744f3fdba22e772d94b35233cff9f8ca6053a364ca3130eeacde98bcaa9371228d6b40c972b1bcee168ddae67441e399bb074e977d0580210fd6b258a29bd53fc277609d4ee50b0e34849b6b7d4564d27735507ac25ccfe64d4664c0b37cd5c9d00d43f0193ec732aab32f0ee5913ed4bdc9db638b42960ac871ce4e632d80639fb9d6d3bcef1a9b6e85951675ef9019cbba1c636ee550a82e46ab27f3202fa8e1eb68209642caf3814b1ef15665d485a8e0f4b8ecd8c5bf117e6136e77fefd995a8956d6f0cdb38f841a19d5b19589619649ecb3bf4ac3e4a9a85bfa85cc237de9600c744087ea727e6745829cec41f346c9fc16865d7bf8fa7d3638d36d4a7641a9a0436e7c09681e0da904b3ef07cd7b57f183640797142ebb3aad3470c8f511bb88c8ddfaf6eeda4f799e61f8bfc01ffd00c95bcb1df70d00c89c60ed3b86650e2f8a4c47cd52b8e7cbcd978dcffc776cc98d54cef7db97a104f594ffe8b2444a21cbfc1a59a61ddda53d11d5489967488046ff86791889dd588ffac8946688cf49e81da406a2684d1a6495d33a8f12b72686482b92cf2732e5975a484e8488d2b19ae220cc1387594da79e95dc47ac21f7738ccd3ef7f77258e892744f4678eb819be6f06943021363ae99dad5f2e3303d86f890478a91c6d0bef8e95b4ce2a96ecbfd681a47a25545c2a29b75946d0f45ba0aa193ca5544686d9f9a802fc4cecdefea4a0 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 26d90b190a6c3d0d9a86cf66005154e7086749e966e7187c249ccb9329fd3b8b +public_key = d90d414fe5b14dfca90fa6bb7e45d684c3b08656374d54776d4efa645987b9d8db28933551aff991efcc4074e14ffeff93e3d00164c333bc77d566cd91d9d4965367b245db87a6b0b5aa7f8a746ffd4576d32d83f24cdf3efc4d09ccb86dc4caa55365a8b4d6add3cba31f7ecf3fec9139c6c273bd4d4bebc1fcd626b35db54f30662cc44af683ca2e76c527e337746f0f59d0b7369df2c7d5b6387670c4e1e36f88b878df9ccbda8ffdec9d0a9e4d6ea19f1cba55459b797dfdc14ba52a0b9de9eadcbf43dd3f7e625228a6a9e471d70639b05792cb8550b24ac159c5b069d3d741dd9065d9f80cffb4f87cecd9b78357383b2bcc4e771661f4cb75c6589db327d58f4f8398ea7bb88450f235f5823d58c609bf5c0fa3098a61920ec092f87aad3881eef6a2eb9ea49dd3cdf1ca69532d5e74f68ad6cd6fc14e63a71cd972c4ad752acfcfd5529b75328548c18758d26bd7965f83d76d4bb8f94e59756c879a69e9fb7f86e0dc39f1884587ba5e134e77eadbfa3e96410a64c2d64d3ccb939e429bee7149ca2b3368c11c8e1f48d82bbd6f39455d56eefe95c585f0098fe6dc44bbc97c1547600d79b193fa838f4fcef6bab08d56ffb00e7ee94e4c9914316297cd56889208ee3e71e544c6793b761e74c5cbf22958d0785bb003589a899a562d6f52ea67977a6ffc04adb934bd7f29194c76bf9694ef7ddc6c4757cac5ba2e9d98137516c450884c374cfa8572f3b9e27cc707cfd5c398866df7972b8a44b7f975cffc34023efbda14c0bb9a50a5e5954f9534ef9dc0f2ff328d6e8be6dfe66ced64d6dda044afe83fc5b3bde635992998b68b8c7bd7a0a1c3bc99975aab55aa39dcde1d5cd19ef73a53485349b58f437eaa29a4c8f8e97935a8ea844f6b3cddb5eedecc1045857955ded5dd65a93aa0fa734f3206718974ca6ef35191c930ef67819f535ea5f8de54659b1aec30534442e03cb9c4673679dcecb215f64ea53d20e383d99cd8bff78447c3335a4c3bd7fd794cbde9e1fbe30faac0d204ea3a6476d00e4ddc988e757b66ac5c95bb7767e6d3fea90f7b5e6ad0e62c582ebc4ae6738b963735606fa053737014c475fa24b145bfb47eec97dac9ff58bbaccb0c36670ccc9336f87fea9fe7dc6a2ecc89675fc9606943ca1a6e8688a821b69e345ef026ef6442baff70a68011f8be62db6e6283b9b85651fb8883acbaf08868d7237a51ced5dcde0d7b28def1feca8a2d0f6d82359de6d8b548d9a49aa9e4ce76584338bfc9ffcb51466414548cef544b82abcd277a6602887e4edc5e0abfdb1ff343541c7ff3d4c0652ed9ed04cbdad8c2ef8dccc47f3a3609454b733aec068fe7df8772e388255a87710ab88848722cdbfc3aba63ad04566b1ba4febfa2c07cc42d3fb18f7f80349cf45e29ba52cedd4ae840b8f9858dfc68a84fe5ddd58df317f9d2966d11d4a5b20a6d451d71be5d83fccd50232b7e595be1c60a5f7ea438e025d18d145b97a4f8a899bb53b4fa97ed81f7da939dddca49dc3ee12bddddf944310e4ce96485bde669f214a3d4a88c6e4b3fffdeab4dccf4c19ff4e03c47fa2a7d55997c259e7172a7e55e2beca09898447ac0153435444c69b3c7d4d5b99189e346bfad6143bdd2780d2219878823ecff9df861e3a729f913ece36b46c0e9 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 7db6d1a129d6123f1f805b79ad3b413012ea86aed42a05e98e7b1f32f9fbbdec +public_key = 0e4c3b97c9c7bfe5d5e2bad1b3cbcda4096b37aac72b5b50a41aa8f6cc51828eb70fe3f7066ebed0938d964972be59eb643ea1493e7cd558e24b7653f27d9af074b1fe54f4df4bb22ad9ebff8cd448a5f6e6efc82f2973408c4828368b87a7c14a569ed7b58f8eb6cca29d88c25d31faecde5b37c442543e1eb944ea5ad541248496795bfdd56179ce88f374ffc068de70b6f676555f6b48e0dbc89b0b2f7a8ae554ddab721c954db21a87fda98478ddc2af38f0b479effb046ad544b3d49e9dce93d3e3ff715227da182a756ba8ee6cccdb101df74c6fec188fb0516743d17a7d7b5bf9f8dab31d5d739f68c57efc48ff6bed3757cd13fb8249abbfc7b5a795feee5b56b9f20c8e8a67e8194e67264bae901b3ae60d5f796341897542c70545a9b6b260cce3cfe536417adf5e8440907a4fa1e79a292ba20a56e285584d3a2993f2bba8397756e1ac505064e8072d7fb8c3e3d0b6f80b473c59abc9964b5dae58c6860337eb69396a24aa990349c62aaf852db49e8a95b04d4b8197db3c9459acc6f749e4ae2ce5e8e329776a6b68e33a7ac795330a9ceddf2b326c4cf69303bfdd9e37ecfc9eda856148ab9dd0b9f0cbcf60e6c7da1c6ddd81dd85fb9b915a3f54372c8e13b69b0d79ea508a391b04478729ca19d75b566b472917614a53ca485c44e67dd793b4ea180697f20aca366dee7215a49f69ed377afdfe4a3e0bbcbf475f710d0ba75898ccee4c5b645e4752ca8779fd9d737337ca2e9f4c5ea1277964c9e67b92888300cda37c48f700b4dfc185ab8fec55aa539cf115913c9c73af18e9188965e57b326f76e56839e5363c54a267c27e6f5cfbbd712138703c07dabc5c6b0ccbed5d3884012ceb8ad8cbd1cae2bfdb8a80e9cfd25f6d950f33254b5dbc2bb17495b6467cdebe684fbf43ecbd99981a4362fe3e8b290e5d9f3c3f1db3f8917cb141ad567b4782ec8bb1ff3eb298b6533c39733304b5f7c74206cc688c144a23cc72aa59ee498decd8fe4fb3b7767a679ba4f4c4e1b778019471bd78bf6b55c2eaf43351f85191bd7a66c35ddfa67daedf8c30d5f64e3c3ee88b62d3def542de595b5e9897a99bbffdf07867af35bf45b10e85a60b4a9cc9feaee58b17ff977cfbe80c4ff43839487ed6b88f6b94d2d4686ec7b7eb1ffe6d995c398896cd9876816af7ec87e8874da4a4e64b65436440fac565caa10eba9d498f4541b6e65d0bb97a634e6715abebbfbd909ec18a3a6e899738188744cb6b817e2ecf092b64e68cb6c9747d3cc34d0d294b487d548e6ecf53bac839c7df045d994aeaf7341f54556fbcaa1e8848a343f2aacddc3fd7f84a66b08958586d69c7b7b69d0fcf4f954ce335ffabadb7bffa5952d5efbccc7fce3b6a0d8d74f735e9930395d967603e3f7fb833ec191e712308b914a7553a1f8a659afeec38cb718e926e94a2903471b79b33adf94456fa6a09438dbb7ed3063cef5a5c66a9de5b829c8f01e7c1e22be0bfdeaac7de42ea9433476dbbf448511563b5564acd67f87a26f779538dd0584b61a75f93cbd85ab5f3362bb96a61d9f2ffa77b8e9dacba77869293a03d7cab81b688306546ac348b22e368b8e7e7bc969ed84ae2000548310a929e9738b2448d1cd7d1cab551ae0e7b1c495565ee65f180aca4a38847375abe6c +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 1d129b27be7384c359d04311fe5c44917d1fde4bfb57314f483ac617edd5ac49 +public_key = 91f33ddda5b9ed269034c7f2cfccceae14aacab8e038e45b545e8216ca5c332bbe3117beb9ca69288ae9dc8ad78c5efbaae7cc528ea38acef1bc4ac5d0ca67aa7f48d8f97d7536d63cd88219c396eb1e435e6ced61dccc963444b35c99c86b87e419f8b88c47f64b919b0f8ee71ef29e6ad1bcee7b600acb7449a292be315447d9a2b8a7d015419726563e366324588038f7efc47e4ccd0a68fdf5f4932496be0ba7adfb6e15dbb99f995419c8af3db630e22393becbf5829e59abc78c435342628cab40a6350a8a86d2bea93f6c9152fe895c4674cbf76314be992e8fc6dc2e833939f6238d7557f458ce057ec1969578379b76debf518976b9c69dc33dd8371930f06b4d1d2465139bc0a63ced13db9283ddd549c45cb45e518df67ca3ac88160ec3272b9c6faea7c527b0ce8ab9134f57484b341c3fd0b5adf9e36f4eb38be5e7d5823a3ca609fd9a5fc590dd14cd2dbe5cd238735d25bab119b06026884af5e76bdccbab3550fed9b8d4a473a4dda47a5c78b8be6b8819e1c80e5a7fcf81e3fad3274c6199b345dc2ec0b0c541962a965fba79994dc01409463d138977d9bf8ee8bb3ee3b80f1feecf7eca0c6ca7306e4707ed941c6dc3c9cf63ae8e87a5e7de9884da0b7f9a0d17e23c5b95d553cb20dd86d853869b68b44db974f526e072d6b1f3ae8c602ef376c434b9e777a597b6304aa0d1dc3d301dd10e58eb9a9aa60e0acb9394cd555ad47b6f62e4c3f191e875e1688457ae87711f933ffa51aefe31cbd47c28535595e7bc0777b955ed94d6e6fa5f67bd8b674abd34500eaea4c94bcac04746c4234315ee6c142dc48e7e4481a43c486c96d183b3ea54b19ac54e9727e0a2a3e2128ea16f5bcd861835c78357ea4a6e8b9b785c085545c85a36b3963288851a15abac8a39a109d0d19fac3ed6da93077486d7920a7cf74f9eb4f04a7e90e7f4d1e47f65a9cc8008d7b20c98d9867a705472738982f3d6d8f71d95548552cd0ecbe01dc3501d709b3eaa48af7807c74b9533523a1f637b1a89d8383945dc9553e9911f5bd12d6c397f74c250b7dd43db4aa7da34df3c94911d9fe8be561dcf5f0f37907fa567dde3ae9eaf4d425a7fdf35b2e71f41400783bc2ba3b6098d628db25194912175548453a66975de9007be36aaf182eea46773e70fc9957716f7b6e48903f574f16d37d68dccc1649ef6fbed8bf4d392b8637763ffe5b55bce7e77ce8e7701b4700c7ea498359bcaca63948ed1061d8c6c33894b4ebd1e4a659c2fc76c58c0d2f9648b99d8398bfd30e9a4eb6dc820bae2a58c3aac757ba83548400fae08f7c9ad8b593d756a3383575907d34867b5d98477eb6cabc4b7397f05fd6719cf73e4ff00a4b362073325d48652dfd88ffaf7d64d88495ecf96fea8562664308f52665eef8b35d67d98b5f595482d767b1c39ea9e45e00e49af47b7ecb03fe4b69f831e2df4f578e8997bcf036bece53c5213aa664f3ff6e83c50594354aa7974d3abd9860b3560a534dc6f4b9a595bb03ebfc40978cb39d3bb549eda34452426f0006371b0f7a411ee6c828c6743846ab3644413c8c995a452808f460f2efdae8add0a963b87e38a67ed7290789200e6d18cc7c454ba7bd5e56d7ce2d10ffa73f2a284bd579dd64e4229a9f36e58fcd24287c47316b08f +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: bbc773ebd2df42c36ae05952d6a64c63a5dfb82ceb3ef4f8d4df3a30ec8c0467 +public_key = 2ecb47bc7c78372b75de587297848724335f44545a350ae2e7fef08ed4764fb8bd4af9712f2ec8b3c99e5a04432ec7c0b43dd384534aaf2f7c650d883bdfeec525f380b458bb69c5cf9d9842d3b07fffc539c44a2e0fd23aa97a08c5e1e444996144cff78ca394b5440f4aba566383b0375edb2544a42c4df25b6a97fdf63c8962bf9b716bdcaab098b41f735018735d8a26ad7d93b0f17452bb74e80a67ff7519eaf0ba9b3499a134f9da167ba72dda62cfecf7e3234b152fe15bdd463eaf600dfcfe711db1fd9e4f387fc858d8d608244cc014a31036a9abb68946c5e355dd7fb914bf23ee7ea21854ab778b67c4dcef43ecf8374594385c28586dcfd5421d2ad08634b006965f88d58a5cb449f62e36d708fdfd0aca3b6355118be5cc6ef40c7af39caf6380c55abe19912bf9d466cb701d4bbcc6ee38c525bf29df3cb3ed452927873c17c7e54ed51f99a6f585b89facbf71f594b49ba84d7f35978aaa2bbaef9e749651add9acf56c5d09a4c54becf2845a0d0555528c8c1d287ce8edaa56e85adadb894413d5eba4fb1feaf474577520ceb5b99eefdaa95593ad47e297b9418c52f0189ae9bfe254f838deb8936039f956749007ca73581aa79f47e16543d68d34f5d5ecba7447b7cc67f9d987564ee3cb2ccabb6d3eba24375304b7d638533c67bc6e53d5eb17559133d4aca5a6bf44c635615a9882ef5e4d137393b76b5027f54a7db56fde3f7aea587458a43b3435bc0e8ff618f661da9fec065c0fcf3bff1b919633806a835139da4c4d34c6f4567daf07536eec3d4d0347f3abbd803f317c33c2660393af455c2dd5d6cb2eef48ead51d8350edf5590adaae983ec2e40ea8258fe718968ce3e66be53db8db293a22859d68b353dd45467c85ab7f4baa0d6bfcdb83c94a895a59ed9e9f249154ff5fc6d3c7f05db192abe97128a64eef7c4814ee09cf6d64b8c229dbf4f9e9667afafa3363ed19dcb6adb7f5eee88f063cbc74acfe90f989c9fdc7cf6bcda814bb2c4fef196fb32cc8f94e99c78cbfed86b4d2a1c8c3e7f9a11f09306e588fd1856b7f5c5eaa768dd72793a3a88d35e931de0bbe0bbb69711db2c75c3308649c136d648bd3a6d6e57c57fddd5df7f70d3cf6572aac89ed8238658332879d5f0ad15f7c8db415403ae73ae728a5f3cbf28b3f6b05cbf6a0d9e544d98db8cc687c597ae2e6b143ced1e983eac9dfdc7edae1887b7fc8886c305ae62c3dcbc61dce54ea5324dc9b82f39b0da7edfa69b81ad99d49bca9e3449774985f515ea7eeaabdbd3385784ec11adb51744539b1095c1c3fcc9908eb0ccc6dc88ba82acee025ca5dd3353639fb8148088763ec9e7c14370766b918e93d8839a8b0a34d319d933df3a86e3976d09776a0ec322984eb2155b6c7ac54325fec7c8d812533e55c9cc5d9adf6876e501638f31c1c660583829e7b3984bcc8ae2d632c16993673818f7ba15b5d64ab4fcdb9f7b0e17d83292e3389bd6a04d559fcd83a119e3c15167363f997f62b6a046e4c46b9acd703be1a1b641e89e0ea273022168352c89cd86e6d7746983b3b51d57770196a68a61ef5f1634facadc7538f6ce0aa6448c86fa76c6a3e2390841bdc7f333650c53e0a998b66b533746765316f08a94e18de52516228102ff16993ac61abd8d7884c +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 5b17a6adad541efcbf5ae4b0c0452cd2ce32e4f0f8701801c5b63e197c1fcbf4 +public_key = 7a79e7016e62efa4cfbd499b8c853e102c9639457f679efd58383e629a7523fec683d48d8b2e6a0ab8f455ff9732077f4baa593de951868ff7b976a35b9de3a72fafe365e44b63bbbe68f65287cf6e6d5421e73e7df7301b59a8869feec13e4ee76359d9e7e5efcec2af7f6fc069fee02ced45d6c94c76cff66bb3bd4fe358e33f17eead44b35e256bac5ac5e9e404c3cba647637537a524849cf952deda7940ecec3b2e3d8c13580ecce0e2b458873ba5cc3dc00d855531bdb5f97dd3a2c6641b8fe70b238feddb624f9660e16a9c546adfe92df61297955203e2aa4e7fcc8c876838da4a0fa8ae696131c76338097f0c4aff883eca25d55a21c6e9d1c4855047ecb2cac00e27c8ab9c8d7bb944e4bab625fbebf7c55f0df84ce67c48fbb4438eabc818dcf871d6e9223adc504c6898d3eb9e859999aeef4a39d00f4d63cc0a5d13975182c970486fda3fd7430117b5d1bfb08884e690b5662a4bd2978c5a2f1c33097e957c5c73bb6affdfbdb5f3e5953c5d9b2887435c4ebade6d7307a4eaad1cade20c4a22c8d683c8dd00ffbf82a4ae80fbd91529d198ceae23145522c86f86955d0d3b7b4b83b01a1f3674aaac2c4e38e4b3616abe784a4bbac867daba1acb13bcdab84a6bf987a23ed9ef7c7cfdcd6b952d5d5515b4b4b1e7c749e693ef4a7dcdf8b7e2f89168a9ec0385829e46c7faea3c80be8ebbdb333a5ae6676aa81daa4ab519638807bc9787f9d4474f4c068897e77abe636df95f5c35e7c691b49c72f5dbbd8570d6b888041380a6a4b9a65868f257e41fee37bb5ff807a57a9389cc195345978d86359b36e63e6c594a88959b7b006abb88d754bed942230b36946ae41d58e0050834cbaf4cf58747820a6aacdab186bba056bbc043da570f874eeedf9718795ee19c9e8fd4378fa8a42ba6812dd5e874dbd2865fd419e4d8e897a7f8fb9ad0238ec73f67454db66e838fafd731b60d92324a9b11a545bb9a9d7a34fd54c6bf898ad80bcdb06b57535e64fd254ac58155dd82d73ef779865708a2563c86e4cb3133cc5fc3ee6dd3bd43449a73e59a5c6a29a227a469cf4d6192ba4825e3503f3552f743bc3dcb945048a95d8df09bf5c5efc76227ec7d948ae9e0adaf13bd78bc588c1cf9c1300961c59ca8529c357c9d87b67fa8bd2739a7b5f6f3d874e7efa23d4f42bdc652569c7ed3546e3e85b78666e1c2cb7ad66ee42b35d3e15cdfb93fd755036f6bf95de4fe4405a8d76db3410a4ac1e52c91f03895683e622eff55646ca02fe7cf1aac75da7fa5d744512b4b498c666ca68660b984bbe7ae833e83caafc8de17ea49c484ae2b6475d3ef76e0c9317c57d90dc9bc134b606a7ae336b4d881d76ebfa954dc65dcac29f083eeaa81f9a6d926fb039ad21e09b28cddb959884acc836a4aa5e00fc93071dc474e593a1d7ca40a1deb6d4dc3fb13a5b674da32eadb6ebd86f179e614d935c29b67d8d54732948dfa37f96a63607c17973b764b9c05713c0dd36ccd534c9e87fe33690826a6c91de4b2f97312d53b3c2faa184db0a47ca8817e45eae577c994b1dffbe9109b5b9a0e9329fb6adbef67c2759fdae64cf479462d4e85ca77f55a7eaace8351a955d1d87fb15890042363b3bb64b6373e44c5bf6ae2caed5dfc3e0f0dca2015579e6c636683 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 61ab87659525de9656af41246f20e1dbe85c24e335e7ecf9493f46168bc14e94 +public_key = 496d867e75349ba9999fe4be9336fa08f868acced652c5ebd1c67c276e56eda768e31bdc8209e1eba6d62177a882435c74353ddb7f79f224ed23a6440cadda8a476c66993477b999e23b40ede83b1f3e781b53d3e4bc5e032dcb0a74d9c88aa8238b83d78792c573f7510bde5246ca42fc89cf3ea64069560bb87360ccf696e780637ddf24db78ab73d079a64c88addd4b7c9efa3de822b6bdbc69c6bf7e8c3b2792eb3f756e1a465325a763dba2296ea423e6545837fe785dd375aab4db03de565ae76613c26473ed33f37cea0346e71649d23e4862cbdd2b05711dfeaf088a4c629d48a734fd0be6a8b536c41a9368b32f88edddac7298335e5c91dc4e9c2126a8df45b2e6d8793da63fc7e94d75d3bca2aa58f5b5bee0b43a463ae2c34b93f68952b6e7abd89c97c293b06a3e92a45cdd4e79f45e14983e87aa26da8c645e7f58d66ae27ed936e6a89dca87b6d7dc1a78c66743b89b4cfeb864d67ad97d7487ef78bd906a9a7e7874dde75a7b8273851dc55dece9b1941cca76dbfdac265e4875857819f8dfe740281db6be9e4d564568d3e4d75f4e41749990c51fe4eb5eb71f855deb9349dbffe08843b5cda8e5f1e8458d1fdfaecec65796b117f8b9851776e896891ecd5aa0095a914457026e72a186f4a608cd49db55a42bcea68778a26a910eb566a2d942da58a4cea53ea7a67955bd85eaf642406be6753d9b68cb9bc4cd4d685d5d861a605be6e63f7cb49fb8cdce4d917bd59b9499f459fa7ea64a487205ec97e66e650df9196fd165ffdd5fa5fa3266840b4575fdb7625d07d00486bd433447d6eeabfa65b216ed34aca74670d4b7006fc36bcfa1629af0d79b352d1c82c26f6233ba52796730223ebc1ca837d9eb42394d4a20b5e5fe98a9e6d9b34fcf8f0b35f2630cfcffaba508a6375aba51b4a36af23740d2e5e706bfa1084bf3bf5a6b76bfe4dfcba5eabb82faf49e4e3f6d369cab0f74c00bd54310a3620d67deee533a1a89a51b4e8a3dde4b25244f0c66c8e8e454e358364fab599727da91af5f3816aa1b37fb09e54435ab3096f8e61936f99acccae3d689eafcc7e32dcc42f5a347173ec5cf510ebdfc3b55f6d75c9b02eed3b99e4e42bd3866ee6be87da0e75ff51dd3e2ce1daecc6a9734ccc815eafbef09cd18c3a8ad7cdf90574f41075cef57d039b6f891ecaab6fd33fce4f66b6ed589f7423b4992f488c3cbc450db074fdcc7cfb4b5ec09ef359247c1f564cc94383892757a8164c8c985c28e288adffa9c866a6779faa0f098fabf75da4b9c5e0fb36e4f5ea6452e67aa97c8e25ba55a3b5d7f164f08bf917f57b16b85eac18e67ae88cefa14668e7634d05865d1faf4d20e3e1b37dc9ef9e64d18654646bbae973745e64f90e69064f38fe5744a6343ca05bea05293c5dea9ceadcab0b2fd7ca177ca00fe3d583be23bec8cd829aae8d7cba909ee4c89cf9e9b52038638f557f1f23c6b3424e9eba880368782d2ad990f67f11b03e112148d7455eae1e79850b75d6e0ae82744cc6d77a46eedf72924bccef49053198b88eeac123ad753a5d587de4c6c2fbc12939f076e638c5e91e6ecfffbae47dac984ce0d4d6dcb637cbe8b2f04c115f98cadfa79f64e6253cab64110a71d94db5762f8cb4d277e03b2435a473d60b193ed2646f4 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: eca2adc3da1fb15f34033405ec08ef2f46163df4bfcccf8842c600ce0bc2026c +public_key = 345881ac1e467fe988365487107f66d76755b0a368672dd1e627587bb4fa2f0cef2d9db154bb61c2cc3d82a3588e5dd4d21f534f787859df3e8a28f9722f9bb2bc7780aaeb128e37fc9ebb0adfb39dc77774ef91fcefcfe80afdd498f379f9471a29df350e8c5819ac4eaba7a5af4c703c887603f2267b3eaa58a90dcdf71208c6631a77312eb3961ce4605b5e25cdec2e3c9b2196499dfa69d6a76f065e907cc79611bcbca7be500e5d85507e9761a59e8bfac4d6bf7a5489e482ac5426f73b906631e784c3bf9ff599bba51464defe6a7c1354dae97844a6c73cec5ec47108d24ff5efa95bf71b03f16f56abfec55ed81dfc27b9f50fcce2c903f9ea63b3a2375ecd35634bbba0a5ad619d4571ebc7868faab83d6e80dc4ce29e8596eeefb6486fca778df82dbaf3372d445bd64a44f5c396bfe2a098e660de6fc69c503a33b869afe7ed0da738f74211dd74dc47d6e9b4e2b7a8fa3e18d4458560ace39b55dee4f8dcbebaae512efafd8636bdb92ce56549f6b0fcab1978a02ef694087cd62f097c32c9445616d50e454a5fcfa43d5cb2714d49eabba1933ab857acc1528cf54b35cbf6fb4e267b567dafa126be552d1c83f408b1252db0b11cfe0aa430f695af478c9d1c54406b04d1170a84c4d5fe9657c1b4eb652938b4a38ea80995ea606fccfa3da56b5588f6fc64b6fabc62b6a62795b3372637bd74ebc55c76df17d288678012247d12bd9118c43fba2536f5daab402377791c906e4cbdd539eec82aee71a3a697dde65baeadfb978be46a8fa5cc7c8ef3d037cd85888bac3797a1f189cc4035658ccaadc61432141b67bc09ce04685daf8d6c6827f9e71b62dcc5644a2de401d967158cd93a9afb442c3af48340889e769bf7ce8a1dca4f57f4ffc93647375e702bacb559c120be8b1d4a5371fa4bcd6d3c22254cdf2654b2873cfaed359104e83e6a4cf86aa30e9480d5afe5ac5d3b2cf6bf42c4b314c7595d9d7bd55f6569c3e22234b9e37f59619b52051fb43b99fa687dcc32c6c276a391a10695966d687ca6f0d9dea60a093f9a8fa46bb9365e7eea87dd64f308fe81ba5c3a39578ea4583b8882efdb5e0b45e7be2ab82863c68ebd336f7aeb9e1777d7139becde5af3b73e2143fd482ed0a8a8cdc9e9f6d2d7c23bab39e015c65a17fe0409609c1cd607ba94fdba9842146e8524cc6ddbaa3dc3c9153c667d2b4f4a4871ed74ffb284c574be735b24b9f14aa7303e6d3e9bed8bc4e5e28a895a7a55e5043eecbd4dadaaed7d2ca9c1973bbc485400b8bc3e897d9d977be1d6cd7d93607b1f3e43b56b551895877d3bbc5d5186fe67daef4d1d1f48a4bc4a98b9332666afaea93aab55b09cc95e879e872c48b3595ae930e8f9188f3362dc6e5dae90955f6c462b52d8c842184bf1508ed908369e9e1599c8e43ea7d890a7e5a8caa6953d774a2e7aeefb25f9422ff8d3637f1b28437c0773a719cc8578ecff87fef05b3bbe5753fa2aa5e414bdb599384fb6462565bb04da4c84e550b30e63928c96744f7b5d57864dddba25065246d3914338cc9be47b2debfd18888ff9aad87e1de2b789cc3d7cdc2d93567f7a4c88fe382c4c5ea7dd84e524b82eab586ad8c8b05c9af5971a56a31f2b73ab45392bf60b762c5543dc3a259dd67fccec3ed3654c6559 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: c4f15bec2d7701339d0ade4835193bea3632edcf89e74992620d9eb623a0d0d4 +public_key = 2695adfcf444770c6ffbbe6e931eabf6ede9e157eb843a3e7a38b5cf1d9a0a6796a0e8f2a926756f0c4a10ad3f543ddd6cf37a1cb741f21fe9102b63435d63d6b9e0b2fc574c59d67a1a40e22ccb7559f6481b7f0bede11943b3e67a570f0bc269aa50de26cb5f45d7791b75747d517d486d7a55a88ce86b42856705f6a7a48a8892e96ff20c304e84f71e0b555c1b4b0d065a50e6ebb38e3cc47f3009179dd2b4c37a1ad6b2099c2badc4d256a2ff2d42bf4b3db92be1038f75b33b4485ffccb9a7edf2a7d3de6ec17dccd319ac63d26d80f5b5c460149ef85e933ac6d1434d4b6679da2d1da6e3aaa186f6c7e23d577dcdfef5ed43a6d4ab22ba85b5396a4e6eaa1528becc59a1843a4d70283cd209e55786fef354f4b934be9a1547dbfbbcdf2e552f968c2c8692475632e78ab3d743d619e74d8d7ebf3797844d7e7e70c5e367963a7cd3c4869a85deefe3a8d34b798f39056544692a77421f4698df37d8ef677b9d8358e8eda2cbacefdc511e4ee0e125fbf3dd36c4593a061f52408da2672dab1cd8b6b1d99a09ff5ae42fe713bcd70833c544f4facfbb78d864767449f3d84edc5b4f38cdef7773d3989d598affe6650d1e66ad4ba0e034ccbbb5a75d69b114ffa1953afcc6a8dc58ca6da337e8e4484d562ac700e9f4545b6cef439234a8d611c99e6a7d6054a8e34914ee1a6fb272c4b0b8c4e6569952e4f98d4ccefde7ae3bc1d9d3c5477b0ffaa1c0dcbd8e4abd477d832eba3d43d9c31147aa804ce7bc3fc65e3c35063df97da9cdd6dca30dbdf5e86ad51af5aa83df31c159a5027ade8f3ce677aed5baf7708fab822b1777c6c53137cae1298ccc15e5f2400b7f8553dde739514d9d453ba97d9359807568417eb3d7abb8982707b7519a65b116466e984772f87a6346ac808c7b2defff08aba151e79ad8e45926df9294879a9edddf617e3e3319ec42bc3ab24b65b488c764ec75b51e7dde39ada784835e4ef9cbd7b778beb69cd3f93f07ade724639b86eca598464e6676e216874c9668b19aba660974ca9e8d5286eacfb3f5031835b4d44b42fb91e53e37388ea2f60354e837458e69a89d93de019de178ba69808fa3a914345edceb5cb4b3357b6b7e4eb708c5a7e4f862c44c8ffb9d473495b70607386d0fb4f036ee1a8ef4de28dcc793355135bdf37cb36baae80dacc2f7bd9efe8dcf363eea047ec59f396cd9fcf26f2ef6d69a6ab854efaae9a1ccde8e17387ca0333f94acc7e363d6a9bd5f4ede85fc467e5e888159b5dc6c9a51ca7bfdeb9ba2139ff020d67552d4317449b51c2ec37348c44e3880367574d6ce95db588ad0189a80756eda88ddda9a7d3c946b10d897ab8bb40d644117abeb0d68f71ea83000c5ad56175a24efd322e5e6b2a487c74a64eb45e4c93b919d65cee04f9bd385e5fff66f4e7fcee3aad08155ff791b805476dda44937c4a443a0a7f7cb5e98322c341d1f413c19b6075bb9118540beded53144f2cf9b8fa687540af66728fa9859a642bb9479b41f57912cb5e0046dc927319aff7f4f3665aee6a7bede9e0ab8baf2dfa868b465aef75f3ceb916d8fbd8189ee80158f8e5b358d2e8305d96a684ae9ca3dc1903b5e0a5be5ccd8ad0b9e61da304ad616af46073a781ed8d08060c1678f48941d67b3685a39ee7491 +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 28878249e2ac2b6263422993923a0c8bd05ce56e385ed13c943b03d226856947 +public_key = 09abaa56083953cdc1b6ec9a5035ef3c16859c2c91c00767510e6ad3ec36c42941aface3e4086b37f5373ddf9ef4d46d6179c948eac2738bcb765bbc58c8c0fd2d6a4f4df67ee6f537dc5202c5a7189f6745bf96b2983b839e49526ec920dce2590fda640549e5e7cbbe13ba52b762c6767c92a95679ed66631b57e256880ae56189b699691999fa294b71135a7547f02e8873d2653eacabba9e3d82a60de453b77da1cb42214deb85ae4848b94d693d9c6a39d35e7cbf083bce5e659c0b2f6274e853507ed21d1743bf66525aa7c62759c9ea95e55e139a9ddfdf6b0776d567a8f1e697b97ca60a8f555d0e97bae535a1efdebe0da7774550e928647d4d598d16a45ead810399cf38865ceb6cfed86f3ae9f55987fa37cce79aae89d30f8c3b90898f758366f7f591452c77ea7c3204ce47e69e304138568e2f57d0768986544717acd17b0560b31656745f6981c65858e842d913a9c23cda9aac9fa5ee6ea7cef8b0bc99ff863b404db2819ab2e9ad4cb353c7edbf409e495e617a410e638bcb47db2c887b8adab2b9f95e8faffbaadbed1496e0cc4748cb03ec88da477029ca131be52de9f3bd7796d11f8aec77d6c204ada1b37dc0149a7d3e8d8356a4f8c9cf917443ff0fdc0209657968dd82bb865abe8365ba3348bd81f43be7c4ffd64a54eb1a3a876c36d60e2fc37008f524e9b156145e93894de3dad9e4fa8ba75f4eb9ea94981ad38b257fb4da57d4c8b40ae5465a3a9c7169ccd31be3295546846a6bddfe3c333db5aa6eb1ecf578abfa8bac3542830d53717baae30a54536eb874ff78cefb73edf8cb73c9f72dd7552e48eda65cd5557dc199bab07cdc3294cd577d9acd9e9d63b536412ac7cdef3da1dcfb6e25dbcedd64f5509ae091555998a3e326fa69c78b502108e9f8a55deee77db49ff9b51d4981cf30dbb872cd77efe776a09be478532d4c6a339126e3bac2353d37cd94516d92aa59744934e12143f900a69f8caeb79ec56f047cbbfbd6bb2bad8f6f6d6d54d7fcbb758357e49b937590a129ed88caf6ca576ece4fdcaa1bcbff8533695aa487eff2b5749bc804fa7bb7938d5b4cb4f46d6ef7d1a36af87ece6f7ece347ee97830ec69cdaa91ee16ed3f0c81bdc695cd6939ae56be1178e8486f9ea555747c664b5f2eea9ad5e5938e438729916d45b8f0d3ad0e15e4619ca93a8a971e9433c9eaa73129fc760c5c5f4ff59f569dcdf39bba5ceb7269bd994e7ac0be521fcbb64013d5641e8e0f35bbfd0665023863e275c7d63e9a1087bb2f956d2dd3ade6c37aa09c36cd5aa9ed09b8999c4473665ae2b784197cc9268c57bfb78dfb054bd1278e044582cc3c81c547c50fe7bfc37dbf6aba9fc159a5863d45af3758a8d552c398ed7c2879dbcbdb79b5a5c34ddb5a48decd199e3319f51f9647598b737639d452a575f4ea7072ffa0ebb7b3de9d57350abbc27d7e26ddb68d73468afdac4c9b3242fb703ea6bb80cd64e599ce909f69a0d63a719879ac8c396d89f21babb2c5adb7d38ac5b7e984f33efc481a353ba6bd95039443658eeac6f5d4eddfb0ff509a3cf08afbc6016bb5d97f6dc74993ae3f9bb9a554c07ef09ddfde521b628d9c89c8fa687eb7464ac51820225b65b2af8489ed896d11825bc4df67f7002453d16875ce21ccf49b +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: 17fc65f7fbd7c75ceec421dee84dff5a8cb22764a182db17e0ebe857f54d60eb +public_key = 9734408c884e737af71a17a9a68f9a56e4ad6fe9d403ce8327f4b5b15fa5d72585ad276a532f8ea0794d4bee92363d46757d5176f76e909792b32b3f45f3c179464daa653c4885346b19f1f73afe197fe0542575e7abcc210bb7572c5ba97c475d8ba2810c54baff39897f5dd17967e9764514eea34e55a9e33bd5bd7ad30435f50a285fb43e351ba4470fbf380318c9c7a56ed0664c6a16af63db6dc2a7c1c4e5a901c89ff7a589c099568c9bbb058fb04205595c34fc66d99726ae7468684b2cee6b2757760c7fa57974549c44c17cdfaa029afc2d74b459cfbac3d34537cad95c34459b58aae4a4dfb3b68a74bf8aca34cb018b92f663f0bc4cd4008394e28fe5abeb505b4bcd37d473da43569d557eb35bd6eedaf2c1264db98ea6b37bbe9467899117b6033d4fdc7faaa60bbdbb1f8214cc87fba8dc1be3bcf9348bdb6fccfa69e329adec9b9851e909f68e2a5f510d53f92668910ceedf267c59ceaa7dc7f255f8c277d8535fe48db1d9b12cd97fde35c838eeff6b1c84e3dde9e77469350bcb9c3791af23fbf2ebc633f3c681e3801d0ba00b3d672e955d84a3dc412fe00c18b7a5a342d226341934d34bcd953dee5585aeed87cd68a0eefd3dc4cb2d8748eec4abedce85ff73e62f4e4e709cc3c5163de7c8de9e65dd4a0b90df2db2fca850e4cee338bc3b5c369d617afb64c764f89ef2abdb66871ed3371b773586463eb5e36689f872f36c546d3cd876c4aea446e99eefeb54e7e40fec94059f1d3c47585cd9b128c549e48f6346cc3fb6dad19cb9b65359f055d6d05f994f05f35baf4d69bddbc527ee0a59f733f7f6f00dfd2b956f9d6a6e7a95e9e2b9c4c90b8db6b5447a0b589cc7ecf0b74b8a9f72a966c0b0da3824035c70c334818bcdfa2632e7a47ae91e9661b96a6b5be7810a8840dcd5bb4addb2c6a60e1dcb3e7ca365576250a380fa4b956ded66e73add7739a4b4f3e7988b64270732ff94c319a368cf0b8d8018a2d31dbb37c695032a3b4db7ee26fff87ef34ed68b5711ca99af1cc6b83caba7eb91d20edfffa2dd9c5ed91e086487cc438e56e3459d5b7e954121948ab835efb0044e6ce8d75f28b70a77e32c8362b71b77299cf201feeb3013b6b2ec8b21e7a23a3cb9456567b4ad90fbe642a1693501db47f8c4829d86bb1ae7accdd77640cdb5e754ca5999a15456e5dcbeacda7749c1d89074be30a58f3600f3f2904c9599d3eb67c963c307987fabc4e58f910b57a56e34e7eaf978008c9fa49ed3c15ab1a91eb2b198a5b83deef767a26a758400469ce1beca84afdfbcbbc51c8697cc4b687d8ba41d4572565ea09e5cb23063f760dce5292c4ca9cc77f7ffe5d70c8f6e98b360cfec5e0993588c8f76775f92c575c023f70c167cddfc76df2ff61e84c1b506737a7448d00a6d07456fabc6f0d985607b3f526d276846cc739286e22cce4cae94543f2ef76805aedf36c4040cd89127e96383cef278e074f954249b859498a8ede3756637558916e3b16cfa90ff5ade0abc4d674a050369a596ac3e446cfd3e71600367f89c9251e33db95c508e09a64f683fe85fdc5ff73ebe5836ebec9e0ffea39d0facda0f75f5d9af9eab8c752df3bd9e806d255282846cb5fbcef030ee8e721d0566c29f469f5773938d679dbe17bfd7de66be5e +result: fail +ciphertext: +shared_secret: + +# Public key not reduced +entropy: fa0489f3730100609488e951e6aaa15c0f193bc1dbcfcd013bc418d6c507b176 +public_key = 60eec21f16c49f7bd2f255df4bce35a9eaa5e24a3e3f45da6a8fb5979a93130f85dac88e029f3060a795d35ec1feebe30828582c95ca744db2e9fed5cfd64f63e63f85a955dcc4b12b0482d0994df7ec61b9bd9aa5deb8ceb94b76aafae22d31d17cd5cada3a4d0350e8d970cc07e7953543a984cdb086c4269e5858d454880c97505bbb9ac7cfa64d55526689033c82424dde12dd928354e043c9e355dec0dcb4a86a0ff6c8ba5b290a7763add4ba336c897536610f667c99b88b53a4b08ab564733b5d2a3011f944b2259845dcb6ab8956836656e347df5a9ef03943b343389f2a98cdc96bc1a99664868db7fe837817ac4db32afd325a869a5da32d99446256cb3d8b91c159683bc8c1005ff87ca54530e84082bbafad485c0f179781a5da482fc9114485f6c4d3f386d678e3bbefda309adc41ca66fdbcb739654abc6dbd52178d7e30ee8fbb48597748dd8d0f82e37ec7f1f8c14694484b86f41a2bdcf49f8ad9f3f8357ab75ff9d99584e9defc8e0da3469e87f0a5f9edf7c4857ee5db8ade8ffaf6a046efc951ee78adec7a3d79dfa245f7d3d353d883e8580e8d7cd9d9d18ecab047dcfcc8bf8f5463a4fa8707aeabdf2c6a7fe8c834a4ccd8b6c869c6bf93d8d8a53f74620b30b00ffcbce53a7ff85145779cbb3fddacdeb597f4515c1664a374a64bee8885bd919668a70b47ee25dfac1a84af7de3b8508d4e115e77f6a9b914cb5dce45c678c886b4bf4e3649cb194c548fba4115ff78a56a4310a7cf1dbe6e8edcdb0fb8a2685b30631753b7f87eec8578684a67645ee9fe8cb334b67b7423d5aee8762639a212b9baac4d32654be5383f7eba5b6fed245d1773ee748532426c5a4f46467175f1dcd7ff4c34a38bc87a892650dffebf09a9ee4c175d0bbaebf6469277f75a291faacb88534c59ef4d3c884a4470f01b805e0ce70fce7f69bdb0eba9e088aad2477f32febf68848a5d6969c9151d775ff7e7ca1d3cffb9a2bc13b1bbcad1abc9fae303abfefc51af169d26df9316e7a12a5bca6827c25df567ef1cf0f13a6fd728a32f2f9f72c4fe7457dc89ded5bfcda12a28e0c4dfa3d84b89a8c9bf66cc305f1bdc3fb989c364edaf147d5c0f813e89d4cc18a5dbb6632af4a34ce4f008fd9ab4a88c1705958058bbd6f996fe7642a0b45b6913e7d0e658eb9fd94d6b8d568ff1230cecd349433ad4850b19a4f76e6685767e67ccf1333a9f667a6c432d87398b3332cd75cea9aea7ef9e424653d5e7a8676661383f34344e491726869eda4f98fe982f6fc4cf135b1553a0a94fb35e8ac23f29a921039bf31833f12ca8c50df121559e1ab5bc38df47a50782810dfa56cafe2f897b49ee8a76a9d8e6b8b15c63b5a88d580e0fb5f70749a554fc825adf56dbd0378bc0ea3bd33fbc9d45d535eddddf5579a687865702436d3065461a06c8b274561d938d9239da8c0bbc0cc746afbf53e58f3f8bd7b6becb5b1f8a5403fcb40efa5f6c34c4372d921b4e6aa769a6ea1ca15c765d0e53c70b0a719f7b47ff783b648deaf5a9cfe704c7d99830735ceb20fdda1e9e66b21d60bbad95027e5310b93ead78f5ba9998da2fae372d92349aa45acbd4781a98b25989e93d9c40698a2676b49fbdca7775f554d2448358e6a4bf5373892b712b63af3392fa95dea1a8 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: e7aa41194214caa340115002a25d547f794ea33200dc8a9ee0fd033e181ac23a +public_key = d4c11aa4c8497e7240cdc5c240f1aa81f68c0f2264d5b3436bbcc75952067ec974c8b709273717a496b91288c802d433c824933f9c9cfc862b6b51c5111a1284a43bf6540406756f335ac7e7fc8ad25bc7d16868803c5e5cfc7fe22839b987629e49022ff91f074c7d5ea006bb95a38b806fb7805bf4621633e2a2cf9a0bec5817f2f716778acc26b22fe789bc4d9847513065e5f64527774e89cac530ab1488cb7761f58b03aa795a627d074a1bf3390dc958054a249c13e12bf7016dee169376c253f0b1a42e15b4bfc0355a0641032492dda19f69348c8bdb450ba670b66537e1ea83612ba790174c5a873a185c0f165b0a522270e023854cd5b664028ec7d7c67750adf7097175833796d53c3aaac403f86425060363754013a9b47586a982347525d318a2361fb25773977262f475a495e56821d0206b89170441a2666798fc3678202cc8c7c54b3102260e70a1c6e38e4485847335be02452626d13c12270490e33d6b7145d426666b0a635b9a7df78927e8b5c89d7bbd7e4b535b6822e6a2781cccb30dec75c701bd4e25c320181dc7d674f4d9720a736d9f526cea78c11ec03ecfb34b52325732cc9a8ee0cd927b5c8c0c6e07e41742e5461fc051489b5b48 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 7e2a93bb6dda4ddb1003e9a868447d77a5ea223ab645f9f6d4dffbbefa5c8a0d +public_key = 33b69e9cb3ed32615a6a1ecbe136a0b819237c5c8be57374c1c37a495ed60c685e9a02f4f9c0c6b9ced6d91d7bf3cb9e72a43733b5842385113855de971e6c2a5dbc402fbc2abdb7e2a147c0b891b721674a11860a3584c2a5d31859d9b56cda92235d04505731c77ab516192918a5b53313b813dbbcacfdd8233517477d1033f1389779920512010fd16533be2a7b883394d791cf03c02ef7309e560b29bb497e0853a216b5414752936046575a1132f9f7a11f561c58a3481a00c5497502dbe23f4005031e598d8cd182a6a78e43d17c5665985ba99ab6a3a71c6bb536379ca5f88d3623ca06da41aaca48fb489ea80216f434c5 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 76bed69c7b1f6011885373da211145cb9264b5a50134a51354c2a8f5be06db37 +public_key = 2088bcb70f56a579211cc75084c54ff884ee0cb3ff679e784b239b91a121739e0ba4821c42460acc5bac137d1fa8cd5521500922c104731ab01b9268c1309ce81d7adc04b1f12ec8f0c4a284668c8351edb876bdd802bae164551634c4835a89e7004b814988a213b495a668a6cc8a28b0430000ed812891524809841b537937f12174c541486cb92f5be351bea5adf4f0c54a04080a40781f93cc73714d4dda8cfa3a58b6474b22ca304a015d5b946f5dab0e78964a07e13e6331b65de1ca8da7cc175a5dcb3b998d2b2e +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 6d1edc7be0c8f9ff8b1ca62eca9cc77d6337066c91b9ac04766c9cc833e03ba9 +public_key = 20c186225f86b2c9c4f1ab664c45957985c32c49729c7491192e20c88e49f96d0ad4a9fe2641d590a5265c92e92c6c7a784b98033cd3254423253f5579b31632a82b681ba720158fb03ac5257a406986e2ca8c16f4bbe2c3c220f43d13a2972f1594d2fc0b88638e78aa8db21a574bb6c4ef9c2945b67bcf5888811c32453a8f737189eb14842fcc9e5ee0b1e6fbbeda737b103bb49f916a4e7c37465c49b4314c73e2b75d05c5978352b06381737c79a7a4869f093b5fd2b409b11cb928a43a39bb53aabd086b4ac160be9df5ba +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 7625b3ef9c0efebbad28dc6b15aca34bfdc4f2b93e8ecbac8a432061452dc364 +public_key = 4c1ea03459c96859b685b456b6718401df8b6fed775b68715135fb5236b75ebc8363834cc31ab42933c929cb6b962b14ce2df1ab1b653ae5205aabbb6069f8b0b5c208de9457f20bc854461201bc63cd803cadf8a937811ce122270b6b39ffc2aa0f274fb3b361c77c2ea6f634ae4ba66ba3a36f6881117b3401e81bc6c61d22175700734ab8d341039631dad5307114468bd1324298bbb7428470ba29d96ca69ab0a724b53597b502d1253139cb3a7ca94b8ab1b30435927d823d5298652123c9104b1ac60802b3168ee9a1ad3f296a9dc0483e684514ccca5d67a5469897c81a8f20113dc73c0b465c3199b096c739b42857479e77cc744728a9f9b9b7b00c4fb55c14ea439af31d49031f7e44af843a9796a33c0a2b14b1f77da2554a203584f022982dc0c1195c5df5b774ab1bb35bab0153b56d1130538bc30074dc2f07e294974018eca8352bd25891701fdb7748d0411ca36c4fe8645a253195558a20fe985a5962b5e86c07b539155bd8a4d713587ae4 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: d1f36787c6e759092521de965f09bda02bd60d990b3fb221b236c60c57264c12 +public_key = 08a8125882d12795a94642cb1c8e775946839f835c686a2903450bb18c43209b585ef60839c87616e5b3b110e4444dd4711600275f2660a51a5e514626c068a902a18396a44455f2ca7ad49df90a794c50871e293486ca7be607229ffbb593a86b1e69363e6382e367c1379658110621a820a52c1025c63c1464b7104d6534ff3c0c1c5a15799a733de0c802679bba8a7027f337481229bd472e0d591d9ed27bd10944a57b9f87b0759c909a68c85dbe44c9d378782424b930cab6af3c8a101c19bb873108f87ae7145efa2b82a18217bfcb873a820a41a1ab174146f8c44034864ef0564e7a7c8dbac90c98651f +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: e38e66918ad06c6b64df3eb7c2c64e39f23db5ac2c81539e42bb983459df95e0 +public_key = 7bc2c53f9f99ad67bb63845065fcc6c51db00147e419b2f468482060b498c0e4e4bc8fdbb430a76f6ebc8e65db7dd8954c54e01b975ac26e4b570a2cbc538b558336b881f47394120826a33cb1a7ca2d870c28876b5c718081d61444d00a43804977d9b1a5cca1d92858a005032bd79bf5f6b278026588253fdbc2712849159f3862ab91606e098566d73456490507021e6d1abe4c6675ee3a37bc4567aa24a35489c7abb2659a3a2657988ab7d17bec601ef25246dc196629173dab0b1b006591466558213b71fc41c1eb72bff4686a210181c59b8df75acdb78b891cca2c09c1b6c8557527b18e4db722ef1acbf4378782114f7bc218ff9337f27171c4c99bd8939c60b13468dbb9782590202067be48215541b64ada97e30bc8ad1656302c4cc8ba9a6963469ba532d6f51b46ac92d3e44a96aaabf2f661ff04a171f518a8d0a73094b24c00cf02cc3e8d8796c5287310b818c58a8c8fa4cbf0d9645b93a41005b75c4c7e1cba687627cc1c39b7297a07d0ca2ca8c624a93c0d632510ff12b0c04bbd15a4ca303bb1702278f06ccd0d82a12c90684642a83b2289afc5159a3c3aae2a6f5a9902b2da9ce37200fa995d4f45a2cd76a0f727c7 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 2ab0bfab14e3287e1512f002927672c6229b6adbf1c8f31b72ee90dc4f96a584 +public_key = 8cf433e5048465359fd4d279ca333837969417ac794204bb3a3aa7cb512b5233758d803032bc6f9d01acb879946bb0a4fae73f19e9b999f6910f724415411e6dc3a97058957ba2091ae87886695801d60144463acb555e63d4975c6ca215b1cc4fd36e2796354bf33a1be40f2e8908f3014b5e881042623bd874617945 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 548c87eda498c4033938de91e98c50e3f370a74abbc9fa15571e7a3e091c541e +public_key = cab8796dd84b4e58c0256929056e203e73d4017c740ef9478a9d64c13166ba596a65931ab9160977de95aceef11888f297bf738a128375ef672a15dac1e2a5ce20 +result: fail +ciphertext: +shared_secret: + +# Public key is too short +entropy: 48db851ec75fb465cf42c6822abd73405a1d5ccb6b37227aecfba9b8a25369b3 +public_key = 8102a8b977eb37529ee13b8c21a1b2394e1a74ceb8f6a0915683a3e2b394ec40fbb31b90675115c2191bc559154317677a205892ce60536f11cc235c3078d0841824ec93a7c3cc69d7ca9d19c11117092f57b8dc1b58b003ba93760bc1811035219acf6117dd196a4e697e30d119cd3981fa57590e81be1237b004bb0025b6c1f636104e294362b352b66b3b27f9bc0fa07d53c170724bc94d2b506c8ca6ec41bced435606eb096bea66c4226e13474dabe981b54230a451ba466abc3557bee3369602dc5c98503485e3a6fb3a7ab659cc0c73ab75aaa4369c67166718438b31f58267e6cc72bf064f345446c155823190b93cb13d23f41e7f6abb616b6f2ec2416bd80695642b07b28c24b9140dbb04e4bc789a95393ee68082a185a53aaffc7c30e458a50a531aeb01beeee78ed1392418d183c6e9a425fa01e0894506cc533e05cd0725b768db2df3a6799c42ccce913f53001be7177679aa308029a8194874b1bba2eb5a910b570e1dfc9be4e80c41e345edc554af1582a3274dccd6ce02c26a75d6ccc27347d4f839b0f246cb685663e9b6a3916c0c18c7aa67855e87371d567c9a0020c6330166e2cfb38889ca2367cae229ee3bb0c1b56ba7536ba8fccd316544ae77a38d811c0c42404d451a23e15fe645777f464cf0a6929f089cd43920bf27cd266289550b8ffadb23b297252c47398979b4107bc9dd7cc8b6a48bff968d49fb4514e5880ee638da57a626dc8d5d3340d6152398656bd2393429707a7f697126aaac06944678e90bf19392a6c943853625e5c988c6c6add71a7c9255336239bcdaca21953a8519c60eb91745a8968dd6f0cd4dec3893fac2fcf05402c958935846a3c743080c6dccf642efe351f2b3059c80babadb45da670f89d37b72b26030867875ebb042887d4ef223c32599908c8990714bcc007fce3088d193cf50b52205e64b5530b299507405a46397470711229095f05a59111c8e8a49d9574b30161b6fda839e035a4960c05ba0824b9a4a626ba3f6e6af03d95cc716864cbb07efc35bd5b9bbf4e5b1a957c19de0237807c40f2cb2337a4e1e1238187a502c7268a7f7a0eeb8a97203caffb3a179f6b6c81c05038023bd5081543a36832761040928fdb7b0beda6314562e79e264d6307be1ac8d1e26c294d790efb3790460a064f560b51916bcb89e21a735cccb1345b19cb16b770c4ba66aa65f4d1bc6752c1fbfe768daab22c902b212fb659c851c60c9078a96103a79513f13425ba08ce3461bd24721435815f190b0c9 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: b8ee47bdbafd6beed55b1e018c6675c0e91912f727baa6e2588b2506b92da3b8 +public_key = 06879e2edc6ce28490fabcaa8313a371094fd39b2c7fab91bdec8dc5f81dc50b198f84ab451069ab0cabae0b12dea213cdd30b05b30a850b2c6ed39aecc69f7204cc05a58cc09c7b0c0a01994182dfc97cd1e360faa931f5553542ca2727ac7ceae3cad00aadc9bb0e273bc2b57095bb7c81949b3d2c598519e1270ba50756e72528f7621e2491a088c3ecf79e2c03237eacb36cbc6e7990a3891226b8d138bcb7b355e747c0b7b0cf0297e85032ee2821fe2c0163623e4eb800cdf3ac6f1567392868aba8960c10539e2a268ff9bb05c39bfd97a43749a19c0b2f5ba7b98e89ccd8c9bc05b120cfabb6ccd17465562aac81baf144b7bc75650d0cca1b113699b448911b47891c918fbb32ec19908fbaa0c84477a6c52ee334925823648a83196f9b2628d0c41f126196045b950c0c721a6c431c8417f1a8d6a4a7ca999218f02c24ea8fbad27bab04041a76cb5d515f12d72adda2150eebb15b97a5be8b42969a3c98f6274f43748e629ab4e1ac238663002d743e4b95d9428d29b2bfa644250ee686c7fc7917a153845a98035550f5744422ba1623761729aa8ad3482504011aeab4bd029a05f73a9c743716ae18a66c3a4d5c67a1e37cbb7aa49bd49c6c750b9f36a83860b92bae9b407f9a723c4483db33baa1390dbf706b841850ac371a60184d7f186bf32b7f2d086da4d88cbb66618991c31daaae027a1e20a183a3359455b71de4a02ae174ce2cf649990a669bd54b41ca11a82336257927b776b6ef73929ed0172e4749a587bf4473950dc477009d66b093984ee26bdb820ce0441a2c52b0ddfc4d65011fd0e90bb8f30fc47b0251675191b8bef1147bde794fbdc0155bc71e5d138f8af25200387d2c400cd9519ae21b9751911af9e835b0d13f5d96736b39b99c08bf9ef0a3c821590167a525d34534a692f0aa6aa511503c299cf3985e281aa90d355b48c7011f4a37bfdba2d45c46606391039c249f365e21dccd49b08f2c870a7b42bbf6230ec2b33a789b33abb784294b68f074253357cbd1c8399dd5ab1151a885c182aa83649e911e39132dade3691fac7d5494b5dc49bd7cd225601399ab757f63499aca48a83de70ed9e7c36e202b4d632c53d490c14122ceb850cca005f01ab62cf7b2bb20baabfc2cebf21076d554637c4375d42355991d2df61a78191d6ba41fb1ba5f16338944f96927c7a8a0a6c1b885aedc9c6498b923e25354c06841a37124071602ffd9b95e01c27f9717a4e5c1e1f8a9e7f5199106989161015029cf07e61a4b768de733a7a80c07e7c7344cc021d81a2aa4b827c1612544e538a9b2cd31b80fdeea740822adb51152fd838c53bb3b82a0296a51151014c70db01bd46550d061753f32c019951d033122b10684674285a650041851381d090075db9ecdf09be45487ae062f5ae7405a62b1ad26c79eb1a7029ab91041afbb16ccb43244f2818d62d16787a640783932204496430751688876f99c087b4a2c70a144c2054e5013737117918b1c20b6d260c392146f347642898e9f035a4f516cab2219c0e38c25a13ff5e70d17c6267d853f28f8a05cfc393c1252df051183d266a5a291618bb889bb8f5080b5eecc1bbbe67f7585c430311007518ea5e7538f2090eb3edf24bb2a6867e2936ae41055fd850b5b0e29b6efcecfb1b97069ba3e6603ba2de033 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 1275309a0e52464d441f3cabcbe2b27fbbd8bbb981a87b526174a834aa52af00 +public_key = 6133a7a3739ed37b28c7430d0353c631b9a4e5a4b491716c437264dfeabd9f812750113409e8632e78bb83834cf91cc1412a76e303b963a78b55931f70b8b4eff1171e9c2d45eba71cea8abf96b32393a9d1cbc822fb225249a4f66c6e8432bfcd1272892792278675aec8b6b3d35e79351b4dba8f68e76e74186c16087d224165982a34b0551f12601fa7b8cd52957ca9a9b1bd013323f219385628f1c57a07fa13aa10054149142447accc94167909c32e02284480a447a4c6b5f30a1aac029c324c47d7ce8268abc76016a804cd50ea6d6c529cf984b80074226e1b9a24394541b2078e780df4558cf4c68653982290f9bb52820c26400ebd7803c2f99d9f7354aa8b38dce3092eb21d386c010181a93cf6becd05b27433cce5f7bd38626e482a493fda7ce239a7f0c28266fc9e761ac6a1a11e1389a78a23a7a7db1850f69786312b08c71064ea0493e6138e38af68687a28b27b8cb2b259d81e66252b7bec2cf9f47a36a517946b709b9a002494228721035b2cae6580c35c7381a331b679e1aef735b35ec8163a9124245036247c525301627038b069909a1f300b4c8cb255aa0d4d9a93965c120c5aa059345eae8661a1a58b8943bfdafab5cd451a5ae80347179141498a5a63224379a91c156ccd1a7fbab54709ec2f9f911a23fb7369609415ab1c760567a1a45359a71ac742b8de20138428984a830b26261ab918197f8a8ab3f6aba350287d6921953c0170d90a58e0a7f13c216cc1c96725211c7a97da6bc95ca86193abc724c5c05ba22bee16c490796daf428191a9b1655536f43ba13b36ada1ea1bb2d0591848088e5b77019a6086908361216d2b897b08e03a03d6a6feb7b0d7428e2cfb49a322a98a177f9db99f835214bfdbcb9b0718d67425cb200ebe4a4fdc545b02b052d7f5cc44595c3c007f4fa857875318308a440ed517515673d6e0c0eca43bf880a38b3819a6d671dc8b2dbd528c01e26a762006827ca969518b70362b20f9af3fc0b70323a840395e32ecb31f4bb018b478cf4c502f5924bfa76e899267eceb62ce06bf15cc26f596382374b34c7c99cd062ada8790428078bcfc9fa0e006b5fc205c53116e54ac23d79ed88781eaba02936b21f0e2c5f9177b7bb45cda2b73a5f65d8225b26e85ad8f27639c81a55fd6b663b346a5b26e8b218318a93c59bccdfe55b6047c06f05900d8b0648f900bf0c8c8794c26b21071a4c657ba2c7ab569291ae9910a064493340e75b4acbef1924d2a1d79d5489ba92b47021f80766967fb74d9fc7e11050774685d3424c9fc203eb11a160486307d6a71f3c3ad906915881820ef8bbe54e28ac1993f5840504f6887ef258e247453667522dddc200d80aa8471a40a9b18a50290e55a98f116c818c67379da3c6736471f704569e06e1c090a9b3473976c830d37b369884daef235698a853abc40351198a14b1e839654de289eb3477dd8367133a76df9977c39338d0670b9ead96bcc34027ed0aeb122890476848a41542997570b99bd1d62c8cc4b486b85acb2b81fa1709700aca0574a6c9ed10755c5b72ea7adead97095a36e4e3a6e82d58b42061a5725881f77b431c62c37974c69c057a398c60af253075a4f8344108db3439a32e17665673eb485ff315a8354b88eecefeae74bf9d865601ffa88a8c392ad4e83d10ba209b1e048d45cb12cf0dd3d4fb34beef58f44164693 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 7a7bb5b36c93d5c628d54563f043e40c1207bc6ac593fb52888dfca29203b166 +public_key = 0249195f4553510460a1dc663eb86c390529891ac894f2919a27bb2e909706eb154b965df0d4ab7d1aaff8386a0ef7b068da03d87b5d6d497cb4f5617c31ac3517a86056339b8220ac5b7e455b7b3b29a37e62b94f8043312c12215c3f16da95fe9c05baf74c688c6aeab42ba7039b5b3900037a155a0817d9dbb9707c1fec18b9498bbb7aa29bed265aecf76791830c2d4b7c6bb71164c99f33e797f0a5ce76d39470129ad172c40f635d9e164151627941f3ce4731cd14f5083cc2069c7b6e93312728a306a54c5c46a276bed002c0d66b4d7838dc351346e3cf01759655530a39982cb5406fe6f9184ca861947316ba0433f2f9701f9cca5a1c1500b42a35742d05e87dd7f05ef7382cbefa2b28220aab89cb1ab35f705258610b021064967e77b7e0737836c2235dd6c8bd3997620b621925632dec05fe9781550457c7aa9ba4949ae6566d0fe94dd69592900922207ca6862c60a24469349c00e4a607244b86d0b69d709755a4d170fc3330d873285d2bca1eb608cfa0cb4f9a772517b50e1a7057a9a473d4b0ce49704a30b71f0560ae805421337de6caa43c8617e6802d42956773ab661286c04152109be906a8606af29ac1e7532ea3a92b595c591b9358b4f13ff818b6096b608c504376341a5c041b45851a2d946f33fb9a668131b7a3804b851a82d4654e1c11fc61021c4b8b4a9521689ac105971eb16217ea8c8de696679e18c63f02cdb9b5ceb1f0c9c5fcb8971533de13a966e46894cbb5efa42bdc3c182c8a56bc5509b2dc465ac4486737ad7517742b50bb3ea7c52ae4129b8a2fb471375b8491a7fc0129177f2cf6616ed6223d6c3f39320e4e3812f4db1277fca6b3582a28c547d0013900bc34ce291a14f99fe1374f01474c1750908a211f648913efdb1dc940548ba20508bb9bb0c996ea3276c101634440102efb0f67e55943d60540c2680cd542ba48cb1ddc025af436381c833c67c5b1a23910965363a919c9f7ac54094c6d4225d35641b257091b820f7f7523d9f61561b428f5a08efca65d53bc9a9edc058cacabd9095ac3c6c31b966e00e06161c104a204a340e62d4a483e15a415a9c473ca668a4ef0238e3bc163c94c3a762a9ee157a3dab8091081ed8a950d3a765a0a574928544ac6093c91437c6a72778c4181da845c24ad3034405069ac66da4004a55433a259fb037eb401989de1caca59b2d537653e575f9b6592eb954704ac67eb38410de85268b56aae2ace90a0734279489efb2dd8c75ddb855227246f1e18645950b55caccd8ee771b1c88ade57837d8cbdb01a6d6973c8aa19b2ab8492f7d90bb31cc5d64b131b425084473a1999bcab9ac051544eb7922ff5831c10d137346bb5e0f7056d6120af473bcd794f1f18499bf727c5b673db454a2e02b814d67a76b56e04c434b8f2bbd8178a1821b0f57331265a21125c8eee61c4b5107a48fc991651442cf09799052549080f9bb36b3032c749a65431fb304ff9baf62318914276fea569bdfacac2a85f94d3b8448a0741e2c3263c577419cec33c5a61eb8fd033a4d471caf9651cb6964171d5599d8891b8015c1523b38884c4ef463aada8993d45be748b77f7006413e81a67d360f9860f7a0daf18e140b15ecbbea24330eb9b2a53372e9c57b72364d0bbd49b7b52485fca6805a23266c3e3e99466e04be1526abd7ad99459f2b5bb8d8f +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 7cd774275c35da9c0788b0315ee68b8c6c5476ff2b1ab1b8b6db794518e080c2 +public_key = 9d591f3d4778256a2d6a6756a30b00a3f206aa437d9dca1208c3ca86170f9eda44ff39b2e9a23742582745a863e350cd1e0cc071f453dd021526a90db5c86c2aeb33c3a7a851233f3f5b2a8235c932db3c4e322b3d054735426790403c5cb76603f367c66828de16723a20932d156a0809410c982bcd442deb00900e5b3964b3534603877bb5b1d1733c5ef82f90999838b8abf4e466c7c17d4447c275db39c7249778053da302bd4d05aa9a2c5c1e6882e03037809a49aa7119c60079482bb038116f3a26b19bb64aebeac4e6ea8e7bb4cb6717ad13a851b839a193393de68408b903c7da0c76882530d4d12b95bb4b74dc84152a6c4f1c54560110d2e903b5f0c735409a6e2a09f338850094c4b6446fcddba937b8a0d9dc6337553276aa7495ea956b6a2333f0150817bae121b2b4046cf0551db6988fcaea9d3eec16df98412848871b502781b102cf6a2dd3c44ad9d9b7bedb0d5aeb534a08c57348b5fe455ce6c9308caa5788cc70c64064a8e11009a7284ed87d0ce05fcc372a4ee02d7b723bcca8b5d8fa2091e98905c4cf06f582dfeb20da51ab539053c2f38f08824399753cd1c7956ad74f358298aae3984a7b6a324a492f46445c838c609244674850d65c36c30752fa2412a34b2dcf3743b4ca6d48a9919f9c107aea050a8006f3d6967d22a59eebc178c279247898dff6be9473865268a769230bc30004a31937aa6504203a9336e119da3394e980afc1b91e3012324a1940ce998f1491542db032a6626660b194eeb0ad4850b3a23437a8354e4394262ac5cdb3529a9aecbe160627beda6791f62efc6532b2b027d4cc16875b90bf6728460550d16214a85ac0d327927ba17e2de6a06b4814fc67150c0249bf778da1d897fd872971c6ce17b0b75e222ca5b9103bfa1ca7ac5498fa877e611608f5a7fd7c4ef9c53a6ac66192530d3ccbb433e07f5e02b70ef22cd9452a03a7bb660692e13674c1700a9ee50f22049717a4135e739702f244c43279569a492194710c4c6ce96a2f40a6b2e3c1a50e28910cd37780158a42c34a92d167d012b7e9154d6debb5850381a8c43ec409bf519324cd21c6366411adac5e0b9c869fc9cbaa335292c8293af801bc47bcd4f68649d7647ba148ab86986e71705587c5ff909d59414b9ed1a9f493b26c0c62e7c93acbc1af1d3b81c4a570d0c16f788026d96a96a0832c881793f0f66c4bc657f7126874701794643230c41396d70638eac8966a32af4a673d1a050554173130aeaa3938e23ca73bbb5d666bb0b2089e6d89743703069c58b9bc55916e1ca9e171c9ca9c7457e2b6d94bbc181565617441680c5a52e87d2493aeb8ca7a322081d3ea008e8312e0756fb18239fa45c26b86132525c6ce91734e2404d3c4ac3326539455641820c388493c92b67fe82b29a7a53aa1d4421586542b836c68b67ee7468bd2c99292f29695d2414be02cfd59c4304c0f433a216b18a115cc68813a0c5bcc773f83956384b1ab420e83733094b0aa00c3bdf3222da0d7668da29be24c647dfc10c602ca72b12ef86311666ca84c49452e4ba7e80c0940e16fa90a333269614c5bc9b6073f0054b143c111d78b1c67e3c27df57642b9bf8fa71281f8adad7ae6897056fde7b4a293eb6f7a73f90b95c5fa09dc9f16a4df6b10711b3affde567268578fcc1c212e31b672924cb5ca045b91a67fe479c3f74a48 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 0e057f85c9ab97358b132d71fe786ce1dc78a7a2adca7c5a550a30e762f00f26 +public_key = 16d56479e9a68a1a0ad0174566816be48862213262d16905bb46763cd311058626f1ab9250d97a1eac2bfeab5763b0121f284e71427895c1b999a442067a9f83846eeeb358aa8126e7254847dc7733e39549d61627b97e5c8a661d879c7efa659f22ba6071223dc02b22106c1653573eb71d7116b26755110d399f7cf82c8392cba9a8718e2220512654ea49526911beb6709fd011abc6215583eb0bd912c31bb09ca6b838459c9b4981ab87814db1c14724322a5e431b70c3477ad3bdb7ab044aa43a2b128d4b8bafb45627ff29414d422613734560b15b549751fb2634b36790468990baa49226c33ee501b0791105c9a9510a45c9d305ac86da0892859be57263b3952fdb557a35738869bb7de9697122a7953128b9a1eb0c6e53c9f9cc8730388716f10b0e311a45634c6dd64e5f26abe1898ba72c65f266ac839830339b173ceccf7cd80b8e14141d892eeae64b3bd31495e83534c646ede834fe290bf282cfe71c97b7670c882c9fd26016a6c7a9702b9c8d80450c76502e105484c15c0346a92acb72c32c7614a00903a9b4f736c29da10f99368dd4c12bb14137056b28a4c475f842b66e82cb3e74bb5766ad5a11586d60255ac0b942e1239a709d05b6ac2dd1aa23ba4d93e6bd42e76b7dc8b8c06561e100b44d511ffdb57cbd9b57b34149b310060a1c244ef89749f19d909bb7697241c627b0ea9280688766a1775329eb8d6d4a40cc117b01e7ca68f89d4bb8025de84b0d933c939c9e8c908c3080367d63befa940b7dd1407ad76077f81c1b8224908527be0ba0ce12b864a68dbb8b83a41989c5fab75520c2cb39974af369bfc22fa0520c8de2c6cc322a02e31eab0a3220651f990b12f49a057406861737ad29595052cc971cec333a94abcc3a3bece143bd046db5741e88b0424600506419b84d5b9de1767d50505c71a6518406a0b5fc263f4bb6f5d135d0409f952aac6c262dbf90bc77c419666726074430fab11564f959dffb84d58735cccb9d0dc6c0946c781e19be3c42abdab33c370a2b13e293d716542429b4fe773cd1d12e631140e3b89f060bb2137cc8a1e1a4bc459943fa70bf17612f3ab85023247989098af79662734b9a29a878b6ad8c72214e8c00671c2f9314742d15b8c8866d07cb79c7f842b47b8a347cac63f595bc8848b9687e70170cac286d0a307927e3c8f5574ec23676e4c0b705c3753cd0239d11581c2283cd22a8f0cb8cf8a3ca09740decc3531da09e93e71b0b9bc5c08415a583524f896735235c988a3ddd9323a5fb8d16c30228647380945c3de6a5d6abb77a63cba74a068367928c83b98e6a8ad304c04ed7c162443e5afc0868b523611b0a0f418cebc78568c921a3b172a6a12ecc7c16be0c75c315ba8429c86f152ce36160ef64a7ba75c47abb2d86f12929f94bf5f6bdb63072424a3283d6a3620ba4312c4e84511d0858a07c3380dc7b779389ca12bb9fcca256957056370420dd5788ce3a93ff672bf3302d70f3b8aa12c15b4ba6c3bc80c592a486d036d988bb1c3979ba576e6aa3cd10d719e59c9c591c7bffd63f2c870cb4491079eb594a90ca391b0a1ca4198a8464afa54e072664e60c20fccbb2f6b2378f9a10c6788f0c7e905553f6f4a5836dd5b912ef52d7d6fc274bd7b8d153d989e912e291067d844dd81c844f8d40b644b1 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 33c3399bfb3e20debf852c6ad6b90f4e7ef474319d55001486fd78757c5e050c +public_key = 391597a0eb1a2ed147f5b9c04bb99df3130cb98cafaba657ed0b514fc182d312a484f65a25da9016130074851a929a783ca027e3aa09765aa3d6468d0324816cb1c50f6198f38b1d2f237b289950fdf3b74adb4665fc887d65af52b56febe2521aebb155876d96a7591a0cc5cc5ba10e46340243795ce892dcd62e992a22d2491ba24274210c213a69187203cc649040be780d335814094224f075c3bf5578f5daa69d57c6df669a815284b22872dc763643d806a622a450c90440f4259c94cade9680d749a1d22510a11710e2233a172a2f3a577bd8702f3a7b226bcc1db11b975b5925b1472021091584f469cb490257358b5502b3a3e1c3fa521811e845ed860e9e437cdb775be15659a0eb43422b87d7611e6b0327c0ac5df4a2235c1c405c393c597120d6d50ef9f98f99d08cd58599ce3bcf4d6668270a5bac0c28709825c708b73df2929ffa09ffaac121a7ba279429410611209478013b429df9bfbc81753053c8ddca3588c4a84a54a4816b25e2a0a82648867610627d555aa3f21f8fb1b1ddf5af17282bd9354e7e687029ab44883182794b16db835d07262d36cba9b72a5f1dd31efb401a08f56cff339a6c031dd560b2e71c84d7616709da039b88a084fc2efdec335c45873d4a6d287b0c730164faa364f42ca513d39cbb6c0df5e058ac2030c98661420295bd9a83868a53b448455f77366737b67223028f49a13c328b1277b1e18cbbeff6432d920ac173cb5151b06f9882b795c6c859651030b610085baeac16b69baf036c15cad55262638822b7bf5bd16f4e0b663c7b36812591d20b4ca49c9d93924564e96343e99c768c139b10bfe8d311db19ba1030015236164eb5868c18cc71066a0a774335c907784cb9682779c54792b85a9d87c5b766e8735d4152898a45b3d6c55060c16ae6388db06172118eb0acc4d366a429550d8339a0c5c93b74560e29a5bd7b13775d0b75403c75b742642ec62392d0ab2274b60d9148db9c8c5c3423f7b0a1e3037c0ed19110062ee20836bc4406cbe99ff3346c501915dc893b921b55f4fbbf78724ad293ad559a2d24c895df028899982772b0c54fa00d2fb27d5f463a6a5c00fcd6b1545989ac1a76f0f373e4626d8c1972677241e015b7582897a271959ba97c4cac24de2a2ef3b3b1f982b0d414a009ab63df56cb468569260b85a89522d3f61df523b9544cc54565176f0984e80b07873c101c016b407c4b418c1ce6b638516325f175b35eec3c45f59e98754446b366813c3df442aec3a9304eb1cb75224e20a3aea9e9b7a6c76f3d735731c8690e680e150c935ffb88c40b39eca12cdb0245b7d78dea01402a975e703b4a9a18329988b5472481f0130c74981cd83447373897e6a15f7b3c66f7d0c168994d875bb97eb14e0dbb2462337ab574979e1c8fb2f7036a8008eca86055a1494db59742941642aaa630c4321b558f27f05f9b36029f989d6bb1750f4b8a182480150b862437bbb9194d05122dad65362193777534732ed081cb3a8fa4271b3948c69b402532565fd90b53b228cfb7b34936d433eb21959599b0ce8146d1144df0fa8c96627e521357a029521d521fa5fcb998a2856c60ab2141c394ab345d0b8cb26be4dba496a90828dc4231b2c2524ab9324b9cffc5bc7206a7dab501e8c5863c90e668d12d9d11315ce1463ea54ce4f66b +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 110a8285f4ccb5846782dc61382e517048cefbf2ddfee70d94e4872f8fbaebfa +public_key = 981770eb3972007d79e963813b75933657616f188bc9ec355e535f6952848195873440522da28ed917a955228456cb5b334c3d82534c5d87883ac6315bb61b45f743dc6078c1f35d9fc4049790cb5628cf7fa42a8fa3aab2754213a5390a8c1967c89b4c540c1b6b45830209483189d66b08820545ab692087701dd77c949c750fc24b111db609fc673fe95605928980f9eb59af66716c18013ef27af34614ab690cc4706432e4b1dbdb96bd5a8b6931c4069175c9282107d806c311839418ba5eb188564c936f686a40197b4057374304244d48798d0765d0b4ce81e31382e31f427239ff5a78701895a21109638834ca050e278829c34099204115d681300f3563e2a21ad5d467f4022efaf50aecf14d5da1a109b19079c90dc9978938fcb7aa72bcdff169c37c16e50a57be973535c203d8141f1e84ac3ca7bb38b31135e28c8028c90be23b3d428bc4603b2117589f039de437a51eab94b568781da5394457094ee7c32952383f113485d3278af69b899942a666a0009d16ac7ba16ba212a9e02d8957a5859a6f27ecaaaa503a61a6c2cb447d226134e9bb951155625045c7930380e1b44120398b50861dd6822b45b28031b5906560bd6391535260b9b3e7b41a17a41ea8cc68d90177863aef795645a9899adc9eeeb83b8cf16305fbc97b44c5277b880c820ba259835490b733f9773d631508cc2706d43bbdc26988552fe72c47d6532253b400c4f20ba280ad01866451a5359844967fb56f1b434647dc3ae3593c96a84395f2c8d42358a5c1c827e0c69cd74a5f1abc7fd08693d39bbddbbf1df61cd012bcf4b5a99c5a5a5b654aaab48157124730e0be51442684948c7069cc0301606d2899eeb2ab301b97c588cbcd211669093a23b07518c129c41c95a5823db7a03b1d3c8ae85a409f786a7554990dc8cacb74b627c5b10d78400b8c021d192fdcf64095a41877cb81d2725166dc436160296b484278dcb8ac08cdacf54f450901be82c99afc702ef2a43512b6e2c2982c021ca4fa0617f23de77a0ea3294c7296c2e4f12382e877cefb24f083000401830e93cf1e1979aec7a9e2237395101877b196d3c5a725b47eea698b2f368567e4b928092cc0b4406170a205b8942f6b1505e8570e8c18bbb479f2c54d3054ade27776fbe5264c53b1cdbc30f245c79523a2fd7858982bbaf5b838b5e5c003e7bb2548cf9f9498ec8174d4536613e0713074ae9ab18431dc2687c201c454a375dab3ea914f01ca7ffed756f5411120100c1a90af1dc60bbaaa274c686e2635b327174f819ab2d33c689bd7c6f5c4ac2c1a24f030ce90a9139f202b934b7755620deb2765e60847eed58f13db18a979bc3db7c638b12223f40650200bf367b552069ed222a7d2844ebed85adb794f017ac95c685479c70db34748c38094cfa1968f293192ec72713220121bc5d90c71f9769a32517ebfa7b16fd3cb29c80abc9635761b2fbfc90aead536a7c1383220c24a557fca66657eec04cf7c6d298b2ae6041e4451289d762ef687726c614ec93979de65bd2b56c8a60b64051c91a1e010e987bffb942cefc72478a468ad28219b75a88f339e0a383c7b190112e64f48ac320480bed800a06028a1fc7517f6efc35881536b187f2c0a1b6e611864a986079da54b048568f4aa33facee343401b93cfd45c19b4eedb383a19c6c3c18f7ab6eb16d06e +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 64fe129938e76b4f1d2e29a94d64143d847e43f5f05498671243e5f2692809e2 +public_key = 2df985c8126c2826918ffc46aaa6a3d083bff116464df6b1a5fb8c86e62428c616e0057f33e7b0d5376b897a32b5d0101193cc6f115f502b952168664b742bf0ec767efabe04e7a393e1aaf867154bc465c0247f0f141ce5e2824b100d7cd68fb737cf0cc57329c84188fcacedd33e77d6a503280a90600a9ce291f98163bbb9ae77b71764212ea3d83618cc03ef4b5807f6cfe1b1c8b0a6cf50f20a08208ce6a17acf293b7abc90af51094bc0b70b1a5f6b116b3d989156962344393a2bf29947b60eed6205ee6b050840cd26d73dabdca66f939188da6dd057bac85c5b811b7902f19dbf092eb2a7a96720112b325d2203b7f0538895e79281c5ba0a859960c015459715ffdb150590b0ab0a67fb20ba2e967102c9b76bec1eec199058b12bcc8321c42760c155a7fb4384c608c67cbb1babc62034cc129ff0902f088b7cd44950e505c0814de5b73b2bf1658d6aa3d9045ee4f62d5b581cfabb3dbe7012256168f081af35ec49fefbc36e5a747f84811d151d8de9705620472bf731f0d7558715b7cb9679f44079f095bfcaa6aa21176028e943e7f6c9a293461cb6a32b5cbdc5503ea7fa2592254b30c1a8bd7886c0fb24e7c552d1f512e95caaaa63a10a926a838b53cd88b82e0883728729d497a6c2b55702023e82904bbb22b448d93127333df4e0af57c138d7a83b91e4c4453c28e3b04b404a4fe8a8b60c6cac76617a5899a64a792b55008337ea9414b8ab2b7b502f5242654961ce3a18ad5b47e7bc02fe4cc48c617a8e229c06ea2c42c46629dbaddf3376a8500df25748d1ac7699aab982f8747abb38e5c8cccb48295a8081da527e7d2cc5a38a1a6ca7876cb0c0290c008173cd20d23141565c1bf635af44b234c1c52cd1ca0e431ef55624841788402a557d438a6588818a0823c97b8959f371ce5284d29639a5ab3f4551aa5d0a438546334042643411c07a948274137114f16a8b185b6fd5495599a6cb1b7d7767a142502973f768ffe38603f4775d3a1e815393bae9a3ac00bfbc465b279aa9ad416cd0a9a8db37c710f19dc7f164f6959bef488bbee7088fb99ba49a775a3a470221c589584533b92bb10161580a1b2eab2fec7850962004a368bad3106e182810f286966991c1132257b9f244c6b3a4268a04d5b58f85d7ba082a69fadc506b39a9696c9fab0314d64216c0178d8679c04f60afef1b73f1d999a4d69ec513bfd2a1bd4a6b966eb0aa88915c2cc41d0fe4a6129a3523b7613b17c787022caac3be3a66ab9541b162ea565552caab7402f11c9c0842c189a413e4518038c2caf6c90f43f208ea24bf407b2b137388cff3b196f3256c0c4c16160a1fc14e43c996ef1c53c9e12c50d675445b49897c7b8638b63bf23261b23e669b037fa0bee91c30ca850f52d2a288c707575799f4f212a1c54b6f899a7f766db64b1cabd29111035cfcfc011573332234be85011e31930cfebb9a7187507a830b419151cad39041cb86b7662d0e3b8056968b8458c4070051622759e0a3bd0968bad7040413f92c4dd20158eb83801132ce2a40e7f7962e752050184ed047c1d862b5a737b14c4c15f59bc587421859e66c5456842288a8850266981a3c8ebb62bf223ef52036d7775fb9e2d7276a2de0adc2a7d4ddbb8d2f37f2caffcc783c51fc3e711350 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: d276a3cf659b7102429ad9f0590ce40bd91720908cad1d9c85d7aab0189cf890 +public_key = f7e028dee46be03b09a7f101cb979f249b0c07ac1f6aaa2c4a185c51252beb99b3d92b4f88e550ba03153b05664a002b4787b844883f6f11c5791980893c5507f79161e83cc3d5a3c680633b9c89fb5967c208aafff81e7b0836d1326e0c278498c2a46789228c84622c336813141bc518258a76b2882a140d573530935b198a83f825848b6bc8b4f1893cc318404a2a3ef8681494b7f329b698d0bfdf649203617fc2310673b5171a6b5b5526a26f83ac908520807b9f543921bde2576711923643c2a0f6a78585461af40c0daa73c6ec7c8bc6808e41767d591e6f613a1064abe36050c442b78dd841b6b3492a431740936e1926709eeb0c818c469b3281479354f7243c201ca291d2add3d7b271c4a38ebc7a562a0525ec0432037199e26bac57b4295b3ac746b2d1c28ce12b67b6f02a8ad3a7f5f0bbe2e29d8328a07957347755cb97b34b14009277327bffe902d0c9cc5060455a3825502c3f42b17cbb22422ba7af9d20a7c096ad71c38ef879039db7ae78fa560de8be18ac1c9b111ec252ac43d080b219cee7dc25b6a890b2f2bdd02987faf98129f37aff123b38a140a6968c0c477aa7f7768ab22f7a5594229401bbd24012ea5df6d86f5bf9cfd0731504ec14968100af8ab3bf337d69c25de4c5a6be92102453b067557f5146435124c8b310bea452183578140c15605eacbbb8c8ceb8ecc89f01adab5030e991a6feb9c67bc77b2eab4c7875af1ee54e731cb9849c6fb26b301e2751fcb94b463562dc8258d938326b98839be52654768485e61328b966a1943229ebb9fa9585b48b45a607a2d51908094b437e3b9ad4a943b2e455d88306bed5c56f0730a6896436991771c49df27a05274a782b87ae42b110bd08616325034b364f4613ad75c44a1ca80e7ce34c2965613140932ba21512eb82dc5abfa6700b235022ab034d1f31cff6f07c499b98ca0aa9bd942425928aad26b283099330aa018a26750204b1dc41be744c8ec7b28aede49f2b5b9d5681c87120af4f9733f02530e2c14ab6453056799bf192091197a169f0ac9f8c8539265ac53027d60c833e3492b71920e8a380f2262348331ebe158604d98f0c6b392004663b829bdd8a0583ea6f7ce4ba42b7abf140486f4660b7b2c3e1741e64cb2dbae552df67ac514233ef6797370444f89b41f764771b67a4387218f6986b2c1c748ad6b9c1e746973110a76a6e65b6785b93634ab5b936594bacf6c519a17c6bc4af9412a202485d64294264ea831df7557747393ea33e7e948a4ee20bd5e900ad1507f9bc489eba3069e1b169e4a8b59a5194a97bf203071f500171537dcdba284731180e9052a479a36093c39a0839ef0bcc9ac9bc9bab6d0d0941066632677c6c481800d9d603537ac2b1c85f1ed277ae3110e5c85ac4c99b7a067d20386e24c94d40d0cee43abfa8ab05e7f6abee368af4768105f77d19f65af6969740e138766a290f043b31909dea09bb34c7b72d293ed61011701a91758a4144b63ddb926241a272a7279dfe01b44d8753de1c94dcb041af13650999352bf6a68dbb568f12c32403ae190abbc46bcc5439a269e8c33dc216391b2f836838891622c4837568ca81105960619ca5d7c22f5b5a97ca14dae0e54e06eb1147a8188f574c1fddb6f82a630bd8f6ead9c46020e8ce27729db1ed40 +result: fail +ciphertext: +shared_secret: + +# Public key is too long +entropy: 5fe02039e038b1d1c3629a7a8a20f7ea0c3979a07f658846b6384d1557224658 +public_key = 46b2c2278067423337abaa88e3b07a4e6a5b033626de99351fb05d2cca6890bbb6ac815c265c760464366d41264634acf635b311960326c22405677386b748b962bc66f582960b4777c762c6ab7c4d1b5213bc5d7cf4245d4b085e2c5d7ca57a8679884c9bb552eb2679a3b57d414c5cb709bceb2033b87ab1f414e4d78e5a7521a969179a01b297b9b0ea190832a8203d455963621dba84a174f16a9ec43e6d074fdc724a6ac634c3f6a2cc2aa74013a53d19b149b93db810c1c6e4799f3a19e36909b807ad1155acb1828ef5203954baae1a815a7c76b4be4c3da2ea67aad94a550a3a79358595d9a000c541a1471eac2c2366643887d1784610b4cdb372f284c92fc17d746b5051352bbf17b32488a93ee41dc45b95545063f48ac3db0294244c820a818c31431a9d7b5374fb1e6eda00cbf7afcdc628f2b65ae2f2025f587cb415caba0bc06aa9b21835a42dd720635ab2edd29e40e74df0d1204396b409ba3311c14aa8f438be5a38fdd57dd2a180fb7536b4116697422aebecabfe372dc6f4c7fcaa05804c140f267626c107d0018aeee46de2339f9bcc2414333bc38722e2006b35f544b669981f84964989868f582bdeea402c911ec1a64763d70eecf08eec5ca92c3bca25958bf34972d334313c7c7fd305cb7b40443bf01cb5d105a399caae2a051bc24036d57f6b3944688642d29b55e171740827ce070728bb836a8737a9a3119e2aac5d20fb1521bc890f66b917e71451f3abf5815187c1a20cf81411402eeb82bac98845827a3338f1a47f9469c1496036d36f995482fd474db1e6204b072e462469047a65a7da13e549101b2295eef785fcec8d3cc849d64282feb60252c50ab21753e60559cf24b421988d1fec50fec98409a53710376c32b6154a64a0c56c24922b47449ac98f72957eb87ee3e54ec4612762618081710363f5c59d3413fb955048d18ec22541efb507144b87f08ca04474bd91a53ff876376c586920846f5f17a209f706cf43014c13034538b59834ba9e0744620012b72768bf49a073faac119956c7f31fc66734a24a37e6b710b80686d3233e01a97e14b75b6cd807d9511b7f3b8fa3099aede899d3b0ce5cc158be86aa573c755fb76d05da75d8e015c41c8253e29c3feb460638276e53051954584183683e594061ec4d00fc1365ca468e46cd6f1954448982f2c7be574b3f128c187944b9d3a04876b7693ae2c778ab84b6c7266dc85990d46d54a483b6186adad4c2b43ca535856d76dc396e046bc53bb28b66b9df3b756431be9e3b4c6572a497ec401cf23cb749167c23082a8a6076945be4e8cdd586b74d8521fbb7c127e72ecba54980fb5c1d2b24af2971e269bef35798775b71d52ac2c33a047a352f79940bbc66060bc816b038470f92397c9bb754b351b7559e8ddb7022f5206c46013f62cc993a54f93b6079b86c160264caf22d3cdac1516028c1a26117ea559ba212780827d4d5611bd1cf36bb2a5662409884c9ccc881efd1b16d653ba310bef9e15c2519aa7b3bc3a3988d1164c4b4f2b6d9e39946fa0774583715c177b8415f441b4e237a5901f469efe07584254111e38a4b7330e29a51423b5c4bec0d0fa7425f92b2fb3884dc577ff5ede725dc8e60b78b4d4d4c73c4f675c02f701ca9a03e853b6438e5cbc5094a2182a411704fdb4e2814e153e1587bbf +result: fail +ciphertext: +shared_secret: + +# Zero secret and error +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2 +result: pass +ciphertext: 7d3db5cd14b6db21e23580dcef17133205df090d24fb80487306aa6d894143dcd9bf9c47f9ae2634d4c2bef2400f839d42fa417a2b53baca917ac3e8e6c62083d8d1e849603ad45a6522f8e1058b328e38f66aec79c96065470ab0d15947dc61aa1ee1bd4a178c957bf81b8247c68425c4bc3f2e243b8ccc50fa0018ecbc215f3487b4f54a0fb18333ea2da8e2200a608a83554ac5649445a53da1177a3a11f69fe12c6ce093ac3cadb9be5ce9e6fb895345dea2a4cf386ff6ed2d477719af3bcaf2dd34f2f6746d039f82063fc589e5322b02dda783f524bf59fe9ea30b101ffd83be9d1965ed3eb16c52df822425f9029209e303df1725842e94fd806476e684f6f53fa74ae4960f498088b5eecf024b24eca054cff625feba4d133e6263b07617a467e0d9c0bdc0aa8e1f12620ade63643fdb573a798ebd81e1b0cda60a08ade91c92c3ff8c5877593ef0a90e6c20fd9bbcc3797d3dcc7a5bab85ec1e08471c73c3a19dac7d7690eafe2ecf5d19f3d0d3de2b700a622d1ef40631dae81f725849a2fc8a0225598b5941d74da237376e3c4cb72749e3bd76a81701d79f1423b2787a5b4276ca277e5279a820aa9abf164d921ec41a5a3598f13665c19311d0a75a0968926ef664869b8b2e6628db1887ebb2a7ec06432662b9c1494eb399142b2f05b6ec71d37ab33392f755f2a9c772f60a802648e3e54494c6006067f95946c09c6db484c526a4bdca4a663b329c45d7888cf8cf6cb20192b57b21f06800d711d1a79301d05eed76bfe406f85c2bc32e8680bbf7742719686f59564e39ad7f77e1d6226efa41e5918c4e4fefd8f24e7d3bc885af5a3e4965dbcac0b0ca594df119af883309ff10183b2f6d26a43f0cb9df9284c04e5780ea2bb2c160bcfe25a764fc0789bf40da40f7001c5d92e03ab1907e9287c7879c3fd3d30a1fbb3f4b5684d73b8cb0e7e0b8cf455ccceea2c5e92e8f90e0a1f99ab2d2353c391d20d9d9fcca8d449ea1b2d7b2e161bc198f34aac1a9221f5e6178be1f15dd26fb5973ef7b56a9214ffba6683071370e619ad805f6fc3aca3dcbea742c975f72d3c1c8b6f7a0fb86e9b4dd4fb76c5531d8d5a48be510e3c3454c2ae8196efd398bf117c2dc8c9891c8ac7db5317d4c98b5b300d6422ff8ad7c0b748d8dadedbea0a0742afc0383f6082c8428c97f49f1225a40e9f10ff3cd42d701d7a8d4d24fed319fd3b601601a9e9eea1552c1d169b4b7073b3212bd86ba3efe733b549950ec4b71078b3f7c09880a810492463d8152b11ef165a1ac29b81a17b844ef04bfde87f9c090a1453299c231c7453376f3a676f75e4836ac80ac294d69da31f60f1e470888808008088888000008000088088880880000088008808080880808008888888800088008088000088088800800808888880008008800000880080808880880888880088008080808008088800000008000880800800880800088088800008880080008080000088888088880800800080880880000880808888080080888 +shared_secret: b30f8bbff487ef7613d1676569986a72ed98afa9f37842013a2467a9ba6d013f + +# Zero error +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 1c398b2065bb3d95582d63859ec7006f9c80b1d0c26c22666dec1784f76b4096b4fc5892a49c925ad388a3e31ab2bab228c91985b295b730861ae72cd0f733a0ecb85d26844ddc8d28766dfaec97486105a4281663c67585864367b7521e968357940bb31ac0658ba60e23baf9d5cf4b2600ed8b19f6a7c974fca655b0b2e5bc019c8398bfda6bd6442e51d365c3839e6e4cc124cb5529782692bc68a58617517a9d6a316ad9e93695e48791897a0ee3010c43809d0a6f5127ad9f43578d5842ed91902ae068ce3ac8cfa419e0dc8c90b0cac51a47a2a16162c515d0b98099a02c7bd82cce9532590c2588955c8c37c5d957736c25cdc7329f3951653747b7b8f9b1da32027121a53d62b949e9b15a7a29d07716a74486ca28bf6ce3b8bed381cc391890f2259e60a12dcacd293908c97c503606a78a4c035a10a966415788033cf870234986820ac71db9e322392652547a6f5836c138b869dc409c16d67f1deb186454ba33e6c45cb24e969734d4da25946a427346915d598a0cb45986fc73dbd63c387421bf95c11f6a0956a76697d6216485352da8932f697e8a02c293bb76688c550c63ca633a18f1e07bdc07951a996cec3644755c4a0f55230c48844ff6a82511976e4a0a17a499e768207df0c309b814e30a099a6511d6f3a499994a821c9dd41872860a977e7406cc2b3b69768b7ea720b2f5858df28f97b77f05d2361c62b100271db35c660493b12b66938845c1c799b5231251980a99ccab6356a0b445e86098108126812121176f13979e59a1029cb040bf36aef192aa622523866ab99459a01dd94535477e1755101478b53ec165c3197d0110a7b4b4892a3bb82831b300e55807c44df5f6c1571ca125b74bc33863603501abf51120acb848eb1daa2a7f50e640fedb74e01307f68798e98acee0e91bffd8150f2bc9780956b4a2697a825da419aab3d3946797762aab8cca9a5a65dc2edf507e8a9474d803c8fb637e05c94cabd721eef5716ca4410e69220c4a22deb89c82526a5b506bdde8789e2359352c07cbb90f3faa867c538d1926051e3c318939302dd31c34e894e3917e4ddc60f3ca9d3775242003ae7642035267757438a5deeb96c46489670abb8918c3c4b42ec7c7c3f2bc74f1269989080782c8941a2838439c3425d88f0d5537282a677ae1102ed695dc447668113481f89e60659f1e017dcd3336ed47710a8721cc421b024595a86125af941203392fb0f9cfb2fb7af950772319070ac60f97c2932ffa71bba6a94d47c695bca3922835d86a94cfc360ba637939034a7850579c7c5e6ef90cd7ccc983d28f357ac379a6b7d6f328bb0283d79356d6b28041aa0151d16605798fb65652ff270114f29241b8774f94553351536526aec996be9396282c66c77b63399310019ad8474912bff5bb1503d481bb4aab4fa23824c68ae5058230ac2ba43a4805ca8cf6b07b810ba6d415c4bad388d17373b4535af6234e42187d33ba51dc75a8cdd3c80870cbbbba89277c1b79e631f959c8f45689fdb7a6e72a97257aa188f8548da934533076937a140ac62c598a40adcb0bc0e0af7af639efa4128d10b8dc0197a12ba1e3c9c68b461dc3a7ab2975482c62810a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2 +result: pass +ciphertext: 8d0f4960c3b07ce8148731d6f2424e614145f9bc98adf02c0c9faf944c708502d96b8142b0823b6283faa03ab500500684ab8646951f90a09ddb241f5afefcb2a75c3bbe742961ee3dde84518933dd19dddc08fe0c2157743a5d464738f430fcb0940e3b12d8a2458234cf3d2dc475fbc589d90f5918dc8c1be0bae511d6bfa0c26598529a3646453019008df6bd4d2689ec76d5b0bf1efcad50bcdc1945bc670b24db9e0fdf1880aa9d90687bb1f4d4186ab444d2cd1c91b7a7c57324aec0e96240f9d817929f6b91d136447e46cfcfe0d6e11ab16d47dd095252e13d61ba2ba1f5ea4fedcdc0cc16b2780edc9b4e4941e8b2dddf791da9f8aa6b67906c52fd368e1808035377af67def8840fc44bd11896e594deca14d4cb942b28df99583081a3e9c0f5c8a989d781a062765214ca381cd65683faff599eb6db4752fc667014a8dbd7d2fbd64016fa33c7c8d39a36265f300501d52ad4c532abd18f43662e9a0110b5c54797f1148615e52ebfd60b07f9dd61c5f22f563620735a5c55dd3173366b0ec207722afa4e7791453f522a898b9fe97759e6112e096185e40b7447c112d508ef6f8afd64b0c2bf1f75cdaa42c9db11f0d997c38dc5417fe39d2f99f00abb50b66cf1f9ba5472b05605d492b8d483b7708568753bf415938a3c26ccb361873d0a1d1d42820cf5ec6986cce388b0356b40ba6d572f19be691a654356dc7e90b31bd04e8ba9e27fdf179037c0c8e2d4440eca4d849bc85d61f2df423bd09d90ba00766e5e6ba946e53a66c119611d5b017032c5a39c9a533097dcae083d3832821668b1633ba1aeab81f556d61dc96d3052b6497f7cc349b548f90fde55604c33ce018095d72e8c1a2468da1c6c5f679234636352e5ac1b08c7508a887b1fed6fe466520f88cb5951b86a4aa6c94398db200f4ad7e51b3321af70124f7f34823c4af599ccf925c3002d297760bf4baf7fd1465e95cc824853562623540c544c8d46a4c4e006837983f976d47cbce04b703dae965111948159ef0c95093df21d80555016265c582b19b0dc8403e4e297c980129485311ee1ab7ee9e4f37f627ab239f5c6158a7434b8c6a654dc305e338b2e7c9da053d6932bf4640c2215f68e2020658ec82ace46300fab43412d12b2cfd7e09954acc0e7b928b2fb791f68f7fb455230292eab955b4818031e65a54bfea008ee5605205fe4d68b26de0e60e99ee5acd069a23e5d83ba43745985bb0cf05da32028e66bba8516889e6dba565a006624433c6cb23147008dbd238163739adca132ee73b4eb0415a3b754fbdece10f926f7979c6f85d0a6e9ee0e881f13f50c657cbfc345185f55167c215d35dd0a0f88c3736119d1c5891fe5555dc3350c86e2df0383aa876ed91f03207811e0d6d752669b8832de3836481c33d416f63ac05234a996d7330b00837c3f267f09c74f0b4b85a2bf0b0ffbcc23ec403fb621f7f94ff5b14db6bc699545f15e448223e677906f8d4eef5a162e0b2d4b95e205b57ec7fb50a03c7ce1f53d7b +shared_secret: 6f68f7fde8fdc93b27a91e7989842c6132d60007d2bb9d99fbb91d4e1c79fcd9 + +# Zero secret +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 76da327e31334a81297ac41a07b9c1d4e04ef3fb8b06e9bc13071c98f6a80523801d0c6e5e7848d143a5dc011eab319ce6308bde406c4ca459fd3c20c5c76dab11c3eff0a060f52d6c677242b6019ea40c0709d071f587c06557d0cc36f7c428383834b69b877308c55e8c816d8195f614336e50357da66fb3f03de7c3742fb23c2398c7868690648122afe321a0b2b55abb99306265b8e9c4be1771b7727775a25adb2108a8d62bf5c18571267e6c1b5dfc547019c331532a40550579e79426304b52c88cb722da72d63a8da549731d5625a6e28db6ec22f3d1733df7775d5771857382bbca11dd271fc35b4854f58b6ffb25fd42286823790b1bbccb40c105e38092f5a744e19d7b758ce2a5379fcb1f401aa4db967fee4bcfd73811b214516a098d1cc726ba418118e14970aaab00293bdd9b18de001075e2a1d25183bca677db703b010a7f3166b7a4bc374b913394c504463a42cbac84ea799d70db4ac0db6dc3da8c78149bae1cc5e4b65f701bca315866d6a67e9bebbea36ca91fa694929cba572c60a1d1006c95941a640d472bc2b30cbb635087170381a4328cbd462964c80692f224ca17575fd7cce32425d6fb19a363cd114524d8c4106cb628253bca70377aa242751b626447fc43de18333dc21c841c236eb0b2073a2a8f9a268c931669daa4c9036228394fc8a0a2cf809a1a2929a5ccc98f924a9b7282f922c5ecd96cd1436b5b21692610a44747a2435807c50581dad25268d737fee3834a54967e76c3e7f537023b57f6a7b58c191427a12282e06421289448c97f7cb042ca66927a417e6747b3dd501d119cbd4dc43d18174aac099ef85839c7d9425d87a17cd77ccd568bbf4bb0fa8ca4e5005f9ae815a307471219a9aaf60bea631e07162a1818c3c5da6c29385fbeaa76ff4804beca79d1f842c46b9fb29c81fc4875afa0b178564d26b26cb21aaad891822ecb471b76a869b83838388b9f5839e0c344a7eab55c392c99019a0841b20dd14f36875853c6150fa46c2572828f51b9636b00bad5940912923252be3c49190577c928d5bcd6983bccf00875db487287ada1849d3339069195380c1a3ea34703792251e5c7877523c1b6278f9e40cfb1614a04c01d966c41bea36a10492edba56a90e370c1995de2203aff43002446a30f3771af65924b8354e0dc2fb4aab0295925a23576e4e9770740845ba541eb23610125c782c6c82af506d9a25d148373f5f48537d7b0df7c9e72f10938f9cd66aa6b2dea9322412eb01cb04de39797f78efa29186af03d90588d8488914f94033b644663269435e2c26b47297af4a324526301f2cea3446c2507717e83c29c8a53f277cb739851bfc94db3db6c6d2a35df897ad06420452281d1659e7aa89e3062abd2a1a7113cb373e6856b7acc402abd86418c554858eecbc2b38b8b9920cc0fa091b891c8a4248cbec13d52984c6512a025ca69b34477dda65e12b7839128427c42832a1c5f31e5c3ec09497667ca7e0059c5f43889460344fb6985441afee726b58172e2ba2312aa10639737325cb82e2947299b94aa8bb021857232878b45b03f9f0ba5b0ab75c1773c471ab51e666231c3c37f1bc4630628a9b1272fb9af0a60e1a95e846cdcac4c779702db2e7d39055c815cffa89c71595bf461924ef2 +result: pass +ciphertext: 591416ed43f689aa76a117f623b7647c6ebade29bec5e089f06a7ba3048178df0aa0c26680f99d0186432f9fc3987e0a511f2bd3d075603d315956b2319b4a61c250c09a5f8a49445050e6c2260daa43a6e12e7f25bde3a94fba40f990c950bd30f9229d5c65b6bb4e13fb8ea50baa866cdda065636656941dcf58907f6bc45c778dbb8e1e8a9bc1eaacbd3ed5c034136afd74228e70c4cf735a82c696ba386a451cecf4b43a71340012ff8676c7d5b4b80e0e59f1c548a40e7c4d25b8526bc4fc14aa9fa7935c9860efd43095538dc081982ae2c81a96f9634685f506bf7cfb1fa7fde39594c5252fdf753818be40ec6191fac29f9512ab94e8c03ffaa7990e3b788ec43d749d78da8f729803eaa864efdba24dc3db1a65d1110922f612ac60c3cc731d65f8a1ee946ab348d5ca8f4d749d5b07d0ec91c0f74923533f86640cbb30b470650d2b710c690651c99c03caf4792d923e5a094ce709678efad3b474e803a87b7d390ef05ce6fb2b84eee8c31f9cd325479f78ed7dcc82d06d390c616019ad6bf8d7c18cc5f719afb06ca331034d620b108da68656c2c5bcf206046cf954ff9aab6f76833312f55b0ae36330035afea8e4b9c3fb522599d7158f3584d7d0d70e4557568b7838e437f04bb41d4f8e8d41969fc8dd2d35fdef69b85d331fffbc5d47e1fdcd60e8a10979f35722a430c55e9564126182a8d9140e8cff41386b6e81a1033a9b40d75ca6aec60beb7e3080223dbde023eb59decb9054663fe1170f2da33c352c86b10c4cba4cd79878a7c4e83745764355b3c1a8b4a61384e1e9db00bcef2068ac7d4a4e67a1aea96c52ae35f998eceaef3db46b43b85dfcab0a2994dc700868125e3460e2f9c11a0402432e34a0193ac2cde8fbda0f1a81371b43f271f737d7af2af211f5287389989f71cff7c107fadf8010bb837d3cf2ac884653ad9854caf494d5196d4fbe49585525e50b009332eb86303ba5cf5ca11cd19b687b5f3ab06c2e36327c89e0ce03efb32a813190a1849382e82cf554d86caa9cc2c9385bc3b203d20415d0282543ed33ccec14b2275014a13121aa206a98ed60261e22acf4a8eac9c853e96f99d09ad7c0c46fc8e93db918818ebf249f871dda0c5220c4a46475266d2dca6b609167e120930861bce88859a822f18d044befb231ea1e6c7459bdeb14b6e988a85c50b4969215451d96a653ca2990c8db43f44df0809dd894b072037e647251aba319267f7448b408aa959825d79e011a5792ce8dccfad35553e4fc662867811081836a839927a4060bc9be4ddc69391e0824bb16d6376f03077919e3525a6865410c71a5fc8e86b9cbe9043a294c90650888808008088888000008000088088880880000088008808080880808008888888800088008088000088088800800808888880008008800000880080808880880888880088008080808008088800000008000880800800880800088088800008880080008080000088888088880800800080880880000880808888080080888 +shared_secret: 1ef65648be69ac3ca3ade1382a2b4a4ba1c0c7a04eecbcdd9e34af67665bbff2 + +# Rho leads to frequent rejection on matrix expansion +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 1c63473a75acda757b3ac6ad26221ef4f671e01461ab865f59c26f22c61de17800336b18365a190e7a123a34193f375e9f9643ae99889eda085d5317d5887e6b2c8999c133e20c49b3294aa0e064dec63c7a00acc1c08fabfacc28203e616b5a06f02e66e87fe1789725e8538b405323b9233fa61771980626b98b014ccbb9573d57d85dff1b000b38502af474add3a32f1ac7c1ab8adf93350ef1939ea376226a37c9675fa33503fcb753a1c86ca8c10e10ac74658944af239b48b97ca2b85ca4034ca7d662c91237c63c6b35137fd0429562b5856fc11662d0777c111ad9c6c34bebbd61eb6b538378b0123033c11ae1f0715553ae62cb27f15ab26b46ce4e540d39679ad9613fc91a35ca1073497cba5c57cc2c77bc75e7281e518f7640ad48451ecc32bb26bb2512fb76c9f6c46dfb6dad9c7be4762cba596184f37259143983e906002b34acac2be801c837c53771b048dbbca14b6c33e9ea7886c3be529a488aaa4deb590fdc96aa62a68f67abb4073b2f0f13a874fa7065e3c16a8b549987c5f2733ac4bca74be87f2e14cdf7d8916d47b69652244552a7d74b846961333a5755ec1179eba27b598333a07aad70626429153b7609a131e63c6bc94c32e345b9b293345598ae20a6f6cb25ff143f68e28013793183b5c9bc8a9d289967ccf613ad510a63c94c2b6b32214a9248fa89f85949ee3cbe0ba3a778ac7b754498dc3a79a95519606171608840587040a70aa1331899bb1082802c2aeef31ca2a773ef27382c2a84eb04ca518a83af9b44028c56427013b7036e441c20acf86ae09a82b8fb6ab2a234853a7b3ea386558a0bdfcb4487455a95c30cbcd54a6df965c2830f37c41bfef65013671411db77b8d69f6d386fd254ad7e175ceed98cc1e16190965b97e7375ce1105a491875007030c01cefc43e7a45615b665e073b0ba41a8309fc7cd70a271e71a36530c80ea227a9b57645899003c60e97609aa0761e60e8aa1f414518006cf1c62ea53826d53981f2264bc6c24ae072a2699886b75912ecc880ad6939b6a40d539232fa155b0d101aa7791cf74a1fa459ab8c8cafbe2911289312ca990fba952cb0253b71a792a5d9c6bfb31219e898c7125197f7b7a90aac7d527f62bb5fa7e00e106961d1babcc582590989262f1a1463e44d839221717b49b28980ea8b81f5f2cc44252c771b47d5550e3d68a8f5599aec848347ca728eb6c93b717fd6dcb7d8e338a6543d3a434245a44c2191a550794783212f44a94e46a64117f0b98157015fb0c6fb7564847703674945ca3b272e14aaa3a02cb8eb7fe3445e45940315b4408c5b4400812b0b48925862cd5c27abd9a2a0c3656290b11f6a342ec589720135a47b555aba0b098b37539cd0a05e729165d82b82ca1988dbb5bae64c7cb44a3bb190fd701b7927257a0c564fd2762f0c999341600bf86ecac593f7320e4f77bf720a42399c3b36642885b5b53a527a7b9606de8703805a72a777b1bf3674de08419e3ab4e424678e42ac87c15ed6c49afff1c246fb6b80d1182f57b6360203bb6640291a0b9d067aad6b8e3465a84275b923ea4853f799a7d31766bc84b5a0230aa43b9a3153f509b0ad9c63b00b4f68c75e29a6cf40d7000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 515463ea5284839dc84869288f9c03f0e384e56fe04c60cd7af8bdf53057698a984c2ac336de2932d3d4ba3d2073b481a125bd6cfae82da6ded2b0e8fbf7f579dfe5d590a6c03a95b53df59baaf4f0dad94a7b821cbf9c1c809b5d089d38be1c30d455ef44fef503be587c4be0929e2cbd931d10f1a8027ef2d14e15a931f3881a2bd914adf3fc93f97ceeaa8a521762540307ce5a670313d828d5ac71680d4f46bb1ba551ed7fb47e4b82e6c6b4713228038d5011df91b07ea0fb98790924b4cb859bfaeb309ffea5c2cbbf3f12fac5a063e1fe7bbdb0de70683837b180a13e0cad655b6fcd1f5b635d3342dc84298269c1de8ce6b39452297fa6bffca90ca6045cf304c4691cd052148dfb0812162e7e000dc5c18c21209df9d9f0fe7dd8d0962cd0ac01402a7f8170265af8804747857d31aa7aea612900e9067ba8970e1a60ae3ab1105b1eff223c755c045b81de79659d001b7c45ce64dfd2dc16853276b50053988337ef88e4c70ef5861dbcb8a7d6d1b2a5fc5f044160be5694e12201fc57f0c8e3ed5e48c83c2815d78fc68a118918615b2ea0898eb7a33d446c449aa92c82131fb80267666d9e11425c9bb8e10f745828b72570194465c7b2eca785228244e08c06e0d8f20222221f5dec81fcb478945564e2e53ddb68dbae7c6b1540ca7f4087d2833a752d97a69cba3f604483a6eda26e8f5ec27f3ca84730237cf1bb30d70aee528eab3e4493c7f5787f5757ca6a3ab5c278c631584bdbcebfba318db0fcdaee34cfac4422b448f00006c97abf3175c379fcb16f5b150e398355212d8c60ecbfcb3503824565bf841743bce55fbb2606dce0b45a5e2c1fc9fa20c1847e9173de2d8dbbdba840b42b002cf5c0c1d34e709816806e525ca217e37cb2d23e3c268fc4b31608f89ceda1c78c7d3c6b23863f2c6b80747dea4fd11ddbbb8421728c4dbd97fecb9bb652150278a3a3dd388789d2edf85baeff8f6153317a9cc9b72af8f69f260ca96cf602e2831cdfbc14958bf62968e7c019d7c71f6ad55fb51cfd9adf82894e56c05f6b19304cc04d2906b935639f2e96b56768abe27199b5af84268ee89c97f42925bd3350aaf8832d1f7b2225515759ef64d2d75ab29039b549774a3ed7209e1e0e50656794b315ce2bfe35e20a33bf180ac724b9a47cb9198ce2174f6b9cff075f94ede24074f169f15a8eadb54d5cd8241efe8bdac98ce02706ab86c10089ea23470e048c0f9bab797c240b5c499f75ffef8ee6da533642301c897f66770fe1860a01e82449c4259f54be74a46d96ff5c78f0c07d43f66ab578a795a5f3fca06a1d3cfa16449a278da74a5eb6f0494ebee89d4ce6dff6c008e10953b9df95f0e2e7310d33239206598cf4a729e1466f3718534d914617d260298b45a5314d045516a15701c269ec948b681a4b3dba464878a193731e174ea8902873b7132eeebacfec09ccbce7f50835116ce5b0a9e10fbc7c76559ce0044ddc494a9224bc197c494510f2c44e43b037798c1613416f2240394f +shared_secret: b177b87b89197809b36026136b06fc1d749dee4cd4881b4ecf113f28df2bd4ac + +# Rho leads to frequent rejection on matrix expansion +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 2597a577981e1c300ed316423494735483aed71b9f85903dfca56970907910317d72a309adc2cfb0f062d4cb215a1caf67f4543f499001ec9db4db066d9989b600223d3830bf1818809881efb057a7626ed7948f2dcbb9a1582d6f421e08571655916d3a99b14ca30145e3330b31086d5a039a89ade149c9f362cd03c1919b4abe4178713a8400c0d0a21f866cdeb55b1a4202c79a5a26874004eb8a2681742f5bb97ae578faa58e856a8d186a07826a54c1495503d9180073275f139bc1a3749daccec551a809981520aab0c19c3bb59571e9cc0942799f71b502475397e9508d673b14652b65644565a436bba2aa8fbc4802663608e97a2da50249f6187217e01d5f4812f889b958d2ae4af89b255836795049b87bc45ff47549532c00499964e046191c26bdcc8eff1553ff488124d709dae90df510204f234923dacebdb46e5efa933c693c00b4823e276b5d78af2b336309919168fa38a224415ee61a6f729958f5605d57b748a09993f8c809212393b381f1e7c139844dccc37273488562a28fa232b51b6b22de4c0b4c909a03231078f2cb05581cce12432d44a66ea24ddee28ccb2a20a31130822cc74112686599ced4320878826ca51a9e892a5be735260be64c11697fafea1cfe152eae96a4d3acbf21594af1b5507c417679e6bd85e169319931922631e8042c093a6269205b4e8121fad69ea1f4037282852afcb3ec477cf7d25343c59e94e74eea681502c6939c297367dc3502e21724a77f2535a70d383a24d29e872aca63d9cbebd9b737fb2d565968bfd2a27d44061aa88cee5869e3fc96e337033de554ba4229d9ac62743c509ff3cba9c25e7ce3913e9812a5b9ae281c1374e86f653b7d78216af6f233e47a5b9830c5e3c3b932d2604c45c7777898d9078bcea38138a170fba8b41012648983b6c6e1cdfea72ff838922fd55cf1e62688798b6d425d20f2ab12c75714e8b3ec0028441259ff5aa175184731d98d2e7215c87970141580e91cc6cc2561de55387e63346acb04a6f017c9d7cf7ee39b26dcb012fb59eda233efc411aaecb51a6037ed4ab3dc227a4a977100ed804aeab9f7f585c7f5b76f441ef3b2b5b96434a647012fa13c1fabc08d1b46cd8a05753b7f7bc345847151c4a40ffb19238c122e7ca6220ed8acee34129075aae84b3732bb23257b33892c80309b89a0f33b1d7a4102d55f81b1996c90c5258a880e2aa0e80700803b9a80952316e654cb6c2349a0c88117b5f60138a571250ab0cadf7294457646215ca866487e6b8590fa926c2b5c367d1a234714a733671fe6f8b966b9b96b4296692981bd19b519a4a951eabb0d40751d916f03b3223ae4b12851b0d1e7486543272e71097bbaafce2a82642252d650c82f38a4a40b9360d789e00a3a903b71b6b91bb4bc17a67b864312c4c030127de12552f97dd814ce03ec14ce737ce3539a8f71b369c8947a759d18dc2b76aa0edf820d512615e8a7a8dbeb4d7aa92e8faca354f7192f7a42257b92fdfc017de9016a969efea146d1516316e31ad40b5829c06fac16b2c6d425b0b5aa17623af5a26ee4e0587f6c67dbac006c236f0ca216eeebc201c107b2879a247a60b1a7be7094ac8ea62841cd0933ae000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: d8e28962213efbabc8a9e3efde9de2573855032cecc3be756c87151a368e15e8c734155213614c931c083fa04313898680f70839229ee7f34eefcf639bbd35f3c375e49aaecfcd3b0b506a1708f4d8c26a69a46483c5db50201db95c0de02f67fff0811b43d58cfa1f2a61838835ba909e87e58708b07ed43c69b1cf67655baac003b6dd004434d22bed1aa21796d3c9c1085a2c04ce5c03797023545a1cd0d6dcdec111b896a7b34b36c24be3bc890a65d3b1f9fb96fc56928d456b845ed5b526865d9d588df3a977cf7ad0277c5e02ffb8ab67360d0009279eae50e8b038d43390000c2805875e9978879288c827fc3fd49305d3ccfa9c7fdb63833b5765b21f70d52ccf2802644332f961029dbec5c0ab56ff9fc72dc3df3b97311ba4058eee91b0634459a59213df74385ecedd341fd0b7235b9d7e061746149ec12cb1c6fa8b28bf995672f1c7cd1c01b80d2be48493988f0a43bba9ba45b6098fa8ab08ff8941aa8ffb2b7fcc82b07afa401f02f562d6b4656eb0fe8a3f8c2e97e45372c35a8b97041e4d2bc92302bd4fab1bd989e16e5ba7c315a8a2441c0607368c116159b005fc18504f12c96d557857e35726f9a4bf2c0012453663cea4481f3b4efbbde568664c54c1be3e346a499ee98e06ce2534b5d9bbcfecb804b8f4ce6b876e1ee00c12ca97b90940334d6cc0fd4cd010e3d83c7c4ae91761d8f73d699d2086e7fd635a028b1ed094e50b633d153f71161094b9aa230cf1bc005a9b2591c4ed06ed9b1695479bc67c41b0f7f3e25cfab21f06c4dfc68fdef64ea5b86ba05fad5b8a5316593c9ff8a9f3636167cb3148e97af82869e42e1bb3f110ffd711478427796256d82a665ef33745ea2b949a4aa55ab56e86d2f5feee5f0b203ff6354399a0ebe00c36d09060e467b434db070e77e9a125ea82362dc76cde94202acc71b47777e6821dc477a466caf6ac724761a1ba63020393ff2c33b6c0e14edca3527e897e184509e48424526534c4f2ef34a91a28711c53675eb4cd3c0419c747e2e67ac03ca3015e651dae27bb559993b2f0d20f0179300e5e69580323534d1289117ad6ee3ba03e3cb5f6bae436b9ef634a8c7be8e8c5567c5576657d1820f83c6578385d7911de91585a28d1d4c681ec03cd69081b40bd5143387fd020a9dc5cbd5fce0e8baed3d16ad548435db9adbe14566052c2d8d93d0b24bcadae084ba69ec63735cf19a6d46d534efa4c65bca47ef83f94d9fedd42578f794549bd5331b9aa1a2fce0c6d83a6e392cd4695e13245f8c91f3e76b187c55ccfc0c0a6344a6c89fa6544a86f762df3c59da21964ba4aed245647c56817a600ea3ad3fcc3c104197e2bc7e09fb81d9f8fb7ef559514da710f8093989f51c5c6dfe18cd821917aac8c7e9bdd9c61296ea839b8a54e466e49454e212314f39d50dc762e6c4c5623a88ddd423536aa51007bf6c56e3697c3879fcc6f2a55f0246a032dbbb073a1048f91d0264845c405c5063852cb507e4c9f3646db75c99abfadb6cd50f7a1 +shared_secret: 8a746f85a41b6c46e0ef358c9407c702c86fb907e85f86de98d6f7bf7d6e9866 + +# Rho leads to frequent rejection on matrix expansion +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = d4aa88217021609b2499381632883e6c690d720297f130a546b8c101487a31579bfa132c9b06aaf8b6583e633487752aa9fa26551650afe52d67d182bb035848e30696d1be1e56c687eb6387043e28e6a381b4536eb18dbfaaac8f6123ae066ed7568fc1fb580facb933875eea026d182329214cc62f75383d68bccc63788d228f88d17d3aab08f91c19ded4b19a876bc19984075a529dd267b823b7c83bade5e6a782013f8de263e992031e8a32252035e6d292f6d98e022c632d115ef2c60d53e47345e470aadc7816cb6c43f0ae1ee2bec3786b6b159b8d2a958ae567f364c70e4987f237a5d7dcada9066df63018ec4b21f0000f4674a4ca155e761c41c6a54490b3c64c42b2777cbdcc5cce8543a5f9a605e7aac50012c7c2088721d69910f9b3fe26013f45c68b7b04069b9d41555b5d7339c371389c95ca419b77d2c5c1a5b068846972ddab9cafd26308f790ee0a8e7d73ad4c12c4256b237a9659a6ca866197a2ccf39c005c47b4102ebd47607181795cc66a2b677ee68b02a5fa4be222c5f2a5b44436be13aa589044b574997c5f085ca099bfe8b2554ff981d2872a78d6a08840caf9a9051609c586409923a989ab4bc1521b8d23ba04f30a3df77378ce88abf81309de61646ae15e7bb62c8f300b5a7952c5d4881bcc2a81e64a6c612f7c6a9eb8007a2742b4bdc8bc0b5a0218479506c746396867b1a869038943147ccab4a9c735fb318a7b84efd56ed70b05e8a9cd05a650e2fb7ef5c48be6d39222082080b74aa7f4ab869b4e189710770cbbc5a70193597a0282a02445c5f5772750e505b968bf5c665ef2eb79c01a8e12948ddeb641fae4c4e8d7a88d13433611553292910e831d786b0dbf5cc13f77a881f82c98263a86174223184fa96a2c53f1b77c0c12c11c54cbc37776b568b4574b458494ee6b8e0c356a4195bacdf2b11876bfd3a84804a3001a37967b40855326c261d778cb544d346127eb7091821a5bf5eb3c6215b3c7933e05205754635cb4b15a89f827289c20844a6f7e4a817bb140057991858a6091157fde0717bd2428b50711443195f4a9b462eccb9c2325a092439452aaea85521556a17102223a65452c5b152c8b476db176cf76a6575188222215d32b5c08a80e80bb84e7007a350776165c1ba259a2eb06c5a3b36d27ba4b7530a104d2a18cd896dcbabc020a6de3f09bcf24a1e5e5772cec886f5102c71930dc00a07dc71f56fa905cf8acce66a717279ef7718fd9d40864474338c0729f4cae12d2b0bfa579f742c5de322225b0c633359108d8644c47b539d3b6f99cb8bcd42d39208fa5dbb87e600ac3cb1179a63936881748eb99a7bb8631d65dce2078edcc4abf0608575977ff4a805cd81b5679899d36227d1479d25a52072c07e7ac65148559ed558ccb164b9822b5f80575dceb5166121f4ef56c32950ba46217f0dcccd3f4ab8b42b4b0213adc08a5136a404f4532449915cdbcb3fba8ba3aaa7f32a63371f5c09ea1cf1094b205b2681b476375c481a5f336f38251d4bcb652c2a849daa65c827d5163359292b8e4b98a6e6c38fa592fd068197661282d457df84367f5f46815905203d635e9540811b66b990045e4e42532862012ae783c1d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 1ea478e56a462e1f366f167cd818372a44d1d0311631d74a6e2ba29a86357bd7e066489d32f4eedb2398e2baf12dc4e90188b81cbd961047889a81c4a2f1c040a4527fef9518029458d524cbdd897409255258a9da92edb0d9bbaac73705614171db771c68532750750a70af8acfdcba1ebd423858b01ce3ecc821f9359c043b37dafb9574c5f4abda2cea0d09c0fedd0cbf40041a613e4de883ec725de57a89a2d0a9ced380acd54bea2eeef2abf769f81d92b302911b4ce0d865b5636372543e218e52c5a1ef0872607e4422a6c10aa77022120ce4875e9b11273281044b5d200a61e3c29a69f177a6fe530399fbfdc4edd2f0aae57102e66a4c48e549afb78e503c90517b7d741abbc2dfea9681ab74bbbe5bab1f25bf4be19964548fe3048cc27be264ad196e837e2e0fdd8475e6909d0d464cfc8df600c1a71523582378d1d70224330c852aa2f70b9536f1768736e95ef8ba0b5f595b683ff8a0a2e691522784a38c44171250719ce54cda4216052df02d164034acd650cd47d465be69399b9a148a5fff2974b7b42beca2039ad52358626e2b8d808b6a52d8b7eae2fd92a7d5b019b018f473b712c2df01295ce33cdb56cead9402adb1f245682d29af706c270d16f63edef39a49e9346a2a647aa8e481e5f72ac87aa5348af2c655c074ecaa0394bf531d9ba5851ec692f577e09918e4013ba53d529dbddc98dc041cb5e11598474f34e5356877c4adcfeda2bc44872ab538b908521088e06a166b58424a462dcbf88ba92362f691ad015083d83aa686147e635842fd2dcf58faf92d94a104719dbf7e5ea19522d395eb4e1092bffabc6aa314de0549381b8ce4b416e102c3fac0adddb2094fd1eea9451d6c14295446606f9e65ddac902a1fcbe65fdda0c1cb5322af2805dbd33633e5d5ed3289bc133983920491728c9b851b46e04c7dbc6a2bd24bfd63d3f5236ca8b2fabd0ae30506c885deb0696317929f3c8aa27b6320ee241d434ec50f2d2423d7c958c6fbfd04b059b3e98214faceb96ed5e3b8fcccf169c7873fb87c1c236539cd1297cbc9f8c3e66408666a678d80ad6e29b85df490fa0e83686aa3261cfa5e123f3fc7dab946691524bef770da4952ce4702d1d854996d9c2e30f8bd88accb0ef4917f3d5f9aa7cc51e566b9f94a3fdddc7640a6bfa0c7b6bdbce57c7fd76102dac7de2761aa971c949020cf11981d55d5a283a1b9943b2692b3a280b6312e32ed52d4f50a38f366b91cec8167f6fe4769f1403ab0750671257194b62b856ee5459d095298001e381d36df7e2c1a5c10241ed4c278d3d477bcbc1973728d7934f9ecdb0ead0d26ee993ec91199bccca33fac5881ff093880b727e2226658ad44c4edfc74b0c3893cd281923724482e1897215d3cad17f1b27dcaba869971f7e24adde068943faa11b45f88cca96997291126523d7ae9f956908a0003e93b39d1b88dabe66ddc777629b8a6202bc0adb7e97f754b0546d5bfdd2a13ad7b316d199b10694de28503e77d6a514e376bea64 +shared_secret: 144bfb50c676e6c8efda24b8f5c94e9305dd281e3a6493d877f3face684df1bf + +# Rho leads to frequent rejection on matrix expansion +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = 2a278678a38ca0034edc7b238f66c60b9ac1f309147c4cc7c78c393ec196c5b04c7906cc476b6931c494d0e4b11187948019cb75b0abdba480d61b6a58f4b8d9158486a7b94c05521fd7a1d0e8ba9c5a9612a8351f1b82c6db939ec326f34c13ba5497d7632e076c363157b156a289486a0b8a1b01a7154059149093a59cbe69ab6d8a67673b808fd217fada63f92402261327f84cc85ab50cb93517f4f3697e7b7c684064bc474ee617363f11711e4a7d5a422f68834abdfc685385877444cfab3b42a5e7649e0893d953b0db408bad47a6d8d061b884551e8031d4d2c207c93ff984b71a46c8c6b8174f22604c4a6d2d1c125117a281d37c2e001bdd6c42c3e3b90ea3c4386a7add997018a7330b0c2745f075ec10441870a890722d003d252923ca79ec870291329795072ed804a8045a34651191e824810b4c70b8a00e2c1504ea929364bef4027597f12a5c392889295fd6526f3d36572470a6b48188602093aebb3feb5b54db342bcd70c7ac881da4874f1d058dc3db26fd736acf9377ac64803a4b37743c6ea55969e13579872a6237d374adc29b5eb11a1d9b3aabc0377f550555d367cc7bc0c1b960a877a80a391aada5486c620f58182090436a8e26ac140292e547031ffb16f33c2a3cd2277a50903ebc67a22997d599a0037bbbe73057ef3296c7d3271cb17b13cc844b2aca8cbb1329b4886472747c026f63a1c4131c97dd8253c2a05e9a414b78c3c4fa2a6003712512310ab9b19090d7cf127b29aaf59923db8f33150fe2c34b0ddb8d3989513fd7b4a10495c9d86927b2cb505863b7bb3640912a39d0903db082ee47c0e8a01ab22b256682bbf6bb69b4b2394fe7aeaa939f4b624906b0c1b67665e6560f82c55b6b188aa7762ddd224e9648cc7c2c2e08589f948cc3f2f0b09150879a47a0e8bc1782c5befd0734120069e83814e34c663f115802b220f5277798076863e54ad0496aaf55baf21b5dcf60aa6ca42ef46c3c30052d7b78acd9e40a7079aa437908495c2506549750704577695f70725ef3eb8e98d88683501b3ac08ca8e5b4364c8c68eb5c7e4c690db96ee7194e5cfab7db691a67914c3fc3c219c56e52081f9ccc592de13ee5e266df71a350a63f1a63aa4984b2f4319e3399b058b4b56528bd14191e0657a76476392e9a5d84d83e87a3009b800004f60f4b4ba8d0bb2beac7362e762b417824e1539a2c39be5db8013060c76cd6453e313bbfe87a350982dc04ad7da459dbfab6c3f52b5a779c33047ab4f9ca16238d0049200d394cf44b92caec54659221e2e6b6078ccebb35b6bc045aaa331c8f29b55f3654e51b0ab20c16eb331843d2ae43749f5632056e101cf2ba7bc2921647aa0875f099cb7ac083ea662ecb0be57c383554464ea40f1248802fb9a48ddb4ba409b6db621b5395720b215efe32c47bdac84c5aaaf05c61c4dc2781a87b00710202fabbb077cc93602df8868756334362d3564baaba98c6c80fa15da5b2c924b8c85c918fa0d18bea758fea9b750da0c37751370b4300a1b6a3d7da6566375155793a97269cf4f87172832aee156ac1f18fc1179003637b3aab85db0b7b4b152b4fba7f990964d56c2dbae99d070419690a7b4293c6f345000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: e60755df5f91c38cab8e8769ae6c40bac77397480afce10cb1bccb30c8b8729b1bcb2d6be360089e8edbaa14ecaf528c488704870a6b9b299fcdfd910431cfb7da36eb755ad9fecaa91754a28ef2461886a0fea6c757f8e5298e047d5b61ded088a8c04787d32650a9124ade453b9b233832d699e5a71403ac186aec624d25ae3f8154c9b7c1a3723847c9b6e9f97870e81a6fac4888629e3b81e7df3d8a56f911d1559ff6f5fc15eeedbab77b70231d9e4a640ba4e1fef23fbcd073ae4c1793ad824b5c30287f24c52522e6d315e2d90c7fdf692c795b7634c3d935c98012075e0d263e917aa5c9f05ea049e1a8e8009b65c26d53017cfe5d2ca2212a78a5039e12e2b0490c2238dd693978f1d75551539834a954dac8f745a1fa48218eff905a592d0548bd927a5104185934f16c8c46dfe581f6c6ceeec019c73d0a0c041dce578ec5919b9ccc7f5df84822c4f5e82c0e020c6a9c326fdd74626da86fffc3a1067d3081d3c8ab58b3613a9d0f3013eccf6b3e5bc34bef9da1672bfd11d9b51222d109e5d3c66244d9723a4d4e1be1520a15d58f966349fdeaeb587790e2a0d87647f2445b8673be9045940b01647964e3e611433fb126e5619f8cc96a7f2f6bcfaed300592389ff60d40315ab87fd91215249b911166e648708b3c71f412c2b06fdb3fec91d287dcabe7c33b96318381fcde852017cd911bfb0e9bd09fb481af1494ab51c9057d77cdec4d615207d7637c007d2f2515bf532b7402a496d0687a82cf6a603348501585fe9fa987b47e06393f377832f16a6e3bd2022e45a81174a12de22b2a5af4ec78a55c2ca1488c564af9becdbcf2f7b635d88dfa14caf10fbe1ae4fd89c4d57eb04b35b810529b3fe3aa10d202b14e0c2417b1c2cb2adc02474fb4bc74d813dfec562e17c43fcfc1a35df1008c6bcf73a71e67525c78da2b0c5480edac41f839f8f67bddcc14b92d5a04412327a9e1cd34d5c3f5ef6cd1a59af4526d05996fc049a39db14dafd81d96a8f1b80d77a4f330747dc0bcec5214992dbe7fda726e4d0413ddac4ad0f583018a378c844c56d9ea0329904945cfb4f55cd0e0f4ff2358eed74675791d74cb7ab3ece8eefc771106dc4bccc7525e3118b8fb13956125402b310596c5ad0eea3ac8ef75f8b63bbe11ccdf7aad66d05ec052ed9b54becc2fc7ae185c9c752209d29c76bc02d1d05b693e12e660f18a326cc42a4ef4b6dbde69f4c4676c4bfbfd1bf3dd75c262e2f5ae9b4db247d3e824d1d87151c40a7ab56ad5fe9deb8ab40137860e87fcc972e12f6eca84c284eda1b925a2dd4b36eeedac18f1052f280ba55ce11f55b0f45443b4943fb0fa7354068259667defec383e380768276f97af4a0bb7dd2ef1669e69345d08155a0ea23846dbb9397cbdd023d5dbfc4a544572e82f21ad601f31cb01def894978cdb210b3617e65493f898bd6492adf5acdfcde3474f6aff97a86497b9fb6bfdc51882d3d5a3a35c4c80ca1c21fa3031a3985c7a2e34eadaf1ab6182c1a471721ce2d +shared_secret: e3f0f3e54c7a50d4047b6fafea1311637c76e6a426940afc55a432bb7a23956d + +# Rho leads to frequent rejection on matrix expansion +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = bb3c06376046b4f295572947b7fc5597b38596655f25f6603255aa19ea7f9fdc5c9efbc5b1343b9d214923121da4fab101076d9144b2881ab988092fa858a407db97248516981a9d4c336df1395c8920496f487c60d46a97368103bb9af9b62162ecca0c023b7bcb71086c1b1ba92efa1b0521b472539b0a87030b7477bdc4d980be20ba45c0aece03c49de971a6f9c8f7522c1a4a6df1225e836640966348a777bb325c4f4b972d484a74c1c743ba88b7d9a3305755992eb5723cc8280aea6ed64b827a0518e7b4cd2cf56bcd97023195a7aca9486ce2b50e35a967da1f8c39c9fcb895cd9895e116b6f58555ae82609fb703732452dd60274ed87adfe293b5a2be5554ba0c455836c98267e77ba6f5b5dd90134e126c703cc1648cc827754c9c2928073493332b6394511e1499c0818866fa0951f8c1400fc51cb9eb6cf37b4a3eb3959ed2af6995c480844291766a66d81713aa6351555068324f84262c9460cbe041598f519c8b387b442a6d6c873508ecccf6b2ae4e89bbd1306f962915a2d759e2e8184df59620d8bd60fb2464ba40188666aad85279423cea249db21b34525b55191375c2f19dfc811d3b77ae56b9366262834c2b1dd500ac17828bcd44c024e90e06e9a7a9607aeaac2c93d48236d114d352859d9a559b9b6e003cbb9a07c65d0a9f264288083609434ba7ab3a826a821bf2db0306a84f386252f7c56011b96fab3b3fe2ea43536a3cd39c2f11d1bc62e03365211e82e4b5287740aac771cd772575c17f0c712c6e1485e8f4cb8e11a89fc4a0296b567e835b6f18946cd3887b56bc4bca9327c52239ab34925c2440ac7cfe6644c9c8058f840143d782ec82793a234e9ce9a2d2f7c96085c6899436cb9c97ba4bc3187b2ed5e622c212ab557bb828e196e0336474e1231ae72f16233ac7f844abf5434d457aef124963c85c25b7414df98bbff69008c27b9f25ab2d9990faba0bd9c00f7d27944f718fbbc1446b3a0e98611af4c22e4ae958ee993f8abc59e3c41252b160de5407a498a0d4f90505da3e90a4b2f8697e99ac7e7c769250a5bc489a74b44cae15a59be7f5922705ad8deaa41d4cbbcde7919c3360e2892914640d19765edaf3203ec950035550072a53b379982b3a3d1d18763f9b1601854679965ba34b1b073809ba675e09997a8519510780b593638dea00cba3598855125ac71c91ad671bca1499037b7791f32fb82134319b1ec041475a238bb5c4ccf3524d613c8aaa096217b5afcd2c4803720b549c8916bcbfac990ada5509c9362488d66f80b2556964a856c06b746a6a27877c0a213bd501b939796ef0cac630705d44e66a1d3c2517f940bbfc711ea1c5dba3a491b61fe4649428c6007052517004416b0201f2440d467733d923277d54bafd729d84e2440270a259c14d88a4564fc9941152b591aa644fc93abf08371ac162b9e180c0fcb2783653e5137a9faa04ba137113697b11e419dbd708f18b2fb5f20409448f31906c2a557da57621ad4242524a8f9f754e199a2b62e87132a33af47166dc614dc7034935c4b21b7c102d71762239c03084bf0e381524a94b6c22a7e499baf0ab6c9bbc8573909c8e99ab09a44e6d3b017dec2cba8b60c134000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: d388adf22faa385735ac4630979b0d692aab8fc502ac7f8a0e3561400f8d04a4447cc9ad1003d530ad2f7b5da076b02bf291aa837ba4212d43bfc514ee60a422c07471572340d7fd5fd127dd82283a4e0d145e294841124d0dfef27579119d8a9eda24bec0aedce586026d1107568831363fee0187f8a0bfaeb384bc9ec4282d03acc461e26c4b2826b15943d95d96ed7cb72c53665e19ef8b4641f6eef759a1d7fe860cf72c342b3d3e2fc784269460e0a1ba6c394a9c24db5a4c5f6ac523a155491d149806d73550b2b9f8f00074dd06ba24188a3bbb5f3370f398011899758365850054928429a7565ca5b9935f5e1b2600a779152dac16e78486a716a393cbb917f060c83a5a0cd56f1ce4de12bf088cd5e80e540ae97a2ce2b8ea35b3a7011116c7131aef928c23809b3ab4a464497d4be034543d5ff1112c6ea13242c4b60503607b9f4de544cb49c4580518e15ba51c12518312cd44dfcf39a4c544c71a84cfce3f70b789e4814ffb36c1e0767f15ffdc82ae5f0800bd8e2a973b8f30f34ffc792c9f7db5a91c2e0e02461ecaeaf2ae5d33e879f01475e102f85609acd1a8f0b1fc57739c331c25bf0caccba793b659d90483c220bd9cbf0691c5a4f11fa0c87fd630243a9f6e9d6082017dfc84b6ef1cb1fc793d14aad856fbbe051c724557eac7c8f123fd50c0c8368d48f153ab93da02b09fcbe5a91eaf3ffc9a7837b1e68170cd544057afff19163d3ff479b1d2be4f834a5b8ea082e2e37d9932936e5b3ead4ac83201a504ef4bbb6621349fb473aa38bd0370ee39105c5b635c1b149e263f5513867abab92c00c4019e6206600829f1b3ac1c849139cd4e04247801b2d126bfe94c6c019916247ea2fec03598aedc84197dcf7db900653fbb5236c52b640f1b489d79ccb4e4d062e77b6f9772218f64b02b3c29044c62279f11755791d8600758850cad537800e77d7727a63802e3a256031c94f3cd3f7cd20e10a781a29c2f699a3b4425ba4198d3e9fb3e5fcc726d99bc735ff16e2d1eaed171fe4ed00b0fccd81a8d08dd5d4a6c72bb8909ab98c35e0efaea3e9a4ed31ab0c6ddab06444150d36637077275796802b792354567f2af4dfe79bbc095f2bf801db578ce720e8e4fc9ff772d016bf400e5d330560aa5d91760f3dbfe7c0a175f7d0e730665ac079b4aa29f9b51a20784bee6020be8cd3862b3d992863d25a8215e1169f5eb4cfda064cbba34e1344009b461334490f7261c9a6a4457fcfe7b8536c59a8ee36703e8b439feafa9b4536119b863a91805706dbeb6e79a9aaa8d3c959acd75ed03cf0137546141fce29dc5723db5356661b62a5e2addc6cf479cbb4b6214e44b0674381fcf8d23bff22ab413701d8613cb03e140e85e6c00f75204a6fb1ed29ce15ec90cceaed7e216876b5e5b21b7e99da01f6c2c6318591e57e188548dc9a98e14a61c472d9726cbb09635bf99b32fbad21e4777804565d749b380924d7d5de3ec6be5b4b2cd2b784abc179b478c9237e111ce04f99706bd85c7 +shared_secret: a8006ea55b49d054de26ec8780ee0928650ba04f33699616396fbd980d9bbd72 + +# Rho leads to frequent rejection on matrix expansion +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = 1c5c222e297e1951c5424665e24b2f8c0a98fe5988a202b02db7021b8caf6f390469cb3a3a44b1bba8028572290ad3987c84380706046d3147f2a098f6c11912d204ca7830b49946da095d77e4b55fbc763df31a6731b9bfe871f8f383d3645a44b18e8b59bf1841c48da75a66a1322a70c186d7751853949a83af71494384221876695a35eb526b3431b4c02a00503d962c1e35898cfe9666b5b71aa88309266ac0cb7c50121707c06086e4d7aaa918ba75f2ac0502a43d985eaec44c081b7aac733c065b2af38807477501dfd6a84436bf9609b5ee21c78e2c5ea1e2053853b0ebb570fec357fbd227123683292c58d082b4990c7b8a9b8a15b1a72017844b572eded48d2f902621280cc4d0174e0a04c712b558184ab893bb70b39f7e92b5c3ac61c4e0a4070a78a6b0bed6170a0e07606fd15f0dbc553c64672ca3b8c30821d6973a5176aa2a0343fa15a75d26953b965d64d94b6e3c5873fc2ecd13199f9caee6672847a87dc7d31534870502c3a0b9493aaaa5441099b29a2c0078854e13f15e1da411cd086a12f587ccd03038c049e8ba7532db25d4a855a1f7696a0737c1fb5e2130a4f3ca0ae1a45429a44ee55604e31858db353241d620818a5b9698556833398878825f22a2f0b739d39c07242aa2d349002979929af37c74457683f940e503ab5e475035921abc92b5850b39f6d2052f811a869c11aac93fb6e063e7b495a958670e276e6e64bb63268bcd01064a782ba3443c4e0255e3db3e55ba7082438bc303c94146bc67270a12265eec0637761c47ef5c19fdd22d4685c335146998a4ab70e6b3a9f63c7f95257cb7a7ac216c480568056a825ba6b6a25b084a604349bc4fd668a0c6bccf84db88fbd504aad20b68b67ca7d7c9881b948af06ba3f172456b250850aa03580de5312bd85b9ff9e746fb26c8e3da128e2ca463bb010a6872bfe975947b9b00bbbae5e53cace8380d1c3b34e71b35517764635f1c29be58b9aeb4704b2bd58f81a7a20ed1a0a505a994b0a8e71a72431991541c9b39d4b7de179df2ba5dbc12af93f057358301d701c3fbf119d1f450ba9900c483546e3cb55716ab5f193dcbc6c175697d9403816b263bbb71930f55081d8c945db976ff8b130ef1164d6bc8d0d1b2244a08b5903587932bbdbb7d60a29ec8016c9cd30ec7b81b1bd527b59c063c134340d35495d89f3d46728159874b8cb8edeab232885d635c1e46f4653c70c95aeb0370da4529d319a812c9b9d210f8655222ab13dae5c0f9bc3b6b55a23edc15b132c937c0833beb8058529a1f2a880d7b198c947c65db8a0423848720248d7cc937346bf0e01996032106192c58131335fc52b6817c97250d71f613a0217fec98b713a08998b8932ce850097361f077683147740a8a18cb16367fc1cc8771bb50fa550c667fa28822ca407399634eb42a79250483663708819c55fae2c4cca04ebfbb7582bc84ce27c2796955d334af342589ab196b3d03ba7b58bb209017c69a95672138b526245137265948239476496a6100d9ec7092d931f8009bfff9a7dc22908074c3e41a8e6ffcc199fca488753321467850514ff99606b7a8b975c03b05e3c031a99da72bc953db617dc41d664cad9913000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 852e70f6d10dcba613c39fef87c4147fbe2af99288ad6c18b6e266dad0746ee662ad0926f4c0ebd669b27b893777a545d12744de0ee34da7b38568eb1809245f9a03547704e353ba537f35d5784c37ca5cbf3696975aee1ead6b376960131f6e73250307390b74a10645cb38c7c16a7bff98324f994e6e3a8d7a0c0ceac903e8be98892bab7d7691ca83233d61a31c2295a134682176787a40a263f9d8a97c9b262ad343f3823739bac811f95014f6403c0bd8a7fea4064454333e8eb63dfff6b3a9afe291217b0b0178c075cf04ee3a0895606c422e24b634237c1ee72784e14af8bfcc232ebdbcd2b493efd28c9a849bf47737e20948ae7a399907b0f2a5ac9ded63aee710a30f76327f3e1ad042dc12776fef148daa0acafed5598650eaf46dd53998e6c38ed318ce56bd35ed18f99a34fcb4f427b3de31f4fd0ce2bdce0f80248ff2370e08cc2eec3e6a71783aba779abf38a8bcdac9abb75d80625bb4420e2bca3cf4d8867bab62d6b884ae9e6f98099458158947e1169685b1a6f7d6f554bffab3dad8488e0a159232f3777cf85d9dd4399a89f1610943bb7279514e0fc3737ef8ef9ba12a4db6d11933db6f57c48b54db03470b0deb7dadbff48d75ccdf374f8bab3b7d3752c8dc4b513070fcd884d94e435e63b4b40c15abf109ccc5d9ab51c4d069685550baeacf37a6736daebad595f96e2f82c5c458a27e129af4dde2eac2a5768f5e4a4970a0bc68bc4d0d32fbc275d1aa988ea425838297722b826852735c4931b97e145be9c6b399bbf4e970c83e98bd5c1be7942c6419b0819e600015ea82ca0d55894b0ace32f24b2652424b85b0f86755f1f8db64138a704cb6ec6f3e2a4a5e708713398101e0cf8d6029ffccdddd03d8a8074792232622e00384ee5b9db3535d7ebb14713a32806861877ed3ad5b293980b68f0408eedbbeee9bf449698f0ecee6635f0a8905d378d083f80a482334d30443c139cf5a1e2ea7048cc4a1829ff36f9e0f674ca22d794c2d7e9dd3cea60318788e56b3e6670215b82acdd4c9534fcf5545eac516261dbe4bb2e7fc38face7c59668487507ac122d295ca90af4035760c9b89ec44f432e8977583ea2da6a21249f667fbbb5c4307bd3f2e47ddfc8aeacb54bc33d1365ca3b6f75c0b50917e2c84849f1898a3e1c76ea67b21143f39d4002026b0e2686908bb9fa502a88c7b5c747f57c13b9704452c1ceb14a5342e40cad9987bfb32c769f110d3d39cd41178e248d51fe7d7f1c55a5f64764814495cf92a4155640a4d3411a74597f4c8571dd0662ac2ccf0ec3a82750c0ba5c3745247b7f09b62dd9c6484a1e0a0199555078d3a750784c96be465053f3e024189cfa2875b3763971b48b5c8ecd155f879f494d9be7f4e27417a6fbb8843200eefceb4334341f8a5a0e98769cc977979b405fb0efccbf442008f7cfa18b28b48ab56682a91d8362b6b5df54db3dcdfa25d4740a13ad8dbe014b210ec14af156b34511896e64d08f37b2cf2a383466351270118846b6fe505 +shared_secret: 8da6007bf6e536286b9f65fec6f014680d193306a55d37978cb56b245e256eb9 + +# Rho leads to frequent rejection on matrix expansion +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = 0cc2bf4fcc4e0ec002da4250cd5320095843f29795b36b634ac922e3796ae428c894b1703332b83d9759027588f1ab2539180b75da984246a745ab595c46ce9852029995997ab27fa2b94e165025e7e7061f2cb35a907eb6ebb0e1d2a29e139f179078dbe13abf1787c3282fe45a1578e5752b6950e7428ff2693c6e6c4ad9b960f024a7e1f41783f7112489112af688b762819b222e1d6246717b730aa9b224ea64a1a45ace60257522505e69bd1b2235f8d71f8ba5b5ed425ffcdba742379a7e1c28af1c8b35994324051d7b46a6047b77762c158fd5977e57bd4f398d4f1a70175897de6c8a3ff6ae90373065233d7c4a0e5dcb8b0731914b37cbdd29148be2649f055df6bb82fb398a630a6c556c3fc442ad78e24bd1406a35d82c5f582610bbae17d118b3f0347bd84f7b8a6deaeba8c698c456502eff6203594966c1f7413a056064d09bdd273b0ce56e506c0cce2267df24a13d7a0cb5513273f37438b568c569681314c3b6db28e05478e075abfdd53cd9291614c2650dd58b40f66b10e3a5cd11ae650aac35821d5ff612d1662a3714962b3411e5996e3ca3b839a58898848ebfb869e9b214635109129c333e931b22d34c63c96a74c3745be124c153512c060ccc6a36d244139f106bcd78808db7cd0dbc3e5b452ec753a643107a5f946b8f319a0fd28bf86c08bd16cb0324c44a0ca5165174f4681b6fe85b21791bbe1b11874270069839213b5829aca7861ac642e4757437742898416e2988c3277f9ce35f82218e9eb72afec300b9e59bd1b10349994bcb34c9fd2b31ff7482ac4c75b693af46a581dd85cf33d21e600bbc2921ba49053cd5d28595799fe23541a7d6b4e4e6b59f761e0339157d5a272406be1a776b3eb2c3d33055626712b304c4e651996f26866dd8a99c607f0a044a4ed4c04eac8122114eb6f567e1133a7d385b4edc71d19655668a86cd64503f0bb1cfdc06d9d387e55296c4a76a71b78e64daa58440264a8a6e73d2bb8c028ec970c3fd7535bcd65110967cff563ee9c5777a465003fa7ad97230c2c76bfc41b5c9d26d9a7c3605905fcd99b36ad5c6ff585513f633b26617f144a3dc4c70cbb40b7c3b8d0331014fbbb7f3c59179d226dcd4758ccc3cab8679085103e8949ea10c796204ae993750104a2123ebb902aa8902b6241be505a9e3a6734191734bba77c969e92a9c0894367dec1f0d50ce5046ad6f3aabdb138f5746a737082bcf6b8d0777b4bce1a9a35b2e0d794ef713736b4966d1322594eb8e90a5af2b42c2d7874296401f4e6a66c088a73580362031c9b0119d22dc9e6b649ff220919d42167f5ab863603d474051e3c424a0f8516ec0652545c6bf0831cd8aaa992c120d2477f791ba1ff56ed2bbc2e39266cf618580b7b19aa94755869d7834a7d4a87e234c25c0e595cea31a8715bd76d3bf5e6badfc4a758d7bcb88b5a018228c234836a0c77bed231a64249a064402d5f0b66276113022b3bca4486efa97103560751b108a5a10579c73c1e06b0eb117ba5a635b459e2f3887734b83dceab3ce9a7dc758265471b795221958359ff3ea282bd2c099436fe3d3c5b2000cf0db36a63123e9c897249130d1d27bba527eea241d8c930ff80d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: b931ab298f4492e30329ab86e3d92e6241f72c568f8a2744d493c2b02b8d5d41470f0d73ffc08deb1812a6f4143f97afee2682f6d4809a0ef3e97ac2ae4468a5d436c5549f751b440167f86cf238270eb8c2e3d3d9ac004fb9ef5245d32b4740fe79543c073b41c8a1773f11b41c04ea5eaa467758660c17a6b38cf19b151e9b6c68fc35708be261a9e7cc45d771853132a5d7059e3b6b9bc94755f451452f444377be5821aafcddb7e708fb80f31bf1a89e1691009e1e36b09d754870e24fdc640afb41ac6c4260b68dece256aa9467dfbd29a25ab901bd1dbaf2efc055263f06780a73fea14bafb12f14ea2b6516c97b1a9f56713554b218613510ed7637940272b502ef32c3f99718efa3fac323207da815c6c5d04823dd28f99049ec50fbc590f519d843e0cece45713e42ceffd48dc1b7a739124c698acffd4fcf1390351af06ac1212be3abc5f8a51369c57b0108fc593c5d7185686c6a27363416e53f1d578e7066456e6164c030328ac53c2ea6fbb6ff508be8c2f973d3a43476831c94a7e85de88b71fa77be26168f82ca3620d1024e2bf998340271a4e2df0654ef1b6c9d5a8d95ace50a5f5ca3d321a9286210a21ab97d64066390e287d85345d22f6b42d597c5ca8888c1f871e34a4d1d7e89380abc284afe3f1f7784d47f75c674354825791191b2cbf5607ad26931bc0bd05ad2113d5c93c9e0e71a8b6c69ae4df3383baf71877bd3274de23d68ae57d54e3679b40950c73fcd38c1b8ed7c58f887e5cbc74bd388f77b72875828667b143571f6d0b69cebdf828b49d6f4a6d9dbbdb2188e1b0b30eea6a5b9970962f00f8b8440dda64629988de710a3e086e6a220d27358272b680a91195115741c77ff04c0bed30a2c47422664669aee91d263a196ad48dc24bd386dd9df5724965f2af73bb7a406bf9d17f3485f140b52fdbb06b9153bd96cf0be8ed4c0024571f859c8492ed4d970e700e11360d4cd51b3cb29decc38944a895978824ee94ee6ccb6988337755c07491f43526db47e557636740b393d460b3434fa70833c490ff59aa62e0fdff9a0e664dea7425ee586c29c7648a3ce8ebe5b441f647596af140a87d9525643bd97707cd910e17cec76ed33f4dec0c5222ca182654c8b5ca12d5801ea4c26bc7ab9877d9f838d8455b59c5590f4c602887e219a12077f9639be7a6f5d227d64540f3636c46cbc1461e665f677b0183c5ce13f77d923b368d05030b04c16ceda5d511fd0db061ef3b626e50767cce8a5cc108486e941b7912d944a7a0e0acdf050eab2f600c242c250bcfdb93ab9218a4b495457dddb959e0a8f976bbe147674d5ee92ba71491812ed10fb7de3e607d6ae67344e0a611a6e82a1b66e0528598b30daf398c98d5370e6a1630b7d10d98b12a1470fff4c04a1859415595362e29c3245164a2f1124189c3c0e7b0c875c658fab040c5e0ab690193e3eb1951f24ef0f39bf51fdacd68b65b445266b758dea04de3b3d3137c9445351e9fb80f394b76f24383c49c747e9b15814 +shared_secret: 46f591e3c6491c7e12d58a7d06ea5354bbb77337572b70d94e4badf7ce394e08 + +# Rho leads to frequent rejection on matrix expansion +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = f8569c9dd09912b200bcb155e7f388139675afca87b0aab4e4e2535207b4d1123062772bc8aaa028597d15f02f1240b3a4aa96c1b344b0b892bd52b3856ccf6ae94028574f13c09418eb998f741c1607461bdb8cf4094c795acada2c015bc2b5f4da99bc85b6715b6bd57aba2d016220ba2db3a9ccf6524474e0c3cf0003376b2aec2b031cc4a224b66e139397e338a8a1ca0ad7c8a8356b09078588955157fee40e4ea1177f7c13261427eb047d14a826fbdba1cf607547a93a61c8a5ba200abcb676deba97fab023f5234b46c99cbbb38f27fb68b0a2b89937be4f61b3bad5446b74542b52048ec9310b1a2c30c25c569a2fba55be118472f6147dd65b171c654e8c3acc53637a2f409dd14b99ab1a772d755bf34a43fa745f7d2a55600a8873a5cf852b1f6356bcbc2a70d134471c7720918528b63270e729472d1093ef72629c521e49508a3e584f81250717f73909e36e231b0883d9c474ea0dd64400d26317fb8569106983b4bc3d0818987adb741d547fb15235811819493c1a92f665352a92495acb6981aa5fe83fbcf620045275017bb652ccce8b748eb9354bc374c131a74854f9a2bba3173b1c4004607a2c975e3ca635737a7f5bd35c8798174f6bc30473c5e700b42a96054de8237b1927f999351f370f1e241d89083ab9cb09a9e908fa82a0a3ec9f37375f30eac10e20ae566b4ebf811513825baa99c7a9265f73b2833808a52a755bb106afce71721e71c693f29b402b8e483000e1a6375ba0848881c817b47d3cf8a2d64a757eb80e02109a8e0a873eda7333e7847902a4f4c44e533a8a8039516549aa7f172579e063d73999eaf47c13d73749796dd022cfcc9522738127a1c984d9d3755c29bfc6b52c08297662e24ab77790c056101bb2916385bf418222d752408ad1843cf6bd80353a2068ca714c082ef86503064274f94065926fc59c107ec5594b365606b20bc010946f60c7516c4e59c33a527ca3229b2cc35459bcdabb9dd8170b1b319571b535d514f37b3de62a906a05bb90320b88b989d3204511a2151bf39425a1572c192d8be2b695f18dff4a7ba7206d4409c9e51c54f5797ff9055837d2459dc85233d3c95a597f7596580a83ca3cd6ced5278c24142f90b653280b54fba3159147cb08095422d4765112030f5a696a628d8a67b90d27762665274c338540d7a32894523bc53dbfa760146b32edb938461c14792216a4b94615615afb151604f31b518c37ccd502709325a2013aaf22ac49a67350067f405809addb023e9a13d6734ce5e71f802a147c191536eccde7a67295bc86322a7fb83308f40a5517b61a790a8fccc469dfd752a45416f352b6eab11f0623551b49a5ec2754a674c1847bcfce66c9f80946eb65a419c06747c2a037a492d11947afac79db877af9750a85652f6b06447216bd69418a86169614e27b3579a8b3b669f8eb8b84c252574c856d91b081043710d0abca178b215854f867c5b0da0266977fa1e75d29d560015755f64b867f011369ab7189a916207c99deeab286e635b4aa6521da156c310cf4a592926b33f49062c94129a9547ae24a7e0bfb6d4f67bfefaa68cce739f46815afe593e8ab3a63a90797c01aab7a5f0e73a2d589000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 87147134ba6c085c2b878dd751b77273438b4e9efb50696b22e725bca466abff4ba40a150b68401f043b73127177e579be1d727ad37ebb79b2f5d3ba038d4a8a6b74633f31bffb103290c0694beb9c4cefcf47fb2f33ffb3d8b6126665cee64c6eaf385a816167d149a328df0efd29c4bf324e4f3769f8d7dc784da38bedcd8a653a42b0738661d3799db5c9a8c65b88849d07b27c5c88032a3b090026fa2d818a4e26672fc81a97769e432b217df4c551243354131100947f91df1cb442200a08eded975c39b74da9c22dca588f8fe63cbbb6470e3b029eebfb5ecef2825e834fdcfa2337f55571506498dbf2c97fc02baecd0d14ddbbbb4bf48eae0de95d42cc8b364d6703574a0faf12f72df2482b78b005d800e31bf1492f4250254a0a48990505300d90baf577191d8cb6161a4b39d18c84515f26216af074d110bed4b2af846ae9b13fc485e55f9a72f7347efb147045f27c914a415fffa32ab9f8251a03fc7efef160da5dc25e5b5ff12fd5e999fb7e55c9014a9866e2018d09a4e5b3a3c1c833985e3bfe3cf484a6910248794e636822c40f6a7ba6cc35baafd7557e1000da487574bc7f252c9b82b19febc1455de0b9b79ad1f69931180b47367c8f621b46fc09d8a6d43d91078121956eb44ee1f1548f8d3513a300c626aabe660ae38fc0625ad42afbb5786694b747c65fa38292cd5127f20d8ef0039daeb8963d8639a17a64012357d1612910591faf05e842e23f14faa4b01cb657bb4a4cec7a11d35cc2dacd5556ae116a1dc53a82d1f9ce151a41dd05c953407669f86730f9ffb68478179306d56009f2e937e77995937ff72df576c552672893f1f4021d1be8511ed04d02278c9628b0ecd3182a32ffcd9e37ab0795cb161b50ecd0f97aaa90a9b4af816dcc21ec5f1f54e7170a4167dd2017325888732138e854aaf7e2eeaa964d974cfd3fb810386937e92ad92cb4fd0b730004918aa6eba5b64d1df55f9c2d0d4c2db8188918b7812a71592d4a0924fa67b62e3feeb78106e491cbb7ac9d456c3bcd747db26ebd3b822944bbacb1e742578b35b4d6d9f49efca4c929276ca6015739a0b4a369a7961babe2ac95b3df89214630218182aaff57be9268367282e4a040accded4cb93170cfd765535e26d2ffcc4e6eb6832ebe880497dbe5edc3c724b659727d5aa9b067719b6a9f02616504cd3eddf0d56e33766856b4542132560619866958f8aa54d434d302f9280208fcd3ff42bccfeb450d6ad4f0dad91208d357b2174fa67df22ea7b4b3176843bdd5e581654fef45c16017fee95b92e5a1f33cc6e3eb1db250e7c6485d368f8fe9e53f5c863edb436d7ea007af06570d3725f07213f24989a637d9481ee38e26a4713450d122849990892bb2f95abb6c402053a9d41bc8b9cc9281bc6a45e295997a1523942f125c3f899f9722397dd1678d3d30e43c20fb0f57ba95e6d825adb66ad7cd23c7a921709b921bf1bdf0c22838ccadc9866c61880de260f32aae94d6fb6e5310e72ef8d881c3d5aa08 +shared_secret: 05c30333e58ef628d111f6aea0cd8eaefb393f4e1b9ea8ce21c16decc506a407 + +# Rho leads to frequent rejection on matrix expansion +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = 4af3214683995edbbcb52acd7830454cf669b608c3cda86752d97e95c16c99b258ae01735c94a7bcfb585f451d58a0673103b203e32f64dc94b301363cf1542202074458b6d6e8cd0076327718531ba40f2543a1a91b0fbbc76a93ba4c6685bba5560a9d6c6c42897fff8594ec665e311ab39edbc99580c35b35796b0c3b0d89b8658a1b140979ecd28e87f135b5b781374a766cc18f1fc03a7a3ac7f5fc0c639a2ffb43bbfe74c709b303abb1432614bb3388baf38980f18a141d502797674d76bc8159a8062c79146f24973d090bd70390961ba5ef62a5575abad1219e5bd2c3a063acca14702ee58a32a593c5236bbd4ba938a339108c8cabf2a08516408444584ecc4124991cba6219c7f031ece14288097ae7ca9fd370a52ed7835388403816bb1bac26d56809e9ea77a788c8d6bb215b0caeda1717884913754c42190cbf10387e56f92bf46209fe448312d930cd735770b6ba940cacd71a04d1692044a1930b0c11b701c851a26c2462b0451930180415de6a1addc504724042bb832faae8576f2316fd718657d7ba8c975f6584cc91c9cef5609a433b6cb1f08476363687944bc58c888a00925cdb862df89cf96b5a9e7948c53a51d02001e0a97bcf4735d99554bc86106f0970869a4470794e20051723f40ec64625ade826bbb9bdf962a0190c708c0946d96263ae580e0968b01d03c31d494bc002737d990bd0252662bc34337b1093b97d084baa73eab8636615a832b7df2a9c6196495ca7422ebc208d6048e16c2390c1c91325a30f9ba64b06911fe41b5ce35f62c1567029018d34775b6a0c8f70081e5c12d0c73dd6693b34e29c6c669fc485c6b5004fa06a7fc2d2c995bc15b477a1f7463d12016613b24332e4729f8784f9024c2b4c2e91a9055cda9347f7cc02f532c3e80620fbb124f0b8da57abc6e421606b2422dc450c5b97ba040d781a0ab4ba5cb7998aa5ab8a0681339dd4b8c1eb77ff830a4e865f36897899d003bab7395f5b580b78b0046014181c640341aa0a5920b1609245f140bc7a31fa942157569096495affa32248c4a67ff5456fd8189b5593412539173c6fc898118b2b98535401ccccc1fa7945eac36bd248cd081925c941937213263c81274bec5773abb1c4607373029c6fa59723b893fde7b77124929361467aeaa1a86278e6b3c47a68cbc28781ad199c68bc09f3538f2933aa011b800f9609f6887ca4fb3857f869c1ac3147a842359065b6a59d999465ebd4228735a5c7f984cc93928d4c7c44ec4d90d55d66709ef68827df87abcdf433f79342ad4152e405ae69f56689747ecbbc0b23d55c5f86b5a699a06df3573d8715c6e667bab949da615dc1f9620dd28d2eb1ae6674506ddb212b315b7c89b050e48fb76a4946b7572e6a187dcb4130c80f38328037e2ae7477bcfaa71efc3531b2438800744116b96a0f48a1e549a33d19b0a05c206baa07345ac3427578650a97ea1150ab66cacbe848d39c0c744612b4d0738075251f7bb508113126a6b0e93b67bef50e07843c271614a4dc8799bcbd633a1879195f570907c05310fc91ae2e6a7ef474c6cc1112653589b32393d1bb6d741c19d616b6a93c2adcea5762d35aa285702882463b1d5cb9de000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 738318f855b7a4cf13603f7cb528da3e04dbf38e61b3947e9c98d96d4733e6a2096a06afd90b4ce3eebdad11c4635d9e1ae8e058908df28e936cd049100ce5b69a29f80ab7e827c3be492bd854d20f9b0788fd3c933f3827add6ddfceb81a95f116d48adbdd6f543bc312fd5fea9f1fff44f97ac89b1695ca27f6afdd4a01eb80182830f4e1fe457f1dd7ea64c496f49b4904e47be3919a0d90da460ce60c8a6d66bc8d3ff55a8a580899eed0597981b9118c7deebbb746d015c8e117814f9abd649d6616bc075239cd7301413c4815eb880f7162666f296e06e4df2349272058d8f13e7255707830e98acc340195c0f0b61080fa8aeee33f1ef7a02e3faad19f1ced92c3941751980f5dd3c33b933423ec450f16543f480b6c3773764cd09a469db5d4fda16c64a0b80105f796adcefea0cf17fb41887e29d56b86d35574aa8a04992160408b6c30bb6370ad3b2eb0b8d772ef1680f1160e4fd3a6431ae5eef86ba8a4550b9344e2155e7606f211e85160642e83a923c76989d5f131986ba424c2d007b22d3efb868fcbdcf0b78a41b59d34c9fb24d3d65b9fa3bb87e36601ce99ecce01cc44bc120e983aa0142e6a56a3a6a19ca75c73185d48bb6179f8dece198e59ab821dbb83c429336e81f90b562f3da63c3fc910a13b8bb04a8e53ec067377fc1f1db752e9b2caf3827870e01f5f632734658a2c69da353959e5f00574d595bcddc551bb728bc13267acb7cade43b21b244a54716ba3b765ae331fca979948ded2c7fcb9a773d6bbd4509536d29b730712dec068353fdcb9d267b5ef0f905f34823a21a1be3df2657a078e678f6eeb6e0ab1c65c034b329421bcbc8f505a58a78d250e1a003d13d928cd6d305842dd127cfc805b02280d6f6146446b551ccbbbac16a4f1316359e5c2b801a31f674ec5a48287d7818f7e8e56f53c77a0004d8cabb530f95a54477fe5ed63dd47bdbc3d3d26194d9a488a909fbd4a3ec97163c7b8fd0467c6bc20d1cfd03046200baf232f6f5a6798300b70c197f1f616d12cdd17691406636fb1094a2e3e4343beb84f9a67146921397ae9be4160c1c81886db504591122ae7c90f1131572e54152ee1a203f521405bb928af9441a63fcb5445c5e9b2afce13800750babfeb6fa88994a8330d8d51061642698f02380d853bf2a57a8eace6b1d52361820342d00bfffc2dbfbbc3c0a8699c5f80fae249dc1bac232383b6eeb243d9e960809fafa5bea564fd610ca7c399c4dbf5000e4386f4700a561450d02d92d8b5ccf428306a9e57eaff931b31a4ca17e4d6a179db2abe53452560649f5b8f1858c0f66bf64fcd440b6384dff5e62f8983d46d924d85a4b449543ef8d5e0c023353aefc8f552e186b84378a1c34375cc28d83a62b04addcd057f4d83b42926f811b2f9e0bdf9d59cc1f65dbed5835b60404c048b386a3d09e0e7700735fdcb124c4238e1874f99703a685645cbd5cc3506799984d0ead93cfdcb6507d0cd757d2c0f1e350b17a1258e65965c2c6c092b6d4663aa3 +shared_secret: 10198ed9166d13a1ca423fe3b36244be9b94fe16deb306ad742f505ace69e1d3 + +# Rho leads to frequent rejection on matrix expansion +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = cab527e162b7b5b390723c83ffc170e3e153b16285676101d66999fab321e9577d9f284fc3531e50715e790a2714e404232640de9bb0a4649e344ba2c33977f20c4488463a0dc58c1f71055b353a749a54db7b9dd1321d1f2812ce8a90a503a1e0e36ce0ab91309424b896bca7d39575bb6129e0460282c76b3937313839ad8672d4a13ef0f9c738c3c473f38be4a84de989c745576ad6f3bf7933879f69b8d72b93aff64c3d29292a794db4a140029519b99abd78017e5d84c578369a71089ac7b93c97a114e74a62c98b0b7ad707e60b0332b82af5d346f8373c11c83bfe543d8fb10cb9f128f1509ac3e02ceef44e52070305853fab0831bb05bc4ab8b311a2867a051b2e43a8254c787fd437838160ff13b752255e52a466b8543865dc61a40681b1e74eb7504442e943f99b7a4a695119628dd8603f9ce29bb9ab9202cbc52b78bea806d0d2305b442943c3d812e2d2cf07f2c2df778c6d6794114189162c537a9540a0bb75660548ffc56b1a5598aadc5055067f87d545f87b5bb232ad6497bf5f68110d16530bf80380410b67a47b081587fa78acc0621e70624605456aefd9ae2849c715a89a00332779216a6a8b3418196e23e76f919c6d4476b4ca606fa212258bd520e9d9162b066ac4e12568b532d584cd091606eb9a2f91882daaa2815230bc21ac33e8a8408be21b13c1cf90ab1e6f753843f6b5fd3446f93a2072cb3a94d5090e870ff2d788a94c912837899c2b04598c0085409acd1767214c822cf3579637c8beb94ff9b6327ff47ef5618e70a5bdcc76c287551ee2ac24229507b0d87b779cc59be8cc4d30ae0e161ab62a05c7eaa9a209152f37c798a2b1c76b2265dbcf930b131ad88c65224c4a5a2d1712c2a631c2982bca5afa6029e52824920c3c7b3093988d998001bfa23d9b01c91b111cc0fb7accb88d34f34bb7829192d21923d15faa81267e284b7aa18df181a02932a56dc4662f19148d055a91f8a3d97407ab9257108b7447e24a24c12a65fb1331dc2d06f60561d7bac9c993797255340c6770025f776270742c88ee4a899609304d75b55dd2c303b97cff2871cca3bb9cc8400b930087571dbb4c73ea1460bfd34595650098f38548906c2a8154b4017626a6b8a1db4b2a221c010937fcc8c06d6c7132688e1f2bccc869ca8f881303a52bc6313149b6450de00728808143f438be904c8de5923d8a02482a3a201b050d4b1735867eb8e7bf11d5023668c37c867d156ccadb2c383e113dace4a090aa9c1cc530cd17a94fba6c6ef062eb357e3293b343b169c6e169209b0faf0bbd5e42c3b6c077b1728ebb2a1e44d431f7c34835d9b0021871aac86d0782448d08236d94c0f69a46090b6c5916339baa15222a0496600dbf012c20faab5c7b7613c85a5c759d178c6a9b1596d291ce6b975363e47331b16735db2fee1027ffd018d8f338d712b2a79729fd20392c837fe40b3bb0ec9f11fa566e426637149d9041088419575db0734d854d0a0c769550a8dfb80da3cb9f4a7ba9b4c84e45b3457007ba2f380d19098d4f915023ab00e0872dd6485e1b365802d0326bda7c75e7346b001cfdb5710d1746bfccb0946151abeb7122baa4b79c4f6cc10828771cc916000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 37abc2d961d3bba2efa196b62a4f9acbcd14137a7253a9b30fadd1455c22014f3542558291c55a8a00cb44aabb2d0726210b887933dd24955282fb51d17d1838b6804186de8130529c251621677d8464131c99dc5de3879df80b5130df5409f0d75526357ceecb0be3bc1709ffd3df917e38680bc53017f934179ba3467674d8231f6513c64f4f06507a2e3d10a4f2e145d759a23897dcede141e5b13b235b274074eb976f84edda05d507b23f248dfc3ee139f4309ba099fcb250d7c4d0eb61ba359fec9ba74186c5956f118c90417931aefd5adbc179f58282a1885679f21d2ca69a30dadccd896b2e84b4497c347a17a9e3bfb9bd8804c3b3c7b689e1ca00d3d32e1efa17edd4c9c8a9c8f1ff06d991142c193489e1de0e4bce1e989491a0e1eb2447fdf301b5f72a31601a119315af7bb534a088707920f8ec8a951f22929f90e601e231b7e5b46e930d19298afc429fbc0a68a6227757b14fe547caeb56826e008786e5cb4d01feb8ffa890612127c17474a50671890c5ea51460973b3944b66295b917f0bbd0c188e37e6d85d3a2aaa1f8e0045a2d954fd6d22a36ea5f6283652feb40a694e5e46d1953de2e17a090d60fc16dfae7b0d0ab5bccb33ff90d13860be15cd4f1e4c12233a009537920f4b4738ef1e5d40c67e9aa6b07f921ed1100a1e6138c779062ffce429167c4f204fef3b6912f3b35eb44c9efbe164ce5c939027d8e9bf77ae311a6df1fdedb4b5fde5aff35dc94bf023048507371ecc567a1a7ffd9aec53e2301e2c8f9660890c61693fa638cb62d94fb436709c7e619248a8ddd71104d4b45f15c1878a847aeca848f7826e319856c09c4418b9ca0893b983734daac815a97985e4529cbc455855122f8754ced61b89d43df961bd6ffb1c6a7a74ca4a88bf7c2bbe9ff412b8f2a41294503425a3c39a64627a41d70499ae7cdee4fbc33f042e7cf4fa04d7f60452d6ed80076dac04c7fc2c8c9d79d7f7ac8f125b3b7b12dc36b6a50f9316ef24843594ff5d0f42e6bea4fd893d7f59d5d219f119cd682438a917c28166ceb2e96cb5d7e096889543fa145ca760827f9734171ca2c46f49f195e38784bdc6890d953b6edc4d04c4cc635b34847563edb6371e1cf168b47a506b324e66783890f5e21780a94f3d0a9d3021bd426a6e8c5c748661cb11ab4e4101db18f077bb973207634a674c7940863cb87481884a173aab7d5929b5a77127299868c4dc275669a1827a16788a0adaa52e85f52a349ebf4bd8f864d052e1b6978605a6d368dac7cdbdfb13f90ea6d2039e375928d8b9fdda278d896d847faa28a9a1723b16af26110922c76bad4154ce7807e5a8f7720b7b28ff4e097bcbc70bb8f7bf25a565d8a81b81f7569ab3e3d868abb474845bc2e6850ae4c3caa887524cb34950f8434baad75e7ce00808f1381d93d6f6f6d8d85c86b55678e5bb819dd1283485f4e1dab73819d8882e5149fec4e34357f881bdbd0345a6868e520c6c51bd9b355765cb129248cec784e7658e33f8929e0d4 +shared_secret: 2bb1532ce907d285b2d2860eb9bb5070a41ae73585743b26b948cccd1731ce66 + +# Rho leads to matrix containing zeroes +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 0d849d09133648875d99c8a2d199343e2069be06914b183e36f76206920fbb9294e3f17787c4595ab553ffe18287896cf6452e149cad67b901767a6e37740624d12b4657072571b9ce524780e2374d1b381e211159eaa9e8f5ab21315e3ae48041f50eb75430018199290325406bb65eca0088fc5e0b72ae2522a1e65962afea8cdc2c1ecd1a8efdf38d12ca5d4bdb8ba4d50d5de96f25034707aca01a296e63033a58200f32079cb8cab973026934180857d054dd75371700ad89102434f2438a823048900ff4fbaca832065ad99fecd12a742c286c067a93ca6de6e85304572a4bc2729ee2b421a41316c0bd766087eb2a88d50cb182559da4492a0324afcfc519e0c1c83336913881cdc9504ead243878caa6783557eb26599fc56fa26c6209f31222b7bda6db9b50341f5741b6f029a00440bb1af6b4e07a46ba9626d2a3475fac7bfb2047a9b3139c225c36bccb085a3b60c51a6227230df260d8f47ae6598ae065395e5abb6d5478ee97a9eb1a369ad367b075642997513159a1bd426c19542c86da7de7d626c7828dff7c9a6b53006ce03cd54c4f709c231f70829593358ab2515bba53da61c71c9b5b1df2029fe3404a6a1b7bab3be1299577c86997e48d38a17242e75847a23a8ad5a7511bc87a0261a8ab0e07889a53323ccec92e497c930dd57e43f39fd495b5cc2268cadc2918cb8ca24aa28c110b84c5b2b075c2effb3d44b6351cec34503c94e8aa016ac837f504aff5f68def8c8e0324754736950f28bc4d38bb6115584fb681b1b05f8f8ca69f924d25ca3f7715c72fcc1706f83f8538ac14b79581e103cf385dd8962d012309ce7774c687ace4d8372d1ca7acb1cf8f27545c07b6204140737316cf8971b3448127434156c9a4d35352dec27dfa82bd5e72522517bed633a3686ccb64759396db9ba279a5e967c5284814058a2ad44b8b1e9a7786ec1cd7f63a7ef72bc1f5c35ceba1a0fb934a2a547c86a6e00a51e9f89ff8eb68e3a48e7ba03418072cf0fbcde0bb15a6ec0ae648c012203bd6d83e3dc917b7914ca31505e5aa62875aa96c4b4c5cbc5b368b18f68264cab71332a38680826895d339ca656d358a0d40db12ec43733e60a287ba3998e7aab76972ffdb3139b30abc0ab3a089a6223a04c92a9880b89daa915130fb21ef6127fbe74721677d129793fd035d6fa2a1f1719a710a5030abbb917bc659b57f166304a0474daed828e8145423a87abfb36822d8211d9508a6d53994eaa9053c1a69d03dfda68593b1b9ad2b3cc4591067658f8d62347e022205823942c0981ce6846bf02fa16a8b20f39e1a53caa21a8f8ab4667b00c040228b262724d7a95e1718af48ab870675a4ae537d364378560b4dfba04146381f4977647a333df3e718ced96d66051c3f5c2fadc67f29596c3687948f455c3b7b13e2789b518866968788758c2a172b0de0fb370722571be5259c76b06c101250a49b542375a97907d393328afba0dc21948d96861b5cc8059b5feaab36aed39a1180a2bb11ad797752edb36a5cc98ca13c4e90e48f91404212e9ccd4a76569d661735bc9709b0aaf7b068a09b598c96557ec2695755c53a7a70509d0294a55a1707e040b2a8564a623c5ab9094000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 37fa90752936a8099c78fb7599926bdca1d3ee985af00c51add7e3ff7b282d26b1690f34cd3a8997ead23c2ccdceb07ec9df81ed6a8967b848c406340dfbfb9bfb223b6dc849ca5b1969f7aa519a011e33cf10e641fec3c0411d22508a18bfb316946ff41be61a16a75bff04d87c44f33bb3ff9faba915ef3e94ea4bdf1a6a296bfdaeb3dc50aea22c4ddf77b1b53b753f3c228876c6aaeeafbd5c59d748b5e596535995e075d5e47370e5b0b570408b1f8ca0bc0c6d60099c6a465c5e6600deeca2dffe0eec616d97d9eb534671251956505e1c546975c8f125ef2a50192d5106be103fa8b475a407a1a0452310e8b1d78c1147640e3873ecc21811678c276185f24e5c6742423a8778f5a2d74a3fb7ce6862c5481a079f7574864e23886658b2108891480a481b64fa372d5d628948c202a4232bc0f8bf80ce2eb4f90fa47b6ff1dd55a6c02a41f6a7c68ee7f83a2fa094789ea8bdfc70126de68a61b5f8ff5b92601f97ebf53b3e196fbd595dad44490722147737f54d9e69835a98d42ec10cf1524dff2a267156028a60bef51cda83abb1f5df8a5672aa336c02d6591aeee7a4313b4e6dc2e06404158a0714bef56df074cd290fa8a16daa8a1fc8f49ec7067be5bb5856f23afc6b2ff72a2a64c967c374a7917c3552ad54124633285b5f0cedb49795a20116b692b8ed2b49b0d421eef3c51cb99f7aba701b0387059f34f71b12d8517e7495eb0433b69340bce1c755449f1d08789ef7cf9d0bd528c262178af413d4f40cef52392b87d805a4d88677b1b8275640b066e46fdf1ff25264fb5f4eba7e9e1fc2965a27108bc32dfc4ce565b98577f0d1bfe37471d11c3afeece6a411b33ccee3692f32c22f077401135713e33f5f868ac1852120c170336581521834e762070b403f49e08e52ed0458866fa7df50d8d3b5fa8e33e931313aaeca6bafee1cbfb2743762314ce70fd9fca8fc34b402ee5a2ca330f60725d5b81a6d35e1c41f6d8c88939859e3f48c654dd8b9cbb4e9e0afb8aa3344f6abf18b6f5d011d8905e12f4be7e7d4081573649d157d4cce8b7b2c5e13875e0d2c7dc4bff5e9d436ae112338390acd59c7b7e5a086cd3b00817a1a377681a73531d4f1efc7ebaaf6d528e984d9609c81714efb89b3f0bab8505bcbcdc5535dcea227d3507d38cf72133c252f5b425cb800ab6198ef3b33391bd5043ec17293fa73eb8f3f972e64c5dddc851f50f5c48175117e533c87903f2d215a27c01f6050795109d200f5e39793554b35b2a339695bfc55d1d32a06336749c09f0ece1e197dadb485e2d544823e013cb84a11cf44ac7fb4f74dee147e4fb805059fe67fb1eb7daea7be1c5e7a050236ea8079a6cd1578715d8510a53c03a94ffde8a21507086d007145080e07aad2e7398cd98305536e6f3a0a67f83b16698232591337d0cb465bb13c3570df161e97f6e1deb3b6548aa7ff4a30d145f64f2571bd7f748f3044afc5a8d3e2f01113430ce83dd59b0a627ca759551a635a68838246af6c304ba843 +shared_secret: 359de9eb5f1a17bf7215b7c1ab7cc320d7801f826f917755a79f413876973ef6 + +# Rho leads to matrix containing zeroes +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 40da241478b798a39e11830b402803ee9c4decdca918a7276f2168cce60092c29bba4cb8f532bb209367748599501572dceb9560ca00bc841e442a41e15b590cd63fa7921b344018f1a223e9e44ec933877c330d2b72531729ac91746e26c61381c80d98003265c306040c85fb95be547a46e3c01671401a42237da688795dc8c9acc86208c36911295ad22b05a2717d810076b63b632eb254491a414128377de53f941cc7ea1018bd83cf7e6a76d85211af63cf2ec856e636a9210b04a24abab1355478d132805802725345c43a981c2cc3fb0318db62531a045d2ef57680b547bfdb9d5d356464592f47c2360cd249e73a0f59fb470f4491a9e55d6fa9a982b97ee235adbbd8039beb9f07ac35ee5cc6243897f5c81bd9db5591c7225e90587279b35c5a1c075ca5b7106510559eec9ba2d2e7143c01afee598283403a6d7597a38b01bf1c02582035ba743e1aa20c49983779ca8279bbb53d5115534916184c5edc70ce4372bb25c48a2355c22a5b15e7563554e9a0e6f5afdb3aa3a1cc5b32b67ffc13756d65309dc95d561c91d45a1fe57a83f9c4ae8716bcd8708efceb851e4c3cb3acb4ebc7993d1056a485bacdb50694a81d12dc098d39a1f407468e215f6e055498d215f6f4bb8471121eacb2a324635a07864199a0199b0b6276a8a4e5b9ff0ab9ad13474ea6b2ca46b2c41027644a416771cafa07a1ac28519bbc0888f3878262c871b138aa109966040447484b3a999b7b4a75ad185475ac46ed92a373070e03a90f8e1ba97a91b5ace881377a51c24bb1fa85451cc94c72517f3d72024e7b421666cd3814066ccc5d70595efa756bc3760688123e9c3aceeb270a30a23261ab23e30c7f0785a360e8a0bbf5401450114f80580b03ae0b503419a25861331d58c11ec1c21d47ca9dcab60a56a5baee20417172a4535bb6de18b151bcb4159aab3fe69a31d5adf64c530726677db07dceda5d94a7427c189344027fe819c50f10ae70e550e154bc7e5a698c324096e9cd1e78053c6a05c7c11e9b2b532d19a87dc08dde0c73f0d3357f732c441462c8476e5dc5881d55465893438e60350175178213c0b1d8b503782d786b63c1e66cd3837bbc4c891a364b42130c1864c675097f65b6acab701de01124ded8aef4f70479eb996c5558cff287ce1826ec962bbf554abb282442a1bbcdc210ca389c50105eb253ae05c1477ff0523c85a294e084504616d7f75ce624925dc0c00b9c3f2f1363d2b05cbcf165f365390376b9d1817cd24560604c1512720b09d25a82f7179b74399fe46db356253a8320b393b068f064db6a353ada951411390171b47dc29bc4f05a2bf99aad4087ad54be6602bc7db23ae34b27d594b83e798f22fca1fdb56333374f892487e7289cfb01be4b8b03f0d9c2a589ab101494517264b6ba494cb0490a1871d301483a4c647e5c88be907c7c92abd813865606728bb95aa9058bba6cb3953b012cbc2af7a4770eacb6f2a7b9e8e94833e0592717be06517e9d33389b993a53833f9ca20699cc3dff64995ef914c05bbfe154951b7221fbc779740b86cf59ceb353233288911b1242c579c508149ed71052aba9bb79903e23c75258a445611c9deb185efb25524bd6000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 06f9463d5e9d8718bd3f56e92a41b4147298b758e670e938ccf1b048a6facc0709e58ded8fe9a88a11ff81007e066c6038388b7fe0e5496c02edd8c28509f584b9d58604c7a01f3196f99d3bb5fe1e9a6d2ebb47b2d2e0da69071b0f4af22dcc830745229081c266780c1c5dec5af5b74b9a2355274ee0d0b0243ab75a5f59f09dfcc2bf305f5df0ba6fb24c01c9bfbc38749681dcd401ef1f38d2bfc29ae990835c48a80f56b0869e84f7524f7d469ad2c63aee4137130575cacc87dc8fada26c4b2195644b54db3ebfee1e4fc3f13ab744dabfa044ed7cd099ac836b8faa41e510d3995c129429e2f4c8b188b612ef32eed540915294be069d64c662bd301381a430123a6ac2dfcf2c6ea4eac8dc5b066d7cca6af8f399add96abb2154b9167f57fba21a145288ee90a4e47595738d7c32be27cb1b0e5e16cebbfcf5323bd0b719a641ca98bec4b148128e3fa11963070eecc2329efbe9bdfed16df4fed34cfd03e65a59e20bd3c7b8f012e88b8262473c7a36d00a381bf37c15ee6d709f9f4f0042080d4f67cb6f4777f92a2f0a4b07bff9e925a7d7ab581ce46f055f35c1963d283e4a210a59dad5dfc7a679cd828ad96382046816848b1789ffc84babaa60991082418286bd281947c7b664543af16b8ade454d3d8ae5b416f82cadcd7eefc5b135bd6ed577e8d85848419ea73c3e0ad7276b3ce8773e9881384b9d48ddb6eee9d9aba7dd2a3e0ac8972e301d9cdb0f25893c90e68f2d1ff8ff892c6b59bae088dfbdea3135e74501236e416a01c770bb3c77c3a634a29ee6d99a0f954171078c1eb44d76612d25d7e51fe3756df2c87482a709384825f52dce92884f8a3ea3ebbe219e0bb36327660b1b7c44583bdd924bb4ffd6baa933034e92a5feaa13b3bb8e8e4c0a54ce58f4a48ce0c8baa273e963d74538c55d2414891bcea9789764247e64897c25a8b154d2ef8d1356a77b8a5909c9a53d45d2e4d7362e96edbddf27bda011a439bfefcb09bd46bde933b5375bdcbabda95933f859c0c43cd60f21186439701b7ab4f19c8bcd63ab3adee01ff5c2c47867297297ff823c814bbba614e87898bd0bad020c6f51440037a687bbb96c558ddc0f2a250b836bbb36d88009a2575728eabbd15e3dd14b47c00586f371e8e7d964d2cb7c7acf1bdb0077ef2f79ad0c20e6134b54a8add35540cecb4a1db7bd8bec65467745c2dd4763d7c67d9a53826c42f67176354d472bca647540b404c0e84ab05e4d474dac551f0624ab099d24fefa1066f495e0bda8439291e4c18718ba9ee97c16c385309c0d9505e51ab5651470148223603cba76d767ac5131a13f097a537eeba099a18144692b718cfba31b748a72b69f03d8226bf5f8ed7b5ca93b40f7e64e5a56e6edf2829b61e96283518594414603e7acb8e5cbeee0a8e9026196afd72dd3448ede9819a89a580992060b1852af4e2d3451ff7518f18c75c4e4c453f2d7dba5cdd60f5f4686b5e2ef272ea958867501a3e29a9746bfb41f42d08ab860d862b6c0f4c0 +shared_secret: 9cf796413560833a3c2e39edb3f4f4bbe551109a4c0b9a25c42777d7d89361c7 + +# Rho leads to matrix containing zeroes +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = 13c4781290679e16c822f2246004c38ee6ab27fcc694e665ec690515542eee6350d4a13740b417d1b91883537b2bba248a61108a818d80c5c67b1c3265c124f9e56be2a13129121e030aced4585189d58978cc3750815688763bdb44a0ee46c678999081d42ca342b414cc00539b6d19645ed18ace96a46c2453af3af9b73ad649febba71e40802e3871cb3661c2c7c1480b9e15625fb61c322f0141268583f4c9b19950018c70a55ed500625cb207e9219d2c9cea134c6f32a606393e94923e3fa5729ad2264fc8667d140d232a3b68a93caa9098fe242f99305a0fcb3413ec8b22472e66754edbec064e89245301bbf48a8994d36b4093401943a427cb5388132d3543944e656ae51c72118821102322a8f7246368b5d9e4756fd45d5886477e476e641b10d0f196cb6638f6c30ac2e6ce57230d4036cb23d14e8ba30d66e92656090199f1652003af17393b1fa912df25b6fba7bb3fbb5037915e46c8217cc88142e14622f028fadba21455b00ca96b2d039663f0aa6d48b0b5b3672203b76330ca4a14434b877cf83a818e71b97b77a4eb99858542b316c809f1630f9bba7e00a265ef2b6b2aaa45611726e1ea7d96a50f5cab524b138288f74b8575256fd7504740a256e1bf34318733f6b7a53aa30536bf0e5079e5b0395189262027cbd497c350b1ad89f4aaf88b219de48801c7bf97486824a7b7bf723f516293f2f786a6989a35c192eb8b009fd37f950cc6e08592a1350c680952e92887b5759249cc70bf477277cc18a9e95da3579bc4bc42761c505504372eac4cee71b4d82c787356983380666b3718b288948372c11fc855b3950e633a70762490ca13c11c6b824478a293f5161c782c4ffa5fd0a64b5522c23979b2434ab52b783a37098ba2da100da063dd3191c29c12bab3927ca721263cb518924483091070981a902518df41ac1280bfc7ba2f2703cfe2f8cde65427818215fe57b68669ca97c977af38845433295e770c4bd4cc308cb203d823c84639cc9496d31424ea778b0f215430437deae7b8c6906bd4fcb589d251b637030f9607e9bba487fa0fbeb9545eaa8353c738a9f02b78e19774b84ab8144f20e39c62a16032d924658262c75b91e5a471ffb95ca40b5c1d388be8b55e09f4980a274ef5a5cdf5137c1afc0325913bb1ac608a210ae92220f4a47d8ec6806dc6b5efc67ccd677d5be615bed15cd76625ee4300f1e8aa9330952d49aed6b14c8550204d2c3c61828cbf36322fca4faa3190a6635e2f0809f45b5064929c14e0762d62a3c8839663fb8b9a135b715440d81836bf40a6cae8333d4496e4703b4ad50482e8ba9f5163838271bfb66d1fb462d51418e2792cc7370f7806d0ce7b7b4a66af2af770f5a253c46001bf82988a4c0c008b8bebe64bcbca680d3136e48bac4f030cb495095af7cc418b3acaf95bd6b636a4f92dec211c4b2b4e8bb90969681c61ac380c16ce7dd0aa3236957415b29144737c5b9124575872950a23c5315bd3b0ccf2a608e6a0d3659cd1053938cc1e68c131095cca20c4b2b358c65192b3d812cf73e820f89ab1c5b4c4c2270e7b465e2253c179d312bdf77f22252d3332cf685abeac1c4026f95e9b9b79c5a3842a49b4ac59000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: b812896d14f191fba331fe20ae245f968a421c46ae8e3360f380a9f0a00d50da4247b232f5181ea946b494e9d99f82e7fff27d8ccbeb6fa8dd5e12f12d2afb02004f2bf046f23115aa3f7e9e5bab06803c4df1d6a0bd935c882721d09a3b5c41050afe0ae3706fc83f87c49fcc22ca331fedf7787ab7ab0ac9f04fe405f21d3384b1f377332feebd65e11d7989f56cf7430ae8441072a4a8e9c8be24a4a1fcf380dbc0a8543d2159de861281493516d3fe7f0819da15d259aa2159c37d325c884217a03c83d8f4d5c1b9f2af4e734aca05ed1d3951d3bd5c021a4e81069678a210ee5f5c9404b52ffa495ebe6b05cd02cd84ab3f3795793e03d26e83a647921c2c970170c0ecdaca8d2e5c469b1a3309e46dcc9122623b6f41771131db303eadbd7b7df5c86bbd6ab0060df29c95a0c014da4939271a98c12ed92a91d8b3a37e2236ba269e7df73f7df2fe447a20bfc56e6b9249485cd71a9fc83af54946537872649949b49f3d98425453fce02defb6d09790322afe334c53ca802510a87f543264e5bbce4665564d23695a08161e28db4c90bb6bee38c00c5d3cc2e403e225afe39ed45ca3c23a35e64769486e4e38b122e3d1bd2bc8d1a38f689e5ccf26db07c8b7c14b19431686ef783382d02080b9221d2a15b41db02a63db7b5396e4b516d241ea0ba533c6f1c90b67d0e6bb2bee066015dd7c42f0226809fbd81a8a56630b93aecd63bec94c168142bc64f0086e02ddeafe7615192575e74e174cf7e2c4df95b55ae810d5cd5cc706605800a0417bbfbe3097890621721939e01e51f46dff10e0777bb93e0b87e8fb88c5100b47ea0c1f356fe669ab2ede1f6eab8a52b45815f9698e86baf38c35ee99f5d3613be4fde9febaa6c33f3a493a37eae52530b8ff0282671a01a13ab74b547c4bd7ae87666c20f857bc4fdd2eeb15a09722cf158083d7a31cc13dbc53e0fd2b2957f5032761e777474f17188835bd79090087ffc0ebc01af02e4d0e0be1d532eefee9ff92afff8cca34286cd6e9c03b2c41b2080484c725afc5aa3c76d4c807e8c5beadf261061c4df268b4d4e6e24ea68f2fa085153d37be084e9d69d2bc48c819f898ab482c0b80659ff473e8b186cd5304c62b4b3f3b714c628478b8a29cfc5be37773cdcc4558986d29578b5dd087ce0d989a70616d380c3c5f68410b3a7a0fd247b7a3d9c9dec0e8f13fb1fa1e6cc579e31a202afb994d6fb4e40e6377dd2ba3247e5150db44d4515d31296f00bd2ff2838d5070821396ffcfb424bdba4ba3e9bcd2e02fe85f5feaeb0106fd8270a47aca634101102c08dae778d40d070d1ff0542414d71a7dcacb25536b4462014e5093710ead409aa1ba2c21c1716cfc4f1091aa39b41c28ac9cd3293c00c853a267cab452473fac0c84bbfafb4e2754a1c1ba244fe1ba8fa356e78f89a94501e068126acf20ba176586adfc0c03535eb6fdb1ddd41c6272d0e8c49f039dfccd737c284351ce14b2f7e0d01639d502d519fa9cfab9e41632b79353ff861303508f +shared_secret: ce303d3ea30cdad19af0a9f428943317278b22f4c7c229aaca25d0709b23e6e5 + +# Rho leads to matrix containing zeroes +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = b08c45bbdb5d4053b675fc7ffba8cab1f105c8095a0a209c4f16447198cda9d73c62bb98dbb3c86e8761978bb77a5c7a28f03f10d8558cab3c71d498429786280383f944b75c7139e533bcf7019fbf953dcc00c884446e8bc3ccf75b3dee9190526662b33527600296aab664ef58c5890111c4d1c04262ac22985181c80f3906cf11f38af489a75cf5596757a8ec56cb3d3a7c2594441113c427f7b43a019ce1bb1756a9223b8b15c3cb649e93497fb34ed17b7c4d185ea1e9a5a6dba569f1414aec8bacd1adb784c714a7b2b89989bab281eff81ed093373d5c6d3f36ac3952aec99ccacdb0634928668264bc70303fad4a746592778568570ff75585422bf3cb6a6960946432928a0b39e5bb017840c7c4d99b8b25a0c76349766b0d39f7076a839abf883252743731b53c3f650a32b0297e806addd02999d61086362322c840d8dbcd820ca008e5ac150b7932f081491415c1c3300e0976e7f9c14fc045be34983ca26b71690d216989a01b03b6930fff0964fdd98b2ac6bbc408d0731a501ec87a93e19096fa3161870bf7964ab5d6a5ba764ed8206815d83045b24db9a9483bb776dbc3ad85435d7cd449248c4058e3568bda4e41061ee5f0bfb0e29867491bf796140e8a2194572c23f75922c4ab0014c9ee5a98663ca78741a4b15335d14a3fc92a24b05b5233a43914b274ad531e94656309249f79fc93c13652933529e72690e1b8b7c6a21c756614307229135977fab1727a497617c695b9299d81358354c9962d231183d8512adc5f10e56a053610cb042cc4fc2e485099b973b320c090a4459f8dc279beb9568f840932c77d28ebafa40ca22bc60adc785449800c8fb71e80ba9a67c4383049b36fc89f0248a688298453e480ec525dd45803dac94ac380c468ac2c85015560965b7c7838e59a8f90cab718246dd4a0578fd41438e09716d3530a3272618b191c521887ca38aa8c994c93820f78673f5cc95ca93e3eb976946b8785ec3f12641d41f60db3085931aa365970190b93c37625332fe92e4532519d8825c46200e8b576592ca557794e370144d378a62e5c54cf6820f1671934db0b6c47ca8d302bf18a8b82152926853df7d255da51cc7a19657ed77377fa4eb8b2a929b46ff18910d1832b71842cffc3849a66107702ac7a86630769889fd90d8ea22788805876321ca2158ec7bc878c568822c0bfa03c10c9f5b5a8076357c6b934b75617a20606712b0e8cce40f4ced0d17defa628bab4751e56b3ad040be6e3264e6011fde7c4cebabee0701c6023c218d07b47ba4ec811b286ec3031f5254302be6b776666897b3062649252c5f7c1bb0dfab6b4f13155c91f318963109421a4a33306eb0b66da38fdbb541bbb3e2037c1a0d4493e0878aba23e7138bee255b3423009ecc8920a3a4b86932167b1affab27a8821598851bee698665a2130816b66b7e81842819ea1560a0c5292be2cc7d5428aaf3b7ef5002d5145aee9a82c9d44bdd0842adf54b38d9213e904052905adf3255828147fb64960c9167b17126d61b05007c759c938cd2086695e0636b25b69312a70235b6e201c23e2f9a9ad696716f53333d004fc663d5c0b0776f875ad988aa6c6230218cf6806353409000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 87099f26e8493f157e405f8cbaf679f5fb0aff16ff9e2c2fa8c263c6819287da7484cf93e0a6cca4d0a94d0f710081c0bfab292981dec83558b651abca873980d077e9febdfa82398896e88560e805948d84ea38cc77554e9421dba3a85ba24f3328ffeb4de0bfd1da900412a71903908e3b8cacf00ea86f21e4eb124167b3ec769a8a22498ec6cf26cd4b1470e95c37b3716462929ddd9e247d3f23b98b3efed529066532b8f6042ee8eb6ad00233329e0b634e300ec2932fd6631b1bf14d7e992f54b985b51cf1b05f5ce7d9f7458bb3b530fa3feb7ca1a72dbb8c4b01c0f03d8b45e550514fa4fba32705c95316960bf50d64e3f07c48bcdc31265f0fadb5f348799fe0364c93765e2bb4688704f3027e69689861dbbd65bba05f158fd329c5474386f9ad7afb65b297004664ebf3cb7ac1e8a34e33ba15ac0c92e7abedbfa96fe4c68ff6d7a4d1dadcf56824285883d74370e2840cefb887b7b934fec461c50781dfcae2bdcc9983e0b34c3be81a0dca5ff0ac834f5bf71b4e6135c79c27a525bda87c2c1c05e5e2addbca7c43e49ad11ea240cb09bd77d22e7e9d0ccc4d638feff6fe9bc04300202313197a9a53b99e67e96aa72ebe3200758c1f17b05c0b793dba17278f3e79563a532161190eb3a0724524b210f26038ccf08d55c0bf29b95917c0bf97df6872438b25d6d90091ada34b46ff2df784370c8bd3a523687902dd9a1d70f9aa9b1a06dcf4a1fdb740ac3a0c25c3840bba2e5c6cd1dbef9aca23d5f29ffc00cec2fd9dbcc187cd2d3c690f436e6265f8cc6857b3ddc1cc1415877d83d80337fc4c4e38808b9e05b14173497330077fe4c38699523491d4a3248e5dc4c401a3a29054c924c744f7514b7a84e91ca6cd2cdd5cb51c4ab4f2dd4aa0027b294b299896b558754264ab10b0c0306465ddd4e88f2e42b580801746452467558d3238d21a74ddefcbdcff5d79886b101c57c0d4d1bd4af284aef20f558928ae0768a07f397c5f9f7f334a446755a22549cd7fb1efb14bab48513e52c454e57c381518ff6d3d02278abc01bd0d54d53e77d361bef85c33efbbfb295bbe3aad332d5131e8cb5cd90a960bf2d429524b45abd686ef95882ffe6751da4f750a367fcdf0e807fc204834d6957ba8fbcc0e9e3d4922c45085aad54b08934e0d909b334d3952cd479931c75c5f4aa1ec286099bedbe5ec17123384e83dab7230ccf5fca4f085ff348197d837b752c2bab7f0fed29e6347624c51059a48dce7f4eebe03b5bf9b15b13ec85e8acdef861fbf93f17e377e950dbe9d6cc96ae83e94a3c5848dbc2ccf6090882f048a174bc42107cf9bb0df711551e2d550e74d2d416453be7fbdae5a24ceddc7dbec4329b4a67d187461ebcbd9845c5ba04967ee59da4bf822460053383935cf1bb1766a7ea5568f16ccf8400d9a73fc86a7570742d76d4f52d20ec80b8ce2a937d53fe88f60bd3deefe27642fc7cd7d79cbc59fbadef2ed189edb3239a948aae68bb2bccbd42c872dabd7a261625af4fd0b92c1 +shared_secret: 53865f61850687872fbe708ccf896f7f24ea01283510faf76481abdb0cc17e89 + +# Rho leads to matrix containing zeroes +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = 0674c3adf498654b7d8078c405881705953d58fb08954a73cbeb43d564894eb48e104763d35563358693f2f2442ba8a01c38af0d94be822a1bfb7560e75abff623401fa043d4f10f8cf688b20c56cd18867712688c992f18617331631527cb4c7b0a526aa488b5122553e332280ca64deb0c0ad36db2267b633b3f8bb8a83551000e1ac17f7b426813caed005892a7077c4bc02f703befabc0f6b324b1422ec290ca42f630bd441d1f119f1c633b2031cc759322a4d762265c5e642462c0b38ae5339747a62062e07aacf8aaae3725424c4f30f38e1c727f40e53788c68bbfbcccd8db7364388a46a366b53bae89f09d64c7c1955357e256586dd5cf508967cfc97b0b481267566b7eaa00dff67158f81cfd8a406dd8c0095c2c6e4c9e03a466ec79232885145ab0a321149879a25c77378dd1e231be71519122b4f1394e1998081f271840a245e1774012d508bcc0830c5901cfb7cbc178875fab73b4aca397d13da45b9e93342d4f5aa813048d46e0b56c8a9ad7194fcb6046da9b9d16d56da6399315c924f18c527437c9fb03ac3774ccb272614b0cc55968ad346187a5f1716a944fb3946783a6511a6997cd482ead064356f843bd6b6379f6c662c9c655705c6265c8702729c3bbc022a8828312bbc7c7b90c373448a59cb67ca2da3771882130043488eedb9c91b39917a1629918580381972c34a0e7abaf372527e1902088e1354c5353c900a0a16536435124a9e51369bb46d226170a064e91e85dd6d987956820b1446a6181535d3ac8a994341ca43b0cf06a83825a85a5ad192582554864561c5bb2915287a502c39b8b54abafce465abbe7092a83384fd35d91d5604c7a4c14395cd57713baac0d7f906ac9274a8bbb34074b3f96fa8fa23831ece3975f3011a815bc7a4c1a96849d386511e61a9ac187024eb50135aaaa0ae2347a804e55e4b3d3e3c678da9e5997419c836948370d1af0a1c1c15d70f4711e825244b1521345304af589877b64afc28ac625a237a3226e1873101345e9ebc060a255fe0862de4800097a89fbe07aac5c1cb983049c369c8f0924c8320df70ac9da023cba2b1e40757a3323833d12229ce607a63275f305c3b8bb830dcc9f63bb479969cc0cdc30afc75a8308cff8e59d5b2a20d46b200dbb7d80e011bb726e33c968e3ba8809771269a096e85260828c1fb0a719fc638442b2935ae4cf82a2c27bf471e48264ccf912d4f09910ac12c19077a8f52bf3b2c8fb4ac7ace2ace1250347c3beb2d89299673a6328c8483805be327079f8552af16117d12550042b7eb635cb0a8c0d370ab508a7789235fb81bd60b882c8909140eb487c5acb092c024a9c6c8556b832c36bd0dba31565b70c35c2ea4cbf7a1b42d2d7184d37b3bb180b9e1078a793b7fcb2bbc97bcd8bd7cb3c0758f398a482565d185abfa4310c3a84b77b9280e7a6222098aa627497fd13abc2130ae6d34ea6c626fec532f1eb4ca97266eb95a728434ea1987e7e666ad09c0f08c6c581dc733f962fd04780a7565355083b12a56a7c4ca774b3cbf4cb762949631d8bbccf7b48e2ea459343a6beb3a2c38b64990a01971579014b41a3a90c06eb3bf83c502388a5bfbb0c9be9beee4f3c26cc000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: f557aae24c7a8527f8a1ee03310c78172826128ca814882e33e4af6612c938d174209b287ae8a53adeb6fa0aa25fe6d19f027367239cfb89bf0dde0f99497ef7d7477bd332264ba237ec0e1035440029fbb5064ddcf9bfbd136e92f1b35a0a2cba8405ba42b8ce36cd2a686bde2fe338a013c230b1f1a99113c01babef6881f471081c9b9fe25f28c0fbf828c243284e6be4c0feb138729ac4a6d6b2869493abdb39a08563b2bbabcdabc3b349f74708b714f7e11243d90a69f68585b21de1cf742ed7637fdb5248cb5fee5a3245136e85dd5042163f2417e58a634224db95d004a4e9665ce10dd120b80df855c5ca5e464875752a70857511a705be5f3edda976ce536a5a83d5173c194d0a9ecc24f83a6b6c12bf06521f9494dc56d3a85df270518bf930474d9fbc3c77b61a1799db7146d5865d3d71e84a64e52deda9e16cb73ca1babc487a5b653664278f6256954397300b150b9159e5ef19c71e45fdc1919fb99508606e180305f7bf11f9c772e49e7a0890cb5b0264749035c3725e3f6dc99710889f8501b71872ed3674557e5fbbed85f819fdd9f6d83f1c40a04afeb67452dc3a44c77a90bbe770ec918557923e61fa704b3c08012873a0c672e511241612de52cfcb8c8e129f3b81f3ee76d99bb42398eaad6a1028b0c618b6c0c2afc7713ccc226d4c853227cc6864dec677e39dea238d79066f427c2cf7e9597b8b5a0c59536ea78485511b3c804be288c57d894322dcc2ebaf11d2da207c71381dc654a7458cd22c34703e0b720163ced269283a7a3a50f5e31868ed996227f49d8f0e02e6eca130356cb125f948eeaa0aaa8c324401f5931298fb20fb0ca6cba46bb98b02575e7abd822838467ccbf1d80868ee866bdbed1f7d84eb1604abe5f88a39041a18d301967260f8589cadb4e35c39cd50fbbd6a3922234732f25231ddc0df32fd80289fa8ceaebb0d19ee014200b3bc9f896e1e2585a0f6ece96a9983cdebd5738fa4b10a90536d820ba5f91b3fccc8e77a8bd01a56721608d402e4171cd91a56ffdf9236fb75e7041903a327bb2f8c487fdac2e369a4895b5affd68bb2967c2bf4f46144e6bfa796731ffa338eb9acc96374f2db1429b5568e79cf9cc077e74b3e048894c3b0686f4f071203c2ac7dd94e029ad9b9d8ff680d8bd5de38491c43ae7917c18b4cc50cb9793dc7da034cae15b8740b519d8c673d276488b8bc9c3c6fd127a7e9bced8385f39538ae500d76283779a4de8c360a976bb237822abb96dbde0408f9f9ecaa639af81c941460ea2c19541ede082e0635fba083de29c5d460079d6ba038e961745a0837edf37f7b0548c65fc6f8eae8706e54056b6b2819b79231139da08c6f66a4455be50ad702f1469770e30ba9b108b84d77d30e0fd4a220a4f4bdb7d07878ec837553f4210385c760fb7f180c943a965df8b3118e3423e28f6172a2c9f9c268342e1a0cc63e158c51abfdd23efc929b8dc17274063ac8c3e4a9f1b3ac373f7f279257fdbdf044e14861f4ceb75bac6710 +shared_secret: bf9eb969821d6b129da2e353e7ee8619859fa2e1480599b3546f305e56c7be7e + +# Rho leads to matrix containing zeroes +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = 80002535317ab0223bcad8c9d0c6876dd03beb06403e50606a33937515359663546cc0bdb16a4a9d6ccfa0315882739380c591e4b3302d807f76256f441b99acca228f17c904f88143840648971cf03735ae9ab070b6c4057c6865c88964748d8e1c5fe919037f3853abc58a3950cd307c39f8db6b9c6794d6d921da4b5ea23391d916b7f2bc8b50061eed220e901495c9744da194790cabb66a3b34eb020af87532a7967a5ab190f1898cd402c093e4c0a7967460d5b0ca0bad973ca86e533435536366370388178d28349aab06090ee40291263c16d26551a03fac734b0f17c2ecc693bae40475f7cf5edc778060186e5811a3dbac9d34b9f478c2b7e1c7654938cf8031e433ce38c47dd5e9aedabb6eac802123a82c6aeabaabd76a254c451460639fa646d87576ba154fe0b024eb114af1d2b17e245c442ac9a82bc948db520ce2c887d57f0621270b819aeea5422129372142ac87c1762e6b891af95a47912029d09118f97c5a67628dd2997c669523c542393b97f74c4974395a857bb9b47b39d22b00d5e946365a2dda868934e514b35954ead55a76d812cf619113719b322b72d6d94187ca4d3a26847437b2195a1a034b530ec0b8c7e1401be0308237094abc79fc9c92d79675f590347d7b706361556f2c00277289ba296aad73c9f3f654d1893062735869255c68357a97558f0af74a44879ccdf7122ba5bfc5d21d805430432abee64c7f271a930db3aaf5f78d8889b59e654c18ecc915db8df2eb7930426bf64b62088406c4b5948b984d29f149ee897c1bb8664a8617183a3c477994aee870d1089cc77079369200eb944a79f5aa8c5315da8a7571a6ced0850b2a71a9ba6221cf14be48935e12c8a4cb7630b1661c3504885a065ab5e3c1f78327c779122d772cf64c4b3a63aeb7b7b2c11cbb8ba98e5c340b8634bf743731f0942b8c333261a8b9e5d60c91a707d3e4035e30bef3bb6089e5017d154279b89303a2a10709bc8a44ae248827c477c7568013db462b34e8a8d7731340f7658486c3e83631e21938c4c560e00b521e76695d09844a0a35a6b758e711687debafc31532d2d6a41e512e3ca5bc88770fe49a794292c0437017082c5d11b8a6fb36401fc92aa5ca7cab8b550fab6a74119b5ffa8a14069f58f81231f2a646eab240fb56e0bab328c4637d3559c9b7351f4c7f68eac27618a874790f0ce75e7c32333bf534d0512fdc837d7fdcb49762cb3c8529b8538fa725476e0939394c9eedbb73ccaa0a8879b2c029b9dc350e911278720240ee262830c41440b89e18446f195c7fa50c8a94b02ceb5c93d2eb27f406b80e758da7f99eb320cb28b2aa6465b50c6c42b9a77390b521f3e2830f789a3882298c649722748edfa9c8ff2b7abbe61aeac3171cf16ec0997952323d11bc29fc1a76e022cf2a07300e3a87fbd47047c1504e8516c4e2358113b8ab8078d6466ca802ba3141287181777ac12618081892529a0d5879f4ccc979286ddd4c3112145dec7a711548214d62b92c238e82b4cf1cd6b78cd94d6490ccf69005d9ea13efb1cff0028f6c1543c501255495118d76137fa4c12331800c5250a71a4a8ec01a30bbbcda5a038c682f2b85b6885714f6ec2e27fd000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 7a47d5eee9259bcb9ff2d28b7ecb9b5cf70cc36298f0578b0b8fa211f51453fccfbefa32711bf6e83b796bb7927185afd4776069ced5de3731a1b4783db069092607bdceda88782b7c7bce5f77bce5bc70aa9edec73634c6d55b6c7e66a80a1628cc5a0ac5a83141bd060c5e790c6d1e2d604b948df39289825258a575d559e1c06090ca398332b5df350870abdbf17a5aff739c49c50bdc1f92df4555f4ac757f5e98e43b287873a6ee4f35970785b7e43213d5d49078504d0f2d376d590440eebce8e86cd12a5f1669ccf0be6e8eafa396ec1407be8a02198a287649865cd0b6c149403f6d4866bf117e2f9b5f3353ef662b64381acb92bff6208dea2c65f49868404a02b5286dfaff50472d24300497d8b673098a8ffa09a3633d91853491be3e925b18a6f81d757da0585c948afd41081c654853f3c7d6befd41ebafa1a2393bb1415e312d0930da60f010775d4f86076c19f2957da96a0ce4903b9ca5f7ef18d33c681a4252e58e2eac4a1d292ab9952b0339313cf5ede08f000b3bac1344fbd5a23ce63f810c993285816e42a2c13b35ee685863d691bc1dcf61ecc4b2ae54a2732873c065170609aa0654279cbf77f790056f337f45d9ef3be9b278565decd4f86574322da9d37e4e6afa7165cd2b5d1d96fd6a27570e1797ca8ec1b64db363ee5bda8d756ae024ae1061826d90ffb68440aef1aff662c801255906fb040cec10e4b34353193e3476612ca6467a19a2635ed3497cb565b8d765642a8cccbdfb2fabea1e2a64fdeff5ad9b8cebd9505872132286731bf566bb8caf5016ff4eeda1fc612593cf812d69b12dcdfe5ab34d03a8804feb9f79683f3ea44da7293ae812f68d6a21cb0b66bb610cedb2976531e6b174d8a1cb46dab41d87c3ccf4e23c5f0860f0cf118fa50cf8429d239d80d81311e090a2533f88c707a64ea25cbaadecf72eb202c647fc1bf3bb76cad5c05a305fa2e67b4ff8fefc82d9b1868aea7dd7aec33d60a4039c08f0f10aec4826d3e1b8e0b845082fbb95fbae30293a92d5ac73856a72ff52040b5f5844b61af07de922d65319b943cbfdbcaff62390f3b162e64956320aaea0e2abbbbfb9678e15ec9dde1509edb4643d997b25db8ffe372ac7845dbf2a0d703340cba5bdfd9225526f249561a16e21fb899a71293750b122fa22e23424aed5a72bbce45995050f6940a51e495931fcdbb289bcab11607eb21a18f35ba5fccf786f04d536c165d4d3f5055b661a31f43deb64575aff3c2b61556c20ed98939517179e86902083ffec6d42c6f744487cc4fda790e87a73829b8849990a4c3c0b5ab5c0ea8f0567729bab9f2ffb6f032403ecca6e4bacf608851dacc924ba6b8051bf48aeeec8c5ca87b56e3cf440521e72f569ec80e07a8683fe06f4a584e7faaeb2ce6c8031755648755c75475a2d83941d96b269dfe365cabdcbbf207e79e00075dc4259f96cc9fdb3429418072c93ab4f9322246b3db1f436e579d1f541306ce036a8effa25efe0fd0b2a208d340cfd70cb1506 +shared_secret: 43e175ccf07fb358c9b4a6117c15c327b88d4d8b95a645fcf1ed096f0eaa17d2 + +# Rho leads to matrix containing zeroes +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = 6cebbc9157cd2d0228c6385f0d9aa0f99335c9cb777e96b597551a0a644a34d3a419b3ad5351876d93490598a90f31a3a2a227119b7cb397988c8971a0459b2c811ebc8a19a094457c118f6db50b7b1ba6de5aa85e316f71866d759cab439c71d90691f1d27da41779f2c3380c600196133f15938125583ac7650eedb0b069004073205b49943a4fc00ab5ec5e68ea5299b95b303b1cb08b687c0b533ef3a98a7b0c3b6419a6cb825874c4ca5688dc5cc5ba5c49448b479b84baba1344a29493fa3828e953b3ba64b087ac9f5b9a3f12cc6cf9942612606998207a852b35f42ab80f1ac8bada3f107b37cc6c1b8df40391b1afafe848a92853c9b32b9ecb758b88c8f76a9b5e866e8c359f3fa29019f439eb0c9b5d4b2a516877de0295fe7409dc79caa4da5f6a87a26f9265581cb6d141c3d0e597f385bc77f966ae1c01cf29cf0bc536ddb0a8d75c8c5db79e967c899b46bdedb9528f596de02c120fa2702f73b3756aac59a750ef97ae2a7213ee95797f2149af542b992405c9d79e085521d2e303c14146180904f41937cf4180edc666d70238030b4b6572af377693677a5762ea7775c34b9314c10489518525cdea77cfe8b24233dcb477e9cf48acce10911dc9517587b409742b06e3142ca7a54f36d6ba225bb933632ff06802779563fc43a231a11b42b91feba135d7229f1d29781eeb65d93537c58525c4e48b85083b3226937acb2c7bb3941f95664c254c18bb9f91f54f69263a1d590c64f51f0d8789cb60cc9682082bb399fd87279fe4039c9bc69202a309faa488e26a4e3a5d64ea4161b9a8bef9997346ba46da3414965c4ac84ebad1c2f067a3ec5a0866e4a5a26a7403bbbc447c3b13e9c282ea36307c83a91b25b8b565155146fb5a5146e01c21f4aaa3dc7082e93a2dd95e7364b6a97cad2b0bc27d0aa3f393195250118f9c635f41ce82cb1c8ac2158b3101e3f44132a271a545240938bb56d11520e2474678391d4abf7200b775b27dbe81970ccc517542222a67b693d151ecf5485c198838a2cea0060da6285c6f0321472710d62a78c42c9edf07518704157cc5669c3ac775635e09356304819d718abeb0603886c67d8c0c523691a22b987af137a18d20ba3af239de79cb85672d8ed6beb818c5b09baea6c456ae3a4a7481343aa890a94a15a6502399a0101da2448f55666aca18d0259d95838135097273ab117a60cecae8108dab28d6945cd0a30099645892737c3238974588bc9b4384615917e8ec0c10076b2249a42f1841252533376830f1c2bd85456f4e8577f7ec1bfc7a92165ca5a83b85ed4c0dd0652b0ccc9bf5fc6946f710b0bcc42c9529de51bd99166eb4030bd1c394cce0835dcc311cfb6e3c951643f5736045baf1c3a7f11603cc168b6a47ca7eb909c6d9806543380c603a09d435f7695e6b117b75538d92fb03fbd92d05c7461b113eb5dca813c43efd7835525a228005076b969e9446be37c707ae0025e54863fcd72462b6aed873850cbb92cdbb209246945df26c6412cc16214155e57bac92562c5c14e1da60f9e036172cbec09caee2d14242d16b1b1b9659a7705a59b23fd93e6eb23442825473c820df8342bc33177f39451149340964c3ccd2000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: e4cc5f39086d1886cc8362e6210515fec1d8474263af5d7eb7b5ac9c1bfc65109de928c818728fc17548bee754bf8df9f972fc2f5943291e24d0911a1963bc3e4999b6de2add2e5c15b3100a83be4647f3fadba3d61022970ce43a6d0cf5a84b387b5d05847185cc862eb6b71b5a8ef9747a12e399866b3839e73f3a73e38877a1faf8b88c3283f22f6fc2dce6fe43118ff68ca6cb9e88471dcad4ab28c657e30462f64a34a108bec7e3b6eb988c6bdbdf4a300d476c170879ecd62ceed6b530575bcae1f23da95ae486b3322470523429052a3059eb75b699a9941a028da267b970eb0a8d444296e421abeaac7106f0a45dfcb30a69d5336ea98d999e65bfa6a2cf43bd302512f086f8441d92c11937b2773b1cf33b82076a64b8327bf2f94f7ec3e83037dc543bcc8bfed37e3a2ef05e009745cf504f2e261fe194c256292d86d935c7c971dc4c32653fe88fa2dd822fc37b644a3d5dfbe5a710551adc671f954beb44da64c06b9f5a0fb78c1d1b3f94dd2c0a41829fdef6395da7493d18423b52bac69b26b2773d0c4242d5172722780843911f864959c14c4bfbd83ae4c19602460428f9f111e43fdd3c64f9eed410da10348444e6af25f0f83970fb23f0f5515c68041ad694cb9ce9621dc504b564a4757dc4d8ead6db23a889fea5a7982fdf403e609f51758ad7bb78dc6b69a53e32b808fcfa44b547d7b23fdce81ae90070e8cad630ea8000d8f840af81c6feb308b8a5135db80c2963203e9a13d2c5b4926e68b8893113c309c3bb4cb48f06fb87313d414b9fac19fdaade98e1b396d789381b057a293de05fd96454f4394b122de31d72bde9b39a3c171c4e1a036d7d94b8e59506dd16aa28596513c3a0e6d2618fe8d39671c28f33630745b3e671c872a01035da1624c6516b57226aced46e63c0a5c6f791f188ddc8b0c4637695b1b711a92ee422225f5509d9a53e894c959438fdd81f692b930ffb29bbd9b7418c97ce03263877390f86bdf59b617622d181061e9f146c6c355c7d8c16924f99d9b135174935fbb63b09d06734e41eacdb7c55f561da81126487732cc6ae18a1d8df377f865fde5db3289f0a77359550ff31b7778724449db57483c59a94bdcfb7680476a9a5a38cdac1c1033be8c1f4e6689bc7551a7d01912bc00e804b6e9e6b4e84e096b9ba4f07f0d67a3baea5e2fda3224387e298a144c06d78f26948ee7c88c11c121b4ce69ff2912c93ee7cd96ce4faf7ed6412b3ac238c05c9378dff1051e3a48c16a3daa8597ee0ee83fc0b95e2346f5195a2d8af8df16c9608fee9c1fed1d5ba11f31513431d304a3382f18c9ffce39a7c637caddd67153c18ebec8138b7cfe9e08c9a7844e879424531f47444b1cb48bf2cb4c92756a1c03f1d37d1f6a2a22967e5a719aae38732dd5e37f795591ac91faec146131b354ec31fc0e0f80d02c79cb6f40f42f3ef1d0ec6ad1cb208fd6e56ace109c1e5a82079eb7b6a32d358963ea06f7234221e84b67c716d7e523b502de542fd468b130b9ce5ee +shared_secret: eb7106b4bbabe9796e68f15931ea311dd171561dd000bba4a80cbb13c17e9709 + +# Rho leads to matrix containing zeroes +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = 30fcbc7549ba7ccb22607740c4a4ae9c72a7c9d75f27120e6551a24baa69b07859abfc0a3f81ae50b410cb4b13f4d3174acc7a36b3cac768430678b86030a92506bc3a37bd721320f658bbd2798bf78135c8a29c5c3b7eabd292aa278a0f58620a89c8b502b3cf9b0ed7d3606f612651f28f5d39646b5b6a16cc57b4574b42fbc5dc6b15b92723ede862ee02cddfa891a7b243b4b8ccab0969ad050a35ba05a8d650c2b19a77f8c97b9c15386233cb543063645dcf1c976d79999b5b16e095724e872c9a799246e9c68388573db17fb137a936aa3629e68398851bab14cba8d1c0be8c213453863a470b6e4a640adab4c97375d72422c1e55d6c892fd117999c9b0a000b7a51064505b237055882c3733020fb6375e48d1a07454cc6b2a7c40bba61c10062a9c1957037310aa66a1d560a61d2e2362d912ca5953e8c3a33967b6121b9a888ba87c388bf1b80064b8b75fbd6afc7dbac45d45cb3d9410aa9c56ab369cb4b3ecbc43942d344a3a6785049b78329610a297512bc9a2920bca6aa08e44467572c2d93b513fa83c97b1a29c161c00bac6484659c67e74ead90095d19481fa476bce539459321aa258da0e2579b06cd91e88bdd297447db2f5b836d2c3613d25a8cd00331948a93cfb6bcf5e374f9f623f571b330ca63ce6210c7d229d27256ffa9a32911aeb77024ccaa5145ab493eb29a2e2a134f7bae4c39ab6a162bbac174ac12b1df51bfd02c159eab2dad955ad3a978f85449a9f7b253a74b4c81adbdfc3efd90ca2d7c8b63e574a09bbda6599f98761ff0c1b14ad429512a46e3c1392a800594f95cf3603a760cbcd6c7ba86ec1c9c74c232f31a56f8a3cfd29f05914ad5220bb4dc23900b55ae5607e00022fc0002dc363ed67c5aa49abeed31994e3440253b82dc937ec718273e25293c01305f4c2c47ba47a5558c17fa2f9640034eea6e2f2955189677eca2af91aabe48fc93ad497ed05208d8401d921a5aac231964fc169673289b270ceb9c745ba2b07dd402d3961c2653c27a697087a58a184a9d8b4a34e355063da16bacabaab34c0f6a35ca4500b7e7ec51af92480f726b034b6246295ea017ac5d7586d2b17d074c7ddb3cb5e9597c35692e405a900a535958fa713d0ab6c9466baab305e83597d167783e22b7099bb913d932672954724631225b6b7c1b717388746ed51050d26f4ab89c56e12697a9ae925c5d91194097da004b7925a90cbb849a2e8e250532fabf1c9bcbdb15a5f17395cb93c7e374461c254ca69c3567c01468aa02d3e445a1dcb194303cdc3c580ebabe6d95aae182621dc52e18055050274f024ac6a5180a49dc0fa5033f07295d00b70a5a93be6ac1a412c4217fd177a8c433f4b26cfb14303d42a705984a27c305e1f08da46213da399eb658c14eb03209e601e38887f2c5cb2aa4384a1790ed16a19032cfa3f368a9c1218abba6b0b606baf73d58b4c771baab5481ae971188a4a323352a2b0f0c3e45e808e88b2ab20942c14496abacb28c313f246b807ce73d7b09a612382ad295c74bda7ae1249dcfb534143acd4ac6a68f7573bf256a946395cfe4463e76bf8b0263559b9618a859f46bc3aba5ae34f903038a1df1e02603801be7c53f12a5000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: f28a06a7b862171162d64f9df3702b7336c47af5e15b1ced699164ae57797974e7fb78276e883360e2b51016d72d69164becd785570d9906641b0650c34bd1c556013688dfd9f2858c1a2151465e5ab51aa40c595ef4909b9c0de1eb7d4ae92467721131e5ce21f7365788798d18682a8035e14d2e769ca10589531ec5243e077a60abfae9bd0c03d8ecd7c4717c90137515c764ae0540a99fb2bb4057342eadca362c1b540d97d59408b2131df36a950d0a257eea95796f9230d649961d1cee9bbd30d1b88bb3680075a4c5976efeb95211e184db3665c7e184a912bcbcd3ccaa249c722b89c35d7374256b5490bfce5a449c2ec93793f0426c4655ec82f5b4492d44cef93e55802eb64d3fefe0d3b450c9b72df7bd85997c6c6b94033102091d4829ba10ec59dd5ca88feb328c39748d26bf44c5b5310d814c4cd9a1291a041169b0ad0af9dad279dd80a5f465bdc74c5060c2b226dcc04f8d8c03cc38a4eb1437c8500c9707170bea771fa27343b0efeb485c0c2b0b5fdd2d0e9c450a05b9d7f554031125e336484d235643f429c015dadfe10d050734e2dec4b915c3350277ab2bfc38479dd3f773f6d54a397eb7825a398e415664ec884dcd6d958c5794d53ed9f8bc8d1de0e48a12ba149626bb1bda6710b48e1803347412298db17c224f8279dbcd311a4e67711fa0a8de2f7d4234ec25952a415c96f4d3a92e8b9dd6d37d726375145d0dc68afaa08701ad5af5a9a029cff366e01f6bfc1d63069d8c2b00f9db8f1794d714b36e6e783b6a2fcbed61d16eda97803602bb0211cbf5b8895c2a451407fa4937369f0deb8807759b16d81f215b69a257e207396df441eee6f8069a9637cac41aaf6155dfb45a7402596370faeb1ef9bf633aa5eb96a207cd3ade1765a597d4f277b6f7c33b36e816d2368a19af20df4bcddc15381f2d8f04e4650157ec4cc0943ee080d24bd771bb35c0f8269be961249ff8a5a315c1ec1ed4ffe5a4210b5455f6d367c2df5f0da09d20eba91c6dcf63b215b39dca326fbc4649d7862b56927b41db2217459c23a9a9b9e83d79fd6f34295f3853eee312bfd30ee31d02fe026eb56adb6135fd51a8c9da35c171dcf5c999b1ccd78de1b9574b029cc0a845b196330a3e32309d61294468cd40ac3d51011eec5e1af1e397c0f6d2355e4a5bf69391e7e90825c524d76c688bb8cf495d2dd70d316996d3b0fcc8d1008427413f0498e63d5001e4ec571bc0e68c37947782e48d71feaccadbd1d99888bb6c4f22e9eee0800c09ce8ddee3af45272b4d9a3ff372ff1a7fc3f5fff8fc2eb3cc909fe273eabe09983223dcbe0cdb6641b5c905be7bab920a21ae6f43beacac025fe07ebd3d5065d49dbd0ba5d603f2c534b6533049c62628bbf3002c0da4da81f1e0f4e957565d79c4b1896b6de04393629fb453512f1e1d39b1462ce7f693ab482224dd376b0602dd2fe0ac592d7d0fb92ec5657af2317255ae3f757b01aff57e112c61f53b850d41a0d2964121a33d15db32dab2ac7583136e +shared_secret: a39c5a7a5e9f4aa4a81e5463048c7028d0a2df5491fa678d38161dbd3a08825b + +# Rho leads to matrix containing zeroes +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = 92a59b6806bf4af964b370a7a5c3b2681cac9561bc4f59c0f32151e25ac4b1c80452e7cf2544824ebbc8d33ba3ade7ab1a585a98a51cf8632a02295284f2acb78373b0078081a291477510e7f6569751cde2106f8a064a24ec6a921103b8e5b820410f15e51ec7a49de77799b16c58d0c350f83a5aa63a286220c9ae97c2455780d917b2a7d6738735be61964574805f848c1d0a689060e591d60c7f057c92896a71e5109c07c0aaddd3622b672109664fadc3304118afc71644c2b7844802529f38b9a2212301dc2d2e589e7577ca2454a7fb78bab8165ce4f94cf8f121eec4531afa5fa02251090caa9425aac327af64601fdbf19feba983b0f55a22616048c646cbf08091b315dea5637fc8aed7b4418e09a70dd90ae1004d8162b5d58c24eaf7cfb47b26ffd98c48870c583aa2a5a6b5385b51e5f46236081cf9317c662498cce911b1c736e02503650761fb528d33d6708a4bab573456c2f01a52a024996a80ae0311dd56aa532709be25ac0e9b7862205e300253bd31210974b44477c3d0c62ab02b1f7d8bc910e5ac0ff29af6c66f05c48edd4601edb547ece62f8c4944af201221886da1f36cfd937e98d6a8bb606507c5099a76bc91a38812b822da60afa0d1606cac59b267ad4f47782a882a8415b9cef663ca89240c474ea265adc9f71eab97cd8215c10a32cc45287ed53180e0982fc6aa3db2b0cef48640992a33365454761ac072f765e84a46504304d775929222a6fe7a3c790b48bcc255ff189b5391add20c4581e4c59d09744a56a1941734fd24a81a968322b33da31234cea9387d31a9e9374cc4203a608285de5996b62143aa9a4dfa5a2cb0066d2bc4be6885587a4408bb3103a24b2561729021458b77951c8b8564ef0a08add70c3b7a1afcd3b4d5d3be685ba1439aa66a2393531b86a707576da189ec3885f5756c851abe689024bdc2671d926ca511b7c3b41e03c79c2b3caba27bb31f5a3184e16055c8127ba7b0d87216f81318a0d88f1665996a6b47bc7808daeb799935ac67653c59e23178da6a7cf40f9ca22246ac56db9417e5062d487c1b9ae3664109a9329567bd8c577d8cc0ed65cf1b6887ec3836fd16bff20a7671cc37b0921129b410a5e22b01d3477da0230ee5018a571f7519610c4badf145c5c4f5a29357a17f245f24e3bec0d22937457c38955f0aaabfb4d80bccf57909892e120546868b9b556289cc5594c7cc083e808f66e20d9c855d4cc936db566a4ada6e46b680df8b91898a002d9494a30127855c4cb843a8080205fee96f101b9c06104191d0bf92273fb0cc6f089a202984c0ea1c46d1f3b037b7c9b557af96e89784d990a66a1634888dabe6058d03c8b857605621a0b031a52cf26385a55f72d36555b87c5f2a36fdd4a72820ae20e90025a077e82c20cc7a8ce4f64c12940976d34e49b1200bd2b11b94bc5fd379f88779133a2f6453797f5c34a7b916f4f3bdc8c10de83b08312ab49f34cbca4917311401c7581a3cc02cbfca9b1da3cccba54c1ef7992335b25e282ec7677698c8ce94a1846443b1ea9261ff688f467212977493b27a43aebb681450ad64f31e158a5cb98a9ed43554c807090c22a1f343605bdac089362c0e2bf23a83000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: cbfe4560b3b067abd9cc82c2c40676f02b730c5280fb13645666b719e7d9d5527e029f3d75a3024502b338be060364a41981db3c7f52c59426b43fa835fc2fccd92a26c903adb74de93c2dbdf590996ebf1a9e2003e77cc896e2afce50d15bedf3fbcb65675f125745fcb1804e25ef99b6f792578520e82e599c5e83a500428b191bd93798b73645ffd10c9beb3abf33535bf149a3471f85f55789e3f73b55425185449c60bdf62c01a8fb1936f50db5d436066824b378902a81c5edc3b74b3bac3c58eaf3a993b3b4c1f2a0027cd7156b7127412294214fc7aae635edf26f6e5f8034464abc05f4059de6cabc5e4a8fb83a8c25bc88e7e9bee1a8cf312434410ead60d1b482399422621006ab52127df15f7385d62480bb0fe494843775aba4049ef94cceb78e9dcd3318608d3fff2e75e29769cfd8df0e12a77ba6db5f54d69be74a2b03d62db822a8cad7f20ad4655bfd73c62064d23fe521d37daafcf143f693eab811d28da6d0929be3cdf61a56e487289c02151f11342756bd419553186ce79bb17d5d5754752bcb72349b65cd64b8fc6066656a9cedda0aa9a09f567cccc23e547cc9ad86f636233be7815dea220e29863d830d0ef9b0a13a62a56237e2c6f443e61410253957ce3b0f95dd422012e1b84d32ec17f534f56641e7fe92ed181d830b4d0f3245df6ad891c26bfa116d40460c497d8fbcb6def0ee530ff4422d132726751d724cd84f8dd19e286e0a4d891af0e4a913352b9afecfbaf0210077c5be9ee7f5546700754f7f0dd2c2600f113c747d2a706009a8838a7b2b958324842f8fe3933b8e522d63d772a3bd0d5186342a20ff3a5e7a5728fcbb3ec18d0c90e5fd2430359affbd9648d1ca2400a55a99586807bf18041fe7af6f51120ec366c99fd4994f20e540e31caa71d5f95e60a921cc62db1fe6f9219a7705edc1a7015e7ec126a22f7ff0c9bb4aa3a1126d83ce4987ebbda148fa5b3cc07bd7c78f26699486a3dc690920fd21d75fedc4b631841b634641594fbd98ce2d8376b179da29f925a31589e04c74c4fea00db64289e30ac9e58043955ccabd9515e0c2a88e6b50dabdec8b6f574a6c44f4a0ba4d00478396852263376574706e5f92220492782df64becc8149b24feaf808c85723b7911961051468d38bb94421a18364e2c158035172e9368810d2f68f64499b6b407bf775223a3f345223ea3c1c5f456f48983d994fe4da62d0eca318b130bc8ade488a900b7746633187bf12a598f6f144c55738d4831f0ff3802a6a8f742d7a9f64f95f2401194ffade9def6f73fdc67b386115c9d905719808f41e2035947cde0bbbb44d92e51258822bb4e4493a7a4b0ce64f8620b3c54078985a3dfd4cc2b3b5ec3fd870cd6ae095c39049ad69234966c5f1f70140f88c75f11f03fa25c3d673e5ddc14f79f567bdb29a2fff88e11660327559bd0d2511d21a8ff1957c0beaeb1a26f280b3f1146be891b39ce13010c77b775d11552e59dbfabbb64409553d3da222902d0ac1e78b21677ef +shared_secret: aa50a536b37f28e5f80904269d0555a6172d717433bf9a680e75e98af3209a91 + +# Rho leads to matrix containing zeroes +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = 89f5b871bb5473b52efb4ba5b2a8317c7255790b7e96937f9c95466431a268b0bbb12aa639d418775a56d3595231262c6602be765498dfc0b5cd404a630cbf46e06cb235ca7064a8b7e2471fe34ec3db94c8ea14abf797d5259ea7236391c3b7ddd3c3aa1745cc6857dac8a42693274507985c32bf65535d6644463753c00e18ba859b86b654916c9b14be78a5d11a2fbcf9ba9225566b600b0edb3637a18319027aa494a9631c6958221703579d75b9cb09d21c34409a3d2b342c05bfa4b82b19444612395bafd8ce0bd772b303bdc37c1e57a26c6efca874fb244ce314f63b6635c7af1be1a3205498204505a80138bffa0e79b60f58675965578719813e31b352390ab04376b45344bd8efa65fea466e8c78d45680be0e1381ca5af4cb666749676b2eb1e02d003dee20f4298b720aa6895a80a17f242a983c97a43981122043d444a5af3066816c7a07c7c880b2b2b8958323711e5551c91268b1ecbaa3342418b322766334d5d4691e0111d56e48637c012bd04a9b06524c30752fb7834a2506db7ac7ead1b72cde45dc793cf875085f67a055f6cc0f7b703e29c578d0329dd2a01ff05ce9b1a5a8b993621611fc51356b5d4a55c4a6ca3b5046d7b9e305494c93177c2e78ed1bca1110c7221ccb07ef99b3aec74a8f083ee5a897d55515a5117b1c244c0898738636e577ca59d16cd1c44299d41c311a8728ff38bc476b1027426bea27795396e2bc24e0ca43e17cc8e63bab9463b42bb6812e7b840a9943ff11210aaf11568c85978816bae1457ff364923c846548b5908b2737514c625c8c11a0898924ba682b3c8c30437e8b23477d06d89d39f590c8e2561c698362e99224450217cd0a393ccf870a84159273083008345b2973e98d78089317f7993c299b7c64ed3309b5b6594a236bb8c1c67cac692a2a1746987ed6ca84d5a5a4003b1b1347a9846656a36034d7a148cc8157afa6c915a05a81b1d88568fc3f62b9996062bb99e43447bb22a5b29473a728c929d57b6ff774f5364c9f4145944b979bc549c1d5b0e9e676b2d493f799875762360ab9bb4b322484bb78fa399bcb889c08c94638d95518bb8742bb2a801233adab5bb95903f355126629aa87477b19d3135af8695f3da81df3559d510a7da3cc364939c8b507c99096630601d60999278b731824642c6a018c22c82a60bc9e0203e0b8139dff977c2a903b812a0a6c79c9bf21618b4ca7a836e20346f64483c277750d38b0a204baa8b258db85b3222a5cbbeb599af8ccb19c649ae048d97153b5a7c974738a08c1c653292496287682670cf30197142dcce7fac5694f58bb9e23c9b496f0a939636d6522129038e99179c8cc37697c83e908aee62a1fd266a613853fa12180407a222682b49bb41c9c23c55c63cc7d115da6cb53bc688fa178f632b0b9042631999b6de6165322a817ee3037bd33e6d6024174439119993e1776ccf6862e104019cf739ebe62e0dd10628dab37946c0f1e762ab4bb94fc993cffa89ba245d7e48055c43a8819c4701bcbf44044210c451fd4c5a82231676ac2941278ffd12c686bb21547a1e832a48cf991bca13433d4a55fb485f04546c8a3201dec55d1889942d1928250867ddbf1a9138000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 0802659cbd143028c3d5f499c51d88e361522a2a6c353f8bad088b1f0a6eb02f94458508a80aa98ec29952e405f754a77ea9cbc07ccc41ff66fff5c4664910a6363da480ea8f0de3e7bda007593199494e6be43c713178b791119adcd4fa712e077eb46b39d1bb073ba7f39b56885906fed63a0d6a1be4bfc2d512a17ae327fea8f1f8ddacc103fd8a1131908ac348dfd01372968ce3ed40ae90f747be9294f8e3c356f425dcc5002e9363189969f3316774acfe7982361e6f057a322d667032c5e1b235cb44a7e7be4cf46d3f6b59154ba303abd608e75e55214ac4993683dcfb5f4cf3d99b31b43a054325cb6fc3614b76ba18c6f40ca3a289c6ed338a5ede7677f6a57cc4d1c0ba121feb6cd170419a7c9b85c63233ede2db86d8a52018e2f00ca1ac31157154dbb539cb65090b2eb3a5ddf6195dcd25a2c3c8ada060d2a9fcf43bb1e67ac25dcbe67709f00abc94b9ffcf754fe742addb0b928df78122f0b86a2a3b7db85db4a9596f53048cb0bd2e849b97f99f1dc4deb86d4333a891f1e5e205637a31956cdf6442632618e97b8e2f71f0d97a88908925fd1f19956d34b67b258c49058c9a162626066731ac4c8272682c6816e7a513178ab4468772185d461ea5db42ceeff258be448ae8337f1c8ce44771bb79d6e7736949db9b68307388c7a28781a0b0180bece5e0f21d99309621d6ede5031cd791d591b7296f8fda67af0563598b463e19aed4576c369dac22c7e74ef6c1be036a74e9483bdf534cbfa78455a84568a7a2ec9a43b0be67ea16758cd60c999cd72a8b14dbe544bc142eae6ebe838091602535a127f7c1d6ddc92c07f5852158da2ccc90551edac0f043a951e5c47259001c8fe9ef8a9af5d4e40422dd8b0244468a5a9f0fc62e300f0b80069993cb0b5fd6555c5feb71a9e07fa121c82dca7d9df561b967436dadf5752e9cad9bf587a3e6c18d6fcdb00aa21e6698617ba0166b52f4406b7b184abf053a713e55e4b6d5148651fb29ce1297554a254df7ed1c97c2e30e6afb19289f1e8c94831211af2fcf6e3cdd67a04a65c19ceccf08e80f649b5120f6f6efa2af36c53884ab9a5fb5ce24971b9c907a130605bd996e6a7e4b8fa852d421c5cc46d05148957288a98ede63b556c96b6056496736b1f1832463e5ce4ca602eb3c2e86712cf4d8e44942554d930ebfa9eabaefe29358f23939948616c5ff831f162826732c25c319155808eeca9d7cc5e3325b01bffbecb7520a72b3b71e4c50d959f45b6a79789dce902ad29e3a66373bc1b40a821c6f0e6057c9427f30f3a7cad672542aba0142ac6b371fc3da667a5aaddfecd70986571b49bec52c59eaceac305dde821d248da99058e3a23df496fe51cdcb45501b02cf5338df7fe762990c2a6dcefb23dc1e5a257c14962501ab1e479881ffe5868e00074cb8fafe6477b16530854da6223153680571865a6ebc058e64c11f09236886c736592e73a41de2c093e88348631cf31de6440ae21bcbd045166d3af8539d77f2aa1b202056d23b +shared_secret: 9f4a910d1fcff86f96149e88e28cddd95526ee64c491291e72a2719f97b2beb9 + +# Rho leads to non invertable matrix +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = 947895240c96489219f575bdf7b6305fe7ba4db674f8b57be7d17947b73ba481a51737962bd0ce801254d54bc9d6d5bb184609d844501eb81ad43007fd3513e7e6aabde15bfec8b74ef67be8e4b61b4358d4828914033d65f89915e6c27e5676c98423f0d2508c343e049cb8044a4a77666a3475a52a4c73f38acd49519486e511ee7b8797b35fa8301ba8fb793f6906304842604b5608fba93f3505a765ba5c329289fb4a69347501c686b5d126ddbc58f5b8c5bbf044a1a58926d77ee9a7bb0ffb69f1986cf10719b2379130872b8c6640ab856622eaa08b298adf98115e68615d9627f339c4f08ac67fa464ab5b4824ca3765e33a16f7706ab7c1deb31b262a3e14870ee4bc30a746171f3c998fc73663320ea3475564c25e9fd869f1e3b94ec15ea8f355e6944b874c469e96050b0ca62985912a4b87c4aa5434e4929430b06f220737cabcb771b6714497cb07b319e57165449bc7904201012fac808013836dde3555ff6462a77125a6a0c6f4aa0822006ba5357ffc494602d87866854ec8b646ef5a545430bbf155cb4e9c36ce2c42b6e48fc26296b2c1415cdc8d06c38ec4c37f9e16afd6fa232fa396832a26c7562fd55b80bea977fdb5b7a5f95e221401a932687e535b0213056297391d36b0cb320cb3358e1ff19a2d239a8f5a75cf40a5b4130ac2972c1a5b9e4fe799394c23196805459336deb36367b6b2c81cbbdc56840ee0058ed799c5c735df07a99043201c2427a4699f5ccacd3c86299e458f3783628258677126556c485406d0678d030afb082b88676745189800fd9d6267b557a3936e262baed80ce471997b0147b3556a8f74760e85391300ae4f84c494a09da042422f196dc0ac3a65687d33ba4219788037a14fc4087b585842290593dc853c68d70c410b98117249654c3332685de518a3beebb5469c4d2a624855124025544afad7a26f5234bba21b8e772c0a58572608857336a9ad070b6b01990fa4bf797902d0765c83604ee4767e11e4bf45ab7dbc9ab7efc180789070380badd67b96f0c90cb95a4152144956309cc0ea6771655ef11579dd703caa09c1e314493b758e8a12a8e7dc8336c29a2a9198873b2065caa6c8ec545c03827b39b210544668e9884353791348bc74032d4a7a00396744813baa1a83b0d1139ceb18c75f6cab6b13cb8722647a730f67219096b50375a105a5dbc960142648fca49aba468ad77a031334ae650ba879a859e80901a70fc2d80083c2b0786a589f1b65e0f83527b60d298b8b93a177901b78c61bc6ba296a342a412f1c48250340a0bb5e2b227b42451aead12b196540c9f001907a40bc68821b040607f918d9199693395d4f828de0502c8c601b2a787d15dabdbc764ad9022cbcc87fbc4a84c22840a39cc610905423a5c4211abe722b69ae78803fbc56b5f3671491495ea9a7b067541954650582a1a6358af04419c4d2acd16910a03a2c04a1ac3ac6138f162d61e6258c863427a8937b65c183734b533c4bf0e52c3c06cb5422c2bdd063e405d08bd7a82dc731c2e526a5d19156b19b68db05421c5d099334bba29da2d953164c6cb5c6860de4adbd60525dc96e1d261786d79f09819d680598a900c42c3042e336828a17000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 2a7190d8db048ee0963d59eeb251bed93d3223db4415e438d40fa06cfb65c5dbc9cdc219a8e007434870fa10c8d64f0aa3e5016c67378b670852af5615e23b612f08d0f83d26d4f48e108b6e6a639649d618245055270d7e6f47c48152ce42effa918f74118dfabf87a497a412a0cc464e99d2460e0dcf6a16b99e8f35224894defa85a02ac162e122a4389a7c85668781c6d682422bdff1edcb442a73982c4512111c54545fc8cb65d1fa2ee1ab685cd047aed9085af1144014810959fa49e7c08ef15bb7c97e8306e7a28404c9c26e21b053e9fb6ce86a76b13fc28df94f3719bd55dd281ad1b8289f8c53175838fc406a7d705c4a91a2a0053507fd7176c1efe28bbcac57f555504f5b2ad0a7e8e9d941fc80080f6615130284e428fa18740af5fdfbf848b4c772e38347ea7cad57a72cf02e41b114de1380238a6fdd35d20e1847e92c64a84039fc3564a7ff85ee6c4a7f5b05fc90f95cafe52747b34e3a9ae91b28c659f4941f2c9ad595700c31b0dedb53d6a2d4fead5d754637e89c4aa7175f17882aaf775d850287460e4971dc112c498000f4da174aa4f4f3f3202ea9e119cee357caf9c1fa9623fd1033df981c09a010dc44a71a7d43d55c328eaf205586b225ca998c066623993046eaf93d827a891f1e997fba4008db106e430ec7528286b2b2032d299acf11fd3f8fb57aa2cbb2642412546e09fe139b377ce8f6e1890be4a23f50de04b5c93b701a8679ea102f90f4766d603a164aeb7270ca85faba085f15eabbe1c89ff2edd4b50227503cb31c34f645323fd38c7bffec6a825621579b565339624b434abc090ccc4c1227bc63d4bc1a6e2535cb5b299ef03061f9bff77052fd23984d7d6f63d986cf310474feaf338791b158c542a361c9c222f4012d4981247f4cfcdc3a2cdbbeebf9aecfb97e29f9c328be170d5da3539b277d3f4295c6ed3712627b5176b7ad1d2aed1445ef2e47e46d251b74b906f6dc3c3d9f54968245845f2fcb33522659508bf54e6358dd3cc43c2e097b880371c6cae243b11f36f8c34ade6ff113da5ea0868c4f8a5d0eafa3fd5ac8f5bfe776f5f72791d654fd845d0ee6c9d28fd835dba5c367af22ef2232526bbef604c163417542bf6fb768ce2c29000ec626cd56acd6f3dbd18b5485b710e4456f2a01c25bc0af5aa330a5f9d45bdfe985710351c167556acbe0fd0b7bddbd3a86dcc7d7ad63130f33b651afc897a7fb2a724c205867c4dbc86d53e68b1679626c750fe5335853a3489821e52402d0b1ed47c69992179c663ecd914e77b0c94e870ba17929d53e567d444e592e580b23c160933fe3024a49fa8656236d3917192c44b0c5a30d79a121ff12411dd6b3d443a5490276dd379fa9e3227b1756981b1cc0ce44fbb939de802d16ef81bbb98ad6add920c42d908c72b7abfd6e946dc16598272be95c72a05658070a211801b6ba7b04248898272e6a348b26e93207185c2d57600493a313ad162561da704b75b52388d84b240993fb3a4900a2951bd380589fcb +shared_secret: eb34705a8743c042134c4f17ed6fe334ee260a7e77223af5bf77788ddbe5cac6 + +# Rho leads to non invertable matrix +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 33e5bf55f1b014715eeb1340e17172a3414c573732bed83d3318b40e32a5f4fb064a8988dba93c5f1aa8249b1d0d0393ec765cae519961c109f607306b8322125b0eb6bc000a061b2222b58faa86fa706e27803b02b79aa4e9b26e37130cf14b903a70bf042f4d72c091297179f3a1567b1cd98bcc4be1c38a75139df8c422769289fa73562a8429e88dc60571e933b22d8a9471cb7bc11a6b74e0b62643574f91413e9913229584dc8936016cc5f5560a044488183a53822c77f5b26ff9f2c289e7c88795301e095efab2b84f90350524549c855dd9928dd735a0da461450a31ee2e3b285698b5049000b58344e393a33ec7b114acbb6c69ee40b62b986a7a70a6bda64ac03423517360df820cc2f5a0e279b30fc77a41b220d6ee3ccdd4802ca3447d5065dbcbccc0b3a79e932c1225acc8c02c906c49586037e6a16c5b6c64e6e6c338937ca94c77d9cdab427a258804768e739ba637725b7f98ec064b645e23710d50e1a563719b190d8127e8d8557165a7e61770008621b211c1ad9f004a97556d41511d2a8a290490a0f6b289d3c35cb8830f5f6c4d60b9cbda14b50677c210b6539229d44c7376159c4d4f4b7e1557e1a25a51f6456bbb983177599f7f1ced0b15c751b1046a1015b4acaf53c8e43c7ae7a14202a54a7e3037027fc5e8736a4d7d9145a56cf65b862f03b3a9848c8c2704295f328a6cc83cb17774cf20f9db1162fe604c77100ece175ac3a9f3f297c72b7a3efda073fb6397e0aa8fe60c9e5d26281699c911632d055434ef4792a87c96d17228611828c0282ac82abc3041fc902c09a1c918fe20a0506788a31cd01583847373db827b87b7c29c519ae2071185910b4f586be80488ee85a31c63857fe02a11bb270337b6b92a32103197f260b0929e289f9c9308056a7539394c0071df82591428bb8a2b734db430074f9749da3bcfc46163c3b5f31430e4556b91efc1f62aa912361209746909eca91b40ccc815c1274762b9c697cb7659dd200a29a641db2404b954a1c17994d5b3a49af157f7d645df88863f145734d7262cbf8a640d2b31e601124717c6f456db325b1b4b344bf3a922f624df598756f8a2c2acb0c4e62140ffa4cacf4c6e03828ec903acdecada6d0074b2364057584b3f0530bb587666a88d2e354ba68bee404227d7a963d8bab4c7545b95a984d117ab3f576fb1ba4e912b468889762009eeb83949d39613ae7054d9c76ea556ee4a8286bb489e4da9e4bda4db0714104da37fe1777adb632c57020164331bc29abeb356344081e3907c467657ea53a1111d45ee2f416f945396e6c63df328575808640ac5b1d5a711a5523cb7a18263224ae615840f9c448274409369b2d66b135e57648f07333fa326045681dd20cd9bac300c834ff582c1be9223f427bfb13731b27175c1028f55736ea50a7adbc819c742c22328363632f1917cf5c89441b841c3532693c3718a1fb693b28c103ca3ab9690502965f907b82cfdb4e0fa2884ba7ce8b0768ad36a32ff60b4db45edf64a5d02018836a8230c6a2f8a037b72261f4436b987066bbc90f65f2c940635cdbf1b4c5a853a1113c86010bb7b558f9a773cab0434399874e01afe167908045c34d3f452196000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 0b52af120747b8cc02ce11b70f30e159c9f3028f0b44757f23deb9b62ec75c61d64dcc774729b5ed59c23cc809a88d075021e7799b50024bd9ebdd3ccf710f17dfa89423d20542a44a97ab3bda0bc0825f76f8f481a52e66c344c024d0350e4d28b49bed05dfa166d8a5ec175e43a2a535abc6dc4decc1cb9afd9f05634d5054fd7b4c17dac997a70798c5c712b276e56e2af4543f9b9e5ce362d2f5f7c2f5af150c9782af88ea561161a6e5892c6a7d22a367dd461971cd801e9c5f2e2fdfa70f39550d06157e66e0806143fa56d5a9667e038d0c818b2be48de10408c67c948ec5cd1c543fc92d76fe299af65f94edd82f0be2ab3cca31272592549699555dc08e1de7097e20b83fe3eced16446d90f79ab46ab702804cb3a0358c927b7d126799f52c47e613a2730680713e8056135a26bafdd8a9e38d8c30e628a090878037da0afd82b9fe89a601d3641b6514b0450e3792fbc60d3e78c7316301b2e3dad4422c85b4afb1d1af20de6938a1d8aa2625b637ebcec8754ab5b66aed8b13b669c81f986d158cdd9bc82db0eaff8c80895d9289e30f0595131bb9aa1e77fbba451c1988117e2ce8b4e3cfa6f0b5c00d894753a9c93d269d477b1c86fbfaafb1dc083c7ecf3c688b36b4107a2c800f17d14acaaf795fe9ff913f702d188a204a26a3c301e44a84c5e32e9c8efb7236943849dc442bba5552fb34dd7e7c486959fdc8df5d380b199a9d637c1d11091406b3e3d2ab587794eafef76f6302c1356813109acf1dbc7380f6eb082a2e5cd4e53f93dc277372230997a0858229f9ffec2691d39f748dcf1c911f8d49d281bb9299582e1dabcac1119a7bed289a1d5ca9b471542be7e5bae58d275061eed3ab92dca9e444061d641f3e128d9d44757b350bcf673de1165abf6e10f87d101562eb6585baea22583fd8193da19f15bd88ee614523305e2d996b04db09aa3ddb422c7b9dfe93237e3c85043469916763bd58132835795d4c6d01682fbd877d132589ff21de3e4882a927971ddab6e2b31a01f3c32ea60f506bab44f8ae74cbd33e551cd7d52791155f390b409f169f2fb2166719265c6d4fab72abdfaf530842ca86e6f2d6a04ff0c96335ea20564f6328f4a10caa1b9ae6a2873a966e2d2ad2819f3e398a493d878bfea76b4372d2b24b93edc9f1e2438ac6f3fcc1944ab99c3729c3526bf1069b866f7b630c5b6ba7e10696326bc0096aca3a6e526e484b8161716b7377f9c5ac7401a850374c3adc7057d0f783eed9c98a3004ccd529a5f0846bb6cecf98c55470a7b55d3c1be06cbe3a3fba17f118dfd68aecd0ba783cc7489b7ea3bb8fac98e70c1e8f047deefc3760dbcf6571305eb1cc3f88ae3fba08359217ba391c1990d33b89174a5e896d655aa36909a4fb65495651ce122870b5e870edbc4b0dc9d72dfdb873cb219d1d7b5143993c01ab6929baf37ae6de2d920eeb333eb55a0a32a1a9ed2d4f29f9dca34969b268a9f26aa6c0d8378aadb5f206beb4f607f308ab64a9b1669c87fb74a55f +shared_secret: 4ef9b4bb13acabdc211c3e0860f1b2dbb4ad467478f8fee194ac57a869a4a8cd + +# Rho leads to non invertable matrix +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = e1b4c439d04b5c35913283bdfad965fd4749a9eacd65d1182e83b448bc3d8f25b525d57db01394cd2b99fcbb6b3140c46c9685916cb4d572a78f59af75342188156fe6b991a7780ad5366104630700d585a6b93ef15a8025b8a32c57681ffa88c1850fca4b65928970549aa668477547b30afea83bd3cb6efa038e451688d6932d342336fa074565775680790404770a520b0845a7a09caa5ab20326c8db671541305ef9264e0074505804ca2b7bce041b69c20d0c67a50bb46e57cc920d4405e4960ed1b20a14fc8fde1626f7607a77cbb9e7835f1407b83ef53c66e3145d764cd297badba3c290957180f650844c31feba01ed2631cad26057fb610f302636500e3337b073e33b50fa647eda24425021c5c1c8eec6163ddbb6419aa3be57bffe37cca885b8456652f7c00ea65c78d2db431a28883577679485611a9cb77f95339436787f1369110203ecb1859fe49662bbae39b6bf736266e1670940780db319c969570c719499ef871e87ab61cf435114551295ea4fba96ca5939ace7a9b712635c09667a2ca87a241380edf030abb8290d1856b520aa75e52fcd3316ecc31a8c71136480c41e7c6074207be522155d66a70d73c913a62fc4f77202203c3fb58171706d55455adcf115314b71ae00745764877d44321df625916a5eb5a39bc915a7adb5c16835817ba9438d8772273038abfc29104909da051dc542719d19007a786189e2cc9ed9268486068a1a531c108659ba37383a9585440dff07116f4b5fe9b1a2dd73320b2051216009a498c2c64b59aa539244e487464475918075ee807ee8bc9bd413af46f80717f31365653b1173693f1c5992b45770c515323c74296a0ef3e8b52be344f1000f22971ac19233f25a4c0df631a2d2b14fb5cb85d6ba9c55a5dcf42be1f18f9be91134a64c57a723f02a13d2e4029d6baa6d0aac1dd5cd6d483c3b7bcfe7f69202d321d4423962a304dafb930cca0671eb6ce7a0754866827a94af22b26985e264af1278cf481193390a2e870b413884c3da9928caa8ea5595a4c4aa2d4a6f3a9956e87c87ce699f04640d2d699a4ff314abf653674b351c69367a7c6041b87aaf8a47ce07857244b71c16112db463dc3239c3908bbf715b86a2b7edec09080c1840a2687c4b57854238a2555d9d2469e798cfdbc6ca06470bbe3659e1949df3f8a6ae42822c8702271029689b4ae1573b66f5541177ac5e05118d4364f43c79d5d2cde2567811617b06965cae7491aff33d5fb4bc24fb8a69f4c0c651cd53084938a56e792c29d941abfd448a38830f9b482b26fc0f5f8a25a2c570c51a62e605cac0a0b19d3b3d5478bc879896a3e01d5e6a97a8cc876bc96ff3040a81c87afea285a35b3375d5b8f95665c1bc6896e46b09d4a5b13a48eda54cfb168a74349887a93ed9e5a1f40a5e37e2a97823a2aa7c5cb028a3e30b19d4b94857090a3e8276ffd45eac0240dde5a80f46ae14f184fbc29804726ca50462ee2583cb92953b22839a27aaac963013b13c1d1847130c96371202b8027f3df427b03119e5e57284f4751ee76cffe81f315932174560dcb211dfa13ee9d242dff22934550227ac0f59698bb700b97bcc95fec45cc65b12e25663059565330c000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: d421883017a28b1b0fb5cbd2e19168a0405633601a3ca939f5660877863828dcd366e6602ebc6b7410fdbdbb148fd9d9b5f803467e0bf26a4b3c84f2f90aed4f64d60ba2862eeecd9bda7f4ddd0c031c231f5727a9681845774573711afe23605c2aa64a89753f8aa0c4b51209c3117f111b82e70aa6c55826e12be53216d299b1ff18d2fc2c8c207131e462d614a92171bfd0855a2319ed6a4812d6385a3786a39b489405fded21cf7a9e5d581900c3f04a75be593d4ef5955fd7419813f65c3d672a8be0cf12b42f19d3775a489090cd8cbd07f2f5ea5d4895e15c53737f43dc934d2252873554ba8f50bbbc4a6964c746c34541eff210290c3b128129b2f8d7e033ea6c945d666c4baf45883fc724da572265bea46d6036f029a7d25b9adcb0e88f290c553378a940bd0425caf60374cfbc4dfc54879b95f7ae4331a8789c2086dc4ade9c580bb8eb2fd07f3170cc5306136d715600e05499fe6940aac16f82759065a153bdaf51335affd893c296bdfad1ba11fe4b10b49c2b2bb54444b613d6b5c4fcf458ccec4ae711f840c5bf7c75e4f808e5da7d112b735345d7b7cda8f6aa8489fda2790d096dcb9f8733c7f589ed047e9a56e4dc0c5adea121966be8a1215eda38db95efe2ffd6356209fabedcdf2ea4cad4b0b180ea2522d98cae0f09f793f037dbedd5f03d12db9016bfd79e07726cb575981da69f88a8aa5d104e90ea53ab57fe27b291bedc7acd5aa4449053a7ac8012fcf9899bfc423c0018e539321a986d4011f9beea70ca0e984026277290bd9373da79389341c90f1ea64de20a5415dfa16b7857df261e68d515c497dae0a6fb5b21224f0b2a3125dc3fee9395316d4f269154f528f5bf3ade728f8cb9d27147751304ad1239b955c911ef2f61f0c193365ed6305d4c0bd97c9b2f70e3f5f60fb9cda8128bd7cd6e6aeb1e7909881a6a35d34df4224b0db7631df1a497a0dd699a086aa8efaeef0e3cb582a71deabab97bfb77fcfc2067652311604d56ef3999c34b72793323607c59febf9b41816d03a4db06afd9c19444abf09e1126a5cb19842c9316718d3cfc48e52a0181521008cb90607a18548c6521520d887935c0d789942ed48e68c28905b267c9493e33004056ca159b823aa7e42d9b5104ccf165b0a8e8dc19a3db59b415049b1d82aab62bc6f2adfec2ae128c8b79c0c9d750ebd0517b6ed61f8345aea60c04968896da13f84224fd92d9c56862adb73c0d5c3ee8fff1c05a4586446f0a74ebf39898adec7f07a7ba97c138530403f2523d85931e406d476c8569e0877f73aa37cf41f0448dd2ebc89556e79bc9a081e7f34586cd7cf2f960ce8156a3e500e63fc9d652f9af37bcc36117449b06f67caccd7b9f94782d84791990497761d503d07fbb50e1891dad302f20b16bad86e1e31f7c03a9172a6f079e244314551ca5772d43ae75b4c3e44aa362f9a950c7007a7e3d9758f8ba2664add4e37cfbede8066068b449a100db9e35386da603f7abad9fc85d32090ddbff01052c1601 +shared_secret: 96b7761b785b1423456e7b84f37464eac941840ce73cb0e5903dda9c4c43a296 + +# Rho leads to non invertable matrix +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = a58974c8174cf998b681737830ab9132c2b925ba0a9dd7573197a72997cfc9fcb9b7fb8f7f7b881b280e43b1719fca705a209516981c2e88a617625beba7acc5a2335aa57daebb02869339b907cdcd2c4aae01a57a58702fd0883732c9b334bdc6a9bd8340bd83d5b0cef4ab2da156ba283005111360695be97576dc880d2e2a32a9e666070666e4f46b14f2a52d7006c94803ddd872b02bb31ca08901c42834d95a79fab04d8c08bb2bbb0348261f8426cc16720fa188458a4224b92dbfa067c3b518cd74a639119555844df56c0cf9023259d97fb326c45067c18adab10a881fbd4354f348139613b8f5e911b969aad197cfbbf4c1e24616b8f0b87e4206e2c46201b99da006a3c8a704ffe6ae36e3a7c07373dca58e1aab2bb6cb62a3ea5a248450df074dee89511e837b66b409061abdca119d00047252668cab621d0ab82518c66d41d951af924cb6b0189f9654a4a7b58359bde2e5ad4ef729e3d35ce95a589b237f03d10604002debb248e80a93957830c2a06d483c9f062c59b7313cfff647a80834809a3f6198658f792ecf9cb679a53ed41519b5b91015005cebe8b343d16928b9480daa3b025c68c8e9cdb7276bd588c8af8296eaba9a6ff44ff257a4542077e70a73a959738a48c007544d7fab9e87d25b04a01d27a8473ce83a6f91b3c8c9cd0493c35aa01fb38613f5d1932ee81e8622ae09f30cf5394e6ecc849fa881a555a1c4a7931e91100b7b26797b643a3a5773648609b5013f565ec161b657c653de89266a34aa6d80b35450bcafda7fbf1c0aacd8647508bba9e9b2ae6675149a9e042b6378c76335857f0bdc2b2a93c2e23b6f89d743415b71371c9e61f4590254508da401b0d8789b66c6abf2bc31a8560f988586301f54d6123dd8a4e7a41e9246ce3cabb721db810ec54ce806be4b203b8ff6574b397f8e933d930c23f6a128f1c17f017c2c2b22bbf52b4741a8c2198b6a2aac6836c09a3dd1115074249e26180c850567c33fa55b9a23fa365cb8c425eb5523dab4243b3cfe3a7fa7e75aad3b206a32a11282774745bc96c566b05562a6696efc789fe8989a6fc218011c4cbf15b960401b4e4937c752aeda715ee0e39225494db1a0acd61c704a62bf903cb6219951fb568934f2bab9595895390eb5dc3ae6e32390a942875826b453b42bd32045c5cd917a01e283812ec0274de627c1061a8208c7ea0a4b5d71004c77419fd080e662051eb2692d7676c5f319f728169db707e4b9c538f9c7f3d823a53199fc9a9f27f8a183d62247529ad152cffae14bb2d33e15dc669df777ec06600723a7da656f7d4463f0694e46649fdfa1446306377541aaa7e3948b83b7b39522e0eccf544859f1459375db295a879f97755b40e514f6a22d90f20f22674cd071a5454275af02c461152f79b8a247f69a56aabd6a4275c9757ef708ba492892473ca461730bc069a5ed103eeeb21ab5d5b96e868f5b64bb5f18174710bed8108742c25f6fa5b598a81c8a509454d8b6b3744a0e85a64ed9c5855c3014853d4836565419adc67b6566968c2d82bc4bdc424737894f48c19f60079df447b82573c2d28ac4bb29c9272580776b43d21474e52e09ac2255b95e3b3c7ff02442dc47000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 2363ea527c82054080a7e6dbfd16d3e96e07463bc44815397c970be5db84d68b72bce2772578c82f916b29fa0ad068e9c383bde469fefce18c63557db19ce93f1c302a9fa6d1d39faf7b4b5774b045f825ef9139cf113b531a12ce15c7c24393092eb886df18e295acfbcad1ad8edb5d20be0a412afa1857e722a20c2740d1a3ba0b101e7ce331933057f0b1cc19161344c87340f2b78510dd754395e6368e222bfd9413df061a3be812022ce2da08bc4de3bf6e657a3a80200e51f82fb098ba9770178dfded93c3772c4aa610648e7b5b330ea921c1547cae8d2a0621afbaeea92f43435bb40020776f529a7754e7f318f9968bb74057f371eb11013daee9cf8128046e492517b16ec8722d993b345fb0d0c7eb615d1e558acbb39f74e08572bd8ea2503a319767899889196a0a42f26e7434e359594a87f0fdd68149028bbe8bd26e3b912e95776884e83dcb3da50659c54c7f49832996faa3de449cb61715b81f75887529c7e8e98f39eaf3af683b5fbb150f7dea6da5867e0aa9b2ab42ba7ba42fcfdcb076690255d5ea8260c7b106738a63e887fc6993ad0bc93d1e6e9ef893981ae0540200ca393ecb5f7b90394dbf15bd33afdfa499199eb2c3ccd93a0e54fc2211b705640e87475c24e5524bfd5a80fa0ce6cf9db8d263cc203e52e6bc5891755331cff855b04c98fae0b416c61a8e38f669619a44b455752ddcc94fe1bb5608ace3029ffdf881e09c49cd7a1e397efd9f47c2c598c624cab914ead90bc50bbfc5c1aaf42362c48d4c2feb42f95057502f30a1a9d9baf49199d05c89db7cff332c24c7cdac1c3317bb884c4ab041580d3c50a68d3444ea0046850473ebc5bccbbac4f94de8dcd7453ee15e001242214cd26548bbbbb0681e4169223a7e0fead1299152476e9eb86f2a84c08d5308c61b9af960374f407e0d49af22d871a7fa048aa386fa83bdcda6bf1fd27996d597802595cb0d85360ad1717b9900b3f6d68ec680693de41eea73607de43668e55491b9e2670deac0ea38fc3218fb4797ec037b5c5075f7a65bb958a8eb551de7c0886f8d5056c1711cdf2c705be5d879d4dd45aeb3d514b09864333b6c8393fb37c4585018c8ed0d952df661c4808baf4ee3b2a93248e0ce1ba65b04d2ba5e520eb2520039f76c637749751e504acc792dde698b04a4b0b9e2f90c98ba8beda3c1a26c6941e509bed0d4b44809e27c982d1373f89a6a5cc60c3e4042f6182fe28d2d1a034f21ba4a007fad040aa2e0762adb6bbb92a218d3d18919714acc77ee1c281de78743337fe9a0d788d9993b91808f7aae1e88193f6fe8422c0876d225d724bbe5b3967f0fb2c2e4e2aa98fff8a8d82be444b840294f51fbe7972dc8b4cdb701b733b465002c1e49fbdede6f4137a2d4d12235f3f9e7726ca176e4229ebf382de8210a68280ad795199ff82740c5ace14acd100cd39c29a28bdc49a8ae8393c832416f52dcae1f3c24c5a9afa613f8d2df09eccfa1194f39d69cebaa778572f42b1d8537c9364cd165f05f +shared_secret: e02c8542d46fcd5031c0efe0464fab43d07337181fbc4ab3d58bb7bda0cfd7bc + +# Rho leads to non invertable matrix +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = 82600ec863a0a0831fc05c3ce85c3ee9417f6c993412227e7be59aacf03cd9231c2e0aa9020c2d17510574e2a1e89a9905722a13b23d3e8561fe37b034916f0bf61aafa00bdfb1321f798a8b0c61062b9835f389c33b18169a156c11917d8949e9f1c8ca2bc0e3803674436f62798295982b6b3933b09378cb837c5ad440cda657c68c76806b96dfa865e0352bd5290b91a42fc74b1e47033942b07632093b5e717b9b90120ef389b8b2c4c7bb324807251b26c779327f4b776644a55e17e4a67c1a3ac2457636a057cb29329dd0b5d0f3295d128394259649e5b735ab80b3738495a170dc9880be07ad06c2a60cb7a5791295e9c03f4ab96fd287097df52942352cc31c9ff50683ade3c0a4015216b28b0b695b2cb62010aa19dfaac2ad2231dce54aeaf75197db12c291568d5a9a8147280cd956d9d67f7bac1296025801f36eeae79a2f71065f01759f68b30d521333baa96a998dd1946f90380174450692fcbc0e56a31fa238cce178a8b50477831f0b203da58943af694caed2cd3b2a6f58ab3ada92cc5a1860e0f9845f5639a1f555a7d1045d5a07b428b5f2db893dd3a80936759b73642aca1ec7b1535eaa36dd695707b89a9062ca107178673ab34d31cca4944642babd3e79045d4bce48c8b7d46c522291a6e81330f1071258219b4245cd5e381686cab8a9e10120e625516c1299c184066a3bf60a1dc8535398c43a8deb7546000ece3a429003982940bef6870be1585c58423f419a042c30289c80b6f5624458ca8da2713c564282aaba77670c73be5c7bf0e58d1948beea9a97750a06bfe472d721bfa1e54b23a35cd5672b4e84677179579a29723d5003e7a44a8e691cdb015f4ad123d13a8da615a3f52763d334a6a07258ff127e15ab23b0f29e3b4061914b8349056d45f06886051d6ed5a6974bc4d38a7282b837f18082759530c20689f838831a937b7ee74d4ec64b57693c72a778dbf73ebaac041c4b846f78585a81971289bd51a3359035ab12222a3af7bbed6a64a856601af10efd0b23e3d06df7d243b04ca8c07a0e2d0b883c997d74fac67957469189a1ac592b83669f2f638e0976c373fa354045799824bfcf9c45cd408343239ed168b8e25b831d2c200be6303e93103a14549ca30d9f8a0e4b976870801d6bb50d2ef8914371414bfaa56e724582d14879634bea15ac530983a996a31fc9578d88cb242b63057802e7bab2cf2981fc2a9aea2cb173b873e1569a73356cef7476b9fc3a0b18cd978011dcd8b6e0b3c0769069dd94a6f39c940f6a5764d8671208271820c444d1c2ade4043677b1a9d7cc04871981838284c85850d416b7d2825ae95f79bb95f6262bea8a37e240bb02d6ca8fb03ef2d221ee818454222c4d4b998cf586d3434024b304b6ca68b478c773955f2933921e882f15c3ae726547f9a019de89b8335ca3e7f74fadb8ade6c061106c335e85311dd3208724381e28cf3636ba7f784da2718e857467e70a6682e5891473002e176adb848a96b26641e89463b488c616ba0cd4206583804ef8ad9ce3668129157077922bf00999b711af0973ae169ce7f81157d298fe033a7d547cd5b617cfb908a8db40cce2022578006549c05c594a8b13ec66bf000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 4cbe8e1ceb4f29a5a28a605625ff03b2ab4a82f81154af1731b0b930c6bb04af7bff3d7c2058c5788b389cd258851b6d3a17b9667d12a8fa61ba7c98b573dbc9cedc3e03a8f53b96214a4e1dd1d38f321d7e3851531246fcc1a2a1f937a101eace805aff3877438dee254bb7bb8b7ef71f2a202d36f532f2bb37f236021662f7eb0473be940f1b63f74276ac8c8fc8e92f805119e240b1df416dbb599a1a6055eef456d7ddc920fdf2277c6b72ed23e3b4b77d604974e7c10290214ed8aa9d592c2f0acee64a5a06ae2d95cca227c23e48abec08b22d9ee7ad35b0fa799b4b5f4cc0effada3f23fbf30a50ebef37ef6f30f6aeba700c6b8d10bf3141dc87e8c118d13bf23c9fcc8aa7473d2748d7dcd88fe5c2311d69ea29c6f5beac3b0d47fb5563b3c57277ec69e6fc2b91342e79b70d976c4359c00e0d08733701690dedd6f93a2fc751fcb020407d9d53ac454fcc8e0204da5e9e5e5f48cd7f3d787a95cb37e01f9bf9ee87e174e4367a0ce9f4aaae125a631d55e13e3cef3e6913f3203b9239a9ab31f297b6aeb5e0044d05fe3f620d3494a95b19bac5c782321651443716ee815ddb9bde2fd4cd0f274feb208dcf50e3a8f68971b69e847e21b948394bae8be37dfd645006a27aae0c4301a0801adf533e5229c6af3d9f9196e38869f68f71ecf720e837062e13ff754c72d101ee202b023c105765db30e5c51c06679b8cd504b83525a3e4a277eae5b2e6d59156cbe11df8792c3563c74076f93357917a1855943db2d68d89dfd53041143014142361d1617aedb76b1d536ba5b3ec8bd008e8d6e709565e02fb4eaca108623468071c9efd3de94d0a380f7b84788c7d17a5ff7b158531cd2fdd72181dd98f2c03aa872cb429e6f2f5474f27f6533d0a24f8a78178f280d9232e3215d89978ed0e0e00cb9b90ae09132bf14d9e0bb23e3f6c1a2d3139d912fe0b2dad2adf2a4a06f392db783167a332db072790324f9fffeafb3efa8547186ff8c198fd47fe91f0c2d513a91cbf36dff2ee65234b9ec53412f44c32d3bd856478507d293761cf61b9f9ab82a1c54d9952124069865b94258d29a2752a3c518f2c8407e022e66577281aa704fe6628282896ce6b7e8d642c7193f6cba50e8ac0b2ef48992649dc8180632a4f9b393b6ec5c0ff2ef5e33d5550c445ae9e60ffdf7adaf9375d3111c9d896d8a4673cb25ec0d05d2c8564137998e43f7dd51f7b7a438d1c09e02e6caf1aeeec2819ee801992b3326d45739263b66d5d7e483c6fc00bcf69b969421844a0042038907be2e853d965f26f3f5d543230cbcfcd7a5f3ddcaea581869cbac5828be28c4bf58c45f539e6681091f9a5699c9cab2f17f0862cf65454513977854339a81aad65fa1a631a4ac1d9275bbf46b11d8b62c9417bb2f5c30502665ebae8784f281cddb3dc0ce1e76d61f8420aee5419242dd5e09949d18d3fa1a81307b51b6b8a30473076e8041f46847b91278ce78bba4e7bdb2b1aecc7d3e3bf6c01e61ff59d9e1e9eb7ff7393d9005dd6 +shared_secret: e572300d1bb28e65f38527a8007b312961b7c6cb204572fa0c7f53531c6c98f6 + +# Rho leads to non invertable matrix +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = f8111cd446cb2c44753cf29cacd39a7c9cc96af28545c40a6cc64f5974810ae45a97380302375de7c95b44318815776f80397c4608cbc22086e9fc06fed87c6c780ead85a8d5a82f0fc2ac28366f229566cfdcbd0c65ab3c112b70a908a85660547719e8304d513912a215acd011918cba5423e9094ccca3ef073832c3b81863242c864a90f1bd9e6359d9c72dbed85e76a926f6a84cc4a4839e5266aa9020f445ae1062b3751a438fec3dd862a8d7831db1c84fdb9102872b2c55b28e6f00623e2a971eb4982842392c10bc3e786a5ef5be5a69903728196c028a0ae20fa5921773f35c296770c8cc63a48844022a32e6d928ef042e0537876d3b276ad42ee7585b8dd38cfb58492e28488b0488330b935ee8701bf05372abbf4bdb1ab7da67367ccd8df4469c13355992a036d0a0eef51045a9b40ddc04c492c784a945e99c2a8ca52b99734e3116caaf2330ff4195bc2776ff8644d4d510f1d7cea4682b1533b4c567a1f0d052ce387237b92fd14246adf34ab4455f97f579d3e746bd97313ce10e4a331bdc8a1974481289000b39baacf9c757dcc357b2ab4756309849881289d66f7692a084dbc9b92b671ef115b979b26a8873480977ee621faf6b6a506b2fc2570ec44a9d5eda9d46f2437749367eda6af411ab661162ce8809e2c6999cf26ba5a37fcfc009f60b7dd857bfec86a3fe095df844388c31ab44c26b090c4afe58052a80bb39e614eca3c07e7871811b19b45224e7db6cd077aa4dd366b6755623453fd29b42af2732db855e0e829a9b51714f362b083bacc9e68eaa8507b0127b40227b9de014dcbb93b8db567343c1c1807d5f81b64031c364210531008976aa1daa866579aab9a6e1baa049624487cabf044c0e576902373ab2c0ce00f22a0bb61b38f98f4bbb5bb4018f6ff8a815d4338447bd133a610ebb10365276b2d0a473281c64e8c3677741a1a0c360a8797a3a4dfa06ca5bf50658600de1175822e27f187b6cf7198b8427750246b8db6653e448a16b21ab2e343ed4d55287341155a7b1b9d92cfadc26e138c3e784c03bcb6e36a1acd0e0ae04d78cef528b9636ab4fbbbdec0b7ec5e3c94c808f90646b7f833867b654fd9415d4b971e67920432103d00928f0f3af9274bbac2c5a7bd7cb27d2b1318b840b899257065026a576931735600698e2d49b136c641e080e034544325780fd683ded1caa11052fd89b5d18869f8a8024d4657e4870ced241974d2c8f6194886b509bacd5ad2ecb8cb2850bf55200d2226602a640e8812eb26a4cc0a960979ccdadc5b31d98cc59283df09a6c2d5b7f6ab703a6305709d10cd968826c6a019a264210c699030804db419c5ba4460b25510cb43e16e36eba7b74449612eb73662c79ba481816598045f601be5da995f02229d5d130f6688a57585c959c69cab00e462512e6129afc9bbc5845c9714a3cf14a1061b46139c79e02849b6114b80a75828cc946a5f00096a4a43d065ddd5897f3756d0bd208b4f8685d2a165442c132a74f78da6370422d0b01b812c009da680ae91ca0fc56bdfa36a32a6308c8eb32ccd23ed3eac3c9a029186a73c8d63e8fc92a5dd42905198405c76a2ad92f9a21a2b62b11e8831b4062425c62000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: fa75f5533fef3b994435bcbd3d2080030cf8b04d5773762f1ca6fbce54d86af4ec2f36fac7b3f249f4bc11cb376b23e70a7ebd39da39d9377ee63a7c02105ff9538d6752482378b4140266f13faf8c7ee695dad10b590b40ed5627ac417e8399dd398cd7413587f7d5c530801c6c3d7a33838cd42ab4d4d47d263f4e1366c539319faa0bbe179e069a4880f928f7f5107298b1bc2bf75e6f9d135cd9c96e8fd1483e3f9211bb73fbb5623b9ce1154cbe01797b4d69b9940c20d4fc5b1d1e103a9fde78aa11310e9ec3cf57bc2f41e3296c42991e03b19938e2c57efe6579c192b66077b4da4a7bffb383d23d7315ee81794f2c4f74c4349904190a73eeb1eebe03ea314f708f9f103b2862f8a4a05aa8aaef91818e6deba42b60a9957e5261e01f7c68efca04eb61fa7ff86996b69a2d7e293a6407004bebe90bb481daf560e446338ed6ba259e1d0910ceed2afc7dbb520629e8cd92f1759803bf0a598ae25254f054c4551009f9f331d24c9e443b3942ce662b28c5dd5a6f082ed5aa2725ac7a9e3abc6e57d9d8603052015944ee9d6d55198a5fa9d9fd953ab5afb63eed2e0e6d01983a8e2dc19708c404ce6a7092f2761b8dfad19e0d4dc657827756a99932c88643c6e3adb0d272b9cd877079754fcc2e60c5f222d7c751914621873edd16289370e246bf6e63ca7442b54f7d6198c99deb20e635367fb3c187063713d4a6059ce5623fd8203a73b62c2476605107a64efa177e435b5c7bf6b7c36627e1192a00d6d376612bef6560acfc270257ea0b561af6c2e4738207d60197dc1126c89ad7416e45af6022b227f9e1c4beedd248c8fff802675e21b15f06c3aec36400515c4bb9f4ad2e878ba4eba2658c66f4f38cdb2c73e71de1796290133857e90965bd334628eb83ac769cf63fa9a59298d089302cec86c2d10aa03c6d620a1e735176665435479ccae37a168a0827d7f4d8070d98065ad0bcde435c9e9e9d75e71ad0e40d061a2dbb2a3262e18704649a14310e545e8ce93be3b33fc442d437acaa3b5bda4f770f5eb60f56b0fbd0e9a4820f3c464cb900be522928d9a3a29573b07884e19da158b317fcdf047a2307d0066f16a3a4e389f0166650937ff1df8c4e637e24e2d50f4d2b731e7befab3b0c33ab81b4b031174a61be15d992315464f99d292696bb1536ddab0195a140beb68e72eddca6220d01d4fbc77ef3d743ac1dbe06450614d9255f13e60417624dde40a25515f19b52750c1fabcd7f128b472d80337c469cb8ff95bbd2875ed03efe8df9aeb677146002c138edb668a22c1e1b671cdf636a725de9bfa9c0e12035939c8136b8da4792eda4e82f29d33bf3f67954863eb993e51344ffc4d144d651219de292bef3f3763e2aa061264b11016b6bd4586f46215eee237b8b616a260071004e253c7e1424d01c4b71bf53e085f93c6917a028e6f5134e2c04bc8d9a371083180c3d95a709bf56f79dae2be4b1df4db2fa14b075ca14d0cc7875fee90f8ad2ef73fd4bbfa3422475bd9a7b8195 +shared_secret: 0749d8808bf77c517e622f26abcf23f7c40144b37bab16c6605ef1c97636689c + +# Rho leads to non invertable matrix +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = a86b5b613c6c4c869dd552a711040a0a205a6a9b7ee5c7607825a76206b3db25aa6a0960da259ec279960a5a947106b51a299792707447856085a12397e60cbf91713a6c4bc56b03531081b0b38b0866718c53bea1220f3e5c3a59c74f10c765148c595becb9aaf0ccf2e429575889b462bd59678f860a5e501aa758674d22842cf65a3f8dbbaa7da061c54073a92cbed742163df301e3675c5ad96b26b12651fc9507b7361a8bc0cdc47e7f38c1ad80456ac3443bab147e86924ec112adfc9f1c1b81b478740b752d030537c817a727451668d9ba1fe092d5e116c20262b722b6f895b78e3622c00596ac8b5d4ec11b0413635e85637ecb9a87516cb8c46ef2aaa6fdab62860160c4b29e23f921ed3a381711540cfa5df115a700d40c38b99efb870c6ed14f2261b17ac21900a427528cbff423b0ecf29c2a901baa9c7ae3d438c145385c73b0961c4e9dd5cb48c2ba247a30b9691dd8fac963a5c46ea44de03274896c8f36e57f84dba494c473af0a64d97533b223a32f8078d933bc6db125c2e7a779e0676e09648cf6b85c2968b71146763b7082ca2fec33884d6704afa71f5723617f83737cebae33b95be2393cf1f104c093b4caf26548704490b4aff5d6175ee4c7a3c0718436bf996003039aaaeeb18e92e341938b7a71609082b18995aa042e628f18e8c6f67b67770597772259e0e7b1025c29ea809beb994483a6863d038f6b9bb814a5215d299ad0b0b577d70e7c946be6c93ee257c68b1653ded84761b3a6104814a265988bea5a6ae96951f1bef6f53f50aa78c1f655dec149706ccc561a846d9cac61a339c3c279a290829f972a1931ab5ddc4893f71127d1a96796a24152a5d56016bb5c9d483b9b4346a8550784a828a3b53573e61104b6392d0bb246b8116d8f78021bd012c322c8b0d8392677afb40b36e49c0211449a2bd841e44b72b25b11cd099bf4ca292af2722dd9ca2ad3c36f4377ee54986b737a6a0b87817384ae9964244b140689b2d2db0deaccbe9f63b182164b89c932bdb22e6127303044b91eb76572e19785747e6da01c20318bc8092a7dea7ecfcb638e0584a6e00ccf243e06c577b784704c3b448e22a2b2c9c1dc0224c7ca798567b1c5f3a7ba660af4028387f2c573a52a28a3449c26342f214923e3932f3bbac2819329b83a2e89b78d93afc3c134be3c5fb8c67617666c22c71c4cb99063898f65b41117893785f376d2330b3b5a2fa946374f8a1a2eca1645d255c2a28fc8d7734fa10c67979e5950a1b5e085e2d52763326f3dea8b783297d509333947b9a47a9ce9caa0fff56637a54ffa6a00ed942e0d382ac6c834a7e40859f58d3ae991a9e359e91530bdb75c5568330236149e71040dd9219f5c24cf35c4e6a670e0719b2e738969f509cc55bfb6ca08c68c28165bbc43598ebd9744a18820b5947f0b41a311846588187c0aa669843bc6f4620cd1c62f1aaa90f93b7537828b42f59c153b9ebcc9ae1168b2ee7b2f10c062bdd49259024f4fd51c8994acd60478cd3a00593c403a3279877801d3c88f65b7bd83b76fb54c49bdc8af3cb4b2717741bce1bad123cd062211e74782f4620e9130a9950423afdc98cf0519a643a265e4c6ba4142557d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 0d6a627804b6e54c49e39e098b20c978cfdda91acd2d5d883111b0fe855460e981f041682f419dee54cf5b7f923c2017b1012f0b3233d507ed065e96ba51f92f70a38aff0ce071110bb0513b22262aac6ffc1287c63c07f312ca2310293a56e85e429bcf3b8662426c086f388312513825888762fb3aa87a40653de37f48870ae16c19ec088bba8911e944b41a8cd595e2fbb680971981b5352a9032b28fd3bdd63ea4a72b5d999d6fad88e19aa84e5d60f173283f7597b682f4616bcf532ae1cd5e9e5e231c6bcb1c9d5fd0e50d54c53ec8a4f1162696aa72c02a6fc97e80686886b84899a7ad7a1ff6468031dc403dfabdcd793bc31a3036d5937f5af337f806001f4ee79dd889e72f5585636205a3a906c01588150d73571ffaffb9775970af6c98a17f1a6a6a0161de795ee20fdfae34fe40e4423012dcb1cb918144225716dc32c6d9d453a148f3a5999b6df6748a97429ab5b8c6007f2595b47fb52030ffaf99735f22657fa8e93f31238941436b76088a72dc6a133f96f0461eab8ad3361f59d4539090c2dd4b05ef665786de899af3582a8a41400b0421c6c646050171f6c2c8231e7fd295f855d2236f6b17f36cd998b47542ad2a73c1751883175a71ad2695b7b372b71ac8cbc2729ab1f4b76eeb8187777404ff81e46aa3a246cb0c9dd3b7fcc443f6a89df493b64e770aa8507253aebc041587b3b9e365688138518d2e84b635c045c9f7e50e62fedc9a42344bece5e21e05c52baee9da1e5fd50ed674aa83845343894439da9188a149b04d7110900fd3a6bd950be022cdf91e6bc896125a10e64ca3e55785aa5ee668e42f338abf50690c61cf19481b1162cfac86b4f8b8800e3c65e82e94e987e37986a3669e401f199021a98294018a602801c07b51faa641a34183ae5a101189887189f072943a712f74b3710a98ec0a992ae4ad1d4d56a508ea3d0762d1b004f399261f2fd836b97740f4d96e3a939ec8854b711ee358425943d218f92a7e07799215ea2e4e097448f7d75e79850560fff7695c4b3f1266f60c430b602db4cd75983e3e252c541f5d39cd15253441f76534cfa94017f1801797503b9d1518fe4857a27e79c842cd3909eca55ec46d9652ff448ae113134c7d24a506987875e9aa17841c9453ff951aee63372957333e8af8ad72ca7e8bff5e0372209fd0bf11881475d0900c643b42b911ed8da750f4d0afa53d13c749bedd5c69a006dfe44a736a44232de96075b6db454644ed3403bde16116a670d7e6c60e03e25a72711ba7b17e5b65bb8af376eb71df16f7d48af1a903bb6eeb599d8acd74d7990053b39d4c81887411927689e20b51006a582fa0c0416299c850e75a81fea3f4dd3d3985087fa7b5f163827c89c2737a86bbdfebc4240c166acd4fefdda881f76be78a079295033b10b5e2bbd9590e3354d86c2532e43b9d1ad7c66766d2faf2877eb0ad087fe52fa1ea1a0d5661872735badad7ee15754168059d5f527c6b188e6dcee930e09718f6551da8475df376ece9e890 +shared_secret: 951e3d8eecad130865f9f89c27c36ea8d091b6f3c00e35969f92bfc4f91d657f + +# Rho leads to non invertable matrix +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = f486c7d6766d95f2b7296a07c8c7b767c1057548a18263a4366040c003c50084bddd31af425b261083ccaac26948ba1882739732bcc1e73685b52287148526bdfc47d8822d1d5853c9447b21f200592937b9229b471646beca2cca630502e167b7c861d03cbe302600c6e1806f6040cbe518e15c0eec4395ec1a47c44c8456830709a3be9d05cc5cb3266f616f9f8a7adf9b2a04bb623f801da0c8c0cb4b45c16282c412c24ab90c7471b554057b6c0623481a46a0aa53dc167c15ea8a723c81d9d56691b060bf00554548c34f1c603b17b705a72b2c3091ac134d192806635385a5ec9cd28a3bb56b83cd2b153e00b66eb58d8580a47e696aba9abd36b19b3cd47a0dc4ca2d6b7ef106a3b94b349c665b295433f4ab8711a01e2de8295d58b20eb2ca49c23d595c96c874a2749087dafc044c0b8bd5b340ffd12fec07640099753d4c993fc69d986210dbeb95bab40f6ca0096ea866ef216c6b2657600813052886452c130e7c925940564918a5266531af820d0e69c10471ab3b74585f2cbaa1b27274589fea64b2172b4020b4619b6953a9d56d022c7bf937650ee5608b15988b3377bbb617c4016c1ea3a7afcb9665d995eebc2b0ce76c38a0b6bdf9436ad78bb97852ffe8a618f3c82dc4afd81c99a9512777094b12564ce1a469cb49045a90aa3d2c20fdabbc5bb4940d30360f17a66d58b7a3ba7920c102ccf8b30f03621ef722776b2fba0164b3426d514104a6689286649862b7cbd84011008ba69c6148201b576a7b4b58a53035946a0af9646251b8c1cc7bc4c058ed8bbc53c91ef74cc06e1c32a211ac42570b7a7181f23552c762118a9c0f4862687a502c232b9d43224f5fab525f6186332969b246082c44cae7236e38865e4dbbcba87c12e90b2b970097c0e307dda00d7cb98574915a03d25384d4584611c837e19ca906a80868b382940d909091527b0bf261be5ac0a9ea151b8979ae46f2453b420d5b6b1fe02605fb8bba1e065bb9506e1be7c471a9b8083734a110aa6aeb8340338b14aa71189cca4ff01777e7a251b7a0cd1cba9a9a7b9ff3953fd9c87f5b043f719f692a9f4c7352a0756393e50f0592cac59bc21e198729f23b4500d0e620bd02222a88c5688ac02809315cce210db4169fdd1312c0dc85baa25f3d48ceab80754987553fcc7806827441b590cf9a8d5c590b2e00bdbc9b4ac3d2883f6cbf9e047407858b99ab6577a66b498b0f18628d16a389a5f5a20e1b0ffc228eef287a36968ed913b8fd74a34de23ede7743da2311fd10c46eeb84c38986bca7536ae8a3a42acbe5dcb3fe9432bdab1f3d1226a99148d01219f3e68f68d7a689e39d7502b6e13b665cf0235af1489bf4ce8619624eb4509c7639ec411fa223793b4cbbc990256b390fe23a2624977477428ec39835809343023c1dfefba3aef98e7aa15ae694861ad54e0c74a6d8122ab181c9d23397902c99b0dbaf78a463682294a2eacc1cd36c8fc1ad2e282a72fba0bc179520ba2b410acc977b9f2cdba3213175204568dc249571c20fee0874fec364eaf210ad31b6018c2d841269bdc95ce753cf6a765af4bb9deba17253985277f71d2563a585a7573d31c87b80913c0a38d3905a41de6fdc47000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 068bcf0833a0a08f1a1c9128e6575a62ed3f2e075c4444f2b4584b18e4af26b4e84f16b697141c2b000847dc2916b8718608465198935e67d873335d065b994e2946244d3d739b1d31ee6b8d54c5bb04fc9d7d6d22496a869e5331d5e293a712408207fabc35004b13d3ee3aca54200182249642c5e9de88bf5a489cdfe6330170c0b2cbae18f65043ee306db39d333344c37fa76ab05675568a5dc576290abac1d6f28f6ee1d800a3c638b91cd40cb02e531c88c0a3328a176f872386082f07b4a782f79d0b2cb2df14a62e3db5a30fc753f25db235588652c51b251685ffc1090ffff37671384482d4ad055f0d51a5f00c1c14e67824a29ff8910d9e9295f633b6e8dccaebb2da47cb628a246c6a443b87981453e4ec64e7d0df499f026977b039f73d5edb354bdb536896f35a5431ffed50861551f5e6114da8782d3e1530858e516fb623dc3c0bea0c8981bd3091af72555ea18ba409bfe2419a60d769999d82f7bf588be754496143ef980a3995daa51e370984e212f41681fcf6f1235871389fd3b52e76537b84af594f5405fdfab1d90c79a302c142f88affab1f4d524a139ca894cad46f270270f2d8024d06582492fd1502a65e7b70ba0941dd957808206ce00c6be60d8fedeaaa0149f17ff0b3b775fe59317e769024c91ec83a191cd72481e3d90361a4dbf59968a33a56ecde8aa618a8046e0c021c6954f983b489bba80d15decb9955e118899d98c1df865355f5b9ffd97c52c097474704088cd2dcc01f303ec675d87938d21cacba1fed2483e144bd6bdfaf5a9a233238313489e1aadb82a060390adbbedc55050ff86f967b4b7aefa563117556c4ca5ce9ec3db571b5d2c9f5fef63e731c86b0ef3d84239641fb082063ee3c3756006b306754124f9b964dfffe718c72b93999255fdb3c4eea7907a8bfb5936801e799d499269226df5d9d3232b5bd5dba5c2ad9b03826b961535044dba6640b7da63a9f639a834f7311e7d9ec4a1591d041de4f080416acce59b2f1fa4f4a7654368761bf1025a2de5f02cfbc2150685f3e457aea26ba25ad3b828f9dc07d33a55450a0f0c6fc3898dfdd7a43488ff012cca26828e5a1dc5a0d605c59afcca1cb0c76b3c20524eecca2ba2afc939204bf06adf3a5c0a809641cd83bc1c5991c9d16696a4e4e6462ede7953d2694ec9ce865523b1faa9ec4b8d5f737ab31bd929c45ad6292a6926e1c62c7d48cbdc6c6e30f289a539feeaf84cdaf23330c37c97de3ba6dae06b737e2a51faaf0363a961cec9aadb8c74779e242572fece99801eeacb7e972931da610b75a3ab2f7803b8f3b9460f1ad39385e9bd1fde1b46b676132f5590c6cefad5450de5c52087f7f5dc79ae1ea8491dfb8b2d205361eecd231f3af8d95a12da4ece84d6985325f4d948eccfd42fca19014e7af568175879101da556d615b3f4d81e0a4878bb32ae24eb4fa91334b214b379f6deeeeca45a89ac0d16d533707ea5e4b5e0c06be84656e5475c4257eeaa3353d4444cb88e499ce7f5a2cb2 +shared_secret: 5a7f85e2ae8e79a1b178cfb5f38cdf9e240b9997584fe9c432fd63607139f08e + +# Rho leads to non invertable matrix +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = 029b98bddb329742ad26390f48a7c0f624c336e5b71727a4cc29c06e1a2968d864e131b79e5365dce048453ca51bd8718427a35c63ab784ac5476627ced945b656adc438a5294800b6b62f62320adf193b198998a845954a2488e0ca4154a442b0012d44b7b24fa5a6f03a8efb739ccac77b8b54cd235ac65773223f3709d0cb8195671f9ed7b324a11d920332d41c9ae0c0c30279721c80c3a2423cddac9311cbb39f7512d8859074558942504d9c087d9524bb21f5cad2826688e5bb86b91c1f120da1808a654348fd3ba11f3b20bc7612950c392dc27cf6a4aea8f47b841645d4860cba4b3a865c46c0f259af1a60c43141f548308088353617bf95427fa094389a3a6d2df6ccafc7384efa1cb0ba2ae5a2a8d89335d1eca833ea026f9a08c9e2586239aff1845fc5fb6472d0056770a0cae059d81812b8c679c502b3527ab21c9b142f89bc4092cca0a6c20bd1a22c29b773b2aca72ab0a9922d85a8bd676267e9d6452235c270698c5a7a13a1640e5d20c1abc844493ca3634c1ca0813e7f73532388c1e059c414c24bfef16654850f9673afecf630fff9c3aa0a56fab46eb5cb436f4ba94f046e5d57a2d1897680631128c42dca353861a7aceb79267a48b429539f51475414c66bc66a1e8155435df18ccc2993d5e93642354921e9b2205a6270e34b4622c9c69915ba80c9ff994263a11c46a95b8f5c43de1c5221b0745fd2ac0ad5696e5323935a688c906aa2050f89881d3d21605c9564997b66c6452e333cc33ca839db53c17192796e9213b0d7a2ed796e7b2842d9aac2398c3ad11abb5cd342eaa2c6468b70130a5b8b2aadfdf08a2c39732708842ec03d62f60c59b28b81f726f078a06df43faeac927d8c52d14664bde5200bb55cfb06478ffa9b62db67f07565a5673393a388ddca18b7d7978f338d93f37d24a38ef8786e3ed14109421e5884c18da611cb7b62d745323611ade1527fd841a4f3e7122bec4c81609be78b1e1aa274b06193a9291bfcd88ad0fcb90c69c2d4b4073f89a733729d3adc79ad93138b8116fc05b07d7ac6d1645e3a7ca15569b1fe923115133892279f2da7be3f96a3a4417d3b929fb4d842ac017368bb461dd4673da34583f71dd89963718a487db15dba89b26f57b5843804f4f77467936157a504bf106fffe93b82a5be0396161be988c415666b1a26823755274310b8c07d2db27b4e0a7f62747b37527b4b3c87c758603adc3b240a359639634480834de99a6efb12cee23625d563cf969adafba20feb785ba71a5278cbe18a112c673e3332575fe982c6fc853ba675a610357dd2275aa0c6ebf3b5a66a38d253b13b8a21170647c28a7397498d9473c463b7b4762939af5a8dac0066e9f14b8e7534c21342d4c7cf4b539d766a350d882b70c29bcde61f854aa75d427a84780220278716eb8ee1698fd5825cf206a0797552e2f18d3ad062d283719dd61d160681d685ac3004c0c9802d78ba41e8404436d8563de6174e911ebb16a4ffe945034932f335467b250bd95b1d80966aceba882f2858e2011f9be167e6e3c70b234da466a28f8140c9581a9755b5216882f0d43bb70751ffa702eebc7dbf12450cfa3b542777c35b96077cc1cc2c5fa7ab000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 9d12c628e857d6fd5a1932a879dcd28bff777cd6132e14fa17480771b09c7f325a9127f610aae2bacacf515132f848a943bd40e75b894d37b55018284ddc5899431636325a5e86a79222196fee72545b368cc998059b0d88587ccef6e6eb833d05e08123f9b18c13ce6d456f4995340e17a26a9c3eb97930dd207d5155fca9a160e5e8c3f8b7259637721391d9f0787a34af39b136f306400b4805befbbeac25eeb533678b6994fe71ff8691c85bb2cfaea77efbd0299415a4adbf6cff3f4e63cced78154525b5b3d21cc838a5c89f42a1f7c2e2847c8cdca0351c47c1a6fd3e0b20d2d24989b931e1bf6f9e3d015a1fd3deb195a959a44f87b168976b71ec5096a92c0708d96ce00930abd77f4dd101c64106671656f668a07934c89353ce8b27e76007c7d7aa159939210295ad05377625b6dff8744332b834382df6ea2254d523f415928831a46077488f925dea5bbbe4ce007852ea26353de810a78d79be4da1fa41546739b74ae5153d692b14693ede93e2e5248a9244a35a7b64acf95290d1547d6e4e1d63c653a0e52c83264d7349d209147c97c9971957336f036c7195aab3e80afb7189542c45194024e349ab7f62c9cb2983e238a8c76f4c5ad6dd07516d29fec6f38579abcabd1c04005c4106b22c45d27b7786575b15ba00be22d752d6dc7e689aeb21ba9980c63476e742b1f780e6f9e220ab09a5952126ab01a59277a52ba8159d3f25dac39df888ba0e920cea9cf8d40525f79f74766f62bfa2478afaee5240f30a106fde661789d15780bdfe17e15cc033e179735f1de3aa82089dbfcc9df71253bcbc99cec3c5cf163abdba2b8a37e8321666ebf0639e9b240a3fd1cdffd249b8e0f04228ba21b777b8cc76c1942656ae9ff36410564a9d776b82f1e61728e71fd88c1077fa74d08bc2d5cf59b82163e122bceb5b05f6bc493ee02b111af667fa67bd0f7464d8738d6e1b47b282e83f3d83b1ed5c32e1534407c6976e280fafca2dc950597dea6efc162139cfd2bdb5379ddaf6c2d2ce876801bf5dc8ace9bb766be0452105861e99534f84512ecb98ddaa2bd2938e371385deb1623a13900eb624f734cad7047790251bffe4af673e7caa5595138b8dcf15bbea0acfb745cf84e98053ed593fc1103e80fc4ccbdea7cd3049c43dc46a21d68bf194a101767570d6ecf7ce087dd34a526673b6b959a9dd83e809ffe8984d5d86fa9c23c0a47ef11359283ebae3a1c5e6cd9f61a73a2a875d0d8fa1a801d31826ffbe79179c9b32f1ecae0097350b44918242aadc9ecab9bbd1e889a113d9cf1454163317684e0a99318d66f6435e373eec3ad87789afb0f7dae49d2b03610b5db9788e2b3e0c96474baee4bfc166d3f5580c7654ed4b19c325503898b38eb24aa30e4496eceea05954780dd389939b87a4eaefaf86ce855d1d1708660add4c70d30f7d14262aec22a294987b2b850390b799c67ed354bedbb86bb8c1a69e38313d4d52ed2619b3c482f2e16153263b3e6b7863d8cff75fbe549ec30da553 +shared_secret: 5e36034b55f986e8e39485c2de5de7f5bc816322c6f36ce00b8ef8d7513edecc + +# Rho leads to non invertable matrix +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = c30b1c077bcd1dd852cdb9736289bb441013f7132a86664c31990bf601cffb845d39a9a95f4b44e285c537cca542335e77b8ca7ac4037c56822d524f74b76f2a113693a63400334967f9a29008ad53f01921499e54e8c315b47788aacdaae2269957010f4652c48a19cea9b2a32406b4ab4128e150beb10e0811b2aed3c95c89639a0ba3ecb689a911acc463708b733d3b724c63b100f62c1863c2771cf7c6aa215e5848687546446c75a1b3d56d8f07b3a8f8bf79dcc360010fc833056d04a80132816a63122c591cae5a4c26ec119a7cccf7f74db33c8a83c379f8f3cc75e85a8016529157aeaeab503e7b9734c8801c309ac580b792433f46451c8bcc0fab6a9ce7b0a2110a933d62cc55f953a036b3bcd3a9078c01b16bb6f78c9f14aac2949617bd6c0a99f003ed2bca0a3690ad444d314a1c44f1638db6c31a3884823a92a28aa3eb498452895733d97aba3c3c7d26139843adea69b3730451fe75aa74f6a1dc87988012318cb172b37843bf1385bb400018416344a4c61ed9436e142d9a512d63693c46f47e2581a97349bbe6f463e5ec806f2bbe56025932eaae009591ec6260c83202b4574f6274414e998d2999371d39855d7b52544558a0da3456191950f96f0995313bd06ac4371207f606781870244b3994ac91a0030b9b26072e121322c7b3a7723527340606c9657007b70700739b278da9a14759024537aabff70bbad9bc513e5809677bb170d8886b2176b9999fcfd5c5e260475d315445d9a6a53b8c7e5919fbb6209d2112074243c16c783fdc571dc842eae4379378827721030cf601b92a5f06aa877b8070e0b3a44762786645cca13c8e5c84a5010290459a3637d7c240cb8b1cf0c58a649c1b33cbd0c62636707d321cc93960a42807a8a4fa9f7c889a4c6ba672b14206926849257bead619167c8cc7c466186821bbb8c67618c6c0d9064e71519902280534623bac0af20259304a46b0352f0b62707d7645b1ba5817e41079893b1ac00fb14480bce6bc19b337a05cc79e96ca15dc7686b33e2e85146224b96266c8164b4f17ba6c3070960ce26630fc454cb25b51e935c507afed34b029838822a0a77a24bf45e9b9047627dfec040e648738e05a62fbc972e4c1b4218300221ce3dbb3db904e82bab6f207743422b453f728084501ae7b96c26534913568edb18446c409613b3ee4f52af5b466c9ea7af349bdc5eccfe9a510f6fc24226687a9e19f6a925b8653209fe4a932588cd52bc41e48404e369394385d87a5b28b80b971836e3c8929547a6e002d5f26dc4417f0850c44ca3905708aa40556b426b6700d4e9126b8ac7081d291fd7569f0b08f789b8556864483ab668fb781db2837e73c20891928e1eb3d29f7a9a294641696a1fac1c4bd526e1fc73c78c01ceacc4a5b707262307f8aa28f61642d71d4aefd205a5bd414150188fd679636ba5fdb21740fe3738c5bca69ba72d1f0871244b0fd430605253499d351fc102280987956e287bfe40daa05a6d6179ddc75aebe5076f18a676ee71658283752ba79a2457fbb107c1f7b7540513df0119b40fa2342b64b2aeaa21c94905a5c68f222c84ea63e9c0b0afc55bc605a46a8179edcf8882ac203302879a33b000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: bb7e0dca6eca3ef57e945d921c2f80875556f7786d6bcca1312f86b3bea6d0f0a73f7d6036a7c38c62d4e356961ec6a28d8026a2d915d9721ef815147fc09ca65a3394aa5dc14c08d41cbe932337b9a531ddf68df20b6aea297194ac398f15919830e3ee6c20145c0aae7a2cd276ccad7b5c414212f0c0ae7106333868938a6a00da19377d996c7796d400606007dff30fe554a5fef86944d43ba047a00da5c2c2a1aad053aeafcc75a1e826a417b4c320e60a68e63dd7b54827f5b8b0063a00043f29ce8975d95bd418eb2ed29db0d9263c67fdcc153ba9b5a33279becb7ab193c2f257bd660fd7012712be3fdc2e52490ade145e8e030ba1ee5368791e6f3efe00deb34cb454cbf7fdae3a507261d9fce66ab58998ca19380187e3455d425977a8396cee3442935e24347aed45fba9b323a289f1b98691e35017ecfd7a423cd8d0149432a2063e0786c2f912e1134ebed188511c905a1a9890cd55d496e8441ccf637b4d660d93c7a46c3e17219167c3b4740878ae35766470b5eff3c6b1fc8c30e5c9645a94ebd48d2d40fbd4baf9d822deb26c089da84043340a564e6c311bca18c7a2c868831fbb866d89652556b53297b9c0040e98a692fa536af4c9a7aa09321ca27068ca66c665b1121ee4529cb3e6d899964de759ab915b0d2c571c5aa76cd64df4a4e55d9de59eca7b4379b30f8559db41e804a18b8771f594b9bee3de9ae98a003430aac58c141e6f0b7b1e5e08e27d1127b682882be055ba31e280dbace7878ae60426626ea4c5bc034a9206e27f578edd17fa6c33180b649bc7bd437b2c86ef4e0f4583071f99090b95db1e415d21ddd88a910b1fd10e3a04e391d947558a6619683ae070be04cab88300614839503f088e2f04cc4a7d091af9833a4f957cfdc574b1c994673ea14dce6ad89adebf5130d266c1440b3f544eea380ba245e21651f1f2aeb2b3d578000a87683dec69ccac18b0702d3d030077981076766e7e5f3ae1174eaf21bf03662c6bda5fd209da19ff6792c0bbc5d210851061dcdd2e4794d2c3c0c531e92a2c4a23556878d3e890b65289a6a02530bbd40ed66db3bb220aeb71fcc3c0b5d5b3afc71377746b22ce636dba028bc052c219783d468fac1d4eed555c1b4676705c8d27aa8a09c6fd8640a6f7b6790ff173ac39b5f3c709281df4274cccdc1e3b690ac0a77f7ece34cdf3216d2b6058baf5f649ff5036360dff99334ff06a366785c0404c584f623801190082fe5cdf88f9cf41032681e8fd6b84d127add01d4b2286af648b83fe69aa8d109c9320bd40621cf75adff8603e3da00be36f03ed7925f19b2e913d756e952a9402cd4fbffc0428cd7eebdd7fc7d3b4cde181b16b26811cd53d9f5d85d37c1670b957d4b3d04fd06567ac68d3f9dbdd45d182619180cf9292e86f42bcc213e94900e0c759e051bc0e30ffbdb91a2493913dc8b81ba4c3e8ba0e7277dc38dc91eb2b27823dac71b6f1c47e2a04136e2c0474fe070e2e4bf8e6fc98e73143ead3c5f778ce8a4efde4 +shared_secret: 5b357f714a293b6724c0dc2e2c5509676782a9dddb050d88e6efa0a6d09d20b7 + +# Rho leads to a matrix with unusally large entries +entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6 +public_key = d7dab73b47cd1ca43c7e036d41c94f8f31a0de404fa38a1da0992933d752acc0407234883488a581e340bf5a8dd7112099259ebfdb0cb094c8d592485f25729e1844870a3d57d63fe9c1295fc2c4a374508f359a7e9b062348c6c807322f1a2dc887a20ff1b8e951b103698492504dd86babc01339f5b0c9bdb01b65514c8df3a61abb7941da84b8005648fa0e5b094e54e56a56e8c840371349820dc3f48ef0fa488f180f57b5c0ad663512467836d6765f6517ebd0172d886430357baec25c709b3abb9c01dda27e2ac7c17cac7511726a39050fe92399e14780e3288ae775612b2c4baaa032af561d0356c43175c6263c5d9cbc62f57194c9f76fb5293e86d9a95a641325013dee98067d513525eb5d2f7cb5783915d0917faee635bcdab95a61592fdb1de202c439dba37a235e3888134249044519732701111385b9c91c2fc96b039d6483c6d1bba2223cb0f612c3f7c6dc62bf64a04b349a0fab73290acbb15ce1cfaa15c68d896493e67dd9a518782b35fe141a4d70bf33e97a616c51193b711b04a40c9634bb62726f748572155667146d311016880c670067c653e9a8dc0bc32865adbf41ba99f19b2dd9ac7998bfc8679c689a05a5038042885742a68ef84c429984588995a6cee077c3a099caa7a5d3761cb4411d1dab8fe7258c75903ef515b6b0629ff659436ff687e6625d2080671e0cbe0cb624bf8b367e780452ea3713804e083aa6e0c7adc15618cf223b3587a364320d56c58be8f037f89cae0be209ded78cbae29ed73767ede6793f0051cd5692f63661a257ccd9d859a92ac08784070bfa7ede4577e7ab1ff6c7b159089b8dbcc5ba56357b2659a7a04c8748a86991b2b775c2015a4c12341ebb419e1244396c233c161495366104b8e29979e571c9614fe10c868db56cd934c5b2d04986a70be8dc25d61cb6f0054d5e4000ef72557b712658d962b1e673a07222d59bcbc4e8339bb5b37cc1c2bbd38780f8233843ad420782b4951c3321888fc3b488897c8bab046f79cc456bba9f666ba261284a1285bf1a9a9d274d9b87788c225c0ffa20388183f35817e5825d450a1eee881f94a5a129e688ce6664021356580190a3ec5ed220b8a5878068ec5cd485816f8c1ee05c3c23ec0d0aab7f73aac249142d8992678b38410d41be710a285d3b593a8245e514a870c3c348fa45f99aacc464b399ecc0cb3c306c273e5f4c671b806864120a88c07caa53a550d52c5641203a7927b40631e21344a9337da2d128dbbb5f97b68b8e57cfbb1a67ca7741c60c2533e49ece409b0492a2e81523e6b6ad655a6dd1870b5de3690de3369c898b557886c4877ad1d67a1583bc70502b32a44afb9b60f88838eae005e2703ca26355ddc479bdf1a93756af16b7789a3221fed9a4e468b710035060752e884c56034b768d0a7106a4bebde7622bb46b6649195301192c498bb555c653c42f6d84883be82e8fa56ea303caac534014b6bbf38a9f73283e5a40b36e36c9d8b1a9856aa7d9913b22c40cb103b74853c53c3ab4ce895388aca8584449fae927b16534f48b3aaf350030a8460c8572bcc527f1f62bf1c5a9bb8ccf3ee66f66dc19286782911a6765c72db77ac0e976a2bc114a1b11000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 1a2dd390e05984bfc0f55ef96da5050fd9bb03891d4d2ddea46c463aab28fdfaf63d4b2e0c9af992e4f1421efc26ae86c2b296f6851bbe2e898b8bdf4057e875d4a98469b7d2646edb86a5eb5259341e0d14986a8ccf93563bc6ac067f8ff6997c2e7bbd897f02e844f180769fec5af9d6fa017022cb0af622b6e4f7a69d73ab01d3d09067b118d51805e1b6413b7a9e0ef292a6fca18a8828912a2db675f0244cd63d9340aa3ca00dc5d70c915b0061664b1e1d64d3d4dced3ef739302f1063442569efed0dfbe8c019c27823a3aabd865a47600ff9e24f748302bfca1bb60faf4105889a548be9ecaf266d8f02d3aa4997202477a70ee71b6e79dd1609acb4dabab72a38448758d8debf55369c5d3e0870ca193018e0ae6d0ffa33b93e962598b43e89d5978a9d55a608b98ceae5e897363f8a9e253acf8af560c57e07c4c4bde807620b6deb76d581bf92b7f514509446f5c4e4d09430b1855e62854988302c931b9e624644a636ab8acaec56d7673b26852c692e8325fa1b6215f24ebfb388ad1022fedc0bef272c87e10dca97df1e63f1a0e9582daae0f49e30c6acd119f7c4eef59d47443f491df846431cfbd23900341086a304589f52de1d862c26af32095e922b92650c68facfc13892430d428f626fba00cf9501e1e4646e55f5304c806b5acafe100084d7635702139725561522632e7e3871effe883298a7264a411484cdef78f9e721c0e5f3937f2fb7d40bb91620e473f9b97adddea69b3ac682e8aea2513b985fbae268176c1bff90e401a31e729fe8b76d13b5c8c85ed833d9b076b5e11acecbf0e96edcf8ff562255124edbeb5b9117cf486f30d7883aa353b9e433a77ac6912cc8e5093c12385ad926be1d0893afc7e64fb9ec55d3285e01a3ca63f3c07b95399bb4411c3f820f53d8350d1979ee9cc6bbf2d7c92d0cb2fd0a1de910d92589cf1aac29992489bc179676c31ae768869398fda50ff14860a1b4dd3bb2e4ba8b2c87aef7ee00d375956a62dc1e5d548a59f209448e62c4b1221631d4776dd5192154d637217d31feea1c4cb3ef1903b8987f4c184cf3d6b5355ad53c7bd3e0ae5373d9971115698214a93e12b98489cdd75028cf22c1da41096daca95854b35d8bbf7d0d4ca2727aa511eeb6cec5352ed487bd3b00b261cbabcfa9f082ba7300610c6f92725d532a86e00b2ed1929a8be7a342c079835a2285569dca92a808049f170fba39d990884ef39ca511aaf9a713b8d78973b4f4a2fde7ca8b6adbdc5a70241fe3ea7d005b33e48cc9fe6ce5bc2bae0746827e548332adf83f8aa707e703fd688c494136d8dfa50961a9e5b69b542ed6ae0e70ae159df95dd9d4789e284a675fe048585214047f7f6819f7f011141d265de9fd4c04f4ed5dead63fa4c8938b2f42108d263d5394d164b3254294402cbeb48663cf1ab2c296d6ada107e8aa5b505da49af96e1cebc6b302faa148216d38b9e8130cc654974ce299172cb875742e62c32c063ffe7535db2726f65fc8f600d4dbb1a20f +shared_secret: 54c35602dafe572b99aedb7069a59c4f7818c860b27a947347657ac1954d6454 + +# Rho leads to a matrix with unusally large entries +entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3 +public_key = 47340db6d04313d3a689b357566b9743cace5d5b906a39249f1c2bcdf335f37aac2565932631ac318bbb7ca75db36ac198ac6b15a02173049721d10f7521a52f358f35f3719269a695a4b0fa03b32d8a209aa12a5d786d8dea4ba05498ba222eadd647dd5a397e655ed309883d76326231a6764a7ba4226567022d70fa20cc53a045cc5a1fc54abe0189a4a2b6bf8a969d61706944bc59c6add2992b6e562e9732973d32b97956203dbc523803ca0a462ae118633483cab85c645ee3ad51682c0596378dea5e93bc7ab652648cf1954745172a75c2bf6a3177a7841b089b6ee911149871a9d987c6d499b6e0c4d15c9b74685401b680d3e112d6d70bdad6a3f9954b0057335ca36823328ac4e124d55b9932d548f58b85a32844e9f0260d8a4339285ab46152bbc05a967c5f16072f16178687b0bc06b621f5a4a14ef86b9cf1bade0185c5c52b3f2c407479467e5516ab9a1128260317605d4db250e8f4b59bf28a6ac2606d280af28664b75092fdea1fe9374976722dff579728e121fc1944891c586625a880a7bd154aace3e919b841b1f5f8c0fb841d1eac1fb18002ece216d42cb401dc1681836c1198653456c9392944054200a3b95b986a396d443a306b66018b525fbbb042e662ec108f6b872749d3287440c12bd07d1061a524a01ad7342d74f8a4b76222c5a439eef4235d51c9494602f6624dee256ea7fc09ceba9877f9332bf195c43502ee43c75e78720c306c2fa47f4ef6b7d69038dbcb8272b334c98cb665b306c04252fad3559eda4b96c14bf50b78d4a9a37081a2d61cad33b3b9418bba25409fbf4a5bb3c775a43b39520b37b5b82191b4983398858bbb0c6c8031b9736a5f76cab0e647443cb6d983a5e0a6c27756cbf471baa17870015566db8c8a51aba969e976a1c6cb2be166f20680893950ddf09cf8e3827a2a884a7a65d61c7c70a522d17ac0939625fe63958741255b012712e76fa8da809a8cb447d730d4097bd3e86471019dc8897bfc82c3804a76a38919f7cb50ce79bc13ec4bdda215bda9789503aa822c71ad8107a35818a7cb055b303338e465933565b94950c11836e8e33ae8093b0aa0c5d5d555cbec5eb4190eecaa1525014e8a341e9400180937afeb126c278a5bc4713fe9c417c50c1e47c8756fbb6a6b265bdffb4c1456c5b7d7a895b6932dd9a55623341354549283ccfb36abb3068b2db7348bdb1172318357bac12422ab93a32b453bcc0faa4e8e595b05a145e614aded6bb77278bd78907b828b18a22aabea48bdd69cab061522a618cf39406f6c78cb983354384415d8b857cb451e01b24f489a3133070d775307fb61a0f6d56d1255c4d4e18c62e57d8422080cebc919b81e67c4304cdb560ab16d929413af650a53f870e8017e90096452ca3ea648ca644010d34bb79c5898b775b197189a55840f43371dd9cccb7b4a28a66309a515658f06acdddc47042acee250a37632b42af51adf1c0666902fe0acbfc8f59127753a40161de4ca07a5c8bec0d8ad3141487da4a842147b9de945e4962699033375548d680b88ae8354d6114efe284517778eb9b7957eecaf5b4165424a5f82f100d02b7d39968b98f69c2cea1a0b39394f49265b492ea8f4000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: bc07d2caff561b4645e3878d1de0730a88c05f46348526829a396f05a0a00603f0e2fc79e13beaacbe903827c20d9d687f3fb4eb2a8e9335459fb21380b8bf3734518778d8cfae9524ead1427c6a2dc379ddd2e985e2977bb63e932ed59c83a8b9a593e2adba0cc5f106620fc8c6c4cba5106bfdb4105def0c1d7b6800327cacb964e1d4ebbddfaa15b279115a1d05754c0c8a715fc2fe5aa09af7b96d5a93e758458aa5af8cba03b942f4d3c0fbbc2a45d3f7af5818d67219a72f4f538883ee2d3e507e2dbf4f7748446443bb71bfbb4eff0f57d8154d29f5cb26cfb52c51b676e9b1ac08786d5f475cbbfb49697a748b7902a83da49d285a48c7e9cae74b66a30b02a353a287b40a66a0663e7a71adab7d03272f2ec32d47097d4c303396db3e7b7a947f467a70646777cda227d72310806107b5dc16cfb36918e88784524e3a46c30242a40811593aa8f72c742f885a9623534753b2bac5e29110a1a854646abe1c0337251e85987aa612f3a095409a5a632af14acd19491577223c278b18a9c3ffa7f72ae49b89df6dc45ebb2803ece96cfa94ef9ef5b24fbe686ff90d130d3ae953a4f9ee6581a346b0612f84cb6ccad4fe94a53602817d67c61a9604d288319f5933f4a97dcc6ffc36cf14db593fe27f873be712186a6695d949d4552dab37e36e2e0ced229ea9dccd6d3bae22f9fb888ef400b594ec08a15972e8d2478e50f11947b52bf384c731b0e50dcd4ba116abab8af3b880c54badb11d83b4266d3e5fc25c2c8dbbba12fee2fa5c2017987f31277a67ac702b8dbe110894a8c81011c7c662ce9ab96a2e25cf5056a3e202dbf6bd5bef2347537f7811637e932d13ce02283d48d032c284b6cfb84fd813b6c3421017a7527eafcd3fbc5d4324b5351b30abcf1b366f424a8a0b5edf6bc1f3e8702b03eff875687c6caebd7bc15f1118696cc63859e3aab75aa9acc58484da7f2bc9a120844e4830429c0eee2b2324890bde302bc93f661edd9c04e1183528482f9950654e8c267234245aa9482d94e90e00e929b65431f986e7bb34524cc41f4b4443646713c7abe6c4131a2d67f3bf42f0a7f2eddf82b5c08a94d99a0a7d14c1b0b375fc158b7d4276eab22efb438f0d0a9b30e9dc127026181e42643af8da0b24bd10a532069392724948ad722b25477b481006fc1fd030aa62b217e6695dd4c7ad34dbfb75aff1df5774b061a4ea8526e9bcdf9679405c0d2e40dca00c9e80840e832fd663596dc55f602d094253893405a02d4414f119d23c4544cf832888db5ae8494dd2e8ee357753515d929b8a37b5b45446ffac20fb204b5c937f6344c453ffa449fe839b4afe1da61301057338fe29df93aa962a7374a2ec181ffff9252c8af5c3f75ebee02fba58a76066df4c6acfd5d1c18390652eb2f469d35dd708e63a498c08c5241b2717333904ba0e6e0845dca8c9608f28bd1046805cf7b220498145b23cb18184a259458dd2fbaeb1c383005a0d289562b0a9daf7d1e320aa302fd3d9a02c65fa901d46d4 +shared_secret: 7e1b4195e9cb70e6884d3d00f0b3f0a66b4d8c00ce112e1e79a1dd236ab62b26 + +# Rho leads to a matrix with unusally large entries +entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13 +public_key = ddabceea01649d9c6588d68c05e93cb6959fbe348468cb6e7f482d2b0507a097625325a7ff5740086bc203410414845a177c578698b313842dd2737d79806fdc8aa4ad8b91b514b6aab60885a49be68ba60d05891dd1cb47c1850b0105ec15a95c93136f22a170e346d2256a0cea672941335423cde35492967759b4317981c34fb0d759a2b08aeb411c362b2630c4b8ef342cf844206d7a5a3934bdfda95ba9fac912fb1844a0bb62041868ba0e3660a5551951b39880eac2959b5028eaa765492416ecf7a05102450eb20eb2a28be460972066b41ac87abcc28b38a7c92d91779e0c7cc8b42f107b48269521edf0c558a1b767536d295c3a7e60b9de6a8f299563be7c4d33d33940234af8c7764b181fb7b5af1dc88e4e830725533656520af7344e4ab40f6df34a90a898c672b854021d0631c1b1e9999d8176b22a5ce829a240642e19472e635a83c5086f87872f72a62e5fa038481a6861141227666f9203675db45a444c6310518d86a9221c9b6bedd753bb7914f7995e39031963ea056536a96c9b14598c95652091dba9210168467d7388b73770aa905052645eaa877c6f8a45acbb775d080521479314e214a5217835667dc2cc67dac17b0103b1049a03585b30631c6dac53b6d4056e5877786b295fe94c8804b57a027609bee938a8812666d12345e04c92469463443fad1c2188c951cfc6a06c3b8c3ad8856ef26a67b7841428a1f5b69a3fb82cad843a55645b78219d6de824701b0b1f192d4f816f45032b1cd5b465d33b3a9cb2fb04cb271a3cc74a8bf7ab6ac7a00e8ce6a0486c660680219c6ace0917b31595584f4756c9c5273ee36c37d25d5da146e57613edd34795b9cf61bbb7ebc441d575631215a87c4070159136348854c297cf3ca44fb2814448e30eb2c555aa2393bee966ceec0221a278f048aaa6d09b1d801aa0fb369ae4480f051329390af222712c61a59f98a31a03ba90c1a6c34c1c98c0be7bf59fd717ad9894786acb1cd081405c66a2e79a1fd77cad853761461c99218aca3cf4920703654fb9529c106f41a78b259294709bbc91679d0442bb383c28d64683ebdc7b94f4592c8ba2c1126c9dba9377040d3a124176fa33a3905cbb96764bc89a69480b74e38f558b422ef22e390bbc76e048c01129c97c26125bb2f86c4bcd274816265d8c41167223b0a22406d2a193ad3b1083b0cb75f9542e55b9aac02845f59618b5aa580b5b2bb44c192a906ce61b8c368278618d8ca8409fc02bb9b097acb208e3c2a9b651a316b70cafe6b9bdb32ad794b4f018b66ce55639e5558f5a3990475794bcaa06f17093d490fa583e6fd9596b40958359a30f813b940b1e1e4223d3857cfea691eeca944de845c2fb502e35a5f1a3750454593fe1c41662a3b3da407aa269c43167acc98f5f3c662d6177d3594d0cb800087c6a525c586d86c12e941b046625d90c8ec6dc8a5c546abb19a0b585aef39379db926691124265103bbb49cfc4e9100c803b4ef68a904273a6c899e48609bca003bcea9cf82203d52b5f9b65c409ba9503b3b16c7077465aae45d2cd4ada79ca43a9e99a124b7c9fa24a323f6c6bc18b81d9a6161191561f3776740b539479582a46bd913ad73e09000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 79efa2d537baa2b87a787317162d3dbcb40cb3c25f540ddb91aea6cea9870bbc5a5f86f8900b913fd4154bcfc7c8a463b9b66118c502ddad539186fcb079664f44a5363cc8d80d6a4c09f28cf8952157526cfef7bad2fc2cb69ff03ac39e37d47faab64cf54f63919303badeaab9e59df7040511ae335c5230e46e00a666b994d647d11cb032e7ee235b5e18b1894621ae93ee129823334580381b857cf0360196cb75180410f9fe7558d0e189502a5dbac5b4f0597cb3d1d201f89de26f7b4ec0d200a418a26cfb82cd4496c3ee22f6eb60f3ad2e1af981c238da13063d1746d65f77ce0ef30894468b687b31443c7acacfc3b3878fc9ec56878e7bd1a9f72ecb1706a4e5face0a83282cbc2bd15c89afbe3c97dfaf395a96ffbe1a3f75af03311afc69dbc01b11ffed2aeb8906505e910105806febc6e1298fbb5c0bf501232b888b7e8b285953d250b866a20cfdc7833a732966b3a03485ae2852d0a3fbeec6dfd0ec8015db5de69e55f091e956ab4392834c5128417105541b1145b27175fe35efbf3102277b35e42bd83aac25e25da6c55c28a03b9e2a8135871b4cc49fbfd5598c9eaa2482f249c0b6332a6999306be55921a3016499bc63a072a6e9eac894a3ec209177d07208d0d271c47f8065d0facd2e975011944f7884088768fdc053cf86f31f6d348222c06467fcf8ce0d404a2558e8cc422521a4e249549037d3e8a29e03a9a9bb511d9ffef4c5185a380d874732c9e862a6e8fa3fb72b213dab2ad0d91b047440b1d334660067566e6d2e14765d8fd0a45b9b8e8566419a6d7138e5a106c31b1278d50027d152bc8658d7045cb2297bb8382585b38be2d5fafaa7e8c867c74be013793874f181a9798193dee26fd5812eb469d1b842a969cda65d3440c67b00e6d1c3ae8630165499c1b4cf3153fb5731916ab779a2562ec62637d747d61342d832aed330e5cd794de900fa507d4b5fbdbc5f3ec1aa69d0319b3644d46d9502d435c1b5a329c0d3524611a145e3024595e91c2afd577a422d59d4d54a430f439534003be467b6f018736c4bebceaf7c83c799c2b7745ce7498dc84b9e455b96410dba1a0a5720fe703b7c0d859a42445eee7ca3353f294438a7d463fc3e98f4403f93b5fc4add88cc22db7bba150a2988639ba96cba8e2a0c980c9bf8cebdb5beb262d79e86cceb774750cd9a192ae93d85e60722ec6590beb7df8e4d036837c97dc05c7964dab00034683a576da5b51aa8a0622edc27975978c7daf1b942285572b09c170dd332a99bbf703d84becc6a96373fd1c0b355f063e4c2c6e59f5437802676000a819b9b99418df893b98a8e6ca22d95da2c151fb24a3a0e5944ac4ca6376e6c281b275589a3907c0473282967a121f1792d09a15e9d71e71e73f9f627ef0dd478061cf053af434b0663624c3bbafe0f37d7a32504e9c686f41bf48e287aaa8fadb73fece907f26a9576611ab2176a58e5c1f3e98ec0248a15774434c2a81c7a8f57f9950b83c0d3770d17c4e57582387d6f19bd +shared_secret: 2522e72d308dc9d7d701e0b024af9e15627572f13573b27c406fa750df9636fd + +# Rho leads to a matrix with unusally large entries +entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a +public_key = e2c1184862562b91806efa62f1b72a8ec43e70663de1f66a59687ae0cc1d9de1ce69244fccb0841b4b1de2e964e29408094a1ac0a9b4daa836e94454ebb942c6e9ac66f39abae73f61a99834292ada3c824bb53c8e67912a07377da92e63087f8d947f59d94a842b7aa8832b2c3c1aa957577f55027e76c106f86946f036804671b0e0416cf62e70eb8194d88030e2b38585181c4ab1fd8165a821bd68dc8fb3b403016ba5fd129bb9d23182029c4a292433087632816c009a237a608e65cbae17d688a326bd6c1ab4634576fdab2322b983f29c3e63b31303cc386bc90641c84965572c49a91f4e8258764834f38ca7f869cddbb10674d4296e5205ad805ac48462d3b31a9e6067fc0a27470aa593b896c3c319357b9bdf0632bf0786fadb0ac242609462a06f82460ea75762a678fcb07c350649d13c24c9e33200c9ca0e9bb87dd2c8578c7c4e27b1b75681a0b6aec6a55e767c4e14820f2ea609a16b862d5695556b0937f53e0ae370086c8f771295b1a09f0003a07bf512c4272f7241752a6603f8f51ea9a088e5263a59eb0b13b87a1d2929c2c29557681f180261f46c294de4aeaf380ca5f79efa2c64ed3131272ba489494ddbea14c69c46fd6346a7ec9f72d89559435e139a67bc3240bca29b3774127dd85d53c20bef719724612c462bc598c54738c87a00a9cb8c4b44e4e7ad4573afd9324fcab820cbf2091fd83fea52adc1b82b3f6c86369aa358498197631a20d40c790c2ddc66b0871c1ef882305bd978055bb934467d3ffc0359c2b31748cb19f615a63262fdf695f555be1ac432126b08e4a97acc18b8606ab6adc5cbe4589389e1121d737ba2b3a84d02bfbaa669f3a06b1be13fafd42a1773c830749cad35456e956c0ee64a5fcc46f1763c3b0c0d3de5c296a28f61194ae72979add8c7ce710d4ee846af81cba3e18d5e459addea9fb565b010e9ceed5798155227dcab155984635d7539d68c9f0d30537ce8b573b6bef1170540d0c10528737d6a5b219b2d96e5709a721b40536ee3c416fcec0bdba013b0fc0e786c9765d312692a80a5c9a3d65a6662788d194722d63b4bdcaa700e4c3daeb911e4d45674c3720be35269a21c0717a4c3aa2f3e1ab4f20a885cac44228138ebb70bb4548dedf8678d2163c339c1a9c719c2f1a51748571358c1451b0ced7b90109c98591126fbe57e1c913b5a935eff14450a22c4a108108b99b6efcc9bfd8438b5024677144885f1886ba068a6191ae17b9ffac1087bc94badf510095baa7167a7fe245a89a2a627d2631706a15d5aa081d037a4101b217c1c45fa0d83dc790447121cd9a533592cf8ac424de8770b45307f0aab484467c4acaa82a5669f7621e8ca42ec0b9222766b52775173b288ff5b01d70a60a853aa44917b8cd09a4b666138e91a3206c97877c96d690957b58553018f55f168c1c51bd9a48ae762a65dc73f366c79e77c42e793750924bcc1472cd5e552e20868a42047593842619c2e0fd40a3c7bba9557bb5c71185430a0158b9b95d04fefa266005141ffb4ba5160a5eee1499c09b11c549bc88cc501dc94a0a5828ee8a776a2a4aba3bafd410cc8354216cc3a93a457e9847af39b898b04b60a0c661a72a2df2b000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: b0e578cabf9deab616e52934955f42eec74bde5ea98acb022c427e08232142dd08f9120eefe5f455c8f120e672cb68f3a146c3aa457b637d0901fe2b4cd45e8b208e06823b8aae09778cd00fff5bed5232d219a2c33645f2dc30593e591f697118a8472eadbce05c9fbbc5d4b717b880065173cc0854182555376dbbe39194e4204067358808c890e5fe96028921fca344e3500b615f2201a1c4e4d13dcc889cc9b1ac72429074c21a52f4c78ea2c467d65cd2c9ed682f21f31b27af4eb5cad33dd633185bf32e726fe6e57b03168803f693bd85f5a9f2c3ec6944e9ded2b8f3270a89139ce50ba6ded6bc6b0be8893f44aa5856acda60dc1c4c0834d45574ecb6183d6e59a183c0125ff45c718be2cf85b5ce6daae6e37336ea63856561f1bd4404df725d5ed9263038d1c623b2e1aeb35924b79de474407168834891af783fe5d83a631eb14d7cfa949d698ffa45e7d8c46ed4abf75cc666b78526c9b95ebb2920c77c56227eae6c893b57f9f463ff2ebc9acddb2f7ad543c5b2259047a4cc87ad05c08bbf02e8bb267bc490c4b67106fb598d42135c927fef3397f4c3f6838776787f23a9759dd3214075e79eb3929932becde84e82c257e4638a19e1e3312cfe09d4ac681d653d749c8fa6efa6dac35ad59399f1e233540fa354681ca55db90007039b7e504e2e4082aa3e4d672019741aa02a281454d4e1c73a1c7d0b5449c2e143ceaa3b18cb9a74a89f1ba74963dc5dd4155a356211277af3a267947700a2cfd84a605ab02d37bd6faa8a26b50f7b3d9bdc79913272c31dcc0f0183d05933a9f233504ddee2dd851529667ec5174a3d23bfca197538ebacda36bc29ca675384c0b3f45e4f67fb66d8dd4aa57b7da50ead391e6b663af173e7f4d46139f5d0f4cea84dd32e4e718967c6b93617271224f2fb3a1ca5febff5f26c4edc60e9acdd9e464ebb4571dced645814e1038a50515a7e06501adb2de19fec4119dec7548c41097964c3151226153ccac24abd1415579ba1c37c805a5827332d97ba90713829fb30b7b09b275d75bc10d4a26b33980a0ccd4b00844d9f379551bd0170ee895286526ea9625a72b6cb8decd9cf18e57262f8102a025025e8168465a65a7c7e4d5fc8742781acdc16171085d51dd5ec9f4f71f58cfaf4557a55d07e7c164ccf7eb427145c7f9a800e9bd9192ec0f74d19fc17d3881b1d55e8600aa55abf78fd1e226d9dd6e8da2bea15712f5f43325d4b9c083d6e37d35c043f2bc8c796ade072555263331bee7fffa54e2099135ea363575847abb770322376cbfd3f1b7980a1857c55fc82aa80bdcd701c7b7d66221f08492efb5438a04d041b485bcb61f6fd306e96cfe758d99ca1cee70b200eedee86145fe37ab7aafcfbb2df694361fe9923e754187c3277cc895c4a53732ee118c7b6156b55b30847a6e828b7069a5d4be623abff66ba87bff49294dd9b1f698ba445d610973d052a80691c9968e3179aa3eea5b0bccb3cf674c5cfe7d2c14d7b6daa7a4813abcd56ef930099 +shared_secret: 1cffb3d6d9dd9cf90d79fb2c5c974818c5bd6f32ea4d44c302337c4cbea44334 + +# Rho leads to a matrix with unusally large entries +entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517 +public_key = e8014b4f4687bb6670b1c2a29ba577100943d5b926cb396423663f710328a8b536403530eee05006e7a7cd679ea44c29146494f1775cddd3b43ce6a903283f7890979ee98842d5a76f93777297abffccc0b8faace8f362c081aa435c32a5c31773bc046e61921f1a5707579fe36067588a0f32e2cbf91aa3ca6b38a0e12ffdf8685874869028775fcb7d7fd7a1e37c611316515638a510a13e950960e6f39395e436821165e734837ed575ad510d4fba6c3ad67e039b71a9b6c2a7ac240ccb3742d65b4b1c50a6a1a496995da77921ce33624fc48135e88c59caa47b299605ac1c79009dabb2062e375547ec907590b9bec52c86a6b9e394ba5f02401e4545c462c5f320939075b516c4a5dd0aa5d879456449a115125369584a609a83df8685ed2ab45f038559dc6b0ea170b09680e7e747cc7246b6c182d9199941847d9c1168a84400da2a98215a9e96f6bc869035a8822b27d459cb52147d966e0c354b70ecbe46daa9034074019acdac30055d8a1a02741ed8e602e2cb3185ea44c9e61fab637188554c8b12cc5abb9073b35108f59f6832112ff23b00acb0936594c00c0534a8c4c11cae4787092bf497b60b4a44116156e8368c0c950f3677f6424690803ee92373ed5c13d84c355bf041edcc872965816d6723b344244d0a54f8ecb0f1703ac251293503baac445996a1c9bd6ab851eb52f042692a2b10e4b9b44dc9625973af03fba67a3a93ff849dbea64739f643bfb803ea8653c2b9ab9639614000994bf48a8024c4e61c8a07a5c79b19540084bc7664ad44122e46ca1fbd517c8e68aeb3d835e53846848742a9fc2a4058047969bc11a773e623462c7bac66a34c62db861ef64dedf23c0b7441f6b75b4e60b86fe309b1b7746d558987f6a92cb8513792360ef76cb6548f0813ae8dbac418c25a1d95b06c530d79c6751e7569a2027f8a5354de3a70752764fabc632f3a1bf2473e8aa2a5cf815b3856a89afc122d98ba3f74185a3b2c09049601e23ee226329f024ac2692adccb2018b22a592a450b4a5819b2a498738d29f7145e534e527c859f05ad96cb963314c58a5a6b050ac6ead9adc4782859e3383170cabe4871cfc17a30ea4ac55cb998e77e1a26662a255f99f4ac7b98723341b2c7134adcdcab12a473bfe001127bcb01f84df31384af06171776263085bed1aa3374da7136648608b569a88663d2122e84b4b946b35c1f24a836e924202b7c7828c15507b17f906bc0e4b28c230134d90655696edde11a32c7a70303aaae3363e2a6947b4bccefe9ce62953f92521029959096a8910e71c51b69a0615ac790341c0ac3a574a79d34c11b4a974ffd7cccb05995d4089f8186b545b80a166982cb53123ef644e82897c77889ef91bd8c5a4ed1a4a414389d77307d53487940fa32782061e8458e0c601c884321d121b48ec04bca78c60d39b0c4bc9291945ae18224ec73ab7a451b9cb511bae34a20e326a497cb6ce46b5848c289da630f497ea3975eda79489f18a405e91bde288379f291f538c1a1426cf1634bc033098bbc9958f7af6e408354314e7221c37c1610bf904cf9e7807ad327f0f316761939674867ec7223f06a245711b0d47832b1a699badc8e1217798c0d000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 3159aa52482f4262cee553f9eb6d853d091a507831f5ed1af37b9c55f217eb1e87e8b0dfb653932c27e9e9f2c4d45cf89e9cfe9ba0d5175be56b7fe3751a4255649cfabdf0cbd5a8704d58511acf6e0580eed572561fab262b24d39c3a430a4e54fca969394037df12fd8cd71b7b6ec3d8f7345b05d4c16c5871b686690cee9804012a3379bbcf720f405c3c83f59aa391cefd8b00a73b41147d42c8b7820b0e779c44e032209067349fa4cd35e83850ae37ee73f96fc6bc5b71ff9b0462604b4e07be60cc76903175b045b908c9b8e7e94c6bc7c48ffd49698873913f9132025e51614317d27a874e319d802923804d1ce1626420d5794bbbe5e077cbd7fa3d958fb2d9608a3d41f605908d21fc7f942e3152337115a28b661f76405620b056692bfcc066f370449628f8e31b7453e5b7b10702f7c195dfb779fb3253f86acbaf4444ba9ce01c9b043133a233030247f8fc44d5b8c9b024ee83c186a62ba9fa5a3e45389217884a478f238d6a9b8eaf3d87b7b4b4375d4d5226dfb80255faab42380365b5511567978be9726d21178eced7294463a348b1e976d800b1114fb8230115b28e51f628a31aa8cf2e3253a7dccaa37f975fa2b8d32a6b6147033cfcbde33ab8857e3a6af95e4cd0db62fc020f55c2d6c9204a05835e2cf878c66502f572016d95b30c45c2ef6048471ad0cb7fe14250dddcb4014c392c22fb1dce1adc8e02f416d3e9b417f41c1b4065b975de472d0e9fd5b3a012ee9bf6311345b4968f6f18262bfc2a38d56d911f9efb981813f77a8a8d6af0618e015b8b005e7ea957f89f140192c7442a645ea7012b5ea2ba9f8cd2fea2ad3e41c6a57582237d53444fceaa933d61eac36d03a2865bfb7f12fd8cf451edb5050a35a75c95dd328296dc32daf61622ce0cc457c5968414b634b3e12a0ce45bbd733e3982c087a037d89cc86d546007bd92eef33949d19dbd4daa18e59c7ea3572bf3155a9a46af527347f4f4dcc2be3cc285d65f2f86c681a137850431ce8d2f76e295e74bd0b3c88f1b68885522dadb99fe1c8e40d938c9610e466770d62c34e9393241907d9cd7bfa470cb8fc149306d9450a7a1887d03cddad3fcdeda1ea54d3f126bb29a1ac3d7c5a60ead90d74ccbf1a75b4289a74a49e0a7c4006ab76a83915ebd4a95a471525444dd2c3e748b1bd347774e2cf01f90f05a1672c58f4f563e4da083e95e0fadd4ba57acebcb45611a3923da1d0d73f5c9a55489fb0097e123694e413460252892a0c6317dcb56efa834f7a51db4a413976afcb30ab4dafbe737f43da11c1b08a2472cdff3995dd7d23382b866873624fedee76823d37ec230dee2107258993d5b802fadeb89c9469a33c66c91567ea92581e0c2c1eaa2e2a4696b024c7c6009687d07769438a8b2ba75a7bfb32841dab8acfb8cbd4d1e26c5eb68bc49bb394b178e6f89dde843f4e2c5353b04390c245a0bddd1aeaefb87528b719fe42b35ad2a89ef34826d9e23f95b1bd3c3b24f785985e10dcaf0eb33f5f71f5cbe55 +shared_secret: fd9e333ac811ae8be12c052c65131e3a7a32ce82e39055012ea564e10acaa85e + +# Rho leads to a matrix with unusally large entries +entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1 +public_key = f6513e1ec8234bc145eba3446eec18b3826b2ae709792648e071a7c4627e4ac7716db5b1d6040ba7b8ac39b347ef721a99c879453846e1aa591b8495e19003df973580d4192cabb72ae2b1f498bae9b3cfffc8bbce09122cd1910a406574106810dc556894777f35316c992f3b902186dba411ca3462b927688c81f7269b7c2770de5aaf90c81f752a3ec77942729a68fcb38a62946c601c945249bf0e280b66764ba71a44134ba84df1400bebccc61456fdf3bf50aa85e8e60f491ac1c1317d831ba5db6601133883fda81115c67fe4691d9df01fd3732b336bbc3899cf067b9e3905294902ca5686480cc94eb4e98260408b4dd060cf4b5344380c89d564b31158ce098ce1e06b91446c4189c6a4d89aa7e81befa900b250a7060406e25725e09399963c5e3e04219d390e6c28983e335646485023312c4d5bcad9aa7ee683b935d71af1908703fa2c9d66c8b6c55049b3319d39c047b5824d04975a9034e8ca1a9e1a5b0bcb222c5b5c848818d14503c31270d4f8446d013d4ecbc250b72dc25934726b426afc85631ca1065ca6e957ba00f1176a6a45b68a5e93274423e642451129ce83b7de439963c0c4e5d8b25f3b74fc053151610b4263725fe51423e886bed19c534165b4cc90fbd67256839b9371290af9853c948251c768e157041ac91fe6649bd1b1855dc417624b8ca0d798b1947c720b3414db56f01500fba30207322ede05612bb6505818a9a68538c9eb98f2b0a83dd38b765891f0d01f1db768d2355fc6b7a47414527c92ba104637072a72a6c0ce74772664e68660c9c0c28347315b17273a6846a79904a04b90a60c5b15973630209d9460365529bb72524404b3d9cacc013b0a7355a7eb2172d317cd356a07e5a341bab7c33db5a48fca4b1600443df6bf441983cc05125f6aa94f114a8c3ccea3f9c498c1126c072f27e97555456114f6bb3244c4698c3f6091864274a16bd82aaf0711eb8c4fd86a11b35b3b8b0528cefc253d7906b6b05382e37428253ebda5b48b6a068354381b24348dec73c279010bd32e41431d139a021a398f0e5c7fc1a98863f069b9d42a96b029455670caa89e0b867781f73fb7549392124485cb032a008d63812f832cab899a8d5d24b403e76d17d6ccb56c729e15abb2e04e32928c9b8971be6a4c70b15bee620eef375489347df7c622d9a803a86c2a9ec5a7a0554ff763912bcb7f57eb8b8633cf6ef39556162eadf8c285b61a53f4837c8c9ef48c3a58b3b6c31b8227c98df0b9057d452df2c258da8a1de1b99449c0054c48a0bc61a2336323367077cee252d366661904b12ea6215b3ba55aab06f60a517704a4046312731325df563cbed805e2c7b2a5848fa1cb97e17a2f926664c2947a2fdb56ed1b3c5e084a680073669b2b9e888ee010410acba461910795958e7c0c98294865cc700315e86a5c54912dc2affc2469244912d8180eab244332a00b7536c4cab62345872dc31ca3c0d2078d07beda4431f278aeaf2482cde53afc56352a894dfe3948fc14956917a4dc836f54369eacd4af052b4aa6b60af5e86bc868be275abd1118a83e5acfdcd4c92a3c2e2b13cce7101a9d303339f0b2dd4a282499579b803ede0b26c75eb8af34000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 5ab063c95a541d1be3fa0744e0db7e0ece17b6b47cca0fa41d08e7969fe87de63f319f80b9a31ff01e203de6e518e62e6133edd108e5a3e08d3f8ae0556cfd36b399dc1ebf3b229bc5013d06d7550512280bad2b27657d3ca0679d9fc62f0bf875dd0b326008a89b4f29e97211ee7ec75108a9e4a320a34daed15fd7ad394a1747e4e35bbe4f1118703c330aea81bef3e3883fd41c3efc3423ab46b553c7587894ad64db57bb0fe4d289d54c8ba78d40683bdf6330ccecbacd3f7f41541f1f2b1a7626d3969df6586b4214c02f921451f6adc04f5e8de1e3beda82e4aebc5e06abb33f4cd8a3b3b5741617b6a385739133cf5b77dd5607a5c8721d5b51c6c0b6df551a5b440082093f49f31910a04e4226b9ae6f41383672e0694bc4075207034e39c40668aa3174cfc8a75fb1a474485e9aff01f3572a5c7e4914e7519344c8ce7b81377d8c2af66bebc558359601b21beb984c1f00564d46585b4bf02c958c6b348642be25119b12f34a6e5755588f649837ba53c0efaa4c6c95d109a4ce1f761c1dcecb84cce8376cb1c4e34ff932408ccd2d06f20c5397f6277bf9c3234b20cedd45afecb7e87793d85af15909546c6ee41987f36d85865c8c1e281e13d9575abb9a9f215c08d89420535f73643dc584707deb7d5275252e862393fb6493f9e126c651b7981f26af8daf978153fa4476d615183bf147629fe36de7cceaa670dab930ba8a684b0bee24b55961ea556123b34e29491704d2122e46bed0f6fd50601e13a5d46c907b915f3b8e695e0bbf474aab6e082d156e79e59572731b48338892f2268dcbb8fc21cfd537979278ceb210fe3efd052365fa249c97e8e596ae6225839e5b8b296770f3b42240b8727a0a730534d0f42f8c6ef148fc04e4285e1aecf060c3666fc17a1ff794f584b26b0b1c41f0fcca249935cd411a151932b09402016a99832850b3f56c4846145738f709f5e11e28a90d9137e4e43f03dd1ddb6565c67c2a138aca59e8aebcfa61984bc7ac13a60ddd2c1f0fa84fcf9264ad5049c888b9f555e024f0fa685474e083025da168e3b9c4ad91f074e7e711f84bb808604114e09d1ceb83b697cc0f045b5089b0bf7381ff2efc08e7316ddb7eb7be47a1d82cf533ea898e668f0da124d2e87fef2b558f877b50b13a08641c74e2726b19fa7c0f33ab213f403c328ea60d08c07155ca0c19bb75f7f6716de89e34c20f9d15ba8aebcb98e9b6461477f56f9c65ea7e8744a4d7306e216f806ea8f9f1dc45781c1adba44319031fb9e81c6d33bb317d959bc53a677270f13d96da19833965aea9a18172f6f975bc4d03036b1239e7c315ecacec35cc0f788be1220c0497844fe7c989fff5ef7fcdf89c261a0fed3915cbfae94b1fba22827daaaaa0f968f1ac71e9772aed587d607d5d3f57c1500b6e08760e0b971c1999d01553bf87f55fbad96ce61d0750d75180623543f40e5b0cee74bb429edbed1b4c2a3e1aab86c8dc7381afb0b9e7d4151a3f76b7dec4199b97304d7b3845788e19126e +shared_secret: b4b4634ad37852e19175ccfb5eca50093291da8f76b86be7511379188bc20d92 + +# Rho leads to a matrix with unusally large entries +entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0 +public_key = b0abba905c1559715f25f720b7b745a52332355154e60577e598c754b6346b335b0195ac305268bae78bb4617807ca4666738ca81515bb041d43a4188003c52ac4ae4b3808d8c755d3e99d00537249d39d4cc02ed9f98ed4106895666c47538f79e30f5104adab1540a1fc58d1a857a1a4611257be37e0327491aa4b543aa6322ef7816a5c9a55eb3bc8604b15540b62c3405b861a84218211c20bc3d35a8a506b0153306fa98b9488a7841d85197c170f84c380098077e42cafdf1913df369f37f3291ec47289710c57f152b74572c23324f83618fd281f5e41976e77097a570a991b3bc623ad6331a1bb34673b1c328319758ed731ca2981b50a5a2cf8c66d31b10e88c95ffc27c3b6aabe8b207e6cb4373464b1b83f4a5a9806449bf7fb622360bf9f098b56729c5738191d57492b377ca8f989a87922a7368d724b07b7e36133620fa0735d60f5be8b51c19ed1655de5108681cb27273d511c643b7867516c2982a74f62e4cb759bb1f5f0808cc90e1baab60365722293bb07841803076504d00e6fbaae853749fc322e3458810ea41d832b35bf05a10e62a4ff8317b506b9af7216c445663c9061cc62914b0b72b5989d7d9c2b761c2fc5a28b5839bee5596c0de25c10a15776447e17770edb666249a2310962152059c5ed5738741a29e899072427891fb53606ab8b5dd06c005d239adb7bc368b10b74508c45c4aca726fe59c7729cc1ad617236e1b75c760e47815df33297c084429ca371c16c5761c9a23ebbcc2cb43ae9734ba9495d5a86a89e75aef50b9e73470d8d9974cf27a961c0cb2c180ff36140818b005f05afaabc86d8b8bf5c2a62f0632ebeca0c9c567514c9311ba6216fb13f1603c77656cced520d977ac75031044c8790d1b4c97dd38b2aa43dd8808a79e406f8e01503db8f7b51cc1e4265ee830461f41cec398251ea60d2c573ec59b4d28b09dc9446bb972f6d134e2e192e987153b39538e1f631bd81b2e65c2c5c68a96d1b78360889efa4c692b7cc374160e8dc485f47a676d77706e047d3e717386bb49cd942e4c05374b3a1cca148535a3ff1085102f4a7077b5f9c7b1a9ed651edb32691037f9388b672a662bc247beed215d51b414d3530c6b0631999663fd7c0e5da7e411c32c506476fd08a09d499ba3c27bbf6a804cc7e8be5c1f3f97d7aac085dbb3bd1076a69db89bc990efe59b00ca943ef8560642176e926af342b48e8002f6d1aa99b58cd013b03e0d285455786b54a4be3c581419730081361c04697b1b2c07df068621213c8ca6554b5982d5a1aaa113ed9343a56101aec68b838a37ef2c8a15d0504c672b278556b40c766c2066ac995caa32676da182545773881545cd58b71d3d7a02a209bc7407f420a830513b9d9d6c93c56571e42c8bf154afa060667a46d13cc542429c9d1a35be012cd3c9abc2bb7484fc89a4a83a20f7c2bb088793dab732ff370cbab614aa851fb77ce176b8f806c4f2e6068235b93d08c39e96badb37a457e8a790b2b8ef00b0b9e941592373fd2caa3ec3477c6c440d0daa755ac0ad2285754ac64b0852086112b0c9794f1657916fc173209a40425afc9b19946c529ca95154f24ca3cda5f9547c429836c377123c6ec000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 925fde875ae198cfea88c4eeb3a0091897e25a793672df1de3f24ab4fd3edb2cad0b07e698f35dc97bfd1d551fcace3282c8c3d8131857d96ee9986da7b79a02ddc6cfc9fb7f2b809a8e5511b1c1256dbab33e7606d8a5fc048b36f6ee53c7f556efadf94494595a549ca260ac9c45bf9962bf406610ca58dc286a9eeccc447a767b6db3ab009f5848558acea4503de747d72d43218babd6f68c091b4581f4e41f2e850047f5f543a02407e7331202b0eac7bed180061bb53f4dd3504ccbd3f298d96b43bbaf8f0c2545be54c59830e1f343ca88bb9c6812c66bfbb59a6d68298985767a73d34fa69b52cea98d95d8305f97c4d4fd643b56c60fe31e3c2ee7e938ac2e4a5da2297e670931c1dea5fcbe9cf118c62a76a461495f10f640fb416ff7bc2478c0e8a1356bb840345f3d43476bc4cd990eb7f7cde7ccb96452d055397ee402be2ce395a29a4f4061ec3d85b99f086341441022435b636028a1a04c5d787abe1c24a5a55653b7063b1cacdaee40ae0de77b4034b9ac0e860a90c8834b352c71e353c02b1f46b135fa68fa7a5c1c719896987d79f3174b8d0b0c28ed64cf9f2907924497e35bf519d519a9199a4dd68025992c6f466604bb2ec3d7b13eba76e4803fb73bb125b83413998ae86691a0b35c0054e1418898f435ab26cc12a12fd4dcfa9e80887af7ebb6c856a7fc010cfcaef9e1c5a4dc24a91a622fb7307521faff0b8e8e966b7b6ae849ccc75d31c8d700a3b6a9c3f646b2a88d1e9391c2ddc6c9ff15db961874c87dd94bf0165cfc8f719806539a8beb8e28350610461b1252872f0f3ac273b3366abd78d9fe8868dca1a5eecb683ab8b50ced8cf4a5ed3b721e0fe6b205fb191985ca745ff5dae0010493f8296b6586e1c96f7f23fcb4ac4dda15eab811107c977aa0a16439b06986a9027640cf7a01051934dfc758215d22c6f06866d5b871dfdb6ed240a73dfde43f7f89c0ce6909b54b0a633a25f7253c10906166f81ae91a1419028d6182c1f277dc7872b824c7a5a22bc7afc02afeaa9ba4c271ee68882397e6cec34a955cfc672f4e6f5ed870a35ebce97f34542cf0a162938c91922230ee3fe9ed9a166a790ccf450b80cb5f483c3c6ae5b2e52e907824b45e69e5ab38226cbd6519de995e1a62a910fd45ed189540e0b4058ff01edbc6ba4eebd58d55c0e33702de299eb53d6518254b8471f282779533eaaef90602e52373be8b519c56a2f6fac0953c0f84135715c5674e45d15804fb94d9e0525ab493aa625fbf73ebdf74f0a1246e1eb0e4e2e261b24ab81d8da6e1770634c747542450cf0a2af23507f8b6766a16dbb2e67b2c94859228b91eec6c59f5a271902b340320412ae947398ad102073f8b9b8c021f81f786622c3483e61f812aa76232e6f9453eae044c5e918e6e4e0e18a78efaf6cb36f7b75929d0036c44edf928d6efe1ddc87b96288c7c624655d302b98865978ed7bc779c800e6113a0484dd225aef29796c8ba300b3f48dd566fd877dfeb5d25f96da5d07e643c5d +shared_secret: d4b9a0f77a52d4f8b9c95951257348d1931725c27eede694ecc09204a931daf7 + +# Rho leads to a matrix with unusally large entries +entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780 +public_key = 038c5d80656805b427d0b9167abb3697444af88a0f3eb48bf658be44f36b01233902291860215084ec7bb3e170e517c65c623ecf4a488f69923f9045ea18334d5c8ee847381b5a8903a6233796b1def36e46d343cd3547f4a757d82c262278432bd555fb5430e7f936affb453ac1a031c70cb1b3a8f3762dbe226461501d13d10052fb621be30b8ce63ce93591979863816397f0d198a6c534b55213d778ae7bb1a20ef1809ec37b08382c43e82b4a758458d7758d23a350538b3e524d27c9074d1cc4e3e1a17a6b06fd71178c5b18803b1c439b9e903a0d63018d2f765fa7426a0684793ea789c30435657b9aed58886cb8788e14426ea0295da18293024eb1a39eb99a20619a3e2db48a93eb90dbf42b84fbcec1f0b9571946b6f150ef5a672686a30e52be2d536bf3664550f60c99a89b81f3c911784d8a371ebea0b97ff50e2af68f822a72e9a76cf473bcc1cb81fe2a03051771b1c91f1e1a444ab6119c0a83b25a434fd598bc767315881aef9cb4d4c51ceadbb3b1a1142e0b87d5826b161233ce253d2adc9a00bd00e3cc21fff09abd919b54e09ba6b505601a358e50593dfa117eb2b8d7458745a25e7c7321cda0c432aa5bb41aab60eb3dc7e03ce4017b245809a534c3dfa49e97f4474689901e814a97fc0892ca04d0c00e3dfc836b36bbf74256e77525a031160fb3bf8ac31502c049d0a264140104c7488e36a46d23a76f4535b5902677cb98a5abec57b9357b0cb3b36b68349b273a2f8396e6c8594b4a32f0aa8a622378b3ca0426f44443942c02162907b2651ac2168fd1279b040192716bb584211df4ba36cb363b8c3adc39b410977ae3cac26c21470426837a43b821f65d8ee1950c87b4765a034aba1a35579f4148b8c2f39949812cf9d850d5e25be7713ce62ba31366737c03ad45f23e9b226d1835c5ab01c081063dc193630d72821cfa2a56d16108c40ffc483177d075b6a7a1bbf5cac7da0834d755acd10b9b9850a7c97d90a1061ce94efa4b0c0707339dbc7f160a45eeec022815a4494334254c08ade388c07c34e3a07e51ea60fdeb9b20b4b9afdc6c3c2b63e872aac9b2a90b798bc2dc8d585c69c1b33c1d51372c583e835b9ed561c218a2968c044051f8a969a7b2db6a7031d20cc9e024bbaab4385a3ae13ca264c25f6c5b4170b5c0da13044664a10f335ae9045bd6319abe139bb2b8b635bb06e2f48427e256a16a0f71f119230a9acfb19f0fe07c71828063f42a844a5c703aab9a844f689944ead511d8c97127d99429fc87ede190e0fa002261494076b7a10496dbe12919f585685733ae780eab3ac168287aae3842cfb637a94483f68170f6a3092d51b82ef10496a6374572a527aa7a7d1a99315953f625842ec0bc8851180b98cbe411453027c9b8a4a07fc3bbe32b897fc09e5e65a0457556a8b28e5b7c8b28db24e5431893953c912c195ca52db5d125c3f595f2ea75a63b6c83c8cbca257824ac60ce16bb5be02b30488974a22a66d37b19531e3cf17b59bb43d738cea25326dbd6355243ceff3caae98446927351ff623260472f8c7a715016ca5480af5cecc001c6b65f41221b16bfa61863e225709775b5e6393e4b71920c0c539c6bc5ec5c609466000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 7c06bbeca8b58423e2ad420ec36064ed42c881e3655668f8865a2d643ecd1a4eecf915b6c64b37c98947f06c3ccc8e00bbd16017c246db88cc83f12c887aaad7db61b4d567c285841689169c3f928f1d178a0ddae50d8c46cfd95258667d6239c300595738defd2e806637ca46baa4c6c7b97f1a9b47d53cba9ffe074f88d104c4971d250d085b1800fcbd91584d8cc48e145fc81438290d74765e7ee8c1605e8048b37b9d22b050791fe008b9b84b7f23b0f49955e32c0eef78d7a3a0b2effe8b37d124e19d4cb6f6914204598a525239d9baa116e1c9c39c47f9f37f965941b2aef8519782c65f3ad3a6509d1e31e7efb67db21911e4edeb1f7e9c37b3f852c81d63a95e4775e3f2a8ff315a214680adf44d290e42ebab8ca95bf471140b9d7e03f5e9f97864289a0ae8c9a105e00409f714e413b69be366303b4a138ed51264ab0e5cca5f6dc9387c6608109e8859893efa3bc7384e9f418468b1078807dadb768e254094039d1b807d67353c8e0b5a03d28b8e41ffa0eb3ce0837a132144597908f7a059a097b79a1bac323757324e907b445d064e25c378d2069e7c5d671036871e4fe36705747635e40c6e835319e3ff81714cacc44515d671b703c5581dc76afca0b881f37c1ffc93f2e4afab1e8ac776ca883f3adf7f9ab99396f7e19541c26342a7d5618958523b81871326c357ad84ccc6d3574d97cbd875524e7b08a102263d80f318a48e510c22126568f76936c904c231700ad042d73137eec741c827a082de4a45d296745c55b8367719dd08b8295e38d8d3894b9f8e2f9b483b266e1fc71d6374353ca7d9ed1c6b73ab5a42f6abff7b2ba8fd484d1ae6928b5ea92ea3577be01dc1e88abcd0886eb771dca4d36e91c45bca4807c89736b7d6a927cf64b22c5f323077f5488f6044976f310b4b99f7d486335dcca60571157ac0e480a4dba79a826b4bac3dcb7327a33b16381eb41e1d39915e91a58750ceb71098ec7f1a2d7e44d4bab75bb7482eec277df206502c497eaa345109a145a4da6bed1900b680ad12fb028d33563bfb204ecf66e6ead587c5fe27f8a2eb0e27471925ea0f35eb9d5e53ef801eba3acaaa7790b105eb6128ace992668181c1d7cf203afdccdfefbac67dbd97cad05d499239df84e4cf7372117932c973957e5c70a8520f822be430758990296877df62069d818768513d14df0568be8e63e123bdde35036dcc69a98197f52dfbaae5e5e0cee4a48c67fdda605dad8a27651625c2b35e81dfcacd2a41a6d17f6d7067a67faf2479b3868673b248270f4a2d8ee26de9c787ce966ecf186c1401ad9d3bbf2c43b1d5de32bdd77f5433f4325427254a13985d733ab0863e62a4f3d484ab3f5d3b88f23049079143b058babffc8367cebdd9d2468d7af782979a3ef12841370da6ef2db03679e6bca0db72166c361adfbfc02234119abaf98d4fea8ddc6e8490c2fb5a1be4806a61bc7b36884cf4631cfd53138a23fdda11e597aed323748314282672473a1819ef2b9488f6744544ad +shared_secret: c9d0cf3edb1172344364afec3615ba98477ce9316f92ca46ca5f42b73553a9f5 + +# Rho leads to a matrix with unusally large entries +entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717 +public_key = 7dd722a23522b0d8cb522a67d63a75af305c05f3659bc496f1c47e410582a0e58bbba80751bb2f5ab71414051627f46a78f9708e3139f8950b999378df4709a08b9b511982ab1b2cc4d51d177578ef263c8e12752f914733023d9e8068d4fc1aac34106fa72197f6b4e4bb26ab29ab64d7c848f98ef5557ec2b35edea70b67c084193921d8cb52e132a24372be7046aa2af66696007e2e0830df1c7b4396bcc8f27aca46932c463b49db0ed88882f3a45901a4b96ee3b74e78afb8dbae7bc653be895179f208c27c6ecd60c26e54152aecbc13bb5ece39840574c56fb39fd2385c76d62c59a41b3311702d5a99e366467b6c4f6c252a95db32e5096e61d1ba872924d358b346dc099a485c3df72a94e437a82a6cd778888995c473c203e091309ba42511950c19db3acbc5987259bea952b5a549839f197d7bf64ca0772cc1dc89572a0e04690fe651a79ffb3dc07388c30c06711c6b25572bbc83ba868a379d54c6439754bcd67c9b0364ab3790967a062948084ab33a80ac5971fa99830aa7d1e9263e7087af67ab6a83ab34f405dbd72b3fe46e9f2114e26cc6643b6d3adb9de63090394213e72b64ecbb2242266139579ea9cab2e51868ef82ababaac38e7ca0b9554d665365dd8b0b58f3020cc9218b866955f54d9f7b9af9634ab995a0b5e234fcc78cd1594e1cb8a845ca0cdbc82e3fbb35414c53423b76875ab267a702d51710149061e7655a0168695053aa61b990fa9439883640e7600345033ca90678925b1d632962deaa0ef5642b870610be3387eda90cf608254dc2b000c06632331680e12e9b277597d07633a31f6445318ac7b9cc1b087cb58bddd30a07ea6e1b1429950b7e7efb1a6b88b037c92cf987c904268ce39cba4bd3c163f5a8bdb9698488152a18b02bc98a83fb6c28a55a018b48979660ad5b42281b8745a4bdcb02cabd16735ab1523916adcb031e34ccbf4c50bf61bb7d562804d4104d3f6ac183f447e6608acb0bc40a34ada4897e9a91c542571877931864b612cec01c88010cbe039d42540835422f5900c944c7025ba3365543536d093a68c27abe1175bc227faa590f8fb8ca9ab1a87366574422379fd8659fe5bb5ec76e179666adebcedc7b54f1aa9388b2907a4ba5c48441ad90499c64a57768631d4a961d88976c816adb897da7715a100c75099cc122f3b1df183385673a3bbc98cbb0ccb0b090b3517993815e3f6b26b984bdda32c11947b2fa5411004c2c41f2a646036b86bba618e72be7f97ec6369af5ca2ab2dc9493d9078a0c8598841385205177c80a3be42a31d1166b02cd1dd2871148033c794242962e8645ae2e4867a3e5c74f71a1d978379ad45f7fa5c70066cbfc4cbfbe05cf23612b2dea551cc52dd90a8468ec771ff071371544e96400e288a82e9c9eefe807d6f4903ac567741abeaec9707533b38dd8c4366bb33cf86f77272478e43a2d8061293332c8d805a4516238d5ad1934a9683655674aa6b6d91610d4c82e966d74c41dfe7ac18e993c22d59b2d286a0b5272cd44988510b9b342405757a25731729e934c58c601f5c311a244a24dbcc772088a20dac4c8410167304fda18445f6c6126b9645d4042d6033419d246968848e1f5000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: 83ea5ed982570cd981b7430de924469d4e2faba68e03261a74f5114ab8c448376cfcd1b9cb3e72bb031bf0fefe772bc40888abc6acffc1d335d46d267acde2cb89cf1b3c67a139796d6a5763805d5edcebb81070b44ffe021b6c2b3c6c3d5dfb6d9e546930223ab0139990c6c5d6257520fe394a3aa30c6a71d47f415ac86b68eb8c83b131a3c5cbf051971fef5ef3bda355d3868e71ed8a0e2c6de8a759bc0c9e760277cc2c04c783d29d1ad3d3385accb85cc88c39bc8348f84dd8c714c5feda50b0770414a333136d6678be6ccbc5df488bafdcade883fbb310c99cc648493aed72680fe1e43c0cf523d3dd06417d29dd97c98ce53089505d36a476c0ae6d89b165c3ff6b2c62ba954fb81ac5782ae648a6802bc057c64fabd3726559ba79de9c144aaa525f6a840ed55abf21b37231c6c4cbb0110fdbcd0004f6f4974ec644c33a8aea34ef4a0a146f7502650c3def5a313d2f309cb428880502d3bdf39196a99bee296f9231d87972efd1159d3cf59bea05f0d0373a0e218ee5e0528e1ac7132440980d1153b9423bb2e099d05fbc8241ec1f316bf0add575a69982f546e99c64457c12ac83951ad46a5f024f6a61c91b7d3853ba1fa41d5a95f6ca811610ba3f32addf011ea4091ef217cdd126ec5e45cc40ec6f1292602b16c02718419646370e5b2c7c55c1128fc5d6c767cc75248b79e2379d40f91a8617e8a3db43c42cabb5cd39a7a7969147f30344c4b03de7034b12d8a1c3639697c97c4483e4191ca0fa81d8659f40e31b899b4ef4610644b1314ab2ef14b8dd8dc0082826fe65dc17211572cb14fa376f1b1784a00033c8dcddc44d6a1128a200eea668b6516ba42585cbb2e2be2a42148120013d0a9378ed7c185071fa8fdc09102164c63a665fd09c08d34104c9abb64e394b2e2a00dd834f7c7f5de16f6c02906ae37acc923dd76e530c78f2143396bfc371d14e6c48bec072b6b4e18eeae967456beb3f897a06eae17de174cf09be1435e691350632c0b1eac69dd66549c1d980fb147fa295ca6f21b5dc398e63a7c4263c75b55c85b4f38fbd7cc0fad84aba90dda1f2c9ca88d88905602096162486dba1ed0a8caa6b897c99e25934152a35fd0d476de09fb211abf36565af3744f3fb737247f5d8f172fbf438ed04422a6b3e17bdfe2cb0f09a1d57f1f1a113a768697f23d61ab288f15abc760feb0f5c5d4d5c0b1c891d3dad6089a3b7e54516b8f9755d38430312cf17b21efeeecbfd2719b62480225b9b3ee8940b1f1784ed5630d152635a1233acdd16e5489a9a15eafa7bec99aff25b18d9cac1e726c9e424773a7083f213cea53dcd310b0037aecbde1d584657f32cf548a6872c6f5a1a3a70d4db29ee3773291c94b00b5a596e1691f7752e246ca0960561cd233ec7d5f54496d34ba65b359a856315f02d16c990cdf3db2051b17bf283fed1b808ac79a9ce8250c806896bf75f2cfe76465c09360aba4c9688acea341fe755363abe41c0cba3ebad00c6c7bcc3f7ce091f87079f60094b92 +shared_secret: 4bb6a6b27596869efae3d411c69c593afff99b1a703ee1f4ff3e0e7e9756e75b + +# Rho leads to a matrix with unusally large entries +entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59 +public_key = 59b479b444b510d9b6d89b7001b237f4a34c57509f69208c7e6b956144bedc8b2d19b12c1baa725dd106f5418ed943370050808ed2636fa634add059541a7a8c7976b0990e59c20c00343d1c37bc3ab587e312991bb88a74227651b340346c58bbb174ac18c204f37445681bc5905354d834f86016d0921219fb467d829daf24901815666d664b8c4aae307485cb95885b7cb9125a14d4d988d3a42c0816ba7ef14de9b622e08871988b8c02d857626b65065551d5bcc81112384f979cd8d2b9ecb55c6afaa700e92e3ecbb285c01112a19cbdb90b8af135b235914c901e2314902a43c939d065481128f83ac801dc2fa69c912f2b69189736d72414df12646680c9c858a9afaa28b994531960b0f2b82fc6b9c6f10706930786ab5c6b0da61ae813cdb7387c27324499b111c6ca5767056070e608cf421af52cb45a842da82560dd86acf45a7e70245e0b535f7559a9fceb9369c44032c09302438cb4670925c7a831d52f083a7919e575be844d9e6a009957c15e6c5f84f050cc4801561876f9f483ded505b3c77a4a97788358801f012b59d716fed55975f8abd3464420d849d89c16dd2a95c372cf631a93a8897ddda2a038070adc2a97b5538778c0215cea399deb8279b2ade6c5ab84bbc8c6e181c091b7002a4d5f395bb60c817e03966b63ba76e88fb05b79d126ab0975c995b5bb2ae6550af78d80b96af40c9514f945d72b0c9602412242c81b60b2df97999fbbaec0404056195879535041231803aa7cf064b5fdfc8b86344d65eb30e52cc0d5b86947b8051ea93008d789914493b58abbd5395b657560f5823c387574db554118d06b26ba14b9660b4b390f8b828ba8a852870cba24a114a68094cf0168b721af8f0998e599b5db2135a3e9360b5754dd49155eea830f0035c2c116dbc9039cf69034c505ed998f8460a170eb5f09786d902664c8135ad77101d0b802248b6f3165a847b5c989131d7ee3135cbcb48b3cabfd100074c00f2e7bc85d4c84bec8980a6920e6f318a4bc805900b548fc7d98316c1b3c3b49f6c5d90595ff7a7b56465385620544aa3f39114e53581e851849726023d953b5df56b87be98854b253a39297f060449fc1c02725c3442a4ed8624f7f6abf3854cf04166b24c3b5a38358bae933ee4777df09720415314b152efc0b175b664c0c0a3521cac1817314d1e69fe03b351fe211c4c44639622a73a4547ef52d46b033aa52a79182baf49a8808fb259c048a04cc03f8a1038e9112eb30965c797f90c277b3549df4f757526351bd1a100767b4bcfa7489c17cb181b707986b9af85e766aa1f99b08aa2a7bc8a385d294277cb00d705b4ce2583e61c16be2b18445d051d7f0cee51703db3162bdd328cf0b0b24a424bd830c6574091088ab746a291c737e8cd595d1b51f9646c7813a8991f89c168489d1a3b61a82466d98ac9de55b4d5aa020243e638328fedbc93d341e1fdc7eb861bba3783a57c86a7184aaa7d5051b7018f3f18b40b69fd7780ae9609194db70123801729c561e973dff3a7ea5ba9045b24e5fe5bc63ea858c687184a8276612c80ab600cc37699583b9ffa8c5a1b7934f3c12873522dd1c4f976b73121bb79766803d247de1dff18807000000000000000000000000000000000000000000000000000000 +result: pass +ciphertext: d4e89c9a1b36b648551ac2180f2f59158514568358f66a6fadd88492a0e1c122d1d7806287eecbcc8e8e6a463dc1c909f13842f734b9eb5bf690291c9d5b7836de8f4a28b8242c21131c53ebda4002b329a1951f469168ce0199f0a1d2edcdf3e6566f9e638e5a1095025cdb591aeaed8bb115ca3a1f1e9a8e911b2b9d3838608a27e50018e9a99e65b04adab67a75db892676c28ff41f118286f0ad2f5b650baf9441470db659e262e64cbebb4e808b1e7cfde0ff5c1ffbe1336beb42155fd9cb1cef90f306f5aa2f121b30b4d6091b19f37243cc15df2a0a16c4b5f70ffba99456f535af0eb0df80771150ff28c7925da7293878699c00f5136c340d1d06460b0ca7223f37ca553be904ebb7a7f41daa8288aa244202247eb8c35b7bc6d1dc8b95c220319532dfed22dc5d0f2f77a4bba0f5ee599420a94c446d89e3e8532117bd8ed0f7d9cb1f0a58a92bbf30a9d7c16d5ebffe16f39f682c18a8fc2ec0a551370c0e3ea706259f52333f5e86a83fb60b9ee3776f08e3f85ae4ee66be8c653cbe25e316e6ad33415a13e5139f53480625f09f593a598d6fd864729362efc3d09f5b171b0eff76cf860c8fd80583bfcae3bd7535e0270d622c2c09886bf9fddff6dfd045fea3259d26f17500b6b1e0b5068dc06a510da4809fabd615221f672f6d1d220c22dc080c9dbd7544ccb3369deccb76287c77e1a2af0afe133cd19325e6a77a8bf96fae6dc0381bb303815df4de480a9f3f97f1baab7774d7d5d9eda6c5927692fa2277934b0ebd30b4e7785f0c61a44357f49adac4430fdff3af956904b789c2dc9bcf87eb4cf93c48256ae13e90a1bcd713f77446593837b81baa6fd7050455d69a16b429018390a47e6e881467b57a2cfb043ce5a8cb114c4bd916ffe353579b599994efae24ced2dcf1a2923a0d0d8e771e7c230d887e596b80e01d84c908ec9fe81270f12e2f9ba2d783b1200fdb106e9d340c21667b722564a0cb4603dbc2193d3b455e06cf8c1d8fdf3e7ebe16a47f0181407f66c214379a5f336545818782835f6be2e9ad89f180ae0747067cdaff1f3b9386debdf3f057cd02f6eb00ecd656838e2ee5bdb99d6260c0447707d747bb6ff33ed65c2b3e22074ff25a7a0933be3e9b51de95d99e02ed4204f5ed8a6ff864e2f04266c9392c6feada8805ad44dffd5abe8d4262ddf6d2b1b4099367927b0bc075cf1d1d802f2d10b6d31d7f8c48b043340cae34b5b7c2f1e9b5043a0c2a977c51ff038171f8c81f04b284b2ee262befb6a54bdec146b84dfa116542bd13123ea79e4a660e44f3d23a0ce35ae4eb7b45611f87ae836081742d3cae6c65a0f93514bfe118cbbe7011e2a9502b197ac4bf31fe17016e184657b8dcdd62a223d1bd88b98aa0bc200ca91e123fa956b3d804b2c0ea139f934124f8d0c3f4412d8effc554f8364b0f351a789cae775b241cd6aa6d15251cbd28f0f85fd4f2a48fb467444f2f759ab6048d33c27832cccf9cc45fffaaa17a6f5e4b766f861529cb1a0641b6d3854c11 +shared_secret: fc501515ab8bf04e3cdbc78c032524d6b9ac385122bd2324b11a2ba812158fe6 diff --git a/crypto/mlkem/mlkem768_keygen_tests.txt b/crypto/mlkem/mlkem768_keygen_tests.txt new file mode 100644 index 0000000000..7dadd1c420 --- /dev/null +++ b/crypto/mlkem/mlkem768_keygen_tests.txt @@ -0,0 +1,499 @@ +# Official test vector 0, seed: "061550234d158c5ec95595fe04ef7a25767f2e24cc2bc479d09d86dc9abcfde7056a8c266f9ef97ed08541dbd2e1ffa1" +seed: 7c9935a0b07694aa0c6d10e4db6b1add2fd81a25ccb148032dcd739936737f2d8626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f +public_key: a8e651a1e685f22478a8954f007bc7711b930772c78f092e82878e3e937f367967532913a8d53dfdf4bfb1f8846746596705cf345142b972a3f16325c40c2952a37b25897e5ef35fbaeb73a4acbeb6a0b89942ceb195531cfc0a07993954483e6cbc87c06aa74ff0cac5207e535b260aa98d1198c07da605c4d11020f6c9f7bb68bb3456c73a01b710bc99d17739a51716aa01660c8b628b2f5602ba65f07ea993336e896e83f2c5731bbf03460c5b6c8afecb748ee391e98934a2c57d4d069f50d88b30d6966f38c37bc649b82634ce7722645ccd625063364646d6d699db57b45eb67465e16de4d406a818b9eae1ca916a2594489708a43cea88b02a4c03d09b44815c97101caf5048bbcb247ae2366cdc254ba22129f45b3b0eb399ca91a303402830ec01db7b2ca480cf350409b216094b7b0c3ae33ce10a9124e89651ab901ea253c8415bd7825f02bb229369af972028f22875ea55af16d3bc69f70c2ee8b75f28b47dd391f989ade314729c331fa04c1917b278c3eb602868512821adc825c64577ce1e63b1d9644a612948a3483c7f1b9a258000e30196944a403627609c76c7ea6b5de01764d24379117b9ea29848dc555c454bceae1ba5cc72c74ab96b9c91b910d26b88b25639d4778ae26c7c6151a19c6cd7938454372465e4c5ec29245acb3db5379de3dabfa629a7c04a8353a8530c95acb732bb4bb81932bb2ca7a848cd366801444abe23c83b366a87d6a3cf360924c002bae90af65c48060b3752f2badf1ab2722072554a5059753594e6a702761fc97684c8c4a7540a6b07fbc9de87c974aa8809d928c7f4cbbf8045aea5bc667825fd05a521f1a4bf539210c7113bc37b3e58b0cbfc53c841cbb0371de2e511b989cb7c70c023366d78f9c37ef047f8720be1c759a8d96b93f65a94114ffaf60d9a81795e995c71152a4691a5a602a9e1f3599e37c768c7bc108994c0669f3adc957d46b4b6256968e290d7892ea85464ee7a750f39c5e3152c2dfc56d8b0c924ba8a959a68096547f66423c838982a5794b9e1533771331a9a656c28828beb9126a60e95e8c5d906832c7710705576b1fb9507269ddaf8c95ce9719b2ca8dd112be10bcc9f4a37bd1b1eeeb33ecda76ae9f69a5d4b2923a86957671d619335be1c4c2c77ce87c41f98a8cc466460fa300aaf5b301f0a1d09c88e65da4d8ee64f68c02189bbb3584baff716c85db654048a004333489393a07427cd3e217e6a345f6c2c2b13c27b337271c0b27b2dbaa00d237600b5b594e8cf2dd625ea76cf0ed899122c9796b4b0187004258049a477cd11d68c49b9a0e7b00bce8cac7864cbb375140084744c93062694ca795c4f40e7acc9c5a1884072d8c38dafb501ee4184dd5a819ec24ec1651261f962b17a7215aa4a748c15836c389137678204838d7195a85b4f98a1b574c4cd7909cd1f833effd1485543229d3748d9b5cd6c17b9b3b84aef8bce13e683733659c79542d615782a71cdeee792bab51bdc4bbfe8308e663144ede8491830ad98b4634f64aba8b9c042272653920f380c1a17ca87ced7aac41c82888793181a6f76e197b7b90ef90943bb3844912911d8551e5466c5767ab0bc61a1a3f736162ec098a900b12dd8fabbfb3fe8cb1dc4e8315f2af0d32f0017ae136e19f028 +private_key: da0ac7b660404e613aa1f980380cb36dba18d23256c7267a00a67ba6c2a2b14c414239662f68bd446c8efdf36656a0891a3cc623fc68b6572f7b29a6de128014411ee41906d08071f94856e36a832b40338d743516659bd25879c007a52bc9586f79876afac6c9a30d8fac243bd22425d6adce42ab7ed39014757a958bc8a74565f019234ff04b34893ed6d05501c37255239aae2ac19f8c75ac5900dae8300dbba710dc2caae1bca3a38c58342b286b8518f136ad15b9f7bcbb06a5607db375dbe976457c26c6598257531b2cfb6ee7f51591840804c38388376c27148413da9e92920bfd9a069e018bd272053da8775c0b739f761db2107cf35a434d69b07e5bcdb87434138b0cb556761ba522a5747b28747d80eb9d6cc673bee5769377b996d36ceb0c0c7ed9a658533324869c18a1a36f31470f14c5ae49ab070507f8249ce404b49c0a8c3ee42fea9631fa1a0d10d86b93f986e0e3a82e703b74e5ae6101242421a89aa07fe68588460baa368786486a72e4f24d2dd76cfc03b694a5ba91a755a0b98f3bf93307c0ab64639aea7a6498a3c3ddc571141abca4678cd2e2b857fb88f600caa596b44bc422250b2819e0515f0472391853700b01eff9453fd11876b7c759a07dd845caba4555264a82765193fdf81b620a1e1f923fb24442cd1cbe94175003ec06ce77a3c64493c199987a300c95c53c0089b5d65c92ea971b2ffa93b52a461ea2ac8c199c2f4c2b704297ce3c3949e0735ea8a14aa59e8dec0c878399ff70747ab244ce46b5f2230473323d25c66fe6b419b1f4a112e5214035256bc43ffd2b6b7b378769a6b47000bfb6357d45814baef3857d379e2fb8b5e5201ab26274bb1b70ad322cd0439b2db109cff0a2f8e600995571ffc38c590bc4c7615c69d0c98ef430f30861a77238ffc07061e475d6a30ad1b47fd039c3a447762db2211dc31d0acacfd55890a5824798f9aead7413dfe028b1012be8b6ca1026666ac6bc9440a449b51ad8bba7b0921dd4d8b4a578136d1a05db38cc858437b25161d1c3c28ee07bbcf2b249110d22781dc3050d8cc0090096b38a850696f86e9e6bab325271b2248675011968502881090497fac0af843c1aea76dd81cf29c012c66227b7f06d9961309b0262f732c9a4d0bbd06727abb8371ff2c11899a098375c460516b2cc88bcf628ede37d8f3b3342e4490a85606ec03da29b0256275382a3313dc041114801032c519f350c3e6abac3e33b93b4a19f7c5466e58cb1dc14b4a96c475729f971bdf173cdf354824d019427f95b3b4a4a4a958e476a6e6991ce6f06cb5dfca7d4380c3d920b5711ac1fcbaf4b9ac800b976d1ec766a626cc1900b66b3a9dc62c5c144527a296baf70433bf657c0437f87597bd7c8bbbe9abc37050931a4a86982a2028a74454c9b810c88d1701c8cc98a1d4ca107a6b25e962fe4b6b03c95453260b807228637cc9eb12acc0954959a52ae54d1977300aba0ba2c14609bb28c11d5fac5cac88297603283e867a3648366c724d9354cd7a196dbd9802f7b88d3fa001f9c9773225462235e91352a20791fd8b87fe3377ec6a3940b1130a0bb04e7410a34e2580d071d6c56202086787a6590f84393a8e651a1e685f22478a8954f007bc7711b930772c78f092e82878e3e937f367967532913a8d53dfdf4bfb1f8846746596705cf345142b972a3f16325c40c2952a37b25897e5ef35fbaeb73a4acbeb6a0b89942ceb195531cfc0a07993954483e6cbc87c06aa74ff0cac5207e535b260aa98d1198c07da605c4d11020f6c9f7bb68bb3456c73a01b710bc99d17739a51716aa01660c8b628b2f5602ba65f07ea993336e896e83f2c5731bbf03460c5b6c8afecb748ee391e98934a2c57d4d069f50d88b30d6966f38c37bc649b82634ce7722645ccd625063364646d6d699db57b45eb67465e16de4d406a818b9eae1ca916a2594489708a43cea88b02a4c03d09b44815c97101caf5048bbcb247ae2366cdc254ba22129f45b3b0eb399ca91a303402830ec01db7b2ca480cf350409b216094b7b0c3ae33ce10a9124e89651ab901ea253c8415bd7825f02bb229369af972028f22875ea55af16d3bc69f70c2ee8b75f28b47dd391f989ade314729c331fa04c1917b278c3eb602868512821adc825c64577ce1e63b1d9644a612948a3483c7f1b9a258000e30196944a403627609c76c7ea6b5de01764d24379117b9ea29848dc555c454bceae1ba5cc72c74ab96b9c91b910d26b88b25639d4778ae26c7c6151a19c6cd7938454372465e4c5ec29245acb3db5379de3dabfa629a7c04a8353a8530c95acb732bb4bb81932bb2ca7a848cd366801444abe23c83b366a87d6a3cf360924c002bae90af65c48060b3752f2badf1ab2722072554a5059753594e6a702761fc97684c8c4a7540a6b07fbc9de87c974aa8809d928c7f4cbbf8045aea5bc667825fd05a521f1a4bf539210c7113bc37b3e58b0cbfc53c841cbb0371de2e511b989cb7c70c023366d78f9c37ef047f8720be1c759a8d96b93f65a94114ffaf60d9a81795e995c71152a4691a5a602a9e1f3599e37c768c7bc108994c0669f3adc957d46b4b6256968e290d7892ea85464ee7a750f39c5e3152c2dfc56d8b0c924ba8a959a68096547f66423c838982a5794b9e1533771331a9a656c28828beb9126a60e95e8c5d906832c7710705576b1fb9507269ddaf8c95ce9719b2ca8dd112be10bcc9f4a37bd1b1eeeb33ecda76ae9f69a5d4b2923a86957671d619335be1c4c2c77ce87c41f98a8cc466460fa300aaf5b301f0a1d09c88e65da4d8ee64f68c02189bbb3584baff716c85db654048a004333489393a07427cd3e217e6a345f6c2c2b13c27b337271c0b27b2dbaa00d237600b5b594e8cf2dd625ea76cf0ed899122c9796b4b0187004258049a477cd11d68c49b9a0e7b00bce8cac7864cbb375140084744c93062694ca795c4f40e7acc9c5a1884072d8c38dafb501ee4184dd5a819ec24ec1651261f962b17a7215aa4a748c15836c389137678204838d7195a85b4f98a1b574c4cd7909cd1f833effd1485543229d3748d9b5cd6c17b9b3b84aef8bce13e683733659c79542d615782a71cdeee792bab51bdc4bbfe8308e663144ede8491830ad98b4634f64aba8b9c042272653920f380c1a17ca87ced7aac41c82888793181a6f76e197b7b90ef90943bb3844912911d8551e5466c5767ab0bc61a1a3f736162ec098a900b12dd8fabbfb3fe8cb1dc4e8315f2af0d32f0017ae136e19f028f57262661358cde8d3ebf990e5fd1d5b896c992ccfaadb5256b68bbf5943b1328626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f + +# Official test vector 1, seed: "d81c4d8d734fcbfbeade3d3f8a039faa2a2c9957e835ad55b22e75bf57bb556ac81adde6aeeb4a5a875c3bfcadfa958f" +seed: d60b93492a1d8c1c7ba6fc0b733137f3406cee8110a93f170e7a78658af326d9003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 +public_key: 93c140f6c47b7e53b96f72bb18447d277cc021c144a0f7a35e30b57386a78ac976376262320a5e7e1cb42e290de684462ce1067e920ee86c32418b130a5a41a0e8268cfa7e0db2b441cb927d7897c42b1d50f9b32868a35a2c04cfe91040e9a9208902f20c477e1b1ee5c290d2e5244eb1b4b7b4c6ad074533b58d9914a6aa8829f96789f5cb87607569983003f3a2461c33c81a3672af5924c4ba37e6827fccf86d8b4103fbe9c0f6226dd0a2145a6b7aec76b186466f9c67bf169039259574456497140c8cf4ac05091973ac8c08d809465785a677a032ac09ad1d666e8c48462813ce5ac75f184b38251c30e362b0e2501d6800c8ad103c8b773780b6717cf15c401139acd54b1598b2b7c79492a86631090268c70d875bc040cb2b75a386fa96b092b8cbc25c47f70aa76cd8b9afc12b42b536e27c5578831a96dbbab7138c3f247e955a6c08b4407d4708f1914bfa48af4b28533f747b860b7076c028e245c9727b42f3248fb0408b3ef0c4918ab76ab96daca81afb1211ab3a0329ba1a5b069a68934c1ce84c2f72839311257fa19e72c62fb5686b61416caf8b22d2b26a6dd01bb7387f88eb8606980a5e2259cbd56ca1ec051cfc66f96239991a2360d75dafa1534c8a05ab9c95e2e586853714600a3455511b62d94525d8b1a965ce69f986731888d1ecce536000e4863322a83e3c8475d9eba5414a65b0561d24a7b09dca6ffe23836058bec0a85671641008c831233c7890783dafe8c359a263e796869118c4e74002dc3b0ec5b1c4ac641bafe30eb2bb743713bfed2c1e79c4a6f46593006acb35f7031f194807b893aa7a9323162168d384d0e96f2f23368626a2e027891ac94f12f30a044b85f0322ce2b16517d36aa3f23b5f391be394b54ddc28e5a9775372869a7b50b4898c072c0669d43c641a3cb5e8c170ba63bed6ad1008615201305e292e1c818e1ef64f3e0c52fba67e7249c1ec4a140dc89ce0050647f1c19f5897c77b9059040b4b5b4282e0669cb4c658f48f67338413c92fc7412e444bc635dabc93c51b030784f21461dca210cc6a54fdc25bba09705baa77c1826636b16644a5ada51270d8317a787abf53192d40dc765bfb45c7dcae58481af3a49fe762b90bac1f6f69a5de8045981c67906b9f692625fcb6a4df2641688aba61fa49a84b47c96661e4701e5826c1108069c4b9c6e480251c4b021d11cfdaca12bbf9c09a0234186668e389454ac4046f5b2468aa2fa9b117868574e729574ee57ea7495af310627b85916d6b4c708374f9fb0c9c3aa4664c6651281d8eeb98132c1af13a816ca5b869f50b50b291efd466dea090918630c6fc77247c458aa82568a41dd9d4708af3bbca5a5716447e8c2c24ad788a8632473fdc4a257196bd2b549091176fe654d3694e10a118f7b66d1cd5af199b6e90b3bffa88a92e36717fd4bbfcc78b0e08634bc080c86885c92c8ef67aa4933c7df097891369bac5fc5d0c36737aa60971310adf02c257f76a7a7b3f7e132c2a71c52ff4affb6846391c0868241a3df13408d419a78bcffd49619b03a192c683900a244289c9f7b4564823900ceacffd9a9371260d5e57a8271196f4759eead0ceac318966e76f68de95ab9db2ba4fbf83c3b27092cd339cfe48d5ca0ba11591d04566f4ed24a5 +private_key: a2b315a16cc2cba3500aca6746967dfb808d170c0583b1ad737b50ee3408fd1c793739845fc18297341662ca3630c11f7bf77710c414cc925a3c4734cdaab8f1f677b33694067b230acb79b30262f74b923afbb06ab880b75a609463b40d908115489f3942473dc8a555e2403b7c1dec411b9818b627457a583305301cc34c4cb1db2b12d6f10ceed4269fdc9a67402b89b71fb372a4ef593a17a56d329b10ae24c6b3e750704b0993cc64a71840399bce5d7b182b561c9cb2b914673b6a5337393c1d77d497f426cde194363b50683e1b2c8bd909621158fa8b0aa234a47ac702a95a96b37c9f2a233e69b9779ce793788a0c2ea25f9b5a9a8444afd6b62f5ad6860c8ab1267a0e57acaa53bb86c6428cd7139ba48954ec55bee3f83ac5a47ebd328f053182d395cb7576ca56a639b3663e92f79af13abc20b251fd903524f9a16cc32b631c83b1e7cf5e04800e193f1595c563870ea1fc996f3828b2abc626c59137511ff6f40122a25bc644b154267a0bc6c1067078c993b3d5d018f44c56363b9c5cc9b1ca6569cff876578b5e86703d30c20d733553550b1a8e669f2999b62720b6dbf1100ea550fe6c3973b6a396b50a03235142d75603240f78055f082b1d2f490dadb8b3a0cb0ebae99ab2179f2b38b274c51febfb57cc87291e34bbe5fcba818a3f2da4c3fc8950f51c1e806c5e6f4552f3e187d82a0cf92b7da3f26ae04b8c86f7a91b545670b409dde5863cc7b7e30b937b13accd1c68e808ae6827175bb8239904a88a15824bf6489d1044620844a6d92469a311942c21294ba5f26c18dd0a0e85fc85f241c2151815ef00b3bed322de98a7f7092df5a0a5d3d6b424b26b38e1931dab2402342bc12463aa96a0a1c42dbf73ba15278a22448a4fb6012c214def53b0fa233dbd096cfb2045a255c75a9931d7e3284f9b95f648071f00343ee580193627ff1981e982264e63940287860fa763663cacfb61350e7a4b53f7702432347f22596c678585e3cfbba07d782766c8399ac21b37a8b16a79e6a41ff606469947af07c226f79145174ba4ccb4bf226cd5cac54055b8a0815020135b94e6560ca89c7d837e737a73a0278f0e8b1b29806c19858b8337967d527d0dd6a25a5b0f2338b23ac6a4a0496ffa8672d17075cc9c3b20b24fdf9548567a85f707998a375bdd044038c09bb4fa1af3f08a37fb6b17ecc29c756ce9085edd76618b5c459bdc4e361199ada77bd1f91086f443dac6a9eca4ce9403b4c5cb1eb6d74ed2f79ce9ec032174748c64416b676d11fb28e8ccbe1fd3aed6d0c168e92e3f7096403a3fdbfb28505087c6db9f2e44233773b03e5166ae1669041212ccd58ee8580a2d6861a30b6814f6cb550a7d9314080413bef5c847c94174e590b765869d0c9c6002aa377bf77d7f068316050e62e72a7bd083403240c1088f84287849112a03ac8ddbe907ab574c4bcb356e9834d4fab5c28b200fe233a61599c14259464a24e3210a99c7c601a81d2ab07d65a9504bd68906285545241131100cd03b5dfb05b5b4ba29166c226ed4347c2ca99d327595f29cefbc8636161c4b755f87851675d5553308c70ef0a8fee3be05a27f53075ac7d1710ed3177c133793c140f6c47b7e53b96f72bb18447d277cc021c144a0f7a35e30b57386a78ac976376262320a5e7e1cb42e290de684462ce1067e920ee86c32418b130a5a41a0e8268cfa7e0db2b441cb927d7897c42b1d50f9b32868a35a2c04cfe91040e9a9208902f20c477e1b1ee5c290d2e5244eb1b4b7b4c6ad074533b58d9914a6aa8829f96789f5cb87607569983003f3a2461c33c81a3672af5924c4ba37e6827fccf86d8b4103fbe9c0f6226dd0a2145a6b7aec76b186466f9c67bf169039259574456497140c8cf4ac05091973ac8c08d809465785a677a032ac09ad1d666e8c48462813ce5ac75f184b38251c30e362b0e2501d6800c8ad103c8b773780b6717cf15c401139acd54b1598b2b7c79492a86631090268c70d875bc040cb2b75a386fa96b092b8cbc25c47f70aa76cd8b9afc12b42b536e27c5578831a96dbbab7138c3f247e955a6c08b4407d4708f1914bfa48af4b28533f747b860b7076c028e245c9727b42f3248fb0408b3ef0c4918ab76ab96daca81afb1211ab3a0329ba1a5b069a68934c1ce84c2f72839311257fa19e72c62fb5686b61416caf8b22d2b26a6dd01bb7387f88eb8606980a5e2259cbd56ca1ec051cfc66f96239991a2360d75dafa1534c8a05ab9c95e2e586853714600a3455511b62d94525d8b1a965ce69f986731888d1ecce536000e4863322a83e3c8475d9eba5414a65b0561d24a7b09dca6ffe23836058bec0a85671641008c831233c7890783dafe8c359a263e796869118c4e74002dc3b0ec5b1c4ac641bafe30eb2bb743713bfed2c1e79c4a6f46593006acb35f7031f194807b893aa7a9323162168d384d0e96f2f23368626a2e027891ac94f12f30a044b85f0322ce2b16517d36aa3f23b5f391be394b54ddc28e5a9775372869a7b50b4898c072c0669d43c641a3cb5e8c170ba63bed6ad1008615201305e292e1c818e1ef64f3e0c52fba67e7249c1ec4a140dc89ce0050647f1c19f5897c77b9059040b4b5b4282e0669cb4c658f48f67338413c92fc7412e444bc635dabc93c51b030784f21461dca210cc6a54fdc25bba09705baa77c1826636b16644a5ada51270d8317a787abf53192d40dc765bfb45c7dcae58481af3a49fe762b90bac1f6f69a5de8045981c67906b9f692625fcb6a4df2641688aba61fa49a84b47c96661e4701e5826c1108069c4b9c6e480251c4b021d11cfdaca12bbf9c09a0234186668e389454ac4046f5b2468aa2fa9b117868574e729574ee57ea7495af310627b85916d6b4c708374f9fb0c9c3aa4664c6651281d8eeb98132c1af13a816ca5b869f50b50b291efd466dea090918630c6fc77247c458aa82568a41dd9d4708af3bbca5a5716447e8c2c24ad788a8632473fdc4a257196bd2b549091176fe654d3694e10a118f7b66d1cd5af199b6e90b3bffa88a92e36717fd4bbfcc78b0e08634bc080c86885c92c8ef67aa4933c7df097891369bac5fc5d0c36737aa60971310adf02c257f76a7a7b3f7e132c2a71c52ff4affb6846391c0868241a3df13408d419a78bcffd49619b03a192c683900a244289c9f7b4564823900ceacffd9a9371260d5e57a8271196f4759eead0ceac318966e76f68de95ab9db2ba4fbf83c3b27092cd339cfe48d5ca0ba11591d04566f4ed24a57b00751eb9b1253231213f8a14f06f0fe1b7a4fdb7d1cfe44c161e577e5e8f0a003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672 + +# Official test vector 2, seed: "64335bf29e5de62842c941766ba129b0643b5e7121ca26cfc190ec7dc3543830557fdd5c03cf123a456d48efea43c868" +seed: 4b622de1350119c45a9f2e2ef3dc5df50a759d138cdfbd64c81cc7cc2f513345e82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade +public_key: c02b820292c46c8a8a92975a2e27292cf893a7f54a84a67022845d66236dca3c4844604b16879e849c7fe3475d03f82323d822ae2cb6763842a319114f5c77754613d5fbaec05aa801a03ac1989a725337ea38a668ea65cdb36343ec3d690ccdfa47ab1fe473247bc488d98e1e33175920a0f2272a03982c8386485bc2c4245884f1d941750a1d27fa85f0067f5c377532304261aa908bfb950894cecc1bbfd197ced78a641366b9199a4ba190446e03ae51549be7959c87a629abf24cbb7a58d01cad4949734f797ae300a78f45c70f668506977d7c85a0cf64c700a5b1f7879801bc3ac75584302c8bc81c0d7f6b237a9400681bacfc7192f9c653f8a9551f796ccfc262d3a438a551ad74c80ae9e3b5a7f12c5204ad44c21f488b7824a4b1eed79da9b44e60d8b225490c062b924da04f0ef0252304cca34bb4fc70ce6b1800fb6c5dc771bf7bda9e9db2b6c6046a1672c6f6f01a0406b903411c271b20e139a69138adfbf50c1134ae0899c166b1b1a5d818515b0dd94895a253059b167630f3a0dd3c64cf257cdf93596e54288c7a4580404ba8da541abb1b6aec7e530c58a61a64d9b9bc32d870bc105ef7063b9a97519b871a60d7aaf8c193e948c267c9c815063d6a603ee8d2249b386d94395804a9af8cd2184800c7ccfbaed98c4f9f95b70145b448387183f5cc8f4b5f35a949bc74706bd03db7645c2d084624844a55a0a5abb9244cb5b8736b835b512bcd912361fb660479b2c51b99734970808ba5c6db0169756cfc986dbda94915563c15a109aeb77c01a7cff55c8430696d6e83aea5d49292462d725c428b984d15e97ed4a76403094699e1336426b54281067e675788b3a4fcebca4431bfdc8a49c215ba11004a341516018419abeab2374184b0e2b7b7a54efc678e812588960a0d009418e5289eddcac582d3c73dd93e1234518da003648853c5b5a24b389e88300aeae78c41e62e5ee303a56b548375757cd42e21a7c59ff29a133868d1d0784197573464292547161b3a8689dc0c7de11139d407f0b5784d942278d49462965f21f72cb992add160620f6a82f70aa9a830190ce3c9fa8015071c2877483c2203bab7228ee2f37bbb17c1a4bc499ec249ffbb42e4989905a878dc873e456a7d9db946572936d8d81777d1b992c00db12a35df1348ce8c9d1a02898c7403d4107f45a6bee864375b623d30e0c191f8ad835a3f3709362cc763d63c2b91649d722825402c9ec1b1c7aa02b154d69e39da196e72a25928212fe0711bbb2fd2f9550a361a28d4295bf0c036d7b79be9130232060206c919f8b864f03d6f02348ed2c8001a30124b40c6d61dc3e18bcb27c60bd1324d8386da99c3e098cfb94b018031a4d6aa5788d27a75a67b630327add804adc21642d58080956a03f03c8193ac302c92e949cea31721813390382c814b2c5a6d34a1eb44b8b62aa77bf88b5067455fc0c7be967c21bc281ad38ea6978d228a83a820c57b4039175c910a450e300101cae45b0736a4dcbb0e6eb58491da31de3b65cba0a7c80c7815f677eea7ce5ec571bbf7c4516c65e4b2528e160959c815e1bbcad0a29ce59573d749453d9b6b52a951de9b889c79cb355c345631070b7c30f1934123c9ec68ebb324d254e5d246b14a0259e49b2ccec72b8c494834 +private_key: c22702a2a8b54046661fe48e8c686eac807794eb4a67454d68a12825c99c73b3620f1482eba71c724cb8edda16d05a2d630a4b7d967d33f42b352a07538a8ccfeb481776baf74073fee48709f01229d087b9f16d36e907ab792be2b86baca7c58bf31b63aa556613168140ad1cb45a70f3ad8f88ac7f6b42179b62707ba00fe0776ff45f575436ad70bdab0769e05587314ba7f1802b2ce6536152a5076a991eccb79a908351f62e38c75bc3db7b8702a104155b87129b2b3a6d3a157fba573c1b96b2b8ebc5327267aa47847259bf46f54c315b26748a6f49eb3721e772032b6f0dd48a44755eeea543624cb62c6965840caf314c81a7d49c1a2ab46d047ba45244b8b292f72252844335db158496302e1554086b4a2df68a1af1737f743b0bc4e07be5fa2edcdc4ba03cb61101327fdb6e99a2b1de800462431a5e45870f5bb61e058b21ea5a4f86404f99459b4c8cc5d91ae4e630ff1c380b3919c2f22f06f633fc062451b462130117e5f20cafc2760c434e404944fcc03d64d5aa8ad11eb2f727dc71917e6200f61b53ac7497eb198a417753482c3fe988c53883372d08ac11c5ae57a24b787a995f6acf6e359bc7121032e4bda65c618963b84785a86da1236289bb2a6b6716f2054dd43c77020d8686b47ca1b7ec2ab36c07141fb86937141f45d92219c25ed9c13d14c7ad682640a5f88b5574a283aa3709f26d9aa739f55c776526321942cc8115a69e790ae357765c7a05ab35266dec2de96acf5d126ca86763e18999e9513f5b5809130b7e2616392a3514638b39442a6e98c44a35005fa4a6b1488c9f181c4747a935626895f3c623ddb44e1d581a11465ffac0a0a1f2a5f881456654490a1b1bf1e4485a94841519babccc2ab594b1c2532fc92982db3994161b15194c265b679fbb768970f885f04ac06f62692c9576c81b8979f221e545b150c9a57f232dfbfa7d9ebc91f5aca92a3cc39ae922f1257f1973979b46ad1c967baa7002c36080a926467f277ac234c31c716ccb954b617694e7d228164a1be2e13b7b855534fb50b88c937a191ce493ceb19561d59b1f198b81c78371a58c5ca4f38bc6981faf61a9b60941978569162004abfb82ab729d4358c207a915d55458c13250ba813a8a5396cfab1157b4a266033050d31c1b74afc55c645bf256f00392b432a99092a30ecc456bba202bca14e5c741830c931ec377fc163b5f16b81b3897fecb961c6a0d8d97461cfaa8f4c48069648e8b48864dd9923b9b1bdd44290aa66290c151024285c3732a2b717c55072d2168ae92f001a1c44b54dc24a0145781923138875d8f4a0c76e2a79fab7d10a141c57ca9c8434c8ca18e9d0271ae62a391f28c53361c759914852859f1970caa124a1ffb3797723429874f3088197af94a9557cb66fb76fa84bbf5bc87552605ff00c67ef53c5e5c68c5800057f6a36b391386743bde6b4800b4aa1c1984eac8a728a729ad60a6321a22d6a9b27b56bbc7c65f7ae34304827e833aaa867766079074c8e020c32b87fc6564e5e4953df85b24991aff87b052847fe6371efb03a326a96514dc6ac8f42106f59df9b10d668111a1a9b08c7bacf2a42243504ccb9abd737593aab617c02b820292c46c8a8a92975a2e27292cf893a7f54a84a67022845d66236dca3c4844604b16879e849c7fe3475d03f82323d822ae2cb6763842a319114f5c77754613d5fbaec05aa801a03ac1989a725337ea38a668ea65cdb36343ec3d690ccdfa47ab1fe473247bc488d98e1e33175920a0f2272a03982c8386485bc2c4245884f1d941750a1d27fa85f0067f5c377532304261aa908bfb950894cecc1bbfd197ced78a641366b9199a4ba190446e03ae51549be7959c87a629abf24cbb7a58d01cad4949734f797ae300a78f45c70f668506977d7c85a0cf64c700a5b1f7879801bc3ac75584302c8bc81c0d7f6b237a9400681bacfc7192f9c653f8a9551f796ccfc262d3a438a551ad74c80ae9e3b5a7f12c5204ad44c21f488b7824a4b1eed79da9b44e60d8b225490c062b924da04f0ef0252304cca34bb4fc70ce6b1800fb6c5dc771bf7bda9e9db2b6c6046a1672c6f6f01a0406b903411c271b20e139a69138adfbf50c1134ae0899c166b1b1a5d818515b0dd94895a253059b167630f3a0dd3c64cf257cdf93596e54288c7a4580404ba8da541abb1b6aec7e530c58a61a64d9b9bc32d870bc105ef7063b9a97519b871a60d7aaf8c193e948c267c9c815063d6a603ee8d2249b386d94395804a9af8cd2184800c7ccfbaed98c4f9f95b70145b448387183f5cc8f4b5f35a949bc74706bd03db7645c2d084624844a55a0a5abb9244cb5b8736b835b512bcd912361fb660479b2c51b99734970808ba5c6db0169756cfc986dbda94915563c15a109aeb77c01a7cff55c8430696d6e83aea5d49292462d725c428b984d15e97ed4a76403094699e1336426b54281067e675788b3a4fcebca4431bfdc8a49c215ba11004a341516018419abeab2374184b0e2b7b7a54efc678e812588960a0d009418e5289eddcac582d3c73dd93e1234518da003648853c5b5a24b389e88300aeae78c41e62e5ee303a56b548375757cd42e21a7c59ff29a133868d1d0784197573464292547161b3a8689dc0c7de11139d407f0b5784d942278d49462965f21f72cb992add160620f6a82f70aa9a830190ce3c9fa8015071c2877483c2203bab7228ee2f37bbb17c1a4bc499ec249ffbb42e4989905a878dc873e456a7d9db946572936d8d81777d1b992c00db12a35df1348ce8c9d1a02898c7403d4107f45a6bee864375b623d30e0c191f8ad835a3f3709362cc763d63c2b91649d722825402c9ec1b1c7aa02b154d69e39da196e72a25928212fe0711bbb2fd2f9550a361a28d4295bf0c036d7b79be9130232060206c919f8b864f03d6f02348ed2c8001a30124b40c6d61dc3e18bcb27c60bd1324d8386da99c3e098cfb94b018031a4d6aa5788d27a75a67b630327add804adc21642d58080956a03f03c8193ac302c92e949cea31721813390382c814b2c5a6d34a1eb44b8b62aa77bf88b5067455fc0c7be967c21bc281ad38ea6978d228a83a820c57b4039175c910a450e300101cae45b0736a4dcbb0e6eb58491da31de3b65cba0a7c80c7815f677eea7ce5ec571bbf7c4516c65e4b2528e160959c815e1bbcad0a29ce59573d749453d9b6b52a951de9b889c79cb355c345631070b7c30f1934123c9ec68ebb324d254e5d246b14a0259e49b2ccec72b8c4948349bda55b63cffa9bf953993918b18cd6595ea6433b479e89b5cd3c9339e4468cbe82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade + +# Official test vector 3, seed: "225d5ce2ceac61930a07503fb59f7c2f936a3e075481da3ca299a80f8c5df9223a073e7b90e02ebf98ca2227eba38c1a" +seed: 050d58f9f757edc1e8180e3808b806f5bbb3586db3470b069826d1bb9a4efc2cde950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 +public_key: 25c1215d624156828088b63da622afa9fc5476b3603474b24d8394b93ab494ea3eb0f33ff5d91a33d34a2f666235ea009e35544cf135eff54e3575afe2fb15b6b59a4db843c25139ed345fa170003fda60b240065f761570471c4914aefb01c38fe36b3c7b80f77887a03b74bafb64d3b922701a86b027651fdbc777bc4d90d387fc15b8c12443af8636e35224c0430520bc984d71c56df26e84b683c1dba081b0a584b5793e725775482ec45b1db7c84949644d405579659cc31db130bd190d2247210c043bc8f227450ac206c13e8baa896e471f7cab2bdab29220c051ba354dc404767e812765c66ec19acba3b993caa2c0bc2367dd50846bb40d6587b51a76277f6865a5c69d885553ddfc200e970b9c0666c1854efc932af57a1f3bc0a805024efcf978f77b1dd739604b8a87b44b522ea80e87ca2cba7220e62c441a429d19b76425d51cd1e61e2a2950922637a1ab84fbf645a1f6413c288b731945d4029958d56db90aa01b712c83b73aa88581522757d505b83e61ae06eb6f5270021c61b7dabcb0229878d85c8f352a9a4349bdecb2ab0c2ab4039940a887b665f8b9dd10992b3b0493db6074fa85e1382a970953ebf113d4835e9f031d390836732b3ea6a89145183f72dbb095d7617a3abdc28912972035f1cc30aed3101d91c9eb397680c8ae222aa61e515a9396cefcc75c0cc255535a3f41212141c12558881e23798e1748bbb5464adfb167a2c44388044754a87a5ad1ce752c38b504bc443a24ff73a6cea4768e22681554b56dd59da1c7b88db126b7ec640c1bcae8a20b5f864ea6385dbba1c4ddd31775ca9f72ec6f137570fa9356de55c5c2ec92048a0cd9680837f98763fb35d1431805a7420d2bb803cc37bdc90fa921bd4d18b4f33419cf03ad0e2360d92192d7d87df71bae83d2b538741914892c0d778cfdf429be268a22f4043c29b62ff74fa770156d93127c3a7fe2c6c6c65470d1931f85a3af1a963bd919ca3c437b43d368e6e7a199407258b8bde88b4742192673499ac440b247d97225e7554482c6aa6567486074f15b19588c6d9de4619d4c493bf73f2bdbc05343a581e95197b64dcd8826442565bf629d5ce4045218bb908701a5e53b2d0679720598fa1b08f286b60e5c377ca7afafb206ed4712d6d16a47b99360426619f97db0059a15592353577765a8368d93928802704836c2279205446bbf7a2465042816d7907f143635b1434680156523b02cf1d8565ca5c7ceaa126a2753dc299c10e4968a4729991a0f5ce31c595629301c135b5810a712910a84ce1f2164c3aba248cb89c591ca0d24a7681c0a140672bf01c7f5c967f3e41b9a925af6ea75408a24684b725b446a30d0199f67af94b958c4b979c2a841b28878b5dc5154b79c944c7156538e6a130379674bba5438d64775fe1a87d3aca677541bf82c27c6d18f3bb182bc7494dc91b23c35392f21ac49e69e3c70454bdb16b2394d00a549734a1aa4790b01508be670841e09042e5a1a4a73c3b830ac5a35b826f36411639e20576a89197426005c08380c13a4a464892bc6992e236771e7b135aee096e9f65738c531b8e63c3f4a922a79222cf8b8309a04c3c7464a69982a072fb895714eb8f4e6d0a4c447ac97280a7a7b63bd585c521a49bf9230588ddd7034 +private_key: edda9b4fa2880d5778280a51a25a02b4d08f44f83afcc7ccc3692af517738bf8aafaf53eb33004364aabc42bb0a640b12266bc6eac91d124867192c485209660d625c33aae9f38535903cdb178bc2ae557e71acee8208169d80c74044490b3ce4c06b2b68b44b2c0b47d3c9178344f7a7a30da49548656b011b74b5bd1b23a1b39f9f37dcbc91c697799748007f80b3d55f6cb81b926311636ff11cfbbaa31bb02689e9b3b983213c2b3cd8d4395bbd46dbd25b345ca920f9b3545f13d4b809daa02608b4c5a1e041a98b3320b91802544aaa98a4916c7c49da792f6a04a4d64afa1294a8e71abd47c4d96d9203c7610a10b762e91b386471c8eec6ef94259b8440c369153ab6b9d6b52994271a865e20ed1136435ca490264a541207707881ebf74be6259b913b38a2c54be4ea88de1dbb3eb59b91497a13304c54a23a3a1810674610255350967a612b55bc82a22aed447b09bbc6f92fb9427a4baa183406ee6ca14e35808e33bd339a9c428213aabc6ecf473c38b62aa7c6cc8b30f9a559565d413c8f504cc000fafc4420177c054ec19c9360c2e04504b8b7e7bd86b820b1996a815337043f65975401c76a863a2803b0c80a6062e827daa973efca23502faca371cae8b42c4518b52070b91ed07a5be9c9dd304386592988fb1162449ac12589115e7c14776977bb34aff985c95f40265c20b4cd6216702c9ad91345cf120ce0c2961872bb6e42547412bd226ab8fba97b8e074eb0746d61140e07a51176227c9559c4bea306be88e2b84515c528af3ba34cc71c06e7cac19b998b23c549dfa2e253a33ad23b905e1c55f96054c3c4d0ee68f4b447404b8a752f4a9cb6acc624a7985141055733f47d4220ef164f6c7b6573bbda39365890c0c0318827a701ac4670878fa11ff24b3c57b56abf09ed2ac5ba554a8dd184fd09695cb2c798ad23b86f0690d6840c77c53f98491845c0c335b601b26582d9758a244603035139c98b9a723872d16694a4b5165a22fc281142251855998cd6eacad79b8987f143b5a7a69feda51d66b1c0e453dafa5209a225c1298a8f922cecb2c6ebc63c762f285ff667469d1371cc5ac957a495b55834c3b3a4ee9bf2a85c5b7062742a940a686bf0149542b6a350fd2144a849d6d71ccbf7336fa06aa4f7aae89e586c4d093145b8265699f5ef000eedc0cedc96e3256072dda4fe71789ef1c4734e3205ae617aed6a8848083fef84c61128c00645e6b4319b950ae0322ad845a58bc4564d2bbcb9e08858aaaa8f547070ea54412eb5b608cb7883472d10abf2ce4143e461c1de11b5178cdd8924d93666ab8f44cecb954ac431ab89208d812cc29073e2de706953c2028fb236c731dd838af9d310c1538238743bb71fc3546a08fe4e35e965903f2fb7e1a9a2201f6a86f38b21f22906d659f4bb8a226ecb8a107b217ea41e542075d01cba7caaf1c97c014a97ab49666e0015eeac597717b1e1e8773838958dfd1796fe1a7b62583f575b1c0e676a916799bfacec28ba707974131f36bb2292ce4e99cc2046b689624e069ae46db94fd66a5ca083851940ba26341bb891fdc860d53741f084b2d9e846ec2bb5eabaa69a8d96a8975a1d6f33835a53225c1215d624156828088b63da622afa9fc5476b3603474b24d8394b93ab494ea3eb0f33ff5d91a33d34a2f666235ea009e35544cf135eff54e3575afe2fb15b6b59a4db843c25139ed345fa170003fda60b240065f761570471c4914aefb01c38fe36b3c7b80f77887a03b74bafb64d3b922701a86b027651fdbc777bc4d90d387fc15b8c12443af8636e35224c0430520bc984d71c56df26e84b683c1dba081b0a584b5793e725775482ec45b1db7c84949644d405579659cc31db130bd190d2247210c043bc8f227450ac206c13e8baa896e471f7cab2bdab29220c051ba354dc404767e812765c66ec19acba3b993caa2c0bc2367dd50846bb40d6587b51a76277f6865a5c69d885553ddfc200e970b9c0666c1854efc932af57a1f3bc0a805024efcf978f77b1dd739604b8a87b44b522ea80e87ca2cba7220e62c441a429d19b76425d51cd1e61e2a2950922637a1ab84fbf645a1f6413c288b731945d4029958d56db90aa01b712c83b73aa88581522757d505b83e61ae06eb6f5270021c61b7dabcb0229878d85c8f352a9a4349bdecb2ab0c2ab4039940a887b665f8b9dd10992b3b0493db6074fa85e1382a970953ebf113d4835e9f031d390836732b3ea6a89145183f72dbb095d7617a3abdc28912972035f1cc30aed3101d91c9eb397680c8ae222aa61e515a9396cefcc75c0cc255535a3f41212141c12558881e23798e1748bbb5464adfb167a2c44388044754a87a5ad1ce752c38b504bc443a24ff73a6cea4768e22681554b56dd59da1c7b88db126b7ec640c1bcae8a20b5f864ea6385dbba1c4ddd31775ca9f72ec6f137570fa9356de55c5c2ec92048a0cd9680837f98763fb35d1431805a7420d2bb803cc37bdc90fa921bd4d18b4f33419cf03ad0e2360d92192d7d87df71bae83d2b538741914892c0d778cfdf429be268a22f4043c29b62ff74fa770156d93127c3a7fe2c6c6c65470d1931f85a3af1a963bd919ca3c437b43d368e6e7a199407258b8bde88b4742192673499ac440b247d97225e7554482c6aa6567486074f15b19588c6d9de4619d4c493bf73f2bdbc05343a581e95197b64dcd8826442565bf629d5ce4045218bb908701a5e53b2d0679720598fa1b08f286b60e5c377ca7afafb206ed4712d6d16a47b99360426619f97db0059a15592353577765a8368d93928802704836c2279205446bbf7a2465042816d7907f143635b1434680156523b02cf1d8565ca5c7ceaa126a2753dc299c10e4968a4729991a0f5ce31c595629301c135b5810a712910a84ce1f2164c3aba248cb89c591ca0d24a7681c0a140672bf01c7f5c967f3e41b9a925af6ea75408a24684b725b446a30d0199f67af94b958c4b979c2a841b28878b5dc5154b79c944c7156538e6a130379674bba5438d64775fe1a87d3aca677541bf82c27c6d18f3bb182bc7494dc91b23c35392f21ac49e69e3c70454bdb16b2394d00a549734a1aa4790b01508be670841e09042e5a1a4a73c3b830ac5a35b826f36411639e20576a89197426005c08380c13a4a464892bc6992e236771e7b135aee096e9f65738c531b8e63c3f4a922a79222cf8b8309a04c3c7464a69982a072fb895714eb8f4e6d0a4c447ac97280a7a7b63bd585c521a49bf9230588ddd7034647a81f0f1b3e3dacb6e73e900f7c078cdfaa7119a5ede48c7685fdb7e0fe2f5de950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60 + +# Official test vector 4, seed: "edc76e7c1523e3862552133fea4d2ab05c69fb54a9354f0846456a2a407e071df4650ec0e0a5666a52cd09462dbc51f9" +seed: 66b79b844e0c2adad694e0478661ac46fe6b6001f6a71ff8e2f034b1fd8833d3be2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 +public_key: 711cb96f0cbb88a8c1c298c7837b2f2c3525f2313ee5cba7f6dc77413cb58ed86f75d26b39729561c28b795073c1994f69256eb0ba9c934146c4421419475d005150897a17d310bc52f43d50e8ca5706a774d5079719754c6336d1142d2387bdc1732c03e2a3a04a9dde91c46612b54ca6ab15921bc20ab4f2d21910629ff4e37516870d60ab8bab08ce45dc89ca6712f17869e645b702141ef5d64f67f62156ea90ef1c502024858e91c89de92056f3675c1a6eb2191e17300845cc3f7b52cf93c566ffa732c362a8e89c5b6f4a5a827b6259d26a31932e3141486ecc746027776a852faaf0c3c436c690e3664ffaca01582022a99130bcc402bb7234a14db7baaddf7981d6557dfc44788c7506be021359e1917837a3c3d5a598757e00f77b6b785436b6840a16151939774a10a7cb8089fda55e6ae49f30512d691716f29c8a9fa94a8a113632a20c71138851ea6ab3f84e6e18b8531119e36cbbc6d0229a491f6b3b7e20866dda8ccf802abf47a769676550e2fc52ce438c48946eeb22756734bd4572c501dcc311b26fbc9c8ed2100a68e44435520848590375b59687c94a685b6490e236193c722b7b4acb84ce9a69388d13a984f696b85122c3dc0a5c38c2992ba60a280c9c6783855093a9b886953194eea273225c1a3e10b9db18c548c05c392631dc47320f411a618c943b7a201c784885b62f7c56a6b698abf1c76a039b3e6f95c466dbc31b4173778a9d5770b68b8a8195e886e8191e043b909723209553bb942a96ec4cbda1382d02f71a6c009bdac062c791c12f68a1f0506478d1869b782bc8b0181de6ac62bc8dc844aad6403a2b907f2d1a992bc44313f711fee1bc70d326e7199fe411354db2c4ab2526d09227bcb42cce2650e341368fb493d6754715736f8151019df22b07e5b5bccb3d0d161ffbeb2e93731600c85b6ccc226c790ed5e7384e8c3555497c07ec074f2253713b1ef6927ce4c1a80da11cb609c826718a5474230d62a40b0824675c95d0cb05b7c77b1dc4aa2872b8083bb79e201a0c847061e18be1d2ab68b2bd55d24925db5f4479bc12dcbc834b0254b891bf373cf5c4971bb0811182527c72c2ee6479217c70214106b416bdf0d818acecb63fa6af4d7031bb50312023acf66986c71a25cd8a88d767844c312dd5198b965c3df3e244ffd64610eb0cb3431f98889e72e864590191692b8857675afd45b6cc31374888b40183720e1985d811098738b63a823bc7716f9ce94ec70738d7f5228199bb78b811ea912500c71e1cd93c955c0049519ffa8b523a7861b6b2a3dce97d82449b00b8961877488b50542221ba79aaa0d33b3a47025acbe47998952b08e27ac2fbce08d6bdac7b6990297504194bc0304871472cf3cb952d439646aa86c47986d160afd7f401c70bb200e6182f91872812c551e17ea8438ae4236cdd743159802b034443e8d7ba0a249b312ac91981927440cb0bdc8e4615974bd2450161614068206bdac3c2e69eea0912f8a4ca1af21ac4c033a6076e6d13039c97ca930599aa12b93d58c09d663de14158b72ba0803a1b7917b71284802340422310babf6572aec23ae33a54a1f9c65dcb70821393b95178ba5acbc0756dd8a02f8afd156dc73958bab2f2c0d24c2436f9f00b7267da9f8b2678c14626ec +private_key: 9aa91962f6556d921b81c4946aaa26b62ac53197a49e1701eff367d7ab00b27677ced51b9619541ec8a180db9a7ed7342c31000063578851bbe9095816cc689b701a0cf7acccc64abb1355807703a6a759a2d89ec01c9b8196573576c06395335bb39903187233a3c89811447e8346dc70ae390544145abb14004e6e132a43e59364b249b3cbc13084c9a3487bafd0bb66d9414f607e6cb33b35d990ddf40d87135c3abc43a5b431b72ac9981b753a4b17ea48c3ffab5917b387657bc537162631e76ef6eb68c670caeabcc613b439a1f265d1229f8226c1a76447b535a81bb311b58b1236324c20762affe367155678ab01bae2b3bbbe3519ccc6840cf305e432b5c92966f45809dde31b7c30c2ccd77aaaa236ecda9260c361e71c7292e10151d165bf6c9cc709a49182807543651a844fee7703876921af5537365c50f4ca07b2895725505db00c6a3d240089f51c7dab07dde7a49217a90bb46462b4957ab22197844335b620e0226d1df94ffb5983bbe8aa3197ceb6180ead6561bcd7914841af1b954dacb4c5ffa694a1a45064e2c3b0bac1d265abbcf2ba35b8b3b0f660d83680be5c12dd2437a46a3367d6bd94d40fdae51ce2ac800a0881b3b3a12995bad39a2ee4ca5e07446943f19aa5dacc7b8c9042950ab5ea60a4e54de2e8378589722bf711a1c92113471259b2070041287e51742ac79902e4ccea25712943285fe5896427c8eef2313277b91ae9cb55ac2edc49b2d194a325f6836d29812660209802c457266ce3688de79a40d5b6a4c2b606b56c0b2e13b262990cf23987e138742eda24c0cb551aab1024eb095e929be557b17326b2daab78c981bd26a393a175385acbabb1a87983c271175cada26b2495705142e0c4fee912d1e19d97f2ceeb1653b70c9003165d7d5a4a6e916bf0298dffd94523762790f0108610c1bff81a59ec4cc890a716a29f4ad24d75d53360c423d0c921e66b59d96347112c918ff680ed460c8d590db11992cf86caf3ea3baec9370456c6c354859c040fd1c126f736c92e50860694b29dea4c1bf31061ca259e83035c01a27ec57eca8aca80c6c932261e1f44b6af8a0c571a833a826d2c8b749832566230cac47644eedc9b288640e32b4dd75282764c152b87648f7baeba3a73c31c7e2984973e74a6a7236b3c364bdaf2a5fe64b4da0b49437102a550ce04f220ad907e8853028a370d0b501d6fa849858339f63b8beff42fb5986135090bce450455b561f5d2c1d0a846dae4b2fea86507aa38c2257eca186ca21b87364643ccb668f7d880c164c398f9c46bf75a9a7c975e463bcc0b9b26c4291839c43136614f9c9133793fed561adc63992bf968d4c373b8531e6af04d58476b33585c1e9ba49539043e726340c4cce9223519227cd66b5f3d05702b9600a2694d5b23c4042b603018cf25fcbe4cb86422420cec820ceb589b42791c010cc4aa306fdb55452a49c66071c81aa3bac6f014be88602a6b4c49db2a7a9a57e6c97bae7bc483f5a54be7970300bd2445758027311e4949ce43859426b23999a0568a55b2304a838546d3f4b6cf8303798837b229b3b1aa3b3ea60bf3a9aa5c8b79f5293556a45010b5a571dc246ed749711cb96f0cbb88a8c1c298c7837b2f2c3525f2313ee5cba7f6dc77413cb58ed86f75d26b39729561c28b795073c1994f69256eb0ba9c934146c4421419475d005150897a17d310bc52f43d50e8ca5706a774d5079719754c6336d1142d2387bdc1732c03e2a3a04a9dde91c46612b54ca6ab15921bc20ab4f2d21910629ff4e37516870d60ab8bab08ce45dc89ca6712f17869e645b702141ef5d64f67f62156ea90ef1c502024858e91c89de92056f3675c1a6eb2191e17300845cc3f7b52cf93c566ffa732c362a8e89c5b6f4a5a827b6259d26a31932e3141486ecc746027776a852faaf0c3c436c690e3664ffaca01582022a99130bcc402bb7234a14db7baaddf7981d6557dfc44788c7506be021359e1917837a3c3d5a598757e00f77b6b785436b6840a16151939774a10a7cb8089fda55e6ae49f30512d691716f29c8a9fa94a8a113632a20c71138851ea6ab3f84e6e18b8531119e36cbbc6d0229a491f6b3b7e20866dda8ccf802abf47a769676550e2fc52ce438c48946eeb22756734bd4572c501dcc311b26fbc9c8ed2100a68e44435520848590375b59687c94a685b6490e236193c722b7b4acb84ce9a69388d13a984f696b85122c3dc0a5c38c2992ba60a280c9c6783855093a9b886953194eea273225c1a3e10b9db18c548c05c392631dc47320f411a618c943b7a201c784885b62f7c56a6b698abf1c76a039b3e6f95c466dbc31b4173778a9d5770b68b8a8195e886e8191e043b909723209553bb942a96ec4cbda1382d02f71a6c009bdac062c791c12f68a1f0506478d1869b782bc8b0181de6ac62bc8dc844aad6403a2b907f2d1a992bc44313f711fee1bc70d326e7199fe411354db2c4ab2526d09227bcb42cce2650e341368fb493d6754715736f8151019df22b07e5b5bccb3d0d161ffbeb2e93731600c85b6ccc226c790ed5e7384e8c3555497c07ec074f2253713b1ef6927ce4c1a80da11cb609c826718a5474230d62a40b0824675c95d0cb05b7c77b1dc4aa2872b8083bb79e201a0c847061e18be1d2ab68b2bd55d24925db5f4479bc12dcbc834b0254b891bf373cf5c4971bb0811182527c72c2ee6479217c70214106b416bdf0d818acecb63fa6af4d7031bb50312023acf66986c71a25cd8a88d767844c312dd5198b965c3df3e244ffd64610eb0cb3431f98889e72e864590191692b8857675afd45b6cc31374888b40183720e1985d811098738b63a823bc7716f9ce94ec70738d7f5228199bb78b811ea912500c71e1cd93c955c0049519ffa8b523a7861b6b2a3dce97d82449b00b8961877488b50542221ba79aaa0d33b3a47025acbe47998952b08e27ac2fbce08d6bdac7b6990297504194bc0304871472cf3cb952d439646aa86c47986d160afd7f401c70bb200e6182f91872812c551e17ea8438ae4236cdd743159802b034443e8d7ba0a249b312ac91981927440cb0bdc8e4615974bd2450161614068206bdac3c2e69eea0912f8a4ca1af21ac4c033a6076e6d13039c97ca930599aa12b93d58c09d663de14158b72ba0803a1b7917b71284802340422310babf6572aec23ae33a54a1f9c65dcb70821393b95178ba5acbc0756dd8a02f8afd156dc73958bab2f2c0d24c2436f9f00b7267da9f8b2678c14626ec811aea11a24a4b09e428415f82ee836e930c3b77867aafc5e6728149e3f2bd1bbe2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854 + +# Official test vector 5, seed: "aa93649193c2c5985acf8f9e6ac50c36ae16a2526d7c684f7a3bb4abcd7b6ff790e82badce89bc7380d66251f97aaaaa" +seed: 7ec408f52c9aa723d0c41d9987682a5f4ce6c9da7cd0215af60bbaf5484ab353a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 +public_key: 317771b7e77466880e15c76a39356cb459b78e6821e69b2f0f817b236a04a7cb834a743f830934043856e0dcc376730b3afca17aab6ae2c59ebbd57f52d84cb107b6c5e536edc31e57c3cd404a618700aa1dd87e43d92d4e601ca8d998c927451e9205429c643b251e8307553fc755dcc06d9003c35c310780b31ecdb05764e3c479913063978143fb9a462b011446394a287888a61f4f57b6c0548718faacecfa6571381ce25c2d10c27386cc255086419275a3ca59bfcbec4c63e5b487c41661520495e7b54b9641a1e16dddba5794a42d42e86b0007444cba4db161c6547c69a9cc18b2923b2a388710578043b77513173f6eb0190854bd6cd2612d1048e79435eb17680e99bb932c232b1ac298591d98a881696b3a46e117bc4a50565ba52e4704eb1c23c057894878434c61789ee8a594f94ac55748e2b111170c391b6b8403099928a2c60a42383ce5cea5880701aa5b60e4c789c759c12703d946416ed316e48c62603920e2f640a347a2f305602f4138aa82b78cd08fa071ba1b9711a333a3d22244dad09aac8058592b1edf9193291c8854b18003c6cfea4a8728e7ab378905e3d04349fa5e4ed9baa17b41b0a7189ab5cd0e352f174a51f3518badfa7df523bfcb64c43fac3bc5b6532bf4ca91e245e1e61a815c865bc7cf3cf87891eb1234a49b624c0e1169c400cac05359b6a15c9f3201b21f02c3ff0a4b94980757688ae0c48d0ac5c3fb650ddc38a8167c87c51cabd1698f8e3654380cbc8819599699615ef5495efba00a7a2c805c1d49552183b37bdb782f652682e02b7e26893fd97b8a7025affc7062e99557751a6a1da7828d7a003d0c62c8d006fac92589594fd729c17f38c5c83bacfe5bb8add8c1749a7550765f872c22e3e8be9db4c50a915fec511c31900890192861366d9177612d731f1912ccef5534248408c31605ed8960a612234cc23c94275a0b77302f0b82b4d121bae15539c3111b9a21031314076199849302f4274fc54b284d95903cb543902aaa5cd39d034304ee86814c6119f7fbc17d35c68b151e9048434973ae06030cff855291c71d58740ea00254ed926ab8835234490bad7b51eab118accb66f4a6a172c9a26717376e678771b44d9d452dc93988b9c9b5af98907b17487bca1397b8547ac8382f8a28a78a91b1b105f107200e839218a74d16000e90334ffc8709976b7fcdd4b742dc6bd2667ba6ac24dc510314f6b98dd711bd7a7169798874225627f2c7aad1bf37e97a4771542e8c7898fa0d8bf4c0fd91bf598580df6c0ce231a96368c8b8435f5507429006883fa88ee4e5791c2685f61c9247e72378478492ec90778c5fb8aa4a70e6cd48890bafeb05798c13795c58b62b5ba8f7c522e78365089ae735a796825d9ea8c572a6544aea86b2e08ea9748cf6b5717103a6d1c02f5d87a5e1aa94beda8691d454de0b547e951afe05061399804bfb32eb7b0857b8851810ba48e92518ba798dd54135a74419217a687620a0c665a050318e3672cd616f6d41618005cba6ea47faec63daba709acc2489417fea39b74ca2b13d4a60ab61ba89b2cdf0912757e08214b0671d8867cd2794fb30a8983b410f149ba2ca7134d00f83ccc8d1d4e2f1e83c9d8d4b95e33927f84741e362d80c3ce5833b7f2498d841f4c7e0 +private_key: 7390b68a5071de21628a6256426aadd676c604479578d418ff77b4280c2901a29085e9ad9ca81c7639bae82274ee094fa38cafaef26fb27723c8c3c2b5276e28dcbd7131a5afb0bb238249963216cd81118a881dcf9628332661e0eb07c55465403b81d31407cc5b20b2041f5455c3fe8061edc7ae33e06982999e185106322564bbf9b03e309e1fa6bd61412f15091e9c523885b6134788a19d812a4cf4372ff35a24823a020c97cb59a9f5b698471483b04410107a2c2d8824d1ba5646a89e697738ebe6926c54874dd6a55ba2b89b64b1aec95f918a65c9e92d8fcabd58e25fb7b07fd880ab48f6581b661d4ea3cfda38875c9568a2162ec367bd78c2a7f7b3776511a8ae16981838bb3fc6006fab2457f2964bfbc5ed5c67da4987ec997d5eda305b389cb9234b39e23ccb316fed518f35c757bf77b501b983130282f598039435a6b402b679b14f5c1c2c69e32b1ac9421c888b6d935911d4aab56a4b39b3a2c6b8049f8584d74110fe63a1cbd633c63051953b9d12f36c5e3885dffa5d45309dcf56bcea5739a85441dde06b9564a4d1e416459a809964c16d574a42eccb18f51ccae7b016ecca4df2365596ce27958d1227a72a4ca336c412baa26afb154809243b5a448a9fc38b39dc90d2177f142b1959fbc767146dc8d17a3857b84e987479759997ea85ada8662035a939a30412a771b3893ab5184dc94106ef0790ab7617c57c8875d842010c08c142ac0f347709684302929d1d4371cff2019adc2c9a0a34b1f4a70dbbc3b18011348c7e725345a50197739a83a86c7af54960c11c3b03093cc3a39a7e2c8fb7f84e1d452029692bc4a872946a23cfe834254845d46bcf040267a93602b74a6fa9580b134500edb9bd2aca5cf1959991c8716e28c2ecb026a398444b853408b371ae438d4459a3a6bb00fb63175005cf15125136c2b069b9560d213acd3642c3b3c26620af85850922d27fe8f8cfb7b79afe08b9459a36281379c4169b73234c7649b8a0416eee2449ef7a1adce07910673d2ec3ba18e74914110e2bb7a9343b74d5551a80dbcf61d52367f387259408bb7b87d466593cc9b872766cb7021e9c741c040b397d842a80c952c91070838833efa83f36ec134be6156dbbb63e720b07d2197a4b4719f8a7815b682813a55e369721b88ac78144b738177d7788c2970e8591ab378bb4f26998845a8238a51352d33ed9b5533797a7e3d801b63a3542b11642ecc9e3808db74700cc622762a4132d8a4ee583cac8898005760351d6b70f71b52dea75c07a7d5970875e500ac13c14f1f2625d217ef13404a493526b115c6af01540629e07795fa78195ce23809911475e9ca00cb3caa0b5bfed575a6c33bb16351c60bb5bb050218f259811bc669ce68fe4fb1d6369cb7913013a16108d8204f0e09f351156713495e7a045175876f2836a4ef381b6a426ae55370ff4c8e740015687a8828c19426060581523bb184baa9972d946af2d2c34eaea9869304b095106fd759b2040908d175f02ca0a87762af4b57daacb432ad5558a41aadd2c49222460515178740c8f552cbd99653ffb4953d3218f8efa2fd6a1bf7ac7101cf320060c537e95381623872a2607a8447a317771b7e77466880e15c76a39356cb459b78e6821e69b2f0f817b236a04a7cb834a743f830934043856e0dcc376730b3afca17aab6ae2c59ebbd57f52d84cb107b6c5e536edc31e57c3cd404a618700aa1dd87e43d92d4e601ca8d998c927451e9205429c643b251e8307553fc755dcc06d9003c35c310780b31ecdb05764e3c479913063978143fb9a462b011446394a287888a61f4f57b6c0548718faacecfa6571381ce25c2d10c27386cc255086419275a3ca59bfcbec4c63e5b487c41661520495e7b54b9641a1e16dddba5794a42d42e86b0007444cba4db161c6547c69a9cc18b2923b2a388710578043b77513173f6eb0190854bd6cd2612d1048e79435eb17680e99bb932c232b1ac298591d98a881696b3a46e117bc4a50565ba52e4704eb1c23c057894878434c61789ee8a594f94ac55748e2b111170c391b6b8403099928a2c60a42383ce5cea5880701aa5b60e4c789c759c12703d946416ed316e48c62603920e2f640a347a2f305602f4138aa82b78cd08fa071ba1b9711a333a3d22244dad09aac8058592b1edf9193291c8854b18003c6cfea4a8728e7ab378905e3d04349fa5e4ed9baa17b41b0a7189ab5cd0e352f174a51f3518badfa7df523bfcb64c43fac3bc5b6532bf4ca91e245e1e61a815c865bc7cf3cf87891eb1234a49b624c0e1169c400cac05359b6a15c9f3201b21f02c3ff0a4b94980757688ae0c48d0ac5c3fb650ddc38a8167c87c51cabd1698f8e3654380cbc8819599699615ef5495efba00a7a2c805c1d49552183b37bdb782f652682e02b7e26893fd97b8a7025affc7062e99557751a6a1da7828d7a003d0c62c8d006fac92589594fd729c17f38c5c83bacfe5bb8add8c1749a7550765f872c22e3e8be9db4c50a915fec511c31900890192861366d9177612d731f1912ccef5534248408c31605ed8960a612234cc23c94275a0b77302f0b82b4d121bae15539c3111b9a21031314076199849302f4274fc54b284d95903cb543902aaa5cd39d034304ee86814c6119f7fbc17d35c68b151e9048434973ae06030cff855291c71d58740ea00254ed926ab8835234490bad7b51eab118accb66f4a6a172c9a26717376e678771b44d9d452dc93988b9c9b5af98907b17487bca1397b8547ac8382f8a28a78a91b1b105f107200e839218a74d16000e90334ffc8709976b7fcdd4b742dc6bd2667ba6ac24dc510314f6b98dd711bd7a7169798874225627f2c7aad1bf37e97a4771542e8c7898fa0d8bf4c0fd91bf598580df6c0ce231a96368c8b8435f5507429006883fa88ee4e5791c2685f61c9247e72378478492ec90778c5fb8aa4a70e6cd48890bafeb05798c13795c58b62b5ba8f7c522e78365089ae735a796825d9ea8c572a6544aea86b2e08ea9748cf6b5717103a6d1c02f5d87a5e1aa94beda8691d454de0b547e951afe05061399804bfb32eb7b0857b8851810ba48e92518ba798dd54135a74419217a687620a0c665a050318e3672cd616f6d41618005cba6ea47faec63daba709acc2489417fea39b74ca2b13d4a60ab61ba89b2cdf0912757e08214b0671d8867cd2794fb30a8983b410f149ba2ca7134d00f83ccc8d1d4e2f1e83c9d8d4b95e33927f84741e362d80c3ce5833b7f2498d841f4c7e076c64235d8bd63438f13dcd038f286b9f4242070a5bec4d8990075008667aad3a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082 + +# Official test vector 6, seed: "2e014dc7c2696b9f6d4af555cba4b931b34863ff60e2341d4fdfe472fef2fe2c33e0813fc5cafde4e30277fe522a9049" +seed: c121915bfef6abdfc177dae2f5a24218f9abda2559afc6741b08e0e61ab433eb84ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 +public_key: 611425c6bb62e8f60764db8466613486836fa07896314a6ea13a56e2f467483848c3451602e4c6ceb2cadf378d85654a63024c5e1aa3ba242136e5302881274c1316cb26004a549b19db794fac3f7c454fd8223f560636fa5acb56f0611911954131ad94ac88272b6cf4c89fa0635a7a838c38c92e1d640955453ea44ab5a6a0868cb9c071e51705e24a1cb1c4c9d8c59082757fc5cf95b17ff0064c0c47b021b244de30aeda11251fb170efb279154515b69cba0400875c78c1844503d411521ad54c651a738bc32da29ccfe992bbdd937827c6503735116ab5079dc04006fca98a66acb6519187fca7ca935c090bb8d31b6062b34513f01e157976183a1873db1c9e878a3eb37b650205ea5245fcb614887a8def4bb44b89cbd3c221e1a9b587a8c4a50633a9f386e6aa43e360649da46ab688116e01aa75943ce061b362d74ea824870a94cdf84b38d809bea8c994d2e10057b78ea6685fee45548e6bb681a32f5346ad5467558fe6c345e6258175a84edcb32b378ac3bb24e85739681234c0f1633c334df7d853c9d00dbde8a23d463289423536a44bfab94f2c76c113fcb086e5c4cf40193220c40b509065cc3ae5c861212b898699ce1c224a04a77bf165b0bb057c30d9cca16b4dc8128e7c197a4999372906cbf38386d66c27d1e36e8d504613c36d8f655d49750a72509f32f09580fa4518d9a34eb63ba76c063af7cacf158607890380c034e2429e49125c3f543c77c3066c374a43d24a7eea2608a12b845a4c42f7354699bb169bc720b175ce7c0d6e63843f543c0a84162e388fc21c313b3a5902430cab0a61d3e3aea195b13cec41e38539f41c6e22d63f5d60825d7182ecb31dc8a0a82a952b765c0eb279b75d20be877b8fb8fbc290f56efcf5240779bd2c639a67476fae730be123236ea68e4afa9d3200d0db30b7a771bb97fc1667e94cff70bd02f32d6b0b19548b61bff4a43fa5cb73ea11483b23b1394ad5812c8875002be49510656794033fb3150c7e13611126afa639355de9c04de445eb5c7430287815771a937707e88b3c8f42587f30baef55aeb7a392c14a4dc858abb9d537f8043c64100aeee6a597315bcdb65528286e0fc7ad5a59a066725cc965c562acb9d6330f28220bfb35b21cbb4321fbb556449c5e1108c46744e48c578937cc12c20df49b79ce96aea9b231892597b8a57683c495a9729bd7b969f34899116104abb00ee4049ccbc7c37ea5868ba5c2f4a3934d6599ceec340d6a488fc28d84ba371456caf9c52da9980904e253e54332505cb9322b1ce3c1904c739433d99fdb35461d4b3f949c8734904974c5cb7dd54531e86e7f9a69b8c78e137a77c0eb6b1ff468d0b2973819ca6a69b1e640af8f3b35af45183f5284425393472b3b7674503a86592947621dac8352a64427d313d51716ed6cc78bd85412d97561c910f31923361485d138b80585cf2a59a04896b3bd8c7ec2923ccd290c962c343561226a076e7e13a0d51233b68062d0e02512aa96fd701ecb80b7f45b210311246bfb594c5059f25c1167094f966c7d88da77ba3a71d186936f6007cb7cb4941c599103792edc82e3708e4aa9706da72ced51924d19ba561843c3a70f3f91b4ff04987cc4a914fc6ad33290975bc0b534d415efbe43f7d4a4b917723a +private_key: 2d8ba8d5472d324746fd3a4a9f999726cc13871a6ce75130aea07566332c05dc3b99c8626cd69917f025f6898a3112b7119c168bd86e27c6af08b292aa37745f993146dab93b159e9685cc09d750ebb58ddd2615236b298e8422db54b971192d69857d3cb1c910c948544b6270a1c5854936dfa643710b631c245e8b00c42fe15552a293b6f20278d82588bb164eb3636465cb0bf931b77c087a475dc35414c896069321080de41d58644f14143c5b75719184172eb2add8dcc059bb5dac9a22060283b5c87ca05b068405a9e2e4c7cb88941d7162667733b95a76d2e3ab9803b547047c95eb86995b1abfa050346788ef0c682405852bd9bd8f178e4adac309e8aca30ba6ab1bc5f8ca8dcc96291a616d77d31a0504229e206704db130e8b4480822833597d36db65cfd130d4796a254c360dc2799d256eae54b01a264af8020c4422aa837a61dd2c983345bc158bc878987ac4f22e49b21d21d47f32625ca0386637668517531ee2f13a5d0665c8d41ad19b3faa53793232974ec3193f2568c092595b009d40f3301f033f479192d016106be49303a1616347853b107626e49cd14c46be4660883b0b4d7725c0477887eb771e305ee2aa49beb1c00d6c42b5c33fdfa225db0640e973855d504ffa70b23c6c1869ba0dab69aa2cb75a02d9acd2f57f66c0983182a334e2796afb96ab2293751ace0f51219a994b2c5625f1ec7de1891840d0c6f0b300ad5146b5b682d5a6406455a475a799c0ca7c2d89c8bb759fccd178d278217d086dbce5a5946a0d6811518dccb37e898be658321fe262df3527fc5271e7b2b164099042900f2dd44491a72361bb0aef38106cf5ce7dba2316fca7ff2843f4f00a7ad94726f04bcb552dc8b24d6a644444ebc10cbb5dac08afceebc9dbf7910e031c8bb5038bcca34dd77fd8c7ceaaca6321715e639b5ae7573c0a0ba32668245a09aa278b86e2f2118c5bc6e9331063fac6d43c63d21728bb691233337668e7400fb08c54f98894c45a3548b74a7b1490a4b6009a05a9919195c20d835746d092bc6d3c02d2613e51832049631d3dac37d5951d50a2bbc5c35ac63a8d9c0318c2491ed5ec0ffcd0baea679150ab737003cca56556063b2abdf7286e887e92737f3651329235492c7221aaf0609c8b2f54a9c001f30d7314581ba821ba5b344463a88fc046d06a0eb422a524ccac23f7bd722c487d955c81836f7b49329b81231d371c7d3994bc54874e85bbaf278899c544236b49c04c688aa6170dea386d11b840634e75932b01716fb33459e63393f8da1281136f217bbfe8c10a14fb675e1a5074c1551530139c57312b4c9b5f4cca2219c4b35b63b1590ee6e3ad66d301b4609075737ff7a37aca7193d489762e75ada15ca43fa8be146232e5029b3f2a7d94f551ab625b8f963c79bab4123489317923eb54ad997b004ad53b3332b25cb27dd10a3576776eb1d77bfa10a9edaaa42c385cd5c871a4cc37e29a3da2e51683a78c09d63e64f6895930bb314080028473bc8c53ab6a2038dc1dc018c219108087c3b2bc2389e8609c0a8737f01c8dfee13e2014a77f2722e0f60d71f162ddf0c521f434d51a49befb613fb28fe9001d35c250791b0c611425c6bb62e8f60764db8466613486836fa07896314a6ea13a56e2f467483848c3451602e4c6ceb2cadf378d85654a63024c5e1aa3ba242136e5302881274c1316cb26004a549b19db794fac3f7c454fd8223f560636fa5acb56f0611911954131ad94ac88272b6cf4c89fa0635a7a838c38c92e1d640955453ea44ab5a6a0868cb9c071e51705e24a1cb1c4c9d8c59082757fc5cf95b17ff0064c0c47b021b244de30aeda11251fb170efb279154515b69cba0400875c78c1844503d411521ad54c651a738bc32da29ccfe992bbdd937827c6503735116ab5079dc04006fca98a66acb6519187fca7ca935c090bb8d31b6062b34513f01e157976183a1873db1c9e878a3eb37b650205ea5245fcb614887a8def4bb44b89cbd3c221e1a9b587a8c4a50633a9f386e6aa43e360649da46ab688116e01aa75943ce061b362d74ea824870a94cdf84b38d809bea8c994d2e10057b78ea6685fee45548e6bb681a32f5346ad5467558fe6c345e6258175a84edcb32b378ac3bb24e85739681234c0f1633c334df7d853c9d00dbde8a23d463289423536a44bfab94f2c76c113fcb086e5c4cf40193220c40b509065cc3ae5c861212b898699ce1c224a04a77bf165b0bb057c30d9cca16b4dc8128e7c197a4999372906cbf38386d66c27d1e36e8d504613c36d8f655d49750a72509f32f09580fa4518d9a34eb63ba76c063af7cacf158607890380c034e2429e49125c3f543c77c3066c374a43d24a7eea2608a12b845a4c42f7354699bb169bc720b175ce7c0d6e63843f543c0a84162e388fc21c313b3a5902430cab0a61d3e3aea195b13cec41e38539f41c6e22d63f5d60825d7182ecb31dc8a0a82a952b765c0eb279b75d20be877b8fb8fbc290f56efcf5240779bd2c639a67476fae730be123236ea68e4afa9d3200d0db30b7a771bb97fc1667e94cff70bd02f32d6b0b19548b61bff4a43fa5cb73ea11483b23b1394ad5812c8875002be49510656794033fb3150c7e13611126afa639355de9c04de445eb5c7430287815771a937707e88b3c8f42587f30baef55aeb7a392c14a4dc858abb9d537f8043c64100aeee6a597315bcdb65528286e0fc7ad5a59a066725cc965c562acb9d6330f28220bfb35b21cbb4321fbb556449c5e1108c46744e48c578937cc12c20df49b79ce96aea9b231892597b8a57683c495a9729bd7b969f34899116104abb00ee4049ccbc7c37ea5868ba5c2f4a3934d6599ceec340d6a488fc28d84ba371456caf9c52da9980904e253e54332505cb9322b1ce3c1904c739433d99fdb35461d4b3f949c8734904974c5cb7dd54531e86e7f9a69b8c78e137a77c0eb6b1ff468d0b2973819ca6a69b1e640af8f3b35af45183f5284425393472b3b7674503a86592947621dac8352a64427d313d51716ed6cc78bd85412d97561c910f31923361485d138b80585cf2a59a04896b3bd8c7ec2923ccd290c962c343561226a076e7e13a0d51233b68062d0e02512aa96fd701ecb80b7f45b210311246bfb594c5059f25c1167094f966c7d88da77ba3a71d186936f6007cb7cb4941c599103792edc82e3708e4aa9706da72ced51924d19ba561843c3a70f3f91b4ff04987cc4a914fc6ad33290975bc0b534d415efbe43f7d4a4b917723aae654e4412fd220548280b7a6ace9f2f0bc7b059fc103060346e53bc3c3161d884ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96 + +# Official test vector 7, seed: "aefb28fdd34e0ab403a703b535296e3a545ca479c1d8148e2d501b3c8dd8b1034bd986f13f1a7b4671be769359fd2aab" +seed: d86634ecf96cc2603761e284c0e36734cedec64e7ff486469e38539c71141c5a99daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 +public_key: 3790b3e85bb887d46ec144b4d8ec8bed82bddda538eea77d818c7081b3bfcec68d496035b71280b23985c6d9cb7580568286b405f937e99a8ac1fb28a927940c0a7cbd36290d130a1c23a42f3a437c6291dce36e39e8cf2ea8b9613c1fe7571ac74bcab99bc452b9c5829b586e5544e27432f06ba9c96869f5b1228a0a70fcf95212b0b2b84b45f29a49b6572483807543baa6e4f8b7b40119a5d483fd20224932a3af6869f00c8e9c6c5bf4c53dbe092d879bcd7843475a3110a559454a7375ac0418c37444a16a164acc751f56b2ac97a1158c76bb9976d750cd23761265d16473429c3da3b82eac213876c20d639bf5951e94d939985abd149b99c249445f4c9cd7421ddf21c536bc8fc2029e65d5c7de083296d88bdcf04e38d26dac500ad4457cecf8a795322f45997bcfea18ebf807e84c659937cde6d89fb490765ea9713b768ce05099e7386b4037b961a81edd79add8fb9f8ddb71ee56c349b453d2a3bf22c56730bac0ce19c4f961c008e03ed3928c7d068cb6512dba564855289bdcbc2f2b179dc7631b9372872d05c4e373577861a67eab16cba898beb2ab70c69447a156df0b36ef9c451931b4b7212c8a850799563cad55bc89fb3460f0c56ab434c5e9abe9363f1992577698af0058b54bb5b9a7b42e8d148d9dccab2d1a31d661018182ce207c036ff201a95b755e041f2e1623bef565b01a27d870046018cf65c8324fdca0dad64883da659826bf82721c3712700f435ea40c872b83935bf6cdccb41fe29c81e2210477babe0012cd635079d5932d42038c615a476ff35a523c7761d4560554c8ae0532e8d23a16912a804908411bab5fb96b9802737db82ca0d40c1a3b9913d81fc1330cee7504e2a056a994c4dc70768bc216f66921d93b81973b46352796d37b4f9009312aa957a51692ae8a65d514ab5bf7b46e0964a8f827adc51765384e8c35c900c4899ff30b1b53be227a39fd8b3acfea46bed8832c38555252b38cc5cf750221e3490ddcb80d0d73422ff47623282d273645c316181a36bf787ac90ec326d758ae71e5863c66b914db005655b1ebb057f8444e2689ad91a69150f71000ad7908897b4a3ba94c881c20271532a9653071cbd55669719b5c613abf45b3335d734b718779d51cc5162a91e4f2622a94469e09a41e8a9dbb3667312bc8d5ab7839374f689b32afa5a25de333126a49555909cb27002b18333a6a0d255b905e417eb8460d8f7566b12c99d2900794f4c0b78451777a3789c834c785274b65881bf055dc1875c6392dbea82811e49c34a3b2978468e10ab7fd91793b2856666a7c28473afbb467e60ba603230c5ef681af07c1779c6598a20e051254384467868c0b21ab7d89604153aa680611b767f19956a3b16229bc31fa3ca4315048b90f9f3252c23c02c92a6cfca28c5ad6adeb242c26023b8f76a914f888d39b59fdd1042502a68c0b416e6853e9cb5894253a129a1016108e44aa4257c2b547292642c3ab2c5abf1b5967c8fcb377eb91fef8c0d4daa3f2e04a0f869ff4bcc458f4c118a4b59715c6f3dc25a304b2fc9877d1aaa3af43a512a680f3e1bdaa90c816b95c339331f5fccdc969363977a7b9695dd6b9ba34809bb613862a0561ec25ce0d2dc86f262dc0ed164c2ad357a709eda919cda2c4f880 +private_key: 6dfc120e15395ffc3fea71601c36939f3ccb68116ecb66a550a284c09bafe6bc93ee929efabc348b015ad58b34f589891d9a7e34630565751b15f42d93412f81f511ac6587ce0121d32a4760ac0b6c3779c6bb5b4c0a983b72397c544b15cc7aa38502d37132040889c575bb473b0fca1bc1c50815496606bb99a7dde8861fda4799955b1d026535021a01840bc82ccbac7b99f745747dcacbb0ab34036110cba31b58c0ba3273349f2927fc0b32128b1b41c256067642adea66cd35482bebc757d2005b8c5579c5844989551cbb7377d550b17ccfa6bac2ce6012701988ea580435e0533bb5879cf5715eb75c69322b9015a4824b33f2647f0b23b4343940965027ca10a58a8a4bfe883c5fc90f62eccb9eaa3dddf68b0c1671bb249a52898faf3397fe07d02aa723efa27261a44d721acc9c8b6556267f06e872e6888d03463c3f7133eecc26b01b96879c0b5438a1d218820c91782f6b19ec5bb96362c09d1c9329912c45618735424a05c64cddc9c8b53c556f7b4302226440c6909339603dbb5a66a76e0a898c53c700270bb1c375c2c91c222b4c54b0c2848ce5208e18864cec0cbd86507a1b87df6929c80a6bb0e93d6eb085fdc1ad97a713e3ba1470c1c33dfbcd89a802acb9c222052073230ea3179bb75cbf107525a938b49a552b8fdc21c262740a55724ef28bb4d63bdfe2ad28b3246b4452578646623ba78509a286c258e69480a835c2b9820cedec3767e12e1d7b324fa1a51558b31a914d9568bb22e72a1b55714488a699fa705a4ac58daa09348022f0d65df68b8841dc7fba2506d7fb2e137b8e6a921788b5661657c677283d16c16961549368129397492b1a849005917f695b2305e529871b61811b6cd88a535692c48e058f9cb826bc53411248a15c39b2e7ba40000aa9d5134cf2471574aa201e12601662b7d393be919979681abf59136dbf44a1b66704d8a68b23ec2bc1f9525b986b8a640a2f754702ccb321205c9ee916f7342fa86c8f48d817f9f72208474d660b5f23186357f43681d93440aa562ca93d3353154a42a4790a8811439a84a19f8a087b8614c6825a4eebe035b794caa7fa1ea967b63928965ae044f9740bd4986fd3eb78f2d42c76132c89d960bf32197c432452b6b2e117b248e511b8fcb0fd850a57852e071b6567c37263d3b45bd439095ba0572584bb1990c0d287cc826f13468d87d91725586707f1c29c5a7fd4e67faaf6558fbb8990463297d00a196407057316b331cc911911e7da8a82ca1c77159c4d654b74fb89e5597ce0640ce97861f37b79b47291676103d6ec6822770bbb40cb7332b841e7243cb55a934c488555652189bac26c508b438ed6799f2c108d4357096c63080af57fffd17731e41a217393c2198eead7adc7099e1b0154a010816073882fbc2409a678f1db0c6e5942298a5b2088a2abd39b8cfa8b2a7c6057482268c29b88566c5e97042f8866f469b69ae16db06c1657f91a66787e4a06597a6c0dd2300a914ac1cad196d5564864c5a597db2c62f4bcf64c4cab3bb077d331337a6b0e39c03891a64a369b202c1b51330ae01798b3834eb87cc5bf234e7e14b5a419b68c114fb0989d2a67bbd0da491d75113790b3e85bb887d46ec144b4d8ec8bed82bddda538eea77d818c7081b3bfcec68d496035b71280b23985c6d9cb7580568286b405f937e99a8ac1fb28a927940c0a7cbd36290d130a1c23a42f3a437c6291dce36e39e8cf2ea8b9613c1fe7571ac74bcab99bc452b9c5829b586e5544e27432f06ba9c96869f5b1228a0a70fcf95212b0b2b84b45f29a49b6572483807543baa6e4f8b7b40119a5d483fd20224932a3af6869f00c8e9c6c5bf4c53dbe092d879bcd7843475a3110a559454a7375ac0418c37444a16a164acc751f56b2ac97a1158c76bb9976d750cd23761265d16473429c3da3b82eac213876c20d639bf5951e94d939985abd149b99c249445f4c9cd7421ddf21c536bc8fc2029e65d5c7de083296d88bdcf04e38d26dac500ad4457cecf8a795322f45997bcfea18ebf807e84c659937cde6d89fb490765ea9713b768ce05099e7386b4037b961a81edd79add8fb9f8ddb71ee56c349b453d2a3bf22c56730bac0ce19c4f961c008e03ed3928c7d068cb6512dba564855289bdcbc2f2b179dc7631b9372872d05c4e373577861a67eab16cba898beb2ab70c69447a156df0b36ef9c451931b4b7212c8a850799563cad55bc89fb3460f0c56ab434c5e9abe9363f1992577698af0058b54bb5b9a7b42e8d148d9dccab2d1a31d661018182ce207c036ff201a95b755e041f2e1623bef565b01a27d870046018cf65c8324fdca0dad64883da659826bf82721c3712700f435ea40c872b83935bf6cdccb41fe29c81e2210477babe0012cd635079d5932d42038c615a476ff35a523c7761d4560554c8ae0532e8d23a16912a804908411bab5fb96b9802737db82ca0d40c1a3b9913d81fc1330cee7504e2a056a994c4dc70768bc216f66921d93b81973b46352796d37b4f9009312aa957a51692ae8a65d514ab5bf7b46e0964a8f827adc51765384e8c35c900c4899ff30b1b53be227a39fd8b3acfea46bed8832c38555252b38cc5cf750221e3490ddcb80d0d73422ff47623282d273645c316181a36bf787ac90ec326d758ae71e5863c66b914db005655b1ebb057f8444e2689ad91a69150f71000ad7908897b4a3ba94c881c20271532a9653071cbd55669719b5c613abf45b3335d734b718779d51cc5162a91e4f2622a94469e09a41e8a9dbb3667312bc8d5ab7839374f689b32afa5a25de333126a49555909cb27002b18333a6a0d255b905e417eb8460d8f7566b12c99d2900794f4c0b78451777a3789c834c785274b65881bf055dc1875c6392dbea82811e49c34a3b2978468e10ab7fd91793b2856666a7c28473afbb467e60ba603230c5ef681af07c1779c6598a20e051254384467868c0b21ab7d89604153aa680611b767f19956a3b16229bc31fa3ca4315048b90f9f3252c23c02c92a6cfca28c5ad6adeb242c26023b8f76a914f888d39b59fdd1042502a68c0b416e6853e9cb5894253a129a1016108e44aa4257c2b547292642c3ab2c5abf1b5967c8fcb377eb91fef8c0d4daa3f2e04a0f869ff4bcc458f4c118a4b59715c6f3dc25a304b2fc9877d1aaa3af43a512a680f3e1bdaa90c816b95c339331f5fccdc969363977a7b9695dd6b9ba34809bb613862a0561ec25ce0d2dc86f262dc0ed164c2ad357a709eda919cda2c4f8806ecea55c3d5c042d2dca3a3925faaa9112561827dceb0754580814a84be19b8799daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209 + +# Official test vector 8, seed: "cbe5161e8de02dda7de204aeb0fbb4ca81344ba8c30fe357a4664e5d2988a03b64184d7dc69f8d367550e5fea0876d41" +seed: 0610678ff4dc3128e1619f915dc192c220f8fad94da1943b90aaec401683a492da1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 +public_key: 35775144c098e6756148a30e8ce75a67137ad2455860252b764c15823c08358c45ac820bbdc3525543a66a22854bcb8dd8e1c920a10f67e9c8d8495865b3bf16c39ab0a86cc231a521f42316f7bbe4d019616c167e88a40b4532b1ea688222a48150c6e24859edd0210ea54e4e80654b86abaaeb52a022742fccbb336921d5807d0769bb5674141fb791c6025ead44c79cf8c1fe80987086cda07546811471cebc7eb7e8a5c554a6cc0062bc6c0b10900a8ee95239f844d26527423c30f4a1be90e29424263663406debab5025e11f00e09c24058f8077cc2313842a5ac74bba5e26cb78c4f8557cd38dc67286d9d25b18f005fbfa852c5ac738f33c24e07b26d635a09a3e3d12c9eaf432a06c4cc88b15ee7c4258b279631a9756e5086145cc2adca624410d58db0def549d2c13caa2d80ed4a088531221e9881f16e39659c3425b31b4e5c0462df53375870c2360b984a881ade524777489b8a184304372464ac7099b6afa24a9545b3ad02ac8b9c968d0b4b6e991cc0a83550dc70dfbba36de192bdb2a2239672f011bc2924622ca6c2c7c4c334ea05db489ca290390e5a18bf18b564a037157006fb9131b35983a9bd285d66482863c0cc4270a32b13e1299328acc2dc4e1812f1522a88177e813a0e6b52f11573873fc512bd004eb31cbe1446a3b3518ae2253ed3204c3e3c36439ab128c322a0160a5b40a27f3ae6121333400b050d60e9fcabcbc82ca7fb1b1399715a23417691542441923750abec3607b47b380835191d6f790a7d08f00ab209a6ba608cc9cbdfc6c8f4cc194bb22c630ae48899a058bae66f3b0cb12a0d2e3209d995010644fae989eb94cae8128585933ad0f7282940606785c07e882031c08a20f4a194be008aae8ae5ce77c17505bb0854579712f7f5231d1c32301053e9ae2a1866b634949bcb4c6952fb78376fc91bbdac8fdf096d1d987db5c71e39371f894adff2a099cab93d5353ba013aef5c58796f906e7a434590181a793ca012a6610c912daca06903b719e384c827ac62e2b2590f82f29d00bfeb50d66815fe13085395663f722399c187cc2784198b028e585b305e6126f6a003b05aba2c0a87eec6b186623dbb37dad789f7e8ba7ce01a792366117c308601664d6b7ce64a03a03090f55c5b59e66545bc0c9a29a29d2eb89eeea017026c2a4b88ccd12c96816af697c5b5f1896d340a60729984857072234c71aa5c8fed44f05dc7defa39cf409b063e68bb28b3789344bce267db328542a5530222203d6d8858e51caeb8c913163a97c0759a1d1c3562288dcd48d164004b08a1c9eb76f956ba5a562a84182caa6417e237bbe4e09a5bacca54a32c76773c84c14401a348108b2cd83377f6470019af3591b7c65bb33833517ce53f7701c4b1b2db8665cf5259b6052e73b41ee2641e9c998df327f750c44dec00ad7bc0ee69992da9455c2b26e4c7605dddbb3ed942542fa5c255b4f9d037a4264939c3a26f8a817d9c21aa958677193c13a3b1b76619a66b2a0b351601a1750ff9b78cd4506e1c19f04671fce65c5c34a6e8141628dd696b3d5b962497ed3433bcd707537ac4715a7192687826fac2fc0a60fcde02f78e69dd3b996b937332ad2161db433ef850b4c8a5bc8a48556a927ce345679d1595b8a12a0e85dc5da +private_key: 5edb8568e989d33924746212f1b7131e5a247c6b73d58a8fb30c75b7161461f7b7f5ba4b38b924484964e7666dbf6177aa2662b193704fb19e60376614bc92e811905a293cba30a81b4401fd067f4185c3a0e72b5cb260aea81924b85105a7403bd6c6ee09627c13ab53dbad06999d276004e290b41720a70202c5f1f4585a68c56ceba1d7b21e079552fc591c6c3bc8f49c089527288ce6be22ecc28ea6bee8db35a8024a03f77e5d7c8c79a825ecc4c002566335e9355c0a91e5ec451cd81c14f355ba3b82e0a29365723ff30cca66a845e849a96093cea945c7d242461a94b5c9595555932ce43107e000c251f13fdbd699dfe6b5d2a3aa3b7662f988c39bf4573c59b38046317c65ca2cd9304448afc62190bb32bee74220b32b85953a5036065d230c2d28c80f0a164eee4b72b599be3a3961a8a70491d4ab680a46615450eea25a2fdb2c7352b7ce36ab05dcc5a933404925854ea5330563b41d477a775679c1f8b3e69690913216e9c479434ab55af2996f6b431d01a9f4d7904c80c666d1cab7e90da6f125e14320d46861bcc11d50d9b21b0196902a7e26b720df911ea80716cc478cce204dd796398d108d04eb31ee3027b8f0197bb89079e87d2abc641d7030923052046504788bcedd194c5807cca3202bfd25bae48493ff273cccc55446b2bde23547c45a36bf295b32e18122a008bac4a83ea05260930061d6c1205498549567ad11ce95f105b6e18fa282bf33c5102e0c18f2f44837980d85b26273c450c5885233f101cb8ca85039afd9e5c9cad0239ec63eab8063a3a76d7069b5767603d7f0921729910dd29c814a08fc67587de5020057add33c04bdc40c82015af9c7a41ce541a4c11832459679cbbd0626a670246104a33cb4d4769069253fc2379835be32e61ce6f12593d453071cbd7df3441d30b8540c4a515279def5c44a8c397bb018e4e377bd84b1c09917df0058bb8916caa26a9417b314a79c536576d97a5d0091787c24154a1aa9f2f39a70577e9d61803be48e2bea7c245cab5073cec1b1403775922260005f43706950a261b99e22302b1e63bb45438d9da39c2ee780e9db6e0b6495d0fb966c9352873a342a914ef189854832ab4dd42128527e9251565ccb21f6646654e6b78aa3466a0ac82337b90ed86dce3b0b62bb376827a5a1b467c63114e597bc7da7016561be00970200f710ef523ca3988068bbbb9a1a8fc5a94d37b930ae0758bb3c1fe98c96f5a90c94aa649a4647135b9169e6b81f18a192b19015a50bd39159f1e8ccaa881e34f53ae469a51756c220bc827546b0b9632d2110b86c43cd1b04c35bc183d68c1837b3b08e0c2ad5920ab4093142738a5545a5fa97951d735aec4a3e090175abd999bb1b1ca1c7499e7c5d46242fd605ce6e18047ae23231c605b6a81b320261cfa0884bb87bca9902ba3b71fbd98c0a97a53989637cd2078ea5cfab93b33b1396028270974b50c4d6c8f4c8a0a610ca689c981926c9013ccb06ac855f229d5a832c3bfc8f78b1ccee078b4e893783934115923f26d747312450aed0731d99375ef6b8291b39ec146d0a2218c9084f1575b11fb4894d372bbca066a621a334086fb392affdf4384cf64735775144c098e6756148a30e8ce75a67137ad2455860252b764c15823c08358c45ac820bbdc3525543a66a22854bcb8dd8e1c920a10f67e9c8d8495865b3bf16c39ab0a86cc231a521f42316f7bbe4d019616c167e88a40b4532b1ea688222a48150c6e24859edd0210ea54e4e80654b86abaaeb52a022742fccbb336921d5807d0769bb5674141fb791c6025ead44c79cf8c1fe80987086cda07546811471cebc7eb7e8a5c554a6cc0062bc6c0b10900a8ee95239f844d26527423c30f4a1be90e29424263663406debab5025e11f00e09c24058f8077cc2313842a5ac74bba5e26cb78c4f8557cd38dc67286d9d25b18f005fbfa852c5ac738f33c24e07b26d635a09a3e3d12c9eaf432a06c4cc88b15ee7c4258b279631a9756e5086145cc2adca624410d58db0def549d2c13caa2d80ed4a088531221e9881f16e39659c3425b31b4e5c0462df53375870c2360b984a881ade524777489b8a184304372464ac7099b6afa24a9545b3ad02ac8b9c968d0b4b6e991cc0a83550dc70dfbba36de192bdb2a2239672f011bc2924622ca6c2c7c4c334ea05db489ca290390e5a18bf18b564a037157006fb9131b35983a9bd285d66482863c0cc4270a32b13e1299328acc2dc4e1812f1522a88177e813a0e6b52f11573873fc512bd004eb31cbe1446a3b3518ae2253ed3204c3e3c36439ab128c322a0160a5b40a27f3ae6121333400b050d60e9fcabcbc82ca7fb1b1399715a23417691542441923750abec3607b47b380835191d6f790a7d08f00ab209a6ba608cc9cbdfc6c8f4cc194bb22c630ae48899a058bae66f3b0cb12a0d2e3209d995010644fae989eb94cae8128585933ad0f7282940606785c07e882031c08a20f4a194be008aae8ae5ce77c17505bb0854579712f7f5231d1c32301053e9ae2a1866b634949bcb4c6952fb78376fc91bbdac8fdf096d1d987db5c71e39371f894adff2a099cab93d5353ba013aef5c58796f906e7a434590181a793ca012a6610c912daca06903b719e384c827ac62e2b2590f82f29d00bfeb50d66815fe13085395663f722399c187cc2784198b028e585b305e6126f6a003b05aba2c0a87eec6b186623dbb37dad789f7e8ba7ce01a792366117c308601664d6b7ce64a03a03090f55c5b59e66545bc0c9a29a29d2eb89eeea017026c2a4b88ccd12c96816af697c5b5f1896d340a60729984857072234c71aa5c8fed44f05dc7defa39cf409b063e68bb28b3789344bce267db328542a5530222203d6d8858e51caeb8c913163a97c0759a1d1c3562288dcd48d164004b08a1c9eb76f956ba5a562a84182caa6417e237bbe4e09a5bacca54a32c76773c84c14401a348108b2cd83377f6470019af3591b7c65bb33833517ce53f7701c4b1b2db8665cf5259b6052e73b41ee2641e9c998df327f750c44dec00ad7bc0ee69992da9455c2b26e4c7605dddbb3ed942542fa5c255b4f9d037a4264939c3a26f8a817d9c21aa958677193c13a3b1b76619a66b2a0b351601a1750ff9b78cd4506e1c19f04671fce65c5c34a6e8141628dd696b3d5b962497ed3433bcd707537ac4715a7192687826fac2fc0a60fcde02f78e69dd3b996b937332ad2161db433ef850b4c8a5bc8a48556a927ce345679d1595b8a12a0e85dc5da576cb9d31e5146967756cf7356926f2e20fc7c1fde9954cb2f593d96a80ab860da1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004 + +# Official test vector 9, seed: "b4663a7a9883386a2ae4cbd93787e247bf26087e3826d1b8dbeb679e49c0bb286e114f0e9f42f61f63dec42b4f974846" +seed: d322d56d8ef067ba1f24c92492b9c56df3a6ef54a304adc1b69913766a1ce69756047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 +public_key: 023753735c1bba67bbfd117911d0be47b827ed9773e4d50d8d11a5b6481357473ae2a766156b9a4e74169a1b3cd0bcb90eebc31f587d886accf3027c8f6620aee70741c403e4a72d4bba51af5b1362180158fa5867d25168871d599b04819635bbf096c4980cc336267ac6b956bc861e0a9864766a18d4b8b9ea61a0573fe60a5ce58a87cfa2974cf17d4f599673137dbc662eee9706ad9a85d780a911c209644980cea134545375c031b8e1082b4c201ea83877dcd7158435ae34d52376816719070d76c0683e0c4422750a1959932e88562ebc932bb7ae688c09cb703c6e567e6d898b6e135f483290da271d7ef16b15d12d4e0872ccb05130f52cdef878ea83768ad44885e5a2dd6b2a94493ca519c14efa09e9cc0739354cccb3850cb0c4b504c2eabb1128f55bccdc17c534b5e68b94526aa46888ae970372ecd49a7f03171872633e78997b51ca867852e638215be32eb2fb832c42038624035de54d7f4938ab78210c47bbbc931c336917c9d2a0d58454ded14fc7fcc6f5a97a6c3a5649689286f0ced68963cf24a05e9851fe1277fed36812e5984290701d5bbf138ab76f32b6043853415790a540878c3bb297b6bc7b000036007d8dcc7d32e6b7544c3225c2ca861052dd65c8f1d103103959ed0753e81258ec3770360aa924357315c18b33aa12ca06b24f1c59aad1b4ebc58f3f75b77c1b07bcb9a23fb0019de06109050b0ce30e8d6809c8a0ca70eb56e366033841ac39a6a198c5c105c85899e6403781c72ab30bf1d5917035b9fe50b081b6cc6103b72d423237189c583c702f7768fe43c182075a48828d041178e6a616340178aba89be3418c4e968f14b9396574b370f1c7d2858a1fd78b5351213b7c0a7e05382d0217457ba27a344546e197b22256b3f031c9e6b65ff377be25b6953a4dbc9a6e9aeb3b08c01358e2bcacec80033990f282b0bda655951a2b0ab83ef4459ac56a76af2b2d2669c0239496610a4274c9b3e5e998ac948b3e7427c8b380c1077480789b008054373a7fc65080f3772d1f6626e345bb417c9fbd97add68640dc12028258970cba5deaaaa32c7b022b0183c89b3e1be25606b3109ef88c9f07180c110703153a247981b5b465318abcd0a78ad1bcaa15b07edb66bd77a14b23e84afa6500bdf15b588009f05925a2fb430b0629bb4c2057f8a231760d9255746781c83ce932afe10b8602a80fc1a98c694e80333790b59e67722a7bcc2fcd9b61a56a5a8ea6b85b5861b44b521cb0b6adfa9c84f624ad499c0664aa97270d1a0209897569a64650c0a9b2cac1879e671d9f0413be9621b415641ed645fad52e2ce49f5a3bbe49655649a62baeb5634e50807f737dcef63a7fe0c5d2f573b9bc5914b97f28691f49045ec87767eef405c3b3c8c6089e03268a5f0c530f1682c4c022e3804ade91c20a0793265a45be711a607465709a24dee763ac192d0d57626561c3a6092f7777c8dba75516c39fb49c2353157aaff0787be318ce2c7385101e4d23c043742b9c5ba0d96419e192c20bd426de458585e11aa4d5c8315bbfba129a446c80b726060be07458991e973a394f163e54383d14d420ae0b4746a4b891d092db39b8e1c708768046cb0e3ca324d417302e861358385229492a291da3d601a3f41d29a75becb44d66 +private_key: 1e981c27e35d12192ff6ba764b9715bbb53b6afc9c3db6524bf480bb240d905622d8015afa41b9cc78a3f039269c9579d1bac3f6041827e883b3a073f22758a8112a36b91e2e1330d5ea0d5f91a09b7a2463a1a2025425b28ba10d85033b9a8fc3ca7ae949a8b5ea5c6f5b706ed22e949a1d5be2a573306b8e0c226634ae3b500a24b08c771456179bb24ad2c3024c5414fbcea4455cd781bf0fb5439f67285644309a8b6454d76463e69f27870e9089463d9abe0f450d72572fbdd678d6fac98c7989f0990d897913d0d1cdc6a378cefb0e202c4389626dbab6646b00be17377fc027c27f9694ef320b48ca51ba744d7c7c29555ac0c1c8cc134572893bbfbe45671225273db5b54659a67e41b2dcc744ab120917d3c952d9c847b038b53c36a369631493681b43512968069e2c7c140550bae5aaf35b64b9f9b8fd6c75e8063108e7237cc320ad32a8bf9a74987098e3e828f99bc54a5504cfbbcbd36ccab973ce8e4690ca8a37805657af89c6811b8c0045ca3ff373720ca1087259da8a27de2855f32c16e7d7aaa32c761d2241aab42db19353de53a2bd125cdae17468356d63256e22f6b2eeb95bc3b343ddb33164e297c32572c41459e5890777d8623e3a7df541945128004ce4ab73e25763e1236d1a99e5408a6bc59ffc308f2c810b4c18ac29d72581f46573843f75f57986979e77b28355e7bab59a9f71500689d0200589a2da8149beb260241bcbd147af09cb545ff104a603c1e22cae6476626631256e3720705287dc984fd4b3cf06583344011a4975cd490488dec64653d01b0394b413814f17b207e1a9bb5cb1661ba5c7439244267859f1544e50b03911188bee97a12b62052390cacbc9c83c713dae170cf927c8b4fb94d1b0c9da83088bc62e9e112bac46af692c77c57c0008e44c08b737944bac8c15901f2564ba2056c03660e7c6bb25c1c6075112a20338b8b413ef9c7421530741cb0df30c785a86ad78aa519ed65993578e65db2cb31c138ca6820a05231dd56b17668490d9393911c8e567060d368afd9bbf3d9369b6b2aa4393899111b72c8014f1d967d61286adfbb16beccaf0971fb8a2257bdac12b60372a61768ac242df6b575ef18df59c174acc51c26276da960f34219b8f50728290c99ac8c6971c9032c34fe682a58de45e4b2615bdd08ba6e11af9030e1968443a3b08e2877d04da6205a274565953ad6b7fe40565c0b680daf685049bccde9bb6616b325bf11e7069729a6a42544a0e13e90df4b5a42c2a340fc28960b7171b638173057519568a83fba15e40bb467b7e33d9785ae34f9e705f2211137e473b88c978d9a49eb4cca1b5d6b52d5b303a3a8151ab4654544fc791755efc094222ad8beb3057a24bf6f60bb6d876c5f7b8d7e6358cd1acec6254d97075bf02af58338f1a787dd335a70fba4c2ae3625a840ef18b53f8d8a2d051a2be6bba4fa6c40992acf1326abe29b852c7592e052045655a9acb5228b4cfd8c54a43fa2f76ba3fc7b10c603c958174894cc0277f688020013c7352b4b282389d9c178ae1af179c3d7ce495f82a773035b08e512eed8b309a5294b904c46012ad03bc6466d033a551c700624d0055421cc1cafd8568023753735c1bba67bbfd117911d0be47b827ed9773e4d50d8d11a5b6481357473ae2a766156b9a4e74169a1b3cd0bcb90eebc31f587d886accf3027c8f6620aee70741c403e4a72d4bba51af5b1362180158fa5867d25168871d599b04819635bbf096c4980cc336267ac6b956bc861e0a9864766a18d4b8b9ea61a0573fe60a5ce58a87cfa2974cf17d4f599673137dbc662eee9706ad9a85d780a911c209644980cea134545375c031b8e1082b4c201ea83877dcd7158435ae34d52376816719070d76c0683e0c4422750a1959932e88562ebc932bb7ae688c09cb703c6e567e6d898b6e135f483290da271d7ef16b15d12d4e0872ccb05130f52cdef878ea83768ad44885e5a2dd6b2a94493ca519c14efa09e9cc0739354cccb3850cb0c4b504c2eabb1128f55bccdc17c534b5e68b94526aa46888ae970372ecd49a7f03171872633e78997b51ca867852e638215be32eb2fb832c42038624035de54d7f4938ab78210c47bbbc931c336917c9d2a0d58454ded14fc7fcc6f5a97a6c3a5649689286f0ced68963cf24a05e9851fe1277fed36812e5984290701d5bbf138ab76f32b6043853415790a540878c3bb297b6bc7b000036007d8dcc7d32e6b7544c3225c2ca861052dd65c8f1d103103959ed0753e81258ec3770360aa924357315c18b33aa12ca06b24f1c59aad1b4ebc58f3f75b77c1b07bcb9a23fb0019de06109050b0ce30e8d6809c8a0ca70eb56e366033841ac39a6a198c5c105c85899e6403781c72ab30bf1d5917035b9fe50b081b6cc6103b72d423237189c583c702f7768fe43c182075a48828d041178e6a616340178aba89be3418c4e968f14b9396574b370f1c7d2858a1fd78b5351213b7c0a7e05382d0217457ba27a344546e197b22256b3f031c9e6b65ff377be25b6953a4dbc9a6e9aeb3b08c01358e2bcacec80033990f282b0bda655951a2b0ab83ef4459ac56a76af2b2d2669c0239496610a4274c9b3e5e998ac948b3e7427c8b380c1077480789b008054373a7fc65080f3772d1f6626e345bb417c9fbd97add68640dc12028258970cba5deaaaa32c7b022b0183c89b3e1be25606b3109ef88c9f07180c110703153a247981b5b465318abcd0a78ad1bcaa15b07edb66bd77a14b23e84afa6500bdf15b588009f05925a2fb430b0629bb4c2057f8a231760d9255746781c83ce932afe10b8602a80fc1a98c694e80333790b59e67722a7bcc2fcd9b61a56a5a8ea6b85b5861b44b521cb0b6adfa9c84f624ad499c0664aa97270d1a0209897569a64650c0a9b2cac1879e671d9f0413be9621b415641ed645fad52e2ce49f5a3bbe49655649a62baeb5634e50807f737dcef63a7fe0c5d2f573b9bc5914b97f28691f49045ec87767eef405c3b3c8c6089e03268a5f0c530f1682c4c022e3804ade91c20a0793265a45be711a607465709a24dee763ac192d0d57626561c3a6092f7777c8dba75516c39fb49c2353157aaff0787be318ce2c7385101e4d23c043742b9c5ba0d96419e192c20bd426de458585e11aa4d5c8315bbfba129a446c80b726060be07458991e973a394f163e54383d14d420ae0b4746a4b891d092db39b8e1c708768046cb0e3ca324d417302e861358385229492a291da3d601a3f41d29a75becb44d663e9976d61a687df88a8abcc6651446b81b7d136df42bfa03473c84dfd64fdb3b56047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9 + +# Official test vector 10, seed: "980d0ba7c8f8b23d0e948a6029ff2659810ea1360064663a8994d0333c8543ee5ff5d6d5c9acf446e61dc464f792b9d3" +seed: 2f1d8a3bebb34540324b9485fdf3d5be3b858f544abc3fc641b5728cafab03ba8d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 +public_key: 87fca4992854f318a4dd4188f7f334d83a3fe0d5709e89b4ac382e9873baf2525afb10a2785c5ad09c4b28b311b4579a79f06fbc91378109271383ab1ef7169385aa2e78b70d435bdb604494a246be23b1f26874ac9165ab451355f59686a33fc6cb78464cbd98021ad69c1ed12511ef99428e3b3685380dc2b16c0ab5cf46425984702e70fca396140a95e2c1bbeb245572049df3a4192a420fa52bda254fd55186aa960669f7ae2d69954aba444fb9c6b6cbc42b5ba82e262957089c76f48ba7362d6865259c321083c464bdc992bda9635cbc88ea89726a268a34d5cf1eb9aad5347350f67d1fea925f5677e393984818053eacace1844fc52b43d408761c385cb5491645696339ba086bc733c547546e540ead9b1a7942a0316cb635a856836075d3a87b84b1944a5587cb33c653e44b5bd764f6f8b06aa8688afa0526188fbba82707a326817087ea807e2ae51071d5badc027ddf781483d906259c30ee410b69060e4f47222481cf9dbb2075f330e4cca839b093668b82c02680c236167f3621921b863cab9a42e420a050986d481cabb873b6c19fa34b7e21bc6c029598daa77e30177357ba8b0e7696b692116a97ae2f535cb5208c93611ef5e952e76417fb974879337874f3c56d47a0d695797e1313e2fb7c3c6b2c32167f7faa9f10d18d512865f6a453e3e37c5bfa100631863b4a5f4b6c957eeca3bef28f62f98336c05770e001d8fc4f595921826cbad9825a76048aef2b4d97cb354784b4b6768377342685f87142ab06a67477b66a9457c48a2f779e0872cabed62d6e73278baa3406922f8ff5465af790e02310c9b8bf6e1b2987ca6521c55bbadb249ecc26afb244029312960a55fa45b448397264aa03530b9b56643a0d7cb9a73589955631883aba865c4d34fc5f5a6b8d596cb2c4db2b740645eb0a29647089ea2bc8a92bad95c15f52f5a2d24431d83ac4e701210c5b0ba3f31bd0086e47ab3f7984363ba00041c082d33064f1b27ff26958b85c46612c6556561a2e40600ae14fa70b4c1a81109fa6822c01d0c2786f0e17cf198009349704159866e557947b81928feb459b2337f3dbca2c82162107b5e34aa202b893c103ba5cf9b4580107c1f36b6ffb9ac34c2cee189571dc7f411349ad112d20f35a740c216ff98175563599d3cf6224ba230c2b2f087525059f9ab5b80f63110719972156aa30148bfe4c907b214f683c56a38a146e1c21e688c44f40bca8d4a87d3011bf64725360478359ace455c5e395625c95cc84ea3f0d004b2e3a4a12180a1463a234c4912f00be8324906b3805151841a1f4a5595621d66ca8b1863b6ae4869b4c93e2c6c94fa6af25f37e992cbc7ad23f6a274bec8b537f89b996439b762b2faca39d1f743db79451cbcba86de02a9d8567d8977d12066a1817bd9fc2b1bda75b9d6c78a39bc851654008b266c45361dce46fb2b02e4894c784f0b017428db0ba8f1ae54f3e8050381a90bdb073c186aaa458a2e8c682b919741836397e3c59e0ab75dbdc48976a6a474969356a75e171bfb2ca76e968191d970cd9e43d2fb2843b2a5e9d24cf4b2ca947e01f0c129a763ba55b9b92260c21113c03c7002bc8c6a2c544af711c18030ca984dc584e0b0627b3d23abd9c4d9e5087bcae2bfe6581eb7f9cbf532ba6 +private_key: 6423bec1793d33f81bdc6a591ee2bb7d7c9c29e43654600eeb353459a19199234ca950ca5e51b3c8b24c5a96c164086ea746c3b68582ee171c0a03cebac11b39ea6b1c5218025118ba696da2dc9ba9a87d197931261273de87bd360389016131e47b66b54216474cc8c68c6f8485201692a53d3cc06d6bb1a4cb19a69c435e42706b1068c8872412e1520f7a2ef7cb361dac74f339059108277de75ec66b76c7d432f84bc17e5c20f0a94764c66dd8738e61012960b9b2798b4c0dcb213c0672b5530818b82a6bb29277735451147fb4a4a1bac36949227479b74c358c2b3ca852048ac6d52872dc63187bf87f47a2c3024b41aae5ce52e56607b5541e67b9c528503013354038197a86a2cae824b6d282b37c8332a2bce5a30f2357022058779d5a2e266430b89b3fd752cb5ca26ee317c628061c33203787f2865342cb9012158c113e402640d5e900c6db4da9c1162ff9079b482a4eda56b63a626572734c417952ec894b10aec7822121a78150042ad321a70554ae6043a6f0fb12c411876ccb65bfabcae28b75126189fd8a1cc5510a95d36fb2318e96441ba4dc09631166905579429badfdbc6bd7c231c971837ff422327c5f769a1a89668da2669eaac1564ae75e7df44b9586011b6cbf7aba51ce68260b5505a99207438837a2c67b047896f9f64c1b2a54959061e92c8a73742962366c16b72ef3509b11748bb819adbd0b400964be48cb7adda5627eb578933a698ef8137e362308c32af7e93ec744984ac31dbb34bb8603b48965ac93891de258a9bf942c36ea4c8d7c23a3978eb5f176554bc809d5946828b0f4fa0c55744e702a715268b8dc684133738ab9cc9543a74164e9731854327d7361b636069ad00184b5b3ace48900bc0a28411c123b4c79d1a22346a10ba3488732b2a9e194bee742a36ab3c1ca9003a76e28439c6667c3d6a731873150ded546f132644ae4965ecc29a5c961f04612b194b0509b3157a80859c2a95c9ab2b5486b3fa8732bd4c18bd4b806148d64d22f38c7685c9934f7b990cc378106579f981c36d5c99a26dba6df2921c6385ca329127342cae148974d2b2faca90adb629020104e4650acf41c5d85036bcc30581f304a5db46b269424282776b6ca06bb3119a009ce22811e7a004c58b28f6ae24ee8e7499b331749db0aaa33710cc9737ef18dc1994218ca439a46367590086efb839589380560c6cebc4db59cace187700a80508e3c9fcce960637ccbb4c8a5bf3a6d3db865696a5a5e824f91b7cec516415db47d0b706b99a0cf5963875e89a08c5272df90987a7c374de99113b54bdc5063c462011e225f223a377c3a15ec81c376817aabb785ad0b5c2a0bc7e55525dbbb305396319ed108f7fc527be906f6e20b975b9eacf7c6cd574debd4027bf367518a0062260d0879b343783adcc44372667aac541b454a84b8cb6fe1db9589e43950761d82c512ba923819a4078cb620fb750464d10e0069516028b145628ff1f06927965935e5b23592959f9b39bc32bae290a583c24422b5545b22846e42cc1e45bfef5396cfeb544a865d7739cfa0891a01d1c2d36c6f341c24e677a8218640d12cca27792ddf9a488afa799e580ae6b08287fca4992854f318a4dd4188f7f334d83a3fe0d5709e89b4ac382e9873baf2525afb10a2785c5ad09c4b28b311b4579a79f06fbc91378109271383ab1ef7169385aa2e78b70d435bdb604494a246be23b1f26874ac9165ab451355f59686a33fc6cb78464cbd98021ad69c1ed12511ef99428e3b3685380dc2b16c0ab5cf46425984702e70fca396140a95e2c1bbeb245572049df3a4192a420fa52bda254fd55186aa960669f7ae2d69954aba444fb9c6b6cbc42b5ba82e262957089c76f48ba7362d6865259c321083c464bdc992bda9635cbc88ea89726a268a34d5cf1eb9aad5347350f67d1fea925f5677e393984818053eacace1844fc52b43d408761c385cb5491645696339ba086bc733c547546e540ead9b1a7942a0316cb635a856836075d3a87b84b1944a5587cb33c653e44b5bd764f6f8b06aa8688afa0526188fbba82707a326817087ea807e2ae51071d5badc027ddf781483d906259c30ee410b69060e4f47222481cf9dbb2075f330e4cca839b093668b82c02680c236167f3621921b863cab9a42e420a050986d481cabb873b6c19fa34b7e21bc6c029598daa77e30177357ba8b0e7696b692116a97ae2f535cb5208c93611ef5e952e76417fb974879337874f3c56d47a0d695797e1313e2fb7c3c6b2c32167f7faa9f10d18d512865f6a453e3e37c5bfa100631863b4a5f4b6c957eeca3bef28f62f98336c05770e001d8fc4f595921826cbad9825a76048aef2b4d97cb354784b4b6768377342685f87142ab06a67477b66a9457c48a2f779e0872cabed62d6e73278baa3406922f8ff5465af790e02310c9b8bf6e1b2987ca6521c55bbadb249ecc26afb244029312960a55fa45b448397264aa03530b9b56643a0d7cb9a73589955631883aba865c4d34fc5f5a6b8d596cb2c4db2b740645eb0a29647089ea2bc8a92bad95c15f52f5a2d24431d83ac4e701210c5b0ba3f31bd0086e47ab3f7984363ba00041c082d33064f1b27ff26958b85c46612c6556561a2e40600ae14fa70b4c1a81109fa6822c01d0c2786f0e17cf198009349704159866e557947b81928feb459b2337f3dbca2c82162107b5e34aa202b893c103ba5cf9b4580107c1f36b6ffb9ac34c2cee189571dc7f411349ad112d20f35a740c216ff98175563599d3cf6224ba230c2b2f087525059f9ab5b80f63110719972156aa30148bfe4c907b214f683c56a38a146e1c21e688c44f40bca8d4a87d3011bf64725360478359ace455c5e395625c95cc84ea3f0d004b2e3a4a12180a1463a234c4912f00be8324906b3805151841a1f4a5595621d66ca8b1863b6ae4869b4c93e2c6c94fa6af25f37e992cbc7ad23f6a274bec8b537f89b996439b762b2faca39d1f743db79451cbcba86de02a9d8567d8977d12066a1817bd9fc2b1bda75b9d6c78a39bc851654008b266c45361dce46fb2b02e4894c784f0b017428db0ba8f1ae54f3e8050381a90bdb073c186aaa458a2e8c682b919741836397e3c59e0ab75dbdc48976a6a474969356a75e171bfb2ca76e968191d970cd9e43d2fb2843b2a5e9d24cf4b2ca947e01f0c129a763ba55b9b92260c21113c03c7002bc8c6a2c544af711c18030ca984dc584e0b0627b3d23abd9c4d9e5087bcae2bfe6581eb7f9cbf532ba6c0cfd4113c5edd408adcd03d38b12f0b6ac17525c618d6d151a761a9eebc26358d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363 + +# Official test vector 11, seed: "6c029462ca42ed520f10a579f52687101105e0b90c6e7bfa582a4c112b579d5ad0a0abd38f72abcfdcaaf5893a112bdc" +seed: 31beda3462627f601cbc56f3ddf4424e1529c04737ef0ef2af6d7401f653b8a1812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 +public_key: 0d40b119341d9e23062c693509304bac635f93f91bd48b362989751078ab995408ddf6787ceb3f99c6802aecb703581dc6979c4d405dbc80a985f991f31924383428d4f5a2cad4acb5f95408a3406ec53425f175651952f5b76acfe2a465b30c1d56ca0e53953dac0ee2da352a687441f45dae26b37ce8008a99308639999d325ba89585656a6d59f51d10e46f93d099490c2385788c994238ea1155ed22c96a5c5035a3488be1c29e345ebcf6b1b7288abe95c29b272a7817704bd31589a42b22053226a43329183f6160105ed05e73203d172354fa176d3fd084ce690a8b6a4cef4035a3e06bc6464e8c913b88a48c81e58dfb1267ec6c1462d93433193e50d1b2d3e3828e90b6a412c1c45668272307f4b8294f37b84857bdaac6190706ca31380533c30643fc319c866534562036b37e825462c8442641c7817650333fb02ed6a2bcd6c1ad0689001098af3657363aa1b689a20683044d15275d0fc3c9aa720c8c4c6212fa70095a2243232cdd0b0fbeaa1c8e7b45ffc2870efa9bf56c8ee86659a618a0a96c42acb48ae125af911558f7cb20c9cabc4554c8fa6c70e297625286456ee625afa756145c41373ab4fb59b2782b4a406115de4966d07629cf8cc2283b4307e6a058db3dee6413aad72f89a7c1ab4131d8ea9df020b033b1473d92c4d89aa84f044e429a43b4e22fbb693a694bba3e315e78475437387b78b33261d786288b20440c44138c84f5592bbe74c1c2ab01ccd1124394082319780b24c593149cf660946f75a930f0a8f93a50ed01b5276ba96ab6ce5f794e638697ceca94d80585ced04310612a3c6cad80dccab1c1cbf5e08b2bd6b7df8c4cde4c4507a56cc97b456e10050bdb3acd6a7e00c1742aa4710e1674c59a8240680d04b8829752332324490ed6139b550c7a832862b2c831d4093db2b256f702850bba03053fecac41a61734229b2dba3210eea0c1e8d9a54c915f54b32344296ea64855dca92ab81aacc9e73153617d8464852e8208904ace7b84509b2266f9fac55bf68378d98d3fbc0a468543a8944b9975637162a4d50c7fdeb479daa8ba43938333b897a12c224ed1c790f967b2d9708c6b67640ca9ddcc1562613c2904c6f3856d13d904cd3094965abf1ed32ce52b7dfe4429ee68a8a3ab03446376d6da1de56a7a7fd30688f513fadc5627619a99d191bd4c0ec8bc1933c00757ab3e1f5826677b5e9bec2b151058bd9a6b5d2285122c23466312559c89a634abc2a5a11324cebbda8d167880f6d59bc5fabcc23487eda84f3543386e0b8d25422d5051816315532d2120ea4723809509bcd0c2edc1c93c275ade244d4f5b27f73b0941820da0183ca2b7af8480c90243af6334b36af00bda4c1e5f50463b8c350923b4696b7eb733762d189c9eba08c09050a4946388d736ee73c62f47cdffe453776730e88531f07abdd8699e8bdc9f05bb12f275c453866d46519ce2a592a1052c1e0c6b8f093f53a057d6d1bcf759abea90883eea68c5344a0ae96cdad42f0e756070dbb496535b9e7325c02badae5533140b0d9e013c75013ffdebc855734aa9947f1ca4b879c35b32c862c933479d884b2c675d3e1bbd26391d7c429db547041502307d975aee26905f7fdeb44f418d3d1fb5b081a3b06f87691170917a1e9f3c2cdc +private_key: c062bfea197ad53bc1f0556d6dc8a863d46bcff5bbdbe919d96c4099627710b0417c889aca6964a75a336eb5aaae40674ef3a3f3f96d9207cd0988cfe76838bac93b4ec866fc4b6b1127bdeb5c9978ab3cbaa6999cb508358b92cb3a859754461bf25a471bca16ba9259b40b3cc31ba8831ee9c95904b9303be152827525db350f9ca65183b63a02b289192a224b781a6b11ce7a40bcab396feae20158536ba9d86568401aa68b42856427b9003053c15d7d36b9807960b94b5f3f366896c59298689efb101c8ae162f4b4b53d4bae816c01a56bce8c1232548007eb887a93703b66ea609869c7155ba0e8e509aa7c29dba60337d8364ab61de403a45f49041e82671ca0cccb5002efbbaf65a7b452a0237f1979a4988c524570815017f794a7bae806a651a732659a36938b86ab36f7536eb27c5d9b72cee990131c1a6b31acce8fb5473cd0cc8fc2605b3c06f24866a36138e1148f50c9a530c24911d031a0f1a2201137ea201eb8c3b788f15d3c0b0fad52bae069818480132992512bd5b57df93b288a6b9a18c3d1f337d733a6e1a7b7780b45f3813aa855c64b004ef55b89da05a85b1c0638f56f6d6c87ebb947273277a9c5392e489afac0276dfca66687709f69bc73f373c929c7cd37c01cd2437060cecbeb1d045671500743ca451f7d9871fe252ccc39c341860a25d47ca90b18adc3af22d849389022ddd3a6e887212d6c9ffeb47da0131f76c9cae0467c35968242118f0f41330cab99a5412642ea0817ea08f0d49380a94952956346087012ac595d85a2339779c956abb2b25fad4512ca46527b54954fb81bbf79ccc0801279db6d57d5c16da1374ac841b5b441be3944003c30a90c56ee10239e746ac6fb867a50808839639af13f36d516b5056605236f57572844d657ac209135569455d2349ed67f3715902c4b5894229eaab63d0ba964bbc6884c1b57346caae6f1bc953b62f73827ee67468644ac383128ff6a3e97ec0ca3689a50ec5aa40392bad95e88e241666b18bc7092f01b9c7b3194bfa77937839ebfd2495ff29cb659a9374a8dbeb51306a21553995ab9ecb83637bb702365690812c3d18196ea0069ebba9f952b6b468b0e9846f4f7af8c17054189cf5c2200140ad0551697387842dc20a4eab8a1f0380934eba5c34113962c652e11c97a0144348c3218d371380c476ce987870472d72a38a2475539dcc545693d4a17af010a8ff93873dc24051f7a69ee7c3297ca508c3229d9d215b95b369d4126862a03531bb1fd7092bba391d5541eb962b403b50565253a1b91c63901269d18bc41003bc75c876a277adbf709def9b54447641f01027174334d963813a678cf7507b5562d1028a63df2411f6a6d5771c60b4a26f6ba1971943248607d9ec3b72df5b98802ccdafba8a7b0661a662c87001c3646a888208cfd68996fdb37bf9906ee99a0d09693f30b1c924c919de4b7ae0359b2b159d648bb4fe41d197c8d8444c530995ce8c3aac17637f699ad24bc0153fc7572c759e741c1fb71982fc61921c4515fc260afc58fca4a92dc3b9426f717cc0b60c6535d1f34b4ef858bd12677eec80451791191148a0fe00343d0aff44250cba46b9b6263594c940d40b119341d9e23062c693509304bac635f93f91bd48b362989751078ab995408ddf6787ceb3f99c6802aecb703581dc6979c4d405dbc80a985f991f31924383428d4f5a2cad4acb5f95408a3406ec53425f175651952f5b76acfe2a465b30c1d56ca0e53953dac0ee2da352a687441f45dae26b37ce8008a99308639999d325ba89585656a6d59f51d10e46f93d099490c2385788c994238ea1155ed22c96a5c5035a3488be1c29e345ebcf6b1b7288abe95c29b272a7817704bd31589a42b22053226a43329183f6160105ed05e73203d172354fa176d3fd084ce690a8b6a4cef4035a3e06bc6464e8c913b88a48c81e58dfb1267ec6c1462d93433193e50d1b2d3e3828e90b6a412c1c45668272307f4b8294f37b84857bdaac6190706ca31380533c30643fc319c866534562036b37e825462c8442641c7817650333fb02ed6a2bcd6c1ad0689001098af3657363aa1b689a20683044d15275d0fc3c9aa720c8c4c6212fa70095a2243232cdd0b0fbeaa1c8e7b45ffc2870efa9bf56c8ee86659a618a0a96c42acb48ae125af911558f7cb20c9cabc4554c8fa6c70e297625286456ee625afa756145c41373ab4fb59b2782b4a406115de4966d07629cf8cc2283b4307e6a058db3dee6413aad72f89a7c1ab4131d8ea9df020b033b1473d92c4d89aa84f044e429a43b4e22fbb693a694bba3e315e78475437387b78b33261d786288b20440c44138c84f5592bbe74c1c2ab01ccd1124394082319780b24c593149cf660946f75a930f0a8f93a50ed01b5276ba96ab6ce5f794e638697ceca94d80585ced04310612a3c6cad80dccab1c1cbf5e08b2bd6b7df8c4cde4c4507a56cc97b456e10050bdb3acd6a7e00c1742aa4710e1674c59a8240680d04b8829752332324490ed6139b550c7a832862b2c831d4093db2b256f702850bba03053fecac41a61734229b2dba3210eea0c1e8d9a54c915f54b32344296ea64855dca92ab81aacc9e73153617d8464852e8208904ace7b84509b2266f9fac55bf68378d98d3fbc0a468543a8944b9975637162a4d50c7fdeb479daa8ba43938333b897a12c224ed1c790f967b2d9708c6b67640ca9ddcc1562613c2904c6f3856d13d904cd3094965abf1ed32ce52b7dfe4429ee68a8a3ab03446376d6da1de56a7a7fd30688f513fadc5627619a99d191bd4c0ec8bc1933c00757ab3e1f5826677b5e9bec2b151058bd9a6b5d2285122c23466312559c89a634abc2a5a11324cebbda8d167880f6d59bc5fabcc23487eda84f3543386e0b8d25422d5051816315532d2120ea4723809509bcd0c2edc1c93c275ade244d4f5b27f73b0941820da0183ca2b7af8480c90243af6334b36af00bda4c1e5f50463b8c350923b4696b7eb733762d189c9eba08c09050a4946388d736ee73c62f47cdffe453776730e88531f07abdd8699e8bdc9f05bb12f275c453866d46519ce2a592a1052c1e0c6b8f093f53a057d6d1bcf759abea90883eea68c5344a0ae96cdad42f0e756070dbb496535b9e7325c02badae5533140b0d9e013c75013ffdebc855734aa9947f1ca4b879c35b32c862c933479d884b2c675d3e1bbd26391d7c429db547041502307d975aee26905f7fdeb44f418d3d1fb5b081a3b06f87691170917a1e9f3c2cdc71c5534bb819e61a9d8a257ff2eb29598ae92eccfad38abbfc9bccde5ff95a1c812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5 + +# Official test vector 12, seed: "db00120937570d62331f4c3f19a10465231eff46465cdee336a0d46aa1e7493df80f18617f9ffd0476cf7784a403ef4f" +seed: cbdff028766d558af4466ef14043a1a9cf765f7748c63cc09dceb59ab39a4e4d8e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c +public_key: 62032561926a6380b6d6d90aabc5617126aa509168eca264ad67c5cccc5320c138e4053b4376924e6cb250b3a61fea8689804ac3179588a29196e05d0efb6915b3526d945cfc183dafc40d46537d907a292cd63b950659ffaa57e280ade8c09dd80655fe45979b612a6c6b1e350ba0cf433552e80f58c79d91f5cbff0717f3161f83b3c59fcc021bb5cb1922b0fa3c29984bbfc3363333f561dcb99395561590409fd7b56bb7db88e4162a61f8a81ca6b55af485d9b06645c42d1f706e9ef2b3d6e425285b4973202d46f150fdd4a6bad34a455b274814ac5c4053d680bfb4816578342fad152b798a1d592a3c88b45bdc275c45a862179557d437304151548a568159691282bc08f9280bdaf30559a3a177e6b8a62b101d8342c9d72452e05bbb1634cc1a7465e479f100b6f2952dab8ac806c27a8c555ec20a995c25a9ea8c090261085bd65c137a630e787da7a6b039c38573006c79bb5c20e39756e1a72e2c016f6cc997464546283d76543d9774345ac619f9200c308c25cea332ff25533b7983db495100f24a42e4a8df11504c4b96c017871b5a594e9c0b241b01e066043d07a366e343a08ac561ec5a08168a1c61755d5c33bd693608f42e63706bae5cc8c7f47aea360093fc78045517be49566f35728bd6a8230984a5e21133b63a9cb4a7fab4befe053e37bc78900141eb21189cf2abc0764b3cc507382c8db2320ea49c988c5aaa7ae896d10702c2082a59c3a457f382f44a1f2ce5b3d29a5a08d047537163916c5f6b22995541b87e1904b62a3585429d938a1b37d419bfc533cb918a424b5a1f73a65a8605edfcbd00678b6361399ac794f2cb0c9b26939b09baceb79ffc55aaa528673ccc4a5b844ad0873b4d6a31465cc479c30273aa2edd362625512012f83b42d52781c3bc947872c78378164cb0e077cf9ad87974c75ca527aed41a8b6993073d711c1873965448b14d307c5b218717b94ca27b354ff99de1f581e9561ec3cc196d1815a7a60a8c9a94cf4354140cc5e3b98bfdeb9c95c7c87182b878ba20939a0280e2c453567215a15803c01f7f03bb0b90741df964c4fa02f1007c466ba6b8f78bec07956611420220499a013ad3e3a874c4ad961b02e4c27a9ae71d57377dbffb556334797ec28c701c220129b856e747b90aac0803b2cbc7b0bb428583b810efe1727e0598cde9681429616c7b3f8bd8b691841a7a5405ad288f77b652a49c38eceb4088201b651a5c65bbc05e40a7a0f4151eb0962c34b10c1869a003cc4cf86d39036778b3ca32d0c500f7918cf027ef920b3718ab1c191618f294866b2fe77bab8c84118ce55157714ad2d054102a4d38ab73d1f3967e98351631582545c5a60b3aad50a7852c9d43b945668bb8b6781f56057ec058b2cfd6310506133e38b75fe3086d990d92cab098f06cd376531bdb8308e5a4d2e323c87c36e7ccaac87b00a7d4cfa3b3342d74a02d888d702cb44bc31201e41fe62c7511493c068a92717cc5513045bfa197d7f83db35798354797cca7891392ae9587245e92974920551d826101d44d9f73b3113746114ac94b8c8e291892be9c8015a0114ee44e26879c02084b0192194b922284956a8fc2b26e9071847fb901fdb6603c3bf7bbf5297bea11539fbe18868709fc57dc4d46d7d54159 +private_key: 77996be8a7ae3546a363e340c57039fba8113adacf805385ead18c56b75320cc714072c4549a225c86ba31212146220eb217133a70c987e3819ff1b6364806d6750b9e293ea05013c1241e0760537d867640171741645f18d451670007ad4c971dd16dd3c55f8ddac186f029796979ed9091cbab1a46d093b1b89265b7a5bc81459dcc638ef08aa0bab48ff95e48c725fe90c8694274aa6365ea4bbac173a658bb3f2e646f9d4645a914b70cf92394586a3420c60ff2290217576c43518e1088b703cfbc3a3837794706188b5772c03685c43a33ae27410aed7825e2f2541ce67c07f15a71a5910422be6ec94631b1b465443b7215c30146c7049076ee1418e932c2a4061c1f1044b7456ed355851c41214ac25723ba486cd575b608359d2a948d85895eca59dab3cfcbb6a366815dabe7323ec05ccb9042c994b18335077c67187f352ab30a06d1d40007a1636af51602f936f7694a0da510badc59fa21b3ad033f9b03103f6655feb646f217809d00a521f6227876263b8b7663610f0392bdb9a5089362828bda10667a36af12bb9ff090cdbbcc6b1ca0e8259422f376a342944b118f74960f3d322bc11b0010ac32c49584003b2c66198acb0239d7a55f7aba6fd5546efec7a27c39c658d15332ab36f2988754f86f51c642fa087bcc935219e2b35ec7aa4194bfcae007e465cffa530c6b9982dcf98924f924591b2542b34fd28057e189a0448841b121a39ae17ea5d7101971b26301c43fc84edb0b8b0cb35d6e729955208f650610822918589c740667cb31b169ac104160647f50c77924fcc6ccf95ad81603aa8481cb4bceadcb3a6761b87831274dd8c5b6a7674f0412ec341589c303d6833fd3d25fee059c5ef269f7a910b3060fd60217c7a83a75c53115083fb68a9ae2da8f906c13522331b329c6eda84ece980284d9bd405b5a8ccc821b8aa99d49969871448d3921cb2c8c8c3b4e34ec07fdd299c532bb291329a4555c257a842d93badabc414778c76b7293e369597e7c092a3020ad72b5335a93cac4cd74d51fd3410da6caaa98085d107ba0dc3070a1284bad4398ae8b9acf58992397c9f0f9b2ddcac60bf539d0253d2d3377903a6963597298f97a82bc92f7160282e25387f57c4629a0a3482a563a0b1c776c18870b26e289b511ba601884864787cd922b84b7cdececc21e07120a9c5f23e5aaea649eff523ec0b54fb5face103a1a30714f6429421dcc4c3066abdcf33356c09109eccebd2a68acbcbdf3b162fb9a7b3d1c3743ac47b5dca488c561caaca4b2fb1a86ab91d00a65e97b213125836bf4190549c300f1a010515f0cf3c5acb2bd10a20851078df28999c831c14cfacc45d5872af85800431d350921e959a231c64103f332bdd55b3816c150b61defa324f7dba659e0ca30b9bc6138abc707be19a476f857ab9226cbd26a31e9f6a06d72369b6b5e21a7bf76538da8fa06fad879ab62c292a44e448b8252278eedf1bb283ac71b93b50d592bef275749c4c154bb669df436f081785988c42b99270c1435af451030fb08ec871285a9720646acc3cb015f63c87cc0bb74705188e145efe133b657a9cf360f48dc1e2fb11163ab31c6613a51307641e25662032561926a6380b6d6d90aabc5617126aa509168eca264ad67c5cccc5320c138e4053b4376924e6cb250b3a61fea8689804ac3179588a29196e05d0efb6915b3526d945cfc183dafc40d46537d907a292cd63b950659ffaa57e280ade8c09dd80655fe45979b612a6c6b1e350ba0cf433552e80f58c79d91f5cbff0717f3161f83b3c59fcc021bb5cb1922b0fa3c29984bbfc3363333f561dcb99395561590409fd7b56bb7db88e4162a61f8a81ca6b55af485d9b06645c42d1f706e9ef2b3d6e425285b4973202d46f150fdd4a6bad34a455b274814ac5c4053d680bfb4816578342fad152b798a1d592a3c88b45bdc275c45a862179557d437304151548a568159691282bc08f9280bdaf30559a3a177e6b8a62b101d8342c9d72452e05bbb1634cc1a7465e479f100b6f2952dab8ac806c27a8c555ec20a995c25a9ea8c090261085bd65c137a630e787da7a6b039c38573006c79bb5c20e39756e1a72e2c016f6cc997464546283d76543d9774345ac619f9200c308c25cea332ff25533b7983db495100f24a42e4a8df11504c4b96c017871b5a594e9c0b241b01e066043d07a366e343a08ac561ec5a08168a1c61755d5c33bd693608f42e63706bae5cc8c7f47aea360093fc78045517be49566f35728bd6a8230984a5e21133b63a9cb4a7fab4befe053e37bc78900141eb21189cf2abc0764b3cc507382c8db2320ea49c988c5aaa7ae896d10702c2082a59c3a457f382f44a1f2ce5b3d29a5a08d047537163916c5f6b22995541b87e1904b62a3585429d938a1b37d419bfc533cb918a424b5a1f73a65a8605edfcbd00678b6361399ac794f2cb0c9b26939b09baceb79ffc55aaa528673ccc4a5b844ad0873b4d6a31465cc479c30273aa2edd362625512012f83b42d52781c3bc947872c78378164cb0e077cf9ad87974c75ca527aed41a8b6993073d711c1873965448b14d307c5b218717b94ca27b354ff99de1f581e9561ec3cc196d1815a7a60a8c9a94cf4354140cc5e3b98bfdeb9c95c7c87182b878ba20939a0280e2c453567215a15803c01f7f03bb0b90741df964c4fa02f1007c466ba6b8f78bec07956611420220499a013ad3e3a874c4ad961b02e4c27a9ae71d57377dbffb556334797ec28c701c220129b856e747b90aac0803b2cbc7b0bb428583b810efe1727e0598cde9681429616c7b3f8bd8b691841a7a5405ad288f77b652a49c38eceb4088201b651a5c65bbc05e40a7a0f4151eb0962c34b10c1869a003cc4cf86d39036778b3ca32d0c500f7918cf027ef920b3718ab1c191618f294866b2fe77bab8c84118ce55157714ad2d054102a4d38ab73d1f3967e98351631582545c5a60b3aad50a7852c9d43b945668bb8b6781f56057ec058b2cfd6310506133e38b75fe3086d990d92cab098f06cd376531bdb8308e5a4d2e323c87c36e7ccaac87b00a7d4cfa3b3342d74a02d888d702cb44bc31201e41fe62c7511493c068a92717cc5513045bfa197d7f83db35798354797cca7891392ae9587245e92974920551d826101d44d9f73b3113746114ac94b8c8e291892be9c8015a0114ee44e26879c02084b0192194b922284956a8fc2b26e9071847fb901fdb6603c3bf7bbf5297bea11539fbe18868709fc57dc4d46d7d541594b53b4aec0d9f86a6377c63ff80150e40fc5347714c07591dc71c6beb8daaafc8e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c + +# Official test vector 13, seed: "bd26c0b9a33e3b9b4c5d7ea32d5bd1fc371015be163c86f584e49bfd5362c8d8341161cd1308115b2a03b7e5eaddd418" +seed: 4c04310bea66305c6ca8ba6b8f61ca96257a67663afc11761f13fb5c7b324b6b8aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b +public_key: ed7c794ee05d9b58740d13cd78ea15867a5c3cb14051223efcb36969430b45fb699c26caa918c3d9041589a1bde4484e95859a700c2510d6380c2a323e34526e22adb44a862c417b34d172269b32430c6b8a68cc3dd2bee2447555c82189e2562aa82df2a40e33b91d65b60d0ad93b127294d71002dd16b35701670564b1c07436dc2a001c751765dc93da79aff6177e9795b00c5bcbf66175357174032a2a742b3587e35f055268551c57af78090044be4200302fb0b16a40b80e092a1933bf99878852342cc6574c6230a9460b08376c42c51a48aca14d0e59294f3bcb464a74c0a296fb0182cef42b25b58711c6cc939c9e02c8302e2499640737ea07540ed89b5335a05c552472172e8bdb2f40c49a5b0295ce99a0f567af39169313c8b61ba77fd2143f97cc762c8b6be4c13300a8b78dd06011c144a1d747e1c3825cc1674b825838953574e8b6a16b3dfa8a05355c8977006c649b58d9f0ac2d704f774817eea95f6da97ab5ca71c521a277d9618881563f47792d99bebc73a74ceb5560070b75c3b8b2e2c9598195feb08ebfb5cb1d86a87f93465355a796520d0c24744c7b852bac418fd620d060118d135947d9b174cca55444096ed97fd6442dda02b4a3364732c6818c39a9d199b4cb5a4d3659c8c4851d39db9301047370351c8dc417bc1b86fa50486e759b87c4cc69a8a9ec282909c40f0b7ca0896c01f7221639b18fc3145eae4b4b8252b4af720f1a22c1e5cb980cea6b103082b31b0542ea8d64d8c9b119aef3524cad116689280a51ccc08c09a8c3313a82a581b55cae6a394efb5146ad9884344ab6904c7d5bcc75729a261239c76ebc83e2557f60d125a9578fe0b4ac8d57b08d729a8d86647708483407ba16344049f8b842496a64f84d5bf42540429ade11b10f567eba812aff9179e263a2899b770f8b3166da15bce789dee3cc7d1846f3204b26933d4803b74c3c3885748a417692f0f5ac2733804cd2a98f45547af8ccd28542ab3062211a51f454b28559c28d0751c5c6c31045a8aa41c79cd1cca536c3d6a779afd9175a006b663620bcc92b4ddcc92b61b88bd422f1dc7962a70569dacbbfc7ac9ce90f8d16c3b6973ab3e96b6539a145128631c6993c776fcf488f4ee692772645dc2cc1541874c02aba0564a46176005f6ccf2ab27893dc60d2d44ce1e5b6e317a38c032ad98bbbf79554ef2882fdb51115782ae862c9dc79a6a8293a39135460f96329548507d58c39a07ab9aa7fe913a7fbe4c466f693ee1006f6091346a4b75a2a506f6c787cab948fb76f4398b2110781ae27644211476364abe4ccc2f0ac6cc4e917dd391bd0b369ba862d5f396d8627285b0c5d9b3692ef8069ea601e6e493d841755cea52194b32b5f787f15a6478db7b6b41336000d2bdf3270f8f0aaadab89325b6a3dda4ea88021c8b61b6ba372186321f4f5575f2508625685db168830063860965a71a27ce34a7e934b9444d411da9a151b27b3ed738869100ff19099f0c2a8583b872c8a0745e455bf715b8f526cb4f378fdd931c8111d53a97379ab1d57684224780690b2c1b36bab3b0762b8fb6afcf39cdda151607a6537b985c37989299414b4c9b1894c6051242482b42289ab24793e2d7af2ca0cedbc27d0595b94c698bfa000840bb2d63e1946 +private_key: ed1263888c6658d29766539e247cb2ded8bd4aea61e1998c090c96c40c513ce38507b3c1c171131ef280496b0324907d31b2b1d1e53ba4e2b3795c6b756cb113bc64dbd0b4f47978c048892f3a5b64241c3bbbb9bc7c593a8865f4923097180352d9600636b8f639704ce868d0b5069fa99a395c30cdc4b4ce3807caa07130cb5864610f7c5a6234930a8a519b3b6ccb63c7cb898565791b8a32c594fd826cd283cec434930b0161e183065dd48cdb392f0404120dd86253906605284bd8d16970382c5288c598f3220504c4bf05189695c0f8055a08c062c4889db96c1e960bb8eb9009f060cbd9818eea119886fb84592093610371a09358f351704be5b7ba18308021afdafa52af2a4b42b7021459318b15aea8d04d700766a00428d8d3ac383a3cfbd03e49a8ba99713c7191b61422769ef5594954a4d3f00a0359482de59d0b9c18c787aaf8bab676acbc9cea9cfca41b43946b52b262dfa8302ce58f749260dcd65e81b7055b660d9341a67a352de1084353252d15e02d2b8bcddedc11bda1cc3aa46ee307a1fc29019182b9d817c1a3d922bcdbb2a8eb5fc2370b9d1a36ccf94a5af3b52ef094cbfb63ca590e24e43ac2e983b7760a187714daabb7a7d02f961c3452298b0e93614a8baf42988721965b4a7b1efc3b5b6e1968e927ce28e08bc12cbfb3d23ee095836aa5b2dc941ff1e0568942b8a6d6b997ba271c37b25d8b1147e6515ff788861b7e3b454d5e66b22cd059a34696b430890e8a9e0007cd62a1bb1bb0897ac835dc26ade4528bde16c8a00995fa9362c17981c794793b199eb348606f68862fb29c1fb154ec28314e65983343c3897499afcaae97752616c87076a00d54eb8bee6b3bf5e5be83bc3eeb874594147369775d02352936e51d801335e0a656ce9c12eff64ba0941fa6a563274ca536c3bfe9c2662a39b4c3eb07482201c93c50c95b823788606e81791ef21b27bb4eece135f1c961fc0095c0dc83b5226204104c7a919d5b3489e4f8144ab2c0045b72ffe77a509a6cbd8061da15371c03a6d028cd88f13494e8699aec9ec54291c2e16f787718b730c7cf436844d7bce9302aad448c01213c1d14844845601dbcb556ca85eecc54d426621d846d01e62796c011a231652904a8a9e7a73b5a87dea3afe747662bd696913cbfdbc1bc31893d89f4af3ed249ad946b7c2a31c8f35a7b9c8ff01988a956634bb06329e176d2e6c38aa3c8ab27b9dee0135962aa08a909ca8196e8e626f123bb3883b9d86c23883c9dc9910cb9e6805c5859a0e08a7af64d610a332b30cf41871fe8da13b503156f6c031ea4a5c33cb5ef9384c8047c58532cb7da4c9275176536a5f4ca0cd6cca9b399a938ecbf61eb3dcb1660b160698996b3fa21714715299927723f3609d11526336b6ad0c2cf91491927d07aa4e0c7234c9249803a3f43460ac19597b4c47c9c4e64dc174a8241a913aaceb8a431973d552416e3115301a969c351ac9b8c798d83cad6c925b7d467b132071bb9af4a3c2c6cf6358101a620f857f6c55a9fa077ae25455ff1249c562ade011ac64b659d289616284259a2cff5144558d1149671b350b18d0cc20f0e164d47a8382fd07d96232e39c0a6ed7c794ee05d9b58740d13cd78ea15867a5c3cb14051223efcb36969430b45fb699c26caa918c3d9041589a1bde4484e95859a700c2510d6380c2a323e34526e22adb44a862c417b34d172269b32430c6b8a68cc3dd2bee2447555c82189e2562aa82df2a40e33b91d65b60d0ad93b127294d71002dd16b35701670564b1c07436dc2a001c751765dc93da79aff6177e9795b00c5bcbf66175357174032a2a742b3587e35f055268551c57af78090044be4200302fb0b16a40b80e092a1933bf99878852342cc6574c6230a9460b08376c42c51a48aca14d0e59294f3bcb464a74c0a296fb0182cef42b25b58711c6cc939c9e02c8302e2499640737ea07540ed89b5335a05c552472172e8bdb2f40c49a5b0295ce99a0f567af39169313c8b61ba77fd2143f97cc762c8b6be4c13300a8b78dd06011c144a1d747e1c3825cc1674b825838953574e8b6a16b3dfa8a05355c8977006c649b58d9f0ac2d704f774817eea95f6da97ab5ca71c521a277d9618881563f47792d99bebc73a74ceb5560070b75c3b8b2e2c9598195feb08ebfb5cb1d86a87f93465355a796520d0c24744c7b852bac418fd620d060118d135947d9b174cca55444096ed97fd6442dda02b4a3364732c6818c39a9d199b4cb5a4d3659c8c4851d39db9301047370351c8dc417bc1b86fa50486e759b87c4cc69a8a9ec282909c40f0b7ca0896c01f7221639b18fc3145eae4b4b8252b4af720f1a22c1e5cb980cea6b103082b31b0542ea8d64d8c9b119aef3524cad116689280a51ccc08c09a8c3313a82a581b55cae6a394efb5146ad9884344ab6904c7d5bcc75729a261239c76ebc83e2557f60d125a9578fe0b4ac8d57b08d729a8d86647708483407ba16344049f8b842496a64f84d5bf42540429ade11b10f567eba812aff9179e263a2899b770f8b3166da15bce789dee3cc7d1846f3204b26933d4803b74c3c3885748a417692f0f5ac2733804cd2a98f45547af8ccd28542ab3062211a51f454b28559c28d0751c5c6c31045a8aa41c79cd1cca536c3d6a779afd9175a006b663620bcc92b4ddcc92b61b88bd422f1dc7962a70569dacbbfc7ac9ce90f8d16c3b6973ab3e96b6539a145128631c6993c776fcf488f4ee692772645dc2cc1541874c02aba0564a46176005f6ccf2ab27893dc60d2d44ce1e5b6e317a38c032ad98bbbf79554ef2882fdb51115782ae862c9dc79a6a8293a39135460f96329548507d58c39a07ab9aa7fe913a7fbe4c466f693ee1006f6091346a4b75a2a506f6c787cab948fb76f4398b2110781ae27644211476364abe4ccc2f0ac6cc4e917dd391bd0b369ba862d5f396d8627285b0c5d9b3692ef8069ea601e6e493d841755cea52194b32b5f787f15a6478db7b6b41336000d2bdf3270f8f0aaadab89325b6a3dda4ea88021c8b61b6ba372186321f4f5575f2508625685db168830063860965a71a27ce34a7e934b9444d411da9a151b27b3ed738869100ff19099f0c2a8583b872c8a0745e455bf715b8f526cb4f378fdd931c8111d53a97379ab1d57684224780690b2c1b36bab3b0762b8fb6afcf39cdda151607a6537b985c37989299414b4c9b1894c6051242482b42289ab24793e2d7af2ca0cedbc27d0595b94c698bfa000840bb2d63e1946c2d52d0c837eb40dac0653a5e862d9fb8b832629cece9eaeb6d5feb48b6ef5da8aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b + +# Official test vector 14, seed: "e2819ef86853bca1b9dee7ee1c1619988964f9a913e635aacf0d96ca6e0300d084329dabd8f149e24176d22757404260" +seed: 38a0d5f41d7dc1896efd1b45b0485634cef149828751b96087a0a6dd81b4d58aa2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a +public_key: 109bab4be52b48818412eb1353680f2a3c3bd9fa7e55cc79c38207fdaba1833452dcb03763672212953c53532e6051ab040208acd348af507616562d96c7c04da93c8f21566df563deab2f18c9359b0b5391e8b03b485e3dc1a7c981b2a30026b0f83b84c4505a5966f648383c9abd16638a3e557ae4925fbf1c0125d91d97511175895082a78c1272792a50a5651239cb66b3f6c1376fe332260cc27ed5972c4b6ecef6462d3b712627928cda42ce150d3d96b7f032209ca92e9937517bf2b7c5f66e3b837ec347643a6a8a4d8c299de167395c84c2aa8bf1a8a4d5db29c2962701701ead468368b40e87da45dee76ff4b287950889692a838bba17b2b47c3140b7761cb389e447b2a540ae251d61808341dbb2b9aa5f04a69c6010431b28c17b980fd00499e274c9492840cc7a1e90215be92759db8b14ef41c059c546d4482343106adb27a802c3c3f8759a8fa20141fa63c65081d40090eb1abebac9c5708a9ba50656b4e7616151a4f1b0bd678ac18188450ddace2b99b3f170ac2635a62ad88320d17a9a75ca2e1bb52576274ee12f1f3b0b1696a247c70a6cda6264dc9e892cb08548c0c8824168f471e19078737169b4549b62b634a611ad53699a5550635faa7ce4589938501834f8c4856cb2e991bac84809b424cafb5ba089f14338780178d71b1cb7b1ed12c036f727fc2a94e9a62ecab6a95c8800aaa237cfb224af5c8fcc939443176ca4bca59ce54400dc7639e0630fa7cfc292604e6ab0bcda993a78107d108783d19dded13c2033297ff513fa75c4c6d65640206b43f33cac26950533b4b053190cb23e45587509acbcfc57acfadb6160f5345a599caed04eaa02937bd5a5620a5f24e6b194c52da021233b13cf950c270f8262972031790ba4cdb4524bd92781898427b6a1adc7a986f88ddf7b39be1c7d9700c87d52aea9140aef5c6454328f666a8f476b772784c3b13494dab57b06e320b2aa701acacdce41b8b3843e9913ccb3705dab48cb9d85ab5b36bbff148c5a4239b32190193112e1184d33b88ed1e6c3a9ba0ced62bb5e634b72187030bc8dfc1a3e80e28bfcd1828ec4a2e4888d68e4bafa3ba8622a87314432801325fa66c142760272e594de825560c7c19e881ef238bd9a38013f601885e02acec715b25730fb004009eba9111c125bfb0d6b2c154945575743cd66d85906981b24c1b2029452879608a34bce8e610501b6b12f32a1b3e99b76143cc1455485b3802778b7ed52210b976cd2ba26f1551c0fda036fb33891ac77c9265c30db5a513baca1524b8499932d5633b127ab98d8c07ca1704fbc8404957251f11dbeb7000b363255f5aae1261ea5b7c741445cc2852666c5437a4054f5d3a421799318098f5aaa5262b46187f60a09d98442499e30bc54c86838e256c24ae481b6bc33bf076b04bbc798f0615cccbe8eb66dd3c97da6a89394d4c7e07b8c4d5c70a01c9e7c43b8a37c3a09d728d9fc25d933028a504dced76c2a3900ca67369cf5b822107a9ddb2a168419ac87b036064786f500e9e0a279294df8a7c632484723ba28b38b52937b40e20984c46b23dd81bedf629da6a3512ec060fde7b8b2dc987395af460998230c20a9a08c1dfbf3824cf7a6fb4ed55ed1ff461d800b59a6ffd7287e1ee3fb94cb59c39450 +private_key: 263bae3c310cbd4b6423ac0195592363652d2c1b470a718073e18e08e412286a4df32501e9926d27c43de1135df1281b65c6738afb062d1a0823c01617da701b97a11c26055972b875d29d42985737502ed0551c85f11e2e9b28157049248691d750a4759184ab00b02595460a91acb77a6272d49273c35895ac796eb6406999b8d5b824617393fac877749ca787456211fabfd8c1ce7775ba14c51bfb2ca962b6a3acd7ad4084c90d000cef83aba7ec45910bbe37598422c8419585111055c99af87e08d5656dc5678b488fa9c96d366b5e6c2a5c8d900f40bc69db4a9fb9021723e043d42b089c68831a0525c14c8e9b192b14b83962b7662202cc753aaee4d18e23846e4ec1cdd9434a77a47a69596d8b5b019c60568a63734384b83a9406f461b9f940a9e0d3add5d21ef67c8d8f8c83259952c3cc86c35403fd713ef26a9cd239381ad4370414506edaa2da027b2821ac9a8c4e5a661f06038ff4b209acb4a71b916386a928a57183f9a5515b704aeec9654b7c17798c57c07911a038bb9b7715c0ea69cb3c9baf14a0bf881e6ca1905bd405e876234102c572db0b7c705efc93a49d82303de400003897c3f9196c758701a5946c947b32709268a9a265841408f038e280a9b441366f983316cb5fc5109c29b2320b156794ec3233a523bcc5b1e0ec6f0158c4346ac04078c244375ae8c8ab9b57296450aa75d8231ae3cbeb21a17f29c8d8fc628ff315bda563961a2014338d294743269c4876689eb938141d31001f932440b0a0aa079b6f3c82553c5350827a4a768c1fdb5e75253423d95043989cfeaba0ec544da71ac75a62a3d4d5600914972198cc95bcb1e4d04c1f4621ace5c02b1b0536b0350fc09b23ec125af05e92cc08362b6e1c1142484b736fcc46f4233ee2c52c2f810ba3148d74681fd5b158068cae9d701819a16917c81cf3f5a31ad1873930b59294c32d915791510ef0d8c8ac8a6cb4673493aa6bda6a6244810bebc286cc8020cb86cda351caf9e801d9589cf29b9cad0025ce563b1aebac4362b176c8a6c4349ff62124c53902b2c10636c88d612133e872759631b31d4ca637bb1670377ec7b97444daaebca78664188885c134fb04205a266895b7909e3271e141ad62090d5696a0221415e5a711a7ac0a9512a1c528767bb617bb79b9aa55b47cc2acb573aff4b4b5442bc573a8b9e937ad1205a4e6311834899caf3824eca782530186209c25d7e810c8f6c5b4559f436c7365642d28933a3a1234415b9728c061365c74b73ccd3e36222db3747c289d13942a32ca6fb1d7a75d563097e91399a2b967c3737962cd1fa0629f2b774d25a2021b458524b3c2f8344ebbbd2b7a70f7ab1574158e89117f3f8962aba45bb0cbc297ec3c2cc546096078894308310241b8ecce3fb787219c9e0b7443d622330877bf8c4c9637c6b9aedb75cb763356eb7772ba5664791d4f439e6a317b1066452d698dbd235fdb4ba5c37ba57ea8be97849345f7b3e8d56485329933b9b49f92a1a67b67c15c72a3b0cf05f36bfb2567f70ba9139cb6729212bb6b48b71590513bae6489b47c03220a72af6094045293ca3623842de85677c16aa910b9de06924dd3986df541109bab4be52b48818412eb1353680f2a3c3bd9fa7e55cc79c38207fdaba1833452dcb03763672212953c53532e6051ab040208acd348af507616562d96c7c04da93c8f21566df563deab2f18c9359b0b5391e8b03b485e3dc1a7c981b2a30026b0f83b84c4505a5966f648383c9abd16638a3e557ae4925fbf1c0125d91d97511175895082a78c1272792a50a5651239cb66b3f6c1376fe332260cc27ed5972c4b6ecef6462d3b712627928cda42ce150d3d96b7f032209ca92e9937517bf2b7c5f66e3b837ec347643a6a8a4d8c299de167395c84c2aa8bf1a8a4d5db29c2962701701ead468368b40e87da45dee76ff4b287950889692a838bba17b2b47c3140b7761cb389e447b2a540ae251d61808341dbb2b9aa5f04a69c6010431b28c17b980fd00499e274c9492840cc7a1e90215be92759db8b14ef41c059c546d4482343106adb27a802c3c3f8759a8fa20141fa63c65081d40090eb1abebac9c5708a9ba50656b4e7616151a4f1b0bd678ac18188450ddace2b99b3f170ac2635a62ad88320d17a9a75ca2e1bb52576274ee12f1f3b0b1696a247c70a6cda6264dc9e892cb08548c0c8824168f471e19078737169b4549b62b634a611ad53699a5550635faa7ce4589938501834f8c4856cb2e991bac84809b424cafb5ba089f14338780178d71b1cb7b1ed12c036f727fc2a94e9a62ecab6a95c8800aaa237cfb224af5c8fcc939443176ca4bca59ce54400dc7639e0630fa7cfc292604e6ab0bcda993a78107d108783d19dded13c2033297ff513fa75c4c6d65640206b43f33cac26950533b4b053190cb23e45587509acbcfc57acfadb6160f5345a599caed04eaa02937bd5a5620a5f24e6b194c52da021233b13cf950c270f8262972031790ba4cdb4524bd92781898427b6a1adc7a986f88ddf7b39be1c7d9700c87d52aea9140aef5c6454328f666a8f476b772784c3b13494dab57b06e320b2aa701acacdce41b8b3843e9913ccb3705dab48cb9d85ab5b36bbff148c5a4239b32190193112e1184d33b88ed1e6c3a9ba0ced62bb5e634b72187030bc8dfc1a3e80e28bfcd1828ec4a2e4888d68e4bafa3ba8622a87314432801325fa66c142760272e594de825560c7c19e881ef238bd9a38013f601885e02acec715b25730fb004009eba9111c125bfb0d6b2c154945575743cd66d85906981b24c1b2029452879608a34bce8e610501b6b12f32a1b3e99b76143cc1455485b3802778b7ed52210b976cd2ba26f1551c0fda036fb33891ac77c9265c30db5a513baca1524b8499932d5633b127ab98d8c07ca1704fbc8404957251f11dbeb7000b363255f5aae1261ea5b7c741445cc2852666c5437a4054f5d3a421799318098f5aaa5262b46187f60a09d98442499e30bc54c86838e256c24ae481b6bc33bf076b04bbc798f0615cccbe8eb66dd3c97da6a89394d4c7e07b8c4d5c70a01c9e7c43b8a37c3a09d728d9fc25d933028a504dced76c2a3900ca67369cf5b822107a9ddb2a168419ac87b036064786f500e9e0a279294df8a7c632484723ba28b38b52937b40e20984c46b23dd81bedf629da6a3512ec060fde7b8b2dc987395af460998230c20a9a08c1dfbf3824cf7a6fb4ed55ed1ff461d800b59a6ffd7287e1ee3fb94cb59c394504ff02338c9bb711d263140c471409f3c42813f38424698563d9550f85a168f2da2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a + +# Official test vector 15, seed: "669c4ef8a051ce201da65fc4bc34d398ec1f806276fc5d987ad71d93bc12dc8f107b58be6e8422a0795c88cb9a0e7488" +seed: 97b5665676e59e3538ebadaa8cd50df1f9fda1502d9894c616a946078e56b621df05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 +public_key: 034626f03687751b2f1abac22b4c2b1ac19567f3324fca5d82b147af141a004514d831039a612ed69b621ffb4223109171e6351bb35177b85bb5063161273abf861988a1803e647820bb53b282bc6d04cd3e075a4a1b6755b97251901a81c7911437c528951d007d9ed82368d4c833ecf2aa1a806cbad08259470461f7774a922227e812689bcb59a3483c8346d130650e06383556c067f94d41dc1171941efcc96e3fd769623861bec9bbcca4a5ed22c10a36a59efb5d7153859df348ef9c3a2745cea329a73cb831441762820c7d996b88c1d453c775a16ab2c752e68bc55839d2e79544b87af56019f02b794b166f6dd60e8efb0b14f00d1ae800e37bbe5ff7c7d47a257adccd2949cdc3d9318a0cbaa34a14e080b968533ab1d9ab674c89774187d592b4c86461e84ac0e6808c96090abe6b0cf69a2056a1c4287b1cf3dab74f8ca66ae8421fa200fbaa4b11760ac7529b92db75231958e20a3f55b8a3396a10fe957361a9bf41941b90583d8d97cade8828b8a3a5ebc36730c19fa7346aa427c489f56c7cf3716928c9082b36d3f3b82ff1348eaba325ba8c49acb2673570dc5548229ba93a5c210b586ece088d6679c975b60e0106c0003625e42c1bafc1ac1be1c1779556a95ac68776ca01363961132ff75c2185339d79a426e6c0a0011a260acb7cc0583e71623b251cb8ec1049da730c2f9a26a61075aac24ab1da2732f708221a01b27c9da1b520beb7686843360a11a292568993c28bafc7088c1767b87523e9450873f9c73912cae517ca29c066631137faa16d217ccc07f840e1013440da2ddaec6b7161b29742a2c941c7573bb0b57a58a25b00db5012a3362774fb35cd80c6f0a095753688b156b510561ca47b436cd5576ee0323f2bb2967022fe391b9cab3f41477787a96ec6667337fa4ea29b44b7c9610ab69706e820557ac7c9f9c55ab4a04fcb05ecc4157b943bbafc0b0e42567f95b8b436838d363da680a42ee01cd5353dd4276b4dc625d492aec385bfebe9767a2731fa8b3ce9271cd8d28042b66714d98d0bc0675a54b3ea3c322830a5616816c43260f6f21947e3499dfc4f9d76a7977cb467899b455a12d8628e93acbfed99cd8b813d21a15024da9ef46b1ae4f6333dc8933b52a5f100bdbdf2b23987270d550493d949e83a269ab42027b34a12a177f185af5f76ac9f9b1cf9ea4eff5529e0247d3abc3ca08b3a1d081a8c75a1ffe4337711759d25b9cc673b0263177ea93b56667c15f82b483702973c6436d40953aac60929a36a911ad25ac109a10841fb95e1ec05962c5694cc3cd7372260ea4863109254c26a44f62af0957960634354f62c624c5723416f14966417681fec883ae47544b753340f749b487a095f89784f15a6e7945da56c9e0d2c358162213403609a1c938c98c68b70a0fadc5aa746ae4ea9868f19b9ebc3282ff592960b436a7a7301e4c7fa075ff50762b866c4a9f157ad25291347a9dba5cad62c35b28a3933f5269f33a0e6d403e5721a0d36bae734481c43918f9b13acea8f6a13b1bb584938284c10e3806ed935d8e543fd5bbbab0685f099c2adf254f4906d6e05590dfb1544a32ff3bb766109561ff31c164792b6b0991fa93c14a74086a585353c3e620d3ec5b1da6ff7959016b53093137c512dfc18 +private_key: 4fd2be0ff2ba62ba7ddec6a73c032e9a15cd9db841b4791620989c38508bd6733c15c206c84402e286ba0f2b274b94ad18a5ca003d7689aab71ef8cbce7b75ce844622fc9f57b974f8991a89032206f59023002c938c6d66622a7033442c190134d06f04339fa61390ceaac12dec5d0e5275456873107a8cc1ea6d5e5450aab97b23a06e34c8a812cc29794897a20bbfe7790c3404c25dea2fea4c80f102ad1e750780dc79010811fe680bb1c8000ebc930ff8257f912140db9e0a9c5c7410388384591f500bf0aabc4258272deb2871bcbb85757e9afb2699f45142ebb80ba8ce2fd095cccc1952579a8a67bb57f78e2feb4e484a96854a8d4d16bea8c08d04f91f31779e0df23222f5768775c026148cb1895b970cab860bac34aa6612e8a5b93c5aefc78e408a0312fc027f7a509d6c12b55453e9cb2f4e5c4360a4ab1e350f8122a008f69cf2796f6b72a58e388921863ab2fb82ae627c60593a99a4ba7806572dca7179476b16d5aa6adc6ccc90ad700cb1304c2b299c1aaf09369cc2ce8a9c31cb799185c24ad16967fb1269d0dba48eb0a258d4c37f9484c9cc8d214232f88b919de59ffaf6c00029058efc1e4fe55a8457b16d3c49017c88909c0eef37973a6b2e55d19b8114b074d8c95a57c5d897c87f024b3bd8578c7921536b1b45c19484e220ed87bc647c57aad958e01c74a433074a660de8824060108b1c44cc45486f0ad2c00fb79a7d88a2eff62887a3171d132e441cbaddf2bc1622045562a893300502779c3cf072ddf61187d42da0acc451e6b56bba37b3da8f1b105483955c7b169f89db86e7fb04a493b69567bc5a8b8655c919f8a70d6ee1034c1478effab227622029f5997b14696f4bc4415b6771d3701b461e76d686c93699c96165b00a593d69827bb39a256a1385d8b77b2222a5c920a6864ba5f413800c95f2ea9c303a064a173c764437eaf13444ec34192911400506158a0ab1c56399c012c30a7290cc0b0d330bad27b8c0c80b7dab5ed21c38459a436b5a5b2b0822726815180395dbe69a472672fcfa17cc331ec910096480affc8c667bcc7a2ca92e6ff80b1735a5959810dd3a5fe9938836d1b50d772a11c1b126fa498009b730139c3a1c9a22d12a55f1755f81ab7442399c8bb509775a24b3987e4432fb3a4a22fc7da509578c34302ae845b818894c7a6283d71d42657544b558f74b7977d270be722b9a51bbbdc236deb8898c65a92457b260d3816f57030f510e4f885450da20977451b2a731ded6287fcba24b4c7f09e4a7532965774c0578eabc13d1b123542c1d1b6a710bb3b55038a28155528caf974769557318c617306f72acad23c7c475b9a568c70e7552b65917217677fe625b15548be7465b147c60f857a832d08ca770c83ca3b201ec1e8ca1ba25630997a69ee54921e7ba611ea1c0928c0c99d65d0c0a39f2e18f8ff9980044477899411410a48ac2c6c2893e83c19f7f1080edd9058270374f0aad2f794655f594b3cc15bbec6db0d647e45805318534c4da9484ea4d55464da7231bdfd31e9bb6c53e35a6f0764ed3443823f9991ca3aff1caa50edb522c42112ada999dca8a8e678ea1a8417d77920f723061c87cb29a55034626f03687751b2f1abac22b4c2b1ac19567f3324fca5d82b147af141a004514d831039a612ed69b621ffb4223109171e6351bb35177b85bb5063161273abf861988a1803e647820bb53b282bc6d04cd3e075a4a1b6755b97251901a81c7911437c528951d007d9ed82368d4c833ecf2aa1a806cbad08259470461f7774a922227e812689bcb59a3483c8346d130650e06383556c067f94d41dc1171941efcc96e3fd769623861bec9bbcca4a5ed22c10a36a59efb5d7153859df348ef9c3a2745cea329a73cb831441762820c7d996b88c1d453c775a16ab2c752e68bc55839d2e79544b87af56019f02b794b166f6dd60e8efb0b14f00d1ae800e37bbe5ff7c7d47a257adccd2949cdc3d9318a0cbaa34a14e080b968533ab1d9ab674c89774187d592b4c86461e84ac0e6808c96090abe6b0cf69a2056a1c4287b1cf3dab74f8ca66ae8421fa200fbaa4b11760ac7529b92db75231958e20a3f55b8a3396a10fe957361a9bf41941b90583d8d97cade8828b8a3a5ebc36730c19fa7346aa427c489f56c7cf3716928c9082b36d3f3b82ff1348eaba325ba8c49acb2673570dc5548229ba93a5c210b586ece088d6679c975b60e0106c0003625e42c1bafc1ac1be1c1779556a95ac68776ca01363961132ff75c2185339d79a426e6c0a0011a260acb7cc0583e71623b251cb8ec1049da730c2f9a26a61075aac24ab1da2732f708221a01b27c9da1b520beb7686843360a11a292568993c28bafc7088c1767b87523e9450873f9c73912cae517ca29c066631137faa16d217ccc07f840e1013440da2ddaec6b7161b29742a2c941c7573bb0b57a58a25b00db5012a3362774fb35cd80c6f0a095753688b156b510561ca47b436cd5576ee0323f2bb2967022fe391b9cab3f41477787a96ec6667337fa4ea29b44b7c9610ab69706e820557ac7c9f9c55ab4a04fcb05ecc4157b943bbafc0b0e42567f95b8b436838d363da680a42ee01cd5353dd4276b4dc625d492aec385bfebe9767a2731fa8b3ce9271cd8d28042b66714d98d0bc0675a54b3ea3c322830a5616816c43260f6f21947e3499dfc4f9d76a7977cb467899b455a12d8628e93acbfed99cd8b813d21a15024da9ef46b1ae4f6333dc8933b52a5f100bdbdf2b23987270d550493d949e83a269ab42027b34a12a177f185af5f76ac9f9b1cf9ea4eff5529e0247d3abc3ca08b3a1d081a8c75a1ffe4337711759d25b9cc673b0263177ea93b56667c15f82b483702973c6436d40953aac60929a36a911ad25ac109a10841fb95e1ec05962c5694cc3cd7372260ea4863109254c26a44f62af0957960634354f62c624c5723416f14966417681fec883ae47544b753340f749b487a095f89784f15a6e7945da56c9e0d2c358162213403609a1c938c98c68b70a0fadc5aa746ae4ea9868f19b9ebc3282ff592960b436a7a7301e4c7fa075ff50762b866c4a9f157ad25291347a9dba5cad62c35b28a3933f5269f33a0e6d403e5721a0d36bae734481c43918f9b13acea8f6a13b1bb584938284c10e3806ed935d8e543fd5bbbab0685f099c2adf254f4906d6e05590dfb1544a32ff3bb766109561ff31c164792b6b0991fa93c14a74086a585353c3e620d3ec5b1da6ff7959016b53093137c512dfc18bbccdbce67cf49fea044df5c767996681dd2714937d31c822f3c58cc34785aa7df05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5 + +# Official test vector 16, seed: "9debccfe818f6b5204db4ea09c03ec9a19dcf1629c1527685b8a29776bb1daaec45f8abf8f0adc9a8c8bd6e2df6d8048" +seed: ef99224a03a85a46ef115474ec5b5d620da6795d6efcca4c9135d19958a9de62df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e +public_key: cd187009317a52773c57d435faf794021bbc709b8e7d688a5dfc686c15931221a9016c3bb461a487982ded37041ad0c1d032714f7379e2fb9faf5aa6d0f5469c7156800ba258fc5b25d0996b6735665a806a74b03d9819a5832a6685157e7285df397e23b13a543a983a5b24264c971a73708de1572852465732c94830719c197c7985c0a7c53525a1ae76d18e1e9112eb4b57c1222320a8156643cbc9535a27658a3709123cd61af7798addd888053bb0de254eff530296f9ae75b2ca756539b61c62decb0e9ae611678b5190503344229096c34990a61ce8b10ed3841d48d266cdc249acc96b7d88010899c453467213d8bd23e1764e0237480c34d8396ef57c1aaf781c042471d04077eff85338ab8caef22ed064bc38164070a00cc78b8074e7569a627b49e0416a705386601d3b8a6c10a4adcbb190b4877422304ffc776b4a129d4098c603896a6020725986cfcf0083fffa66eabab82db734f5d1b5766104e8a2b8b859b6cd166dec691ae331b87e794a1c9b083c14b50b85b7e97148745c9f8975733d4262e247473ce53b85d01c6de505a352bfc0c233a396c87f856981c83fb74542c9f3cee1276f3096486ef23359c51ac553931b80c6bd245b2114c4a2d344ab53765c02c82b41412afa1ad5ba6ccee9bf09e375eddc0cd55bb6c727be26bbbc4e7392293c59455084b1542c87578c63511ae3e384e027bc07ca7401cb0096d1205f4ca86d3c73ee8273de930799369133f83f4667a92e72bee2655b17120dee233433f9c68a50c57fdc8617ac1d03f0961d4a7bd17678d8729329a0ba0591ca84670557e15fc5eb4e8255007b8c4e48206f62062e1dd53bfc43af02405d2e300d4858b1b9c9ceb531a910c0bde877450a9aaa8878a2fa45089e184d1fec1cf4e3909670bc11e78da5d8cfeb86a4c087a1b73a6099c99836b3cc76366d35a9854b3b205f4b2b69666878614117163fefdc32b6db37fdeab0a0197f79db088c3a355877cdb1313a2f200e27e37e12b4bfba04691f82b1c2e8b8172c11e466cd8d01286f2a3a4fe5a5f920476a9278b9d25e420b77d489386f9c167f2731654b19fe4886867b79ee10c18f679fae87826a0b65b44a83da5a35e0723bda3467541228b80b35d5ab869b52b5dba9b8b309360ff1022d67bc93747c392469c28b288cb73fca74001e5bb47d5b0321e08fbf832d0a9b0dbdf566d3898e1f9aba7e3c011a14c3e918589282c0f167bf14470d1f6c774e6742e40a1452c70cafb941624c02ad201e6030bf3dc6a039e6465d6772d1c184c693bd16c3367f02730ed6beb95940ff783cf9e307f38a7f4f37754f6c4ed26a1c70c90741ac89e56c989b0260f7e1178b5b975d54aa6f420e97a7b90c3c74200359d561beae98b1af044be40a2ad8491f42662e2f34bde200c63ca48e7409727c8b2185138ae7859ce43558349a1f3e641df0c14428c0c12d0a49abb904cdf8ae5cf34d379024ed528e5d84a3d25920b7a94b61a8abf9e557ff61c784501fc9e332f2b652f16a0a11148b8e594d1f377035e124d637659d4485d909543818814fe7a8a173bc8aab7066d2c927c90660dc8d30364d60a31f1d94a9e5f586cd84c167e2577d3326e41a614382f4982426e93391380c4b03db38d0f7bf0ff66d2d93c251d3347c64 +private_key: 999942a0ab8086204428a2098a205a297265ef3b725de17ce121512fba2225b20c2fd0147cd903dbf08722201c4575784a5370556715f8ec09eaba14b38863c5402b9100407b35375098a55f568ff0b4324b43098debb5085558fda00084584bbfe68d94280636809f8d408256913d32152710a132380243c74455b7f11532d3b88145cbd61745aa7683bd204c4e035d526a488465170fa86a099323fce43b78b4a3b959a1b1ec25d4593181dc22ba883a9f080316c23d07d1490daa68c8fa2f43533635439b5bab445a6c1df2a2c22aa84355556c80a9877ac9453469b02d998476d0cedddb9f3d05c7c6f99253ab62109376dd9b384b26786872030d95c23b3cb38238066978b55f2746124a98d90bcaf1c958e08b108f6714fe7658f6e0a67cb875522090856761d47189bdecb13c7746aae24c12294db2662a65d9241b513cf244223ec0ac4be18935c788e04421da1071611a3349843b7c760ce3568413756b7d838c3f3827e167b1db27bf0546606ba6bb7ff11a2e7b86186946cd00d0fa143122729efa29adef75c499f2c719e985e6014b110373ad2164ef7a85e78b7fe1dc25ed60027de464f3c133338404bcd89f2680c639d956be5a8cdc6254e670b5400139e0c136a132763f6c6664a6b9283b03ef18c809d94347187d91f97bebd0bde9134bf0414d219895cbba75c9b262e6e62ad70926816bc02818c71d542ad6e3bc2e58796d7a90a4ac200c1b135940b4d0346366763c2672ac70c03b56a62afe49a1ef043fe9657391b7274b6ba05e3184fda8125b412c46f986212ba2948b6db9130f54fc33f9574f7a82aeb209b6441886ed83816c173ec9826f8fb6c8e36237d6b32376344cf01311346b19eb502a6cc61811d6728ac3288fa5c576380ee2286839e4a8a01761fde8a2fb49a3dab98bcbfa9633a2bfeb116072c479ddd28891305bca71ae8622cc89dc4733846cfa56cd2ecb4d60623b92797bf8d8b2dbd2b74804c7cea19f40b67394c46b46906a44a5b669d95d4514a95f6327465baecb8a439114070884338485468b36b103c4af5ce9c1c9a09feb2a2f9b7324e703b23dc63192422e5b2c38228c36a3cccf39777d2015496972c6c618a296908cf6eb54169a479d5221679a7829e27c92c5550a4156d5631450753beb34cd4ba8ca8949a7390a4a2e4abce4ba418525620b7c9064d82f8d080a68f058d847bf69833cfe025f0e090e185234b6f6a260c7391c97b57222606bd0b488d37ad71774636c9e1ea8a449958c1b944e76f48fc8401deda708bc039a81c497c2e028b52a714b40679563263305bb432b3e120bbc561b121a2026569951986c94000235e96a2fbb70acb7a50a79c06947c02db12609208c101bab9e63d449c1c0a0faa336d7b0c1ba9c84b6518863267ee61624669938cbe07eec601ad3649675ca12cc307724db6ed5a60766f423c47100b75c41deb4bb78bcb19d4c486c098279d53ce0e6295086ba75525e22d3551450cfabc72c781008cfc5830d6c603311abbd81934e874b1c4a55e4884cbff57dc4ba0549724c7603258ed6b63456af9bfa0bdcb3ca86b09ec25aaf41911400e8bbe409604ba8919cc59b8916c8c8745c2e8042cd187009317a52773c57d435faf794021bbc709b8e7d688a5dfc686c15931221a9016c3bb461a487982ded37041ad0c1d032714f7379e2fb9faf5aa6d0f5469c7156800ba258fc5b25d0996b6735665a806a74b03d9819a5832a6685157e7285df397e23b13a543a983a5b24264c971a73708de1572852465732c94830719c197c7985c0a7c53525a1ae76d18e1e9112eb4b57c1222320a8156643cbc9535a27658a3709123cd61af7798addd888053bb0de254eff530296f9ae75b2ca756539b61c62decb0e9ae611678b5190503344229096c34990a61ce8b10ed3841d48d266cdc249acc96b7d88010899c453467213d8bd23e1764e0237480c34d8396ef57c1aaf781c042471d04077eff85338ab8caef22ed064bc38164070a00cc78b8074e7569a627b49e0416a705386601d3b8a6c10a4adcbb190b4877422304ffc776b4a129d4098c603896a6020725986cfcf0083fffa66eabab82db734f5d1b5766104e8a2b8b859b6cd166dec691ae331b87e794a1c9b083c14b50b85b7e97148745c9f8975733d4262e247473ce53b85d01c6de505a352bfc0c233a396c87f856981c83fb74542c9f3cee1276f3096486ef23359c51ac553931b80c6bd245b2114c4a2d344ab53765c02c82b41412afa1ad5ba6ccee9bf09e375eddc0cd55bb6c727be26bbbc4e7392293c59455084b1542c87578c63511ae3e384e027bc07ca7401cb0096d1205f4ca86d3c73ee8273de930799369133f83f4667a92e72bee2655b17120dee233433f9c68a50c57fdc8617ac1d03f0961d4a7bd17678d8729329a0ba0591ca84670557e15fc5eb4e8255007b8c4e48206f62062e1dd53bfc43af02405d2e300d4858b1b9c9ceb531a910c0bde877450a9aaa8878a2fa45089e184d1fec1cf4e3909670bc11e78da5d8cfeb86a4c087a1b73a6099c99836b3cc76366d35a9854b3b205f4b2b69666878614117163fefdc32b6db37fdeab0a0197f79db088c3a355877cdb1313a2f200e27e37e12b4bfba04691f82b1c2e8b8172c11e466cd8d01286f2a3a4fe5a5f920476a9278b9d25e420b77d489386f9c167f2731654b19fe4886867b79ee10c18f679fae87826a0b65b44a83da5a35e0723bda3467541228b80b35d5ab869b52b5dba9b8b309360ff1022d67bc93747c392469c28b288cb73fca74001e5bb47d5b0321e08fbf832d0a9b0dbdf566d3898e1f9aba7e3c011a14c3e918589282c0f167bf14470d1f6c774e6742e40a1452c70cafb941624c02ad201e6030bf3dc6a039e6465d6772d1c184c693bd16c3367f02730ed6beb95940ff783cf9e307f38a7f4f37754f6c4ed26a1c70c90741ac89e56c989b0260f7e1178b5b975d54aa6f420e97a7b90c3c74200359d561beae98b1af044be40a2ad8491f42662e2f34bde200c63ca48e7409727c8b2185138ae7859ce43558349a1f3e641df0c14428c0c12d0a49abb904cdf8ae5cf34d379024ed528e5d84a3d25920b7a94b61a8abf9e557ff61c784501fc9e332f2b652f16a0a11148b8e594d1f377035e124d637659d4485d909543818814fe7a8a173bc8aab7066d2c927c90660dc8d30364d60a31f1d94a9e5f586cd84c167e2577d3326e41a614382f4982426e93391380c4b03db38d0f7bf0ff66d2d93c251d3347c643ef3581d438af7dec621304e0091f797346ca18a41f39401e9d03200ef48beb6df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e + +# Official test vector 17, seed: "8098ae7a92c10f707d405f7dea02c2efbef44efa132ba8aefe81bd45e543ecec74f10920ae48a40b0653d63532517f2a" +seed: b12f6fd965ea9c5b947db80fc60c83d5e232dca82e7263027c19bd62e5a6ff550f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 +public_key: d8b6c56dc931d12a8092102490881b4e2064c5a9588e257834c1aea2668e69d907db5158c3cc7321d83b9703cb74864c1057660b718c3412cc47bb92612643313c356b6b2cdeac80ec5b657e78cb2fe9ad14c28747e45466847d71c49d1355aa845a5c0fb27160156d49a3af1d8b975d694186b06a5b1111ac504df3f91ce9a4b2e248697f9a972e7b0cd048c1b6f7581af20afae4c1b9333f60e73a0dd1ceb2e19887cc712d0bbb5c24054553c3c7c972e87253d4c46c971826e8955ac0017ca6d6550335916d6a939f5c167bd68c09d85650e89b40a4686ff0bbd921ac3e43641b1600a84bad0fec9524f09fc920916a31b081e88a36803715b1476e57ce39ec27fbb04256ca64fd11225e474b06bcac9657b31de3a39f4cab5b65bcd8896655eb924243972b0bc9b755b0c69b837030a07937652c8c14f71745572882d222ba1208327d3228f0778a215b8fe6f4a14a9b3a56ecc56f09c49ca31cda853db12a2fe5d395a00cce6621833e61c2cea5bd6f0bcc6ec6b479e334fa543229b619be566e8c00a1dc7837c7b5651b8b6a94412ccddb63b8213635a5745a54bb56198d325a59109c75d2b733c77738a1328bf1370ed99b7ed8f611e69c3ed82620ce95088a91c6c6d472294260a1c5455291188e010a9467c816938f9835c1a4fa01223494c885642e5c416c82223d614a108a1128e53d9b264d61d798c4ca9bf6abc72fe779346a3208a77542272b591a6ae781996ef17961284666c85ba91b2de5f0bf9af10eb91c5793e48fdf367f46f586e05b2dd65b262506043de419482071dbaa2568256a14825b8f094b796a527fd25b8071a4041a1be279c2e3f543021364a147cff6740ba448b7010b4ddba6aa90265a95905f141a9374970a1a071799d813ecd77073b453cb2b6d83ac9cb8267a5861b9e2f23d345581a074657554781e4782d98333f1237dcafa48087aa66de4209a9a78700b09d44a0b5c929ae6612acf6b5d8ad20404a161fdd3639e659bf88291d41711015432f0e7ac759a67e0324f94c1876314687ac377ae48a30b48ba9986714ef3064f087c953ac6f86430bba9cef9857b849315dc4379799092af4c5531fc13f63b186939040da2233be05371d448fa748d76f98c3f638a6bf5864b9bc5fbe496d72966e3004409e420bc4353a5d55d0610843d0b8e6ee5bb5d6c4dd1462ae99a43df586b398a15ff5b5ff58a4006987613f5caba694dc0f736f6d47af66673e8f308a6044338d23c817c0420e679ef621739e21a4a35140dd2928e79584f787671b118e9e71e1d9430b9a3210e11c266876a44c7082e7ca5f6dc4b8d931f5bfa302fc790bd424cc3643844418f6c090e2cf5bf60f08c489bb87315464d90006375c34a5297a238a117a8770cb9795776c11f8a54ff13adb3fa77df3757938c28d03a612324858a11a860235e0e15284e36035bfc0178db841c679a47b93e3b09a9f735955d6bce328a91f2fa64273917b7371fbf166c47e9683776aec02251eddc84032cb0a852594f4c7875792fa345a43a68a193c51492a39c306b02f22c60ce5a8468c3050cc3965e2982e32b938a31cab1f36c1da3ca723261be3a864e2912199262c46741fddca501df33d04a79f8e3017e6197ab24b062cd98486dce2a7ffb22e5798643cf9ba5 +private_key: c0b38724691a735c3fd82033d0535c3758a5d4298ddcf542556b73ec6009c4640f5c26471849a2289c469a975839fa5d4b389e75f8423a4633ebd29d8d1a5c19e609f12240edf33ae9c07cf93c18950cb1dbb07963d69dd1e2447db0500255098cb88083a633c5181f75d53a7f0681900747c8eab98d3aac6ff35d2bb01c80a1cb4e5a654a852a07614da10c5ec8071ac3d6394b3a13d47312f03229604c682f05245cec41b3b55098090b6044a1a3c0af26ab4a6ba21ecd50a08d8723d32563c36aa8c3bb01fa3798c42aaaaadb9d0ac8925342264dd4072db982309c0460d7380f02cf5ec0afe3fa13c7297337dc205c0a1f8b3109363765d44a29f1a7bd2b17c24c3130c26a8b872575970239ef12352eb15aab0c9a96b5c51f47370aa5372bc97a22a4029ea0b9156622903354f5a1cb3d49693a198413380075174d2969a95831b1051ab40d1344d809cec691717579a1b7eb52c9087d9244cf9ae6bdc32766b694708d1ba22fc76b042a6f9ad668971b4767e6a54a95290b699a04788edea5c914e3cb431337c0736efe7244d139bbbba28ce82b72ae92a23121b7560c9db5b908bd12539890a172f4c68f381d1c7b562b1b5bd88046359c29dd933ba1ec1f47bc4c485c8dd599767822ca7c4cb300954821695eb5eb2f87fba33d61284b187ca6726a1be742286959e38456594763f5ea53b9a7959382c348c7449783b5c784522f44aa3c25bd21d48660f78f70a00e49e59bead90c4c8367c22981d8ca6b5c198cb5906b12c55915232afc1a4b1ce5c4ff346f5f536fe68ab9d816c98dd6c5ee103d251874b4cb0554f38ad0712ba687634882856d453daef102d3835cd81b5791a50ed5934a0734a81fc78c6ea23ab2d96b679866458c21ed50abce98875167361a62991052bfc7123cd4f9b5e0e98c4266536573742c431d9d343bcb9a8bc1e2a927496a71d73ab6195cd7194d31ba631d025570725e6b37abdd60a545d2cd2532b32a9548f1a319df6184614405832954d89a61dce3b5cbdb1ff691550117402c027da07b2b5bc20b25ca36b0e70d45771e3561526950a8216a7f09db88ee46578a107ec0a46f932751d77a167c4809c14ca056923d2f540692c9b8de07cc05a55aa5aca7607a5f5b071139620ad4309e2e3a2995a31059cb8f3d09b65f171bc3740df13cc63e51bbc33b7922951073ac3e51013b39a0464ea67a9d5a76546227ea7974e1b61847036d94e13201644d585cc7b4c9aa301980eeba05e9e21dcc5163f7802dd3557e0fd6aefa1305e2f84bc42c8fc057a4adb58d3545ca8d767ae622cf7bd3c3178b92c5e776695ba375fb841e12760656befcb915d6a51f2cac896d7380a879a41001ce067a602a73cdce00a4321aa880b7382407c3da7a3702f28a098719e3822d6d8c12c88b460e691dda17bc4f5b589f2b46fc773fefa492e1112cfac69392c80abc1084e68903be87b76364caf5fc82039015bef0c9fee65311407f970b695c8759287898ea39bba8f61fe9d48936b1935b2a2770d498fc2bb22df5980904759ba64f05230378266c8114a7b3a1a5e33129efb4a52fc163628c5c1a65a0441325b3f3b8bcbc7dea5c42c7897aa8956473d54ed8b6c56dc931d12a8092102490881b4e2064c5a9588e257834c1aea2668e69d907db5158c3cc7321d83b9703cb74864c1057660b718c3412cc47bb92612643313c356b6b2cdeac80ec5b657e78cb2fe9ad14c28747e45466847d71c49d1355aa845a5c0fb27160156d49a3af1d8b975d694186b06a5b1111ac504df3f91ce9a4b2e248697f9a972e7b0cd048c1b6f7581af20afae4c1b9333f60e73a0dd1ceb2e19887cc712d0bbb5c24054553c3c7c972e87253d4c46c971826e8955ac0017ca6d6550335916d6a939f5c167bd68c09d85650e89b40a4686ff0bbd921ac3e43641b1600a84bad0fec9524f09fc920916a31b081e88a36803715b1476e57ce39ec27fbb04256ca64fd11225e474b06bcac9657b31de3a39f4cab5b65bcd8896655eb924243972b0bc9b755b0c69b837030a07937652c8c14f71745572882d222ba1208327d3228f0778a215b8fe6f4a14a9b3a56ecc56f09c49ca31cda853db12a2fe5d395a00cce6621833e61c2cea5bd6f0bcc6ec6b479e334fa543229b619be566e8c00a1dc7837c7b5651b8b6a94412ccddb63b8213635a5745a54bb56198d325a59109c75d2b733c77738a1328bf1370ed99b7ed8f611e69c3ed82620ce95088a91c6c6d472294260a1c5455291188e010a9467c816938f9835c1a4fa01223494c885642e5c416c82223d614a108a1128e53d9b264d61d798c4ca9bf6abc72fe779346a3208a77542272b591a6ae781996ef17961284666c85ba91b2de5f0bf9af10eb91c5793e48fdf367f46f586e05b2dd65b262506043de419482071dbaa2568256a14825b8f094b796a527fd25b8071a4041a1be279c2e3f543021364a147cff6740ba448b7010b4ddba6aa90265a95905f141a9374970a1a071799d813ecd77073b453cb2b6d83ac9cb8267a5861b9e2f23d345581a074657554781e4782d98333f1237dcafa48087aa66de4209a9a78700b09d44a0b5c929ae6612acf6b5d8ad20404a161fdd3639e659bf88291d41711015432f0e7ac759a67e0324f94c1876314687ac377ae48a30b48ba9986714ef3064f087c953ac6f86430bba9cef9857b849315dc4379799092af4c5531fc13f63b186939040da2233be05371d448fa748d76f98c3f638a6bf5864b9bc5fbe496d72966e3004409e420bc4353a5d55d0610843d0b8e6ee5bb5d6c4dd1462ae99a43df586b398a15ff5b5ff58a4006987613f5caba694dc0f736f6d47af66673e8f308a6044338d23c817c0420e679ef621739e21a4a35140dd2928e79584f787671b118e9e71e1d9430b9a3210e11c266876a44c7082e7ca5f6dc4b8d931f5bfa302fc790bd424cc3643844418f6c090e2cf5bf60f08c489bb87315464d90006375c34a5297a238a117a8770cb9795776c11f8a54ff13adb3fa77df3757938c28d03a612324858a11a860235e0e15284e36035bfc0178db841c679a47b93e3b09a9f735955d6bce328a91f2fa64273917b7371fbf166c47e9683776aec02251eddc84032cb0a852594f4c7875792fa345a43a68a193c51492a39c306b02f22c60ce5a8468c3050cc3965e2982e32b938a31cab1f36c1da3ca723261be3a864e2912199262c46741fddca501df33d04a79f8e3017e6197ab24b062cd98486dce2a7ffb22e5798643cf9ba5fa06bb0ff42f4d610a7b3df7544d66b97a486967cd9b62ba0142ebb10b8ee4ee0f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252 + +# Official test vector 18, seed: "d5f23808871544e9c1d6eace2028362b48e225312f77663e9f78cafeb512b908cd9e25875d61a16ec615f4b8ff826856" +seed: 9f52af92ca165fdc38788f2b59ba02e01c8281ff7c1e60504688043a5fe814b04f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f +public_key: 6f22424d97bfe0b7cfeba385c55253559b0372fac0c533055ee490bed57446b637fd0c07c173b2c61345185a0288f1aa074accae383c75208fa03a6a175c3d19481e79ec833057a8d2c234ae9b01376c21bc75277738b17dea03eae594ea939e125c2592bcc95d3cb4f76a8d8383b318a48f7481b6b8419e8bb47cf1229c23c4800788cf91e465088a580762ac5d31616f114606c54efa9c0490298ccc23200154342dc7709a5ca5ca3a94b7a2ad8ea734b6e20a2d15acd47c6aeada3ef3331fcae173af5191ca8b74bee31f1b7506b595a3dee0899381111680ab02090429b93efb7b52a6884d401841a0d8193953a5a5f2417df927e5934c109722cfe18d0ff93a3df69d9cfa4d7f5801d3294771156e828924c65a18bc798006a1c8eefc3b4176634690c061b902738024c0ab981c3506d11b8f307c8f1cbc25ec764fdad76fb2117aff430c5a5a468f2966bbb877d2b8335ba3bfca985864f21a9912bea56a007e7223c7249b2e45a37db9c104438e76d16321289d4b07001241aa2f0a1a24d81c27a9adc0c768e1b3c72fa08e33f77c90f4cbdd530949b2b67da9a15f336b679937aa825989b9a450fa5f69304d37e585bc039a154257ee78907f689dfdb246d05c94c3057066d03a2f9825be6a52c3376efbea3fdeba68e13716d810b73662adda56bf30031b8f682c8ab08c4b0978bdf113b4432ec712ba306a63c327978224597c3b8155551997bb7e2881102d8b3eef786be65196ba84478c1c629f45a885db1aa4ca443d8a3300316608e8c2f71c6c7516ca5eb453cf9184bed2888ec592dcd53fed23b5ceb98cb575c474b51e7fd64d73d54f37b51fe1d432b2150ecd5b0dade606d83729586b2fdc60414a558c3c19122e47858675179c2229779b40cd882bfeb3059ffaa93552443fb70fcabb54a7015f8b6a0798b090fec5aef185cc95579aae5caa2b4923ddf65b2570c15b1b0464c086114975dbaac5a564cdfe02cbce8c68752000ee81a9eeac55d4a81be9b3c66aa3875761049565a46e305459fc7a47d75316b59a371cab01dc3bfe9108003d5f868b39ea617ce3091e3ab646db07ccc4a09367b352d1848b26e920100827c8d4c92f0c222d8482606233adbaba3005b58fd3248e67cc75733feb52a5acf5a41ab71ce0ab7e8fca8113261dd4b7297ffc9d37899ab40b0637c02ff1c73e81a02762fb264f51c849d387b9f7aea345b5e2ec44f2e0866b9574bcb13ea0d0aeb7a78d6dc7b5b0c9838297c05409bf90d86b3c1b59b92c998a8abf34fc490259289b431c5c5368acd762df8ca04e0235ae91bfd5332d67169aac2586deca4c8174386617ac98471366283f3d30a971c62f35322ac96a7b0c45779f6c17f1117a2f1b454e3557ce5733cf979156400c5a780a4da91ab8d99c4f98b141920731f361ec30950bd0c5653c83dba87658674c57473dafac42f293bee44034b9489ccfd5141ee42cd91b3c3cbacba092cfef6ba4b0a716d8162521b29853522356943c697a10948a50f27008d8a303254327c4570af822024f5b9aea82a62100856b2140015418a9ba3e77325b911a582e92a8b8e123816405ed8382820c0ce5ca491c0692b2b542b6a67ec87bb6b0334c1833e12aa958fcc0747802853f8536c1e24a0ea6e13ce23c96726b5cc8 +private_key: d95b5c5667b797b1797a73806df8906819743e0322070c80d97b77242040a2c6154ce152e2bacf89ba871dcb835aa873133a331dd3450bb51893cbc5b072459026552001c56e6a9ec0da3ace136b5ee150946406f032a475d8cd05c31c14897445ebbb24cba8a9e9b9fc819d752a5f6830162c89c4e7e16dc3b12823739d44c063f55aaadcb03d02c3325649afa5a63e26a23f16cb48091b388f503f9eb6751d44bcf61989fa953c10a5b8ea9ca81c56a04498509f380c1675b273415bc9285d0e765b0222927a979ea9a47b9103c0b73326a35945ec1cc870a693980cb73722b855690bccca1df9290d15b6cc53db8b99a89395994e3f39c13c81b9f3a313a6ac1407585ae1015eb2298defd84a5258a2e62aabe709c8243679dd85b82c08a82021206cf0424b7cab4df614aa21c81d931fc5f0bab9f373fc4a98484bc6fd5606af987bf57842cc4461014c4c737b6a52234153986aafd737d4a834971b96a711693716cdd1639f822a43936b94b7421bdd660503f3034c0c2596e8155684abc1e81c218151e2d44845d781e4a54f33fa8eaa0cae0d96c3509c6e5a973272c0b7616a929a579d6d9b83ca8c6631b87f94457312d9c58f66b20c04297b881d11e9c97357a9b0e50572b3430722963869ca2a1688f623b5a3224d2afb7bf6f4ca115198beb213679c210067a32219cb9557042018467863c10a4b449bea2b486a85ebc0ba8da9a3ca50a632451a5754b7eb0b7067c2c939bc192bdb8315427146ab6fe7390ab60264b0875fd2603d09466acb2694091340bc8c6df3fb8eaef1664b533c0e377bfd0bca39f801f40a92989619c41756af7b4cc7551c8779558ad4031a6459e6abbd9fc68103fbb95182c9576135e154a619180b1a694e384212fa89963360791666968cd9aa5ed3bc0f72939c24cda10a9f2a62aa4cba9b9d677c5df1282e47c29a790bdbdb664ddb30cb154d01da8e87035d62a099a9e9a47f019d6a769579eabddc851416fc9a2f144b2d2c3fecf889f19a2acc434919a89d474ac628c03ed6050b3503c2ccb4612eeb831ceb76ec9798c2738429dc10386b36be606622d2152db389b200c219e4957bb6ac6f59739bb60de382c88ebc442fc16e5b55cfdda0c9b78a18b07a5e72ea3927070d7d15951f87b0e09bbc631bca04fa0d5f4630fd04a16d24bbcf351c806c07c32aa05b19009b66181413c202536d52b8946fd8bbc65215749359a3687cca6982c3ab0435da4edf454a69b23726c503cba4ced872311799c4ce57c0e1fc48cff587c4b552da83b5472353c711c6f220bb72540cfa651352287e88d0624df8248b17914f654a61ac0fc30856cad09f5fb984a8e334b5333c3010c1bff26fa7164058b2343fec330f4c2e93b07c7e568d6f437c0a307131c70e0821637519b1673a3846829ae11ca2801b5a5eab191ce686ebd2c2a8695f357bbcf18c95c51591b67aca77521de32b1426173a0e059686007508da93ce9089bbd43479183d0705496d1709ef41424219054be29ec816868a95146ac5106e261d6331a692306bf9013207d60a7f1519d0d7ccc03755eb5c31a2982a81339cee7b810727471d447df481b87da70f7651b7eff647a2eca76f22424d97bfe0b7cfeba385c55253559b0372fac0c533055ee490bed57446b637fd0c07c173b2c61345185a0288f1aa074accae383c75208fa03a6a175c3d19481e79ec833057a8d2c234ae9b01376c21bc75277738b17dea03eae594ea939e125c2592bcc95d3cb4f76a8d8383b318a48f7481b6b8419e8bb47cf1229c23c4800788cf91e465088a580762ac5d31616f114606c54efa9c0490298ccc23200154342dc7709a5ca5ca3a94b7a2ad8ea734b6e20a2d15acd47c6aeada3ef3331fcae173af5191ca8b74bee31f1b7506b595a3dee0899381111680ab02090429b93efb7b52a6884d401841a0d8193953a5a5f2417df927e5934c109722cfe18d0ff93a3df69d9cfa4d7f5801d3294771156e828924c65a18bc798006a1c8eefc3b4176634690c061b902738024c0ab981c3506d11b8f307c8f1cbc25ec764fdad76fb2117aff430c5a5a468f2966bbb877d2b8335ba3bfca985864f21a9912bea56a007e7223c7249b2e45a37db9c104438e76d16321289d4b07001241aa2f0a1a24d81c27a9adc0c768e1b3c72fa08e33f77c90f4cbdd530949b2b67da9a15f336b679937aa825989b9a450fa5f69304d37e585bc039a154257ee78907f689dfdb246d05c94c3057066d03a2f9825be6a52c3376efbea3fdeba68e13716d810b73662adda56bf30031b8f682c8ab08c4b0978bdf113b4432ec712ba306a63c327978224597c3b8155551997bb7e2881102d8b3eef786be65196ba84478c1c629f45a885db1aa4ca443d8a3300316608e8c2f71c6c7516ca5eb453cf9184bed2888ec592dcd53fed23b5ceb98cb575c474b51e7fd64d73d54f37b51fe1d432b2150ecd5b0dade606d83729586b2fdc60414a558c3c19122e47858675179c2229779b40cd882bfeb3059ffaa93552443fb70fcabb54a7015f8b6a0798b090fec5aef185cc95579aae5caa2b4923ddf65b2570c15b1b0464c086114975dbaac5a564cdfe02cbce8c68752000ee81a9eeac55d4a81be9b3c66aa3875761049565a46e305459fc7a47d75316b59a371cab01dc3bfe9108003d5f868b39ea617ce3091e3ab646db07ccc4a09367b352d1848b26e920100827c8d4c92f0c222d8482606233adbaba3005b58fd3248e67cc75733feb52a5acf5a41ab71ce0ab7e8fca8113261dd4b7297ffc9d37899ab40b0637c02ff1c73e81a02762fb264f51c849d387b9f7aea345b5e2ec44f2e0866b9574bcb13ea0d0aeb7a78d6dc7b5b0c9838297c05409bf90d86b3c1b59b92c998a8abf34fc490259289b431c5c5368acd762df8ca04e0235ae91bfd5332d67169aac2586deca4c8174386617ac98471366283f3d30a971c62f35322ac96a7b0c45779f6c17f1117a2f1b454e3557ce5733cf979156400c5a780a4da91ab8d99c4f98b141920731f361ec30950bd0c5653c83dba87658674c57473dafac42f293bee44034b9489ccfd5141ee42cd91b3c3cbacba092cfef6ba4b0a716d8162521b29853522356943c697a10948a50f27008d8a303254327c4570af822024f5b9aea82a62100856b2140015418a9ba3e77325b911a582e92a8b8e123816405ed8382820c0ce5ca491c0692b2b542b6a67ec87bb6b0334c1833e12aa958fcc0747802853f8536c1e24a0ea6e13ce23c96726b5cc886538ecdf65b7a485b73a34a72193af1ea3f884d820463601c7f843672bbec7d4f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f + +# Official test vector 19, seed: "822cb47be2266e182f34546924d753a5e3369011047e6950b00bc392f8fec19ea87c26d8021d377df86dc76c24c5f827" +seed: 851ea90fd3854cbf28fe39fb81f68e4b14345cf0d6eee7ec4ce772513df8410d1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf +public_key: 010510677c6c12c76cf7149f35031c8df3b243140f9716a571f62a5365a0830169b612abf0075ab40132d51070aec5566fe953382ac3a3705b8566064af52b926b765bc039d6f86ab8b27cb93b809e670da4457bfb8b6be9aa54d9b2bc94eb0c3e15ba6ce2b08ad229a469312a5caa04c8a4fca7c76cf905c6fc4d32127d84981608810a4752b9f26baa12665bdf30882d2a38200798de4a5f1d3bbb571085ab091c03e896f25b8759e43795dc83c2069fcb2cad05b166def78d18b920e0e59853c66bcb11795f604963ac3af33b43f78252e06b39d11449012b0b35bc65c2562a66f7597302377eb13119fb4285d5613d618c2227a8a187b132b08bf5b154745451fa627e0587c24118573f3628e3da59e96c6a66d26c2880c95eb1abd96202b3673bd64a74d1b11396aa406d378183325c9d03b8294177d3d6439fa79a2a6457d9f81ba8134bc781c575413e40082c686ac2f59c3fb45a580d3a50add274add391a09cb6c559623c997da498c1d002b0f9b5254c26266757849e7598c941333d580a11a1c197617b23d98b7da60b6af0521e287f8b0cb21522236395a60af9ca4dc7120925a4bf497e2ed65bcce78a33555ea459197bd5a499bc7c2b788872916ab3b961f25094cc96659db67bfeab52260456bb775f56e492564456c5d25f3d0c9bbe7118615aa37b21547255112e590eec52928173292450abf2e834f6207751b068200875d7303e3bf7141f28aec8653a463a774dbc33772849385304b42c99d3e531b0376beb153a56734887c1cbe59b55bc3cbb32da63d908345b200cfdd6303f3999bc873db53342aae6ccc789b2a4c72c7d08a58feb9c939a3214aa3b2bd27ab108aa89682e08729cbaf93a68613a8f56b7764c23cf085f6a970d8abac213f7314128aa64da213d5a53d2475f7002a6c354c1181bacaed645fae9c7509a0b10c8317f714d37f3791c03ce39c79aa0548f88a69dd6f87dd49a8e63307331e00c5c5b5fd7d9804f3c57028c2d3fe65d87ba7c07624fa35754421c4eea618cda1c5434b09acd0754e04439240988ebfb5f6d6a43c0683a287b5686364fb9fc6a62551916046442004caa42428dac71ef5879bebb09c5dc919076620b9701a2d8af248672e2ac0107c62159511cde45120ab84993fbbe65022dcaa6369508212d7a915183555181b1b9610dd147516f2496eab20f727724d7178357f50e23691c29400bf461c389932e2e663faf31ac53273058ba675cc0c3367c4872383f683a834b4a522b92276f70022153aaf4622f24f439a0d382fbf5059744c487013501d41fe9a99966506f2f5651b3ab0fd0a73c02634dae9695e850c67b154455aa749922229090b621e259d1f193b524579690262f94c114d9c690e170e526a99f5149a2840129d22c740cb5b2a50ae7809388147b943a4263d50ce72a2fc2fb6efc85c065502642f015d6b83aaf0880b715983bac12fed75b1c973046c79f72436a420b790543349b917fc4c3b18db80a1ad346389180fbb9bba1a6a8a0f0a62e6c24d580a16580c682553134738d0cc1ce766c13bf74c82ef5c548f79de19a0f2a9236100a7adc1b2f1e1b1d0066b9352ccc40663d53b0af0df9ccd6353381e5030ac08c3920847f233164df98ae8ab017efb305fcc83fbd22ea59ee59bb +private_key: 9d897195e7139d5b6b8075aeb5d176b60bbbad949d5890c707f460341c12a79ac5e18a9126c7c2d0d59456d1ca072034706bc5444519fbea529b17b3306113f73c840ad3bc015862de98ce93344a849094ea71a6d5b1742fd2a811d389ca465419cb8aee9b2dc3961c4723a7bffc96acbc79dc4b17c99b4022655d7ccc0a645981b990ad8ab7b9fe6a69b511731c84a2df77c2bd917f1220235e91ae5fe91e30573dd67a16ccecb18f4b9116958f812c7fbccca50ed732b3b946645b409b74bbf34c3769757c0aa0a04d690fc2c14df10b334c089adb54cf6b731377d433cafba345dbaf06366eda0975aff207e0d545a31aada7f85369b62f7d1983997a542e899aa2651a0f3417b142bf1317aa9b766de2135546fb2224d5aa298bb4a90b4aa92a11ede75f441734283a2baccc2f2b851a6c314e81ea510c7a31f85855fe55ce0656a88ee689339495d5c293f483bc67e49c86644d08d896681cb2d28278dcfba73c2bc2e050c9e277ba7aac072724b7c02c2ff0e24a48ec9d8b46298d14657fc74dabf368c6b0272fe3a5ad280130936a2db57e5d971d18916ec39b9960c73e2bcb5697e9690900b9f25496127a58d50062ce88c0f3ac9dc60b9a9f82406e0b0f7c6898806807f6bb9e0945b7563136cabbcaac04c6b0ec8eaa60c26fa604b073a0ca8a925ac99bce9bce26fc7ab69c9a1509c7ae8c97e006b5b8f3a99db2850332986d65b17a67a1d2cc80d476cc3a90cd419920e302074925375987cb7d268ff1eb4adb07cc4d133c381b47c40b42311a8f21881f50ea68343483ed6bbf34344d710c7e0f769eca3388b84c62688b4cfec37104f0717cda20e21b871e267fd275826da7aa92b372fac774b1611b18e35dd6db3e52a58c015a8badb33c54a60aa4005d55eb16af7547d217670a621908a9b25bdbac84753495c244af191f7d73ac08c94b7c1b522916790a245d6de2b274250159f89bb47a1e7c0850cb97bc843a7a29e594a5428c2ebbcca5a989993934b9a36ed1e7561663a8c9d400ccaa7d5cf4484cbbc80dc6b3ac20926b3a49941903c4eb41fb988f0d77a8d26c2c68a14a0162b926f4bd8a26c45e76c706f68bcd738626a2afd235638f6741d229427ab4166920850db4661d4019fd7ba362065aced015ba3259eeaaa4acd2cf8b1189e4e1c4a3d67982d942ff2734e3434a45e842e157103890c7d3510134466884bc16d7078430e2048fcb58ff0717a5e6987999a5400973809c30cbcca50efc4ed5c1a37f3a0ec71842d88b35d53c49b040bea967a8466772e9e3486306a0cbdc449db2099c349970e8462093b398b7ba10b505a76c4aedaa4ea661af1a712a560417cee26c4b109d8be72b88467752f5cefcc752ab3c324d2684b1145f4e7715e9d98f0a1bcd3f1a567676a138213e202aafba10c15ac75b45e06a43987d9f6c07de147e05f42693d12f9a8877a2cbc7f2e81ff9540ac09bc620527e919542fbe53379519f35c70a4e0ca6f0253caacc2ec83749aeba42bd4a0fb6902946da8320ec2e7954bf2a184f94a31e58c505b1d1ab9c3a19aa8a3c1da7274838c768e21978982f95c41998058c9b58b861b1090a5bc3277a1346f2108db4c0399454010510677c6c12c76cf7149f35031c8df3b243140f9716a571f62a5365a0830169b612abf0075ab40132d51070aec5566fe953382ac3a3705b8566064af52b926b765bc039d6f86ab8b27cb93b809e670da4457bfb8b6be9aa54d9b2bc94eb0c3e15ba6ce2b08ad229a469312a5caa04c8a4fca7c76cf905c6fc4d32127d84981608810a4752b9f26baa12665bdf30882d2a38200798de4a5f1d3bbb571085ab091c03e896f25b8759e43795dc83c2069fcb2cad05b166def78d18b920e0e59853c66bcb11795f604963ac3af33b43f78252e06b39d11449012b0b35bc65c2562a66f7597302377eb13119fb4285d5613d618c2227a8a187b132b08bf5b154745451fa627e0587c24118573f3628e3da59e96c6a66d26c2880c95eb1abd96202b3673bd64a74d1b11396aa406d378183325c9d03b8294177d3d6439fa79a2a6457d9f81ba8134bc781c575413e40082c686ac2f59c3fb45a580d3a50add274add391a09cb6c559623c997da498c1d002b0f9b5254c26266757849e7598c941333d580a11a1c197617b23d98b7da60b6af0521e287f8b0cb21522236395a60af9ca4dc7120925a4bf497e2ed65bcce78a33555ea459197bd5a499bc7c2b788872916ab3b961f25094cc96659db67bfeab52260456bb775f56e492564456c5d25f3d0c9bbe7118615aa37b21547255112e590eec52928173292450abf2e834f6207751b068200875d7303e3bf7141f28aec8653a463a774dbc33772849385304b42c99d3e531b0376beb153a56734887c1cbe59b55bc3cbb32da63d908345b200cfdd6303f3999bc873db53342aae6ccc789b2a4c72c7d08a58feb9c939a3214aa3b2bd27ab108aa89682e08729cbaf93a68613a8f56b7764c23cf085f6a970d8abac213f7314128aa64da213d5a53d2475f7002a6c354c1181bacaed645fae9c7509a0b10c8317f714d37f3791c03ce39c79aa0548f88a69dd6f87dd49a8e63307331e00c5c5b5fd7d9804f3c57028c2d3fe65d87ba7c07624fa35754421c4eea618cda1c5434b09acd0754e04439240988ebfb5f6d6a43c0683a287b5686364fb9fc6a62551916046442004caa42428dac71ef5879bebb09c5dc919076620b9701a2d8af248672e2ac0107c62159511cde45120ab84993fbbe65022dcaa6369508212d7a915183555181b1b9610dd147516f2496eab20f727724d7178357f50e23691c29400bf461c389932e2e663faf31ac53273058ba675cc0c3367c4872383f683a834b4a522b92276f70022153aaf4622f24f439a0d382fbf5059744c487013501d41fe9a99966506f2f5651b3ab0fd0a73c02634dae9695e850c67b154455aa749922229090b621e259d1f193b524579690262f94c114d9c690e170e526a99f5149a2840129d22c740cb5b2a50ae7809388147b943a4263d50ce72a2fc2fb6efc85c065502642f015d6b83aaf0880b715983bac12fed75b1c973046c79f72436a420b790543349b917fc4c3b18db80a1ad346389180fbb9bba1a6a8a0f0a62e6c24d580a16580c682553134738d0cc1ce766c13bf74c82ef5c548f79de19a0f2a9236100a7adc1b2f1e1b1d0066b9352ccc40663d53b0af0df9ccd6353381e5030ac08c3920847f233164df98ae8ab017efb305fcc83fbd22ea59ee59bb27757389a4a68c898dab92d0f63c3340dfba51e00312a05e721932b95b11f6da1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf + +# Official test vector 20, seed: "81401db81138d6874e91b7c11d59596e4ace543f5a3471b6fb00999221765fec3ca057abe20f03b2d59003375fd71fe8" +seed: d304c9389cc973477f169788abcb9d511f843219d246a9b587822f422a70c2386590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 +public_key: 801c4c929171c164522aa3ac2361b8c80b8cd3e644f7d169f9a20380bc575968901ed7783b6969c57461dd879d4781bda106a913c629be512788d4c1f92a71f9f819ab7207d1a65499e061c5e0447360b4e70503bd58511e4c3333556b75f6a8945b8661d0572c764c82ca70ec870ccde0cc5810b816c10a46491e091c75f8b24eb975867e179d38345bdedc627a725b4d732b7b453d9b15710fe7afbc55beb26c77e9e8a58bfa764fa430f1901928fa4ea1eabe2ee827d44191708310b5e708dea4c5242a8949f658b548a2ad1badb9a6322c56697b513bc1c29872b56fe1e32d9271b44ea0b43bb896ca9a7358f45e1f1821fcb361c6ea91abca91ce95a75588402d1217d1e37a80b3c880aa83c31c5683783e3bc77bc231afc0172beb9957fd7228d8589bc171a2fe24757400cc7e9cab13d90a2cc12b771725e0f2180acc221fe5879a317fb93a10682044d6e22ac67c0722c1062ee70959333c08aaa16bd9cc1b624405f40b78411baf7bcb4af46b80ab021d7c8a02ec8d0417b759cb2dce94409be96f5b5abd1e207a9b906c71c18c763414b2d48d77c19d8e617dc4e41c3328ae39c18aa9aca985964597686c919584114c4b2429308e123fbe9a8fb86327054817bca07df8c7adb4e2a941742395cb6ea24c6106eb95cc0868f8a6452efc5aed297d933919b39a8da93137925b87ada9a5cbfc5a541c2395bbca59f95ab2c4a5352831f0d143dac60b418c2051390396326d49e27b7b6159c43b5de3e40d05956dab59088f417302588e38c1a21261c62abc8891e44ec4c7395421ac09e1b448bc2349dc88c571c74e470474935ec58001be48b854a13d9855b8c87131985c91484a695ce9931267c1d0d0b9ceb4bc7c4a11676c267958566d59431a630d4ecaa8beb98bafd22172a30e14c9acdba26922f0aae067c9a0e9b658630873139b9555b63a73bf8c65319d9423d4a927abe86a95b383a7c0c8c54170dcc70a535b1fd814cb6c87900ea94eed7b51cba571dc7b5e6370bf4928bbb27b1f66d770e43cbbf3ec0c615521e2b8adddb42971a12db3a208f6b690289b059913760471367b4154113c14606c046a9591aa744683c4024b857293eb0e02ec7c75270c571248c0aacfa7e47a35e72157877847db1efd73c0922cb211c4538d018c05382e9c97c3d98cb375f78d056196466519baf3312559315796ce3504731e811432a83294d75d8365391fb348f0136a7fd90921fc3844f57d286845d6d663e855b50d884f511a2020b09048298dc4da2be4a8398d260ca4735d84f2b66b2405d48032cf3174fb36b325e723af241d280863b4d2099fb429c0414433786d33f880d7a15d3fe019e75861c7836490ca2a5b0771ecf904f794c746b4244d99226899c847814967454d7a4aa0fa743e2d2838bc9461446b61d9b006b4240098f37021c7631131a84bd75d33374b9067aff5e900c4d0490995875606a7baf87b8f4960dc84a7eba96f4055ab6043c9fab61fbed883705893aa89899ab975284867f63035a392902a779c8df9cc63a1b944943691b770a9646cc731a93f6cb3dc3b183b71429770032d08a778217f9b72bb16ca81f07c66d436396038372aeb8edc031083d95399084751bb9f3d32490393b510796c16c630cd2d7e0666cab62b5d904b +private_key: f789391672b25e088e06ab6e0167cbfd56b01c01876cc67ea0cb13a4491472c4710f9cafb5d1068c207fa9875879dcbf60e78bb6236f2f00bc77f81b98d74da1f3354de5007c0b5243d15dc87282f2b2c298a5324f35cd2e6327a7008c51d2815d833e17f09b91a047d15b25e0c9782d34bc474a973ebb1585a23bdc22811448299a0a6d42669b31951da1f949e8573292089bf6b0b866f4cea0bb110fa5435550c11c477622b6c859691be5683198c198d2960f8932606dc3310f3193663abf161bcc6e1521a3c527b946a8cd20bb9c4b0627e9778e521ed5ebb7d727c79b687214c1c55b9a5da230598ec71dad4ab1833911e991531f0a32ed2a773d05a9c166cd4cf4c625f3665bc80bf1d46f88560800ec2c04a92fad947e406b8a14061642d879b6f14a4b2651d3e1c502322b256a7c0fe403038125c9f5412b5c0fb62bbc8ee41dcf071c5236c4d54621010a088970c956a5588696412d75b9e6f5a920481349634956a9a097cc8a0a5897a6fb60cc103aa1136131c5b30f4469a73c52d43578df35914d5436818a16d3eb44ef9760922c354356279b793a05a93214ac499b454e4b66ac1c1188e0c8375d0221c8b80012f21305b57ab023b822ba5de2d96f4bc0a2420ccc8afb3d9a983a59a46d4a32c3ee764b0d696669ea5b458816be782f3db39df35b6624a59f092782c886806d8503ea4c177e7385fed9c8d7416bbb9708cf8cc32a2b3e198b2c93bbbebb7aaf53f811ce50cbf173a92580861af698451c77fe1556d79a486dc75dbdfa3a09eb150f477c87857b0352418c4a66c57a0f73f60a16941ca247b4981c4aebd24985062b1fbb2f85323f87f248a71657760c8766900a1f260f2f9b2a4bb1073746ac6b73998b6171597b9d7fc42b873271801b6dd111162f7b2ffb55b044e08983f6ae95f731d0c32fb8d3108d4a048255a42ee290d33031521b46579c864cc04652e59252a3bcf315577c31695d6c8e44517b5ff76a75acc608b180a6d10842c4c92aa0ac13a5515d6c21ef25cdd3f81556f336f1da4e7fb89b73c195dfd5c772b5abf20223ce84c297b32e57a1467225314c37a27eb43f0df947b8baa3cd38b6c5cb2e5a99cc35b9637fdb1ea82c5fc3ab3c9db9cc9491b6095c499a2377a698b5b77799b1d00412d0c258d48e86801bf267cb01f17d335bbf4406463ed9c6575b10ba16622c888517579d68129603b0bdfd8284351183b6114ce424557eea2d2986bc238c85d2a1443af19b8d7051e84ac6ecfa8339d22deb23472a856b3056cd5b280c3f395f2b2370df8752827602d64bc033b26b1970c9c8f020d41c15736190db9a5ba1a87afe9575e7918e502382d9f763bc3c5b7313c8539564df19c1deab0ff7ac7d3c48981e5ab31691c0a52c4818611456481668ba8612f410b78c21a68505335b8f4519c7bab53328a700763a6d95163f75dc2ba489ccf92cb2ed1b72f2d904a54c35aa0c8397bb06cd676b28cb6d1e44502550c9d259a05204272b93600b09244423a63b4c753b69529d2b3d16114a836273fc702f17fcc046d7205e47c0903541f519641981576409a35fda1e3e76cceb8109ef446338424aa13a741b38acfea91a1c4795925026801c4c929171c164522aa3ac2361b8c80b8cd3e644f7d169f9a20380bc575968901ed7783b6969c57461dd879d4781bda106a913c629be512788d4c1f92a71f9f819ab7207d1a65499e061c5e0447360b4e70503bd58511e4c3333556b75f6a8945b8661d0572c764c82ca70ec870ccde0cc5810b816c10a46491e091c75f8b24eb975867e179d38345bdedc627a725b4d732b7b453d9b15710fe7afbc55beb26c77e9e8a58bfa764fa430f1901928fa4ea1eabe2ee827d44191708310b5e708dea4c5242a8949f658b548a2ad1badb9a6322c56697b513bc1c29872b56fe1e32d9271b44ea0b43bb896ca9a7358f45e1f1821fcb361c6ea91abca91ce95a75588402d1217d1e37a80b3c880aa83c31c5683783e3bc77bc231afc0172beb9957fd7228d8589bc171a2fe24757400cc7e9cab13d90a2cc12b771725e0f2180acc221fe5879a317fb93a10682044d6e22ac67c0722c1062ee70959333c08aaa16bd9cc1b624405f40b78411baf7bcb4af46b80ab021d7c8a02ec8d0417b759cb2dce94409be96f5b5abd1e207a9b906c71c18c763414b2d48d77c19d8e617dc4e41c3328ae39c18aa9aca985964597686c919584114c4b2429308e123fbe9a8fb86327054817bca07df8c7adb4e2a941742395cb6ea24c6106eb95cc0868f8a6452efc5aed297d933919b39a8da93137925b87ada9a5cbfc5a541c2395bbca59f95ab2c4a5352831f0d143dac60b418c2051390396326d49e27b7b6159c43b5de3e40d05956dab59088f417302588e38c1a21261c62abc8891e44ec4c7395421ac09e1b448bc2349dc88c571c74e470474935ec58001be48b854a13d9855b8c87131985c91484a695ce9931267c1d0d0b9ceb4bc7c4a11676c267958566d59431a630d4ecaa8beb98bafd22172a30e14c9acdba26922f0aae067c9a0e9b658630873139b9555b63a73bf8c65319d9423d4a927abe86a95b383a7c0c8c54170dcc70a535b1fd814cb6c87900ea94eed7b51cba571dc7b5e6370bf4928bbb27b1f66d770e43cbbf3ec0c615521e2b8adddb42971a12db3a208f6b690289b059913760471367b4154113c14606c046a9591aa744683c4024b857293eb0e02ec7c75270c571248c0aacfa7e47a35e72157877847db1efd73c0922cb211c4538d018c05382e9c97c3d98cb375f78d056196466519baf3312559315796ce3504731e811432a83294d75d8365391fb348f0136a7fd90921fc3844f57d286845d6d663e855b50d884f511a2020b09048298dc4da2be4a8398d260ca4735d84f2b66b2405d48032cf3174fb36b325e723af241d280863b4d2099fb429c0414433786d33f880d7a15d3fe019e75861c7836490ca2a5b0771ecf904f794c746b4244d99226899c847814967454d7a4aa0fa743e2d2838bc9461446b61d9b006b4240098f37021c7631131a84bd75d33374b9067aff5e900c4d0490995875606a7baf87b8f4960dc84a7eba96f4055ab6043c9fab61fbed883705893aa89899ab975284867f63035a392902a779c8df9cc63a1b944943691b770a9646cc731a93f6cb3dc3b183b71429770032d08a778217f9b72bb16ca81f07c66d436396038372aeb8edc031083d95399084751bb9f3d32490393b510796c16c630cd2d7e0666cab62b5d904befe6e93d8e755292fa875609f2f63bd194c87e6f04db7c83d8bb1b9d868bb7796590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73 + +# Official test vector 21, seed: "30b5de5b73681ec08aaa03f6f2d2169525d25f4042a5e3695a20a52ca54927b85f8bb948fc21df7defc3910b28674994" +seed: 89a6e3be304a3518fb82b18ca730f0b359cd6ba90664a493fb4f8edaf965b9c3b6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 +public_key: daf0b0019241e200929c660cf7770e111043c8dc4af1014f7ceba48a445815408b2823666c6b40684616d823c86787a412c26e521ac8c16868d7eb5646909027820444b8bff59ab46086631d5a0761a75a79d76468b74fd8c20cb9784929f2a78ad1882a094619325cdfd05de5a30d622551c840ac79b0b5b7a513f702cf58333f8b0382ce055a4c138c80764b8f882cf14324015212034581b2876efbc3ae9687cdd7f2acb964cc18ba90005730d55673bd519be3173d3e231166c7ac0193a4fd26085bcc6607d4a6f73367efb5ac1a1a063fac0207766da41901b8a61ec7e45bcdb73584b5891ef112251a84e9c07ae7c16f52362cef10aa3cd69927db4175ba47e225a220dc2653a58dc9854210087ecc2486ab13408f92bf902635d2ac331ec1c95402bb55b73b5cf063d3885fd1874d5b03100a993eaca11e978393ff33a31b6a98f72479ad9b88d3d1395c2726ed285b793c489e09a8a7bc744b361ec87427c399290d092a1d58a5007ab2209044895941088a81b1b44175ba3e7b038ed17b1b0cd5bbdd1bbea3f58812a51ae58216b1c18907f131a80897353a328435b927d377a45a6be2310cb22076cc428371d4b772ebcead61c765c875312cc91e73b20be811706caa4b52b089ea1e43d7b61cf4b705c1b7b3739fb92c53268a685c03723b4bc316f679f4d8b87375a4188382e711b1911502e502a3f523bd5531b30298815717ce2211283cd675ef106ac5d4c37a6809d7e3bf3e3c40c6c5092c34198659849713c090db27c78689c6d57ddc90c04bf1af5cd56b11c013ee7126958aba8ba7284ed58828f1384786379eb0bb2b8c50a504a3b0fb83eb5964ed6c20b908731ca5c13d980d9a1c0af7c7527da50262c65f7c2132355aacebc1ae5fa7059e7310d6d95da97871c50a17c0d1c68dcb6bd7a9a697b9bd9bf15a643748c83bc8b244058f0c93e7d1a99111ac6f046a5cd1713d977650935ca5925d6e10c84c7ac692527e27c8465ea46fce97c64dc66eb1110188c7a3afbc94c1423a845b3530e35540805c881b999a6b28ef185273e584b9acaf26746829fc6b1c88ac03578f98e71b67f5101de2233c841d2f303c52a500b3d1bbca883fe49b5a233b270bdca755658448666dff384efc9cb26a664106c49aa46c4237d9ae0ef37df159a0c9e880d7247566113c12bc4451f4c6b4946cf76c7b57f737032741a3047934b09e697acb2210b05b17047ea8a460e4cd9e7068b4202a8912812a04286208202de04d0c91b9d62992de76497dd0986917592e9902f33c4999916576eca4bc8495fc7233ea94671a3588adba1355804f1c475ebd788d683967aaf9b07a3cc9ec4c2c91a61e0456c18dda1a238132d2eabff8002c0ea6ad88d3ae3f4769e298aaf954550fa3cf86944184da2cc7303f1be393b6580cdc1a0e55bc3be7300166d570fc4b8644156cfd6c8975c29059c7a550d4b63d242b3e11b887a31bf764a911ac62801a6845d6589b0acc55e4c80cb37a3784ab8c048abe21204b152069fba2d6b75cad8ab3f133678889a99d346e3b49c0c41147deaac27bfb7c8aa3810e3b74bc0b205f02753a48457bd4b7b624a3fba1443217a88c65c5f63a0793951666453692c56b790391a7c9297e5224771c7a441d5363741dce698c33558c584f +private_key: 0fe71ced368f0f36b7b8f1be4802ab897c8919617030a5381945883b69ba1b456a2704c52d3a24a3dc3e8c35c09655cfd6c2c0f14489a1db0a991cbcfda5b52d708fe30229c272acdaa3b7577cae68845776579ace017b2c0112adcc57ce39265eeb0c5b2585ef868b6bb56a74089fe2373294298809d820499342c7fc5343b85493f30e773668c790aa55234ae7a230fe2cabed5a55d4699b6e14155f5793300676533c230f529f8c762ff0520ddb9b78894c241181b69bb09e3f7645391367499c707cb4454353b8f6d86fefd8a3383b00d35089d6a62be348645d8c03d5e815810894b0e962e1c5303fa5580b8483b8556f55a62d49da3257f63e03533c10b74190134f1cf3530c025bb0035896628927e8c3c926b27ac05265ec90da933104232b0eaca457c9131f95069f40141db8239c483cfccc26a2f41f5b7533bcc26f4ae13ebd26986227bc4501a3f5d74d11da48bf1336a8483678a4be53154bcbb62d609733fa678fc2f946ca4c5de03741ad6b5becba4a9688c455c81b4aa528c2515c9cd33c2d071c1cd96b5b483797e9616b43bbee62088e5987eceb1a7b3217a31c37494568b40b453147644ff6b199465266911342b3cc7026b62338413827b51aa16ea0066c0e4228d0887775b89c4858a46e018e5368ccdac224ba600ec8329b0a75150b82b51fdc5eedcacb9589c870b48f02338dd3bb99501a6c6580ba52dc4f98b66564736c3f9ba887eb0351b60df54057245c8098dc440e76100d4a4d572a7f34f80d5742833f41a3bb9508359801ed187b2e94a97472c9da7374d33ab4bd425c7592cd0eb155f1d90ff1a03867599fa4c693472233f2f8c5cf86c89be5921e607566c226c515cc27447d7c6970eee6851ff06238ca9b8b18058f77357590b6e88b5cdd2c1ca7e477b25a21b2a586ba231dff318f972a1805b280df4445545a8c874053f740b462725007748dea3866df03c1b68b4d3eab9984837f0958a905ea14403a1f135c4eae2299acbc5986dc0cabe31de5459188365bb20aa917894967b39d535b5a022c5f2d02cf6431afff02b9a52162622249871b537e10cb53aa14d301b0ab13216528893b08bdf9145bc56451fd251dd0a926357303860909a1e132ffb58288752eb9cb5629591247d3456113279ca92dce372f877a42802c1dcdf175c2dc159a082c0727122618761d667b80a272244ac8b34b56004580627ba261749849c0a5986494ba851dcbb0bec8a75b1355656a824a6f37bce21cbeb1f5a36fb1639ee743fae1ce0cebb973d2a0e6ac024f434fac8882715146a5d0cf3f3ac4a6374a672b3dcc122f2ccc37d4d8a60fe34613e2b5f828674c8216eaf0402f319e3fbcc1bc9620ca698b42821312289a2f511733611ac45b0d1354b7fc815afbdc7ad8ab14f1e43f7ff73eb626944b97044021761d352468cb334e1abee2e7a7d07751a34b35c9f2492f258791763be524a00e37a3cbd31c86371cfb71388fea7e67a85c3914892d216aec165eede03cd02233a5c97af27c5ee0219c8fea7364933fda62a3702a05c207527d79a4aa44277e3ac03874c14588bc60f32b5cf60226d15377884c1b37272507915fe97be0c4aa282560ba5b2ddaf0b0019241e200929c660cf7770e111043c8dc4af1014f7ceba48a445815408b2823666c6b40684616d823c86787a412c26e521ac8c16868d7eb5646909027820444b8bff59ab46086631d5a0761a75a79d76468b74fd8c20cb9784929f2a78ad1882a094619325cdfd05de5a30d622551c840ac79b0b5b7a513f702cf58333f8b0382ce055a4c138c80764b8f882cf14324015212034581b2876efbc3ae9687cdd7f2acb964cc18ba90005730d55673bd519be3173d3e231166c7ac0193a4fd26085bcc6607d4a6f73367efb5ac1a1a063fac0207766da41901b8a61ec7e45bcdb73584b5891ef112251a84e9c07ae7c16f52362cef10aa3cd69927db4175ba47e225a220dc2653a58dc9854210087ecc2486ab13408f92bf902635d2ac331ec1c95402bb55b73b5cf063d3885fd1874d5b03100a993eaca11e978393ff33a31b6a98f72479ad9b88d3d1395c2726ed285b793c489e09a8a7bc744b361ec87427c399290d092a1d58a5007ab2209044895941088a81b1b44175ba3e7b038ed17b1b0cd5bbdd1bbea3f58812a51ae58216b1c18907f131a80897353a328435b927d377a45a6be2310cb22076cc428371d4b772ebcead61c765c875312cc91e73b20be811706caa4b52b089ea1e43d7b61cf4b705c1b7b3739fb92c53268a685c03723b4bc316f679f4d8b87375a4188382e711b1911502e502a3f523bd5531b30298815717ce2211283cd675ef106ac5d4c37a6809d7e3bf3e3c40c6c5092c34198659849713c090db27c78689c6d57ddc90c04bf1af5cd56b11c013ee7126958aba8ba7284ed58828f1384786379eb0bb2b8c50a504a3b0fb83eb5964ed6c20b908731ca5c13d980d9a1c0af7c7527da50262c65f7c2132355aacebc1ae5fa7059e7310d6d95da97871c50a17c0d1c68dcb6bd7a9a697b9bd9bf15a643748c83bc8b244058f0c93e7d1a99111ac6f046a5cd1713d977650935ca5925d6e10c84c7ac692527e27c8465ea46fce97c64dc66eb1110188c7a3afbc94c1423a845b3530e35540805c881b999a6b28ef185273e584b9acaf26746829fc6b1c88ac03578f98e71b67f5101de2233c841d2f303c52a500b3d1bbca883fe49b5a233b270bdca755658448666dff384efc9cb26a664106c49aa46c4237d9ae0ef37df159a0c9e880d7247566113c12bc4451f4c6b4946cf76c7b57f737032741a3047934b09e697acb2210b05b17047ea8a460e4cd9e7068b4202a8912812a04286208202de04d0c91b9d62992de76497dd0986917592e9902f33c4999916576eca4bc8495fc7233ea94671a3588adba1355804f1c475ebd788d683967aaf9b07a3cc9ec4c2c91a61e0456c18dda1a238132d2eabff8002c0ea6ad88d3ae3f4769e298aaf954550fa3cf86944184da2cc7303f1be393b6580cdc1a0e55bc3be7300166d570fc4b8644156cfd6c8975c29059c7a550d4b63d242b3e11b887a31bf764a911ac62801a6845d6589b0acc55e4c80cb37a3784ab8c048abe21204b152069fba2d6b75cad8ab3f133678889a99d346e3b49c0c41147deaac27bfb7c8aa3810e3b74bc0b205f02753a48457bd4b7b624a3fba1443217a88c65c5f63a0793951666453692c56b790391a7c9297e5224771c7a441d5363741dce698c33558c584f87ada29bf78a689417b645fe127d124339422be80a993e623d13bc59f3406a6fb6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465 + +# Official test vector 22, seed: "e335df8fc0d890588c3e305ac92c7160ff199e07c85760a828933750e3fed8c83b0dbe802234481ecf890a32d7a2884f" +seed: d569b935ce015c85f792f8f7fb0d83c4f53b492959361dd4f75fb764d656450176eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb +public_key: 670855bcfa888f30a50035208f5a75de6a8e3799cc4afaa7aee007788547e7b79c7507bed6a8522be18743c101463c9d0c28328a68b0d3ec380d04a20a31ab8ce6465e5aab4e2332f30870c5024718b1412c13b7094228e6f3a1a32440edba8f5ca66d968961a3f28705b9778713cd96974e42a50ee9eb61eba399cbcbccfc8786f7963c15d61ef8d194ccf37db2e16a31cb57ba79c9aa4a5da2593eb56c29498ab66f370d7b76971f797f9cd38ac3262226a64f91e03a1119b8eea00c103358572a1f4ab68f8eb4a5f889540913b23ff11768200694597d19218a2c30c3c25829467ac2d1b67f85d37522b22e7e44b950d152a8e087a3a35e3eb1c41fb15c7fc264c39272f01a0a2a91324a1ccbec627fa1ac81edb30ce0f84a727b36a4f9015a25ac67e3c76629c2347c2478d61b42bc413f6920f7b6774542bf25b92a7715745120ac1c4226e3b623860b4a42566829317e09d5868719a1e9babffba9517ac95a7c020882939cca54005f94791f37093eab5f2d15c1e7a09b9ec7b3738a197977c3ca0baf9f093271d00387841f2ab98c9cb16f19272d5e4b8d15e69da97517cf833475336d8850b5c3c87e4ef2c526b95e75060dc52c0292eb69e3f04294c854bfaa0f0fd5432dac0fbd03414b5a4a3b7c7cf36906fee8be6479c193b7336f4c870aca768d3ac2d84234b330a1f160b105214d469c8c1529bf31b3aac01a3ee1e231f389a27d4340b35a463ad002a7f8327dd5abed8b4256e87129b1be8ac475c32b97d11397db247a019533acb1a61c15b9aa4bc91d45af064a608b1926c93acb18b7c75d9798569a89a78463b51b5bbf038dae3c5cd133690ae80c1ad4541267bc10c83343a12439d6844b931a1cc79a0b5090214ca721f61e633600e8f76db52274c6c736e4c8b63089014a4012015522a9385f863507b1f1cc7c814cb47b00395724d601ad7bb27e4b0c43deab0664cc858d4a74576642eab3c76c211a58274e14f615ffe70084d7b7c0189d4d97a927a8b008b85888c57a0f6a307234344a5960836cbf6f4473ad988429a4ae3ba697bf07429d17c059a65d9e35a845735ba0a58e989307376c1e61f33023221a6611ca0465be5200363d49c53cd44b003307e5cc0c4f7b15e1545c72a7c3410ba1bebc8f7314b3b9d295c676bfe6aba9848554fdec9192f808329c60a793754bd6256cd030da12bce0d0765e51548aab0985ac86d1537ba49635641b3a26c05def260e94593b2e0558567c5da09b2cb122655bc4cd3e985eeda6c3f4322765e6a808ca387cc369dc11c9dfab64d4a30584e5329c905dc480801dd57d9ac8ab4087967177cb3163cf3e934a951a3e248a54cb922b6ca6ce9b4cb8bd788023e6425e75aedcc135cd3c59920c5ed0356fc0fb5a1ec0035b7c8271726dc8d63dbab3c78326a26c5b0f9f952cde7373aeca36cf6a438fb39c38a56124171593ea3bb076320bc8b5e74204777b7120ba97c3e803560605cf80c39324a0e3045d0f687e8f219a2ce70aac209b86d869febc5b51398341827204ac584c6b3381471937e68efbe5866a8569838251171647b4127514db9b84482d5b9a89119761c7f6508a099961376d6ae3706f6ca1c7c031f430190d6231425b14c6544cabe8701f8e475892fe31b587aa42d334fd189bdf +private_key: 3937043d61a4126a8c1ae01ab274b31b8424ed88cd180029be89cf1ea58b2a6325ffe8627b7bc4e3e8a4b3c60fc42573225946ca400235bb54494a386eeaae44f7bb8896c4f040836110c4b5796985108d116a76e05c984cfb2a9170811e7cb4c41a12e3601b9fb24bbd3cc0132c22d814bb98f049a8c155e38c242c2156c8b058eac343c77b11f550c52e9207a25213b40648fc70872ed8c050920c4c078a9b4576b60909bce496289168114a24111b7d15f10c06d7b719ac4c4872756d760970132bf15b08972c78f4f1a5a6a15364c0aca1c4721b3c82777878a861b751aba6a1eb75172c952b017ed03c9007541110a935207b037aa7296e73b998597240b60115333e50ba0c6b837c4cf26a027470770358a537481675a7fb7cccb901ce7836b75b010fd687691e96487bda2664756fd6057ffb122f69b26e3fb3ba2625b9fd9c41f4887cd0124df978bdc26b0c6f3b0f9416c38b2145361343c2f2b752c7a885586e4ac9955ff924d2365847c22e06c6556b7858f0d9318c037e03536ce9c5a16220967ac1c55e6c61f00a5902322c8b35bd190042425249f54a3229f90453b0942aa9a31f421463f514dc64024d5616e653c9e94bbae8e82fa914863338c65413a33e520243f92f1c3a888ea8121be984b4e4cfd08285e904c34465bc1477cef53757b1025b10d45415fa2e57931ecad301929437b837146fca445211b5719a933714a1c29b1eb52a3bb36603c072b4ee0b4775d17b7af9c6049825e2b654e1c4bdd8e56f531406cc5297d2ba2cbf19b8c43835d1c184eaa661d9b90a6e99854787c82d53b794d8624d2406e57693143736bb34284608c8b20a9d99695d8f87ae57c83d095a106e793fb7325b80eb26c8cc345ea2b17ed66e3d437631a018a2c8bb7cbc42761b95f2508f92732bfcf9343c4ac48a935fd9260ae0463bdfa69120ea90f3e9909b2541da03516f922e1e58411d1492686529cb030e1c9846f63abd6ae9a781853bcf31af495acf79a49767731eba21a3403140a707c106425c5bfa2ca326247515b229eac449b01227fb1b228c8637732d818c6579e4a5f0189a23793f8e39c1cad40aa70a3c6db8707aa76831dc26a446287d8a4e45ec1ff7eb00782596f7a7aeed5307e5c84039b4231ca6609912c6e4e71dad93012a21800914997f99970489380e12be57979cb6e49861c9605d02a14727a17e286b40712233141e2fd5b3834033e2b215ef44aa752201a65334ac223817e290d2c50338a2681d298061586ad704862770867b0493d0941c4925acda9b4185b64588e25f1015705a885faafb1518a70ab415cab51a25e3139644f31f1bbc0ab9573bf63230ab125891d58143ea8bcb858c7521100ff581ec7a97b351bbcf5b4161f3141ae78986713d5bc15a57e07f2bbb8244b11d81a0804a18ae63104bf75c755f70aa758997233154bfa942a47277ef20b312a68e96201f227a908dd7bc02e19391f73825dc44cd258b707b6da20ca56a2b32c0202308357e48945d79a38c0560271ff0ab2e8c1af246940a797cef018b62873474a38a595127c026699d625ebf0774334b0a953881fbc1b0f5c472f549818d44b63ea59541a826c49754926135670855bcfa888f30a50035208f5a75de6a8e3799cc4afaa7aee007788547e7b79c7507bed6a8522be18743c101463c9d0c28328a68b0d3ec380d04a20a31ab8ce6465e5aab4e2332f30870c5024718b1412c13b7094228e6f3a1a32440edba8f5ca66d968961a3f28705b9778713cd96974e42a50ee9eb61eba399cbcbccfc8786f7963c15d61ef8d194ccf37db2e16a31cb57ba79c9aa4a5da2593eb56c29498ab66f370d7b76971f797f9cd38ac3262226a64f91e03a1119b8eea00c103358572a1f4ab68f8eb4a5f889540913b23ff11768200694597d19218a2c30c3c25829467ac2d1b67f85d37522b22e7e44b950d152a8e087a3a35e3eb1c41fb15c7fc264c39272f01a0a2a91324a1ccbec627fa1ac81edb30ce0f84a727b36a4f9015a25ac67e3c76629c2347c2478d61b42bc413f6920f7b6774542bf25b92a7715745120ac1c4226e3b623860b4a42566829317e09d5868719a1e9babffba9517ac95a7c020882939cca54005f94791f37093eab5f2d15c1e7a09b9ec7b3738a197977c3ca0baf9f093271d00387841f2ab98c9cb16f19272d5e4b8d15e69da97517cf833475336d8850b5c3c87e4ef2c526b95e75060dc52c0292eb69e3f04294c854bfaa0f0fd5432dac0fbd03414b5a4a3b7c7cf36906fee8be6479c193b7336f4c870aca768d3ac2d84234b330a1f160b105214d469c8c1529bf31b3aac01a3ee1e231f389a27d4340b35a463ad002a7f8327dd5abed8b4256e87129b1be8ac475c32b97d11397db247a019533acb1a61c15b9aa4bc91d45af064a608b1926c93acb18b7c75d9798569a89a78463b51b5bbf038dae3c5cd133690ae80c1ad4541267bc10c83343a12439d6844b931a1cc79a0b5090214ca721f61e633600e8f76db52274c6c736e4c8b63089014a4012015522a9385f863507b1f1cc7c814cb47b00395724d601ad7bb27e4b0c43deab0664cc858d4a74576642eab3c76c211a58274e14f615ffe70084d7b7c0189d4d97a927a8b008b85888c57a0f6a307234344a5960836cbf6f4473ad988429a4ae3ba697bf07429d17c059a65d9e35a845735ba0a58e989307376c1e61f33023221a6611ca0465be5200363d49c53cd44b003307e5cc0c4f7b15e1545c72a7c3410ba1bebc8f7314b3b9d295c676bfe6aba9848554fdec9192f808329c60a793754bd6256cd030da12bce0d0765e51548aab0985ac86d1537ba49635641b3a26c05def260e94593b2e0558567c5da09b2cb122655bc4cd3e985eeda6c3f4322765e6a808ca387cc369dc11c9dfab64d4a30584e5329c905dc480801dd57d9ac8ab4087967177cb3163cf3e934a951a3e248a54cb922b6ca6ce9b4cb8bd788023e6425e75aedcc135cd3c59920c5ed0356fc0fb5a1ec0035b7c8271726dc8d63dbab3c78326a26c5b0f9f952cde7373aeca36cf6a438fb39c38a56124171593ea3bb076320bc8b5e74204777b7120ba97c3e803560605cf80c39324a0e3045d0f687e8f219a2ce70aac209b86d869febc5b51398341827204ac584c6b3381471937e68efbe5866a8569838251171647b4127514db9b84482d5b9a89119761c7f6508a099961376d6ae3706f6ca1c7c031f430190d6231425b14c6544cabe8701f8e475892fe31b587aa42d334fd189bdf0c87bedd5c16c32cc3867910f734bdcf09869c7604a59ce36660074f561e12da76eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb + +# Official test vector 23, seed: "fbea1bc2c379f4f8fdcb0de260d31cdb064c9ea9b1d6dfbe91b3692add1d34dec9c9ffae7bf5e72ed2743ba3f9f2e43d" +seed: 5cbb141c2763425c274f7404fe530d9116e08c33f9f200a20b011cf563a28990fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 +public_key: 7dc26db4f73dd1859b06a852e89a4845a0943e5513e8a056ddcc2623034a4ef251e607268997b7e90471d5d0cfba5639da844f0c9a7227c8a22a83b9e805942b67019ebc45502c22d369abbe52a9aa6cbef78ab914337375d9c075854bc9a3484a0995a239121d918aa64b2ad76c6873790211162509ca2347366d8163803c3433d32068d0f8b64cf38c2370a3546083ed45716dbca7ceea50207736fa51c062a6a15ab8c124ab6b00334e03808c858ab4b20a368df787cde92169aa4100a2adbb4699510753b80a63b492c51f43a81be012fa13405ccbb0dcf1166ef55f450781244420a0ac9301d485ab561b9ab67f5805afff924c1f43a5b1628f60baca631931bfc6c9bb04d0fb3727d7ab6bcd6cadffe84ca57851ee201f8153ae6d64c0d2aaa432baaa0539a17e731cf4360ee37c0e38e0cd77ca85e817a827173bd9c0ad253a44fb244f47f956146b4281109297b05a9320953c022024373d60701a68450cca32883848c4cff3c64f548cf7912ff61a11f06030c5eb29fbf8bdd2b16541fa85b8683493e8239e22c01383985aca367d6cba52c7808ff12b79976b794c70471ba5cc7908e4168d5c916605337f26199c34519236a855ef063423d7777631bddf164b2375098a25c9fbe9a7f9344ac12aa0b65a1380946560123f82e033fe33638788c82e7abf79b2c4df9c6da2f4301d70465a3c05e3a485a26a3b8d98674d91594f24761f1654580719260c4b409b2fcc418a24082a11140d043a6dea028dea1a51e9224fddaab5f3aa64564b3c336586dd8587442800ead481c9d27ef08908b938945b7204557c38aee2753709b68088684637bd39f1b78c6929c84873822caa30b2584a02c93b085380524405caa5d9147e6c837bf0ccb1aea19db39471d1a573fd893028479391680282922b11ab4d78b407f7d68eb89b615c32593f2207a4b017fd1cb922778ca806b305600546700d9ecc70ccf292ca7ca0ce6b6fc2a79731f6a9e8b83c9492381ad561f657192bb3867d3cc663bc5ffb48c997403b4814c915616d03ca71d0e8a93ef0acab8a55a61a6a58d22845e27d6c453b79391dbe02797d390e262a6be41cb564152768a5b1f2b7306872bc9dd63327e22e518082ad337f0eb8494ea23e7c730f48e94d21ca9ca3f660d4f960a6285f1e586d04120a083b814ec4229717b23b73c0c14aa6bd45294601bcaa89429814ad6e8a6190289758354043eb6d81842a6f332524da9e63dc7570865695c043c9eb9c5925bf4c4b15bee14aa58a09c4d37c822ba891f2626a414d01a10f9fbcbde5609bf4d982e23392a4cc16c461260bc518717584bfb96e6960b6d4b673f61663be1b2babe74d46494ca9576f3200ae3ca8a58de308d8e99b65384ccc30aa1669898722b1a76c87dcc276474a74c2985e746194844c0e98f811dec520bb54a1b4572b0c39ad04820f8ea878baa9caf03018d4a196c5363f55373ef5a98890c719b7a019d0eb023e319241081694e74bafda502529020a8b8f1590b73d1bc36ccbc8d4bb76c44361309977270231a51a7999e65b923b1200366ef381b8fcf8c4c5d3add0c465f7db79f7563dcc67940312ca49981581a798ae477915f078f11023c50efef1acf4f751801bfeaa5ef93fe27771a40a3d377f0f1b1655f6ed13320e +private_key: e2903ded4136ae2736d2f6522417953c15774fd1bf9160b6553b0a6f8810e2208a9205833c5479562ac268b6618787c4859838020a1cf2d16d7f8cce4f18872c20703522463ae5c2cdeb4952d579a9c2726783562364cf8d86cd1254c76ce667df6155ddeca4572506240723ec8561d7c65ff953158ef4cb3be6ce823c5501db9e29d8c1fc23327b04067f755b87d984348acb362b22cd416d754b82e52483d8cb422eba4ba8e649faf56f30586f09d4acac0c3007ec6ca1732eae602a004b58368785325b06124156248b22d69806b6b2947a75cb16b824d35c7ec26a7a6722c4fb36a5aa538c16e4b6d366344d049b36e53a6980177f3989c301293d3450c8e2abdbc186972990dd933f9cba7ba31717bc3126d19a0fc3d090ba37c447db6143b63383745c866371c426171b667096e46e0c2942d40b4ac2f08f48b136ef09c82eb5bdb13a514876274bb20c6b40a600d1cfa0a8b29ddbcfaca547d1680067786d6e50a64b70546ae3af52451a08028976ba78b9275a2b011858e0cabff149f7854abd2b390d28a661c7a871467a2603c5ce29866839208b5386714618b6a2012fe2b4b9753c8d21bbe74c477f427e72181988d0a094c15a9c24a7eab46be919a71fd60879a67480178453f4aed9b63c11040d370322d43b4077e74d8f8966319042c9559b021cccdb0874009d61e3a3970c14b34a180cdfe0a2f9d5bf60954cb79b5b69169598fc88a9b11ea1287a8cc88f877659577433a97c16af3ca892d40cdba7642fc24f258a0207da5e818580694582b7b7982a7bbb5de714e7425b7552aeb394037827a98e765d96310d5014a7e69b3db3b6797bd60650e36e1ebb0342a77576f496a7255d936c5eab1ba3d9fb57d72305272a5e567c621746720878cdab13a9f5b0afa5101a6f7b844af1bbf660c584205bcecb22a74b79c5b4302f29bbc502b4a3c9854682c8b123a33d949d878b4ae609ac5386ab5896ae2b877338b3200e582f34fa450adbb27480296b0bc6e0e73c2ec1b633f56d1b8a54ea65ab7cb62e5e4a2c4e82a957194321e1bb39413c3990b74b54ce213008979146c47301e3c8489b257be7a50ae6d39a5cac1dafd41ef2a91b54756779e5a8e5ab79ce481ef9f80195ba808769a158e0b48b52669c01980338042d2a5e21362703827ad9433cfce6191c7c737deb92ca3053eaa80d9c9234f54715b31013cdd31afa49a24993669adb72ced3c7e3c02c76aab8ba56a29686a115f4b36deb2fe00bb42cbb6ba8a825d9888f6347a6e61a7892e06c8ff9b8fbf1270d02beddd4268fe4615f9994ef8b93c8615b6a63c9b4d752a46c51ebe9c4d97c160fa27f8cb62aa22344f14339875b6d0f920875c3b831186ee6f04c745756d57b875098a55fc1b060f353f606bb073690546769dc61600a671cac18b563aca5e6a8a887eb76bf88a33d814ce9f32db7cb5cc3d16636493421fbc550ac90a4b99611b39cef828dbf056c0f5043be8b003e260610f27a59a2765d57a13d2281d6904526b93d7745b4f8b98085397688ab559d073f88716dfe5a39d09975de107a3e6c68ee17b3b63a9b10ea6f4531bdb627bb07494f279052cbca04722bcc0014bb3993219236397dc26db4f73dd1859b06a852e89a4845a0943e5513e8a056ddcc2623034a4ef251e607268997b7e90471d5d0cfba5639da844f0c9a7227c8a22a83b9e805942b67019ebc45502c22d369abbe52a9aa6cbef78ab914337375d9c075854bc9a3484a0995a239121d918aa64b2ad76c6873790211162509ca2347366d8163803c3433d32068d0f8b64cf38c2370a3546083ed45716dbca7ceea50207736fa51c062a6a15ab8c124ab6b00334e03808c858ab4b20a368df787cde92169aa4100a2adbb4699510753b80a63b492c51f43a81be012fa13405ccbb0dcf1166ef55f450781244420a0ac9301d485ab561b9ab67f5805afff924c1f43a5b1628f60baca631931bfc6c9bb04d0fb3727d7ab6bcd6cadffe84ca57851ee201f8153ae6d64c0d2aaa432baaa0539a17e731cf4360ee37c0e38e0cd77ca85e817a827173bd9c0ad253a44fb244f47f956146b4281109297b05a9320953c022024373d60701a68450cca32883848c4cff3c64f548cf7912ff61a11f06030c5eb29fbf8bdd2b16541fa85b8683493e8239e22c01383985aca367d6cba52c7808ff12b79976b794c70471ba5cc7908e4168d5c916605337f26199c34519236a855ef063423d7777631bddf164b2375098a25c9fbe9a7f9344ac12aa0b65a1380946560123f82e033fe33638788c82e7abf79b2c4df9c6da2f4301d70465a3c05e3a485a26a3b8d98674d91594f24761f1654580719260c4b409b2fcc418a24082a11140d043a6dea028dea1a51e9224fddaab5f3aa64564b3c336586dd8587442800ead481c9d27ef08908b938945b7204557c38aee2753709b68088684637bd39f1b78c6929c84873822caa30b2584a02c93b085380524405caa5d9147e6c837bf0ccb1aea19db39471d1a573fd893028479391680282922b11ab4d78b407f7d68eb89b615c32593f2207a4b017fd1cb922778ca806b305600546700d9ecc70ccf292ca7ca0ce6b6fc2a79731f6a9e8b83c9492381ad561f657192bb3867d3cc663bc5ffb48c997403b4814c915616d03ca71d0e8a93ef0acab8a55a61a6a58d22845e27d6c453b79391dbe02797d390e262a6be41cb564152768a5b1f2b7306872bc9dd63327e22e518082ad337f0eb8494ea23e7c730f48e94d21ca9ca3f660d4f960a6285f1e586d04120a083b814ec4229717b23b73c0c14aa6bd45294601bcaa89429814ad6e8a6190289758354043eb6d81842a6f332524da9e63dc7570865695c043c9eb9c5925bf4c4b15bee14aa58a09c4d37c822ba891f2626a414d01a10f9fbcbde5609bf4d982e23392a4cc16c461260bc518717584bfb96e6960b6d4b673f61663be1b2babe74d46494ca9576f3200ae3ca8a58de308d8e99b65384ccc30aa1669898722b1a76c87dcc276474a74c2985e746194844c0e98f811dec520bb54a1b4572b0c39ad04820f8ea878baa9caf03018d4a196c5363f55373ef5a98890c719b7a019d0eb023e319241081694e74bafda502529020a8b8f1590b73d1bc36ccbc8d4bb76c44361309977270231a51a7999e65b923b1200366ef381b8fcf8c4c5d3add0c465f7db79f7563dcc67940312ca49981581a798ae477915f078f11023c50efef1acf4f751801bfeaa5ef93fe27771a40a3d377f0f1b1655f6ed13320e9a9a59f83fc58d7194ccc92bd78a45f97f721a1eb554499d0e4d5b37aefc23a8fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552 + +# Official test vector 24, seed: "7e87fb886bc3c7c9fc12569f465d2ecd12532e76cc27c65644c8d3dd603b0cb2d036c5974e675058f271d5c82ad7a813" +seed: 293abb6d1c207927945417cf84883ef010823e11b487ed55239e466e83696d0cff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 +public_key: 790847ed9a831c0cc2acbaa793c41913a02db8ac1c6bf056573bb75e2990a6fcb732c3461ccb174dab8ea4c55781317e400ab4ef68138ff84c27fc0bc4c68e30eb664cc8bb32b617916c155d28a195fc39a1a0419af64a59c99664f744a375113228ba3730752ce5a06701112d7328649a3755b45ad6bc4bc0859feb014e185b2e18603ea0437b31432457b36d13a5ae96b03905bb2fd0d5377eb04f34a68c57448e7909cc660a31d9f9540af17324e4b31bf04f465665b5538f7351687f238d6c423c9237b5ca35618f092cf7da879d965b67b1cdb2467c9ef3862f260c04727594aa6286f4035f0b0eeeb4b141306cf7d9c4a6bb942b7a1e30b56ae958b16c3c1237603ae6f879dc9ca96a2439e26c0834369e8b041c6327254608ad3727cdf23b842a003b91d1aee60193ae1497d5b75e2a370147f052a08b1f86179bad52605df44f6c99c75df478017318c6ba017a1b4a8302888f495acf796e0745adb0292ea6b5526fe43f96e20d98fb756b2553a9493401d4a25b9bbac13b62967a228bb6446b2067063619af66383e6bc2b3d8cbb9e6969196bb45d665bce49284c5b50f934774d500c90134535930ad2169488c4ba8ac0854f36e085318a293bd65ea8e033c754ea44191d9ac8033c031e066b2021c13fa11a15222cab4829a5c47df7418761620aad92135169e0f008760ba30a289cd41f1325a4c90334978c5176cdc5496962443b118a641d6130baca422d89fac5c968adb461ab43729b6c9b1349e71116c0226b55fc00323d6a74c03282f24997949207d72ce58fa4d87a7413c3bbaeac91fb2131c418c11ba501701549efb25cdf560239223c90e1a2f99897fad594930848a1ba2494fa87bc03c57c7bc33463b77ef80b978724153a956779028b7a565c40144047747e124c7db801d309333d3150493c3b3ab68c34c939243454d90c3c4079174a8171c77a0b0c9e54277b5bbc5033eb1eba3cac86039492b4e75a23c8c51c88177edd639a55b56fc557b580b03935765cf586c95178c330319c70a8c15c95fc18a23da11798cf6c54f68bfb766a61a9c9c461b766b4a00608575c4309a621b28d27122cbbcc76c30a30286483ba85a68524c0e21591b7347a0ac0931e121eb3bb8d0fb7d9ec577a5821487619e196400c2169a42a71c7665505bf333ac70267bb50380b947ffd54745e41de5a30a27b78a62f43786ac88b2012de563cde100358065485a73505982a265a505ed85cadc02228ff90a03d088da7410c6179558d52ca36ba1d87353985189a709a1c0a7a10cd8513c4aa26d27cf802027aa8c5bb99c12a51b7f16e10838500132cc24d79c805cf11a5bac88c4bb0377ebcc4fe7c6ffb927ebe7234016bcc1765ae9e72e62d51f9cd91017f508ae207d181ab0c4dcc8d1c4742494876d118f40c84e2706914c65a161d184a5765aec67c9dcfa4bf3418e114c6f3cc34e94a149fc84b041853af9b213759cc5a181abd5641285613875367842f1a2549c09eb9b1dbd851365d58e6335c91ee7ade6c23135c1200cfc1de3f5cf6fd13967150f01053b943c3389bc4670da9857ccc32528920f781cbf16a9dde2299db9912e87321c02aac45c4820ba2e808666ee521dc4bed006527df29a124412a4a19aa26c09b490188ccba53900a2545022 +private_key: eb9a0f50030024200b530580640112b904c9190bcc0f7b6c9b071086aba50212517eb401a356cdbb8547b1e06ceb0695f002c9982518e6258faaa84cb7b0885d1c9272bc8acef294c2aaba89696e4569cf3493cd69db0c9629c6af282a6828a0dba65f1c2802af72bbfcd102e9ec5395f0473d29b9bcd99d8c803aedea59aa5b11f798230917c5196b2ea9a950e3834e7f272b8c6760b07c8597025cf62b63922768d89955315c2f36907ecb89b97db098d7348b9643ba56582915b9558fa519bb1530d7b8461831c996731cfd2b4d46643c0de99c459b93279173a83b423a073367ba8e79904bb431760b969a4b7b98f10a0e5fd1aa75e52b59fb9af4123ad65b645aec03c7e2c35eab02e201b92c266b98c5932ea3b6029345f1f8085c955fadf2c840cca34cc801ce489415781cbfc598f1f39ca240257a0c173b6108482c9720f56afcf250c2c704c514214fe0155289470ea5470cc1a4eb5c999bf8567d688d5a4a2a7cc1c3381c68bec925ab312acf037113fa8c5cc43a75f3baf932672ecb3ed412b17b5520351918297525c5d352076ca04d2a3833d306a321b9a9b1564504b8e70aa8e9a91ef47001a42c66b33370db2ab3e9b43f32e926e7ac189252af3c9ac7bd420c35767e1b26b161823da4fbcfa11232dea1143718b6b9e6aad183311f756c04c15e8df99bafc854e751417c1aa5fd64623df434f2c70dbd8ab6d41395cdf4814bc99ebe5c1dd0777c7344c1504b7e2ff4b82d974e01600d1293c5ec2a4b34fc895e608ad7a32b2fa6cdeeb2b2867a8aef27aae73ca70a5670c3857501f5c4231448a4e7b4a9926c1ffb58b0aa73705c1eb1e70068d97de17b19a1814c34d746570bb3d142a6b7c49d52d78f501a6bfe37abdb1905a30077a21a1b0e5a14f6784db89197121143b851ce1d975db4f50ab75a8138e60a542cc41aaa6c55626d81535044d0a1865b4d6303c649b3545511440a320cf5260d0b85041f6c26f92a13f01c77bca3357c26bd0dd00084a54ebeb7330f59683597bb733182a4ec7b15e8656dda8bf0a8b38fc3632e00bcf5938706c55d94623dd9c11bb57036783593df9b85bd9b9b2c430d94c73a53b65da10a614d93c6da7cbe899a096ef3c608f747cb782955d0402d9831b9889f6a7708ffa7caf87a8dcb1a18b74c363037c890470d18805befe3a0bf058e64850d61614948f41a2f03446bc9c6d65750ba421e2bb8510f2a8789b20ae70c1331402a550480fad8c011494d7cc25c573b4b23ba4c96f99abc5a6d8ef2195284ba54678f15543243362c6aeaaec2812e76382dfa36c2b1704dfb559a27d5b8f7469596a28c9e2b0d426aad0c57b2407346a6ba267690cc8f30857d2858aa5b97e286017c494bcbf398ace755fb5b0d041aad180691c85994d331616e91a9bc4932122c35b55b8300264e5d3533f7518c59c4cc4cdc5c3894b48f247b1433666efc9934f18234535e18bb43b5ba5d9b6979bb14bb8d407d0e15704ac6cd1bea3466d41362a261e9e3c4cb73b625690f1bf755db67ac556528700a78ca973391b34d448abe2bc96447dc8f96239e6d06c41dca9fe04272e438b7437c6e0bab01797475adf9cf716430dc2b4a9ad16e790847ed9a831c0cc2acbaa793c41913a02db8ac1c6bf056573bb75e2990a6fcb732c3461ccb174dab8ea4c55781317e400ab4ef68138ff84c27fc0bc4c68e30eb664cc8bb32b617916c155d28a195fc39a1a0419af64a59c99664f744a375113228ba3730752ce5a06701112d7328649a3755b45ad6bc4bc0859feb014e185b2e18603ea0437b31432457b36d13a5ae96b03905bb2fd0d5377eb04f34a68c57448e7909cc660a31d9f9540af17324e4b31bf04f465665b5538f7351687f238d6c423c9237b5ca35618f092cf7da879d965b67b1cdb2467c9ef3862f260c04727594aa6286f4035f0b0eeeb4b141306cf7d9c4a6bb942b7a1e30b56ae958b16c3c1237603ae6f879dc9ca96a2439e26c0834369e8b041c6327254608ad3727cdf23b842a003b91d1aee60193ae1497d5b75e2a370147f052a08b1f86179bad52605df44f6c99c75df478017318c6ba017a1b4a8302888f495acf796e0745adb0292ea6b5526fe43f96e20d98fb756b2553a9493401d4a25b9bbac13b62967a228bb6446b2067063619af66383e6bc2b3d8cbb9e6969196bb45d665bce49284c5b50f934774d500c90134535930ad2169488c4ba8ac0854f36e085318a293bd65ea8e033c754ea44191d9ac8033c031e066b2021c13fa11a15222cab4829a5c47df7418761620aad92135169e0f008760ba30a289cd41f1325a4c90334978c5176cdc5496962443b118a641d6130baca422d89fac5c968adb461ab43729b6c9b1349e71116c0226b55fc00323d6a74c03282f24997949207d72ce58fa4d87a7413c3bbaeac91fb2131c418c11ba501701549efb25cdf560239223c90e1a2f99897fad594930848a1ba2494fa87bc03c57c7bc33463b77ef80b978724153a956779028b7a565c40144047747e124c7db801d309333d3150493c3b3ab68c34c939243454d90c3c4079174a8171c77a0b0c9e54277b5bbc5033eb1eba3cac86039492b4e75a23c8c51c88177edd639a55b56fc557b580b03935765cf586c95178c330319c70a8c15c95fc18a23da11798cf6c54f68bfb766a61a9c9c461b766b4a00608575c4309a621b28d27122cbbcc76c30a30286483ba85a68524c0e21591b7347a0ac0931e121eb3bb8d0fb7d9ec577a5821487619e196400c2169a42a71c7665505bf333ac70267bb50380b947ffd54745e41de5a30a27b78a62f43786ac88b2012de563cde100358065485a73505982a265a505ed85cadc02228ff90a03d088da7410c6179558d52ca36ba1d87353985189a709a1c0a7a10cd8513c4aa26d27cf802027aa8c5bb99c12a51b7f16e10838500132cc24d79c805cf11a5bac88c4bb0377ebcc4fe7c6ffb927ebe7234016bcc1765ae9e72e62d51f9cd91017f508ae207d181ab0c4dcc8d1c4742494876d118f40c84e2706914c65a161d184a5765aec67c9dcfa4bf3418e114c6f3cc34e94a149fc84b041853af9b213759cc5a181abd5641285613875367842f1a2549c09eb9b1dbd851365d58e6335c91ee7ade6c23135c1200cfc1de3f5cf6fd13967150f01053b943c3389bc4670da9857ccc32528920f781cbf16a9dde2299db9912e87321c02aac45c4820ba2e808666ee521dc4bed006527df29a124412a4a19aa26c09b490188ccba53900a2545022bda0815dd53b263afcc1f71d2501128c41fb3606af71c5e68f0752c6d3a479c5ff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558 + +# Official test vector 25, seed: "ad1424e804f306c7ff513da4c1e8d445afca7bc942fac5c0b335733aaf70693712ecbde26ea726ee0f9fd9d52a83b1a4" +seed: 74d87c7556f2671f2d666854a4d6e073e69f35421e6e1a428cccea49c37f972ce1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 +public_key: 39dabcbaa131e892a48fbb80f78961f9c440322b49edb03f0e554328eac7c0b3ceef957a82370a8e8169cb24a81595cc89f95d70179834da375d55a1d16a7a8fac8e7da64508c97f4f7a53066ac34d407b42a6be091696351b3fb1f12c05e5429cb0a14208336e110ae4b89fc9b91edd0037392948e7d3beb78b880d3c6d933a73bf909593a0654ea18a5cec051cd17c25abb7020487579a98f62b49c2969e3df7407f9bbf0b01237a0994cc7312b0992cba7566cfc2818db511d37b1f06781b3dab99db5268f527123a0366bf481faaeca57e16b37e27758c8b83125049f3f38681ba5438a795021652b5f81c02876c0f404b44f06976e368aa2cb923081e3dd07781562ae4750bc5f3809226ae6f100fb8f67faa433b66f8153d6a1b846c589b471ea6479bdb05c741dabf217a6177f2ae8224bd05b46de5f1a42ae20a1e641238f541fd282dff3821414890600a970811795c993c8ba5418a8732b6c8b8abf738fc5ca7d32aa3f87884021968a93cc271a490de61c5f8143be65485c9f34f0d433e492bbc5e215cfa037428a51d5921404d89aa0ba6181f5294d706786a30508c5990ad24c7bb6a70d6017207d3c03100a222396c44752579859e07315cf9c397549708901748c6958cbfd41e9d2880e9773ff03808480bb38c36bdefaa5f81f85700fac88ca85829e03d9bb845227a0a799b156d0952d0c54bd5b010c565a381b55885d26cd9e9b82d21a31354c17d2bcd43d93946bb58ed2a57c13509e9537fe879714c64cdbc842e93326aac0944cb3898335004d0fc9c81546086f29136227efbc798032aaf0cba0f3c6aac788886e03c87245964c99c18e62c008d646621d127856c7559370f5fa26301321bdcf502d1d12305002b2ae42e61209892d7b3afaa6cbfa9a38ac097cb26c4745a4eae395a1b10bf80829d1b216b4da59fcb4a2a57d4070ac2ab59a82b6af3b0682b53f9928f7759ce20e1a09042948ba966cee8bd176b2ec6880c063b3ed6d1160fb26714b3ae7b44a4ce6c759555c6e478c0a71a90b62a8cf8f282a4f7c21c31c5becac2595a766a977c886009e9414123e5723e101e667647bb9a2489b3acd17a81ffb4512516893ceba8838949e998043713bb41073013d487cba107f31c84480a0ce4378732d9446970716365278f70719da66ddd8283d62190530566904221b383441124b6f3d47103d64983898f8d83a4fef6489b0c08a11b82d30cc4d9eb4fd0d99085c875dd4801e3902405f0b292b8487a72867e67200c9231ffdb43e2048caaa203c7883218f9a1af7a365a19b0d2fa595a087b2afa1f16686dbd24a98b931a5999483d467d2d264b21ba527ca419b6523fc046bf7fa96bf0a277af5094f3362dc863b8bc2192e5d78173d77139d6ad07e091e7ea507f2a7a9bf982aac812f736c787c27b04e25d1cb74d5d01c3fe6aa2e7248921225632a5033fc6342495167405028d410bc42c8bdb498d9a5260693ba326e2230c6040f332454f3b2020280ffe6bb0b7021f4ea6bb4c06980b62a9b6c89a935ac206b13e091c3c6ae609417ab8c66b7bce94986e92596ee64b08a53844b706f84731755ca02c7c49906cbbdce97c64019a52f278c2f286eacd5a261f5b502251ec136ec0a3c697fc30e8b59807dff5dced3d6bef9c96bf +private_key: 878a1795956ec490aafe2190fe1a0018c9b51fcaa6b97c13da28a8c09a7fd0434596fc21d4e65bfee21efdf30059aaa51bc63c7d646f14f1aa487540380155b4e51fde096389c3a1b983373df0669553334da5ae1e9304619948cb85ad5be4219683033e33ba0f01750fc62ffe5331b4e3756e46cbca7b2fa45c26b8e6b8121719a6655f0952b9df797717ca88bd79a769938ac2f68d4347baa9dc2908757e19157953cc9522261118155df98419dd88556d961ef9855e20c86c4511cc7642c50bb4a35ab30e133b3548055c0ec585d9e1a390226749a739ebc5ca7834ae6776cdb6e461b5b736b11806e59521f010543568ad18097e8654c4cb7c9366db7990439b93a06e83391a62b90fa84a0b842500cc5bba4505ab41f60e8414768ffc1cb9e1b8334869723185aa5b141b94a21d276d3b769237e44f8ee373a8591ba9f6ca2bc852056334e41b1b3348c7687c8688c02b6d3acd484b4f2d9513bf181363a683547176cb1219fef44433899d93863e22274d7e157ee0188be6f53492655c801b4a29c7bde7048d798caf9c475665462732a51a080345fd0292b3b93b4c354a1f3c8b5680c9ef6bad9249472d761d25740e92e1c29e17bd38e989442b60a178ac720b935fa41baea41d1124183784941f510763001f20004caf2b4314cc6e3cfa7d3eda5e78451f27c7c49fb8253a93500ea757f1bcb4e97778b3866f9709083fba0cdf1031a0c667c5f65880d157bfe5986368ad80362dc1a596d31a488835b8e9b1a80ee55ddb146880a235ccb5c8dc64913a80c6c02c44e86bcd40e56737443c49d6bb4ac1501b264fc104a522784c5cc94c9e186ba7a22c329612985b6eced06e373669b691c620c4c6ea170c05c28d022158ad3053c89cae8b144c634ccde032503dd03beeb602e06165487ab4eb1292e484989f6135f50a08251bb5030088583187a57b10aac08b61b0911caa8685657bfaa40ff389310ab3b54efa8df4bacc32d112a2191a8068a390b1a8219a7954fb3cef743c22abb2c1820f86a7b3c8488788816493d300883b8370688b7d0560eca63430aaaa3f4b44d7ea887d70431c266e09c7769992328bc7b2a53734729297130a59e56c3d57893dc3fa7ffcb0070f7267cbe1ac7f2c18061b26409819d9526ee5dabaa47092ce07c2db567a72f80ce9a5284c70c6f6482701ac71c71454185099f62424c81b344fb83ab3475693d6797c5348c7985536550bfc1cabfb6806d1686139a8c920832ec675049f40a0ccca236375153a79c4ccb7380aca2e30038c8f2b745290bef444a71b73839707b524d07a2d1c4f4b00782e9c91447700594b30adfc7868eb546ac27fad089f7046ba8715c41e292415d274c3f03c5f57b311110000fc614bc30960b26edef3961c258240e333a8494b5aa3152c39c728464d6915c8016106cd34213e1137fca383d3b94d545bab479cc11231be67634beb00272b59728f628555baaf35e7bea2c664f616945629cc381042152ab0062902b6d5b3204266a98701f376a278778cb4281e47a6a82c6c1b0f2221577909f9297616f356be210f0f3265f6690ee5b1385ffa8f457a5ec860c01388480a09413181b9602909de7a3dcce34f39dabcbaa131e892a48fbb80f78961f9c440322b49edb03f0e554328eac7c0b3ceef957a82370a8e8169cb24a81595cc89f95d70179834da375d55a1d16a7a8fac8e7da64508c97f4f7a53066ac34d407b42a6be091696351b3fb1f12c05e5429cb0a14208336e110ae4b89fc9b91edd0037392948e7d3beb78b880d3c6d933a73bf909593a0654ea18a5cec051cd17c25abb7020487579a98f62b49c2969e3df7407f9bbf0b01237a0994cc7312b0992cba7566cfc2818db511d37b1f06781b3dab99db5268f527123a0366bf481faaeca57e16b37e27758c8b83125049f3f38681ba5438a795021652b5f81c02876c0f404b44f06976e368aa2cb923081e3dd07781562ae4750bc5f3809226ae6f100fb8f67faa433b66f8153d6a1b846c589b471ea6479bdb05c741dabf217a6177f2ae8224bd05b46de5f1a42ae20a1e641238f541fd282dff3821414890600a970811795c993c8ba5418a8732b6c8b8abf738fc5ca7d32aa3f87884021968a93cc271a490de61c5f8143be65485c9f34f0d433e492bbc5e215cfa037428a51d5921404d89aa0ba6181f5294d706786a30508c5990ad24c7bb6a70d6017207d3c03100a222396c44752579859e07315cf9c397549708901748c6958cbfd41e9d2880e9773ff03808480bb38c36bdefaa5f81f85700fac88ca85829e03d9bb845227a0a799b156d0952d0c54bd5b010c565a381b55885d26cd9e9b82d21a31354c17d2bcd43d93946bb58ed2a57c13509e9537fe879714c64cdbc842e93326aac0944cb3898335004d0fc9c81546086f29136227efbc798032aaf0cba0f3c6aac788886e03c87245964c99c18e62c008d646621d127856c7559370f5fa26301321bdcf502d1d12305002b2ae42e61209892d7b3afaa6cbfa9a38ac097cb26c4745a4eae395a1b10bf80829d1b216b4da59fcb4a2a57d4070ac2ab59a82b6af3b0682b53f9928f7759ce20e1a09042948ba966cee8bd176b2ec6880c063b3ed6d1160fb26714b3ae7b44a4ce6c759555c6e478c0a71a90b62a8cf8f282a4f7c21c31c5becac2595a766a977c886009e9414123e5723e101e667647bb9a2489b3acd17a81ffb4512516893ceba8838949e998043713bb41073013d487cba107f31c84480a0ce4378732d9446970716365278f70719da66ddd8283d62190530566904221b383441124b6f3d47103d64983898f8d83a4fef6489b0c08a11b82d30cc4d9eb4fd0d99085c875dd4801e3902405f0b292b8487a72867e67200c9231ffdb43e2048caaa203c7883218f9a1af7a365a19b0d2fa595a087b2afa1f16686dbd24a98b931a5999483d467d2d264b21ba527ca419b6523fc046bf7fa96bf0a277af5094f3362dc863b8bc2192e5d78173d77139d6ad07e091e7ea507f2a7a9bf982aac812f736c787c27b04e25d1cb74d5d01c3fe6aa2e7248921225632a5033fc6342495167405028d410bc42c8bdb498d9a5260693ba326e2230c6040f332454f3b2020280ffe6bb0b7021f4ea6bb4c06980b62a9b6c89a935ac206b13e091c3c6ae609417ab8c66b7bce94986e92596ee64b08a53844b706f84731755ca02c7c49906cbbdce97c64019a52f278c2f286eacd5a261f5b502251ec136ec0a3c697fc30e8b59807dff5dced3d6bef9c96bfe3e96e658787ba3f6ffb47de56322541a2c81f68e2825c74cb75ab01d4b719d6e1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9 + +# Official test vector 26, seed: "7c33ca0e987226c8524dd56c811fa4d1ccf9995b1e4e4dd5b1481974e88cfabfbf6787775c2611cefb27ed4403ea9b46" +seed: 013bab0212d04ecd54b478daf72748003a25e2cb060ba6cc50bf95c292b8206b9da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 +public_key: 185bb36d9c3ba85a46a5f605706979ebd66da03c15f1b4c25b886faca00b16e04f87b773d0b8724bb4947c615344f9466f78cae8d049876c9f7143154abc47110b0deac571bbe83577f577046830031a08b465b86e1c341c82660818cd2f8173c5c558975868f0281470f39e737b6cf964008e040382b290795254380b4850db27dff98838d9921eaa8146022937e36af6b030b8919bfea844d9d602ccb3547d5c07f612c12c3c179ffc30fe52c9273b5c0dd27934b5a41737817be0739425736bb0cdd267beacd0bd77085cd2794947051099c3848fe0aa2bcaa18f6a18afb626fdf1b977f376ea74a9cbd638932600efd84fc053650474c801b1a8ed941cc5444922915173ec1971698172f8a61730358c751d2d776d93c866c47802e2ac19c7c092aceb53996c20375b47413a66c06541b4343c548b4dc5341ea92b2266d9c0f1665719f62a72650414940bf3a20a260a5953d578d5aa48a2b670aff7512bf6937e49052c3ab8ba07016d06a9d643081dd52009b358ac13c3136cc65b0127e675bb55b8598940c054c8b797d37312a1ae48120934a559ba31042e160ddd13c744d7ac5dd614d198a33253b829016fae7ca51d397330ba1aac557a8fb56477224324924276aa52b7000f77db547a604f6d7189ef83071293465012b6133a6e1209af3009a867a46bf2868f8ab8a932784b76084998e37eaa4496c661a42e9802f5e1ca947c75bc4a572562733409757855031c9627152c02cd25a9b9725adae909175b27c53c6233e4480cd3a06954afed889ae97a091df86842483edfcb5df9a365929b6da98917ca7b025490b416a7abfda408f07429244a9202a23d23ea8ae96bc8ddd747d1eb9b79a3cf3610bc4eb56f9de38c3fb77db2740504e85107f46896202684db8103b1c488e9b731f0a2bcc40b563226d05946c9fcc1a4e287628bc4985189e05a5174709f00c43eda4897429773140b30bcc090ada25c91b8858f07068bc6c154030f048c1a7002ab58e157ee5b0e682877372426e193cbbdd3c63dec0a725c90d29411986a249cb30ecd981a92519ece4074f18ab92967220ac1c963503a295c570d7084c2917ec9b6a4663a931d6a505d11757ab2935fa708e9b6ad5fc1187f3717c6a4a818d57cf5395626c8a3917012fba13315902391116ff5015051dc8d07ec0716356d20a184458b4089a37fa9a713aa35c8ad1635a7fb49e6bb44cdf4628a3b84b9869dd760262cc487f44a361b9c1106553338cc5dd71c45c37a3bde98036f45231dea2a83001d82203b27aa054cd1bfcd215f477a7e43d31d946971b0d3223868922699b0d810b6fbcc834104bc0ba2cc7a50bc198616468c212c9b9dab2550282a9b88f8a1b6d006ba801544b62564dc05cad68d7f6b143222a5bb28bc9cb57788d417fdb73bd0778fe0529a35190b0912623df81a7387cef7d201aa007a199735bc3aaef9706c6dfa1b0256b872320459951111b90caf3202ceb8c10a480addf08dae881eecd0cec08a2adc61c20e8c15b60824653492e603bc3c203fc35ca536fb7c64084112c878741b83870620eda2997f38aff953217bec592eea7947e8be23fb627251c13fdc9bb0b705491151b8197cb07ec66dd1d49dab7f9d23aa8ffa435f2cc7a7a3a1cddab6e37ab7be45fbbc8a +private_key: 4b11a51a0bac67897ea9cc5d7d071855bc8bb375a18d838016fcc506bbbc7af38473e4275eb5449b0a5b7145b49c700626f7b6e5a6907879c541a0c6f027b7403a5fc25b42da3a7c9308a51e863eb346c178c469bb27022cec566df469340205fdd84f4f0a79842913a974a7f50c2aeaf35e37673c4ae52e5820c7ea843109e403ba5329a9818a856050eff789d4b71acdfc34761c39ae130fdadc300bc6b3295380d3c6944213100e43788204a41c75395142b5b5bcce2ee71ba4b14ff09325c9d884bbf9199e132551a444e527bb98e6b12a8210c6fca2a054bf8fe346c2db0ee9e97390fa2699c60a1e9c4599cc37110460d27b8a5f741d58fcb62962a38143aee0377d6d440662506200fd44bf71631c479080660a9c6286ca3bc0d5f9aa44e7cf23342bcf37a9d710c86ae39e4795c796805f0198b25d0b87e4f77e01b970e2858d26542e92eb356c276e7e95bc77019c4e90bab92c139ae10ef59b44cf8cc7e9b5b59d710f4bf2b8a4a5c5881018d9f593fa5b4c745a3f12457171b735920250778045c0fa3e1378c4aca8388245484a232d1bb020ea665e60da9f28a10e9992022098286c918cbc40476e7c8bde62cc27ebbfd4c10dc76982781ca59d630e086771dbaa1338814496a7ab32913c837264c527080c9b6d39c25e623b61fc180a29aa3271f84a1bc50b7e678143939ae5fc17d33bbf52d95e53b525ff8a8a408acf61d887585b561c3a69b088388f88532c8482a20c445e40362d1c4a331211d8f999c3f2424379b560b5ab4e6b655ff16e0904136a27774ab93233217ecfa58501c1ce6feb7e448ca9f3c76a52511a4a10008cecad9742368b104521b1b4e5461bed4c1a78ec9265d23272c06ba6c492bbe9af2704b9043510ab869af5d9b63ebbb8c2d26051b9b452d5c1605a7c4d60ced3a930aeb63a865056e1f00e3fe450a2da299d3c1583e52ff109cb2837c6b34abf6b063afe82c86b2049d7335ba4762f8b9c039f49c3554c9ccfa95e9105aaa0419d39bc695c873ea42313973724f02729383b90780c55ede19ee06b631752c2c835b0c2f04666bbcbbda79077a270bbd670edf111f5d578cc1b4589e31c22bbaad3c4044c1cb67707aca78c6d7c3441fee377720a6ab1c5b13f3530bc73020200983a962c1403a20d388b2ba71e777c28c3fa066ef0bdc5c94e0df40188f06800cd3ddf1c34b139bba633cc680079042b934db02ff093bd38fc9779f694196b160dd35c0a51c9f56bc4768333b07c4736e5c41ce048582c69f066ae08bcc4bb3c58fae435f6b53f8b533af1309a5b91bf3301b4a315491eb60670b1cb7e60424451031d6786b1f13360c8119be05955c37336f49bd4c2a7e7b15fad1a6d2c52af63870daa148ab0f8476e7a09309b529450b7e75b95988a66f037574ea5b1f3ec3d2d8570a6c46320a30286196e363028923b8af1128847db9b42c618dac72698044144d5c205d14331e91e70f55da87a45ad049d7beacfaf079b148a9da5981e1b40c36837b9e344affb519f961c45a8270d6bb125f42bc5c5089d9c7324de600184336210f57603cc229489a4e27b7fc25cc0861962ff738f06c03d4422bf12855abf225b25b254873079185bb36d9c3ba85a46a5f605706979ebd66da03c15f1b4c25b886faca00b16e04f87b773d0b8724bb4947c615344f9466f78cae8d049876c9f7143154abc47110b0deac571bbe83577f577046830031a08b465b86e1c341c82660818cd2f8173c5c558975868f0281470f39e737b6cf964008e040382b290795254380b4850db27dff98838d9921eaa8146022937e36af6b030b8919bfea844d9d602ccb3547d5c07f612c12c3c179ffc30fe52c9273b5c0dd27934b5a41737817be0739425736bb0cdd267beacd0bd77085cd2794947051099c3848fe0aa2bcaa18f6a18afb626fdf1b977f376ea74a9cbd638932600efd84fc053650474c801b1a8ed941cc5444922915173ec1971698172f8a61730358c751d2d776d93c866c47802e2ac19c7c092aceb53996c20375b47413a66c06541b4343c548b4dc5341ea92b2266d9c0f1665719f62a72650414940bf3a20a260a5953d578d5aa48a2b670aff7512bf6937e49052c3ab8ba07016d06a9d643081dd52009b358ac13c3136cc65b0127e675bb55b8598940c054c8b797d37312a1ae48120934a559ba31042e160ddd13c744d7ac5dd614d198a33253b829016fae7ca51d397330ba1aac557a8fb56477224324924276aa52b7000f77db547a604f6d7189ef83071293465012b6133a6e1209af3009a867a46bf2868f8ab8a932784b76084998e37eaa4496c661a42e9802f5e1ca947c75bc4a572562733409757855031c9627152c02cd25a9b9725adae909175b27c53c6233e4480cd3a06954afed889ae97a091df86842483edfcb5df9a365929b6da98917ca7b025490b416a7abfda408f07429244a9202a23d23ea8ae96bc8ddd747d1eb9b79a3cf3610bc4eb56f9de38c3fb77db2740504e85107f46896202684db8103b1c488e9b731f0a2bcc40b563226d05946c9fcc1a4e287628bc4985189e05a5174709f00c43eda4897429773140b30bcc090ada25c91b8858f07068bc6c154030f048c1a7002ab58e157ee5b0e682877372426e193cbbdd3c63dec0a725c90d29411986a249cb30ecd981a92519ece4074f18ab92967220ac1c963503a295c570d7084c2917ec9b6a4663a931d6a505d11757ab2935fa708e9b6ad5fc1187f3717c6a4a818d57cf5395626c8a3917012fba13315902391116ff5015051dc8d07ec0716356d20a184458b4089a37fa9a713aa35c8ad1635a7fb49e6bb44cdf4628a3b84b9869dd760262cc487f44a361b9c1106553338cc5dd71c45c37a3bde98036f45231dea2a83001d82203b27aa054cd1bfcd215f477a7e43d31d946971b0d3223868922699b0d810b6fbcc834104bc0ba2cc7a50bc198616468c212c9b9dab2550282a9b88f8a1b6d006ba801544b62564dc05cad68d7f6b143222a5bb28bc9cb57788d417fdb73bd0778fe0529a35190b0912623df81a7387cef7d201aa007a199735bc3aaef9706c6dfa1b0256b872320459951111b90caf3202ceb8c10a480addf08dae881eecd0cec08a2adc61c20e8c15b60824653492e603bc3c203fc35ca536fb7c64084112c878741b83870620eda2997f38aff953217bec592eea7947e8be23fb627251c13fdc9bb0b705491151b8197cb07ec66dd1d49dab7f9d23aa8ffa435f2cc7a7a3a1cddab6e37ab7be45fbbc8aeb3fdfcc0b171aa975028f96cd47fdba421ac08e29a0044cedc29fce35eb85109da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72 + +# Official test vector 27, seed: "54770ea1252ea2857d6635151194f5f520adea8a41e409ff498d40c271359858fe2b084d5b96bee087b8e8f4dd4e00c5" +seed: ccb073c4b90be0ad746e26fb093b60c70110bd1dcbcddb566a8cffb7b3caf80e71600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f +public_key: e80434a94334b45589b1866bcc69bad27ba323a563f47bc34073496a468dee6013330bc9a219452caa35c1a522c45c498fd4ac5564627d564d3881c731a9856ff7619622aba6f928beb9b9373b1104e2cd2e6246bdd88268c1b512867ae4ccca21140f0c046b5e5817fd64a2f93383c3a5add2f62784e2c8e80c150a1c8e1a8a47232787ad529333a07e0c512332799d9896a6071bb4e4fab647440f82cc85630c629c2c2068037948b575a1693f81d2a045a9c5a5c2306e83b911ea1e86db5763f13ca6b02ca8905b50faadf5440bec7b49913b371f0c5786fc585dea2813fa9ced349d9fa32cb5030b5efc274522ca4c6985b9dbbb245465a8849c4c78688392b0ab5bca98b04c7bf988ea84292c8505fc7acf90199eab7c31c13252680c71c9c333e91a0adbc1bd00d023c8d7a7c9068c3fa9b3cec75234663a2b73572ecc71e53a8eb5889860a336f77bbcc1c854d0c3c61c65216373bf2603a0ee72af8f747bfbd7401bcb9d599b6cdb02c210010d0425917b72891c33c97e9b39a677010d22a784003e1b917dfa3273246acbb45a79c7848143f0b583781626ba02a94922490c7b3695a787d9ae22e5470d32cb68790d75b81c55d084a43c4399aa587e07829510220469ab5e6381517bc9059353b68160ebcb0edf969e8c317442c4058423c3356b34035b9761744fefc76145300908da3c13f95eb3065f2cbb911437cd24f815197c0dd3f9c87e3b54432c50de1c7549228c5f9c32ee8c19fc4cbb04514025645e0fd1468dfa274e59a50d62c560eb051eac35bdd148ef75b0b05357619490cbf08b0b13767557c5fdb310da985dfdb9c35580217067a8c68491ba64307a618d272363ea346629ea6885acc17733a801166fd404cca58b591b68b2c73a9e890a13bb173584d2b6db351133e75d258995ce46a8f798a44ddb8526633949e5442435c7b3c083875760c00614665c4a2ab92c378863a3755ddf681905ec2044c331c4b976f6ea5335bac739c2be9cf141a9f3ab3f669c5fc49d74f79ba066a7d03b0c2036247c86305bd45194a00e33a1179ccb8d05b374deb491bf5c1d6adc4506803a8c65b18dd6621a5820ca93c339dac2bbc098c22b4e1fca3cabe58ceab66da6a35191a29ad82c74abf1c823200bb197015e074d14f224fdf30a51bccc015a152b8443892b7450734b34e77356231c6a8016aac430db0a8954c7a416b43d49120fdc4017cb61c3bfe70fbf24773412b6a91375f381658d57677fe571c3bbc800cc80ac597a8f2c5cd1f19567ab1f4c797a68e6133507aa90d1ae096148d313b48096ab96298c33c3828d645a28098c777cc10ce068c035a71f7a2a36306fbbc311d3d14214c042871388dc899ca2116baac1aa5cb261af35a0e255b228498295f6b4ae171dfe21b5f66671af532253dc724a893b933829a0c275c20407898911472a02eb484d4ad5b8d274c00bd9377f3c497e6845161868434c968bd847ee90c2ecf600867cc790b005061c8d5c49339dd3ae23920e65da2a19d649aad1b722552e07f51cca7b87efa315b6191b31279509d78b0e974860ba9f635283412038efe3ccb2a0c643c68756149a03b50f6891b9fdaa099ed50d7a012c0175b9518c15649396d94ca1266979893e82811af8c142323fc3d38b8b5e554f +private_key: 06e67b30992ac43a09b6572f7b4764ea9bba93b05cc3577a8f762279c1c9991044b7c57ffec6c73a8cab976031b32c33430807913524a3e5ce0e1627dc11495aa31a0712302cd26e7d980bdda08542d30fef9a1cdef2c302c61b39d119c09909b338529b89c4b52cbc5111c20a880b493b01902ac47feaa041a72426b4625da3a79704a239138eca642f24d382dde6a0c549676bccbc63010ea8f17dbca231e69ab7acc5a9d9081090cb653871532fe48879842e7dc41bfb8820f22367189b31d1f201b7c50e25466fe4891115c2c8337a637e964c5d88c5e752c9a247047bfb2b0df93a36d06d80c3230cb628ecb5997d999b1a70a5fdd8b9588678d1e892c330bad5aabe0927029f173b6beb512d59369739ac8f0b5fb1663a874426eb31cf1818199b984c6c01b70cb56c2317078c393e5a35cc749c7d06a29c08a3637854a3cad724e8c93199dccc115b5a02902f29b482c6f1560ea778abc9c0bfcab0f4468761e17c8d265b93ba7927a2868f78bcbe6374723646a82821a4925c548679ed3bc29fd6022ea952e7b8acc220aea82c66c75c1a9d4a2a7f793ebb969b877a85a3a1a886cb57c58b3d0e091c5d136dfde61f1685626d73bfab6b672e95628be27071897d880007ef364982ea4547b195bfd79323874000d8179876a61b0589fe769e7193378c61149627acec65616d701f08f654f486628cba1574e92ef7f96c44a0ad9057b2b175012dba705a4735db91cf96155146dc53ee32a8e7620d1f6c0d969007ba84b36fd2bbad660882467b6675b77d838b95aa32c6fb04f109b1c8eaa181c4afe3cc7e2e301c8c89cab8e4587fb472dce46f3980aa62a61526b79108d611c9c103eb05746d58ac6cfa58c4a474d2a54f96e8617453847cbb296038498121b867f9aac8776fe153bf3f8895a5d02df74c934e2309414597c176857955bc7bb3c5989157ea63bddba696cbe57fbff0c71ff637a54117939708db26732ba13b33783416d0cd3390a437e8cbf4c978989000ada7c5405254b9e9094c5b9c3d211f03e205e6469c478ca212136c9ee79a427b00370b2138b0c11cb435f93c4ced3326c3b1bf9a2991f9c4c285ab09453a2cae4797aee106fd95949f2007b8a6177a18bcfa717106688c7c536d955b3db2f730c832b19cf84b31462c6c4623527b7e454085aedb59aec591b69349b00668e170b2667358daaba2d959250cb0486f0448768689b2c5450e8ba2fa3a77e9e9080dda636ffa09081576fd2b0320e69cbf017d468309076884aef925f6a9938e76b52b453eb8c563411977551057ff750f1c206236679c09f98b34026b42a2c778407014396f9cab89940a3d66d76ee512b7f07375ecc039c4258a1c7a8fe521868a99c18cb78b17e78334e598a5260ca42163ba705295f28c36cb19a242216a56079826483698bafef6755ecba3b7091ee2c3c6afc9b9d2f42317a51e2a61bdc229a4b7051afc6472062a440cc7b684e200aea93232ba945d21007bcb58bca99b269c5cb46b3915197278c27bece1b9a4e6ba09ba38573987f30490f57c09e750c9fd87be933a91b9c59717e3b5c6fb660eac8556488d942b4bb00711b2c93e4232c1c7a08669776a3f607ce80434a94334b45589b1866bcc69bad27ba323a563f47bc34073496a468dee6013330bc9a219452caa35c1a522c45c498fd4ac5564627d564d3881c731a9856ff7619622aba6f928beb9b9373b1104e2cd2e6246bdd88268c1b512867ae4ccca21140f0c046b5e5817fd64a2f93383c3a5add2f62784e2c8e80c150a1c8e1a8a47232787ad529333a07e0c512332799d9896a6071bb4e4fab647440f82cc85630c629c2c2068037948b575a1693f81d2a045a9c5a5c2306e83b911ea1e86db5763f13ca6b02ca8905b50faadf5440bec7b49913b371f0c5786fc585dea2813fa9ced349d9fa32cb5030b5efc274522ca4c6985b9dbbb245465a8849c4c78688392b0ab5bca98b04c7bf988ea84292c8505fc7acf90199eab7c31c13252680c71c9c333e91a0adbc1bd00d023c8d7a7c9068c3fa9b3cec75234663a2b73572ecc71e53a8eb5889860a336f77bbcc1c854d0c3c61c65216373bf2603a0ee72af8f747bfbd7401bcb9d599b6cdb02c210010d0425917b72891c33c97e9b39a677010d22a784003e1b917dfa3273246acbb45a79c7848143f0b583781626ba02a94922490c7b3695a787d9ae22e5470d32cb68790d75b81c55d084a43c4399aa587e07829510220469ab5e6381517bc9059353b68160ebcb0edf969e8c317442c4058423c3356b34035b9761744fefc76145300908da3c13f95eb3065f2cbb911437cd24f815197c0dd3f9c87e3b54432c50de1c7549228c5f9c32ee8c19fc4cbb04514025645e0fd1468dfa274e59a50d62c560eb051eac35bdd148ef75b0b05357619490cbf08b0b13767557c5fdb310da985dfdb9c35580217067a8c68491ba64307a618d272363ea346629ea6885acc17733a801166fd404cca58b591b68b2c73a9e890a13bb173584d2b6db351133e75d258995ce46a8f798a44ddb8526633949e5442435c7b3c083875760c00614665c4a2ab92c378863a3755ddf681905ec2044c331c4b976f6ea5335bac739c2be9cf141a9f3ab3f669c5fc49d74f79ba066a7d03b0c2036247c86305bd45194a00e33a1179ccb8d05b374deb491bf5c1d6adc4506803a8c65b18dd6621a5820ca93c339dac2bbc098c22b4e1fca3cabe58ceab66da6a35191a29ad82c74abf1c823200bb197015e074d14f224fdf30a51bccc015a152b8443892b7450734b34e77356231c6a8016aac430db0a8954c7a416b43d49120fdc4017cb61c3bfe70fbf24773412b6a91375f381658d57677fe571c3bbc800cc80ac597a8f2c5cd1f19567ab1f4c797a68e6133507aa90d1ae096148d313b48096ab96298c33c3828d645a28098c777cc10ce068c035a71f7a2a36306fbbc311d3d14214c042871388dc899ca2116baac1aa5cb261af35a0e255b228498295f6b4ae171dfe21b5f66671af532253dc724a893b933829a0c275c20407898911472a02eb484d4ad5b8d274c00bd9377f3c497e6845161868434c968bd847ee90c2ecf600867cc790b005061c8d5c49339dd3ae23920e65da2a19d649aad1b722552e07f51cca7b87efa315b6191b31279509d78b0e974860ba9f635283412038efe3ccb2a0c643c68756149a03b50f6891b9fdaa099ed50d7a012c0175b9518c15649396d94ca1266979893e82811af8c142323fc3d38b8b5e554fd046d93317dc6d0ff28990721c3f94a93024ce01b01c0ca55d634c191c4280fa71600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f + +# Official test vector 28, seed: "cd6cfe94e9c0a1cc4ffdcd2d7876504be5f50f1d1ca5cf93482943465b268276056f2781f4de805c138976ca72621387" +seed: 2e889f44e28901e9ac7ca6b2fffcb124c8979401b17064d7e1d51a7e3c3adbfa0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f +public_key: 70d99d171745edca3a65045bf6e0625aa4955fd125d332ad33f9a3ceb2313ad50c97614d038547f22a135a33c06c61545b9a26b46c41d1830b83d0257fcba82b36510199224855bd1a837a369a2c823391b1f84e54959a06938513681d97f34eeaa7bc42eb13574b29fb785c457786ac69ca22f644a1d53278d4c2e0f325a1209a0ca40fc32b92e906650b484e7d92cee99a078f5090d2fb60f84b47dd44224228443d36219a081f9956cd7983ab223bcc094a0c65414cc2aba8564977b147088ef41aba589653e535847450c762517dfa462037c2c1457ef3d1909d0b79d66ac6ed9803ca88a7295c4a3ae53cc77c235cd8922b36ba8b837f375755326a960beab71aa1b33a8b64d6076f0889424b1875ed6316ed420db7e02d731b2b3065c7e80115fc1406c125b651c2b4ced28ae9c67cc505bae5b747e5722f4729602bd1aaf25ba333c29ca011ce36f55494204b0f70895938c9c4658044740521097d696c8efc045709369f88c1cd46bb763b957db8f48abf1a07f431845c94beb7a3a68d42af6c2c3095f829de51b37c134f977461aa2818073682def71a65291904f0c214b727fcc7b522c2a33f7a2e07a65926fa5661172103b390fde2814b21273b318d029a112fd389d0324506d280be8c49bb923412f4c430ca82f58ca8b7122907b986fe912c323b1758901007067153db7b16168f791610df534aec8050a58296f58b7549f0665e13918c784da2d00da79559ee006566050482b2a13baa4884aa83351753cd7a48e6385292a990ca559c8d630a7dd4947e428198b06242179c369741fc067dec411765c58364d32ba655350530a4aad934a1d14b76f55a19ab7f2dc60720124a2b69ca703030b2320dcbd459cadb6662fa0aeae170f880797e2bb0a2f24e8dd1442549ba4510153640ba7f093acaf41f67f55e4269260ce2aa28261d4dd4acbc2a4a134751261991e7b36183387893c5900e8a611894c76c26217a390f86e5068a947457db75e7214b8b05a3c87251cc2101d7e6115c908d2721aab224b038c1b9c348a3c04c081496928da726c0d140d363a427b93427f16841c97447698cd0f360529725ec86113594045e143659cc1a0667832f40aa7e059d0b1389048a75429886095b3ec5a646ea12a09424338c6ab729a27e595ac7784169c6e7c7bc208b07a44cee5940f85896a7285845a2a262da092d1b0295821975754898bab492530e44a410f35563a1e45775613192dc45df526cc19b6eed8186e6f706e233542a4450fa6c89bf993af5699dc0e46965417433d5b1882340a1294d4b229d42061bade4683f8557dab0603fab1bcd956b29ba8a2af60093654f09e70f07eb3398f7bed1354a7982416ac40860538c36722ce1b37322c4a888c2359080704490b613c9a5f7318566a37139563c40d58c055b827145bd659c8fc6b7908a071fcdf0b17e4351cf3bcd9e8cb9361985c70c49bad71f860b36ae120f62c06f3b34aa4942985d149db7b13e1412cc1ff59dae21cf50017883a0aac754ae6cacbe87a46919c05752877840556af8d56fcd848f982b415d333fd8640794918ead0121d12309bf622d9c97551f294c3822644834b38fa844a035cb5458aa7240f750287f95feb1696d88988eb0648c3cc0fa9d4277fd9af8c579271f4c77 +private_key: 101ab759f6afcd596d4445b4e3a1907b3955f81641cbd1aaef79b22ec38af5a081a570b67dabb410aa3c78925c82384b5931908d147926230522da5cfed372e9eb2b94900625e74caf1098144572a3d9ba32d875c9184989c823a3f23da4144938b88836e9c708e52967b8413f206758f578b340b2936b798775b7aaa09efd567834e52afbb17bff8b11fa0435e6f55ac73219e79254e166cbd8dcb95f0874f26925dfcb93f9461b2a48925026651b0cae117483d65b3f57b90639a39b16b1535647079f12a0d897c51cf60291a165fb884680071656c407c9e09b31977042a2ab6783a9b448ae7d924243dbadc5b00c00303c9a12308bbaa51f024884126e01346665f67344d2698adc13159a316e4175dc532c75d40d6ce54916da9ae3f763efc74dc9a904d7d8941fa34e493a74e0f9032e44a84481916530573d4b372fc6790b3c357a6b6b075b87e6b1a82928037da41f265c7a493abae425c11b6514a96c6e3949520ea4b9a7a18c76c53016a0ce644237cad882d79c60739a4d2651a4e900463a224f1769a40d04cd1c2796ce2860844ac6fbc87b00379446a637f868b73be31c57f41830d3628babb45bd5b9712b33bf5637e897c6bae6cfc6717dd87ac5da5620ca04cae154bf58f61024873f4ca93738a444801cb5b61acbc6098b36747bf6926e78b08939116ac1604e5f61570dca65832ba04c8c64da99838be418b61805b1382cc899559a62b73230cf126a701a56aea6795e6ee95c2169ce82ca352a5c411d89881a3a992704143a06d01ba15f9f59083bb70c69fa5b7eb72036da024a3707bee499fa4057a52c36272579209215f21890216c0f0dc83b5dd38867604a6175c417962a8a8513dd5aac8e0a806bf24a855c89252c392f6acad0404f9445b0b781bd26e15f4cf4a7d815bdef3936001219955797c90191c7c794987c3d1d80b07c04b14ea5a6ad49bd4ec27720e68a8e855a042a8b223821dad9b53c00912ec92249ea15af46091714759d04b4734a5c60d979735741c9acaa7b62b413c439a3bc7a6510c9c5900af2177bc5104c0c079c67a03a12f923ead47e1ba85753f822c7334e25a02a1b155e0b4c22af82b353db202627b2e4949a3c874c7207c0d96480c33c9070723b9ca1a2111321fe22170544c255d3246cfaa6960264ac042168922153970a6df7a465690a7348c1ec77b997bba243ec7508c88b730407bac2a9b6040b83ba7e034a7388e78b010ba662d15eade2495ae63568a12349c57baaeba16a32c363245f599475f7e141d1d2462076abe3071fa2566c85197bc79b24876461f9a0082f4701eeb619cb5c4b1c169715729fe2e27d85890def829473d33f47bc7216030063466f2a8c9fd5e14e87374001b256a6b98d3c53094811108c1cb6101a6bb18a8bcc7bbb7b4278d030c7f04368d655c848d1a22d8a79fa787613b653cd0106723c9e8f81439083a7f022b9c98b6dc7d39c2c7b5b61f4c8dc06728741a641a9684808b20ff84a9b2a569784705ea2758c0176517ab47c22b408ab16ec20b849f1cbadd7ca82332107d41f7e6a6135365f86098fd9a66847e03641bac2f1c933baf967e94265d40847976b68c49730d245b5723b9f70d99d171745edca3a65045bf6e0625aa4955fd125d332ad33f9a3ceb2313ad50c97614d038547f22a135a33c06c61545b9a26b46c41d1830b83d0257fcba82b36510199224855bd1a837a369a2c823391b1f84e54959a06938513681d97f34eeaa7bc42eb13574b29fb785c457786ac69ca22f644a1d53278d4c2e0f325a1209a0ca40fc32b92e906650b484e7d92cee99a078f5090d2fb60f84b47dd44224228443d36219a081f9956cd7983ab223bcc094a0c65414cc2aba8564977b147088ef41aba589653e535847450c762517dfa462037c2c1457ef3d1909d0b79d66ac6ed9803ca88a7295c4a3ae53cc77c235cd8922b36ba8b837f375755326a960beab71aa1b33a8b64d6076f0889424b1875ed6316ed420db7e02d731b2b3065c7e80115fc1406c125b651c2b4ced28ae9c67cc505bae5b747e5722f4729602bd1aaf25ba333c29ca011ce36f55494204b0f70895938c9c4658044740521097d696c8efc045709369f88c1cd46bb763b957db8f48abf1a07f431845c94beb7a3a68d42af6c2c3095f829de51b37c134f977461aa2818073682def71a65291904f0c214b727fcc7b522c2a33f7a2e07a65926fa5661172103b390fde2814b21273b318d029a112fd389d0324506d280be8c49bb923412f4c430ca82f58ca8b7122907b986fe912c323b1758901007067153db7b16168f791610df534aec8050a58296f58b7549f0665e13918c784da2d00da79559ee006566050482b2a13baa4884aa83351753cd7a48e6385292a990ca559c8d630a7dd4947e428198b06242179c369741fc067dec411765c58364d32ba655350530a4aad934a1d14b76f55a19ab7f2dc60720124a2b69ca703030b2320dcbd459cadb6662fa0aeae170f880797e2bb0a2f24e8dd1442549ba4510153640ba7f093acaf41f67f55e4269260ce2aa28261d4dd4acbc2a4a134751261991e7b36183387893c5900e8a611894c76c26217a390f86e5068a947457db75e7214b8b05a3c87251cc2101d7e6115c908d2721aab224b038c1b9c348a3c04c081496928da726c0d140d363a427b93427f16841c97447698cd0f360529725ec86113594045e143659cc1a0667832f40aa7e059d0b1389048a75429886095b3ec5a646ea12a09424338c6ab729a27e595ac7784169c6e7c7bc208b07a44cee5940f85896a7285845a2a262da092d1b0295821975754898bab492530e44a410f35563a1e45775613192dc45df526cc19b6eed8186e6f706e233542a4450fa6c89bf993af5699dc0e46965417433d5b1882340a1294d4b229d42061bade4683f8557dab0603fab1bcd956b29ba8a2af60093654f09e70f07eb3398f7bed1354a7982416ac40860538c36722ce1b37322c4a888c2359080704490b613c9a5f7318566a37139563c40d58c055b827145bd659c8fc6b7908a071fcdf0b17e4351cf3bcd9e8cb9361985c70c49bad71f860b36ae120f62c06f3b34aa4942985d149db7b13e1412cc1ff59dae21cf50017883a0aac754ae6cacbe87a46919c05752877840556af8d56fcd848f982b415d333fd8640794918ead0121d12309bf622d9c97551f294c3822644834b38fa844a035cb5458aa7240f750287f95feb1696d88988eb0648c3cc0fa9d4277fd9af8c579271f4c7721b12640bf755e94ba06204982458a9be11e1da542ece4f3d284886800fc8e8e0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f + +# Official test vector 29, seed: "265eb2de7099e4bd5614e5de7f0c2a05c78ef3e8e2dd4ae4cb70f3e5e59c8d1d88248303f07de0c5508652da66b47222" +seed: 174aaa36410566dc15a5e62874218d7abdde0b2c0f30d877bb80b1abd5f5a0a450a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed +public_key: e770043be600f7a60b3b370bfa6a30c846c475127924071e3120879e2a158433a2a3a7791c204912da8576bc2722eb9e38139c198915986b58a9671fb054a81443553ad74563f587b226a9117c133ddc10dc0655a7d52d493b7b3db9584c49b4d1f41c06665a3d07383057ad70b69f85b6cb2682238120b830681794e042d910467a24091d81322a08aa1d83b0861113756615a119503af837eba16768046b7e64ab5940aad4da6e3165ad036959c39bc69070bd7f074776089aff76b33dcbb17bcbbe65b526c795b65943821d5b52ac1044cca52e3403a02604a1b4d9cc84e4b72b2c136de898a12451d8c74c280a67cabba42dfcbea68455c5f45bd3ec03bbcb3f72604df70737a01683369c8a57091742c60f089a673da350db8ba39c2a1108aa6a4e2a6f24b13d95f004801b240b50067dd34b60991db2a42de3dcb2c24034d0cacd24c890cac7a134bb183c92b5d66c7000a5a3f80898754827c9a7cc01a1550a9cb4f4f18d5959be0ef84c35b54468c55a15d274f996cb74449d1e5b2f88bcb6d00912a9305879bb156bbca9843610af2c5193363177d2b5867240d207819498a98209c109273dd44a4f2a06549335a63afb2660d212592c417b426268485a7e8693f865c0a7960e073153d5e578a74b34e9c3a57eb20fc825ba59e56359a627f358a4d7127be7d571c991078d9630e1262402a731b14b9f0ee4a3fa4494bde9aaf2d4603af1178b8b49a649056fe314caa92df6d816fba591fc4961cf0509d0dbb02ea7321ef75aeb20813e33a9717478be58b49fca3130ea2b54e62fd3243f4e240e54c08d26c5020a9512d2536c486772e725267bba974f3a451bd50f29c55c7189012473ae1e5a7ef35c0b479679f1a71fafb41ca6d16b39f100201bcf2515075a1c9f881a7ae4f4733b149e7c29973588c161616e9918062236332cc67f26a65fc72c78564312c429cd1f3854eb98c0ce91be6d9a24aed0ac65bc5d805490e1d8c86963c8adeb8755e0bcdfa473ee23037673773c46911ce0baf8c81bcd8047a9d19175f6bc31c2997c62c502b934d7651fc51562625538e24b235c4c38cdb82fcea4abaa963b3d67b3679b51a21cbd77228338a95b4d641b5eb26644a58a59abb0a8c0afc8894792b3c6edec9ccf7c29c620b9ca262c634621d225228f1503609b548f0418648cab5b9609e7486d57e5824c538037d32319427a3b077703a7368270c9b752217eb04b912a3843f4afa829b38174bbdd1cadc8c74697544f6229068344441ee2863150716339716ea6a8245a3c3c142b986b7462fa2417a413ab718ceb196f15f887a465c8f901c55db4718ea58c71926ea344c49635149014297275baecc90ad1c95c75281eb885264f11123ad8cd7cf1968e885220f0964f25510539be63263a4eb6169f7319f0086fecf996d2e852f139b500dc1fec8824430505a7702360d81823269ff4b2622b54b7f917bb44714660051c31d9b39494a64a86c15c516437c4a437f41c0fd5922dda52818336d93a8c750203fd859b06e127d8e33b52c34411e4199cb01cbd70b8ef0180b045119129aeb04398841bc8261444c963c3fc11c8dd4c78dc5a8cd902687e36aca5f2667abccdf2093e5ecb1a4f09769a8251104731ee68587d0a470e2ee6ab99d3af13f31776 +private_key: b6a8be5c6c9e94c1b41a52cb1165b3e857604ea413dc11813442a518bbb3e1d84724109f9b1288f5f34d06c3aa30d913954c5c053486b60b254f3250e9aa656dd71553679f5f112d8e8c7f11e6b19072ab3784284dcb2988cc10d673a423a0c202f03cdcc74a43422a2fd3b934b67bceb074a349b8524786f6c126d72a384c0a84fcb8304af2c3d65994e5095274d2715d057b920ab40219ab156cbaf7c314fad57122505ed15a61dbe66cd83bbacdc9b3d3a1afb0d607d6e01a3e227d3109a1ea14696d84beb84c0cd02b2964762a36f153a8b82733872b0ba6103437a191a59439fc3e2ec899ba841de42bacae534bb3100854283175548ab055cedb836b49fa5841ca698571c4794c7648c65d5fba44b3c57d925aae29cca857301f61b6940bbc28b634bbefcb51037c301674297170469cd7ccf39a828d2110f8f3b9cec915c6423163d90b2dbbc644864a6f8761e83371e2c3724617b7ccc893561337bfe7832cc4a0636ab871f07fe9b93b7169029bebb7afbb02ab249ac3597e0ad052b233a454f6628c52c6727a4267447bf11064b61a1ba6a4b7eda764de23b0bec1b954d3c5882432e1ba6ef1b94eb1464086ec2a5ae0167eb8b5ea2b40c01953f223544e49bb5c441174537cf8953c74d318a5b4b6190881cdba5b1305b6a3e2528c4c8825107fe323ce9e979f5d33aa20712b6ccb5cdb449989922b8e571a71cc458537bbd8e9a696d644c713bd25607d4c26a39bbcc11d58a4154c1161bb1e771986a4d923dc9936806498cee91c3ffa819baa73d1103b868772340a1b1ab664ceaa82d60b328e2963259c039e12798adb66e62b827fabbd32d7b29e615ad76cb5690550af975c2edc1aa8849566cc8bd2639f009453d1fba689ba14d5c68d55ec1d90074de4b47a84944714a9c11d55b271727c64e566762459f7e381763981776665c3d908110a74b7977678e011c36058de9606ea225084331c0f2479de36c333c26122ba9fce2b360628b5b8919838829c2ce55b12a6b80a3a5ef01998549a1a26223a96916ddb8a0258b5ac936b74d496b8bd249412176b697182054b744301c2a3b10b2fcbcc11ccc89ff5b40f079817c186893bb044559ab646626f683191a03fd6f41506ccc6f49627c09a821ca427e8122ff91234d5d92318863aebe86466f108e9a51a37822a990bbba5e01292543e756b64a2191fe855844185a673c584a2c0897e1b73ead8ce548833c03447dc32bfe6f0cf615469ca61c376a3365fa6cb79c6129636c48ad68dfe2c1553f01dde270d1830096a03072095bfa24282f1d100c2673aca13c1acca01f158aa3a593d0b78458b75c8f34ba4f9391afe255dcc715eced306545a6a683191ee731cab1177532882d301a482677fb4c38d6b69201f0920162641f7f701290969d5c63eaf13a133563e95ac5e88a42f4d128b9c69b5c3f16b76a6731fccbe6f58547799bac3c9a6f3cc9a13ab0cd26a50bae9774acbb86ce8944fa01b16840a8b220d7886197f671e64a41886c80af2f66e899155b125181118697db62a4a4a0da162240e0218739cb439406219c679f9857dbfdc73d96a0f7a3181eeb3b38d8b31b7da8e65f30995f778ec5b4026a28ee770043be600f7a60b3b370bfa6a30c846c475127924071e3120879e2a158433a2a3a7791c204912da8576bc2722eb9e38139c198915986b58a9671fb054a81443553ad74563f587b226a9117c133ddc10dc0655a7d52d493b7b3db9584c49b4d1f41c06665a3d07383057ad70b69f85b6cb2682238120b830681794e042d910467a24091d81322a08aa1d83b0861113756615a119503af837eba16768046b7e64ab5940aad4da6e3165ad036959c39bc69070bd7f074776089aff76b33dcbb17bcbbe65b526c795b65943821d5b52ac1044cca52e3403a02604a1b4d9cc84e4b72b2c136de898a12451d8c74c280a67cabba42dfcbea68455c5f45bd3ec03bbcb3f72604df70737a01683369c8a57091742c60f089a673da350db8ba39c2a1108aa6a4e2a6f24b13d95f004801b240b50067dd34b60991db2a42de3dcb2c24034d0cacd24c890cac7a134bb183c92b5d66c7000a5a3f80898754827c9a7cc01a1550a9cb4f4f18d5959be0ef84c35b54468c55a15d274f996cb74449d1e5b2f88bcb6d00912a9305879bb156bbca9843610af2c5193363177d2b5867240d207819498a98209c109273dd44a4f2a06549335a63afb2660d212592c417b426268485a7e8693f865c0a7960e073153d5e578a74b34e9c3a57eb20fc825ba59e56359a627f358a4d7127be7d571c991078d9630e1262402a731b14b9f0ee4a3fa4494bde9aaf2d4603af1178b8b49a649056fe314caa92df6d816fba591fc4961cf0509d0dbb02ea7321ef75aeb20813e33a9717478be58b49fca3130ea2b54e62fd3243f4e240e54c08d26c5020a9512d2536c486772e725267bba974f3a451bd50f29c55c7189012473ae1e5a7ef35c0b479679f1a71fafb41ca6d16b39f100201bcf2515075a1c9f881a7ae4f4733b149e7c29973588c161616e9918062236332cc67f26a65fc72c78564312c429cd1f3854eb98c0ce91be6d9a24aed0ac65bc5d805490e1d8c86963c8adeb8755e0bcdfa473ee23037673773c46911ce0baf8c81bcd8047a9d19175f6bc31c2997c62c502b934d7651fc51562625538e24b235c4c38cdb82fcea4abaa963b3d67b3679b51a21cbd77228338a95b4d641b5eb26644a58a59abb0a8c0afc8894792b3c6edec9ccf7c29c620b9ca262c634621d225228f1503609b548f0418648cab5b9609e7486d57e5824c538037d32319427a3b077703a7368270c9b752217eb04b912a3843f4afa829b38174bbdd1cadc8c74697544f6229068344441ee2863150716339716ea6a8245a3c3c142b986b7462fa2417a413ab718ceb196f15f887a465c8f901c55db4718ea58c71926ea344c49635149014297275baecc90ad1c95c75281eb885264f11123ad8cd7cf1968e885220f0964f25510539be63263a4eb6169f7319f0086fecf996d2e852f139b500dc1fec8824430505a7702360d81823269ff4b2622b54b7f917bb44714660051c31d9b39494a64a86c15c516437c4a437f41c0fd5922dda52818336d93a8c750203fd859b06e127d8e33b52c34411e4199cb01cbd70b8ef0180b045119129aeb04398841bc8261444c963c3fc11c8dd4c78dc5a8cd902687e36aca5f2667abccdf2093e5ecb1a4f09769a8251104731ee68587d0a470e2ee6ab99d3af13f3177695d9e5b9151d87fed52e287992acb897a07b10ada1dd83409a5ccddabf9d7cfa50a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed + +# Official test vector 30, seed: "806bbd111f27c2668318387bd0830f65ec21a51af01985ef48d03d64e1958ff7ee5133a4ebf6dbf36329bcaaf65f40ea" +seed: 351fe4313e2da7fac83d509f3103caf7b4c64a4d458fefdf636785ac361a1390f072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda +public_key: 13568b12232135a5896094834cf450d789ba498787368b4e15f1b087a704e8e327d631290177add97c0a0d84820ce367dc515fc362aaa98aa7911a867a3789f69a5b68bbbabf3aabd037b5160a3f3d8277ec47898ff3ba5ddbbca6980b5ad47c59236eb33b2a9c84b212e93d9e70aae78a4f9f6bae592ac2b5f96eee627971d27389905b215869d9f4b706c379aa802b5a99abf754ca9316872f033ecbd5b34f72c610c14037540a2c86ac7eab0c3af84729c48610615c9956751759660b3c7bab57146f7b1088501fe14b2f59141b1bc6302d88a35fe27e0cfa18c1a22a9eb517ca6060f25408d4299a7f46c458b3bc38c4794bda8f9079043854179db0071af69c9f074a83438874c882cd18b69b0b2009497b6fe94a9264470be8256b49b6c353374ad49c04b1276fd484338796e4389a523598f3776291512e25fbb5fe98591320c1bb47c6ef3b4bd1d62b6997b5561bae038854ceeb41b2925c1f1a81a702b57b2815f62aa9eb2625ff3512cf9595073ca623da43f32c21d63297a491b28dd8b1361bbc91b40b34a65f1a2b7db86b0b3bd21b26ca5795b795e355b45d1623b3a9731218174b50966d6937ed057fb10b631a51b7d42072a0845be8553e19901fb0eba35f5142c75857f642918bf24544355c4041102d8b197b429fe548433eac36c42077ed787f8e631edb856d4398a26d536911ebbd9f9c22769c756f858d180b6b51797fe9ec0833c908d9ab2730d937b76a0febb68fd84372c96c3c05197093e26d01219c15f898b2c7ac75d11485a2a413a065be744e0908b6340155a244838ddb14b74c578fca2d7e6c4e15e68421a568e7e39a4a04231926768ac4a061d67550a8512e780198738bf3e2420cf75680d1cac07798c01ca06102cb2ae5c9b99b62a7349fc8a2c558989b68e3789c2c7074b476d18212846c8a8d562166829a36587eafc95a362874e812aa951a6995f5a94d370afc9b64777a7e58cb54b62a95476ccd323073d6e466e6ab909b4b4cd840aff393c9391902f4c05bea833d254207cfe938669cbee478c57ff4424004003d151fe5e90413924bf1378419e08dbc46911e2ab2b7f45dcde5c549f679691632c3d9bae26b9fdb85c7bc3301a3900386873345974bdc007f869155df79cfc6f06c39d8bc9a99675382358ba25836a15cc222ae78e4a85a19c5da9912e48128fb37a7f386c0fc86afcd2869e292ca9b521e6ef9b12908ca5d800ae1a7a3a7070766e2802a947c7edb3452a377d9c1bcdb152d37db41ce7c74c36b32c59131b1b85f9b68a3b66773ee4a2b81f12509c33cdaab4caa563e9bfb3cd9c4c72354c1e88423f94169e18bab1a9798cb99031ff852e79229630c8f35459bf40c425af7cb0843498a3cc7fda53d932a07382018de07808aac2b4d60a1e242beffb89489ba69a6a26446180103c11f7b22361f651777b997b76ca8f5a25b97291058620ee5479e92aabb218444aee52e5c8294d578c709158f655a8930fc197f765fb3790bd62a5fe11b57f273775da27fc1b5128663c623f5175513b753543bd71aa045e77e4bd42b7e7baa5ab2c4d3c41f4db84af265acecd4906fab897b5abf5af66b4c4a0b4e783b417c6fadd71d34ea294ccf8b8c8012edb8badb3437b191165cd639bcde9eb71378e71fb55129 +private_key: 9d4548bbb50474e5909a3b1b9fe69c379117a840ace316a8fe3a0f68cc2488c4737f5469f025bdd6378875b173ea5b34119481b7a23388d20937eb5d85a566c8695106645ec3cb1bdc1400c1f3220669b2cc09ab752205ef2bc16961278eeb863d2c58df1c77fbc01d6f298b89049326314323a49b99c7064e8aa44f148616aabbaf76800101406ab7a34402a8da606aa9e2560deb8f00a14072e204febc3d2a48afb18608d03aa8c0a1ce1d591ee79676447a1657e19897f20b0b19a513daa2ca415ad65a2e77066606890c5de69e45367a668619e7e4a38ce656fc3702e5185142f65a6ba43d892b6f086ac0e6bbcbe0e04869eb48921936ead6c91ff3af5311b10f2622c1b137a5bb82b63247d6fb12200901e93acf5e3466ff8160d7677a0f9825d2ca85dababc27b24f3e52aa957b7371685e5fb56f1edb91d66c8ec23287846119eca062d9050cec162a8a6332cb4087d9270c7f022773c6664fd74b85eab209d15e6fa2145297232394138bc54cf4c6cd2841a65ef48cad8384a957b42885236821a3d152b631f01f1574b28990045da08eea352bdfa8bc79fb621c504dbed81b0577aeac881026322c0f295216019bb3a11569b74e91d019a6da89caca94879c801b331c115896054750fa6111207c0ab1d2ba8b328912bbccc2494a300356041c7ce28043880b56db58c78da121b41ab4d2127711c5088ed232b7b536bf00b542b15800accc5b3677802807f0b23878258d18071c1691ae63054d3aeb129798bad2f11b64238d7e83cec2717c023b5e7ee404555393541191afd8b7a79a88c36a2f711c3c2b79c64c405a84f2722643458f4c6cce4cb2556963926c42303c85d87861f4055673b7405c5b6760bb52909290168c50e7f599b798b2f6ea119f3a387d59025954c2571b095d6c761d2932d5a79761f25e52c8a64c765b2220a3ddc38039d7658b1cbdb770574f0464875b7e5c9585abf8b4b9ca9391c1a6ef647063046ddd857f7811c075250621228b80787879651f5843c175eb86883a73cdf97edc6c6b79cc917cb710744b44a9d455cec7a0c81919b600c755b8506003a86ed3276840afd59344091a8430d4705ddab1dd849b96d7238ea9bf63696f709532fd49b0833840e373336c8119a1e229e4881b23868ce260b3b3378feaac8730e69642cc068b4a6b16a0c83e4a484de007b6eb2464836242f7279a754a73e3a8cf378eea351fa7393a3baabcbe08b23ae9887b973b6c653b1bd06a5cf89326d223c365791888b7010795f0c056428425b0f647230c669128b9e0865152aab666561d43ba060decc51a4aa7a0e20502167b69f31d2e6b8b6c63135d91ae1b899afca84ca89bcfd49a725184a6be2289142248439aa568d9c18f492123301792a1ce41fc15c0739d88d05c5ae4508db9936717049df17384b261e8e1910a70cd56208689954a50a41711f9bb170abfed596fe077053603694ff7bba7f41789801df0e64119e962594716c585a30b13c44cf97d9bba5d577285827537688976933569cee793f24733656b97ad6475024cac8902760fba36ada22b9086187ac68dfd26ade8e66dc8773f4eb764d322732450675fa715cb02095b326bd0970713568b12232135a5896094834cf450d789ba498787368b4e15f1b087a704e8e327d631290177add97c0a0d84820ce367dc515fc362aaa98aa7911a867a3789f69a5b68bbbabf3aabd037b5160a3f3d8277ec47898ff3ba5ddbbca6980b5ad47c59236eb33b2a9c84b212e93d9e70aae78a4f9f6bae592ac2b5f96eee627971d27389905b215869d9f4b706c379aa802b5a99abf754ca9316872f033ecbd5b34f72c610c14037540a2c86ac7eab0c3af84729c48610615c9956751759660b3c7bab57146f7b1088501fe14b2f59141b1bc6302d88a35fe27e0cfa18c1a22a9eb517ca6060f25408d4299a7f46c458b3bc38c4794bda8f9079043854179db0071af69c9f074a83438874c882cd18b69b0b2009497b6fe94a9264470be8256b49b6c353374ad49c04b1276fd484338796e4389a523598f3776291512e25fbb5fe98591320c1bb47c6ef3b4bd1d62b6997b5561bae038854ceeb41b2925c1f1a81a702b57b2815f62aa9eb2625ff3512cf9595073ca623da43f32c21d63297a491b28dd8b1361bbc91b40b34a65f1a2b7db86b0b3bd21b26ca5795b795e355b45d1623b3a9731218174b50966d6937ed057fb10b631a51b7d42072a0845be8553e19901fb0eba35f5142c75857f642918bf24544355c4041102d8b197b429fe548433eac36c42077ed787f8e631edb856d4398a26d536911ebbd9f9c22769c756f858d180b6b51797fe9ec0833c908d9ab2730d937b76a0febb68fd84372c96c3c05197093e26d01219c15f898b2c7ac75d11485a2a413a065be744e0908b6340155a244838ddb14b74c578fca2d7e6c4e15e68421a568e7e39a4a04231926768ac4a061d67550a8512e780198738bf3e2420cf75680d1cac07798c01ca06102cb2ae5c9b99b62a7349fc8a2c558989b68e3789c2c7074b476d18212846c8a8d562166829a36587eafc95a362874e812aa951a6995f5a94d370afc9b64777a7e58cb54b62a95476ccd323073d6e466e6ab909b4b4cd840aff393c9391902f4c05bea833d254207cfe938669cbee478c57ff4424004003d151fe5e90413924bf1378419e08dbc46911e2ab2b7f45dcde5c549f679691632c3d9bae26b9fdb85c7bc3301a3900386873345974bdc007f869155df79cfc6f06c39d8bc9a99675382358ba25836a15cc222ae78e4a85a19c5da9912e48128fb37a7f386c0fc86afcd2869e292ca9b521e6ef9b12908ca5d800ae1a7a3a7070766e2802a947c7edb3452a377d9c1bcdb152d37db41ce7c74c36b32c59131b1b85f9b68a3b66773ee4a2b81f12509c33cdaab4caa563e9bfb3cd9c4c72354c1e88423f94169e18bab1a9798cb99031ff852e79229630c8f35459bf40c425af7cb0843498a3cc7fda53d932a07382018de07808aac2b4d60a1e242beffb89489ba69a6a26446180103c11f7b22361f651777b997b76ca8f5a25b97291058620ee5479e92aabb218444aee52e5c8294d578c709158f655a8930fc197f765fb3790bd62a5fe11b57f273775da27fc1b5128663c623f5175513b753543bd71aa045e77e4bd42b7e7baa5ab2c4d3c41f4db84af265acecd4906fab897b5abf5af66b4c4a0b4e783b417c6fadd71d34ea294ccf8b8c8012edb8badb3437b191165cd639bcde9eb71378e71fb551293a7acfc3d283541d985e0abd85eba5315a17d6c4a7e4f248673da60c341c29fef072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda + +# Official test vector 31, seed: "ad540a9ce816d6fb1661e5483c44f6fdd00c9e7bd1a8ceda4b4c4d3697d4f78ed0a56954996ccb7da96ecb8f5cb15809" +seed: 9bc5315580207c6c16dcf3a30c48daf278de12e8c27df6733e62f799068ad23d5a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad +public_key: b30c011788cb97cb439789a67d476d3dd265cae63cbe43cb63aa124b93071d6812bc662f346481f974a73b16a505c48b9608359a3c035135258029a18b0217461830785379d3355ff3968d3c63a46685902425660b232b11b93997e60ae0a5bb95a27d553081f393040b1c30ec87535ffc6fe528b1e9866cd1e69520e376e0071087748691dcc057b95cd4c60707d8b976d6a67af4869d960d5466a9f3251dde92cfe8a0b03ea2c43bf03fabc9c9b5d97ea2f558b2bc0ec1908335ca4f2607cb04380a830b245f8b43fd06098269bf9ce33fc07c1e68a05f63560d70544eea4c0bc528859a5b09683b8b3d3c6842e6458061b7ddc4b23ec6ae83d557e5c4b1848445fe253b35e52102517cd38030e6ea28a5e1a24bd09ac6b83c5dc658d11589900a7bb09a963480a2d76225ae55bc54108fb233785174b375a184eba110e05762e7f26139dca4cb197620156c06e47e5b74a0970bc6e18b1e1c919a6c0b10e7470d5ce09e2719194da0440ac3aacd86bf724aa841a83dcf64c8e1f7704397a4cd57bbabc9a0cf940e97e8921211006044228632382ef48fb5d3b65219a5a6983ad0e48ee39081f2ba1103bc9c6314090a31aa34213c0c319eead96b865cbc98327570b965bf00cb9bac18c640273d342cedd11d72e2078399c458068439a8a27e388d3f4bb285b63992b5a4354122ac298222e39d31cb886c4958f28c5c2f37384632b4db216b43ca6246051fd704b5969c07dbd525ac6a479e730f8b11c5d41111ac65764fd71a4f43be55c563cee5c26c69cdaa485d850c2126f2bb16f5766fe86bce17535198ce99c2a66918af96641b2ec74be2b61752076a2db330984ccd7021ce360a0c488143648389f492ba20ac566cf401383a496991497208b760d36da6896bb3587788597191c3347539be92b78cc6a2b0d8eb4188320ceb8aa6ee1018e9f78f4f8097ae7527ec947cb1b27dc8a86ee200020127531273983bf66746a7b731464a6b1524b18744a8c606648b2fb1a4339d5a15d7f6a5ea3a1c08122b773ab09564792fba2e28719a603c3ed0850f2d5045de3bb93dda7a84e692c25537ef695787fb0889107395f87c6b836e138bba9f4a711daa421a396f556c26e3778f4d364d5b1844118b367d78af37836fd7a9637f1714cd9a3e52155b0047468b5420cd5c6bb64138ba16863e18b4368542800b378537b5cf303cd2b191ccf783719142ffac1ad0585b1938281ceb5c86587c43b28c49d9111982ba7ac567e1fb64d8e3c450730305cc2e4e12cc698a728977cf1c9b373f051c17f1935177ae90aa8856a5a24d18a08aa942b4250a6447c35289cf0b334af45647e21b5a2153a8a05a38ac4c728a3350a15502cba347a876cc4bd12034935bb3dc14435930d912aac8a787db3ca33521637c5159b015920100b416d22c18d6a0a52612c7d75c15741b6954ae752c4d31fbaf1b483b6b6862e6a983d5465e3b7b80e1654faca5c669e77295f86263d344031b5ea7ab99e714c0a821042bd9512677ab9e89309f41cf47944da1801521402f211a6076490ae393818ea2056954b24a624e6e54acb7d5bbb32c14b339730af6a72647a66f761bbb78012a76540763cb29dcb9b8c27a3c1e43769c31af3ef54f7c8062d713cab3803437e759a01ee76fba1a5b +private_key: b141b7d0d3c420b8548eba8e71f2a751882023a2938a0628fea97eacc45bd2fa0e89f485e57355e9c58b57746519e2538060924d9032508a508a8a36382254b5880e77248c6734c7f841c309830ce19898233116c0482888c03378b5946eb53e4a59b190b62dbba173d4297405f9cd189c76fbab0786fac8a0e90eb3e8ad689726b1f8b321175094260775e143cfea2c22a5aaec749e7c7002cfe8ab16345adae43b6ca04bdc21632f799c77da62755184c51b3535830277d83ed07574ff8a478c06a7dc817afef2684c00784865116fb8755cf13d19750e01aa165132c2844c1d27409d975bb2b0c97ffc7222db3b13d47c8a5ee20dd147307bdc65b3ab91bd6481e17686d2f1534c0c73fb633260930a92c25adebc2bbd1299185439d0811ea303551e0879d825ccb08b7e307ba37b843854215ebcca1eba3237d95080c317979da65172146645a543ba045f13851781028669c9b4ccc217d5ba8585a1495d652dd89b402c87043e285d3b0c72eac388960367a428bd3e7a903ffbbd83614df2b33180843375f1c9af398975faca439b0a15b2bcf804c340176400d1b80e399597372b53380df0c61ac2f0a1757616825c8a3f90cf227ca44fc88e8608162232b1b5b882017843a6b61af95193b6375951ca70ade7a525633c75333450cbb38338a493099990080d99a788426047426cc89146b4afe079fec981884a4bb1a27931074a88bc9bc1271c40f2a8b6a1bc0ca4a24d71024bc7acc077b97cc47531d21de9f94fa8dbc522f78f698c77078788f6d90f67a661095b942cc5a349076e79ea90139cbf9c2216ca4c704f9992fb7a213c0b97d2bc5fc3491a6cd3bc599c9eb4d1469c3a3efc14b7c6020c4a85481cd86d8c2b2f51410ab1cccd55458bad9422bae77c1d544cc52c94d0d22d2e9783165548baf519bd05b4909626da8991fb48cb82b0c3a25b34f3c57a537039dba031857b40023b6ab8baa64b5234dc5403bdf3aa647ca09bec6f32148e99db47c7d141edc70c804b722559caa7214184ba97ba9802a7604604e90510295b21204b22955402ea572a12122205ade2d1524e57b85acaceb767086ee1218fd51f4799be7364137b364dd2f832e8731605c9c69f4848b3237b51ac791d4a5a3ecaa5edd29de90412ca62c5556a6389ec98948735e162745f383c9c59a99764583d19c72255454b568b908a0e0828b7dd235dbf2268416c1be640289606609f0122c0b492169954cf201a7d654e21541eebe5448b0175d9b10314397a6632865cfcc055e566b476be03773781b35842b6583105200e1cad7475bf95355268aa1cfb1c7c16a68d2c38b92b6841c0b545c5e972dd7794110b5d34cbafc9678e66d100ab1c6a1e0b5c262148f730762086bb7fd017aea3069ef76c71c110db4c80cb2c4fdc8c779486223920731906cb4553a00a400a3878afa709079354a7f3e3795ae77698668fab278688f3b21558306ee6844801b625b017203ab715d110fd636f4fa3c2c3c56ed43879468c9cca379d3cc77197908c54875b0ab7b35ec8b774b5ad15d3ca75291b1ceb201a959b57215657606dbc9b8f1c124eb8a57c6146b1931c019a0a94ea266f441b6520b199161877b30c011788cb97cb439789a67d476d3dd265cae63cbe43cb63aa124b93071d6812bc662f346481f974a73b16a505c48b9608359a3c035135258029a18b0217461830785379d3355ff3968d3c63a46685902425660b232b11b93997e60ae0a5bb95a27d553081f393040b1c30ec87535ffc6fe528b1e9866cd1e69520e376e0071087748691dcc057b95cd4c60707d8b976d6a67af4869d960d5466a9f3251dde92cfe8a0b03ea2c43bf03fabc9c9b5d97ea2f558b2bc0ec1908335ca4f2607cb04380a830b245f8b43fd06098269bf9ce33fc07c1e68a05f63560d70544eea4c0bc528859a5b09683b8b3d3c6842e6458061b7ddc4b23ec6ae83d557e5c4b1848445fe253b35e52102517cd38030e6ea28a5e1a24bd09ac6b83c5dc658d11589900a7bb09a963480a2d76225ae55bc54108fb233785174b375a184eba110e05762e7f26139dca4cb197620156c06e47e5b74a0970bc6e18b1e1c919a6c0b10e7470d5ce09e2719194da0440ac3aacd86bf724aa841a83dcf64c8e1f7704397a4cd57bbabc9a0cf940e97e8921211006044228632382ef48fb5d3b65219a5a6983ad0e48ee39081f2ba1103bc9c6314090a31aa34213c0c319eead96b865cbc98327570b965bf00cb9bac18c640273d342cedd11d72e2078399c458068439a8a27e388d3f4bb285b63992b5a4354122ac298222e39d31cb886c4958f28c5c2f37384632b4db216b43ca6246051fd704b5969c07dbd525ac6a479e730f8b11c5d41111ac65764fd71a4f43be55c563cee5c26c69cdaa485d850c2126f2bb16f5766fe86bce17535198ce99c2a66918af96641b2ec74be2b61752076a2db330984ccd7021ce360a0c488143648389f492ba20ac566cf401383a496991497208b760d36da6896bb3587788597191c3347539be92b78cc6a2b0d8eb4188320ceb8aa6ee1018e9f78f4f8097ae7527ec947cb1b27dc8a86ee200020127531273983bf66746a7b731464a6b1524b18744a8c606648b2fb1a4339d5a15d7f6a5ea3a1c08122b773ab09564792fba2e28719a603c3ed0850f2d5045de3bb93dda7a84e692c25537ef695787fb0889107395f87c6b836e138bba9f4a711daa421a396f556c26e3778f4d364d5b1844118b367d78af37836fd7a9637f1714cd9a3e52155b0047468b5420cd5c6bb64138ba16863e18b4368542800b378537b5cf303cd2b191ccf783719142ffac1ad0585b1938281ceb5c86587c43b28c49d9111982ba7ac567e1fb64d8e3c450730305cc2e4e12cc698a728977cf1c9b373f051c17f1935177ae90aa8856a5a24d18a08aa942b4250a6447c35289cf0b334af45647e21b5a2153a8a05a38ac4c728a3350a15502cba347a876cc4bd12034935bb3dc14435930d912aac8a787db3ca33521637c5159b015920100b416d22c18d6a0a52612c7d75c15741b6954ae752c4d31fbaf1b483b6b6862e6a983d5465e3b7b80e1654faca5c669e77295f86263d344031b5ea7ab99e714c0a821042bd9512677ab9e89309f41cf47944da1801521402f211a6076490ae393818ea2056954b24a624e6e54acb7d5bbb32c14b339730af6a72647a66f761bbb78012a76540763cb29dcb9b8c27a3c1e43769c31af3ef54f7c8062d713cab3803437e759a01ee76fba1a5b21916dfe025b78fc6d4dd1d1541b51cd3eecca90ae52177431b33c708faf17b55a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad + +# Official test vector 32, seed: "288a5f2684d862a86d2790afddddbac6fda934ee7d2e6da1508bb550838609e8107312b28e00a6c01706374ccd3aefa7" +seed: d8b907b34d152ff8603b73051f772daa71eb902c47b7e2f070508269d757e02e36b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a +public_key: d23b1a80b6c91017009cfa4925f3cca1b97d1a820b204a4ad5f4bb2147307a5350d0244ca20102b8f800c924bdb5667a5866303ed52e27c932a1d84c637c707537409fcb7515f195e557920ff79a3001354cea327f274edcbb99e66acda0aac52dc503717a3b24786afca70dd84c7c4ed1c1b3ac454c832caa687bef8a96bf6c1182f5c663c1ada4784654393d4c83219c149e31fb0ec1e9afc4297968c80209594aa567c65000a883b32e3fb82d9eeb4e9af65ca4fc0cc1ec794eb2b7ede1a5556474f3b023c45b5d8712109a2281f4527a4bbc8262c9bedd0758116643bc6a85f836825541767595c0b54516a330137f0724a1b232cf0a399e0478f732c543f81b9d05c7f5b086c64291b2d94cf02462df7c0f43eb06319265ae25656b462f1445ca5299166731b114e8458a0a0361b135e6002315b65b337304404a907f3c1d41ec9220055939e11f263186c3751f96d750f3a8588ee14f40b09178368ef03a9526a5444be096c3da8a7441638f64b4fd201e31b34f2c456ec89890f53c9a25b559b47856053227e3b36c16297949c6b11159a79a4344f0759c7071a738eb0f80c25ec2f0a2efe614c7766c9dd68fb488c4e514769d9b6be2d59e9c9cba6b5b1dbc9b0d8e5c7078663794fb4eb8c7060bc1b61286cb173ab6a80952424423746bc91bc953b67908bb34226eb382bd54bcbbf5c60e467652728186c357b3fba85f6b8553c79c730ba51ab90d06ea9edd407b89e0c0a4276ea3698ee5e6a8348a2f9f571c2b7b93f5eab702f1acc3480bbb223e68361fd89a57d1716fc8c99ff43734fc58969d35077f5bb422b859b271b085f41394f28b416565d2f90848216ade3cab7c205ef2f47d8b50b9152a9ba6032322e737089a1e5152387e3437d2190cb9e394bbb6857a1b1ead7a3d7118b0ab8367ba1cc09f910518420a46a18271408121db5dcb0670ed789d537ba3639c530a720ed9f40c023c75b1a8261b6c0192b14843252cb8d713c8736b34daacfa235c9a51468dbaa6f2e4507711344b5a722ae46a70e683c42a9056ecac5d143f9929006bb168ff2ac983ca8b1d99cfc1c8cd919b282eb921eafab2a778b227968f77ec885077ceb7bb5fa13884b6a4bac782b31f250569e0671396b780e810e4a34416166c18c4204ac4124c1020064a257c32369c892420510811f28872d59cf8db48f2a1510a5895a09c008be695699a4845210777146b56093d36960d6c36860cec578de3688bf338a28118a67833f5c4c7d93b8867d93ea7aa99a3743434d236d786cd8e617791bc5452c88e70f1189d5004e17146f3c69c60682c11e78b06b2c0815bb889a17a15eb1d985b601e6c04604cce34b13d82a328f61c2dddaaa25fd9ae0dc83962c0887e392a25c8657d61cc2ffc980d4cc4c9557e7dec446828b03e8bc9a1355dc32b1c06d504cf613235b6b9b1b04c0ed550545bc37e7000a2366786da49d637ceb5c4273041706597236be0a7213cb0394282aa998411e1236ab964a7998055a183dcc4ce765b8756760fff965d2b7c5adc272ef1d3b214b4ac9b543e0f24876e773edc54c105892cd882848fcb039e5223d0c68fa204cfdb793c5ee56659932cab213cd4eb18fa4b045103a1e865b0c567574e523be27974b08adec6d539f37479c61fe8d8c4 +private_key: 5e74b833c0808f44300017c6b2773ff7569ccc971250623710e01c79f2457f572dc1a8c9e23bbabf0b16de993a063931936a4d6f4a22e1961949ba5df2e3aa07693ed37b2b9d98668019123162be5a1c2907e35d0ecb258cb034e4489ff1616d5f6b83a7877e0cdc5ed4677d84924381b1aac175377b4b953863b296c601140281d9d5889f649d3a4c8c2ad662bce81753b85d26eb058b7536ab98afbd4a969ad26db781bb40d980afe249ae56aea88b59f1b28dd3f99ea3e6b8dff2bc91544f7173595fac70c0d50edec867b90188f165c8b1725a00a45406e18d242b2f63f7736f68c13c5b9606e700f9d3cc64ec0a94872adb04437cfb7ed2623eadeb11da382785c74d96c96647e482e8ab1c9af58cbcac5d4741cad8e6a80028219af15baabac6d2e884599c2b83a1307a03ad2d4791bcfc767dd36b810ca63a7587486749835514fcf4c0b7d3b06d950cb1b26b69b8abe466029fa2b66966501f6c812bb24834c3b72bca0a98913816737384d29a3e70327f86bcf85aa92d393a5d516b2aa49694e32845c559ceb89f6351b825baa599011efe9558da35a05b4537d01c6ce8b88eaf796b36a35c9ef41ddef86ef4bc695424bb63fa5cb4533abf2497d39057651b22a9806b20a9a4dd6075cdba87c04051219a8c7fbc564ca84f1d51baac7bbbb8bb2118990e5138726fe0c4ec51aa44780d5e66169ff17312d214e4d908e8461b2c004557f75ee749889fe23612875f02046ea6a6604c6c74dc746bb7c08ad8fc324be971359ca32e17864987712225257af3114be35a3483bcfc1135c0ec9a34b67ce5e20290b13d5e8a601e55633c154a83d65e1ea03d8da88bf5875429690f848bb314b664c851a266a880f68c8b69c184c773cbd73a3e32556207f432ea9126e6e778d76638607c341ab42b61d59d4be986e686474878a4d43c0877599689b35247061f98229384250e78408b76230a5485486ce70b076447bf96263c0058bb455cb4901d4c99a00eb316d4ec3540e6cd269b3093c6123d855fff761e2e394e4204366e7a132425978a0561a4e2347df685c5b6b7d291cb3e0970ddba9bf9166a91f5cfec7c751bc793a574181421c07e854103b4c5943cb3f89372e23cb98f75bae819c71de64a98b145794a6b006300f851c5581a30293542ee4482fa8987dd0a00bab3a9881a292618724d8c164281bca6a903caf5c52b31b3f341a5f3626d30443190422abd129f2e677682352c4c9427139a2b77a362043cc1af5737af761a62f27161018d76f8137df25c1872a25cb81243aca20fa738fba24d708c7f2d610422481f3ad74061c22141b7a448ec8bf7670ed198c0ea72456567108cf56991d47069e6a6639c2dca8c95086c8d3a5cc49e294400bcc2fcc39c5b673ad1e6248204969af47a4b036fe7478ea16349a4b49b857469d115be01c2662afc5880d5924ba498e353597157b559343848f2ccf4ec17951943b39cac83bb52c5665ffd1618bcd6446929cfda114ca3c554c6b9821b6b85084873a3b20e5dd8486aa7b591b1b6f7b83b585c9112884756386a35a04f60b74289e206f2994d8c56185b1698c0583717368f7ca58e7635090aa262cff0b93af222dac695d23b1a80b6c91017009cfa4925f3cca1b97d1a820b204a4ad5f4bb2147307a5350d0244ca20102b8f800c924bdb5667a5866303ed52e27c932a1d84c637c707537409fcb7515f195e557920ff79a3001354cea327f274edcbb99e66acda0aac52dc503717a3b24786afca70dd84c7c4ed1c1b3ac454c832caa687bef8a96bf6c1182f5c663c1ada4784654393d4c83219c149e31fb0ec1e9afc4297968c80209594aa567c65000a883b32e3fb82d9eeb4e9af65ca4fc0cc1ec794eb2b7ede1a5556474f3b023c45b5d8712109a2281f4527a4bbc8262c9bedd0758116643bc6a85f836825541767595c0b54516a330137f0724a1b232cf0a399e0478f732c543f81b9d05c7f5b086c64291b2d94cf02462df7c0f43eb06319265ae25656b462f1445ca5299166731b114e8458a0a0361b135e6002315b65b337304404a907f3c1d41ec9220055939e11f263186c3751f96d750f3a8588ee14f40b09178368ef03a9526a5444be096c3da8a7441638f64b4fd201e31b34f2c456ec89890f53c9a25b559b47856053227e3b36c16297949c6b11159a79a4344f0759c7071a738eb0f80c25ec2f0a2efe614c7766c9dd68fb488c4e514769d9b6be2d59e9c9cba6b5b1dbc9b0d8e5c7078663794fb4eb8c7060bc1b61286cb173ab6a80952424423746bc91bc953b67908bb34226eb382bd54bcbbf5c60e467652728186c357b3fba85f6b8553c79c730ba51ab90d06ea9edd407b89e0c0a4276ea3698ee5e6a8348a2f9f571c2b7b93f5eab702f1acc3480bbb223e68361fd89a57d1716fc8c99ff43734fc58969d35077f5bb422b859b271b085f41394f28b416565d2f90848216ade3cab7c205ef2f47d8b50b9152a9ba6032322e737089a1e5152387e3437d2190cb9e394bbb6857a1b1ead7a3d7118b0ab8367ba1cc09f910518420a46a18271408121db5dcb0670ed789d537ba3639c530a720ed9f40c023c75b1a8261b6c0192b14843252cb8d713c8736b34daacfa235c9a51468dbaa6f2e4507711344b5a722ae46a70e683c42a9056ecac5d143f9929006bb168ff2ac983ca8b1d99cfc1c8cd919b282eb921eafab2a778b227968f77ec885077ceb7bb5fa13884b6a4bac782b31f250569e0671396b780e810e4a34416166c18c4204ac4124c1020064a257c32369c892420510811f28872d59cf8db48f2a1510a5895a09c008be695699a4845210777146b56093d36960d6c36860cec578de3688bf338a28118a67833f5c4c7d93b8867d93ea7aa99a3743434d236d786cd8e617791bc5452c88e70f1189d5004e17146f3c69c60682c11e78b06b2c0815bb889a17a15eb1d985b601e6c04604cce34b13d82a328f61c2dddaaa25fd9ae0dc83962c0887e392a25c8657d61cc2ffc980d4cc4c9557e7dec446828b03e8bc9a1355dc32b1c06d504cf613235b6b9b1b04c0ed550545bc37e7000a2366786da49d637ceb5c4273041706597236be0a7213cb0394282aa998411e1236ab964a7998055a183dcc4ce765b8756760fff965d2b7c5adc272ef1d3b214b4ac9b543e0f24876e773edc54c105892cd882848fcb039e5223d0c68fa204cfdb793c5ee56659932cab213cd4eb18fa4b045103a1e865b0c567574e523be27974b08adec6d539f37479c61fe8d8c48f62011fbd5a1c10713d42a00a79ae7672e5e321872971f24ff71ed754178d6336b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a + +# Official test vector 33, seed: "4635dc5bb92ef98cdb6220df0dd717c7f8158375eaa2b78fc3f0b58e9c9653e92684cad3461d9158a481da3d14694c44" +seed: 684a29e4e5480a5f2533e1526b5fac8cdf5927f3d85087c71f928c59690eb56575d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 +public_key: 4f27944614c35d121bf2390402bc93797055936a2d49699cdeec2f29413403aa1024d802d97c54aa316707c26a0b432821f63cd89a87f769597cec8356c2c399d3a34115cca89b9df6a55e4556a3b2150b51907ce67b860f697a65b199b370691fdcb31cf7937d1524bef41a0732cfdf464175c95d9092176ce52814d3a9231114cc31718755ccd3a7b3fe69b4290175dc440cd38c69faecb190ca684fb1001b5308fb4c1ff6a55b4be8814d602ec59c2deed654c93a45d55a3e020800e98aa786c76fcf33cea3a7bdbffa5037a171044b1b74d6094d1a3b606009b4fb0f060b6dd1d29ae67ab90c90c25db895c9515fe0a17bdd69c6773518a532ae8ac731e32155500204dae2c9284cc16f61b5a9e48334859357506e2c391d1bd38865ea489e492d8b847a6a50ba074320fa32074d89894324a705dba4e1847a5059645c77063809cbf3cb0555b6be4069c77b10a6c6f67ae1e7c09d603e87a34acd3b814d7b4798dc05acba65220289772abdbd89403e698f3556511e152bc0f77509dc36803b57d08129951ac44ecc49f43b7cfe8436baa8b5376999f6442293352e76ac592b95804217817ad5a75a76caa72172df9c69da4c170e937a69d93f12c7b533d4bce41b34d0cc8a1c969947db2c21a960d975ac029280ecbb527654a42385576286915d4b8f3fd163f0cb280736bee89786fa277c8487b0820416985855a95a10647059cf34c08915985c32321b5b8b45a468cd4253c662847eea36fb238098f059630cac83aa70cc9596cc1a0406e993b737c236e78cfbea1191d60fc6428fe7090997f1ab41c13e0c57a256a813bc559ad1e6ad10dc3cf43a64dae2955f03b46a09ac6ee30326d95d6ca8b80e61aab77579c017a1906279ac09766bd8a1b40b24d8bc4deefaab47f9c14a8441eb413dbd718e5122ae7beb94f526a31bda25d893a544670d994530d3c6ca29879085870f6d54192b1a7fd63193c7423be4867d2c134683ba25f9240e0fa2a96b47c5ac05b541c2980f51557989b3eba42dad002412f462acf75b141c5fc320bdafd3c11be291eafc04d6b5a1d4117c7703c313eaa30477253e938764364b25d859aca263962c5d6d898ada856b70e151dfa41289213acda6cdb5241bc7067bee5cb467c34d2b0a6ded6aa746290ee2e40b7be1294c583aaf415dd03213a3cb2e41f10731823e749acbc53767c12b93d8f32257a54c6a71b2041a167d685f0bf789b94b277f1b60af22c09b639ac72ca25b1c69b855bed6377126999c5708789091cedce768b253ccae981715c8922dc9562ea8a0ba102b02585281b15c7e44339cf630529c1b076106ee2b5c7be0181ce43d397a398c8547da703e2ab47bc15284f4c6a50dcb904ec9c1f60a1aeef38435997871e8501d4832bbb2a3354c70d9579f237427135329cda32573089687d9a9130375bf66ac321113a25a08aa75cb667635455a93eae7a0a6703a2dc0a85637681ecb097f1b16b2b331210b6288b13f5752bb6c731adab30ca051a817099095022892d923f571b8d879c8ddf0ab03145a32298dc6b644b25640d808006e3113accc6a0c1ccb05ec273e6b6559e287539c72d754ba9bc48c915acebb656e3cb7713e9bfc0bb6f311485ebaa078b78a737d81d38d368c220eb0e982fb0bd8a7ed97 +private_key: c2bcc42efa0baf63bae062a1b1322114519cc504048ff26ee73b208d659518a286dc411c3097293d79bfe04790f8b87c1dca42059c447ca5a382733c27550b41a367e19175e084c49b9bc5b8d1ace0eb4ef2b220f187929171a10d5a9a46c8b89ccba3b2435720780f6851b01cb06ef5127100c4ca44c6188aa3af8e875b85317f47797d6d699e6d619441b26fee871863392ff455413ea78d53852d5b19361ce82432410adc6ba90793cd3330444b82a06da38a131a1ca91756848ca59e200c86001c21d19a7b5a40692a979bd351ff140276f176c9f189e3499d067cb054f9a5725236abba148cf05a539675331352834ca583b8029c764ebe829cbeb934ba76bf3e75a1a2b0a65b879cb0b881dda38487558adec31029783ba7ccc94ac879690049452724c3073106790748d57102236f4e9cc4159a14a042cc4c6986ed5c4027b28053d673f42811b4e54fd62507115b990849a9c3ea6153b405b6c73f27f6755db5c489761da376ca05031e027b6a34b12117ab8cdd1965cb958e6e0a7a8f9b8a780b0d06625ae7b8b5d2e97510c3c8a3b010b46506db23ad99f509d3342df563c2ccd951a7f0446d582ccc872aac034a27a90822506af8acc35f321bced03f1dbba19507c17688965b59176563088cd44dfcbca8a60baff382b15f812768c41d3aa6227c760e78fbc5e8191b01e697104164d8c1bdd2133aa222886263a573cb3d18743ebaf7abc486c5ad24cdd770250ff860acf05a88cb464088cf23c82f9a191833a780ef44bbf5a06cf1442fcffa547ffb354c8476c0b8135c6abff733c30f38a3ff331a836492ba26c668b679da54463b68573d566de97a2b4a53cf9621a6a5a7493ff190b5c9a7ea63019fd1c3a4dbc395d0b254c80f7b5668e6074fb0bccbab9811010b1c42d55982928d604ac9f3b5c0a3888cbce54cf0e1ae0c9914fb5474ec29492cd1bef2537c4e3837ffabb058993c3fd11253e87e15e84451269b6a48911ef15e4f82606a475cacf420ed6796ac04af07633b6ea63af927c611b07dd932bd0ce852c4b785f7348fe2906eafc76c3df8706735813ff796ae51837c198e2eeccbd0a64b45254209882351740fb6414363976ddbe5c302a29dcd832270732e2c6abea1969e8b17ce2b1807aaf2485e6b07e3a7419b5019b8172a3ea0b7907a70589a88cde16d1b043d7985860f623b95645ca1921ac8109870758016a5bdf37acaa273c18b6944d0911a0d255b4f9580e3b50383f93bb7871f3fc2b280f2871b1c17b2c74b9368773ab747ec2b87209910cfa859243b7a75288c163ba025fb667025433b12c471e7c9642c4ab105413e0641d7e961b3fa462ec797d6a9cec7ab1ef6a64b5d5869c4e6c3ec884afb87b2a8711a46014dad830fcc195dcc5b966252c5a350561b0359efd07df9a4b4bfc39ae6441cd70b57a4718d55a0bfd8f979c0d01e31787afbb1a8c2a87e5a7b70d8976ae4814950d00e998927039111eda21993c17fb107034faa658617568350a48dc4bb3b124b032b35ede2ba312162b57067ab245533177dae67894349327663c329c2a752002326b18cc60b1cd1098968d18168bbbcab459f4a4c18f63a7dd0e9ca68f43a6592484f27944614c35d121bf2390402bc93797055936a2d49699cdeec2f29413403aa1024d802d97c54aa316707c26a0b432821f63cd89a87f769597cec8356c2c399d3a34115cca89b9df6a55e4556a3b2150b51907ce67b860f697a65b199b370691fdcb31cf7937d1524bef41a0732cfdf464175c95d9092176ce52814d3a9231114cc31718755ccd3a7b3fe69b4290175dc440cd38c69faecb190ca684fb1001b5308fb4c1ff6a55b4be8814d602ec59c2deed654c93a45d55a3e020800e98aa786c76fcf33cea3a7bdbffa5037a171044b1b74d6094d1a3b606009b4fb0f060b6dd1d29ae67ab90c90c25db895c9515fe0a17bdd69c6773518a532ae8ac731e32155500204dae2c9284cc16f61b5a9e48334859357506e2c391d1bd38865ea489e492d8b847a6a50ba074320fa32074d89894324a705dba4e1847a5059645c77063809cbf3cb0555b6be4069c77b10a6c6f67ae1e7c09d603e87a34acd3b814d7b4798dc05acba65220289772abdbd89403e698f3556511e152bc0f77509dc36803b57d08129951ac44ecc49f43b7cfe8436baa8b5376999f6442293352e76ac592b95804217817ad5a75a76caa72172df9c69da4c170e937a69d93f12c7b533d4bce41b34d0cc8a1c969947db2c21a960d975ac029280ecbb527654a42385576286915d4b8f3fd163f0cb280736bee89786fa277c8487b0820416985855a95a10647059cf34c08915985c32321b5b8b45a468cd4253c662847eea36fb238098f059630cac83aa70cc9596cc1a0406e993b737c236e78cfbea1191d60fc6428fe7090997f1ab41c13e0c57a256a813bc559ad1e6ad10dc3cf43a64dae2955f03b46a09ac6ee30326d95d6ca8b80e61aab77579c017a1906279ac09766bd8a1b40b24d8bc4deefaab47f9c14a8441eb413dbd718e5122ae7beb94f526a31bda25d893a544670d994530d3c6ca29879085870f6d54192b1a7fd63193c7423be4867d2c134683ba25f9240e0fa2a96b47c5ac05b541c2980f51557989b3eba42dad002412f462acf75b141c5fc320bdafd3c11be291eafc04d6b5a1d4117c7703c313eaa30477253e938764364b25d859aca263962c5d6d898ada856b70e151dfa41289213acda6cdb5241bc7067bee5cb467c34d2b0a6ded6aa746290ee2e40b7be1294c583aaf415dd03213a3cb2e41f10731823e749acbc53767c12b93d8f32257a54c6a71b2041a167d685f0bf789b94b277f1b60af22c09b639ac72ca25b1c69b855bed6377126999c5708789091cedce768b253ccae981715c8922dc9562ea8a0ba102b02585281b15c7e44339cf630529c1b076106ee2b5c7be0181ce43d397a398c8547da703e2ab47bc15284f4c6a50dcb904ec9c1f60a1aeef38435997871e8501d4832bbb2a3354c70d9579f237427135329cda32573089687d9a9130375bf66ac321113a25a08aa75cb667635455a93eae7a0a6703a2dc0a85637681ecb097f1b16b2b331210b6288b13f5752bb6c731adab30ca051a817099095022892d923f571b8d879c8ddf0ab03145a32298dc6b644b25640d808006e3113accc6a0c1ccb05ec273e6b6559e287539c72d754ba9bc48c915acebb656e3cb7713e9bfc0bb6f311485ebaa078b78a737d81d38d368c220eb0e982fb0bd8a7ed97ed3d1dd05854a6542b24090a680b9aa9d6c65ef31cf1f4f5708affafeb2e398975d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6 + +# Official test vector 34, seed: "5da2c51b4acf488c8bded5e985cc4702e4a7bcb248b5ac18aaba529f7f9cbf30efa776e99f76d5c1686e94f50fb57dae" +seed: d76b3573f596eb286ab5231feec7499686b13021be36cb126c7ebeb9d7030daf248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f +public_key: 39b95d90d51e8cecb49dc41a37e866c8fa1bf723c3e3815b1f388f63d791fe0cb8507020e19125bf0ba753fa89c19180a7505e15ab6c44e32f70499df5cb106f85bcc5dc4f20d9660c17307de05bc1eb6bdcebc52727ca3544772cc56a08b30c0c54a847b28387808a1747a23f6460054c582b4ca1e09691c64615a6ba3f89a05a18eccea06b550241047c1807f3323dec674f17056d71b7bea906463efaa0fa50b051723e0cd66cc7587df4b58d49fb029fda6e2e507d637ca7d489971d897b09148a6a2b47d3b4bc3a4ac0715b3abde096bfd8622ca24141683771ccad1094595b20c8af004d54873b0d42977886314fc889e5804474005527170c49882ca89648d24ba29cd30a7c2868f287345f4926f1141531d3a53cf68c8662247d47348cb1a102613ab236b67bb9a7cce47e794096c0a93d54f743cda16ea09c8d87c43e4a1b2cd9b0b5ea711f30b39812ca44da20b02cb4c8fe12343896ae6eb838ac648acb8bc8e887ac69602e7d81263315373029b2d6713705935a43177b9f9888115202ecb1a60e433d8de2bb42d235135224c7f795d342466b4c5bb8bc93931116479171800b717c033a304bc619d2a79a687e005d6215fb1e76ab67d8b46c72857a46d753674a7ef3962c90f2b62f51458204b71d95734533875819a495360ecc12b66005330593456c516ead7b3c942688a822bf0d92bf849bab6068480a0b0b4b8c3a451007dc2a733de7b51d835e5b7900ac836fbdf13a9ee82b34ccacdf6b8f4cd0594c80473040b633b7ceaa091259a21c5c881602c146e4444e1e48800a189239241813c13b724a02e6e7a70834493f794ae7991bbf1b60d4c0084c213471eb3598079adf95004942176f297ad3d55b5cfac5a3b385679ca6af26217ad8309547a0738328bc1a519712ba545ca739e8c253a65394817aa6874e432a95e5f35aa045cca1fc1c7bf467424a8d498274646c05c15b176c8a69f90a0a524b6e4b6053979499e7526ac66830d28b28ca2c6dc4061b1546a4e8d7348416c8a8fcbc0779c51ce855dfc54d94d74bee674bbc383adb248c07eb8889b0b44937356906a61b1074362754440856bb26b2fa906ebbb94ccc943fb39c00292843ed501f5f673762e3afbd7179e41835208700fef233793c0850c5b48499afed371e56e5a92a4109662247b72338db4769f9849f9516266acb133af5666b18131ed347454250cb04528c91b8334c2f5b3401cfb28e45824e73c1b6854b330c47c443d931b9e5b139f31b25d4458ac53a32025d49bb5d1a89b73bf930c74c233bba7afe30239a41587985726fa09d0a7a2ab19559ed380d9eec34b5fa83b73813a763beab0a1f7df5b87962709f255256a36800b94062d3af90990b2a43251ad9b0e400bbaa4a306520443ecc8cf45613a8fc1c61e6312cfa02d23c1547a69cfe43660d987a0210cf60965fca77c850503416c7c18a37bc10ca47f517abfcdc018ffb538f474404917dd65c8a680a667b1762b5958e43547fca1aa0da8907d7d3a25b430724477eb2844e54f35ae8f27598d568d413914bf66b70e37ddbfb7df01c08e1310932ba90ac2287187b022dc659c83b9f554871ae4aaeba7ac76f1254f174493d31eda27def0331de8e68f7b1568c4c8919e4de7a5005ce152fef9c8c88ec9e +private_key: 9ca01438ccaf5ad79f0d253c6d29707c603905b40d1d3b93b269be9072ba04020672ec15ec059d3fa9598edca4f4db3164557b1737a0de750ef5c31572d80c5d82ab52184238c439862492403b1cc06c7efc7b94b41bb1718c6523db1e6f63533db04e4e91c405527a4ea866210731a687ce09d10e5e0945cef0807665bdfd797802092f0b6837d61550a1d481782045c99b7df6e2b9ac95bb44284f472b5ce1636b1b3662d732a82d76517b57ba46fc9bee14511be585cf0a6549584a361b7009a733c9595f01dc6290471e3d656371cb6d63c9bb25a8c5caf03a84f6684af3c7daa48b2850be6c4270412572f0c1ae74613752e6bf6d53c927f110f41922492780ad486de631565e99886a077c209b025a6561ba503599897444642db4750728e09d3ea6498d236153a743744217df5400876690e393b0f3e2a481c31b52d605cffa140651ceb93c1189aaa372e906a14b684bab42c82b2071133cc31892048c1ad57ab99a00680e03287516141c281d2e1978b44c84595a59e13647f11623ee2b822a36b4f41b8a153a3dcf6b6daa97b9240b25813343561750ab7abf17816d76616879e09668b9c277d1cdbad74a5e429074c07a3394ce72a99af63010be35611d296348a163cc2b412eba4873988ac341566d1c2e60191dc9603c62f058391392494976e073760c0a9fe058564d0334a14a4d8e9b41c2e7226842aee7dc263f35b47619c99ce66f6a546be0e716f8a61830c23f37f152607032d34a6ae3501a00818bca04cb9b7145673917b9252f449a7463565662513f92a5ad5bd4bdc6d63c7d7866019c0454956b92595efce15c900b6d60db94ece8c2f4bc7fd52240cda936a5ea069980837c32c777f60b2a5bbc41a540c0394a3ed53bf34b37d8e7627979cd52fba35b144df35cc975209f232a0d24000c826cb54d365d74182631a326ba0674b86b1af79a169ba6361d30737840bcc5f3798a9c5439541f6e036abefaa66a44a5d017855b48bab216170db6489d74a7acd5339e43ba3b6bb6d1411add611735b9083c75b5111b903965a4b56b4b27585e9670b0fa2c5ee631b6db0acd324710ece9a429c83b76bc417a087b08d989a44b3d9cd1217d835a12c62a437a34dd1568e25c6db41c4c98d0bb7cf7b12be2152c361c1a881b409730c4a9b82498245a8141a903c88cc7aef187628c226fa3ba83d2453ca397290a0cb7ead61047bc4d4f36cd6d70200a1a4139505e3a86885bd61cea052bcdd52a1cf33ff2411f4b9c91bccb7142c6657db694031649bfb8800885bb076a0eab3921e53b40c1b075677124b0187969db8384244f63c6936aac3f6770b9ede5c7129a8e55d46ad5d8636c80082c47611b5c3ad3b814db17157df41585e68f5ef027e9537d3375cf7df44bc807a7e88b8b9b083452a35a6a5844eaf3c4afdb3789806d658276c4a18361aabfe743c67b2c626f1cbb2a8cccee295e6dc7a4e695b205d4980151a89e404a2a1940b58854a7e12e0d221fca36592044492094619ebc7783dc1a12d8a6bdb95f697514f214a7707949c5e6ca4ab227800554d77639b9d2862bfc27bb686c701b0839402a33a60e0c253e32393e6a1c45003140d2b7cd56f34a39b95d90d51e8cecb49dc41a37e866c8fa1bf723c3e3815b1f388f63d791fe0cb8507020e19125bf0ba753fa89c19180a7505e15ab6c44e32f70499df5cb106f85bcc5dc4f20d9660c17307de05bc1eb6bdcebc52727ca3544772cc56a08b30c0c54a847b28387808a1747a23f6460054c582b4ca1e09691c64615a6ba3f89a05a18eccea06b550241047c1807f3323dec674f17056d71b7bea906463efaa0fa50b051723e0cd66cc7587df4b58d49fb029fda6e2e507d637ca7d489971d897b09148a6a2b47d3b4bc3a4ac0715b3abde096bfd8622ca24141683771ccad1094595b20c8af004d54873b0d42977886314fc889e5804474005527170c49882ca89648d24ba29cd30a7c2868f287345f4926f1141531d3a53cf68c8662247d47348cb1a102613ab236b67bb9a7cce47e794096c0a93d54f743cda16ea09c8d87c43e4a1b2cd9b0b5ea711f30b39812ca44da20b02cb4c8fe12343896ae6eb838ac648acb8bc8e887ac69602e7d81263315373029b2d6713705935a43177b9f9888115202ecb1a60e433d8de2bb42d235135224c7f795d342466b4c5bb8bc93931116479171800b717c033a304bc619d2a79a687e005d6215fb1e76ab67d8b46c72857a46d753674a7ef3962c90f2b62f51458204b71d95734533875819a495360ecc12b66005330593456c516ead7b3c942688a822bf0d92bf849bab6068480a0b0b4b8c3a451007dc2a733de7b51d835e5b7900ac836fbdf13a9ee82b34ccacdf6b8f4cd0594c80473040b633b7ceaa091259a21c5c881602c146e4444e1e48800a189239241813c13b724a02e6e7a70834493f794ae7991bbf1b60d4c0084c213471eb3598079adf95004942176f297ad3d55b5cfac5a3b385679ca6af26217ad8309547a0738328bc1a519712ba545ca739e8c253a65394817aa6874e432a95e5f35aa045cca1fc1c7bf467424a8d498274646c05c15b176c8a69f90a0a524b6e4b6053979499e7526ac66830d28b28ca2c6dc4061b1546a4e8d7348416c8a8fcbc0779c51ce855dfc54d94d74bee674bbc383adb248c07eb8889b0b44937356906a61b1074362754440856bb26b2fa906ebbb94ccc943fb39c00292843ed501f5f673762e3afbd7179e41835208700fef233793c0850c5b48499afed371e56e5a92a4109662247b72338db4769f9849f9516266acb133af5666b18131ed347454250cb04528c91b8334c2f5b3401cfb28e45824e73c1b6854b330c47c443d931b9e5b139f31b25d4458ac53a32025d49bb5d1a89b73bf930c74c233bba7afe30239a41587985726fa09d0a7a2ab19559ed380d9eec34b5fa83b73813a763beab0a1f7df5b87962709f255256a36800b94062d3af90990b2a43251ad9b0e400bbaa4a306520443ecc8cf45613a8fc1c61e6312cfa02d23c1547a69cfe43660d987a0210cf60965fca77c850503416c7c18a37bc10ca47f517abfcdc018ffb538f474404917dd65c8a680a667b1762b5958e43547fca1aa0da8907d7d3a25b430724477eb2844e54f35ae8f27598d568d413914bf66b70e37ddbfb7df01c08e1310932ba90ac2287187b022dc659c83b9f554871ae4aaeba7ac76f1254f174493d31eda27def0331de8e68f7b1568c4c8919e4de7a5005ce152fef9c8c88ec9e6fe12a1e2d742dcaf56c585651ed6edce4f410aca0fc83275b5acb19daeb149d248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f + +# Official test vector 35, seed: "4d2239e84b052109a78dbab6d80c51a86d38248105970476b74a0b78b9cfab6283e30d5a406fae1c7f54f8bae1110ee4" +seed: b87439fde81c9e39eebe7cf741c685785532c1dd23e8ef868b9ce7a541010f3d1646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 +public_key: e1696955c4bc38dc838761a183d31e38bc21fd2b955d9002ac69ad96c03822fb4283c4216e93b96d86bbf81888b68b1e67741d4fc8af15d4642a7b65d7b408ec711055826bf634557c8a7ce4a32384592f3c5881aa530213c2435141505a8c0918186c1508ab11101b09397d82b31c85ab64f4bb38947726d2c717362858a0a3656487b0deaa38c8109e5fd061496a695581347d52aa7ed71c20d8a613bc54e8a49a92ebceab993b0fa81de448c156550aae181a537c38638c6320abaa08c50b7b54211dbc8124a487eff2b545ca3db8a07be7674b51a95efd08c4421cbf2aeb8cd92383851a044985aa9a062bf5267382db45519bbd747852ed1a590ca3a89602a6c65cc06c856e22484244fa15b928b13b91736b1680e18cb1f76a7209b76754076db872295ec76e246b1f58f80fe0610372938393288c85b2b2f2107fc39c7d805678e68a38e3e57c30ecb650dc15468674cc54aa8aaa424b5060a03bae4d74c8a43c951e6b53b2c8b1502459868a1b03a5c1395c1b10551c28a6756d251e1916c24ba33792d74eb88a5c84078f60c612beb4a7d94bca27e3377e53442284c395ecc235309d1281c53964bd34a067f225829e5cbfaed47da9e393895aa82a67ab5b44a92d8423bcb59265e73b84f549927427e9295acc8694d77020d0e4342d3c784b121250140db1c3bd38806351416c8f86b4abfc7a14911bc865baaf867f54e92f935b044b60bd5343c5fc9b2d1dc68735baa31ce155e37c1ed0c85162d2ae3492c44c29343b50351c64747f9765b6f9306bbb3e543334c987c9a1c2a5783a576ce94b8f10bc3539cd55f30b0cca01a5985eb5993d35b8cbb136bd769b13f0c5c2d40b34335a52bd34ab04f9cf3f6c313b6c5b9ef879c10c1e1b249cba2580f7da8bb06c003db8718f318979e358292b881f9ccf984c525b61a34f6681197a7834913230627b56388ea26cce0569680c968b31aaa97710c9b2cc019771a57f8b5739554e45048d59610ba990b2e1967648d3c87410aff7981a57e2bcce971b912c2bf633bb8ea55314f3327d3b4fcde33aa1e235e6eb603caa19ba83c98eea4196c78a80e8b5680227caf06ebb22042e9a5c63974650fbcb1531404c6862710215012671093911d67027d491a916539a1b84b3c966b89ed3b1e9980769267827731ece44826a3a0bfcf037d9fbb9bab4b85ad668fd1573c0e9b227fb5ad32c948037384145188b17620eb91cf6a6318f331cae3800164ccd138c8c75a3071a7c0166f5156d74171b5b854c0783f9905b88950c23ca8835e530c4037260500be9f00510b5357fd1b80b09aa06b7126ecc8bdb709e3e698761f756ad0624280778c0ca140c426f91c76f81b96cef425403c95bc00852359b638a8a75b3fcbea47990e002b346d5a9481083c4336d02191326f6ab5c5777f622cd4819bd1187cc6099cb7968474ed93c0b830bb301314551970b86a25da05dce97ab5db744c78536712c752d02206c8585285268c5842491f92636682b223b6bddd39c6070bfd74aae3f8ab1fbc357136028aa3542f006cfbe429001377d2112c5ae3805244b865ea863257aa671d0b146d04b89b233f70768a373043a59b9060b0943f56865e6a91bcdc54402574a0f1c143dd36948d781d2f3c44e2f08b52e339b6e1cb3 +private_key: 7079b0361596d968aeaac085c8f649ef02a20b947efa34800067938ff753bc0aa132d1a51944634ba6308e64848b60cf01ac01a7a13c5ac5763f2a07da294d955b5044f2b46e2b6f51d501c3949e32a64bf7ab5b6435986a1719812bcdba766380a0601c807ddb1a0c532017c0540b56e82c63da8276e665d0c4418101af9e07092a48422c960f7a818cb266141ce16f76dba6973b5da07449a2b5cd3e20650d753c044787a6154257785aa738418254281298c272273ee880099772c5a8d0491eba4930280f75664d6156928967c2f855053b63aca1141b8fb3c8e7720c0bd8c17d18a2c3a73902d6711c5ac31110a4008d920ef9c6cf918d0b457cc2373229516f2f0a9c70b91fd640c2959a3d95634736910c840b173fc4565912a332914bc4c6251483691ed7aba7906693eb54f36794bb0777e5b45f32756ea6889d6fb75c84845d99a5458b024257a6210c657555ab7cdb802351e1016213636c3b37af4b57aea9cdc5a336fe2b987fa5994c991c5b59aeda80a5dc1639a5dbc994e330f710752af651b11a2be27c57413704c0685973c67f969098383b341747ad8849b0d86715a2a296f0321f2e9c72b69431d4253970f25d653ccc2bf72d617bb861ac66781576a6f7aa70953d6d3c40dd659a373a1d7be285ace7c2e7c754d42c780ac5a8e9f7beac93610b9c56c64b28703b63a1684a88d76576743b650178c79b209d28a616d79ad68092b5b0cab578c4af895aaa20455000a07a9cb4bd57c04dc5ad159488b70a289f229e87552bbb9aa1f24aab37099d0db07e9ce14f500773d7326103405f5a516e0240647f556001d6cf77924c2eb3c546a25aa10a80bbb20d09faaa6115020e988a85093f2e15447b536b6c610776403afab7037b795a7fc93eab9639f400a383454e10a591ac0ca3ab344ca0892a022532bd79ae558710451175134801106c615e47ac6b333b1ff430a1d2a0b8230afca93d65e83049f01d00ad5e795902b8ec7dc496268584cc90bb8c88148bc5082b74e48b1fc2116d9033bd342b53215aeeea5788447c0c50b567b88888841b9d8c9e9488ba2a4a23a3f913e00631ac784f13c858e5b49b920b428cd24cd1ecafe553acd95982af5b8b8b00bcb1074f6ae52ea7eb34cb4482d4679efc337eab910d78210b94f7b5ef150814c01459c0154d67493fa276dbab403950a609b23d1fd37f23e6c40be57c2b9bac82d9923ae3cae126be2c0c54eb88c9e0307402971543b58b67d21760590c818b4c71855fe90080696644e074bf2a45237f037565e800e071abd930abbe6b6e4fcb8774aac945898ee8b74911726e316568068a1c545ca5e75c02c2b2872d478605341ee5b8b914690d9b0938940540a595744cd8bae7483d39d1511344ae19bc99fe5b5180f22c032b6bbe67bd507c6a9a22c2e19a8ea2cbc5436a8b307a9e69d237076a0fa8d52df9852205c4592461c252542c95e2847651011e1233834508a8b7b3d09c833e8837150ba67405ba5d651075e39590d74ead502157253a703c2d460cc21ef173e197200aa85e497c9e6989996cf2c29320bec0b671133bce293268fa9b4ee48c31c9957dd2319385301c2ba97338c99e33d828119174e1696955c4bc38dc838761a183d31e38bc21fd2b955d9002ac69ad96c03822fb4283c4216e93b96d86bbf81888b68b1e67741d4fc8af15d4642a7b65d7b408ec711055826bf634557c8a7ce4a32384592f3c5881aa530213c2435141505a8c0918186c1508ab11101b09397d82b31c85ab64f4bb38947726d2c717362858a0a3656487b0deaa38c8109e5fd061496a695581347d52aa7ed71c20d8a613bc54e8a49a92ebceab993b0fa81de448c156550aae181a537c38638c6320abaa08c50b7b54211dbc8124a487eff2b545ca3db8a07be7674b51a95efd08c4421cbf2aeb8cd92383851a044985aa9a062bf5267382db45519bbd747852ed1a590ca3a89602a6c65cc06c856e22484244fa15b928b13b91736b1680e18cb1f76a7209b76754076db872295ec76e246b1f58f80fe0610372938393288c85b2b2f2107fc39c7d805678e68a38e3e57c30ecb650dc15468674cc54aa8aaa424b5060a03bae4d74c8a43c951e6b53b2c8b1502459868a1b03a5c1395c1b10551c28a6756d251e1916c24ba33792d74eb88a5c84078f60c612beb4a7d94bca27e3377e53442284c395ecc235309d1281c53964bd34a067f225829e5cbfaed47da9e393895aa82a67ab5b44a92d8423bcb59265e73b84f549927427e9295acc8694d77020d0e4342d3c784b121250140db1c3bd38806351416c8f86b4abfc7a14911bc865baaf867f54e92f935b044b60bd5343c5fc9b2d1dc68735baa31ce155e37c1ed0c85162d2ae3492c44c29343b50351c64747f9765b6f9306bbb3e543334c987c9a1c2a5783a576ce94b8f10bc3539cd55f30b0cca01a5985eb5993d35b8cbb136bd769b13f0c5c2d40b34335a52bd34ab04f9cf3f6c313b6c5b9ef879c10c1e1b249cba2580f7da8bb06c003db8718f318979e358292b881f9ccf984c525b61a34f6681197a7834913230627b56388ea26cce0569680c968b31aaa97710c9b2cc019771a57f8b5739554e45048d59610ba990b2e1967648d3c87410aff7981a57e2bcce971b912c2bf633bb8ea55314f3327d3b4fcde33aa1e235e6eb603caa19ba83c98eea4196c78a80e8b5680227caf06ebb22042e9a5c63974650fbcb1531404c6862710215012671093911d67027d491a916539a1b84b3c966b89ed3b1e9980769267827731ece44826a3a0bfcf037d9fbb9bab4b85ad668fd1573c0e9b227fb5ad32c948037384145188b17620eb91cf6a6318f331cae3800164ccd138c8c75a3071a7c0166f5156d74171b5b854c0783f9905b88950c23ca8835e530c4037260500be9f00510b5357fd1b80b09aa06b7126ecc8bdb709e3e698761f756ad0624280778c0ca140c426f91c76f81b96cef425403c95bc00852359b638a8a75b3fcbea47990e002b346d5a9481083c4336d02191326f6ab5c5777f622cd4819bd1187cc6099cb7968474ed93c0b830bb301314551970b86a25da05dce97ab5db744c78536712c752d02206c8585285268c5842491f92636682b223b6bddd39c6070bfd74aae3f8ab1fbc357136028aa3542f006cfbe429001377d2112c5ae3805244b865ea863257aa671d0b146d04b89b233f70768a373043a59b9060b0943f56865e6a91bcdc54402574a0f1c143dd36948d781d2f3c44e2f08b52e339b6e1cb330c784bb2ca3538979b24246c2644907484719c531ea39f13c5a34046f8e5cc31646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71 + +# Official test vector 36, seed: "ee762f5c9021c36446706a88ef16312f4a12c725cd7afff1484337c91eda8e89f7007f3705747d29907b3fb7500e5074" +seed: 056661b38038da4fdd7426f32a81576c73ed84843b305168a374f934e27a4e1b79238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 +public_key: 00264fbcf666abba49136b6e6ca0ac8636bb20d305bca62bdef6301aa51899d7341147b72c210afee6a3294a4ac8685b1b6003eafb7e94d91fd958b5c3944129198bf02a2e9491491a2bad9375cd9f184aab285e91c877884b101511775cb31f2a2a3e7337406d7662c8d8c83c1933f0e27b8b2b39b1aa8897440ea5142f22b218c77c664092996e39237f577139014da6da6870d848cf98b006c9633ff138323261e1d042ea645e60813c11f9489714c197607e568c8045f0244ff40fb86634dd469033456604f19255645898181cdb830c1a82c4eb1373ba820515b6a44596342ac8b912c217603cc92b8a2b52caa29972bc95ab334a93307d7b9aee013b22118eabb947b1a23150481fa1e7b9146b9ef5fabe9debc682003eed2534d9614d90466c80a73fab8b94d187a383463e7f6a380d1b34ae5473f58167e97794767a20bce5b6d5dca88b35695e0a2baee03abd55ba0fe768a8254d40836233fab358842675508302a337840167dee53eb3ccb531a7637dd1b9dac9a00432268002165f72a5aad8ccc7131ccdb1c986a7b29bd89311099fa3e9460553900e51560364bf9af461f1487cd9f0adeff5079b07240870c310ac4702e113f68433981242c153c49c43cd93493b52395b5db073ec936f3518b7f6954426b9757476cc1bd0c4ff870a2124a8f8daa3299ac21178235c260a018c169d083cf40842bb6a0f2d407861106b4e752091dacbb85677fabcbe180abdc6235d0e8c34737a5934f431afa670d000166f6c5e4516174a205f4bb6182bb24a54907be5360cb81b5333a937c4e40ff2579b0039c0ba3374664859e376a8515b390bb46acfb54bbd4aa6daab1dfdd44c712b311798c71e162f36f562017821cc96227cc431ffbc3634acc704937187b8200d9bcbb0c25df359c386e740195662ae24cbb24b181a23a2b4cb5e3a767701d3a80f7bb82133be97daa38a706c7e2949ce86587246bd5fabc774956019c2247f5748f0988087159d42b8c6b1aaa398879c77e32b0a5494926588dc537fe1f05a10741fd8814f191cbdc50cb2a0ba1ec053a789396208415c77c18d283510f410a722a187cfc552f63159648317ed696695413ec894ab80f4c106d73933e312996b23f073bdb9625727d8c0ff1818d9f78b91c4a6c33075f9a91b772138cbf6861937c53aca7b535baacd2bceec96223ba7747b4a7d50c36d3cb0297967cc447c3bffbbb723455e421ccfd791c48f8ba558692e2ce278dd351e28d35ec1039f16d8281bc0867d529ffa6544b1663a14b6843fd85feea2b00e3c8b2131bbaab0b2161493caab5464501ff6e30074a372dc6a905b9a1a66b637365b48af4b55e45ac4236781b71b130718941f06c17d84786bf1a033b60da7c6b0d4d385f3f323dbea84c0bb8fa720569d1959473b1af84459c0ec4ef133c0688323fe8503069bc15cbb391ba7041e665f652880ee367c97f34e7230009fc401d7a34b536529ef544233761bd2a01a9da338a215492252906f979290202e5c666bb31a74feb13b05cbbb341076674c02567c80531c5573fc6428b8ceddf3ae84b8bb7018a3ffb02906770c4528c73360a867c2701158927eb5a9fac60a2f401affc4c65198b4a5e1439001d5882496fa682185d21aa4ef95ac3eb5e675c7a4a4426f93 +private_key: 06f99e63362cf6dccc11a8854b1407ff12142d91a19d0395f3923abff155cb4807aa932e218232dfe932aafa673150bc9e7155794565aaf7375f7195f0c1c35279a51d613c6bc32cde086f61725c28324e9e392d1d3a91b0661f1524592f6772d4e012402c18ea162a3cc36b8f565152dcabe80691ea3b84d9eab83dfc429036676d1109d9e258343b418f840a1c53b47211b55f490202c4659126bcc5f4ce23f2906630026cec8418526efcc02b0feb7728a53a3298232ad37a424b4f980827e24ca9cef26115a100bd224b4a304914c83629049f7e836b8aa539eff61a60fa8154ea97c31259b3c629dc891c027c8e5441b5f164759b13980ee0a5baa71deb08c99e6340419b0f6ec82ee2536231e2634f9307781097f8ba2a22db4412c5bcdf764f0b58bfe176163e1b5667ccc45b39c77b3673ed4c70786a33b5aaafb5d5c12d4077baa3223e2614a7e917c7462f220545fbe9275b1a62a882797e5a96cefbadb309995c9b26747ab33e543b36080c29a4bafe68ae41911aa763a8d90162a1959dfcb7890a394ed40a5340f0b8a89434baeb9414ba460178b2c5db503a28bc8f2a42caaca2fbd6c77d758f30e14bb1075ffdf535fffc76d02ac264787e45340b1dfbbbc4513ff15abd2337b6d4543492160575f44ba1c793c3054bfe767a827875322ca753e200c717c47db1ad47f12ad103c28e9380be2868c8b32f7102c26b977760e67d98109921425611b9878e215494910730956bdc7a015506c45f919071042e921607560560237bba0c3190c759295ad059b7c99ecb62222a54563ba730a7d3a4dde375c9f931cd16c4344552ff984fd6aa9ede0602a840bfcb705e078cc375437d3927455aab6ea3872499b0795df7bfd436cda3368bbbdb990d6ac9d3f637be663e7590055e00558d0177f7c63e7fa292097303d68a34f240a17c7c0b80c5a69004c195d915dcc880acc9cab1db842c14722ea534b865488c41824017cefbaa5c1127aec9e535112764e713ce403c64a6a27662a254836327d5924846dcb646b79de5ac0bdeab9223f36f5c124e595165753656b0110241f6b805b0b30b1b698190b5d4f1ce112c93b4f6a190106c7be120d2dab2995578fe9c08db3bb36c99c2c3f2001c6a269f563edd088f3b50a39d508a67c75889012cc090217b321e99e95f4f310f8db2cacbb853297601895a3430405f828827cf151a83480b4276cb73996fd5d7b357a52573912ade3394c48b7709d50cb8f2381cf50eb0e14bdf5740836138e539a7fa6a4a94339cde3bb71ec34ebae4bf4763ce93d6041f62bd61c81868f81e8b88124e667cc83c0b226157560647996a2581837b75eb59d5a934bde44cb1e664de41184ac480323ca59f624662b17bcbc20424c565385958c99246d2383a9e2000f9b817fc57b7f32513d96ccbb6140510e11e224702893bb891350404f376b0b04a674b2161bc3c68e8901348a9a9d7742aa3a210319dac25a7ea909f2e877728914cbc2332bed4876f5453aeb3365879a0a24244c6172a8d267cdf9c10787740a5852e66e3663a879a35208a07959b9c5997e57a779e8679563caf551a597697473776519f87b0d7e03c1a686d705c55d1b1ab00264fbcf666abba49136b6e6ca0ac8636bb20d305bca62bdef6301aa51899d7341147b72c210afee6a3294a4ac8685b1b6003eafb7e94d91fd958b5c3944129198bf02a2e9491491a2bad9375cd9f184aab285e91c877884b101511775cb31f2a2a3e7337406d7662c8d8c83c1933f0e27b8b2b39b1aa8897440ea5142f22b218c77c664092996e39237f577139014da6da6870d848cf98b006c9633ff138323261e1d042ea645e60813c11f9489714c197607e568c8045f0244ff40fb86634dd469033456604f19255645898181cdb830c1a82c4eb1373ba820515b6a44596342ac8b912c217603cc92b8a2b52caa29972bc95ab334a93307d7b9aee013b22118eabb947b1a23150481fa1e7b9146b9ef5fabe9debc682003eed2534d9614d90466c80a73fab8b94d187a383463e7f6a380d1b34ae5473f58167e97794767a20bce5b6d5dca88b35695e0a2baee03abd55ba0fe768a8254d40836233fab358842675508302a337840167dee53eb3ccb531a7637dd1b9dac9a00432268002165f72a5aad8ccc7131ccdb1c986a7b29bd89311099fa3e9460553900e51560364bf9af461f1487cd9f0adeff5079b07240870c310ac4702e113f68433981242c153c49c43cd93493b52395b5db073ec936f3518b7f6954426b9757476cc1bd0c4ff870a2124a8f8daa3299ac21178235c260a018c169d083cf40842bb6a0f2d407861106b4e752091dacbb85677fabcbe180abdc6235d0e8c34737a5934f431afa670d000166f6c5e4516174a205f4bb6182bb24a54907be5360cb81b5333a937c4e40ff2579b0039c0ba3374664859e376a8515b390bb46acfb54bbd4aa6daab1dfdd44c712b311798c71e162f36f562017821cc96227cc431ffbc3634acc704937187b8200d9bcbb0c25df359c386e740195662ae24cbb24b181a23a2b4cb5e3a767701d3a80f7bb82133be97daa38a706c7e2949ce86587246bd5fabc774956019c2247f5748f0988087159d42b8c6b1aaa398879c77e32b0a5494926588dc537fe1f05a10741fd8814f191cbdc50cb2a0ba1ec053a789396208415c77c18d283510f410a722a187cfc552f63159648317ed696695413ec894ab80f4c106d73933e312996b23f073bdb9625727d8c0ff1818d9f78b91c4a6c33075f9a91b772138cbf6861937c53aca7b535baacd2bceec96223ba7747b4a7d50c36d3cb0297967cc447c3bffbbb723455e421ccfd791c48f8ba558692e2ce278dd351e28d35ec1039f16d8281bc0867d529ffa6544b1663a14b6843fd85feea2b00e3c8b2131bbaab0b2161493caab5464501ff6e30074a372dc6a905b9a1a66b637365b48af4b55e45ac4236781b71b130718941f06c17d84786bf1a033b60da7c6b0d4d385f3f323dbea84c0bb8fa720569d1959473b1af84459c0ec4ef133c0688323fe8503069bc15cbb391ba7041e665f652880ee367c97f34e7230009fc401d7a34b536529ef544233761bd2a01a9da338a215492252906f979290202e5c666bb31a74feb13b05cbbb341076674c02567c80531c5573fc6428b8ceddf3ae84b8bb7018a3ffb02906770c4528c73360a867c2701158927eb5a9fac60a2f401affc4c65198b4a5e1439001d5882496fa682185d21aa4ef95ac3eb5e675c7a4a4426f93b30fe432c2e9744430805aef6b75cf3011ff387e323558212b9d71ed71f044f779238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411 + +# Official test vector 37, seed: "d882ba69ac8bbc88715f1c6387531f53273a5dab87e66faa8221a7f628d2bdeee1cbc59c0e08d0add84520a3a70c1389" +seed: a1b52d871612a1c611ae0944f9e71858f35d3bd14f20e96a931720668bdf0a6b1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c +public_key: 869719ce20c5abaccd8889286f2a77b388a58ebb7c53e79619762ae5111b6f352192288128a83202005adcf0b15c0640f2b84d2ed58ee806bd4fa22ad26c5c8eb9a035768951a579f8facd48428e508abecd418617fa5901fbbdacb6b539c148af327823009e86fa49b96c42d8ec5accecc423fc979c475fc9c63696c21d206301e9d54ad1088be167af34c57facc25d4bb49ba5677842e27c1fa666b0659c66dc412de949980ca6a707a0c21976822579a0fb1d697892fc87251354a17f630271cb3b10f5c578777a990361b467c1374897675748f763619e065104a31999a765815ca7a22103f3631879b790a862450c69af8d29c0f9a48e8dda82f2c03c0e12b62484c4ee35002848b030e41dcf1084b1f70d405677a059774e322c7b72265e32810e761d82956cc0194257f31157928b786b6fb6011a130620d2f51678d27de0965465d445e6777660865df9e73bc6858fa8155bf5cb4bf9c23527340c32211009144fe456950694b656a2a30c55647d17cfa1856981867aeb82af63f1525c31cf643b32ea822b2f389ad4255838a2bc2ff850cbbca834c87f9fba1c05ba251acaad9ad99075920653d29d94c399cc4a2e4c7a871e176a275b7ac0a4401d36b35113595d51b92ccb8618f3ca40b4900774a784644973477dd492c66d09ba9b074c3d0347dafa08dbe43a9b890f62a5b9caa996f9e362b9a2103942cb91915ce8e390af54a2578227a9389e922b9c382907853ba05eb13e7f03c079301db2135d95c934da5784cb05b9726a1c1e28b01f5c5edba7a340053ea51c32d0930653f46170025204c0adf94c2075631c55790895495f23ea104a60b88c8b627db4256b6892d1b7886f959a18ac238aea494e45aaefd72056f362e7f34ec5e20e9c9aaf2efa8683970e310390a620264ec1ac3af515c24409ef4a4b99d0725de1506c706303e2848e2904f8c4824260162e5392b5b0595d699357b190e237ce1e3692ed95b7710488ad285c04db243eea475520605cb98b98a1cc893a7f1d7492f038795da03f63a91ec925a914b3c1fd9a3b5a74bea6b6770a5b1400348f7002555ba8c9c95b88cd829eb179472245228c21afa2d39238c76cde000898b718884ac8108c06e81c02f264bb6c9c5c13081c09d431aae78a26d62fbd041f32fbc012d0c83fb9450448cfcdd8cf881036ac096396e311e923478c5a346cf5c930d01c84b04400b38759a18d3ba40e46c8af5f133258f353aaacbfa68b0bfe206bf7fa65b192a4798a0faa68b2574725dfb69ff108b7c155cf77426ef8a776f0455bcea85ffb91a74f7203bdc2a9d0096fe7ab57ebb4cf1dea1ca0c5c4f9e264d2d5a0fb64658bb3b1ccc93ea5814407b6c865bc2b2fa14311ca50016b782716841bf89474c10e182aa51c0416580769312419d1219261a548ef0aad81159e4be73bda9c8903b7a4955456a3a8b405a27c18968901d54f8a0ca16e41aa1d0c128edc33b069a1c1e4b22438beb74a996c8b30c1717f07092c46402b1d9b710c46540ab32f38381c95b7445704461c0589cb427606057c78f911fc72ba38d1b664767df30901b148b1d609601bec3e40e41136ea9edac60f1f097c49906f105c99c4b069d5325baf3e6882dfda254850ba1ae5ca738086b4bb3c91df05c11c1acb67a98d +private_key: 93b888d05aa46698878f187be0da6290127b2cacca5fe508c40a523aa56b923b5325fb7bfe0b3cbff11fefb8c9acf6b1add2a41d265be89baa96989afe97a5a749484d27b8761b6e9cbb2a957676743cc79b22a74bf92ac693bb54a31c4f269e5d00c470630f7c491a708b40bc7160415576db195fe78b3c33140882723387d4af2d120b0fd015b41b5984a8c217e818300831f1556c5489139f216a4ffa5799246e9151790b98c2b907b8cd917f8d981e7dbb760a725a30e34d997774c657cd4d2648e974510511583f15c5f0100872b91d0c1c89c307ab4dc31cde68c364a20712559a7c7c58d6cc0c8feb1645d85436a8188d7c171da14451685591380bc0a5417870645e4c633a2a430f23941c80c92694b8cea6674e97a032c89516397d42e44855b4ab29f484d4e33097754d0fcc672f452be0b3a2b752c2e2a87275aa89e65ca0efd096ec158f591557c7fb1b6e696ef2ba704006b7f6e811f2385dba947fb10c404b79b90e620a842a569dca77f1039b62403787cb36bdc8984c352c48635b552361c77b82eb67abe8ea1db025302a98b9b075a5569243a8725493f07cd025494b5c01cce508d594cd36f473b8416a9e7a8de0a99879c109161ab3adb78d01e1b2ba2809b7266575086cbb2622a4e708733bcaf322420a65873c624dbf1c20a07821a0ec02611a36f4501485a6399a91b888ac547c50120e5070e597a9a6a67f06a2039cd6ccf7246adc0576a3f4457cb9a4c4b46ccd846a77f416961072cfe64a32920851ab1a20555122942b7c3cad5b137f6885b39d66cfc4f5c7c6e63d2d45c8e184467ee336945aaca71442b1508bd9687f40a4b70db764bbf90510526ef1842151c56da153a100fc92efca3539ac6efac23fcd60665263cf435ab34336b08d2023eb147eaa00c5271459b026638b9c18d2d04e3b429ba38053dffa2b1930a7453146e798323dc5c5fda63ab285810dd734b9988691c8445098a2ed96cf2324067fc45d12f118b2726104404c2174097147cc6363c684215a12b4b34b161231331c56fab25f0418f5e55fcd8bc258349524004a7534b99051113efcb310d61556788e187c1f410b6563530d8aa4bd07690234d504b4a9795d8141d56049d8e1c019932d46219124596a64e20658f010724547e8aa25d55c042a8a58de53b10c9c26740812ce6952f765bfe6153e1b43582f5b7af3ab3881ec42b4f80163f89648c622ab625da6b730f47244d2391e32c2bb19da532c726f30772cd90b64f481cad12c86c6166bc6f38fb0f92975b9aa31b8acdbd5bf5e746891a7087849497feb4fa63c28a4836784ac8a6e631055260ebc0b33c5140fd3ecb5d82156f16aab8349411d1192fe578e3d359e22705439317b7df77d08d38e7abc8b146307bda7a7e00b8e0d51836b1ccd35611835755a72a6bcc069165164a1181920af68434bd639fe0764fe07d0b6871ccc617b5958c26763113c9062be342dc5e44fab720a30a44a10aa0458379c9d8719606a564df808e63581820606ba242ae664c4fef748ad311ac4156f597c39f17c93f88a74418b734e0caf607c4f9d72877c925c0f25410f551c2b3860fc26cae2f3a319815a239bc4fd627ded7181869719ce20c5abaccd8889286f2a77b388a58ebb7c53e79619762ae5111b6f352192288128a83202005adcf0b15c0640f2b84d2ed58ee806bd4fa22ad26c5c8eb9a035768951a579f8facd48428e508abecd418617fa5901fbbdacb6b539c148af327823009e86fa49b96c42d8ec5accecc423fc979c475fc9c63696c21d206301e9d54ad1088be167af34c57facc25d4bb49ba5677842e27c1fa666b0659c66dc412de949980ca6a707a0c21976822579a0fb1d697892fc87251354a17f630271cb3b10f5c578777a990361b467c1374897675748f763619e065104a31999a765815ca7a22103f3631879b790a862450c69af8d29c0f9a48e8dda82f2c03c0e12b62484c4ee35002848b030e41dcf1084b1f70d405677a059774e322c7b72265e32810e761d82956cc0194257f31157928b786b6fb6011a130620d2f51678d27de0965465d445e6777660865df9e73bc6858fa8155bf5cb4bf9c23527340c32211009144fe456950694b656a2a30c55647d17cfa1856981867aeb82af63f1525c31cf643b32ea822b2f389ad4255838a2bc2ff850cbbca834c87f9fba1c05ba251acaad9ad99075920653d29d94c399cc4a2e4c7a871e176a275b7ac0a4401d36b35113595d51b92ccb8618f3ca40b4900774a784644973477dd492c66d09ba9b074c3d0347dafa08dbe43a9b890f62a5b9caa996f9e362b9a2103942cb91915ce8e390af54a2578227a9389e922b9c382907853ba05eb13e7f03c079301db2135d95c934da5784cb05b9726a1c1e28b01f5c5edba7a340053ea51c32d0930653f46170025204c0adf94c2075631c55790895495f23ea104a60b88c8b627db4256b6892d1b7886f959a18ac238aea494e45aaefd72056f362e7f34ec5e20e9c9aaf2efa8683970e310390a620264ec1ac3af515c24409ef4a4b99d0725de1506c706303e2848e2904f8c4824260162e5392b5b0595d699357b190e237ce1e3692ed95b7710488ad285c04db243eea475520605cb98b98a1cc893a7f1d7492f038795da03f63a91ec925a914b3c1fd9a3b5a74bea6b6770a5b1400348f7002555ba8c9c95b88cd829eb179472245228c21afa2d39238c76cde000898b718884ac8108c06e81c02f264bb6c9c5c13081c09d431aae78a26d62fbd041f32fbc012d0c83fb9450448cfcdd8cf881036ac096396e311e923478c5a346cf5c930d01c84b04400b38759a18d3ba40e46c8af5f133258f353aaacbfa68b0bfe206bf7fa65b192a4798a0faa68b2574725dfb69ff108b7c155cf77426ef8a776f0455bcea85ffb91a74f7203bdc2a9d0096fe7ab57ebb4cf1dea1ca0c5c4f9e264d2d5a0fb64658bb3b1ccc93ea5814407b6c865bc2b2fa14311ca50016b782716841bf89474c10e182aa51c0416580769312419d1219261a548ef0aad81159e4be73bda9c8903b7a4955456a3a8b405a27c18968901d54f8a0ca16e41aa1d0c128edc33b069a1c1e4b22438beb74a996c8b30c1717f07092c46402b1d9b710c46540ab32f38381c95b7445704461c0589cb427606057c78f911fc72ba38d1b664767df30901b148b1d609601bec3e40e41136ea9edac60f1f097c49906f105c99c4b069d5325baf3e6882dfda254850ba1ae5ca738086b4bb3c91df05c11c1acb67a98dab02b962b6350a9e1314baaa272b6b13db3d1edc9f09d3addf07f6826a3556bf1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c + +# Official test vector 38, seed: "6c3aff39f5d097096d882f24717718c8a702382dc4aaffd7629763fda73c163cf084807bbb0c9f600cd31a7135f48aec" +seed: 952b49c803d6d6fba69f4375adce8594847a00bcae2179da49af2aed0423250262d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed +public_key: fe04b19e38680e8b5f005167b4ccbd4bc2a87c3a98d2b2af18738b8b44b1ff480ad69183c828bd372a4a3ce12ce72867a886733f3bade4144ab55b63be2902aef88ab4e129551540e8390357631233eccf23a0668886b39942c23f902265a84a08b07d11b85c096512c09ac3c82023f23aaf48578bca4b50426713c7e5270980c78c6643ef615c2b6ab57b98111a321e30d8a38b5a376f9a2c793ba196e293fde201ba7261e222080d951b4f249a47da98c2aa4b87e165de574efda9577dc815c847ad269210970975d8322645246cfcfb46a194a9b3cb2b91a20fd9107948d8777d0a14d6187c922a5beed80600991f3040643480286a580e932032a37b8c82833535f721edf44e97397e14931cf7f49201d80b75d650f204bd37416c643ba725d2b3b4f368b033589e01cdc10ccfe264a6efe01ecd3b8e92478bfd7c1abba973459346798007990a9edf57b081c73d699b7a758a6013106597ab803870c24e4c2e0d649dea9bc0e0fbc742571b7b6bcca714881db2597c3a45cf0794022b58985a61d582aa59b17e9c567e4b4268976943982705f389566f53c49526ab6c210f4e694544d307d2c8612d1ccc23658127e8b071e58136734082616ed011397bb781896953c73b5127b28437f38c27d663b05745d3fa37e9c2a07dba767f0859e7a30e9d48cce5f37632e817060ca46633c9b4f6735c3bcbb9185abf39ba9ad600718c6fb84b7c7b867b5e5c51c0b0cdb03cc83b49568a4a02ad831fc93157a4e5010ba81c0b6bb34afb908a77b2e8d106f752c39ac1a00a9467d58484bd273733947a619439576a98b4360811c97e73431901978d295148bb991433ac72b4cc3e5cac2a8f68ac9d9a3f5d53889343af7e6b02316831b7208939a88e613c0ec5d07861099488b08deaeb2cd295b6977c7c9b2630cdaa5b0a93ab7d98728b3ccec979b869d506b9c679ecb673b7d83df908aa58603275a36291ca60fb717b74406ec852b802eacf4ec3c2533315240624b5b7a8ec960ebeb04d970cb815fb059c458d02254fe8564f154a8c240086fd98ab6a4a4510fab5205a99ab873f3ec29b603a660061b8eb803b6e71740ef174db09bd6c3447197765a0907d31fb1635435601b0a8337972263857f301ae5cf56a23dccfa392020bc84e79aa6a37450389a616f6e626e001592f7a71fd00ad82f3ac9d1979e83955bcd1248e7c9f5245a22bd26479caca02f70303b8c978187f102bb949b7a709e94fc2069489601c2752222da41090578edfc1083e0a8bc9110b0e64623e320f0bc56c4f2b2bef38452ac7c2e17c5a72166a48d55ce5d3abca1a98d6eacf734249e8820e29721931faaebc3abc1a7453b5b01b52a27284995df4f07a3827bd9567cc31b2bb08825046226e059b52bf8b0f864793926b461574b73198b6b4a128f19607bf1205380127e6597ea4b099eba13b38fa376177cf8d090881a20164d804320469b15988759025f5089d7b98675d554ce4714c124c1c30775cff79229b1b99e4206cbf28bab4017077d4721c263542ea1742ac45cc500d327a3da9c46309ba09742305b25390c50abae20b6e8c8b3ae0208aade68d9e2004bd0c26d21c8096cb97a1a2ab02548ab8f1be5fdea37e49857c092ebd421eabeaf7d76beea2feb7cff7d2376a329549 +private_key: 7db7cb1612bd434144e3e8c45dbcbd0983a000da3ad94150800c6ba82929366027b9f3213cb2aea2e094ed979a179b95629b885a77b3006d6735f6ade15589f06397ee572a11c9a23e206168d10736e0a073b28240518febc2a88135b290231c78e5afe50a21bba9256280861ef75f0e97336f1b735ac69b0f652bb6d3b46d6520964671a8309df2a2997b36a4430c7f1af27443b869dab0973793a39014614f96b4b0f554737b77481c0d16288183b71dc9794f713098edf87bc947a96f542e2a6c11670401dd475e3214be00c0054c687fd3774263bc9fd3cbb85050a02d53c1cea22c6da3585f743d14984c64046217555f45d9aa7b4944d14cbd3dd69bb520c150453bcf91387a1ca4bf4353b15a9792ea89def5cd09a6658ed57af3cb2d2b1464af2bc28e016379569d7c352ce2d2c350f8c494807a8d239c2b0654bcf2cb866bb35da6289f5505f0059e4351a44810920cc6ac87c224be4902f2f002936c4dc13554ff7588c13a1ab7a12b23c273e7fa5e94b152beccc94e0a74d3580414c60dd2e4806a056235152acbd21e7042a3c3429436a52bdfe45be4247a0d24cbaa1821543bb6d860889933897b85397c94764dc2b1aa94555ff42412377bc6902fdef97295569c8cf1585ad8ab64c124af41a534ea4b2e5b6d76e33dcc5cadd7e376dec13652115e9733c1aec91dc9446fae1702a7420b45f32c719473033925d7996915f40fd1f13d11807811f1c991b0137524acef597686b61c146526564ca162935307cb6fe15606dc660a550c848ea8171c392f5a916738db2d90534a4332c303601d14b98cf5e7cda3009bf50809d194000b10b63c7c718d8299497228932758629b5529610bf56c7a33464b206888228a257eb8a8c149b8a0846df20c84722ca98a458c09ca598d752f8273326f27600c179f1a8cb1e8f14072dbc9866058a0f448a1556531e010582b4672cb9ff873865eac6096f9a4fa0225f4855ff15c7a31968ea1447caba5c295f70d5c7990057751dd91365c4c57b601cf45547153b2258a897bfa5b3d23c00d0be449ce5172fc513141caa315b397d6d77eaa67c6570a60a3b16f90f1087da1196b363ca47b830b4902c23c97b1ac33d464b5293959f1a007e51374b3f016f7bcce7417695dc015ad84b37e07aabbb0630c467206d2471509968f88914fe6bbba9742878632ee6655418535b4e45b5595c90b4ba088541e51a32f4cb920879268f56861dc40bc9f661e8f611288faa6f0c911bdf631de2bc9d53369f2b116a26ab2bff14981fb817a9b4d8ab928fa19a3e1b03f4b89cd459a64521300f5e5ae6ed8125f2544bb039a4f09483a799ebabb8839c4111f45a013276ff79a3ae9e5001ce451a0aaa5e84b185f8747ba35c58a253618a8593d155adfd05a5f755dbee456ffc3883ff715bb42ae09531fd6d88ecbb21d3138223326b8e9362e5382be38e7035701c2f0d72c678b47a79a891487bb3c9c7d6b823231da391b2b3c6751bb66b7a7e326526f3221a3a936ff82a09c07cf33763b3072b93a2426f2508b2b734e184b6f00488f378373209552a4701c43a746e207342e463c4e11bd5ab1b5f2e2b8691057d6162dd66a1bc97ccfac8537fe04b19e38680e8b5f005167b4ccbd4bc2a87c3a98d2b2af18738b8b44b1ff480ad69183c828bd372a4a3ce12ce72867a886733f3bade4144ab55b63be2902aef88ab4e129551540e8390357631233eccf23a0668886b39942c23f902265a84a08b07d11b85c096512c09ac3c82023f23aaf48578bca4b50426713c7e5270980c78c6643ef615c2b6ab57b98111a321e30d8a38b5a376f9a2c793ba196e293fde201ba7261e222080d951b4f249a47da98c2aa4b87e165de574efda9577dc815c847ad269210970975d8322645246cfcfb46a194a9b3cb2b91a20fd9107948d8777d0a14d6187c922a5beed80600991f3040643480286a580e932032a37b8c82833535f721edf44e97397e14931cf7f49201d80b75d650f204bd37416c643ba725d2b3b4f368b033589e01cdc10ccfe264a6efe01ecd3b8e92478bfd7c1abba973459346798007990a9edf57b081c73d699b7a758a6013106597ab803870c24e4c2e0d649dea9bc0e0fbc742571b7b6bcca714881db2597c3a45cf0794022b58985a61d582aa59b17e9c567e4b4268976943982705f389566f53c49526ab6c210f4e694544d307d2c8612d1ccc23658127e8b071e58136734082616ed011397bb781896953c73b5127b28437f38c27d663b05745d3fa37e9c2a07dba767f0859e7a30e9d48cce5f37632e817060ca46633c9b4f6735c3bcbb9185abf39ba9ad600718c6fb84b7c7b867b5e5c51c0b0cdb03cc83b49568a4a02ad831fc93157a4e5010ba81c0b6bb34afb908a77b2e8d106f752c39ac1a00a9467d58484bd273733947a619439576a98b4360811c97e73431901978d295148bb991433ac72b4cc3e5cac2a8f68ac9d9a3f5d53889343af7e6b02316831b7208939a88e613c0ec5d07861099488b08deaeb2cd295b6977c7c9b2630cdaa5b0a93ab7d98728b3ccec979b869d506b9c679ecb673b7d83df908aa58603275a36291ca60fb717b74406ec852b802eacf4ec3c2533315240624b5b7a8ec960ebeb04d970cb815fb059c458d02254fe8564f154a8c240086fd98ab6a4a4510fab5205a99ab873f3ec29b603a660061b8eb803b6e71740ef174db09bd6c3447197765a0907d31fb1635435601b0a8337972263857f301ae5cf56a23dccfa392020bc84e79aa6a37450389a616f6e626e001592f7a71fd00ad82f3ac9d1979e83955bcd1248e7c9f5245a22bd26479caca02f70303b8c978187f102bb949b7a709e94fc2069489601c2752222da41090578edfc1083e0a8bc9110b0e64623e320f0bc56c4f2b2bef38452ac7c2e17c5a72166a48d55ce5d3abca1a98d6eacf734249e8820e29721931faaebc3abc1a7453b5b01b52a27284995df4f07a3827bd9567cc31b2bb08825046226e059b52bf8b0f864793926b461574b73198b6b4a128f19607bf1205380127e6597ea4b099eba13b38fa376177cf8d090881a20164d804320469b15988759025f5089d7b98675d554ce4714c124c1c30775cff79229b1b99e4206cbf28bab4017077d4721c263542ea1742ac45cc500d327a3da9c46309ba09742305b25390c50abae20b6e8c8b3ae0208aade68d9e2004bd0c26d21c8096cb97a1a2ab02548ab8f1be5fdea37e49857c092ebd421eabeaf7d76beea2feb7cff7d2376a329549c153354b0187e658306a0c860b1fe6ed14686ca77d37b7c82d66ff62149406b762d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed + +# Official test vector 39, seed: "cf520b92a2e3677afd003ec1ec6ef136a709d78f828c9c0dd4946efbd451c5faabfc83ca66f9d3d17ee4220553b7a69f" +seed: 3c815e57e9233e975fa1630208aab206b71ae0db37a7a8789ac683d9f9b2d29801c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 +public_key: 57c8b4dd8ab3b7e3203f2358221c9cc0f2a671ac1846e59b3d5c95576806b571c64746bd4bd541d4c55128b9a7d5208960a2b74a900a426013f6b48fe7fa1adcba5ec1e44594d3850c1a90e2a6bb341210039b48224b97efc62583f5882c71505a96284cc7cbe9873215697ba688546d3a6f97729b22251f479ab3f92cb08fcc3a9d962a661c6150ec6dfdc7560986bf808b4504ea2d44d595a8c34f4a564147cb798fdb6836cb448ca857d5d08242e233e3826797a4191e53cee0b375d395cefad91a395527ed094daff389a198c9d3b28b9e42b002fab4aef17b3089885e8017c047c35152a0e2709cccd7bf4d4a081d3160ebbc3d7a3ba977e221fea55e01823f2f61bfbeb9388d04103fa0c3330770c5ea5a882b26d14c4266b27722f29863b60c9f6984a5f0c2ee8b6f27385933994d8f9973728c5be6898012e4766d842cd1d7b360e415286c965b0b5277a5a1c5f731dd085df0f9579a31b5920227f238c389a723f8c31ea1c45afcfb6a62e555b0b2b766e78889dbc7a8a174fec48e328b4411338b26074002261e3c19c575b42f5a09a268b223aea813706900e785c3a05a98a5708d083c5e6243872ad78f3b456173267d61d57b2f330d01f7be8cac65b1ca46d8492f39c83338d92f3ea9a3cc7b502b115d5a7700e5885f264c384aa36ff52ba08ffa3eee17531915baabb5c9c04033aa091c36a0c5e99aaf0fa446a945a6fa281750bcbcf8e6666c799a43780b4024b97a6a0b14d9722856838d00890b9a982eba53f8254072f07ec00748a61ca18b0b516076382a9a52eb19ad329bbb81534da023cb03e00cb65046615c2d41e24d6e8ca6da872d46a1181133662735c6e382a615707e3d8aa89d49801f7908262c9ba7f1a49cd3c1ce9a5344f5b3df38bf82121cc9d4284da0c662d8b74ca9470051524ad108a2756bad834a1b1b2f5c01b29d640ad11c70643c0553721504ca90edd32cb4c693fd451564a1ca80f447378423888b3a2d30022997281aaccb939b0bf2f5643b036596983768758ac6b97da4843e9d8183633a65e35cc669592ba3a73e0213489ff186cbc66b8fc49fd2916322b30a6f2cc89e42715a8722c672c246822938b32ca6c47f05c21f9da66fb457206e7b58dda0a7f28b93ce24cd182b068cb951c5b29cfe1c30eb226a81bc06629133fa0a590de985e680550dc370108a7519a0b9da5b06170bc8a647c408477333e63972a7452cac811ef60cce2b8af8cc43b848cdddd7168b01ab9d138270604671d0ce57d94481eb1361d9a7f1c5906a11cb80f6454a2c358ad27086a5214dba5c5f69b003d9856831a8c13b9c28c7087efb8cd7247853b1a9c50b70d5e086a4e48ec77c8c6f4a83a11421ba4b0871692477a6b38f68c004f4beb011a137813ac02ccfe7b73271262fff16227da310aff06a8d23938444436da66d7ec6144ab44edd1322b27179901c3c1703279fc86163f804136a13cc925e47901514da5f7c68a23b23347d2b78ecb07ab4d81420662633b8a07d686aea3bb8edb04da7d2616efb147049c45e2a0deb0c85260862d4d25b47932b54487d6396c7f94193e40483c928460eb6b9b4349e1e4c0bd180111a72246c4bc20377a7059faffaeb0f304a1a64398249b1e8626fd1aa24ae11f67a7f23fdcaeb349484 +private_key: 4284a3f8fb141bdc3c3eb0abe19b14e1c87cd6b667aaa115c1e4004a122459887fd63b38bac7421b0c3f4b19cb8aa591e6bb8d54039156627b305638e718c92682c05b56a9005338623a54d1fa92fd8b6630d4c1e0e50cabbbc3d054ba0f03443bc87273602234441ccdbb601d30263f260c567a096fc18fd719bb7e4c6d7113a7e4398d30f793afc45f484865aea22ba9119346374438a29c3b068223a4474f8a3c6fd4ac8c009226a346bcb72d61273ae1f65ac87060cfb129d7172bc452a3e8809f6763b0641cb9e1611699cc158c5043b8d4c995cbc438f549a4454bb147cb0ae27b726c1cbc906f4920b91ddc8531fb2ac06274519096c23975404253c6bbc00a816e5a0a20d86aba4380cfab92c5dd125156b7642e8552582114beb7b38a8b1050a42a2123470bb736b68011b809549c4550459b21ac656a301c0ef8723503b29b0d2370b2f4728cfb7ee17a1952a2354216155bb9072bf307f294bdc5760724dc75ccc315ec9bbf60e78cf11c27943289a0519d75b8aabeb895866c061fd02682e5c210a552e8278f8f296f7397a8da315a83d523bed7b99137078f1010d73c3b53321f0e5b0ebb44252404811ca113f7475f7a9b3cb9229e2e2b13b4f8abf5fa62aed176fba02361f24b9fb88d82147b2a299cf084cbb6c812fb2a1bd9b89a2c56a766350123355d3bda9774527fe9eb9af2c31b25a66b5dea238f27281516bac6e02ec69c8e5c9a9a9a180bbfb7a189b66043bc379cdb58f7c1ceec0a3ea4e931e854047c95565bf3bdc15098fee54b992aac09109197e82bdd28ae36b2c60e259788b53e8eea988d93bfae472499181176627e3d823af9e23870f771fad75b9938647ff39788a24b6c4a4ffb82399138387c9037b851ce74dc41182323ae935a0798126048c32aac4d7c7390691427ca53ca52eb65fe85ac44983f80fa7923419abdf8b14c834611d5908d742e373a7dba8ba8e3d35efd6c8fdc1c12e0f7c272a350fbd275d2eb1e0d836a4254c672251c06dc560f7a7ec7c80b8fa59475479f32a258294957d5d979a83cb6fc3c1ce6819f84e45c1e311b0e873f250283ec486323219a97373f5278a52aea7b88d1c7a43974e0402e58a55e6fc91b08381078f0285f898f4282ac8e5950d09343c7827df67a74ba1275e070c15ef44ffeb681c42b35c2c1b9c9d82cf07705fdec10e5f244759699ba6c5a2ca59b76e5ad5b09187a7bc3049389a94b2e25fc295310b30a9b3fb22ab3d9f893d9d696579648a77bcaa6b4213b23c65d4c303bc50aa0493c76c9387d186f85b0cea44488f0917612244c844450a81acb15e25aee3213e5bb647fd46b974bb45cfa21d6e1cc3af7799b32caacca0c80bc61a3f3991d367515276190e061b2ca956655514090b0667673e898a13e9c8573077641aca677c81eaf09cfe2dc78d0484af1557adfc9b32809aa5c6038020166b891920bc577f0064ed0b3112b727f800b22e9ec89bc691c883133a2b43a61c539701062e8512b9d1227e8eaab2985705418a8de6029832c2bc7eac2d5c0ab4aeb9e92324b83424b2a12c04b58681748aafc566d919862db6a516934ad61abbb17024665ba258f7299d7786ba6960a04f79b57c8b4dd8ab3b7e3203f2358221c9cc0f2a671ac1846e59b3d5c95576806b571c64746bd4bd541d4c55128b9a7d5208960a2b74a900a426013f6b48fe7fa1adcba5ec1e44594d3850c1a90e2a6bb341210039b48224b97efc62583f5882c71505a96284cc7cbe9873215697ba688546d3a6f97729b22251f479ab3f92cb08fcc3a9d962a661c6150ec6dfdc7560986bf808b4504ea2d44d595a8c34f4a564147cb798fdb6836cb448ca857d5d08242e233e3826797a4191e53cee0b375d395cefad91a395527ed094daff389a198c9d3b28b9e42b002fab4aef17b3089885e8017c047c35152a0e2709cccd7bf4d4a081d3160ebbc3d7a3ba977e221fea55e01823f2f61bfbeb9388d04103fa0c3330770c5ea5a882b26d14c4266b27722f29863b60c9f6984a5f0c2ee8b6f27385933994d8f9973728c5be6898012e4766d842cd1d7b360e415286c965b0b5277a5a1c5f731dd085df0f9579a31b5920227f238c389a723f8c31ea1c45afcfb6a62e555b0b2b766e78889dbc7a8a174fec48e328b4411338b26074002261e3c19c575b42f5a09a268b223aea813706900e785c3a05a98a5708d083c5e6243872ad78f3b456173267d61d57b2f330d01f7be8cac65b1ca46d8492f39c83338d92f3ea9a3cc7b502b115d5a7700e5885f264c384aa36ff52ba08ffa3eee17531915baabb5c9c04033aa091c36a0c5e99aaf0fa446a945a6fa281750bcbcf8e6666c799a43780b4024b97a6a0b14d9722856838d00890b9a982eba53f8254072f07ec00748a61ca18b0b516076382a9a52eb19ad329bbb81534da023cb03e00cb65046615c2d41e24d6e8ca6da872d46a1181133662735c6e382a615707e3d8aa89d49801f7908262c9ba7f1a49cd3c1ce9a5344f5b3df38bf82121cc9d4284da0c662d8b74ca9470051524ad108a2756bad834a1b1b2f5c01b29d640ad11c70643c0553721504ca90edd32cb4c693fd451564a1ca80f447378423888b3a2d30022997281aaccb939b0bf2f5643b036596983768758ac6b97da4843e9d8183633a65e35cc669592ba3a73e0213489ff186cbc66b8fc49fd2916322b30a6f2cc89e42715a8722c672c246822938b32ca6c47f05c21f9da66fb457206e7b58dda0a7f28b93ce24cd182b068cb951c5b29cfe1c30eb226a81bc06629133fa0a590de985e680550dc370108a7519a0b9da5b06170bc8a647c408477333e63972a7452cac811ef60cce2b8af8cc43b848cdddd7168b01ab9d138270604671d0ce57d94481eb1361d9a7f1c5906a11cb80f6454a2c358ad27086a5214dba5c5f69b003d9856831a8c13b9c28c7087efb8cd7247853b1a9c50b70d5e086a4e48ec77c8c6f4a83a11421ba4b0871692477a6b38f68c004f4beb011a137813ac02ccfe7b73271262fff16227da310aff06a8d23938444436da66d7ec6144ab44edd1322b27179901c3c1703279fc86163f804136a13cc925e47901514da5f7c68a23b23347d2b78ecb07ab4d81420662633b8a07d686aea3bb8edb04da7d2616efb147049c45e2a0deb0c85260862d4d25b47932b54487d6396c7f94193e40483c928460eb6b9b4349e1e4c0bd180111a72246c4bc20377a7059faffaeb0f304a1a64398249b1e8626fd1aa24ae11f67a7f23fdcaeb3494842ab47ca9355ece6cc643c3274c46efbd6e927b8b4d11ae8f80b5345b487a5c7101c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9 + +# Official test vector 40, seed: "197e5d562de7e01bed4fc597db28dc6efdf0179f3a5bda5f94caa39d67bae730540534d59a7a06c8448f628da8b7859f" +seed: 588760826dcfbd36d9abe6ae44a669bb3ebba6a218eab69e30f18a3bd536576e0e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 +public_key: f784b4d0a3b69a60403f5b9c4aa3808d7b832ab9939b2a5cd15bb36ba710f13c934f0b5dc5f125b4c4604d330608c0c608f14795f690d21ab54bb9a0ed443601f821b3c153dda33f6b102193a2343bbac83b938e521676ea2a20bad2b515c13bdba9c7efa9b8b460a8cfd6a54841bb306819b2ba7adc5b93951653c6d116c86c302e067b358631259012f1d230b892c393652fe9d778e755bb1d8bcb840c51eb93371c2cb377da1f0a33c13aa4aec4c9b79f492ebe34906b6777aba1470787bce5ecc92f494377555685e32b6d52afd230464469adda074d5a159a54e3493a3364d7443d81449006f0b88669b8f507493dfb67b1f012037438437982c868362c172556989272c8b338b8a56ac0af290c3be991c5b552b77a370c026b1c7b4044499036dff32c06bb4b1b73b66d2644d0709f59050fbdc62b36e7977a7278fdb26798d264241914391c71ae928d5c7c7800fca963f4a5ecd9ad5b1590bc941909e142be1c382d7a38b123cc23aa02c9273b5f377d97637091db6455447574bb0f26a250c63a6aedf6ce4ef9cc1c86424b226b06da65158114fdf2bca1c457f68248fea0ba9576bdfc380e45781bef85bfc87ace9f6b5c6f5805bc3403b9e9a86503396b109d2ca2916e16bc4c7a9c47270b77db678a724bb9e461e2f3adcad69ab78a60cbc52134a7557afa452eb758d4c357af310247f2b61db9c2edbb126d7284f38829861870bb494fc65b8b16d97cc5c9150d4c4318ec698cc5704f8011b19037232b1e337911565382450a4afdb8c8e07a7b4127a7d6d630c74098b528aa9cea5249a6a424536a6003787b7723027bc8dfd07b9519337d5125b8bb631502701ae2bb9c352a3407cb3903a617303a5c29cdce23c4ed747eb56bae79084ad705041ad27cc7441dd8d51ac4f5be1c594019143f41c56cf9b1773ee0cf9f116036aa65896420f82406c1b36009e12433e60993b691bf9295ba6621bec9060c82bd3d8c75d2014cb774a3eb8c8c7e698069437155da058aa4a6831c6cd0b47fb425c4f85c5481282107d4b5c61756dd3235ba61a95608404c11546a28c0191c5bf8473135a98c582608bf7c4a1387bcd92b449f888c6b9990a59725ea9c896fc58288c5905bd8ad06a80ac952106d42b298377a0da30db7f68df4119edf5b45d472c3b11c85ca1439d2ea0f074899c3155a51f26af1f52265553e2136ae3a69b529767549f146ecc6592a4448918a892af6a895a27a64480546db66c42b8a9dd029fcb2bfc14189974531c37405812295e0e85c2c44620bbac2b5376463a0490f628ba67c7bb7257bca690ce4fbae57b717423abe164a43ece7b30fc768779c5a82d3265b7a0d012383b1d8a6967a33969a5d368bbf5ca6137959093c9b321539236278043112c8ec819e1d9b532f5c7ad7506ab9c31cf2f4b95f978cf642b67b2995c8f56c272775023a438845ca46a6858b32201ca14f1bc19761452a0a6a2b6ae4bde620cd8685a89bd02f64eb51d7bb5d29e71f009a79bd060273ebc51a48bfb575afebb57215aa0fdbdc0d0ad91120d3799c8843d50068363b5c47b09572623d7ad8071ea1424799c1eaa7165343af0e808afcb39f5cc8a7f5e14bd573052725185dbcc71968200bd272d97f676c08e4a6053f4e0a7071d7abe99607e757 +private_key: 72a953d60437f6c7a3855582b211c7d6d97df18c8c53a787117758a3246ddaf89668d5c71e999418e9515a9c95926688bebc25e0f003496bc0804a66ff68ce3fd1820c5320ed9992a92b8227d5042c72c1c1839d74b790ddd371d477b29230a66526a81a0962a52b5b501075f50086f041924e6889f5f6a6a7c15826a70e3c7268b4f224dec35a73da9db8500def40ada4d7b210513acc63c753cab007981bfb876171ea867197ac97716bcb830462e59167616528e840cdd703ab4516b1e307fd5703da82bdecb0047ec49355a60ce27598d739cf9a493c9c388613b05cdb302aa7d82c0c934b95d602fbc810133a7d5c15639f52ca0bb93b06392cd8223e31a3af2aa19cf5406f5953705c3a1e649346ba530b2e34618f520382569d8755563802ca6a76164da8227d904d2e86cf653123c725c0d0b6c799a35a5c517237d405c8d945119a1c573a4b00ac224cc19115c301b8a73cd9fa72fe8366d596a3eb781aab80895704b8f298571eb3a10fd7b6bcf590bdc4461b6c1522dcbaee713bfbeace03b4ce5a8c3d0bb6a3d7e410d0e5640be91e43a134412313cb170a1ec771c73b91af1c5a20a2b097f2be408155d0e3905f1b043f8b888954384adb7916154f0683619ddcc74086a6981a18f9a51d38e44dd4b7690b37a0694c434f9869140a5f4764c968598462d7289146044118022651c6ff259aaf878c584524eb4abb65424c0d3649a76c3b2a9168ffd4c44c074d94632d615bb6a8e2a318c6144c949c27f2a7b9f914cf97025677ae31329f5fe484909689873c2987f6bfea1b4f04fb2aa7880c8e4065ced03eb5fc49df2bbd38a3aa2295c541c47faca59145eb864623baad417975fb4b5b2b3f7629505393bf590b7b21579e3f7477be32b2b7a2819ff856395a700353b6eee92dadd46703ca3be7b033770744b6216a6aa06ff38ca6f3c21bca7ac726e7a665b45c46e4b5e0ea5cef6728f1bb25a2503645b063be0244a4bb9bbf1562ee76c7c859984c878c2f299e2bb0438e11578301a39c3288d5a4657c88901789438d35a29d0446af5782d5263cbf13c831b32c4d052f55746f6d555bffb74ea5d71b136b732f0041bdea87c3a81c4af28db20c3b7d92bd355b340d234fd7a78d0b7057e44c509fd139f7bc84d3a6161295c0438509014c875b2b6b9da55e222183cc0ab15c8c1751725ff90c5a75608b96c5c18a43a315fa5d5411c5717660b5200fa01459f02171647394caccb11426c7f535545931550c6a7b7acb725525ae17ec946c062ad845105072be4ea32b12b67aa73cceef80c8f9d534ec9650131a138745010f96804c8267691824c336c41e2a9169b1ad7de971f59329e3b6548267c1ae1642c649b8ca704e7dba94d6a343ce998611745307501c2c90c5ee9795e2ec58bc825f81979bf9821c4a0b00ba2415e6ba54c36778959540e2b9797f925adc7cb54ab54f5a58c3210cb677aa8be0d6cd8d354666b70f30e7718fc107a9c3289c0407886678c4da7acec224bb85be78c23443c24be09072e03a8ce92aa8323303c09266801a6444fb6267853df12bb0e4d54e9af982168c7941e785d1fb9701db1e46da1359c53f6c9370e7700e7dbc3e120b4ef784b4d0a3b69a60403f5b9c4aa3808d7b832ab9939b2a5cd15bb36ba710f13c934f0b5dc5f125b4c4604d330608c0c608f14795f690d21ab54bb9a0ed443601f821b3c153dda33f6b102193a2343bbac83b938e521676ea2a20bad2b515c13bdba9c7efa9b8b460a8cfd6a54841bb306819b2ba7adc5b93951653c6d116c86c302e067b358631259012f1d230b892c393652fe9d778e755bb1d8bcb840c51eb93371c2cb377da1f0a33c13aa4aec4c9b79f492ebe34906b6777aba1470787bce5ecc92f494377555685e32b6d52afd230464469adda074d5a159a54e3493a3364d7443d81449006f0b88669b8f507493dfb67b1f012037438437982c868362c172556989272c8b338b8a56ac0af290c3be991c5b552b77a370c026b1c7b4044499036dff32c06bb4b1b73b66d2644d0709f59050fbdc62b36e7977a7278fdb26798d264241914391c71ae928d5c7c7800fca963f4a5ecd9ad5b1590bc941909e142be1c382d7a38b123cc23aa02c9273b5f377d97637091db6455447574bb0f26a250c63a6aedf6ce4ef9cc1c86424b226b06da65158114fdf2bca1c457f68248fea0ba9576bdfc380e45781bef85bfc87ace9f6b5c6f5805bc3403b9e9a86503396b109d2ca2916e16bc4c7a9c47270b77db678a724bb9e461e2f3adcad69ab78a60cbc52134a7557afa452eb758d4c357af310247f2b61db9c2edbb126d7284f38829861870bb494fc65b8b16d97cc5c9150d4c4318ec698cc5704f8011b19037232b1e337911565382450a4afdb8c8e07a7b4127a7d6d630c74098b528aa9cea5249a6a424536a6003787b7723027bc8dfd07b9519337d5125b8bb631502701ae2bb9c352a3407cb3903a617303a5c29cdce23c4ed747eb56bae79084ad705041ad27cc7441dd8d51ac4f5be1c594019143f41c56cf9b1773ee0cf9f116036aa65896420f82406c1b36009e12433e60993b691bf9295ba6621bec9060c82bd3d8c75d2014cb774a3eb8c8c7e698069437155da058aa4a6831c6cd0b47fb425c4f85c5481282107d4b5c61756dd3235ba61a95608404c11546a28c0191c5bf8473135a98c582608bf7c4a1387bcd92b449f888c6b9990a59725ea9c896fc58288c5905bd8ad06a80ac952106d42b298377a0da30db7f68df4119edf5b45d472c3b11c85ca1439d2ea0f074899c3155a51f26af1f52265553e2136ae3a69b529767549f146ecc6592a4448918a892af6a895a27a64480546db66c42b8a9dd029fcb2bfc14189974531c37405812295e0e85c2c44620bbac2b5376463a0490f628ba67c7bb7257bca690ce4fbae57b717423abe164a43ece7b30fc768779c5a82d3265b7a0d012383b1d8a6967a33969a5d368bbf5ca6137959093c9b321539236278043112c8ec819e1d9b532f5c7ad7506ab9c31cf2f4b95f978cf642b67b2995c8f56c272775023a438845ca46a6858b32201ca14f1bc19761452a0a6a2b6ae4bde620cd8685a89bd02f64eb51d7bb5d29e71f009a79bd060273ebc51a48bfb575afebb57215aa0fdbdc0d0ad91120d3799c8843d50068363b5c47b09572623d7ad8071ea1424799c1eaa7165343af0e808afcb39f5cc8a7f5e14bd573052725185dbcc71968200bd272d97f676c08e4a6053f4e0a7071d7abe99607e7573ab27768ce397a94bb7d29f5dad97d54054915eb66be41023e5d7052a10ed1e60e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4 + +# Official test vector 41, seed: "f170583cb451d8a45d105457c02c01a33a40350616ed8515bd49067142f61efb00f07857e4fff3fe11e7164c648c76ed" +seed: 47550e9edacb6ddce3d9ab81f6b61080dd4f2693854acb05e0ccc7a4fb6390fbf89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 +public_key: 8645bfe5dca2202ca92a9b07a6b33b49872ff21b1cd901020e4ac369fca24c00593be105483a24076cafff8220780c9bcc9150b3a65571fb426ec47a82974bb2a6ba13a13551d737e1ca2cfb50103e14269263caa5b15b16066ca63b867a250318fb7335babe4fd81a2ef56ce7b5beb88c65c2bc6c5a75149898a3d8a552cbfa6af1a463a19a071cb64280da48f3684d99e0b4adc7b48d039358f201a7baa1ffa4ae95fbb0d45776bf76523cd504a379377b740d26069e933748710a63781a23765a6659eb4718dac557a8553fd5be04230166782860a3012290b068542dab126a9f921aba2b61afd6958052baa7b24ac50cbf1f613abf761d3315692c49184cf3995cea8f161c86768714afd1185161b6da86c73a6b228b953dde1713108029d7a729811b85aa906f67978239c6b6f9f4a72656b9536b23691b27b3b2316176357c07b671eb562c41621c7552265914c500a21299b17dd258e2a04352b506138187611c19e7d8860741b110c57372a3be2be7a3b5a6c688390f06a5cdbaeb6dece153ce5181c8080e4f879fc063a68739032481c2cea4611291362165a63ef3c0f436230409c8e5e57c01651471694bb67729919920c6852bd78766a5f5c1b5db45c84ac14c764549b54d8b2404523b0c00052c5d3538cbc00bfd96b8034206714a645d447dc83844ee82c069f63b59587f53c3cb0047cfe63b4f6ef41513ac5194b91eab2a5ef4d7bc55e1762e9162f2fa009a9c437d2c93308ca411e8ad7f9c2a642636d5e89f93f5bdedeb78062032db389bb6fc77be489506a98022e83c9aa9b7bf65c561e1a8a95871e4ab1875535981466286175eed087e61ea034c9488fe953106aacb251c7fa044bafe474c2eb602cdb091687558c02778f4b562692349f9b132fb3a921f75a4ee6c33440ab76fa420bfb339e2f8c225bb85538cc4388522f9628aade183c1532baa778faf937035639a5367cc64c4c036fc25a61b4f85470402e85ebb245a43c92f2cfb0ca69879a0fccbff31a35f2b46c986c66386308fac63978534e5eccd137561a6b110d82a2328a90636b55b8d67337626115448ca7eda95a6d2740e33c6cba56a9f34a95a7bc8f304702e25315f81182e54b2656913939083c052664a9844535301fcb730dfc9c5571ba72f279a0412b98cf64c069b89acda010494498f92838e32c711f1712d8b34303b3d594681305b20d2f8ad43fb6598113415460a0326bbca4c1d658a1462aca2a619abcc5a61a99921ca82882e1569c3902769e208c61124e741630fea09ec58065b889890a667d25bad039c4846a77d17acb5e726b5717b00e0b3918fc767205028cc4b67cb29b49196b4dc288a3abcb112bba52f0cae6ef09cfbd74d939b73ee610f0afa6d8b345d3ee95749cb4373ca3f52f69ecd767893135e7dc4ba6d069c053b79fea0c69b5c1258609046c761c77322a9d4626de19df5543165958a447432d5237f399bb1b9a8923ca45521b21cc4b17d36e724f5a09772a7b8609c9c86140b03e8a10c54adc91204c686049a643db89b0c375a359c943d5961a803c6ad28512839f42326f53b22dc20455c843ad64753498e10145af06270a81213046196d2192d0ae3924f4dbffa093a9eb51025b31d268a74f44b849a4c408426071fe5e18c3ec8b5c4 +private_key: 32f2c581d0b288cb18c0512172098f6e200cf9e1aba837175da86a45d4b6bd985728f5bf966b284eb96e059a8b4a99c0406046d117640ca029ff7864516cc6d49ba33b640c313569944b07a10b3820c49ddf965187d6794f491734531700571c788243cdf2c620b676657bc6cd9743242b6688d22baaa432f9015f69a179c01652d6f1c3721b4a35841bcf620552e4100beb54f494586c73cc5727c7dc023976d20bcc248bf6da8b6e36878f51177ce3326e9989c95c5219c017f59806defc68f466213c131811ca618df02df0ea6fa759b095e259243c897a132aced9661c3c04584bbc4bb218ccc118a91072cb32691432540f73403af7c09e520537592965483f25394e51a57f2403cc6ac6471ca8633a3c00a049669a3061f82770b7a7cbe4638a8c98b686c499940a004e9c3a7e9c1d41a5081943579620003f738e2d9489d5b24967b6be64d3984e4c2b69394f99f7062caa8f9be60c6fc6c801e77fc2d9b2286674df0c20414832d4193a024b26448bc33c30405c134d78948c34fbbf5a442636b87bfd3051bed47f86b2083a4198c8b224d1f8c0b0f5769ed72a18027fe4a85d9ebaa57cd20f696193645c9b1e6251b695061a711eb95270f541a730842f56d24981881b5bb071bd15af02e8641d1a3d0c093d680a7b4283c4d9751ed3c9b5b86c001da05bf5970f42b86071aa81e4d534be3b4c92b2b14821a54d9817212cc1364525bfe9cbf9978429c7c1b3a3615aec75d4651ec85469f3442ae17b929bf8aabdf0539c2b783c30875f29b68ca5ab28579f3d7722126598801368ea9648017a77c7608e1e54c5ed0bc0ec48b1af037b23665c1e675de79312637482a9655a5e72c155581b79bc9b8125c5f32248274128a993a6543172a6570c4ffa6e5968239174c6ca9a72a8a793c5fc61362c424b525fe2c23f94aa4d4bd610f1a55e330a6a9b6056aa7605b6623f8962a996e806de090adb40cb34cb8d2c024b00940bbdd025be366d12bb0b78c6b88f4a28f01731dbc7c1026a2c68da6a5bbbbd1e6a898f36a19610abb9cb6f04b3881d85bf9300142ec300ffe20b1f33763b816d6dbac076373a21501495eaab2ff3b3d0044d03658590a4c73f5486dd055745511bb4d176c5b7cc66fb0fa500b5cf14700640b2679c80da38762af61a4442687af30d5fdc2308c9af02753aa8a93b294b6e541490af4c7cfbf60415d9be34f6b7f73c4b6bb4842b5c608cf90fd8c1beba947fd9fba4eb0513e8d35c8995473ac200051c6063a3022fd6a8db9c0377f62639982556f8676464c86d856e6a599d031c35a294014a5b30b4aa5bfe779c14b50d4f6a3bec6318d6312f028b6bbb237f203b4737a9cfddf252f9b90964c01cb736a832cc337e078c6b66b9733c4f8401b8181926f2c73bfeea63cf3b843e017f60e35e062219b2e76c9c830aa187bc8a863b58a8aedc9a9e443c93520b109709089f4b40c8f7966df7af854b4718b91d3061a6aa153d7d336deeac9ccf0072d6540970741167281eab315fa2857915144f73f9b508542492706e1d285ca9c58eea9c3118ebc21c8374c6374cfe7c846e9815007b602ae23e43f68b82811498d2bf5a357c62275609022877e48a8645bfe5dca2202ca92a9b07a6b33b49872ff21b1cd901020e4ac369fca24c00593be105483a24076cafff8220780c9bcc9150b3a65571fb426ec47a82974bb2a6ba13a13551d737e1ca2cfb50103e14269263caa5b15b16066ca63b867a250318fb7335babe4fd81a2ef56ce7b5beb88c65c2bc6c5a75149898a3d8a552cbfa6af1a463a19a071cb64280da48f3684d99e0b4adc7b48d039358f201a7baa1ffa4ae95fbb0d45776bf76523cd504a379377b740d26069e933748710a63781a23765a6659eb4718dac557a8553fd5be04230166782860a3012290b068542dab126a9f921aba2b61afd6958052baa7b24ac50cbf1f613abf761d3315692c49184cf3995cea8f161c86768714afd1185161b6da86c73a6b228b953dde1713108029d7a729811b85aa906f67978239c6b6f9f4a72656b9536b23691b27b3b2316176357c07b671eb562c41621c7552265914c500a21299b17dd258e2a04352b506138187611c19e7d8860741b110c57372a3be2be7a3b5a6c688390f06a5cdbaeb6dece153ce5181c8080e4f879fc063a68739032481c2cea4611291362165a63ef3c0f436230409c8e5e57c01651471694bb67729919920c6852bd78766a5f5c1b5db45c84ac14c764549b54d8b2404523b0c00052c5d3538cbc00bfd96b8034206714a645d447dc83844ee82c069f63b59587f53c3cb0047cfe63b4f6ef41513ac5194b91eab2a5ef4d7bc55e1762e9162f2fa009a9c437d2c93308ca411e8ad7f9c2a642636d5e89f93f5bdedeb78062032db389bb6fc77be489506a98022e83c9aa9b7bf65c561e1a8a95871e4ab1875535981466286175eed087e61ea034c9488fe953106aacb251c7fa044bafe474c2eb602cdb091687558c02778f4b562692349f9b132fb3a921f75a4ee6c33440ab76fa420bfb339e2f8c225bb85538cc4388522f9628aade183c1532baa778faf937035639a5367cc64c4c036fc25a61b4f85470402e85ebb245a43c92f2cfb0ca69879a0fccbff31a35f2b46c986c66386308fac63978534e5eccd137561a6b110d82a2328a90636b55b8d67337626115448ca7eda95a6d2740e33c6cba56a9f34a95a7bc8f304702e25315f81182e54b2656913939083c052664a9844535301fcb730dfc9c5571ba72f279a0412b98cf64c069b89acda010494498f92838e32c711f1712d8b34303b3d594681305b20d2f8ad43fb6598113415460a0326bbca4c1d658a1462aca2a619abcc5a61a99921ca82882e1569c3902769e208c61124e741630fea09ec58065b889890a667d25bad039c4846a77d17acb5e726b5717b00e0b3918fc767205028cc4b67cb29b49196b4dc288a3abcb112bba52f0cae6ef09cfbd74d939b73ee610f0afa6d8b345d3ee95749cb4373ca3f52f69ecd767893135e7dc4ba6d069c053b79fea0c69b5c1258609046c761c77322a9d4626de19df5543165958a447432d5237f399bb1b9a8923ca45521b21cc4b17d36e724f5a09772a7b8609c9c86140b03e8a10c54adc91204c686049a643db89b0c375a359c943d5961a803c6ad28512839f42326f53b22dc20455c843ad64753498e10145af06270a81213046196d2192d0ae3924f4dbffa093a9eb51025b31d268a74f44b849a4c408426071fe5e18c3ec8b5c44c20aa5a85b2e43c56e051698c75bfc27bb9b1722501a6502d1c0dac0aa7f1b0f89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92 + +# Official test vector 42, seed: "44a6774b2cac02dff210ff861a090561a453db311f47b6fedb81811872d5d9489f5fc4103010139ae53fcaed209dc9be" +seed: 610afb64be8cc1df288cfb016ee2f44c6c07113de7f6fee071fe0c3fe31c6215cd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd +public_key: 38724d9a8308ac6b70d1c87bfeb07775d56703980c9a563040d1ba17297b1f253afc339ddc11a42cbb051ba2722854cbf45bb80cecaa81ab63ce32acfe953f9ac8648b95be8668822060bafbc10b59e72944185a57f790351a20de6679328169b954465f8cc028558328f3baeca98e42404299719d205cb17c745a7784b97c09130e26376778a9330c99ed84288ec3955df4076d0c9f5847af05bc58352c1364f34b0213a3cd05b2d79108af038e457a30bb5626b1dc404605678ac675201c537a8a6ad67a8e3e0b17a0e8632ca1714dd341831b2790591c1f39c530288dc8448527fa542d64192e407f2304747ca7cad98986c59622b2e63e076420916635a538871aba5469f36a5536356d176265191fc150a4dc7349f07c932c053ef4b6bd245448ba8173ca0896e51092e06537d2157b0c1624d3a29eb0d055d48a038c858e53c1045c392d6f59408df2bb19b35a87737ef90b9fdcc380af6a1ea122838c673e39f502a08908ac33276b4297c712b3c7541c7806c71dc76e9291c89cfac3a56c9c94852ec4a47bf6642349b95f69c43005fbc927113288caa2cdd6175b2a627149027e3688b436c336b51c8539cec3c5537de5ca6955543f984c73005181e916317262bd638e249cc928e048a20045907b79c441cfebf0b9106c8847b8088b4c41fe6b7356d7947ae9a9549305c9278e6e3a39060854b88b65cf9a20266218864c94377a475c0822d454ad8fb42c50a13f1be65dce1728388a8d4a81b372a1486a86b0e6d1abd445559dd3b827b834e2ab3744c0c5abc51bcb7551cc888de7f590ef780d7cc94225830732f47b6ab4777261944cbb3e6d943eab827da40a7b00d8960db1810d028529449dde0c00eacbaa321c14249b7113ba43968b79070b9117dbab36b44f05022bf25a9ec77c7a396415c7f24ce5e364b09a16308472e1d49ce92a41d3b868e4664e93279467745b9e04c39bd67cf0226d198110e6235a3a35af970a73a3472027e1c7368c867d23cbc1895790f2478f807b756516acc4c7dae3a350f26a0353930f4c23c3d982fb90176bc70e0e6b739fb67aada24d10f2ac30685c2d7606fd6bce5df369a0d176fe32b0e0e8cbf583b0e2019167640fa63c23d7223259441152b0c79d9b2012725b6eac08ba8438cb90309123abe5980b6ce6889d6b7d1c756aa7a90181a1422f5a6f803b1e772891a61ca657175f7b815cb3549d3ee613deb001c7ba200730b2771b5743d80ee48683d94015ac7221671a3a711468f8b3be5ecbc1af824dfbbacf87972874e847b399280eb649304a3687f43dfd769e13a4964892b5e635c0a2216273331da5c5b18ec0b406ab1163d4179af5aac5fc8273296e2433c8fd993f9340c5d365070cb72715188b52cc0426146c54a3687f6a57f36b0b1dd639c505bef4c71fadc68d62009bc6b27b3817660df31faad06e86b91aad252b80461200168290848f963010511763f8614f202a3a05680831b8bde86a18dd79248d46c144730bc7b4757ac95f34ba2cf0436bda09cf5a9285e7c924f3b514695300c33cc6d92c280ff81e72b549694aa7aedb46afd394a2d5826e657897fc53285905406430c2b7786e64ba44225985f95146947535aae744a3b3707467701a8bbd99b938f2fc7737f22bcb9f146983a07f +private_key: f8108802536a5e0b192cd8a761c1163c02bf2c457bf4162799884650185cd6e7a978c74516e85541b212b90321a0014615a973226b927046cc24e709e988562964213a874ed5007d8c483336d80b2338313606c716a25d7fc8617a506899187ed9a73d835997de71904ff82fc4c59b12275677b90fb6c079ca872866483ebe326e33f369006b4341bccc759b6565816c8bfb3d00e11bfd7b2de14b9bdf163bba82852ee76037795df78b9a2182c883652e17621055397c6b7848b3a8365467669ecb1ab81a8747fa449f22aad5db231873bc4c40a45ea265fe45c9f8f43dcde1ab1573bf0716139549490acc91affc45aa816809d53879678d90132ff321b2c2f32892ea9e4a112258f8236623a701a453fcba1d26c3aeb37c50b72625887b5cd9eac2cae774783abebdaba500eb9445739eee33114852a841447fa19cc360e31c95012227aa11e35412c2b5716d7602cd07a5b48b35dfea154e6780f8573203d367bc9627f414879251738e3b8cb2e3c09956c798144fd6c9249b214cf25ab84ab0c7d0b03728b7847c485663470c41d59b76fc48f959199305d05117cea0e04c0c2c056ae740fd21c0cad76e70f55ed7a62bfd440a2b5601242837cc6205196971a5993dee6b51f399ae1ba47334985ca1e26245897ce954a7f393105e75cfa25302f17b45e04059803bae94251d9f51530012ba052cc8948463e48367dccc5842354e7fd7596122b56b6604fec0c58db228a2170cd64a2be9757d8be35c1a0975cc1267d789c774883de06bbd6572129b57a5e185195cf06bd70352574c68a4b71d2ef5580b57166c3746ec058302ba3da6f916f1ba4b572a82e289593dd57277c0c570c22d1cdab6aae39b16a68f5684a5e367c713e649ae802776f6c3488b494cbab596f73b1908ceb7c05c46304f4e26a54b388b61aa3c663a316314405049c67accb2a7ab62140915a09488627b3c3683c3aa198400fb6a53396f978b71189b7c4fb1ca005a79727c5e6d129af7220705222617807460948b33197ea35a091ce9ab5a2b9437f961b70c432b360be118a4b589c66af374f58668e7515b029a14a272ae4af399552796a4ea3a8d37c265b42e38c2c586792d6be661c9c4753d373004da166f69368f976bf1016550013388b562b43a00f801b2a77212237b5cf53c647714218b94343c0b06d3fcbe446514289a3bbab9a3678284ae46242d1b56bb0845b30817c669cbdda709576b91072aa38ae0a6cfe444c09239d189cac861667cd6449c0ba8a773c7106c6b8bb40b100b39a562823d33a180da2bec923d1e707d59d7a8e397c68029b93428bca352495966a79c299e531b9b59b437e86398b72157fa43391299770b7ab37c71b387401b5ed5ce81b88a26a7a9dc023635c932c26199b5c437536ab194074d1cb24f65285af6b03f6a9a7174a380ad03c6826ba5fb32c6e93c2fe011a0146717e8265b31659a806975bd589f7630461bd1b6c51a0a2cb6ad3f825c919533c24c807a9c6e3c780d0e333105b43044d7931920621874395f794483820afb55483e34abf3f0440f3253fc702e71e34270d38e4875cb9a6090dbbc53352128c18a948ee821e49bc9c690563a92728b610a38724d9a8308ac6b70d1c87bfeb07775d56703980c9a563040d1ba17297b1f253afc339ddc11a42cbb051ba2722854cbf45bb80cecaa81ab63ce32acfe953f9ac8648b95be8668822060bafbc10b59e72944185a57f790351a20de6679328169b954465f8cc028558328f3baeca98e42404299719d205cb17c745a7784b97c09130e26376778a9330c99ed84288ec3955df4076d0c9f5847af05bc58352c1364f34b0213a3cd05b2d79108af038e457a30bb5626b1dc404605678ac675201c537a8a6ad67a8e3e0b17a0e8632ca1714dd341831b2790591c1f39c530288dc8448527fa542d64192e407f2304747ca7cad98986c59622b2e63e076420916635a538871aba5469f36a5536356d176265191fc150a4dc7349f07c932c053ef4b6bd245448ba8173ca0896e51092e06537d2157b0c1624d3a29eb0d055d48a038c858e53c1045c392d6f59408df2bb19b35a87737ef90b9fdcc380af6a1ea122838c673e39f502a08908ac33276b4297c712b3c7541c7806c71dc76e9291c89cfac3a56c9c94852ec4a47bf6642349b95f69c43005fbc927113288caa2cdd6175b2a627149027e3688b436c336b51c8539cec3c5537de5ca6955543f984c73005181e916317262bd638e249cc928e048a20045907b79c441cfebf0b9106c8847b8088b4c41fe6b7356d7947ae9a9549305c9278e6e3a39060854b88b65cf9a20266218864c94377a475c0822d454ad8fb42c50a13f1be65dce1728388a8d4a81b372a1486a86b0e6d1abd445559dd3b827b834e2ab3744c0c5abc51bcb7551cc888de7f590ef780d7cc94225830732f47b6ab4777261944cbb3e6d943eab827da40a7b00d8960db1810d028529449dde0c00eacbaa321c14249b7113ba43968b79070b9117dbab36b44f05022bf25a9ec77c7a396415c7f24ce5e364b09a16308472e1d49ce92a41d3b868e4664e93279467745b9e04c39bd67cf0226d198110e6235a3a35af970a73a3472027e1c7368c867d23cbc1895790f2478f807b756516acc4c7dae3a350f26a0353930f4c23c3d982fb90176bc70e0e6b739fb67aada24d10f2ac30685c2d7606fd6bce5df369a0d176fe32b0e0e8cbf583b0e2019167640fa63c23d7223259441152b0c79d9b2012725b6eac08ba8438cb90309123abe5980b6ce6889d6b7d1c756aa7a90181a1422f5a6f803b1e772891a61ca657175f7b815cb3549d3ee613deb001c7ba200730b2771b5743d80ee48683d94015ac7221671a3a711468f8b3be5ecbc1af824dfbbacf87972874e847b399280eb649304a3687f43dfd769e13a4964892b5e635c0a2216273331da5c5b18ec0b406ab1163d4179af5aac5fc8273296e2433c8fd993f9340c5d365070cb72715188b52cc0426146c54a3687f6a57f36b0b1dd639c505bef4c71fadc68d62009bc6b27b3817660df31faad06e86b91aad252b80461200168290848f963010511763f8614f202a3a05680831b8bde86a18dd79248d46c144730bc7b4757ac95f34ba2cf0436bda09cf5a9285e7c924f3b514695300c33cc6d92c280ff81e72b549694aa7aedb46afd394a2d5826e657897fc53285905406430c2b7786e64ba44225985f95146947535aae744a3b3707467701a8bbd99b938f2fc7737f22bcb9f146983a07f72c30933b8e50425fefbf58d711f58cbf9fd8ebd2835a1b55469a2a1b993eacecd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd + +# Official test vector 43, seed: "49e1855588b6235df2a400c4a70aedf8ab17b6e5e2891aa745f132fa2e7ab0c8117c1df37c39f5d57624eb77c2b4a091" +seed: e1953800acaa85ac02a906c72cb8e8d704e8d27820345f88f71e89c1f549afcc8c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c +public_key: be19be36c8ccda4c9852a442d4259905628087c232f28871b05512dcd2b769179ad09a9313252dca243d73b387b279a1ca1151fda2781ab7757d2ca5c64052c8440bdd93acb5152203987bd5a693453957504242b3f8667d3c800e9a969372a13fd014715a0bff3a24c8f31a69c329a1c30ef37ca29903ce0943982413b0ba694ed53cb416f125151c8f036709aa2174ec365a56d608a2b54ec71183e2b4258e71adc09c81fe05065be2bd972979eef093cda03bbb82b6ee4180731c18fa997195d4917476427d7c07d99b663c4b50a9cbccb3c364df354685273b8b42b9e118a427c765b08036350a330be79b3ef4171b953faee56f719483717854b29aa3385545d3c9cd71b0a070aa2734f8327c095aff6b342584a570371ee7ca3f6a2a2bbda60c4e3aa264078b6c9bb206781f229b9a5cc2bba0c8933d01b469b4c687f5a1749513bfa3401cf1443ec0558c89c58cb795e3686640f6350420bed4b839ebc8106ff7043107c590c0bfb753c0aa2305e4920d1f639c3ed400a2836d3b638051b58ea9580390ab57dd7138421709759b89aab4279c5a9768cabfc44ca6a2f1cf5c039e2b0563a9048931f1565d164c13ab60e4c92ac843451cb75662ca03c47a652445b7ef0b8e622187387059a614cb08796d34758133050161743677594d51d02f290b3cd7f23d4cba1a64377baa36082249ad896990d79aa040a7858f1b3dfcb43adf040f1b245d216b2e23420e0b9613e9db6c7535063d05079c739f70759f7de0291537aaf5d6b3f4b6291c147855ea9a79ecb0ad80714520971011365dca81ab5bc0d9d70ade36a125ab2295858b79370fe21932504b9d583c787bf28762241a279663baa450172651f126bb20b85349b6344ad404e3093369569148a2a8cb7b7e08e68fda3408349b4761a171b0c2c85b37227cfa3d7c16a3950298c100955402919d14a71e7b231d60ac11e81a46515cf2f25fde507c0df59b352187af7059f3620026c84469610d0098895a3330f7638082d5b5a925afca637a1d160ecd2c83fc522a3bf40591fa5ecfbaa0a3b1859fc58b1d157c18b71d540b6aa398179bd65dc00866275cb0473964ffe5a8c638bf57304d32e24007b3c61429881ccb1a0403566bf3c46d8a19e852aac6f58d4ae32f45cc7b0f5181f18675920680c2c0ba8ed283fdf20c383bc08ccb7d46eb85204126be034374769caf39ae633924bc8ba6b7b89daf72ac4a86bf86008c02fa0fb18a5de6f8952eda2526fb1d994b4165149ed11b578359a7b9d0bdd7257a2d00b676268a38528fe34140eb408ed5b916c0c43d79ac29b0946702341cd7c20ee23c16a6b2cfd1f9107872b8965952a9a45e0e435c56695c819b71b9a6b6796553271c029d06cdb0308112a89ab4b714566a4b18d03c18d223fb6427c7b3144e64874c26a8ca418cd6f14e4cec2a0402698aa1af6ef63264806e4b42ad3dea298a404c1ec260935166418068edb71abec21040f9b3eff4389358b7cce70461ec8c0ae8873a45504e8688e266787421343699089fc31f84ec95a9f2264eb3ceda71261ca791d052a43808ba1f4706717a10fc4ac21b625fd324cd86ab8b3dc254da31bac0f9106028258adca5f754b309a6c7dd30e11b8701ef37e8715f03c0d8a32e9fa39d37e7637ba00940 +private_key: 257c04ec995fb9757415bac737300b03c991bc8a5c4be86cb0458f66a551cea67fde748c88113c07f09e2ea03efc14328381b21220741c12c1cdf9a81d3a28e9b7b4bcc88d0f38a700dab5beec59d6073ad85697d14728603b1190a81151061f3159293cb2096c093d72f33b1957cccf7085ab031f0e404b1c1bbd06831a9574b90db6025fca778d68151edc4bfcc11292f240d9e6226739036cf000dcd1b275d12316e605c72a2fccc55887220ec958412493c8aa4759dd0848ea0271c55bbbbd178642331e8c910a932a5a8d0a3479153a480c9b0ac58b10334c6b186b38526546eb31a0186e622520b2b60dcd00345222948cc833170427a301a26e920ccc6a71b979b7f8a02f86e983f1eb1b2aca4202100260a94b847ccedd8101e1b16041f96d72b8cec772c08bf5a75c5190f78b123e943e1693169eb726771a7c2826351b5a05a803134c24b72deb2a6f282b94689ee47bb47102926849821981322a03915086670896152a022036351a046bbb6d178bc7605f92254cb8ab2e24544650da4e29fc0ae9abbf0b2296d6bc7e99b4c1f9d50fe7fc7a130432bf98b28e142cb1924efe5324bdd2887a9a7b6a1c18dce15b5b127f17b5739b5c5e33e63fb2494fe403cbf9c2059618ab6fea5b1d78c4d0438fe94c447a4a2e42d974a44890db571ddfc288528b683a363a93a56eb6c9b1da246f64f0b0d3d6c38b4975f6ac2adb2c62a9d208812c0365f3a2aa39ac575595fddaae5ef5c7f7fa49d8b209784aa25c7166c92759f58421eb203a1e8291604c84d24565dc68ca7b183f78fb5a6869115bc7b7b1b33bf4e4afdac9af6dc0604070300f7273223aab0fd85401b923d6c6180c815853994ac22bc45e5b7961a176811780af4b0bd84a490a0a3ce1062204c535c9932be4137a7b6a1ff75579e72b75eccb806b67419119721fd03e59713920949e8f6b5bb278b7dfd40f1125ace9336b5bd5b46f5952d4fa0b780a875b87bbb8ba2096d940555c69e45602975b1324875e891c6c326539052c811ffc4417bc61205b430b522a1a7b4df509a4e2c9bb5a595333f29b986c113f57a9e0d91af791c8096c0330cb59c27b3b29c15b13128b86336cb0c270dbd80d451b08cfe35876594ac4011b621792458042e8906deba57ab57b9565344e2af27d87a68108a8487a817ab5c779683cb81b7bb258e598047505ee98c7d666766110256eac0694b3565b07124786966ca81f1ea5a8be616544d54f03c5bec6d81b392a723bb1176d94c75b47cd8a00aaa7836e1774824289803df38c0f6c74b4c42660d1b27e5036c647bf4089b3be19a76dd8ca518307ca92b3303253dbd9765bd26635f3bca865c215723c20358f2b4c487b008a7f0221359889dbac532deb2b38ec8f35a4a6af306597f09e1f84b808140dc31a36b1db11b13c23edc79ae5f1861dbc4eba427a62b153f721a543224caf3c54e15467057cbda9b1ae41fac0ca7658a542a87060a960d57f839712aa497f0ee03a9122315409279cc89fc6f5afaf72497f99ca8f3a18da1b7221321c87713bd484612204783117aa4f2219a9019c251c8f92d8bdb946b42068207ac04e0ea116a9d2cebb25391415630db5300bf51bbe19be36c8ccda4c9852a442d4259905628087c232f28871b05512dcd2b769179ad09a9313252dca243d73b387b279a1ca1151fda2781ab7757d2ca5c64052c8440bdd93acb5152203987bd5a693453957504242b3f8667d3c800e9a969372a13fd014715a0bff3a24c8f31a69c329a1c30ef37ca29903ce0943982413b0ba694ed53cb416f125151c8f036709aa2174ec365a56d608a2b54ec71183e2b4258e71adc09c81fe05065be2bd972979eef093cda03bbb82b6ee4180731c18fa997195d4917476427d7c07d99b663c4b50a9cbccb3c364df354685273b8b42b9e118a427c765b08036350a330be79b3ef4171b953faee56f719483717854b29aa3385545d3c9cd71b0a070aa2734f8327c095aff6b342584a570371ee7ca3f6a2a2bbda60c4e3aa264078b6c9bb206781f229b9a5cc2bba0c8933d01b469b4c687f5a1749513bfa3401cf1443ec0558c89c58cb795e3686640f6350420bed4b839ebc8106ff7043107c590c0bfb753c0aa2305e4920d1f639c3ed400a2836d3b638051b58ea9580390ab57dd7138421709759b89aab4279c5a9768cabfc44ca6a2f1cf5c039e2b0563a9048931f1565d164c13ab60e4c92ac843451cb75662ca03c47a652445b7ef0b8e622187387059a614cb08796d34758133050161743677594d51d02f290b3cd7f23d4cba1a64377baa36082249ad896990d79aa040a7858f1b3dfcb43adf040f1b245d216b2e23420e0b9613e9db6c7535063d05079c739f70759f7de0291537aaf5d6b3f4b6291c147855ea9a79ecb0ad80714520971011365dca81ab5bc0d9d70ade36a125ab2295858b79370fe21932504b9d583c787bf28762241a279663baa450172651f126bb20b85349b6344ad404e3093369569148a2a8cb7b7e08e68fda3408349b4761a171b0c2c85b37227cfa3d7c16a3950298c100955402919d14a71e7b231d60ac11e81a46515cf2f25fde507c0df59b352187af7059f3620026c84469610d0098895a3330f7638082d5b5a925afca637a1d160ecd2c83fc522a3bf40591fa5ecfbaa0a3b1859fc58b1d157c18b71d540b6aa398179bd65dc00866275cb0473964ffe5a8c638bf57304d32e24007b3c61429881ccb1a0403566bf3c46d8a19e852aac6f58d4ae32f45cc7b0f5181f18675920680c2c0ba8ed283fdf20c383bc08ccb7d46eb85204126be034374769caf39ae633924bc8ba6b7b89daf72ac4a86bf86008c02fa0fb18a5de6f8952eda2526fb1d994b4165149ed11b578359a7b9d0bdd7257a2d00b676268a38528fe34140eb408ed5b916c0c43d79ac29b0946702341cd7c20ee23c16a6b2cfd1f9107872b8965952a9a45e0e435c56695c819b71b9a6b6796553271c029d06cdb0308112a89ab4b714566a4b18d03c18d223fb6427c7b3144e64874c26a8ca418cd6f14e4cec2a0402698aa1af6ef63264806e4b42ad3dea298a404c1ec260935166418068edb71abec21040f9b3eff4389358b7cce70461ec8c0ae8873a45504e8688e266787421343699089fc31f84ec95a9f2264eb3ceda71261ca791d052a43808ba1f4706717a10fc4ac21b625fd324cd86ab8b3dc254da31bac0f9106028258adca5f754b309a6c7dd30e11b8701ef37e8715f03c0d8a32e9fa39d37e7637ba00940bce58a5d05a4840f835b8ce39703f77bb31f20b9ee4fd3795c2e326244208b288c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c + +# Official test vector 44, seed: "df0e41d2f6f86c1f79d31fd5878e7ab434fc0af3a0d5f47d2ab3fef31a42bd949b0e3629df9f575befbb62e829e51dae" +seed: c719f9b2d16399b7326ce4eca30dabefe8fdaab18e9f6df888b0a134ef355570e40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd +public_key: 8afa99db2599004da53ea126e94c903605aee44b3d56abab69438320c91918abbb1ea2b6953753e475bc33c159c590bed80760731565279c640d361de46aae78d0a837912c66c5a347c0946f6943866750c6ac1eee713cb8636e543b2f8a08857d53834233603391417a23c88b6003246a0c8ff39edfc7ab8759207dcb7c1d923ad891c31ef564e5f53c0447a25728c934303bec26875c44a26aa36e0324ca6423855bf2ca04e27cb8f42329a3a0e28a7285658fe1748a58c538ddb710c6d7839b573b30a5c4486a448dc0bab7c07b86279058578d4a56c781752e8ab270914534c51923a6d0c226967313695987314975dc7c7a101578f326d02a086513b2608a8b58ea5a63f2c6a1cbbdc847c312f5a2309c1749c349101a42757073224b0aca598a6a72cb308a010c327afac94798f8b4c6a1279389c12d1c3015b02e37a95705d3b2b8277c2c141bc8148c94244ec5c50e65790fd6e0842185a5f2ac1e72a21d4d652a63001c650b6c8d06cd758923d42479cba96d7eb396803c77be54c831063707a35067b87b2876a1a0844d11e1a895db70d596871fd1434798771b487aed562ee1d041c06505786205166812fa718424708a207cb4a6c25ee78b8b85e869bb82a89f647a813b97dc1abfb22b430d37adcb43b7bb1616dae73b0d606940e5af7d139f73b48b4618bfd5c22274d3a27c20195794344eac73b9a09de5cc4e59a2853a412eed7062dad16b0e1aaeef83221d34b3225868da033822248e5e40a692c20ae4cb112b9c4f9e373d6dc3393f385b5f65c7f14b66d7d0b31dd7902af39812d76d5ce73ebfa4c392b069be694bbfcc7b9c0825d158b431898c9cc9080d632196378049a5a02b43cf83d37e4a731505f23009661070038917a93c452004a8023b1da44b4e5cc53adcaea033c8759a3bb4bb52761191d76c95599a9dc2a2292bf37aa3803278726b660233e9b476748a31f9fb9f2d93b59b9cab33356782a976e05b083716262278349fb14b806a7cd3e52c1a6a6f603468c4b420cd544bfa916d157a21d15c1945b31f7c6285c30529ddf735350c92c546ca776cb44360cd62f05620f8b23b94a0a720270f122b0f22316050b7cf6623cc0658a9146861785c03fc4e0833c3565ca4ebc951f5145e2e434555d45c3819ccc4c2546673c18d70af49f0aeaceb83041556d52754c10b1d66b9c0519985e9b0aed559074743c8796881e5a189a4707b8923097669b2d9a162dcda33c3b825e004aa20b1749eb198299476bf45a519d341e9b507b1e411bd5382a6a84b6dc9c1bb437e98546074076ea76654ca6519f7a71d1f39c5328b16a5b182bed6b57ae058c3201554d612628274bff57755022b7e653dbb461958ca3eefa117b57299245a9917158f2409384a7b234ab390152b01d1383aad99747258c61bd24f7b12a0332c6d7b5ace324b4e1dd9b3f8574b17382bf387155f0abaf4fc8830b7774275821e91a939da83c9c189ec08774c739fff041d40d512b171c2d0ec7e404349bf5a64a876aaaf72c9c16a004578842bfbb6ff221debdb6ffc8a6de429ca0d7aa50071bc8d68c23c379364e56e4ac247a99523f8d90b3de4b049b526f8961621b98dc534b9a756aa9c4a1b2b4c7726e701ba03d885a39d59a76d92bba31013f2a4714ea384 +private_key: 8b814f850315f33901f955a7dcd2971bb73d44db90b874804457124002ba681347b4dc33910ba22a903f480859275523598a1ff7cb818f8cba2ed0668edc45f1997f3e76628767b63890c35d334f209b62a208700820c7a41689a4c81208b05573361dd30642baea86f25bbc87d1157f05368582aac0958e87fc84c431bb2eda3c479a9cf0984a90e668427046f2946e50a43e3889aab5d649b5a17242aa6d6350a1b72b971a748cd2a0a6cababd4f77b6fe905ef270bf222c1b5c2683165b9c87458f849405aca37dc8e99699128ebc6317274993d74c77cee907e536b1a1871d1f8a3505670cdab00080db31cd0ba9269c84d9ea565d194e22d3c11573685b166f02245efde45f04ca2d851aaacf47c711a536aa1855b7693161f27e51eb52cbc1b6322537868386715b16c4802d2fb43e9ee7c28c51a5fbbc1fddf670e02cc3e24bcf75389651268e4c78949e284fe9a2a0fd3428875c7d4ba669e1f7116eac952640b9966626a867348022709cb54b05704c136b5538ac7c6e018107a27b1040211562cb1183714a2c9a634a8bd547965fa04fb62441cf7601393293f669420dd0a04d18af0c0249a3b57e0905758b7073db3c80e2634366285a86d6aa7fa8561fd4a6ed745aa04872fa7ba732c514bf045445cc4455accc40e499f71a2d3a8ac73be9404f3736908745b1c40985e4920edbaa2bb8933053124c4c300f7302fa634e6c6830b3671fea4965d58aa5c653682e88ba5ab34361409f4c1656f1772643f71134ba1b1471192de503f97868e43a4d4e9a2bb2ec38ecfa1835f24b3ff1b850fb5f4de32f196377503c25ca0989703b72d72494a2217276c9a15b600bd4dc76585774b2512da602553807aeffc5c6e8f0187bf5613d35857e7b4a1a4b805946224b4a8989c0bd4fd445cf64910194ae3ac96cd0e22144b9ac51fab7ef671b6af68d7f5c2a3b48b82fb2cb49722cb5b668ad021240871307b185b6426451588626850080d68a917b2fc3720dfb33c365934ef37bb5e7359a6008ad72d255b4e921c6b1926b917cc00c03a286b8489a53b5a7429e1cbfc42507f33bbb5ce082b58cc550e03a41b9cca243506de21f3946019dc87683b35caca42fe8272861b4633044773e5c399f8c6423922d05c528af950b6f6b0445d98c5243c932451303222e8a8a55039b34c2bc643582871236553f96b80c9041400682f05c6795b64160006359270c4526baca74b515b224ab234a6b127c4612acbf82bd540226927675f5423cce59034f4596276647c6c8c3d53b54014b6596fcceb0c29609b50e1d599bc728a41db0c3e2a6c41ebc956fec70d2b58866c3c2665ab98b153052d917ebd9ba3ed037f62c8299a02f575742d7102fdaccce7759763ad2147df656ad878ceb1b7ad5b4cd3ee0a2320727a1051d74f84477ab5c2463cce42295f656978b470708a4a26f21949635a957e12bbcc9c8c83753ccd6781474b067099425c705d78631e69632dc5909deac940398b8a6918e2f69587a5992b354b54b7931d0b4c0eef60c61b46170699035ea014778a28d8a224196beffe96c06303e5f8ba659d0229df3b5ff445cc7019e8b54b4f4346c7107b651d0277d8a195c59ae8afa99db2599004da53ea126e94c903605aee44b3d56abab69438320c91918abbb1ea2b6953753e475bc33c159c590bed80760731565279c640d361de46aae78d0a837912c66c5a347c0946f6943866750c6ac1eee713cb8636e543b2f8a08857d53834233603391417a23c88b6003246a0c8ff39edfc7ab8759207dcb7c1d923ad891c31ef564e5f53c0447a25728c934303bec26875c44a26aa36e0324ca6423855bf2ca04e27cb8f42329a3a0e28a7285658fe1748a58c538ddb710c6d7839b573b30a5c4486a448dc0bab7c07b86279058578d4a56c781752e8ab270914534c51923a6d0c226967313695987314975dc7c7a101578f326d02a086513b2608a8b58ea5a63f2c6a1cbbdc847c312f5a2309c1749c349101a42757073224b0aca598a6a72cb308a010c327afac94798f8b4c6a1279389c12d1c3015b02e37a95705d3b2b8277c2c141bc8148c94244ec5c50e65790fd6e0842185a5f2ac1e72a21d4d652a63001c650b6c8d06cd758923d42479cba96d7eb396803c77be54c831063707a35067b87b2876a1a0844d11e1a895db70d596871fd1434798771b487aed562ee1d041c06505786205166812fa718424708a207cb4a6c25ee78b8b85e869bb82a89f647a813b97dc1abfb22b430d37adcb43b7bb1616dae73b0d606940e5af7d139f73b48b4618bfd5c22274d3a27c20195794344eac73b9a09de5cc4e59a2853a412eed7062dad16b0e1aaeef83221d34b3225868da033822248e5e40a692c20ae4cb112b9c4f9e373d6dc3393f385b5f65c7f14b66d7d0b31dd7902af39812d76d5ce73ebfa4c392b069be694bbfcc7b9c0825d158b431898c9cc9080d632196378049a5a02b43cf83d37e4a731505f23009661070038917a93c452004a8023b1da44b4e5cc53adcaea033c8759a3bb4bb52761191d76c95599a9dc2a2292bf37aa3803278726b660233e9b476748a31f9fb9f2d93b59b9cab33356782a976e05b083716262278349fb14b806a7cd3e52c1a6a6f603468c4b420cd544bfa916d157a21d15c1945b31f7c6285c30529ddf735350c92c546ca776cb44360cd62f05620f8b23b94a0a720270f122b0f22316050b7cf6623cc0658a9146861785c03fc4e0833c3565ca4ebc951f5145e2e434555d45c3819ccc4c2546673c18d70af49f0aeaceb83041556d52754c10b1d66b9c0519985e9b0aed559074743c8796881e5a189a4707b8923097669b2d9a162dcda33c3b825e004aa20b1749eb198299476bf45a519d341e9b507b1e411bd5382a6a84b6dc9c1bb437e98546074076ea76654ca6519f7a71d1f39c5328b16a5b182bed6b57ae058c3201554d612628274bff57755022b7e653dbb461958ca3eefa117b57299245a9917158f2409384a7b234ab390152b01d1383aad99747258c61bd24f7b12a0332c6d7b5ace324b4e1dd9b3f8574b17382bf387155f0abaf4fc8830b7774275821e91a939da83c9c189ec08774c739fff041d40d512b171c2d0ec7e404349bf5a64a876aaaf72c9c16a004578842bfbb6ff221debdb6ffc8a6de429ca0d7aa50071bc8d68c23c379364e56e4ac247a99523f8d90b3de4b049b526f8961621b98dc534b9a756aa9c4a1b2b4c7726e701ba03d885a39d59a76d92bba31013f2a4714ea3840293675aaefa1219f8794d114bbb004463f9c631729734cb430f26f38886537ee40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd + +# Official test vector 45, seed: "d3c9ebba6eb03ccb5c9b9d2c8d7f0cfbbf50841e24396cddf0e56525b38918c2fbe6c34cc1b93f7bcd4f4d5777e1a488" +seed: e9acbb774be970206c3a738e243b420805a509fa59fa902044be2f0d013650d2ded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 +public_key: a7c9ccf796828b704efbb194d5d895cec082f5dccb78b59a61090eada66093c84267079597c9881dfb2ca8fa4cee6682c4375eee25a08bc0766eda05bedb2cabf734c4243987012a44e86cc013b7e555bd15d45306479a78ea7d4fd7723d3b074860914e24395b264d35e57867f0229912c6ad0238587355b44c155bf7b5e5c872afeb136bbc32b1a950b3122f3a5b71d8c140940b1ee62a5543f3b61719896499721f5466f7b57b119568c960a3796bbf2c8877cf8a762d6a8852619abcfb85ec7c6e79652311490b03f61bb18a23fa100fee70a0fc693163b28ebd6505773324404341e6c79b0562207ec1077cbb64053a4447866efb1894a6a544daf283474c6e0e99323f962b5cf4667640af8351059ab42e0925431d864339258752a3b08ad52f985520a1247af44366f3377d5875589ea9a8e38455a3bb5ffc29083664cda47988f4f0c59622454a7109a6722a77703b0a69a4db2ac154d53a6bd60603e9be794b0b1b0b88da57a64802ac771134b1a4776d07703db8746e610331ec3ad3926891c05b4b738d3564b79b59287174696d119717d3650aab049b401466467ec352102ce597f6e867726543067acf511975828799f920bf139c176fea838144797e79441af218d9c2c0f15a350ef82d588b45b86a2c58464239c121ed2a7650d2841eb21dd6547bd32c0e4d654a3823c4051609ed49220c2651deb6b0e55a00d261caebfa9c17d82d5f23a111c391d06c0441102c2745875d6905ae21412c2c14ae51c5609c5872828ca8d09239b82abd602005cc66ddeab736db3cc0e946d6232177e6c012a8672bd62d0a4253dbb5a908c42341503b76d428a0c38f7e978d4fd2532d075c08d9cb3a440018b323dc3ac28bf8875e412745962e512c0e0e81b4919a813766bb020c831ce0c3eea5a496e57e8d598d3bb34733b6358cda44b1960e8890ce525578d100257ed8a916a02fa2d8b59478966835c0603a8f48715ab2544d0fc487a7eba7a96a6e3918b9c9cac54c841c2899cea0312b40f9bd93eb7d392a4cb889144c224a23244067a9712ed9cf52a15edc35895c7c121822468716704e3617ccd59aeff5120524495d44ae3019adf7d25bd7871b2a98a17ab6c68c789174a28a4863ad69362fc5982aa68b3c0cf35fd2d63d064556e55b6df0d636dc5ca56a928f19c61816349c6339c59febb2b8675807a6a9181a91620a684dba5c4c596a821b66014851966547d60690f7a805bccc4bf9620c188495795c3dad55c8e7529fedc92ee3192a68bb9250420f6ff04f939c82c8442350d40f9d518c10c53ed5c3539e373d0f955d3d451e7873a22af2aa87c08105c044613334e6b585aa864795e0a6af988affb2b2eae653be5c76383b66f5205e1df2b557b66b0f9b7063d3039510ad13a9b5ae6bbae433808db7275271917d75524eb2203202c1f0b4c9afb402f5798214c28667d28727f89b95d3294cf38c129a792b16161e6b9eca60c18ed802c72225d585c7f59059dfd74944f764035c073119395478651f88352c204f89222bfff7c8bedcbb6be1728ef74e54435b40b22276f1199ef34673ebc70047956a543f3d8569f334a5fb22b4c2bc34aa9a4b27a11795a730eb96003ed4662f2f0344da2b88e634672fe48e40ec83f4ae731342e77cdf4a3a +private_key: 05e74ae857ac16003fd911741a1323a9621de488789eb612908928e0435aac49ce2097cd03ebce2c8c0aa232b19bc64e81d38750395af4499de139be5d8a4152b66a56067cd9a372c667ac143151676399b516377daba3bcf2a846074786f934c8c091921353779b91c1a201cc293a83e11bac68c3e68350a90c13d65628f379c1e181a8a9783b897102be367cd21629d198c39686c02339cb92278ad1d17ce563797e9b4215ca88a37a9379ac6ccc523cd94049225b900ce145950cce099700672300ba71b22b7a1a01d30ae26975fc53795d2b49a1620a80d0076ca983c0b8b87e96399fd6869aea85d35159d5a9872242515d230ae0965d5ed31cca22a35b33c5810ac4737481b2448f324b7c208387ac045c0b7c9b25a678526857c34a7748c443ced32bd4b7a2155ab7d67297c67080f507ae2309b66800728d661472692ac22063f3886e111a5176387fa410422bf571c79a4d8b764abbbb56ef845ceec23c8381671009c1e983465e090ecac84d3e7b567ca59e5af8477ea89dba3784308c680033c3ee65b670aa43fc6932dd9692dbc8839bd94c89e85e20b2b9ff015ef85a2c9dd7208db5815e73a4ed469d38a967ba42b2ced1c959e400aaa10957010a23fb7e086b82b1e1309b64977a77b9f6bc15c92149e3587c9bc5435d4a50a62c90dfbbc339b3467795bd3e125bcc6cc83b797d4d7a6e8701953a57cec99b8c7939697bcc488f0b6601dc2f31ebca4b15059f12962e153a164076a9f6ae88cb737b8ac4f5eca0fa8b3bc9d03f7b578c8de160daea49a0211c7b007a37cac38ee02d07aa48e355cbfc43a540d9096dbc5504949239cc0b82d94755c4ca182852d56b9b9819c42b6c22f3246cd4a879662cc901e4904ef791fb34c7423a23876204618276e45cc8893b15f5277b67c391177889d8868a8c14949b684467094a9e2566bdc58b00b339e3b91fb54b63e1f43dc57a7f107cc988cc1d65e456b85325fec11db5a7c947fb1d82631fecfa57dff3a1de5ba8bd0a5c2004cddf442699c4acab590730c8aebd853a51a8ccd68839f1ac397ac4a9b6f54316537bdb99879596bbd2f517b296906345a2517318b4146d4afbb7e1c1bf377337c6b84d3363b49a7a8937cb58db3524a2525f2f2984598797b835a41961b99bab237077a5b6dacdb161c86b19469e4b99c5b552c63c3f3fe3140770c369c49e6f696f11639d625647b3fb9a38a0cbfbc01231c2206975c0c7b931597881af2cc267da7f5a320eb4408df9e39d15a7558429390048331c2109d2c46ab7d16b0412c1ba8b6b1f9b58a47c3d54564e70440eeb43c80abc8d67792324287b3db329329267f53549b6a72d94d9bbb2a02b7c985ae8f4a5c39218cda99f6d461bd27723bb20af88446ea65a7b85c074cee48feeb881ddf9773c5c6740a178e1707c50788478d3500f6aac22b0be3ed5ad240a9a336378af185dc1519c0948cbba81790da7929ecb464406cf618cc019a84868745591496ca38ac57dc5010ba815b24507ace51edee75dcba3877179c4cec474101395d9f831241c2547487636d39f1c6082041ba679b7a1b1d5bd0b295eb137ab4b210d0149b4fb0c8df5515ca6d7a67393a9f5b57aa7c9ccf796828b704efbb194d5d895cec082f5dccb78b59a61090eada66093c84267079597c9881dfb2ca8fa4cee6682c4375eee25a08bc0766eda05bedb2cabf734c4243987012a44e86cc013b7e555bd15d45306479a78ea7d4fd7723d3b074860914e24395b264d35e57867f0229912c6ad0238587355b44c155bf7b5e5c872afeb136bbc32b1a950b3122f3a5b71d8c140940b1ee62a5543f3b61719896499721f5466f7b57b119568c960a3796bbf2c8877cf8a762d6a8852619abcfb85ec7c6e79652311490b03f61bb18a23fa100fee70a0fc693163b28ebd6505773324404341e6c79b0562207ec1077cbb64053a4447866efb1894a6a544daf283474c6e0e99323f962b5cf4667640af8351059ab42e0925431d864339258752a3b08ad52f985520a1247af44366f3377d5875589ea9a8e38455a3bb5ffc29083664cda47988f4f0c59622454a7109a6722a77703b0a69a4db2ac154d53a6bd60603e9be794b0b1b0b88da57a64802ac771134b1a4776d07703db8746e610331ec3ad3926891c05b4b738d3564b79b59287174696d119717d3650aab049b401466467ec352102ce597f6e867726543067acf511975828799f920bf139c176fea838144797e79441af218d9c2c0f15a350ef82d588b45b86a2c58464239c121ed2a7650d2841eb21dd6547bd32c0e4d654a3823c4051609ed49220c2651deb6b0e55a00d261caebfa9c17d82d5f23a111c391d06c0441102c2745875d6905ae21412c2c14ae51c5609c5872828ca8d09239b82abd602005cc66ddeab736db3cc0e946d6232177e6c012a8672bd62d0a4253dbb5a908c42341503b76d428a0c38f7e978d4fd2532d075c08d9cb3a440018b323dc3ac28bf8875e412745962e512c0e0e81b4919a813766bb020c831ce0c3eea5a496e57e8d598d3bb34733b6358cda44b1960e8890ce525578d100257ed8a916a02fa2d8b59478966835c0603a8f48715ab2544d0fc487a7eba7a96a6e3918b9c9cac54c841c2899cea0312b40f9bd93eb7d392a4cb889144c224a23244067a9712ed9cf52a15edc35895c7c121822468716704e3617ccd59aeff5120524495d44ae3019adf7d25bd7871b2a98a17ab6c68c789174a28a4863ad69362fc5982aa68b3c0cf35fd2d63d064556e55b6df0d636dc5ca56a928f19c61816349c6339c59febb2b8675807a6a9181a91620a684dba5c4c596a821b66014851966547d60690f7a805bccc4bf9620c188495795c3dad55c8e7529fedc92ee3192a68bb9250420f6ff04f939c82c8442350d40f9d518c10c53ed5c3539e373d0f955d3d451e7873a22af2aa87c08105c044613334e6b585aa864795e0a6af988affb2b2eae653be5c76383b66f5205e1df2b557b66b0f9b7063d3039510ad13a9b5ae6bbae433808db7275271917d75524eb2203202c1f0b4c9afb402f5798214c28667d28727f89b95d3294cf38c129a792b16161e6b9eca60c18ed802c72225d585c7f59059dfd74944f764035c073119395478651f88352c204f89222bfff7c8bedcbb6be1728ef74e54435b40b22276f1199ef34673ebc70047956a543f3d8569f334a5fb22b4c2bc34aa9a4b27a11795a730eb96003ed4662f2f0344da2b88e634672fe48e40ec83f4ae731342e77cdf4a3acadbc64e263f1afdcddf2ad63f2fcd19799a0a8f43ec867477e249ed5fe716f8ded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8 + +# Official test vector 46, seed: "6b3996e8bc6f52879f2b7be012c44ad555707cb7e5fd8abb3457a298336d6fdc9eb7853008ff13201d5969a315c7e493" +seed: c1b3cbffad4b306f9af0cdd3028876486dbe858875c9b6497fe20172a986c82b1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 +public_key: b854a0daebc2831a4f20695579b52d3369af228842776a03c4d3284d763d1f663000930377dc86ab14486673a349d8073ff6ba44496c64467d5f531f5203a074ac7ce9090e59f1c308d2c755910af132ab81b50ad6d6c2c6716190696ae6a51433f61185a43cb1d23708d8286d066b61a6b7f9e13f8248c232d8315f40053fba0d7ffbb4ce60410899200a8a5e51bc1d8392cd56f41fbae85f35b110933a931084444036aab790cc09b84b7a235f34763b9ab5c9b53620f627778c661c4c45b36ebb3a4565795656227fdc280b327ee2f96c16e7bbbde89e9090318787b2abba7727a393cdc04dc38205e3c86ed5d5291a1149ee204b24661ab2ca16c1c0a35d3cca0d7c57f4e01985242c3b43869d9914312678710b039be4c2b775cca014b1d936ca8432a4614c4e67b69620fb49cbc787599c4bffdc3a2c786ba876864e7a5be33ab200bc2d087c3e6cc642f4a96771ba212778046b5823085c4068b209c54a5bd4153e4d986ed3512d09d40c37c1a2e57495e0a594f4430fdb1c88c4fb677b007d8804ca114c0991b90b5140761d59325502a1f0476e961a0c2b2ca78a82c8b5581d98da26de717f84c140fed0a00221ba71c34821374ad7c565ec20cefc949e98d1819702a4d38597c1db9239b9167dfc8651498927bb0e170c151e881577f58963593d3ae00870b8bb9fa3b77c468e8bd365dde088f24c2577c5aae2f24aee1552e4482352674d1d96b90880336ed44f6bf007b5eb67c52a10910a9a3fc82ab8d50aee17b667a27b4d014161f1a60c3084a25524693364ac1876cab0c93c01a153b03486e75c3a01728f625f9a7a6a99e78ea9b77b01490ab49c6dad9ca584229a8a890effe47ce0692aafb17a3db2b855a01666514e8a800a47c0cbfb4872c8c8a4d4bc52c8db43d3f7360d568f4f905ada2565a494901f229ed51bad9106bba6dc4fa7ac59a3a5a64d033be1e47c36c2cc9da10a2bd200b681c2caac5cb1eb03f36455241367d30019aac00afe312c5323cbb4575e271c01f09c6eac03ce1f02bcc4186768493f6cf97671e7a02db6047557306bb8ce086382bbab8312460663dc1bfd01b2411b3c49835690627f133935c27308be6b5d09844f477523521c2b1bb1c92b6b3c46c20cf97217683a3f2e46b0151511c7c9c4bf8620d4706ffaec98e524360986386a7b5c20c312c5b6237bd17271bc6c146124d190205f468dfb00bae08318350c1aa5910a07a67bf13a99a52a39b2b04fa56143c0c1290c5c412ce1647ba8242c851c8bea960c9c4879b83037886ae77b10e8126dd3b633a33a662076cea326765d6262619b8d0c8c3217435450070dbbd67404f5255b6557267178ed99cd4257768e728f3069bc29f8484a127d84098ff4325946371384463c4ff489cd8b6eeed0c5e3e92b1b988c41a31df71047cf78ab1ef9adac2a1ba3121672505ec77b0620617598f84d1fc7b00fdc65e7ab72274c86a424746dc74f53142be6423545d02d581933bb92058563279e522ad8507f4326699bf4831970775640887e875e1cf29a09843210a23976941af397a3c6c5605af133ba94126132311224388f340448a1252c5bc0197b4699aab73a4237d40204a46103bd605bc698111ddc3d6bc04804722c35600b001c554180d16628713bdea10cdf +private_key: b6f76178bbab01b89443c00292ac914d658044f13fbbd19cd4c0a385141c6a91208665bc45c04ad73185e6e3a0cd102a8cd20547c2335ebb3bd7e9ad50294b07d9a45e617473814ccd41078fb58d2dac1f872c6cb96c73d1aa4356a917c94704a36b9ef791c6c021cf9ed2270685c645a76141f6373b8ab6ab18963b580ae0134d8b175382847811a590080a3dea2b863e06a0990c93839906e2f942b864bee7410bbb17bc1db6373ec99b45754ec78531c205919c27a4f2445b8a777683819709c1c9a3660ccad39941e496aa791ff8d2671b74580df965d0126dc5c034b8b01f31179c1c4746d3820955206b447174eca321a5c22ae852b631e12025b5675385731ba9234ae36cd90c3e16fb5ea2494012b96498f02edc23cd0db74970961fe430129af1b94ad5b1bd95931aecb365fc257c7c1d1668164edc9d2b869a4cc95d54759182c6086785246794a6a0f81431d75fc7189416a9b1efa3832c187fea912474a8a4caa5c9d08b2386240a3d26755111a3a3e830266473b6e02286c10e23ba34ec08c1f643a8f2b74519631706690fbeb5be8bd581175412c1b83da81700ec92bd03b9516a779205c78f726126d67ac2a4c528663acd985296d187c7f6e231a95707d0f9854a4c051a12179678adbf8285b5e58251d08f2da015bcf219edf39f6be56e53b95be3165114616175a5ab44607612fc40ef814c9ba52b6c060c0f11adc8234d865282c3dc5e106753cf221ab2996ab9887ed5334bc7b83d6bb413e1fa9c074903f3c94c685c660ab00a6be85c384478cb42bde6715c9a3bb77b7acab909ce428b955476c85f153263874ca3a7429c6a79a0834c15237dc5fc7a7620897876a3c0970e1b7b789a13482a38c5455a187995960806304ce34b72e676fa589f9823c949981b6eeb887bf7c09ee147645602a640598bd29ac48c94daf0771f46acacaabb4bbb73e841b4be5ccc886987b56cc6e25a7260b3364ec4a897ac22816048756a530ad269759929bcb4ce03435784b25f6f87ca320060d2a1b3b800986cea76229b1d5fba58afa9ac3514289a9b7f63d80f2b48893b376018a0baedec2715b01d61c8cffb63b839c4129c8b97acd904a23a0cc5a38245802ef5eca812870a5717c667ca9bac328f08305621305e5d40980cb7a3f8bb01ec4469b7e17cb4657944a739448a461de11e3bea1d7141a6b7dacf8f41a8f9c6437a9c26ad5b2dffb4974bb7762c76715a9694d5d012e2254ea717369766c22cd9938ec0a4b5a88e7c45b03027926984081414cf7b3a15d46895c362a0a2928c1215601f665d675abfea867957f68178e6621871bd7ac1010abc494517804e68be80151c0aa332102822b0674915208afaa21efb3ba32b0aadc9778869bbab9ad2cf934a690f40917593667cc2ad0cab53c387957ee24960149b07a109465c5de3eb576d99481fec4ca5e8a0de36756f951896322d29c5adfd124c867a5286b59f0c2a0c632c6778a098d39c1e6029285a821c06958671651804e75de2d2414eaa19d0a18003c12f74d50655041aaddc6f5daa6dca8b46367c63bec73ce1e181cc166efe3baa2b986bff325187369982978cdfec651946a4995a20b48b035dbb5eb854a0daebc2831a4f20695579b52d3369af228842776a03c4d3284d763d1f663000930377dc86ab14486673a349d8073ff6ba44496c64467d5f531f5203a074ac7ce9090e59f1c308d2c755910af132ab81b50ad6d6c2c6716190696ae6a51433f61185a43cb1d23708d8286d066b61a6b7f9e13f8248c232d8315f40053fba0d7ffbb4ce60410899200a8a5e51bc1d8392cd56f41fbae85f35b110933a931084444036aab790cc09b84b7a235f34763b9ab5c9b53620f627778c661c4c45b36ebb3a4565795656227fdc280b327ee2f96c16e7bbbde89e9090318787b2abba7727a393cdc04dc38205e3c86ed5d5291a1149ee204b24661ab2ca16c1c0a35d3cca0d7c57f4e01985242c3b43869d9914312678710b039be4c2b775cca014b1d936ca8432a4614c4e67b69620fb49cbc787599c4bffdc3a2c786ba876864e7a5be33ab200bc2d087c3e6cc642f4a96771ba212778046b5823085c4068b209c54a5bd4153e4d986ed3512d09d40c37c1a2e57495e0a594f4430fdb1c88c4fb677b007d8804ca114c0991b90b5140761d59325502a1f0476e961a0c2b2ca78a82c8b5581d98da26de717f84c140fed0a00221ba71c34821374ad7c565ec20cefc949e98d1819702a4d38597c1db9239b9167dfc8651498927bb0e170c151e881577f58963593d3ae00870b8bb9fa3b77c468e8bd365dde088f24c2577c5aae2f24aee1552e4482352674d1d96b90880336ed44f6bf007b5eb67c52a10910a9a3fc82ab8d50aee17b667a27b4d014161f1a60c3084a25524693364ac1876cab0c93c01a153b03486e75c3a01728f625f9a7a6a99e78ea9b77b01490ab49c6dad9ca584229a8a890effe47ce0692aafb17a3db2b855a01666514e8a800a47c0cbfb4872c8c8a4d4bc52c8db43d3f7360d568f4f905ada2565a494901f229ed51bad9106bba6dc4fa7ac59a3a5a64d033be1e47c36c2cc9da10a2bd200b681c2caac5cb1eb03f36455241367d30019aac00afe312c5323cbb4575e271c01f09c6eac03ce1f02bcc4186768493f6cf97671e7a02db6047557306bb8ce086382bbab8312460663dc1bfd01b2411b3c49835690627f133935c27308be6b5d09844f477523521c2b1bb1c92b6b3c46c20cf97217683a3f2e46b0151511c7c9c4bf8620d4706ffaec98e524360986386a7b5c20c312c5b6237bd17271bc6c146124d190205f468dfb00bae08318350c1aa5910a07a67bf13a99a52a39b2b04fa56143c0c1290c5c412ce1647ba8242c851c8bea960c9c4879b83037886ae77b10e8126dd3b633a33a662076cea326765d6262619b8d0c8c3217435450070dbbd67404f5255b6557267178ed99cd4257768e728f3069bc29f8484a127d84098ff4325946371384463c4ff489cd8b6eeed0c5e3e92b1b988c41a31df71047cf78ab1ef9adac2a1ba3121672505ec77b0620617598f84d1fc7b00fdc65e7ab72274c86a424746dc74f53142be6423545d02d581933bb92058563279e522ad8507f4326699bf4831970775640887e875e1cf29a09843210a23976941af397a3c6c5605af133ba94126132311224388f340448a1252c5bc0197b4699aab73a4237d40204a46103bd605bc698111ddc3d6bc04804722c35600b001c554180d16628713bdea10cdf5ca1708c7c6e354b69720b4b4a0c358fe9a6ad3febe78bb2a71691658acae21a1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2 + +# Official test vector 47, seed: "730b65ece22de27d573ce3aea7cb021c415df210d228808d91d4f380070ffcb0778b683c71d4853deb569c822765f2a3" +seed: ff7495b8575b5a98e4fd21fb4c3e58cbb60f14bef21aa74cf8802e3153f14807bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d +public_key: add1cb33481d37e546d75b5398198a82126a7d306a26c7124518075ee6701d1ca69d16a867115582f22a7c382bab3acb5de50c34c13a5378b2b1415b5538987a77681597abab9a0b5bfc7bbd19550064489be9b897a54fd12c7229f0af5313429fc85f1936b5a325aea955021a969ae289657ba4ce7393477afab3ec0b6e46bb7a8570b2dd4372d51537ceb3023e477a36bc2b784444d0f71c3165395ae71f98921ed160be83e0572487691a43128352b3d82b223c67b33d8277b05c6c071418799583e2b87c9c2a81bb2a7658d67e637b99d5770e04b592bd5961f0c726d0058b31086ab1d23f4d200bbe6b418fd53a0131aaa5fc0380f70f1c90cd1dd5bfb3839cff013375f49919214e756856042bb10e1252a0108c1dc39a1f69bbc230a4e9c93a87a87899faaa210a781c91bdfec9a59080ae642aadfbe20f9ec600a2b297c3394a751354b6e8ac65ea45d3b66c57328249034738ea2541476ab0f2717940930c8551314851be98351d96acf6232e1960b97d930e3f424efdf706c2da2f652796caf344b86ab388f412853a5643a7932409b476d3c81c2a301e968dae28742d18232efa09b81177dc9ab33d7b2ed5e711c157bbb123506fe35c5132bd04ea87e173a7d8ab5b2e35a7eeb58ab3f549dd30228dc5197f778359b4b9b9b989b697839fbc013426016110bbe721c1c89c1d463248887491f0814c4bfcbfe7445144b88cb4ec535bb85a3016891b009dd4ea020e3799d56a710ff097b79384556c5d7d717436bc9626cc15ea509fed2bbb74c2636e8cb4e0435283c7159d8c9eb6e11e5bf977a80994278161671346b368372ab5612c85ad48db8a82067acaaa39bc0b1f49083e71e8727adca1f3c7cfacf907a71c3c73e6737bc51795c9761b5c36c87b46141400dd43874c4500606c616d90bd9d588905fab9b538c23a07b9fba6c0699259b6b81aca207138884886205955250e3e7b5d4d549a8b73c0ff41b88c305b7efa4178695abaecb97ba46dafe090a81c038ff373b13582665665b2058835b629f2925ed99082858152433bc3bbe90937c763d835638c3225e0c3485f9555d3e1556ffccb1b059dff8667ac445b474a17f360a2dbd895048b29fcc003f3c46768668b88bc0053bc3821a95d5d49cf1510894f1739c91174310b0ab2cb7836b41bc44aad9681c0067192d4a46c2fd60e2323b6fcdaa15a6581b4571b4ccc09fae5b24d8b11f67aa629e79652388ce04b9ceeb5029e80341ab6abbfe38b2584b55108a21ac64d61636ddb2094cba91c2b606cf3d2ba09d4863ee900decc2d594a042b5a63c822631533a14b6cccaa0775ea3210e3ebb22137a749b22c1eb129c872578feca153b312efe6238583793852485fc53952e4a513e64b8ac7b60241944d704246551d3372ab9e60bd8411729cab31eb908c5348c34db74f3ca60384e93c91479a52b321f8544dc13620f26c9fd324784a294197d9935551ccfbcb93f9f2ba8fda993a3598a5d37c36469024129c8f3a081c9b3a680a02ec450b0a805da455c5f696bf46681ba9f80f6b469af9b1c09fb2bdf618242f449cd017308dd80a9fa7a3a6aa25becb6f07b241f0f72b345664751b83b46a276ec74aa2569b79de21a5198e7f0c3bc2aa84e7f5c79f4cdea5b473ba2d344bf994fd32 +private_key: 48f2003d718ae6848e47937d58e68162209b6c88892c931b4cc4b1ce0a0e762020495c60e89cc854f72444d21def3a5b96a004e2d9ac9b110aa8844dd02a4d8508b0ad3c480e37196e343ebc01c12cc2ce6616cbc395a8c7e02b19d25041165832584742a07fd3207dd3687c91d17e111a945985805fec8836231b7546263d96302473abfbe36fda05345950c7dea6affc45c87a3272e780a3ee920eacba1fa17500ab04a091fb355d906430cb4bfe66697a09cb08f992a3cb9b2f31624726b13223122c5694d9e0757b65b46682694c82b862aabf3811ad14db6a31b602030498993b8eb5364f3c9213e66c81744b018dc895fdfcb81a77672e71b320e3a2df75403d57c229e745310a7cf780291fe169da8290ed96a2056995fc7c59cf6cc162bb10678736a4f56af0430e6c22419a6c3535b22fcb837bc2214a1d83a6ae7414d6521149498b0e0841e7775f1e783b376c1ac39067db769af6e691c59683114c7420fba6723bb3ae5a137224ba7e816b5463902d21223064c8a8cb10f49abb765281ec372c647b862f11095b25a41705b9b327456a7859c7033691353eeba926ef880500f34fac746d9e59bef7b50457acbc33369f3f85af047bbd75a40cf62ba1ecc27cd5a6437bd28c37ea3739a784f068cd4cc68f0cc6b01e4933003c950985042b1609e0a748c9f87ce5099356ec846f9b40f6c13a6187cab40b47d04cae05d43c53956ff4553f62761068e9938f21a24734305098caf7c9022a8b52cdb54860419a532cb9750c3e439a742d9031076b99fb8a934c2c8a42430a8e65cca75286518cc08a6925c2e3b9fc854d8343b36d652f37c339b951b0f7d774b4da5171a96cf6981f1848703dc93f2ed6bfda065b7ec4056632a56a549353c12c0953757b2077e65c93c00673e88ccec700b6d2307a0609ae9035177fc41c97fc32d1b8bfe7266ab8eb2b9bdb9ec6692f7d6678633b030cc19905bc46960ba25ac8b9da762165485a7c07744d1b8fcc080993d0bf86496262f268f19b7dd7d7bddd4c947e1146f2196ceda5bb53137fb107560c4ccedb96351945bb8ab5092c9975db266e621c53c519caf639c80225248e6804d78108789b2238644f33136e853c26e1477827d3797d7c75a09044bc77b9ea05bad41a1da87a460e17779a5233a080377294a1ba3a99b4db42cd42893b937c369983811c14305cbfa0e57c3e4b19f0a77c4a2a6998525ece48cf45635c5672429b67630e603d1ceb5a22e429aff58c2ce61e79f6780d59575ca3309d559cbe6572e0671af2259a39063f628bbcdb74345af9caf02aaeb0a381e39a5bf08107811b243d130c482b0c74a47738d9a6c5d30538e64cc513160d9a8351b9ce82521ae1cc03c8a48f72252ef1b2a15e6785e639246cb8c196f9949ec094ff6639c8e216b90bc3c2099bb3093ae5242f252807bdb162b3232f3e7383145655ffb71ca43456f1a5137e7977ef214ecbc6113f198d7712178da090620a9d343025ac11595ab6b6844262822b128b8826fadc7b3f218d37941825733f43ba4cd99b63d26812772980679c3b14462b762ac8c3e8942a0b1d4ac1838a2795113c365a535d483658c4531a0ec63c010a2c7ec159add1cb33481d37e546d75b5398198a82126a7d306a26c7124518075ee6701d1ca69d16a867115582f22a7c382bab3acb5de50c34c13a5378b2b1415b5538987a77681597abab9a0b5bfc7bbd19550064489be9b897a54fd12c7229f0af5313429fc85f1936b5a325aea955021a969ae289657ba4ce7393477afab3ec0b6e46bb7a8570b2dd4372d51537ceb3023e477a36bc2b784444d0f71c3165395ae71f98921ed160be83e0572487691a43128352b3d82b223c67b33d8277b05c6c071418799583e2b87c9c2a81bb2a7658d67e637b99d5770e04b592bd5961f0c726d0058b31086ab1d23f4d200bbe6b418fd53a0131aaa5fc0380f70f1c90cd1dd5bfb3839cff013375f49919214e756856042bb10e1252a0108c1dc39a1f69bbc230a4e9c93a87a87899faaa210a781c91bdfec9a59080ae642aadfbe20f9ec600a2b297c3394a751354b6e8ac65ea45d3b66c57328249034738ea2541476ab0f2717940930c8551314851be98351d96acf6232e1960b97d930e3f424efdf706c2da2f652796caf344b86ab388f412853a5643a7932409b476d3c81c2a301e968dae28742d18232efa09b81177dc9ab33d7b2ed5e711c157bbb123506fe35c5132bd04ea87e173a7d8ab5b2e35a7eeb58ab3f549dd30228dc5197f778359b4b9b9b989b697839fbc013426016110bbe721c1c89c1d463248887491f0814c4bfcbfe7445144b88cb4ec535bb85a3016891b009dd4ea020e3799d56a710ff097b79384556c5d7d717436bc9626cc15ea509fed2bbb74c2636e8cb4e0435283c7159d8c9eb6e11e5bf977a80994278161671346b368372ab5612c85ad48db8a82067acaaa39bc0b1f49083e71e8727adca1f3c7cfacf907a71c3c73e6737bc51795c9761b5c36c87b46141400dd43874c4500606c616d90bd9d588905fab9b538c23a07b9fba6c0699259b6b81aca207138884886205955250e3e7b5d4d549a8b73c0ff41b88c305b7efa4178695abaecb97ba46dafe090a81c038ff373b13582665665b2058835b629f2925ed99082858152433bc3bbe90937c763d835638c3225e0c3485f9555d3e1556ffccb1b059dff8667ac445b474a17f360a2dbd895048b29fcc003f3c46768668b88bc0053bc3821a95d5d49cf1510894f1739c91174310b0ab2cb7836b41bc44aad9681c0067192d4a46c2fd60e2323b6fcdaa15a6581b4571b4ccc09fae5b24d8b11f67aa629e79652388ce04b9ceeb5029e80341ab6abbfe38b2584b55108a21ac64d61636ddb2094cba91c2b606cf3d2ba09d4863ee900decc2d594a042b5a63c822631533a14b6cccaa0775ea3210e3ebb22137a749b22c1eb129c872578feca153b312efe6238583793852485fc53952e4a513e64b8ac7b60241944d704246551d3372ab9e60bd8411729cab31eb908c5348c34db74f3ca60384e93c91479a52b321f8544dc13620f26c9fd324784a294197d9935551ccfbcb93f9f2ba8fda993a3598a5d37c36469024129c8f3a081c9b3a680a02ec450b0a805da455c5f696bf46681ba9f80f6b469af9b1c09fb2bdf618242f449cd017308dd80a9fa7a3a6aa25becb6f07b241f0f72b345664751b83b46a276ec74aa2569b79de21a5198e7f0c3bc2aa84e7f5c79f4cdea5b473ba2d344bf994fd3204f0066489947b572f76e1dfc2e24297b210ed0aaf228788a0b349d11689e064bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d + +# Official test vector 48, seed: "5522a5a891a9a9b5514f4556afd8df40b9cec63a01492f0cb8a1db073a285a963e4a9ff2376c88662f7d8d241f8acf17" +seed: bdc3fba1c32751139fc45bacffb3ea97f26573d804a5f27a459293d95190ed8efd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 +public_key: a7a8102df0c61577a7cd4b9a04b17ac55708d8c6746289529337b9e267737d5345f4e768e0d6656cf23593a84eb0ec290c8ba078eb9f8d1cc8ea18280981cad0f46dd29c474fdc57cb5bc93e318537ca343bd03ea6a7a466b021b3db77021a8e20b94907ea294f47baad599d51d74219e38f883b36cb323a317520997988342a7452c3aff4522ebee30211444fe78854f9f853cd189be04cc1c800607cb4acccb650ae546323e7993bf2a203487becf8328a2979dfc5c3bdfc1b47533a9a629e5fba5a2234bce8eb37d686a75bc33eeb945d80d92c218548eff794ad6c0d825b57f6f12f0ef6b8201bc0d1fb0354f051ec1a217a9a0f0c77b1d6f76c1f25b01ff356fa390079d3800f1468d745a0dc852ac140307e700f97d557eb42164844b0b6d5a37bf1bc41db5aba156359e9b4ad5649189409be58b8ad5ac89e348099ab9ffe81c71d54853eba7b42167d478693c39837f76182e0c894e0f5ccf19643fbdbc5278b500d1b07f1e62ee797930c0cc4a41832ad093b28460c8700678bda847edc6bafa64ca182016f75366af8c330d201c7ac4327b2326d8b57997734bf909b0fa1c619155aab7bc5f4026079926d04619186c4334f48bdfaeca777e91d0b0b7fc4b180e5e19f0162c5d3146b5ac5ac820781209c455d195f17d541d6916f56838f7be838ac0293cdb63f28529df3fc7d54475062b90d3034c2583b00c942102f82b9553c1120891b77d61b8c86ba21b4a78f772c4049869b56442d33c642a5c0ad167747807d5f6105ccc21af8e06c85031a2a73ada9d59453017f131b55c1e0176ee29b021b7933606c5425078b7b49cfa99f24b21818e78a0e856747e4a7888a3d1313624af81c75eca6c3c43238bb078b94c2a9c57f0c4c66ec5b59ab93b73a1000630aaa28a79415320bcc8a96195934c9f14d5dc41cb70c1104a63f5fa29953495abf71b9359563f16c7bd6bc319ed7898fd00cb580902f2196b45311962cc17a9a9f002a916d9bbc1a452bd3e6a48ca05e50ab35bd828cfe66b483e96ca1d917001b46374c41c2d079fdd8257bc339a6e13a7fa2c0948056f6553803d10fc9f1c87725230ba3713903193f200a9851a78b61534b5a949d140c9b457ec66769c6544d79f0850c4cc8e4b78eae0b260dfc9cf0848e4e09cf52047d62bb8e7e6231f4ba49859b1dedbca0d8832bd23789c6fbc40d61485e5a951de68639e07e624a72395b9e25b603acb330a37b998b7a9ab3f973003c15624c6abce84050fc0166924a397708c12308c578105c1457de7cb41dd609c0c3333be5b9c3b93e2776aa0ab3a4054c98789a4bf419bcb6eb914c2179bae02b462b1126a3a28840b9e7170618c20e8527993623cd0c776e54f8b4eb237b4f8c075fa2175f11be86e2bdf3b9b9dff89b7534134620116e0ac025f6707b00b5c743aae144241b935ba61827909b591b44cb6f36107ef81a214c6aa5b9b3e1f441c774cb7102310c4031e0e4a213a8c1f1593906a0424d657cda7c10c1354b0d5a83d2cb9d0407073fa77abe480854c953eedc6cb06c75695665b92873552cc053a9bba0c99aaf970753299db3528276b56feb8a5bbf373d13c20c2f22ae07e9542206b296f3b101d07a3bd1517d9eb8db21e1f18e6da63acfce1e0dc597cef3abfc7d0aea99da +private_key: 3e3a14084387ae125d7f5a0e51841407d61f85d7574b1abea52b6315d07a404372c827aadd3aba668bab52d5943c59bc500b78bd77ccc7da7a3a6c8b613b9cf761bdd73a222bd11b246431d989a9b5d7b68f8c2364c8bb9380caee16bbafec6e4ee157655528dfd8399b3912b303481607620c941cf3a314cb7013a2526229c4bcabf7642596c4100023140a4ac869a30c2a20501ab4838581f42783a18b83f5165907985363d766edc0606594188427a979d171c4a52152fa4ecf0c4d4bfb10306b98ec4a409e2baf598124abb31e34bac176a29fe7316056accc59f38a268ba03b39bb48e0a763e340dca4c3f1d8580ce304f696144efb3db5975157260dcd26194b476c5c6552f9a39b4c556028493f0bba23c96ac03d03ce54a4680e8075cfe70b01bbcff4e3026fa3185f059d401552dd966e70032f7d198a17b8620ba30a39cb1aa3f84ec2d82d154ca88f392c28574cd8dc1025e832751769560569e9bb0cf3f7a4126800142753f7e4950908bfe86b468d095f422c1dfaeb3b196a1c62cc8b0beb47fcf6a456150b780b5648ec05387cc81d485318f1bca87bc6cfd30ae2202e342345159154c8b561f92565ee2c20d7e1c385a7a1d99cba75a3121e410d3145284c826c408455a068625d35b69ff944cb880601483b81f08ddf8ca0b8931480878b25e7c73a6795222b593bf517f0c25f6b862f970bc2a652ada653838c942a68098aa6931a9a858cd4251c19b07f69b208ca1c479777907fb752d24ca06c96b394232f0e1982f4d0b9c6c245da5275f75246f4d58472457ae842c6fa886dc2305b1e2654f1a999664c2e7819571be87bd2f8216bca5486615776e30a3bbcabc3b094d90c9fd24a083d03ccc29590647c533b278a28eb667bc71e2cd62cbeaa74821456278003b9fbc18cf23f2837c8326031bc8ab260a92524e9812d307004ca9f6d709a83b77d3b15b417b1cc7de93737c02e22d0ac4486157d0a8236612f0e25985847185007c41a5846dbea0987794eb2743c87020063277cd366b2c5105421c453257a63683a719a57bacf373b8cd90bb10542fc979c92267e04e0612cbc9fafd485933b42b15404002c8ca8930d295359ff299d5aa3a5b82acf26722542819389891509d24ac2d34d7e10aecac27edf022d499357d4d8548220148a082a504baf876414faea7ddb11639a073e87c3a273713305fa19604b33f6c362dc792a0007aa577a0f3740a246ab4226297a0e66c073564b954039dea916efd14b4a32afb361b80292c6b35244ec1b9fbfeca496b35c1bd5ad7e313575dac43478816868b094c1756bab5503723d39dc2ec6bcba3103b6107544f9bcc74e25355597b69425ae77f04c0fa9a17b1351c0854964261e60284507f0b2a89b4a76cb9481c986198c3fe8514c76465de4eb364bdbc43ec1a1054462643a0d1ff57d957685d0e70213505449119628e86c02f23e1315829cccc9f60a733b8414161673c66a0f33371ca0b10df9faa4f142c4b4300b79b0c18ce8cf76811e459c98b56871345a57844ab6a3749a3e14c18c463e5596836e8c436296a84fda143e69517b8176fef3c52606170194aef5b429057b9edc7c48f1dca18605bee3e26aa7a8102df0c61577a7cd4b9a04b17ac55708d8c6746289529337b9e267737d5345f4e768e0d6656cf23593a84eb0ec290c8ba078eb9f8d1cc8ea18280981cad0f46dd29c474fdc57cb5bc93e318537ca343bd03ea6a7a466b021b3db77021a8e20b94907ea294f47baad599d51d74219e38f883b36cb323a317520997988342a7452c3aff4522ebee30211444fe78854f9f853cd189be04cc1c800607cb4acccb650ae546323e7993bf2a203487becf8328a2979dfc5c3bdfc1b47533a9a629e5fba5a2234bce8eb37d686a75bc33eeb945d80d92c218548eff794ad6c0d825b57f6f12f0ef6b8201bc0d1fb0354f051ec1a217a9a0f0c77b1d6f76c1f25b01ff356fa390079d3800f1468d745a0dc852ac140307e700f97d557eb42164844b0b6d5a37bf1bc41db5aba156359e9b4ad5649189409be58b8ad5ac89e348099ab9ffe81c71d54853eba7b42167d478693c39837f76182e0c894e0f5ccf19643fbdbc5278b500d1b07f1e62ee797930c0cc4a41832ad093b28460c8700678bda847edc6bafa64ca182016f75366af8c330d201c7ac4327b2326d8b57997734bf909b0fa1c619155aab7bc5f4026079926d04619186c4334f48bdfaeca777e91d0b0b7fc4b180e5e19f0162c5d3146b5ac5ac820781209c455d195f17d541d6916f56838f7be838ac0293cdb63f28529df3fc7d54475062b90d3034c2583b00c942102f82b9553c1120891b77d61b8c86ba21b4a78f772c4049869b56442d33c642a5c0ad167747807d5f6105ccc21af8e06c85031a2a73ada9d59453017f131b55c1e0176ee29b021b7933606c5425078b7b49cfa99f24b21818e78a0e856747e4a7888a3d1313624af81c75eca6c3c43238bb078b94c2a9c57f0c4c66ec5b59ab93b73a1000630aaa28a79415320bcc8a96195934c9f14d5dc41cb70c1104a63f5fa29953495abf71b9359563f16c7bd6bc319ed7898fd00cb580902f2196b45311962cc17a9a9f002a916d9bbc1a452bd3e6a48ca05e50ab35bd828cfe66b483e96ca1d917001b46374c41c2d079fdd8257bc339a6e13a7fa2c0948056f6553803d10fc9f1c87725230ba3713903193f200a9851a78b61534b5a949d140c9b457ec66769c6544d79f0850c4cc8e4b78eae0b260dfc9cf0848e4e09cf52047d62bb8e7e6231f4ba49859b1dedbca0d8832bd23789c6fbc40d61485e5a951de68639e07e624a72395b9e25b603acb330a37b998b7a9ab3f973003c15624c6abce84050fc0166924a397708c12308c578105c1457de7cb41dd609c0c3333be5b9c3b93e2776aa0ab3a4054c98789a4bf419bcb6eb914c2179bae02b462b1126a3a28840b9e7170618c20e8527993623cd0c776e54f8b4eb237b4f8c075fa2175f11be86e2bdf3b9b9dff89b7534134620116e0ac025f6707b00b5c743aae144241b935ba61827909b591b44cb6f36107ef81a214c6aa5b9b3e1f441c774cb7102310c4031e0e4a213a8c1f1593906a0424d657cda7c10c1354b0d5a83d2cb9d0407073fa77abe480854c953eedc6cb06c75695665b92873552cc053a9bba0c99aaf970753299db3528276b56feb8a5bbf373d13c20c2f22ae07e9542206b296f3b101d07a3bd1517d9eb8db21e1f18e6da63acfce1e0dc597cef3abfc7d0aea99da67ce6c8abcf3ec4d93505d3be02c039e5a12538e5e59adb5a5d709b9b342938dfd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246 + +# Official test vector 49, seed: "1853e72329353b3f89ae6a1b1ef700da8ed3c10d19f9e61ee9252e28ebb0e15802ee43083a12a0b7527088832605e3ab" +seed: 447f6076a627bbc5ad7773fbfeb14b4ba9ac43a0f8b99fb6dcd5e452aa3c47ec20a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 +public_key: e078c4a3954f40a2697092bbe4460f27c4ce6886628382606f395b55d1a29939a2f754a0b82968d3c865f30066c5e21e3e2839416570f5b54f24d347e2e10169571a3935307a4918b5d68ddfea58a90382e70012911729238a4919a7531242228995215fcc96ce8c1970faa902f79c7a7207a93613de0066c384786f5913b24040e6b4b48b6b679e5538f953540c25c18402be1c58762fe8bcee6a1e58d93b21165f95895afefba1f735b11fb7bbfcb40d3d54ba24ca7ef507973aab9017b66a3e271f980462752137d9ab0d1937226129bf48f68b700021b2fabe81573e49fc17819bbe46858b5c58b4ca7c83a57398a667b09c681b990b648e96ce79b72104b13e97611ee8528c9f64c376eb04925ba46d3c8ab859304ce17b9435309726045de17d8a7cae32aa9c80e1aa4058cff89010dfe22daf0a002a905f945accd2f9225739aff1863006b46f9ecba5243bc48ed1184bb9a57ae26c8cda147cacbb4a031112279dbe727fa6c467ead943269ab1e3c9657c19ba0b648c9d4a48c6163a0a79954c0c7ec63529cb8a65c851c39840bb1a7c584104016f16b43da179189343c3276bfeb5839d6622e684b421526d69517ad57b67494bca6db58cf6c95266170ddd9455a6867de052adc8909790659fa0dc0a1d011487b16a1e08bc82b22aa9444f123632ec889719e754993ac8319a72ee83a988a2c77d28acd4bb5ebc486c33b0af1d67a84a349480fbb2b0b252e8749401d8488df52356a75ba2883090dcb757451c9956888b43806431bf9ed956e34806bafc15fcb1cf2b45729eea12a6580c6d1c366a76187fc20fae7657f560973838abaa510fad13c59c5baf4773188859809d1bcdba937845759c9af40dd2f14bd7dc48028a77ff4165f2204fb3b0b9f585061616ca4fc405a0c8533c344334e511053a548ee86998e9094863b8bdc02aaf6bbc916481ac9337acbac10d90794ec239268aa376157b1955379d30c2cb4927a8077cba969ac398bc8521450efcc7e1cc617e69a66fd16b771a2497d14e35a61919dc129844379a314821c333a2f4443651a4cff234a3dcabad32610f5b54d138065d8a5a81fc5068c5060af125265cbc42c580f47b9fbda72a893329999958b026c5661ba116346ccd86633e0a603b48c8acab78662162a9f11c4349c5235a5ac46546b16b25e355b4408456f7339122b67bb48334836214e431955e979244c8c7864ba189eb24c818c15417cac84682f719c9bdd8479be5c643d937605383c6a9514118498d5b4e81d5b74a063fb53cc19a20a9cfa26e479339b988c40918c192435db1a3b2a7c6046376b97aca7a9bbb30335a0e8fd237f8833e89e41a1c67b8aa9b0d539486b1855b9fbb53b5103ab2d19606165acaa588b9d14a4e6a7823800d8a9334ff7456e75aabb81408b791c9c6bc3b5829c1ab241e8d310bb7b15a5b24123a2c691ef1b5dd80640a7b94892aa1ad7300797a3de52a66c794426230640b303e71f0b93654708bd81f706b0f71757c08fcc591525bb6c9a57777bf1bda0d81b4922a56586d21b04daa2684e14ee8c0cd542824205b2bac3c1232f2bd37109d621a25cf570573465a706583da17c39ff3ad13826b6d5988158a1602a361d7a2f86a9219450ff713e184c0f6ea4146b79b03e5ee3454a79f +private_key: 1fe26897d8a471a69851d6bc3e69088da81dd3534ab410b3a3f55c8cf805341651896a61c919668c97b2db572d15b2799236545a4675d37c1ae6d96a8f640cdac13c66c98e849abaef549ab109085f0190bb5315aad870867630e41133087888231a08be1baffbc0a74cfb84f24ca020c401d79a6e615604fb1bc80b2410a0e9b251ac2714011702717f6ffb2e1a7a3ddab5acf7d3211091471fa02f0838cc14d281850465a6a51e2cb6a5aa8a9560461ab67338b30c43eb49bd5221c26d366b21db0e6f4194edd60ad499052b192c2202b6c7962e6541a8e124410bf0b4ce9964dfb153576960b1ac01966552f8230cb3fb267f57650c783f6765c4c396a864d1762df70ff2f67165a6bae7e8b6c20a63a3668b7fd76160dc0cefd968ceabc3827cb2fc191df6e1472f27015c65a222b0a007a33993ac3270ec3aafe4c869ea2985088269323829bc0304d0c21569a3a14095939224a40c9922f77bc59734b58385be242cc8329fd9a4117e38a72019301bf8c55082186b84724d541529c79d8dc1a54b2cc3b3512bac4127f683b5fb1ccf6d10539eab9c8ab4b875733a903acae2b725854934b4b28f09e966e8e987077076ba508432f02f17322cded648b206020f94171d8b82b413b7cb3573197c83c50b1387eb6caed48c26e33d8cac079fa55ad0c83fb7c045d640482c805b5845ba5a3767098c7058e43542f19e74d9758a025b008440b07a19a9fa9b24b8a4550a8a925bac6f60476ca877a459b60e285feb8a86458029cc31c3643a1949208491ec529e566d9e2b1118086cac7252740098fcd318f2b319a89ab1ea4657f06a5034ea2e4e2a9db6f06304fc27d6002f6ddcb487777d18b7c8994cbb1305a516383667c29a8144be189697e36b068b2b6e2556794e53526388ba53e10acc0373926898fbf1136420c50c01d063b7ba87233b312792b031ac0d8668afb43ef651495663263ccb99e03540015c0a9eb7b88bc888877a766f15c0f28b947aab9d74c212f80c78a6bccc9ec78c97bb5242e25790305b9c222373536c481137ffe5b9903196c85c4ea7620b854170aef2173e69af57ec93aa20168bb679140a4bb668719d8773a1c7bca0415e645006bdf7967ffb55717199dca172f70976a9f1ce41db56e088676377acecc04f7be426a57c71efa95fea2366562b61945a56e7502782c41e7ef46bc4427acaab204a8a8bd78c05471301ca4134d727bb025411e9836d14b2c7117b4e135401348697c0c66a8ac13476d67791247d97d34657514fc5829dede57c05a6404d8044dc2aa84a26bafe9bce4c1aaa8de6a43c007cc1f203d814ca06f0a4643c2b5a650e2061c1a5b7cb30684dcdab80ef3c03eb2a6a52b0c531305486a03c95aa0473a3cd7fa9861c8a9feff0c15e66094639ae7db30863a35730db258bc69b7cbb915918ce42b873c944a7907b7bc014357ae981861c36a1600050e019711360a4e227f5fa7cd54742e111028372057e982e4be277a2728b4e381333902eea825b943128b897c74c109475b3a70312c1830c7ccad8a6f60020149a2a4b843d19daaf10d426a074711b35cbbda9797ab756de92bedb7bb19ba174f7ab74aaf115cdaaab7d09c8e078c4a3954f40a2697092bbe4460f27c4ce6886628382606f395b55d1a29939a2f754a0b82968d3c865f30066c5e21e3e2839416570f5b54f24d347e2e10169571a3935307a4918b5d68ddfea58a90382e70012911729238a4919a7531242228995215fcc96ce8c1970faa902f79c7a7207a93613de0066c384786f5913b24040e6b4b48b6b679e5538f953540c25c18402be1c58762fe8bcee6a1e58d93b21165f95895afefba1f735b11fb7bbfcb40d3d54ba24ca7ef507973aab9017b66a3e271f980462752137d9ab0d1937226129bf48f68b700021b2fabe81573e49fc17819bbe46858b5c58b4ca7c83a57398a667b09c681b990b648e96ce79b72104b13e97611ee8528c9f64c376eb04925ba46d3c8ab859304ce17b9435309726045de17d8a7cae32aa9c80e1aa4058cff89010dfe22daf0a002a905f945accd2f9225739aff1863006b46f9ecba5243bc48ed1184bb9a57ae26c8cda147cacbb4a031112279dbe727fa6c467ead943269ab1e3c9657c19ba0b648c9d4a48c6163a0a79954c0c7ec63529cb8a65c851c39840bb1a7c584104016f16b43da179189343c3276bfeb5839d6622e684b421526d69517ad57b67494bca6db58cf6c95266170ddd9455a6867de052adc8909790659fa0dc0a1d011487b16a1e08bc82b22aa9444f123632ec889719e754993ac8319a72ee83a988a2c77d28acd4bb5ebc486c33b0af1d67a84a349480fbb2b0b252e8749401d8488df52356a75ba2883090dcb757451c9956888b43806431bf9ed956e34806bafc15fcb1cf2b45729eea12a6580c6d1c366a76187fc20fae7657f560973838abaa510fad13c59c5baf4773188859809d1bcdba937845759c9af40dd2f14bd7dc48028a77ff4165f2204fb3b0b9f585061616ca4fc405a0c8533c344334e511053a548ee86998e9094863b8bdc02aaf6bbc916481ac9337acbac10d90794ec239268aa376157b1955379d30c2cb4927a8077cba969ac398bc8521450efcc7e1cc617e69a66fd16b771a2497d14e35a61919dc129844379a314821c333a2f4443651a4cff234a3dcabad32610f5b54d138065d8a5a81fc5068c5060af125265cbc42c580f47b9fbda72a893329999958b026c5661ba116346ccd86633e0a603b48c8acab78662162a9f11c4349c5235a5ac46546b16b25e355b4408456f7339122b67bb48334836214e431955e979244c8c7864ba189eb24c818c15417cac84682f719c9bdd8479be5c643d937605383c6a9514118498d5b4e81d5b74a063fb53cc19a20a9cfa26e479339b988c40918c192435db1a3b2a7c6046376b97aca7a9bbb30335a0e8fd237f8833e89e41a1c67b8aa9b0d539486b1855b9fbb53b5103ab2d19606165acaa588b9d14a4e6a7823800d8a9334ff7456e75aabb81408b791c9c6bc3b5829c1ab241e8d310bb7b15a5b24123a2c691ef1b5dd80640a7b94892aa1ad7300797a3de52a66c794426230640b303e71f0b93654708bd81f706b0f71757c08fcc591525bb6c9a57777bf1bda0d81b4922a56586d21b04daa2684e14ee8c0cd542824205b2bac3c1232f2bd37109d621a25cf570573465a706583da17c39ff3ad13826b6d5988158a1602a361d7a2f86a9219450ff713e184c0f6ea4146b79b03e5ee3454a79f7fe853da745a27a1462668bb66c4348b7f4bf25c70527b360b2fd104cda48fe520a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01 + +# Official test vector 50, seed: "027c3d5847ed4470931141104f25b19ae76117cbb64b224ee424ffb782e9a0e988839e0bded0df666fe8e5fcbb5dbc09" +seed: 2d5df64d62cb07fe630310bb801c658dbf3d97993e68626745de39d37fbfc2b27b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 +public_key: a4163313f3cf10a65afbe14a738352fd20b1931827758905dc32c20cf8adf6c081009ca396f270b23a5f26117862a13cb00b65f5a2850e8252053255b8232626b5bdcfe44e95c0b7b5b09802165b5310122a434c5456136cb3a77c3c7c23fc61271550cf15122fea612600aa722c8646a6760ee18ad6028850fa36b82156c09429fa188db2ec3dc229a78f92112b4357d3681aeb19779f1785195b65469c6d3af60ff063562817c4587225a10c8e9fd56c4353711f287469b87cb533b99df46bfbca625c4601aa86459b27778c7200f6a12ac8e8bc078231a37c87400a7429c476ddf7516fa4b7e27841abacceb3c24e92158eb168cd3dfc48ade061b2c02c33b2a33b59ac45a77a439371f3683aeb6a18b107bc34e7785e4146b3f668d9565cb32a23bea6af6daaae79b39a8f725e61f1355c6965d0ba0cf8da22ace189cfd0652213501b3b5f791061ca929e2fd057f357bfaa4047c28577d2105be1616044a6383ff9a087f4754926338e486cc3e76511c7946a02893d058f7100c98bf0af514a47a7630e6e2564b5459d3b52bac6884fc32c7961a34df387ab85c07965786d6bb731af75742147304a5cac936797ba658fdb88c1939c78565914ddb0334fa291fa3182e31a36d6c159ac637a0d3a37098569a009911f54b13efc46e403ba4bf0bf59499cac06c848754903a7b8a1b7549a13b2de5a2cb106a21a3a58d1d71ba30700d74243b1030258294ee022037ff9c7e752cf0fc60f582b6310d4637309ccaa3940e6617b72c0b0217924febb6f971a56a979212a452796a217909547598330557a9309161fbf7c59004d7b3a88a2c3066534153d99ac87dc5918401b860c1b4d5e763440389290d2b656c97cb9784b201a90553acceaca0f22b17852f391ded7094225053f88b6578678f178067ac944f1fb6c2e99abd946953a49b059babeae527408f520844323d9496e51e88f0899857a07b8bf8586ac7a8d13579ca934161d10c08e3b400f084cbe9c6f21e29523c41bac2187b7470f752b55addc6250c08338bac7fd0879620023899041576191b502c736115e65977de34c740c75a5c5f54ae4fa07a2943a7f5a3b8018461445c3ce938579680b68fab41ea2bb26e40eeb13ac84fc3a38b78dd66186558426cf59a1dd4958427bbcbbc13037c577b0e0551238a67f596cd0a2627965216bf733fe88718d64725ffa4b6e73077a37a4585159c887b2a2f5077d1b457c06102cdab7a0e5752263cacf7914ddf836b0e1a95ac4b941388bf7c5bd62f616726100f448001e1c6e4100bbb922b265942bcf37966a5b61ba4957dd02c484413084985d5b22b37964b5f66c11b27c25af757f08cb8ba3b3115a6839483454239bb9d0a1b6b1bcbba5060c3ae47fd0476107919281a508e0606b4ab51ae12b0866c21ca994817b87244ae55222c0807b02581856936ec0ca25e08c7e604e1f1379914702a9e209d7796ca44879a363cce71a0d9850c8ae8596e9b7157a71052602cdbf1c2ba113341fb8b612f114a82c6bb106c703603eddf80ed634be616884b9f2bb271240ab48126a40cf7c0958e0c5bb4f73185cb41dca542888720f8f930a66a66bb9c79acda38a22249f5240a5db0067a23151a6f02abac2477574d9b5d49ed6c25fc46576ca327d614492eebb +private_key: 6206ad862474f8463a601909e145bb7b68c12772311f5474c295a7bcb93ee331a5a891cce2a69af9e0820fc9ab484a6ca985090035970a587e860126801a87342cb627e769fb9badf4c075aa78cbb127ab20f34d22cc4299abafae49812a5190b95182eb635e844a5111490d754c0674c7a39d8b3323cb1bfd04a0430893b013555d253aa2739ab64808ee6c6b59572f40e3c1e42224c3b20648513172a7895a52b633f63292c04f3e61b25d064ed4834f854c932a897b7f093cc4ac98a22366b184480ba746968523c91a8a0e0980aa8a1d1dd3401966b27b7838ba246ea90432cd723793271cfbb4719e60912df891d7e4a9a63781e8b1bafb40431866ad153bc067d871ed8bb096152bfc1b731153711bb40876e835033861cf981b4de14c24f2542f84c94ea39cd757ac011c8fc5785a9021626f476df9cb687894582348c0ce00af7cd3bb01685f5cd73304011e1b989b1a509660301217130302705c4fb868c1123e0cd633514b4648a347557a9147f44ce88bcf8db4c8e18c826d34ac25c7b5582b3d1d552f2ae28174d0a84b5605d909a6051258d11a941378377f457700e2c8b3901ec33710d179639ae04d661aaa9b3caae38972dd5075d7ca40ff783bf79c1ff4e4ba037c16e3839b76b88ede1779d025841072cb21520f18ecb6e0c9bfdc0379ffa6c074a12c9482ae39b3b51c1c7d02b72d3b844e4d80a8ca3663dc7016e49b0fd686ce826205e463bc164b59bab5cb2ba3b973f7750e61a8697bb1368bcc98aa3d670b7943d7ae89e64f006783e8b67d0142bfdbe4a335a564357202d57566a8d97ae750bd61021cfc9b4fcfaa38f7b6cb55ca53f16b0edfb36ffc1bc4c347c9deb19e75873f2b41613b98c73d346e0ae0aedc0a5154342afa6a1872a73e1ef77f5d34b49f369c4529587c391fe885b0c50ca38f7227adc980df096254374553672992f84e7fc55712a1234fda91c4eb8172128e5c012d75e4ccb0b440afd1787f3a26e0230fe8a35a5c76515e4c4c6b335e60a0b417cc43109c45e6ba639a84377c204adffc0736144d43a005bd35434737c301ec15564b00ff6b8f8b83bf2d99b72a71419b83a39bc3a637276125e9037dd4741f515a41e71dfb75c94e29339a235107f3564e939828ca499986230312caf91045fd6363c9dbb7a822027fba5607dc12b4f19257e1c8832b95b537583fa6642593122eb2c0a25334da883160b9cdaf4776ff14cbe2aa7d28bc271ca7985c1b1f9324042272c1590b737b5963b8894d58670e535775e7c3bea20628b3292a43407cde31b0718678be28b05c11811e1b0016c456d63163549522ea65673e188a27a39783119d70106e9f35b437aa65cc685ae0a200a3b225516b9fd0f4687f3485cec27a7be012766ab18783cc77274c6487bd0ac369ca29a05aa0cd5ff8ac68e7b582392800fcc4ada35e2974bb1da5254ef6af37e487100b4500f82f5c76a14542c9198ac57d699f26005c37b94e7faa5ebd5c62f562351b58bdcfc15199849b33a1be9afb67cdfcb4a201a29c3b61274349f82916c9dbb38a206d81dc5036c51f70293dd51562cee893fc80b7e0abcd5a625470436af7cb7c3cb76309490df6254297f2bda4163313f3cf10a65afbe14a738352fd20b1931827758905dc32c20cf8adf6c081009ca396f270b23a5f26117862a13cb00b65f5a2850e8252053255b8232626b5bdcfe44e95c0b7b5b09802165b5310122a434c5456136cb3a77c3c7c23fc61271550cf15122fea612600aa722c8646a6760ee18ad6028850fa36b82156c09429fa188db2ec3dc229a78f92112b4357d3681aeb19779f1785195b65469c6d3af60ff063562817c4587225a10c8e9fd56c4353711f287469b87cb533b99df46bfbca625c4601aa86459b27778c7200f6a12ac8e8bc078231a37c87400a7429c476ddf7516fa4b7e27841abacceb3c24e92158eb168cd3dfc48ade061b2c02c33b2a33b59ac45a77a439371f3683aeb6a18b107bc34e7785e4146b3f668d9565cb32a23bea6af6daaae79b39a8f725e61f1355c6965d0ba0cf8da22ace189cfd0652213501b3b5f791061ca929e2fd057f357bfaa4047c28577d2105be1616044a6383ff9a087f4754926338e486cc3e76511c7946a02893d058f7100c98bf0af514a47a7630e6e2564b5459d3b52bac6884fc32c7961a34df387ab85c07965786d6bb731af75742147304a5cac936797ba658fdb88c1939c78565914ddb0334fa291fa3182e31a36d6c159ac637a0d3a37098569a009911f54b13efc46e403ba4bf0bf59499cac06c848754903a7b8a1b7549a13b2de5a2cb106a21a3a58d1d71ba30700d74243b1030258294ee022037ff9c7e752cf0fc60f582b6310d4637309ccaa3940e6617b72c0b0217924febb6f971a56a979212a452796a217909547598330557a9309161fbf7c59004d7b3a88a2c3066534153d99ac87dc5918401b860c1b4d5e763440389290d2b656c97cb9784b201a90553acceaca0f22b17852f391ded7094225053f88b6578678f178067ac944f1fb6c2e99abd946953a49b059babeae527408f520844323d9496e51e88f0899857a07b8bf8586ac7a8d13579ca934161d10c08e3b400f084cbe9c6f21e29523c41bac2187b7470f752b55addc6250c08338bac7fd0879620023899041576191b502c736115e65977de34c740c75a5c5f54ae4fa07a2943a7f5a3b8018461445c3ce938579680b68fab41ea2bb26e40eeb13ac84fc3a38b78dd66186558426cf59a1dd4958427bbcbbc13037c577b0e0551238a67f596cd0a2627965216bf733fe88718d64725ffa4b6e73077a37a4585159c887b2a2f5077d1b457c06102cdab7a0e5752263cacf7914ddf836b0e1a95ac4b941388bf7c5bd62f616726100f448001e1c6e4100bbb922b265942bcf37966a5b61ba4957dd02c484413084985d5b22b37964b5f66c11b27c25af757f08cb8ba3b3115a6839483454239bb9d0a1b6b1bcbba5060c3ae47fd0476107919281a508e0606b4ab51ae12b0866c21ca994817b87244ae55222c0807b02581856936ec0ca25e08c7e604e1f1379914702a9e209d7796ca44879a363cce71a0d9850c8ae8596e9b7157a71052602cdbf1c2ba113341fb8b612f114a82c6bb106c703603eddf80ed634be616884b9f2bb271240ab48126a40cf7c0958e0c5bb4f73185cb41dca542888720f8f930a66a66bb9c79acda38a22249f5240a5db0067a23151a6f02abac2477574d9b5d49ed6c25fc46576ca327d614492eebb65297f711f12a5ff123e6de59d1f16878e93a31612015fb961bc572f3e999cea7b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9 + +# Official test vector 51, seed: "450751d4401737459c6d93e6c5f2fbcc4a3af7cd7250ccf404bbb817a67bab7b4c9d0ef4570bfe25cf919da331c31d88" +seed: 25056d1b8113bb362dd979d98643d7a7ac9c4f95994c0ba060609b6d07002ff3f48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 +public_key: 25b2ce04e31b6f647abde39d7b1cb988c37f2ab219c67839064481c2539f7c947a5187a850f61ba075a002e4621ebc290855c9e75818e3a99da9e50522976372ea0e6e201f8cf3c49e4a86c503c38ab764b2f45bfd1718f6b5c0d2e66181045be2a2a8a1e10becb8a6bae9569f42654187a9d9b24c8214abf933063526804d0998b89c884b1055a56cae82557455f3a47c677e8e262fe9569aca0c5b1c0cbbf768302099a4cf3960f9d432a0865031e2b65ddaa43e00aae05aa39152256061021669b8f2ba6bb31045e7e539830095216a846aa39d5b16bf69e152aa227c61287137e2b29d3931c6211510ea33325b2ecd20a1bbab9d30a7ad9bf83e3058520606641dd23b092831d29022542513070c8626a42386c8177c7bc1ffe5754ef5b3a2c41f91f1463b7b068816b058da287b4ac2ad82191d061630337d296a08a02030174a219c143224b4b1aa1324feb23e7d52ccdc757929342ebcc02c9a080aaff12763894928a16c1f7830d7dcb2ebd77837d97011001d83f3512f9578efac3ce1c0a17da13b375c44ac8c32e616aef48339c19a4f379c216feb9672c20d78262fa99887f92324bf667502517cd42b340b51ac0d0c71c2ca5d357554eed04c1206baee66707b10bf52a424fc7567ca023b605a0e160aba5be5aff753983b19938205188fb87a867b6cea58112a3323c2ec23a92a1c16b48f8cc7bc55c5b18a33b67580cd9383275e7b53d053aed3f41f1a74859f3536a3c07832d4b64d6a9bd591c4a1901c46490efd73c9aaec1466528bfda0af55fb7a28f4af2c332de8024f87567e1ef87dbf3061ad29490c658b8367b0b911ba3c3c91e48189c8bb1cf3a229146cb537958bc1b427add62348ba0b54718753acb2ec3a0783c58c8b6b1023580a3417cc08745feb9b3f19397fda09002cb019be30a8d3781c936847d5c7c5a8e9a7b5d8c18bc5877ed4a8d787a7b11a0464440da596a4250308398aa9cd482e0f685703058987b63e21c530b3b5367654bc30b86fe6f0645e328714fbcc0f666bb8eb28d7279339f622cb89b813c72dcf5944ecf68e4ce422744abe30261ed3e127118cbdc1d224e538b48d441359d673470978bd4b5913b6cf557760389b3f6991344d4b622c7a332239a50626ce553a6e0677bdeea96a3efa72931b6921a23be5cbba9f51166be80a542b5f341866f78225d50a608e95bdbaf02a599b7a2441537f5124b0d5150a19a7de9ac2de2460b80884512c970e7c700aa259982bbda59773c415844b272dc45807f9d641c9443717c61bf9fa9201568868655e0f791910b5077cb77a93e40b85211f9953014d953fd3f8780189840af9ae60da1fc6c48d19d88dfc689a8421c28f569bfc5184ed6a66a50202bcb51425202b6428187f0c7a92d2ad1e7a35d3bc7f7d7664cfe9765d217f766a3c068149964b7c9bdb328a7821a9646ad53a8bded2912c3c714ec81190c966c703a5b9b6bc74c89e2e0635d614624c5371efc4099c00576d05aa5552b862455fd14641e1e80f4b468cfca6cc37e032079617c6cc3c7cc68bc8fbb3329c9e28c1caa811cd6b8bcde9ab6ddfcc98f9534f3d7aaff2a508b3237070c39e22b43a424b2af4ea59c9920d24d6cda3885cad8cbc7a2e3b82554fefde1a383c558139f9e1808c824829ab0e +private_key: a8a66e47b025073a79d8e2817c64306dfb4da1390d93060be758ac111030fc2c3bf6147c63981ce6399f31e5941f65b96c13c9b09a0ee6a08c9171ab262a400a926a628b8ccb307f9bdc7eaa06424c071bc7105637e90421eb1c8db616ceb2972ae38cae319c3b181686a9adbea05305b258a2a2a965630beb687fb2f47b9a4a770d1370781b2526ca326261cdee50ca3ee802a9d5b8e1944b67fb4db24753756b9eb4289e81f1cdb1684c00c58c9977892eb7ca78b205678a352d3a7592e3970a124c9aec88b521bc26a368db678a45682d4208b9e1b099c5cb30506371c8a44b2113931e1bc1fd88a43c91b650c312c733c913835f7118b898a27b7a4a75f927a03fd914ce627d9e156b8153584f12b753e62a7148bb83f83f474985701c6d051110cf270da672a5cc72c85f560aa7b91d99539224159466387de5d39f9254b46735a0c30ac40f2b1a180a8ee30bacbd09cb45d52a4bb8336c269a78746f6a337f44604de7b76690d23e71fa307c315c377555dce8b26a945baf1225df553f518aa453b823fb618daee2aa5cf0a60414af7cf39aefa3a2fa2944d139869ffa51dc115e2ffaa1abc7438b776a7b2a869d03b05aa0238903008372a3975c36d8d6067caa75152a0305b6614c3815a589a332a860a0d1c6ebe2ad2d68b7bfa1687242960f8b8ddfab9b3e851d4d814c94371b4c9b26c3838eadf70daa5abb4952b01a44cf5426b28b4c8c2f66bca49a21e5763501708ac050b1f8d81b4bd0c0a0e5c171372c877c31882005d65580da2b33165b87eebca160c50ee970b8e1567c9ae1132b65a6bd414117eb4d2a458520a55876f17941f38045b117ce004c299208220c16d10c70124529ac8a10980cb481d069bf0319bd990e34b31ccfe87d3252bf51c2687b234246943b248104baa9ba21015ffc92877d550f5e0148c36bca544c1b1f613afed6aad1132a91aa823b1accccc3bd43b94c47b902ceea431abc8ee15aa32c1b3da6a605b0b5b8ca905c7492a9bf137f2805133275bd3cd98cd5453943058a668456e9a334302c5872307ae5db01de5b4808d477eed39efc00335f31116653cee8f81b6f147d4dd9cccb080c2dbba75b5310c0348ff8ac88e09895422c371358b248509df2d46089a5514f919ff271cb44bb70fb61bb2ed88f6d111dd8b38e155103955836be3812bb255da8db97da862c5a2491892251280c6c9dc779124c08947251f3574d3a5998f8ac8c68881927733fa59816c6aaa629d7893a3313a327a9e2401ffa5c8436f289e167ce68f4a4d232c84c23133d4b7f9b43b7e7ac8060d9bda7d11aa648add452423d91a0c7b3702da16bfed820c0f1420a842a04759f4dd336b1858d0af93b81548f2c8cc8ef064bc554b1cc6cce84968f8bf991649b59f5ab51a6e56375716e1d3074c5849e28f961d75b6f33275819342467e69498a713caec4e78f9b6c1ca774b026703167270e14b4209a9b5353cf6949eaf5c947b458038ab9761f6bcba06785852b78b050d83d70b5c845cce62cca1d8723b472907d6c8482224f10318219c42ee848425787640636a7eeb651e2a2bb5207928a68f65a6318743bf7b43c223549590463ac38acfed84aea13a9025b2ce04e31b6f647abde39d7b1cb988c37f2ab219c67839064481c2539f7c947a5187a850f61ba075a002e4621ebc290855c9e75818e3a99da9e50522976372ea0e6e201f8cf3c49e4a86c503c38ab764b2f45bfd1718f6b5c0d2e66181045be2a2a8a1e10becb8a6bae9569f42654187a9d9b24c8214abf933063526804d0998b89c884b1055a56cae82557455f3a47c677e8e262fe9569aca0c5b1c0cbbf768302099a4cf3960f9d432a0865031e2b65ddaa43e00aae05aa39152256061021669b8f2ba6bb31045e7e539830095216a846aa39d5b16bf69e152aa227c61287137e2b29d3931c6211510ea33325b2ecd20a1bbab9d30a7ad9bf83e3058520606641dd23b092831d29022542513070c8626a42386c8177c7bc1ffe5754ef5b3a2c41f91f1463b7b068816b058da287b4ac2ad82191d061630337d296a08a02030174a219c143224b4b1aa1324feb23e7d52ccdc757929342ebcc02c9a080aaff12763894928a16c1f7830d7dcb2ebd77837d97011001d83f3512f9578efac3ce1c0a17da13b375c44ac8c32e616aef48339c19a4f379c216feb9672c20d78262fa99887f92324bf667502517cd42b340b51ac0d0c71c2ca5d357554eed04c1206baee66707b10bf52a424fc7567ca023b605a0e160aba5be5aff753983b19938205188fb87a867b6cea58112a3323c2ec23a92a1c16b48f8cc7bc55c5b18a33b67580cd9383275e7b53d053aed3f41f1a74859f3536a3c07832d4b64d6a9bd591c4a1901c46490efd73c9aaec1466528bfda0af55fb7a28f4af2c332de8024f87567e1ef87dbf3061ad29490c658b8367b0b911ba3c3c91e48189c8bb1cf3a229146cb537958bc1b427add62348ba0b54718753acb2ec3a0783c58c8b6b1023580a3417cc08745feb9b3f19397fda09002cb019be30a8d3781c936847d5c7c5a8e9a7b5d8c18bc5877ed4a8d787a7b11a0464440da596a4250308398aa9cd482e0f685703058987b63e21c530b3b5367654bc30b86fe6f0645e328714fbcc0f666bb8eb28d7279339f622cb89b813c72dcf5944ecf68e4ce422744abe30261ed3e127118cbdc1d224e538b48d441359d673470978bd4b5913b6cf557760389b3f6991344d4b622c7a332239a50626ce553a6e0677bdeea96a3efa72931b6921a23be5cbba9f51166be80a542b5f341866f78225d50a608e95bdbaf02a599b7a2441537f5124b0d5150a19a7de9ac2de2460b80884512c970e7c700aa259982bbda59773c415844b272dc45807f9d641c9443717c61bf9fa9201568868655e0f791910b5077cb77a93e40b85211f9953014d953fd3f8780189840af9ae60da1fc6c48d19d88dfc689a8421c28f569bfc5184ed6a66a50202bcb51425202b6428187f0c7a92d2ad1e7a35d3bc7f7d7664cfe9765d217f766a3c068149964b7c9bdb328a7821a9646ad53a8bded2912c3c714ec81190c966c703a5b9b6bc74c89e2e0635d614624c5371efc4099c00576d05aa5552b862455fd14641e1e80f4b468cfca6cc37e032079617c6cc3c7cc68bc8fbb3329c9e28c1caa811cd6b8bcde9ab6ddfcc98f9534f3d7aaff2a508b3237070c39e22b43a424b2af4ea59c9920d24d6cda3885cad8cbc7a2e3b82554fefde1a383c558139f9e1808c824829ab0e51634cb33a2bc3fc22ff47b58d7879d703bdd661ad3c290a6d812485ef0ce8fff48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451 + +# Official test vector 52, seed: "5de720f2d152bf4e1f96a61e7ae5f1bed6b8548e32638c2ccec9f43b87d1bb43dfcf334f0582984d27e440d519ab662f" +seed: e4d34e12982aeeb1d62fd488d9b9e28557ed3429292239fb4f76fa9098009acae6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b +public_key: d9f945a651693bcbb0c7a385928129f004263fa16bef92ae400780966a8ae8750e574947cf6a607fa4b3d252c77cd9925ff3a89e762378ebabe4c413af52cf969068d86acb44683222f93bc50bc8f7058def77a3241173222359d25c3a87c817461210c6e4c30d4a428bea8b2d459c4d9c71594c597fb9c3bd17598afa098329bdd15b1c23222f0f39189fa06319bbac7d6866ed7953a2c933b3479235790942d6146a818edfd64227e78bb47168709bc5e490291234929206a3fa1c2ec9359888641d61897927f0440929294439095db0244a05c20f9678b69ca13268622d174a915a210b8908328b162454c1c0c3c36b8acfe4ba2c38e0279ac15898f393f01468eb23a8db1567ede8b493608d3194b2f2f82e91e739479c35a59267a1c84fcc5a1ac12289b3e5845d0c8e9969bba50211ee716774ea03514c3b7359892bd4b8d9db4fd006af53961687e5b0d0fb9e16fcb3764b1b0271b9803019048048cab04e60119c8a140b401cc8c5f5770863b066429e71c8ac3751536dd3cbf4e775c7778c15920849d4b1c1b6ca9ac63d3de47cda549ed009b4ee7759fdd66eb5555b199022846671b1a819aa732a23e6bbd27605b1fb22b1aa71408b2e55bb651c1a676e13a8e9cba2b65b246b6683ab20820ff40eab949eb219851a7c2e1bc1a4cb7b06cf526bff6b1ecb4b5ae4d05dfec33de9504d2eaa4538dc9b9bb39b051ab7d2239ae0b98a34f55474871cf9059e9bf463dda3895e32c27a534737677e40527313ec993144841bc756e9222d756c3c22e56ceaf336e107c3aeec9b1dc71131271392b4a4436a14292aa0e24957534856e30ccff827cb3fdb31aaa086298c59ab71278885308803591513870867a018e61d2705b48210240739ade4c7100210bbbcb524966a9123aac92cd711f5da3b5b614eefdbc39bb36cddf47ecb196840ac84a6c721f1fa2f031c022844a64c4433f414a707992200b857ada964d17c6ceef31186c248adbc83ca2a528738ac567c4c8afbaf8ba57b3f42700dfb8c563b5e494c6679e69acae47a9bb14c79396bfa2593d63224e29cabdd0991101496a0380ac19b759cb0220517aded8371ce74667dc827c1141a233709fc47bd5ea6664c0b6c2182aa9a088df3c92bb5e6047c7b03bd9c4347db41efecb80fbbac90662c0d56b8f91b3f3b7b3417d592994771ec3695e94cc3ac73747f279984b7350ed9b9400201ed35b785f0629225af64b05bb5b6016ea50a8689c9ceaaa234748400db67ef9514e7ba63c683b4f5f6b35869586f0058ba7b9c4bac500a0034bce3b2bda7c5fd5c8ad37c6466a9b877278b7773ac79809222f80eef341236053ad1d0c95862796a9702fd977e820420d611c66163c5cd6c5fdabab7ec96a51bb24328617e375367ee616ecdb46089c6604909d055033d53d828c7f8cd6de0823022babcf521aaa67959c1881161620e397b0a25682cbc805a96a84bb84a9a99acfb6012e2ecc2e5bc1518036e40dbc3347caba399178ca912eb8367c86070833137d1bca5b5b3186ad23c2e76a4cc467d092102ba081494bc7f963a9a6ae575d2c57a38371be5b164adf29f392014d11522535b0173126bfb82721e153e74049c1e170144484dddc2716b4c487aa0398ee9ccd2804df58fab8e2d32ac05bf22a8 +private_key: a3854bbdf04e2f617b377ba9d5c1652f27b377bc73f4828fd485afb4c2a7ef05a02b1a1f06a707d68799ba1094f1208e52c9c44ec15580c6599cb244cd2617714c7ea5b07648f91d2230bf35a6910371289dbb7a6329436c4ba502c83633b64f99cc16f6c641ff62254c65511584cbe208a080495762eab49d57253063a50fb45f61544d6ad39a4a0003c4e05d193a59efa80949e1400643962e896c0c9a0c2af30e586c0821388292768538137195009d907853aab7459925498cca238419977c36bbfd326acb9832afd3b46d934255a10a0aa0932a7abff1402da645c0d2cba5d03abc21e0c09f9ca9f28032207a707b21619f7521b9a228386c29a89c53c38b8bd2db9fa4fbabd79421551b6f4e1c489c0a3692e695c73b6f04bbb2be72516ebb523ad794e9101b4cc6b7b16c5f7c2a8e41aabcdddb3f070a5de22a52b80165b3c6872f279ff87ba6eea982bb741a768640d70797724841699c45ab10a522b74c53e55a8a8968afd6ba69bb39eb4489e47343f807424ebb8b4ac8097f43b2bab8cc37990ca185a19c9c6b28dbbdb7822517670ca050ba28d724176a7a3e887bb47bc4dd648b41cbc6b52656405ca5f4e7cb06e64477b2806fa3b52afb3533034cf4772e4a383563aa5a057a6738338f92d9070ec94ab05489e278bc6688a98c2ab7a18ab86397631751c47df75ba27a801497517845b99c0b692afb31c95a78f96267cbec760743cf92140f1ed46f1cd5840d13ce1df028238c941c6044511592d2520188e86690707092eabbe9505cfba46b710b642ff2a87fe7a3d5431773378e5efb378e627058000b4921ab6e6368677492b2eb2ee219ce2e6633286b73863451ca01cbcfa570b806b5d2d5a2fc237c44d0a84c0ac097b8b299446c63a47f2c93a87c95c4b02a3d160bce70125c9073ca35f663e0ec64a189565460b8da009778a8324de7211d072522476418a6c33c17046177359f9bbe5fe72d2ca483bab4bcc05440fcfa67c17c326331b65a04acf68c1ae870208f41c66057c3483c8b2870a3308bb90a5ca085ea8c15891a39a0ac3b09297c99320568504b4284a035be76380e368018394a66be5b2f45dc3ddbe6179ad60860123d55b28d270ba24cc0a49aa5a30bca256d7148ef466b468c06ccc8c2ce439e75953c07013999ab77532b13c9e477905997ffa42f6b28c90f9471ff6b2477e7b311b34c89277803747257791a7325cee25246f656cbf57391037a3e90d74729b16b1a5175eca2871ebc7e4994b3759089e215933144909991550cd812f8f29658852ec11b3b604aa07e47c5db88c98143467ab358db51b5372124af9c983e542e74ba6f273943a646065e603f11395d92ca09f1771adc29c6bc202a9ac159ef356d3934a3a9c073ad459e1de4bb1d81ba30143302013d7043776db346d2239dcc81305386628a2c1b364ccc606804604669ada153ce5a7e6367838a6cbc8971ca750342170509e4124c09846314185387ec47a501a0c5243adb14c39c1105938292f09aa117a5bfb4649f8705696097466f25b32c4a382c877d82d31abdd6b364b936f617b532b29c837a375846bc44635c8d55a5e5dbb44315090602830ad70b50a1cfb92723d9f945a651693bcbb0c7a385928129f004263fa16bef92ae400780966a8ae8750e574947cf6a607fa4b3d252c77cd9925ff3a89e762378ebabe4c413af52cf969068d86acb44683222f93bc50bc8f7058def77a3241173222359d25c3a87c817461210c6e4c30d4a428bea8b2d459c4d9c71594c597fb9c3bd17598afa098329bdd15b1c23222f0f39189fa06319bbac7d6866ed7953a2c933b3479235790942d6146a818edfd64227e78bb47168709bc5e490291234929206a3fa1c2ec9359888641d61897927f0440929294439095db0244a05c20f9678b69ca13268622d174a915a210b8908328b162454c1c0c3c36b8acfe4ba2c38e0279ac15898f393f01468eb23a8db1567ede8b493608d3194b2f2f82e91e739479c35a59267a1c84fcc5a1ac12289b3e5845d0c8e9969bba50211ee716774ea03514c3b7359892bd4b8d9db4fd006af53961687e5b0d0fb9e16fcb3764b1b0271b9803019048048cab04e60119c8a140b401cc8c5f5770863b066429e71c8ac3751536dd3cbf4e775c7778c15920849d4b1c1b6ca9ac63d3de47cda549ed009b4ee7759fdd66eb5555b199022846671b1a819aa732a23e6bbd27605b1fb22b1aa71408b2e55bb651c1a676e13a8e9cba2b65b246b6683ab20820ff40eab949eb219851a7c2e1bc1a4cb7b06cf526bff6b1ecb4b5ae4d05dfec33de9504d2eaa4538dc9b9bb39b051ab7d2239ae0b98a34f55474871cf9059e9bf463dda3895e32c27a534737677e40527313ec993144841bc756e9222d756c3c22e56ceaf336e107c3aeec9b1dc71131271392b4a4436a14292aa0e24957534856e30ccff827cb3fdb31aaa086298c59ab71278885308803591513870867a018e61d2705b48210240739ade4c7100210bbbcb524966a9123aac92cd711f5da3b5b614eefdbc39bb36cddf47ecb196840ac84a6c721f1fa2f031c022844a64c4433f414a707992200b857ada964d17c6ceef31186c248adbc83ca2a528738ac567c4c8afbaf8ba57b3f42700dfb8c563b5e494c6679e69acae47a9bb14c79396bfa2593d63224e29cabdd0991101496a0380ac19b759cb0220517aded8371ce74667dc827c1141a233709fc47bd5ea6664c0b6c2182aa9a088df3c92bb5e6047c7b03bd9c4347db41efecb80fbbac90662c0d56b8f91b3f3b7b3417d592994771ec3695e94cc3ac73747f279984b7350ed9b9400201ed35b785f0629225af64b05bb5b6016ea50a8689c9ceaaa234748400db67ef9514e7ba63c683b4f5f6b35869586f0058ba7b9c4bac500a0034bce3b2bda7c5fd5c8ad37c6466a9b877278b7773ac79809222f80eef341236053ad1d0c95862796a9702fd977e820420d611c66163c5cd6c5fdabab7ec96a51bb24328617e375367ee616ecdb46089c6604909d055033d53d828c7f8cd6de0823022babcf521aaa67959c1881161620e397b0a25682cbc805a96a84bb84a9a99acfb6012e2ecc2e5bc1518036e40dbc3347caba399178ca912eb8367c86070833137d1bca5b5b3186ad23c2e76a4cc467d092102ba081494bc7f963a9a6ae575d2c57a38371be5b164adf29f392014d11522535b0173126bfb82721e153e74049c1e170144484dddc2716b4c487aa0398ee9ccd2804df58fab8e2d32ac05bf22a845cccc2997b502ed631257065214ab9afed11f00ca5c18c92c4d6b917165fd1ce6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b + +# Official test vector 53, seed: "d71729dcbb27d7cb39e9e905025d3e55c8602efbcc483c9b866ebf82326157833169243c14550ad728bd1470f39c642e" +seed: cd6a99396eb3539ca663a51e42063a3a262cc1c5a5fce1566f0597b52ad9fa325a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 +public_key: 698035eda89cff189f730a05dabb3254297561072317010327d4222de388a7e95d8d0076665061705209d59984540471fc61032904b13dac27d520a2b7cb653a68a46623316557500cf4bb6f71ac9b5ca17d45331ff06507d5732829af25417defe7aca7364d99041448328f57d94f1af2572f7468da3b9f2e432064144f0396c1a8d95ce9951530a3b33b092d67590b307944095c50c30762435b76a5dcb3af494a5b112fee2567664a376f3b30c32172059631318821de71ad62b0227d9a91530a5ef2e6c2ecf925fb95302598b722a991e989a1fd198836fb340fe44849ca144545a5a14b46f464078529bb6dac09d148949e91cb0d7912f8701d84aa48ddacbc1aab0a4eb63f9ba41465f03f1bf4b4285cab3e315acd8a3f79c465d1d31fb50670423b278f042442e2b5797483f5a2bd21e83248e3039626006d7124a324281545b8c4356396f413a1fa67577c5d15c638b7d23199aa5343473dd5b45b66f41d451358f74b82a3c18627a60c08513d34e14e3f2a4b13d7332fd8014ff817077b7ee2db80a9c00eb1da79c2193201996036d214ee7b238d82afc2e3a226159ac05240e6683ad00a55a006190a279e116626b4f70fe345594d21a8d54b9017a76d6e2a61b9585bd5e378875ca26ac071d6b1546ee99d716cb8587b7a4e184c8119cb3150611389a8ca0bcd1ab6a7107942769cce08c00174a19305d438a7a475f2a29b28d230a016479f8aa8da24273c15094d3c0e10a8a0f0d3344169b81ca508e6cb662a4ba28c8693b9a27bd46a35acbc27a6b7cf30292064b4aef36bb29909af11d8924ee59af80b5871c2bdf0c53830a360688ab31a94cda3b12c0f61ce341bc0566ca6ad1cae54989aa3083707ea74680ac1fcb254fe3866bc9c7fc33189d3f4299a8a0a985ba3fbd51fbaa45d26aa352eaa710826aab8f600ff8a9554c842657a3cd2d6588f42063e9c08e9955ab7f3ca032b440c7889595a3454025853ba4070f1cd09dc26392b2657c526052373eac80c920c58c3a24827456be174842ed722487c64373b2457836f13c4065dd7b555f3914567cd87426e1196bb03c08c7a77c77d586f18e9603f45b1b9675bc62a4e71f215c3d7071729b0a8e9069f35ab73e55948f9c3e766c4f150394716b198721676495416e54841908cf60148a7104a4df00f21a10fcf508ae9438ba162291e5245afca757ca88ed577057f543921f670b262a0022a4ea4044318a4b1af8a99cdac8e1e550b732157e8ea9194970f786665c817299a7914b4c0b3394a57adb179bd3067897421a09410a34c658daabe6250047bf15b76f826bd371f0c504a2cf9106eca67816a4865b60a87d48ef4753f90132663fb26a5fa08c59394b6770ab13081aa200c79a6802ee826396cc9b3ea9cbfb482d601952752758cb7cd18605a9336735ea2322bc82b7bca773be27f17bb8726a8cfa9070b9aa6a77cdc0b64081cbfbab45c4314f855a953231c6fb6149bab90707b87239c2f7c7103bb9b2532180bc1f16670d90b7b77c6028c4d4bf92195ea54bee1150c25cc363c57f812a0754c9bf66470ad820e12133ebf44810b7318d2a79e5eb98c17c40b0ee10179f1b5b6870f26d27ebfb588f3a0d02e10a041ab4e3b97c35070f0da64f7e0e7076ae69b2ab51a956cfd04f8 +private_key: f1cbc95bf8705ee2aea2832134f8b633a20a3f3b6a82a2cc688728de320944ca5e74b42744e4b2bfd860ad6920f671c4ace706ce8903e0eb9f434364d1c09aa3f81303b195e704375adc01242907f12173077384493049a136821ca239c7889fee120aa015813f987611101bbba9115a026c3766264374ac28b0c9c422b844889df150caf94409fbe61f08daa4dc4b6bc3e0c866f82145fb813dc88bee809177b13c2db2ce1c3b8e8c93c8cb86aeff1383adf0afaf5600bfdb178fcb56c899569bd497ae05186f19cd9e6baba7cac85f6317792bc6da6c6222da77b100595e84a2c9a9b9d9b131c9a0514e9c8c59c3b1a12637fff8353d468239358834d11bb0fb0cf6f37a461132f8bb5559b26eb03c0e36872399ca6e5b18a05aeb934516a484116ccd72bf780379d82c396ad39eba5b48dda856e0c82f7b9c4ccc36b20054cf5d1b2f0ea00333527c6e6977a775aa2d58b180609ce57346f9e8a2b686b7d85cb4c58a2bb938b26dbbc6ccd685a6e309838c9fe2e335b74462c2f7c521490ea527af3dbc91034c74e3e94a69e42ffc290920d64f4d662ff436345c06c242749ab140121ae330f254478d851d5f34048c2ab65c8460e8020499c33b4cb9851985817c62282dd49da96064fb2881e18697696960d9a52f409a2e3136368c0c5146ac3ed3b4aa580c143ba22ea9255397203e95c4416161447698bdd6dc462fa5cbfce3933a3cc26b2ccd5295c3e3b30429493244f63b811640f2111e86b54146d59b2e761c793b4920939c88a0cd12c882ef8192fac7bf2af22c08580bb4e20226ab02428731b72a81cdfb654ef9286b73713ecb2c90341e78a8b0d6699f59230b298a658648109b003840a2424aca7d30d7c15d3704fb88c6f66592a04ab803e83eeeb4294b2bb5c6f957b65a6aa8c88a88f5337411404ac7cc76857aeb3ac07ef32d8bf0402cd135969669e2743ce7f8060cb06be964991e797923bb291cac6e78a8c55c65a85d402e2184491e474814086824836405629f0e68cd2f86691df301f00ba2ed971fda2222e1322101130ff1f1a2d870280dac8cb98a29f93870047915146aa8a486afc16cb4d01458edd0b4d5b027fe2a6c4a884ee93a495a5c15af938e5b37aafe655ec6220c0d88557801890e6805c80a3b5e0c395548a19f404a4a6286e041a95506be194a7ab1d7ac21f52932bb3b5f5393e5d5173d2c7c8653b9433344af489f7102199523bb401cc75d80c8ce1162a69627e3a743b3201534c9bc21243961f7011731c1a3e01fa3847cc08ba7d1970e2e70b3f0c4349e707b40bb9c4b5519b8642334a97574529fde05927b25b8c13bae1e456b87d90087551d0c2918a3658e9a9b7dfc105ad9f0cc7a180bd0d0aa5042702afa02fe67801137a1faba5813f2bbcec3b05b1aca701385e159031fe9043199b07ae02682a0861812749294bdd42b6d09330248fb52fee84e98b68b49830508197a06caadb913295095108f2ab2b4854fdbc44742c673d0f55626e726d0ba68ab3508b7304d767b7f868676ddb33c917ba37b5b0c8a831756383235b81e872114278c2ffb29668df706b38153bf7b39a388b9cfb38066177b0695a511b0c9e6c709cf0cad698035eda89cff189f730a05dabb3254297561072317010327d4222de388a7e95d8d0076665061705209d59984540471fc61032904b13dac27d520a2b7cb653a68a46623316557500cf4bb6f71ac9b5ca17d45331ff06507d5732829af25417defe7aca7364d99041448328f57d94f1af2572f7468da3b9f2e432064144f0396c1a8d95ce9951530a3b33b092d67590b307944095c50c30762435b76a5dcb3af494a5b112fee2567664a376f3b30c32172059631318821de71ad62b0227d9a91530a5ef2e6c2ecf925fb95302598b722a991e989a1fd198836fb340fe44849ca144545a5a14b46f464078529bb6dac09d148949e91cb0d7912f8701d84aa48ddacbc1aab0a4eb63f9ba41465f03f1bf4b4285cab3e315acd8a3f79c465d1d31fb50670423b278f042442e2b5797483f5a2bd21e83248e3039626006d7124a324281545b8c4356396f413a1fa67577c5d15c638b7d23199aa5343473dd5b45b66f41d451358f74b82a3c18627a60c08513d34e14e3f2a4b13d7332fd8014ff817077b7ee2db80a9c00eb1da79c2193201996036d214ee7b238d82afc2e3a226159ac05240e6683ad00a55a006190a279e116626b4f70fe345594d21a8d54b9017a76d6e2a61b9585bd5e378875ca26ac071d6b1546ee99d716cb8587b7a4e184c8119cb3150611389a8ca0bcd1ab6a7107942769cce08c00174a19305d438a7a475f2a29b28d230a016479f8aa8da24273c15094d3c0e10a8a0f0d3344169b81ca508e6cb662a4ba28c8693b9a27bd46a35acbc27a6b7cf30292064b4aef36bb29909af11d8924ee59af80b5871c2bdf0c53830a360688ab31a94cda3b12c0f61ce341bc0566ca6ad1cae54989aa3083707ea74680ac1fcb254fe3866bc9c7fc33189d3f4299a8a0a985ba3fbd51fbaa45d26aa352eaa710826aab8f600ff8a9554c842657a3cd2d6588f42063e9c08e9955ab7f3ca032b440c7889595a3454025853ba4070f1cd09dc26392b2657c526052373eac80c920c58c3a24827456be174842ed722487c64373b2457836f13c4065dd7b555f3914567cd87426e1196bb03c08c7a77c77d586f18e9603f45b1b9675bc62a4e71f215c3d7071729b0a8e9069f35ab73e55948f9c3e766c4f150394716b198721676495416e54841908cf60148a7104a4df00f21a10fcf508ae9438ba162291e5245afca757ca88ed577057f543921f670b262a0022a4ea4044318a4b1af8a99cdac8e1e550b732157e8ea9194970f786665c817299a7914b4c0b3394a57adb179bd3067897421a09410a34c658daabe6250047bf15b76f826bd371f0c504a2cf9106eca67816a4865b60a87d48ef4753f90132663fb26a5fa08c59394b6770ab13081aa200c79a6802ee826396cc9b3ea9cbfb482d601952752758cb7cd18605a9336735ea2322bc82b7bca773be27f17bb8726a8cfa9070b9aa6a77cdc0b64081cbfbab45c4314f855a953231c6fb6149bab90707b87239c2f7c7103bb9b2532180bc1f16670d90b7b77c6028c4d4bf92195ea54bee1150c25cc363c57f812a0754c9bf66470ad820e12133ebf44810b7318d2a79e5eb98c17c40b0ee10179f1b5b6870f26d27ebfb588f3a0d02e10a041ab4e3b97c35070f0da64f7e0e7076ae69b2ab51a956cfd04f889560d4e598328f6302a9762bda2b0f29fa8ee34fe48dc4847810fc6f44cc1985a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922 + +# Official test vector 54, seed: "a7c2c8edb3601396beb2df0657ec82fd5780a2723581a9e03dee1cdb018440439bb1142cab0487c5d136e9af46338ab7" +seed: 6c8c53ed6f65e6b2e324b84364e10de42d1c26a106d4d1c99eee79c78586fb55b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 +public_key: 4981b339e1a1368287fc699e4d50bab5ba45320968fb7cbfb358c92e2564944571591211b510a5b044663ffc7deac3546a8aa060537bf36229bacb4c5d918726b5ae7dfaa45f153f329140106a80b3c54eaf273384dc8e47f58e68621f3be905ace09a76ec9839ac471f9404c196587cc95d90166a247029aae0802ae3cf6983355b330bc9c6a4748a6130aa510ca1afdb876ad0d7b2653c3c88079e14d7898ee482f34651b7a238f3f07bdb4989740861d358384a4863c39b8912259bd78653386801d2450cabb6bb7fc287c74b2cb24c5688b66f7952c289eaa5051b938fc833f343c273652e4a1a6ee6c35c8c8131ebb63c82d38046b41343fc0fc660168931c899088c92db171f75b1f691577e09ce56435ab060c8fc084068133cb67cbb0fd36a73d8a21200623ef324256b99b0f60841ba9cda515f62a978881318fda87c95664e4a5755c72026369813dc90c8d6c18f48d61c10e49a7e9449f95492f0e4ae14f6969b654fd39bbac79c7e0b507559d5137d2179b59b21dc60679cf1b455b94208d87514c008898a95747ca9b530164743a6f9f1878f7badff6a4b2023ca367944f288a399c52648f834c28014b0f921ef04127ff4ac656196c034c0db9a7e8ca64109b904b2427fc601732c12241cc32589790e3bb71d924c184edb521d3b090a90ce0b296365ec6911341ad4d8cc7c136c87469f1ff101faf3488f89b52e98b920a659375125b48c403b4ba3175bbc6cc5a2ccc206dcca0440d54c6dac74ce4674e46444dfb4b5070926074c089c28c5cb11cd4c9c715af34aac79644cf2ad471213889c5e7ba92d114150233c673e505376f21dbc999997f43ff9c3b0f8f1b3dec09a4ca3ac581b9192984e43999f0d34aaf32218b02c8aa2f21c579457f204bd18191811e7bd6e4aacca5aa7c6f41fdd192bcd24760a2243034021b192575bf811e1344a25e1629b019564c39b09c88ef9b1ce6761066030bab14ac202bb6a8d858c3fd316c4fa81d21904ae691f6fe7931dbc93afc09f18f3b278e4c453ab5081372c093a9a38ea1622379f56397ec6c47cb7067fef7225c952c262792dda68135e45c3c6cbad23593ffde806fecac55d682fb23839b37186d4a40b83641d9214b7e0490e305807745534de18b9d4bc5eea755cc117b68b7a30f76a9458708249f02dfd59691f0b720f257f1f96cfcc3573c5696ea33017af14a843b81ea58821db21b73a9b80ca187685dac1f8735ea219cd01c6688f5bcaf4611fb3b58ad65b8d7c8ba4ab950bcad9b23d5b2d0b718397e111feb25f1739ccdbdc5c41d943e977aff5209134722dd3d54b923b511661127b284ae9ba0c27f05aacb20181602d9bfb32c3e255e7f48735bab94e515529a9591d51be015a009a9094591c7e07a13c57e636b6e11cf4835a8180895a6581507805a1c7a39ab05633798aebcaae89e37d8d75b4f34c73c2184ffb567069f0b3911943c2060f34f10f835c8233a34b5618501aa36ebf678dae07af9a567ac7143567c92a89a94a0a4abde383706ccc3826a83dfab8ae7165c6c6555bc77a43b5b3b2b590c56ce25e792796283737c6f5b300a0cf06e0060e1634a434793383860d84a76807c2983c57522fe3f988486bc386cb335ab55689d6b449b7a38dbce911f512e4f148aa1567 +private_key: 61d034b4827c4405b4ce0226038c1e98f42cb587123ec8a44454c38d4407d5fbad7068c373ec34f303a6c4272990957c5803536618bf07418a9397ca03a81eb4490762da41aa5731a8b795e077ca1da336279132d785b9816819f58cad7804bbafa32fc501a5f68981c48b4e06a7088c2784e917b0645cc28116904eebc3417c525cc312a3102db9d97cee85827a1775751ca137e117a217a6fcb4546d946ced119c6b1c45a2282415e9c11d6cb18d22616be6917a38878281bade6241410a42047c156d0c6fc5dc8060d9046fa658727b8e4e045548a5909a9c7139391e058722c7969b0b48c737b3a092082bff215e98d8ae1b09b50c25176b2764bd414d84c57ec41a4b8c04c82eb22a2e52ad200a6e127968c844c8887c014ac99ba8f54067621601121de01c8f5b923fe089584ae181fe8cc353f12390c565332a7bd8953f97e75b2deb83fe53b3aaeb9f4a02ada9401fb339c9bbf09bc6b826d9d0a1ca5a563a8213b8858e91050994472dd9f1c81c831d8096b72f360a65e194c5b758b37528808b9b48a65c9a04b34ccabea12cac24599f2c366646581366b71ac7724f01d833a5e76126617bf7630886e44dede81bbbb44de625bd89e41ae0e28bf897202439c346a438b1a8b518698af80418548664ae3699efb8271e7c2ee995731d7309bedb87c2572a6b805f46654a92d188ce661b9e197203113446cc5fabe73a35b97cb417297988cd02cb8b3e0498130341dff42a85281f667abcebf576fa266f44b2368c926385cbbde21621094c492607cf58227c2a12a8ed79c6a726a7cad81b7e9a50d78417619ab575a3c54bc77f5a80206967029ab92db447b0914168d8b37be0438037e2bb3eeb95221a8db95b07fb252044760832513bb0a7032e493ed529267c278dce0b8d954b4ff0bb62785c6d24328addf3608c50c0b9eb5e3bc685fe198be984735764bea637b4f8a149bcf356d8a57d21b426b736cc8e9b396ac1577f41291f433cbfa04697180f623a6564c8c1f9723896437fe216715a30820db78f7f0a78ad2ac034f701ec129c95dc49d8eb3b7a585aa00046876a7456278bc4a617cf9b8f06e89af742c14de2a7516c65c83bc53c3335df6c00c0b344f79635f232420ec893d9e29a36986defa37403354624607e343b82660b3597eba841b250a15574b009716b4812d5b175b88929d3539e3fa97b3a16644fe6bac74c67db2832a9e8807eb9745ed0afc0025ee199b39ee3954a112ba484b3528838a4605ec659a046b1722da037f9e2b007c895217927d9aa8514ac263a08cde86720cdc012fcc84f7a089ca7c51f4ed71d7c1379fd34c713cb65ce3410214385dd6c91ca1b74a3b24bcd45b5ca097a02359a70008adb82921f7a79b30a8689053f0340453e6b9979c8c522f606eb4c72a30970c09562d9fb00899c2127311ab57653b5833035aab95c61c50680592db86718bc6a5393a96c07907748be2a9c2c2324cb1247876b9c3a53fc2340e32abe72b39ee59e284a62dac56964c721c3d305125a22a94b2b981a5f16f7ceb6a72007c92ee110362dda1deeb28d26c5a5ddb58b4b665f1aabc8a90628abb65e5769194ee98f61ebc4835775efc50cd5136a4981b339e1a1368287fc699e4d50bab5ba45320968fb7cbfb358c92e2564944571591211b510a5b044663ffc7deac3546a8aa060537bf36229bacb4c5d918726b5ae7dfaa45f153f329140106a80b3c54eaf273384dc8e47f58e68621f3be905ace09a76ec9839ac471f9404c196587cc95d90166a247029aae0802ae3cf6983355b330bc9c6a4748a6130aa510ca1afdb876ad0d7b2653c3c88079e14d7898ee482f34651b7a238f3f07bdb4989740861d358384a4863c39b8912259bd78653386801d2450cabb6bb7fc287c74b2cb24c5688b66f7952c289eaa5051b938fc833f343c273652e4a1a6ee6c35c8c8131ebb63c82d38046b41343fc0fc660168931c899088c92db171f75b1f691577e09ce56435ab060c8fc084068133cb67cbb0fd36a73d8a21200623ef324256b99b0f60841ba9cda515f62a978881318fda87c95664e4a5755c72026369813dc90c8d6c18f48d61c10e49a7e9449f95492f0e4ae14f6969b654fd39bbac79c7e0b507559d5137d2179b59b21dc60679cf1b455b94208d87514c008898a95747ca9b530164743a6f9f1878f7badff6a4b2023ca367944f288a399c52648f834c28014b0f921ef04127ff4ac656196c034c0db9a7e8ca64109b904b2427fc601732c12241cc32589790e3bb71d924c184edb521d3b090a90ce0b296365ec6911341ad4d8cc7c136c87469f1ff101faf3488f89b52e98b920a659375125b48c403b4ba3175bbc6cc5a2ccc206dcca0440d54c6dac74ce4674e46444dfb4b5070926074c089c28c5cb11cd4c9c715af34aac79644cf2ad471213889c5e7ba92d114150233c673e505376f21dbc999997f43ff9c3b0f8f1b3dec09a4ca3ac581b9192984e43999f0d34aaf32218b02c8aa2f21c579457f204bd18191811e7bd6e4aacca5aa7c6f41fdd192bcd24760a2243034021b192575bf811e1344a25e1629b019564c39b09c88ef9b1ce6761066030bab14ac202bb6a8d858c3fd316c4fa81d21904ae691f6fe7931dbc93afc09f18f3b278e4c453ab5081372c093a9a38ea1622379f56397ec6c47cb7067fef7225c952c262792dda68135e45c3c6cbad23593ffde806fecac55d682fb23839b37186d4a40b83641d9214b7e0490e305807745534de18b9d4bc5eea755cc117b68b7a30f76a9458708249f02dfd59691f0b720f257f1f96cfcc3573c5696ea33017af14a843b81ea58821db21b73a9b80ca187685dac1f8735ea219cd01c6688f5bcaf4611fb3b58ad65b8d7c8ba4ab950bcad9b23d5b2d0b718397e111feb25f1739ccdbdc5c41d943e977aff5209134722dd3d54b923b511661127b284ae9ba0c27f05aacb20181602d9bfb32c3e255e7f48735bab94e515529a9591d51be015a009a9094591c7e07a13c57e636b6e11cf4835a8180895a6581507805a1c7a39ab05633798aebcaae89e37d8d75b4f34c73c2184ffb567069f0b3911943c2060f34f10f835c8233a34b5618501aa36ebf678dae07af9a567ac7143567c92a89a94a0a4abde383706ccc3826a83dfab8ae7165c6c6555bc77a43b5b3b2b590c56ce25e792796283737c6f5b300a0cf06e0060e1634a434793383860d84a76807c2983c57522fe3f988486bc386cb335ab55689d6b449b7a38dbce911f512e4f148aa1567878025deeed7dab8e62d43c3d2096e4682692537c70ebab9e1561cba88b05ec0b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88 + +# Official test vector 55, seed: "467f6158cb86b724039ff18c47950ae5c49170163c910fc9a9b30141f86e9c06ebcec91497bcd156d95758c9f0c6ef91" +seed: 2107204cd995f1df14314d5381f8c5440f09a347502e161cffc0a2ec3dcfbc7324c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 +public_key: 5b19b76208b41eb99b73d2b00d7884ac289c5b4632f8362ed9f238e07a34fd7b3acfc5973070c83e03b9b45c65f8eb64a08b88592b6676db235096694073143ef758fc84c9d3097266b66c9c34a6c5f876779936e345c3a07614e2795e65c0793ef3a22cb65bd06bbd90b391eb425223c2c395674d9841109b6929d353437dd49c7cd50d781cab5850363865689dc8bcf81a80c4269a05060965b80a56081c186a2f4bb00e2e942863fb8e507230c29215c98a78e37201c263783f703b17928f36656b99f9cfe31917f05c25f57063d728a4e2bc652e4193e52877b7310f7260a1985985c26caad60c9e6f01b54be183a7c2ae986ab2a85b33788674dcd42566b406be251837266ebc6261c3b62fff702f10298119d414b580bb4077791b7096a7471595d8659614c878d8097e7437503a7c7e058a3dd295d34ace86b9302b901100adb0e6140cbf44161ab33b9aac34a0dc6f1faba14d259c546c672ebb7f528a010d5585c21c00c4b19980c6490d76083a77b8aaebcaf7917a81b55a6f2a6be7941393d0a9ebd2c549417f38682def039b4944cbc6fc629bb3a3ade353ea2005115a665087c00a4b771ef0490748b370d8b4c4ec37cdd352562a11479597d8035c00824f48805000778a81d6a31a0bb8b6201cbd3149ef96428c79569c5cba273a9bb4a77eef98bfa54ba8267bc42c643c29577b2bea5802ecc038ab70fdb1b23d9272b7ec30cfe1791126a185c40a77c57ec3088822c808ed8b1866068035590460d6a9a00c50db70b19b765e7ca8229e1a66f4fb52d752b515eba35f64097ee85399d78ad4c2cff7935ccd269731ca2b3b3217a22203e3b9438cf0b396fc99b6113cbb883c16869bb114bb1adcc06863738541acc61458ec9ac98df381825ca80ad954562ab931d1bf47a1c45a5c1c72d90cc2d3b4cf6135b8b5454ec4967523ab82e9aabefc89780722b5aa12e47344bfbc8c3426802c77c02195255e71555d9045bac868c7d45c06b6474bba2f40fcbc480112176a83ce361dacf2b386cbcd270456e7563a873c55d752151b76b3fe3c3233c5199011aead401b88b9c36efc295fe03dee6015b1ca00c5bb06dfd2c2848125af903c298c5f74fc4b9937412ac70aacf07fb99488c797287c04335821cbd6475e91d66a7d89c2f67285321442c4e7ce61d0212cc16d74c211ed2a7bd829044ff82491d1cb1746430603a0091110f626804e0b32edb0cc827c8ba7c36f87cbc67cec250f65ad2fc621363bb715557848c5a01b256524271be7b6956b72be644aa0dd33925f64bdd3481615246e95294196d6af1aa5aef6880ce2a609715b50fa7737be749cead7c84977747924bc25792509ca7a931c3ffee7341547913ee695f8144afe83430bd5c96ce61f57610f78d6c64c3c33b468b6f3cac46f29b60f0705ae1a05e5c63d21a62f5dc7208d25a7f0c09d8f77a7a7a03d51d2061fb13d9ae97386fb6da4cb6fea0923937536511ba8ff00ba753897d16b76058a15b5c706121cc792076ebc2ac1ee492a36e65d12d23f6488245e998457d4337a2c62c731afa43085a94892bd30393b1c9fcfb380f9815ea491968d6514b8707551443fcdd5926991599da552acb4a19b6342d309b5027cb88909ffc8c83b1778d8aa46c9d07aa2594a7bfd47cb7ae1 +private_key: fa9abdc750b445e2973d9c85b0599a6310583b93c146a61256592258e79664f8a22558cdf55c2ca0240d5b1425b6d6177956afedc12885e12714982872ca17eef52085dc965de960b29972f5828d3410506e34bc54bb2dda3c6a54b5aaa89466cd44afe56388c21b0fd19b744020cf83779359097c3e3086a904376b56814a454935bb53289c1cc4d08198fa6797149c74da0d21f99177093de6dcb8b5579a9641ceaedc74ab8c3e91f2804bfcb94eac1245b53e27bb5907219bbc6b7f61ab3a35a11c3cda544dac262b4289a4a930283b56d5779ee14c62f3a89308f1120e3b34ef87087e0c0ed6b55280031927682870e09db8800467fc82602b95d1f16d680562a2b866380a411546475d1a529db537c1f2b3e3f393c1919d6fb97877297cf2ab346273478afa7ee1044bf4d3353374051e0a4ed2364587e0694920a6cd6abef9f68d00b16c7b2a53d64bbb0645098ba1a9745a15323b2bebd956942090ef2381f8fb747f5964b4ea9a57b22659635dce7c55ff10b7d1c3a76687334542315a05a0931a9a5da734f6b647de025e05e480b5a27fde1116fe03630fdc074f542ab358341ba08fcb79b48cf4273b46c54219c16bc7943887cf451b1fe224bcff9121098a75b2d9b35e71ba2bd94f106800dac689d6002df6ab6528876c39a74d63dc41490077cb94cb243947205841f8b698cc214bc9b2442ab418d7f4a7bec2a793fc6975268a4cb66f304bc7cc142a81f057501c75baf9b3a5f94935b3991c228aa52266ec289ca3333d35dbaf59aab37d659423bc9953656317f48f025076240b15fd145e86db6ea8758b9b265ccab860cf5268aa627c02ab245f466923b91db6a240d1731642229f22946be1ec538a86b7df1a1f4801791ddc487c6acd7fbcbf9f457eedc81cf0a03ca0c15e4524748ff08b7ba020e1c6a4e8e573a6d9c996842f8122bd876c4f6b193f22a68af9111f302b895d2624f992aaff265c996171889661897856b963c92061c4c1db767ecc725056b473753ad6b9046afc82c60a8d7000ccb18b7a3831933eeb9eb02c76e379a5b326c72b0647addc393a6676e6b948bc465578e9b4ccd670bb31a39c5b1aa52c6737433e930b0c2db239ff2a55d8eb649b4aa69b56987e0273d8829db39ac057f89194186dce30b1b20b17f5592c5737cd12ec38bbd228dbf7863ceccffe9587bd485090e45d84c298f811af1925b37a4ace9c751451e326ece073c1503f54984e910ba12fc79f502391784b1bb3b41211e654655868a8d2b5aa4920b9fb2ee7605bd7e8a3aa668f9721212a860dd762113efc1e1ba93a4a10cae185bdf9c80c06ea30757b12768b29a4a3950d9175e15873f104413f22ad79362643599f7d6960f3d662d24255814c2fd7b445d35651ec7c0f873a2a2c255aaac51c41118e4cbcb6f91745150c51cb7a5d5987341c807cf8969c523913b8659dc5120c6d90782d463acc647f16976f641c54ff50bff3dc1194c56c3c71b6bb296f65fc99d20b92662a19a0d8748a90932d498b7e315be3388f87b73ca99611035224fad81792e8c7a3a23dbdf0a44ef9c0ec0c4ea68804d9c9078fc08ccb733287862e01f8712f30388feb2abbd0810cf2485b19b76208b41eb99b73d2b00d7884ac289c5b4632f8362ed9f238e07a34fd7b3acfc5973070c83e03b9b45c65f8eb64a08b88592b6676db235096694073143ef758fc84c9d3097266b66c9c34a6c5f876779936e345c3a07614e2795e65c0793ef3a22cb65bd06bbd90b391eb425223c2c395674d9841109b6929d353437dd49c7cd50d781cab5850363865689dc8bcf81a80c4269a05060965b80a56081c186a2f4bb00e2e942863fb8e507230c29215c98a78e37201c263783f703b17928f36656b99f9cfe31917f05c25f57063d728a4e2bc652e4193e52877b7310f7260a1985985c26caad60c9e6f01b54be183a7c2ae986ab2a85b33788674dcd42566b406be251837266ebc6261c3b62fff702f10298119d414b580bb4077791b7096a7471595d8659614c878d8097e7437503a7c7e058a3dd295d34ace86b9302b901100adb0e6140cbf44161ab33b9aac34a0dc6f1faba14d259c546c672ebb7f528a010d5585c21c00c4b19980c6490d76083a77b8aaebcaf7917a81b55a6f2a6be7941393d0a9ebd2c549417f38682def039b4944cbc6fc629bb3a3ade353ea2005115a665087c00a4b771ef0490748b370d8b4c4ec37cdd352562a11479597d8035c00824f48805000778a81d6a31a0bb8b6201cbd3149ef96428c79569c5cba273a9bb4a77eef98bfa54ba8267bc42c643c29577b2bea5802ecc038ab70fdb1b23d9272b7ec30cfe1791126a185c40a77c57ec3088822c808ed8b1866068035590460d6a9a00c50db70b19b765e7ca8229e1a66f4fb52d752b515eba35f64097ee85399d78ad4c2cff7935ccd269731ca2b3b3217a22203e3b9438cf0b396fc99b6113cbb883c16869bb114bb1adcc06863738541acc61458ec9ac98df381825ca80ad954562ab931d1bf47a1c45a5c1c72d90cc2d3b4cf6135b8b5454ec4967523ab82e9aabefc89780722b5aa12e47344bfbc8c3426802c77c02195255e71555d9045bac868c7d45c06b6474bba2f40fcbc480112176a83ce361dacf2b386cbcd270456e7563a873c55d752151b76b3fe3c3233c5199011aead401b88b9c36efc295fe03dee6015b1ca00c5bb06dfd2c2848125af903c298c5f74fc4b9937412ac70aacf07fb99488c797287c04335821cbd6475e91d66a7d89c2f67285321442c4e7ce61d0212cc16d74c211ed2a7bd829044ff82491d1cb1746430603a0091110f626804e0b32edb0cc827c8ba7c36f87cbc67cec250f65ad2fc621363bb715557848c5a01b256524271be7b6956b72be644aa0dd33925f64bdd3481615246e95294196d6af1aa5aef6880ce2a609715b50fa7737be749cead7c84977747924bc25792509ca7a931c3ffee7341547913ee695f8144afe83430bd5c96ce61f57610f78d6c64c3c33b468b6f3cac46f29b60f0705ae1a05e5c63d21a62f5dc7208d25a7f0c09d8f77a7a7a03d51d2061fb13d9ae97386fb6da4cb6fea0923937536511ba8ff00ba753897d16b76058a15b5c706121cc792076ebc2ac1ee492a36e65d12d23f6488245e998457d4337a2c62c731afa43085a94892bd30393b1c9fcfb380f9815ea491968d6514b8707551443fcdd5926991599da552acb4a19b6342d309b5027cb88909ffc8c83b1778d8aa46c9d07aa2594a7bfd47cb7ae17d30385f988dc748b843b7b7f569e58ccc9215503e1bc2f28f5019fc72fe6d3324c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4 + +# Official test vector 56, seed: "687c02de1041abac7b2c1e6ec2a7c3375552ed5edb10e3a8139c24cc76bda44d719d8121a81d47a0b762b4e9eeb85235" +seed: 63a925685a8ac5bbd918faa33ac397d1ffbcf99135d9da7c3d6ff7aa4c50af3d3afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 +public_key: 3610631d29c37a90908cf2c89d075928ccb3b9558a5453315acabb5a228d0abbb99d63b0294b68594a0a648367fe044e14347073562aeb475c17196a3da38896f2168996ca917a0423614431963b10b5a0d3b228aeca3b26363026d1a5a952b5333cadf79a59b93b5ba484bbe4618b41756a101429cba6407b44a2b001108eb30e92d60c093b4abefb63438c481dfbaf08442d607088ebeac83a950623e057c99cb0f9e31639cacc82852f4cf9bcc83228151b91cdb0423f610552b0c170203c7f2b345443bd7d274ab14cb67b328d914366ea9a220cf46333a41feb5193ded4a5d94c6e0a43bdd6b2a52c3c4c718591f11b32ad64930a638ea9f217e64a9e31526313133c02b5b0cab821544543fe24aefce70927d9248aec2937385c79cb85df91256e176eaf3a239b370d4ef56a90dca3935507a6a86d84b021312bc718662abd432c08bb4dca3614f357321b191a8522ac109a643a5a9a63419be6845e5f5837b6188de0c779fa01430b219470a20da019688802ba8440c60d8727394114db10343fbab0993ac5d967b658b1551a6570f7d9b283445cc278298b4740884ba72b338c45249ab74c84a1435a84c42533a0bfbdd0509d7a3bd0b0635f538ce72645650931dbbc6e2850cd2585214f5cc12f2a2d9c2820d6c0550be79d5276747e2c04bf976705227c842b872e294aff495e06502819c6c92de3622ea968b07c0646dc0301c009fcd5bf7f19a357693e032cc46b4777a1714d41a59bf07721a2490be2e3cc7e4a04fe48a8db361a5cc1390d921325875f80629c2abc4d468a40d9c22911b9bdfc6ba986b9bb7226227dc63d75351fa4613de3654475c5668d651f9f03a386179cad00100b35343f48b7e36a79dbf979cdc734d5855b90128fee10c9bf40acfb67332cc8c9ecc4a3a9a98bd30c708e7a630a0909dc8ba2b1721e42250b83623a1289960e7288758525d4088525ec25511bca906930602b5ee1d127c23205e681c9db3474aa774733100838b2461e45cbd603c3a74122b679cdb9992063e089d5acbf74b03469a3ce7993c6b978313a7a735e75bb94976b3539b4298cc47af58425c24310667b1315baa5937741e35309f1c70cb8c60e06ae1793502a316a276b2e21087305f453d8e99d08730e174159db09324e4cbaa067cb1e766e455a34159465bf1138a285cc386502d698538ac63de2f496b120be468a952b02c5dcfac5a997023b5b3d98691572103e158672eaa0a4e4f44fb6920ffd874f52748a630aa41d188ece499aab324e916079b3bc2427b35896b26b0d2564b2a875881a074706713d326306fc66efaa1b8d4cadc7c85b7ac211c4f61f68a124465397385b2ac7a09686935cde06638f156e6e4670f963ca82950d3207889446be69e2a0d7cabfb16141868a6187b5be7977c354fb27a8c9cb8197565480244bf296692a02701580a2b4ac4772b13a27c869123ac3b6cb6699698c11261f657ffb6c8d78102e0c60c004c0796f319330435a29abaf33dbbb1c566aea10349981409ac31c18aa48631a1f0657116821a2a36c2403870a3787a1e3f36349b3373ae729a859af3163c078c38ef38c464ac5ba1fa8150d9093f97c17106c99c632bc42a5ca0595508bfa7485b23bde8d12ad7bfc9c10c68374b70a4a46655b5a67d1 +private_key: 26424f439191e67b1755d6893ee31789b8c6985191c9c21c1ec7cb8c990f82ac49b7996b1ef48046f8b3093a36c27cba5c35b7cd733678c10ac06a5108609e47da30a048312f1543b8761714114d37a3c70ee09813e79f37e6402d584f51673f70c5331b89a52e61a51d363a8ad8081df227dd621b20469ded708bb64374e2678424787c57940617980def632a61eba801c1a079517302f3b02db4b136d588e2a41fca2729b541c9bef00940270e257c47103449bbd47eda9bc7a9b508d42076fe7734fa5454228958d7cc932ebaa0f8d12123e7ccfddb039a2a66d6d7a0140c6ce16b9fc0b6a0a3b7a0b50a06d8d397c9020f1dd1b5f4216565dc84e8911102e54b60e88abce7714ad29668f79b7f2a7b09e7c8a92480f30b072ec14e96e77e63342841167afe3421c37c2ff3f25ccad60c652c9831c5519390bf0ee9b2f108104d77145ca4b5245b66db6607afc0141324328d746787ecad7f5a0ffeb50ddde16ee1ab87440389fa0b9c44b75fd26c726773bb8049a77784860558107e069d3d0521c6015093787ac6f263d356130b9a39e5093f62d7b2f8e5411e61a18d44155fbb4d2ba7b09072cf6fe666109ab5fc078eb026490720c82b4990a28406a450268414ad4ff1791b370722258bf103507fb9a09b09bb4373465ce5a1ea263bae6b723036af268700d496724a42539cc9b7f7357cc7b6b33e11937a884dbd30888508bdc442379eb8b3682341b3b4b760a879fc229397e05879b003a06acdf3c5530a7b90013873f47139c2d96e1d7b67427467e64cba2965766603ca30e13f2e357e3e6945cda2906416370cd699b3da77889b63be284ad538269929914092b805aac7e9a04d0275c71df020ffa6002c1703ed674dc5633367bc086ce15e4e61a93de94023b823d1fa29bc6250b92a8a04533987a6bc510bbe84ba7fa1699b077c3a05992ddd52a19aa238b466c2801b3fe9f72335e15ec2342ebebc7694ba68e276719371b933dbba3fa07262870ea9521e95650444845b41258f6ca77915345c0af3718ea09f6ad604c9a4971e618b59551f5ef54e57aa138e52cc03313398c0ae03bb4ee5d36799618955789e80a78bd896aae9e87f2bc0a6b730a02bf82af19c541ca93449b127f883af13713bf5229238b19a216478a4880a7d9b6009719209f69519e5774cf48c8aa20b96e4b0f10a94027819204532a54c48026a5cdd5841e6c8a736cbc99f9caf46b8a90648a854f9c6ae37048c6671c5e8a1b2731019351631829c205959a4b4ae87a4c3234c63e653cb75c92237c4721c66ad05871b22d69f3435baaaf311491394cb1238b899973ef79f9c371f045b4145bc20ddb71d53fb50b25c46e674778fe9069197a9861337edab3de55cc28bcca65b2a5fbe1a2a67197bda012ecad40bc86593a06c833c82aad0b714428296248a8e49304cd3955081ebb2e717b36deaa928c3c09ce1bcab3114627a7886f64d69b206cb7aa8f978c13e84a6c6453efb1328684859ec20a9ff7a560d436977294daf2abc08b78ce10a22d5fccbbdb192d57534ba04c5dfba389c3bbba4f5191ee9ac7a344cd519cd39100012da9afba0bf9a2373ac534ada885cc71322e5b4a4b84c473610631d29c37a90908cf2c89d075928ccb3b9558a5453315acabb5a228d0abbb99d63b0294b68594a0a648367fe044e14347073562aeb475c17196a3da38896f2168996ca917a0423614431963b10b5a0d3b228aeca3b26363026d1a5a952b5333cadf79a59b93b5ba484bbe4618b41756a101429cba6407b44a2b001108eb30e92d60c093b4abefb63438c481dfbaf08442d607088ebeac83a950623e057c99cb0f9e31639cacc82852f4cf9bcc83228151b91cdb0423f610552b0c170203c7f2b345443bd7d274ab14cb67b328d914366ea9a220cf46333a41feb5193ded4a5d94c6e0a43bdd6b2a52c3c4c718591f11b32ad64930a638ea9f217e64a9e31526313133c02b5b0cab821544543fe24aefce70927d9248aec2937385c79cb85df91256e176eaf3a239b370d4ef56a90dca3935507a6a86d84b021312bc718662abd432c08bb4dca3614f357321b191a8522ac109a643a5a9a63419be6845e5f5837b6188de0c779fa01430b219470a20da019688802ba8440c60d8727394114db10343fbab0993ac5d967b658b1551a6570f7d9b283445cc278298b4740884ba72b338c45249ab74c84a1435a84c42533a0bfbdd0509d7a3bd0b0635f538ce72645650931dbbc6e2850cd2585214f5cc12f2a2d9c2820d6c0550be79d5276747e2c04bf976705227c842b872e294aff495e06502819c6c92de3622ea968b07c0646dc0301c009fcd5bf7f19a357693e032cc46b4777a1714d41a59bf07721a2490be2e3cc7e4a04fe48a8db361a5cc1390d921325875f80629c2abc4d468a40d9c22911b9bdfc6ba986b9bb7226227dc63d75351fa4613de3654475c5668d651f9f03a386179cad00100b35343f48b7e36a79dbf979cdc734d5855b90128fee10c9bf40acfb67332cc8c9ecc4a3a9a98bd30c708e7a630a0909dc8ba2b1721e42250b83623a1289960e7288758525d4088525ec25511bca906930602b5ee1d127c23205e681c9db3474aa774733100838b2461e45cbd603c3a74122b679cdb9992063e089d5acbf74b03469a3ce7993c6b978313a7a735e75bb94976b3539b4298cc47af58425c24310667b1315baa5937741e35309f1c70cb8c60e06ae1793502a316a276b2e21087305f453d8e99d08730e174159db09324e4cbaa067cb1e766e455a34159465bf1138a285cc386502d698538ac63de2f496b120be468a952b02c5dcfac5a997023b5b3d98691572103e158672eaa0a4e4f44fb6920ffd874f52748a630aa41d188ece499aab324e916079b3bc2427b35896b26b0d2564b2a875881a074706713d326306fc66efaa1b8d4cadc7c85b7ac211c4f61f68a124465397385b2ac7a09686935cde06638f156e6e4670f963ca82950d3207889446be69e2a0d7cabfb16141868a6187b5be7977c354fb27a8c9cb8197565480244bf296692a02701580a2b4ac4772b13a27c869123ac3b6cb6699698c11261f657ffb6c8d78102e0c60c004c0796f319330435a29abaf33dbbb1c566aea10349981409ac31c18aa48631a1f0657116821a2a36c2403870a3787a1e3f36349b3373ae729a859af3163c078c38ef38c464ac5ba1fa8150d9093f97c17106c99c632bc42a5ca0595508bfa7485b23bde8d12ad7bfc9c10c68374b70a4a46655b5a67d10697d2f9e047e603b8845c9ecb168576f9d8bc7f3c831b6ec15c5fa4f744315d3afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93 + +# Official test vector 57, seed: "4142237070c216bcbe245a39bd9220533c97651d84832b26727855ad994a0760c52b9319ad404693e4248b8c5ff324b3" +seed: 6a1aee5e708c1b47f02bdacce4f56c860f74fc7cfec1ef3b58285b1c8ad7fec2230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 +public_key: 00e7a56e91a766c72c04ab283d25787224a588eb4fe0c6b54d889d127a471a72c65f06375d1a545ad9b058a654324b5615138b2ec4a375989b3f1b60fd30bddaa2307205a103b29be6cb75f3567705a0c05eb845d493caf795554ab25fd03b379a6284988763698b1bbb4b3c1a54b9c2038e9ef30a3870a11604288b32336e15939fd181525909949c6cdf7737cdb382b1dccc0c49317213683b349f8da22db0b45e359b2f8e70916a0c0142fb264cb6bceb80afa3a36912d635d7b4cbf33a4a36e4c6714c551d70a18b967539b7a604c5182ee7673ce91d07736f5b97b407879e77050bcc089a14332138d92ab3e09b497b834df573dea32829b471bd5a73e61361ec699ee60320ccdc0e6fc983d3238a8d5abc3412bf48d67dd2e1b0c2692a4e705de666aaaafa9eca476a1b155d52459b563b6ef1549c51f83bee2963a93729d4746a01a21dc667b120d38d79a45a112067205c3edd378c7f65c940719f79389436a5595010678e1558ce163ad95593a751c737d4936ed9c7cfd41effb1abedc07564fa5238ea2d2908793e2a9a33e08b67ac3133402d42344f6d1c804536263661a557739cd8c29682549fff416c069a39cd48229e47066e02612988bf780256e25009ec5b1ef829bd39bc0654a0c8c3c113cf421f06965713849a83cac9f6415482d82074fbcba804b4c5f2b1fbd941c7ec8c4c691dee981392bb0736d43adb3ca548829a55bb9537396d7bb11922a9167ef01cb1aacdaf17902f671a6cf5487bb643e0a1cdfa3522860326d374ba8009833bb08eb09a2b3cab0d3193a6561c17d60b1cacb24cd3c26c455c040cf9ab0a7292bbdcab2d5b783d65bee7a666ebaa2764e98b7df61bd5ba546bd307ad7469e4ea85b6031224d9b1315720ccf95273c35767c43a3b27a31773c5b35c7e4aa0316c53cdb2fb1a60ab77c4a76f2af78bc2d6479b909eeb9c26ff97a47c468dbe7c439d232a914766fcf8772e7ba92b3182e362735c237bcffc3e940cbc5e6042df923eaec04d96e31cc3187f66735ff1e62fb5460895b22145787484e529a1d654a2d72cb9d81b4d283bb15682e8f9bf1037cc95e29cc3716fd89810e1bb95da871a2562645e0c60a27cb508c2885c19befc686db2e7a78aa66b934aa0d42c856cd361ee93294759549929b59adc1ebec3686e70c4a15c8d56dc23ad080945d4734b76b0a64b73de7b5d810ab8daf48542a4c13b8a14aef05c788448acaa51263cb31be69a91888ac66075c0e59ead1b29d6439e94253d20f965d9f0aca53a28b4903bd40a1310f0123ad221a45961527589e7048faa407028601e397a96b39728bf55437d335f1e14063d3902e923863bc90572891117516fba340263d6a0aaa0743e959da8f21ef9fb38431b36b1328a15696e97aa78ea97936f8b38bb1556d2625f5ac31e1b8cb3baeb1be7f808b6329a440045eea532624354dfb71dc321109d0058f24ba4729c375ccc0440948fd345561715654f60b378b477a208cb83f3afed2534c5ab6efc0a5761d46b6cc0a6ada55d1c92c7558bad4091772f65bedaf335ba37af34582e0bfbbc6609bdd3568001734520f45d9f4772d1d21d5080b9a7a2b2e72a0b6e030f1418beb28a229c8f63411446b83fde11b3d946c9bdabba08d495aee50911cc66291fd0 +private_key: 1023c0608301ab03cae768b68fb495c496b583b72006f0aaa985800df2b6ba238cf37748dfb231fff957ab744cd8c5710b301340426d66507f48a23df19878d9cb0ddfc06e1674c03124cdc4c1c70acb645ea55b22403190d813f287a5c245b4e7a31d11988d218988faebc195366760303ff99433cf07b68fb4bf6b8a507e902b0a07bd2f048f0393bb9f5b40ca588208faa73789a0107ca9c4d12239caca11500f3de39995d11911b9386e8bb22cc908e9906bbb247c96a0bf6ec14bb0e33113aa4ced8531beca2d415066cbd299a9dc920a935b1bb599c0c14a695253fbbc8ad7344122e8948f5b10e46138b28740348aa888ea0c18d53b875232c34bb0d44197352505231bbf5dd356b8955856a4c3bb4615dab0a07724065f4ab0ace46fc684a3dbbc9ac0e776e6d628af8a2794829567a95d2ac0699e3a87a46086781965df032586290d2edc5c57a7332a286bcf39b8af181424884863123d1145031ad069e0a56f9212c76378871848b121489773a623c69c139a33363bd032a40b4fa15637c01916c132754bea335771810303418f75a35d591f212a603dcb2f3fe9ce261acc082b4e38477ca9348dbf6bb981128be73c189147b21949666cca3db8e433fe66ca43206356884431266b9d1a92b1899217aa636d3c7d7fb11a2e9ca61abb586d20ac1e46198da618cc71bd52b922de064ff5211a2b53c51f206e025505d3273f3f682e1a873cf41433b77608739b55d457364c04315dd8b304604c2fa52734fb25ba6c69f9030008a310ea76b450281168a3201b9892e5b7926cf53c3e3a591979874248a361c5c1f601d0580351cd51a78392bc4134c708dc822ac8b9c032a80875b30eb69f9a636b2ab13c6a35ccf4d704ce40aed8fc2a3f47b50599b024f73444a09df092775f5a77113225b87cc295e336eb8668ca6b3dc1d7b5af00a75730c8c3a45f05f9a22c66143965466f5b7cca564b6afa4a3ba0a57dd5b7035651725010ac088727c5b7b5b91f173589e7b94463f70bf9813c28b405ee53c10e1943cb61ce66527d7c0529cc67b181ec6b4077ab764aa9455052495c9dadf033ce50c51a3893aa250f6e47711e96aecc69a13aa60b1e837c1ad98b5ad2931a9084c6c364b4a33de1a02d01d9155b527f036b35d5ec3d13b5bf49e8be9b0234f49400fb512e22a705e0b6212908b77f715b3813bbbe29539cb63f78075f0f3cc60821b4d24b5674e29af16647fe917452b85a1c887286a89afc31955fe8afa67aac2ab30295d8564ea94c720268ed866ad36c8bd634b2b6e6977ea1781a592e532b3f292b8fcbb10235246f8c320d6daab3a7fc26b63251dd98a12550166b513a8d66435789bd979436dbd263b18c15660693e6eb99268a3d80ea6c995234d7e08b7712b295543b0b3b9856c72cd2268f7f66a0c67c96a2a1bddeb26a4ccbaf9d7499a7a48a65982c8059851b79c735897109479108acc7e668bb16c8a530a7bf4f473841e17c191cbbf867b36059505446cb30c26ff5970fd21a4043854d96d9575ea25415c263028a2a4f35c824001eba5062e23098fc4556399241b8e48933e28c67068d34155507e23ccf4877bd170f38203fea3b9e2a289602301a00e7a56e91a766c72c04ab283d25787224a588eb4fe0c6b54d889d127a471a72c65f06375d1a545ad9b058a654324b5615138b2ec4a375989b3f1b60fd30bddaa2307205a103b29be6cb75f3567705a0c05eb845d493caf795554ab25fd03b379a6284988763698b1bbb4b3c1a54b9c2038e9ef30a3870a11604288b32336e15939fd181525909949c6cdf7737cdb382b1dccc0c49317213683b349f8da22db0b45e359b2f8e70916a0c0142fb264cb6bceb80afa3a36912d635d7b4cbf33a4a36e4c6714c551d70a18b967539b7a604c5182ee7673ce91d07736f5b97b407879e77050bcc089a14332138d92ab3e09b497b834df573dea32829b471bd5a73e61361ec699ee60320ccdc0e6fc983d3238a8d5abc3412bf48d67dd2e1b0c2692a4e705de666aaaafa9eca476a1b155d52459b563b6ef1549c51f83bee2963a93729d4746a01a21dc667b120d38d79a45a112067205c3edd378c7f65c940719f79389436a5595010678e1558ce163ad95593a751c737d4936ed9c7cfd41effb1abedc07564fa5238ea2d2908793e2a9a33e08b67ac3133402d42344f6d1c804536263661a557739cd8c29682549fff416c069a39cd48229e47066e02612988bf780256e25009ec5b1ef829bd39bc0654a0c8c3c113cf421f06965713849a83cac9f6415482d82074fbcba804b4c5f2b1fbd941c7ec8c4c691dee981392bb0736d43adb3ca548829a55bb9537396d7bb11922a9167ef01cb1aacdaf17902f671a6cf5487bb643e0a1cdfa3522860326d374ba8009833bb08eb09a2b3cab0d3193a6561c17d60b1cacb24cd3c26c455c040cf9ab0a7292bbdcab2d5b783d65bee7a666ebaa2764e98b7df61bd5ba546bd307ad7469e4ea85b6031224d9b1315720ccf95273c35767c43a3b27a31773c5b35c7e4aa0316c53cdb2fb1a60ab77c4a76f2af78bc2d6479b909eeb9c26ff97a47c468dbe7c439d232a914766fcf8772e7ba92b3182e362735c237bcffc3e940cbc5e6042df923eaec04d96e31cc3187f66735ff1e62fb5460895b22145787484e529a1d654a2d72cb9d81b4d283bb15682e8f9bf1037cc95e29cc3716fd89810e1bb95da871a2562645e0c60a27cb508c2885c19befc686db2e7a78aa66b934aa0d42c856cd361ee93294759549929b59adc1ebec3686e70c4a15c8d56dc23ad080945d4734b76b0a64b73de7b5d810ab8daf48542a4c13b8a14aef05c788448acaa51263cb31be69a91888ac66075c0e59ead1b29d6439e94253d20f965d9f0aca53a28b4903bd40a1310f0123ad221a45961527589e7048faa407028601e397a96b39728bf55437d335f1e14063d3902e923863bc90572891117516fba340263d6a0aaa0743e959da8f21ef9fb38431b36b1328a15696e97aa78ea97936f8b38bb1556d2625f5ac31e1b8cb3baeb1be7f808b6329a440045eea532624354dfb71dc321109d0058f24ba4729c375ccc0440948fd345561715654f60b378b477a208cb83f3afed2534c5ab6efc0a5761d46b6cc0a6ada55d1c92c7558bad4091772f65bedaf335ba37af34582e0bfbbc6609bdd3568001734520f45d9f4772d1d21d5080b9a7a2b2e72a0b6e030f1418beb28a229c8f63411446b83fde11b3d946c9bdabba08d495aee50911cc66291fd0d49e426ae85eaa6c911c4dca80caba6e28e5f645a54d8c016de51a2b98241a29230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7 + +# Official test vector 58, seed: "bd334d7b7eb14e00e68863f2e5551a095f8af10681c28353fd19b9a7e70b8bfe266840860609008a567abc66316c77ce" +seed: 6396b328b100e4c7f4bcae69875edea1a1982421558c608c13c592bf7b5d0fef1100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 +public_key: 2450c193211551409a9ff92089c54b048b6a80127c7742ba34333bec498e28d729d6085fc7f5b6e5c4212a0aca0772af8f83200d422b49a80dfa17cf56d8277b792d7b4675dba3a7502674f595a45fe93008acad026410de336fa41ac0c725bf601280bf7b4d7dfb63789175b7748dc54846f3a8b28d055c69e2424704bd84f61c896a40447bcd42b96834c8429ca79dc4a4be300c7dee38a253e35819a43d833046f6437622094d003a3b9914bc6946bb4f4cba41246ca027cf2e599a54a23e8cca88086a6bf8aa92305185a8b232a0f45903224ba2d3276715640451bf49c350fbe5b2d95a5f55223a1a794bde26012bb48ccb4384b3027855331e96ba09c7e757bc71ae9ab2a1adf51ff01bbfd4c77a40dc3e24da767d8b456979913ae97fa9446413084a45fb7827a082eca1094a9437154b2c8edb48d7bb893ae3213b5a95f86bc9e146657ae653f1c9bf54f87830aa968b96b747b9aed4007ab4030ed652652daa9612d00f36bc2dd1299c8f2c84fb56045ab45279735aa1f57ecc470d7e66696a8b7a65bccf23b63ea1d595363466a4d24540e21bde05733154180d1a80652b166cc05af5a7cdb2158471d52fa5006a8ea25c98167f4574a8a47a00b7c031e667a7daf41b32c714ae1855ea9bbd0a1aa18bf64071c44f3783b30ce8301f20cbdc5c194d6131712386bb135af9b55c680790b5147f55a6cdb94075d0f0c289f42aa638623c16be446289d099777717b89922476d8c5511997419d8b5a44ac8c4a9589c5b39c03b045ac31a6e9967fa22c21f5bae213065867945ec746f776b0daaa96d85b61864fa94e76474beec06815b556faa81ace15c552558c0575c44e26cc4f919d3e26fe1374d2afcbb3de23a9be5b366c1a174d8b78ca462705ba70b358d57a751180c781b28075435b2528104ac0bbfe5912f8fda282f93b7e3292a64b83494563741789c98eb7e84d69c7cc2cb1703ab94aa71d7491c69b52949818245acc6ef07c11fcb68c336738fd762269b7ac562aa7401965f2c5b2909404b32cbc86671043ac334e283ab194bdaabc390b0b2e275bdf0cc2651d11207a53db1a2166b7526633cb779d88da83357b51c962f567d03917f0f2b5c3c3b9ba75699efb4a8a5736d98a56b1510cd6f233c2c05909a3ba6203c11ed72a0091785acd729dd609704e51dafd4342275564615b258691b59266a0ee3a8b261c6e9e9894b681806e97fbe3b25b4b133d804a0286a909752220c11c8644417f34597db43ac66159956a11541cb4348c23196095be01023e7b267c1e51fb0c11d9b787a519b3ca3f0ae08c79ed3f256a63b488e38040195983da72f9cfc03a9c5a7c428898291a9bff3cea8089a343b73e616c5e02227553511722b04a1604d5ac718ed753e8adc001fa47665b76f944c10dce0635e9c98dd91b9e6790da2b09ce323ab41cc7c29839784e6ba907979ce815f982585297b5170dc7afeb94524563510257d99131981128c7953ad87ca696d58250aab373ffa3476aac3f650bcf58aa6bbe85168b7c4012b3359a2b6bed702524b8498d3aaa04c7915211e1e013e1961b0e2e32b90e01e0b372446931a0fe6255b412581e2b5c0d60d3b7208a63449b4216546209bab2ad3767f9793d0be98cd2899da27f7d980122d0bdf593022e2 +private_key: d77060c9fc07dc7287876347eef702737a25a8b192146a5bfdb637f936b280098224a38ce6311116518028cc005089bcce93c7c4f65451b893eb1872d5470342d3627e90110022b78ca23d5eb97ffd9a16be398271444d6b17c4c5cbc680fb9f65c844c86c40b291a3cc5a85096b3f150ac9cf1540d1a29ab0d30874db91d17894d234c6bb376b3683273d198c73cac396d942c7cc2c63b19204c15792071ea41383dc864d2619bdddd11431d0b7299aa720516fcada90aac7148fea3d63a14e95d01fb51c03d74bb49aabbf70ab50ef225795340086a0b95a9cb15349501f4c059b26abf18161151c21bcf30d325c1f1d348b58b3bb0da69da24c18d6c75df0f6b0e63414ae9739e9eaceea4b00f0d33775121e78742f9c6ab1aef5aa83b14d8be365270583c0c90847724e39978095c297799774ae05cbd4794882349c68f5a2a2f23877e395c5e14286c9774aa159703312ef63af3fb2978e22a5c1c0152b4139429783ea5bc90016701f1868c2cac0acf4649886b773e5c29dfb7bc142615f93216d2c3ec9eb90e772359614c57ca97c75b593ced123f6a8bf76854d856c65d5069ba084c75f10290d104f5c9ac498200190b72f004897a8d83b0db3274148443f1b14108615a3fa02668bb9baf1086503351ff1301e65085f65cba909bcc42b32fd5578522baea9f515e48b040a259fae266127bb6a8e338965051943c63ea536b5db2c3b6c8998d4287922d5657da1269e8071939b28aef119b0eb66a87378064162b1151e852cb00f927d6dec61bce0631a93c1b51379546453c63626f2a792d20c36aff9a3182c6e7b5833da416f29772b70216732c376a4f59176617c885816bbe72c38a1230f484f1fe4671fdc1224e1bdd8d795c2e0917692517c4441cd4cc3bcd71765212b2e4986c881b2b0e8a0405ba2f7676a41f4aa152003cc185be7cc22c9f402b878bf9d44cd32ca21cf92a720e35f81007345d3bf40b821f48b4b2d693eeed8cd292b636e7360f79237720625e966b9a5d99a7a452d2bc7066163a00647aaca62044938ac6b6598e9eb003175c2a29c46228c7b6464815e9a271a690e771601e252b251f411e6ea91f2f55ea0150a7a5405f536849af80e0840c322c5b339470196b16cbf24484f407dc84819373109a9676298ca273d82bbe4e24946e0617e33897f170bacf4b7a312245ffb780f4c5100109f8c4b629ac1042cb7a946293f740a3589e069987aaac2d996f5c9886d7125cb772a6d93761851076931180d87ae808a908d3c3c1203ba85739c6095b4fbec78066ba9da4433dc4928f4d73e03108fd8f531cd6ac47c088a64562e607c7bde3867691206ba9c058432466eb54a9414c3a3127208a512ab5973b5d118c51468fa70bef827649be94d0d97acf60b693d73b062249806275a5d475afbd943e96a512f45ce54343bb6f353a9b1540f420cf4f01bb3611a09925e430237712a8c2b91beaf7623cedc6988990ef8006bc0da49c57b5eb718409c8a06f81ba501090ea67519c261574b118ebbe1765a145309677ae4fc9ed499934e24500056372a25271f40bef480218d978d6457aac1f9761bb63679396490242558b2b6c617050fd902523a8c2450c193211551409a9ff92089c54b048b6a80127c7742ba34333bec498e28d729d6085fc7f5b6e5c4212a0aca0772af8f83200d422b49a80dfa17cf56d8277b792d7b4675dba3a7502674f595a45fe93008acad026410de336fa41ac0c725bf601280bf7b4d7dfb63789175b7748dc54846f3a8b28d055c69e2424704bd84f61c896a40447bcd42b96834c8429ca79dc4a4be300c7dee38a253e35819a43d833046f6437622094d003a3b9914bc6946bb4f4cba41246ca027cf2e599a54a23e8cca88086a6bf8aa92305185a8b232a0f45903224ba2d3276715640451bf49c350fbe5b2d95a5f55223a1a794bde26012bb48ccb4384b3027855331e96ba09c7e757bc71ae9ab2a1adf51ff01bbfd4c77a40dc3e24da767d8b456979913ae97fa9446413084a45fb7827a082eca1094a9437154b2c8edb48d7bb893ae3213b5a95f86bc9e146657ae653f1c9bf54f87830aa968b96b747b9aed4007ab4030ed652652daa9612d00f36bc2dd1299c8f2c84fb56045ab45279735aa1f57ecc470d7e66696a8b7a65bccf23b63ea1d595363466a4d24540e21bde05733154180d1a80652b166cc05af5a7cdb2158471d52fa5006a8ea25c98167f4574a8a47a00b7c031e667a7daf41b32c714ae1855ea9bbd0a1aa18bf64071c44f3783b30ce8301f20cbdc5c194d6131712386bb135af9b55c680790b5147f55a6cdb94075d0f0c289f42aa638623c16be446289d099777717b89922476d8c5511997419d8b5a44ac8c4a9589c5b39c03b045ac31a6e9967fa22c21f5bae213065867945ec746f776b0daaa96d85b61864fa94e76474beec06815b556faa81ace15c552558c0575c44e26cc4f919d3e26fe1374d2afcbb3de23a9be5b366c1a174d8b78ca462705ba70b358d57a751180c781b28075435b2528104ac0bbfe5912f8fda282f93b7e3292a64b83494563741789c98eb7e84d69c7cc2cb1703ab94aa71d7491c69b52949818245acc6ef07c11fcb68c336738fd762269b7ac562aa7401965f2c5b2909404b32cbc86671043ac334e283ab194bdaabc390b0b2e275bdf0cc2651d11207a53db1a2166b7526633cb779d88da83357b51c962f567d03917f0f2b5c3c3b9ba75699efb4a8a5736d98a56b1510cd6f233c2c05909a3ba6203c11ed72a0091785acd729dd609704e51dafd4342275564615b258691b59266a0ee3a8b261c6e9e9894b681806e97fbe3b25b4b133d804a0286a909752220c11c8644417f34597db43ac66159956a11541cb4348c23196095be01023e7b267c1e51fb0c11d9b787a519b3ca3f0ae08c79ed3f256a63b488e38040195983da72f9cfc03a9c5a7c428898291a9bff3cea8089a343b73e616c5e02227553511722b04a1604d5ac718ed753e8adc001fa47665b76f944c10dce0635e9c98dd91b9e6790da2b09ce323ab41cc7c29839784e6ba907979ce815f982585297b5170dc7afeb94524563510257d99131981128c7953ad87ca696d58250aab373ffa3476aac3f650bcf58aa6bbe85168b7c4012b3359a2b6bed702524b8498d3aaa04c7915211e1e013e1961b0e2e32b90e01e0b372446931a0fe6255b412581e2b5c0d60d3b7208a63449b4216546209bab2ad3767f9793d0be98cd2899da27f7d980122d0bdf593022e2903d69da169d8f3f65eec290acf30078fe51bcbd1aeaf412dfe2d31c7b10157c1100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9 + +# Official test vector 59, seed: "a0264c58ab1f2cbcb212077fd378d340307accb31f1312137cf84e3d3135044d4eae8bd38bc3e540a0c14d46458f6179" +seed: a453bcacdd2b0d4646009e5ed451c3c45f08fb827ef733db3c517a9dc1af93e67a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba +public_key: 352071c0a607e459c907fa29619ccfdb5147f56c208e20b3dcb82fa2304e40c46aaeb47c5bfca8a9079ecab4471d4bcf914c8ba459433ccb950772038f6892062535603b536da65dfd5c33430069a7f33a08092bd9c9617df3a5778b1d15a8a91c8b99bf5b0d4596a3f8a79d3b6994e823c20f102cb2353273471e2675633d9ab2c7668f02e7a68b2534489b169eaa92a8d78e4e182647f71758fc7f49a17fb400c1de30cc76664bd10b7c55885af696478feb919f3c24fdcc98991177b52ca647070cef77ab47c891b06575e5a0814311a75bbc9837a1c564246c163017696294533999b6700a1402552063a621205bc28823e539ad1c1795e0a23b6b47737ae839617548a514631319a78d99350eb77dfba97f7208d04ea980546a9e6642395c5177bb7b433dd47351b85e569091eaa30ce450c1b786c0272b91f9763478ac5410bc1f78175edef0021e8c0b4f074bce255ac2238a5d67b84b08a12984696e1ac7ad1131cf64bc64c5b0a1ccc94e3bba85271975c63f8d314d9f1a2d17835f873846c6858f9f285428478b2efc10bd7b49ffa006a6537684b0093a633d9cf9bf6bf97017690b4ce511b1898971b2978b6a1371e8aa70d970f8600bdd0109c84521e663845805235dd5849b192c12b49b43f824d9a16dba939609e166a8b05e4811b970915dfb527d803672c7a418293937a0c508272a5186203be64b4b1b33578d48be3e23913e73a385a8ada0fcc4cebb1070ca3006ea16f7da6eebf8b9e6637dee942cbe43395c8a7806f2c23d1c146d6359d268303a1229e5d513c79b2095892d553038b6a3431948195bac491a879c4dec39cb1b97374a65d5f066f6c66045a25b9b5889999889db34b1f42b4151126dd7431389a8331b9c123aab61c2122285530566ea23bda21cdedac78ccaa9ca1566ea1817f4791da6754379f9b0f8acb217085fa380910ed3ce4a52cabbe52d75472a63c88ddfb423c1ba6c1deb6ed3172cbc7244fb71300721aa13037ede787ffd546e60890131d8add25551d72881be0c8647aa10eb5cbb5f73c891868d4641bf8a692bcf0a5867091f4313bc976c989d1c184aea07eed11e36c215008b56a55ab5062bb41f7c5895837093671fbf7c4ec63505d15ca7efa5c6e45a5f5a757a4fda02f9f13c7926ba7c990e6dfc8b20ca1a2a9490a33210c14accde09764153bc9d4a2a68b7a80d9a91d3d47789c2a79bb212bc92812f8660f23a833d78a3f056ac030bcad487431a6357b8a1c13b512deec79ceebc37c6099b720445390277dab65346ea323d33c76e30483d51b9d01b5fdd55bb7d116b2dcca951292f3065b1628b1dbb86bd0cf5ce6a66ba1ab3717829019ceaced283c6b748b26425588ddcc47bc89ceb267ac7c03172b960160a6317d44fc5287c5e462911a8c995bb92ea1c81fed5baadabb569f9cf7c1cac71926f3e4a1a7411295a623c41240ea4e9011660227a785d989ab00a2c3091b02bd65a5b244246ffb97e23213f57b86aa21669541a60ed7014f1831839e41539dc8634d0125d61100ea4438af59434a25a1ec0bc99aa0edeb19d67ebccdd22ce5ff925ae364af7868ad6308a602033e0221ab609560144abec5a4792b8894337c866ec1a5df4076739fed133a74636ec9d904e88876b678088d8c70f3c70 +private_key: d98cab94a33c2a631d4bb8a0e314b78e68824f7b2156d3c481c32f35c82cdc5b2f0f41c2ae64295c246661dc0052209ca274b3aad8221ac955b0f30344f775b759adb1031bc5fc34e6eab6a8a10f7c576e848b2c78a31aa0f951ed8b917277153d4842317474693c5643ea6a9d49a8e5a9baf7c61f967c8679647e8c25ce3ff5a766f34b5e481dbf93550bd36595c51c51cc1c50dc278da95325f483209119942a604d3724328a28f18a6559ebc23a2ccc7d647ecfd866b17b2f2f63b31e1886c309211e7238d2c2510568262a48291a9a7a1d5c38aa61c0acfbc20e8c347c59c6cac9bc402788da55baf1a7c3c0093e4707699976bdca93646607322368addd9420df669079322edfd59bf09397c4e2392062b455d25044382e26510197106f681663a2616d7ec46efd75646952875bf708b2a20b9b7a688f256b078a140f170e3187b4ffbc2d742756c1ac1b07a29916f8347c6643131ac72c8c0840ca7f6c866f20d32dc53a448f193b4b81583da61837873b4239b9e690486c240315c387b6e5763ca226d86a028caa07f4c9963af99850f69401200f69c74a0024a4d9a7a54bb978e23c0f13474e978740422c606e7c5576702c25020415d263d9ea362f9556d64129ee182d22b76a8ae4892bfaa97b68709bf905379102a435500835871d192b48d64b5b31a5647c3634489cc2f33c6ca400371152d8148c0ea4acb95b96f3e2919ccc251e6bc458ac635470437165c2bd4a9efce81471d652deb6aa06359123b532a4c7c1a0ab0abbd193042c4a2d82b69df83045bb933eb43d1199a818f85ca0239ebefbb9294657dbe33dea89a844eb54f624c39732201db37ac46838bca17e0aa3b01448412bcb8ec98b26fd78cee583948a37bf2ce996ee852fe1d1a744f2098ca5b0720409fa592dde17432d424ba40a5362596393932c8ca7022435a763a367afb41818e12b88548392f9973619b41430cc48339a241cab26c68855b07ca4163169497e31831aaa57c3ebf384f3926b28374fc4cb2ae37173dae034ec61c48e804ac0a347d721c670357a7e78198d3b3eab02c168d26e3ef04d1468bd7ba4be00013266fb8fe3bb98a138b63a45167494c17b89c6a6e939d75584e755bbe8048fa2443c57f07f1f178965047e2a59c6815a5b92b6691c9c9dcb6250bb73725586b57c8239eccccc2fd418289a0406671d68e79e4118304637c9468b7312805599960c19a824582b5182dca37dbc63d5d33559a79beb56c60108c5655789bee1c42b75b73b9b336140b202b61ea32324134b8dbd064bd3293650c5b8e8f87793080e509cc7beab0eac8679ca5a723cfc119bc1a18e7631910a2f50601fa280084b98aa81c38907f0a685b3acdd630a3532ada83648bf858084d087c60b1ac73c76ff4477d9b01375a7cea52280b404564dd69c46e3a2125729463ca7fd724c35738094e627e5f1610a9a00ef7294f4549470b993d0447dfe34b8ac264c547a0b7a134d19ac2bff750cf2e4c80f32679375cdf0906346d64a56ec7648c4b7a20613c9b74301b12d40d1ac64f8318708820006d06e088811860a1cdb300187c694335170f6539df45834b93edfd4275e939fa5f828b6e471a5e09b352071c0a607e459c907fa29619ccfdb5147f56c208e20b3dcb82fa2304e40c46aaeb47c5bfca8a9079ecab4471d4bcf914c8ba459433ccb950772038f6892062535603b536da65dfd5c33430069a7f33a08092bd9c9617df3a5778b1d15a8a91c8b99bf5b0d4596a3f8a79d3b6994e823c20f102cb2353273471e2675633d9ab2c7668f02e7a68b2534489b169eaa92a8d78e4e182647f71758fc7f49a17fb400c1de30cc76664bd10b7c55885af696478feb919f3c24fdcc98991177b52ca647070cef77ab47c891b06575e5a0814311a75bbc9837a1c564246c163017696294533999b6700a1402552063a621205bc28823e539ad1c1795e0a23b6b47737ae839617548a514631319a78d99350eb77dfba97f7208d04ea980546a9e6642395c5177bb7b433dd47351b85e569091eaa30ce450c1b786c0272b91f9763478ac5410bc1f78175edef0021e8c0b4f074bce255ac2238a5d67b84b08a12984696e1ac7ad1131cf64bc64c5b0a1ccc94e3bba85271975c63f8d314d9f1a2d17835f873846c6858f9f285428478b2efc10bd7b49ffa006a6537684b0093a633d9cf9bf6bf97017690b4ce511b1898971b2978b6a1371e8aa70d970f8600bdd0109c84521e663845805235dd5849b192c12b49b43f824d9a16dba939609e166a8b05e4811b970915dfb527d803672c7a418293937a0c508272a5186203be64b4b1b33578d48be3e23913e73a385a8ada0fcc4cebb1070ca3006ea16f7da6eebf8b9e6637dee942cbe43395c8a7806f2c23d1c146d6359d268303a1229e5d513c79b2095892d553038b6a3431948195bac491a879c4dec39cb1b97374a65d5f066f6c66045a25b9b5889999889db34b1f42b4151126dd7431389a8331b9c123aab61c2122285530566ea23bda21cdedac78ccaa9ca1566ea1817f4791da6754379f9b0f8acb217085fa380910ed3ce4a52cabbe52d75472a63c88ddfb423c1ba6c1deb6ed3172cbc7244fb71300721aa13037ede787ffd546e60890131d8add25551d72881be0c8647aa10eb5cbb5f73c891868d4641bf8a692bcf0a5867091f4313bc976c989d1c184aea07eed11e36c215008b56a55ab5062bb41f7c5895837093671fbf7c4ec63505d15ca7efa5c6e45a5f5a757a4fda02f9f13c7926ba7c990e6dfc8b20ca1a2a9490a33210c14accde09764153bc9d4a2a68b7a80d9a91d3d47789c2a79bb212bc92812f8660f23a833d78a3f056ac030bcad487431a6357b8a1c13b512deec79ceebc37c6099b720445390277dab65346ea323d33c76e30483d51b9d01b5fdd55bb7d116b2dcca951292f3065b1628b1dbb86bd0cf5ce6a66ba1ab3717829019ceaced283c6b748b26425588ddcc47bc89ceb267ac7c03172b960160a6317d44fc5287c5e462911a8c995bb92ea1c81fed5baadabb569f9cf7c1cac71926f3e4a1a7411295a623c41240ea4e9011660227a785d989ab00a2c3091b02bd65a5b244246ffb97e23213f57b86aa21669541a60ed7014f1831839e41539dc8634d0125d61100ea4438af59434a25a1ec0bc99aa0edeb19d67ebccdd22ce5ff925ae364af7868ad6308a602033e0221ab609560144abec5a4792b8894337c866ec1a5df4076739fed133a74636ec9d904e88876b678088d8c70f3c7008cff1967030a528e748b708b0fb783577f249c04ea5536d2da034fd0d15fbac7a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba + +# Official test vector 60, seed: "99a9cdbfc674ab3ff2c64cded7d697a6e27a767434a47aff7c3fbf3c6a22d6043d27868955286a13efe3de36d22ec48e" +seed: 47ca2b77c5b717f423222c2730ca5cb9c856bc951d01b2b2c80bd76ccb5539b78f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 +public_key: 4a5058d467b5ff439fb0c2916ab09bd306661b18626746c8f4db817e3c4dd2c71041929dd7c5918a760f50715c6528c2d2e7c9b97c51e9009281849cfe4410b616ce03455c73580fe16634fda087387023e427902180c5e8276b797abcc47028cac91bc751c9ec4a9c39d682cb38b38882103839947b920ed453a766c04df7ba58f9714c6c370b98172a71fb7d254285e609551f31444e90c2b1d595472825fb9cca49d55c237a67377808ebcc1bb4848a75527ec467a7f94b8c4f8b1a16f789f3ca15f4f332fd0160ff6c4985b08b9996bd08892d5a836d50566bddc6adc6ebc7d3c95068c08682d54e70666f5f62b238f69bf86a3a48421bcd8b762625c06f03cd8e013561abbb2f01b1c314a6a61500aa02b9a54682325340ba328761140781885febec3a4090a5989b914a494d07e9793b703ed4b45af78c42f3bcb46cb4c7fc5352802ba0eab35b9f66c34c39259ae52d1b75b910a82fbb464d37f6befcaa811abc6485f41d38c8a4d1592ec69b5ce90c7cd10c0082c0b72dfb2e5a16b4c7ab6e65f58fbeb6c442fbaa2b4345b3a3326bccca3b5104730520383178589c4b4c751796c31aa061346620ba90d30b340c541f7cad17f86e05c91e4c21162f618b52117ddb572e1b90c0e19235a82a3e51b59c3b280ce3fa739bb70e4af9233831269ff87f3114596f317f28dc11b8b53d578a8ca85b290d31abb115b76c0a8748124fdb822f989c241b801c8b982fc733921d45853cf63880107704baa331b725a416471032a9289673f3ecad22050d9c5c9e2706a341553d168bcbad1a41a3c554260112336430fa16ca8fb98cf5d92acafa8fb427c460a27aa08358b36c5ab849ca2725b72c939fe0601d1e2abcc4434bd0ac835751315856922ed53cdc7b49468caca339aedfeb25ec2b97d43ba409693fba524ae4ecaee5b84b567432270644d6aa618669734e10c8b05a0d697b81d6c83c9f844cdc8ac755403044b14c288131e8c0c21c2361b206597782313d40bad1d56dbe159735491f7b800d6b14ca69d92bf2130badd1858b2cc4a408c33ee56fdfd719abb2a431132e15b89d83498b6bb5aeb0d7404e94cceb2a29fc392a2e466469e53da9c371e0155a774a298d515d70ec5e31aa070be92c3d6290f285a6034a97e389277eb393c5100f066c588aa33e66028976493bf41481b2eba07a720937bc02b5324d63b9487a1789a6baca91512c1a3a0a70b348c1596cce7997ed395b971442ebb3b0e2dbbf5608012030a172b259ac705af9634ad585916cd63ee1248ca143a20001a20cca0496734c2c52a59bb40f76411578e2c60f2364e8763ec1e5641c80a9d6235d4ff9ca73f4c4d6db9bcf3383d7d9a025ac76db1ca49710aa281c222a4bb81b1027d80c38c8365a39988a029a93b5dcb2b0f410fd1b63a54297c65b7de3f3a948f10988b507955aaaa2d3c699dc83ef348e3781c8723b9bd1c6637b94b6cd416427592c71311a16d449d15c0fb2753b338586f7260cdf255ca65cbc8c54101731a45544312099a66405b01eab124f116cab0003bde314b25690520a9a2131154271c89b97539035652c03b462f2635db501f9ab6983017f22b3391a67397066c86032a31080d329647a7c4f5ab89a47393636ff0671a4b06948c9f87fb580358d467fd3 +private_key: 9483b4fd275acc8cb660713ba7a57bb442aa743537e9e4b3dd73c5d3239cb876cdadd5a1dcd364327a7f8cda092d6841879b0fc7b64e81216c9acb87a4150a3fe7bab7058a6c6464fbb9ac71954e65647083f42acdb15829426c53c55a7984074dab019220b5f570211db614357ca0d3da2b648b2af10c0cd6008ac31ac8d995af6c44531d1125cb710a6bc4a573f04558a97eed49071f748310a9c844c63b491997109ca079613d96c2910b365eb343b3e405b749f33cb6a3502ed634c50196d364352aa06f5a149cebdc2e59d5b27c828292332157e98893494fde7bc51996562f13081f2ba89ec4b416c4732946b4aa26c5e5600a8b9b18278c51821ca36e153ab0a763dbd397693800a62a1e3682c9f71154aeb6772cb3368b6465400c7b4b200e571390165cbf56452072e38b797ba0465238f9e80652a0ba700951fed03fae6c91787c8b2c752a02a4ae52a16b4d1b057931174890656b53984ceb20b1b90d6fb10103c97f5dd7a0ee83cb2b34c85825766edb64e2135f897a6ac1b144ffd8225a9887d546c0d9f1b3d851003e810fa2193c856c7944315869349c93dc84616134c3901d1f137358984341069546da01864a16ca44025e78cb36744db7b3045425243526524f064f8b46c862a7660acc557d71574f227ea5d83ebf2c52db172b4fb7a70baa0df43a776a326cd2dc4367b89843a79205f34365f3b206798550c5624e241f03b41d56776c88636611fb1be2656fdc1c4e1ea84b0bd1b7c804bd53795db335531c896eb72558e6805599ca66ac7a77e4d9a1ff20349dcc76f78cae6c59b93a8165788216a7a611e2233bb4346aa01b47e5b458c970a0cac589f0cc8435b25d74a12d25f10dfb51536b465f085cb170757f8181c7b7c32176109a1a8bb3a59a4d545365960267746349caaaa182136e17f4a32bb040fd3038dada40c8443694789654db794f185cb7054c6bc50f9a24ac2edb5f34eb6a5b410561c0b12e803b998bada9e346785cb2c8e251989354540acbbbfc8517abb5071055ce7ac646e0197b89390516b9e56bb174d2b28d3aadcd0a51bf098f3325642e9b753015af338a8d309000c2313949b2b30314b924e5050bb278c2c4cd96520fd8009c8944569187a69a749b651039ca5443c30b7755782d1d5a289c4baec0f0b0e8153f3986a969e113cba21b41a06f8184b586fa312606419375387eb08980b86f97b382811400e82260d3cb5c74fa5e57b15c06aa2d8b250f92ea0ba222be524459a589a7ab46ac01a5564975cab66002c20745824c313d6167ef2c5a0266419b291401f6cd5b2497cc4cb7a7fb8c67a8761541cb281665f6da184da0ca520395cd492c86a3ae8aa91ba3d24d52322cefdb38be7a6cea16209cbc69e796a2c43b1581a015c2e37dcde072cc4012187276e81b54c20c6f95a6100093cbd9bcac7b75a904eaa9ec31338203c40cf28425ea9c5403ac6cba4cb8051cc2c5ba3f592100aa4188e2696211846bb68c4e39cebf26464b19812c98c0472a76e0a44b2631c01201546ac9982eb8334ac30a4be25342d48666ca41cb63423b9baf290499c27321b5705e8a70474b2ba392a34c17e1a4aac49da90cab751b0e5f50984a5058d467b5ff439fb0c2916ab09bd306661b18626746c8f4db817e3c4dd2c71041929dd7c5918a760f50715c6528c2d2e7c9b97c51e9009281849cfe4410b616ce03455c73580fe16634fda087387023e427902180c5e8276b797abcc47028cac91bc751c9ec4a9c39d682cb38b38882103839947b920ed453a766c04df7ba58f9714c6c370b98172a71fb7d254285e609551f31444e90c2b1d595472825fb9cca49d55c237a67377808ebcc1bb4848a75527ec467a7f94b8c4f8b1a16f789f3ca15f4f332fd0160ff6c4985b08b9996bd08892d5a836d50566bddc6adc6ebc7d3c95068c08682d54e70666f5f62b238f69bf86a3a48421bcd8b762625c06f03cd8e013561abbb2f01b1c314a6a61500aa02b9a54682325340ba328761140781885febec3a4090a5989b914a494d07e9793b703ed4b45af78c42f3bcb46cb4c7fc5352802ba0eab35b9f66c34c39259ae52d1b75b910a82fbb464d37f6befcaa811abc6485f41d38c8a4d1592ec69b5ce90c7cd10c0082c0b72dfb2e5a16b4c7ab6e65f58fbeb6c442fbaa2b4345b3a3326bccca3b5104730520383178589c4b4c751796c31aa061346620ba90d30b340c541f7cad17f86e05c91e4c21162f618b52117ddb572e1b90c0e19235a82a3e51b59c3b280ce3fa739bb70e4af9233831269ff87f3114596f317f28dc11b8b53d578a8ca85b290d31abb115b76c0a8748124fdb822f989c241b801c8b982fc733921d45853cf63880107704baa331b725a416471032a9289673f3ecad22050d9c5c9e2706a341553d168bcbad1a41a3c554260112336430fa16ca8fb98cf5d92acafa8fb427c460a27aa08358b36c5ab849ca2725b72c939fe0601d1e2abcc4434bd0ac835751315856922ed53cdc7b49468caca339aedfeb25ec2b97d43ba409693fba524ae4ecaee5b84b567432270644d6aa618669734e10c8b05a0d697b81d6c83c9f844cdc8ac755403044b14c288131e8c0c21c2361b206597782313d40bad1d56dbe159735491f7b800d6b14ca69d92bf2130badd1858b2cc4a408c33ee56fdfd719abb2a431132e15b89d83498b6bb5aeb0d7404e94cceb2a29fc392a2e466469e53da9c371e0155a774a298d515d70ec5e31aa070be92c3d6290f285a6034a97e389277eb393c5100f066c588aa33e66028976493bf41481b2eba07a720937bc02b5324d63b9487a1789a6baca91512c1a3a0a70b348c1596cce7997ed395b971442ebb3b0e2dbbf5608012030a172b259ac705af9634ad585916cd63ee1248ca143a20001a20cca0496734c2c52a59bb40f76411578e2c60f2364e8763ec1e5641c80a9d6235d4ff9ca73f4c4d6db9bcf3383d7d9a025ac76db1ca49710aa281c222a4bb81b1027d80c38c8365a39988a029a93b5dcb2b0f410fd1b63a54297c65b7de3f3a948f10988b507955aaaa2d3c699dc83ef348e3781c8723b9bd1c6637b94b6cd416427592c71311a16d449d15c0fb2753b338586f7260cdf255ca65cbc8c54101731a45544312099a66405b01eab124f116cab0003bde314b25690520a9a2131154271c89b97539035652c03b462f2635db501f9ab6983017f22b3391a67397066c86032a31080d329647a7c4f5ab89a47393636ff0671a4b06948c9f87fb580358d467fd3b5ed4c3fb678a44d92486cf091333c7f035541614729496d5dd45ce580f0d2638f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787 + +# Official test vector 61, seed: "c799d57b41f28c5c446dfc58a5ac6499c4bcf3c162afd2b09a16549826ec2a6f689e44bafc4acc82f5d6aec23f4a3993" +seed: aaf6eb40e596a5e3e8218871e708b089240dcbe7fd3641f0e5e41e071ce49107e2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 +public_key: d0a4700800708a0cbaa0e3347235004460c8f86188ae66af363ba5cee88b03a341f5255c329a7d119bcac87c46bd77a1b5966a3fb22a45d89c712909fa8c69967b1fa8878d89b8541b8a1ee6858932e0793c045deffa62250c0d0072a46328992ba7ac4fd72b48512c7448cedc902d9d69ca55626a09d1a700a92cfb1a6bd89291632c74af580e3b4aa932c8c6714337b1d72a3002c6b68b1fc981cd0686502189712f0c5327e1050ef71549aba312a59e9a342c9e76a96de6907cf235b6e3b5e36a9072ac95d856aa7014699ff48bcb7b298e5168cffa740e0a5bb1f65df9cabbd715096ce738bd39bad530a05eb58efa8b9e3dd426f1781a06179736570611c89a6f99b3c0aa5f4ab2737592082ff73dafd7671bcb60a87c5adf3445ca3381a279c6a4fb1724373827494e294ca5d83574e0877e4a31634abb106b81afd515402290318ca8a2511cb129aa52228ba4a64444b761c184a3a29b221e11cc1335e4b87c457710fa4fdee790614249fa060b0417cfaf9bc4fe88632a76766fc8c5ff424849cb91d4351ec621c2335a2d7813c01cc893c646986f7c2246b2bb05149ebda38f00acb65cb8bf53314561893eb0f1053b237915711b7577b18aa963315a3b024629689a52bdfc81e298c059380920aa5bc39759f2f56d2811c89c59acde3a5496f1a8cce9bf5266b363a40cc1b6c78fbaa4241340dd4563a5603413cb73ba1893bdbcb3ff93bb7f1132940998427769d19047bc051506b5b990074e8d1bbe2d988699b526726a91513988627c2301b44f206696353cab38f68ca111270ccc6cab887ac3b8bedacc12513ca349228b0d842bc193299ad1812b69c63c2b8233c20121d50793906c4014453e19a62da12c76f03667031f2bcb59a074cdd2417ba3789e7af38ac71335736890dac04f77e0b10529381e930c8c0031f88838efa47772a7b2541963b0c7b063472ccdf6228349cb5619c943067ad86019cd964c64767c838407eb32a4ed9c40581b63e0379d00adb275f6578f065894e8a47796489b994ab9471235455fe1f819f3cc2b378648ac625107805ec8946f1599a8329981a7775523f7c8ef7426d8a31d1d5cc98820186fc7b55076b14d2c7c1533cc3217354bb24661c162aa0895cdc4aaefa666686a0f12d1791adb7392b78d31d6bec44068c4f31cd60a768ac0b056c24864c03387715dc48bc86e1b51a649ce4945708951065f946e17c06f364590e4d16520fa2b47b230f1511fd02aae79bb8fa72791806b0d3e211de92455459066b410bfd4d437f0acbbfb02bfc5e93dc7904b649a6f9a7ab09e2679e13040c8e9754032cc3feb8c2bdc21d8f7aa56ea31370169ebcace98d54362ec24b6b6c63732b882984e58839a7f825b17871820ea9dd0dc8c5e7a15403888e80150cf5a12c5e26040708791d2074df71945d67f221b6d2bbc1b65d37559a7c248516cb4ccc19cc15f93ba6d6085bdd95568cab1069cf13138b83173ea7c58ebbea7516c6ae25bf5e07ddf29a0dcd64b455aa6e050c1d5663245318833cb95702bcab1a11fda773a73454e1055104f917b75d650dfe1c59e807314a096de713e35837ba4f2a5f3991f6ac18302647fe01a05c055ac9d19fe27027cad17633dc0f4693c1f79cf69756e79c9fae7c954a0caf2c6b326 +private_key: fb2abf16f6cdb674757180738286b5cbc25ee9eb1229f3781a8678ccd0c5d4219d49352913bcc4a404503d7282cc215ae337ae96c60fefc6a77e5c600962024e25328ac211d6d6c325746ec168777bb4489b04cd869522d44a62d1bb81dea56e8ef8384ac64fad710efdd327410c6b7d184fbc639e2f6c72d64b44bd303c06779be8c2b2cffbcb8abc582a2766efd9503745773ca2c4f92769cfa2b4e9052d06d1adab40137a2419891bc9098898935650197a0e3dba7f6ec54aa9b521624c48d265a667aa4269a12bea0abfc0e705fe422621848a6a87265f687de0669f56c63968569c1d807826ebaac30173586312f1ec53b0b52ebde2aa82f32ffe592fb90363cb3a281f49cf9e16b9ba4390072c5a796c4e4ac95ce2e14070014034a4a92f8c1fe4733c645b5dbec38129a4021d5c1afb9005c1756e37f431d89177142891827519d2874c9d1273967b176a311f041270cb3bc8d0779c3e40bf824102374a55fe5b2598d20d8d30249b59479946936fdc6b0e17a39d4684bd914479110e68c780f8468e3155be5acb0930fbbeaeaa79bd655592a28622cc0553a3123f2a9fe15b78c89501b0943731e71d2ab05fce4129b6324d66991114974dd7e79ddafa46879286d8d5ba285526f8767aaf45184e860e8e23ba7458aabfeb021ec68b19253a19204c7fbc81ca904cee1a2b7c38982c97a01e2330292168198101e0f30c1a429b3d243eea7114de5849e50249ac66bc24e482461895a9d28f4f181e5b036e7299832a14bb02435d9e087f7340432a632bdd84aada7a657402bc91b3b0a1075e39d66741e18855826fef247b6e1496e3866f9a2226c4d2a198c050ae706f007d1a4317b45aec0a1e7a2e359b695dc7523050c564b717e2b1005f570235129d913ab2e5fa99cfeca4b4262d48f0486e6b3c47a61946114c69150b068b92a8853c26a9c4c1016e67cc90cef8cdee024785e58586caa9f990b48546bec008956a1744dd9473f4a150445b8c46a1c4b171712c1b94a9743fba6b389b8852175b0b1d093d8d7c10fb079dbe65771a8120c1930f769b8fdbec6f857025c4c44771842d8d42ade8dc3712d9a9256167dca6c1caf1a95301cb6401afac63a7d0915059b6a7e45c0567c951a3096bf5cb44114091d497352fd2be702990608991feaa7302511e838c9a346ccc267caaa9c5221ef60b317b6c3a18a07ddc737e6221d28667c70caa3cd24533175aeb0a99bcf7cf60aab105385906fb1167cc26923a2f3c390fc2d150d3760d77b8954a61065814b6d134887b570ffa944f2d1299b6e6bae557cdb041b2b084792215cfbe30302f39573e6456f486b8dfc22b95f96b78098ffd343126671219244df0c4443f46473818c78f185dcd4765ecccaf4b67276f697d21108ebc16632be86fa48278d467021a1520ae6b0668fc7471c9262eb716cd307c98a1c205a83be5279b0143806d3aa443cc7e1a255d2df178e7e298d938c97df6260a278052b763e1bbc2f85b1389b78abadb449ce848b0eb8a5b44b2e881ac3e6bc66a2cbb9c998a0f3a2439816809b97d066b87da226907d581d981481fa8833d9aaa2eb6b5458288872c5974d9cf06cb6da269471e51cd2945b1d0a4700800708a0cbaa0e3347235004460c8f86188ae66af363ba5cee88b03a341f5255c329a7d119bcac87c46bd77a1b5966a3fb22a45d89c712909fa8c69967b1fa8878d89b8541b8a1ee6858932e0793c045deffa62250c0d0072a46328992ba7ac4fd72b48512c7448cedc902d9d69ca55626a09d1a700a92cfb1a6bd89291632c74af580e3b4aa932c8c6714337b1d72a3002c6b68b1fc981cd0686502189712f0c5327e1050ef71549aba312a59e9a342c9e76a96de6907cf235b6e3b5e36a9072ac95d856aa7014699ff48bcb7b298e5168cffa740e0a5bb1f65df9cabbd715096ce738bd39bad530a05eb58efa8b9e3dd426f1781a06179736570611c89a6f99b3c0aa5f4ab2737592082ff73dafd7671bcb60a87c5adf3445ca3381a279c6a4fb1724373827494e294ca5d83574e0877e4a31634abb106b81afd515402290318ca8a2511cb129aa52228ba4a64444b761c184a3a29b221e11cc1335e4b87c457710fa4fdee790614249fa060b0417cfaf9bc4fe88632a76766fc8c5ff424849cb91d4351ec621c2335a2d7813c01cc893c646986f7c2246b2bb05149ebda38f00acb65cb8bf53314561893eb0f1053b237915711b7577b18aa963315a3b024629689a52bdfc81e298c059380920aa5bc39759f2f56d2811c89c59acde3a5496f1a8cce9bf5266b363a40cc1b6c78fbaa4241340dd4563a5603413cb73ba1893bdbcb3ff93bb7f1132940998427769d19047bc051506b5b990074e8d1bbe2d988699b526726a91513988627c2301b44f206696353cab38f68ca111270ccc6cab887ac3b8bedacc12513ca349228b0d842bc193299ad1812b69c63c2b8233c20121d50793906c4014453e19a62da12c76f03667031f2bcb59a074cdd2417ba3789e7af38ac71335736890dac04f77e0b10529381e930c8c0031f88838efa47772a7b2541963b0c7b063472ccdf6228349cb5619c943067ad86019cd964c64767c838407eb32a4ed9c40581b63e0379d00adb275f6578f065894e8a47796489b994ab9471235455fe1f819f3cc2b378648ac625107805ec8946f1599a8329981a7775523f7c8ef7426d8a31d1d5cc98820186fc7b55076b14d2c7c1533cc3217354bb24661c162aa0895cdc4aaefa666686a0f12d1791adb7392b78d31d6bec44068c4f31cd60a768ac0b056c24864c03387715dc48bc86e1b51a649ce4945708951065f946e17c06f364590e4d16520fa2b47b230f1511fd02aae79bb8fa72791806b0d3e211de92455459066b410bfd4d437f0acbbfb02bfc5e93dc7904b649a6f9a7ab09e2679e13040c8e9754032cc3feb8c2bdc21d8f7aa56ea31370169ebcace98d54362ec24b6b6c63732b882984e58839a7f825b17871820ea9dd0dc8c5e7a15403888e80150cf5a12c5e26040708791d2074df71945d67f221b6d2bbc1b65d37559a7c248516cb4ccc19cc15f93ba6d6085bdd95568cab1069cf13138b83173ea7c58ebbea7516c6ae25bf5e07ddf29a0dcd64b455aa6e050c1d5663245318833cb95702bcab1a11fda773a73454e1055104f917b75d650dfe1c59e807314a096de713e35837ba4f2a5f3991f6ac18302647fe01a05c055ac9d19fe27027cad17633dc0f4693c1f79cf69756e79c9fae7c954a0caf2c6b326e9037042553968ff3007cdb135e368ecf440e4187e554af9d0ff272911ced339e2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78 + +# Official test vector 62, seed: "f7ae036a0176a9de9a036a542dd2840033277c44ae936d10b768566216de9d4395cd42b116873b69d9804ba6ccbc05d5" +seed: 6500f32c93415cfdbc0bd31d78d5be95cb9060c8cfa2013955b56f8b6868b322393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 +public_key: 60e29047d95726801982a9349aa17edbe89d04a6ce4cc52b24d989327c855acbc39e6b9880a0783166af6d03043bd34eb427b4a8b32676a874b0c18da60759a5248ed4508abfd90723cb161e38058d4cc3b162c75261380c119c712639e50494bf195b0e6a9d4b22803278832d52a6cbfb542f451c777396ea0ba5c9d186c0786180a4a032d12bba793e2e29328c91a40de06b9b754a189c2a01404f2dc7011b036c969b1455f7a6c05b249e83009b52ca5ec643b92c0e4ec9469e3abdfc2b8dbf5638450aa498c345f126782a5c29ac7673a8db84b0f87086da21728067f3193eed391376317450a3acc5ea0322b189f56accb246bdb6ccaf7252c89be8bd846aa9d07995bf2c2c5be82385d77e566c90fd797bd9b2a5dba704d60341b1530cf3f60f231066a06590f6e3c90f1b6bcf5cb316b482c2817462ba2cd3ea4a5f0744db5128b6d07851e15266280414b6710fbbb7da113c8eaa45974c62bdb7b335315e5d093d11e5176f019dddba19b379399c7c88a9911e17d16fc5194b2a1998d219c4a5fb5531ea6e6ad37052a57fb5560ea39719c378b69c902acbd3324f9c29da73145b409a5f79c8629b4853f65d03eca0a8718dfb7295ae3483eee45bdb265638c0511864a0e471a34d839419ccbe42303fd2c51232246e0a6b81d9ab00c50a7fa656893693a8e6e245fa7b119a14336c9a0f57108ecf87a9c249c01d3a214bd42649e092e2c3c8c89a2e4d980b0bba5340330717a01f5b3abd426ccf6bfc3e5bf8969af7278b0c428cc39a36da6a7c0b8bd666a1d07bcd2845718b755d76fa61d3ca51b3b77486708606975fc377b6ee0596a6f37474b91549f6899a3c4e46a5309f035133aab371eb5599809bf32034a73c8d4c0240a306176c6b09135719ce9478d3f8136c189b715c6b4ce6612bdc973f40238994b763065d08308597ca22a3f4a43681cb500a680a476e1110005c6c6acfbc13c91abf636a7eba2a1f1280bf41293f3031a8abf8af4faa1d617a380e925861185a2bc37a806cb8bcf92354a26340481aa0e6230758a667020145057f8fc55b49b530ad5ba6f490c9a73b8fbde960a8d123c648155418b373b1189e10c9f91a4bb15592da329f61682f70e03143846b09c09da648454901ab938928280628d4a57a636397e5ca0f57dab388c65fd6e7bb5a9a0f3f95892973c990f393174bb8aa669bf28322f80a65320bc69b6460be565265e7b8af86587ad9b43f1c3e5a582773045bab8cc6e03329ab1a4e05b33afcf8009dcc67986831d0a60662b427ff5a7b9991017930524bf678c7d461e1bc95fd441a7693c3b842460ee186b3f973b35bad2fc258972c2c309490163109cd6c87a81a2d30bac5c6766e7d151da391a83a2a5e96904cf9f268706b23e8758f514072b43a6d7891a92e57ad6a9b82246a7f3459cb9cbb5e157a957b27c8192407e9820a906cbcad6794e16bae2b0664811400ca22941e576fa6fa1083571ba17884d5073c83b7a7a1ca53a90ac098eb7dd1627c2ec28d61f86fdba69308e27fa50515cdb19445405a3e6c720651ac5199a1085c8ef1995d8db0a43ecabb5229353316780f12258867c65bf257af667da224c271b02f52b8bcf4805bc2031fd9d999b3c825fff0f4c8cf37e52c6007bb4a2b63952a0c223185 +private_key: 218284084cc5e95bb4c8a7648d77bd0fa0b91235af9d447d8bf062d322bc4cd25ef1532433193509d4839baa0f4fb63143e64bb1d35408eccc80da5ccd6123344182ad9734602221c02b6cec762eb6416be03562497768d22146dfd3b04281a0542b4ce1070feb56a0b21165ba91b3b06a0dca42b15f556a5a6793de72c4548969f5f8102b49bb8cb47c8890afc022ba481837c301a619c69731743b971302957207196a56b1f071cb330a7d26327a55b296c8422b87456024c9363798a5fc94b5e026a4a3be75765b2827852908303e6ab4764c33569c657c864a39ab991b61a45de4c3d37811fea6bcbb6708cb27b83178c03571566d090647330cf9b91fa3d9b49fcb0090b226e38322603249005d3ccb00d0a65843fc3149a407b672b88aa3c6331cca33ca7a33136ba5bb4520917a9bcb673f22852240b7a577c3a78e2b0c36e32bffe4ce17ea5dbd016fd00745ddf48775e9274adbb45cb4946bd05b4ee0a38285cdc8760fdb871f629524d3e89438c5afa2ac2b5258c3923430ceb99993c9b95fab5ac7563e6e1068406860ac10bcaea63c609531ba80a637d395485111db501f78a98ac1c0241eab362ef092ec2c4306eccd5274a729b7909002831cd65fca5cbdc9440e95eb2b588c1430903078a625c9b67a4c5955c8ea25175ba7244b57290787ccab76ffb6262679b4b4130426d31d6dc754009573aee9443c4a9af619637be8c52e9486415565a6a3c3dee9a5c9f31d6ee716e0db5c219b01287a8a046bb038939baf2939a2a608674212b5743f6ff99c2a3496cbe21414c646d51399e7048ee398238beb8f0b33806ee33655573074abadfdb22df14952937cacc143c885aa0c7e144e172c1b4690cc6144304475bc02a3cdd84126e3fbbc0d5b6bcc875f89bb4883b7c841d6588a3a5b68a79613d4bb04486a2c10ce76378e07b19824d83ba89a649bb3936e6a060e84b8af0c91e1e6cf9e3b03c00320ecc5b493c88e93f9419c1aa71f27ba194c3022634ad0441f3f36280f6c2e4cbc68aa05a681aa4f16e978b0582e09fbcac4b849800616ff820b5764961e299f462a55a3083477fa15827937c7746e01c22cb1a878dba2ab1d1b5856aab05f3960e4cbc9754351c691c646a29bdbcbae01b670a7284c5a608b8609026a28ad2da69e1d5707770a6c5252917afa476d68ad7c5ca1e9b839aa887e2bc92520552523fac50f29559a803ca9da4fcaa58c1ce05e1d987b05d71ccd4a0eb184a9486819a745010ca92937a16c177c97743cb7fe680617279a0bf40f23a5456ae0346f38a5b346358cf76cf2549528815a272008d748a7a5fb3b9454cfef492b52d350b5710a3f5595e1d6473d2134070733bce526128579d7a80ead61611912644ec5171ba940398301ffb282a0150acf047c25892333514ce4595089c0702d7300a76470ff191b8b8634e56c7cb720ad8429adda29294e1a1a92e06be1e4c4b2a37af7a36515d58873972c1b40336132c0d29c0088989bb4c29ba0cba4b878c8c096c6fcc868efca2d03540f9317adb81b808aa3bd1a118d0ad70aba98792b830c7379012df373820c7e70a7805d357733d543eb657334096fd616c6d1097ab106ccaa3b1460e29047d95726801982a9349aa17edbe89d04a6ce4cc52b24d989327c855acbc39e6b9880a0783166af6d03043bd34eb427b4a8b32676a874b0c18da60759a5248ed4508abfd90723cb161e38058d4cc3b162c75261380c119c712639e50494bf195b0e6a9d4b22803278832d52a6cbfb542f451c777396ea0ba5c9d186c0786180a4a032d12bba793e2e29328c91a40de06b9b754a189c2a01404f2dc7011b036c969b1455f7a6c05b249e83009b52ca5ec643b92c0e4ec9469e3abdfc2b8dbf5638450aa498c345f126782a5c29ac7673a8db84b0f87086da21728067f3193eed391376317450a3acc5ea0322b189f56accb246bdb6ccaf7252c89be8bd846aa9d07995bf2c2c5be82385d77e566c90fd797bd9b2a5dba704d60341b1530cf3f60f231066a06590f6e3c90f1b6bcf5cb316b482c2817462ba2cd3ea4a5f0744db5128b6d07851e15266280414b6710fbbb7da113c8eaa45974c62bdb7b335315e5d093d11e5176f019dddba19b379399c7c88a9911e17d16fc5194b2a1998d219c4a5fb5531ea6e6ad37052a57fb5560ea39719c378b69c902acbd3324f9c29da73145b409a5f79c8629b4853f65d03eca0a8718dfb7295ae3483eee45bdb265638c0511864a0e471a34d839419ccbe42303fd2c51232246e0a6b81d9ab00c50a7fa656893693a8e6e245fa7b119a14336c9a0f57108ecf87a9c249c01d3a214bd42649e092e2c3c8c89a2e4d980b0bba5340330717a01f5b3abd426ccf6bfc3e5bf8969af7278b0c428cc39a36da6a7c0b8bd666a1d07bcd2845718b755d76fa61d3ca51b3b77486708606975fc377b6ee0596a6f37474b91549f6899a3c4e46a5309f035133aab371eb5599809bf32034a73c8d4c0240a306176c6b09135719ce9478d3f8136c189b715c6b4ce6612bdc973f40238994b763065d08308597ca22a3f4a43681cb500a680a476e1110005c6c6acfbc13c91abf636a7eba2a1f1280bf41293f3031a8abf8af4faa1d617a380e925861185a2bc37a806cb8bcf92354a26340481aa0e6230758a667020145057f8fc55b49b530ad5ba6f490c9a73b8fbde960a8d123c648155418b373b1189e10c9f91a4bb15592da329f61682f70e03143846b09c09da648454901ab938928280628d4a57a636397e5ca0f57dab388c65fd6e7bb5a9a0f3f95892973c990f393174bb8aa669bf28322f80a65320bc69b6460be565265e7b8af86587ad9b43f1c3e5a582773045bab8cc6e03329ab1a4e05b33afcf8009dcc67986831d0a60662b427ff5a7b9991017930524bf678c7d461e1bc95fd441a7693c3b842460ee186b3f973b35bad2fc258972c2c309490163109cd6c87a81a2d30bac5c6766e7d151da391a83a2a5e96904cf9f268706b23e8758f514072b43a6d7891a92e57ad6a9b82246a7f3459cb9cbb5e157a957b27c8192407e9820a906cbcad6794e16bae2b0664811400ca22941e576fa6fa1083571ba17884d5073c83b7a7a1ca53a90ac098eb7dd1627c2ec28d61f86fdba69308e27fa50515cdb19445405a3e6c720651ac5199a1085c8ef1995d8db0a43ecabb5229353316780f12258867c65bf257af667da224c271b02f52b8bcf4805bc2031fd9d999b3c825fff0f4c8cf37e52c6007bb4a2b63952a0c223185806aea6700e293f433a97e4b2c8485e6b4ac19ad493c4c16a10a2a884d58f5ee393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445 + +# Official test vector 63, seed: "d995d38f934b6e1a7ca77c9522e3d037676cc939b0c8bd4b84394b3dc91a791f09d2d97199258c9943da955e7f7b26fc" +seed: 7643cef2d62cc5aaeecf754653ea62294cd2208e5bf3ddeea209e3dc45373d49eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 +public_key: 7eac95cb2439a4d5171062a42523cc5ec7caa414654394003942aeeb720d4320c10d609de9c397d0790c585398fe0c42374ac2d220bdc6f507fe62cc592bcab77bb0a5f4ce73a380ba3640b4e491343ab7a33310e7f04c130a70f75b75e6aca5306837e9ac03c84b01c3fa4f5032069f492cfeac1585054a9fc4271da3636639aef3a065f2857a32d590e416866e71ab92d2ac27cca217756b528776a6319014867816d00837e476afc08d5da82293d37042709567052370b553cc925043957eaa3c34d2810a28163e9f4807b492301a4aaa232b1834db5932d20d8866a37fa312ca9cb129116634e95d551764487c384cf00b35682927808a28660d92e51610c68edc994c76a95549c79c162487d445293f0758a43b525b04477c2c50a47a963531b727964828c5b567fb538432c92a8c5a0be6136b9b05c2e68353d5787a0a455dba373ce60f40c4b48be8723ff760ece23d135887be491157b6b4dc8591b5046735c5588cb405057b96de0097f158c67223c5a854be20238126f1203dc59ba6d5bee4d7aa52f1a92441cb23340820d9afe134097bc8512bba1d2097201d6b7952641369649eecb884a4c35848314d2618c283ba9b343922b7cc18bea9cd1a4a3597c146d433692d15c55172847b9cbdda7a049ee455e5e43f6b18a80e60ca48822b1061835431644ee1b307d581add3b21df3367350bde75b1366505b0c88302eb1c6b164290e29204fb005f81567571552a6e22638a0018bdc94e768a9ecc7cc20e50ebc8bc9774c7caea9a1fbe1cc6c925f3fe70fe2f523fa9017b714b7ba820968b3898c1410b7e46fc54226c2c15056ea0ee2c071635b70fea288b88c9cb43a1faad97671e763d04b173426224cf217b2937246ca012edc14c529a2e2d47bf3b15b96804590e5241254a3b1e6a29378522ca0b2598491509127869a1a73dc2f334386c3bc7542f5bab81c89e938071892709f3744ed560c77d43d6ddc2537c544a4f64b19d55917165001bb74d93a1437835442c83b989bbc22ca67e6f96fd44787b8865f759419a409b78f209dc87a89e3ec883441c3ea39627c2524c4f88625594c2b0b5798386866a2c9d45c2d50d438d61c571564040893ba00a7752eb28fbf6b737088103c2a0fdfc87d99b978d2521949683b7dcc98b644504c297905d2417649c0a60ab70b5c674783739fac213f1ac5c5d69f7fe32c5995073e846d12da57cf17a73fb70fe8e7013d681dfb393a4b40922a654473c40b50249362e4aecd22515f256250365660177bf345a2cbd0884933b45d7ac67ef3871969bcf94570adc7bbc2cc948f82b7731a8bf0f980a3c373d30a4e85e1482686ae98501810c28108670078830254b7ccfca27bb0c57c56490e1a5b593816923d722d7c433534980293a1ce65219e0245a2fa049d9fb10fb54917ad82019a51212f0086afa520f34799a0361a083211a415a42b36237d40a5138c5ecfd7c70f5b084a05156df817071b709e745eb3e0252be9b1d89247b6917c72bb9e3ee78dcfb819ef5308f2aa4375578c72d02c348b16fde51f80602d0fe50da8bb5be6598fda0bb8bb1987de7bc575832baf123948215b833821afb7087a65014511a50e800cf6714ab446e189261a2a3dbac768c1e9e232985c430516bd8e18c79aef56cdb5 +private_key: 8d3542bfa71c67eb9c7a824d7179882305ad248622b6dabebf2c435436bb86777a43380bfe26126b1089399cc3816a435621643d354d7b4989646381b6393851822276641698a597cb173f0888a3db31529a41492a5201608a30cea5114ff52686e874a676c8c9a6a5b8429451c294842904f5d4327f6a3bc30b7ebf35be21aca79126b8c3827f7dba4474e308fd9b2f4a80982d93b4c6bcb05956b5295a59a6703e8b6c4e254606fcb353ce2c2649ab07f8e8275b8536e204847f774e5b7a94dafb15a2c5571d107ee771941bec00519c1b2ee464b12b0cb4c002320c0997e5c516f402960b33363c57851a72989a5570420da7dc1d5ea5c885796bb43a9030f105e58546510129c4506b89a62f03337890d89a40ea2ad1e62ba420a321180108a8a1abaa124c5613c4cb680ed621149315c734209530185ea709d6538ebd8c2eccc6c58a1755df1090881b1ca516155b3458800735f98282b1b1af72697c6de29be547cde7f64ca29b6070cab2f9246e068c99777987c86885ef65340e868196b040007784464cb9b7f30a8410b1bf363436e657b1bc2c62d5c14a8ac3d6b636f7714b641560a0e88eb5982f36c3ce94c14a7fb979ba5110a633a2b70517c0eb0e79512844b50ed0c1b41e68bc3f1224c4cb03cda780a5105e2ce01a4921193dd86ab7f41997f893a5947464e32b2092c48fdb1d84c71a74f087e25596cb21056349b15fc73b838bc679f49ab5041fa9d53049070de760b5f574b2d9ab48d5328cb799ae5efa0c17855ad57001f2cab922c4788fa6be39b1b9656a11be63c57cbca770e5217f54b5d61990c3409d0e1306667b228a27425605b9b5802b6b795ff5a5a423138c098b4758553c14ca7a198c9960e806b2a51ee39a0fc9c7136a876187963b02e6c6e4365a33eb1dd938ad6d2510f3c873eca835c9176b4ff5921ef52dd1f671a85368ca35b878347e42b3a3e42b731fd4051f37ad84f5a1b16c72512aa959e8b0c7107a5454ab96b585099b1db79745311a80ceb070c69b1fec37598fb63f32ac282611a5c37337a0c44c960c35800018e2e1c040978260b50cb51217a22104634118d4287e88045229998a7ceac32f532c48358ed48929d7133d67ba96087586bbb37107f5423dc56f84d390ff281ffb8344139caafbcb140d065912678f8ee44cc3c78c681cbe530637de1cab0d0112dc023163031f7cd70b4d7ac2bd43678989412b0804add344f6541e007a46fbd79dbfd4156892a2d18a05c34c028f46ade763103a079d03a3945ea614d8ccc84ffabcfd300acf38c319b32d92bb18a3870219307c0394546de89e738a9f7d88c767825823b2bc0c368990681d183a1d3078b3bd43cf2f47727fa8bc6a4607928090f57c74539ac06413567c4c968c9ca8c5da0632799526b3b9df7c6271aa4906371b46c0b134a7c1d5709d8548485bb2103eaa27bd515d409cc07db2530a569c1d617a218aa215b7a2bfb0999e791f35d07d1b5b12cfe53dee8a8edc91725b138b1fc7001955991dd32bb9196cf41acfdc773899aa1ecab0854203b421406eeb85820e2116aa746466c49837a69d8e18af5d82c3a0fa0777f9800a187f327ca08e0c1e29e13dfd0ab97eac95cb2439a4d5171062a42523cc5ec7caa414654394003942aeeb720d4320c10d609de9c397d0790c585398fe0c42374ac2d220bdc6f507fe62cc592bcab77bb0a5f4ce73a380ba3640b4e491343ab7a33310e7f04c130a70f75b75e6aca5306837e9ac03c84b01c3fa4f5032069f492cfeac1585054a9fc4271da3636639aef3a065f2857a32d590e416866e71ab92d2ac27cca217756b528776a6319014867816d00837e476afc08d5da82293d37042709567052370b553cc925043957eaa3c34d2810a28163e9f4807b492301a4aaa232b1834db5932d20d8866a37fa312ca9cb129116634e95d551764487c384cf00b35682927808a28660d92e51610c68edc994c76a95549c79c162487d445293f0758a43b525b04477c2c50a47a963531b727964828c5b567fb538432c92a8c5a0be6136b9b05c2e68353d5787a0a455dba373ce60f40c4b48be8723ff760ece23d135887be491157b6b4dc8591b5046735c5588cb405057b96de0097f158c67223c5a854be20238126f1203dc59ba6d5bee4d7aa52f1a92441cb23340820d9afe134097bc8512bba1d2097201d6b7952641369649eecb884a4c35848314d2618c283ba9b343922b7cc18bea9cd1a4a3597c146d433692d15c55172847b9cbdda7a049ee455e5e43f6b18a80e60ca48822b1061835431644ee1b307d581add3b21df3367350bde75b1366505b0c88302eb1c6b164290e29204fb005f81567571552a6e22638a0018bdc94e768a9ecc7cc20e50ebc8bc9774c7caea9a1fbe1cc6c925f3fe70fe2f523fa9017b714b7ba820968b3898c1410b7e46fc54226c2c15056ea0ee2c071635b70fea288b88c9cb43a1faad97671e763d04b173426224cf217b2937246ca012edc14c529a2e2d47bf3b15b96804590e5241254a3b1e6a29378522ca0b2598491509127869a1a73dc2f334386c3bc7542f5bab81c89e938071892709f3744ed560c77d43d6ddc2537c544a4f64b19d55917165001bb74d93a1437835442c83b989bbc22ca67e6f96fd44787b8865f759419a409b78f209dc87a89e3ec883441c3ea39627c2524c4f88625594c2b0b5798386866a2c9d45c2d50d438d61c571564040893ba00a7752eb28fbf6b737088103c2a0fdfc87d99b978d2521949683b7dcc98b644504c297905d2417649c0a60ab70b5c674783739fac213f1ac5c5d69f7fe32c5995073e846d12da57cf17a73fb70fe8e7013d681dfb393a4b40922a654473c40b50249362e4aecd22515f256250365660177bf345a2cbd0884933b45d7ac67ef3871969bcf94570adc7bbc2cc948f82b7731a8bf0f980a3c373d30a4e85e1482686ae98501810c28108670078830254b7ccfca27bb0c57c56490e1a5b593816923d722d7c433534980293a1ce65219e0245a2fa049d9fb10fb54917ad82019a51212f0086afa520f34799a0361a083211a415a42b36237d40a5138c5ecfd7c70f5b084a05156df817071b709e745eb3e0252be9b1d89247b6917c72bb9e3ee78dcfb819ef5308f2aa4375578c72d02c348b16fde51f80602d0fe50da8bb5be6598fda0bb8bb1987de7bc575832baf123948215b833821afb7087a65014511a50e800cf6714ab446e189261a2a3dbac768c1e9e232985c430516bd8e18c79aef56cdb533df23b37987c6b557e4c0f8fa9e466312f19e7e90cd0a67abe6a145cbca9d44eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951 + +# Official test vector 64, seed: "5929f02a271725cb40200de32d9d03d8bea53b53ac83186c42c7f565ccb1ca508305d470850cf86e9b2c61a5b8ca1c93" +seed: f8ee95521060c03bb8dacc79f7eb7db640f545f315613a35d447a09e504cb4e13fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d +public_key: 616571fef73bf834c480630b9532b244d09c8f936e951961bce56157f237b0919097222df3bc6e61f47d846479a1a5bcefda59cdd8b067d19db6d9586fab2fda9b550c5170c2772ad5a4af4a67a19d215e45575e83a8ba5f099e4358a9e493677ce177f36a0f594912b6b850d3f719c155c01b68bf1dc89ccfacccfc6cc38a34ce5b4c48d2e17dd2946f493a357b1105265153c04a98992c949ed774588925c697284bc537b4d795de0463335aacbf80b10cd0a03a88256c220c3d0074ffc6c8c913c919aa19f25206a1cb7d40a50c6f55960a2298881a71a1dbc92a69371dc9a95d45a7bd6547be9414f4c31ebfd3553b89cfd9ac05727b06bbab300ecab599da76a62b97541cb3474b7390cc49942678add66d265772f55515e0623192668fe4c5273e3176bcdc52fceb081dcaa4ed699dedc59b01a29363070567772daddbcf8605bdd1268882a355ca4163ece88637e932c56c43405ac3844949c819646e394dbdaa475e62ac0463b8ce257520b3b4e141057449621b449c09c5b72d10464e59bdf2702a7f4ba1c1c6301bf51ec41bcbdddc4a069abe46d37c09050b28b073f2216a06d501bc38640600185227a63d224589a43391097226d67240619e2804589f4917db7391a4fab6778c91ef30aa41655e3e433854a52c9ce8130b802e82204bbe894517f1bbb4458616b0c309020ecfcc17f6b69cd0bc688963af0fec8f567a86ceabc9a0383681d3729a612987862e2972b6393c2c93a32861073ac3eb1cc636a52dcc23e6ea0af7d3af49f81858743962978245db5a70c34e90c64560b87ef29b5b568a716904c8326481db98c81cca47cec76e32003b36b26aece764c5551ac07c4bbce094b6772b2faa27b518ca5b96094d178f68a7409992ba7fb776117c66e97cb0be6854908aa8203aa916d26f3118842689a5347ba29d337599799691729b812961720cb80ff993d8a124e2027effa1baad40a17b564b0412681a6005888c0e27992faaa370ea3954775949a553b75aa35d5956373da54da7eb51c7e68c05777760c6b9b0a78ff2f34312876f2db27898d3aa4a187110402537f2aac7373751954f3bbc5445da3907429fbc817fb0a732bf4077d4630c93a4bf6785274019c5de6c3d8a66441620491a8537ffa1a50f0baac622cc765052ae0049eabb20d05b987b303d17714c4e79814dc5cc9593bab612359d0c7a3bc9614d0c8eb4e0a7c740520e077e2215bbbcb693a92c0293ca28b4d0ce316b5e14e165fe4745f9665c36a651a6a8ac11a162b4a111e40851ec2b29dba05590140d28aa945b42310659111a4033f972bc0163bc26a5872957c6977bbf8d727d65a8c806b4699050c994bb85651a40c6d590c337c680306fc231b7487305c4155654471c3003b93c206cda82c19f7b047e12b5cb94490f4bc850c4668b366bcb23bff1a744dd3362e94cbbc658178a012d9b784d12e965f4592067b636ed3ca3bdd89c0b30c8bf798f2282c49ed3835b70ab1ebc761b880e0779b5aa34acaea40c83eb0babd6ca11398759415252064c4e70b62d4cc813d346ca789eb86b5d3606bc3239758a62b5f76a709b602ad6987228433a01a8aeffcc22d0d315d59b15e8aca53b02fd160c62db910fddaaabbc4c2df1256095317cdff9f1e7ebcc48f8382101 +private_key: a89cac07514fd7ea49de1c8a4aaa75ccf901439529ee48160b4acb10885320b568b9377b475b180cec4c3ea2a1f6584df841b54bc8147ec79457896e24b3592a4864defc44f4e811cac6adec8c91c46bbe80d0ccd9f08e4fdb6fe1509e4932cfae8bbd3d299a389402c0e16e9f44bbb34729ec9ab7e56906491a538681607ea7af800abc2040b2411596c1e9669b2c57fed92d1de814b0351f7c99ba49613e8b8c5348d49142141fd104a6c43c66906c389903b91fccb4e3a4245049c134291b67d0c596894cacc026caf067014415d1335829795443c4924e38308da8b229c129c0ba43b98bcad09a20fe4143607c5117fcc1bb89bec1a32c1882b6c733ab4292158b71a76305856bec631532bf830309d7833e09095e008473ac0928db8202bc971821125ff288054348608978417314ca916a3f2596253cca6018c990c3c54c858c33438b28723889cdfa2a5efb9c20b11ed6228560f897c5b5adb6a3a505e4c7138c68cf550d3cf9c21ee12d83f9baa9778707075ce5ca7e319172a0a926e96b421d0c1a3abc2029a3adc2abb5163a51f07924ea727d979996fe4949fb7892a74c1649da7a382426ccaa0d825766abf51d8390bdf6116d107510a1529af44b37d6561feabb8b0704be246632f58a7968db7d3835bad6c49b29429b9a443571a1c2b1b1c8bddb690b387f5f9798ecbc84d0567d53676e93c38a38b63ea8620702c13be48ab37e02c303b2250c45baad168cbab8b87e7cb9f9e55073dc0d375a88ca92c0370b161bb35f4d4a74d6f1a4402bc32a0b50d8ab576834c15305a7ec70525d5b42fab77286dccde4d6cb79aa7c46f425209064622a86ee94a6f5f3a6f23536b63c9ab5f8bbcd148a30d46fef07c4605b2b81b75d46332b340b6719a735078c3508925f5fd4c1107c69a560cce9f74041fb521fa61a552a756bf638c88a61f103ba9adc02787a398bc35abe3993553ac0118124ec4c67a706c3fc60796ca531ee28ad89172ed5ca12bbc84cfeeb35885abdfb5061d6f774c17c1d5755c437cb7827d8107ca8b420d07331d762e73622bd22b4373ccf918c0b08a954d6ca33a1020127346b981cb750842b9edcac1cb9a6d482cd00a80136575017dac0b0345819a3a099d859c2da56a45523d3e776feca225e5a464300648845bec13b332f3bc78a497a41db4f8e88cd18694887a3babb3a97838519d3c0375e95cdec5596e0486c4a354085201e0ca9c6fbd1754cdaa05a9b204f602793aaae97d240ad11ab2c54cd0eb897f76cbd851038b09ab1442b081e6122e5b495570a7bf8363d3ae1c793a9206785b59204b1e7a46974f2cdaf9ab6d830457788921e72862a499f1ea938d08481ea103b9d6b0294bc0c5f90b6b0566ffa897592bbbc3738a0e69cc5e5a127c1622e6f245fa4607e49064aed22c7d082c62994b419807ec9d8b0c7cc3c993c3f1e2538ba21c21dc885fdc8beac5963ce9732c34a0c34637bb368a87bf2452463cd5e66275e94650d7766845bae2d79bb30336adab7aabe52774e5198af3c9ef532cc5c27780849b1cc8427eb1b451591aabc5cc5a7461a578a36ac371c66841c0ff05a90e41e79acb69c31459bc30dff0aa24452709407af616571fef73bf834c480630b9532b244d09c8f936e951961bce56157f237b0919097222df3bc6e61f47d846479a1a5bcefda59cdd8b067d19db6d9586fab2fda9b550c5170c2772ad5a4af4a67a19d215e45575e83a8ba5f099e4358a9e493677ce177f36a0f594912b6b850d3f719c155c01b68bf1dc89ccfacccfc6cc38a34ce5b4c48d2e17dd2946f493a357b1105265153c04a98992c949ed774588925c697284bc537b4d795de0463335aacbf80b10cd0a03a88256c220c3d0074ffc6c8c913c919aa19f25206a1cb7d40a50c6f55960a2298881a71a1dbc92a69371dc9a95d45a7bd6547be9414f4c31ebfd3553b89cfd9ac05727b06bbab300ecab599da76a62b97541cb3474b7390cc49942678add66d265772f55515e0623192668fe4c5273e3176bcdc52fceb081dcaa4ed699dedc59b01a29363070567772daddbcf8605bdd1268882a355ca4163ece88637e932c56c43405ac3844949c819646e394dbdaa475e62ac0463b8ce257520b3b4e141057449621b449c09c5b72d10464e59bdf2702a7f4ba1c1c6301bf51ec41bcbdddc4a069abe46d37c09050b28b073f2216a06d501bc38640600185227a63d224589a43391097226d67240619e2804589f4917db7391a4fab6778c91ef30aa41655e3e433854a52c9ce8130b802e82204bbe894517f1bbb4458616b0c309020ecfcc17f6b69cd0bc688963af0fec8f567a86ceabc9a0383681d3729a612987862e2972b6393c2c93a32861073ac3eb1cc636a52dcc23e6ea0af7d3af49f81858743962978245db5a70c34e90c64560b87ef29b5b568a716904c8326481db98c81cca47cec76e32003b36b26aece764c5551ac07c4bbce094b6772b2faa27b518ca5b96094d178f68a7409992ba7fb776117c66e97cb0be6854908aa8203aa916d26f3118842689a5347ba29d337599799691729b812961720cb80ff993d8a124e2027effa1baad40a17b564b0412681a6005888c0e27992faaa370ea3954775949a553b75aa35d5956373da54da7eb51c7e68c05777760c6b9b0a78ff2f34312876f2db27898d3aa4a187110402537f2aac7373751954f3bbc5445da3907429fbc817fb0a732bf4077d4630c93a4bf6785274019c5de6c3d8a66441620491a8537ffa1a50f0baac622cc765052ae0049eabb20d05b987b303d17714c4e79814dc5cc9593bab612359d0c7a3bc9614d0c8eb4e0a7c740520e077e2215bbbcb693a92c0293ca28b4d0ce316b5e14e165fe4745f9665c36a651a6a8ac11a162b4a111e40851ec2b29dba05590140d28aa945b42310659111a4033f972bc0163bc26a5872957c6977bbf8d727d65a8c806b4699050c994bb85651a40c6d590c337c680306fc231b7487305c4155654471c3003b93c206cda82c19f7b047e12b5cb94490f4bc850c4668b366bcb23bff1a744dd3362e94cbbc658178a012d9b784d12e965f4592067b636ed3ca3bdd89c0b30c8bf798f2282c49ed3835b70ab1ebc761b880e0779b5aa34acaea40c83eb0babd6ca11398759415252064c4e70b62d4cc813d346ca789eb86b5d3606bc3239758a62b5f76a709b602ad6987228433a01a8aeffcc22d0d315d59b15e8aca53b02fd160c62db910fddaaabbc4c2df1256095317cdff9f1e7ebcc48f838210130a5771b76066feb7f606a82cce122964da1be0b6872ee319832214ec677738c3fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d + +# Official test vector 65, seed: "905074033d7b75deb2d06a2f29144eb377b452534c5710632989f02d45312d156557e96d4486020826db200153bc4a8b" +seed: b8bd0493a882e3a49b4e0f6256fb1fea0912562fd9ba26ec3d6c9cc12c8973abd7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d +public_key: 36509aa06326ff5cc174f51d963cb5e5b1290eaab649c91d1a03b9cb45400087248ee90f5b9509b9d44f27e814b55b5d7fd341bb663523cccca02c277f1a12f2e054008405dd7b8fb5b78f200266d62b00db2665a728b9231b99d957904d4278c9b99933972006c0afb2d46ab58810bd59492891a77f96b7e9d06eeac63cd9e3a2039a1f30ab0eb4e6a7dbe875253174f2519092761e9684c00726b8548aaf2ab3bf79c8255ec6c1591234672acad20c0bec4a5ff7b4ab4442c2982799d0203f1ddb53a260b95b51980025140556582a0c5dd9d20bfe542f79a743d45095b25c9565c1bfd1d82e5dbabbf37b934bd43a9af92ae5bac65570cd0586621708a30d8371dde11abdb8079616896533b90611a58843ca38f6105164b1de4b227b0c4b14749f5833c5f76cb5aec703b2eca6fa40c7bd224059a4938bf125653901d5d80cb4fa7213e9136d7c0a4f2059865911f68c19eff169af063e76887f192359e5e60516a92fb1842af25599aaf530b08a171d35be896590ef3a9b7878b4a3764a3bc2a800613ef1c2a31fec6ff7a8c8c4e0158202c4ffd35c1a45738d1ca197f23b8858a31dc60770e38796da35136500ec868e209217b9a10c7ae465848c82e815490da5becb32a55973aadc18afb2172c0d086de7e21d309226fd549219c0aae0c672bbe832c515811584ae3e4a59ba98a80e2a0386a187036961b4f6abeb6a84ae8b55b4e95cc9e812be00ba0925ce00ec3390e7936b52482b420b9d051f91a117122a0778c2434cb661ad59050342c63ce986e1b590d2b0b81ff4c3a1bb5a9ab4cebfa96c9f072ddf8332f5a3ad0a156fb5b6b35e38a595f30f2156815656cc487313c75952dcc12adb5b0528ca68bd53bcb1f750d5f24d15d54e83b165440528d83057fa12a983aaad4048c53c62c4a789b82728a94caaa50f7a7df6fc7d07c76727882fb8aab09811a611c5188dabc366494263cb8eafb78eb40a7f33763ea9b51318f0ac1a7a34be71aaf436ae4248346a7a25e2dcbaab226111d96d5d9165b946ae29283118bc34a46409f2eb37c469a36311caa843c112ea83c0364ec2b8b6e9ec68cb8485bfd87ff560912ff21c43d59a1476952e82a2d3f3a00cfb7c49a61e9216b728fcc30861a23e171c2c7954fd85528d911682066db1a062b50a5a11cc385db16d4f4b81785c9b8368575409738683847cd46f9389128414082c5515b5b3310658c54be69a6c3b02b5e0a1b6627e0512999862acc0b34340172a9a0b144627cac4d36fe8d71272e6ac69ac94d1f8c250515580b85d8ab300bb29b43b02195ea7c966947bff9cc323d017b48bb4f6a88b0201956e095b8092b250b53dd9f58ca90b28eab574034372d9f8305b39668bc90e2b6bb77257252b0bc36ee68ad25a7c883691a494c5626b5bd870c45a06ced4f39fc7e21958811a7b7cc93410b2fd8245b45b7462f72033d86ef2fb9b173397bbccbacaaa7177760202a8748b440f82d49218331c3760918c640dc58073883b5721548ed6e529d7f95e02a65cd7bbc3383317fbb166bf751f47fcc216513742596c2e9bb75ee80d2dc16d036b1d45102bc2275aa09b8800213f67dba3987a2f5efa1ae2c7868ce276c5110f462e65b39b2f4f753b3a3d41eeb50f7aa17723bb620b800aa3dbdab7fc +private_key: 8a4487c253844156a9eb333c710c70398293058632014350817b2d98d68b4e0c536ee79febe01f3f423836e34436600866ca139193376db576f3920d47181eb7b2264cfa494ddb768bb10ddc002d55d25724d20f9d125cf6718466d7840941cd4783bbffe342f4a584cab59e0322ca151bcaa29bc76dfc0afc525e0791b3f9e6279d56cfc4775d84054b51e604d5ebc1a8922d783c840a9b00cdc58da2ec4a5fc1bda820622e5c10051c3c041571685697bd49ceecfa455e11af28e8a8f9c0b6c74314d2dcb8b571c5d78a7ca354567338344a305338897241d3991f3b4bf448479bb36f9fd3183c703f57f5903918bb71fcc701f586ea719e2e8183ce605575819514f4c59b72aa76bc6c0bfcb7fd19c51ef3612d45a9ecb396cf5b13c96a0bd7d3cd70a84a2ed11e66fa39c5967d080b8f7106bf00a81d208c66fa31c94e548e50849c992608db9c0ac1816ade777d36a04e6989ae0d5c1a703541f2f2ccd4570e9657cdb17202880c0c5ac3ab15b13552f91632255b02eb9db48973a3990495900acfd3b3301b38bfc4374758b0d6956241600033b55f30da2f8d1a046c27c80a403b935905f455943b0459a9a5046bc9cf54b82e175a34e628bf529a225ee25b07d73bcc4a80fd4580dd0ab679185718e5c196e25f4bc89c206409a5bb0d1c233837776832338a1d1b907e493c6240b0c6524a9e542b91f48080011b3ac1ac062bb528399b04c3bcf114a0f46424cef1c1bbb675b1999c8ddb883e7b40a1ba5ca13875bb022d8c088c810601ab2c4844aa916ec2348af4c28b552c08e970e535cb674b388bca5d3566a6edf10d10856b2eeb796bd8cb8b503f2bcc7cbecc528ed121bde4782f717e5f63658cb7251694bf0a4c2ea4d98abc70a4d87994a3317a206c34ae972a54e74d235418a5790cadc9333f2c9c349744bceb28d5bc7ae1521ab708cca937a9e10072f412a26037312145500eea42d04a549edba62185a93c1cadfbc4721fe827db83c4fcca759d575eff93848baa22d23b5a659cc5c3c3608684229bd736dc6452690c742a59b9c9e9adf6aa0fae27664a28c1490bcdf1865802a9ba2a6b49951b3753c12f3ed57fc88bae34d21befb269aa3663793b56fe162a2a47643ffab946f94cd012479f5bcd1a6a6b8019bcc4d38e180bb993d319f43ac809cc2bb8a63c9d2854ab569da8f7c0b1b24088056d799b49d6cc12bcd15ad75c5dade497ad0b312b9739214098bcf2cf90604a72013c3b52994a691105c4060657493947be3b0a6cfa91b83580457da7a6411a984cc661f0b7c59a012c5fa895096a354eea5abf893e2eb7389d0a649481421b13201ae66e3b3b4fbe6818d0f47ef7477f14e792b35ab3fb2737f9ea1c75a3001445920c2b1c65c38ea42a02d017c93924c4b3e7492574c368401276643549f5afb69177a4d807937102686958a1d564a8184624fc47e713b7d9728ae6cbcff5c52ba4966429b9c0dc659081156bc7c398d9a9bd4807907b307b1501a8bb518268897dc8610b649494aab4743e5ac392568b771433808476e6b32dda6940865c3e43077e0d9bbcee84cfcb523895b36c5596880f036648f37d483138bdf24c40d182ceba0dd3e26236509aa06326ff5cc174f51d963cb5e5b1290eaab649c91d1a03b9cb45400087248ee90f5b9509b9d44f27e814b55b5d7fd341bb663523cccca02c277f1a12f2e054008405dd7b8fb5b78f200266d62b00db2665a728b9231b99d957904d4278c9b99933972006c0afb2d46ab58810bd59492891a77f96b7e9d06eeac63cd9e3a2039a1f30ab0eb4e6a7dbe875253174f2519092761e9684c00726b8548aaf2ab3bf79c8255ec6c1591234672acad20c0bec4a5ff7b4ab4442c2982799d0203f1ddb53a260b95b51980025140556582a0c5dd9d20bfe542f79a743d45095b25c9565c1bfd1d82e5dbabbf37b934bd43a9af92ae5bac65570cd0586621708a30d8371dde11abdb8079616896533b90611a58843ca38f6105164b1de4b227b0c4b14749f5833c5f76cb5aec703b2eca6fa40c7bd224059a4938bf125653901d5d80cb4fa7213e9136d7c0a4f2059865911f68c19eff169af063e76887f192359e5e60516a92fb1842af25599aaf530b08a171d35be896590ef3a9b7878b4a3764a3bc2a800613ef1c2a31fec6ff7a8c8c4e0158202c4ffd35c1a45738d1ca197f23b8858a31dc60770e38796da35136500ec868e209217b9a10c7ae465848c82e815490da5becb32a55973aadc18afb2172c0d086de7e21d309226fd549219c0aae0c672bbe832c515811584ae3e4a59ba98a80e2a0386a187036961b4f6abeb6a84ae8b55b4e95cc9e812be00ba0925ce00ec3390e7936b52482b420b9d051f91a117122a0778c2434cb661ad59050342c63ce986e1b590d2b0b81ff4c3a1bb5a9ab4cebfa96c9f072ddf8332f5a3ad0a156fb5b6b35e38a595f30f2156815656cc487313c75952dcc12adb5b0528ca68bd53bcb1f750d5f24d15d54e83b165440528d83057fa12a983aaad4048c53c62c4a789b82728a94caaa50f7a7df6fc7d07c76727882fb8aab09811a611c5188dabc366494263cb8eafb78eb40a7f33763ea9b51318f0ac1a7a34be71aaf436ae4248346a7a25e2dcbaab226111d96d5d9165b946ae29283118bc34a46409f2eb37c469a36311caa843c112ea83c0364ec2b8b6e9ec68cb8485bfd87ff560912ff21c43d59a1476952e82a2d3f3a00cfb7c49a61e9216b728fcc30861a23e171c2c7954fd85528d911682066db1a062b50a5a11cc385db16d4f4b81785c9b8368575409738683847cd46f9389128414082c5515b5b3310658c54be69a6c3b02b5e0a1b6627e0512999862acc0b34340172a9a0b144627cac4d36fe8d71272e6ac69ac94d1f8c250515580b85d8ab300bb29b43b02195ea7c966947bff9cc323d017b48bb4f6a88b0201956e095b8092b250b53dd9f58ca90b28eab574034372d9f8305b39668bc90e2b6bb77257252b0bc36ee68ad25a7c883691a494c5626b5bd870c45a06ced4f39fc7e21958811a7b7cc93410b2fd8245b45b7462f72033d86ef2fb9b173397bbccbacaaa7177760202a8748b440f82d49218331c3760918c640dc58073883b5721548ed6e529d7f95e02a65cd7bbc3383317fbb166bf751f47fcc216513742596c2e9bb75ee80d2dc16d036b1d45102bc2275aa09b8800213f67dba3987a2f5efa1ae2c7868ce276c5110f462e65b39b2f4f753b3a3d41eeb50f7aa17723bb620b800aa3dbdab7fc31fcd120f19fe976236711e58b4ad172d25ce01eb88bc9d6d051c56564a0db11d7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d + +# Official test vector 66, seed: "a3e2e511afa7bb560446bdadf67d2ee2e16ffc7baeae7efb8c5455068bbd4e91bf9be9d98b280072faba7712c75b26d4" +seed: c0407e41ddf48d333978b89bcf2db01e4613425b456249e76a6f25b8a2827bf5b2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 +public_key: c5e450ab970d5cc6678db12ae81962959a3d68d8a4fae40ed343cbd2e84322e2342cba7756328fb5c80a3fe07295db0e136621f8acb8eed4685cf21bb28a7fd34a9c6af4a8d1fbc8db21ac4d334afe1b71b87cc1ddba5501d38dd7e74c6c502ba04b8d1039322734418dc438fca99d0bf44f700ca473d07c0ad5094181bad2e90910c08478920461c750aaea6658112933753153aa9bdf090ef91a3f08e7c07278369df0bea9220b7d4c6b6f6a7135a5084aa54ddd270e9d41128d1944d8e7c3e1ac11a4089fe4541324db369445b5afecc41406b277e8bb93f310de57b55deabd8d2ccd2e9a417ed916ebba260e0baf95ebc0fbfc0a1b63b6f5342b3ed7c1ff4135f0a26c3daa7e2d60bbab8051123628abbb3cf9fc6369a46d4deb7ec0032847d7474356aec9a417cae8b62c9c7bf3b077eaf52c622b6a2bfa6ac49a9cebacce996a29f89acf9349363606a86a6696481233c73b273e847798b530b8662194896e22ebbd8f3640864791964069684338f453710d841aa83a2997316fc3ba06e7d6a3855cada69c35cc801cb49928ec66a56cb8a28deb2329d75c6545251ebb8526903a13f5174119b9c2037b06c165d2012723bc817297c42465cd77044436337591f239153629c3140b0ca85783d2460b207268f013988176f4c22d8ef5c096c93a52706931b4399a1849488665026a615e5955d972429eb32213ca16b587b0f7366192366f523732fb1127731cb06bc39f15f35b1283654bf361f403be5a9ab154f786080cb8ec42c8ec356847839de84a23c6e4321136477c12b20ca5642efc84c658323f90c2509b62df865e54072aac311a6d3b4eb9073b17f2291001a37e6ba438918a42663bb4d15896239f9f2b2d17a5c93c024ac595806620a8891b89f7297901a9b63e7c799cac22a515bfb3ca9a4772a5bc9a11154011e4dc0d758868a9f646d5390c631381e8566fd5603902c11686cca1f876322cd7793c338876d82008eb30f32128511a872db5cc0ac689c75266d5a9bdcd889f73dc92f1dc5076f373be64308012553d3109c7b5b2a819afdb93bb3447c878901813849c5fcca97b116ca1c2115961ac4b8c926303bd7f502eb299421cc9cb82f556327584118c6930e03f4368ab915c3df0a46b08518cdd280e17f86824958f0ca8079e857d8ba9a522a49c3f539c845968faf37e4beb443b577646967f4f824c2a706b3a7b74866aa4bfb83dd8e4356dfb1d9f4678a0a120cd2569101b034e36bf24a58c690b69ea27ca88db6645682c13b57d9a397b83772c5357082dbb6981674a772b6a94d0210b14a7703202cff38419297edf92a305a59bc51a022919b1b61bc853abca39721b83a794f1c27d17da71a205571573ce31ea27f81b744371274d6a8138b69ef967adcc75730a652f134b0f198b86a2a670a96c58d45295433851f61850d7b318245849a140a407a60080abbab77abf58d8c46f2580716a0bff0481b1973c804a406dd2bd08370ccabbc9fc7557b26534cda249ba1b3afaf2956f10b0b6ac0a7ef02252f5869a972142e06b86b64684b34b2592bc91b7c5b24c14d232b81880b3844409c6038e06023321dca0f2271144373fbfd47884f3ac96e4bee4dbfea5eedf79fb157b32e2818048bcd9b8e9bb89118362e59c75b4917014c2 +private_key: 5a837a98d1b7d23c06ac804f9008924221681a5b35141311b383a995a75dcac87baf79b484eac622a6a594cb1ddf122030096548285bf7da99f27a8033f1ad1e442e3452913092a0f666ce6a910968e00b1785658c576fac3a68ac13abdb91255f6b5104d26750894e02a9610a632b558b4739858f72b9ced305cbf9c6929a7664ec49b6f6d18f728664953b77427180e6b2895ba6a56b391cb1263c5154061e1a4c4da221418b363f09c669c6918e911e793b92249885299923783ccee355330118199deb5a4c6890c5e61e45a2c89b3a74657686a9b1987834b309e074133a34a4a11ae92a9bb6a4af14c15b2705252fb69cdd159f5084159681183fd01287555a3ad3314871483c8040cc20894d4a5aa239cca6c733fe17220e55394c2a2063d30497716255bbabdef6c71a925a24f201b096a39ab3caa54438222b23f6c16f07910bb04a04aa1c8299053855f4a8cc852df639ce559abdb7e1a5ec9861491269bb829226bc1e99f392c1c6364d64886aea98f0e25c1f27862fa64aeb017b73f30aaf8cccf543c6e054b23b33bf926125cb263f844c70832aa6f9d66141903aac5b7ee78734949196c54a558210c91ef006e266acf833c77fd97f75b8800178b6e2b89a81764f9e851189e2ab41dacd5ec31604396d5811641ff21a40f9c45bc947aed2c629b457684252cb713de7d25955a66dd6e801bff34028101a21d10c3a6624c234b0640b4c26140e345b778a04929a596176d922dcf737f5198f677467f2990ddd5194fbb5bba6ac7a8f2c90801131bd1c9fc50cce2c802ad8da968fb71acd79ca2abb87991b90e2a76e5d547d96c4a300c32c0da3c29bb40d611b7923c4b6796b8dabe5a277ec1b444050f0b17221744e38582f95faca6807b566948203f00a0b4a8a77f724c067c5c464cb59b8547ed3b2851b9f8eda807317b5147533ab879a26b982187366bfc50266435dc2a96e8b104694f63c355435d6030aab601755b30b38e3434352660ce98e89528e9c54245846c58e914363d61d33d825b1c8c6ae439e6959743f3b6f2b762916f65f6e765044b4a3a6244c37b1b0a671779a840cdc5a7db3703a670c4f5e9c65c9bc814356b4aed09f60162ecd143f86e3b81071c917124615821e4c5bc98b312d2ff525d178a61efa0d465565e5700de4069d3c7864fd15aa9bd4c49242b0cff231aed9a270e41aa5c29e74787524a6085a129795ab5c9049c985304478578a907903aea16934f73dcdd17ed1fab3c629605bd1aef9d16b674a6411123a0ecbc718927b18642acef5a055d47af694c34b300ab6296dc2884984441eafc861ffd7767f306b7cc72f3580ad5214aa130a7e89c634c6b1923415c75dd0a256461ee6f94271027779d0b79c8b943ca32c2f62832a04cfc79786eb017f561c0c5eaa60bb44800e2ccccbd64755c8b6008bc89c52827e737dbb37ababe87980407c503cc5972a34c76913f37085c699b4a95ba473e21c14080d26315db9f17969f6b629b48de94309140104f7dbb4511a8977266101c26f5b1c78e3896e051202ebf9a5621797c775b1a2b3b7f3a53cfb9c90a545473000569214c151088a082a237a8aababa3b69bd3cd415cc1f9ac91c5e450ab970d5cc6678db12ae81962959a3d68d8a4fae40ed343cbd2e84322e2342cba7756328fb5c80a3fe07295db0e136621f8acb8eed4685cf21bb28a7fd34a9c6af4a8d1fbc8db21ac4d334afe1b71b87cc1ddba5501d38dd7e74c6c502ba04b8d1039322734418dc438fca99d0bf44f700ca473d07c0ad5094181bad2e90910c08478920461c750aaea6658112933753153aa9bdf090ef91a3f08e7c07278369df0bea9220b7d4c6b6f6a7135a5084aa54ddd270e9d41128d1944d8e7c3e1ac11a4089fe4541324db369445b5afecc41406b277e8bb93f310de57b55deabd8d2ccd2e9a417ed916ebba260e0baf95ebc0fbfc0a1b63b6f5342b3ed7c1ff4135f0a26c3daa7e2d60bbab8051123628abbb3cf9fc6369a46d4deb7ec0032847d7474356aec9a417cae8b62c9c7bf3b077eaf52c622b6a2bfa6ac49a9cebacce996a29f89acf9349363606a86a6696481233c73b273e847798b530b8662194896e22ebbd8f3640864791964069684338f453710d841aa83a2997316fc3ba06e7d6a3855cada69c35cc801cb49928ec66a56cb8a28deb2329d75c6545251ebb8526903a13f5174119b9c2037b06c165d2012723bc817297c42465cd77044436337591f239153629c3140b0ca85783d2460b207268f013988176f4c22d8ef5c096c93a52706931b4399a1849488665026a615e5955d972429eb32213ca16b587b0f7366192366f523732fb1127731cb06bc39f15f35b1283654bf361f403be5a9ab154f786080cb8ec42c8ec356847839de84a23c6e4321136477c12b20ca5642efc84c658323f90c2509b62df865e54072aac311a6d3b4eb9073b17f2291001a37e6ba438918a42663bb4d15896239f9f2b2d17a5c93c024ac595806620a8891b89f7297901a9b63e7c799cac22a515bfb3ca9a4772a5bc9a11154011e4dc0d758868a9f646d5390c631381e8566fd5603902c11686cca1f876322cd7793c338876d82008eb30f32128511a872db5cc0ac689c75266d5a9bdcd889f73dc92f1dc5076f373be64308012553d3109c7b5b2a819afdb93bb3447c878901813849c5fcca97b116ca1c2115961ac4b8c926303bd7f502eb299421cc9cb82f556327584118c6930e03f4368ab915c3df0a46b08518cdd280e17f86824958f0ca8079e857d8ba9a522a49c3f539c845968faf37e4beb443b577646967f4f824c2a706b3a7b74866aa4bfb83dd8e4356dfb1d9f4678a0a120cd2569101b034e36bf24a58c690b69ea27ca88db6645682c13b57d9a397b83772c5357082dbb6981674a772b6a94d0210b14a7703202cff38419297edf92a305a59bc51a022919b1b61bc853abca39721b83a794f1c27d17da71a205571573ce31ea27f81b744371274d6a8138b69ef967adcc75730a652f134b0f198b86a2a670a96c58d45295433851f61850d7b318245849a140a407a60080abbab77abf58d8c46f2580716a0bff0481b1973c804a406dd2bd08370ccabbc9fc7557b26534cda249ba1b3afaf2956f10b0b6ac0a7ef02252f5869a972142e06b86b64684b34b2592bc91b7c5b24c14d232b81880b3844409c6038e06023321dca0f2271144373fbfd47884f3ac96e4bee4dbfea5eedf79fb157b32e2818048bcd9b8e9bb89118362e59c75b4917014c242f75d6e3755c28f3081ecc9db44f6cc7cec9891756d74093716697781fc8cb5b2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643 + +# Official test vector 67, seed: "074ab1a37ba5a0403d8f68d26fb787bc2c90f5ef88f2a6d286c3e6b168abd85d393d8225618608b8eeb301d26af53bc0" +seed: 334382d39164d1989696a2ff77b25a28af8bead9883b5365eb6fcca7c1781cc9aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 +public_key: 08f7945e6597c9872b0cb4b1401288d7915be8e3715a8391a486047c15b4ab758c8d9b47541c3411417a439bb2144049744460810c01b778879425077e91ae06c1bb831c75e9d1552264a6543266e769b898b66644ca93f9da7735135d743c62a3876c0c891ab71c73c9b88b5cc14de0238c82103fa8f634902a01ce5b15e7823a36aacf6a05639a812221085b38b2ab933a12552c268ccca3cc07cb4e1ca03cdc02b1a5a8231a386456b26878b673644bc3c1613090454b582d5845268f381eb0e70128c1b06f356a9da736222400acea7c58216040a1affc5771081743b5f0721ef2b601a651d8a2658eb9c5ad8599c2f040f791ab5d93c6067ba30014af51766a41c70be6542b7224767301885a030a8d68a795e9924ed844cba1b696b18c5a64abc7ab83a163cae74ca186c01cafb53c05fa535d43786679a429677cd3f672b7c9cdf9224030b32c3a147ee0b2a8e50a0905a778ad9269bf04c2a801a1d986b15cda0ec2f51deec2005d450bc070c5e9e2a9646c3a6029beb907b632f17163b260fa5b75944b00d776862c3c362d06b7852ace9f93afbe9a4d77c548d04c68206277f569875fa677921c671fa887b98866e8c25815fc09d194adcdd34430e2c3725178f6c509fb359e5c3959d72b37a52c303490ae22138dc495bb2bf0c4fefccc89eb6b70764cf64cb2b02699e84a562f076dc4221153d8bc1dc0a29387a15da95eedc808c666b3caf04882188b5509106ba5ba1869463834b48dd9a2d7d6b46de1b83834b7db556a0b624869641a7b77c1f15291696798fd0cc1d01c417062ab36548f4f7b842e99a85a502d2ed70bb82037fcc6237f058d88ab2ded194bc6f65c723656474830581bb92f196e9fac65fbfb0e662c34cd1739ecc28ace01291f24701ec6a836a11f54d44fb50a9150d9401dd96c39b1b02ec73b86827fa1cc39d3ec5d5fcc4523a948a30bb1da4b3588f029c11234b9b571ec3593e82a0cfd428ea68b727622464fcc35e3dba3bf911cdb717ad690147ab70def66a2a66052a3844b7f6866c1b4bc80c106d3155d4bcb8c13239fc96241cb1b092696a50502a887547638499216fb31379a45bf7b43f92175fe282d98d7a4ad22844661256b711228a31fd2b01fa8f72dd357c455768a77cca28e6984913c352726176e2192de562781dccfda024fb4315eb5b14b9430bf0e783ad77a763b631f6c03c4b45aba24a88e85b70fc3b1c3049447e688c3f2145072460b838546572a42f4659a71a95392255765426451f137e8b4ca64b5c24e5cc74a816a988447ce07886cdc59eadcacf5cc5b17b4b0d058c0b3b610df489066e402ed63a5d155161bac9f2e82bd0e18cf46476935fbcc0daa0ccbfc72cae9b217d3adcb3ba7e0b759aab167ebf40f6cf92eddc17ec44508d051a6302372faa22a993386201827bdf3a1e932c093ba2cd1bb347096b53919218f321bd761abdc6ca5086c51b0c471a6c2781d1ccf20bb567ce472fc663ab10b75bdc6642832acab5c5d4db37a46572645a166edf46ac243805ac78e5c483e25624dab2aa705b9b3f6d01bee692351fb4301c562e30a513f6c73d55c0bdcf439f3f62f33e42f7f876f5314cdedfb4526a075924c59dc03d5f604585571f7e69c7c8f254bcc5af0ced187401efacef8d61e38 +private_key: dbb0bec6fa248682bf1eb3b226d9bb45a19beec69998797fe4d9275f1a6ba518ab41e117059338f8052945a36277678f84f761fcea21b49b9e2c85bdd2c78df17a04f121c423ba89cf15c90bf34ed5e341156206c2abb93b8924d6fbb1182ba029178be8b5b38ed868c86c54ae69b491f2450b96205484b7070aabfce83a6f0a024dbb837cf26ffd613d106c6fc6fc81f23b838782b72f7873c9f6735e71ba2d2c7f80c29efa2aab162767b414b71b1bbc5258aa61a984b2202e06286d8ae9cd14d2bd7b229e039613eb081bbedba792297cd6672241abbf5643703b098fcac273236687cd8ab0e4d21fe2e15d786c37a09741bc493bbc908f20eb7599e6a5a102030eab2ad69266ad30696eb1072793b6aa613734554f681678fb8068aab0c903580f6329baea7155c1bb09e846ab15427e0a092c3213ad42e3c1cbcb48cbca59aba88b9f60babd8087b461a2745c2973c04a8d11cbca9b3a74f7415d975004db90c4b985d990ac3e01bd72a446f2e13545052a99371e459c589ce203012182a2746d74e5b914b872678c999523b6c5ec790f986ca98c448117bc397643c339432ab2b058e340e098ace6c6a1b0e1472e8ba11cd898107ab9454a08b965329ce8758c199f10fa5c914cc236706e0a35cb5f2c4bc749b38e2184486a88be97127ec036fa78a5780b3f0515b391ea6598d1b998141d3461c141b54ed1770ea2938066d40dc3256bc6da09184b7957070391a1cc8629181954669da8c33c94511020750387417f87080907bc8e48332d293cbcfa6409e814b79154b135c5a721b447d45ed274731a30215f92004e30ab64fc87b061c8940ac9153957a21aa54ca9be2ac1acbd46283ca83219200788eb152273c61b860aac104f66e8043e7727216141097878d66a30eeec7820f6c1f140989649c2f2354b81597b298826225332aaf6ce5b6ca31ff986a665067272c6a190a454bc3654699dad2c3660e371571c8cd0b9b1e0ec5ad43106758c3b2adc01f2e46a95f662ea6733a62c2f7f67521065655c1c9e40615584b553a4697141ab010ee4a2ac76c4703043dc41a675309774c9279ca11c717ab9518074f9c77d10c4b973fc9e1fe1026c9c0dedf68db0d7bd63c67750db13e4120eddf4012ef42dcd7907b52bccba359374b48ac4988f4b6731c20295eee277a09a1140c30a6f6062dd152425d9385046417ce4808c7a44046b3c3773c90c40589524acca23b4755b23b267b2c5904cc3a634750b863bbb44243679483997a52a703ed867c57a0ac8227bd4115e88e9461481bf5ca1c6226283ab201844d25f2a094955d131305b5f1bd91789789f4790c193da4f4426693b9575af109b0824154f431ff1171e3c48686833beb3b3a4f31388f0348f6831acdaf70fb983502e8149b71511cacc7ffc0a411eea2e781656487139cffb9f7089388800ad6310015dc85502b5ab19e2cea1fab7eae59ce1429bbfc55471bc8644204596b264284c31c21b1e3e64909ec044b0342fff306486bac1c5c2aff2e52775e7338fc8b9c6d8a78538473ce1181b08048c6129eff7ad07c85bd24c2803c57a28eccbd3623713a5368c7228bfe0547566a43a1788e9e4489f8747167b6f08f7945e6597c9872b0cb4b1401288d7915be8e3715a8391a486047c15b4ab758c8d9b47541c3411417a439bb2144049744460810c01b778879425077e91ae06c1bb831c75e9d1552264a6543266e769b898b66644ca93f9da7735135d743c62a3876c0c891ab71c73c9b88b5cc14de0238c82103fa8f634902a01ce5b15e7823a36aacf6a05639a812221085b38b2ab933a12552c268ccca3cc07cb4e1ca03cdc02b1a5a8231a386456b26878b673644bc3c1613090454b582d5845268f381eb0e70128c1b06f356a9da736222400acea7c58216040a1affc5771081743b5f0721ef2b601a651d8a2658eb9c5ad8599c2f040f791ab5d93c6067ba30014af51766a41c70be6542b7224767301885a030a8d68a795e9924ed844cba1b696b18c5a64abc7ab83a163cae74ca186c01cafb53c05fa535d43786679a429677cd3f672b7c9cdf9224030b32c3a147ee0b2a8e50a0905a778ad9269bf04c2a801a1d986b15cda0ec2f51deec2005d450bc070c5e9e2a9646c3a6029beb907b632f17163b260fa5b75944b00d776862c3c362d06b7852ace9f93afbe9a4d77c548d04c68206277f569875fa677921c671fa887b98866e8c25815fc09d194adcdd34430e2c3725178f6c509fb359e5c3959d72b37a52c303490ae22138dc495bb2bf0c4fefccc89eb6b70764cf64cb2b02699e84a562f076dc4221153d8bc1dc0a29387a15da95eedc808c666b3caf04882188b5509106ba5ba1869463834b48dd9a2d7d6b46de1b83834b7db556a0b624869641a7b77c1f15291696798fd0cc1d01c417062ab36548f4f7b842e99a85a502d2ed70bb82037fcc6237f058d88ab2ded194bc6f65c723656474830581bb92f196e9fac65fbfb0e662c34cd1739ecc28ace01291f24701ec6a836a11f54d44fb50a9150d9401dd96c39b1b02ec73b86827fa1cc39d3ec5d5fcc4523a948a30bb1da4b3588f029c11234b9b571ec3593e82a0cfd428ea68b727622464fcc35e3dba3bf911cdb717ad690147ab70def66a2a66052a3844b7f6866c1b4bc80c106d3155d4bcb8c13239fc96241cb1b092696a50502a887547638499216fb31379a45bf7b43f92175fe282d98d7a4ad22844661256b711228a31fd2b01fa8f72dd357c455768a77cca28e6984913c352726176e2192de562781dccfda024fb4315eb5b14b9430bf0e783ad77a763b631f6c03c4b45aba24a88e85b70fc3b1c3049447e688c3f2145072460b838546572a42f4659a71a95392255765426451f137e8b4ca64b5c24e5cc74a816a988447ce07886cdc59eadcacf5cc5b17b4b0d058c0b3b610df489066e402ed63a5d155161bac9f2e82bd0e18cf46476935fbcc0daa0ccbfc72cae9b217d3adcb3ba7e0b759aab167ebf40f6cf92eddc17ec44508d051a6302372faa22a993386201827bdf3a1e932c093ba2cd1bb347096b53919218f321bd761abdc6ca5086c51b0c471a6c2781d1ccf20bb567ce472fc663ab10b75bdc6642832acab5c5d4db37a46572645a166edf46ac243805ac78e5c483e25624dab2aa705b9b3f6d01bee692351fb4301c562e30a513f6c73d55c0bdcf439f3f62f33e42f7f876f5314cdedfb4526a075924c59dc03d5f604585571f7e69c7c8f254bcc5af0ced187401efacef8d61e3843d6c8562cdec0e87d00c8ca8060da3f031ab663ddb43148eebd67969b7fd490aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523 + +# Official test vector 68, seed: "cc0c86cc0abf86fa21899be1953913c00e7c46e6b5f730c4e88b3c034012763981d7f14459d3081638080378348856ea" +seed: 6995143e8eb8a6e93840f76eec844f67d2b5f75b1839a5040337e61f9806764a0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 +public_key: d743a9918c149231c6bdf338098c07f21064775b6700ed30fb2153478b67b0f344da35ca35e4b7c289a503d5ab9eab6e374279ec8ab67b2264d7b9b80d6bce26098a305734e44342a5078597f3bd574b931c3c74461c8da856239c24c576815f7f48cfc026baeae328a8207f5091cb7248615ac076f12763f8b63c0b75a1ef075b6e1c61b1c3bacb9c8895286e30729ce083b90df566ceba4c00e06214c295ab2b95e2b70032e04422572c87b475a63b53fa84ac9fe3c8bdd3cd06c13859b263d22a588b8126f2c615e3a705e0ba960261b47638a9e83c5bd3f791b362652290c5bcdcc4f3c93909431a4ef875c5e30f0c311e5e8344deec53c3b4bf584932f168710f66cbe718886e2ace059034fcecbe39d50d012c0ea26b8cf13807f1117f32661cf997145470c8aeda68022ccc43d1bb66732f5966c11ec221ac678bcba824f43c3eda94401c17c4877490e4393404db53a27b1dd3aab78e152a58f3741e1bb1b9a8202df64434ea9c5a8c9fe7584ea538250da92295d3a4abbc3e392a36cae9af1cc51095b2b2dd97ba7072acec4b7b83bb6d284c5fb3fb634ab3012e8825f8748022d8cef7367ae46b021df68aa8239d06c09fe0555e07dbc356293d41bc4f1e133ddca95d2298b2aea88aea5637d262390a79980220095d7116447c5d5b6ba2b962c794c899f45860658a0a530c7669134519a501e5a0759f9a50777a2a6dfb942f98b50067455a7b692fb1cdc2c10f64e9114b29cbe173ac4fc2adb95c550ae7a55387bf01ac3c45222fed7bcf9e240a6d9b0d088c032aa9714a6a55c692635b6911d92353c68794be250dcd65782a6674f87343a6654324f47f5ac9b384b22766d0c96852753a4449e08371d5128f31831ee766219e910b1f6267a57bc991da5b2b69a5a9212ba06ac917d45c9aa25bc1b513f7144217e84f1693360ea0690e51688a704c45cb6b1071a0e9a130abdb6cd3b52b8a429c33d126cfc10c73c928da9507aab00950f37e9bba0ab981394b137e337a88249100da175fe9299de1d1130381b3fcd265f7b36c00959b5bc2c150eb7dabf05bdf590e32e063a01a7cff6a9a22c56752c8b948502f3f8ac5ca444e10bb6bead1c7557b2bb2e37d55646455162806a7778b1938fcdb7da3e64c01c4a36a847b77958d27ab9defa6256b6a30a9b9962175c13721cd28e979e0d60196ba8c3c940aa4718d39a9b280486a6c2264640c4b09642499957be9642b6b545dbcc868098332fb103d75e38eb7ccbee64a341b38b0097479c019257be03d5d290e89a6a6f0b61039b128b46b02bcd750a9496ec4fb8dd6378e1ac77aa9f37a75d072d268c365725926cc76b58b9da040c173d7732e1401ab222553d6aec7911d052c569c59393997372e548086abb4de201ac1c17f25d76fb58c4ff3380cc5965720b989f4aa252623c215369076e771fac786e7f0ccdd917da64126fc610eb76948f97a5c3116869a11a46e612d9df04be0b1af0e8c8bb46607ea4bc4b4b04b3f79a30a2a154691a79217537b97a7dff6ab4edc9e2ad6cd97d3aef52837aeb232f799a3ce30a6adb88f6a0aa73fea00bf0146cd5447c6dc483b4955a0a3c241e7cc353c2c7085b84c5162a49e7d61a2d0e85a009833f3eb2305d7d435e2a4c81f358aa8d0dd50628096f4 +private_key: ed0c4dcbcc3304e1646a04b9675b94430b49a83bb1552c211f8928c47785c90422bb658f33890f3fe25078cb0c5d52ab737c647b2080e32164de411c489664d5ab23130c1b4a409c1c0296bce722bffab9d60ba4854c9887f0089567994e3375e438069bd40cf0e08e1de134c1f902d0abaccffa0e866122f28894f5275a8a7c2be316811032738f99b53af64c6b346fca072ebb38b665ea616687042b240c53501e18a424b5150b98a4897a168e5be9b9a1f04f0f14858af0666e177ba7f52be6508674ea48fa23313a71372be5a718a13d41f4887892bfc013889481339b2438f8516b24990d70c1159581a109fa1cdd460e6910465e71ccc362798670933052bb03e23768c3c255d0bc7f002e7dc299ac0145bbb585b9682978302aae26047bc8a2cac90589da65d604abaae2b36bf78604d33e23a67544a79fb8131970199116b5bef702ba74506cf72965d7d8bd8b438935c1c8a1e535806009ea22a5ef4b215003b67627358151238bd50391c8384a938e7098929b7870f87321903c819c6480c992cddef1c969e4a1ed4a98d367994394571ae93a61b4336d537140887c792290a196b01bc7c30e364618fa371ba975f49b4637f9bfcc7bb1ae789156c4ab2fc6cd62195a44c7572cf9239c3b951bf636b43cccae63b82cc2bc4bc6a03ba5a087c534339905f4280b7a79186b2652f3582c1865cb6ae4b334f75cd7f358f2bc69cd1b0d21a7ac35c926772ba764a72157e51e38cc66392a1bf409a068e033b00b4a4d04516873516bec242ce93ec073c366e8534e4b55fea906daf090eee9a1fa4a17e61a644ce54536f70871e61a2a728ccdd7c1e702869a28a2ade4cd234119229c9cfe80ac664bb2016125b3822ab240989e79a72cc26207ea4b139bc1bf5a257645b9b372763d4a318d4647024c797b8a1c2d49bbb4857cd1272f56b8342c46541000c84bd676bd533e9529072e77a8f73164fcd8443c3079c1ab5ede2305e6c5c22af691a25ace01436e43d56e204b4dae93cff827c061d1354acb6cd4070c92bb4b145bb0649a6fb8985e03e4a82aa178161a2bbbf23562b342f4818100b502c88904c196c08920aab3ea154c9535ddd8c9c12911500a38db80bb70c3794ee15f7a44097a7407851007b40801d16c417e5905eb994edaa2807b9c7bef6bca9065374b856f95f09fdfa2751c20c5a42a3adef757efb8276303a6e65c4cb17abf0f97c29581139fd655d4d80224275799645008f42ef508ac9445c388a989b3ac09627041741c30b433a0d0b81a59d237753ace7a89c1dd0689cee8663ae8497e9bb885436021d4ba553c706faaafe7c8478e346caf5280e171ba24672e850cb80e491be2195749a8cac30355f5b386e47a65b22592a1f7b09317cd6f3449bb22aba8c2711e979e898a2706d80fcf52af28a68f0f7a0f6c3221ca73918140447e166a00669929b915c4aa507e49672b45154c92239ef0190b086b65fa9e4ce7995e39166c8ba70b5026ee2745c2cc409e40c56294a9d4539101cace01a2861d31924d8c3f7e824fa8bc552bf6b70c042bef1192d1517091fac862776c9a33cec6939d89a30130561d400552c195c702bb9322378a12e144a0f956d743a9918c149231c6bdf338098c07f21064775b6700ed30fb2153478b67b0f344da35ca35e4b7c289a503d5ab9eab6e374279ec8ab67b2264d7b9b80d6bce26098a305734e44342a5078597f3bd574b931c3c74461c8da856239c24c576815f7f48cfc026baeae328a8207f5091cb7248615ac076f12763f8b63c0b75a1ef075b6e1c61b1c3bacb9c8895286e30729ce083b90df566ceba4c00e06214c295ab2b95e2b70032e04422572c87b475a63b53fa84ac9fe3c8bdd3cd06c13859b263d22a588b8126f2c615e3a705e0ba960261b47638a9e83c5bd3f791b362652290c5bcdcc4f3c93909431a4ef875c5e30f0c311e5e8344deec53c3b4bf584932f168710f66cbe718886e2ace059034fcecbe39d50d012c0ea26b8cf13807f1117f32661cf997145470c8aeda68022ccc43d1bb66732f5966c11ec221ac678bcba824f43c3eda94401c17c4877490e4393404db53a27b1dd3aab78e152a58f3741e1bb1b9a8202df64434ea9c5a8c9fe7584ea538250da92295d3a4abbc3e392a36cae9af1cc51095b2b2dd97ba7072acec4b7b83bb6d284c5fb3fb634ab3012e8825f8748022d8cef7367ae46b021df68aa8239d06c09fe0555e07dbc356293d41bc4f1e133ddca95d2298b2aea88aea5637d262390a79980220095d7116447c5d5b6ba2b962c794c899f45860658a0a530c7669134519a501e5a0759f9a50777a2a6dfb942f98b50067455a7b692fb1cdc2c10f64e9114b29cbe173ac4fc2adb95c550ae7a55387bf01ac3c45222fed7bcf9e240a6d9b0d088c032aa9714a6a55c692635b6911d92353c68794be250dcd65782a6674f87343a6654324f47f5ac9b384b22766d0c96852753a4449e08371d5128f31831ee766219e910b1f6267a57bc991da5b2b69a5a9212ba06ac917d45c9aa25bc1b513f7144217e84f1693360ea0690e51688a704c45cb6b1071a0e9a130abdb6cd3b52b8a429c33d126cfc10c73c928da9507aab00950f37e9bba0ab981394b137e337a88249100da175fe9299de1d1130381b3fcd265f7b36c00959b5bc2c150eb7dabf05bdf590e32e063a01a7cff6a9a22c56752c8b948502f3f8ac5ca444e10bb6bead1c7557b2bb2e37d55646455162806a7778b1938fcdb7da3e64c01c4a36a847b77958d27ab9defa6256b6a30a9b9962175c13721cd28e979e0d60196ba8c3c940aa4718d39a9b280486a6c2264640c4b09642499957be9642b6b545dbcc868098332fb103d75e38eb7ccbee64a341b38b0097479c019257be03d5d290e89a6a6f0b61039b128b46b02bcd750a9496ec4fb8dd6378e1ac77aa9f37a75d072d268c365725926cc76b58b9da040c173d7732e1401ab222553d6aec7911d052c569c59393997372e548086abb4de201ac1c17f25d76fb58c4ff3380cc5965720b989f4aa252623c215369076e771fac786e7f0ccdd917da64126fc610eb76948f97a5c3116869a11a46e612d9df04be0b1af0e8c8bb46607ea4bc4b4b04b3f79a30a2a154691a79217537b97a7dff6ab4edc9e2ad6cd97d3aef52837aeb232f799a3ce30a6adb88f6a0aa73fea00bf0146cd5447c6dc483b4955a0a3c241e7cc353c2c7085b84c5162a49e7d61a2d0e85a009833f3eb2305d7d435e2a4c81f358aa8d0dd50628096f43cabf1c47e7aaada59ded4fa8ce378ce1d9eba621ebfe8cc96a111aaedc4b6cf0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6 + +# Official test vector 69, seed: "6d5a7cc326ecf3983c4e7683f45263a37f692f3bcd2d920e1fd9584350119e74f9a3f905f70d3e20318c1413de2a0dea" +seed: 995eff7e0d195c6d0533f3dc194d47e60f9ad14696144cde694d60a95f3e96b4b28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc +public_key: 8e4458305ab8304a53b5c47b42911ba1b011c4da11c08b281e625f6f37815dbb1f3908c4c1646142b14d846b8400114face5cba669179ef121436a1975845652c5cb4ff62fa0073738f0264401adbb78b44e61619977804aca17deea16bad48655133144781b196c2a949bbc9aa8714758061465a9cfe09f2a1316ca875523e07fba515296309b6b7391b8d192012278d684b2527318f30a7c1e598a05027409f65a7f36b57f693a660c7a9f2b0bc38420128b87b005b5ce7631e4a10ff858831cb0112f5b6f04334565563e751820da374ce2819e4ed9bc5a959eedc4052c502abc54baf3fc0e426b77de7a274f81451070042e70c19a09421454141d2600df76a740423cb887065939cfb657a76785b35a5868401cb4d88ac8194769ad2499f2f20ed2a188e8e47e918cba7342b4c8893fe411b47b058b0070771161970c4331ef67be34bbc4781171bfa19d51e11612f93cda611f4ed88f85b87e8beb6359eb410e7175ef6171faa03e29e11ea8a6caf023c357a87afc652a00cd422020295bd34170068d31b7a058800026a49fa1f7523ebc5544389cab259815114d4b01d089d3cff6956f5d0b5a9fe652825b1150e21d11f562196892ca41941b46018ee73683e008525059496a07bb029737103b729b1fcc13ac3236b47c63a6ed4458a9724ef7b62361e75ba726be6774cf6b3572657b2a6abcb69182cd3b880328bc4f52c075c150bb22aab08cb2326815712ae20cf1f257b9e6ce0725782e9590191b2055a45c4467c5e7d70c35b8a61a48a317022c298b612782203a820f2161844f6a6fea58ca9f230713c701aad2700bdc951fc9bb8f560db9e99f2849afefea6c366c982f3680dea24891c631a1032d9d884a5ad9a11fa8331be85f1c91c6de2b4143ab403b153d9dd714db314c683ca24cc45f86c2276058be32ca1cefd4116ba386069856c6128ca86a63fbf6c15e876d63f738f847a32166b1592c3307d9c6190c5c42b7ab756ccb394c7c26c28fcd158bfdac9f04c99e30254d500cd0da1b9f2b74823f14283a888bdff45ca218b89b9450fba868ea9b1a5858509137160db31aa292863ed216aef822123c294a825e26fa3adee0291ab37c1462c89a4981949bb764f4222b3527dfd8a715682d159ba380339971857272c7bd7442cb73739c450b58cbeb6936b8cb619654037856935376acab92026bbad18c512dec4e19671180599e01651f008c3a04007cf02535ad7608e1e9257fbb04e419976294702e84341531b95e1b20c2b152a4d849649113c69a8f379b5d72aa86e01a4c5202ab2e276712f1131c411d4072cb45147c562c60080c56eff7aa7d90c4dc293b01ba935e345b88faba62dca043d94c4a666786c35f9318a579a9b67e429144240d206612a6d802fdc24aadcb42b0db4251e06df92a67e632aa4a29000a77cb2fd2959f851288464c824872ae6a9fa1bb3a71d8879e303c51445956ec8ae49c4ae6ac4de2047edbf3c0b23a29b8b86b83cb24530b0d17739331292bab85868e4a9bcbb2b4d4514e52d9afbf66172ae560c08c7f9cfc0c98ea4ec9c785ffe76ab5098e9f3c5ead6a7759b529661b50e0368246c5afbbb9b876c8072c1c1ca63a4e6607fe4286fd2062614fcfb544fca36edf0785c37bb6f5fc33e2b9d9d03a0a6c +private_key: 2e497feae75af1f280abf2085c0321a00911d5008bf8a4042ba44691367fccfcc2d496cc40e113a0d056b5468b190c0e2e629f3264797f0c3b647865f4d782a9601df6bc5f03c1437a23b5d222bad406874f1459f1f9aa3ac061a20677d9d785535cbe7073667e4c916725af4d7302cf76bc3c23ab89666a2019625044a8bd954df6d68c2114b31efccb7d91af07f3ad3faa852d4162fd847ae7a11d8e11133089b9307806a9237ae3a9949043b10107acc9345c17697307e0c6c3ca1734f6cfbde73c6a09aa1b8159c51179ea8b93509b223668849b1b7c59118033f969b9d34b354b32bc0b7540d3ccd2995bc36abe44c0394ef5724b058d0a575947024ce6e72463389bfb36bb851864c38097fbac7204036de72cb0da94cd2f98a1e52c1e630748a7c05838ab53b2d33b0d541c1bd31a2ba803f4205616423534c982038622b70ba4778886f2d15aaa681d6468848fb0601d7097b99040e9e8a981749f741127c6a0000b0c32e28976ecd97514c2aa15f82979497e1da91bd3200d4b0ab373e41a56aa9aba24693cf9c7939cb8733c27a7707eda2aa4f3f304c5215edfa3cc3f785bc0ba83d9f291f8787fc0032f112133fce87441b473961cc87629337cd4acb5367432cbc7407585a3e2463de228895327e883604a19ac2c46389f1b0706f720db8c17f709a796e03d53046c4ab2013afb40ed73247d0c52b0f88e2c9100b1b31813346904978d3bf6bf13b4a6c54c3894f2a2266a9987a4c8505cbd94028ef7963c97d80575549559bcca5d78c99af532b31a382567a6b1e8c56babbc5863144fc81c6322806a6269215740af996b0adaa72f425169517d1e48ac1349c343214c52482b9d19aae42c4a6ddb550040b30ccc82e7d5578355b7313a1f84f872170a6107a52008aa47988a5a78a15a6d070e308c59bc630d1a1292fc2a41c86967b4a3b3ee312ee3c2327a80cb9a112b07b9b0e5858191164a7a87427a8423f7116c2e84377af5cef303b7e9069661f1047c15bc52876c45864dd78854d0f07fd2e530fbbb9b13a4034cc38e34344d5ec41cf544359b93ccb0338bcde09e9b938d5e0c2065126ae81581f62668afc819f705af3b82bca5921699602c6af9810084933c438d4de95a6691ca3ff425fa04b614bb973d899bb8748a7571b112545548f08ff98931eb555f8308ac724a8ad09a90f109219c3032f4013cdfeca92b4cbf23e528ab6abb29370361baa8f74c3a2ca8a29d6a893ec06e60979e351b4ff6247b8fe3923cf027c55363a9243cf9a237ff09c0666aa7b6c56b17a63fec016b4c15cc70c59dcdf3294cc0c72df53c9b0b00d2383e7f48335108629762793fc70642ca91dfa1ba6d97a1a36a55fa6c9d73246a3930b31fb644e34579c2866fc4c5671667b0dcf1aef82bcce732052d766673b398aaec441cfa73dfd3b463e8aa018c4272eb0c3ef15618f9acad61bcaf64017648539c766eabf8038f5467d446912c98836055496b1b7d777cc82eb255766568822704a12640ade87d0ba066b4f3405177c9e1e41f624c5ae055887d68c97be0b0eab254dc3756d00bb8e78676ff62a94f842e9f5774b4f07b723577c742bf4623b0adf246f87c53944cbc8e4458305ab8304a53b5c47b42911ba1b011c4da11c08b281e625f6f37815dbb1f3908c4c1646142b14d846b8400114face5cba669179ef121436a1975845652c5cb4ff62fa0073738f0264401adbb78b44e61619977804aca17deea16bad48655133144781b196c2a949bbc9aa8714758061465a9cfe09f2a1316ca875523e07fba515296309b6b7391b8d192012278d684b2527318f30a7c1e598a05027409f65a7f36b57f693a660c7a9f2b0bc38420128b87b005b5ce7631e4a10ff858831cb0112f5b6f04334565563e751820da374ce2819e4ed9bc5a959eedc4052c502abc54baf3fc0e426b77de7a274f81451070042e70c19a09421454141d2600df76a740423cb887065939cfb657a76785b35a5868401cb4d88ac8194769ad2499f2f20ed2a188e8e47e918cba7342b4c8893fe411b47b058b0070771161970c4331ef67be34bbc4781171bfa19d51e11612f93cda611f4ed88f85b87e8beb6359eb410e7175ef6171faa03e29e11ea8a6caf023c357a87afc652a00cd422020295bd34170068d31b7a058800026a49fa1f7523ebc5544389cab259815114d4b01d089d3cff6956f5d0b5a9fe652825b1150e21d11f562196892ca41941b46018ee73683e008525059496a07bb029737103b729b1fcc13ac3236b47c63a6ed4458a9724ef7b62361e75ba726be6774cf6b3572657b2a6abcb69182cd3b880328bc4f52c075c150bb22aab08cb2326815712ae20cf1f257b9e6ce0725782e9590191b2055a45c4467c5e7d70c35b8a61a48a317022c298b612782203a820f2161844f6a6fea58ca9f230713c701aad2700bdc951fc9bb8f560db9e99f2849afefea6c366c982f3680dea24891c631a1032d9d884a5ad9a11fa8331be85f1c91c6de2b4143ab403b153d9dd714db314c683ca24cc45f86c2276058be32ca1cefd4116ba386069856c6128ca86a63fbf6c15e876d63f738f847a32166b1592c3307d9c6190c5c42b7ab756ccb394c7c26c28fcd158bfdac9f04c99e30254d500cd0da1b9f2b74823f14283a888bdff45ca218b89b9450fba868ea9b1a5858509137160db31aa292863ed216aef822123c294a825e26fa3adee0291ab37c1462c89a4981949bb764f4222b3527dfd8a715682d159ba380339971857272c7bd7442cb73739c450b58cbeb6936b8cb619654037856935376acab92026bbad18c512dec4e19671180599e01651f008c3a04007cf02535ad7608e1e9257fbb04e419976294702e84341531b95e1b20c2b152a4d849649113c69a8f379b5d72aa86e01a4c5202ab2e276712f1131c411d4072cb45147c562c60080c56eff7aa7d90c4dc293b01ba935e345b88faba62dca043d94c4a666786c35f9318a579a9b67e429144240d206612a6d802fdc24aadcb42b0db4251e06df92a67e632aa4a29000a77cb2fd2959f851288464c824872ae6a9fa1bb3a71d8879e303c51445956ec8ae49c4ae6ac4de2047edbf3c0b23a29b8b86b83cb24530b0d17739331292bab85868e4a9bcbb2b4d4514e52d9afbf66172ae560c08c7f9cfc0c98ea4ec9c785ffe76ab5098e9f3c5ead6a7759b529661b50e0368246c5afbbb9b876c8072c1c1ca63a4e6607fe4286fd2062614fcfb544fca36edf0785c37bb6f5fc33e2b9d9d03a0a6c2853cbbda86e7039b635d4cc850f494d42b240acb54ab2316791e9ef5b45f1d2b28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc + +# Official test vector 70, seed: "f68fc0314dea88f66afaa76e6c9b6804b13d4876924410d1f526fac59a62e26c560b125b1d0f8b461f1fc2e351effb4f" +seed: 3e809ec8dd0fec0d911a4e3fac20f70fbb128c5de94dc7184ca7310ae9157a98d8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 +public_key: 77155f91195dda2b52c1bc4ff328c3732799ea0aa8ed4229e9a239e5b5c5a02c1ebe98a381dc56e1d4b56deacda3ac52b1088805476c01609a0a2373a4bca788227172c4431b000005d855ca059b4e554d3dd2103cbc7854a12cda368ce202873f5747450c4fd994898dac5926765536662c81581ab4db18e9763cd5a747659440c9a33eac713cf907ba0d5a875b90882de31b5df825f337b46451705658915630035724c127c9c4b48572951770241993f777145573bc70125d35f1b03a121d09ba4388889568ba109f04617360826ad48f2765944232b1cf636fdf3c39c40ab87b4b50bffc1019eb0fecc35cf7416ddb3146e275cc7ae209269a7330977e9dba9caf79c99e30b8880525caaa84401cbde7ccc0fda4b250b7a2a651b3afc123eff52eec55650029af651b2014f4669de319435b7dbedacc173c3dd1f3a8597b80c9c3869d7389398a2404e790c9463f2634cc7351bac9d74b62b73e7e54cbbb3ab235c7c1ce298c0c0369de33224ab7b03517856e43cef2d39f1d325d1e221998c53631d32a57a880f24476a7e89f8c1b2d1c49759c322e993cc7effb2bab738f2648bd8133208ef26ffcac76393714859ccce0515d4a7192ded6ae5e828be6653b05cacf0df1b4816a972592089ff88fa421a490ca13c6789639c909c4db18ee43a01989c51b6005ed2548ae24ac8cec10bda7649e6c9359c45bf0ea0d39f25bb1ab3c3b5b88cda24caa8c7c7106616ba05da6727896d2a895835c9b83654b358e0d4728fec8a150b39283e345f3e06b4680bc632009eb85adb811277926662e531db27b3ca60843a6370c304c1dd21a94aed90c3663c0948bc12f0a32af533866f5931d5c74423246c16aa4f01808d06a6d50444ef8a3171ac641e9417e2e025390caaff16c6703680951b1a0e5abceb8fca9830c9ce1aa08d5803280f31de3cabc923b5a1a7c4854d841729194d3685c03f975a72440b5fa01b11868a48bcb73794c83644d1d39b9664c432c7b3bc311703ec01d268a34a8a1b3dc79b9ae07b8cd133b7d4baba7f39b4088043e4a35fcd08a9ef141b78cb1f64841ebf894827bbe1ec47509817ba27cb42222272a00a633e1b2ab344bd3778e4a579ac7d64a32e2356b1822c1334fa0e6acb05798f63192ee20629106130a1ac330c6cf0200908fb37184740e5caa5ad44067ac7930f696bc9226235d212d71f57ffc2c8c185c1f3d717271022f2d256963dbac5c5a1404a71e3546695eb27d73221892b5bfef114d6f88415875c013f16e48d3cdb68c2000a39a45263504e0a7554386d68a4d3992c9f6196015066d3b8282e8d3398d2b5f62d7af54698418862db3a84286f142a8cb44be011e0f2594d161611cb335bdb018d9e58cc71a363b29439d54cc6b293af33b0dbbcb80c7797819a96c1316a783f60f987a3fbe1acf80f22f610037d17247122c4ae2b2214638205328c43fd4bebce93d47c02b84e1cdee7cb48805396c24410d71ced4805f36a105b05c6564ec3450654cc0a12e62f7c0da79496ff2bc97b7b4809aa30d577a2f3428e48220239b1b97d9278dd26d93d186628812fc697d961442879ab64b4ba0be3c46f5e55c13222058b407c1694979897ca0615e8de05d85d3532060076acafc8e0aadd8ca7406c7bb316abfde1bcdd166 +private_key: 65f04f655904f41a6a88535638821638039eb85517c3899ba016172b8b3120b90e4717c51fd0a6a1d8cb799562e1901128756501bb00d4b695e11ccb335b6fc4537b236c4fba1885d89b2de48427a65357c31990d9955ae7323b30244a0f296a259c5deac728403481f0745f275401c9482ffcc3cca44832bfc0799164cbccab87bf04b813b32801f2ca915a9b35d60e34e95a74e660441a686c89397c915290821989286168b6ce76e485c946179dc484ce6bb94c9c375a899afc6932cb9876796bada211b849101aa4c5b837453cf89a0642c91721b01abef1a78ad28006e25762a65d23664c79c87cf79cbf4ee38070905e8b561a254394b9a4a3d40bc23ca6a2e98bafbdb067a34c7f450a2ec9c419c8816fb71ca46d177e148541d3ab6dad4b467ed7ab1cc94b57413c31880a418c56d851ceef706534871ddbdc8033679d82eaa69a4c4872233ec12ba28e42870e4a43c3ba3e0e36cf7cb740fceb3af481904007051c137d702c890d126f7e6b1d401bb4e81a4333d7c8ee5cb8636a984841c67817411862af5e3605fe838630a680c773725495812bfc4531106ab13b52c2d357b3139f9495c2d4e4a77a07518fac187185b2be2355dba0066d8a418bd7aa5038c6f0d4a3e5a074d409a15fe77ba7e176cbf2c7c20b10116737b6232851e688fb3279d060c8c24005a73780e7713255e6498fb50c056222f376cffebc723ab180d4eab9aee52a1e08cc2a73b90419a056e32d660c7717884f897809df5c42921871a1e59ce36aa74cbcbd9fa3069897a0a76113ab6818482548db03455a58b127dc5daa0cce8a5b5f3f10a678d04b68fb46fb6a94ef87161743b2364098a40128dc3181c551cebe151389431972498317b52d4f5332d6b74210d783d9c461453347f820acb6e4a3315a2496cc683590b08b0503b31b97688a1f6cc957c6c4724faa6a0b982859e961c808aea88862c750c6045b57f53963d83448b228847384754cd45dbbe015e6254c055163a60c02b41988cc2511fe70963c632f8180333c532109047c65ebad0aa56d3bd136efc88b6dd832bd810cebbb9ec40cb44754bf664773d5466ff0b86848314432e085761c3d81e2669ab41d9e3c1ee343ca24bca795eccfd6942dcc27170a74a02415bb732ba880a5cfa922b10e4973067109a3b210b02b691c8aa4a931252546a77b206098ba78f6e4781660a29a00ad98307b76cac825a534003154002977ba8150d3847fcb513120f43b2aea6788e5c17bfab456d7b96a1ca2d217b86ba5b87400cdee144717f5b34fa842778c0917200482c99571a36a133097365b7e36621f51ab88b0d0b3aad022f39b4ef3ec1cd0459ec3c80e56524173a2047b099c304c71e9db708ee55895dc1b30cc8fb1b1887f312d70c8b399944b4de4be1542a27bc0569674a4097288b9c60982149270d57d766c09a47045527ac8d710bb41f8c34edab551d0c022a627c2078edf078b0464b81b46057296b5ebb3571ea000a72065ad11b5cd36accd5628283554f38b6aa39bab97a171cf0cb3664842686abe589a9321d7b911b371ec5a31d13a4e91c8118d504360f668591163fdd233a6bc5e65341703cbaaa931293cbac5d0f16c77155f91195dda2b52c1bc4ff328c3732799ea0aa8ed4229e9a239e5b5c5a02c1ebe98a381dc56e1d4b56deacda3ac52b1088805476c01609a0a2373a4bca788227172c4431b000005d855ca059b4e554d3dd2103cbc7854a12cda368ce202873f5747450c4fd994898dac5926765536662c81581ab4db18e9763cd5a747659440c9a33eac713cf907ba0d5a875b90882de31b5df825f337b46451705658915630035724c127c9c4b48572951770241993f777145573bc70125d35f1b03a121d09ba4388889568ba109f04617360826ad48f2765944232b1cf636fdf3c39c40ab87b4b50bffc1019eb0fecc35cf7416ddb3146e275cc7ae209269a7330977e9dba9caf79c99e30b8880525caaa84401cbde7ccc0fda4b250b7a2a651b3afc123eff52eec55650029af651b2014f4669de319435b7dbedacc173c3dd1f3a8597b80c9c3869d7389398a2404e790c9463f2634cc7351bac9d74b62b73e7e54cbbb3ab235c7c1ce298c0c0369de33224ab7b03517856e43cef2d39f1d325d1e221998c53631d32a57a880f24476a7e89f8c1b2d1c49759c322e993cc7effb2bab738f2648bd8133208ef26ffcac76393714859ccce0515d4a7192ded6ae5e828be6653b05cacf0df1b4816a972592089ff88fa421a490ca13c6789639c909c4db18ee43a01989c51b6005ed2548ae24ac8cec10bda7649e6c9359c45bf0ea0d39f25bb1ab3c3b5b88cda24caa8c7c7106616ba05da6727896d2a895835c9b83654b358e0d4728fec8a150b39283e345f3e06b4680bc632009eb85adb811277926662e531db27b3ca60843a6370c304c1dd21a94aed90c3663c0948bc12f0a32af533866f5931d5c74423246c16aa4f01808d06a6d50444ef8a3171ac641e9417e2e025390caaff16c6703680951b1a0e5abceb8fca9830c9ce1aa08d5803280f31de3cabc923b5a1a7c4854d841729194d3685c03f975a72440b5fa01b11868a48bcb73794c83644d1d39b9664c432c7b3bc311703ec01d268a34a8a1b3dc79b9ae07b8cd133b7d4baba7f39b4088043e4a35fcd08a9ef141b78cb1f64841ebf894827bbe1ec47509817ba27cb42222272a00a633e1b2ab344bd3778e4a579ac7d64a32e2356b1822c1334fa0e6acb05798f63192ee20629106130a1ac330c6cf0200908fb37184740e5caa5ad44067ac7930f696bc9226235d212d71f57ffc2c8c185c1f3d717271022f2d256963dbac5c5a1404a71e3546695eb27d73221892b5bfef114d6f88415875c013f16e48d3cdb68c2000a39a45263504e0a7554386d68a4d3992c9f6196015066d3b8282e8d3398d2b5f62d7af54698418862db3a84286f142a8cb44be011e0f2594d161611cb335bdb018d9e58cc71a363b29439d54cc6b293af33b0dbbcb80c7797819a96c1316a783f60f987a3fbe1acf80f22f610037d17247122c4ae2b2214638205328c43fd4bebce93d47c02b84e1cdee7cb48805396c24410d71ced4805f36a105b05c6564ec3450654cc0a12e62f7c0da79496ff2bc97b7b4809aa30d577a2f3428e48220239b1b97d9278dd26d93d186628812fc697d961442879ab64b4ba0be3c46f5e55c13222058b407c1694979897ca0615e8de05d85d3532060076acafc8e0aadd8ca7406c7bb316abfde1bcdd1662d5680b483287bbd3e61a91839cca9e761429186176b7bc64034ad43f16f65e9d8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473 + +# Official test vector 71, seed: "a229218b0d51f58d915df549901548fb0722f352c7470900e7e4d8399205764a319bbddbd06c00e8c5932722ee5a404d" +seed: dbf1c465fff3d9f783bd9ee61a573715e45691147b8904439b5ffaa64f94ff7bb6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f +public_key: 697588a4004634fc1c77215f0677879aab3e63b51ae7436c5b47370e226eb4ac15dd0281ec65c56b83b60ac42de17b1374d1680b76460e294d841c1062638cc003d043a26307c08025a594fa3676df03c87789a4499575948b2574f6931673936e971f2c79598a1b7b35d28103252b4df98c47f6afa057bd87b1cc516722fd72bae0f437479c1ec6f68087453e23fb4381e5930e5a19fc9a267565b1dfc7aab9c13441101e57d9a4a454a6d1249c3cdba091113d0f1b257d0986f23b4fceb35c95ab05e2911dfb2899398808582a6b1aa9950eaa9c87c8bdae7372d46c2852e85c629c25e05a169900b24cfc0a68661b6d44c74c658ab8c00c756861be79272339a60828b9f0b8a325850b41950f97849dece714c494ba9bb09b74ac16138251363b52dc166f220623982c19ef565f80583b84d0b91267ba98b63afa31160f65961181951019419fc0627cc48de9d6b2c689969548641009cdc56b02a140bbc4a995a7f2593e0213cdd2cadbccbca41947fc8033baa1754a8815ad52cc31940451f8a62dd6b39e22a6b0db8a0f953c6cbca43f9c1285315f59ab9980ebbf57c1457dd8361da04e0eda771cdb37a6a54c6a47719790976a957978e198446320aaa840e0f1c076260e75e9a92980891aa6245e003f1fd6363d0b6e5c73b476b77ef867a60b225a99a763d0ea80a4c61739875bce5c0f361322450c93040b4d6c08120827b8026ace0ec73302fb6824367ac89a0e7df45b850618612ace284c2da4421689d8c7034113f9a1b2342736f5f11cfdd7ac7f8468075a4a2d7960dfba9e264514a8d7c6d11c660cec1efe33c04b4681dcb31fbea47247bc83c581b174b0cedcf0bd0b7b622126cbe323986b75a407e416fc0032fa2398e504967ed021e993a955713a76365ada810f9bec7ad1a6929a466f08113cfd6919e014085d4148be060ebc014fb1fa3a1ff70a3ad94baac7be6c96bc0f28a021e39cc6bb8a6e16312255880a84778cbca55f4173b2070d527357cac69c22587208496af1715711f76d5c185807a13b2c791b91f54b23ac8b66b71b3e211e55180fe7a1bb2bba7f97da8f82734ef777b7d2653e66e814ed7871da35c95761a88a611bc383add9a329706212b9780ef5d53e933c99318ac47e26859f507bb50597c3ab1a252c77d22a817b402b80a63532f21a0f296c40bb8021732fa9da01bc60bc662a0754914462689de756a397e2384c2372130c5a6f05ae6c8b81ebc22125830f04d3740d2638d031a21f1653c4f664cd182b11887f4784c27954984af251c923b5c2ca4f1777cb3eeb7a13c351c07c4f5562b4a8a477fd348bcb9b8e6bec787c2340c02c0dcb236fe8d7c6ec8bc9d156b89bfbcbf4d0599838263ad5b90fc155051137d6800c898c8a50b82a4e3940bbd3bcde2013889bc4f3a7022d7c49370ac8d826a3aee946b79897bea8512d8b899a8c17e439760b58859393a5c264b5f1549940914fe278a40b6c9a8304775ba30c8ee4cf234ac56862ca2e935691e426923973c32b4f2408cf63c99d7b2c5f0c5aadbbb9cb98b53f787431fa73542c5569e5f5ccf0e4a868cac6529bbde42a5f1881ce0a729e6a531b0c401d4979a7425baa8b0392a8ca9374323ddf2794c237e38e45a43a5a34cca2875d19217ce7547d2eba6bca +private_key: 000d8a738101a329832189bfaffb213cc5789003528b06754014cb91a09b7625359b2cbe463b356e298c95a6a24646ad6114900034c83f19599bd0173846b93153aaf6f9c1e1e11d41692bf5146a48810aa89604bc2b09b32230c6c44f5a0a0086b7c688008702517b4d807bc34b8a23e968a8316df5207f2788975f458cb0db5a37c80bb2823270a3130c18bcf793147ee0a5b63a499ff28e3ae290974ba44e8730f4e56018073e0ed54924e38865bc076a809862470525d5c32b74c81d4cb95278705f01b6c6d098b951a7eed095ef386eb8d47f0d7984102872706b352c12119adc1fde40259f5450c36c4327d31f09eb589281a590f1131494b50264719a740c6d0b1c8f9aa6d281b8eda923308b02dfdbb7c2451bf80a769c683f2fc02822838f6ae1cea8d81ac91c53f53041952b82aefc4122b24cc15b3a8cc2450860869fe622036512344132701b8043b387d37986482318c134af38014cc075756838415e1a461cf0313b4907ee6753ad625ef593c99fc70b88587095e66c03044af109bcef59a3caca13e027c2cf3b350d28c1610b9bee0718ee44c223ab522ae57b532526f003345440cfedd463a0fb1ac60a2c6bfc37c7eba6a7667475d278c3a4b7c486b68f2157e9bb7646045a7ab452cde7539c755e5fe390f0174153f1531d5737da4383202103f6e01339255a04d04c83fa5119fa0f0c15c2c2d50e41d9be98c66703903c73a05680f6c454676916d1c03da6bb45482c588c6cbe57ceeef924caec94fbd096cbd13528770995bc50d0bc02b24959f4d61de3bb6dd7fa1a47db7856d53c7623897a24acae7473439217d52a2ef34a3a6c793017d6b22a3845f8087589ac311d00be84197a8bd6561fcb8472924af6547cbc78395721c75538278579469cf38553e4066027a43d9584508c7fe8f87a7f122b484a1cb922b62609cfb48c7f3bab00fd709097c87f5ef401cb9520b55cb021211b23131b2ac07ee9da735b90a37a84747a26a0f0c7b28672bb4d3cc6e0f1c3ee1c418dcb26a663519907354d2bc106fb72a1607a0905886e292d3a77716590ca57b6459ee647906401e8b268d6e782f904be442858fde72513318c06d0715405229adb7632b5bb2e9923d4fb49a5f7b995ec7b2c971b0be3aedb622cbfc344d9c9ab6536b323a68a0ec97b5bb491fbb0ac20f48873443707da5b82d85f61c98f06626761a20436f20dd1e66d5e452874e9b1c6947ed270caf85a9be3d8250e539451f61b28014144bc184e7ab57fd496a1e3a9f2fc2bafb02cd837ac91f61a3ec39e9892293a6a2be5a91739c64418a173e02870f4845d3f56ae573c5daa9387f78156c7d42d2a2c7a051964127bad8b728fad010ff0944dd6c2807b748d62492494b25bd32261115014d91baefb38a3fa06070646c71e5c6e07e64aed181ec46bc0fc4284630a038813834ce3467a0b4b615496b80681149262b833247cfa8f4b4c364833b074a467eb1623fe475aa1eb6734774995e99745d40c5c149fc91264b3149ddc2318b149c45944370cc222bad6759454cc4ae66d30091297d6468f8734dcd43e3f078fa0955d69c90e0f97ca3de54b2f38005e8296c52a27e51a1cbb69bc1c3cad697588a4004634fc1c77215f0677879aab3e63b51ae7436c5b47370e226eb4ac15dd0281ec65c56b83b60ac42de17b1374d1680b76460e294d841c1062638cc003d043a26307c08025a594fa3676df03c87789a4499575948b2574f6931673936e971f2c79598a1b7b35d28103252b4df98c47f6afa057bd87b1cc516722fd72bae0f437479c1ec6f68087453e23fb4381e5930e5a19fc9a267565b1dfc7aab9c13441101e57d9a4a454a6d1249c3cdba091113d0f1b257d0986f23b4fceb35c95ab05e2911dfb2899398808582a6b1aa9950eaa9c87c8bdae7372d46c2852e85c629c25e05a169900b24cfc0a68661b6d44c74c658ab8c00c756861be79272339a60828b9f0b8a325850b41950f97849dece714c494ba9bb09b74ac16138251363b52dc166f220623982c19ef565f80583b84d0b91267ba98b63afa31160f65961181951019419fc0627cc48de9d6b2c689969548641009cdc56b02a140bbc4a995a7f2593e0213cdd2cadbccbca41947fc8033baa1754a8815ad52cc31940451f8a62dd6b39e22a6b0db8a0f953c6cbca43f9c1285315f59ab9980ebbf57c1457dd8361da04e0eda771cdb37a6a54c6a47719790976a957978e198446320aaa840e0f1c076260e75e9a92980891aa6245e003f1fd6363d0b6e5c73b476b77ef867a60b225a99a763d0ea80a4c61739875bce5c0f361322450c93040b4d6c08120827b8026ace0ec73302fb6824367ac89a0e7df45b850618612ace284c2da4421689d8c7034113f9a1b2342736f5f11cfdd7ac7f8468075a4a2d7960dfba9e264514a8d7c6d11c660cec1efe33c04b4681dcb31fbea47247bc83c581b174b0cedcf0bd0b7b622126cbe323986b75a407e416fc0032fa2398e504967ed021e993a955713a76365ada810f9bec7ad1a6929a466f08113cfd6919e014085d4148be060ebc014fb1fa3a1ff70a3ad94baac7be6c96bc0f28a021e39cc6bb8a6e16312255880a84778cbca55f4173b2070d527357cac69c22587208496af1715711f76d5c185807a13b2c791b91f54b23ac8b66b71b3e211e55180fe7a1bb2bba7f97da8f82734ef777b7d2653e66e814ed7871da35c95761a88a611bc383add9a329706212b9780ef5d53e933c99318ac47e26859f507bb50597c3ab1a252c77d22a817b402b80a63532f21a0f296c40bb8021732fa9da01bc60bc662a0754914462689de756a397e2384c2372130c5a6f05ae6c8b81ebc22125830f04d3740d2638d031a21f1653c4f664cd182b11887f4784c27954984af251c923b5c2ca4f1777cb3eeb7a13c351c07c4f5562b4a8a477fd348bcb9b8e6bec787c2340c02c0dcb236fe8d7c6ec8bc9d156b89bfbcbf4d0599838263ad5b90fc155051137d6800c898c8a50b82a4e3940bbd3bcde2013889bc4f3a7022d7c49370ac8d826a3aee946b79897bea8512d8b899a8c17e439760b58859393a5c264b5f1549940914fe278a40b6c9a8304775ba30c8ee4cf234ac56862ca2e935691e426923973c32b4f2408cf63c99d7b2c5f0c5aadbbb9cb98b53f787431fa73542c5569e5f5ccf0e4a868cac6529bbde42a5f1881ce0a729e6a531b0c401d4979a7425baa8b0392a8ca9374323ddf2794c237e38e45a43a5a34cca2875d19217ce7547d2eba6bca38635cec71b814aaac223f748d13158dbe8eb902d9125fdc22202c4d59251cbcb6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f + +# Official test vector 72, seed: "6960f21c7350dcf41b4770c551dc8692d8ba2c0b6e162c589166ff22e7a1ac0f94c2f48504a5f7eb0da094df427bc98a" +seed: 1f7cfd2b70863154e8a69d1758532e86c20cfc763d67c758bd10a13b24e759b5273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 +public_key: bafcc65109cd59f7084e05cfabe4515255ccb724b3388239ce1ba8c631c1e8c0b444baaa6ac481db8b4d670ab65ca27f33a92a11c48f6ac038f0914637b749d8b962c00ac8ab0c019c92960ec3817f34840aa7b63b19826a12234a81c9faa8995d28c4d4c44a0fd2c51720cacc8751bf6c31caf045a79c6f9b15c2d406c11fc3b5df6638e1b83164175dca5a1260a88c74b4c2432a9b76c39d43597ce2e3ad1797c25f967868b66bcee9b6a4d1b53fd09540220c7ca75943c52e3d4a124453499c681c1fba4dfe80919bd9467bcc0ab34b7db6012b18b3cc4c679e325b82518baf5123c88786745c4a0600a302a2a367b717c3dcb4c32aeb4770fc93e0213aa54b2c6a37a326f121d907278203724ceb6cad8717fa3a2106217864274e6220061620052799ba22675db36863b2a447e5a62b3d2511ffc83bb34cab6cf7356a27c29798c00cb32bbe1023fe1221313cc7ad59144fbb98d0182bf0183b44990da81016e2995206f2b0af19c8e21b1afe8c98d608c0c7e52075137caf22c69dec4e0f1763c8bba263898b30946663d84b5e0808e6ab9a6df970d2568303704d4c651c912b7297a89534e324fae62628580becc3a2051cca9d5757d5e53ff8fc242e42b2adb06cb2547296ec8431fa6eb8f7384fa559f9284d528761f9a23e85a0bbb3e57b7a876d2d4934d33838906606e6da9a311c15cba30f39d05236892462824bc4a4b4d6b343e3594fd9d68972d99eb26538f9eb1fa7f0718aabcd5dfa5a670b0f8cd595ef7a082abb518fa34891a4ade983877a333e956bbec9a82a19650866981b8b8c406e22abd784aac085b6ea553e30409ed6b39b4f367ae45b9fe109c6ecb51f23d2a755caa347aa95e656cf45a15e9438b61031717b3551e9e3020ccc330f254e82d89b5e4839a9f8ae267b9365aa228786a371859d3847ae68713df98768a1c792adba39bd2359198224376cb9c011777efc4aae1c3d179583ab0952bcb5b1e8577a5c476189d3301bf87fd8a1163b81bdb4a8368934ba4867ae4dd03d40c2cb5f974a5c36a8d699546d831095e7b354490838a40900521da4a00d2fd7117e1060dfd363593ac11bd31ffcc08c1eb8806f249719751ea3eb328d3a36590919c2317429d0486266968cbc6973d483015b77eec543b7f971523589655732bdd1783365761d937266a420ef3b849a630ab5a4003ff09c116c1037f4576c58adecb5a5e0899892854b8971c9b76685164a14bc5c8b9bf212c6c7ab15b35e25a586e465ac05f3911da7063208c3df46923622402559ca963a39f003ac0334ab19d02ed58c990ad983318b33429acdc637a8393082684c517b75194506bbeb9686136a3c8a284c852ca747fb709d4533d133b5798b50c1e59f9e99781fca9f447340705c6cb7e2231e257f95d681805b8cdcf3147804405f30b4ee63c1aa9c367eabc3fc606306616eefe91026507780e6339b209cfb7a227596957b136e1cbbce15fb9a6fd9bc798c40f0ccb7651b150d281d78b3508939ba836ab719cc19c61860bd3c624827ac26639c05a39c88a1873204175bf297561723a16375dba51947b83e46e84899377411b2bf8b743cf8dc23fd2ca07d11aeec1990c42a7321ac6f01cd866f8719ef21bcc0e02346fc5d8ba3d3e7f1fcb52d37551212d647 +private_key: 4b390d378cbd58818696f39433e9a34a46109fe98b4e806a306119e2110a5ad3993f7646213c0b27dca918e624eb6090930baec770a838a501e8979c1e210f71dc4674999cb8b92cf0ab1011aa67ce5039446957be38a16dd683795621fde5ac77e94c07572fb2d95cd0169803db5698e47a6ef3c3b11766f095496ae846870a68d34b9032527902760ca97b913c42490486063f0ab27afa8b92b33d88fb6653dc6ffb3b55b3a9b5d3a9b5f89916a727439561afd8e172f5313ffebab7587649d77563df970a4030aca239b225c78177058c9ea3cc388a3f5f2732e1dc00c11b936e65833cc90f5597266e29846ba70ae0239820e47426b8a092792334f390e399469ef13ff2301f9ac94eb42386ff882a3be8ba23f473ebb271ab6c52e5b26c5eda203c0b6418250c8e2216285cc78c70a386f1935ec41740a114f5a32ef703b4a4540143165337f5bcb42743e574b93d62ae23081e2dd7c51e923ff1e25f4734395ad0ae016a6c45f8096bf2aad933027d1594d98175c91143e320c3122bcf16f10f7ebb251101882aeb94d6b8cf893b7c05373cc9bb3ee58b148d1124183c05c116b6c178a2c7756700e15b8108144f5024c9ca04a3dc2e476591a7c79970274f112c210d00c198860202a408453985a3d9b5488bc61f4c8c93741e6e733e1358605c6a2e30d7075008cd5297a5ef5a18081143d5907d88284ff284804b276a193352ad3ba5463383a024908fc05578d0521d57bbf7d03cecaa93ea1326582307725c62dc79b7e9b34bacd94ba9608463c72f68dc0eeef10bc3c52e9f295a65f460ad368092d3bbcb2c9f9e1b2783737e1c3b0ec0442aa7897ffc75471b18730399257f019fe5d73afbcca9b83932c94360612b297f3a84efe90278940e98ea2e746857ac73adedb6b4226667dc779285c6987ceb03ec14a00302444ddc02e76aa6d95392053b176258546fd0959c8a6d969cacbb809115b339d6a517578502a46b833f84712dfc01b7c35776595ad656059c4cbe72e637ca5c95572952fbc772463042d9ecc194f93c8b577a220116e7e58bbe5276a90324c5492dbe3781b623585a22a77b2cca935009eac03ff1947fc00562f1561457f0220a764b7d0c06ae3a4cab90276581445ad7bb07c817f4e3a05613541967388c3a1a784642c9952e8376c57d82a16bc98acb908521a366adf18dd95569af860994858236f5bdc7ab9655a95d28a956049c7365c84c34f33ab305a35fe3117a563b1947658988650e3c65a6551660650b33217295e79fad0bb567054b2c0c1fe5e3ca560b3a565a58d9054fcb171afeec538a1c01781870b19c63a49243fcd9b384635aff5b1642036220f15c3414a9c2f82da81b6e625c1944109a6a1ac06a07a9b8c85f86c043bbf62af18c05c5eb3bbbb3be723a8e04b9a1f875c0d645412eb8c51fb1c305c2447628c2f01b3b6a6a89d8c849f48832f7a9662b8c476bc426f54b509a8037a52023a5d02fd10394cee11aa1d5464ac41ce6961174a528e2e3677032ce03b79ce5620a3dfb3291e7bca9c249c27232bb535db78918c2a56303090e98c1503d211d95221e278764479a1eacd92e5c50b9d1a3aa9c547194275630cb7644bb5dbafcc65109cd59f7084e05cfabe4515255ccb724b3388239ce1ba8c631c1e8c0b444baaa6ac481db8b4d670ab65ca27f33a92a11c48f6ac038f0914637b749d8b962c00ac8ab0c019c92960ec3817f34840aa7b63b19826a12234a81c9faa8995d28c4d4c44a0fd2c51720cacc8751bf6c31caf045a79c6f9b15c2d406c11fc3b5df6638e1b83164175dca5a1260a88c74b4c2432a9b76c39d43597ce2e3ad1797c25f967868b66bcee9b6a4d1b53fd09540220c7ca75943c52e3d4a124453499c681c1fba4dfe80919bd9467bcc0ab34b7db6012b18b3cc4c679e325b82518baf5123c88786745c4a0600a302a2a367b717c3dcb4c32aeb4770fc93e0213aa54b2c6a37a326f121d907278203724ceb6cad8717fa3a2106217864274e6220061620052799ba22675db36863b2a447e5a62b3d2511ffc83bb34cab6cf7356a27c29798c00cb32bbe1023fe1221313cc7ad59144fbb98d0182bf0183b44990da81016e2995206f2b0af19c8e21b1afe8c98d608c0c7e52075137caf22c69dec4e0f1763c8bba263898b30946663d84b5e0808e6ab9a6df970d2568303704d4c651c912b7297a89534e324fae62628580becc3a2051cca9d5757d5e53ff8fc242e42b2adb06cb2547296ec8431fa6eb8f7384fa559f9284d528761f9a23e85a0bbb3e57b7a876d2d4934d33838906606e6da9a311c15cba30f39d05236892462824bc4a4b4d6b343e3594fd9d68972d99eb26538f9eb1fa7f0718aabcd5dfa5a670b0f8cd595ef7a082abb518fa34891a4ade983877a333e956bbec9a82a19650866981b8b8c406e22abd784aac085b6ea553e30409ed6b39b4f367ae45b9fe109c6ecb51f23d2a755caa347aa95e656cf45a15e9438b61031717b3551e9e3020ccc330f254e82d89b5e4839a9f8ae267b9365aa228786a371859d3847ae68713df98768a1c792adba39bd2359198224376cb9c011777efc4aae1c3d179583ab0952bcb5b1e8577a5c476189d3301bf87fd8a1163b81bdb4a8368934ba4867ae4dd03d40c2cb5f974a5c36a8d699546d831095e7b354490838a40900521da4a00d2fd7117e1060dfd363593ac11bd31ffcc08c1eb8806f249719751ea3eb328d3a36590919c2317429d0486266968cbc6973d483015b77eec543b7f971523589655732bdd1783365761d937266a420ef3b849a630ab5a4003ff09c116c1037f4576c58adecb5a5e0899892854b8971c9b76685164a14bc5c8b9bf212c6c7ab15b35e25a586e465ac05f3911da7063208c3df46923622402559ca963a39f003ac0334ab19d02ed58c990ad983318b33429acdc637a8393082684c517b75194506bbeb9686136a3c8a284c852ca747fb709d4533d133b5798b50c1e59f9e99781fca9f447340705c6cb7e2231e257f95d681805b8cdcf3147804405f30b4ee63c1aa9c367eabc3fc606306616eefe91026507780e6339b209cfb7a227596957b136e1cbbce15fb9a6fd9bc798c40f0ccb7651b150d281d78b3508939ba836ab719cc19c61860bd3c624827ac26639c05a39c88a1873204175bf297561723a16375dba51947b83e46e84899377411b2bf8b743cf8dc23fd2ca07d11aeec1990c42a7321ac6f01cd866f8719ef21bcc0e02346fc5d8ba3d3e7f1fcb52d37551212d647af97825a77f2f4b6a45ec1a579f9f83e89c025d8d6876db26874f38348604293273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6 + +# Official test vector 73, seed: "53df46012cad4a745b7a3c06e18ca95e0b839fd8161e3025749a0887549eb0ed6a44eeea08bd6060d6509dbf7e9dc864" +seed: 3a19577908efd37697b8edc7fdaf47d1bd3ad01a1b77faf794bee5b9c3192a6fa3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 +public_key: e180a227ab843cd49d4970af3b68c255512920773abae9a2e402b154b8159b63b4885736e63632313b2f99db66fd4307d411a66871c8ec859807205535d907c3c6541b283824861738acce081a14e8047a63cba2f42c71b23157c85a7763d3cebfe93aa7fa0a083284ecb7c4dc16c8119b5d90546a461a5b744b1084f120bee2b548801c381a9d561bb0c5c35336601d1cdc310a610c8df78de62477a6f26dba6038ad04371913b831c326c0537cae530469292ce41c40a81b92a5c04d69eb0303b4b38a5cc45fd2b0ee90cff0b81474d0406c8b34b34c1efb596a704ca4893949614762a30c54846023dc3a345268ce55c0be97139f5f733664a58b67656ea211a87de01f9cd902a9295355d13a15bc044fdc77c4c53f671a1438e283371b5db5f82fb0d789e877b6820771f0ebc64da864a01caff73c4a42b5416bb043e29c7b2574c6e214a352f4401d786b4d5351a2559b87ab00ba84511bac1a099b1b33e8cd45da078d447b23326574379dd3d32ddb22c6a4037fda719fb104c85f0264ba4a9ed0287a31a2af6d58291676a37c434ecb234e4e1c648fa0760da57abe45703e677fefd03687415132d03252291f02f3901d20427904511f9c11a7f07041302033054605e97fb719a2f70648a2c30a0b42899b195ea8e6cc96610943c3276698a34a61893ba8770c69cd55f1bc0f00ca0e04177d0469c4833fcc23a6ed339acaa91b6e081692340f53cac66af5a6bcc2391729ce4e1c88d5c2610b00454fa21e8faa6487022f19f2c81d5452d5170255108beaf3979ff9abc2e04c8e3669c6aab80e2b6464644ae2189c81fc92d50cc56039cf5de2325ae5163a1b63652222aab35e17430d16477537f867ba4ca0e9b1c83c61a562c6822e61bb1450426e9716a77c1934ab17ec69563b8299e6ab371d996849c8cf7a84ca1a9bb654e1ab20a81d65314595a52ba18076f8712532a81b00e19e8734968f87c03fa4763208862d9a3ca648582482bf0d5441fdb7c84ab237d9f8628ed2001a501339682f9b8aaf6606344b95342fa62e782c1d9560b6ad55aa332c1fd533a74d026a9c9757f0e91bfc96545d0b6477f31f95840ff0a4127b16c32b635471480523f93017577513ea96159ac60be179d3a09c5ccb6df44174de866cd7548339d314d160718f262edf32382915197bc2ac6e3a4f77229e22dacbdfecbe3f4b72ac6bc9d9354e7ed2c31ce7acd7f3a2c8b9abeec00613b1600c8992376b73f8c245ac9841ea06409454b48d8c3a152bb8d6168a3fa6423373651caa7aecf0a5971641bd66897e5991e793343b5190bac3107eeaabc71bc34788a345bcb9ad8a45a50a1dbdb1846bb76205b06e8aeb692b4200a596524954963f01c946131704f6b181d7781772ca6365824f6c6c22a1af3328a2c8978ea8d7c38f6a00f7a6b3a50c2507f103f72420bdf98dc19aace30b792851142d8b43319c93ccfa966d71cff9352f25fca9e8a3064cd96e42e9a2959c128fd532902419b81972838532cdfc08f34541459cc68955c9c2a431ba5126c9bc08039ca45533ad8108beba49bf8d56bd44433fe12a6c55c41f3cc20560b28cf050cc1f195c5e817d23d95e105a13555923cc21b13c9e46d34182974451bd97b6a3da440de6e5bbed681d6eea2c6822b361019afc +private_key: 5e49938e23a5c65c89d4c40917379cd2a5b5d32881a6d68c28b48a2e356de63896bad68acd4a474cfc288113afb2418173ac4b1c3255136c73a00c7128b59a50042bf4a3aef9015fdf0108b01cb701d2bf6597637227604841651e3a964326a23b038d0af855f307413236a3ef95b4433a0164ba6bb27a858ed9b22a31234480b7e559ae9194aee9945dad45b0a5e85bb486962cb19d8b52c7d4b473f5f566f2779ccd79739649665820bc0e8307457b9af5844870ca580de2394fb092edf512310b970f5377fb80118fda8517b5b16e212447e16e3a5a5de7587ff3b271533803b9282901192fb20cb298d666cea3c5386bc658c5c1de9673857a3091a413cc69b2c8e46382ac97a13a9f31c1a47f0b6f898a84dc0278bab1a7863746c03576231b59ad2610e79a933661b6f23c63ed9404de06791c087f42abb7c088ad15c54ab23c78305826cbf263d441bf62e23180a79ae14a1a1fb31e115b02a974ca7025ad0c634067d4082a835bd274a44a218fa4642caaf1c4d108570c13bc3137468a6037a0709f0c0069443c1e7fb2822a282d08b030539628448c5b0396cdb76c89ba0c13f8ab2902d44190a0342ed5acc88b72c3baaf18880561f95196f56889f1854b4cc348d6019f4a5036123c1650332fe47115105a085c2591c952b35289efaa90d55c6c888868c20075291435175c086edc5d07b01e4441b8b3867b8a93cc9ed07ad71b387ea3363064194363b77fd106ca5c13f6b585980664b2a036b730ca50610798e3b14d176e28066719581821272157d81ea550992bd76875c22736d7163b01b6e353cdfe05b63bf5ae02a68c3e105731d8af5dd90981a02715e061f8d3b94448115247bd23137cfc165dcd4c26d065a28b84cbdf4b17b1a9a27046898c529ba42217502abbafd68bf6990d2d1064a7aabd89075891678e2610120feca2ce72c0e1d8be55f4c0ebf7cb565b492d9a2370e93482201f25b5ad667b0b90fb31dc8024e4123be6733217488788980f5216116a702bd8c1ca18d0b419b785961424f6289f7a55a211615398575755b8535fb0aba1491f00517863c41f4fa1871dab1ba42599e8e54e8f4c6a54e20f5125c595e2099439b0402794b9fa3a632b4c789c9cd4613776218fcf066c22e4b12dbc90ff0b4d08cb7032c07603557ef6dbceedabca671b7b07a2cd1df6a89ea6a7dba65e145b9515068a15e7053d5a4b1323cb75a8ad0d6ba3885a7e77460cf19637c1b6c330725588091ec1f158484c6ebfe43b4e01cb5424bce33758ee10a438c0621c9217979c958ae89591f69d54c4a71719cd4aa76da6ac4ee4b472afe45412718e65a5807d452491e1a0788a570bb3723d438362f50c2b26b19dc696f492452ad13501c3bfc81766dccb5034ccc29d4c152499000aa458c961aa17d74cb5819a84135cbf8181832748917c951a468fe70c08c1333de71b64b7ab158255c20aa7b2ca8a912f898574568e27691f8b517425c1be2bf183401cc2afe08fa65a2a1135a5dfb9a86dd3985351b61de0228c112a35a889eab8a57273258a471551e15ad23328c6d00a3f78a1cb9c836e304ffec75ee1f0927962b642ec0694e50963a246d97a240639a611c414e180a227ab843cd49d4970af3b68c255512920773abae9a2e402b154b8159b63b4885736e63632313b2f99db66fd4307d411a66871c8ec859807205535d907c3c6541b283824861738acce081a14e8047a63cba2f42c71b23157c85a7763d3cebfe93aa7fa0a083284ecb7c4dc16c8119b5d90546a461a5b744b1084f120bee2b548801c381a9d561bb0c5c35336601d1cdc310a610c8df78de62477a6f26dba6038ad04371913b831c326c0537cae530469292ce41c40a81b92a5c04d69eb0303b4b38a5cc45fd2b0ee90cff0b81474d0406c8b34b34c1efb596a704ca4893949614762a30c54846023dc3a345268ce55c0be97139f5f733664a58b67656ea211a87de01f9cd902a9295355d13a15bc044fdc77c4c53f671a1438e283371b5db5f82fb0d789e877b6820771f0ebc64da864a01caff73c4a42b5416bb043e29c7b2574c6e214a352f4401d786b4d5351a2559b87ab00ba84511bac1a099b1b33e8cd45da078d447b23326574379dd3d32ddb22c6a4037fda719fb104c85f0264ba4a9ed0287a31a2af6d58291676a37c434ecb234e4e1c648fa0760da57abe45703e677fefd03687415132d03252291f02f3901d20427904511f9c11a7f07041302033054605e97fb719a2f70648a2c30a0b42899b195ea8e6cc96610943c3276698a34a61893ba8770c69cd55f1bc0f00ca0e04177d0469c4833fcc23a6ed339acaa91b6e081692340f53cac66af5a6bcc2391729ce4e1c88d5c2610b00454fa21e8faa6487022f19f2c81d5452d5170255108beaf3979ff9abc2e04c8e3669c6aab80e2b6464644ae2189c81fc92d50cc56039cf5de2325ae5163a1b63652222aab35e17430d16477537f867ba4ca0e9b1c83c61a562c6822e61bb1450426e9716a77c1934ab17ec69563b8299e6ab371d996849c8cf7a84ca1a9bb654e1ab20a81d65314595a52ba18076f8712532a81b00e19e8734968f87c03fa4763208862d9a3ca648582482bf0d5441fdb7c84ab237d9f8628ed2001a501339682f9b8aaf6606344b95342fa62e782c1d9560b6ad55aa332c1fd533a74d026a9c9757f0e91bfc96545d0b6477f31f95840ff0a4127b16c32b635471480523f93017577513ea96159ac60be179d3a09c5ccb6df44174de866cd7548339d314d160718f262edf32382915197bc2ac6e3a4f77229e22dacbdfecbe3f4b72ac6bc9d9354e7ed2c31ce7acd7f3a2c8b9abeec00613b1600c8992376b73f8c245ac9841ea06409454b48d8c3a152bb8d6168a3fa6423373651caa7aecf0a5971641bd66897e5991e793343b5190bac3107eeaabc71bc34788a345bcb9ad8a45a50a1dbdb1846bb76205b06e8aeb692b4200a596524954963f01c946131704f6b181d7781772ca6365824f6c6c22a1af3328a2c8978ea8d7c38f6a00f7a6b3a50c2507f103f72420bdf98dc19aace30b792851142d8b43319c93ccfa966d71cff9352f25fca9e8a3064cd96e42e9a2959c128fd532902419b81972838532cdfc08f34541459cc68955c9c2a431ba5126c9bc08039ca45533ad8108beba49bf8d56bd44433fe12a6c55c41f3cc20560b28cf050cc1f195c5e817d23d95e105a13555923cc21b13c9e46d34182974451bd97b6a3da440de6e5bbed681d6eea2c6822b361019afc8517ab7585926764ec7acff3c747479e837831429b97b7cf49ac3763bd9ebbe0a3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99 + +# Official test vector 74, seed: "deb963f8b1d8fbdf499d564ba8d2d47915bb402da02f17031b37b4039a842afb9b7e48f37200605992bd2429427a7a4e" +seed: ae0f65e29f38804a6759f70f4d01e2aaff7fe1c91ebc4f892dd0de3ab2e68ea5e03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c +public_key: a6cba4e1a93cf066b6c6284b85c1ced4a4b17634c2dd8c758ee3cac74b2402460d2fc12d98943de4dacb2f5912fdc41e8b1886f38c6619831677e2a32a63860d2a1e9b994bf4f9cdf0c3c83c5b044c14b83e57c59d55629a9704994a4793a7178b69ac1892a578802a69d22d609a7832b55e731a65a1f29753870f8f6b26443824be227f578c6d97c57e570864092a66c8184ca58b1b8f89ba9c2a3e7a17c1bcd851aa552ddbe301f2774e81397a57247362426807f370ff2b7f6f7b1f5b83c2f3475cb225b71ca0750f333d72a434c88a902d542cb8f50f6ba8ae5531ce60c5c29057c2a995ced8a34cc1db7005c478fa174874bbb82981107faab591b8c9581365e7205578c55fc06b5f588c65e2ec700e6473752708853a8c9a1acad3c08bfd67c553b9c603206a1d26276e66c53a166398db6b2e51754e2a67a54902cd5839b97c66d2421df86c42c7181f89d2afae41bc116212a7492688424a2c81b85bf616ed686e8d0183c1082dd61c1144417dd10cc0e29b3168144064d700c2a295c1042ae40848fb07abf2aa7cb2883fb19454a8711c72670d8c0b152dc9cd39a108ad9348089754703a608c0b544350879ddc71c09051f92ba755717403130dc4b95c19d3510363a5dd620cdeb1918af90dd1267aa9696eb0334810b9351df981a0749a7e0c253d399a0115ae515c97b63a1b0ca42794e00ef59912a357565b427dd5aa54b706b0df583e2fb68ceab61395024abba0a8ba4ab6bae958d9c13eed40cd20978eeb5ba041b837595427a644a850340168847acbb69b8d6809b849a7d6a6b67c170dbeaa41be8341c6977dbc025688244396503411148458aa2800c44195211a86763c54e45345ac258541926b4bced6a337df4506113647828b2d4e45723d68985dbc2772a6723a032bb3b84a140a95dbc480f1495118238e74376c3aa78c25e3703ce121e8576c22ea29119b1eb5b946d261cfdc71980af7961961074584a7ed970fef29172cd98a3ea5550f994f5d763b00fd37f9c0abb1459b825c6deac0b35d451a9eac64b03c3c0139806586c8e0f63b8f77aef5b207d2615d5f296894c9a1eb0b68d0571351e18a20084580d98aef13bc4ed039d132cf015bcbf0270d5b971f10f581093656a091af7f3725a2e16c8a74c541345ede689321a436ac488b23895ed3e81fb4f25b83964400ec33c529350ac29f4876128c010ca9c4b6d3e47d7ac798559251bbe4bbc7ea4ece0b76e9f519d819b286f14fcadb1231067bcb113ecbc737020b47587c491fd26541f47ee2b6bfe6908c73ebc3715c58aa93484a5c2692598b4945209d47258441c2cde253434a5a1edc934c9762b2740795857e255921296a8bd4542f82bb6ac7e293f9e4b7890810a2e46511e241162b2af6e38c2a07b15a38a494f8412fc40d60847f957b7839e78936b6c1ae906089a80ef5c58e2659be2643083922b22da53912055f26fa7ccf410abc42cf21448290b168cf7c8ba20b28dca959acc253bfd4b67e60c0c5f82728382c96f78b48b4a4c746c32c019bf8c3202c46a7a2c9c401700eeb1c013bb399d9b62eae9a4e68e4a4bec7b7fb92888ee9bb5f52aca49b2e3f6ac6b72b2cdbf2c755f85fd14903d8712fe0bf82ac0b06aae9bea06278c21e6257bc96af0379bca07c7833 +private_key: b8f488e5f0c30b5cb5052115f097a6f20c0f6c4206522a50492991829251a189c53fd67ae08a467590a38099994bd5a0b5109827b888f5322bf6eb9c6d75911b2a721c92905f145514a3138ea132e5dac52851160c171e80b728a87b855a78ce550678ea20044db943c708962c25a86c78a29cfa801aa15350841989c00563fb46d299274f18430d66cb6ed9bc89145cdb262c18d5c095703e779c14ff34459ed12c13427733c59bef3c8a6c24b5bd5171712b074c797960e2be7bf2b58a8111ec9c01a3f938e83637fc9b59123880fd26a845d26de5fccac29657cd2c8831ba76168421b276120639a98f13a07f905c2266bce1f825d1c464bb2016665a2817c84369b7708f975641026321fb4c409531cb1a3827b80f2c94b1c4d36132b10e69b8c94502cd46c540902b96eba76a55e3bcb8fa037a217bd91816ee09ce30f19721f12432d7238fca919a2b4f718674d4558dc7095f0461a20b4aa1aa080354ac60fcc8ca2400b2ef73246514c41cf3945cd6a425959d1ad08b51e43c02a834df3c8e084b04b9695b2d1500e9d5761e86c95c7c1a0e12783aeb6f18e14e157881640204cf5a7a2ed815797a49e0696ee990448c312cb7a55a28fa1367b196001cce6a56796208100828be8c241cecfb82caea1bdd36b19351cd8bb1cab7014cb887bc6e232e74d036437a3222f56bd3e0893eec360ffb220c03222513293aec7ea6da408f9c12016ca03659791ed14241331e5ceca1b53a2453689f8ad819906cb19d731e0ba7abf0096998f18917e4794c4b15659678dcdbc8980b76a4d5c5b8567d55719e774a2d1c952612a9af1ea7c77f896f88242790d989edf3781588c10a7c50ed25821b4abd882370aa74bf299975e9c54120b786f5917135b69f3ab24465aa134cb1bd3fd61f27fb38692b5f3db5cedcb40b8530834c9abdbae738c45017cef302ff334c9e2567e0ca791175813a8382489b51015bcb8ad5cb37626dd3c48c745006f5133bc5557f6afa7ca4633bbb26524ae968df362f33c716ea9131df1754515083325bb3f4e91e40f2c598912ca1da3770e81dddf8980797277711216b93b41fe456307a8135829ce7d7af348a090758bace57af3f353cdda444629a596ee64d10a5881eaab061782314d218982602cfda25a926bec7d57228844adfc31109d210bb2c88809c47ad09c466141b66ac6a013280efe78d38e73d6eb9ba00f59841050558964b2916ac04757e968bae6bb715d94199f22a81f4e3247b7caebbe3cd9bdbce68c931357a568c39acedfb0093337d95d92dde215fdc5b6bd7e2b14aa29046d2a601a91f9d4635f985a393e4408d64be23052ddaa323c5d0235d4a578a63cf6c655d55f78397d72fcc0cbb490253b9a4ad0888c742ccb474cca41bf4b51c6693767ab872586da6b470ccf0066a038deccba3e229bef1fbbbe33b42a5c524533b08ea926469c9822255150cd0633df08b01670f0c134074f22dcdfb593e477853fb383a4b683c786139891f647c8a42680d89352004560eb1232fe173c47379119b29226691b015649253673187f98827d22aa0c168fd7a339992ce4fe717b6e797f616c27d49b8df377f1300ad643220db8315a30429a6cba4e1a93cf066b6c6284b85c1ced4a4b17634c2dd8c758ee3cac74b2402460d2fc12d98943de4dacb2f5912fdc41e8b1886f38c6619831677e2a32a63860d2a1e9b994bf4f9cdf0c3c83c5b044c14b83e57c59d55629a9704994a4793a7178b69ac1892a578802a69d22d609a7832b55e731a65a1f29753870f8f6b26443824be227f578c6d97c57e570864092a66c8184ca58b1b8f89ba9c2a3e7a17c1bcd851aa552ddbe301f2774e81397a57247362426807f370ff2b7f6f7b1f5b83c2f3475cb225b71ca0750f333d72a434c88a902d542cb8f50f6ba8ae5531ce60c5c29057c2a995ced8a34cc1db7005c478fa174874bbb82981107faab591b8c9581365e7205578c55fc06b5f588c65e2ec700e6473752708853a8c9a1acad3c08bfd67c553b9c603206a1d26276e66c53a166398db6b2e51754e2a67a54902cd5839b97c66d2421df86c42c7181f89d2afae41bc116212a7492688424a2c81b85bf616ed686e8d0183c1082dd61c1144417dd10cc0e29b3168144064d700c2a295c1042ae40848fb07abf2aa7cb2883fb19454a8711c72670d8c0b152dc9cd39a108ad9348089754703a608c0b544350879ddc71c09051f92ba755717403130dc4b95c19d3510363a5dd620cdeb1918af90dd1267aa9696eb0334810b9351df981a0749a7e0c253d399a0115ae515c97b63a1b0ca42794e00ef59912a357565b427dd5aa54b706b0df583e2fb68ceab61395024abba0a8ba4ab6bae958d9c13eed40cd20978eeb5ba041b837595427a644a850340168847acbb69b8d6809b849a7d6a6b67c170dbeaa41be8341c6977dbc025688244396503411148458aa2800c44195211a86763c54e45345ac258541926b4bced6a337df4506113647828b2d4e45723d68985dbc2772a6723a032bb3b84a140a95dbc480f1495118238e74376c3aa78c25e3703ce121e8576c22ea29119b1eb5b946d261cfdc71980af7961961074584a7ed970fef29172cd98a3ea5550f994f5d763b00fd37f9c0abb1459b825c6deac0b35d451a9eac64b03c3c0139806586c8e0f63b8f77aef5b207d2615d5f296894c9a1eb0b68d0571351e18a20084580d98aef13bc4ed039d132cf015bcbf0270d5b971f10f581093656a091af7f3725a2e16c8a74c541345ede689321a436ac488b23895ed3e81fb4f25b83964400ec33c529350ac29f4876128c010ca9c4b6d3e47d7ac798559251bbe4bbc7ea4ece0b76e9f519d819b286f14fcadb1231067bcb113ecbc737020b47587c491fd26541f47ee2b6bfe6908c73ebc3715c58aa93484a5c2692598b4945209d47258441c2cde253434a5a1edc934c9762b2740795857e255921296a8bd4542f82bb6ac7e293f9e4b7890810a2e46511e241162b2af6e38c2a07b15a38a494f8412fc40d60847f957b7839e78936b6c1ae906089a80ef5c58e2659be2643083922b22da53912055f26fa7ccf410abc42cf21448290b168cf7c8ba20b28dca959acc253bfd4b67e60c0c5f82728382c96f78b48b4a4c746c32c019bf8c3202c46a7a2c9c401700eeb1c013bb399d9b62eae9a4e68e4a4bec7b7fb92888ee9bb5f52aca49b2e3f6ac6b72b2cdbf2c755f85fd14903d8712fe0bf82ac0b06aae9bea06278c21e6257bc96af0379bca07c78331bb014bb0d6489c14f5411051f9667aabce54da7a8deb73b627e3873d9390a35e03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c + +# Official test vector 75, seed: "8e2995f1b3e43853b18916bb1212aceb05898e2b177a87abeb928ad7184e59695c56b2cccf5db80853c28a525e327d13" +seed: 6084a235f79dd093ef6d185b54e69df33dacee73a9bf2f379004421a10e3a79d9f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 +public_key: 5a0322a62aa889781c4fa3c36f765586b2c2a20cac081cc08d06ce1cea6036463dccc34bc294a51f7b1a5dc0778c143f57b9ad2c8b41a3b3a7e3317fec687f50294158ab07441c119c299d421b3d6cd62019b4cfce69c9dc5509856b7cf087b66391793e7b2a77262db0909861b46b5d4c23fbf134ad43622357a81cb7c9f5ac9cf1c190b9f711164a9cfa4892927364d800ad7fa2888dbbaa21b689d4a20fd0ba43f27386f90026322705b0f1069b32760802581231c44db0a43753779fe88f3a824f2ed858211bc172d49221931c3e86188c287a093b1eff20af18c1004979221c85c2ebd5700473913d465359ac18deb3055075386ac3c330887879d5ca762b6b576b7f2d422f23889d51788cd84b77ae879b1eb7026dbcce20cc94f7857aea148213c1ce857277a7808857f47e45cb9b561b80895142463bcfab6c69a7712acbd64a3b6721aa9671aa934cb0c1bc52b464603779fd6ab10d57cca0a749f3a1889e10386cb7ab0bdb86ccb02ea614a0966a0ef2699da6b7282713874f36468c2014539bc804911053d1025133975e591e357a8d88a1c7138a200543a90f4aa250f44ca61870d206a236d1917b509638fb6442aa7b886a54fc21b7c40a1b7d027a09863ef94280c67a4693d28a0f842ef2268e0a67a11bdb4a18b3c459e11e977a5d143aaa82b80520f72c50d248073746662b78ff685086632e304085e9c7050a754b302338f7a2af0a223e45730de36074e1843876a6b1cab85e0d984ece18a3420aabf4d740f6039dd183c57279469bfb9f26fa4f6ae59db60532372b729cdb8bc8b26b9e511234177af2717538383bf2103726c79d84b4489d493423f7375c273a9558611b60c9fbec197047566ae9411637ca9dcb956962354872803891c728429fcd99c02ad020c11a2f1aac40b6fb13fd6c8508500fbfc34d752080536c150b402155e130c3aa1a4e914ada0740b5178c83a67fea746803a35c36a3cc034052143303bee180d8da097b24c89fdb16583b972a50c89b5ca27dd4aaa1002fe2316940a7ab294b02eca4c69957b3d02b538c239f18a342aee0c15fdca57d28930a62096567801f64c3452697d5f4a66781975b440ab3b27a5da41e889928ff41402b20b93f992db6d4216a4a2b169a6952816d61b93a82c5c0d5923152900be6b9236ab96d076b36d406b06793c7c8c85d69f423774c4a0c143e27673cecaa38c66c1dba02860cd305214a2637a90cc84a7aa6bb919e73c06ddb787b1b9117a2c6fd577a7eb417d5a34922767bade412bef212694373401554211c1213ac7bd1d1cc61f40fdbc65b89ccb3383c30476932d738b181b64e2bbc9508268c7061a4731c659d18749ec3b87c3741d1660d10978cc91ca44df588c8a0a7a68670a003ba23f03ae733067139083ed33c98dac4c06331e90b59514c7005e27f179a0ec8517931b678ec849789c656b30c4a736209e70151cd970ade5557f9e6872248b94c894220c0bd1b6a3a0149c1bbb8ba4c9337aba868b78199929044f44018fc261aca4bcf0f70cc1444411fc8cc3b6b7aa7ea9f8d06a30c7a61d89c19e7c50b84a278a921b74e2936ad07ae2b17344356a8e640a9a1392048cacc817bb0924682a027f2cf6ec9b36aad177faedba70e26db0e2958e3d520d23b10254587 +private_key: 1e556e2047c1be5b68fa204c0f36add1b8c00e6b66c0906958635733f82238d1ac4686929e4664b5217a774299df70822cdab3e06c5468d8be7d8745f7569e5851317d6b6cea6909c70b72897395c57494aa20551b4501e45825018260dc315b71e72ed21049a91b01665440345a102efcb0c9329f7cf0c619941c9ea7a1651cb0591c53e804987395760ca688dd7c75bf2b255dd618c168b8ad735876e9066c7275f7eb8200970ec4b9c36e296a7be41fc8b64c35e9b15473337a3003dc62794a0aa8cdc71c65577085253220869fb2845358ea4d73ba898f123f7f0cbb58db2dbc26a98a5b8299b40318285a26573ff928bfbf75915ad0518965bd345c2072157748077c16f562067b154ec88694c1b71d20624f19b62e30844d930c91e95b28173f9df878d9507fa35812654353f99b93ef9ac6f61503229a72558570c9d5213db68347f8145a9798597219df160bdb0226ea8b569c894e2ceca7c3c86ccd66450fe13e5c4556db3c9ba3441b37e26ceb9c7fafc460ed1373aefaa3d593b7f317b2f0f8782b76c18eb11d0d804192627d8657bdb0e440490b6c196797c0459cdd791b82b329c6439d2460ccf37621a34b263b7b46f522c24c294be8b36c117418dab096fb874db3516e889b3e92569c32e17f3eec3c5b28766d3a2f4d06475bd666edf00bf0a514d8c06309934ce4a191805a38d7d69d0dc926eb58110e9c5bee187d0675b36af68f6de7a294fa7ca80486d1e561d28c8788a75cbfb718bc740d131a83f9e64f5b484de82775b2b8762dd568e8528e6f213a198a8d6a21b9ef668b49b87e8ba97ae468a379968fd18236c95c96f9c84b23296d5a9210869c5df05421e9c3c2b65975a93aba3eeaaf5d746fa679c5e93021cf93ce71a8b45fd44ed92bcf43d0172a8589585b9cdb7baaf1041e81772b37861fff4c60fc5b7e8d6871382c63fb3c7249c3059385c7d856cff293138a3b30b6b13614354a502c7bf922076d028affc5bd6d43706f5304fa2783a862552a5b2dd48471880529eb230851b6091b59139732102f66268286828fc767930c1b4a3bab3f14bb1490ba329401f8d95d347b3450d6cfd2c8355db3697052a4f3884df8bc28d3792fd09352daf9023b6484f8553fe15336a788550f6023d9c9a42034874cb0beb25a6a4517a1adc72bdab35293f16efd7171455b948103bee4fcb7d635723eea0a4f7a3dfa3838e7243143971bebd25ec82c0ef059992eec1aa37835fea57ab04347e86855e0ebbcebd828556a18b167b5a4c7baa945560a276ebce40d8b6c6b23b417fa8c39ab55791e703a3568ba28f022ff8cca8f6965792067ce23465afb4b3517b5aa80c3c7001e78b62617e87e3b27021636667e60a47258155f9a06a1f8c93f39420c141372015b70a3b69da51dfce42fd748c48916851d78c8ad5c5bdef8624df33600027495f6be5c6a78cc43b660767cc1e77d5b7396f31c8af0b35c9826c185569255fbbd7fe0533767c89fb43d1e282b0b9b348ef31d7cb15719a0c1db21cb57a1171046ba9409920f08a4a6d12855e113c427b2ccc4193c11781df61345229191b60283eccc3b05c49316c144a8b21e494d3ce1b11d58391bfb7bccb3a95a0322a62aa889781c4fa3c36f765586b2c2a20cac081cc08d06ce1cea6036463dccc34bc294a51f7b1a5dc0778c143f57b9ad2c8b41a3b3a7e3317fec687f50294158ab07441c119c299d421b3d6cd62019b4cfce69c9dc5509856b7cf087b66391793e7b2a77262db0909861b46b5d4c23fbf134ad43622357a81cb7c9f5ac9cf1c190b9f711164a9cfa4892927364d800ad7fa2888dbbaa21b689d4a20fd0ba43f27386f90026322705b0f1069b32760802581231c44db0a43753779fe88f3a824f2ed858211bc172d49221931c3e86188c287a093b1eff20af18c1004979221c85c2ebd5700473913d465359ac18deb3055075386ac3c330887879d5ca762b6b576b7f2d422f23889d51788cd84b77ae879b1eb7026dbcce20cc94f7857aea148213c1ce857277a7808857f47e45cb9b561b80895142463bcfab6c69a7712acbd64a3b6721aa9671aa934cb0c1bc52b464603779fd6ab10d57cca0a749f3a1889e10386cb7ab0bdb86ccb02ea614a0966a0ef2699da6b7282713874f36468c2014539bc804911053d1025133975e591e357a8d88a1c7138a200543a90f4aa250f44ca61870d206a236d1917b509638fb6442aa7b886a54fc21b7c40a1b7d027a09863ef94280c67a4693d28a0f842ef2268e0a67a11bdb4a18b3c459e11e977a5d143aaa82b80520f72c50d248073746662b78ff685086632e304085e9c7050a754b302338f7a2af0a223e45730de36074e1843876a6b1cab85e0d984ece18a3420aabf4d740f6039dd183c57279469bfb9f26fa4f6ae59db60532372b729cdb8bc8b26b9e511234177af2717538383bf2103726c79d84b4489d493423f7375c273a9558611b60c9fbec197047566ae9411637ca9dcb956962354872803891c728429fcd99c02ad020c11a2f1aac40b6fb13fd6c8508500fbfc34d752080536c150b402155e130c3aa1a4e914ada0740b5178c83a67fea746803a35c36a3cc034052143303bee180d8da097b24c89fdb16583b972a50c89b5ca27dd4aaa1002fe2316940a7ab294b02eca4c69957b3d02b538c239f18a342aee0c15fdca57d28930a62096567801f64c3452697d5f4a66781975b440ab3b27a5da41e889928ff41402b20b93f992db6d4216a4a2b169a6952816d61b93a82c5c0d5923152900be6b9236ab96d076b36d406b06793c7c8c85d69f423774c4a0c143e27673cecaa38c66c1dba02860cd305214a2637a90cc84a7aa6bb919e73c06ddb787b1b9117a2c6fd577a7eb417d5a34922767bade412bef212694373401554211c1213ac7bd1d1cc61f40fdbc65b89ccb3383c30476932d738b181b64e2bbc9508268c7061a4731c659d18749ec3b87c3741d1660d10978cc91ca44df588c8a0a7a68670a003ba23f03ae733067139083ed33c98dac4c06331e90b59514c7005e27f179a0ec8517931b678ec849789c656b30c4a736209e70151cd970ade5557f9e6872248b94c894220c0bd1b6a3a0149c1bbb8ba4c9337aba868b78199929044f44018fc261aca4bcf0f70cc1444411fc8cc3b6b7aa7ea9f8d06a30c7a61d89c19e7c50b84a278a921b74e2936ad07ae2b17344356a8e640a9a1392048cacc817bb0924682a027f2cf6ec9b36aad177faedba70e26db0e2958e3d520d23b10254587c9a546b5c0a567855039f6c1bca60414684e7bd1f8eeb7913f3a1795ba4bad4c9f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110 + +# Official test vector 76, seed: "9218943c51fd2de47e509aac67eff176795102f37d7a2017e3afd768fcda7877af38739b00fcdf227c2fd62eb635942c" +seed: acd1c0217fad5caa4235544dd9de153ab1880ccf4c76f16f236fae4e4bfda04cf03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 +public_key: ec8c397304996ce42773532b2798c4bb8a987e57b41b820c6f8b2c64181873bc6515b0c810109890b8abd9bc650f0344e3e7a672e269547aa4bbd0baf9f2b2f3b53b1910b255f7cc6cf0394ceba359685e9f6c77ddfbcf0217611d076ab2140a8dc58199a2a235955b69fc2520b192555c1bed2777ef623760cc71b0208dbf2a5d9841a231a60e2516c5ca3c6156a0c0862b54c311ce2b6b3f442c8082348833b193cb2b22d252a9ac88098c704d83f217ab2a8799f031227b95e1fa5d1a6410e3f025485338fb8338b5c7c4c0f6641b71644f11124b13c2dd21088684035a66a4c4451b5f66c9d5aaa7ace15eaaf03497ea2e1d693b77a4402dd1943e9c68cc642997a44d2f86a339c78912e678d0e314ff162c0e3c9ed8eb726ed910d1b26b99061c01142380e5074b5a46505863f6287dc18422b323c89966340ff7146fec18095147429148c24718301c106dcbb5a1b644e5a26ebb566b504a9b2984100bb6c40b45286d4c2841d774dc8915839c32ddb22adc41c0197431bf8c5f26c2329e6b2a0efb2b0d872c4b8b125d997937236caa455389c60f9e38ba3a662ac7349a5c872d84a353f9710c6c74463f220f37558458d68da5e67f1130cc5dd5ac4608220da2b8c9048bc805bb1f6bcf04379330025ca86b42cc361baab986c32a9e266bb1fa27552192a56b4b111564646b701dc4771b8f61bb5d41278a291920ac1d01649267344732a85109a3cb45b7b8e9abb8cec49ff602c819695f61011c7ac5957fccc50859432f324d6623459d7bcbfa20645b2a54c5a8ba0df27f93ecc2ed00821e98553f680623ebb221953d3d9b8d188044d693abb88bc965984b08d112ea6b4885aca190f9877f1bc123220aad662fb7f5b0afbaaae118c6108c98b31a5b6ff15aad0a87b172bb40998ec232a9d218bca9f03e88633914561c9ff65be6dcad01550903276646208248a56e5c3239f951585ee9326808a4e4f829a15996452a3328253ce2cb3613aa4fb02acf3030b64c6a27afc5863487b9538b53a2e1456168180d257f4403b41f16b415740abb024eb54c23d6a851bf9c54932259d1bb510964445067c68ae362dac6a7c3e29ed3080b0d21a76ec220c7d562340123f7a32c62184d2d707144a1565e432dff443940736cf628caa3607076783b2b29bea7058bd164219518aa77c2b303e07dffcbb00c930ef0f0632c10aafdf32fa7bcadc5719fdb591c7635c3af83198fe306076a9da2455963b91551a1618040b0eac945f788820a1442ccd10fbdbc763cdbbb6e221e8ad076880abd561c5059e23709d40996d41fa6f129c4758b62644c30c1c06d0080091b4d5a8705f4b0694507252ef1a5980a347846160ba3256475741d50a7ae465f1b444a25729ecb66585e51992bc781f28c180593c4e5882c243017440633007db1c637733a01bb8a994347d7602ed0b34261603b84b8c2e14c5c46167af459507152da216f272371a0981fdbe740daa78b9eea655d98cd14ec90cd383863ab5fe8137ebe820df5a007a288586e18a54b43387de9b73f9037f27384be092b09941262706dd6db377f733b31a49d2467605649b9609365232252a62555b1451674b717182870c1088f4b34061f3e8b9034af0cf2c5f7eeb665e064f5f27cd5e4c84531d45d38051ef9 +private_key: 243c03e7374a7157b1f0c02c4d542e2b31a45a902d908592f3f620c347511d650af8ca8932b70a3563ca126391f178c7c1477c9af532cf1897de99bdd7f07c0d304f90190ede5967898a0e7818622cd76724f77c4d73248bf67955726afde4c4e4201a21ea48401099b05b196b4c698565094b3421c2b429cb83a99b2a7bf5c784117b9e8f7c00d8f1c801b66f63402aeb49822a92afafa445f1fc7b3e76cdec3091cbd474d10ccec25539a658a1a48b6697252d28442a36e70578b810898045c0118468e6bd05c664e4c19440b88e0e847a15ca747e9990d995cd4172b5933b58fe7062b871ca02f539e74872e283abee046c7e15372e58455e4a6de59bbf716bbb62417b6e46296e68c501d4007e1a97b7d970b5bcb8a9586fc42433eb457993e7b15d7c35de95176b09065a1a3f61734b9d453ff0b0313dd8c0888a92f6270ea93ab6e9f15e9f6c207ca9512a41364ae6591c578ad93639e795cd00339cc5b67176f771fa6c5496cba3071b67ffb88b72993ecea38f4d8244d94676e55ab3e484b0ad4776be5ba4a99766d63128828b7497725abff8a932b1a697b6c0a27b3b69121607288dddc03a4c144cbf0a0b11886b2130174b99921b1920320ba515032ed7d536f5b352975697b8a05855cc78d7979da443a06d443d52b4931c554ccf03b43631213b68385e1a2c5f87c84e13b84032804f5929fca18c2ec8a15869905a216fe2852631e00b19b45a4a0b51243b118eb358435b9b46a0525426ba232439cee0cf6f8b164d72901cbb4f1b2750279c18aa255f5d7053f10c1750894c886b59c9ac43b881cd5e4476056884ab9a246248892c0c7a3ab8425d77c178b47c8ca5262949ce47c25b90cb90942b1aaf64825a7658c4e0bef219ba2e609eae90bb6983589e128325dc42d9422c72d0452c208b23297387a9b77ab8b89ba34266130d5cc35568ab1487c335fc9a91dce293d807ab73a41eec932c0e398a762881d2da7d558352d7b8abdab79687e3ca3db89036022adebabe39175232b36703749391c9b772a79396862972ea6c0b92387fa423fcbb6030f83d68c4a44600b25c547f7173376704a6e24c12a5906afc43bf539aa6aed0281d786336373a44147b1e943a9c0c7d8f995f61377134ec1f536334aaaac6ef040dad6a42feab2d6972880c602d97540a52305b24dc7cb243259fac61d2632285099a0ab740083178cbab0ee8f17599f115e106c4abd606ae5568f7a387a086b334f7aea5f92249d678add0c26f268ca769696fc14eb1c6ab8e182e5a727793d6bd94461b0e985d67e64f794b0def70c43ef927544081011a74a28c976c553ae2e0ca49c80926f460078886f49a55475c456f2bbb84270f22c5256241aad6e05b4a9a276e3357c1b92d5df09db23a783f19b1d9d594e064b09fc815bd43b5cb8b9ac43c64a2bca445b235f7bbb3cc0a7723d0a2e351cb4ecbb1b688ca217a500fb20cd37b1a0a2c4eb79775eab657425c8b264583b5c37bbcfa624ae1af5575571aa59960f37599d25cc625916ca149502766aa06cf31fa23c99b2099b9677ba327ca317e49e029eb33993068b022e00411462d7a548f4bb6b435d8ccc1305067f923c7a914d5d77fec8c397304996ce42773532b2798c4bb8a987e57b41b820c6f8b2c64181873bc6515b0c810109890b8abd9bc650f0344e3e7a672e269547aa4bbd0baf9f2b2f3b53b1910b255f7cc6cf0394ceba359685e9f6c77ddfbcf0217611d076ab2140a8dc58199a2a235955b69fc2520b192555c1bed2777ef623760cc71b0208dbf2a5d9841a231a60e2516c5ca3c6156a0c0862b54c311ce2b6b3f442c8082348833b193cb2b22d252a9ac88098c704d83f217ab2a8799f031227b95e1fa5d1a6410e3f025485338fb8338b5c7c4c0f6641b71644f11124b13c2dd21088684035a66a4c4451b5f66c9d5aaa7ace15eaaf03497ea2e1d693b77a4402dd1943e9c68cc642997a44d2f86a339c78912e678d0e314ff162c0e3c9ed8eb726ed910d1b26b99061c01142380e5074b5a46505863f6287dc18422b323c89966340ff7146fec18095147429148c24718301c106dcbb5a1b644e5a26ebb566b504a9b2984100bb6c40b45286d4c2841d774dc8915839c32ddb22adc41c0197431bf8c5f26c2329e6b2a0efb2b0d872c4b8b125d997937236caa455389c60f9e38ba3a662ac7349a5c872d84a353f9710c6c74463f220f37558458d68da5e67f1130cc5dd5ac4608220da2b8c9048bc805bb1f6bcf04379330025ca86b42cc361baab986c32a9e266bb1fa27552192a56b4b111564646b701dc4771b8f61bb5d41278a291920ac1d01649267344732a85109a3cb45b7b8e9abb8cec49ff602c819695f61011c7ac5957fccc50859432f324d6623459d7bcbfa20645b2a54c5a8ba0df27f93ecc2ed00821e98553f680623ebb221953d3d9b8d188044d693abb88bc965984b08d112ea6b4885aca190f9877f1bc123220aad662fb7f5b0afbaaae118c6108c98b31a5b6ff15aad0a87b172bb40998ec232a9d218bca9f03e88633914561c9ff65be6dcad01550903276646208248a56e5c3239f951585ee9326808a4e4f829a15996452a3328253ce2cb3613aa4fb02acf3030b64c6a27afc5863487b9538b53a2e1456168180d257f4403b41f16b415740abb024eb54c23d6a851bf9c54932259d1bb510964445067c68ae362dac6a7c3e29ed3080b0d21a76ec220c7d562340123f7a32c62184d2d707144a1565e432dff443940736cf628caa3607076783b2b29bea7058bd164219518aa77c2b303e07dffcbb00c930ef0f0632c10aafdf32fa7bcadc5719fdb591c7635c3af83198fe306076a9da2455963b91551a1618040b0eac945f788820a1442ccd10fbdbc763cdbbb6e221e8ad076880abd561c5059e23709d40996d41fa6f129c4758b62644c30c1c06d0080091b4d5a8705f4b0694507252ef1a5980a347846160ba3256475741d50a7ae465f1b444a25729ecb66585e51992bc781f28c180593c4e5882c243017440633007db1c637733a01bb8a994347d7602ed0b34261603b84b8c2e14c5c46167af459507152da216f272371a0981fdbe740daa78b9eea655d98cd14ec90cd383863ab5fe8137ebe820df5a007a288586e18a54b43387de9b73f9037f27384be092b09941262706dd6db377f733b31a49d2467605649b9609365232252a62555b1451674b717182870c1088f4b34061f3e8b9034af0cf2c5f7eeb665e064f5f27cd5e4c84531d45d38051ef98f7bfdde2a7116ff4010cf829cbb18512f7cf44237c02241a1f75fe3ba8d22bff03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7 + +# Official test vector 77, seed: "542e20078add5296050af150360f057f6b9ab3ba835589dd56987de805f900b906505b5390a0d86cba28038992dfc59a" +seed: 241191401a63afa750f05662e354dddbc683c776ce3222beb83e3cf913d7ed7ca59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d +public_key: 18f81e47490cf733359bb77d86b1b949396baa99c9d73485e378b6eda76318b961948497db54149f386e51648187c48a94fb603eb114a9408ba0d27f3c717694f9459ddab7c6d51a58c50a79bc072d7717781a6b12073577d3a89a405829850aff65023a771a5f5456ac5b3970d545043a2254178375268abca9a967f50db28635b1d01e7d1969080438368a4b61f63efd82a811f63909aa48a055cd9345c09191abeaab8237696bdf3512b7e8625212bfe5500bd7002066357954344fe361be074069a520a470eb64bc0289f85c981995141a246ee3c6673d9026b7b490a82819ee1825ad39284fc41a01c936d0280c4c681d62e47de8e339fc0a0f958b279ab95114209231faa8962754b12a22efb67ed1c42e8c144f74476f552a297e7573a81717144648befa3b6c6096f428c10fd925ba86b29c8890f2750d1e7956664a714fcc00c88a3cc259b503d3ca39942986d19ab6d76378858d679cc61ab40edc5a007d33813698a6ae96acbe95474b188bfd3208c885179de868dd027f12256b9fe84ff460b180c7655d514168c89a516ba4ddcc56c1b5325c9312e067949a57178251158eec2fde69bc9d61be726338830a86e8e525ec00152cdc0e86473e2b54ab64790735c3a945cc83b999352ad2587fb67dcf2c9fb3b921deac54dccc8201d36562f64831c8129e67b2ae78bfacba95f29c3d20942781e090ebbab81bc5c071b0bce826173f0cad6c101518b56dd03a8bdc872d338225bb16128ca8c7212867dae513c971b687297e4c098ff7c478f841a29dea278d1bbe55423321372a44937d2aba34b279c99e8847c5d4b51f54143de991aa16aeeab267386c7f286445acb87a98cc93029658bb0981048876f0884b526ba58f201257a2245849a57cb425cd2ca92a3cbcbf963a4f360e8616c082d8be4820323df715bf5344fcf85ba070ac3068ae91989e61600416d7cc28cb6d42a461dec083f6126c749ca457146d114c84fbc576a7dc8f9c2c03cf4a3cd2535a7a396f59d73259654254e5bcf616b4970770bc8a3d030c8c61d93eb08644159414dcc6428be73357531e50ba72b5eb99d9380bc4802339070366a19760c0b15e32a48ae0038453527b10c4ab6b1ae8497f49dc47e25a514258b5c0336a812525c5a86e22d73a9a8c3da5e88a468c3439464fac42491b0bc91cdace7cdb15166a01b62cb22b745c38ca32a9727c8c57537c72563edb4aa2b400b778115b36817f188e659b2bf7c999d108c5b2d252f6a3bb78737edea48c9bb91e917487e4e6156dca609aa97bf47bab00047602f296cf611299510b195ba59ae7bc245b8c9721901995b6df4918842017945c330290c6bb3c46d9104faf014db6728c4268627f8c884bf52e011344cfa795f864a474f9c015ab09c77911a8a52c1aa46aeed6560d4bb1f3b64d65028d373ab3d51a450e600a239767aed9cf25b5c85fc24cc794162ee70e13d88fd3459cb37a92d348a1956bba09e24513d5a5fa79b593a849a1930456f39fade44b583cbd7eb4ce058056df38cd0be15205161f53f2c8681cb9e00525fb59cfd86ba1ae81ccc1636dd69c81ef620651606326a41db9b68827378c2ec238e9179c02965f938a2d0aad893c30d27267e416287d7ddec314a79402a769c3d953f0092ef4f8b595f8 +private_key: 77f83df8951068a026ba38b5e53487b6d6a39b69129e8b45498746d529cac78b4e9437565f39083aa50ad651b2d536bfeefb93f7ac40f4f4100b231564d4880140873d1c367da759b54c5cd9409382ec3183766a4beccedc375df891c75d4866afeb0ada4a161386b698bc63b5850cd3a1801a4a80f0053251664c7642971e0a0f415a0cda2c660a052a7876a5945c172fc87d8d8c9d06c9c30357ca3f8964b9b76b4544784c16981b075bf49653fb520f99a23e2465789e6b5864b969df900fef3c80e1bb0e12fc93b6cabcdfea9006e638f265880ac630823a0678c29069284a16020ff97404e6f4b2cee5ce8434b869177134f1ae861784b4f7332c4ac89cf8c36e7bce1a59b4682376b33300b7696e3bbb6b301cb3311934514babb29a187db5a4a656bd02d379f40694a6f1b55d1a08de840126740f14bc994da75f2fc3bffcf88fbd9b88f21122dd6b5ee5c2393a69803cd5cf67647e78b94bbcc81355e938eea2aac1053675251dddf380173316970cb1990153c9a0889c3cb05715a02597bfdcf925949873558ba5cbbc8782e57b3720959c19a21bc19c65a27599f32b0f91835c421eefcb3ceedca0b02659f4805d1a5cc916e2b46873cbf6c403e97123271725932b3bb40a0de7b08ff71919b249339a22585cd99698dc1f3413b15cb09142ea1a8d8b0c1f64b1b6fba5ed3068cc262d2067686276c302b20111cbb602f29756c32279dc578e20801d2a3abb762640409b8ba349cb72c9d3056aa788b023f15160832e100b7e48d14dc4b81229c744fc20c3a94918e78c668f1aaf01bb8b202a3c8dcc0f63d456b50461c44101a6338c4b7c725490af0563968a8184daa8720bb36dcca4ae3b3ba26927284c10093c079a4aa3b846a811ce237ea9033541d91fe5308dc32cb8bcb77b064bacd816bd8725569bc85cd7f63d34539c14b56534dc516f1500631a59ad1b985c77c262a0b70c3a14d9b6b81f2c88432568ae2a7ba32824abe9866738adc1761293925c694428ea9153fce0542362be09154b4e06b8a60b57f96176843b2764c3b5f55a1738b71bb2c87e371ab7a70560c245aadeb9742951959a25895d40b453376fdd844c9126c78f3a553b9c9b9d43033ee8c6ab13348058589ec1523321a823d32a97e0bb5270672e9990a0012842c38f3212101034ca8a863ae632b53a412537a40928c503a71b7b095163e222a757f3713157b8e8e369f2e2688d50728efb42229325f475482d167515d2656b1c131bca452892c39b8b2ee658816813bb66a0b16256271f8a23c7c0b31a45c4f42551a9a15e87d507d0547921a26bef229265b24bb96b008da638727615c8686f897925b6f27ada067736a7949bec8d23778708163da61c68d806067becc118785ea432a06c3a99f6648341e80b1c5956b650afd100a63474a32fa53e2a9b49ab935ff4616292d9278e839a70bc1cb7a61a49855216d5bd3c10774836469b48496f0590127850d20c52125150e25bc8388483847c92494c0b48e66aa8805ae8c3a0e7c5ae3ec64ba22381eaf7ac28eb0b76daaebe0b6b6e28bdd478002359c79811b2f47a3c45d938c2690ca38a7a2411c223855bd7fcb83d614266251e76684418f81e47490cf733359bb77d86b1b949396baa99c9d73485e378b6eda76318b961948497db54149f386e51648187c48a94fb603eb114a9408ba0d27f3c717694f9459ddab7c6d51a58c50a79bc072d7717781a6b12073577d3a89a405829850aff65023a771a5f5456ac5b3970d545043a2254178375268abca9a967f50db28635b1d01e7d1969080438368a4b61f63efd82a811f63909aa48a055cd9345c09191abeaab8237696bdf3512b7e8625212bfe5500bd7002066357954344fe361be074069a520a470eb64bc0289f85c981995141a246ee3c6673d9026b7b490a82819ee1825ad39284fc41a01c936d0280c4c681d62e47de8e339fc0a0f958b279ab95114209231faa8962754b12a22efb67ed1c42e8c144f74476f552a297e7573a81717144648befa3b6c6096f428c10fd925ba86b29c8890f2750d1e7956664a714fcc00c88a3cc259b503d3ca39942986d19ab6d76378858d679cc61ab40edc5a007d33813698a6ae96acbe95474b188bfd3208c885179de868dd027f12256b9fe84ff460b180c7655d514168c89a516ba4ddcc56c1b5325c9312e067949a57178251158eec2fde69bc9d61be726338830a86e8e525ec00152cdc0e86473e2b54ab64790735c3a945cc83b999352ad2587fb67dcf2c9fb3b921deac54dccc8201d36562f64831c8129e67b2ae78bfacba95f29c3d20942781e090ebbab81bc5c071b0bce826173f0cad6c101518b56dd03a8bdc872d338225bb16128ca8c7212867dae513c971b687297e4c098ff7c478f841a29dea278d1bbe55423321372a44937d2aba34b279c99e8847c5d4b51f54143de991aa16aeeab267386c7f286445acb87a98cc93029658bb0981048876f0884b526ba58f201257a2245849a57cb425cd2ca92a3cbcbf963a4f360e8616c082d8be4820323df715bf5344fcf85ba070ac3068ae91989e61600416d7cc28cb6d42a461dec083f6126c749ca457146d114c84fbc576a7dc8f9c2c03cf4a3cd2535a7a396f59d73259654254e5bcf616b4970770bc8a3d030c8c61d93eb08644159414dcc6428be73357531e50ba72b5eb99d9380bc4802339070366a19760c0b15e32a48ae0038453527b10c4ab6b1ae8497f49dc47e25a514258b5c0336a812525c5a86e22d73a9a8c3da5e88a468c3439464fac42491b0bc91cdace7cdb15166a01b62cb22b745c38ca32a9727c8c57537c72563edb4aa2b400b778115b36817f188e659b2bf7c999d108c5b2d252f6a3bb78737edea48c9bb91e917487e4e6156dca609aa97bf47bab00047602f296cf611299510b195ba59ae7bc245b8c9721901995b6df4918842017945c330290c6bb3c46d9104faf014db6728c4268627f8c884bf52e011344cfa795f864a474f9c015ab09c77911a8a52c1aa46aeed6560d4bb1f3b64d65028d373ab3d51a450e600a239767aed9cf25b5c85fc24cc794162ee70e13d88fd3459cb37a92d348a1956bba09e24513d5a5fa79b593a849a1930456f39fade44b583cbd7eb4ce058056df38cd0be15205161f53f2c8681cb9e00525fb59cfd86ba1ae81ccc1636dd69c81ef620651606326a41db9b68827378c2ec238e9179c02965f938a2d0aad893c30d27267e416287d7ddec314a79402a769c3d953f0092ef4f8b595f827b1b921723cedf55fe756ff5fb67d555296c6185d171ed8ba01393d1a735018a59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d + +# Official test vector 78, seed: "6a85a61dd08c0733fcbc158abb49fe0b0d96a50dcca140a2e9f5a254f1901985844613b1c656c0cb0112620591b88ad0" +seed: b9a6b0c05677e957d41a34ba03bd06f2a9092e31f63389397d7e70fde6409d18e99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 +public_key: 776b6f121675622857b8b376d708b2a861306fe931126822e2e8672fa0b577e8ca3f16495af10aae456a734368677a87fd3c2199060dc1993690c1ae2b76959664a1df6cb2b3738b294124918596b0d69394eb1efba83895d0a7f3081ef81769437cb63b726d4236a65c87c3929b79fe34438a8931cf2b889cf100747cb58d373491e7cb62db266bfb3b7e745500fa418eac8cabd966dc388d0f1b3fba850bfec8c03a29182deaa5ec4256fb3b436f429cac87399c61bc98497a3aca07cec06a128231f945a4a335ab6d1a54a9a59db106c0fd61360ce8870d1cae99201506c9c96d4969f4b487e4d87ba1d45accb5a754585f29db0991376150c65927b20c9eb421366cc840d528734c8b4f1421fe30c99f4c55f1e25d18a1b012424cc9f6250064a61c1b42ac243b6c701e293055a9ea7c44855e575cb6217c381de770cf461040c20b2cea6c2a921c9be483ecc2718dac01c4a5a15b60bfd5222fc988c60b23504919137b1226d7b72fe4105154711d25790a9f64c95356a787058018cba996410aa4f29a62b6cf77439b5784b67390b96db77c1583bab490719d804e79b8954b948388514a7fb78ebbe7959599ca374a66558a8fbe7aac91e8a62ac623690a952e94bb91e64fe57ab4db066867ecc9ee027163a8010bf901489c10ebb736ae619dd0177fcd060c4657488bc50044e4c895191351ca72aff9698577bda5536c3fa75f0d9b586822211cd88d686ca8921ca65bf8081f8604277839cc9757653a46511876f7b98983fc052bc088bc85a686ab6bfd5c2b91da8ae210313949191d13279be375d3d3197fb01808a76caa8a843e178d0dfc116c041030f2047f4b35c0900498fab680d45fd0710d75226eddec6388d56d1c2263768603ac0ba9b68a21173704bd25b6b5181405029cc4b18c6446b5afe5431f0a26bf50b2f33b0aa4032e9f28ac9fb58acd85a670f393351b33df4079a5533c44a94e968b677a68931491310cd48ea1213dd416ab650b3294f06f91aa5004f622ba173795136eedf91598153b8d2935acf33709a8b33e4b32384bab51fa69ed123a4eaac726dc7041b486e8aa3641fb8d48f908c27866753b821aaabb9894b504f845fbea8766e82671506ff5b5012765a6a7b08f9fd3c10357523fb423e02024577235fe4694349c1188b1aeff482ba7a15aa188a8bbe7108ccb7ad6a469054a45c01aac131c6a7c4acd5c050184ca77b8466b6d1992de80242454169a33382972760de2b69c3c000b900d25f2cf4731224dd9a2b84562c15c04d3d1a9ad447ee9404888141a7da3a522f90b9071ad7af54552d0060af1a66a31b9457024a46b3fc1038a7c54b76053909ab07eb36c1dfdf897276b465155aed0e70f9a4b9398e54d267377fc298b9bbc053b281486f8436017c6d98b3249c167b17358c134299ae17426bc9f067849d7c55541a205c1359a41d7a5fea37e758a0893c18226a44bdbd27e0266096dc20da357c5d1a23956b796b305c29e87718f65b8331888cbd53fc2fc011f92c6f49c7f9901a5b17059b81cb2eaca2d348a22a91105f69140d122bf59d74c16a840e4b646f5e1cbd921a24a60a0ed6cad243303a1448b6750b4e451c5e0e41b3a12a73c36272ed86537f1d2f51a0e2b5b5847b0a2d9bbff0a051bd5227600ad +private_key: b066bd9303c7bb0c4a4a01812cf463cb338cdfe80953fb0c90d2aa7a2c1e110443d80ba64f6a435051083af14017f02886b63c8f0bceeb544b86e74e85a16db9539de52c76a624086031c0a9b84380d02ce49b0736e2277995a63c43a2ada9a60883024d50314d919c98e7a4f34c167c830c717693fb4a2f4ab1c684bba76365403d6b3b27f76a4d9570bbe73b09e32d45b6b89616bb014c5fa995779144107ff6ab3b523ee121c3cf601ca7ccb13c7783eb8702d34695c686298824884c46012c16c40576497314a0d60675fa0b1190e13a816c75543c9e54867f9fa495a4e43f0cc964ea4b19c3541930e33a63750105149484094d30a28c6eb73de702238e09272cd0415aa3b19007c90ce6407a864703d9a9f1fa3aaa762e66736f7f692a7344ae84a544b6b289c2d2187d61ae6ef70122d180cbbc09a4878cc6e4b71f1962627746a9d33c0b7c3a78048af6e811a34943fb01c5b2a248ab256c729a8ae2a1cac87870bc880bef16bbdd0724e25a0257c244c2a59737da52983cb5ec02b44fc0bdbd40c8882470285654c61bb27a9a9fd0162594343f31307cffbac216481cab73bb215b73fc96507bea727e5505e31848306c6647f7875d708fdb57c2f5a428c4d3b462122dba423251b5aeb94a2c034c025c0b39fab66b1c10b01441b9f5d9b736272718b44894820aee4c5dca164080b4774cd6af8e7c5218065a6d03917f215d2f6595dd13141c9505da959cc10bbeab184396c2b552db0c9c7a878a10a63ad920c19c9145c2cdb4556d823cb6d1e48458d72ad9886daca3bf7265b4fed2b11ae1a8b73a1ba62a3a298c339f01cf70d7118a094de950723a9b0e837a74ba18a92410228d0803dfe49e740ac2bd50bbab741743795e292616999033c7a18765648441ba9725bc1b6275484741a625a9ac0516980b903ff40c58c348940817a40bc02b0f7487fb0a09c3eb6bced56580f09edd262ec2c251a0fb303e33202d27b509b31ee87304131518b0e17ae34158ed1565caa77013a7161bf1cb6159841f8566a4a8a0c6823892ba94a541b18db1a68c9a3ad1755a1648bdbabbaeb8c8ba0a105eae48cfce175a2070693138cf6cb3c3b09c2285540e83b2b5cef51e634b5902aaac61d63b5e72069eb52a977a3e8b442f6106c13b1108eff9ce87d387640b3eb1914e0587298aa10cba2b09726ab542e2101cd6620564b1ed8945c60c674f2233236bb744307aa7db84ed11ce1d01ac0cc9b86f463c13197c7c1aa3f443cb0eeca93a817319bc45f9a587cc8a2ef05b0eb2998aecac2920387695e154831c96beb5568d880d4e480087499f0e818002a7a2db2b717aa39b2fd755c1c7678cacbd5af344ad38578a894b9d795fe65b701d3a6322f15e501610c6cc1e6fe90cd5048c93b80632fb6e18d70ecd44b36bec3ef955813d338f3af7331774962a04318556551b18930f91b3eab4464572b39f996d71e4aa3b7179b07b7717c1373194cbfebb4dce5caba80a7a7bb5aefd069db471ba0641383b0a006978b3bf5bb14348b507a624fb44c41d4c8156e2765069281e2836a7859bf3473b10f24c8d371148077014f1268824859a82bb548c25ade15cc60128a58ab4301032776b6f121675622857b8b376d708b2a861306fe931126822e2e8672fa0b577e8ca3f16495af10aae456a734368677a87fd3c2199060dc1993690c1ae2b76959664a1df6cb2b3738b294124918596b0d69394eb1efba83895d0a7f3081ef81769437cb63b726d4236a65c87c3929b79fe34438a8931cf2b889cf100747cb58d373491e7cb62db266bfb3b7e745500fa418eac8cabd966dc388d0f1b3fba850bfec8c03a29182deaa5ec4256fb3b436f429cac87399c61bc98497a3aca07cec06a128231f945a4a335ab6d1a54a9a59db106c0fd61360ce8870d1cae99201506c9c96d4969f4b487e4d87ba1d45accb5a754585f29db0991376150c65927b20c9eb421366cc840d528734c8b4f1421fe30c99f4c55f1e25d18a1b012424cc9f6250064a61c1b42ac243b6c701e293055a9ea7c44855e575cb6217c381de770cf461040c20b2cea6c2a921c9be483ecc2718dac01c4a5a15b60bfd5222fc988c60b23504919137b1226d7b72fe4105154711d25790a9f64c95356a787058018cba996410aa4f29a62b6cf77439b5784b67390b96db77c1583bab490719d804e79b8954b948388514a7fb78ebbe7959599ca374a66558a8fbe7aac91e8a62ac623690a952e94bb91e64fe57ab4db066867ecc9ee027163a8010bf901489c10ebb736ae619dd0177fcd060c4657488bc50044e4c895191351ca72aff9698577bda5536c3fa75f0d9b586822211cd88d686ca8921ca65bf8081f8604277839cc9757653a46511876f7b98983fc052bc088bc85a686ab6bfd5c2b91da8ae210313949191d13279be375d3d3197fb01808a76caa8a843e178d0dfc116c041030f2047f4b35c0900498fab680d45fd0710d75226eddec6388d56d1c2263768603ac0ba9b68a21173704bd25b6b5181405029cc4b18c6446b5afe5431f0a26bf50b2f33b0aa4032e9f28ac9fb58acd85a670f393351b33df4079a5533c44a94e968b677a68931491310cd48ea1213dd416ab650b3294f06f91aa5004f622ba173795136eedf91598153b8d2935acf33709a8b33e4b32384bab51fa69ed123a4eaac726dc7041b486e8aa3641fb8d48f908c27866753b821aaabb9894b504f845fbea8766e82671506ff5b5012765a6a7b08f9fd3c10357523fb423e02024577235fe4694349c1188b1aeff482ba7a15aa188a8bbe7108ccb7ad6a469054a45c01aac131c6a7c4acd5c050184ca77b8466b6d1992de80242454169a33382972760de2b69c3c000b900d25f2cf4731224dd9a2b84562c15c04d3d1a9ad447ee9404888141a7da3a522f90b9071ad7af54552d0060af1a66a31b9457024a46b3fc1038a7c54b76053909ab07eb36c1dfdf897276b465155aed0e70f9a4b9398e54d267377fc298b9bbc053b281486f8436017c6d98b3249c167b17358c134299ae17426bc9f067849d7c55541a205c1359a41d7a5fea37e758a0893c18226a44bdbd27e0266096dc20da357c5d1a23956b796b305c29e87718f65b8331888cbd53fc2fc011f92c6f49c7f9901a5b17059b81cb2eaca2d348a22a91105f69140d122bf59d74c16a840e4b646f5e1cbd921a24a60a0ed6cad243303a1448b6750b4e451c5e0e41b3a12a73c36272ed86537f1d2f51a0e2b5b5847b0a2d9bbff0a051bd5227600ad32a2a1197d78798bbeb13ce2e92cd7ed94b410adc37b1b31dc060af11fec8a8be99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969 + +# Official test vector 79, seed: "7f4a56eda151e7b097cfb8ef980440fff707affba91867c89522ced6c5ff3bd7f5f00bb49ddd615d9361a7e4efa42851" +seed: 28a96c71577ba00c94f99fe965bc595a26db2b3ca6ab5cf8e443cdd8462b17929c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 +public_key: a6f3b26ca06ad98a9a6ff2122b8889bb513558fc1a8701376ceca1f7d87a53f78f953aaf9f977c2ffb4d04f88e33e0ba7d83bc6fd27914a769ae382ba5f211b2f59f0001ca30b0a0ef138adaa485953cb8b6f6ccb56a7c92598c0c83ae97684c26d70d69210c8dd16ae08c4b3c1c30110a581669245529be92d38d9cecb10f22c83d01b3b3660fab4662fc559f48041167fb3e7960328c612a7e99a0c546b63b1b04f22b78b85074e6d32f6e04b096eb89da611f30267bd8760e05c238ea2a587691181112a39c88c528977f0399cddb7a7c8bba3ba71507b3db7131302407052cc4e8125e2bc035172a967a21a0582a05f8aae28228ddca417545144882ca3d644f6167ba30e91368879efac5971c8b1a7a9674e804c08e506ade53bcd778c1af4637584b9752aa1f16a4319d296b93e5368c10863a85cbb55c11c56338285b21cd740695757adeb2ce48b7c658a36b26b670e59947a0d94d022284bf0995d56666bd7968bed8858895c779a3318275afe42488953791e97cbd6256c29a6c6e4339a15d7a7c3da95edd2a562dcc2f6fe077cbd2317a914b975692ad1c3c3d956b26634fe1d2235d66226ba766a447bc87e8674800cd898b4b02c491658b97e25a4f836ab98a99c669b60aa4c30518a6644fb048a4e34822782644038ab04a3815c61da99816eaf388e495cde4a65c12f1bb5f02a1a1b1cede817952625fd2502f2a4b8bbbd4123e71462ee433ac923583c830cc54129bac51f96846d8fcacece9b19f6063734158008342c6f48234d24571e5777074170ae24b20d125f1ba311f4b33cdf91e3a2305fbe12e44ab54cc8c4eaf8553f697c00e8040e858569120bcd0166bcfe1a66e2500c3ab8acf3b58f1309c68772154602ba6c0968553ca553252d27a0b05733d81486d86c590291a643edcca9f8470d573880d5856a6b2cbcff2803713790d17297ef11549d5412713a3e4206b1b7c85483192164209f5b32f709aacfc4bae51f180edeb7e999ace2bf98d958514951362b08a6b529a2a7669c5492c0a61645542bc1dea0b707282a0797291b8c7a510884f12e92f3200ac5ee91686e109ecf245b2672f94c0a4525b7f43fba328099bfe4330888b186d026231d2b2eab7b971ba7680f0cb4653652f8aa8b4e01bb77461d792cd5e941a31dc02d52622b37c498e4169bc0418e23c5d32999726462d3a0a6449918b18db487f422849b67cf047bfcb0c6945bb87cd779dea915b64aa0975d313f8a740de77b0d40612459c2eb73a3fc876ac39c821a52761e13115d87bcd17052fea2b98d9d83ece9b1de7124c9738c0df539045279eeb21042a13791feba9d0e23445293eb3c2c194b76c5febb5582220ca350eca9b90435372f3c5baa0549ff847aedb815c244b27dc5866b151041e884befbc7bccca2fa098b592c5aef7f53e0d712bd2119214c15f8ab848a1864705d0511c50a9942535cf06952b0357445a9854240c026733ac8a39eb3c8bca2939d195763a572353da2956799448570a21d58623635f7a7461a913c24ad04d1495c1ee42c88b82942012b2d4b410fd1907799623f1b373b9c438d2b4c3fc48c054bc5206273f7a9a3dccc0ad8d40070ef20fe4cc99c8394adf63126006ee8cbb821b12a2a0a3018c4f8e52a50183fff79e84c69427 +private_key: 024755131769c7169f4b3a0b89f81f45e6a48cc2cb0eb87badd4ab94e9bc67e85ead80158c390dac09c40a6a8de8a95b21c5158a853442a908278a6ef80551a7c16a800242c7086144444e488bbec51c3cab83594bdc2457f0152c43a9577c51799ca7b03c9ce3cb4f5c6564792ab8201a3b8304ce4d8339a2171700d7a6ec1a03c337b639f7c804a50a6f41225c1143f9d8ac9698a3eb126b9da000bb2137489a165848865b487051b7665640b2e5e2b1b4633583589f30d4572306614df8080791040daa0106633a26237a244b6a18920d87653e8b516ea895a1f75bbfa912742bb540006a95ad20b95471cd4c282a64a36ab09a86b1f90f44d41753b0a8cca50d9780351f253a691824c785ad8be9790d48643bb4611792905e5b80d2717369e4786e5901c43366a14b3b423b11139349c9107fe3f55958fa8e4df6006b3607210b525304be6551ae57e826c913cba2503260a9493bbb3cc2319d791226c27a54233c48e7084ee9ea82376142bb419cfa6c0f51426cec39b554255f56b1cda42b4ac33391b08172f7a82574b6943f6a79ac51a5e6e254a0a5c80d46538c03705705abfb2b3ef63a756ab8ac03530aa6cccb005a05d73b687d45529edba35af03c411592f652c8f1131640b943629806cb21482f8913f436a06dc790b89b2f2a49245a51a26e107bd18624b51b406381cba1ab3e8879c401a30fc9f0c40beb557343735d0a44ba150d4cb404d752805085892b709f2a97abc413c81f7a1e14811745878d66e98f1fc176e4a3cabe60557e104d24733668985ef15b87e78b57d22c4464ebb4b9eb1b124b80c6328c3bb93349359777fb09a19c1f7de48274fca6d91bb51a97c49c66295bcc6c53933e1f327f2037c7bf9c80cdc5406fac0a9f067e7703a0aa79ac0eda8c14e4c7f6b05d7fa84ce9a487ab489227910d86b0b6a3a91e21eaa9493a986ea773af7c16cccb3b059aa724a02cf936a45730aa93ccbc2b3377014350cea39c36908f5167b08001061867c603f6ce64b081b2e46b1985837684b5e3318f4531c13f80277a35683cf599b373136ec3977afa12e1d32085330c0a6828a57c2902ab0ca679c2f7f9a844091b87a4754ffaaccff0c50abb01768927ae0b2eea885b54e92db59533ae6a6e9253c18c9184c1127220775da93c5964845240a7a3795b5df5d00baa34393d3009e641828c86173ccc1a9f9749a0f9271867b2d2a364ad7335edd1c02e131117a93b0f6113dbc9ac36924ee63cb954b60a325971501b3822732007629b00a965537c3fc07791af7a0c000446d15506c8404da9676a9907969d40627a18448f353735706015f05005403aa7a7b79ac7c5a3759b569b8b5d3b86bda01c4031a1f4e45cd663bad410123a973b2b6633da3c88ba0a26f0347901c6236ca76e1266440adb415fe5c7adbab8f5d8b3dd5bb4f88c3a1e450a4850629166102471294fd05696a54f516a0263e31a895010dc034ce6a72f6294a3cb6120d59c0e57827133a2b53f40b0d5f060e9480e77ea39e02a48f4327cb066bb32d2289bd97d10ec6615a6ce06088d6f63391952c89ae8bfebc43b554aa5e4b6a87cfa9e5b457c581a437422c48aa35df5c939694737a6f3b26ca06ad98a9a6ff2122b8889bb513558fc1a8701376ceca1f7d87a53f78f953aaf9f977c2ffb4d04f88e33e0ba7d83bc6fd27914a769ae382ba5f211b2f59f0001ca30b0a0ef138adaa485953cb8b6f6ccb56a7c92598c0c83ae97684c26d70d69210c8dd16ae08c4b3c1c30110a581669245529be92d38d9cecb10f22c83d01b3b3660fab4662fc559f48041167fb3e7960328c612a7e99a0c546b63b1b04f22b78b85074e6d32f6e04b096eb89da611f30267bd8760e05c238ea2a587691181112a39c88c528977f0399cddb7a7c8bba3ba71507b3db7131302407052cc4e8125e2bc035172a967a21a0582a05f8aae28228ddca417545144882ca3d644f6167ba30e91368879efac5971c8b1a7a9674e804c08e506ade53bcd778c1af4637584b9752aa1f16a4319d296b93e5368c10863a85cbb55c11c56338285b21cd740695757adeb2ce48b7c658a36b26b670e59947a0d94d022284bf0995d56666bd7968bed8858895c779a3318275afe42488953791e97cbd6256c29a6c6e4339a15d7a7c3da95edd2a562dcc2f6fe077cbd2317a914b975692ad1c3c3d956b26634fe1d2235d66226ba766a447bc87e8674800cd898b4b02c491658b97e25a4f836ab98a99c669b60aa4c30518a6644fb048a4e34822782644038ab04a3815c61da99816eaf388e495cde4a65c12f1bb5f02a1a1b1cede817952625fd2502f2a4b8bbbd4123e71462ee433ac923583c830cc54129bac51f96846d8fcacece9b19f6063734158008342c6f48234d24571e5777074170ae24b20d125f1ba311f4b33cdf91e3a2305fbe12e44ab54cc8c4eaf8553f697c00e8040e858569120bcd0166bcfe1a66e2500c3ab8acf3b58f1309c68772154602ba6c0968553ca553252d27a0b05733d81486d86c590291a643edcca9f8470d573880d5856a6b2cbcff2803713790d17297ef11549d5412713a3e4206b1b7c85483192164209f5b32f709aacfc4bae51f180edeb7e999ace2bf98d958514951362b08a6b529a2a7669c5492c0a61645542bc1dea0b707282a0797291b8c7a510884f12e92f3200ac5ee91686e109ecf245b2672f94c0a4525b7f43fba328099bfe4330888b186d026231d2b2eab7b971ba7680f0cb4653652f8aa8b4e01bb77461d792cd5e941a31dc02d52622b37c498e4169bc0418e23c5d32999726462d3a0a6449918b18db487f422849b67cf047bfcb0c6945bb87cd779dea915b64aa0975d313f8a740de77b0d40612459c2eb73a3fc876ac39c821a52761e13115d87bcd17052fea2b98d9d83ece9b1de7124c9738c0df539045279eeb21042a13791feba9d0e23445293eb3c2c194b76c5febb5582220ca350eca9b90435372f3c5baa0549ff847aedb815c244b27dc5866b151041e884befbc7bccca2fa098b592c5aef7f53e0d712bd2119214c15f8ab848a1864705d0511c50a9942535cf06952b0357445a9854240c026733ac8a39eb3c8bca2939d195763a572353da2956799448570a21d58623635f7a7461a913c24ad04d1495c1ee42c88b82942012b2d4b410fd1907799623f1b373b9c438d2b4c3fc48c054bc5206273f7a9a3dccc0ad8d40070ef20fe4cc99c8394adf63126006ee8cbb821b12a2a0a3018c4f8e52a50183fff79e84c694277cc3f47f319f88da508f841e536a056625f206fe499387d27307257682237f969c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5 + +# Official test vector 80, seed: "09fc004519bcf85b20d25d314a0dfc79e00cb6262a7dddf9c52473641afb8cfa0f5dd5f53558184caae9ec34b459e98e" +seed: c08ba2ef8c3a0a043afad931652d7a19e6e8cb670f840de5f1fa03309b2ca9ec5fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df +public_key: 190b29f6e7cc26755aabd20d4be75f2fa4c18303319edb00809152b33726b1e54c0f328c73c6805354925b43a6dbe0cadf00c9ce3b1d7fd9b47322c8b91844833250e0e99369e90c279ab48712b4e1c10c0456c754251cdae4cb4599843510be3a13277d775a3242a6232b1ca2979e6f260b3c4c86fc24bfd95255c765cdf6187854f0c9beb8cee6a8391f98475d6aa080a7a2c6147f70c2a9450901f705ab0ec23fc957619d611acc2319c6042e137496f51436a788334aa5a6d561a3e3a0937a37be9f7711c5fc6faa1024c434cc3e41a3865bc0beaa732c1789e7972f999007d4f7afdf953163197590e757a297919766428fd18ce1d531466a55109287c335bc26f946e06a4d51aa27b220001a46c2f4e339dd83511d135a9621c1ddf1083bcc9b24b994b4a3394df8ccfbcc743304383c300a9761859074a3d0e91cdd96a34513735a424238e71f42c328eedb1cdfb3ad704a1667c15045c534c448b429c474c494c7b37114911771d62c39d3f4763d881c0a21c074201301ea0eff13bb5df861ecd882a0350031b2af63572845950535e85fb323beebd613ba600702192d7cc1218309885ab9345ef32dfb757528229d73d57cc2328a5a86acc3180e392144c04cc45ca57573395ef38a95674b28ea7bc8684c8e6a81865a93256517be79fc456472976fea2538bb8b52a188cb43881c19ab47069b36968da1cacceab9bfc5c7985614a3fff7300e621e4865c5f8d30792099d3f793e58b591cdd87cfa36430aea876f30cca5d824fa29ab2b56ad3aca5d483c3c7ee90b4e028b7794592e1acae0fc721d355891c257cf821928104e1c994b8bc33eddf70c3cbcb5e272b43b5777b3921892ab198b4132ea4b200618b1e4559064d491487b1f0135c9da67a39950a5f13a1e6eb409c30957b04c645b052decc23a391a7692390de9085147c96c67f04ea8212c9d80cd00dc07b7d22826e01facca51dab91413e8cbaa24a66a00b4d2076d58c398ecf03ee56c40a1ac03cb02658e6240c41c6f06c174f3414e258a11478c7a76e05c156c1b164903b22991391955c3e75bcf0cc70d4cb79ea27638c54dcdcb1ef35b8f3caa26b0418f340597bed55d586981c77cc6093a889854a85132997bf706177099ee8b5ae44cc1f1f3c413fab7a51254490a6ac4175a99da866e5464283a74c5c300436ac1c7829c953128e5d17cb056af07b08d7f114e0be00f93854e09eb5e0be82a5a4c526030468f95bd82e08c2147736598a656476e5cb855e0c486d1fa0c661202a79b37357995ed445973959cf04116ed0c687227768a41a1b4f79b8080a740f012dd547403a30a36e62c9f5a1659abae73a165202122a330c61f492822ea25dcc22cb97c00a38bb7a4a493ae677cec267379c3a1b80ac2f4612221976ff4c7afc685283af88ef813a9beb73ef380be8a31c87135c6573c0d1d5807e63ca6f1418b947c1615233b911736b0870b766c9465cbb8b29573addb33f21a07cd890f1325c200545d5a21c5da1a0082b9c198158aa2b82cd5d94bf5718d39bac4d9096093c78a069b9210d305e9199d45ac09abe6a8033c971b2903874ac6408b3510d318ff4b464ef16ad3e56bd664cadab4cbc2eb1f13656c6547db33b5f529d253c85a728313bd36b9f09f6455b7594a10c1 +private_key: 2b006f1c2787d3f704935762feb046f67a0a59163ed30c83b577caf4667605730b11364a383366a74125df3526fbabb7aa3916e9a05586920f9b130ab980b2a940109552047e231cfc7a9ce7987d3d218c52a11c22953722e861a1f000385aaee23378c6372315e73315893fe0f027a44caeb37cc796ca1954b79adb22887b41b3e9c98a4c5a7101714f4cb78c9d3886393567016536a0706fa1c950dfb71af86b91610509738b3f6c192368416b1213ae508439c8c9c4f5382f926c6df08852e8955a04d5a8a30912c201483096bd202ba4b82855236b804faa20eff056e288cb699237a1e5150d027347bbc06412c972c0a783a1b794e7b2a3b45b7f842ad18b5520a143f4635059690df45b1f99bbbb0f18ad5be48006727fccf41d400430973b8f62481b73d611dbd13df47633c1a27b387398dc32af9e71a40c84cb48f131d8a7acf8d91ee2513f3f225a2d61b752e24a2860148ca68c3a75243200547fc054710293b7c7a939752959e6256cb29c0f0535055b18e2f78ec4da0bf9aa91caeb9b5c5150ad42a867c18dff50b2a1e8c2d31951d5fab52aac7d603500d9fb4b5f516fd26bbc51a622751636d2c2ba24ca5c3aac696edb821b237e7fbc2414e7cf2388644ff702821ac1e2068c76d0717c40bfc47c7f96077504d5b9b2c7a187c0c746e904cde556bacb9cbeaaadc865ba93d4837b42192b539e6de749692916df131f26c26f4b3c93fdbb33cc8b39d176a4b27351911b8b85b5567b839cc6ab5f65a3502cd994c812b72a2037e5e38f08ea97291292fe51185a603f94fa6ff6e247b8e3cc82a8b111dccbfdd715d7458b3d984ef4a17ba7314ffa8a069031b28e9b858e22900d364bcd095079c4c06a515599443ff5f434be754bad6aabece45a1ecc7dc5c95541223bf114ce60d663a3621b95826747b7005e94b8a84025fc43b8dc320964d2a610b7ce10b7c7d56c37dd647fe1920b876267cfc0607a35700cc51a3187b69c488d34816753607bc22b59aef9c3be78a2b7959ba69212be46c9411a4c1357493a73a50930020fc732acb44c036602c22341d5039dd99cc53333091e983c1c1ac47607b5e47727d1d8a313ca73e1b9c47a63a257e1a5c01ba55b802274ba8c3a35c8427c9130c71d77165e00f2a723da6febe7a17d89cd6319718452be2a80777f1469ac36356e73ca7ef420ff64661161b3eb459b33c694a6399015716d8d7b3b0669648d2331edd6a9e54933a5447946465fc21b51c31328a6763829100d02c9407a8ba8bd150e540755e210102dec9fd9a06744ba9476d0b6252cbabf718c4a917fbeac293408531c46ce91402c91b10a3994883dd83fd0c97a952441fd6485c8c34f8116b1fd392f706150fa0867bd0078b0e32ac7828b6b61624677b55c18aaeb494794b1632e686338315c92028b3828598a4ac462646349f17abe582440e39ab346052219537e909e8e80135303bfe731ba04caaac6cb89b3c37558243d97881587f45de25b128f9568ac45b4e3f39ddb861ccb0749ec3541619b164163c77b7397da453f57377c49c2a8a78c568e300a635612b7c95035f4c71ca174e7653ad15601bfa46be017610240b045032453b51ade516f190b29f6e7cc26755aabd20d4be75f2fa4c18303319edb00809152b33726b1e54c0f328c73c6805354925b43a6dbe0cadf00c9ce3b1d7fd9b47322c8b91844833250e0e99369e90c279ab48712b4e1c10c0456c754251cdae4cb4599843510be3a13277d775a3242a6232b1ca2979e6f260b3c4c86fc24bfd95255c765cdf6187854f0c9beb8cee6a8391f98475d6aa080a7a2c6147f70c2a9450901f705ab0ec23fc957619d611acc2319c6042e137496f51436a788334aa5a6d561a3e3a0937a37be9f7711c5fc6faa1024c434cc3e41a3865bc0beaa732c1789e7972f999007d4f7afdf953163197590e757a297919766428fd18ce1d531466a55109287c335bc26f946e06a4d51aa27b220001a46c2f4e339dd83511d135a9621c1ddf1083bcc9b24b994b4a3394df8ccfbcc743304383c300a9761859074a3d0e91cdd96a34513735a424238e71f42c328eedb1cdfb3ad704a1667c15045c534c448b429c474c494c7b37114911771d62c39d3f4763d881c0a21c074201301ea0eff13bb5df861ecd882a0350031b2af63572845950535e85fb323beebd613ba600702192d7cc1218309885ab9345ef32dfb757528229d73d57cc2328a5a86acc3180e392144c04cc45ca57573395ef38a95674b28ea7bc8684c8e6a81865a93256517be79fc456472976fea2538bb8b52a188cb43881c19ab47069b36968da1cacceab9bfc5c7985614a3fff7300e621e4865c5f8d30792099d3f793e58b591cdd87cfa36430aea876f30cca5d824fa29ab2b56ad3aca5d483c3c7ee90b4e028b7794592e1acae0fc721d355891c257cf821928104e1c994b8bc33eddf70c3cbcb5e272b43b5777b3921892ab198b4132ea4b200618b1e4559064d491487b1f0135c9da67a39950a5f13a1e6eb409c30957b04c645b052decc23a391a7692390de9085147c96c67f04ea8212c9d80cd00dc07b7d22826e01facca51dab91413e8cbaa24a66a00b4d2076d58c398ecf03ee56c40a1ac03cb02658e6240c41c6f06c174f3414e258a11478c7a76e05c156c1b164903b22991391955c3e75bcf0cc70d4cb79ea27638c54dcdcb1ef35b8f3caa26b0418f340597bed55d586981c77cc6093a889854a85132997bf706177099ee8b5ae44cc1f1f3c413fab7a51254490a6ac4175a99da866e5464283a74c5c300436ac1c7829c953128e5d17cb056af07b08d7f114e0be00f93854e09eb5e0be82a5a4c526030468f95bd82e08c2147736598a656476e5cb855e0c486d1fa0c661202a79b37357995ed445973959cf04116ed0c687227768a41a1b4f79b8080a740f012dd547403a30a36e62c9f5a1659abae73a165202122a330c61f492822ea25dcc22cb97c00a38bb7a4a493ae677cec267379c3a1b80ac2f4612221976ff4c7afc685283af88ef813a9beb73ef380be8a31c87135c6573c0d1d5807e63ca6f1418b947c1615233b911736b0870b766c9465cbb8b29573addb33f21a07cd890f1325c200545d5a21c5da1a0082b9c198158aa2b82cd5d94bf5718d39bac4d9096093c78a069b9210d305e9199d45ac09abe6a8033c971b2903874ac6408b3510d318ff4b464ef16ad3e56bd664cadab4cbc2eb1f13656c6547db33b5f529d253c85a728313bd36b9f09f6455b7594a10c1beaeb6ff178f3228defdd117e6ba75a34abb70e86f31fdb16d74d91e6c1b47a75fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df + +# Official test vector 81, seed: "e3c41cca6f04cfe7732fd54de30cc5caac93e2f80e76aed7d24a962a3969c1b6a311459a3ec3e510e3e9b1e4291d4d7d" +seed: 0e3b30e102d707538c2671060f603bb0b8a014103f132d63b09ece07e4a4c75b11eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c +public_key: 8dec41fe4093b014449985121e134c925b37b11612a9c61e97d5863f81a83f903383a517d1ab1769921563b86069c9c20841481be7a75311cb1b2c74f4cc96d2aa916509cc24d33ca7906aad07938e701177b42158c19ff3040389894f5d4c9cbd608c8234cefac9bf75fa177d5669f45a195f420b189bb340ebbba649996863618366766b7c990c6001a397b00b71272cb1734adb60a5b1523fb46be42752eba4bad8d6b008883e2697747ada77635174d5f7abc89157acc61202100cf719c9b8c5bfd7409fa95641202384629b925c240be94889bdf96bdc176e4dd3ad75f7b2e4c2abc9ea8280f07df64a162d016db3a634071944f6468e00aba03255430375660bd2c413a0b3cc530de305948d783afd0a41b4a202fcbbb620d9bd47b1181859b66f922d0b5c464f71ac5682829c8c6f4875bce8c37c5212113cf77a8cf480660b0ad108a0b67c063ed52bba442567ab31b30858cb33584d5422ed7427bf085d163005bf182c90c96cbc89ca70591dd0606f95dc6acfeb3315274f7c4937ae511963e90e6d03646292743a4178a6f344c244194f989e1c34be06a09bd5086c73992da8528caaba4fbef1502c1abb01b145a7a825a971a001055e2b1841725cb06eb23625bc0d99f89c1998023d760db1960a751988529628b6aa54308a3c895688047a003c089ef4a3232fda6aea0194154339b75a0a25402212211f3eeaba98cb656925c34f46037a436f89e01bfe408c138601e3a490675abf367194b377158f131b12740636b92bb5d184c05a23cea0c66519b2e8b094610655699976538471d77bbb3a8613a3ea1ee7b22642d63611b498e302540ca71e9b5c1aad6bbf309a13f9ab5eb57a5670fa9244280867ccc48130c74c50219da3168a26a52001713ee7b81157a6392199fdb4a56631b2d17890e6b0bb82051b9a1c85ce8aa92a2557ffa499c8910f7e98c3b4681ebe6323f4794e3e7324330a710b6a87186c36ff04602fccb97a7842104547264437921b413d52229a1555226a3bb3f090bd8cb09df92f4b4093319c434c04a773acc094bb205062903adc121ff6c178aa5d02f4b401e2b43bd79966d83a014bc8a8fa8347e1a9e8c6947134b837f019b05124279b26f20414fe326f3464929105974a853961a6b55ee90ba8d730be6a51fde90b4c23753bd9728077b90bf1c656c0738946bbbc5a2d72f95d876437c659b1bc663f6ab2b9026ba0401ac168c05933dc0509f7390ce8a024a3a1267217bae20c0d26c9d824182bf67ac60c0b121184a42c89da7a1f2de023ee6c291dea37da360b6f912eb95727e0c83efe0796d603b1c4702b2532af8d34053e1c70f8b73d5874578b3a2a8108b12e603d8cc1637d54bccba48f73d08f63c12fb8bb2e40938456c46209b262d8f08fc9b576d463329057a7fcc86652008832712e15e31eba79cb33a58262f822b9b8abbe8c4a025729dbac6f4df64f14c9959993004e0a4398b7c1e049120d404fc2683d65e85cd279b8d9e9595e995631f3469ca25412a54535c569d80c2a09117733f529bfe9a9dc766c8da35bdf0b64d1c27d0fe31ad736c06a92186034468539a3adbbcf0e67af4e797b63a0494cd91d2b9b89f8d486236b9b24772383d81aaed73286e5dc6e35a1dd0121b0a362d8c94022a515340f +private_key: 13276431f3634d420a374a0ecd8b81c035431dac244df1ab3405626490c7407599ccd4c146c5b79653bd845286aca5c7fc13a527784bc0b0b0171261409978a4754fb612203267804a524e81772ba34b99a20047f642363f928ae781c89a7374fbc0abb1373cb3485ee31a76da703a8d39c12668a6e0869e558612a481be9ab6ac8c00109f3a184f808b1be7566250cd36cb38b57771083c64cdea6fe5e9aa02f5cd1b6c08272078745424a7a11fece731fef736471674506b9bc56707dea19858860825a14fe820563cd70dba44b57932048bf50eb27b76d8405133172ea16a5b0fe77bca259cdd46414f13425616bdbc006ea23b21bedb23ea86a099dbc48b4746ad35830d694a218b0e233842566b9dcb18822f9301b8d7a6fc2a4555278828ab27bb74b1b3cbc19b343ea64904c35c67a1ba1ad4f9cd44a2b2887b4adad130ba263321469a4f50c6a6f06b29047a3e253a19e21f3c027c55091d7777aab2b955546b58bb212d87f9361154837460966a80881e967e379a1365aa96cad80613b2cb0a34979f6c1d00e7010fa2456807217abbb1df6849be50bef9a67c973bb14f8953e7597360c076d5290f0b1bca76f02d6a600dff97cf1df0ae59ac851c29a0f99b17759182002c8141d20166f8bf1979321c1a6234b608257b6bfeba7ef679b837d6a23673a122cb1e817b5fdfe9904b1a2f953906d7a585f074af3bd445a71b431f776008b133d6269caf16b306d444fd819b4d4783828266bdb13e0807409aebb11d867667522ea606a210f68d6288bc3a484cc4464706538712921e107885834b4ecdc44af3c866ee0504d191724e5704b8b20795b6520f0cc8f1d89ddc46572024294503735551330e887e6b71bb47e97aa498791b735733a8a81d962a68d32230f0c4403056b065b379a44ba61188c7f102511ac0d894b6457402fcaba82ff0c13da32ebe5785b44b937fc020ee1544b95228fb6447e862803c941705625e0758ab5d1c3e7d771780ecb188202b23972c9dca283beb4f3303064c922d8ec8081b9529edc163affc3f585274ab0143060527d2050b34842d15d1508afa2af069744d7620e02c2fac7954bea06a1ba04c28b0287bf71ccb809d7c966b9f94b05906b003b77a0730a787610340c600ce3b4f1ed9a4b5195355501b5720498ab185c75740f2184f5a16c18b7bb58bc120a030b5d20240d570545f349365a97bc387a6bbc2c001151adebc0375fba522b7994fa4a78ff6390507ccfb8b47e208b70bea1899512fb068a9db8b262235191f6403ca5b8517db25cb8b202085cf6fca6b6e55a75dfa7557a43116179ab5c1510f887db6a9c5e8ac41fd5010c11411d8f24529674a97fc666c565cb7469aa7c8ab943606880a9832dac41fba34f3aabcb1bb0050c66f4c5b53b6892a43ea98eff429f4f6206c06290cdb504029b29752cd75fa4df4a59c5919607616c074861f3c00c18f1ab27c190937fa9597c165d8d61281873bf1eb36bdaa9f95360e54f5b8b44542f618bc99077cf75c2fe4a04efc112eb2618fc3424ae296ba1ffb9a92726bf0bb7d74960868494bae529438c898ce0c95ae47415400aba6c47ca4b301a64b97777b7209039a2403758dec41fe4093b014449985121e134c925b37b11612a9c61e97d5863f81a83f903383a517d1ab1769921563b86069c9c20841481be7a75311cb1b2c74f4cc96d2aa916509cc24d33ca7906aad07938e701177b42158c19ff3040389894f5d4c9cbd608c8234cefac9bf75fa177d5669f45a195f420b189bb340ebbba649996863618366766b7c990c6001a397b00b71272cb1734adb60a5b1523fb46be42752eba4bad8d6b008883e2697747ada77635174d5f7abc89157acc61202100cf719c9b8c5bfd7409fa95641202384629b925c240be94889bdf96bdc176e4dd3ad75f7b2e4c2abc9ea8280f07df64a162d016db3a634071944f6468e00aba03255430375660bd2c413a0b3cc530de305948d783afd0a41b4a202fcbbb620d9bd47b1181859b66f922d0b5c464f71ac5682829c8c6f4875bce8c37c5212113cf77a8cf480660b0ad108a0b67c063ed52bba442567ab31b30858cb33584d5422ed7427bf085d163005bf182c90c96cbc89ca70591dd0606f95dc6acfeb3315274f7c4937ae511963e90e6d03646292743a4178a6f344c244194f989e1c34be06a09bd5086c73992da8528caaba4fbef1502c1abb01b145a7a825a971a001055e2b1841725cb06eb23625bc0d99f89c1998023d760db1960a751988529628b6aa54308a3c895688047a003c089ef4a3232fda6aea0194154339b75a0a25402212211f3eeaba98cb656925c34f46037a436f89e01bfe408c138601e3a490675abf367194b377158f131b12740636b92bb5d184c05a23cea0c66519b2e8b094610655699976538471d77bbb3a8613a3ea1ee7b22642d63611b498e302540ca71e9b5c1aad6bbf309a13f9ab5eb57a5670fa9244280867ccc48130c74c50219da3168a26a52001713ee7b81157a6392199fdb4a56631b2d17890e6b0bb82051b9a1c85ce8aa92a2557ffa499c8910f7e98c3b4681ebe6323f4794e3e7324330a710b6a87186c36ff04602fccb97a7842104547264437921b413d52229a1555226a3bb3f090bd8cb09df92f4b4093319c434c04a773acc094bb205062903adc121ff6c178aa5d02f4b401e2b43bd79966d83a014bc8a8fa8347e1a9e8c6947134b837f019b05124279b26f20414fe326f3464929105974a853961a6b55ee90ba8d730be6a51fde90b4c23753bd9728077b90bf1c656c0738946bbbc5a2d72f95d876437c659b1bc663f6ab2b9026ba0401ac168c05933dc0509f7390ce8a024a3a1267217bae20c0d26c9d824182bf67ac60c0b121184a42c89da7a1f2de023ee6c291dea37da360b6f912eb95727e0c83efe0796d603b1c4702b2532af8d34053e1c70f8b73d5874578b3a2a8108b12e603d8cc1637d54bccba48f73d08f63c12fb8bb2e40938456c46209b262d8f08fc9b576d463329057a7fcc86652008832712e15e31eba79cb33a58262f822b9b8abbe8c4a025729dbac6f4df64f14c9959993004e0a4398b7c1e049120d404fc2683d65e85cd279b8d9e9595e995631f3469ca25412a54535c569d80c2a09117733f529bfe9a9dc766c8da35bdf0b64d1c27d0fe31ad736c06a92186034468539a3adbbcf0e67af4e797b63a0494cd91d2b9b89f8d486236b9b24772383d81aaed73286e5dc6e35a1dd0121b0a362d8c94022a515340fb2b71b8aaccf14842a6d4ecb713612f801a5044147fb9e6987ad3863759de31e11eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c + +# Official test vector 82, seed: "373fdde922cfc416ed96b444e445bdd0962e8989f6c50adf9912a89937c57217d3600b06c95440448e3f601ae69ca5be" +seed: 2478f7d3de6041e7e5cd11c5e2ef483d1aa6218eb126444091535f6ae532fa7311136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 +public_key: 86335a761609caf862810ba70e00c83da3cc1c208cd893233c8ac3247b013417cecd467e9cb87280aa13b061bd0a661034ebabe9ab6e7a447c2826af3cba6798270a36f7431ae9119de2245704110d159aa438a6f1546a39286a7a179c5f286073d5b944ea2000ab61fcb9373a4a94dba5c9baa94056f35ca1810106f2ce65b579c4744f94955db4730265053b812634eb5156ea819069f6371040408a2036019967f4163c1ea611c02ba295a51581644dab07872d1a5b21a32d0ffa349e3739d961a9e9bc07b6d8cba3b945be491958813600e781ecf54912d70e37832e05784c5e12271a5aa5d628233062305a28493bc2b180d802423aa4f75cb6610c16e8798cec72253798b189eb217238b5d063224f78114715818ac4ab40d34042860bee445fa9b1b02dd5a7c7b6bd8b03768e7c38282806e5fc7a93a9094246a403111a39bbb89ca4ca33f9b381fc8d6447450d3b4f6c794b565b2735f8014fe35e78a94780bc1557bb380db47d25791b1283094ce08ae4ea9961882d134bc5579aa9fb44127e2670b85001d58a162e38680d3c8fd2d3517cd4b36aba9bf1930f3d4c067f2a5b4dd702cb9b9e138bbfa91c0f49a86ba283091350a2ab3c1f3c75ca20a4a160318cf88849ef2102e47211df95a2fa325573f60ee7ec5e70d3b88d291cf9110b9906401968462d2ace979a825b088f7c2b330fbb5f15b1b9f24b84a646cc6a9b27b03767978268cba750b5429823e7ad3a00a4e813052011bb0f47cbac838a489c568391c7d05457f4033814bb9d52a011ce787f0df2ab1bc885e293bf23900f3fa019238b7447561eb85b296930232b175379f289982312790bb65743cfe65017be280063c19b033c19eb988d5a827b64777eb8b13244a9b6763c63523a6af78672b652ac38f33f2a870c494b1dd34a9af239556ed9412a48a7b3501daaaaa976daa971c1565f37be80c33fd3126c7bb3aa09f47f4c9c503e2677325418ecd2058fc7518fc247b36c0c8f59427bd2311ca493510794cdb734cdf69c6b1a9d5c990424d819f35ccc8750b4750c43394605bb60b7c4dc39d8f71dfdf1c6da319f6d671aa170065102086665707b95ca4d241c26cb4acbe928d23318d372aead3a99bbd075b5186abe6590cf5278bf289050c13789f82476620472baaf258c78eeb7755f6c6b1a113d91da945a837f0c84b353f9aa1c223404a3c071a27c84a6ae90d31a0d254234a18656095bf989456cd9aec6a837df6880c9ba79476431929c9b22d9bac09acdd8d94b7a884e261037f1bb5335f98c4c491fece5ae0a485611a50224809d48aac84c16957221924d3c2d6500107e71bab5580339b0832e0292b89a3f25bb40fa0445f2b3122f97856f739aabd568d1b0851b47ac947b25d2da6910d05b44e26088901d487cbdf2f782c2e35193021501b2cd264a6526b4aa6dd439502601fd7b203b088361e6218c1b72854648f4023199e5aaecd51a33990b74e4366c07818efcad158a56ed623f63c20e5ea3c519350cfe16b0dfd3af10a45755641a388590eb95b6e5158ac5bc4aabe686140b981cc5c2ac896945a4be089201b56744c439630b56a15b4a3591acc88f3c4680311c24d80b5725bba86cdd22a3732c6a1bf7cb10f14d57ee8e5901e46b97e63848efdc76368b797d +private_key: e5a906286950db6187780184cc302f14a9ad2f7a382d93403308b8676c20cccb52347a515303a2bd15336c0b711b3a31e8d0cbdb59bf42633823ac1df61c63633171282b537cd1a19a80160d97b9dba7322d935577031c081a035890be315b7a4275979691b612b764111ba6ac57afa50c29ee436af02131442c5704b585c663935ab698dfbbc882d23fb39c75370b8c199cb0da26be27e8aa6391b5fc30bdf077490bc677d6e631af504b9af2ccf7939536d819455b91ab172cf01639fbd47618b8708f460284abcfe6d21371dc3b00e579aff432c9417d33511d9a0170baa0a3695004edb18599118146d83ea548ccb0069a3379430dcc8e3d728eaea7433ed4a704987624d0994d454374f9218b2a08ec20b2b216482a1c820e8c5ce99413dd590bb042c9d294ad98408c407b88cf6b32bfe9b95f9a9d45a33184cc8b79cbbfb379639c9b44a128c211e700a59aa4ee034e1a3375dd216ec3e2447757c70a0b4ecb6b1677755c327914cc38b425925f9f910f4f618cfd425e5f55c4955b14b08c64f976068daa8e711a3d00ed0e47e222f201891f6c7c52f282a4d471cc199e68fb9bb8bc81766a457a6ababe254c4aa96546b96f56375e68c9a713072c5ca9b0d0d36b1f1b663613075e62071f97c6c2ab44e98a76dc767fe1c0789ef155bcc976cf1b879f1a151606b996225abf147e7cccb615243e0d0775e339c909e93477b9b66fb863e726a4f231cbb98435368abed797a00db8b4dea236e75673ad8b857206d03c50b0767961f67ba0b58a668a02680f57372cc8c175c6cac858497eabbb840a5d87389c7a623fa5707353438e7a4388a1c34236294370343f90c9b38f4ac28d187bbab21c3d656c4eda62dd8127771c8038b67c80d58edcf81f526344c48b29f73a5197b0b51fc29d19396b8b7295bf524d38371c71013263c95694138a27fb56670101b0f06f6b568b4c05c486043f53c44f321a9bd8827312e5537608b5a2d7123971081e8bb7a05ab1336a2b7eb487359bc8287c42add6b72e5635e9ea9455552eaee4c92812ac32e254a90669cf6728af07763fa3ba74ec0e1c8090f2706378bca30fa69c85e50a03e8326ea4917b6515fb887d3601c83c5b4f520804cd401d0c67cf229299cee141da094a5f117403f94465c62761ea05ed1016759c60b14c352b41c8ea619e5bcb167a851ef8842845abb4f7a6ad75fb610408324ea84c665b36672b5e58f985c3a45bb3f926f5c82d16d519303271ac83368d28b2dba2083350b6205c718e2bb4aa1518fcc3c76a9b02d678732b4bcb8dd4cd9c2526fa919ad5c9bca0c6171c1a7547772c957b74dcf877b1f62921c7a17a7a8382b81f44f2a6cf559b761bb58fe8031539c02bb3222332513921411c894819a2ae856b65c1c3b113b09a6ab06ad6033bd79227aeb397d90ab3cf5985bab7c826931184642ae25755f79667aee64918575118349ac0b19963549c17f71ee14944f98b5eed708b2aea5a305458f699505083bf54ec70b80ca1287715ac2046edea5ed722ab14fb8514e67e45343db7c91324357a99db343c735c918464b532aa2d9649d33a1cb38039b176bdf69470f1a1839562b94b3b7294a77c72cc5686335a761609caf862810ba70e00c83da3cc1c208cd893233c8ac3247b013417cecd467e9cb87280aa13b061bd0a661034ebabe9ab6e7a447c2826af3cba6798270a36f7431ae9119de2245704110d159aa438a6f1546a39286a7a179c5f286073d5b944ea2000ab61fcb9373a4a94dba5c9baa94056f35ca1810106f2ce65b579c4744f94955db4730265053b812634eb5156ea819069f6371040408a2036019967f4163c1ea611c02ba295a51581644dab07872d1a5b21a32d0ffa349e3739d961a9e9bc07b6d8cba3b945be491958813600e781ecf54912d70e37832e05784c5e12271a5aa5d628233062305a28493bc2b180d802423aa4f75cb6610c16e8798cec72253798b189eb217238b5d063224f78114715818ac4ab40d34042860bee445fa9b1b02dd5a7c7b6bd8b03768e7c38282806e5fc7a93a9094246a403111a39bbb89ca4ca33f9b381fc8d6447450d3b4f6c794b565b2735f8014fe35e78a94780bc1557bb380db47d25791b1283094ce08ae4ea9961882d134bc5579aa9fb44127e2670b85001d58a162e38680d3c8fd2d3517cd4b36aba9bf1930f3d4c067f2a5b4dd702cb9b9e138bbfa91c0f49a86ba283091350a2ab3c1f3c75ca20a4a160318cf88849ef2102e47211df95a2fa325573f60ee7ec5e70d3b88d291cf9110b9906401968462d2ace979a825b088f7c2b330fbb5f15b1b9f24b84a646cc6a9b27b03767978268cba750b5429823e7ad3a00a4e813052011bb0f47cbac838a489c568391c7d05457f4033814bb9d52a011ce787f0df2ab1bc885e293bf23900f3fa019238b7447561eb85b296930232b175379f289982312790bb65743cfe65017be280063c19b033c19eb988d5a827b64777eb8b13244a9b6763c63523a6af78672b652ac38f33f2a870c494b1dd34a9af239556ed9412a48a7b3501daaaaa976daa971c1565f37be80c33fd3126c7bb3aa09f47f4c9c503e2677325418ecd2058fc7518fc247b36c0c8f59427bd2311ca493510794cdb734cdf69c6b1a9d5c990424d819f35ccc8750b4750c43394605bb60b7c4dc39d8f71dfdf1c6da319f6d671aa170065102086665707b95ca4d241c26cb4acbe928d23318d372aead3a99bbd075b5186abe6590cf5278bf289050c13789f82476620472baaf258c78eeb7755f6c6b1a113d91da945a837f0c84b353f9aa1c223404a3c071a27c84a6ae90d31a0d254234a18656095bf989456cd9aec6a837df6880c9ba79476431929c9b22d9bac09acdd8d94b7a884e261037f1bb5335f98c4c491fece5ae0a485611a50224809d48aac84c16957221924d3c2d6500107e71bab5580339b0832e0292b89a3f25bb40fa0445f2b3122f97856f739aabd568d1b0851b47ac947b25d2da6910d05b44e26088901d487cbdf2f782c2e35193021501b2cd264a6526b4aa6dd439502601fd7b203b088361e6218c1b72854648f4023199e5aaecd51a33990b74e4366c07818efcad158a56ed623f63c20e5ea3c519350cfe16b0dfd3af10a45755641a388590eb95b6e5158ac5bc4aabe686140b981cc5c2ac896945a4be089201b56744c439630b56a15b4a3591acc88f3c4680311c24d80b5725bba86cdd22a3732c6a1bf7cb10f14d57ee8e5901e46b97e63848efdc76368b797da13cb3f23ccbd9ca6a75823d1ba14ef03664560f397133935103ded2d7480b9911136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28 + +# Official test vector 83, seed: "16bef67f7ac3a755c59c816478b75fcc16ce5844db537791accd1ebd49d2824b105fd2e970f728c8f0cf16e439a9ae2f" +seed: 9d405d3ebdaf35fa8722de431b669722acaaea2fd10b814310b17f78b66147d16ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 +public_key: a4b21fef3306a34117e05c4f4736af0e8cc5ae6bc3f294188ae5397ef69f26303f9592a694e12916bb56e5aa43cef5c183e6ce00f78ef423c3a838ad2cd3c4f68c142eb23dd5f774054668eff212b2bbaf8274c7ad10cfcec5b10bb603ec6ab33c963ad2a22b23f7412f93715a3b0be0b1754ef383c2d52a5a16a22632c88a9635af81909d347e64715806f93e0aa26756b25a8f5984f8e298abc12be53850b83213960428562455d6a7bceef90355318b5bc78734864d1af0bf1393849ad715c711a5226065586b80f1357d961a9ba74999c8f47c7583675245749bc56152f1428910324f2706c8718208c4a13158360365337642279f5009ea86197109b78f0a037cc298f3085c46f68aab45379cf59cd504a9461b47268ba03fc7cf7b1aaf9d461bfb3a7e68b396419a44bd56462e7aa2bd82223a09c155d26dff3873a6052472d6796e24bb7daa3583711cc435a9b3d3463812734b700614396a6dac3c2d838ac103d04239c847241835768a2bcc3d6f8567f6c998b4e7ca8d30a81582686f211936087d3db54972615d4a9b0e1ab1765a18c753fb9513d097322154ea4a3f934c8fff8520af32ab05f26d1030888c0a1613ca74164793b5f798ee3c589684bfb115cd6740bdd5141f1a17393b191550192feeb3c8d2c0b4c37790091312fab615c6d194f076c49d01cb97190ed9d4a6bfe0957047933e2835353085ef611c6f9c1f86dc4366c45cbe2281b0910ae39aacb271c03260648f7c955e99367d1b130c85289d586272fa28807ccd909185dbd5999af47f79da95ccc4859e8a84b2983f0e9693b1dcb506d7b7aaf03f158759b8006511380b3aa4b46cd060f96c0e16060161698f26e073c2f74e9c5b31f9fb4df5dc0f3b0773470bbfb95135c39199f6f281280480ae88573284c44ab9b91f8942ad423783263927c5857d5832a6e1576c6a59e7b1a498ac2f5f71c51b4c9a36cc4d28c042dea588a4756740782b07cc245a069d42245943977780f11eac0c8221f9938fb05a5d096401d2a4bea8c9f46564af831c907c4fef6743ee482339212bea730113a930c0a5649951abba2c6a3afcc4738580c61a4730aac4dc3c84dea158365cc6c760b13ea10b194b2539a55da5f01ef6c55213815fc6479f1bbb67d5754161d4064ed1247aac8edc486a8ca1b311fc653da3be4fac0c81ac0fa54b99030ac2f824598ecc699a31973ffb34648183cce8cfe6495723975c7ed7cbc5281811462cc1ac48fd9c5ca3da126b8125179b651a95b7749bcf711a018eaa951cc078aff16bde9a2f5b180ebee3032b5b2826ec83af147af8288470b267a97c5ab0244d3fe538e986000de3807132937a811de5228bfdba209e642fa3095045266e11f46e99f1b1eae584dcb8805d7455d3435956cb1679b8afe26ccfa7224736998aed363c0d82b1d23b339a16abb5e60dd447bd78c80e6657bffef9bceb18a0c8e602936ba32d24871d6470c338921366a009fbade8f4ab940bbd22158ac5201f09157d0c010825b290581b4108573e720acaf53344fb876db0bbba53d14a26dab409f137535a794294814e2b3f8f42c09f323e072b2519588342448e24a769af363293f4c8786ba4b70330bb80f37de30dba857dace4b8291ecb2f6ebd5a06323b11a89242da833741e9c4 +private_key: 2556bbc99ca8edb774f8b427981046c94cc902f20c2c9b1eed7555f800aeae621cd247555b383508a8a601720695b5469f21627e0aa9c7185557718de0a16b920454a642152c779be09307dcd0aa6fd97909e7227ecb7db209aacadb7d1bf5ae03cb2d14517861b2be3e0936b47b7cdd488e22956b7de9ca14b52e848c90fad497f6d1bdb42c799d8a9b51f0c9a3e3835181a2d3ccbbd95785e1e3930b410f955a311fa69ae39b9a240c50c221c61d687853658c611717eafc14f8a27f8cd190ffd433d9d863c530425da8072e467893c7b621260490f1497f4470b43507161b23729a5db94585a9d9c83a9554127ac9b7252ab4e100d346cbd7a496501979cd0b5317ea39adf970a490aa9f2b7e4ea8122900c1c882a0cb0162f9256cde1126df07bc4a30042c6587ce0b3102673e405b623416c06f9abd9bc62eb70cb794844a6a428ce8736ba9364882aac621d304b98799aea35287e023290335da841a51e4c1b2063f1198661a0c01315b2602712b47d16b5f2b19baf2a67fb13333dcbec5d9557ba4a2f103097f14be6c276f2a195a57b9b28b312c6967a3334851b075a7c3d2ac74d5897470286aeb4b29982b002d5751528c3ffb488ec4661bd58b275c229bacc62d85b8b8c560a02850ee24aca565ca30168721a182936ca8a6508226d64840903038c339c603233a9046733c0e15e016f6f080414734903bad3393c5671c5edee3cd8db0cc8aaa4927c78d51ab2309b1b053d700280a0bda9a5d268ac47d746ebfe01e6be91264fc6a180c1051a5a87038bce12a4d70930ba259cbf49039c0397845301f307922c763be3bf83fe34147e319082990a45102a1d328a0e90a8e56670577c14ad53426ce36b863e501062a5634034b98da407659b9e8f3a539907d511ace034ca15a91bc8ed3715be3c095b60b8332b6c068663d61781378c9f6d352adf794bab90ffdf330dfc77e492b6ca5bc53de21a81ac93db6b520cf3ab8b4837729f101b992c7057030271b4a7c6a7c61f399a2302155306ed3d8a0336c8081206f6dc09cd8b11bbeb89165321660a217d9f0bc770b2023832deb6492e961184827a2bffa27c13ac42844b3fbc14b0b96946427912432196e95ba949b29265b58fee38b93232afbaabfb1482f2307bda7a3004cf74fafba6c464840ced7bcd38aa764d67bf20a88e9a99549fb66ef1a53d1ec60ed744632c7875299b056c8c9375c6ef4f147ab9c8b1240822afcb68f028d4dc2be9da530c14a552acbac77d914c561c25284a9a4dcca04637048f29a99cab95117881da8404596cd0a28004a47a77f8623b4a2811ac6b90e5069d7dc82c829abc4b14ffe251507bc970f702341e382d9524672f88f33e16814977225659c8c321a0810a523d44190a7947a9b2eeba262fbb16a0ab35100385c238c55601363cc5996fcb46454c142c25046eb507d4f6287630babcf485bc5f19fd99051f12a3e683a7d89b21c2e903136b674bc0b1490d91548394738c417614077897ba9ba577f8ac9b584090d32973b4261c05385788be4b63783728d59cd5539413cdb537826aef3d304e8102c6a3b2e72e4185292c35ab60da55acbe3c6417e179c80f0024ef5113a2c42a4b21fef3306a34117e05c4f4736af0e8cc5ae6bc3f294188ae5397ef69f26303f9592a694e12916bb56e5aa43cef5c183e6ce00f78ef423c3a838ad2cd3c4f68c142eb23dd5f774054668eff212b2bbaf8274c7ad10cfcec5b10bb603ec6ab33c963ad2a22b23f7412f93715a3b0be0b1754ef383c2d52a5a16a22632c88a9635af81909d347e64715806f93e0aa26756b25a8f5984f8e298abc12be53850b83213960428562455d6a7bceef90355318b5bc78734864d1af0bf1393849ad715c711a5226065586b80f1357d961a9ba74999c8f47c7583675245749bc56152f1428910324f2706c8718208c4a13158360365337642279f5009ea86197109b78f0a037cc298f3085c46f68aab45379cf59cd504a9461b47268ba03fc7cf7b1aaf9d461bfb3a7e68b396419a44bd56462e7aa2bd82223a09c155d26dff3873a6052472d6796e24bb7daa3583711cc435a9b3d3463812734b700614396a6dac3c2d838ac103d04239c847241835768a2bcc3d6f8567f6c998b4e7ca8d30a81582686f211936087d3db54972615d4a9b0e1ab1765a18c753fb9513d097322154ea4a3f934c8fff8520af32ab05f26d1030888c0a1613ca74164793b5f798ee3c589684bfb115cd6740bdd5141f1a17393b191550192feeb3c8d2c0b4c37790091312fab615c6d194f076c49d01cb97190ed9d4a6bfe0957047933e2835353085ef611c6f9c1f86dc4366c45cbe2281b0910ae39aacb271c03260648f7c955e99367d1b130c85289d586272fa28807ccd909185dbd5999af47f79da95ccc4859e8a84b2983f0e9693b1dcb506d7b7aaf03f158759b8006511380b3aa4b46cd060f96c0e16060161698f26e073c2f74e9c5b31f9fb4df5dc0f3b0773470bbfb95135c39199f6f281280480ae88573284c44ab9b91f8942ad423783263927c5857d5832a6e1576c6a59e7b1a498ac2f5f71c51b4c9a36cc4d28c042dea588a4756740782b07cc245a069d42245943977780f11eac0c8221f9938fb05a5d096401d2a4bea8c9f46564af831c907c4fef6743ee482339212bea730113a930c0a5649951abba2c6a3afcc4738580c61a4730aac4dc3c84dea158365cc6c760b13ea10b194b2539a55da5f01ef6c55213815fc6479f1bbb67d5754161d4064ed1247aac8edc486a8ca1b311fc653da3be4fac0c81ac0fa54b99030ac2f824598ecc699a31973ffb34648183cce8cfe6495723975c7ed7cbc5281811462cc1ac48fd9c5ca3da126b8125179b651a95b7749bcf711a018eaa951cc078aff16bde9a2f5b180ebee3032b5b2826ec83af147af8288470b267a97c5ab0244d3fe538e986000de3807132937a811de5228bfdba209e642fa3095045266e11f46e99f1b1eae584dcb8805d7455d3435956cb1679b8afe26ccfa7224736998aed363c0d82b1d23b339a16abb5e60dd447bd78c80e6657bffef9bceb18a0c8e602936ba32d24871d6470c338921366a009fbade8f4ab940bbd22158ac5201f09157d0c010825b290581b4108573e720acaf53344fb876db0bbba53d14a26dab409f137535a794294814e2b3f8f42c09f323e072b2519588342448e24a769af363293f4c8786ba4b70330bb80f37de30dba857dace4b8291ecb2f6ebd5a06323b11a89242da833741e9c468302cc5af214ceda67ff8161b29bc300c4be8e1a4139437aead8a9ede3cd4ca6ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32 + +# Official test vector 84, seed: "d0611f9ae5be4da5d7eadc9109944348e716cb3daee545721eea8c892e7831cf2e54603146454cbfd92387739e9a78d8" +seed: 9a86490f0615f3edf789cb0654066e9ee339cc59f968281f3b89213f83c692edfaeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 +public_key: 2e248784527ec73160954a18dab4986fd146767bac1506885a7abbaf203fa7923cf3644b146a7687dc0f56329e3c64b052db6c14e3211cc560d9a70a1ba641224b2eb8e70e44b25b4b346f3037454aa69744d1777498c98ce741ac1008461868839b4149135b41817d135060acecca5af744e982142de574ecac5f1432a7d907628eb75439d8af02d37e5181681f1b249bcb22d52961d20458c860ceb3175730acb9b8c8500dc258fec13677f40506bc76f8eb31cc91a605e905ee839c3e0b771c32595a3238acc079fe6034769652e5cb492da0a3e8c0cdf13c899cd5838bb46a27e343bc62ccb6294c1619af96817d77ebc2e1431f997566485327cb9331a262153cd31c80d939d473b81feb0910e027b02c29cfd66fbed3cd09c11fa08744b9e0b62dc3093c2552bc7a770a0550cd601b2e6559851bbb5d8665865555ae510c2df9637c07790639c0af6b4bdbd567b704c267e6abf2b371f580686a1910bcc02b7ec3c08a7aca3fd121cda343a61c6c995742159cce5503b4996a7a6fab9e8dd5713bf62f3c0792628ab621741034208ca01c6130d3a3499a186fd69db4b3cb77417a12992e8e448fb75b73f4ca54fda42b2df2a4f9e14c39424bd1592b90968434eb8f52a6a1438cb7e589740c8b9b2b6123600b28ee954cf0d18dab1bb3fec8a0ff6379a4313325c7011f4c7fead33c8fb543c3c90b6ab35e01e31e2dd4262bcc92ba11ba055295b3f2a273620576813232876d1e9b18e22639e9c3759eb460390bcced9bb0e368c6cad846767c69349c59fde27405d8ccc900ac2ed762b1ab6381eac33f14aa27c047e5a63921030f8ee7055df00f7cd353bdc1487fc0875746b9deaca76fbc70ef5925ebbb994833a7eed732235b06e6ec6b28217c7d9a86a5396c80d43c22c56c19570238c70e7a7c2b6a77bca45785ccc31d8a880be379b05e45a1b9a8b3b2520826f888a8a025e28abcc4320bd1e30fdd17cbb3018a7a784534379c46639a21227d279b61da608bdf9bb9304b322f103a6a762db152548f192534a94df0ba1b2c97b9af8202dfc646a84270400cbeca95aada593d8f4719abb6cd4a4699787b92d63279fe9bacc0a989a59cb0ad279a567b8ca9536e8107aa7b81b2bf7730b9f4a470c8170655a0842602bc4610f9e7bbdc6acfbdc4732e4266083c9c91d41ed1f2422822acd01bab34c4789a63a700a5a135d65495841e69ca2f5334cbb1fc4c7d42b0f53bb63f888146163a51759c43349377ca824b32091e9b9c30e025981b82cd23aeb5385be7f398aa5025e87b605827328ebb32d6682896298f652243ebb3b8a6f759db824d3f577cfb8aa04627a80a03804039478abc2a627779d1c87fb23453ca254fb51c629f17c1edc8cd8c71aafa135051320f81c65b06711282ec6e7e4b021eeac0c3fc7ceb4b192897899f6c145f53bfa2d68a5b583002667d101a9c7e721f0da0711ca79df954126d9199fd6351be89225cc52d6be5c906860f6ac81c56477cd34c94ee43b920eb6cb62bcf27e5669f9160f0eb2ce7389b8da47cf8b22f46452961457dc39c54fde66a41f95cee1ba87682ca6342ab76f6bc262632282a22293ba7be9cc567700b5c13ac19f126b16a43bae7e4af067d280590ff759d4c3a502ab563080dbfe1df14ac06d254fc +private_key: 76c9ab126b3d022c31745279f6e684083a496be39aee74bb599a8b6de9940a26535a2600d3ca572edbcc37d721b7614824a123b4c6c8a01a0568b8ab61045c3339ad02e68f16d16c17ac572f9ba77d279d38636c9134c501b7c00518bd0e3293fa3a1612d16488c7bcc4cca7fcb5595191cf0d43c2974c0d8551a72d252896a8baa7740c419a1270e6b7145b053ff828344b30d5c18be9f2c633799970c44bc49c2c485921b96ba685ac1bd9a914bfa026a35bc1eec70b8562c9d825a4c7d5a60470c61244c88681af5804b587141dbf72bcbf7604a0705d655b00b89b9045c0a291a355ce68a07f79847a181401c028590788b7a2c3d95b84f13993da06556a240b16887b78e43c310928459312f196bb04a7bee1e0969d72264db1ba0fdbb54ed8c49c3bccdc44a9d4605db677002a0cc84402968cc7759743bf2ab97f0a4a67d95b93a5c7c51ff91201676394e69acc8aa6c88c17535cabb8dc07acdb239b848a8bd88ed0430e3381a6a92b9ddf04955dd06e01717f9036920ddcb33e017fa3103cdcb955b3958347a162f0db95a3b2377c4c6027353266a91876f698ee53787dd73bb9978c7984713deb0017fa1df2b10feef4c7ae5734ecd7ce2b043793b1a19655950799243eb493eac103fe0a174d67b728b7097dec31bf1188813b16c1129a27669fc557c0dea7bdef1303ad98b81e8665ffb009fe5440478267ab2310a34c3f11c88ef8fa5736b91cb2972d1ba772aed1b9fef64af7e547bee627fd9232cec559d4ccb36e8702379231ee5a604cdbaa53db415e0588958321709cce82748fdbc257535584d8d89dbd7cc2d857ce3ab498c31b74fa305d8b145184a906b89a28a82b071d8bc4c52623c306766a150606b63021919759c76102503c03478dcdd7cddf71042173c91c70682ae684fb488f6378678ad114d8e6c625087741e868f1176cd09721e9812d7bf5c63e21974201d0f2844959c898581994ab664ff6784601268b4589c20b4c9873e49f03856debcc266764339329b327e375406a54a0b4c89439116fab279d6b2b9ad0a09ada94a1d572ade29dff802813699026732c30167480cc2230283801bb2baf3cb3cdf88e18f79852a13269c328a555955dc04733e48582f0768f40168f468c83060d0f1bc735ba197cdbba40dc50cd38c53c2a3481b763935b1071879d77967598b2aa8aa1ad34863a6db84dca6628907723f9891a4434339dbcc19213bec2463c5b37b82bc40821f5a33cc391cba73e3c7aa397c71b6f835c29d70c226628fad2ad7014345098a55502a6bc75003b449786b9534ac31e8b6871c7c98be6ca03a974a0936c4598438bfc953b691771c93b83b87579ddb6bc6f5721e2490fa9e0b36bb26c7607bd4bdc003ac9c2b0f41b7b9b5fbe9432b9d7c164d938b43698271a991d4a234fd1bbb28b07b5b5206fb75b4ee75bb3a28539462c01cbceb619b3e2814e5efc79ecda14462b46782308a5e61c2696b71cf367fa421cafd1c0af5bc6b6a7bf07d3b504c05c57f184700572a777bb0c32c7b82212d6c783d9696e96f11a9af791857526be109141793c7b92823f4b116196b8695c0b00a46d521b49241452331a4edf2a56e0264505c0682e248784527ec73160954a18dab4986fd146767bac1506885a7abbaf203fa7923cf3644b146a7687dc0f56329e3c64b052db6c14e3211cc560d9a70a1ba641224b2eb8e70e44b25b4b346f3037454aa69744d1777498c98ce741ac1008461868839b4149135b41817d135060acecca5af744e982142de574ecac5f1432a7d907628eb75439d8af02d37e5181681f1b249bcb22d52961d20458c860ceb3175730acb9b8c8500dc258fec13677f40506bc76f8eb31cc91a605e905ee839c3e0b771c32595a3238acc079fe6034769652e5cb492da0a3e8c0cdf13c899cd5838bb46a27e343bc62ccb6294c1619af96817d77ebc2e1431f997566485327cb9331a262153cd31c80d939d473b81feb0910e027b02c29cfd66fbed3cd09c11fa08744b9e0b62dc3093c2552bc7a770a0550cd601b2e6559851bbb5d8665865555ae510c2df9637c07790639c0af6b4bdbd567b704c267e6abf2b371f580686a1910bcc02b7ec3c08a7aca3fd121cda343a61c6c995742159cce5503b4996a7a6fab9e8dd5713bf62f3c0792628ab621741034208ca01c6130d3a3499a186fd69db4b3cb77417a12992e8e448fb75b73f4ca54fda42b2df2a4f9e14c39424bd1592b90968434eb8f52a6a1438cb7e589740c8b9b2b6123600b28ee954cf0d18dab1bb3fec8a0ff6379a4313325c7011f4c7fead33c8fb543c3c90b6ab35e01e31e2dd4262bcc92ba11ba055295b3f2a273620576813232876d1e9b18e22639e9c3759eb460390bcced9bb0e368c6cad846767c69349c59fde27405d8ccc900ac2ed762b1ab6381eac33f14aa27c047e5a63921030f8ee7055df00f7cd353bdc1487fc0875746b9deaca76fbc70ef5925ebbb994833a7eed732235b06e6ec6b28217c7d9a86a5396c80d43c22c56c19570238c70e7a7c2b6a77bca45785ccc31d8a880be379b05e45a1b9a8b3b2520826f888a8a025e28abcc4320bd1e30fdd17cbb3018a7a784534379c46639a21227d279b61da608bdf9bb9304b322f103a6a762db152548f192534a94df0ba1b2c97b9af8202dfc646a84270400cbeca95aada593d8f4719abb6cd4a4699787b92d63279fe9bacc0a989a59cb0ad279a567b8ca9536e8107aa7b81b2bf7730b9f4a470c8170655a0842602bc4610f9e7bbdc6acfbdc4732e4266083c9c91d41ed1f2422822acd01bab34c4789a63a700a5a135d65495841e69ca2f5334cbb1fc4c7d42b0f53bb63f888146163a51759c43349377ca824b32091e9b9c30e025981b82cd23aeb5385be7f398aa5025e87b605827328ebb32d6682896298f652243ebb3b8a6f759db824d3f577cfb8aa04627a80a03804039478abc2a627779d1c87fb23453ca254fb51c629f17c1edc8cd8c71aafa135051320f81c65b06711282ec6e7e4b021eeac0c3fc7ceb4b192897899f6c145f53bfa2d68a5b583002667d101a9c7e721f0da0711ca79df954126d9199fd6351be89225cc52d6be5c906860f6ac81c56477cd34c94ee43b920eb6cb62bcf27e5669f9160f0eb2ce7389b8da47cf8b22f46452961457dc39c54fde66a41f95cee1ba87682ca6342ab76f6bc262632282a22293ba7be9cc567700b5c13ac19f126b16a43bae7e4af067d280590ff759d4c3a502ab563080dbfe1df14ac06d254fc149ca4d94813f81c792060502e09a88ea694c5de863ce6a50516cacb1c3f44bcfaeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714 + +# Official test vector 85, seed: "fbc38d7614d7718e931edb850d2c6f0c5eea9ee889b3e25bd69ac255d5b91e885d93e808e66bf9c88c655dc594da5792" +seed: 6dfd9b575872560c7bdc2732c4a28dac4db04e535eb8e402c3dffd145c09ce47a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b +public_key: 0055afab2b0f8c4481d2316c876607a02b744637928897c26c1c5762524f42a00b27d4ab7c198334a13750b8bee321cf5021cbe4536246a0879890ce6f042de3955e373c113d7c2e2df360a8fb5c76fa7f1f594b64b562d0c3b524756b2f94667de31f9a67aefeca35d6641d17d167d6d955d6bcc1709297c9277cf614423b212e96281f6100074d2c2209f976df6332285b3c412a8f618c5b5175302952366a5c67462b07fb74cecc5726ca861e47d4c599819d26329568c139ecd31b22ccac2901d0bd347ba5f10a51b69dbbbca90b574405d8c0600617e682bf81472018284a70982773434d07286b319ca4e3fa6b24b25171093cefa559aa33ad3a0336a1a18205a07ec4463511d3be9ce0b05944819b9647ffd94337c94b7831694ba31cbf8c7af238c21dc1060799c09bb8aae0a084cab07c3bb8502275398e05058b142794309e3bb287fa32a016f46e9feb9115f09a313970293b25e7d25c4abb623c1959d6246d7e00ba79068ea03963d9598fb2b04879c3379397b086960c0d896e419ca5f7667264e1907102329474867cf43a426b1e117826ca542cce64adcbe154f36637de2cbdbdd6c1ad7794a0c18fa339993e873ea54c3f92a68afe0445305bc97b76c61b3bc693e30b2a2b18a6cc28add35cdcf601554b17df39998516549b823ae1596d2a88acb9433433926af62263deb704a561b2f2397381228fc5b15bd93c3911db634b19cd7217508e328113d565b475393d95c7abe5a94fd6c1cc1283587b97db55109a08b1ae1060cecbb15675a253ea154ee19aa9ec29ec33400e4946b89b5b1b4ccd41362a3cc75808408f50ca8662b236f1830656a432e2193bc4f09ad1fc6a82252174a6530b3b078808c8798c9e110820c295797580a74572adb025cc31c75017468cae17c697a79df023aa250c827c11a1491944b9d6156d24b1f0f53c12a1aaa5946bda21485cd18aac0034de843489b7cae9ea90197cc471444067d01f873175693224c5368e3f3220ae48832c0928e65195510b5d4eba93dd3b217b79481aebc34f2123ce42c0aba83ece60034ecbc0ec4420de32851a998207f770f3e2bf94b047779b6187e083f7e04458c243d9125dd1641ec413ccf0a02811ab65d7d954bf4cc0cae00c384889d1b23405419180ec83d9ccc170e0bd6bca3e2682bf3471024445329a515456175ef6c167da459da6f3439dab20fb28bfb9764d5d9b9af055b442399361e91f84965fbcb31a4db147cf5cbd37b955fa3b0a34b78f8f4b2cf584c1f3646b5d7887a99b3847ba9010a69c89f52653c2c4fd2a6cbcec2d00392a1aa44ddad605d8e1595d2ba305cbc86b24a47725810a761c45c6cd0177262b2c85beabc07f5086ea31bd443889ae657c9528abb2769edc8cc74bc80943f92e88402ec231823e15112ff5624c982be7669010e31ac9494334488105eb88658339db648f30b3a08b7a7b5bd1113a83055f673a8fd6ca10cb4ce3c32645fc42ed24420b222d512c68651a0b99875ef8e913b984c709221228e51bd2c2407cd49a06e83f7f12c15d33b0252937f857beaf9ba79045cba8264d7706270d4787f6ecb8922582b7321c26da7813eb1c61a80038289cc84a923e03d7ae3cb232d5e0c1e7715d7b305d86d34fe89069774bf4339a1249be49b1 +private_key: 672a64b0079b3b7c18878338aee97b73d9ad10231709a4547941c0c5c1a6297367bce3b5d68b929f611c5ba26f39b199ca2a82bec9ad6318be48d75f9ec7cae3eb4d1732b8eb9a742216723b4bacea934113054af3cc752201859ddc1a990680fb573efc845a85dcab5c352dc701a45e5804a819644037bd095615e7389c2bbc49cb9bcf192b072b539d93fb993bb73f5f3b1549b13e5f90c8aa82991384b310bca58183116fa964dc1cc15c933dd9604ba6cb83c694132c628ac0901c5fdc45c808c2d06947008515ca95c77b486b1db3406665b0201498f721588335c55d2366eb7867ab2a8debc248df0caa3e637643455f7ce625f9f0b43c8787fad449f9214f78551f9556272f7a7040687eb185521a1a576f201373c61840b346d91b94ffca34df0045cfa4b5364432c7e2344a837d3c09c21ca23a957038d8eb30dc91cd9b25837155663b923b6f6766a4555475b04d74f350cb2640cc07cce818609033a8730b0e7c234d9b8b4f7d77cdc095c11e0c8ef16b3eb63c06f72514b57501dcf04ddc162096b99e6b1036ee0118975932041a5d5ef118e62b0429d4117d89b72924afd97770fcacaf9bf92824b9ada2674dd4ac40dc8471ace7102d13058a740246010a685b9814216a295538dec1a9289473aeab46c6e3cdff4335dec9055c5baa481918bcfb0a63cb7e62123e19f1939c1030ee95709dea6844fb978410989ae9b2666984e38062a1d066fb91b362120c7f3bb5488628376b1c827b50fb11b3e4a630c52a32d5a40e671ba0e99269ef09bf1eab049ca04ecfbbc213b74ac06aa790a85757a9be1c852199e7ca0ada5e07e7ccf352b3f3307631e30c604bba95d8aedbc44d12f73e7f51b4b8537e5db967d2738e3a13a33149c00ed24560753f34b85b85c535ce644b15e046b104b23b3c51562c47dbc92f2b44ad0f1890f98044ff3092498416996886c55cbe1812aecc6aa3d08a4f89c62708495eccf13c02a6b2b202732888297b3aca8861bba2e1cad6e7658686ce07da3580232b5b75c61ae1ae72a344293855f47a3aad11c4b716c211128091065a07439a40abaf2d62c674d40a6b1468b61ac2e22acccf25c0783b5cdfc60a47131f0bc6133c55b92e246b9c722ef680bc0ca12c7dc1c46128863507781937b9e02b5355d2b8399c31b6a80ec1137e5fe9ae01d980e0ca647a7b3678006c678147529a32df269dcc378416b14d61b240c4742247bc1b77eb905c6889fa022910a974f262733ee14b75b302e5148063e5ccf3984d073410bcd9096c38aa99c14dcf69aaa3fb32282352fb4a315b736774558753d7a1615c9fd5d30904e1186162a2dacc96003841934a40dd604983979838fb5382fa6dee1a4cdf3063326503ed665fe3ea84953b522872c36e7888864a0e55f3466bf20db1263cc0fa91660561c6f3171f45c2bd5652c95359e0150988f58ab5f69232008b62114195f570a3dc9c916073373540538a56e22b4dba234eb315bc15b3c89ab64a9962282e3c20baa7aa540c8273b83a39815131d24e3643353e5a4df3e986abea49bcb2b96be28a6c4998ce24278652c59f0c5e6c39a52a7269bc769dc6e3b75bd34e7be7c4f86a93506b0510310c0055afab2b0f8c4481d2316c876607a02b744637928897c26c1c5762524f42a00b27d4ab7c198334a13750b8bee321cf5021cbe4536246a0879890ce6f042de3955e373c113d7c2e2df360a8fb5c76fa7f1f594b64b562d0c3b524756b2f94667de31f9a67aefeca35d6641d17d167d6d955d6bcc1709297c9277cf614423b212e96281f6100074d2c2209f976df6332285b3c412a8f618c5b5175302952366a5c67462b07fb74cecc5726ca861e47d4c599819d26329568c139ecd31b22ccac2901d0bd347ba5f10a51b69dbbbca90b574405d8c0600617e682bf81472018284a70982773434d07286b319ca4e3fa6b24b25171093cefa559aa33ad3a0336a1a18205a07ec4463511d3be9ce0b05944819b9647ffd94337c94b7831694ba31cbf8c7af238c21dc1060799c09bb8aae0a084cab07c3bb8502275398e05058b142794309e3bb287fa32a016f46e9feb9115f09a313970293b25e7d25c4abb623c1959d6246d7e00ba79068ea03963d9598fb2b04879c3379397b086960c0d896e419ca5f7667264e1907102329474867cf43a426b1e117826ca542cce64adcbe154f36637de2cbdbdd6c1ad7794a0c18fa339993e873ea54c3f92a68afe0445305bc97b76c61b3bc693e30b2a2b18a6cc28add35cdcf601554b17df39998516549b823ae1596d2a88acb9433433926af62263deb704a561b2f2397381228fc5b15bd93c3911db634b19cd7217508e328113d565b475393d95c7abe5a94fd6c1cc1283587b97db55109a08b1ae1060cecbb15675a253ea154ee19aa9ec29ec33400e4946b89b5b1b4ccd41362a3cc75808408f50ca8662b236f1830656a432e2193bc4f09ad1fc6a82252174a6530b3b078808c8798c9e110820c295797580a74572adb025cc31c75017468cae17c697a79df023aa250c827c11a1491944b9d6156d24b1f0f53c12a1aaa5946bda21485cd18aac0034de843489b7cae9ea90197cc471444067d01f873175693224c5368e3f3220ae48832c0928e65195510b5d4eba93dd3b217b79481aebc34f2123ce42c0aba83ece60034ecbc0ec4420de32851a998207f770f3e2bf94b047779b6187e083f7e04458c243d9125dd1641ec413ccf0a02811ab65d7d954bf4cc0cae00c384889d1b23405419180ec83d9ccc170e0bd6bca3e2682bf3471024445329a515456175ef6c167da459da6f3439dab20fb28bfb9764d5d9b9af055b442399361e91f84965fbcb31a4db147cf5cbd37b955fa3b0a34b78f8f4b2cf584c1f3646b5d7887a99b3847ba9010a69c89f52653c2c4fd2a6cbcec2d00392a1aa44ddad605d8e1595d2ba305cbc86b24a47725810a761c45c6cd0177262b2c85beabc07f5086ea31bd443889ae657c9528abb2769edc8cc74bc80943f92e88402ec231823e15112ff5624c982be7669010e31ac9494334488105eb88658339db648f30b3a08b7a7b5bd1113a83055f673a8fd6ca10cb4ce3c32645fc42ed24420b222d512c68651a0b99875ef8e913b984c709221228e51bd2c2407cd49a06e83f7f12c15d33b0252937f857beaf9ba79045cba8264d7706270d4787f6ecb8922582b7321c26da7813eb1c61a80038289cc84a923e03d7ae3cb232d5e0c1e7715d7b305d86d34fe89069774bf4339a1249be49b1e5c52e639e5acd0fb97c7eb44df56df5250c6de7d171c467ce6887eaa4ee3d61a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b + +# Official test vector 86, seed: "1722219cb5db47374eb0af0232c856a57f026f1cb09e5a5799f4c333dd422ff6a0a67c4da502faae727fb2d45dafcf35" +seed: 6fca9f4e384d8418075cc064c70730801bdb8249899d456a77130d5beeb3662cce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 +public_key: c1cc248a969a9deb8ba9c43e80799f3e287b4263bda1a1055d152be8c84a4df5447b43295d0ba65d2a9b2d15a3b139507a3c2a44965e68e7caa4d9aeb4f67ced404305c81782ca49656775e10aa531f01c66793e198092e2b538df264818e7afdc94ab3cda837164cbaeec93fe2b8b59397482f084af51976bb6161c026761a22dd5a26457c648ed0817ff0a45fbc8c7e0e6c45767b7a720997ca60453785b73a43522979d06b365481a54e8124e9f4274950315faa27f5f8c50699164414398d72321a9d5c2181338de5187baa2c0c5097bfbc72945b15406eb1e88caa3ff92886a6a4fe2c8794700211ac32e1968643ae5a6c3aa309433cab3e48aa93a560fd18550f19831f6c74e811b8be5771244954da635a2fb6c314b9d77f1bf26fab613872d0a2098dff0b060516feea45293e28c0ed088bbfc0165a1906473063e97c5b2825100116793fb1dfc9447fe3227d96bc5e999cdf1f545c8753e4ab43d211c80ba9646e86651d928b0c9e64f5c2ca80b99914d878641a53a6a385acaab6d9b5690d11a8ef5a08c35e80c5df91463c76366282543b08c0bc3054ce07c32fc10ae021bdafcb744c20dd131c8d4146f1fbb282250941d8a1cdae68b4c5961a7a437b3251f144586aec15f505aa79305797a16cdf4c89209b02bdaaa0c0d367e2dc7097a9900bac5cf7063c3b2027ab05b204fbc997f333122798670e3488cf4bc64089a15a97f0c0a4ab5680fb9d5a9a815234e158316f31948b80ca33523e2303838d55ea2368b037a607b643ee8b2488ee456273158a3675b56967ce7b4a1bd2c22a91083e474ab9121cfa0f2bd1a24b27aa317c34b968df055deb839ef172ffd0489bc524109aa9897383f9cf0226810b56bc75b699187bbe86d465c7a44b65aa828c40ce76de88cbd6671093ca1689506657cdb6b3cc5a9a0293d16057e700a3bb7623e3ce1c8815b1d17066853b1cd807c0803f9a9fc2b62f637c99535a1733159ff79a863ba9203d57c80f0bbe02052e41004cd42388fdc695d9722bb0147c55510cfb9347127002fa9038f42551fe1656f1c4ba91c47e5fbcc5e83013864209290cf7d901213a26e1fa79aa7576c7c4103cfa01ec6e1459c9aacc449af7d10aca0a4171b284d4473c9af9a84546b03c7d5cea7bc723dc5032157b58431ba9a895d35f89274e827470babba0342567648ba84a51aa5a604b4c36a27c0b2710b2388b53085603cf62d9ea0a6a6864971323ed9e934d7471e65a4915ada5dd1e7482a37517cfa6255782ebc7b789c4a6d2aa746a811c0be90079f138dfcc812adac7c4bd862ddb83cf0d6b74b623b523318bc807163e6c98d777c7ed0628266bd53a29636b601e162466cfb700ed35b0966a7daf32e7dd67aa1c08e7cca8f18fcb7bd3104bb5408637c08eaca654b19523ac0a031b76968d71d9c013501a1350742467970c2813762c1b4219dc904202984cb49b33e91328b0350ad36b4a7650f7505b11b5c6f0520cccf788b87b5aef42b44b567c42555c74f40ce66cc9003730928e859c77099d8149c78588fdf0c347eeb6752b39b755122e715843ed2a859c02a81e7705127a52d53047f973952321d34d4278739c4bab50a5c344011cb196dba2bc5197accd11b3f6e5d57b37115e763177a6910c9866c85ed61c6 +private_key: 0bccbf3cf040d5b87d74815458749aace6c82dc66a6a7672e534a60474b566c4060ec61e23f5aa640245fb2817185b0b4de26ead3744f0373f4172a6095821bb873f34b94733e60dddb312a1ec916dc0c10aca85b65a9407547c133b1cc32205c7362f3e458bbc507ece9c7b13176f877336a7348b4d785c3de0641d000268a37929c254c826bb643117e36a3b28120eb67104d8ea4509536bb0d54d1d11720a31b4e20b14aa57a81f45b3133525d5a49eb1c59e9cb36774421149f734b3b7778e4b3a2ed20e5cd8a56636c100f7a704f5691d0383140a633ffbcbdc5324ff329f46e5afb27070eee32c5008637708a248593ec00884a87231b7c457d969ad8bb44841d5c76a35ab1fc3031e704cff9045f80b3a2b925af1714ff78b25e798218d163b17e154634c1141a39bf9d35aa7cc9bd2a56032032caf8a6c61319d524acdb42b1ffdfa0b6d70673de99972b21e046737b11850dfe62e30c40d2d7c212354ab529477c9345aaf8a0e840b7ba236c7a3ba508dc995e6dc4a80b77b6ce1c26f8ac42304c91c215698829137e446e49414fd91cf7b9034f5301a81cb4d3251a47c64979ea133ea16012b2c48fea9ae3eaa71f53272af878d356447c9fcb163c938225a53119b3cb914bf9b9b8bb40a2b99a6c4b6ab5055288639802df6810a9f28607ff0537b92a640ec4a2f222075ab917dd2bd49fb1debd6435257ac656687ff75bc70f7b62722664da57882fa1b336819d8367466e936a62724ddf9c6cf439d44282645d5b13d84754799ab7170bb13faacea545ec2e52394851c21c01aaa5b31f72247600a25eb05d00443b3b85c3c176450ced12a8f583716a93ec1cb9d8e03436f383a3af0322cca926dfb45554045fa903a5ae8be04bbcaf858a84ec35793aa9d03d3882ad873289a337e37aaad72b912882ad657bdccf82e65ca3e554ac1e16a44d609c62dc71356ac04536b7ed72ab0ffcc9981031f7ec68f7fa6c761d219a8a78fe7d527f82ba81592c89513b47bd41470e7110aca8b85b9042bf9b4f2e29221164bb21a0eaa30a624a285c15c92ffe3630f19c35f02b9b54bc0c2b958c1c088491b990018bb66996bfe868a55f9c000a72264a649e535bc5e5cc86b1079f556947a80a6352c6bae64a97ef3a1bb1b2886fc5e0d284f81534cc3c1a6403b8c2842cc5909bb642343fbbaaa17fa255723055f7644366c7f4744c01427b9d9d1935afcb732ebc6f2f6cfb8a6c492482e7f046b32a232c3d74472ca7cf64490f0f68f4da0b1d81650384a1288f374a2a9c0153805a2709da5d5154f79cfae9a564166c601d75d7fd3a434269497e41ad316adc65cb152148327f86134d085b2b809ce96b16f6c38e4b107a2fa3cf11b0dae7b37c4285f3f9a10e0009fc8cc1459cba60e38222648bd76a8c770282ff5c57b74f393a8d01c0ec05b4169bbf487769de35e4890382b376c030aa67b28a2a3aa4d8cc8ac6d96254dc7911ec48076247dc2db021880975a49b3995854c22b89f3b1b1d4993c43456bb647c8f83ca66d613bf3eb3b7da4a252a0a7e2e61bf82c20efb11a83d1b9d1e087520991636728318602d4f8c5b918763be1c1b1479035b2a52f4a194042a006b483c1cc248a969a9deb8ba9c43e80799f3e287b4263bda1a1055d152be8c84a4df5447b43295d0ba65d2a9b2d15a3b139507a3c2a44965e68e7caa4d9aeb4f67ced404305c81782ca49656775e10aa531f01c66793e198092e2b538df264818e7afdc94ab3cda837164cbaeec93fe2b8b59397482f084af51976bb6161c026761a22dd5a26457c648ed0817ff0a45fbc8c7e0e6c45767b7a720997ca60453785b73a43522979d06b365481a54e8124e9f4274950315faa27f5f8c50699164414398d72321a9d5c2181338de5187baa2c0c5097bfbc72945b15406eb1e88caa3ff92886a6a4fe2c8794700211ac32e1968643ae5a6c3aa309433cab3e48aa93a560fd18550f19831f6c74e811b8be5771244954da635a2fb6c314b9d77f1bf26fab613872d0a2098dff0b060516feea45293e28c0ed088bbfc0165a1906473063e97c5b2825100116793fb1dfc9447fe3227d96bc5e999cdf1f545c8753e4ab43d211c80ba9646e86651d928b0c9e64f5c2ca80b99914d878641a53a6a385acaab6d9b5690d11a8ef5a08c35e80c5df91463c76366282543b08c0bc3054ce07c32fc10ae021bdafcb744c20dd131c8d4146f1fbb282250941d8a1cdae68b4c5961a7a437b3251f144586aec15f505aa79305797a16cdf4c89209b02bdaaa0c0d367e2dc7097a9900bac5cf7063c3b2027ab05b204fbc997f333122798670e3488cf4bc64089a15a97f0c0a4ab5680fb9d5a9a815234e158316f31948b80ca33523e2303838d55ea2368b037a607b643ee8b2488ee456273158a3675b56967ce7b4a1bd2c22a91083e474ab9121cfa0f2bd1a24b27aa317c34b968df055deb839ef172ffd0489bc524109aa9897383f9cf0226810b56bc75b699187bbe86d465c7a44b65aa828c40ce76de88cbd6671093ca1689506657cdb6b3cc5a9a0293d16057e700a3bb7623e3ce1c8815b1d17066853b1cd807c0803f9a9fc2b62f637c99535a1733159ff79a863ba9203d57c80f0bbe02052e41004cd42388fdc695d9722bb0147c55510cfb9347127002fa9038f42551fe1656f1c4ba91c47e5fbcc5e83013864209290cf7d901213a26e1fa79aa7576c7c4103cfa01ec6e1459c9aacc449af7d10aca0a4171b284d4473c9af9a84546b03c7d5cea7bc723dc5032157b58431ba9a895d35f89274e827470babba0342567648ba84a51aa5a604b4c36a27c0b2710b2388b53085603cf62d9ea0a6a6864971323ed9e934d7471e65a4915ada5dd1e7482a37517cfa6255782ebc7b789c4a6d2aa746a811c0be90079f138dfcc812adac7c4bd862ddb83cf0d6b74b623b523318bc807163e6c98d777c7ed0628266bd53a29636b601e162466cfb700ed35b0966a7daf32e7dd67aa1c08e7cca8f18fcb7bd3104bb5408637c08eaca654b19523ac0a031b76968d71d9c013501a1350742467970c2813762c1b4219dc904202984cb49b33e91328b0350ad36b4a7650f7505b11b5c6f0520cccf788b87b5aef42b44b567c42555c74f40ce66cc9003730928e859c77099d8149c78588fdf0c347eeb6752b39b755122e715843ed2a859c02a81e7705127a52d53047f973952321d34d4278739c4bab50a5c344011cb196dba2bc5197accd11b3f6e5d57b37115e763177a6910c9866c85ed61c69a350302631bd506be010a3f42112ae4ea731d515d80c3a21fcce60cc4d945abce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102 + +# Official test vector 87, seed: "ac139b78fd16ca0f26d6d7f9e15345c888d857b1910cf38d883339b37ead2dcac30f7cf10176f23ff34b4488eb79437c" +seed: e58f71bf175c0550a67e00e0f7b3b7fc36bc2707bf0c93044a492626de36301a7f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 +public_key: 33e4a6bf137a2d5c4408040972bbb41342a6f2f97c6bf7b5a05a92ef1c69a3e602f5062b4d651b9af148ebe566059454ae71919226742ac151fec6623bd5531699282cd0651a1bb436d113202aae301a6de6c132dd020cf0235944d0a041f6ad92e404f87432bf3a28035c4f6e236ca6e6b56d924800667f8816839549535f1325ceeb5b0e194b89a5800819215737a40988a43336ceaa914800278944ba54edc65071b63374fb041f07a66d5781ee8492d35221c53495248365cc438b4a65a745a64585242878997853597ce1f45371cb1f97f8638837bee3cab372c024ebe4aa52455283cc2249d82739ea481d685204a61840c856617a210fa431a31b27532b5b0868c2dd0a1e2947aef0575934905ec50c33193c8cbf15c5bb4a89b39c63337b3f4bb3b61b0581fe2362037bcab4c62ee14ac3d8a70486789a6d9641b4a112f1336d7e613b13502de7d1bdd103b6a712bd4c9ab0f5611ba825aa5b344ccaf940c5abc296088893626120b4aa3c73c3e27520b6c6411aa745cd4399bdb627ec584ae3e2a9081c4125cc37f20107f70161975355ae779d74062d4ea062a36a4b63a20e22f3af346a57b37747d3d68a486133857577dc3040342ab2c8a38c9702c66276b5439c82465304f22ca9a316b6c078bbd00a748d9689283aaa0fa584fcb922de15c170412ab5819a18019cc9221533a691503a79c71c43de9453922264ce5994c78a3ce43a1595cb0c761291200b9bdd8b6dd037326e5b40d43717e6507b5f7bbbf71800cc7a1143e7101995ca2c2a06d3a501229a913e3b350cd567e59a03ac54c35a8cb0e4faad7402cf6353a048461649d4171406503d0380f543aae846a21df31c561451fb8707b6f15ae138a8d11b53b4820e97d1293938680546000c7552dea31d4ad50e914cb85935cbcf18821d22b20d309023018a667424ac7aa71532aef2c69c0dc545e3e501e5706bc1c19b5179bd4c4ab22dccc9269560992637a7887b996a6754721a2ffa97be2b5fc2a512788334871577f7530bc06430e539aa7ee0acab022607554e2a3160c2026b8f169cd3537f523b4cb3096dcaeb4413f93e8dd26c774c98daa269cfb702d3592984a3304aa56809b61f5fa4557a08c8ab20a634bca903f456c6e835cbf23f647a47971c3726ca216014459a96531896c8bfe74fd0eb074d74a085bb32bd57857054629a3b19d0105f5aeb5e79d10b0ce0ca1189756bd74324acccebf80e849969bc008adb76ab38fbb47c59cbbaa33f22759d5f879f178a6ec6e37309a15d70c286d7549fea354b438b48d4e73d6b0584469433cb86a74be82ccee60e4a0ab3296a31fdb9a66116a765e2828f3caa12da7e0a4a0a54d1ad9d141b98413c45d277a4e0a11732b9e6a816e3f1cfdcb62d11eb09406b83c5746032e128cc2897e3243840652253b7865a079309b7ce6a1a5b2007b775a463199c4a90358b416435d69bc7c6ec48a155be7570b7fe2626515a09037a6d9dc449e344b0d570be3cb7b70a720156858d8656c296b54c7377456d22ae66402c6fa7a4d2921666171352f56cc03a76365723682c5ef77437a5d16bf343972c43b10f56c5770cb8e9c2a955e89c35d932dc466b0c198874bb242e511f4f4d35fdb1eeb7c0006fafe38c636dab4728b6725dbf53e59cb8 +private_key: 88f007f412264252bd88a985188292640647b1b3cc05c76af4a6cf3675b42f4482d95993dbd327c8d4b863a8a52446c45e2019e983c05c5c95afc4a0ae860ff06189406c1555bb292a521ba8ea0ef46125e590ab804b42284b1b2bd3338e18a6d6077556fb4b4c39ced51a15568b9d0234112556385329375d55847d6ca3b3c3444a48282c166a218a1c21181b641936ee5527a9848567d5b2a0185e10ecbeaa87503a338e98c0abe960b6c0f129a8b5a532a3598d6a99d55b06cd37bdf8d7adfafac7291c00e07a2816c7ceb5d04461d503e7f382f0e2bcd3389d7dac197ee47ec1cb2261059300a70a34c4007b3579a26884fd771cbe0929dec5b2c7ba08047c99fac165905a7664f27536ca1a8995a976439cd67a7e4fec693ec8beb3ec2e1353c43538159f545bbed6612655762ae90f7785cb8c2051a4ba328ce09977d85434496c9eab763f796f77a94db4343888eb753f434a1906071ea765a07c7f21257d834681be97347ff20c45a207ff7968dc200b48909b62ca4e2caa8e90d1518e7373966b76b69b65b099814e091c2867374e4009b1a76355b2b04beca33f9949c3d700d1583f12a07ec7349c57ab810cd3471a818f8bd8c7e8656ad148561c82bfefb827c2423e92e792f6f79a8feaca75f663b765106b9376bf66b099135c1a553e5b3c0326b6774b384abee645b5cace1bda4efd521967678adf291b6e6602df992b13a0444e817576f9487de014cd563afc086dfe864c0f565a2304338e87232847c2c0885e008536e4cbbad69b78e73794999a5a3aa1096ac7789efb049f273f4e04a92b85304fda1bbfbcbbdc303607d85b4504b544597bea524b79c3c438dc25ca6612d434857971cf95d343ad31c7a8aa5875641d2773535a80cf0b331840a55290cca82b74be2f4915af544d397552d2678a9c771fc89b0f00d6a36bb6276c10c1de195a271b7cb34b971db38f27f071b7bb4c44358766ec23d9636e933b23907a08ef691e453958b325c6a9136e57d2555485ae036ba34a9ca1333bb07015821187538a58c2af375dd5a106c9e01d357b280f07cd7a08a6a9f6b7adc63ca50589cbf21a16e0b35072ba13d9792bc5555b87598946471eccb42e27c9e2a8641c5524cbd17642f41b38fc888914c5d3462da370738fb1a6bf61330f17147b87a8fd294996b3b6bb0997b3e9a076262e7206a879177cec22b51cf1b85535cb3d056e3b6190f528349b245e1fb524dd149d218c5b41b34cbd579c2e2b2eb328cc66233a806177a316956e37a69513ca6183621407075b61b655eb5e5e60ad1582359d954d859550c115c07f71304368546c926531a78479544a6fcc492ef728fe0183dfa6aea27b75bd9b1717262022d75d383c813a2247b065939d20968981ae67d343179118dd1682215631dd7179ba480e54d4a49df6687b1537ad841e668b36aee700301151eda7706adc6572465289588555d263bb484beb51a428dbacb9487a35830597457411c899c20995599c0d3e0759650040127b92c85a58b4d87682b310d165af1b7118e7332de8f90ceb223195cc1a421a1685273078fb7caa4438f7aa4b45087806776188dcccc327170949c45cfaae192c8fbfa0a033e4a6bf137a2d5c4408040972bbb41342a6f2f97c6bf7b5a05a92ef1c69a3e602f5062b4d651b9af148ebe566059454ae71919226742ac151fec6623bd5531699282cd0651a1bb436d113202aae301a6de6c132dd020cf0235944d0a041f6ad92e404f87432bf3a28035c4f6e236ca6e6b56d924800667f8816839549535f1325ceeb5b0e194b89a5800819215737a40988a43336ceaa914800278944ba54edc65071b63374fb041f07a66d5781ee8492d35221c53495248365cc438b4a65a745a64585242878997853597ce1f45371cb1f97f8638837bee3cab372c024ebe4aa52455283cc2249d82739ea481d685204a61840c856617a210fa431a31b27532b5b0868c2dd0a1e2947aef0575934905ec50c33193c8cbf15c5bb4a89b39c63337b3f4bb3b61b0581fe2362037bcab4c62ee14ac3d8a70486789a6d9641b4a112f1336d7e613b13502de7d1bdd103b6a712bd4c9ab0f5611ba825aa5b344ccaf940c5abc296088893626120b4aa3c73c3e27520b6c6411aa745cd4399bdb627ec584ae3e2a9081c4125cc37f20107f70161975355ae779d74062d4ea062a36a4b63a20e22f3af346a57b37747d3d68a486133857577dc3040342ab2c8a38c9702c66276b5439c82465304f22ca9a316b6c078bbd00a748d9689283aaa0fa584fcb922de15c170412ab5819a18019cc9221533a691503a79c71c43de9453922264ce5994c78a3ce43a1595cb0c761291200b9bdd8b6dd037326e5b40d43717e6507b5f7bbbf71800cc7a1143e7101995ca2c2a06d3a501229a913e3b350cd567e59a03ac54c35a8cb0e4faad7402cf6353a048461649d4171406503d0380f543aae846a21df31c561451fb8707b6f15ae138a8d11b53b4820e97d1293938680546000c7552dea31d4ad50e914cb85935cbcf18821d22b20d309023018a667424ac7aa71532aef2c69c0dc545e3e501e5706bc1c19b5179bd4c4ab22dccc9269560992637a7887b996a6754721a2ffa97be2b5fc2a512788334871577f7530bc06430e539aa7ee0acab022607554e2a3160c2026b8f169cd3537f523b4cb3096dcaeb4413f93e8dd26c774c98daa269cfb702d3592984a3304aa56809b61f5fa4557a08c8ab20a634bca903f456c6e835cbf23f647a47971c3726ca216014459a96531896c8bfe74fd0eb074d74a085bb32bd57857054629a3b19d0105f5aeb5e79d10b0ce0ca1189756bd74324acccebf80e849969bc008adb76ab38fbb47c59cbbaa33f22759d5f879f178a6ec6e37309a15d70c286d7549fea354b438b48d4e73d6b0584469433cb86a74be82ccee60e4a0ab3296a31fdb9a66116a765e2828f3caa12da7e0a4a0a54d1ad9d141b98413c45d277a4e0a11732b9e6a816e3f1cfdcb62d11eb09406b83c5746032e128cc2897e3243840652253b7865a079309b7ce6a1a5b2007b775a463199c4a90358b416435d69bc7c6ec48a155be7570b7fe2626515a09037a6d9dc449e344b0d570be3cb7b70a720156858d8656c296b54c7377456d22ae66402c6fa7a4d2921666171352f56cc03a76365723682c5ef77437a5d16bf343972c43b10f56c5770cb8e9c2a955e89c35d932dc466b0c198874bb242e511f4f4d35fdb1eeb7c0006fafe38c636dab4728b6725dbf53e59cb8866573e536b4017c02e31c8ed7455c841a5ccdb795fc200acaf1da2fb936bb597f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722 + +# Official test vector 88, seed: "cc7152849c98d5fed2813275d32069e44824ecb14eaef425ce017448cd9a401c91c06d0f7eed6d22b7bbe8ba6c429ec3" +seed: e3fc575ed51513e62aba655d24cd9c8f1c6c848aaffa946c49a53ac3ea59e474d82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 +public_key: c797aa612a100811c3131b8b99b3785a4a32c4ab212b5c0217b18a55190890073f2c12521beb9410040129d5947ef96b72c92ae0f58ae1ac236a5426e7a4440aa42c4bd501af4823cb621c3e6374e368aba59c45932aa0addb3473e96854e8a706c510e17ba91b8b865de529cbd093bda7b6ff8b182ef71651035ea6d8b7c00a6f6efb8dfc0b192c44260a9479539c5a4c38cccc6b1b7ff3697e3759f8e1253cf71e2d7c9119b77090a99b3be67ad965919bdac787f116a67b1ae1c7230b957cafe398027596d510b2ce87a73cf8547977631d872ed714193ba7be01bc7e16260b5bb00a4227b976eb5f0dea457d3a493d19494e5219fc67006caa818eb43ab0d80693eb616b8bb9c87c5e899321d6719801a9982049c6a98c2a63800405867251e20c117241e222a1281745e3929cbebc2444b9b0fc0148b81b96f83b9517a2ab24171c5c55898948b7f16c6a1a09cb7dca509a3876aeaaa4ab299781582cebe73e9ba63390b35847480a9a305ca7b4043ca32fa6875b88085115681bfb806268a7ba33bc0dd5311266e672147b089943c2310136ec47ad1652c681a94ff9d09f87e851f1941ab4755538d50d99169ae1bb2bb70aadc0c87ba3d2cb70f1043be7272663740ab74c05899cd7881be63a86abc13ec4e014cd1868c5799992a58a60aa2bbdc6b5dffb8915c3aebe3c9fc8f70ddc8b9b8bd69fe4f1b60202919022af3df26369c190f5f518a6479decd8626e1c16a1094e2dc7c57a1a189b8b2ed0d4b9b0d90662f134cf4325a1867505a43e411c3fb4c4477c74b658d302fea66022505a25cc2a06713fbe1c2407f187e427a0dacc9c0d20a8ff3c4538a71a639a9029f1c826e8612ba30b2de1c63bbb0f70058f13973cbee40f371c490581c5a61ba074175b6488bc9829ad658568304256bfb88db3b10a4fa1744e220ba121772d94b35233cff9f8ca6053a364ca312fe1acde98bcaa937121806b40c972b1ac1e15700ae67441e399bb0641977d058020f205b258a29bd53fc277609c31150a0134849b6b7d4564d27735507ac25bb2164d4664c0b37cd5b9000d33201831c732aab32ef114902104bdb90b638b42960ac870c14e6220806292b9d6d3bcef1a9b6e859516651f9019cbba1c636ee550a72146ab17231f22a8e1eb68209642caf3814a0121565504859810f4a81cd8c5bf10716136e77fefd995a8956d6ffc0a38f841a0905b19589619649ecb2b24ab314a9a85bfa85cc236d19600c7440771a727e6745829cec312346b92c1685507be82a7d3638d36d4a7641a9a042617c09681e0da904a21207cd7b57f183640797142ebb3aad3470b82511bb88c8cd2af6de0a4f789161f7b2c00e2000c95bcb0d270d00c89c5f102b86650e2f8a4c46c052a817cbcd978dbf2c776cc98d53c1f7db97a0f42594ef18b2444a21bb2c1a59a61ddda53d0105489967488046ff8679187800587f2ac8946688cf49e81da406a2684d1a6495d33a8f12b72686482b91c2272215975a484e8488d2b19ae220cc1387594da69195dc47ac1127738bc03ee72772481892734246681b818b16f06943021363ae890ad5e213303d86f890478a91c6d0ae28e95b4ce2a861cbfd681a47a25545c2a29b75946d0f45ba0aa193ca5544686d9f9a802fc4cecdefea4a0 +private_key: 53a58b52229950c6b8aab3bad4f53abd319322c80414d817966365de802c0f8888b1eb3411256bea64bcde19b9cf5142e5698316e8cad22846d3ea9a4008512ee83cf1c8517789366e358143832624213a30079f2e8b07641a6816c1052111ae088792c7c305e9c442a47697b312945d5ccb417ccaf9b1649bb74485f4c73ceaacb7a69e06647e531b5944d64586a089cc8892ee0094c230998a22c9a1b0230557c4bc3c454fe33e96b9c5fc74b2e051178bc1a0895a782f84b75457b81a905e50ab4cabc57b2fb99c5c9978a9a4b2915459fe8b474b66c73ec2a4f3048bc5387ddaa066c2dca233ab00019bc2b3a89ba4710cae9a8fe1937be7e26b63b039f7e324ec870f2ff3c886ac649048659896294e55c7fae52f50753117e02f93751708037410e3558c87382ebc052d1783314b5956804ddce8c378ec3a4681156fe044237004f2f58c59ec8b977c9dec63678d494a22b76e1d7b22092b16a39c696c7a04def98c258b774a4323ecd6905e3c0267304d94a59028e084d7f1aa0c926965f087f0d89275b88ed075c51ee424c4125cd153782e0bcab7f57e0c038bfb29798df5579c95bdc021bf6a005a599c3ac8317a26d94b6810cb1007b9e3ac9447399db970b5b77544636481434c2acd4a92a7575c227079813447939938125670e9027be04462ef7c00345a26efd3803a26710ba975798102f8452659d2b9bedb387fb92aa038a996c51c92681dfcfc2d5754bbe04b1681c01d53d2957b6327417c4a8f22b80468808d099055e781b5c4a594fa2c57b91a70dba9909824b46944cf553d15a8c0fff742f10127183c00e3c6814cdbb87b88915fdc92a273c364b18b9c16afa3f5ca251a417816a13214a3adcac650674c309923d74972a50114d951640610a9b4278bee19c2d520a23791a136bb0afc3565750295c93513b819bea7b0144472b63e2b76e1909816b88bba368a6e41331881923ee92adc1827d2c292195ac1ad64064272a562bc0c9a325731cc2992d373403b1867746c78a89773035d1f7bc833a0c9efd1142564cb53b494b226154e7cbf86e0cb85230c2d2b2499486050509bbf8340a935a53910bab694b229103158776b4a85113e3b8bf8438fb7950d2db1153627abbda1392560611c72871455125a4984dd743a2222a6ceaa88b3fab2caf9c7bf17adb2e9be841163bd3880c6c1a6860a8eafda0dc8ab3bda2051f6a1bb313332777ac5eec69e0f70ae83958d397a488727b57553a7c4b209e6c6a0d062ae0c988ab89786f764622879be2c227b7a717a3c7962acda48df3c84043a21d2d85564159fa7e7bfadbcc6dfccc335aa3425fa958de87a6fb0b55531b66deaaca5ca251c359535aacc818abf8fcb75a9423e2bb903d2811618f5a696f230ce50ba48eb786b34ae60e8b5d6d477c3d363e838030f586796272728c37eb82773ab186968a0c2d5e03717ca5918dc420be60f77d6aa7484c730bcacbb970de161c525973171e638b73a2b824508f038ac5c5c0b43098863485ebcb91c08b60a0c731842a569c92a077c06949d7865e3f7c8b6e96d9efbcc48c428bcb8ba049669494663d2bc5fe761b42089581ad73437c875b9d89f96675bf09809c797aa612a100811c3131b8b99b3785a4a32c4ab212b5c0217b18a55190890073f2c12521beb9410040129d5947ef96b72c92ae0f58ae1ac236a5426e7a4440aa42c4bd501af4823cb621c3e6374e368aba59c45932aa0addb3473e96854e8a706c510e17ba91b8b865de529cbd093bda7b6ff8b182ef71651035ea6d8b7c00a6f6efb8dfc0b192c44260a9479539c5a4c38cccc6b1b7ff3697e3759f8e1253cf71e2d7c9119b77090a99b3be67ad965919bdac787f116a67b1ae1c7230b957cafe398027596d510b2ce87a73cf8547977631d872ed714193ba7be01bc7e16260b5bb00a4227b976eb5f0dea457d3a493d19494e5219fc67006caa818eb43ab0d80693eb616b8bb9c87c5e899321d6719801a9982049c6a98c2a63800405867251e20c117241e222a1281745e3929cbebc2444b9b0fc0148b81b96f83b9517a2ab24171c5c55898948b7f16c6a1a09cb7dca509a3876aeaaa4ab299781582cebe73e9ba63390b35847480a9a305ca7b4043ca32fa6875b88085115681bfb806268a7ba33bc0dd5311266e672147b089943c2310136ec47ad1652c681a94ff9d09f87e851f1941ab4755538d50d99169ae1bb2bb70aadc0c87ba3d2cb70f1043be7272663740ab74c05899cd7881be63a86abc13ec4e014cd1868c5799992a58a60aa2bbdc6b5dffb8915c3aebe3c9fc8f70ddc8b9b8bd69fe4f1b60202919022af3df26369c190f5f518a6479decd8626e1c16a1094e2dc7c57a1a189b8b2ed0d4b9b0d90662f134cf4325a1867505a43e411c3fb4c4477c74b658d302fea66022505a25cc2a06713fbe1c2407f187e427a0dacc9c0d20a8ff3c4538a71a639a9029f1c826e8612ba30b2de1c63bbb0f70058f13973cbee40f371c490581c5a61ba074175b6488bc9829ad658568304256bfb88db3b10a4fa1744e220ba121772d94b35233cff9f8ca6053a364ca312fe1acde98bcaa937121806b40c972b1ac1e15700ae67441e399bb0641977d058020f205b258a29bd53fc277609c31150a0134849b6b7d4564d27735507ac25bb2164d4664c0b37cd5b9000d33201831c732aab32ef114902104bdb90b638b42960ac870c14e6220806292b9d6d3bcef1a9b6e859516651f9019cbba1c636ee550a72146ab17231f22a8e1eb68209642caf3814a0121565504859810f4a81cd8c5bf10716136e77fefd995a8956d6ffc0a38f841a0905b19589619649ecb2b24ab314a9a85bfa85cc236d19600c7440771a727e6745829cec312346b92c1685507be82a7d3638d36d4a7641a9a042617c09681e0da904a21207cd7b57f183640797142ebb3aad3470b82511bb88c8cd2af6de0a4f789161f7b2c00e2000c95bcb0d270d00c89c5f102b86650e2f8a4c46c052a817cbcd978dbf2c776cc98d53c1f7db97a0f42594ef18b2444a21bb2c1a59a61ddda53d0105489967488046ff8679187800587f2ac8946688cf49e81da406a2684d1a6495d33a8f12b72686482b91c2272215975a484e8488d2b19ae220cc1387594da69195dc47ac1127738bc03ee72772481892734246681b818b16f06943021363ae890ad5e213303d86f890478a91c6d0ae28e95b4ce2a861cbfd681a47a25545c2a29b75946d0f45ba0aa193ca5544686d9f9a802fc4cecdefea4a0b33387825115cba8b0ae7da0d1aada1ce4ab05bc2479b360b6c56dfa870ca825d82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0 + +# Official test vector 89, seed: "96d9a06f88ff2c2036fa8e914b89c765e4a510b468dee40f914f78858c811857efe9fd0e17c0048e7389e8d996b7e2b0" +seed: 470b4943f0fe7fd0d8ec5185aba0d1db09d112934e4fb4787e2bbc6b88466e7b8b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a +public_key: d800414fe5b14dfca90fa6bb7e350684c3b08656374d54776c312a645987b9c80b28933550922990e2cc4064114ee12f93d3000164c333bc77d566cd91c904965367b2350b87a6b0b5aa7f8a746ffd4576d22083f23c0f3efc4d09ccb86dc4caa55365a8a406add3cba2127ece221c9139c6c273bd4d3b1bc1ec0626b35db44230662cc44af683c92176c5171337746f0f4900b7369df2b705b6387670b411e26288b8680f9cbb0a8ee01c9d0a9e4c61a19f1cba55459b78602dc14ba52a0b9de9da0cbf330d3e71625228a6a9e471d70639b05792cb8550b24ac159c5b069c30740d09065c9280bf2b4f86c1cd9b78357383b2bcc4e771661f4cb75c6589db317058e428398ea7bb88450f22525813058c609bf5b02a3098a619101c092f87aad3881eef6a2ea91a49dd3cdf1ca6952205e74f68ad5c06fc04163a70c0972c4ad752acfcfd5529b75328548c18748026bd7965f73076d4bb8f84159756c879a5919fa7286e0dc39f1884587ba5e124177eacb2a3e96410a64c2d5403ccb939e428b1e7149ca2b3368c11c8e1f38082ab06f39455d55d12e95c585f0098fe6dc44bbc97c1547600d79b193fa838e42cef6bab08d462faf017ee8414c9914316297cd56889207e13e71e544c6793b751174c5bb22294800785bb003589a899a562c6252ea679779522c03a0b933b07f29194c75b29693e27ddc6c4757cac5b9219d98137516c450884c374cfa8572f3b9e27cc706b205c398866df7972b8a44b7f975cffc3401212bda14c0bb9a50a5e5954f9534ee90c0f1f2328c618be5c2166be064d5d0a04392183fc5b3bde635992998b68b8c7bd7a0a1c3bc99975aab55aa39cc0e1d4c019ef73a53485349b58f4271aa29a4c8f8e97935981a83426b3bd0b5edd1cc10458579450ed4d065a93aa0fa734f3206718974ca6ef35191c930ef67819f535ea5e80e54659b1aec30534442e03cb9c4673679cc1cb205264ea53d20e383d98c08bff78447c3335a4c3bd6f0794ba019e1eb130faac0d2f4193a6476cf014ddc988e757b66ac5c95bb7767e6c32ea8027b5e5a00e62c582ebc4ae6738b9637355f62a053737014c475fa24b144b2b47eec97dab92f58bbaccb0c36670ccc9326287fea9fe7dc6a2ecc896652c9606943ca1a6e8688a821b69e33412025e26442aa2f70a68011f8be62db6e6283b9b85651fb8883acaa20885807237a51cec50cdd007b27c121feca8a2c026d82359de6d8b548d9a49a9914ce76584338bfc8f2cb51466414548cef544b82abcd277a6602887e4edc5e09a20b1ff343541c7ff3d4c0641109ed04cbdad8c2ee80ccc3723a3609454b733aec068fe6d28772e388255a87710ab88848722ccb2c3aba63ad04566b1ba4fdb2a2c07cc42c32b18e7280348c245e29ba51b10d4ae840b8f9858dfc68a73215ddd58df30729d2966d11d4a5b20a6d441071bd5083fbc050232b7e594b11c60a5f7ea438e015018d145b979428a899bb53a42a96e081f7da939cd0ca49dc3ee11b0dddf94430014ce96485bde669f214a3d4a88c6e4b3ffed1ab4dbc24c08224e03c47fa2a7d55997c2491717297155e1b1ca09898447ac0153435444c69b3b704d5b99189e346bfad6143bdd2780d2219878823ecff9df861e3a729f913ece36b46c0e9 +private_key: f2b0b79aeaabcc2b79b4ba975e0baedaaa5c80d842364cc03524088c1ca3b752aff7a0ba70138dbbdc45a969c12e36819b4b101583a9e64407932796190751d393a651844f785a5fe92b567c2c2ae877bce902c887555f93b6235d80a23d049e3b9867f6164c1dc6ae80b8a22108625dcc31465703572b3a8d599f55e694f391496ac402e4b754f97b4203e30bf4267be95ca1047b2b67b36c00d6a9a86843b0508440d441afc56362cc3594b9b1093073d4fc6ea7c35901066b25305398f58485905c6f99b9f583927ae80f81a06b5c1404e04c361b236a3a6818613c2245a47dc1a613549611c627ae63e38100d1049e0c6a913287dc810d7546b6ad4891c63c230ef285ecf2a47716c8e1da751175b0d5d4c34b569b93d895461cb2382c71c4c5ac2e53493ef487dd617b7c643d7aa1608cd798854051b02093904c5f3efac3a39b98d6c69f4f02bb7bc62102e326d421cb72eb40411549b13c0b443568bc53070f381b962a5452b7aa8bcbabee0ad090e7493077b3d3db2f9d1b2833462a738629fa8174a449463e39cb097b6b81a95f01237c967c63fb3646a931c063e33a0457bbd8984cd02438a61ccd7af577c041ae58442d48591d7c65afeed9761736852a374281db883f07092dc2b1e52ca803b90eaa3cb130d86ddb67303aa9ceb6098ee45b2e34c1cc1f149cd9f6907fd104ad01865e84c6ed72567b2497b86c889accccefb61a35e9412bc25d18c438f658615793814d93c42ca9b8462568d3e389b08756843926a9a7c0b65b4c1191995bb309117c52a27545f67b8a18c270d8b7a96cda9ebaf08b546097d0dba23f543e9aea0421bb328c7cca3792b392fc53b31c411312a592a5604be84fe7f0b8f393a451ec73b7c831d3aac3d1a1058e17bd68658f73e6970601cbeea3c798417dfd3b0911b364f3bb650245581751bf75400226ab2a45ca5ab5d5c31dc018b5113676a7132c931cf87832ae85c53320bb18904b6d1cb9c87ba1ed007a80166f1e649a8a0c12cfea81a2eb4dd615794eb006dd29713e608bae25c1aa842773d82d7a624327e826786b38f184aeadd49808d5b2c650113b5c36cce812fd95156cc0a1d9c6990c637433f1c0179b47c7389e7214652df549f3724f112626b5d1418698a66de09e6828645b8cbc405a19a9a910d7ab16ad1384b109535dbba89023222f2335cc9c68aae9bedb241475d8c5140177494c7f1b273f64558647228d562131b4349368764afdb054c12c0341fc8f7279234c2170cb7434f370c601053d77355191e03f9d516bc40a53e450323fc76b465b13a6d66e8b0a61a6808822e21866f6bf7b77b9d92c2ced831a594028fe50a5a005d02133840e0696236990045b5920f1789e4bccfa90bf88b4a6266b04ae1854ffcb0ac0d6870e0a76ac5449bb9c9a9a8007ac28bbffe998adf5cc9df03e9ceb139fe293a3fc908366c179004f9f587265711c008a14a44b29c3c6699c2cc57dbc6c540274fe500082e0885db6bd71417e10a3b98c695fb812883d68c0e7770c1ba14d50e5493da79630f35e229997834207bc3387009b5201b4a6b53cb90bf60755a048de73be31338b4ed00f942acd6fa10040d836e12b650c1b9ed800414fe5b14dfca90fa6bb7e350684c3b08656374d54776c312a645987b9c80b28933550922990e2cc4064114ee12f93d3000164c333bc77d566cd91c904965367b2350b87a6b0b5aa7f8a746ffd4576d22083f23c0f3efc4d09ccb86dc4caa55365a8a406add3cba2127ece221c9139c6c273bd4d3b1bc1ec0626b35db44230662cc44af683c92176c5171337746f0f4900b7369df2b705b6387670b411e26288b8680f9cbb0a8ee01c9d0a9e4c61a19f1cba55459b78602dc14ba52a0b9de9da0cbf330d3e71625228a6a9e471d70639b05792cb8550b24ac159c5b069c30740d09065c9280bf2b4f86c1cd9b78357383b2bcc4e771661f4cb75c6589db317058e428398ea7bb88450f22525813058c609bf5b02a3098a619101c092f87aad3881eef6a2ea91a49dd3cdf1ca6952205e74f68ad5c06fc04163a70c0972c4ad752acfcfd5529b75328548c18748026bd7965f73076d4bb8f84159756c879a5919fa7286e0dc39f1884587ba5e124177eacb2a3e96410a64c2d5403ccb939e428b1e7149ca2b3368c11c8e1f38082ab06f39455d55d12e95c585f0098fe6dc44bbc97c1547600d79b193fa838e42cef6bab08d462faf017ee8414c9914316297cd56889207e13e71e544c6793b751174c5bb22294800785bb003589a899a562c6252ea679779522c03a0b933b07f29194c75b29693e27ddc6c4757cac5b9219d98137516c450884c374cfa8572f3b9e27cc706b205c398866df7972b8a44b7f975cffc3401212bda14c0bb9a50a5e5954f9534ee90c0f1f2328c618be5c2166be064d5d0a04392183fc5b3bde635992998b68b8c7bd7a0a1c3bc99975aab55aa39cc0e1d4c019ef73a53485349b58f4271aa29a4c8f8e97935981a83426b3bd0b5edd1cc10458579450ed4d065a93aa0fa734f3206718974ca6ef35191c930ef67819f535ea5e80e54659b1aec30534442e03cb9c4673679cc1cb205264ea53d20e383d98c08bff78447c3335a4c3bd6f0794ba019e1eb130faac0d2f4193a6476cf014ddc988e757b66ac5c95bb7767e6c32ea8027b5e5a00e62c582ebc4ae6738b9637355f62a053737014c475fa24b144b2b47eec97dab92f58bbaccb0c36670ccc9326287fea9fe7dc6a2ecc896652c9606943ca1a6e8688a821b69e33412025e26442aa2f70a68011f8be62db6e6283b9b85651fb8883acaa20885807237a51cec50cdd007b27c121feca8a2c026d82359de6d8b548d9a49a9914ce76584338bfc8f2cb51466414548cef544b82abcd277a6602887e4edc5e09a20b1ff343541c7ff3d4c0641109ed04cbdad8c2ee80ccc3723a3609454b733aec068fe6d28772e388255a87710ab88848722ccb2c3aba63ad04566b1ba4fdb2a2c07cc42c32b18e7280348c245e29ba51b10d4ae840b8f9858dfc68a73215ddd58df30729d2966d11d4a5b20a6d441071bd5083fbc050232b7e594b11c60a5f7ea438e015018d145b979428a899bb53a42a96e081f7da939cd0ca49dc3ee11b0dddf94430014ce96485bde669f214a3d4a88c6e4b3ffed1ab4dbc24c08224e03c47fa2a7d55997c2491717297155e1b1ca09898447ac0153435444c69b3b704d5b99189e346bfad6143bdd2780d2219878823ecff9df861e3a729f913ece36b46c0e9720fd4f96ab2cac1be382907e8cba0702018ca27b28ea8f93cc19c4809885a3b8b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a + +# Official test vector 90, seed: "d26ce360d399bf7b89dc364aa7ac06bb513eab8f527383e93e30727edc3f22c262aa0ec70257b39edff0630dcdc1b79a" +seed: 6df4385db978d27b27d2aa5e452e4152b36f097503d9581ac3390105c5727e7dc95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 +public_key: 0e4c3b97c9c7bfd505e2aa01b3cbcda4096b37aac72b5b50a41aa8f6cc518181b70fd3270561bed0938d964972be491b6331a148317cd548124b7653f1709af074b1fe4424df4bb22ac91bff7c04489526e5e2c82f2973408c4828368b87a7c14a569ed7b58f8eb6cca19088c15031fadc0e5b37c442543e1eb944ea4a0541248496795bfdd56178c188f3642fc0580e70a62676555f6b3810dbc89b0a227a8ae554ddab721c954db21a87fda98477d0c2af2820b4691ffb046ad544b3d3919dce8303e2f27152170a182a756b981e6cbc0b0f00274b521c1782b0516743d17a7d7b4b29f8dab31c50739f68c57efc48ff5b1d3757cd13fb8249abbfc7b5a794e11e5b56b9f20c8e8a5718184167264bae901b3ae5005f796341897542c70545a9b6b260bc13cfe536416a0f5e8440907a4fa1e79a292ba20a461285584d3a2993f2bba8397756e1ac5050541806207fb8b313d0a6280b473c59abc9964b5dae58c6860337eb69396a24aa990349c62aaf8420b49e8a95af404b81870b3c9459acb62749e4ae2cd518e329776a6b68e33a7ac795330a8c1ddf2b326c3c269303bfdc9137ecfc9eda856148ab9dd0a920cac260e6b70a1b500d80d085fb9b91593254372c8e13b69b0d691a508a391b04478729ca19d75b566b472917614a53ca485c44e5600793a41a180697f20aca35501e7215a49f591d376a2dfe4a3e0bbcbf4652710d0ba75898ccee4c5b63514752ca8778f09d737337c9219f4b51a1277964c9e67b92888300cda37c382700a40fc185ab8fec55aa539cf115913c9c73af0819188965e57b326f6615682915363c54a267c27d625cfab0712138703cf709bc5c6b0cbb1d5d3884011c1b8ad8cbd1ba12bfdb8a80e9cfd1526d940233254b5dbc2bb17495b6466c0ebe684fbf331cbd99981a4362fd318b28015d9f3c3f1da328917cb140a0567b4782ec8bb1fe31b298b6533c39733304b5f7c74206cc688c144a23cc72aa491e48701cd7f14fb3b7767a679ba4f4c4e1b778019471bd78bf6b55c2eaf43351f85190b07a66c35ddfa67dadd28c30c5264e3c3ee88b62d2c12541d1595a519897a99bbee0207867af34b245b00185a60b4a9cb92eaee58b16f2977ceb180b32243839487ed6b88f6b94d2d4686ec7b7ea022e6d995c398896cd9876815a27ec77188640a4a4e64b65436440fac565caa10eba9d48824541a6165d0bb97a634e6715abeab2bd8f91c18a3a6e899738188744cb6b817d21cf092b64e68cb6c9747d3cc34d0d294b4770548d61cf53bac839b70f0350994ada273312545462bca9118848a343f2aacddb2207f84a66b08958576069c7b7b69c02cf4f954ce3252faaa0b7bffa5952c51fbccc7fce3b6a0c8074f72519930395d967603d327fb8231c1811712308b914a75539128a658a2eec38cb7081926e94a2903471b79b33adf94456fa6a09438dba6103062c1f5a5c66a8d15b829c8f01e7c1e21b10bed1aac6d142ea94334660bbf448511563b5564acd67f87a26f779527000584b61a65293cbd85ab5f3362bb96a61c922ffa77b8d90acba77869293a03d7cab81b688306546ac348b22e368b8d717bc969ed83a12000548310a929e9738b2448d1cd7d1cab551ae0e7b1c495565ee65f180aca4a38847375abe6c +private_key: f67c9ccc171f6d04bd584a4502f796e5395ae59862dde86fdf29192419a75e1b50222c8fdd18964d750ad5166ec56416c44715c22c29ba8b3f663517cca3995de71e8bfb5ebec66f19a4c7f8098908a93650e2374e483c731219ec68b480b95f4a81155703bde5aa7b5b6c57062c809f960a399a5e9d59c4e2f895bf30bdf60255edbc0d59350a2ca86c18fa200543a1f94b05c8cb0a07476fa556905415cf1de45568f07e37b37ce3e857f1d94ac9954cc9c9237439b9b0179ac0abaadabb2ada8559c80214c6a07a282627f949112218c13fc360e1fc589b6c05cae9c42df2a759760d2c5791f6e4203474a43836bf046cc931d133ebe82ec8b6414918110734318db61739568a0ab42b9642759c57333971c406c6ce9cea3c751c3bd9db336faa9c87108d80c152e51a543546548f1a7559681dd531adb919163c716ac791b5782175913b95f36bb1dbeb4ff0f443b4829deb738f76c8ba26e7a9c06a95a86543c2b95402f39180c08bd0e1ad1741bde9722819a910227b34121ca404cb6245566002174ade638533ab1d1ff9b37b9420813a28fda5b02460b1460126c80614066b2137798215266ee571759b7cb0a0e266972c4aad41612e743a8ab6022e5263d8576bb01959d2f23bf9102cef541896f2523f3422bebb252aa823b2291d3156195e05090c050966769d8774ab08d8314e29002e921aee609e40790b1531300142b9e3701058ba90be1757b5ca62b813a82a1a3654a130a8f38523d84d15d1a59eb5a81f918484037f5bba53a564399de86fff3a2850bc2946704e6721b023d01552737cced28415e819db6b6c103a71db13a9a0e4bfa74c24fcf8452630047b1a4f2c3851e7ba2fd6340e376b7451b767e5d3c1534447e0030ac023054eea4477b290ac861e16ccb00a079e68345fc626cf17a42818f3ba685377e7a1596b37791297691dfca02e02244a3372c4479e1076af237a030ab511fdf60981364d82d0909d81b0fc691a1589287ea99496fa16db4712dea0a12a1814196b1e12091344a27336d80f10b2a877d70550026a39f68aeb97606466735418cd47311ffbbb5affc90dca723518fa69615390401c8e047830f3f6b0059a9a9656a277d5b966a69e8d450bf3aba7477656e67b689f91147e3979f230996c566df9e0aa21b52e46868988e5a39f2461a5631ad35b7e049990a0f99bf39b9fef962ca8403c7453abbaccbab4215c0bacb8ba27a7427806fe2842ed930f4858b6af52098e3083e21078bed264ffa4a9cd911427b707d9832adfc28b51ab407c9c45c10c12ca15226f1036ea065388a1499ce967ca619af1d75c350a26e8673366377887f4b788861979a3218c2b5f3859c8bff841736b3b7f029f3c542dddfc271d3216f9ea9feabc14deda35399cc927d42cf17b544413826875338e8b1b7f9cab947700a55306b1a88fd5901fba92923c7c353fd5b2ca793640a57b42926858953b7b544317bb85e6189a2a162203645622885a22c8b595b36e221488c0cab5b3146ca5d04e6e218d8a215400972fed78c89a687abf95716041ce1f213ae42459470084712b863a0c574b1062f472466947296db330405b8e101c483077b1c397849032230e4c3b97c9c7bfd505e2aa01b3cbcda4096b37aac72b5b50a41aa8f6cc518181b70fd3270561bed0938d964972be491b6331a148317cd548124b7653f1709af074b1fe4424df4bb22ac91bff7c04489526e5e2c82f2973408c4828368b87a7c14a569ed7b58f8eb6cca19088c15031fadc0e5b37c442543e1eb944ea4a0541248496795bfdd56178c188f3642fc0580e70a62676555f6b3810dbc89b0a227a8ae554ddab721c954db21a87fda98477d0c2af2820b4691ffb046ad544b3d3919dce8303e2f27152170a182a756b981e6cbc0b0f00274b521c1782b0516743d17a7d7b4b29f8dab31c50739f68c57efc48ff5b1d3757cd13fb8249abbfc7b5a794e11e5b56b9f20c8e8a5718184167264bae901b3ae5005f796341897542c70545a9b6b260bc13cfe536416a0f5e8440907a4fa1e79a292ba20a461285584d3a2993f2bba8397756e1ac5050541806207fb8b313d0a6280b473c59abc9964b5dae58c6860337eb69396a24aa990349c62aaf8420b49e8a95af404b81870b3c9459acb62749e4ae2cd518e329776a6b68e33a7ac795330a8c1ddf2b326c3c269303bfdc9137ecfc9eda856148ab9dd0a920cac260e6b70a1b500d80d085fb9b91593254372c8e13b69b0d691a508a391b04478729ca19d75b566b472917614a53ca485c44e5600793a41a180697f20aca35501e7215a49f591d376a2dfe4a3e0bbcbf4652710d0ba75898ccee4c5b63514752ca8778f09d737337c9219f4b51a1277964c9e67b92888300cda37c382700a40fc185ab8fec55aa539cf115913c9c73af0819188965e57b326f6615682915363c54a267c27d625cfab0712138703cf709bc5c6b0cbb1d5d3884011c1b8ad8cbd1ba12bfdb8a80e9cfd1526d940233254b5dbc2bb17495b6466c0ebe684fbf331cbd99981a4362fd318b28015d9f3c3f1da328917cb140a0567b4782ec8bb1fe31b298b6533c39733304b5f7c74206cc688c144a23cc72aa491e48701cd7f14fb3b7767a679ba4f4c4e1b778019471bd78bf6b55c2eaf43351f85190b07a66c35ddfa67dadd28c30c5264e3c3ee88b62d2c12541d1595a519897a99bbee0207867af34b245b00185a60b4a9cb92eaee58b16f2977ceb180b32243839487ed6b88f6b94d2d4686ec7b7ea022e6d995c398896cd9876815a27ec77188640a4a4e64b65436440fac565caa10eba9d48824541a6165d0bb97a634e6715abeab2bd8f91c18a3a6e899738188744cb6b817d21cf092b64e68cb6c9747d3cc34d0d294b4770548d61cf53bac839b70f0350994ada273312545462bca9118848a343f2aacddb2207f84a66b08958576069c7b7b69c02cf4f954ce3252faaa0b7bffa5952c51fbccc7fce3b6a0c8074f72519930395d967603d327fb8231c1811712308b914a75539128a658a2eec38cb7081926e94a2903471b79b33adf94456fa6a09438dba6103062c1f5a5c66a8d15b829c8f01e7c1e21b10bed1aac6d142ea94334660bbf448511563b5564acd67f87a26f779527000584b61a65293cbd85ab5f3362bb96a61c922ffa77b8d90acba77869293a03d7cab81b688306546ac348b22e368b8d717bc969ed83a12000548310a929e9738b2448d1cd7d1cab551ae0e7b1c495565ee65f180aca4a38847375abe6cbfa4b55c7baf2651415d3f28d221b291b175340a07843b299a46e02e22657634c95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5 + +# Official test vector 91, seed: "c5856298c3cb6ac9787a0f30938537ab2635b96f6d19cc9522063360e7a5c88e644929d2879180e3e5bcad2422b7cfc3" +seed: dbacba825728444921b227cdba54446b3f6881b47be9cd02832f78b023b1bee0e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde +public_key: 91f33ddda5b9ed269034b722cfccceae14aacaa81038e45b53518216ca5c332bbe3117beb9ca69287a19dc7a078b412baae7cc5181a389b121bc4ac5d0ca67a97248d8f97d7526063cd88219c396ea11435e5c1d61dccc963444b35c99c86b87e40928b88c47f64b919a028ee601229e5a01bbe17b600acb7449a291b131543709a2b8a7d015419726563e366324588038e71fc3714ccd0a68fde524932496be0ba7adfb6e15dbb99f995419c8af3db630e22393bebb25819159abc78c435342628cab40a6350a8a86d1b1a93f6c9151f1895c4674cbf76313b1992d82c6db218339292622807557f458ce057ec1969578379b75d1bf518976b9c69dc22008371930f06b4d1d2465139bc0a62c1d13db9282c00549c45cb351518df67ca3ac881501c3272b9c6ea1a7c527b0ce8ab9124257484b341b2200b49029e2624eb37b15e7d5823a3ca608f09a5fc590dd14cd2cb15cd238735d25bab119b06026884ae5176bdccbab3550fed9b8d4a473a3d0a47a5c78b7b16b880911c7015a7ec281e3ea03274c6199b345db21c0b0c541962a965fba799840c01409463d138977d9bf8ee8bb3ee3b80e021ece71ca0c6ca72f614706e0941b60c3c8c263ad8187a5d70e98740a0a729a0d07123c5b95d553cb1fd086d853869b68b44db974f5161072d6b1f2a18c5f112376c434b9e777a597b6304aa0d1dc3d2f00010e481b9a9aa60e0acb9394cd554a047a6262e4b32191e875e1688456a1877012933ffa51adf131cbd47c28535595e7bc0777b954e094d6d62a5f67bd8b674abd34500da1a4c94bcac04746c4234314e16c1320c48d714481a43c486c96d183b3ea54b19ac54e971710a293121181a16f5bcd861835c78357ea4a6e8b9b785c085545c85a36b3963288851a15abac8a39a109d0d092ac3ec60a93077486d7920a6c274e91b4f04a7e90d724d1e47f65a9cc80f806b20c98d9867a705472738982f3c608f61095548552cc01cbdf10c34f10709a31aa47a27807c74b9533523912637b1a89d8383945dc9553e9911f4b012d6c397f74c250a70d43db4aa7da34df3c9490109fe7b1561cc25f0f37907fa567dde3ae9da24d425a7fdf35b2e61241400783bc2ba3b6098d6180b25194912175548453a669650e9007be369a2181e1a46763170fc995770627b6e48903f574f06037d580ccc1649ef6eb1d8be40392b86377532fe5b55bcd7177cd817701b4700b71a498359bcaca6393710105108c6c33894a41bd1e4a659b22c76c58c0d2f9648b8908397b2d30e9a4ea60c820aa12a58c3aac757ba835483f02ae08f7c9ad8b593d756a33835759f7024867b5d98477eb6cabc4b7397ff52c6719cf73d42f00a4b362073325d48651c2088fea27d540884851cf95f1a85626642f825265411f8b25067d98b5f595482d767b1c291a9e35100e49af47a71caf2214b592831d1024f56818997bcf035b1ce53c5213aa664e2226e83c50594354aa7974d39b09860b3560a534db624b9a595baf31bfc40978cb2903bb549eda3445241620006371b0f7a410e16c828c6743846ab3644413c8c995a4527f82460e112dae7a0d0a963b87e38a66e07290789200d6018cc7c454ba7bd5e56d7ce2d10ffa73f2a284bd579dd64e4229a9f36e58fcd24287c47316b08f +private_key: 619075d10644e5f5c9cea8446de5ab5c9ba99ffba41a77cc6698b06e59aff51a688abb284a6c26fbac9ddc31bff11956651c149946797bd265338376144b67693c60db18450db25d9354a1d0d99e2e7a5ba1a871e7e60df77115d7e08aa6b96133e0af9050b784834feb9bbcd0374c0116cd0339cbd3a3649a713ed3e1c185c73a693482db86acbb2688f2c622f8abc7e4041a767698131012f51b9719208b76cb019533798563a55fa7009786049c79c8e617246aa98c4ee0407e0b262ce771eac06ae8c4354630caa42b2c8495481bd640d7a65831b099d0142da3f3239f3ac555ac6440f5b14613147294b736d7b84c035ec8b8a478801c3460509989ac71ba5163618bf25212555bab461994d58c95c3c492df3992e47687962358ad8629b8b0c9f1a1aad180b2c84a7788953145a885d388253e77b274e9c7e9b5882e386dcc9c0b34747265444b8dfb06c6944d84a9c16b9929a19451e4f09954fb2858db2e73b0c940b2239cccc167a60c18212967d7c262c6b06d9566c65c9ea1a86d665a802f5c96d75b67b93c07cf914ec50691bf676276652422a21840db291175a58da6246d5915e321ce3089ada24791a7431dcf4117d3c167123bbe4e9c4670d3696cea143f7c1f12036c63c4699d4c5a32734e85621311c4b826666dfc4578ba4c953d2a037ea1bfa58780ec1678be56997b9375d74966cf9b01a6669ad2dbaa22a26b24a61e2f982b21e9a734c88a32035edb12832f8b59257a0a84b75cc5eb2f7d194d3e1581d9e513598c0cdec0450a255808040a69db3a151c3709c80d55b985e5634839700250389d5ab81f04757a15359a0ef9263f2ac8e152aea3d60e310868c4a71b01761a6c041346d840d1924468f41553f11a14846d694b3918856d0c485562a95071f31b83ec87f3a50ebd89146bf528592b32bfac5dbce78d14467fd873549d998a8f623383861640581627567cbb0310b19b0d554803fe4202e6d41aaf0c58e9f12b1c210e1afc9ffa9c6e18381030d9442a41793bdc274105abe23471dc2423547ca8c92983c0503d1a96b4cb44852b18c5c4f8ad53010c0f3b4f0ce61ce407556fd09814f2563d64134e082be7fa574059ca964b3ddb0053b89627a4194399d01eb24b5e4777c82f7394d95abb10c320032814288799cfd089dbb8ac6941252af08d0248cec9b62b124abbc4a09db3f6188e28a07329c26ac38dbf108cd7ca28dad55514e481969a0f797a341cb05f617372046a68a221b3cfdac744b6ab6a229fdb184dec4ba266952836077129d7c1dbe0859b573f610995feea652fa35c4026b26f194d9333091ddc0fb39648c1b1c6dd69275bda5f4d725de01068abb96c418c283ff65a4c5256df2b2698d82062616de5f93fc6d5005bd449b134361467ccce99bc2dba54a65a6234851fd283b9b77ab43dc40ab1d3ae8c749b9071596785bf53e34d76910384e1a2ce38586a628b7b5b4c50d325a3d340dfccb929996c601969445121d39839cc1ac168236f032a656a01016db1109d9692c81bcc192285bc4baf0ed03d9d68849f723dfc630dd91258a2636bf4aa3c5fb429b8a01074f1983de27ce91513dd44415675597c440cbeb434f8723891f33ddda5b9ed269034b722cfccceae14aacaa81038e45b53518216ca5c332bbe3117beb9ca69287a19dc7a078b412baae7cc5181a389b121bc4ac5d0ca67a97248d8f97d7526063cd88219c396ea11435e5c1d61dccc963444b35c99c86b87e40928b88c47f64b919a028ee601229e5a01bbe17b600acb7449a291b131543709a2b8a7d015419726563e366324588038e71fc3714ccd0a68fde524932496be0ba7adfb6e15dbb99f995419c8af3db630e22393bebb25819159abc78c435342628cab40a6350a8a86d1b1a93f6c9151f1895c4674cbf76313b1992d82c6db218339292622807557f458ce057ec1969578379b75d1bf518976b9c69dc22008371930f06b4d1d2465139bc0a62c1d13db9282c00549c45cb351518df67ca3ac881501c3272b9c6ea1a7c527b0ce8ab9124257484b341b2200b49029e2624eb37b15e7d5823a3ca608f09a5fc590dd14cd2cb15cd238735d25bab119b06026884ae5176bdccbab3550fed9b8d4a473a3d0a47a5c78b7b16b880911c7015a7ec281e3ea03274c6199b345db21c0b0c541962a965fba799840c01409463d138977d9bf8ee8bb3ee3b80e021ece71ca0c6ca72f614706e0941b60c3c8c263ad8187a5d70e98740a0a729a0d07123c5b95d553cb1fd086d853869b68b44db974f5161072d6b1f2a18c5f112376c434b9e777a597b6304aa0d1dc3d2f00010e481b9a9aa60e0acb9394cd554a047a6262e4b32191e875e1688456a1877012933ffa51adf131cbd47c28535595e7bc0777b954e094d6d62a5f67bd8b674abd34500da1a4c94bcac04746c4234314e16c1320c48d714481a43c486c96d183b3ea54b19ac54e971710a293121181a16f5bcd861835c78357ea4a6e8b9b785c085545c85a36b3963288851a15abac8a39a109d0d092ac3ec60a93077486d7920a6c274e91b4f04a7e90d724d1e47f65a9cc80f806b20c98d9867a705472738982f3c608f61095548552cc01cbdf10c34f10709a31aa47a27807c74b9533523912637b1a89d8383945dc9553e9911f4b012d6c397f74c250a70d43db4aa7da34df3c9490109fe7b1561cc25f0f37907fa567dde3ae9da24d425a7fdf35b2e61241400783bc2ba3b6098d6180b25194912175548453a669650e9007be369a2181e1a46763170fc995770627b6e48903f574f06037d580ccc1649ef6eb1d8be40392b86377532fe5b55bcd7177cd817701b4700b71a498359bcaca6393710105108c6c33894a41bd1e4a659b22c76c58c0d2f9648b8908397b2d30e9a4ea60c820aa12a58c3aac757ba835483f02ae08f7c9ad8b593d756a33835759f7024867b5d98477eb6cabc4b7397ff52c6719cf73d42f00a4b362073325d48651c2088fea27d540884851cf95f1a85626642f825265411f8b25067d98b5f595482d767b1c291a9e35100e49af47a71caf2214b592831d1024f56818997bcf035b1ce53c5213aa664e2226e83c50594354aa7974d39b09860b3560a534db624b9a595baf31bfc40978cb2903bb549eda3445241620006371b0f7a410e16c828c6743846ab3644413c8c995a4527f82460e112dae7a0d0a963b87e38a66e07290789200d6018cc7c454ba7bd5e56d7ce2d10ffa73f2a284bd579dd64e4229a9f36e58fcd24287c47316b08f9675fc6d1e3cc4e0eb62d31b6b4f10022d373d2718f3d20ee1cc00ef6892d9a0e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde + +# Official test vector 92, seed: "a28ead0a08e7228aeff602b16a1e752278b8ed1e91dac67994f5adc372e1d82f95cc390cd97ab9212275e0566c833fd8" +seed: 690eb71fd7052b906eaec09937a8ed374e0b02afa27c2f14399932be5839fad281c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f +public_key: 2ecb47bc7c78372b75de587297848724335f44545a35fa11e6e1208ed4764fb8bd4af9712e21c8b3c99e5a04432ec7c0b3200384534aae227c6400883ac21ec5152380b458bb69c5ce909842d3b07ef2c539c44a2df2013aa97a08b511e444996144cff78ca394b5440f4aba566383b0375edb2544a42c4df25b6a96e0263c8962bf9b716bdcaab098b41f735018735d8a26ad7d93b0f17452bb64180a572f75091af0ba9b3499a134e90a167ba72dda62cfdc27e3234b1412115ad0463da2600dec2e7010b1fc914f3772c858c80608244cc014a31036a9abb68946b51354d07fb914bf22e17ea21854ab778b67b40cef331cf8374594385c28586dcfd5421d1a008634b006965f88d58a5cb449f52136d7f82cfd0aca3b6355117b15cb51240c6a239ba26380c55abe19912be90466cb701d4bbcc5e138c525bf28d23cb2e0452927873c17c7e431051f99a6f585b89facbf71f594b49ba84c7235978aaa2baa1f9e7496509009acf56c5d09a4c53b1cf2845a0d0555528c8c1d287ce7e0aa56e85adadb89440305eb942b1fda247457751fc1b5b8811fdaa95592a047e297b9418c52f0189ae8a21254f838deb89360292956749007ca73581aa79f37116533068d2425d5ecba7447b7cc5729d987564ee3cb2ccabb6c31ba24375304a70638533c67bc6e53c51b17559133d4aca5a6bf44c635615a9881e25e4d137393b76b5017254970b56ed13f7aea587458a43b3435bb018ff6082661da9fec065c0ec23bff1b919633806a835139da4c4d34c6f4567daf07536eec3d4d0347f3abbd7f32317c33c2660393af455c2dc506ca111f48da051d8350edf5590adaae9731c2e301a824721718968ce3e66be430b8db293a22859d68b353dd45467c85ab7f4baa0d5b2cdb83c94a895a58e09e9f249153f25fc6d3c7ef50b1929b197128a64de27c48041e08c26d64b8c229cb24f9e9667aea2a33531d19dcb6ada725eee88f063cbc749c2e90f989c8f0c7cf6bcda814bb2b321f1862b32cb8294e99c78ba21d86a402a1c8c3e7f9a11f09306e588fd1856b7f5c5eaa768dd72793a3a88d35e931de0bbe0bbb697010b2c75c3308649c1260648bd3a6d6e57c56e00d5de7270d2c26572aac88e08238658332879d5ffa005f7c8db415403ae73ae728a5f3bb228a326b05bb26a0c91544d98db8cc687c597ae2e6b142b101e9731ac8c20c7eca11887b7fc8886c304a162b30cbc510ce54ea5324dc9b82f39b0d971dfa69b81ad99d49bca9e3449774985f5051a7eeaabdbd33857741c11adb51744539b1095c1b32cc99f81a0ccc6dc88ba829b11025ca5dd3353639fb8148088763ec9e7c14370766b918e93d8839a8b0a34d3090933df3a86e3976d09776a0ec3229741b2155b6c7ac5431421c7b80812523155c9cc5d890268661501628231c1c660583829e7b3984bcc8ad20632c16993673818f7ba15a5064aa42cdb9f7b0e0708328213388b06a04d559fcd83a10913c15167363f997f62b6a03614c46b9acd703be1a1b641e7910ea273022168352c89cd7616d7746983b3b51d57770196a68a50125f1634faba0c752826ce0aa6448c86fa76c6a3e2390840b0c7f333650c53e0a998b66b533746765316f08a94e18de52516228102ff16993ac61abd8d7884c +private_key: a46a88df4035c55137522295e986cb5e6605f7da81fc0b1f29903b3d283022db4f8046378fca124f5580a1dc4535e64dfea6c4fed63aa73960b4e14808383cbb12cf6f204d07f852a815a793eaac2f147d24c53e412a21a7550ef4e8122f46cdc9c560bf725545c82b743041c3933eff115d15746f3fcc5934c132af7a18b2a37fdce899e9c1cc0417124f0c279360c311a08cfb301655483d7f92853274c9f81683e5ca26283527647a0ef6d09225d4af7f1c1ca7563e824454b4a2cdfb5c582c498b4a1a1645553bf7dc30d6a56e0b7ca57510aa315818e527a64bc1b7841801edab2446863d48a53dc83203a0f68be3fc498b288e8457cf6f8132b367a9529bbb814151950c3619fb49d5888aa7424c30d415d08492a7ca50e76b56fb18bcc1ca99c45ca066340ff1e5beca8c51d6355504496e9e4a407ae57ee5a30f92ca1e0d3298bc252ed70114e426a76c5c08ab67304550cd7eb6366205b639b30da30978bce2c745283087c9ba87d3273df10e3e2573479bc205824aba06ae5fd6171355a73c771939e767412333685c6cf9cb622554af01672967bba8e043ad491568aee39e35888a4b996f6279223e820f20f5c95a6a66a972cea5bba874fb018cf05ae1dc60208510c85c6e3211583c4c21965b27817982e1165b6a59017b4bbf3db1ba31d95f14bc76c104c1097aa3372992026035e89895add31669481b6c558842b3bd1ab5bc9ac2bb6754b0a8b07419a35096b2365b60b317571674012eeb7157b233c4a1d309bc1c4c7fc047d5c3382dbb4cf65c9d9a24bda690c37d47ab27500ba5748a0294c8c9fb8acc8b3d938270a73c55de662544c7c576c73a2bd9cc983a60ddc0152be508d341a29595a40c7b617d6bb45d247128505a930a4bf9194ef4e27fa9d9cbcc55c8c9b4cf675876ceb2bb711798c850c3e85bb9e84bcc716195264737c03b4b2738188c0922d50ba49c01b4fbb85e48ac9e02739fbf556c5d5210283014ff280263d7c5353a0454d93195bc4b8ed41551b10a7a19808292c73fd63e61840d10f5c5b2853ee55265f78cb112b3a3521577c90b2744d855b758431e71816fd200b47791328481c49b24f991c9824742da7043ca2b47b7449126533adb1191d4ca1e3779515eb05e9c57c383a3bcdd991fae460ac8c6983e16484d7aa00aa12afb778004366765b3ab6365737e7a4227e7b5b7729bd9086ff4b64cc7ab06ad353c6bb24e05557fe2d60436f9596639abab693449247e881827f0133b9c1569baa2bf87486cb1fa0dbccaa179b397b01906847a970ca28f29f9a8ec0a0fd0a6c02c52a75bf7c3c0c180502590f3766e56556502b1a94383866082681d564b333b852b180c91e6873b143f8475a3b9d67c1421a871a1bdd3c073cdc16f4a717084b95528d43ddf2870ba2a9689310d761a6fd4179261f219de4500ad4b186d97cd1074b71ff893b3d4c889ccbc03264540a26b8ea3551dd86d77c29756c6972ab87ac9d07999f0bdac8a8796c8b83e9311b1a529c20a715e382f21e64f9fd0624792b818d93eb2e3be8cf8bf16793aee06a018eb86ae09292d5599ea78a2553a52793c7148f12762ba5df79b5242249684b1716b818498a5b82ecb47bc7c78372b75de587297848724335f44545a35fa11e6e1208ed4764fb8bd4af9712e21c8b3c99e5a04432ec7c0b3200384534aae227c6400883ac21ec5152380b458bb69c5ce909842d3b07ef2c539c44a2df2013aa97a08b511e444996144cff78ca394b5440f4aba566383b0375edb2544a42c4df25b6a96e0263c8962bf9b716bdcaab098b41f735018735d8a26ad7d93b0f17452bb64180a572f75091af0ba9b3499a134e90a167ba72dda62cfdc27e3234b1412115ad0463da2600dec2e7010b1fc914f3772c858c80608244cc014a31036a9abb68946b51354d07fb914bf22e17ea21854ab778b67b40cef331cf8374594385c28586dcfd5421d1a008634b006965f88d58a5cb449f52136d7f82cfd0aca3b6355117b15cb51240c6a239ba26380c55abe19912be90466cb701d4bbcc5e138c525bf28d23cb2e0452927873c17c7e431051f99a6f585b89facbf71f594b49ba84c7235978aaa2baa1f9e7496509009acf56c5d09a4c53b1cf2845a0d0555528c8c1d287ce7e0aa56e85adadb89440305eb942b1fda247457751fc1b5b8811fdaa95592a047e297b9418c52f0189ae8a21254f838deb89360292956749007ca73581aa79f37116533068d2425d5ecba7447b7cc5729d987564ee3cb2ccabb6c31ba24375304a70638533c67bc6e53c51b17559133d4aca5a6bf44c635615a9881e25e4d137393b76b5017254970b56ed13f7aea587458a43b3435bb018ff6082661da9fec065c0ec23bff1b919633806a835139da4c4d34c6f4567daf07536eec3d4d0347f3abbd7f32317c33c2660393af455c2dc506ca111f48da051d8350edf5590adaae9731c2e301a824721718968ce3e66be430b8db293a22859d68b353dd45467c85ab7f4baa0d5b2cdb83c94a895a58e09e9f249153f25fc6d3c7ef50b1929b197128a64de27c48041e08c26d64b8c229cb24f9e9667aea2a33531d19dcb6ada725eee88f063cbc749c2e90f989c8f0c7cf6bcda814bb2b321f1862b32cb8294e99c78ba21d86a402a1c8c3e7f9a11f09306e588fd1856b7f5c5eaa768dd72793a3a88d35e931de0bbe0bbb697010b2c75c3308649c1260648bd3a6d6e57c56e00d5de7270d2c26572aac88e08238658332879d5ffa005f7c8db415403ae73ae728a5f3bb228a326b05bb26a0c91544d98db8cc687c597ae2e6b142b101e9731ac8c20c7eca11887b7fc8886c304a162b30cbc510ce54ea5324dc9b82f39b0d971dfa69b81ad99d49bca9e3449774985f5051a7eeaabdbd33857741c11adb51744539b1095c1b32cc99f81a0ccc6dc88ba829b11025ca5dd3353639fb8148088763ec9e7c14370766b918e93d8839a8b0a34d3090933df3a86e3976d09776a0ec3229741b2155b6c7ac5431421c7b80812523155c9cc5d890268661501628231c1c660583829e7b3984bcc8ad20632c16993673818f7ba15a5064aa42cdb9f7b0e0708328213388b06a04d559fcd83a10913c15167363f997f62b6a03614c46b9acd703be1a1b641e7910ea273022168352c89cd7616d7746983b3b51d57770196a68a50125f1634faba0c752826ce0aa6448c86fa76c6a3e2390840b0c7f333650c53e0a998b66b533746765316f08a94e18de52516228102ff16993ac61abd8d7884c9d162fce2f019205a2106acc8e3e3465b6fa3912a06c764e625cbe3b95dea6c881c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f + +# Official test vector 93, seed: "92877d706daf88ef3412eb143db8cd91bc047a9a43b7acdaa42523560dee4c172697be4332042fcab91135839bf74ab2" +seed: 32e0ea9089fa928482c0770da545af1bb871a03ce38604138b0d08ea2a10ca2bc06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 +public_key: 7a6917006162efa4cfbd499b8c853e102c9639457f66812d58383e629a7522f1c683d48d8a216a0aa82454f29732077f4baa593de951857227b976a35a8013a622afe355144b63bbbe58265287cf6d605421e73e7df7301b59a885821ec0314ee76359d9d715eec1c2ae726fc0592ee01c1d45d6c94c76cff66bb3bc321358e33f16e1ad44b35e256bac5ab519e404c3cba647637537a524849cf952deda7940dc1c3a213d8c13580ebc10e2b458873ba5cb30c00d855530b0b5f86003a2c6641a72170b238feddb624f9660e16a9c545a0fe8102612979552f311a9417fcc8c8768280a4902a8ae696131c76338097f0c3a2f8731ca25d55a21b619d1c48550371cb2cac00e27c8ab9c8d7bb944e4bab625eb1bf7c55f0df84ce67c48fbb4438eabc818cc2871c619222a0c504c6898c31b9e859998911f4a29000e4063cc0a5d13975182c97047520a3fd7430117b5d0b2b088741690b5662a3b02978c5a2f1c330871957c5c73bb5a2fdeb0b5f3e5953b509b2887435b41badd607307941aad1cade20c4a22b80683b80dfff1bf82a4ae80eb0915190197c1ae23145522c86f86955d0d3b7b4b83b019123674aaac2b4138e4b36169b1784a4bbac8570aba1acb13ac0ab84a6bf987a23ec91f7c6c2dcd6b952c505515b4b4b1e7c749e693ef4a7dcdf8b7e2f89168991c0385829e46c7faea3c7fb18ebbdb333a4a16676aa81daa4ab519638807bc977729d4474f4c068897e77abe636df8525c35e7c691b49c72e50bbd8570d6b888041380a6a4b9a65868f247141ee137ba422807a57a9389cc195345968086359b36e5316c594a88959b7b006abb88d754bed942230b36945a141d4810050834caa24cf58747820a6aacdab186bba056bbc043da570f874eedd29718795ee19c9e8fd4378fa8a42ba6812dc51874cb0285420419d408e897a7f8fb9ad0238ec632674440b66e838fafd731b50092324a9b11a545bb9a9d7a242d54c6bf897a080ac0b06b57535e542d254ac581450d82d73ef779865708a2563c86e4cb3133cc5fc2e16dd2b043449a73e59a5c6a29a227a469ce406192ba4825e3503f3552f743bc3dcb945048a95c70209bf5c5efc76227ec7d947a19dfa0af12b078bc588c1cf9c1300961c59ca8529c357b9087b572a8bd2739a7a526f3d874e6e2a23c4242bdc652569c7ed3546e3e85b7865611c2cb7ad551142b2503e14c0fb8220755036f6bf95de3f1440598076db3410a4ac1e52c91f038956731622df255646ca02fe7cf1aac75d972a5d744512b4b498c666ca68660b984bbe6a1833e83caafb80e17ea49c484ae2b6475d2e276e0c9317c47090dc9bc134b606a6a1336a40881d76ebfa954dc550cac192082e1aa81f9a6d9162b038a021e09b28bd0b959884acc836a4a95100fc93071dc474e593a1d7ca409001b6c40c3fb13a5b6640a32da0b6db086f1691614d935c29b67d8d54732948dfa27296a63607c17973b764b9c05713bf0026bc0534b9187fe33690826a6c80014b2f97312d53b3b22aa1740b0a47ca8807145eae577c994b1dfeb19109b5b99019329fb6adae267c2759fdae64cf479462c4185ca67255971aace8351a94501d772b15890042363b3bb64b6373e44c5bf6ae2caed5dfc3e0f0dca2015579e6c636683 +private_key: 36059bf728aab04b86ac60b0f5c233a78a036beaa04a2873b71a3e29272e922b4537f97aef0700afa68b6da877b25b1ed143ba6ca538bf04662dcb500466a70eba596776c6d3662073f20c7582614eaa1517b5578378069f2704a4c5836a55006e054d623b6d04d48abd14570b4613f4c155f9d86c8c695ab9a2744e40794375c07ca62e1a3269104bb9ce60c8e2c6c3f9153ae3555a3a35a1717739ccb195e315400f3704c7c839614c4cc799a4ab250af448b70b871a3a1b8aebfa6278f6222c41aafd51bfd126032ba90e8d103e64e1036fa72dd9e752b72903d3b45443fa5302103d041b12b1a2ce0bf7406f81812807764ed435074a6a55dbce1065913deaa3e7164fcc6419a0d0cdbfc314ab66b2bd40a1e2e0af801b5e9a22023d1c797f49a345661e9c0352d9e880edd71b2e4a674265b3dbe4822738877f305f6e59bd5e4a4ba8aaaedfb28a87733411da7981f458f09a0d8bd55446aaa44f382b4bac9b08fa53b6932337b438744064c7dc9b5e95c61be3c454590df2a88565dcaea473bc3051a08bd6c238e36ea4d28064814c5d210c2cd8a8325230ec330063585b8472ad1415725b51950c171fa4c325c9a8795ad3585e515285678aa43470af7705d800bbfc14a9172b11275471f0948dfed89782d2a214095f11815026f202e18cbccfc75b46763cf37aa5558a34bfe51176b904025b16a08a07635455a01b69820541336a0397abc928e735fb969321216d17341cabb82d07a6a036d7cbebbaa1b7771497b329d67a9c247b6c31798d47347e41a425d7a5b3b1f38d914364a5176ffec86a8f743528179a5c544faba84c48387dd3264423bc083da506b356a51efb1d18da3a5ef2361ec43d2c80395d126097a7a5cc6a4354699017a7cdb02a4823f8327d729a89c1971f6a8646b92d1d38031e5c4a29733ab30063bd86abe6bb19b85687575b85406861a6a3c93085501f62088e245f25c450867c349700732578bec2152746c724a4da7b5b0a0a6df57a67341acd911d12e2774a78a6f003885cf26bfde0c8c1c24a63f33e5444ac342451e5f51820217fb20c14a64738f43a5aade60e3367c3d1695e409bcfd3e57885d87b4d19c3744ca797b74e1af7253613aaa5e9644279ccf963a8ab38ab07a1c8ec6558c3b6a285b38ea34acd49c1a74f3610745c8cc3da36202c6363079f3e252157c8882860a1852663a7b4416d33bea9a08157f61e5ae8bf3aabb7098b2110dba39e4a681eac0e765320d0fa6a6bec730a1848d5137a2f62a7b234180cb4b82568202b59713fa38d10d6c6aba1be37325db36896b80b0e6b356cb735c004d98caab7893e383da8a467c4a71c0e9316bd640f226a68ee2c138b8159a6147c9939ca45304b5df944b377ba4826964b2b86d50b9edd5294c3da3b2ddb02ce786eb02b79e8850ae923cf8b99211ba97806795c2bfa713079ba7728ba7b94b985728b83bcbd64f26a8d5594fbdc18764307a9f66a1e2b0d0d290cd23878adf03e2ebb9f0c48c9132835121c61709a740d937c8010a866f494af723d57b91b98034c6af9388d1b7dbf264f775462a5f581c0ca23c2d45f98c267951b40d36913b23612091000f49577eb8caf83744b7a6917006162efa4cfbd499b8c853e102c9639457f66812d58383e629a7522f1c683d48d8a216a0aa82454f29732077f4baa593de951857227b976a35a8013a622afe355144b63bbbe58265287cf6d605421e73e7df7301b59a885821ec0314ee76359d9d715eec1c2ae726fc0592ee01c1d45d6c94c76cff66bb3bc321358e33f16e1ad44b35e256bac5ab519e404c3cba647637537a524849cf952deda7940dc1c3a213d8c13580ebc10e2b458873ba5cb30c00d855530b0b5f86003a2c6641a72170b238feddb624f9660e16a9c545a0fe8102612979552f311a9417fcc8c8768280a4902a8ae696131c76338097f0c3a2f8731ca25d55a21b619d1c48550371cb2cac00e27c8ab9c8d7bb944e4bab625eb1bf7c55f0df84ce67c48fbb4438eabc818cc2871c619222a0c504c6898c31b9e859998911f4a29000e4063cc0a5d13975182c97047520a3fd7430117b5d0b2b088741690b5662a3b02978c5a2f1c330871957c5c73bb5a2fdeb0b5f3e5953b509b2887435b41badd607307941aad1cade20c4a22b80683b80dfff1bf82a4ae80eb0915190197c1ae23145522c86f86955d0d3b7b4b83b019123674aaac2b4138e4b36169b1784a4bbac8570aba1acb13ac0ab84a6bf987a23ec91f7c6c2dcd6b952c505515b4b4b1e7c749e693ef4a7dcdf8b7e2f89168991c0385829e46c7faea3c7fb18ebbdb333a4a16676aa81daa4ab519638807bc977729d4474f4c068897e77abe636df8525c35e7c691b49c72e50bbd8570d6b888041380a6a4b9a65868f247141ee137ba422807a57a9389cc195345968086359b36e5316c594a88959b7b006abb88d754bed942230b36945a141d4810050834caa24cf58747820a6aacdab186bba056bbc043da570f874eedd29718795ee19c9e8fd4378fa8a42ba6812dc51874cb0285420419d408e897a7f8fb9ad0238ec632674440b66e838fafd731b50092324a9b11a545bb9a9d7a242d54c6bf897a080ac0b06b57535e542d254ac581450d82d73ef779865708a2563c86e4cb3133cc5fc2e16dd2b043449a73e59a5c6a29a227a469ce406192ba4825e3503f3552f743bc3dcb945048a95c70209bf5c5efc76227ec7d947a19dfa0af12b078bc588c1cf9c1300961c59ca8529c357b9087b572a8bd2739a7a526f3d874e6e2a23c4242bdc652569c7ed3546e3e85b7865611c2cb7ad551142b2503e14c0fb8220755036f6bf95de3f1440598076db3410a4ac1e52c91f038956731622df255646ca02fe7cf1aac75d972a5d744512b4b498c666ca68660b984bbe6a1833e83caafb80e17ea49c484ae2b6475d2e276e0c9317c47090dc9bc134b606a6a1336a40881d76ebfa954dc550cac192082e1aa81f9a6d9162b038a021e09b28bd0b959884acc836a4a95100fc93071dc474e593a1d7ca409001b6c40c3fb13a5b6640a32da0b6db086f1691614d935c29b67d8d54732948dfa27296a63607c17973b764b9c05713bf0026bc0534b9187fe33690826a6c80014b2f97312d53b3b22aa1740b0a47ca8807145eae577c994b1dfeb19109b5b99019329fb6adae267c2759fdae64cf479462c4185ca67255971aace8351a94501d772b15890042363b3bb64b6373e44c5bf6ae2caed5dfc3e0f0dca2015579e6c6366833e834e34f198ab5a3504cfa0c6af6ab78de3a3ef5667e6065e084cf5d2a5bb32c06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884 + +# Official test vector 94, seed: "bb4c0082ca4044b1ff60b036c9b0e0495d58667156786c530bc69d949a13bfaff53798e456423d7a0e162a60039367d7" +seed: 6fb2ec719f2a0dea152bf3f64b9d148f8ab8ba88f64e61f5db53e12d59f525574f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 +public_key: 4860867e75349ba9999fe4be93262a08f868abb10652b51bd1c67c266156eda768e30b0c82f910eb96062177a882435c74353dda7279f2141d23a6440b900a8a476c66993477b999e23b40ede83b1e31781b4303e4bc5e0220cb0a6409c88aa8238b83d78792c5632751fb0d5246ca42fc89ce31a64069560bb87360bc2696e78062600f24db78ab630079a64c87900d4b7c9ef9201822b6bdbc69c6be718c3b2792ea32756e1a465325a763dba22861a423e65458272e77400375aab4dbf30d564a176613c264631d33f37cea0346e71649d1314862bb0d2b05711cf1af088a4c619048a7242d0be6a8b536c41a9368b22288ecd0ac7298335e5c91db419c2126a8df45b2e6d8793da63fc7e94d75d3bca2aa58f5b5bee0b43a462a12c34b93f68952b6e7abd89c97c293b0693192a44c0d4e69245e14983e87aa26da8c63517f58d66ae1610936e6a89dca87b6c70c1a78c66743b89b3c2eb854067ad97d74771f77b0906a9a7e78640de75a7b8273851dc55dece9b1941cca76cb2dac265e487585780928dfe7402710b6bd914d564568d3d4075e4141749990c40214ea51b71f855deb9349dae2108843b5cd9815f1e8458c020fadc1c65796b117f8b9851776e896891dc05aa0095a914457016172a17624a608cd49db55a42bcea68778a26a910eb566a2d942da58a4cea53ea7a67954b085eaf642405b1674309b68cb9bc3c04d67505d861a605bd6163f7cb49fb8cdcd40917bd59b94892459fa7ea64a4872f51b97e66e64f02818520164e20d5f952a3266840b4575fdb7625d07d00486bd433447d5e1abfa65b215e034aca74670d4b7ff61c36ac2a1628a20d79b352d1c82c1626233ba527967302131bc1ca837d9eb4238404a20a515fe98a9e6d9b34ec28f0b252263fc2bffaba508a6375aba51b4a36af23740d2d51705b2a1083b23bf5a6b75a214dfcba5eabb82faf49e4d326d369cab0f74c00bd54310a3620d570eee533a1a89a51a418a3cd14b25244f0c66c8e8e454e358364fab5997170a90a25f3816aa1b272b09e54435ab3096e8161926299acccae3d689eafcc7e220cc42f5a347173ec4c2510da02c3b4526d75c9b01d103b8914e41b03865e16be770a0e642251dc312cd10aecc6a9734ccc815da2bef09cd18c3a8ad6c0f90574f41075cef470039a62891ecaab5f033fcd4266a510589f7423b4992f488c3cbc450db074fdcc7cfb4a51c08e2359247c1f564cc94383892757a8164c8c985c28e288adffa9c866a6779faa0f0882abf650a4b9c5e0fb36e4e51a6442167aa97c8e25ba55a3b5d7f164f07b2917f57b16b751ac08167ae88cefa14668e7634d05865d1ea24d1013e1b270c9ee9164d18654646bbae973745e64f90e69064f38fe5744a6343ca04b1a05293c5dea9ceadcab0b1f07ca177cafff03d582b123bec8cd829aae8d7cba9f91d4c89cf9e9b52038638f54721f23c6b341419eba880368782d1a0990f57211bf31012148d74451ae1e79850b75d6efa172744cc6d77a46dd0272924bccef49053198b87e1ac122a0753950586d14c6b22bc12939f0661638b5191e6dc2ffaa147dac984cd004d6dcb637bb18b2f04c115f98cadfa79f64e6253cab64110a71d94db5762f8cb4d277e03b2435a473d60b193ed2646f4 +private_key: 30251db04b83a5b5969cd3354a375ca3003289d59f5197a01e2b103162bd63c0ce71e9c5b0259ab5d7ba48fc72fd3c90a5132d3b0b36dc9c411fa10bd5b45168aa6c562405d478487545b0c4034f0761897db4cd2dc13dec0253acb3051f71b170a731cf1c0e5f17cab24b64cc7682a2d4313bd23cab0849b20bb094e4570910ae5c58989a99880107ca4e617e66020043874eb861a0f72b50a924b8a4bb021504cf299b08b610bc14b0ba6226b162290c3bf6559db1ce5694bc9c75a8f4e3290900ae68e4a29a543dfcbc8e10e90472675381e0376aa408c858491be00fa782049766097a787337a616e04cc0fd8a57612ca816073c47c97d93c6a134db23b84198a0f196dd8c6ec88bbb5d08634c378b678455b005795518cd66ac170090207c84bfce5a89fe0cc1d16a3a60c810fdd780654277940a6e86e75b563b794649a29f0201d7a79930bb1a2b6177002560b5a06ca2d84dd8b45615923bd58543e53221c244ae917459149c13d15139afdc0ca0828ed5c32b2327a8bbf71e86a4071a579d6cd180a1f5248d3a148c318271a378921061041c186faaab73cc3465cc603b90138e125d909427f0c6c13c7b1af731bd7fc9c2eaa601880174b82a28a1d29db0bb708ff06c255bc17bd427275c2c12128c1253207808cf9edc6d3b106cd016821814b9ec498adaec702ad8bd24b894cb21b94de3175e2335b1e22b88c01fef553c42108f531c265f85bf7d0597d4c9b11465c6d8dccbb0b4b06259af20885458f58924b91edb64778d970a20a64f5f2c16a1736c1a81b350a14dc6f4ce1cc569bc8c197c897f4652c59cc7c9a106a2a4d8b826e057149167f2a30988504212b33322b4988e3987dc514968d4027f16c0440cbc1b4b48c18c974f8b20b6e5605d650c2c9b7e594665ba42ab96a4cd287a76e1e05f64c542e4753b2b8a7ac2eb52bd637ef9d50b4f077cea215859babbb2ec105ff5b5c37c0f5ed41b1e71a22f59922dba1d9e004a93dc69215669f530a04e45a878f14df4885be6d2ab820890c35c63061cc2f2582f575c364bf490e9365f6666a5247c950d7aadbe9bc3ee7638fdb981e574c9cf5960cb1c9fd504b6cc347c6a30bd6803cf99e003aa588caba4969b4329010c3ff6762a9ef273e6170ad64b4dcd9488c4e152d3d78aa5d91258e991e1228273372f5a4a01cb815ac2b69ef370838f28c50d82867761556f04c5d5d21abde15784dc486dab0d593069bc2401be13a7945821e2a18de2c331b9a8304613a181ac5a5ed121e0739994fa9b060c1411b261771a1321b62a614972a502a58b712c594b16ae82955817781dc858d645b354bb37e9835de8029b5ed9c430f7103857b25b888fa4bb7e36b30aa3a93d18b158a6365d598546eb025c7d7aa722b0494781c9d29121e071ab4ab73f86eb1d8aac4d5e66375d868ac6a6060f36b2a80730b541895e32c8b68882d945ae32d115e70a7e61f1c9c6945b9eac226ea551781a1bd48208a9e36d12915b69d04c278897ec79c7891a4bd44530d78b63c92640a0e07576322825998166817689799e070b2fcc7780acc596c42786fbebc5356185b008589f7363d863cc934446dd12420e6c5291a66eb2d2964860867e75349ba9999fe4be93262a08f868abb10652b51bd1c67c266156eda768e30b0c82f910eb96062177a882435c74353dda7279f2141d23a6440b900a8a476c66993477b999e23b40ede83b1e31781b4303e4bc5e0220cb0a6409c88aa8238b83d78792c5632751fb0d5246ca42fc89ce31a64069560bb87360bc2696e78062600f24db78ab630079a64c87900d4b7c9ef9201822b6bdbc69c6be718c3b2792ea32756e1a465325a763dba22861a423e65458272e77400375aab4dbf30d564a176613c264631d33f37cea0346e71649d1314862bb0d2b05711cf1af088a4c619048a7242d0be6a8b536c41a9368b22288ecd0ac7298335e5c91db419c2126a8df45b2e6d8793da63fc7e94d75d3bca2aa58f5b5bee0b43a462a12c34b93f68952b6e7abd89c97c293b0693192a44c0d4e69245e14983e87aa26da8c63517f58d66ae1610936e6a89dca87b6c70c1a78c66743b89b3c2eb854067ad97d74771f77b0906a9a7e78640de75a7b8273851dc55dece9b1941cca76cb2dac265e487585780928dfe7402710b6bd914d564568d3d4075e4141749990c40214ea51b71f855deb9349dae2108843b5cd9815f1e8458c020fadc1c65796b117f8b9851776e896891dc05aa0095a914457016172a17624a608cd49db55a42bcea68778a26a910eb566a2d942da58a4cea53ea7a67954b085eaf642405b1674309b68cb9bc3c04d67505d861a605bd6163f7cb49fb8cdcd40917bd59b94892459fa7ea64a4872f51b97e66e64f02818520164e20d5f952a3266840b4575fdb7625d07d00486bd433447d5e1abfa65b215e034aca74670d4b7ff61c36ac2a1628a20d79b352d1c82c1626233ba527967302131bc1ca837d9eb4238404a20a515fe98a9e6d9b34ec28f0b252263fc2bffaba508a6375aba51b4a36af23740d2d51705b2a1083b23bf5a6b75a214dfcba5eabb82faf49e4d326d369cab0f74c00bd54310a3620d570eee533a1a89a51a418a3cd14b25244f0c66c8e8e454e358364fab5997170a90a25f3816aa1b272b09e54435ab3096e8161926299acccae3d689eafcc7e220cc42f5a347173ec4c2510da02c3b4526d75c9b01d103b8914e41b03865e16be770a0e642251dc312cd10aecc6a9734ccc815da2bef09cd18c3a8ad6c0f90574f41075cef470039a62891ecaab5f033fcd4266a510589f7423b4992f488c3cbc450db074fdcc7cfb4a51c08e2359247c1f564cc94383892757a8164c8c985c28e288adffa9c866a6779faa0f0882abf650a4b9c5e0fb36e4e51a6442167aa97c8e25ba55a3b5d7f164f07b2917f57b16b751ac08167ae88cefa14668e7634d05865d1ea24d1013e1b270c9ee9164d18654646bbae973745e64f90e69064f38fe5744a6343ca04b1a05293c5dea9ceadcab0b1f07ca177cafff03d582b123bec8cd829aae8d7cba9f91d4c89cf9e9b52038638f54721f23c6b341419eba880368782d1a0990f57211bf31012148d74451ae1e79850b75d6efa172744cc6d77a46dd0272924bccef49053198b87e1ac122a0753950586d14c6b22bc12939f0661638b5191e6dc2ffaa147dac984cd004d6dcb637bb18b2f04c115f98cadfa79f64e6253cab64110a71d94db5762f8cb4d277e03b2435a473d60b193ed2646f4c5e157ff4357d3c26b7c4b45315f0689f135c85d952a64648b0a8cec03741fe04f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34 + +# Official test vector 95, seed: "121d90e70af6204445d0deb28ac0c108262719e9fd3476aca74bbfde89faf04d8d5f89a624e8a75db80431f0d10ad28f" +seed: 527fb88c8bd9a4d6031dad15e63878abd2b559e7e08d61f69e8e78fca964ee6ae32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c +public_key: 345881ab11467fe9883654870f7266d76755b0a368661001e627587ba42a2ffc1e2c90b154bb61c2cc3d82a3588d4004d112534f787858d23e8a182971229bb2bc77809a1b118137fb91bb09d2b39dc77773e291fbe2cfe8fa2cd4882379f9471a190f34018c5819ac4eaba7a4a24c703c8876f321267b3eaa58a90cb0271208c6631a773021b3960c14605b5e24b01c2e3c9b2196499dfa69d6a76f0551907cc79611bcbca6b1500d50854f719761a59e8bfac4d5b27a54791482ac5426f73b906631e784c3be822599bba514540efe6a7c13440ae97844a6c73ceb51c471f8014fe51fa94b271bf3206f56abfec55ed7002c27a9250fbc12c9f328ea63b3a2375ecd35634bbba0a4a0619d4571ebc7868faab83c6180dc3c129e8596ede2b64762ca7670282daa233620445bd64a44f5c395a212a088165fd16fc69c503a33b8689217ec00a738f74210d074dc3706e9a412b7982a3e0804458560ace39b54c114f8dcbeb9a1512eea2d8636bdb91c15653926b0fcab1978a02ef694086c062f097c32c9445606050e454a5ec2a43d5cb2704049eabba1933ab857acc1527c254b35cbf6fb4e267b567ca2a125b1552d1c83f408b12420b0b10c2e0aa430f695af478c9d1c54406bf400170a84c4c52e9657c1b4eb652938b4a281a809851a5f62ccf930a56b5588f6fc64b6fabc62b6a62795b3372637bd641bc55c76df070288678012247d11b09118c43fba2536f5daab402377791c906e4cbdd5291ec81a1e71a3a696c0165aa1adfb978be46a8fa5cc7c8ee30036c085888bac3797a1f189cc4035658ccaadc61432141b67bc09ce04685dae806c681729e71b62dcc56449101401d967157c093a8a2b442c3af483408791769bf7ce8910ca4f4724ffc93647375e702bacb559c11fb18b1d4a5371fa4bcc603c22254cdf2654b2873cf9e03591f4173e6a4cf86aa30e9480d49215ab503b2cf6bf42c4b314c7595c907bd4526569b3122234b9e27259619b520412b43b892a6770cc32c6c276a391a106959560687c9620d8d1a60a093f9982a46bb9365d611a86d064f3f82d81ba5c3a39578ea4583b8882efdb5e0b3517be2ab82863c68db0336f6a1b9e1777d7139bebd15af3b73e21332d471100a8a8cdc9d926d2d7c23bab39e015c65a072e0409609c0c0607ba94fdba9842146e8524cc6ddbaa3dc3c9153c667d2b4f4a4871ed642fb284c573b1735b24b9f14aa72f316d3e8b1d8bb415e28a895a7a55e5043eebb04dad9a1d7d2ca9c1973bbc485400b8bc3e897d9d977be1d6cd7d93607a123e43b56b55189586703bbb505185f167d9e24d1c1248a4bc4a98b9332666afaea93aab55b09cc95e8691872c48b3594a1930d82917823362dc6e5ca19094526c462b52d8c842183b214f710908369e9e1599c8e43ea7d890a7e5a8caa6953d774a2e6a1efb1529411228d3637f1b28437c0773a719cc85681cff772ef05b3bbe5753fa2aa5e414bdb599384fb6462565bb04da4c84e550b20163928c9673427b5d57864cd0ba25065246d3914338cc9be47b2ddb2d18888ff99a087d0012b789cc3d6c0c2d93567f7a4c87f1382c4c5ea6d084e524b82eab586ad8c8b05c9af5971a56a31f2b73ab45392bf60b762c5543dc3a259dd67fccec3ed3654c6559 +private_key: 9c6b1557d747fbab1da3d8bc22301b37e5a5850c9e482850601c129a909da97a9090840efc118a287b19ed091e4f39b7657853502b4322b687a28532f6620bdca934361b1a5dbb0e9af71caf65280e6aba338ab888cc80cde458720ba6146c39a22bc2c8f9cb0078a54031614d60cc9c91c319e3241fdb73a78c4b5715b0cf9620e0449c8c67493a987659c19e8e9b6e2ed12ee5dc876de75589cc6d4294b40a0463d0a4899dd54a60ccbaf545166d693ce6ba3e073c63757ac06a9aa2e5e93385b9723eb339155c1e3a043779b193af883b91f78da091358c2c2dd7db9086598546c6886d1bc611c3b586a3304a473fff62371af33142b1a212236e63351903a652261093ee44209c72bcd1db9cefd7866b15b6c434c654048ca845ab31c65e93d00288c6563e35080522415e42a9d5d749f308c36c860fdbe004f6c38bbf15cfe728a2806c10af833972a6558fc204f052cfbed8b1f8649951e44949720364f752b4910616e57603342953e47f0046af76867c98fa0ecde6680b14bc14ea34569ab583c86c8f3b1af9f5ba2ec68935729f0e03844976a8c5b965f56660e60b2b93d838d3697b86d6cf3e8aa0bd6865dac093966a0793030be6a03bc9e472354471b367a27ed30e129a336df19114cba8ab99571299128b323721703bd11649fc371aeb1867c5079fe04b169501cee5b2a54f14884c5ac1b42588c5ba090382320ac8233bcc442ba2bcf9ec34446a716bf34f1c183a8829b22216855107bf6e9218d26010e63a72316cc5dd8994c4817880d4144a26a0967a25d0a82546098c6c55ba8078c0bed3bb91b5b2cb10c95b464852d7973dfbca7f6396dee46984f220431cbc969b0482453ff729ce625a3498ab299239465fa79b2d50c0cff698d2e4cff7b3182b88acc0785c69b406a3dc9504840a2a744dfcc29a99458f74b3ccdb753ef2e83065111c41052c539c83d1ac049d215ea5291110287e80977e3f578fc6dcba985327dea382c3bb9561444f64232137624e32703cc4cc12c63ba5d3ab496b7b493c1000858b8dd51368f1458d255ac57d829928dc2a0707660df753aa9c1b868703bf69013cd15f17a38496e51d63aacec4f594cff35dd027764a56b2751080d3d76b91da373636cba86395b992a7ce972c5e1101ed43176f5a5ba68801d0763762b92e499110648697389b98c5586bf69356b4623647cb0d1366b0804166299c4dd1ba0f29bbbb5dd393c40cc03967919cc32c62d6bdf9138e6b45184d445ae94825ae092df33caefb2b737e9a23f58126a6c52780e48f5ff7a14a7b255c9a474c752d9de424ccd4a8a05c79164779b8b452f3245926e2538f7299186259678298749412e96b444370bc583ac4a4d43dc7e1329d9630a7b3a79b0cc673789ee0d8026c93c17097cb83d515cecba69b13783fe1bf72338846c955b7b1af27128f0c1a2dfd0018def1c24fb16c29d326129213d831728acc4cf339cbb6d2a7ddc8b0eed4cec8850750bbb740ca89180b224721648f44a8cccbba6c2538006bc38fa34a04053dba971f165c5003d70bf9c0b7f7578d03093a3d496a0e9242b0c23a92788b668b1abe421080770078f97118e7c35dd589ce1ac805d953345881ab11467fe9883654870f7266d76755b0a368661001e627587ba42a2ffc1e2c90b154bb61c2cc3d82a3588d4004d112534f787858d23e8a182971229bb2bc77809a1b118137fb91bb09d2b39dc77773e291fbe2cfe8fa2cd4882379f9471a190f34018c5819ac4eaba7a4a24c703c8876f321267b3eaa58a90cb0271208c6631a773021b3960c14605b5e24b01c2e3c9b2196499dfa69d6a76f0551907cc79611bcbca6b1500d50854f719761a59e8bfac4d5b27a54791482ac5426f73b906631e784c3be822599bba514540efe6a7c13440ae97844a6c73ceb51c471f8014fe51fa94b271bf3206f56abfec55ed7002c27a9250fbc12c9f328ea63b3a2375ecd35634bbba0a4a0619d4571ebc7868faab83c6180dc3c129e8596ede2b64762ca7670282daa233620445bd64a44f5c395a212a088165fd16fc69c503a33b8689217ec00a738f74210d074dc3706e9a412b7982a3e0804458560ace39b54c114f8dcbeb9a1512eea2d8636bdb91c15653926b0fcab1978a02ef694086c062f097c32c9445606050e454a5ec2a43d5cb2704049eabba1933ab857acc1527c254b35cbf6fb4e267b567ca2a125b1552d1c83f408b12420b0b10c2e0aa430f695af478c9d1c54406bf400170a84c4c52e9657c1b4eb652938b4a281a809851a5f62ccf930a56b5588f6fc64b6fabc62b6a62795b3372637bd641bc55c76df070288678012247d11b09118c43fba2536f5daab402377791c906e4cbdd5291ec81a1e71a3a696c0165aa1adfb978be46a8fa5cc7c8ee30036c085888bac3797a1f189cc4035658ccaadc61432141b67bc09ce04685dae806c681729e71b62dcc56449101401d967157c093a8a2b442c3af483408791769bf7ce8910ca4f4724ffc93647375e702bacb559c11fb18b1d4a5371fa4bcc603c22254cdf2654b2873cf9e03591f4173e6a4cf86aa30e9480d49215ab503b2cf6bf42c4b314c7595c907bd4526569b3122234b9e27259619b520412b43b892a6770cc32c6c276a391a106959560687c9620d8d1a60a093f9982a46bb9365d611a86d064f3f82d81ba5c3a39578ea4583b8882efdb5e0b3517be2ab82863c68db0336f6a1b9e1777d7139bebd15af3b73e21332d471100a8a8cdc9d926d2d7c23bab39e015c65a072e0409609c0c0607ba94fdba9842146e8524cc6ddbaa3dc3c9153c667d2b4f4a4871ed642fb284c573b1735b24b9f14aa72f316d3e8b1d8bb415e28a895a7a55e5043eebb04dad9a1d7d2ca9c1973bbc485400b8bc3e897d9d977be1d6cd7d93607a123e43b56b55189586703bbb505185f167d9e24d1c1248a4bc4a98b9332666afaea93aab55b09cc95e8691872c48b3594a1930d82917823362dc6e5ca19094526c462b52d8c842183b214f710908369e9e1599c8e43ea7d890a7e5a8caa6953d774a2e6a1efb1529411228d3637f1b28437c0773a719cc85681cff772ef05b3bbe5753fa2aa5e414bdb599384fb6462565bb04da4c84e550b20163928c9673427b5d57864cd0ba25065246d3914338cc9be47b2ddb2d18888ff99a087d0012b789cc3d6c0c2d93567f7a4c87f1382c4c5ea6d084e524b82eab586ad8c8b05c9af5971a56a31f2b73ab45392bf60b762c5543dc3a259dd67fccec3ed3654c6559f5cedd022077b1a6a052f5287219393cd2e0366d0f5531b2f7ea8704d2900ce5e32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c + +# Official test vector 96, seed: "b3ac6503206accc2a92cbc210d020a2654726911d11ce676aa04feaa08af1d20c654e4105883ae470ec3ab299075d420" +seed: ac6fcfaeeef795b6ef9e062f02bf42975fa01e7d91ba832f74e05269a72684d05aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec +public_key: 2695adfcf444770c6ffab16e9211abf5d019e1471b843a3e7a38b5ce109a0a6796a0d822a926756f0c4a0fa03f53200d6cf37a1cb741f10219102b63425063d6a910b2fc574c49067a1a40e22ccb754926481b7f0ad0111943b3e67a570f0bc269aa50de26cb5f3507791b757370517d486d7a55a88ce86b42856705f6a7a48a8892e96ff20c304e74271e0b555c1b4b0d065a50d61bb2813cc3723009179dd2b4c37a0a06b2099c2aa0c4d256a2fe2042bf4b3db91b11028275b33b4484f2ccb9971df29703dd61c17dbc0319ac63d16080f5b5c460149ef751933ab60142404b66690a2c10a6e3aaa186f6c7e130577cb02ef4e043a6d4ab22ba85b5396a4d61aa1528becc59a1843a4d70283cd2f91457762ef34424b934be9a1547dbfbbcde21552f968c2c8692475632e78ab3d7330619e74d8c71bf3797844c717e70b51367963a7cd3c4869a85ddd213a8d34b788239056544692a7741124697d237d7e2677a908358d81da2cbacefdc511d3110e1152bf2d036c4593a0512523f80a26620ab1cd8b6b1d99a08f25ae3121713ac070833c544e42acfbb78d86476743923d7310c5a4238cce27773d3989d598affe6650c1166ad4ba0e034ccbbb5a75d69b113f2a1952a2cc6980c58ca6da32718e4484d562ac700d924545b6cef439234980611c99e69706054981349041e1962b272c4b0b8b416569952e4f98d4bb12de6a13bc1c903c5477b0ffaa1c0dcbd8e4abd4670832eba3d43d9c31147aa803c17bb32c65e3c350520297da9cdd6dca30ca025e85a051af5aa82d231c159a5026a0e8f2c16769105baf7708fab822b1777c6c53137ba11298ccc15d522400b7f85430de739514c90453ba97d9359807568417ea307abb8982707b7519a65b116466e984772f87a6346ac808c7b2cd22f08aba151e79ad8e45925d29294879a9dc00f60713e33091c42bc3ab24b65b488c764ec75b4117dde39ada784835d3129cbd7b777b1b69cc3293f07ade724639b761ca598464e6676e216874c9668b19aba660974c9918d52761acfa325031835b4d44b42fb91e431373781a2f60354e837458e69a89d830e00801178ba697f82a3a914345ecc1b5cb4b3357b6b7d41b708c5a7e4f862c44c8ffa90473495b70607386c02b4f0261e197124de180cc793355135bdf37cb36b9a180dacc2f6b09efd80cf35211a0371c59f396cd9ec226e1126d69a6ab8441faae9a1cbd18e17387ca0333f94acc7e35306a8b05f4dd185fc467e5e888159a50c6c9a51ca6b2deb9ba212822020d67552d4317449b51b21c37348c44e3880367574d5c195db588ad0189a80756eda780dda9a7d3c946b10d897ab8bb40d6441179b1b0d58271ea83000c5ad56175a23d20322d516b2a487c74a64eb3514c93b919d65cedf429bd37515fff66f4d72cee39a0081452f791b8054660da44937c4a443a09727ca5198322c341c12413c19b6075bb9118540bdc105313422cf9b8fa687540af66728fa9859a642bb9479b31257912cb5e0046dc9273199f27f4f3665aee6a7bdd19e0ab8baf1d2a868b465aef75f3ceb916c82bd81791e80158f8e5b358c218305d96a683a19c930c1903b5e0a4b15ccd8ad0b9e61da304ad616af46073a781ed8d08060c1678f48941d67b3685a39ee7491 +private_key: 29013c0db356adc444062a6955267cbb8132d72a58bb1b34ecb955795ba52f1624694741fe3c646e734c2462547a72553c51559c2c88830b1cd43089e924080807b4daa964bb85cd5cbc56edea257ec59b9c808bb66835fee1ada8fab7db67268ddb23454680d3a7245be4917a1abeefd809d7906c1b8a4dfad2160313ab7c69cba472bef251c7e1e1ce8771c1c30b7db129b8a8140aae05780664ce800600dbc8ba42e1b4ae629424735b57529f35f9abaca9054ae346c9928a3ff7884485195d02369d046dd68a7129197cc91c3a911c0cc361c9b8fc44c0ac8d98c8a18b185b9e174bdca360f589343f9509121b7b3c8046f4d8086d471b5f1b3e20c6296936a2e78583640590d52aafb321a23215546309676dc84c445ab78bb5660137a50c97aa05b7b004e396619b632e855d80c6cde8973c055c65b7a06a90421e8ce484495820d9a66f878a19e8e1bbbbf86437545a5ddc4326e400c384ce96c4698f628f9703be9aa7181a361739f7701700c47eab9f1b805d86450094c76445413fd57b20d9794aac17b1ef33186a345351c851657a9ee61463f0e912dfd8ae113a378bb51bdf5b918b6344fd74c573430259b2b18f37ce9af0bcbe3807a0d94626dac6a22c4e31f3bae1eab69f768dd4a68405290566e20ed156b5ac5a73b1c08e64e68df973b9dc8692bbcb17692c496817bb1f0465cddc6ad25903bcea873ffbc9d8472487a92c8ce7148c25288d9687532035b81b584494524f796f99904c0bfa402fe265bb7aa143a0329f4a199692472f25b2b59a3a845654a88b9356526c25a740f39c3476020b99a601b41831cd832e3053a90b5cb4de61142f65b2a2babd9a45618036af6ba54c9a2b093cfb5bd7426056e09e6771af41d607cb9375846a4952ecc3a991225db49b31753f0839967ac9319b6c5d23a6365970a3fc4497cdf793196b6c9ad5280b949c825599b5d312b2f484939b960caa2696d26789f09b4d2ccf211cb3bc580acc4b0126380a6da109ef86385640667196a2c135a3fdd780d34513c0d35f78836d0f811945b7b617c024ba5aac93438397f216a4520213c036fdc81957630236323a56c72562236be7f127653269c2a6248357b134973ca90a100618279b1306907a9076f05e46a716cf79882707c942dac8200baf3a454d8e74258682313ce3252fd7a602a3114bdc50e33b29f18acea7180226532288ab678d4c6dc60a58366a61d6b124e247a39b24ba960b39a2da80637c9cf5838cbc5a5b7c1b7fc7e16777c9cdd1460c9eb32f1da32cad0c2437e3aa59f0020a106b06113f5e896730962d1efacb72084df7475eab9cb467ecc1f41177b644c9a68a961ea65d2323628e558d6b03abb2f5491c7c36244a3ba56191eff6ae71496da7372c5e1500e22a7796b2aff8856d75d3278b5117fbc42c71743bf7f24c78b76e3ea45ee2487a8f2899f2127d687b1f8dc579c2ea811d3c50d60c85f6e66457d88f91a63ab1ebc98a0b2167262700d35201975091b9ba30120c6eeca45992376a200d161a234be0c93b68661da9cf44a01071a8614dac8906d39eb475312b0c2e998ca7ab67bc77387e5b6cc8aec14d7ea894809c54e10649325881a89b132695adfcf444770c6ffab16e9211abf5d019e1471b843a3e7a38b5ce109a0a6796a0d822a926756f0c4a0fa03f53200d6cf37a1cb741f10219102b63425063d6a910b2fc574c49067a1a40e22ccb754926481b7f0ad0111943b3e67a570f0bc269aa50de26cb5f3507791b757370517d486d7a55a88ce86b42856705f6a7a48a8892e96ff20c304e74271e0b555c1b4b0d065a50d61bb2813cc3723009179dd2b4c37a0a06b2099c2aa0c4d256a2fe2042bf4b3db91b11028275b33b4484f2ccb9971df29703dd61c17dbc0319ac63d16080f5b5c460149ef751933ab60142404b66690a2c10a6e3aaa186f6c7e130577cb02ef4e043a6d4ab22ba85b5396a4d61aa1528becc59a1843a4d70283cd2f91457762ef34424b934be9a1547dbfbbcde21552f968c2c8692475632e78ab3d7330619e74d8c71bf3797844c717e70b51367963a7cd3c4869a85ddd213a8d34b788239056544692a7741124697d237d7e2677a908358d81da2cbacefdc511d3110e1152bf2d036c4593a0512523f80a26620ab1cd8b6b1d99a08f25ae3121713ac070833c544e42acfbb78d86476743923d7310c5a4238cce27773d3989d598affe6650c1166ad4ba0e034ccbbb5a75d69b113f2a1952a2cc6980c58ca6da32718e4484d562ac700d924545b6cef439234980611c99e69706054981349041e1962b272c4b0b8b416569952e4f98d4bb12de6a13bc1c903c5477b0ffaa1c0dcbd8e4abd4670832eba3d43d9c31147aa803c17bb32c65e3c350520297da9cdd6dca30ca025e85a051af5aa82d231c159a5026a0e8f2c16769105baf7708fab822b1777c6c53137ba11298ccc15d522400b7f85430de739514c90453ba97d9359807568417ea307abb8982707b7519a65b116466e984772f87a6346ac808c7b2cd22f08aba151e79ad8e45925d29294879a9dc00f60713e33091c42bc3ab24b65b488c764ec75b4117dde39ada784835d3129cbd7b777b1b69cc3293f07ade724639b761ca598464e6676e216874c9668b19aba660974c9918d52761acfa325031835b4d44b42fb91e431373781a2f60354e837458e69a89d830e00801178ba697f82a3a914345ecc1b5cb4b3357b6b7d41b708c5a7e4f862c44c8ffa90473495b70607386c02b4f0261e197124de180cc793355135bdf37cb36b9a180dacc2f6b09efd80cf35211a0371c59f396cd9ec226e1126d69a6ab8441faae9a1cbd18e17387ca0333f94acc7e35306a8b05f4dd185fc467e5e888159a50c6c9a51ca6b2deb9ba212822020d67552d4317449b51b21c37348c44e3880367574d5c195db588ad0189a80756eda780dda9a7d3c946b10d897ab8bb40d6441179b1b0d58271ea83000c5ad56175a23d20322d516b2a487c74a64eb3514c93b919d65cedf429bd37515fff66f4d72cee39a0081452f791b8054660da44937c4a443a09727ca5198322c341c12413c19b6075bb9118540bdc105313422cf9b8fa687540af66728fa9859a642bb9479b31257912cb5e0046dc9273199f27f4f3665aee6a7bdd19e0ab8baf1d2a868b465aef75f3ceb916c82bd81791e80158f8e5b358c218305d96a683a19c930c1903b5e0a4b15ccd8ad0b9e61da304ad616af46073a781ed8d08060c1678f48941d67b3685a39ee7491a53a20ea03e400a843c8cf4d04bfe0c0a3ce63dde01045e2669f7ae5da7905775aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec + +# Official test vector 97, seed: "59eff60b1ef6185db34ee1e3b1dd2f159106ceceaa79beb74923b4f5623d5bc52dbf5d2594a1f7c6c64d12cf144e9ed4" +seed: ba2fb9318d4dbe7488057c33e95e6f054583a2800c41bb83083c330a914a12cfe63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab +public_key: 09abaa56083952c0c1b6ec9a50251f3c16859c2c91c0076750016ad3ec36c42941af9c13e4086b37f5373cd29ef4d46d6179c948eac2738bcb765bbc58c8c0fc206a4e30267ed62537dc5202c5a717926744b296b2983b8291495161c920cc1258f209640549e5e7cbbe13ba52b762c6767c92a95678e066631b57e256880ae56189b699691999fa294b71135a7537202e8873d2653eacabba9d3082a5f01353b77da1cb4220301b84a14848b94d68309c6a29035e7cbf083bce5e659c0a226274e8534f61021d1743bf66525aa7c62759c9ea85155e139a9cc20f6b0776d567a8f1e697b97ca60982555c0197bae535a0d20ebd00a7774550e928647c40598d16a45da0810399cf38865ceb5c2ed7623ae9f55987fa37cce79aae79030f8c3b90898f758366f7f591452c77ea7c3203c147e591304138568d2257d07689865447179c017b0560b3165673526981c65858e842d913a9c22c0a9aac9fa4e16ea6b128b0bc99ff863b3f40b2819ab2e8a04cb353c7ecb2409e495e617a410e638bcb370b2c887b8adab2b9f95e8e922baacb1d148610cc4748cbf31b88da477029ca130b152dd923bd7796d0128aec6706c204ada1b37dc0149a7c318d8356a4f8c9cf917443fef20b02096579580d82bb8659b18365ba3347b081f42b17c3e2064a441b1a3a876c26060d22c370f82424e9b156145e93894de3ca09e4fa8ba6524eb9ea94980a038b257fb4da57d4c8b40ae5465a3a9c7169ccd30b13295546846a6bdcf13c3230b5a961b1ecf578abfa8bac3542820053717baae30a545261b873f278cefb73edf8cb73b9272dd7552e381da64c055470c199bab07cdc3293c0577d9acd9d9063b536412ac7cdee30a1dcfb6e25dbcedd5425508a1091555998931326fa69c78b5021f818f8a55deee77db38229b4104980c230dbb872cd671fe776a09be47852204c6a339126e3bac2353d36c094506092aa597449241121332900a69f8ba1b79ec56f047cbbfbd6bb2aa08f6e606d54c72cbb758357e49b937590a1191d88ba26ca576ecd320caa1bcbff8533695aa486d222b5749bc8f4297bb7938d5b4cb4f46d6ee701a35a287dc16f7dc1347ee97830ec69cdaa91ee061d3f0c81bdc695cd6939ae56be11681847629ea555747c664b5e111a9ac5159281438729916d45b8f0d3ad0e0514619ca93a8a971e9433c9eaa731192c760c5c5e32259f569dcdf39bba4c1b7269bd98417abfb1521fcbb640030563118e0f35bbfd0665023863e275c7d5319a1087bb2f956d2dd3ade6c37aa09c36cd5aa9ed09b8999c4473665ae2b784197cc9268c57bfb78dfb054bd1278e044582cc3c81c547c50fe7bfc270bf6aba9fc159a5853045af3758a8d552c3881d7c2879dbbb0b79b5a5c2300b5a380ecd199e3309251f9647598b7376290452a575f4ea7071f2a0ebb7b3dd9057350abbc1707e25d0b68d734689f0ac4c9b3242fb703ea6bb7fc064e599ce8f9269a0d63a719879ac8c396d79221babb2c4a0b7d38ac5b7e984f2212c481a353ba6bd95039443658eeab625d3d00faff2509a2c208afbc6016bb5d8726dc74993ad329bb9a554bf61209cc20e521b628d9c89c8fa687eb7464ac51820225b65b2af8489ed896d11825bc4df67f7002453d16875ce21ccf49b +private_key: ba593157e38d7e6735b6159ad0338a4f35cad3b7ae7e79c024b4b913a313d95059e2ac7273692ee4d6217090c1774b4ca473b09214a81a374e5d5350b51c4f52376e3c7a1622cbaa2226965afbcecf5b499ff7220d572db7d7916989cdd4d2ace6cc3a40949b02c52fceeb941ff6b6d2713de078753aa73836d72abfa96ddf790f0b8243c48247abe779db1bcd5ce01bfa061fe1b5436ae7cd7b7a3a65971e35360ac52b9c5b7214478c46f5864948d20396387333d7615f872bb94b0e7d71b2f831a2d30870feb190f42771f1f1b73ed88adf6bb732a1c159147aca38950060394cf04e7150308897b3b76706a17695943500e589b10b348bec1335cce863bf68ba50019c6d072e9a2aaebef070a7d65d5d2a8bc285b22dc91915008e2854a9b408a5e1f847fa492670eab6905a6367528efaf08a688cbc6fc86672e599c3d5ade10a4a92942d5705a03e881eda311cda81982e6aba55f29cfa835b6b19a7e0c39b48939344c1caa5882a7aa86721cb5674a14e62cb613f115e0cc36792467a7dd5701543898ce06223fb505ba4503192747d4295fb57508446c927b1c8378a96b4a56243d257c89993447cc183db3f6db7b8606c21536c01eaf14a7f2931da629365a0b1df157bb60424312155a8e80d049b66e9e134006c64bef8ad0b5a33fe857de7d244b4cc2f0d29a8d50c118540772eca4517712b4aca18f64c758e6698f701804cf0821c178d6d7ba43c2c694e8b4a8a356a8c26894de30658917bbc6331a6e77e6a327aac4ba2b19b02a79484ebf90cc2a235a8737802f7b71e6731f358156232a913b63ba94b932581162b622699659f66c984155187ffe53d8d6a3ee4d84e3b190088e001b3f3aca703a39551bee2a852aa4656f355b05b28194dc025ebca70ef90a47e96049f441082861ba5e563080b27035aaa0ac761c66b6b11978c18d1431d25ce69a6373d869d8ecc72b47550dd901aed51915e61acd36c50cda5ce545b7b3293263ae13880879bf96b7c6915074d46c636f4522f340b993cafd07c91fd646893dca37eda658dbbb52a3211a4e09dc20240a3f8c606a7b095715e5af180167b5807e3b414f69ec28874398b464e08254a60cd9b693b36643d82996ae2c82b8d26bacf106879091500b6a289c4c1a0a7b9c872865498bb2a40455e0ba3b6570a804204afd3942ee6b4169b8842508b9f6a5c1883a3ec98bd8119b147671003472ce1905981326b5057a6ad026843d323cc0593a132114d70cd030aa979d639bf22bcb286c13902cfdeb0beec163f8ab3c377d211b6d502ccc41137db92cdaca20ce5b83c2baa93d5c063db6d419537a7597d03a91f9d214869ca00ae46cab450ce11591cff53610053c3dacc5901a43959e55cc2751f792ac5ed288402782dfa4912989032295b967e4145d7046e76f4079338bc26d4c9f88203ee1412683899ddc534ac37608a6959efc72d7e24582fc9629a20059fb382e5891c85091de6c2600c98c58ea8205d2574c25c9c0d17809ef40d1db44e8ea895c40c8aa2448a6655442f0bb7a160aa8df8ba5faaaee0c19d16dc4d267279c0bba589972948f7c198e8cec71569e9863f968cb5df387c6a350a81f32ad9797c09abaa56083952c0c1b6ec9a50251f3c16859c2c91c0076750016ad3ec36c42941af9c13e4086b37f5373cd29ef4d46d6179c948eac2738bcb765bbc58c8c0fc206a4e30267ed62537dc5202c5a717926744b296b2983b8291495161c920cc1258f209640549e5e7cbbe13ba52b762c6767c92a95678e066631b57e256880ae56189b699691999fa294b71135a7537202e8873d2653eacabba9d3082a5f01353b77da1cb4220301b84a14848b94d68309c6a29035e7cbf083bce5e659c0a226274e8534f61021d1743bf66525aa7c62759c9ea85155e139a9cc20f6b0776d567a8f1e697b97ca60982555c0197bae535a0d20ebd00a7774550e928647c40598d16a45da0810399cf38865ceb5c2ed7623ae9f55987fa37cce79aae79030f8c3b90898f758366f7f591452c77ea7c3203c147e591304138568d2257d07689865447179c017b0560b3165673526981c65858e842d913a9c22c0a9aac9fa4e16ea6b128b0bc99ff863b3f40b2819ab2e8a04cb353c7ecb2409e495e617a410e638bcb370b2c887b8adab2b9f95e8e922baacb1d148610cc4748cbf31b88da477029ca130b152dd923bd7796d0128aec6706c204ada1b37dc0149a7c318d8356a4f8c9cf917443fef20b02096579580d82bb8659b18365ba3347b081f42b17c3e2064a441b1a3a876c26060d22c370f82424e9b156145e93894de3ca09e4fa8ba6524eb9ea94980a038b257fb4da57d4c8b40ae5465a3a9c7169ccd30b13295546846a6bdcf13c3230b5a961b1ecf578abfa8bac3542820053717baae30a545261b873f278cefb73edf8cb73b9272dd7552e381da64c055470c199bab07cdc3293c0577d9acd9d9063b536412ac7cdee30a1dcfb6e25dbcedd5425508a1091555998931326fa69c78b5021f818f8a55deee77db38229b4104980c230dbb872cd671fe776a09be47852204c6a339126e3bac2353d36c094506092aa597449241121332900a69f8ba1b79ec56f047cbbfbd6bb2aa08f6e606d54c72cbb758357e49b937590a1191d88ba26ca576ecd320caa1bcbff8533695aa486d222b5749bc8f4297bb7938d5b4cb4f46d6ee701a35a287dc16f7dc1347ee97830ec69cdaa91ee061d3f0c81bdc695cd6939ae56be11681847629ea555747c664b5e111a9ac5159281438729916d45b8f0d3ad0e0514619ca93a8a971e9433c9eaa731192c760c5c5e32259f569dcdf39bba4c1b7269bd98417abfb1521fcbb640030563118e0f35bbfd0665023863e275c7d5319a1087bb2f956d2dd3ade6c37aa09c36cd5aa9ed09b8999c4473665ae2b784197cc9268c57bfb78dfb054bd1278e044582cc3c81c547c50fe7bfc270bf6aba9fc159a5853045af3758a8d552c3881d7c2879dbbb0b79b5a5c2300b5a380ecd199e3309251f9647598b7376290452a575f4ea7071f2a0ebb7b3dd9057350abbc1707e25d0b68d734689f0ac4c9b3242fb703ea6bb7fc064e599ce8f9269a0d63a719879ac8c396d79221babb2c4a0b7d38ac5b7e984f2212c481a353ba6bd95039443658eeab625d3d00faff2509a2c208afbc6016bb5d8726dc74993ad329bb9a554bf61209cc20e521b628d9c89c8fa687eb7464ac51820225b65b2af8489ed896d11825bc4df67f7002453d16875ce21ccf49bcacca228846450ebb8f04a2a5ef2d919dfa47c4aa265f4cedd10cf74eef3ecc1e63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab + +# Official test vector 98, seed: "dddca9dc31bea737d3f474e7560b37facb2f53c803e768ffaade7669ff94b1d4fbd17068cffd5dfdd24aadada4ef6b12" +seed: aa6dd1e5799cdf7af9c4fc632b3eb9d51d66e85c8e0a21ec98664fc51ab63c7dfda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 +public_key: 9734408c884e736a271a17a9a5829a56e4ad6fd90402c18327f4b5b052a5d72585ad276a52228ea0794d4ae19235304674705176f76e909792b32b3f45f3c179464daa653c4885346b0921f72a2e186210542575e7abcc210bb7572c5ba97c475d8ba2810c54b9f23988725dd17967e9764513e1a34e55a9e32b05bd6a030425250a285fb331351ba4470eb2380318c9c7a56ed0664c6a16af63db6dc2a7c1c4e5a901c89ff7a589c099568c9bbb0482b04205595c242c66d99725a17468684b2be16b2757760b72a57974549c44c17bd2aa028a2c2d74b458c2bac3d34537ba095c34459b58aae4940fb3b68a73b28aca34cb018b92f65320bc3c04008394e17215abeb505b4bcd37d473da43569d557eb34b06eeca22c1264db881a6b37bbe9467899117b602304fdb72aaa60bbdba128214cc87fb980c1be3bcf9348bda62ccfa591328901c9b9851e9f9258e2a5f500053f9266891fc1ddf267c58c1aa7db72255f8c277d8535fe48db1d9b12cd97fde35c837d12f6b1c84e2c019e77469350bcb9c3791af132bf2ebc633f3c681e3801d0ba00a30672e955d84930c4012100c18b7a5a342d226341924034ac0953ce15584911d86c0689fd12d3dc4cb2d8748eec4abecc185ff63162e414e709cc3c5163de7b80e9e550d4a0b90de20b2fca850e3b11338bc3b5c369d616a2b64c764f78122abdb66860103371b773586463ea51366792872f36c53603cd876c4aea446e8811feb4417e3f21b94059f1d3c47584c09b128c549e48f6346cc3fa60ad19cb9b65359f04506cf52994ff5225aa24d68a00bc5171e0a492733e726eff02c2b956f9d6a6e7a8519e2b9c4c90b8db6b5447a0b589cb71cf0b74b899272a966c0b0da3824035c70c334818bcdfa2632e7a47ae8119661b96a6b4b17810a8840cc05bb3a0db2c6a60d10cb3e7ca365576250a380fa4b956ce066e72a0d7739a4b4e317988b64270732ff94c319a368cf0b8d8018a2d210bb37c695032a3b4da71e25e2287ef34ed68b5711ca99af1cc6b83caba7eb91d1f10eff920d9b41091e086487cc438e461344905b7e954121948ab8251fb0044e6cd8075f28b70a67132c8362b71b77298c2200e11b3013b6b2ec8b21e7a23a3cb9456567b3a090fbe642a1693501db47f8c4829d86bb1ae7accdd7763fc0b5e754ca5999a1544615dbb1acda7749c1d89073b130a4823600e322904c9599c31b67c963c307987fabc4e482910b57a56e2417eaf978008c9fa38103c15ab1a811b2b198a5b7201ef767a26a758400469ce0b1ca83920fbcbbc51c8697cc4b687d8ba41d45725551a09e5cb230532760cc15292c4ca9cc77f6e215d70c8f6e98b35fb21c5e0993588c8f76775f92c575c013270c167cddfc76de12261e84c1b506737a7448d00a6d07456fabb620d985607a32526d276846cc739276122bc14cae94543e11276805aedf36c404fc079117196383cef2681074f954249b859498a8ede375663755890613b15c2a8ff25ade0abc4d674a050369a596ac3e446cfc3171600367f89c9251e33db95c508e09a64f683fe7420c5ff73ebe5836ebec9e0ef1a39c02acd90275f5d9af9eab8c741023bc91806d255282846cb5fbcef030ee8e721d0566c29f469f5773938d679dbe17bfd7de66be5e +private_key: 632b0098b51f1dc64ab2b096e5ba16867caa3f5621b10c50008939adc17177533cb98244b0bc287309a67ba147c572adae003472437389d957f1d048f4b7c0e8d88469a6a87b771a7bd0a3fd1074f1b29080008fa72c9241e1b7622748d65bc6dd307645419a65fc5ba5d68e66c5ad250897b72c109541422019275b4cabb57a675eb3144be222f417aa85250c773b0689063e89802d6bb4010f4ba0cb57a1c69a5869e5a5508599744321f23496a6a9b8331786ffd2ca9b83b78469089885acc3f46b9f45437ceacf1a9707c394919801bb44f3abcc5a504f466890b15e902b9b97b8197aa19f25a41e0df87eb6b88c0c029aca3534f807837cc2c253a06c375c8728390263a6cb8d240e33c36268d283fe891e8b99bb935a33d15c0c588c82bc2905de885dafda4422e61b43bcc1b8731f1b6a85486988ae392d71aac97d326cd6115e26c23459c74ebf4ac2edc6209933a22e2162da6cca192271517687110c070d6a154a11054421bf8e3a9820f8a77794b3da4931a333928fd37e7c057117fb2f2fe9a19d65907801248a8009d0da2cbf572063ab7bee490f2c930c8ba0709579b9fc11079d48845de37a1af371c6947b12ac4a142250c92c63b7336967ca1797bac7b3a66e5a997672c4431c28a601cc1360689d1cb6304f8cc04f6c3e2f67a2a72746e5221b1d9a6018c4b6f0a6943ae927552968f7877f28cbbc9bcc410afcc780e06d6759aedf4a1b57d7cad7fc89b7b29e03810bd7babc8797768e930dfc3983aaea0a910a359b5c87d088961d529896183627277e707aa88a21096658663cbb756469542e9053f1102a73644d510b69da8b089c73ce4bf4bdc5b72ffcf4cd1c73ce0508393e409eae79c9fbf44b5e36c73d33af7fc9c084c52b3da21a57171eea865efa7c917fe92b52b40e36fc5cd8e961fd207fd7167c7d302137c5841352663a3931e96382966c58c3039e182cb1e0369813bc90312a9ac6026d4f8c24da0445b3687c27a8363d702ab0579bbd3a418fb6af26792bf96281b0373469d96e74803a5658a413f19a43f95e784b91586c14461134811a0c976c25a7b8491514a1ccf83904489585b841884c0ba39046508728dd02a9a3163ec17cb1422c3bd8194f845259952c1bc7da1616748c19e002ab8948bfb00f7b53446bd1138d7b87794423bed453e5a7bb0e915841984bad6cc970f9c95f120855203df5936a8871611ee897f9e050d5a3931c1219f61a8da6d75ba0e85c0a674cc39c583ad01f794b628ae221d9e8aaaada889c43b56602c73ed2cd5fa084c7b207a43360a8c58a3f405bba290b39723b63b10951ecad19dc266d045a49a38857941534f28e775269bab9a381a60e244543b3e26fcbcc0d47575a82da58aca50239da726e0570a8eb3f6714b2fffb9038d42345977fb3156ca1eaab577c0cf4516aeb81bd1f6b92276ac4cd37b67d1b6083e126cc32c91d28c531802e41f707ab740903e5213e2a378397a52793c0b8762d67d846de86520f8745a8112c80f48835a4033ba53ae0e7b43afc44994b13e76663d1e6a2519844ae08536aa055a428af5144be296b43aada192d142ec933546735a6accb4a5a99852ca751c24cae5738a99734408c884e736a271a17a9a5829a56e4ad6fd90402c18327f4b5b052a5d72585ad276a52228ea0794d4ae19235304674705176f76e909792b32b3f45f3c179464daa653c4885346b0921f72a2e186210542575e7abcc210bb7572c5ba97c475d8ba2810c54b9f23988725dd17967e9764513e1a34e55a9e32b05bd6a030425250a285fb331351ba4470eb2380318c9c7a56ed0664c6a16af63db6dc2a7c1c4e5a901c89ff7a589c099568c9bbb0482b04205595c242c66d99725a17468684b2be16b2757760b72a57974549c44c17bd2aa028a2c2d74b458c2bac3d34537ba095c34459b58aae4940fb3b68a73b28aca34cb018b92f65320bc3c04008394e17215abeb505b4bcd37d473da43569d557eb34b06eeca22c1264db881a6b37bbe9467899117b602304fdb72aaa60bbdba128214cc87fb980c1be3bcf9348bda62ccfa591328901c9b9851e9f9258e2a5f500053f9266891fc1ddf267c58c1aa7db72255f8c277d8535fe48db1d9b12cd97fde35c837d12f6b1c84e2c019e77469350bcb9c3791af132bf2ebc633f3c681e3801d0ba00a30672e955d84930c4012100c18b7a5a342d226341924034ac0953ce15584911d86c0689fd12d3dc4cb2d8748eec4abecc185ff63162e414e709cc3c5163de7b80e9e550d4a0b90de20b2fca850e3b11338bc3b5c369d616a2b64c764f78122abdb66860103371b773586463ea51366792872f36c53603cd876c4aea446e8811feb4417e3f21b94059f1d3c47584c09b128c549e48f6346cc3fa60ad19cb9b65359f04506cf52994ff5225aa24d68a00bc5171e0a492733e726eff02c2b956f9d6a6e7a8519e2b9c4c90b8db6b5447a0b589cb71cf0b74b899272a966c0b0da3824035c70c334818bcdfa2632e7a47ae8119661b96a6b4b17810a8840cc05bb3a0db2c6a60d10cb3e7ca365576250a380fa4b956ce066e72a0d7739a4b4e317988b64270732ff94c319a368cf0b8d8018a2d210bb37c695032a3b4da71e25e2287ef34ed68b5711ca99af1cc6b83caba7eb91d1f10eff920d9b41091e086487cc438e461344905b7e954121948ab8251fb0044e6cd8075f28b70a67132c8362b71b77298c2200e11b3013b6b2ec8b21e7a23a3cb9456567b3a090fbe642a1693501db47f8c4829d86bb1ae7accdd7763fc0b5e754ca5999a1544615dbb1acda7749c1d89073b130a4823600e322904c9599c31b67c963c307987fabc4e482910b57a56e2417eaf978008c9fa38103c15ab1a811b2b198a5b7201ef767a26a758400469ce0b1ca83920fbcbbc51c8697cc4b687d8ba41d45725551a09e5cb230532760cc15292c4ca9cc77f6e215d70c8f6e98b35fb21c5e0993588c8f76775f92c575c013270c167cddfc76de12261e84c1b506737a7448d00a6d07456fabb620d985607a32526d276846cc739276122bc14cae94543e11276805aedf36c404fc079117196383cef2681074f954249b859498a8ede375663755890613b15c2a8ff25ade0abc4d674a050369a596ac3e446cfc3171600367f89c9251e33db95c508e09a64f683fe7420c5ff73ebe5836ebec9e0ef1a39c02acd90275f5d9af9eab8c741023bc91806d255282846cb5fbcef030ee8e721d0566c29f469f5773938d679dbe17bfd7de66be5e4126f5151d1b086e26a88bd9f20710ef06aa0f834722b801f6b79c031f1f9213fda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9 + +# Official test vector 99, seed: "2a6f7386b815366f572aeb6c79e272cc21b7095fe09575f18072c9d677da23bc9c8a4bc393b7524604d299bedd260c8b" +seed: 195d6c86a3df4c21e3007d7f2768b43c74cb3060e0eca77f0a5d3271542b9a84ae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 +public_key: 5fe1c21f16c49f6b02f2450f4ac135a9eaa5e24a3e3f350a6982b5979a93120285dac88e01923060a795d251c1fedb130828582c95ca7340b2e8e105cfd64f63e63f85a955dcc4b12b0482d0994df7ec61b8b09aa4d1b8ceb94b769a2ae12031d16c05cada3a4d0350e8d970ccf716953543a984cdb086c425915858d454880c97505bbb9ac7cfa54055526689033c8241300e11d09283441043b91354d1c0dcb4a869f225c8ba5b290a77629004ba336c8975366002667c99b88b53a4b08ab564733b5d2a3011f944b2259845dcb6ab8956836656e3370f5981203943b343389f2a98cdc96bc1a996648580b7fe837817ac4db31a2d325a869950a32d99446256cb3d8b91c159683bc8c1ff41287ca54530e84082bbafad485c0f179781950a4722c9114485f6b403f3760678e3bbefda309adc41ca562dbcb739654abc6cb05216807e2fe18fbb485977380d8c0282e271c7f1f8c14694484b76241a1b0cf3928ad9e328357ab75fe909957419defc8e0da3469e7720a5e91df7c4857ed50b89d18ffaf6a045e2c950e178adec7a3d690fa23527d3d353d8731857018d7cc909d081cab0370cfcc8bf8f5463a4fa8706a1abdf2c6a7fe8c834a4ccd8b6c869c6bf93c808a43274620b30aff22bbce53a7ff85145779cba220dabd1b597f4515c1664a374a64ae18884b0919668a70b371e24d2ac1a84af7de3b84f804e105177f6a9b914cb5dce45c678c886b3b24e3649cb194c548fba4114f278a56a4310a7cf1cb16e8ecc0b0fb8a2685b30631753b7f87eec8578684a67634119fe8cb334b67b741305aee8762639a212b9baab4032653b1537327eba5b6fed245d17631e748532426c5a4f4646716521dcc72f4c34a38bc87a892650def1bf09991e4c175d0baa1bf6469277f75a2812aacb88534c491f4d3c884a4470f01b805efc160ec17f68b0b0eb9910889a02467232fdb268848a5d6969c91410775fe717c9103cffb9a2bc13b1bbba01abb92ae303abfefc51af169d25d29316e7a12a5bca6827c25df567ef0c20f13a6fd728a32e229f72b42e74470c88c105bec0a12a1810c3d2a3d84b89a8c9bf66cc305f0b0c3fb989c3541daf147d5b02813e7904cc18a5dbb6632af4a34cd42007f09ab4a88c1705958058bbd6f996fe7642a0b45b690317d0e658ea82094d6b8d55722123fc1bd349433ad4850b19a4f6616685767e67bc21333a9f667a6c422087398b3331c075cea9aea6e29e424653d5e7a86766613732343341491726869eda4f97f1982e62c4cf135b1553a0a842b35e8ac23f29a921039bf31833f12ca8c4f02021559e1ab5bc37d247a5078280f02956ba2e2f897b48e18a769908e6b8b15c63b5a780580d02b5f70749a5442c824a0f56cb00378bc0ea2b033fbc9d45d535ecc00f5579a687865702436d3065461a06c8b274561d938d92290a8c0bbc0cc746aeb253e4823f8bd7b6becb5b1f8a5403fcb40efa5f6c34c43620921a416aa769a6ea1ca15c765d0e53c70b0a719f7b47ff783b63701af5a9cfe704c7d99830734c1b1fe00a1d9166b11060baa09501715310b93ead6825ba9998d922ae362092349aa45abb04781a98b25989e8309c40698a2676b49fbdca7775f554d2448358e6a4bf5373892b712b63af3392fa95dea1a8 +private_key: 2feaa7e47b8e973ca66cd8be82e5983d295eee270134086481a92e55d3a282cb4e702b234e3a49ae7b532f6183e0b57e4cf688121a5da377aafdd36f1180816ed91c28038776169ea0a11937e229f7b57447f4295f457bdd89191d6a89f6a7146b55a5cd16c743bc3f3f60bdac4c1ee7727946157bf1929d6b7c15836c6b28445601497e07376426239aa3c0bc8135570d9623ad828f858a6ec5e4946f189864e87249eb574875409aa22967141380c633ece33567da5811b9a40759403becc297ab63622bb9f0b5cbf52378be037882ac9b25414817b4784101683b8696a6f9178323762bc419fe939ab0c8640422743b3a7e628382d36bc42afc4dd206a160dab1d1551b0e7a349e14b5b66077d6b85082306b1dd83ad0b16157e0c1b910a5d3fa562ff2c008804f6c1caa8f18336082ac4f8abce7d4a1e680361140b69b80574658c6f6f0a4d27104dcf29c55c74500db129e55114121764152c0eafc1e88350816057197466b50da92cc034996001a503040b7847fafa5950e8acda9a3c3eaa6b7e475c806401be2183100447d82284515a1a191d01ec7ea8eba84701feb15bd149af2e66cb3844204e3bca83976a088a291fb6c70425a09e42d292b1afeb0c0ac94361b5673ffc25a4b5812d211b0aad388fe1538a5929edcabb11e317de597b8db653cdc552938925a2be642fcb78bbc271584a8b27904c4fb6001304822cba9b96b9b0a79901668236494d68a455129e9869693dab64d4b13b7ca6fad71942b955c1356735b0a27aa037b420300983155c96903bd4b1235c21e8273416660b5b977ce37b6b44bbb09bd197a97cca98cb87a2ff1bc9c0a051ed98560b6b761055d84143f052a686bb3623da02a208b184d1426683484a7594aa22cc705173024f35b8e24977d421606197e0c21c9d145c316b7cedaa13202dc2cd4c62224e01eaf865f7b018a4a938920f848f436ae530a591a2617aa97143f8ab2005b9f9b734c82145c34567c59518a8ca13100ea8b4e3420d698450b70237765b62e433cdd2a842468bcdb42a639aa9644d89f4840351f3096f5c67cf17baad6cba5c79c002ae25a55f224e3b577111b4647e0cb0cb12907554fb96b77a8f267593a3f506b1cf53b6a01136edc0a684e2b8b4825066053c8c232b736c321f1708226fc3a131b1073867cc0872c53a85426ca1bc3756b329598072a352ab82fa8a61429a58ef21c2833d1bde2c1a919c75ad52a4162abbe2829b2fe93c7990ac7cfec8eea930fc5cb9ca13b2da2e80de600325d965982626f001371f59aabff88c74e028c49d5ac3c766efea499e2375a330c91385831e990cd69d6cc8a415a4e563eafa0319607b171b130ac842c66589dcae283af2b884beb6b6ec84e48f037afab54fc2c6486a7a13c9c3396d3b6512a576cb87599aa7aedc97275766d6a96af28327dedb27386923b98b647d5003d5edc718b0477a5164000799ca30c08e8f8a9ee728cd0b0aef4c16b1d61c751e32463e4b785223bee6227e3f88fcb469cf250a64bc7a3149ab3edaa730d6b4e6920b7b5c2bd55b97473b91c3c1c5923067c08db693c97ae832427dc6439576749df139e19d9580ab8c49eb15b80e09e6845335fe1c21f16c49f6b02f2450f4ac135a9eaa5e24a3e3f350a6982b5979a93120285dac88e01923060a795d251c1fedb130828582c95ca7340b2e8e105cfd64f63e63f85a955dcc4b12b0482d0994df7ec61b8b09aa4d1b8ceb94b769a2ae12031d16c05cada3a4d0350e8d970ccf716953543a984cdb086c425915858d454880c97505bbb9ac7cfa54055526689033c8241300e11d09283441043b91354d1c0dcb4a869f225c8ba5b290a77629004ba336c8975366002667c99b88b53a4b08ab564733b5d2a3011f944b2259845dcb6ab8956836656e3370f5981203943b343389f2a98cdc96bc1a996648580b7fe837817ac4db31a2d325a869950a32d99446256cb3d8b91c159683bc8c1ff41287ca54530e84082bbafad485c0f179781950a4722c9114485f6b403f3760678e3bbefda309adc41ca562dbcb739654abc6cb05216807e2fe18fbb485977380d8c0282e271c7f1f8c14694484b76241a1b0cf3928ad9e328357ab75fe909957419defc8e0da3469e7720a5e91df7c4857ed50b89d18ffaf6a045e2c950e178adec7a3d690fa23527d3d353d8731857018d7cc909d081cab0370cfcc8bf8f5463a4fa8706a1abdf2c6a7fe8c834a4ccd8b6c869c6bf93c808a43274620b30aff22bbce53a7ff85145779cba220dabd1b597f4515c1664a374a64ae18884b0919668a70b371e24d2ac1a84af7de3b84f804e105177f6a9b914cb5dce45c678c886b3b24e3649cb194c548fba4114f278a56a4310a7cf1cb16e8ecc0b0fb8a2685b30631753b7f87eec8578684a67634119fe8cb334b67b741305aee8762639a212b9baab4032653b1537327eba5b6fed245d17631e748532426c5a4f4646716521dcc72f4c34a38bc87a892650def1bf09991e4c175d0baa1bf6469277f75a2812aacb88534c491f4d3c884a4470f01b805efc160ec17f68b0b0eb9910889a02467232fdb268848a5d6969c91410775fe717c9103cffb9a2bc13b1bbba01abb92ae303abfefc51af169d25d29316e7a12a5bca6827c25df567ef0c20f13a6fd728a32e229f72b42e74470c88c105bec0a12a1810c3d2a3d84b89a8c9bf66cc305f0b0c3fb989c3541daf147d5b02813e7904cc18a5dbb6632af4a34cd42007f09ab4a88c1705958058bbd6f996fe7642a0b45b690317d0e658ea82094d6b8d55722123fc1bd349433ad4850b19a4f6616685767e67bc21333a9f667a6c422087398b3331c075cea9aea6e29e424653d5e7a86766613732343341491726869eda4f97f1982e62c4cf135b1553a0a842b35e8ac23f29a921039bf31833f12ca8c4f02021559e1ab5bc37d247a5078280f02956ba2e2f897b48e18a769908e6b8b15c63b5a780580d02b5f70749a5442c824a0f56cb00378bc0ea2b033fbc9d45d535ecc00f5579a687865702436d3065461a06c8b274561d938d92290a8c0bbc0cc746aeb253e4823f8bd7b6becb5b1f8a5403fcb40efa5f6c34c43620921a416aa769a6ea1ca15c765d0e53c70b0a719f7b47ff783b63701af5a9cfe704c7d99830734c1b1fe00a1d9166b11060baa09501715310b93ead6825ba9998d922ae362092349aa45abb04781a98b25989e8309c40698a2676b49fbdca7775f554d2448358e6a4bf5373892b712b63af3392fa95dea1a8b6f12914ed31f14f79c652eed4db478de7ebd263fe27052509fee10b50f2d053ae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21 diff --git a/crypto/mlkem/mlkem768_nist_decap_tests.txt b/crypto/mlkem/mlkem768_nist_decap_tests.txt new file mode 100644 index 0000000000..784fea3580 --- /dev/null +++ b/crypto/mlkem/mlkem768_nist_decap_tests.txt @@ -0,0 +1,32 @@ +[dk: 1E4AC87B1A692A529FDBBAB93374C57D110B10F2B1DDEBAC0D196B7BA631B8E9293028A8F379888C422DC8D32BBF226010C2C1EC73189080456B0564B258B0F23131BC79C8E8C11CEF3938B243C5CE9C0EDD37C8F9D29877DBBB615B9B5AC3C948487E467196A9143EFBC7CEDB64B45D4ACDA2666CBC2804F2C8662E128F6A9969EC15BC0B9351F6F96346AA7ABC743A14FA030E37A2E7597BDDFC5A22F9CEDAF8614832527210B26F024C7F6C0DCF551E97A4858764C321D1834AD51D75BB246D277237B7BD41DC4362D063F4298292272D01011780B79856B296C4E946658B79603197C9B2A99EC66ACB06CE2F69B5A5A61E9BD06AD443CEB0C74ED65345A903B614E81368AAC2B3D2A79CA8CCAA1C3B88FB82A36632860B3F7950833FD0212EC96EDE4AB6F5A0BDA3EC6060A658F9457F6CC87C6B620C1A1451987486E496612A101D0E9C20577C571EDB5282608BF4E1AC926C0DB1C82A504A799D89885CA6252BD5B1C183AF701392A407C05B848C2A3016C40613F02A449B3C7926DA067A533116506840097510460BBFD36073DCB0BFA009B36A9123EAA68F835F74A01B00D2097835964DF521CE9210789C30B7F06E5844B444C53322396E4799BAF6A88AF7315860D0192D48C2C0DA6B5BA64325543ACDF5900E8BC477AB05820072D463AFFED097E062BD78C99D12B385131A241B708865B4190AF69EA0A64DB71448A60829369C7555198E438C9ABC310BC70101913BB12FAA5BEEF975841617C847CD6B336F877987753822020B92C4CC97055C9B1E0B128BF11F505005B6AB0E627795A20609EFA991E598B80F37B1C6A1C3A1E9AEE7028F77570AB2139128A00108C50EB305CDB8F9A603A6B078413F6F9B14C6D82B5199CE59D887902A281A027B717495FE12672A127BBF9B256C43720D7C160B281C12757DA135B1933352BE4AB67E40248AFC318E2370C3B8208E695BDF337459B9ACBFE5B487F76E9B4B4001D6CF90CA8C699A174D42972DC733F33389FDF59A1DABA81D834955027334185AD02C76CF294846CA9294BA0ED66741DDEC791CAB34196AC5657C5A78321B56C33306B5102397A5C09C3508F76B48282459F81D0C72A43F737BC2F12F45422628B67DB51AC1424276A6C08C3F7615665BBB8E928148A270F991BCF365A90F87C30687B68809C91F231813B866BEA82E30374D80AA0C02973437498A53B14BF6B6CA1ED76AB8A20D54A083F4A26B7C038D81967640C20BF4431E71DACCE8577B21240E494C31F2D877DAF4924FD39D82D6167FBCC1F9C5A259F843E30987CCC4BCE7493A2404B5E44387F707425781B743FB555685584E2557CC038B1A9B3F4043121F5472EB2B96E5941FEC011CEEA50791636C6ABC26C1377EE3B5146FC7C85CB335B1E795EEC2033EE44B9AA90685245EF7B4436C000E66BC8BCBF1CDB803AC1421B1FDB266D5291C8310373A8A3CE9562AB197953871AB99F382CC5AA9C0F273D1DCA55D2712853871E1A83CB3B85450F76D3F3C42BAB5505F7212FDB6B8B7F6029972A8F3751E4C94C1108B02D6AC79F8D938F05A1B2C229B14B42B31B01A364017E59578C6B033833774CB9B570F9086B722903B375446B495D8A29BF80751877A80FB724A0210C3E1692F397C2F1DDC2E6BA17AF81B92ACFABEF5F7573CB493D184027B718238C89A3549B8905B28A83362867C082D3019D3CA70700731CEB73E8472C1A3A093361C5FEA6A7D40955D07A41B64E50081A361B604CC518447C8E25765AB7D68B243275207AF8CA6564A4CB1E94199DBA1878C59BEC809AB48B2F211BADC6A1998D9C7227C1303F469D46A9C7E5303F98ABA67569AE8227C16BA1FB3244466A25E7F823671810CC26206FEB29C7E2A1A91959EEB03A98252A4F7412674EB9A4B277E1F2595FCA64033B41B40330812E9735B7C607501CD8183A22AFC3392553744F33C4D202526945C6D78A60E201A16987A6FA59D94464B56506556784824A07058F57320E76C825B9347F2936F4A0E5CDAA18CF8833945AE312A36B5F5A3810AAC82381FDAE4CB9C6831D8EB8ABAB850416443D739086B1C326FC2A3975704E396A59680C3B5F360F5480D2B62169CD94CA71B37BC5878BA2985E068BA050B2CE50726D4B4451B77AAA8676EAE094982210192197B1E92A27F59868B78867887B9A70C32AF84630AA908814379E6519150BA16439B5E2B0603D06AA6674557F5B0983E5CB6A97596069B01BB3128C416680657204FD07640392E16B19F337A99A304844E1AA474E9C799062971F672268960F5A82F950070BBE9C2A71950A3785BDF0B8440255ED63928D257845168B1ECCC4191325AA76645719B28EBD89302DC6723C786DF5217B243099CA78238E57E64692F206B177ABC259660395CD7860FB35A16F6B2FE6548C85AB66330C517FA74CDF3CB49D26B1181901AF775A1E180813B6A24C456829B5C38104ECE43C76A437A6A33B6FC6C5E65C8A89466C1425485B29B9E1854368AFCA353E143D0A90A6C6C9E7FDB62A606856B5614F12B64B796020C3534C3605CFDC73B86714F411850228A28B8F4B49E663416C84F7E381F6AF1071343BF9D39B45439240CC03897295FEA080B14BB2D8119A880E164495C61BEBC7139C11857C85E1750338D6343913706A507C9566464CD2837CF914D1A3C35E89B235C6AB7ED078BED234757C02EF6993D4A273CB8150528DA4D76708177E9425546C83E147039766603B30DA6268F4598A53194240A2832A3D67533B5056F9AAAC61B4B17B9A2693AA0D58891E6CC56CDD772410900C405AF20B903797C64876915C37B8487A1449CE924CD345C29A36E08238F7A157CC7E516AB5BA73C8063F726BB5A0A0319E57127438C7FC601C99CCAAE4C1A83726FDCB5045ED1A82A985EA995396D77272C66CE493289F6110910F37C2741CE47026A6F8261999C6482572B1693912EF12EEBEA7ACF9234FB409F2A6090E6B0BFD895469D0B2A921BB723F87A33EA5465AB90F514B67698C0768B6CA498B022C512FA0875F054AA2265867E31C0E522651E024A07D60DD9F633166921F4126BC2B6AA01CC15A09B85BFF8218C5AAE95BC1FFB26AE5A137670F04910CA9D7241B6660C394C5455917746A26682FB71A432EA9530E839BDEB07433004F45A0DDAA0B24E3A566A540815F281E3FC259AC6CBC0ACB8D62268B603BC676AB415C474BB94873E4487AE31A4E3845C79901550890EE8784EEF904FEE62BA8C5F952C68413052E0A7E3388BB8FF0AD602AE3EA14D9DF6DD5E4CC6A381A41DA5C137ECC49DF587E178EAF47702EC623780691A3233F69F12BD9C9B9637C51378AD71A831055277254CC63C5AD4CB76B4AB82E5FCA135E8D26A6B3A89FA5B6F] + +c: 74A26C7D27146A22C7EAB420134E973799CEC1DA2DF61AE0FA7905A3A47485A063076BFA22D6E4FE5059DE0A32E38F11ABD63F990E91BD0E3A5BC6E710DFE5DC0F6D4A18147EBC2E2D9B179374D83692C53EFBD45F28A2A928C2494F903576C410EB1773895EBEADB119960EEBDA9C3C710795A6D9B781FC58B30D08107F4E20944A382AFB079F31D21724F2C26E6A53412F0A908BE7586F2B3D6D7C1DEA0270E98AA209244BD88ED68AAE01432342BA5F49E015CB476B5B78D15EA77A354CC9E9FD07137D8760BE42FD4746C62C02028E7B405DDC95DF3D021921CFEDDB3D961B957ECA302A263DAB2DC117BEB3E79EFACFCF936DFC09FC0D19C358D724FA381EA06CA067C384E944302C3907AB15A1DA4B41352692ADD59B061541F07EFF25EC42F46E1A0E370CAD06FF3FD997D4D2C5648AF762231B382D0593401936CBA21551A2AE30D8E8EFFCF43916B83138BB5E610364429879FA9CDD5B7D3CF2FEABAA1DC8D50CE69402E21103E795DF7074D1FCF65F8A4E18986D5417780602C63BE5A044863384BD3D8FFB685EAC567ED8349DCF2CEB702B7375B145729998049D13E2CD466CF2231B9D3A20018EE908F8514A6C6A89DF7232F91FCD84B81EBC8BC539E9A37A4324755564BE1BF4FA1FB4571E0ABBC9B52F9D090C33BE599DE6C8532C7CB7EC8B4E2D3C07505280E99923865903FFD18BC13B9C8164AA1EAE84E38D3F57FDB8801785F105A6A8574BD2FE9BF305848E525330BC2D24F0257E47A4950F433A9233E8CDEBA81DBAE7D8C1A06D01F70DE6EF663207D84952827BAB3D451CBEA0990007FBDB4240FE899A706F7C1563E05C70BE9D575189EF83E0CF76195F6652491CCE04F1CE2092170A92E0DD7301246A4C44FC0B4EE6AAA63FC7027840ABD2EC25F654589738CD38B9E10B975CFB6C1D2EB4DA97736998F84FDDDD810D72DA3C5AB13507420DDBFAA4F7750C1FAE9C7DFB30F40A12AEA689FC78DA900020E3ABB32A364D5C6B3C7544A1B5734A41E95C8314B448CD0B738D829AF772A8F81C51ADBA2D85F326C8F5D6961CF12D44A9BEDEA00D1DF5B48F429B1CE0C15EA5F5BC10B017247BA2C6BE922B0563B8E9698677CB6C45CCF2081BF84219D2904C11FF92199F8AEFAD62D8608E200802C5A07202CC820E9E520E31BF36A83002ECA4018B0B3A398801562AA86C77AB0D50A8FBC3768B0A643B97E7F9072168DE29B8175999C9AA48D301A3F0303172E9C7D4F16329D5CA9D42397C3982E10C9DA42DE88BD6C2AB91C1E71E778E58BB8F801F207A88A9B47F9C687AFBBA34EDA6D2899E4FA0008AA2B539711753DC7C07F614E814F683D6C037562AE1FBBE6D7D5FA54B7A6D9451E11B01AACCC3BF2ED64742DD100E0EAB2DF6CCCF937B6D5981ECA0E01F3245CF26A72AD1ADF066C8F5430D72F509963A657D85E554C14E26E8BEC5D5F3AB998C9B29F16B04747D80749B30E51FD2A7F690C22F9986AAF6358D6FAB8DED54971B32641DE2B258590EEAA6BF1F32324A7C4C983F49466D86 +k: 3D23B10DF232A180786F61261E85278251746580BEBCA6ACBAD60AEF6952BE69 + +c: 39EFB90089F1DC32A54370B3EEDF2B12880DC7D657F0404E41F7DAAA73E7F06CB90BBEEC7544160768EC3B56681D057AE1DB58F0123286D3A8CDD0B414CF9894FDA1CFF3A37CF67B82C5C7AD3427F2F2B393978B94E524F33334E4A98AFFEA8D7514D6E12E85086E58A0C078EBA64435441F3E3702EA27EEA984E46893BB886572491F22AE09F8D50774B4DDD5CF478CB0B2D070437E86645EF62AA83599093732F81A75D1D5DE15C31EC81AC4D67852FDE089D580B71E3DB07C71394424E0936BF74D0C9405BD3DFB60B920E7EFA38C72D5912BBD301BD3F3709CBEEEB7BFD0767B77A8639913E8C228FBB7E3E13C423BF05AC65B7E75F29C9048F161AF1B4B41C495ADB53FECC57FED0DCF792050A2A586C33AA4A7F6BCDA9068EA295FB692BDCA756FCC47CA0A8C84DB5DCB6A616605F3D3A34C4D23EC14942492C07EF123C8D084DF21F3B2141D277FA16E3CF4D5A3AB8D78CE8370F411DF737647A2D6123120AEE1CCF7DEFC35A5408FA6013E94703E8E04C50BADCBBF2E1FF0FB82DB4AAC595B9EAA9E370C9C6175CEF20B1D0B8A4309AB91918451E6C8A6DF04AE468D446FD9E83F9252F145A2B44A19E7B27DA56044717DB5A6ED5F6E5CDD90208ABC324290292B1F2E84FB69F5989D9921DCB4F058DCAF7B99DF71B26BD1090E457767954B8ACC84FDDFD663D64027528077B3C9E370600942E4C1175B487FBF25E267474B5238576010CCCE3315CEDD5634658B2028F3FB9959D77FA23756DB4878697C9BC491DBD68986B9073D187F2A9E72C943D94C97DA865CFD9C23508105637FED62E56E745555909A49D23B86E620D48FD55A92CC2266C38B857F5DF9BB683D60B084819CF04F5BB8CBED05AC6F48C518EDB5B222F5E6DCBB438182A7BA3B2279E5856828CBE9BDA6009A70D20DA082D2FFBD092EDAD4B272E46D215B8ECC26222499F024327A391CEB007789757FF8FA8267429F0534F305F75709DCC4229803EA8E612F55890C5FDF8252794D5C9C4058C2258A5599BA858A02F89A6FDB35C4F2364A4C6B326A31F7D04F62C2FAFE51D280CD7A4CAB66404FDFD033EADD07974BCAA7F0CB7401B9484DAF9F325B6BA53FBF41219384B264F24AA8D65281693295E6F71FCA885F808026829A3FC32DC9603F0CED36F0B58A296B44ADDA3AAF10638C31F354D1A5AC34E77D4D0154C9546709E920258F73E039FBC223EE74A270840165F64E3051B10B5E63F9ACCF5D1EF40E43F5823B15F8C25CAFCE698A64F9AE316D3905B8E510C56CF7544CA94719735A640F2B8C3A2B828A04E0568863937595E5B9DADA33533D9D676AA657FE69152E93159A00C5962F4DFF9C901A9AB32DB28B93F4BA780E44A2F73878AA76E112E3490205AF83000EFD889FCEEA5E87AE9AE01EE1CCF6BA0461A8D8654B7702C09BB41C4F61A00D05F031B244EDED8D1CAC7916BEB9AA67A3880F4C3516A8D8204932EA00EFB3AA20369FB6BE404843C7411E88428568AB9A39124EAD115298D49C998651E5EF613A6819336683 +k: 1D2DCACEC14CBB78FE9E418937835EED088CC0683300C965EF3972081F01C4E9 + +c: A5C81C76C24305E1CE5D8135D41523682E9EE6D7B40AD41DF1F37C9B17DCE78076019A6B0B7C95C9BE7AF29507B2D5A6987C8EE3259190855243E6E56F5620608C52D96FAB103A8700FBA1A87DCA6078118A0871762C9534C0C0C3978C91C3A01F0F608DCF757815438FE8957C8A859183B1B6721A0865BEBC799D4E5C0E7BD3EAE4858E6AB6A2E7658ED80D4ED158B036B93FA03AFA6AE3136CF3D693C911BCC75905E5B0CB2865B9E9884522A77777613E53111D5A1C7D3DAB734CEB03657AE0C89763E99471054776BAE7D51B0E73A5BB35AEC30FF6BC93684916FEF1162586452F426653E2CA844D5744307FF9AEB287A6447783B21A0E939C81421D631F5DCB452E51ED34E3DAD1CF504E0A3B0F4711A8DC6499D1691D109569336CE1558A4C0A464E2087EA8F9E3B18F747EF61F4576AEB42B17CADB7F0FD84DA8E3A6F471D95EDFA65BE9E6C9F6AE756A22A4F1A5C543C26BA7BAD88E16D5F5B7E12E2D4CA34B3A64D17F87CCFC4FF8C5E4F53752A077C68721E8CC817F9FF24876170FF2AF89FA95855A5B1DE347C07FDDBCFE7264AA5ED6401491561D831538F852B0ED7B9E8EBAFFC060284F22D2BAEE56FA9F6D01432A115A2D6A64C38AE0A50BA362FB57B53E3E855B83CE8C42274045599F65FA6A8921D85F94ED230B516712DB6FD2FF28B3A3371D9BE058AE75C2FA591B7EC3C3DAA1F7642BC26C324C08090607E6662154DB37CF747967A1F9FC29089F570EBE60EEEF89FD24481028C85AEF1DC3B09F22CD3691BBBB821C7A8A0F35AD12BE1DD199B977048F3D48C16BB2CA94CECB8928770D5BB329A0327E0B286FAA1C65281031A31C84F2EDC9C04D475ED4E128E51EFA97D0148CBA6C95F674C589F301C265BED708E9AD8DA3C5CECBDEEED35EF1E253132BA89920D786B88230B013BCF2DC92D6B157AFA8DA8592CD0743D4982BE60D7C2D5C472AB9FA7F4CC3D12B0EBAF0ABE555C75805426844DD9428643F84406A1B8D6FAEDFD8AE6E73A72772A2159ACABD972AEB6F7DE091AC5FDD7F49A3DC6641CDF62446B4B04A31F73B80A62F80A404A8CB18CE3E65480EF7B52BF0091117E5D08EAE1B0AABB72E6DFFFF76F6E44BBD7EA570D6604BC2E74318BAFA315A38861AA1B21AFB2A53F2614F1D640075984AE62E2FCA1D1B4DB369F15705CE7D4DF8AE98264501051C0DEF21D645D49625AF02CA428D9F0C2CD9FBAEEAB97E8E9151662B6992B4C99AB1B925D08920363373F76D3FDF0828CAA69C8B1BDC6F521DF641CF1C8A4E7EF0C23289A4E2CF18ACEBBE4C1E68369BD5235120142ECDD1A73811E2E533A647D7AEE16DAA03B683639DCF1E1F1E71CFAED48F69AEC3E831733DA19CEBEC1DDBF71CBAE0800F2F6D64A096EC495D62F4344F7AA5621B322353A795AA099EA3A070272D053D4653A20CF210EAAF12CAE6023D8E5118DF04B384A44D1EDB91C44989EF7EE57F2BF81A24BDC76807DA967EE6525410C5C485067EFC3D39A9AD42CC753BAA59A1FD28AF35C00D18A406A28FC79BA +k: DC5B8888BC1EBA5C1969C21164EA43E22E7AC0CD012A2F26CB8C487E69EF7CE4 + +c: 0BAF0F6E91ECAE3199F4921631891A14C13B418B53384992DA3A8DADA7DEFFB9E1E5F559D27344B60BE81ECD01CAB1E316573D571ED46F59248F4023DB0282207E730549CDB60E793E4CD17AC6F2800E2D1FFB83477A6FE1D73992682123EA730C63269DB13088D6DA46D086CCEA2176398EAC663270B8B2F337A55E19F4C500DE066B5441794C2D0CCADFE5ABDE7D93FD7D6468BC4F925633366D9316788B90B110A4D99485E7E578537A267744FB266A4F243FA02E3A81DA67ED477923B36B37BE21DDA21EB51DCA1F0CE41652145F4C542B2E5C922617033608246BBE2B5250A368804ABDB2EF6C31C491CE3DD852AEABF6EEF1530F4C99286B4B595D57CF3A99580B59AAA2C55E080B5230EA19CF2701D21A37FEFD6F9709657A21ADD063ECBC197B5AD068BE502A2E090D83F4156B671E46617BE6D6A17D0425FAC565C4A0E48966E9D900CB2C2B0D296E0BAA9D6C5E0514CD78834053058A97D3DDF81529079858737440812670E818C9891681D350ECEC93DAE389D534A5C78F01811917061CAC0003D2BEA390EB63FA0FE9BABCD7FF302D4B66567B2BFA67B20F962847D010AA4193CBE9F8CC1B14F8B237C22675B298A8376DFB6037BF7CEA36BDEAD5B505111F67730824B4964815D00F63EE98B9BEA0F2F47CC007D5606ED7F967CB15CCD4AFBC99881CFD297BDC2A509ED3CB320DF58DC4A5BCD1CB100B9D6418CB8E0F40DEF293DA2370CA729B0FAB071FA6AEB0F3F5D1925AB2DF732F98DDBFF23D5411E4921A1C506F2F93251E822C4CF83998B000FE65ED386F5745B1D4D91AD9F98B45E713C8D944409E9D354F42FDB9749A5107C8831562E683498C55E1475E552AC10858AB9867BF8003FB88B3B09F6E8AD8E94CE82E342B1780D68EC8565FC0684AB6C798BF09FA65BE62C37A0862ABFE99D7DBE1431B4CFE007B7EC7930B14F6D161BDCAAE2217D69D9FDBB4F882B9F464F8642ACD9BA018B93A8E3A965194ACCD96E661CF0CF4A2662076E20E8BC319693F1953DAB93FEB9BCAD666832DF42F250FADBCFAF742D68642021BD6FFD97720C3E5AB86D82CE8B14C0289DBF51B50C13CFCEC12A3922DCD2DE8473329AEB23580B22F9C36B4F06D6579751BE0593120F808F0E145D94D1DDBBE1D489B744CF6C35964C3DD96D95FB693543C69766877DA80BDE8ACDF62C366D0A4A553187461F671376F7E70F554965D57760CDF5C6F6366E33B3BFB550CC1F93D98D250F90D7D36BC01581C49417546BF6BBA9D10D41C0A008855F321547BDD5A6CFA2A2516F71415B5BC2D5FA1B9B79FDC7F2B78AA113375EC1717F0F273BD8CBEF59139518A4E8A67DB4D071257000336BB07497F72FAAC2C1FC0F553B2EBA53475F466A2B36AFE0B72B4342E995C544E6E14FF7D327F80E7AC6F65190045F380B5978F50E33272484626266125A39DA08B46256624CE34223BB17299B8B8162753812F2644C9A13C51430B02ABD188DD1A4547C920BA27CDAF145BDEBC6F45EEE3F2F55553010F7B35AC63A3C7C61C +k: DCBEB5E4E8B14BD3031D5916BA03258119A5DACDAC850CB483BD7AA80B7038D8 + +c: 2513DE1E55ED0E862614587FE47F308C90A1F426470CA1293BDDF7B9DDD6C368DC152F45C71354904ED48E15A1CB449B4C45D0F201ED5C7D3A047A72F080265D66C47D39469097EEEABBAA3B07ED1F1AEAB80C7D24552FA8889C674A5D4840289DE6B0FA9A222E693708D1F252DFE8B993956883C07067C1C0844EF0BEB49F63534D21D471D6B727FFC59477F9E89E5BEB2AF0CBEB052F003414DA4070008753CFC0C6D0FA9D1C15388FE5886EADD3474F28E4682C0E01784A037DC3799330EA380767B0D0B6EDFC9730E04D1039548A6F83889098522EBAB684DA6FE26A4A6891D86D40FCD9A24F743D74B23B1596810727C81BB3F9F3BADFAE9997949EE0E24987FA182A00D73DCEADF667E90E5AE76A1F83A91FCEA78C96269F0C9501F1D4CE682506A7EA89302A1480E18CDC1F6D57B5312EAF808895B20897E9A782F916CD75B4981DA1381F14EB1EC248B27F0E6966A0CD75414A735928B2120615D88FA57AF5C40E61750F0A0F8E605747E7C32D5A23F14124969C072E949C8475E3108D689D2D20797FE14618811E9A497FD26B9E71355852D4B36340B61695E3745F8D07644AC6E2C18B3FC276D4D19DB69A7CF26086F172E2BCE1618A740A0C739FD504F72C2A72ADB5564BC85DAB4C9CE790D78D14D3BD242DF04106D96CE7C3B392CCED9B99DF359FD51F306CBCBD5B46B8487CD7B7EDD3C5C02965C84630DA1B6B8B317FE55F7C79E05CDAC9E863023DAF470E9C3FB8C01FDF3AEDF2193BFA69A806E2E70151ABCF96D31CF6A317C059CA8C7D456A8E5EBAA6C1283A319F188AAA80D8301E321754E5FB4E0B25594B01BC5F82FF25B064C766424D658459EFD7A20B65DB181811E6D5A4BD153F7066BD7757D2D417D21F83D7C4CB6A0703A42032F0FD198D9D8B0F91B359FBE908432C3286E1EF9D601702157EFBAB68E0E7136BFC90D26BD8A9A7018DE4C4BF05CE465F917D20A4F221A4EE78813A1E8A117C8470929701CCC201A85E7F18B6BC96FE80B1E074661525D3FD0CE2565AB11155DAFE4D3410328D6DBB4DD99A84FE96283D32322522B88B3AA2A11C0324B1D5556EF408D37B0DF802D163FE38D7C38916A26810BD175D22762353C3175DC6040C899E07A339CD4DDBD4D5549E02C0D691263936A9F63111412B60AA9F57486334E40B2BC1B8EAA487A094E45C3F77F72EA741CE225ECBE2B5E4A1FC080070A658FDF9E2B388722855267B30D94B63C3ED35D475B7EB22E3D2462ABA9CF2A86B738EBB270AB29708A2614A557E33A620B507286E5D4CA57E2CEEDB9965FF1C3E1777F980CDFB1445BBE0B6ACBA0216980F962FBFABE265B3ADFE8641088287468827AE601B6A165DEED39C0E8773BF2046BBF63634BDBCAF98358D25FDE475781733DDE8C6D6383D13B6D48FF1B65E2FF13AAA9CCCFC3C626935C5270F9E23A71A87CF2BD793CB175D23EA5FBD82C18A1822428C32DB9E31B94BE3144ABB00F5ACAAA431C17386719C3FF47C38720B1AB01889DAD877BADC9FC716F648FC8B551F +k: 2C37C49E94DF715B3C09E63A39E04DB8D26BD2B9072C9B21076BDFC0B608534C + +c: 8A4336FDDB3F55D16ADBBE54C6EF0DB27F20679393D86EA4590CB6F5F09BC4EB76181A13C9826FBD2A7174BE8A11F13759EE23DA15337A4C5612480E0A843CC6D04F3A902E144EFDC0AC118BF8553B984E758E6D7ED1373B20A5726271C5F4B542FCCD6379671CE37A5D0128F55539B9A855172CA2DA3BB6823484A87DC2333F56CBADF4A694A5DAE341A0E3FBB3D852929FBAFBF4A5C12CD3494CDF910010A0FAFBC09B375BABFFDEACCD12E6E7BD347CBFBD0C84CDABB5004CA11DDC6D14C1BD700FE3EB2371E3293F7185E2A065532C3B6529E60240E7AB6456139D66745F17B94FDF2C54B13EE4DEBF1B77099718804BAEAAACD2BC60A190487CDC76AF2EEB906E4C9F2664A30FAFB65013B8CA393793B650CAC4A93377A6511D739C2136CEC59E1BD14584989A591E1F3B7F6D7237AEDB556880810FABDB1D7F8250B61A2D16A3337DA65AEA644D7E2226BE5F24CBE01C8A33A4CCA06F6F646A3F5453FE2D9FDEA8D8613F491BCF2AEA950DB1D9B43C7C3F86FA2F4A51CB44EB9761363C38723852925247D92E37FC694D2CB00248023D5448CDE2867125250B17388440C188F7E500CEF7747A101E0BF2521E2C8A2D04F42D834C0274ECBC73E94612CCDB1C4B908BAF63C09C945AD4645912A0666E9844A1614B7F34415C1842F9B1C7DAF7EE4459A8724B7050F6B5833341691019149F351A7F11AE2416DCD5B36F18B1A4B82CC3E924114CFC126CA309E319D497A594B0AB2AFB58C19DEF3BC3AD885B29AEAC81F346A19683B8577F4A1E0F30BDC85A3814CD1196E6B29E55E5C0E4E028872477CB675B2408E136D15E54C85E8A468423CB795D9348BFCC975B4EC20A23991E6E9EF91D676983AC26B66C71548FB46C4BF06E280D7C55E7B8DB90743A8F893F95AEB4DED1DC65C5E0B61FBAD9DA0DDAC274591AA6CF23C79C09414356584F0BE02CE9B500A3EE6BD4FA0119783F50E800ED36D3A4445934DCFD87A31AF3ABC02CAC39C4B28068EECC6D16B6FA187A073BA143209C0F38AFE100BC700D461B1B364ED298AAFDFC716FA6E3870E6258B66645091FCF9413EDF6BC79B75132A46D1DFBBCE3CE9B0558EF003929CC6E3D57BC4FD3092EEAC4ED71B7B7FC70D0E65901DC9196928C5B8CF4A63C62797727C192CF1CE4315120A57D4C8CFD03143AF8754432EEBADCADBCD26C2E3A14BB43A951AFDC19EE67AAEC5DE0722E9D11E3627AD1B624ADF0FB6FD2A6733B2B1B1411DD14EE87AD3BCBBCAD2EB4A38EA00575BFA99332400083FC519C3733F6EDCCAAF71D09A7164E18A9E9587A8D9B9A46563FD3F14BFA2F2B8EBD9FDEAAEF466E591F502151E43A7E1123273E5E0574814B20253A17917D7BDF8370BC50461AC8D86127DC527B8290FE386F1AC1E6E9D7B493BB7FEDEC9E5A82DC1402DEAE71B18AB4B658E43F707259039EB9978D4FB0D62839A0DD8E3A1183CE330D57BC7927F7CCF06BA10A0478B7E2EC818195171AFF75C29B283E759F4D2F5D55F0FFC35E0581D98E582107BF64A6D80603 +k: 47033B02A6DC056FFEB5FC1E96205C166374AB84A5F3F7B06427BB006E71A5A4 + +c: 6095A951753A644DD898D69138B4E521A704DCFAAD44EB53E284F836A469349C5B9279248AFC57AC93FA34A643DE02B724615CF5865927FED60A6B41E4AB15B4DA3599F13D2C1996C6D6989443BE6FB81F5BA03BDD53462BE5812A3E177876A102B0EBDFCB16DE7B29B5123A79DD82E5CD47ABA02759FAF5401E3BF03144A90AE957EC04DB9864ADE1C5A700CEC7872CCB64FF931984DDC3FB8D4971D761E5544130278C75A1B04E641E070A747789A71E09409C155C7D341D5F828A575EE74439155930DF22FD7716185BDF917472432A30A6762C9FE1A254442F755804D295B1698B47A67BBFDE178200F9CC3D4C705F4AC1B00C372D468E16ED3CBAAA862A2574A9574A7280878BB82DA7BD1B2A58943456838F2E6AA9F6EF1827C5B24FA09DE07E9B3153B0F44A4F2AEA7610F9CCA92565740E7295BA3AC5764A20A44D4E1862E55B1DF7913B279F438B3B34E0C22FD90E06497F7DCF8D62352447C2B8C51C214796194CDF66D5001278D0D55F82FA31DAA72BA6CDA34E60D696ED79C7056BFE97265F3D1BC07719B745ADD4A83404D91A184E629FC24AE236CF6AFAE46295D24B431D819E366F51E1BB2B44B1FB7A3060091DEA1D416268CA550EE4E41FCA1F387E941DBE4EBAE222D3CF625632D1A61414038FD437BFA20005EBC404ADCDE2DC10DB741A3B7534C40822520C4703FDFB6B380F7DB72B725B330D0C20DF256BBDDC31E0EA20E636A9FAE310185A5081923BAFE041AC6FCD4E73F5F7237142B74681F637996D28C3FDE6052243269D19316C56993722EADF19A985E579ED559F971E69EB5125937EBC80ECD15A4F80D7067905A4D39C6220EFE43883CF22E9A366F8911E21D0491B8FF61FD07B733E707A08DB400E438DAA00D481C5AC62064CF47AFE3AB08027B3890E8C8835CEAF8128F9D887A6CB7FDE879D9611C01281A0F02DE0E969C9131F8512138036EC1967DCA45AA30BE8C5B1008113E17A91D9F8E9995C07C0B13A45668C96356F09C3E08FE4C7DF5F7230E0C93EEF08E8958B55E213718C516E624B57765257D21696A3458FFBA11DE708C4EE9AF2EDC5F37458DEC8B985076882D3F4DEB00BFD8E7EA4D57BAEAEC6BABC0E28C15419CCD785CF6ACEC96D1111CDD1DA9A151F59A7366B64A53F0497D3B5A8ECB60D7C220E99126CDE82938C7E131BD841300AE461A1817703ED5B0510B47F2C2980F1E11CFBECB524B295C42187F15B0C9F6B0EB1E70B3EC43ED955528B1E42E2BCB31F3A1CFB5E9C807E8D366E9227A87784748B277D6C885B1385C6C691B3DBD7841DD89721B3A8BF96EBA99C53D4BB3B41DB9409B992BCC2D8FC53E70723CA1FDC1341A3E608D7F62F2322C6A9BA1316639690A22AECEE364B4F13949A0310FBA1A0E35DDA5FF840DABAC55041B0931D9EBEC89B78DD930512340B4B5D0877AF546FF0F342FB76B647D604EE2E20207924F39907D6E72DD4A9A1ED0B6D7364CCE69981F56CBDEDD51CBAF6FDDB36E327AD65D4FE283D253E6BF3C7969FFF1F34DCC742 +k: F0CF9CF06A81EE545A33B310616117D6096FB56F0D4F7E49FE0A37550320D3C4 + +c: 2AACD2E6B884BE6A3DDD80155BDCA80EBAF0E2BF714312BBA30D5B367F2D95AC7BEC3965AB05AFA370A42A512B5EFE4B0DEFF3E163AF186B725BCAFD2AFB2BD2A0DBAB74C2BF9362E27D69B6B4B5AA6500EBC9316EA4112745F1C6E98F2DEF9132C7C0BFFEAAFAF994C89B96D3F436B875178963FBC18D2E06ECAF3871787C1AE93B3210896837EC1DA87F0FD8F14AB7C5CB2531E90F415FEBDA378E5492E1DEC8243FE2E8A7BAA6FB6A034D9C524E99D848A804F150915BFD66067C8603B5DB0FE29E27D3F6CA629E96BF3E9C77A5919701EC19646C69A73DFAAB0ABA28FE3E9EAAEB475A441B9B0D62B259DC6B77DEC964AB57D5D776988D54E6246C526F1E8EFDF454E7F0DDAED5363CE02B279CD3B554C251793C3A616C07A7BABA8062919A2B46C64C152BC887A27E382254EA6D50CCC0702B7BC0994BAC09B7891FA64A773AE0B4FBF8204C13A4950FC2C4DF60CEFED7582FD9FBB8C83442517BA0E3B60D9A04FBB24ABCECB303E3FDD37F1037741FD2489F632192A6B9C122A7344CB781A0F61D5011EB0251A842AD4838F9B8D52E21A783F0D839E8BA221CCDD6B968A2B5FD21B8458BF53C9C8076AC0C52C0F53097ED1C25C9F6F12407772D6743EB8E0CE8B1A926F0FDD0DB00482D9590675E56D4509CB5E5F32FC3B4A2DAB2BA080F9A7CDD0B611742A8F83CEE1B091E629D2A0371FDB5A64412B5FA63716961527640D02885C4A09B04A3A6F5EC01A9E0DBB8FC4DDD9E05BDB240AC4878F0D41461C4661777417D6150422FEAB6A39F156CADB5F5D3BEBE417BABCEFF5AAD1B7A624FC23ABE28B2AB2E8273E8F44636A60CDAD9236DCB02FCF87722C899AA321C564B25BC33B4976BC9603BB8B8AB18B5B04625981FB38B2A42722CE2358FC0BA99EF4B122C7B70BB347D0D482DA30638EF8B9C1D9121D83BCDBBEB2A608617054F4B3FDD33E9A08F8DF999A98E715DBF04F8EFACF123BBEB37B9038E9AD906E3C570BB398C10E6D36647A2B0B2731FD39F726171EFC7321BC67D936F7989EA58336E549A34B73F097E3EA2C25887EC6A2E9FED5D2CFF475E99F392162D959DE1C4A4DAD3C96542756AEC3367F7B2515F2225BF7B704B780A6D0B279B8B4EE4879A9BBB2F3303216CBADEA00D229C03E3E2843892FA8E5B0A600D0E3EBDD14FA229819CE9C10B8D5F393DE0119A5B509B80D56B06783447F931177123824910C9BFDE9A29FBA0252E69A90B3E717832866115C06EA73B033EC3B0D45DFDB69A76B484DB0BE7A81215B3817E1C02F9A5DEE8967B147DF9F63C93A6E396DE4251A5A706DFDE9670B8B2F6C4C3E2509142256FDDA905C125FBBB294EB29A3B4D9BE3B67762AFC049B96B3F41B8C31BC5D7B522DCD1AD12B252370A8A57E42F6A9AC26FF784B374DA4B86FFDB65CC753CD049F1A21CF832447E1DF7BA7D0D11E403FC18BC545501E16568595AEB6BD7811C214CF2FB1CDFB07BB32321F536E3896B6EF4D16130ADD71B271CD1027E35538D9E475A3A53DFEA430C151DF7D516CD0D9B +k: 0EA983FF9D76F056AA42BB772AA27C8A163172F43E6BC9BC55B83038E095792B + +c: 8FFBC80E4662864D6F373DC8837AA91B3CC26B68124ABD73DAD025A1D1C18829DCF077D303579E5F39F4BE101BB9E355DFB5323882EACB3D184E6812C03A7BEBE25166D55F821A00F80B8D2BAB1A7EEC83D384AFDF30F6BBC9960C4662067EF7E200E37268B9F5348FF484642799258B45E541101A21FDD6FBFAA2374A28FAA97204953B95BBD1BB519785210DA7C8A09D071D8AFC9B29F2C3C2909A4C53671408B8083BCF5AE03D45C0CFBA399F44D24A06321BB74F6863B7D4BF0BFE73C8AF8EE1DDA45212E3F9C853D4D0E16F8EBDB8581C4ADEEE833D81A9E0A9E8587E9C19E689E6DF715564BCE27CFA73BA16226A77CE44DC496992F41AB918643C6D86A8B26ABA6F94F3502D22DD94FE55483F67C635B307745D33F17133293639118E70CE42C6DB7332D4862C73D5B84415454AD51F89B5559B5C85D6B6ED47B6958F21FBC2ADF8C8A9D43FD2E1B0C02418D227B83F85CBC3A81C719E8602781AE71E15E6D714919E52FCCCFD9A68B4751825BFBB53B7940B15B546158DBBC612E602F660B9E0FF439E0156C4C8792346014BA1B4838C7425AB34744DE51D854CBBA58B7E67E014122518036CE1541A1675AFEAE4F29A5318602ABBD0A1540F33176C984E306098DBD08E822ABB55F9FF38D9E31EA4695150F2CB60BC2EB5F4780CBEBB210CF48662C454C7A42360F306FB03617C998AD8A9297D6B71A71285F7AE8DFB336FA922540C92DC71F777D3B4D11D87B8D082FA8A00DF647CF7FEB27403D3CF50D829EEE3575A01E2CCA57849B11B14F001BE180DD5FA13C03B98EDEA6358C5AB30A526027CB45E33E646B37988CC84B979CC5CFC3BFDA05BD2C7B8CB1B11AFEE007E20FCCF8D0F764F4A6D2F6A8B74281800CBDCBBCF0DF1EC9D27E6A94968604D9EFD37928B6856C48F0108155595D03231DFC22DC0C8EE614090F37E0828B48A4DD371C677B5DBA95E417F12C9A396875FB05623F7A544AEAE41A0AA536FB8D767BA2E14752C84E147149F655AE7B903CAA591AE00267ADD3EA816612AB0B9A5FB263C70C4367062F7794274C75AC66F706AE93699859D55B2E4960E9D538F38A2FAEE366B80DC78BB673A9E1B057D711F9DDB3770947E6DD7BCFB425B96670506758AEA39A5ECB33A1B76B822AF903787DA3B61A7B9263C0FAE1B729B1A2E16FEB50C32A8728181D4E8A9F8376C39F6AABC2C022306B05E494CF9B6ADEEEC95887440508981D6A74707FCEFA24B9F0DC3AABC984E9C44174E6DFB51FCF4588C57F9659A8E7A6FAEAFBAE7ABE4600444936B3763463D4AE411DDC1C98585E0DE58867251079BE72075973275141801B98F7B9397C096A56B8CD83CFBD374E182F7DCC9A7C764DBBF4D7576A1CC9239848E7295D29CF034A1A7AE33A386C3DDC24A535168ED23D7ADE9433B50DC5694C969F4C546EF2293CD842F4B62B6B7435F597CF5C1733884E0A6AA47FA31887DEDC6C402D8ED013E49E5CAD7718CCEFEE0E6A041715CC9ADD79965413049ABCE88636AA7543EE2601F162838EF6B +k: 342765B77A09BA6863F2ADA782E3719803F7AB714EE807DE89A1617B5C74F60F + +c: 17976BAC62F66CEF2B6F947C121079B6F2E9350C137E738BFD884FF2BA6E211640A30FBF2695EDF7046E1F5234AB1C8A9B0E8A3FF88EF18C1E5512D5F69E4A36CC9362F00920481E5460B1FB0C2B9FF0CD0D95718966AF7EC1F76B8DA93F6AB179A5DE70DEE34C579E284AE8504ED96E1A85898076F69AAFEC1357533EBB636FBA2372204DAB87C47AF27D4D9EB1B4FF4286D6A9FA7FD506C9FEBA596D2047DB765C1EBF1F7921867D394487F6BE926E6B0323058CB591195436ECC805C8B88615C7A03833AABF490337063DFEED698F7DA8DD589A794C956C2BF8D8CA4AE18B0A7767693802BD6DD53F543E105EC526C1D1D00AC9C0B606BD9B3A1D52CB8C56F8535ECADD8239308F2FE7E1D7BFAC5848B547B4579AFC13A0B2BEDEFA46322F92E2B73980695369C5F48D37F9345F20C7820DB6DE09D5E8313B73ED705B33646FB14CC4D40D65290A4C27360FBBD080E61A16BB15E9560A097E4AEC16F8B8030FAE1D47E024F10C33E6A1C56AEB8EC2F6AD6EF4B8FF04C67307B23E470FB3E5BCB6F533F955C36FDB46516A07DFF2956130AD0924158CC2A083378FB9AE32DE89CF774D82C2FC70DA48536372299C61927A5AE67E55E792B64FE61F06EFFC1F216CC9D739ADBF3B2190E1D080E00F169F145FE32AF7EC7CBA1D76FA6839D5FD2068E1DFFF557755FF2F4271204A5468C79C7BB8D00FAD63938F12D53B243B3FF866556913EB57AD2AE034F8B62B1A1B9DA2B1D45800B4CEF1E1943A0C92F0EF2EE924F80CF67EBD3D0199D45ED4DCC00140829A0992DB43616CC468508B852EB822066A05CC91D6BC2B47E5622B774F8128ECBBB94CADD15588B36A71E9FD97B05D69E8BAF00D30A3D3C00E663E00AFC9F5E1BAC8534ED5F6E5AB47D7EFDF6537753408299A9E8D5F5AE0FE36A9EC41C6DC9F78A891BFA9C8E90AA1A457A0C01AF70CBC9E55B68A5D8CC5CD3BD6886AE11FF510C6ED0EB2F5C081B25989518BA217BC1C153864E5BB312EF0D43D6DA4A0FDE44F1157CD238E8D70BEB420BD310F8E5DB9D74EF4EC9980CBA74358FC77C5D4FAE3036E176647D78C73900C79BFBF0BC545ABF7CBB4DC7F6041D4FA3B66E4D4655E24B11DC30B0061C452A605CE73362F2A3F052370D873FC68DFFCD3999FDEDB45DD9F2A02B4699BCF1FC5F888B019B5028465F30AEFAD946D481285D1122EA78F3BD8B1982558C38FA3DF0F058B12EEBB11F4C7809F6334EA1D7FE0B529C0BC9C67044648178D2AE9232E4E88DD6D0016D8A590B7703F1A017A4A2671BBB24FA97ADE1B61C489AFE9B3E63CF4CCC42168C98880921C2C0EA7D24DB6DD676B77F7B6C0525C8D0578C7F5A20DBF2F82873904D7CF2522CE6360397B254B18C3059A4BEA169A44D9BA17CFDA1827EABECD269FD391CBC0D49D71FA81AC16F9A0DED9E72A58D1BC2262979D8D7E531D1C46A8F107BDA18A1D2CCD17334183DD3E79D905ACA7DAD348BC6D5CE124A1397EB3B89BE7580720B5DD00BD3A63DAD813E0E967EFEDF17F3D960E70A4F83F +k: F175CA29D36784E3B7A6F6D8682DE3548115C25EC1751DAF6B5FC3318F690802 + diff --git a/crypto/mlkem/mlkem768_nist_keygen_tests.txt b/crypto/mlkem/mlkem768_nist_keygen_tests.txt new file mode 100644 index 0000000000..9a988c84a8 --- /dev/null +++ b/crypto/mlkem/mlkem768_nist_keygen_tests.txt @@ -0,0 +1,125 @@ +z: A85768F3486BD32A01BF9A8F21EA938E648EAE4E5448C34C3EB88820B159EEDD +d: E34A701C4C87582F42264EE422D3C684D97611F2523EFE0C998AF05056D693DC +ek: 6D14A071F7CC452558D5E71A7B087062ECB1386844588246126402B1FA1637733CD5F60CC84BCB646A7892614D7C51B1C7F1A2799132F13427DC482158DA254470A59E00A4E49686FDC077559367270C2153F11007592C9C4310CF8A12C6A8713BD6BB51F3124F989BA0D54073CC242E0968780B875A869EFB851586B9A868A384B9E6821B201B932C455369A739EC22569C977C212B381871813656AF5B567EF893B584624C863A259000F17B254B98B185097C50EBB68B244342E05D4DE520125B8E1033B1436093ACE7CE8E71B458D525673363045A3B3EEA9455428A398705A42327ADB3774B7057F42B017EC0739A983F19E8214D09195FA24D2D571DB73C19A6F8460E50830D415F627B88E94A7B153791A0C0C7E9484C74D53C714889F0E321B6660A532A5BC0E557FBCA35E29BC611200ED3C633077A4D873C5CC67006B753BF6D6B7AF6CA402AB618236C0AFFBC801F8222FBC36CE0984E2B18C944BBCBEF03B1E1361C1F44B0D734AFB1566CFF8744DA8B9943D6B45A3C09030702CA201FFE20CB7EC5B0D4149EE2C28E8B23374F471B57150D0EC9336261A2D5CB84A3ACACC4289473A4C0ABC617C9ABC178734434C82E1685588A5C2EA2678F6B3C2228733130C466E5B86EF491153E48662247B875D201020B566B81B64D839AB4633BAA8ACE202BAAB4496297F9807ADBBB1E332C6F8022B2A18CFDD4A82530B6D3F007C3353898D966CC2C21CB4244BD00443F209870ACC42BC33068C724EC17223619C1093CCA6AEB29500664D1225036B4B81091906969481F1C723C140B9D6C168F5B64BEA69C5FD6385DF7364B8723BCC85E038C7E464A900D68A2127818994217AEC8BDB39A970A9963DE93688E2AC82ABCC22FB9277BA22009E878381A38163901C7D4C85019538D35CAAE9C41AF8C929EE20BB08CA619E72C2F2262C1C9938572551AC02DC9268FBCC35D79011C3C090AD40A4F111C9BE55C427EB796C1932D8673579AF1B4C638B0944489012A2559A3B02481B01AC30BA8960F80C0C2B3947D36A12C080498BEE448716C973416C8242804A3DA099EE137B0BA90FE4A5C6A89200276A0CFB643EC2C56A2D708D7B4373E44C1502A763A600586E6CDA6273897D44448287DC2E602DC39200BF6166236559FD12A60892AEB153DD651BB469910B4B34669F91DA8654D1EB72EB6E02800B3B0A7D0A48C836854D3A83E65569CB7230BB44F3F143A6DEC5F2C39AB90F274F2088BD3D6A6FCA0070273BEDC84777FB52E3C558B0AE06183D5A48D452F68E15207F861627ACA14279630F82EC3A0CA078633B600AFA79743A600215BE5637458CE2CE8AFF5A08EB5017B2C766577479F8DC6BF9F5CC75089932161B96CEA406620AEDB630407F7687EBBB4814C7981637A48A90DE68031E062A7AF7612B4F5C7A6DA86BD136529E64295A5613EA73BD3D4448CB81F243135C0A660BEB9C17E651DEF469A7D90A15D3481090BCBF227012328941FA46F39C5006AD93D458AA6ADD655862B418C3094F551460DF2153A5810A7DA74F0614C2588BE49DC6F5E88154642BD1D3762563326433507156A57C57694BDD26E7A246FEB723AED67B04887C8E476B48CAB59E5362F26A9EF50C2BC80BA146226216FE62968A60D04E8C170D741C7A2B0E1ABDAC968 +dk: 98A1B2DA4A65CFB5845EA7311E6A06DB731F1590C41EE74BA10782715B35A3102DF637872BE65BAB37A1DE2511D703C70247B35EF27435485024D93FD9E77C43804F371749BA00B20A8C5C588BC9ABE068AEAAA938517EBFE53B6B663282903DCD189736D7296816C733A1C77C6375E5397C0F189BBFE47643A61F58F8A3C6911BE4611A8C7BC050021163D0A404DC14065748FF29BE60D2B9FDCC8FFD98C587F38C67115786464BDB342B17E897D64617CBFB117973A5458977A7D7617A1B4D83BA03C611138A4673B1EB34B078033F97CFFE80C146A26943F842B976327BF1CBC60119525BB9A3C03493349000DD8F51BA21A2E92361762324600E0C13AAA6CB69BFB24276483F6B02421259B7585263C1A028D682C508BBC2801A56E98B8F620B0483D79B5AD8585AC0A475BAC77865194196338791B7985A05D109395CCA8932722A91950D37E12B891420A52B62CBFA815DF6174CE00E68BCA75D4838CA280F713C7E6924AFD95BAA0D01ADA637B158347034C0AB1A7183331A820ACBCB83193A1A94C8F7E384AED0C35ED3CB3397BB638086E7A35A6408A3A4B90CE953707C19BC46C3B2DA3B2EE32319C56B928032B5ED1256D0753D341423E9DB139DE7714FF075CAF58FD9F57D1A54019B5926406830DAE29A875302A81256F4D6CF5E74034EA614BF70C2764B20C9589CDB5C25761A04E58292907C578A94A35836BEE3112DC2C3AE2192C9DEAA304B29C7FEA1BDF47B3B6BCBA2C0E55C9CDB6DE7149E9CB17917718F12C8032DE1ADE0648D405519C70719BECC701845CF9F4B912FE71983CA34F9018C7CA7BB2F6C5D7F8C5B297359EC75209C2543FF11C4244977C5969524EC454D44C323FCCA94ACAC273A0EC49B4A8A585BCE7A5B305C04C3506422580357016A850C3F7EE17205A77B291C7731C9836C02AEE5406F63C6A07A214382AA15336C05D1045588107645EA7DE6870FC0E55E1540974301C42EC14105518680F688ABE4CE453738FE471B87FC31F5C68A39E68AF51B0240B90E0364B04BAC43D6FB68AB65AE028B62BD683B7D28AD38806BEE725B5B2416A8D79C16EC2A99EA4A8D92A2F5052E67F97352289761C5C39FC5C742E9C0A740CA59FC0182F709D01B5187F00063DAAB397596EEA4A31BDBCBD4C1BB0C55BE7C6850FDA9326B353E288C5013226C3C3923A791609E8002E73A5F7B6BB4A877B1FDF53BB2BAB3DD424D31BBB448E609A66B0E343C286E8760312B6D37AA5201D21F53503D88389ADCA21C70FB6C0FC9C69D6616C9EA3780E35565C0C97C15179C95343ECC5E1C2A24DE4699F6875EA2FA2DD3E357BC43914795207E026B850A2237950C108A512FC88C22488112607088185FB0E09C2C4197A83687266BAB2E583E21C40F4CC008FE652804D8223F1520A90B0D5385C7553CC767C58D120CCD3EF5B5D1A6CD7BC00DFF1321B2F2C432B64EFB8A3F5D0064B3F34293026C851C2DED68B9DFF4A28F6A8D225535E0477084430CFFDA0AC0552F9A212785B749913A06FA2274C0D15BAD325458D323EF6BAE13C0010D525C1D5269973AC29BDA7C983746918BA0E002588E30375D78329E6B8BA8C4462A692FB6083842B8C8C92C60F252726D14A071F7CC452558D5E71A7B087062ECB1386844588246126402B1FA1637733CD5F60CC84BCB646A7892614D7C51B1C7F1A2799132F13427DC482158DA254470A59E00A4E49686FDC077559367270C2153F11007592C9C4310CF8A12C6A8713BD6BB51F3124F989BA0D54073CC242E0968780B875A869EFB851586B9A868A384B9E6821B201B932C455369A739EC22569C977C212B381871813656AF5B567EF893B584624C863A259000F17B254B98B185097C50EBB68B244342E05D4DE520125B8E1033B1436093ACE7CE8E71B458D525673363045A3B3EEA9455428A398705A42327ADB3774B7057F42B017EC0739A983F19E8214D09195FA24D2D571DB73C19A6F8460E50830D415F627B88E94A7B153791A0C0C7E9484C74D53C714889F0E321B6660A532A5BC0E557FBCA35E29BC611200ED3C633077A4D873C5CC67006B753BF6D6B7AF6CA402AB618236C0AFFBC801F8222FBC36CE0984E2B18C944BBCBEF03B1E1361C1F44B0D734AFB1566CFF8744DA8B9943D6B45A3C09030702CA201FFE20CB7EC5B0D4149EE2C28E8B23374F471B57150D0EC9336261A2D5CB84A3ACACC4289473A4C0ABC617C9ABC178734434C82E1685588A5C2EA2678F6B3C2228733130C466E5B86EF491153E48662247B875D201020B566B81B64D839AB4633BAA8ACE202BAAB4496297F9807ADBBB1E332C6F8022B2A18CFDD4A82530B6D3F007C3353898D966CC2C21CB4244BD00443F209870ACC42BC33068C724EC17223619C1093CCA6AEB29500664D1225036B4B81091906969481F1C723C140B9D6C168F5B64BEA69C5FD6385DF7364B8723BCC85E038C7E464A900D68A2127818994217AEC8BDB39A970A9963DE93688E2AC82ABCC22FB9277BA22009E878381A38163901C7D4C85019538D35CAAE9C41AF8C929EE20BB08CA619E72C2F2262C1C9938572551AC02DC9268FBCC35D79011C3C090AD40A4F111C9BE55C427EB796C1932D8673579AF1B4C638B0944489012A2559A3B02481B01AC30BA8960F80C0C2B3947D36A12C080498BEE448716C973416C8242804A3DA099EE137B0BA90FE4A5C6A89200276A0CFB643EC2C56A2D708D7B4373E44C1502A763A600586E6CDA6273897D44448287DC2E602DC39200BF6166236559FD12A60892AEB153DD651BB469910B4B34669F91DA8654D1EB72EB6E02800B3B0A7D0A48C836854D3A83E65569CB7230BB44F3F143A6DEC5F2C39AB90F274F2088BD3D6A6FCA0070273BEDC84777FB52E3C558B0AE06183D5A48D452F68E15207F861627ACA14279630F82EC3A0CA078633B600AFA79743A600215BE5637458CE2CE8AFF5A08EB5017B2C766577479F8DC6BF9F5CC75089932161B96CEA406620AEDB630407F7687EBBB4814C7981637A48A90DE68031E062A7AF7612B4F5C7A6DA86BD136529E64295A5613EA73BD3D4448CB81F243135C0A660BEB9C17E651DEF469A7D90A15D3481090BCBF227012328941FA46F39C5006AD93D458AA6ADD655862B418C3094F551460DF2153A5810A7DA74F0614C2588BE49DC6F5E88154642BD1D3762563326433507156A57C57694BDD26E7A246FEB723AED67B04887C8E476B48CAB59E5362F26A9EF50C2BC80BA146226216FE62968A60D04E8C170D741C7A2B0E1ABDAC968E29020839D052FA372585627F8B59EE312AE414C979D825F06A6929A79625718A85768F3486BD32A01BF9A8F21EA938E648EAE4E5448C34C3EB88820B159EEDD + +z: DF0F282411F4A071489A8F618E2AE5AEF40131CAC5233D6D731522720C2FEB1C +d: 444F032DD19AE7518C4B35B0732A41DC567845ABA8BD7B04A9C413A0CF2DE0B5 +ek: 5CC523B2D908C45907A6694A665195171A5B2FB583A5C240CADCA8F0E83E46B14052C9620D3B7EF386CE8B9A5E873B65693B0D341C6EB2D10CE5E937CFB8C4C9134401BABFEEBBAECF47113A34B9C6E011BDC78A54F2B7BF36A5FFD27563D7443F2109F02A64C421411DDB2D1404A86F793A2DE62CDC560BFD6604D4B6330BA6AA621414E8C12DC71C25652ABAF36B875DE1978DD209AB53B885206C3A1B4F8B4A0670C087CDA9CDA7997437155659255C2D024822A448CE5157CF5B6E4C495A949960886A902C79591120117C4A73CE7B380C661851E1CA9EF1973D8A9D2A191B938C4110259C4227B600BA7EC9B033BB0300715032836573382445435A743CA61E923B18ADEC7CFAF10ADE908E582560EE91ACA012942319B4888109E55AA738A7BCF777C92B4B09A50A1C043C982C2C2357F73C1687B35BD123FC905E1A719353466A42B915DBF1A1750339BF0923419681E4531D97E2160AD896DB056570570510FB711169AF2DE0CBA51C5F5056242965AD429301E7020AE0141F845833A3FBA0B192426C001A7147C2926805CD86725442CADC2636BB769DCDE46D1BD12D30F4695593B5753870EF796FB2F3A53F283D5828B77CB75D5DE1BA25357C290A957FD501AEE0AE59D7AE97833B0BB640F781A08BD256C79117C220BDD83280A0069B29A645720096D297A2E5245439268C0ED01F75A939978372B9E05D93DA899C10BF6CDB18698C46EBE00BF90730E2EA393014461DEC6C87F17B2EE16C13B8507C6009BEE074F17367A5FC3067A28B7D804C32860EDE650E6FE85CF6E301D1B1647323199CA296ABC54D2811507572B5DFF92B54E3786D130938417624775D8534B0102B6B8006803DDB376EB830D1CA80E717BB7F260A5CA4A56BFC5DA790151725942AE7C42B2B9E385B4E0F995D4402161070B73A6BB0CDB77EF11B1286D75E315635E719088DC7909D026B198AC93BB4B6FE395843A4428F75C0C1448C605A8CABA0B8CD19CE465764B523628B3334E3885D68D5089E1A3045840C36A73AEFE7B93AB357FD8A46D7547A8EFB243E4953E67CA72CFA0B77835768AA0CD2D976820A97BC21C7033084AD45C0BF6B483ACA8A485641EB55A47BE36ABCEB96143BA90C515D5BE8513BB994CFA88FF4B3600E34C1E656877606B6280384A0F481458044C47732FA9B58195A5DFB48636E1558C56A43CB6941DEE5AEB1E27B89A7121BE166879B62BC01619A9ABE840CC678E028E9BC71CE233FD9DB8816294D71F1A080101912920534750DDE692F782BAC4D4481A0900E6BB952ADA798EE06232C200F57F76A914617914B7398A0433CD7A11B5AC09789034F39338CE567E3E7AEFE35B0C3B85D21506E8886587670761AF9BAD3261DAF22CBFC664604234B3B784EA001CC6702B9222545CFDB2965EB54678780EE3C9CC134CD2E655908D6BDF460BEE364C66D5ACCF4B492ADE9A0F3EB31995BADDE4628B67165FF6014D848541035CDA46949EC1C12FF492726A7214D1C7273FB85D5484E5A178751B56E3FB163D13A53C7B3038E09B847A8C06FF9B42E8C345CC95AAC1A09660AC1FC7A146E7845AB83390871655E604C4C009EE924AE107B61BC3664F488AC60783A1C346BD18C56CED3F03BC1B1E4075E9785F235EBC5CE6621414E77D52CEC3B2E +dk: 657004A34B4EA6B278BDC1BC94A997D86B206F88875A934042732CFAF8B3A0141FDD815F2203BD92AC478A9033126A8478FBB6453AAE005C03F60444163066EE922781D08DFB1508F547555B3027A2F75F28401A7D69A09669AC8309C3D4E4B49B214C4C76B3E4C26CED4940A325885C71883881B6C18C57BF22CB4484674A738988708FB7EC68855A96EF033B4A877038612B7B14BB3DCA791DC5CC7C85614A694D0672CB5656CA51C7B3CE11ABE1F4B790800FE7F47F97D640141702B147A3A6D99279B258CAE7899C353A66F6AF3C53C4A632BEB545B65A2724EF06CD05978E3EE20BF264A0335B21FC2137C71161A8A3AAA1A6AFABD023F58C0C393630E41561568C6669C2683B0B493A60A42889A178ACC3289BB135C891D89698C38AAE187C6E3DB16335FA61BF70C6D496B5251BCEFA9A1C95980E3810C0059C62E8838F1B0B46B4C5A2FEA19E790B2EB4C8C3A164C8BF5C89C2812E982B0F3DA0CDE958A26BD03A38C562CC67B2C07509E6742CB44C04320AA87C23C3E3A7506F26AFE94523D1B05280BA53B4ABB8C5717422D071396C6B7733A09B11CE1E6B2280F1C9215913FBA6522F90C009C0988CAAC61721993AE73DD71A551ED8431C1A8D286857455624842C4CFA80B9143CCEBF930AA1E738EFF1A46EFCC0D766B7E4AC39AD508D6CB9891DEB61B0AAC5FB9385E1D0682F786CA37C3DF1A38BDFC1162E975EB604163752CAC6C47E3BD909C53726C6D084188904CA98C743C9B5D700CBE4A809F1756DCF4C65C5A6B7A7F2725595A0C89C26381C218004B1A275701B50586A327652390FB68868CFE8084067ABC53A9A2CECC72BC625CA7751EC158F35E791008543EB202AE258C588E69E695425B9BA4FE0082ECC530EBFAB41DB23CFA8C2A63AAB11D179C91A712062536C4FF1C205287296B001121436C5F813747350C9AB63CEC0CCF7DAB3E642210517155228910C729BC9B24B138B85ED9A4678B2B4C67A73282842EA66CC458C706BF4A591BBCBBD370E09C937E396B76FE4A3B56B4CF638A5CE055CB63C1275D53B4197493A1A4309A4CCDADC3AD1F47A5E8C5C89235321028EF158094A6385C4E010D6F8CCF1C627BCB3600544B276D2AC9CC91D4BD5AD75DBCC8E7B7A981680212B5A3D395F8AA1CF2B0A23EBB63BDDC5185BE53A6C1410D0D96889A74265E3B34F4477FDF5B680D793F35C7A372B25A1F47C5875B34B80ACA2C25A0DE69D58E71856C55E37A79BC7376898C45BDAD66FD0A554D8F9BD69A525BAA4BF40B0AEFDEC66EA329ACF7B44D33C4FA248734F516BB0A69FF751A3E3D95975DC4E25194CD6F88E7264352628AF45B38A3434951FF99CBAEA812C04C354227431B01CCF2B5955B59BBB5A2BF382227D71631C541AF888232EF733A085AA1D14493C063B64E8BB28E3B7D0686CE8F942EEC58734525DBAC07159627863D97F7C198C50E9AB10E54979C394E90395E6A793C882CBA9D56179B75F11799709577F149CC93EA3A764C610EAE641F8FA2801A22B5686B335117C3C7B3D74986F70384A26A33B323787B7888CF873BE39411829D69D6E2CA2279971AE27660B5224D21015440844C457B6B9F2C50D19580489C63AE0612D423A5CC523B2D908C45907A6694A665195171A5B2FB583A5C240CADCA8F0E83E46B14052C9620D3B7EF386CE8B9A5E873B65693B0D341C6EB2D10CE5E937CFB8C4C9134401BABFEEBBAECF47113A34B9C6E011BDC78A54F2B7BF36A5FFD27563D7443F2109F02A64C421411DDB2D1404A86F793A2DE62CDC560BFD6604D4B6330BA6AA621414E8C12DC71C25652ABAF36B875DE1978DD209AB53B885206C3A1B4F8B4A0670C087CDA9CDA7997437155659255C2D024822A448CE5157CF5B6E4C495A949960886A902C79591120117C4A73CE7B380C661851E1CA9EF1973D8A9D2A191B938C4110259C4227B600BA7EC9B033BB0300715032836573382445435A743CA61E923B18ADEC7CFAF10ADE908E582560EE91ACA012942319B4888109E55AA738A7BCF777C92B4B09A50A1C043C982C2C2357F73C1687B35BD123FC905E1A719353466A42B915DBF1A1750339BF0923419681E4531D97E2160AD896DB056570570510FB711169AF2DE0CBA51C5F5056242965AD429301E7020AE0141F845833A3FBA0B192426C001A7147C2926805CD86725442CADC2636BB769DCDE46D1BD12D30F4695593B5753870EF796FB2F3A53F283D5828B77CB75D5DE1BA25357C290A957FD501AEE0AE59D7AE97833B0BB640F781A08BD256C79117C220BDD83280A0069B29A645720096D297A2E5245439268C0ED01F75A939978372B9E05D93DA899C10BF6CDB18698C46EBE00BF90730E2EA393014461DEC6C87F17B2EE16C13B8507C6009BEE074F17367A5FC3067A28B7D804C32860EDE650E6FE85CF6E301D1B1647323199CA296ABC54D2811507572B5DFF92B54E3786D130938417624775D8534B0102B6B8006803DDB376EB830D1CA80E717BB7F260A5CA4A56BFC5DA790151725942AE7C42B2B9E385B4E0F995D4402161070B73A6BB0CDB77EF11B1286D75E315635E719088DC7909D026B198AC93BB4B6FE395843A4428F75C0C1448C605A8CABA0B8CD19CE465764B523628B3334E3885D68D5089E1A3045840C36A73AEFE7B93AB357FD8A46D7547A8EFB243E4953E67CA72CFA0B77835768AA0CD2D976820A97BC21C7033084AD45C0BF6B483ACA8A485641EB55A47BE36ABCEB96143BA90C515D5BE8513BB994CFA88FF4B3600E34C1E656877606B6280384A0F481458044C47732FA9B58195A5DFB48636E1558C56A43CB6941DEE5AEB1E27B89A7121BE166879B62BC01619A9ABE840CC678E028E9BC71CE233FD9DB8816294D71F1A080101912920534750DDE692F782BAC4D4481A0900E6BB952ADA798EE06232C200F57F76A914617914B7398A0433CD7A11B5AC09789034F39338CE567E3E7AEFE35B0C3B85D21506E8886587670761AF9BAD3261DAF22CBFC664604234B3B784EA001CC6702B9222545CFDB2965EB54678780EE3C9CC134CD2E655908D6BDF460BEE364C66D5ACCF4B492ADE9A0F3EB31995BADDE4628B67165FF6014D848541035CDA46949EC1C12FF492726A7214D1C7273FB85D5484E5A178751B56E3FB163D13A53C7B3038E09B847A8C06FF9B42E8C345CC95AAC1A09660AC1FC7A146E7845AB83390871655E604C4C009EE924AE107B61BC3664F488AC60783A1C346BD18C56CED3F03BC1B1E4075E9785F235EBC5CE6621414E77D52CEC3B2EBBA283F4C993A010081E2CC571D97234472CC9858D199CF0D6E6B9BD720C2665DF0F282411F4A071489A8F618E2AE5AEF40131CAC5233D6D731522720C2FEB1C + +z: 5AA6DC620A6E9A60CF19A7B4F0FF805BDA8219522A548EE5857C3FF6060C7A2F +d: 092271D05CA63C60880AF404D60BC4BB9539E2EA12969581898D56E0AC9A5A68 +ek: E1F90F4586A2A7444812451655F63852C48D2745BCC5D95C15552CA7355A216B1B5131656A95453A854DA8291046A05D96E74CC4507D31973D9606171D8405F211AC5040658411A3997CA061C3AD30EC2AE6CC79CD4C9AB1D1CB47996F02E42BD8819F62457CA5CB9923C570FC749531C61AEF02642576A04E88493AB084AFB353FC0B032AE8AEA812373A323268200FA820C88E1881F0A0CED7D9601DF56C891AC2CF6B299C553C6B1C8A470B68CFF347C2A071B26557F185B4E2138B421A9BB6DAB8FB41C5459644F08614E63C8C4BACC3DF5AB7F86C44E48239EF387217C9540DFB50002C08ED9CB631755446786D4B5BC14D16C5EF629CE2916687C40053A2CD50667CBB590F7D3A2AFD54AECBD6211C84739AB75B80A38E9F27B6D6F1BD4C838BB2706E5DA65B95498CFA61AB90169A2C06B0E79CBAE0051683221C98DA365A27C1DE417666ACCA178717934258207A51DFFA0C926B6E3DA5B084F07560D949AD615724C306EF1165A5B9616FBA84C7D71C1117BBF8296722012EFE25B29C63291D31758278430CD90E844764AC252F33135CD2137115933B38F4160FD482CBD9265C27AC3B6582FC201DEB7A52D23AA5B77BCE9B7C6D699655105B9883830D0171882612212272261A0CC9DDCBC7D3439FF3A01B0BD4B63972263D919BCC9B95018114A11BABECEA27A5BCA3DB896AA49543CC50BC07039D31135BE1354B6A2B6B4375513010CAE856B7AEF64BCE20912432C09FD18905200249D4CC250306C341CB837A96F2B67422B63C29FB8887A962A1F743F3D01795D34E277343E7577878F5A3EC02728E9238D56B2115F680AFC70BBB361B60C10FF7F4094FE240089577D59969907B9192097CC05516A7132C2477435C8BC01909B4AAE5537CA2C6AC79806B6B5F32FB688C609200F16279D9CA987B68EA83A6D6309F1230562196BA93767DF126C98E4C3A3A0BB969629BCCDCB428A333D2B96E50B814716A5479192DCC0C0E4B194AED6A169E5074EF977F689528C997C1B99B02E1B18794B56993743456214064F80CCDA66B71BC009772784AF04FB7F468E2E93E03C18778D13C72FA149C50C1C9F45167A53E09657B50BA2A19B31FA95C5C6550B14F9B931EB51C37890C95157DF4F974E3A167DC005481F945D23780B5498AC5AB80DD8ACCF2D1322D3253B9450EDA3C3B365C9EDC4A87D089AF7797B01BE716917842A4E99CE04C86A9F172062C473C203A328C10DF171FB10C97BA6B8E71271D705110C810843D658B15F2040B385B067B1CE160A4205CBD57B74926143609979F6A888EBBECB7703498A278AE963223A8AA41916A3D37D949A3E298F01CCD36A5B6E0BA9CFF38BB890AB18869B4FB7CA8C1711798CAAB2EAC01ABA26A060266A6A91BA877603E650F7D15C24F9B23C52A9C74F43150E3A1D5D25BD0326724A42572C32944DA713457CB36B14E30F72761480035423810D83721A97505668F11EB26285A1709321A1C8016DB8BB085996D1A4880BD3B1D8BF2754F3781D57BBDE68297AF710188486EB6D4AF7DE411D36787E4D945E33C45CDE051601243A1F7028AD52B3B5C7728F35DD5F8994D4B8D9FA767611A1ADEE8B38C5A7A0AA795D0A970C749A06DCE6CF1C8ED19D1F7E9F1F25538877CCEC133881C652489A84F948041 +dk: 4967CD2CABA6E5B9C671732DA64B59450440532BBC0372C570341637B81346646971834CCB116C49C562D485982B3C602D723B721A8EF9A35CA6CB045F8A09AB9A176C55801901C2924874D65573F5C0B3F97C1DB4821AC3B23F7621BEBBFC4D1F924E9E0762F037904707128ED964B8B2C42B3B1BA7D101BB8C1A36E1040ADA4CBAFC2BFFAA9D12C69C01F3C65E3676C948C18C273F9EB34EB0C00682A285E6B8A514D1AEE73AB93423C187C57C286801A9AB79F2F7100FB08E03A24AB26625D972C1350B951064A0C2122179CB11914C284BB092DA4A044E2C457807CED5662D0DC23F8D8A951C9766AFFB11D3B3669826736A278FA44386CCD5519F3A04A87B0C9D693D0E505EB889CBC90785635CC08FEB4362E3B48134474B43771BAB84A9933BE0988834CB149A5C3724BB17FDA374D5B57F5260C8E60C37F440A8B3DCB5DC94B946495C025CA1258C7CA7AB56B3765C1EE0ADFD854E617AB40E26922EC667FCEB3192D01DF3D37A484239BA427823302440AA439580074D666DB14C1D1F0C9E5203822394988553C8A0925E04F5AA8B9942E6C9B0C6A942CE569F3987CFED7B7E7DE388AC6BBB7CE4C9FBB6C5D15531A558573431C6B398044F989EE581B95793279F0AB97F4355D9C566B231998C9C046C871A59C11A99B2271CA7364ED5C5A6FCC0EF27A7C147C829C69E09D01CEBDAB91F163C68EB18D382A1A081889281414DCB456CD6C2031C382771073B5621C7B60DC4B0A294C8AA62C5CDF68BB6B46692196198C1EB2FC9528B33A0B829CB9B809C010A3054230188DDFA60013375DC1C6A967146D1B77362A448E4FA97C3B72C2AF5C9A4193290630AB400CA5830024888AADB52A9D4894B5AA03322946062D523018131645B825D5BB8DCE285DF2977B96C02977BC889737C78C2A3DCC5666B652C6E8C24141516DD8520DFE84E5129AA6BF55BB1EC79C3771B029A3B91F9701677C854E4105D5A485F8CB6A5C29CB2F47A4A60281F8B1FC8BC150122B08296B45F97C58CEB743B42000720CBBE5022B7143D3E177023ACA482988135197237706C26A94B35E20DE3CC0C53CA9626F2615E4B8D581BC2656AA72A0AB9242670E6322A89489C97177E3EA1AB9C24338AA35FA272C76893053A76051F4A88DE1944FBB0AFC8E904CD1033E7DC0D0ED029A7531EB612C7B46775FDC09B54C483F6B06ED16427F50421B6F59C06FB0AE4F120C54644DD287CE3119E440AAA8E0A611AB9B52DB1B445036E2CF15BB8DC72CEF50DC3788BD85832D0C18B2685659F8A8BD55144A4EC9764109288B21113E4089E598BBA1453041C9717AB25BA5239FC54638B5A20247B9BB755A360E16F83246CA2D024CBD4BC8E966C2F102C6C02CEAABA0F92874179C8777F937D9A3CB74920BEFE6A759CC94DA0A3ADE2D739D43A99E1F06A0D6A41AAC076CA70171BD697F1CB16A3B481EABB2269B57D36599F3B734BCECAABF6D5835E365DF0261C5C11B8B5314E08EB209A8938B9AA6566E159E2472D97553972DAC5B83292EA350AE358C60FA7773B5C1AF64891C72643CBF8085176A05CB47577E50FA6D42E96C5A465E05C7DB75BE4262A7AA58090585A62363B6C989B8274C426802DE1F90F4586A2A7444812451655F63852C48D2745BCC5D95C15552CA7355A216B1B5131656A95453A854DA8291046A05D96E74CC4507D31973D9606171D8405F211AC5040658411A3997CA061C3AD30EC2AE6CC79CD4C9AB1D1CB47996F02E42BD8819F62457CA5CB9923C570FC749531C61AEF02642576A04E88493AB084AFB353FC0B032AE8AEA812373A323268200FA820C88E1881F0A0CED7D9601DF56C891AC2CF6B299C553C6B1C8A470B68CFF347C2A071B26557F185B4E2138B421A9BB6DAB8FB41C5459644F08614E63C8C4BACC3DF5AB7F86C44E48239EF387217C9540DFB50002C08ED9CB631755446786D4B5BC14D16C5EF629CE2916687C40053A2CD50667CBB590F7D3A2AFD54AECBD6211C84739AB75B80A38E9F27B6D6F1BD4C838BB2706E5DA65B95498CFA61AB90169A2C06B0E79CBAE0051683221C98DA365A27C1DE417666ACCA178717934258207A51DFFA0C926B6E3DA5B084F07560D949AD615724C306EF1165A5B9616FBA84C7D71C1117BBF8296722012EFE25B29C63291D31758278430CD90E844764AC252F33135CD2137115933B38F4160FD482CBD9265C27AC3B6582FC201DEB7A52D23AA5B77BCE9B7C6D699655105B9883830D0171882612212272261A0CC9DDCBC7D3439FF3A01B0BD4B63972263D919BCC9B95018114A11BABECEA27A5BCA3DB896AA49543CC50BC07039D31135BE1354B6A2B6B4375513010CAE856B7AEF64BCE20912432C09FD18905200249D4CC250306C341CB837A96F2B67422B63C29FB8887A962A1F743F3D01795D34E277343E7577878F5A3EC02728E9238D56B2115F680AFC70BBB361B60C10FF7F4094FE240089577D59969907B9192097CC05516A7132C2477435C8BC01909B4AAE5537CA2C6AC79806B6B5F32FB688C609200F16279D9CA987B68EA83A6D6309F1230562196BA93767DF126C98E4C3A3A0BB969629BCCDCB428A333D2B96E50B814716A5479192DCC0C0E4B194AED6A169E5074EF977F689528C997C1B99B02E1B18794B56993743456214064F80CCDA66B71BC009772784AF04FB7F468E2E93E03C18778D13C72FA149C50C1C9F45167A53E09657B50BA2A19B31FA95C5C6550B14F9B931EB51C37890C95157DF4F974E3A167DC005481F945D23780B5498AC5AB80DD8ACCF2D1322D3253B9450EDA3C3B365C9EDC4A87D089AF7797B01BE716917842A4E99CE04C86A9F172062C473C203A328C10DF171FB10C97BA6B8E71271D705110C810843D658B15F2040B385B067B1CE160A4205CBD57B74926143609979F6A888EBBECB7703498A278AE963223A8AA41916A3D37D949A3E298F01CCD36A5B6E0BA9CFF38BB890AB18869B4FB7CA8C1711798CAAB2EAC01ABA26A060266A6A91BA877603E650F7D15C24F9B23C52A9C74F43150E3A1D5D25BD0326724A42572C32944DA713457CB36B14E30F72761480035423810D83721A97505668F11EB26285A1709321A1C8016DB8BB085996D1A4880BD3B1D8BF2754F3781D57BBDE68297AF710188486EB6D4AF7DE411D36787E4D945E33C45CDE051601243A1F7028AD52B3B5C7728F35DD5F8994D4B8D9FA767611A1ADEE8B38C5A7A0AA795D0A970C749A06DCE6CF1C8ED19D1F7E9F1F25538877CCEC133881C652489A84F94804166E5248CD311286D6DD03E010391D90D76044BF498B53C9D8202A9EB643527395AA6DC620A6E9A60CF19A7B4F0FF805BDA8219522A548EE5857C3FF6060C7A2F + +z: 7CF50F7237A97072F03F31CFD59FA8E863BCA3AF7375E0CA698FF665661C24CF +d: BBF7574CF5F32BE49E1F39CE33870D9D6384056D60D223003B6B0C10D5C42180 +ek: 602389F7CA3437B9197677CB9E9704A2BB73A7815EC1047D8D63A55CE1184EFBBBA3F701CB0C3D0D18B757BA23C6023B4D34964B66107C92C5E0AA577FB93F31FB9A73786E63E7CA4DA84215F6B05A883C19F8B0D0326025A41A98D056B70A18E6E6469EC63C80BA0B7EE330B89314838883BFA75F2C6155BAA1922FD446235CA76A634EF715776D3AA3728482C5F69931DA1FA0A406D75756D025C08DAA28EB2A226AC56988F68B54E3205C1B341528374B9B9BF07BA42BAAC34219597FDC66156155DED5A7C3F386103BB0EDA1CB1D4258CE1A971447075CAC2AF538A96F1C570014341624607A3C36BB4771DC99916EACCC04268D25DB95DC20B041B394FAB543118B74536187EA32BA1680B006652AEFFA9338FA00BC099846419630D38CE7D726C5CC84CEB9C154E9B309B6A99BC142CBD6B210408455704A3A644ABF7768E6E87B54734C1CD0C139B2292C612DDAD0AAFB239CDAB80629B91AD9585DA88A84857249E68595C0564F2A07735A76C1CAE64D28D14A191A9F0CFB709E216AF6CCC0654AC206B722A2E84BE8A0C13BA359BB1B741F191F076A7B27849D2DC146CD8456FB165157A2ADF2A45FC5647FD5213E8A105084138CF29A583A0B5BFEB0A523798085F2AC8A44745BD556D7C0959EC319563077F5D5137E8B7E9743115D390BFFB91DADDB0DA4A21433B963A15933FAE236A537837CD056F4145EEB7872E8153E0BA9702C7A20598481C630206EC359C5145BF123A18054AF7D6851B59707B010A0BC322D3E3CB0F0BBA619C0CCB5239A5D7B021007211024868DF03B4729578F029EA7DB1CE62C15F1843C16469AD144C805B5C217FB18CFC49CBEB80BDB9CCACCB181153C377997C509B6606DB808F04911FCC4CF1902035DC3016F64498C13AF1BA2C240C6567E5520FDF79A5A04634439641DD2672BA04B11931CCDD3629D860B9EC767C3AA4C9E09BE25A7752B64087B0A973E6B3278E66E89F4BCCBF3090A729467A88FA0AB1A6805C7ED45678E71BA79A85F267771E456B2D56627AD66C7CB07B8D73A69A2682C79B1C13986C07FC7986C7C3C84EA4B6A6C1691675912B2064E3598C32573B6B87E67B006E2F312F15A5AF4E237345468756390DB585514302A80746E985A104C43BA019C5DDA678047C6A48CA36A51CB3A333767BC35CA31B59CCD64A2C59AC884A8B1FB396FCD42C63057663E8A1F809709AE89AC805277E1151B92DB4F0E52923BBC093B7C6D15621D2BEC2C8DB77F25F86A62646C54C114BA03CC6154397127A033D402248383FAA8BD1980C93E123B57075633B6B643941B417890B1AA810C88461E60413264612B890FA83115D22041243C47263B57CB32BD84D839B9CB96E3777E2DC616D8ECCD1BB21D4AB00C83D4B4298A671CCC1FDDFC3E4DBAB48F1B8045D3991B3952D4799B7E1C3D31B74F9B619BF17016D143B16E593F64C08A71078C83B197BD530063D026367993E8C35305D211C2E321ACC889FC6917F70A33EC2AC4D7FA448A79A89B531BE89A59CDB8212E7715144721613619ABA2CC7E53A3D3F84908C09B26320FA3C1CC9D840F21851139236C7CECBB8B3C2681DC145AACC13B4BBB15560793364387A0CFC97C0312351F420A0892084CACAFEA4241305B12C78DF29F2FC5FFEE800216C1DDF275 +dk: 7BAC37F9C7AC728C78DE12B13C0A2C1B522A837416529A93273A4A14007BADC7BBFAF03EB90A7CE4E8B87B70986806C9DDC9BFFAD06D51C081E8866E7624A373E87E8BE1A60A861650346296F8B89C7A0EC713CA9A0B9BBDBA370104A414C02DE8445B9F4314D4902EBB400226A827DFC6603812178786BB1D6A9CFD048A45B4A160333D73E344497BC526D262EB73AA9D3456375A9F237B004B2414171C6BE0F02A97E83B1F8C411FE350D9B51D42D11BB7A34F8C59AFAD18722B17B21C5253389A98B2A96E5BD798AD10AF6F27950F64638080C7F0284545BA6E2BD93BB141CA924966735C7383631EEBEBC1BFEA7160FC60C143C9359A43C3A03429D663196B723CD35FF4C465B356A77A7C5FA9408E91E08BB6F141F1A9B93B4452843873F5958AC7AB9C8A660BEE218598D09652F921E8980449A8087857B129B02A38FC664F0C21B4E95E3B400AF4B30EAF649B9C968C0AA5B2FF8781F8D01534FA5FCECA771B2A2ADD27710DB25402E94F66D37D52780E25E4317FF80F0C682641301015D7900A312C9643B336AC53C94889342B09138689E8BBA191700791197B0F804BD834064CB3446C9382E6839F25087F5DFC1C741B91A8FAA87E529E375A0CA9B424C429BBF0B6CC7027123EC211A9A5622611536290A0E30A50CBC567D08245B54224133923AE399EEE6454E858352333164510A8A510289F56B073ABAF82F5986BC52778A86253BB96E357AB4F78A7C3159DAD184B8B540BE1DB861FA1951C0C59526305FF005D741B2A312B586D75B72A6B31DE68A07DE4CFF0490A85009442390FB5F45F70F5AE3E286B20C35F55DC39DF6C7CFD992A3203718A58C2D849CFA78C4F9FB20D68E8A7B35065D3DA738F01C6986600677325AD146816137221E3C47B9376A3669CCB23A533A85B1028865BB4A99361486E789C0C42C3D36831D5E86278B48B2EF8042FAA2491B413FDD9AAC2493F44686A649BA866D30F887580857B7159161D1D009920033F9EEA92E37267CA936D0823A8CA195458731DBE45B25F46584268787D664FB7587AF4B67291255C66157CE7646B2F4B5015D75D5332C9E95470F52A9D8EB5438A390BD7254924D46C583A7892D53D42E9406E0A6063121A03F0A550F4AE2E8042D962A3AB69B223C37071F1BDD2BB1639D34041D1BFC2576B268ACDA311A5E0222DDFBC5D67A77EA0C37C90B474317195D567351280AB0E5840A3F60EA9C5162A706550877430F6882A68006A683A90B38F26C90D3FCC780C0CC7E6E88FEA5A02D912A1C485667F88AB329552A93837858235E98044A28A24E1F71435E09DE2AC2744BA2E116A136E95AED53BB906BB46FA214E218A815966214F581C1134545DD05EE4E9495AD172CB2BB199D79328E06A45A42A4EF37443EC6F57631D0959B84A1B169297A0F2DC16B13B1C43567C043237AB18BD53A8898F6ABCB0F8A012E2CE203649C4286C6D3C41346599E953B6899712D4B86BFC4B54A89B061E93B423793CDD798E6E5A1BFFD565245788B0BA6A0FA3BDD97960C9CB0A10DA892D829925FA4F85CC8FF895500933BB78B3993CC04006819FC93224D19A02E11651E5D3AB3CFA6DC1C206F6516A5CD5108D18B47960A6602389F7CA3437B9197677CB9E9704A2BB73A7815EC1047D8D63A55CE1184EFBBBA3F701CB0C3D0D18B757BA23C6023B4D34964B66107C92C5E0AA577FB93F31FB9A73786E63E7CA4DA84215F6B05A883C19F8B0D0326025A41A98D056B70A18E6E6469EC63C80BA0B7EE330B89314838883BFA75F2C6155BAA1922FD446235CA76A634EF715776D3AA3728482C5F69931DA1FA0A406D75756D025C08DAA28EB2A226AC56988F68B54E3205C1B341528374B9B9BF07BA42BAAC34219597FDC66156155DED5A7C3F386103BB0EDA1CB1D4258CE1A971447075CAC2AF538A96F1C570014341624607A3C36BB4771DC99916EACCC04268D25DB95DC20B041B394FAB543118B74536187EA32BA1680B006652AEFFA9338FA00BC099846419630D38CE7D726C5CC84CEB9C154E9B309B6A99BC142CBD6B210408455704A3A644ABF7768E6E87B54734C1CD0C139B2292C612DDAD0AAFB239CDAB80629B91AD9585DA88A84857249E68595C0564F2A07735A76C1CAE64D28D14A191A9F0CFB709E216AF6CCC0654AC206B722A2E84BE8A0C13BA359BB1B741F191F076A7B27849D2DC146CD8456FB165157A2ADF2A45FC5647FD5213E8A105084138CF29A583A0B5BFEB0A523798085F2AC8A44745BD556D7C0959EC319563077F5D5137E8B7E9743115D390BFFB91DADDB0DA4A21433B963A15933FAE236A537837CD056F4145EEB7872E8153E0BA9702C7A20598481C630206EC359C5145BF123A18054AF7D6851B59707B010A0BC322D3E3CB0F0BBA619C0CCB5239A5D7B021007211024868DF03B4729578F029EA7DB1CE62C15F1843C16469AD144C805B5C217FB18CFC49CBEB80BDB9CCACCB181153C377997C509B6606DB808F04911FCC4CF1902035DC3016F64498C13AF1BA2C240C6567E5520FDF79A5A04634439641DD2672BA04B11931CCDD3629D860B9EC767C3AA4C9E09BE25A7752B64087B0A973E6B3278E66E89F4BCCBF3090A729467A88FA0AB1A6805C7ED45678E71BA79A85F267771E456B2D56627AD66C7CB07B8D73A69A2682C79B1C13986C07FC7986C7C3C84EA4B6A6C1691675912B2064E3598C32573B6B87E67B006E2F312F15A5AF4E237345468756390DB585514302A80746E985A104C43BA019C5DDA678047C6A48CA36A51CB3A333767BC35CA31B59CCD64A2C59AC884A8B1FB396FCD42C63057663E8A1F809709AE89AC805277E1151B92DB4F0E52923BBC093B7C6D15621D2BEC2C8DB77F25F86A62646C54C114BA03CC6154397127A033D402248383FAA8BD1980C93E123B57075633B6B643941B417890B1AA810C88461E60413264612B890FA83115D22041243C47263B57CB32BD84D839B9CB96E3777E2DC616D8ECCD1BB21D4AB00C83D4B4298A671CCC1FDDFC3E4DBAB48F1B8045D3991B3952D4799B7E1C3D31B74F9B619BF17016D143B16E593F64C08A71078C83B197BD530063D026367993E8C35305D211C2E321ACC889FC6917F70A33EC2AC4D7FA448A79A89B531BE89A59CDB8212E7715144721613619ABA2CC7E53A3D3F84908C09B26320FA3C1CC9D840F21851139236C7CECBB8B3C2681DC145AACC13B4BBB15560793364387A0CFC97C0312351F420A0892084CACAFEA4241305B12C78DF29F2FC5FFEE800216C1DDF275A918B39F71BBB2C10DB35639E5FD2CE621868CC02149E029EB47899407D963007CF50F7237A97072F03F31CFD59FA8E863BCA3AF7375E0CA698FF665661C24CF + +z: C593627807074684B7D363441F80F6A3D185D67878702D33A4E0BDA2000F857D +d: D12CD9B65B7C58B2195AE0BE0282527BAC06C2D25CB0472628D64715F7F6A378 +ek: C85428E8EA5D6D1C7E544703372498F68311C32BBC70B86F2A805FC94089A0421AD680053D5BB139EB95652ABA561B07B9C2639AC693972070F351A3FB6138FEE0A73BF63161B604D7DC0334D6C631BA25F584952045C6CB74A31581B866EB5FB69503A5E3C6F96652547968626CC9C6ACCFE9582778E928235305CC5447661A64363A9FB3CB3720868812B2A3F5E7820DDAA8BC799566773BB62B769A8C54E6B533803A48D877706303A76BA2188EA4900155728DF29E7AF050F8CA9F92B65ED59988496419070B0CD8E964B402491D134F59EB2E3995C1B3B654EA7A5628C677858208A7958C57C7CCC697677BC65091015AF9D6C688E234DEB528608A1AAF35C2CB2A14593376E1417098778439D9BD6EB31BC0B53F277BC6763794CFEB8766957F6B206D439BCDCE4466BE20B74F7A117D7102F4A2CC93B098795146CD2903D131315EB41E0DDBA6B562B8341753DBA98D1ED288D8F33148814847981C735600AF76BFD0B964521A8B3122B3B90BA8228B1C4C834C808550D7780BB33218F155752DD15713F5A32057C42313A6FF5BABD6AAA1F6F5460C774CB83C6EC16C84D4A5B8EF728E58E8B34D7C090692B73DB64BB02AC365800915D78A9452158FA210C99B608DA053F574AFFAF1A49AAA92B3058468346D9D5A6DA97A9269B4713AE17A214921AE76A90EFC5A4AE90147E154A562C1C96598DF670EEED86EB946C9B45460C63A1339BCBE23B4332A32C02A028A892478070624D35C950AC84ED7D1B5640A70A3A45BB47C39EC181F7C8039929003D4D674DE3C5C89B0678CF3B125C864E95439C20AAABD015AA52BB3C27316188A673785CF2C0C77CAAC7604439A69B46005EC646C37C510FA835CBB36C162AB7C944F8228A4FF32340C3C63FFA3CBC48C7E01D35A6DD010E211C21175171237067A614CBCF7B18CF98ED0E8B88B58555D871564B0B71B75B5D078428EE87E0379A23822BC34C00A5661602C4006BF5CA667780E81F1759CD63E6BE63CC6C07ECF44C2E11346E376733D185A281C8648A9B951E14308D7A55A0717BB5C9C3CD5C7D88636873453D6148E674093A406860028AB50FAC90349C5BBFC2A7B6A18E24655DE541356990BA1C7C465630475176A03D58059F26700CBC383A0750F5271B8D5BDD74468E98C189FE302A5A452D2E47340C2B04A0275B47229B2022198F14E674071C6568EB428B0C0748CAA0A2F8BC28FD27862687B452989B034072B69381CF73BA00F7B7C401C699BE466593918EA96C79A3980023B299595179065198F93C6D6456DD53B586E6079340952C1314A140605DD34126291396AD22F2C7820A4AC793768707E071772EA587FFB9AEB234ED7A250DB40A1DD7A3869104864392B6DFA23013C8CF8856EC8E30C0AAA748351284F67A0E3469D3CF7C28A85BAA2630907B70F7C31870E8A29DC7B908CA880BC03C3CD2CC7A57A9D48A238667776B6D9C77247ABEA49B0F6935AA9446F0F2CADCC7A809B651DB55131A7B662CE428EF89109BB33C4E423B05781C42BFB4514092D35BA6D8E77B71F6627C9D91EB3672E656A00EF64CA7551667882444DA47FEE440B0E59755FB33039FACF337CC572D7CBACD680CB882ABEB86D9A3937FF76EFAF15E6AD37597C50B3153DC8B18625508393935D2FBD49D32ECF +dk: 9FC4A82AB21F667A50692A482D59A06FF2620ACCAB62394DEDC7AA452761F38A5A499C8091498FD7A5910C1A14324685B9307236CC0773D98B36EB2136708DAEB21F8D4B713CA5456A02C1C8EC012514AE3FF6476D1C3D8D47638AB79AB83433B6592E2F1690BED646C0519EAD1CC58779786B384618604B1AD1340E178FD97A8B3EE4B009A5BA115CBC3832B92ADBA22BBA7823976683B8A4469A3BDEDB8FEF5C3582A5984CEB2CBF5A57C96B246D05BA21F08B8582CDB5632DFFB404C320A004E878E31B877C07B38B7A12142A5628D2BA4CA6680C9B9A6CF18B3B4673962533D7C503A24C0A91EC9E1F75219E573DF630724393A18A61178623224B9C4892F6A41657175D296634474F1C3BBD76E05B9C5788B9857655D142BBD8137F047A4927B923163493FB31EA5C151A4719ABD61634F8A8856A968C7538E2641D5B79CDC78971ADE70AF4F85B09770EA4E05642CBCF02F095A9149DD266809DE0911A5481CA22176BC9B0C5A7066A00434B15AFFF5C532E1042BDA52D425CA202A599D96A92D58B7B40F8A76EA34C6B45B76E6C07FA9CA20B3587DED93E94160AB0412697DAC2591530620242A9B41F37B11CE1347075271091B78EAC2221DD735DEED8189C0029099526E9DA24F234BBB423C590CC44C675AF125B021951576F5953CBD45B8F6326CA9399D3127EB430AA31F2C5154768A7E440F63738419834F41AB4A149278DE5882506085943BB6D19088FC11525973ED9132238A350F201479D9469CBB46117E7B74C0298B5E785F27384A4984452868BF5056D9A966D844ACD946073AE275D7F82C4583C08AE33499CC53D4437C3EF967F6C904B75F503330C4B19981B28CA8F26CB9F5604081B8706E657CB8E9431466CA0EBF1B71828A3238578BC2B38620C3416E84B3058174716A312C205ACFC481871588C37263B6839768C5CA575CF15058C52F39379B79D814788C19034EA17BE4969255EE767578B0B6B347FA9A52D199891B9976A7345B93C659CBD7814F5F300900581674BAB7D03585E802C8AEA7CAD748F5065039788B76813C7F991A642C44EB1F151C6A3BD96C4331F2C01EEC46A3A1BC30555BA7F2C9316F4CC7D18C9CB73962A71CD0EF32B121393041684CFE692D4834FD0B25CB0A04531E656706A7D593AA1D0FC56FA304CCA3B5BB3233E7B141B6AD1C448C35268C99815E451C2B821F034CEEBD748A72625F61B610E478099F6CCCD39BA2A050611894D5524257D9A06D3BA2BE2AC70EDE8717BF593FC159F8433CA0C54420453610DF451C4736512702A95B2B0FA5AB1B4CC3FA74B974A1354F8B2BEE35187BF049D0A8772BCC85443B04303051415324523DC1FD494268E172383F7570D366570DAC588A73FCE3104921B325E45A87BE798683A6C2D0C90A869BB2B4BBC332B7687C81A287853F7C06F596271F5596FDE93BEBA027977C788F472C114C889BA4C4D3F39C7A05A34E57A8D5C4C10A19C3A3BAB1711FBA07854824305AE9D46A6DD11331656C4267C20B511B6672C0CBBCB2D5B67973239B116035BF38C9BED8186762201CE295A5473A825C6210B70A70CC5C5E235384908104278AFE955628D80B43F13BE383A42BDEA6D05EA7CC85428E8EA5D6D1C7E544703372498F68311C32BBC70B86F2A805FC94089A0421AD680053D5BB139EB95652ABA561B07B9C2639AC693972070F351A3FB6138FEE0A73BF63161B604D7DC0334D6C631BA25F584952045C6CB74A31581B866EB5FB69503A5E3C6F96652547968626CC9C6ACCFE9582778E928235305CC5447661A64363A9FB3CB3720868812B2A3F5E7820DDAA8BC799566773BB62B769A8C54E6B533803A48D877706303A76BA2188EA4900155728DF29E7AF050F8CA9F92B65ED59988496419070B0CD8E964B402491D134F59EB2E3995C1B3B654EA7A5628C677858208A7958C57C7CCC697677BC65091015AF9D6C688E234DEB528608A1AAF35C2CB2A14593376E1417098778439D9BD6EB31BC0B53F277BC6763794CFEB8766957F6B206D439BCDCE4466BE20B74F7A117D7102F4A2CC93B098795146CD2903D131315EB41E0DDBA6B562B8341753DBA98D1ED288D8F33148814847981C735600AF76BFD0B964521A8B3122B3B90BA8228B1C4C834C808550D7780BB33218F155752DD15713F5A32057C42313A6FF5BABD6AAA1F6F5460C774CB83C6EC16C84D4A5B8EF728E58E8B34D7C090692B73DB64BB02AC365800915D78A9452158FA210C99B608DA053F574AFFAF1A49AAA92B3058468346D9D5A6DA97A9269B4713AE17A214921AE76A90EFC5A4AE90147E154A562C1C96598DF670EEED86EB946C9B45460C63A1339BCBE23B4332A32C02A028A892478070624D35C950AC84ED7D1B5640A70A3A45BB47C39EC181F7C8039929003D4D674DE3C5C89B0678CF3B125C864E95439C20AAABD015AA52BB3C27316188A673785CF2C0C77CAAC7604439A69B46005EC646C37C510FA835CBB36C162AB7C944F8228A4FF32340C3C63FFA3CBC48C7E01D35A6DD010E211C21175171237067A614CBCF7B18CF98ED0E8B88B58555D871564B0B71B75B5D078428EE87E0379A23822BC34C00A5661602C4006BF5CA667780E81F1759CD63E6BE63CC6C07ECF44C2E11346E376733D185A281C8648A9B951E14308D7A55A0717BB5C9C3CD5C7D88636873453D6148E674093A406860028AB50FAC90349C5BBFC2A7B6A18E24655DE541356990BA1C7C465630475176A03D58059F26700CBC383A0750F5271B8D5BDD74468E98C189FE302A5A452D2E47340C2B04A0275B47229B2022198F14E674071C6568EB428B0C0748CAA0A2F8BC28FD27862687B452989B034072B69381CF73BA00F7B7C401C699BE466593918EA96C79A3980023B299595179065198F93C6D6456DD53B586E6079340952C1314A140605DD34126291396AD22F2C7820A4AC793768707E071772EA587FFB9AEB234ED7A250DB40A1DD7A3869104864392B6DFA23013C8CF8856EC8E30C0AAA748351284F67A0E3469D3CF7C28A85BAA2630907B70F7C31870E8A29DC7B908CA880BC03C3CD2CC7A57A9D48A238667776B6D9C77247ABEA49B0F6935AA9446F0F2CADCC7A809B651DB55131A7B662CE428EF89109BB33C4E423B05781C42BFB4514092D35BA6D8E77B71F6627C9D91EB3672E656A00EF64CA7551667882444DA47FEE440B0E59755FB33039FACF337CC572D7CBACD680CB882ABEB86D9A3937FF76EFAF15E6AD37597C50B3153DC8B18625508393935D2FBD49D32ECFC86A41EFD315191F24D2E6BDD87433D5133D6734FBEAA9DA8043D91950000048C593627807074684B7D363441F80F6A3D185D67878702D33A4E0BDA2000F857D + +z: E01702E1228F530AC96DB053A415BE97749A109A1FD4057BA128649B17EC07AD +d: 79C006D5470C229AFCE7588546E52204B09F5086974865B426AAAA198C6CBA7A +ek: 52764F398C4AED89848544114193553BB178FBFCA4883C76BE23363B3343F69C8AF0B59F7C0482A64985B50A6EEA5C700CE7BF31DAC43B82372405638010A320E2A28FE6321C0AB85BFA8723DB96E8D1508900996B27812507885C97A1E7C581E35915D0709C9CFB2BC713B305705406C522D0305F5BE51EB3272524A797ECC2AB5330538BCCA62CD51937330849138620032917ACC188E8B70DE56B43E812EF030C0B4C062B1437AAE13A355AA9B41B00EDF4151F2C964FD332F3014BEB990E19C2350050735C7B02C0936B6BD37CA18114854750E32A6790515E1B4A31B2B71F9DE4082C225679CB220522BA6235B89F2C8E231BCFC815B9EBB15534D5B352566942A742AB405194AA74B90B26B98B669DA43FEC232FCF351FA5C50F812057E44858096395CE67AEE48382063A7928CB4904D623C56974FAFBA18519BAB743168510700F715E07EB331050C4160A6AA024C126027D11C324A87BA13C3CB10E86B2212343BD0088382769B9494F769918DA7C8EED21896C75711AA34B0E3BA8527371271AAEA05C906C5CAF6B5A6A08C4998492323E04CD5E63B1857A4FA972BF8B430036A856A5F9183C4B652A9311F1901AE3A4A93D302C4E77282B04046F7AC2DF2333C21B343ADB75C369A5385B9CC70280858971716A0587B74492637DECC8130EC8418954763E39AE47BBB084103225C21F64D94F14D55B9BD2579C5BB03EE4915016C2CA416806CCCD56061F92C0B1EAEA50DBA36B76798F7B8AA8AFF2CC06B04BC3106F22845DC5D847B5D444F05803CBF062DE581E12163094A5C7131A24B9327DAFF9134F32B647D9CA52A65A91A4899D64100F3376E0D318C7B8188BFA88654AC370EB5D693C4D9D481CAA98A2C99C168A0306261165410B32A53BBBBA412B54702476101C6550C286D6615AA98D8FD95ECD88BF45CA383DB3C6239AC7AC16606877751311CE8B447D0F6B9499943706B5A46F291A57302FA4F3ACD4645DBB515868371FD79887636737E333C9B06285508832401107089176E06A2F17E19E4FF61623603E17367D33F023C2CC820961A6E3500092CA3B900BAD66C179249C75A5E08A5563BE1CE312ECDC0AD370518F66594314CF5C8BCA20948D54C70F800542BD5B64ACC9AB68FC90F48662CFFC8F801C06DE972571E8C25EBA7128E95C13011EF88240C2C9C0BA555AA1C70956C9621A600F2817435C09C75F8A08CEF2C5D31C5C5834A745249CEB7641E6B19E404865EB374507DB3394A77A0F47149896AF1C747F86C97201D8C1CC8209E571B8C4D6972ECB1CA930B15516922FF08BF0C942AB5C5D197669AF94457FC9BA5BB47DDBD3A34EE941943B0B262A63FD0922D803CA035C6C54DB71B5A5A76F46C787036BEF777296E80664F73A78175EF7DB567BDB6CD8D97D27649661C76216D99D6264A7EB274C507AA170E1C3F23CA00A04B861AAA29EC33D4584B12985AC3B36689F129F3D29B19DAA5DCE4150162A10FA835E1D89A21FE10E4B1489E457C415961648044774C49DE6908201068D13463F1A999D3103342F03020F043DF3CC2E897B8293D235E8B408F2BAB266CCB0FCE19F6779A9C7DC89E368B07BF56F29911593E78009358CEA0BA304C0C074FC86A0782F99BC38571CD1632770CBEA199AF4181984FD05FF371931 +dk: B9C74FBF945530C8B3F846A803ABA28337B79D4B282B127D727A145BD77C19D980ACF4A5B20A09D770BC96F9A32EC16ECC208126D0C755C334BFE36E0AA3B968D0BD9EB80FA4953C9B843AABC828BB044DE62AC903D655C5960F45A4133CEA1AE6C4A09D431B43B19511631483E457C9108D7F3AB090203F712BA759602FED0A68BB7C8B10DB592DC38606978C56198B7F3062A200B03FE281FF95A27ED48C630CC1699423F5C6A07F850F2280101178CA24C282A7455FAC19869B207C46540AA0E4628246777CEB02B24ABC1BFA02326B846D7A20A7E642116B97AE68219AC53712A0077E325B4677AD163A38A6B8754DA8957C52B6CA5905C43131467B86F2CB1B94891A88B79058D6C6D8DCBB2C167156DC81C59B60F66C16938935DCA2BBB80084484B1F11330B5010C2F6C5AADF352D2E5421BD5B8A77758B72A058A0A6074B3C08A9A2B0EFB7261CE38219542CA7759FABFAA924721D7EC8C11EB62976EAB8202AAF0BC082370A47735B0931CAB5D6A92F8A67184DC906856946004B991394C7F1F1B84A4C0BF3F249B73747732AC3F04C5FD94B33FFD8250AE4739FA04233B6C381F69A3B0AC7E0003613329FEF9A63F033CDD09137BE13BA7EF42F36342A1C215A5FF4AA76D044C0AAB7ACD7064BB064C9B66BD7E2C398404AF7164FD0169BC8DB926BF63DD0E2433C7C17854A7E538722E74118CACA4621A532B2FC8DD0E204DBD01B8B3C7AD1A5BC78E78E8C1265BDACB7C78A62A3E10EB7BC3E7FD25ED8827C23428E3A198CB4821B0EEA62C9154F6D305D00BD7BCA42A1BD488AC4412D39B1573ED978EB912CAB796A594C5E9AE6AE7C94C76BE61DD47354163A7E4063B8A592C91A8A6B34451AD400672603C60DDB26F1B0587BE2065362006372081C1A52110774EE4A0231842AC6E7B4345B47C6A5C42D3C2C951014A7B753A90345B0692C8A73A82D8B01589C3CEEC8ABA357931E18026604576141ABE253CA18C356757A9D0BD49C1FC1CD90364D7430B061DCAB362257F80405D35184282C8861613D6EAC28F1360B1888192B25719D7A3ADE28AB76FBAEC4DC35DE5B5CACD64A66A39824993F2FF7783CB339319998AA102369F43E841666CB41CF0D39B998267356DCAC4F0933E5E56CBD920FC56AC33BA82E80FB13C6C64932C65EC4C66E903859C4F20D1AB5825FA8322CDB41F4341811D7663A6397363212DED05DA0D76EB5308D32F4442A488665DA80F54ACD37C406FD44AAA56CB31781AD393171DD539727C6582594BFA278BD2729A9150B916A8CAE861153DEC3493E18277A766019CB556882266521536EF030BCA36115753E08762142B33C5E34A9E80716C57A03BB362F9334AC44744EBA711AD8F44C2EBC151976C49F179D24B53C30615BB42CBE8CE069714A9447D939DCBC128126C1F9AB35C222386D894B6ED50A580B3ED13ACAA18C8D49F5A5826A9D1B6530100702E2C9993C3AC5C9286AF6324EC9B8323C032884B344EAC49F21D76323DA9FCB324E8DD7AFCEE162AC14BB427C0197C4AB9AE490434586EA76AD9AA042A060973F301F5E9BC91072B61FBC27033C52DD160D424CCA566558242C9E4B145C7B5630AC825ED5B932A00381C5C94752764F398C4AED89848544114193553BB178FBFCA4883C76BE23363B3343F69C8AF0B59F7C0482A64985B50A6EEA5C700CE7BF31DAC43B82372405638010A320E2A28FE6321C0AB85BFA8723DB96E8D1508900996B27812507885C97A1E7C581E35915D0709C9CFB2BC713B305705406C522D0305F5BE51EB3272524A797ECC2AB5330538BCCA62CD51937330849138620032917ACC188E8B70DE56B43E812EF030C0B4C062B1437AAE13A355AA9B41B00EDF4151F2C964FD332F3014BEB990E19C2350050735C7B02C0936B6BD37CA18114854750E32A6790515E1B4A31B2B71F9DE4082C225679CB220522BA6235B89F2C8E231BCFC815B9EBB15534D5B352566942A742AB405194AA74B90B26B98B669DA43FEC232FCF351FA5C50F812057E44858096395CE67AEE48382063A7928CB4904D623C56974FAFBA18519BAB743168510700F715E07EB331050C4160A6AA024C126027D11C324A87BA13C3CB10E86B2212343BD0088382769B9494F769918DA7C8EED21896C75711AA34B0E3BA8527371271AAEA05C906C5CAF6B5A6A08C4998492323E04CD5E63B1857A4FA972BF8B430036A856A5F9183C4B652A9311F1901AE3A4A93D302C4E77282B04046F7AC2DF2333C21B343ADB75C369A5385B9CC70280858971716A0587B74492637DECC8130EC8418954763E39AE47BBB084103225C21F64D94F14D55B9BD2579C5BB03EE4915016C2CA416806CCCD56061F92C0B1EAEA50DBA36B76798F7B8AA8AFF2CC06B04BC3106F22845DC5D847B5D444F05803CBF062DE581E12163094A5C7131A24B9327DAFF9134F32B647D9CA52A65A91A4899D64100F3376E0D318C7B8188BFA88654AC370EB5D693C4D9D481CAA98A2C99C168A0306261165410B32A53BBBBA412B54702476101C6550C286D6615AA98D8FD95ECD88BF45CA383DB3C6239AC7AC16606877751311CE8B447D0F6B9499943706B5A46F291A57302FA4F3ACD4645DBB515868371FD79887636737E333C9B06285508832401107089176E06A2F17E19E4FF61623603E17367D33F023C2CC820961A6E3500092CA3B900BAD66C179249C75A5E08A5563BE1CE312ECDC0AD370518F66594314CF5C8BCA20948D54C70F800542BD5B64ACC9AB68FC90F48662CFFC8F801C06DE972571E8C25EBA7128E95C13011EF88240C2C9C0BA555AA1C70956C9621A600F2817435C09C75F8A08CEF2C5D31C5C5834A745249CEB7641E6B19E404865EB374507DB3394A77A0F47149896AF1C747F86C97201D8C1CC8209E571B8C4D6972ECB1CA930B15516922FF08BF0C942AB5C5D197669AF94457FC9BA5BB47DDBD3A34EE941943B0B262A63FD0922D803CA035C6C54DB71B5A5A76F46C787036BEF777296E80664F73A78175EF7DB567BDB6CD8D97D27649661C76216D99D6264A7EB274C507AA170E1C3F23CA00A04B861AAA29EC33D4584B12985AC3B36689F129F3D29B19DAA5DCE4150162A10FA835E1D89A21FE10E4B1489E457C415961648044774C49DE6908201068D13463F1A999D3103342F03020F043DF3CC2E897B8293D235E8B408F2BAB266CCB0FCE19F6779A9C7DC89E368B07BF56F29911593E78009358CEA0BA304C0C074FC86A0782F99BC38571CD1632770CBEA199AF4181984FD05FF37193132F434783F38ED277382AA17ACF5FEC87E72BEF729A63E69AF7387E9CC5BB339E01702E1228F530AC96DB053A415BE97749A109A1FD4057BA128649B17EC07AD + +z: AE51639EF7F26FD2215AD11CBE1EDEB3B943D668EEEFEE13ED5B0DA3E0A5F3ED +d: B04F631B330D83991B5C01E7F69452DFC394F9689632F8C7F60DBFAB92A9CEA5 +ek: 662293FE760B0826256FA788B6A061039229502B6887527553496F09937F25C86D0762232C5A9C3CF9CE9AC7C43412295A180DAEF55C01053F71242257610F9F2AC7AD80A220991BA632B4DF1CCB43865C7469BB54A24A12D759943921B62563A1665F864C710B947C629B6AC169A05FEBA11DC87BA54420D35C9FBB364CBE5449E7B53A48B6361CF417CBB825AF93CB61D987442C500FF147B8703D6600CBC6789A83119C51D460EE759638D5302DB28B62A1950F6C63311917A51BAE092756D8DA55DDFA066E544FB7C71BD6D512D258CCB0B6B19B6693BEC15BDDD3706FEC949FD2B5AC81327A3349B62475F642927440C757266F8736B995C996DAE6685FDB89285377A38384EED54622052D197098E5D30C74D65F24B8C1F479A78037CD1936868801A7E688B9E8BB5BE333BA48540DE80AC9B12912F017961DF81CD02700CA6B30ED19325C7A507C5C1004652568F6240A060FF0316E1554168C5190DD32895B389580BCB7A1F5712EC3192B601A7FBC7F3EC9A3CA6106BD99B2800CB7E332CFB3824539801D87545711D6ABE408BE2963AA4AEBB76C9814B7808559831CFB84CB9DAA80104C51532B4867C731B53766932453E7058C23B27E7D63CF303ACD0D9A2F69B4A7B07360456A8EAA14C5142824DE66565335B589B01AE667C9CCF79EB5251A11305CF2349A8C9681A17B415F5190B602A5753B917F693B61A04B96D8C4B5AACD873B1B900B940F3C25E568C8293A679E2020C7B88F162B641891C9263116ED94C5A726078325955825CD697440729087C4D67F0CB126395C1E19824BAB9A1A1AABCC8D570CCA3BB4FF1B6F416A6E239926768657BE34B154129982006DD6B5048B2CC06679C27F070D7746870A976F1699802A61882B65B7D66736574C2A4065352F06C056703295291968237850FAAD14D56EAC4816AE5CA72BC59E04AB07FF4185B29B9B4A19970A81ABAA505FB6F4A3C1E632B2421EEA069EA40C450E3AC2435428A18C412F209509D83C69717963C62748C130E5D1CEC8A924F1E81BA852B3780B38B44AC17B3B70F4694E550B497F9A5DD740A2A7651085261A7840B52D3C95D2AAA899160A6AF7289127606A85233044B6F72C2261F3C2B89946053BA91C6120EDA024C70435B8917C1C2413324A179BE34EBA570C4C0762A8490CB76B021C2978B6237A792973EB994DF4714F230374D20C89C2E5A58E777075CC83EADB309EFA73ECF34771205B3B67C2BC848444A247D4F857D8C6679306AABAA3BD2D4A22E9B7B889574A68168B659B8F2C19560EA178BFDCC509996E8A992B2FBCBB6703478F6C3D6E3020AE0086DFE2408D56468AF66722123D6654C7BB1B246C35B9AC8C2CFDB35370D19C9FF173CD999BFC3BBCDAD053B00C941F8173D2621AEC1571DA391654FC50B9F99E51F26C5313B85E73506A0CA7D156012A63C51D228005B26FFB6427D8C279E9BC6A520ABDB38981D04A2B7ED5311F023572D57A01E3BCE0375A51FA5408C193AA80BBA033A20750C2A09521DD94B7F023271EF2A561089E170531DA641CFF4525233B93FCCA87617C685E00D0CB1317C540B770514A97279C04119436F872DE43A96747856339064794801FD00460DA5663ECDDC739C783608FA59F2E27E4AB3DEEC74061C16465780B59E4DC86 +dk: 74996BF2C7B505FB4AB2E64D9AB83F5169CA5B062CE625184B0315D2B79945D04C818259E454099C55BE3A262B57C31EDA5B4F095169A09A8DBCA39DE41057E3CA126E4781D0503FFDDC89D24B28C3BA4BC5E9437C83A3EB8497E2956D30FCCB29AB0393EB1C1A0B7D2AE177EAF705E69A5B88726839516B096BAE87BB4FFC394FBB86967300AADB340E83CC9BDBC9830171088363BD1080A976EB9FD9A6B92C5273BD09073B8848936C8F1486AF320CA39EA592559A12B191432413C1C4977FD6DB5BB12B0DE877AB4CD63155690C31DB93B5EBBDF29B2A7E642C382478C9794AA5787B7A50CCB9850BF199798DB18861179E6020CC2FAC59925A0B6F775FB219726135237CCB90E321906314B8EAD933D7C53024733DCF076312F358EAD020A88B586DE53AF798C3A87178058207ED806AB4FBB349B953E7C13E6D2122A7C50B1EAC96803C7414DA65020A7ED62A91975BA6EE7174BE62695CA3A7AEC723CA701483B95DEED68A82DB95CE175B0F94A0160332DBE4575DB085215A9A520878FA76C6D3968A8DD9B38EF48738451417B3C835DA8B4F393ABFCA7DA6560278890C2BA8547BD71815043759B5A802130E8957398AE30BCE688CFB3B71E2A77068C88A3C42989735A180B64144817E8AE04A4DB010A3AA4FE24CC0AFC25C89266295532F4BFB89087008F7B265161410B6A72ABECA6B30921A8FF39AED231369D39D8781A7691933F12473B56683FB49CEC4A939BC221C11C11CA904647A7C2F77DBAD979080CBBB624C005488F6211CE7B9B2227A91F04749C2776E399377124FC7BAAC11215E6B75A7725417D049A94AD809711C1B78631DD7D24ED6720458914649F8B5FB6A30E3F97EDD116987655900278EC3A60C278A5132007C91416EA4AA3694A87D481B2EEB40674277783E391D5EE54110787622451D62F922A721C010921F570A095FFC00B8002DE9AC71EA7486A0DACC5CD0727DA19DAE03C9E0C6438CBA0B08F69590C83D6284C2092C2A98CA6405F9B19DEB5C52F7B5F91CB7B653688C633120FC82BB76A8A52AC0D5E68E74009F8E655A2057642A6004FAB653D6C79DFBDC3941E59921D8850399810A881BE80C974929CE9781074D50094D0A469D716B47FA72F2A3A4772A469A31284E91CFE5854F5016CF2747118280276582020D1472EAA3BED0AC192981098EC7524ABB1410A392439A7D9BF940EA19BF3E76BE94D856D5EB3F5D91A917C8886D561BA027AB7E166FDC12CFDA12C7B06AA552BC27E7B67BEE1C19E0612DA58C8CBF0A8EB2B03818D8158BFB1C09268AAB73C1D424C354C8557AC3556D3A944D203276187032771E4C668CDD1145DBF3B00393AAA19447C1FBBF5EE48DE7F07215F85D648A59B3D6602F69ADF57205DC57371CA84C1CFA4D69E32D065CA04A1BC5FFCC1FD215AE3B91936DFAB4EF9591AB18093F36CC6CF36ACC204CE517B9EE9B746E79C5D2E005F96768CB508E7FC96DD38338915C17C95C1BE072CD46A59A3D36887EC80C7B022D3A56C4E495AF71E8A40F2944AF9439241024C6496CD85942AB17359229AB2BB54A0D61301DB560F15263B0196525A2AF546C8EE2CA18F212AC8356AC4B2CB2E3FC7F9A414776A24C662293FE760B0826256FA788B6A061039229502B6887527553496F09937F25C86D0762232C5A9C3CF9CE9AC7C43412295A180DAEF55C01053F71242257610F9F2AC7AD80A220991BA632B4DF1CCB43865C7469BB54A24A12D759943921B62563A1665F864C710B947C629B6AC169A05FEBA11DC87BA54420D35C9FBB364CBE5449E7B53A48B6361CF417CBB825AF93CB61D987442C500FF147B8703D6600CBC6789A83119C51D460EE759638D5302DB28B62A1950F6C63311917A51BAE092756D8DA55DDFA066E544FB7C71BD6D512D258CCB0B6B19B6693BEC15BDDD3706FEC949FD2B5AC81327A3349B62475F642927440C757266F8736B995C996DAE6685FDB89285377A38384EED54622052D197098E5D30C74D65F24B8C1F479A78037CD1936868801A7E688B9E8BB5BE333BA48540DE80AC9B12912F017961DF81CD02700CA6B30ED19325C7A507C5C1004652568F6240A060FF0316E1554168C5190DD32895B389580BCB7A1F5712EC3192B601A7FBC7F3EC9A3CA6106BD99B2800CB7E332CFB3824539801D87545711D6ABE408BE2963AA4AEBB76C9814B7808559831CFB84CB9DAA80104C51532B4867C731B53766932453E7058C23B27E7D63CF303ACD0D9A2F69B4A7B07360456A8EAA14C5142824DE66565335B589B01AE667C9CCF79EB5251A11305CF2349A8C9681A17B415F5190B602A5753B917F693B61A04B96D8C4B5AACD873B1B900B940F3C25E568C8293A679E2020C7B88F162B641891C9263116ED94C5A726078325955825CD697440729087C4D67F0CB126395C1E19824BAB9A1A1AABCC8D570CCA3BB4FF1B6F416A6E239926768657BE34B154129982006DD6B5048B2CC06679C27F070D7746870A976F1699802A61882B65B7D66736574C2A4065352F06C056703295291968237850FAAD14D56EAC4816AE5CA72BC59E04AB07FF4185B29B9B4A19970A81ABAA505FB6F4A3C1E632B2421EEA069EA40C450E3AC2435428A18C412F209509D83C69717963C62748C130E5D1CEC8A924F1E81BA852B3780B38B44AC17B3B70F4694E550B497F9A5DD740A2A7651085261A7840B52D3C95D2AAA899160A6AF7289127606A85233044B6F72C2261F3C2B89946053BA91C6120EDA024C70435B8917C1C2413324A179BE34EBA570C4C0762A8490CB76B021C2978B6237A792973EB994DF4714F230374D20C89C2E5A58E777075CC83EADB309EFA73ECF34771205B3B67C2BC848444A247D4F857D8C6679306AABAA3BD2D4A22E9B7B889574A68168B659B8F2C19560EA178BFDCC509996E8A992B2FBCBB6703478F6C3D6E3020AE0086DFE2408D56468AF66722123D6654C7BB1B246C35B9AC8C2CFDB35370D19C9FF173CD999BFC3BBCDAD053B00C941F8173D2621AEC1571DA391654FC50B9F99E51F26C5313B85E73506A0CA7D156012A63C51D228005B26FFB6427D8C279E9BC6A520ABDB38981D04A2B7ED5311F023572D57A01E3BCE0375A51FA5408C193AA80BBA033A20750C2A09521DD94B7F023271EF2A561089E170531DA641CFF4525233B93FCCA87617C685E00D0CB1317C540B770514A97279C04119436F872DE43A96747856339064794801FD00460DA5663ECDDC739C783608FA59F2E27E4AB3DEEC74061C16465780B59E4DC8644132D7CEA4F7CB9B06AA59C4213FA6293563C4516CF033491742C389AF38643AE51639EF7F26FD2215AD11CBE1EDEB3B943D668EEEFEE13ED5B0DA3E0A5F3ED + +z: 6F9FF5654FDA78774498E2643E935D21412CEB49BC393532C80C47A982418F66 +d: 3D63BD6C310AFCF684292E5F8E1B98CC75B5A27B21526268444144AB24AB2967 +ek: FF22387C34AC69033FB8CB685DF308A47B6A8C9978A152A7003B583DEB864C3C26432780D56785BB511EB2507E40BA80100A1E4FEA67A2290F26F75AAF655827E95C1624A127795D88F34927989594D228F1497CF998BBCF012ECF6156FDC63870EC49E38C29C6C35ACB89B031419A0BD835425A255400B05167758F56474D8B83466738383320E22514C69203AFF561DB2B1596C937EEB49044817949B726FDA5B46D6980F9099B17E6BBC4272F4185739A687E8171BA53497E26BBB215163FE18448F1D005E6827C2177CFA0A3CC516B48F3D1BA1484C33169963F071E13C20BEF371DD4013B1D5B0608C0C0C52241AEEB42F81B5D6BC09A6627C6846AC962328A54DA2573CB4A4D71C729A4AEC7411EACD1053B71B8D932C3AA6A759198B26516843B9C344E1A1874AA22EA88353E7C6C410121026CC75DEBA8C5E3083D83BCA0A4C3EBA5C653021AF25C6251FA486CD19AAB6A6458FA6D29C02A7FE6CB2192553193AB92857AB1141458916653432A71FA4667FAB3CD1A602AAA7294148B17C2B82F86900FF55EB4CC0A8A14940982496F417809956874077A4F256448F2B661FB0163C687CE8B08EFE14C1F4279CAF8BE239338535836FE5B12C1A8A4A9EA2BAAB732F3E36262AB028BB30EB88B7042297BF92B22757A0AB0A817DF03707892043DEB2FD8963FB369A8C76A8FFA17237EDB8CC0450B2E9726491A36FFC2B58E7C9CA803517FAC9C047C4CB056B0316C3CAB239FFAC13315A3675BE2B042938C079844F72601CB6A8353205211304DE0229A249148BA13C7E969CA28E95183863AB3F838EFA3BF9159CE989358FC1A69BE3C764C87A4FB8B1739510E7211617806ABF4C19FC48C6112F3C67AD92C342A40B7F5468A559563B2C2BBB7869B221959526B22032059F093BF3287FD652CF51C7A4233C17DE638E8C92EDB41C77ADC5ADA927BDB12A7EE2B00CB2577A6937C0EBA364F9093E8E94AA334545D1797071A85EE0BC9037B352CDA8D2D874E16B344E02894635A3B5380CDCB6674951C0399B10062429593573D39A06817E84F7D517332F92903C7CFF7651D7F1C37F648C22A872CC007BCF33A4E991CBD34069CCC6771B9582D83136F52790E74A24CC86C439AB7C5FF1088CCCB81FACAB6E1D0092D14A05DDC999AE4C006899D6FA6186940925BCB614DF83C5C95555358894A5A4ED2B1A8D8C7AF8B5C63CC917B849B4B544995635845B2F50BCADB9E25BA6AE2C10458D2C1358430A8EB27884B8EE27B6408265CD24C59F9B7B3E0CAA48D744BE36A3906F488C432634D88123A981B79A54C50237275262A5AB111FB51AFE1847C9E284A91733DE5F38C6D39A51987CDD368CB3E136D92A312F515A243F999C04495DD7B3EBB3CA1B82B3647935C77951672BC9520092D203AAD318852F93866E6F6494E695F4C7A97D035956C68B3A56C5A51298F1CB0997528376DD5CBCB5B15AA19A1A5B77B98F1355210543A0C0366F5328B2A49647021CC3246F1856847C637AF4B390B521B890C346CE5B4E3F1A51A874BA7DB1D2D8B8356BB0EDF48C9EA01177E801BFEDAB6444B4B911549BBEA1230FA6183949862A06954B04F4C9192B9EBCBA8151E20D48FA3CA8943F13734D9C4E642A7A7DD2BF360600ABD6E84E29BBA27F96C191480EB71CA68 +dk: 33D925297A649E979A40147093E74DFFD1749917C75E088AB9800AAAD81ABEEB293FF88634706904220E90490D968C097E33A2925C251904871E78975E564606617D0228227DFC3613CA0BD6F1B6402476AFB25BC4D0AE47A2A401C95C721A04D0536E42DA76244908E8D0769D5524B1A96FC9548A7C7A2C6BAB0B081618F2C19ABC358A1DD18D96AACBAF943A4CC6A7FC316FC629A25346B82B42A746A9C4D27C951D363AC0669AB3D6368D619F17EA93DC2401DF36BDA6835DB6EB02DD211AC6927B918071DEFAB2B9F671DE554E727875746475EB886286A165749504B5919A39BBC4536C8154E5B7A9D3076E0A1F068B2C8305595ED2A1469321A7476D107273221C6C5C9A2224D4AE615991D67869674B3A5994255470BE7383C1FF636AD276B7B810794B3885C1788BDA26256DE13F8AC1179C3614ED27B0A7F220DC22425BB7B8B1A8AE2CA6057CA5BEB447042A43CC82543D43F6134E9C5DE6D52388AB9D4C746202EC759781B4AB0C684B4B270570B23078195D4233A71A451E196131EB8AF598BE86B1511DC2C85CB50D001150CA2A7A3692C7E2CA09C03A243B5B0176E9BEBD629B5F4CB599D15FCAE7A7D7F44566E0A4571740864633FACBAD195AADCDFBA9B322AFEF119436B96624AB410F764083395FCB4C81FE6616CA80CFFCD6A4CB9B35BD8557D0AC2A61AA1042B414AFB0020EE1006E593DF29A625E010C15F7A5DFBA4FE459060F90882EC91AF77181C3E32FB027AD397B8CDBF52D397654CF68B2335A3A75EC24C87852B846BC9FD07FD9D767396A5511402A1993C9AD9138FF800C6B6051A6B94DD2BB457E9883F2954980715706B07A15A186CA57A5F0F83A2CFA01D22C5AD79176C9AABCFC481B67989648000DAE714D49E6C5D9E0396339BA1C22216084BAA7B403DD998F0B9600BCF419698A2CC853CD145156FCB0C193928CC32631A2B3954AABCA05D43E1E4C2A3EE34815C8A0095102E8487A82397D2283562B19A5D88993AEF77B57886B1129B9F442986461A33293AD5B41AAFB25A8D8DC48F128B67B07C047B1CB52603082E422425059A585A7B84BC948D6B7FCA6A9E7BC17B44251343202EC892D2DB09F6EECB9483A03640C4C56B32A5B8AA44D847703C988B1C02FC02C7BCFA7642AA7C1B67B539708743517444D470F273A112EC87FB7145789744F5037095EB88015932EC4B3CE62A4314B97935CDC2F252CB839442D800816CD6AA0FEC81251F6CAF6C4A1E1A9C7CEDA798135639311ACDEC014E4BA0335A9919501C42A729E6E9556AB9BA1A1EC7D96E225159886F7C67F520305436864C9A70FE7272315A7CEEFFA6F39AA8FFEA3CEDBC8CEAB1318A64335C1C5530FFC89C0CC1D6F7905C5809E61363719F54FE7E8844D382BCA679554D368D3976206289B1A4BB987A6AD72B59CA2BC2D91A61902144065B762CDA31255119C9E19C579F4CD2A7620BCE0546565C0C82A35001900E614C62D2B7856142349B25E32CBAF0634BEB9D2B603B67019AC8FECEA9F5144782EE47E2EF823E9E646A253ADA9B8B809435C33F890B0D80A565C7FB5A19E5DCAA39E4983FC149BDC1B8477B808A5FC6379C7018134C73FA197F1E87E7443373D108AFF22387C34AC69033FB8CB685DF308A47B6A8C9978A152A7003B583DEB864C3C26432780D56785BB511EB2507E40BA80100A1E4FEA67A2290F26F75AAF655827E95C1624A127795D88F34927989594D228F1497CF998BBCF012ECF6156FDC63870EC49E38C29C6C35ACB89B031419A0BD835425A255400B05167758F56474D8B83466738383320E22514C69203AFF561DB2B1596C937EEB49044817949B726FDA5B46D6980F9099B17E6BBC4272F4185739A687E8171BA53497E26BBB215163FE18448F1D005E6827C2177CFA0A3CC516B48F3D1BA1484C33169963F071E13C20BEF371DD4013B1D5B0608C0C0C52241AEEB42F81B5D6BC09A6627C6846AC962328A54DA2573CB4A4D71C729A4AEC7411EACD1053B71B8D932C3AA6A759198B26516843B9C344E1A1874AA22EA88353E7C6C410121026CC75DEBA8C5E3083D83BCA0A4C3EBA5C653021AF25C6251FA486CD19AAB6A6458FA6D29C02A7FE6CB2192553193AB92857AB1141458916653432A71FA4667FAB3CD1A602AAA7294148B17C2B82F86900FF55EB4CC0A8A14940982496F417809956874077A4F256448F2B661FB0163C687CE8B08EFE14C1F4279CAF8BE239338535836FE5B12C1A8A4A9EA2BAAB732F3E36262AB028BB30EB88B7042297BF92B22757A0AB0A817DF03707892043DEB2FD8963FB369A8C76A8FFA17237EDB8CC0450B2E9726491A36FFC2B58E7C9CA803517FAC9C047C4CB056B0316C3CAB239FFAC13315A3675BE2B042938C079844F72601CB6A8353205211304DE0229A249148BA13C7E969CA28E95183863AB3F838EFA3BF9159CE989358FC1A69BE3C764C87A4FB8B1739510E7211617806ABF4C19FC48C6112F3C67AD92C342A40B7F5468A559563B2C2BBB7869B221959526B22032059F093BF3287FD652CF51C7A4233C17DE638E8C92EDB41C77ADC5ADA927BDB12A7EE2B00CB2577A6937C0EBA364F9093E8E94AA334545D1797071A85EE0BC9037B352CDA8D2D874E16B344E02894635A3B5380CDCB6674951C0399B10062429593573D39A06817E84F7D517332F92903C7CFF7651D7F1C37F648C22A872CC007BCF33A4E991CBD34069CCC6771B9582D83136F52790E74A24CC86C439AB7C5FF1088CCCB81FACAB6E1D0092D14A05DDC999AE4C006899D6FA6186940925BCB614DF83C5C95555358894A5A4ED2B1A8D8C7AF8B5C63CC917B849B4B544995635845B2F50BCADB9E25BA6AE2C10458D2C1358430A8EB27884B8EE27B6408265CD24C59F9B7B3E0CAA48D744BE36A3906F488C432634D88123A981B79A54C50237275262A5AB111FB51AFE1847C9E284A91733DE5F38C6D39A51987CDD368CB3E136D92A312F515A243F999C04495DD7B3EBB3CA1B82B3647935C77951672BC9520092D203AAD318852F93866E6F6494E695F4C7A97D035956C68B3A56C5A51298F1CB0997528376DD5CBCB5B15AA19A1A5B77B98F1355210543A0C0366F5328B2A49647021CC3246F1856847C637AF4B390B521B890C346CE5B4E3F1A51A874BA7DB1D2D8B8356BB0EDF48C9EA01177E801BFEDAB6444B4B911549BBEA1230FA6183949862A06954B04F4C9192B9EBCBA8151E20D48FA3CA8943F13734D9C4E642A7A7DD2BF360600ABD6E84E29BBA27F96C191480EB71CA68D4F2A9B485FFC544CD3DF67D23C80150AAF7A45CD946F4B7DB2B67F4F8B222536F9FF5654FDA78774498E2643E935D21412CEB49BC393532C80C47A982418F66 + +z: D083E6922EF0A818308FD7FE7CF5AD3A96942442BE327B0A307685C2D4315901 +d: 249D48941ABC01C9290719FB34D91B05E774E70E6F0181E1783F2586E2499536 +ek: 11709FB3C60AA689CFC149954EE25C7071A4DFD724D0C4CAB2F4B3FF715FC16302ED2BAD6A926443A617AA2B44FE2283A660C0951A0A41C56EBBF5AC1945454B8A878E3C4FEB22C10FF5B0A3C7C177A84EFFD670622479A401A5909399F131909B349799CB116C51BD02778774764EE6B02EA64929311281FB821D074B1385A6A965E71F9A065DB2B78908048AA46118BCF95CFE0BC6F0318B1E3C4C2F895B98613DA1141170680191D896044C40EB4741D2D21E0C506410D9092F821DBDC04839C6C6C73487F9F239DAA0346563433C32B9A1F7254717A456B04F65965C614973DDB5C43B9072A120294021A21275007360940A5B8613C01E703128B9F27B037CBF88049FAAD7A10C2213F39A82510A872C7C2850D3CE5A48CBE5DA4B3547AAA3B8612F64840C00ABBB09BCB4F031EC6C2AC284A35D84796D4B23FA621C9E0CBA6E04632B8BC5D840765168C08F591871986FD44BBD78E56C30AC80E32229A0F57420872528308C52A028B1993A93003A9E40A1B75B6CE4ABB8EDC109C77B3D2A80B21F1827904C94666AB80AC9702CA78963F36510CC7CCC6AAC6E9489342371933AA4C6329926437A58CB8BD5CB64929929FE9707A13805B621A95803C7EC68A83676578C039C8F273B12C8A2C1853D3AC6169CE95364F791F7A6986EF765C5F0829FA888C8DB3FFFC3A701E3B4D8246B62B3A4FB637FF532BF152452A824AC25AC24E416CC21667B09055C77C12925E77FA67CCAF2C9602091149A730CD3F627A8613B149A2D3789C19CB6B09E5CB64E42A82628C4BB168A492529680B1BAD2A6F0F7350708030495768DD9C82D6E9812DE35FA90689087B8DF242414752AAD8E15BB3BAAFFA05A1057A8262FBB1749C9A6C4272750134F72682CA753B1E555A60D91B26728EE540132DE67958D3928C3A72CFF02BF92997B0B39F06FAA333F5987713BD113026D327AFA167B040436D9940C9AE7799A4D9CA86278EFFC846FC102625583B42234EA114B75057531A07A4E23C340E04A066F3ABD69AAEC83CAA5A88BF27A0592F5B443223864A341E2F3B21CD0262AC3B89A1E735D6B9001A1C98C12210A8E45E377A8424132A10D317BF02939B6877DEE6AE1D7818C3115076B741C307B805C4860862382D1770678B4006402B93979B2383868BA1901F50776A28978A016C4F95787E8C875F694F94E3116DD60F284158BC283B79C7CE377C3F1197AD3EEB3BDB2C8E0505250E58BA75816A21E171F9A8730FA2CB8CCA44D02902F07B6BCCDB6AF8705A78E6854935299A340E62A12418B6693A0909CE5A8F1349A993E75CC4806DFC045F4C28B4DE8C9AACA04713E62DBBE3AC857B5445D6A5F5C115D5C29318F2BA9FD126F46960DBEB3B3DE53350051980E7CD5DF450087BA97CF36B7A566F0DC1479545BCEA5C950AA4CD4EA324B04036BB6A93D8519C66B12AB2EBC05F849209A603BEC768C96587A33963BAF3A8F5D8309DB35ABBA81423C365371A9DFFA649A726C4A84604F4B893F3E30934D065CCB0383A2058C0E121C3133C7FAA4C3AB4B7321C3EFC7741400004D279C5D76AA512692774D9C319A59320BA18D5C116838C8CE96A43AB562CED703A05357CDC20AD5A2A32211A2949927F642B278E71BF94390BC90A3969017B88B8EB63FF6AC90AC92362 +dk: 88A386E9E2401A9A264FABA1EA2B6A13B5BEE6207582309D39C43BD37CAF668AC6D1D36E8003B85FC37755441F94E60719E92294A88B4E72170D1992B5382B7FEB489DD93A60383A2D29316B7179B8462346F85662E1C7AC72C86A496CA1635B55B535CD4348D6C97D3F5A74FB60C6ECD77A62B83CCE9BAF0693952C86CCE257AF464033EDD5AFDB07333C2A7FF358B45097A8FD87BD5642B12E1B5EAFD73761BAC07BA748429426C98961AF89771FB709EAE812F9724697B4C970583012C2C4B12C369BDA8EDED8A1AAD2C042CC7F2FB86C74B82521C55FEEC5C1FB5087A3E1B93DC1750133386A491695428F09F0696158659817C66C86AD2BF388E2F74B848941AD5A8D790081D3A63E85683AB65499C0EC41C8FB146664CF3FB9311C3786B1D90DDB54B1390AC902F42B30C29F02C236DC313026772825FA70DFB8572C3BC5B968B143719A5B132620D811AFE27F3F096BE180817E36B3F1F78700F00AC574CD8287A25EE1CDFB844F9224C39ADB10B99044CB7009DC1A67EF397B23F2BB9AF5A0AE6833210728449026EBF20E354C14C856C930D61A07CABCC510042E079415D67F6CFA0E692344F3397D0A381CD3E56DF6398C6730C346502039FCCDCB0389DD97C07F9C22FFE5AF7D22CAF6150A7D7A4D60787A67C3582EC82AE8A62FD3A175F8E27C653CAB2A2C69F1D844B1972110B2AC3163BC119A69E4D628DF2C0C76266599D08BEB6B659176CDD07B1A50699DD92AB3EB2C787F90533C28156B8405CD46C1B6B67BE6399319A4BAC4A93FCB659C819A6EC9A1845F1C791C6915F7A40F3DC578C8E016A0E2703F776310B3BCD487B638671628BA508101800B94AF45AA0C3C49559A46979906A8BCA9A474D0AD63F035E95B918B0297440203E154A676572F21D0815BC45D3E7402E537669FFA65FD903A76219C94D275B71C3B9D69C024A17E4F0284179A5F4E668F981B7F968507FBD52797B19C89941BBCAA117786C202030C33F476656207B7C87CFDA16699842F72C5746D843501D9977F0804FEFC2D603C9BCE710547AC047F94980899BB1E167C26301FC146A6C89081BA492274C3C894936B57F94C12D1C3B47CBA740023A494C90942AE0290782850613DE10F52727CDD2204B106AE37B0BB3F3626DC41A6F0B3CD8646CB99F56F6ED137EF803E4439878C58B2EB280BB8FCB95F7021CCD41D2B1A40D6609830BB5E2401389733104A8077B3683EEAD98FE5EC5AC7679D3A2C6F227484D73B4F9E285E4B7C4F47E9071F637C5F8B713127CF2FE77378E2CFAFD148E433B2DBF74FE0475596051EF55007AEB8A59959C8B683A6B726BFD706C1F3E4A748430C01C893078178E3063F00F797AAE6394FD637AD155221C49C533977CE8014136873942114C54462B8750264248F04165853944B1F744EDA307B62998DFC0C63D5EB9D23DC2589210493A69C0B9820D12282E5689FDAFC1E1EAACBF88551D04B2983C2163C1A5F5CA647FC3288BCB5B543C89765B9203B5803A3006F5666BD73F5A44B60A5BDAB85B7C63556323EF82B45A4CBA06BEB388707873D28CC096651E817215485129154C15173B7A7AA826DF0649C96592C7AC8E1B27872C56CF0D3495CB54111709FB3C60AA689CFC149954EE25C7071A4DFD724D0C4CAB2F4B3FF715FC16302ED2BAD6A926443A617AA2B44FE2283A660C0951A0A41C56EBBF5AC1945454B8A878E3C4FEB22C10FF5B0A3C7C177A84EFFD670622479A401A5909399F131909B349799CB116C51BD02778774764EE6B02EA64929311281FB821D074B1385A6A965E71F9A065DB2B78908048AA46118BCF95CFE0BC6F0318B1E3C4C2F895B98613DA1141170680191D896044C40EB4741D2D21E0C506410D9092F821DBDC04839C6C6C73487F9F239DAA0346563433C32B9A1F7254717A456B04F65965C614973DDB5C43B9072A120294021A21275007360940A5B8613C01E703128B9F27B037CBF88049FAAD7A10C2213F39A82510A872C7C2850D3CE5A48CBE5DA4B3547AAA3B8612F64840C00ABBB09BCB4F031EC6C2AC284A35D84796D4B23FA621C9E0CBA6E04632B8BC5D840765168C08F591871986FD44BBD78E56C30AC80E32229A0F57420872528308C52A028B1993A93003A9E40A1B75B6CE4ABB8EDC109C77B3D2A80B21F1827904C94666AB80AC9702CA78963F36510CC7CCC6AAC6E9489342371933AA4C6329926437A58CB8BD5CB64929929FE9707A13805B621A95803C7EC68A83676578C039C8F273B12C8A2C1853D3AC6169CE95364F791F7A6986EF765C5F0829FA888C8DB3FFFC3A701E3B4D8246B62B3A4FB637FF532BF152452A824AC25AC24E416CC21667B09055C77C12925E77FA67CCAF2C9602091149A730CD3F627A8613B149A2D3789C19CB6B09E5CB64E42A82628C4BB168A492529680B1BAD2A6F0F7350708030495768DD9C82D6E9812DE35FA90689087B8DF242414752AAD8E15BB3BAAFFA05A1057A8262FBB1749C9A6C4272750134F72682CA753B1E555A60D91B26728EE540132DE67958D3928C3A72CFF02BF92997B0B39F06FAA333F5987713BD113026D327AFA167B040436D9940C9AE7799A4D9CA86278EFFC846FC102625583B42234EA114B75057531A07A4E23C340E04A066F3ABD69AAEC83CAA5A88BF27A0592F5B443223864A341E2F3B21CD0262AC3B89A1E735D6B9001A1C98C12210A8E45E377A8424132A10D317BF02939B6877DEE6AE1D7818C3115076B741C307B805C4860862382D1770678B4006402B93979B2383868BA1901F50776A28978A016C4F95787E8C875F694F94E3116DD60F284158BC283B79C7CE377C3F1197AD3EEB3BDB2C8E0505250E58BA75816A21E171F9A8730FA2CB8CCA44D02902F07B6BCCDB6AF8705A78E6854935299A340E62A12418B6693A0909CE5A8F1349A993E75CC4806DFC045F4C28B4DE8C9AACA04713E62DBBE3AC857B5445D6A5F5C115D5C29318F2BA9FD126F46960DBEB3B3DE53350051980E7CD5DF450087BA97CF36B7A566F0DC1479545BCEA5C950AA4CD4EA324B04036BB6A93D8519C66B12AB2EBC05F849209A603BEC768C96587A33963BAF3A8F5D8309DB35ABBA81423C365371A9DFFA649A726C4A84604F4B893F3E30934D065CCB0383A2058C0E121C3133C7FAA4C3AB4B7321C3EFC7741400004D279C5D76AA512692774D9C319A59320BA18D5C116838C8CE96A43AB562CED703A05357CDC20AD5A2A32211A2949927F642B278E71BF94390BC90A3969017B88B8EB63FF6AC90AC923625D0BB5F514CAC167BB2E2B5FE989CE88ED65315BC610D9A5BCC77BA80DFA2FF1D083E6922EF0A818308FD7FE7CF5AD3A96942442BE327B0A307685C2D4315901 + +z: A20ABA8A8DDC212DE825BE0D3BE57701A6B5B3A46A300D9B5945F579A59AFABE +d: E1CFB8195877B2D4FF3363BAC3B4E7BEBA6DC3CBB789B1B24215393F6C9BBFAE +ek: B749934F35347C7251B0359B6582502BABBEB5574F30C63568139B1CD854BE96B8A6F09069460205BA245182334F669E93F8C7D867945C3B75BF1CA810108E0F670249A62B9E6910D793C7F0A24BD3C40839D713F880B4EC6AA8AD8ACF6EB03E12FC5B1BF61ED2480A9CF68E30A441E3102611D25E9925503E704DA69393152A759DB92175E0343560B961759370BBAB159320EFA846E4A316CF8035D8EC991FC4529055A5C7F76F6FC5423AA041CC4691352A44E6E91E54DC129B000C0829C069C1538EAB1E5BEB58BF0733B64A17C5D159ED31AD4B15B36664465B6548CD4060B487C0C76890DF4B4EEC5705DE97BF47712C667023E627480A4533A9258162050F401CACD75232CF7621BB3B00F76A1CE2B42E65A91E65306F6C019C3F0C1E00FD2192E703EE5592A41C95E8263F53B16E54A952D72078A1589FCDD7BCEAB03A41D89E1D9071DB88C344F65C8D6714C367AF7C5287D6B68EA319A7DBE97F7604AFA67A27BA136C2B996B6A1C4647A8B56CB8C0D6A4BC9B33079D5B407522195ECB9FC23C778B27ABBFF026A8CB84ECB66AFDA43D40558990931736D32EC4937629FCCD01D7B14A1241D2ECB7929C443AAC703553C63D7C8410A891986C770200598F98C8AE008CA7D95CC347AC7BEC18ACD24028E6AA4DCC856BCB9D370195BCC85DD8496B62CC3A06B5A2A5961D781659C068143952C4329BBAE9A985DACAB8201B1854995FD2BC544BCA66FB927757B78207E9C44405C04002917B2BAFCAB59AA298B555717B79257AD5BC1AB1B10F92C229A9224CA16433D244770CA18A9CE12841EC38E8D131D75912C05372CF8C845E256DE2DC38283B0E2326A5DF7A3E4AA112EB91292709BA89F7672CA1BBD599859637782C7C25C61C03ED288CA6181F5E194A85C37615A1778BA51F62789614B715ADE62E85BB8490E7B7D1C81C9B578E411904D7C9C287442D406A1BD26CC759DA58FC867B0A39954F7B29702B74BEDB4C8DF87B7E57526C25C2123C1099A21CB3882C966191BAA5C89CB19B08DA6E20C588B68C954DC7CA9483B1B9FB508C694424D85C99E35AE8A084CED1C4D4B9CBB4246D28170BA94109853BB0224A2638E91FF3269AE2B013D515BD867A6BF7797B309342DA513DB1D18031BA29D72A0850669C27A1B27454B427785327225C73968FEA012D5389861B56631F89316F3B9D59C77E007B88607A53A5D7679BEB45320CD0EC605C2B0B6C7221BEFA0BBF1FD65888E5030AA18983AB1DED0979DE800DAF11B54C50971775C98BFB5B30772A6CE835021B4344D075022B4DA1A8A00E0BA140F26CC2A36F1685424642518F57217F60ACCA0B3B24BC2DFF61BF1A903210582B684178181B47116B4139E2478D37BBF006C9B8F849AF07497F493A8A0A0EF67268D8526F3D874A7EE3062E3590AA01CB09A4BB6AE73839602DFF6A0D335132864AA178C19D8D096E3094719D6ACEC6305CF3E59B190961C17B281077838E57805ABC615856C90BE8595B00C19D93B42247B925402ADB132E78C40E18C52459A542636208D0E068C12858BAA380FDB287D7E4B855716F2365354C63706EB5561C64A012F56BD64C06D2582E9CB34DCBBB837CC72C82A2CA557B328FBD9838D19A8BA5CAEF7F516F782E8BFDB53A793223A813F942BB5A6E0965E5 +dk: B325042B81C75CEBA41A96A16D9695F5842C3E6B9E7CE97B765A7B44E49B33501E72CB6F5F88A94C9A731A784A1DE1955A3337DD299DA82C5AC31AC581B46BADA8BB08C1736C785633610ECC5B68C2786D82C9A08D6277ED6914C43695F275286B5B5B0AB1C8D936AA569262B6358CA287A49E06392352706068484A14587C9B71084A35A5F8ACF78C47D34B43E84331835C4E75E17645E045ADA45D9F99C267B4345CB92241BCA8CA988353348A9DD73948A941D553BF444B0230A16F7F625DDEA463A2C49246273963BB1A9C2439B3DC18F3377A15414E775700BDC408353C7124E1BCA513AC5D415EAAD5A36D72A965357248E0AA5A8B84920C4BBE4104204449CD947484B42D49D93772C038D6554F0037BCDDCC50417025F4C0694EC7621ED82BE87BB3F3E9CDDE27388F55B730C40B722269D53C6BB388557AE11F960680F8F031443B6BA70C1CE45B329A6269F7B410D9C40ED4D18FF1B6CABFB20D89019F117032C5A2008484B078488D2AE065966C680F7098F860C896461BD1D0C2947B67431B3EBB3734664C4CF1213502E0C7826A4981FB8854A5A45B216F469C72CCA4637D9C61249232760B58D785B3B411683BCB33DBE175F9E240955A7B20D819C06C5AB567C8F289915CBC3C50204443F17EC096B399E11530505D94C93EEB9946E41362BAF7772C7B153AEA4620349BCEBB2243B85759093A98D13E5CDABF2BAA25A31464C19A358B1CCF6DCC10B5341E677C0B37C65EA52717FEB98C84470261E23FC7E02AF5D2CE086A326832174FB089B768B4701A9748225F01F98F1AC42DBD99594F34812DE15A09CAB805B695574145E0AB1D9600B18BE721E70C11978ABB91E159EAB67098A77D8F51ACE14CAAE9F3360645338F0A536450384452C89109AB3D9A5C8328B3CDF0334F748464A383883C033E673A6799678A860548FC4D47D970A8B24DA195CED6B52469AC36CE9BBD159A60FA6944014ABAF99868B963943685C7A15694D4B2BD6ED91734D601680C692314982C4445B6547CDE146B9B82C558F5ADDB84C2CFB93E91E61D4016728BF724377805F0060E3C4C943FB8AB1359979B495723C32AE096130E559604A5BB80817EC947A23785CBD7209D7B7672D1251CB234A196374364A0439623C51E997D2051C0C6630214DBB6FF1C88B1600BA11A0784D68807E830B885007C202376970B92625037677AD1B81270679349DC4CC56529B5BA205EA596AB489B8574CF668303EDA22578258739A525364A7A2C3439B6E74E9BB1A7462B2A51327719528358DA11D7BC856142A4118449F8B89C5BEBA43C117A27C65BB1E70DCF5B36A1E45416E2074BC1211F14AB957C4810C84818932653D17C4805BD6A00C80E0C0FF7C51295C670A8B6758C23A21CB21E6E097AF583AF2761AE3D62AF0EF56226E31492120B90322D76D6C1F657CFD0D2BD2F6CB4F8589012B99A73B82375C54E283C6F1DD12FD53B1DFEB540280375033B0DBA671A7D608FA3BBAF8422AACE1055A787C77506C199D19A01E1A0391798C8BB967A1C797C247C214B790B14606E3403EB91A57340557F872110C0185429AC9C454181375992D6C7C9F743DC832F2A13CCA8C8B42F63A609329DB749934F35347C7251B0359B6582502BABBEB5574F30C63568139B1CD854BE96B8A6F09069460205BA245182334F669E93F8C7D867945C3B75BF1CA810108E0F670249A62B9E6910D793C7F0A24BD3C40839D713F880B4EC6AA8AD8ACF6EB03E12FC5B1BF61ED2480A9CF68E30A441E3102611D25E9925503E704DA69393152A759DB92175E0343560B961759370BBAB159320EFA846E4A316CF8035D8EC991FC4529055A5C7F76F6FC5423AA041CC4691352A44E6E91E54DC129B000C0829C069C1538EAB1E5BEB58BF0733B64A17C5D159ED31AD4B15B36664465B6548CD4060B487C0C76890DF4B4EEC5705DE97BF47712C667023E627480A4533A9258162050F401CACD75232CF7621BB3B00F76A1CE2B42E65A91E65306F6C019C3F0C1E00FD2192E703EE5592A41C95E8263F53B16E54A952D72078A1589FCDD7BCEAB03A41D89E1D9071DB88C344F65C8D6714C367AF7C5287D6B68EA319A7DBE97F7604AFA67A27BA136C2B996B6A1C4647A8B56CB8C0D6A4BC9B33079D5B407522195ECB9FC23C778B27ABBFF026A8CB84ECB66AFDA43D40558990931736D32EC4937629FCCD01D7B14A1241D2ECB7929C443AAC703553C63D7C8410A891986C770200598F98C8AE008CA7D95CC347AC7BEC18ACD24028E6AA4DCC856BCB9D370195BCC85DD8496B62CC3A06B5A2A5961D781659C068143952C4329BBAE9A985DACAB8201B1854995FD2BC544BCA66FB927757B78207E9C44405C04002917B2BAFCAB59AA298B555717B79257AD5BC1AB1B10F92C229A9224CA16433D244770CA18A9CE12841EC38E8D131D75912C05372CF8C845E256DE2DC38283B0E2326A5DF7A3E4AA112EB91292709BA89F7672CA1BBD599859637782C7C25C61C03ED288CA6181F5E194A85C37615A1778BA51F62789614B715ADE62E85BB8490E7B7D1C81C9B578E411904D7C9C287442D406A1BD26CC759DA58FC867B0A39954F7B29702B74BEDB4C8DF87B7E57526C25C2123C1099A21CB3882C966191BAA5C89CB19B08DA6E20C588B68C954DC7CA9483B1B9FB508C694424D85C99E35AE8A084CED1C4D4B9CBB4246D28170BA94109853BB0224A2638E91FF3269AE2B013D515BD867A6BF7797B309342DA513DB1D18031BA29D72A0850669C27A1B27454B427785327225C73968FEA012D5389861B56631F89316F3B9D59C77E007B88607A53A5D7679BEB45320CD0EC605C2B0B6C7221BEFA0BBF1FD65888E5030AA18983AB1DED0979DE800DAF11B54C50971775C98BFB5B30772A6CE835021B4344D075022B4DA1A8A00E0BA140F26CC2A36F1685424642518F57217F60ACCA0B3B24BC2DFF61BF1A903210582B684178181B47116B4139E2478D37BBF006C9B8F849AF07497F493A8A0A0EF67268D8526F3D874A7EE3062E3590AA01CB09A4BB6AE73839602DFF6A0D335132864AA178C19D8D096E3094719D6ACEC6305CF3E59B190961C17B281077838E57805ABC615856C90BE8595B00C19D93B42247B925402ADB132E78C40E18C52459A542636208D0E068C12858BAA380FDB287D7E4B855716F2365354C63706EB5561C64A012F56BD64C06D2582E9CB34DCBBB837CC72C82A2CA557B328FBD9838D19A8BA5CAEF7F516F782E8BFDB53A793223A813F942BB5A6E0965E5B5E964695C24F57CD05B8BDC23949D382C7E9023CC1432BC131689528B1453B0A20ABA8A8DDC212DE825BE0D3BE57701A6B5B3A46A300D9B5945F579A59AFABE + +z: 7FB950A8F51DCEC4BC7A573EDDA56ECC049E5688476BD5FD6CD076A8F99A019A +d: ADC4DA59D935DD87420ACEE52AEE19CB371FD0BB498D79BA680159EF7CE37C17 +ek: 266B5ED5BB000FEB4C73CBCFF6E8A980326E798113223C1FD815922E1247992A2340B70B46A6CFF3638A9E741B478BC7E6C476D2F68CE244BBA73AA919C7A48770C5A9A798DB1901B2D93836F5C507D862811949CEB4BBC65CC2D6FC36E2215078149355B83B83635BEEFAADB6FAA387104213CB6609F8B36D291B3B567ADCD85EF569966E527102AA159F0912E5617E1B0C295D12838EB7790F0C4E4A93562EC21F94C517F5B6CC3F7B3F6E832F93893417A2797F9848D5333CE5741ADB867E64E898362249A2632F7ECA4BD38034BD5184BCAB71F38854A02A2C4693B32CE172C1FB41AF3A2B2AE370889C485F98587293C6758504189050CB437A991B8EA5E25569D1A9ED194D0E470A419B453120288D29763C3BAB00F5180CAB07DA070DB401CD28D69892B77A847A47C51A2D0B39A22074627CBC068D42988A60481BE5934E626201292AD073BFF81CCE044A33E3F3339C7B9446C607E666656A94A0034445635312B20A76CBC4C6763C338AA022D79A826D2841EECA89D433C5E7DC041ED488610A1F5A951FA966148D1B8597101C7CF8AC44F5183D42C689079164E90B5DC582A761571496B7A8C3543FF275D403B923B032CBB87D5EE90EF8853AE78590D0E8B200C3819705AD47E71568051C026B4B5C10760495994208AC61A08C23ABB921828A5D69740AF57507E339EF977649999330C6A9B584642F5539356590C6CB64872517996CAEF853219C5C2CC1BA04F0C8537039C9A3047DBF17CE18673B039B2A9EC083C7E53146863B61199169C9B1838CAB40508A6B709DD8502783654D55766E6B671B6C83201509395BC565B10904DC27BFE30842479528995A5888AA8E04374E2918A9EB642629A135B9306A21CB02C925BC99401EAD40285A7B3CF5A809FFF6502E727B332269E8C445C7D9303BF35C344615E19220E391AB4F2011634C292C22022AC0CD5FB51339B83833EC7404FC38108207B8A5B1416C2DD29785F3D87F0BC75F24C65864C31EDBE243EA0B8AD015A003BC9EAB583FDB5ACB32BA3BBAD6BE5A189472560B22614B5BD257249C4458C7601C8B0E48D0C72DBC5743E77350D64DD6A587B67280D04B20D1DB15275361DCA43CEC893EA5401FB3B459637817A18755876983818CC1C745CF70D2A8CBB36050601BFC34BA9685A02B6652535BA101A5193660A06CE54DB9700A977AB36E612549E51FDFAA5AB0490BA7A302DCB314ED026CA1D765D54145DA1623F9A7064D2926F25A0C9FDC4B8CEB8C765CC9B3A55A4BD79CFB9754ED5786F04395B7A80ABE92687D6900DD14C3AD743E2F9540534C63602858371C3D304263C2185E29261237A848DAE97507DCC5FDF60209112E08D269F56418F2FC875B693D5C9CABB9BC636FBCCE548227F42BB001EA6ED64057656566F51A927B178E17AAA24A0616CA362AD134AAC5D36C5447BF4DD0CB7DB95C9009B7109826B1D8ADEF95CE8B9B444848B41002426812700850CD7572A2530A2BDACB8CCCA5485032454E855116E91E6830A68EC04DF98370CDD18E12372320BB865AE818C6B32628489B59AB53B31ABBBC944861A0BD100B66FDC017AA0C79DD177CAE432024181820D23688BC991AE597981B56C3F45B5E4A92F34C7E72882C6B4F1D791C2719CF3DFBFB8F3FA04ADCC1D4FF07 +dk: 24C6ABF468CF8893385B625491F2697ED724ED371DD9C76158418A6FFAC9E0A4158694AF115BB82549A0D02BCCB13282C4C37A2AFC617F347D7BC64DD6CB94C50922B8024ED4FA598B4912EE2ACE81FCCE893739678397C343C7DA4446A55687F236201E071B9C2C7715DCA6AC566702A809931B1D65919CDDB51A87B44B07629C659A104EF61BAA8702355128B9215A40E64F818C1CA297698EA14C00756B6D52974A7014E69B59E477362A63BCCD09BB474020FE51BF5337124C24C8E6F60DD2E495F3370E14A4CB1504234A4C8009B97365F166D385AC511A05EC06465D962D1BA88C191A9E28DAC4F517680D6586923BABA11BB30AC13D40466D52977929D62F48751458087830B02F5BD9B100A92DC6E602F3F24686365476C33CB9F5409856C80FA490DD6211AB9776487A3E15B33A92A347F3A92744C16DE3F8B3E942628C926BCDAB6CD80A068ED951F2689EF7066A9E2627F39C638A580441EB8FDFD9B2EA1B39D043AEEA1A0F48EA84490408818C602A828F869098FD2C429B35621DE9BC8039C6ED940BEBC32FD0C6C396B3248CFAC85C74325531A296A9C237FB2C4452457B4C43F0DAC214575A96A770170ACE6E0109E4A9C0E5F8985F4AC37CC84D206306AD7A2058EA58EA09AB3B7926941996B8125D7BD76472006C003784CF4479691BC422E00CA9976840D886DDC8A5BAFB87DB268EBD8248033703F6C6686CF928FFD736BDF3A26653319F22996C52387BF0A294944FDB1051315577B244C78578923F48B435362711B89585841FDFEC9FF047C76864055757CAC7EAC9D0F2999C341D314154DD58519B602D7855B6ED67049AE402F8913177914051E7C5A8400969F5CE9A485D95D544920AA7F169A198FA710FF73440D8949550A054562F16637D5A813C10BB29422AB193616687F062A1FA1693E3A9064982F9E96FDDB812C0763233687EE08928DC800FD2C8A3143148A0BA97633B5D97062A5B0572A89B2B265C4439357F96C01C6F464E72D0BF0CC1C421B3CD38610A9B0C89EE956AB896189C0B03AC173D31792ABD132F7174BE4D210B76E04B87E85B2E4A25F41332BC379B10D672862462F6AA3875DB6A22158EEE6B13135751DD49084862953CF275BA4580DA07921CF9482FC692643A6E9A5073A567C593AC01A57A75FC3735CD89029C99B3945A2BC7949B64377EECC96FCCFA2AC94CBE4C9AB4FC64673D042F416A80D867C9D5B3C9CB276FDB3C693181B071553B0EB66138656F33D0546322330980553BB2400D1256BECCC969937305553E8BC60C2D24AEACA90061CC7D38E3244253414222BC0D321C73EC6FD8804E71092995D48A6CD1C68CD1841011A45F4961BAB52EC176628B49CB0B840FC8B1120701227B0C92E10A1B34BB2475152BD72A82232345CFDB5B46E3403397B5D1276FE3E96703950FCFD49F1172CAF856A333497BB68C2ADAF026A7198BEE890718F474D7090151D21ECBA4B83E56069E1C6D34C5BCBFE94BF0A385702A9D2FC770D1905120A57FEF816AD941633558AEF7F96780C15112710DEDF8517CDB3314687BD4BA4C2B5A0BE253498894C7CA32401B517D812172A2B13146F30ADCBB6E79641A366BBB96B0688EB285266B5ED5BB000FEB4C73CBCFF6E8A980326E798113223C1FD815922E1247992A2340B70B46A6CFF3638A9E741B478BC7E6C476D2F68CE244BBA73AA919C7A48770C5A9A798DB1901B2D93836F5C507D862811949CEB4BBC65CC2D6FC36E2215078149355B83B83635BEEFAADB6FAA387104213CB6609F8B36D291B3B567ADCD85EF569966E527102AA159F0912E5617E1B0C295D12838EB7790F0C4E4A93562EC21F94C517F5B6CC3F7B3F6E832F93893417A2797F9848D5333CE5741ADB867E64E898362249A2632F7ECA4BD38034BD5184BCAB71F38854A02A2C4693B32CE172C1FB41AF3A2B2AE370889C485F98587293C6758504189050CB437A991B8EA5E25569D1A9ED194D0E470A419B453120288D29763C3BAB00F5180CAB07DA070DB401CD28D69892B77A847A47C51A2D0B39A22074627CBC068D42988A60481BE5934E626201292AD073BFF81CCE044A33E3F3339C7B9446C607E666656A94A0034445635312B20A76CBC4C6763C338AA022D79A826D2841EECA89D433C5E7DC041ED488610A1F5A951FA966148D1B8597101C7CF8AC44F5183D42C689079164E90B5DC582A761571496B7A8C3543FF275D403B923B032CBB87D5EE90EF8853AE78590D0E8B200C3819705AD47E71568051C026B4B5C10760495994208AC61A08C23ABB921828A5D69740AF57507E339EF977649999330C6A9B584642F5539356590C6CB64872517996CAEF853219C5C2CC1BA04F0C8537039C9A3047DBF17CE18673B039B2A9EC083C7E53146863B61199169C9B1838CAB40508A6B709DD8502783654D55766E6B671B6C83201509395BC565B10904DC27BFE30842479528995A5888AA8E04374E2918A9EB642629A135B9306A21CB02C925BC99401EAD40285A7B3CF5A809FFF6502E727B332269E8C445C7D9303BF35C344615E19220E391AB4F2011634C292C22022AC0CD5FB51339B83833EC7404FC38108207B8A5B1416C2DD29785F3D87F0BC75F24C65864C31EDBE243EA0B8AD015A003BC9EAB583FDB5ACB32BA3BBAD6BE5A189472560B22614B5BD257249C4458C7601C8B0E48D0C72DBC5743E77350D64DD6A587B67280D04B20D1DB15275361DCA43CEC893EA5401FB3B459637817A18755876983818CC1C745CF70D2A8CBB36050601BFC34BA9685A02B6652535BA101A5193660A06CE54DB9700A977AB36E612549E51FDFAA5AB0490BA7A302DCB314ED026CA1D765D54145DA1623F9A7064D2926F25A0C9FDC4B8CEB8C765CC9B3A55A4BD79CFB9754ED5786F04395B7A80ABE92687D6900DD14C3AD743E2F9540534C63602858371C3D304263C2185E29261237A848DAE97507DCC5FDF60209112E08D269F56418F2FC875B693D5C9CABB9BC636FBCCE548227F42BB001EA6ED64057656566F51A927B178E17AAA24A0616CA362AD134AAC5D36C5447BF4DD0CB7DB95C9009B7109826B1D8ADEF95CE8B9B444848B41002426812700850CD7572A2530A2BDACB8CCCA5485032454E855116E91E6830A68EC04DF98370CDD18E12372320BB865AE818C6B32628489B59AB53B31ABBBC944861A0BD100B66FDC017AA0C79DD177CAE432024181820D23688BC991AE597981B56C3F45B5E4A92F34C7E72882C6B4F1D791C2719CF3DFBFB8F3FA04ADCC1D4FF07BAF18B5A25081C8A9F526111B600954D39BADAB9044F59903D2A8F21F8E1D78B7FB950A8F51DCEC4BC7A573EDDA56ECC049E5688476BD5FD6CD076A8F99A019A + +z: 51D509CF26799741631099039F713B22551E2B0F0297BB809DF0CC8FC3E47EEE +d: 76CDCA53F781806D55CA8D3BAFB3F4D389D712F1221E85B5E29D6A46580F978C +ek: FE97202108CD725098CDC892FA68301012B3156A2E5BD503F9D388B26B07EE099D5AB0BA6B4A5E7DF369F748BDAFC4C72B171747546B3957BCFE189E312058202885FE853966A7B3DD285E06D37000900228662910260CA1D783DCE2ACBC436BF3669C51A07FB990449AFC153C9C5630F8A2E4E4B7A8E8719A98920B104E72646F83D8C06AB631755239B4303B7AFBBA9DD72577FBB677C054B16813DCF373734A6E4D8B025B66C19936A13278B859165FCC6277E9F149FF979EFEBB9867A9124233A5107B5E29B2CAF81C84A3D05DE3DB316858C5FCB372FCF28705E2BF0B4855E6F97F17DB217AD6A7B7288310086AD129119FF88D20B35F2F287B1358A851185BC12046D5079A2CB3CCAF98BEB9E7C1E82A841F7B48B4F57B3B17467441865288BC7020CDB1B7564989AA3F47BAB9B0919C6819E671235CD7B39F39C71C870FF6A72612CB1BC58A86F565AFA6932C71F059B2F72BA83A8985DC26D91A0CCD49BD32080D30EAC67D96A061E906E2B15E5F43215A9160AD4682A27A2B1B9C3ED1C697CE7AC6A4B2B3963B9A99441FA9D6337739AEF5891D773B4C095C8E97A9BBEA918EFB6058AFBB2A63318972400B11B9523FD335E118CC1FA0BD0B03C8C3278787F9B7D1F752BF5B739FFB0EB0654E753C2F955351243C233E9CB149D49AA1F1459D61B03E452192B64AFD642D00800B4B815D0B9863CE2A4A8AF4C6E7BB3F845A32FD95184812896105946B7A8ED80A5ECAAB0348DC4D2C4C2B7DBA3D1EE6B6A9D35CF03A4585169FBEA45101B97BAD583F9CEB486612761A25AB393960DDF3C1A4E23E23134CE37B7E6833822AF3B278B1B69D27A4ED72221C055C7F006F3DC78BDD3C86759260E31C8D0503954EF31292EB1C8A877A00271109998D9A1A026C16482316994B2573D1673C5B727E75024786C1742414B746C1B2AC74B71920A2C79B0456C08BF1E519CF28AA70627A6A5C8496D9B061E4439B75080A763E50C1A4B32483E87AA5E67C25A8A7CE6FB864012C6A32535DB7123D24F7CA62750A18E96911EA0AD2ECABB7B02252D44DEBB2C55D552349D3798EF7812B991755A278CE158185171B696859968492CAD792DC82767E53333AF9812AA55C443959D14B1C385452367BCFB5A5955163B287254B9C4B0380EB818912BB175605EA55585F82AFEC62C2CB46BE6AC0CB99443E5676AD21EA08A467006E67C5FEF61193F3A54C4C5DE6A4314ABC3F62A83261A4B56AF18172B4A85C00C56CF28EA5C6BFEC6AA703530B7E641E792C35D1F1BBB1914D15708B88B87D161524B44B12167873C19237CAD32BB7C72B0CDB04C516142634101FD81B2B12ADBFE27512C0A091523732B82AA278CA6AD1AF28A03ACCFA28D591040FC950AE475976C5A7E192A9044099A4AC487D5A39E121B9A776CB190A2CA499403C3A5F9F027C49F627E6446D8FB53252E1B098AC8A5DD59EFAA22D2F57C83809003CE2B562231140542AF5D561ED7C74B4E145820CBE387254D78C79A8F6C241F10D94E26454764876631811492221B09B9C2A6C75520D03EA79CC129862A10AC2E0288446AF46165BD1F614C9D1C3606C9C8669C334534266A1946AFC0C580C19283CA1B59C88AD6B8ACAAFD7C3328CE3583325ECDD4B101DC28053788ECDDB4CB7A4B66997F9FD0995 +dk: D5DC5D1A0BA3C20670B1306E201A927764654F757026D15DAA35B77F5B81AFD975BE114CC9E9A31A4C5E83C28D86EBAFB1E65674EA7BFC5646EBB49C67D7B0EFD60FE283BD07D71EDD71B93C815C3CC066513A52C74081DFB0773EFB736D6C0E862CC5F11CB88FBA3AC62515C39B0692359AD457210371C65B6031745622BB68BE60337F5ECB065FA678CEA88165BC7AA4E002D3C892115A3504534F5DE12178FC17E2F513B3535813D30EFCCA68018128C5C3181225CACB1C76BF7A6E98195E0B793B78B0305121087A83A37D1989D0145BB4F11B5E579075B6C5AC845949DA2EA03BBDA446A6C7F5B88C8913454A605179004BD47BAF446BAA4705743A0B6E2833011CB4069664E80C58338C71BBF1C72CC89F77849F6FF354B280044DE60B6D16C31355B4AFA199FDBA078B018AAEF88D046B927ADB64935152273B16127701B0093EED2439CC89C3DA9A277D1AC5CAF65B48262A48521361192168425FB1C341D180CABCD7406154CF7F647F0A62700C630F093649E98936D12A1FFE00A368A2622D4579F521B57BB1510D6CC6D35C48AA96B07079C7C6E4265D768E4EF2C9FA463052E716B48053EE0521227544384C7AD1673389DC34029C02DF55199328376A4C07CE6C8AED221DFDB844F770282E537F15A83A5BE8873AA52FD17C324C6C4B763A7D6A3121AB384814D20B879A42E3149BDC58CE709B3DC6E87B6EC03375CB15584C0DFA6A05F48935DB376096293BFF5A311D4373A95AAC117A25C1FA95EB1C21658A2D313A3343F643969148B11727BA64882B8AB3EC772909EB9690FC72A8F1C6B249191317610F81999B161ACE6351AD330E89A18FA0986514848E80AC95BE41BAE18C1885D44CA30047FDC152EFB069D589296AF20337E12A1093CD54BAB36D252AA2A674A7C065A5676CCF507C1A07A2CC471C612500E124573C865F9C3C6D59AA02F54094141B5A3E8BB9CB7A7400A42AE4867440399306627AE9112DB909A1D6820C26ABA62428BCF27842F30BCB97D241D161CD17E8C3789BB94EE60238B2C987601F694A1BBA38581C261DBE2B94A89556F12620141889A7CAA997036D7693BC5EE961D06A1324EB7520953AB7E3BD00FB2B4E306312A6570277C71BF35DF403442325789846AC203B905F28127B3947780201D5B57B6BE7CAC796076D04B838A222C4F08004F585BF79645FE11EF52749B8C0A5656798F8F8BCDA89C29CF1B10B4429F8B65974164C1653B0B6EC8DCF39961A7B82DBE28604C579F3109F94577B42A4574AA36F2778CD424C6238996F4954605C7B25B50C455AC334D73343D90AC6A222324DF6BC4766B3D2C2A04C92A54F084DED24A9A4D5012AE741F12318D283B1CD668375129274149F33175C2E19453F3B4E60A1089E0647D37B0721254C86720DA0A97697B45C4CD5360AC513D4261BDF738A08F1BEA818C722367C30788EA2361384A02528E1423F4143C525B8C9A89A1A574A0D45AB9A8C4E02B01B894634C29A3FF9B1C1BADA025E8A99F38A092CE903CC03411FD25CE61110A4B423A01699BD922353FB65D8E796F4B77F226895EB822552F7AE0CB7C22788429F8132F158C824319030E770D6B9ABBBB912F3E592987826FE97202108CD725098CDC892FA68301012B3156A2E5BD503F9D388B26B07EE099D5AB0BA6B4A5E7DF369F748BDAFC4C72B171747546B3957BCFE189E312058202885FE853966A7B3DD285E06D37000900228662910260CA1D783DCE2ACBC436BF3669C51A07FB990449AFC153C9C5630F8A2E4E4B7A8E8719A98920B104E72646F83D8C06AB631755239B4303B7AFBBA9DD72577FBB677C054B16813DCF373734A6E4D8B025B66C19936A13278B859165FCC6277E9F149FF979EFEBB9867A9124233A5107B5E29B2CAF81C84A3D05DE3DB316858C5FCB372FCF28705E2BF0B4855E6F97F17DB217AD6A7B7288310086AD129119FF88D20B35F2F287B1358A851185BC12046D5079A2CB3CCAF98BEB9E7C1E82A841F7B48B4F57B3B17467441865288BC7020CDB1B7564989AA3F47BAB9B0919C6819E671235CD7B39F39C71C870FF6A72612CB1BC58A86F565AFA6932C71F059B2F72BA83A8985DC26D91A0CCD49BD32080D30EAC67D96A061E906E2B15E5F43215A9160AD4682A27A2B1B9C3ED1C697CE7AC6A4B2B3963B9A99441FA9D6337739AEF5891D773B4C095C8E97A9BBEA918EFB6058AFBB2A63318972400B11B9523FD335E118CC1FA0BD0B03C8C3278787F9B7D1F752BF5B739FFB0EB0654E753C2F955351243C233E9CB149D49AA1F1459D61B03E452192B64AFD642D00800B4B815D0B9863CE2A4A8AF4C6E7BB3F845A32FD95184812896105946B7A8ED80A5ECAAB0348DC4D2C4C2B7DBA3D1EE6B6A9D35CF03A4585169FBEA45101B97BAD583F9CEB486612761A25AB393960DDF3C1A4E23E23134CE37B7E6833822AF3B278B1B69D27A4ED72221C055C7F006F3DC78BDD3C86759260E31C8D0503954EF31292EB1C8A877A00271109998D9A1A026C16482316994B2573D1673C5B727E75024786C1742414B746C1B2AC74B71920A2C79B0456C08BF1E519CF28AA70627A6A5C8496D9B061E4439B75080A763E50C1A4B32483E87AA5E67C25A8A7CE6FB864012C6A32535DB7123D24F7CA62750A18E96911EA0AD2ECABB7B02252D44DEBB2C55D552349D3798EF7812B991755A278CE158185171B696859968492CAD792DC82767E53333AF9812AA55C443959D14B1C385452367BCFB5A5955163B287254B9C4B0380EB818912BB175605EA55585F82AFEC62C2CB46BE6AC0CB99443E5676AD21EA08A467006E67C5FEF61193F3A54C4C5DE6A4314ABC3F62A83261A4B56AF18172B4A85C00C56CF28EA5C6BFEC6AA703530B7E641E792C35D1F1BBB1914D15708B88B87D161524B44B12167873C19237CAD32BB7C72B0CDB04C516142634101FD81B2B12ADBFE27512C0A091523732B82AA278CA6AD1AF28A03ACCFA28D591040FC950AE475976C5A7E192A9044099A4AC487D5A39E121B9A776CB190A2CA499403C3A5F9F027C49F627E6446D8FB53252E1B098AC8A5DD59EFAA22D2F57C83809003CE2B562231140542AF5D561ED7C74B4E145820CBE387254D78C79A8F6C241F10D94E26454764876631811492221B09B9C2A6C75520D03EA79CC129862A10AC2E0288446AF46165BD1F614C9D1C3606C9C8669C334534266A1946AFC0C580C19283CA1B59C88AD6B8ACAAFD7C3328CE3583325ECDD4B101DC28053788ECDDB4CB7A4B66997F9FD0995CEFB593C11ED360F404732EA8B6542FA9796F2AEBB4C61EEA40B6D8A599C7F1351D509CF26799741631099039F713B22551E2B0F0297BB809DF0CC8FC3E47EEE + +z: 9C330AB4257D7B87C4742C6E95B66BDF805C6A145BF444836092C6B1D2C5FFFF +d: 78AB6C49354A018BD38A39926F822A1AC4ACC4FF32DFD7C047CE0887A3AC182C +ek: 85787649612C798187CD986E9578582F607DAED85C09B863A5476626016F88212EF2B70D81145C671162741C70C9DACF566A1B68025A7B66BAC9EB5ED8879D4CD40237D9C791B0A7E6C1C08A7354424B71D6739192B3BE48755CA513170BF3A6197400FBF94E9A707FE6D007E4062BA2D1BFF9192E294A981AB19839120401653208618C6DB25E40A28B8DD1A9E6D91A1408191C8C6638B04D2A50983C6B0640B934E5039729885DAECB0BCED2784B998CC296980626979DCC99A5726C4C07A6CAE1578089BAD68190AFA91491375C1C00624363C4A049A086794A046806117B36FC8BA8D38AA8097C727E3C59A6378703749C97D35CED818DB691783691C138C325541A1ADEE01CAC4800ACB2B008A0A5976C90B6BB8AC55B06B693390C30905866AF2014AB5D340A4EECCB4F91C0A2C700A68C67833C6FE10927D6CA935D8071F98BA31A1AB4B73128CB92BC1B8056372434A7B9524D95AD50508998A4AB179B0EB79C71392515E29BBD09682183394838A52734409EBEF5852DF7B9073098ACE127A7C95FFE48C30599540161C5D12CBF7BE203CD5AA4D861BF6768CBDB5C0401F70E4AC7B0ADC0305FB702C023AF65981A61E11A0B12C169E3AD569C90C417865F708C2A7B4B1C1866381C7EA6D17F4ED35730A84E5AFA975C728DE8B593D92251AEAA5841D8CE9A3037C1F47F8529CDE366BFC08C2A7337B8DEDA345008C43A5A901DF5C6B201B553F07FA799317A216205634130A2ADE04808032B0DC1E715C1B263C8FC07B251B14B9B1EF422C1BB171CA7D281C706A0251911ED345340DA4035D8947B058FE1D38F6EE02548B8056A24501E3B65B2568802417E98567322959EF118AB0C471B37496424FA327751C1DB40AD909424B66C811118A958782F3E57351C24934650B5A110B68C581C26CB7E634A283361B94D544E0EC713FCF52640CB180F25BD40D4114249828D5255B7EB9A1CF6589ED4BDE602317B4909950606F9C91E59E1B68599517A089466D939B43BA14B0A91987662FA63C27E1411DA78255111B961B45366515022421FBA4A04F48244449BCFEAF630CC4397A98226BC0B2A30778743EC2D2A9747A2127889794637F780A0ABC6122C79FE0830691A7EC277239190938F1648FD733C1761A42A84283E40BC7EFB707748CC0FAB76F5141122158B30655765257135EB2F08CB1E84067C64A503F58C8C54D765DADCC4C7181FFE1026E423B44AD717DCE8A6D765BE2A94C115434D16661F82410E7E19B8E3388972484638B6A52A058F2459414D3C57987215FD753434349BA001007940018EB49A52C78FFAF468D939C4AE585F2C1759E0A582BFDA316E53A363A1006BC26474F49C82B93EF4D7CA94A473D3788F5865B5D4323C3471888B06634AE325826144B5D9894CB59E8C6C6E3406459BCA1791FAA9743853175C48AD982F9775936FF68093AACBBCD87F6F30BDC1F19C93B2AECE6A3A4CD99ED3244323A7AF72C8598416543F50643B713AD2722BAFD092084BCF77385B6ECB2AC8F19BF9D97B353229496A0C6A5C73CCB06C2F2C5924E284EE3185D2160ED31B72D1F29B322C1DD11B5DABC5848933B4FB7B9AAFF1394AE76F624A231DB3C2DE108F5BDB1878551FF178901D67188E6B6F3A49C904A5539738F4305053044EEA5F9C +dk: C4AC07C1B9ABFCA3BF31365671954516CB2E01E39337681D54262DB7B06E8CE8B4A98028F7176518098879083F64703207213945684CC4AB9CEC679834A35A8775509FE8CBBB279429D71A48FAA18485446A1A4FFD2996E24B76715A133C1486B2346055F22FB8666F487C44328688E5A6A6376682184B9057C9B65DF21101C3645C58393793B939C9B11C27360AE96E15A43BA3CA3A00358DFBD08A395C0A02C70FA45168BB6667A843A691A9C88FE11B79EB85F2034097166989024414770F0E2537A0F266F659591A06318947A715DB88A84BAD0434750E582A12C7C6981207239935C8529DBE0147E0E1CFB4D1BF8A6C1A699B736991CF2C88B22D466C5E481120A51F21A84877E710228766CEEC0168C2314DB6C85CAB02007875CFE3B5B613B1D50366EC450F1739712D8889D6653CDF41009CD42D3D6064DB930BEB551702813213C02110E435624920C242AEC784351228A847B1BF2C66AA1068364AA2BC674B2ABF2944018273DAEC324ABC94AB2AA5F21B318C84A77FC7A6D60570FB193A795993F2231497D8414B0082DB0A70AE81C8E5A61B461768B5653F51F31EC5E96F9041A49CA27A50598F23C575E0751E10C921A71676C2388C97FA83D481B9C466A265920DD9095005A1CDABA5B76E36AAEAB4BB58892F8A4C9590D2C96615A66F43A06FEC673C57B7376709CB759C61E37DE08C04D194A827173F5BC767FB788CE4A972EF148DADCB00B993A35C5369B3741D4C227E21112FAF923AB8C6478B856849A8B508BB4863D1C4239C0A469079CC677260FC8250C75887728B86A95F46B86E7C01214C1205C727707D9361E619CF792121F746815F9717DB937FAB2C094C90AA118C9D72801135AB87C99BBCB877915F8BA4E2E70B87303672D53EAA80A11A071C5AE307850C2864713287F976F7A465D8E4AC626B2390683ABE583E7AD4012F40778E4676BA30A163C70D5CFB5D755C0F806CCF0CCA7216BC16C2B7CA3F16239C147D81C4BBEAE635B2398E661B68EA863FEE4B94E6F2A44FB0A0BD8A75DEB9CCAF4AA14F14628EEBB7C88B63731587645B721ECA388EFB5495638863A13F4F6440C2E71636C9C1767B192932694C82740CB457D99B30C8396976A32AA5C027D3E36D0C3B09D24128B748CDB5F57BBF703E4173CA5C115B7000625FF06E280574EBB97E759302775093DB2878DB545C345B6525118D1C4458ADC9BD5F212B4D3BC77D66B9882A336231719736B448833B20F5448E759813FB856F95C60E29BA726B1D159B2BB342B737DC3FA7332B4492C583F83D9714029AE52A366C4734D29DB1E88397D22EAAD11D4A9B1FBEB7435F0B7016A400D4547A3C4B8F54B0A5E1F37082B4B751691E7CEB7C07D383705B8F42139326F0A985646B99DAA088C1BEBAB90AEC2B6B30E96229175C07AB4AB78A344A13C9A2F02B782860007A2D5611C7287410BDF0454F76B4F660B488FB94655B19B28B929B45664E6C8374F096B3B9A9A6262E2C2355A1DA73DBFA8160C5A16C08C68C647FDB408C223AB5D7D05820C3A1CF2994345305FBFC7D74CC20EE02C7C97C2FA5445AD4C9093CFAB7DE1C467768A01863347D1990A5882E355937694C0A01F7A9072A8B85787649612C798187CD986E9578582F607DAED85C09B863A5476626016F88212EF2B70D81145C671162741C70C9DACF566A1B68025A7B66BAC9EB5ED8879D4CD40237D9C791B0A7E6C1C08A7354424B71D6739192B3BE48755CA513170BF3A6197400FBF94E9A707FE6D007E4062BA2D1BFF9192E294A981AB19839120401653208618C6DB25E40A28B8DD1A9E6D91A1408191C8C6638B04D2A50983C6B0640B934E5039729885DAECB0BCED2784B998CC296980626979DCC99A5726C4C07A6CAE1578089BAD68190AFA91491375C1C00624363C4A049A086794A046806117B36FC8BA8D38AA8097C727E3C59A6378703749C97D35CED818DB691783691C138C325541A1ADEE01CAC4800ACB2B008A0A5976C90B6BB8AC55B06B693390C30905866AF2014AB5D340A4EECCB4F91C0A2C700A68C67833C6FE10927D6CA935D8071F98BA31A1AB4B73128CB92BC1B8056372434A7B9524D95AD50508998A4AB179B0EB79C71392515E29BBD09682183394838A52734409EBEF5852DF7B9073098ACE127A7C95FFE48C30599540161C5D12CBF7BE203CD5AA4D861BF6768CBDB5C0401F70E4AC7B0ADC0305FB702C023AF65981A61E11A0B12C169E3AD569C90C417865F708C2A7B4B1C1866381C7EA6D17F4ED35730A84E5AFA975C728DE8B593D92251AEAA5841D8CE9A3037C1F47F8529CDE366BFC08C2A7337B8DEDA345008C43A5A901DF5C6B201B553F07FA799317A216205634130A2ADE04808032B0DC1E715C1B263C8FC07B251B14B9B1EF422C1BB171CA7D281C706A0251911ED345340DA4035D8947B058FE1D38F6EE02548B8056A24501E3B65B2568802417E98567322959EF118AB0C471B37496424FA327751C1DB40AD909424B66C811118A958782F3E57351C24934650B5A110B68C581C26CB7E634A283361B94D544E0EC713FCF52640CB180F25BD40D4114249828D5255B7EB9A1CF6589ED4BDE602317B4909950606F9C91E59E1B68599517A089466D939B43BA14B0A91987662FA63C27E1411DA78255111B961B45366515022421FBA4A04F48244449BCFEAF630CC4397A98226BC0B2A30778743EC2D2A9747A2127889794637F780A0ABC6122C79FE0830691A7EC277239190938F1648FD733C1761A42A84283E40BC7EFB707748CC0FAB76F5141122158B30655765257135EB2F08CB1E84067C64A503F58C8C54D765DADCC4C7181FFE1026E423B44AD717DCE8A6D765BE2A94C115434D16661F82410E7E19B8E3388972484638B6A52A058F2459414D3C57987215FD753434349BA001007940018EB49A52C78FFAF468D939C4AE585F2C1759E0A582BFDA316E53A363A1006BC26474F49C82B93EF4D7CA94A473D3788F5865B5D4323C3471888B06634AE325826144B5D9894CB59E8C6C6E3406459BCA1791FAA9743853175C48AD982F9775936FF68093AACBBCD87F6F30BDC1F19C93B2AECE6A3A4CD99ED3244323A7AF72C8598416543F50643B713AD2722BAFD092084BCF77385B6ECB2AC8F19BF9D97B353229496A0C6A5C73CCB06C2F2C5924E284EE3185D2160ED31B72D1F29B322C1DD11B5DABC5848933B4FB7B9AAFF1394AE76F624A231DB3C2DE108F5BDB1878551FF178901D67188E6B6F3A49C904A5539738F4305053044EEA5F9CA8604CD90AAF5FB9BDA220814069AA00CB5B5FFB7B60E4BCC86F16ED0B49BA9B9C330AB4257D7B87C4742C6E95B66BDF805C6A145BF444836092C6B1D2C5FFFF + +z: 18EA1C7532F706B06870D0A1047AAE33D9E1FF9E9BCBBD302D8817EB7B022A77 +d: 13B75620E4CB9AB9A6689F6E2BE44639BAE6C9CB7DD641AC1C9377242D99679A +ek: AAF98BBEF422DAD045B9D3C2F134C71ACA3884604D3B87130EF84890D8870A4783DA18BD4C8B0667FB194393941C7508FE20AE5C077FD06A247DD7C19FD20940568B45938BEB39B1AE18CEA618BB8001C84DEC8CC170C12C77B6704AAE9B745083B3B00A020510A196EE2AA12195CCF650CB50600F35D61910397E645B886BFC58FB7C99C58AAD79552E13D31F05BA5904007E3B504D717156D652CB1D2353270CAFA6986846100B81C7816857AD7EB98D5CDA24E6DB3342F346AE5B162C11BB9E8C2AAF95C857277597398DA82A6DB7D7C34D7ABB1BB3155E72B0C6C811031A06D609C23306473317948E1B1AD9F7B59E22962BE33D750561146B135FF64058BC5524F26DBDE518C872A98D14862FF4599CB16C11D654F6762D531718C9B2BB51C34DDE019364F246891A3891F823AE85B6E54A4ED6A18673D4AFBC2C8C8F47C07C2B51DCFA56E5A57211914F437C2181A92723D5C09844951A0CC0470A594AB0C0E8A378A3015E39C5275E9B9D4E202ED6A4AC9AD1742C8455642932BA68C599E8883A3CB5FA11876023BD153166C7C33B3105C1BA9881F92C99CD8B41A475777F239AF2886570F94AA3626381A6B8B3C3AABDC39C2A6C0CAFF7CB95CB3162652BB0493726A81339377798D78AAE999BD9542565D5491556B716B09D0482C603B99501F8823AC6C5018543527928D2981C2957B9B7ECC33BF423F3B89DF352377DC554590A4BD6E7AEF624B873916CB638AB426A50F7789B25B420E4380413B10416C048A8069FCC62BC727AA9425700AFE835E12682215606F84C70DBAA4BD9B93D1E156913C62959C98A741A74810B996063624061B43D225B1AA71A02C50BF38016B4439FF156ACB652B278E0AAD91C455F03B29998317F596A1CB0051CFC21B1E76B59B52409164233D0C7B01A2B7C93120FC42BFB533347C2B4DA782BB55034C0A152CF51C44F39204A63C1F7867E57F27332791D8E3A1A13DB9A61BB0FE5660C6A8A2EB1365D30A83C3C1B9F03E66E58B0144CB6B292847F68CC3B0600C32FC45569158EBED0BAA50B26303707C1796BF9569193825603FB9237FC2AFBEA9D8D3B283D775583990E2672859155C70DDB7C0FEB84BC07B851F7B4BD44B84DACAC0FC913314113654567BE4370AE3179BB3BA56388A7EAFC3A1A10C25891B5A943C62A4297AD469D8040829029A8960CB9F65C21E10B64B07A713C40313E6A6EE0E939C741AA7BA93526022A8440858039A357EA2CEDB342C9299733381814E1C78FFBB1E289AA93C6ACD93C6DB2704F79922D277C9800EB3983865F65842D5BC8B346207C6C33612250110AB236DE202374132D60F5202C77367912C4FDFAC54DEC5FBC29076BA13FA013CE0FF70543B8989190AB63FA721F677FA5D0B248F2646E008830A06DDD613CB6063A8B9C37B4C263C4904E3B681EFA3568F0E429B947936EF41B2EF704751317EBE86A9597B8C0E6C81AA278FDC93F0379AFA3D1244D917401AB151A7805CE881216F208EB976FC442BB9DE86943143107B4AB479681F109AEDB28309067B9DCD6030DB4B558890FA1C5AD7FDBAA9BE39E6D6CAAED3C5286C73DEA3B6DBB940E6F647D43ABB364D92BCF099937706F8CD48F58BF77E3972CD846B20E9A1331AC0CC350080B65731270F9B2A951D93C68C98C +dk: 5C9B6453A08BA6B40F1F7C6C7CA464C76237EEDB9D74F0925D200A599684E85862AF8C29EF28871E7A55CC5824D381A9B7ACA2096B78081862D504010E1A9366000C022B3EE8AB91E6F7334287251F829C00221217823D641153B865A30F24B847154ADD5C9B4FF2350EA51D6C49A975AC2F65B541A52827DA25C93E9B36023C6129BA29E495B4914334E4D02CE21B66F1437874F1A56F03A6726C142F0B03D46543BED89D4597902C0C5B025895A04A9E22563560DB29793A353FD4528D0C6B0D0AC657358B04E7204C21A7378AAF3F0B93730C68D238695EA4CF3C9B35AE19B052B8CB2E041700902B4600BC30A846951BC0B9E42D9453B10ECC37165B08F22675657A6FC2023F0C1B42BBA175D329935B62468522BAC0944B83C5926A1C563D9323F175BB6EA9C2B1CC360FE8B60FAB81F5A1C9F31443D698B34336C0A1EB86E8E162FA21330E909CC0B69FD62738D823B6AC0462DE561DFF33094C1029ABC49381C406A316A3E2A887FFA9C3CDA9CA48E8AD802CB0231142C5F2CD83154DF65540CAFA16D39190FE100812816ACDD0720B4A44D337611651B1E505B7CAC0BF832841C573144BE42EF280B25C7B1700F344F82AB0C575B2D10C3A86449614B592CE42195F9C385E4CA257478E8D5320BAC24A68883DFC399AC236C497C27B5A80842AA018C0C0B459C2B14737197870C0E6D661510951D290B5549331E6C557DAB48F349B829AFBBEAB932E1E8638ECE2279C697220152FB84AA9DB5A8307F93438A51C22E8A1DDC54AB722A692EBCE6E719A82066E60B345C75729B4E7AD173BA7F363908411B6E724262BE0CB05F51E7739A5FE0C304690645C763CF7128DA2F71B2F7238A43003000995737A4DCFD8682BA8923C6752E53150DBD36468D6A2459A5A54450FA6D14A4295B573423E4BE95529C24D7D035C5F65C49D3684943AA505869CD525665545676A52958180538A521AF9274033BAB2C7AC83566041D9D40D92FB2DD2C147E456456DF0105264B0FB17853BF991789B6818F9BB75A381D4978D2EF7098626903C857CAB673353783C12C860258A363CAAA771ECC724B2332C1A254A3CB1547CCFFD149C187B345FA282DBB92D9793374CC67D0C0B5F946B78D81B08E521275AB7357050694C824033B9568BD335A8B837627B1494D9701181C7AA02A95DD3915E55A371F31C14F90C63075555BAAB65AA100AB99A6C1C85A1051D7E58A8E65BB312E02EB5485C05F302DDF814EED49D39E4A9BC688C989A17DF074C7FAC62FB73B0EEA85FD8177AFF41C4C3E40B407028C4F58E60DA14925385E4A0A6BA8B13C8618A8A08BF6A1630AF1B5200BA41596C9E440A5BA11C21F7C62A46379627CC4DB2E43A565A829FB605F186C405C519502C0115D9BDCB8857E03343707843A28047BDD6B445445560A686801C4D3F4C4C773537AFE7C5E2191853F56A8E75A9EA852552440B4E0642C3133FBB4CC678C2A35D093975F17BEC7972C938A7F0159A8BD8910E847DB09A1A2DE43576F9818A338787C10709F085987424C59546BA5493FE9696256C1B147105092A77A8A329563B061AF8CFEED35EA1E625F03716FA75B7839C325B94CB39C6CF1323CF4CA486F8703BAAF98BBEF422DAD045B9D3C2F134C71ACA3884604D3B87130EF84890D8870A4783DA18BD4C8B0667FB194393941C7508FE20AE5C077FD06A247DD7C19FD20940568B45938BEB39B1AE18CEA618BB8001C84DEC8CC170C12C77B6704AAE9B745083B3B00A020510A196EE2AA12195CCF650CB50600F35D61910397E645B886BFC58FB7C99C58AAD79552E13D31F05BA5904007E3B504D717156D652CB1D2353270CAFA6986846100B81C7816857AD7EB98D5CDA24E6DB3342F346AE5B162C11BB9E8C2AAF95C857277597398DA82A6DB7D7C34D7ABB1BB3155E72B0C6C811031A06D609C23306473317948E1B1AD9F7B59E22962BE33D750561146B135FF64058BC5524F26DBDE518C872A98D14862FF4599CB16C11D654F6762D531718C9B2BB51C34DDE019364F246891A3891F823AE85B6E54A4ED6A18673D4AFBC2C8C8F47C07C2B51DCFA56E5A57211914F437C2181A92723D5C09844951A0CC0470A594AB0C0E8A378A3015E39C5275E9B9D4E202ED6A4AC9AD1742C8455642932BA68C599E8883A3CB5FA11876023BD153166C7C33B3105C1BA9881F92C99CD8B41A475777F239AF2886570F94AA3626381A6B8B3C3AABDC39C2A6C0CAFF7CB95CB3162652BB0493726A81339377798D78AAE999BD9542565D5491556B716B09D0482C603B99501F8823AC6C5018543527928D2981C2957B9B7ECC33BF423F3B89DF352377DC554590A4BD6E7AEF624B873916CB638AB426A50F7789B25B420E4380413B10416C048A8069FCC62BC727AA9425700AFE835E12682215606F84C70DBAA4BD9B93D1E156913C62959C98A741A74810B996063624061B43D225B1AA71A02C50BF38016B4439FF156ACB652B278E0AAD91C455F03B29998317F596A1CB0051CFC21B1E76B59B52409164233D0C7B01A2B7C93120FC42BFB533347C2B4DA782BB55034C0A152CF51C44F39204A63C1F7867E57F27332791D8E3A1A13DB9A61BB0FE5660C6A8A2EB1365D30A83C3C1B9F03E66E58B0144CB6B292847F68CC3B0600C32FC45569158EBED0BAA50B26303707C1796BF9569193825603FB9237FC2AFBEA9D8D3B283D775583990E2672859155C70DDB7C0FEB84BC07B851F7B4BD44B84DACAC0FC913314113654567BE4370AE3179BB3BA56388A7EAFC3A1A10C25891B5A943C62A4297AD469D8040829029A8960CB9F65C21E10B64B07A713C40313E6A6EE0E939C741AA7BA93526022A8440858039A357EA2CEDB342C9299733381814E1C78FFBB1E289AA93C6ACD93C6DB2704F79922D277C9800EB3983865F65842D5BC8B346207C6C33612250110AB236DE202374132D60F5202C77367912C4FDFAC54DEC5FBC29076BA13FA013CE0FF70543B8989190AB63FA721F677FA5D0B248F2646E008830A06DDD613CB6063A8B9C37B4C263C4904E3B681EFA3568F0E429B947936EF41B2EF704751317EBE86A9597B8C0E6C81AA278FDC93F0379AFA3D1244D917401AB151A7805CE881216F208EB976FC442BB9DE86943143107B4AB479681F109AEDB28309067B9DCD6030DB4B558890FA1C5AD7FDBAA9BE39E6D6CAAED3C5286C73DEA3B6DBB940E6F647D43ABB364D92BCF099937706F8CD48F58BF77E3972CD846B20E9A1331AC0CC350080B65731270F9B2A951D93C68C98C1783913132F097618BB39BD4748B4EFE63DA07C26697F9B2F4E06CB2D27012AE18EA1C7532F706B06870D0A1047AAE33D9E1FF9E9BCBBD302D8817EB7B022A77 + +z: C71F7E44295978FC63BF8F6A68F8609E98D155FD7A74E1FB7982733FBF8A6C25 +d: 7C345819C7C327AD9571E5DF882449DB243870D686A9764D4129B21E17AC86A9 +ek: D6525398362B71938C1C721695157F1A2BC24680BF6E265DE8726594C26CBAB9B040462B4DA30402D70EC050958FF5944D181374CC9A29E867C1B33CC36CBA66C66A75F44CD68112B543AEE0026D9C105EE556AD5FC2989346C7473C93E2641AA42904C7751D83CACACDA6B2175B1B9C1C41435C49027AA21119428C61482F655D4A0CCCFA5315100C314B680F702CAD99FAABEAF08335257F9380066A09BA0D4B04F91A52FBC09F3C348F0A49B840BCBFF51B63D380C53FD17DCA7B76E782580D926865A79AA4992FDCA771F4232AD68956FD1A32547588967B402B2C8E3F2264DC7BC8B5B770EAF4B413C1AC44A8A4A4061CC7FBB7ED809FD97C84B6190BCAD156E36018C44CC0C5A84E9A872EFCE63C370BB257C46AC285058FA09981D1CEF51A07C44994E68C9C3CD6394EEBC545F438858A6D18583E51DC6F15D7B0A3F02F26932928BA1F281012D93050A8D6685F5364FF952BE1C644965A3D255A57C95308E100C4AB8343E2311927212E6F7975A9FC7F72B4761B78069DC5553D740A5433108099BEBC850D5477CE3708474481026931082946A949E3B00DF640AA52BA6D04AB3C1115C91147BCC519DDE6BB953582DE996D38F35A51C7AF0AB999FD78A9B34BBB209869D3776C038B0211849A26674D5D5698904A9DCE362D6BD858B3848B9534B84DF672047930CF63B51D91C79321127FAC7778068E7AD26EF3E61E98B757F33127895A07BA6CCC0FF72A5D5288FEE49AD4D249B7E1B9E695B91EB147D0B1AB2CA4299F9A655BF25AD3B9ABC9B36EE98740FAE598F17113D3C8912BE694A30207E86A5633A32D2335ABE7D7267AEC476771B0A7FC8B0DE2BFE524423D0304AB19632166C790DB214D478726BC7A281685B2CC77E0BB9F8BA64245A80A5DB5570209B1FB0115EEC3CF67383F35E7C05ADC02E8A2BBD1994BBB8818646BB9B87349FDACAE5EC681D40A03A506754700665F4B372C2009711AB55D0C0D62506FD4701EC69C45EA8ABF7A20BBB2669AC460B6728B6845476F49DBCB927723DFFB7A224CA159DB7D1E63322F22BA31B6BD04DACA1E30AB53AA686B8704B483152516C94078916C32064FC638467329CA008784847275A61B44E758A6828D5377747B8848D2557DA23090865A58BB1C7E7448AB61796697DB1B5A70C881CB80A9438F13C8753D662ECD495E74B21CDFA177544A3D5F8912634143938935B4F26874231C2D58BBC0F38DAE4135955793596C4DD44798ED9A57FC178A3AE245DE19BE18C1604A06D041C5560E69093854999EB93D1F82447103B54D46383FD084907060FD756DE74B6FFB3675E0ACA92AC5A89DA53CEF6042FE0CABB55C68DDBA367CB999D7B0B935E752AF97196D465E57081E0378465CC6BA56234CCA1283E22334E65A7F56787BE509C1AAAB0942B39D58167DF5421E35B6C966965FEC61BBD8AAADA8B59DD0664DFCA12F88B92A1CA158E7D5B5B5401DA7D038CE9A70FB5C890E52A19CD32DE63219DD94981CA9B269F0C4BE40CAD533C6DB8687E4497526392B848C4BB706AAD7A68AFFB4AC3D21385A2CB4DDF369D41B6C978719C8D121D43551ADBC54F74CB3528655ADC64F62C59461C3531B6272A4AC9CA013A0203C6D8ECA72D67189DC07FCE68847F0053CA9F0F6AFC7D795AE4ECD3D8E6A02 +dk: E4028F81A3115D24B0661A525B546BBC901FF645B4A8D9127E500279A0B67C028DB6E660343012EEC35B8FC5B25B61374B19053D910BFC716E08517187B191582971C7A2C1564BA8B2E6C72F417681224DD3F663719032D0649C4F69229CCC9FB9E6B775D3376708704B5A715B67766CD045DCBBBF861B3170E44EDCAAB276C6190A5B188401353F61C4BBEB413811015BF273C760682F414CB74ACAE3624B9C75036BB32E6113BC59A2A9B0770E928C445B53030A8B262D34950C930BE7ABAF65376C0C90416333B2413C4F849A341BF0124CAA691CC2C2A8C328077302FBA57314E0747569BBE664339219867E42A0E1E92332A2103925CCB85C3ADD190CA3317E0DAB7CFAD92473CC5AD7C31A412417C858AA846721B268642F9641C05A338FA77ED5572A2AFAC80AB0746F07740BD8925E856225D61F73C1BE78381FFB751D6CC456FB488D143208C6E849C0DC10FE295148293251B4300FD72ADBA15BFE82406CAB7E0E4C4F7545869737B46B669EA45470BF9894BEB9CE8C57C4E18042D071C0D58C27AAB46C05446EBF69CA18E45E63039E12A12ABFB3C291692016182349DC805725334DE86E8971449EF7AF09D52089872314757110ABA0BF576C98C1A9D8355DD45A3D842455017A4156101931198920354B0BB66ABD7BC4A2741FB5B06424C14D07104460F3B1A7C54DE8BB6C7AC6091D5B7FDB91BE0A4616AA412C807799D23379756658B9F39345BC5DCF9168AC5B22B2E94BF43071D241129C06714FFAA4B74564B402521942769A391D9CB3C15F7572EE2407ABAB96ED161388C6B76346504650CBB58025155B1527850342E9354804A16626ADD0305532A6387F45781BC080011A1680716C7C1B3CF72717ACC91ECD189A5B03C7ED561DA771B68CF275684C2CCAFA8711F34104E4CFD8F6BD050B5E196564D6D710965740C9A533D1136F7009B9B69CB6BCC388CF7644681B4C2A475410934840A6AA0E316357FC8CFC612E0A57C7ECE8321264A8BE56C468E8C431A0CAE612056D520AC26847DAA4BC71BCA9B3E739D454A4C7B3808CB633A603C22644361611A9D363A407E99D55C459BA856F8295B742357B0BC7C53436A58B434A0280473775B3B3837503828B76D8BA5E182E3AC8154BC99A727A70BEF0B22E631BC56B631276898550443381C1DA223E2CB3A0C38236F35200E1F9C67EA42CA9E620D148209FFBBC07B333BB2B8013233F4C908706F87410C6829C44332C084DB2E0489894593D9627E9F370DECBA867788F9FC99B81127F6EF446412A36E3B2286FD013354C58A04B32E490B7AC53653BD2A15A096682D01689194A0232BFE522B7A85275A5834DBD105D9AC03C3B9416F344302B72C232890390D303DE975B0CE6AF800B0F587A17CA759BE4315EF9D4A3C27033FDD290646C4EBEF4964DB66BCDAB216A80737B2B674F5170B1620E868741792AC8290C1AA21B1460C61B367367A5A084800652E8C9528431AC16F73138A69678B218434463AB5587FDE45ED194B830F02996D81A2C92BC6F524448CAC8B4A5795C7A423625170DEC2120D437BFA96F0E8078771C9AF42943E8A51CC89C9759D3A92896C5494CC584559742FB564C068811ACB6D6525398362B71938C1C721695157F1A2BC24680BF6E265DE8726594C26CBAB9B040462B4DA30402D70EC050958FF5944D181374CC9A29E867C1B33CC36CBA66C66A75F44CD68112B543AEE0026D9C105EE556AD5FC2989346C7473C93E2641AA42904C7751D83CACACDA6B2175B1B9C1C41435C49027AA21119428C61482F655D4A0CCCFA5315100C314B680F702CAD99FAABEAF08335257F9380066A09BA0D4B04F91A52FBC09F3C348F0A49B840BCBFF51B63D380C53FD17DCA7B76E782580D926865A79AA4992FDCA771F4232AD68956FD1A32547588967B402B2C8E3F2264DC7BC8B5B770EAF4B413C1AC44A8A4A4061CC7FBB7ED809FD97C84B6190BCAD156E36018C44CC0C5A84E9A872EFCE63C370BB257C46AC285058FA09981D1CEF51A07C44994E68C9C3CD6394EEBC545F438858A6D18583E51DC6F15D7B0A3F02F26932928BA1F281012D93050A8D6685F5364FF952BE1C644965A3D255A57C95308E100C4AB8343E2311927212E6F7975A9FC7F72B4761B78069DC5553D740A5433108099BEBC850D5477CE3708474481026931082946A949E3B00DF640AA52BA6D04AB3C1115C91147BCC519DDE6BB953582DE996D38F35A51C7AF0AB999FD78A9B34BBB209869D3776C038B0211849A26674D5D5698904A9DCE362D6BD858B3848B9534B84DF672047930CF63B51D91C79321127FAC7778068E7AD26EF3E61E98B757F33127895A07BA6CCC0FF72A5D5288FEE49AD4D249B7E1B9E695B91EB147D0B1AB2CA4299F9A655BF25AD3B9ABC9B36EE98740FAE598F17113D3C8912BE694A30207E86A5633A32D2335ABE7D7267AEC476771B0A7FC8B0DE2BFE524423D0304AB19632166C790DB214D478726BC7A281685B2CC77E0BB9F8BA64245A80A5DB5570209B1FB0115EEC3CF67383F35E7C05ADC02E8A2BBD1994BBB8818646BB9B87349FDACAE5EC681D40A03A506754700665F4B372C2009711AB55D0C0D62506FD4701EC69C45EA8ABF7A20BBB2669AC460B6728B6845476F49DBCB927723DFFB7A224CA159DB7D1E63322F22BA31B6BD04DACA1E30AB53AA686B8704B483152516C94078916C32064FC638467329CA008784847275A61B44E758A6828D5377747B8848D2557DA23090865A58BB1C7E7448AB61796697DB1B5A70C881CB80A9438F13C8753D662ECD495E74B21CDFA177544A3D5F8912634143938935B4F26874231C2D58BBC0F38DAE4135955793596C4DD44798ED9A57FC178A3AE245DE19BE18C1604A06D041C5560E69093854999EB93D1F82447103B54D46383FD084907060FD756DE74B6FFB3675E0ACA92AC5A89DA53CEF6042FE0CABB55C68DDBA367CB999D7B0B935E752AF97196D465E57081E0378465CC6BA56234CCA1283E22334E65A7F56787BE509C1AAAB0942B39D58167DF5421E35B6C966965FEC61BBD8AAADA8B59DD0664DFCA12F88B92A1CA158E7D5B5B5401DA7D038CE9A70FB5C890E52A19CD32DE63219DD94981CA9B269F0C4BE40CAD533C6DB8687E4497526392B848C4BB706AAD7A68AFFB4AC3D21385A2CB4DDF369D41B6C978719C8D121D43551ADBC54F74CB3528655ADC64F62C59461C3531B6272A4AC9CA013A0203C6D8ECA72D67189DC07FCE68847F0053CA9F0F6AFC7D795AE4ECD3D8E6A023B1D861C34DA182BF4DD683ABE8D247898E71E95E27AF72494C02BA6FF3C8147C71F7E44295978FC63BF8F6A68F8609E98D155FD7A74E1FB7982733FBF8A6C25 + +z: EF668FB41F49E82EE0FE00919CC06507548321593A7ECD1D2112342608D95FFF +d: 8D6DF2EB3DDAF961FE5EB556842B758BEBC7ECB312B6D4628B323F483B77D6F9 +ek: 499B0EFC9A67CF754833785F22E7AA1AAA43EE135195F42410FAC0F90A6C7658BE53354D81939036C88A44801707CB2C743363D1623DF1C1C0EA474521979497178361A264C5C68DFD5484D6B19B1734CF6C73521266B4B5D81872F059A22C2A9219CAB4055FD8B95661CBCE716694DE5414B4CA0AB0AB3231A896AEA0883E6A6454F0025CB79894D83179F1036378A423D55005C973A297ABAD1B7321CBB89B6875F3B9522A27C83D7716B01AA8523686B3EA5F9F3722CD715A833CBB7AAC7AE3E24F1F08474E096D31EC3B608C3C67C1340E01B9780A09155C03C7971D54E0C9C7A6265C196C0FDB8E0D6C23D549708B9C2E2E7366F146C2BBC290673030BAD304B67A6133B3B22A41359262AF706785EDB44AA6B58EF1B71C69B4C1097230B90702BFD7657464991C46C4BA0775F807C0ACC14FCA9C31FDFAAE5FE525BD9538933C843764B7FC130322235823D55637B721B20B8825603A57862064517D2DC54545A0A7369270B7B15ED2B5265A401532F4ADCFFA3C94A5B6E89660530800CD317B45522AB8CA8E3EC71259FA60E97A808FC49EC9E998DC703FBCB3308069019DF8138E3B9B69D71F9FC708EB1364E7F7C2DB73765F13A53506AD03205EB5AC5DA86B24E322898B79917753839C5A63F400547D75B426F70D479A6340278D0607C765857E44A2A32AAC4A3D324BAB221FACA212E1A9315B452C5FE25EB0344138A1B191F8044C9A4CCF0901A66C8FA56AB468BA4513E8A045C6621F22719762C37C37C6E8C5C04CDA7A02FA287A2B04BD88BAE4A94DFAB47733D74B056C7541EC992372104A470B60F20E394C6994A13932236532A74B716A8D86F5ACCAE10CF6C1708D079766A7B5760474A9E351ACD6774A627CBCF10E441894940164AAC6554CF73EFA6A7C487216FFC93939561130F107E605C5A20A8B3A280F27942F7CA353BEB66EE67A2CC2AC68CD94310E8B67D597AB33368C83179F8F8124180494EC253B395114FDCA9E27FCAC8C7A0B1AE40D31581946C5506B5063E2050D0CCB6AD713024A9C4D08D09D211486ECD371F5033C8804C0531180B99447FEDB91181C327DC000E7159C1634013EC00C03C4C5ECCBA79DD138F20B4975F27946566A629A4819E7C77EE4625CD91C86615AD1A876E7045196E6C09EA22439751304D92B9C2B3C9BD32A6CE010C1BC5608245B76008A58A4A4C9072EADCA4AE103B63487366D130A5135C18FC4C6766CC8E06B988C51AFA6D1CD44133ECFD539BB0B8CE92A3FDD36127B9C03259161E8441A22F0436F9B1A0C57BC8BDC06371078A2C9548442310B4A5479F0054ABC375E75A1D170A949C91865326A76768A2F117CA524CA8047B26F7416FF677DE0BC07D518C5F71686DD544823DBB9622706FCA2A2112472C352B6BBFA0A3A7C2280CC85C35203A6DBCE3D3C4E8F9C1D454C730192968892BD257CBFC06179EADA01362BB1D1258E9F1BB563565535908803822969B3B2A21633390961891A2DC436B55EF392F0379EC484967A9068E99BAEE1F461241070342221660101651B2A2FA896934141DBA9B905E8C309F8981CC5B080C26CB585090EF97C4E01B8ECDB7F5DD88C4F8B85765B7908256D350898450C3592526E6A99B504A0D3D19FF79680DADC9890E865104DA28FE012506D19180565 +dk: 073C0C1BB67152B5AAB7A58461B1AB82C3BFA8CBCAB360B48CE83CE15B8998579542183C8106743238809A43B848688025D2CAE11857BD75986BC0B2516552F640807A4625D6E28816883BFD48966FA2A39A3486892382BC799FB0C6623D687A2D7A9C6CC0867C2C96C162C272425C503CBB3DF71611565B43777DC805A799FCAE6895C709760689E45FB61779F1FA72EB7628CE299DECFB6D25E883D431069A3002BCE8AE00145AE57785D2F82E76F59B98FA5A5D31426DAC1F394B954377A6ADC243E67A8C05B389E3C013A7F98131DC599B6918B79C665D73C0DD676DB7A864534A536A75C108EA79CA267684812912D8711D32225550788E22A23B861C261083B9A98A3D325A08C828DA42753AB959E4C795FD370A1379C9C926038DAB8BD281AB46FB3D8C1795D6144C25CA1073F00C85A27B441034BE185B43AA0782A70EFA995FDDD35E753B226454A0C5998A8B6C0604991E3942AA699B91C6B17C67B373CDB05A48B05CBBD8B3F1B1139DCB18B15704E221179FD95478A6280DF1518FD3ACE9837E9701503476C230E582AB4BA5F88CA5ED306EBA481BA51B5FB5454BC96100CEACCE14B11A43915E44B0067C44408980CA872B568ADA7432A6B50FC6416DCA06D62B96F701BCFD7A48DB251D6949AD368779FC2858C6108D0F7C0AFCF9A7A8C0A6BC27BF76603B74438B5DB833B3AC8516EB3D99BB24BA310D12EA23FCC0111B02409FC670A1DBA9AED13849C78DFF1229B8CB4B3742046C4744BAA3067F456E8625974E3387662C6ED3B2A1B24262BC8A484EF185F222124C9B3ECAB4B7C4202C64309277B0A28B314C702B72D1C950647C6A27D477E50AC3B675593123961F941750192212B663EA79BE4314096B7A74E7517FDC6818A8C913C59C75BF6A72A2F34F6A77816B9354B48989A5EB62E250372AF04DBB56332B6545AB254CBF9867E354A8F2C4B614646F6F316A8294AE497B3B7E12B6D6953D2A764BC4A22DCE9185C7AB0A939883B2A48531B374F3C499DC746170650BE2F08D0AF4785094C96F3423DC5A8D90F536AAE1C3688353D9A67FF2E01E94CCA7E67A5F9842762B30BF8FB729D0694DAF93397A360E8C200BCF8B7A68B9BFD43159C89C6C88E389B5237CAD95BC85D366DA09BD2AB93A7E8B8CE58AB44E93680201605EF434AF729E3015A3F0F5A69C273724B557BC218360A31C88EB150A545C4BF7922852BE48972D2F479530216F9E75B4F33967214CBA93E601D5D536F8FA3083FB3E5BC6A752F9C3F87413DF31B0235ACB53EA6C96A74D5E02A22FFA4EA8805B0B721DD3A554108000A0BB6F25F4B7FFD11F4CD15F5F34201FB958A8D13F9A530E66B452FC8A160923928B2B9C9BFCA4DBF374923A301751175621A3EAAA2C046AAB0CD42D3B693E4AC19E7171A0ED87186C7C8EE4C576B9EC9A249B7B346B2119B32C78324BCA7C51497458A6E46A24B60E84CB583305BA0A3194E74A5EFA26A1E221CD85B2CD963263C134B2768C3ED37636CE59262A1969C926B29481066C76C17CF80813AA2C30100AE0F20B3C99395E9B2B3438CDDA5857F652A646777F58B38C86EA3F7BF2021ABA4B32070CC8B40CDB7B361AE3219110A00E55249C498F499B0EFC9A67CF754833785F22E7AA1AAA43EE135195F42410FAC0F90A6C7658BE53354D81939036C88A44801707CB2C743363D1623DF1C1C0EA474521979497178361A264C5C68DFD5484D6B19B1734CF6C73521266B4B5D81872F059A22C2A9219CAB4055FD8B95661CBCE716694DE5414B4CA0AB0AB3231A896AEA0883E6A6454F0025CB79894D83179F1036378A423D55005C973A297ABAD1B7321CBB89B6875F3B9522A27C83D7716B01AA8523686B3EA5F9F3722CD715A833CBB7AAC7AE3E24F1F08474E096D31EC3B608C3C67C1340E01B9780A09155C03C7971D54E0C9C7A6265C196C0FDB8E0D6C23D549708B9C2E2E7366F146C2BBC290673030BAD304B67A6133B3B22A41359262AF706785EDB44AA6B58EF1B71C69B4C1097230B90702BFD7657464991C46C4BA0775F807C0ACC14FCA9C31FDFAAE5FE525BD9538933C843764B7FC130322235823D55637B721B20B8825603A57862064517D2DC54545A0A7369270B7B15ED2B5265A401532F4ADCFFA3C94A5B6E89660530800CD317B45522AB8CA8E3EC71259FA60E97A808FC49EC9E998DC703FBCB3308069019DF8138E3B9B69D71F9FC708EB1364E7F7C2DB73765F13A53506AD03205EB5AC5DA86B24E322898B79917753839C5A63F400547D75B426F70D479A6340278D0607C765857E44A2A32AAC4A3D324BAB221FACA212E1A9315B452C5FE25EB0344138A1B191F8044C9A4CCF0901A66C8FA56AB468BA4513E8A045C6621F22719762C37C37C6E8C5C04CDA7A02FA287A2B04BD88BAE4A94DFAB47733D74B056C7541EC992372104A470B60F20E394C6994A13932236532A74B716A8D86F5ACCAE10CF6C1708D079766A7B5760474A9E351ACD6774A627CBCF10E441894940164AAC6554CF73EFA6A7C487216FFC93939561130F107E605C5A20A8B3A280F27942F7CA353BEB66EE67A2CC2AC68CD94310E8B67D597AB33368C83179F8F8124180494EC253B395114FDCA9E27FCAC8C7A0B1AE40D31581946C5506B5063E2050D0CCB6AD713024A9C4D08D09D211486ECD371F5033C8804C0531180B99447FEDB91181C327DC000E7159C1634013EC00C03C4C5ECCBA79DD138F20B4975F27946566A629A4819E7C77EE4625CD91C86615AD1A876E7045196E6C09EA22439751304D92B9C2B3C9BD32A6CE010C1BC5608245B76008A58A4A4C9072EADCA4AE103B63487366D130A5135C18FC4C6766CC8E06B988C51AFA6D1CD44133ECFD539BB0B8CE92A3FDD36127B9C03259161E8441A22F0436F9B1A0C57BC8BDC06371078A2C9548442310B4A5479F0054ABC375E75A1D170A949C91865326A76768A2F117CA524CA8047B26F7416FF677DE0BC07D518C5F71686DD544823DBB9622706FCA2A2112472C352B6BBFA0A3A7C2280CC85C35203A6DBCE3D3C4E8F9C1D454C730192968892BD257CBFC06179EADA01362BB1D1258E9F1BB563565535908803822969B3B2A21633390961891A2DC436B55EF392F0379EC484967A9068E99BAEE1F461241070342221660101651B2A2FA896934141DBA9B905E8C309F8981CC5B080C26CB585090EF97C4E01B8ECDB7F5DD88C4F8B85765B7908256D350898450C3592526E6A99B504A0D3D19FF79680DADC9890E865104DA28FE012506D19180565847F52D9587DA7DD37F7AE07BF1B9D4C94F03C702351FB4C5AF4200EFCA07F38EF668FB41F49E82EE0FE00919CC06507548321593A7ECD1D2112342608D95FFF + +z: 26345937ADC9104155275E7114E93D9F5847EEA73A9359358585B2D42301A294 +d: DB4ED8E9C3E1AC7A35EA4B67A4EFCFB46972A984D161F79F084125D6D4AEE7AF +ek: 7BC585BA01AEAF899394E3C00223562CA2163F977AF21CAF967A9C174B3719B097C440A60C5AB746683F15294E4CE40031F16A6FDA79C608095EEB6945241B25A77DAE55CD95161C94836940C93665D669745A013013875A722FF1B285047C9270687FBF2310D1510680406C70CB97A65CCAB59AC6C80C4937810A2488BA8C37C6CF022E4FC14135D2100B613E3BECC8D74261C0912683067429DB79CAA56469CB537E432257EC2EAF370590613716C64FDA2A0EFEF27727E5A437000C9145919158BE240B426E63AD426018FD3271D899846E6421277C511FDB14CDF1B16C48B99080B6FA68BBFB4C02DB837C65E6CB02235412AC3534FA91AAD35DCB3AA773FC2A050975ACB0C7928201636A7920F46DADAAAAF9072F6B23B138669BA4C9655A660F3911AEDF97633ED966CD1253CD7B947C09839CA53AF33B80A370AAA43C1ED6D26D64981D756060A17331A3D4B452FC34F186986936C2EDACCBE0629DB60493BFA49451D44BDEEA1D6605BE945625654A6A6C13943B2972D0A95CC07B70196579ED9013B8CB5BEC81AA61066B5AF6673B3681B21B65905C1E44B808B1995819B211D0BA9D4AF45E6C030D75D2C63E77264BE92DDBE1B54BD54060CC4E8A760DDC124EDBBA6DD8910922D18222AC42D802A1A377C0979B3D9CF8736ABA7EF223413E6712FA523716DC5A0C41CC3CC462C6FAAD0CF30674EA8469A06B1FFCA3D6E3AF0AE95689C70F3325B3BD6C3158BC36014B836F908D91269FB5B05CE6075A80D4A70562572A64AE090C9C39DCC5C6197D84C62752E30DF9A49657DB5ACA0084393A25C6047E629151C8BCC3C4897CA2BC8BD3EC4115B8230A155C15775C7CB7A3DAD6560E6798C57A607FEC8DF6493C24A11518280F081BAB5359AD5468B1717560F1E60273518ADA29819E11679D16CD20514EE44989C62582B0E79A1C09997CE67B9E46850F294BA940C7A6668B28EB6C953C81F50C2B94F14A0DA76DE5AAC603395ABC8866B92B88890B120A62CB06CA8F0F14806E19A794F73FDBB1A9638169FBC30BF4C764F66475395515683C9CA4E587312B4301547C25B58108408E64D6BC0A6B9BA8A4CEF76649290A185BF25DF5C14B81F633A399325380A91B5C2AB21399C4C88597202A50A966DDD8AAFD4A2A831897385AA5E19480437B5E1EA05F778BB8C616391C2766F1DAC500D1898AF957E022202C33BEE93001F7E56B0589C25DDBC5CACBBDBBA308B30228C5108019280812925E395329D3A72B6566694DE690746A1B244AA21B879E54590A4173197C2C930E683F645A83F6B288D3A48D00A9CA97180AEED5685691B8FCA95ACA9136EEE892B5F46CBF60BEE6D803DDC05555349D4FD1AF405C78D6B86E56C12A26657832D753B9D901557572E7960EADE5A9110CAD2C1353A415BD119BB8A42924B0BA004ECBCEBC430F13B33F82AA1D4727CBD8150F416A14AF1A6CBEE094D0EA963CC4C814E6A9CF097DF9B9BEC7D9B68D5BB23F767F1CE88FD44B5539F80F2EDA4B887576107C725A3A5D80240397907AA15842A400CB6200325B1542E268BA3C054E350364C836370DE786E5077EBB4B4C8961917870019C7A4794D27E332C14D26B6BC02202CABC83B8E9E01A155B3D735CAB97C80992BE75623F2B79E41453AEF4A09F6CCAFFAC73 +dk: EE528DC327151C18138C507974649A95121F768132E6C6647F2A193556C06040C80058394883C01D75763041146349BC8FA72E57BA7069656B2D138B85784C79B11E70025D5F3558EB8BB418CC8BEA139310F850F3557FD56A10F0D297BDC0C0DC3B4916CCCA4A419B5DD6A8F8F6B0F1AB6BB2B606C73AC36C0C93267A19B7C7CB82AB9C96CBA726770C5475A6B889CAAC178B8882BFC236CA32197523E95112697F7B75248B3C12F132B45535CD55E274706242A69644429A1C3BAB673B580C7DEC34FF7379AD073241156477D1798D1AB09AA5C53EF195E65A7C15E5569781A9B06376F77337A1E56506C785F5D4C95FE05BBCC736685370648A90320C059CE45E55841F08CC8024C24C473646B128451047B44F1C526FDC4B8D862DA60A97AD91CCE133B5BF7C70CC0A23B458380602882EA2741440CF05B1C960699C8A404444A19345F113DE341279C11B58A7BB6B903DE6054D55DAA4A501741E6953739564770205571CC93861A9D5D785F273338CC90432D00B64A488B023AA5EEAAB0543CB34916B55A5CD69380A330CC194640D41048745FC74CAEA0FC8C95A03FB40F701B763E73FFF6B1C8D2434D2646BA3C870C0A29CFA45A880380F6675CA36AC1A86C57C56A16BC6E5A9ABEC7404F86209B3AEC736A8E436407D2476CECB799A880AC8AC33A3F58C68CC047480BF85258B6C1C159B01BEFC73B7BE506BF75C67DE85893DD2425C467B2F627971925FBF666B80DA59DB285813D688916109EFD2951995953BA729DF127018B7043AA3A57BA33AFE2782F8F319C754C4E91780B446C4D3360A824223657405EA34AB1DE6181C702AD100CADE0380BE942EDB51A93D1A0A884308352CB2D93B920F1B467FC306F6A6AF9E41334F861360646CEFF6770BC1B7211A1D2B95377546A0AC4BA431F824A1953BBAA8BC9CD66789E55EB2C8CCBE4B51233C2578B8115061276B48651B63097BE21BE45868EA513F69B91F6455CA569C1C26317E0E1807C7B7B2D4D43F16958C2BA32CE0585E2DD1991B357C72239817B0484B3258ABF39988933710528E82F11BB8E798CCD5C323DAA16C9C0786C1C73AE396946A0EEDE43FC7568C98D056A1766AD702B4F6478CAC056410FB9B95A9427C32A87C84BE3C9A21C0CB46567ABCB3D1CCDC3B8ABA0A1BBF18A6D23474E3659BA696197E059B6F536523E60C0C69314A12312B37CE51686B5CB742715BBC4F241ED12B342045BA69010CBD24597DA695A331C4B8E7C693157A348C9E16A0A307900D86A032E08B5E802A29842C13DC7509D432C5AA7B679BA10BD090CF9FC086E0C5C2AAAB208F39179E693645672123D894EDA35C5E32031DDA9DF410C32F72BCA22B5645E7A5A9C804A45BC67A861A6FF5C821D9CF79E6BC4D8386BF77AB31C6BDA9DC6E99866B5E43193D9210A790CAA629BAD25304E6A946B3D87235CC39F5B66EE8B4C6EA73022B867C6CDAA133A0962579612C8CAE71BA151754B4862C7193994934F04FC3BB2C20A71CBB6962C5D16224D1719555143E33A0E70B79A2D6134CE0BA1797C8A2F98B71882D5BD214E73A950C849FEA2006B242B83F5C8998113BD27C01C3276FC20041ADE77AB144CBF6368D45C18C7BC585BA01AEAF899394E3C00223562CA2163F977AF21CAF967A9C174B3719B097C440A60C5AB746683F15294E4CE40031F16A6FDA79C608095EEB6945241B25A77DAE55CD95161C94836940C93665D669745A013013875A722FF1B285047C9270687FBF2310D1510680406C70CB97A65CCAB59AC6C80C4937810A2488BA8C37C6CF022E4FC14135D2100B613E3BECC8D74261C0912683067429DB79CAA56469CB537E432257EC2EAF370590613716C64FDA2A0EFEF27727E5A437000C9145919158BE240B426E63AD426018FD3271D899846E6421277C511FDB14CDF1B16C48B99080B6FA68BBFB4C02DB837C65E6CB02235412AC3534FA91AAD35DCB3AA773FC2A050975ACB0C7928201636A7920F46DADAAAAF9072F6B23B138669BA4C9655A660F3911AEDF97633ED966CD1253CD7B947C09839CA53AF33B80A370AAA43C1ED6D26D64981D756060A17331A3D4B452FC34F186986936C2EDACCBE0629DB60493BFA49451D44BDEEA1D6605BE945625654A6A6C13943B2972D0A95CC07B70196579ED9013B8CB5BEC81AA61066B5AF6673B3681B21B65905C1E44B808B1995819B211D0BA9D4AF45E6C030D75D2C63E77264BE92DDBE1B54BD54060CC4E8A760DDC124EDBBA6DD8910922D18222AC42D802A1A377C0979B3D9CF8736ABA7EF223413E6712FA523716DC5A0C41CC3CC462C6FAAD0CF30674EA8469A06B1FFCA3D6E3AF0AE95689C70F3325B3BD6C3158BC36014B836F908D91269FB5B05CE6075A80D4A70562572A64AE090C9C39DCC5C6197D84C62752E30DF9A49657DB5ACA0084393A25C6047E629151C8BCC3C4897CA2BC8BD3EC4115B8230A155C15775C7CB7A3DAD6560E6798C57A607FEC8DF6493C24A11518280F081BAB5359AD5468B1717560F1E60273518ADA29819E11679D16CD20514EE44989C62582B0E79A1C09997CE67B9E46850F294BA940C7A6668B28EB6C953C81F50C2B94F14A0DA76DE5AAC603395ABC8866B92B88890B120A62CB06CA8F0F14806E19A794F73FDBB1A9638169FBC30BF4C764F66475395515683C9CA4E587312B4301547C25B58108408E64D6BC0A6B9BA8A4CEF76649290A185BF25DF5C14B81F633A399325380A91B5C2AB21399C4C88597202A50A966DDD8AAFD4A2A831897385AA5E19480437B5E1EA05F778BB8C616391C2766F1DAC500D1898AF957E022202C33BEE93001F7E56B0589C25DDBC5CACBBDBBA308B30228C5108019280812925E395329D3A72B6566694DE690746A1B244AA21B879E54590A4173197C2C930E683F645A83F6B288D3A48D00A9CA97180AEED5685691B8FCA95ACA9136EEE892B5F46CBF60BEE6D803DDC05555349D4FD1AF405C78D6B86E56C12A26657832D753B9D901557572E7960EADE5A9110CAD2C1353A415BD119BB8A42924B0BA004ECBCEBC430F13B33F82AA1D4727CBD8150F416A14AF1A6CBEE094D0EA963CC4C814E6A9CF097DF9B9BEC7D9B68D5BB23F767F1CE88FD44B5539F80F2EDA4B887576107C725A3A5D80240397907AA15842A400CB6200325B1542E268BA3C054E350364C836370DE786E5077EBB4B4C8961917870019C7A4794D27E332C14D26B6BC02202CABC83B8E9E01A155B3D735CAB97C80992BE75623F2B79E41453AEF4A09F6CCAFFAC7316161113DF646837A28818D9C34EDAD57472944528FFBEC6B1BD204262DCA04F26345937ADC9104155275E7114E93D9F5847EEA73A9359358585B2D42301A294 + +z: 63435E06C2AA3DFB3477120710D5E7FF0DC0DA68D4644A24F66A8012FB193697 +d: C6EFA7D5D500E5BF857D80EAE2A6EE6414159947FD4BE589350724FAE5E51805 +ek: B07C141713A0AAD60845A07EFCC54C4DD073348261F7485FF93CCFA7000967A24E7F03BE00D4C0AAF13995F2C19D0C92B3F372D75802891B0A97E78917301D429B0AF9C7693882024AD301C5B1448474BD2B39CBEB18332CB6252FA7920D94AEE849C10A907B5FC827B94A58E37378161A4407647D025B590D1A1C50880B2DECB17774B22D3139445588B9BC93F7020FF6A9959E9A04FFD15669F9A8CFD412EAC051B940B2ED02561A4B9F4B57753423C10DBA0587287D9DD068C4660138E6C3EDB94664797B1C702D9D89A1C9D086C1F7A21238B4A22A8F6BE9075D0B712F4567E55C0CC1BB4788F2A693D6088D36331350B3969B66C35CAEE9A015FC80CCCC556F1C034431FBCD2796BCBD9347B39C472B27CC8F36468BB10D4D1767AFF24C33ACB86D7191AB359903F43E73DB80B5F39AD25933E0645013B2AD56456081495B7036B28B652F577C1D251CCF45D3BEA72539D359B94DB50B150AA5D4E56FDC91B2654A4367C650E3E1310B72403135C185B90C5005A0FA11C569FB82A3DCC71AE774D97B171987B9D128516801B9A7D91FA6DBA6E5341A0147963BD29415E90DDDBBAACB242056E487724285BE3756C37538D60BCD7DDC44FB25AED0C24CAA663BD650CA4E806BC8A259E9794AC4642447F225BE560B541BA90C227629B2ADA4245D83E41117A095874CB676144782439CCCE1893D26B7D427CE0060A106903891687C17D636CB865EBE4C28134885CDB7722D84B0BE41638D5A14E18023191B35AE228C1EF92914A505F93901ECF598E5093E31A41611F6726C42A96DC2200C5178CC320EEEB8B223C8746B72847F9B586A229929A3B5617A54F6E56C6CEB018AA0B02DA6CBFB1278015B68BF15BEE2F223DFE4025349ACBBA505BCF592623C6D3FA975AA661E74948757000CB476757B732F8647C4F8C431C85975A09BAA591B95CFFA3D89FB3AED59330164510A303609D0726BF63479116AB2EA92DB8B89859C82D3A0966CD5348BE479AA15B6BB395165777515688D172265C7018D08D59F72C74A682290CD771C557018A686CE1B3451D6AC0D4149BAF16C871779031BBB9C4E70C9602B38A82200D2D251C5B22C60CAAA98FACB66CC3DF2A3770EE282A9DC328658A2D582B894DB7B5EDBB63A7B90788786072698C2904343A1B9F6DB107E5A6CE1129A444B3DEF542E35728F080294330343B4843AFFE144827499539B0C79B2CC29961158F61A20502BF3BB38A784BC8A673F3E680C5F8406056A035FD1A3A5E445DBAC0282E1B7885A891BFB367D236AEAD15E4F5B5CE26A6ABB4840DD177000806FA066380CD381D5BA64CBD3B048D60CCE49975EF778C1F8240A1484D073CF3B5625E23A0E02D22875465687987FA6EA8D42C5CE28443BF726551F6CBE108732DB119581CC9CFED76D6D1CCC5FE132A9B51D6D4723FE2B64C70B65F7DABB8E71C3A876545CD1AE11B835C1FA4629E69DE1D489D085575FC3A677585CA06C594FFCBD17E76162366092C03F2AB951FFB012E89446F047A4925BA350AB51C1526FD79A853B2273C2B68A590816CA0536C4C467D0918DFED84230E9AA89063530204F096B6E18C29381CC9CE4BB391D6312AA804E84B9170E59272C4835BE92CE2AEE6D55F2AF72FC20B0DD71E5A81C39766E3BD54B78372F1C6A +dk: B4FC40D80B09DECC317933826E7985C4E074C65CA16B6C7184F30CF1AA705ED7CDEF878624007ED6017BF9D4170C20928A71388ECB8FD2906D612525F3A8139261419B1799040BA0F5F29BDF683E1BCCCAA819A65FD3286EA55B98B3B0AEA03972A0988E352112F0984E64A36760317EA9BA7267949BB02423D5A53EFCADEA178FC568464859BD634259C6B8AF7C2BB9A462A3F0BB66A15B2BF0956DD7829DBB2BCFFF47A40AB487E5D76A57AB71A2AC6C5B651597F631F37A9EAAE10E42D4588711B1CCF1331ADA44EF532301900A6BA2764721C81B2ABB3280672386BD64D52356737055EA8F9409756A03A5E0B410EBD4463FEA79ABF65254957447B6BCB9989F733BCD58E8CC34D74500DA128247264E0253F0EC811DF199DF1298F87A34710998045BCCB5205441EA20BFD776EC02CC70075B272533C011A25EBC541CE65B54D03149A4C04E950834D8A33996ADBE386411D168C4F735354171B3BA908A208B8B0C8DD95113BBB301D361189DA703372A7458337027C27682C04A0CE6C0C0098CAFE1594BA01787568B944C58BE9A3EE4600444BCB15376648222C167FA317866745D2495D9B30522C830B6C447F935A38588BEF31CA014C5106402933B098F8432938A1267ED4BCCBE24B4CBB45AB3317BC60C8525FB21AF8B5C35546D49A41E35ACC7B24466E1A7B7138A045BCBCB2D98C0EF242C5762CF38EB29A61AB7CCDB94880710B9E7AA0366AE25034BF131012FD0AFCF211312066A667C3739941BE616B3EE1139D890BF4CC499E6720BD00103B29A05E5B993C6B89E281760B853418A2AC0E6A278A2D2C3A213514D486D2B01AC73A8C21A01AEE891A324E2AD45338431147988799FB8D6AF44F62BC386431F3C664E9100B3E4B86B195F31125D58DB59E7858F45506CC5EA11A9902668601AF0B7599508AFAD51799C389BE4C164691515F59C4D02A2CA092A3CD06181C804AC81A651EE142866B563089BA9A6B459DAA746DBC0263E04050AB458FA97682566C3E4949ABA5CB3DE8548AF3BCE2A253F8043C0EEFC96E3E83CE3A427FAC302AEBB2AD104454790BE531B77604A910640313E5CA5EDB6AD8729AFF6C37705E2BDBC9A9917D36B1925AF45A22C7EEBA2C26544FE5821218A19207990FBE4881FB8B4CA76424FF9022C4C61D680B0F1F668B537103CAB1E1640396050CA524465A9F80221B8A3CB8CCA8979B7C85A141E26649C26BB3DF4666280961CC72060814FB6720DA96979F7E25C4A68588A00801A121E60F217D565460D7C1AD47BA858585A7EA696AFC91544B533A7D86AB68C7F81856F03135912BA1D0F69AA73921C0EC87E8B770C1C332B378A9387C0BC64A64D4FE6AB5FEC50CDF41FEA9883BC44A9175A3DFC0CCAFBE434881CA7E2B53A825ACA950AC2050B20D1FA9B36536A34E83B860850DC90B9568547B7246A115A9394455818A2B081843CBFE129D0389CFE27B192673E13C56B9FA38E99784CA5E1CC0529960534C9AC2497524948C4401259B09628A605FA659661C96CADE04B82894116931C63207F6B46675E14549DC767291B579BDA32B6EA16121B97C19BB4A90287C9B6199C904DA6B6A1278BB7A7B77405A9696493A45C8C27B07C141713A0AAD60845A07EFCC54C4DD073348261F7485FF93CCFA7000967A24E7F03BE00D4C0AAF13995F2C19D0C92B3F372D75802891B0A97E78917301D429B0AF9C7693882024AD301C5B1448474BD2B39CBEB18332CB6252FA7920D94AEE849C10A907B5FC827B94A58E37378161A4407647D025B590D1A1C50880B2DECB17774B22D3139445588B9BC93F7020FF6A9959E9A04FFD15669F9A8CFD412EAC051B940B2ED02561A4B9F4B57753423C10DBA0587287D9DD068C4660138E6C3EDB94664797B1C702D9D89A1C9D086C1F7A21238B4A22A8F6BE9075D0B712F4567E55C0CC1BB4788F2A693D6088D36331350B3969B66C35CAEE9A015FC80CCCC556F1C034431FBCD2796BCBD9347B39C472B27CC8F36468BB10D4D1767AFF24C33ACB86D7191AB359903F43E73DB80B5F39AD25933E0645013B2AD56456081495B7036B28B652F577C1D251CCF45D3BEA72539D359B94DB50B150AA5D4E56FDC91B2654A4367C650E3E1310B72403135C185B90C5005A0FA11C569FB82A3DCC71AE774D97B171987B9D128516801B9A7D91FA6DBA6E5341A0147963BD29415E90DDDBBAACB242056E487724285BE3756C37538D60BCD7DDC44FB25AED0C24CAA663BD650CA4E806BC8A259E9794AC4642447F225BE560B541BA90C227629B2ADA4245D83E41117A095874CB676144782439CCCE1893D26B7D427CE0060A106903891687C17D636CB865EBE4C28134885CDB7722D84B0BE41638D5A14E18023191B35AE228C1EF92914A505F93901ECF598E5093E31A41611F6726C42A96DC2200C5178CC320EEEB8B223C8746B72847F9B586A229929A3B5617A54F6E56C6CEB018AA0B02DA6CBFB1278015B68BF15BEE2F223DFE4025349ACBBA505BCF592623C6D3FA975AA661E74948757000CB476757B732F8647C4F8C431C85975A09BAA591B95CFFA3D89FB3AED59330164510A303609D0726BF63479116AB2EA92DB8B89859C82D3A0966CD5348BE479AA15B6BB395165777515688D172265C7018D08D59F72C74A682290CD771C557018A686CE1B3451D6AC0D4149BAF16C871779031BBB9C4E70C9602B38A82200D2D251C5B22C60CAAA98FACB66CC3DF2A3770EE282A9DC328658A2D582B894DB7B5EDBB63A7B90788786072698C2904343A1B9F6DB107E5A6CE1129A444B3DEF542E35728F080294330343B4843AFFE144827499539B0C79B2CC29961158F61A20502BF3BB38A784BC8A673F3E680C5F8406056A035FD1A3A5E445DBAC0282E1B7885A891BFB367D236AEAD15E4F5B5CE26A6ABB4840DD177000806FA066380CD381D5BA64CBD3B048D60CCE49975EF778C1F8240A1484D073CF3B5625E23A0E02D22875465687987FA6EA8D42C5CE28443BF726551F6CBE108732DB119581CC9CFED76D6D1CCC5FE132A9B51D6D4723FE2B64C70B65F7DABB8E71C3A876545CD1AE11B835C1FA4629E69DE1D489D085575FC3A677585CA06C594FFCBD17E76162366092C03F2AB951FFB012E89446F047A4925BA350AB51C1526FD79A853B2273C2B68A590816CA0536C4C467D0918DFED84230E9AA89063530204F096B6E18C29381CC9CE4BB391D6312AA804E84B9170E59272C4835BE92CE2AEE6D55F2AF72FC20B0DD71E5A81C39766E3BD54B78372F1C6A0B2CEE55AB09D33BEBC1119E3D8268D321CE675CA8233E6AEE598C7652298B0163435E06C2AA3DFB3477120710D5E7FF0DC0DA68D4644A24F66A8012FB193697 + +z: 8C2942B7207C2C59BD56FF9EE0B120B1DAD81B05602623623CBC7E0C20C9B709 +d: 20859B01DFC60B6109E0234F3CAC7A247D8386099D83D2D447E9A21AF9DE48BD +ek: 33C5396C96C17503A1F0D509FF56A842767B24B4C3D2C080D428090E61C88EFBC69D086B83E56F5F898D99EC04F588567B2077B0270BBA8263132C7690645D38AB584C9773AC35389B88C67E34424E003AE741521545039E1C3D2BEB4BD05674A700C150573E0781CE8EEC7D2AD17F2D214FFDA22BE21A55A9570488108B0A555C6D225A521045F6D002F1B330588049FA6BA2D79B552285542BFC3BF3BCCF76D922E7AB9039189A66B76D58D9C82443A32DD26A6B134DD3783EE3480018B04DE6D9561426287C9A8F35ABAFBFC9CFB69107AFD639E9C622A3DC19D0D19EF2C4394CB10E0F519E9C8A9A40F6C33754279ED5C1DF06B065B4760453A4CEE04C67E571565C82D5882211361B0D15C9C0F8A75892A2F1A79673CB31BFF12EA352A484E6CC82B44D1C7C20EFD72F112CA0C25450C672BC34C2B8ABB84C52FAB5B0C66FC2288C48957664ABC079296401C3A470D6BB0D6B231A591ADB1763EF1C522DC95DD4E47728E5BCCBC05A73D7C856309DFEA90E25B7A4ACB4705FD29715441565682620F992034A0DA861C51873212470BEAEA6096B737235CC2C94165723495D7EF43C6327AD9ED398EDF9BE0A29B83D595AC8C46A374B4F02C4B1820095E223092498503AB926B9302C948A439539ACF3C31E91B50190980BAE4411CC652D3108302BB1C4376975AB510D12642A3098BB7FA5B6C14354D6D490FB247FD9C1BF83D8C4DE9C7DC5D58780115D7E0005874BC813B40A6B6ABD1C802C9ABA01A9D893EAEC7EC3AB011EF44AC42154AE40066A72159A9015286C2115213921AC3182372236E7059D6A352626A6DC0C1F7A728FB35A34BCE2C7FBD0659CB6496CF57455E7034E979DF8F134AC398020F153D2624980625DB9AC24707ACE0D7490335561F8EB5CB0468F88DC934B4763846535701B3671C53D30038CBB2896426AA7460338266160173798E36C0C04FA70FF68A56F52A65379031F2565CCF30929A948A6C222D610BAEE964A32C2BB4AE389C7F85ECD0BB733BA1798BA347D142AEB482AE9200B9B4C589264B64A915B3158401B343AACB256D9E8CA942A9770AC4652066B4E16414C78152C3C1D123C2057EA4FD5A511CEA8B3CAB25B9F4258020144924878CED8ADBC9B4409F34DC1F87ACC4165A0F92A8EB364F469751CA87EF9B87B9674CAD2B8628966C7E7D6BEBDBB0B4E6CB51D017EDE9735CD3C3F12B83BF9651788ECCCB2D9B237A330B13B516BB40BD806974528AD133C8E68D839EFC852F3F04E960102E8A58B40615E3D53152C528291826216125907E352CFB53EAD5A33613AA78ED20F9CA3437FD3615980AC118963C8482AC806CE6237853EEC6FF62657A2B19EB6F8678722A06C2698FD15085ADA9222D211A86B4E1BF007EC5906704A69289A8E1F6C4F49A5CFDB90C13BE4771ED4641CB4987BDB80B09724F9A9982AA27AEBFB69D984A5CC04BD94D335500359095214616184993A37EB0422A263ACBE53A6DF5B316378C22E830E2A968661A840C09ACD6711507DA822FE9749DD4C522CD11CA2E57B225BC2C398BB05A975D7E72EAA2BBBCC6CBD88721CCC762049A44A70926778340F5FB7296BC33A8C010089011CB947C5B5E299D0DB66C9C89C5C3581222435C5EAF79EB6C152255ACF9BDFF03781400C9D599A905605 +dk: 7C63447D4668CBCB42035803A4C9350E38AF8EA8A6296658D7A545B40215A2E7C70AF7726D32CC4B7062509AB15F776E1FB812C22062ECE079492900F0B18DB3D66B4CB2B871766145E237C51023286700238537DE2187A5F45F7671027B88A7CD372A54621D52063705E1B4C07786360805E8CBAA60D9AE953708C201B70DB39DCFCC88FAA2C0FF855C30F31D9C7193616333AF72C382B92DFDE56F48E20689C2C61E940264027923980ED787CD98AAB8476C4C7511A9EC9C0B08D9523D61BECDA2054E1B01B90947AED40961C7A7FF6BBEF64156B243159E4B3D343363DBD58B2060505CB066A31C629084B9E658425BB28D84642B1E216BED180D688415C81C2BCA4A49354709F4ACBB16B8AAF8263329314818FA98FCB7139E673AE702706D3274E020BF469C651FD5A08E6086F36C6451D00ACD94CA59248FD35C91CCD856056439AF18580C066C34DCCEF1C9700DB7C8206384E25531BBAA39CB3760FB346FF8F77DE85461F7198E8C396AA8CAACB8A42C37B1879B80953C1257E82770F098C4896C76A506B8605742C58385DE754797833FD1E08D3E5B45AB828666F15608B6C81DC7166CCC678D1CCF3CE5967B57ADD583C1CCB089C02CCE05B15F810AB3A43335BB0041F0699302972E23A5C229A67578AC9D5B1061CE5B59E72B81EAE01E0740490D84AF88EB572810CEB18C17008308FC860C65B4C1B9065DF9E2C37DF9AD096C96AA0722B19106984A24804ACFB36A9925B5A32D2019E933C54579959FD536992327BE519CD03190CF9595DC5303D4A24AA7D604FCC7BEFEC4C244E7836F63A876073CB757A61B919973696BE0EC1CC15041ACDB2CD9077E15C66FDDC9343CA2A2ECCBCC3FD2319C842F0099969FFA5DB4EA416DD83DAD971197785A5C3173981700ACAC5232C626A5C52B7AF217BD45A555C4898231B256866098518CA1D379822CBEBA148412A664E5094D24D1B6D77BCA7FD176B88856659B9E8513A078A1BD07781FAF1A697A7778C2B8A4A8A0CA48FB0AD8A03E39F7753C742CCA3911B948167DCA397F935BBE0CCEB9D1AD173A8A64E318F9DCA501B031C745939DE94CDAD55722EB2F022495C063259268CF5193B486315083F3B43997C732BC9DA99324252CB503F409340B5A64E74C11733DF256ADB10631C3C002B4E46C340BB99AE3246E794ED09A5524A742DA01076A78B967BC9204F764EC61B528E97176F92F440252FC1838D187A8ECD821E996B5239A1A0F320B12F11CB5C446001D6D765CB11C4A2B24B41F23894A9945B27902A6433CC4BB5B9AE19637B5E1BCD52A29745693F5742970606A89DAB78CCCB61EEA78B0CA49D678C2477B036C48C3D2A514005459728669F8743A23A26865B04A3AE930B6E9C67148A5A2A3643DE2B837610402E6039319969CD928D39794E1311739C0780A393E076C2DC89038A10C1079275F765CCAA064436BF5052051476C1C3BD4167739E2CBE63545148350CAB4134825B2C5D27A68524BBD937957C40F1C00BC06D677E2D5527550876BD7CA3F036DC0B5625F3976BF63CDA2E9B2FD4BCBBAEB911A01B0D3716CE5369F18A285E4BCC6269B407D42A7BDBB88D724C5AA6188B9716BA3D3A3B962A933C5396C96C17503A1F0D509FF56A842767B24B4C3D2C080D428090E61C88EFBC69D086B83E56F5F898D99EC04F588567B2077B0270BBA8263132C7690645D38AB584C9773AC35389B88C67E34424E003AE741521545039E1C3D2BEB4BD05674A700C150573E0781CE8EEC7D2AD17F2D214FFDA22BE21A55A9570488108B0A555C6D225A521045F6D002F1B330588049FA6BA2D79B552285542BFC3BF3BCCF76D922E7AB9039189A66B76D58D9C82443A32DD26A6B134DD3783EE3480018B04DE6D9561426287C9A8F35ABAFBFC9CFB69107AFD639E9C622A3DC19D0D19EF2C4394CB10E0F519E9C8A9A40F6C33754279ED5C1DF06B065B4760453A4CEE04C67E571565C82D5882211361B0D15C9C0F8A75892A2F1A79673CB31BFF12EA352A484E6CC82B44D1C7C20EFD72F112CA0C25450C672BC34C2B8ABB84C52FAB5B0C66FC2288C48957664ABC079296401C3A470D6BB0D6B231A591ADB1763EF1C522DC95DD4E47728E5BCCBC05A73D7C856309DFEA90E25B7A4ACB4705FD29715441565682620F992034A0DA861C51873212470BEAEA6096B737235CC2C94165723495D7EF43C6327AD9ED398EDF9BE0A29B83D595AC8C46A374B4F02C4B1820095E223092498503AB926B9302C948A439539ACF3C31E91B50190980BAE4411CC652D3108302BB1C4376975AB510D12642A3098BB7FA5B6C14354D6D490FB247FD9C1BF83D8C4DE9C7DC5D58780115D7E0005874BC813B40A6B6ABD1C802C9ABA01A9D893EAEC7EC3AB011EF44AC42154AE40066A72159A9015286C2115213921AC3182372236E7059D6A352626A6DC0C1F7A728FB35A34BCE2C7FBD0659CB6496CF57455E7034E979DF8F134AC398020F153D2624980625DB9AC24707ACE0D7490335561F8EB5CB0468F88DC934B4763846535701B3671C53D30038CBB2896426AA7460338266160173798E36C0C04FA70FF68A56F52A65379031F2565CCF30929A948A6C222D610BAEE964A32C2BB4AE389C7F85ECD0BB733BA1798BA347D142AEB482AE9200B9B4C589264B64A915B3158401B343AACB256D9E8CA942A9770AC4652066B4E16414C78152C3C1D123C2057EA4FD5A511CEA8B3CAB25B9F4258020144924878CED8ADBC9B4409F34DC1F87ACC4165A0F92A8EB364F469751CA87EF9B87B9674CAD2B8628966C7E7D6BEBDBB0B4E6CB51D017EDE9735CD3C3F12B83BF9651788ECCCB2D9B237A330B13B516BB40BD806974528AD133C8E68D839EFC852F3F04E960102E8A58B40615E3D53152C528291826216125907E352CFB53EAD5A33613AA78ED20F9CA3437FD3615980AC118963C8482AC806CE6237853EEC6FF62657A2B19EB6F8678722A06C2698FD15085ADA9222D211A86B4E1BF007EC5906704A69289A8E1F6C4F49A5CFDB90C13BE4771ED4641CB4987BDB80B09724F9A9982AA27AEBFB69D984A5CC04BD94D335500359095214616184993A37EB0422A263ACBE53A6DF5B316378C22E830E2A968661A840C09ACD6711507DA822FE9749DD4C522CD11CA2E57B225BC2C398BB05A975D7E72EAA2BBBCC6CBD88721CCC762049A44A70926778340F5FB7296BC33A8C010089011CB947C5B5E299D0DB66C9C89C5C3581222435C5EAF79EB6C152255ACF9BDFF03781400C9D599A905605EAFE2B26CB96B97C22564B28329B64A206331FF842BFED4ADFE3C7A0C4A471BA8C2942B7207C2C59BD56FF9EE0B120B1DAD81B05602623623CBC7E0C20C9B709 + +z: EAE318341D06E0801C0CA4B873520C714740AD017FE5A158D3BD40960D907AB7 +d: 409E9F3AB58D736E122EFCC4240BF8388FDFDA6759004D42457018014A335BE4 +ek: E74A4568457E0C7727A53682E50CBF74082F01C9892F60B9DC57C79A82123703A8375C7EFBE299FC3352584CADA79726D8F039E7885508A897B9C54EE4478568168820DB7FFD82CBD0191FAB477199AC0FFF615475AA96E28980888B34A1E2C76115CDA09C2E1AF83FD7004DBD14AFA76773F755ACD40358A774045B09075703C2C08537C9E09727E23902CC453965CA74F9CDB865A02E228BE92850F078596F64841D093BC7BB9354E50FBFB31FD463762B800B88C6A691F22A815B46EDF848C174108DD7435F178B90690D5C8B0C430935C69C6A4451629958614CF00F5FCA7E88C08230E142C26C991F5782C1BB84A6C8750EE00348582F12365A761150B79489BEF53BE9BABB468A7F72F65B2D70068D5313D5011016CAA97C6961C554CE6419204AD28A7E5A7E807333DB1C759B6A546B087E9704B63A573752A0ABB7C702548CBF15100F3A6A807C016687C05058F76A42BAB1BE88C12FD574F4FBC051DA21234806FC279D122A4DD879175DC24E20570B435A14FAB908CFA5AA91A009164530417655799C0B379A10E7592EECA96F7AA84F9D718B95F595BF5887F2135D2BB106D599AAB77C5DFD5B4733506450923815F451EAEA6DA2FB0EF3C7AE6EB12543F8429B7B1BA00C5B05585964D334741AAAB7B2C787778709D2CBD9D1C42A061398939869FC0B21C37FA1A146965066C50889C5798B3EAACC0B5C6D7721CEDEC86BDF67A17BA37666A4226BE80EFEDC5262373117777B6995262F795735872B5CD4B52A59677B3ABFA302BA89E61DF76866CBF5C8F97C2620258570735C9B70265CB9AC98445416A6A1AA8252F89667EFE277C968101C58ABEC009902497D932C0D33F52C69221F96EB589E231877837491757BF2B05BE03C909AF3B780B8088F75610A02C45CE28097AAB34FE19CF364A865D77A9D402501C843684C1F7825C20BA3ABAF711172024FE6CB6F58591E4EEC4E40CC0CA891725927C56A55CAF5B1CC61F510ACCAA54371085FC9B03C169293E16FE74735648B4E752847CEF130A3FC031BE4C04EEC8614A7749FB7B41C2C69D2D23D73F205575655BD6A0F3FE19CF333A0F28A9BFE69B0DA112771EB2BBC30586AB0BC0176A400345986104F0832CE81A60E198B3180840A8BC528B0960CD2F26564D3797BE64DFD602BEAD0C94E1904773BCCD0162F0A17B3B4868B5CF57FCAD264E3F339C6E240C2861C6B6A0429616D88F5B41E991491652852441817033DD8F95A4B7C40EC5A74781A761D8ABEDA618D53D2CD86989AFCC54E5ED2CE26F8244E0247052364B0A11F42DC14B6B8A72ECC76754208560A479C2C104941404E22C800B0BB52E26449238235F113A23C4E46AAA4E54B6B7CD2A3802A2EBC3799B9556FB0164500C14CEC67BD36C31971291EE891134B9CB3E2DC01EF15143AC04EA1F41D9084B7B2EB91F96B7C9A97774A044E037285C820601E424F761BCCC712172B774FFB900EFF1158D6EBBE13775F27720FADB93CD98111E4E2788D86C0151B1458344025580C509738E490874B773849308B8D36C649373F9147781D58C31938B923218BC2E85F4C9B1233BCAE99D35C67DB3A85647801260409E6CF45924E4DA141B6C3A65B857A3D3DD5F476EF377E54214616593BC8CD4D05915F4F4FB9A98223663407787254 +dk: 0D1B18A4D52F6BB6367CB50F0005BC6D9CC52E0872E86AB6B0B9132BA90A309B524E7B3EF93B696D9149CC17BF57A1A1F8371004127AA97A79E4B55CCD079470B04FF38833BBD732FE937B4877C3D643B5E489AC312271A2F9AE7B665FEB0AB13829696EF532F43CA2A848BE9787A873A4646CE5CABA271D82CBAEEFF095F153C7DD66C4484384D44663B1E75CCA0B479DEC62D7CCC97C5495D5CB3A1FA0C6DF6309A4E1B443051B00135166D77433C30B17A68B1723B83129B72BB28C61BC561FC25EEBB53E5E98C86B3B3D852B60D75402D636470E0171FC44716CCC4B9931178FD17B80A4895431492BBB1C98317E45C03D787A30A7C6530B814207C64CA1807D92530BF1EBB232460B68D52021A03A0C603AB6497F16267640316A8E5712DBAC68F3E1528A5B1E37D00856A32083E51958A265532B51DBEB02EB7820430C2974716582E92542E29255863DF251419777142691384C876263A544CE03039710B5A407B8BD7428307A739BA4B84E762C643A383B7A3CF266A1B6C7043D040B0A475B2A6402DDE1AAC192321D910553E2CC8A18CDB9D9B27C5CA0AD272F3145120A266C443A484E829DF079C98DA9CD25F4AA20B29F12A79BE03C7E86F4C3EE277C050831D8135DE1C3227627A732C1C337D047524BB0EB487EF75CA0365520C3E67324C5B2AF45A768D3986A395BFC7A65E673AA41057C8F698436C35D655A9D9FB54F441C1BF54A57E73B335D7B40EC992B4AEC0978267CA30387618C76BDB843A5461578C6938BEAAA0F8719E18469D7F76EA6FC5D73C59399689C1BAA8BA4812111EBBA47CAAD17D050B1E506247050FB62C530D0A1BCEB6D1C45C1DF048F0B14511A709D91F62BA10B4FB42591596456E2B4271FE817914B54DA4181ED7A9BCCC84DDF6614716AA561D99267DC1F8D596AF769482DE440F32B72A7B60DCB0035E94588C02CA9E8628D4A4B071007703E67AC0D87B2CD21B4502782A8BA6E201B6497C80A103003EC360374915E57154771C59ED6CA2FF272393DDC9449038B96B77E0E6C50EFCC7837996EBB3B4F1CD0079C474D9B2172E4947F2ADB7BB947090539AA43B48079133FCCBB92ED878ED76364F31CC094B68FDC371FA8DA78931C326F26961BB20F0DE742039A547C6C79B84B93CBC238C2252AFD504EDFDC14E9FCBF8051A43C75CC28897AD318CFFBE4B70A01373B324B4C732DAF4BA2F3019B5722ABB9D452AE092B89A5CCF7E8776C3222F03C50643B3FC3F8937D437DB19A10EB771FB755CD4939B73A24CFCD01BF6879A5905125C2EBC4903B8F3E91906ED479BA8B83DBC1A21BD6A8222A717FB6398AF89312170362D0486E0969F8E9A417B0C7C7069D8A41A8D9D3C3BEC2847ABC722D3851605C8671C23E0E82A96C1B1AC82C3A1DD758A0D63394F26F20BB6A6669883A87A1AB73AF02549F032A6C51E803DDB131EC47524DA9A283C39EE79AAFC78C569B07B403A89A5AFCAC7EB4400A6A8E6397B3BD49318AA5C37E13757B7145DCEC210C92AFC0186902FA74A604B7DE321488B357A8D9904913335E5A7CBE838E43309DE6C90264803F32338F92B6BAF7D89A112554F23C4A64FAA671D24201C61D8DA67D83AB37E25982E74A4568457E0C7727A53682E50CBF74082F01C9892F60B9DC57C79A82123703A8375C7EFBE299FC3352584CADA79726D8F039E7885508A897B9C54EE4478568168820DB7FFD82CBD0191FAB477199AC0FFF615475AA96E28980888B34A1E2C76115CDA09C2E1AF83FD7004DBD14AFA76773F755ACD40358A774045B09075703C2C08537C9E09727E23902CC453965CA74F9CDB865A02E228BE92850F078596F64841D093BC7BB9354E50FBFB31FD463762B800B88C6A691F22A815B46EDF848C174108DD7435F178B90690D5C8B0C430935C69C6A4451629958614CF00F5FCA7E88C08230E142C26C991F5782C1BB84A6C8750EE00348582F12365A761150B79489BEF53BE9BABB468A7F72F65B2D70068D5313D5011016CAA97C6961C554CE6419204AD28A7E5A7E807333DB1C759B6A546B087E9704B63A573752A0ABB7C702548CBF15100F3A6A807C016687C05058F76A42BAB1BE88C12FD574F4FBC051DA21234806FC279D122A4DD879175DC24E20570B435A14FAB908CFA5AA91A009164530417655799C0B379A10E7592EECA96F7AA84F9D718B95F595BF5887F2135D2BB106D599AAB77C5DFD5B4733506450923815F451EAEA6DA2FB0EF3C7AE6EB12543F8429B7B1BA00C5B05585964D334741AAAB7B2C787778709D2CBD9D1C42A061398939869FC0B21C37FA1A146965066C50889C5798B3EAACC0B5C6D7721CEDEC86BDF67A17BA37666A4226BE80EFEDC5262373117777B6995262F795735872B5CD4B52A59677B3ABFA302BA89E61DF76866CBF5C8F97C2620258570735C9B70265CB9AC98445416A6A1AA8252F89667EFE277C968101C58ABEC009902497D932C0D33F52C69221F96EB589E231877837491757BF2B05BE03C909AF3B780B8088F75610A02C45CE28097AAB34FE19CF364A865D77A9D402501C843684C1F7825C20BA3ABAF711172024FE6CB6F58591E4EEC4E40CC0CA891725927C56A55CAF5B1CC61F510ACCAA54371085FC9B03C169293E16FE74735648B4E752847CEF130A3FC031BE4C04EEC8614A7749FB7B41C2C69D2D23D73F205575655BD6A0F3FE19CF333A0F28A9BFE69B0DA112771EB2BBC30586AB0BC0176A400345986104F0832CE81A60E198B3180840A8BC528B0960CD2F26564D3797BE64DFD602BEAD0C94E1904773BCCD0162F0A17B3B4868B5CF57FCAD264E3F339C6E240C2861C6B6A0429616D88F5B41E991491652852441817033DD8F95A4B7C40EC5A74781A761D8ABEDA618D53D2CD86989AFCC54E5ED2CE26F8244E0247052364B0A11F42DC14B6B8A72ECC76754208560A479C2C104941404E22C800B0BB52E26449238235F113A23C4E46AAA4E54B6B7CD2A3802A2EBC3799B9556FB0164500C14CEC67BD36C31971291EE891134B9CB3E2DC01EF15143AC04EA1F41D9084B7B2EB91F96B7C9A97774A044E037285C820601E424F761BCCC712172B774FFB900EFF1158D6EBBE13775F27720FADB93CD98111E4E2788D86C0151B1458344025580C509738E490874B773849308B8D36C649373F9147781D58C31938B923218BC2E85F4C9B1233BCAE99D35C67DB3A85647801260409E6CF45924E4DA141B6C3A65B857A3D3DD5F476EF377E54214616593BC8CD4D05915F4F4FB9A982236634077872549E2FE7DD646C145484E163D6C36DC6EA5D802A0EEE6ADAC932C20FDAABB8BDD1EAE318341D06E0801C0CA4B873520C714740AD017FE5A158D3BD40960D907AB7 + +z: EF38264520685080F52975BC957C5FB609FB0E1BD06D26F572CC5425CAE7DE5C +d: CE2CACEBD54AF1B4E71588DE9F22A6AF2C2E2AD7FD66B9FEC0DF19182E7F57EC +ek: 3F476A07BA0E59113595E59410B41C61CC5D509895725A7010E20C83CA906EA13C1C58A604F3A2590727D3538ADB2754B879A3F2640C929388DF38A559108A5519B221E3A2DA515EC34B7CDFD704A04C18DB604CCDB2705CF273EFD4B464D4A3A9773FBBD82840C002D8529BE9377009F4558BC747AD33BE9DB2C290EBBE06972544A827BAC51C131684FA3C0111360F59C72E5D1660269672389748E2B8546E648DA50BB8243B832C150ABC1277B4F7A350028EBEA582202917B8247E4A054C84D31B7BC97837C5117D796655A098C1D26BCD6C506DA164F362CD3B231C089371E711890B795B2DB0C5E916A3A169060969001BD88AF165021FBC9B1D649F9A740CC48AA2EE0348D46394C48A776C040D18D867F3506962E4B619C21DB56C9B3042ABD1B78BA814064979C643E6CEB8025B4289BC1716C6E07873B52C545A9488102200E2877C24806E15F790FF15C9677882EAC857C620297B9B9155044D9C26626F6B97FF8491C0FA33742C785DFB3D401BC0B8C50D17D857A13C4918BAB9BDF5BC8695AE1C581334559E4F83B076CA492DE0A9D97409DD676B051C7C97E9655E2BCFC0E88DDB85480F1A5FE60C7E5A002BD33B0F13F7B4897A9B2D3B140468B9114BA041D952B08B340D2B3B970BA44738BDDD3CCFB3039F7C04C0264875C9B0B5B05115C4749B29DB6BD801328DF89307307F6689A43F72C83940B3C7D72BA35B812C660DF39A329867A9727119BD9A379C6C39522B669B461F7C6A5383C23289B4C065862DFD430E7D9B4385401CD870228EE1828C9660F1CC2F9DB63E5318A97FA8AD4B693505B859C5FA86816473080C4AE6C297767A210D355A4DE59AF60844227781BF7B3B09C624C8587B0C2A200BA1196F5C84B99630A03B07C86A1BA50C002E523C8DC498BB89A4DE17CC8BD2A1DE3250E282961C956C6B197904C1269080280E2CC636112CCFE88195536E52D84AC33332C7612A4FDAB8BBFBADA5149E05F1CCBF28C706E5B037F65C7EA47EF5E1792F90B7BA4C01EA027D54AC44C60373EC931BB5E5772AEC45581C613D1497D227C0F65470C05187FF214593B44EE8CB18BFF8195365BC56B3608AD6B228E755D8F52449E7A15E81A26E372E1DC19DED021088B8A2247A33E0C1857C22CAC798575A7ACDBB09B4A018084293CB2E766CB2A8C5D1845B0B878F74BCC41667AD93137B66F352453051EC360559402CED1A1A73EB9D45A97589E05A5C991082F3498D1A75708A3FE582B0EE3B95785C73F7679B374095E1EB47567C41E630A971D60C7A6B9A02C372A9A56B0206144DA6556EF37DACF9002CDCA7A3DAB5319259E06B7F5473643E975BB93B079A451C5AA87CC0B8ABCEE48BC1448482F9769BB27EBCE597214AA73CF8734B9C6C3E79A53FD83F120C642A690C8220008D834DDCB99DF152C8456C817E106717B5CAF96262F2CB3D33892B1506C18D25B065C0CA1017BA4D466D0AC849A112C42E218C7978A14F362BCAEBCA9A5602F1C96AAD325C9BDCB6420B76926157C02A4CAA659134908EB024CC88387FF64317354B87D7383A7317643D71713DA3B25F3B939B060B6BA0CE5838697BDA102310AC67A1080B0C11C4FBB44701CAF7A360730F6EDECDE8635ABC55FAD14FF51E2A271F7D44190ED0D0BA95131BE7DAB95F +dk: 9F487527A4789D287401760DE02688DE23B049C0BB20DC05AC651478A591D4178C7E25CC578832B05B1E136BCFB28157AC8A4D75BBAE195CA628028C2BF806EFC1A132D93F40850D64445BC892CE03159E1376A1701C171AB6B18F437184C671158CAF77A9BA9B1B63EB4422011C7E0E602273D94C42820666E18313C61844C403F7127C6E47B17A41C7970CAE2BD78E8BBB353451269C13628C605295AB52F263C655831AE338B1B71AA25C195FB1096E0573CC7AEBBDE9E7751B22A74726354E88322F1BC2FDF03E65342F06C6359B672E679C25FBA03840FC53F147B9A778AE421506C09AB17242CE41735E2168044EF95EC4C4410AA284B79B5B9354C419B5A9663A7C3DFC155BC57A04AB22E7578059994D33D8C76C578C7A98B5B7351D5850BC48820A199B3411350C7DF650B9D1A3E8EA2A0C32A9E88030D4AC3C22078D4950CBBBDA707800293F487D023C6476223FA5DB85E229BEFC13B6B98561EA80C30C8BCD3A48994D255AB6A134AE25A40D4B719BE2BD4FB050C477CA417406FE9A3197495CAC610D6E861CC5A6CFF7BBB8BF84B71701CE6BEB77F273505559752A6B96133A5776B784343797DF2C024C41A9E05ABC38688ED303C5A0553232D2721A13152E9A0154152BD561AA7C1991887912DD79235A8B6E04AA18C1A903280417E42B07DCC0310067BC40633FE441082BF78FE4859D8892A973B78C4F9623EF88C05901AB6C1A039C494CCC4B542474C4B369386842726F13C62E72339A37B472B538FC881711CBBC32A88D72FC93C0E2A8362C7AD8D236C2EA6724616040D799440228EAF306B655754DF78FE941315D419342B426CB273FC4604245459367F30A6A071C4C73718ED1019B1BAA65F273D665CFE79A8967A60367F470BC74C7881A516487BB1A4B4FC38AC6CC21CFEE071CB67119D54A8C077BCBA3E3103EF8724CBA5406519122EB9884F645E7248FA64489FD9763459275BD80787681433C1219C5B31DE587487FD10112274C196A4AAC7794F28A0DE98A8852F37E96A0C0FBCB5CA3B8A33678C71E469B0BE1B7D134100D8A4DA009503F800A56714D06D6BF5ED7A1D1AC8ABA3B458FDB6DAFC28EDE9CC7744A7B3353CD36569A7DF2CC0A4726E5B8AA01093A9B7994B9473E12F346B992C718E825E8F1B05404433B20AE2B464CAC95BD0833C313D96BA607C09998929776A5DEB17D259B4D14E6C1616914B07CBEE1000D11BAA276F64663F23D5CE670C01AB6BBBC9A5BEAA07994099250A54BE9A164EC67174B8C83E7115A72756164491D233A0B38239A90ABD7DB1DD0EBAC93327574DA1B242B4B98B794B8B77E5C9B684F618111EC8A259279A867066B43C4D4540C92FC5E764276A1DA8AFA378F3287C7EDA09A8FD41A8495566E5B1C8C4260EF96B123160221308E97E23F7D6B281EF94F5315CE86F8768FA2270E8953F1851E20A790F0F60ECB03AA414600B7575109FC1632FAA73E173987FBC2EB3BC94B7BB2BEA78ECA17AAA9416CD2905845DC699236517F3A45B06975EC19544C4792E9248C1FC59709C460E907031F831326867FBBE55CB32627822187D93740C2DA9AAA8606FE5979D340B97707144BD437C70C768D292CDA79C23F476A07BA0E59113595E59410B41C61CC5D509895725A7010E20C83CA906EA13C1C58A604F3A2590727D3538ADB2754B879A3F2640C929388DF38A559108A5519B221E3A2DA515EC34B7CDFD704A04C18DB604CCDB2705CF273EFD4B464D4A3A9773FBBD82840C002D8529BE9377009F4558BC747AD33BE9DB2C290EBBE06972544A827BAC51C131684FA3C0111360F59C72E5D1660269672389748E2B8546E648DA50BB8243B832C150ABC1277B4F7A350028EBEA582202917B8247E4A054C84D31B7BC97837C5117D796655A098C1D26BCD6C506DA164F362CD3B231C089371E711890B795B2DB0C5E916A3A169060969001BD88AF165021FBC9B1D649F9A740CC48AA2EE0348D46394C48A776C040D18D867F3506962E4B619C21DB56C9B3042ABD1B78BA814064979C643E6CEB8025B4289BC1716C6E07873B52C545A9488102200E2877C24806E15F790FF15C9677882EAC857C620297B9B9155044D9C26626F6B97FF8491C0FA33742C785DFB3D401BC0B8C50D17D857A13C4918BAB9BDF5BC8695AE1C581334559E4F83B076CA492DE0A9D97409DD676B051C7C97E9655E2BCFC0E88DDB85480F1A5FE60C7E5A002BD33B0F13F7B4897A9B2D3B140468B9114BA041D952B08B340D2B3B970BA44738BDDD3CCFB3039F7C04C0264875C9B0B5B05115C4749B29DB6BD801328DF89307307F6689A43F72C83940B3C7D72BA35B812C660DF39A329867A9727119BD9A379C6C39522B669B461F7C6A5383C23289B4C065862DFD430E7D9B4385401CD870228EE1828C9660F1CC2F9DB63E5318A97FA8AD4B693505B859C5FA86816473080C4AE6C297767A210D355A4DE59AF60844227781BF7B3B09C624C8587B0C2A200BA1196F5C84B99630A03B07C86A1BA50C002E523C8DC498BB89A4DE17CC8BD2A1DE3250E282961C956C6B197904C1269080280E2CC636112CCFE88195536E52D84AC33332C7612A4FDAB8BBFBADA5149E05F1CCBF28C706E5B037F65C7EA47EF5E1792F90B7BA4C01EA027D54AC44C60373EC931BB5E5772AEC45581C613D1497D227C0F65470C05187FF214593B44EE8CB18BFF8195365BC56B3608AD6B228E755D8F52449E7A15E81A26E372E1DC19DED021088B8A2247A33E0C1857C22CAC798575A7ACDBB09B4A018084293CB2E766CB2A8C5D1845B0B878F74BCC41667AD93137B66F352453051EC360559402CED1A1A73EB9D45A97589E05A5C991082F3498D1A75708A3FE582B0EE3B95785C73F7679B374095E1EB47567C41E630A971D60C7A6B9A02C372A9A56B0206144DA6556EF37DACF9002CDCA7A3DAB5319259E06B7F5473643E975BB93B079A451C5AA87CC0B8ABCEE48BC1448482F9769BB27EBCE597214AA73CF8734B9C6C3E79A53FD83F120C642A690C8220008D834DDCB99DF152C8456C817E106717B5CAF96262F2CB3D33892B1506C18D25B065C0CA1017BA4D466D0AC849A112C42E218C7978A14F362BCAEBCA9A5602F1C96AAD325C9BDCB6420B76926157C02A4CAA659134908EB024CC88387FF64317354B87D7383A7317643D71713DA3B25F3B939B060B6BA0CE5838697BDA102310AC67A1080B0C11C4FBB44701CAF7A360730F6EDECDE8635ABC55FAD14FF51E2A271F7D44190ED0D0BA95131BE7DAB95FA5A66716D011EEDF9E6A541F9438F8309660657EAFFCDB01A172998E56D9A60BEF38264520685080F52975BC957C5FB609FB0E1BD06D26F572CC5425CAE7DE5C + +z: 17E5AE70771674BE8903CC21B3A90248D993C261B6CEEF2C747873D113869B55 +d: 7E03015C5D55FD9888E730C1E60F90C5F6C2E3B1E8C7C08D869F0C1D15B540ED +ek: BE62BD6BECB1FBA42DCEB479C8B8AF9D740F272661045437E6D0C13BE05D87821365509758B075C7D15A421876CF83C9BA1458F3C2B85002238DA64ADCD77FE7F1B33F3798B6C87609708DDD1C4F41AB9781A3BEAE2910D3D0A2496927C4907139CBA8D5B791FEDA3CD472538D9AC0FB9895DF079AF86B439096783D2BC6E967C211B3969B876CC0322E59C80A761495F50567276349EA736A43E5BAF638971C355FA4D3621FC60BEF5408067B5968E56DB7F2A2438233EED3AB2792443618A535389E3E7A3A1C061A8AC72423508C2747CBA968B7220911D0324522CAAFBBA85B5D1A830FBB0FA20CCF10F78656B512B34B28815C23DF718AD044937BD73198798858E41FE5AC16EEF5AC6E234DE5D7AA5AF49ED0BBCFA35843C7753613988707C2025F8654A9C8A37B4320BFD243BF8B1143B2644A715910C46DA9C88AB8F033EA233DAF3660F8630ECE308DE44B4699D6CEAF275065BA4DCA584026D261F753CCD0A860F705201B64B32F159C86558E633312DB15C2C3164889F49F181435A1877760C50206816F3502CDC3229107F92355467ECA127B51912EFBC911C5591DEBECA2AA6015274382BA5734F64B08E1160A4CDCA78CF722A1A31A590B5E90185AF809CD39A56A0D945BCDF0769E923C45E52DE4B45E2E22093E856FAD9B9C00641970B31BC0481D91884782D08979AA02484CAA2957CC6CCC4434EB5C814973B7E3A284DBAB2EC068A5DC047336CAD2990D37231604C584E05C689E30CDCD7668BC764E3D96184E7C45D6D988AA9B03CD3275747B2E1F0C68CB76326F263EBB910366D6C4A94A8252F6BA0F5269531188811A7286D6A2AFA3158F8243B7695805B8BDA1322B1A30049C684C6DCB574C20A9574BA78677B1135135ACF200A22749115C7E1BFB6A1614A7BCF612562A3CF6702742F586B6F55169C5AE1D14621074034C109518C86EBF191881D4B692E4027BC9C195E20F54A36B8387845F47BF23482359D90BAAC0B24E091D6937AF4049A043529EB884189D2B6FD4B05473E3696512910E9189C1508DF56450BFCBB6E97747AFA545C64B346CCB04B6F30733A1071BB84DF18A2A762460F8E6A1D9F0AC2840474FB61FE7087818F6A53E7CC799B0508CE97D06987E24BCB4E4B559161C5F1AA628D68B129CD178CE6069236C863AF8A2480C149EE5754AC04719E01D86855201554F922167B623236B417FAC5948D182B12E8210FBE23FFFEB81AF88532F0193FD61BD82D59FE646209D39AD75831EDC605AA6485CE90023DA218CBB19AD8FA858E7A661D85A3ECD136809E70B25F166339C307C350E4D5303AC844257872A2845A7F6CAB996918AFEC669C9A19D43F72A5862BEEA66AAB0D708C59C260DF09EC0BC2A265A311309CCD2ECCA4FEABD6176633863A71D75B0E7957266584D000A6824D467EC50421AA1369193B418072815562928D35C16227D22C821A8552ACD83A513AB683CC39D12537DC4456E1476C4ED9B4014C42A7BA6A78C9B72F3437228A918BCC6C13FCA16BD04C7B2B277AA4C2B903517FB8397598554C9C8885380B4199450A46635E7B4B338075E15DA4A3630862CDC2B811578626C5BBE0B73C0F375376708B4D8654560782F3D56064B96E318E3FAF0D63CBD17F9966EE839107DD8D6530A49F344E194B7 +dk: 4CFB54B237989DB51A1AA97F36A3B2F4337F46AA0D2C05BB1D043A5513CE6FE84A98D62251360EC740221D1B7BE04098FC37A4AD633E95332075394E1C09AF426C146BF34290F50F318B48076653E9E66E972734CC9422750202995305827736D1F03464F37F8E468886CC8ECCD74F14706AD940B1CA73257451898ADB1476D0C813A0B06648A1DBC3150DC742D4B4CAA8EC12770974F87020B80BA9AA5274E4C63B747051AEEB5A1CF310EBEA23F17035DE2B4D51C226766ABD33F9443AFB1B21563C70E431E4D579E1AB26E5F6A2792A8ECF158C53C737F0582CCF50320FF65E634B26D3F9438E94981927ABBE2899DEF3055DC8AF679569A7AAA9FA4152697454D6DC04E2B5B2A9850AD75A1B9E060F11D817152C043500CE8391C0438BA1670B19D8333881647F5ACB813CAC66AE2065A603457EF3535B7338F32759E95923C4EC84D2248A66802D92A01EFA16CA74619C771048C1111ACF6BCD1508C667CA8C471409FA9C37F4A4AE23D505B9291511C1AD7996488CF7C611B7B3CA3855CB293BDDB19B7A1614017B1953BA7A218C50236A2F7D1B3B39BA1399D251D4D6394BDC244AA9C6A6A29FE0502E9563BEEEFA6066D5A9E52000BE59CB2D246E8A559A3B7B4B2E956BE12C2A6EB4C7156324BFA17EA8DB75A844234545147AB0AF65005D7E2470D71453224399F6C51A970973CCD3339C270A5615528FF1968811C652BA8A991C13FDFCCA4CC661F7895F54BBCC07E95E6AA6178BF56FF496C1F3576A42529A69E713A44A2C9F5B7445F794996C7F944325B34574FF364357910863D99060544606A619515B7103B76E2E4869300750D4766834750FC7867A0D98470AA502193131FC7C001B49A102AA135C7224E937973CB02BA1118520833892327428FA88BDE81E3A19BB030C6EA7E6BA69B7A82F6B20F19CAA2D20507ED3C2BB0A4BF814263D17324814017F7012EFF6886257615AE2B896B045231455235C09F706235A628FDD27685C6491EC91A1C8803BC6820C9788AE919C466F836C8CF50512D149F47322398226F7B791E568BC3B6C3E52B021AF3976E9562F582734796977890AA62DE021C0431527C7C15F4AAFCA3AC6B5B61DBED8652644523029495E268890F36E145C2060B84E2C110DDC0018F2678F99726E4A981D258C14BA453E73858492E786E5B96F6C31687E702D95110A68A77E7847C9B53C181E34434C2A51FEB36DDA926F60556202371A52A04391E662A26289A80774273BC8477968D76717BBAC9D5028965C9A9D537005C6A3CADB62206E5B2E7DFA877411C6DFDB1337FC6DFBD28BE42B774746C625D41D7ABA2D29E21ED3E13D1BF5AE3A12BB25650B480C309079CFC2E1C2114B6618E9BCC0B73D5E4202C992CB375B3A8DE0A35985C235B314DDAB4C4B888B216C761224780F885241F0C1F62837B247B06B719FA4AB85E9B63A52A947972C0678DA85B2298E81414AC5B42D41E04171438A25B56AB30C61DEEA1328562079131A52805C63DA0B8A6C324D56BA6F351B6D91041772A227B17384131A30BBCB9367319721C48743C7A9786252749082623780E4828601AB15BC08A9E103C5170181B0240EB4C00B7B085ACA634626B4069703BE62BD6BECB1FBA42DCEB479C8B8AF9D740F272661045437E6D0C13BE05D87821365509758B075C7D15A421876CF83C9BA1458F3C2B85002238DA64ADCD77FE7F1B33F3798B6C87609708DDD1C4F41AB9781A3BEAE2910D3D0A2496927C4907139CBA8D5B791FEDA3CD472538D9AC0FB9895DF079AF86B439096783D2BC6E967C211B3969B876CC0322E59C80A761495F50567276349EA736A43E5BAF638971C355FA4D3621FC60BEF5408067B5968E56DB7F2A2438233EED3AB2792443618A535389E3E7A3A1C061A8AC72423508C2747CBA968B7220911D0324522CAAFBBA85B5D1A830FBB0FA20CCF10F78656B512B34B28815C23DF718AD044937BD73198798858E41FE5AC16EEF5AC6E234DE5D7AA5AF49ED0BBCFA35843C7753613988707C2025F8654A9C8A37B4320BFD243BF8B1143B2644A715910C46DA9C88AB8F033EA233DAF3660F8630ECE308DE44B4699D6CEAF275065BA4DCA584026D261F753CCD0A860F705201B64B32F159C86558E633312DB15C2C3164889F49F181435A1877760C50206816F3502CDC3229107F92355467ECA127B51912EFBC911C5591DEBECA2AA6015274382BA5734F64B08E1160A4CDCA78CF722A1A31A590B5E90185AF809CD39A56A0D945BCDF0769E923C45E52DE4B45E2E22093E856FAD9B9C00641970B31BC0481D91884782D08979AA02484CAA2957CC6CCC4434EB5C814973B7E3A284DBAB2EC068A5DC047336CAD2990D37231604C584E05C689E30CDCD7668BC764E3D96184E7C45D6D988AA9B03CD3275747B2E1F0C68CB76326F263EBB910366D6C4A94A8252F6BA0F5269531188811A7286D6A2AFA3158F8243B7695805B8BDA1322B1A30049C684C6DCB574C20A9574BA78677B1135135ACF200A22749115C7E1BFB6A1614A7BCF612562A3CF6702742F586B6F55169C5AE1D14621074034C109518C86EBF191881D4B692E4027BC9C195E20F54A36B8387845F47BF23482359D90BAAC0B24E091D6937AF4049A043529EB884189D2B6FD4B05473E3696512910E9189C1508DF56450BFCBB6E97747AFA545C64B346CCB04B6F30733A1071BB84DF18A2A762460F8E6A1D9F0AC2840474FB61FE7087818F6A53E7CC799B0508CE97D06987E24BCB4E4B559161C5F1AA628D68B129CD178CE6069236C863AF8A2480C149EE5754AC04719E01D86855201554F922167B623236B417FAC5948D182B12E8210FBE23FFFEB81AF88532F0193FD61BD82D59FE646209D39AD75831EDC605AA6485CE90023DA218CBB19AD8FA858E7A661D85A3ECD136809E70B25F166339C307C350E4D5303AC844257872A2845A7F6CAB996918AFEC669C9A19D43F72A5862BEEA66AAB0D708C59C260DF09EC0BC2A265A311309CCD2ECCA4FEABD6176633863A71D75B0E7957266584D000A6824D467EC50421AA1369193B418072815562928D35C16227D22C821A8552ACD83A513AB683CC39D12537DC4456E1476C4ED9B4014C42A7BA6A78C9B72F3437228A918BCC6C13FCA16BD04C7B2B277AA4C2B903517FB8397598554C9C8885380B4199450A46635E7B4B338075E15DA4A3630862CDC2B811578626C5BBE0B73C0F375376708B4D8654560782F3D56064B96E318E3FAF0D63CBD17F9966EE839107DD8D6530A49F344E194B76A22A9BE6B0A57E59B2F2194C4AF45A76286DAB2B0E0FE8DD37AF72ED021ACA617E5AE70771674BE8903CC21B3A90248D993C261B6CEEF2C747873D113869B55 + +z: BF83E3048B021F22DB57076A885729F95119CE63FAF51A69954BCCC51E014686 +d: 8590BFC9A6FC25EE7E6DAB4870DBF4B51A1F141B7C9E96230C0403E799BC68E0 +ek: 1CD8880468590163A4B0692D9569089E24873F9A5738826AA8A326B3D013C0F0C65B41CD81A42290F628F174006E08C3CDF9B012050C2FB083F97A7770F8A3B120972676C6944B06320A56605409E33535ECBC1B1EE6201A457309102D845CC631450C2D802FD62A793AFA82C0C9BAFFB22F8FEAC2B9680DA32A51AC1C75F7E3899FA01471F9668DEC6CD765221E765D7C714D46085CF9B9B6FCC2891EF16E246489CE87B9028A5DEC713B84594847A4554AB4A39985213D009C617C0524217AA1A51DABC9CBF689B66325517726CA3E955F742126F13B72CE936EE1CA2D913B785B4704F975C221437C6A890E354810E27B57689A8564DB22783B3D46488F8646B50C366BE75566EDC0422C2784B7A33D10588BD83A89A07519B754C1EFE901FA9001C0B120A70C0BDC8CC5342C8D20281B8A7A24FF4240FF6990BFAA3197CAA594F63EE4C75B3014AF834BC4FB8249604855597B5ACEF45304D75C035981A8A7267FB04867E9C28EDB8BA6C64BC6B70B218CC738B097FD6527915018EBF712E7044BC7B50CB9151395814278089E9A003965B4AAAE46A19E5791331876B985BF23DA8BE19CC4EF857C98C91084C1CF0441A1B212580E271FEED51C98D88D4003B909B42627860E5B788F99521CB3953371F1686A437A2F3055F8D05B7FB01BA29886DD28A7269A99DF979DD80BCA5D399AC18A919985C643D68910F9C0C5923CC3A30C25E8B9F71935503513AC28A520D194CFA7129BD2A08CE76491B886B7531ED100700EA011D09319EB66B8B44A0C09913A0E40A2B1166DF676C205E648872386A221B45A428B9BDB0C8281032D52C22028BDCC96AC2CA6470F407F98D479ADE32B1D202F1F1141C3E6453084B551554989E00BFC2A44E7F5ABC8530FC174B6FA30B3F26B5A467A39322612B1C9C3CE01CFC540CEF912058FBACCEDD8BED38AAB401B88EE7058195CBCB7D8405CB71DC5B44EA19B34C9D1652E7192D50A03136BB87CB207C9DA8ADD47AD870A3AD5DA51B5E8874F71560C5490AD7137522823B167166E89BFCDD3492AB836ABC952A5E957E7A0CA963A2C697AC1F42664D7379E6AB2361D657D47CB34236B70F9658E71FA7CB2D51BABD2C67187022380335D9014176BC52878C1CB721CFA6B63FB92C55A9A53EA635C7522A93DF572DF5B01E4C4931DD47ECC73514EB5A6085206B79209A712C60BA4B338254411D08DC7C289E00C0C3F230406B47CCF4183D97005A0687F6BA6B7A02A4E9E781C99C28DBA8A32DE80AF53075CACE4629F03872F3606228335424A1311BB58BA3309D4087F839960DC3CC63D83832F0768BD13BA41EC2ECFB03D882799D10653A4F6BAEF00709169346FB83232F9685E309E36B23DF53AC8D0996FAF14440641AD59E3991054678596849FA44436454BD535A2692922A3C57BFFDBAFE0913240EAA29646A8B5E7461C269F58F92680401B70A82529634325D128AD23A452EC9A5E52A622A524F3205B6E9130BAC6830C3B109164A65CA9091226666DEC395AA63B0899BC6C798F86F74E3E5265CABC600C193AB7D1AAD5085D2C198DE66A4BD4649A26349AE5C88FA44BAE97B91D2A17B8578942B7D61E25E367CBDC29841B0116458C97F72499AE6B74006261E57B749B66ABDF0FF71F8CCEA4ED010C6A97739D7351 +dk: F14A379CCC4C2B873E4C6366D676712F1B15BC620AAE40C3B6F31739FC2889ECCED39507D9148082B2B37C70BF95E42A98CA9B13C52A22604644839DA14B67B3BB472E376F52E20641E06E3E6104B551353FF24646C97E0D1C8A0008478158CCE8E8B6D522896A395DD8F6AACED41A58D3A9C0C0BB23C55484A9CB9BE11E9BF370BBF045505C99A08C6D8B62825D1020B3794999F63BB083BDF260714D16ABC01C741C48776067C373CBBD24558A1A4938C3369955EB0D8673C1323A243CB72781C68BB64C1E754C702C832D68F5C0A1E1A1CA04A0077955CF131B74CAA9BAE30284BA467AAC056CDB8F47B5848CC03383B275C4E62B34881E8FF504E30893A5A7C6CD9038149C0F83BB0410578A3BF42A7B7BA7CC174ED0613FEBB88E5CFC7A8E9204D30A48D4C33FC0752169874963A88A1019BE594B502FF4A341D3C59E14100AB3773AC43A92F0C901A04A1FCC256DDB73D6F97AE58ABFA75528E6CAC933E2B3A5A84F8C24137670C531E6BE9CD9758BC5BB043266A22104825845196895D6966577325769220775C9C2B480C36E6C2C18B7255BB5277CD40DEA96806858299C201FE60C5A8E590F565863DC254FE8431A3E891149D86D8CC24EF5114103D8812FE282285C3A2806432AC7629716CC5DEA1EB9576E2B9562809A0AE66790F654278C16B355E1A4087A9600382F35BB3BF9F9541B4C5A98382D47D4B569685537662D4D891B7C949FCC4A27C81CA7A594BD66AA09AADB27AD43420863C2CBFC7A5D818984E343785C863085A97B2B77E8C5054418BF43BA61E62594E7011C1B3360F278130595959FA026C14A893579363BDACE7C291065C27C73340D400747BC29458FA324CD8880DD84A09FC973487358E68BB3221C4E5C4133914A13D2C53297BA10F02327FE37C43681A028A865576410F7DA2A7FA8867D563399F59DE8569485043623A1448C613B6424CCDAE8C59CCB53F1E8B0EF4A5751367F193637B6F78E0AFC2013FCBA7FE8AB5D7C70385A6869221A8FD88E246C7DEC6C83187C9680A8654E02269CFABF7438A234037BEAA7AF8D54448035BFE7A7430E264CF3F607DB07C3EB750BBB1926D5ACC839F02612C4BE88422AD9731FACC22F6DB1213DA36ECCAA97F7B5CC94146A0C50671F7725388712B30A1E8EFBBE72F693B7652F7FE5A9C3E10415168F6F9273AF55109BC9BAFFCA3E80989BA88905C1DAB706BB77ABE38D4235C44B43515DBB6CB15813EB4B0D8EF97647B331C689AB67E3921B840FB78804F83B0DE72239EBFA22CA799BD88107C36A505DA09E9EA4C4EE5802DB5047D2FB6B9B2C499EE55CCE4347A33C7A6EB2337D3589A3D099939B0C8619AE7A2414F0698B4B06D07648B2059C8BF8583095426A0776C81D4C5D24EB5AFF450E79FA07FB7026378B1E86D6AD2BA7227475261F37A6C58AABC6447E054AAB9C61A6E19B571AA57005E8906BDB6960A425B8B95671407145837FDD9B5CF51A4E42592CDE24332673CE7D023A3E2544970AB55857A1F0200521114B8096A366417052094175B549F474173E723A2377525EEC95C0D40C94988981792A8C324B61EB381F8ACD3BA987023B2E64D29C0FF63D5134527FA8AA5199667ED2331CD8880468590163A4B0692D9569089E24873F9A5738826AA8A326B3D013C0F0C65B41CD81A42290F628F174006E08C3CDF9B012050C2FB083F97A7770F8A3B120972676C6944B06320A56605409E33535ECBC1B1EE6201A457309102D845CC631450C2D802FD62A793AFA82C0C9BAFFB22F8FEAC2B9680DA32A51AC1C75F7E3899FA01471F9668DEC6CD765221E765D7C714D46085CF9B9B6FCC2891EF16E246489CE87B9028A5DEC713B84594847A4554AB4A39985213D009C617C0524217AA1A51DABC9CBF689B66325517726CA3E955F742126F13B72CE936EE1CA2D913B785B4704F975C221437C6A890E354810E27B57689A8564DB22783B3D46488F8646B50C366BE75566EDC0422C2784B7A33D10588BD83A89A07519B754C1EFE901FA9001C0B120A70C0BDC8CC5342C8D20281B8A7A24FF4240FF6990BFAA3197CAA594F63EE4C75B3014AF834BC4FB8249604855597B5ACEF45304D75C035981A8A7267FB04867E9C28EDB8BA6C64BC6B70B218CC738B097FD6527915018EBF712E7044BC7B50CB9151395814278089E9A003965B4AAAE46A19E5791331876B985BF23DA8BE19CC4EF857C98C91084C1CF0441A1B212580E271FEED51C98D88D4003B909B42627860E5B788F99521CB3953371F1686A437A2F3055F8D05B7FB01BA29886DD28A7269A99DF979DD80BCA5D399AC18A919985C643D68910F9C0C5923CC3A30C25E8B9F71935503513AC28A520D194CFA7129BD2A08CE76491B886B7531ED100700EA011D09319EB66B8B44A0C09913A0E40A2B1166DF676C205E648872386A221B45A428B9BDB0C8281032D52C22028BDCC96AC2CA6470F407F98D479ADE32B1D202F1F1141C3E6453084B551554989E00BFC2A44E7F5ABC8530FC174B6FA30B3F26B5A467A39322612B1C9C3CE01CFC540CEF912058FBACCEDD8BED38AAB401B88EE7058195CBCB7D8405CB71DC5B44EA19B34C9D1652E7192D50A03136BB87CB207C9DA8ADD47AD870A3AD5DA51B5E8874F71560C5490AD7137522823B167166E89BFCDD3492AB836ABC952A5E957E7A0CA963A2C697AC1F42664D7379E6AB2361D657D47CB34236B70F9658E71FA7CB2D51BABD2C67187022380335D9014176BC52878C1CB721CFA6B63FB92C55A9A53EA635C7522A93DF572DF5B01E4C4931DD47ECC73514EB5A6085206B79209A712C60BA4B338254411D08DC7C289E00C0C3F230406B47CCF4183D97005A0687F6BA6B7A02A4E9E781C99C28DBA8A32DE80AF53075CACE4629F03872F3606228335424A1311BB58BA3309D4087F839960DC3CC63D83832F0768BD13BA41EC2ECFB03D882799D10653A4F6BAEF00709169346FB83232F9685E309E36B23DF53AC8D0996FAF14440641AD59E3991054678596849FA44436454BD535A2692922A3C57BFFDBAFE0913240EAA29646A8B5E7461C269F58F92680401B70A82529634325D128AD23A452EC9A5E52A622A524F3205B6E9130BAC6830C3B109164A65CA9091226666DEC395AA63B0899BC6C798F86F74E3E5265CABC600C193AB7D1AAD5085D2C198DE66A4BD4649A26349AE5C88FA44BAE97B91D2A17B8578942B7D61E25E367CBDC29841B0116458C97F72499AE6B74006261E57B749B66ABDF0FF71F8CCEA4ED010C6A97739D7351C57B9807586DB3D99C6AFFAFB04CD2551A4B1DF17FCCB8D7D94C103EE6656B14BF83E3048B021F22DB57076A885729F95119CE63FAF51A69954BCCC51E014686 + +z: F42861EFF7691614C3E8975AFB4E353F8C8C39E6F41BB637EC79BAA976D1ADC1 +d: D5FD815092620DC42A223909E387369A74AF7DCA285138CF217BC29F29C42C41 +ek: A9D674C360C5B1E36D78F66C722392F167A126F09FCC4310A9320137EBA898E786F95B9CC5D0B9114206EC66159BB3A687427D3B2298F1317ADE160EBF44CAFAA62B38871C6239C38F67CA0922C9DD952D8AA55AA6A481386771FD003A271B659F4B730B589B717635E6EB62603C5BD6C96756DB4947C5B1A71B970CD16B6D2519205C08147685B7103BB7C130B40C11CFE9C73866567175CCCDF40522C10A80140D78F9A71C714BADB1CE2732B86BD0518BF4783FAA00694208C3C2BD4BA34DEC08ADD425A0687A0D8B392702DA57504A28E9099912A8AE4A964765D35E739C1C3158330F4C21DC3A58969AAEBC788EC8177443732EAA527DC1E5009E010D8F980369FCCB48527AA27C6553393709F0B252E9346671465D33C072E352B2619175878F946488AEE3B5EE201C753244E6C85A1DE48BC994B4B1F9AB4F81B9C9F6C243C4A57BAB99781CAB1FD152A205A893F07F16431401F746B5EC790EA89C8C672EB7267EC34036F5F541C334B499DAB565387C2341C27F4904546917295B8F640CBCDF9B254502B58A669D36AA3D834793CC2A4D6578397D3A6DA893710F6A1839D8CAD7067A020108BF98415569A5C5856C5678C9A41A3075F077E6150F54B57FE91691A1C05F5022939A322CB919ACDA1236FEC9885AEB2C3A975E5BA238F5E713AA751093846915B003E624577007C7048B23E29445EE123AD3D6604D5006332CCD238A0E23020244D99A2C8A28CB58A76A69A39CC05927767ACBF892E3B6CB27231472C9189FBC1BADD18CB9A0CCB9E9CB08D0BA65C9924BCB2D88EA9739835C3B388A7B416A5BC5A27B01260D732F237474292133F0E458F33CBC3A687F149A1F8D7B08FE76A0C7C9330F8582D378BE0E2B135097CC9527A24FA3913BC3C98F04298CA86A08F6969D98C6EEDC19D6026D18D93479698A237B319B8CBC7E266DD34162FDB07C04A677C7B27E758A9D42DB0E35B4369C325C1F5639E0AA30B87433BC9C977447A2F97413E351BB98242D68E02527053A75A0CA93AB8E1E8B521F4BA09EB1B32D6797C5D7BD2AC76E81946CA48BCC787A9D35022C31F0938F710482B1A5DDF91A9024900D019AE33B182D6424D86B558109158B188C3978B5345A7D85B70B30888083C50CFAEA947258891A192B05D8589A0B7415F6945D1275B9C12DC25055B372553D21ABC7B96BD7F821B0C78D6AC3CD5BEA024720625611126220A5A467A60C268B748632C6B19403391391D649BE701B85592FF7F256937843547339E01179E2D79F9D88168528CE5FD5A819108456A789F094093E3980413A14F11B71C57BC71617CA3234008B2907447B8EF8A58B87450AD9506BB84C9E3F66BCE6CBC5D503434D406387D8CDC22A64D53786C79A90C911723D8799B3A7B9AB20672DA92572FB609AC14D57435736055B89F9851DB4B621AA42610317F15802FFB457620B4A7712212DA5725C049E1FD3670DF15ED5A945549C38DE4826BEC844500A313B41921E21AA5EF186940497462117EBD8B383520680DC2646683E0E819B2DE992A82380F400BAA20560AB7A58D2176D4885204ED705F21084390C5AAB8879214286A1F199B3949A59E11B86582B5C13080766C7E2091EA99F1352D4488C7EA1547DD87024156A9FB2DF0C77B684540084890847AA6D85 +dk: 49B061657A8EDBA51C06A38F4995CC0D68BD97C515A7576125F7961317046D3B0A21B44415B07592991570D05291AB34DCB808E57041FF249D97F471B57A8B7924BB8B699B9772360A8157CE513C58882B89F79E37287042A353A887761D73B2AA3A5185D999FD1A4609AB7FB3ACC8EA083E6DDB2A9592413CA11E7D51AD6378132AF88D977762A473A4849A303C648183D03773C610B8C07A6F741D2E887768E20FA9B749072CB64292B791731658E7297F8A584EFA2A9446911E155E0E27BD71DB8B1D52395982C40C4C65C7FCCEE20B684C2432A83579468B8A82A730305A157FF46F5C8781CD621143E31A20311803185335855116712E34498045093BAD6B80A8F332AB8C5A90025AD0B1CA6EC53401AA83DD01595540141C749687A53D775B4A691B69F6D32C275187A6CB1A4A336C341CC36CCB295C21609EAB1636EC0BB031345A3BAA345878EF43A46B82A9DBB7019658A43AA0368CAB4310103BD5589499B2C1E89A5C2A297ED707B7FAF8170FD2CAE245146929060CA5BD10D8316980C18824CDA429302B64C14385CBE36AA0DC6CB0941B204A55A710D2C68052C900C34C35A7AE7834CF5552264AA2583913348CDC79A08847ACE64024464E759AA99573BFC7B40F8CC4449379A40558B756B22410934C7969B42ACCCCC7D8231E5CA2DF5574384B9E0712C436FBC67AF74234E49B59480B0CF47C8DC31D47776BA9B000C0E80856B889FF09916CF8CE199680A45B16B1AC1438000D6472C79497014B6384AD069FA8AB1A004B518AA97066DCAC32D00893301D327008020431F2B01A4004523F0453DB14B3A84001EC3749D25473EB219AF1E0A7628BAE4A24BE7A1A5E24C3AB5D0A6661C4C1DE754755EBBC91865E8147C1D0233DEA643C4E648DBE3C50B96B898D81B4DB71CD9CD38BFFCB9E7C384EC58A7A27F29C7C5B20255149EDD02442E4CF8C8A34B73B6D36319F6FD3425BEAB4A8EB1698E03A1A344C88808FCF183AF5F6905B1B445CC9235BE74C1DB07D794BB867331EAEFB52AA165E31DB2048A62CA4D5197B3AB327281B132B0EAA18B1D8699EDCFB730B905A517036E3EC9BF40AC4F47440BFC231693025CA297B4F5198DC094066919934F32E5EA6712937CFE458A2BF916D382933A95487603B4AB303CC81BA94E467576787B7D8095B059020E6C43069745CA03C2B31229F2CE021F4D9BC38FC2886EC9570F2671872C766D40C970A0825083A01961FE97C9214533F3A8562E620A0C8B5354E8989420B4F639B323E415D8AD4732F299EFFF99A7AB47A100CB05F31C158F37FBF8B7B7F477DD3398A20F07F9BA0605AC67CE4379932D0B2E7E236882093846AC42B64806F4C3E035BCD1EBAB1D54084B63C870217B210D2CE816A35BAEA8CCF2C7FB4938FDDC320D9B81751116C4DBC2269C37413206704B631BE653BD20B7F920305F9EC8C46805E95FC504B1C33BDB5A1AD912F8D65221A784922A63578201FF3E869DDE76AFDC9068F657CD0B66E8D441DF7E642A01220F8001D6A1558F5F73F49C13F3E1BB8A9E7BFB56B677CD6AE6FE8C85C24CCD7A78790E1AD8809A8F964B43228155D2872A9B11849514035F154799202A0299C41F80D9D1A67A9D674C360C5B1E36D78F66C722392F167A126F09FCC4310A9320137EBA898E786F95B9CC5D0B9114206EC66159BB3A687427D3B2298F1317ADE160EBF44CAFAA62B38871C6239C38F67CA0922C9DD952D8AA55AA6A481386771FD003A271B659F4B730B589B717635E6EB62603C5BD6C96756DB4947C5B1A71B970CD16B6D2519205C08147685B7103BB7C130B40C11CFE9C73866567175CCCDF40522C10A80140D78F9A71C714BADB1CE2732B86BD0518BF4783FAA00694208C3C2BD4BA34DEC08ADD425A0687A0D8B392702DA57504A28E9099912A8AE4A964765D35E739C1C3158330F4C21DC3A58969AAEBC788EC8177443732EAA527DC1E5009E010D8F980369FCCB48527AA27C6553393709F0B252E9346671465D33C072E352B2619175878F946488AEE3B5EE201C753244E6C85A1DE48BC994B4B1F9AB4F81B9C9F6C243C4A57BAB99781CAB1FD152A205A893F07F16431401F746B5EC790EA89C8C672EB7267EC34036F5F541C334B499DAB565387C2341C27F4904546917295B8F640CBCDF9B254502B58A669D36AA3D834793CC2A4D6578397D3A6DA893710F6A1839D8CAD7067A020108BF98415569A5C5856C5678C9A41A3075F077E6150F54B57FE91691A1C05F5022939A322CB919ACDA1236FEC9885AEB2C3A975E5BA238F5E713AA751093846915B003E624577007C7048B23E29445EE123AD3D6604D5006332CCD238A0E23020244D99A2C8A28CB58A76A69A39CC05927767ACBF892E3B6CB27231472C9189FBC1BADD18CB9A0CCB9E9CB08D0BA65C9924BCB2D88EA9739835C3B388A7B416A5BC5A27B01260D732F237474292133F0E458F33CBC3A687F149A1F8D7B08FE76A0C7C9330F8582D378BE0E2B135097CC9527A24FA3913BC3C98F04298CA86A08F6969D98C6EEDC19D6026D18D93479698A237B319B8CBC7E266DD34162FDB07C04A677C7B27E758A9D42DB0E35B4369C325C1F5639E0AA30B87433BC9C977447A2F97413E351BB98242D68E02527053A75A0CA93AB8E1E8B521F4BA09EB1B32D6797C5D7BD2AC76E81946CA48BCC787A9D35022C31F0938F710482B1A5DDF91A9024900D019AE33B182D6424D86B558109158B188C3978B5345A7D85B70B30888083C50CFAEA947258891A192B05D8589A0B7415F6945D1275B9C12DC25055B372553D21ABC7B96BD7F821B0C78D6AC3CD5BEA024720625611126220A5A467A60C268B748632C6B19403391391D649BE701B85592FF7F256937843547339E01179E2D79F9D88168528CE5FD5A819108456A789F094093E3980413A14F11B71C57BC71617CA3234008B2907447B8EF8A58B87450AD9506BB84C9E3F66BCE6CBC5D503434D406387D8CDC22A64D53786C79A90C911723D8799B3A7B9AB20672DA92572FB609AC14D57435736055B89F9851DB4B621AA42610317F15802FFB457620B4A7712212DA5725C049E1FD3670DF15ED5A945549C38DE4826BEC844500A313B41921E21AA5EF186940497462117EBD8B383520680DC2646683E0E819B2DE992A82380F400BAA20560AB7A58D2176D4885204ED705F21084390C5AAB8879214286A1F199B3949A59E11B86582B5C13080766C7E2091EA99F1352D4488C7EA1547DD87024156A9FB2DF0C77B684540084890847AA6D85E8BEB5E40DA16CD0B6771A006BD6CC2A5BA77C278E3EDF52912210F80A5E1759F42861EFF7691614C3E8975AFB4E353F8C8C39E6F41BB637EC79BAA976D1ADC1 + +z: 4DD0E86091649A0A08EA44DAB85DF56797F8BF46222C2DBA7DEC6374B9B2268E +d: D21D5AFED9AFAA3B49FB45245B2BCA1505E4000CDC29094A3600F5CAA49A7B3A +ek: 744793A77A843520C9EB8B057FF28854193916F711902B1F8B4B9C235251FBDC8040C8A38C022557DB50CB28CC8DF99A859C2EC017C24015877D2A3572571FC783BF1E984401C11158E32A95351BE407A8AE6B5E054A33C2427F4A346761559F776671095B495074AF5CAC98D94297FB05624443CAA8151AF3A497F73203EF184CC7336650427CDFD47B10245EDDE30C3075933E431DC1B1C2A77B2073257C2AB73ABE706DE138CD54922CDB09CEFA60BA473092E43BC3E3CB951939B1C4CB2AFDCB4F8A5310FE9A790E560B25A40AC9E18D35A27238A60A126B398980BE8425C8A01B930FB336CB359F58131BBEE6AC450B8C811B2DDEA836F9D0C2C72A709E134321DCA727641A1D678A8E0CAE6BD6BBDAD8021AE3C1B6067FB1ECA42D215EC2C4297F6891567712F75047775B741713097B1271AFF026323A134DC20DEBFACE46D5B01820A9A862BA93E3AFCB5AC4C2204AF2E15787D0C857896D24DCBD6393C1FDDC12CDDA6A1F337B18D6C3CCD5283B37239A80424780399281C3FF1967B3BB6DAE499D42F511997077F38A8D63EB319342B1BC749924E467C6A2A11728826BEB52A39BA7A1A03C93C613D36A3F1F544B72A8BEC24009FDE07E677101456A2B76EC3353CB8944C339081A4B59672CD1B5446FFA6FC0B468D9FC83EBF896CE12158AFAA6812028F54B7920636784D3B3854030D05A9C19D936C6FACC5B81070CD524728A96A58A2E1207C73A4C533DDB00098141158B11DB674500781F47DB9B45F3CDE244502D377886418287C22075B2BD172606CCFA6F4914844525C113BCC7C049B3D14A2DF91B6C62E0A2EE5922DA3194DFC0C506D48ECCF5697BA31BD0839A4D3B3078CB7C2936CE1C507B0B54023585CADA6BA5657726075659DE16A6403110CE38A247CA85CE02C1DAC79FD175BCAAFA116F710516A4B73D78BFC6F9854228B6C5F035946B1F61B629F31328A65556C8F0661D58622C6021F58C1ACF154C6E78BCF563352AFB89B824513A35502F117861A34C52B1011F696A85185186BBA23B518C720763529C181D902CBBB58CFEF77CD2E72F4780979FD46126C0A4BC1965A6E070FC284B1F856852110E19C268390CA9494116EB293F1A111ABEC1AF04F706B114617F0362B3DB4B99E076287AAFB7127FE2C68904F61664D63D4FB267CE07AD5A659FB81886F8E0A9C26261A0055F48F432E9F8242C439F58B5A21EB777483B2E68B3B1118562430270340243F1E87C22CB5BE2F167DC39CF4C69B8B8E9B726256CBE605342F47E23A871BA7250BDA8997FD474B3375920522F2C511B3EA35CF459342893AA12B128CC2184E304335AC7BA04653898590A664672FE744F301651442BB341D32F36262C576A50F803B02F91105FEBCABEF7030D2A76CBEC6C2CF36283590BB44842853102D3D350801167D7A96968648C0CAB9AFD39CB7F658909283CB83CA78544929AD90069CA3E660196792A654A911CAD7C23024C90E25AA61B30A4D568C5A5C12A53565A93E910D5940EF3583856017BC25B05C4473F48584C6908C13D2B19E7A3A7992976D31A464807199AE3A6307CA55765590F6B4721632D70FA47E2C1098E36898BE3125E43C61CBB7A6C246CBA0002CF325A5D337989289BCCDA54835511DE9656287363DEE85033410AEAE1 +dk: 045AA22AEAA4A8E0C66661A183700F04025D413CCDCBE1B7CD9B839BA61671B08A859B1AECA9014CB3695B29703CD4314954C48CC19A89E106079720EF23B597FA6A833638B7A7B1E74A40C8BA7A005AA799D22DC5AA97627A037BA2623C659621EA2FF40651DAA0A95B2218CF934DB132BDE8A29F889BA084DA3EA9C8B58FD1BEF4D45EB4A2501447640C7869F21C9B031718209288E442018F63097459AFCEB75815829B16EC48FF822B1F69B6B48C3AA3C65441E60F552A154BD85A71397AB8290564F527FA8B1E84AB4EE6450EB5CA658B2120164B7D84637CC7488FFDF717F9349734E6B2F585C040065A2E910CCCA070C0070C2C215BC8060930D30D7A73A0FADA94E46257BE169B73D7A35DD43EB9B0183589AD657A429D983564031166253B4EE513AFE986E007727D75BA22F41A0AEA4939081C7CE1BEA5AA8D8DFB692AD37726E05A9DBA9D70102A1DE64479A928D9789035D4B645F088ABE8A51B06826BA64079C4AD3EC2C8A7EBC9F5EA6A0C707E88B2224DEA55FC0C39EC258088E319CA48C3F0C86AA203669F164E5FD0BA467548050CA496579BD4099D705A82BF9634995ACE60DCAC96C9115226AF2B6A9D86497DA1C49FEEE35F5639BA1A8363DF5114EA06C190179161C3C4238115DD55200BD28A03EACCAA46C7A9126B6F0CC2BFD9047D9BBF7A2043BD965F244158C7F10548FBBC39E040F040145A45B12BC90A74065BD3E34925C94FFA968BEAD241A79B6B0F1C3911C444E3958906DB8834984897CA886DC1B9D63CA43803C74C5633F003BD148A691D396C98BA81918A560542CC6435082957A70A312DAD0AC54F81903B2280BEF3638A013654D26E0D2705939A31EF39547FB80BE113A336E277E04B8B905C9DD90509C434277246916A1A0A7E66BC1C74C4719751BD8879E07AB97721C0B27BC08B69B284F2BB47E43290F2BB434C489570C22AC867F06643AB100457D336CB944B6B5A185B639A403A332FC755584A9F2EAA315C319D3099B30710B7EFAA5BBE8A3981A9B158E0C7484595AA1B7CA3F335BB38A7E5AB51F2799E0EC2049AB781514A82CA7CC5A53BCFF3029320636285902EC1D24432B5292EF7600097929D374F3485AB2AA5C8A154CC3171693DBBC4382A5E44600AC8B1646A84A47B078D06EC554A309A1FC2BB473C69EA4732B6485BE812A1004D583D9A0B9953312CAB9B014A482D8C7BD1097231D0041FF599D0E043C7CA08FD0CA71AEB977EF271EC13AF122766566BCAEAA26554F87394847C50DC2B8D3885184069B1A173D1183E68C55867E55EA78610CC3183A7F60181D1751A12107225C7156B99F86846FDF5777502A201FB583202B28EB78EEF356918D2B5B7594AE364902D45C2E8691137C98CA7B2425274068D765AFF29095ED546309C2D4CD6A5DE0571E67566DB14C386A87F15379CD1190EF02806D6B8387C87C73B805E01DB128C0A86C1013FAA7CB7D46770A0835C5343C931AB8CFDF56AE4241108C55976F127334AC3E2B52360661B61532CCB641CA043AE9B3173D0133CB0E4581748B6F1AC00BA0BAE4960376782A25F36765A1A4318D73C18781C90755C657847ED6849CE1301B11A2FD75616B4F326DAD545744793A77A843520C9EB8B057FF28854193916F711902B1F8B4B9C235251FBDC8040C8A38C022557DB50CB28CC8DF99A859C2EC017C24015877D2A3572571FC783BF1E984401C11158E32A95351BE407A8AE6B5E054A33C2427F4A346761559F776671095B495074AF5CAC98D94297FB05624443CAA8151AF3A497F73203EF184CC7336650427CDFD47B10245EDDE30C3075933E431DC1B1C2A77B2073257C2AB73ABE706DE138CD54922CDB09CEFA60BA473092E43BC3E3CB951939B1C4CB2AFDCB4F8A5310FE9A790E560B25A40AC9E18D35A27238A60A126B398980BE8425C8A01B930FB336CB359F58131BBEE6AC450B8C811B2DDEA836F9D0C2C72A709E134321DCA727641A1D678A8E0CAE6BD6BBDAD8021AE3C1B6067FB1ECA42D215EC2C4297F6891567712F75047775B741713097B1271AFF026323A134DC20DEBFACE46D5B01820A9A862BA93E3AFCB5AC4C2204AF2E15787D0C857896D24DCBD6393C1FDDC12CDDA6A1F337B18D6C3CCD5283B37239A80424780399281C3FF1967B3BB6DAE499D42F511997077F38A8D63EB319342B1BC749924E467C6A2A11728826BEB52A39BA7A1A03C93C613D36A3F1F544B72A8BEC24009FDE07E677101456A2B76EC3353CB8944C339081A4B59672CD1B5446FFA6FC0B468D9FC83EBF896CE12158AFAA6812028F54B7920636784D3B3854030D05A9C19D936C6FACC5B81070CD524728A96A58A2E1207C73A4C533DDB00098141158B11DB674500781F47DB9B45F3CDE244502D377886418287C22075B2BD172606CCFA6F4914844525C113BCC7C049B3D14A2DF91B6C62E0A2EE5922DA3194DFC0C506D48ECCF5697BA31BD0839A4D3B3078CB7C2936CE1C507B0B54023585CADA6BA5657726075659DE16A6403110CE38A247CA85CE02C1DAC79FD175BCAAFA116F710516A4B73D78BFC6F9854228B6C5F035946B1F61B629F31328A65556C8F0661D58622C6021F58C1ACF154C6E78BCF563352AFB89B824513A35502F117861A34C52B1011F696A85185186BBA23B518C720763529C181D902CBBB58CFEF77CD2E72F4780979FD46126C0A4BC1965A6E070FC284B1F856852110E19C268390CA9494116EB293F1A111ABEC1AF04F706B114617F0362B3DB4B99E076287AAFB7127FE2C68904F61664D63D4FB267CE07AD5A659FB81886F8E0A9C26261A0055F48F432E9F8242C439F58B5A21EB777483B2E68B3B1118562430270340243F1E87C22CB5BE2F167DC39CF4C69B8B8E9B726256CBE605342F47E23A871BA7250BDA8997FD474B3375920522F2C511B3EA35CF459342893AA12B128CC2184E304335AC7BA04653898590A664672FE744F301651442BB341D32F36262C576A50F803B02F91105FEBCABEF7030D2A76CBEC6C2CF36283590BB44842853102D3D350801167D7A96968648C0CAB9AFD39CB7F658909283CB83CA78544929AD90069CA3E660196792A654A911CAD7C23024C90E25AA61B30A4D568C5A5C12A53565A93E910D5940EF3583856017BC25B05C4473F48584C6908C13D2B19E7A3A7992976D31A464807199AE3A6307CA55765590F6B4721632D70FA47E2C1098E36898BE3125E43C61CBB7A6C246CBA0002CF325A5D337989289BCCDA54835511DE9656287363DEE85033410AEAE16C770D1FA4C0F5DBB660530772FCC2297F59BC9DEE338CD124F0924CF7E3762D4DD0E86091649A0A08EA44DAB85DF56797F8BF46222C2DBA7DEC6374B9B2268E + diff --git a/crypto/mlkem/mlkem_test.cc b/crypto/mlkem/mlkem_test.cc new file mode 100644 index 0000000000..9868dd958e --- /dev/null +++ b/crypto/mlkem/mlkem_test.cc @@ -0,0 +1,454 @@ +/* Copyright (c) 2024, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#include + +#include + +#include + +#include +#include + +#include "../keccak/internal.h" +#include "../test/file_test.h" +#include "../test/test_util.h" +#include "./internal.h" + + +namespace { + +template +std::vector Marshal(int (*marshal_func)(CBB *, const T *), + const T *t) { + bssl::ScopedCBB cbb; + uint8_t *encoded; + size_t encoded_len; + if (!CBB_init(cbb.get(), 1) || // + !marshal_func(cbb.get(), t) || // + !CBB_finish(cbb.get(), &encoded, &encoded_len)) { + abort(); + } + + std::vector ret(encoded, encoded + encoded_len); + OPENSSL_free(encoded); + return ret; +} + +template +void BasicTest() { + // This function makes several ML-KEM keys, which runs up against stack + // limits. Heap-allocate them instead. + + uint8_t encoded_public_key[PUBLIC_KEY_BYTES]; + uint8_t seed[MLKEM_SEED_BYTES]; + auto priv = std::make_unique(); + GENERATE(encoded_public_key, seed, priv.get()); + + { + auto priv2 = std::make_unique(); + ASSERT_TRUE(FROM_SEED(priv2.get(), seed, sizeof(seed))); + EXPECT_EQ(Bytes(Marshal(MARSHAL_PRIVATE, priv.get())), + Bytes(Marshal(MARSHAL_PRIVATE, priv2.get()))); + } + + uint8_t first_two_bytes[2]; + OPENSSL_memcpy(first_two_bytes, encoded_public_key, sizeof(first_two_bytes)); + OPENSSL_memset(encoded_public_key, 0xff, sizeof(first_two_bytes)); + CBS encoded_public_key_cbs; + CBS_init(&encoded_public_key_cbs, encoded_public_key, + sizeof(encoded_public_key)); + auto pub = std::make_unique(); + // Parsing should fail because the first coefficient is >= kPrime; + ASSERT_FALSE(PARSE_PUBLIC(pub.get(), &encoded_public_key_cbs)); + + OPENSSL_memcpy(encoded_public_key, first_two_bytes, sizeof(first_two_bytes)); + CBS_init(&encoded_public_key_cbs, encoded_public_key, + sizeof(encoded_public_key)); + ASSERT_TRUE(PARSE_PUBLIC(pub.get(), &encoded_public_key_cbs)); + EXPECT_EQ(CBS_len(&encoded_public_key_cbs), 0u); + + EXPECT_EQ(Bytes(encoded_public_key), + Bytes(Marshal(MARSHAL_PUBLIC, pub.get()))); + + auto pub2 = std::make_unique(); + PUBLIC_FROM_PRIVATE(pub2.get(), priv.get()); + EXPECT_EQ(Bytes(encoded_public_key), + Bytes(Marshal(MARSHAL_PUBLIC, pub2.get()))); + + std::vector encoded_private_key( + Marshal(MARSHAL_PRIVATE, priv.get())); + EXPECT_EQ(encoded_private_key.size(), size_t{PRIVATE_KEY_BYTES}); + + OPENSSL_memcpy(first_two_bytes, encoded_private_key.data(), + sizeof(first_two_bytes)); + OPENSSL_memset(encoded_private_key.data(), 0xff, sizeof(first_two_bytes)); + CBS cbs; + CBS_init(&cbs, encoded_private_key.data(), encoded_private_key.size()); + auto priv2 = std::make_unique(); + // Parsing should fail because the first coefficient is >= kPrime. + ASSERT_FALSE(PARSE_PRIVATE(priv2.get(), &cbs)); + + OPENSSL_memcpy(encoded_private_key.data(), first_two_bytes, + sizeof(first_two_bytes)); + CBS_init(&cbs, encoded_private_key.data(), encoded_private_key.size()); + ASSERT_TRUE(PARSE_PRIVATE(priv2.get(), &cbs)); + EXPECT_EQ(Bytes(encoded_private_key), + Bytes(Marshal(MARSHAL_PRIVATE, priv2.get()))); + + uint8_t ciphertext[CIPHERTEXT_BYTES]; + uint8_t shared_secret1[MLKEM_SHARED_SECRET_BYTES]; + uint8_t shared_secret2[MLKEM_SHARED_SECRET_BYTES]; + ENCAP(ciphertext, shared_secret1, pub.get()); + ASSERT_TRUE( + DECAP(shared_secret2, ciphertext, sizeof(ciphertext), priv.get())); + EXPECT_EQ(Bytes(shared_secret1), Bytes(shared_secret2)); + ASSERT_TRUE( + DECAP(shared_secret2, ciphertext, sizeof(ciphertext), priv2.get())); + EXPECT_EQ(Bytes(shared_secret1), Bytes(shared_secret2)); +} + +TEST(MLKEMTest, Basic768) { + BasicTest(); +} + +TEST(MLKEMTest, Basic1024) { + BasicTest(); +} + +template +void MLKEMKeyGenFileTest(FileTest *t) { + std::vector expected_pub_key_bytes, entropy, expected_priv_key_bytes; + ASSERT_TRUE(t->GetBytes(&entropy, "seed")); + ASSERT_TRUE(t->GetBytes(&expected_pub_key_bytes, "public_key")); + ASSERT_TRUE(t->GetBytes(&expected_priv_key_bytes, "private_key")); + + ASSERT_EQ(entropy.size(), size_t{MLKEM_SEED_BYTES}); + + std::vector pub_key_bytes(PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + GENERATE(pub_key_bytes.data(), priv.get(), entropy.data()); + const std::vector priv_key_bytes( + Marshal(MARSHAL_PRIVATE, priv.get())); + + EXPECT_EQ(Bytes(pub_key_bytes), Bytes(expected_pub_key_bytes)); + EXPECT_EQ(Bytes(priv_key_bytes), Bytes(expected_priv_key_bytes)); +} + +TEST(MLKEMTest, KeyGen768TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem768_keygen_tests.txt", + MLKEMKeyGenFileTest); +} + +TEST(MLKEMTest, KeyGen1024TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem1024_keygen_tests.txt", + MLKEMKeyGenFileTest); +} + +template +void MLKEMNistKeyGenFileTest(FileTest *t) { + std::vector expected_pub_key_bytes, z, d, expected_priv_key_bytes; + ASSERT_TRUE(t->GetBytes(&z, "z")); + ASSERT_TRUE(t->GetBytes(&d, "d")); + ASSERT_TRUE(t->GetBytes(&expected_pub_key_bytes, "ek")); + ASSERT_TRUE(t->GetBytes(&expected_priv_key_bytes, "dk")); + + ASSERT_EQ(z.size(), size_t{MLKEM_SEED_BYTES} / 2); + ASSERT_EQ(d.size(), size_t{MLKEM_SEED_BYTES} / 2); + + uint8_t entropy[MLKEM_SEED_BYTES]; + OPENSSL_memcpy(&entropy[0], d.data(), d.size()); + OPENSSL_memcpy(&entropy[MLKEM_SEED_BYTES / 2], z.data(), z.size()); + std::vector pub_key_bytes(PUBLIC_KEY_BYTES); + auto priv = std::make_unique(); + GENERATE(pub_key_bytes.data(), priv.get(), entropy); + const std::vector priv_key_bytes( + Marshal(MARSHAL_PRIVATE, priv.get())); + + EXPECT_EQ(Bytes(pub_key_bytes), Bytes(expected_pub_key_bytes)); + EXPECT_EQ(Bytes(priv_key_bytes), Bytes(expected_priv_key_bytes)); +} + +TEST(MLKEMTest, NISTKeyGen768TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem768_nist_keygen_tests.txt", + MLKEMNistKeyGenFileTest< + MLKEM768_public_key, MLKEM768_PUBLIC_KEY_BYTES, MLKEM768_private_key, + MLKEM768_marshal_private_key, MLKEM768_generate_key_external_seed>); +} + +TEST(MLKEMTest, NISTKeyGen1024TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem1024_nist_keygen_tests.txt", + MLKEMNistKeyGenFileTest); +} + +template +void MLKEMEncapFileTest(FileTest *t) { + std::vector pub_key_bytes, entropy, expected_ciphertext, + expected_shared_secret; + ASSERT_TRUE(t->GetBytes(&entropy, "entropy")); + ASSERT_TRUE(t->GetBytes(&pub_key_bytes, "public_key")); + ASSERT_TRUE(t->GetBytes(&expected_ciphertext, "ciphertext")); + ASSERT_TRUE(t->GetBytes(&expected_shared_secret, "shared_secret")); + std::string result; + ASSERT_TRUE(t->GetAttribute(&result, "result")); + + PUBLIC_KEY pub_key; + CBS pub_key_cbs; + CBS_init(&pub_key_cbs, pub_key_bytes.data(), pub_key_bytes.size()); + const int parse_ok = PARSE_PUBLIC(&pub_key, &pub_key_cbs); + ASSERT_EQ(parse_ok, result == "pass"); + if (!parse_ok) { + return; + } + + uint8_t ciphertext[CIPHERTEXT_BYTES]; + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + ENCAP(ciphertext, shared_secret, &pub_key, entropy.data()); + + ASSERT_EQ(Bytes(expected_ciphertext), Bytes(ciphertext)); + ASSERT_EQ(Bytes(expected_shared_secret), Bytes(shared_secret)); +} + +TEST(MLKEMTest, Encap768TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem768_encap_tests.txt", + MLKEMEncapFileTest); +} + +TEST(MLKEMTest, Encap1024TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem1024_encap_tests.txt", + MLKEMEncapFileTest); +} + +template +void MLKEMDecapFileTest(FileTest *t) { + std::vector priv_key_bytes, ciphertext, expected_shared_secret; + ASSERT_TRUE(t->GetBytes(&priv_key_bytes, "private_key")); + ASSERT_TRUE(t->GetBytes(&ciphertext, "ciphertext")); + ASSERT_TRUE(t->GetBytes(&expected_shared_secret, "shared_secret")); + std::string result; + ASSERT_TRUE(t->GetAttribute(&result, "result")); + + PRIVATE_KEY priv_key; + CBS priv_key_cbs; + CBS_init(&priv_key_cbs, priv_key_bytes.data(), priv_key_bytes.size()); + const int parse_ok = PARSE_PRIVATE(&priv_key, &priv_key_cbs); + if (!parse_ok) { + ASSERT_NE(result, "pass"); + return; + } + + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + const int decap_ok = + DECAP(shared_secret, ciphertext.data(), ciphertext.size(), &priv_key); + if (!decap_ok) { + ASSERT_NE(result, "pass"); + return; + } + + ASSERT_EQ(Bytes(expected_shared_secret), Bytes(shared_secret)); +} + +TEST(MLKEMTest, Decap768TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem768_decap_tests.txt", + MLKEMDecapFileTest); +} + +TEST(MLKEMTest, Decap1024TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem1024_decap_tests.txt", + MLKEMDecapFileTest); +} + +template +void MLKEMNistDecapFileTest(FileTest *t) { + std::vector ciphertext, expected_shared_secret, private_key_bytes; + ASSERT_TRUE(t->GetBytes(&ciphertext, "c")); + ASSERT_TRUE(t->GetBytes(&expected_shared_secret, "k")); + ASSERT_TRUE(t->GetInstructionBytes(&private_key_bytes, "dk")); + + PRIVATE_KEY priv; + CBS private_key_cbs; + CBS_init(&private_key_cbs, private_key_bytes.data(), + private_key_bytes.size()); + ASSERT_TRUE(PARSE_PRIVATE(&priv, &private_key_cbs)); + + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + ASSERT_TRUE( + DECAP(shared_secret, ciphertext.data(), ciphertext.size(), &priv)); + + ASSERT_EQ(Bytes(shared_secret), Bytes(expected_shared_secret)); +} + +TEST(MLKEMTest, NistDecap768TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem768_nist_decap_tests.txt", + MLKEMNistDecapFileTest); +} + +TEST(MLKEMTest, NistDecap1024TestVectors) { + FileTestGTest( + "crypto/mlkem/mlkem1024_nist_decap_tests.txt", + MLKEMNistDecapFileTest); +} + +template < + typename PUBLIC_KEY, size_t PUBLIC_KEY_BYTES, typename PRIVATE_KEY, + size_t PRIVATE_KEY_BYTES, + void (*GENERATE)(uint8_t *, PRIVATE_KEY *, const uint8_t *), + void (*TO_PUBLIC)(PUBLIC_KEY *, const PRIVATE_KEY *), + int (*MARSHAL_PRIVATE)(CBB *, const PRIVATE_KEY *), size_t CIPHERTEXT_BYTES, + void (*ENCAP)(uint8_t *, uint8_t *, const PUBLIC_KEY *, const uint8_t *), + int (*DECAP)(uint8_t *, const uint8_t *, size_t, const PRIVATE_KEY *)> +void IteratedTest(uint8_t out[32]) { + BORINGSSL_keccak_st generate_st; + BORINGSSL_keccak_init(&generate_st, boringssl_shake128); + BORINGSSL_keccak_st results_st; + BORINGSSL_keccak_init(&results_st, boringssl_shake128); + + auto priv = std::make_unique(); + auto pub = std::make_unique(); + for (int i = 0; i < 10000; i++) { + uint8_t generate_entropy[MLKEM_SEED_BYTES]; + BORINGSSL_keccak_squeeze(&generate_st, generate_entropy, + sizeof(generate_entropy)); + uint8_t encoded_pub[PUBLIC_KEY_BYTES]; + GENERATE(encoded_pub, priv.get(), generate_entropy); + TO_PUBLIC(pub.get(), priv.get()); + + BORINGSSL_keccak_absorb(&results_st, encoded_pub, sizeof(encoded_pub)); + const std::vector encoded_priv( + Marshal(MARSHAL_PRIVATE, priv.get())); + BORINGSSL_keccak_absorb(&results_st, encoded_priv.data(), + encoded_priv.size()); + + uint8_t encap_entropy[MLKEM_ENCAP_ENTROPY]; + BORINGSSL_keccak_squeeze(&generate_st, encap_entropy, + sizeof(encap_entropy)); + uint8_t ciphertext[CIPHERTEXT_BYTES]; + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + ENCAP(ciphertext, shared_secret, pub.get(), encap_entropy); + + BORINGSSL_keccak_absorb(&results_st, ciphertext, sizeof(ciphertext)); + BORINGSSL_keccak_absorb(&results_st, shared_secret, sizeof(shared_secret)); + + uint8_t invalid_ciphertext[CIPHERTEXT_BYTES]; + BORINGSSL_keccak_squeeze(&generate_st, invalid_ciphertext, + sizeof(invalid_ciphertext)); + ASSERT_TRUE(DECAP(shared_secret, invalid_ciphertext, + sizeof(invalid_ciphertext), priv.get())); + + BORINGSSL_keccak_absorb(&results_st, shared_secret, sizeof(shared_secret)); + } + + BORINGSSL_keccak_squeeze(&results_st, out, 32); +} + +TEST(MLKEMTest, Iterate768) { + // The structure of this test is taken from + // https://github.com/C2SP/CCTV/blob/main/ML-KEM/README.md?ref=words.filippo.io#accumulated-pq-crystals-vectors + // but the final value has been updated to reflect the change from Kyber to + // ML-KEM. + uint8_t result[32]; + IteratedTest(result); + + const uint8_t kExpected[32] = { + 0xf9, 0x59, 0xd1, 0x8d, 0x3d, 0x11, 0x80, 0x12, 0x14, 0x33, 0xbf, + 0x0e, 0x05, 0xf1, 0x1e, 0x79, 0x08, 0xcf, 0x9d, 0x03, 0xed, 0xc1, + 0x50, 0xb2, 0xb0, 0x7c, 0xb9, 0x0b, 0xef, 0x5b, 0xc1, 0xc1}; + EXPECT_EQ(Bytes(result), Bytes(kExpected)); +} + + +TEST(MLKEMTest, Iterate1024) { + // The structure of this test is taken from + // https://github.com/C2SP/CCTV/blob/main/ML-KEM/README.md?ref=words.filippo.io#accumulated-pq-crystals-vectors + // but the final value has been updated to reflect the change from Kyber to + // ML-KEM. + uint8_t result[32]; + IteratedTest(result); + + const uint8_t kExpected[32] = { + 0xe3, 0xbf, 0x82, 0xb0, 0x13, 0x30, 0x7b, 0x2e, 0x9d, 0x47, 0xdd, + 0xe7, 0x91, 0xff, 0x6d, 0xfc, 0x82, 0xe6, 0x94, 0xe6, 0x38, 0x24, + 0x04, 0xab, 0xdb, 0x94, 0x8b, 0x90, 0x8b, 0x75, 0xba, 0xd5}; + EXPECT_EQ(Bytes(result), Bytes(kExpected)); +} +} // namespace diff --git a/gen/sources.bzl b/gen/sources.bzl index f65972fbca..5f8a3b2ada 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -370,6 +370,7 @@ crypto_sources = [ "crypto/lhash/lhash.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", + "crypto/mlkem/mlkem.cc", "crypto/obj/obj.c", "crypto/obj/obj_xref.c", "crypto/pem/pem_all.c", @@ -545,6 +546,7 @@ crypto_headers = [ "include/openssl/md5.h", "include/openssl/mem.h", "include/openssl/mldsa.h", + "include/openssl/mlkem.h", "include/openssl/nid.h", "include/openssl/obj.h", "include/openssl/obj_mac.h", @@ -625,6 +627,7 @@ crypto_internal_headers = [ "crypto/kyber/internal.h", "crypto/lhash/internal.h", "crypto/mldsa/internal.h", + "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", "crypto/pkcs7/internal.h", "crypto/pkcs8/internal.h", @@ -731,6 +734,7 @@ crypto_test_sources = [ "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", "crypto/mldsa/mldsa_test.cc", + "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", "crypto/pkcs7/pkcs7_test.cc", @@ -822,6 +826,16 @@ crypto_test_data = [ "crypto/kyber/kyber_tests.txt", "crypto/mldsa/mldsa_nist_keygen_tests.txt", "crypto/mldsa/mldsa_nist_siggen_tests.txt", + "crypto/mlkem/mlkem1024_decap_tests.txt", + "crypto/mlkem/mlkem1024_encap_tests.txt", + "crypto/mlkem/mlkem1024_keygen_tests.txt", + "crypto/mlkem/mlkem1024_nist_decap_tests.txt", + "crypto/mlkem/mlkem1024_nist_keygen_tests.txt", + "crypto/mlkem/mlkem768_decap_tests.txt", + "crypto/mlkem/mlkem768_encap_tests.txt", + "crypto/mlkem/mlkem768_keygen_tests.txt", + "crypto/mlkem/mlkem768_nist_decap_tests.txt", + "crypto/mlkem/mlkem768_nist_keygen_tests.txt", "crypto/pkcs8/test/bad1.p12", "crypto/pkcs8/test/bad2.p12", "crypto/pkcs8/test/bad3.p12", diff --git a/gen/sources.cmake b/gen/sources.cmake index 4647360865..919e0a6b0b 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -384,6 +384,7 @@ set( crypto/lhash/lhash.c crypto/mem.c crypto/mldsa/mldsa.c + crypto/mlkem/mlkem.cc crypto/obj/obj.c crypto/obj/obj_xref.c crypto/pem/pem_all.c @@ -561,6 +562,7 @@ set( include/openssl/md5.h include/openssl/mem.h include/openssl/mldsa.h + include/openssl/mlkem.h include/openssl/nid.h include/openssl/obj.h include/openssl/obj_mac.h @@ -643,6 +645,7 @@ set( crypto/kyber/internal.h crypto/lhash/internal.h crypto/mldsa/internal.h + crypto/mlkem/internal.h crypto/obj/obj_dat.h crypto/pkcs7/internal.h crypto/pkcs8/internal.h @@ -755,6 +758,7 @@ set( crypto/kyber/kyber_test.cc crypto/lhash/lhash_test.cc crypto/mldsa/mldsa_test.cc + crypto/mlkem/mlkem_test.cc crypto/obj/obj_test.cc crypto/pem/pem_test.cc crypto/pkcs7/pkcs7_test.cc @@ -848,6 +852,16 @@ set( crypto/kyber/kyber_tests.txt crypto/mldsa/mldsa_nist_keygen_tests.txt crypto/mldsa/mldsa_nist_siggen_tests.txt + crypto/mlkem/mlkem1024_decap_tests.txt + crypto/mlkem/mlkem1024_encap_tests.txt + crypto/mlkem/mlkem1024_keygen_tests.txt + crypto/mlkem/mlkem1024_nist_decap_tests.txt + crypto/mlkem/mlkem1024_nist_keygen_tests.txt + crypto/mlkem/mlkem768_decap_tests.txt + crypto/mlkem/mlkem768_encap_tests.txt + crypto/mlkem/mlkem768_keygen_tests.txt + crypto/mlkem/mlkem768_nist_decap_tests.txt + crypto/mlkem/mlkem768_nist_keygen_tests.txt crypto/pkcs8/test/bad1.p12 crypto/pkcs8/test/bad2.p12 crypto/pkcs8/test/bad3.p12 diff --git a/gen/sources.json b/gen/sources.json index 1ac7ec21c6..795c3ff897 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -354,6 +354,7 @@ "crypto/lhash/lhash.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", + "crypto/mlkem/mlkem.cc", "crypto/obj/obj.c", "crypto/obj/obj_xref.c", "crypto/pem/pem_all.c", @@ -528,6 +529,7 @@ "include/openssl/md5.h", "include/openssl/mem.h", "include/openssl/mldsa.h", + "include/openssl/mlkem.h", "include/openssl/nid.h", "include/openssl/obj.h", "include/openssl/obj_mac.h", @@ -607,6 +609,7 @@ "crypto/kyber/internal.h", "crypto/lhash/internal.h", "crypto/mldsa/internal.h", + "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", "crypto/pkcs7/internal.h", "crypto/pkcs8/internal.h", @@ -712,6 +715,7 @@ "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", "crypto/mldsa/mldsa_test.cc", + "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", "crypto/pkcs7/pkcs7_test.cc", @@ -802,6 +806,16 @@ "crypto/kyber/kyber_tests.txt", "crypto/mldsa/mldsa_nist_keygen_tests.txt", "crypto/mldsa/mldsa_nist_siggen_tests.txt", + "crypto/mlkem/mlkem1024_decap_tests.txt", + "crypto/mlkem/mlkem1024_encap_tests.txt", + "crypto/mlkem/mlkem1024_keygen_tests.txt", + "crypto/mlkem/mlkem1024_nist_decap_tests.txt", + "crypto/mlkem/mlkem1024_nist_keygen_tests.txt", + "crypto/mlkem/mlkem768_decap_tests.txt", + "crypto/mlkem/mlkem768_encap_tests.txt", + "crypto/mlkem/mlkem768_keygen_tests.txt", + "crypto/mlkem/mlkem768_nist_decap_tests.txt", + "crypto/mlkem/mlkem768_nist_keygen_tests.txt", "crypto/pkcs8/test/bad1.p12", "crypto/pkcs8/test/bad2.p12", "crypto/pkcs8/test/bad3.p12", diff --git a/include/openssl/mlkem.h b/include/openssl/mlkem.h new file mode 100644 index 0000000000..34fdd9d287 --- /dev/null +++ b/include/openssl/mlkem.h @@ -0,0 +1,250 @@ +/* Copyright (c) 2024, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_MLKEM_H +#define OPENSSL_HEADER_MLKEM_H + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + + +// ML-KEM-768. +// +// This implements the Module-Lattice-Based Key-Encapsulation Mechanism from +// https://csrc.nist.gov/pubs/fips/204/final + + +// MLKEM768_public_key contains an ML-KEM-768 public key. The contents of this +// object should never leave the address space since the format is unstable. +struct MLKEM768_public_key { + union { + uint8_t bytes[512 * (3 + 9) + 32 + 32]; + uint16_t alignment; + } opaque; +}; + +// MLKEM768_private_key contains an ML-KEM-768 private key. The contents of this +// object should never leave the address space since the format is unstable. +struct MLKEM768_private_key { + union { + uint8_t bytes[512 * (3 + 3 + 9) + 32 + 32 + 32]; + uint16_t alignment; + } opaque; +}; + +// MLKEM768_PUBLIC_KEY_BYTES is the number of bytes in an encoded ML-KEM-768 +// public key. +#define MLKEM768_PUBLIC_KEY_BYTES 1184 + +// MLKEM_SEED_BYTES is the number of bytes in an ML-KEM seed. +#define MLKEM_SEED_BYTES 64 + +// MLKEM768_generate_key generates a random public/private key pair, writes the +// encoded public key to |out_encoded_public_key| and sets |out_private_key| to +// the private key. If |optional_out_seed| is not NULL then the seed used to +// generate the private key is written to it. +OPENSSL_EXPORT void MLKEM768_generate_key( + uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES], + uint8_t optional_out_seed[MLKEM_SEED_BYTES], + struct MLKEM768_private_key *out_private_key); + +// MLKEM768_private_key_from_seed derives a private key from a seed that was +// generated by |MLKEM768_generate_key|. It fails and returns 0 if |seed_len| is +// incorrect, otherwise it writes |*out_private_key| and returns 1. +OPENSSL_EXPORT int MLKEM768_private_key_from_seed( + struct MLKEM768_private_key *out_private_key, const uint8_t *seed, + size_t seed_len); + +// MLKEM768_public_from_private sets |*out_public_key| to the public key that +// corresponds to |private_key|. (This is faster than parsing the output of +// |MLKEM768_generate_key| if, for some reason, you need to encapsulate to a key +// that was just generated.) +OPENSSL_EXPORT void MLKEM768_public_from_private( + struct MLKEM768_public_key *out_public_key, + const struct MLKEM768_private_key *private_key); + +// MLKEM768_CIPHERTEXT_BYTES is number of bytes in the ML-KEM-768 ciphertext. +#define MLKEM768_CIPHERTEXT_BYTES 1088 + +// MLKEM_SHARED_SECRET_BYTES is the number of bytes in an ML-KEM shared secret. +#define MLKEM_SHARED_SECRET_BYTES 32 + +// MLKEM768_encap encrypts a random shared secret for |public_key|, writes the +// ciphertext to |out_ciphertext|, and writes the random shared secret to +// |out_shared_secret|. +OPENSSL_EXPORT void MLKEM768_encap( + uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM768_public_key *public_key); + +// MLKEM768_decap decrypts a shared secret from |ciphertext| using |private_key| +// and writes it to |out_shared_secret|. If |ciphertext_len| is incorrect it +// returns 0, otherwise it returns 1. If |ciphertext| is invalid (but of the +// correct length), |out_shared_secret| is filled with a key that will always be +// the same for the same |ciphertext| and |private_key|, but which appears to be +// random unless one has access to |private_key|. These alternatives occur in +// constant time. Any subsequent symmetric encryption using |out_shared_secret| +// must use an authenticated encryption scheme in order to discover the +// decapsulation failure. +OPENSSL_EXPORT int MLKEM768_decap( + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const uint8_t *ciphertext, size_t ciphertext_len, + const struct MLKEM768_private_key *private_key); + + +// Serialisation of keys. + +// MLKEM768_marshal_public_key serializes |public_key| to |out| in the standard +// format for ML-KEM-768 public keys. It returns one on success or zero on +// allocation error. +OPENSSL_EXPORT int MLKEM768_marshal_public_key( + CBB *out, const struct MLKEM768_public_key *public_key); + +// MLKEM768_parse_public_key parses a public key, in the format generated by +// |MLKEM768_marshal_public_key|, from |in| and writes the result to +// |out_public_key|. It returns one on success or zero on parse error or if +// there are trailing bytes in |in|. +OPENSSL_EXPORT int MLKEM768_parse_public_key( + struct MLKEM768_public_key *out_public_key, CBS *in); + +// MLKEM768_PRIVATE_KEY_BYTES is the length of the data produced by +// |MLKEM768_marshal_private_key|. +#define MLKEM768_PRIVATE_KEY_BYTES 2400 + +// MLKEM768_parse_private_key parses a private key, in NIST's format for +// private keys, from |in| and writes the result to |out_private_key|. It +// returns one on success or zero on parse error or if there are trailing bytes +// in |in|. This format is verbose and should be avoided. Private keys should be +// stored as seeds and parsed using |MLKEM768_private_key_from_seed|. +OPENSSL_EXPORT int MLKEM768_parse_private_key( + struct MLKEM768_private_key *out_private_key, CBS *in); + + +// ML-KEM-1024 +// +// ML-KEM-1024 also exists. You should prefer ML-KEM-768 where possible. + +// MLKEM1024_public_key contains an ML-KEM-1024 public key. The contents of this +// object should never leave the address space since the format is unstable. +struct MLKEM1024_public_key { + union { + uint8_t bytes[512 * (4 + 16) + 32 + 32]; + uint16_t alignment; + } opaque; +}; + +// MLKEM1024_private_key contains a ML-KEM-1024 private key. The contents of +// this object should never leave the address space since the format is +// unstable. +struct MLKEM1024_private_key { + union { + uint8_t bytes[512 * (4 + 4 + 16) + 32 + 32 + 32]; + uint16_t alignment; + } opaque; +}; + +// MLKEM1024_PUBLIC_KEY_BYTES is the number of bytes in an encoded ML-KEM-1024 +// public key. +#define MLKEM1024_PUBLIC_KEY_BYTES 1568 + +// MLKEM1024_SHARED_SECRET_BYTES is the number of bytes in the ML-KEM-1024 +// shared secret. +#define MLKEM1024_SHARED_SECRET_BYTES 32 + +// MLKEM1024_generate_key generates a random public/private key pair, writes the +// encoded public key to |out_encoded_public_key| and sets |out_private_key| to +// the private key. If |optional_out_seed| is not NULL then the seed used to +// generate the private key is written to it. +OPENSSL_EXPORT void MLKEM1024_generate_key( + uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES], + uint8_t optional_out_seed[MLKEM_SEED_BYTES], + struct MLKEM1024_private_key *out_private_key); + +// MLKEM1024_private_key_from_seed derives a private key from a seed that was +// generated by |MLKEM1024_generate_key|. It fails and returns 0 if |seed_len| +// is incorrect, otherwise it writes |*out_private_key| and returns 1. +OPENSSL_EXPORT int MLKEM1024_private_key_from_seed( + struct MLKEM1024_private_key *out_private_key, const uint8_t *seed, + size_t seed_len); + +// MLKEM1024_public_from_private sets |*out_public_key| to the public key that +// corresponds to |private_key|. (This is faster than parsing the output of +// |MLKEM1024_generate_key| if, for some reason, you need to encapsulate to a +// key that was just generated.) +OPENSSL_EXPORT void MLKEM1024_public_from_private( + struct MLKEM1024_public_key *out_public_key, + const struct MLKEM1024_private_key *private_key); + +// MLKEM1024_CIPHERTEXT_BYTES is number of bytes in the ML-KEM-1024 ciphertext. +#define MLKEM1024_CIPHERTEXT_BYTES 1568 + +// MLKEM1024_encap encrypts a random shared secret for |public_key|, writes the +// ciphertext to |out_ciphertext|, and writes the random shared secret to +// |out_shared_secret|. +OPENSSL_EXPORT void MLKEM1024_encap( + uint8_t out_ciphertext[MLKEM1024_CIPHERTEXT_BYTES], + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const struct MLKEM1024_public_key *public_key); + +// MLKEM1024_decap decrypts a shared secret from |ciphertext| using +// |private_key| and writes it to |out_shared_secret|. If |ciphertext_len| is +// incorrect it returns 0, otherwise it returns 1. If |ciphertext| is invalid +// (but of the correct length), |out_shared_secret| is filled with a key that +// will always be the same for the same |ciphertext| and |private_key|, but +// which appears to be random unless one has access to |private_key|. These +// alternatives occur in constant time. Any subsequent symmetric encryption +// using |out_shared_secret| must use an authenticated encryption scheme in +// order to discover the decapsulation failure. +OPENSSL_EXPORT int MLKEM1024_decap( + uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], + const uint8_t *ciphertext, size_t ciphertext_len, + const struct MLKEM1024_private_key *private_key); + + +// Serialisation of ML-KEM-1024 keys. + +// MLKEM1024_marshal_public_key serializes |public_key| to |out| in the standard +// format for ML-KEM-1024 public keys. It returns one on success or zero on +// allocation error. +OPENSSL_EXPORT int MLKEM1024_marshal_public_key( + CBB *out, const struct MLKEM1024_public_key *public_key); + +// MLKEM1024_parse_public_key parses a public key, in the format generated by +// |MLKEM1024_marshal_public_key|, from |in| and writes the result to +// |out_public_key|. It returns one on success or zero on parse error or if +// there are trailing bytes in |in|. +OPENSSL_EXPORT int MLKEM1024_parse_public_key( + struct MLKEM1024_public_key *out_public_key, CBS *in); + +// MLKEM1024_PRIVATE_KEY_BYTES is the length of the data produced by +// |MLKEM1024_marshal_private_key|. +#define MLKEM1024_PRIVATE_KEY_BYTES 3168 + +// MLKEM1024_parse_private_key parses a private key, in NIST's format for +// private keys, from |in| and writes the result to |out_private_key|. It +// returns one on success or zero on parse error or if there are trailing bytes +// in |in|. This format is verbose and should be avoided. Private keys should be +// stored as seeds and parsed using |MLKEM1024_private_key_from_seed|. +OPENSSL_EXPORT int MLKEM1024_parse_private_key( + struct MLKEM1024_private_key *out_private_key, CBS *in); + + +#if defined(__cplusplus) +} // extern C +#endif + +#endif // OPENSSL_HEADER_MLKEM_H diff --git a/tool/speed.cc b/tool/speed.cc index f8d81f1ab3..a1e74adcb5 100644 --- a/tool/speed.cc +++ b/tool/speed.cc @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -1244,6 +1245,104 @@ static bool SpeedMLDSA(const std::string &selected) { return true; } +static bool SpeedMLKEM(const std::string &selected) { + if (!selected.empty() && selected != "ML-KEM-768") { + return true; + } + + TimeResults results; + + uint8_t ciphertext[MLKEM768_CIPHERTEXT_BYTES]; + // This ciphertext is nonsense, but decap is constant-time so, for the + // purposes of timing, it's fine. + memset(ciphertext, 42, sizeof(ciphertext)); + if (!TimeFunctionParallel(&results, [&]() -> bool { + MLKEM768_private_key priv; + uint8_t encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES]; + MLKEM768_generate_key(encoded_public_key, nullptr, &priv); + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + MLKEM768_decap(shared_secret, ciphertext, sizeof(ciphertext), &priv); + return true; + })) { + fprintf(stderr, "Failed to time MLKEM768_generate_key + MLKEM768_decap.\n"); + return false; + } + + results.Print("ML-KEM-768 generate + decap"); + + MLKEM768_private_key priv; + uint8_t encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES]; + MLKEM768_generate_key(encoded_public_key, nullptr, &priv); + MLKEM768_public_key pub; + if (!TimeFunctionParallel(&results, [&]() -> bool { + CBS encoded_public_key_cbs; + CBS_init(&encoded_public_key_cbs, encoded_public_key, + sizeof(encoded_public_key)); + if (!MLKEM768_parse_public_key(&pub, &encoded_public_key_cbs)) { + return false; + } + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + MLKEM768_encap(ciphertext, shared_secret, &pub); + return true; + })) { + fprintf(stderr, "Failed to time MLKEM768_encap.\n"); + return false; + } + + results.Print("ML-KEM-768 parse + encap"); + + return true; +} + +static bool SpeedMLKEM1024(const std::string &selected) { + if (!selected.empty() && selected != "ML-KEM-1024") { + return true; + } + + TimeResults results; + + uint8_t ciphertext[MLKEM1024_CIPHERTEXT_BYTES]; + auto priv = std::make_unique(); + // This ciphertext is nonsense, but decap is constant-time so, for the + // purposes of timing, it's fine. + memset(ciphertext, 42, sizeof(ciphertext)); + if (!TimeFunctionParallel(&results, [&]() -> bool { + uint8_t encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES]; + MLKEM1024_generate_key(encoded_public_key, nullptr, priv.get()); + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + MLKEM1024_decap(shared_secret, ciphertext, sizeof(ciphertext), + priv.get()); + return true; + })) { + fprintf(stderr, "Failed to time MLKEM768_generate_key + MLKEM768_decap.\n"); + return false; + } + + results.Print("ML-KEM-1024 generate + decap"); + + uint8_t encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES]; + MLKEM1024_generate_key(encoded_public_key, nullptr, priv.get()); + MLKEM1024_public_key pub; + if (!TimeFunctionParallel(&results, [&]() -> bool { + CBS encoded_public_key_cbs; + CBS_init(&encoded_public_key_cbs, encoded_public_key, + sizeof(encoded_public_key)); + if (!MLKEM1024_parse_public_key(&pub, &encoded_public_key_cbs)) { + return false; + } + uint8_t shared_secret[MLKEM_SHARED_SECRET_BYTES]; + MLKEM1024_encap(ciphertext, shared_secret, &pub); + return true; + })) { + fprintf(stderr, "Failed to time MLKEM768_encap.\n"); + return false; + } + + results.Print("ML-KEM-1024 parse + encap"); + + return true; +} + static bool SpeedSpx(const std::string &selected) { if (!selected.empty() && selected.find("spx") == std::string::npos) { return true; @@ -1779,6 +1878,8 @@ bool Speed(const std::vector &args) { !SpeedHRSS(selected) || // !SpeedKyber(selected) || // !SpeedMLDSA(selected) || // + !SpeedMLKEM(selected) || // + !SpeedMLKEM1024(selected) || // !SpeedSpx(selected) || // !SpeedHashToCurve(selected) || // !SpeedTrustToken("TrustToken-Exp1-Batch1", TRUST_TOKEN_experiment_v1(), 1, diff --git a/util/doc.config b/util/doc.config index d982e6429a..a16637c91c 100644 --- a/util/doc.config +++ b/util/doc.config @@ -38,6 +38,7 @@ "include/openssl/hmac.h", "include/openssl/md5.h", "include/openssl/mldsa.h", + "include/openssl/mlkem.h", "include/openssl/rc4.h", "include/openssl/rsa.h", "include/openssl/sha.h", From 526a3c49a2f04c3b55a909b80b98b2d56e80aefc Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Mon, 19 Aug 2024 15:15:41 -0700 Subject: [PATCH 31/81] Fix some ClangTidy nits in ML-DSA. Change-Id: I65d66a2334318fd47e3e045511c21eb625b38eaa Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70348 Reviewed-by: David Benjamin Commit-Queue: Adam Langley --- crypto/mldsa/mldsa.c | 17 +++++++++-------- crypto/mldsa/mldsa_test.cc | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/crypto/mldsa/mldsa.c b/crypto/mldsa/mldsa.c index f1a85b80e4..08ef50c3dd 100644 --- a/crypto/mldsa/mldsa.c +++ b/crypto/mldsa/mldsa.c @@ -18,6 +18,7 @@ #include #include +#include #include #include "../internal.h" @@ -641,10 +642,10 @@ static void scalar_encode_signed_13_12(uint8_t out[416], const scalar *s) { e |= g << 14; e |= h << 27; h >>= 5; - memcpy(&out[13 * i], &a, sizeof(a)); - memcpy(&out[13 * i + 4], &c, sizeof(c)); - memcpy(&out[13 * i + 8], &e, sizeof(e)); - memcpy(&out[13 * i + 12], &h, 1); + OPENSSL_memcpy(&out[13 * i], &a, sizeof(a)); + OPENSSL_memcpy(&out[13 * i + 4], &c, sizeof(c)); + OPENSSL_memcpy(&out[13 * i + 8], &e, sizeof(e)); + OPENSSL_memcpy(&out[13 * i + 12], &h, 1); } } @@ -668,9 +669,9 @@ static void scalar_encode_signed_20_19(uint8_t out[640], const scalar *s) { b |= c << 8; b |= d << 28; d >>= 4; - memcpy(&out[10 * i], &a, sizeof(a)); - memcpy(&out[10 * i + 4], &b, sizeof(b)); - memcpy(&out[10 * i + 8], &d, 2); + OPENSSL_memcpy(&out[10 * i], &a, sizeof(a)); + OPENSSL_memcpy(&out[10 * i + 4], &b, sizeof(b)); + OPENSSL_memcpy(&out[10 * i + 8], &d, 2); } } @@ -1267,7 +1268,7 @@ int MLDSA65_generate_key( uint8_t entropy[MLDSA_SEED_BYTES]; RAND_bytes(entropy, sizeof(entropy)); if (optional_out_seed) { - memcpy(optional_out_seed, entropy, MLDSA_SEED_BYTES); + OPENSSL_memcpy(optional_out_seed, entropy, MLDSA_SEED_BYTES); } return MLDSA65_generate_key_external_entropy(out_encoded_public_key, out_private_key, entropy); diff --git a/crypto/mldsa/mldsa_test.cc b/crypto/mldsa/mldsa_test.cc index 71d1280416..e17cf055b9 100644 --- a/crypto/mldsa/mldsa_test.cc +++ b/crypto/mldsa/mldsa_test.cc @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include "../test/file_test.h" From 0ee584bb5134f8e6b5d2e90f5dc9334ae460a507 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Wed, 21 Aug 2024 12:14:10 -0700 Subject: [PATCH 32/81] ML-DSA: focus the API on saving private keys as seeds. There are two ways to save an ML-DSA or ML-KEM private key: NIST specifies a partial serialization of the contents of the keys and this takes up several kilobytes. But one can also save the seed that the key was generated from and simply regenerate the private key as needed. * The seed is approximately two orders of magnitude smaller. * It is fast to expand a private key from a seed. * The NIST format requires validating several aspects of the partially expanded private key. Because of this, seeds seem clearly better and having two different serializations in the API is a bit weird when currently neither of them are used anywhere. Thus this change emphasizes using seeds to save private keys and moves the marshalling function for the NIST format into the internal API. ML-KEM already follows this pattern, although saving the seed is still optional there because ephemeral keys are a major use case for ML-KEM. Change-Id: I439224e745ad8747d26f57288f1d503593e0e52c Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70407 Commit-Queue: Adam Langley Reviewed-by: David Benjamin --- crypto/mldsa/internal.h | 6 ++++++ crypto/mldsa/mldsa.c | 10 +++------- crypto/mldsa/mldsa_test.cc | 15 ++++++++++----- crypto/mlkem/mlkem_test.cc | 23 +++++++++++------------ include/openssl/mldsa.h | 19 ++++++------------- tool/speed.cc | 5 +++-- 6 files changed, 39 insertions(+), 39 deletions(-) diff --git a/crypto/mldsa/internal.h b/crypto/mldsa/internal.h index 1c7576169e..08ff329474 100644 --- a/crypto/mldsa/internal.h +++ b/crypto/mldsa/internal.h @@ -59,6 +59,12 @@ OPENSSL_EXPORT int MLDSA65_verify_internal( const uint8_t *msg, size_t msg_len, const uint8_t *context_prefix, size_t context_prefix_len, const uint8_t *context, size_t context_len); +// MLDSA65_marshal_private_key serializes |private_key| to |out| in the +// NIST format for ML-DSA-65 private keys. It returns 1 on success or 0 +// on allocation error. +OPENSSL_EXPORT int MLDSA65_marshal_private_key( + CBB *out, const struct MLDSA65_private_key *private_key); + #if defined(__cplusplus) } // extern C diff --git a/crypto/mldsa/mldsa.c b/crypto/mldsa/mldsa.c index 08ef50c3dd..0a75864ee6 100644 --- a/crypto/mldsa/mldsa.c +++ b/crypto/mldsa/mldsa.c @@ -1263,15 +1263,11 @@ static struct public_key *public_key_from_external( // |RAND_bytes|. Returns 1 on success and 0 on failure. int MLDSA65_generate_key( uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES], - uint8_t optional_out_seed[MLDSA_SEED_BYTES], + uint8_t out_seed[MLDSA_SEED_BYTES], struct MLDSA65_private_key *out_private_key) { - uint8_t entropy[MLDSA_SEED_BYTES]; - RAND_bytes(entropy, sizeof(entropy)); - if (optional_out_seed) { - OPENSSL_memcpy(optional_out_seed, entropy, MLDSA_SEED_BYTES); - } + RAND_bytes(out_seed, MLDSA_SEED_BYTES); return MLDSA65_generate_key_external_entropy(out_encoded_public_key, - out_private_key, entropy); + out_private_key, out_seed); } int MLDSA65_private_key_from_seed(struct MLDSA65_private_key *out_private_key, diff --git a/crypto/mldsa/mldsa_test.cc b/crypto/mldsa/mldsa_test.cc index e17cf055b9..c9b08287bf 100644 --- a/crypto/mldsa/mldsa_test.cc +++ b/crypto/mldsa/mldsa_test.cc @@ -51,8 +51,9 @@ std::vector Marshal(int (*marshal_func)(CBB *, const T *), TEST(MLDSATest, DISABLED_BitFlips) { std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); auto priv = std::make_unique(); + uint8_t seed[MLDSA_SEED_BYTES]; EXPECT_TRUE( - MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get())); std::vector encoded_signature(MLDSA65_SIGNATURE_BYTES); static const uint8_t kMessage[] = {'H', 'e', 'l', 'l', 'o', ' ', @@ -116,8 +117,9 @@ TEST(MLDSATest, Basic) { TEST(MLDSATest, SignatureIsRandomized) { std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); auto priv = std::make_unique(); + uint8_t seed[MLDSA_SEED_BYTES]; EXPECT_TRUE( - MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get())); auto pub = std::make_unique(); CBS cbs = bssl::MakeConstSpan(encoded_public_key); @@ -148,8 +150,9 @@ TEST(MLDSATest, SignatureIsRandomized) { TEST(MLDSATest, PublicFromPrivateIsConsistent) { std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); auto priv = std::make_unique(); + uint8_t seed[MLDSA_SEED_BYTES]; EXPECT_TRUE( - MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get())); auto pub = std::make_unique(); EXPECT_TRUE(MLDSA65_public_from_private(pub.get(), priv.get())); @@ -167,8 +170,9 @@ TEST(MLDSATest, InvalidPublicKeyEncodingLength) { // Encode a public key with a trailing 0 at the end. std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES + 1); auto priv = std::make_unique(); + uint8_t seed[MLDSA_SEED_BYTES]; EXPECT_TRUE( - MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get())); // Public key is 1 byte too short. CBS cbs = bssl::MakeConstSpan(encoded_public_key) @@ -188,8 +192,9 @@ TEST(MLDSATest, InvalidPublicKeyEncodingLength) { TEST(MLDSATest, InvalidPrivateKeyEncodingLength) { std::vector encoded_public_key(MLDSA65_PUBLIC_KEY_BYTES); auto priv = std::make_unique(); + uint8_t seed[MLDSA_SEED_BYTES]; EXPECT_TRUE( - MLDSA65_generate_key(encoded_public_key.data(), nullptr, priv.get())); + MLDSA65_generate_key(encoded_public_key.data(), seed, priv.get())); CBB cbb; std::vector malformed_private_key(MLDSA65_PRIVATE_KEY_BYTES + 1, 0); diff --git a/crypto/mlkem/mlkem_test.cc b/crypto/mlkem/mlkem_test.cc index 9868dd958e..581eea5266 100644 --- a/crypto/mlkem/mlkem_test.cc +++ b/crypto/mlkem/mlkem_test.cc @@ -154,16 +154,16 @@ template void MLKEMKeyGenFileTest(FileTest *t) { - std::vector expected_pub_key_bytes, entropy, expected_priv_key_bytes; - ASSERT_TRUE(t->GetBytes(&entropy, "seed")); + std::vector expected_pub_key_bytes, seed, expected_priv_key_bytes; + ASSERT_TRUE(t->GetBytes(&seed, "seed")); ASSERT_TRUE(t->GetBytes(&expected_pub_key_bytes, "public_key")); ASSERT_TRUE(t->GetBytes(&expected_priv_key_bytes, "private_key")); - ASSERT_EQ(entropy.size(), size_t{MLKEM_SEED_BYTES}); + ASSERT_EQ(seed.size(), size_t{MLKEM_SEED_BYTES}); std::vector pub_key_bytes(PUBLIC_KEY_BYTES); auto priv = std::make_unique(); - GENERATE(pub_key_bytes.data(), priv.get(), entropy.data()); + GENERATE(pub_key_bytes.data(), priv.get(), seed.data()); const std::vector priv_key_bytes( Marshal(MARSHAL_PRIVATE, priv.get())); @@ -200,12 +200,12 @@ void MLKEMNistKeyGenFileTest(FileTest *t) { ASSERT_EQ(z.size(), size_t{MLKEM_SEED_BYTES} / 2); ASSERT_EQ(d.size(), size_t{MLKEM_SEED_BYTES} / 2); - uint8_t entropy[MLKEM_SEED_BYTES]; - OPENSSL_memcpy(&entropy[0], d.data(), d.size()); - OPENSSL_memcpy(&entropy[MLKEM_SEED_BYTES / 2], z.data(), z.size()); + uint8_t seed[MLKEM_SEED_BYTES]; + OPENSSL_memcpy(&seed[0], d.data(), d.size()); + OPENSSL_memcpy(&seed[MLKEM_SEED_BYTES / 2], z.data(), z.size()); std::vector pub_key_bytes(PUBLIC_KEY_BYTES); auto priv = std::make_unique(); - GENERATE(pub_key_bytes.data(), priv.get(), entropy); + GENERATE(pub_key_bytes.data(), priv.get(), seed); const std::vector priv_key_bytes( Marshal(MARSHAL_PRIVATE, priv.get())); @@ -376,11 +376,10 @@ void IteratedTest(uint8_t out[32]) { auto priv = std::make_unique(); auto pub = std::make_unique(); for (int i = 0; i < 10000; i++) { - uint8_t generate_entropy[MLKEM_SEED_BYTES]; - BORINGSSL_keccak_squeeze(&generate_st, generate_entropy, - sizeof(generate_entropy)); + uint8_t seed[MLKEM_SEED_BYTES]; + BORINGSSL_keccak_squeeze(&generate_st, seed, sizeof(seed)); uint8_t encoded_pub[PUBLIC_KEY_BYTES]; - GENERATE(encoded_pub, priv.get(), generate_entropy); + GENERATE(encoded_pub, priv.get(), seed); TO_PUBLIC(pub.get(), priv.get()); BORINGSSL_keccak_absorb(&results_st, encoded_pub, sizeof(encoded_pub)); diff --git a/include/openssl/mldsa.h b/include/openssl/mldsa.h index 521a15562b..a0a7560d0c 100644 --- a/include/openssl/mldsa.h +++ b/include/openssl/mldsa.h @@ -63,11 +63,11 @@ struct MLDSA65_public_key { // MLDSA65_generate_key generates a random public/private key pair, writes the // encoded public key to |out_encoded_public_key|, writes the seed to -// |optional_out_seed| (if not NULL), and sets |out_private_key| to the private -// key. Returns 1 on success and 0 on allocation failure. +// |out_seed|, and sets |out_private_key| to the private key. Returns 1 on +// success and 0 on allocation failure. OPENSSL_EXPORT int MLDSA65_generate_key( uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES], - uint8_t optional_out_seed[MLDSA_SEED_BYTES], + uint8_t out_seed[MLDSA_SEED_BYTES], struct MLDSA65_private_key *out_private_key); // MLDSA65_private_key_from_seed regenerates a private key from a seed value @@ -122,16 +122,9 @@ OPENSSL_EXPORT int MLDSA65_marshal_public_key( OPENSSL_EXPORT int MLDSA65_parse_public_key( struct MLDSA65_public_key *public_key, CBS *in); -// MLDSA65_marshal_private_key serializes |private_key| to |out| in the -// standard format for ML-DSA-65 private keys. It returns 1 on success or 0 -// on allocation error. -OPENSSL_EXPORT int MLDSA65_marshal_private_key( - CBB *out, const struct MLDSA65_private_key *private_key); - -// MLDSA65_parse_private_key parses a private key, in the format generated by -// |MLDSA65_marshal_private_key|, from |in| and writes the result to -// |out_private_key|. It returns 1 on success or 0 on parse error or if -// there are trailing bytes in |in|. +// MLDSA65_parse_private_key parses a private key, in the NIST format, from |in| +// and writes the result to |out_private_key|. It returns 1 on success or 0 on +// parse error or if there are trailing bytes in |in|. OPENSSL_EXPORT int MLDSA65_parse_private_key( struct MLDSA65_private_key *private_key, CBS *in); diff --git a/tool/speed.cc b/tool/speed.cc index a1e74adcb5..1bba9fc865 100644 --- a/tool/speed.cc +++ b/tool/speed.cc @@ -71,6 +71,7 @@ OPENSSL_MSVC_PRAGMA(warning(pop)) #include "../crypto/ec_extra/internal.h" #include "../crypto/fipsmodule/ec/internal.h" #include "../crypto/internal.h" +#include "../crypto/mldsa/internal.h" #include "../crypto/trust_token/internal.h" #include "internal.h" @@ -1142,8 +1143,8 @@ static bool SpeedMLDSA(const std::string &selected) { std::make_unique(MLDSA65_PUBLIC_KEY_BYTES); auto priv = std::make_unique(); if (!TimeFunctionParallel(&results, [&]() -> bool { - if (!MLDSA65_generate_key(encoded_public_key.get(), nullptr, - priv.get())) { + uint8_t seed[MLDSA_SEED_BYTES]; + if (!MLDSA65_generate_key(encoded_public_key.get(), seed, priv.get())) { fprintf(stderr, "Failure in MLDSA65_generate_key.\n"); return false; } From f1b043c28352a4e79114324ca2e86df33922e843 Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Thu, 22 Aug 2024 00:46:55 +0000 Subject: [PATCH 33/81] Silence clang-tidy warnings in ML-KEM Change-Id: I9407b2d4e754ef6cf8abf1631fe904ac7cd7cbc7 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70410 Auto-Submit: Bob Beck Commit-Queue: Adam Langley Reviewed-by: Adam Langley --- crypto/mlkem/internal.h | 2 +- crypto/mlkem/mlkem.cc | 3 +++ crypto/mlkem/mlkem_test.cc | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crypto/mlkem/internal.h b/crypto/mlkem/internal.h index 9a262c3949..a8d44c3fea 100644 --- a/crypto/mlkem/internal.h +++ b/crypto/mlkem/internal.h @@ -46,7 +46,7 @@ OPENSSL_EXPORT void MLKEM768_encap_external_entropy( uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES], uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES], const struct MLKEM768_public_key *public_key, - const uint8_t seed[MLKEM_ENCAP_ENTROPY]); + const uint8_t entropy[MLKEM_ENCAP_ENTROPY]); // MLKEM768_marshal_private_key serializes |private_key| to |out| in the // NIST format for ML-KEM-768 private keys. It returns one on success or diff --git a/crypto/mlkem/mlkem.cc b/crypto/mlkem/mlkem.cc index eca8134de5..a79ccf74ba 100644 --- a/crypto/mlkem/mlkem.cc +++ b/crypto/mlkem/mlkem.cc @@ -17,8 +17,11 @@ #include #include #include +#include +#include #include +#include #include #include "../internal.h" diff --git a/crypto/mlkem/mlkem_test.cc b/crypto/mlkem/mlkem_test.cc index 581eea5266..bf99695d69 100644 --- a/crypto/mlkem/mlkem_test.cc +++ b/crypto/mlkem/mlkem_test.cc @@ -12,13 +12,16 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #include #include #include +#include #include +#include #include #include "../keccak/internal.h" From 389810dc40a15a3cd89d0f866921cadd0fabc799 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Tue, 20 Aug 2024 22:39:32 +0000 Subject: [PATCH 34/81] Add tests for reconstruct_seqnum. Bug: 715 Change-Id: Ibb8ae0c152477eb5aa035582fac06368ef3c7c1e Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70347 Auto-Submit: Nick Harper Reviewed-by: David Benjamin Commit-Queue: David Benjamin --- ssl/dtls_record.cc | 36 +++++++------- ssl/internal.h | 11 +++++ ssl/ssl_test.cc | 121 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+), 17 deletions(-) diff --git a/ssl/dtls_record.cc b/ssl/dtls_record.cc index 1d32630f44..783e950af9 100644 --- a/ssl/dtls_record.cc +++ b/ssl/dtls_record.cc @@ -171,24 +171,25 @@ static uint16_t reconstruct_epoch(uint8_t wire_epoch, uint16_t current_epoch) { return epoch; } -// reconstruct_seqnum returns the smallest sequence number that hasn't been seen -// in |bitmap| and is still within |bitmap|'s window to handle as a reordered -// record. -// -// Section 4.2.2 of RFC 9147 describes an algorithm for reconstructing sequence -// numbers, which is implemented here. This algorithm finds the sequence number -// that is numerically closest to one plus the largest sequence number seen in -// this epoch. -static uint64_t reconstruct_seqnum(uint16_t wire_seq, uint64_t seq_mask, - DTLS1_BITMAP *bitmap) { - uint64_t max_seqnum_plus_one = bitmap->max_seq_num + 1; +uint64_t reconstruct_seqnum(uint16_t wire_seq, uint64_t seq_mask, + uint64_t max_valid_seqnum) { + uint64_t max_seqnum_plus_one = max_valid_seqnum + 1; uint64_t diff = (wire_seq - max_seqnum_plus_one) & seq_mask; uint64_t step = seq_mask + 1; uint64_t seqnum = max_seqnum_plus_one + diff; - // diff is always non-negative, so seqnum is >= max_seqnum_plus_one. If the - // diff is larger than half the step size, then the numerically closest - // sequence number is less than max_seqnum_plus_one instead of greater. - if (diff > step / 2) { + // seqnum is computed as the addition of 3 non-negative values + // (max_valid_seqnum, 1, and diff). The values 1 and diff are small (relative + // to the size of a uint64_t), while max_valid_seqnum can span the range of + // all uint64_t values. If seqnum is less than max_valid_seqnum, then the + // addition overflowed. + bool overflowed = seqnum < max_valid_seqnum; + // If the diff is larger than half the step size, then the closest seqnum + // to max_seqnum_plus_one (in Z_{2^64}) is seqnum minus step instead of + // seqnum. + bool closer_is_less = diff > step / 2; + // Subtracting step from seqnum will cause underflow if seqnum is too small. + bool would_underflow = seqnum < step; + if (overflowed || (closer_is_less && !would_underflow)) { seqnum -= step; } return seqnum; @@ -216,7 +217,8 @@ static bool parse_dtls13_record_header(SSL *ssl, CBS *in, size_t packet_size, // The record header was incomplete or malformed. return false; } - *out_sequence = reconstruct_seqnum(seq, 0xffff, &ssl->d1->bitmap); + *out_sequence = + reconstruct_seqnum(seq, 0xffff, ssl->d1->bitmap.max_seq_num); } else { // 8-bit sequence number. uint8_t seq; @@ -224,7 +226,7 @@ static bool parse_dtls13_record_header(SSL *ssl, CBS *in, size_t packet_size, // The record header was incomplete or malformed. return false; } - *out_sequence = reconstruct_seqnum(seq, 0xff, &ssl->d1->bitmap); + *out_sequence = reconstruct_seqnum(seq, 0xff, ssl->d1->bitmap.max_seq_num); } *out_header_len = packet_size - CBS_len(in); if ((type & 0x04) == 0x04) { diff --git a/ssl/internal.h b/ssl/internal.h index 8cf03397d9..febb676c90 100644 --- a/ssl/internal.h +++ b/ssl/internal.h @@ -965,6 +965,17 @@ struct DTLS1_BITMAP { uint64_t max_seq_num = 0; }; +// reconstruct_seqnum takes the low order bits of a record sequence number from +// the wire and reconstructs the full sequence number. It does so using the +// algorithm described in section 4.2.2 of RFC 9147, where |wire_seq| is the +// low bits of the sequence number as seen on the wire, |seq_mask| is a bitmask +// of 8 or 16 1 bits corresponding to the length of the sequence number on the +// wire, and |max_valid_seqnum| is the largest sequence number of a record +// successfully deprotected in this epoch. This function returns the sequence +// number that is numerically closest to one plus |max_valid_seqnum| that when +// bitwise and-ed with |seq_mask| equals |wire_seq|. +OPENSSL_EXPORT uint64_t reconstruct_seqnum(uint16_t wire_seq, uint64_t seq_mask, + uint64_t max_valid_seqnum); // Record layer. diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc index ba1a22b794..1b71c97ba4 100644 --- a/ssl/ssl_test.cc +++ b/ssl/ssl_test.cc @@ -631,6 +631,127 @@ TEST(GrowableArrayTest, GrowableArrayContainingGrowableArrays) { } } +TEST(ReconstructSeqnumTest, Increment) { + // Test simple cases from the beginning of an epoch with both 8- and 16-bit + // wire sequence numbers. + EXPECT_EQ(reconstruct_seqnum(0, 0xff, 0), 0u); + EXPECT_EQ(reconstruct_seqnum(1, 0xff, 0), 1u); + EXPECT_EQ(reconstruct_seqnum(2, 0xff, 0), 2u); + EXPECT_EQ(reconstruct_seqnum(0, 0xffff, 0), 0u); + EXPECT_EQ(reconstruct_seqnum(1, 0xffff, 0), 1u); + EXPECT_EQ(reconstruct_seqnum(2, 0xffff, 0), 2u); + + // When the max seen sequence number is 0, the numerically closest + // reconstructed sequence number could be negative. Sequence numbers are + // non-negative, so reconstruct_seqnum should instead return the closest + // non-negative number instead of returning a number congruent to that + // closest negative number mod 2^64. + EXPECT_EQ(reconstruct_seqnum(0xff, 0xff, 0), 0xffu); + EXPECT_EQ(reconstruct_seqnum(0xfe, 0xff, 0), 0xfeu); + EXPECT_EQ(reconstruct_seqnum(0xffff, 0xffff, 0), 0xffffu); + EXPECT_EQ(reconstruct_seqnum(0xfffe, 0xffff, 0), 0xfffeu); + + // When the wire sequence number is less than the corresponding low bytes of + // the max seen sequence number, check that the next larger sequence number + // is reconstructed as its numerically closer than the corresponding sequence + // number that would keep the high order bits the same. + EXPECT_EQ(reconstruct_seqnum(0, 0xff, 0xff), 0x100u); + EXPECT_EQ(reconstruct_seqnum(1, 0xff, 0xff), 0x101u); + EXPECT_EQ(reconstruct_seqnum(2, 0xff, 0xff), 0x102u); + EXPECT_EQ(reconstruct_seqnum(0, 0xffff, 0xffff), 0x10000u); + EXPECT_EQ(reconstruct_seqnum(1, 0xffff, 0xffff), 0x10001u); + EXPECT_EQ(reconstruct_seqnum(2, 0xffff, 0xffff), 0x10002u); + + // Test cases when the wire sequence number is close to the largest magnitude + // that can be represented in 8 or 16 bits. + EXPECT_EQ(reconstruct_seqnum(0xff, 0xff, 0x2f0), 0x2ffu); + EXPECT_EQ(reconstruct_seqnum(0xfe, 0xff, 0x2f0), 0x2feu); + EXPECT_EQ(reconstruct_seqnum(0xffff, 0xffff, 0x2f000), 0x2ffffu); + EXPECT_EQ(reconstruct_seqnum(0xfffe, 0xffff, 0x2f000), 0x2fffeu); + + // Test that reconstruct_seqnum can return + // std::numeric_limits::max(). + EXPECT_EQ(reconstruct_seqnum(0xff, 0xff, 0xffffffffffffffff), + std::numeric_limits::max()); + EXPECT_EQ(reconstruct_seqnum(0xff, 0xff, 0xfffffffffffffffe), + std::numeric_limits::max()); + EXPECT_EQ(reconstruct_seqnum(0xffff, 0xffff, 0xffffffffffffffff), + std::numeric_limits::max()); + EXPECT_EQ(reconstruct_seqnum(0xffff, 0xffff, 0xfffffffffffffffe), + std::numeric_limits::max()); +} + +TEST(ReconstructSeqnumTest, Decrement) { + // Test that the sequence number 0 can be reconstructed when the max + // seen sequence number is greater than 0. + EXPECT_EQ(reconstruct_seqnum(0, 0xff, 0x10), 0u); + EXPECT_EQ(reconstruct_seqnum(0, 0xffff, 0x1000), 0u); + + // Test cases where the reconstructed sequence number is less than the max + // seen sequence number. + EXPECT_EQ(reconstruct_seqnum(0, 0xff, 0x210), 0x200u); + EXPECT_EQ(reconstruct_seqnum(2, 0xff, 0x210), 0x202u); + EXPECT_EQ(reconstruct_seqnum(0, 0xffff, 0x43210), 0x40000u); + EXPECT_EQ(reconstruct_seqnum(2, 0xffff, 0x43210), 0x40002u); + + // Test when the wire sequence number is greater than the low bits of the + // max seen sequence number. + EXPECT_EQ(reconstruct_seqnum(0xff, 0xff, 0x200), 0x1ffu); + EXPECT_EQ(reconstruct_seqnum(0xfe, 0xff, 0x200), 0x1feu); + EXPECT_EQ(reconstruct_seqnum(0xffff, 0xffff, 0x20000), 0x1ffffu); + EXPECT_EQ(reconstruct_seqnum(0xfffe, 0xffff, 0x20000), 0x1fffeu); + + // Test when the max seen sequence number is close to the uint64_t max value. + // In some cases, the closest numerical value in the integers will overflow + // a uint64_t. Instead of returning the closest value in Z_{2^64}, + // reconstruct_seqnum should return the closest integer less than 2^64, even + // if there is a closer value greater than 2^64. + EXPECT_EQ(reconstruct_seqnum(0, 0xff, 0xffffffffffffffff), + 0xffffffffffffff00u); + EXPECT_EQ(reconstruct_seqnum(0, 0xff, 0xfffffffffffffffe), + 0xffffffffffffff00u); + EXPECT_EQ(reconstruct_seqnum(1, 0xff, 0xffffffffffffffff), + 0xffffffffffffff01u); + EXPECT_EQ(reconstruct_seqnum(1, 0xff, 0xfffffffffffffffe), + 0xffffffffffffff01u); + EXPECT_EQ(reconstruct_seqnum(0xfe, 0xff, 0xffffffffffffffff), + 0xfffffffffffffffeu); + EXPECT_EQ(reconstruct_seqnum(0xfd, 0xff, 0xfffffffffffffffe), + 0xfffffffffffffffdu); + EXPECT_EQ(reconstruct_seqnum(0, 0xffff, 0xffffffffffffffff), + 0xffffffffffff0000u); + EXPECT_EQ(reconstruct_seqnum(0, 0xffff, 0xfffffffffffffffe), + 0xffffffffffff0000u); + EXPECT_EQ(reconstruct_seqnum(1, 0xffff, 0xffffffffffffffff), + 0xffffffffffff0001u); + EXPECT_EQ(reconstruct_seqnum(1, 0xffff, 0xfffffffffffffffe), + 0xffffffffffff0001u); + EXPECT_EQ(reconstruct_seqnum(0xfffe, 0xffff, 0xffffffffffffffff), + 0xfffffffffffffffeu); + EXPECT_EQ(reconstruct_seqnum(0xfffd, 0xffff, 0xfffffffffffffffe), + 0xfffffffffffffffdu); +} + +TEST(ReconstructSeqnumTest, Halfway) { + // Test wire sequence numbers that are close to halfway away from the max + // seen sequence number. The algorithm specifies that the output should be + // numerically closest to 1 plus the max seen (0x100 in the following test + // cases). With a max seen of 0x100 and a wire sequence of 0x81, the two + // closest values to 1+0x100 are 0x81 and 0x181, which are both the same + // amount away. The algorithm doesn't specify what to do on this edge case; + // our implementation chooses the larger value (0x181), on the assumption that + // it's more likely to be a new or larger sequence number rather than a replay + // or an out-of-order packet. + EXPECT_EQ(reconstruct_seqnum(0x80, 0xff, 0x100), 0x180u); + EXPECT_EQ(reconstruct_seqnum(0x81, 0xff, 0x100), 0x181u); + EXPECT_EQ(reconstruct_seqnum(0x82, 0xff, 0x100), 0x82u); + + // Repeat these tests with 16-bit wire sequence numbers. + EXPECT_EQ(reconstruct_seqnum(0x8000, 0xffff, 0x10000), 0x18000u); + EXPECT_EQ(reconstruct_seqnum(0x8001, 0xffff, 0x10000), 0x18001u); + EXPECT_EQ(reconstruct_seqnum(0x8002, 0xffff, 0x10000), 0x8002u); +} + TEST(SSLTest, CipherRules) { for (const CipherTest &t : kCipherTests) { SCOPED_TRACE(t.rule); From e13f7e2ff5432205f09b4679c8a7715f1c130372 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 21 Aug 2024 16:30:53 -0400 Subject: [PATCH 35/81] Specify the list of fuzzers with build.json This is a bit of a mess because we actually build each fuzzer as a separate target, but ah well. Migrating to FuzzTest will resolve that. Bug: 42290412 Change-Id: Ia32287ce8b5947a339e966df9e55e2afabed08c1 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70427 Reviewed-by: Bob Beck Commit-Queue: David Benjamin Auto-Submit: David Benjamin --- build.json | 8 +++++++ fuzz/CMakeLists.txt | 45 +++++++----------------------------- gen/sources.bzl | 35 ++++++++++++++++++++++++++++ gen/sources.cmake | 37 +++++++++++++++++++++++++++++ gen/sources.json | 36 +++++++++++++++++++++++++++++ util/generate_build_files.py | 4 +--- 6 files changed, 125 insertions(+), 40 deletions(-) diff --git a/build.json b/build.json index c44dc6716a..55fe1a88e1 100644 --- a/build.json +++ b/build.json @@ -1018,5 +1018,13 @@ "tool/internal.h", "tool/transport_common.h" ] + }, + "fuzz": { + // TODO(crbug.com/42290554): Unlike the other targets, each source here + // is expected to be built separately. When we migrate from libFuzzer to + // FuzzTest, this will be moot. + "srcs": [ + "fuzz/*.cc" + ] } } diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index 36ec9fbb7c..1c784a1123 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -1,7 +1,11 @@ -macro(fuzzer name) - add_executable(${name} ${name}.cc) +# TODO(crbug.com/42290412): Flatten this build up a layer. Between +# crbug.com/42290128, crbug.com/42290508 and crbug.com/42290554, there is enough +# churn that we've left it alone for now. +foreach(fuzzer ${FUZZ_SOURCES}) + cmake_path(GET fuzzer STEM name) + add_executable(${name} ../${fuzzer}) target_compile_options(${name} PRIVATE "-Wno-missing-prototypes") - target_link_libraries(${name} crypto ${ARGN}) + target_link_libraries(${name} crypto ssl pki) if(LIBFUZZER_FROM_DEPS) set_target_properties(${name} PROPERTIES LINK_FLAGS "-fsanitize=fuzzer-no-link") target_link_libraries(${name} Fuzzer) @@ -13,37 +17,4 @@ macro(fuzzer name) PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED YES) -endmacro() - -fuzzer(arm_cpuinfo) -fuzzer(bn_div) -fuzzer(bn_mod_exp) -fuzzer(cert) -fuzzer(client ssl) -fuzzer(conf) -fuzzer(crl_getcrlstatusforcert_fuzzer pki) -fuzzer(crl_parse_crl_certificatelist_fuzzer pki) -fuzzer(crl_parse_crl_tbscertlist_fuzzer pki) -fuzzer(crl_parse_issuing_distribution_point_fuzzer pki) -fuzzer(decode_client_hello_inner ssl) -fuzzer(der_roundtrip) -fuzzer(dtls_client ssl) -fuzzer(dtls_server ssl) -fuzzer(ocsp_parse_ocsp_cert_id_fuzzer pki) -fuzzer(ocsp_parse_ocsp_response_data_fuzzer pki) -fuzzer(ocsp_parse_ocsp_response_fuzzer pki) -fuzzer(ocsp_parse_ocsp_single_response_fuzzer pki) -fuzzer(parse_authority_key_identifier_fuzzer pki) -fuzzer(parse_certificate_fuzzer pki) -fuzzer(parse_crldp_fuzzer pki) -fuzzer(pkcs12) -fuzzer(pkcs8) -fuzzer(privkey) -fuzzer(read_pem) -fuzzer(server ssl) -fuzzer(session ssl) -fuzzer(spki) -fuzzer(ssl_ctx_api ssl) -fuzzer(verify_name_match_fuzzer pki) -fuzzer(verify_name_match_normalizename_fuzzer pki) -fuzzer(verify_name_match_verifynameinsubtree_fuzzer pki) +endforeach() diff --git a/gen/sources.bzl b/gen/sources.bzl index 5f8a3b2ada..4d0497f4bf 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -1052,6 +1052,41 @@ decrepit_test_sources = [ "decrepit/xts/xts_test.cc", ] +fuzz_sources = [ + "fuzz/arm_cpuinfo.cc", + "fuzz/bn_div.cc", + "fuzz/bn_mod_exp.cc", + "fuzz/cert.cc", + "fuzz/client.cc", + "fuzz/conf.cc", + "fuzz/crl_getcrlstatusforcert_fuzzer.cc", + "fuzz/crl_parse_crl_certificatelist_fuzzer.cc", + "fuzz/crl_parse_crl_tbscertlist_fuzzer.cc", + "fuzz/crl_parse_issuing_distribution_point_fuzzer.cc", + "fuzz/decode_client_hello_inner.cc", + "fuzz/der_roundtrip.cc", + "fuzz/dtls_client.cc", + "fuzz/dtls_server.cc", + "fuzz/ocsp_parse_ocsp_cert_id_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_response_data_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_response_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_single_response_fuzzer.cc", + "fuzz/parse_authority_key_identifier_fuzzer.cc", + "fuzz/parse_certificate_fuzzer.cc", + "fuzz/parse_crldp_fuzzer.cc", + "fuzz/pkcs12.cc", + "fuzz/pkcs8.cc", + "fuzz/privkey.cc", + "fuzz/read_pem.cc", + "fuzz/server.cc", + "fuzz/session.cc", + "fuzz/spki.cc", + "fuzz/ssl_ctx_api.cc", + "fuzz/verify_name_match_fuzzer.cc", + "fuzz/verify_name_match_normalizename_fuzzer.cc", + "fuzz/verify_name_match_verifynameinsubtree_fuzzer.cc", +] + pki_sources = [ "pki/cert_error_id.cc", "pki/cert_error_params.cc", diff --git a/gen/sources.cmake b/gen/sources.cmake index 919e0a6b0b..4595e9936a 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -1084,6 +1084,43 @@ set( decrepit/xts/xts_test.cc ) +set( + FUZZ_SOURCES + + fuzz/arm_cpuinfo.cc + fuzz/bn_div.cc + fuzz/bn_mod_exp.cc + fuzz/cert.cc + fuzz/client.cc + fuzz/conf.cc + fuzz/crl_getcrlstatusforcert_fuzzer.cc + fuzz/crl_parse_crl_certificatelist_fuzzer.cc + fuzz/crl_parse_crl_tbscertlist_fuzzer.cc + fuzz/crl_parse_issuing_distribution_point_fuzzer.cc + fuzz/decode_client_hello_inner.cc + fuzz/der_roundtrip.cc + fuzz/dtls_client.cc + fuzz/dtls_server.cc + fuzz/ocsp_parse_ocsp_cert_id_fuzzer.cc + fuzz/ocsp_parse_ocsp_response_data_fuzzer.cc + fuzz/ocsp_parse_ocsp_response_fuzzer.cc + fuzz/ocsp_parse_ocsp_single_response_fuzzer.cc + fuzz/parse_authority_key_identifier_fuzzer.cc + fuzz/parse_certificate_fuzzer.cc + fuzz/parse_crldp_fuzzer.cc + fuzz/pkcs12.cc + fuzz/pkcs8.cc + fuzz/privkey.cc + fuzz/read_pem.cc + fuzz/server.cc + fuzz/session.cc + fuzz/spki.cc + fuzz/ssl_ctx_api.cc + fuzz/verify_name_match_fuzzer.cc + fuzz/verify_name_match_normalizename_fuzzer.cc + fuzz/verify_name_match_verifynameinsubtree_fuzzer.cc +) + set( PKI_SOURCES diff --git a/gen/sources.json b/gen/sources.json index 795c3ff897..c2a97d6be3 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -1033,6 +1033,42 @@ "decrepit/xts/xts_test.cc" ] }, + "fuzz": { + "srcs": [ + "fuzz/arm_cpuinfo.cc", + "fuzz/bn_div.cc", + "fuzz/bn_mod_exp.cc", + "fuzz/cert.cc", + "fuzz/client.cc", + "fuzz/conf.cc", + "fuzz/crl_getcrlstatusforcert_fuzzer.cc", + "fuzz/crl_parse_crl_certificatelist_fuzzer.cc", + "fuzz/crl_parse_crl_tbscertlist_fuzzer.cc", + "fuzz/crl_parse_issuing_distribution_point_fuzzer.cc", + "fuzz/decode_client_hello_inner.cc", + "fuzz/der_roundtrip.cc", + "fuzz/dtls_client.cc", + "fuzz/dtls_server.cc", + "fuzz/ocsp_parse_ocsp_cert_id_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_response_data_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_response_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_single_response_fuzzer.cc", + "fuzz/parse_authority_key_identifier_fuzzer.cc", + "fuzz/parse_certificate_fuzzer.cc", + "fuzz/parse_crldp_fuzzer.cc", + "fuzz/pkcs12.cc", + "fuzz/pkcs8.cc", + "fuzz/privkey.cc", + "fuzz/read_pem.cc", + "fuzz/server.cc", + "fuzz/session.cc", + "fuzz/spki.cc", + "fuzz/ssl_ctx_api.cc", + "fuzz/verify_name_match_fuzzer.cc", + "fuzz/verify_name_match_normalizename_fuzzer.cc", + "fuzz/verify_name_match_verifynameinsubtree_fuzzer.cc" + ] + }, "pki": { "srcs": [ "pki/cert_error_id.cc", diff --git a/util/generate_build_files.py b/util/generate_build_files.py index fd9ca6c348..2c601df09d 100644 --- a/util/generate_build_files.py +++ b/util/generate_build_files.py @@ -629,8 +629,6 @@ def main(platforms): bssl_sys_files = FindRustFiles(os.path.join('src', 'rust', 'bssl-sys', 'src')) bssl_crypto_files = FindRustFiles(os.path.join('src', 'rust', 'bssl-crypto', 'src')) - fuzz_c_files = FindCFiles(os.path.join('src', 'fuzz'), NoTests) - # TODO(crbug.com/boringssl/542): generate_build_files.py historically reported # all the assembly files as part of libcrypto. Merge them for now, but we # should split them out later. @@ -658,7 +656,7 @@ def main(platforms): 'crypto_test': PrefixWithSrc(sources['crypto_test']['srcs']), 'crypto_test_data': PrefixWithSrc(sources['crypto_test']['data']), 'fips_fragments': PrefixWithSrc(sources['bcm']['internal_hdrs']), - 'fuzz': fuzz_c_files, + 'fuzz': PrefixWithSrc(sources['fuzz']['srcs']), 'pki': PrefixWithSrc(sources['pki']['srcs']), 'pki_headers': PrefixWithSrc(sources['pki']['hdrs']), 'pki_internal_headers': PrefixWithSrc(sources['pki']['internal_hdrs']), From da3cd90597c1a0da7f05f83e437d10b6a590e8ce Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Thu, 22 Aug 2024 15:18:14 -0700 Subject: [PATCH 36/81] Don't use weak symbols in the EDK2 build. Change-Id: Ie2ae13569a9000ecc6143ab74b69d4f886e27789 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70447 Reviewed-by: David Benjamin Auto-Submit: Adam Langley Commit-Queue: Adam Langley --- crypto/mem.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/crypto/mem.c b/crypto/mem.c index 23d49aae0e..9b466c1548 100644 --- a/crypto/mem.c +++ b/crypto/mem.c @@ -94,7 +94,11 @@ static void __asan_unpoison_memory_region(const void *addr, size_t size) {} // Windows doesn't really support weak symbols as of May 2019, and Clang on // Windows will emit strong symbols instead. See // https://bugs.llvm.org/show_bug.cgi?id=37598 -#if defined(__ELF__) && defined(__GNUC__) +// +// EDK2 targets UEFI but builds as ELF and then translates the binary to +// COFF(!). Thus it builds with __ELF__ defined but cannot actually cope with +// weak symbols. +#if !defined(__EDK2_BORINGSSL__) && defined(__ELF__) && defined(__GNUC__) #define WEAK_SYMBOL_FUNC(rettype, name, args) \ rettype name args __attribute__((weak)); #else @@ -242,7 +246,7 @@ void *OPENSSL_malloc(size_t size) { __asan_poison_memory_region(ptr, OPENSSL_MALLOC_PREFIX); return ((uint8_t *)ptr) + OPENSSL_MALLOC_PREFIX; - err: +err: // This only works because ERR does not call OPENSSL_malloc. OPENSSL_PUT_ERROR(CRYPTO, ERR_R_MALLOC_FAILURE); return NULL; @@ -523,7 +527,7 @@ int OPENSSL_vasprintf_internal(char **str, const char *format, va_list args, *str = candidate; return ret; - err: +err: deallocate(candidate); *str = NULL; errno = ENOMEM; From d520396e5535447a7ee6e1988770a5697ee64f92 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 15 Aug 2024 12:50:14 -0400 Subject: [PATCH 37/81] Move ECDSA_SIG out of BCM This CL adjusts the libcrypto <-> BCM ECDSA interface. Previously, we used ECDSA_do_sign and ECDSA_do_verify. This meant we have an allocated BIGNUM-based type (ECDSA_SIG) at the boundary. Instead use the fixed-width P1363 format at the boundary, which is nice and straightforward. For now, I haven't exported it out of anything, though we do have some things (Channel ID, WebCrypto) which actually want this format, so that may be worth revisiting later. Bug: 42290602 Change-Id: Ifbe0600fd23addc5f05141d18baad21a669ceca8 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/66829 Reviewed-by: Bob Beck Commit-Queue: Bob Beck Auto-Submit: David Benjamin --- crypto/ecdsa_extra/ecdsa_asn1.c | 174 ++++++++++++++++++++-- crypto/fipsmodule/bcm.c | 2 +- crypto/fipsmodule/ec/ec_key.c | 18 ++- crypto/fipsmodule/ecdsa/ecdsa.c | 159 +++++++------------- crypto/fipsmodule/ecdsa/ecdsa_test.cc | 8 + crypto/fipsmodule/ecdsa/internal.h | 39 +++-- crypto/fipsmodule/self_check/self_check.c | 43 +----- 7 files changed, 268 insertions(+), 175 deletions(-) diff --git a/crypto/ecdsa_extra/ecdsa_asn1.c b/crypto/ecdsa_extra/ecdsa_asn1.c index 8ddfb3b4d4..b2d4fc6936 100644 --- a/crypto/ecdsa_extra/ecdsa_asn1.c +++ b/crypto/ecdsa_extra/ecdsa_asn1.c @@ -62,34 +62,87 @@ #include #include "../bytestring/internal.h" -#include "../fipsmodule/ec/internal.h" +#include "../fipsmodule/ecdsa/internal.h" #include "../internal.h" +static ECDSA_SIG *ecdsa_sig_from_fixed(const EC_KEY *key, const uint8_t *in, + size_t len) { + const EC_GROUP *group = EC_KEY_get0_group(key); + if (group == NULL) { + OPENSSL_PUT_ERROR(ECDSA, ERR_R_PASSED_NULL_PARAMETER); + return NULL; + } + size_t scalar_len = BN_num_bytes(EC_GROUP_get0_order(group)); + if (len != 2 * scalar_len) { + OPENSSL_PUT_ERROR(ECDSA, ECDSA_R_BAD_SIGNATURE); + return NULL; + } + ECDSA_SIG *ret = ECDSA_SIG_new(); + if (ret == NULL || + !BN_bin2bn(in, scalar_len, ret->r) || + !BN_bin2bn(in + scalar_len, scalar_len, ret->s)) { + ECDSA_SIG_free(ret); + return NULL; + } + return ret; +} + +static int ecdsa_sig_to_fixed(const EC_KEY *key, uint8_t *out, size_t *out_len, + size_t max_out, const ECDSA_SIG *sig) { + const EC_GROUP *group = EC_KEY_get0_group(key); + if (group == NULL) { + OPENSSL_PUT_ERROR(ECDSA, ERR_R_PASSED_NULL_PARAMETER); + return 0; + } + size_t scalar_len = BN_num_bytes(EC_GROUP_get0_order(group)); + if (max_out < 2 * scalar_len) { + OPENSSL_PUT_ERROR(EC, EC_R_BUFFER_TOO_SMALL); + return 0; + } + if (BN_is_negative(sig->r) || + !BN_bn2bin_padded(out, scalar_len, sig->r) || + BN_is_negative(sig->s) || + !BN_bn2bin_padded(out + scalar_len, scalar_len, sig->s)) { + OPENSSL_PUT_ERROR(ECDSA, ECDSA_R_BAD_SIGNATURE); + return 0; + } + *out_len = 2 * scalar_len; + return 1; +} + int ECDSA_sign(int type, const uint8_t *digest, size_t digest_len, uint8_t *sig, - unsigned int *sig_len, const EC_KEY *eckey) { + unsigned int *out_sig_len, const EC_KEY *eckey) { if (eckey->ecdsa_meth && eckey->ecdsa_meth->sign) { - return eckey->ecdsa_meth->sign(digest, digest_len, sig, sig_len, + return eckey->ecdsa_meth->sign(digest, digest_len, sig, out_sig_len, (EC_KEY*) eckey /* cast away const */); } - int ret = 0; - ECDSA_SIG *s = ECDSA_do_sign(digest, digest_len, eckey); + *out_sig_len = 0; + uint8_t fixed[ECDSA_MAX_FIXED_LEN]; + size_t fixed_len; + if (!ecdsa_sign_fixed(digest, digest_len, fixed, &fixed_len, sizeof(fixed), + eckey)) { + return 0; + } + + // TODO(davidben): We can actually do better and go straight from the DER + // format to the fixed-width format without a malloc. + ECDSA_SIG *s = ecdsa_sig_from_fixed(eckey, fixed, fixed_len); if (s == NULL) { - *sig_len = 0; - goto err; + return 0; } + int ret = 0; CBB cbb; CBB_init_fixed(&cbb, sig, ECDSA_size(eckey)); size_t len; if (!ECDSA_SIG_marshal(&cbb, s) || !CBB_finish(&cbb, NULL, &len)) { OPENSSL_PUT_ERROR(ECDSA, ECDSA_R_ENCODE_ERROR); - *sig_len = 0; goto err; } - *sig_len = (unsigned)len; + *out_sig_len = (unsigned)len; ret = 1; err: @@ -99,12 +152,13 @@ int ECDSA_sign(int type, const uint8_t *digest, size_t digest_len, uint8_t *sig, int ECDSA_verify(int type, const uint8_t *digest, size_t digest_len, const uint8_t *sig, size_t sig_len, const EC_KEY *eckey) { - ECDSA_SIG *s; + // Decode the ECDSA signature. + // + // TODO(davidben): We can actually do better and go straight from the DER + // format to the fixed-width format without a malloc. int ret = 0; uint8_t *der = NULL; - - // Decode the ECDSA signature. - s = ECDSA_SIG_from_bytes(sig, sig_len); + ECDSA_SIG *s = ECDSA_SIG_from_bytes(sig, sig_len); if (s == NULL) { goto err; } @@ -118,7 +172,10 @@ int ECDSA_verify(int type, const uint8_t *digest, size_t digest_len, goto err; } - ret = ECDSA_do_verify(digest, digest_len, s, eckey); + uint8_t fixed[ECDSA_MAX_FIXED_LEN]; + size_t fixed_len; + ret = ecdsa_sig_to_fixed(eckey, fixed, &fixed_len, sizeof(fixed), s) && + ecdsa_verify_fixed(digest, digest_len, fixed, fixed_len, eckey); err: OPENSSL_free(der); @@ -147,6 +204,95 @@ size_t ECDSA_size(const EC_KEY *key) { return ECDSA_SIG_max_len(group_order_size); } +ECDSA_SIG *ECDSA_SIG_new(void) { + ECDSA_SIG *sig = OPENSSL_malloc(sizeof(ECDSA_SIG)); + if (sig == NULL) { + return NULL; + } + sig->r = BN_new(); + sig->s = BN_new(); + if (sig->r == NULL || sig->s == NULL) { + ECDSA_SIG_free(sig); + return NULL; + } + return sig; +} + +void ECDSA_SIG_free(ECDSA_SIG *sig) { + if (sig == NULL) { + return; + } + + BN_free(sig->r); + BN_free(sig->s); + OPENSSL_free(sig); +} + +const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig) { + return sig->r; +} + +const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig) { + return sig->s; +} + +void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **out_r, + const BIGNUM **out_s) { + if (out_r != NULL) { + *out_r = sig->r; + } + if (out_s != NULL) { + *out_s = sig->s; + } +} + +int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) { + if (r == NULL || s == NULL) { + return 0; + } + BN_free(sig->r); + BN_free(sig->s); + sig->r = r; + sig->s = s; + return 1; +} + +int ECDSA_do_verify(const uint8_t *digest, size_t digest_len, + const ECDSA_SIG *sig, const EC_KEY *eckey) { + uint8_t fixed[ECDSA_MAX_FIXED_LEN]; + size_t fixed_len; + return ecdsa_sig_to_fixed(eckey, fixed, &fixed_len, sizeof(fixed), sig) && + ecdsa_verify_fixed(digest, digest_len, fixed, fixed_len, eckey); +} + +// This function is only exported for testing and is not called in production +// code. +ECDSA_SIG *ECDSA_sign_with_nonce_and_leak_private_key_for_testing( + const uint8_t *digest, size_t digest_len, const EC_KEY *eckey, + const uint8_t *nonce, size_t nonce_len) { + uint8_t sig[ECDSA_MAX_FIXED_LEN]; + size_t sig_len; + if (!ecdsa_sign_fixed_with_nonce_for_known_answer_test( + digest, digest_len, sig, &sig_len, sizeof(sig), eckey, nonce, + nonce_len)) { + return NULL; + } + + return ecdsa_sig_from_fixed(eckey, sig, sig_len); +} + +ECDSA_SIG *ECDSA_do_sign(const uint8_t *digest, size_t digest_len, + const EC_KEY *eckey) { + uint8_t sig[ECDSA_MAX_FIXED_LEN]; + size_t sig_len; + if (!ecdsa_sign_fixed(digest, digest_len, sig, &sig_len, sizeof(sig), + eckey)) { + return NULL; + } + + return ecdsa_sig_from_fixed(eckey, sig, sig_len); +} + ECDSA_SIG *ECDSA_SIG_parse(CBS *cbs) { ECDSA_SIG *ret = ECDSA_SIG_new(); if (ret == NULL) { diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index c356730d1c..48becb9cce 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -196,7 +196,7 @@ int BORINGSSL_integrity_test(void) { assert_within(start, RAND_bytes, end); assert_within(start, EC_GROUP_cmp, end); assert_within(start, SHA256_Update, end); - assert_within(start, ECDSA_do_verify, end); + assert_within(start, ecdsa_verify_fixed, end); assert_within(start, EVP_AEAD_CTX_seal, end); #if defined(BORINGSSL_SHARED_LIBRARY) diff --git a/crypto/fipsmodule/ec/ec_key.c b/crypto/fipsmodule/ec/ec_key.c index 8cdb5c3e75..1eef0212cf 100644 --- a/crypto/fipsmodule/ec/ec_key.c +++ b/crypto/fipsmodule/ec/ec_key.c @@ -75,10 +75,12 @@ #include #include #include +#include #include #include "internal.h" #include "../delocate.h" +#include "../ecdsa/internal.h" #include "../service_indicator/internal.h" #include "../../internal.h" @@ -344,15 +346,17 @@ int EC_KEY_check_fips(const EC_KEY *key) { } if (key->priv_key) { - uint8_t data[16] = {0}; - ECDSA_SIG *sig = ECDSA_do_sign(data, sizeof(data), key); + uint8_t digest[SHA256_DIGEST_LENGTH] = {0}; + uint8_t sig[ECDSA_MAX_FIXED_LEN]; + size_t sig_len; + if (!ecdsa_sign_fixed(digest, sizeof(digest), sig, &sig_len, sizeof(sig), + key)) { + goto end; + } if (boringssl_fips_break_test("ECDSA_PWCT")) { - data[0] = ~data[0]; + digest[0] = ~digest[0]; } - int ok = sig != NULL && - ECDSA_do_verify(data, sizeof(data), sig, key); - ECDSA_SIG_free(sig); - if (!ok) { + if (!ecdsa_verify_fixed(digest, sizeof(digest), sig, sig_len, key)) { OPENSSL_PUT_ERROR(EC, EC_R_PUBLIC_KEY_VALIDATION_FAILED); goto end; } diff --git a/crypto/fipsmodule/ecdsa/ecdsa.c b/crypto/fipsmodule/ecdsa/ecdsa.c index 3bd018d379..cba8972eb9 100644 --- a/crypto/fipsmodule/ecdsa/ecdsa.c +++ b/crypto/fipsmodule/ecdsa/ecdsa.c @@ -95,61 +95,9 @@ static void digest_to_scalar(const EC_GROUP *group, EC_SCALAR *out, order->width); } -ECDSA_SIG *ECDSA_SIG_new(void) { - ECDSA_SIG *sig = OPENSSL_malloc(sizeof(ECDSA_SIG)); - if (sig == NULL) { - return NULL; - } - sig->r = BN_new(); - sig->s = BN_new(); - if (sig->r == NULL || sig->s == NULL) { - ECDSA_SIG_free(sig); - return NULL; - } - return sig; -} - -void ECDSA_SIG_free(ECDSA_SIG *sig) { - if (sig == NULL) { - return; - } - - BN_free(sig->r); - BN_free(sig->s); - OPENSSL_free(sig); -} - -const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig) { - return sig->r; -} - -const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig) { - return sig->s; -} - -void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **out_r, - const BIGNUM **out_s) { - if (out_r != NULL) { - *out_r = sig->r; - } - if (out_s != NULL) { - *out_s = sig->s; - } -} - -int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) { - if (r == NULL || s == NULL) { - return 0; - } - BN_free(sig->r); - BN_free(sig->s); - sig->r = r; - sig->s = s; - return 1; -} - -int ecdsa_do_verify_no_self_test(const uint8_t *digest, size_t digest_len, - const ECDSA_SIG *sig, const EC_KEY *eckey) { +int ecdsa_verify_fixed_no_self_test(const uint8_t *digest, size_t digest_len, + const uint8_t *sig, size_t sig_len, + const EC_KEY *eckey) { const EC_GROUP *group = EC_KEY_get0_group(eckey); const EC_POINT *pub_key = EC_KEY_get0_public_key(eckey); if (group == NULL || pub_key == NULL || sig == NULL) { @@ -157,11 +105,13 @@ int ecdsa_do_verify_no_self_test(const uint8_t *digest, size_t digest_len, return 0; } + size_t scalar_len = BN_num_bytes(EC_GROUP_get0_order(group)); EC_SCALAR r, s, u1, u2, s_inv_mont, m; - if (BN_is_zero(sig->r) || - !ec_bignum_to_scalar(group, &r, sig->r) || - BN_is_zero(sig->s) || - !ec_bignum_to_scalar(group, &s, sig->s)) { + if (sig_len != 2 * scalar_len || + !ec_scalar_from_bytes(group, &r, sig, scalar_len) || + ec_scalar_is_zero(group, &r) || + !ec_scalar_from_bytes(group, &s, sig + scalar_len, scalar_len) || + ec_scalar_is_zero(group, &s)) { OPENSSL_PUT_ERROR(ECDSA, ECDSA_R_BAD_SIGNATURE); return 0; } @@ -195,24 +145,31 @@ int ecdsa_do_verify_no_self_test(const uint8_t *digest, size_t digest_len, return 1; } -int ECDSA_do_verify(const uint8_t *digest, size_t digest_len, - const ECDSA_SIG *sig, const EC_KEY *eckey) { +int ecdsa_verify_fixed(const uint8_t *digest, size_t digest_len, + const uint8_t *sig, size_t sig_len, const EC_KEY *key) { boringssl_ensure_ecc_self_test(); - return ecdsa_do_verify_no_self_test(digest, digest_len, sig, eckey); + return ecdsa_verify_fixed_no_self_test(digest, digest_len, sig, sig_len, key); } -static ECDSA_SIG *ecdsa_sign_impl(const EC_GROUP *group, int *out_retry, - const EC_SCALAR *priv_key, const EC_SCALAR *k, - const uint8_t *digest, size_t digest_len) { +static int ecdsa_sign_impl(const EC_GROUP *group, int *out_retry, uint8_t *sig, + size_t *out_sig_len, size_t max_sig_len, + const EC_SCALAR *priv_key, const EC_SCALAR *k, + const uint8_t *digest, size_t digest_len) { *out_retry = 0; // Check that the size of the group order is FIPS compliant (FIPS 186-4 // B.5.2). const BIGNUM *order = EC_GROUP_get0_order(group); if (BN_num_bits(order) < 160) { - OPENSSL_PUT_ERROR(ECDSA, EC_R_INVALID_GROUP_ORDER); - return NULL; + OPENSSL_PUT_ERROR(EC, EC_R_INVALID_GROUP_ORDER); + return 0; + } + + size_t sig_len = 2 * BN_num_bytes(order); + if (sig_len > max_sig_len) { + OPENSSL_PUT_ERROR(EC, EC_R_BUFFER_TOO_SMALL); + return 0; } // Compute r, the x-coordinate of k * generator. @@ -220,12 +177,12 @@ static ECDSA_SIG *ecdsa_sign_impl(const EC_GROUP *group, int *out_retry, EC_SCALAR r; if (!ec_point_mul_scalar_base(group, &tmp_point, k) || !ec_get_x_coordinate_as_scalar(group, &r, &tmp_point)) { - return NULL; + return 0; } if (constant_time_declassify_int(ec_scalar_is_zero(group, &r))) { *out_retry = 1; - return NULL; + return 0; } // s = priv_key * r. Note if only one parameter is in the Montgomery domain, @@ -252,71 +209,59 @@ static ECDSA_SIG *ecdsa_sign_impl(const EC_GROUP *group, int *out_retry, ec_scalar_mul_montgomery(group, &s, &s, &tmp); if (constant_time_declassify_int(ec_scalar_is_zero(group, &s))) { *out_retry = 1; - return NULL; + return 0; } CONSTTIME_DECLASSIFY(r.words, sizeof(r.words)); CONSTTIME_DECLASSIFY(s.words, sizeof(r.words)); - ECDSA_SIG *ret = ECDSA_SIG_new(); - if (ret == NULL || // - !bn_set_words(ret->r, r.words, order->width) || - !bn_set_words(ret->s, s.words, order->width)) { - ECDSA_SIG_free(ret); - return NULL; - } - return ret; + size_t len; + ec_scalar_to_bytes(group, sig, &len, &r); + assert(len == sig_len / 2); + ec_scalar_to_bytes(group, sig + len, &len, &s); + assert(len == sig_len / 2); + *out_sig_len = sig_len; + return 1; } -ECDSA_SIG *ecdsa_sign_with_nonce_for_known_answer_test(const uint8_t *digest, - size_t digest_len, - const EC_KEY *eckey, - const uint8_t *nonce, - size_t nonce_len) { +int ecdsa_sign_fixed_with_nonce_for_known_answer_test( + const uint8_t *digest, size_t digest_len, uint8_t *sig, size_t *out_sig_len, + size_t max_sig_len, const EC_KEY *eckey, const uint8_t *nonce, + size_t nonce_len) { if (eckey->ecdsa_meth && eckey->ecdsa_meth->sign) { OPENSSL_PUT_ERROR(ECDSA, ECDSA_R_NOT_IMPLEMENTED); - return NULL; + return 0; } const EC_GROUP *group = EC_KEY_get0_group(eckey); if (group == NULL || eckey->priv_key == NULL) { OPENSSL_PUT_ERROR(ECDSA, ERR_R_PASSED_NULL_PARAMETER); - return NULL; + return 0; } const EC_SCALAR *priv_key = &eckey->priv_key->scalar; EC_SCALAR k; if (!ec_scalar_from_bytes(group, &k, nonce, nonce_len)) { - return NULL; + return 0; } int retry_ignored; - return ecdsa_sign_impl(group, &retry_ignored, priv_key, &k, digest, - digest_len); -} - -// This function is only exported for testing and is not called in production -// code. -ECDSA_SIG *ECDSA_sign_with_nonce_and_leak_private_key_for_testing( - const uint8_t *digest, size_t digest_len, const EC_KEY *eckey, - const uint8_t *nonce, size_t nonce_len) { - boringssl_ensure_ecc_self_test(); - - return ecdsa_sign_with_nonce_for_known_answer_test(digest, digest_len, eckey, - nonce, nonce_len); + return ecdsa_sign_impl(group, &retry_ignored, sig, out_sig_len, max_sig_len, + priv_key, &k, digest, digest_len); } -ECDSA_SIG *ECDSA_do_sign(const uint8_t *digest, size_t digest_len, - const EC_KEY *eckey) { +int ecdsa_sign_fixed(const uint8_t *digest, size_t digest_len, uint8_t *sig, + size_t *out_sig_len, size_t max_sig_len, + const EC_KEY *eckey) { boringssl_ensure_ecc_self_test(); if (eckey->ecdsa_meth && eckey->ecdsa_meth->sign) { OPENSSL_PUT_ERROR(ECDSA, ECDSA_R_NOT_IMPLEMENTED); - return NULL; + return 0; } const EC_GROUP *group = EC_KEY_get0_group(eckey); if (group == NULL || eckey->priv_key == NULL) { OPENSSL_PUT_ERROR(ECDSA, ERR_R_PASSED_NULL_PARAMETER); - return NULL; + return 0; } const BIGNUM *order = EC_GROUP_get0_order(group); const EC_SCALAR *priv_key = &eckey->priv_key->scalar; @@ -340,12 +285,11 @@ ECDSA_SIG *ECDSA_do_sign(const uint8_t *digest, size_t digest_len, // FIPS) because the probability of requiring even one retry is negligible, // let alone 32. static const int kMaxIterations = 32; - ECDSA_SIG *ret = NULL; + int ret = 0; int iters = 0; for (;;) { EC_SCALAR k; if (!ec_random_nonzero_scalar(group, &k, additional_data)) { - ret = NULL; goto out; } @@ -354,8 +298,9 @@ ECDSA_SIG *ECDSA_do_sign(const uint8_t *digest, size_t digest_len, CONSTTIME_SECRET(k.words, sizeof(k.words)); int retry; - ret = ecdsa_sign_impl(group, &retry, priv_key, &k, digest, digest_len); - if (ret != NULL || !retry) { + ret = ecdsa_sign_impl(group, &retry, sig, out_sig_len, max_sig_len, + priv_key, &k, digest, digest_len); + if (ret || !retry) { goto out; } diff --git a/crypto/fipsmodule/ecdsa/ecdsa_test.cc b/crypto/fipsmodule/ecdsa/ecdsa_test.cc index 58769359a1..185621088e 100644 --- a/crypto/fipsmodule/ecdsa/ecdsa_test.cc +++ b/crypto/fipsmodule/ecdsa/ecdsa_test.cc @@ -285,6 +285,14 @@ TEST(ECDSATest, BuiltinCurves) { // Verify a tampered signature. TestTamperedSig(kRawAPI, digest, 20, ecdsa_sig.get(), eckey.get(), order); + + // Negative components should not be accepted. + BN_set_negative(ecdsa_sig->r, 1); + EXPECT_FALSE(ECDSA_do_verify(digest, 20, ecdsa_sig.get(), eckey.get())); + BN_set_negative(ecdsa_sig->r, 0); + BN_set_negative(ecdsa_sig->s, 1); + EXPECT_FALSE(ECDSA_do_verify(digest, 20, ecdsa_sig.get(), eckey.get())); + BN_set_negative(ecdsa_sig->s, 0); } } diff --git a/crypto/fipsmodule/ecdsa/internal.h b/crypto/fipsmodule/ecdsa/internal.h index 645959fb7e..0ae08ace69 100644 --- a/crypto/fipsmodule/ecdsa/internal.h +++ b/crypto/fipsmodule/ecdsa/internal.h @@ -17,25 +17,42 @@ #include +#include "../ec/internal.h" + #if defined(__cplusplus) extern "C" { #endif -// ecdsa_sign_with_nonce_for_known_answer_test behaves like |ECDSA_do_sign| but -// takes a fixed nonce. This function is used as part of known-answer tests in -// the FIPS module. -ECDSA_SIG *ecdsa_sign_with_nonce_for_known_answer_test(const uint8_t *digest, - size_t digest_len, - const EC_KEY *eckey, - const uint8_t *nonce, - size_t nonce_len); +// ECDSA_MAX_FIXED_LEN is the maximum length of an ECDSA signature in the +// fixed-width, big-endian format from IEEE P1363. +#define ECDSA_MAX_FIXED_LEN (2 * EC_MAX_BYTES) + +// ecdsa_sign_fixed behaves like |ECDSA_sign| but uses the fixed-width, +// big-endian format from IEEE P1363. +int ecdsa_sign_fixed(const uint8_t *digest, size_t digest_len, uint8_t *sig, + size_t *out_sig_len, size_t max_sig_len, + const EC_KEY *key); + +// ecdsa_sign_fixed_with_nonce_for_known_answer_test behaves like +// |ecdsa_sign_fixed| but takes a caller-supplied nonce. This function is used +// as part of known-answer tests in the FIPS module. +int ecdsa_sign_fixed_with_nonce_for_known_answer_test( + const uint8_t *digest, size_t digest_len, uint8_t *sig, size_t *out_sig_len, + size_t max_sig_len, const EC_KEY *key, const uint8_t *nonce, + size_t nonce_len); + +// ecdsa_verify_fixed behaves like |ECDSA_verify| but uses the fixed-width, +// big-endian format from IEEE P1363. +int ecdsa_verify_fixed(const uint8_t *digest, size_t digest_len, + const uint8_t *sig, size_t sig_len, const EC_KEY *key); -// ecdsa_do_verify_no_self_test does the same as |ECDSA_do_verify|, but doesn't +// ecdsa_verify_fixed_no_self_test behaves like ecdsa_verify_fixed, but doesn't // try to run the self-test first. This is for use in the self tests themselves, // to prevent an infinite loop. -int ecdsa_do_verify_no_self_test(const uint8_t *digest, size_t digest_len, - const ECDSA_SIG *sig, const EC_KEY *eckey); +int ecdsa_verify_fixed_no_self_test(const uint8_t *digest, size_t digest_len, + const uint8_t *sig, size_t sig_len, + const EC_KEY *key); #if defined(__cplusplus) diff --git a/crypto/fipsmodule/self_check/self_check.c b/crypto/fipsmodule/self_check/self_check.c index 1984630b66..7afcb75bd7 100644 --- a/crypto/fipsmodule/self_check/self_check.c +++ b/crypto/fipsmodule/self_check/self_check.c @@ -77,28 +77,6 @@ static int set_bignum(BIGNUM **out, const uint8_t *in, size_t len) { return *out != NULL; } -static int serialize_ecdsa_sig(uint8_t *out, size_t out_len, - const ECDSA_SIG *sig) { - if ((out_len & 1) || // - !BN_bn2bin_padded(out, out_len / 2, sig->r) || - !BN_bn2bin_padded(out + out_len / 2, out_len / 2, sig->s)) { - return 0; - } - return 1; -} - -static ECDSA_SIG *parse_ecdsa_sig(const uint8_t *in, size_t in_len) { - ECDSA_SIG *ret = ECDSA_SIG_new(); - if (!ret || // - (in_len & 1) || - BN_bin2bn(in, in_len/2, ret->r) == NULL || - BN_bin2bn(in + in_len/2, in_len/2, ret->s) == NULL) { - ECDSA_SIG_free(ret); - ret = NULL; - } - return ret; -} - static RSA *self_test_rsa_key(void) { static const uint8_t kN[] = { 0xd3, 0x3a, 0x62, 0x9f, 0x07, 0x77, 0xb0, 0x18, 0xf3, 0xff, 0xfe, 0xcc, @@ -415,7 +393,6 @@ static int boringssl_self_test_ecc(void) { EC_POINT *ec_point_in = NULL; EC_POINT *ec_point_out = NULL; BIGNUM *ec_scalar = NULL; - ECDSA_SIG *sig = NULL; ec_key = self_test_ecdsa_key(); if (ec_key == NULL) { @@ -443,13 +420,12 @@ static int boringssl_self_test_ecc(void) { uint8_t ecdsa_k[32] = {0}; ecdsa_k[31] = 42; - sig = ecdsa_sign_with_nonce_for_known_answer_test( - kECDSASignDigest, sizeof(kECDSASignDigest), ec_key, ecdsa_k, - sizeof(ecdsa_k)); - uint8_t ecdsa_sign_output[64]; - if (sig == NULL || - !serialize_ecdsa_sig(ecdsa_sign_output, sizeof(ecdsa_sign_output), sig) || + size_t ecdsa_sign_output_len; + if (!ecdsa_sign_fixed_with_nonce_for_known_answer_test( + kECDSASignDigest, sizeof(kECDSASignDigest), ecdsa_sign_output, + &ecdsa_sign_output_len, sizeof(ecdsa_sign_output), ec_key, ecdsa_k, + sizeof(ecdsa_k)) || !check_test(kECDSASignSig, ecdsa_sign_output, sizeof(ecdsa_sign_output), "ECDSA-sign signature")) { fprintf(stderr, "ECDSA-sign KAT failed.\n"); @@ -470,11 +446,9 @@ static int boringssl_self_test_ecc(void) { 0x8e, 0x5f, 0x64, 0xc3, 0x7e, 0xa2, 0xcf, 0x05, 0x29, }; - ECDSA_SIG_free(sig); - sig = parse_ecdsa_sig(kECDSAVerifySig, sizeof(kECDSAVerifySig)); - if (!sig || - !ecdsa_do_verify_no_self_test(kECDSAVerifyDigest, - sizeof(kECDSAVerifyDigest), sig, ec_key)) { + if (!ecdsa_verify_fixed_no_self_test( + kECDSAVerifyDigest, sizeof(kECDSAVerifyDigest), kECDSAVerifySig, + sizeof(kECDSAVerifySig), ec_key)) { fprintf(stderr, "ECDSA-verify KAT failed.\n"); goto err; } @@ -532,7 +506,6 @@ static int boringssl_self_test_ecc(void) { EC_POINT_free(ec_point_in); EC_POINT_free(ec_point_out); BN_free(ec_scalar); - ECDSA_SIG_free(sig); return ret; } From eaca041e9d81c392f59ebe1f36581cfda99dafd4 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 23 Aug 2024 13:27:52 -0400 Subject: [PATCH 38/81] runner: Convert a few more of the test stack's parsers to cryptobyte This is in preparation for adding code to parse the tls_flags extension. Change-Id: Ia82e7cd6a5d76663cfc817eb16271dd51bbfa26d Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70487 Commit-Queue: Bob Beck Auto-Submit: David Benjamin Reviewed-by: Bob Beck --- ssl/test/runner/handshake_messages.go | 130 +++++++------------------- 1 file changed, 34 insertions(+), 96 deletions(-) diff --git a/ssl/test/runner/handshake_messages.go b/ssl/test/runner/handshake_messages.go index 38dbc6d766..5b287ae4fb 100644 --- a/ssl/test/runner/handshake_messages.go +++ b/ssl/test/runner/handshake_messages.go @@ -2456,66 +2456,39 @@ type certificateVerifyMsg struct { signature []byte } -func (m *certificateVerifyMsg) marshal() (x []byte) { +func (m *certificateVerifyMsg) marshal() []byte { if m.raw != nil { return m.raw } // See http://tools.ietf.org/html/rfc4346#section-7.4.8 - siglength := len(m.signature) - length := 2 + siglength - if m.hasSignatureAlgorithm { - length += 2 - } - x = make([]byte, 4+length) - x[0] = typeCertificateVerify - x[1] = uint8(length >> 16) - x[2] = uint8(length >> 8) - x[3] = uint8(length) - y := x[4:] - if m.hasSignatureAlgorithm { - y[0] = byte(m.signatureAlgorithm >> 8) - y[1] = byte(m.signatureAlgorithm) - y = y[2:] - } - y[0] = uint8(siglength >> 8) - y[1] = uint8(siglength) - copy(y[2:], m.signature) - - m.raw = x + msg := cryptobyte.NewBuilder(nil) + msg.AddUint8(typeCertificateVerify) + msg.AddUint24LengthPrefixed(func(body *cryptobyte.Builder) { + if m.hasSignatureAlgorithm { + body.AddUint16(uint16(m.signatureAlgorithm)) + } + addUint16LengthPrefixedBytes(body, m.signature) + }) - return + m.raw = msg.BytesOrPanic() + return m.raw } func (m *certificateVerifyMsg) unmarshal(data []byte) bool { m.raw = data - - if len(data) < 6 { - return false - } - - length := uint32(data[1])<<16 | uint32(data[2])<<8 | uint32(data[3]) - if uint32(len(data))-4 != length { - return false - } - - data = data[4:] + reader := cryptobyte.String(data[4:]) if m.hasSignatureAlgorithm { - m.signatureAlgorithm = signatureAlgorithm(data[0])<<8 | signatureAlgorithm(data[1]) - data = data[2:] - } - - if len(data) < 2 { - return false + var v uint16 + if !reader.ReadUint16(&v) { + return false + } + m.signatureAlgorithm = signatureAlgorithm(v) } - siglength := int(data[0])<<8 + int(data[1]) - data = data[2:] - if len(data) != siglength { + if !readUint16LengthPrefixedBytes(&reader, &m.signature) || + !reader.Empty() { return false } - - m.signature = data - return true } @@ -2589,86 +2562,51 @@ func (m *newSessionTicketMsg) unmarshal(data []byte) bool { panic("unknown version") } - if len(data) < 8 { + reader := cryptobyte.String(data[4:]) + if !reader.ReadUint32(&m.ticketLifetime) { return false } - m.ticketLifetime = uint32(data[4])<<24 | uint32(data[5])<<16 | uint32(data[6])<<8 | uint32(data[7]) - data = data[8:] if version >= VersionTLS13 { - if len(data) < 4 { + if !reader.ReadUint32(&m.ticketAgeAdd) || + !readUint8LengthPrefixedBytes(&reader, &m.ticketNonce) { return false } - m.ticketAgeAdd = uint32(data[0])<<24 | uint32(data[1])<<16 | uint32(data[2])<<8 | uint32(data[3]) - data = data[4:] - nonceLen := int(data[0]) - data = data[1:] - if len(data) < nonceLen { - return false - } - m.ticketNonce = data[:nonceLen] - data = data[nonceLen:] - } - - if len(data) < 2 { - return false - } - ticketLen := int(data[0])<<8 + int(data[1]) - data = data[2:] - if len(data) < ticketLen { - return false } - if version >= VersionTLS13 && ticketLen == 0 { + if !readUint16LengthPrefixedBytes(&reader, &m.ticket) || + (version >= VersionTLS13 && len(m.ticket) == 0) { return false } - m.ticket = data[:ticketLen] - data = data[ticketLen:] - if version >= VersionTLS13 { - if len(data) < 2 { - return false - } - - extensionsLength := int(data[0])<<8 | int(data[1]) - data = data[2:] - if extensionsLength != len(data) { + var extensions cryptobyte.String + if !reader.ReadUint16LengthPrefixed(&extensions) || !reader.Empty() { return false } - for len(data) != 0 { - if len(data) < 4 { - return false - } - extension := uint16(data[0])<<8 | uint16(data[1]) - length := int(data[2])<<8 | int(data[3]) - data = data[4:] - if len(data) < length { + for !extensions.Empty() { + var extension uint16 + var body cryptobyte.String + if !extensions.ReadUint16(&extension) || + !extensions.ReadUint16LengthPrefixed(&body) { return false } switch extension { case extensionEarlyData: - if length != 4 { + if !body.ReadUint32(&m.maxEarlyDataSize) || !body.Empty() { return false } - m.maxEarlyDataSize = uint32(data[0])<<24 | uint32(data[1])<<16 | uint32(data[2])<<8 | uint32(data[3]) default: if isGREASEValue(extension) { m.hasGREASEExtension = true } } - - data = data[length:] } } - if len(data) > 0 { - return false - } - - return true + return reader.Empty() } type helloVerifyRequestMsg struct { From 0fbc17af4067050c0530b134052a88c2f2b97923 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 21 Aug 2024 15:13:10 -0400 Subject: [PATCH 39/81] Use BSSL_NAMESPACE_{BEGIN,END} macros more consistently The macros will participate in symbol prefixing. Not that symbol prefixing particularly works, but let's be consistent. Change-Id: I54043a849682e2ba2b8576b59241035e4d4effbe Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70387 Commit-Queue: David Benjamin Auto-Submit: David Benjamin Reviewed-by: Bob Beck --- crypto/hpke/hpke_test.cc | 5 ++--- include/openssl/pki/certificate.h | 4 ++-- include/openssl/pki/signature_verify_cache.h | 4 ++-- include/openssl/pki/verify.h | 5 +++-- include/openssl/pki/verify_error.h | 7 ++++--- include/openssl/service_indicator.h | 4 ++-- pki/cert_error_id.cc | 4 ++-- pki/cert_error_id.h | 4 ++-- pki/cert_error_params.cc | 4 ++-- pki/cert_error_params.h | 4 ++-- pki/cert_errors.cc | 4 ++-- pki/cert_errors.h | 4 ++-- pki/cert_issuer_source.h | 4 ++-- pki/cert_issuer_source_static.cc | 4 ++-- pki/cert_issuer_source_static.h | 4 ++-- pki/cert_issuer_source_static_unittest.cc | 4 ++-- pki/cert_issuer_source_sync_unittest.h | 4 ++-- pki/certificate.cc | 4 ++-- pki/certificate_policies.cc | 4 ++-- pki/certificate_policies.h | 4 ++-- pki/certificate_policies_unittest.cc | 4 ++-- pki/common_cert_errors.cc | 6 ++++-- pki/common_cert_errors.h | 6 ++++-- pki/crl.cc | 4 ++-- pki/crl.h | 4 ++-- pki/crl_unittest.cc | 4 ++-- pki/encode_values.cc | 6 ++++-- pki/encode_values.h | 6 ++++-- pki/encode_values_unittest.cc | 6 ++++-- pki/extended_key_usage.cc | 4 ++-- pki/extended_key_usage.h | 4 ++-- pki/extended_key_usage_unittest.cc | 4 ++-- pki/general_names.cc | 4 ++-- pki/general_names.h | 4 ++-- pki/general_names_unittest.cc | 4 ++-- pki/input.cc | 8 ++++---- pki/input.h | 10 +++++++--- pki/input_unittest.cc | 6 ++++-- pki/ip_util.cc | 4 ++-- pki/ip_util.h | 4 ++-- pki/ip_util_unittest.cc | 4 ++-- pki/mock_signature_verify_cache.cc | 4 ++-- pki/mock_signature_verify_cache.h | 4 ++-- pki/name_constraints.cc | 4 ++-- pki/name_constraints.h | 4 ++-- pki/name_constraints_unittest.cc | 4 ++-- pki/nist_pkits_unittest.cc | 4 ++-- pki/nist_pkits_unittest.h | 4 ++-- pki/ocsp.cc | 4 ++-- pki/ocsp.h | 4 ++-- pki/ocsp_revocation_status.h | 4 ++-- pki/ocsp_unittest.cc | 4 ++-- pki/ocsp_verify_result.cc | 4 ++-- pki/ocsp_verify_result.h | 4 ++-- pki/parse_certificate.cc | 4 ++-- pki/parse_certificate.h | 4 ++-- pki/parse_certificate_unittest.cc | 4 ++-- pki/parse_name.cc | 4 ++-- pki/parse_name.h | 4 ++-- pki/parse_name_unittest.cc | 4 ++-- pki/parse_values.cc | 6 ++++-- pki/parse_values.h | 6 ++++-- pki/parse_values_unittest.cc | 6 ++++-- pki/parsed_certificate.cc | 4 ++-- pki/parsed_certificate.h | 4 ++-- pki/parsed_certificate_unittest.cc | 4 ++-- pki/parser.cc | 7 ++++--- pki/parser.h | 6 ++++-- pki/parser_unittest.cc | 6 ++++-- pki/path_builder.cc | 4 ++-- pki/path_builder.h | 4 ++-- pki/path_builder_pkits_unittest.cc | 4 ++-- pki/path_builder_unittest.cc | 4 ++-- pki/path_builder_verify_certificate_chain_unittest.cc | 4 ++-- pki/pem.cc | 4 ++-- pki/pem.h | 4 ++-- pki/pem_unittest.cc | 4 ++-- pki/revocation_util.cc | 4 ++-- pki/revocation_util.h | 4 ++-- pki/signature_algorithm.cc | 4 ++-- pki/signature_algorithm.h | 4 ++-- pki/signature_algorithm_unittest.cc | 4 ++-- pki/simple_path_builder_delegate.cc | 4 ++-- pki/simple_path_builder_delegate.h | 4 ++-- pki/simple_path_builder_delegate_unittest.cc | 4 ++-- pki/string_util.cc | 6 ++++-- pki/string_util.h | 6 ++++-- pki/string_util_unittest.cc | 4 ++-- pki/test_helpers.cc | 4 ++-- pki/test_helpers.h | 4 ++-- pki/trust_store.cc | 4 ++-- pki/trust_store.h | 4 ++-- pki/trust_store_collection.cc | 4 ++-- pki/trust_store_collection.h | 4 ++-- pki/trust_store_collection_unittest.cc | 4 ++-- pki/trust_store_in_memory.cc | 4 ++-- pki/trust_store_in_memory.h | 4 ++-- pki/trust_store_in_memory_unittest.cc | 4 ++-- pki/verify.cc | 4 ++-- pki/verify_certificate_chain.cc | 4 ++-- pki/verify_certificate_chain.h | 4 ++-- pki/verify_certificate_chain_pkits_unittest.cc | 4 ++-- pki/verify_certificate_chain_typed_unittest.h | 4 ++-- pki/verify_certificate_chain_unittest.cc | 4 ++-- pki/verify_error.cc | 4 ++-- pki/verify_name_match.cc | 4 ++-- pki/verify_name_match.h | 4 ++-- pki/verify_name_match_unittest.cc | 4 ++-- pki/verify_signed_data.cc | 4 ++-- pki/verify_signed_data.h | 4 ++-- pki/verify_signed_data_unittest.cc | 4 ++-- pki/verify_unittest.cc | 4 ++-- 112 files changed, 262 insertions(+), 230 deletions(-) diff --git a/crypto/hpke/hpke_test.cc b/crypto/hpke/hpke_test.cc index ce68adc601..2e22e335fa 100644 --- a/crypto/hpke/hpke_test.cc +++ b/crypto/hpke/hpke_test.cc @@ -34,7 +34,7 @@ #include "../test/test_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { const decltype(&EVP_hpke_aes_128_gcm) kAllAEADs[] = { @@ -635,5 +635,4 @@ TEST(HPKETest, InternalParseIntSafe) { ASSERT_FALSE(ParseIntSafe(&u16, "65536")); } - -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/include/openssl/pki/certificate.h b/include/openssl/pki/certificate.h index 782a70a622..9fc6e7b5f7 100644 --- a/include/openssl/pki/certificate.h +++ b/include/openssl/pki/certificate.h @@ -22,7 +22,7 @@ #include #include -namespace bssl { +BSSL_NAMESPACE_BEGIN struct CertificateInternals; @@ -78,6 +78,6 @@ class OPENSSL_EXPORT Certificate { std::unique_ptr internals_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // OPENSSL_HEADER_BSSL_PKI_CERTIFICATE_H_ && __cplusplus diff --git a/include/openssl/pki/signature_verify_cache.h b/include/openssl/pki/signature_verify_cache.h index ae7376563a..7068883756 100644 --- a/include/openssl/pki/signature_verify_cache.h +++ b/include/openssl/pki/signature_verify_cache.h @@ -8,7 +8,7 @@ #include #include -namespace bssl { +BSSL_NAMESPACE_BEGIN class OPENSSL_EXPORT SignatureVerifyCache { public: @@ -36,6 +36,6 @@ class OPENSSL_EXPORT SignatureVerifyCache { virtual Value Check(const std::string &key) = 0; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_SIGNATURE_VERIFY_CACHE_H_ && __cplusplus diff --git a/include/openssl/pki/verify.h b/include/openssl/pki/verify.h index 0c1b551ba9..06ca1af864 100644 --- a/include/openssl/pki/verify.h +++ b/include/openssl/pki/verify.h @@ -10,7 +10,8 @@ #include #include -namespace bssl { +BSSL_NAMESPACE_BEGIN + class CertIssuerSourceStatic; class TrustStoreInMemory; class CertificateVerifyOptions; @@ -165,6 +166,6 @@ OPENSSL_EXPORT std::optional> CertificateVerify( OPENSSL_EXPORT std::optional>> CertificateVerifyAllPaths(const CertificateVerifyOptions &opts); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_VERIFY_H_ diff --git a/include/openssl/pki/verify_error.h b/include/openssl/pki/verify_error.h index 34b5dc5f16..6bfb826ab7 100644 --- a/include/openssl/pki/verify_error.h +++ b/include/openssl/pki/verify_error.h @@ -15,10 +15,11 @@ #if !defined(OPENSSL_HEADER_BSSL_PKI_VERIFY_ERROR_H_) && defined(__cplusplus) #define OPENSSL_HEADER_BSSL_PKI_VERIFY_ERROR_H_ +#include + #include -#include -namespace bssl { +BSSL_NAMESPACE_BEGIN // VerifyError describes certificate chain validation result. class OPENSSL_EXPORT VerifyError { @@ -132,6 +133,6 @@ class OPENSSL_EXPORT VerifyError { std::string diagnostic_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // OPENSSL_HEADER_BSSL_PKI_VERIFY_ERROR_H_ diff --git a/include/openssl/service_indicator.h b/include/openssl/service_indicator.h index 33b38b23e0..e426e056f1 100644 --- a/include/openssl/service_indicator.h +++ b/include/openssl/service_indicator.h @@ -56,7 +56,7 @@ extern "C++" { return func; \ }() -namespace bssl { +BSSL_NAMESPACE_BEGIN enum class FIPSStatus { NOT_APPROVED = 0, @@ -87,7 +87,7 @@ class FIPSIndicatorHelper { const uint64_t before_; }; -} // namespace bssl +BSSL_NAMESPACE_END } // extern "C++" #endif // !BORINGSSL_NO_CXX diff --git a/pki/cert_error_id.cc b/pki/cert_error_id.cc index 81add1d38c..6c041d9292 100644 --- a/pki/cert_error_id.cc +++ b/pki/cert_error_id.cc @@ -4,11 +4,11 @@ #include "cert_error_id.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN const char *CertErrorIdToDebugString(CertErrorId id) { // The CertErrorId is simply a pointer for a C-string literal. return reinterpret_cast(id); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/cert_error_id.h b/pki/cert_error_id.h index d325b1bcc7..6f71a86b63 100644 --- a/pki/cert_error_id.h +++ b/pki/cert_error_id.h @@ -7,7 +7,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN // Each "class" of certificate error/warning has its own unique ID. This is // essentially like an error code, however the value is not stable. Under the @@ -32,6 +32,6 @@ using CertErrorId = const void *; // string literal given to DEFINE_CERT_ERROR_ID(), which is human-readable. OPENSSL_EXPORT const char *CertErrorIdToDebugString(CertErrorId id); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERT_ERROR_ID_H_ diff --git a/pki/cert_error_params.cc b/pki/cert_error_params.cc index dd962c43f4..e258e98759 100644 --- a/pki/cert_error_params.cc +++ b/pki/cert_error_params.cc @@ -11,7 +11,7 @@ #include "input.h" #include "string_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -132,4 +132,4 @@ OPENSSL_EXPORT std::unique_ptr CreateCertErrorParams2SizeT( return std::make_unique(name1, value1, name2, value2); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/cert_error_params.h b/pki/cert_error_params.h index c4077824d2..d960435eea 100644 --- a/pki/cert_error_params.h +++ b/pki/cert_error_params.h @@ -10,7 +10,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { class Input; @@ -54,6 +54,6 @@ OPENSSL_EXPORT std::unique_ptr CreateCertErrorParams1SizeT( OPENSSL_EXPORT std::unique_ptr CreateCertErrorParams2SizeT( const char *name1, size_t value1, const char *name2, size_t value2); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERT_ERROR_PARAMS_H_ diff --git a/pki/cert_errors.cc b/pki/cert_errors.cc index f54903eaca..8bd7084a98 100644 --- a/pki/cert_errors.cc +++ b/pki/cert_errors.cc @@ -10,7 +10,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -232,4 +232,4 @@ std::string CertPathErrors::ToDebugString( return result.str(); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/cert_errors.h b/pki/cert_errors.h index 43ea7fcdde..23b88ba6d6 100644 --- a/pki/cert_errors.h +++ b/pki/cert_errors.h @@ -54,7 +54,7 @@ #include "cert_error_id.h" #include "parsed_certificate.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN class CertErrorParams; class CertPathErrors; @@ -176,6 +176,6 @@ class OPENSSL_EXPORT CertPathErrors { CertErrors other_errors_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERT_ERRORS_H_ diff --git a/pki/cert_issuer_source.h b/pki/cert_issuer_source.h index 7de0fa460e..cffad9db9a 100644 --- a/pki/cert_issuer_source.h +++ b/pki/cert_issuer_source.h @@ -12,7 +12,7 @@ #include "parsed_certificate.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // Interface for looking up issuers of a certificate during path building. // Provides a synchronous and asynchronous method for retrieving issuers, so the @@ -63,6 +63,6 @@ class OPENSSL_EXPORT CertIssuerSource { std::unique_ptr *out_req) = 0; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERT_ISSUER_SOURCE_H_ diff --git a/pki/cert_issuer_source_static.cc b/pki/cert_issuer_source_static.cc index 162b8de408..1c15594df2 100644 --- a/pki/cert_issuer_source_static.cc +++ b/pki/cert_issuer_source_static.cc @@ -4,7 +4,7 @@ #include "cert_issuer_source_static.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN CertIssuerSourceStatic::CertIssuerSourceStatic() = default; CertIssuerSourceStatic::~CertIssuerSourceStatic() = default; @@ -42,4 +42,4 @@ void CertIssuerSourceStatic::AsyncGetIssuersOf( out_req->reset(); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/cert_issuer_source_static.h b/pki/cert_issuer_source_static.h index a0395efb8b..a0e11a07e2 100644 --- a/pki/cert_issuer_source_static.h +++ b/pki/cert_issuer_source_static.h @@ -12,7 +12,7 @@ #include "cert_issuer_source.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // Synchronously returns issuers from a pre-supplied set. class OPENSSL_EXPORT CertIssuerSourceStatic : public CertIssuerSource { @@ -50,6 +50,6 @@ class OPENSSL_EXPORT CertIssuerSourceStatic : public CertIssuerSource { intermediates_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERT_ISSUER_SOURCE_STATIC_H_ diff --git a/pki/cert_issuer_source_static_unittest.cc b/pki/cert_issuer_source_static_unittest.cc index 8b0a36c635..39ba2a8b3b 100644 --- a/pki/cert_issuer_source_static_unittest.cc +++ b/pki/cert_issuer_source_static_unittest.cc @@ -9,7 +9,7 @@ #include "cert_issuer_source_sync_unittest.h" #include "parsed_certificate.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -72,4 +72,4 @@ TEST(CertIssuerSourceStaticTest, AddCertsGetCertsAndClear) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/cert_issuer_source_sync_unittest.h b/pki/cert_issuer_source_sync_unittest.h index c9e25c11ac..d00bd63d4e 100644 --- a/pki/cert_issuer_source_sync_unittest.h +++ b/pki/cert_issuer_source_sync_unittest.h @@ -13,7 +13,7 @@ #include "cert_issuer_source.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -211,6 +211,6 @@ TYPED_TEST_P(CertIssuerSourceSyncNotNormalizedTest, REGISTER_TYPED_TEST_SUITE_P(CertIssuerSourceSyncNotNormalizedTest, OneMatchWithoutNormalization); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERT_ISSUER_SOURCE_SYNC_UNITTEST_H_ diff --git a/pki/certificate.cc b/pki/certificate.cc index db1c627010..5cb746c3e5 100644 --- a/pki/certificate.cc +++ b/pki/certificate.cc @@ -24,7 +24,7 @@ #include "pem.h" #include "parse_values.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -114,4 +114,4 @@ bssl::Span Certificate::GetSerialNumber() const { return internals_->cert->tbs().serial_number; } -} // namespace boringssl +BSSL_NAMESPACE_END diff --git a/pki/certificate_policies.cc b/pki/certificate_policies.cc index 198e3480be..70536b86bb 100644 --- a/pki/certificate_policies.cc +++ b/pki/certificate_policies.cc @@ -13,7 +13,7 @@ #include "parse_values.h" #include "parser.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -388,4 +388,4 @@ bool ParsePolicyMappings(der::Input policy_mappings_tlv, return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/certificate_policies.h b/pki/certificate_policies.h index ccba1e97e4..a6c736880d 100644 --- a/pki/certificate_policies.h +++ b/pki/certificate_policies.h @@ -12,7 +12,7 @@ #include #include "input.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN class CertErrors; @@ -123,6 +123,6 @@ struct ParsedPolicyMapping { [[nodiscard]] OPENSSL_EXPORT bool ParsePolicyMappings( der::Input policy_mappings_tlv, std::vector *mappings); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CERTIFICATE_POLICIES_H_ diff --git a/pki/certificate_policies_unittest.cc b/pki/certificate_policies_unittest.cc index 9458659d8e..f66b74815e 100644 --- a/pki/certificate_policies_unittest.cc +++ b/pki/certificate_policies_unittest.cc @@ -9,7 +9,7 @@ #include "parser.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { ::testing::AssertionResult LoadTestData(const std::string &name, @@ -309,4 +309,4 @@ TEST(ParseCertificatePoliciesExtensionTest, TwoPoliciesWithQualifiers) { // parsed_certificate_unittest.cc } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/common_cert_errors.cc b/pki/common_cert_errors.cc index 00f5743990..0e6ad0f93d 100644 --- a/pki/common_cert_errors.cc +++ b/pki/common_cert_errors.cc @@ -4,7 +4,8 @@ #include "common_cert_errors.h" -namespace bssl::cert_errors { +BSSL_NAMESPACE_BEGIN +namespace cert_errors { DEFINE_CERT_ERROR_ID(kInternalError, "Internal error"); DEFINE_CERT_ERROR_ID(kValidityFailedNotAfter, "Time is after notAfter"); @@ -79,4 +80,5 @@ DEFINE_CERT_ERROR_ID(kDeadlineExceeded, "Deadline exceeded"); DEFINE_CERT_ERROR_ID(kIterationLimitExceeded, "Iteration limit exceeded"); DEFINE_CERT_ERROR_ID(kDepthLimitExceeded, "Depth limit exceeded"); -} // namespace bssl::cert_errors +} // namespace cert_errors +BSSL_NAMESPACE_END diff --git a/pki/common_cert_errors.h b/pki/common_cert_errors.h index d2b37ba352..81d67f0882 100644 --- a/pki/common_cert_errors.h +++ b/pki/common_cert_errors.h @@ -13,7 +13,8 @@ // defined by the core verification/path building code). // // Errors may be defined for other domains. -namespace bssl::cert_errors { +BSSL_NAMESPACE_BEGIN +namespace cert_errors { // An internal error occurred which prevented path building or verification // from finishing. @@ -155,6 +156,7 @@ OPENSSL_EXPORT extern const CertErrorId kIterationLimitExceeded; // Depth limit was reached during path building. OPENSSL_EXPORT extern const CertErrorId kDepthLimitExceeded; -} // namespace bssl::cert_errors +} // namespace cert_errors +BSSL_NAMESPACE_END #endif // BSSL_PKI_COMMON_CERT_ERRORS_H_ diff --git a/pki/crl.cc b/pki/crl.cc index 63e1cc6d9e..70ab07a4fe 100644 --- a/pki/crl.cc +++ b/pki/crl.cc @@ -18,7 +18,7 @@ #include "verify_name_match.h" #include "verify_signed_data.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -670,4 +670,4 @@ CRLRevocationStatus CheckCRL(std::string_view raw_crl, return CRLRevocationStatus::UNKNOWN; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/crl.h b/pki/crl.h index d527de940c..2fd3b2f625 100644 --- a/pki/crl.h +++ b/pki/crl.h @@ -14,7 +14,7 @@ #include "parse_values.h" #include "parsed_certificate.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN struct ParsedCrlTbsCertList; struct ParsedDistributionPoint; @@ -215,6 +215,6 @@ GetCRLStatusForCert(der::Input cert_serial, CrlVersion crl_version, size_t target_cert_index, const ParsedDistributionPoint &cert_dp, int64_t verify_time_epoch_seconds, std::optional max_age_seconds); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_CRL_H_ diff --git a/pki/crl_unittest.cc b/pki/crl_unittest.cc index b9be70fc0b..f8f26d2e41 100644 --- a/pki/crl_unittest.cc +++ b/pki/crl_unittest.cc @@ -13,7 +13,7 @@ #include "string_util.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -205,4 +205,4 @@ TEST_P(CheckCRLTest, FromFile) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/encode_values.cc b/pki/encode_values.cc index 0054fa28f0..b2dbb83922 100644 --- a/pki/encode_values.cc +++ b/pki/encode_values.cc @@ -8,7 +8,8 @@ #include -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { namespace { @@ -104,4 +105,5 @@ bool EncodeUTCTime(const GeneralizedTime &time, uint8_t out[kUTCTimeLength]) { return true; } -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END diff --git a/pki/encode_values.h b/pki/encode_values.h index 030c864d5e..f175eeb9d7 100644 --- a/pki/encode_values.h +++ b/pki/encode_values.h @@ -10,7 +10,8 @@ #include -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { struct GeneralizedTime; @@ -40,6 +41,7 @@ static const size_t kUTCTimeLength = 13; OPENSSL_EXPORT bool EncodeUTCTime(const GeneralizedTime &time, uint8_t out[kUTCTimeLength]); -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END #endif // BSSL_DER_ENCODE_VALUES_H_ diff --git a/pki/encode_values_unittest.cc b/pki/encode_values_unittest.cc index e0a78205f2..2e60a43102 100644 --- a/pki/encode_values_unittest.cc +++ b/pki/encode_values_unittest.cc @@ -9,7 +9,8 @@ #include #include "parse_values.h" -namespace bssl::der::test { +BSSL_NAMESPACE_BEGIN +namespace der::test { namespace { @@ -166,4 +167,5 @@ TEST(EncodeValuesTest, EncodeUTCTime) { EXPECT_FALSE(EncodeUTCTime(time, out)); } -} // namespace bssl::der::test +} // namespace der::test +BSSL_NAMESPACE_END diff --git a/pki/extended_key_usage.cc b/pki/extended_key_usage.cc index 1aeeb6a129..a3bb1d4183 100644 --- a/pki/extended_key_usage.cc +++ b/pki/extended_key_usage.cc @@ -9,7 +9,7 @@ #include "input.h" #include "parser.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN bool ParseEKUExtension(der::Input extension_value, std::vector *eku_oids) { @@ -42,4 +42,4 @@ bool ParseEKUExtension(der::Input extension_value, return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/extended_key_usage.h b/pki/extended_key_usage.h index c78f157032..63f937a4ea 100644 --- a/pki/extended_key_usage.h +++ b/pki/extended_key_usage.h @@ -11,7 +11,7 @@ #include "input.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // The arc for the anyExtendedKeyUsage OID is found under the id-ce arc, // defined in section 4.2.1 of RFC 5280: @@ -78,6 +78,6 @@ inline constexpr uint8_t kOCSPSigning[] = {0x2b, 0x06, 0x01, 0x05, OPENSSL_EXPORT bool ParseEKUExtension(der::Input extension_value, std::vector *eku_oids); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_EXTENDED_KEY_USAGE_H_ diff --git a/pki/extended_key_usage_unittest.cc b/pki/extended_key_usage_unittest.cc index b5229a1a6d..b65b49de3c 100644 --- a/pki/extended_key_usage_unittest.cc +++ b/pki/extended_key_usage_unittest.cc @@ -8,7 +8,7 @@ #include "extended_key_usage.h" #include "input.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -164,4 +164,4 @@ TEST(ExtendedKeyUsageTest, EmptyExtension) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/general_names.cc b/pki/general_names.cc index c446287b33..f88efbb23e 100644 --- a/pki/general_names.cc +++ b/pki/general_names.cc @@ -17,7 +17,7 @@ #include "parser.h" #include "string_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN DEFINE_CERT_ERROR_ID(kFailedParsingGeneralName, "Failed parsing GeneralName"); @@ -216,4 +216,4 @@ std::unique_ptr GeneralNames::CreateFromValue( return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/general_names.h b/pki/general_names.h index 838a2d721b..701927eb66 100644 --- a/pki/general_names.h +++ b/pki/general_names.h @@ -14,7 +14,7 @@ #include "cert_error_id.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN class CertErrors; @@ -126,6 +126,6 @@ struct OPENSSL_EXPORT GeneralNames { GeneralNames::ParseGeneralNameIPAddressType ip_address_type, GeneralNames *subtrees, CertErrors *errors); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_GENERAL_NAMES_H_ diff --git a/pki/general_names_unittest.cc b/pki/general_names_unittest.cc index be508a25ad..1836c98cc9 100644 --- a/pki/general_names_unittest.cc +++ b/pki/general_names_unittest.cc @@ -7,7 +7,7 @@ #include #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { ::testing::AssertionResult LoadTestData(const char *token, @@ -223,4 +223,4 @@ TEST(GeneralNames, RegisteredIDs) { EXPECT_EQ(der::Input(expected_der), general_names->registered_ids[0]); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/input.cc b/pki/input.cc index 2f5a8b1620..f68ece200c 100644 --- a/pki/input.cc +++ b/pki/input.cc @@ -4,9 +4,8 @@ #include "input.h" -#include - -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { std::string Input::AsString() const { return std::string(AsStringView()); } @@ -42,4 +41,5 @@ void ByteReader::Advance(size_t len) { data_ = data_.subspan(len); } -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END diff --git a/pki/input.h b/pki/input.h index 15bdbd62e7..9337d387d4 100644 --- a/pki/input.h +++ b/pki/input.h @@ -22,9 +22,11 @@ #if defined(__cpp_lib_ranges) && __cpp_lib_ranges >= 201911L #include -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { class OPENSSL_EXPORT Input; } +BSSL_NAMESPACE_END // Mark `Input` as satisfying the `view` and `borrowed_range` concepts. This // should be done before the definition of `Input`, so that any inlined calls to @@ -36,7 +38,8 @@ inline constexpr bool std::ranges::enable_borrowed_range = true; #endif -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { // An opaque class that represents a fixed buffer of data of a fixed length, // to be used as an input to other operations. An Input object does not own @@ -188,6 +191,7 @@ class OPENSSL_EXPORT ByteReader { bssl::Span data_; }; -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END #endif // BSSL_DER_INPUT_H_ diff --git a/pki/input_unittest.cc b/pki/input_unittest.cc index 655a8087a1..6aa009d7ff 100644 --- a/pki/input_unittest.cc +++ b/pki/input_unittest.cc @@ -6,7 +6,8 @@ #include -namespace bssl::der::test { +BSSL_NAMESPACE_BEGIN +namespace der::test { constexpr uint8_t kInput[] = {'t', 'e', 's', 't'}; const uint8_t kInput2[] = {'t', 'e', 'a', 'l'}; @@ -104,4 +105,5 @@ TEST(ByteReaderTest, HasMore) { ASSERT_FALSE(reader.HasMore()); } -} // namespace bssl::der::test +} // namespace der::test +BSSL_NAMESPACE_END diff --git a/pki/ip_util.cc b/pki/ip_util.cc index 663669ee1f..d4996b6a28 100644 --- a/pki/ip_util.cc +++ b/pki/ip_util.cc @@ -4,7 +4,7 @@ #include "ip_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN bool IsValidNetmask(der::Input mask) { if (mask.size() != kIPv4AddressSize && mask.size() != kIPv6AddressSize) { @@ -46,4 +46,4 @@ bool IPAddressMatchesWithNetmask(der::Input addr1, der::Input addr2, return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/ip_util.h b/pki/ip_util.h index 3bcc7dff78..22f27bf36e 100644 --- a/pki/ip_util.h +++ b/pki/ip_util.h @@ -9,7 +9,7 @@ #include "input.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN inline constexpr size_t kIPv4AddressSize = 4; inline constexpr size_t kIPv6AddressSize = 16; @@ -24,6 +24,6 @@ OPENSSL_EXPORT bool IPAddressMatchesWithNetmask(der::Input addr1, der::Input addr2, der::Input mask); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_IP_UTIL_H_ diff --git a/pki/ip_util_unittest.cc b/pki/ip_util_unittest.cc index 268a924156..251006ced1 100644 --- a/pki/ip_util_unittest.cc +++ b/pki/ip_util_unittest.cc @@ -9,7 +9,7 @@ #include #include "input.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN TEST(IPUtilTest, IsValidNetmask) { uint8_t kWrongSize[3] = {0xff, 0xff, 0xff}; @@ -104,4 +104,4 @@ TEST(IPUtilTest, IPAddressMatchesWithNetmask) { } } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/mock_signature_verify_cache.cc b/pki/mock_signature_verify_cache.cc index d99f6902dc..28f6f7d947 100644 --- a/pki/mock_signature_verify_cache.cc +++ b/pki/mock_signature_verify_cache.cc @@ -6,7 +6,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN MockSignatureVerifyCache::MockSignatureVerifyCache() = default; @@ -29,4 +29,4 @@ SignatureVerifyCache::Value MockSignatureVerifyCache::Check( return iter->second; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/mock_signature_verify_cache.h b/pki/mock_signature_verify_cache.h index f380f616e3..ff0dc112cf 100644 --- a/pki/mock_signature_verify_cache.h +++ b/pki/mock_signature_verify_cache.h @@ -13,7 +13,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN // MockSignatureVerifyCache is an implementation of SignatureVerifyCache. It is // intended only for testing of cache functionality. @@ -42,6 +42,6 @@ class MockSignatureVerifyCache : public SignatureVerifyCache { size_t stores_ = 0; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_MOCK_PATH_BUILDER_DELEGATE_H_ diff --git a/pki/name_constraints.cc b/pki/name_constraints.cc index 1ce9a8f041..933ac21513 100644 --- a/pki/name_constraints.cc +++ b/pki/name_constraints.cc @@ -21,7 +21,7 @@ #include "string_util.h" #include "verify_name_match.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -707,4 +707,4 @@ bool NameConstraints::IsPermittedIP(der::Input ip) const { return false; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/name_constraints.h b/pki/name_constraints.h index a025985feb..444a40bc10 100644 --- a/pki/name_constraints.h +++ b/pki/name_constraints.h @@ -11,7 +11,7 @@ #include "general_names.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN class CertErrors; @@ -101,6 +101,6 @@ class OPENSSL_EXPORT NameConstraints { int constrained_name_types_ = GENERAL_NAME_NONE; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_NAME_CONSTRAINTS_H_ diff --git a/pki/name_constraints_unittest.cc b/pki/name_constraints_unittest.cc index a7150627ea..1e4ed0adb2 100644 --- a/pki/name_constraints_unittest.cc +++ b/pki/name_constraints_unittest.cc @@ -11,7 +11,7 @@ #include "common_cert_errors.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { ::testing::AssertionResult LoadTestData(const char *token, @@ -1901,4 +1901,4 @@ TEST_P(ParseNameConstraints, IsPermittedCertSubjectIpAddresses) { nullptr /* subject_alt_names */)); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/nist_pkits_unittest.cc b/pki/nist_pkits_unittest.cc index 309cb64156..5439661b26 100644 --- a/pki/nist_pkits_unittest.cc +++ b/pki/nist_pkits_unittest.cc @@ -8,7 +8,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -97,4 +97,4 @@ void PkitsTestInfo::SetUserConstrainedPolicySet( SetPolicySetFromString(policy_names, &user_constrained_policy_set); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/nist_pkits_unittest.h b/pki/nist_pkits_unittest.h index 5f9219ce27..28d4278913 100644 --- a/pki/nist_pkits_unittest.h +++ b/pki/nist_pkits_unittest.h @@ -11,7 +11,7 @@ #include "parse_values.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // Describes the inputs and outputs (other than the certificates) for // the PKITS tests. @@ -144,6 +144,6 @@ class PkitsTest : public ::testing::Test { // Inline the generated test code: #include "testdata/nist-pkits/pkits_testcases-inl.h" -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_NIST_PKITS_UNITTEST_H_ diff --git a/pki/ocsp.cc b/pki/ocsp.cc index 03d6c2144f..1a30b22333 100644 --- a/pki/ocsp.cc +++ b/pki/ocsp.cc @@ -17,7 +17,7 @@ #include "verify_name_match.h" #include "verify_signed_data.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN OCSPCertID::OCSPCertID() = default; OCSPCertID::~OCSPCertID() = default; @@ -1120,4 +1120,4 @@ std::optional CreateOCSPGetURL( return std::string(ocsp_responder_url) + "/" + b64_encoded; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/ocsp.h b/pki/ocsp.h index 5b076dc831..a9f11d2f38 100644 --- a/pki/ocsp.h +++ b/pki/ocsp.h @@ -19,7 +19,7 @@ #include "parser.h" #include "signature_algorithm.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN class ParsedCertificate; @@ -310,6 +310,6 @@ OPENSSL_EXPORT std::optional CreateOCSPGetURL( const ParsedCertificate *cert, const ParsedCertificate *issuer, std::string_view ocsp_responder_url); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_OCSP_H_ diff --git a/pki/ocsp_revocation_status.h b/pki/ocsp_revocation_status.h index 2816aade5b..ce47e84436 100644 --- a/pki/ocsp_revocation_status.h +++ b/pki/ocsp_revocation_status.h @@ -5,7 +5,7 @@ #ifndef BSSL_PKI_OCSP_REVOCATION_STATUS_H_ #define BSSL_PKI_OCSP_REVOCATION_STATUS_H_ -namespace bssl { +BSSL_NAMESPACE_BEGIN // This value is histogrammed, so do not re-order or change values, and add // new values at the end. @@ -16,6 +16,6 @@ enum class OCSPRevocationStatus { MAX_VALUE = UNKNOWN }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_OCSP_REVOCATION_STATUS_H_ diff --git a/pki/ocsp_unittest.cc b/pki/ocsp_unittest.cc index 98ae8ddc22..1a65b4720e 100644 --- a/pki/ocsp_unittest.cc +++ b/pki/ocsp_unittest.cc @@ -11,7 +11,7 @@ #include "string_util.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -239,4 +239,4 @@ TEST_P(CreateOCSPGetURLTest, Basic) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/ocsp_verify_result.cc b/pki/ocsp_verify_result.cc index f343f8ea6f..c094169c2f 100644 --- a/pki/ocsp_verify_result.cc +++ b/pki/ocsp_verify_result.cc @@ -4,7 +4,7 @@ #include "ocsp_verify_result.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN OCSPVerifyResult::OCSPVerifyResult() = default; OCSPVerifyResult::OCSPVerifyResult(const OCSPVerifyResult &) = default; @@ -22,4 +22,4 @@ bool OCSPVerifyResult::operator==(const OCSPVerifyResult &other) const { return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/ocsp_verify_result.h b/pki/ocsp_verify_result.h index 1e07f1a127..0b5194c65e 100644 --- a/pki/ocsp_verify_result.h +++ b/pki/ocsp_verify_result.h @@ -9,7 +9,7 @@ #include "ocsp_revocation_status.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // The result of OCSP verification. This always contains a ResponseStatus, which // describes whether or not an OCSP response was provided, and response level @@ -71,6 +71,6 @@ struct OPENSSL_EXPORT OCSPVerifyResult { OCSPRevocationStatus revocation_status = OCSPRevocationStatus::UNKNOWN; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_OCSP_VERIFY_RESULT_H_ diff --git a/pki/parse_certificate.cc b/pki/parse_certificate.cc index 5e2ff88e12..29191048bc 100644 --- a/pki/parse_certificate.cc +++ b/pki/parse_certificate.cc @@ -18,7 +18,7 @@ #include "parser.h" #include "string_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -1013,4 +1013,4 @@ bool ParseSubjectKeyIdentifier(der::Input extension_value, return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/parse_certificate.h b/pki/parse_certificate.h index 81e267f6ed..f1337150ce 100644 --- a/pki/parse_certificate.h +++ b/pki/parse_certificate.h @@ -18,7 +18,7 @@ #include "input.h" #include "parse_values.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { class Parser; @@ -625,6 +625,6 @@ struct OPENSSL_EXPORT ParsedAuthorityKeyIdentifier { [[nodiscard]] OPENSSL_EXPORT bool ParseSubjectKeyIdentifier( der::Input extension_value, der::Input *subject_key_identifier); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_PARSE_CERTIFICATE_H_ diff --git a/pki/parse_certificate_unittest.cc b/pki/parse_certificate_unittest.cc index ec3c642b81..c541da96d0 100644 --- a/pki/parse_certificate_unittest.cc +++ b/pki/parse_certificate_unittest.cc @@ -12,7 +12,7 @@ #include "parsed_certificate.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -1173,4 +1173,4 @@ TEST(ParseSubjectKeyIdentifierTest, ExtraData) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/parse_name.cc b/pki/parse_name.cc index 2c4695f31e..3e0821a767 100644 --- a/pki/parse_name.cc +++ b/pki/parse_name.cc @@ -12,7 +12,7 @@ #include "parse_values.h" #include "string_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -231,4 +231,4 @@ bool ConvertToRFC2253(const RDNSequence &rdn_sequence, std::string *out) { return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/parse_name.h b/pki/parse_name.h index be5c53eea4..92ebf71fd3 100644 --- a/pki/parse_name.h +++ b/pki/parse_name.h @@ -13,7 +13,7 @@ #include "input.h" #include "parser.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // id-at-commonName: 2.5.4.3 (RFC 5280) inline constexpr uint8_t kTypeCommonNameOid[] = {0x55, 0x04, 0x03}; @@ -152,6 +152,6 @@ typedef std::vector RDNSequence; // successful. [[nodiscard]] OPENSSL_EXPORT bool ConvertToRFC2253( const RDNSequence &rdn_sequence, std::string *out); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_PARSE_NAME_H_ diff --git a/pki/parse_name_unittest.cc b/pki/parse_name_unittest.cc index ceef9c2ef0..0bb2c6f7bf 100644 --- a/pki/parse_name_unittest.cc +++ b/pki/parse_name_unittest.cc @@ -7,7 +7,7 @@ #include #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { // Loads test data from file. The filename is constructed from the parameters: @@ -363,4 +363,4 @@ TEST(ParseNameTest, RFC2253FormatUTF8) { ASSERT_EQ("SN=Lu\\C4\\8Di\\C4\\87", output); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/parse_values.cc b/pki/parse_values.cc index 8d07b3dd8c..d3312c7af2 100644 --- a/pki/parse_values.cc +++ b/pki/parse_values.cc @@ -12,7 +12,8 @@ #include #include -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { namespace { @@ -470,4 +471,5 @@ bool ParseBmpString(Input in, std::string *out) { return true; } -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END diff --git a/pki/parse_values.h b/pki/parse_values.h index 1b7ed12207..8f808a8453 100644 --- a/pki/parse_values.h +++ b/pki/parse_values.h @@ -13,7 +13,8 @@ #include "input.h" -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { // Reads a DER-encoded ASN.1 BOOLEAN value from |in| and puts the resulting // value in |out|. Returns whether the encoded value could successfully be @@ -149,6 +150,7 @@ OPENSSL_EXPORT bool operator>=(const GeneralizedTime &lhs, // result in |out| as UTF-8, returning true if successful. [[nodiscard]] OPENSSL_EXPORT bool ParseBmpString(Input in, std::string *out); -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END #endif // BSSL_DER_PARSE_VALUES_H_ diff --git a/pki/parse_values_unittest.cc b/pki/parse_values_unittest.cc index e29b4b9ef7..a24c4c1d07 100644 --- a/pki/parse_values_unittest.cc +++ b/pki/parse_values_unittest.cc @@ -8,7 +8,8 @@ #include -namespace bssl::der::test { +BSSL_NAMESPACE_BEGIN +namespace der::test { namespace { @@ -461,4 +462,5 @@ TEST(ParseValuesTest, ParseUniversalString) { ParseUniversalString(der::Input(invalid_non_4_multiple_der), &s)); } -} // namespace bssl::der::test +} // namespace der::test +BSSL_NAMESPACE_END diff --git a/pki/parsed_certificate.cc b/pki/parsed_certificate.cc index 9e23d30ee8..402a6df05f 100644 --- a/pki/parsed_certificate.cc +++ b/pki/parsed_certificate.cc @@ -15,7 +15,7 @@ #include "signature_algorithm.h" #include "verify_name_match.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -295,4 +295,4 @@ bool ParsedCertificate::CreateAndAddToVector( return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/parsed_certificate.h b/pki/parsed_certificate.h index a4043cb59d..c39d1a86ef 100644 --- a/pki/parsed_certificate.h +++ b/pki/parsed_certificate.h @@ -17,7 +17,7 @@ #include "parse_certificate.h" #include "signature_algorithm.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN struct GeneralNames; class NameConstraints; @@ -323,6 +323,6 @@ class OPENSSL_EXPORT ParsedCertificate { ExtensionsMap extensions_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_PARSED_CERTIFICATE_H_ diff --git a/pki/parsed_certificate_unittest.cc b/pki/parsed_certificate_unittest.cc index f5150034ef..2babc5b503 100644 --- a/pki/parsed_certificate_unittest.cc +++ b/pki/parsed_certificate_unittest.cc @@ -13,7 +13,7 @@ // TODO(eroman): Add tests for parsing of policy mappings. -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -594,4 +594,4 @@ TEST(ParsedCertificateTest, AuthourityKeyIdentifierNotSequence) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/parser.cc b/pki/parser.cc index 51f2661dca..4ae76481a8 100644 --- a/pki/parser.cc +++ b/pki/parser.cc @@ -4,10 +4,10 @@ #include "parser.h" -#include #include "parse_values.h" -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { Parser::Parser() { CBS_init(&cbs_, nullptr, 0); } @@ -157,4 +157,5 @@ bool Parser::ReadGeneralizedTime(GeneralizedTime *out) { return ParseGeneralizedTime(value, out); } -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END diff --git a/pki/parser.h b/pki/parser.h index 64599b5506..f2cdcc851e 100644 --- a/pki/parser.h +++ b/pki/parser.h @@ -14,7 +14,8 @@ #include "input.h" -namespace bssl::der { +BSSL_NAMESPACE_BEGIN +namespace der { class BitString; struct GeneralizedTime; @@ -207,6 +208,7 @@ class OPENSSL_EXPORT Parser { size_t advance_len_ = 0; }; -} // namespace bssl::der +} // namespace der +BSSL_NAMESPACE_END #endif // BSSL_DER_PARSER_H_ diff --git a/pki/parser_unittest.cc b/pki/parser_unittest.cc index 2deb1cd0c9..34138bc596 100644 --- a/pki/parser_unittest.cc +++ b/pki/parser_unittest.cc @@ -8,7 +8,8 @@ #include "input.h" #include "parse_values.h" -namespace bssl::der::test { +BSSL_NAMESPACE_BEGIN +namespace der::test { TEST(ParserTest, ConsumesAllBytesOfTLV) { const uint8_t der[] = {0x04 /* OCTET STRING */, 0x00}; @@ -362,4 +363,5 @@ TEST(ParserTest, ReadBitStringBadTag) { EXPECT_FALSE(bit_string.has_value()); } -} // namespace bssl::der::test +} // namespace der::test +BSSL_NAMESPACE_END diff --git a/pki/path_builder.cc b/pki/path_builder.cc index ef23172815..806cef966f 100644 --- a/pki/path_builder.cc +++ b/pki/path_builder.cc @@ -24,7 +24,7 @@ #include "verify_certificate_chain.h" #include "verify_name_match.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -1044,4 +1044,4 @@ void CertPathBuilder::AddResultPath( out_result_.paths.push_back(std::move(result_path)); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/path_builder.h b/pki/path_builder.h index fd207f7c9e..42a16eb504 100644 --- a/pki/path_builder.h +++ b/pki/path_builder.h @@ -18,7 +18,7 @@ #include "trust_store.h" #include "verify_certificate_chain.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { struct GeneralizedTime; @@ -258,6 +258,6 @@ class OPENSSL_EXPORT CertPathBuilder { size_t valid_path_count_ = 0; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_PATH_BUILDER_H_ diff --git a/pki/path_builder_pkits_unittest.cc b/pki/path_builder_pkits_unittest.cc index 5bc0703359..ba10b58d09 100644 --- a/pki/path_builder_pkits_unittest.cc +++ b/pki/path_builder_pkits_unittest.cc @@ -22,7 +22,7 @@ constexpr int64_t kOneYear = 60 * 60 * 24 * 365; -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -289,4 +289,4 @@ INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, PkitsTest16PrivateCertificateExtensions, PathBuilderPkitsTestDelegate); -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/path_builder_unittest.cc b/pki/path_builder_unittest.cc index 05d9619651..b92cfab70f 100644 --- a/pki/path_builder_unittest.cc +++ b/pki/path_builder_unittest.cc @@ -22,7 +22,7 @@ #include #include -namespace bssl { +BSSL_NAMESPACE_BEGIN // TODO(crbug.com/634443): Assert the errors for each ResultPath. @@ -2921,4 +2921,4 @@ TEST(PathBuilderPrioritizationTest, SelfIssuedPrioritization) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/path_builder_verify_certificate_chain_unittest.cc b/pki/path_builder_verify_certificate_chain_unittest.cc index a5aeef7355..94da678e56 100644 --- a/pki/path_builder_verify_certificate_chain_unittest.cc +++ b/pki/path_builder_verify_certificate_chain_unittest.cc @@ -9,7 +9,7 @@ #include "trust_store_in_memory.h" #include "verify_certificate_chain_typed_unittest.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -53,4 +53,4 @@ INSTANTIATE_TYPED_TEST_SUITE_P(PathBuilder, VerifyCertificateChainSingleRootTest, PathBuilderTestDelegate); -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/pem.cc b/pki/pem.cc index 63d7c4506e..d7f5f932d5 100644 --- a/pki/pem.cc +++ b/pki/pem.cc @@ -15,7 +15,7 @@ constexpr std::string_view kPEMHeaderTail = "-----"; } // namespace -namespace bssl { +BSSL_NAMESPACE_BEGIN @@ -140,4 +140,4 @@ std::string PEMEncode(std::string_view data, const std::string &type) { return pem_encoded; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/pem.h b/pki/pem.h index 1fd28fbf6e..c9f43146ee 100644 --- a/pki/pem.h +++ b/pki/pem.h @@ -13,7 +13,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN // PEMTokenizer is a utility class for the parsing of data encapsulated // using RFC 1421, Privacy Enhancement for Internet Electronic Mail. It @@ -81,6 +81,6 @@ class OPENSSL_EXPORT PEMTokenizer { OPENSSL_EXPORT std::string PEMEncode(std::string_view data, const std::string &type); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_PEM_H_ diff --git a/pki/pem_unittest.cc b/pki/pem_unittest.cc index a7f9edae30..5fb3d1c9d4 100644 --- a/pki/pem_unittest.cc +++ b/pki/pem_unittest.cc @@ -6,7 +6,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN TEST(PEMTokenizerTest, BasicParsing) { const char data[] = @@ -202,4 +202,4 @@ TEST(PEMEncodeTest, Wrapping) { "WRAPPED LINE")); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/revocation_util.cc b/pki/revocation_util.cc index 80779d7d57..997f12d67c 100644 --- a/pki/revocation_util.cc +++ b/pki/revocation_util.cc @@ -7,7 +7,7 @@ #include "encode_values.h" #include "parse_values.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -56,4 +56,4 @@ bool CheckRevocationDateValid(const der::GeneralizedTime &this_update, return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/revocation_util.h b/pki/revocation_util.h index 5b20f4c9b7..f4226d33d6 100644 --- a/pki/revocation_util.h +++ b/pki/revocation_util.h @@ -10,7 +10,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { struct GeneralizedTime; @@ -26,6 +26,6 @@ struct GeneralizedTime; const der::GeneralizedTime *next_update, int64_t verify_time_epoch_seconds, std::optional max_age_seconds); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_REVOCATION_UTIL_H_ diff --git a/pki/signature_algorithm.cc b/pki/signature_algorithm.cc index 73d8bc1bc6..f00eee2c16 100644 --- a/pki/signature_algorithm.cc +++ b/pki/signature_algorithm.cc @@ -11,7 +11,7 @@ #include "parse_values.h" #include "parser.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -422,4 +422,4 @@ std::optional GetTlsServerEndpointDigestAlgorithm( return std::nullopt; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/signature_algorithm.h b/pki/signature_algorithm.h index be654fc01b..74470b7741 100644 --- a/pki/signature_algorithm.h +++ b/pki/signature_algorithm.h @@ -12,7 +12,7 @@ #include #include -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { class Input; @@ -81,6 +81,6 @@ OPENSSL_EXPORT std::optional ParseSignatureAlgorithm( OPENSSL_EXPORT std::optional GetTlsServerEndpointDigestAlgorithm(SignatureAlgorithm alg); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_SIGNATURE_ALGORITHM_H_ diff --git a/pki/signature_algorithm_unittest.cc b/pki/signature_algorithm_unittest.cc index dc0bfa69d9..0ca326067c 100644 --- a/pki/signature_algorithm_unittest.cc +++ b/pki/signature_algorithm_unittest.cc @@ -10,7 +10,7 @@ #include "input.h" #include "parser.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -1448,4 +1448,4 @@ TEST(SignatureAlgorithmTest, ParseDerDsaWithSha256NoParams) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/simple_path_builder_delegate.cc b/pki/simple_path_builder_delegate.cc index 89000e3af7..29306d544c 100644 --- a/pki/simple_path_builder_delegate.cc +++ b/pki/simple_path_builder_delegate.cc @@ -19,7 +19,7 @@ #include "signature_algorithm.h" #include "verify_signed_data.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN DEFINE_CERT_ERROR_ID(SimplePathBuilderDelegate::kRsaModulusTooSmall, "RSA modulus too small"); @@ -127,4 +127,4 @@ bool SimplePathBuilderDelegate::IsPublicKeyAcceptable(EVP_PKEY *public_key, return false; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/simple_path_builder_delegate.h b/pki/simple_path_builder_delegate.h index 6d95b0de8a..8cfaa7fd35 100644 --- a/pki/simple_path_builder_delegate.h +++ b/pki/simple_path_builder_delegate.h @@ -13,7 +13,7 @@ #include "path_builder.h" #include "signature_algorithm.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN class CertErrors; @@ -78,6 +78,6 @@ class OPENSSL_EXPORT SimplePathBuilderDelegate const DigestPolicy digest_policy_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_SIMPLE_PATH_BUILDER_DELEGATE_H_ diff --git a/pki/simple_path_builder_delegate_unittest.cc b/pki/simple_path_builder_delegate_unittest.cc index f0131fa8e1..b9fa818ee1 100644 --- a/pki/simple_path_builder_delegate_unittest.cc +++ b/pki/simple_path_builder_delegate_unittest.cc @@ -16,7 +16,7 @@ #include "test_helpers.h" #include "verify_signed_data.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -103,4 +103,4 @@ TEST_P(SimplePathBuilderDelegate2048FailTest, RsaKeySmallerThan2048) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/string_util.cc b/pki/string_util.cc index 423cd76b41..1cf8ea357e 100644 --- a/pki/string_util.cc +++ b/pki/string_util.cc @@ -12,7 +12,8 @@ #include #include -namespace bssl::string_util { +BSSL_NAMESPACE_BEGIN +namespace string_util { bool IsAscii(std::string_view str) { for (unsigned char c : str) { @@ -190,4 +191,5 @@ bool Base64Decode(const std::string_view &input, std::string *output) { return true; } -} // namespace bssl::string_util +} // namespace string_util +BSSL_NAMESPACE_END diff --git a/pki/string_util.h b/pki/string_util.h index 1dad828c14..2a51809a7e 100644 --- a/pki/string_util.h +++ b/pki/string_util.h @@ -13,7 +13,8 @@ #include #include -namespace bssl::string_util { +BSSL_NAMESPACE_BEGIN +namespace string_util { // Returns true if the characters in |str| are all ASCII, false otherwise. OPENSSL_EXPORT bool IsAscii(std::string_view str); @@ -70,6 +71,7 @@ OPENSSL_EXPORT bool Base64Encode(const std::string_view &input, OPENSSL_EXPORT bool Base64Decode(const std::string_view &input, std::string *output); -} // namespace bssl::string_util +} // namespace string_util +BSSL_NAMESPACE_END #endif // BSSL_PKI_STRING_UTIL_H_ diff --git a/pki/string_util_unittest.cc b/pki/string_util_unittest.cc index 32e446d54b..2faa561b41 100644 --- a/pki/string_util_unittest.cc +++ b/pki/string_util_unittest.cc @@ -5,7 +5,7 @@ #include "string_util.h" #include -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -152,4 +152,4 @@ TEST(StringUtilTest, SplitString) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/test_helpers.cc b/pki/test_helpers.cc index 0615008024..82704aa769 100644 --- a/pki/test_helpers.cc +++ b/pki/test_helpers.cc @@ -26,7 +26,7 @@ #include "string_util.h" #include "trust_store.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -483,4 +483,4 @@ void VerifyUserConstrainedPolicySet( } } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/test_helpers.h b/pki/test_helpers.h index 91d74ceadb..8f3594abb4 100644 --- a/pki/test_helpers.h +++ b/pki/test_helpers.h @@ -19,7 +19,7 @@ #include "trust_store.h" #include "verify_certificate_chain.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { @@ -162,6 +162,6 @@ void VerifyUserConstrainedPolicySet( const std::set &actual_user_constrained_policy_set, const std::string &errors_file_path); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_TEST_HELPERS_H_ diff --git a/pki/trust_store.cc b/pki/trust_store.cc index fc373f75f4..126df3e795 100644 --- a/pki/trust_store.cc +++ b/pki/trust_store.cc @@ -8,7 +8,7 @@ #include "string_util.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -174,4 +174,4 @@ void TrustStore::AsyncGetIssuersOf(const ParsedCertificate *cert, out_req->reset(); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/trust_store.h b/pki/trust_store.h index 5493f6ba22..736970f90c 100644 --- a/pki/trust_store.h +++ b/pki/trust_store.h @@ -12,7 +12,7 @@ #include "cert_issuer_source.h" #include "parsed_certificate.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN enum class CertificateTrustType { // This certificate is explicitly blocked (distrusted). @@ -139,6 +139,6 @@ class OPENSSL_EXPORT TrustStore : public CertIssuerSource { std::unique_ptr *out_req) final; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_TRUST_STORE_H_ diff --git a/pki/trust_store_collection.cc b/pki/trust_store_collection.cc index 4c607b5fcd..9540065cc6 100644 --- a/pki/trust_store_collection.cc +++ b/pki/trust_store_collection.cc @@ -6,7 +6,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN TrustStoreCollection::TrustStoreCollection() = default; TrustStoreCollection::~TrustStoreCollection() = default; @@ -44,4 +44,4 @@ CertificateTrust TrustStoreCollection::GetTrust(const ParsedCertificate *cert) { return result; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/trust_store_collection.h b/pki/trust_store_collection.h index 494909ee91..04c8f3e13a 100644 --- a/pki/trust_store_collection.h +++ b/pki/trust_store_collection.h @@ -9,7 +9,7 @@ #include "trust_store.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // TrustStoreCollection is an implementation of TrustStore which combines the // results from multiple TrustStores. @@ -38,6 +38,6 @@ class OPENSSL_EXPORT TrustStoreCollection : public TrustStore { std::vector stores_; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_TRUST_STORE_COLLECTION_H_ diff --git a/pki/trust_store_collection_unittest.cc b/pki/trust_store_collection_unittest.cc index 94989ba39f..a04c64fc90 100644 --- a/pki/trust_store_collection_unittest.cc +++ b/pki/trust_store_collection_unittest.cc @@ -8,7 +8,7 @@ #include "test_helpers.h" #include "trust_store_in_memory.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -185,4 +185,4 @@ TEST_F(TrustStoreCollectionTest, DistrustTakesPriority) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/trust_store_in_memory.cc b/pki/trust_store_in_memory.cc index 1c77b63b2b..89a4eb2dff 100644 --- a/pki/trust_store_in_memory.cc +++ b/pki/trust_store_in_memory.cc @@ -4,7 +4,7 @@ #include "trust_store_in_memory.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN TrustStoreInMemory::TrustStoreInMemory() = default; TrustStoreInMemory::~TrustStoreInMemory() = default; @@ -98,4 +98,4 @@ const TrustStoreInMemory::Entry *TrustStoreInMemory::GetEntry( return nullptr; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/trust_store_in_memory.h b/pki/trust_store_in_memory.h index 4da26cd7cc..03d06beb97 100644 --- a/pki/trust_store_in_memory.h +++ b/pki/trust_store_in_memory.h @@ -12,7 +12,7 @@ #include "trust_store.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN // A very simple implementation of a TrustStore, which contains a set of // certificates and their trustedness. @@ -96,6 +96,6 @@ class OPENSSL_EXPORT TrustStoreInMemory : public TrustStore { const Entry *GetEntry(const ParsedCertificate *cert) const; }; -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_TRUST_STORE_IN_MEMORY_H_ diff --git a/pki/trust_store_in_memory_unittest.cc b/pki/trust_store_in_memory_unittest.cc index 4292675c83..9020535060 100644 --- a/pki/trust_store_in_memory_unittest.cc +++ b/pki/trust_store_in_memory_unittest.cc @@ -17,7 +17,7 @@ #include #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { class TrustStoreInMemoryTest : public testing::Test { @@ -109,4 +109,4 @@ TEST_F(TrustStoreInMemoryTest, DistrustBySPKIOverridesTrust) { } } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify.cc b/pki/verify.cc index 6bd9dc2d3d..157a6b67ef 100644 --- a/pki/verify.cc +++ b/pki/verify.cc @@ -41,7 +41,7 @@ #include "trust_store_in_memory.h" #include "verify_certificate_chain.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -351,4 +351,4 @@ std::optional>> CertificateVerifyAllPaths( return CertificateVerifyInternal(opts, nullptr, nullptr, /*all_paths=*/true); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_certificate_chain.cc b/pki/verify_certificate_chain.cc index 4985ae9785..e72915fb85 100644 --- a/pki/verify_certificate_chain.cc +++ b/pki/verify_certificate_chain.cc @@ -19,7 +19,7 @@ #include "trust_store.h" #include "verify_signed_data.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -1677,4 +1677,4 @@ bool VerifyCertificateIsSelfSigned(const ParsedCertificate &cert, return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_certificate_chain.h b/pki/verify_certificate_chain.h index 4603acefd1..8daf64f8bd 100644 --- a/pki/verify_certificate_chain.h +++ b/pki/verify_certificate_chain.h @@ -15,7 +15,7 @@ #include "input.h" #include "parsed_certificate.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { struct GeneralizedTime; @@ -270,6 +270,6 @@ OPENSSL_EXPORT bool VerifyCertificateIsSelfSigned(const ParsedCertificate &cert, SignatureVerifyCache *cache, CertErrors *errors); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_H_ diff --git a/pki/verify_certificate_chain_pkits_unittest.cc b/pki/verify_certificate_chain_pkits_unittest.cc index 98d1504a6b..d3f641f537 100644 --- a/pki/verify_certificate_chain_pkits_unittest.cc +++ b/pki/verify_certificate_chain_pkits_unittest.cc @@ -19,7 +19,7 @@ #include "nist_pkits_unittest.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -126,4 +126,4 @@ INSTANTIATE_TYPED_TEST_SUITE_P(VerifyCertificateChain, // PkitsTest05VerifyingPathswithSelfIssuedCertificates, // PkitsTest14DistributionPoints, PkitsTest15DeltaCRLs -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_certificate_chain_typed_unittest.h b/pki/verify_certificate_chain_typed_unittest.h index e9948e12da..4f85959d5b 100644 --- a/pki/verify_certificate_chain_typed_unittest.h +++ b/pki/verify_certificate_chain_typed_unittest.h @@ -13,7 +13,7 @@ #include "trust_store.h" #include "verify_certificate_chain.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN template class VerifyCertificateChainTest : public ::testing::Test { @@ -343,6 +343,6 @@ REGISTER_TYPED_TEST_SUITE_P(VerifyCertificateChainSingleRootTest, Simple, TrustAnchorNotSelfSigned, KeyRollover, Policies, ManyNames, TargetOnly, TargetSelfSigned); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_VERIFY_CERTIFICATE_CHAIN_TYPED_UNITTEST_H_ diff --git a/pki/verify_certificate_chain_unittest.cc b/pki/verify_certificate_chain_unittest.cc index 5ea3e085e7..1d9be6feef 100644 --- a/pki/verify_certificate_chain_unittest.cc +++ b/pki/verify_certificate_chain_unittest.cc @@ -12,7 +12,7 @@ #include "trust_store.h" #include "verify_certificate_chain_typed_unittest.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -125,4 +125,4 @@ TEST(VerifyCertificateIsSelfSigned, SelfSigned) { EXPECT_EQ(cache.CacheStores(), 1U); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_error.cc b/pki/verify_error.cc index da61236fbc..688b4e28fd 100644 --- a/pki/verify_error.cc +++ b/pki/verify_error.cc @@ -1,7 +1,7 @@ #include #include -namespace bssl { +BSSL_NAMESPACE_BEGIN VerifyError::VerifyError(StatusCode code, ptrdiff_t offset, std::string diagnostic) @@ -13,4 +13,4 @@ ptrdiff_t VerifyError::Index() const { return offset_; } VerifyError::StatusCode VerifyError::Code() const { return code_; } -} // namespacee bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_name_match.cc b/pki/verify_name_match.cc index 09f6102c83..e849d90b23 100644 --- a/pki/verify_name_match.cc +++ b/pki/verify_name_match.cc @@ -13,7 +13,7 @@ #include "parse_name.h" #include "parser.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN DEFINE_CERT_ERROR_ID(kFailedConvertingAttributeValue, "Failed converting AttributeValue to string"); @@ -435,4 +435,4 @@ bool FindEmailAddressesInName( return true; } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_name_match.h b/pki/verify_name_match.h index 79c9ce868b..188c7d58d8 100644 --- a/pki/verify_name_match.h +++ b/pki/verify_name_match.h @@ -10,7 +10,7 @@ #include -namespace bssl { +BSSL_NAMESPACE_BEGIN class CertErrors; @@ -56,6 +56,6 @@ OPENSSL_EXPORT bool VerifyNameInSubtree(der::Input name_rdn_sequence, der::Input name_rdn_sequence, std::vector *contained_email_addresses); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_VERIFY_NAME_MATCH_H_ diff --git a/pki/verify_name_match_unittest.cc b/pki/verify_name_match_unittest.cc index 53cd012ad1..77df501954 100644 --- a/pki/verify_name_match_unittest.cc +++ b/pki/verify_name_match_unittest.cc @@ -8,7 +8,7 @@ #include "string_util.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { // Loads test data from file. The filename is constructed from the parameters: @@ -605,4 +605,4 @@ TEST(NameNormalizationTest, NormalizeCustom) { EXPECT_EQ(SequenceValueFromString(raw_der), der::Input(normalized_der)); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_signed_data.cc b/pki/verify_signed_data.cc index 4502e2de03..9c546fd889 100644 --- a/pki/verify_signed_data.cc +++ b/pki/verify_signed_data.cc @@ -18,7 +18,7 @@ #include "parser.h" #include "signature_algorithm.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -290,4 +290,4 @@ bool VerifySignedData(SignatureAlgorithm algorithm, der::Input signed_data, public_key.get(), cache); } -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_signed_data.h b/pki/verify_signed_data.h index 5ecfceab17..e8c4c4d9ee 100644 --- a/pki/verify_signed_data.h +++ b/pki/verify_signed_data.h @@ -11,7 +11,7 @@ #include "signature_algorithm.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace der { class BitString; @@ -42,6 +42,6 @@ class Input; [[nodiscard]] OPENSSL_EXPORT bool ParsePublicKey( der::Input public_key_spki, bssl::UniquePtr *public_key); -} // namespace bssl +BSSL_NAMESPACE_END #endif // BSSL_PKI_VERIFY_SIGNED_DATA_H_ diff --git a/pki/verify_signed_data_unittest.cc b/pki/verify_signed_data_unittest.cc index 1d94bb63a1..1a0232214b 100644 --- a/pki/verify_signed_data_unittest.cc +++ b/pki/verify_signed_data_unittest.cc @@ -17,7 +17,7 @@ #include "signature_algorithm.h" #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN namespace { @@ -238,4 +238,4 @@ TEST(VerifySignedDataTestWithCache, TestVerifyCache) { } // namespace -} // namespace bssl +BSSL_NAMESPACE_END diff --git a/pki/verify_unittest.cc b/pki/verify_unittest.cc index b724a98d5d..0be540b42a 100644 --- a/pki/verify_unittest.cc +++ b/pki/verify_unittest.cc @@ -25,7 +25,7 @@ #include "test_helpers.h" -namespace bssl { +BSSL_NAMESPACE_BEGIN static std::unique_ptr MozillaRootStore() { std::string diagnostic; @@ -137,4 +137,4 @@ TEST(VerifyTest, DepthLimit) { << error.DiagnosticString(); } -} // namespace bssl +BSSL_NAMESPACE_END From 06aff989b509c996db345cb21fe08e995f3e8462 Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Mon, 26 Aug 2024 17:37:59 +0000 Subject: [PATCH 40/81] Remove the unused MLKEM1024_SHARED_SECRET_BYTES This appears to perhaps have been a pasto and is confusing to consumers of this API. You share the same size secret with any mlkem Change-Id: I6ddfa21b4f8d293f990064a2a54cda9ba6119d5a Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70527 Commit-Queue: Adam Langley Auto-Submit: Bob Beck Reviewed-by: Adam Langley Commit-Queue: Bob Beck --- include/openssl/mlkem.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/openssl/mlkem.h b/include/openssl/mlkem.h index 34fdd9d287..e2abaa9879 100644 --- a/include/openssl/mlkem.h +++ b/include/openssl/mlkem.h @@ -161,10 +161,6 @@ struct MLKEM1024_private_key { // public key. #define MLKEM1024_PUBLIC_KEY_BYTES 1568 -// MLKEM1024_SHARED_SECRET_BYTES is the number of bytes in the ML-KEM-1024 -// shared secret. -#define MLKEM1024_SHARED_SECRET_BYTES 32 - // MLKEM1024_generate_key generates a random public/private key pair, writes the // encoded public key to |out_encoded_public_key| and sets |out_private_key| to // the private key. If |optional_out_seed| is not NULL then the seed used to From 98754792febcee75f1450970db678882424e8615 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 21 Aug 2024 16:38:57 -0400 Subject: [PATCH 41/81] Specify the list of Rust files with build.json In principle this should be derivable from lib.rs directly, but Rust made this surprisingly difficult, so we'll just do it with wildcards. Bug: 42290412 Change-Id: I3153613bdddf62eaa0e752a4a24192e2c484a95c Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70428 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- build.json | 11 +++++++++++ gen/sources.bzl | 28 ++++++++++++++++++++++++++++ gen/sources.cmake | 32 ++++++++++++++++++++++++++++++++ gen/sources.json | 30 ++++++++++++++++++++++++++++++ util/build/build.go | 4 ++-- util/generate_build_files.py | 22 ++-------------------- 6 files changed, 105 insertions(+), 22 deletions(-) diff --git a/build.json b/build.json index 55fe1a88e1..766117fdf5 100644 --- a/build.json +++ b/build.json @@ -1026,5 +1026,16 @@ "srcs": [ "fuzz/*.cc" ] + }, + "rust_bssl_sys": { + "srcs": [ + "rust/bssl-sys/src/*.rs" + ] + }, + "rust_bssl_crypto": { + "srcs": [ + "rust/bssl-crypto/src/*.rs", + "rust/bssl-crypto/src/*/*.rs" + ] } } diff --git a/gen/sources.bzl b/gen/sources.bzl index 4d0497f4bf..b989a3389c 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -2632,6 +2632,34 @@ pki_test_data = [ "pki/testdata/verify_unittest/self-issued.pem", ] +rust_bssl_crypto_sources = [ + "rust/bssl-crypto/src/aead.rs", + "rust/bssl-crypto/src/aes.rs", + "rust/bssl-crypto/src/cipher/aes_cbc.rs", + "rust/bssl-crypto/src/cipher/aes_ctr.rs", + "rust/bssl-crypto/src/cipher/mod.rs", + "rust/bssl-crypto/src/digest.rs", + "rust/bssl-crypto/src/ec.rs", + "rust/bssl-crypto/src/ecdh.rs", + "rust/bssl-crypto/src/ecdsa.rs", + "rust/bssl-crypto/src/ed25519.rs", + "rust/bssl-crypto/src/hkdf.rs", + "rust/bssl-crypto/src/hmac.rs", + "rust/bssl-crypto/src/hpke.rs", + "rust/bssl-crypto/src/lib.rs", + "rust/bssl-crypto/src/macros.rs", + "rust/bssl-crypto/src/mem.rs", + "rust/bssl-crypto/src/rand.rs", + "rust/bssl-crypto/src/rsa.rs", + "rust/bssl-crypto/src/scoped.rs", + "rust/bssl-crypto/src/test_helpers.rs", + "rust/bssl-crypto/src/x25519.rs", +] + +rust_bssl_sys_sources = [ + "rust/bssl-sys/src/lib.rs", +] + ssl_sources = [ "ssl/bio_ssl.cc", "ssl/d1_both.cc", diff --git a/gen/sources.cmake b/gen/sources.cmake index 4595e9936a..a2a374eaf3 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -2676,6 +2676,38 @@ set( pki/testdata/verify_unittest/self-issued.pem ) +set( + RUST_BSSL_CRYPTO_SOURCES + + rust/bssl-crypto/src/aead.rs + rust/bssl-crypto/src/aes.rs + rust/bssl-crypto/src/cipher/aes_cbc.rs + rust/bssl-crypto/src/cipher/aes_ctr.rs + rust/bssl-crypto/src/cipher/mod.rs + rust/bssl-crypto/src/digest.rs + rust/bssl-crypto/src/ec.rs + rust/bssl-crypto/src/ecdh.rs + rust/bssl-crypto/src/ecdsa.rs + rust/bssl-crypto/src/ed25519.rs + rust/bssl-crypto/src/hkdf.rs + rust/bssl-crypto/src/hmac.rs + rust/bssl-crypto/src/hpke.rs + rust/bssl-crypto/src/lib.rs + rust/bssl-crypto/src/macros.rs + rust/bssl-crypto/src/mem.rs + rust/bssl-crypto/src/rand.rs + rust/bssl-crypto/src/rsa.rs + rust/bssl-crypto/src/scoped.rs + rust/bssl-crypto/src/test_helpers.rs + rust/bssl-crypto/src/x25519.rs +) + +set( + RUST_BSSL_SYS_SOURCES + + rust/bssl-sys/src/lib.rs +) + set( SSL_SOURCES diff --git a/gen/sources.json b/gen/sources.json index c2a97d6be3..407f3ac28b 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -2613,6 +2613,36 @@ "pki/testdata/verify_unittest/self-issued.pem" ] }, + "rust_bssl_crypto": { + "srcs": [ + "rust/bssl-crypto/src/aead.rs", + "rust/bssl-crypto/src/aes.rs", + "rust/bssl-crypto/src/cipher/aes_cbc.rs", + "rust/bssl-crypto/src/cipher/aes_ctr.rs", + "rust/bssl-crypto/src/cipher/mod.rs", + "rust/bssl-crypto/src/digest.rs", + "rust/bssl-crypto/src/ec.rs", + "rust/bssl-crypto/src/ecdh.rs", + "rust/bssl-crypto/src/ecdsa.rs", + "rust/bssl-crypto/src/ed25519.rs", + "rust/bssl-crypto/src/hkdf.rs", + "rust/bssl-crypto/src/hmac.rs", + "rust/bssl-crypto/src/hpke.rs", + "rust/bssl-crypto/src/lib.rs", + "rust/bssl-crypto/src/macros.rs", + "rust/bssl-crypto/src/mem.rs", + "rust/bssl-crypto/src/rand.rs", + "rust/bssl-crypto/src/rsa.rs", + "rust/bssl-crypto/src/scoped.rs", + "rust/bssl-crypto/src/test_helpers.rs", + "rust/bssl-crypto/src/x25519.rs" + ] + }, + "rust_bssl_sys": { + "srcs": [ + "rust/bssl-sys/src/lib.rs" + ] + }, "ssl": { "srcs": [ "ssl/bio_ssl.cc", diff --git a/util/build/build.go b/util/build/build.go index 277bfdccce..dd28107a01 100644 --- a/util/build/build.go +++ b/util/build/build.go @@ -17,8 +17,8 @@ package build // A Target is a build target for consumption by the downstream build systems. // All pre-generated files are baked input its source lists. type Target struct { - // Srcs is the list of C or C++ files (determined by file extension) that are - // built into the target. + // Srcs is the list of C, C++, or Rust files (determined by file extension) + // that are built into the target. Srcs []string `json:"srcs,omitempty"` // Hdrs is the list public headers that should be available to external // projects using this target. diff --git a/util/generate_build_files.py b/util/generate_build_files.py index 2c601df09d..519d67e160 100644 --- a/util/generate_build_files.py +++ b/util/generate_build_files.py @@ -583,21 +583,6 @@ def FindCFiles(directory, filter_func): return cfiles -def FindRustFiles(directory): - """Recurses through directory and returns a list of paths to all the Rust source - files.""" - rust_files = [] - - for (path, dirnames, filenames) in os.walk(directory): - for filename in filenames: - if not filename.endswith('.rs'): - continue - rust_files.append(os.path.join(path, filename)) - - rust_files.sort() - return rust_files - - def FindHeaderFiles(directory, filter_func): """Recurses through directory and returns a list of paths to all the header files that pass filter_func.""" hfiles = [] @@ -626,9 +611,6 @@ def main(platforms): with open(os.path.join('src', 'gen', 'sources.json')) as f: sources = json.load(f) - bssl_sys_files = FindRustFiles(os.path.join('src', 'rust', 'bssl-sys', 'src')) - bssl_crypto_files = FindRustFiles(os.path.join('src', 'rust', 'bssl-crypto', 'src')) - # TODO(crbug.com/boringssl/542): generate_build_files.py historically reported # all the assembly files as part of libcrypto. Merge them for now, but we # should split them out later. @@ -662,8 +644,8 @@ def main(platforms): 'pki_internal_headers': PrefixWithSrc(sources['pki']['internal_hdrs']), 'pki_test': PrefixWithSrc(sources['pki_test']['srcs']), 'pki_test_data': PrefixWithSrc(sources['pki_test']['data']), - 'rust_bssl_crypto': bssl_crypto_files, - 'rust_bssl_sys': bssl_sys_files, + 'rust_bssl_crypto': PrefixWithSrc(sources['bssl_crypto_rust']['srcs']), + 'rust_bssl_sys': PrefixWithSrc(sources['bssl_sys_rust']['srcs']), 'ssl': PrefixWithSrc(sources['ssl']['srcs']), 'ssl_headers': PrefixWithSrc(sources['ssl']['hdrs']), 'ssl_internal_headers': PrefixWithSrc(sources['ssl']['internal_hdrs']), From 0a2d3a4de0922411ce6c6296c6bbf1f62055d23d Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Mon, 26 Aug 2024 10:33:06 -0700 Subject: [PATCH 42/81] Add P-256 KEM to HPKE. Change-Id: Ic13cfb17bc7be9aa7c25dec1b365dd092a5e3835 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70507 Reviewed-by: David Benjamin Commit-Queue: Adam Langley --- crypto/hpke/hpke.c | 295 +- crypto/hpke/hpke_test.cc | 229 +- crypto/hpke/hpke_test_vectors.txt | 6336 +++++++++++++++++++++++++ crypto/hpke/translate_test_vectors.py | 6 +- include/openssl/hpke.h | 14 +- 5 files changed, 6776 insertions(+), 104 deletions(-) diff --git a/crypto/hpke/hpke.c b/crypto/hpke/hpke.c index 9fe4c3cdaf..4aa74d4f11 100644 --- a/crypto/hpke/hpke.c +++ b/crypto/hpke/hpke.c @@ -21,12 +21,15 @@ #include #include #include +#include #include #include #include +#include #include #include +#include "../fipsmodule/ec/internal.h" #include "../internal.h" @@ -111,7 +114,7 @@ static int hpke_labeled_expand(const EVP_MD *hkdf_md, uint8_t *out_key, const uint8_t *info, size_t info_len) { // labeledInfo = concat(I2OSP(L, 2), "HPKE-v1", suite_id, label, info) CBB labeled_info; - int ok = CBB_init(&labeled_info, 0) && + int ok = CBB_init(&labeled_info, 0) && // CBB_add_u16(&labeled_info, out_len) && add_label_string(&labeled_info, kHpkeVersionId) && CBB_add_bytes(&labeled_info, suite_id, suite_id_len) && @@ -309,6 +312,294 @@ const EVP_HPKE_KEM *EVP_hpke_x25519_hkdf_sha256(void) { return &kKEM; } +#define P256_PRIVATE_KEY_LEN 32 +#define P256_PUBLIC_KEY_LEN 65 +#define P256_PUBLIC_VALUE_LEN 65 +#define P256_SEED_LEN 32 +#define P256_SHARED_KEY_LEN 32 + +static int p256_public_from_private(uint8_t out_pub[P256_PUBLIC_VALUE_LEN], + const uint8_t priv[P256_PRIVATE_KEY_LEN]) { + const EC_GROUP *const group = EC_group_p256(); + const uint8_t kAllZeros[P256_PRIVATE_KEY_LEN] = {0}; + EC_SCALAR private_scalar; + EC_JACOBIAN public_point; + EC_AFFINE public_point_affine; + + if (CRYPTO_memcmp(kAllZeros, priv, sizeof(kAllZeros)) == 0) { + OPENSSL_PUT_ERROR(EVP, EVP_R_DECODE_ERROR); + return 0; + } + + if (!ec_scalar_from_bytes(group, &private_scalar, priv, + P256_PRIVATE_KEY_LEN) || + !ec_point_mul_scalar_base(group, &public_point, &private_scalar) || + !ec_jacobian_to_affine(group, &public_point_affine, &public_point)) { + return 0; + } + + size_t out_len_x, out_len_y; + out_pub[0] = POINT_CONVERSION_UNCOMPRESSED; + ec_felem_to_bytes(group, &out_pub[1], &out_len_x, &public_point_affine.X); + ec_felem_to_bytes(group, &out_pub[33], &out_len_y, &public_point_affine.Y); + return 1; +} + +static int p256_init_key(EVP_HPKE_KEY *key, const uint8_t *priv_key, + size_t priv_key_len) { + if (priv_key_len != P256_PRIVATE_KEY_LEN) { + OPENSSL_PUT_ERROR(EVP, EVP_R_DECODE_ERROR); + return 0; + } + + if (!p256_public_from_private(key->public_key, priv_key)) { + return 0; + } + + OPENSSL_memcpy(key->private_key, priv_key, priv_key_len); + return 1; +} + +static int p256_private_key_from_seed(uint8_t out_priv[P256_PRIVATE_KEY_LEN], + const uint8_t seed[P256_SEED_LEN]) { + // https://www.rfc-editor.org/rfc/rfc9180.html#name-derivekeypair + const uint8_t suite_id[5] = {'K', 'E', 'M', + EVP_HPKE_DHKEM_P256_HKDF_SHA256 >> 8, + EVP_HPKE_DHKEM_P256_HKDF_SHA256 & 0xff}; + + uint8_t dkp_prk[32]; + size_t dkp_prk_len; + if (!hpke_labeled_extract(EVP_sha256(), dkp_prk, &dkp_prk_len, NULL, 0, + suite_id, sizeof(suite_id), "dkp_prk", seed, + P256_SEED_LEN)) { + return 0; + } + assert(dkp_prk_len == sizeof(dkp_prk)); + + const EC_GROUP *const group = EC_group_p256(); + EC_SCALAR private_scalar; + + for (unsigned counter = 0; counter < 256; counter++) { + const uint8_t counter_byte = counter & 0xff; + if (!hpke_labeled_expand(EVP_sha256(), out_priv, P256_PRIVATE_KEY_LEN, + dkp_prk, sizeof(dkp_prk), suite_id, + sizeof(suite_id), "candidate", &counter_byte, + sizeof(counter_byte))) { + return 0; + } + + // This checks that the scalar is less than the order. + if (ec_scalar_from_bytes(group, &private_scalar, out_priv, + P256_PRIVATE_KEY_LEN)) { + return 1; + } + } + + // This happens with probability of 2^-(32*256). + OPENSSL_PUT_ERROR(EVP, ERR_R_INTERNAL_ERROR); + return 0; +} + +static int p256_generate_key(EVP_HPKE_KEY *key) { + uint8_t seed[P256_SEED_LEN]; + RAND_bytes(seed, sizeof(seed)); + if (!p256_private_key_from_seed(key->private_key, seed) || + !p256_public_from_private(key->public_key, key->private_key)) { + return 0; + } + return 1; +} + +static int p256(uint8_t out_dh[P256_SHARED_KEY_LEN], + const uint8_t my_private[P256_PRIVATE_KEY_LEN], + const uint8_t their_public[P256_PUBLIC_VALUE_LEN]) { + const EC_GROUP *const group = EC_group_p256(); + EC_SCALAR private_scalar; + EC_FELEM x, y; + EC_JACOBIAN shared_point, their_point; + EC_AFFINE their_point_affine, shared_point_affine; + + if (their_public[0] != POINT_CONVERSION_UNCOMPRESSED || + !ec_felem_from_bytes(group, &x, &their_public[1], 32) || + !ec_felem_from_bytes(group, &y, &their_public[33], 32) || + !ec_point_set_affine_coordinates(group, &their_point_affine, &x, &y) || + !ec_scalar_from_bytes(group, &private_scalar, my_private, + P256_PRIVATE_KEY_LEN)) { + OPENSSL_PUT_ERROR(EVP, ERR_R_INTERNAL_ERROR); + return 0; + } + + ec_affine_to_jacobian(group, &their_point, &their_point_affine); + if (!ec_point_mul_scalar(group, &shared_point, &their_point, + &private_scalar) || + !ec_jacobian_to_affine(group, &shared_point_affine, &shared_point)) { + OPENSSL_PUT_ERROR(EVP, ERR_R_INTERNAL_ERROR); + return 0; + } + + size_t out_len; + ec_felem_to_bytes(group, out_dh, &out_len, &shared_point_affine.X); + assert(out_len == P256_SHARED_KEY_LEN); + return 1; +} + +static int p256_encap_with_seed(const EVP_HPKE_KEM *kem, + uint8_t *out_shared_secret, + size_t *out_shared_secret_len, uint8_t *out_enc, + size_t *out_enc_len, size_t max_enc, + const uint8_t *peer_public_key, + size_t peer_public_key_len, const uint8_t *seed, + size_t seed_len) { + if (max_enc < P256_PUBLIC_VALUE_LEN) { + OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_BUFFER_SIZE); + return 0; + } + if (seed_len != P256_SEED_LEN) { + OPENSSL_PUT_ERROR(EVP, EVP_R_DECODE_ERROR); + return 0; + } + uint8_t private_key[P256_PRIVATE_KEY_LEN]; + if (!p256_private_key_from_seed(private_key, seed)) { + return 0; + } + p256_public_from_private(out_enc, private_key); + + uint8_t dh[P256_SHARED_KEY_LEN]; + if (peer_public_key_len != P256_PUBLIC_VALUE_LEN || + !p256(dh, private_key, peer_public_key)) { + OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_PEER_KEY); + return 0; + } + + uint8_t kem_context[2 * P256_PUBLIC_VALUE_LEN]; + OPENSSL_memcpy(kem_context, out_enc, P256_PUBLIC_VALUE_LEN); + OPENSSL_memcpy(kem_context + P256_PUBLIC_VALUE_LEN, peer_public_key, + P256_PUBLIC_VALUE_LEN); + if (!dhkem_extract_and_expand(kem->id, EVP_sha256(), out_shared_secret, + SHA256_DIGEST_LENGTH, dh, sizeof(dh), + kem_context, sizeof(kem_context))) { + return 0; + } + + *out_enc_len = P256_PUBLIC_VALUE_LEN; + *out_shared_secret_len = SHA256_DIGEST_LENGTH; + return 1; +} + +static int p256_decap(const EVP_HPKE_KEY *key, uint8_t *out_shared_secret, + size_t *out_shared_secret_len, const uint8_t *enc, + size_t enc_len) { + uint8_t dh[P256_SHARED_KEY_LEN]; + if (enc_len != P256_PUBLIC_VALUE_LEN || // + !p256(dh, key->private_key, enc)) { + OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_PEER_KEY); + return 0; + } + + uint8_t kem_context[2 * P256_PUBLIC_VALUE_LEN]; + OPENSSL_memcpy(kem_context, enc, P256_PUBLIC_VALUE_LEN); + OPENSSL_memcpy(kem_context + P256_PUBLIC_VALUE_LEN, key->public_key, + P256_PUBLIC_VALUE_LEN); + if (!dhkem_extract_and_expand(key->kem->id, EVP_sha256(), out_shared_secret, + SHA256_DIGEST_LENGTH, dh, sizeof(dh), + kem_context, sizeof(kem_context))) { + return 0; + } + + *out_shared_secret_len = SHA256_DIGEST_LENGTH; + return 1; +} + +static int p256_auth_encap_with_seed( + const EVP_HPKE_KEY *key, uint8_t *out_shared_secret, + size_t *out_shared_secret_len, uint8_t *out_enc, size_t *out_enc_len, + size_t max_enc, const uint8_t *peer_public_key, size_t peer_public_key_len, + const uint8_t *seed, size_t seed_len) { + if (max_enc < P256_PUBLIC_VALUE_LEN) { + OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_BUFFER_SIZE); + return 0; + } + if (seed_len != P256_SEED_LEN) { + OPENSSL_PUT_ERROR(EVP, EVP_R_DECODE_ERROR); + return 0; + } + uint8_t private_key[P256_PRIVATE_KEY_LEN]; + if (!p256_private_key_from_seed(private_key, seed)) { + return 0; + } + p256_public_from_private(out_enc, private_key); + + uint8_t dh[2 * P256_SHARED_KEY_LEN]; + if (peer_public_key_len != P256_PUBLIC_VALUE_LEN || + !p256(dh, private_key, peer_public_key) || + !p256(dh + P256_SHARED_KEY_LEN, key->private_key, peer_public_key)) { + OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_PEER_KEY); + return 0; + } + + uint8_t kem_context[3 * P256_PUBLIC_VALUE_LEN]; + OPENSSL_memcpy(kem_context, out_enc, P256_PUBLIC_VALUE_LEN); + OPENSSL_memcpy(kem_context + P256_PUBLIC_VALUE_LEN, peer_public_key, + P256_PUBLIC_VALUE_LEN); + OPENSSL_memcpy(kem_context + 2 * P256_PUBLIC_VALUE_LEN, key->public_key, + P256_PUBLIC_VALUE_LEN); + if (!dhkem_extract_and_expand(key->kem->id, EVP_sha256(), out_shared_secret, + SHA256_DIGEST_LENGTH, dh, sizeof(dh), + kem_context, sizeof(kem_context))) { + return 0; + } + + *out_enc_len = P256_PUBLIC_VALUE_LEN; + *out_shared_secret_len = SHA256_DIGEST_LENGTH; + return 1; +} + +static int p256_auth_decap(const EVP_HPKE_KEY *key, uint8_t *out_shared_secret, + size_t *out_shared_secret_len, const uint8_t *enc, + size_t enc_len, const uint8_t *peer_public_key, + size_t peer_public_key_len) { + uint8_t dh[2 * P256_SHARED_KEY_LEN]; + if (enc_len != P256_PUBLIC_VALUE_LEN || + peer_public_key_len != P256_PUBLIC_VALUE_LEN || + !p256(dh, key->private_key, enc) || + !p256(dh + P256_SHARED_KEY_LEN, key->private_key, peer_public_key)) { + OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_PEER_KEY); + return 0; + } + + uint8_t kem_context[3 * P256_PUBLIC_VALUE_LEN]; + OPENSSL_memcpy(kem_context, enc, P256_PUBLIC_VALUE_LEN); + OPENSSL_memcpy(kem_context + P256_PUBLIC_VALUE_LEN, key->public_key, + P256_PUBLIC_VALUE_LEN); + OPENSSL_memcpy(kem_context + 2 * P256_PUBLIC_VALUE_LEN, peer_public_key, + P256_PUBLIC_VALUE_LEN); + if (!dhkem_extract_and_expand(key->kem->id, EVP_sha256(), out_shared_secret, + SHA256_DIGEST_LENGTH, dh, sizeof(dh), + kem_context, sizeof(kem_context))) { + return 0; + } + + *out_shared_secret_len = SHA256_DIGEST_LENGTH; + return 1; +} + +const EVP_HPKE_KEM *EVP_hpke_p256_hkdf_sha256(void) { + static const EVP_HPKE_KEM kKEM = { + /*id=*/EVP_HPKE_DHKEM_P256_HKDF_SHA256, + /*public_key_len=*/P256_PUBLIC_KEY_LEN, + /*private_key_len=*/P256_PRIVATE_KEY_LEN, + /*seed_len=*/P256_SEED_LEN, + /*enc_len=*/P256_PUBLIC_VALUE_LEN, + p256_init_key, + p256_generate_key, + p256_encap_with_seed, + p256_decap, + p256_auth_encap_with_seed, + p256_auth_decap, + }; + return &kKEM; +} + uint16_t EVP_HPKE_KEM_id(const EVP_HPKE_KEM *kem) { return kem->id; } size_t EVP_HPKE_KEM_public_key_len(const EVP_HPKE_KEM *kem) { @@ -398,7 +689,7 @@ int EVP_HPKE_KEY_public_key(const EVP_HPKE_KEY *key, uint8_t *out, } int EVP_HPKE_KEY_private_key(const EVP_HPKE_KEY *key, uint8_t *out, - size_t *out_len, size_t max_out) { + size_t *out_len, size_t max_out) { if (max_out < key->kem->private_key_len) { OPENSSL_PUT_ERROR(EVP, EVP_R_INVALID_BUFFER_SIZE); return 0; diff --git a/crypto/hpke/hpke_test.cc b/crypto/hpke/hpke_test.cc index 2e22e335fa..e457b7b293 100644 --- a/crypto/hpke/hpke_test.cc +++ b/crypto/hpke/hpke_test.cc @@ -37,6 +37,11 @@ BSSL_NAMESPACE_BEGIN namespace { +const decltype(&EVP_hpke_x25519_hkdf_sha256) kAllKEMs[] = { + &EVP_hpke_p256_hkdf_sha256, + &EVP_hpke_x25519_hkdf_sha256, +}; + const decltype(&EVP_hpke_aes_128_gcm) kAllAEADs[] = { &EVP_hpke_aes_128_gcm, &EVP_hpke_aes_256_gcm, @@ -57,7 +62,7 @@ class HPKETestVector { bool ReadFromFileTest(FileTest *t); void Verify() const { - const EVP_HPKE_KEM *kem = EVP_hpke_x25519_hkdf_sha256(); + const EVP_HPKE_KEM *kem = GetKEM(); const EVP_HPKE_AEAD *aead = GetAEAD(); ASSERT_TRUE(aead); const EVP_HPKE_KDF *kdf = GetKDF(); @@ -67,12 +72,19 @@ class HPKETestVector { ScopedEVP_HPKE_CTX sender_ctx; uint8_t enc[EVP_HPKE_MAX_ENC_LENGTH]; size_t enc_len = 0; + + // X25519 uses the secret key directly. P-256 uses the IKM to derive a key. + bssl::Span secret_input = secret_key_e_; + if (kem_id_ == EVP_HPKE_DHKEM_P256_HKDF_SHA256) { + secret_input = ikm_e_; + } + switch (mode_) { case Mode::kBase: ASSERT_TRUE(EVP_HPKE_CTX_setup_sender_with_seed_for_testing( sender_ctx.get(), enc, &enc_len, sizeof(enc), kem, kdf, aead, public_key_r_.data(), public_key_r_.size(), info_.data(), - info_.size(), secret_key_e_.data(), secret_key_e_.size())); + info_.size(), secret_input.data(), secret_input.size())); break; case Mode::kAuth: { ScopedEVP_HPKE_KEY sender_key; @@ -81,7 +93,7 @@ class HPKETestVector { ASSERT_TRUE(EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing( sender_ctx.get(), enc, &enc_len, sizeof(enc), sender_key.get(), kdf, aead, public_key_r_.data(), public_key_r_.size(), info_.data(), - info_.size(), secret_key_e_.data(), secret_key_e_.size())); + info_.size(), secret_input.data(), secret_input.size())); break; } } @@ -145,6 +157,15 @@ class HPKETestVector { } private: + const EVP_HPKE_KEM *GetKEM() const { + for (const auto kem : kAllKEMs) { + if (EVP_HPKE_KEM_id(kem()) == kem_id_) { + return kem(); + } + } + return nullptr; + } + const EVP_HPKE_AEAD *GetAEAD() const { for (const auto aead : kAllAEADs) { if (EVP_HPKE_AEAD_id(aead()) == aead_id_) { @@ -221,14 +242,17 @@ class HPKETestVector { }; Mode mode_; + uint16_t kem_id_; uint16_t kdf_id_; uint16_t aead_id_; std::vector context_; std::vector info_; std::vector public_key_e_; std::vector secret_key_e_; + std::vector ikm_e_; std::vector public_key_r_; std::vector secret_key_r_; + std::vector ikm_r_; std::vector public_key_s_; std::vector secret_key_s_; std::vector encryptions_; @@ -270,13 +294,16 @@ bool FileTestReadInt(FileTest *file_test, T *out, const std::string &key) { bool HPKETestVector::ReadFromFileTest(FileTest *t) { uint8_t mode = 0; if (!FileTestReadInt(t, &mode, "mode") || + !FileTestReadInt(t, &kem_id_, "kem_id") || !FileTestReadInt(t, &kdf_id_, "kdf_id") || !FileTestReadInt(t, &aead_id_, "aead_id") || - !t->GetBytes(&info_, "info") || + !t->GetBytes(&info_, "info") || // !t->GetBytes(&secret_key_r_, "skRm") || !t->GetBytes(&public_key_r_, "pkRm") || + !t->GetBytes(&ikm_r_, "ikmR") || // !t->GetBytes(&secret_key_e_, "skEm") || - !t->GetBytes(&public_key_e_, "pkEm")) { + !t->GetBytes(&public_key_e_, "pkEm") || // + !t->GetBytes(&ikm_e_, "ikmE")) { return false; } @@ -339,96 +366,98 @@ TEST(HPKETest, RoundTrip) { Span info_values[] = {{nullptr, 0}, info_a, info_b}; Span ad_values[] = {{nullptr, 0}, ad_a, ad_b}; - const EVP_HPKE_KEM *kem = EVP_hpke_x25519_hkdf_sha256(); + for (const auto kem : kAllKEMs) { + SCOPED_TRACE(EVP_HPKE_KEM_id(kem())); + + // Generate the recipient's keypair. + ScopedEVP_HPKE_KEY key; + ASSERT_TRUE(EVP_HPKE_KEY_generate(key.get(), kem())); + uint8_t public_key_r[EVP_HPKE_MAX_PUBLIC_KEY_LENGTH]; + size_t public_key_r_len; + ASSERT_TRUE(EVP_HPKE_KEY_public_key( + key.get(), public_key_r, &public_key_r_len, sizeof(public_key_r))); + + // Generate the sender's keypair, for auth modes. + ScopedEVP_HPKE_KEY sender_key; + ASSERT_TRUE(EVP_HPKE_KEY_generate(sender_key.get(), kem())); + uint8_t public_key_s[EVP_HPKE_MAX_PUBLIC_KEY_LENGTH]; + size_t public_key_s_len; + ASSERT_TRUE(EVP_HPKE_KEY_public_key(sender_key.get(), public_key_s, + &public_key_s_len, + sizeof(public_key_s))); - // Generate the recipient's keypair. - ScopedEVP_HPKE_KEY key; - ASSERT_TRUE(EVP_HPKE_KEY_generate(key.get(), kem)); - uint8_t public_key_r[X25519_PUBLIC_VALUE_LEN]; - size_t public_key_r_len; - ASSERT_TRUE(EVP_HPKE_KEY_public_key(key.get(), public_key_r, - &public_key_r_len, sizeof(public_key_r))); - - // Generate the sender's keypair, for auth modes. - ScopedEVP_HPKE_KEY sender_key; - ASSERT_TRUE( - EVP_HPKE_KEY_generate(sender_key.get(), kem)); - uint8_t public_key_s[X25519_PUBLIC_VALUE_LEN]; - size_t public_key_s_len; - ASSERT_TRUE(EVP_HPKE_KEY_public_key(sender_key.get(), public_key_s, - &public_key_s_len, sizeof(public_key_r))); - - for (const auto kdf : kAllKDFs) { - SCOPED_TRACE(EVP_HPKE_KDF_id(kdf())); - for (const auto aead : kAllAEADs) { - SCOPED_TRACE(EVP_HPKE_AEAD_id(aead())); - for (const Span &info : info_values) { - SCOPED_TRACE(Bytes(info)); - for (const Span &ad : ad_values) { - SCOPED_TRACE(Bytes(ad)); - - auto check_messages = [&](EVP_HPKE_CTX *sender_ctx, - EVP_HPKE_CTX *recipient_ctx) { - const char kCleartextPayload[] = "foobar"; - - // Have sender encrypt message for the recipient. - std::vector ciphertext( - sizeof(kCleartextPayload) + - EVP_HPKE_CTX_max_overhead(sender_ctx)); - size_t ciphertext_len; - ASSERT_TRUE(EVP_HPKE_CTX_seal( - sender_ctx, ciphertext.data(), &ciphertext_len, - ciphertext.size(), - reinterpret_cast(kCleartextPayload), - sizeof(kCleartextPayload), ad.data(), ad.size())); - - // Have recipient decrypt the message. - std::vector cleartext(ciphertext.size()); - size_t cleartext_len; - ASSERT_TRUE(EVP_HPKE_CTX_open(recipient_ctx, cleartext.data(), - &cleartext_len, cleartext.size(), - ciphertext.data(), ciphertext_len, - ad.data(), ad.size())); - - // Verify that decrypted message matches the original. - ASSERT_EQ(Bytes(cleartext.data(), cleartext_len), - Bytes(kCleartextPayload, sizeof(kCleartextPayload))); - }; - - // Test the base mode. - { - ScopedEVP_HPKE_CTX sender_ctx; - uint8_t enc[X25519_PUBLIC_VALUE_LEN]; - size_t enc_len; - ASSERT_TRUE(EVP_HPKE_CTX_setup_sender( - sender_ctx.get(), enc, &enc_len, sizeof(enc), kem, kdf(), - aead(), public_key_r, public_key_r_len, info.data(), - info.size())); - - ScopedEVP_HPKE_CTX recipient_ctx; - ASSERT_TRUE(EVP_HPKE_CTX_setup_recipient( - recipient_ctx.get(), key.get(), kdf(), aead(), enc, enc_len, - info.data(), info.size())); - - check_messages(sender_ctx.get(), recipient_ctx.get()); - } - - // Test the auth mode. - { - ScopedEVP_HPKE_CTX sender_ctx; - uint8_t enc[X25519_PUBLIC_VALUE_LEN]; - size_t enc_len; - ASSERT_TRUE(EVP_HPKE_CTX_setup_auth_sender( - sender_ctx.get(), enc, &enc_len, sizeof(enc), sender_key.get(), - kdf(), aead(), public_key_r, public_key_r_len, info.data(), - info.size())); - - ScopedEVP_HPKE_CTX recipient_ctx; - ASSERT_TRUE(EVP_HPKE_CTX_setup_auth_recipient( - recipient_ctx.get(), key.get(), kdf(), aead(), enc, enc_len, - info.data(), info.size(), public_key_s, public_key_s_len)); - - check_messages(sender_ctx.get(), recipient_ctx.get()); + for (const auto kdf : kAllKDFs) { + SCOPED_TRACE(EVP_HPKE_KDF_id(kdf())); + for (const auto aead : kAllAEADs) { + SCOPED_TRACE(EVP_HPKE_AEAD_id(aead())); + for (const Span &info : info_values) { + SCOPED_TRACE(Bytes(info)); + for (const Span &ad : ad_values) { + SCOPED_TRACE(Bytes(ad)); + + auto check_messages = [&](EVP_HPKE_CTX *sender_ctx, + EVP_HPKE_CTX *recipient_ctx) { + const char kCleartextPayload[] = "foobar"; + + // Have sender encrypt message for the recipient. + std::vector ciphertext( + sizeof(kCleartextPayload) + + EVP_HPKE_CTX_max_overhead(sender_ctx)); + size_t ciphertext_len; + ASSERT_TRUE(EVP_HPKE_CTX_seal( + sender_ctx, ciphertext.data(), &ciphertext_len, + ciphertext.size(), + reinterpret_cast(kCleartextPayload), + sizeof(kCleartextPayload), ad.data(), ad.size())); + + // Have recipient decrypt the message. + std::vector cleartext(ciphertext.size()); + size_t cleartext_len; + ASSERT_TRUE(EVP_HPKE_CTX_open(recipient_ctx, cleartext.data(), + &cleartext_len, cleartext.size(), + ciphertext.data(), ciphertext_len, + ad.data(), ad.size())); + + // Verify that decrypted message matches the original. + ASSERT_EQ(Bytes(cleartext.data(), cleartext_len), + Bytes(kCleartextPayload, sizeof(kCleartextPayload))); + }; + + // Test the base mode. + { + ScopedEVP_HPKE_CTX sender_ctx; + uint8_t enc[EVP_HPKE_MAX_PUBLIC_KEY_LENGTH]; + size_t enc_len; + ASSERT_TRUE(EVP_HPKE_CTX_setup_sender( + sender_ctx.get(), enc, &enc_len, sizeof(enc), kem(), kdf(), + aead(), public_key_r, public_key_r_len, info.data(), + info.size())); + + ScopedEVP_HPKE_CTX recipient_ctx; + ASSERT_TRUE(EVP_HPKE_CTX_setup_recipient( + recipient_ctx.get(), key.get(), kdf(), aead(), enc, enc_len, + info.data(), info.size())); + + check_messages(sender_ctx.get(), recipient_ctx.get()); + } + + // Test the auth mode. + { + ScopedEVP_HPKE_CTX sender_ctx; + uint8_t enc[EVP_HPKE_MAX_PUBLIC_KEY_LENGTH]; + size_t enc_len; + ASSERT_TRUE(EVP_HPKE_CTX_setup_auth_sender( + sender_ctx.get(), enc, &enc_len, sizeof(enc), + sender_key.get(), kdf(), aead(), public_key_r, + public_key_r_len, info.data(), info.size())); + + ScopedEVP_HPKE_CTX recipient_ctx; + ASSERT_TRUE(EVP_HPKE_CTX_setup_auth_recipient( + recipient_ctx.get(), key.get(), kdf(), aead(), enc, enc_len, + info.data(), info.size(), public_key_s, public_key_s_len)); + + check_messages(sender_ctx.get(), recipient_ctx.get()); + } } } } @@ -613,6 +642,18 @@ TEST(HPKETest, InvalidRecipientKey) { private_key, sizeof(private_key))); } +TEST(HPKETest, InvalidP256PrivateKey) { + const uint8_t zero_key[32] = {0}; + ScopedEVP_HPKE_KEY key; + EXPECT_FALSE(EVP_HPKE_KEY_init(key.get(), EVP_hpke_p256_hkdf_sha256(), + zero_key, sizeof(zero_key))); + + uint8_t all_ones_key[32]; + OPENSSL_memset(all_ones_key, 0xff, sizeof(all_ones_key)); + EXPECT_FALSE(EVP_HPKE_KEY_init(key.get(), EVP_hpke_p256_hkdf_sha256(), + all_ones_key, sizeof(all_ones_key))); +} + TEST(HPKETest, InternalParseIntSafe) { uint8_t u8 = 0xff; ASSERT_FALSE(ParseIntSafe(&u8, "-1")); diff --git a/crypto/hpke/hpke_test_vectors.txt b/crypto/hpke/hpke_test_vectors.txt index f99ee236de..f8d3110eea 100644 --- a/crypto/hpke/hpke_test_vectors.txt +++ b/crypto/hpke/hpke_test_vectors.txt @@ -1,4 +1,5 @@ mode = 0 +kem_id = 32 kdf_id = 1 aead_id = 1 info = 4f6465206f6e2061204772656369616e2055726e @@ -6,6 +7,8 @@ skRm = 4612c550263fc8ad58375df3f557aac531d26850903e55a9f23f21d8534e8ac8 skEm = 52c4a758a802cd8b936eceea314432798d5baf2d7e9235dc084ab1b9cfa2f736 pkRm = 3948cfe0ad1ddb695d780e59077195da6c56506b027329794ab02bca80815c4d pkEm = 37fda3567bdbd628e88668c3c8d7e97d1d1253b6d4ea6d44c150f741f1bf4431 +ikmE = 7268600d403fce431561aef583ee1613527cff655c1343f29812e66706df3234 +ikmR = 6db9df30aa07dd42ee5e8181afdb977e538f5e1fec8a06223f33f7013e525037 # encryptions[0] aad = 436f756e742d30 ct = f938558b5d72f1a23810b4be2ab4f84331acc02fc97babc53a52ae8218a355a96d8770ac83d07bea87e13c512a @@ -1048,6 +1051,7 @@ L = 32 exported_value = e9e43065102c3836401bed8c3c3c75ae46be1639869391d62c61f1ec7af54931 mode = 2 +kem_id = 32 kdf_id = 1 aead_id = 1 info = 4f6465206f6e2061204772656369616e2055726e @@ -1055,6 +1059,8 @@ skRm = fdea67cf831f1ca98d8e27b1f6abeb5b7745e9d35348b80fa407ff6958f9137e skEm = ff4442ef24fbc3c1ff86375b0be1e77e88a0de1e79b30896d73411c5ff4c3518 pkRm = 1632d5c2f71c2b38d0a8fcc359355200caa8b1ffdf28618080466c909cb69b2e pkEm = 23fb952571a14a25e3d678140cd0e5eb47a0961bb18afcf85896e5453c312e76 +ikmE = 6e6d8f200ea2fb20c30b003a8b4f433d2f4ed4c2658d5bc8ce2fef718059c9f7 +ikmR = f1d4a30a4cef8d6d4e3b016e6fd3799ea057db4f345472ed302a67ce1c20cdec pkSm = 8b0c70873dc5aecb7f9ee4e62406a397b350e57012be45cf53b7105ae731790b skSm = dc4a146313cce60a278a5323d321f051c5707e9c45ba21a3479fecdf76fc69dd # encryptions[0] @@ -2099,6 +2105,7 @@ L = 32 exported_value = 5a0131813abc9a522cad678eb6bafaabc43389934adb8097d23c5ff68059eb64 mode = 0 +kem_id = 32 kdf_id = 1 aead_id = 2 info = 4f6465206f6e2061204772656369616e2055726e @@ -2106,6 +2113,8 @@ skRm = 497b4502664cfea5d5af0b39934dac72242a74f8480451e1aee7d6a53320333d skEm = 179d4b53b6365c45b600c4163b61d95cbc2f4d9e36f1695558dce265ab8bab11 pkRm = 430f4b9859665145a6b1ba274024487bd66f03a2dd577d7753c68d7d7d00c00c pkEm = 6c93e09869df3402d7bf231bf540fadd35cd56be14f97178f0954db94b7fc256 +ikmE = 2cd7c601cefb3d42a62b04b7a9041494c06c7843818e0ce28a8f704ae7ab20f9 +ikmR = dac33b0e9db1b59dbbea58d59a14e7b5896e9bdf98fad6891e99d1686492b9ee # encryptions[0] aad = 436f756e742d30 ct = e5d84cd531cfb583096e7cfa9641bd3079cf3a91cda813c52deb5f512be9931980a41de125a925cdad859d5b7a @@ -3148,6 +3157,7 @@ L = 32 exported_value = 7c5ded445732c14fe09727d29b4251c0fd38455fe8440571e687f0886aac94d2 mode = 2 +kem_id = 32 kdf_id = 1 aead_id = 2 info = 4f6465206f6e2061204772656369616e2055726e @@ -3155,6 +3165,8 @@ skRm = 47f1eee3670dfaaf27c30a83d06ee9f257af174727c17b35328ef730dfc1cd81 skEm = 805b278cabd22c9dbd461bf25771703eda4950ed3ef35b369163097899555356 pkRm = 3668d659cec6f338f4f8dc6da6733118d2a633f186a3c1415c895111a8eb7c7d pkEm = 9e59f4b1fa5c876f684765290c34e51145894cc4f244342b9fb1a4bdfd8bb426 +ikmE = 734369ab3061f71ee85e090fae308553cac8e7b3fbd45b4ba83d05e0cd05b1c4 +ikmR = f59761a1e479c2a291b91a5af2b35dd2cace1b2042b570f88a16b226f6f30774 pkSm = 4a91c3d0893433f5e31a79fc520f885527a1bc60bf2b0c72693dd7f0b2e41a5a skSm = 98fdf9b9773578a79d4ba82fbe483c74cc2e3b8d9525d148a18969fd79a74876 # encryptions[0] @@ -4199,6 +4211,7 @@ L = 32 exported_value = 25f7c731201fe73978b5c66405f17de3e59b7f1c4bbe21e9ff57541d152841ac mode = 0 +kem_id = 32 kdf_id = 1 aead_id = 3 info = 4f6465206f6e2061204772656369616e2055726e @@ -4206,6 +4219,8 @@ skRm = 8057991eef8f1f1af18f4a9491d16a1ce333f695d4db8e38da75975c4478e0fb skEm = f4ec9b33b792c372c1d2c2063507b684ef925b8c75a42dbcbf57d63ccd381600 pkRm = 4310ee97d88cc1f088a5576c77ab0cf5c3ac797f3d95139c6c84b5429c59662a pkEm = 1afa08d3dec047a643885163f1180476fa7ddb54c6a8029ea33f95796bf2ac4a +ikmE = 909a9b35d3dc4713a5e72a4da274b55d3d3821a37e5d099e74a647db583a904b +ikmR = 1ac01f181fdf9f352797655161c58b75c656a6cc2716dcb66372da835542e1df # encryptions[0] aad = 436f756e742d30 ct = 1c5250d8034ec2b784ba2cfd69dbdb8af406cfe3ff938e131f0def8c8b60b4db21993c62ce81883d2dd1b51a28 @@ -5248,6 +5263,7 @@ L = 32 exported_value = 5acb09211139c43b3090489a9da433e8a30ee7188ba8b0a9a1ccf0c229283e53 mode = 2 +kem_id = 32 kdf_id = 1 aead_id = 3 info = 4f6465206f6e2061204772656369616e2055726e @@ -5255,6 +5271,8 @@ skRm = 3ca22a6d1cda1bb9480949ec5329d3bf0b080ca4c45879c95eddb55c70b80b82 skEm = c94619e1af28971c8fa7957192b7e62a71ca2dcdde0a7cc4a8a9e741d600ab13 pkRm = 1a478716d63cb2e16786ee93004486dc151e988b34b475043d3e0175bdb01c44 pkEm = f7674cc8cd7baa5872d1f33dbaffe3314239f6197ddf5ded1746760bfc847e0e +ikmE = 938d3daa5a8904540bc24f48ae90eed3f4f7f11839560597b55e7c9598c996c0 +ikmR = 64835d5ee64aa7aad57c6f2e4f758f7696617f8829e70bc9ac7a5ef95d1c756c pkSm = f0f4f9e96c54aeed3f323de8534fffd7e0577e4ce269896716bcb95643c8712b skSm = 2def0cb58ffcf83d1062dd085c8aceca7f4c0c3fd05912d847b61f3e54121f05 # encryptions[0] @@ -6297,3 +6315,6321 @@ exported_value = 2852e728568d40ddb0edde284d36a4359c56558bb2fb8837cd3d92e46a3a14a exporter_context = 54657374436f6e74657874 L = 32 exported_value = 1df39dc5dd60edcbf5f9ae804e15ada66e885b28ed7929116f768369a3f950ee + +mode = 2 +kem_id = 16 +kdf_id = 1 +aead_id = 1 +info = 4f6465206f6e2061204772656369616e2055726e +skRm = d929ab4be2e59f6954d6bedd93e638f02d4046cef21115b00cdda2acb2a4440e +skEm = 6b8de0873aed0c1b2d09b8c7ed54cbf24fdf1dfc7a47fa501f918810642d7b91 +pkRm = 04423e363e1cd54ce7b7573110ac121399acbc9ed815fae03b72ffbd4c18b01836835c5a09513f28fc971b7266cfde2e96afe84bb0f266920e82c4f53b36e1a78d +pkEm = 042224f3ea800f7ec55c03f29fc9865f6ee27004f818fcbdc6dc68932c1e52e15b79e264a98f2c535ef06745f3d308624414153b22c7332bc1e691cb4af4d53454 +ikmE = 798d82a8d9ea19dbc7f2c6dfa54e8a6706f7cdc119db0813dacf8440ab37c857 +ikmR = 7bc93bde8890d1fb55220e7f3b0c107ae7e6eda35ca4040bb6651284bf0747ee +pkSm = 04a817a0902bf28e036d66add5d544cc3a0457eab150f104285df1e293b5c10eef8651213e43d9cd9086c80b309df22cf37609f58c1127f7607e85f210b2804f73 +skSm = 1120ac99fb1fccc1e8230502d245719d1b217fe20505c7648795139d177f0de9 +# encryptions[0] +aad = 436f756e742d30 +ct = 82ffc8c44760db691a07c5627e5fc2c08e7a86979ee79b494a17cc3405446ac2bdb8f265db4a099ed3289ffe19 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[1] +aad = 436f756e742d31 +ct = b0a705a54532c7b4f5907de51c13dffe1e08d55ee9ba59686114b05945494d96725b239468f1229e3966aa1250 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[2] +aad = 436f756e742d32 +ct = 8dc805680e3271a801790833ed74473710157645584f06d1b53ad439078d880b23e25256663178271c80ee8b7c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[3] +aad = 436f756e742d33 +ct = cc35c0fd3e2998284d171402560813c524c7274dbd870d93523270e5a4bcb7cdc7615def30b73ee0ed6f1d1162 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[4] +aad = 436f756e742d34 +ct = 04c8f7aae1584b61aa5816382cb0b834a5d744f420e6dffb5ddcec633a21b8b3472820930c1ea9258b035937a2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[5] +aad = 436f756e742d35 +ct = 0513439a7dad9e0ba738741a0329c5dedd2af432a9022ca15babb7cf5bc94eb9c98aac568cf65f1a987d6b283d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[6] +aad = 436f756e742d36 +ct = a0954bd76aaf91cb124b1473c321c26009bb253426169e26f6d3c1753d79d68e8cdd7d4f6421087c8fc3e5c9be +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[7] +aad = 436f756e742d37 +ct = 5b2f48266f85efaa9d3fb8bc14ae818c58fbb1adb9083667978f50ebcd2f7008fd63f42e58faf149128cea6df3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[8] +aad = 436f756e742d38 +ct = 20ef0bac7e91ebdbacbeaab6991edb88f4555a20e3f05170fe523ca740858c7e4196b3ac4d22e6e10d8d1c8a7e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[9] +aad = 436f756e742d39 +ct = c8fff6563d728171579e2d10cc48b7940b1a9cdf2cf6efb75e9708580a4436d93164cc17f97716e30f9eec43a4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[10] +aad = 436f756e742d3130 +ct = 451cb8362d47a6bcc6ad763facc1957b6755a8c8f3b667ffa0c99e882e198bd489e4491d19a9d8e61f49bfe08a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[11] +aad = 436f756e742d3131 +ct = 747714928d9d670171dae177699c9655e7139666cc8dc5965fc1c826e442703e39b42580d91bb11a4d4dba1254 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[12] +aad = 436f756e742d3132 +ct = 1beaf0e462bc5f65ad94ce70d48f4d94419da23f825683fc882ab0f533089e25c26c9935adf64dfb27cb9a41bc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[13] +aad = 436f756e742d3133 +ct = eb9dbcd6f96c75f7a4e37eb3914ec08c7997d7160eb91fc85d93a07663d84cde5cc8eac735e34fc6455424f80d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[14] +aad = 436f756e742d3134 +ct = 221bf3ad6cc96665dda3e679127eec7ff4929be494e5929461fd726ec3e755fcba8390d4cbc19b55ff55eaf75b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[15] +aad = 436f756e742d3135 +ct = 01a9baab218c5cd0b37b782b96eb61daaf0a9296cee6348a87272a7950df285841867fe6aaee76fdd48e9169cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[16] +aad = 436f756e742d3136 +ct = b959f18a13b8d4784b775149bfc703aeb1dd05ddeb632804f4651fb1de864439faa90baf1945aca45b7f4557d0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[17] +aad = 436f756e742d3137 +ct = 8f2db45780c061a86bd3ec4fad8061a529ea4285f90b125c3684796642d26d893d160addd64ec75fabd9f8e1d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[18] +aad = 436f756e742d3138 +ct = 6863a4983a5814744f7460281ef3c8efc5270f43febf562d711c028793c504b96dfa90cc741a55e54865f395da +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[19] +aad = 436f756e742d3139 +ct = 17abf58e0caaa4086052ec0c0e42c031c3d4dc89fbfbd58de60989b2e274dd32ad3cd1fb9c9dd8babca53b7167 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[20] +aad = 436f756e742d3230 +ct = 2ca4c7ce9a7fe6f1b86b6fa0c4dd379d546e05a8addaf2583a3270dea7eb9a57f474ca8e77059e52c44d83e167 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[21] +aad = 436f756e742d3231 +ct = 9d57a8e3e5ad786831f10fc6dc2b14865cd572368434c999ccfab85924adeafaaf7a82bf67bfd2322558bbff54 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[22] +aad = 436f756e742d3232 +ct = c7c124f10ddbff77b0b14557b9d0a36f7f88cdd6699513725f9d68974999509a32edc59c5e6b7a15a26a6fba0c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[23] +aad = 436f756e742d3233 +ct = 7274a4d2cc76c31361ac4b5b538b9964409c9e840603ec9d922e0bfa37ec69f9b0240de579e87e20558be0995f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[24] +aad = 436f756e742d3234 +ct = 1c0c942a42d0d42216446e89ca7b9626d822f091ebb7bc35c17b89642d176ac4483501604bcec4dcfa2cd75176 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[25] +aad = 436f756e742d3235 +ct = bcd0d249ca97ec229c6984249bea29da4ca44a04d2b13a8715df815f6b694de185c74210c65db7d3cfa8f724d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[26] +aad = 436f756e742d3236 +ct = e96a96d451a7eaf41a4e933168a547369ad729eb6da303bc22aeb721f3db057aa4b1365cd73366aa8e0fc1379e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[27] +aad = 436f756e742d3237 +ct = ee5b2f874a789a8ca6a8368a68668ff91e7cc5ae64d92e01687f177158d9fc5996a04959986bf46ef51f1ba6a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[28] +aad = 436f756e742d3238 +ct = 93519240fc4c497adaefe6a02ad90a7b7de72b9c5c043fd1a67abad107fbab7f6a4adfa30896d929ad232196a0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[29] +aad = 436f756e742d3239 +ct = 779f6d046b2772318833fd75265526823ca459ddab1bae98be0aba3de4c31c58302de698fc060b68b98c0923d4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[30] +aad = 436f756e742d3330 +ct = 69cd8a4f0c952e6e3aeca7c77e1bcf51cba1480b076ca5b6014e99220c21e1279d376b8d36e77a1b76534af8cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[31] +aad = 436f756e742d3331 +ct = 4087c3567292a07ad926e8bdb4c8c0ef9e18063e77d39645a1201fc98ff5a5d980f25779f236389a0734fc7274 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[32] +aad = 436f756e742d3332 +ct = 3bdc256afafb2549dfc57f1a6a706e4b265f342612a988a653f0c2064f87d15bc798d6c81a15b29d1e4cc8e248 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[33] +aad = 436f756e742d3333 +ct = 47385ef79eac7ba5f0b1b391204999b3b0f614e426486a77529dfa88e0aa380e7cd430ee123243b34e13cf211c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[34] +aad = 436f756e742d3334 +ct = 9fb326eadd21158d94318893e51b9fa572da1502fa1f5dfca384c4cc3b1c9ef9e326cfb23affe5a6eaeebe2619 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[35] +aad = 436f756e742d3335 +ct = d332ff6fe6d48a95b576880e2b3ead3f2c22f5daa276356c43fc304a03ad6a3253cc3714c630559569d70dfeb5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[36] +aad = 436f756e742d3336 +ct = fe1d051185c9a843c42335f8ce14c9dd8cb85beb96700d7cd4541bf345888f8c0f9c9687a5352d4318a2380cd2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[37] +aad = 436f756e742d3337 +ct = da87ebbc6243872a814316d5ebde612beebb1f964fff7ffa631c28b1417ccf46aa59149876b1efd1e1a4403397 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[38] +aad = 436f756e742d3338 +ct = 7e6f06ded34d51a8c670e98fd51bf8a8720a26ad9c9933f31c512e5cda74a889284dc3b7081c047d4d10575dd6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[39] +aad = 436f756e742d3339 +ct = 7f1451c62f9e891448a3ab6d6282dd284dbf48d9af70b641a23ce0910d5cd106e792871a8ca7bb5fa680785724 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[40] +aad = 436f756e742d3430 +ct = b02011ed371e7d4d947cb6edb5fe537c777cc7b9abcc99b4dcfdb8e4e8f56fb1d8589a0f07d861655fc62efb36 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[41] +aad = 436f756e742d3431 +ct = 31eb0f8ffb967108224e7d71adee293a37ed5bd281cd1d166df3a1f6e39733ff0305337957c1c98fa0423a97cf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[42] +aad = 436f756e742d3432 +ct = 2bf89dcf26bd9d1ea25f3e66a4b83b08264e2cc0f876baa8d55af8d4244f6c2b31b5274cf165b6fbd35ba09b8c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[43] +aad = 436f756e742d3433 +ct = f6cc54173ada7451a3263477317400dde987116490071525555375f413ed6c8fc0f45c550f4de69986da25ad03 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[44] +aad = 436f756e742d3434 +ct = 010460d91e5d66dd0b64062d99deaa31898e0428125ac0be762bd3f50902ef378777e0f3823f4dd1b096e2b6f5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[45] +aad = 436f756e742d3435 +ct = 8f96a1e7f0f9cf5c5dffa16307575ae3f27438fb138e17bf0a9e19d103a38ed0bde6a798fe70dbb73b7586006f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[46] +aad = 436f756e742d3436 +ct = 68ffb9a55548caaece8f8bfc039a83da2120cecf8562578da0124d0714eee9994a3bdca707a743f69119b9d230 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[47] +aad = 436f756e742d3437 +ct = 07601385d208ce73898b3843a00ab7ec5d19af2ac3417df93eb78fdc3882e4537681cf28f1cae8767ada515024 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[48] +aad = 436f756e742d3438 +ct = 4962ee2c18baee9a3d7fb87743760bb93136acdc597f75138567d6eb78e63302a9c354a64a86ea3c58dd5a9f6f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[49] +aad = 436f756e742d3439 +ct = cd7e008bc7dadb7035fc682211cd0df077e5fd295f554b5f19fabef4c498874c81a04d178951692f10fca008ff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[50] +aad = 436f756e742d3530 +ct = bac8714d30b56b85d9cdc82d9594c22e1e0904eeb0e8df166709a86b4198da262198efd7493c6a8c194206a9e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[51] +aad = 436f756e742d3531 +ct = 780c1ebc2171e613e044d92a1d97931a266356a7dcc60454b9648f91a9b5f12947f38bbcd06320cbc1d61dcdea +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[52] +aad = 436f756e742d3532 +ct = 505a6d4631121fa982097085b598b127739cd38e7c01cfae5a3fbc44d097ed16f4d14d5117af8da48d9d05429a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[53] +aad = 436f756e742d3533 +ct = dc4b4678f84b17442e47398ec52e9e178cf86f23dc89fca6edcc56954aac252141f6beb3631c039e1239c94c64 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[54] +aad = 436f756e742d3534 +ct = 9283eb8923e7766aeeab69bac737530638111ebface6e87294816489e3b748e72c5b359ccdd7fae6458abbd494 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[55] +aad = 436f756e742d3535 +ct = 66e4e22453189607f22cfe62472edc6b54cdf759ef0aece63d70ebc28a1e473dcb4589ce6e575704137145cf3b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[56] +aad = 436f756e742d3536 +ct = f2ecb6a2f61562a43e9f9ce84e1365c6e727d4f8b9794aa8aa39cedd4e8916f70e93efa2ff0fc0070eac8ed8bd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[57] +aad = 436f756e742d3537 +ct = c4fc43be3182fe9db99ced85c8ff61e946696395ec57f8c7bd8bcce251c5c48a48798bd3679086b463ec261be4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[58] +aad = 436f756e742d3538 +ct = 219f7a76c63aa13471bcf8429a125f048fe8e930d83fe792bca79cc9e52ae22099659cf050d261b9af52d883a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[59] +aad = 436f756e742d3539 +ct = 566264cd25de5e08070dd8f92525bb0967e25fb8bd9eab039f7aa839d1cc23ee69d5d0ab4cde2ef1189402c1ee +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[60] +aad = 436f756e742d3630 +ct = 19b17bb66dc70d7ff358227df6d9a1bf3228ff38597fc00b76757c3b48d163f1e22f03c8b1481b69bfa4d0a263 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[61] +aad = 436f756e742d3631 +ct = b8964b1c339f6a4f18926482ffb7c5223a90279718e7dd1ddf373cb135a771ba9e3a6e450c092a7de1132db18d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[62] +aad = 436f756e742d3632 +ct = 9c7204d79ec69bf6ea27bbb657e2df909f7808ab2dc5a427dbc265f3b8f1f72e1a2d9c76175ad7b702ecb1ea71 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[63] +aad = 436f756e742d3633 +ct = 18aad49ef73852b7e516b393bf43093b53b629ef2302eb43557aaec20b9eb3942ced460af26535239d6c05eb1c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[64] +aad = 436f756e742d3634 +ct = ca2f264eac3ecb457b65be02ad73616aa480ccd4f8f23eea21ddb43a7b77a954c023560dbe12f9869bfc9fd223 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[65] +aad = 436f756e742d3635 +ct = d0aa955f883d872b8537a97256f471cfadcb211524d8a8d294a7516d497a4db466387ba33123e637f13a0217cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[66] +aad = 436f756e742d3636 +ct = 480aa3fdcd0045986e683f70afb231e251efb3e7adc2cbbfdd389a4c0309757554f32a730f2523d1e9e43037c3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[67] +aad = 436f756e742d3637 +ct = c0439ba1d7844b9915a4a0ee760a5bf250eea1a860abe6f7aea233d737e7b7786f736b564ab8fd11483640653e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[68] +aad = 436f756e742d3638 +ct = 92bd48b1aee9cc5dd09762e93bcd25cf30981dc372d9f0b55e92c10d9e6a0454475cf7a72d278aeb4106d9a4ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[69] +aad = 436f756e742d3639 +ct = 021f2c650258f5d1f80608a312af36c618ac04dcba0ed38d5a4d2926885b840cf6b717187aab6cf354b3cda8c2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[70] +aad = 436f756e742d3730 +ct = cb4a0aae8895af44ffe7dc200984fbd856a8b7868b9799c7d136e634e9e132d34144508f92dad4d815b311960e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[71] +aad = 436f756e742d3731 +ct = 3a69b1fd2c92a7300549f43d4d7abba29e682e6eaec12b436b6323ad00c1ab0e81323dc107a4e79d85a87aa2f9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[72] +aad = 436f756e742d3732 +ct = 0e5ab035413e4f172889ecb7b76a3b80c7e6b2c6f48827aba04772ff544f7a80cf099e96770f09e5624f3ebb44 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[73] +aad = 436f756e742d3733 +ct = bf7710d26d5b1bb18519ca8c5a4dfaf392b6a5497832bff032e34cd9d25ab5d1abe17b3c4705b4c3d7a2f67011 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[74] +aad = 436f756e742d3734 +ct = a793526bf5abaf1ec66c621d3f7bea32da7b4d42fc13e107c03bb8a88f57c3ab3686f60ef2100b6ce4952c0bf0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[75] +aad = 436f756e742d3735 +ct = 748d24cf6e532010ba655849327654818a2d09478054bc265c1b37454523883a48b1afe9ecc31d56123d01cfc5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[76] +aad = 436f756e742d3736 +ct = 8eb344d11433979e3a285160b39030014f32fe2f0a55c66e768057a82b1ea1fac9e06671bcf2b920721228cae7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[77] +aad = 436f756e742d3737 +ct = 9bc106f6597dd9fff73ef6b22957457a2dde226717dd30692560149db6eb6d3fb4872f853f8cd3e49aa9d41144 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[78] +aad = 436f756e742d3738 +ct = f041e5388f4c82e0b16ca8346a1e27a19da10c31c6946d742a3d712c96902e388ce239d1c28285724474f8aa69 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[79] +aad = 436f756e742d3739 +ct = 6340c8041d11f8440fbbbc59ba9f280540a069c63d542dfc2ef7007aa7bc47bbdb14fc1c62c655bc8351641e7f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[80] +aad = 436f756e742d3830 +ct = 471e3e06850edd1155af62ade403ed1c2328d7c2f1b127d91cac57732970e447fe84849db91d08254cdbe23f75 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[81] +aad = 436f756e742d3831 +ct = 2bf94ebb5defe180fc4da36e44111a6da5efe44e0f3cae24caa01905adaef290bf4645b9ba9a08521851db708d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[82] +aad = 436f756e742d3832 +ct = 9aeece90199ac5cbf5ef570817454edd5b51d2b90f6541a308984c33687f104b2e08a5b156accfaaceb9b165a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[83] +aad = 436f756e742d3833 +ct = c0b5f111fe9b59fcaa6b834504b5c2cefb8f4be0ab3b2fc6fa078c5630428c0890766c9a8d9e19376252119422 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[84] +aad = 436f756e742d3834 +ct = d6dbd373a39e67dfbc00ccfd3e5aea30490f5d60fceb233c6b74a382374524944a86c7b070d57abc68e7a51323 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[85] +aad = 436f756e742d3835 +ct = c84986238247d710c712e9baeb23c824e26a4694bcff4853ed72acaf292c10ef0615009f8b210ea3788d29e4d2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[86] +aad = 436f756e742d3836 +ct = a1aa3c3939a188e9845304046a233f3afc69bd7013a30fc132017d35e1f040215d2f9e6dda6f5afa67fb6f2caa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[87] +aad = 436f756e742d3837 +ct = bd07b42f1f70a2394217132525a3d6c49369029e72c21485679f6c0bf1e94b4e89f0f30167a42396c0ed8ddd67 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[88] +aad = 436f756e742d3838 +ct = f659c1e0a17fa505aadc91054ddd3a07c42f85859529d3491c28395b5fd896c4d0fe0a146e72c8f35aee21340e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[89] +aad = 436f756e742d3839 +ct = 61fbbf08026f6450bbdbadc5b0981071c0a5fde7bacee7bff05e13259b434413a51fb26389dc35bf73aff0131e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[90] +aad = 436f756e742d3930 +ct = 9e106011c0344551dbf533418d81355d794a069c4676ecc79e30b1de906e69cb36700720ee3932f46c49f4b9ff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[91] +aad = 436f756e742d3931 +ct = 16b5749e1b1858016c0e9ada53c8d83748663f09826e9215958e3132e1fd24615eb6ad08e48a0cc4961113a151 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[92] +aad = 436f756e742d3932 +ct = d3fcd1c16bafeb7b5b0f80aeb198066fdb288531f86a9c1a7af618ccb122f1765c6986b6c6ce653d7e87caeccd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[93] +aad = 436f756e742d3933 +ct = de05b2db900bd6bbe16c764e4e593f6641d4485a4fd202b4abc3b3ea23793577c7692e3215afb0d0087d5ae6ee +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[94] +aad = 436f756e742d3934 +ct = 8ce1366b6011a5997e626a4928eb7bd62fda57183a02b29bd2b673c4fb4a07c50dbf9abe7b3a098ac42712e9b3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[95] +aad = 436f756e742d3935 +ct = 0d1a5283b5e2c273fb42508a28359cc854c0d2da85c2b0e074c5fd3129d4b2acec87f99832dc2c64596b660724 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[96] +aad = 436f756e742d3936 +ct = 86c67a4303bf1588c071f6ca6d7a80e1f2d173338d978912016a5d465ced446e1b11dd31e2745c4c856dcdcedf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[97] +aad = 436f756e742d3937 +ct = 7983060932542f0affddcd2339f0d46955e5524a8c7e2cd574c7170965727d98f0e26bb548397f0e02e0512a07 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[98] +aad = 436f756e742d3938 +ct = 1e3a270e8cce15c458c57dea83fe2a63066c55a7d56c155c1eff644d53edae1b640d8dfa3c0bce672988c99d10 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[99] +aad = 436f756e742d3939 +ct = 6cc1ac713c51b9d949e58bbd46e1e0b48adb639df06ae5470f844cfff13cfd686032c9809ba1a16bf7ae05a1a4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[100] +aad = 436f756e742d313030 +ct = 10a83299fbac1b34322f99d4eb2651e3e72d010de05c6e88d180653904dfb2fd8ce64de69a0fceb79cd83e0507 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[101] +aad = 436f756e742d313031 +ct = eda9344c6ed73fc70f4a53d5d43d07607987c3d70389cee07fafdb511bed4312028e73c22842ccf4712f5f6000 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[102] +aad = 436f756e742d313032 +ct = f49e64e991c420b679c2ddaae89182057a949df6accb7c30dba088c6649a5f9391d762e755ce41f6e50789aa6c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[103] +aad = 436f756e742d313033 +ct = 1963344be0a36c2365fd3dfaac5f6d7452f6e01deb7f2ac2cb868980dc7fac5a7bb8b2b234de39798293c78756 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[104] +aad = 436f756e742d313034 +ct = 3532f27a241229a8046a3162b3edf1bbe1b718f7bb13d5808a293f2a3f17d366f3b253b1681960c218baa1b426 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[105] +aad = 436f756e742d313035 +ct = 3785da6436db7d9ec0b36ed0a45883770f4184582c455167ec48a185deb283153962917f6e6b38f3f415970c2b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[106] +aad = 436f756e742d313036 +ct = fae0dddbe46dc5ba4868d896fbf1e2e401683201e47f1c6c66b8e15bf59fc0928f0a759aa73547d1270f51c9e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[107] +aad = 436f756e742d313037 +ct = c57d85764663981f4619a43e3a5eaec84c48d464b2e41d681447aecc32eaed96a012482cf85dc0ae6362826097 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[108] +aad = 436f756e742d313038 +ct = 1dd931732518c3dde6967afcc7eb7fc65c1d0577e3dd18a93d622f2c50707255ca1b177aa68cf836fdd88b2669 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[109] +aad = 436f756e742d313039 +ct = 3d752fbfc152dba7a18182b00e9b5adeb614bb596abc480d439846f1a1b98b89d84795a42d7ac6bf453276f35e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[110] +aad = 436f756e742d313130 +ct = 678b292f4917626e9e7339993da52f91848fee889f99afd63ce914a2c26273bda3fec931271981ed413526b33c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[111] +aad = 436f756e742d313131 +ct = b7b850a4ec1e779feffaa562fcbee0f3b79c52fd695fa03101e3451a6e99e4536fc9eabd0c678fb5b28212ad31 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[112] +aad = 436f756e742d313132 +ct = 8db3b41c5c645498adfb624b759afeff8c3e25f3ad0ba73bbe5fd7b8635102511d6642694c3e7a2fee7c666f28 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[113] +aad = 436f756e742d313133 +ct = d5c45fdb70cae06f86abc4e057e9ab8acbfc8eb06f8548b61b71d5ebf7dac833f272ffef38627813e66ed75cdf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[114] +aad = 436f756e742d313134 +ct = fb7a628d6e07a5639d793a22af188638a01c5fd7a33dbcddc93df89aa9d6d9efc9d470e98c57b0d92a121c9d08 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[115] +aad = 436f756e742d313135 +ct = 61f356b0e97f13fee2947bec8f7f7a26fafba8a275831af7a82e64095eac0ec047d92583cb501627885fdc84ac +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[116] +aad = 436f756e742d313136 +ct = a31ae8ffc853b180897659a711a05edc7f8556cd78ae8f53f2e86cfb5c53aeb02fe70b0993a62d414d9821ba04 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[117] +aad = 436f756e742d313137 +ct = 7830541d21fec85e6626b6c003edfccd086a4fb6042d3bfdb5e3c58c97b1974abf183f9f5b094c34096d69428e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[118] +aad = 436f756e742d313138 +ct = 8140f85966013fd30775f51aca8fbadc6374dfa401ab3d6d2711294e4536a5e0ee133061cba806c47ab7dd8c83 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[119] +aad = 436f756e742d313139 +ct = fc8d1a89bba375a8ad3816ec42d9659726bc3f6917c60b18b3f31e3d027f8ec2a2264df38d58cf158914f65c87 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[120] +aad = 436f756e742d313230 +ct = b455d275a4f26c7eb1bf26cdbb676a52ef9f840e51e7ce1bd8d6d0e5db40b4f0bd74a3eb8de98483a0a45a00a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[121] +aad = 436f756e742d313231 +ct = 441c6278fe3ac57d30b7a9e5942a0b65590540d05e14978106d7ca823d3f827eae85f2c35d1c5cda6ab09b04f8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[122] +aad = 436f756e742d313232 +ct = 1572354ddbb33b5ceef115a05ec7b0ce86d544294560a42edcc6b3d1107e90135486758d395e81d2a41711d245 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[123] +aad = 436f756e742d313233 +ct = 6dc4a2f17a081cab07e6cbe6389af40b6c92a0b2e092d847e68ad74e147a1fd0a4af9cdd86d9b52a0bc9f0a2a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[124] +aad = 436f756e742d313234 +ct = e825d3e61e7169cddcab63075d6629be00a68cc8240522b940884a5a6aa70b620665338736266443427fcd5181 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[125] +aad = 436f756e742d313235 +ct = 556682e628047e2db1916824189879abf1939f1b06976df10bae9fb99c1d7ae4c03391a4cd5839a2b75e6f95e3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[126] +aad = 436f756e742d313236 +ct = 341b04bfc000612feb516d0fb151223138e0fff6aa4ff83be424a19295739a33273e0a31ca4ae9c0ecb31d067b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[127] +aad = 436f756e742d313237 +ct = ad94dd6a30adf65160e412504b89dde2fcbeb299df43886e3efc7841aaa13956839ab7cb38978652b2be1be810 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[128] +aad = 436f756e742d313238 +ct = 468975a64b0c5cb337488c0c6a820de3a146f2764a194257a45965716a4fb8e1c3dcfc322530d1503b9bb79740 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[129] +aad = 436f756e742d313239 +ct = f5e33e011f5dc572339856702447379bd44bcf9f3222d08ce0bbded7a6b2eae38b1415a49e3a8b322c4c563e2b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[130] +aad = 436f756e742d313330 +ct = d81cc080b2eb77c9f15f50da756fa99647e0f79852170fbd898f78c7fff8601487c8ffb7feb5e9e5b70f15ffd6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[131] +aad = 436f756e742d313331 +ct = 34f34ccba3784f9e8e8b82af09903d8027faaf71cfdd590b4f7f86e8a8fab49a1ea25bfdb56ac305fb68356316 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[132] +aad = 436f756e742d313332 +ct = 726811aef1d409e1ab11cab70d93eae69b9e50f48d5f5a7734d13d6f0d63886976ac0a85eb6e1972e97e1962a5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[133] +aad = 436f756e742d313333 +ct = 7ddf463ac7c0dbbf49f6c3b380fdce798708d3b9ff3911cf43ee00e6831dfe37d7b5b49677dee5cf231c386bb9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[134] +aad = 436f756e742d313334 +ct = d4e15db1c0ec6ed9d5a847ca77e13e8076e81bfbb8c38540bb688e936cf6ce782ffda11984fbad08f5385b8ba0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[135] +aad = 436f756e742d313335 +ct = 920db1aa98284f04241070b70debf8eb61fc59e208613f54123563c59789e2bde59d4e43210ed5e4f1f1d949e9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[136] +aad = 436f756e742d313336 +ct = cc03d1f50b12077d82cf4ad81305975f1b9842b72a975ec1b0a8980a4dbcd14202c66a22abffa60ebc7d35bead +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[137] +aad = 436f756e742d313337 +ct = 68c5abb56e7afdc9300eed88b5a88a2db2e46e14a899f80210170a8a691b22d36c098d2a9dc09e1c7c32a4a37c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[138] +aad = 436f756e742d313338 +ct = ffa15b0eff9d966767cc402554defcaa04530405b25a4913d1f8dda5148de16734de2fa8a805b28be92e0a81a2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[139] +aad = 436f756e742d313339 +ct = 4603e08e1d3e9e12e9eb8a10735e939aff2adff5e8341758cc1b4a7e822b91bb7e182060c058d7330cf3decab6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[140] +aad = 436f756e742d313430 +ct = 75f394f9ae956124f7961ae4bcb3f3e584b43ab425ca7b96c756723ecb22c9add2d8a660c5e28a36679ab48786 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[141] +aad = 436f756e742d313431 +ct = 50d15f1a8c2c946552a24809cf9c064ab2a6f0cf97cd19cea9c96641bcdff1999f5b634304528e7bc7737f9dd1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[142] +aad = 436f756e742d313432 +ct = 927fc7a4c1d2fe10b0ab90bab4a03cb7358388430e5ff0b6b483570137d763e7238a01c4aa91781ce03e6cd79c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[143] +aad = 436f756e742d313433 +ct = b52cc4303472e7e2022608ae8d0f4269bab37017c54808f9f8bedb7cf1c680f656ffb444a85d996726c7d22fe7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[144] +aad = 436f756e742d313434 +ct = cbb5b99540d267e492ce238bce77fe5fc19f62ac4917536520cf3944696f876f08d84eca302cfeee361abcdb63 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[145] +aad = 436f756e742d313435 +ct = 95c3616aff82a5736f9948b1c3128e9ed4ffa78d538e6d3b3459fcf3c02a767ec3e2b8cdabf277256742c6da38 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[146] +aad = 436f756e742d313436 +ct = d5a3b35f2212d04b8b6c4b1ecfc22fb9bfe2bfb2368c93029d94bbd1ccdd3191424c9143d13177c5f27b7cb05a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[147] +aad = 436f756e742d313437 +ct = eb5393126c66f14f0011161e9594dee31f46803573a3111e8955a6cf6580bf7229710c798d9d3be47d476f5ecf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[148] +aad = 436f756e742d313438 +ct = 38b879efeab4c1d016afd55c40b41518cb80c0d0edc81cac04a480f45e3b81e375e3e5f3fc1a7b6a7f1e63df01 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[149] +aad = 436f756e742d313439 +ct = 4891797c4532856c50fd48285ed10c8b59be0ba0e765ee472c96c6ab7cd3c5f22dc8b08b148097b314cd5848e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[150] +aad = 436f756e742d313530 +ct = 9902bfb956a946e15c4bf8b358d0d22d7f5e3b2258124ead5f40fc594aa6581ee021315808d979ae5123af77af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[151] +aad = 436f756e742d313531 +ct = 347324c0fa081dfad51da7ecf2e485adf4458c501f95cf61e809fb77e871e3f3c81e192436714dbcc415f21832 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[152] +aad = 436f756e742d313532 +ct = b16e86f5823a89fb0c1d3b02564732f68d99bc2cccbc7a5bdb8a6a884282dbe7c6e667177a7f1070b32004cd99 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[153] +aad = 436f756e742d313533 +ct = c4b105e6cecc8cd38bed5b3531ed884df4a6046ca9c237bb35ce65a7d4cce5f16183ea95b5fdaf1aee8ca16525 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[154] +aad = 436f756e742d313534 +ct = 3c1fd5c4aa2a3f5e31bea58f12557a3bad1c4fa4c005d6994ab5407de3f8660ed3518deddf0bb74679061c8a9b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[155] +aad = 436f756e742d313535 +ct = 1acc2b1a62d423c1390c3c2543cacc01947e6597a19a9e2826e5f8f7fb08a185081682e5f4e4707f588963e313 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[156] +aad = 436f756e742d313536 +ct = c34f8f974841cf86b90c6c5c4f6c41f2b0d0a1ad13beb23cd28d3f3de2c8141b3da1a51fa1cc6a2dd972f8d8b3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[157] +aad = 436f756e742d313537 +ct = 3972d6ce132efa6706870da92c871d6ddc6c73c5612a4d4a15ee3368ba30c9703d7c6460bfbe1c104a1e0cbddd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[158] +aad = 436f756e742d313538 +ct = 846d64fa83e3ae43ec0e19c837e729382a9de165d41d30437f4713e21878cc697a20aae522281244322f58e138 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[159] +aad = 436f756e742d313539 +ct = d46ae72d9078c8aac5131219971ccac1d63c13d8c0c2b459063dd7909d3e6eff2d8cdde6325d9338bb823dc36a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[160] +aad = 436f756e742d313630 +ct = 160d50fc70301ee86ddad93ca078135d74e6c1e6c77b84e62323b18bd70285061eb6e5a946c3fcf63ba8e5c066 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[161] +aad = 436f756e742d313631 +ct = fbe2accd2f6c9520b44441a6735717cf96c8f07a5a9d7635ab1e9ea061f237a862acec34854ce4b8a332912dd4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[162] +aad = 436f756e742d313632 +ct = 89f8ffc7a0c066541af7ce3e5c1fee7a10f3932997db80cb46ce65a2b9f72ea9db3f9969c1f79418082954dc2e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[163] +aad = 436f756e742d313633 +ct = fd6127dac88bbe921807b55025c982b9a8fbcce13cc6b37479104cacb242bbf546cef063fd3538e5a44e34ca0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[164] +aad = 436f756e742d313634 +ct = a8bf88008726fe27c6a8dd9fffc98d1d4e373543aa1016a0bff292606c52c89b58b3c7b7d3f5b2a496af5061b4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[165] +aad = 436f756e742d313635 +ct = fc2ced6b902d9303b5c2a461d472806ebc9c449024bd9558e1e6830988a5bc4e850368465010c6837f66e8bc73 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[166] +aad = 436f756e742d313636 +ct = 9f1fda904080664e931814d169e8f9f16e215e951c2450be55b534b90f0eb75de659604a6da07b972d25e266f8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[167] +aad = 436f756e742d313637 +ct = 9fa1a1a6c532d2f74111084d51200e5cc46100f2b1218a7568a6fd51f164651cb8c7f38860d0dd8f8ad126361a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[168] +aad = 436f756e742d313638 +ct = c45681d9e9f0dddfaf1aa01427ee7054cb663de8cb67f0d7eb5402babc3d12504e5da83fb093af446c7d873e81 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[169] +aad = 436f756e742d313639 +ct = 927603d560ec509a0b4197183c000220e25920c2d0e483b995f7c07e105b7f7700b0b7c4590283e96c47bfa888 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[170] +aad = 436f756e742d313730 +ct = 61374644b846d7aba661f5aed17c528f47d5c5cd3557d91af072fc782e95032c820d48f677411cc9705c8cc496 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[171] +aad = 436f756e742d313731 +ct = 42f1a767233a4e30187c25108a9f9e58b77d2b96ae56712d7bc910ffa9369b15655be6d731f9cac5a80e8faa04 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[172] +aad = 436f756e742d313732 +ct = d4c219b856ebd943d265a446d634c138719df3985afbf5aabfecd78c224ab26d369ae0b697975883ec6761f5d2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[173] +aad = 436f756e742d313733 +ct = 343a9e95c1a376e9636cc2992b0f45e6ff34c0be8876c8f00030adfd8ccd2c59b0a35ab39f1108e8d84e48fd2d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[174] +aad = 436f756e742d313734 +ct = 3de795966f3794b6b65d8f27da552fc485b39a24c4086f8da58db68429859bc2c68060c334eb6eee2675b44c00 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[175] +aad = 436f756e742d313735 +ct = 83c7ce4c12a4880acb31dbdd3376ed4add1debd3767aec3ee51e5e10cbccdf01e09fb98a5b45b68dba954f3dcf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[176] +aad = 436f756e742d313736 +ct = 302b33c9e9e5642861f9041693973a0b3030aee9084cea2bc85e8b9cf5a64181fe37ed2491a45bb41d2a810548 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[177] +aad = 436f756e742d313737 +ct = 8d42ee8dea6311fd6fbc55e2b39e9a78272e530238d2c4ddca68033de2981dbaf00f9eecbaf2e58a27f98ac5c6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[178] +aad = 436f756e742d313738 +ct = 23fcc515631cbfcdf17332dbcaa5bc24d9c733cca3b2de35b65ee954a32ad3a03de1b4780566da24464a5b058c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[179] +aad = 436f756e742d313739 +ct = 1da79f56ca85528b72385484cee9f58bc39dcb5a0c30c010f69f79055bab5f3c2e260aa33995bbd14b5d96de98 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[180] +aad = 436f756e742d313830 +ct = 37f87413fb2f2c9acd1a7be008ec51d3285e2a3831fd634de58f7c70447b9eb49e91d30d9517e838b59d14dfc3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[181] +aad = 436f756e742d313831 +ct = f6fc619ede4904fdc014de61f908d0abd151090caa06106131815b763244d39bc8d426f9840b832cd9fbfb010d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[182] +aad = 436f756e742d313832 +ct = 33a40f23555c6cd9de9f8e51cc9d0a1d727916f35ac8c802140f32f2d9b38305c6200c8891d2f2e584638d19e0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[183] +aad = 436f756e742d313833 +ct = 3fa7f48aa8fd49f768dec63cc4bb069616f1b3ccd093710ec4e65a86e3646071465d0d1fbacedfec7faa8c46d1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[184] +aad = 436f756e742d313834 +ct = 7c61d84f822d449ffd208677d7197278952a0073a98a89e1545068289bceb6a1bc634a795ac2311f884d93afce +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[185] +aad = 436f756e742d313835 +ct = 08e70ae20466312e1671a55139e0adf92513210d49539242ccdf278aff3fece7db412b9281f913ff1f9c53d4e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[186] +aad = 436f756e742d313836 +ct = 49d18d2be787092bb2e70a043ad467c5a91ba6b419a3e0eb74a6566227dcfe852edcf8df4e7fe363a79bdfc75d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[187] +aad = 436f756e742d313837 +ct = 6f8cf5c12be7c2397bc38490c040aa8e08cdc1864934d17aaa3029cc6dc71b97d28d998d3de5c47a7c7f308c12 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[188] +aad = 436f756e742d313838 +ct = 0baed9c4752a2b02c1f890fd6d7830d9884b89f676048e974257585b391c622e6313bc111b922ae9590f43c87b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[189] +aad = 436f756e742d313839 +ct = 8b1f8aa27c91f7552802befb4efd07af12b742aefa567bc192bb432f5e384b1dfd6dccb2090be647d8514c180e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[190] +aad = 436f756e742d313930 +ct = 49e52ddcadce8e6297b3a9363ff54f467ab5cbb590fc0179bf44c907ae03e30235414ddc0c0073351837048e07 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[191] +aad = 436f756e742d313931 +ct = 8a40c858a6b101f8d69154e43bcfadb6d404fb4dc8d2dc3cb588a666dcca9e5e1e96b2ee276dfc77a87ea36407 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[192] +aad = 436f756e742d313932 +ct = e412a4fc5dd48c805b238cb14e460683211afd3e7fb952eba55e606ab27bfddd11821dfc194ba97e1b72d96148 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[193] +aad = 436f756e742d313933 +ct = dfe909316e6c8739ca5706acc1eec1638b3be31009b96d6fa62e743f97a3adfec88466c2a3ffbe7f8224a2ac0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[194] +aad = 436f756e742d313934 +ct = 1cf7a1d08fc40d4c12dfb4315d303559610fdc403b705547017b02a0e67c09d4c690846bad63997b6c6ff30ae1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[195] +aad = 436f756e742d313935 +ct = 853c6c716013b9a844e541161a9f6714dd244b482ac734421df3f4c0e257daa21dc225c67ae1c54525e5a84897 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[196] +aad = 436f756e742d313936 +ct = 5470a3ba10f7402527f5139899ada8a6114ccc440b6d090621fa1c5817f3c116c56d37fd631473684032fd4c30 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[197] +aad = 436f756e742d313937 +ct = d382b19f25dd197d2f534292d6232cb5d94b8db0f6623c6e1f295a8b5bc7d3793298ea0eb1a0a75fc39e91da2f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[198] +aad = 436f756e742d313938 +ct = 3e1528f12730ed377efe325b341dbeefb1649d879b12211994af311fe1ab33b9de68a36bc82b325f5123d987e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[199] +aad = 436f756e742d313939 +ct = efbb6044efa5f07ea7e84777e943182ffa3becf358c3321e37ea309eaea85dba56f1ef8f16eb030d4f00cd17e0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[200] +aad = 436f756e742d323030 +ct = fc90337ff4f1d750997dcf82cc25b9343937327312166fdc531adf1643b3556074159a522aa9c63619d027ed96 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[201] +aad = 436f756e742d323031 +ct = 1273d4d24c04ed1b77aa7e816a92643ed7c841293bea5eb96ea479bd9f1073d9d89c3e0751ff4580ff91628a84 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[202] +aad = 436f756e742d323032 +ct = 517db6405e0633063b78b52516c444cdae7a422d7d587a40c6a50129a2fc1ebeae8722f666180061440729594c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[203] +aad = 436f756e742d323033 +ct = 07afcaf9f707e1091e4ac8a317289f4c23493b3d8797668d57c9040b174f0b772c06b6f9df814fd5267de2a5ef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[204] +aad = 436f756e742d323034 +ct = 2cfbceb950409ce30626e3faa09f36ce626fc0037d549787fa5c7bd748b20c7c1c236bc191a7b9a047055bc865 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[205] +aad = 436f756e742d323035 +ct = 2772abca213e9c3dd5dc9d4a04acd842c28f46a0aadd18daf411f04bfbb0ad55a70ef7344e247a5a0256de900e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[206] +aad = 436f756e742d323036 +ct = 0b2ffac4f6e1f5588e9c2df6ca8cd9b1cd9c0353b4bce366921e37a056e7d8875ca79b902de3a8ab5674bef0a0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[207] +aad = 436f756e742d323037 +ct = 7b8919fcdedce1731b0d21b75fbcc31f7f06e3d59d5c0cf3e9eeef465f1d3e54995c2c6b77b5f0ad4ab7b64104 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[208] +aad = 436f756e742d323038 +ct = cccb7243642e297f4fed345afe3bfc6a0438bf6d148189d9aee9e89e9436f70f01448960c96137fd91d5210c39 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[209] +aad = 436f756e742d323039 +ct = 06187d7f139f579b10ac79defa0ef23189afb2fb4fd1337ea7142b3c48cebb5c6ff70944972525d6e43886496a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[210] +aad = 436f756e742d323130 +ct = 55dce3009af4c824c2a97175dbf174eb69c96b6daf7c306714523b6e3371e7a7ea4e2b13480a6fe802af16e706 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[211] +aad = 436f756e742d323131 +ct = 9b049a425eb6a996857e04f44b67764c8faa880ed031a4c8eb9b6facf5b737d856b7e0a8a5d2e799ddeae6e7e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[212] +aad = 436f756e742d323132 +ct = 8ba6ae21494f76137bf0628ccc70ffbc92ce1fe081e9da9d43076e6f272461c1ab9b5364c6e5a6a3428d5d5eea +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[213] +aad = 436f756e742d323133 +ct = 608f6035d9bf233f9885c3a3de15e55d0bc09a771546c7682d2cbfa526a513ac66d38ca7c061811418ab48ffc2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[214] +aad = 436f756e742d323134 +ct = f84d5e4e7d574819efc3093a88f1025db1a79d264ee85d85bf7ff2698aafec6fd9a4c20b35f6d87733ac39cbd0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[215] +aad = 436f756e742d323135 +ct = 613a0eb95693dddd3d7e39e8674244921024c49673f1019937d564e41290423b9d5148c1849e3f3375c5b35822 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[216] +aad = 436f756e742d323136 +ct = bee7e48b6b39b120d7b94f06d8c4abec8643a6aecf71857a0524d45854ebf5f6fc9339c8c6c7c859b06ec43989 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[217] +aad = 436f756e742d323137 +ct = e4af23b158de1724bcb5b6c625ad0624ab6a84ce777ccbadd19141ebe4fa70ef493453d19e04fc5cebf7640419 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[218] +aad = 436f756e742d323138 +ct = a8c6156d08b5d73bdf5bf4f04724457fbc1bb3c3fb5c1b8434900cae6d2e8ca8020656e650a003e2c59ec35fc4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[219] +aad = 436f756e742d323139 +ct = 667eb135ab2b06342ea418ff19149dc75bbd0f25134627e2f58f9161b0b851311a8a883995b5313afc87a63ea0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[220] +aad = 436f756e742d323230 +ct = 8664e034a0a805db1dc46b3250a315d54f8844a9eae30d1a2dfbbbed551a9cc18fcba2473dd9a2480a78b88288 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[221] +aad = 436f756e742d323231 +ct = 60d3757fa43fe025df8e0e99388a7c51730628cae837b57e0f795a83db4da608c90688a182f09442bb2d0ece56 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[222] +aad = 436f756e742d323232 +ct = 262206471332267247b1efa89ae4b30b8fad7f5aca53a9b5b2cb8f3e6bcbbc0e6e4e420c24b57898d8f7bd5beb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[223] +aad = 436f756e742d323233 +ct = d2e1e3c96d2382ec38cf9336768c6b75bde332259c9a6ec7a40849f4ed7d38e2c82251aec985d4d6f7c4ff93a8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[224] +aad = 436f756e742d323234 +ct = b29758025ff3011b4ee8e43090656000d2fcf046544dd48fa26d1d73c18fd793ea230731ca6b84672582bb6618 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[225] +aad = 436f756e742d323235 +ct = 1b24d89b1cfbdeb6f0dcdce91a70949393680d209ccde723ca80930098deb735b82988d1f1107acf74d2b4ea9f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[226] +aad = 436f756e742d323236 +ct = d1ee6ca1878bcf775b957214704173c011de85a0801a25ca8fa7bd211547b3d0d113d058e984aff0db035fa3d2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[227] +aad = 436f756e742d323237 +ct = 705bfe24ad09c8943fe1b339188667ac026aa1f7a04d45ab9d81d61c8a2d5762ecdb6894bc9baec205f73bd91c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[228] +aad = 436f756e742d323238 +ct = 35b693c0959673b29b3101adf089d254dd2531986982b2cbaa5daed5782f06609aa8b27f6dd4b22647044f758d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[229] +aad = 436f756e742d323239 +ct = d4c88e4a8d6b9b07bc54489e12a9d45aaef964a04354d4c96564f25e4738d0c1e52bc3bffbedd222c9a54831a6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[230] +aad = 436f756e742d323330 +ct = bbfc08df732a4ab87aea62eab27aff9aea64009fe6affa814c5b6afd2d484e43a733210e7006090681f5250d6b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[231] +aad = 436f756e742d323331 +ct = 450b66bfbd419429dd1001d5073c262d218a6c531b744036a87f8b47b3d2672abedd4814f3baa06426972a5301 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[232] +aad = 436f756e742d323332 +ct = 6fb745a4e92d4d77db3e6ae7b29b5ee8c6152ea7d04165a75a32ce572d4eae96735b5acd42f307b7a563abe4eb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[233] +aad = 436f756e742d323333 +ct = f0677355130f4868abff6950db2563875b920734115f64d8752bc1dcf0fd9ecec17eaf01d963690dcb964a5d22 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[234] +aad = 436f756e742d323334 +ct = 296d053592bfaf41cb61d51dcad9426c36c78ea4b14140be25390f9c717f1444b648f48b0dcbf74bee38a7133f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[235] +aad = 436f756e742d323335 +ct = 0487ef073dca0105e835c5904d98edb45df567fa9087ceb606c93ddb24e0e54a061aaea6e93a137b42cf0ff9c1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[236] +aad = 436f756e742d323336 +ct = 3ef882bc97987ac64d5ad583c5541fc8c6b0f05a6aba8737c9054af2370ddac0a51593e0c3893e035759cd034c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[237] +aad = 436f756e742d323337 +ct = eae1a1eaa9187b77d09486f346de984a7af85ca20e6d5f32ccfba94b976666c0a9a47386fd3e8f5f612fc2a88f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[238] +aad = 436f756e742d323338 +ct = 442a2a287db8198423cd4ce58a7d74d83a583161b22f0291a9a3e99deab262f6689226e7a8ea57bb86cc4f76d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[239] +aad = 436f756e742d323339 +ct = 2915250392892b3fa2ee274b26d48330a20feb58b175e145eeb5a0bbf4a88f6609c4bded25acd65b02885f9392 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[240] +aad = 436f756e742d323430 +ct = 2fb8e948ea5528356458447215c196e6e4b8a4a96df9f5d4def234d53e9a0072615d30e2c34e61d3b8a6d76d75 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[241] +aad = 436f756e742d323431 +ct = 3eb2d444f318a0a2afb7b0cdb4d257bf26b1acf75b6df81f41461a9453985f8e489b07b87ad6d3d6d47cc57a6b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[242] +aad = 436f756e742d323432 +ct = 0545d0e9c01e8e130832f42594edbfc217bdbc3cc4d516f06f52867237b4eb4c39246a6072217ea2e6c06d2efc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[243] +aad = 436f756e742d323433 +ct = 4ca990704b0db86375d2773000503127a8f82b0af0b8bc2d6e7cb7ef9ca2aa8d146d58e1cef2e633a3a76e1bed +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[244] +aad = 436f756e742d323434 +ct = 7c09b2ccf3064f49cc401d21637f60980b082f42e7db036879e3d32ee0f6e643db324e9e7829090b4db2c01c6a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[245] +aad = 436f756e742d323435 +ct = 88ed1919a6ab9840136fe01df6b962dab03295a4410b32f3384ca4a6bc7439c1a84b5f63028bf4c85c7feafd64 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[246] +aad = 436f756e742d323436 +ct = 95b6e1d0147a1c6d196c8ba5e3349d67d5e542a8e8fb23cc12e4d75719ab1e70bb5f90512dedcf3000d054ee10 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[247] +aad = 436f756e742d323437 +ct = 54b5db1dc4876c43f5e52790bdfea4941c4d0ee5c518a95888263571e64f03743aae1b04dfbd27c96f0e82a796 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[248] +aad = 436f756e742d323438 +ct = a44826009e56f6bde082697f13b3c95b2c2b34c1eaccb506b4fb00b2a59b5bae95e847eef9695d016ea8647c17 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[249] +aad = 436f756e742d323439 +ct = bf1fae5c1169436e6b5faf99a71925c0c36a5cc24b51826c9ced3ac3ed62cb3cfd1a0d7cb7614b6adfadb350b7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[250] +aad = 436f756e742d323530 +ct = f589e10a190e1cf499c2ed7bf789355f968002c68f32fbfe5b3dd98f68db7433cb53f71f1f56b917ed6779e0fd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[251] +aad = 436f756e742d323531 +ct = a769a73fbd53841050214c02ba91b2afebdda30da3198407ad4fd1f402c715e58c0ff1a4d968ef0d8032dd8532 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[252] +aad = 436f756e742d323532 +ct = 34a6d89a55a24fa10701cc085b277a8507bb3386142c34fcf3eff3d079513f57275361e8e3afa14070b71ce12b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[253] +aad = 436f756e742d323533 +ct = 651c9b9c599ef2574bc423ae8fa1d2ec607f599f767288c8b06e94677efd9edbf9a621a2c51e2a7cf0954e30ce +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[254] +aad = 436f756e742d323534 +ct = 478529435684490f1e0e4c9c7954e67a846fd79db7aff74bcce29850b3b29fff202ff715296aea39bd03cd5695 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[255] +aad = 436f756e742d323535 +ct = 4a319462eaedee37248b4d985f64f4f863d31913fe9e30b6e13136053b69fe5d70853c84c60a84bb5495d5a678 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[256] +aad = 436f756e742d323536 +ct = 28e874512f8940fafc7d06135e7589f6b4198bc0f3a1c64702e72c9e6abaf9f05cb0d2f11b03a517898815c934 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# exports[0] +exporter_context = +L = 32 +exported_value = 837e49c3ff629250c8d80d3c3fb957725ed481e59e2feb57afd9fe9a8c7c4497 +# exports[1] +exporter_context = 00 +L = 32 +exported_value = 594213f9018d614b82007a7021c3135bda7b380da4acd9ab27165c508640dbda +# exports[2] +exporter_context = 54657374436f6e74657874 +L = 32 +exported_value = 14fe634f95ca0d86e15247cca7de7ba9b73c9b9deb6437e1c832daf7291b79d5 + +mode = 0 +kem_id = 16 +kdf_id = 1 +aead_id = 1 +info = 4f6465206f6e2061204772656369616e2055726e +skRm = f3ce7fdae57e1a310d87f1ebbde6f328be0a99cdbcadf4d6589cf29de4b8ffd2 +skEm = 4995788ef4b9d6132b249ce59a77281493eb39af373d236a1fe415cb0c2d7beb +pkRm = 04fe8c19ce0905191ebc298a9245792531f26f0cece2460639e8bc39cb7f706a826a779b4cf969b8a0e539c7f62fb3d30ad6aa8f80e30f1d128aafd68a2ce72ea0 +pkEm = 04a92719c6195d5085104f469a8b9814d5838ff72b60501e2c4466e5e67b325ac98536d7b61a1af4b78e5b7f951c0900be863c403ce65c9bfcb9382657222d18c4 +ikmE = 4270e54ffd08d79d5928020af4686d8f6b7d35dbe470265f1f5aa22816ce860e +ikmR = 668b37171f1072f3cf12ea8a236a45df23fc13b82af3609ad1e354f6ef817550 +# encryptions[0] +aad = 436f756e742d30 +ct = 5ad590bb8baa577f8619db35a36311226a896e7342a6d836d8b7bcd2f20b6c7f9076ac232e3ab2523f39513434 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[1] +aad = 436f756e742d31 +ct = fa6f037b47fc21826b610172ca9637e82d6e5801eb31cbd3748271affd4ecb06646e0329cbdf3c3cd655b28e82 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[2] +aad = 436f756e742d32 +ct = 895cabfac50ce6c6eb02ffe6c048bf53b7f7be9a91fc559402cbc5b8dcaeb52b2ccc93e466c28fb55fed7a7fec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[3] +aad = 436f756e742d33 +ct = 4ab96a526df7d39a8ad3139c91f520612d0a21f572f1d5fc3914fc48cc2ba33f1dddd106dc4044772e79cabde6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[4] +aad = 436f756e742d34 +ct = 8787491ee8df99bc99a246c4b3216d3d57ab5076e18fa27133f520703bc70ec999dd36ce042e44f0c3169a6a8f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[5] +aad = 436f756e742d35 +ct = 9f825be34f4dfb3509c01afca5231c76e9f76b2b063d041db3e5d86853ca507222d5111e5f78aa02dea4d6f68a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[6] +aad = 436f756e742d36 +ct = 6de5485b39201d7b95b7fc2456a20a56095b9908276e249f8193ae4dff7ff36482c0ded2f9beac30283a9e8f31 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[7] +aad = 436f756e742d37 +ct = 49136f7be7079fe97a7bc93bc139ba728c63ec6bef5e0dda1f81c5ab8d96863f1f349ab7b3f5927851b4ec5fba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[8] +aad = 436f756e742d38 +ct = e80e0db25bbaf74ea456358cee4c44d9b2d6b23bde5f325f3405dcc2b068ae8c03ebec5af48240b064383929bf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[9] +aad = 436f756e742d39 +ct = 6ee69ada709f075fa3b77b4119cce49472e748f04a8657a1181f8eabe64301b9860618b8453688288c65872e97 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[10] +aad = 436f756e742d3130 +ct = 8f79a2f706a71a800daae1af8a4ebb49b4e9c996b88e377c7c0a48a3e4116d5a08791bcf24b234d70853d95c33 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[11] +aad = 436f756e742d3131 +ct = c30924418076b64e9a4b5d222cfed16a61e2830fbde6931c794c5d6155fc52cf758ce20da45cf86cb6e1810c05 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[12] +aad = 436f756e742d3132 +ct = 7a072d19fe800b4319105df2cc53cbce0c32896b3980a6cb4847316a972796ef2c95bc37135ff90ffb03dde437 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[13] +aad = 436f756e742d3133 +ct = cbb9576f12f4c3d7e550430fc33d07903bf30946525698b7c53bae4b3444262d97aeee2d0dfe6adf35e74c518d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[14] +aad = 436f756e742d3134 +ct = b82046769c1fee60f13bb86e6cc3dba44cdbd313acec9c95fe8f46040db10dbd19a7c8e2047f45d1f50cdf3585 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[15] +aad = 436f756e742d3135 +ct = f18a2ed6eb086b98f4fb27ce5a2210fe3bc1e3680559ce4bb75640f9a4bb2a34dfb20b7e79023bd5b80f6b7710 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[16] +aad = 436f756e742d3136 +ct = 236bfd7657db6ba995f46e7dbd796dcd96ba5005126daf372fe9b723c1ff03524dcac70f31ba8ddca9ddbdad61 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[17] +aad = 436f756e742d3137 +ct = ee57083b9b4e70b2506d81ea1e8381d179a5091ea22d7be45e657e736b79de4706b7026f4205efb694e8e60402 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[18] +aad = 436f756e742d3138 +ct = fd7086cf7f0ae885160bebc44925bb7b29d7c3e8c215042b822fb037a034190031e92a449c83c5ff673f096f8d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[19] +aad = 436f756e742d3139 +ct = 8066121a3f9e81053496230cf6cc2324ddc75902c0eeb122c7a3b62242d56a470de9d75022458f4bf274fcd1c1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[20] +aad = 436f756e742d3230 +ct = 955626af77d71180106ab27951ffa25c62e8b4f06c320d23526605fd061ab8dded41d1e8b2923128c75048f78f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[21] +aad = 436f756e742d3231 +ct = 83ba6271d7b68570472e1f9ada53ae0b5929d83292e2ec404cffee11f7a8e24080b00117e340d6d6073c617e13 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[22] +aad = 436f756e742d3232 +ct = bc708b20326bf452c4a02a330d63c0ed51426b5f3d617e47a06b7cf597ba1c87633684ed074a1dcdb87e67ad46 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[23] +aad = 436f756e742d3233 +ct = e4c13c8916084b407646fec28e7ab75d7fa5e564208aa4fd036d3f84bb678c93ee6ad7dd4f876ab66535956dbd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[24] +aad = 436f756e742d3234 +ct = 2d7e101619219709b53c13c4c471206dd951de757b98e43881511f8312e71cc57ebf7802487f101cfc01657f6a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[25] +aad = 436f756e742d3235 +ct = 4fed57e92d473165e1b08b7a699ac6f8d30d90d0f49d869647fd5e1b5394ea3be58a80afdd343a22a5a89babcc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[26] +aad = 436f756e742d3236 +ct = 573db430efbc399532efcfd30b6d3cfb9dfac89f9bfa77b08dfec9a689491464204ddce0aab718265a58b4b47b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[27] +aad = 436f756e742d3237 +ct = 7786d2cd1eafeeb0032521e2224ea3c345351760bc1e57b81a3f6dd3442a8dd6c2df828503882fe6d0f42c05c8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[28] +aad = 436f756e742d3238 +ct = e88453413086de1c7f4fea766d4ce5bbe1f177a713ab2b149a08b87114ab22ceed13be2562034dd05acdafbe77 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[29] +aad = 436f756e742d3239 +ct = 88aaa8d7d4066c61480fbe8f6b7267fbbc75e5a57b9edeafb591ae10af6c31aef6787d7fc5caacc0e936883c5e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[30] +aad = 436f756e742d3330 +ct = cfc34609d42b0fae241fddcc0c26e51454fd17df824e54ef0a4c4db7133dd2e933d020c1f02d7c14828c0647aa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[31] +aad = 436f756e742d3331 +ct = 70a113fdb3ca03b60bf4eeefc733d079492a5f8c2f637e517a78ee42cd468016965f5b9d4ce6953c266d12c2d2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[32] +aad = 436f756e742d3332 +ct = 2bd82576cb583567d6abd3346eb5795cd57b00a1925a6f4e7f659d0c2b26692fdbe6e0f750f519e96e163ca7a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[33] +aad = 436f756e742d3333 +ct = 2663ae54e1a0dd750495ec7e5cc7f6de54c10b55280716d81ab769d73c3094ab598200fed9368ee62445c73bb6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[34] +aad = 436f756e742d3334 +ct = 69628a0e1730efca3a05ca2e0d0623b138017e13e6d4356dd241e9b04b5fee30cb11c1583398c00c379f707b2c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[35] +aad = 436f756e742d3335 +ct = 42da6c1d37a473c1f076a9e53cba96e93f53582b5e66e0a85f604954c44899c03ac4e21b3aa9d796b3b2d365b6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[36] +aad = 436f756e742d3336 +ct = 4e65bc65ac07ece62cbfd7f03a98a75160f5cb204a965e30a0e83f17bae95762c1267777a6b622be1a6e6e91d8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[37] +aad = 436f756e742d3337 +ct = 3e94693fc7ce2d59457b6c31938ae2301697dbd8e5d4630603350e2dab3cd89785706861abb61eab7d541601ca +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[38] +aad = 436f756e742d3338 +ct = c99288cc1cdc5790220406c018015f19f35dd6e7cf1c12eb408b77c0b92bfa6277f94cc3331cb3b57d2321a0c8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[39] +aad = 436f756e742d3339 +ct = 1b71f9ee8d135539c7438e63afe62cec241309def6dd6afa6d720bccf7329d91fcfc92bb7f304def6d95b0eca5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[40] +aad = 436f756e742d3430 +ct = 6cdfe63ec0ed3586f77fb5cd9693e234377c56ddfbcf7be0deb693afb6bcb4f44161a7a7f843730fc2ff2be2fd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[41] +aad = 436f756e742d3431 +ct = 0339b3ed1ef11e7647bd8da7f5e3548eb644a441231cf131f43b92beb0a2758ab30a3b777b372d03013e058d27 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[42] +aad = 436f756e742d3432 +ct = 9a1126d6777a35085f6577466374c935b4194883f770a16993baa730fccbf317779a4dea0db1cb491f12cd94d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[43] +aad = 436f756e742d3433 +ct = 31d032319df0160c49c7b331a835cc5c9aaed92c750d3a4542096ade969e86653f0edfe24292af6da7345329d2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[44] +aad = 436f756e742d3434 +ct = 4a7794c0cc67efb3e88c26ba37cd20f79cceaa361da2d5a7e791f0b7743f4c0730826b23b70ed7cb51bae11192 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[45] +aad = 436f756e742d3435 +ct = 99594c81602df4a89f2ea40f10c09e1153fcb0e5006b6fc92fded00f3a044fd9f37ad508425a466f43065845d2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[46] +aad = 436f756e742d3436 +ct = c8d9b6d5f073d247637af651d6da3b301d71d0e3a09247181f0da9e84fcd489c66288276640278f16f86f4263b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[47] +aad = 436f756e742d3437 +ct = c0e4db34fe316db6c51d36e91251bfea479672252f14658ebb8f13ac1d81a6f8c8121026c750ea0e700471ebf1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[48] +aad = 436f756e742d3438 +ct = 02e9f6d276d56f94db6bfeff5d106a970d11af6954721b0e7d42641d6a527be7a2bf763d14fbe028f552c88652 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[49] +aad = 436f756e742d3439 +ct = f32b9d614cfb89b72f498c65173b7fb58f76b39da837cbec32c7e7c9cb8cd2c899e9de90a341e3f2c8560953ac +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[50] +aad = 436f756e742d3530 +ct = 2c12f5b5a5a7f92941dba58a826c671f8613e26fa9a7e0dba32fde5ed2e62328552901a70b5d532c79eb0f2328 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[51] +aad = 436f756e742d3531 +ct = a0de8145125383ca6e28c209be99edf745282c932f922ce6fa201e2992e0e8bc9c4bce230451a6cdba40a00d3b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[52] +aad = 436f756e742d3532 +ct = 5eae9a359d2717c3841ac7235bd135578474cd3a117ebd035e949b88f16526cf5c345677a6d3e3b1d9b57c2d23 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[53] +aad = 436f756e742d3533 +ct = 041f7d31abb8e384316aa88cbaf1d1fd89445b24dbbd2bc6817e97fa9b1bdbff54a83b1633ffe8ad965ab89cca +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[54] +aad = 436f756e742d3534 +ct = b6526be84dc74d9542bb98672ca1868da5186016a6b92e7806259329323fe44aefd156b91f8da1f32a05f76a6e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[55] +aad = 436f756e742d3535 +ct = d74900c262eea9456a4d03dc1d431c3e7861a2bc2605a6c6650ebcc36bfe77172a8cecf8f7696b5c1a87d8e45f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[56] +aad = 436f756e742d3536 +ct = 7af5ad97056b440cf95267954b582db0325bc24b61ff847bb1701f7130e378dd9614f801f41005e99eb0bbd101 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[57] +aad = 436f756e742d3537 +ct = 2c36c1e3f99f3d41f5f7a1cab5fe644b92e0babe3093c7a6e9490b99ed3b1186b36bfb4a66e60642a1a051b4f0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[58] +aad = 436f756e742d3538 +ct = 0a4b1894a02ab3d59cbec1082b3530950a04a2161ac83c6f82257589650267959645ce2cc9873b9ba256daccf5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[59] +aad = 436f756e742d3539 +ct = 9dee14a8ca496fdeae2a5429861e15998dc47caa3e70d2ba66301002f3b03229bea56a17e9fcbd83da11a2d305 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[60] +aad = 436f756e742d3630 +ct = 8b00b1f07d7a4186f9d229c4d57cc964ad2c88cab997f52fcbbb28a645b6ed56b88f344cca2ab617eb27b4b265 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[61] +aad = 436f756e742d3631 +ct = ceaab7e6bf1ee846abae5cdd5f4c6a8bf0cd6c144297c8aee4ade50681b025692be1f00db555f51726d0cc5033 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[62] +aad = 436f756e742d3632 +ct = 3fc15745e52d17682d879b2a13542a9439b669a08b8086cd0f7315e9826d49f06612c637bd61591ba690092fdf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[63] +aad = 436f756e742d3633 +ct = 620b448d832f1ed90646683b8d54c476d244d393607de8aa06123503e848e7245afa637136f4e026ebec52bafc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[64] +aad = 436f756e742d3634 +ct = 905993359de92349d2dded5c730dcdf82800a732053db5245d8b42f1455a4df6cc45257ef1cb8af3f73161d2c5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[65] +aad = 436f756e742d3635 +ct = 379957aeb3fe1fcfbe0d089373bec1a1a55ecacc316f50da3b08d8e9907c5e99589e7c14a057e93553e503d967 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[66] +aad = 436f756e742d3636 +ct = 5c176e4a52eeda7e567b6194fe9df00f0c1a2a2e0d55e18579af4f0aa04db24bc610a0a3dc3165014d8a0d59e0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[67] +aad = 436f756e742d3637 +ct = 26357bbb4d20c9fe0ce953dbc864d92e7680a9f35e3c12642a8649d8f4efb7b144371de26f0f105f2f27a80eca +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[68] +aad = 436f756e742d3638 +ct = f55c998d00c446ec6ce1d3cb477f9ef7bb32d8bdd04c3bcd4d412caa2eeb2f80fdd2292b8d122c92bc77ba6628 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[69] +aad = 436f756e742d3639 +ct = d44afd98cf32932c8ed51e952d850489d7c313b341a833667dcbe8b710d4ccbbe117106e17ebca4850d7c37688 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[70] +aad = 436f756e742d3730 +ct = 52ff3defe047fdd7bdeae7aa9666c8ada219fbb22cbfc33405be4cf68907c96a291c7529cb98e1078ebf95ccba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[71] +aad = 436f756e742d3731 +ct = 29cca878ae6dad218204bd706c467c4ab0a51d45511188f7d9560cd8fa63e63c6858f7a70f8dbf0d4ec971fe4b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[72] +aad = 436f756e742d3732 +ct = f4d5d0a0a0621c51b6aacb47bd78569731efa9307184eed137592cbf0b90437d9f1864fcfb4b743770d47fff46 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[73] +aad = 436f756e742d3733 +ct = c6b5d9014f690f0bde5e37c75ee14fa7da14b17d77c3df85d2744d27aaacc6991246593d3794654f78f65a80cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[74] +aad = 436f756e742d3734 +ct = d8df2f8c476cfbe842f19257aae63c4f8be78a5ecb251ea1c1eed519a4d02dcc0601c0de373f5850e09ecd38f0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[75] +aad = 436f756e742d3735 +ct = dcf060a676b022ed5d5ab48bc6fe39561ef608e9a4d55e7a7a45614b77c7e1cb2dc427a62aa6f937c81b40fe81 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[76] +aad = 436f756e742d3736 +ct = 1db9a00c5c8f07e542fe4f8ab77644df70d96c688220a0405b85097042c3f95ff849e1510aa099af77bd461aae +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[77] +aad = 436f756e742d3737 +ct = 57e1eaaf1a151fbcb535959e3d8b55dbd53ccb2a1ca606f57ec80afebf8c3652f9334c427d031d2af1e1103af7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[78] +aad = 436f756e742d3738 +ct = c9bd2eadc91a7a95d303f761a0fff77d3f3f70fd8743c9fb53d8fd19d3434e1bba66b8a22774158b6cf5120020 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[79] +aad = 436f756e742d3739 +ct = 464c7938cd539cfdb2f334b40b185626ab84ac0ae3b761d0b5f31654ac23b91fa1560315123614750f6d520e41 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[80] +aad = 436f756e742d3830 +ct = 6be586fda05072caba80ba189b53fb4a013a8f05f18f1ce9df6d6b25e32c9f4b26e74a4ccf2008224528074f84 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[81] +aad = 436f756e742d3831 +ct = ed53d654f8cb659b92270e0270ac9149d5c49833ec21e1c4aeb80f783bfbc57c2e1b3ab29fc1d1193e29995b43 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[82] +aad = 436f756e742d3832 +ct = f3b8d95998c852bd891454fd4a5b6b2f4dc5fb290cea3d626e713d9bdf546970927dad1b094891761434cb764b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[83] +aad = 436f756e742d3833 +ct = ca1183c80c6bbc96f91bd6209cd135ee95f7c83f38db619d25275086cfb81304a3c6e6d0f7b2eb376e5cfbda63 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[84] +aad = 436f756e742d3834 +ct = b48f67140eecf635d9e953cd212d7110c5a4885d7219dd2c9639f6b3dceec58bba48c42777dfcec297c15487bc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[85] +aad = 436f756e742d3835 +ct = 60511a9b6a3b1e8e362ef61ee84a3ddedf6ffa30a8cb2e52624c28a9e7b81bb7056985214da701ba2d8614e887 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[86] +aad = 436f756e742d3836 +ct = 7be36d392ad0dabd5dd54b3a9e1d0d760c334fd51fa673b36ad18a40b221cb714b9592060b4592b8b8646bda5c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[87] +aad = 436f756e742d3837 +ct = 862c3a9b4e8f9081d24349aa6bd23d0bd0e518f257f83aae12bc146308a5a3d0c2cc5c1eba6c98ebe5e6b73a9a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[88] +aad = 436f756e742d3838 +ct = 29243449987ba2635066632eb8997d92754dc21c6393ff640b711ebbb663c4934da8b36745a7e5bc7688dd894d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[89] +aad = 436f756e742d3839 +ct = 93cbeffad26bfa2929d07104b98dd2f31f72906f1b67d2af4018096029ba5203b3976005230bd7c1d4bd2858a4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[90] +aad = 436f756e742d3930 +ct = 63181c98a38e1aa6458dee22114e4ffe50f6ca808caea84edb723edb0811f9b4399e548d46e6616a4dc85cb7e2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[91] +aad = 436f756e742d3931 +ct = b0b548bb4b8707617ea344cd5cca4819773b04dd5269b6a088fc4f5a67c22263ee09b267a3380d71f36e85ffb6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[92] +aad = 436f756e742d3932 +ct = 9150c50593e50caf0c6669c0211fa7a0f4c1486e7a94cfee37e07451af7fa0b37b167324bc24800d0119b7ecc6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[93] +aad = 436f756e742d3933 +ct = 5ca6288bcf25caf3d9363d55afcce4d29d33c9bf196bb5bf28abcfbcae2c5e913be9af03e3aea760279da35b2d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[94] +aad = 436f756e742d3934 +ct = 055a1bdb75647d0dc005618e52765cc393208ef9f2d944e4b4ea5a679e55193ac41bd33ab297d59816a393c91b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[95] +aad = 436f756e742d3935 +ct = dbb85168a2db6da3441d6cdcb7d57edbe9ef97c46b59fcd4899b0000f2268d1e3dfdacc6f1ab4b18811ba80241 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[96] +aad = 436f756e742d3936 +ct = f2cfc0ddaf37d1dc56b9375cc001f859feb44f8e3a3e1897c97d34a380bbd7c8f41ae001c5ce23f61fb6173842 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[97] +aad = 436f756e742d3937 +ct = 3a152f5f01ac07ea0cd3188fbae846ad5a9c6adf1809ed82fb326ad5e9d800a1b7cfc526f1d54fccd6d9e14880 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[98] +aad = 436f756e742d3938 +ct = 30f5ab9eab4082e661cc599a2f892d093660f3c11f3f303c0b19989cda52f92b1478f730c7893bce847094fd1a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[99] +aad = 436f756e742d3939 +ct = 88f1e6652156cbc808f287530d60f3db2afb62481c7fc5788c98bf39c752a35bdf18e485e67451a4843b824280 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[100] +aad = 436f756e742d313030 +ct = 2bdba5dcf29642a9a842123ea5c50d9814f91fbfc71c4d13def50139c896b867a401478a54420c4f662e75fc41 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[101] +aad = 436f756e742d313031 +ct = 6293cec38b846d72bda60516bb7f4a7be816eb322d9e9fd04dffd300afe6bab0a8a25cd9a8e1251ccd0e3f4007 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[102] +aad = 436f756e742d313032 +ct = 8f1785a3af455caacd1b5a6dfb0a7c814a664f11ecccec968c0bd866213ffc22ff90f4360dc55ba30b94855a96 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[103] +aad = 436f756e742d313033 +ct = b66162a9603e188a207156e469d6d045a5cef814b0daa71d407a7b9418d56538ab8f00a8d57c59b42ea9a9c00e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[104] +aad = 436f756e742d313034 +ct = e02f6021a0d70ec5b16af769b96abec249c8acb375ab12a1accf7cddcd5103ce4834d133d353e2e8d769909789 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[105] +aad = 436f756e742d313035 +ct = 9ae2fd2406781c10a9426540249baf56945995503b931ef9fc03b82b526814f6b5558ee414e9088fc7ab60ab9e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[106] +aad = 436f756e742d313036 +ct = 0667b926d5fd60bb6c0f523b96082907e6af0b2dfc6f3ef9db2f8c0a0c39f25411e993b11266bd76b951d40a38 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[107] +aad = 436f756e742d313037 +ct = c7a764a36ae234f326b0a63575edcd7013ff5ecd3c9f9ccbe103785d9936b370a0d341cae8798651044f433535 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[108] +aad = 436f756e742d313038 +ct = ae1706a3ebe8e0b57674a9a43074ddd1191d9483e3d85831ad07ef8ec06fbc471551143b796f56a2349c318f70 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[109] +aad = 436f756e742d313039 +ct = 0547d14f42744ac2bdf338e7d34f94061caabf4522ef9107132e603d5d0bd5d9ed716f3af960b12a1af2b4a386 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[110] +aad = 436f756e742d313130 +ct = f90728a7fedb9e8fea512120e9de7a5832d971bbc6bde9f320599520dbf878587912789f8b9fcbf3e59e6e4e03 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[111] +aad = 436f756e742d313131 +ct = 8db26dc2f31b4340c9417484d59da7b47547b5d5c18d5aa2f791a0337a3dd93301c736dfd2a48b72fbfe5791f4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[112] +aad = 436f756e742d313132 +ct = 5a900bbe3809e755ea357867ee3b458673f40ad20fcdd46ef9c7ada0f9bb88f7381740a13b1800fec28418d72c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[113] +aad = 436f756e742d313133 +ct = 694c61a5266dd7eb8f915194f4e7be3afcf92bb5f708ca3963db2cd7d902e38361ed4d9a22fff3e45a663740c5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[114] +aad = 436f756e742d313134 +ct = 3c0ba86b0254f22651f39d495cdd706365b0f04ce87f7769d4ca18c0d7a59a765c5aced7b0a32212c5e41f2d97 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[115] +aad = 436f756e742d313135 +ct = d4951017df1d0b5b482f96fc2cfa54842a9fae633b820050d082b85235630d3c96c70f92fc162207581abb19e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[116] +aad = 436f756e742d313136 +ct = 3f87cafe919be4843c06a7ff9a8aa03db875b6b16f69736f824a935e0e0c0e0743322471d5097ac47e7f06bb35 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[117] +aad = 436f756e742d313137 +ct = 8a2d97024fbbd46f976ff9670832d7e77c19c2f90dd9dc26884fe1daee8c1690b4087e3df948c9b3140e27acda +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[118] +aad = 436f756e742d313138 +ct = b62c5f031bb3aea5f2381b9aed66566c9720b3b9d2bd3836f2b1e520c626b9992334870cf3a7dfbe5137a9c4d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[119] +aad = 436f756e742d313139 +ct = e1faa84fb5f3560b958c555605cb8047e2b15e3303ea3e739b6d78746a5d3f12e978b8f3464f4de6775c7523b3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[120] +aad = 436f756e742d313230 +ct = a388056087194ebbba48bc7e8e1e9d173ced6f9804fedae7200203e24ce1d76c5268ea39134471d8d2eee5fc84 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[121] +aad = 436f756e742d313231 +ct = 49e8b46076f4086f7055c19c2b0042127ae5d427f9292e427f73bd4825b1faa640dc1be7d89400a5788af4d902 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[122] +aad = 436f756e742d313232 +ct = 609c7187b6c2d9d2a768d14b419f677cf06bbd2fe49743cce1d6c8efff07417782fb9d4cb37af175aa211d06b3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[123] +aad = 436f756e742d313233 +ct = 811a3569f9a7e836c33157c7d2982d742ebc084265311936f93035baad9cb10aa741a5ddca934de64a8d4ba56b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[124] +aad = 436f756e742d313234 +ct = cbadb596ab9f789a4bc4b8c00a3202725b6bc68a22a84b68ae73f9b4617c717700ffe83595f511a7a5d975be82 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[125] +aad = 436f756e742d313235 +ct = 957ac0432441f30416398c5f949b43afba6d62925d55949810ee54849bf1190e2d9bf6d39a614df7f04ac3edca +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[126] +aad = 436f756e742d313236 +ct = 419b88161c391250630495d348fb856b9e11d5e883f92d89c59bc0ba2d8b2ad778de562a45a9c132a4db4b475d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[127] +aad = 436f756e742d313237 +ct = b14205ab85bc83cb8a5f3b89a9959e35e43ce37ec3c3b13b2f03dcf7672e4ba74e0234a70c4fb71d61b6492d87 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[128] +aad = 436f756e742d313238 +ct = e25d5710341ecb29722d7b7b121584c4d391faa9dd37e1300441971439e0364460a6c89626610138a8b7c76763 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[129] +aad = 436f756e742d313239 +ct = 0e2398af413f1f7a96e73c282c822a7b513297f7e41b129bdf9c3ac5fa3b605f01745ccb5fae75b61621eeeaef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[130] +aad = 436f756e742d313330 +ct = 8cce27999c04796fb0045da8d88ab468a7b26d5951356c89e8345cc35da2eb04799cb798a6fbb68d3d9382ce43 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[131] +aad = 436f756e742d313331 +ct = 3bbaf65c260c8632f5cbbbb843e2e2a888927bedf185e69f8788d58edc51172306d01c32a86f7c17748f1fe241 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[132] +aad = 436f756e742d313332 +ct = 5b3050ba3903a23f2811e738d8534f3314c18f1c17a7ae0d64ee53c3ba322cc14c07a2be81da501f4534592a11 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[133] +aad = 436f756e742d313333 +ct = 1527d28a3ae0afd026dad11bab87a5b5dbec60b40086b78dd84532ed3771b956e289bad4fd475219071f9b68fc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[134] +aad = 436f756e742d313334 +ct = 30d1144a985741de4c2470224f1f21c3c33ae7c98268f8d6fcde770cbc38d18fca7d964b995ffbf1ecbc6790ff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[135] +aad = 436f756e742d313335 +ct = f65b36a5d54a55e5fe9fea59f02017a30e64f81cfa9588112bb064ac3ec04e37b1197a346ae3249fbab8cacce0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[136] +aad = 436f756e742d313336 +ct = 0f277590d26a7a9731de3f4c0d2c6176207ea55acf8647c87e90062c6770a001e5f400c1c8ee165af49742edc8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[137] +aad = 436f756e742d313337 +ct = 53f3b290b0ebfef5844ad220b1d7be3b1792947dd732ad4d4364dc4ce3c546f84ac8c10900f077fc286c133a39 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[138] +aad = 436f756e742d313338 +ct = 3589495ffa3d54c27c6bceb9bb743b810ba695becbd6e226d6b8ebb76f408a9cadc5e98c6dd947bb6d96dce07a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[139] +aad = 436f756e742d313339 +ct = 78e377dd0f1c47657179d1e2baa3ade34c0879f5d08f629b068ba04b0c18ac76ee49b9ac1fee3e3565a7bb37e8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[140] +aad = 436f756e742d313430 +ct = 0c65151f103685631ac87fafe21507bbc9bb2b555e2385fca3c721a5d8684d5ab5956e3097aec08f543a047997 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[141] +aad = 436f756e742d313431 +ct = cf0940026c91fb7d63e7fdfc69f2bf408624566922caf887125f3498fabb58f5eac7821c50cdbb2f31958fe332 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[142] +aad = 436f756e742d313432 +ct = 1bc1f648113ba5b778d400921ec14f4cdc37c90d821fbd7fbb08618d00a33e543b5d3759bbe6969abea39bd1c6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[143] +aad = 436f756e742d313433 +ct = 119db0344f20633f478df36846db9cbd552aead3b03cf93f6d152a573b65a260d77dcd4da2bbad0d4b50ce349f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[144] +aad = 436f756e742d313434 +ct = 6da5624d72fbcad4133187686178633f39e1e84634c8075b3b3c45d80a047d0a242364fc5d2e717023184b6104 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[145] +aad = 436f756e742d313435 +ct = 4c75166c173dba53ed0117538452a03c647e2ab80542b32dd956181857d5486e215d8d2b0abb4b0df80e0fb2b5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[146] +aad = 436f756e742d313436 +ct = 71dbebe3af46f78b08dcb2a1884b2ab17d190a93353c27067094f2f99b20c62e8abfae9bd820f37d4a9dcf6993 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[147] +aad = 436f756e742d313437 +ct = f3adaf920128e0e5cc496f32f559bae20d9fa64b6be726128792a25d117439392b1ff64e3bb8e47bd92df9a385 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[148] +aad = 436f756e742d313438 +ct = 23d5bde5655636862d6f1d8245997d68de5833802d545d237b253954446f672a18b0489436e1b4a9e2ae0df331 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[149] +aad = 436f756e742d313439 +ct = 8e2ac512a1d5bc6eaebf42bebd2bf122871a17391d1352811dbae0848bc77b7b9151218e360b252adfc29f06b5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[150] +aad = 436f756e742d313530 +ct = 9196fd6547b2ca38dee914cacc4622d3b8ba0e5bbb504051cfe4d51e2ae5b166ce70493389d2326ad2e5fbb9a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[151] +aad = 436f756e742d313531 +ct = 65451924e32c3d5a000f89864dd226aa7d7181e1957841393f959122502de4ae6e9491813b34a96d14b57b9bf1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[152] +aad = 436f756e742d313532 +ct = 554bf60dea8f46e5cd163f64895408cbf7dabdf2a51a9b76c59fd683f5ed74f22d866d6f46c09162d05a33753b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[153] +aad = 436f756e742d313533 +ct = 9b190de33b4ba0bf50cef622909d197fe37403819c1381198d9a4064b4c09a52666678ff93a9f5833cb9d79266 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[154] +aad = 436f756e742d313534 +ct = a99cc95c8c096277d90752ffac2a40a2579b42fae050d0effc4c50b4e37f701e2985b7facf385175eb4c8b0a41 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[155] +aad = 436f756e742d313535 +ct = 216300374d79ec99d612559afabbf4a7732d36b0f66b99c1939fe214c7aeab5a414279a4aa52d94b71ea72dfe7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[156] +aad = 436f756e742d313536 +ct = 790e22643db52d78745a82df9746aeb6cc7de7ccc01dcf4f1799ccec3dc1cabaf7973322dd657ca82fa6a3a99f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[157] +aad = 436f756e742d313537 +ct = ca7e014dff9d36eef663d04646318cd4fc3673c1f1e49e34999098ff93dd4ba2397eb06b5e9d612bb1651540a2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[158] +aad = 436f756e742d313538 +ct = c0e43ac2206ae5596a4be443ff1f6534e4bcbd049b1260e28715a7f5f989e513cf3377f362d4cd51027b8f9cea +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[159] +aad = 436f756e742d313539 +ct = 2e6863dc62e30dedb9188c20a19635fc5e4a59cc6994fdf784fdc412c1f417d2aaa2a43963102ffabc182f3857 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[160] +aad = 436f756e742d313630 +ct = 0e06f040d7ccf00e494e90d26bf65caf07d6aa5d9c40997dc4b964127e20d82da5c777ec495049769b12a12ed1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[161] +aad = 436f756e742d313631 +ct = e7ed292c7ff769739a430d9b427f3fd5b08c75535db41948cd7bc29c94afe289f14f3e6c58c3a7703ddddfdfb7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[162] +aad = 436f756e742d313632 +ct = 3d510b67fa8deeca7f7d4e09b047bec0ea5b902f7de8f2ad8ebe1cc40306df0cae9367b8a0d3765a0431234191 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[163] +aad = 436f756e742d313633 +ct = 0792bd0a95a84770d324007234b879944f0cf308dc9b198239c7473cc8210470e67a15cd64aae44ed2d704b124 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[164] +aad = 436f756e742d313634 +ct = cf2e6a5f930be7d9ef5f0e83993a6a61aeea9b08d17315756e7c7758c349276037d43e1cc931ba6f47e8c7abc5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[165] +aad = 436f756e742d313635 +ct = add83d78c5a8c4832a74705cfd3f03bd32de25d6e880028e59cc534e9eefc79c69ff1afac23b786ccce6028bb4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[166] +aad = 436f756e742d313636 +ct = 644ce561499a9dee1f76cb03c3405c44610fe0a6339ca2e5990585b23f108ff0515cab0022b92920d492e9608e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[167] +aad = 436f756e742d313637 +ct = e9d832a415c23e8d480b666d54e66c436441c02064159dcf42a02da93005cd602bc4cdb73cd4ba437776974ffa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[168] +aad = 436f756e742d313638 +ct = 2b7cfe0d9da74b6178e9f66cb39f1c11c3dca070066a2e9035dc8d16605caa65c48bbfced07f7cb0f8cb937403 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[169] +aad = 436f756e742d313639 +ct = d9253765bca5757683d7a99cefcdf86d284243517d4650325aa58d4b731a4306683d4f055be4f23452282e8ed8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[170] +aad = 436f756e742d313730 +ct = 4a0d003b485624bbe88cbde0b8e8367f31dff00a5bb0b0280fe35a95da1b0f662bd07b705f1698dfa33375bf1d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[171] +aad = 436f756e742d313731 +ct = f502f419bbb7e276154e2c5f2ec9fbdb13c61f09ee5993802fb50cc6003b17a4bf1179b7d8a48a0bf7528f5331 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[172] +aad = 436f756e742d313732 +ct = e2c055c53ba7827e2056fabc95ff186b1b46e77268de695cc8efb8022ee33a6712307ad5c881acb6589d2a6e54 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[173] +aad = 436f756e742d313733 +ct = bfb51460c63906d604c22260b2cc229e177dca34a78439a606faedb80c681268923026f989a828534ddd2913bd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[174] +aad = 436f756e742d313734 +ct = 961e84353362d00492a262c88de810a009a5af6e6f3f0d23c1a823f0a706d0a8b539d3be3933b193c31461cccf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[175] +aad = 436f756e742d313735 +ct = 96572f433efdecab271a64df421fce559770d47723945e9f1bc8c2a67febff80cc98d1678f7a34d6e7de5d5c8d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[176] +aad = 436f756e742d313736 +ct = 7f8d13b8b7a80ed582a10e13206b266a7279acbf7285cf26c9f75ab73c535b55eff698b25de0558a0455143d9c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[177] +aad = 436f756e742d313737 +ct = 834fbb6ad123cb0d9325cffa05207a3caf63e45843faf0b2d98fd3103e8411efda32125e852f1e468a1c0c7605 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[178] +aad = 436f756e742d313738 +ct = ea2e4eb5aa8a8e0de8f4c7e29ac10fa49989fd6a5935f64ff331ec2c53a079556158490edbe013319f49a88af6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[179] +aad = 436f756e742d313739 +ct = 7960018fbfd627cefd5023953f8a007b7fbb5ebb4153d8185d1f55e0ae656084f5595c29da0900d71989a7f445 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[180] +aad = 436f756e742d313830 +ct = 4b6d1f9ec27c3a9fb79ebdb0d69699c3e8cb8da4802d38d9940fd0b129e0ceadd1e54588de95f5199f4925fbd0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[181] +aad = 436f756e742d313831 +ct = 044115025d4867d992e8c2cd9242b12a121cbb0fee497c3b3ab6c1d0060dd509adea13f843522d67a9da62fba3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[182] +aad = 436f756e742d313832 +ct = 4d3eba6d2f517de074a0ef40c4e2b261adb02ca1537d6d315d6816a556d3167b352f574e06cdbc423d08b84146 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[183] +aad = 436f756e742d313833 +ct = de308859ad3619c7a646877d9d00ebb7ae1803904d8d3accb106c897266760becefddcfc9551ca71a04db519dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[184] +aad = 436f756e742d313834 +ct = 3e58f3c052092cf02f0d541cf7c9adfb9dfbdee15c3973e6133e991e12f6289af3bdab52540881d688095f863d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[185] +aad = 436f756e742d313835 +ct = 210158e10fbbc2b36bf11668ec53651c73d73565fbaabee553c67c6d0e2c474a7da11b508313324225ebdce308 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[186] +aad = 436f756e742d313836 +ct = 1fa300121fe7e77efda23d37a9ebeb65e5000ed4133d53ff054ddbafa6cd9286a1d3de12fc7eab261ceb75593e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[187] +aad = 436f756e742d313837 +ct = db5bc3077939b1502c365fb5b1d7e2be7c6afca14932e830691f84b0e2160bef24663b6c1c78be4ed8d9fe7b9a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[188] +aad = 436f756e742d313838 +ct = df983a3ac65db3d183ba2f1a1adf5953c18c609d895d14fcbaec9647580d4d57d4e9dd94dbd064551f12409132 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[189] +aad = 436f756e742d313839 +ct = b5af595fdc9dd2a63dbf336ad3680f0f302b2c76bc735a85bc23c09f8a41e3a4fda7f99178d28e4e6d21ab3d86 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[190] +aad = 436f756e742d313930 +ct = dca5ee65bfc2a10fffba96d15223080c2f95e95955fb234bb8c351568cbfa37f2507d6836df412bd8cd2dc8486 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[191] +aad = 436f756e742d313931 +ct = de477623a0ae487d3f61166f9df4531130a1132e8cc66147fa72b337e283f57af59fedd0ede725ade2d62511dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[192] +aad = 436f756e742d313932 +ct = 52cd962fd79948df00241bb57c46f67a6899d2a352f94462ac33740aa1757b0d30f22bba33824dbc680f7654b0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[193] +aad = 436f756e742d313933 +ct = 03e73c975d9926fa1bd03a01b500f691ab45bfc85c1d466d16fba530c039b66e0dac2202612d676fd9035bfc04 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[194] +aad = 436f756e742d313934 +ct = 2870c08149a4817df9255ae20540a95b1fa092eed1ef4a2f261315e61026a2a25db9681192cfcdc6ee0ff5fd7a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[195] +aad = 436f756e742d313935 +ct = 88db84b1d84362dd1a9f397e9f04c301a8aca3099acf7c570985879668d949c7c18d8ac22647e5475094bbf6d0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[196] +aad = 436f756e742d313936 +ct = 4dc54261bc14a107fd27489d6c268071f546baf6734114ad43baf0817bcb52e755db1314c1f540e5e7b0f4de62 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[197] +aad = 436f756e742d313937 +ct = 5e87a7dd33ec05bb1183eabcb7ffaf2662a693add0b0fabc2ad87ef7a4cd7ff31154c6a5432511acd214221dd6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[198] +aad = 436f756e742d313938 +ct = 8b64c5cf6761b4336f30450be1988b9300f9c1b52257a18fd4297aec107e0ab7e5b345d8e1f47adf6bb0e1f492 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[199] +aad = 436f756e742d313939 +ct = 8fb02ea317c1b87ffccde9fade64e6c06c883e446edc3e810edfa55dc0b682dc57d94f1a62c504f833931b097b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[200] +aad = 436f756e742d323030 +ct = d3901ccb35d7c62e91bcf8dee378f31e6148d0a371bbac78ed3f8e4cce79a05b890eb53a3eeeefe2aee9aa3e46 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[201] +aad = 436f756e742d323031 +ct = 6ca6c30d03c4619f4bead732069e5b96229c5a110ae7faadded15ea6fcff07342820a177e3811f9b7bc0c66370 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[202] +aad = 436f756e742d323032 +ct = ec971166f9ead0bb35f83d620815e62b46eb18a065d63dfa645e1815cbb669e1cfb2dd1527cd585fe1f85f65e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[203] +aad = 436f756e742d323033 +ct = 357b934c9c45ce5f14ca5a18d53de9313b9a9ea632fd3fb837ee51b8458ce7be02418a4868ad11cf2e4f4fe436 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[204] +aad = 436f756e742d323034 +ct = 79c9f6e50052f182c7d5cd5c6054e4c0a32bb4a9a502741cefbf710807ba706053ecc8927d404539651ee5f40e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[205] +aad = 436f756e742d323035 +ct = 106799ca941b484cfc4550969cfd2e35e1f9a9a0e7d2601c887c1217a3071979598e1382b89df4e42fe7b3a597 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[206] +aad = 436f756e742d323036 +ct = ce08f178f830504c0015116120599671d24d948b0c3e225818d9e3bba1988efc3a943047379b6a156111a07d5e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[207] +aad = 436f756e742d323037 +ct = b408451c9a117151cf4bcf28643f3a217b611d154562f0f8981605668e5447b851175382356816aaea55fcdbe7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[208] +aad = 436f756e742d323038 +ct = 51b331c98b4d46a7ed1da70e7add84c2e044f8a617dc566966b7874516a3f928a6ca129741fad2c0ef1fdd4dac +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[209] +aad = 436f756e742d323039 +ct = 7f1851d0989f501acf173bcad523760d334f2cf18e8776729cdebd6d8cdccd16daabe61a359b5e1ffd74ffa558 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[210] +aad = 436f756e742d323130 +ct = 958ca68ad2ad0c28e6d0f604c72534c349488b768f8059d6393cf3ae0031262ae7e5fbf59a33a77e88bbdaeb82 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[211] +aad = 436f756e742d323131 +ct = 68f77a61d65dab6d3bec119855d6984c9c1368a260e7cc1d2ba907af4ef4ea5b8fc097f9c61971db4c87aafe3c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[212] +aad = 436f756e742d323132 +ct = 1b3536d96ede370fe40c50eb3f0b3ded484ba4e7f3c4c02f5f8d25e632592e41e71b154c4762a286c12a03481a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[213] +aad = 436f756e742d323133 +ct = 826ad46e5ec20d7f46b7508a65efea8d25b07091274b1912fdfb6a019c4d0433ca435661b0fedf3e9ff43857d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[214] +aad = 436f756e742d323134 +ct = 902225b74060425d24eb1c47f4f91ac3945c443df703859c277575436dbbb5d58895ce6012d4f5ecfee288e3ed +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[215] +aad = 436f756e742d323135 +ct = 6e9a574a0a47fa757a00684802ae8dda5505da855851541f78aca8ac3591d25e2ff84d450593562ad34c1cb07d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[216] +aad = 436f756e742d323136 +ct = 69d597812778d5f4e7ff0f336f838d4ccbff4d12f54e39d76966310077ec2c67ba21f9a32d55e6475543322618 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[217] +aad = 436f756e742d323137 +ct = de56450a6caddce46fe760855735abbf3ae9dc1e541ccfa961c909db2cabe6389184b9cb01bd0b96b46fe0b0f4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[218] +aad = 436f756e742d323138 +ct = 0d7b93c46ded46227697f7886e4bac6eca99466938e3c89d0e005d61c538f637d405dc442b37739c7e34560fe1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[219] +aad = 436f756e742d323139 +ct = 9d01cb547317ae506ea6613ab2eb6b3ae2442989963ddca4af7108c11bc0ba2fe3b59a627333cdaf1c744a017c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[220] +aad = 436f756e742d323230 +ct = 006f435acbfaf7a6ed08bbc1f05cf2e020815ecb6408c6c6c434c455c9c38f5a89eedbc98f56674e4ec5aa56a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[221] +aad = 436f756e742d323231 +ct = 8bb90c45f00acb583b4736029e2e004c4ebacab469e27b4fa8f25a3e9b7964d563c4741bdb69a62fb35d288006 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[222] +aad = 436f756e742d323232 +ct = dd035c22cd9787a94b676a2ae678a86b6933a28d08dfc82f0c10c10a70718d06d512e830c61c729c56dc8df363 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[223] +aad = 436f756e742d323233 +ct = a0fb4876b2e9842aef734363dec6ae9d7aaa4406a48b7b3570b1bac9d794312fd2978261cf9c14176318846ad9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[224] +aad = 436f756e742d323234 +ct = 2955bf52356ada6d7b8fd6f63901f8465af7d1086fd71fc3d8762361ea00dc133176a1261d3751adee08b2a05d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[225] +aad = 436f756e742d323235 +ct = 8285b14f5ec9d04af326907364cc307af89427d7fc6cf48b209ea4f9127f35fc99faaac7c368c357474be2e8c3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[226] +aad = 436f756e742d323236 +ct = 04ad464cf7c86a16a2e613aa3532be7dd9f4042438eeceacc9c46f0eace743bcc0a2e5e01030bcd3d4d9c87a52 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[227] +aad = 436f756e742d323237 +ct = 0272742c7fabb325c0a1a783b12e70d2eef8f8842e531975e9190da33d464034d1ac0ac392129f967c006de460 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[228] +aad = 436f756e742d323238 +ct = 624ccd043db9e7e5f270e6459223e6e5f0d18a769b0f3ddc7eabbdc870e7cb30e807f3ddfc60acedcc4c8fcd2e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[229] +aad = 436f756e742d323239 +ct = e3ee4bfde0521215849453557a7229a06b5a4745840cd242fed7da89c69d6dc8be7888881b31969cf7c4474e0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[230] +aad = 436f756e742d323330 +ct = 08bb0a7ab4eeaa885449b1d406f74ac85cd93f7a17778304421795370d050ac1e834a27aa0ce78d8955e4d07ed +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[231] +aad = 436f756e742d323331 +ct = 50543ac1b94754f97f17c78a3060e739873e80baffdf38fce2151826e87a5df048c311d4249701d35fcc02447c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[232] +aad = 436f756e742d323332 +ct = f74ee5d04058f1741baafa860b21100ba21f9e628dbdcbc7c3210eb9a86a3553ed2bc56d23a461bcd0c8c1401a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[233] +aad = 436f756e742d323333 +ct = d0428979f51e27805e241bf2a8fa1b8d206bf1f76912e82b3c4f8d10784f4bb4c492163f82e515a870de816f6f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[234] +aad = 436f756e742d323334 +ct = 7782af1095311b39681bf077f7e2ffbbdae5fb3d27c4c5dd6665137ece20e2f4e8060fd9ba02f5b5cb185aaa95 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[235] +aad = 436f756e742d323335 +ct = 974cc60e64fb836c473915b7309c65bb013882c4f334b09be51f9b21f154317a6e78422032045bcad37af11703 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[236] +aad = 436f756e742d323336 +ct = 539a5b49f91dc7c8596b1c12681006f1d6dcf4554e5a375b6d66241bbe54d798c0858681250afa7e6e817d993b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[237] +aad = 436f756e742d323337 +ct = 48286f131c4de8f7a55765574db9c58e0d4a79af2c101a85b071f99ca932c64dd3f5ec174779ab8fc7bc312f38 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[238] +aad = 436f756e742d323338 +ct = 32cbdd7caa041ee6e0ecfd7c90cc853832800f42a907c6a7a15c66cfbb4f09ebbac0b02979d7bcb430dfef3f5f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[239] +aad = 436f756e742d323339 +ct = ca225692cf8e9019b1843d11e8a8fdcd6cb27a0f94b787ccba62b8d88fec27d5190d021d37d0b7040084a08c54 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[240] +aad = 436f756e742d323430 +ct = b0a0d8f33b43586b2d995c542ad2b14ba7a9b8dc0858c0b6747b89f41b6a161cb1077ef1d5f8bfe2998f734693 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[241] +aad = 436f756e742d323431 +ct = fd3343b68504a65e5e59fc0012bac5ff977101ab27a1da21dbd61ad503b294dfaaefb0418179287d41915b88d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[242] +aad = 436f756e742d323432 +ct = 9b05f45d5a05e8b5c62c313c76a4b768a8b76ca4a67c057213f3a680ac4aab106dc85ef9a5e0ead38172a3d7c8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[243] +aad = 436f756e742d323433 +ct = 9f77de1a4dfcf82ce8b86c24921963bd728481bf4c5b1020c1ba199f1c59bc2af68cfee5f9655d721223c4660a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[244] +aad = 436f756e742d323434 +ct = 2e75785da7ae915c77f8627a8a5f2a46952de0909932223831229810fb6a639b729667be05d098bb9992bf0d87 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[245] +aad = 436f756e742d323435 +ct = 1695cfcc989632a479f06679e33f8ae2f2b709c82bc8acab6352cc755f5fd77dcd9fb38733372c3a2758c60c5d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[246] +aad = 436f756e742d323436 +ct = 86f18f25a6d22ddae560fdcb059d20c7849597a33b0804dbfbf8f44a138a423c59740379aeda2a8400768c4338 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[247] +aad = 436f756e742d323437 +ct = f185d8244b8f6567e96c842c421ecf840a46efe536a91be81645f9a8ea00461d9c6cb46cbafe609b791732e06f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[248] +aad = 436f756e742d323438 +ct = 8eaa04b9967b246afa58bb1ee24efcd3f2a648be6e70964272db11e8b0a4f6e03930e7998fcf468e03a85fe997 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[249] +aad = 436f756e742d323439 +ct = 00ca60f328cef563a4bf2142f1f8994158851a2b538d42ab2ea8d10c91313aca28edbd38f93eb6b5d329abefad +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[250] +aad = 436f756e742d323530 +ct = 5622a6977ab2f16f0d76ace5f0b3ef0b8f3f73574072623379ed817fbad20a8cde063f3e4fcc75fd74d8aa4837 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[251] +aad = 436f756e742d323531 +ct = 4784c2e119249a1740fd811ebb2317326a627f81b2e169df67760890c509e5b638d36f9c8ca54c4ef00af7abda +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[252] +aad = 436f756e742d323532 +ct = a2c18824022168516291143db1db221a9118c1cb79c52bef8698021c8cc554b08d0364313aeecbaebd8cd60fb5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[253] +aad = 436f756e742d323533 +ct = 64d963d35d9e850d659d8bc93b55fa98a84a1a53ac626b8d5e6e4fda21dc63bb069d71840304fd3e61b3b6dfb4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[254] +aad = 436f756e742d323534 +ct = 0f92cedd2d67a377ba021bc92154937359b1f4bde22add8030b7c29d1ca89417390bc25a6a5609266b4f5ea615 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[255] +aad = 436f756e742d323535 +ct = 2ad71c85bf3f45c6eca301426289854b31448bcf8a8ccb1deef3ebd87f60848aa53c538c30a4dac71d619ee2cd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[256] +aad = 436f756e742d323536 +ct = 10f179686aa2caec1758c8e554513f16472bd0a11e2a907dde0b212cbe87d74f367f8ffe5e41cd3e9962a6afb2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# exports[0] +exporter_context = +L = 32 +exported_value = 5e9bc3d236e1911d95e65b576a8a86d478fb827e8bdfe77b741b289890490d4d +# exports[1] +exporter_context = 00 +L = 32 +exported_value = 6cff87658931bda83dc857e6353efe4987a201b849658d9b047aab4cf216e796 +# exports[2] +exporter_context = 54657374436f6e74657874 +L = 32 +exported_value = d8f1ea7942adbba7412c6d431c62d01371ea476b823eb697e1f6e6cae1dab85a + +mode = 0 +kem_id = 16 +kdf_id = 1 +aead_id = 2 +info = 4f6465206f6e2061204772656369616e2055726e +skRm = 317f915db7bc629c48fe765587897e01e282d3e8445f79f27f65d031a88082b2 +skEm = 90345e3a1d116c1dd39ae76d95ab858c142223a63e44f8f85318cfa91a84858e +pkRm = 04abc7e49a4c6b3566d77d0304addc6ed0e98512ffccf505e6a8e3eb25c685136f853148544876de76c0f2ef99cdc3a05ccf5ded7860c7c021238f9e2073d2356c +pkEm = 04c06b4f6bebc7bb495cb797ab753f911aff80aefb86fd8b6fcc35525f3ab5f03e0b21bd31a86c6048af3cb2d98e0d3bf01da5cc4c39ff5370d331a4f1f7d5a4e0 +ikmE = a90d3417c3da9cb6c6ae19b4b5dd6cc9529a4cc24efb7ae0ace1f31887a8cd6c +ikmR = a0ce15d49e28bd47a18a97e147582d814b08cbe00109fed5ec27d1b4e9f6f5e3 +# encryptions[0] +aad = 436f756e742d30 +ct = 58c61a45059d0c5704560e9d88b564a8b63f1364b8d1fcb3c4c6ddc1d291742465e902cd216f8908da49f8f96f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[1] +aad = 436f756e742d31 +ct = b4e7c90d1dd62cb563694956eb517ab55d5e7d1f6366a0066c04ababaa444dbaf60a30d7bb7d3e91b969762dee +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[2] +aad = 436f756e742d32 +ct = 65463cc0e5fd16e1650a55fb37d5b6fe6e5ac5b6f6e8c2640cfb0fcd528dc37bc0963b5c53d6238c42d447ddf4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[3] +aad = 436f756e742d33 +ct = 2e68d23899ad26f5b2a427b558b764978f36ee5a77ff5d9e41b53c9ed92e68e5432fbbd802426118fb33679597 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[4] +aad = 436f756e742d34 +ct = 8537ff19240d613badd398dbeedf0338ca9f549bad6775ae8c3a672666057f6709e0931155cd1cae7071c6fd27 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[5] +aad = 436f756e742d35 +ct = 93dba4887656ffd2924f3d8818d9d5aaff0d1f418dd1308b3b69831ca31c3b5cbf6fd20be22de60f8a68f94cdf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[6] +aad = 436f756e742d36 +ct = bde010a4e30ce2b2af854c9dbb2b1bb62fdda53a41ac9910f62c78c57f2854fe24c11ebae198702b044f9f2937 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[7] +aad = 436f756e742d37 +ct = 0c84fa1e7244087e4bd96bfd08292178da1aed05f4763849683cf17eec00d58d69f22f0246acc07746fdddfd71 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[8] +aad = 436f756e742d38 +ct = 20df1d3f4893d01d7cc2fbe59a600b10e7a3758cc9e1a1045b21481e0c740522e68e6c676443782e04ba3be60b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[9] +aad = 436f756e742d39 +ct = ce71912f47141cd2b1d7535e410391478a743cc7b0f90b9ac20a4768dc096eef7bf08184142d256881ac9e951f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[10] +aad = 436f756e742d3130 +ct = 71ec0f258dc41cb776869f6031d2370d39c456bf28187ebe6995939b40dec85505d61afd51e5c9ff6cdbd0e028 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[11] +aad = 436f756e742d3131 +ct = 4936401ca3c26f29f1b26322d5290f7af021c50b51fa47dca831eb0e7cba8311d7293c2d770e63af532ac35b23 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[12] +aad = 436f756e742d3132 +ct = 7af21109276221df3e9dcb5581f09f28351e8006b70ec004f8cebcb9a00e42554239d6abd6ea276df50d7622e8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[13] +aad = 436f756e742d3133 +ct = 3022932c3ab88cbd009fbf64244cefeb86c19570118d023e072834db0b0b83f047f39e69d520be4045a99d121f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[14] +aad = 436f756e742d3134 +ct = 6b30a55affd6545bc9687e08830d97710cb44ecac7be84f27ba18a779ebf31ad83aef583fbec69eb13d3960496 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[15] +aad = 436f756e742d3135 +ct = 28ded6a52fbe302e81be11cda2c8ef0e88c8814ffd529aca62c08a993087c0f2b816da46670398dd0901da87af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[16] +aad = 436f756e742d3136 +ct = 05b890d8bdba2f446751c8eeaad1338eeb679cd949b1e779977143e3666bca367ac65ad86ff4ae2b981d145c89 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[17] +aad = 436f756e742d3137 +ct = c8417704006862f5737e74dbe8f1d920724387bf4c428879bf1dacef245834be2e91a2b4de17d112dcc3271b76 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[18] +aad = 436f756e742d3138 +ct = 55ece4ca7b2134c363b6801ea5aeaf38a20773703144b1948243871ef38a997e529b4cc8b03f15d3a026c5d880 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[19] +aad = 436f756e742d3139 +ct = 0b07273f9f319d28d58b824f100b686109f27aa3b1fdf60f87d0f613e097e1d67ffb29b8a937638dc591b4f18b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[20] +aad = 436f756e742d3230 +ct = 01963e4e888a6768438c4b4b646cd8fb0f10d4d99bf740c7b69718d3b1213fa9638c3f69b798902b15f52c5602 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[21] +aad = 436f756e742d3231 +ct = 768976087f86ff47e89865ecb2b8a0e174abd835d038633bf98efddef59c18643b22c7f3a71c68f37cdd1069ab +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[22] +aad = 436f756e742d3232 +ct = b8a67565c21c3fc62681bd09df0388cf007b1e0d3dedecb8284e7e9602789c20b2187965df5aac68ce892f03eb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[23] +aad = 436f756e742d3233 +ct = afb1f0760220eb53ce10996a2b190d41ac24ee667479a6d889acc6c41e78d7b6166842655ce192d63ec1c8e937 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[24] +aad = 436f756e742d3234 +ct = e18b46f780379b66f4a0ee776a6f5163c5c4c01f05a5ac915e1415f2c95db61c28c7715091164958f6487b723e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[25] +aad = 436f756e742d3235 +ct = 5dbcb634666536cdb9831e672c735b1039b78bfdbf1f572c544eaaa7182dc0f5c6480636dec0b5c4922e68c5ea +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[26] +aad = 436f756e742d3236 +ct = fc9a107a34e3331c7998ea6c9b28bb6104913c1c484048b90c9e4f57860f53f669e525ff50e0889e78c1bfa791 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[27] +aad = 436f756e742d3237 +ct = 7150c64214d469ae219e431a7b1247a417c57ba3455d3ab1db419e278764749e01d4e0ccc0655d69193e2db995 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[28] +aad = 436f756e742d3238 +ct = 954be16c9412c55f8e5442a17b7a495a7ad57595b88e39a8b224d1f04730a78e69d5544f71390a5c58253d2d67 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[29] +aad = 436f756e742d3239 +ct = 7f81e1aaa9dae29b32719e09517204de49a0ecaab7edcdd7edffa314337d2ce34be7ab8da8451d5daf483e577d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[30] +aad = 436f756e742d3330 +ct = e886b07add22cfc3559e5f5abd9b55c4b490f7f18d84d7c702ad598f67bfd4093bc07027fb9ee7ffe3a43b4b7a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[31] +aad = 436f756e742d3331 +ct = bb52c993e86c06cc4ace06469195acef9e975a06edf829d3dbe0f5be0034fcfaa0943294d63fd1b27cd01046c8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[32] +aad = 436f756e742d3332 +ct = dee4b7773c03a93fb4fa835e302e995a6f3c5772f717a5f95383e115c239dbb60189ede839ad0048aac28d6e73 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[33] +aad = 436f756e742d3333 +ct = 754461a303cb9ebdd82711c745feb24c4d0a1edf9740c95174e70138d1f1ba30e582b53d26f06ee6d71f85e47c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[34] +aad = 436f756e742d3334 +ct = f057a81c40ad3e72ff7c92e58a2cdf40b13d34383d2f8b4200fbdc38904b17b1dc6b25d1fa6c4ec2d7f4864f64 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[35] +aad = 436f756e742d3335 +ct = 6132e9004df23003d720426f8dc95efe94831e2da0c2e714a9195199694c1966d3390cf944b707b1ee301786ec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[36] +aad = 436f756e742d3336 +ct = c36581ed467b912cf5e602fdbe0b4243b042f5b19aaa23b3ad52bd4e0b0f24f6ec7d36109ee7c7d053589e9f2f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[37] +aad = 436f756e742d3337 +ct = b373f222a8daabfcc127e9f4f595db359d0bb1ac7a40c55a7a7dd22e5628d84372d3931963c57b347afe8bfd20 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[38] +aad = 436f756e742d3338 +ct = 754f54315a5ce55d84d0b4f92b44fc6a6ede8668dca52b374dfedc5d6cf48f6844dc09c5ea0c628f956186c4b2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[39] +aad = 436f756e742d3339 +ct = 0e1a114e38f37bc8fe7f6e9c023c83171c49499575c8a6b5091908cf411672802af082ed5f912d30eb848eaa76 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[40] +aad = 436f756e742d3430 +ct = 557670c484a9abe08aa1b8c16b7eae6eaa7de88ef26f68ee47a8d13d61bbe3f54bb79795556a8456da82be8f5b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[41] +aad = 436f756e742d3431 +ct = 5fce41c624c951c87e57023277c04d9b59515b55589aef25d54d591a8e8a3aa2eaaa4e4c346983d6a9763c2040 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[42] +aad = 436f756e742d3432 +ct = 36cc682909c82a0ebe13dc06dd0db4b4e8166aeadc1dc5f05b2dcb50a177390a7e3a2b318cc13f715ad29d5766 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[43] +aad = 436f756e742d3433 +ct = 0493f72b9ca22469510f23993f402e21eb94e95169ee52bbe9fca40005fd337a98488efe419405bf593e35bd15 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[44] +aad = 436f756e742d3434 +ct = 033ef82bac58fbc38bf938205eb74cccc2979465d1e040371c7e243d13e64cf6ba7c7b499192f1a1e1e7da696c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[45] +aad = 436f756e742d3435 +ct = e2ee0343b9f79e307d25365f3b108cf0ebf33270eb98a8c6df044d7d9aefb0b8581ae6e1111dfab9bf1d7513cb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[46] +aad = 436f756e742d3436 +ct = de280e42b4c9235706be1cb42bf4e4aece2ab4edfa55a17b6f6d3ed358f1d4b57ddac7753bc754410f43cb2932 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[47] +aad = 436f756e742d3437 +ct = 0f02bc6fe2af1f53fe92f8bf56530a073d114940083c4589350829220124d4a56e88109426a9d804b755b43dfb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[48] +aad = 436f756e742d3438 +ct = 8b7544ac963d287502a4f37023e7fd7b8baa1819877c3705202877239c5b488a130c6595c7e2113c10e76b7058 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[49] +aad = 436f756e742d3439 +ct = fa2b3ca7d0071b384c7fa830bc3e8b40c89f82173881a2f16f06a5728cefb866262559f40f834df63054ab192c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[50] +aad = 436f756e742d3530 +ct = 1673414d896d03227cfa0bed2c93fc29403254a52691fb706326f128ee8406f92cde86107a202130bf78c1a93d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[51] +aad = 436f756e742d3531 +ct = 98a2b8988be0b9e74bc42626cf1c2bb3a7269ec373fb38c6780ebe1fff1d4d3ab70da8f149fc8800b2c84523d9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[52] +aad = 436f756e742d3532 +ct = cf6f638130a6a21e43d7b6b6894a51c96a2dae72ca3c1faba6309d0150a9fb42bea2a4ca56c83af96075a23df2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[53] +aad = 436f756e742d3533 +ct = 8cf476a1fb16f06f498d2e3f63fe9e925da66e6cea9c601de1a51a99a63f93eeff625ae2abdc3bbf93c4cc9b9b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[54] +aad = 436f756e742d3534 +ct = 96ec5364196ab100bfe0685ce99a047207d8177880e634aae8a78a8a2a7458a52bfcfe29c59a08743f87a9b864 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[55] +aad = 436f756e742d3535 +ct = f51be7a72cae005a571ab65b8b57e6590c4aa6c7219ff53503044b1fa2831b691ab060cc659ebf3593a34f3d1f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[56] +aad = 436f756e742d3536 +ct = b6554bf53a770e4a9e78381c3a89b3ad43202a8de32fa51353e37962a9327a348dd09ac754c74eae0da4a63fe0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[57] +aad = 436f756e742d3537 +ct = 5e8904ed01007df71370af9ef82349c5a4ac774c64969ae5a5f4379f067a2f92a18df2bfc44bf30f09ee22c513 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[58] +aad = 436f756e742d3538 +ct = 422d307dcb93bc06f20ff1fddf05d4c7e5fd774f55b40c2dc4e824d35201be5944d78a9f273fa34864d3f9f3dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[59] +aad = 436f756e742d3539 +ct = d5fa197c04bafe5669c4aa873ba11d9d05bf62e35c2f64e64ed5595b3eabf99eecc4557d91b85f8738dd1ce87c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[60] +aad = 436f756e742d3630 +ct = 6c2c3ba14d09fdd68f8db39ba45ad94ed318da11baab81cc2cff02c9f9bd1d31465254b8fa091971282b60084a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[61] +aad = 436f756e742d3631 +ct = a3a968e5a3dd39463dfe636aee7dfeafd458c146d53422d4a7738ec988d8bec3de9ed78038a041deb45763ab10 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[62] +aad = 436f756e742d3632 +ct = 1fb4a5fa806b77fbbe3ce10cdc9a8d85bd719a53cab81ac89190207c3fab4b5bb40a74e6d2d62abc37ced12480 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[63] +aad = 436f756e742d3633 +ct = 43f92f114a6c87e70a32baad32b185868cef62e8a70edfe709f7efd016a6d685cc819564a5539536e1c694d984 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[64] +aad = 436f756e742d3634 +ct = 2fcad61503b2481d6476c949506bc24cf987db31a063bfc276c4c4f38d1b3171b88b717fb789a9f8ce68f3565c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[65] +aad = 436f756e742d3635 +ct = 9801524455d33ca0b0f0f819d7550a3249fad3ac8a1a558b72c0adfd2acf43fb5ba717c1418ba2eb3d20ba87cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[66] +aad = 436f756e742d3636 +ct = b658c3d149fbb94270aea88174dccffbb9548ab266ca97fc7fcc7f68442323a64be2fb0d3b4c9be45808342d36 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[67] +aad = 436f756e742d3637 +ct = 911f82eb4b18e8623c632152c73c02f47f51df4b5b47c3c1ce3f37891a395c4de424834d7be0704487be340a8f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[68] +aad = 436f756e742d3638 +ct = 5a86ab48fe6446c31771e6b05ce24d5836f59cd7c8871a4eb3d484cf49c38571f8c99be7d09517febf60931c92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[69] +aad = 436f756e742d3639 +ct = 47cd4e7465422a83deeb899712fb14dbe1733bfe32f56ec44b63bf835745a7bc0f7e16432cccdd52093c6ee79b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[70] +aad = 436f756e742d3730 +ct = 0141a1267c31e0f11d47feaddf1343d0ca00ce39e6b8b20ac8ec1610142ba80ad001b7d06584c82398fd11f0d4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[71] +aad = 436f756e742d3731 +ct = 11e21f6a5c91fc5bbecf84ededa8073424b3525ac9eabcb94c741083c67b52486f953440b705ea74f7d1c0efd8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[72] +aad = 436f756e742d3732 +ct = 1ce3559975034a9dcfe653368cf7ca9cb9a11ad18d5171fa4b58985d949e5bf8629169bcf1d613b8727ad18baf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[73] +aad = 436f756e742d3733 +ct = 0e1209427ac849678325771cb1bba6f805a30c6b389a876b641480c7d7d9e405a2b9d2fa7b5bed7af48737e549 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[74] +aad = 436f756e742d3734 +ct = 44ac63ea2441f0831347ad2cca500b61530bfc21fd61e373e897386ddc08d31a7e598d60fd9e0b3e9d81e42357 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[75] +aad = 436f756e742d3735 +ct = 899e4d2a540575f9720795d1ecbdcfce75c2504fcdd286a66d70500ce80a5fec40a82e7629b9b6cd44f8cf32e6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[76] +aad = 436f756e742d3736 +ct = 186a8956210d989b3b00c7eae09a227c9b10edae34d2029616fd8fdf18cd708ef0ba9070d576cf9770e6a9769b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[77] +aad = 436f756e742d3737 +ct = f054c375786a9eeb58ed632b1028e5b76f27055ae9807ff483671295a55839ccac7c6a848092caa2914a517923 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[78] +aad = 436f756e742d3738 +ct = 8fe98f5b79911ec02a451e5dbb6132a4947832885a7317d6410095e2d4a5acddb0054edd1d3b474945e08112b8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[79] +aad = 436f756e742d3739 +ct = 48b5b9f3bc4f659859a629a50bc54488d795d22c24aa7d6ca0293f8a5202bea83121ea9f4cdb05fb0f8afaec5b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[80] +aad = 436f756e742d3830 +ct = 48238b403ab2718b4eb19ae4ff93544868da01f09c32f7a86a89b102497d93cc912074ce64d03432243dde21af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[81] +aad = 436f756e742d3831 +ct = ea72cb191df2f927a19edfc03650df67169f434d7be7f473e2bfb047218675ddbedc17a66c7eb75b72489f724b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[82] +aad = 436f756e742d3832 +ct = 00c021f18e213364838db5fff8c853b0da8983a1cbe76b49a2106be73bc7f62bed3b1130d21cb9293a70c9ab92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[83] +aad = 436f756e742d3833 +ct = 981c696bfc932768445274693455bf6366b7492ac10fb25c904cd062c8774f04b9fb1c7bb013ea35c9f058ddb5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[84] +aad = 436f756e742d3834 +ct = a2bf39eb69977f497c0bb48b86ef745adac5109b1baac317c173ed8c24abb49c7a9298bed6df89f5f4ab88da95 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[85] +aad = 436f756e742d3835 +ct = df0b6e01311ea310baf2f49a038c5db13493b3bb9f4a32bb0cc87d86e6e2f7ec99e8f9593bca202ac43b280a9a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[86] +aad = 436f756e742d3836 +ct = a13a5d9bbc2ececc2baf62ddd3261b947cb522b78bd316b3e860b9f13d93e3433c6267cb5d146534a9b12e55a8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[87] +aad = 436f756e742d3837 +ct = 3477d12b0e255978b7fd63235eed4694f6d16a86d45e56f79adeda986d2f1a8a88aede64a074604e4b1b05d251 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[88] +aad = 436f756e742d3838 +ct = 2f9b0fe5b65e38c07f25e1cf0a728f22661997e6e426935a992045fe3c6a988b1b7a48ae2d2d3c24d964719300 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[89] +aad = 436f756e742d3839 +ct = 2d7c3b66c5940eb464d8087cb709b999836936d939487ecad2185eec1274d8338e82e9f18044d0b5730a0915a8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[90] +aad = 436f756e742d3930 +ct = 3b43d2386e9068d7966f02ff62cf2be38d59cc1788a437e735c67440a56cd03ca1643880c77f7c4d6afb8eb35f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[91] +aad = 436f756e742d3931 +ct = 7b15faef79708b1a356ad6480086c225d496ca5b0bcec93d4bb437e73f99c3911721b7cda7f3e8a45e756afcbe +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[92] +aad = 436f756e742d3932 +ct = 1decace5cbf1cc2ad160591991537c10937e7f08c42bab2624ce37662d6314c5e00ff8799b28cc3301a4cf9e3d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[93] +aad = 436f756e742d3933 +ct = eee516fa95506868259bf3d340e941d6d8794651f51619d49630a68a2d50b4f3ecb8e03be81eff93cd4d917fcf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[94] +aad = 436f756e742d3934 +ct = 5333774e2e6634463ae3864c46c3c2e93a35e6a54307f7c3da27810d9015c2acbd0006c05f415e9ed33440ce0e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[95] +aad = 436f756e742d3935 +ct = 5e846713ecb89339813e80232c32826c8b45604182c1e7d01400310b96c57e1a1d926d3864bb251c2c3ceb4b3a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[96] +aad = 436f756e742d3936 +ct = c4b219f565e4d9b4fa92e21df665f34bc1b271f6d9ba0d621c7130de531e4c923fc32293c026ec5ed8568a913d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[97] +aad = 436f756e742d3937 +ct = 18e14d7072eaa87dc94ecababc928391fd7fbdaef6d82191d06cff7b04b3fa79a98043b6615eed85a1549e7fd0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[98] +aad = 436f756e742d3938 +ct = 7367357272b713242360fdc9dfddf9504d3e6b67db9174526d7c2f1d8f5cb9ead2bf0fdf0819d0d903296f36c8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[99] +aad = 436f756e742d3939 +ct = d26b0ad0121fb86b53f34a11de4f4cbdcb78feac12b8ca19fa3e7e4ad2e52a5c80629f176245f6ced9a8de195d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[100] +aad = 436f756e742d313030 +ct = 20cb464393cdb97ef69c793c19e642191dd8b6d3b2f59542add2db291aa969f3bf34eed8969de952a43350c325 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[101] +aad = 436f756e742d313031 +ct = 38d1e08e64a2b9e8af0d1ed988243ce49dcdf890fd9d26c7be0587afbb64aef7b9f12694d37de2be6754c7835d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[102] +aad = 436f756e742d313032 +ct = 0fcc7b2fc9928e82c53ea8fa98be6d1c31e3d25b02dee5dfc6490d24a0ba24f7c78ccb045e074c1a15898194dc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[103] +aad = 436f756e742d313033 +ct = 0e261453977cbfb7fca5478b5aee5c48522dc44f22ff68cc06230e6a0b99a0b379b06d44eb5162c5c8c9451612 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[104] +aad = 436f756e742d313034 +ct = 150587697a2b169c56b8abdbe3d8036ed6574c62db1374497eb387f538227f3317dcae1af3d75b7d4eba690d4c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[105] +aad = 436f756e742d313035 +ct = c1dbdfe24103fbb9e900ee4a7640257a34e6f296164a184f7f1a068b3ae3de0862001146c477f0a3364c735b48 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[106] +aad = 436f756e742d313036 +ct = 5912a0723775b7d745c9a2786ebefddbcc3774f2941530adf762b45242d7d59144e2960c2e0d8e9cdd9824d3dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[107] +aad = 436f756e742d313037 +ct = 9e38eb4eab9c42735f76b05f5e4b99a4a0a86c09b06023c5f8d0876027b7b2e431e8e93e3dcbca920b54533adb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[108] +aad = 436f756e742d313038 +ct = bac8cfb86ea68e4b6c4bfe987bca537d117062322208c696cc932bdb5150baaa7e2fe89027f5363b5f4d92de1f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[109] +aad = 436f756e742d313039 +ct = e9637d58acc5a04d36abae4db6f1955212eb78702b4f96720e59ccf461dc25f38ab33eccca9519e2f7154dd7c8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[110] +aad = 436f756e742d313130 +ct = 0d1952b95e37cba38396f8bd616e83441ef3cde2b6adf17716ad953129802efa476161605dbe723a73beef7bc6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[111] +aad = 436f756e742d313131 +ct = da485701db47b70047e12cb6f83a7eb8d40680170930e0b163624802675ee9b08f7a09e533fc0c4de533859c75 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[112] +aad = 436f756e742d313132 +ct = 2a1610dacd49bf2054ac346efbc090edc86099df0de77b02d939d918e9093acd6acd9c0e5a4454fa4274dcbfd5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[113] +aad = 436f756e742d313133 +ct = e2307c1d57cf3b4cdf288460b56ef52239f7ad1c595c1da67c1fabfb334d35bd70dd7a6b40a7c13072892000cb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[114] +aad = 436f756e742d313134 +ct = b0f5828bbb5f0a1d55faddc03cdebd729f57b6f70df40cfce027d266cd4ba3134fb77a8323052bc379f14c6a4c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[115] +aad = 436f756e742d313135 +ct = 305052d4b93ace0eca6a6ca6066021027bdc34371920982c1a8c961a3794e1bed5aa94d838f930d20c1ab5c434 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[116] +aad = 436f756e742d313136 +ct = 2718f4cd244079fd54441f08150770676850866a8d98bf59000b8f3a5e384fbfaee01ca254ac9fa324a518ae4c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[117] +aad = 436f756e742d313137 +ct = d5a3c83afee8332cad4f48c9773e73ab9baac1c53de8ab8e764229fb3caf2050929710f633ed526f8c3a8d2073 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[118] +aad = 436f756e742d313138 +ct = 4d8fb5099c6046e9c0f1fe109d9c90b9cf78339274b47fb9653d5d11c82d18c840f966e9e28f2721a95c9cc11d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[119] +aad = 436f756e742d313139 +ct = 4b84c6f4bffcd4776e198d84ab52bd82581a62b0282e78419148144c89384e35dcdbcfc0cefcac1f98c71407f2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[120] +aad = 436f756e742d313230 +ct = 26f24f06b083b30b15080d65166e66d37fef98c19eeca9a2107a44e7195dbd39fb0bf6f40a9ad3aef75b8fe61d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[121] +aad = 436f756e742d313231 +ct = 36ae4463ff2b6defab19885a03a0dc3f2da7b6553fc2d8279af776eeffb36c3c168ec53ecbbc7d44e592af9177 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[122] +aad = 436f756e742d313232 +ct = 1e6d90b7c8dd0d0629584422ce026b68cb8cc95929b667269a2f7b7171f6eb783cdd0e8bf86b11f92750f623ff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[123] +aad = 436f756e742d313233 +ct = bb5ceecdb74a24aa59143bf4112e770979754de41205a374847286ec7ece719695109d13ecaa37735494902fb1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[124] +aad = 436f756e742d313234 +ct = ed4e9961b54e3ab8de86898c94f4721792a30e68e8a4328b9b556e1ff2c3ca67be1982756b6906f4fd6bc57ef9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[125] +aad = 436f756e742d313235 +ct = 76fe81bf2afcd2c0ce6ccb39d51d28c87eaf7b4cb3f6a93d6d2dc9e1e4746416d93327286ba533aa17c4e26363 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[126] +aad = 436f756e742d313236 +ct = 1e62098a4ea22130b957d0bb16a85dc34d70db47041e2b5b16db21c03d09031ace65d7f430fe55ee575f0a1eda +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[127] +aad = 436f756e742d313237 +ct = 1cfd4a556026b975f8ebfcf021b2a4a879f2c7d096042b36d44cb2f85c928d708111c7b459408e8ecfb6f1add8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[128] +aad = 436f756e742d313238 +ct = 41d0528d981691e4b417d78a509e23bb630c82d8adfc94b2fc7c9d5c18fe98ae689d012a7d377db6d64859f949 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[129] +aad = 436f756e742d313239 +ct = 5e303bcaa39521d3800368da6770bffb8077d231ac20e9f9a472d11adfa23cef5fd18e74fc6a7e44f7ba8396f2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[130] +aad = 436f756e742d313330 +ct = b4cefaf367017302c9a2788f0a874b582a883cfececea59faf4c800dd14fa34c8e1b8e30a63b91add6121b4c6c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[131] +aad = 436f756e742d313331 +ct = 9b570b7edaeab8dde5abdce55cd230e702dd2b6bc8bb5f3fc5492e9722ddb4621cef8b81359c519c9eff41916b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[132] +aad = 436f756e742d313332 +ct = 5c5abf7dca7bd2ada9f03c3e06b532bc42313ed7578fbf6c63a6ef032584bba80095405317ac1bb81b75c4fd49 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[133] +aad = 436f756e742d313333 +ct = 05ed41d918f9a2cc623295a7bf787db3115af7eb68e7b9831c35c229a51b963c2d6acb6054e66d216317a932f6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[134] +aad = 436f756e742d313334 +ct = 9c9f35e7dd1073bbf1574935884f1bd8b2357c2e3685dcd3d703b53a5d618c25820e559bdb151b9d4496e4d392 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[135] +aad = 436f756e742d313335 +ct = bcc289c85b85b8a20527174f98d3a3bd7380a3d7713a8708f595c7564095129f290ff6fdc54e42ffbb73a8a321 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[136] +aad = 436f756e742d313336 +ct = 65cc7eaa4811db54a49590af8ee72e5e1d33693abf9aa6e43a4c735935ff0e76508e15e3c4715ec3b4554196ec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[137] +aad = 436f756e742d313337 +ct = 7b91b36acf5c77a0bdc60fb162c9daa3ad0a99e698fafd8d4b59a47a9154431fda8ea42b83b9240656a221fe95 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[138] +aad = 436f756e742d313338 +ct = a7e22183e539f184374bfe9716c679fc9fcd344c31a4c75d4eff4168bdf73738031dc900ec971f3f74a4db072f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[139] +aad = 436f756e742d313339 +ct = 3ff559a4b001843d4e462c9e1339fe81393391085a852b2d157c1262e01b0897470072dda71ff7d650c2ee7a55 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[140] +aad = 436f756e742d313430 +ct = 5790127d90225cb0f7fecf3eaed8ce14ba7557950bcd59ac802f102c57d1586703fbb8b2c656a08cefc2fc7198 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[141] +aad = 436f756e742d313431 +ct = dbf2ff3e3ead46069374d26086210a08185712ff345cc555d752de237b4b90317a6222e6e6f9bfd6c227ac801f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[142] +aad = 436f756e742d313432 +ct = 3a98d105f63edeeca19676fac7f8998884fdc03efc05dcf33b5b5fa3d77857ef7c33b08945d95d77db5fd2e19f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[143] +aad = 436f756e742d313433 +ct = 7a6cad72d4b6ac9fa33ba2be4d1dd87c8a7a1486bd33137c61bf318f248e46ac53a494325f073eaae4e84e4d66 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[144] +aad = 436f756e742d313434 +ct = 8120ca927f832cc30ec130f5f2ea61adc56d87ada2086474e8a39b7182bf8cf8d20210888269d2ac52f603d307 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[145] +aad = 436f756e742d313435 +ct = 31501680983a7a5e933ee84fac62b7a593807c36f3ba79fb9a6a4c8eea09263cb3bf61dba1e43b33332c12e35e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[146] +aad = 436f756e742d313436 +ct = 5ec3bd53e282477ad24e2019f803315e1071ff20f427c745313012813d6517feb2f8574dea10702c0d55ce102f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[147] +aad = 436f756e742d313437 +ct = 06d7bf8fb48712629c82e21da3be5143c3fdccaddbc61c2283e3da02beb0d4e352b403334ee1078338ba287ac1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[148] +aad = 436f756e742d313438 +ct = 2fc6f0514feeba0df06863676043dd8123a5df627740818d6e1bc673d8a39edbb2d6412162f2f99c773aaba272 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[149] +aad = 436f756e742d313439 +ct = 9a20d1c19cd3fd23e3170a9f7968cd2be736c80a180c512e8c30c75250e52c1e2c6b82772d2c67a2fdce4abed3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[150] +aad = 436f756e742d313530 +ct = d227b1d63eae29a822e3f824560e6303671c5ae9289eaf26b123c391315e182edac7a7f237a29a416287d2d2fc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[151] +aad = 436f756e742d313531 +ct = 7d3eed666457a66d6661ea5fc2186d2b5665ec8e72e6a79918ccd17ec426c88d97d14e67a5607ea227d77670a5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[152] +aad = 436f756e742d313532 +ct = 5046c437777423f4f8e12621d23d36ce883cf256c4a63a2661f9994cb23170618f87d218bd9c91b33d6de38bdd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[153] +aad = 436f756e742d313533 +ct = 804bb98c28d3aa1fdbc7fe1ebba5b12fe6362497f8f8c09b9dcde243172987d69fd42c68f2a437b98ae2b447fb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[154] +aad = 436f756e742d313534 +ct = 4ac65437c03ffce1a76577e44b55b19b562415b99490105afdc931ad74f268307a973ecbf3d61eb35a4241c6af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[155] +aad = 436f756e742d313535 +ct = 626b27971782cf1460b6d4d19bf1d7685a7d5bf8411ab07410e83c260cafa971af3c6627adf06718b8720f8a6a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[156] +aad = 436f756e742d313536 +ct = c4a82cfc13325ac6ffa7f2ea1da775682a7ae82e33ac985beb9957ffa46a1a3cc69bb37121577807e35335b69a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[157] +aad = 436f756e742d313537 +ct = 2d84b348de56ba62fc3aa06abafb2b488fd45509d9042b51fbf4d243e3d8282729c752db2f5c4e99021e1bdb81 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[158] +aad = 436f756e742d313538 +ct = 0f41e70c04ca0ec3b6c661d6226eb24244391ac3a7e4b1563ce606530e0f3b8abeca36ec9969ae79cf296be580 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[159] +aad = 436f756e742d313539 +ct = 65b09f7c5a73d76f6f833481277a83e9508f61e4024984c68a6ad7a6cbb3e5cf616f8dc01b39e82f4705441626 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[160] +aad = 436f756e742d313630 +ct = 6bdb900f76303a845a4d11c0f7d958fbb421c861b6a4880fdabae1e677a927666df03fb358b6ae0c1053be3054 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[161] +aad = 436f756e742d313631 +ct = 388beeee3cd781ab7c083cf1c2ba227c629a25cfdc299d7759f6e89cd93403dfdbf09bbfe195d607ed42da8856 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[162] +aad = 436f756e742d313632 +ct = 39f4ca23857ca85371cd6be70f61bc6387ff2a1a8c3923cae241086b8550e30747f85113aad328d57e0ccdcfb8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[163] +aad = 436f756e742d313633 +ct = e03bcb5bb28f5419e8a2c61c5e188e5e37b2a3930892d94b9bd511e4f4c7409c919ba34aa849a0100302b97a6f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[164] +aad = 436f756e742d313634 +ct = 5ea25e27994e04514122785d6ab1c6b3a46b18feeb7ae04f08fb3bce693e5fe8510d6a24ff5adcd3fa5b693b32 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[165] +aad = 436f756e742d313635 +ct = 369a3a287c187ff09a94926d07340599d2fc01515df7ba632cd5299595624f30ce4360a6df6db1dff1b12a12ed +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[166] +aad = 436f756e742d313636 +ct = a5284959a2c050c2910094cf494a42f4018f1f9359ea40f6acf53aabe4c7f427aecf37539b1ea94af479e5133d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[167] +aad = 436f756e742d313637 +ct = 9b51bbb65631491fe2d49b87d606f1b4c4116c5e60fe1122b133d63b98091b4df6152be1058150e424b8dac605 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[168] +aad = 436f756e742d313638 +ct = 966006e532f970c4233236fef50c05848dc4e14081473cac150b946cb0967751076dc15a8eb2107fe4bf1dbf13 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[169] +aad = 436f756e742d313639 +ct = 96fa22aed346c5d4457153603cfc12843b04c3929ea5ffa458f650d6f6d730e482aeb132da9437ae4b42b0e9a6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[170] +aad = 436f756e742d313730 +ct = 598903ba5f42a43c6fa079352195cd7a77c8f9254026e1f1f355d0530778baf3ac8308810c4a6082be837b159b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[171] +aad = 436f756e742d313731 +ct = 6b07f656c3d6503e72a7c8cad6f64acf3da4b9f29347648c607a2b1277c769b86e559d58ced9eab1d3ab84fdd9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[172] +aad = 436f756e742d313732 +ct = 4fa818fa43135e449c77d763b6d2e25eb872c6c1fea07c75a649449383c12607a6cef659c05792fe805f0c09ce +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[173] +aad = 436f756e742d313733 +ct = 7540fca217cbde4a5f52244d09bfc282d4c474eca6e30f8a190f2bb29831088ee56df26238e59821b29d06caae +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[174] +aad = 436f756e742d313734 +ct = c0af3a7d3844014484a3ad886a444d13ea8d460601452832b4a1e48a4cf145785ea23ae2516e0787a387682993 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[175] +aad = 436f756e742d313735 +ct = b2b8f6e0eb74d9c1463c33524e395311e5846454b1de337b49e03b15bf791c4c06a5a56f2c058f80b4f5e8a29e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[176] +aad = 436f756e742d313736 +ct = 4c3faaa98e9daa0fdccd8c20eb31a687325c6d023e11ff44ecabcdde68899092d23bd354bd3078aa9138c78894 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[177] +aad = 436f756e742d313737 +ct = 2c4277398005527c92e40b7f32ca4c2b5e1a5b1d36c019ae78be57c4bfa582cb6db11ccd1ef40aa647aedfb80f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[178] +aad = 436f756e742d313738 +ct = 1eb31453e0bef86757bfb23688fb8f547b9ec6a3d75db974fab5233488ec26fc2e5d061f660412a2262f50bdf4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[179] +aad = 436f756e742d313739 +ct = 514e0ac6534bc0a89cefbbf34f8214ca35dc440b47642226d1866b88a6653641a9f1630e2c2b238bdd18d36667 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[180] +aad = 436f756e742d313830 +ct = 2769941a05911f56d677b0f04f37484bba94fa7f62a900a88d54fc1f988c7f013b558ef3c6d77ea5ecd522e4d9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[181] +aad = 436f756e742d313831 +ct = 7e6a6dedf7310ae27e4356893ae4d2be9b57c639f06b96744c5058f650a525de3b23f6d5e24977061b7ada261a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[182] +aad = 436f756e742d313832 +ct = 9dba758de21e2ab6a01a82fe8bfceee3bb3479ebb0e09499914af9ecadaa6690bdae28aa23ae84bbe42f2952e4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[183] +aad = 436f756e742d313833 +ct = c4c7b5ac97933c962ba4441c183e2ee5a3c48ac5c87271167262495b7b6e47679c2e018f62b5557f5cd66a57df +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[184] +aad = 436f756e742d313834 +ct = d4b193226b76d73837e608fe63651ced76726028b7a12ceaf1a6c81bfeb8830a2b695b5a559bfa7aa56276a935 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[185] +aad = 436f756e742d313835 +ct = 13d48bb4269622b67d5bf20da4caeecbf748e98e6130a519ebb9b8c425615f7fcc533b18b64ba19b689dd1770b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[186] +aad = 436f756e742d313836 +ct = 97d89483b449271cf6c6c729db7c8d6396f491c8dfbad2faefa64197f97b2f6ae04d774da85f7c6981b51f17f1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[187] +aad = 436f756e742d313837 +ct = 47b305d4848d22ab3f7f2763cb2a02d1f4efc70af5c51e551a029478ead7c38812614872f750a05df8764fe925 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[188] +aad = 436f756e742d313838 +ct = 634ad761358bc697b286fd4a8398a01db0c979c04dc04725cc043aa1a609c1a099c16430615be257dbc36ec7dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[189] +aad = 436f756e742d313839 +ct = 88ce58ed2241ae9d1510d08057f968b314c14ed5fecb453642af612690e49b6e9d43b94d10bcb811abdfaa0df0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[190] +aad = 436f756e742d313930 +ct = df350a67fea8246638a8f8037854422abef0ce87a3e108ff9daf7ed32e6c48b662a4f85b21f5c6450d1b59729a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[191] +aad = 436f756e742d313931 +ct = 3240f3d12664d2564d9e36f7fe6eff6832a17f36ec43535feeeb063fd3a93ea7e5213545b9bcc16475d00e74c5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[192] +aad = 436f756e742d313932 +ct = 5848649005fb4567e0e899de31477173ac16a7088cd0219e777d02debf1c0eafb0745472002cfc078fa70b1043 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[193] +aad = 436f756e742d313933 +ct = 225695d095d659653562570f510ff55d561170dda65ec259cf50e36a4170d03fb3fa0b2079a6c2b6792f070ca3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[194] +aad = 436f756e742d313934 +ct = 7ab79b3b59b2fe3fb23738f275e40b6bc37ed5c0d423da12f01e5d7b73ff42e3ba0dda47ccb71a17334997e8b7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[195] +aad = 436f756e742d313935 +ct = 674ee77f888c8d4caf488b4177aad01667f8bee30ef1c92b7b48faa002297167baf22bdc2dd9308fad464d6713 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[196] +aad = 436f756e742d313936 +ct = 8b1a1ca3345adc176fdde22eb0ec8b7b265db15df7903ce07cf826e040e1a576e829f48ae9d325d40fc57cbd29 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[197] +aad = 436f756e742d313937 +ct = fb7c6f9f925c6fcea3c0c5964edf5fa582ba1547742ac28ea881e905849c292809a0c753b4b75075c96f5c1ea7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[198] +aad = 436f756e742d313938 +ct = 84d9a86a07bb27313d8fb22d93b816df673e90774dcbe86a41bcce6a4075c05666dab044b01376c9d7e02b99d1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[199] +aad = 436f756e742d313939 +ct = 6fa05e5c7900e7316c728836e302b725eb9da89ef5db5b14fe7b3149c310ae95113f81f3ff84123f8dbe231c07 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[200] +aad = 436f756e742d323030 +ct = 1d1bedf36342020112baa3bf62017d173b23157cec92276633ecc551db13483b255d7e3f76d262679715f3c12d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[201] +aad = 436f756e742d323031 +ct = 9fbf4c01708e37e378ddd2d5ac2cd789b23a04faabf2f6ab94ea707c182670bada0abb735d2b4da4930a3d9fc8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[202] +aad = 436f756e742d323032 +ct = d0d72d4f87111ab278ca90e3936abf3dd578e43ad827502502a46d90f86d48502b79074814b07245f0395c22c0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[203] +aad = 436f756e742d323033 +ct = cbd2d8c711e4fa974742d03264b3971dfbc5706b1c6662cd8f0bcd36bed8582dff0b5c83b00a7f02851d173ce6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[204] +aad = 436f756e742d323034 +ct = 4ca15f793120c8bf5cefdd71a84f18ad183c8fbe5242e6cb7b45776d9da4546c93a25334835834725337023fda +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[205] +aad = 436f756e742d323035 +ct = 9137e9818afc996dc0b0e09545a99f721ae1f2fa351d4eec0cddd62d61575c2a7fec1b14d6d55790a6f4b0b947 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[206] +aad = 436f756e742d323036 +ct = 05b1034c79f05f14994246a6a643899704651f5b1756d89409f66c996aaf56112785e644f7542e0040e1f4159f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[207] +aad = 436f756e742d323037 +ct = 96b7c0dce2059ccc371f5f6f06999a483c66b0061d1e7f83a3343aaf829894814b22d5197861414db179c52154 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[208] +aad = 436f756e742d323038 +ct = e4f83e35d42321c57acbcd5d6e6dca9bac75fe1781742b5ab11387243566cf9337cf59c2274852f1ea63e77ef4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[209] +aad = 436f756e742d323039 +ct = 0f0db823a16fcb0f0c1fd862514b5857fc54b05f1c4deeba2ea21816ad6b6b63983c8f39b74cc40ed8fa605fd0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[210] +aad = 436f756e742d323130 +ct = a03d812d7c48c1e9c275608a66a06e558285d4046aa7111119375266e4328925e140ea1c6952c08de27433695b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[211] +aad = 436f756e742d323131 +ct = 42bb25497e2af0f4aa59152a0b60ce1b54cdbc2754a681d734d6fee05a105fbb54427157a63e5f500af8551ddb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[212] +aad = 436f756e742d323132 +ct = c0e7b90d8c2eec4a9d12925c2e862e5774a46d5b6b5f8ba19f0af5891df9dc2bf902459f3a775a90e1c894c825 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[213] +aad = 436f756e742d323133 +ct = 0cb8ff2ee045c5fea3058a5f9d6c6b28176edfc8bca922592cbdb79d32fadac7357017472cc61ddc2b3f9524c4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[214] +aad = 436f756e742d323134 +ct = c37df0757efe3b346d6cb75fee9249fa78afdb1a7b83ea961f9c8681639d14a0066a5875819254bea036d2bfb2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[215] +aad = 436f756e742d323135 +ct = 8d4f80b5f835e12165e0f01af36bc97774c7e6acd29a70f4bd1b99c259b46bcb23f9acce3243900af05be402b9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[216] +aad = 436f756e742d323136 +ct = 870b7446a6d44fcc6140815897032d3a4f460d5d3d930bfceb99ec259293718ea4d93844b30a8da4605461e8c4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[217] +aad = 436f756e742d323137 +ct = f964f0294ffd1c4a2cb01467cb5fc0c939afc69140430856d37bb43d921beba59b1057b4c7ea6831d82de4be77 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[218] +aad = 436f756e742d323138 +ct = ca6b00e550a23aa694e6d55ba3d2ba9968da38c6b6d59ad10c4a0455e3a401a15e32691d6889e35e9cbb19dc6a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[219] +aad = 436f756e742d323139 +ct = 578c912cae3dc186ba3d2c2d3c50486d6d43e0214f23dc729d2dcaf8875b8853e58788d7f9a25569a0b4fd60c6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[220] +aad = 436f756e742d323230 +ct = e0c2496a2de8dc3481188bb14756894cc915dac114fc2abf9cf538cea0493525d43ae36cc530c151f2d64871bc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[221] +aad = 436f756e742d323231 +ct = ac0b22b4be57bb6bcbefeb348cb37a8cd7c8a8d496f64166ee53fae3e9f5f68c186494bb86a937e7e217002e8e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[222] +aad = 436f756e742d323232 +ct = b550c04e12a36932b22cc535d19087390ae6d0f0e56caff919707c6364f612ca83ae826f7679564d5f1de2e82b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[223] +aad = 436f756e742d323233 +ct = a26a6f5968a83df2fbacd8e54bbb844b9127c77bee7ba50e6fc7024b536bb4f3b5996c34952193c2141105b6ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[224] +aad = 436f756e742d323234 +ct = 81d10682fbb15e5685865391a49f7b6e43c67d31b09581fac78cc529726eb26a34dbe1bfb77748cf5240b76981 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[225] +aad = 436f756e742d323235 +ct = a0ca2b72bba86f0e3eb79a01c88df12d4589b4e0df3ec5a854e3a23627b8f2f2a49ebe054437a731a78d17ee4a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[226] +aad = 436f756e742d323236 +ct = 927c9fabf3d620a98a8691c5d4f6e0922ddbdb03a1db7496f5e020e0b46f9234c5f930c15029c1b733aab67041 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[227] +aad = 436f756e742d323237 +ct = e7e76452710dbe7910dd30b60d3583486c354bc28a5d135d183f0d9913c6142071d2d4ed626cfe98fcbdc34737 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[228] +aad = 436f756e742d323238 +ct = d1543ed54c7e130d07046610590de4d68a1a6bc4ce400c68bf041b805ed3f5268f44b9ebbeb1a32a1dfd5028cb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[229] +aad = 436f756e742d323239 +ct = fe417d0bc751bbd2098e7806e8cef20b6c23e59e7cddbe6b656eb132644bbabea3feb2ce46d506e74abddaa815 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[230] +aad = 436f756e742d323330 +ct = c723e78ef1a08bc759c6a82763e95d57fc7f3c49c34763286ade6c63a6b306dc732a5849259cbdcf7dbce53c0d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[231] +aad = 436f756e742d323331 +ct = 0529dd391c6de6078c42c2776d815f93aa1cb5536fe12fbf899f486211012c1b0383c202c0455d2e32d50ccfd3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[232] +aad = 436f756e742d323332 +ct = 0b0864095b50904d9c540edaa8f2fc9027c6e49decdf2716b5b60d16a9b8d88fd76b018c074fad56c323e185f7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[233] +aad = 436f756e742d323333 +ct = 8dfbe825713d5df87d656df66823dbe5267d38ea38f26fd5bfd1f4f7527cf88999ee6c3212231145868cc5717b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[234] +aad = 436f756e742d323334 +ct = a291bb3b7673741343831ee12226295219c75cf309345011df2ebc8dc7dc976a4925cfbabe43bf9ce36da15ff6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[235] +aad = 436f756e742d323335 +ct = c7f06e926b3576cd6c8d47540529cc8a8f6ec9e00e7ca4d524a9e3e150de388dd0668cc81ffea01c85b661b8d1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[236] +aad = 436f756e742d323336 +ct = 59862f4490f9ba2dec160b81484bd4881d62950383009fd7680145da48a7442985291b01d7552441c4d7bcb700 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[237] +aad = 436f756e742d323337 +ct = c29d76482e187f2206f6927e95179c20e876d6f7982bb8002d065f37fdc46a73e971b2b2915d199a65d2696c1f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[238] +aad = 436f756e742d323338 +ct = 1b49fb7b4f28baba5b16e0287bb762e9a8ba03e600551922beb9f465463289130a48fb7259c227f2c7ac83c373 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[239] +aad = 436f756e742d323339 +ct = e71a0c75333fb95dd4f2ac02b15bfd2c4dea782caa78ffbe553cd0c0c708397a0fca98e4979afd358722c4bcb0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[240] +aad = 436f756e742d323430 +ct = 51f0d56e443ec3e9f78a9621e0e3f3b6d76372764d7b646a324a03b076821d04035ccb1b75e637cd304102c4d6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[241] +aad = 436f756e742d323431 +ct = c94b60acc216299a15937ee6a4e27ba3a479b39c5b3bb12b49274f55434423790833913f907ed64ca666c77036 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[242] +aad = 436f756e742d323432 +ct = 0bf5ce64d627ea43b996a0883c02704616457f0171069952e6fc3d4c12d038b97ff2114630268de7cd56711d4b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[243] +aad = 436f756e742d323433 +ct = ef7ea9656cd4041e24440da0e72b40f94a021545c7d031d462fa9ef214eec7dc98ee03de9edab8b7c736ffa5da +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[244] +aad = 436f756e742d323434 +ct = b2ef51d8d2e7cfdf3499db7573ac601a125d601834b893606ebcf76071a111085ead2ab1e460831f81244f0048 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[245] +aad = 436f756e742d323435 +ct = dba09d466f62f4131ea00d7df748edd6d06225de010e0b280675eef09b263752f69c568a51e315deac275558eb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[246] +aad = 436f756e742d323436 +ct = 54a7dd45bbbaf5cccafe27126b9be9aa772b5f8845fdfce20bb25e46089f1eb544d75e64a1d952d6f6fb91c451 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[247] +aad = 436f756e742d323437 +ct = 1145da26f65493481f0c72f721ab23892d02cde0cb88644cc315a49c9388a0c5c377cd74781b07792ae70623a0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[248] +aad = 436f756e742d323438 +ct = cb18762d59d61b1be986f7433cba34586f2ba519fc9b77f605640a9c81850279d1a58cbc58bfb0eb6f356bd3bc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[249] +aad = 436f756e742d323439 +ct = a958b5306f2ed9359827a38aea0902731a20c9f01bba503695b28dc67ecb56a20a047de565a9212d595b41f7cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[250] +aad = 436f756e742d323530 +ct = df9f6b77c274684b9506b604be1790e59f3fc7ef7d285125cd41299125051f0b321a76252f9574d50807dbc4d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[251] +aad = 436f756e742d323531 +ct = 6cdda328174fbe70265ec8714e044c4ce2d82f57a95d84aecc0fb5740d9ab58ef706277bcf4e10df3e6cbd3fec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[252] +aad = 436f756e742d323532 +ct = 865501a8144d0dbeaebe1cce36b015e92ae52efae2cf4cceae1b92dae616cc8536c86c0b8357fff32d3e7ed344 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[253] +aad = 436f756e742d323533 +ct = f9b5a0e1d43a4e2b82a8e1a7903e656812c686bce240ca6bee10c6c40f6daf84159b906dd52e0aa630f8bc7d7c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[254] +aad = 436f756e742d323534 +ct = f5e00cad4a903084b7f33dbb0a0f6edd488809046fc3b8d5958d560a1e1f143a6144f3a32c7c371091043d4908 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[255] +aad = 436f756e742d323535 +ct = 2bcdb6aa31cf9b85855aa22c18ee7feb783b26d5f8fae4554a409845810bdac0fc06bdce6c60a37efb45a106eb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[256] +aad = 436f756e742d323536 +ct = fcc4c798b73d45d4a241f4d05886befed63b8bdf0252454072c9f6170f6e262f2738cf2ea290053b2181ad46d6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# exports[0] +exporter_context = +L = 32 +exported_value = 7a4c2b89e1909fb0e3ca42d5040f4c2d8346dc0643d787b8474e804f8f72798e +# exports[1] +exporter_context = 00 +L = 32 +exported_value = 3ca0e7e10b601a32edd2f91c49bac766892c52bde2df01a6126320c6e6eb8af1 +# exports[2] +exporter_context = 54657374436f6e74657874 +L = 32 +exported_value = 76c6b4f404990ae362be3efe0d60d9669d87017f9dfe33b8c2ed9fd31d295182 + +mode = 2 +kem_id = 16 +kdf_id = 1 +aead_id = 2 +info = 4f6465206f6e2061204772656369616e2055726e +skRm = d9f10996a02cd6c9dbda1d1f225f18f781ea3c893b8c2a6cb2e266e59f3cd9a9 +skEm = 7a6cb29fab4e249d1796f95645288a6504d2167c7ff463bc447ab6022462af42 +pkRm = 04cd38ef80923e26f157e06c9887f80177c97e1005a41104127271237f946df22eda13d40801bce6184f1a631c44b0807a1a5e8d039975ed0f6079fcbd2dfe6652 +pkEm = 04a7aeac79fda402674ef247c12d6f5fdfd21498d896b67ff04ec181382d4516b7662be32b4a2ae817c2d57104ecb6fcaa527438939810612d1b3d0af36ffc66ce +ikmE = d6c49e442aad90bcc1bc0d166e5c4d3df845c803ba08b8a4d891af2eeae4f97e +ikmR = 3c56756948f1c27aed3eb27a923c891dc073eccf94bb6c1b64a8bfaa95f1f8f7 +pkSm = 04ece9b48cc98ee03ba742fe1218a3fbec960cc34b6e1defdcd3285276f39028e95b90f9526607565888766a1101f429dc3ec87364b5c8c613f0a081881950427f +skSm = 6e7b14befe49443dc501def1cc2f0f293d9c5cfa045a23e9a2e0e7703b42705d +# encryptions[0] +aad = 436f756e742d30 +ct = 59b9890aabf94c1d502c39d8d356989ab0880ed43e984255db7b32a8d7b0ad5beba799a4ec326a0ddca3dd5e5d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[1] +aad = 436f756e742d31 +ct = 0af0da6775648ef8311c9267819d46ac3b8453d1e2bd7332ed49257527c7f789009ea2d3e80d61218d40d06755 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[2] +aad = 436f756e742d32 +ct = 8cd5bcf23b4f26a96f8faa323f336f5fd46837c15f405b47300a4de88a82d087bf3b7129ea9a53154586c960a2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[3] +aad = 436f756e742d33 +ct = 99b5b19e549bad1e83419e0e9cbc2ecdad7ab27cc96c9bfab5200e223070f1ca6f52587c5cf25d15501cf82e73 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[4] +aad = 436f756e742d34 +ct = c475dd501f14a9834952e138d16be954b8f1104e0709213e55c2a02f201eba4ca3156b65401bf81d5a8e97461c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[5] +aad = 436f756e742d35 +ct = e9fe10b329f5ab0a06c2b2d05a0efea24eb4ef37b5634858be9a3101c1edc0ad0fa98df2222ccce0424e1276f7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[6] +aad = 436f756e742d36 +ct = d9ab153ccafd6506672f4172db5e1558a28210f1ee7b07eddefd87a5604f89ffdbe769285e82a259b96673d558 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[7] +aad = 436f756e742d37 +ct = c27393f90f079deeed5726cac2292b1916b0ea044060b6fd673973b10784fd94753803d9b155487f80ed134551 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[8] +aad = 436f756e742d38 +ct = a9e74c2ed7ee3880a37b419bf87189989dde63045b57a1f49438639a49a499a3de11d2365806c18f1860bd03d8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[9] +aad = 436f756e742d39 +ct = abcfc4606a79ac117bbd2dc8485026705ae2d42530f586e458559efb97fff43170dfe8c0373c228bb8c7be5391 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[10] +aad = 436f756e742d3130 +ct = c9afd76feebfb8ab9346b2f03d469cc86c4150cd664b6ffe9e07ef006e866516e23e8e0ddea3832b7f8769b242 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[11] +aad = 436f756e742d3131 +ct = 62c1e735efb638ffce2914918ac738dc0732cbfd5b511cfd4d6cb5232566e9ef18b6b337400cd93dfbdd246efa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[12] +aad = 436f756e742d3132 +ct = f60e951ba2555ae3223fc92346d452fbe5fdcea90a9d0d2bdc9db17d14d946f46565f7f16246256de5dede975c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[13] +aad = 436f756e742d3133 +ct = 7413fb259b29ddebf23171c945c6162aa435ee62ad47e4814678facead53987619da5ff534c5f50a33df23f3c9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[14] +aad = 436f756e742d3134 +ct = e5e838c2b4ee873c3f0aaf79df7576ee1e6e9b13f4d2bdc908fd6df9468c05a3f197ffa8ac7080e6dfd8ae7fef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[15] +aad = 436f756e742d3135 +ct = c92b6fe0c5cc09700bdbc841935213bb7ad59c98d4aeeb89ac4152cf2f3b9273033977e1c27d7d58100a3da369 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[16] +aad = 436f756e742d3136 +ct = 7e9a775ffc531f632d1e293680097ca9b6f5be0b457a279651f0096e20a8a3d63c0768e8e8fe0949de8358cce7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[17] +aad = 436f756e742d3137 +ct = f2805e74b554d26066fc0db9c1b4cca31452a5fbe5caafcef389e466b12da51f6ffac2008662c4b1c204d57e68 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[18] +aad = 436f756e742d3138 +ct = 9fabcbdd1a2d07234be7e37f23b85e76d0b27915889b429bf401feec9f8fc90ba93819ae10df4c17ebc0bfe979 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[19] +aad = 436f756e742d3139 +ct = 4b4446f6d8f4c17b51c03ec027a781ef75fd65ede67927bb5eef32314c60901bb0253fe7e2704314659f44ffd6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[20] +aad = 436f756e742d3230 +ct = e0f15c3e942cfee52e10fdfcafb40b92bce8a67ca2c94ca54c012685c1283310830ddc309e1de1ea85b30af310 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[21] +aad = 436f756e742d3231 +ct = 7c61942eb224129c90c1b8cf552f2dc1224deddbbb74f325e6f180f8480a35eb5de180da2ae58cf7b1f560d351 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[22] +aad = 436f756e742d3232 +ct = dc6d87f70f16de0d16e27cb093f9cdc68346cef023fc7fc1eb9296e4050a498b8e0f264ca52017b440e136fd4f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[23] +aad = 436f756e742d3233 +ct = ac39ed7faa8844ea7be25b352978139a1dafc203c6b6949737ef0c56d334971909ec9778f4b3593cb274fe1a4b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[24] +aad = 436f756e742d3234 +ct = eaaed2bc430ed7fac24abe0e59c7f76c00226691cd1223d0e8032afd96faa523189e267e3c4ed3809e2106b865 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[25] +aad = 436f756e742d3235 +ct = 0ed4ba609a0f718e0fad7869c762c34f768d2090a09be2beec86cd5c1eb3528bd3f427f708ee52e828f8183b62 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[26] +aad = 436f756e742d3236 +ct = 99ad34d57cd1e7dea9f517546ad9919ad9eb2b68ae36ad3ddf4d3427fc536cf58d6d4a02c19036e135c8ee3464 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[27] +aad = 436f756e742d3237 +ct = 1df7a3087dd94c788a992e23764c49ffeb069eb8ee1ae1a20f7e215ad9891d6f123416afc607844e59eb5a970c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[28] +aad = 436f756e742d3238 +ct = 3bfbc6b167c04452de5dd5ca89fa1db9f089a1b5e0f020ebe4d96e4e47edfe49a8f6712516cf029d3de864e38d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[29] +aad = 436f756e742d3239 +ct = 4c3b38a0dc4eb15a0f4f7b3e6569a2940695a3b29a23d048a8ea40f1ad9d1f91633008bbeb2c8beb2803ed94cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[30] +aad = 436f756e742d3330 +ct = cd97da637cd0f6eb84fd408fdd7464f6423d87958812924725c9f3e2bfda6edb58ea1a18dc87b7395b90a8df6f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[31] +aad = 436f756e742d3331 +ct = a7e9210cc78c0e7db4a7b99358e32729503f7847b8e58bccc4351c29204f90e3361a34dbca2b6e28f4265c914d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[32] +aad = 436f756e742d3332 +ct = a98a6ffc89f553fdddfd69957ab6ccc8ba87ca560bb1d256c2c6ee6659f6045d1deb363098900692fa3daa05c6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[33] +aad = 436f756e742d3333 +ct = 1a8773066558667b6bd5e897b94b6b66f62fcde55894dcdd95b88293c08a8d114afab2fe90b40670c52bbb3fc1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[34] +aad = 436f756e742d3334 +ct = 0eb35de5671a17f3fb76ca16f1e19a3729ee4636924a092637334fb58c7099f05189a28e9082f6c673e69e44c5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[35] +aad = 436f756e742d3335 +ct = 7df13cb69d425deaae100d56c6f7280c2cdc17145da3d75fc4c94e2d16fca0863abafe7d4e4530cae36bd9e07f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[36] +aad = 436f756e742d3336 +ct = cc9890779b40676bbc3bd29f755fc4daeac8134cb1d74a9313fa57946c32b24d1e9593722825dce7797cd72766 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[37] +aad = 436f756e742d3337 +ct = 7ef833c9ec74ba23e62f33eeb707ab3f6bbf15f9fe3496decf0798a47f887e3e94893669fcfaf0d6931f3be35f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[38] +aad = 436f756e742d3338 +ct = f1b263dffe7ca8e975895379aa4c011713fc2a5d58bb39b9984aea15bd34da51853624b9e2a9629693420497bc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[39] +aad = 436f756e742d3339 +ct = c83daabb56db2cf652aeaf7428593f443b831add508b09a1a774a4211e580b1f7e7005d81d947c565d089772df +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[40] +aad = 436f756e742d3430 +ct = 015f61763e4cb1c2f534248ea2572fd57de6a988e785e936bdbfe7d9c3a85df6c0c916ced58f720e0fd5ae6dd5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[41] +aad = 436f756e742d3431 +ct = 2d9213d71a67a13b7aa20e09e18add767d641cbff3ab4a2b2399ec02597d75bc9dc4ce6830925be0ca25e0a0b0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[42] +aad = 436f756e742d3432 +ct = 6e33df266859881e8ef857bc8e5c9b213fae79c1e1489bad050cf9827741986636f83727bce369ebcba69e5867 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[43] +aad = 436f756e742d3433 +ct = 05ad6da8382f8a2e17495913967e4cb3aeec1e8e7ccb75000695a2ac568ebb6761fd936e4a7d62dea7a9e7c252 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[44] +aad = 436f756e742d3434 +ct = 2c05db7a6b5238967ff8875465adcedd5e30a9cac152290ce495b0cb622bdf33fc378b2615fc2a6a0afd77cb96 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[45] +aad = 436f756e742d3435 +ct = 396ccd2e281f8620fc72b7439ea629b470f4ad8fd3506fcbc93f6bd569145ee6ae79b5387f5768b92d89665302 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[46] +aad = 436f756e742d3436 +ct = 5293f7fcfd4980aebfc9bfd7014e95268615671ce3936c6ef2b3a216415ce754dbb58f6b380747c1ac1570f9e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[47] +aad = 436f756e742d3437 +ct = e26dbf773b736a741aba1840d913a049ab8294023304c54df34dd7ce799f6ad6d40eae478caf4ecc063c844575 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[48] +aad = 436f756e742d3438 +ct = 3685edfa9c146ca2f325337104bc6671a4df86eaceb088a9fbc149e860b122518417fde30f1f2f6b540a712462 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[49] +aad = 436f756e742d3439 +ct = b96701f686abca63e9b1c40f9e61939b622755c75e7f1a54e50817092b0795f6fe013db997ce5ad595960c59be +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[50] +aad = 436f756e742d3530 +ct = 1bccf49960d4674ce076f7b9e94573377a344d1158e9d5b2ad40419ccb3f37c97258b652b64b06e1c3d9e2f8cf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[51] +aad = 436f756e742d3531 +ct = ef35e4f55222b5a0b8faf3e13769a76370f03f17a694fa69f2d609f2c344f6ee3d85937ee055f104c62d65aeb7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[52] +aad = 436f756e742d3532 +ct = 4a46cc7510b45f38bdb363c6e48ec7ff19bd3e9b9bb113808da891dee6fc4cf6dd21af91ddddaff06c765d107c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[53] +aad = 436f756e742d3533 +ct = a83b1a798bdc315a905b18cd7a4febd9075b282b94ef1b75f428193a159d7820906394a5fe638cd51af9626e4f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[54] +aad = 436f756e742d3534 +ct = 2ffe6d20ce2762229faa8eaed3fe3b6c71cb7d5f8a6a0c8f7a5832d1ed64473e813e15d821463d988804956568 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[55] +aad = 436f756e742d3535 +ct = d028a86e8723a366f1b76d6f984fc09e44a9541288350c89c8a91c7b6bb132d0c973e1aafb671979958bc27a86 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[56] +aad = 436f756e742d3536 +ct = 87a56fb91bfcfd95f7d28a9ee5cdf2ebd2349c93835af18a76105c4e5841778f4f22f5b0b305f9fe3a9e995693 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[57] +aad = 436f756e742d3537 +ct = 04bf810cbb8a65881aa851d7f58fac3f257b02503b5d518ae94d73efece661bd412ebe8535071058bc325cf3b8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[58] +aad = 436f756e742d3538 +ct = 1542332b5b7ac8fc1e96f9d3d158259cee1f6c99277efa4e347ab2a9cba72c54a354b9335d1cfd958490779920 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[59] +aad = 436f756e742d3539 +ct = 32daf19a8e5d39612d0ac27e81032b57fa978a551af5bae60f93f313b2a1e20aa136d1fa6ad1ace7b73ee04e62 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[60] +aad = 436f756e742d3630 +ct = c26ceb072dea305cd6d453aae7953aad4b82216d938714358b5a7d73fb22446a163b02e7e7c3e5e7ea213c8cce +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[61] +aad = 436f756e742d3631 +ct = e91fbeebe48fd78b59bd91da1aed255235c364b6533ac48fd8a2085e3988845abbd5b1736969cd33e6d96a0ae8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[62] +aad = 436f756e742d3632 +ct = 4c2715a0530df505ea4644641f4b3ec4c974bedcfbc1cc1d56d0d56f08effe0200b481af53ef300ed83328a0ae +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[63] +aad = 436f756e742d3633 +ct = bd25326af16b847485946b927e3cc8055beeeb63d164376c0adc00ae58cabc0186bf795aadea67d3700360f06e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[64] +aad = 436f756e742d3634 +ct = f4a8e28d0817586e0bf335abdac031ee9f0f3531eef440a59200d80f648a555f7e528bb779e7cddc3931b9b60b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[65] +aad = 436f756e742d3635 +ct = fff1859bfd036d445a270b6f2f97cc0c7c126ce6b5ad958b28530a3a8787dd0995a018dd66e05d5dbf9831155e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[66] +aad = 436f756e742d3636 +ct = adaca9638550a254e87b4183f992b88ff0591e9741f38796696ed8b7a3812f7556b684fa7348f0c9a3b8116069 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[67] +aad = 436f756e742d3637 +ct = cffb3b43eb582d7aa0d5ed296f61df6b0e6daeb69f068cdefc5d65ee463ad84bcb5b78f54485b6ebcb149af12d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[68] +aad = 436f756e742d3638 +ct = 2f656279ae9b9f4f7f2ccadc5d2d7a78fd71c5b104bedec6e5b62c28911e9056cb88670a61a8fed2be3753a1d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[69] +aad = 436f756e742d3639 +ct = ebe1ef40416fd7ca9dc64545aff7ede16cb48e41dad174f92e254f705a35a7556e24423744e1d15a3f89076a4e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[70] +aad = 436f756e742d3730 +ct = 3f147801e17053e9ba56820d1c0bca3454554665ff4c7f528d12b7a9598aa6c18718f3e03c1ff6337668583b2d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[71] +aad = 436f756e742d3731 +ct = d00e8a44b2c6da733f916cb390889f8f459a1dcc98939a71534405b9cdd537afcae909a2a452c037246a075266 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[72] +aad = 436f756e742d3732 +ct = 31cceb720265a61b5884dc9792ea1c178b2c6f7cb82fb69029127738111404d130fd15a15f5e9b58a5c5420de6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[73] +aad = 436f756e742d3733 +ct = 5b54870e40fb0c2b5151c9b66ffcb59dcc195d94ccc90b7b97f8fbd5fdbec1bd151b2863808cb733398d42b9a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[74] +aad = 436f756e742d3734 +ct = b6d860c470cffac38cdce59ab2e006af3cfe73893f950a655759dfd15ad83d0cac7363e12d784dccb815da76f3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[75] +aad = 436f756e742d3735 +ct = 1de5e17beb9658cb6c937f03f134c7f3057d7def2441ee897f53812f61fc973f1d3f1d965bcacc81104a1ee037 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[76] +aad = 436f756e742d3736 +ct = f2f22852003a8c69c1b2e17d42b4ee47183ded64536a689b981d5c45ae0d6efa7f9b4fbc3598b8a8202e087f98 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[77] +aad = 436f756e742d3737 +ct = 2e029e11d7bc7e17bbf60986bff61bce58e738e3cbcbbbc755fe4c588b0945e24098beed96108bbba2064c60c6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[78] +aad = 436f756e742d3738 +ct = 4030f283855f7c3e31b1f9bd203ac2e0df2fb4c210897eb916eeedd27299bf6128b6a43d43e6933fb9c94aba57 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[79] +aad = 436f756e742d3739 +ct = bb3a869f4d9f2ca59b4e1f4addcfa4c9ecb6f5647c49c4610a89c032cfb35db555f28a12bc126b7d2b9911098d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[80] +aad = 436f756e742d3830 +ct = 5ba00eb7257fe76410b30628bb9480544efb3e2e4befbaa962dc78df45504e76ecc7029dabd51d58996fc3c99d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[81] +aad = 436f756e742d3831 +ct = 3f450200528c91fa29cf2517df6e5d47daeae0e5e953323bc99545b0b320fe6d15947268e0b615fc546c39bf6d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[82] +aad = 436f756e742d3832 +ct = f41ba4860b3a81da3d10f53fded7cb4f8bc2fccb6c0c1e0b7bfd9379850d15a8e09357e2734bea03537ad418de +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[83] +aad = 436f756e742d3833 +ct = 1e4cff317a533d3ac40f3336f85a526e6f93fd007678df4c83bb7df699ed4e0265277234e1c7454954874a2259 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[84] +aad = 436f756e742d3834 +ct = c97cf286ff12a25f8cf4de6fbb697b75ac2bfcd7ac590682eb85c63630e91531a1e3e13e0bc8cd7704cbaa1aac +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[85] +aad = 436f756e742d3835 +ct = 3d84092c3277fda0c44fb60032ff060947ea84abc1f5edc9e9b47c9af839f3f7f411ef972e35f13f817407987a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[86] +aad = 436f756e742d3836 +ct = 2357bb47318ca10de4ef71caa0f5caefe1d06d102516d5eb9a8de137defaa4699fb344619c2bbb849e7534c9e5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[87] +aad = 436f756e742d3837 +ct = a4f670a0543903af7cacf03f24d1eaa77b3aaf11eaed180d6243cdf9943de7480926156da7840d5abad425fbb5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[88] +aad = 436f756e742d3838 +ct = 5f72e25a4427b58dc163cc259e7ca42c154e286adaaf0d239a32c32f61b85f9cddeef44dc5f3730eb3ba4ab430 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[89] +aad = 436f756e742d3839 +ct = 704e2177054c3710ac1f93fd49ed046764bc28aa1cd0295d26ea3a52cbb734aefa5dbce031e024f3e6a54be64a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[90] +aad = 436f756e742d3930 +ct = 9650a24cfb2619474d7c4f5a6760cd3e451f881f949c23728cb3099c60f2c173b18f5d38e4bd214c6f45d6c5d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[91] +aad = 436f756e742d3931 +ct = 903604194d86a030b8400569c987a94eac50eca96218915d7097a05b0c44a52c7b52ac907fa20d34fd8d70354d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[92] +aad = 436f756e742d3932 +ct = 5f07675573807316ab9138f79596359cbb0abd243f4f670a385b07358407aa501cd5bff6d6f0a18fb1b34375f4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[93] +aad = 436f756e742d3933 +ct = f2ad15f8c02a71073ae1f6892e7b2baea25090fd1f3f02598637a66e3fb741eee470ee71c4b2b7f9f7421ec994 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[94] +aad = 436f756e742d3934 +ct = df0f17b0c4a6b2e60027c3038d1e50488169707f93d35c16de7aa8bcf752588f28f63e20b3032061d791133d28 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[95] +aad = 436f756e742d3935 +ct = 46b0892fdb4cccf924c96b2a8f10a1fbda46bcf9143d75c0704a2ba424ca152d1d5b26aeef29f5f987be44bb1f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[96] +aad = 436f756e742d3936 +ct = e5935bd325a0da411efb8567904d54aebc03666d89b6a4346783c625268b056d998d8a91c371a20a81fa010021 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[97] +aad = 436f756e742d3937 +ct = ea672b59777ffa96cbf696308973e19a68314ecead1b7f754549aae59df94dbcd350abc542cf1fa20aab97c257 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[98] +aad = 436f756e742d3938 +ct = af993b3712d38983acf498e0e7ea0347e1c43f9d8f3640aad2098702b644e014d76da9bf63c47050813ab90cf3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[99] +aad = 436f756e742d3939 +ct = ae4f9eabcd1f0853a74cc89e224eb25b93bc227b061206d9748f18c21e7d2a4fd82230dcb1bf218600074195d3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[100] +aad = 436f756e742d313030 +ct = 517d636d26834547f94ad4bbc9259fbda66d1752498d17fc9bf5f113bcccdc19a3a14cccafb12ad3a36585b66a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[101] +aad = 436f756e742d313031 +ct = b06415b3185f53cb569369ca82858f84bd99e79e777bc836a9165ef2701ac40d69c8d17a8f9e097baefdb1f9fb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[102] +aad = 436f756e742d313032 +ct = 6c108bfdad44fe2ac325386185883b2003dd24af6e1e1e09247c6acb487fa3ce7e38670ffb347674d5040a6e8f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[103] +aad = 436f756e742d313033 +ct = 14138f6d2b75a2b5ab853fb9c71c6d9b29db8b65248cd4c1c4e36311735304abce90a08055600eb3ee2b7b4542 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[104] +aad = 436f756e742d313034 +ct = c736e67498f109f8c14ca2bd35dc8af1bca43f7f3ce188145bc0198c17e84312557af936380ee546ea318d9498 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[105] +aad = 436f756e742d313035 +ct = 0ba0741639cf37ac3f72683de34822b30685dc9b1edbc1ca2910844c9a7bbe91a07a88bd7b572a5e47af8d14ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[106] +aad = 436f756e742d313036 +ct = 6d7a86b8d2d679b65960c6426e68e9318fdbeb4e1961f68b65d4cbfbe9dbb9074e0039d1a9f0a8397c3e1a15d3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[107] +aad = 436f756e742d313037 +ct = b3dc37c304da62bb68179c71f8df2071f29fa40d9333e553728d192782ceb930ab8565c4b25d8e51895f728efc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[108] +aad = 436f756e742d313038 +ct = 5e941874b3077ce09dfa638896b8e6ece2680202ba59349ac7c55b28037a8f8c50d086b969d9f3010fdad418e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[109] +aad = 436f756e742d313039 +ct = 80edc643b9fd509f7530ff6759d974972ccea2f9fa97d9456e235f0430ec881d5248cf660b9517ccd5ea03a0ad +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[110] +aad = 436f756e742d313130 +ct = 71760ca310d5640ae99f242c327c091db30de1b2be2baac1b61ea7b253ba4879b49a07991ef54e4842d9627732 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[111] +aad = 436f756e742d313131 +ct = e2316c586483276c6b1182f1d53ac195e53bcff4adab13cae1915e52b4d5344b0f07b85a91e650f3086ced1bb7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[112] +aad = 436f756e742d313132 +ct = 1181ac105b99b809da0033b94e97c6bb82950f09cb651426d0de4fd8d17984d855449e2e60f1392b561809fff6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[113] +aad = 436f756e742d313133 +ct = 1c7e2c1303c8bf0767a766346d8a63b3ca16b7a38c07298c946523608afd3d0eb2eb58085b54a5939ee4f6945e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[114] +aad = 436f756e742d313134 +ct = 46d557e9a536637cbffdb6ee6890df741b1bfa36da71fc3a71a06272956236b6c772481d68508b51378d981cf1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[115] +aad = 436f756e742d313135 +ct = fc24df99699f4c092da769e6921bc757c00473c319bfa321dd7932ae8578856d2ff26cf17a205c5dd20f2b4a63 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[116] +aad = 436f756e742d313136 +ct = e515fff1ebbb0643563597739e789564af09a51a9ca3d86e8b045bef26e1dccd03c3f3fe1a4d4325cf3bdc4b2a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[117] +aad = 436f756e742d313137 +ct = 23416c55fe45d162053233be94ad0dab8ffc48b28d7691ea62acad4dde3fcec70c4c9f7c7210df686c6a3076aa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[118] +aad = 436f756e742d313138 +ct = a26ac6c40dcc08afc1308eb4ee521e3f7d5f6e4a22d868fdbb07ae279496926a8ba7df9777f738f5d39c340902 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[119] +aad = 436f756e742d313139 +ct = 2048d355000b3ef9ea121a617ddec39562d4a3ee6111fc617b9fb6ec2b8c2f2cd6e912f5d5679a989ef784ba85 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[120] +aad = 436f756e742d313230 +ct = acf5341aba46deca253a2f36565c5c91f4863a1ec9e5b48d18576933bea36f279f8dbac9a36240642f46dc5ddc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[121] +aad = 436f756e742d313231 +ct = 2ec239874ddb09f51754d07d2ea21f4e2c505ceba707441747fdbf60089aa8d7391744d561c253026a4694cb9e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[122] +aad = 436f756e742d313232 +ct = 3c312782dff2693256dffe9cdfd4d04a9748fb0cc981c5a34354f9293d06b92d990dfb2e9226e5fb5ff2cef593 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[123] +aad = 436f756e742d313233 +ct = 7b0a076ef442710a35434f82ea06836353304fba6e47c660c27a961a54d9e45e592d038c90626768d7179de5f4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[124] +aad = 436f756e742d313234 +ct = 264eedd6534279f2b52cbbbf12bf5c8c71dd1d5a4720d1c6b28d4de96c996e117ff2712fb2c674461ea3342ad2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[125] +aad = 436f756e742d313235 +ct = 3d83a757d0fc58bed3cc84566bcdec148fe1555230077163b8c8222ff1e8a1deaef09d0017804818afd7d0756b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[126] +aad = 436f756e742d313236 +ct = 8073fb517a21b5e2fc54d34afd581581ddac8c2342958c07d8c907072a3555924ef93150b87c26421d2ab8e737 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[127] +aad = 436f756e742d313237 +ct = 80859837efe561a4bfe3ad64ac9c4286c96e7677f1a71fa1da88ab27f3e825744668870ce046f6548683bc8ba8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[128] +aad = 436f756e742d313238 +ct = 0d2489ffd5cd9186cf2f7f440bce73562fa0c7243deea0c0f371b44672ee52c8c739d5ddbd645a37e21224461b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[129] +aad = 436f756e742d313239 +ct = d4b292d5e9536b623083ee605e3f83a910f4c9b1883403a6946886c5e911acd3fbc5886ebb66c25eff293991b1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[130] +aad = 436f756e742d313330 +ct = ed8916e70a13598237562458aedc0391f9e59fb13dc8736acbd69b8b7420e597029588235d38806ca24f42cb9d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[131] +aad = 436f756e742d313331 +ct = 2ad5c6a8af009703c0dad307d23d6cf85493d551cc0ded300841da45b70808eff41f177d2c4cfbca8db5674038 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[132] +aad = 436f756e742d313332 +ct = 7d3ac6d4d9b38fcb08861c48547352a781f4b3a982255e0f58ad1575683ee12e4ab1524758effc734ac814b1be +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[133] +aad = 436f756e742d313333 +ct = 0aa357b910910c7967954da68f46917cb48532cfcfc9a426cd4c123ee8f6af0f03289856bfceca38fb0ccb846e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[134] +aad = 436f756e742d313334 +ct = 2250d816b29ead4c4bb39b28a83a4c4bfba45c7f795b02f73b305687deb2eb1fc8ade27532d96d35a9423d1885 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[135] +aad = 436f756e742d313335 +ct = f65dbb91a549fd276edec8f5a004057e6488c39b92e529d89077fa2f4ba631a598a481aae0d691a9e9299998ef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[136] +aad = 436f756e742d313336 +ct = 73cbe0720e9d5316f009a8865b4fae590d4f11404c277e4de764b315e7feaaff8e3b27d687f595a5e2e9df10ed +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[137] +aad = 436f756e742d313337 +ct = 0baac42e2fc021841445868fc9472741bd46b8182e608c9559ecbffdde0f7d859aff4a2e972f837986c37ef0ca +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[138] +aad = 436f756e742d313338 +ct = 7f0787d06d4989a167e9c81dc0ca08247b23464a6bf5cce0c11f37a99c57fd7de4223fd1687555ae7cee2da17f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[139] +aad = 436f756e742d313339 +ct = 612893e6d027ba05aab619fab395e2cd7a5882c40fdef08d57f7e2655e86101e399c5d730c084060890bc2b56d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[140] +aad = 436f756e742d313430 +ct = 936070bd3d2b50a7a7590ef2dfeb1be6136e05fae46d7d3464c65399c4b2ee8fe82008b5b23771ad3921805ff1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[141] +aad = 436f756e742d313431 +ct = 0150cd21fd842bbb29c42c6a1313fd3a44bbd068b50b6a51361c824a85a757adbd13a023c75c125b7132d370a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[142] +aad = 436f756e742d313432 +ct = c22c9b1822e3db4c0c66a830bc2bf50971bd98a0d90680eff676f5546e73764e95818f79f257e67d5f03420d6d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[143] +aad = 436f756e742d313433 +ct = 31589b9019bc4892017405cac5712d00ef303e90d7c575bcdeb8267ce01d42017eac95beff4f262995cfe70406 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[144] +aad = 436f756e742d313434 +ct = 7b253a5fc23ba7ebde57cbdeb69a0421a086991f3e72dc91d8975f06ca805eb8ec503751a3d0c9b1598b4058e8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[145] +aad = 436f756e742d313435 +ct = 61374dd7c04419aa8bbc885e2b8f340e73186a07b9f0d1f7f6f05682c6807ab7af379ace9b0aabed879a0f2214 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[146] +aad = 436f756e742d313436 +ct = d87d29ce6753b03570826b266b3b443c9b8175ced6bd54aae7a3161ffd25b6024b848d6c6f6e9fc874c41d7260 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[147] +aad = 436f756e742d313437 +ct = b52df0362ed32b67adb2aee244df3a23f2bac4d7368a45239f5626cfa4f61848f009e4006e00f0e785059f7a5e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[148] +aad = 436f756e742d313438 +ct = 12c0435ca183cb325149fe12f948636e243e2ac91267e8bbdfe5a429159605f1fb0f050b693e28f9d4afff9c55 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[149] +aad = 436f756e742d313439 +ct = 1bac388f720b67183c8c5adca062e3b679456925b79252f809ab1554dff1d43d663a3332e9c08c55d79af85cd8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[150] +aad = 436f756e742d313530 +ct = e4d68e2b94e6e478442277d6fc427cc4c3a571c069caeba408b8e8936e9c93112f148d337ddbc4c8f9e2500ca4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[151] +aad = 436f756e742d313531 +ct = f11d09e9830b1453fe550d936e9e7a172a55955ec2925b6d028570e001870ee1dfafd7f8a1b8173e19e61cf002 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[152] +aad = 436f756e742d313532 +ct = 9f7be587102cef5377e78fc338e5067110e9f12b99d8da4ce4ed5416f1e4d6b58e3da5165e35b51abbc0aaa05e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[153] +aad = 436f756e742d313533 +ct = 3d040e0c8079f16bebb2c800f9e7e420a380817d4699a438618038d0734398885cf06c9a2ff692da99c03e0045 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[154] +aad = 436f756e742d313534 +ct = 8793922c7cdc739b9a4ccca8f53a57cd7a67414d6058b480eab8398df056ffbdb20f32254007d8655ee0befa6d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[155] +aad = 436f756e742d313535 +ct = c2cc474378824201a9e7b33a144e755d4670a9319530c36eb9327b61cd791d44ee373aa9d80bf52ee9cd765586 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[156] +aad = 436f756e742d313536 +ct = b15906085a470857f79f3a19b7ae98d3d6d2042110b6a3a4b533115628fffbb225044182c95e25f9a9f0966f6f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[157] +aad = 436f756e742d313537 +ct = 28563cfa2526b75e1605d6db99b5250e790a7b440f0b67567a16117cd73ff139f9bb37b923e40f12a016ce791e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[158] +aad = 436f756e742d313538 +ct = 922c391099eb25e7d18f87d2699d4d42e8f599d288ee6b634506c3d0eb9a64e1659eddeb0174b72afbc0076761 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[159] +aad = 436f756e742d313539 +ct = 8bdb1803713494727d55dc11393bb4900028885f73188bdd27296528788e531e046c4fbb7291fbcdb6b63d8cee +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[160] +aad = 436f756e742d313630 +ct = be37323d9ce5fd569cb68ab0a0c690d75d7dbdddfae1e00707b6c8e1afb4fa635aa388530b22d289b769fdc78d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[161] +aad = 436f756e742d313631 +ct = 3ae4a5e289f03522416347783035a91c230d7383c9e1dbd5f1c8d0c3f416593aa4b40d83de12687a62beb803dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[162] +aad = 436f756e742d313632 +ct = 7c2297b3d5847b2538f32c90a52d50f5a419259a4dfdd775994b56239b5aef985a709f62055afa7618b401f028 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[163] +aad = 436f756e742d313633 +ct = 11dd971d20ed5fe9be7ba50978ce2645b896d197a585769ef93ecdbbd18de71956843aa770810f116bfcc3cc5e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[164] +aad = 436f756e742d313634 +ct = c09e9accde8ba6c38f7c1a4058cac818ccec23a07855a0d6ee8c43f868a9d0ea0f7b65024e5a716243947cba01 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[165] +aad = 436f756e742d313635 +ct = d0339d7f7d98b98e68aebb015e1450a870db9e8dcd7b237f59ab7d330f1e522ef3f873a842f84c9d7872c1d881 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[166] +aad = 436f756e742d313636 +ct = 36a65cf378a4c675b8a942cf741897c543f1ce189badf60f45ab4554547db22c6e910413f3d72562c92dbfb361 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[167] +aad = 436f756e742d313637 +ct = cedc395dc834c5642271357fc691a7b3527787bc4ff5ccd50a9ee7d3697295173d6efffbaeece401cc74f548e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[168] +aad = 436f756e742d313638 +ct = 6834324bd661682c8d2829b22a6bc23976501d1eeb47b7655201d384adccdec5fdcacff9641da1d73b35932360 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[169] +aad = 436f756e742d313639 +ct = fe6cda4b60c57efc4610f6e4061fa520a3a58f040aa926ea6dea8339b34dbf192fc2b6a073b150284ce987f897 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[170] +aad = 436f756e742d313730 +ct = 95dc8e8e1ca613cda0e46f29361af84a0e14e805f093a8f5f020db668558ad1b6d6cdfc78488d7bf0a38060c41 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[171] +aad = 436f756e742d313731 +ct = b07a72488c9e39013f75256de6b402979f5ea65628073f49ed41efcde388ebee34b189e612e609cda14445811d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[172] +aad = 436f756e742d313732 +ct = 3bebe2bf5b97d6a84cec0654f4d48da4e12d173026fbacd48eb73dfa081a30cc43d02e326411633da5061ff16a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[173] +aad = 436f756e742d313733 +ct = 8a50ddf1d6d34c195b7147d27b6746a4c6b5adab880b5839738f954d290fd3bea628715bb834de2c2e5c18af7e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[174] +aad = 436f756e742d313734 +ct = c005c0d179170d9f782a513a5ea026f466f0b8654e4306d5657565c015e49f51d23e6d801c28d72703a8755b29 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[175] +aad = 436f756e742d313735 +ct = 982ea6bc2670762a6be4d76b0e71f087ddb4ed416be172abfb63330c366946014ba9821e232e45930617650908 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[176] +aad = 436f756e742d313736 +ct = 52e7b0309dc8a76f29ff6623acdf14a2d107e689c2aaa47b79211729d3cea8b33573e97b68d68120ff4b6e0e97 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[177] +aad = 436f756e742d313737 +ct = c003576c36b4dca19267878c933f47b1a651a4f2aa21d5ed8c11addae8622645a6e24dfa491592bafca9344fc1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[178] +aad = 436f756e742d313738 +ct = db07613bf857254e82ace66f8ad51e9b735863c3389dec347364a41fad8bf94a8fa837823c328f9cc1c4555786 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[179] +aad = 436f756e742d313739 +ct = 4740d00d57ea36d1084a0becf0e2b295aeb24fda4d871c0a193e6e4d63f5270b9651a7816d0e756d7269a61d05 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[180] +aad = 436f756e742d313830 +ct = 7c6661bfaddbf0e633dfdc28ebc9c2cb28812ab3f66f1ce8d048d62d43eb761bc40718948e3e84e4e13b341bcc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[181] +aad = 436f756e742d313831 +ct = a3c2d9b07f9b9d4b73cade1b8ee2e0bce44b6d67aa2a5ea895d3e7aa5c87b9d5a9d66357f80798604aeb60b574 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[182] +aad = 436f756e742d313832 +ct = 5df4651afe61f503b20b401d1fdfe90161be9833ffbe6fea66e3729e70c53ed77b51929dd77514343875f41182 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[183] +aad = 436f756e742d313833 +ct = 5ac31e5df7b858baf398499b8a5b51f09c3ded7b7773d298383efb25b3328738874f025d7919983eaa38c66795 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[184] +aad = 436f756e742d313834 +ct = f0430989e3e07509b351c3adc474b54685c997cea440b4aa9e4ea717de50244e4772bd3d1575994e0a8d025fb3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[185] +aad = 436f756e742d313835 +ct = b7e87fb2e9c70a4037b156f5d617a4aea9c6ed52dfdf4af814202c773f500bd4d40fbac575f602743ea557f4cf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[186] +aad = 436f756e742d313836 +ct = dd0f08f318f4507734886b10542cda71c13c92d5ccfcb6aae6e26958b08f771b35a40aae206e1b89127e908888 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[187] +aad = 436f756e742d313837 +ct = 25a601753fc874e5a471e3d92c96f1ae6aa849d9e982beea30e67750e799fef231fb78cd7b225e973bb09c3c9b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[188] +aad = 436f756e742d313838 +ct = 5986c63e5db80374613160e785c1d9f93e7aeefe632af8cac5c24c43bb0351d86f43e9690a82d06892e4838633 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[189] +aad = 436f756e742d313839 +ct = 1232de7a1187a2eaaa29f8b92ec6a1a196d0665a655b7ff93bf9607d876c753ad65d527e11d9f2f9719807ce64 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[190] +aad = 436f756e742d313930 +ct = 8dcbf53a8a7c8f0ef6e8d25b877ee247c9f98ce7ed626f1dfd0affa346779ecdb78949f0b7def8a4c4db9a8acc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[191] +aad = 436f756e742d313931 +ct = 3b57faabf133985f61dcbc2b883acf8e08f6bfd25a88ce6ed8beb778917980451393956408adec4cfe26d367f1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[192] +aad = 436f756e742d313932 +ct = c9a0ebd8d7b473329fc257f7e059e288b9262f43e45f028c661c56c7c69d2764e658cf4e3a1d9e39a9396981dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[193] +aad = 436f756e742d313933 +ct = dc439e84775dc119bad04ea97402c5d6e6116aa057109210c267a5552eeed0a30c4eefda4b098522033b86c3c4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[194] +aad = 436f756e742d313934 +ct = ca2d7d953fac4f78e29168ed558c74fdc02e3ded8798da035d8c36330c876aa70f3b3f0eb1e38fd65b8d3de78b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[195] +aad = 436f756e742d313935 +ct = b1fdb0f0c2c0d7679431628267321902530153e470eecb325b01f8d13abb45bf77ed679ef9fdefb28c8d2f1087 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[196] +aad = 436f756e742d313936 +ct = 0e64d24a8b98cd033700649849cf97881d2d769c58f947dd356f3c097f0beff740a509dd6654fb922c18c861c4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[197] +aad = 436f756e742d313937 +ct = 94db9fbe24264ee1c872372075d2a56893920894c887b3e604f7216eeca25d260554c0d97fb9579423a0222065 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[198] +aad = 436f756e742d313938 +ct = f4add28a3edb54d991c9d50c951e0ff72e4fe8cf11b2cd3e0097371c4db45e292b4aec61f01ef41b8bb50dda6b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[199] +aad = 436f756e742d313939 +ct = 4c630c60664ec601336778eb9daa990a373cd3197e55cbb7c85e5f8f4eea45a93abbda07f35873bf6d3f8843f4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[200] +aad = 436f756e742d323030 +ct = b0076f32d26bb8f089f6715d3fbb3487e00abf741787ae07205c87c938b6c719d7ccc9dbc87f63870675036fd0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[201] +aad = 436f756e742d323031 +ct = 82557b51e556b9238c1d382edfaf7e1e1e8c78c8a1f8aea2438c2adb91510f5a51d283c56fdb1383172d70f797 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[202] +aad = 436f756e742d323032 +ct = c776cd529ed926d264c767611e91df863c0ee0448dcccef9fd9b5e12899887c5faf4949d2b78fc622b70a25834 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[203] +aad = 436f756e742d323033 +ct = 4e4e3a29401fd99ee3a9527292f9463be3f5eaf96a0a215dd69bfe7cb9b701c3af9eacb29a055563dba8d6a9e7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[204] +aad = 436f756e742d323034 +ct = 2e00df2085d83b9dd5e63c6f567603fc2684afa9316277a240c16d1c980a54f7c87a959e3617b0a76dc84998ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[205] +aad = 436f756e742d323035 +ct = 88eeb0d599b84ca5afbd68b7cbe8490b949ba6bb1a3f35110f13ea6d9ab837d47f9d182277d7e87f584e9fc496 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[206] +aad = 436f756e742d323036 +ct = 1186bdbd9c1360f3a08f8684e8e4061b56182a27ffa40d09088c38ecddfd6946f6e6391a8a9bce2840da473653 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[207] +aad = 436f756e742d323037 +ct = 465c273b910fc82add788b51c8071d9707cb31f16701cc686e34304bbfefd76d6ffcaa2a58f7f3088220ca9f91 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[208] +aad = 436f756e742d323038 +ct = 813f6cacdbbdd47794d96163f37a83ee71b656ef39717f43df6057d49f2a99249dc0c00b5b3b07a989e3de7d78 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[209] +aad = 436f756e742d323039 +ct = 5aace4d7d002cfd22f883261a7c5eda3790f6873b272ecb00319990190098f2ee97a3c529eee2ebc75ecdaf9c3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[210] +aad = 436f756e742d323130 +ct = b77f34d7181a8aed2e5b1bd3e9ad36665d5e5c92839aac5618cd2ffad6a2e388492147fde0f3d200f63387ed86 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[211] +aad = 436f756e742d323131 +ct = 19bbf8b970e18f65597a10a3cfcd960552651610113ad9a9fc7cfa32a6a49c74afe9f80aedfa799bf53fd2b387 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[212] +aad = 436f756e742d323132 +ct = 78ab423d9d0a006d36886ed41f751b6c4acd0bce2747d1b804f40a1891f06ef0745f066e5985b58db251dcb049 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[213] +aad = 436f756e742d323133 +ct = 38b85ede84b52970e26389f3046471486914a7966c2d152027eae68958a38367bdad3f9cadaf9af1990bd7252e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[214] +aad = 436f756e742d323134 +ct = 4a3f9cb2667ccb6db2b3763a7aaf491527b928eaedd113dc906266aaeb9f78e4a09614a7b68259d4b23cae09b3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[215] +aad = 436f756e742d323135 +ct = 5136106cd2330c17c16460b8ee23328055749367aaa2c86905a08e9b0a515611092662ab5c0c4733584bab8ab0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[216] +aad = 436f756e742d323136 +ct = 1fb7b1f378ddcf58c1b57ab25af3ca4852db439b33cc8135f2a24ba80187acee07b53db64570d707f7752055e5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[217] +aad = 436f756e742d323137 +ct = f657e06da17c7b90bcdd240798789997e1cc5122ccf5c0746c1a3a4e380114d2281317b2da9044c1f6d4a98535 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[218] +aad = 436f756e742d323138 +ct = 2656dff50960d248d965bd47689635ed01a7a893931a0f33fdc8965a58b0ab00a8eb517c47ffda7aeffa7fe7ec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[219] +aad = 436f756e742d323139 +ct = fe1bcd35c84c31bb8322db7b01f72dc495ed6cc972e00f20c665d15f35b238064eadaf441365bfc156468a944d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[220] +aad = 436f756e742d323230 +ct = efb4918e09623750af31e04329fcdbe359ee199c3d1b08ff908ce9f7a600e39ecfb69121bb01f206a658037021 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[221] +aad = 436f756e742d323231 +ct = 92150f43641cfcbe7a3f31e392a90221ed3481da960dd45a9873d429c099107683d9a500a122de088ae1d419ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[222] +aad = 436f756e742d323232 +ct = c5d69385d068278c76e687b6b30cfdf33f79e1602338ddbeb000c422ddb6fd2a521c7d8428412cf6fdca6c71c7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[223] +aad = 436f756e742d323233 +ct = 069ae39bfc06704d2715cb3e9472fb4ba512a6b17e80ded6af9083371ef46596d442c72a2b0570a5293b896a30 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[224] +aad = 436f756e742d323234 +ct = 3ac9a88751a31a9a7c9dff2e72ae7a794e13b312315f9fdfb5b67e749a3572e98fb9d8b3cdc8f82429212dfaab +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[225] +aad = 436f756e742d323235 +ct = 3e617d045128774412c566d66d6e8f6b741fa665f17c70ddf4bc97d778a873411d225b9e1a2ab8c1cfa9c7058f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[226] +aad = 436f756e742d323236 +ct = a37d206a4681b767b5f0979d46338daa225f890aa8daba10e35327730b0985c99430f37a30d0ee6f96ac20b160 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[227] +aad = 436f756e742d323237 +ct = 0b275caeb00d36034be14298ee302921fa73939c5dcf1652dd0ef2b25bb75488cddb80e9cae8cbe3ea7434e8ef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[228] +aad = 436f756e742d323238 +ct = d3398ef1aa4e47c9f2b172dbd9f868fb74cd569a4537e91bd69aa8ba42b99ad98cfbafe526ffed5bcd39935f5b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[229] +aad = 436f756e742d323239 +ct = 89b8058846fe203721b4a6f4a7cf02fbb56c3453b97d9885f7e36912c63074d6332db7f8d497879a3df27dc1cd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[230] +aad = 436f756e742d323330 +ct = 174a5aabb09e46906e53a584ec6a0fca4ccf0e2fe180f176109c028aa89dafdfce5031465d98f76e50288182fc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[231] +aad = 436f756e742d323331 +ct = 7ca10958b0d727eb0af4efe54788ca139f2c4d227ed30fd18745114928dd8d3f41a4f76bd8f03c9b5dc4a9ef6a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[232] +aad = 436f756e742d323332 +ct = 0c2cd3a52e84f8b36ff07ed426e18da6b40f2b65e8dcd30acb9b73b93be1572153791835fd5b02237d215e2546 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[233] +aad = 436f756e742d323333 +ct = 5f9f2f6465c02fe96f9c3f73af2242c54a120b6ab40a7731867b0c75d17d25121b2348e456a560e6f125731737 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[234] +aad = 436f756e742d323334 +ct = a8e120befa2c544ceb0ad232979681fe6b354de8cd5e456603fd03abf99312f07c9b2dd0e7cfecff93494de8d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[235] +aad = 436f756e742d323335 +ct = 738e56693f166f7dd8cb16c0cf3ead65114f031924825e383d80e2831aa6d5b5c998c1765acb251a7393aa7371 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[236] +aad = 436f756e742d323336 +ct = af8c07897b3962e8b0ecc5d46c5f600f3cd78f3e7421355600722a1f8c0f3878f7b7c7f806a55f5f2a3876d13c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[237] +aad = 436f756e742d323337 +ct = 41ad5c4665b9ccfebac68a7da61fc285e4bad47c540b70680864a230bd02144f35941ac2089157c8dc8a5a1fad +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[238] +aad = 436f756e742d323338 +ct = 4ca9a176a6b212948b1be6eae9edfa426624ad4e1f09e0cca61ec933c056fa5ac6a1316b3473ddbac599026492 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[239] +aad = 436f756e742d323339 +ct = 43539b9692f59af4b88f27f672c6215a22bb3a26bbd66fb44129e22f78287b3df2aad2f5384be9ec941fe8ef6c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[240] +aad = 436f756e742d323430 +ct = 452ab2e05e5aa7e4dfdd171f834bc0c9f0c65972a432a078f5e7e9b336ee1271075b5d90f09147d4569da240a2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[241] +aad = 436f756e742d323431 +ct = 7af5df8ef9b79c40f6367376c331b5bd9b8abce05c77e2a463d7047aff0f2ed8f2005a9187af93ba7977981aa0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[242] +aad = 436f756e742d323432 +ct = 7da430828edbfafad6dea7cff61e6cf5ec79165cba136e983a1c6e5f74121601bad6f6526599ec1266a6037763 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[243] +aad = 436f756e742d323433 +ct = 6448a5f78e2d067e2425fe188ac3dd697e9e711f278060bf1e807df57d71c34bb2ace7886b989fad691b70f29b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[244] +aad = 436f756e742d323434 +ct = 01186c46223dfee0f72308659e4605aaf73727da3bcc4a5f720151b52ef88797b3bb5b2268b01085874774eb51 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[245] +aad = 436f756e742d323435 +ct = 996d866fe3623f9febe2f1a9c02a02a587c18ad14919ae3e5faab5e07fe69a70a8fdc3f53939d18d6728b52167 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[246] +aad = 436f756e742d323436 +ct = 5abc1287bef7dd82c97949ec38cb723a50ee95e22b26a0091c4e7c1c856d9b9565fa52904a5b368277ca4d7b82 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[247] +aad = 436f756e742d323437 +ct = 200e2544107c0e4a33e19f834557f3dfbb8a0b17d8958a039e762aa5b74dcde346c3a8d465578e850e61b1bba0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[248] +aad = 436f756e742d323438 +ct = 0e4a9cb173db3b6ca918453b3aa9137d271cec0ac76f473f75c3a178002ae8c56ae559442646d364e4df03294e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[249] +aad = 436f756e742d323439 +ct = f64bf0a28aa85287e3fe4cd7aefff14617f915cbd7128f189d56c8d77f6198528825d85a946e57223c71d7ca56 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[250] +aad = 436f756e742d323530 +ct = 7724a0867cde4f72a3a15c0257ab9b35889265b3621450c7da220b8d17581de30d3c6be2f04f84eed1e8ab4180 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[251] +aad = 436f756e742d323531 +ct = 6e47a17d4b70b28b456347ef8e53f38ad297e0dc685f3f3245bc77c4f4b19d25f9c94bc9fc13fd073150c57886 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[252] +aad = 436f756e742d323532 +ct = 06ef5bdda3c06a17dbbe0f0296196185ecaa115a130a0bad0c6056e0b5e58f2b025d7e4f96e67deb157f62e140 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[253] +aad = 436f756e742d323533 +ct = 96e2a62d0e32a1e3b9fb2d271f21f07a1ec471948950d4b3cd9f501cd12c98f638e733560b99667150d5037bd7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[254] +aad = 436f756e742d323534 +ct = 9efda4be5e88be68c1114a3cb27a806dc6cf677ea138387c22f8250e9b60612f42c2c3e9600a72df68efc18942 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[255] +aad = 436f756e742d323535 +ct = 1288e097b30e71ad5f6198f23ac3a2634c2fbd575fd302e5eca7968114990fc3aba085eefcbe803e4130c63ff6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[256] +aad = 436f756e742d323536 +ct = df400deaab08719cdc7b278b9d2daf898e6aec30e0b1746552d53a20397c519c409a8b73e5e6672985a09c0942 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# exports[0] +exporter_context = +L = 32 +exported_value = 6c0386ae15b1b834a5247ca5595b4e102347cbcdc65de64832f36008ce9c9483 +# exports[1] +exporter_context = 00 +L = 32 +exported_value = 3507f1d3914e96bf72447b5c2d227af2932c7978172085cb826a5ef7f25f74a3 +# exports[2] +exporter_context = 54657374436f6e74657874 +L = 32 +exported_value = e04a3d5ec48b3729b57b61e02d66eb6f67f4bf013f2767ebd2281592ea3ccef8 + +mode = 0 +kem_id = 16 +kdf_id = 1 +aead_id = 3 +info = 4f6465206f6e2061204772656369616e2055726e +skRm = a4d1c55836aa30f9b3fbb6ac98d338c877c2867dd3a77396d13f68d3ab150d3b +skEm = 7550253e1147aae48839c1f8af80d2770fb7a4c763afe7d0afa7e0f42a5b3689 +pkRm = 04a697bffde9405c992883c5c439d6cc358170b51af72812333b015621dc0f40bad9bb726f68a5c013806a790ec716ab8669f84f6b694596c2987cf35baba2a006 +pkEm = 04c07836a0206e04e31d8ae99bfd549380b072a1b1b82e563c935c095827824fc1559eac6fb9e3c70cd3193968994e7fe9781aa103f5b50e934b5b2f387e381291 +ikmE = f1f1a3bc95416871539ecb51c3a8f0cf608afb40fbbe305c0a72819d35c33f1f +ikmR = 61092f3f56994dd424405899154a9918353e3e008171517ad576b900ddb275e7 +# encryptions[0] +aad = 436f756e742d30 +ct = 6469c41c5c81d3aa85432531ecf6460ec945bde1eb428cb2fedf7a29f5a685b4ccb0d057f03ea2952a27bb458b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[1] +aad = 436f756e742d31 +ct = f1564199f7e0e110ec9c1bcdde332177fc35c1adf6e57f8d1df24022227ffa8716862dbda2b1dc546c9d114374 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[2] +aad = 436f756e742d32 +ct = 39de89728bcb774269f882af8dc5369e4f3d6322d986e872b3a8d074c7c18e8549ff3f85b6d6592ff87c3f310c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[3] +aad = 436f756e742d33 +ct = 734af2172c37006f41be8ba9f990e54d3dc89ad5d6624a84d106fd7534e8817712e1449facb9c7ea34d231d733 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[4] +aad = 436f756e742d34 +ct = bc104a14fbede0cc79eeb826ea0476ce87b9c928c36e5e34dc9b6905d91473ec369a08b1a25d305dd45c6c5f80 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[5] +aad = 436f756e742d35 +ct = f2b3ac44eb6203dea1a90cc6d6fc17ed016245d8d19aeaead524e932bd994d2411135f9dc5d4e99853a1f72481 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[6] +aad = 436f756e742d36 +ct = e70cf2472491b4ccdf8d14a0e1af15c80e460ef0a4aa4a76de245e9574e1bcc81fea7136cc3f1a98821a2375c1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[7] +aad = 436f756e742d37 +ct = e0c798c054bc640b0d1f10b427b6c20231888b1a126639d2a8a0db5ce70c09049bd148788a2c741c17a561f342 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[8] +aad = 436f756e742d38 +ct = a9224d07b7615884bb9758a467f9531ad746e400228f462ee60607201cc61e4e7962e0b6fac285cb14669fbd12 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[9] +aad = 436f756e742d39 +ct = 1ba2e07b5b30b15e6654d156ef364fff7434c5cc9596fe813cfcd2ad9db43d41fb438b4b557dbc6ed83f5af579 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[10] +aad = 436f756e742d3130 +ct = 4ec223d29595cdf5e6803c62034e191545d0d2bd07a117716e6ae521c52f016be3e4d426a662b807da0a5ddfdf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[11] +aad = 436f756e742d3131 +ct = d9a38f9ff6099883eb3e40ebeaa47d70012d2370e695cd4834884d614fdef701b3b9d8c87237d6aa1e8291e242 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[12] +aad = 436f756e742d3132 +ct = 74c5c992bae13f2f098fa40e959251bf158ca2351f105bae2d0c93653caf5637a9f78aa2ad876b3257a643fc11 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[13] +aad = 436f756e742d3133 +ct = bb68bb280976a0df6c1f3a828964d6b694c947f289900207ccb8392f4bb1d69225a9f8b16c9c9af149e14ff9b6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[14] +aad = 436f756e742d3134 +ct = b5b1c1b631b5610f3ee247c976bd01937c50019987e2796723012684256c61e41746c2d079d9e8b6a127314215 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[15] +aad = 436f756e742d3135 +ct = 1fe5c43f2cf002961127ae828424a478319ed201990a932372335f79b43b8f405fe54edce968c9f40b76fa14ec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[16] +aad = 436f756e742d3136 +ct = b5fd87b62dca8e8a4b34bed09054c7b67c73e69ccfeac9f19b8d8a5769a2d53f1379bf89e179d5984fee34b37f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[17] +aad = 436f756e742d3137 +ct = 846d0d8ca9a8fcf81c18e719800a5fe8fbbaf7823e7441b0f1354a8cca757c49393a8651f09cf72a7359526b02 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[18] +aad = 436f756e742d3138 +ct = 4d08b7f7279ee16a7943d4eae51501e78f31651ff21b3583f437943d80cf831023184c02829bc44bf5f6730be4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[19] +aad = 436f756e742d3139 +ct = 63d26b559ec32298877ae41cb789c70e7cd31e0ace3cb7c2612d4a98b7ba8e739c30f15c417518c41df75321ac +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[20] +aad = 436f756e742d3230 +ct = db403bbfc42bab0093d951e4ed6e3ec7b037ff81c0d5dbec58326db635ff39df7d6204b3aa8794cd5c81935286 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[21] +aad = 436f756e742d3231 +ct = e4dd36b82747d5924745dd622bfe1f9615a1acf123bf9fd3709b066346852033f080b37ea1fac388f54f1e3ca1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[22] +aad = 436f756e742d3232 +ct = 6d6c2f05bc45e6b94bae97e95dcd5fe00a658da4de9c2c8c55788ae52c76f005eb48a733c2063e9ad47c1a581c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[23] +aad = 436f756e742d3233 +ct = 4c153972502b9888276da8cf94e9a4267f85b51914d5d91720321e6edad2d5de358e1f1f5efe5887fdf3b84f13 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[24] +aad = 436f756e742d3234 +ct = 25db390feccbf45326313f777bd0b49c3c7132f63ddac6fcc53bf1085ccbc29050a100a4a63ab34c6421f6625b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[25] +aad = 436f756e742d3235 +ct = b4f17772fabf24ca6d0c79b5cfb9f8852f178c8ca8c3a7c212cda1350d266d56ab944480fb4d067fd1cc9d5cbc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[26] +aad = 436f756e742d3236 +ct = d486894c4ca01fb8c8f22bea08ccb1fee3040fa2f20fc5799275a174e51620a523d6a0394e1e9ffbdebba7e700 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[27] +aad = 436f756e742d3237 +ct = 54918345c42a9f061680ea328cb1d7a6d053131d3cd063049723b7505d276cd01a80fd73638d5eddc3610816f9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[28] +aad = 436f756e742d3238 +ct = ca7fba44cbc8bc250143b0ac4f49dbe19f73db21743e27c12234835c5f388e7aed926a6beb590e3570aea9c6e4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[29] +aad = 436f756e742d3239 +ct = 48dbec647f3035f870665a2daeb155a0ca7f63b91769c06283fa42444b379baf52bd3a3735bdc1d4b1e047bd29 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[30] +aad = 436f756e742d3330 +ct = ec17e2db11f4b039f474d08b053b3d7b2c972583b8586c10353abadfc85e9a0eccf8b090d768da71164360493d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[31] +aad = 436f756e742d3331 +ct = 3bd0276ea1ab993578aa645045891b34a844c0b8d0bd96675110c16ddf3dacf015c0d0e1d259f5ab28b90de0f3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[32] +aad = 436f756e742d3332 +ct = 2e666bf17c1da1dd01198d269cb23a9a4cd5f3fa2adb4208e1e9cc23c2507de0585e49078374bd1ab9f95e97fd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[33] +aad = 436f756e742d3333 +ct = 73763e207b5c303944af2826fb75a82dd33d6974a3fd1ac7c15d7c3e1481af080ec6819a14a5ea45edd85f1cc6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[34] +aad = 436f756e742d3334 +ct = d9189292e2cb6415977478c4d693f50f7b0c5d1959b3c239b1732047b6c40136d7132b3fa3bef8d60916aff4e6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[35] +aad = 436f756e742d3335 +ct = a1589667b9c5957117e465abfaa745c182a14468f9184df5be8be581e1124ea29feb3d6fbdd9a80f04e00d5b2b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[36] +aad = 436f756e742d3336 +ct = 5a2dbd09c6d8b14d2afb270e23f354c1605d0d11b1bb270aa9ff4fe86759a5dccc8ec8a2fba9a9d17b322a78ea +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[37] +aad = 436f756e742d3337 +ct = 6149cbd7d02d486ee75185c68925a66f7d6b34dd18c7f0f2281b5349c8f949c892186763e06f5a389e712be968 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[38] +aad = 436f756e742d3338 +ct = ad48d9475f98b27340901119735f3b709f7be3d02f15c0219385da39a95f4cff894c2c77c10e3b0cf764a1d468 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[39] +aad = 436f756e742d3339 +ct = 1d4c9d109e0e6ca1fee90828429335f33339a6575c6524e33e134f5cd5f1c922137e69179a32e59e57c0167816 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[40] +aad = 436f756e742d3430 +ct = 0b573b1bafb0f32886784a0cd6cbe176fab1de83f5192d3b86b2b66694cd45b8d30d633a00fb9aa2ec63f49425 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[41] +aad = 436f756e742d3431 +ct = ee7ef6069d7c6e4c992499b59d16b4cb32902e6130713408f50c300ed71abbde6030d06a09f1a66b3fb5ba8b27 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[42] +aad = 436f756e742d3432 +ct = 6bf9285a9151c90bdd71dc73b6eb09236a6424c45890d0a78b11f1c88a8ed111eed0917b1a05b7748b8a5eb8ac +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[43] +aad = 436f756e742d3433 +ct = c85aa2b47d2e621284d9f0881df3e384844173467e82b5d9a12f36dfa573eea272d293e51b03b4b61e348c24db +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[44] +aad = 436f756e742d3434 +ct = 7f93aba292650ecfc81cb08bceb5bdcd8c5a154a1717286cd3dfe3be3d47d5de7bb2d0d3199fc3b5cb0fc37149 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[45] +aad = 436f756e742d3435 +ct = 14a9d1554fda1be61d9021326e89660c1acbca38c6923e3d692aec5111951cd83f2964ba11559d77435827c1f5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[46] +aad = 436f756e742d3436 +ct = 80c49255f7128578f72e7629a785b35b9258193d34d9548c4f2ec6949ceab47e46f98b994916392b68f1d1bbf7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[47] +aad = 436f756e742d3437 +ct = 95adf915c54dbe98c5df44ef5614c3e230b11a3670ee42bab04e6a6f91469c5c66e81e216588fdf2dd99c258e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[48] +aad = 436f756e742d3438 +ct = 6423b7f11828c7fbd511c9c31360b0eece14ccc2757b0ed5719d76fabd34684c01b352dd23db7a96c7bc087858 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[49] +aad = 436f756e742d3439 +ct = b1d5d7e0e021a541967fa7d18c98113d45178f0182625412050798a662868b8fe11b25d7a9c1c25dae2b1ef816 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[50] +aad = 436f756e742d3530 +ct = 40589909d89dff1e3d12880d92f77ff17816c26281ef373f269429da1a55878aee40eb94c6811ce9cec8cdf86b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[51] +aad = 436f756e742d3531 +ct = 78f85912bd2b2a19a72dab435752a84205e66d974e18dd25c85b5583689e3345d1510f48daf82280278b7b8a89 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[52] +aad = 436f756e742d3532 +ct = 81efea47aa340b6820c2837dc7fe71816866009e6ea53c96c2a0adfc54b4fe6c1e2dc1fde6571b7c968f97fbeb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[53] +aad = 436f756e742d3533 +ct = 0905ee50dc39591418a1f5039831557a5c74f1f3f3449f882a90d3dd3374292405c9686fb75aa42fa578a84c87 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[54] +aad = 436f756e742d3534 +ct = 26bb1cfefb74e270f174ee66f663238ea83e60b88103b63b9ae24e6352d1b8065ebe7d8201b9e38347f29b0dcc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[55] +aad = 436f756e742d3535 +ct = bb9c93863e7e2d0e2d8ec01e9ee427b04353d0aa16cfa70fc0a5a0b871b402b7ba8327a1ec87bfd09951f794c7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[56] +aad = 436f756e742d3536 +ct = c4e9cae678ea5034935a97f57bf1af56718ac35a41a3ec6b500d4009a45f83a0079247a842cc552f7d016384dc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[57] +aad = 436f756e742d3537 +ct = b303919f9afcf116b989052ff3d2c36bdd86e8d1e846f73076728eb163285bb0b4d84b676da9266e86beae5434 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[58] +aad = 436f756e742d3538 +ct = 48ffcd7049a929723bc6f63b9b81f927cf7d47d725c2b746b5428f77c9c7f2def2fef0355fd856e3f016951953 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[59] +aad = 436f756e742d3539 +ct = 0d17d5e83bb7c1317847870e3b65c48834551d26b1ac370bd3364a7315ac0a01d60a7ba81240867bf94946115c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[60] +aad = 436f756e742d3630 +ct = f1128d25adcfd02a530d84b706b574fe2da6a0eb5733205c4784f281b49adc9ad0f2d5234c78530c6c6a0f6b89 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[61] +aad = 436f756e742d3631 +ct = d861f297a5e3541594ab56cfc02629a594df76b32bd598a995617ddcdc39a91d8384e2c4e54bba9aab5c54dd68 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[62] +aad = 436f756e742d3632 +ct = f00b05533645464bca5201155859aa398a0909ca8de88d6e3ffa48400ef335e817b33e0d3c1e6fb2930c2d6b97 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[63] +aad = 436f756e742d3633 +ct = 7e7eec0138aa08184ad6acdd6582447c46915b447a68f90d4858328180d29e8eb00a7e73682cc2b7d138e51fdf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[64] +aad = 436f756e742d3634 +ct = 779acc4539e775adeb8e7cd01002b29052e8fd69848d2ae4e8d3632fb012baf915b49cd7403735721cebfdbb7e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[65] +aad = 436f756e742d3635 +ct = 55dbecabad5dbcc11e219ae4a1e7b32d8c9e61c40adf1e968b6f112fb518e6806b9ea5a861e354c71623c34728 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[66] +aad = 436f756e742d3636 +ct = a258855783a45f75aa87c1983a273fea38e73b680870ae1e7ac17f1a1fef97974824cfb6d0150148dc3926700c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[67] +aad = 436f756e742d3637 +ct = 74e188c068d85cd23329407026e61d958ceede570d83786a5a546865c893d20f6d534a9fee14cfd3dbd79c4cd3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[68] +aad = 436f756e742d3638 +ct = c2e441500308b10d6a87660031c460984efb8b17ab81a683ae120c6a4840b3637819189b91738fe804f609d67e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[69] +aad = 436f756e742d3639 +ct = aa78ba7e9b42be745bbc09d65380dc8efe774b9918381370f636444f74d2f9b32b790137c15cc476578f31c97b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[70] +aad = 436f756e742d3730 +ct = 81c762f421e88f82ff881867623536c4c557d257bd302e13abe8fc15ac6357775bf6f05574235058dccf47f253 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[71] +aad = 436f756e742d3731 +ct = 53d4d9e8c6505924b706dbe9216251dc5c31fcdc95b573ee4a17bfdc5e955b19def0ac196ceaa4b9773e3c834a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[72] +aad = 436f756e742d3732 +ct = e24354916b47ec853b84a1287c33618157ad8775582535e4518c24c922769e3f5ec6faf5638e382a4cb1fa02d9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[73] +aad = 436f756e742d3733 +ct = ebd865bd2fbdbfd431af46125620059547b17c3087f8ca491f480107d57d4298390b050608be4e0a21c43b88a6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[74] +aad = 436f756e742d3734 +ct = 6b65db95d7c4c988bd874624ef532f7e16fa2396f09fb835eb87d8f364c4cdd43d40e58108e0dba57664fa9a80 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[75] +aad = 436f756e742d3735 +ct = 7e897a3558ecb0c042b418956e99756ade9685c4ee20e51a0e7672f2464f8500ffc88c77abdc8ade746858dc83 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[76] +aad = 436f756e742d3736 +ct = e22182df9719afc16da67f866fd2126f728df30497ad18377aee41271245ee745ad0cdf649266d61fc1513c861 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[77] +aad = 436f756e742d3737 +ct = e68d05b1275e7b163a5270de6fc349758d6f779315c0535fef238a22fe9a4d179b35de575464cb74feb601f464 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[78] +aad = 436f756e742d3738 +ct = c709612b0571611f8dbc33f0e617b8db28639dc7f3f8fb28b92a7307ec02ea7481f24383f61e0ece0c720bfd9b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[79] +aad = 436f756e742d3739 +ct = e7921ad24cd30b6f26c1dae851baec4ce3b9c73b0d78f5155dc95748d2de4bd21e5e1cfa4f91b2bc0be8bbcf5a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[80] +aad = 436f756e742d3830 +ct = ec1adb44d17877062e190d664768d2debfff60516fbe1e41a986aee5a92ef6ff782ebe710f6303f02fb9f8d22c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[81] +aad = 436f756e742d3831 +ct = 4e7a4c29def86f64a6278ad5892a12acbf23a512aa61868c307d805536ec8d7d3ff39f39af4aa60527fb4e1d62 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[82] +aad = 436f756e742d3832 +ct = d8fd05006c38f91843976ee6643f05eac768dac716657445ec0599dd8cbd5c82b4da7afb903762b46a955a135a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[83] +aad = 436f756e742d3833 +ct = 68aed23612da5f4ec750a17d6fbd8f2d662216af79662841af53f5bec823de7d36bf8063048452d3c24142d11f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[84] +aad = 436f756e742d3834 +ct = d4223ec08dd6c228bafba7ec4cb5cd9f292c6053d4926ffed54717d78cf6086cffa80b4e90506ee3fdf94b71d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[85] +aad = 436f756e742d3835 +ct = cfdb05355a3b038e365c938f0f2cee592fb08ca9c35c78c4515c82dc73eb96c5c357fa2f54235299e1b868f2ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[86] +aad = 436f756e742d3836 +ct = 1d2cc396f494c7d672cd27cd0da672275b3b8e56a75db07a5a59c08a8c847db020eedb18e5d379e73415a0ad6f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[87] +aad = 436f756e742d3837 +ct = 2e629143169d51384462e2bbed8ad01889dc3226cb27e1aa045ff781ee4e180d64d10e0b157cb47c0ff40eea4a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[88] +aad = 436f756e742d3838 +ct = 30682faf06189ce735e9f440f23be7f7ede908c4264b58d875e979f5eaee82896a5cead43c887cd3b7e7ec8cd9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[89] +aad = 436f756e742d3839 +ct = dec2896694c989f5401ba691a4524cbc2666b5555a8a24d2c626c5b080a18917fc520b45e816fad590350ce296 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[90] +aad = 436f756e742d3930 +ct = 0e063d5ef7f6ef6c68d0eb23f298231ec9b514d8f0424986bf557e3e1e7211b03febc9815026e966fb7a7aa16a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[91] +aad = 436f756e742d3931 +ct = b8b8b19ad281aafd83c9b51c65b963139b294cd916ef8de481153add87cc3af41709cec8e821d2e84417a81fae +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[92] +aad = 436f756e742d3932 +ct = 164baa23d0f660c59da2ba149f96c176d5d269e2f7fd28f0a217b4b0510069ba73dc6817c51e9b214000d2ea79 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[93] +aad = 436f756e742d3933 +ct = 8764d3a57d489fb0d1caccee8ee387737d6bf73b2593d33d048ca34e4876f8a87efa24137f7d5665e602ca9317 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[94] +aad = 436f756e742d3934 +ct = 8e8e7d13327b6e2500f352179745d2407a3302b5e950d63052066686e177b9f4b7a80f9af5ed95539f87e64efd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[95] +aad = 436f756e742d3935 +ct = ed768fd17145c04ddbe967e700c2782dbd20f045b02c1290f0381e5736b4c6d8ef9062a3984f24e7df30ef157c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[96] +aad = 436f756e742d3936 +ct = c6e935a14c9d62d1f066781605e995f6a442b03d8395faf72168f8f74dd6a727878734b0b174c46c9c28895c73 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[97] +aad = 436f756e742d3937 +ct = 640c7f74d5db743f91d2cbf2835157438e2266f845da051228d028e5d11ae552f85c0bd8a982e74c97ca025bec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[98] +aad = 436f756e742d3938 +ct = c877812f62ea39df47fd07eb1f966d22961d0ee1223605eb408a72fe5e4e3ff82e24e3709d0372ca3629f89c57 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[99] +aad = 436f756e742d3939 +ct = c27a98b74f08c295db7fbe7a8588084d93ffedd38dd15388d410ac196de531cd032b802aef1ee054385c7ef2f4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[100] +aad = 436f756e742d313030 +ct = ccf5a342f7c7539a664148935ed0f987e40d4fabad939ad5b02f5acb5fcb1bc48d741f3fe7ac40caeffc583fa4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[101] +aad = 436f756e742d313031 +ct = 41a3ac1565039c6e4a5b51d16af8cf336ed172c66355110532c444e12f05a8b1432e42366a2c238a3783bef9d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[102] +aad = 436f756e742d313032 +ct = 41488a3bd047f8df83873cbd033e5968212f67fccccaf13bdc210c19e1dd3ccd8e824a558241ae9d95e9c248d4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[103] +aad = 436f756e742d313033 +ct = 574fcc938cf6f8c6526abee8e55ed885f903c976687e4c9027423dcfbbb3f39963a245e76936565a7e76019429 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[104] +aad = 436f756e742d313034 +ct = 4f9bbf1a8760116c1b831f55c130cb36aee457d70646cf9fd51db76aa97bdb0af8af9604a063d0867bfea33695 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[105] +aad = 436f756e742d313035 +ct = e3feea82ee8ac18db41f0705314450885e2dbf82bfac9560841873035f08a3f0ef73fa9698733b3c7ef66223a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[106] +aad = 436f756e742d313036 +ct = 0f2d0702759e3324dc2344fd76b3433b817bfd1c45fd0093442225278900c44431fdd58fc104fc5aa4e39646dc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[107] +aad = 436f756e742d313037 +ct = 0e57cddecda79bdffb0a420c105e7ce60e925eed426e12b11a93bbd59dead319be4e1cf814d3fdf0f0d7d1915a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[108] +aad = 436f756e742d313038 +ct = 06203cfd8008938ec9e40e7028434c609a9d0c08357204e3c647d0f4c4ff61c0567369e6e3e3dd55c215e7633a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[109] +aad = 436f756e742d313039 +ct = e83d95ed66835a5821497f579fddfbc90bb929067f59395b7a81d5bc37cfcd37f8015679cc5594abc0fe3f89ff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[110] +aad = 436f756e742d313130 +ct = ce160fd00d1f74ad81194be00adf1a26e6fe7523527275c66e28408eda44f79ad4b58b6ce945dbad4034bfb3f5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[111] +aad = 436f756e742d313131 +ct = 87cb938176303337c890c97e751bf46022e785c0886c9fb12dc01a0e136ef540c6b307185fc80498c86d025ab2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[112] +aad = 436f756e742d313132 +ct = 87745970e4bdcc30ff562fac3a24247ae4fd4b00c1badb1de5bc7c09da38ee855b7ff45f7b8e37386cfdb2c878 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[113] +aad = 436f756e742d313133 +ct = 057a11e5a712a416137063090c0dcc47c8a15844f61020e17572414b19874df7a59230c8a750439964c9f1b000 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[114] +aad = 436f756e742d313134 +ct = 928d39b871aa9d24c62b30fa5351f789f2b3603d43cdb9b907f5c0c6ddc5d173c763c229ee1f4327c1c82c535f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[115] +aad = 436f756e742d313135 +ct = f1ec3906931b884e37fa8e9ee7a64115e1422250a7961973d680c1ab2048286604f9704270733acf4b5100d9a7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[116] +aad = 436f756e742d313136 +ct = ba1826f1ffc1c9aaf2f85cb5969c62bdd93c2bbd7d8a170c20ec48dd2fad4cd4ee8b87cb9709f924c71e66dfd5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[117] +aad = 436f756e742d313137 +ct = ce40394e216087d9b8a4ac3f02293e9982385d768917bb6cc3d48f0e95953cc4953eb4fab74fccf9dd657d438d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[118] +aad = 436f756e742d313138 +ct = 8b0c21afd5e221222919c40aec322caee52329e3d539f3ede932507ed58b6df54aa82c9a7ea38e208edb352688 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[119] +aad = 436f756e742d313139 +ct = 0f1d754199a31be1d31ca450e0ac1254005ffa1e8f09b19a7fe8a7cc5a9a4203a29b2f16bef2b7e4988c527142 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[120] +aad = 436f756e742d313230 +ct = fcaf466b4b2bcf7fe9aa40bc9b64f65f3991f8f1f5cf88a3cd01c08d06dff49d4723b1e12c74acc0a9ca34b1bc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[121] +aad = 436f756e742d313231 +ct = 2c0df3a3e5e0c623d6b5dc686a7ff8a04af53d26823cb3d9e04f3b57c024b2fd1497d37c5c8e0b116f87871d1e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[122] +aad = 436f756e742d313232 +ct = 59a0b89a83b17c828f27f139f5fdd9d20b23885b96a048cdce77f3ab44f027b5a4c692e9440585202810987d95 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[123] +aad = 436f756e742d313233 +ct = a38fa1a210c234f23eccd50ba9d659ce8bf2d5c038eb25cd9ad35f51055f9f81872451c69aa211a10f2ab57c0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[124] +aad = 436f756e742d313234 +ct = b16350daa202517f83f04aea178d891c0da1ba51c05d931df1fd5ee6539c8641067e7816d7b7698878ca2c4bcf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[125] +aad = 436f756e742d313235 +ct = fbbabadb7866f15e2854ef3b1e83b6b6817ec4dc08aeebd751477e4ee812c69e484722f81f36aea93994f43a7f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[126] +aad = 436f756e742d313236 +ct = 80d1dded295ca46503231fd6f818dab6d8871e5fb4e912d32f365f16918c75f2b63289455ff0e2b965ebcd8397 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[127] +aad = 436f756e742d313237 +ct = b38d6b76e31bd7a0c0ffccab44dd8af04542a7a776d6923fc9c3517c3a13b2f7f6d00a638371b88bacef9e7454 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[128] +aad = 436f756e742d313238 +ct = 712dff71ac2ff413b71e19ee85d7f356aadaababd3b1022c6bed98901f15809c83fa345a8d2b37f6c8a91c1f9d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[129] +aad = 436f756e742d313239 +ct = 674ad7c5c9f165d8db6dffbae4ff1275363c86b3f8771526ba439dbb82447b7877aaea9fdcca24f95762357cb5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[130] +aad = 436f756e742d313330 +ct = 7992e03bec014e9a14c48df8640f9a57c988aa2d44cbe96fdb2ef28c7ad7d6a7b98d30c226d91e8ffe58115c4a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[131] +aad = 436f756e742d313331 +ct = ecf38821b622ada1980f9f39764e648d6c378014c27988ab57c12ce8bc1582c6089fb93b62948f4d8a372a8873 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[132] +aad = 436f756e742d313332 +ct = 919b9320b97e6739b148babfbe9afdf73631ef1b6842eb602c9aadd9abd90871bb97d6888a85ff04178ed6bdb6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[133] +aad = 436f756e742d313333 +ct = 0c6a0191ae01fdc1a4add4b45f6bc033f8db3fcc815f360ce8f06c76b693a780b8863513edcc21870b14e08c7f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[134] +aad = 436f756e742d313334 +ct = 8b71302c37c6d4c0c31e5e9edb6d1c4a73f824f5886bc5a9af7509ea82b81b2177884c851683f29e71d04a1e7d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[135] +aad = 436f756e742d313335 +ct = 4d19938163037973e7ab01bf174a7f282dac83717695d8dbe7f2009ead5df9e76c8a756b94210be0fb63977fb4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[136] +aad = 436f756e742d313336 +ct = e1050e138a3dd5a83e4d4b48332f9bf240e1d4e2b2b9a5f8689bee21530906d56e2464cf9f2719735ee5c71c24 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[137] +aad = 436f756e742d313337 +ct = 9569a0d340a6edc696a4b050995a3a44dea83eab2022acd2af86ab1ff105dbf81c165d5af4b8d49dfb7f502075 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[138] +aad = 436f756e742d313338 +ct = 0a3c6c830debbe75e1b59bef2b6bfbd7837efcdfbf136d312fa67f52022e2dbc958a77824cfde86ac4b05afb29 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[139] +aad = 436f756e742d313339 +ct = f15cdd312cc3afda27588be78fa806f95a7d822f47e47ec943b9b33f1a298604862ad3c5b5cf5ea3f71892c4ed +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[140] +aad = 436f756e742d313430 +ct = a7d176802e8f22ad9d03fdbae671f025e1a25c2c0f395e360c2e33259024226fc5073d86f3956b963ff3a2f7d1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[141] +aad = 436f756e742d313431 +ct = 666c24acea0016eaa2f7389c8d38139a3d8054027ff7768968001a2e8f0269895ae63ef4c60244111de9f30851 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[142] +aad = 436f756e742d313432 +ct = 7b42f95692712f0c2174f6b6ffe13a508024938db0be15c38ae7db49347b712367b1a5c802fc691c89ca35a01f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[143] +aad = 436f756e742d313433 +ct = 17c1db58c01c6080a242829bd78ed8d05698e08e46a818432dd30f6246660682f2b0a7e84b3d68a769c790fc50 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[144] +aad = 436f756e742d313434 +ct = c9dcaf84fdc6c03499e56517c30f4649a72d8553d89e11a35ad1aa5e4a8ac49740fb45e24099e83426e23f6dc1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[145] +aad = 436f756e742d313435 +ct = eb4da9f757b7b623c811451e26e813e3afd6cb953b78f51fdb4899f4c4234267f9539751e1d39205f1e0fdf88c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[146] +aad = 436f756e742d313436 +ct = ac44d0c5e093a531f30730731c4e4ab05bee6b2e26d6a26cb3632bf1b898a2e2c3a3683e3dc5d9555c5beab341 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[147] +aad = 436f756e742d313437 +ct = 21034c0975724566e49212a3f3391c806da8de37ca94035f3c23b2976c9c463f8070284a961de49191050acdf9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[148] +aad = 436f756e742d313438 +ct = 260eb15603efa85921057608ddba586409ef1ddcd2bcb7cef08e366b43316ca946a7a612ae7ccaf70602c56755 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[149] +aad = 436f756e742d313439 +ct = 5b1080fb8cc9e38aac521a1acb74bcf681d6675be46199fe9e18b77ab04daaa014ab87e08347a16c5abc67a077 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[150] +aad = 436f756e742d313530 +ct = 748acf3059838f8fc3e201bf3c7fdd94620735cebd39c033e830c5f460ba9f3daab2eb90391aaee12271bfdb52 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[151] +aad = 436f756e742d313531 +ct = bd39beabf523e3d63c38112b19d5e785a4e1ba4b680a25ece763806152eef191f84103e8bc23013d47a7494792 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[152] +aad = 436f756e742d313532 +ct = e064ebbef18fb9918cde267dde2ac801858449a54ca7095333e64ea40cce8500d55ce0b634a7d67a8da936765c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[153] +aad = 436f756e742d313533 +ct = 6c38d5d3c549aba871886308ab645f199924500a8cee97ab5b717355c162135559e3ea400896d7f77a6eb54f32 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[154] +aad = 436f756e742d313534 +ct = 3392e0bd4a6c7be99b0caabc63f3faa47962e044ea44c8c1f87e6d1c37750eef7159fe2fbc2ecf46394c38c822 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[155] +aad = 436f756e742d313535 +ct = 85949e5680516d84c734e98eaed3cf4d0468c8e593b455596dedb85501e8fa6ae2398f0b8f5b1031a2e82ecb05 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[156] +aad = 436f756e742d313536 +ct = 73de9a81c0d4b1f16c44f35be3ea6a5b70612dd00721a4d0a29b803ebc4ff4d7ee541e3675205adc68f24747d3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[157] +aad = 436f756e742d313537 +ct = e029a95e1e931109c356e9b98084ce4577183e81832dcf44a00b0eced864a19591619bc0975c5ff65799c31e07 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[158] +aad = 436f756e742d313538 +ct = 7411e5ea40635de0926f337ac2879662513e2c4aac529f209462a627d92a1feaf6a60ae0f89e6803e29ccbf96f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[159] +aad = 436f756e742d313539 +ct = b6a9c6e49c94ea4463aed98254f0c5d74212f7c5c6e553ad2616d731806fe3aa8897b7ca4c561b9074a83140d0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[160] +aad = 436f756e742d313630 +ct = 0144a8f8972808ea174f7278825a32ca254a4852b52f8bc6a5e8d580f963104b714143f9428a3b49922c081566 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[161] +aad = 436f756e742d313631 +ct = 6e198b0a482fb1a9926a4b6ebabf0d8d98b9f67d8cc57f7e3a3dcafd180dc475f70c4177092fc27cbddd9a8797 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[162] +aad = 436f756e742d313632 +ct = 0821620a4ee768bcb3812c3c2d8308c162ff21018ee134e1ca03b071a533e4048c07986a01fff669268cc0ab9a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[163] +aad = 436f756e742d313633 +ct = 0172193e87dba823a0645368af943d969577018dd10667d5f4e5de0e78104975d54fb0b549b1cc3680877d3970 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[164] +aad = 436f756e742d313634 +ct = 0bbad2f1d25efd58fc3828ef071844eabd233d96021e99da77229fa7732ce2146aaa47f8588eaaef9f46e203c2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[165] +aad = 436f756e742d313635 +ct = 5d597455b07fe5ec6fa2195506c2b8669b16a57f1e473785c483c980be73ad7430608f47bcf9a7639ac1d3234f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[166] +aad = 436f756e742d313636 +ct = dea2d5194bee4483da88bafe716782a0eda13f444b132603f60da166bb2c6eb89460c52f9f6d94d39f5acadc06 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[167] +aad = 436f756e742d313637 +ct = 20fc8a39033882db10832af36bbfd977d2b7e6617d97f79167ae58cf8f4dd2ff7b4401107eb8f527307e9bf996 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[168] +aad = 436f756e742d313638 +ct = 8919e406b57cf86b65d270c0610e08d0a20ad6b0abb59168185522182ff7241587db189e784fadbd1fc2e8d43d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[169] +aad = 436f756e742d313639 +ct = 3dada6d72702d77324dc6c6f0875468e7a2541424c4c630f6489662c9adfdcbba1dff0cafb7fc88e87ebf8df85 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[170] +aad = 436f756e742d313730 +ct = fc711facbaea583427ccccdb33a742d3563e907bbc1fbf986058a83a180ed7c8bdffb59456a0896282a1a56d5c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[171] +aad = 436f756e742d313731 +ct = 6da1755a97d2713b1e1014a342aecd76c2afc73eb9ed0019489ce03f242335d0d1c4e27d6ffd3cff82fae49b15 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[172] +aad = 436f756e742d313732 +ct = ece1bdcb1ac6b1b40e51353dacfdcfad2bafc791a7a3b0ecaffc029b867b21f7fcd775956499d7fae7248d07ea +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[173] +aad = 436f756e742d313733 +ct = a82c8fa07f10d825e8e887ad4e682865009b2abc69a97d773de04c69d8b8fefe411b22b7ca71932d7a94e581f1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[174] +aad = 436f756e742d313734 +ct = beb1bb1d13bc1f782c1c0c7af04df41fb1c80abdb2457a3e867cc518549bcfedef47e6cc4888131a41fcb200c9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[175] +aad = 436f756e742d313735 +ct = db47e78ed46413540b5234199ce614de780192b9c1c575aeb7812ffddf6ce17be860e858ee3e3c0d42c5792e07 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[176] +aad = 436f756e742d313736 +ct = f0f5506ed7a0462246f970ee368bb8387d8569096bcb99dbf8891f73940a822905268ed502b0cf1ba04aaa33ee +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[177] +aad = 436f756e742d313737 +ct = 1bc79c8d612bc791c482e977c526810c2f2b13a94524b11d27fa13c1327d37ae2c722c4c8532d5a0cd48311d8a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[178] +aad = 436f756e742d313738 +ct = 5c2b4e780ab3d3878767987c30b05a72e128a97dbcb4ff5710990580d5846b9d8da26088353d97ab319124c753 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[179] +aad = 436f756e742d313739 +ct = cc5290f5064fa2b8617807b5b049bdaf43b238b4c6befb91cf29fa02a583126ee1dd0e7edd3dca2cfed9fa1286 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[180] +aad = 436f756e742d313830 +ct = aae0acbd27e40ffb1bb46cba24987b04c3785df65c7f495527cfc8eefd8164707901897c0fffd364b7e71daf1e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[181] +aad = 436f756e742d313831 +ct = adbaf18628a9bf2f7b2807f1b64dcd4d948b2d43e407d6b3f0efda980a10399ed4bf0172dc78df45ab38a37839 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[182] +aad = 436f756e742d313832 +ct = 9636e837c2a2b710b80476909bc101475e16ca31e908e7172d8673b3f255c1c629d9ff87491cc75bda56e6d024 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[183] +aad = 436f756e742d313833 +ct = 6b73cd76511d1b00848c653f49a65ef2f13e638ca162f68272d7bc0dfb5b8a4ce978830d5564ff10b6ded0f0cd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[184] +aad = 436f756e742d313834 +ct = 02b30110f09a37893cc95906caa21b18774c30618815c6c1c9f63299e01752961922c5ea2fd3c523901659cf77 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[185] +aad = 436f756e742d313835 +ct = f57be1481639b6cad548c00d37b7df482edfdc43956db30ac724295b1d85f00fc152692f741a85891f8be4ca2c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[186] +aad = 436f756e742d313836 +ct = 023212546fe46931ff786a115ce7dabf776acf8e86c99966411462ff48d8b6b4691b5adc367e7b6ed5722677c1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[187] +aad = 436f756e742d313837 +ct = 082e64f234712947e4da2327ce79a58ae8d6d069d56e5c2c2eaae6c21de8ed795c0f1f4e784a776f7741c08438 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[188] +aad = 436f756e742d313838 +ct = c639b10815fb5487f7c1facf5ab1a1197786052c7d16c62aeb244ad4b2ede0832f0a930b74608e66297ac15c6b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[189] +aad = 436f756e742d313839 +ct = 2e81cf2f2e18243a108b15484743a948d9bed5dee52308d99d8c9d9a52218f4d175d98af472866e8aa8359fe92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[190] +aad = 436f756e742d313930 +ct = 5959e11ba22ea647af8ae85c2263ab4108d52697aff2ed04ca05e6513dddfabd366c4b7eb58b8238b66ca9af81 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[191] +aad = 436f756e742d313931 +ct = 59023b5e7c266003acc252816e20072d372bdaa2435e51aa743fb61ed175f555f3a2c6c7159509033f08bbf705 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[192] +aad = 436f756e742d313932 +ct = ff187830c3018af7cd80ee25d89cb60efc036511df640a00f5e3c68e01effa7cc864adc596b02e63f6e0643b1b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[193] +aad = 436f756e742d313933 +ct = d26f6c40e2cd8b951bd9de1695e038e16e171aed40d7e561d27d887cbbff8aa7e0cdec9a3449275602a47a7862 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[194] +aad = 436f756e742d313934 +ct = ab4bf32696a6526f3bd4811a1668f4156343ecd0bb955b4284dcd41d557228a2762508d0d25a5939e96e1cb1af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[195] +aad = 436f756e742d313935 +ct = 4a97b0def6df480494c89c9fa01bbe101e26df3ee3bfe37c3953db7a3179c157785be26b1494e822abd9e6a29d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[196] +aad = 436f756e742d313936 +ct = 706b714d14ea60e81275680291e3a378c75d4786f3f695edaab3b55e3d60f26daddac1410f697456494a1c7d4f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[197] +aad = 436f756e742d313937 +ct = 6efd6804d7a4e0fb63f30ccf8169cd98d9084eed4f6e12b6f2cd9e7662e537e7b4e7f2c000707f94027e6329d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[198] +aad = 436f756e742d313938 +ct = 12a2336fbaf8e62bfc6973fdf694cc5f17171d0e9a40cce605300baca5a2fa94cdc2264a5595c318a665a7b1fe +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[199] +aad = 436f756e742d313939 +ct = 9119734039d0d62a3d4e274a71aae0c44e7d4484351a140930dcafa0c948f9e9f853ac462680b959b00a7b7289 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[200] +aad = 436f756e742d323030 +ct = c138d64d0a9e2e0b3c320639fbb1740ac031af327082a6931055be1a06abdc6146c06d332fc3b735bcfdd71dd5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[201] +aad = 436f756e742d323031 +ct = 0b49b026bfb3a285031b51c7754b411f7957e10abf30baa9805282820d35e608d33c27bd88387f426b399f6e0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[202] +aad = 436f756e742d323032 +ct = 48b5ba86a186a1a3ea8bfaf654825753b34e1cad6f516a67328cfd2f1a42f3816ee4f3d7f7268118b630b98184 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[203] +aad = 436f756e742d323033 +ct = 5c1b689bedc9135808da37382be37c51d864f34d2afbbaa6b8099a50c56a437935f89915fdd433d071eb8a0f6b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[204] +aad = 436f756e742d323034 +ct = 2f09368a0250252f1ff716a7fe7f3f4bcedff8bc5dd0933e4adc3339ba45dd40ed897e378fd07914e320732df1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[205] +aad = 436f756e742d323035 +ct = 18e6baaef1e9ffb1672a61514ca82d450afc98742e745f6f5d3975015458d126d006ca44cbc7935bf5228dee68 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[206] +aad = 436f756e742d323036 +ct = 0919bbaf2f6af376d9fae24789b50239b882c8f5a4b9efd9201de586a03c451acfed1f442d832b6d89f8dac510 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[207] +aad = 436f756e742d323037 +ct = f3327a4dd69ff374d01d1b15ef482b12e62039fe3222a92fcafb4e8d2c7fcc421dcdf5a4e9531ff885f84ff80b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[208] +aad = 436f756e742d323038 +ct = 94ebdacecf6707b006db3cadabd1c74dc9b7c2a76361a0987bb777b319d8f8c5b3d215ad87d461ab6aed971449 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[209] +aad = 436f756e742d323039 +ct = 0cdfb393a2e67012b893918ccca4e1ff4a5753d0e201443f1482b36a80393cc33225a3f588284df0c3c78c7287 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[210] +aad = 436f756e742d323130 +ct = b056d018991434a9df8f592db24a3c4603b7c073861ceb7bee1a05da7fafdfca95e0f41ffeec812fd1b67f7071 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[211] +aad = 436f756e742d323131 +ct = b0186870f7e028fb882076b2bc47e5f36ae1fbcd32c178948437c9319972499c2fbe04b3d97e284be09d1ed4a7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[212] +aad = 436f756e742d323132 +ct = 0bdebc296548875e078a212dbf49546bce239d4996225c5a60a4221ce89f6234668d63f9b72f97b6eee78a4565 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[213] +aad = 436f756e742d323133 +ct = f646fa298c141bccb1fa3884697083ec361f01434f92e77edaca191a0727e502c03332744efc30b224785af27b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[214] +aad = 436f756e742d323134 +ct = 9280c7ad9681d7423021a9568e8320f7829719b1f0da68f0dddcdac94166279fb13e5a96dd761af503eb1cfae9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[215] +aad = 436f756e742d323135 +ct = 6a4b9dfaefda495f847107ca29453a8ec540fc8fa65ac6fc9b70f9f7df4f785c9a1027bfe43be12d87f2871c7f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[216] +aad = 436f756e742d323136 +ct = 44e8c01194593ef67a3d4c96b5ae8d1bb0fb704daceb1cd69bdcec79d13879f05dbf2d0a7460712a581b82eeb0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[217] +aad = 436f756e742d323137 +ct = 2b1380e65629aa7ca2a6b80e9ae84de58df4b74362c3e96797d7057c4a3daadb30770fd1cd0d5e2ac7c1054825 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[218] +aad = 436f756e742d323138 +ct = 22290f1850294d2ef5d97728d159bcc625cc21e8edb6f8439a172e5993ae830e2c3762bcc97ee8befdccda4992 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[219] +aad = 436f756e742d323139 +ct = 3307ecefeca33cb0af199c0f2a244551486e1f1bc4ca8914089200acc256afc561eee8195092be0e4a411c7beb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[220] +aad = 436f756e742d323230 +ct = 386846e2fa77e30f8412c284dd1be07629bcd26d0b4e47d8ce110cc5b92f37d60caf01d2c5f67d71d67c4447de +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[221] +aad = 436f756e742d323231 +ct = afdbf84d8e54d8c40fc3be47cf6d9faf2dd72c79a2137fd2a8c5d54318d0c9a732221fb5297c474e2a991713cc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[222] +aad = 436f756e742d323232 +ct = 75d45f00f840e092c4d4cbe5caaa42ed3b945e41d797a3ec05a88098693dc4e3c1a666ededbf1ae645f383e159 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[223] +aad = 436f756e742d323233 +ct = 619671c49371d295459e04910531b337ce94e299750ce555be6679c7fdf8cc3968407dcb93b1ead46874fc830e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[224] +aad = 436f756e742d323234 +ct = ba0a29d98431583852bf83f8e55fb5cc40ea427b9794e9ca3e8207b8687a67ea6171d0d1c1611190a842a5addc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[225] +aad = 436f756e742d323235 +ct = dcc3890bef7435c7c288dfbfc5e58c74aeff9a20bfd045bb7f7f022e2c7694c5cc9a5143ec4b2994b603e564fd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[226] +aad = 436f756e742d323236 +ct = 5368b7d686df3ff1a8cebe67599d5afe43a010d929f8fb4a4de781675a05a116f0d982b3ccf267f3c9fad3d445 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[227] +aad = 436f756e742d323237 +ct = 431d7c4727260581412b113546bc12c9c93dde222e9de5eb7f66b5017448dc9d9c0a4adc82c39a41f75cc748dd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[228] +aad = 436f756e742d323238 +ct = 443592062e2dcc3dd9b02de2f942f78e25cac8cc369c9fdc05f4842976a052f92071fb0e7255bff891a7be8c4f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[229] +aad = 436f756e742d323239 +ct = ae3167c7b7b19e5d7687149ab683e78f82907154018f534e171dabf8efdc8aa14e3fe8fded58621114c81741d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[230] +aad = 436f756e742d323330 +ct = c7a14a5d0b8356259963249704b0aad3d34798c016a16a8deed4302c495698cdad7c7869a9ef37a5967b1abb7a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[231] +aad = 436f756e742d323331 +ct = fc24dad9629f6af229a2657de379b0d4d2cdd96cd75d188a4678cb0b250659de5d81fa4883cc2bbec0f8c28b66 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[232] +aad = 436f756e742d323332 +ct = 39ab0bc6a0646c8de81459029470fa3136d55df55fc54d1d3afc47cf6fe6ad800ae446d12cf09a5100f02395a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[233] +aad = 436f756e742d323333 +ct = afec06f0b00a31ab6159234457ce72a2d5adc67ddb8c47bc5aca0aad8ea55927194f525f84d550c573ae0e8f47 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[234] +aad = 436f756e742d323334 +ct = 4539a8680edf07c9b9d1af9e4170787bb102ea92a23d54fb4e5469743c12133965c63b6e45043f3106c50098aa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[235] +aad = 436f756e742d323335 +ct = a6a03166a88cf888d40dad901b60804d20c8d029cefa54219ba73d54cc778a3df86bf64a96f1fd24124046707a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[236] +aad = 436f756e742d323336 +ct = f3222bea93067c2e332644fc1664ed2488ebf8f7f44192ec2dbeae2f871cc2de1eb6e84c1e96d092888a287cec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[237] +aad = 436f756e742d323337 +ct = 1b10a02557273203ab50bbe59f2060945294f92d20306238b2261fc05b348d0a906cb81e7d797bd2819c07546a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[238] +aad = 436f756e742d323338 +ct = e2b010ee2ed3c44963f53b1aa2c25a28fed1827d847c0680793184933003282e97c4f73f5536d50b1e66a4ec1b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[239] +aad = 436f756e742d323339 +ct = 48e550102329f31e07563ded93ee54d56f9f84ba038d57f1fc9bfec64e24f43957316b293917058c0f0002ce2a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[240] +aad = 436f756e742d323430 +ct = f8c284fc4fe2da5e991fad6f20d7173900afc7c4f8c54402f8296e3c03aeea8adcd600023a91320d63ee183b8b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[241] +aad = 436f756e742d323431 +ct = 7ac40f8c1a386294d379adc3a647149c6f799c19b7c54e2dd822e1591fafee76ae365081d0017cb9e02ed3b0d5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[242] +aad = 436f756e742d323432 +ct = 9f756ecc7df0fcd0bcc523ee8428b0ca1df84d87112d4a0e463acac87a44e350f0d8071956d8411ba5f6910c49 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[243] +aad = 436f756e742d323433 +ct = 8eb483703acf0d2519cc0a332af3863493ebda01ec30543c7d76ac3ddcaff5dfb6e44e4542d66affb5199c163f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[244] +aad = 436f756e742d323434 +ct = 9062b610d72661c5ea3105b181c94ff5e8267c90eb952435a8b5a7bd508313e3df38c6295752f8d2f3e3996b1c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[245] +aad = 436f756e742d323435 +ct = a2fecebbe7d675372f3529117909a4f0857c088250dfda451000079cb3cbff13fd5d1ec42260e9d13eabe7f12b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[246] +aad = 436f756e742d323436 +ct = 1a096cdc616c7cb93e8f0d8a602171519bac322876cdfba0588d10534689047983feec0074e4ad6e5b84230866 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[247] +aad = 436f756e742d323437 +ct = d671063c9859ecf5c9a46c4898981591c1ff775a69d3f76f547267b1dac39d75f09f3aeb52e725b88ef3286fec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[248] +aad = 436f756e742d323438 +ct = c14ba39db18c6b947b30c9c076d1109368678bbf98ddc4a9476f55e9141db1e529717167ebca9bda105de63d2b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[249] +aad = 436f756e742d323439 +ct = 4a18835cd7161423b2b5e89b7e1ae330fc735e669869e9ae0028ee2264d2089c061bb5e749b02c24ad87caca61 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[250] +aad = 436f756e742d323530 +ct = 87f62fff19fea3a8db271bb6da2d496a0df4e1a2c047b8ce15043beab3d37d8cadf943bcb647656a1d74df73ba +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[251] +aad = 436f756e742d323531 +ct = 290c9854cfb86e72c880c9239844ed06f9a1a0bd047c14f22b23ac20192e44589c9ff520fc95e56b9a05fd8ac4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[252] +aad = 436f756e742d323532 +ct = fc0290fc16902bcad8510cfc9448212d90fb659ea732cea1da49b7ae079bb148706f2bfa54dc4df3374c4e3ed1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[253] +aad = 436f756e742d323533 +ct = 57004170f3586e7f1f3dd0ad318e9d4e623ea62c0b8cbb130d452f3f8610627b2acfa8247b6fa3efd68abd11fb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[254] +aad = 436f756e742d323534 +ct = 434dcf1f1d2073b5a965ba8b47f36a65a98ad6187b12068660353d70377682ab2b1bf852188458861a3f321819 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[255] +aad = 436f756e742d323535 +ct = 8f2814a2c548b3be50259713c6724009e092d37789f6856553d61df23ebc079235f710e6af3c3ca6eaba7c7c6c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[256] +aad = 436f756e742d323536 +ct = b45b69d419a9be7219d8c94365b89ad6951caf4576ea4774ea40e9b7047a09d6537d1aa2f7c12d6ae4b729b4d0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# exports[0] +exporter_context = +L = 32 +exported_value = 9b13c510416ac977b553bf1741018809c246a695f45eff6d3b0356dbefe1e660 +# exports[1] +exporter_context = 00 +L = 32 +exported_value = 6c8b7be3a20a5684edecb4253619d9051ce8583baf850e0cb53c402bdcaf8ebb +# exports[2] +exporter_context = 54657374436f6e74657874 +L = 32 +exported_value = 477a50d804c7c51941f69b8e32fe8288386ee1a84905fe4938d58972f24ac938 + +mode = 2 +kem_id = 16 +kdf_id = 1 +aead_id = 3 +info = 4f6465206f6e2061204772656369616e2055726e +skRm = 3cb2c125b8c5a81d165a333048f5dcae29a2ab2072625adad66dbb0f48689af9 +skEm = 085fd5d5e6ce6497c79df960cac93710006b76217d8bcfafbd2bb2c20ea03c42 +pkRm = 0444f6ee41818d9fe0f8265bffd016b7e2dd3964d610d0f7514244a60dbb7a11ece876bb110a97a2ac6a9542d7344bf7d2bd59345e3e75e497f7416cf38d296233 +pkEm = 040d5176aedba55bc41709261e9195c5146bb62d783031280775f32e507d79b5cbc5748b6be6359760c73cfe10ca19521af704ca6d91ff32fc0739527b9385d415 +ikmE = 0ecd212019008138a31f9104d5dba76b9f8e34d5b996041fff9e3df221dd0d5d +ikmR = d32236d8378b9563840653789eb7bc33c3c720e537391727bf1c812d0eac110f +pkSm = 04265529a04d4f46ab6fa3af4943774a9f1127821656a75a35fade898a9a1b014f64d874e88cddb24c1c3d79004d3a587db67670ca357ff4fba7e8b56ec013b98b +skSm = 39b19402e742d48d319d24d68e494daa4492817342e593285944830320912519 +# encryptions[0] +aad = 436f756e742d30 +ct = 25881f219935eec5ba70d7b421f13c35005734f3e4d959680270f55d71e2f5cb3bd2daced2770bf3d9d4916872 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[1] +aad = 436f756e742d31 +ct = 653f0036e52a376f5d2dd85b3204b55455b7835c231255ae098d09ed138719b97185129786338ab6543f753193 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[2] +aad = 436f756e742d32 +ct = 60878706117f22180c788e62df6a595bc41906096a11a9513e84f0141e43239e81a98d7a235abc64112fcb8ddd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[3] +aad = 436f756e742d33 +ct = 2824bc845816bad046821fabc192412f9ba79ab9f7373def76cff5d7a49ae4cb2354e90b95a3686d9f9bdb8cf6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[4] +aad = 436f756e742d34 +ct = 0f9094dd08240b5fa7a388b824d19d5b4b1e126cebfd67a062c32f9ba9f1f3866cc38de7df2702626e2ab65c0f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[5] +aad = 436f756e742d35 +ct = f268702fca91a3b3d6c02c200aa277cc0f3572124afd53a0f928f8ca977466a15e37e41f73cdcf5027429ee6df +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[6] +aad = 436f756e742d36 +ct = 5c293be68c23161a1b82bad71497f59e8d9681e3dd0737239b463d0c04b26c83e132031aca7e4025cc33cc11e8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[7] +aad = 436f756e742d37 +ct = 78786384731d10b95c6aa823ec1b3f67afb6b6e4fbecef00a6918591353fb68225196511d04cdaa83abcae69f7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[8] +aad = 436f756e742d38 +ct = 15e71193eaa292ad99e4978526e4d5de6c9b04078af9b055843d0a042126db724f1127cbb29d7fb54fda6d3ee9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[9] +aad = 436f756e742d39 +ct = 668a035e9f57777b5188ad1e90a23cecf9f61c783828e04ea0bbcf9502d28dd92566be84be32fa90e07fa056c5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[10] +aad = 436f756e742d3130 +ct = dc37b1802b2febdaaebf348d7a4946a94398e8e429c2d01cbc3e3581451fa3621f704e82463ca27267fde39374 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[11] +aad = 436f756e742d3131 +ct = 4c9e9fd5c915a2c11c6bf8f9dcb296848724ff771aacd896a4ab1b1cb638adbfa9fd341cff5d7a854015400131 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[12] +aad = 436f756e742d3132 +ct = 210ab419fb6dc61e3cc4f4e19c5fa168126e9e69aa8e4da7e8395e948221294d3279e0bea52a663ec728e32faf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[13] +aad = 436f756e742d3133 +ct = 345494e1f47c1ab2bbb277db28fe9097a65a56ce9baec8bb8fb478325ccc60e4122dc440220e459d156f62fdef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[14] +aad = 436f756e742d3134 +ct = 953d0a1e09332918d4ce6ff0064e9925178f008d88930d0a16d5d60a546cc40d395a2f10e85cff6d6bba02c49c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[15] +aad = 436f756e742d3135 +ct = 7f0dc1c849a322fcecb7080c25d37e8b7ad08ad20c753c7e0c6bcda8c560925fe7b1a946e5a97f2d044bf6712a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[16] +aad = 436f756e742d3136 +ct = d1f4ed3af3d8c6a13d0bc872b7be6a895c66fe60582eb6c73c3238f2edb3bcff549b27c74ddac31a9032558c55 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[17] +aad = 436f756e742d3137 +ct = 4d727b855dace6d190d574e4bfadc1930fabe7690a28c8516b8d300c976564560ffa673c0e95cda56965d93a8f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[18] +aad = 436f756e742d3138 +ct = d60a767f473ec5bc14df8a181986b12f5404302ddef72259e4bb162bc66bc415b6524ed14479d9a4e07da81787 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[19] +aad = 436f756e742d3139 +ct = 5e8575e3a237a7a5c775a557663290a0999c20691263556a7338e44033937ac11ceb6298ac4fc8af6b2cb4a4e0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[20] +aad = 436f756e742d3230 +ct = df9c14552f65b7eefcd06ffa7ac4e50a0a3fc85bd93372e73b15b2a42e0cbf4198ea8943a490cf186f2c963c22 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[21] +aad = 436f756e742d3231 +ct = 990f065786e08df0470e62863ae6f49cb2d5f4e19ee2287b240dd83859087a8fe403117dc6b5f0e9d976e4c2af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[22] +aad = 436f756e742d3232 +ct = 8578d5163221067bf80f87234b852e0ad202e627739389f0010fcdcc1e9bb578172b0c40e172cd83092cb8f02f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[23] +aad = 436f756e742d3233 +ct = 82e894260e629970e6c1230b042666347e2a8f6f6d106412b5d4f1667e7ae6860cfa592087777ec0efa34988b4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[24] +aad = 436f756e742d3234 +ct = 1878000135e7ac8d847092dd333515bbf8a59b642cdbb5c70fa39cda7b6cea09b468d421291ddaa2ce8db8658b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[25] +aad = 436f756e742d3235 +ct = ad1a20202dd0c0ea4340804b5ebd1be51c083d5c2022e4d989296fde29cef980eb6aad12baee4af919398c2d1a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[26] +aad = 436f756e742d3236 +ct = e58112dced5bedcfb19fd3fc548b3d375e5e00a4ff3d4a20fb71e901e21262af4b61b2f3d3d647fc85c56338af +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[27] +aad = 436f756e742d3237 +ct = 14ea41ca760554e9c31a5a603d97d544de91f0cfb76a7d9dbb98718b749c535fd3b8e4690783b1dfbbb37948f9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[28] +aad = 436f756e742d3238 +ct = ebd01a14fa0f78c815f8091a4f9666f72bfca0369446c859e794a9aa6d420d20f6d42f1bf24091e3892f9416fd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[29] +aad = 436f756e742d3239 +ct = 18a40f02605651d798f39ba901b6b0c446b34a4ae9834c714d091c0285be40c9ad2017c5fd6e1573fd88d4614b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[30] +aad = 436f756e742d3330 +ct = 96dd5a0bc4e0bdb8141c5b1e3ef42787a02342f504328475dda53734e8f5ccf46de6a991d5257f2f252f0b99f9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[31] +aad = 436f756e742d3331 +ct = 4d426ddd0114f8b0386f7d3dd6289f0c01bf1e3c71c9a488819b87eae8ff116ad003bea59fd3d7ef02cb387529 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[32] +aad = 436f756e742d3332 +ct = 636c02635dbb9d91035d2477afff061a56d9dffa3eab2046f5ba7d194b166f75bf14fca5e06e07e31d2556ce4d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[33] +aad = 436f756e742d3333 +ct = 2c6cd80f496be2a8c045e47a9aee8a19caa779388665fa9e8011c3d5cd07800a3a8bf07986fd27cdf278a0861b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[34] +aad = 436f756e742d3334 +ct = 1a64a4d0896ef163b1b4e0f0e5904b70e49e7ef85dab87e5eb7c393d9c7001212d3d51fd2ddad2698a349f78b9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[35] +aad = 436f756e742d3335 +ct = 98965226e90ad451eecde5e81a270d5e5feb8f4b23e7328c8c53879f53b4b9b6b2478eaea834667b220e333492 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[36] +aad = 436f756e742d3336 +ct = 512123177dbe73cfdbb668fc9ef30e6326b9c03a11f623d01e67e6d4b9a7adfeefb67f93b55c16daff9d4e7b22 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[37] +aad = 436f756e742d3337 +ct = 24464fc06633898853e022f4ba892aa284c9161533c83fda375c6a1683236a7ca1939a5be43141a1b8172c02aa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[38] +aad = 436f756e742d3338 +ct = 14e5901d95ee69d1c98919d96aa288703fbe5e62c20e15c750c6d5e3757cefd33125bc15f5e8900fbc8c202d8d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[39] +aad = 436f756e742d3339 +ct = 8e366ae0e3bac8195ab4094df9a0cf4b1395cb93f05baba5b5422013aa9fa99449d0339103eb481501fd1a5578 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[40] +aad = 436f756e742d3430 +ct = fe11226d7214375cbfffe85551a281a2e992b660baf7f9cd3ca22408efca2e455272f5eae1dcb2984180a3b80d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[41] +aad = 436f756e742d3431 +ct = 3bae18f9f5f6228dd524e58e3340ec05acf164e6573e41214713ac5c734367b503efc95f167c314bcb8dc2be40 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[42] +aad = 436f756e742d3432 +ct = e326d3c5662d76568c2a2c4f512bdcc6c0d3069c18e92f345358d64f1bfe03fc337ec7770fb639754324e33e29 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[43] +aad = 436f756e742d3433 +ct = 976108b48713f36c4b1839dcf27b3b36b2bb7f45fc2ae436c64895f86cf4d67eba6e91befca3304d531e3a6f0d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[44] +aad = 436f756e742d3434 +ct = 81c0223d092b3dde01f2ea2d34af516a967ca3b6ca5a2819f476db5b21ccd1f509d28844aae4e5d174fe02b528 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[45] +aad = 436f756e742d3435 +ct = b68a98c8e1714aa6b95abd96e2e25bbde2de40e00947488f191de2ab56850ba2da48ab7be5d5c1dfe36fe5109b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[46] +aad = 436f756e742d3436 +ct = 3a7055cdc5a2b0a06b890fcd4cb894554cb6ea67777f6310ef1639037b6da0b7751b9b784fddfd9a207cd6df0e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[47] +aad = 436f756e742d3437 +ct = 3519439dcd99f702ff1c82728eec0c525682b0e9a22eba727ce4e5fbb3cbc734caee5f93e60c197319217bf6f7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[48] +aad = 436f756e742d3438 +ct = 25a81f2345d34be470f5a7ead140098e3a8e8c78d935714ed21cafa7659d139165e609bf95fb6f5305777c2596 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[49] +aad = 436f756e742d3439 +ct = 868bc6c0bbf98eee95439b86ff14cbc1be3e86eb17820eb590d05c5aa5740c5c66d5c61972b2e076d894b3307e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[50] +aad = 436f756e742d3530 +ct = dba2a6c832e374a68e7b5e41c64b8d406b11e6688a2da8ec03634d0ecbe6f7abb4a90620ae95f386ebbd61b79f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[51] +aad = 436f756e742d3531 +ct = 09553e1941bd96e29b10fdb3e5899a7b14dc427ff174baae8d3e933c27c324693070f78ef7753b8065f2af0d0c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[52] +aad = 436f756e742d3532 +ct = 10f1463a78fa3fcbb1b89daa65bacf8830805b1d04ff7c59bcd27c0c5614b959621f13f3413a1af5c3a91e3153 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[53] +aad = 436f756e742d3533 +ct = 9e866c9028fe2131428195a7dc48c5e7c9d4f47cc868a267bf59e19c391b649abb5670b1fdf63f27ca61907421 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[54] +aad = 436f756e742d3534 +ct = beeb0ffaa620011aaeb27f2093829563502a87a8ff6a90ac012c70f943064b60ec73068d3511ac76cec078970a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[55] +aad = 436f756e742d3535 +ct = 43b205e8d119ed81360da9b6e0f9dd0f51d84575ea796156b6ec621d08c393c2d058aed3bfe06c3bf931cebad7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[56] +aad = 436f756e742d3536 +ct = b81a462f518f5ed246ec555620936eb8bf14007f39e5c0aed47c2600756eddbbdfec3538806d137bc6b13b6cff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[57] +aad = 436f756e742d3537 +ct = b59fdd1ec0bc2c5deee94b3db8bf7eb26ed338409c3c62af6f5e80c7169a9bd69d567ef8dd8a4effe9e1a2f6a3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[58] +aad = 436f756e742d3538 +ct = e46de672a4422a5516e5a192e3b7eeb6d6db10d5aabb893b7c54353144a373c0d2994058ea9b42b60062509fdb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[59] +aad = 436f756e742d3539 +ct = ece1ffdb1599d6f78437a968244cb0d069c7f8eead5f438acef707fc2ef54d07f70e3fb6bd318c4e68313be373 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[60] +aad = 436f756e742d3630 +ct = 867aef686e0daffeef4930dd67954ec5e25d0d6c2d18464ed071f251ddb6f05d8bf8afdf7b6d0d8e77e3190d57 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[61] +aad = 436f756e742d3631 +ct = f08758733b5d4bb66cc5144d9675e29221626848c824148574fe8bbca806bb2e401ff6807b2d26fda159278401 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[62] +aad = 436f756e742d3632 +ct = 5ac3f79551e9556b776394e5ccae4f3a677123e8c4ee0d5c3a1fe9d4834f16852eeeb71314e634743195a42301 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[63] +aad = 436f756e742d3633 +ct = 799019ee1416036f3744496cc163157bf9db43802a538560d0c96e7cf0fde3b891931b7c898cf2ac917ff98137 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[64] +aad = 436f756e742d3634 +ct = 47d67fcc355916e93c335dc330314cdef99cb05d1e615cded758d288b8514d983441f953c931afdda3593fc48b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[65] +aad = 436f756e742d3635 +ct = 99d524283fc7159075bb9396baa713d82db743a54b38c50239c277c0d15bc3e8693b4168e38a83c350271d9cf1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[66] +aad = 436f756e742d3636 +ct = 03570c8f94644f4eb18cf53c8f83c5ce756f90303bae10738634dadcd8f9fd427a0be8d072fd17a1dd49f272ef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[67] +aad = 436f756e742d3637 +ct = 566f9283166e395f8a005a906ef983843cc1e5edb3f61a65d11cf0e80e151561b6ae9ea9c073bc620a25b1ac92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[68] +aad = 436f756e742d3638 +ct = 8ad6ca07ea499d589895a654e63b44b2f57f3a45d8980204d79e8fdaa2d57eeff523968919f6d40ade472b73bb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[69] +aad = 436f756e742d3639 +ct = 852f8347466f3ae4db6ae236e5637d3e2e3860e6cbf790e7e566fd9a6fe4a1903a1ebe681f09375325553378aa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[70] +aad = 436f756e742d3730 +ct = c7cfae0305cfb575f945bdd2d548fdd812fa70e19212e0626ee48ce19150751a1c92f820ced141bdcb1efed2fb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[71] +aad = 436f756e742d3731 +ct = 52981c85ec3d43ef68f17578a0eea3eb1673d09ed4fb49e7de45532c7794cf134cc91bb978123aead719be409c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[72] +aad = 436f756e742d3732 +ct = 0d23ce39112225947d7efe1018bb94a12adf93ad992cd2dbe18f443bdb34465b677eac13a2ab811963cb7121cf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[73] +aad = 436f756e742d3733 +ct = 441b8dfb92dc5d18cc1a65a3f21148facbf2c819cfc20f989cce2bb6a06d0f856d5df107e3d1260723cc7394b9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[74] +aad = 436f756e742d3734 +ct = 66d038005512663377dd7f9cf33836ce52ff972782b11bbe664b8685785fc870cb83780a145f9ee2847f6e3ed4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[75] +aad = 436f756e742d3735 +ct = 018bd321ba356c74d3f7365db100fdfed55136b734f9eb133e6e388e01b8f926f9e846b6d5ce9bb9c35e0fa586 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[76] +aad = 436f756e742d3736 +ct = 1934ad9e8e25645cbbb404388a588962bf8c58479abadbb4f8eedc803067c4c533ce5d7a94afcad4c4809462a1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[77] +aad = 436f756e742d3737 +ct = a9d4c6d1c53bd268bb4e141e6bd3a1a4110da55222e4e1d22cdce426007a0d66e12cdc2dbefe420c0479d4fbf4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[78] +aad = 436f756e742d3738 +ct = 53bece254de8a91eff98544f6753307cdea031ff67b36f4f9571776aa6fca01a484b63695b628db650ccd3e370 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[79] +aad = 436f756e742d3739 +ct = c480d1c1acde79aaa0e87a591253c19235bc4a42952873b52a4083a370f40e25e03db83f925274957e0bc66353 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[80] +aad = 436f756e742d3830 +ct = 7d9f50b68e669ec2be21fc5d8cfa0bd1ed717f6323f62f892016ba4bbcb142f1833b4e9209ee18e91a48645dc2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[81] +aad = 436f756e742d3831 +ct = cb5c9528ce6dd5664d2e789fa37b8096bcb4f9754e20b2e4a33622bd3cb5ab207f833242c45ca557a5d20d7b1e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[82] +aad = 436f756e742d3832 +ct = 0c8b3ab1021c736fed1c3452df7d850c32cf82b93201d6e3cedca45f4d9cf7038d48028fc1efecde0e96ddd33e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[83] +aad = 436f756e742d3833 +ct = 17bbda42b6a26b851b9501b1e0e88f62ce1cde5cd5b8e9bede5d3153611973feadd8961f02e89f07b8d2b99f5c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[84] +aad = 436f756e742d3834 +ct = aece550cddf570cb0f4b9b9070a649476854d2cc795a47329c2f0b7cb69a72f8b13066db5d3caf8ca318940150 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[85] +aad = 436f756e742d3835 +ct = 9db16d51242aa97b6f9e19714ecf3bbfa2c380168ac8392816c876b106bc95e6785dc66634049958c64a383cdd +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[86] +aad = 436f756e742d3836 +ct = bea3eb0d648917f1a42ed419601049e74560150a33e4d8aa48027451cd20db49a8f5a2fcac81c4a06a011e8dd3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[87] +aad = 436f756e742d3837 +ct = ed3a2b852daa0cc0164f3c38130f64cd8409577b65613410b90d9f870b6a0b586dd8b6f68adab0ca3c9053972d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[88] +aad = 436f756e742d3838 +ct = 0f36be1b953d1e45b764dc4706a5373ae65dccf3ab944bd26d9157bf1e873390dd4633dfd6f5cdc0e376066b92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[89] +aad = 436f756e742d3839 +ct = 8f48e5994de96d0632596649c58e07ee57fc244a8a3e2621a3c341980491f7a0bc6261b14c4c7bf2f7fe82ef86 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[90] +aad = 436f756e742d3930 +ct = 17f948c140a2036c2b232dc33531f473dfc5371714f19b1972177bafd6561c45a6d713e95c63b8a97a9489e5f5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[91] +aad = 436f756e742d3931 +ct = 4ad3dead3cab30587d5086b0c13bc96eaf4202772296a20c76853169e7c08f93665b6aef6ed47f2eb8aece9573 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[92] +aad = 436f756e742d3932 +ct = 1b1f4059fcb273ec2189236722f59d8162828b37106841fd4cafcd7c865466d81fc2754cbfd0f50b5934e014bb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[93] +aad = 436f756e742d3933 +ct = df64ede4d3986009b6ae51179e68bd38e726a3505ed7221c9b50e3e956bb7a87c0c9d5653e2877aa922112b959 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[94] +aad = 436f756e742d3934 +ct = 5116b0cb78a1440664a90d4ca41fde84e0cf2b481851609c2453fc33f0bbf1e181a4ca11e8aee576d7942271fe +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[95] +aad = 436f756e742d3935 +ct = f70493b6a264d8a32f3ea76c1720edaf953acd429d8b543ecb9c806fe911d95f1514e589d07feb7fdf48ae4774 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[96] +aad = 436f756e742d3936 +ct = 0c63bd7b3f74d90feaa4df017df95c4f6eaa7656ebdc3bfe3eb73375068f57f9ff31023a0fb48c8635c65a560b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[97] +aad = 436f756e742d3937 +ct = 46ec8d4f3d1e26b956c3f00190b80a09eeace332f8e7cf1c10a63705b542d89f6872c00f7813d760957c857aae +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[98] +aad = 436f756e742d3938 +ct = 8ca521a0894603851a89ae34874559976e9c99938798ce5e3a4126f495a8984ed2d3fb3e7b5bd0a52824f334ae +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[99] +aad = 436f756e742d3939 +ct = f27c826211ae2f26e3917f46c51c2232af66f402ad1d2160496e3279b3257761939c6fef4c5e52143c78a7aa0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[100] +aad = 436f756e742d313030 +ct = 2fa5f22fc6422614b92d72019a4ad2f8b3c6b03cc432bc17fae494572c03b728349e9197f1999f5fd9dde4dbb3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[101] +aad = 436f756e742d313031 +ct = f976f2afd8fcbe83195193893f9fdc5a0996208c803d2662435f7794d8eed726a6fcf66b4a91585f318d587d9e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[102] +aad = 436f756e742d313032 +ct = 266fe7812e3968eefa375e59cb91bd60a8053b33fb75b38c2fd9dd20eab81d3ca81d1658d7aaa29afac3bf1cc7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[103] +aad = 436f756e742d313033 +ct = f04a676edbc3e53ed0e2a64d0aecb7a594c44146f6f91743ddaa0bbe320c1ef4f8cea9ee09b5299bdaedfdd5a9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[104] +aad = 436f756e742d313034 +ct = 5883ed4de0e5eb7fa2a7245f8b8be905389b2a2d496f36ff06f9ac779b9008913c5806955586d28480e211fd92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[105] +aad = 436f756e742d313035 +ct = 3e509e4e51073eb550bafb55b9d1b36a8c7a6aea683d69b8a3f7f8c0775ea0150de5a30f7e290f373d73c5e8d9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[106] +aad = 436f756e742d313036 +ct = 9049296551c3103293514fe2f47430dba02ee6fcce5ed5ac67b977db3ffb4b53ca845118fb58faa98844a4000f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[107] +aad = 436f756e742d313037 +ct = 9c5626757b3a33b96c7d749fbf658ca1b7712e10622a13b4c1fd05026aa6fd1322299da91428a42ea818397397 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[108] +aad = 436f756e742d313038 +ct = abe8ebf261578de4a1788292b8ae6e5dcf2714c78c8f610fc02021ad45601667d06317575c644f1e377c148a18 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[109] +aad = 436f756e742d313039 +ct = 70f34385979af639e91696f7595a0cb6a0ec87f756731f984dbd0eb58e3478e491ae9b3e15d739feb93b62b17a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[110] +aad = 436f756e742d313130 +ct = d82d949e8e4b31b1c3b192a3207d295a274bcfe3bbeffbde82bbfbadbdc2880c8cae7fc076606073f752e7cd0a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[111] +aad = 436f756e742d313131 +ct = d0a201c05515065cd64f635f7ad25543b65448cf4f3ae5f4491735cf7d66a6721f1db9342493ad02573737f575 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[112] +aad = 436f756e742d313132 +ct = a88220418465a1f7797fe72512c4bdccd1ed7029d4d86b815ca8765a920e58d4ac612d327160c4ba9f0f26f968 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[113] +aad = 436f756e742d313133 +ct = 796230d39bbe16d3f703c418b602c94021c8637a3985b5765a72728a75fcf773d00e012aa17c4d0815e99df04d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[114] +aad = 436f756e742d313134 +ct = ac50f6371c3d252e3edc8f9451d7e275ba472cc1e6270900f47e15297844d107d16520242f08683817881c5b41 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[115] +aad = 436f756e742d313135 +ct = 229a6541c44ef916eb755b46347b2f95291e0a7224b6c137617b51bfd47fdb63531002f6093994f4613a767865 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[116] +aad = 436f756e742d313136 +ct = a5423e41526d350159f4750fa85a3b311a3daa2290bae2a5a3e06bc4bfd1c72670f89142fdfcf591862bb5f9b1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[117] +aad = 436f756e742d313137 +ct = 218e1a90a52f183d27e51e2236ecda04ab3ec07f87b6b9dd4b54f447e70f6d2fb794741541ddc30318d55e8e45 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[118] +aad = 436f756e742d313138 +ct = 9556a7c55689d078571ceda4c981b672677cc65031fb7c7a4395879f8198f6d26c4a03a0213744e2774cb33c9e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[119] +aad = 436f756e742d313139 +ct = ab5fe50a6a74093bef6d2e4a46a0398d5813aa540df77bd9552c875cd3554fbf791e5dbb585f4b7d45650e3634 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[120] +aad = 436f756e742d313230 +ct = 7223321b1283324261b8b81828e3f0468da1b0268408f910c49327fa8e7ff48c293a757d5d5f0962532dfb4027 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[121] +aad = 436f756e742d313231 +ct = 1a038eb9b8d39aaf789edce6a01fd84bd5fe08f758270c291a6d45b2b9d0f38f9ac0a83c9752c3f84ce325cd88 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[122] +aad = 436f756e742d313232 +ct = a25af4d36e519bea21f144005963402a42c8f24042d2eecac4dd2b23c431b9cf69113b89fd4bc993790375536b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[123] +aad = 436f756e742d313233 +ct = f9c68c90ec34537c9ac6deb642084187a6bf4197dc3e6054f01ad3d4bcc6da286c6dbb8cc5d5694361f422e56f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[124] +aad = 436f756e742d313234 +ct = 3a8ef272c459d84d6b38050fa82d17237e8e4d59037824d0818704b19ebf577dba55d1a6d40fe1a9cc12bf82aa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[125] +aad = 436f756e742d313235 +ct = c53b09f24ef6f13a125f6c728d36062737c03c45ececedd57a618f56e400a39591c50e165d35580c99152cb048 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[126] +aad = 436f756e742d313236 +ct = 9c9c90bc6a2f47106a7c7b78cf6bfd1fcc2e94a0a605ec3014bd5caf312629112b6f0e0b4b0369f32ff17c091a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[127] +aad = 436f756e742d313237 +ct = 13472e03112cab192933d162de64e3ca8a7c810816a7a6268132cddd6b6f6a328cefc70ef0cefdc8f94da2b253 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[128] +aad = 436f756e742d313238 +ct = 5ffc5106d21eccbe8c33b7d11f5cf43468158a740f11d0b1b526efe98111303c9cceedc57ce7730e077a6dd6d1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[129] +aad = 436f756e742d313239 +ct = 5d4d53ff389260073b6cdb4cc320c770fd7eaa7093d8077e295680c06b215394a62fc1b4b0171e1e92c93e99db +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[130] +aad = 436f756e742d313330 +ct = f902c63592fcfd4e6842f75c5f12362ea67d0b563b9952d38c80279bc5c6423bfd0097625c471985551be56135 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[131] +aad = 436f756e742d313331 +ct = 54d1f7bf9a524a25ef3bbe5a593463b949d8943cacb83444a4cbcf76741c25f15d067adec24eedadb4c8f7a497 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[132] +aad = 436f756e742d313332 +ct = 67cb96e861fbe611aad1502a17f7c557fba2f3a69c0f4f6b8c22f2879d958bf7dca6ae5edb23ccf49b7011d63c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[133] +aad = 436f756e742d313333 +ct = 1af161c2089d8f396ced4a5651bb1f54e79c90bc898c5e2135db26543f4a95c581b2f08030d50f73f6bddc6088 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[134] +aad = 436f756e742d313334 +ct = 0db6d88500e7d6d73a8fe8cd0baacbf0c489200199af079bf145a32270905ab42eaec474ae4a35ef41fd7c3ffa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[135] +aad = 436f756e742d313335 +ct = 19cb59299b6a6aec164f7fff93eb0ad16395e941264e74564d5f877e24af059261db6b9962c6f700abccfcb711 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[136] +aad = 436f756e742d313336 +ct = ac2b85a48825f89d2359e9fb11f39755a23aeaa3c52e7c21cd6243507a337c312fbb22aa73d4237fa64514c318 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[137] +aad = 436f756e742d313337 +ct = c4184889f40e552d2aa53dfe789a19af1306726666d30970e6930c83b0bbd4020f15a4d569347da06b95167b8b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[138] +aad = 436f756e742d313338 +ct = d9541d7ee0eb5535cfe4d1475872b421c4b9d87a5e350eb413b555299a866f73d612b26d3355e020db58ce84e5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[139] +aad = 436f756e742d313339 +ct = 5649831985796ac0a4f9df2698efff9993b157673060ccf910ee5feb22f723db2b7640b9ef687c790ae107a4f0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[140] +aad = 436f756e742d313430 +ct = ff55786745c1a33cb5fefe5d76bfe056c69c6942d3d015b2c25844ba467cfbbb2c7e1d7cfdbde3e7078e41548b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[141] +aad = 436f756e742d313431 +ct = bf474b00298b77055ca572ae8efd86a39159570fbb31352ae91172b9a25e61e752d7ceca478db1f3438f7d11fc +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[142] +aad = 436f756e742d313432 +ct = b6132773b035cf8fe051d6c36be055b553e8822103e391209ea7961d1aa72a7bb13b6fdf6043623e8a96be0f2f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[143] +aad = 436f756e742d313433 +ct = 98f76afa09cfd86ce9decb2bdd5625adee493d5423bb9ff0bf64328018c069281f9a8bc7bef4a40e13ad931414 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[144] +aad = 436f756e742d313434 +ct = ed3be9f2f27ec9ab7020810d9d7d40ae790bb2e0f54f70ddf0326944646bee15c0275d3d1400a9fb5678ee7194 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[145] +aad = 436f756e742d313435 +ct = 5606efe1b9c2224547dd49b0888045c3b35d8bc19a90357295b706704d4b8fd4d341ed2d9faadfa552cc28c376 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[146] +aad = 436f756e742d313436 +ct = 0ab81ff134f0cf4ceda31ebcabf379c65d20e33ad84fe9d9baca9d5cce387981d3f0e4dc7d88df2d500ac9125e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[147] +aad = 436f756e742d313437 +ct = 9513d48cd5fedf539fb1d1eb16068583618af2665a462a0eceaecbfe09ce849f4dac7fe1d7e82dcf3c31eac5f9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[148] +aad = 436f756e742d313438 +ct = 478f6867cc2bc3ac18f15ae45203aa1fc7714d1ba6b97445bafe3aee1613d9ba9be17d8ff8aeaba7bb20f62102 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[149] +aad = 436f756e742d313439 +ct = fc708b24071e9900446d47ef7a5dff8fca3a64a562566aeff9a8130521afbe2429666b6a850c0b53f41a2a225a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[150] +aad = 436f756e742d313530 +ct = 2ddd20f01285da77195913a2810f07e10b88db7f730a3baa6f29ef647b4027c5415bf795ba62d4b1094cd4589b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[151] +aad = 436f756e742d313531 +ct = c51491dc11785107765155b53c0ba9b562a46d64f56ba9db592176f6948dbd7c8efab841f36155ad616058bdc0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[152] +aad = 436f756e742d313532 +ct = db60de5c2490c9d7c2522a3570b5b09b1f2cb69bee2a38c2810ae1b65934d032aff7e140c12c0251e90ed1fc44 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[153] +aad = 436f756e742d313533 +ct = d89dd65c3a837bfa83d2a8dd97072141bddcf450870e1d47772a0f32ecb2ba71fb9a722c92f153e9be94115362 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[154] +aad = 436f756e742d313534 +ct = 3359685066aadb08c99b09c8f5416648d773a6bbb9df1a6a4d736d8bc0d4afc7c28c9e275b68850a39a446fefe +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[155] +aad = 436f756e742d313535 +ct = b88bda1b10c17f9bbdb59381a2cc289fbef5e15fb33a63bdf059a388bf463168eaf2462dfb1094ec6a4297eed8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[156] +aad = 436f756e742d313536 +ct = c596aed94d863ab51ea151e8c0ef1876927f59d57679e9322c382f780e8a833db7f8004f49148b57def89f20ff +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[157] +aad = 436f756e742d313537 +ct = 37f80d00b7e3d9758844f2be8c4a3e400cd32b1e0f404d468960a44db23d2dc93b18e5cffd830945adf333a7b5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[158] +aad = 436f756e742d313538 +ct = 926c92aac5c535aa6b8b359edbca461eff45b1c13688688b66f468d0363af97e65e99811720c29bf135d694124 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[159] +aad = 436f756e742d313539 +ct = 1c857c9fcf7573b3f3aafd5bdf39da194946bad3561c682bab35866df2b65d14f3325b96205dbecc67fe0e685d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[160] +aad = 436f756e742d313630 +ct = fb6c67627eda0d76b1d673093bc93f078730da15570c0df0673d765848cd01ecdfe6f00377a8bb429477b53d8f +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[161] +aad = 436f756e742d313631 +ct = 02ab384a425355a6afd5d010c885980afb536c7440d875009afa7d0966e6bd9ba8244bdaa825c5307780384de4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[162] +aad = 436f756e742d313632 +ct = a246020253541a032afc3215c7ea17ab23eb5f2a228554bfea98c0664de1b151a68dca1210b52d90fead30c1fa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[163] +aad = 436f756e742d313633 +ct = 9798da9d9fe9edffd5e931e7a933e98bcf4dfd5f585c2dacb716d7fb98160c4d05fc62998bcf0a52c4f93640cf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[164] +aad = 436f756e742d313634 +ct = 9e6509ff674a781deadac91f070c65df0eec2fcd968bd16333d22f8df06967a24704036abbe41a82ddfc1640e2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[165] +aad = 436f756e742d313635 +ct = de635d9a20c6fbc38aa8a40e10a9b458e77e72a10a6d4da89ec9356a93fc4c45bb6f889ebd1c232f5858042a11 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[166] +aad = 436f756e742d313636 +ct = 2b59dbb2145ea67f709ec4e4652d0ac573c75759c57164abd5cb91a863e6c109b6d1326c2133f92d967b90c070 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[167] +aad = 436f756e742d313637 +ct = 64b21789917e1641d1bb0c1bf72553e542bdf625e301d7897d0dc3785cc96a0d8416af007fed977ac38dff1b2a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[168] +aad = 436f756e742d313638 +ct = 4f50334ce4c861318382747883eb6b57d8cd957f07a5574375f1906a76a6c7b352911205353af0aa063ab7d88a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[169] +aad = 436f756e742d313639 +ct = 1d366bf1c10ae2575a87b58e1d26d182ec5b09b00cec5d6df754a2b2dd55ecf1e99272282170b3e31a79032719 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[170] +aad = 436f756e742d313730 +ct = aef8ba187b7ce998d25e91b517c09da5134422b1e84c96a8607c8247e982eaaf7be0468123719578dd7796ba9d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[171] +aad = 436f756e742d313731 +ct = f6b38a00cca96e02259112567936808cb2f7f59d33c5c122318e2f964aa21b26dbfa0ca318d579c44e4e0c02ef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[172] +aad = 436f756e742d313732 +ct = cadd9175fcb992825a887ef5a7bcbaf1e8e62b46cb9b50fb028ed84a6b9a728f226ccf57fbbbcba11431b33242 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[173] +aad = 436f756e742d313733 +ct = af58251abc5ed2667d4354e6791344bf8cf3b643ba8accd7898791c3e1ea41f52edc49cd24598f5fa769bed76e +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[174] +aad = 436f756e742d313734 +ct = 70fcc32059c434f9603aedbd3cafa676bc098d9da63331b5e3acfd8f45f6e61c602aac1c1e774c643012f30b92 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[175] +aad = 436f756e742d313735 +ct = 29dd44d1fe906d56854cb667fce408cacc39f78356a53e94122b435220b0b675947b96afbf954a4cc61bc0ccf5 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[176] +aad = 436f756e742d313736 +ct = 180a7263982b3633521f137e3d44da2f27e7434fe6e14f0017db8b08316b0e500957509b82fe0aa7016cf9cac4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[177] +aad = 436f756e742d313737 +ct = 274037e0ddfda63faf62f30c4f0bdc4ca473550c21f45474cc0ba41fbe03691e7be95e77ec42526b7951039275 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[178] +aad = 436f756e742d313738 +ct = 190446b183e07c54701123976c3a49943c5d2938493a802dd4a5a958e28302c81ca3873c8854f2f764c58325e6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[179] +aad = 436f756e742d313739 +ct = 57d2a59d2d83f03ae205be62b666959d15bdcbdf9c43e5eb072cbd77a4d600c61b7a00011d40605424b04225fa +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[180] +aad = 436f756e742d313830 +ct = 6f080b600b3f83b380615b4276fe9784c13c7ab22f651fdd51206886a9cb23f52db59325fdc5073874a7ca08ec +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[181] +aad = 436f756e742d313831 +ct = fcb537f2bc303809353dcda27b73b700547225f700b03ead78e2fe53d34e7983058e4bcdcceca456c1918fc49a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[182] +aad = 436f756e742d313832 +ct = dfe10e2bc7af2d19ccfe37a156436c6c399a0bc8586400542b8786834b703813c2f8ca20a9c2cbe3aab079dbd9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[183] +aad = 436f756e742d313833 +ct = d31a5ee6172cc58aff7aec0464d8390b3eaefb14befe9af8faa82c0d10b15ba1785c53912dfc4459c5d997225b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[184] +aad = 436f756e742d313834 +ct = 6458f753b204dedb79f8573a7bd8c18b47ea06e8b783c36444708dcb546dc075f6b5c65241645ca626ebb87713 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[185] +aad = 436f756e742d313835 +ct = a9d29db90eff37290072f292c4577965ec21257df0d090a9e3a5261b877a2410cbd7001db7264ad3e7fbd967d4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[186] +aad = 436f756e742d313836 +ct = d0353dea6a84d3b24668568f3c3015c698c79645daa51787f9395dca3b7361cc69b5439af528551dfb2d0b9cf9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[187] +aad = 436f756e742d313837 +ct = 8e253d631b453eb657b866a351561e275ba43aa65ff84057512167a8cc8616510a389ed9c9e6f40da441ea6e0b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[188] +aad = 436f756e742d313838 +ct = bbb8c3be5961b878da2dfaf5571568ac973fc2d1bf72c4c2baad447e1794db460379c993779ead346fd884fba6 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[189] +aad = 436f756e742d313839 +ct = 4c28d339c11c17159a29bcc1232713b91e369576c33fa09386382fddb138c500c36ced88d708393b2c5605e745 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[190] +aad = 436f756e742d313930 +ct = db77a417b9bf25dd167f8d0115aa2548b209b0155b48c8a2d8b35e9dc8a5933b4bf6d665a483280a2c05f9ee51 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[191] +aad = 436f756e742d313931 +ct = bd8a53d2d4394252fc425e5c810640f0bf3f9b4d22bbce5eff78d4a758b9907a2f5963eb4cef5f470ca7c32d74 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[192] +aad = 436f756e742d313932 +ct = 430f88408390f69dde57274b585fefb392612a302c0149ad088c8ac8d172487810226ba228367e0940edd97048 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[193] +aad = 436f756e742d313933 +ct = 78fe2805e7212e9d61932338fc7fc797b7be90d48ca60b6e507087950fc203bd7494c20fbaa26231d7e1ed46e3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[194] +aad = 436f756e742d313934 +ct = 3b22ae2dd43f669aebb3fd0c3da8c51200086b040cee387f3e54a38974d2a21ab26a0e8ef61bd8b86bc9456c26 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[195] +aad = 436f756e742d313935 +ct = 5d8240af0540f78bc80265d6f4fb6957071a32d7ee52a4311acf4bbfda140adababc6c9ff77ce63d9e5832f168 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[196] +aad = 436f756e742d313936 +ct = 505b6b892d8495bae8475f2c5d182abf750bd49f4a692a8d27762d22138b2fb3583891efd68499de7f3f08afa7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[197] +aad = 436f756e742d313937 +ct = 6c01f7989a72a3c795a055f9638e0d3939164f17a17ce2b419fdfb4ab0a03dad2d41cb66fd2060721a739d5715 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[198] +aad = 436f756e742d313938 +ct = 5dcc8a3b22bf79e0010019ef8f7a8e6a2e4dd80e6d815bc85ee8a055870082b95e52a1b078c88692acae54fd68 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[199] +aad = 436f756e742d313939 +ct = 5ecc1f3203cf77181754446c793a6debb65ebae3aef5316624ea39414629e89a8f9050b3ede7bfcdcb456dc9c0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[200] +aad = 436f756e742d323030 +ct = 7609d02a71d704a4c1cae30f0f92ed96a4738696ad172b00fddead8213b202cc0239e28b487557975c4c020534 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[201] +aad = 436f756e742d323031 +ct = 96009e8b0e093de3a0e8f09d67739187c760ddb1d70cf4d8b120823ba4766e9943fcb698e2e87689d105a05bab +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[202] +aad = 436f756e742d323032 +ct = a8e65455ad6d25e5e42087f7fb40c4c5876b4310bcda1efaacda1e76332ee44b2d83b6ff333d877d5fb9b051e1 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[203] +aad = 436f756e742d323033 +ct = fa0870fca683401c6240c758d4b7ac94f14423333fabf2565172f6e388336974eec4ad51a64c4145707a1b1db3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[204] +aad = 436f756e742d323034 +ct = 21aa8cc730ad3e88ecf3aee25495626e2f884cb0a56e852577b2731dacb234865db5b907c6ee6be79a4716dee4 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[205] +aad = 436f756e742d323035 +ct = 8c924828d09ae2ace9b33100c860521c4e0316803705d31a13af84f81aaadcaef00b8f78f1b358efd1f5b1885a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[206] +aad = 436f756e742d323036 +ct = 585d5340d7a1adf880c75a67667e85ef93a3ab1b468d74e68ee5f321a8b21a1fed53fd66b7f30b6cf83803576c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[207] +aad = 436f756e742d323037 +ct = 8dd531cae59e828dd00aaf2acd4efe6b59b98a963874025a2ae32376ce8877451821b5e1dfbcc124f86c8ee2e0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[208] +aad = 436f756e742d323038 +ct = bb48bca4c5b646c993855aa2fcaea8c7eb348ee8292297ccf5dd7e57fbd7e3e96ae435ecfd277f3293cab51055 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[209] +aad = 436f756e742d323039 +ct = dd16fa572106a00bd2ed7cf1c2b939564b20e06532ec939d9ddc0552f2103b61de83d4905bdbf5356011bde188 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[210] +aad = 436f756e742d323130 +ct = ee7857010b32d08580f32a774ce88db2ecee95b3f53a98e88756db5385a8875067fc939f9483a21f7c7eac97eb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[211] +aad = 436f756e742d323131 +ct = 35c794191e45fe1d510e49fbb5acdfe56ae8f1c1efb10c689a2c0490bca602fa6432722942904eaf2b4847dc18 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[212] +aad = 436f756e742d323132 +ct = 493eb1d65032dd11c930962f5cde5e069996d86c3324c6e597613a75df03b9ef99e4bfba162d28b7b07e616ccf +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[213] +aad = 436f756e742d323133 +ct = 6b97461f41ce7c7dd5262b8ddce52ed60ba50f4f135482a47f0f6ca6d76bf4c32ea101b0a082e1f5f6927814f7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[214] +aad = 436f756e742d323134 +ct = 5d7d2f3a211d404adc91105a8e5e4d841eb8c1c3b0be356c75c3f98bd6609745ec4e01db21518255ab171b1436 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[215] +aad = 436f756e742d323135 +ct = c0bfa0b52b21ee65455325920d81f5ea2441a6b104460f2be88b03c16e8694a75e445251d63e9a63db8976991c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[216] +aad = 436f756e742d323136 +ct = 7cf502bbad755f6b44ec98ccbfcaf7a4f74838e11c1072edb405bbb9bc14e7565015bbd73d606ec7bbb0b603d3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[217] +aad = 436f756e742d323137 +ct = d918629f1813654c4476e599c00c22ac0c51b12c8b869b74596d9f6778343842097e828815cff35c4c4325a27a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[218] +aad = 436f756e742d323138 +ct = 1b137c077bb2f784029530db09e0065c6045ebf4d02f1e7c40c05cdf5daaab03df741249b9ae6f68cff3100b8c +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[219] +aad = 436f756e742d323139 +ct = 3025f84a14bb9d5688ae662511fcd27f2f0bf570b357c899d53395d0baa6948e8dcf64d64fa5766301f41dde76 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[220] +aad = 436f756e742d323230 +ct = 7c9ce2f83139ce0a3174a4022d9bef9aae5059bc16541133bef045ed7e61c674324b6b440dd0920a21446cde45 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[221] +aad = 436f756e742d323231 +ct = ef524f5c49bc9a31d77c6e9ea6ec84d05f8bc21df72bfcde1de7ed17a4326488b0500869dc8548b8a1a4176fb2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[222] +aad = 436f756e742d323232 +ct = a3aab4dea04d29104b5f386c49414ca26a79e296b06669b11c87dbf038f5cf7e3d0fd8e17e9bb7ab7be8c51c38 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[223] +aad = 436f756e742d323233 +ct = b2fe6c0bc0ca1ef186ec16a3b4f4532c38654cdb6b3a003b1d58dce24f4f58576ff051a0378846240007c6c515 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[224] +aad = 436f756e742d323234 +ct = 3492d8243b5705dae2ddbdd6c79ae435d61c548d54af213322753972729a36b3784684da8d3978ffc0eb4f46be +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[225] +aad = 436f756e742d323235 +ct = b76e4c31e9dc0a6d746e52a00650705a79f2485faa7c61d044169afbc902263d6bbe660922a711325615cff81a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[226] +aad = 436f756e742d323236 +ct = 82cb2c8465d550e1004c472b0137b57f83f82cbbfd7043c8d1f581e51c0745ed3ef2b9f992f465a242a4e64c12 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[227] +aad = 436f756e742d323237 +ct = 20fcb5942788bc657df0b7701b02df95131686636d554d2d9060b627e4172d53e00e22ac0d9317d68068a6eda8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[228] +aad = 436f756e742d323238 +ct = d6ce9a9e927a744536d5036edc6310254285487d3a0e399d6eaae5f8cf7910a63b7a2294646aab004606aae1ef +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[229] +aad = 436f756e742d323239 +ct = 77ceb3d0a17e7fbea0a24b82c4a53de77d58526fd099343762db2d43be8a7b8b979daac8fb0df015ab4b84e038 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[230] +aad = 436f756e742d323330 +ct = c09a0e3ec442a62de6e1a43b35317f2a283505889e9428af66f03ecd4c65ebf681d6120703dc41d59a47c41763 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[231] +aad = 436f756e742d323331 +ct = c10ca59c62ba55feeca763b4108f8603e10c2911b172bb822b453fb27e6698b47fc7b3d6dfd247bebdae3e5700 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[232] +aad = 436f756e742d323332 +ct = b466252b77d5d011f0d16d2d2f943c0fd8d359267b0dc00eafcc537f8d49a671fd4461b5186628c4862df8a1d7 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[233] +aad = 436f756e742d323333 +ct = 4b2eb6ce63f1e5b8e38648daab862545dfcae2eef5e872204ce08636b1fc8789a3965a763288da81d76509e6e9 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[234] +aad = 436f756e742d323334 +ct = a02f127a0caed156e54dfdae5558529ce6c87e5083d592df1e8da96b467eb581713c01999aef2ccd775d5a2fbb +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[235] +aad = 436f756e742d323335 +ct = fe6ee39655296a0a215fd6592a639ef9c149f3012ed790b3ab66b04e16ea8695040e3d704f769c8dc7941d280d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[236] +aad = 436f756e742d323336 +ct = bf60419485101ddf4398c1d6e451447f3871b248f73139b40bc21eb0133e96e4a1e6e5cf1262a104c2b1ded076 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[237] +aad = 436f756e742d323337 +ct = 583ae47b9b89ac17ff0e2a00679915a762601bea123f6f813b011cf2dd67d8a2cd084d19f2020543ea6c994a3a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[238] +aad = 436f756e742d323338 +ct = 3919a3e25e2d2b4ab158a470f012a2e073d5f39a7620bfb439c2294b07e21a81144c78726e6e22ae5e47e65125 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[239] +aad = 436f756e742d323339 +ct = 820cd4d599c971d49bd33fb8a04ed9a9cfe2630699be7c9dec7bc47321561b5e25092a70dc19eff401cb78a145 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[240] +aad = 436f756e742d323430 +ct = 45fb9bd3e58abff9ffda67a7625fcd96d8341e080fcd13b3620f174807f1bdccee88656cc83ceb17075a679914 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[241] +aad = 436f756e742d323431 +ct = cba6d329e7dd7ddb76243f8d2a8c4bd8f3e3a4ff6f9faee029bb9f9dafac5136323f8c56c11c8f2b14239535b3 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[242] +aad = 436f756e742d323432 +ct = 6fe2dc8be0a01ad66d65e9334a26ca0dc8d8826f50161598bc0133a8bd58046abaf5ce038cb7d074e8af1c0bf2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[243] +aad = 436f756e742d323433 +ct = 1bf56cd9f4c7b2c1b27afe53741a9409ffdf3b7bb7a532a05cfecf9bf5e2c24f7e4bc2a1ee8ebcdb2134447418 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[244] +aad = 436f756e742d323434 +ct = 369b60cdf54b3b0c3b4ba46ddb75d9bb3270cf07212440351402785780205788bf020d434898e963367c7487f0 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[245] +aad = 436f756e742d323435 +ct = 0aa7084a42ea7520f756fdcce7f0ae3084db0b95d01530ae13c473f84a34846e5d4b902033813ab5eb34ab4111 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[246] +aad = 436f756e742d323436 +ct = 3482e21e1eb758d324e91a0a381929cb77be1a877c7a79321cd31822196745d99f7d072f670bfe2183cf9b460a +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[247] +aad = 436f756e742d323437 +ct = 6d2a6ee6ce24b2d61e875b6ff9254f3a8fa96c2751b7f7b64159f2c4922436b812e2f95d01479f35d43850ef7d +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[248] +aad = 436f756e742d323438 +ct = 521ba163b49af96074a7d46c5612277ef80c45bfe732530915369babd77b03ba6e34e08f16e6453673fa8fcf58 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[249] +aad = 436f756e742d323439 +ct = e54f77289f0141098c40291c4a869353ea7e6d4e10a0d3bd201fbd3f38100685cad3934a27a4041f8a4fc4fbe8 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[250] +aad = 436f756e742d323530 +ct = 4493efd5b064d70381dd6b1a7f234fe7163261d9f01ed2ffa014a70c752a119d2762b038053772ebca1b2887b2 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[251] +aad = 436f756e742d323531 +ct = b605625e343b109872594723277c0ffd7ea10b734544c1a602f739a9bcc7e8490533aaa3ab9931a9f4c8290591 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[252] +aad = 436f756e742d323532 +ct = 6289332203669ec5720bde812af01be48dc4f8267ad128a00fb717700a63bc413a7cd5188b6efd0bd0d5ebfd37 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[253] +aad = 436f756e742d323533 +ct = 1b9b42f548115bf3f6461eab0a0e182b37505dc1bdce78c90cc9309ef1b275ea4c1e1a0a5c9bdcf886a3437a05 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[254] +aad = 436f756e742d323534 +ct = d59021eeaa9097ad7c5e8f58a455e1af31b2d6ce3787b9b5c5f38fb328b88c8c7f2a9f4ed53f40a3fdc0108f3b +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[255] +aad = 436f756e742d323535 +ct = dd29319e08135c5f8401d6537a364e92172c0e3f095f3fd18923881d11c0a6839345dd0b54acd0edd8f8344792 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# encryptions[256] +aad = 436f756e742d323536 +ct = e2276ec5047bc4b6ed57d6da7da2fb47a77502f0a30f17d040247c73da336d722bc6c89adf68396a0912c6d152 +pt = 4265617574792069732074727574682c20747275746820626561757479 +# exports[0] +exporter_context = +L = 32 +exported_value = 56c4d6c1d3a46c70fd8f4ecda5d27c70886e348efb51bd5edeaa39ff6ce34389 +# exports[1] +exporter_context = 00 +L = 32 +exported_value = d2d3e48ed76832b6b3f28fa84be5f11f09533c0e3c71825a34fb0f1320891b51 +# exports[2] +exporter_context = 54657374436f6e74657874 +L = 32 +exported_value = eb0d312b6263995b4c7761e64b688c215ffd6043ff3bad2368c862784cbe6eff diff --git a/crypto/hpke/translate_test_vectors.py b/crypto/hpke/translate_test_vectors.py index 6879e4214b..cfd51bc297 100755 --- a/crypto/hpke/translate_test_vectors.py +++ b/crypto/hpke/translate_test_vectors.py @@ -30,6 +30,7 @@ HPKE_MODE_BASE = 0 HPKE_MODE_PSK = 1 HPKE_MODE_AUTH = 2 +HPKE_DHKEM_P256_SHA256 = 0x0010 HPKE_DHKEM_X25519_SHA256 = 0x0020 HPKE_HKDF_SHA256 = 0x0001 HPKE_AEAD_EXPORT_ONLY = 0xffff @@ -51,12 +52,13 @@ def read_test_vectors_and_generate_code(json_file_in_path, test_file_out_path): for test in test_vecs: # Filter out test cases that we don't use. if (test["mode"] not in (HPKE_MODE_BASE, HPKE_MODE_AUTH) or - test["kem_id"] != HPKE_DHKEM_X25519_SHA256 or + test["kem_id"] not in (HPKE_DHKEM_X25519_SHA256, + HPKE_DHKEM_P256_SHA256) or test["aead_id"] == HPKE_AEAD_EXPORT_ONLY or test["kdf_id"] != HPKE_HKDF_SHA256): continue - keys = ["mode", "kdf_id", "aead_id", "info", "skRm", "skEm", "pkRm", "pkEm"] + keys = ["mode", "kem_id", "kdf_id", "aead_id", "info", "skRm", "skEm", "pkRm", "pkEm", "ikmE", "ikmR"] if test["mode"] == HPKE_MODE_AUTH: keys.append("pkSm") diff --git a/include/openssl/hpke.h b/include/openssl/hpke.h index 892ab8876d..97ab48f9b8 100644 --- a/include/openssl/hpke.h +++ b/include/openssl/hpke.h @@ -40,12 +40,14 @@ extern "C" { // respectively. // The following constants are KEM identifiers. +#define EVP_HPKE_DHKEM_P256_HKDF_SHA256 0x0010 #define EVP_HPKE_DHKEM_X25519_HKDF_SHA256 0x0020 // The following functions are KEM algorithms which may be used with HPKE. Note // that, while some HPKE KEMs use KDFs internally, this is separate from the // |EVP_HPKE_KDF| selection. OPENSSL_EXPORT const EVP_HPKE_KEM *EVP_hpke_x25519_hkdf_sha256(void); +OPENSSL_EXPORT const EVP_HPKE_KEM *EVP_hpke_p256_hkdf_sha256(void); // EVP_HPKE_KEM_id returns the HPKE KEM identifier for |kem|, which // will be one of the |EVP_HPKE_KEM_*| constants. @@ -53,7 +55,7 @@ OPENSSL_EXPORT uint16_t EVP_HPKE_KEM_id(const EVP_HPKE_KEM *kem); // EVP_HPKE_MAX_PUBLIC_KEY_LENGTH is the maximum length of an encoded public key // for all KEMs currently supported by this library. -#define EVP_HPKE_MAX_PUBLIC_KEY_LENGTH 32 +#define EVP_HPKE_MAX_PUBLIC_KEY_LENGTH 65 // EVP_HPKE_KEM_public_key_len returns the length of a public key for |kem|. // This value will be at most |EVP_HPKE_MAX_PUBLIC_KEY_LENGTH|. @@ -69,7 +71,7 @@ OPENSSL_EXPORT size_t EVP_HPKE_KEM_private_key_len(const EVP_HPKE_KEM *kem); // EVP_HPKE_MAX_ENC_LENGTH is the maximum length of "enc", the encapsulated // shared secret, for all KEMs currently supported by this library. -#define EVP_HPKE_MAX_ENC_LENGTH 32 +#define EVP_HPKE_MAX_ENC_LENGTH 65 // EVP_HPKE_KEM_enc_len returns the length of the "enc", the encapsulated shared // secret, for |kem|. This value will be at most |EVP_HPKE_MAX_ENC_LENGTH|. @@ -233,7 +235,7 @@ OPENSSL_EXPORT int EVP_HPKE_CTX_setup_sender( // EVP_HPKE_CTX_setup_sender_with_seed_for_testing behaves like // |EVP_HPKE_CTX_setup_sender|, but takes a seed to behave deterministically. // The seed's format depends on |kem|. For X25519, it is the sender's -// ephemeral private key. +// ephemeral private key. For P256, it's an HKDF input. OPENSSL_EXPORT int EVP_HPKE_CTX_setup_sender_with_seed_for_testing( EVP_HPKE_CTX *ctx, uint8_t *out_enc, size_t *out_enc_len, size_t max_enc, const EVP_HPKE_KEM *kem, const EVP_HPKE_KDF *kdf, const EVP_HPKE_AEAD *aead, @@ -265,7 +267,7 @@ OPENSSL_EXPORT int EVP_HPKE_CTX_setup_auth_sender( // EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing behaves like // |EVP_HPKE_CTX_setup_auth_sender|, but takes a seed to behave // deterministically. The seed's format depends on |kem|. For X25519, it is the -// sender's ephemeral private key. +// sender's ephemeral private key. For P256, it's an HKDF input. OPENSSL_EXPORT int EVP_HPKE_CTX_setup_auth_sender_with_seed_for_testing( EVP_HPKE_CTX *ctx, uint8_t *out_enc, size_t *out_enc_len, size_t max_enc, const EVP_HPKE_KEY *key, const EVP_HPKE_KDF *kdf, const EVP_HPKE_AEAD *aead, @@ -375,8 +377,8 @@ struct evp_hpke_ctx_st { struct evp_hpke_key_st { const EVP_HPKE_KEM *kem; - uint8_t private_key[X25519_PRIVATE_KEY_LEN]; - uint8_t public_key[X25519_PUBLIC_VALUE_LEN]; + uint8_t private_key[EVP_HPKE_MAX_PRIVATE_KEY_LENGTH]; + uint8_t public_key[EVP_HPKE_MAX_PUBLIC_KEY_LENGTH]; }; From 35510791ffa778125209063f77f2f47715127d21 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 27 Aug 2024 12:10:29 -0400 Subject: [PATCH 43/81] Clarify that ASN1_STRING reprs are not always the DER one Change-Id: I2f3ced7723925542d2dbf0cff1a458b43c7bf48e Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70587 Commit-Queue: Adam Langley Auto-Submit: David Benjamin Reviewed-by: Adam Langley --- include/openssl/asn1.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/openssl/asn1.h b/include/openssl/asn1.h index b7afbbb403..bbc7d068c5 100644 --- a/include/openssl/asn1.h +++ b/include/openssl/asn1.h @@ -468,7 +468,8 @@ DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) // An asn1_string_st (aka |ASN1_STRING|) represents a value of a string-like // ASN.1 type. It contains a |type| field, and a byte string |data| field with a -// type-specific representation. +// type-specific representation. This type-specific representation does not +// always correspond to the DER encoding of the type. // // If |type| is one of |V_ASN1_OCTET_STRING|, |V_ASN1_UTF8STRING|, // |V_ASN1_NUMERICSTRING|, |V_ASN1_PRINTABLESTRING|, |V_ASN1_T61STRING|, @@ -568,6 +569,10 @@ OPENSSL_EXPORT int ASN1_STRING_type(const ASN1_STRING *str); // ASN1_STRING_get0_data returns a pointer to |str|'s contents. Callers should // use |ASN1_STRING_length| to determine the length of the string. The string // may have embedded NUL bytes and may not be NUL-terminated. +// +// The contents of an |ASN1_STRING| encode the value in some type-specific +// representation that does not always correspond to the DER encoding of the +// type. See the documentation for |ASN1_STRING| for details. OPENSSL_EXPORT const unsigned char *ASN1_STRING_get0_data( const ASN1_STRING *str); @@ -575,10 +580,18 @@ OPENSSL_EXPORT const unsigned char *ASN1_STRING_get0_data( // should use |ASN1_STRING_length| to determine the length of the string. The // string may have embedded NUL bytes and may not be NUL-terminated. // +// The contents of an |ASN1_STRING| encode the value in some type-specific +// representation that does not always correspond to the DER encoding of the +// type. See the documentation for |ASN1_STRING| for details. +// // Prefer |ASN1_STRING_get0_data|. OPENSSL_EXPORT unsigned char *ASN1_STRING_data(ASN1_STRING *str); // ASN1_STRING_length returns the length of |str|, in bytes. +// +// The contents of an |ASN1_STRING| encode the value in some type-specific +// representation that does not always correspond to the DER encoding of the +// type. See the documentation for |ASN1_STRING| for details. OPENSSL_EXPORT int ASN1_STRING_length(const ASN1_STRING *str); // ASN1_STRING_cmp compares |a| and |b|'s type and contents. It returns an From 6f7c3dee22c40edd32e3170dd052126f7a9d9d5c Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 27 Aug 2024 12:47:45 -0400 Subject: [PATCH 44/81] Update README with new bugtracker links Recommendation from Chrome security folks was to use the Chromium process for security bugs. Also crbug.com/boringssl links work now. Also since I guess the "bug tracker" is now an "issue tracker", I suppose we can say "issue". Meh. Change-Id: I6c4bb81165989b3ec5f98041e4c6c2cdf52fca2f Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70588 Auto-Submit: David Benjamin Commit-Queue: Adam Langley Reviewed-by: Adam Langley Commit-Queue: David Benjamin --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 22ea0c7a3b..fc5d5e2d28 100644 --- a/README.md +++ b/README.md @@ -24,12 +24,13 @@ not part of the NDK) and a number of other apps/programs. Project links: * [API documentation](https://commondatastorage.googleapis.com/chromium-boringssl-docs/headers.html) - * [Bug tracker](https://issues.chromium.org/issues?q=status:open%20componentid:1590116%2B&s=created_time:desc) - * [Filing new issues](https://issues.chromium.org/issues/new?component=1590116&template=2003314) - * [Filing new security issues](https://issues.chromium.org/issues/new?component=1590116&template=2003205) + * [Issue tracker](https://crbug.com/boringssl) + * [Filing new (public) issues](https://crbug.com/boringssl/new) * [CI](https://ci.chromium.org/p/boringssl/g/main/console) * [Code review](https://boringssl-review.googlesource.com) +To file a security issue, use the [Chromium process](https://www.chromium.org/Home/chromium-security/reporting-security-bugs/) and mention in the report this is for BoringSSL. You can ignore the parts of the process that are specific to Chromium/Chrome. + There are other files in this directory which might be helpful: * [PORTING.md](./PORTING.md): how to port OpenSSL-using code to BoringSSL. From 7fb4d3da5082225c7180267e9daad291887ce982 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 23 Aug 2024 15:27:03 -0400 Subject: [PATCH 45/81] Implement X25519MLKEM768 for TLS ML-KEM is now finalized, so uses of Kyber should migrate to ML-KEM. This adds the new codepoint for TLS, X25519MLKEM768 from draft-kwiatkowski-tls-ecdhe-mlkem-01. One detail to call out: where the Kyber hybrid put X25519 first, this one places MLKEM768 first. Section 3 of the draft discusses why. Bug: 40910498 Change-Id: I18862cd5d25d6ab6c4b38514e8333684dc5e3778 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70547 Reviewed-by: Adam Langley Commit-Queue: David Benjamin --- crypto/obj/obj_dat.h | 5 +- crypto/obj/obj_mac.num | 1 + crypto/obj/objects.txt | 1 + go.mod | 9 +- go.sum | 14 ++- include/openssl/nid.h | 3 + include/openssl/ssl.h | 1 + ssl/extensions.cc | 1 + ssl/ssl_key_share.cc | 100 +++++++++++++++- ssl/ssl_test.cc | 4 + ssl/test/fuzzer.h | 5 +- ssl/test/runner/common.go | 9 +- ssl/test/runner/handshake_server.go | 4 +- ssl/test/runner/key_agreement.go | 180 ++++++++++++++++++++-------- ssl/test/runner/runner.go | 144 ++++++++++++++-------- 15 files changed, 355 insertions(+), 126 deletions(-) diff --git a/crypto/obj/obj_dat.h b/crypto/obj/obj_dat.h index 71ef2d2bdc..f1b706391b 100644 --- a/crypto/obj/obj_dat.h +++ b/crypto/obj/obj_dat.h @@ -57,7 +57,7 @@ /* This file is generated by crypto/obj/objects.go. */ -#define NUM_NID 965 +#define NUM_NID 966 static const uint8_t kObjectData[] = { /* NID_rsadsi */ @@ -8783,6 +8783,7 @@ static const ASN1_OBJECT kObjects[NUM_NID] = { {"HKDF", "hkdf", NID_hkdf, 0, NULL, 0}, {"X25519Kyber768Draft00", "X25519Kyber768Draft00", NID_X25519Kyber768Draft00, 0, NULL, 0}, + {"X25519MLKEM768", "X25519MLKEM768", NID_X25519MLKEM768, 0, NULL, 0}, }; static const uint16_t kNIDsInShortNameOrder[] = { @@ -8981,6 +8982,7 @@ static const uint16_t kNIDsInShortNameOrder[] = { 458 /* UID */, 948 /* X25519 */, 964 /* X25519Kyber768Draft00 */, + 965 /* X25519MLKEM768 */, 961 /* X448 */, 11 /* X500 */, 378 /* X500algorithms */, @@ -9852,6 +9854,7 @@ static const uint16_t kNIDsInLongNameOrder[] = { 375 /* Trust Root */, 948 /* X25519 */, 964 /* X25519Kyber768Draft00 */, + 965 /* X25519MLKEM768 */, 961 /* X448 */, 12 /* X509 */, 402 /* X509v3 AC Targeting */, diff --git a/crypto/obj/obj_mac.num b/crypto/obj/obj_mac.num index a0519aceeb..6e2a2aed64 100644 --- a/crypto/obj/obj_mac.num +++ b/crypto/obj/obj_mac.num @@ -952,3 +952,4 @@ X448 961 sha512_256 962 hkdf 963 X25519Kyber768Draft00 964 +X25519MLKEM768 965 diff --git a/crypto/obj/objects.txt b/crypto/obj/objects.txt index 3ad32ea3d1..655340710c 100644 --- a/crypto/obj/objects.txt +++ b/crypto/obj/objects.txt @@ -1334,6 +1334,7 @@ secg-scheme 14 3 : dhSinglePass-cofactorDH-sha512kdf-scheme # NIDs for post quantum hybrid KEMs in TLS (no corresponding OIDs). : X25519Kyber768Draft00 + : X25519MLKEM768 # See RFC 8410. 1 3 101 110 : X25519 diff --git a/go.mod b/go.mod index b1cb93eb73..b87a3c1f19 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,14 @@ module boringssl.googlesource.com/boringssl -go 1.21 +go 1.22 require ( - golang.org/x/crypto v0.25.0 + golang.org/x/crypto v0.26.0 golang.org/x/net v0.27.0 ) require ( - golang.org/x/sys v0.22.0 // indirect - golang.org/x/term v0.22.0 // indirect + filippo.io/mlkem768 v0.0.0-20240821141156-859a9b3f2ff6 // indirect + golang.org/x/sys v0.24.0 // indirect + golang.org/x/term v0.23.0 // indirect ) diff --git a/go.sum b/go.sum index 709415cdb8..7424815df0 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,10 @@ -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +filippo.io/mlkem768 v0.0.0-20240821141156-859a9b3f2ff6 h1:A7gTX0HxgkmTtCgRtpWlhIuMBBszxW/02MXv55wHk4U= +filippo.io/mlkem768 v0.0.0-20240821141156-859a9b3f2ff6/go.mod h1:IkpYfciLz5fI/S4/Z0NlhR4cpv6ubCMDnIwAe0XiojA= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= +golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= diff --git a/include/openssl/nid.h b/include/openssl/nid.h index 4dd8841b1e..02d78c6483 100644 --- a/include/openssl/nid.h +++ b/include/openssl/nid.h @@ -4255,6 +4255,9 @@ extern "C" { #define SN_X25519Kyber768Draft00 "X25519Kyber768Draft00" #define NID_X25519Kyber768Draft00 964 +#define SN_X25519MLKEM768 "X25519MLKEM768" +#define NID_X25519MLKEM768 965 + #if defined(__cplusplus) } /* extern C */ diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index 1dbc1e7dcb..a0797cd611 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -2548,6 +2548,7 @@ OPENSSL_EXPORT size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); #define SSL_GROUP_SECP384R1 24 #define SSL_GROUP_SECP521R1 25 #define SSL_GROUP_X25519 29 +#define SSL_GROUP_X25519_MLKEM768 0x11ec #define SSL_GROUP_X25519_KYBER768_DRAFT00 0x6399 // SSL_CTX_set1_group_ids sets the preferred groups for |ctx| to |group_ids|. diff --git a/ssl/extensions.cc b/ssl/extensions.cc index 7f06dedbbe..30591a6a07 100644 --- a/ssl/extensions.cc +++ b/ssl/extensions.cc @@ -207,6 +207,7 @@ static bool tls1_check_duplicate_extensions(const CBS *cbs) { static bool is_post_quantum_group(uint16_t id) { switch (id) { case SSL_GROUP_X25519_KYBER768_DRAFT00: + case SSL_GROUP_X25519_MLKEM768: return true; default: return false; diff --git a/ssl/ssl_key_share.cc b/ssl/ssl_key_share.cc index 419724c624..923b8bb483 100644 --- a/ssl/ssl_key_share.cc +++ b/ssl/ssl_key_share.cc @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -192,6 +193,7 @@ class X25519KeyShare : public SSLKeyShare { uint8_t private_key_[32]; }; +// draft-tls-westerbaan-xyber768d00-03 class X25519Kyber768KeyShare : public SSLKeyShare { public: X25519Kyber768KeyShare() {} @@ -225,9 +227,7 @@ class X25519Kyber768KeyShare : public SSLKeyShare { uint8_t x25519_public_key[32]; X25519_keypair(x25519_public_key, x25519_private_key_); KYBER_public_key peer_kyber_pub; - CBS peer_key_cbs; - CBS peer_x25519_cbs; - CBS peer_kyber_cbs; + CBS peer_key_cbs, peer_x25519_cbs, peer_kyber_cbs; CBS_init(&peer_key_cbs, peer_key.data(), peer_key.size()); if (!CBS_get_bytes(&peer_key_cbs, &peer_x25519_cbs, 32) || !CBS_get_bytes(&peer_key_cbs, &peer_kyber_cbs, @@ -282,6 +282,97 @@ class X25519Kyber768KeyShare : public SSLKeyShare { KYBER_private_key kyber_private_key_; }; +// draft-kwiatkowski-tls-ecdhe-mlkem-01 +class X25519MLKEM768KeyShare : public SSLKeyShare { + public: + X25519MLKEM768KeyShare() {} + + uint16_t GroupID() const override { return SSL_GROUP_X25519_MLKEM768; } + + bool Generate(CBB *out) override { + uint8_t mlkem_public_key[MLKEM768_PUBLIC_KEY_BYTES]; + MLKEM768_generate_key(mlkem_public_key, /*optional_out_seed=*/nullptr, + &mlkem_private_key_); + + uint8_t x25519_public_key[X25519_PUBLIC_VALUE_LEN]; + X25519_keypair(x25519_public_key, x25519_private_key_); + + if (!CBB_add_bytes(out, mlkem_public_key, sizeof(mlkem_public_key)) || + !CBB_add_bytes(out, x25519_public_key, sizeof(x25519_public_key))) { + return false; + } + + return true; + } + + bool Encap(CBB *out_ciphertext, Array *out_secret, + uint8_t *out_alert, Span peer_key) override { + Array secret; + if (!secret.Init(MLKEM_SHARED_SECRET_BYTES + X25519_SHARED_KEY_LEN)) { + return false; + } + + MLKEM768_public_key peer_mlkem_pub; + uint8_t x25519_public_key[X25519_PUBLIC_VALUE_LEN]; + X25519_keypair(x25519_public_key, x25519_private_key_); + CBS peer_key_cbs, peer_mlkem_cbs, peer_x25519_cbs; + CBS_init(&peer_key_cbs, peer_key.data(), peer_key.size()); + if (!CBS_get_bytes(&peer_key_cbs, &peer_mlkem_cbs, + MLKEM768_PUBLIC_KEY_BYTES) || + !MLKEM768_parse_public_key(&peer_mlkem_pub, &peer_mlkem_cbs) || + !CBS_get_bytes(&peer_key_cbs, &peer_x25519_cbs, + X25519_PUBLIC_VALUE_LEN) || + CBS_len(&peer_key_cbs) != 0 || + !X25519(secret.data() + MLKEM_SHARED_SECRET_BYTES, x25519_private_key_, + CBS_data(&peer_x25519_cbs))) { + *out_alert = SSL_AD_DECODE_ERROR; + OPENSSL_PUT_ERROR(SSL, SSL_R_BAD_ECPOINT); + return false; + } + + uint8_t mlkem_ciphertext[MLKEM768_CIPHERTEXT_BYTES]; + MLKEM768_encap(mlkem_ciphertext, secret.data(), &peer_mlkem_pub); + + if (!CBB_add_bytes(out_ciphertext, mlkem_ciphertext, + sizeof(mlkem_ciphertext)) || + !CBB_add_bytes(out_ciphertext, x25519_public_key, + sizeof(x25519_public_key))) { + return false; + } + + *out_secret = std::move(secret); + return true; + } + + bool Decap(Array *out_secret, uint8_t *out_alert, + Span ciphertext) override { + *out_alert = SSL_AD_INTERNAL_ERROR; + + Array secret; + if (!secret.Init(MLKEM_SHARED_SECRET_BYTES + X25519_SHARED_KEY_LEN)) { + return false; + } + + if (ciphertext.size() != + MLKEM768_CIPHERTEXT_BYTES + X25519_PUBLIC_VALUE_LEN || + !MLKEM768_decap(secret.data(), ciphertext.data(), + MLKEM768_CIPHERTEXT_BYTES, &mlkem_private_key_) || + !X25519(secret.data() + MLKEM_SHARED_SECRET_BYTES, x25519_private_key_, + ciphertext.data() + MLKEM768_CIPHERTEXT_BYTES)) { + *out_alert = SSL_AD_DECODE_ERROR; + OPENSSL_PUT_ERROR(SSL, SSL_R_BAD_ECPOINT); + return false; + } + + *out_secret = std::move(secret); + return true; + } + + private: + uint8_t x25519_private_key_[32]; + MLKEM768_private_key mlkem_private_key_; +}; + constexpr NamedGroup kNamedGroups[] = { {NID_secp224r1, SSL_GROUP_SECP224R1, "P-224", "secp224r1"}, {NID_X9_62_prime256v1, SSL_GROUP_SECP256R1, "P-256", "prime256v1"}, @@ -290,6 +381,7 @@ constexpr NamedGroup kNamedGroups[] = { {NID_X25519, SSL_GROUP_X25519, "X25519", "x25519"}, {NID_X25519Kyber768Draft00, SSL_GROUP_X25519_KYBER768_DRAFT00, "X25519Kyber768Draft00", ""}, + {NID_X25519MLKEM768, SSL_GROUP_X25519_MLKEM768, "X25519MLKEM768", ""}, }; } // namespace @@ -312,6 +404,8 @@ UniquePtr SSLKeyShare::Create(uint16_t group_id) { return MakeUnique(); case SSL_GROUP_X25519_KYBER768_DRAFT00: return MakeUnique(); + case SSL_GROUP_X25519_MLKEM768: + return MakeUnique(); default: return nullptr; } diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc index 1b71c97ba4..393b48e004 100644 --- a/ssl/ssl_test.cc +++ b/ssl/ssl_test.cc @@ -489,6 +489,10 @@ static const CurveTest kCurveTests[] = { "P-256:X25519Kyber768Draft00", { SSL_GROUP_SECP256R1, SSL_GROUP_X25519_KYBER768_DRAFT00 }, }, + { + "P-256:X25519MLKEM768", + { SSL_GROUP_SECP256R1, SSL_GROUP_X25519_MLKEM768 }, + }, { "P-256:P-384:P-521:X25519", diff --git a/ssl/test/fuzzer.h b/ssl/test/fuzzer.h index e6d2d0219d..ca7b55a77a 100644 --- a/ssl/test/fuzzer.h +++ b/ssl/test/fuzzer.h @@ -419,8 +419,9 @@ class TLSFuzzer { } static const uint16_t kGroups[] = { - SSL_GROUP_X25519_KYBER768_DRAFT00, SSL_GROUP_X25519, - SSL_GROUP_SECP256R1, SSL_GROUP_SECP384R1, SSL_GROUP_SECP521R1}; + SSL_GROUP_X25519_MLKEM768, SSL_GROUP_X25519_KYBER768_DRAFT00, + SSL_GROUP_X25519, SSL_GROUP_SECP256R1, + SSL_GROUP_SECP384R1, SSL_GROUP_SECP521R1}; if (!SSL_CTX_set1_group_ids(ctx_.get(), kGroups, OPENSSL_ARRAY_SIZE(kGroups))) { return false; diff --git a/ssl/test/runner/common.go b/ssl/test/runner/common.go index 5907a35cbc..2eedd6283a 100644 --- a/ssl/test/runner/common.go +++ b/ssl/test/runner/common.go @@ -158,6 +158,7 @@ const ( CurveP384 CurveID = 24 CurveP521 CurveID = 25 CurveX25519 CurveID = 29 + CurveX25519MLKEM768 CurveID = 0x11ec CurveX25519Kyber768 CurveID = 0x6399 ) @@ -1962,9 +1963,9 @@ type ProtocolBugs struct { // hello retry. FailIfHelloRetryRequested bool - // FailedIfKyberOffered will cause a server to reject a ClientHello if Kyber - // is supported. - FailIfKyberOffered bool + // FailIfPostQuantumOffered will cause a server to reject a ClientHello if + // post-quantum curves are supported. + FailIfPostQuantumOffered bool // ExpectKeyShares, if not nil, lists (in order) the curves that a ClientHello // should have key shares for. @@ -2067,7 +2068,7 @@ func (c *Config) maxVersion(isDTLS bool) uint16 { return ret } -var defaultCurvePreferences = []CurveID{CurveX25519Kyber768, CurveX25519, CurveP256, CurveP384, CurveP521} +var defaultCurvePreferences = []CurveID{CurveX25519MLKEM768, CurveX25519Kyber768, CurveX25519, CurveP256, CurveP384, CurveP521} func (c *Config) curvePreferences() []CurveID { if c == nil || len(c.CurvePreferences) == 0 { diff --git a/ssl/test/runner/handshake_server.go b/ssl/test/runner/handshake_server.go index 9e647df0cf..fa7eb9c86d 100644 --- a/ssl/test/runner/handshake_server.go +++ b/ssl/test/runner/handshake_server.go @@ -281,10 +281,10 @@ func (hs *serverHandshakeState) readClientHello() error { } } - if config.Bugs.FailIfKyberOffered { + if config.Bugs.FailIfPostQuantumOffered { for _, offeredCurve := range hs.clientHello.supportedCurves { if isPqGroup(offeredCurve) { - return errors.New("tls: X25519Kyber768 was offered") + return errors.New("tls: post-quantum group was offered") } } } diff --git a/ssl/test/runner/key_agreement.go b/ssl/test/runner/key_agreement.go index aff0820e3c..a4bbfa5961 100644 --- a/ssl/test/runner/key_agreement.go +++ b/ssl/test/runner/key_agreement.go @@ -16,8 +16,10 @@ import ( "fmt" "io" "math/big" + "slices" "boringssl.googlesource.com/boringssl/ssl/test/runner/kyber" + "filippo.io/mlkem768" "golang.org/x/crypto/curve25519" ) @@ -233,6 +235,9 @@ func (ka *rsaKeyAgreement) peerSignatureAlgorithm() signatureAlgorithm { // A kemImplementation is an instance of KEM-style construction for TLS. type kemImplementation interface { + encapsulationKeySize() int + ciphertextSize() int + // generate generates a keypair using rand. It returns the encoded public key. generate(rand io.Reader) (publicKey []byte, err error) @@ -253,6 +258,15 @@ type ecdhKEM struct { sendCompressed bool } +func (e *ecdhKEM) encapsulationKeySize() int { + fieldBytes := (e.curve.Params().BitSize + 7) / 8 + return 1 + 2*fieldBytes +} + +func (e *ecdhKEM) ciphertextSize() int { + return e.encapsulationKeySize() +} + func (e *ecdhKEM) generate(rand io.Reader) (publicKey []byte, err error) { var x, y *big.Int e.privateKey, x, y, err = elliptic.GenerateKey(e.curve, rand) @@ -300,6 +314,14 @@ type x25519KEM struct { setHighBit bool } +func (e *x25519KEM) encapsulationKeySize() int { + return curve25519.PointSize +} + +func (e *x25519KEM) ciphertextSize() int { + return curve25519.PointSize +} + func (e *x25519KEM) generate(rand io.Reader) (publicKey []byte, err error) { _, err = io.ReadFull(rand, e.privateKey[:]) if err != nil { @@ -341,53 +363,35 @@ func (e *x25519KEM) decap(ciphertext []byte) (secret []byte, err error) { return out[:], nil } -// kyberKEM implements Kyber combined with X25519. +// kyberKEM implements Kyber-768 type kyberKEM struct { - x25519PrivateKey [32]byte - kyberPrivateKey *kyber.PrivateKey + kyberPrivateKey *kyber.PrivateKey } -func (e *kyberKEM) generate(rand io.Reader) (publicKey []byte, err error) { - if _, err := io.ReadFull(rand, e.x25519PrivateKey[:]); err != nil { - return nil, err - } - var x25519Public [32]byte - curve25519.ScalarBaseMult(&x25519Public, &e.x25519PrivateKey) +func (e *kyberKEM) encapsulationKeySize() int { + return kyber.PublicKeySize +} + +func (e *kyberKEM) ciphertextSize() int { + return kyber.CiphertextSize +} +func (e *kyberKEM) generate(rand io.Reader) (publicKey []byte, err error) { var kyberEntropy [64]byte if _, err := io.ReadFull(rand, kyberEntropy[:]); err != nil { return nil, err } var kyberPublic *[kyber.PublicKeySize]byte e.kyberPrivateKey, kyberPublic = kyber.NewPrivateKey(&kyberEntropy) - - var ret []byte - ret = append(ret, x25519Public[:]...) - ret = append(ret, kyberPublic[:]...) - return ret, nil + return kyberPublic[:], nil } func (e *kyberKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { - if len(peerKey) != 32+kyber.PublicKeySize { + if len(peerKey) != kyber.PublicKeySize { return nil, nil, errors.New("tls: bad length Kyber offer") } - if _, err := io.ReadFull(rand, e.x25519PrivateKey[:]); err != nil { - return nil, nil, err - } - - var x25519Shared, x25519PeerKey, x25519Public [32]byte - copy(x25519PeerKey[:], peerKey) - curve25519.ScalarBaseMult(&x25519Public, &e.x25519PrivateKey) - curve25519.ScalarMult(&x25519Shared, &e.x25519PrivateKey, &x25519PeerKey) - - // Per RFC 7748, reject the all-zero value in constant time. - var zeros [32]byte - if subtle.ConstantTimeCompare(zeros[:], x25519Shared[:]) == 1 { - return nil, nil, errors.New("tls: X25519 value with wrong order") - } - - kyberPublicKey, ok := kyber.UnmarshalPublicKey((*[kyber.PublicKeySize]byte)(peerKey[32:])) + kyberPublicKey, ok := kyber.UnmarshalPublicKey((*[kyber.PublicKeySize]byte)(peerKey)) if !ok { return nil, nil, errors.New("tls: bad Kyber offer") } @@ -397,37 +401,105 @@ func (e *kyberKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, sec return nil, nil, err } kyberCiphertext := kyberPublicKey.Encap(kyberShared[:], &kyberEntropy) - - ciphertext = append(ciphertext, x25519Public[:]...) - ciphertext = append(ciphertext, kyberCiphertext[:]...) - secret = append(secret, x25519Shared[:]...) - secret = append(secret, kyberShared[:]...) - - return ciphertext, secret, nil + return kyberCiphertext[:], kyberShared[:], nil } func (e *kyberKEM) decap(ciphertext []byte) (secret []byte, err error) { - if len(ciphertext) != 32+kyber.CiphertextSize { + if len(ciphertext) != kyber.CiphertextSize { return nil, errors.New("tls: bad length Kyber reply") } - var x25519Shared, x25519PeerKey [32]byte - copy(x25519PeerKey[:], ciphertext) - curve25519.ScalarMult(&x25519Shared, &e.x25519PrivateKey, &x25519PeerKey) + var kyberShared [32]byte + e.kyberPrivateKey.Decap(kyberShared[:], (*[kyber.CiphertextSize]byte)(ciphertext)) + return kyberShared[:], nil +} - // Per RFC 7748, reject the all-zero value in constant time. - var zeros [32]byte - if subtle.ConstantTimeCompare(zeros[:], x25519Shared[:]) == 1 { - return nil, errors.New("tls: X25519 value with wrong order") +// mlkem768KEM implements ML-KEM-768 +type mlkem768KEM struct { + decapKey *mlkem768.DecapsulationKey +} + +func (e *mlkem768KEM) encapsulationKeySize() int { + return mlkem768.EncapsulationKeySize +} + +func (e *mlkem768KEM) ciphertextSize() int { + return mlkem768.CiphertextSize +} + +func (m *mlkem768KEM) generate(rand io.Reader) (publicKey []byte, err error) { + m.decapKey, err = mlkem768.GenerateKey() + if err != nil { + return } + return m.decapKey.EncapsulationKey(), nil +} - var kyberShared [32]byte - e.kyberPrivateKey.Decap(kyberShared[:], (*[kyber.CiphertextSize]byte)(ciphertext[32:])) +func (m *mlkem768KEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { + return mlkem768.Encapsulate(peerKey) +} - secret = append(secret, x25519Shared[:]...) - secret = append(secret, kyberShared[:]...) +func (m *mlkem768KEM) decap(ciphertext []byte) (secret []byte, err error) { + return mlkem768.Decapsulate(m.decapKey, ciphertext) +} - return secret, nil +// concatKEM concatenates two kemImplementations. +type concatKEM struct { + kem1, kem2 kemImplementation +} + +func (c *concatKEM) encapsulationKeySize() int { + return c.kem1.encapsulationKeySize() + c.kem2.encapsulationKeySize() +} + +func (c *concatKEM) ciphertextSize() int { + return c.kem1.ciphertextSize() + c.kem2.ciphertextSize() +} + +func (c *concatKEM) generate(rand io.Reader) (publicKey []byte, err error) { + publicKey1, err := c.kem1.generate(rand) + if err != nil { + return nil, err + } + publicKey2, err := c.kem2.generate(rand) + if err != nil { + return nil, err + } + return slices.Concat(publicKey1, publicKey2), nil +} + +func (c *concatKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { + encapKeySize1 := c.kem1.encapsulationKeySize() + if len(peerKey) < encapKeySize1 { + return nil, nil, errors.New("tls: invalid peer key") + } + peerKey1, peerKey2 := peerKey[:encapKeySize1], peerKey[encapKeySize1:] + ciphertext1, secret1, err := c.kem1.encap(rand, peerKey1) + if err != nil { + return nil, nil, err + } + ciphertext2, secret2, err := c.kem2.encap(rand, peerKey2) + if err != nil { + return nil, nil, err + } + return slices.Concat(ciphertext1, ciphertext2), slices.Concat(secret1, secret2), nil +} + +func (c *concatKEM) decap(ciphertext []byte) (secret []byte, err error) { + ciphertextSize1 := c.kem1.ciphertextSize() + if len(ciphertext) < ciphertextSize1 { + return nil, errors.New("tls: invalid ciphertext") + } + ciphertext1, ciphertext2 := ciphertext[:ciphertextSize1], ciphertext[ciphertextSize1:] + secret1, err := c.kem1.decap(ciphertext1) + if err != nil { + return nil, err + } + secret2, err := c.kem2.decap(ciphertext2) + if err != nil { + return nil, err + } + return slices.Concat(secret1, secret2), nil } func kemForCurveID(id CurveID, config *Config) (kemImplementation, bool) { @@ -443,7 +515,11 @@ func kemForCurveID(id CurveID, config *Config) (kemImplementation, bool) { case CurveX25519: return &x25519KEM{setHighBit: config.Bugs.SetX25519HighBit}, true case CurveX25519Kyber768: - return &kyberKEM{}, true + // draft-tls-westerbaan-xyber768d00-03 + return &concatKEM{kem1: &x25519KEM{setHighBit: config.Bugs.SetX25519HighBit}, kem2: &kyberKEM{}}, true + case CurveX25519MLKEM768: + // draft-kwiatkowski-tls-ecdhe-mlkem-01 + return &concatKEM{kem1: &mlkem768KEM{}, kem2: &x25519KEM{setHighBit: config.Bugs.SetX25519HighBit}}, true default: return nil, false } diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go index 16cebb23e8..6179ee0f5d 100644 --- a/ssl/test/runner/runner.go +++ b/ssl/test/runner/runner.go @@ -11756,12 +11756,13 @@ var testCurves = []struct { {"P-521", CurveP521}, {"X25519", CurveX25519}, {"Kyber", CurveX25519Kyber768}, + {"MLKEM", CurveX25519MLKEM768}, } const bogusCurve = 0x1234 func isPqGroup(r CurveID) bool { - return r == CurveX25519Kyber768 + return r == CurveX25519Kyber768 || r == CurveX25519MLKEM768 } func addCurveTests() { @@ -12225,78 +12226,100 @@ func addCurveTests() { }, }) - // Kyber should not be offered by a TLS < 1.3 client. - testCases = append(testCases, testCase{ - name: "KyberNotInTLS12", - config: Config{ - Bugs: ProtocolBugs{ - FailIfKyberOffered: true, + // Post-quantum groups require TLS 1.3. + for _, curve := range testCurves { + if !isPqGroup(curve.id) { + continue + } + + // Post-quantum groups should not be offered by a TLS 1.2 client. + testCases = append(testCases, testCase{ + name: "TLS12ClientShouldNotOffer-" + curve.name, + config: Config{ + Bugs: ProtocolBugs{ + FailIfPostQuantumOffered: true, + }, }, - }, - flags: []string{ - "-max-version", strconv.Itoa(VersionTLS12), - "-curves", strconv.Itoa(int(CurveX25519Kyber768)), - "-curves", strconv.Itoa(int(CurveX25519)), - }, - }) + flags: []string{ + "-max-version", strconv.Itoa(VersionTLS12), + "-curves", strconv.Itoa(int(curve.id)), + "-curves", strconv.Itoa(int(CurveX25519)), + }, + }) - // Kyber should not crash a TLS < 1.3 client if the server mistakenly - // selects it. - testCases = append(testCases, testCase{ - name: "KyberNotAcceptedByTLS12Client", - config: Config{ - Bugs: ProtocolBugs{ - SendCurve: CurveX25519Kyber768, + // Post-quantum groups should not be selected by a TLS 1.2 server. + testCases = append(testCases, testCase{ + testType: serverTest, + name: "TLS12ServerShouldNotSelect-" + curve.name, + flags: []string{ + "-max-version", strconv.Itoa(VersionTLS12), + "-curves", strconv.Itoa(int(curve.id)), + "-curves", strconv.Itoa(int(CurveX25519)), }, - }, - flags: []string{ - "-max-version", strconv.Itoa(VersionTLS12), - "-curves", strconv.Itoa(int(CurveX25519Kyber768)), - "-curves", strconv.Itoa(int(CurveX25519)), - }, - shouldFail: true, - expectedError: ":WRONG_CURVE:", - }) + expectations: connectionExpectations{ + curveID: CurveX25519, + }, + }) + + // If a TLS 1.2 server selects a post-quantum group anyway, the client + // should not accept it. + testCases = append(testCases, testCase{ + name: "ClientShouldNotAllowInTLS12-" + curve.name, + config: Config{ + MaxVersion: VersionTLS12, + Bugs: ProtocolBugs{ + SendCurve: curve.id, + }, + }, + flags: []string{ + "-curves", strconv.Itoa(int(curve.id)), + "-curves", strconv.Itoa(int(CurveX25519)), + }, + shouldFail: true, + expectedError: ":WRONG_CURVE:", + expectedLocalError: "remote error: illegal parameter", + }) + } - // Kyber should not be offered by default as a client. + // ML-KEM and Kyber should not be offered by default as a client. testCases = append(testCases, testCase{ - name: "KyberNotEnabledByDefaultInClients", + name: "PostQuantumNotEnabledByDefaultInClients", config: Config{ MinVersion: VersionTLS13, Bugs: ProtocolBugs{ - FailIfKyberOffered: true, + FailIfPostQuantumOffered: true, }, }, }) - // If Kyber is offered, both X25519 and Kyber should have a key-share. + // If ML-KEM is offered, both X25519 and ML-KEM should have a key-share. testCases = append(testCases, testCase{ - name: "NotJustKyberKeyShare", + name: "NotJustMLKEMKeyShare", config: Config{ MinVersion: VersionTLS13, Bugs: ProtocolBugs{ - ExpectedKeyShares: []CurveID{CurveX25519Kyber768, CurveX25519}, + ExpectedKeyShares: []CurveID{CurveX25519MLKEM768, CurveX25519}, }, }, flags: []string{ - "-curves", strconv.Itoa(int(CurveX25519Kyber768)), + "-curves", strconv.Itoa(int(CurveX25519MLKEM768)), "-curves", strconv.Itoa(int(CurveX25519)), - "-expect-curve-id", strconv.Itoa(int(CurveX25519Kyber768)), + "-expect-curve-id", strconv.Itoa(int(CurveX25519MLKEM768)), }, }) // ... and the other way around testCases = append(testCases, testCase{ - name: "KyberKeyShareIncludedSecond", + name: "MLKEMKeyShareIncludedSecond", config: Config{ MinVersion: VersionTLS13, Bugs: ProtocolBugs{ - ExpectedKeyShares: []CurveID{CurveX25519, CurveX25519Kyber768}, + ExpectedKeyShares: []CurveID{CurveX25519, CurveX25519MLKEM768}, }, }, flags: []string{ "-curves", strconv.Itoa(int(CurveX25519)), - "-curves", strconv.Itoa(int(CurveX25519Kyber768)), + "-curves", strconv.Itoa(int(CurveX25519MLKEM768)), "-expect-curve-id", strconv.Itoa(int(CurveX25519)), }, }) @@ -12305,44 +12328,61 @@ func addCurveTests() { // first classical and first post-quantum "curves" that get key shares // included. testCases = append(testCases, testCase{ - name: "KyberKeyShareIncludedThird", + name: "MLKEMKeyShareIncludedThird", config: Config{ MinVersion: VersionTLS13, Bugs: ProtocolBugs{ - ExpectedKeyShares: []CurveID{CurveX25519, CurveX25519Kyber768}, + ExpectedKeyShares: []CurveID{CurveX25519, CurveX25519MLKEM768}, }, }, flags: []string{ "-curves", strconv.Itoa(int(CurveX25519)), "-curves", strconv.Itoa(int(CurveP256)), - "-curves", strconv.Itoa(int(CurveX25519Kyber768)), + "-curves", strconv.Itoa(int(CurveX25519MLKEM768)), "-expect-curve-id", strconv.Itoa(int(CurveX25519)), }, }) - // If Kyber is the only configured curve, the key share is sent. + // If ML-KEM is the only configured curve, the key share is sent. + testCases = append(testCases, testCase{ + name: "JustConfiguringMLKEMWorks", + config: Config{ + MinVersion: VersionTLS13, + Bugs: ProtocolBugs{ + ExpectedKeyShares: []CurveID{CurveX25519MLKEM768}, + }, + }, + flags: []string{ + "-curves", strconv.Itoa(int(CurveX25519MLKEM768)), + "-expect-curve-id", strconv.Itoa(int(CurveX25519MLKEM768)), + }, + }) + + // If both ML-KEM and Kyber are configured, only the preferred one's + // key share should be sent. testCases = append(testCases, testCase{ - name: "JustConfiguringKyberWorks", + name: "BothMLKEMAndKyber", config: Config{ MinVersion: VersionTLS13, Bugs: ProtocolBugs{ - ExpectedKeyShares: []CurveID{CurveX25519Kyber768}, + ExpectedKeyShares: []CurveID{CurveX25519MLKEM768}, }, }, flags: []string{ + "-curves", strconv.Itoa(int(CurveX25519MLKEM768)), "-curves", strconv.Itoa(int(CurveX25519Kyber768)), - "-expect-curve-id", strconv.Itoa(int(CurveX25519Kyber768)), + "-expect-curve-id", strconv.Itoa(int(CurveX25519MLKEM768)), }, }) - // As a server, Kyber is not yet supported by default. + // As a server, ML-KEM is not yet supported by default. testCases = append(testCases, testCase{ testType: serverTest, - name: "KyberNotEnabledByDefaultForAServer", + name: "PostQuantumNotEnabledByDefaultForAServer", config: Config{ MinVersion: VersionTLS13, - CurvePreferences: []CurveID{CurveX25519Kyber768, CurveX25519}, - DefaultCurves: []CurveID{CurveX25519Kyber768}, + CurvePreferences: []CurveID{CurveX25519MLKEM768, CurveX25519Kyber768, CurveX25519}, + DefaultCurves: []CurveID{CurveX25519MLKEM768, CurveX25519Kyber768}, }, flags: []string{ "-server-preference", From 2a4643fde418d795c662f9b523f6e1552f2c6a49 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 21 Aug 2024 16:45:46 -0400 Subject: [PATCH 46/81] Add a pre-generated GN source list Bug: 42290412 Change-Id: Iac2641de0d0d7af79fd58dc7279ce21e54f6a023 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70429 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- gen/sources.gni | 2770 +++++++++++++++++++++++++++++++++++++ util/pregenerate/build.go | 1 + 2 files changed, 2771 insertions(+) create mode 100644 gen/sources.gni diff --git a/gen/sources.gni b/gen/sources.gni new file mode 100644 index 0000000000..2f95ed5628 --- /dev/null +++ b/gen/sources.gni @@ -0,0 +1,2770 @@ +# Copyright (c) 2024, Google Inc. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# Generated by go ./util/pregenerate. Do not edit manually. + +bcm_sources = [ + "crypto/fipsmodule/bcm.c", +] + +bcm_internal_headers = [ + "crypto/fipsmodule/aes/aes.c", + "crypto/fipsmodule/aes/aes_nohw.c", + "crypto/fipsmodule/aes/key_wrap.c", + "crypto/fipsmodule/aes/mode_wrappers.c", + "crypto/fipsmodule/bn/add.c", + "crypto/fipsmodule/bn/asm/x86_64-gcc.c", + "crypto/fipsmodule/bn/bn.c", + "crypto/fipsmodule/bn/bytes.c", + "crypto/fipsmodule/bn/cmp.c", + "crypto/fipsmodule/bn/ctx.c", + "crypto/fipsmodule/bn/div.c", + "crypto/fipsmodule/bn/div_extra.c", + "crypto/fipsmodule/bn/exponentiation.c", + "crypto/fipsmodule/bn/gcd.c", + "crypto/fipsmodule/bn/gcd_extra.c", + "crypto/fipsmodule/bn/generic.c", + "crypto/fipsmodule/bn/jacobi.c", + "crypto/fipsmodule/bn/montgomery.c", + "crypto/fipsmodule/bn/montgomery_inv.c", + "crypto/fipsmodule/bn/mul.c", + "crypto/fipsmodule/bn/prime.c", + "crypto/fipsmodule/bn/random.c", + "crypto/fipsmodule/bn/rsaz_exp.c", + "crypto/fipsmodule/bn/shift.c", + "crypto/fipsmodule/bn/sqrt.c", + "crypto/fipsmodule/cipher/aead.c", + "crypto/fipsmodule/cipher/cipher.c", + "crypto/fipsmodule/cipher/e_aes.c", + "crypto/fipsmodule/cipher/e_aesccm.c", + "crypto/fipsmodule/cmac/cmac.c", + "crypto/fipsmodule/dh/check.c", + "crypto/fipsmodule/dh/dh.c", + "crypto/fipsmodule/digest/digest.c", + "crypto/fipsmodule/digest/digests.c", + "crypto/fipsmodule/digestsign/digestsign.c", + "crypto/fipsmodule/ec/ec.c", + "crypto/fipsmodule/ec/ec_key.c", + "crypto/fipsmodule/ec/ec_montgomery.c", + "crypto/fipsmodule/ec/felem.c", + "crypto/fipsmodule/ec/oct.c", + "crypto/fipsmodule/ec/p224-64.c", + "crypto/fipsmodule/ec/p256-nistz.c", + "crypto/fipsmodule/ec/p256.c", + "crypto/fipsmodule/ec/scalar.c", + "crypto/fipsmodule/ec/simple.c", + "crypto/fipsmodule/ec/simple_mul.c", + "crypto/fipsmodule/ec/util.c", + "crypto/fipsmodule/ec/wnaf.c", + "crypto/fipsmodule/ecdh/ecdh.c", + "crypto/fipsmodule/ecdsa/ecdsa.c", + "crypto/fipsmodule/hkdf/hkdf.c", + "crypto/fipsmodule/hmac/hmac.c", + "crypto/fipsmodule/md4/md4.c", + "crypto/fipsmodule/md5/md5.c", + "crypto/fipsmodule/modes/cbc.c", + "crypto/fipsmodule/modes/cfb.c", + "crypto/fipsmodule/modes/ctr.c", + "crypto/fipsmodule/modes/gcm.c", + "crypto/fipsmodule/modes/gcm_nohw.c", + "crypto/fipsmodule/modes/ofb.c", + "crypto/fipsmodule/modes/polyval.c", + "crypto/fipsmodule/rand/ctrdrbg.c", + "crypto/fipsmodule/rand/fork_detect.c", + "crypto/fipsmodule/rand/rand.c", + "crypto/fipsmodule/rand/urandom.c", + "crypto/fipsmodule/rsa/blinding.c", + "crypto/fipsmodule/rsa/padding.c", + "crypto/fipsmodule/rsa/rsa.c", + "crypto/fipsmodule/rsa/rsa_impl.c", + "crypto/fipsmodule/self_check/fips.c", + "crypto/fipsmodule/self_check/self_check.c", + "crypto/fipsmodule/service_indicator/service_indicator.c", + "crypto/fipsmodule/sha/sha1.c", + "crypto/fipsmodule/sha/sha256.c", + "crypto/fipsmodule/sha/sha512.c", + "crypto/fipsmodule/tls/kdf.c", +] + +bcm_sources_asm = [ + "gen/bcm/aesni-gcm-x86_64-apple.S", + "gen/bcm/aesni-gcm-x86_64-linux.S", + "gen/bcm/aesni-x86-apple.S", + "gen/bcm/aesni-x86-linux.S", + "gen/bcm/aesni-x86_64-apple.S", + "gen/bcm/aesni-x86_64-linux.S", + "gen/bcm/aesv8-armv7-linux.S", + "gen/bcm/aesv8-armv8-apple.S", + "gen/bcm/aesv8-armv8-linux.S", + "gen/bcm/aesv8-armv8-win.S", + "gen/bcm/aesv8-gcm-armv8-apple.S", + "gen/bcm/aesv8-gcm-armv8-linux.S", + "gen/bcm/aesv8-gcm-armv8-win.S", + "gen/bcm/armv4-mont-linux.S", + "gen/bcm/armv8-mont-apple.S", + "gen/bcm/armv8-mont-linux.S", + "gen/bcm/armv8-mont-win.S", + "gen/bcm/bn-586-apple.S", + "gen/bcm/bn-586-linux.S", + "gen/bcm/bn-armv8-apple.S", + "gen/bcm/bn-armv8-linux.S", + "gen/bcm/bn-armv8-win.S", + "gen/bcm/bsaes-armv7-linux.S", + "gen/bcm/co-586-apple.S", + "gen/bcm/co-586-linux.S", + "gen/bcm/ghash-armv4-linux.S", + "gen/bcm/ghash-neon-armv8-apple.S", + "gen/bcm/ghash-neon-armv8-linux.S", + "gen/bcm/ghash-neon-armv8-win.S", + "gen/bcm/ghash-ssse3-x86-apple.S", + "gen/bcm/ghash-ssse3-x86-linux.S", + "gen/bcm/ghash-ssse3-x86_64-apple.S", + "gen/bcm/ghash-ssse3-x86_64-linux.S", + "gen/bcm/ghash-x86-apple.S", + "gen/bcm/ghash-x86-linux.S", + "gen/bcm/ghash-x86_64-apple.S", + "gen/bcm/ghash-x86_64-linux.S", + "gen/bcm/ghashv8-armv7-linux.S", + "gen/bcm/ghashv8-armv8-apple.S", + "gen/bcm/ghashv8-armv8-linux.S", + "gen/bcm/ghashv8-armv8-win.S", + "gen/bcm/md5-586-apple.S", + "gen/bcm/md5-586-linux.S", + "gen/bcm/md5-x86_64-apple.S", + "gen/bcm/md5-x86_64-linux.S", + "gen/bcm/p256-armv8-asm-apple.S", + "gen/bcm/p256-armv8-asm-linux.S", + "gen/bcm/p256-armv8-asm-win.S", + "gen/bcm/p256-x86_64-asm-apple.S", + "gen/bcm/p256-x86_64-asm-linux.S", + "gen/bcm/p256_beeu-armv8-asm-apple.S", + "gen/bcm/p256_beeu-armv8-asm-linux.S", + "gen/bcm/p256_beeu-armv8-asm-win.S", + "gen/bcm/p256_beeu-x86_64-asm-apple.S", + "gen/bcm/p256_beeu-x86_64-asm-linux.S", + "gen/bcm/rdrand-x86_64-apple.S", + "gen/bcm/rdrand-x86_64-linux.S", + "gen/bcm/rsaz-avx2-apple.S", + "gen/bcm/rsaz-avx2-linux.S", + "gen/bcm/sha1-586-apple.S", + "gen/bcm/sha1-586-linux.S", + "gen/bcm/sha1-armv4-large-linux.S", + "gen/bcm/sha1-armv8-apple.S", + "gen/bcm/sha1-armv8-linux.S", + "gen/bcm/sha1-armv8-win.S", + "gen/bcm/sha1-x86_64-apple.S", + "gen/bcm/sha1-x86_64-linux.S", + "gen/bcm/sha256-586-apple.S", + "gen/bcm/sha256-586-linux.S", + "gen/bcm/sha256-armv4-linux.S", + "gen/bcm/sha256-armv8-apple.S", + "gen/bcm/sha256-armv8-linux.S", + "gen/bcm/sha256-armv8-win.S", + "gen/bcm/sha256-x86_64-apple.S", + "gen/bcm/sha256-x86_64-linux.S", + "gen/bcm/sha512-586-apple.S", + "gen/bcm/sha512-586-linux.S", + "gen/bcm/sha512-armv4-linux.S", + "gen/bcm/sha512-armv8-apple.S", + "gen/bcm/sha512-armv8-linux.S", + "gen/bcm/sha512-armv8-win.S", + "gen/bcm/sha512-x86_64-apple.S", + "gen/bcm/sha512-x86_64-linux.S", + "gen/bcm/vpaes-armv7-linux.S", + "gen/bcm/vpaes-armv8-apple.S", + "gen/bcm/vpaes-armv8-linux.S", + "gen/bcm/vpaes-armv8-win.S", + "gen/bcm/vpaes-x86-apple.S", + "gen/bcm/vpaes-x86-linux.S", + "gen/bcm/vpaes-x86_64-apple.S", + "gen/bcm/vpaes-x86_64-linux.S", + "gen/bcm/x86-mont-apple.S", + "gen/bcm/x86-mont-linux.S", + "gen/bcm/x86_64-mont-apple.S", + "gen/bcm/x86_64-mont-linux.S", + "gen/bcm/x86_64-mont5-apple.S", + "gen/bcm/x86_64-mont5-linux.S", + "third_party/fiat/asm/fiat_p256_adx_mul.S", + "third_party/fiat/asm/fiat_p256_adx_sqr.S", +] + +bcm_sources_nasm = [ + "gen/bcm/aesni-gcm-x86_64-win.asm", + "gen/bcm/aesni-x86-win.asm", + "gen/bcm/aesni-x86_64-win.asm", + "gen/bcm/bn-586-win.asm", + "gen/bcm/co-586-win.asm", + "gen/bcm/ghash-ssse3-x86-win.asm", + "gen/bcm/ghash-ssse3-x86_64-win.asm", + "gen/bcm/ghash-x86-win.asm", + "gen/bcm/ghash-x86_64-win.asm", + "gen/bcm/md5-586-win.asm", + "gen/bcm/md5-x86_64-win.asm", + "gen/bcm/p256-x86_64-asm-win.asm", + "gen/bcm/p256_beeu-x86_64-asm-win.asm", + "gen/bcm/rdrand-x86_64-win.asm", + "gen/bcm/rsaz-avx2-win.asm", + "gen/bcm/sha1-586-win.asm", + "gen/bcm/sha1-x86_64-win.asm", + "gen/bcm/sha256-586-win.asm", + "gen/bcm/sha256-x86_64-win.asm", + "gen/bcm/sha512-586-win.asm", + "gen/bcm/sha512-x86_64-win.asm", + "gen/bcm/vpaes-x86-win.asm", + "gen/bcm/vpaes-x86_64-win.asm", + "gen/bcm/x86-mont-win.asm", + "gen/bcm/x86_64-mont-win.asm", + "gen/bcm/x86_64-mont5-win.asm", +] + +bssl_sources = [ + "tool/args.cc", + "tool/ciphers.cc", + "tool/client.cc", + "tool/const.cc", + "tool/digest.cc", + "tool/fd.cc", + "tool/file.cc", + "tool/generate_ech.cc", + "tool/generate_ed25519.cc", + "tool/genrsa.cc", + "tool/pkcs12.cc", + "tool/rand.cc", + "tool/server.cc", + "tool/sign.cc", + "tool/speed.cc", + "tool/tool.cc", + "tool/transport_common.cc", +] + +bssl_internal_headers = [ + "tool/internal.h", + "tool/transport_common.h", +] + +crypto_sources = [ + "crypto/asn1/a_bitstr.c", + "crypto/asn1/a_bool.c", + "crypto/asn1/a_d2i_fp.c", + "crypto/asn1/a_dup.c", + "crypto/asn1/a_gentm.c", + "crypto/asn1/a_i2d_fp.c", + "crypto/asn1/a_int.c", + "crypto/asn1/a_mbstr.c", + "crypto/asn1/a_object.c", + "crypto/asn1/a_octet.c", + "crypto/asn1/a_strex.c", + "crypto/asn1/a_strnid.c", + "crypto/asn1/a_time.c", + "crypto/asn1/a_type.c", + "crypto/asn1/a_utctm.c", + "crypto/asn1/asn1_lib.c", + "crypto/asn1/asn1_par.c", + "crypto/asn1/asn_pack.c", + "crypto/asn1/f_int.c", + "crypto/asn1/f_string.c", + "crypto/asn1/posix_time.c", + "crypto/asn1/tasn_dec.c", + "crypto/asn1/tasn_enc.c", + "crypto/asn1/tasn_fre.c", + "crypto/asn1/tasn_new.c", + "crypto/asn1/tasn_typ.c", + "crypto/asn1/tasn_utl.c", + "crypto/base64/base64.c", + "crypto/bio/bio.c", + "crypto/bio/bio_mem.c", + "crypto/bio/connect.c", + "crypto/bio/errno.c", + "crypto/bio/fd.c", + "crypto/bio/file.c", + "crypto/bio/hexdump.c", + "crypto/bio/pair.c", + "crypto/bio/printf.c", + "crypto/bio/socket.c", + "crypto/bio/socket_helper.c", + "crypto/blake2/blake2.c", + "crypto/bn_extra/bn_asn1.c", + "crypto/bn_extra/convert.c", + "crypto/buf/buf.c", + "crypto/bytestring/asn1_compat.c", + "crypto/bytestring/ber.c", + "crypto/bytestring/cbb.c", + "crypto/bytestring/cbs.c", + "crypto/bytestring/unicode.c", + "crypto/chacha/chacha.c", + "crypto/cipher_extra/cipher_extra.c", + "crypto/cipher_extra/derive_key.c", + "crypto/cipher_extra/e_aesctrhmac.c", + "crypto/cipher_extra/e_aesgcmsiv.c", + "crypto/cipher_extra/e_chacha20poly1305.c", + "crypto/cipher_extra/e_des.c", + "crypto/cipher_extra/e_null.c", + "crypto/cipher_extra/e_rc2.c", + "crypto/cipher_extra/e_rc4.c", + "crypto/cipher_extra/e_tls.c", + "crypto/cipher_extra/tls_cbc.c", + "crypto/conf/conf.c", + "crypto/cpu_aarch64_apple.c", + "crypto/cpu_aarch64_fuchsia.c", + "crypto/cpu_aarch64_linux.c", + "crypto/cpu_aarch64_openbsd.c", + "crypto/cpu_aarch64_sysreg.c", + "crypto/cpu_aarch64_win.c", + "crypto/cpu_arm_freebsd.c", + "crypto/cpu_arm_linux.c", + "crypto/cpu_intel.c", + "crypto/crypto.c", + "crypto/curve25519/curve25519.c", + "crypto/curve25519/curve25519_64_adx.c", + "crypto/curve25519/spake25519.c", + "crypto/des/des.c", + "crypto/dh_extra/dh_asn1.c", + "crypto/dh_extra/params.c", + "crypto/digest_extra/digest_extra.c", + "crypto/dilithium/dilithium.c", + "crypto/dsa/dsa.c", + "crypto/dsa/dsa_asn1.c", + "crypto/ec_extra/ec_asn1.c", + "crypto/ec_extra/ec_derive.c", + "crypto/ec_extra/hash_to_curve.c", + "crypto/ecdh_extra/ecdh_extra.c", + "crypto/ecdsa_extra/ecdsa_asn1.c", + "crypto/engine/engine.c", + "crypto/err/err.c", + "crypto/evp/evp.c", + "crypto/evp/evp_asn1.c", + "crypto/evp/evp_ctx.c", + "crypto/evp/p_dh.c", + "crypto/evp/p_dh_asn1.c", + "crypto/evp/p_dsa_asn1.c", + "crypto/evp/p_ec.c", + "crypto/evp/p_ec_asn1.c", + "crypto/evp/p_ed25519.c", + "crypto/evp/p_ed25519_asn1.c", + "crypto/evp/p_hkdf.c", + "crypto/evp/p_rsa.c", + "crypto/evp/p_rsa_asn1.c", + "crypto/evp/p_x25519.c", + "crypto/evp/p_x25519_asn1.c", + "crypto/evp/pbkdf.c", + "crypto/evp/print.c", + "crypto/evp/scrypt.c", + "crypto/evp/sign.c", + "crypto/ex_data.c", + "crypto/fipsmodule/fips_shared_support.c", + "crypto/hpke/hpke.c", + "crypto/hrss/hrss.c", + "crypto/keccak/keccak.c", + "crypto/kyber/kyber.c", + "crypto/lhash/lhash.c", + "crypto/mem.c", + "crypto/mldsa/mldsa.c", + "crypto/mlkem/mlkem.cc", + "crypto/obj/obj.c", + "crypto/obj/obj_xref.c", + "crypto/pem/pem_all.c", + "crypto/pem/pem_info.c", + "crypto/pem/pem_lib.c", + "crypto/pem/pem_oth.c", + "crypto/pem/pem_pk8.c", + "crypto/pem/pem_pkey.c", + "crypto/pem/pem_x509.c", + "crypto/pem/pem_xaux.c", + "crypto/pkcs7/pkcs7.c", + "crypto/pkcs7/pkcs7_x509.c", + "crypto/pkcs8/p5_pbev2.c", + "crypto/pkcs8/pkcs8.c", + "crypto/pkcs8/pkcs8_x509.c", + "crypto/poly1305/poly1305.c", + "crypto/poly1305/poly1305_arm.c", + "crypto/poly1305/poly1305_vec.c", + "crypto/pool/pool.c", + "crypto/rand_extra/deterministic.c", + "crypto/rand_extra/forkunsafe.c", + "crypto/rand_extra/getentropy.c", + "crypto/rand_extra/ios.c", + "crypto/rand_extra/passive.c", + "crypto/rand_extra/rand_extra.c", + "crypto/rand_extra/trusty.c", + "crypto/rand_extra/windows.c", + "crypto/rc4/rc4.c", + "crypto/refcount.c", + "crypto/rsa_extra/rsa_asn1.c", + "crypto/rsa_extra/rsa_crypt.c", + "crypto/rsa_extra/rsa_print.c", + "crypto/siphash/siphash.c", + "crypto/spx/address.c", + "crypto/spx/fors.c", + "crypto/spx/merkle.c", + "crypto/spx/spx.c", + "crypto/spx/spx_util.c", + "crypto/spx/thash.c", + "crypto/spx/wots.c", + "crypto/stack/stack.c", + "crypto/thread.c", + "crypto/thread_none.c", + "crypto/thread_pthread.c", + "crypto/thread_win.c", + "crypto/trust_token/pmbtoken.c", + "crypto/trust_token/trust_token.c", + "crypto/trust_token/voprf.c", + "crypto/x509/a_digest.c", + "crypto/x509/a_sign.c", + "crypto/x509/a_verify.c", + "crypto/x509/algorithm.c", + "crypto/x509/asn1_gen.c", + "crypto/x509/by_dir.c", + "crypto/x509/by_file.c", + "crypto/x509/i2d_pr.c", + "crypto/x509/name_print.c", + "crypto/x509/policy.c", + "crypto/x509/rsa_pss.c", + "crypto/x509/t_crl.c", + "crypto/x509/t_req.c", + "crypto/x509/t_x509.c", + "crypto/x509/t_x509a.c", + "crypto/x509/v3_akey.c", + "crypto/x509/v3_akeya.c", + "crypto/x509/v3_alt.c", + "crypto/x509/v3_bcons.c", + "crypto/x509/v3_bitst.c", + "crypto/x509/v3_conf.c", + "crypto/x509/v3_cpols.c", + "crypto/x509/v3_crld.c", + "crypto/x509/v3_enum.c", + "crypto/x509/v3_extku.c", + "crypto/x509/v3_genn.c", + "crypto/x509/v3_ia5.c", + "crypto/x509/v3_info.c", + "crypto/x509/v3_int.c", + "crypto/x509/v3_lib.c", + "crypto/x509/v3_ncons.c", + "crypto/x509/v3_ocsp.c", + "crypto/x509/v3_pcons.c", + "crypto/x509/v3_pmaps.c", + "crypto/x509/v3_prn.c", + "crypto/x509/v3_purp.c", + "crypto/x509/v3_skey.c", + "crypto/x509/v3_utl.c", + "crypto/x509/x509.c", + "crypto/x509/x509_att.c", + "crypto/x509/x509_cmp.c", + "crypto/x509/x509_d2.c", + "crypto/x509/x509_def.c", + "crypto/x509/x509_ext.c", + "crypto/x509/x509_lu.c", + "crypto/x509/x509_obj.c", + "crypto/x509/x509_req.c", + "crypto/x509/x509_set.c", + "crypto/x509/x509_trs.c", + "crypto/x509/x509_txt.c", + "crypto/x509/x509_v3.c", + "crypto/x509/x509_vfy.c", + "crypto/x509/x509_vpm.c", + "crypto/x509/x509cset.c", + "crypto/x509/x509name.c", + "crypto/x509/x509rset.c", + "crypto/x509/x509spki.c", + "crypto/x509/x_algor.c", + "crypto/x509/x_all.c", + "crypto/x509/x_attrib.c", + "crypto/x509/x_crl.c", + "crypto/x509/x_exten.c", + "crypto/x509/x_name.c", + "crypto/x509/x_pubkey.c", + "crypto/x509/x_req.c", + "crypto/x509/x_sig.c", + "crypto/x509/x_spki.c", + "crypto/x509/x_val.c", + "crypto/x509/x_x509.c", + "crypto/x509/x_x509a.c", + "gen/crypto/err_data.c", +] + +crypto_headers = [ + "include/openssl/aead.h", + "include/openssl/aes.h", + "include/openssl/arm_arch.h", + "include/openssl/asm_base.h", + "include/openssl/asn1.h", + "include/openssl/asn1_mac.h", + "include/openssl/asn1t.h", + "include/openssl/base.h", + "include/openssl/base64.h", + "include/openssl/bio.h", + "include/openssl/blake2.h", + "include/openssl/blowfish.h", + "include/openssl/bn.h", + "include/openssl/buf.h", + "include/openssl/buffer.h", + "include/openssl/bytestring.h", + "include/openssl/cast.h", + "include/openssl/chacha.h", + "include/openssl/cipher.h", + "include/openssl/cmac.h", + "include/openssl/conf.h", + "include/openssl/cpu.h", + "include/openssl/crypto.h", + "include/openssl/ctrdrbg.h", + "include/openssl/curve25519.h", + "include/openssl/des.h", + "include/openssl/dh.h", + "include/openssl/digest.h", + "include/openssl/dsa.h", + "include/openssl/e_os2.h", + "include/openssl/ec.h", + "include/openssl/ec_key.h", + "include/openssl/ecdh.h", + "include/openssl/ecdsa.h", + "include/openssl/engine.h", + "include/openssl/err.h", + "include/openssl/evp.h", + "include/openssl/evp_errors.h", + "include/openssl/ex_data.h", + "include/openssl/experimental/dilithium.h", + "include/openssl/experimental/kyber.h", + "include/openssl/experimental/spx.h", + "include/openssl/hkdf.h", + "include/openssl/hmac.h", + "include/openssl/hpke.h", + "include/openssl/hrss.h", + "include/openssl/is_boringssl.h", + "include/openssl/kdf.h", + "include/openssl/lhash.h", + "include/openssl/md4.h", + "include/openssl/md5.h", + "include/openssl/mem.h", + "include/openssl/mldsa.h", + "include/openssl/mlkem.h", + "include/openssl/nid.h", + "include/openssl/obj.h", + "include/openssl/obj_mac.h", + "include/openssl/objects.h", + "include/openssl/opensslconf.h", + "include/openssl/opensslv.h", + "include/openssl/ossl_typ.h", + "include/openssl/pem.h", + "include/openssl/pkcs12.h", + "include/openssl/pkcs7.h", + "include/openssl/pkcs8.h", + "include/openssl/poly1305.h", + "include/openssl/pool.h", + "include/openssl/posix_time.h", + "include/openssl/rand.h", + "include/openssl/rc4.h", + "include/openssl/ripemd.h", + "include/openssl/rsa.h", + "include/openssl/safestack.h", + "include/openssl/service_indicator.h", + "include/openssl/sha.h", + "include/openssl/siphash.h", + "include/openssl/span.h", + "include/openssl/stack.h", + "include/openssl/target.h", + "include/openssl/thread.h", + "include/openssl/time.h", + "include/openssl/trust_token.h", + "include/openssl/type_check.h", + "include/openssl/x509.h", + "include/openssl/x509_vfy.h", + "include/openssl/x509v3.h", + "include/openssl/x509v3_errors.h", +] + +crypto_internal_headers = [ + "crypto/asn1/internal.h", + "crypto/bio/internal.h", + "crypto/bytestring/internal.h", + "crypto/chacha/internal.h", + "crypto/cipher_extra/internal.h", + "crypto/conf/internal.h", + "crypto/cpu_arm_linux.h", + "crypto/curve25519/curve25519_tables.h", + "crypto/curve25519/internal.h", + "crypto/des/internal.h", + "crypto/dilithium/internal.h", + "crypto/dsa/internal.h", + "crypto/ec_extra/internal.h", + "crypto/err/internal.h", + "crypto/evp/internal.h", + "crypto/fipsmodule/aes/internal.h", + "crypto/fipsmodule/bn/internal.h", + "crypto/fipsmodule/bn/rsaz_exp.h", + "crypto/fipsmodule/cipher/internal.h", + "crypto/fipsmodule/delocate.h", + "crypto/fipsmodule/dh/internal.h", + "crypto/fipsmodule/digest/internal.h", + "crypto/fipsmodule/digest/md32_common.h", + "crypto/fipsmodule/ec/builtin_curves.h", + "crypto/fipsmodule/ec/internal.h", + "crypto/fipsmodule/ec/p256-nistz-table.h", + "crypto/fipsmodule/ec/p256-nistz.h", + "crypto/fipsmodule/ec/p256_table.h", + "crypto/fipsmodule/ecdsa/internal.h", + "crypto/fipsmodule/md5/internal.h", + "crypto/fipsmodule/modes/internal.h", + "crypto/fipsmodule/rand/fork_detect.h", + "crypto/fipsmodule/rand/getrandom_fillin.h", + "crypto/fipsmodule/rand/internal.h", + "crypto/fipsmodule/rsa/internal.h", + "crypto/fipsmodule/service_indicator/internal.h", + "crypto/fipsmodule/sha/internal.h", + "crypto/fipsmodule/tls/internal.h", + "crypto/hrss/internal.h", + "crypto/internal.h", + "crypto/keccak/internal.h", + "crypto/kyber/internal.h", + "crypto/lhash/internal.h", + "crypto/mldsa/internal.h", + "crypto/mlkem/internal.h", + "crypto/obj/obj_dat.h", + "crypto/pkcs7/internal.h", + "crypto/pkcs8/internal.h", + "crypto/poly1305/internal.h", + "crypto/pool/internal.h", + "crypto/rsa_extra/internal.h", + "crypto/spx/address.h", + "crypto/spx/fors.h", + "crypto/spx/merkle.h", + "crypto/spx/params.h", + "crypto/spx/spx_util.h", + "crypto/spx/thash.h", + "crypto/spx/wots.h", + "crypto/trust_token/internal.h", + "crypto/x509/ext_dat.h", + "crypto/x509/internal.h", + "third_party/fiat/curve25519_32.h", + "third_party/fiat/curve25519_64.h", + "third_party/fiat/curve25519_64_adx.h", + "third_party/fiat/curve25519_64_msvc.h", + "third_party/fiat/p256_32.h", + "third_party/fiat/p256_64.h", + "third_party/fiat/p256_64_msvc.h", +] + +crypto_sources_asm = [ + "crypto/curve25519/asm/x25519-asm-arm.S", + "crypto/hrss/asm/poly_rq_mul.S", + "crypto/poly1305/poly1305_arm_asm.S", + "gen/crypto/aes128gcmsiv-x86_64-apple.S", + "gen/crypto/aes128gcmsiv-x86_64-linux.S", + "gen/crypto/chacha-armv4-linux.S", + "gen/crypto/chacha-armv8-apple.S", + "gen/crypto/chacha-armv8-linux.S", + "gen/crypto/chacha-armv8-win.S", + "gen/crypto/chacha-x86-apple.S", + "gen/crypto/chacha-x86-linux.S", + "gen/crypto/chacha-x86_64-apple.S", + "gen/crypto/chacha-x86_64-linux.S", + "gen/crypto/chacha20_poly1305_armv8-apple.S", + "gen/crypto/chacha20_poly1305_armv8-linux.S", + "gen/crypto/chacha20_poly1305_armv8-win.S", + "gen/crypto/chacha20_poly1305_x86_64-apple.S", + "gen/crypto/chacha20_poly1305_x86_64-linux.S", + "third_party/fiat/asm/fiat_curve25519_adx_mul.S", + "third_party/fiat/asm/fiat_curve25519_adx_square.S", +] + +crypto_sources_nasm = [ + "gen/crypto/aes128gcmsiv-x86_64-win.asm", + "gen/crypto/chacha-x86-win.asm", + "gen/crypto/chacha-x86_64-win.asm", + "gen/crypto/chacha20_poly1305_x86_64-win.asm", +] + +crypto_test_sources = [ + "crypto/abi_self_test.cc", + "crypto/asn1/asn1_test.cc", + "crypto/base64/base64_test.cc", + "crypto/bio/bio_test.cc", + "crypto/blake2/blake2_test.cc", + "crypto/buf/buf_test.cc", + "crypto/bytestring/bytestring_test.cc", + "crypto/chacha/chacha_test.cc", + "crypto/cipher_extra/aead_test.cc", + "crypto/cipher_extra/cipher_test.cc", + "crypto/compiler_test.cc", + "crypto/conf/conf_test.cc", + "crypto/constant_time_test.cc", + "crypto/cpu_arm_linux_test.cc", + "crypto/crypto_test.cc", + "crypto/curve25519/ed25519_test.cc", + "crypto/curve25519/spake25519_test.cc", + "crypto/curve25519/x25519_test.cc", + "crypto/dh_extra/dh_test.cc", + "crypto/digest_extra/digest_test.cc", + "crypto/dilithium/dilithium_test.cc", + "crypto/dsa/dsa_test.cc", + "crypto/ecdh_extra/ecdh_test.cc", + "crypto/err/err_test.cc", + "crypto/evp/evp_extra_test.cc", + "crypto/evp/evp_test.cc", + "crypto/evp/pbkdf_test.cc", + "crypto/evp/scrypt_test.cc", + "crypto/fipsmodule/aes/aes_test.cc", + "crypto/fipsmodule/bn/bn_test.cc", + "crypto/fipsmodule/cmac/cmac_test.cc", + "crypto/fipsmodule/ec/ec_test.cc", + "crypto/fipsmodule/ec/p256-nistz_test.cc", + "crypto/fipsmodule/ec/p256_test.cc", + "crypto/fipsmodule/ecdsa/ecdsa_test.cc", + "crypto/fipsmodule/hkdf/hkdf_test.cc", + "crypto/fipsmodule/md5/md5_test.cc", + "crypto/fipsmodule/modes/gcm_test.cc", + "crypto/fipsmodule/rand/ctrdrbg_test.cc", + "crypto/fipsmodule/rand/fork_detect_test.cc", + "crypto/fipsmodule/service_indicator/service_indicator_test.cc", + "crypto/fipsmodule/sha/sha_test.cc", + "crypto/hmac_extra/hmac_test.cc", + "crypto/hpke/hpke_test.cc", + "crypto/hrss/hrss_test.cc", + "crypto/impl_dispatch_test.cc", + "crypto/keccak/keccak_test.cc", + "crypto/kyber/kyber_test.cc", + "crypto/lhash/lhash_test.cc", + "crypto/mldsa/mldsa_test.cc", + "crypto/mlkem/mlkem_test.cc", + "crypto/obj/obj_test.cc", + "crypto/pem/pem_test.cc", + "crypto/pkcs7/pkcs7_test.cc", + "crypto/pkcs8/pkcs12_test.cc", + "crypto/pkcs8/pkcs8_test.cc", + "crypto/poly1305/poly1305_test.cc", + "crypto/pool/pool_test.cc", + "crypto/rand_extra/getentropy_test.cc", + "crypto/rand_extra/rand_test.cc", + "crypto/refcount_test.cc", + "crypto/rsa_extra/rsa_test.cc", + "crypto/self_test.cc", + "crypto/siphash/siphash_test.cc", + "crypto/spx/spx_test.cc", + "crypto/stack/stack_test.cc", + "crypto/test/gtest_main.cc", + "crypto/thread_test.cc", + "crypto/trust_token/trust_token_test.cc", + "crypto/x509/tab_test.cc", + "crypto/x509/x509_test.cc", + "crypto/x509/x509_time_test.cc", +] + +crypto_test_data = [ + "crypto/blake2/blake2b256_tests.txt", + "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt", + "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt", + "crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt", + "crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt", + "crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt", + "crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt", + "crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.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_ctr_hmac_sha256.txt", + "crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt", + "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt", + "crypto/cipher_extra/test/aes_256_gcm_tests.txt", + "crypto/cipher_extra/test/chacha20_poly1305_tests.txt", + "crypto/cipher_extra/test/cipher_tests.txt", + "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt", + "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt", + "crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt", + "crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt", + "crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt", + "crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt", + "crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt", + "crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt", + "crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt", + "crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt", + "crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt", + "crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt", + "crypto/cipher_extra/test/xchacha20_poly1305_tests.txt", + "crypto/curve25519/ed25519_tests.txt", + "crypto/dilithium/dilithium_tests.txt", + "crypto/dilithium/edge_cases_draft_dilithium3_sign.txt", + "crypto/dilithium/edge_cases_draft_dilithium3_verify.txt", + "crypto/ecdh_extra/ecdh_tests.txt", + "crypto/evp/evp_tests.txt", + "crypto/evp/scrypt_tests.txt", + "crypto/fipsmodule/aes/aes_tests.txt", + "crypto/fipsmodule/bn/test/exp_tests.txt", + "crypto/fipsmodule/bn/test/gcd_tests.txt", + "crypto/fipsmodule/bn/test/miller_rabin_tests.txt", + "crypto/fipsmodule/bn/test/mod_exp_tests.txt", + "crypto/fipsmodule/bn/test/mod_inv_tests.txt", + "crypto/fipsmodule/bn/test/mod_mul_tests.txt", + "crypto/fipsmodule/bn/test/mod_sqrt_tests.txt", + "crypto/fipsmodule/bn/test/product_tests.txt", + "crypto/fipsmodule/bn/test/quotient_tests.txt", + "crypto/fipsmodule/bn/test/shift_tests.txt", + "crypto/fipsmodule/bn/test/sum_tests.txt", + "crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt", + "crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt", + "crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt", + "crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt", + "crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt", + "crypto/fipsmodule/ec/p256-nistz_tests.txt", + "crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt", + "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt", + "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/keccak/keccak_tests.txt", + "crypto/kyber/kyber_tests.txt", + "crypto/mldsa/mldsa_nist_keygen_tests.txt", + "crypto/mldsa/mldsa_nist_siggen_tests.txt", + "crypto/mlkem/mlkem1024_decap_tests.txt", + "crypto/mlkem/mlkem1024_encap_tests.txt", + "crypto/mlkem/mlkem1024_keygen_tests.txt", + "crypto/mlkem/mlkem1024_nist_decap_tests.txt", + "crypto/mlkem/mlkem1024_nist_keygen_tests.txt", + "crypto/mlkem/mlkem768_decap_tests.txt", + "crypto/mlkem/mlkem768_encap_tests.txt", + "crypto/mlkem/mlkem768_keygen_tests.txt", + "crypto/mlkem/mlkem768_nist_decap_tests.txt", + "crypto/mlkem/mlkem768_nist_keygen_tests.txt", + "crypto/pkcs8/test/bad1.p12", + "crypto/pkcs8/test/bad2.p12", + "crypto/pkcs8/test/bad3.p12", + "crypto/pkcs8/test/empty_password.p12", + "crypto/pkcs8/test/empty_password_ber.p12", + "crypto/pkcs8/test/empty_password_ber_nested.p12", + "crypto/pkcs8/test/no_encryption.p12", + "crypto/pkcs8/test/nss.p12", + "crypto/pkcs8/test/null_password.p12", + "crypto/pkcs8/test/openssl.p12", + "crypto/pkcs8/test/pbes2_sha1.p12", + "crypto/pkcs8/test/pbes2_sha256.p12", + "crypto/pkcs8/test/unicode_password.p12", + "crypto/pkcs8/test/windows.p12", + "crypto/poly1305/poly1305_tests.txt", + "crypto/siphash/siphash_tests.txt", + "crypto/spx/spx_tests.txt", + "crypto/spx/spx_tests_deterministic.txt", + "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/policy_intermediate.pem", + "crypto/x509/test/policy_intermediate_any.pem", + "crypto/x509/test/policy_intermediate_duplicate.pem", + "crypto/x509/test/policy_intermediate_invalid.pem", + "crypto/x509/test/policy_intermediate_mapped.pem", + "crypto/x509/test/policy_intermediate_mapped_any.pem", + "crypto/x509/test/policy_intermediate_mapped_oid3.pem", + "crypto/x509/test/policy_intermediate_require.pem", + "crypto/x509/test/policy_intermediate_require1.pem", + "crypto/x509/test/policy_intermediate_require2.pem", + "crypto/x509/test/policy_intermediate_require_duplicate.pem", + "crypto/x509/test/policy_intermediate_require_no_policies.pem", + "crypto/x509/test/policy_leaf.pem", + "crypto/x509/test/policy_leaf_any.pem", + "crypto/x509/test/policy_leaf_duplicate.pem", + "crypto/x509/test/policy_leaf_invalid.pem", + "crypto/x509/test/policy_leaf_none.pem", + "crypto/x509/test/policy_leaf_oid1.pem", + "crypto/x509/test/policy_leaf_oid2.pem", + "crypto/x509/test/policy_leaf_oid3.pem", + "crypto/x509/test/policy_leaf_oid4.pem", + "crypto/x509/test/policy_leaf_oid5.pem", + "crypto/x509/test/policy_leaf_require.pem", + "crypto/x509/test/policy_leaf_require1.pem", + "crypto/x509/test/policy_root.pem", + "crypto/x509/test/policy_root2.pem", + "crypto/x509/test/policy_root_cross_inhibit_mapping.pem", + "crypto/x509/test/pss_sha1.pem", + "crypto/x509/test/pss_sha1_explicit.pem", + "crypto/x509/test/pss_sha1_mgf1_syntax_error.pem", + "crypto/x509/test/pss_sha224.pem", + "crypto/x509/test/pss_sha256.pem", + "crypto/x509/test/pss_sha256_explicit_trailer.pem", + "crypto/x509/test/pss_sha256_mgf1_sha384.pem", + "crypto/x509/test/pss_sha256_mgf1_syntax_error.pem", + "crypto/x509/test/pss_sha256_omit_nulls.pem", + "crypto/x509/test/pss_sha256_salt31.pem", + "crypto/x509/test/pss_sha256_salt_overflow.pem", + "crypto/x509/test/pss_sha256_unknown_mgf.pem", + "crypto/x509/test/pss_sha256_wrong_trailer.pem", + "crypto/x509/test/pss_sha384.pem", + "crypto/x509/test/pss_sha512.pem", + "crypto/x509/test/some_names1.pem", + "crypto/x509/test/some_names2.pem", + "crypto/x509/test/some_names3.pem", + "crypto/x509/test/trailing_data_leaf_authority_key_identifier.pem", + "crypto/x509/test/trailing_data_leaf_basic_constraints.pem", + "crypto/x509/test/trailing_data_leaf_ext_key_usage.pem", + "crypto/x509/test/trailing_data_leaf_key_usage.pem", + "crypto/x509/test/trailing_data_leaf_name_constraints.pem", + "crypto/x509/test/trailing_data_leaf_subject_alt_name.pem", + "crypto/x509/test/trailing_data_leaf_subject_key_identifier.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", + "third_party/wycheproof_testvectors/aes_gcm_test.txt", + "third_party/wycheproof_testvectors/chacha20_poly1305_test.txt", + "third_party/wycheproof_testvectors/dsa_test.txt", + "third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt", + "third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt", + "third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt", + "third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt", + "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt", + "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt", + "third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt", + "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt", + "third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt", + "third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt", + "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/kw_test.txt", + "third_party/wycheproof_testvectors/kwp_test.txt", + "third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt", + "third_party/wycheproof_testvectors/mldsa_65_standard_verify_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", + "third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt", + "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/xchacha20_poly1305_test.txt", +] + +decrepit_sources = [ + "decrepit/bio/base64_bio.c", + "decrepit/blowfish/blowfish.c", + "decrepit/cast/cast.c", + "decrepit/cast/cast_tables.c", + "decrepit/cfb/cfb.c", + "decrepit/des/cfb64ede.c", + "decrepit/dh/dh_decrepit.c", + "decrepit/dsa/dsa_decrepit.c", + "decrepit/evp/dss1.c", + "decrepit/evp/evp_do_all.c", + "decrepit/obj/obj_decrepit.c", + "decrepit/rc4/rc4_decrepit.c", + "decrepit/ripemd/ripemd.c", + "decrepit/rsa/rsa_decrepit.c", + "decrepit/ssl/ssl_decrepit.c", + "decrepit/x509/x509_decrepit.c", + "decrepit/xts/xts.c", +] + +decrepit_internal_headers = [ + "decrepit/cast/internal.h", + "decrepit/macros.h", +] + +decrepit_test_sources = [ + "crypto/test/gtest_main.cc", + "decrepit/blowfish/blowfish_test.cc", + "decrepit/cast/cast_test.cc", + "decrepit/cfb/cfb_test.cc", + "decrepit/des/des_test.cc", + "decrepit/evp/evp_test.cc", + "decrepit/ripemd/ripemd_test.cc", + "decrepit/xts/xts_test.cc", +] + +fuzz_sources = [ + "fuzz/arm_cpuinfo.cc", + "fuzz/bn_div.cc", + "fuzz/bn_mod_exp.cc", + "fuzz/cert.cc", + "fuzz/client.cc", + "fuzz/conf.cc", + "fuzz/crl_getcrlstatusforcert_fuzzer.cc", + "fuzz/crl_parse_crl_certificatelist_fuzzer.cc", + "fuzz/crl_parse_crl_tbscertlist_fuzzer.cc", + "fuzz/crl_parse_issuing_distribution_point_fuzzer.cc", + "fuzz/decode_client_hello_inner.cc", + "fuzz/der_roundtrip.cc", + "fuzz/dtls_client.cc", + "fuzz/dtls_server.cc", + "fuzz/ocsp_parse_ocsp_cert_id_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_response_data_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_response_fuzzer.cc", + "fuzz/ocsp_parse_ocsp_single_response_fuzzer.cc", + "fuzz/parse_authority_key_identifier_fuzzer.cc", + "fuzz/parse_certificate_fuzzer.cc", + "fuzz/parse_crldp_fuzzer.cc", + "fuzz/pkcs12.cc", + "fuzz/pkcs8.cc", + "fuzz/privkey.cc", + "fuzz/read_pem.cc", + "fuzz/server.cc", + "fuzz/session.cc", + "fuzz/spki.cc", + "fuzz/ssl_ctx_api.cc", + "fuzz/verify_name_match_fuzzer.cc", + "fuzz/verify_name_match_normalizename_fuzzer.cc", + "fuzz/verify_name_match_verifynameinsubtree_fuzzer.cc", +] + +pki_sources = [ + "pki/cert_error_id.cc", + "pki/cert_error_params.cc", + "pki/cert_errors.cc", + "pki/cert_issuer_source_static.cc", + "pki/certificate.cc", + "pki/certificate_policies.cc", + "pki/common_cert_errors.cc", + "pki/crl.cc", + "pki/encode_values.cc", + "pki/extended_key_usage.cc", + "pki/general_names.cc", + "pki/input.cc", + "pki/ip_util.cc", + "pki/name_constraints.cc", + "pki/ocsp.cc", + "pki/ocsp_verify_result.cc", + "pki/parse_certificate.cc", + "pki/parse_name.cc", + "pki/parse_values.cc", + "pki/parsed_certificate.cc", + "pki/parser.cc", + "pki/path_builder.cc", + "pki/pem.cc", + "pki/revocation_util.cc", + "pki/signature_algorithm.cc", + "pki/simple_path_builder_delegate.cc", + "pki/string_util.cc", + "pki/trust_store.cc", + "pki/trust_store_collection.cc", + "pki/trust_store_in_memory.cc", + "pki/verify.cc", + "pki/verify_certificate_chain.cc", + "pki/verify_error.cc", + "pki/verify_name_match.cc", + "pki/verify_signed_data.cc", +] + +pki_headers = [ + "include/openssl/pki/certificate.h", + "include/openssl/pki/signature_verify_cache.h", + "include/openssl/pki/verify.h", + "include/openssl/pki/verify_error.h", +] + +pki_internal_headers = [ + "pki/cert_error_id.h", + "pki/cert_error_params.h", + "pki/cert_errors.h", + "pki/cert_issuer_source.h", + "pki/cert_issuer_source_static.h", + "pki/cert_issuer_source_sync_unittest.h", + "pki/certificate_policies.h", + "pki/common_cert_errors.h", + "pki/crl.h", + "pki/encode_values.h", + "pki/extended_key_usage.h", + "pki/general_names.h", + "pki/input.h", + "pki/ip_util.h", + "pki/mock_signature_verify_cache.h", + "pki/name_constraints.h", + "pki/nist_pkits_unittest.h", + "pki/ocsp.h", + "pki/ocsp_revocation_status.h", + "pki/ocsp_verify_result.h", + "pki/parse_certificate.h", + "pki/parse_name.h", + "pki/parse_values.h", + "pki/parsed_certificate.h", + "pki/parser.h", + "pki/path_builder.h", + "pki/pem.h", + "pki/revocation_util.h", + "pki/signature_algorithm.h", + "pki/simple_path_builder_delegate.h", + "pki/string_util.h", + "pki/test_helpers.h", + "pki/testdata/nist-pkits/pkits_testcases-inl.h", + "pki/trust_store.h", + "pki/trust_store_collection.h", + "pki/trust_store_in_memory.h", + "pki/verify_certificate_chain.h", + "pki/verify_certificate_chain_typed_unittest.h", + "pki/verify_name_match.h", + "pki/verify_signed_data.h", +] + +pki_test_sources = [ + "crypto/test/gtest_main.cc", + "pki/cert_issuer_source_static_unittest.cc", + "pki/certificate_policies_unittest.cc", + "pki/certificate_unittest.cc", + "pki/crl_unittest.cc", + "pki/encode_values_unittest.cc", + "pki/extended_key_usage_unittest.cc", + "pki/general_names_unittest.cc", + "pki/input_unittest.cc", + "pki/ip_util_unittest.cc", + "pki/mock_signature_verify_cache.cc", + "pki/name_constraints_unittest.cc", + "pki/nist_pkits_unittest.cc", + "pki/ocsp_unittest.cc", + "pki/parse_certificate_unittest.cc", + "pki/parse_name_unittest.cc", + "pki/parse_values_unittest.cc", + "pki/parsed_certificate_unittest.cc", + "pki/parser_unittest.cc", + "pki/path_builder_pkits_unittest.cc", + "pki/path_builder_unittest.cc", + "pki/path_builder_verify_certificate_chain_unittest.cc", + "pki/pem_unittest.cc", + "pki/signature_algorithm_unittest.cc", + "pki/simple_path_builder_delegate_unittest.cc", + "pki/string_util_unittest.cc", + "pki/test_helpers.cc", + "pki/trust_store_collection_unittest.cc", + "pki/trust_store_in_memory_unittest.cc", + "pki/verify_certificate_chain_pkits_unittest.cc", + "pki/verify_certificate_chain_unittest.cc", + "pki/verify_name_match_unittest.cc", + "pki/verify_signed_data_unittest.cc", + "pki/verify_unittest.cc", +] + +pki_test_data = [ + "pki/testdata/cert_issuer_source_static_unittest/c1.pem", + "pki/testdata/cert_issuer_source_static_unittest/c2.pem", + "pki/testdata/cert_issuer_source_static_unittest/d.pem", + "pki/testdata/cert_issuer_source_static_unittest/e1.pem", + "pki/testdata/cert_issuer_source_static_unittest/e2.pem", + "pki/testdata/cert_issuer_source_static_unittest/i1_1.pem", + "pki/testdata/cert_issuer_source_static_unittest/i1_2.pem", + "pki/testdata/cert_issuer_source_static_unittest/i2.pem", + "pki/testdata/cert_issuer_source_static_unittest/i3_1.pem", + "pki/testdata/cert_issuer_source_static_unittest/i3_2.pem", + "pki/testdata/cert_issuer_source_static_unittest/root.pem", + "pki/testdata/certificate_policies_unittest/anypolicy.pem", + "pki/testdata/certificate_policies_unittest/anypolicy_with_qualifier.pem", + "pki/testdata/certificate_policies_unittest/invalid-anypolicy_with_custom_qualifier.pem", + "pki/testdata/certificate_policies_unittest/invalid-empty.pem", + "pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_dupe.pem", + "pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_policyinformation_unconsumed_data.pem", + "pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_policyqualifierinfo_unconsumed_data.pem", + "pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_with_empty_qualifiers_sequence.pem", + "pki/testdata/certificate_policies_unittest/invalid-policy_identifier_not_oid.pem", + "pki/testdata/certificate_policies_unittest/policy_1_2_3.pem", + "pki/testdata/certificate_policies_unittest/policy_1_2_3_and_1_2_4.pem", + "pki/testdata/certificate_policies_unittest/policy_1_2_3_and_1_2_4_with_qualifiers.pem", + "pki/testdata/certificate_policies_unittest/policy_1_2_3_with_custom_qualifier.pem", + "pki/testdata/certificate_policies_unittest/policy_1_2_3_with_qualifier.pem", + "pki/testdata/crl_unittest/bad_crldp_has_crlissuer.pem", + "pki/testdata/crl_unittest/bad_fake_critical_crlentryextension.pem", + "pki/testdata/crl_unittest/bad_fake_critical_extension.pem", + "pki/testdata/crl_unittest/bad_idp_contains_wrong_uri.pem", + "pki/testdata/crl_unittest/bad_idp_indirectcrl.pem", + "pki/testdata/crl_unittest/bad_idp_onlycontainscacerts.pem", + "pki/testdata/crl_unittest/bad_idp_onlycontainscacerts_no_basic_constraints.pem", + "pki/testdata/crl_unittest/bad_idp_onlycontainsusercerts.pem", + "pki/testdata/crl_unittest/bad_idp_uri_and_onlycontainscacerts.pem", + "pki/testdata/crl_unittest/bad_idp_uri_and_onlycontainsusercerts.pem", + "pki/testdata/crl_unittest/bad_key_rollover_signature.pem", + "pki/testdata/crl_unittest/bad_nextupdate_too_old.pem", + "pki/testdata/crl_unittest/bad_signature.pem", + "pki/testdata/crl_unittest/bad_thisupdate_in_future.pem", + "pki/testdata/crl_unittest/bad_thisupdate_too_old.pem", + "pki/testdata/crl_unittest/bad_wrong_issuer.pem", + "pki/testdata/crl_unittest/good.pem", + "pki/testdata/crl_unittest/good_fake_extension.pem", + "pki/testdata/crl_unittest/good_fake_extension_no_nextupdate.pem", + "pki/testdata/crl_unittest/good_generalizedtime.pem", + "pki/testdata/crl_unittest/good_idp_contains_uri.pem", + "pki/testdata/crl_unittest/good_idp_onlycontainscacerts.pem", + "pki/testdata/crl_unittest/good_idp_onlycontainsusercerts.pem", + "pki/testdata/crl_unittest/good_idp_onlycontainsusercerts_no_basic_constraints.pem", + "pki/testdata/crl_unittest/good_idp_uri_and_onlycontainscacerts.pem", + "pki/testdata/crl_unittest/good_idp_uri_and_onlycontainsusercerts.pem", + "pki/testdata/crl_unittest/good_issuer_name_normalization.pem", + "pki/testdata/crl_unittest/good_issuer_no_keyusage.pem", + "pki/testdata/crl_unittest/good_key_rollover.pem", + "pki/testdata/crl_unittest/good_no_crldp.pem", + "pki/testdata/crl_unittest/good_no_nextupdate.pem", + "pki/testdata/crl_unittest/good_no_version.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_crlentryextensions.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_extensions.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_nextupdate.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_revocationdate.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_revokedcerts.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_signaturevalue.pem", + "pki/testdata/crl_unittest/invalid_garbage_after_thisupdate.pem", + "pki/testdata/crl_unittest/invalid_garbage_crlentry.pem", + "pki/testdata/crl_unittest/invalid_garbage_issuer_name.pem", + "pki/testdata/crl_unittest/invalid_garbage_revocationdate.pem", + "pki/testdata/crl_unittest/invalid_garbage_revoked_serial_number.pem", + "pki/testdata/crl_unittest/invalid_garbage_signaturealgorithm.pem", + "pki/testdata/crl_unittest/invalid_garbage_signaturevalue.pem", + "pki/testdata/crl_unittest/invalid_garbage_tbs_signature_algorithm.pem", + "pki/testdata/crl_unittest/invalid_garbage_tbscertlist.pem", + "pki/testdata/crl_unittest/invalid_garbage_thisupdate.pem", + "pki/testdata/crl_unittest/invalid_garbage_version.pem", + "pki/testdata/crl_unittest/invalid_idp_dpname_choice_extra_data.pem", + "pki/testdata/crl_unittest/invalid_idp_empty_sequence.pem", + "pki/testdata/crl_unittest/invalid_idp_onlycontains_user_and_ca_certs.pem", + "pki/testdata/crl_unittest/invalid_idp_onlycontainsusercerts_v1_leaf.pem", + "pki/testdata/crl_unittest/invalid_issuer_keyusage_no_crlsign.pem", + "pki/testdata/crl_unittest/invalid_key_rollover_issuer_keyusage_no_crlsign.pem", + "pki/testdata/crl_unittest/invalid_mismatched_signature_algorithm.pem", + "pki/testdata/crl_unittest/invalid_revoked_empty_sequence.pem", + "pki/testdata/crl_unittest/invalid_v1_explicit.pem", + "pki/testdata/crl_unittest/invalid_v1_with_crlentryextension.pem", + "pki/testdata/crl_unittest/invalid_v1_with_extension.pem", + "pki/testdata/crl_unittest/invalid_v3.pem", + "pki/testdata/crl_unittest/revoked.pem", + "pki/testdata/crl_unittest/revoked_fake_crlentryextension.pem", + "pki/testdata/crl_unittest/revoked_generalized_revocationdate.pem", + "pki/testdata/crl_unittest/revoked_key_rollover.pem", + "pki/testdata/crl_unittest/revoked_no_nextupdate.pem", + "pki/testdata/name_constraints_unittest/directoryname-excludeall.pem", + "pki/testdata/name_constraints_unittest/directoryname-excluded.pem", + "pki/testdata/name_constraints_unittest/directoryname.pem", + "pki/testdata/name_constraints_unittest/directoryname_and_dnsname.pem", + "pki/testdata/name_constraints_unittest/directoryname_and_dnsname_and_ipaddress.pem", + "pki/testdata/name_constraints_unittest/dnsname-exclude_dot.pem", + "pki/testdata/name_constraints_unittest/dnsname-excludeall.pem", + "pki/testdata/name_constraints_unittest/dnsname-excluded.pem", + "pki/testdata/name_constraints_unittest/dnsname-excluded_with_leading_dot.pem", + "pki/testdata/name_constraints_unittest/dnsname-permitted_two_dot.pem", + "pki/testdata/name_constraints_unittest/dnsname-permitted_with_leading_dot.pem", + "pki/testdata/name_constraints_unittest/dnsname-with_max.pem", + "pki/testdata/name_constraints_unittest/dnsname-with_min_0.pem", + "pki/testdata/name_constraints_unittest/dnsname-with_min_0_and_max.pem", + "pki/testdata/name_constraints_unittest/dnsname-with_min_1.pem", + "pki/testdata/name_constraints_unittest/dnsname-with_min_1_and_max.pem", + "pki/testdata/name_constraints_unittest/dnsname.pem", + "pki/testdata/name_constraints_unittest/dnsname2.pem", + "pki/testdata/name_constraints_unittest/edipartyname-excluded.pem", + "pki/testdata/name_constraints_unittest/edipartyname-permitted.pem", + "pki/testdata/name_constraints_unittest/invalid-empty_excluded_subtree.pem", + "pki/testdata/name_constraints_unittest/invalid-empty_permitted_subtree.pem", + "pki/testdata/name_constraints_unittest/invalid-no_subtrees.pem", + "pki/testdata/name_constraints_unittest/ipaddress-excludeall.pem", + "pki/testdata/name_constraints_unittest/ipaddress-excluded.pem", + "pki/testdata/name_constraints_unittest/ipaddress-invalid_addr.pem", + "pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_1.pem", + "pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_2.pem", + "pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_3.pem", + "pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_4.pem", + "pki/testdata/name_constraints_unittest/ipaddress-mapped_addrs.pem", + "pki/testdata/name_constraints_unittest/ipaddress-permit_all.pem", + "pki/testdata/name_constraints_unittest/ipaddress-permit_prefix1.pem", + "pki/testdata/name_constraints_unittest/ipaddress-permit_prefix31.pem", + "pki/testdata/name_constraints_unittest/ipaddress-permit_singlehost.pem", + "pki/testdata/name_constraints_unittest/ipaddress.pem", + "pki/testdata/name_constraints_unittest/name-ca.pem", + "pki/testdata/name_constraints_unittest/name-de.pem", + "pki/testdata/name_constraints_unittest/name-empty.pem", + "pki/testdata/name_constraints_unittest/name-jp-tokyo.pem", + "pki/testdata/name_constraints_unittest/name-jp.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-1.1.1.1.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-192.168.1.1.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-email-invalidstring.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-email-localpartcase.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-email-multiple.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-email.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-foo.com.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-ipv6.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona-permitted.example.com.pem", + "pki/testdata/name_constraints_unittest/name-us-arizona.pem", + "pki/testdata/name_constraints_unittest/name-us-california-192.168.1.1.pem", + "pki/testdata/name_constraints_unittest/name-us-california-mountain_view.pem", + "pki/testdata/name_constraints_unittest/name-us-california-permitted.example.com.pem", + "pki/testdata/name_constraints_unittest/name-us-california.pem", + "pki/testdata/name_constraints_unittest/name-us.pem", + "pki/testdata/name_constraints_unittest/othername-excluded.pem", + "pki/testdata/name_constraints_unittest/othername-permitted.pem", + "pki/testdata/name_constraints_unittest/registeredid-excluded.pem", + "pki/testdata/name_constraints_unittest/registeredid-permitted.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded-empty.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded-hostname.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded-hostnamewithat.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded-ipv4.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded-quoted.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded-subdomains.pem", + "pki/testdata/name_constraints_unittest/rfc822name-excluded.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted-empty.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted-hostname.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted-hostnamewithat.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted-ipv4.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted-quoted.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted-subdomains.pem", + "pki/testdata/name_constraints_unittest/rfc822name-permitted.pem", + "pki/testdata/name_constraints_unittest/san-directoryname.pem", + "pki/testdata/name_constraints_unittest/san-dnsname.pem", + "pki/testdata/name_constraints_unittest/san-edipartyname.pem", + "pki/testdata/name_constraints_unittest/san-excluded-directoryname.pem", + "pki/testdata/name_constraints_unittest/san-excluded-dnsname.pem", + "pki/testdata/name_constraints_unittest/san-excluded-ipaddress.pem", + "pki/testdata/name_constraints_unittest/san-invalid-empty.pem", + "pki/testdata/name_constraints_unittest/san-invalid-ipaddress.pem", + "pki/testdata/name_constraints_unittest/san-ipaddress4.pem", + "pki/testdata/name_constraints_unittest/san-ipaddress6.pem", + "pki/testdata/name_constraints_unittest/san-othername.pem", + "pki/testdata/name_constraints_unittest/san-permitted.pem", + "pki/testdata/name_constraints_unittest/san-registeredid.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-domaincase.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-empty-localpart.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-empty.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-ipv4.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-localpartcase.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-multiple.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-no-at.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-quoted.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-subdomain-no-at.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-subdomain-two-ats.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-subdomain.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-subdomaincase.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name-two-ats.pem", + "pki/testdata/name_constraints_unittest/san-rfc822name.pem", + "pki/testdata/name_constraints_unittest/san-uri.pem", + "pki/testdata/name_constraints_unittest/san-x400address.pem", + "pki/testdata/name_constraints_unittest/uri-excluded.pem", + "pki/testdata/name_constraints_unittest/uri-permitted.pem", + "pki/testdata/name_constraints_unittest/x400address-excluded.pem", + "pki/testdata/name_constraints_unittest/x400address-permitted.pem", + "pki/testdata/nist-pkits/certs/AllCertificatesNoPoliciesTest2EE.crt", + "pki/testdata/nist-pkits/certs/AllCertificatesSamePoliciesTest10EE.crt", + "pki/testdata/nist-pkits/certs/AllCertificatesSamePoliciesTest13EE.crt", + "pki/testdata/nist-pkits/certs/AllCertificatesanyPolicyTest11EE.crt", + "pki/testdata/nist-pkits/certs/AnyPolicyTest14EE.crt", + "pki/testdata/nist-pkits/certs/BadCRLIssuerNameCACert.crt", + "pki/testdata/nist-pkits/certs/BadCRLSignatureCACert.crt", + "pki/testdata/nist-pkits/certs/BadSignedCACert.crt", + "pki/testdata/nist-pkits/certs/BadnotAfterDateCACert.crt", + "pki/testdata/nist-pkits/certs/BadnotBeforeDateCACert.crt", + "pki/testdata/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCACert.crt", + "pki/testdata/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt", + "pki/testdata/nist-pkits/certs/BasicSelfIssuedNewKeyCACert.crt", + "pki/testdata/nist-pkits/certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt", + "pki/testdata/nist-pkits/certs/BasicSelfIssuedOldKeyCACert.crt", + "pki/testdata/nist-pkits/certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt", + "pki/testdata/nist-pkits/certs/CPSPointerQualifierTest20EE.crt", + "pki/testdata/nist-pkits/certs/DSACACert.crt", + "pki/testdata/nist-pkits/certs/DSAParametersInheritedCACert.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest12EE.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest3EE.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest4EE.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest5EE.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest7EE.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest8EE.crt", + "pki/testdata/nist-pkits/certs/DifferentPoliciesTest9EE.crt", + "pki/testdata/nist-pkits/certs/GeneralizedTimeCRLnextUpdateCACert.crt", + "pki/testdata/nist-pkits/certs/GoodCACert.crt", + "pki/testdata/nist-pkits/certs/GoodsubCACert.crt", + "pki/testdata/nist-pkits/certs/GoodsubCAPanyPolicyMapping1to2CACert.crt", + "pki/testdata/nist-pkits/certs/InvalidBadCRLIssuerNameTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidBadCRLSignatureTest4EE.crt", + "pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest7EE.crt", + "pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedNewWithOldTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedOldWithNewTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidCASignatureTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidCAnotAfterDateTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidCAnotBeforeDateTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest31EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest33EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest38EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest28EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest29EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest12EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest13EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest15EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest16EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest17EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest20EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest7EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest9EE.crt", + "pki/testdata/nist-pkits/certs/InvalidDSASignatureTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvalidEESignatureTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvalidEEnotAfterDateTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvalidEEnotBeforeDateTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidIDPwithindirectCRLTest23EE.crt", + "pki/testdata/nist-pkits/certs/InvalidIDPwithindirectCRLTest26EE.crt", + "pki/testdata/nist-pkits/certs/InvalidLongSerialNumberTest18EE.crt", + "pki/testdata/nist-pkits/certs/InvalidMappingFromanyPolicyTest7EE.crt", + "pki/testdata/nist-pkits/certs/InvalidMappingToanyPolicyTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidMissingCRLTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidMissingbasicConstraintsTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidNameChainingOrderTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidNameChainingTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidNegativeSerialNumberTest15EE.crt", + "pki/testdata/nist-pkits/certs/InvalidOldCRLnextUpdateTest11EE.crt", + "pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest4EE.crt", + "pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest22EE.crt", + "pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest24EE.crt", + "pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest26EE.crt", + "pki/testdata/nist-pkits/certs/InvalidRevokedCATest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidRevokedEETest3EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest11EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest9EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedpathLenConstraintTest16EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest7EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest20EE.crt", + "pki/testdata/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest21EE.crt", + "pki/testdata/nist-pkits/certs/InvalidURInameConstraintsTest35EE.crt", + "pki/testdata/nist-pkits/certs/InvalidURInameConstraintsTest37EE.crt", + "pki/testdata/nist-pkits/certs/InvalidUnknownCRLEntryExtensionTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvalidUnknownCRLExtensionTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvalidUnknownCRLExtensionTest9EE.crt", + "pki/testdata/nist-pkits/certs/InvalidUnknownCriticalCertificateExtensionTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidWrongCRLTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcAFalseTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcAFalseTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest27EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest31EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest32EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest34EE.crt", + "pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest35EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddeltaCRLIndicatorNoBaseTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest4EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest9EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddistributionPointTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddistributionPointTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddistributionPointTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddistributionPointTest8EE.crt", + "pki/testdata/nist-pkits/certs/InvaliddistributionPointTest9EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest4EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt", + "pki/testdata/nist-pkits/certs/InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt", + "pki/testdata/nist-pkits/certs/InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlyContainsAttributeCertsTest14EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlyContainsCACertsTest12EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlyContainsUserCertsTest11EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest15EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest16EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest17EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest20EE.crt", + "pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest21EE.crt", + "pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest10EE.crt", + "pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest11EE.crt", + "pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest12EE.crt", + "pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest5EE.crt", + "pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest6EE.crt", + "pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest9EE.crt", + "pki/testdata/nist-pkits/certs/Invalidpre2000CRLnextUpdateTest12EE.crt", + "pki/testdata/nist-pkits/certs/Invalidpre2000UTCEEnotAfterDateTest7EE.crt", + "pki/testdata/nist-pkits/certs/InvalidrequireExplicitPolicyTest3EE.crt", + "pki/testdata/nist-pkits/certs/InvalidrequireExplicitPolicyTest5EE.crt", + "pki/testdata/nist-pkits/certs/LongSerialNumberCACert.crt", + "pki/testdata/nist-pkits/certs/Mapping1to2CACert.crt", + "pki/testdata/nist-pkits/certs/MappingFromanyPolicyCACert.crt", + "pki/testdata/nist-pkits/certs/MappingToanyPolicyCACert.crt", + "pki/testdata/nist-pkits/certs/MissingbasicConstraintsCACert.crt", + "pki/testdata/nist-pkits/certs/NameOrderingCACert.crt", + "pki/testdata/nist-pkits/certs/NegativeSerialNumberCACert.crt", + "pki/testdata/nist-pkits/certs/NoCRLCACert.crt", + "pki/testdata/nist-pkits/certs/NoPoliciesCACert.crt", + "pki/testdata/nist-pkits/certs/NoissuingDistributionPointCACert.crt", + "pki/testdata/nist-pkits/certs/OldCRLnextUpdateCACert.crt", + "pki/testdata/nist-pkits/certs/OverlappingPoliciesTest6EE.crt", + "pki/testdata/nist-pkits/certs/P12Mapping1to3CACert.crt", + "pki/testdata/nist-pkits/certs/P12Mapping1to3subCACert.crt", + "pki/testdata/nist-pkits/certs/P12Mapping1to3subsubCACert.crt", + "pki/testdata/nist-pkits/certs/P1Mapping1to234CACert.crt", + "pki/testdata/nist-pkits/certs/P1Mapping1to234subCACert.crt", + "pki/testdata/nist-pkits/certs/P1anyPolicyMapping1to2CACert.crt", + "pki/testdata/nist-pkits/certs/PanyPolicyMapping1to2CACert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP1234CACert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP1234subCAP123Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP1234subsubCAP123P12Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP123CACert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP123subCAP12Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP123subsubCAP12P1Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP123subsubCAP12P2Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP123subsubsubCAP12P2P1Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP12CACert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP12subCAP1Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP12subsubCAP1P2Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP2subCA2Cert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP2subCACert.crt", + "pki/testdata/nist-pkits/certs/PoliciesP3CACert.crt", + "pki/testdata/nist-pkits/certs/RFC3280MandatoryAttributeTypesCACert.crt", + "pki/testdata/nist-pkits/certs/RFC3280OptionalAttributeTypesCACert.crt", + "pki/testdata/nist-pkits/certs/RevokedsubCACert.crt", + "pki/testdata/nist-pkits/certs/RolloverfromPrintableStringtoUTF8StringCACert.crt", + "pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CRLSigningCert.crt", + "pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CertificateSigningCACert.crt", + "pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCRLSigningCert.crt", + "pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCertificateSigningCACert.crt", + "pki/testdata/nist-pkits/certs/TrustAnchorRootCertificate.crt", + "pki/testdata/nist-pkits/certs/TwoCRLsCACert.crt", + "pki/testdata/nist-pkits/certs/UIDCACert.crt", + "pki/testdata/nist-pkits/certs/UTF8StringCaseInsensitiveMatchCACert.crt", + "pki/testdata/nist-pkits/certs/UTF8StringEncodedNamesCACert.crt", + "pki/testdata/nist-pkits/certs/UnknownCRLEntryExtensionCACert.crt", + "pki/testdata/nist-pkits/certs/UnknownCRLExtensionCACert.crt", + "pki/testdata/nist-pkits/certs/UserNoticeQualifierTest15EE.crt", + "pki/testdata/nist-pkits/certs/UserNoticeQualifierTest16EE.crt", + "pki/testdata/nist-pkits/certs/UserNoticeQualifierTest17EE.crt", + "pki/testdata/nist-pkits/certs/UserNoticeQualifierTest18EE.crt", + "pki/testdata/nist-pkits/certs/UserNoticeQualifierTest19EE.crt", + "pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedCRLSigningKeyTest6EE.crt", + "pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest3EE.crt", + "pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedOldWithNewTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValidCertificatePathTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNSnameConstraintsTest30EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNSnameConstraintsTest32EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNandRFC822nameConstraintsTest27EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest11EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest14EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest18EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest19EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest5EE.crt", + "pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest6EE.crt", + "pki/testdata/nist-pkits/certs/ValidDSAParameterInheritanceTest5EE.crt", + "pki/testdata/nist-pkits/certs/ValidDSASignaturesTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidGeneralizedTimeCRLnextUpdateTest13EE.crt", + "pki/testdata/nist-pkits/certs/ValidGeneralizedTimenotAfterDateTest8EE.crt", + "pki/testdata/nist-pkits/certs/ValidGeneralizedTimenotBeforeDateTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest22EE.crt", + "pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest24EE.crt", + "pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest25EE.crt", + "pki/testdata/nist-pkits/certs/ValidLongSerialNumberTest16EE.crt", + "pki/testdata/nist-pkits/certs/ValidLongSerialNumberTest17EE.crt", + "pki/testdata/nist-pkits/certs/ValidNameChainingCapitalizationTest5EE.crt", + "pki/testdata/nist-pkits/certs/ValidNameChainingWhitespaceTest3EE.crt", + "pki/testdata/nist-pkits/certs/ValidNameChainingWhitespaceTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidNameUIDsTest6EE.crt", + "pki/testdata/nist-pkits/certs/ValidNegativeSerialNumberTest14EE.crt", + "pki/testdata/nist-pkits/certs/ValidNoissuingDistributionPointTest10EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest11EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest12EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest13EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest14EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest3EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest5EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest6EE.crt", + "pki/testdata/nist-pkits/certs/ValidPolicyMappingTest9EE.crt", + "pki/testdata/nist-pkits/certs/ValidRFC3280MandatoryAttributeTypesTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValidRFC3280OptionalAttributeTypesTest8EE.crt", + "pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest21EE.crt", + "pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest23EE.crt", + "pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest25EE.crt", + "pki/testdata/nist-pkits/certs/ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt", + "pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest9EE.crt", + "pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitPolicyMappingTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest15EE.crt", + "pki/testdata/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest17EE.crt", + "pki/testdata/nist-pkits/certs/ValidSelfIssuedrequireExplicitPolicyTest6EE.crt", + "pki/testdata/nist-pkits/certs/ValidSeparateCertificateandCRLKeysTest19EE.crt", + "pki/testdata/nist-pkits/certs/ValidTwoCRLsTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValidURInameConstraintsTest34EE.crt", + "pki/testdata/nist-pkits/certs/ValidURInameConstraintsTest36EE.crt", + "pki/testdata/nist-pkits/certs/ValidUTF8StringCaseInsensitiveMatchTest11EE.crt", + "pki/testdata/nist-pkits/certs/ValidUTF8StringEncodedNamesTest9EE.crt", + "pki/testdata/nist-pkits/certs/ValidUnknownNotCriticalCertificateExtensionTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValidbasicConstraintsNotCriticalTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidcRLIssuerTest28EE.crt", + "pki/testdata/nist-pkits/certs/ValidcRLIssuerTest29EE.crt", + "pki/testdata/nist-pkits/certs/ValidcRLIssuerTest30EE.crt", + "pki/testdata/nist-pkits/certs/ValidcRLIssuerTest33EE.crt", + "pki/testdata/nist-pkits/certs/ValiddeltaCRLTest2EE.crt", + "pki/testdata/nist-pkits/certs/ValiddeltaCRLTest5EE.crt", + "pki/testdata/nist-pkits/certs/ValiddeltaCRLTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValiddeltaCRLTest8EE.crt", + "pki/testdata/nist-pkits/certs/ValiddistributionPointTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValiddistributionPointTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValiddistributionPointTest5EE.crt", + "pki/testdata/nist-pkits/certs/ValiddistributionPointTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValidinhibitAnyPolicyTest2EE.crt", + "pki/testdata/nist-pkits/certs/ValidinhibitPolicyMappingTest2EE.crt", + "pki/testdata/nist-pkits/certs/ValidinhibitPolicyMappingTest4EE.crt", + "pki/testdata/nist-pkits/certs/ValidkeyUsageNotCriticalTest3EE.crt", + "pki/testdata/nist-pkits/certs/ValidonlyContainsCACertsTest13EE.crt", + "pki/testdata/nist-pkits/certs/ValidonlySomeReasonsTest18EE.crt", + "pki/testdata/nist-pkits/certs/ValidonlySomeReasonsTest19EE.crt", + "pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest13EE.crt", + "pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest14EE.crt", + "pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest7EE.crt", + "pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest8EE.crt", + "pki/testdata/nist-pkits/certs/Validpre2000UTCnotBeforeDateTest3EE.crt", + "pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest1EE.crt", + "pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest2EE.crt", + "pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest4EE.crt", + "pki/testdata/nist-pkits/certs/WrongCRLCACert.crt", + "pki/testdata/nist-pkits/certs/anyPolicyCACert.crt", + "pki/testdata/nist-pkits/certs/basicConstraintsCriticalcAFalseCACert.crt", + "pki/testdata/nist-pkits/certs/basicConstraintsNotCriticalCACert.crt", + "pki/testdata/nist-pkits/certs/basicConstraintsNotCriticalcAFalseCACert.crt", + "pki/testdata/nist-pkits/certs/deltaCRLCA1Cert.crt", + "pki/testdata/nist-pkits/certs/deltaCRLCA2Cert.crt", + "pki/testdata/nist-pkits/certs/deltaCRLCA3Cert.crt", + "pki/testdata/nist-pkits/certs/deltaCRLIndicatorNoBaseCACert.crt", + "pki/testdata/nist-pkits/certs/distributionPoint1CACert.crt", + "pki/testdata/nist-pkits/certs/distributionPoint2CACert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA1Cert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA2Cert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA3Cert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA3cRLIssuerCert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA4Cert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA4cRLIssuerCert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA5Cert.crt", + "pki/testdata/nist-pkits/certs/indirectCRLCA6Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy0CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedsubCA2Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCA1Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCA2Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCAIAP5Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subsubCA2Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy5CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy5subCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicy5subsubCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitAnyPolicyTest3EE.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping0CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping0subCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subCAIPM5Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subsubCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subsubCAIPM5Cert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1subCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1subsubCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping5CACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subsubCACert.crt", + "pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subsubsubCACert.crt", + "pki/testdata/nist-pkits/certs/keyUsageCriticalcRLSignFalseCACert.crt", + "pki/testdata/nist-pkits/certs/keyUsageCriticalkeyCertSignFalseCACert.crt", + "pki/testdata/nist-pkits/certs/keyUsageNotCriticalCACert.crt", + "pki/testdata/nist-pkits/certs/keyUsageNotCriticalcRLSignFalseCACert.crt", + "pki/testdata/nist-pkits/certs/keyUsageNotCriticalkeyCertSignFalseCACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN1CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN1SelfIssuedCACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA1Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA2Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA3Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN2CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN3CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN3subCA1Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN3subCA2Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN4CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDN5CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDNS1CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsDNS2CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA1Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA2Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA3Cert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsURI1CACert.crt", + "pki/testdata/nist-pkits/certs/nameConstraintsURI2CACert.crt", + "pki/testdata/nist-pkits/certs/onlyContainsAttributeCertsCACert.crt", + "pki/testdata/nist-pkits/certs/onlyContainsCACertsCACert.crt", + "pki/testdata/nist-pkits/certs/onlyContainsUserCertsCACert.crt", + "pki/testdata/nist-pkits/certs/onlySomeReasonsCA1Cert.crt", + "pki/testdata/nist-pkits/certs/onlySomeReasonsCA2Cert.crt", + "pki/testdata/nist-pkits/certs/onlySomeReasonsCA3Cert.crt", + "pki/testdata/nist-pkits/certs/onlySomeReasonsCA4Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint0CACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint0SelfIssuedCACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint0subCA2Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint0subCACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint1CACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint1SelfIssuedCACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint1SelfIssuedsubCACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint1subCACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6CACert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subCA0Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subCA1Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subCA4Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA00Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA11Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA41Cert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subsubsubCA11XCert.crt", + "pki/testdata/nist-pkits/certs/pathLenConstraint6subsubsubCA41XCert.crt", + "pki/testdata/nist-pkits/certs/pre2000CRLnextUpdateCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy0CACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy0subCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy0subsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy0subsubsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy10CACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy10subCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy10subsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy10subsubsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy2CACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy2SelfIssuedCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy2SelfIssuedsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy2subCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy4CACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy4subCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy4subsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy4subsubsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy5CACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy5subCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy5subsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy5subsubsubCACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy7CACert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy7subCARE2Cert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy7subsubCARE2RE4Cert.crt", + "pki/testdata/nist-pkits/certs/requireExplicitPolicy7subsubsubCARE2RE4Cert.crt", + "pki/testdata/nist-pkits/crls/BadCRLIssuerNameCACRL.crl", + "pki/testdata/nist-pkits/crls/BadCRLSignatureCACRL.crl", + "pki/testdata/nist-pkits/crls/BadSignedCACRL.crl", + "pki/testdata/nist-pkits/crls/BadnotAfterDateCACRL.crl", + "pki/testdata/nist-pkits/crls/BadnotBeforeDateCACRL.crl", + "pki/testdata/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCACRL.crl", + "pki/testdata/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl", + "pki/testdata/nist-pkits/crls/BasicSelfIssuedNewKeyCACRL.crl", + "pki/testdata/nist-pkits/crls/BasicSelfIssuedOldKeyCACRL.crl", + "pki/testdata/nist-pkits/crls/BasicSelfIssuedOldKeySelfIssuedCertCRL.crl", + "pki/testdata/nist-pkits/crls/DSACACRL.crl", + "pki/testdata/nist-pkits/crls/DSAParametersInheritedCACRL.crl", + "pki/testdata/nist-pkits/crls/GeneralizedTimeCRLnextUpdateCACRL.crl", + "pki/testdata/nist-pkits/crls/GoodCACRL.crl", + "pki/testdata/nist-pkits/crls/GoodsubCACRL.crl", + "pki/testdata/nist-pkits/crls/GoodsubCAPanyPolicyMapping1to2CACRL.crl", + "pki/testdata/nist-pkits/crls/LongSerialNumberCACRL.crl", + "pki/testdata/nist-pkits/crls/Mapping1to2CACRL.crl", + "pki/testdata/nist-pkits/crls/MappingFromanyPolicyCACRL.crl", + "pki/testdata/nist-pkits/crls/MappingToanyPolicyCACRL.crl", + "pki/testdata/nist-pkits/crls/MissingbasicConstraintsCACRL.crl", + "pki/testdata/nist-pkits/crls/NameOrderCACRL.crl", + "pki/testdata/nist-pkits/crls/NegativeSerialNumberCACRL.crl", + "pki/testdata/nist-pkits/crls/NoPoliciesCACRL.crl", + "pki/testdata/nist-pkits/crls/NoissuingDistributionPointCACRL.crl", + "pki/testdata/nist-pkits/crls/OldCRLnextUpdateCACRL.crl", + "pki/testdata/nist-pkits/crls/P12Mapping1to3CACRL.crl", + "pki/testdata/nist-pkits/crls/P12Mapping1to3subCACRL.crl", + "pki/testdata/nist-pkits/crls/P12Mapping1to3subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/P1Mapping1to234CACRL.crl", + "pki/testdata/nist-pkits/crls/P1Mapping1to234subCACRL.crl", + "pki/testdata/nist-pkits/crls/P1anyPolicyMapping1to2CACRL.crl", + "pki/testdata/nist-pkits/crls/PanyPolicyMapping1to2CACRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP1234CACRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP1234subCAP123CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP1234subsubCAP123P12CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP123CACRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP123subCAP12CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP123subsubCAP12P1CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP123subsubCAP2P2CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP123subsubsubCAP12P2P1CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP12CACRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP12subCAP1CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP12subsubCAP1P2CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP2subCA2CRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP2subCACRL.crl", + "pki/testdata/nist-pkits/crls/PoliciesP3CACRL.crl", + "pki/testdata/nist-pkits/crls/RFC3280MandatoryAttributeTypesCACRL.crl", + "pki/testdata/nist-pkits/crls/RFC3280OptionalAttributeTypesCACRL.crl", + "pki/testdata/nist-pkits/crls/RevokedsubCACRL.crl", + "pki/testdata/nist-pkits/crls/RolloverfromPrintableStringtoUTF8StringCACRL.crl", + "pki/testdata/nist-pkits/crls/SeparateCertificateandCRLKeysCA2CRL.crl", + "pki/testdata/nist-pkits/crls/SeparateCertificateandCRLKeysCRL.crl", + "pki/testdata/nist-pkits/crls/TrustAnchorRootCRL.crl", + "pki/testdata/nist-pkits/crls/TwoCRLsCABadCRL.crl", + "pki/testdata/nist-pkits/crls/TwoCRLsCAGoodCRL.crl", + "pki/testdata/nist-pkits/crls/UIDCACRL.crl", + "pki/testdata/nist-pkits/crls/UTF8StringCaseInsensitiveMatchCACRL.crl", + "pki/testdata/nist-pkits/crls/UTF8StringEncodedNamesCACRL.crl", + "pki/testdata/nist-pkits/crls/UnknownCRLEntryExtensionCACRL.crl", + "pki/testdata/nist-pkits/crls/UnknownCRLExtensionCACRL.crl", + "pki/testdata/nist-pkits/crls/WrongCRLCACRL.crl", + "pki/testdata/nist-pkits/crls/anyPolicyCACRL.crl", + "pki/testdata/nist-pkits/crls/basicConstraintsCriticalcAFalseCACRL.crl", + "pki/testdata/nist-pkits/crls/basicConstraintsNotCriticalCACRL.crl", + "pki/testdata/nist-pkits/crls/basicConstraintsNotCriticalcAFalseCACRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLCA1CRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLCA1deltaCRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLCA2CRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLCA2deltaCRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLCA3CRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLCA3deltaCRL.crl", + "pki/testdata/nist-pkits/crls/deltaCRLIndicatorNoBaseCACRL.crl", + "pki/testdata/nist-pkits/crls/distributionPoint1CACRL.crl", + "pki/testdata/nist-pkits/crls/distributionPoint2CACRL.crl", + "pki/testdata/nist-pkits/crls/indirectCRLCA1CRL.crl", + "pki/testdata/nist-pkits/crls/indirectCRLCA3CRL.crl", + "pki/testdata/nist-pkits/crls/indirectCRLCA3cRLIssuerCRL.crl", + "pki/testdata/nist-pkits/crls/indirectCRLCA4cRLIssuerCRL.crl", + "pki/testdata/nist-pkits/crls/indirectCRLCA5CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy0CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy1CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCA1CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCA2CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCAIAP5CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subsubCA2CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy5CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy5subCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitAnyPolicy5subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping0CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping0subCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subCAIPM5CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subsubCAIPM5CRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1subCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping5CACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subsubsubCACRL.crl", + "pki/testdata/nist-pkits/crls/keyUsageCriticalcRLSignFalseCACRL.crl", + "pki/testdata/nist-pkits/crls/keyUsageCriticalkeyCertSignFalseCACRL.crl", + "pki/testdata/nist-pkits/crls/keyUsageNotCriticalCACRL.crl", + "pki/testdata/nist-pkits/crls/keyUsageNotCriticalcRLSignFalseCACRL.crl", + "pki/testdata/nist-pkits/crls/keyUsageNotCriticalkeyCertSignFalseCACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN1CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA1CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA2CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA3CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN2CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN3CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN3subCA1CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN3subCA2CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN4CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDN5CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDNS1CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsDNS2CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA1CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA2CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA3CRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsURI1CACRL.crl", + "pki/testdata/nist-pkits/crls/nameConstraintsURI2CACRL.crl", + "pki/testdata/nist-pkits/crls/onlyContainsAttributeCertsCACRL.crl", + "pki/testdata/nist-pkits/crls/onlyContainsCACertsCACRL.crl", + "pki/testdata/nist-pkits/crls/onlyContainsUserCertsCACRL.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA1compromiseCRL.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA1otherreasonsCRL.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA2CRL1.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA2CRL2.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA3compromiseCRL.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA3otherreasonsCRL.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA4compromiseCRL.crl", + "pki/testdata/nist-pkits/crls/onlySomeReasonsCA4otherreasonsCRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint0CACRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint0subCA2CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint0subCACRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint1CACRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint1subCACRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6CACRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subCA0CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subCA1CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subCA4CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA00CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA11CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA41CRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subsubsubCA11XCRL.crl", + "pki/testdata/nist-pkits/crls/pathLenConstraint6subsubsubCA41XCRL.crl", + "pki/testdata/nist-pkits/crls/pre2000CRLnextUpdateCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy0CACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy0subCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy0subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy0subsubsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy10CACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy10subCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy10subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy10subsubsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy2CACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy2subCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy4CACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy4subCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy4subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy4subsubsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy5CACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy5subCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy5subsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy5subsubsubCACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy7CACRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy7subCARE2CRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubCARE2RE4CRL.crl", + "pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubsubCARE2RE4CRL.crl", + "pki/testdata/ocsp_unittest/bad_ocsp_type.pem", + "pki/testdata/ocsp_unittest/bad_signature.pem", + "pki/testdata/ocsp_unittest/bad_status.pem", + "pki/testdata/ocsp_unittest/good_response.pem", + "pki/testdata/ocsp_unittest/good_response_next_update.pem", + "pki/testdata/ocsp_unittest/good_response_sha256.pem", + "pki/testdata/ocsp_unittest/has_critical_ct_extension.pem", + "pki/testdata/ocsp_unittest/has_critical_response_extension.pem", + "pki/testdata/ocsp_unittest/has_critical_single_extension.pem", + "pki/testdata/ocsp_unittest/has_extension.pem", + "pki/testdata/ocsp_unittest/has_single_extension.pem", + "pki/testdata/ocsp_unittest/has_version.pem", + "pki/testdata/ocsp_unittest/malformed_request.pem", + "pki/testdata/ocsp_unittest/missing_response.pem", + "pki/testdata/ocsp_unittest/multiple_response.pem", + "pki/testdata/ocsp_unittest/no_response.pem", + "pki/testdata/ocsp_unittest/ocsp_extra_certs.pem", + "pki/testdata/ocsp_unittest/ocsp_sign_bad_indirect.pem", + "pki/testdata/ocsp_unittest/ocsp_sign_direct.pem", + "pki/testdata/ocsp_unittest/ocsp_sign_indirect.pem", + "pki/testdata/ocsp_unittest/ocsp_sign_indirect_missing.pem", + "pki/testdata/ocsp_unittest/other_response.pem", + "pki/testdata/ocsp_unittest/responder_id.pem", + "pki/testdata/ocsp_unittest/responder_name.pem", + "pki/testdata/ocsp_unittest/revoke_response.pem", + "pki/testdata/ocsp_unittest/revoke_response_reason.pem", + "pki/testdata/ocsp_unittest/unknown_response.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/empty_sequence.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/extra_contents_after_extension_sequence.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/extra_contents_after_issuer_and_serial.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_contents.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_issuer.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_key_identifier.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_serial.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/issuer_and_serial.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/issuer_only.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/key_identifier.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/key_identifier_and_issuer_and_serial.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/serial_only.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier/url_issuer_and_serial.pem", + "pki/testdata/parse_certificate_unittest/authority_key_identifier_not_sequence.pem", + "pki/testdata/parse_certificate_unittest/bad_key_usage.pem", + "pki/testdata/parse_certificate_unittest/bad_policy_qualifiers.pem", + "pki/testdata/parse_certificate_unittest/bad_signature_algorithm_oid.pem", + "pki/testdata/parse_certificate_unittest/bad_validity.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_ca_false.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_ca_no_path.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_ca_path_9.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_negative_path.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_not_ca.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_path_too_large.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_255.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_256.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_not_ca.pem", + "pki/testdata/parse_certificate_unittest/basic_constraints_unconsumed_data.pem", + "pki/testdata/parse_certificate_unittest/cert_algorithm_not_sequence.pem", + "pki/testdata/parse_certificate_unittest/cert_data_after_signature.pem", + "pki/testdata/parse_certificate_unittest/cert_empty_sequence.pem", + "pki/testdata/parse_certificate_unittest/cert_missing_signature.pem", + "pki/testdata/parse_certificate_unittest/cert_not_sequence.pem", + "pki/testdata/parse_certificate_unittest/cert_signature_not_bit_string.pem", + "pki/testdata/parse_certificate_unittest/cert_skeleton.pem", + "pki/testdata/parse_certificate_unittest/cert_version3.pem", + "pki/testdata/parse_certificate_unittest/crldp_1uri_noissuer.pem", + "pki/testdata/parse_certificate_unittest/crldp_3uri_noissuer.pem", + "pki/testdata/parse_certificate_unittest/crldp_full_name_as_dirname.pem", + "pki/testdata/parse_certificate_unittest/crldp_issuer_as_dirname.pem", + "pki/testdata/parse_certificate_unittest/extended_key_usage.pem", + "pki/testdata/parse_certificate_unittest/extension_critical.pem", + "pki/testdata/parse_certificate_unittest/extension_critical_0.pem", + "pki/testdata/parse_certificate_unittest/extension_critical_3.pem", + "pki/testdata/parse_certificate_unittest/extension_not_critical.pem", + "pki/testdata/parse_certificate_unittest/extensions_data_after_sequence.pem", + "pki/testdata/parse_certificate_unittest/extensions_duplicate_key_usage.pem", + "pki/testdata/parse_certificate_unittest/extensions_empty_sequence.pem", + "pki/testdata/parse_certificate_unittest/extensions_not_sequence.pem", + "pki/testdata/parse_certificate_unittest/extensions_real.pem", + "pki/testdata/parse_certificate_unittest/failed_signature_algorithm.pem", + "pki/testdata/parse_certificate_unittest/inhibit_any_policy.pem", + "pki/testdata/parse_certificate_unittest/issuer_bad_printable_string.pem", + "pki/testdata/parse_certificate_unittest/key_usage.pem", + "pki/testdata/parse_certificate_unittest/name_constraints_bad_ip.pem", + "pki/testdata/parse_certificate_unittest/policies.pem", + "pki/testdata/parse_certificate_unittest/policy_constraints_empty.pem", + "pki/testdata/parse_certificate_unittest/policy_constraints_inhibit.pem", + "pki/testdata/parse_certificate_unittest/policy_constraints_inhibit_require.pem", + "pki/testdata/parse_certificate_unittest/policy_constraints_require.pem", + "pki/testdata/parse_certificate_unittest/policy_qualifiers_empty_sequence.pem", + "pki/testdata/parse_certificate_unittest/serial_37_bytes.pem", + "pki/testdata/parse_certificate_unittest/serial_negative.pem", + "pki/testdata/parse_certificate_unittest/serial_not_minimal.pem", + "pki/testdata/parse_certificate_unittest/serial_not_number.pem", + "pki/testdata/parse_certificate_unittest/serial_zero.pem", + "pki/testdata/parse_certificate_unittest/serial_zero_padded.pem", + "pki/testdata/parse_certificate_unittest/serial_zero_padded_21_bytes.pem", + "pki/testdata/parse_certificate_unittest/signature_algorithm_null.pem", + "pki/testdata/parse_certificate_unittest/subject_alt_name.pem", + "pki/testdata/parse_certificate_unittest/subject_blank_subjectaltname_not_critical.pem", + "pki/testdata/parse_certificate_unittest/subject_key_identifier_not_octet_string.pem", + "pki/testdata/parse_certificate_unittest/subject_not_ascii.pem", + "pki/testdata/parse_certificate_unittest/subject_not_printable_string.pem", + "pki/testdata/parse_certificate_unittest/subject_printable_string_containing_utf8_client_cert.pem", + "pki/testdata/parse_certificate_unittest/subject_t61string.pem", + "pki/testdata/parse_certificate_unittest/subject_t61string_1-32.pem", + "pki/testdata/parse_certificate_unittest/subject_t61string_126-160.pem", + "pki/testdata/parse_certificate_unittest/subject_t61string_actual.pem", + "pki/testdata/parse_certificate_unittest/subjectaltname_bad_ip.pem", + "pki/testdata/parse_certificate_unittest/subjectaltname_dns_not_ascii.pem", + "pki/testdata/parse_certificate_unittest/subjectaltname_general_names_empty_sequence.pem", + "pki/testdata/parse_certificate_unittest/subjectaltname_trailing_data.pem", + "pki/testdata/parse_certificate_unittest/tbs_explicit_v1.pem", + "pki/testdata/parse_certificate_unittest/tbs_v1.pem", + "pki/testdata/parse_certificate_unittest/tbs_v1_extensions.pem", + "pki/testdata/parse_certificate_unittest/tbs_v2_extensions.pem", + "pki/testdata/parse_certificate_unittest/tbs_v2_issuer_and_subject_unique_id.pem", + "pki/testdata/parse_certificate_unittest/tbs_v2_issuer_unique_id.pem", + "pki/testdata/parse_certificate_unittest/tbs_v2_no_optionals.pem", + "pki/testdata/parse_certificate_unittest/tbs_v3_all_optionals.pem", + "pki/testdata/parse_certificate_unittest/tbs_v3_data_after_extensions.pem", + "pki/testdata/parse_certificate_unittest/tbs_v3_extensions.pem", + "pki/testdata/parse_certificate_unittest/tbs_v3_extensions_not_sequence.pem", + "pki/testdata/parse_certificate_unittest/tbs_v3_no_optionals.pem", + "pki/testdata/parse_certificate_unittest/tbs_v3_real.pem", + "pki/testdata/parse_certificate_unittest/tbs_v4.pem", + "pki/testdata/parse_certificate_unittest/tbs_validity_both_generalized_time.pem", + "pki/testdata/parse_certificate_unittest/tbs_validity_both_utc_time.pem", + "pki/testdata/parse_certificate_unittest/tbs_validity_generalized_time_and_utc_time.pem", + "pki/testdata/parse_certificate_unittest/tbs_validity_relaxed.pem", + "pki/testdata/parse_certificate_unittest/tbs_validity_utc_time_and_generalized_time.pem", + "pki/testdata/parse_certificate_unittest/v1_explicit_version.pem", + "pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_match_name_only.pem", + "pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_matching.pem", + "pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_mismatch.pem", + "pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/root.pem", + "pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/root2.pem", + "pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/target.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_a.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_b.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_c.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_a.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_b.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_c.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_a.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_b.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_c.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/root.pem", + "pki/testdata/path_builder_unittest/key_id_prioritization/target.pem", + "pki/testdata/path_builder_unittest/multi-root-A-by-B.pem", + "pki/testdata/path_builder_unittest/multi-root-B-by-C.pem", + "pki/testdata/path_builder_unittest/multi-root-B-by-F.pem", + "pki/testdata/path_builder_unittest/multi-root-C-by-D.pem", + "pki/testdata/path_builder_unittest/multi-root-C-by-E.pem", + "pki/testdata/path_builder_unittest/multi-root-D-by-D.pem", + "pki/testdata/path_builder_unittest/multi-root-E-by-E.pem", + "pki/testdata/path_builder_unittest/multi-root-F-by-E.pem", + "pki/testdata/path_builder_unittest/precertificate/precertificate.pem", + "pki/testdata/path_builder_unittest/precertificate/root.pem", + "pki/testdata/path_builder_unittest/self_issued_prioritization/root1.pem", + "pki/testdata/path_builder_unittest/self_issued_prioritization/root1_cross.pem", + "pki/testdata/path_builder_unittest/self_issued_prioritization/root2.pem", + "pki/testdata/path_builder_unittest/self_issued_prioritization/target.pem", + "pki/testdata/path_builder_unittest/validity_date_prioritization/int_ac.pem", + "pki/testdata/path_builder_unittest/validity_date_prioritization/int_ad.pem", + "pki/testdata/path_builder_unittest/validity_date_prioritization/int_bc.pem", + "pki/testdata/path_builder_unittest/validity_date_prioritization/int_bd.pem", + "pki/testdata/path_builder_unittest/validity_date_prioritization/root.pem", + "pki/testdata/path_builder_unittest/validity_date_prioritization/target.pem", + "pki/testdata/verify_certificate_chain_unittest/basic-constraints-pathlen-0-self-issued/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/basic-constraints-pathlen-0-self-issued/main.test", + "pki/testdata/verify_certificate_chain_unittest/expired-intermediate/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/expired-intermediate/not-after.test", + "pki/testdata/verify_certificate_chain_unittest/expired-intermediate/not-before.test", + "pki/testdata/verify_certificate_chain_unittest/expired-root/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-expiration-and-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-expiration.test", + "pki/testdata/verify_certificate_chain_unittest/expired-root/not-after.test", + "pki/testdata/verify_certificate_chain_unittest/expired-root/not-before-ta-with-expiration.test", + "pki/testdata/verify_certificate_chain_unittest/expired-root/not-before.test", + "pki/testdata/verify_certificate_chain_unittest/expired-target/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/expired-target/not-after.test", + "pki/testdata/verify_certificate_chain_unittest/expired-target/not-before.test", + "pki/testdata/verify_certificate_chain_unittest/incorrect-trust-anchor/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/incorrect-trust-anchor/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-and-target-wrong-signature/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-and-target-wrong-signature/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-ca-false/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-ca-false/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/any.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/any.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-any.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-clientAuth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-clientAuth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-any.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-signed-with-sha1/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-signed-with-sha1/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-critical-extension/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-critical-extension/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-non-critical-extension/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-non-critical-extension/main.test", + "pki/testdata/verify_certificate_chain_unittest/intermediate-wrong-signature-no-authority-key-identifier/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/intermediate-wrong-signature-no-authority-key-identifier/main.test", + "pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/anchor.pem", + "pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/anchor.test", + "pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/target.pem", + "pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/target.test", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/longrolloverchain.pem", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/longrolloverchain.test", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/newchain.pem", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/newchain.test", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/oldchain.pem", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/oldchain.test", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/rolloverchain.pem", + "pki/testdata/verify_certificate_chain_unittest/key-rollover/rolloverchain.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/ok-all-types.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/ok-all-types.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-all-types.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-all-types.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.test", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem", + "pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.test", + "pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/main.test", + "pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.4.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.1.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.1.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.10.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.13.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.4.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.7.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.8.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.10.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.11.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.8.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.9.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.10.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.4.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.8.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.10.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.12.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.13.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.15.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.16.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.17.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.20.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.21.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.22.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.23.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.24.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.25.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.26.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.27.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.28.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.29.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.31.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.33.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.34.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.35.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.36.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.37.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.38.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.7.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.8.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.9.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.16.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.7.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.3.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.3.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.10.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.11.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.12.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.16.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.9.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.7.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.7.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.1.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.12.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.14.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.2.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.4.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.6.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.7.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.8.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.9.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.3.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.5.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.7.txt", + "pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.8.txt", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-ok/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-ok/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-ok/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/main.test", + "pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/main.test", + "pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/main.test", + "pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/main.test", + "pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-constraints-strict.test", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-expiration-and-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-expiration.test", + "pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/main.test", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-constraints-require-basic-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-require-basic-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/main.test", + "pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/distrusted-root-expired.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/distrusted-root.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/ta-with-constraints.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/ta-with-expiration.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test", + "pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/unspecified-trust-root.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/any.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/any.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/clientauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/clientauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/any.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/any.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-512bit-rsa-key/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-has-512bit-rsa-key/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem", + "pki/testdata/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-and-eku/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-and-eku/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict-leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict.test", + "pki/testdata/verify_certificate_chain_unittest/target-only/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_anchor.test", + "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test", + "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test", + "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test", + "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfissued/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfsigned/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyAgreement.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyAgreement.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyEncipherment.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyEncipherment.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-decipherOnly.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-decipherOnly.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-digitalSignature.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-digitalSignature.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyAgreement.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyAgreement.test", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyEncipherment.pem", + "pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyEncipherment.test", + "pki/testdata/verify_certificate_chain_unittest/target-signed-by-512bit-rsa/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-signed-by-512bit-rsa/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-signed-using-ecdsa/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-signed-using-ecdsa/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-signed-with-sha1/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-signed-with-sha1/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test", + "pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem", + "pki/testdata/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/main.test", + "pki/testdata/verify_certificate_chain_unittest/target-wrong-signature/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/target-wrong-signature/main.test", + "pki/testdata/verify_certificate_chain_unittest/unknown-critical-policy-qualifier/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/unknown-critical-policy-qualifier/main.test", + "pki/testdata/verify_certificate_chain_unittest/unknown-non-critical-policy-qualifier/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/unknown-non-critical-policy-qualifier/main.test", + "pki/testdata/verify_certificate_chain_unittest/violates-basic-constraints-pathlen-0/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/violates-basic-constraints-pathlen-0/main.test", + "pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/chain.pem", + "pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/main.test", + "pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/ta-with-constraints.test", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-rdn_sorting_1.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-rdn_sorting_2.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-dupe_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-extra_attr.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-extra_rdn.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-mixed-rdn_dupetype_sorting_1.pem", + "pki/testdata/verify_name_match_unittest/names/ascii-mixed-rdn_dupetype_sorting_2.pem", + "pki/testdata/verify_name_match_unittest/names/custom-custom-normalized.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-badAttributeType.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-empty.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-extradata.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-onlyOneElement.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-setNotSequence.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-Name-setInsteadOfSequence.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-RDN-empty.pem", + "pki/testdata/verify_name_match_unittest/names/invalid-RDN-sequenceInsteadOfSet.pem", + "pki/testdata/verify_name_match_unittest/names/unicode-mixed-normalized.pem", + "pki/testdata/verify_name_match_unittest/names/unicode-mixed-unnormalized.pem", + "pki/testdata/verify_name_match_unittest/names/unicode_bmp-BMPSTRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/unicode_bmp-UNIVERSALSTRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/unicode_bmp-UTF8-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/unicode_supplementary-UNIVERSALSTRING-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/unicode_supplementary-UTF8-unmangled.pem", + "pki/testdata/verify_name_match_unittest/names/valid-Name-empty.pem", + "pki/testdata/verify_name_match_unittest/names/valid-minimal.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-spki-params-null.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-unused-bits-signature.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecdh-key.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecmqv-key.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-rsa-algorithm.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-wrong-signature-format.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-secp384r1-sha256-corrupted-data.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-secp384r1-sha256.pem", + "pki/testdata/verify_signed_data_unittest/ecdsa-using-rsa-key.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-length.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-null.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-key-params-absent.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-using-pss-key-no-params.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-wrong-algorithm.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-key-encoded-ber.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-spki-non-null-params.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-using-ecdsa-algorithm.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-using-id-ea-rsa.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pss-sha256-using-pss-key-with-params.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pss-sha256-wrong-salt.pem", + "pki/testdata/verify_signed_data_unittest/rsa-pss-sha256.pem", + "pki/testdata/verify_signed_data_unittest/rsa-using-ec-key.pem", + "pki/testdata/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem", + "pki/testdata/verify_unittest/google-intermediate1.der", + "pki/testdata/verify_unittest/google-intermediate2.der", + "pki/testdata/verify_unittest/google-leaf.der", + "pki/testdata/verify_unittest/lencr-intermediate-r3.der", + "pki/testdata/verify_unittest/lencr-leaf.der", + "pki/testdata/verify_unittest/lencr-root-dst-x3.der", + "pki/testdata/verify_unittest/lencr-root-x1-cross-signed.der", + "pki/testdata/verify_unittest/lencr-root-x1.der", + "pki/testdata/verify_unittest/mozilla_roots.der", + "pki/testdata/verify_unittest/self-issued.pem", +] + +rust_bssl_crypto_sources = [ + "rust/bssl-crypto/src/aead.rs", + "rust/bssl-crypto/src/aes.rs", + "rust/bssl-crypto/src/cipher/aes_cbc.rs", + "rust/bssl-crypto/src/cipher/aes_ctr.rs", + "rust/bssl-crypto/src/cipher/mod.rs", + "rust/bssl-crypto/src/digest.rs", + "rust/bssl-crypto/src/ec.rs", + "rust/bssl-crypto/src/ecdh.rs", + "rust/bssl-crypto/src/ecdsa.rs", + "rust/bssl-crypto/src/ed25519.rs", + "rust/bssl-crypto/src/hkdf.rs", + "rust/bssl-crypto/src/hmac.rs", + "rust/bssl-crypto/src/hpke.rs", + "rust/bssl-crypto/src/lib.rs", + "rust/bssl-crypto/src/macros.rs", + "rust/bssl-crypto/src/mem.rs", + "rust/bssl-crypto/src/rand.rs", + "rust/bssl-crypto/src/rsa.rs", + "rust/bssl-crypto/src/scoped.rs", + "rust/bssl-crypto/src/test_helpers.rs", + "rust/bssl-crypto/src/x25519.rs", +] + +rust_bssl_sys_sources = [ + "rust/bssl-sys/src/lib.rs", +] + +ssl_sources = [ + "ssl/bio_ssl.cc", + "ssl/d1_both.cc", + "ssl/d1_lib.cc", + "ssl/d1_pkt.cc", + "ssl/d1_srtp.cc", + "ssl/dtls_method.cc", + "ssl/dtls_record.cc", + "ssl/encrypted_client_hello.cc", + "ssl/extensions.cc", + "ssl/handoff.cc", + "ssl/handshake.cc", + "ssl/handshake_client.cc", + "ssl/handshake_server.cc", + "ssl/s3_both.cc", + "ssl/s3_lib.cc", + "ssl/s3_pkt.cc", + "ssl/ssl_aead_ctx.cc", + "ssl/ssl_asn1.cc", + "ssl/ssl_buffer.cc", + "ssl/ssl_cert.cc", + "ssl/ssl_cipher.cc", + "ssl/ssl_credential.cc", + "ssl/ssl_file.cc", + "ssl/ssl_key_share.cc", + "ssl/ssl_lib.cc", + "ssl/ssl_privkey.cc", + "ssl/ssl_session.cc", + "ssl/ssl_stat.cc", + "ssl/ssl_transcript.cc", + "ssl/ssl_versions.cc", + "ssl/ssl_x509.cc", + "ssl/t1_enc.cc", + "ssl/tls13_both.cc", + "ssl/tls13_client.cc", + "ssl/tls13_enc.cc", + "ssl/tls13_server.cc", + "ssl/tls_method.cc", + "ssl/tls_record.cc", +] + +ssl_headers = [ + "include/openssl/dtls1.h", + "include/openssl/srtp.h", + "include/openssl/ssl.h", + "include/openssl/ssl3.h", + "include/openssl/tls1.h", +] + +ssl_internal_headers = [ + "ssl/internal.h", +] + +ssl_test_sources = [ + "crypto/test/gtest_main.cc", + "ssl/span_test.cc", + "ssl/ssl_c_test.c", + "ssl/ssl_test.cc", +] + +test_support_sources = [ + "crypto/test/abi_test.cc", + "crypto/test/file_test.cc", + "crypto/test/file_test_gtest.cc", + "crypto/test/file_util.cc", + "crypto/test/test_data.cc", + "crypto/test/test_util.cc", + "crypto/test/wycheproof_util.cc", +] + +test_support_internal_headers = [ + "crypto/test/abi_test.h", + "crypto/test/file_test.h", + "crypto/test/file_util.h", + "crypto/test/gtest_main.h", + "crypto/test/test_data.h", + "crypto/test/test_util.h", + "crypto/test/wycheproof_util.h", + "ssl/test/async_bio.h", + "ssl/test/fuzzer.h", + "ssl/test/fuzzer_tags.h", + "ssl/test/handshake_util.h", + "ssl/test/mock_quic_transport.h", + "ssl/test/packeted_bio.h", + "ssl/test/settings_writer.h", + "ssl/test/test_config.h", + "ssl/test/test_state.h", +] + +test_support_sources_asm = [ + "gen/test_support/trampoline-armv4-linux.S", + "gen/test_support/trampoline-armv8-apple.S", + "gen/test_support/trampoline-armv8-linux.S", + "gen/test_support/trampoline-armv8-win.S", + "gen/test_support/trampoline-x86-apple.S", + "gen/test_support/trampoline-x86-linux.S", + "gen/test_support/trampoline-x86_64-apple.S", + "gen/test_support/trampoline-x86_64-linux.S", +] + +test_support_sources_nasm = [ + "gen/test_support/trampoline-x86-win.asm", + "gen/test_support/trampoline-x86_64-win.asm", +] + +urandom_test_sources = [ + "crypto/fipsmodule/rand/urandom_test.cc", +] diff --git a/util/pregenerate/build.go b/util/pregenerate/build.go index 7013945cca..ca0cc96b9c 100644 --- a/util/pregenerate/build.go +++ b/util/pregenerate/build.go @@ -311,6 +311,7 @@ func MakeBuildFiles(targets map[string]build.Target) []Task { return []Task{ buildVariablesTask(targets, "gen/sources.bzl", "#", writeBazelVariable), buildVariablesTask(targets, "gen/sources.cmake", "#", writeCMakeVariable), + buildVariablesTask(targets, "gen/sources.gni", "#", writeGNVariable), jsonTask(targets, "gen/sources.json"), } } From d3c1afdc1b3ca24469c895dff659cff3accb6c56 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 27 Aug 2024 20:40:17 -0400 Subject: [PATCH 47/81] Fix generate_build_files.py Change-Id: Id8f6603e30d5a4289667f1089526bbb2a85543ac Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70607 Reviewed-by: Adam Langley Auto-Submit: David Benjamin Commit-Queue: Adam Langley --- util/generate_build_files.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/generate_build_files.py b/util/generate_build_files.py index 519d67e160..50716d56a9 100644 --- a/util/generate_build_files.py +++ b/util/generate_build_files.py @@ -644,8 +644,8 @@ def main(platforms): 'pki_internal_headers': PrefixWithSrc(sources['pki']['internal_hdrs']), 'pki_test': PrefixWithSrc(sources['pki_test']['srcs']), 'pki_test_data': PrefixWithSrc(sources['pki_test']['data']), - 'rust_bssl_crypto': PrefixWithSrc(sources['bssl_crypto_rust']['srcs']), - 'rust_bssl_sys': PrefixWithSrc(sources['bssl_sys_rust']['srcs']), + 'rust_bssl_crypto': PrefixWithSrc(sources['rust_bssl_crypto']['srcs']), + 'rust_bssl_sys': PrefixWithSrc(sources['rust_bssl_sys']['srcs']), 'ssl': PrefixWithSrc(sources['ssl']['srcs']), 'ssl_headers': PrefixWithSrc(sources['ssl']['hdrs']), 'ssl_internal_headers': PrefixWithSrc(sources['ssl']['internal_hdrs']), From 824867d11061b2e7d03bd88c700093d3098373f8 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 28 Aug 2024 10:32:30 -0400 Subject: [PATCH 48/81] Fix one of two issues breaking the Bazel build Adding a C++ file into libcrypto triggered some more Bazel workarounds in our build. For whatever reason, that's now being passed a "frozen" list, so we cannot mutate the values. This isn't sufficient to fix it, as we're also running into issues with aes/aes.c being an internal "header". To fix that, I think we have to bite the bullet and finally rename the FIPS fragments to .h, reflecting the fact that they are intended to be #included. Also the new Bazel seems to have a different MODULE.bazel.lock format, so pick up that update. Bug: 362664827 Change-Id: Ibf80fa389e0e1fd2b6f1ab110f0dea78a2a1a89b Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70627 Commit-Queue: Adam Langley Auto-Submit: David Benjamin Reviewed-by: Adam Langley --- MODULE.bazel.lock | 1932 +++------------------------------------------ util/util.bzl | 6 +- 2 files changed, 93 insertions(+), 1845 deletions(-) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 93be30301c..e84ab8d04a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1,1292 +1,88 @@ { - "lockFileVersion": 6, - "moduleFileHash": "2cfd97765850664f634f2e744a77eaa1187f29cc1393af2fd497dc36f1a9b09c", - "flags": { - "cmdRegistries": [ - "https://bcr.bazel.build/" - ], - "cmdModuleOverrides": {}, - "allowedYankedVersions": [], - "envVarAllowedYankedVersions": "", - "ignoreDevDependency": false, - "directDependenciesMode": "WARNING", - "compatibilityMode": "ERROR" - }, - "localOverrideHashes": { - "bazel_tools": "1ae69322ac3823527337acf02016e8ee95813d8d356f47060255b8956fa642f0" - }, - "moduleDepGraph": { - "": { - "name": "boringssl", - "version": "0.0.0-dev", - "key": "", - "repoName": "boringssl", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "googletest": "googletest@1.14.0.bcr.1", - "platforms": "platforms@0.0.9", - "rules_cc": "rules_cc@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - } - }, - "googletest@1.14.0.bcr.1": { - "name": "googletest", - "version": "1.14.0.bcr.1", - "key": "googletest@1.14.0.bcr.1", - "repoName": "googletest", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.9", - "rules_cc": "rules_cc@0.0.9", - "com_googlesource_code_re2": "re2@2023-09-01", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz" - ], - "integrity": "sha256-itWYxzrXluDYKAsILOvYKmMNc+c808cAV5OKZQG7pdc=", - "strip_prefix": "googletest-1.14.0", - "remote_patches": { - "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/patches/module_dot_bazel.patch": "sha256-jijctisPYOzP4X4cl0K7neRh/kqJB+yODNHf8V8heCE=" - }, - "remote_patch_strip": 0 - } - } - }, - "platforms@0.0.9": { - "name": "platforms", - "version": "0.0.9", - "key": "platforms@0.0.9", - "repoName": "platforms", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@platforms//host:extension.bzl", - "extensionName": "host_platform", - "usingModule": "platforms@0.0.9", - "location": { - "file": "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel", - "line": 9, - "column": 30 - }, - "imports": { - "host_platform": "host_platform" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "rules_license": "rules_license@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/platforms/releases/download/0.0.9/platforms-0.0.9.tar.gz" - ], - "integrity": "sha256-XtpTnIQSZQMcL4LYrno6ZJC9YhduDAOPxGnqv5H2FJs=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_cc@0.0.9": { - "name": "rules_cc", - "version": "0.0.9", - "key": "rules_cc@0.0.9", - "repoName": "rules_cc", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "@local_config_cc_toolchains//:all" - ], - "extensionUsages": [ - { - "extensionBzlFile": "@bazel_tools//tools/cpp:cc_configure.bzl", - "extensionName": "cc_configure_extension", - "usingModule": "rules_cc@0.0.9", - "location": { - "file": "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel", - "line": 9, - "column": 29 - }, - "imports": { - "local_config_cc_toolchains": "local_config_cc_toolchains" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "platforms": "platforms@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_cc/releases/download/0.0.9/rules_cc-0.0.9.tar.gz" - ], - "integrity": "sha256-IDeHW5pEVtzkp50RKorohbvEqtlo5lh9ym5k86CQDN8=", - "strip_prefix": "rules_cc-0.0.9", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_cc/0.0.9/patches/module_dot_bazel_version.patch": "sha256-mM+qzOI0SgAdaJBlWOSMwMPKpaA9b7R37Hj/tp5bb4g=" - }, - "remote_patch_strip": 0 - } - } - }, - "bazel_tools@_": { - "name": "bazel_tools", - "version": "", - "key": "bazel_tools@_", - "repoName": "bazel_tools", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "@local_config_cc_toolchains//:all", - "@local_config_sh//:local_sh_toolchain" - ], - "extensionUsages": [ - { - "extensionBzlFile": "@bazel_tools//tools/cpp:cc_configure.bzl", - "extensionName": "cc_configure_extension", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 18, - "column": 29 - }, - "imports": { - "local_config_cc": "local_config_cc", - "local_config_cc_toolchains": "local_config_cc_toolchains" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@bazel_tools//tools/osx:xcode_configure.bzl", - "extensionName": "xcode_configure_extension", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 22, - "column": 32 - }, - "imports": { - "local_config_xcode": "local_config_xcode" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_java//java:extensions.bzl", - "extensionName": "toolchains", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 25, - "column": 32 - }, - "imports": { - "local_jdk": "local_jdk", - "remote_java_tools": "remote_java_tools", - "remote_java_tools_linux": "remote_java_tools_linux", - "remote_java_tools_windows": "remote_java_tools_windows", - "remote_java_tools_darwin_x86_64": "remote_java_tools_darwin_x86_64", - "remote_java_tools_darwin_arm64": "remote_java_tools_darwin_arm64" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@bazel_tools//tools/sh:sh_configure.bzl", - "extensionName": "sh_configure_extension", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 36, - "column": 39 - }, - "imports": { - "local_config_sh": "local_config_sh" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@bazel_tools//tools/test:extensions.bzl", - "extensionName": "remote_coverage_tools_extension", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 40, - "column": 48 - }, - "imports": { - "remote_coverage_tools": "remote_coverage_tools" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@bazel_tools//tools/android:android_extensions.bzl", - "extensionName": "remote_android_tools_extensions", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 43, - "column": 42 - }, - "imports": { - "android_gmaven_r8": "android_gmaven_r8", - "android_tools": "android_tools" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@buildozer//:buildozer_binary.bzl", - "extensionName": "buildozer_binary", - "usingModule": "bazel_tools@_", - "location": { - "file": "@@bazel_tools//:MODULE.bazel", - "line": 47, - "column": 33 - }, - "imports": { - "buildozer_binary": "buildozer_binary" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "rules_cc": "rules_cc@0.0.9", - "rules_java": "rules_java@7.4.0", - "rules_license": "rules_license@0.0.7", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_python": "rules_python@0.25.0", - "buildozer": "buildozer@6.4.0.2", - "platforms": "platforms@0.0.9", - "com_google_protobuf": "protobuf@21.7", - "zlib": "zlib@1.3", - "build_bazel_apple_support": "apple_support@1.5.0", - "local_config_platform": "local_config_platform@_" - } - }, - "local_config_platform@_": { - "name": "local_config_platform", - "version": "", - "key": "local_config_platform@_", - "repoName": "local_config_platform", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "platforms": "platforms@0.0.9", - "bazel_tools": "bazel_tools@_" - } - }, - "abseil-cpp@20230802.0": { - "name": "abseil-cpp", - "version": "20230802.0", - "key": "abseil-cpp@20230802.0", - "repoName": "abseil-cpp", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "rules_cc": "rules_cc@0.0.9", - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.1", - "com_google_googletest": "googletest@1.14.0.bcr.1", - "com_github_google_benchmark": "google_benchmark@1.8.2", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz" - ], - "integrity": "sha256-WdKXavnW7PABqBo1dJpuVRozW5SdNJGM+t4Hc3udk8U=", - "strip_prefix": "abseil-cpp-20230802.0", - "remote_patches": { - "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/patches/module_dot_bazel.patch": "sha256-tppa7eDWtr2QUqOhIzKmHL5DEqUqfMFQIH7tkhFDY8E=" - }, - "remote_patch_strip": 0 - } - } - }, - "re2@2023-09-01": { - "name": "re2", - "version": "2023-09-01", - "key": "re2@2023-09-01", - "repoName": "re2", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@pybind11_bazel//:python_configure.bzl", - "extensionName": "extension", - "usingModule": "re2@2023-09-01", - "location": { - "file": "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel", - "line": 22, - "column": 33 - }, - "imports": { - "local_config_python": "local_config_python", - "pybind11": "pybind11" - }, - "devImports": [], - "tags": [ - { - "tagName": "toolchain", - "attributeValues": { - "python_version": "3" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel", - "line": 23, - "column": 27 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "platforms": "platforms@0.0.9", - "rules_cc": "rules_cc@0.0.9", - "com_google_absl": "abseil-cpp@20230802.0", - "rules_python": "rules_python@0.25.0", - "pybind11_bazel": "pybind11_bazel@2.11.1", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/google/re2/releases/download/2023-09-01/re2-2023-09-01.zip" - ], - "integrity": "sha256-IkuDUdxGM7EBLb2EdWTgYKRr5goioUY9S1uZP9S/Wcw=", - "strip_prefix": "re2-2023-09-01", - "remote_patches": { - "https://bcr.bazel.build/modules/re2/2023-09-01/patches/module_dot_bazel.patch": "sha256-MUQkRNgPJ0lbYqOXoBu2m2vLH7IuKEbK/VWTw7WWrnA=" - }, - "remote_patch_strip": 0 - } - } - }, - "rules_license@0.0.7": { - "name": "rules_license", - "version": "0.0.7", - "key": "rules_license@0.0.7", - "repoName": "rules_license", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz" - ], - "integrity": "sha256-RTHezLkTY5ww5cdRKgVNXYdWmNrrddjPkPKEN1/nw2A=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_java@7.4.0": { - "name": "rules_java", - "version": "7.4.0", - "key": "rules_java@7.4.0", - "repoName": "rules_java", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "//toolchains:all", - "@local_jdk//:runtime_toolchain_definition", - "@local_jdk//:bootstrap_runtime_toolchain_definition", - "@remotejdk11_linux_toolchain_config_repo//:all", - "@remotejdk11_linux_aarch64_toolchain_config_repo//:all", - "@remotejdk11_linux_ppc64le_toolchain_config_repo//:all", - "@remotejdk11_linux_s390x_toolchain_config_repo//:all", - "@remotejdk11_macos_toolchain_config_repo//:all", - "@remotejdk11_macos_aarch64_toolchain_config_repo//:all", - "@remotejdk11_win_toolchain_config_repo//:all", - "@remotejdk11_win_arm64_toolchain_config_repo//:all", - "@remotejdk17_linux_toolchain_config_repo//:all", - "@remotejdk17_linux_aarch64_toolchain_config_repo//:all", - "@remotejdk17_linux_ppc64le_toolchain_config_repo//:all", - "@remotejdk17_linux_s390x_toolchain_config_repo//:all", - "@remotejdk17_macos_toolchain_config_repo//:all", - "@remotejdk17_macos_aarch64_toolchain_config_repo//:all", - "@remotejdk17_win_toolchain_config_repo//:all", - "@remotejdk17_win_arm64_toolchain_config_repo//:all", - "@remotejdk21_linux_toolchain_config_repo//:all", - "@remotejdk21_linux_aarch64_toolchain_config_repo//:all", - "@remotejdk21_macos_toolchain_config_repo//:all", - "@remotejdk21_macos_aarch64_toolchain_config_repo//:all", - "@remotejdk21_win_toolchain_config_repo//:all" - ], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_java//java:extensions.bzl", - "extensionName": "toolchains", - "usingModule": "rules_java@7.4.0", - "location": { - "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel", - "line": 19, - "column": 27 - }, - "imports": { - "remote_java_tools": "remote_java_tools", - "remote_java_tools_linux": "remote_java_tools_linux", - "remote_java_tools_windows": "remote_java_tools_windows", - "remote_java_tools_darwin_x86_64": "remote_java_tools_darwin_x86_64", - "remote_java_tools_darwin_arm64": "remote_java_tools_darwin_arm64", - "local_jdk": "local_jdk", - "remotejdk11_linux_toolchain_config_repo": "remotejdk11_linux_toolchain_config_repo", - "remotejdk11_linux_aarch64_toolchain_config_repo": "remotejdk11_linux_aarch64_toolchain_config_repo", - "remotejdk11_linux_ppc64le_toolchain_config_repo": "remotejdk11_linux_ppc64le_toolchain_config_repo", - "remotejdk11_linux_s390x_toolchain_config_repo": "remotejdk11_linux_s390x_toolchain_config_repo", - "remotejdk11_macos_toolchain_config_repo": "remotejdk11_macos_toolchain_config_repo", - "remotejdk11_macos_aarch64_toolchain_config_repo": "remotejdk11_macos_aarch64_toolchain_config_repo", - "remotejdk11_win_toolchain_config_repo": "remotejdk11_win_toolchain_config_repo", - "remotejdk11_win_arm64_toolchain_config_repo": "remotejdk11_win_arm64_toolchain_config_repo", - "remotejdk17_linux_toolchain_config_repo": "remotejdk17_linux_toolchain_config_repo", - "remotejdk17_linux_aarch64_toolchain_config_repo": "remotejdk17_linux_aarch64_toolchain_config_repo", - "remotejdk17_linux_ppc64le_toolchain_config_repo": "remotejdk17_linux_ppc64le_toolchain_config_repo", - "remotejdk17_linux_s390x_toolchain_config_repo": "remotejdk17_linux_s390x_toolchain_config_repo", - "remotejdk17_macos_toolchain_config_repo": "remotejdk17_macos_toolchain_config_repo", - "remotejdk17_macos_aarch64_toolchain_config_repo": "remotejdk17_macos_aarch64_toolchain_config_repo", - "remotejdk17_win_toolchain_config_repo": "remotejdk17_win_toolchain_config_repo", - "remotejdk17_win_arm64_toolchain_config_repo": "remotejdk17_win_arm64_toolchain_config_repo", - "remotejdk21_linux_toolchain_config_repo": "remotejdk21_linux_toolchain_config_repo", - "remotejdk21_linux_aarch64_toolchain_config_repo": "remotejdk21_linux_aarch64_toolchain_config_repo", - "remotejdk21_macos_toolchain_config_repo": "remotejdk21_macos_toolchain_config_repo", - "remotejdk21_macos_aarch64_toolchain_config_repo": "remotejdk21_macos_aarch64_toolchain_config_repo", - "remotejdk21_win_toolchain_config_repo": "remotejdk21_win_toolchain_config_repo" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "platforms": "platforms@0.0.9", - "rules_cc": "rules_cc@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.1", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_license": "rules_license@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_java/releases/download/7.4.0/rules_java-7.4.0.tar.gz" - ], - "integrity": "sha256-l27wi0nJKXQfIBeQ5Z44B8cq2B9CjIvJU82+/1/tFes=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_proto@5.3.0-21.7": { - "name": "rules_proto", - "version": "5.3.0-21.7", - "key": "rules_proto@5.3.0-21.7", - "repoName": "rules_proto", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "com_google_protobuf": "protobuf@21.7", - "rules_cc": "rules_cc@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz" - ], - "integrity": "sha256-3D+yBqLLNEG0heseQjFlsjEjWh6psDG0Qzz3vB+kYN0=", - "strip_prefix": "rules_proto-5.3.0-21.7", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_python@0.25.0": { - "name": "rules_python", - "version": "0.25.0", - "key": "rules_python@0.25.0", - "repoName": "rules_python", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "@pythons_hub//:all" - ], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_python//python/extensions/private:internal_deps.bzl", - "extensionName": "internal_deps", - "usingModule": "rules_python@0.25.0", - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel", - "line": 14, - "column": 30 - }, - "imports": { - "pypi__build": "pypi__build", - "pypi__click": "pypi__click", - "pypi__colorama": "pypi__colorama", - "pypi__importlib_metadata": "pypi__importlib_metadata", - "pypi__installer": "pypi__installer", - "pypi__more_itertools": "pypi__more_itertools", - "pypi__packaging": "pypi__packaging", - "pypi__pep517": "pypi__pep517", - "pypi__pip": "pypi__pip", - "pypi__pip_tools": "pypi__pip_tools", - "pypi__setuptools": "pypi__setuptools", - "pypi__tomli": "pypi__tomli", - "pypi__wheel": "pypi__wheel", - "pypi__zipp": "pypi__zipp" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": {}, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel", - "line": 15, - "column": 22 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_python//python/extensions:python.bzl", - "extensionName": "python", - "usingModule": "rules_python@0.25.0", - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel", - "line": 38, - "column": 23 - }, - "imports": { - "pythons_hub": "pythons_hub" - }, - "devImports": [], - "tags": [ - { - "tagName": "toolchain", - "attributeValues": { - "is_default": true, - "python_version": "3.11" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel", - "line": 44, - "column": 17 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "platforms": "platforms@0.0.9", - "bazel_skylib": "bazel_skylib@1.4.1", - "rules_proto": "rules_proto@5.3.0-21.7", - "com_google_protobuf": "protobuf@21.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_python/releases/download/0.25.0/rules_python-0.25.0.tar.gz" - ], - "integrity": "sha256-WGjnMQeo6F2PMjgG5gytcoPzSzIWPqb/ECDPJ6vvYDY=", - "strip_prefix": "rules_python-0.25.0", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_python/0.25.0/patches/module_dot_bazel_version.patch": "sha256-6c8MrjTxYoqUpI8Y1QlmPps5p+N2RaZ5V+iXOrSHkwI=" - }, - "remote_patch_strip": 0 - } - } - }, - "buildozer@6.4.0.2": { - "name": "buildozer", - "version": "6.4.0.2", - "key": "buildozer@6.4.0.2", - "repoName": "buildozer", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@buildozer//:buildozer_binary.bzl", - "extensionName": "buildozer_binary", - "usingModule": "buildozer@6.4.0.2", - "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", - "line": 7, - "column": 33 - }, - "imports": { - "buildozer_binary": "buildozer_binary" - }, - "devImports": [], - "tags": [ - { - "tagName": "buildozer", - "attributeValues": { - "sha256": { - "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e", - "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d", - "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119", - "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa", - "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b" - }, - "version": "6.4.0" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel", - "line": 8, - "column": 27 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/fmeum/buildozer/releases/download/v6.4.0.2/buildozer-v6.4.0.2.tar.gz" - ], - "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=", - "strip_prefix": "buildozer-6.4.0.2", - "remote_patches": { - "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU=" - }, - "remote_patch_strip": 1 - } - } - }, - "protobuf@21.7": { - "name": "protobuf", - "version": "21.7", - "key": "protobuf@21.7", - "repoName": "protobuf", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", - "extensionName": "maven", - "usingModule": "protobuf@21.7", - "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", - "line": 22, - "column": 22 - }, - "imports": { - "maven": "maven" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": { - "name": "maven", - "artifacts": [ - "com.google.code.findbugs:jsr305:3.0.2", - "com.google.code.gson:gson:2.8.9", - "com.google.errorprone:error_prone_annotations:2.3.2", - "com.google.j2objc:j2objc-annotations:1.3", - "com.google.guava:guava:31.1-jre", - "com.google.guava:guava-testlib:31.1-jre", - "com.google.truth:truth:1.1.2", - "junit:junit:4.13.2", - "org.mockito:mockito-core:4.3.1" - ] - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel", - "line": 24, - "column": 14 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "rules_python": "rules_python@0.25.0", - "rules_cc": "rules_cc@0.0.9", - "rules_proto": "rules_proto@5.3.0-21.7", - "rules_java": "rules_java@7.4.0", - "rules_pkg": "rules_pkg@0.7.0", - "com_google_abseil": "abseil-cpp@20230802.0", - "zlib": "zlib@1.3", - "upb": "upb@0.0.0-20220923-a547704", - "rules_jvm_external": "rules_jvm_external@4.4.2", - "com_google_googletest": "googletest@1.14.0.bcr.1", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip" - ], - "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=", - "strip_prefix": "protobuf-21.7", - "remote_patches": { - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=", - "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY=" - }, - "remote_patch_strip": 1 - } - } - }, - "zlib@1.3": { - "name": "zlib", - "version": "1.3", - "key": "zlib@1.3", - "repoName": "zlib", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "platforms": "platforms@0.0.9", - "rules_cc": "rules_cc@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz" - ], - "integrity": "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=", - "strip_prefix": "zlib-1.3", - "remote_patches": { - "https://bcr.bazel.build/modules/zlib/1.3/patches/add_build_file.patch": "sha256-Ei+FYaaOo7A3jTKunMEodTI0Uw5NXQyZEcboMC8JskY=", - "https://bcr.bazel.build/modules/zlib/1.3/patches/module_dot_bazel.patch": "sha256-fPWLM+2xaF/kuy+kZc1YTfW6hNjrkG400Ho7gckuyJk=" - }, - "remote_patch_strip": 0 - } - } - }, - "apple_support@1.5.0": { - "name": "apple_support", - "version": "1.5.0", - "key": "apple_support@1.5.0", - "repoName": "build_bazel_apple_support", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "@local_config_apple_cc_toolchains//:all" - ], - "extensionUsages": [ - { - "extensionBzlFile": "@build_bazel_apple_support//crosstool:setup.bzl", - "extensionName": "apple_cc_configure_extension", - "usingModule": "apple_support@1.5.0", - "location": { - "file": "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel", - "line": 17, - "column": 35 - }, - "imports": { - "local_config_apple_cc": "local_config_apple_cc", - "local_config_apple_cc_toolchains": "local_config_apple_cc_toolchains" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "platforms": "platforms@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/apple_support/releases/download/1.5.0/apple_support.1.5.0.tar.gz" - ], - "integrity": "sha256-miM41vja0yRPgj8txghKA+TQ+7J8qJLclw5okNW0gYQ=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "bazel_skylib@1.4.1": { - "name": "bazel_skylib", - "version": "1.4.1", - "key": "bazel_skylib@1.4.1", - "repoName": "bazel_skylib", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "//toolchains/unittest:cmd_toolchain", - "//toolchains/unittest:bash_toolchain" - ], - "extensionUsages": [], - "deps": { - "platforms": "platforms@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz" - ], - "integrity": "sha256-uKFSeQF3QYCvx5iusoxGNL3M8ZxNmOe90c550f6aqtc=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "google_benchmark@1.8.2": { - "name": "google_benchmark", - "version": "1.8.2", - "key": "google_benchmark@1.8.2", - "repoName": "google_benchmark", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "platforms": "platforms@0.0.9", - "rules_foreign_cc": "rules_foreign_cc@0.9.0", - "rules_cc": "rules_cc@0.0.9", - "libpfm": "libpfm@4.11.0", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/google/benchmark/archive/refs/tags/v1.8.2.tar.gz" - ], - "integrity": "sha256-KqspgNA3YTf5adkoSPu2gharsHYzA0U0/IxlzE56DpM=", - "strip_prefix": "benchmark-1.8.2", - "remote_patches": { - "https://bcr.bazel.build/modules/google_benchmark/1.8.2/patches/module_dot_bazel.patch": "sha256-703OrC3OH7pk9qrGkAMbvp/8yEoHiesDKHNVIKVJB/M=" - }, - "remote_patch_strip": 0 - } - } - }, - "pybind11_bazel@2.11.1": { - "name": "pybind11_bazel", - "version": "2.11.1", - "key": "pybind11_bazel@2.11.1", - "repoName": "pybind11_bazel", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "platforms": "platforms@0.0.9", - "rules_cc": "rules_cc@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/pybind/pybind11_bazel/releases/download/v2.11.1/pybind11_bazel-2.11.1.zip" - ], - "integrity": "sha256-LEZsmzzKeFK0fgeFADEomE/PDV1hoaLkxazu/ZNawiA=", - "strip_prefix": "pybind11_bazel-2.11.1", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_pkg@0.7.0": { - "name": "rules_pkg", - "version": "0.7.0", - "key": "rules_pkg@0.7.0", - "repoName": "rules_pkg", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "rules_python": "rules_python@0.25.0", - "bazel_skylib": "bazel_skylib@1.4.1", - "rules_license": "rules_license@0.0.7", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz" - ], - "integrity": "sha256-iimOgydi7aGDBZfWT+fbWBeKqEzVkm121bdE1lWJQcI=", - "strip_prefix": "", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_pkg/0.7.0/patches/module_dot_bazel.patch": "sha256-4OaEPZwYF6iC71ZTDg6MJ7LLqX7ZA0/kK4mT+4xKqiE=" - }, - "remote_patch_strip": 0 - } - } - }, - "upb@0.0.0-20220923-a547704": { - "name": "upb", - "version": "0.0.0-20220923-a547704", - "key": "upb@0.0.0-20220923-a547704", - "repoName": "upb", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "rules_proto": "rules_proto@5.3.0-21.7", - "com_google_protobuf": "protobuf@21.7", - "com_google_absl": "abseil-cpp@20230802.0", - "platforms": "platforms@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz" - ], - "integrity": "sha256-z39x6v+QskwaKLSWRan/A6mmwecTQpHOcJActj5zZLU=", - "strip_prefix": "upb-a5477045acaa34586420942098f5fecd3570f577", - "remote_patches": { - "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/patches/module_dot_bazel.patch": "sha256-wH4mNS6ZYy+8uC0HoAft/c7SDsq2Kxf+J8dUakXhaB0=" - }, - "remote_patch_strip": 0 - } - } - }, - "rules_jvm_external@4.4.2": { - "name": "rules_jvm_external", - "version": "4.4.2", - "key": "rules_jvm_external@4.4.2", - "repoName": "rules_jvm_external", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_jvm_external//:non-module-deps.bzl", - "extensionName": "non_module_deps", - "usingModule": "rules_jvm_external@4.4.2", - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 9, - "column": 32 - }, - "imports": { - "io_bazel_rules_kotlin": "io_bazel_rules_kotlin" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - }, - { - "extensionBzlFile": "@rules_jvm_external//:extensions.bzl", - "extensionName": "maven", - "usingModule": "rules_jvm_external@4.4.2", - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 16, - "column": 22 - }, - "imports": { - "rules_jvm_external_deps": "rules_jvm_external_deps" - }, - "devImports": [], - "tags": [ - { - "tagName": "install", - "attributeValues": { - "name": "rules_jvm_external_deps", - "artifacts": [ - "com.google.cloud:google-cloud-core:1.93.10", - "com.google.cloud:google-cloud-storage:1.113.4", - "com.google.code.gson:gson:2.9.0", - "org.apache.maven:maven-artifact:3.8.6", - "software.amazon.awssdk:s3:2.17.183" - ], - "lock_file": "@rules_jvm_external//:rules_jvm_external_deps_install.json" - }, - "devDependency": false, - "location": { - "file": "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel", - "line": 18, - "column": 14 - } - } - ], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "io_bazel_stardoc": "stardoc@0.5.1", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_jvm_external/archive/refs/tags/4.4.2.zip" - ], - "integrity": "sha256-c1YC9QgT6y6pPKP15DsZWb2AshO4NqB6YqKddXZwt3s=", - "strip_prefix": "rules_jvm_external-4.4.2", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, - "rules_foreign_cc@0.9.0": { - "name": "rules_foreign_cc", - "version": "0.9.0", - "key": "rules_foreign_cc@0.9.0", - "repoName": "rules_foreign_cc", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "@rules_foreign_cc_framework_toolchain_freebsd//:toolchain", - "@rules_foreign_cc_framework_toolchain_linux//:toolchain", - "@rules_foreign_cc_framework_toolchain_macos//:toolchain", - "@rules_foreign_cc_framework_toolchain_windows//:toolchain", - "@rules_foreign_cc//toolchains:built_make_toolchain", - "@rules_foreign_cc//toolchains:preinstalled_autoconf_toolchain", - "@rules_foreign_cc//toolchains:preinstalled_automake_toolchain", - "@rules_foreign_cc//toolchains:preinstalled_m4_toolchain", - "@rules_foreign_cc//toolchains:preinstalled_pkgconfig_toolchain", - "@cmake_3.23.2_toolchains//:all", - "@ninja_1.11.0_toolchains//:all" - ], - "extensionUsages": [ - { - "extensionBzlFile": "@rules_foreign_cc//foreign_cc:extensions.bzl", - "extensionName": "ext", - "usingModule": "rules_foreign_cc@0.9.0", - "location": { - "file": "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel", - "line": 13, - "column": 20 - }, - "imports": { - "cmake_3.23.2_toolchains": "cmake_3.23.2_toolchains", - "rules_foreign_cc_framework_toolchain_freebsd": "rules_foreign_cc_framework_toolchain_freebsd", - "rules_foreign_cc_framework_toolchain_linux": "rules_foreign_cc_framework_toolchain_linux", - "rules_foreign_cc_framework_toolchain_macos": "rules_foreign_cc_framework_toolchain_macos", - "rules_foreign_cc_framework_toolchain_windows": "rules_foreign_cc_framework_toolchain_windows", - "cmake_src": "cmake_src", - "gnumake_src": "gnumake_src", - "ninja_build_src": "ninja_build_src", - "ninja_1.11.0_toolchains": "ninja_1.11.0_toolchains" - }, - "devImports": [], - "tags": [], - "hasDevUseExtension": false, - "hasNonDevUseExtension": true - } - ], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "platforms": "platforms@0.0.9", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/rules_foreign_cc/archive/refs/tags/0.9.0.tar.gz" - ], - "integrity": "sha256-Kk0HzWSwcZs5p8EiGKPlB2crgql7mMaonThWWJTPfFE=", - "strip_prefix": "rules_foreign_cc-0.9.0", - "remote_patches": { - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/patches/examples.patch": "sha256-RxT7rVHxO30W350sYu7ybi4rStwoB8b8mr34ZU9ciIk=", - "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/patches/module_dot_bazel.patch": "sha256-VTNnq8ySdeo9pI4rrJ+EXa/9ZACgQQ4baUwoQpljzCM=" - }, - "remote_patch_strip": 1 - } - } - }, - "libpfm@4.11.0": { - "name": "libpfm", - "version": "4.11.0", - "key": "libpfm@4.11.0", - "repoName": "libpfm", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "platforms": "platforms@0.0.9", - "rules_foreign_cc": "rules_foreign_cc@0.9.0", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://sourceforge.net/projects/perfmon2/files/libpfm4/libpfm-4.11.0.tar.gz" - ], - "integrity": "sha256-XaX4hyveFLNjTJaI2YD2i9ootRAmhyPMEpc+7bq5/sw=", - "strip_prefix": "libpfm-4.11.0", - "remote_patches": { - "https://bcr.bazel.build/modules/libpfm/4.11.0/patches/module_dot_bazel.patch": "sha256-G0wQJ2mVEoW/L5LGzmbNfuZaxI2+9NDuWJtqvCpM1pc=", - "https://bcr.bazel.build/modules/libpfm/4.11.0/patches/add_build_file.patch": "sha256-E61d/qQgmeOcUliWaveHPp1EZoOjkvZJsqhGhHofqUg=" - }, - "remote_patch_strip": 0 - } - } - }, - "stardoc@0.5.1": { - "name": "stardoc", - "version": "0.5.1", - "key": "stardoc@0.5.1", - "repoName": "stardoc", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [], - "extensionUsages": [], - "deps": { - "bazel_skylib": "bazel_skylib@1.4.1", - "rules_java": "rules_java@7.4.0", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/stardoc/releases/download/0.5.1/stardoc-0.5.1.tar.gz" - ], - "integrity": "sha256-qoFNrgrEALurLoiB+ZFcb0fElmS/CHxAmhX5BDjSwj4=", - "strip_prefix": "", - "remote_patches": { - "https://bcr.bazel.build/modules/stardoc/0.5.1/patches/module_dot_bazel.patch": "sha256-UAULCuTpJE7SG0YrR9XLjMfxMRmbP+za3uW9ONZ5rjI=" - }, - "remote_patch_strip": 0 - } - } - } + "lockFileVersion": 11, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/source.json": "7949ba8f239b40b9b24a21ff7f5f9554cf08e8c1161fca37b7cc42fa595db5f0", + "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", + "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/source.json": "c9320aa53cd1c441d24bd6b716da087ad7e4ff0d9742a9884587596edfe53015", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/source.json": "082ed5f9837901fada8c68c2f3ddc958bb22b6d654f71dd73f3df30d45d4b749", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/source.json": "c5ec7882c4122369f645139400fa6a1ce5092cec12893bf90bcc32914a38508b", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/libpfm/4.11.0/source.json": "caaffb3ac2b59b8aac456917a4ecf3167d40478ee79f15ab7a877ec9273937c9", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/0.0.9/source.json": "cd74d854bf16a9e002fb2ca7b1a421f4403cda29f824a765acd3a8c56f8d43e6", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/source.json": "8be72488e3139bdca3af856fecc3860d0c480ba52e67b4035d0741b19e6d96d7", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", + "https://bcr.bazel.build/modules/rules_java/7.6.5/source.json": "a805b889531d1690e3c72a7a7e47a870d00323186a9904b36af83aa3d053ee8d", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/source.json": "a075731e1b46bc8425098512d038d416e966ab19684a10a34f4741295642fc35", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/0.0.7/source.json": "355cc5737a0f294e560d52b1b7a6492d4fff2caf0bef1a315df5a298fca2d34a", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/source.json": "c2557066e0c0342223ba592510ad3d812d4963b9024831f7f66fd0584dd8c66c", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/source.json": "d57902c052424dfda0e71646cb12668d39c4620ee0544294d9d941e7d12bc3a9", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.25.0/source.json": "c45006984eeaa18ad14c006091b264bff620c41952e9184edfe225ea95c3f986", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/source.json": "f1ef7d3f9e0e26d4b23d1c39b5f5de71f584dd7d1b4ef83d9bbba6ec7a6a6459", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d" }, + "selectedYankedVersions": {}, "moduleExtensions": { "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": { "general": { - "bzlTransitiveDigest": "pMLFCYaRPkgXPQ8vtuNkMfiHfPmRBy6QJfnid4sWfv0=", + "bzlTransitiveDigest": "PjIds3feoYE8SGbbIq2SFTZy3zmxeO2tQevJZNDo7iY=", + "usagesDigest": "aLmqbvowmHkkBPve05yyDNGN7oh7QE9kBADr3QIZTZs=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -1311,62 +107,17 @@ ] } }, - "@@bazel_tools//tools/cpp:cc_configure.bzl%cc_configure_extension": { + "@@platforms//host:extension.bzl%host_platform": { "general": { - "bzlTransitiveDigest": "PHpT2yqMGms2U4L3E/aZ+WcQalmZWm+ILdP3yiLsDhA=", + "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=", + "usagesDigest": "meSzxn3DUCcYEhq4HQwExWkWtU4EjriRBQLsZN+Q0SU=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, "generatedRepoSpecs": { - "local_config_cc": { - "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl", - "ruleClassName": "cc_autoconf", - "attributes": {} - }, - "local_config_cc_toolchains": { - "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl", - "ruleClassName": "cc_autoconf_toolchains", - "attributes": {} - } - }, - "recordedRepoMappingEntries": [ - [ - "bazel_tools", - "bazel_tools", - "bazel_tools" - ] - ] - } - }, - "@@bazel_tools//tools/osx:xcode_configure.bzl%xcode_configure_extension": { - "general": { - "bzlTransitiveDigest": "Qh2bWTU6QW6wkrd87qrU4YeY+SG37Nvw3A0PR4Y0L2Y=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "local_config_xcode": { - "bzlFile": "@@bazel_tools//tools/osx:xcode_configure.bzl", - "ruleClassName": "xcode_autoconf", - "attributes": { - "xcode_locator": "@bazel_tools//tools/osx:xcode_locator.m", - "remote_xcode": "" - } - } - }, - "recordedRepoMappingEntries": [] - } - }, - "@@bazel_tools//tools/sh:sh_configure.bzl%sh_configure_extension": { - "general": { - "bzlTransitiveDigest": "hp4NgmNjEg5+xgvzfh6L83bt9/aiiWETuNpwNuF1MSU=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "local_config_sh": { - "bzlFile": "@@bazel_tools//tools/sh:sh_configure.bzl", - "ruleClassName": "sh_config", + "host_platform": { + "bzlFile": "@@platforms//host:extension.bzl", + "ruleClassName": "host_platform_repo", "attributes": {} } }, @@ -1375,7 +126,8 @@ }, "@@rules_foreign_cc~//foreign_cc:extensions.bzl%ext": { "general": { - "bzlTransitiveDigest": "0/GTFp9D0gb6hOu9jXXnaWa5hPbzPpIzLVxITdJTwvo=", + "bzlTransitiveDigest": "lWyCSIOJXmfZWoeZWHLfkIAcjH1k5Y4uEnqPUow9afc=", + "usagesDigest": "ISoJ3lFTlj+YHDNZEpB9nHkEJAqhSjt4FHtQUfAuFR4=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -1644,514 +396,10 @@ ] } }, - "@@rules_java~//java:extensions.bzl%toolchains": { - "general": { - "bzlTransitiveDigest": "0N5b5J9fUzo0sgvH4F3kIEaeXunz4Wy2/UtSFV/eXUY=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "remotejdk21_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux//:jdk\",\n)\n" - } - }, - "remotejdk17_linux_s390x_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\n" - } - }, - "remotejdk17_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos//:jdk\",\n)\n" - } - }, - "remotejdk21_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\n" - } - }, - "remotejdk17_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\n" - } - }, - "remotejdk21_macos_aarch64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "e8260516de8b60661422a725f1df2c36ef888f6fb35393566b00e7325db3d04e", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_aarch64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_aarch64.tar.gz" - ] - } - }, - "remotejdk17_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux//:jdk\",\n)\n" - } - }, - "remotejdk17_macos_aarch64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "314b04568ec0ae9b36ba03c9cbd42adc9e1265f74678923b19297d66eb84dcca", - "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64.tar.gz" - ] - } - }, - "remote_java_tools_windows": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "sha256": "fe2f88169696d6c6fc6e90ba61bb46be7d0ae3693cbafdf336041bf56679e8d1", - "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_windows-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_windows-v13.4.zip" - ] - } - }, - "remotejdk11_win": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "43408193ce2fa0862819495b5ae8541085b95660153f2adcf91a52d3a1710e83", - "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-win_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-win_x64.zip" - ] - } - }, - "remotejdk11_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win//:jdk\",\n)\n" - } - }, - "remotejdk11_linux_aarch64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "54174439f2b3fddd11f1048c397fe7bb45d4c9d66d452d6889b013d04d21c4de", - "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_aarch64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_aarch64.tar.gz" - ] - } - }, - "remotejdk17_linux": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "b9482f2304a1a68a614dfacddcf29569a72f0fac32e6c74f83dc1b9a157b8340", - "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_x64.tar.gz" - ] - } - }, - "remotejdk11_linux_s390x_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\n" - } - }, - "remotejdk11_linux_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux//:jdk\",\n)\n" - } - }, - "remotejdk11_macos": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "bcaab11cfe586fae7583c6d9d311c64384354fb2638eb9a012eca4c3f1a1d9fd", - "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_x64.tar.gz" - ] - } - }, - "remotejdk11_win_arm64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2", - "strip_prefix": "jdk-11.0.13+8", - "urls": [ - "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip" - ] - } - }, - "remotejdk17_macos": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "640453e8afe8ffe0fb4dceb4535fb50db9c283c64665eebb0ba68b19e65f4b1f", - "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_x64.tar.gz" - ] - } - }, - "remotejdk21_macos": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "3ad8fe288eb57d975c2786ae453a036aa46e47ab2ac3d81538ebae2a54d3c025", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-macosx_x64.tar.gz" - ] - } - }, - "remotejdk21_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_macos//:jdk\",\n)\n" - } - }, - "remotejdk17_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\n" - } - }, - "remotejdk17_win": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "192f2afca57701de6ec496234f7e45d971bf623ff66b8ee4a5c81582054e5637", - "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_x64.zip" - ] - } - }, - "remotejdk11_macos_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\n" - } - }, - "remotejdk11_linux_ppc64le_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\n" - } - }, - "remotejdk21_linux": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "5ad730fbee6bb49bfff10bf39e84392e728d89103d3474a7e5def0fd134b300a", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_x64.tar.gz" - ] - } - }, - "remote_java_tools_linux": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "sha256": "ba10f09a138cf185d04cbc807d67a3da42ab13d618c5d1ce20d776e199c33a39", - "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_linux-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_linux-v13.4.zip" - ] - } - }, - "remotejdk21_win": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "f7cc15ca17295e69c907402dfe8db240db446e75d3b150da7bf67243cded93de", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-win_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-win_x64.zip" - ] - } - }, - "remotejdk21_linux_aarch64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 21,\n)\n", - "sha256": "ce7df1af5d44a9f455617c4b8891443fbe3e4b269c777d8b82ed66f77167cfe0", - "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_aarch64", - "urls": [ - "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz", - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz" - ] - } - }, - "remotejdk11_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\n" - } - }, - "remotejdk11_linux_s390x": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b", - "strip_prefix": "jdk-11.0.15+10", - "urls": [ - "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz", - "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz" - ] - } - }, - "remotejdk17_linux_aarch64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "6531cef61e416d5a7b691555c8cf2bdff689201b8a001ff45ab6740062b44313", - "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64.tar.gz" - ] - } - }, - "remotejdk17_win_arm64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\n" - } - }, - "remotejdk11_linux": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "a34b404f87a08a61148b38e1416d837189e1df7a040d949e743633daf4695a3c", - "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_x64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_x64.tar.gz" - ] - } - }, - "remotejdk11_macos_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_macos//:jdk\",\n)\n" - } - }, - "remotejdk17_linux_ppc64le_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\n" - } - }, - "remotejdk17_win_arm64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "6802c99eae0d788e21f52d03cab2e2b3bf42bc334ca03cbf19f71eb70ee19f85", - "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_aarch64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_aarch64.zip", - "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_aarch64.zip" - ] - } - }, - "remote_java_tools_darwin_arm64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "sha256": "076a7e198ad077f8c7d997986ef5102427fae6bbfce7a7852d2e080ed8767528", - "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_arm64-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_darwin_arm64-v13.4.zip" - ] - } - }, - "remotejdk17_linux_ppc64le": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "00a4c07603d0218cd678461b5b3b7e25b3253102da4022d31fc35907f21a2efd", - "strip_prefix": "jdk-17.0.8.1+1", - "urls": [ - "https://mirror.bazel.build/github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.8.1_1.tar.gz", - "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.8.1_1.tar.gz" - ] - } - }, - "remotejdk21_linux_aarch64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\n" - } - }, - "remotejdk11_win_arm64_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_11\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"11\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\n" - } - }, - "local_jdk": { - "bzlFile": "@@rules_java~//toolchains:local_java_repository.bzl", - "ruleClassName": "_local_java_repository_rule", - "attributes": { - "java_home": "", - "version": "", - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = {RUNTIME_VERSION},\n)\n" - } - }, - "remote_java_tools_darwin_x86_64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "sha256": "4523aec4d09c587091a2dae6f5c9bc6922c220f3b6030e5aba9c8f015913cc65", - "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_x86_64-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools_darwin_x86_64-v13.4.zip" - ] - } - }, - "remote_java_tools": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "sha256": "e025fd260ac39b47c111f5212d64ec0d00d85dec16e49368aae82fc626a940cf", - "urls": [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools-v13.4.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v13.4/java_tools-v13.4.zip" - ] - } - }, - "remotejdk17_linux_s390x": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 17,\n)\n", - "sha256": "ffacba69c6843d7ca70d572489d6cc7ab7ae52c60f0852cedf4cf0d248b6fc37", - "strip_prefix": "jdk-17.0.8.1+1", - "urls": [ - "https://mirror.bazel.build/github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_s390x_linux_hotspot_17.0.8.1_1.tar.gz", - "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_s390x_linux_hotspot_17.0.8.1_1.tar.gz" - ] - } - }, - "remotejdk17_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_17\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"17\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk17_win//:jdk\",\n)\n" - } - }, - "remotejdk11_linux_ppc64le": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f", - "strip_prefix": "jdk-11.0.15+10", - "urls": [ - "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz", - "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz" - ] - } - }, - "remotejdk11_macos_aarch64": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n name = \"jre\",\n srcs = glob(\n [\n \"jre/bin/**\",\n \"jre/lib/**\",\n ],\n allow_empty = True,\n # In some configurations, Java browser plugin is considered harmful and\n # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n # so do not include it in JRE on Windows.\n exclude = [\"jre/bin/plugin2/**\"],\n ),\n)\n\nfilegroup(\n name = \"jdk-bin\",\n srcs = glob(\n [\"bin/**\"],\n # The JDK on Windows sometimes contains a directory called\n # \"%systemroot%\", which is not a valid label.\n exclude = [\"**/*%*/**\"],\n ),\n)\n\n# This folder holds security policies.\nfilegroup(\n name = \"jdk-conf\",\n srcs = glob(\n [\"conf/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-include\",\n srcs = glob(\n [\"include/**\"],\n allow_empty = True,\n ),\n)\n\nfilegroup(\n name = \"jdk-lib\",\n srcs = glob(\n [\"lib/**\", \"release\"],\n allow_empty = True,\n exclude = [\n \"lib/missioncontrol/**\",\n \"lib/visualvm/**\",\n ],\n ),\n)\n\njava_runtime(\n name = \"jdk\",\n srcs = [\n \":jdk-bin\",\n \":jdk-conf\",\n \":jdk-include\",\n \":jdk-lib\",\n \":jre\",\n ],\n # Provide the 'java` binary explicitly so that the correct path is used by\n # Bazel even when the host platform differs from the execution platform.\n # Exactly one of the two globs will be empty depending on the host platform.\n # When --incompatible_disallow_empty_glob is enabled, each individual empty\n # glob will fail without allow_empty = True, even if the overall result is\n # non-empty.\n java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n version = 11,\n)\n", - "sha256": "7632bc29f8a4b7d492b93f3bc75a7b61630894db85d136456035ab2a24d38885", - "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_aarch64", - "urls": [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_aarch64.tar.gz" - ] - } - }, - "remotejdk21_win_toolchain_config_repo": { - "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl", - "ruleClassName": "_toolchain_config", - "attributes": { - "build_file": "\nconfig_setting(\n name = \"prefix_version_setting\",\n values = {\"java_runtime_version\": \"remotejdk_21\"},\n visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n name = \"version_setting\",\n values = {\"java_runtime_version\": \"21\"},\n visibility = [\"//visibility:private\"],\n)\nalias(\n name = \"version_or_prefix_version_setting\",\n actual = select({\n \":version_setting\": \":version_setting\",\n \"//conditions:default\": \":prefix_version_setting\",\n }),\n visibility = [\"//visibility:private\"],\n)\ntoolchain(\n name = \"toolchain\",\n target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n toolchain = \"@remotejdk21_win//:jdk\",\n)\ntoolchain(\n name = \"bootstrap_runtime_toolchain\",\n # These constraints are not required for correctness, but prevent fetches of remote JDK for\n # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n # the same configuration, this constraint will not result in toolchain resolution failures.\n exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n target_settings = [\":version_or_prefix_version_setting\"],\n toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n toolchain = \"@remotejdk21_win//:jdk\",\n)\n" - } - } - }, - "recordedRepoMappingEntries": [ - [ - "rules_java~", - "bazel_tools", - "bazel_tools" - ], - [ - "rules_java~", - "remote_java_tools", - "rules_java~~toolchains~remote_java_tools" - ] - ] - } - }, "@@rules_python~//python/extensions:python.bzl%python": { "general": { - "bzlTransitiveDigest": "hcJ2K4XvZ3hi0G4g5MkUEs8xowZlCfrgq3JX4dyipWY=", + "bzlTransitiveDigest": "Kf/7zZzswWR1HLTsIkowkR+hnYBf2occRd9uW0D1KME=", + "usagesDigest": "ZrD60LyZ9UaPARLmqCmHvbT6XpgCR15SzpV2MblMrYM=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/util/util.bzl b/util/util.bzl index 434efc7aaa..8de6afb4e7 100644 --- a/util/util.bzl +++ b/util/util.bzl @@ -123,14 +123,14 @@ def handle_mixed_c_cxx( ) # Build the remainder as a C++-only target. - deps += [":" + name_c] + deps = deps + [":" + name_c] srcs = [src for src in srcs if not src.endswith(".c")] has_c = False if has_c: - copts += boringssl_copts_c + copts = copts + boringssl_copts_c else: - copts += boringssl_copts_cxx + copts = copts + boringssl_copts_cxx return copts, deps, srcs From 2d94b5e1ee99a22c2fd3bb3b3dd5b4e3be6b3cc6 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Tue, 20 Aug 2024 23:24:14 +0000 Subject: [PATCH 49/81] Support detecting AVX512BW, AVX512VL, VAES, and VPCLMULQDQ Add helper functions that check the AVX512BW, AVX512VL, VAES, and VPCLMULQDQ feature bits in the CPU capability words. Also, make sure that OPENSSL_cpuid_setup() clears VAES and VPCLMULQDQ when they are unsupported due to the operating system not supporting ymm registers. Change-Id: I2d672556acc269ef09ab6f5e080d37cb9831e7ce Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68908 Commit-Queue: Bob Beck Reviewed-by: Bob Beck Reviewed-by: David Benjamin Auto-Submit: Eric Biggers --- crypto/cpu_intel.c | 2 ++ crypto/internal.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/crypto/cpu_intel.c b/crypto/cpu_intel.c index 3453fa3914..10e7871e43 100644 --- a/crypto/cpu_intel.c +++ b/crypto/cpu_intel.c @@ -228,6 +228,8 @@ void OPENSSL_cpuid_setup(void) { ecx &= ~(1u << 12); // FMA ecx &= ~(1u << 11); // AMD XOP extended_features[0] &= ~(1u << 5); // AVX2 + extended_features[1] &= ~(1u << 9); // VAES + extended_features[1] &= ~(1u << 10); // VPCLMULQDQ } // See Intel manual, volume 1, sections 15.2 ("Detection of AVX-512 Foundation // Instructions") through 15.4 ("Detection of Intel AVX-512 Instruction Groups diff --git a/crypto/internal.h b/crypto/internal.h index 209c85a34d..4ec12f563b 100644 --- a/crypto/internal.h +++ b/crypto/internal.h @@ -1564,6 +1564,38 @@ OPENSSL_INLINE int CRYPTO_cpu_perf_is_like_silvermont(void) { return !hardware_supports_xsave && CRYPTO_is_MOVBE_capable(); } +OPENSSL_INLINE int CRYPTO_is_AVX512BW_capable(void) { +#if defined(__AVX512BW__) + return 1; +#else + return (OPENSSL_get_ia32cap(2) & (1u << 30)) != 0; +#endif +} + +OPENSSL_INLINE int CRYPTO_is_AVX512VL_capable(void) { +#if defined(__AVX512VL__) + return 1; +#else + return (OPENSSL_get_ia32cap(2) & (1u << 31)) != 0; +#endif +} + +OPENSSL_INLINE int CRYPTO_is_VAES_capable(void) { +#if defined(__VAES__) + return 1; +#else + return (OPENSSL_get_ia32cap(3) & (1u << 9)) != 0; +#endif +} + +OPENSSL_INLINE int CRYPTO_is_VPCLMULQDQ_capable(void) { +#if defined(__VPCLMULQDQ__) + return 1; +#else + return (OPENSSL_get_ia32cap(3) & (1u << 10)) != 0; +#endif +} + #endif // OPENSSL_X86 || OPENSSL_X86_64 #if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64) From afaccd42b9804b0aaa1754e85ca2b4961cd95a27 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Tue, 20 Aug 2024 23:24:15 +0000 Subject: [PATCH 50/81] Support detecting preference for ymm registers over zmm Add a CPU capability bit that identifies older Intel CPUs that support AVX512 but where using zmm registers should be avoided. This will be used to select code that uses ymm registers instead. Change-Id: I6bedc913960d0da3c5f3aae315c81f67da1667b4 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68909 Reviewed-by: David Benjamin Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- crypto/cpu_intel.c | 51 +++++++++++++++++++++++++++++++++++----------- crypto/internal.h | 10 +++++++++ 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/crypto/cpu_intel.c b/crypto/cpu_intel.c index 10e7871e43..71934935cb 100644 --- a/crypto/cpu_intel.c +++ b/crypto/cpu_intel.c @@ -173,20 +173,21 @@ void OPENSSL_cpuid_setup(void) { OPENSSL_cpuid(&eax, &ebx, &ecx, &edx, 1); - if (is_amd) { - // See https://www.amd.com/system/files/TechDocs/25481.pdf, page 10. - const uint32_t base_family = (eax >> 8) & 15; - const uint32_t base_model = (eax >> 4) & 15; + const uint32_t base_family = (eax >> 8) & 15; + const uint32_t base_model = (eax >> 4) & 15; - uint32_t family = base_family; - uint32_t model = base_model; - if (base_family == 0xf) { - const uint32_t ext_family = (eax >> 20) & 255; - family += ext_family; - const uint32_t ext_model = (eax >> 16) & 15; - model |= ext_model << 4; - } + uint32_t family = base_family; + uint32_t model = base_model; + if (base_family == 15) { + const uint32_t ext_family = (eax >> 20) & 255; + family += ext_family; + } + if (base_family == 6 || base_family == 15) { + const uint32_t ext_model = (eax >> 16) & 15; + model |= ext_model << 4; + } + if (is_amd) { if (family < 0x17 || (family == 0x17 && 0x70 <= model && model <= 0x7f)) { // Disable RDRAND on AMD families before 0x17 (Zen) due to reported // failures after suspend. @@ -264,6 +265,32 @@ void OPENSSL_cpuid_setup(void) { extended_features[1] &= ~(1u << 14); // AVX512VPOPCNTDQ } + // Repurpose the bit for the removed MPX feature to indicate when using zmm + // registers should be avoided even when they are supported. (When set, AVX512 + // features can still be used, but only using ymm or xmm registers.) Skylake + // suffered from severe downclocking when zmm registers were used, which + // affected unrelated code running on the system, making zmm registers not too + // useful outside of benchmarks. The situation improved significantly by Ice + // Lake, but a small amount of downclocking remained. (See + // https://lore.kernel.org/linux-crypto/e8ce1146-3952-6977-1d0e-a22758e58914@intel.com/) + // We take a conservative approach of not allowing zmm registers until after + // Ice Lake and Tiger Lake, i.e. until Sapphire Rapids on the server side. + // + // AMD CPUs, which support AVX512 starting with Zen 4, have not been reported + // to have any downclocking problem when zmm registers are used. + if (is_intel && family == 6 && + (model == 85 || // Skylake, Cascade Lake, Cooper Lake (server) + model == 106 || // Ice Lake (server) + model == 108 || // Ice Lake (micro server) + model == 125 || // Ice Lake (client) + model == 126 || // Ice Lake (mobile) + model == 140 || // Tiger Lake (mobile) + model == 141)) { // Tiger Lake (client) + extended_features[0] |= 1u << 14; + } else { + extended_features[0] &= ~(1u << 14); + } + OPENSSL_ia32cap_P[0] = edx; OPENSSL_ia32cap_P[1] = ecx; OPENSSL_ia32cap_P[2] = extended_features[0]; diff --git a/crypto/internal.h b/crypto/internal.h index 4ec12f563b..5ca29ae2a0 100644 --- a/crypto/internal.h +++ b/crypto/internal.h @@ -1391,6 +1391,8 @@ OPENSSL_INLINE int boringssl_fips_break_test(const char *test) { // Bit 11 is used to indicate AMD XOP support, not SDBG // Index 2: // EBX for CPUID where EAX = 7, ECX = 0 +// Bit 14 (for removed feature MPX) is used to indicate a preference for ymm +// registers over zmm even when zmm registers are supported // Index 3: // ECX for CPUID where EAX = 7, ECX = 0 // @@ -1580,6 +1582,14 @@ OPENSSL_INLINE int CRYPTO_is_AVX512VL_capable(void) { #endif } +// CRYPTO_cpu_avoid_zmm_registers returns 1 if zmm registers (512-bit vectors) +// should not be used even if the CPU supports them. +// +// Note that this reuses the bit for the removed MPX feature. +OPENSSL_INLINE int CRYPTO_cpu_avoid_zmm_registers(void) { + return (OPENSSL_get_ia32cap(2) & (1u << 14)) != 0; +} + OPENSSL_INLINE int CRYPTO_is_VAES_capable(void) { #if defined(__VAES__) return 1; From 0b8ef03132edfeeeeb7c9b73124146ffc5c85ec5 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 28 Aug 2024 13:28:16 -0400 Subject: [PATCH 51/81] Fix IWYU issue in internal header For some reason, Bazel previously wasn't compiling our headers standalone and now is. Doing so is now tripping a whole series of bugs and deficiencies in Bazel that I'm still trying to figure out, but this issue is at least legitimate. Bug: 362664827 Change-Id: I3ca953a14ac36fa283fefcb42ff7805993247785 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70647 Auto-Submit: David Benjamin Reviewed-by: Adam Langley Commit-Queue: Adam Langley --- crypto/fipsmodule/aes/internal.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crypto/fipsmodule/aes/internal.h b/crypto/fipsmodule/aes/internal.h index 7d2db3b229..a89da469d4 100644 --- a/crypto/fipsmodule/aes/internal.h +++ b/crypto/fipsmodule/aes/internal.h @@ -17,6 +17,8 @@ #include +#include + #include "../../internal.h" #if defined(__cplusplus) From 296ef284e51a687920a1975a1a34fd2ffce0a646 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 28 Aug 2024 18:08:18 -0400 Subject: [PATCH 52/81] Disable parse_headers feature Bazel has a parse_headers feature which expects headers to be independently buildable. While a nice way to partially enforce IWYU, it's broken. See https://github.com/bazelbuild/bazel/issues/23460. Until the Bazel issue is fixed, we'll need to turn that off. In particular, after https://github.com/bazelbuild/bazel/pull/22369, parse_headers is no longer silently inactive. This does not remove the need to do something about the fips_fragment filenames. Those come from the layering_check feature, rather than the parse_headers feature. We also have a number of headers that don't actually work standalone and, by the style guide, probably should be named .inc: https://google.github.io/styleguide/cppguide.html#Self_contained_Headers But since the feature does not work anyway, just turn it off for now. Bug: 362664827 Change-Id: I9646d722a59f92be81848cf5a586738cc5f3dac4 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70687 Reviewed-by: Bob Beck Commit-Queue: Bob Beck Auto-Submit: David Benjamin --- BUILD.bazel | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/BUILD.bazel b/BUILD.bazel index d3b66ee5fb..9e7b430f64 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -44,6 +44,12 @@ load( ) load(":util/util.bzl", "bssl_cc_binary", "bssl_cc_library", "bssl_cc_test") +# Disable the parse_headers feature. It does not work well in C right now. See +# https://github.com/bazelbuild/bazel/issues/23460 for details. When that is +# fixed, if enabled, we likely also need to rename some headers to .inc per +# https://google.github.io/styleguide/cppguide.html#Self_contained_Headers +package(features = ["-parse_headers"]) + licenses(["notice"]) exports_files(["LICENSE"]) From b450abd17f4ab8d832a0d8beb1319804f2f5c6d6 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 28 Aug 2024 14:40:40 -0400 Subject: [PATCH 53/81] Fix a couple more IWYU errors These would be caught by parse_headers, if we didn't have to disable parse_headers entirely. Bug: 362664827 Change-Id: Ia7c10cae3fd082eb4b50dd9fad79d4631f95edea Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70688 Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- crypto/pkcs8/internal.h | 1 + crypto/rsa_extra/internal.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/crypto/pkcs8/internal.h b/crypto/pkcs8/internal.h index 483e4b647e..ae65ce0926 100644 --- a/crypto/pkcs8/internal.h +++ b/crypto/pkcs8/internal.h @@ -57,6 +57,7 @@ #define OPENSSL_HEADER_PKCS8_INTERNAL_H #include +#include #if defined(__cplusplus) extern "C" { diff --git a/crypto/rsa_extra/internal.h b/crypto/rsa_extra/internal.h index 6317cfc01c..74359c6d43 100644 --- a/crypto/rsa_extra/internal.h +++ b/crypto/rsa_extra/internal.h @@ -58,6 +58,8 @@ #ifndef OPENSSL_HEADER_RSA_EXTRA_INTERNAL_H #define OPENSSL_HEADER_RSA_EXTRA_INTERNAL_H +#include + #if defined(__cplusplus) extern "C" { #endif From 13ef6eaba79be9f018ff1d978bd266cfa44d5fac Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 28 Aug 2024 18:47:56 -0400 Subject: [PATCH 54/81] Extract C++ files, rather than C, when working around Bazel bugs To work around Bazel's bugs around mixed C/C++ targets (https://github.com/bazelbuild/bazel/issues/22041), we automatically split all of our targets in two. When we did this, we originally pulled the C files into their own target. This had the side effect of building assembly files with the C files instead of with the C++ files. In principle, this does not matter, but Bazel likes to turn targets into shared libraries, and our assembly files still contain a couple references to OPENSSL_ia32cap_P (see https://crbug.com/42290548). Those references rely on OPENSSL_ia32cap_P being a hidden symbol, and statically linked with the assembly files. Pull the C++ out instead, to avoid this. Once https://crbug.com/42290548 is done, either will work, but this is needed for now. Bug: 362664827 Change-Id: Icb929d194ee2311707fe1a0bb27ea0ccaf96a510 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70690 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- util/util.bzl | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/util/util.bzl b/util/util.bzl index 8de6afb4e7..83ddff6f95 100644 --- a/util/util.bzl +++ b/util/util.bzl @@ -107,12 +107,13 @@ def handle_mixed_c_cxx( # If a target has both C and C++, we need to split it in two. if has_c and has_cxx: - srcs_c = [src for src in srcs if src.endswith(".c") or src.endswith(".h")] - name_c = name + "_c" + # Pull the C++ files out. + srcs_cxx = [src for src in srcs if src.endswith(".cc") or src.endswith(".h")] + name_cxx = name + "_cxx" cc_library( - name = name_c, - srcs = srcs_c + internal_hdrs, - copts = copts + boringssl_copts_c, + name = name_cxx, + srcs = srcs_cxx + internal_hdrs, + copts = copts + boringssl_copts_cxx, includes = includes, # This target only exists to be linked into the main library, so # always link it statically. @@ -122,10 +123,10 @@ def handle_mixed_c_cxx( testonly = testonly, ) - # Build the remainder as a C++-only target. - deps = deps + [":" + name_c] - srcs = [src for src in srcs if not src.endswith(".c")] - has_c = False + # Build the remainder as a C-only target. + deps = deps + [":" + name_cxx] + srcs = [src for src in srcs if not src.endswith(".cc")] + has_cxx = False if has_c: copts = copts + boringssl_copts_c From c25c3760ed8c47b9175863f503b2a6ef5b6c61a7 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 28 Aug 2024 23:34:36 -0400 Subject: [PATCH 55/81] Add an optional Bazel package to CI Also condition all the tools the Bazel builders won't need. (Perl and Go aren't build dependencies anymore.) Given we've broken this build a couple times, it's clear we need to just put it on CI. This will be paired with a new recipe in the recipes repo. Bug: 42290610 Change-Id: I90a4b376849dee9dde3dfcd12c8df60db1b0120c Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70747 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- util/bot/DEPS | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/util/bot/DEPS b/util/bot/DEPS index cb4bc0b4f9..441b8430fe 100644 --- a/util/bot/DEPS +++ b/util/bot/DEPS @@ -15,8 +15,12 @@ vars = { 'chromium_git': 'https://chromium.googlesource.com', + 'checkout_bazel': False, 'checkout_clang': False, + 'checkout_cmake': True, + 'checkout_go': True, 'checkout_fuzzer': False, + 'checkout_perl': True, 'checkout_sde': False, 'checkout_nasm': False, 'checkout_libcxx': False, @@ -26,6 +30,8 @@ vars = { # Run the following command to see the latest builds in CIPD: # cipd describe PACKAGE_NAME -version latest + # infra/3pp/tools/bazel_bootstrap/linux-amd64 + 'bazel_version': 'version:3@7.3.1.1', # infra/3pp/tools/cmake/linux-amd64 'cmake_version': 'version:3@3.30.2.chromium.8', # infra/3pp/tools/go/linux-amd64 @@ -66,11 +72,21 @@ deps = { 'dep_type': 'cipd', }, + 'boringssl/util/bot/bazel': { + 'packages': [{ + 'package': 'infra/3pp/tools/bazel_bootstrap/${{platform}}', + 'version': Var('bazel_version'), + }], + 'condition': 'checkout_bazel', + 'dep_type': 'cipd', + }, + 'boringssl/util/bot/cmake': { 'packages': [{ 'package': 'infra/3pp/tools/cmake/${{platform}}', 'version': Var('cmake_version'), }], + 'condition': 'checkout_cmake', 'dep_type': 'cipd', }, @@ -79,6 +95,7 @@ deps = { 'package': 'infra/3pp/tools/go/${{platform}}', 'version': Var('go_version'), }], + 'condition': 'checkout_go', 'dep_type': 'cipd', }, @@ -101,6 +118,7 @@ deps = { 'package': 'infra/3pp/tools/ninja/${{platform}}', 'version': Var('ninja_version'), }], + 'condition': 'checkout_cmake', 'dep_type': 'cipd', }, @@ -109,7 +127,7 @@ deps = { 'package': 'infra/3pp/tools/perl/${{platform}}', 'version': Var('perl_version'), }], - 'condition': 'host_os == "win"', + 'condition': 'host_os == "win" and checkout_perl', 'dep_type': 'cipd', }, From ec09a2dad2781e35bdb2a3b873ff395b4376e444 Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Mon, 29 Apr 2024 23:15:36 +0000 Subject: [PATCH 56/81] Move urandom and OS entropy support out of BCM BCM uses only passive entropy, in that from BCM's point of view, entropy is requested and obtained from an external source, and fed to BCM's CTR_DRBG as required. With this change entropy is always gathered in an OS specific manner outside of BCM by libcrypto, while the CTR_DRBG remains in BCM using that entropy. BCM functions (but not yet the tests!) now no longer use the public RAND_bytes function, but instead use BCM_rand_bytes which uses the BCM module CTR_DRBG. BCM_rand_bytes is in turn used by libcrypto to implement the public RAND_bytes function. All public RAND_ functions are now implemented in rand_extra. As part of this two new headers are introduced to start defining the interface boundary between libcrypto and BCM. crypto/bcm_support.h <- Functions implemented by libcrypto and used by bcm fipsmodule/bcm_interface.h <- Functions implemented by bcm and used by libcrypto. Bug: 723 Change-Id: I6b618dfe4df257f67971e88cbd79126c837e21d6 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68147 Reviewed-by: David Benjamin Commit-Queue: Bob Beck --- build.json | 10 ++- crypto/bcm_support.h | 73 +++++++++++++++ crypto/crypto.c | 1 + crypto/fipsmodule/bcm.c | 4 +- crypto/fipsmodule/bcm_interface.h | 89 +++++++++++++++++++ crypto/fipsmodule/bn/random.c | 14 ++- crypto/fipsmodule/cipher/e_aes.c | 17 ++-- crypto/fipsmodule/rand/internal.h | 81 +---------------- crypto/fipsmodule/rand/rand.c | 66 ++++++-------- crypto/fipsmodule/rsa/padding.c | 7 +- .../fipsmodule/service_indicator/internal.h | 4 +- .../service_indicator_test.cc | 3 +- crypto/rand_extra/deterministic.c | 10 ++- crypto/rand_extra/getentropy.c | 10 ++- .../rand => rand_extra}/getrandom_fillin.h | 0 crypto/rand_extra/ios.c | 10 ++- crypto/rand_extra/passive.c | 22 ++++- crypto/rand_extra/rand_extra.c | 49 +++++----- crypto/rand_extra/sysrand_internal.h | 37 ++++++++ crypto/rand_extra/trusty.c | 10 ++- .../{fipsmodule/rand => rand_extra}/urandom.c | 38 ++++---- .../rand => rand_extra}/urandom_test.cc | 6 +- crypto/rand_extra/windows.c | 9 +- gen/sources.bzl | 10 ++- gen/sources.cmake | 10 ++- gen/sources.gni | 10 ++- gen/sources.json | 10 ++- 27 files changed, 390 insertions(+), 220 deletions(-) create mode 100644 crypto/bcm_support.h create mode 100644 crypto/fipsmodule/bcm_interface.h rename crypto/{fipsmodule/rand => rand_extra}/getrandom_fillin.h (100%) create mode 100644 crypto/rand_extra/sysrand_internal.h rename crypto/{fipsmodule/rand => rand_extra}/urandom.c (91%) rename crypto/{fipsmodule/rand => rand_extra}/urandom_test.cc (99%) diff --git a/build.json b/build.json index 766117fdf5..6f6271af2b 100644 --- a/build.json +++ b/build.json @@ -80,7 +80,6 @@ "crypto/fipsmodule/rand/ctrdrbg.c", "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rand/urandom.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", "crypto/fipsmodule/rsa/rsa.c", @@ -298,6 +297,7 @@ "crypto/rand_extra/passive.c", "crypto/rand_extra/rand_extra.c", "crypto/rand_extra/trusty.c", + "crypto/rand_extra/urandom.c", "crypto/rand_extra/windows.c", "crypto/rc4/rc4.c", "crypto/refcount.c", @@ -496,7 +496,7 @@ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", - "crypto/fipsmodule/aes/internal.h", + "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", "crypto/fipsmodule/cipher/internal.h", @@ -513,13 +513,13 @@ "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/fork_detect.h", - "crypto/fipsmodule/rand/getrandom_fillin.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", "crypto/fipsmodule/sha/internal.h", "crypto/fipsmodule/tls/internal.h", "crypto/hrss/internal.h", + "crypto/bcm_support.h", "crypto/internal.h", "crypto/keccak/internal.h", "crypto/kyber/internal.h", @@ -531,6 +531,8 @@ "crypto/pkcs8/internal.h", "crypto/poly1305/internal.h", "crypto/pool/internal.h", + "crypto/rand_extra/getrandom_fillin.h", + "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", "crypto/spx/address.h", "crypto/spx/fors.h", @@ -913,7 +915,7 @@ }, "urandom_test": { "srcs": [ - "crypto/fipsmodule/rand/urandom_test.cc" + "crypto/rand_extra/urandom_test.cc" ] }, "pki_test": { diff --git a/crypto/bcm_support.h b/crypto/bcm_support.h new file mode 100644 index 0000000000..a6f005baf1 --- /dev/null +++ b/crypto/bcm_support.h @@ -0,0 +1,73 @@ +/* Copyright (c) 2024, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_CRYPTO_BCM_SUPPORT_H +#define OPENSSL_HEADER_CRYPTO_BCM_SUPPORT_H + +#include + +// Provided by libcrypto, called from BCM + +#if defined(__cplusplus) +extern "C" { +#endif + +#if defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) +#define OPENSSL_RAND_DETERMINISTIC +#elif defined(OPENSSL_TRUSTY) +#define OPENSSL_RAND_TRUSTY +#elif defined(OPENSSL_WINDOWS) +#define OPENSSL_RAND_WINDOWS +#elif defined(OPENSSL_LINUX) +#define OPENSSL_RAND_URANDOM +#elif defined(OPENSSL_APPLE) && !defined(OPENSSL_MACOS) +// Unlike macOS, iOS and similar hide away getentropy(). +#define OPENSSL_RAND_IOS +#else +// By default if you are integrating BoringSSL we expect you to +// provide getentropy from the header file. +#define OPENSSL_RAND_GETENTROPY +#endif + +// Provided by libcrypto, called from BCM + +// CRYPTO_init_sysrand initializes long-lived resources needed to draw entropy +// from the operating system, if the operating system requires initialization. +void CRYPTO_init_sysrand(void); + +// CRYPTO_sysrand fills |len| bytes at |buf| with entropy from the operating +// system. +void CRYPTO_sysrand(uint8_t *buf, size_t len); + +// CRYPTO_sysrand_if_available fills |len| bytes at |buf| with entropy from the +// operating system, or early /dev/urandom data, and returns 1, _if_ the entropy +// pool is initialized or if getrandom() is not available and not in FIPS mode. +// Otherwise it will not block and will instead fill |buf| with all zeros and +// return 0. +int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len); + +// CRYPTO_sysrand_for_seed fills |len| bytes at |buf| with entropy from the +// operating system. It may draw from the |GRND_RANDOM| pool on Android, +// depending on the vendor's configuration. +void CRYPTO_sysrand_for_seed(uint8_t *buf, size_t len); + +// RAND_need_entropy is called whenever the BCM module has stopped because it +// has run out of entropy. +void RAND_need_entropy(size_t bytes_needed); + +#if defined(__cplusplus) +} // extern C +#endif + +#endif // OPENSSL_HEADER_CRYPTO_BCM_SUPPORT_H diff --git a/crypto/crypto.c b/crypto/crypto.c index 724a774a28..ddf4038a85 100644 --- a/crypto/crypto.c +++ b/crypto/crypto.c @@ -18,6 +18,7 @@ #include "fipsmodule/rand/fork_detect.h" #include "fipsmodule/rand/internal.h" +#include "bcm_support.h" #include "internal.h" diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index 48becb9cce..d9cc6c3607 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -28,6 +28,7 @@ #include #include +#include "bcm_interface.h" #include "../internal.h" #include "aes/aes.c" @@ -94,7 +95,6 @@ #include "rand/ctrdrbg.c" #include "rand/fork_detect.c" #include "rand/rand.c" -#include "rand/urandom.c" #include "rsa/blinding.c" #include "rsa/padding.c" #include "rsa/rsa.c" @@ -193,7 +193,7 @@ int BORINGSSL_integrity_test(void) { assert_within(start, AES_encrypt, end); assert_within(start, RSA_sign, end); - assert_within(start, RAND_bytes, end); + assert_within(start, BCM_rand_bytes, end); assert_within(start, EC_GROUP_cmp, end); assert_within(start, SHA256_Update, end); assert_within(start, ecdsa_verify_fixed, end); diff --git a/crypto/fipsmodule/bcm_interface.h b/crypto/fipsmodule/bcm_interface.h new file mode 100644 index 0000000000..9687b79042 --- /dev/null +++ b/crypto/fipsmodule/bcm_interface.h @@ -0,0 +1,89 @@ +/* Copyright (c) 2024, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_CRYPTO_BCM_INTERFACE_H +#define OPENSSL_HEADER_CRYPTO_BCM_INTERFACE_H + +// This header will eventually become the interface between BCM and the +// rest of libcrypto. More cleanly separating the two is still a work in +// progress (see https://crbug.com/boringssl/722) so, at the moment, we +// consider this no different from any other header in BCM. +// +// Over time, calls from libcrypto to BCM will all move to this header +// and the separation will become more meaningful. + +#if defined(__cplusplus) +extern "C" { +#endif + +// Enumerated types for return values from bcm functions, both infallible +// and fallible functions. Two success values are used to correspond to the +// FIPS service indicator. For the moment, the official service indicator +// remains the counter, not these values. Once we fully transition to +// these return values from bcm we will change that. +enum bcm_infallible_t { + bcm_infallible_approved, + bcm_infallible_not_approved, +}; + +enum bcm_status_t { + bcm_status_approved, + bcm_status_not_approved, + + // Failure codes, which must all be negative. + bcm_status_failure, +}; +typedef enum bcm_status_t bcm_status; +typedef enum bcm_infallible_t bcm_infallible; + +OPENSSL_INLINE int bcm_success(bcm_status status) { + return status == bcm_status_approved || status == bcm_status_not_approved; +} + +#if defined(BORINGSSL_FIPS) + +// We overread from /dev/urandom or RDRAND by a factor of 10 and XOR to whiten. +// TODO(bbe): disentangle this value which is used to calculate the size of the +// stack buffer in RAND_need entropy based on a calculation. +#define BORINGSSL_FIPS_OVERREAD 10 + +#endif // BORINGSSL_FIPS + +// BCM_rand_load_entropy supplies |entropy_len| bytes of entropy to the BCM +// module. The |want_additional_input| parameter is true iff the entropy was +// obtained from a source other than the system, e.g. directly from the CPU. +bcm_infallible BCM_rand_load_entropy(const uint8_t *entropy, size_t entropy_len, + int want_additional_input); + +// BCM_rand_bytes is the same as the public |RAND_bytes| function, other +// than returning a bcm_infallible status indicator. +OPENSSL_EXPORT bcm_infallible BCM_rand_bytes(uint8_t *out, size_t out_len); + +// BCM_rand_bytes_hwrng attempts to fill |out| with |len| bytes of entropy from +// the CPU hardware random number generator if one is present. +// bcm_status_approved is returned on success, and a failure status is +// returned otherwise. +bcm_status BCM_rand_bytes_hwrng(uint8_t *out, size_t len); + +// BCM_rand_bytes_with_additional_data samples from the RNG after mixing 32 +// bytes from |user_additional_data| in. +bcm_infallible BCM_rand_bytes_with_additional_data( + uint8_t *out, size_t out_len, const uint8_t user_additional_data[32]); + + +#if defined(__cplusplus) +} // extern C +#endif + +#endif // OPENSSL_HEADER_CRYPTO_BCM_INTERFACE_H diff --git a/crypto/fipsmodule/bn/random.c b/crypto/fipsmodule/bn/random.c index f57d1c6a38..b3012de3ad 100644 --- a/crypto/fipsmodule/bn/random.c +++ b/crypto/fipsmodule/bn/random.c @@ -113,10 +113,9 @@ #include #include -#include +#include "../../bcm_support.h" #include "../../internal.h" -#include "../rand/internal.h" #include "../service_indicator/internal.h" #include "internal.h" @@ -157,7 +156,7 @@ int BN_rand(BIGNUM *rnd, int bits, int top, int bottom) { } FIPS_service_indicator_lock_state(); - RAND_bytes((uint8_t *)rnd->d, words * sizeof(BN_ULONG)); + BCM_rand_bytes((uint8_t *)rnd->d, words * sizeof(BN_ULONG)); FIPS_service_indicator_unlock_state(); rnd->d[words - 1] &= mask; @@ -225,8 +224,7 @@ static int bn_range_to_mask(size_t *out_words, BN_ULONG *out_mask, while (words > 0 && max_exclusive[words - 1] == 0) { words--; } - if (words == 0 || - (words == 1 && max_exclusive[0] <= min_inclusive)) { + if (words == 0 || (words == 1 && max_exclusive[0] <= min_inclusive)) { OPENSSL_PUT_ERROR(BN, BN_R_INVALID_RANGE); return 0; } @@ -275,8 +273,8 @@ int bn_rand_range_words(BN_ULONG *out, BN_ULONG min_inclusive, // Steps 4 and 5. Use |words| and |mask| together to obtain a string of N // bits, where N is the bit length of |max_exclusive|. FIPS_service_indicator_lock_state(); - RAND_bytes_with_additional_data((uint8_t *)out, words * sizeof(BN_ULONG), - additional_data); + BCM_rand_bytes_with_additional_data( + (uint8_t *)out, words * sizeof(BN_ULONG), additional_data); FIPS_service_indicator_unlock_state(); out[words - 1] &= mask; @@ -326,7 +324,7 @@ int bn_rand_secret_range(BIGNUM *r, int *out_is_uniform, BN_ULONG min_inclusive, // Select a uniform random number with num_bits(max_exclusive) bits. FIPS_service_indicator_lock_state(); - RAND_bytes((uint8_t *)r->d, words * sizeof(BN_ULONG)); + BCM_rand_bytes((uint8_t *)r->d, words * sizeof(BN_ULONG)); FIPS_service_indicator_unlock_state(); r->d[words - 1] &= mask; diff --git a/crypto/fipsmodule/cipher/e_aes.c b/crypto/fipsmodule/cipher/e_aes.c index 6c556ee004..ab05e43af7 100644 --- a/crypto/fipsmodule/cipher/e_aes.c +++ b/crypto/fipsmodule/cipher/e_aes.c @@ -56,11 +56,11 @@ #include #include #include -#include #include "internal.h" #include "../../internal.h" #include "../aes/internal.h" +#include "../bcm_interface.h" #include "../modes/internal.h" #include "../service_indicator/internal.h" #include "../delocate.h" @@ -471,11 +471,11 @@ static int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) { } OPENSSL_memcpy(gctx->iv, ptr, arg); if (c->encrypt) { - // |RAND_bytes| calls within the fipsmodule should be wrapped with state - // lock functions to avoid updating the service indicator with the DRBG - // functions. + // |BCM_rand_bytes| calls within the fipsmodule should be wrapped with + // state lock functions to avoid updating the service indicator with the + // DRBG functions. FIPS_service_indicator_lock_state(); - RAND_bytes(gctx->iv + arg, gctx->ivlen - arg); + BCM_rand_bytes(gctx->iv + arg, gctx->ivlen - arg); FIPS_service_indicator_unlock_state(); } gctx->iv_gen = 1; @@ -1167,10 +1167,11 @@ static int aead_aes_gcm_seal_scatter_randnonce( return 0; } - // |RAND_bytes| calls within the fipsmodule should be wrapped with state lock - // functions to avoid updating the service indicator with the DRBG functions. + // |BCM_rand_bytes| calls within the fipsmodule should be wrapped with state + // lock functions to avoid updating the service indicator with the DRBG + // functions. FIPS_service_indicator_lock_state(); - RAND_bytes(nonce, sizeof(nonce)); + BCM_rand_bytes(nonce, sizeof(nonce)); FIPS_service_indicator_unlock_state(); const struct aead_aes_gcm_ctx *gcm_ctx = diff --git a/crypto/fipsmodule/rand/internal.h b/crypto/fipsmodule/rand/internal.h index 91bbe58973..b9a1acf13e 100644 --- a/crypto/fipsmodule/rand/internal.h +++ b/crypto/fipsmodule/rand/internal.h @@ -18,92 +18,13 @@ #include #include -#include "../../internal.h" +#include "../../bcm_support.h" #include "../modes/internal.h" #if defined(__cplusplus) extern "C" { #endif - -#if defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) -#define OPENSSL_RAND_DETERMINISTIC -#elif defined(OPENSSL_TRUSTY) -#define OPENSSL_RAND_TRUSTY -#elif defined(OPENSSL_WINDOWS) -#define OPENSSL_RAND_WINDOWS -#elif defined(OPENSSL_LINUX) -#define OPENSSL_RAND_URANDOM -#elif defined(OPENSSL_APPLE) && !defined(OPENSSL_MACOS) -// Unlike macOS, iOS and similar hide away getentropy(). -#define OPENSSL_RAND_IOS -#else -// By default if you are integrating BoringSSL we expect you to -// provide getentropy from the header file. -#define OPENSSL_RAND_GETENTROPY -#endif - -// RAND_bytes_with_additional_data samples from the RNG after mixing 32 bytes -// from |user_additional_data| in. -void RAND_bytes_with_additional_data(uint8_t *out, size_t out_len, - const uint8_t user_additional_data[32]); - -#if defined(BORINGSSL_FIPS) - -// We overread from /dev/urandom or RDRAND by a factor of 10 and XOR to whiten. -#define BORINGSSL_FIPS_OVERREAD 10 - -// CRYPTO_get_seed_entropy writes |out_entropy_len| bytes of entropy, suitable -// for seeding a DRBG, to |out_entropy|. It sets |*out_used_cpu| to one if the -// entropy came directly from the CPU and zero if it came from the OS. It -// actively obtains entropy from the CPU/OS and so should not be called from -// within the FIPS module. -void CRYPTO_get_seed_entropy(uint8_t *out_entropy, size_t out_entropy_len, - int *out_used_cpu); - -// RAND_load_entropy supplies |entropy_len| bytes of entropy to the module. The -// |want_additional_input| parameter is true iff the entropy was obtained from -// a source other than the system, e.g. directly from the CPU. -void RAND_load_entropy(const uint8_t *entropy, size_t entropy_len, - int want_additional_input); - -// RAND_need_entropy is implemented outside of the FIPS module and is called -// when the module has stopped because it has run out of entropy. -void RAND_need_entropy(size_t bytes_needed); - -#endif // BORINGSSL_FIPS - -// CRYPTO_sysrand fills |len| bytes at |buf| with entropy from the operating -// system. -void CRYPTO_sysrand(uint8_t *buf, size_t len); - -// CRYPTO_sysrand_for_seed fills |len| bytes at |buf| with entropy from the -// operating system. It may draw from the |GRND_RANDOM| pool on Android, -// depending on the vendor's configuration. -void CRYPTO_sysrand_for_seed(uint8_t *buf, size_t len); - -#if defined(OPENSSL_RAND_URANDOM) || defined(OPENSSL_RAND_WINDOWS) -// CRYPTO_init_sysrand initializes long-lived resources needed to draw entropy -// from the operating system. -void CRYPTO_init_sysrand(void); -#else -OPENSSL_INLINE void CRYPTO_init_sysrand(void) {} -#endif // defined(OPENSSL_RAND_URANDOM) || defined(OPENSSL_RAND_WINDOWS) - -#if defined(OPENSSL_RAND_URANDOM) -// CRYPTO_sysrand_if_available fills |len| bytes at |buf| with entropy from the -// operating system, or early /dev/urandom data, and returns 1, _if_ the entropy -// pool is initialized or if getrandom() is not available and not in FIPS mode. -// Otherwise it will not block and will instead fill |buf| with all zeros and -// return 0. -int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len); -#else -OPENSSL_INLINE int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len) { - CRYPTO_sysrand(buf, len); - return 1; -} -#endif // defined(OPENSSL_RAND_URANDOM) - // rand_fork_unsafe_buffering_enabled returns whether fork-unsafe buffering has // been enabled via |RAND_enable_fork_unsafe_buffering|. int rand_fork_unsafe_buffering_enabled(void); diff --git a/crypto/fipsmodule/rand/rand.c b/crypto/fipsmodule/rand/rand.c index 1097f06d8b..8adcffef4b 100644 --- a/crypto/fipsmodule/rand/rand.c +++ b/crypto/fipsmodule/rand/rand.c @@ -12,8 +12,6 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include - #include #include #include @@ -26,10 +24,10 @@ #include #include -#include "internal.h" -#include "fork_detect.h" -#include "../../internal.h" +#include "../../bcm_support.h" +#include "../bcm_interface.h" #include "../delocate.h" +#include "internal.h" // It's assumed that the operating system always has an unfailing source of @@ -99,7 +97,7 @@ static void rand_thread_state_clear_all(void) { CTR_DRBG_clear(&cur->drbg); } // The locks are deliberately left locked so that any threads that are still - // running will hang if they try to call |RAND_bytes|. It also ensures + // running will hang if they try to call |BCM_rand_bytes|. It also ensures // |rand_thread_state_free| cannot free any thread state while we've taken the // lock. } @@ -164,26 +162,24 @@ static int rdrand(uint8_t *buf, const size_t len) { #else -static int rdrand(uint8_t *buf, size_t len) { - return 0; -} +static int rdrand(uint8_t *buf, size_t len) { return 0; } #endif -#if defined(BORINGSSL_FIPS) - -void CRYPTO_get_seed_entropy(uint8_t *out_entropy, size_t out_entropy_len, - int *out_want_additional_input) { - *out_want_additional_input = 0; - if (have_rdrand() && rdrand(out_entropy, out_entropy_len)) { - *out_want_additional_input = 1; - } else { - CRYPTO_sysrand_for_seed(out_entropy, out_entropy_len); +bcm_status BCM_rand_bytes_hwrng(uint8_t *buf, const size_t len) { + if (!have_rdrand()) { + return bcm_status_failure; } + if (rdrand(buf, len)) { + return bcm_status_not_approved; + } + return bcm_status_failure; } +#if defined(BORINGSSL_FIPS) + // In passive entropy mode, entropy is supplied from outside of the module via -// |RAND_load_entropy| and is stored in global instance of the following +// |BCM_rand_load_entropy| and is stored in global instance of the following // structure. struct entropy_buffer { @@ -202,8 +198,8 @@ struct entropy_buffer { DEFINE_BSS_GET(struct entropy_buffer, entropy_buffer); DEFINE_STATIC_MUTEX(entropy_buffer_lock); -void RAND_load_entropy(const uint8_t *entropy, size_t entropy_len, - int want_additional_input) { +bcm_infallible BCM_rand_load_entropy(const uint8_t *entropy, size_t entropy_len, + int want_additional_input) { struct entropy_buffer *const buffer = entropy_buffer_bss_get(); CRYPTO_MUTEX_lock_write(entropy_buffer_lock_bss_get()); @@ -214,9 +210,9 @@ void RAND_load_entropy(const uint8_t *entropy, size_t entropy_len, OPENSSL_memcpy(&buffer->bytes[buffer->bytes_valid], entropy, entropy_len); buffer->bytes_valid += entropy_len; - buffer->want_additional_input |= - want_additional_input && (entropy_len != 0); + buffer->want_additional_input |= want_additional_input && (entropy_len != 0); CRYPTO_MUTEX_unlock_write(entropy_buffer_lock_bss_get()); + return bcm_infallible_not_approved; } // get_seed_entropy fills |out_entropy_len| bytes of |out_entropy| from the @@ -330,10 +326,10 @@ static void rand_get_seed(struct rand_thread_state *state, #endif -void RAND_bytes_with_additional_data(uint8_t *out, size_t out_len, - const uint8_t user_additional_data[32]) { +bcm_infallible BCM_rand_bytes_with_additional_data( + uint8_t *out, size_t out_len, const uint8_t user_additional_data[32]) { if (out_len == 0) { - return; + return bcm_infallible_approved; } const uint64_t fork_generation = CRYPTO_get_fork_generation(); @@ -473,21 +469,11 @@ void RAND_bytes_with_additional_data(uint8_t *out, size_t out_len, #if defined(BORINGSSL_FIPS) CRYPTO_MUTEX_unlock_read(&state->clear_drbg_lock); #endif + return bcm_infallible_approved; } -int RAND_bytes(uint8_t *out, size_t out_len) { +bcm_infallible BCM_rand_bytes(uint8_t *out, size_t out_len) { static const uint8_t kZeroAdditionalData[32] = {0}; - RAND_bytes_with_additional_data(out, out_len, kZeroAdditionalData); - return 1; -} - -int RAND_pseudo_bytes(uint8_t *buf, size_t len) { - return RAND_bytes(buf, len); -} - -void RAND_get_system_entropy_for_custom_prng(uint8_t *buf, size_t len) { - if (len > 256) { - abort(); - } - CRYPTO_sysrand_for_seed(buf, len); + BCM_rand_bytes_with_additional_data(out, out_len, kZeroAdditionalData); + return bcm_infallible_approved; } diff --git a/crypto/fipsmodule/rsa/padding.c b/crypto/fipsmodule/rsa/padding.c index 998e4591a4..e4c1c1c676 100644 --- a/crypto/fipsmodule/rsa/padding.c +++ b/crypto/fipsmodule/rsa/padding.c @@ -63,11 +63,11 @@ #include #include #include -#include #include #include "internal.h" #include "../service_indicator/internal.h" +#include "../bcm_interface.h" #include "../../internal.h" @@ -369,9 +369,7 @@ int RSA_padding_add_PKCS1_PSS_mgf1(const RSA *rsa, unsigned char *EM, if (!salt) { goto err; } - if (!RAND_bytes(salt, sLen)) { - goto err; - } + BCM_rand_bytes(salt, sLen); } maskedDBLen = emLen - hLen - 1; H = EM + maskedDBLen; @@ -394,7 +392,6 @@ int RSA_padding_add_PKCS1_PSS_mgf1(const RSA *rsa, unsigned char *EM, } p = EM; - // Initial PS XORs with all zeroes which is a NOP so just update // pointer. Note from a test above this value is guaranteed to // be non-negative. diff --git a/crypto/fipsmodule/service_indicator/internal.h b/crypto/fipsmodule/service_indicator/internal.h index bbc4e4eed0..38b4677ce2 100644 --- a/crypto/fipsmodule/service_indicator/internal.h +++ b/crypto/fipsmodule/service_indicator/internal.h @@ -28,8 +28,8 @@ void FIPS_service_indicator_update_state(void); // stop |FIPS_service_indicator_update_state| from actually updating the service // indicator. This is used when a primitive calls a potentially approved // primitive to avoid false positives. For example, just because a key -// generation calls |RAND_bytes| (and thus the approved DRBG) doesn't mean that -// the key generation operation itself is approved. +// generation calls |BCM_rand_bytes| (and thus the approved DRBG) doesn't mean +// that the key generation operation itself is approved. // // This lock nests: i.e. locking twice is fine so long as each lock is paired // with an unlock. If the (64-bit) counter overflows, the process aborts. diff --git a/crypto/fipsmodule/service_indicator/service_indicator_test.cc b/crypto/fipsmodule/service_indicator/service_indicator_test.cc index e7221fa643..089bbd70fd 100644 --- a/crypto/fipsmodule/service_indicator/service_indicator_test.cc +++ b/crypto/fipsmodule/service_indicator/service_indicator_test.cc @@ -30,12 +30,13 @@ #include #include #include -#include +#include // TODO(bbe): only for RAND_bytes call below, replace with BCM call #include #include #include "../../test/abi_test.h" #include "../../test/test_util.h" +#include "../bcm_interface.h" #include "../bn/internal.h" #include "../rand/internal.h" #include "../tls/internal.h" diff --git a/crypto/rand_extra/deterministic.c b/crypto/rand_extra/deterministic.c index d1d582b077..d31d52be67 100644 --- a/crypto/rand_extra/deterministic.c +++ b/crypto/rand_extra/deterministic.c @@ -14,7 +14,8 @@ #include -#include "../fipsmodule/rand/internal.h" +#include "../bcm_support.h" +#include "sysrand_internal.h" #if defined(OPENSSL_RAND_DETERMINISTIC) @@ -35,6 +36,8 @@ static CRYPTO_MUTEX g_num_calls_lock = CRYPTO_MUTEX_INIT; void RAND_reset_for_fuzzing(void) { g_num_calls = 0; } +void CRYPTO_init_sysrand(void) {} + void CRYPTO_sysrand(uint8_t *out, size_t requested) { static const uint8_t kZeroKey[32]; @@ -50,6 +53,11 @@ void CRYPTO_sysrand(uint8_t *out, size_t requested) { CRYPTO_chacha_20(out, out, requested, kZeroKey, nonce, 0); } +int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len) { + CRYPTO_sysrand(buf, len); + return 1; +} + void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) { CRYPTO_sysrand(out, requested); } diff --git a/crypto/rand_extra/getentropy.c b/crypto/rand_extra/getentropy.c index 234b9b6840..4400d96018 100644 --- a/crypto/rand_extra/getentropy.c +++ b/crypto/rand_extra/getentropy.c @@ -18,7 +18,8 @@ #include -#include "../fipsmodule/rand/internal.h" +#include "../bcm_support.h" +#include "sysrand_internal.h" #if defined(OPENSSL_RAND_GETENTROPY) @@ -30,6 +31,8 @@ #include #endif +void CRYPTO_init_sysrand(void) {} + // CRYPTO_sysrand puts |requested| random bytes into |out|. void CRYPTO_sysrand(uint8_t *out, size_t requested) { while (requested > 0) { @@ -45,6 +48,11 @@ void CRYPTO_sysrand(uint8_t *out, size_t requested) { } } +int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len) { + CRYPTO_sysrand(buf, len); + return 1; +} + void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) { CRYPTO_sysrand(out, requested); } diff --git a/crypto/fipsmodule/rand/getrandom_fillin.h b/crypto/rand_extra/getrandom_fillin.h similarity index 100% rename from crypto/fipsmodule/rand/getrandom_fillin.h rename to crypto/rand_extra/getrandom_fillin.h diff --git a/crypto/rand_extra/ios.c b/crypto/rand_extra/ios.c index 73f0ef30da..424cd9472b 100644 --- a/crypto/rand_extra/ios.c +++ b/crypto/rand_extra/ios.c @@ -14,19 +14,27 @@ #include -#include "../fipsmodule/rand/internal.h" +#include "../bcm_support.h" +#include "sysrand_internal.h" #if defined(OPENSSL_RAND_IOS) #include #include +void CRYPTO_init_sysrand(void) {} + void CRYPTO_sysrand(uint8_t *out, size_t requested) { if (CCRandomGenerateBytes(out, requested) != kCCSuccess) { abort(); } } +int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len) { + CRYPTO_sysrand(buf, len); + return 1; +} + void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) { CRYPTO_sysrand(out, requested); } diff --git a/crypto/rand_extra/passive.c b/crypto/rand_extra/passive.c index c54e2e8a9b..08e0ad261c 100644 --- a/crypto/rand_extra/passive.c +++ b/crypto/rand_extra/passive.c @@ -14,11 +14,27 @@ #include -#include "../fipsmodule/rand/internal.h" +#include "../fipsmodule/bcm_interface.h" +#include "../bcm_support.h" #include "../internal.h" #if defined(BORINGSSL_FIPS) +// passive_get_seed_entropy writes |out_entropy_len| bytes of entropy, suitable +// for seeding a DRBG, to |out_entropy|. It sets |*out_used_cpu| to one if the +// entropy came directly from the CPU and zero if it came from the OS. It +// actively obtains entropy from the CPU/OS +static void passive_get_seed_entropy(uint8_t *out_entropy, + size_t out_entropy_len, + int *out_want_additional_input) { + *out_want_additional_input = 0; + if (bcm_success(BCM_rand_bytes_hwrng(out_entropy, out_entropy_len))) { + *out_want_additional_input = 1; + } else { + CRYPTO_sysrand_for_seed(out_entropy, out_entropy_len); + } +} + #define ENTROPY_READ_LEN \ (/* last_block size */ 16 + CTR_DRBG_ENTROPY_LEN * BORINGSSL_FIPS_OVERREAD) @@ -143,7 +159,7 @@ void RAND_need_entropy(size_t bytes_needed) { if (get_seed_from_daemon(buf, todo)) { want_additional_input = 1; } else { - CRYPTO_get_seed_entropy(buf, todo, &want_additional_input); + passive_get_seed_entropy(buf, todo, &want_additional_input); } if (boringssl_fips_break_test("CRNG")) { @@ -152,7 +168,7 @@ void RAND_need_entropy(size_t bytes_needed) { OPENSSL_memset(buf, 0, todo); } - RAND_load_entropy(buf, todo, want_additional_input); + BCM_rand_load_entropy(buf, todo, want_additional_input); } #endif // FIPS diff --git a/crypto/rand_extra/rand_extra.c b/crypto/rand_extra/rand_extra.c index e73b99e30b..87cd03072e 100644 --- a/crypto/rand_extra/rand_extra.c +++ b/crypto/rand_extra/rand_extra.c @@ -12,11 +12,21 @@ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include + #include -#include +#include "../bcm_support.h" +#include "../fipsmodule/bcm_interface.h" +int RAND_bytes(uint8_t *buf, size_t len) { + BCM_rand_bytes(buf, len); + return 1; +} + +int RAND_pseudo_bytes(uint8_t *buf, size_t len) { return RAND_bytes(buf, len); } + void RAND_seed(const void *buf, int num) { // OpenSSH calls |RAND_seed| before jailing on the assumption that any needed // file descriptors etc will be opened. @@ -28,7 +38,7 @@ int RAND_load_file(const char *path, long num) { if (num < 0) { // read the "whole file" return 1; } else if (num <= INT_MAX) { - return (int) num; + return (int)num; } else { return INT_MAX; } @@ -38,37 +48,30 @@ const char *RAND_file_name(char *buf, size_t num) { return NULL; } void RAND_add(const void *buf, int num, double entropy) {} -int RAND_egd(const char *path) { - return 255; -} +int RAND_egd(const char *path) { return 255; } -int RAND_poll(void) { - return 1; -} +int RAND_poll(void) { return 1; } -int RAND_status(void) { - return 1; -} +int RAND_status(void) { return 1; } static const struct rand_meth_st kSSLeayMethod = { - RAND_seed, - RAND_bytes, - RAND_cleanup, - RAND_add, - RAND_pseudo_bytes, - RAND_status, + RAND_seed, RAND_bytes, RAND_cleanup, + RAND_add, RAND_pseudo_bytes, RAND_status, }; -RAND_METHOD *RAND_SSLeay(void) { - return (RAND_METHOD*) &kSSLeayMethod; -} +RAND_METHOD *RAND_SSLeay(void) { return (RAND_METHOD *)&kSSLeayMethod; } -RAND_METHOD *RAND_OpenSSL(void) { - return RAND_SSLeay(); -} +RAND_METHOD *RAND_OpenSSL(void) { return RAND_SSLeay(); } const RAND_METHOD *RAND_get_rand_method(void) { return RAND_SSLeay(); } int RAND_set_rand_method(const RAND_METHOD *method) { return 1; } void RAND_cleanup(void) {} + +void RAND_get_system_entropy_for_custom_prng(uint8_t *buf, size_t len) { + if (len > 256) { + abort(); + } + CRYPTO_sysrand_for_seed(buf, len); +} diff --git a/crypto/rand_extra/sysrand_internal.h b/crypto/rand_extra/sysrand_internal.h new file mode 100644 index 0000000000..12bbfca46f --- /dev/null +++ b/crypto/rand_extra/sysrand_internal.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2024, Google Inc. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + +#ifndef OPENSSL_HEADER_CRYPTO_SYSRAND_INTERNAL_H +#define OPENSSL_HEADER_CRYPTO_SYSRAND_INTERNAL_H + +#include + +#if defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) +#define OPENSSL_RAND_DETERMINISTIC +#elif defined(OPENSSL_TRUSTY) +#define OPENSSL_RAND_TRUSTY +#elif defined(OPENSSL_WINDOWS) +#define OPENSSL_RAND_WINDOWS +#elif defined(OPENSSL_LINUX) +#define OPENSSL_RAND_URANDOM +#elif defined(OPENSSL_APPLE) && !defined(OPENSSL_MACOS) +// Unlike macOS, iOS and similar hide away getentropy(). +#define OPENSSL_RAND_IOS +#else +// By default if you are integrating BoringSSL we expect you to +// provide getentropy from the header file. +#define OPENSSL_RAND_GETENTROPY +#endif + +#endif // OPENSSL_HEADER_CRYPTO__SYSRAND_INTERNAL_H diff --git a/crypto/rand_extra/trusty.c b/crypto/rand_extra/trusty.c index d5b82e95b3..98aba2bcd3 100644 --- a/crypto/rand_extra/trusty.c +++ b/crypto/rand_extra/trusty.c @@ -14,7 +14,8 @@ #include -#include "../fipsmodule/rand/internal.h" +#include "../bcm_support.h" +#include "sysrand_internal.h" #if defined(OPENSSL_RAND_TRUSTY) #include @@ -25,12 +26,19 @@ #include +void CRYPTO_init_sysrand(void) {} + void CRYPTO_sysrand(uint8_t *out, size_t requested) { if (trusty_rng_hw_rand(out, requested) != NO_ERROR) { abort(); } } +int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len) { + CRYPTO_sysrand(buf, len); + return 1; +} + void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) { CRYPTO_sysrand(out, requested); } diff --git a/crypto/fipsmodule/rand/urandom.c b/crypto/rand_extra/urandom.c similarity index 91% rename from crypto/fipsmodule/rand/urandom.c rename to crypto/rand_extra/urandom.c index 66ad8734b4..8ad0e96b25 100644 --- a/crypto/fipsmodule/rand/urandom.c +++ b/crypto/rand_extra/urandom.c @@ -18,7 +18,8 @@ #include -#include "internal.h" +#include "../bcm_support.h" +#include "sysrand_internal.h" #if defined(OPENSSL_RAND_URANDOM) @@ -62,8 +63,7 @@ #include #include "getrandom_fillin.h" -#include "../delocate.h" -#include "../../internal.h" +#include "../internal.h" #if defined(USE_NR_getrandom) @@ -96,17 +96,17 @@ static ssize_t boringssl_getrandom(void *buf, size_t buf_len, unsigned flags) { static const int kHaveGetrandom = -3; // urandom_fd is a file descriptor to /dev/urandom. It's protected by |once|. -DEFINE_BSS_GET(int, urandom_fd) +static int urandom_fd; #if defined(USE_NR_getrandom) // getrandom_ready is one if |getrandom| had been initialized by the time // |init_once| was called and zero otherwise. -DEFINE_BSS_GET(int, getrandom_ready) +static int getrandom_ready; // extra_getrandom_flags_for_seed contains a value that is ORed into the flags // for getrandom() when reading entropy for a seed. -DEFINE_BSS_GET(int, extra_getrandom_flags_for_seed) +static int extra_getrandom_flags_for_seed; // On Android, check a system property to decide whether to set // |extra_getrandom_flags_for_seed| otherwise they will default to zero. If @@ -123,14 +123,14 @@ static void maybe_set_extra_getrandom_flags(void) { value[length] = 0; if (OPENSSL_strcasecmp(value, "true") == 0) { - *extra_getrandom_flags_for_seed_bss_get() = GRND_RANDOM; + extra_getrandom_flags_for_seed = GRND_RANDOM; } #endif } #endif // USE_NR_getrandom -DEFINE_STATIC_ONCE(rand_once) +static CRYPTO_once_t rand_once = CRYPTO_ONCE_INIT; // init_once initializes the state of this module to values previously // requested. This is the only function that modifies |urandom_fd|, which may be @@ -142,7 +142,7 @@ static void init_once(void) { ssize_t getrandom_ret = boringssl_getrandom(&dummy, sizeof(dummy), GRND_NONBLOCK); if (getrandom_ret == 1) { - *getrandom_ready_bss_get() = 1; + getrandom_ready = 1; have_getrandom = 1; } else if (getrandom_ret == -1 && errno == EAGAIN) { // We have getrandom, but the entropy pool has not been initialized yet. @@ -157,7 +157,7 @@ static void init_once(void) { } if (have_getrandom) { - *urandom_fd_bss_get() = kHaveGetrandom; + urandom_fd = kHaveGetrandom; maybe_set_extra_getrandom_flags(); return; } @@ -185,19 +185,19 @@ static void init_once(void) { abort(); } - *urandom_fd_bss_get() = fd; + urandom_fd = fd; } -DEFINE_STATIC_ONCE(wait_for_entropy_once) +static CRYPTO_once_t wait_for_entropy_once = CRYPTO_ONCE_INIT; static void wait_for_entropy(void) { - int fd = *urandom_fd_bss_get(); + int fd = urandom_fd; if (fd == kHaveGetrandom) { // |getrandom| and |getentropy| support blocking in |fill_with_entropy| // directly. For |getrandom|, we first probe with a non-blocking call to aid // debugging. #if defined(USE_NR_getrandom) - if (*getrandom_ready_bss_get()) { + if (getrandom_ready) { // The entropy pool was already initialized in |init_once|. return; } @@ -256,13 +256,13 @@ static int fill_with_entropy(uint8_t *out, size_t len, int block, int seed) { #if defined (USE_NR_getrandom) if (seed) { - getrandom_flags |= *extra_getrandom_flags_for_seed_bss_get(); + getrandom_flags |= extra_getrandom_flags_for_seed; } #endif CRYPTO_init_sysrand(); if (block) { - CRYPTO_once(wait_for_entropy_once_bss_get(), wait_for_entropy); + CRYPTO_once(&wait_for_entropy_once, wait_for_entropy); } // Clear |errno| so it has defined value if |read| or |getrandom| @@ -271,7 +271,7 @@ static int fill_with_entropy(uint8_t *out, size_t len, int block, int seed) { while (len > 0) { ssize_t r; - if (*urandom_fd_bss_get() == kHaveGetrandom) { + if (urandom_fd == kHaveGetrandom) { #if defined(USE_NR_getrandom) r = boringssl_getrandom(out, len, getrandom_flags); #else // USE_NR_getrandom @@ -280,7 +280,7 @@ static int fill_with_entropy(uint8_t *out, size_t len, int block, int seed) { #endif } else { do { - r = read(*urandom_fd_bss_get(), out, len); + r = read(urandom_fd, out, len); } while (r == -1 && errno == EINTR); } @@ -295,7 +295,7 @@ static int fill_with_entropy(uint8_t *out, size_t len, int block, int seed) { } void CRYPTO_init_sysrand(void) { - CRYPTO_once(rand_once_bss_get(), init_once); + CRYPTO_once(&rand_once, init_once); } // CRYPTO_sysrand puts |requested| random bytes into |out|. diff --git a/crypto/fipsmodule/rand/urandom_test.cc b/crypto/rand_extra/urandom_test.cc similarity index 99% rename from crypto/fipsmodule/rand/urandom_test.cc rename to crypto/rand_extra/urandom_test.cc index 08e4183edd..fe13d7b30a 100644 --- a/crypto/fipsmodule/rand/urandom_test.cc +++ b/crypto/rand_extra/urandom_test.cc @@ -20,7 +20,8 @@ #include #include "getrandom_fillin.h" -#include "internal.h" +#include "../internal.h" + #if (defined(OPENSSL_X86_64) || defined(OPENSSL_AARCH64)) && \ !defined(BORINGSSL_SHARED_LIBRARY) && defined(OPENSSL_RAND_URANDOM) && \ @@ -35,9 +36,6 @@ #include #include -#include "fork_detect.h" -#include "getrandom_fillin.h" - #if !defined(PTRACE_O_EXITKILL) #define PTRACE_O_EXITKILL (1 << 20) #endif diff --git a/crypto/rand_extra/windows.c b/crypto/rand_extra/windows.c index 6b407b7c0f..a44774d23a 100644 --- a/crypto/rand_extra/windows.c +++ b/crypto/rand_extra/windows.c @@ -14,7 +14,9 @@ #include -#include "../fipsmodule/rand/internal.h" +#include "../bcm_support.h" +#include "../internal.h" +#include "sysrand_internal.h" #if defined(OPENSSL_RAND_WINDOWS) @@ -88,6 +90,11 @@ void CRYPTO_sysrand(uint8_t *out, size_t requested) { #endif // WINAPI_PARTITION_APP && !WINAPI_PARTITION_DESKTOP +int CRYPTO_sysrand_if_available(uint8_t *buf, size_t len) { + CRYPTO_sysrand(buf, len); + return 1; +} + void CRYPTO_sysrand_for_seed(uint8_t *out, size_t requested) { CRYPTO_sysrand(out, requested); } diff --git a/gen/sources.bzl b/gen/sources.bzl index b989a3389c..1566051692 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -83,7 +83,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/rand/ctrdrbg.c", "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rand/urandom.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", "crypto/fipsmodule/rsa/rsa.c", @@ -397,6 +396,7 @@ crypto_sources = [ "crypto/rand_extra/passive.c", "crypto/rand_extra/rand_extra.c", "crypto/rand_extra/trusty.c", + "crypto/rand_extra/urandom.c", "crypto/rand_extra/windows.c", "crypto/rc4/rc4.c", "crypto/refcount.c", @@ -584,6 +584,7 @@ crypto_headers = [ crypto_internal_headers = [ "crypto/asn1/internal.h", + "crypto/bcm_support.h", "crypto/bio/internal.h", "crypto/bytestring/internal.h", "crypto/chacha/internal.h", @@ -598,7 +599,7 @@ crypto_internal_headers = [ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", - "crypto/fipsmodule/aes/internal.h", + "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", "crypto/fipsmodule/cipher/internal.h", @@ -615,7 +616,6 @@ crypto_internal_headers = [ "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/fork_detect.h", - "crypto/fipsmodule/rand/getrandom_fillin.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -633,6 +633,8 @@ crypto_internal_headers = [ "crypto/pkcs8/internal.h", "crypto/poly1305/internal.h", "crypto/pool/internal.h", + "crypto/rand_extra/getrandom_fillin.h", + "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", "crypto/spx/address.h", "crypto/spx/fors.h", @@ -2766,5 +2768,5 @@ test_support_sources_nasm = [ ] urandom_test_sources = [ - "crypto/fipsmodule/rand/urandom_test.cc", + "crypto/rand_extra/urandom_test.cc", ] diff --git a/gen/sources.cmake b/gen/sources.cmake index a2a374eaf3..5956a7c852 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -87,7 +87,6 @@ set( crypto/fipsmodule/rand/ctrdrbg.c crypto/fipsmodule/rand/fork_detect.c crypto/fipsmodule/rand/rand.c - crypto/fipsmodule/rand/urandom.c crypto/fipsmodule/rsa/blinding.c crypto/fipsmodule/rsa/padding.c crypto/fipsmodule/rsa/rsa.c @@ -411,6 +410,7 @@ set( crypto/rand_extra/passive.c crypto/rand_extra/rand_extra.c crypto/rand_extra/trusty.c + crypto/rand_extra/urandom.c crypto/rand_extra/windows.c crypto/rc4/rc4.c crypto/refcount.c @@ -602,6 +602,7 @@ set( CRYPTO_INTERNAL_HEADERS crypto/asn1/internal.h + crypto/bcm_support.h crypto/bio/internal.h crypto/bytestring/internal.h crypto/chacha/internal.h @@ -616,7 +617,7 @@ set( crypto/ec_extra/internal.h crypto/err/internal.h crypto/evp/internal.h - crypto/fipsmodule/aes/internal.h + crypto/fipsmodule/bcm_interface.h crypto/fipsmodule/bn/internal.h crypto/fipsmodule/bn/rsaz_exp.h crypto/fipsmodule/cipher/internal.h @@ -633,7 +634,6 @@ set( crypto/fipsmodule/md5/internal.h crypto/fipsmodule/modes/internal.h crypto/fipsmodule/rand/fork_detect.h - crypto/fipsmodule/rand/getrandom_fillin.h crypto/fipsmodule/rand/internal.h crypto/fipsmodule/rsa/internal.h crypto/fipsmodule/service_indicator/internal.h @@ -651,6 +651,8 @@ set( crypto/pkcs8/internal.h crypto/poly1305/internal.h crypto/pool/internal.h + crypto/rand_extra/getrandom_fillin.h + crypto/rand_extra/sysrand_internal.h crypto/rsa_extra/internal.h crypto/spx/address.h crypto/spx/fors.h @@ -2832,5 +2834,5 @@ set( set( URANDOM_TEST_SOURCES - crypto/fipsmodule/rand/urandom_test.cc + crypto/rand_extra/urandom_test.cc ) diff --git a/gen/sources.gni b/gen/sources.gni index 2f95ed5628..55574c3f07 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -83,7 +83,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/rand/ctrdrbg.c", "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rand/urandom.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", "crypto/fipsmodule/rsa/rsa.c", @@ -397,6 +396,7 @@ crypto_sources = [ "crypto/rand_extra/passive.c", "crypto/rand_extra/rand_extra.c", "crypto/rand_extra/trusty.c", + "crypto/rand_extra/urandom.c", "crypto/rand_extra/windows.c", "crypto/rc4/rc4.c", "crypto/refcount.c", @@ -584,6 +584,7 @@ crypto_headers = [ crypto_internal_headers = [ "crypto/asn1/internal.h", + "crypto/bcm_support.h", "crypto/bio/internal.h", "crypto/bytestring/internal.h", "crypto/chacha/internal.h", @@ -598,7 +599,7 @@ crypto_internal_headers = [ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", - "crypto/fipsmodule/aes/internal.h", + "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", "crypto/fipsmodule/cipher/internal.h", @@ -615,7 +616,6 @@ crypto_internal_headers = [ "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/fork_detect.h", - "crypto/fipsmodule/rand/getrandom_fillin.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -633,6 +633,8 @@ crypto_internal_headers = [ "crypto/pkcs8/internal.h", "crypto/poly1305/internal.h", "crypto/pool/internal.h", + "crypto/rand_extra/getrandom_fillin.h", + "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", "crypto/spx/address.h", "crypto/spx/fors.h", @@ -2766,5 +2768,5 @@ test_support_sources_nasm = [ ] urandom_test_sources = [ - "crypto/fipsmodule/rand/urandom_test.cc", + "crypto/rand_extra/urandom_test.cc", ] diff --git a/gen/sources.json b/gen/sources.json index 407f3ac28b..d6ef92d4f8 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -68,7 +68,6 @@ "crypto/fipsmodule/rand/ctrdrbg.c", "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rand/urandom.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", "crypto/fipsmodule/rsa/rsa.c", @@ -381,6 +380,7 @@ "crypto/rand_extra/passive.c", "crypto/rand_extra/rand_extra.c", "crypto/rand_extra/trusty.c", + "crypto/rand_extra/urandom.c", "crypto/rand_extra/windows.c", "crypto/rc4/rc4.c", "crypto/refcount.c", @@ -566,6 +566,7 @@ ], "internal_hdrs": [ "crypto/asn1/internal.h", + "crypto/bcm_support.h", "crypto/bio/internal.h", "crypto/bytestring/internal.h", "crypto/chacha/internal.h", @@ -580,7 +581,7 @@ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", - "crypto/fipsmodule/aes/internal.h", + "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", "crypto/fipsmodule/cipher/internal.h", @@ -597,7 +598,6 @@ "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/fork_detect.h", - "crypto/fipsmodule/rand/getrandom_fillin.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -615,6 +615,8 @@ "crypto/pkcs8/internal.h", "crypto/poly1305/internal.h", "crypto/pool/internal.h", + "crypto/rand_extra/getrandom_fillin.h", + "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", "crypto/spx/address.h", "crypto/spx/fors.h", @@ -2748,7 +2750,7 @@ }, "urandom_test": { "srcs": [ - "crypto/fipsmodule/rand/urandom_test.cc" + "crypto/rand_extra/urandom_test.cc" ] } } \ No newline at end of file From ee79a9303ff7fc82dc15c9042417553a61095a77 Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Fri, 31 May 2024 21:37:00 +0000 Subject: [PATCH 57/81] Move fork detection support out of bcm This moves fork detection itself back into libcrypto. BCM itself retains only the API to access the generation number to know if stiring in more entropy is needed because a fork happened. Bug: 723 Change-Id: I9b38440e7243119de97f9c4653f0e91d71107501 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/68967 Reviewed-by: David Benjamin Commit-Queue: David Benjamin --- build.json | 6 +- crypto/bcm_support.h | 40 +++++++++++ crypto/crypto.c | 1 - crypto/fipsmodule/bcm.c | 1 - crypto/fipsmodule/rand/fork_detect.h | 68 ------------------- crypto/fipsmodule/rsa/rsa_impl.c | 2 +- .../rand => rand_extra}/fork_detect.c | 54 +++++++-------- .../rand => rand_extra}/fork_detect_test.cc | 2 +- crypto/rand_extra/rand_test.cc | 2 +- gen/sources.bzl | 6 +- gen/sources.cmake | 6 +- gen/sources.gni | 6 +- gen/sources.json | 6 +- 13 files changed, 84 insertions(+), 116 deletions(-) delete mode 100644 crypto/fipsmodule/rand/fork_detect.h rename crypto/{fipsmodule/rand => rand_extra}/fork_detect.c (81%) rename crypto/{fipsmodule/rand => rand_extra}/fork_detect_test.cc (99%) diff --git a/build.json b/build.json index 6f6271af2b..c1dc1ae089 100644 --- a/build.json +++ b/build.json @@ -78,7 +78,6 @@ "crypto/fipsmodule/modes/ofb.c", "crypto/fipsmodule/modes/polyval.c", "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", @@ -291,6 +290,7 @@ "crypto/poly1305/poly1305_vec.c", "crypto/pool/pool.c", "crypto/rand_extra/deterministic.c", + "crypto/rand_extra/fork_detect.c", "crypto/rand_extra/forkunsafe.c", "crypto/rand_extra/getentropy.c", "crypto/rand_extra/ios.c", @@ -512,7 +512,6 @@ "crypto/fipsmodule/ecdsa/internal.h", "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", - "crypto/fipsmodule/rand/fork_detect.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -831,7 +830,6 @@ "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", - "crypto/fipsmodule/rand/fork_detect_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", "crypto/fipsmodule/sha/sha_test.cc", "crypto/hmac_extra/hmac_test.cc", @@ -850,8 +848,10 @@ "crypto/pkcs8/pkcs8_test.cc", "crypto/poly1305/poly1305_test.cc", "crypto/pool/pool_test.cc", + "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", + "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", diff --git a/crypto/bcm_support.h b/crypto/bcm_support.h index a6f005baf1..c91bcb028c 100644 --- a/crypto/bcm_support.h +++ b/crypto/bcm_support.h @@ -23,6 +23,24 @@ extern "C" { #endif +#if defined(OPENSSL_LINUX) +// On linux we use MADVISE instead of pthread_atfork(), due +// to concerns about clone() being used for address space +// duplication. +#define OPENSSL_FORK_DETECTION +#define OPENSSL_FORK_DETECTION_MADVISE +#elif defined(OPENSSL_MACOS) || defined(OPENSSL_IOS) || \ + defined(OPENSSL_OPENBSD) || defined(OPENSSL_FREEBSD) +// These platforms may detect address space duplication with pthread_atfork. +// iOS doesn't normally allow fork in apps, but it's there. +#define OPENSSL_FORK_DETECTION +#define OPENSSL_FORK_DETECTION_PTHREAD_ATFORK +#elif defined(OPENSSL_WINDOWS) || defined(OPENSSL_TRUSTY) || \ + defined(__ZEPHYR__) || defined(CROS_EC) +// These platforms do not fork. +#define OPENSSL_DOES_NOT_FORK +#endif + #if defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) #define OPENSSL_RAND_DETERMINISTIC #elif defined(OPENSSL_TRUSTY) @@ -66,6 +84,28 @@ void CRYPTO_sysrand_for_seed(uint8_t *buf, size_t len); // has run out of entropy. void RAND_need_entropy(size_t bytes_needed); +// crypto_get_fork_generation returns the fork generation number for the current +// process, or zero if not supported on the platform. The fork generation number +// is a non-zero, strictly-monotonic counter with the property that, if queried +// in an address space and then again in a subsequently forked copy, the forked +// address space will observe a greater value. +// +// This function may be used to clear cached values across a fork. When +// initializing a cache, record the fork generation. Before using the cache, +// check if the fork generation has changed. If so, drop the cache and update +// the save fork generation. Note this logic transparently handles platforms +// which always return zero. +// +// This is not reliably supported on all platforms which implement |fork|, so it +// should only be used as a hardening measure. +OPENSSL_EXPORT uint64_t CRYPTO_get_fork_generation(void); + +// CRYPTO_fork_detect_force_madv_wipeonfork_for_testing is an internal detail +// used for testing purposes. +OPENSSL_EXPORT void CRYPTO_fork_detect_force_madv_wipeonfork_for_testing( + int on); + + #if defined(__cplusplus) } // extern C #endif diff --git a/crypto/crypto.c b/crypto/crypto.c index ddf4038a85..155e7b4aef 100644 --- a/crypto/crypto.c +++ b/crypto/crypto.c @@ -16,7 +16,6 @@ #include -#include "fipsmodule/rand/fork_detect.h" #include "fipsmodule/rand/internal.h" #include "bcm_support.h" #include "internal.h" diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index d9cc6c3607..4ec382bf33 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -93,7 +93,6 @@ #include "modes/ofb.c" #include "modes/polyval.c" #include "rand/ctrdrbg.c" -#include "rand/fork_detect.c" #include "rand/rand.c" #include "rsa/blinding.c" #include "rsa/padding.c" diff --git a/crypto/fipsmodule/rand/fork_detect.h b/crypto/fipsmodule/rand/fork_detect.h deleted file mode 100644 index 0fb275cf8f..0000000000 --- a/crypto/fipsmodule/rand/fork_detect.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (c) 2020, Google Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ - -#ifndef OPENSSL_HEADER_CRYPTO_FORK_DETECT_H -#define OPENSSL_HEADER_CRYPTO_FORK_DETECT_H - -#include - -#if defined(OPENSSL_LINUX) -// On linux we use MADVISE instead of pthread_atfork(), due -// to concerns about clone() being used for address space -// duplication. -#define OPENSSL_FORK_DETECTION -#define OPENSSL_FORK_DETECTION_MADVISE -#elif defined(OPENSSL_MACOS) || defined(OPENSSL_IOS) || \ - defined(OPENSSL_OPENBSD) || defined(OPENSSL_FREEBSD) -// These platforms may detect address space duplication with pthread_atfork. -// iOS doesn't normally allow fork in apps, but it's there. -#define OPENSSL_FORK_DETECTION -#define OPENSSL_FORK_DETECTION_PTHREAD_ATFORK -#elif defined(OPENSSL_WINDOWS) || defined(OPENSSL_TRUSTY) || \ - defined(__ZEPHYR__) || defined(CROS_EC) -// These platforms do not fork. -#define OPENSSL_DOES_NOT_FORK -#endif - -#if defined(__cplusplus) -extern "C" { -#endif - - -// crypto_get_fork_generation returns the fork generation number for the current -// process, or zero if not supported on the platform. The fork generation number -// is a non-zero, strictly-monotonic counter with the property that, if queried -// in an address space and then again in a subsequently forked copy, the forked -// address space will observe a greater value. -// -// This function may be used to clear cached values across a fork. When -// initializing a cache, record the fork generation. Before using the cache, -// check if the fork generation has changed. If so, drop the cache and update -// the save fork generation. Note this logic transparently handles platforms -// which always return zero. -// -// This is not reliably supported on all platforms which implement |fork|, so it -// should only be used as a hardening measure. -OPENSSL_EXPORT uint64_t CRYPTO_get_fork_generation(void); - -// CRYPTO_fork_detect_force_madv_wipeonfork_for_testing is an internal detail -// used for testing purposes. -OPENSSL_EXPORT void CRYPTO_fork_detect_force_madv_wipeonfork_for_testing( - int on); - -#if defined(__cplusplus) -} // extern C -#endif - -#endif // OPENSSL_HEADER_CRYPTO_FORK_DETECT_H diff --git a/crypto/fipsmodule/rsa/rsa_impl.c b/crypto/fipsmodule/rsa/rsa_impl.c index b8fbbdcfe7..2f1d76ba46 100644 --- a/crypto/fipsmodule/rsa/rsa_impl.c +++ b/crypto/fipsmodule/rsa/rsa_impl.c @@ -65,10 +65,10 @@ #include #include +#include "../../bcm_support.h" #include "../../internal.h" #include "../bn/internal.h" #include "../delocate.h" -#include "../rand/fork_detect.h" #include "../service_indicator/internal.h" #include "internal.h" diff --git a/crypto/fipsmodule/rand/fork_detect.c b/crypto/rand_extra/fork_detect.c similarity index 81% rename from crypto/fipsmodule/rand/fork_detect.c rename to crypto/rand_extra/fork_detect.c index a2cf3a05a1..99be497aad 100644 --- a/crypto/fipsmodule/rand/fork_detect.c +++ b/crypto/rand_extra/fork_detect.c @@ -16,8 +16,7 @@ #define _GNU_SOURCE // needed for madvise() and MAP_ANONYMOUS on Linux. #endif -#include -#include "fork_detect.h" +#include "../bcm_support.h" #if defined(OPENSSL_FORK_DETECTION_MADVISE) #include @@ -35,19 +34,18 @@ static_assert(MADV_WIPEONFORK == 18, "MADV_WIPEONFORK is not 18"); #include #endif // OPENSSL_FORK_DETECTION_MADVISE -#include "../delocate.h" -#include "../../internal.h" +#include "../internal.h" #if defined(OPENSSL_FORK_DETECTION_MADVISE) -DEFINE_BSS_GET(int, g_force_madv_wipeonfork); -DEFINE_BSS_GET(int, g_force_madv_wipeonfork_enabled); -DEFINE_STATIC_ONCE(g_fork_detect_once); -DEFINE_STATIC_MUTEX(g_fork_detect_lock); -DEFINE_BSS_GET(CRYPTO_atomic_u32 *, g_fork_detect_addr); -DEFINE_BSS_GET(uint64_t, g_fork_generation); +static int g_force_madv_wipeonfork; +static int g_force_madv_wipeonfork_enabled; +static CRYPTO_once_t g_fork_detect_once = CRYPTO_ONCE_INIT; +static CRYPTO_MUTEX g_fork_detect_lock = CRYPTO_MUTEX_INIT; +static CRYPTO_atomic_u32 * g_fork_detect_addr; +static uint64_t g_fork_generation; static void init_fork_detect(void) { - if (*g_force_madv_wipeonfork_bss_get()) { + if (g_force_madv_wipeonfork) { return; } @@ -74,13 +72,13 @@ static void init_fork_detect(void) { } CRYPTO_atomic_store_u32(addr, 1); - *g_fork_detect_addr_bss_get() = addr; - *g_fork_generation_bss_get() = 1; + g_fork_detect_addr = addr; + g_fork_generation = 1; } uint64_t CRYPTO_get_fork_generation(void) { - CRYPTO_once(g_fork_detect_once_bss_get(), init_fork_detect); + CRYPTO_once(&g_fork_detect_once, init_fork_detect); // In a single-threaded process, there are obviously no races because there's // only a single mutator in the address space. @@ -93,12 +91,12 @@ uint64_t CRYPTO_get_fork_generation(void) { // child process is single-threaded, the child may become multi-threaded // before it observes this. Therefore, we must synchronize the logic below. - CRYPTO_atomic_u32 *const flag_ptr = *g_fork_detect_addr_bss_get(); + CRYPTO_atomic_u32 *const flag_ptr = g_fork_detect_addr; if (flag_ptr == NULL) { // Our kernel is too old to support |MADV_WIPEONFORK| or // |g_force_madv_wipeonfork| is set. - if (*g_force_madv_wipeonfork_bss_get() && - *g_force_madv_wipeonfork_enabled_bss_get()) { + if (g_force_madv_wipeonfork && + g_force_madv_wipeonfork_enabled) { // A constant generation number to simulate support, even if the kernel // doesn't support it. return 42; @@ -114,7 +112,7 @@ uint64_t CRYPTO_get_fork_generation(void) { // In the common case, try to observe the flag without taking a lock. This // avoids cacheline contention in the PRNG. - uint64_t *const generation_ptr = g_fork_generation_bss_get(); + uint64_t *const generation_ptr = &g_fork_generation; if (CRYPTO_atomic_load_u32(flag_ptr) != 0) { // If we observe a non-zero flag, it is safe to read |generation_ptr| // without a lock. The flag and generation number are fixed for this copy of @@ -125,7 +123,7 @@ uint64_t CRYPTO_get_fork_generation(void) { // The flag was zero. The generation number must be incremented, but other // threads may have concurrently observed the zero, so take a lock before // incrementing. - CRYPTO_MUTEX *const lock = g_fork_detect_lock_bss_get(); + CRYPTO_MUTEX *const lock = &g_fork_detect_lock; CRYPTO_MUTEX_lock_write(lock); uint64_t current_generation = *generation_ptr; if (CRYPTO_atomic_load_u32(flag_ptr) == 0) { @@ -147,35 +145,35 @@ uint64_t CRYPTO_get_fork_generation(void) { } void CRYPTO_fork_detect_force_madv_wipeonfork_for_testing(int on) { - *g_force_madv_wipeonfork_bss_get() = 1; - *g_force_madv_wipeonfork_enabled_bss_get() = on; + g_force_madv_wipeonfork = 1; + g_force_madv_wipeonfork_enabled = on; } #elif defined(OPENSSL_FORK_DETECTION_PTHREAD_ATFORK) -DEFINE_STATIC_ONCE(g_pthread_fork_detection_once); -DEFINE_BSS_GET(uint64_t, g_atfork_fork_generation); +static CRYPTO_once_t g_pthread_fork_detection_once = CRYPTO_ONCE_INIT; +static uint64_t g_atfork_fork_generation; static void we_are_forked(void) { // Immediately after a fork, the process must be single-threaded. - uint64_t value = *g_atfork_fork_generation_bss_get() + 1; + uint64_t value = g_atfork_fork_generation + 1; if (value == 0) { value = 1; } - *g_atfork_fork_generation_bss_get() = value; + g_atfork_fork_generation = value; } static void init_pthread_fork_detection(void) { if (pthread_atfork(NULL, NULL, we_are_forked) != 0) { abort(); } - *g_atfork_fork_generation_bss_get() = 1; + g_atfork_fork_generation = 1; } uint64_t CRYPTO_get_fork_generation(void) { - CRYPTO_once(g_pthread_fork_detection_once_bss_get(), init_pthread_fork_detection); + CRYPTO_once(&g_pthread_fork_detection_once, init_pthread_fork_detection); - return *g_atfork_fork_generation_bss_get(); + return g_atfork_fork_generation; } #elif defined(OPENSSL_DOES_NOT_FORK) diff --git a/crypto/fipsmodule/rand/fork_detect_test.cc b/crypto/rand_extra/fork_detect_test.cc similarity index 99% rename from crypto/fipsmodule/rand/fork_detect_test.cc rename to crypto/rand_extra/fork_detect_test.cc index f9cde28ba5..2e30456aaf 100644 --- a/crypto/fipsmodule/rand/fork_detect_test.cc +++ b/crypto/rand_extra/fork_detect_test.cc @@ -14,7 +14,7 @@ #include -#include "fork_detect.h" +#include "../bcm_support.h" // TSAN cannot cope with this test and complains that "starting new threads // after multi-threaded fork is not supported". diff --git a/crypto/rand_extra/rand_test.cc b/crypto/rand_extra/rand_test.cc index 1af28b04a6..6a8b2c7382 100644 --- a/crypto/rand_extra/rand_test.cc +++ b/crypto/rand_extra/rand_test.cc @@ -20,7 +20,7 @@ #include -#include "../fipsmodule/rand/fork_detect.h" +#include "../bcm_support.h" #include "../fipsmodule/rand/internal.h" #include "../test/abi_test.h" #include "../test/test_util.h" diff --git a/gen/sources.bzl b/gen/sources.bzl index 1566051692..dcb77761f1 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -81,7 +81,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/modes/ofb.c", "crypto/fipsmodule/modes/polyval.c", "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", @@ -390,6 +389,7 @@ crypto_sources = [ "crypto/poly1305/poly1305_vec.c", "crypto/pool/pool.c", "crypto/rand_extra/deterministic.c", + "crypto/rand_extra/fork_detect.c", "crypto/rand_extra/forkunsafe.c", "crypto/rand_extra/getentropy.c", "crypto/rand_extra/ios.c", @@ -615,7 +615,6 @@ crypto_internal_headers = [ "crypto/fipsmodule/ecdsa/internal.h", "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", - "crypto/fipsmodule/rand/fork_detect.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -725,7 +724,6 @@ crypto_test_sources = [ "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", - "crypto/fipsmodule/rand/fork_detect_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", "crypto/fipsmodule/sha/sha_test.cc", "crypto/hmac_extra/hmac_test.cc", @@ -744,8 +742,10 @@ crypto_test_sources = [ "crypto/pkcs8/pkcs8_test.cc", "crypto/poly1305/poly1305_test.cc", "crypto/pool/pool_test.cc", + "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", + "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", diff --git a/gen/sources.cmake b/gen/sources.cmake index 5956a7c852..5d730713c5 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -85,7 +85,6 @@ set( crypto/fipsmodule/modes/ofb.c crypto/fipsmodule/modes/polyval.c crypto/fipsmodule/rand/ctrdrbg.c - crypto/fipsmodule/rand/fork_detect.c crypto/fipsmodule/rand/rand.c crypto/fipsmodule/rsa/blinding.c crypto/fipsmodule/rsa/padding.c @@ -404,6 +403,7 @@ set( crypto/poly1305/poly1305_vec.c crypto/pool/pool.c crypto/rand_extra/deterministic.c + crypto/rand_extra/fork_detect.c crypto/rand_extra/forkunsafe.c crypto/rand_extra/getentropy.c crypto/rand_extra/ios.c @@ -633,7 +633,6 @@ set( crypto/fipsmodule/ecdsa/internal.h crypto/fipsmodule/md5/internal.h crypto/fipsmodule/modes/internal.h - crypto/fipsmodule/rand/fork_detect.h crypto/fipsmodule/rand/internal.h crypto/fipsmodule/rsa/internal.h crypto/fipsmodule/service_indicator/internal.h @@ -749,7 +748,6 @@ set( crypto/fipsmodule/md5/md5_test.cc crypto/fipsmodule/modes/gcm_test.cc crypto/fipsmodule/rand/ctrdrbg_test.cc - crypto/fipsmodule/rand/fork_detect_test.cc crypto/fipsmodule/service_indicator/service_indicator_test.cc crypto/fipsmodule/sha/sha_test.cc crypto/hmac_extra/hmac_test.cc @@ -768,8 +766,10 @@ set( crypto/pkcs8/pkcs8_test.cc crypto/poly1305/poly1305_test.cc crypto/pool/pool_test.cc + crypto/rand_extra/fork_detect_test.cc crypto/rand_extra/getentropy_test.cc crypto/rand_extra/rand_test.cc + crypto/rand_extra/rand_test.cc crypto/refcount_test.cc crypto/rsa_extra/rsa_test.cc crypto/self_test.cc diff --git a/gen/sources.gni b/gen/sources.gni index 55574c3f07..19601f860c 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -81,7 +81,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/modes/ofb.c", "crypto/fipsmodule/modes/polyval.c", "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", @@ -390,6 +389,7 @@ crypto_sources = [ "crypto/poly1305/poly1305_vec.c", "crypto/pool/pool.c", "crypto/rand_extra/deterministic.c", + "crypto/rand_extra/fork_detect.c", "crypto/rand_extra/forkunsafe.c", "crypto/rand_extra/getentropy.c", "crypto/rand_extra/ios.c", @@ -615,7 +615,6 @@ crypto_internal_headers = [ "crypto/fipsmodule/ecdsa/internal.h", "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", - "crypto/fipsmodule/rand/fork_detect.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -725,7 +724,6 @@ crypto_test_sources = [ "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", - "crypto/fipsmodule/rand/fork_detect_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", "crypto/fipsmodule/sha/sha_test.cc", "crypto/hmac_extra/hmac_test.cc", @@ -744,8 +742,10 @@ crypto_test_sources = [ "crypto/pkcs8/pkcs8_test.cc", "crypto/poly1305/poly1305_test.cc", "crypto/pool/pool_test.cc", + "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", + "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", diff --git a/gen/sources.json b/gen/sources.json index d6ef92d4f8..1870eccd9d 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -66,7 +66,6 @@ "crypto/fipsmodule/modes/ofb.c", "crypto/fipsmodule/modes/polyval.c", "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/fork_detect.c", "crypto/fipsmodule/rand/rand.c", "crypto/fipsmodule/rsa/blinding.c", "crypto/fipsmodule/rsa/padding.c", @@ -374,6 +373,7 @@ "crypto/poly1305/poly1305_vec.c", "crypto/pool/pool.c", "crypto/rand_extra/deterministic.c", + "crypto/rand_extra/fork_detect.c", "crypto/rand_extra/forkunsafe.c", "crypto/rand_extra/getentropy.c", "crypto/rand_extra/ios.c", @@ -597,7 +597,6 @@ "crypto/fipsmodule/ecdsa/internal.h", "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", - "crypto/fipsmodule/rand/fork_detect.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", "crypto/fipsmodule/service_indicator/internal.h", @@ -706,7 +705,6 @@ "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", - "crypto/fipsmodule/rand/fork_detect_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", "crypto/fipsmodule/sha/sha_test.cc", "crypto/hmac_extra/hmac_test.cc", @@ -725,8 +723,10 @@ "crypto/pkcs8/pkcs8_test.cc", "crypto/poly1305/poly1305_test.cc", "crypto/pool/pool_test.cc", + "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", + "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", From d2638490679527185fe9817e24eca316acc93d96 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 29 Aug 2024 13:42:18 -0400 Subject: [PATCH 58/81] Fix some mistakes in build.json aes/internal.h got removed on accident in some reshuffling. All this also really should be under the bcm target, rather than the crypto target, but we'll sort that out later. Also rand_test.cc got duplicated. Change-Id: If77f1ff6149a764ccf96073166a5520b284b2dc7 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70768 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- build.json | 2 +- gen/sources.bzl | 2 +- gen/sources.cmake | 2 +- gen/sources.gni | 2 +- gen/sources.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.json b/build.json index c1dc1ae089..4b80dfd4d8 100644 --- a/build.json +++ b/build.json @@ -496,6 +496,7 @@ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", + "crypto/fipsmodule/aes/internal.h", "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", @@ -851,7 +852,6 @@ "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", - "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", diff --git a/gen/sources.bzl b/gen/sources.bzl index dcb77761f1..e1b23601b0 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -599,6 +599,7 @@ crypto_internal_headers = [ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", + "crypto/fipsmodule/aes/internal.h", "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", @@ -745,7 +746,6 @@ crypto_test_sources = [ "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", - "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", diff --git a/gen/sources.cmake b/gen/sources.cmake index 5d730713c5..eb22684e63 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -617,6 +617,7 @@ set( crypto/ec_extra/internal.h crypto/err/internal.h crypto/evp/internal.h + crypto/fipsmodule/aes/internal.h crypto/fipsmodule/bcm_interface.h crypto/fipsmodule/bn/internal.h crypto/fipsmodule/bn/rsaz_exp.h @@ -769,7 +770,6 @@ set( crypto/rand_extra/fork_detect_test.cc crypto/rand_extra/getentropy_test.cc crypto/rand_extra/rand_test.cc - crypto/rand_extra/rand_test.cc crypto/refcount_test.cc crypto/rsa_extra/rsa_test.cc crypto/self_test.cc diff --git a/gen/sources.gni b/gen/sources.gni index 19601f860c..71fdebaeb0 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -599,6 +599,7 @@ crypto_internal_headers = [ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", + "crypto/fipsmodule/aes/internal.h", "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", @@ -745,7 +746,6 @@ crypto_test_sources = [ "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", - "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", diff --git a/gen/sources.json b/gen/sources.json index 1870eccd9d..1e17762870 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -581,6 +581,7 @@ "crypto/ec_extra/internal.h", "crypto/err/internal.h", "crypto/evp/internal.h", + "crypto/fipsmodule/aes/internal.h", "crypto/fipsmodule/bcm_interface.h", "crypto/fipsmodule/bn/internal.h", "crypto/fipsmodule/bn/rsaz_exp.h", @@ -726,7 +727,6 @@ "crypto/rand_extra/fork_detect_test.cc", "crypto/rand_extra/getentropy_test.cc", "crypto/rand_extra/rand_test.cc", - "crypto/rand_extra/rand_test.cc", "crypto/refcount_test.cc", "crypto/rsa_extra/rsa_test.cc", "crypto/self_test.cc", From 3a138e43694c381cbd3d35f3237afed5724a67e8 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 29 Aug 2024 13:41:37 -0400 Subject: [PATCH 59/81] Rename bcm.c fragments to foo.c.inc Having the files named .c but included causes a ton of problems with build systems. Many of our build systems care about three categories of files: - public headers, available to downstream targets - source files, each of which is compiled as a compilation unit - internal headers, not available to downstream targets There is usually a check, in Bazel called layering_check that enforces source files only include headers that are declared somewhere appropriate. The bcm.c fragments, under this classification, are internal headers. However, in both GN and Bazel, internal headers and sources both go in the source list. They are distinguished only by file extension. When FIPS fragments have a .c file extension, they are misinterpreted as source files, and many things break. Rename them. Either .h and .inc would be sufficient. Because we had to disable Bazel's parse_headers feature, there is no difference (AFAICT) in their handling. Also, these files actually pass the parse_headers feature, even though they don't have an include guard. Still, the tech of the style guide suggests that .inc is probably the better file extension. https://google.github.io/styleguide/cppguide.html#Self_contained_Headers I used .c.inc rather than plain .inc so that we can easily rename them back to .c when we solve https://crbug.com/362530616. Note that, as .inc is not as common of a file extension, people working on BoringSSL may need to reconfigure their editors to map .inc to C/C++. Update-Note: Some downstream builds have been working around this by building the fragments individually and excluding bcm.c. This change will break those workarounds but also remove the need for it. It should now be consistently possible to build BoringSSL without modifying the file list. Bug: 362664827 Change-Id: I933115c37843317a066e24a1092728c9afce35f5 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70689 Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- build.json | 148 ++++++++--------- crypto/fipsmodule/aes/{aes.c => aes.c.inc} | 0 .../aes/{aes_nohw.c => aes_nohw.c.inc} | 0 .../aes/{key_wrap.c => key_wrap.c.inc} | 0 .../{mode_wrappers.c => mode_wrappers.c.inc} | 0 crypto/fipsmodule/bcm.c | 150 +++++++++--------- crypto/fipsmodule/bn/{add.c => add.c.inc} | 0 .../bn/asm/{x86_64-gcc.c => x86_64-gcc.c.inc} | 0 crypto/fipsmodule/bn/{bn.c => bn.c.inc} | 0 crypto/fipsmodule/bn/{bytes.c => bytes.c.inc} | 0 crypto/fipsmodule/bn/{cmp.c => cmp.c.inc} | 0 crypto/fipsmodule/bn/{ctx.c => ctx.c.inc} | 0 crypto/fipsmodule/bn/{div.c => div.c.inc} | 0 .../bn/{div_extra.c => div_extra.c.inc} | 0 ...{exponentiation.c => exponentiation.c.inc} | 0 crypto/fipsmodule/bn/{gcd.c => gcd.c.inc} | 0 .../bn/{gcd_extra.c => gcd_extra.c.inc} | 0 .../bn/{generic.c => generic.c.inc} | 0 .../fipsmodule/bn/{jacobi.c => jacobi.c.inc} | 0 .../bn/{montgomery.c => montgomery.c.inc} | 0 ...{montgomery_inv.c => montgomery_inv.c.inc} | 0 crypto/fipsmodule/bn/{mul.c => mul.c.inc} | 0 crypto/fipsmodule/bn/{prime.c => prime.c.inc} | 0 .../fipsmodule/bn/{random.c => random.c.inc} | 0 .../bn/{rsaz_exp.c => rsaz_exp.c.inc} | 0 crypto/fipsmodule/bn/{shift.c => shift.c.inc} | 0 crypto/fipsmodule/bn/{sqrt.c => sqrt.c.inc} | 0 .../fipsmodule/cipher/{aead.c => aead.c.inc} | 0 .../cipher/{cipher.c => cipher.c.inc} | 0 .../cipher/{e_aes.c => e_aes.c.inc} | 0 .../cipher/{e_aesccm.c => e_aesccm.c.inc} | 0 crypto/fipsmodule/cmac/{cmac.c => cmac.c.inc} | 0 crypto/fipsmodule/dh/{check.c => check.c.inc} | 0 crypto/fipsmodule/dh/{dh.c => dh.c.inc} | 0 .../digest/{digest.c => digest.c.inc} | 0 .../digest/{digests.c => digests.c.inc} | 0 .../{digestsign.c => digestsign.c.inc} | 0 crypto/fipsmodule/ec/{ec.c => ec.c.inc} | 0 .../fipsmodule/ec/{ec_key.c => ec_key.c.inc} | 0 .../{ec_montgomery.c => ec_montgomery.c.inc} | 0 crypto/fipsmodule/ec/{felem.c => felem.c.inc} | 0 crypto/fipsmodule/ec/{oct.c => oct.c.inc} | 0 .../ec/{p224-64.c => p224-64.c.inc} | 0 .../ec/{p256-nistz.c => p256-nistz.c.inc} | 0 crypto/fipsmodule/ec/{p256.c => p256.c.inc} | 0 .../fipsmodule/ec/{scalar.c => scalar.c.inc} | 0 .../fipsmodule/ec/{simple.c => simple.c.inc} | 0 .../ec/{simple_mul.c => simple_mul.c.inc} | 0 crypto/fipsmodule/ec/{util.c => util.c.inc} | 0 crypto/fipsmodule/ec/{wnaf.c => wnaf.c.inc} | 0 crypto/fipsmodule/ecdh/{ecdh.c => ecdh.c.inc} | 0 .../fipsmodule/ecdsa/{ecdsa.c => ecdsa.c.inc} | 0 crypto/fipsmodule/hkdf/{hkdf.c => hkdf.c.inc} | 0 crypto/fipsmodule/hmac/{hmac.c => hmac.c.inc} | 0 crypto/fipsmodule/md4/{md4.c => md4.c.inc} | 0 crypto/fipsmodule/md5/{md5.c => md5.c.inc} | 0 crypto/fipsmodule/modes/{cbc.c => cbc.c.inc} | 0 crypto/fipsmodule/modes/{cfb.c => cfb.c.inc} | 0 crypto/fipsmodule/modes/{ctr.c => ctr.c.inc} | 0 crypto/fipsmodule/modes/{gcm.c => gcm.c.inc} | 0 .../modes/{gcm_nohw.c => gcm_nohw.c.inc} | 0 crypto/fipsmodule/modes/{ofb.c => ofb.c.inc} | 0 .../modes/{polyval.c => polyval.c.inc} | 0 .../rand/{ctrdrbg.c => ctrdrbg.c.inc} | 0 crypto/fipsmodule/rand/{rand.c => rand.c.inc} | 0 .../rsa/{blinding.c => blinding.c.inc} | 0 .../rsa/{padding.c => padding.c.inc} | 0 crypto/fipsmodule/rsa/{rsa.c => rsa.c.inc} | 0 .../rsa/{rsa_impl.c => rsa_impl.c.inc} | 0 .../self_check/{fips.c => fips.c.inc} | 0 .../{self_check.c => self_check.c.inc} | 0 ...ce_indicator.c => service_indicator.c.inc} | 0 crypto/fipsmodule/sha/{sha1.c => sha1.c.inc} | 0 .../fipsmodule/sha/{sha256.c => sha256.c.inc} | 0 .../fipsmodule/sha/{sha512.c => sha512.c.inc} | 0 crypto/fipsmodule/tls/{kdf.c => kdf.c.inc} | 0 gen/sources.bzl | 148 ++++++++--------- gen/sources.cmake | 148 ++++++++--------- gen/sources.gni | 148 ++++++++--------- gen/sources.json | 148 ++++++++--------- 80 files changed, 446 insertions(+), 444 deletions(-) rename crypto/fipsmodule/aes/{aes.c => aes.c.inc} (100%) rename crypto/fipsmodule/aes/{aes_nohw.c => aes_nohw.c.inc} (100%) rename crypto/fipsmodule/aes/{key_wrap.c => key_wrap.c.inc} (100%) rename crypto/fipsmodule/aes/{mode_wrappers.c => mode_wrappers.c.inc} (100%) rename crypto/fipsmodule/bn/{add.c => add.c.inc} (100%) rename crypto/fipsmodule/bn/asm/{x86_64-gcc.c => x86_64-gcc.c.inc} (100%) rename crypto/fipsmodule/bn/{bn.c => bn.c.inc} (100%) rename crypto/fipsmodule/bn/{bytes.c => bytes.c.inc} (100%) rename crypto/fipsmodule/bn/{cmp.c => cmp.c.inc} (100%) rename crypto/fipsmodule/bn/{ctx.c => ctx.c.inc} (100%) rename crypto/fipsmodule/bn/{div.c => div.c.inc} (100%) rename crypto/fipsmodule/bn/{div_extra.c => div_extra.c.inc} (100%) rename crypto/fipsmodule/bn/{exponentiation.c => exponentiation.c.inc} (100%) rename crypto/fipsmodule/bn/{gcd.c => gcd.c.inc} (100%) rename crypto/fipsmodule/bn/{gcd_extra.c => gcd_extra.c.inc} (100%) rename crypto/fipsmodule/bn/{generic.c => generic.c.inc} (100%) rename crypto/fipsmodule/bn/{jacobi.c => jacobi.c.inc} (100%) rename crypto/fipsmodule/bn/{montgomery.c => montgomery.c.inc} (100%) rename crypto/fipsmodule/bn/{montgomery_inv.c => montgomery_inv.c.inc} (100%) rename crypto/fipsmodule/bn/{mul.c => mul.c.inc} (100%) rename crypto/fipsmodule/bn/{prime.c => prime.c.inc} (100%) rename crypto/fipsmodule/bn/{random.c => random.c.inc} (100%) rename crypto/fipsmodule/bn/{rsaz_exp.c => rsaz_exp.c.inc} (100%) rename crypto/fipsmodule/bn/{shift.c => shift.c.inc} (100%) rename crypto/fipsmodule/bn/{sqrt.c => sqrt.c.inc} (100%) rename crypto/fipsmodule/cipher/{aead.c => aead.c.inc} (100%) rename crypto/fipsmodule/cipher/{cipher.c => cipher.c.inc} (100%) rename crypto/fipsmodule/cipher/{e_aes.c => e_aes.c.inc} (100%) rename crypto/fipsmodule/cipher/{e_aesccm.c => e_aesccm.c.inc} (100%) rename crypto/fipsmodule/cmac/{cmac.c => cmac.c.inc} (100%) rename crypto/fipsmodule/dh/{check.c => check.c.inc} (100%) rename crypto/fipsmodule/dh/{dh.c => dh.c.inc} (100%) rename crypto/fipsmodule/digest/{digest.c => digest.c.inc} (100%) rename crypto/fipsmodule/digest/{digests.c => digests.c.inc} (100%) rename crypto/fipsmodule/digestsign/{digestsign.c => digestsign.c.inc} (100%) rename crypto/fipsmodule/ec/{ec.c => ec.c.inc} (100%) rename crypto/fipsmodule/ec/{ec_key.c => ec_key.c.inc} (100%) rename crypto/fipsmodule/ec/{ec_montgomery.c => ec_montgomery.c.inc} (100%) rename crypto/fipsmodule/ec/{felem.c => felem.c.inc} (100%) rename crypto/fipsmodule/ec/{oct.c => oct.c.inc} (100%) rename crypto/fipsmodule/ec/{p224-64.c => p224-64.c.inc} (100%) rename crypto/fipsmodule/ec/{p256-nistz.c => p256-nistz.c.inc} (100%) rename crypto/fipsmodule/ec/{p256.c => p256.c.inc} (100%) rename crypto/fipsmodule/ec/{scalar.c => scalar.c.inc} (100%) rename crypto/fipsmodule/ec/{simple.c => simple.c.inc} (100%) rename crypto/fipsmodule/ec/{simple_mul.c => simple_mul.c.inc} (100%) rename crypto/fipsmodule/ec/{util.c => util.c.inc} (100%) rename crypto/fipsmodule/ec/{wnaf.c => wnaf.c.inc} (100%) rename crypto/fipsmodule/ecdh/{ecdh.c => ecdh.c.inc} (100%) rename crypto/fipsmodule/ecdsa/{ecdsa.c => ecdsa.c.inc} (100%) rename crypto/fipsmodule/hkdf/{hkdf.c => hkdf.c.inc} (100%) rename crypto/fipsmodule/hmac/{hmac.c => hmac.c.inc} (100%) rename crypto/fipsmodule/md4/{md4.c => md4.c.inc} (100%) rename crypto/fipsmodule/md5/{md5.c => md5.c.inc} (100%) rename crypto/fipsmodule/modes/{cbc.c => cbc.c.inc} (100%) rename crypto/fipsmodule/modes/{cfb.c => cfb.c.inc} (100%) rename crypto/fipsmodule/modes/{ctr.c => ctr.c.inc} (100%) rename crypto/fipsmodule/modes/{gcm.c => gcm.c.inc} (100%) rename crypto/fipsmodule/modes/{gcm_nohw.c => gcm_nohw.c.inc} (100%) rename crypto/fipsmodule/modes/{ofb.c => ofb.c.inc} (100%) rename crypto/fipsmodule/modes/{polyval.c => polyval.c.inc} (100%) rename crypto/fipsmodule/rand/{ctrdrbg.c => ctrdrbg.c.inc} (100%) rename crypto/fipsmodule/rand/{rand.c => rand.c.inc} (100%) rename crypto/fipsmodule/rsa/{blinding.c => blinding.c.inc} (100%) rename crypto/fipsmodule/rsa/{padding.c => padding.c.inc} (100%) rename crypto/fipsmodule/rsa/{rsa.c => rsa.c.inc} (100%) rename crypto/fipsmodule/rsa/{rsa_impl.c => rsa_impl.c.inc} (100%) rename crypto/fipsmodule/self_check/{fips.c => fips.c.inc} (100%) rename crypto/fipsmodule/self_check/{self_check.c => self_check.c.inc} (100%) rename crypto/fipsmodule/service_indicator/{service_indicator.c => service_indicator.c.inc} (100%) rename crypto/fipsmodule/sha/{sha1.c => sha1.c.inc} (100%) rename crypto/fipsmodule/sha/{sha256.c => sha256.c.inc} (100%) rename crypto/fipsmodule/sha/{sha512.c => sha512.c.inc} (100%) rename crypto/fipsmodule/tls/{kdf.c => kdf.c.inc} (100%) diff --git a/build.json b/build.json index 4b80dfd4d8..9ea699e70a 100644 --- a/build.json +++ b/build.json @@ -16,80 +16,80 @@ "crypto/fipsmodule/bcm.c" ], "internal_hdrs": [ - "crypto/fipsmodule/aes/aes.c", - "crypto/fipsmodule/aes/aes_nohw.c", - "crypto/fipsmodule/aes/key_wrap.c", - "crypto/fipsmodule/aes/mode_wrappers.c", - "crypto/fipsmodule/bn/add.c", - "crypto/fipsmodule/bn/asm/x86_64-gcc.c", - "crypto/fipsmodule/bn/bn.c", - "crypto/fipsmodule/bn/bytes.c", - "crypto/fipsmodule/bn/cmp.c", - "crypto/fipsmodule/bn/ctx.c", - "crypto/fipsmodule/bn/div.c", - "crypto/fipsmodule/bn/div_extra.c", - "crypto/fipsmodule/bn/exponentiation.c", - "crypto/fipsmodule/bn/gcd.c", - "crypto/fipsmodule/bn/gcd_extra.c", - "crypto/fipsmodule/bn/generic.c", - "crypto/fipsmodule/bn/jacobi.c", - "crypto/fipsmodule/bn/montgomery.c", - "crypto/fipsmodule/bn/montgomery_inv.c", - "crypto/fipsmodule/bn/mul.c", - "crypto/fipsmodule/bn/prime.c", - "crypto/fipsmodule/bn/random.c", - "crypto/fipsmodule/bn/rsaz_exp.c", - "crypto/fipsmodule/bn/shift.c", - "crypto/fipsmodule/bn/sqrt.c", - "crypto/fipsmodule/cipher/aead.c", - "crypto/fipsmodule/cipher/cipher.c", - "crypto/fipsmodule/cipher/e_aes.c", - "crypto/fipsmodule/cipher/e_aesccm.c", - "crypto/fipsmodule/cmac/cmac.c", - "crypto/fipsmodule/dh/check.c", - "crypto/fipsmodule/dh/dh.c", - "crypto/fipsmodule/digest/digest.c", - "crypto/fipsmodule/digest/digests.c", - "crypto/fipsmodule/digestsign/digestsign.c", - "crypto/fipsmodule/ec/ec.c", - "crypto/fipsmodule/ec/ec_key.c", - "crypto/fipsmodule/ec/ec_montgomery.c", - "crypto/fipsmodule/ec/felem.c", - "crypto/fipsmodule/ec/oct.c", - "crypto/fipsmodule/ec/p224-64.c", - "crypto/fipsmodule/ec/p256-nistz.c", - "crypto/fipsmodule/ec/p256.c", - "crypto/fipsmodule/ec/scalar.c", - "crypto/fipsmodule/ec/simple.c", - "crypto/fipsmodule/ec/simple_mul.c", - "crypto/fipsmodule/ec/util.c", - "crypto/fipsmodule/ec/wnaf.c", - "crypto/fipsmodule/ecdh/ecdh.c", - "crypto/fipsmodule/ecdsa/ecdsa.c", - "crypto/fipsmodule/hkdf/hkdf.c", - "crypto/fipsmodule/hmac/hmac.c", - "crypto/fipsmodule/md4/md4.c", - "crypto/fipsmodule/md5/md5.c", - "crypto/fipsmodule/modes/cbc.c", - "crypto/fipsmodule/modes/cfb.c", - "crypto/fipsmodule/modes/ctr.c", - "crypto/fipsmodule/modes/gcm.c", - "crypto/fipsmodule/modes/gcm_nohw.c", - "crypto/fipsmodule/modes/ofb.c", - "crypto/fipsmodule/modes/polyval.c", - "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rsa/blinding.c", - "crypto/fipsmodule/rsa/padding.c", - "crypto/fipsmodule/rsa/rsa.c", - "crypto/fipsmodule/rsa/rsa_impl.c", - "crypto/fipsmodule/self_check/fips.c", - "crypto/fipsmodule/self_check/self_check.c", - "crypto/fipsmodule/service_indicator/service_indicator.c", - "crypto/fipsmodule/sha/sha1.c", - "crypto/fipsmodule/sha/sha256.c", - "crypto/fipsmodule/sha/sha512.c", - "crypto/fipsmodule/tls/kdf.c" + "crypto/fipsmodule/aes/aes.c.inc", + "crypto/fipsmodule/aes/aes_nohw.c.inc", + "crypto/fipsmodule/aes/key_wrap.c.inc", + "crypto/fipsmodule/aes/mode_wrappers.c.inc", + "crypto/fipsmodule/bn/add.c.inc", + "crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc", + "crypto/fipsmodule/bn/bn.c.inc", + "crypto/fipsmodule/bn/bytes.c.inc", + "crypto/fipsmodule/bn/cmp.c.inc", + "crypto/fipsmodule/bn/ctx.c.inc", + "crypto/fipsmodule/bn/div.c.inc", + "crypto/fipsmodule/bn/div_extra.c.inc", + "crypto/fipsmodule/bn/exponentiation.c.inc", + "crypto/fipsmodule/bn/gcd.c.inc", + "crypto/fipsmodule/bn/gcd_extra.c.inc", + "crypto/fipsmodule/bn/generic.c.inc", + "crypto/fipsmodule/bn/jacobi.c.inc", + "crypto/fipsmodule/bn/montgomery.c.inc", + "crypto/fipsmodule/bn/montgomery_inv.c.inc", + "crypto/fipsmodule/bn/mul.c.inc", + "crypto/fipsmodule/bn/prime.c.inc", + "crypto/fipsmodule/bn/random.c.inc", + "crypto/fipsmodule/bn/rsaz_exp.c.inc", + "crypto/fipsmodule/bn/shift.c.inc", + "crypto/fipsmodule/bn/sqrt.c.inc", + "crypto/fipsmodule/cipher/aead.c.inc", + "crypto/fipsmodule/cipher/cipher.c.inc", + "crypto/fipsmodule/cipher/e_aes.c.inc", + "crypto/fipsmodule/cipher/e_aesccm.c.inc", + "crypto/fipsmodule/cmac/cmac.c.inc", + "crypto/fipsmodule/dh/check.c.inc", + "crypto/fipsmodule/dh/dh.c.inc", + "crypto/fipsmodule/digest/digest.c.inc", + "crypto/fipsmodule/digest/digests.c.inc", + "crypto/fipsmodule/digestsign/digestsign.c.inc", + "crypto/fipsmodule/ec/ec.c.inc", + "crypto/fipsmodule/ec/ec_key.c.inc", + "crypto/fipsmodule/ec/ec_montgomery.c.inc", + "crypto/fipsmodule/ec/felem.c.inc", + "crypto/fipsmodule/ec/oct.c.inc", + "crypto/fipsmodule/ec/p224-64.c.inc", + "crypto/fipsmodule/ec/p256-nistz.c.inc", + "crypto/fipsmodule/ec/p256.c.inc", + "crypto/fipsmodule/ec/scalar.c.inc", + "crypto/fipsmodule/ec/simple.c.inc", + "crypto/fipsmodule/ec/simple_mul.c.inc", + "crypto/fipsmodule/ec/util.c.inc", + "crypto/fipsmodule/ec/wnaf.c.inc", + "crypto/fipsmodule/ecdh/ecdh.c.inc", + "crypto/fipsmodule/ecdsa/ecdsa.c.inc", + "crypto/fipsmodule/hkdf/hkdf.c.inc", + "crypto/fipsmodule/hmac/hmac.c.inc", + "crypto/fipsmodule/md4/md4.c.inc", + "crypto/fipsmodule/md5/md5.c.inc", + "crypto/fipsmodule/modes/cbc.c.inc", + "crypto/fipsmodule/modes/cfb.c.inc", + "crypto/fipsmodule/modes/ctr.c.inc", + "crypto/fipsmodule/modes/gcm.c.inc", + "crypto/fipsmodule/modes/gcm_nohw.c.inc", + "crypto/fipsmodule/modes/ofb.c.inc", + "crypto/fipsmodule/modes/polyval.c.inc", + "crypto/fipsmodule/rand/ctrdrbg.c.inc", + "crypto/fipsmodule/rand/rand.c.inc", + "crypto/fipsmodule/rsa/blinding.c.inc", + "crypto/fipsmodule/rsa/padding.c.inc", + "crypto/fipsmodule/rsa/rsa.c.inc", + "crypto/fipsmodule/rsa/rsa_impl.c.inc", + "crypto/fipsmodule/self_check/fips.c.inc", + "crypto/fipsmodule/self_check/self_check.c.inc", + "crypto/fipsmodule/service_indicator/service_indicator.c.inc", + "crypto/fipsmodule/sha/sha1.c.inc", + "crypto/fipsmodule/sha/sha256.c.inc", + "crypto/fipsmodule/sha/sha512.c.inc", + "crypto/fipsmodule/tls/kdf.c.inc" ], "asm": [ "third_party/fiat/asm/fiat_p256_adx_mul.S", diff --git a/crypto/fipsmodule/aes/aes.c b/crypto/fipsmodule/aes/aes.c.inc similarity index 100% rename from crypto/fipsmodule/aes/aes.c rename to crypto/fipsmodule/aes/aes.c.inc diff --git a/crypto/fipsmodule/aes/aes_nohw.c b/crypto/fipsmodule/aes/aes_nohw.c.inc similarity index 100% rename from crypto/fipsmodule/aes/aes_nohw.c rename to crypto/fipsmodule/aes/aes_nohw.c.inc diff --git a/crypto/fipsmodule/aes/key_wrap.c b/crypto/fipsmodule/aes/key_wrap.c.inc similarity index 100% rename from crypto/fipsmodule/aes/key_wrap.c rename to crypto/fipsmodule/aes/key_wrap.c.inc diff --git a/crypto/fipsmodule/aes/mode_wrappers.c b/crypto/fipsmodule/aes/mode_wrappers.c.inc similarity index 100% rename from crypto/fipsmodule/aes/mode_wrappers.c rename to crypto/fipsmodule/aes/mode_wrappers.c.inc diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index 4ec382bf33..fd67825712 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -31,80 +31,82 @@ #include "bcm_interface.h" #include "../internal.h" -#include "aes/aes.c" -#include "aes/aes_nohw.c" -#include "aes/key_wrap.c" -#include "aes/mode_wrappers.c" -#include "bn/add.c" -#include "bn/asm/x86_64-gcc.c" -#include "bn/bn.c" -#include "bn/bytes.c" -#include "bn/cmp.c" -#include "bn/ctx.c" -#include "bn/div.c" -#include "bn/div_extra.c" -#include "bn/exponentiation.c" -#include "bn/gcd.c" -#include "bn/gcd_extra.c" -#include "bn/generic.c" -#include "bn/jacobi.c" -#include "bn/montgomery.c" -#include "bn/montgomery_inv.c" -#include "bn/mul.c" -#include "bn/prime.c" -#include "bn/random.c" -#include "bn/rsaz_exp.c" -#include "bn/shift.c" -#include "bn/sqrt.c" -#include "cipher/aead.c" -#include "cipher/cipher.c" -#include "cipher/e_aes.c" -#include "cipher/e_aesccm.c" -#include "cmac/cmac.c" -#include "dh/check.c" -#include "dh/dh.c" -#include "digest/digest.c" -#include "digest/digests.c" -#include "digestsign/digestsign.c" -#include "ecdh/ecdh.c" -#include "ecdsa/ecdsa.c" -#include "ec/ec.c" -#include "ec/ec_key.c" -#include "ec/ec_montgomery.c" -#include "ec/felem.c" -#include "ec/oct.c" -#include "ec/p224-64.c" -#include "ec/p256.c" -#include "ec/p256-nistz.c" -#include "ec/scalar.c" -#include "ec/simple.c" -#include "ec/simple_mul.c" -#include "ec/util.c" -#include "ec/wnaf.c" -#include "hkdf/hkdf.c" -#include "hmac/hmac.c" -#include "md4/md4.c" -#include "md5/md5.c" -#include "modes/cbc.c" -#include "modes/cfb.c" -#include "modes/ctr.c" -#include "modes/gcm.c" -#include "modes/gcm_nohw.c" -#include "modes/ofb.c" -#include "modes/polyval.c" -#include "rand/ctrdrbg.c" -#include "rand/rand.c" -#include "rsa/blinding.c" -#include "rsa/padding.c" -#include "rsa/rsa.c" -#include "rsa/rsa_impl.c" -#include "self_check/fips.c" -#include "self_check/self_check.c" -#include "service_indicator/service_indicator.c" -#include "sha/sha1.c" -#include "sha/sha256.c" -#include "sha/sha512.c" -#include "tls/kdf.c" +// TODO(crbug.com/362530616): When delocate is removed, build these files as +// separate compilation units again. +#include "aes/aes.c.inc" +#include "aes/aes_nohw.c.inc" +#include "aes/key_wrap.c.inc" +#include "aes/mode_wrappers.c.inc" +#include "bn/add.c.inc" +#include "bn/asm/x86_64-gcc.c.inc" +#include "bn/bn.c.inc" +#include "bn/bytes.c.inc" +#include "bn/cmp.c.inc" +#include "bn/ctx.c.inc" +#include "bn/div.c.inc" +#include "bn/div_extra.c.inc" +#include "bn/exponentiation.c.inc" +#include "bn/gcd.c.inc" +#include "bn/gcd_extra.c.inc" +#include "bn/generic.c.inc" +#include "bn/jacobi.c.inc" +#include "bn/montgomery.c.inc" +#include "bn/montgomery_inv.c.inc" +#include "bn/mul.c.inc" +#include "bn/prime.c.inc" +#include "bn/random.c.inc" +#include "bn/rsaz_exp.c.inc" +#include "bn/shift.c.inc" +#include "bn/sqrt.c.inc" +#include "cipher/aead.c.inc" +#include "cipher/cipher.c.inc" +#include "cipher/e_aes.c.inc" +#include "cipher/e_aesccm.c.inc" +#include "cmac/cmac.c.inc" +#include "dh/check.c.inc" +#include "dh/dh.c.inc" +#include "digest/digest.c.inc" +#include "digest/digests.c.inc" +#include "digestsign/digestsign.c.inc" +#include "ecdh/ecdh.c.inc" +#include "ecdsa/ecdsa.c.inc" +#include "ec/ec.c.inc" +#include "ec/ec_key.c.inc" +#include "ec/ec_montgomery.c.inc" +#include "ec/felem.c.inc" +#include "ec/oct.c.inc" +#include "ec/p224-64.c.inc" +#include "ec/p256.c.inc" +#include "ec/p256-nistz.c.inc" +#include "ec/scalar.c.inc" +#include "ec/simple.c.inc" +#include "ec/simple_mul.c.inc" +#include "ec/util.c.inc" +#include "ec/wnaf.c.inc" +#include "hkdf/hkdf.c.inc" +#include "hmac/hmac.c.inc" +#include "md4/md4.c.inc" +#include "md5/md5.c.inc" +#include "modes/cbc.c.inc" +#include "modes/cfb.c.inc" +#include "modes/ctr.c.inc" +#include "modes/gcm.c.inc" +#include "modes/gcm_nohw.c.inc" +#include "modes/ofb.c.inc" +#include "modes/polyval.c.inc" +#include "rand/ctrdrbg.c.inc" +#include "rand/rand.c.inc" +#include "rsa/blinding.c.inc" +#include "rsa/padding.c.inc" +#include "rsa/rsa.c.inc" +#include "rsa/rsa_impl.c.inc" +#include "self_check/fips.c.inc" +#include "self_check/self_check.c.inc" +#include "service_indicator/service_indicator.c.inc" +#include "sha/sha1.c.inc" +#include "sha/sha256.c.inc" +#include "sha/sha512.c.inc" +#include "tls/kdf.c.inc" #if defined(BORINGSSL_FIPS) diff --git a/crypto/fipsmodule/bn/add.c b/crypto/fipsmodule/bn/add.c.inc similarity index 100% rename from crypto/fipsmodule/bn/add.c rename to crypto/fipsmodule/bn/add.c.inc diff --git a/crypto/fipsmodule/bn/asm/x86_64-gcc.c b/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc similarity index 100% rename from crypto/fipsmodule/bn/asm/x86_64-gcc.c rename to crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc diff --git a/crypto/fipsmodule/bn/bn.c b/crypto/fipsmodule/bn/bn.c.inc similarity index 100% rename from crypto/fipsmodule/bn/bn.c rename to crypto/fipsmodule/bn/bn.c.inc diff --git a/crypto/fipsmodule/bn/bytes.c b/crypto/fipsmodule/bn/bytes.c.inc similarity index 100% rename from crypto/fipsmodule/bn/bytes.c rename to crypto/fipsmodule/bn/bytes.c.inc diff --git a/crypto/fipsmodule/bn/cmp.c b/crypto/fipsmodule/bn/cmp.c.inc similarity index 100% rename from crypto/fipsmodule/bn/cmp.c rename to crypto/fipsmodule/bn/cmp.c.inc diff --git a/crypto/fipsmodule/bn/ctx.c b/crypto/fipsmodule/bn/ctx.c.inc similarity index 100% rename from crypto/fipsmodule/bn/ctx.c rename to crypto/fipsmodule/bn/ctx.c.inc diff --git a/crypto/fipsmodule/bn/div.c b/crypto/fipsmodule/bn/div.c.inc similarity index 100% rename from crypto/fipsmodule/bn/div.c rename to crypto/fipsmodule/bn/div.c.inc diff --git a/crypto/fipsmodule/bn/div_extra.c b/crypto/fipsmodule/bn/div_extra.c.inc similarity index 100% rename from crypto/fipsmodule/bn/div_extra.c rename to crypto/fipsmodule/bn/div_extra.c.inc diff --git a/crypto/fipsmodule/bn/exponentiation.c b/crypto/fipsmodule/bn/exponentiation.c.inc similarity index 100% rename from crypto/fipsmodule/bn/exponentiation.c rename to crypto/fipsmodule/bn/exponentiation.c.inc diff --git a/crypto/fipsmodule/bn/gcd.c b/crypto/fipsmodule/bn/gcd.c.inc similarity index 100% rename from crypto/fipsmodule/bn/gcd.c rename to crypto/fipsmodule/bn/gcd.c.inc diff --git a/crypto/fipsmodule/bn/gcd_extra.c b/crypto/fipsmodule/bn/gcd_extra.c.inc similarity index 100% rename from crypto/fipsmodule/bn/gcd_extra.c rename to crypto/fipsmodule/bn/gcd_extra.c.inc diff --git a/crypto/fipsmodule/bn/generic.c b/crypto/fipsmodule/bn/generic.c.inc similarity index 100% rename from crypto/fipsmodule/bn/generic.c rename to crypto/fipsmodule/bn/generic.c.inc diff --git a/crypto/fipsmodule/bn/jacobi.c b/crypto/fipsmodule/bn/jacobi.c.inc similarity index 100% rename from crypto/fipsmodule/bn/jacobi.c rename to crypto/fipsmodule/bn/jacobi.c.inc diff --git a/crypto/fipsmodule/bn/montgomery.c b/crypto/fipsmodule/bn/montgomery.c.inc similarity index 100% rename from crypto/fipsmodule/bn/montgomery.c rename to crypto/fipsmodule/bn/montgomery.c.inc diff --git a/crypto/fipsmodule/bn/montgomery_inv.c b/crypto/fipsmodule/bn/montgomery_inv.c.inc similarity index 100% rename from crypto/fipsmodule/bn/montgomery_inv.c rename to crypto/fipsmodule/bn/montgomery_inv.c.inc diff --git a/crypto/fipsmodule/bn/mul.c b/crypto/fipsmodule/bn/mul.c.inc similarity index 100% rename from crypto/fipsmodule/bn/mul.c rename to crypto/fipsmodule/bn/mul.c.inc diff --git a/crypto/fipsmodule/bn/prime.c b/crypto/fipsmodule/bn/prime.c.inc similarity index 100% rename from crypto/fipsmodule/bn/prime.c rename to crypto/fipsmodule/bn/prime.c.inc diff --git a/crypto/fipsmodule/bn/random.c b/crypto/fipsmodule/bn/random.c.inc similarity index 100% rename from crypto/fipsmodule/bn/random.c rename to crypto/fipsmodule/bn/random.c.inc diff --git a/crypto/fipsmodule/bn/rsaz_exp.c b/crypto/fipsmodule/bn/rsaz_exp.c.inc similarity index 100% rename from crypto/fipsmodule/bn/rsaz_exp.c rename to crypto/fipsmodule/bn/rsaz_exp.c.inc diff --git a/crypto/fipsmodule/bn/shift.c b/crypto/fipsmodule/bn/shift.c.inc similarity index 100% rename from crypto/fipsmodule/bn/shift.c rename to crypto/fipsmodule/bn/shift.c.inc diff --git a/crypto/fipsmodule/bn/sqrt.c b/crypto/fipsmodule/bn/sqrt.c.inc similarity index 100% rename from crypto/fipsmodule/bn/sqrt.c rename to crypto/fipsmodule/bn/sqrt.c.inc diff --git a/crypto/fipsmodule/cipher/aead.c b/crypto/fipsmodule/cipher/aead.c.inc similarity index 100% rename from crypto/fipsmodule/cipher/aead.c rename to crypto/fipsmodule/cipher/aead.c.inc diff --git a/crypto/fipsmodule/cipher/cipher.c b/crypto/fipsmodule/cipher/cipher.c.inc similarity index 100% rename from crypto/fipsmodule/cipher/cipher.c rename to crypto/fipsmodule/cipher/cipher.c.inc diff --git a/crypto/fipsmodule/cipher/e_aes.c b/crypto/fipsmodule/cipher/e_aes.c.inc similarity index 100% rename from crypto/fipsmodule/cipher/e_aes.c rename to crypto/fipsmodule/cipher/e_aes.c.inc diff --git a/crypto/fipsmodule/cipher/e_aesccm.c b/crypto/fipsmodule/cipher/e_aesccm.c.inc similarity index 100% rename from crypto/fipsmodule/cipher/e_aesccm.c rename to crypto/fipsmodule/cipher/e_aesccm.c.inc diff --git a/crypto/fipsmodule/cmac/cmac.c b/crypto/fipsmodule/cmac/cmac.c.inc similarity index 100% rename from crypto/fipsmodule/cmac/cmac.c rename to crypto/fipsmodule/cmac/cmac.c.inc diff --git a/crypto/fipsmodule/dh/check.c b/crypto/fipsmodule/dh/check.c.inc similarity index 100% rename from crypto/fipsmodule/dh/check.c rename to crypto/fipsmodule/dh/check.c.inc diff --git a/crypto/fipsmodule/dh/dh.c b/crypto/fipsmodule/dh/dh.c.inc similarity index 100% rename from crypto/fipsmodule/dh/dh.c rename to crypto/fipsmodule/dh/dh.c.inc diff --git a/crypto/fipsmodule/digest/digest.c b/crypto/fipsmodule/digest/digest.c.inc similarity index 100% rename from crypto/fipsmodule/digest/digest.c rename to crypto/fipsmodule/digest/digest.c.inc diff --git a/crypto/fipsmodule/digest/digests.c b/crypto/fipsmodule/digest/digests.c.inc similarity index 100% rename from crypto/fipsmodule/digest/digests.c rename to crypto/fipsmodule/digest/digests.c.inc diff --git a/crypto/fipsmodule/digestsign/digestsign.c b/crypto/fipsmodule/digestsign/digestsign.c.inc similarity index 100% rename from crypto/fipsmodule/digestsign/digestsign.c rename to crypto/fipsmodule/digestsign/digestsign.c.inc diff --git a/crypto/fipsmodule/ec/ec.c b/crypto/fipsmodule/ec/ec.c.inc similarity index 100% rename from crypto/fipsmodule/ec/ec.c rename to crypto/fipsmodule/ec/ec.c.inc diff --git a/crypto/fipsmodule/ec/ec_key.c b/crypto/fipsmodule/ec/ec_key.c.inc similarity index 100% rename from crypto/fipsmodule/ec/ec_key.c rename to crypto/fipsmodule/ec/ec_key.c.inc diff --git a/crypto/fipsmodule/ec/ec_montgomery.c b/crypto/fipsmodule/ec/ec_montgomery.c.inc similarity index 100% rename from crypto/fipsmodule/ec/ec_montgomery.c rename to crypto/fipsmodule/ec/ec_montgomery.c.inc diff --git a/crypto/fipsmodule/ec/felem.c b/crypto/fipsmodule/ec/felem.c.inc similarity index 100% rename from crypto/fipsmodule/ec/felem.c rename to crypto/fipsmodule/ec/felem.c.inc diff --git a/crypto/fipsmodule/ec/oct.c b/crypto/fipsmodule/ec/oct.c.inc similarity index 100% rename from crypto/fipsmodule/ec/oct.c rename to crypto/fipsmodule/ec/oct.c.inc diff --git a/crypto/fipsmodule/ec/p224-64.c b/crypto/fipsmodule/ec/p224-64.c.inc similarity index 100% rename from crypto/fipsmodule/ec/p224-64.c rename to crypto/fipsmodule/ec/p224-64.c.inc diff --git a/crypto/fipsmodule/ec/p256-nistz.c b/crypto/fipsmodule/ec/p256-nistz.c.inc similarity index 100% rename from crypto/fipsmodule/ec/p256-nistz.c rename to crypto/fipsmodule/ec/p256-nistz.c.inc diff --git a/crypto/fipsmodule/ec/p256.c b/crypto/fipsmodule/ec/p256.c.inc similarity index 100% rename from crypto/fipsmodule/ec/p256.c rename to crypto/fipsmodule/ec/p256.c.inc diff --git a/crypto/fipsmodule/ec/scalar.c b/crypto/fipsmodule/ec/scalar.c.inc similarity index 100% rename from crypto/fipsmodule/ec/scalar.c rename to crypto/fipsmodule/ec/scalar.c.inc diff --git a/crypto/fipsmodule/ec/simple.c b/crypto/fipsmodule/ec/simple.c.inc similarity index 100% rename from crypto/fipsmodule/ec/simple.c rename to crypto/fipsmodule/ec/simple.c.inc diff --git a/crypto/fipsmodule/ec/simple_mul.c b/crypto/fipsmodule/ec/simple_mul.c.inc similarity index 100% rename from crypto/fipsmodule/ec/simple_mul.c rename to crypto/fipsmodule/ec/simple_mul.c.inc diff --git a/crypto/fipsmodule/ec/util.c b/crypto/fipsmodule/ec/util.c.inc similarity index 100% rename from crypto/fipsmodule/ec/util.c rename to crypto/fipsmodule/ec/util.c.inc diff --git a/crypto/fipsmodule/ec/wnaf.c b/crypto/fipsmodule/ec/wnaf.c.inc similarity index 100% rename from crypto/fipsmodule/ec/wnaf.c rename to crypto/fipsmodule/ec/wnaf.c.inc diff --git a/crypto/fipsmodule/ecdh/ecdh.c b/crypto/fipsmodule/ecdh/ecdh.c.inc similarity index 100% rename from crypto/fipsmodule/ecdh/ecdh.c rename to crypto/fipsmodule/ecdh/ecdh.c.inc diff --git a/crypto/fipsmodule/ecdsa/ecdsa.c b/crypto/fipsmodule/ecdsa/ecdsa.c.inc similarity index 100% rename from crypto/fipsmodule/ecdsa/ecdsa.c rename to crypto/fipsmodule/ecdsa/ecdsa.c.inc diff --git a/crypto/fipsmodule/hkdf/hkdf.c b/crypto/fipsmodule/hkdf/hkdf.c.inc similarity index 100% rename from crypto/fipsmodule/hkdf/hkdf.c rename to crypto/fipsmodule/hkdf/hkdf.c.inc diff --git a/crypto/fipsmodule/hmac/hmac.c b/crypto/fipsmodule/hmac/hmac.c.inc similarity index 100% rename from crypto/fipsmodule/hmac/hmac.c rename to crypto/fipsmodule/hmac/hmac.c.inc diff --git a/crypto/fipsmodule/md4/md4.c b/crypto/fipsmodule/md4/md4.c.inc similarity index 100% rename from crypto/fipsmodule/md4/md4.c rename to crypto/fipsmodule/md4/md4.c.inc diff --git a/crypto/fipsmodule/md5/md5.c b/crypto/fipsmodule/md5/md5.c.inc similarity index 100% rename from crypto/fipsmodule/md5/md5.c rename to crypto/fipsmodule/md5/md5.c.inc diff --git a/crypto/fipsmodule/modes/cbc.c b/crypto/fipsmodule/modes/cbc.c.inc similarity index 100% rename from crypto/fipsmodule/modes/cbc.c rename to crypto/fipsmodule/modes/cbc.c.inc diff --git a/crypto/fipsmodule/modes/cfb.c b/crypto/fipsmodule/modes/cfb.c.inc similarity index 100% rename from crypto/fipsmodule/modes/cfb.c rename to crypto/fipsmodule/modes/cfb.c.inc diff --git a/crypto/fipsmodule/modes/ctr.c b/crypto/fipsmodule/modes/ctr.c.inc similarity index 100% rename from crypto/fipsmodule/modes/ctr.c rename to crypto/fipsmodule/modes/ctr.c.inc diff --git a/crypto/fipsmodule/modes/gcm.c b/crypto/fipsmodule/modes/gcm.c.inc similarity index 100% rename from crypto/fipsmodule/modes/gcm.c rename to crypto/fipsmodule/modes/gcm.c.inc diff --git a/crypto/fipsmodule/modes/gcm_nohw.c b/crypto/fipsmodule/modes/gcm_nohw.c.inc similarity index 100% rename from crypto/fipsmodule/modes/gcm_nohw.c rename to crypto/fipsmodule/modes/gcm_nohw.c.inc diff --git a/crypto/fipsmodule/modes/ofb.c b/crypto/fipsmodule/modes/ofb.c.inc similarity index 100% rename from crypto/fipsmodule/modes/ofb.c rename to crypto/fipsmodule/modes/ofb.c.inc diff --git a/crypto/fipsmodule/modes/polyval.c b/crypto/fipsmodule/modes/polyval.c.inc similarity index 100% rename from crypto/fipsmodule/modes/polyval.c rename to crypto/fipsmodule/modes/polyval.c.inc diff --git a/crypto/fipsmodule/rand/ctrdrbg.c b/crypto/fipsmodule/rand/ctrdrbg.c.inc similarity index 100% rename from crypto/fipsmodule/rand/ctrdrbg.c rename to crypto/fipsmodule/rand/ctrdrbg.c.inc diff --git a/crypto/fipsmodule/rand/rand.c b/crypto/fipsmodule/rand/rand.c.inc similarity index 100% rename from crypto/fipsmodule/rand/rand.c rename to crypto/fipsmodule/rand/rand.c.inc diff --git a/crypto/fipsmodule/rsa/blinding.c b/crypto/fipsmodule/rsa/blinding.c.inc similarity index 100% rename from crypto/fipsmodule/rsa/blinding.c rename to crypto/fipsmodule/rsa/blinding.c.inc diff --git a/crypto/fipsmodule/rsa/padding.c b/crypto/fipsmodule/rsa/padding.c.inc similarity index 100% rename from crypto/fipsmodule/rsa/padding.c rename to crypto/fipsmodule/rsa/padding.c.inc diff --git a/crypto/fipsmodule/rsa/rsa.c b/crypto/fipsmodule/rsa/rsa.c.inc similarity index 100% rename from crypto/fipsmodule/rsa/rsa.c rename to crypto/fipsmodule/rsa/rsa.c.inc diff --git a/crypto/fipsmodule/rsa/rsa_impl.c b/crypto/fipsmodule/rsa/rsa_impl.c.inc similarity index 100% rename from crypto/fipsmodule/rsa/rsa_impl.c rename to crypto/fipsmodule/rsa/rsa_impl.c.inc diff --git a/crypto/fipsmodule/self_check/fips.c b/crypto/fipsmodule/self_check/fips.c.inc similarity index 100% rename from crypto/fipsmodule/self_check/fips.c rename to crypto/fipsmodule/self_check/fips.c.inc diff --git a/crypto/fipsmodule/self_check/self_check.c b/crypto/fipsmodule/self_check/self_check.c.inc similarity index 100% rename from crypto/fipsmodule/self_check/self_check.c rename to crypto/fipsmodule/self_check/self_check.c.inc diff --git a/crypto/fipsmodule/service_indicator/service_indicator.c b/crypto/fipsmodule/service_indicator/service_indicator.c.inc similarity index 100% rename from crypto/fipsmodule/service_indicator/service_indicator.c rename to crypto/fipsmodule/service_indicator/service_indicator.c.inc diff --git a/crypto/fipsmodule/sha/sha1.c b/crypto/fipsmodule/sha/sha1.c.inc similarity index 100% rename from crypto/fipsmodule/sha/sha1.c rename to crypto/fipsmodule/sha/sha1.c.inc diff --git a/crypto/fipsmodule/sha/sha256.c b/crypto/fipsmodule/sha/sha256.c.inc similarity index 100% rename from crypto/fipsmodule/sha/sha256.c rename to crypto/fipsmodule/sha/sha256.c.inc diff --git a/crypto/fipsmodule/sha/sha512.c b/crypto/fipsmodule/sha/sha512.c.inc similarity index 100% rename from crypto/fipsmodule/sha/sha512.c rename to crypto/fipsmodule/sha/sha512.c.inc diff --git a/crypto/fipsmodule/tls/kdf.c b/crypto/fipsmodule/tls/kdf.c.inc similarity index 100% rename from crypto/fipsmodule/tls/kdf.c rename to crypto/fipsmodule/tls/kdf.c.inc diff --git a/gen/sources.bzl b/gen/sources.bzl index e1b23601b0..8ea8f744d4 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -19,80 +19,80 @@ bcm_sources = [ ] bcm_internal_headers = [ - "crypto/fipsmodule/aes/aes.c", - "crypto/fipsmodule/aes/aes_nohw.c", - "crypto/fipsmodule/aes/key_wrap.c", - "crypto/fipsmodule/aes/mode_wrappers.c", - "crypto/fipsmodule/bn/add.c", - "crypto/fipsmodule/bn/asm/x86_64-gcc.c", - "crypto/fipsmodule/bn/bn.c", - "crypto/fipsmodule/bn/bytes.c", - "crypto/fipsmodule/bn/cmp.c", - "crypto/fipsmodule/bn/ctx.c", - "crypto/fipsmodule/bn/div.c", - "crypto/fipsmodule/bn/div_extra.c", - "crypto/fipsmodule/bn/exponentiation.c", - "crypto/fipsmodule/bn/gcd.c", - "crypto/fipsmodule/bn/gcd_extra.c", - "crypto/fipsmodule/bn/generic.c", - "crypto/fipsmodule/bn/jacobi.c", - "crypto/fipsmodule/bn/montgomery.c", - "crypto/fipsmodule/bn/montgomery_inv.c", - "crypto/fipsmodule/bn/mul.c", - "crypto/fipsmodule/bn/prime.c", - "crypto/fipsmodule/bn/random.c", - "crypto/fipsmodule/bn/rsaz_exp.c", - "crypto/fipsmodule/bn/shift.c", - "crypto/fipsmodule/bn/sqrt.c", - "crypto/fipsmodule/cipher/aead.c", - "crypto/fipsmodule/cipher/cipher.c", - "crypto/fipsmodule/cipher/e_aes.c", - "crypto/fipsmodule/cipher/e_aesccm.c", - "crypto/fipsmodule/cmac/cmac.c", - "crypto/fipsmodule/dh/check.c", - "crypto/fipsmodule/dh/dh.c", - "crypto/fipsmodule/digest/digest.c", - "crypto/fipsmodule/digest/digests.c", - "crypto/fipsmodule/digestsign/digestsign.c", - "crypto/fipsmodule/ec/ec.c", - "crypto/fipsmodule/ec/ec_key.c", - "crypto/fipsmodule/ec/ec_montgomery.c", - "crypto/fipsmodule/ec/felem.c", - "crypto/fipsmodule/ec/oct.c", - "crypto/fipsmodule/ec/p224-64.c", - "crypto/fipsmodule/ec/p256-nistz.c", - "crypto/fipsmodule/ec/p256.c", - "crypto/fipsmodule/ec/scalar.c", - "crypto/fipsmodule/ec/simple.c", - "crypto/fipsmodule/ec/simple_mul.c", - "crypto/fipsmodule/ec/util.c", - "crypto/fipsmodule/ec/wnaf.c", - "crypto/fipsmodule/ecdh/ecdh.c", - "crypto/fipsmodule/ecdsa/ecdsa.c", - "crypto/fipsmodule/hkdf/hkdf.c", - "crypto/fipsmodule/hmac/hmac.c", - "crypto/fipsmodule/md4/md4.c", - "crypto/fipsmodule/md5/md5.c", - "crypto/fipsmodule/modes/cbc.c", - "crypto/fipsmodule/modes/cfb.c", - "crypto/fipsmodule/modes/ctr.c", - "crypto/fipsmodule/modes/gcm.c", - "crypto/fipsmodule/modes/gcm_nohw.c", - "crypto/fipsmodule/modes/ofb.c", - "crypto/fipsmodule/modes/polyval.c", - "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rsa/blinding.c", - "crypto/fipsmodule/rsa/padding.c", - "crypto/fipsmodule/rsa/rsa.c", - "crypto/fipsmodule/rsa/rsa_impl.c", - "crypto/fipsmodule/self_check/fips.c", - "crypto/fipsmodule/self_check/self_check.c", - "crypto/fipsmodule/service_indicator/service_indicator.c", - "crypto/fipsmodule/sha/sha1.c", - "crypto/fipsmodule/sha/sha256.c", - "crypto/fipsmodule/sha/sha512.c", - "crypto/fipsmodule/tls/kdf.c", + "crypto/fipsmodule/aes/aes.c.inc", + "crypto/fipsmodule/aes/aes_nohw.c.inc", + "crypto/fipsmodule/aes/key_wrap.c.inc", + "crypto/fipsmodule/aes/mode_wrappers.c.inc", + "crypto/fipsmodule/bn/add.c.inc", + "crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc", + "crypto/fipsmodule/bn/bn.c.inc", + "crypto/fipsmodule/bn/bytes.c.inc", + "crypto/fipsmodule/bn/cmp.c.inc", + "crypto/fipsmodule/bn/ctx.c.inc", + "crypto/fipsmodule/bn/div.c.inc", + "crypto/fipsmodule/bn/div_extra.c.inc", + "crypto/fipsmodule/bn/exponentiation.c.inc", + "crypto/fipsmodule/bn/gcd.c.inc", + "crypto/fipsmodule/bn/gcd_extra.c.inc", + "crypto/fipsmodule/bn/generic.c.inc", + "crypto/fipsmodule/bn/jacobi.c.inc", + "crypto/fipsmodule/bn/montgomery.c.inc", + "crypto/fipsmodule/bn/montgomery_inv.c.inc", + "crypto/fipsmodule/bn/mul.c.inc", + "crypto/fipsmodule/bn/prime.c.inc", + "crypto/fipsmodule/bn/random.c.inc", + "crypto/fipsmodule/bn/rsaz_exp.c.inc", + "crypto/fipsmodule/bn/shift.c.inc", + "crypto/fipsmodule/bn/sqrt.c.inc", + "crypto/fipsmodule/cipher/aead.c.inc", + "crypto/fipsmodule/cipher/cipher.c.inc", + "crypto/fipsmodule/cipher/e_aes.c.inc", + "crypto/fipsmodule/cipher/e_aesccm.c.inc", + "crypto/fipsmodule/cmac/cmac.c.inc", + "crypto/fipsmodule/dh/check.c.inc", + "crypto/fipsmodule/dh/dh.c.inc", + "crypto/fipsmodule/digest/digest.c.inc", + "crypto/fipsmodule/digest/digests.c.inc", + "crypto/fipsmodule/digestsign/digestsign.c.inc", + "crypto/fipsmodule/ec/ec.c.inc", + "crypto/fipsmodule/ec/ec_key.c.inc", + "crypto/fipsmodule/ec/ec_montgomery.c.inc", + "crypto/fipsmodule/ec/felem.c.inc", + "crypto/fipsmodule/ec/oct.c.inc", + "crypto/fipsmodule/ec/p224-64.c.inc", + "crypto/fipsmodule/ec/p256-nistz.c.inc", + "crypto/fipsmodule/ec/p256.c.inc", + "crypto/fipsmodule/ec/scalar.c.inc", + "crypto/fipsmodule/ec/simple.c.inc", + "crypto/fipsmodule/ec/simple_mul.c.inc", + "crypto/fipsmodule/ec/util.c.inc", + "crypto/fipsmodule/ec/wnaf.c.inc", + "crypto/fipsmodule/ecdh/ecdh.c.inc", + "crypto/fipsmodule/ecdsa/ecdsa.c.inc", + "crypto/fipsmodule/hkdf/hkdf.c.inc", + "crypto/fipsmodule/hmac/hmac.c.inc", + "crypto/fipsmodule/md4/md4.c.inc", + "crypto/fipsmodule/md5/md5.c.inc", + "crypto/fipsmodule/modes/cbc.c.inc", + "crypto/fipsmodule/modes/cfb.c.inc", + "crypto/fipsmodule/modes/ctr.c.inc", + "crypto/fipsmodule/modes/gcm.c.inc", + "crypto/fipsmodule/modes/gcm_nohw.c.inc", + "crypto/fipsmodule/modes/ofb.c.inc", + "crypto/fipsmodule/modes/polyval.c.inc", + "crypto/fipsmodule/rand/ctrdrbg.c.inc", + "crypto/fipsmodule/rand/rand.c.inc", + "crypto/fipsmodule/rsa/blinding.c.inc", + "crypto/fipsmodule/rsa/padding.c.inc", + "crypto/fipsmodule/rsa/rsa.c.inc", + "crypto/fipsmodule/rsa/rsa_impl.c.inc", + "crypto/fipsmodule/self_check/fips.c.inc", + "crypto/fipsmodule/self_check/self_check.c.inc", + "crypto/fipsmodule/service_indicator/service_indicator.c.inc", + "crypto/fipsmodule/sha/sha1.c.inc", + "crypto/fipsmodule/sha/sha256.c.inc", + "crypto/fipsmodule/sha/sha512.c.inc", + "crypto/fipsmodule/tls/kdf.c.inc", ] bcm_sources_asm = [ diff --git a/gen/sources.cmake b/gen/sources.cmake index eb22684e63..e3245c1546 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -23,80 +23,80 @@ set( set( BCM_INTERNAL_HEADERS - crypto/fipsmodule/aes/aes.c - crypto/fipsmodule/aes/aes_nohw.c - crypto/fipsmodule/aes/key_wrap.c - crypto/fipsmodule/aes/mode_wrappers.c - crypto/fipsmodule/bn/add.c - crypto/fipsmodule/bn/asm/x86_64-gcc.c - crypto/fipsmodule/bn/bn.c - crypto/fipsmodule/bn/bytes.c - crypto/fipsmodule/bn/cmp.c - crypto/fipsmodule/bn/ctx.c - crypto/fipsmodule/bn/div.c - crypto/fipsmodule/bn/div_extra.c - crypto/fipsmodule/bn/exponentiation.c - crypto/fipsmodule/bn/gcd.c - crypto/fipsmodule/bn/gcd_extra.c - crypto/fipsmodule/bn/generic.c - crypto/fipsmodule/bn/jacobi.c - crypto/fipsmodule/bn/montgomery.c - crypto/fipsmodule/bn/montgomery_inv.c - crypto/fipsmodule/bn/mul.c - crypto/fipsmodule/bn/prime.c - crypto/fipsmodule/bn/random.c - crypto/fipsmodule/bn/rsaz_exp.c - crypto/fipsmodule/bn/shift.c - crypto/fipsmodule/bn/sqrt.c - crypto/fipsmodule/cipher/aead.c - crypto/fipsmodule/cipher/cipher.c - crypto/fipsmodule/cipher/e_aes.c - crypto/fipsmodule/cipher/e_aesccm.c - crypto/fipsmodule/cmac/cmac.c - crypto/fipsmodule/dh/check.c - crypto/fipsmodule/dh/dh.c - crypto/fipsmodule/digest/digest.c - crypto/fipsmodule/digest/digests.c - crypto/fipsmodule/digestsign/digestsign.c - crypto/fipsmodule/ec/ec.c - crypto/fipsmodule/ec/ec_key.c - crypto/fipsmodule/ec/ec_montgomery.c - crypto/fipsmodule/ec/felem.c - crypto/fipsmodule/ec/oct.c - crypto/fipsmodule/ec/p224-64.c - crypto/fipsmodule/ec/p256-nistz.c - crypto/fipsmodule/ec/p256.c - crypto/fipsmodule/ec/scalar.c - crypto/fipsmodule/ec/simple.c - crypto/fipsmodule/ec/simple_mul.c - crypto/fipsmodule/ec/util.c - crypto/fipsmodule/ec/wnaf.c - crypto/fipsmodule/ecdh/ecdh.c - crypto/fipsmodule/ecdsa/ecdsa.c - crypto/fipsmodule/hkdf/hkdf.c - crypto/fipsmodule/hmac/hmac.c - crypto/fipsmodule/md4/md4.c - crypto/fipsmodule/md5/md5.c - crypto/fipsmodule/modes/cbc.c - crypto/fipsmodule/modes/cfb.c - crypto/fipsmodule/modes/ctr.c - crypto/fipsmodule/modes/gcm.c - crypto/fipsmodule/modes/gcm_nohw.c - crypto/fipsmodule/modes/ofb.c - crypto/fipsmodule/modes/polyval.c - crypto/fipsmodule/rand/ctrdrbg.c - crypto/fipsmodule/rand/rand.c - crypto/fipsmodule/rsa/blinding.c - crypto/fipsmodule/rsa/padding.c - crypto/fipsmodule/rsa/rsa.c - crypto/fipsmodule/rsa/rsa_impl.c - crypto/fipsmodule/self_check/fips.c - crypto/fipsmodule/self_check/self_check.c - crypto/fipsmodule/service_indicator/service_indicator.c - crypto/fipsmodule/sha/sha1.c - crypto/fipsmodule/sha/sha256.c - crypto/fipsmodule/sha/sha512.c - crypto/fipsmodule/tls/kdf.c + crypto/fipsmodule/aes/aes.c.inc + crypto/fipsmodule/aes/aes_nohw.c.inc + crypto/fipsmodule/aes/key_wrap.c.inc + crypto/fipsmodule/aes/mode_wrappers.c.inc + crypto/fipsmodule/bn/add.c.inc + crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc + crypto/fipsmodule/bn/bn.c.inc + crypto/fipsmodule/bn/bytes.c.inc + crypto/fipsmodule/bn/cmp.c.inc + crypto/fipsmodule/bn/ctx.c.inc + crypto/fipsmodule/bn/div.c.inc + crypto/fipsmodule/bn/div_extra.c.inc + crypto/fipsmodule/bn/exponentiation.c.inc + crypto/fipsmodule/bn/gcd.c.inc + crypto/fipsmodule/bn/gcd_extra.c.inc + crypto/fipsmodule/bn/generic.c.inc + crypto/fipsmodule/bn/jacobi.c.inc + crypto/fipsmodule/bn/montgomery.c.inc + crypto/fipsmodule/bn/montgomery_inv.c.inc + crypto/fipsmodule/bn/mul.c.inc + crypto/fipsmodule/bn/prime.c.inc + crypto/fipsmodule/bn/random.c.inc + crypto/fipsmodule/bn/rsaz_exp.c.inc + crypto/fipsmodule/bn/shift.c.inc + crypto/fipsmodule/bn/sqrt.c.inc + crypto/fipsmodule/cipher/aead.c.inc + crypto/fipsmodule/cipher/cipher.c.inc + crypto/fipsmodule/cipher/e_aes.c.inc + crypto/fipsmodule/cipher/e_aesccm.c.inc + crypto/fipsmodule/cmac/cmac.c.inc + crypto/fipsmodule/dh/check.c.inc + crypto/fipsmodule/dh/dh.c.inc + crypto/fipsmodule/digest/digest.c.inc + crypto/fipsmodule/digest/digests.c.inc + crypto/fipsmodule/digestsign/digestsign.c.inc + crypto/fipsmodule/ec/ec.c.inc + crypto/fipsmodule/ec/ec_key.c.inc + crypto/fipsmodule/ec/ec_montgomery.c.inc + crypto/fipsmodule/ec/felem.c.inc + crypto/fipsmodule/ec/oct.c.inc + crypto/fipsmodule/ec/p224-64.c.inc + crypto/fipsmodule/ec/p256-nistz.c.inc + crypto/fipsmodule/ec/p256.c.inc + crypto/fipsmodule/ec/scalar.c.inc + crypto/fipsmodule/ec/simple.c.inc + crypto/fipsmodule/ec/simple_mul.c.inc + crypto/fipsmodule/ec/util.c.inc + crypto/fipsmodule/ec/wnaf.c.inc + crypto/fipsmodule/ecdh/ecdh.c.inc + crypto/fipsmodule/ecdsa/ecdsa.c.inc + crypto/fipsmodule/hkdf/hkdf.c.inc + crypto/fipsmodule/hmac/hmac.c.inc + crypto/fipsmodule/md4/md4.c.inc + crypto/fipsmodule/md5/md5.c.inc + crypto/fipsmodule/modes/cbc.c.inc + crypto/fipsmodule/modes/cfb.c.inc + crypto/fipsmodule/modes/ctr.c.inc + crypto/fipsmodule/modes/gcm.c.inc + crypto/fipsmodule/modes/gcm_nohw.c.inc + crypto/fipsmodule/modes/ofb.c.inc + crypto/fipsmodule/modes/polyval.c.inc + crypto/fipsmodule/rand/ctrdrbg.c.inc + crypto/fipsmodule/rand/rand.c.inc + crypto/fipsmodule/rsa/blinding.c.inc + crypto/fipsmodule/rsa/padding.c.inc + crypto/fipsmodule/rsa/rsa.c.inc + crypto/fipsmodule/rsa/rsa_impl.c.inc + crypto/fipsmodule/self_check/fips.c.inc + crypto/fipsmodule/self_check/self_check.c.inc + crypto/fipsmodule/service_indicator/service_indicator.c.inc + crypto/fipsmodule/sha/sha1.c.inc + crypto/fipsmodule/sha/sha256.c.inc + crypto/fipsmodule/sha/sha512.c.inc + crypto/fipsmodule/tls/kdf.c.inc ) set( diff --git a/gen/sources.gni b/gen/sources.gni index 71fdebaeb0..292b2f1c91 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -19,80 +19,80 @@ bcm_sources = [ ] bcm_internal_headers = [ - "crypto/fipsmodule/aes/aes.c", - "crypto/fipsmodule/aes/aes_nohw.c", - "crypto/fipsmodule/aes/key_wrap.c", - "crypto/fipsmodule/aes/mode_wrappers.c", - "crypto/fipsmodule/bn/add.c", - "crypto/fipsmodule/bn/asm/x86_64-gcc.c", - "crypto/fipsmodule/bn/bn.c", - "crypto/fipsmodule/bn/bytes.c", - "crypto/fipsmodule/bn/cmp.c", - "crypto/fipsmodule/bn/ctx.c", - "crypto/fipsmodule/bn/div.c", - "crypto/fipsmodule/bn/div_extra.c", - "crypto/fipsmodule/bn/exponentiation.c", - "crypto/fipsmodule/bn/gcd.c", - "crypto/fipsmodule/bn/gcd_extra.c", - "crypto/fipsmodule/bn/generic.c", - "crypto/fipsmodule/bn/jacobi.c", - "crypto/fipsmodule/bn/montgomery.c", - "crypto/fipsmodule/bn/montgomery_inv.c", - "crypto/fipsmodule/bn/mul.c", - "crypto/fipsmodule/bn/prime.c", - "crypto/fipsmodule/bn/random.c", - "crypto/fipsmodule/bn/rsaz_exp.c", - "crypto/fipsmodule/bn/shift.c", - "crypto/fipsmodule/bn/sqrt.c", - "crypto/fipsmodule/cipher/aead.c", - "crypto/fipsmodule/cipher/cipher.c", - "crypto/fipsmodule/cipher/e_aes.c", - "crypto/fipsmodule/cipher/e_aesccm.c", - "crypto/fipsmodule/cmac/cmac.c", - "crypto/fipsmodule/dh/check.c", - "crypto/fipsmodule/dh/dh.c", - "crypto/fipsmodule/digest/digest.c", - "crypto/fipsmodule/digest/digests.c", - "crypto/fipsmodule/digestsign/digestsign.c", - "crypto/fipsmodule/ec/ec.c", - "crypto/fipsmodule/ec/ec_key.c", - "crypto/fipsmodule/ec/ec_montgomery.c", - "crypto/fipsmodule/ec/felem.c", - "crypto/fipsmodule/ec/oct.c", - "crypto/fipsmodule/ec/p224-64.c", - "crypto/fipsmodule/ec/p256-nistz.c", - "crypto/fipsmodule/ec/p256.c", - "crypto/fipsmodule/ec/scalar.c", - "crypto/fipsmodule/ec/simple.c", - "crypto/fipsmodule/ec/simple_mul.c", - "crypto/fipsmodule/ec/util.c", - "crypto/fipsmodule/ec/wnaf.c", - "crypto/fipsmodule/ecdh/ecdh.c", - "crypto/fipsmodule/ecdsa/ecdsa.c", - "crypto/fipsmodule/hkdf/hkdf.c", - "crypto/fipsmodule/hmac/hmac.c", - "crypto/fipsmodule/md4/md4.c", - "crypto/fipsmodule/md5/md5.c", - "crypto/fipsmodule/modes/cbc.c", - "crypto/fipsmodule/modes/cfb.c", - "crypto/fipsmodule/modes/ctr.c", - "crypto/fipsmodule/modes/gcm.c", - "crypto/fipsmodule/modes/gcm_nohw.c", - "crypto/fipsmodule/modes/ofb.c", - "crypto/fipsmodule/modes/polyval.c", - "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rsa/blinding.c", - "crypto/fipsmodule/rsa/padding.c", - "crypto/fipsmodule/rsa/rsa.c", - "crypto/fipsmodule/rsa/rsa_impl.c", - "crypto/fipsmodule/self_check/fips.c", - "crypto/fipsmodule/self_check/self_check.c", - "crypto/fipsmodule/service_indicator/service_indicator.c", - "crypto/fipsmodule/sha/sha1.c", - "crypto/fipsmodule/sha/sha256.c", - "crypto/fipsmodule/sha/sha512.c", - "crypto/fipsmodule/tls/kdf.c", + "crypto/fipsmodule/aes/aes.c.inc", + "crypto/fipsmodule/aes/aes_nohw.c.inc", + "crypto/fipsmodule/aes/key_wrap.c.inc", + "crypto/fipsmodule/aes/mode_wrappers.c.inc", + "crypto/fipsmodule/bn/add.c.inc", + "crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc", + "crypto/fipsmodule/bn/bn.c.inc", + "crypto/fipsmodule/bn/bytes.c.inc", + "crypto/fipsmodule/bn/cmp.c.inc", + "crypto/fipsmodule/bn/ctx.c.inc", + "crypto/fipsmodule/bn/div.c.inc", + "crypto/fipsmodule/bn/div_extra.c.inc", + "crypto/fipsmodule/bn/exponentiation.c.inc", + "crypto/fipsmodule/bn/gcd.c.inc", + "crypto/fipsmodule/bn/gcd_extra.c.inc", + "crypto/fipsmodule/bn/generic.c.inc", + "crypto/fipsmodule/bn/jacobi.c.inc", + "crypto/fipsmodule/bn/montgomery.c.inc", + "crypto/fipsmodule/bn/montgomery_inv.c.inc", + "crypto/fipsmodule/bn/mul.c.inc", + "crypto/fipsmodule/bn/prime.c.inc", + "crypto/fipsmodule/bn/random.c.inc", + "crypto/fipsmodule/bn/rsaz_exp.c.inc", + "crypto/fipsmodule/bn/shift.c.inc", + "crypto/fipsmodule/bn/sqrt.c.inc", + "crypto/fipsmodule/cipher/aead.c.inc", + "crypto/fipsmodule/cipher/cipher.c.inc", + "crypto/fipsmodule/cipher/e_aes.c.inc", + "crypto/fipsmodule/cipher/e_aesccm.c.inc", + "crypto/fipsmodule/cmac/cmac.c.inc", + "crypto/fipsmodule/dh/check.c.inc", + "crypto/fipsmodule/dh/dh.c.inc", + "crypto/fipsmodule/digest/digest.c.inc", + "crypto/fipsmodule/digest/digests.c.inc", + "crypto/fipsmodule/digestsign/digestsign.c.inc", + "crypto/fipsmodule/ec/ec.c.inc", + "crypto/fipsmodule/ec/ec_key.c.inc", + "crypto/fipsmodule/ec/ec_montgomery.c.inc", + "crypto/fipsmodule/ec/felem.c.inc", + "crypto/fipsmodule/ec/oct.c.inc", + "crypto/fipsmodule/ec/p224-64.c.inc", + "crypto/fipsmodule/ec/p256-nistz.c.inc", + "crypto/fipsmodule/ec/p256.c.inc", + "crypto/fipsmodule/ec/scalar.c.inc", + "crypto/fipsmodule/ec/simple.c.inc", + "crypto/fipsmodule/ec/simple_mul.c.inc", + "crypto/fipsmodule/ec/util.c.inc", + "crypto/fipsmodule/ec/wnaf.c.inc", + "crypto/fipsmodule/ecdh/ecdh.c.inc", + "crypto/fipsmodule/ecdsa/ecdsa.c.inc", + "crypto/fipsmodule/hkdf/hkdf.c.inc", + "crypto/fipsmodule/hmac/hmac.c.inc", + "crypto/fipsmodule/md4/md4.c.inc", + "crypto/fipsmodule/md5/md5.c.inc", + "crypto/fipsmodule/modes/cbc.c.inc", + "crypto/fipsmodule/modes/cfb.c.inc", + "crypto/fipsmodule/modes/ctr.c.inc", + "crypto/fipsmodule/modes/gcm.c.inc", + "crypto/fipsmodule/modes/gcm_nohw.c.inc", + "crypto/fipsmodule/modes/ofb.c.inc", + "crypto/fipsmodule/modes/polyval.c.inc", + "crypto/fipsmodule/rand/ctrdrbg.c.inc", + "crypto/fipsmodule/rand/rand.c.inc", + "crypto/fipsmodule/rsa/blinding.c.inc", + "crypto/fipsmodule/rsa/padding.c.inc", + "crypto/fipsmodule/rsa/rsa.c.inc", + "crypto/fipsmodule/rsa/rsa_impl.c.inc", + "crypto/fipsmodule/self_check/fips.c.inc", + "crypto/fipsmodule/self_check/self_check.c.inc", + "crypto/fipsmodule/service_indicator/service_indicator.c.inc", + "crypto/fipsmodule/sha/sha1.c.inc", + "crypto/fipsmodule/sha/sha256.c.inc", + "crypto/fipsmodule/sha/sha512.c.inc", + "crypto/fipsmodule/tls/kdf.c.inc", ] bcm_sources_asm = [ diff --git a/gen/sources.json b/gen/sources.json index 1e17762870..d6242bcd82 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -4,80 +4,80 @@ "crypto/fipsmodule/bcm.c" ], "internal_hdrs": [ - "crypto/fipsmodule/aes/aes.c", - "crypto/fipsmodule/aes/aes_nohw.c", - "crypto/fipsmodule/aes/key_wrap.c", - "crypto/fipsmodule/aes/mode_wrappers.c", - "crypto/fipsmodule/bn/add.c", - "crypto/fipsmodule/bn/asm/x86_64-gcc.c", - "crypto/fipsmodule/bn/bn.c", - "crypto/fipsmodule/bn/bytes.c", - "crypto/fipsmodule/bn/cmp.c", - "crypto/fipsmodule/bn/ctx.c", - "crypto/fipsmodule/bn/div.c", - "crypto/fipsmodule/bn/div_extra.c", - "crypto/fipsmodule/bn/exponentiation.c", - "crypto/fipsmodule/bn/gcd.c", - "crypto/fipsmodule/bn/gcd_extra.c", - "crypto/fipsmodule/bn/generic.c", - "crypto/fipsmodule/bn/jacobi.c", - "crypto/fipsmodule/bn/montgomery.c", - "crypto/fipsmodule/bn/montgomery_inv.c", - "crypto/fipsmodule/bn/mul.c", - "crypto/fipsmodule/bn/prime.c", - "crypto/fipsmodule/bn/random.c", - "crypto/fipsmodule/bn/rsaz_exp.c", - "crypto/fipsmodule/bn/shift.c", - "crypto/fipsmodule/bn/sqrt.c", - "crypto/fipsmodule/cipher/aead.c", - "crypto/fipsmodule/cipher/cipher.c", - "crypto/fipsmodule/cipher/e_aes.c", - "crypto/fipsmodule/cipher/e_aesccm.c", - "crypto/fipsmodule/cmac/cmac.c", - "crypto/fipsmodule/dh/check.c", - "crypto/fipsmodule/dh/dh.c", - "crypto/fipsmodule/digest/digest.c", - "crypto/fipsmodule/digest/digests.c", - "crypto/fipsmodule/digestsign/digestsign.c", - "crypto/fipsmodule/ec/ec.c", - "crypto/fipsmodule/ec/ec_key.c", - "crypto/fipsmodule/ec/ec_montgomery.c", - "crypto/fipsmodule/ec/felem.c", - "crypto/fipsmodule/ec/oct.c", - "crypto/fipsmodule/ec/p224-64.c", - "crypto/fipsmodule/ec/p256-nistz.c", - "crypto/fipsmodule/ec/p256.c", - "crypto/fipsmodule/ec/scalar.c", - "crypto/fipsmodule/ec/simple.c", - "crypto/fipsmodule/ec/simple_mul.c", - "crypto/fipsmodule/ec/util.c", - "crypto/fipsmodule/ec/wnaf.c", - "crypto/fipsmodule/ecdh/ecdh.c", - "crypto/fipsmodule/ecdsa/ecdsa.c", - "crypto/fipsmodule/hkdf/hkdf.c", - "crypto/fipsmodule/hmac/hmac.c", - "crypto/fipsmodule/md4/md4.c", - "crypto/fipsmodule/md5/md5.c", - "crypto/fipsmodule/modes/cbc.c", - "crypto/fipsmodule/modes/cfb.c", - "crypto/fipsmodule/modes/ctr.c", - "crypto/fipsmodule/modes/gcm.c", - "crypto/fipsmodule/modes/gcm_nohw.c", - "crypto/fipsmodule/modes/ofb.c", - "crypto/fipsmodule/modes/polyval.c", - "crypto/fipsmodule/rand/ctrdrbg.c", - "crypto/fipsmodule/rand/rand.c", - "crypto/fipsmodule/rsa/blinding.c", - "crypto/fipsmodule/rsa/padding.c", - "crypto/fipsmodule/rsa/rsa.c", - "crypto/fipsmodule/rsa/rsa_impl.c", - "crypto/fipsmodule/self_check/fips.c", - "crypto/fipsmodule/self_check/self_check.c", - "crypto/fipsmodule/service_indicator/service_indicator.c", - "crypto/fipsmodule/sha/sha1.c", - "crypto/fipsmodule/sha/sha256.c", - "crypto/fipsmodule/sha/sha512.c", - "crypto/fipsmodule/tls/kdf.c" + "crypto/fipsmodule/aes/aes.c.inc", + "crypto/fipsmodule/aes/aes_nohw.c.inc", + "crypto/fipsmodule/aes/key_wrap.c.inc", + "crypto/fipsmodule/aes/mode_wrappers.c.inc", + "crypto/fipsmodule/bn/add.c.inc", + "crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc", + "crypto/fipsmodule/bn/bn.c.inc", + "crypto/fipsmodule/bn/bytes.c.inc", + "crypto/fipsmodule/bn/cmp.c.inc", + "crypto/fipsmodule/bn/ctx.c.inc", + "crypto/fipsmodule/bn/div.c.inc", + "crypto/fipsmodule/bn/div_extra.c.inc", + "crypto/fipsmodule/bn/exponentiation.c.inc", + "crypto/fipsmodule/bn/gcd.c.inc", + "crypto/fipsmodule/bn/gcd_extra.c.inc", + "crypto/fipsmodule/bn/generic.c.inc", + "crypto/fipsmodule/bn/jacobi.c.inc", + "crypto/fipsmodule/bn/montgomery.c.inc", + "crypto/fipsmodule/bn/montgomery_inv.c.inc", + "crypto/fipsmodule/bn/mul.c.inc", + "crypto/fipsmodule/bn/prime.c.inc", + "crypto/fipsmodule/bn/random.c.inc", + "crypto/fipsmodule/bn/rsaz_exp.c.inc", + "crypto/fipsmodule/bn/shift.c.inc", + "crypto/fipsmodule/bn/sqrt.c.inc", + "crypto/fipsmodule/cipher/aead.c.inc", + "crypto/fipsmodule/cipher/cipher.c.inc", + "crypto/fipsmodule/cipher/e_aes.c.inc", + "crypto/fipsmodule/cipher/e_aesccm.c.inc", + "crypto/fipsmodule/cmac/cmac.c.inc", + "crypto/fipsmodule/dh/check.c.inc", + "crypto/fipsmodule/dh/dh.c.inc", + "crypto/fipsmodule/digest/digest.c.inc", + "crypto/fipsmodule/digest/digests.c.inc", + "crypto/fipsmodule/digestsign/digestsign.c.inc", + "crypto/fipsmodule/ec/ec.c.inc", + "crypto/fipsmodule/ec/ec_key.c.inc", + "crypto/fipsmodule/ec/ec_montgomery.c.inc", + "crypto/fipsmodule/ec/felem.c.inc", + "crypto/fipsmodule/ec/oct.c.inc", + "crypto/fipsmodule/ec/p224-64.c.inc", + "crypto/fipsmodule/ec/p256-nistz.c.inc", + "crypto/fipsmodule/ec/p256.c.inc", + "crypto/fipsmodule/ec/scalar.c.inc", + "crypto/fipsmodule/ec/simple.c.inc", + "crypto/fipsmodule/ec/simple_mul.c.inc", + "crypto/fipsmodule/ec/util.c.inc", + "crypto/fipsmodule/ec/wnaf.c.inc", + "crypto/fipsmodule/ecdh/ecdh.c.inc", + "crypto/fipsmodule/ecdsa/ecdsa.c.inc", + "crypto/fipsmodule/hkdf/hkdf.c.inc", + "crypto/fipsmodule/hmac/hmac.c.inc", + "crypto/fipsmodule/md4/md4.c.inc", + "crypto/fipsmodule/md5/md5.c.inc", + "crypto/fipsmodule/modes/cbc.c.inc", + "crypto/fipsmodule/modes/cfb.c.inc", + "crypto/fipsmodule/modes/ctr.c.inc", + "crypto/fipsmodule/modes/gcm.c.inc", + "crypto/fipsmodule/modes/gcm_nohw.c.inc", + "crypto/fipsmodule/modes/ofb.c.inc", + "crypto/fipsmodule/modes/polyval.c.inc", + "crypto/fipsmodule/rand/ctrdrbg.c.inc", + "crypto/fipsmodule/rand/rand.c.inc", + "crypto/fipsmodule/rsa/blinding.c.inc", + "crypto/fipsmodule/rsa/padding.c.inc", + "crypto/fipsmodule/rsa/rsa.c.inc", + "crypto/fipsmodule/rsa/rsa_impl.c.inc", + "crypto/fipsmodule/self_check/fips.c.inc", + "crypto/fipsmodule/self_check/self_check.c.inc", + "crypto/fipsmodule/service_indicator/service_indicator.c.inc", + "crypto/fipsmodule/sha/sha1.c.inc", + "crypto/fipsmodule/sha/sha256.c.inc", + "crypto/fipsmodule/sha/sha512.c.inc", + "crypto/fipsmodule/tls/kdf.c.inc" ], "asm": [ "gen/bcm/aesni-gcm-x86_64-apple.S", From 6c3a63970fbaea7b4f1db23f3213b0c52586cc6c Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Wed, 28 Aug 2024 22:48:35 +0000 Subject: [PATCH 60/81] DTLS 1.3 compatibility mode fix in test runner. Compatibility mode is disabled in DTLS 1.3, but https://boringssl-review.googlesource.com/c/boringssl/+/69947 missed a spot where the test runner still sends a ChangeCipherSpec message. Bug: 715 Change-Id: Ia7dda19e99fc427fb1ba18542b6ed6b4281656c0 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70668 Reviewed-by: David Benjamin Commit-Queue: David Benjamin Auto-Submit: Nick Harper --- ssl/test/runner/handshake_client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ssl/test/runner/handshake_client.go b/ssl/test/runner/handshake_client.go index 936291179d..cfac427d3b 100644 --- a/ssl/test/runner/handshake_client.go +++ b/ssl/test/runner/handshake_client.go @@ -1400,7 +1400,7 @@ func (hs *clientHandshakeState) doTLS13Handshake(msg any) error { } } - if !c.config.Bugs.SkipChangeCipherSpec && !hs.hello.hasEarlyData { + if !c.config.Bugs.SkipChangeCipherSpec && !hs.hello.hasEarlyData && !c.isDTLS { c.writeRecord(recordTypeChangeCipherSpec, []byte{1}) } From d8cd383938102c4533cc2bad78b02bd3a4de6a82 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 29 Aug 2024 15:42:43 -0400 Subject: [PATCH 61/81] Allow empty passwords in PEM password callback This aligns with https://github.com/openssl/openssl/pull/6173 from upstream OpenSSL. As part of this, I had to fix PEM_def_callback (which is different in us vs BoringSSL) to use -1 as the error value, not 0. Otherwise errors get misinterpreted as empty strings. As part of this, make sure all the functions being fixed are covered by tests. Fixed: 362788352 Change-Id: I2b5071534c77944d473580fda98d23ae3b54e2d5 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70787 Auto-Submit: David Benjamin Commit-Queue: Bob Beck Reviewed-by: Bob Beck --- crypto/pem/pem_lib.c | 9 +- crypto/pem/pem_pk8.c | 5 +- crypto/pem/pem_pkey.c | 2 +- crypto/pem/pem_test.cc | 269 +++++++++++++++++++++++++++++++++++++++++ include/openssl/pem.h | 7 +- 5 files changed, 279 insertions(+), 13 deletions(-) diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c index 38c1d3f6a3..6b272ccb6a 100644 --- a/crypto/pem/pem_lib.c +++ b/crypto/pem/pem_lib.c @@ -312,12 +312,11 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, const unsigned iv_len = EVP_CIPHER_iv_length(enc); if (pass == NULL) { - pass_len = 0; if (!callback) { callback = PEM_def_callback; } pass_len = (*callback)(buf, PEM_BUFSIZE, 1, u); - if (pass_len <= 0) { + if (pass_len < 0) { OPENSSL_PUT_ERROR(PEM, PEM_R_READ_KEY); goto err; } @@ -393,7 +392,7 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, callback = PEM_def_callback; } pass_len = callback(buf, PEM_BUFSIZE, 0, u); - if (pass_len <= 0) { + if (pass_len < 0) { OPENSSL_PUT_ERROR(PEM, PEM_R_BAD_PASSWORD_READ); return 0; } @@ -779,11 +778,11 @@ int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, int PEM_def_callback(char *buf, int size, int rwflag, void *userdata) { if (!buf || !userdata || size < 0) { - return 0; + return -1; } size_t len = strlen((char *)userdata); if (len >= (size_t)size) { - return 0; + return -1; } OPENSSL_strlcpy(buf, userdata, (size_t)size); return (int)len; diff --git a/crypto/pem/pem_pk8.c b/crypto/pem/pem_pk8.c index 9c6419be45..2fc0673cd7 100644 --- a/crypto/pem/pem_pk8.c +++ b/crypto/pem/pem_pk8.c @@ -113,12 +113,11 @@ static int do_pk8pkey(BIO *bp, const EVP_PKEY *x, int isder, int nid, } if (enc || (nid != -1)) { if (!pass) { - pass_len = 0; if (!cb) { cb = PEM_def_callback; } pass_len = cb(buf, PEM_BUFSIZE, 1, u); - if (pass_len <= 0) { + if (pass_len < 0) { OPENSSL_PUT_ERROR(PEM, PEM_R_READ_KEY); PKCS8_PRIV_KEY_INFO_free(p8inf); return 0; @@ -166,7 +165,7 @@ EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, cb = PEM_def_callback; } pass_len = cb(psbuf, PEM_BUFSIZE, 0, u); - if (pass_len <= 0) { + if (pass_len < 0) { OPENSSL_PUT_ERROR(PEM, PEM_R_BAD_PASSWORD_READ); X509_SIG_free(p8); return NULL; diff --git a/crypto/pem/pem_pkey.c b/crypto/pem/pem_pkey.c index 2fb450c9bf..9349ac71e0 100644 --- a/crypto/pem/pem_pkey.c +++ b/crypto/pem/pem_pkey.c @@ -110,7 +110,7 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, cb = PEM_def_callback; } pass_len = cb(psbuf, PEM_BUFSIZE, 0, u); - if (pass_len <= 0) { + if (pass_len < 0) { OPENSSL_PUT_ERROR(PEM, PEM_R_BAD_PASSWORD_READ); X509_SIG_free(p8); goto err; diff --git a/crypto/pem/pem_test.cc b/crypto/pem/pem_test.cc index 117e000624..d3c8f14cae 100644 --- a/crypto/pem/pem_test.cc +++ b/crypto/pem/pem_test.cc @@ -14,9 +14,12 @@ #include +#include + #include #include +#include #include #include @@ -44,3 +47,269 @@ TEST(PEMTest, NoRC4) { EXPECT_TRUE( ErrorEquals(ERR_get_error(), ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION)); } + +static std::vector DecodePEMBytes(const char *pem) { + bssl::UniquePtr bio(BIO_new_mem_buf(pem, -1)); + char *name, *header; + uint8_t *data; + long len; + if (bio == nullptr || + !PEM_read_bio(bio.get(), &name, &header, &data, &len)) { + return {}; + } + bssl::UniquePtr free_name(name), free_header(header); + bssl::UniquePtr free_data(data); + return std::vector(data, data + len); +} + +TEST(PEMTest, DecryptPassword) { + // A private key encrypted with the password "password", encrypted at the + // PKCS#8 level. + static const char kEncryptedPEM[] = R"( +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAjnhMUlb9deeQICCAAw +HQYJYIZIAWUDBAECBBAO8j5GA5VK8wjvNrzp/iVhBIGQyQKFfFKlFhxiDkFfyhUc +nPLr0eboQOz8eIaTW1Rblo/qDkQwNtONyfYn909SoIP7iU8UehcBG1UQe41WvQpu +yRKYQteoWSzFl+yzktL2Y/25K7Uc+f2NScjdonYMZ+9/m1HGmEzKO+Hz28cAsJL7 +rH2gQ0lkxr1GtW77m2rfMKKuGYhpkgjWUbzJwP9v3iq+ +-----END ENCRYPTED PRIVATE KEY----- +)"; + // The same key and password, but encrypted at the PEM level. + static const char kEncryptedPEM2[] = R"( +-----BEGIN EC PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-128-CBC,B3B2988AECAE6EAB0D043105994C1123 + +RK7DUIGDHWTFh2rpTX+dR88hUyC1PyDlIULiNCkuWFwHrJbc1gM6hMVOKmU196XC +iITrIKmilFm9CPD6Tpfk/NhI/QPxyJlk1geIkxpvUZ2FCeMuYI1To14oYOUKv14q +wr6JtaX2G+pOmwcSPymZC4u2TncAP7KHgS8UGcMw8CE= +-----END EC PRIVATE KEY----- +)"; + + for (const char *pem : {kEncryptedPEM, kEncryptedPEM2}) { + SCOPED_TRACE(pem); + // Decrypt with the correct password. + { + bssl::UniquePtr bio(BIO_new_mem_buf(pem, -1)); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(PEM_read_bio_PrivateKey( + bio.get(), nullptr, nullptr, const_cast("password"))); + EXPECT_TRUE(pkey); + } + + // Decrypt with the wrong password. + { + bssl::UniquePtr bio(BIO_new_mem_buf(pem, -1)); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(PEM_read_bio_PrivateKey( + bio.get(), nullptr, nullptr, const_cast("wrong"))); + EXPECT_FALSE(pkey); + EXPECT_TRUE( + ErrorEquals(ERR_peek_error(), ERR_LIB_CIPHER, CIPHER_R_BAD_DECRYPT)); + ERR_clear_error(); + } + + // If the caller did not pass in a password, we should not proceed to try to + // decrypt. + { + bssl::UniquePtr bio(BIO_new_mem_buf(pem, -1)); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey( + PEM_read_bio_PrivateKey(bio.get(), nullptr, nullptr, nullptr)); + EXPECT_FALSE(pkey); + EXPECT_TRUE( + ErrorEquals(ERR_peek_error(), ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ)); + ERR_clear_error(); + } + + // If the password, with a NUL terminator, does not fit in the internal + // buffer used by the PEM library, the PEM library should notice. + { + std::string too_long(PEM_BUFSIZE, 'a'); + bssl::UniquePtr bio(BIO_new_mem_buf(pem, -1)); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(PEM_read_bio_PrivateKey( + bio.get(), nullptr, nullptr, const_cast(too_long.c_str()))); + EXPECT_FALSE(pkey); + EXPECT_TRUE( + ErrorEquals(ERR_peek_error(), ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ)); + ERR_clear_error(); + } + } + + // |d2i_PKCS8PrivateKey_bio| should also be able to manage the password + // callback correctly. + std::vector bytes = DecodePEMBytes(kEncryptedPEM); + ASSERT_FALSE(bytes.empty()); + { + bssl::UniquePtr bio(BIO_new_mem_buf(bytes.data(), bytes.size())); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(d2i_PKCS8PrivateKey_bio( + bio.get(), nullptr, nullptr, const_cast("password"))); + EXPECT_TRUE(pkey); + } + + { + bssl::UniquePtr bio(BIO_new_mem_buf(bytes.data(), bytes.size())); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey( + d2i_PKCS8PrivateKey_bio(bio.get(), nullptr, nullptr, nullptr)); + EXPECT_FALSE(pkey); + EXPECT_TRUE( + ErrorEquals(ERR_peek_error(), ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ)); + ERR_clear_error(); + } + + { + std::string too_long(PEM_BUFSIZE, 'a'); + bssl::UniquePtr bio(BIO_new_mem_buf(bytes.data(), bytes.size())); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(d2i_PKCS8PrivateKey_bio( + bio.get(), nullptr, nullptr, const_cast(too_long.c_str()))); + EXPECT_FALSE(pkey); + EXPECT_TRUE( + ErrorEquals(ERR_peek_error(), ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ)); + ERR_clear_error(); + } + + // A private key encrypted with the empty password, encrypted at the PKCS#8 + // level. + static const char kEncryptedPEMEmpty[] = R"( +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIH0MF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBAXiHC8iDcjzF0I+D2g +zJOcAgIIADAMBggqhkiG9w0CCQUAMB0GCWCGSAFlAwQBAgQQwupOMi8DtEWiuXt5 +Odla9QSBkC37uJuG7HSCOyTVCEW76Kmf7GoH+Ou17bDAp6NGwm3KLxRfFoExki9g +hyLzdarBnhRbPqwMixhaQ2AtkpoSmjristGzZ9U7Y+TM3NnCA4+bu1TckdBn0g+Q +fvZI9eydS9buA0deGxCUytrMWrR3PxS1yoXBywMDJTom8u5hvvvkJ9WcNzUVRf0D +6z5NHHiXsQ== +-----END ENCRYPTED PRIVATE KEY----- +)"; + // THe same key and password, but encrypted at the PEM level. + static const char kEncryptedPEMEmpty2[] = R"( +-----BEGIN EC PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-128-CBC,A9505A7DD5C3B51D8AACED18F5758256 + +yfJKjep7Koj8hU/PtGC+NNXSNbItQ2zyeXDMVoazffraoDGMg6g1hFPPjg9reC+J +iQQIf9uACF27zi9fpWwbszszimrxl0u6n0ddBXizcK6xzkTvk3PZ67Vz1KYmotwC +XjgdgSEeixwKhDOuHKFdlFGP/7sw5GHlK3jPSpqi2gI= +-----END EC PRIVATE KEY----- +)"; + + for (const char *pem : {kEncryptedPEMEmpty, kEncryptedPEMEmpty2}) { + SCOPED_TRACE(pem); + + // The empty password should be correctly interpreted as a password. + { + bssl::UniquePtr bio(BIO_new_mem_buf(pem, -1)); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(PEM_read_bio_PrivateKey( + bio.get(), nullptr, nullptr, const_cast(""))); + EXPECT_TRUE(pkey); + } + } + + // |d2i_PKCS8PrivateKey_bio| should also be able to manage the password + // callback correctly. + bytes = DecodePEMBytes(kEncryptedPEMEmpty); + { + ASSERT_FALSE(bytes.empty()); + bssl::UniquePtr bio(BIO_new_mem_buf(bytes.data(), bytes.size())); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey(d2i_PKCS8PrivateKey_bio( + bio.get(), nullptr, nullptr, const_cast(""))); + EXPECT_TRUE(pkey); + } +} + +TEST(PEMTest, EncryptPassword) { + static const char kKey[] = R"( +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBw8IcnrUoEqc3VnJ +TYlodwi1b8ldMHcO6NHJzgqLtGqhRANCAATmK2niv2Wfl74vHg2UikzVl2u3qR4N +Rvvdqakendy6WgHn1peoChj5w8SjHlbifINI2xYaHPUdfvGULUvPciLB +-----END PRIVATE KEY----- +)"; + bssl::UniquePtr bio(BIO_new_mem_buf(kKey, -1)); + ASSERT_TRUE(bio); + bssl::UniquePtr pkey( + PEM_read_bio_PrivateKey(bio.get(), nullptr, nullptr, nullptr)); + EXPECT_TRUE(pkey); + + // There are many ways to encrypt a PEM blob with a password. + struct PasswordMethod { + const char *name; + std::function func; + bool is_callback; + }; + const PasswordMethod kPasswordMethods[] = { + {"PKCS#8 encryption, password from param", + [&](BIO *out, const char *pass) -> bool { + return PEM_write_bio_PrivateKey( + out, pkey.get(), EVP_aes_128_cbc(), + reinterpret_cast(pass), + pass == nullptr ? 0 : strlen(pass), nullptr, nullptr); + }, + /*is_callback=*/false}, + {"PKCS#8 encryption, password from callback", + [&](BIO *out, const char *pass) -> bool { + return PEM_write_bio_PrivateKey(out, pkey.get(), EVP_aes_128_cbc(), + nullptr, 0, nullptr, + const_cast(pass)); + }, + /*is_callback=*/true}, + {"PEM-level encryption, password from param", + [&](BIO *out, const char *pass) -> bool { + return PEM_write_bio_ECPrivateKey( + out, EVP_PKEY_get0_EC_KEY(pkey.get()), EVP_aes_128_cbc(), nullptr, + 0, nullptr, const_cast(pass)); + }, + /*is_callback=*/false}, + {"PKCS#8 encryption, password from callback", + [&](BIO *out, const char *pass) -> bool { + return PEM_write_bio_ECPrivateKey( + out, EVP_PKEY_get0_EC_KEY(pkey.get()), EVP_aes_128_cbc(), nullptr, + 0, nullptr, const_cast(pass)); + }, + /*is_callback=*/true}, + }; + for (const auto &p : kPasswordMethods) { + SCOPED_TRACE(p.name); + + // Encrypting the private key with a password should work. + bio.reset(BIO_new(BIO_s_mem())); + ASSERT_TRUE(bio); + ASSERT_TRUE(p.func(bio.get(), "password")); + + // Check we can decrypt it. + bssl::UniquePtr pkey2(PEM_read_bio_PrivateKey( + bio.get(), nullptr, nullptr, const_cast("password"))); + ASSERT_TRUE(pkey2); + + // The empty string is a valid password. + bio.reset(BIO_new(BIO_s_mem())); + ASSERT_TRUE(bio); + ASSERT_TRUE(p.func(bio.get(), "")); + + // Check we can decrypt it. + pkey2.reset(PEM_read_bio_PrivateKey(bio.get(), nullptr, nullptr, + const_cast(""))); + ASSERT_TRUE(pkey2); + + // Check error-handling when the password is specified via the callback. + if (p.is_callback) { + bio.reset(BIO_new(BIO_s_mem())); + ASSERT_TRUE(bio); + EXPECT_FALSE(p.func(bio.get(), nullptr)); + EXPECT_TRUE(ErrorEquals(ERR_peek_error(), ERR_LIB_PEM, PEM_R_READ_KEY)); + ERR_clear_error(); + + std::string too_long(PEM_BUFSIZE, 'a'); + bio.reset(BIO_new(BIO_s_mem())); + ASSERT_TRUE(bio); + EXPECT_FALSE(p.func(bio.get(), too_long.c_str())); + EXPECT_TRUE(ErrorEquals(ERR_peek_error(), ERR_LIB_PEM, PEM_R_READ_KEY)); + ERR_clear_error(); + } + } +} diff --git a/include/openssl/pem.h b/include/openssl/pem.h index 919cacdeac..49ac6dc3ed 100644 --- a/include/openssl/pem.h +++ b/include/openssl/pem.h @@ -385,10 +385,9 @@ OPENSSL_EXPORT int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, pem_password_cb *callback, void *u); // PEM_def_callback treats |userdata| as a string and copies it into |buf|, -// assuming its |size| is sufficient. Returns the length of the string, or 0 -// if there is not enough room. If either |buf| or |userdata| is NULL, 0 is -// returned. Note that this is different from OpenSSL, which prompts for a -// password. +// assuming its |size| is sufficient. Returns the length of the string, or -1 on +// error. Error cases the buffer being too small, or |buf| and |userdata| being +// NULL. Note that this is different from OpenSSL, which prompts for a password. OPENSSL_EXPORT int PEM_def_callback(char *buf, int size, int rwflag, void *userdata); From 73030794f7aaf4f614486b511908841852807936 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Tue, 6 Aug 2024 21:00:01 +0000 Subject: [PATCH 62/81] Add DTLS 1.3 sequence number encryption Bug: 715 Change-Id: I87f8a08e9a2258dede21cffb1cfde5802608d30d Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70667 Reviewed-by: Bob Beck Commit-Queue: Bob Beck --- ssl/dtls_record.cc | 75 ++++++++++++++++++++++----------- ssl/internal.h | 64 +++++++++++++++++++++++++++++ ssl/ssl_aead_ctx.cc | 85 ++++++++++++++++++++++++++++++++++++++ ssl/test/runner/conn.go | 91 +++++++++++++++++++++++++++++++++++++---- ssl/test/runner/dtls.go | 35 +++++++++++++--- ssl/tls13_enc.cc | 31 ++++++++++---- 6 files changed, 336 insertions(+), 45 deletions(-) diff --git a/ssl/dtls_record.cc b/ssl/dtls_record.cc index 783e950af9..a83d6b19ca 100644 --- a/ssl/dtls_record.cc +++ b/ssl/dtls_record.cc @@ -195,7 +195,7 @@ uint64_t reconstruct_seqnum(uint16_t wire_seq, uint64_t seq_mask, return seqnum; } -static bool parse_dtls13_record_header(SSL *ssl, CBS *in, size_t packet_size, +static bool parse_dtls13_record_header(SSL *ssl, CBS *in, Span packet, uint8_t type, CBS *out_body, uint64_t *out_sequence, uint16_t *out_epoch, @@ -206,29 +206,23 @@ static bool parse_dtls13_record_header(SSL *ssl, CBS *in, size_t packet_size, // Connection ID bit set, which we didn't negotiate. return false; } + // TODO(crbug.com/boringssl/715): Add a runner test that performs many // key updates to verify epoch reconstruction works for epochs larger than // 3. *out_epoch = reconstruct_epoch(type, ssl->d1->r_epoch); + size_t seqlen = 1; if ((type & 0x08) == 0x08) { - // 16-bit sequence number. - uint16_t seq; - if (!CBS_get_u16(in, &seq)) { - // The record header was incomplete or malformed. - return false; - } - *out_sequence = - reconstruct_seqnum(seq, 0xffff, ssl->d1->bitmap.max_seq_num); - } else { - // 8-bit sequence number. - uint8_t seq; - if (!CBS_get_u8(in, &seq)) { - // The record header was incomplete or malformed. - return false; - } - *out_sequence = reconstruct_seqnum(seq, 0xff, ssl->d1->bitmap.max_seq_num); + // If this bit is set, the sequence number is 16 bits long, otherwise it is + // 8 bits. The seqlen variable tracks the length of the sequence number in + // bytes. + seqlen = 2; + } + if (!CBS_skip(in, seqlen)) { + // The record header was incomplete or malformed. + return false; } - *out_header_len = packet_size - CBS_len(in); + *out_header_len = packet.size() - CBS_len(in); if ((type & 0x04) == 0x04) { *out_header_len += 2; // 16-bit length present @@ -244,6 +238,26 @@ static bool parse_dtls13_record_header(SSL *ssl, CBS *in, size_t packet_size, return false; } } + + // Decrypt and reconstruct the sequence number: + uint8_t mask[AES_BLOCK_SIZE]; + SSLAEADContext *aead = ssl->s3->aead_read_ctx.get(); + if (!aead->GenerateRecordNumberMask(mask, *out_body)) { + // GenerateRecordNumberMask most likely failed because the record body was + // not long enough. + return false; + } + // Apply the mask to the sequence number as it exists in the header. The + // header (with the decrypted sequence number bytes) is used as the + // additional data for the AEAD function. Since we don't support Connection + // ID, the sequence number starts immediately after the type byte. + uint64_t seq = 0; + for (size_t i = 0; i < seqlen; i++) { + packet[i + 1] ^= mask[i]; + seq = (seq << 8) | packet[i + 1]; + } + *out_sequence = reconstruct_seqnum(seq, (1 << (seqlen * 8)) - 1, + ssl->d1->bitmap.max_seq_num); return true; } @@ -321,9 +335,8 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, // records use the old record header format. if ((type & 0xe0) == 0x20 && !aead->is_null_cipher() && aead->ProtocolVersion() >= TLS1_3_VERSION) { - valid_record_header = - parse_dtls13_record_header(ssl, &cbs, in.size(), type, &body, &sequence, - &epoch, &record_header_len); + valid_record_header = parse_dtls13_record_header( + ssl, &cbs, in, type, &body, &sequence, &epoch, &record_header_len); } else { valid_record_header = parse_dtls_plaintext_record_header( ssl, &cbs, in.size(), type, &body, &sequence, &epoch, @@ -539,8 +552,24 @@ bool dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out, return false; } - // TODO(crbug.com/boringssl/715): Perform record number encryption (RFC 9147 - // section 4.2.3). + // Perform record number encryption (RFC 9147 section 4.2.3). + if (dtls13_header) { + // Record number encryption uses bytes from the ciphertext as a sample to + // generate the mask used for encryption. For simplicity, pass in the whole + // ciphertext as the sample - GenerateRecordNumberMask will read only what + // it needs (and error if |sample| is too short). + Span sample = + MakeConstSpan(out + record_header_len, ciphertext_len); + // AES cipher suites require the mask be exactly AES_BLOCK_SIZE; ChaCha20 + // cipher suites have no requirements on the mask size. We only need the + // first two bytes from the mask. + uint8_t mask[AES_BLOCK_SIZE]; + if (!aead->GenerateRecordNumberMask(mask, sample)) { + return false; + } + out[1] ^= mask[0]; + out[2] ^= mask[1]; + } (*seq)++; *out_len = record_header_len + ciphertext_len; diff --git a/ssl/internal.h b/ssl/internal.h index febb676c90..e6518286f1 100644 --- a/ssl/internal.h +++ b/ssl/internal.h @@ -155,6 +155,7 @@ #include #include +#include #include #include #include @@ -811,6 +812,16 @@ bool tls1_prf(const EVP_MD *digest, Span out, // Encryption layer. +class RecordNumberEncrypter { + public: + virtual ~RecordNumberEncrypter() = default; + static constexpr bool kAllowUniquePtr = true; + + virtual size_t KeySize() = 0; + virtual bool SetKey(Span key) = 0; + virtual bool GenerateMask(Span out, Span sample) = 0; +}; + // SSLAEADContext contains information about an AEAD that is being used to // encrypt an SSL connection. class SSLAEADContext { @@ -916,6 +927,17 @@ class SSLAEADContext { bool GetIV(const uint8_t **out_iv, size_t *out_iv_len) const; + RecordNumberEncrypter *GetRecordNumberEncrypter() { + return rn_encrypter_.get(); + } + + // GenerateRecordNumberMask computes the mask used for DTLS 1.3 record number + // encryption (RFC 9147 section 4.2.3), writing it to |out|. The |out| buffer + // must be sized to AES_BLOCK_SIZE. The |sample| buffer must be at least 16 + // bytes, as required by the AES and ChaCha20 cipher suites in RFC 9147. Extra + // bytes in |sample| will be ignored. + bool GenerateRecordNumberMask(Span out, Span sample); + private: // GetAdditionalData returns the additional data, writing into |storage| if // necessary. @@ -924,6 +946,8 @@ class SSLAEADContext { uint64_t seqnum, size_t plaintext_len, Span header); + void CreateRecordNumberEncrypter(); + const SSL_CIPHER *cipher_; ScopedEVP_AEAD_CTX ctx_; // fixed_nonce_ contains any bytes of the nonce that are fixed for all @@ -932,6 +956,7 @@ class SSLAEADContext { uint8_t fixed_nonce_len_ = 0, variable_nonce_len_ = 0; // version_ is the wire version that should be used with this AEAD. uint16_t version_; + UniquePtr rn_encrypter_; // is_dtls_ is whether DTLS is being used with this AEAD. bool is_dtls_; // variable_nonce_included_in_record_ is true if the variable nonce @@ -951,6 +976,45 @@ class SSLAEADContext { bool ad_is_header_ : 1; }; +class AESRecordNumberEncrypter : public RecordNumberEncrypter { + public: + bool SetKey(Span key) override; + bool GenerateMask(Span out, Span sample) override; + + private: + AES_KEY key_; +}; + +class AES128RecordNumberEncrypter : public AESRecordNumberEncrypter { + public: + size_t KeySize() override; +}; + +class AES256RecordNumberEncrypter : public AESRecordNumberEncrypter { + public: + size_t KeySize() override; +}; + +class ChaChaRecordNumberEncrypter : public RecordNumberEncrypter { + public: + size_t KeySize() override; + bool SetKey(Span key) override; + bool GenerateMask(Span out, Span sample) override; + + private: + static const size_t kKeySize = 32; + uint8_t key_[kKeySize]; +}; + +#if defined(BORINGSSL_UNSAFE_FUZZER_MODE) +class NullRecordNumberEncrypter : public RecordNumberEncrypter { + public: + size_t KeySize() override; + bool SetKey(Span key) override; + bool GenerateMask(Span out, Span sample) override; +}; +#endif // BORINGSSL_UNSAFE_FUZZER_MODE + // DTLS replay bitmap. diff --git a/ssl/ssl_aead_ctx.cc b/ssl/ssl_aead_ctx.cc index 85617a4c5a..4f532e90db 100644 --- a/ssl/ssl_aead_ctx.cc +++ b/ssl/ssl_aead_ctx.cc @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -44,6 +45,7 @@ SSLAEADContext::SSLAEADContext(uint16_t version_arg, bool is_dtls_arg, omit_length_in_ad_(false), ad_is_header_(false) { OPENSSL_memset(fixed_nonce_, 0, sizeof(fixed_nonce_)); + CreateRecordNumberEncrypter(); } SSLAEADContext::~SSLAEADContext() {} @@ -145,6 +147,23 @@ UniquePtr SSLAEADContext::Create( return aead_ctx; } +void SSLAEADContext::CreateRecordNumberEncrypter() { + if (!cipher_) { + return; + } +#if defined(BORINGSSL_UNSAFE_FUZZER_MODE) + rn_encrypter_ = MakeUnique(); +#else + if (cipher_->algorithm_enc == SSL_AES128GCM) { + rn_encrypter_ = MakeUnique(); + } else if (cipher_->algorithm_enc == SSL_AES256GCM) { + rn_encrypter_ = MakeUnique(); + } else if (cipher_->algorithm_enc == SSL_CHACHA20POLY1305) { + rn_encrypter_ = MakeUnique(); + } +#endif // BORINGSSL_UNSAFE_FUZZER_MODE +} + UniquePtr SSLAEADContext::CreatePlaceholderForQUIC( uint16_t version, const SSL_CIPHER *cipher) { return MakeUnique(version, false, cipher); @@ -427,4 +446,70 @@ bool SSLAEADContext::GetIV(const uint8_t **out_iv, size_t *out_iv_len) const { EVP_AEAD_CTX_get_iv(ctx_.get(), out_iv, out_iv_len); } +bool SSLAEADContext::GenerateRecordNumberMask(Span out, + Span sample) { + if (!rn_encrypter_) { + return false; + } + return rn_encrypter_->GenerateMask(out, sample); +} + +size_t AES128RecordNumberEncrypter::KeySize() { return 16; } + +size_t AES256RecordNumberEncrypter::KeySize() { return 32; } + +bool AESRecordNumberEncrypter::SetKey(Span key) { + return AES_set_encrypt_key(key.data(), key.size() * 8, &key_) == 0; +} + +bool AESRecordNumberEncrypter::GenerateMask(Span out, + Span sample) { + if (sample.size() < AES_BLOCK_SIZE || out.size() != AES_BLOCK_SIZE) { + return false; + } + AES_encrypt(sample.data(), out.data(), &key_); + return true; +} + +size_t ChaChaRecordNumberEncrypter::KeySize() { return kKeySize; } + +bool ChaChaRecordNumberEncrypter::SetKey(Span key) { + if (key.size() != kKeySize) { + return false; + } + OPENSSL_memcpy(key_, key.data(), key.size()); + return true; +} + +bool ChaChaRecordNumberEncrypter::GenerateMask(Span out, + Span sample) { + Array zeroes; + if (!zeroes.Init(out.size())) { + return false; + } + OPENSSL_memset(zeroes.data(), 0, zeroes.size()); + // RFC 9147 section 4.2.3 uses the first 4 bytes of the sample as the counter + // and the next 12 bytes as the nonce. If we have less than 4+12=16 bytes in + // the sample, then we'll read past the end of the |sample| buffer. + if (sample.size() < 16) { + return false; + } + uint32_t counter = CRYPTO_load_u32_be(sample.data()); + Span nonce = sample.subspan(4); + CRYPTO_chacha_20(out.data(), zeroes.data(), zeroes.size(), key_, nonce.data(), + counter); + return true; +} + +#if defined(BORINGSSL_UNSAFE_FUZZER_MODE) +size_t NullRecordNumberEncrypter::KeySize() { return 0; } +bool NullRecordNumberEncrypter::SetKey(Span key) { return true; } + +bool NullRecordNumberEncrypter::GenerateMask(Span out, + Span sample) { + OPENSSL_memset(out.data(), 0, out.size()); + return true; +} +#endif // BORINGSSL_UNSAFE_FUZZER_MODE + BSSL_NAMESPACE_END diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index ce425a064b..1988ab2a0d 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -8,6 +8,7 @@ package runner import ( "bytes" + "crypto/aes" "crypto/cipher" "crypto/ecdsa" "crypto/subtle" @@ -19,6 +20,9 @@ import ( "net" "sync" "time" + + "golang.org/x/crypto/chacha20" + "golang.org/x/crypto/cryptobyte" ) // A Conn represents a secured connection. @@ -175,15 +179,16 @@ func (c *Conn) SetWriteDeadline(t time.Time) error { type halfConn struct { sync.Mutex - err error // first permanent error - version uint16 // protocol version - wireVersion uint16 // wire version - isDTLS bool - cipher any // cipher algorithm - mac macFunction - seq [8]byte // 64-bit sequence number - outSeq [8]byte // Mapped sequence number - bfree *block // list of free blocks + err error // first permanent error + version uint16 // protocol version + wireVersion uint16 // wire version + isDTLS bool + cipher any // cipher algorithm + recordNumberEncrypter recordNumberEncrypter + mac macFunction + seq [8]byte // 64-bit sequence number + outSeq [8]byte // Mapped sequence number + bfree *block // list of free blocks nextCipher any // next encryption state nextMac macFunction // next MAC algorithm @@ -253,6 +258,17 @@ func (hc *halfConn) useTrafficSecret(version uint16, suite *cipherSuite, secret } hc.version = protocolVersion hc.cipher = deriveTrafficAEAD(version, suite, secret, side, hc.isDTLS) + if hc.isDTLS && !hc.config.Bugs.NullAllCiphers { + sn_key := hkdfExpandLabel(suite.hash(), secret, []byte("sn"), nil, suite.keyLen, hc.isDTLS) + switch suite.id { + case TLS_CHACHA20_POLY1305_SHA256: + hc.recordNumberEncrypter = newChachaRecordNumberEncrypter(sn_key) + case TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384: + hc.recordNumberEncrypter = newAESRecordNumberEncrypter(sn_key) + default: + panic("Cipher suite does not support TLS 1.3") + } + } if hc.config.Bugs.NullAllCiphers { hc.cipher = nullCipher{} } @@ -762,6 +778,63 @@ func (hc *halfConn) splitBlock(b *block, n int) (*block, *block) { return b, bb } +type recordNumberEncrypter interface { + // GenerateMask takes a sample of the encrypted record and returns the + // mask used to encrypt and decrypt record numbers. + generateMask(sample []byte) []byte +} + +type aesRecordNumberEncrypter struct { + aesCipher cipher.Block +} + +func newAESRecordNumberEncrypter(key []byte) *aesRecordNumberEncrypter { + aesCipher, err := aes.NewCipher(key) + if err != nil { + panic("Incorrect usage of newAESRecordNumberEncrypter") + } + return &aesRecordNumberEncrypter{ + aesCipher: aesCipher, + } +} + +func (a *aesRecordNumberEncrypter) generateMask(sample []byte) []byte { + out := make([]byte, len(sample)) + a.aesCipher.Encrypt(out, sample) + return out +} + +type chachaRecordNumberEncrypter struct { + key []byte +} + +func newChachaRecordNumberEncrypter(key []byte) *chachaRecordNumberEncrypter { + out := &chachaRecordNumberEncrypter{ + key: key, + } + fmt.Printf("new RNE with key %x\n", key) + return out +} + +func (c *chachaRecordNumberEncrypter) generateMask(sample []byte) []byte { + var counter uint32 + nonce := make([]byte, 12) + sampleReader := cryptobyte.String(sample) + if !sampleReader.ReadUint32(&counter) || !sampleReader.CopyBytes(nonce) { + panic("chachaRecordNumberEncrypter.GenerateMask called with wrong size sample") + } + cipher, err := chacha20.NewUnauthenticatedCipher(c.key, nonce) + if err != nil { + panic("Failed to create chacha20 cipher for record number encryption") + } + cipher.SetCounter(counter) + zeroes := make([]byte, 2) + out := make([]byte, 2) + cipher.XORKeyStream(out, zeroes) + fmt.Printf("golang generateMask: sample: %x, key: %x, mask: %x\n", sample[:16], c.key, out) + return out +} + func (c *Conn) useInTrafficSecret(level encryptionLevel, version uint16, suite *cipherSuite, secret []byte) error { if c.hand.Len() != 0 { return c.in.setErrorLocked(errors.New("tls: buffered handshake messages on cipher change")) diff --git a/ssl/test/runner/dtls.go b/ssl/test/runner/dtls.go index f4921d4e95..8c723f237d 100644 --- a/ssl/test/runner/dtls.go +++ b/ssl/test/runner/dtls.go @@ -55,7 +55,13 @@ func (c *Conn) readDTLS13RecordHeader(b *block) (headerLen int, recordLen int, r c.sendAlert(alertIllegalParameter) return 0, 0, 0, nil, c.in.setErrorLocked(fmt.Errorf("dtls: bad epoch")) } - wireSeq := binary.BigEndian.Uint16(b.data[1:3]) + wireSeq := b.data[1:3] + if !c.config.Bugs.NullAllCiphers { + sample := b.data[recordHeaderLen:] + mask := c.in.recordNumberEncrypter.generateMask(sample) + xorSlice(wireSeq, mask) + } + decWireSeq := binary.BigEndian.Uint16(wireSeq) // Reconstruct the sequence number from the low 16 bits on the wire. // A real implementation would compute the full sequence number that is // closest to the highest successfully decrypted record in the @@ -67,7 +73,7 @@ func (c *Conn) readDTLS13RecordHeader(b *block) (headerLen int, recordLen int, r seqInt := binary.BigEndian.Uint64(c.in.seq[:]) // c.in.seq has the epoch in the upper two bytes - clear those. seqInt = seqInt &^ (0xffff << 48) - newSeq := seqInt&^0xffff | uint64(wireSeq) + newSeq := seqInt&^0xffff | uint64(decWireSeq) if newSeq < seqInt { newSeq += 0x10000 } @@ -500,7 +506,10 @@ func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int } copy(b.data[recordHeaderLen+explicitIVLen:], data) recordLen := c.addTLS13Padding(b, recordHeaderLen, len(data), typ) - if c.out.version < VersionTLS13 || c.out.cipher == nil || (c.config.Bugs.DTLSUsePlaintextRecordHeader && c.handshakeComplete) { + useDTLS13RecordHeader := c.out.version >= VersionTLS13 && c.out.cipher != nil && !(c.config.Bugs.DTLSUsePlaintextRecordHeader && c.handshakeComplete) + if useDTLS13RecordHeader { + c.writeDTLS13RecordHeader(b, recordLen) + } else { b.data[0] = byte(typ) b.data[1] = byte(vers >> 8) b.data[2] = byte(vers) @@ -508,10 +517,26 @@ func (c *Conn) dtlsPackRecord(typ recordType, data []byte, mustPack bool) (n int copy(b.data[3:11], c.out.outSeq[0:]) b.data[11] = byte(recordLen >> 8) b.data[12] = byte(recordLen) - } else { - c.writeDTLS13RecordHeader(b, recordLen) } + // encrypt will increment the sequence number. Copy it here to use when + // performing sequence number encryption. + seqBytes := make([]byte, 2) + copy(seqBytes, c.out.outSeq[6:8]) c.out.encrypt(b, explicitIVLen, typ) + if useDTLS13RecordHeader && !c.config.Bugs.NullAllCiphers { + recordHeaderLen := c.out.writeRecordHeaderLen() + sample := b.data[recordHeaderLen:] + mask := c.out.recordNumberEncrypter.generateMask(sample) + if c.config.DTLSUseShortSeqNums { + seqBytes = seqBytes[1:2] + } + xorSlice(seqBytes, mask) + for i := range seqBytes { + // The sequence number starts at index 1 in the record + // header. + b.data[1+i] = seqBytes[i] + } + } // Flush the current pending packet if necessary. if !mustPack && len(b.data)+len(c.pendingPacket) > c.config.Bugs.PackHandshakeRecords { diff --git a/ssl/tls13_enc.cc b/ssl/tls13_enc.cc index 1613a3a158..7c193a3757 100644 --- a/ssl/tls13_enc.cc +++ b/ssl/tls13_enc.cc @@ -184,6 +184,8 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level, const SSL_SESSION *session, Span traffic_secret) { uint16_t version = ssl_session_protocol_version(session); + const EVP_MD *digest = ssl_session_get_digest(session); + bool is_dtls = SSL_is_dtls(ssl); UniquePtr traffic_aead; Span secret_for_quic; if (ssl->quic_method != nullptr) { @@ -197,18 +199,16 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level, const EVP_AEAD *aead; size_t discard; if (!ssl_cipher_get_evp_aead(&aead, &discard, &discard, session->cipher, - version, SSL_is_dtls(ssl))) { + version, is_dtls)) { return false; } - const EVP_MD *digest = ssl_session_get_digest(session); - // Derive the key. size_t key_len = EVP_AEAD_key_length(aead); uint8_t key_buf[EVP_AEAD_MAX_KEY_LENGTH]; auto key = MakeSpan(key_buf, key_len); if (!hkdf_expand_label(key, digest, traffic_secret, label_to_span("key"), - {}, SSL_is_dtls(ssl))) { + {}, is_dtls)) { return false; } @@ -217,19 +217,34 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level, uint8_t iv_buf[EVP_AEAD_MAX_NONCE_LENGTH]; auto iv = MakeSpan(iv_buf, iv_len); if (!hkdf_expand_label(iv, digest, traffic_secret, label_to_span("iv"), {}, - SSL_is_dtls(ssl))) { + is_dtls)) { return false; } - traffic_aead = SSLAEADContext::Create(direction, session->ssl_version, - SSL_is_dtls(ssl), session->cipher, - key, Span(), iv); + traffic_aead = + SSLAEADContext::Create(direction, session->ssl_version, is_dtls, + session->cipher, key, Span(), iv); } if (!traffic_aead) { return false; } + if (is_dtls) { + RecordNumberEncrypter *rn_encrypter = + traffic_aead->GetRecordNumberEncrypter(); + if (!rn_encrypter) { + return false; + } + Array rne_key; + if (!rne_key.Init(rn_encrypter->KeySize()) || + !hkdf_expand_label(MakeSpan(rne_key), digest, traffic_secret, + label_to_span("sn"), {}, is_dtls) || + !rn_encrypter->SetKey(MakeSpan(rne_key))) { + return false; + } + } + if (traffic_secret.size() > OPENSSL_ARRAY_SIZE(ssl->s3->read_traffic_secret) || traffic_secret.size() > From dd23a9322fa33cf08aa110016a1bd254e7ab0d0a Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sat, 31 Aug 2024 12:46:53 -0400 Subject: [PATCH 63/81] Move ecp_nistz256_from_mont out of the header It used to be hand-written in assembly, so we tested it explicitly. But it's now a thin wrapper over mul_mont. Remove the ABI tests (no longer necessary) and convert the FromMont test vectors to MulMont. Change-Id: I94696ac7d1f548072702a717183dec8001a47ecb Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70807 Auto-Submit: David Benjamin Commit-Queue: Bob Beck Reviewed-by: Bob Beck --- crypto/fipsmodule/ec/p256-nistz.c.inc | 22 +++++++++----- crypto/fipsmodule/ec/p256-nistz.h | 8 ------ crypto/fipsmodule/ec/p256-nistz_test.cc | 17 ----------- crypto/fipsmodule/ec/p256-nistz_tests.txt | 35 +++++++++++++---------- 4 files changed, 35 insertions(+), 47 deletions(-) diff --git a/crypto/fipsmodule/ec/p256-nistz.c.inc b/crypto/fipsmodule/ec/p256-nistz.c.inc index 7d3e2fba4b..d0d6a06982 100644 --- a/crypto/fipsmodule/ec/p256-nistz.c.inc +++ b/crypto/fipsmodule/ec/p256-nistz.c.inc @@ -39,7 +39,7 @@ typedef P256_POINT_AFFINE PRECOMP256_ROW[64]; // One converted into the Montgomery domain -static const BN_ULONG ONE[P256_LIMBS] = { +static const BN_ULONG ONE_MONT[P256_LIMBS] = { TOBN(0x00000000, 0x00000001), TOBN(0xffffffff, 0x00000000), TOBN(0xffffffff, 0xffffffff), TOBN(0x00000000, 0xfffffffe), }; @@ -116,6 +116,14 @@ static BN_ULONG is_not_zero(BN_ULONG in) { return in; } +// ecp_nistz256_from_mont sets |res| to |in|, converted from Montgomery domain +// by multiplying with 1. +static void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG in[P256_LIMBS]) { + static const BN_ULONG ONE[P256_LIMBS] = {1}; + ecp_nistz256_mul_mont(res, in, ONE); +} + // ecp_nistz256_mod_inverse_sqr_mont sets |r| to (|in| * 2^-256)^-2 * 2^256 mod // p. That is, |r| is the modular inverse square of |in| for input and output in // the Montgomery domain. @@ -328,12 +336,12 @@ static void ecp_nistz256_point_mul_base(const EC_GROUP *group, EC_JACOBIAN *r, copy_conditional(t.Y, p.Z, wvalue & 1); // Convert |t| from affine to Jacobian coordinates. We set Z to zero if |t| - // is infinity and |ONE| otherwise. |t| was computed from the table, so it - // is infinity iff |wvalue >> 1| is zero. + // is infinity and |ONE_MONT| otherwise. |t| was computed from the table, so + // it is infinity iff |wvalue >> 1| is zero. OPENSSL_memcpy(p.X, t.X, sizeof(p.X)); OPENSSL_memcpy(p.Y, t.Y, sizeof(p.Y)); OPENSSL_memset(p.Z, 0, sizeof(p.Z)); - copy_conditional(p.Z, ONE, is_not_zero(wvalue >> 1)); + copy_conditional(p.Z, ONE_MONT, is_not_zero(wvalue >> 1)); for (int i = 1; i < 37; i++) { wvalue = calc_wvalue(&index, p_str); @@ -372,14 +380,14 @@ static void ecp_nistz256_points_mul_public(const EC_GROUP *group, size_t wvalue = calc_first_wvalue(&index, p_str); // Convert |p| from affine to Jacobian coordinates. We set Z to zero if |p| - // is infinity and |ONE| otherwise. |p| was computed from the table, so it - // is infinity iff |wvalue >> 1| is zero. + // is infinity and |ONE_MONT| otherwise. |p| was computed from the table, so + // it is infinity iff |wvalue >> 1| is zero. if ((wvalue >> 1) != 0) { OPENSSL_memcpy(p.X, &ecp_nistz256_precomputed[0][(wvalue >> 1) - 1].X, sizeof(p.X)); OPENSSL_memcpy(p.Y, &ecp_nistz256_precomputed[0][(wvalue >> 1) - 1].Y, sizeof(p.Y)); - OPENSSL_memcpy(p.Z, ONE, sizeof(p.Z)); + OPENSSL_memcpy(p.Z, ONE_MONT, sizeof(p.Z)); } else { OPENSSL_memset(p.X, 0, sizeof(p.X)); OPENSSL_memset(p.Y, 0, sizeof(p.Y)); diff --git a/crypto/fipsmodule/ec/p256-nistz.h b/crypto/fipsmodule/ec/p256-nistz.h index 3f5ea0210a..99aae95c00 100644 --- a/crypto/fipsmodule/ec/p256-nistz.h +++ b/crypto/fipsmodule/ec/p256-nistz.h @@ -56,14 +56,6 @@ void ecp_nistz256_mul_mont(BN_ULONG res[P256_LIMBS], void ecp_nistz256_sqr_mont(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]); -// ecp_nistz256_from_mont sets |res| to |in|, converted from Montgomery domain -// by multiplying with 1. -static inline void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS], - const BN_ULONG in[P256_LIMBS]) { - static const BN_ULONG ONE[P256_LIMBS] = { 1 }; - ecp_nistz256_mul_mont(res, in, ONE); -} - // P-256 scalar operations. // diff --git a/crypto/fipsmodule/ec/p256-nistz_test.cc b/crypto/fipsmodule/ec/p256-nistz_test.cc index 263db50309..781d1f860e 100644 --- a/crypto/fipsmodule/ec/p256-nistz_test.cc +++ b/crypto/fipsmodule/ec/p256-nistz_test.cc @@ -362,20 +362,6 @@ static void TestMulMont(FileTest *t) { } } -static void TestFromMont(FileTest *t) { - BN_ULONG a[P256_LIMBS], result[P256_LIMBS]; - ASSERT_TRUE(GetFieldElement(t, a, "A")); - ASSERT_TRUE(GetFieldElement(t, result, "Result")); - - BN_ULONG ret[P256_LIMBS]; - ecp_nistz256_from_mont(ret, a); - EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); - - OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_from_mont(ret, ret /* a */); - EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); -} - static void TestPointAdd(FileTest *t) { P256_POINT a, b; P256_POINT_AFFINE result; @@ -493,8 +479,6 @@ TEST(P256_NistzTest, TestVectors) { TestNegate(t); } else if (t->GetParameter() == "MulMont") { TestMulMont(t); - } else if (t->GetParameter() == "FromMont") { - TestFromMont(t); } else if (t->GetParameter() == "PointAdd") { TestPointAdd(t); } else if (t->GetParameter() == "OrdMulMont") { @@ -514,7 +498,6 @@ TEST(P256_NistzTest, ABI) { CHECK_ABI(ecp_nistz256_neg, b, a); CHECK_ABI(ecp_nistz256_mul_mont, c, a, b); CHECK_ABI(ecp_nistz256_sqr_mont, c, a); - CHECK_ABI(ecp_nistz256_from_mont, c, a); CHECK_ABI(ecp_nistz256_ord_mul_mont, c, a, b); // Check a few different loop counts. diff --git a/crypto/fipsmodule/ec/p256-nistz_tests.txt b/crypto/fipsmodule/ec/p256-nistz_tests.txt index 8bc301e876..099564f071 100644 --- a/crypto/fipsmodule/ec/p256-nistz_tests.txt +++ b/crypto/fipsmodule/ec/p256-nistz_tests.txt @@ -1138,49 +1138,54 @@ A = 71c328ce472ae74b5028b21f9d1997e0f7dbcee979a8f9fdecfa5d37d359c835 B = 71c328ce472ae74b5028b21f9d1997e0f7dbcee979a8f9fdecfa5d37d359c835 Result = c3472fafd01fc3ed93a91ab65411cb852bd5839603a02ca6cdfbadcb9ac474a0 - -# Montgomery conversion tests. -# -# The following tests satisfy A * 2^-256 = Result (mod P). - -Test = FromMont +Test = MulMont A = 0585a3dada9bb283fd8db4fc46c106d28f95b8cf159a405891196dbb9ce0b5cf +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = d198d054d25a069c40cdeeb968a5562a67c3ef659297169e4be872f234897dc0 -Test = FromMont +Test = MulMont A = 9ff49a4a3f810fd34ca6f37fb1b3c40e61bc0492227e91e41cbe06bd58ba65b8 +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 326a061b2047d9ba4eddaba9b1fe253d5b2a24e268e3f8810767bef8cda07643 -Test = FromMont +Test = MulMont A = 05a69f8f646494be65affbd44d0536ca098d6f3640e80b5e48764ab78928cf58 +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 5a6f9c7025d4063480c400fe6f271cf3a3d2c43f9e1ceac21a88208c28329731 -Test = FromMont +Test = MulMont A = 256481a9e52d692719330a6f1208d9eca4ddd919aee06e234cbbde77d245501b +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = fe9fc86a2ff61a0c981d5e86c5472248e071e9639521c5be43947bfffc7d5858 -Test = FromMont +Test = MulMont A = 2062ef333cadefc36ced52a2ea7e4215b1fca29283baa1e3be76e321f1b213f0 +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 961ce39c3bf1d699b4b61ded8a5beae6eb6185d21f1df435b079b1f6a79dc738 -Test = FromMont +Test = MulMont A = 97241c3651a8f9d2fc02730f15c3e09e48d2e645cfe927385cb81d3f454414fb +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 2114225803efe7b6c7fbb290cb946da4e78697aad5624c2d3fe9fb568460b93c -Test = FromMont +Test = MulMont A = 1aae0ad2c8ac988e11beda32ca7257f4d4de41f4b74452fa46f0a3bafb39262a +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 77c884131c34a2c3acce8a69dc5cf55987b7999c70586a9ef3c0dfb634900296 -Test = FromMont +Test = MulMont A = 034de033e2d38cf8bec8a994414b64a2fce7c83c5d81efc3d21448225071e85d +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 984fecbde84f393133fb602777b4395c56449d2cbbd7d8ae428b2ee6f82a2956 -Test = FromMont +Test = MulMont A = d2b296c2004b2761b6781311c924cbf5ff56dcc0900ed5cd24f5dd2e07f32633 +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = ddcff6e031b859a814ce8f37b71c10cd5fb642af54af72deabb95adcb99307b1 -Test = FromMont +Test = MulMont A = 8f525e6af50a62fc176dec75bdf48f70ba8ab97323ba78c643ef07f6457ba070 +B = 0000000000000000000000000000000000000000000000000000000000000001 Result = 8fa95d57aae2fff79045654501478f7a394b27b8b54113a25ac74662606f767c From 517fd770651451e9de2ad22c813df50cd8821cfc Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 3 Sep 2024 14:43:42 -0400 Subject: [PATCH 64/81] Remove some stray debugging Looks like this landed by mistake Change-Id: Ifbe775d172c0c6c9df2e656097c986d6f7bd55a3 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70827 Auto-Submit: David Benjamin Commit-Queue: Bob Beck Reviewed-by: Bob Beck --- ssl/test/runner/conn.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/ssl/test/runner/conn.go b/ssl/test/runner/conn.go index 1988ab2a0d..12373055a8 100644 --- a/ssl/test/runner/conn.go +++ b/ssl/test/runner/conn.go @@ -812,7 +812,6 @@ func newChachaRecordNumberEncrypter(key []byte) *chachaRecordNumberEncrypter { out := &chachaRecordNumberEncrypter{ key: key, } - fmt.Printf("new RNE with key %x\n", key) return out } @@ -831,7 +830,6 @@ func (c *chachaRecordNumberEncrypter) generateMask(sample []byte) []byte { zeroes := make([]byte, 2) out := make([]byte, 2) cipher.XORKeyStream(out, zeroes) - fmt.Printf("golang generateMask: sample: %x, key: %x, mask: %x\n", sample[:16], c.key, out) return out } From d4ae47e5884c815c90579fa548ac600f7b9ba12a Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 3 Sep 2024 14:46:30 -0400 Subject: [PATCH 65/81] Mark the CPU capability helpers as const, not just pure If we have code like this, the compiler will not currently dedup the capability check: void foo() { if (CRYPTO_is_AVX2_capable()) { foo_avx2(); } else { foo_nohw(); } } foo(); foo(); foo(); This is because a pure function may still inspect some globals and the compiler doesn't know that foo_avx2() does not change the output of CRYPTO_is_AVX2_capable(). We'd really like that to turn into: if (CRYPTO_is_AVX2_capable()) { foo_avx2(); foo_avx2(); foo_avx2(); } else { foo_nohw(); foo_nohw(); foo_nohw(); } Strictly speaking, these functions are not const because they inspect a global variable and a test might modify OPENSSL_get_armcap_pointer_for_test(). However, that internal, test-only function is already documented as needing to be resolved before any other BoringSSL function is called. When that rule is heeded, const is fine. Bug: 42290548 Change-Id: I1737fd00d443e8854294dcc8446b7b0aa38ffc76 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70828 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/internal.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/crypto/internal.h b/crypto/internal.h index 5ca29ae2a0..8944a99d79 100644 --- a/crypto/internal.h +++ b/crypto/internal.h @@ -274,9 +274,9 @@ typedef __uint128_t uint128_t; #endif #if defined(__GNUC__) || defined(__clang__) -#define OPENSSL_ATTR_PURE __attribute__((pure)) +#define OPENSSL_ATTR_CONST __attribute__((const)) #else -#define OPENSSL_ATTR_PURE +#define OPENSSL_ATTR_CONST #endif #if defined(BORINGSSL_MALLOC_FAILURE_TESTING) @@ -1404,9 +1404,9 @@ OPENSSL_INLINE int boringssl_fips_break_test(const char *test) { extern uint32_t OPENSSL_ia32cap_P[4]; // OPENSSL_get_ia32cap initializes the library if needed and returns the |idx|th -// entry of |OPENSSL_ia32cap_P|. It is marked as a pure function so duplicate +// entry of |OPENSSL_ia32cap_P|. It is marked as a const function so duplicate // calls can be merged by the compiler, at least when indices match. -OPENSSL_ATTR_PURE uint32_t OPENSSL_get_ia32cap(int idx); +OPENSSL_ATTR_CONST uint32_t OPENSSL_get_ia32cap(int idx); // See Intel manual, volume 2A, table 3-11. @@ -1615,9 +1615,9 @@ OPENSSL_INLINE int CRYPTO_is_VPCLMULQDQ_capable(void) { extern uint32_t OPENSSL_armcap_P; // OPENSSL_get_armcap initializes the library if needed and returns ARM CPU -// capabilities. It is marked as a pure function so duplicate calls can be -// merged by the compiler, at least when indices match. -OPENSSL_ATTR_PURE uint32_t OPENSSL_get_armcap(void); +// capabilities. It is marked as a const function so duplicate calls can be +// merged by the compiler. +OPENSSL_ATTR_CONST uint32_t OPENSSL_get_armcap(void); // We do not detect any features at runtime on several 32-bit Arm platforms. // Apple platforms and OpenBSD require NEON and moved to 64-bit to pick up Armv8 From 6b9ca1a09f398fafdb70b25355615be610395eb0 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Fri, 3 May 2024 22:44:50 -0400 Subject: [PATCH 66/81] Remove OPENSSL_ia32cap_P references from P-256 assembly Bug: 42290548 Change-Id: I16c456fe04b5582210cb2915c5b3730ba5dc2f58 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70808 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl | 546 ++++++++++---------- crypto/fipsmodule/ec/p256-nistz.c.inc | 94 +++- crypto/fipsmodule/ec/p256-nistz.h | 65 +++ crypto/fipsmodule/ec/p256-nistz_test.cc | 257 ++++++--- gen/bcm/p256-x86_64-asm-apple.S | 272 +++++----- gen/bcm/p256-x86_64-asm-linux.S | 349 +++++++------ gen/bcm/p256-x86_64-asm-win.asm | 481 +++++++++-------- 7 files changed, 1231 insertions(+), 833 deletions(-) diff --git a/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl b/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl index b6e03845f1..e3f034ef84 100755 --- a/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl +++ b/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl @@ -59,7 +59,6 @@ $code.=<<___; .text -.extern OPENSSL_ia32cap_P # The polynomial .section .rodata @@ -162,21 +161,12 @@ # uint64_t a[4], # uint64_t b[4]); -.globl ecp_nistz256_ord_mul_mont -.type ecp_nistz256_ord_mul_mont,\@function,3 +.globl ecp_nistz256_ord_mul_mont_nohw +.type ecp_nistz256_ord_mul_mont_nohw,\@function,3 .align 32 -ecp_nistz256_ord_mul_mont: +ecp_nistz256_ord_mul_mont_nohw: .cfi_startproc _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx - cmp \$0x80100, %ecx - je .Lecp_nistz256_ord_mul_montx -___ -$code.=<<___; push %rbp .cfi_push %rbp push %rbx @@ -486,7 +476,7 @@ .Lord_mul_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_mul_mont,.-ecp_nistz256_ord_mul_mont +.size ecp_nistz256_ord_mul_mont_nohw,.-ecp_nistz256_ord_mul_mont_nohw ################################################################################ # void ecp_nistz256_ord_sqr_mont( @@ -494,21 +484,12 @@ # uint64_t a[4], # uint64_t rep); -.globl ecp_nistz256_ord_sqr_mont -.type ecp_nistz256_ord_sqr_mont,\@function,3 +.globl ecp_nistz256_ord_sqr_mont_nohw +.type ecp_nistz256_ord_sqr_mont_nohw,\@function,3 .align 32 -ecp_nistz256_ord_sqr_mont: +ecp_nistz256_ord_sqr_mont_nohw: .cfi_startproc _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx - cmp \$0x80100, %ecx - je .Lecp_nistz256_ord_sqr_montx -___ -$code.=<<___; push %rbp .cfi_push %rbp push %rbx @@ -788,16 +769,18 @@ .Lord_sqr_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_sqr_mont,.-ecp_nistz256_ord_sqr_mont +.size ecp_nistz256_ord_sqr_mont_nohw,.-ecp_nistz256_ord_sqr_mont_nohw ___ $code.=<<___ if ($addx); ################################################################################ -.type ecp_nistz256_ord_mul_montx,\@function,3 +.globl ecp_nistz256_ord_mul_mont_adx +.type ecp_nistz256_ord_mul_mont_adx,\@function,3 .align 32 -ecp_nistz256_ord_mul_montx: +ecp_nistz256_ord_mul_mont_adx: .cfi_startproc -.Lecp_nistz256_ord_mul_montx: +.Lecp_nistz256_ord_mul_mont_adx: + _CET_ENDBR push %rbp .cfi_push %rbp push %rbx @@ -1027,13 +1010,15 @@ .Lord_mulx_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_mul_montx,.-ecp_nistz256_ord_mul_montx +.size ecp_nistz256_ord_mul_mont_adx,.-ecp_nistz256_ord_mul_mont_adx -.type ecp_nistz256_ord_sqr_montx,\@function,3 +.globl ecp_nistz256_ord_sqr_mont_adx +.type ecp_nistz256_ord_sqr_mont_adx,\@function,3 .align 32 -ecp_nistz256_ord_sqr_montx: +ecp_nistz256_ord_sqr_mont_adx: .cfi_startproc -.Lecp_nistz256_ord_sqr_montx: + _CET_ENDBR +.Lecp_nistz256_ord_sqr_mont_adx: push %rbp .cfi_push %rbp push %rbx @@ -1235,7 +1220,7 @@ .Lord_sqrx_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_sqr_montx,.-ecp_nistz256_ord_sqr_montx +.size ecp_nistz256_ord_sqr_mont_adx,.-ecp_nistz256_ord_sqr_mont_adx ___ $code.=<<___; @@ -1245,20 +1230,12 @@ # uint64_t a[4], # uint64_t b[4]); -.globl ecp_nistz256_mul_mont -.type ecp_nistz256_mul_mont,\@function,3 +.globl ecp_nistz256_mul_mont_nohw +.type ecp_nistz256_mul_mont_nohw,\@function,3 .align 32 -ecp_nistz256_mul_mont: +ecp_nistz256_mul_mont_nohw: .cfi_startproc _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx -___ -$code.=<<___; -.Lmul_mont: push %rbp .cfi_push %rbp push %rbx @@ -1272,12 +1249,6 @@ push %r15 .cfi_push %r15 .Lmul_body: -___ -$code.=<<___ if ($addx); - cmp \$0x80100, %ecx - je .Lmul_montx -___ -$code.=<<___; mov $b_org, $b_ptr mov 8*0($b_org), %rax mov 8*0($a_ptr), $acc1 @@ -1286,24 +1257,7 @@ mov 8*3($a_ptr), $acc4 call __ecp_nistz256_mul_montq -___ -$code.=<<___ if ($addx); - jmp .Lmul_mont_done -.align 32 -.Lmul_montx: - mov $b_org, $b_ptr - mov 8*0($b_org), %rdx - mov 8*0($a_ptr), $acc1 - mov 8*1($a_ptr), $acc2 - mov 8*2($a_ptr), $acc3 - mov 8*3($a_ptr), $acc4 - lea -128($a_ptr), $a_ptr # control u-op density - - call __ecp_nistz256_mul_montx -___ -$code.=<<___; -.Lmul_mont_done: mov 0(%rsp),%r15 .cfi_restore %r15 mov 8(%rsp),%r14 @@ -1321,7 +1275,7 @@ .Lmul_epilogue: ret .cfi_endproc -.size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont +.size ecp_nistz256_mul_mont_nohw,.-ecp_nistz256_mul_mont_nohw .type __ecp_nistz256_mul_montq,\@abi-omnipotent .align 32 @@ -1548,19 +1502,12 @@ # we optimize the square according to S.Gueron and V.Krasnov, # "Speeding up Big-Number Squaring" -.globl ecp_nistz256_sqr_mont -.type ecp_nistz256_sqr_mont,\@function,2 +.globl ecp_nistz256_sqr_mont_nohw +.type ecp_nistz256_sqr_mont_nohw,\@function,2 .align 32 -ecp_nistz256_sqr_mont: +ecp_nistz256_sqr_mont_nohw: .cfi_startproc _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx -___ -$code.=<<___; push %rbp .cfi_push %rbp push %rbx @@ -1574,34 +1521,13 @@ push %r15 .cfi_push %r15 .Lsqr_body: -___ -$code.=<<___ if ($addx); - cmp \$0x80100, %ecx - je .Lsqr_montx -___ -$code.=<<___; mov 8*0($a_ptr), %rax mov 8*1($a_ptr), $acc6 mov 8*2($a_ptr), $acc7 mov 8*3($a_ptr), $acc0 call __ecp_nistz256_sqr_montq -___ -$code.=<<___ if ($addx); - jmp .Lsqr_mont_done - -.align 32 -.Lsqr_montx: - mov 8*0($a_ptr), %rdx - mov 8*1($a_ptr), $acc6 - mov 8*2($a_ptr), $acc7 - mov 8*3($a_ptr), $acc0 - lea -128($a_ptr), $a_ptr # control u-op density - call __ecp_nistz256_sqr_montx -___ -$code.=<<___; -.Lsqr_mont_done: mov 0(%rsp),%r15 .cfi_restore %r15 mov 8(%rsp),%r14 @@ -1619,7 +1545,7 @@ .Lsqr_epilogue: ret .cfi_endproc -.size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont +.size ecp_nistz256_sqr_mont_nohw,.-ecp_nistz256_sqr_mont_nohw .type __ecp_nistz256_sqr_montq,\@abi-omnipotent .align 32 @@ -1788,6 +1714,54 @@ if ($addx) { $code.=<<___; +.globl ecp_nistz256_mul_mont_adx +.type ecp_nistz256_mul_mont_adx,\@function,3 +.align 32 +ecp_nistz256_mul_mont_adx: +.cfi_startproc + _CET_ENDBR + push %rbp +.cfi_push %rbp + push %rbx +.cfi_push %rbx + push %r12 +.cfi_push %r12 + push %r13 +.cfi_push %r13 + push %r14 +.cfi_push %r14 + push %r15 +.cfi_push %r15 +.Lmulx_body: + mov $b_org, $b_ptr + mov 8*0($b_org), %rdx + mov 8*0($a_ptr), $acc1 + mov 8*1($a_ptr), $acc2 + mov 8*2($a_ptr), $acc3 + mov 8*3($a_ptr), $acc4 + lea -128($a_ptr), $a_ptr # control u-op density + + call __ecp_nistz256_mul_montx + + mov 0(%rsp),%r15 +.cfi_restore %r15 + mov 8(%rsp),%r14 +.cfi_restore %r14 + mov 16(%rsp),%r13 +.cfi_restore %r13 + mov 24(%rsp),%r12 +.cfi_restore %r12 + mov 32(%rsp),%rbx +.cfi_restore %rbx + mov 40(%rsp),%rbp +.cfi_restore %rbp + lea 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lmulx_epilogue: + ret +.cfi_endproc +.size ecp_nistz256_mul_mont_adx,.-ecp_nistz256_mul_mont_adx + .type __ecp_nistz256_mul_montx,\@abi-omnipotent .align 32 __ecp_nistz256_mul_montx: @@ -1957,6 +1931,52 @@ .cfi_endproc .size __ecp_nistz256_mul_montx,.-__ecp_nistz256_mul_montx +.globl ecp_nistz256_sqr_mont_adx +.type ecp_nistz256_sqr_mont_adx,\@function,2 +.align 32 +ecp_nistz256_sqr_mont_adx: +.cfi_startproc + _CET_ENDBR + push %rbp +.cfi_push %rbp + push %rbx +.cfi_push %rbx + push %r12 +.cfi_push %r12 + push %r13 +.cfi_push %r13 + push %r14 +.cfi_push %r14 + push %r15 +.cfi_push %r15 +.Lsqrx_body: + mov 8*0($a_ptr), %rdx + mov 8*1($a_ptr), $acc6 + mov 8*2($a_ptr), $acc7 + mov 8*3($a_ptr), $acc0 + lea -128($a_ptr), $a_ptr # control u-op density + + call __ecp_nistz256_sqr_montx + + mov 0(%rsp),%r15 +.cfi_restore %r15 + mov 8(%rsp),%r14 +.cfi_restore %r14 + mov 16(%rsp),%r13 +.cfi_restore %r13 + mov 24(%rsp),%r12 +.cfi_restore %r12 + mov 32(%rsp),%rbx +.cfi_restore %rbx + mov 40(%rsp),%rbp +.cfi_restore %rbp + lea 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lsqrx_epilogue: + ret +.cfi_endproc +.size ecp_nistz256_sqr_mont_adx,.-ecp_nistz256_sqr_mont_adx + .type __ecp_nistz256_sqr_montx,\@abi-omnipotent .align 32 __ecp_nistz256_sqr_montx: @@ -2097,23 +2117,17 @@ $code.=<<___; ################################################################################ -# void ecp_nistz256_select_w5(uint64_t *val, uint64_t *in_t, int index); -.globl ecp_nistz256_select_w5 -.type ecp_nistz256_select_w5,\@abi-omnipotent +# void ecp_nistz256_select_w5_nohw(uint64_t *val, uint64_t *in_t, int index); +.globl ecp_nistz256_select_w5_nohw +.type ecp_nistz256_select_w5_nohw,\@abi-omnipotent .align 32 -ecp_nistz256_select_w5: +ecp_nistz256_select_w5_nohw: .cfi_startproc _CET_ENDBR ___ -$code.=<<___ if ($avx>1); - leaq OPENSSL_ia32cap_P(%rip), %rax - mov 8(%rax), %rax - test \$`1<<5`, %eax - jnz .Lavx2_select_w5 -___ $code.=<<___ if ($win64); lea -0x88(%rsp), %rax -.LSEH_begin_ecp_nistz256_select_w5: +.LSEH_begin_ecp_nistz256_select_w5_nohw: .byte 0x48,0x8d,0x60,0xe0 #lea -0x20(%rax), %rsp .byte 0x0f,0x29,0x70,0xe0 #movaps %xmm6, -0x20(%rax) .byte 0x0f,0x29,0x78,0xf0 #movaps %xmm7, -0x10(%rax) @@ -2194,27 +2208,21 @@ $code.=<<___; ret .cfi_endproc -.LSEH_end_ecp_nistz256_select_w5: -.size ecp_nistz256_select_w5,.-ecp_nistz256_select_w5 +.LSEH_end_ecp_nistz256_select_w5_nohw: +.size ecp_nistz256_select_w5_nohw,.-ecp_nistz256_select_w5_nohw ################################################################################ -# void ecp_nistz256_select_w7(uint64_t *val, uint64_t *in_t, int index); -.globl ecp_nistz256_select_w7 -.type ecp_nistz256_select_w7,\@abi-omnipotent +# void ecp_nistz256_select_w7_nohw(uint64_t *val, uint64_t *in_t, int index); +.globl ecp_nistz256_select_w7_nohw +.type ecp_nistz256_select_w7_nohw,\@abi-omnipotent .align 32 -ecp_nistz256_select_w7: +ecp_nistz256_select_w7_nohw: .cfi_startproc _CET_ENDBR ___ -$code.=<<___ if ($avx>1); - leaq OPENSSL_ia32cap_P(%rip), %rax - mov 8(%rax), %rax - test \$`1<<5`, %eax - jnz .Lavx2_select_w7 -___ $code.=<<___ if ($win64); lea -0x88(%rsp), %rax -.LSEH_begin_ecp_nistz256_select_w7: +.LSEH_begin_ecp_nistz256_select_w7_nohw: .byte 0x48,0x8d,0x60,0xe0 #lea -0x20(%rax), %rsp .byte 0x0f,0x29,0x70,0xe0 #movaps %xmm6, -0x20(%rax) .byte 0x0f,0x29,0x78,0xf0 #movaps %xmm7, -0x10(%rax) @@ -2284,8 +2292,8 @@ $code.=<<___; ret .cfi_endproc -.LSEH_end_ecp_nistz256_select_w7: -.size ecp_nistz256_select_w7,.-ecp_nistz256_select_w7 +.LSEH_end_ecp_nistz256_select_w7_nohw: +.size ecp_nistz256_select_w7_nohw,.-ecp_nistz256_select_w7_nohw ___ } if ($avx>1) { @@ -2296,18 +2304,19 @@ $code.=<<___; ################################################################################ -# void ecp_nistz256_avx2_select_w5(uint64_t *val, uint64_t *in_t, int index); -.type ecp_nistz256_avx2_select_w5,\@abi-omnipotent +# void ecp_nistz256_select_w5_avx2(uint64_t *val, uint64_t *in_t, int index); +.globl ecp_nistz256_select_w5_avx2 +.type ecp_nistz256_select_w5_avx2,\@abi-omnipotent .align 32 -ecp_nistz256_avx2_select_w5: +ecp_nistz256_select_w5_avx2: .cfi_startproc -.Lavx2_select_w5: + _CET_ENDBR vzeroupper ___ $code.=<<___ if ($win64); lea -0x88(%rsp), %rax mov %rsp,%r11 -.LSEH_begin_ecp_nistz256_avx2_select_w5: +.LSEH_begin_ecp_nistz256_select_w5_avx2: .byte 0x48,0x8d,0x60,0xe0 # lea -0x20(%rax), %rsp .byte 0xc5,0xf8,0x29,0x70,0xe0 # vmovaps %xmm6, -0x20(%rax) .byte 0xc5,0xf8,0x29,0x78,0xf0 # vmovaps %xmm7, -0x10(%rax) @@ -2389,8 +2398,8 @@ $code.=<<___; ret .cfi_endproc -.LSEH_end_ecp_nistz256_avx2_select_w5: -.size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5 +.LSEH_end_ecp_nistz256_select_w5_avx2: +.size ecp_nistz256_select_w5_avx2,.-ecp_nistz256_select_w5_avx2 ___ } if ($avx>1) { @@ -2403,20 +2412,19 @@ $code.=<<___; ################################################################################ -# void ecp_nistz256_avx2_select_w7(uint64_t *val, uint64_t *in_t, int index); -.globl ecp_nistz256_avx2_select_w7 -.type ecp_nistz256_avx2_select_w7,\@abi-omnipotent +# void ecp_nistz256_select_w7_avx2(uint64_t *val, uint64_t *in_t, int index); +.globl ecp_nistz256_select_w7_avx2 +.type ecp_nistz256_select_w7_avx2,\@abi-omnipotent .align 32 -ecp_nistz256_avx2_select_w7: +ecp_nistz256_select_w7_avx2: .cfi_startproc -.Lavx2_select_w7: _CET_ENDBR vzeroupper ___ $code.=<<___ if ($win64); mov %rsp,%r11 lea -0x88(%rsp), %rax -.LSEH_begin_ecp_nistz256_avx2_select_w7: +.LSEH_begin_ecp_nistz256_select_w7_avx2: .byte 0x48,0x8d,0x60,0xe0 # lea -0x20(%rax), %rsp .byte 0xc5,0xf8,0x29,0x70,0xe0 # vmovaps %xmm6, -0x20(%rax) .byte 0xc5,0xf8,0x29,0x78,0xf0 # vmovaps %xmm7, -0x10(%rax) @@ -2513,19 +2521,19 @@ $code.=<<___; ret .cfi_endproc -.LSEH_end_ecp_nistz256_avx2_select_w7: -.size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7 +.LSEH_end_ecp_nistz256_select_w7_avx2: +.size ecp_nistz256_select_w7_avx2,.-ecp_nistz256_select_w7_avx2 ___ } else { $code.=<<___; -.globl ecp_nistz256_avx2_select_w7 -.type ecp_nistz256_avx2_select_w7,\@function,3 +.globl ecp_nistz256_select_w7_avx2 +.type ecp_nistz256_select_w7_avx2,\@function,3 .align 32 -ecp_nistz256_avx2_select_w7: +ecp_nistz256_select_w7_avx2: _CET_ENDBR .byte 0x0f,0x0b # ud2 ret -.size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7 +.size ecp_nistz256_select_w7_avx2,.-ecp_nistz256_select_w7_avx2 ___ } {{{ @@ -2718,38 +2726,20 @@ () if ($x ne "x") { $src0 = "%rax"; - $sfx = ""; + $sfx = "_nohw"; $bias = 0; - -$code.=<<___; -.globl ecp_nistz256_point_double -.type ecp_nistz256_point_double,\@function,2 -.align 32 -ecp_nistz256_point_double: -.cfi_startproc - _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx - cmp \$0x80100, %ecx - je .Lpoint_doublex -___ } else { $src0 = "%rdx"; - $sfx = "x"; + $sfx = "_adx"; $bias = 128; - + } $code.=<<___; -.type ecp_nistz256_point_doublex,\@function,2 +.globl ecp_nistz256_point_double$sfx +.type ecp_nistz256_point_double$sfx,\@function,2 .align 32 -ecp_nistz256_point_doublex: +ecp_nistz256_point_double$sfx: .cfi_startproc -.Lpoint_doublex: -___ - } -$code.=<<___; + _CET_ENDBR push %rbp .cfi_push %rbp push %rbx @@ -2971,38 +2961,20 @@ () if ($x ne "x") { $src0 = "%rax"; - $sfx = ""; + $sfx = "_nohw"; $bias = 0; - -$code.=<<___; -.globl ecp_nistz256_point_add -.type ecp_nistz256_point_add,\@function,3 -.align 32 -ecp_nistz256_point_add: -.cfi_startproc - _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx - cmp \$0x80100, %ecx - je .Lpoint_addx -___ } else { $src0 = "%rdx"; - $sfx = "x"; + $sfx = "_adx"; $bias = 128; - + } $code.=<<___; -.type ecp_nistz256_point_addx,\@function,3 +.globl ecp_nistz256_point_add$sfx +.type ecp_nistz256_point_add$sfx,\@function,3 .align 32 -ecp_nistz256_point_addx: +ecp_nistz256_point_add$sfx: .cfi_startproc -.Lpoint_addx: -___ - } -$code.=<<___; + _CET_ENDBR push %rbp .cfi_push %rbp push %rbx @@ -3370,38 +3342,20 @@ () if ($x ne "x") { $src0 = "%rax"; - $sfx = ""; + $sfx = "_nohw"; $bias = 0; - -$code.=<<___; -.globl ecp_nistz256_point_add_affine -.type ecp_nistz256_point_add_affine,\@function,3 -.align 32 -ecp_nistz256_point_add_affine: -.cfi_startproc - _CET_ENDBR -___ -$code.=<<___ if ($addx); - leaq OPENSSL_ia32cap_P(%rip), %rcx - mov 8(%rcx), %rcx - and \$0x80100, %ecx - cmp \$0x80100, %ecx - je .Lpoint_add_affinex -___ } else { $src0 = "%rdx"; - $sfx = "x"; + $sfx = "_adx"; $bias = 128; - + } $code.=<<___; -.type ecp_nistz256_point_add_affinex,\@function,3 +.globl ecp_nistz256_point_add_affine$sfx +.type ecp_nistz256_point_add_affine$sfx,\@function,3 .align 32 -ecp_nistz256_point_add_affinex: +ecp_nistz256_point_add_affine$sfx: .cfi_startproc -.Lpoint_add_affinex: -___ - } -$code.=<<___; + _CET_ENDBR push %rbp .cfi_push %rbp push %rbx @@ -3985,74 +3939,84 @@ () .rva .LSEH_end_ecp_nistz256_neg .rva .LSEH_info_ecp_nistz256_neg - .rva .LSEH_begin_ecp_nistz256_ord_mul_mont - .rva .LSEH_end_ecp_nistz256_ord_mul_mont - .rva .LSEH_info_ecp_nistz256_ord_mul_mont + .rva .LSEH_begin_ecp_nistz256_ord_mul_mont_nohw + .rva .LSEH_end_ecp_nistz256_ord_mul_mont_nohw + .rva .LSEH_info_ecp_nistz256_ord_mul_mont_nohw - .rva .LSEH_begin_ecp_nistz256_ord_sqr_mont - .rva .LSEH_end_ecp_nistz256_ord_sqr_mont - .rva .LSEH_info_ecp_nistz256_ord_sqr_mont + .rva .LSEH_begin_ecp_nistz256_ord_sqr_mont_nohw + .rva .LSEH_end_ecp_nistz256_ord_sqr_mont_nohw + .rva .LSEH_info_ecp_nistz256_ord_sqr_mont_nohw ___ $code.=<<___ if ($addx); - .rva .LSEH_begin_ecp_nistz256_ord_mul_montx - .rva .LSEH_end_ecp_nistz256_ord_mul_montx - .rva .LSEH_info_ecp_nistz256_ord_mul_montx + .rva .LSEH_begin_ecp_nistz256_ord_mul_mont_adx + .rva .LSEH_end_ecp_nistz256_ord_mul_mont_adx + .rva .LSEH_info_ecp_nistz256_ord_mul_mont_adx - .rva .LSEH_begin_ecp_nistz256_ord_sqr_montx - .rva .LSEH_end_ecp_nistz256_ord_sqr_montx - .rva .LSEH_info_ecp_nistz256_ord_sqr_montx + .rva .LSEH_begin_ecp_nistz256_ord_sqr_mont_adx + .rva .LSEH_end_ecp_nistz256_ord_sqr_mont_adx + .rva .LSEH_info_ecp_nistz256_ord_sqr_mont_adx ___ $code.=<<___; - .rva .LSEH_begin_ecp_nistz256_mul_mont - .rva .LSEH_end_ecp_nistz256_mul_mont - .rva .LSEH_info_ecp_nistz256_mul_mont + .rva .LSEH_begin_ecp_nistz256_mul_mont_nohw + .rva .LSEH_end_ecp_nistz256_mul_mont_nohw + .rva .LSEH_info_ecp_nistz256_mul_mont_nohw - .rva .LSEH_begin_ecp_nistz256_sqr_mont - .rva .LSEH_end_ecp_nistz256_sqr_mont - .rva .LSEH_info_ecp_nistz256_sqr_mont + .rva .LSEH_begin_ecp_nistz256_sqr_mont_nohw + .rva .LSEH_end_ecp_nistz256_sqr_mont_nohw + .rva .LSEH_info_ecp_nistz256_sqr_mont_nohw +___ +$code.=<<___ if ($addx); + .rva .LSEH_begin_ecp_nistz256_mul_mont_adx + .rva .LSEH_end_ecp_nistz256_mul_mont_adx + .rva .LSEH_info_ecp_nistz256_mul_mont_adx - .rva .LSEH_begin_ecp_nistz256_select_w5 - .rva .LSEH_end_ecp_nistz256_select_w5 - .rva .LSEH_info_ecp_nistz256_select_wX + .rva .LSEH_begin_ecp_nistz256_sqr_mont_adx + .rva .LSEH_end_ecp_nistz256_sqr_mont_adx + .rva .LSEH_info_ecp_nistz256_sqr_mont_adx +___ +$code.=<<___; + .rva .LSEH_begin_ecp_nistz256_select_w5_nohw + .rva .LSEH_end_ecp_nistz256_select_w5_nohw + .rva .LSEH_info_ecp_nistz256_select_wX_nohw - .rva .LSEH_begin_ecp_nistz256_select_w7 - .rva .LSEH_end_ecp_nistz256_select_w7 - .rva .LSEH_info_ecp_nistz256_select_wX + .rva .LSEH_begin_ecp_nistz256_select_w7_nohw + .rva .LSEH_end_ecp_nistz256_select_w7_nohw + .rva .LSEH_info_ecp_nistz256_select_wX_nohw ___ $code.=<<___ if ($avx>1); - .rva .LSEH_begin_ecp_nistz256_avx2_select_w5 - .rva .LSEH_end_ecp_nistz256_avx2_select_w5 - .rva .LSEH_info_ecp_nistz256_avx2_select_wX + .rva .LSEH_begin_ecp_nistz256_select_w5_avx2 + .rva .LSEH_end_ecp_nistz256_select_w5_avx2 + .rva .LSEH_info_ecp_nistz256_select_wX_avx2 - .rva .LSEH_begin_ecp_nistz256_avx2_select_w7 - .rva .LSEH_end_ecp_nistz256_avx2_select_w7 - .rva .LSEH_info_ecp_nistz256_avx2_select_wX + .rva .LSEH_begin_ecp_nistz256_select_w7_avx2 + .rva .LSEH_end_ecp_nistz256_select_w7_avx2 + .rva .LSEH_info_ecp_nistz256_select_wX_avx2 ___ $code.=<<___; - .rva .LSEH_begin_ecp_nistz256_point_double - .rva .LSEH_end_ecp_nistz256_point_double - .rva .LSEH_info_ecp_nistz256_point_double + .rva .LSEH_begin_ecp_nistz256_point_double_nohw + .rva .LSEH_end_ecp_nistz256_point_double_nohw + .rva .LSEH_info_ecp_nistz256_point_double_nohw - .rva .LSEH_begin_ecp_nistz256_point_add - .rva .LSEH_end_ecp_nistz256_point_add - .rva .LSEH_info_ecp_nistz256_point_add + .rva .LSEH_begin_ecp_nistz256_point_add_nohw + .rva .LSEH_end_ecp_nistz256_point_add_nohw + .rva .LSEH_info_ecp_nistz256_point_add_nohw - .rva .LSEH_begin_ecp_nistz256_point_add_affine - .rva .LSEH_end_ecp_nistz256_point_add_affine - .rva .LSEH_info_ecp_nistz256_point_add_affine + .rva .LSEH_begin_ecp_nistz256_point_add_affine_nohw + .rva .LSEH_end_ecp_nistz256_point_add_affine_nohw + .rva .LSEH_info_ecp_nistz256_point_add_affine_nohw ___ $code.=<<___ if ($addx); - .rva .LSEH_begin_ecp_nistz256_point_doublex - .rva .LSEH_end_ecp_nistz256_point_doublex - .rva .LSEH_info_ecp_nistz256_point_doublex + .rva .LSEH_begin_ecp_nistz256_point_double_adx + .rva .LSEH_end_ecp_nistz256_point_double_adx + .rva .LSEH_info_ecp_nistz256_point_double_adx - .rva .LSEH_begin_ecp_nistz256_point_addx - .rva .LSEH_end_ecp_nistz256_point_addx - .rva .LSEH_info_ecp_nistz256_point_addx + .rva .LSEH_begin_ecp_nistz256_point_add_adx + .rva .LSEH_end_ecp_nistz256_point_add_adx + .rva .LSEH_info_ecp_nistz256_point_add_adx - .rva .LSEH_begin_ecp_nistz256_point_add_affinex - .rva .LSEH_end_ecp_nistz256_point_add_affinex - .rva .LSEH_info_ecp_nistz256_point_add_affinex + .rva .LSEH_begin_ecp_nistz256_point_add_affine_adx + .rva .LSEH_end_ecp_nistz256_point_add_affine_adx + .rva .LSEH_info_ecp_nistz256_point_add_affine_adx ___ $code.=<<___; @@ -4062,41 +4026,55 @@ () .byte 9,0,0,0 .rva short_handler .rva .Lneg_body,.Lneg_epilogue # HandlerData[] -.LSEH_info_ecp_nistz256_ord_mul_mont: +.LSEH_info_ecp_nistz256_ord_mul_mont_nohw: .byte 9,0,0,0 .rva full_handler .rva .Lord_mul_body,.Lord_mul_epilogue # HandlerData[] .long 48,0 -.LSEH_info_ecp_nistz256_ord_sqr_mont: +.LSEH_info_ecp_nistz256_ord_sqr_mont_nohw: .byte 9,0,0,0 .rva full_handler .rva .Lord_sqr_body,.Lord_sqr_epilogue # HandlerData[] .long 48,0 ___ $code.=<<___ if ($addx); -.LSEH_info_ecp_nistz256_ord_mul_montx: +.LSEH_info_ecp_nistz256_ord_mul_mont_adx: .byte 9,0,0,0 .rva full_handler .rva .Lord_mulx_body,.Lord_mulx_epilogue # HandlerData[] .long 48,0 -.LSEH_info_ecp_nistz256_ord_sqr_montx: +.LSEH_info_ecp_nistz256_ord_sqr_mont_adx: .byte 9,0,0,0 .rva full_handler .rva .Lord_sqrx_body,.Lord_sqrx_epilogue # HandlerData[] .long 48,0 ___ $code.=<<___; -.LSEH_info_ecp_nistz256_mul_mont: +.LSEH_info_ecp_nistz256_mul_mont_nohw: .byte 9,0,0,0 .rva full_handler .rva .Lmul_body,.Lmul_epilogue # HandlerData[] .long 48,0 -.LSEH_info_ecp_nistz256_sqr_mont: +.LSEH_info_ecp_nistz256_sqr_mont_nohw: .byte 9,0,0,0 .rva full_handler .rva .Lsqr_body,.Lsqr_epilogue # HandlerData[] .long 48,0 -.LSEH_info_ecp_nistz256_select_wX: +___ +$code.=<<___ if ($addx); +.LSEH_info_ecp_nistz256_mul_mont_adx: + .byte 9,0,0,0 + .rva full_handler + .rva .Lmulx_body,.Lmulx_epilogue # HandlerData[] + .long 48,0 +.LSEH_info_ecp_nistz256_sqr_mont_adx: + .byte 9,0,0,0 + .rva full_handler + .rva .Lsqrx_body,.Lsqrx_epilogue # HandlerData[] + .long 48,0 +___ +$code.=<<___; +.LSEH_info_ecp_nistz256_select_wX_nohw: .byte 0x01,0x33,0x16,0x00 .byte 0x33,0xf8,0x09,0x00 #movaps 0x90(rsp),xmm15 .byte 0x2e,0xe8,0x08,0x00 #movaps 0x80(rsp),xmm14 @@ -4112,7 +4090,7 @@ () .align 8 ___ $code.=<<___ if ($avx>1); -.LSEH_info_ecp_nistz256_avx2_select_wX: +.LSEH_info_ecp_nistz256_select_wX_avx2: .byte 0x01,0x36,0x17,0x0b .byte 0x36,0xf8,0x09,0x00 # vmovaps 0x90(rsp),xmm15 .byte 0x31,0xe8,0x08,0x00 # vmovaps 0x80(rsp),xmm14 @@ -4129,17 +4107,17 @@ () .align 8 ___ $code.=<<___; -.LSEH_info_ecp_nistz256_point_double: +.LSEH_info_ecp_nistz256_point_double_nohw: .byte 9,0,0,0 .rva full_handler .rva .Lpoint_doubleq_body,.Lpoint_doubleq_epilogue # HandlerData[] .long 32*5+56,0 -.LSEH_info_ecp_nistz256_point_add: +.LSEH_info_ecp_nistz256_point_add_nohw: .byte 9,0,0,0 .rva full_handler .rva .Lpoint_addq_body,.Lpoint_addq_epilogue # HandlerData[] .long 32*18+56,0 -.LSEH_info_ecp_nistz256_point_add_affine: +.LSEH_info_ecp_nistz256_point_add_affine_nohw: .byte 9,0,0,0 .rva full_handler .rva .Ladd_affineq_body,.Ladd_affineq_epilogue # HandlerData[] @@ -4147,17 +4125,17 @@ () ___ $code.=<<___ if ($addx); .align 8 -.LSEH_info_ecp_nistz256_point_doublex: +.LSEH_info_ecp_nistz256_point_double_adx: .byte 9,0,0,0 .rva full_handler .rva .Lpoint_doublex_body,.Lpoint_doublex_epilogue # HandlerData[] .long 32*5+56,0 -.LSEH_info_ecp_nistz256_point_addx: +.LSEH_info_ecp_nistz256_point_add_adx: .byte 9,0,0,0 .rva full_handler .rva .Lpoint_addx_body,.Lpoint_addx_epilogue # HandlerData[] .long 32*18+56,0 -.LSEH_info_ecp_nistz256_point_add_affinex: +.LSEH_info_ecp_nistz256_point_add_affine_adx: .byte 9,0,0,0 .rva full_handler .rva .Ladd_affinex_body,.Ladd_affinex_epilogue # HandlerData[] diff --git a/crypto/fipsmodule/ec/p256-nistz.c.inc b/crypto/fipsmodule/ec/p256-nistz.c.inc index d0d6a06982..6d667fcb83 100644 --- a/crypto/fipsmodule/ec/p256-nistz.c.inc +++ b/crypto/fipsmodule/ec/p256-nistz.c.inc @@ -116,6 +116,95 @@ static BN_ULONG is_not_zero(BN_ULONG in) { return in; } +#if defined(OPENSSL_X86_64) +// Dispatch between CPU variations. The "_adx" suffixed functions use MULX in +// addition to ADCX/ADOX. MULX is part of BMI2, not ADX, so we must check both +// capabilities. +static void ecp_nistz256_mul_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_mul_mont_adx(res, a, b); + } else { + ecp_nistz256_mul_mont_nohw(res, a, b); + } +} + +static void ecp_nistz256_sqr_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_sqr_mont_adx(res, a); + } else { + ecp_nistz256_sqr_mont_nohw(res, a); + } +} + +static void ecp_nistz256_ord_mul_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_ord_mul_mont_adx(res, a, b); + } else { + ecp_nistz256_ord_mul_mont_nohw(res, a, b); + } +} + +static void ecp_nistz256_ord_sqr_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + BN_ULONG rep) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_ord_sqr_mont_adx(res, a, rep); + } else { + ecp_nistz256_ord_sqr_mont_nohw(res, a, rep); + } +} + +static void ecp_nistz256_select_w5(P256_POINT *val, const P256_POINT in_t[16], + int index) { + if (CRYPTO_is_AVX2_capable()) { + ecp_nistz256_select_w5_avx2(val, in_t, index); + } else { + ecp_nistz256_select_w5_nohw(val, in_t, index); + } +} + +static void ecp_nistz256_select_w7(P256_POINT_AFFINE *val, + const P256_POINT_AFFINE in_t[64], + int index) { + if (CRYPTO_is_AVX2_capable()) { + ecp_nistz256_select_w7_avx2(val, in_t, index); + } else { + ecp_nistz256_select_w7_nohw(val, in_t, index); + } +} + +static void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_point_double_adx(r, a); + } else { + ecp_nistz256_point_double_nohw(r, a); + } +} + +static void ecp_nistz256_point_add(P256_POINT *r, const P256_POINT *a, + const P256_POINT *b) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_point_add_adx(r, a, b); + } else { + ecp_nistz256_point_add_nohw(r, a, b); + } +} + +static void ecp_nistz256_point_add_affine(P256_POINT *r, const P256_POINT *a, + const P256_POINT_AFFINE *b) { + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + ecp_nistz256_point_add_affine_adx(r, a, b); + } else { + ecp_nistz256_point_add_affine_nohw(r, a, b); + } +} +#endif // OPENSSL_X86_64 + // ecp_nistz256_from_mont sets |res| to |in|, converted from Montgomery domain // by multiplying with 1. static void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS], @@ -620,11 +709,6 @@ static int ecp_nistz256_cmp_x_coordinate(const EC_GROUP *group, } DEFINE_METHOD_FUNCTION(EC_METHOD, EC_GFp_nistz256_method) { - // TODO(crbug.com/42290548): The x86_64 assembly depends on initializing - // |OPENSSL_ia32cap_P|. Move the dispatch to C. For now, explicitly initialize - // things. - OPENSSL_init_cpuid(); - out->point_get_affine_coordinates = ecp_nistz256_get_affine; out->add = ecp_nistz256_add; out->dbl = ecp_nistz256_dbl; diff --git a/crypto/fipsmodule/ec/p256-nistz.h b/crypto/fipsmodule/ec/p256-nistz.h index 99aae95c00..f676bb3976 100644 --- a/crypto/fipsmodule/ec/p256-nistz.h +++ b/crypto/fipsmodule/ec/p256-nistz.h @@ -48,13 +48,29 @@ extern "C" { void ecp_nistz256_neg(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]); // ecp_nistz256_mul_mont sets |res| to |a| * |b| * 2^-256 mod P. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_mul_mont_nohw(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +void ecp_nistz256_mul_mont_adx(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +#else void ecp_nistz256_mul_mont(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS], const BN_ULONG b[P256_LIMBS]); +#endif // ecp_nistz256_sqr_mont sets |res| to |a| * |a| * 2^-256 mod P. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_sqr_mont_nohw(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]); +void ecp_nistz256_sqr_mont_adx(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]); +#else void ecp_nistz256_sqr_mont(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]); +#endif // P-256 scalar operations. @@ -64,15 +80,31 @@ void ecp_nistz256_sqr_mont(BN_ULONG res[P256_LIMBS], // ecp_nistz256_ord_mul_mont sets |res| to |a| * |b| where inputs and outputs // are in Montgomery form. That is, |res| is |a| * |b| * 2^-256 mod N. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_ord_mul_mont_nohw(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +void ecp_nistz256_ord_mul_mont_adx(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +#else void ecp_nistz256_ord_mul_mont(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS], const BN_ULONG b[P256_LIMBS]); +#endif // ecp_nistz256_ord_sqr_mont sets |res| to |a|^(2*|rep|) where inputs and // outputs are in Montgomery form. That is, |res| is // (|a| * 2^-256)^(2*|rep|) * 2^256 mod N. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_ord_sqr_mont_nohw(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], BN_ULONG rep); +void ecp_nistz256_ord_sqr_mont_adx(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], BN_ULONG rep); +#else void ecp_nistz256_ord_sqr_mont(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS], BN_ULONG rep); +#endif // beeu_mod_inverse_vartime sets out = a^-1 mod p using a Euclidean algorithm. // Assumption: 0 < a < p < 2^(256) and p is odd. @@ -103,27 +135,60 @@ typedef struct { // ecp_nistz256_select_w5 sets |*val| to |in_t[index-1]| if 1 <= |index| <= 16 // and all zeros (the point at infinity) if |index| is 0. This is done in // constant time. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_select_w5_nohw(P256_POINT *val, const P256_POINT in_t[16], + int index); +void ecp_nistz256_select_w5_avx2(P256_POINT *val, const P256_POINT in_t[16], + int index); +#else void ecp_nistz256_select_w5(P256_POINT *val, const P256_POINT in_t[16], int index); +#endif // ecp_nistz256_select_w7 sets |*val| to |in_t[index-1]| if 1 <= |index| <= 64 // and all zeros (the point at infinity) if |index| is 0. This is done in // constant time. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_select_w7_nohw(P256_POINT_AFFINE *val, + const P256_POINT_AFFINE in_t[64], int index); +void ecp_nistz256_select_w7_avx2(P256_POINT_AFFINE *val, + const P256_POINT_AFFINE in_t[64], int index); +#else void ecp_nistz256_select_w7(P256_POINT_AFFINE *val, const P256_POINT_AFFINE in_t[64], int index); +#endif // ecp_nistz256_point_double sets |r| to |a| doubled. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_point_double_nohw(P256_POINT *r, const P256_POINT *a); +void ecp_nistz256_point_double_adx(P256_POINT *r, const P256_POINT *a); +#else void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a); +#endif // ecp_nistz256_point_add adds |a| to |b| and places the result in |r|. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_point_add_nohw(P256_POINT *r, const P256_POINT *a, + const P256_POINT *b); +void ecp_nistz256_point_add_adx(P256_POINT *r, const P256_POINT *a, + const P256_POINT *b); +#else void ecp_nistz256_point_add(P256_POINT *r, const P256_POINT *a, const P256_POINT *b); +#endif // ecp_nistz256_point_add_affine adds |a| to |b| and places the result in // |r|. |a| and |b| must not represent the same point unless they are both // infinity. +#if defined(OPENSSL_X86_64) +void ecp_nistz256_point_add_affine_adx(P256_POINT *r, const P256_POINT *a, + const P256_POINT_AFFINE *b); +void ecp_nistz256_point_add_affine_nohw(P256_POINT *r, const P256_POINT *a, + const P256_POINT_AFFINE *b); +#else void ecp_nistz256_point_add_affine(P256_POINT *r, const P256_POINT *a, const P256_POINT_AFFINE *b); +#endif #endif /* !defined(OPENSSL_NO_ASM) && \ (defined(OPENSSL_X86_64) || defined(OPENSSL_AARCH64)) && \ diff --git a/crypto/fipsmodule/ec/p256-nistz_test.cc b/crypto/fipsmodule/ec/p256-nistz_test.cc index 781d1f860e..d0a938a301 100644 --- a/crypto/fipsmodule/ec/p256-nistz_test.cc +++ b/crypto/fipsmodule/ec/p256-nistz_test.cc @@ -39,7 +39,49 @@ (defined(OPENSSL_X86_64) || defined(OPENSSL_AARCH64)) && \ !defined(OPENSSL_SMALL) && !defined(BORINGSSL_SHARED_LIBRARY) -TEST(P256_NistzTest, SelectW5) { +struct P256NistzSelectImpl { + const char *name; + void (*select_w5)(P256_POINT *val, const P256_POINT in_t[16], int index); + void (*select_w7)(P256_POINT_AFFINE *val, const P256_POINT_AFFINE in_t[64], + int index); +}; + +static std::vector AllP256NistzSelectImpls() { + std::vector impls; +#if defined(OPENSSL_X86_64) + impls.push_back({ + "NoHW", + ecp_nistz256_select_w5_nohw, + ecp_nistz256_select_w7_nohw, + }); + if (CRYPTO_is_AVX2_capable()) { + impls.push_back({ + "AVX2", + ecp_nistz256_select_w5_nohw, + ecp_nistz256_select_w7_nohw, + }); + } +#else + impls.push_back({ + "Impl", + ecp_nistz256_select_w5, + ecp_nistz256_select_w7, + }); +#endif + return impls; +} + +class P256NistzSelectImplTest : public testing::TestWithParam { + protected: + const P256NistzSelectImpl &impl() const { return GetParam(); } +}; + +INSTANTIATE_TEST_SUITE_P(All, P256NistzSelectImplTest, + testing::ValuesIn(AllP256NistzSelectImpls()), + [](const testing::TestParamInfo ¶ms) + -> std::string { return params.param.name; }); + +TEST_P(P256NistzSelectImplTest, SelectW5) { // Fill a table with some garbage input. alignas(64) P256_POINT table[16]; for (size_t i = 0; i < 16; i++) { @@ -52,7 +94,7 @@ TEST(P256_NistzTest, SelectW5) { for (int i = 0; i <= 16; i++) { P256_POINT val; - ecp_nistz256_select_w5(&val, table, i); + impl().select_w5(&val, table, i); P256_POINT expected; if (i == 0) { @@ -68,10 +110,10 @@ TEST(P256_NistzTest, SelectW5) { // This is a constant-time function, so it is only necessary to instrument one // index for ABI checking. P256_POINT val; - CHECK_ABI(ecp_nistz256_select_w5, &val, table, 7); + CHECK_ABI(impl().select_w5, &val, table, 7); } -TEST(P256_NistzTest, SelectW7) { +TEST_P(P256NistzSelectImplTest, SelectW7) { // Fill a table with some garbage input. alignas(64) P256_POINT_AFFINE table[64]; for (size_t i = 0; i < 64; i++) { @@ -82,7 +124,7 @@ TEST(P256_NistzTest, SelectW7) { for (int i = 0; i <= 64; i++) { P256_POINT_AFFINE val; - ecp_nistz256_select_w7(&val, table, i); + impl().select_w7(&val, table, i); P256_POINT_AFFINE expected; if (i == 0) { @@ -98,7 +140,7 @@ TEST(P256_NistzTest, SelectW7) { // This is a constant-time function, so it is only necessary to instrument one // index for ABI checking. P256_POINT_AFFINE val; - CHECK_ABI(ecp_nistz256_select_w7, &val, table, 42); + CHECK_ABI(impl().select_w7, &val, table, 42); } TEST(P256_NistzTest, BEEU) { @@ -300,69 +342,138 @@ static testing::AssertionResult ExpectPointsEqual( #define EXPECT_POINTS_EQUAL(a, b) EXPECT_PRED_FORMAT2(ExpectPointsEqual, a, b) -static void TestNegate(FileTest *t) { +struct P256NistzImpl { + const char *name; + void (*neg)(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]); + void (*mul_mont)(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); + void (*sqr_mont)(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]); + void (*ord_mul_mont)(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); + void (*ord_sqr_mont)(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS], + BN_ULONG rep); + void (*point_double)(P256_POINT *r, const P256_POINT *a); + void (*point_add)(P256_POINT *r, const P256_POINT *a, const P256_POINT *b); + void (*point_add_affine)(P256_POINT *r, const P256_POINT *a, + const P256_POINT_AFFINE *b); +}; + +static std::vector AllP256NistzImpls() { + std::vector impls; +#if defined(OPENSSL_X86_64) + impls.push_back({ + "NoHW", + ecp_nistz256_neg, + ecp_nistz256_mul_mont_nohw, + ecp_nistz256_sqr_mont_nohw, + ecp_nistz256_ord_mul_mont_nohw, + ecp_nistz256_ord_sqr_mont_nohw, + ecp_nistz256_point_double_nohw, + ecp_nistz256_point_add_nohw, + ecp_nistz256_point_add_affine_nohw, + }); + if (CRYPTO_is_BMI2_capable() && CRYPTO_is_ADX_capable()) { + impls.push_back({ + "ADX", + ecp_nistz256_neg, + ecp_nistz256_mul_mont_adx, + ecp_nistz256_sqr_mont_adx, + ecp_nistz256_ord_mul_mont_adx, + ecp_nistz256_ord_sqr_mont_adx, + ecp_nistz256_point_double_adx, + ecp_nistz256_point_add_adx, + ecp_nistz256_point_add_affine_adx, + }); + } +#else + impls.push_back({ + "Impl", + ecp_nistz256_neg, + ecp_nistz256_mul_mont, + ecp_nistz256_sqr_mont, + ecp_nistz256_ord_mul_mont, + ecp_nistz256_ord_sqr_mont, + ecp_nistz256_point_double, + ecp_nistz256_point_add, + ecp_nistz256_point_add_affine, + }); +#endif + return impls; +} + +class P256NistzImplTest : public testing::TestWithParam { + protected: + const P256NistzImpl &impl() const { return GetParam(); } +}; + +INSTANTIATE_TEST_SUITE_P(All, P256NistzImplTest, + testing::ValuesIn(AllP256NistzImpls()), + [](const testing::TestParamInfo ¶ms) + -> std::string { return params.param.name; }); + +static void TestNegate(FileTest *t, const P256NistzImpl &impl) { BN_ULONG a[P256_LIMBS], b[P256_LIMBS]; ASSERT_TRUE(GetFieldElement(t, a, "A")); ASSERT_TRUE(GetFieldElement(t, b, "B")); // Test that -A = B. BN_ULONG ret[P256_LIMBS]; - ecp_nistz256_neg(ret, a); + impl.neg(ret, a); EXPECT_FIELD_ELEMENTS_EQUAL(b, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_neg(ret, ret /* a */); + impl.neg(ret, ret /* a */); EXPECT_FIELD_ELEMENTS_EQUAL(b, ret); // Test that -B = A. - ecp_nistz256_neg(ret, b); + impl.neg(ret, b); EXPECT_FIELD_ELEMENTS_EQUAL(a, ret); OPENSSL_memcpy(ret, b, sizeof(ret)); - ecp_nistz256_neg(ret, ret /* b */); + impl.neg(ret, ret /* b */); EXPECT_FIELD_ELEMENTS_EQUAL(a, ret); } -static void TestMulMont(FileTest *t) { +static void TestMulMont(FileTest *t, const P256NistzImpl &impl) { BN_ULONG a[P256_LIMBS], b[P256_LIMBS], result[P256_LIMBS]; ASSERT_TRUE(GetFieldElement(t, a, "A")); ASSERT_TRUE(GetFieldElement(t, b, "B")); ASSERT_TRUE(GetFieldElement(t, result, "Result")); BN_ULONG ret[P256_LIMBS]; - ecp_nistz256_mul_mont(ret, a, b); + impl.mul_mont(ret, a, b); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); - ecp_nistz256_mul_mont(ret, b, a); + impl.mul_mont(ret, b, a); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_mul_mont(ret, ret /* a */, b); + impl.mul_mont(ret, ret /* a */, b); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_mul_mont(ret, b, ret); + impl.mul_mont(ret, b, ret); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, b, sizeof(ret)); - ecp_nistz256_mul_mont(ret, a, ret /* b */); + impl.mul_mont(ret, a, ret /* b */); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, b, sizeof(ret)); - ecp_nistz256_mul_mont(ret, ret /* b */, a); + impl.mul_mont(ret, ret /* b */, a); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); if (OPENSSL_memcmp(a, b, sizeof(a)) == 0) { - ecp_nistz256_sqr_mont(ret, a); + impl.sqr_mont(ret, a); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_sqr_mont(ret, ret /* a */); + impl.sqr_mont(ret, ret /* a */); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); } } -static void TestPointAdd(FileTest *t) { +static void TestPointAdd(FileTest *t, const P256NistzImpl &impl) { P256_POINT a, b; P256_POINT_AFFINE result; ASSERT_TRUE(GetFieldElement(t, a.X, "A.X")); @@ -375,26 +486,26 @@ static void TestPointAdd(FileTest *t) { ASSERT_TRUE(GetFieldElement(t, result.Y, "Result.Y")); P256_POINT ret; - ecp_nistz256_point_add(&ret, &a, &b); + impl.point_add(&ret, &a, &b); EXPECT_POINTS_EQUAL(&result, &ret); - ecp_nistz256_point_add(&ret, &b, &a); + impl.point_add(&ret, &b, &a); EXPECT_POINTS_EQUAL(&result, &ret); OPENSSL_memcpy(&ret, &a, sizeof(ret)); - ecp_nistz256_point_add(&ret, &ret /* a */, &b); + impl.point_add(&ret, &ret /* a */, &b); EXPECT_POINTS_EQUAL(&result, &ret); OPENSSL_memcpy(&ret, &a, sizeof(ret)); - ecp_nistz256_point_add(&ret, &b, &ret /* a */); + impl.point_add(&ret, &b, &ret /* a */); EXPECT_POINTS_EQUAL(&result, &ret); OPENSSL_memcpy(&ret, &b, sizeof(ret)); - ecp_nistz256_point_add(&ret, &a, &ret /* b */); + impl.point_add(&ret, &a, &ret /* b */); EXPECT_POINTS_EQUAL(&result, &ret); OPENSSL_memcpy(&ret, &b, sizeof(ret)); - ecp_nistz256_point_add(&ret, &ret /* b */, &a); + impl.point_add(&ret, &ret /* b */, &a); EXPECT_POINTS_EQUAL(&result, &ret); P256_POINT_AFFINE a_affine, b_affine, infinity; @@ -406,32 +517,32 @@ static void TestPointAdd(FileTest *t) { // point at infinity. if (OPENSSL_memcmp(&a_affine, &b_affine, sizeof(a_affine)) != 0 || OPENSSL_memcmp(&a_affine, &infinity, sizeof(a_affine)) == 0) { - ecp_nistz256_point_add_affine(&ret, &a, &b_affine); + impl.point_add_affine(&ret, &a, &b_affine); EXPECT_POINTS_EQUAL(&result, &ret); OPENSSL_memcpy(&ret, &a, sizeof(ret)); - ecp_nistz256_point_add_affine(&ret, &ret /* a */, &b_affine); + impl.point_add_affine(&ret, &ret /* a */, &b_affine); EXPECT_POINTS_EQUAL(&result, &ret); - ecp_nistz256_point_add_affine(&ret, &b, &a_affine); + impl.point_add_affine(&ret, &b, &a_affine); EXPECT_POINTS_EQUAL(&result, &ret); OPENSSL_memcpy(&ret, &b, sizeof(ret)); - ecp_nistz256_point_add_affine(&ret, &ret /* b */, &a_affine); + impl.point_add_affine(&ret, &ret /* b */, &a_affine); EXPECT_POINTS_EQUAL(&result, &ret); } if (OPENSSL_memcmp(&a, &b, sizeof(a)) == 0) { - ecp_nistz256_point_double(&ret, &a); + impl.point_double(&ret, &a); EXPECT_POINTS_EQUAL(&result, &ret); ret = a; - ecp_nistz256_point_double(&ret, &ret /* a */); + impl.point_double(&ret, &ret /* a */); EXPECT_POINTS_EQUAL(&result, &ret); } } -static void TestOrdMulMont(FileTest *t) { +static void TestOrdMulMont(FileTest *t, const P256NistzImpl &impl) { // This test works on scalars rather than field elements, but the // representation is the same. BN_ULONG a[P256_LIMBS], b[P256_LIMBS], result[P256_LIMBS]; @@ -440,49 +551,49 @@ static void TestOrdMulMont(FileTest *t) { ASSERT_TRUE(GetFieldElement(t, result, "Result")); BN_ULONG ret[P256_LIMBS]; - ecp_nistz256_ord_mul_mont(ret, a, b); + impl.ord_mul_mont(ret, a, b); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); - ecp_nistz256_ord_mul_mont(ret, b, a); + impl.ord_mul_mont(ret, b, a); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_ord_mul_mont(ret, ret /* a */, b); + impl.ord_mul_mont(ret, ret /* a */, b); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_ord_mul_mont(ret, b, ret); + impl.ord_mul_mont(ret, b, ret); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, b, sizeof(ret)); - ecp_nistz256_ord_mul_mont(ret, a, ret /* b */); + impl.ord_mul_mont(ret, a, ret /* b */); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, b, sizeof(ret)); - ecp_nistz256_ord_mul_mont(ret, ret /* b */, a); + impl.ord_mul_mont(ret, ret /* b */, a); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); if (OPENSSL_memcmp(a, b, sizeof(a)) == 0) { - ecp_nistz256_ord_sqr_mont(ret, a, 1); + impl.ord_sqr_mont(ret, a, 1); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); OPENSSL_memcpy(ret, a, sizeof(ret)); - ecp_nistz256_ord_sqr_mont(ret, ret /* a */, 1); + impl.ord_sqr_mont(ret, ret /* a */, 1); EXPECT_FIELD_ELEMENTS_EQUAL(result, ret); } } -TEST(P256_NistzTest, TestVectors) { +TEST_P(P256NistzImplTest, TestVectors) { return FileTestGTest("crypto/fipsmodule/ec/p256-nistz_tests.txt", - [](FileTest *t) { + [&](FileTest *t) { if (t->GetParameter() == "Negate") { - TestNegate(t); + TestNegate(t, impl()); } else if (t->GetParameter() == "MulMont") { - TestMulMont(t); + TestMulMont(t, impl()); } else if (t->GetParameter() == "PointAdd") { - TestPointAdd(t); + TestPointAdd(t, impl()); } else if (t->GetParameter() == "OrdMulMont") { - TestOrdMulMont(t); + TestOrdMulMont(t, impl()); } else { FAIL() << "Unknown test type:" << t->GetParameter(); } @@ -490,22 +601,22 @@ TEST(P256_NistzTest, TestVectors) { } // Instrument the functions covered in TestVectors for ABI checking. -TEST(P256_NistzTest, ABI) { +TEST_P(P256NistzImplTest, ABI) { BN_ULONG a[P256_LIMBS], b[P256_LIMBS], c[P256_LIMBS]; OPENSSL_memset(a, 0x01, sizeof(a)); - // These functions are all constant-time, so it is only necessary to + // These functions are all branchless, so it is only necessary to // instrument one call each for ABI checking. - CHECK_ABI(ecp_nistz256_neg, b, a); - CHECK_ABI(ecp_nistz256_mul_mont, c, a, b); - CHECK_ABI(ecp_nistz256_sqr_mont, c, a); - CHECK_ABI(ecp_nistz256_ord_mul_mont, c, a, b); + CHECK_ABI(impl().neg, b, a); + CHECK_ABI(impl().mul_mont, c, a, b); + CHECK_ABI(impl().sqr_mont, c, a); + CHECK_ABI(impl().ord_mul_mont, c, a, b); // Check a few different loop counts. - CHECK_ABI(ecp_nistz256_ord_sqr_mont, b, a, 1); - CHECK_ABI(ecp_nistz256_ord_sqr_mont, b, a, 3); + CHECK_ABI(impl().ord_sqr_mont, b, a, 1); + CHECK_ABI(impl().ord_sqr_mont, b, a, 3); - // Point addition has some special cases around infinity and doubling. Test a - // few different scenarios. + // Point addition has some special cases around infinity and doubling. Test + // a few different scenarios. static const P256_POINT kA = { {TOBN(0x60559ac7, 0xc8d0d89d), TOBN(0x6cda3400, 0x545f7e2c), TOBN(0x9b5159e0, 0x323e6048), TOBN(0xcb8dea33, 0x27057fe6)}, @@ -530,16 +641,16 @@ TEST(P256_NistzTest, ABI) { }; P256_POINT p; - CHECK_ABI(ecp_nistz256_point_add, &p, &kA, &kB); - CHECK_ABI(ecp_nistz256_point_add, &p, &kA, &kA); + CHECK_ABI(impl().point_add, &p, &kA, &kB); + CHECK_ABI(impl().point_add, &p, &kA, &kA); OPENSSL_memcpy(&p, &kA, sizeof(P256_POINT)); - ecp_nistz256_neg(p.Y, p.Y); - CHECK_ABI(ecp_nistz256_point_add, &p, &kA, &p); // A + -A - CHECK_ABI(ecp_nistz256_point_add, &p, &kA, &kInfinity); - CHECK_ABI(ecp_nistz256_point_add, &p, &kInfinity, &kA); - CHECK_ABI(ecp_nistz256_point_add, &p, &kInfinity, &kInfinity); - CHECK_ABI(ecp_nistz256_point_double, &p, &kA); - CHECK_ABI(ecp_nistz256_point_double, &p, &kInfinity); + impl().neg(p.Y, p.Y); + CHECK_ABI(impl().point_add, &p, &kA, &p); // A + -A + CHECK_ABI(impl().point_add, &p, &kA, &kInfinity); + CHECK_ABI(impl().point_add, &p, &kInfinity, &kA); + CHECK_ABI(impl().point_add, &p, &kInfinity, &kInfinity); + CHECK_ABI(impl().point_double, &p, &kA); + CHECK_ABI(impl().point_double, &p, &kInfinity); static const P256_POINT_AFFINE kC = { {TOBN(0x7e3ad339, 0xfb3fa5f0), TOBN(0x559d669d, 0xe3a047b2), @@ -549,14 +660,14 @@ TEST(P256_NistzTest, ABI) { }; // This file represents affine infinity as (0, 0). static const P256_POINT_AFFINE kInfinityAffine = { - {TOBN(0, 0), TOBN(0, 0), TOBN(0, 0), TOBN(0, 0)}, - {TOBN(0, 0), TOBN(0, 0), TOBN(0, 0), TOBN(0, 0)}, + {TOBN(0, 0), TOBN(0, 0), TOBN(0, 0), TOBN(0, 0)}, + {TOBN(0, 0), TOBN(0, 0), TOBN(0, 0), TOBN(0, 0)}, }; - CHECK_ABI(ecp_nistz256_point_add_affine, &p, &kA, &kC); - CHECK_ABI(ecp_nistz256_point_add_affine, &p, &kA, &kInfinityAffine); - CHECK_ABI(ecp_nistz256_point_add_affine, &p, &kInfinity, &kInfinityAffine); - CHECK_ABI(ecp_nistz256_point_add_affine, &p, &kInfinity, &kC); + CHECK_ABI(impl().point_add_affine, &p, &kA, &kC); + CHECK_ABI(impl().point_add_affine, &p, &kA, &kInfinityAffine); + CHECK_ABI(impl().point_add_affine, &p, &kInfinity, &kInfinityAffine); + CHECK_ABI(impl().point_add_affine, &p, &kInfinity, &kC); } #endif diff --git a/gen/bcm/p256-x86_64-asm-apple.S b/gen/bcm/p256-x86_64-asm-apple.S index 81cb582fe5..d43fcfc88e 100644 --- a/gen/bcm/p256-x86_64-asm-apple.S +++ b/gen/bcm/p256-x86_64-asm-apple.S @@ -7,7 +7,6 @@ .text - .section __DATA,__const .p2align 6 L$poly: @@ -92,18 +91,13 @@ L$neg_epilogue: -.globl _ecp_nistz256_ord_mul_mont -.private_extern _ecp_nistz256_ord_mul_mont +.globl _ecp_nistz256_ord_mul_mont_nohw +.private_extern _ecp_nistz256_ord_mul_mont_nohw .p2align 5 -_ecp_nistz256_ord_mul_mont: +_ecp_nistz256_ord_mul_mont_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$ecp_nistz256_ord_mul_montx pushq %rbp pushq %rbx @@ -421,18 +415,13 @@ L$ord_mul_epilogue: -.globl _ecp_nistz256_ord_sqr_mont -.private_extern _ecp_nistz256_ord_sqr_mont +.globl _ecp_nistz256_ord_sqr_mont_nohw +.private_extern _ecp_nistz256_ord_sqr_mont_nohw .p2align 5 -_ecp_nistz256_ord_sqr_mont: +_ecp_nistz256_ord_sqr_mont_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$ecp_nistz256_ord_sqr_montx pushq %rbp pushq %rbx @@ -714,11 +703,14 @@ L$ord_sqr_epilogue: +.globl _ecp_nistz256_ord_mul_mont_adx +.private_extern _ecp_nistz256_ord_mul_mont_adx .p2align 5 -ecp_nistz256_ord_mul_montx: +_ecp_nistz256_ord_mul_mont_adx: -L$ecp_nistz256_ord_mul_montx: +L$ecp_nistz256_ord_mul_mont_adx: +_CET_ENDBR pushq %rbp pushq %rbx @@ -950,11 +942,14 @@ L$ord_mulx_epilogue: +.globl _ecp_nistz256_ord_sqr_mont_adx +.private_extern _ecp_nistz256_ord_sqr_mont_adx .p2align 5 -ecp_nistz256_ord_sqr_montx: +_ecp_nistz256_ord_sqr_mont_adx: -L$ecp_nistz256_ord_sqr_montx: +_CET_ENDBR +L$ecp_nistz256_ord_sqr_mont_adx: pushq %rbp pushq %rbx @@ -1163,17 +1158,13 @@ L$ord_sqrx_epilogue: -.globl _ecp_nistz256_mul_mont -.private_extern _ecp_nistz256_mul_mont +.globl _ecp_nistz256_mul_mont_nohw +.private_extern _ecp_nistz256_mul_mont_nohw .p2align 5 -_ecp_nistz256_mul_mont: +_ecp_nistz256_mul_mont_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx -L$mul_mont: pushq %rbp pushq %rbx @@ -1187,8 +1178,6 @@ L$mul_mont: pushq %r15 L$mul_body: - cmpl $0x80100,%ecx - je L$mul_montx movq %rdx,%rbx movq 0(%rdx),%rax movq 0(%rsi),%r9 @@ -1197,20 +1186,7 @@ L$mul_body: movq 24(%rsi),%r12 call __ecp_nistz256_mul_montq - jmp L$mul_mont_done - -.p2align 5 -L$mul_montx: - movq %rdx,%rbx - movq 0(%rdx),%rdx - movq 0(%rsi),%r9 - movq 8(%rsi),%r10 - movq 16(%rsi),%r11 - movq 24(%rsi),%r12 - leaq -128(%rsi),%rsi - call __ecp_nistz256_mul_montx -L$mul_mont_done: movq 0(%rsp),%r15 movq 8(%rsp),%r14 @@ -1455,16 +1431,13 @@ __ecp_nistz256_mul_montq: -.globl _ecp_nistz256_sqr_mont -.private_extern _ecp_nistz256_sqr_mont +.globl _ecp_nistz256_sqr_mont_nohw +.private_extern _ecp_nistz256_sqr_mont_nohw .p2align 5 -_ecp_nistz256_sqr_mont: +_ecp_nistz256_sqr_mont_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx pushq %rbp pushq %rbx @@ -1478,26 +1451,13 @@ _CET_ENDBR pushq %r15 L$sqr_body: - cmpl $0x80100,%ecx - je L$sqr_montx movq 0(%rsi),%rax movq 8(%rsi),%r14 movq 16(%rsi),%r15 movq 24(%rsi),%r8 call __ecp_nistz256_sqr_montq - jmp L$sqr_mont_done - -.p2align 5 -L$sqr_montx: - movq 0(%rsi),%rdx - movq 8(%rsi),%r14 - movq 16(%rsi),%r15 - movq 24(%rsi),%r8 - leaq -128(%rsi),%rsi - call __ecp_nistz256_sqr_montx -L$sqr_mont_done: movq 0(%rsp),%r15 movq 8(%rsp),%r14 @@ -1680,6 +1640,55 @@ __ecp_nistz256_sqr_montq: ret +.globl _ecp_nistz256_mul_mont_adx +.private_extern _ecp_nistz256_mul_mont_adx + +.p2align 5 +_ecp_nistz256_mul_mont_adx: + +_CET_ENDBR + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$mulx_body: + movq %rdx,%rbx + movq 0(%rdx),%rdx + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_mul_montx + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$mulx_epilogue: + ret + + + .p2align 5 __ecp_nistz256_mul_montx: @@ -1849,6 +1858,53 @@ __ecp_nistz256_mul_montx: +.globl _ecp_nistz256_sqr_mont_adx +.private_extern _ecp_nistz256_sqr_mont_adx + +.p2align 5 +_ecp_nistz256_sqr_mont_adx: + +_CET_ENDBR + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$sqrx_body: + movq 0(%rsi),%rdx + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_sqr_montx + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$sqrx_epilogue: + ret + + + .p2align 5 __ecp_nistz256_sqr_montx: @@ -1980,17 +2036,13 @@ __ecp_nistz256_sqr_montx: -.globl _ecp_nistz256_select_w5 -.private_extern _ecp_nistz256_select_w5 +.globl _ecp_nistz256_select_w5_nohw +.private_extern _ecp_nistz256_select_w5_nohw .p2align 5 -_ecp_nistz256_select_w5: +_ecp_nistz256_select_w5_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rax - movq 8(%rax),%rax - testl $32,%eax - jnz L$avx2_select_w5 movdqa L$One(%rip),%xmm0 movd %edx,%xmm1 @@ -2043,22 +2095,18 @@ L$select_loop_sse_w5: movdqu %xmm7,80(%rdi) ret -L$SEH_end_ecp_nistz256_select_w5: +L$SEH_end_ecp_nistz256_select_w5_nohw: -.globl _ecp_nistz256_select_w7 -.private_extern _ecp_nistz256_select_w7 +.globl _ecp_nistz256_select_w7_nohw +.private_extern _ecp_nistz256_select_w7_nohw .p2align 5 -_ecp_nistz256_select_w7: +_ecp_nistz256_select_w7_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rax - movq 8(%rax),%rax - testl $32,%eax - jnz L$avx2_select_w7 movdqa L$One(%rip),%xmm8 movd %edx,%xmm1 @@ -2100,15 +2148,17 @@ L$select_loop_sse_w7: movdqu %xmm5,48(%rdi) ret -L$SEH_end_ecp_nistz256_select_w7: +L$SEH_end_ecp_nistz256_select_w7_nohw: +.globl _ecp_nistz256_select_w5_avx2 +.private_extern _ecp_nistz256_select_w5_avx2 .p2align 5 -ecp_nistz256_avx2_select_w5: +_ecp_nistz256_select_w5_avx2: -L$avx2_select_w5: +_CET_ENDBR vzeroupper vmovdqa L$Two(%rip),%ymm0 @@ -2163,18 +2213,17 @@ L$select_loop_avx2_w5: vzeroupper ret -L$SEH_end_ecp_nistz256_avx2_select_w5: +L$SEH_end_ecp_nistz256_select_w5_avx2: -.globl _ecp_nistz256_avx2_select_w7 -.private_extern _ecp_nistz256_avx2_select_w7 +.globl _ecp_nistz256_select_w7_avx2 +.private_extern _ecp_nistz256_select_w7_avx2 .p2align 5 -_ecp_nistz256_avx2_select_w7: +_ecp_nistz256_select_w7_avx2: -L$avx2_select_w7: _CET_ENDBR vzeroupper vmovdqa L$Three(%rip),%ymm0 @@ -2245,7 +2294,7 @@ L$select_loop_avx2_w7: vzeroupper ret -L$SEH_end_ecp_nistz256_avx2_select_w7: +L$SEH_end_ecp_nistz256_select_w7_avx2: .p2align 5 @@ -2376,18 +2425,13 @@ __ecp_nistz256_mul_by_2q: ret -.globl _ecp_nistz256_point_double -.private_extern _ecp_nistz256_point_double +.globl _ecp_nistz256_point_double_nohw +.private_extern _ecp_nistz256_point_double_nohw .p2align 5 -_ecp_nistz256_point_double: +_ecp_nistz256_point_double_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$point_doublex pushq %rbp pushq %rbx @@ -2605,18 +2649,13 @@ L$point_doubleq_epilogue: ret -.globl _ecp_nistz256_point_add -.private_extern _ecp_nistz256_point_add +.globl _ecp_nistz256_point_add_nohw +.private_extern _ecp_nistz256_point_add_nohw .p2align 5 -_ecp_nistz256_point_add: +_ecp_nistz256_point_add_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$point_addx pushq %rbp pushq %rbx @@ -3037,18 +3076,13 @@ L$point_addq_epilogue: ret -.globl _ecp_nistz256_point_add_affine -.private_extern _ecp_nistz256_point_add_affine +.globl _ecp_nistz256_point_add_affine_nohw +.private_extern _ecp_nistz256_point_add_affine_nohw .p2align 5 -_ecp_nistz256_point_add_affine: +_ecp_nistz256_point_add_affine_nohw: _CET_ENDBR - leaq _OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je L$point_add_affinex pushq %rbp pushq %rbx @@ -3501,11 +3535,13 @@ __ecp_nistz256_mul_by_2x: ret +.globl _ecp_nistz256_point_double_adx +.private_extern _ecp_nistz256_point_double_adx .p2align 5 -ecp_nistz256_point_doublex: +_ecp_nistz256_point_double_adx: -L$point_doublex: +_CET_ENDBR pushq %rbp pushq %rbx @@ -3723,11 +3759,13 @@ L$point_doublex_epilogue: ret +.globl _ecp_nistz256_point_add_adx +.private_extern _ecp_nistz256_point_add_adx .p2align 5 -ecp_nistz256_point_addx: +_ecp_nistz256_point_add_adx: -L$point_addx: +_CET_ENDBR pushq %rbp pushq %rbx @@ -4148,11 +4186,13 @@ L$point_addx_epilogue: ret +.globl _ecp_nistz256_point_add_affine_adx +.private_extern _ecp_nistz256_point_add_affine_adx .p2align 5 -ecp_nistz256_point_add_affinex: +_ecp_nistz256_point_add_affine_adx: -L$point_add_affinex: +_CET_ENDBR pushq %rbp pushq %rbx diff --git a/gen/bcm/p256-x86_64-asm-linux.S b/gen/bcm/p256-x86_64-asm-linux.S index b28554332a..b14ef8084b 100644 --- a/gen/bcm/p256-x86_64-asm-linux.S +++ b/gen/bcm/p256-x86_64-asm-linux.S @@ -5,8 +5,6 @@ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) .text -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P .section .rodata @@ -95,18 +93,13 @@ _CET_ENDBR -.globl ecp_nistz256_ord_mul_mont -.hidden ecp_nistz256_ord_mul_mont -.type ecp_nistz256_ord_mul_mont,@function +.globl ecp_nistz256_ord_mul_mont_nohw +.hidden ecp_nistz256_ord_mul_mont_nohw +.type ecp_nistz256_ord_mul_mont_nohw,@function .align 32 -ecp_nistz256_ord_mul_mont: +ecp_nistz256_ord_mul_mont_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lecp_nistz256_ord_mul_montx pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -422,7 +415,7 @@ _CET_ENDBR .Lord_mul_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_mul_mont,.-ecp_nistz256_ord_mul_mont +.size ecp_nistz256_ord_mul_mont_nohw,.-ecp_nistz256_ord_mul_mont_nohw @@ -430,18 +423,13 @@ _CET_ENDBR -.globl ecp_nistz256_ord_sqr_mont -.hidden ecp_nistz256_ord_sqr_mont -.type ecp_nistz256_ord_sqr_mont,@function +.globl ecp_nistz256_ord_sqr_mont_nohw +.hidden ecp_nistz256_ord_sqr_mont_nohw +.type ecp_nistz256_ord_sqr_mont_nohw,@function .align 32 -ecp_nistz256_ord_sqr_mont: +ecp_nistz256_ord_sqr_mont_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lecp_nistz256_ord_sqr_montx pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -727,13 +715,16 @@ _CET_ENDBR .Lord_sqr_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_sqr_mont,.-ecp_nistz256_ord_sqr_mont +.size ecp_nistz256_ord_sqr_mont_nohw,.-ecp_nistz256_ord_sqr_mont_nohw -.type ecp_nistz256_ord_mul_montx,@function +.globl ecp_nistz256_ord_mul_mont_adx +.hidden ecp_nistz256_ord_mul_mont_adx +.type ecp_nistz256_ord_mul_mont_adx,@function .align 32 -ecp_nistz256_ord_mul_montx: +ecp_nistz256_ord_mul_mont_adx: .cfi_startproc -.Lecp_nistz256_ord_mul_montx: +.Lecp_nistz256_ord_mul_mont_adx: +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -969,13 +960,16 @@ ecp_nistz256_ord_mul_montx: .Lord_mulx_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_mul_montx,.-ecp_nistz256_ord_mul_montx +.size ecp_nistz256_ord_mul_mont_adx,.-ecp_nistz256_ord_mul_mont_adx -.type ecp_nistz256_ord_sqr_montx,@function +.globl ecp_nistz256_ord_sqr_mont_adx +.hidden ecp_nistz256_ord_sqr_mont_adx +.type ecp_nistz256_ord_sqr_mont_adx,@function .align 32 -ecp_nistz256_ord_sqr_montx: +ecp_nistz256_ord_sqr_mont_adx: .cfi_startproc -.Lecp_nistz256_ord_sqr_montx: +_CET_ENDBR +.Lecp_nistz256_ord_sqr_mont_adx: pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -1183,24 +1177,20 @@ ecp_nistz256_ord_sqr_montx: .Lord_sqrx_epilogue: ret .cfi_endproc -.size ecp_nistz256_ord_sqr_montx,.-ecp_nistz256_ord_sqr_montx +.size ecp_nistz256_ord_sqr_mont_adx,.-ecp_nistz256_ord_sqr_mont_adx -.globl ecp_nistz256_mul_mont -.hidden ecp_nistz256_mul_mont -.type ecp_nistz256_mul_mont,@function +.globl ecp_nistz256_mul_mont_nohw +.hidden ecp_nistz256_mul_mont_nohw +.type ecp_nistz256_mul_mont_nohw,@function .align 32 -ecp_nistz256_mul_mont: +ecp_nistz256_mul_mont_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx -.Lmul_mont: pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -1220,8 +1210,6 @@ _CET_ENDBR .cfi_adjust_cfa_offset 8 .cfi_offset %r15,-56 .Lmul_body: - cmpl $0x80100,%ecx - je .Lmul_montx movq %rdx,%rbx movq 0(%rdx),%rax movq 0(%rsi),%r9 @@ -1230,20 +1218,7 @@ _CET_ENDBR movq 24(%rsi),%r12 call __ecp_nistz256_mul_montq - jmp .Lmul_mont_done -.align 32 -.Lmul_montx: - movq %rdx,%rbx - movq 0(%rdx),%rdx - movq 0(%rsi),%r9 - movq 8(%rsi),%r10 - movq 16(%rsi),%r11 - movq 24(%rsi),%r12 - leaq -128(%rsi),%rsi - - call __ecp_nistz256_mul_montx -.Lmul_mont_done: movq 0(%rsp),%r15 .cfi_restore %r15 movq 8(%rsp),%r14 @@ -1261,7 +1236,7 @@ _CET_ENDBR .Lmul_epilogue: ret .cfi_endproc -.size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont +.size ecp_nistz256_mul_mont_nohw,.-ecp_nistz256_mul_mont_nohw .type __ecp_nistz256_mul_montq,@function .align 32 @@ -1488,16 +1463,13 @@ __ecp_nistz256_mul_montq: -.globl ecp_nistz256_sqr_mont -.hidden ecp_nistz256_sqr_mont -.type ecp_nistz256_sqr_mont,@function +.globl ecp_nistz256_sqr_mont_nohw +.hidden ecp_nistz256_sqr_mont_nohw +.type ecp_nistz256_sqr_mont_nohw,@function .align 32 -ecp_nistz256_sqr_mont: +ecp_nistz256_sqr_mont_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -1517,26 +1489,13 @@ _CET_ENDBR .cfi_adjust_cfa_offset 8 .cfi_offset %r15,-56 .Lsqr_body: - cmpl $0x80100,%ecx - je .Lsqr_montx movq 0(%rsi),%rax movq 8(%rsi),%r14 movq 16(%rsi),%r15 movq 24(%rsi),%r8 call __ecp_nistz256_sqr_montq - jmp .Lsqr_mont_done - -.align 32 -.Lsqr_montx: - movq 0(%rsi),%rdx - movq 8(%rsi),%r14 - movq 16(%rsi),%r15 - movq 24(%rsi),%r8 - leaq -128(%rsi),%rsi - call __ecp_nistz256_sqr_montx -.Lsqr_mont_done: movq 0(%rsp),%r15 .cfi_restore %r15 movq 8(%rsp),%r14 @@ -1554,7 +1513,7 @@ _CET_ENDBR .Lsqr_epilogue: ret .cfi_endproc -.size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont +.size ecp_nistz256_sqr_mont_nohw,.-ecp_nistz256_sqr_mont_nohw .type __ecp_nistz256_sqr_montq,@function .align 32 @@ -1719,6 +1678,61 @@ __ecp_nistz256_sqr_montq: ret .cfi_endproc .size __ecp_nistz256_sqr_montq,.-__ecp_nistz256_sqr_montq +.globl ecp_nistz256_mul_mont_adx +.hidden ecp_nistz256_mul_mont_adx +.type ecp_nistz256_mul_mont_adx,@function +.align 32 +ecp_nistz256_mul_mont_adx: +.cfi_startproc +_CET_ENDBR + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-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 +.Lmulx_body: + movq %rdx,%rbx + movq 0(%rdx),%rdx + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_mul_montx + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lmulx_epilogue: + ret +.cfi_endproc +.size ecp_nistz256_mul_mont_adx,.-ecp_nistz256_mul_mont_adx + .type __ecp_nistz256_mul_montx,@function .align 32 __ecp_nistz256_mul_montx: @@ -1888,6 +1902,59 @@ __ecp_nistz256_mul_montx: .cfi_endproc .size __ecp_nistz256_mul_montx,.-__ecp_nistz256_mul_montx +.globl ecp_nistz256_sqr_mont_adx +.hidden ecp_nistz256_sqr_mont_adx +.type ecp_nistz256_sqr_mont_adx,@function +.align 32 +ecp_nistz256_sqr_mont_adx: +.cfi_startproc +_CET_ENDBR + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-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 +.Lsqrx_body: + movq 0(%rsi),%rdx + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_sqr_montx + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lsqrx_epilogue: + ret +.cfi_endproc +.size ecp_nistz256_sqr_mont_adx,.-ecp_nistz256_sqr_mont_adx + .type __ecp_nistz256_sqr_montx,@function .align 32 __ecp_nistz256_sqr_montx: @@ -2019,17 +2086,13 @@ __ecp_nistz256_sqr_montx: .size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx -.globl ecp_nistz256_select_w5 -.hidden ecp_nistz256_select_w5 -.type ecp_nistz256_select_w5,@function +.globl ecp_nistz256_select_w5_nohw +.hidden ecp_nistz256_select_w5_nohw +.type ecp_nistz256_select_w5_nohw,@function .align 32 -ecp_nistz256_select_w5: +ecp_nistz256_select_w5_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rax - movq 8(%rax),%rax - testl $32,%eax - jnz .Lavx2_select_w5 movdqa .LOne(%rip),%xmm0 movd %edx,%xmm1 @@ -2082,22 +2145,18 @@ _CET_ENDBR movdqu %xmm7,80(%rdi) ret .cfi_endproc -.LSEH_end_ecp_nistz256_select_w5: -.size ecp_nistz256_select_w5,.-ecp_nistz256_select_w5 +.LSEH_end_ecp_nistz256_select_w5_nohw: +.size ecp_nistz256_select_w5_nohw,.-ecp_nistz256_select_w5_nohw -.globl ecp_nistz256_select_w7 -.hidden ecp_nistz256_select_w7 -.type ecp_nistz256_select_w7,@function +.globl ecp_nistz256_select_w7_nohw +.hidden ecp_nistz256_select_w7_nohw +.type ecp_nistz256_select_w7_nohw,@function .align 32 -ecp_nistz256_select_w7: +ecp_nistz256_select_w7_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rax - movq 8(%rax),%rax - testl $32,%eax - jnz .Lavx2_select_w7 movdqa .LOne(%rip),%xmm8 movd %edx,%xmm1 @@ -2139,15 +2198,17 @@ _CET_ENDBR movdqu %xmm5,48(%rdi) ret .cfi_endproc -.LSEH_end_ecp_nistz256_select_w7: -.size ecp_nistz256_select_w7,.-ecp_nistz256_select_w7 +.LSEH_end_ecp_nistz256_select_w7_nohw: +.size ecp_nistz256_select_w7_nohw,.-ecp_nistz256_select_w7_nohw -.type ecp_nistz256_avx2_select_w5,@function +.globl ecp_nistz256_select_w5_avx2 +.hidden ecp_nistz256_select_w5_avx2 +.type ecp_nistz256_select_w5_avx2,@function .align 32 -ecp_nistz256_avx2_select_w5: +ecp_nistz256_select_w5_avx2: .cfi_startproc -.Lavx2_select_w5: +_CET_ENDBR vzeroupper vmovdqa .LTwo(%rip),%ymm0 @@ -2202,18 +2263,17 @@ ecp_nistz256_avx2_select_w5: vzeroupper ret .cfi_endproc -.LSEH_end_ecp_nistz256_avx2_select_w5: -.size ecp_nistz256_avx2_select_w5,.-ecp_nistz256_avx2_select_w5 +.LSEH_end_ecp_nistz256_select_w5_avx2: +.size ecp_nistz256_select_w5_avx2,.-ecp_nistz256_select_w5_avx2 -.globl ecp_nistz256_avx2_select_w7 -.hidden ecp_nistz256_avx2_select_w7 -.type ecp_nistz256_avx2_select_w7,@function +.globl ecp_nistz256_select_w7_avx2 +.hidden ecp_nistz256_select_w7_avx2 +.type ecp_nistz256_select_w7_avx2,@function .align 32 -ecp_nistz256_avx2_select_w7: +ecp_nistz256_select_w7_avx2: .cfi_startproc -.Lavx2_select_w7: _CET_ENDBR vzeroupper vmovdqa .LThree(%rip),%ymm0 @@ -2284,8 +2344,8 @@ _CET_ENDBR vzeroupper ret .cfi_endproc -.LSEH_end_ecp_nistz256_avx2_select_w7: -.size ecp_nistz256_avx2_select_w7,.-ecp_nistz256_avx2_select_w7 +.LSEH_end_ecp_nistz256_select_w7_avx2: +.size ecp_nistz256_select_w7_avx2,.-ecp_nistz256_select_w7_avx2 .type __ecp_nistz256_add_toq,@function .align 32 __ecp_nistz256_add_toq: @@ -2415,18 +2475,13 @@ __ecp_nistz256_mul_by_2q: ret .cfi_endproc .size __ecp_nistz256_mul_by_2q,.-__ecp_nistz256_mul_by_2q -.globl ecp_nistz256_point_double -.hidden ecp_nistz256_point_double -.type ecp_nistz256_point_double,@function +.globl ecp_nistz256_point_double_nohw +.hidden ecp_nistz256_point_double_nohw +.type ecp_nistz256_point_double_nohw,@function .align 32 -ecp_nistz256_point_double: +ecp_nistz256_point_double_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lpoint_doublex pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -2649,19 +2704,14 @@ _CET_ENDBR .Lpoint_doubleq_epilogue: ret .cfi_endproc -.size ecp_nistz256_point_double,.-ecp_nistz256_point_double -.globl ecp_nistz256_point_add -.hidden ecp_nistz256_point_add -.type ecp_nistz256_point_add,@function +.size ecp_nistz256_point_double_nohw,.-ecp_nistz256_point_double_nohw +.globl ecp_nistz256_point_add_nohw +.hidden ecp_nistz256_point_add_nohw +.type ecp_nistz256_point_add_nohw,@function .align 32 -ecp_nistz256_point_add: +ecp_nistz256_point_add_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lpoint_addx pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -3087,19 +3137,14 @@ _CET_ENDBR .Lpoint_addq_epilogue: ret .cfi_endproc -.size ecp_nistz256_point_add,.-ecp_nistz256_point_add -.globl ecp_nistz256_point_add_affine -.hidden ecp_nistz256_point_add_affine -.type ecp_nistz256_point_add_affine,@function +.size ecp_nistz256_point_add_nohw,.-ecp_nistz256_point_add_nohw +.globl ecp_nistz256_point_add_affine_nohw +.hidden ecp_nistz256_point_add_affine_nohw +.type ecp_nistz256_point_add_affine_nohw,@function .align 32 -ecp_nistz256_point_add_affine: +ecp_nistz256_point_add_affine_nohw: .cfi_startproc _CET_ENDBR - leaq OPENSSL_ia32cap_P(%rip),%rcx - movq 8(%rcx),%rcx - andl $0x80100,%ecx - cmpl $0x80100,%ecx - je .Lpoint_add_affinex pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -3422,7 +3467,7 @@ _CET_ENDBR .Ladd_affineq_epilogue: ret .cfi_endproc -.size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine +.size ecp_nistz256_point_add_affine_nohw,.-ecp_nistz256_point_add_affine_nohw .type __ecp_nistz256_add_tox,@function .align 32 __ecp_nistz256_add_tox: @@ -3558,11 +3603,13 @@ __ecp_nistz256_mul_by_2x: ret .cfi_endproc .size __ecp_nistz256_mul_by_2x,.-__ecp_nistz256_mul_by_2x -.type ecp_nistz256_point_doublex,@function +.globl ecp_nistz256_point_double_adx +.hidden ecp_nistz256_point_double_adx +.type ecp_nistz256_point_double_adx,@function .align 32 -ecp_nistz256_point_doublex: +ecp_nistz256_point_double_adx: .cfi_startproc -.Lpoint_doublex: +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -3785,12 +3832,14 @@ ecp_nistz256_point_doublex: .Lpoint_doublex_epilogue: ret .cfi_endproc -.size ecp_nistz256_point_doublex,.-ecp_nistz256_point_doublex -.type ecp_nistz256_point_addx,@function +.size ecp_nistz256_point_double_adx,.-ecp_nistz256_point_double_adx +.globl ecp_nistz256_point_add_adx +.hidden ecp_nistz256_point_add_adx +.type ecp_nistz256_point_add_adx,@function .align 32 -ecp_nistz256_point_addx: +ecp_nistz256_point_add_adx: .cfi_startproc -.Lpoint_addx: +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -4216,12 +4265,14 @@ ecp_nistz256_point_addx: .Lpoint_addx_epilogue: ret .cfi_endproc -.size ecp_nistz256_point_addx,.-ecp_nistz256_point_addx -.type ecp_nistz256_point_add_affinex,@function +.size ecp_nistz256_point_add_adx,.-ecp_nistz256_point_add_adx +.globl ecp_nistz256_point_add_affine_adx +.hidden ecp_nistz256_point_add_affine_adx +.type ecp_nistz256_point_add_affine_adx,@function .align 32 -ecp_nistz256_point_add_affinex: +ecp_nistz256_point_add_affine_adx: .cfi_startproc -.Lpoint_add_affinex: +_CET_ENDBR pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 @@ -4544,5 +4595,5 @@ ecp_nistz256_point_add_affinex: .Ladd_affinex_epilogue: ret .cfi_endproc -.size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex +.size ecp_nistz256_point_add_affine_adx,.-ecp_nistz256_point_add_affine_adx #endif diff --git a/gen/bcm/p256-x86_64-asm-win.asm b/gen/bcm/p256-x86_64-asm-win.asm index c25cac3343..10a1c0d80a 100644 --- a/gen/bcm/p256-x86_64-asm-win.asm +++ b/gen/bcm/p256-x86_64-asm-win.asm @@ -13,7 +13,6 @@ default rel %endif section .text code align=64 -EXTERN OPENSSL_ia32cap_P section .rdata rdata align=8 @@ -110,14 +109,14 @@ $L$SEH_end_ecp_nistz256_neg: -global ecp_nistz256_ord_mul_mont +global ecp_nistz256_ord_mul_mont_nohw ALIGN 32 -ecp_nistz256_ord_mul_mont: +ecp_nistz256_ord_mul_mont_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_ord_mul_mont: +$L$SEH_begin_ecp_nistz256_ord_mul_mont_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -125,11 +124,6 @@ $L$SEH_begin_ecp_nistz256_ord_mul_mont: _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$ecp_nistz256_ord_mul_montx push rbp push rbx @@ -441,7 +435,7 @@ $L$ord_mul_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_ord_mul_mont: +$L$SEH_end_ecp_nistz256_ord_mul_mont_nohw: @@ -449,14 +443,14 @@ $L$SEH_end_ecp_nistz256_ord_mul_mont: -global ecp_nistz256_ord_sqr_mont +global ecp_nistz256_ord_sqr_mont_nohw ALIGN 32 -ecp_nistz256_ord_sqr_mont: +ecp_nistz256_ord_sqr_mont_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_ord_sqr_mont: +$L$SEH_begin_ecp_nistz256_ord_sqr_mont_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -464,11 +458,6 @@ $L$SEH_begin_ecp_nistz256_ord_sqr_mont: _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$ecp_nistz256_ord_sqr_montx push rbp push rbx @@ -750,22 +739,24 @@ $L$ord_sqr_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_ord_sqr_mont: +$L$SEH_end_ecp_nistz256_ord_sqr_mont_nohw: +global ecp_nistz256_ord_mul_mont_adx ALIGN 32 -ecp_nistz256_ord_mul_montx: +ecp_nistz256_ord_mul_mont_adx: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_ord_mul_montx: +$L$SEH_begin_ecp_nistz256_ord_mul_mont_adx: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$ecp_nistz256_ord_mul_montx: +$L$ecp_nistz256_ord_mul_mont_adx: +_CET_ENDBR push rbp push rbx @@ -997,22 +988,24 @@ $L$ord_mulx_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_ord_mul_montx: +$L$SEH_end_ecp_nistz256_ord_mul_mont_adx: +global ecp_nistz256_ord_sqr_mont_adx ALIGN 32 -ecp_nistz256_ord_sqr_montx: +ecp_nistz256_ord_sqr_mont_adx: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_ord_sqr_montx: +$L$SEH_begin_ecp_nistz256_ord_sqr_mont_adx: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$ecp_nistz256_ord_sqr_montx: +_CET_ENDBR +$L$ecp_nistz256_ord_sqr_mont_adx: push rbp push rbx @@ -1216,21 +1209,21 @@ $L$ord_sqrx_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_ord_sqr_montx: +$L$SEH_end_ecp_nistz256_ord_sqr_mont_adx: -global ecp_nistz256_mul_mont +global ecp_nistz256_mul_mont_nohw ALIGN 32 -ecp_nistz256_mul_mont: +ecp_nistz256_mul_mont_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_mul_mont: +$L$SEH_begin_ecp_nistz256_mul_mont_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -1238,10 +1231,6 @@ $L$SEH_begin_ecp_nistz256_mul_mont: _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 -$L$mul_mont: push rbp push rbx @@ -1255,8 +1244,6 @@ $L$mul_mont: push r15 $L$mul_body: - cmp ecx,0x80100 - je NEAR $L$mul_montx mov rbx,rdx mov rax,QWORD[rdx] mov r9,QWORD[rsi] @@ -1265,20 +1252,7 @@ $L$mul_body: mov r12,QWORD[24+rsi] call __ecp_nistz256_mul_montq - jmp NEAR $L$mul_mont_done -ALIGN 32 -$L$mul_montx: - mov rbx,rdx - mov rdx,QWORD[rdx] - mov r9,QWORD[rsi] - mov r10,QWORD[8+rsi] - mov r11,QWORD[16+rsi] - mov r12,QWORD[24+rsi] - lea rsi,[((-128))+rsi] - - call __ecp_nistz256_mul_montx -$L$mul_mont_done: mov r15,QWORD[rsp] mov r14,QWORD[8+rsp] @@ -1298,7 +1272,7 @@ $L$mul_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_mul_mont: +$L$SEH_end_ecp_nistz256_mul_mont_nohw: ALIGN 32 @@ -1525,23 +1499,20 @@ __ecp_nistz256_mul_montq: -global ecp_nistz256_sqr_mont +global ecp_nistz256_sqr_mont_nohw ALIGN 32 -ecp_nistz256_sqr_mont: +ecp_nistz256_sqr_mont_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_sqr_mont: +$L$SEH_begin_ecp_nistz256_sqr_mont_nohw: mov rdi,rcx mov rsi,rdx _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 push rbp push rbx @@ -1555,26 +1526,13 @@ _CET_ENDBR push r15 $L$sqr_body: - cmp ecx,0x80100 - je NEAR $L$sqr_montx mov rax,QWORD[rsi] mov r14,QWORD[8+rsi] mov r15,QWORD[16+rsi] mov r8,QWORD[24+rsi] call __ecp_nistz256_sqr_montq - jmp NEAR $L$sqr_mont_done - -ALIGN 32 -$L$sqr_montx: - mov rdx,QWORD[rsi] - mov r14,QWORD[8+rsi] - mov r15,QWORD[16+rsi] - mov r8,QWORD[24+rsi] - lea rsi,[((-128))+rsi] - call __ecp_nistz256_sqr_montx -$L$sqr_mont_done: mov r15,QWORD[rsp] mov r14,QWORD[8+rsp] @@ -1594,7 +1552,7 @@ $L$sqr_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_sqr_mont: +$L$SEH_end_ecp_nistz256_sqr_mont_nohw: ALIGN 32 @@ -1759,6 +1717,65 @@ __ecp_nistz256_sqr_montq: ret +global ecp_nistz256_mul_mont_adx + +ALIGN 32 +ecp_nistz256_mul_mont_adx: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ecp_nistz256_mul_mont_adx: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + +_CET_ENDBR + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + +$L$mulx_body: + mov rbx,rdx + mov rdx,QWORD[rdx] + mov r9,QWORD[rsi] + mov r10,QWORD[8+rsi] + mov r11,QWORD[16+rsi] + mov r12,QWORD[24+rsi] + lea rsi,[((-128))+rsi] + + call __ecp_nistz256_mul_montx + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$mulx_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + ret + +$L$SEH_end_ecp_nistz256_mul_mont_adx: + ALIGN 32 __ecp_nistz256_mul_montx: @@ -1928,6 +1945,62 @@ __ecp_nistz256_mul_montx: +global ecp_nistz256_sqr_mont_adx + +ALIGN 32 +ecp_nistz256_sqr_mont_adx: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_ecp_nistz256_sqr_mont_adx: + mov rdi,rcx + mov rsi,rdx + + + +_CET_ENDBR + push rbp + + push rbx + + push r12 + + push r13 + + push r14 + + push r15 + +$L$sqrx_body: + mov rdx,QWORD[rsi] + mov r14,QWORD[8+rsi] + mov r15,QWORD[16+rsi] + mov r8,QWORD[24+rsi] + lea rsi,[((-128))+rsi] + + call __ecp_nistz256_sqr_montx + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r13,QWORD[16+rsp] + + mov r12,QWORD[24+rsp] + + mov rbx,QWORD[32+rsp] + + mov rbp,QWORD[40+rsp] + + lea rsp,[48+rsp] + +$L$sqrx_epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + ret + +$L$SEH_end_ecp_nistz256_sqr_mont_adx: + ALIGN 32 __ecp_nistz256_sqr_montx: @@ -2059,18 +2132,14 @@ __ecp_nistz256_sqr_montx: -global ecp_nistz256_select_w5 +global ecp_nistz256_select_w5_nohw ALIGN 32 -ecp_nistz256_select_w5: +ecp_nistz256_select_w5_nohw: _CET_ENDBR - lea rax,[OPENSSL_ia32cap_P] - mov rax,QWORD[8+rax] - test eax,32 - jnz NEAR $L$avx2_select_w5 lea rax,[((-136))+rsp] -$L$SEH_begin_ecp_nistz256_select_w5: +$L$SEH_begin_ecp_nistz256_select_w5_nohw: DB 0x48,0x8d,0x60,0xe0 DB 0x0f,0x29,0x70,0xe0 DB 0x0f,0x29,0x78,0xf0 @@ -2145,23 +2214,19 @@ $L$select_loop_sse_w5: lea rsp,[168+rsp] ret -$L$SEH_end_ecp_nistz256_select_w5: +$L$SEH_end_ecp_nistz256_select_w5_nohw: -global ecp_nistz256_select_w7 +global ecp_nistz256_select_w7_nohw ALIGN 32 -ecp_nistz256_select_w7: +ecp_nistz256_select_w7_nohw: _CET_ENDBR - lea rax,[OPENSSL_ia32cap_P] - mov rax,QWORD[8+rax] - test eax,32 - jnz NEAR $L$avx2_select_w7 lea rax,[((-136))+rsp] -$L$SEH_begin_ecp_nistz256_select_w7: +$L$SEH_begin_ecp_nistz256_select_w7_nohw: DB 0x48,0x8d,0x60,0xe0 DB 0x0f,0x29,0x70,0xe0 DB 0x0f,0x29,0x78,0xf0 @@ -2225,19 +2290,20 @@ $L$select_loop_sse_w7: lea rsp,[168+rsp] ret -$L$SEH_end_ecp_nistz256_select_w7: +$L$SEH_end_ecp_nistz256_select_w7_nohw: +global ecp_nistz256_select_w5_avx2 ALIGN 32 -ecp_nistz256_avx2_select_w5: +ecp_nistz256_select_w5_avx2: -$L$avx2_select_w5: +_CET_ENDBR vzeroupper lea rax,[((-136))+rsp] mov r11,rsp -$L$SEH_begin_ecp_nistz256_avx2_select_w5: +$L$SEH_begin_ecp_nistz256_select_w5_avx2: DB 0x48,0x8d,0x60,0xe0 DB 0xc5,0xf8,0x29,0x70,0xe0 DB 0xc5,0xf8,0x29,0x78,0xf0 @@ -2313,22 +2379,21 @@ $L$select_loop_avx2_w5: lea rsp,[r11] ret -$L$SEH_end_ecp_nistz256_avx2_select_w5: +$L$SEH_end_ecp_nistz256_select_w5_avx2: -global ecp_nistz256_avx2_select_w7 +global ecp_nistz256_select_w7_avx2 ALIGN 32 -ecp_nistz256_avx2_select_w7: +ecp_nistz256_select_w7_avx2: -$L$avx2_select_w7: _CET_ENDBR vzeroupper mov r11,rsp lea rax,[((-136))+rsp] -$L$SEH_begin_ecp_nistz256_avx2_select_w7: +$L$SEH_begin_ecp_nistz256_select_w7_avx2: DB 0x48,0x8d,0x60,0xe0 DB 0xc5,0xf8,0x29,0x70,0xe0 DB 0xc5,0xf8,0x29,0x78,0xf0 @@ -2419,7 +2484,7 @@ $L$select_loop_avx2_w7: lea rsp,[r11] ret -$L$SEH_end_ecp_nistz256_avx2_select_w7: +$L$SEH_end_ecp_nistz256_select_w7_avx2: ALIGN 32 @@ -2550,25 +2615,20 @@ __ecp_nistz256_mul_by_2q: ret -global ecp_nistz256_point_double +global ecp_nistz256_point_double_nohw ALIGN 32 -ecp_nistz256_point_double: +ecp_nistz256_point_double_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_point_double: +$L$SEH_begin_ecp_nistz256_point_double_nohw: mov rdi,rcx mov rsi,rdx _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$point_doublex push rbp push rbx @@ -2787,15 +2847,15 @@ $L$point_doubleq_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_point_double: -global ecp_nistz256_point_add +$L$SEH_end_ecp_nistz256_point_double_nohw: +global ecp_nistz256_point_add_nohw ALIGN 32 -ecp_nistz256_point_add: +ecp_nistz256_point_add_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_point_add: +$L$SEH_begin_ecp_nistz256_point_add_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -2803,11 +2863,6 @@ $L$SEH_begin_ecp_nistz256_point_add: _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$point_addx push rbp push rbx @@ -3229,15 +3284,15 @@ $L$point_addq_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_point_add: -global ecp_nistz256_point_add_affine +$L$SEH_end_ecp_nistz256_point_add_nohw: +global ecp_nistz256_point_add_affine_nohw ALIGN 32 -ecp_nistz256_point_add_affine: +ecp_nistz256_point_add_affine_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_point_add_affine: +$L$SEH_begin_ecp_nistz256_point_add_affine_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -3245,11 +3300,6 @@ $L$SEH_begin_ecp_nistz256_point_add_affine: _CET_ENDBR - lea rcx,[OPENSSL_ia32cap_P] - mov rcx,QWORD[8+rcx] - and ecx,0x80100 - cmp ecx,0x80100 - je NEAR $L$point_add_affinex push rbp push rbx @@ -3568,7 +3618,7 @@ $L$add_affineq_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_point_add_affine: +$L$SEH_end_ecp_nistz256_point_add_affine_nohw: ALIGN 32 __ecp_nistz256_add_tox: @@ -3704,19 +3754,20 @@ __ecp_nistz256_mul_by_2x: ret +global ecp_nistz256_point_double_adx ALIGN 32 -ecp_nistz256_point_doublex: +ecp_nistz256_point_double_adx: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_point_doublex: +$L$SEH_begin_ecp_nistz256_point_double_adx: mov rdi,rcx mov rsi,rdx -$L$point_doublex: +_CET_ENDBR push rbp push rbx @@ -3935,21 +3986,22 @@ $L$point_doublex_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_point_doublex: +$L$SEH_end_ecp_nistz256_point_double_adx: +global ecp_nistz256_point_add_adx ALIGN 32 -ecp_nistz256_point_addx: +ecp_nistz256_point_add_adx: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_point_addx: +$L$SEH_begin_ecp_nistz256_point_add_adx: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$point_addx: +_CET_ENDBR push rbp push rbx @@ -4371,21 +4423,22 @@ $L$point_addx_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_point_addx: +$L$SEH_end_ecp_nistz256_point_add_adx: +global ecp_nistz256_point_add_affine_adx ALIGN 32 -ecp_nistz256_point_add_affinex: +ecp_nistz256_point_add_affine_adx: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_ecp_nistz256_point_add_affinex: +$L$SEH_begin_ecp_nistz256_point_add_affine_adx: mov rdi,rcx mov rsi,rdx mov rdx,r8 -$L$point_add_affinex: +_CET_ENDBR push rbp push rbx @@ -4704,7 +4757,7 @@ $L$add_affinex_epilogue: mov rsi,QWORD[16+rsp] ret -$L$SEH_end_ecp_nistz256_point_add_affinex: +$L$SEH_end_ecp_nistz256_point_add_affine_adx: EXTERN __imp_RtlVirtualUnwind @@ -4843,64 +4896,70 @@ ALIGN 4 DD $L$SEH_end_ecp_nistz256_neg wrt ..imagebase DD $L$SEH_info_ecp_nistz256_neg wrt ..imagebase - DD $L$SEH_begin_ecp_nistz256_ord_mul_mont wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_ord_mul_mont wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_ord_mul_mont wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_ord_sqr_mont wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_ord_sqr_mont wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_ord_sqr_mont wrt ..imagebase - DD $L$SEH_begin_ecp_nistz256_ord_mul_montx wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_ord_mul_montx wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_ord_mul_montx wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_ord_sqr_montx wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_ord_sqr_montx wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_ord_sqr_montx wrt ..imagebase - DD $L$SEH_begin_ecp_nistz256_mul_mont wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_mul_mont wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_mul_mont wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_sqr_mont wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_sqr_mont wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_sqr_mont wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_select_w5 wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_select_w5 wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_select_wX wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_select_w7 wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_select_w7 wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_select_wX wrt ..imagebase - DD $L$SEH_begin_ecp_nistz256_avx2_select_w5 wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_avx2_select_w5 wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_avx2_select_wX wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_avx2_select_w7 wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_avx2_select_w7 wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_avx2_select_wX wrt ..imagebase - DD $L$SEH_begin_ecp_nistz256_point_double wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_point_double wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_point_double wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_point_add wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_point_add wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_point_add wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_point_add_affine wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_point_add_affine wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_point_add_affine wrt ..imagebase - DD $L$SEH_begin_ecp_nistz256_point_doublex wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_point_doublex wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_point_doublex wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_point_addx wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_point_addx wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_point_addx wrt ..imagebase - - DD $L$SEH_begin_ecp_nistz256_point_add_affinex wrt ..imagebase - DD $L$SEH_end_ecp_nistz256_point_add_affinex wrt ..imagebase - DD $L$SEH_info_ecp_nistz256_point_add_affinex wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_ord_mul_mont_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_mul_mont_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_mul_mont_nohw wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_ord_sqr_mont_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_sqr_mont_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_sqr_mont_nohw wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_ord_mul_mont_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_mul_mont_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_mul_mont_adx wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_ord_sqr_mont_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_ord_sqr_mont_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_ord_sqr_mont_adx wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_mul_mont_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_mul_mont_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_mul_mont_nohw wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_sqr_mont_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_sqr_mont_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_sqr_mont_nohw wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_mul_mont_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_mul_mont_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_mul_mont_adx wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_sqr_mont_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_sqr_mont_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_sqr_mont_adx wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_select_w5_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_select_w5_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_select_wX_nohw wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_select_w7_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_select_w7_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_select_wX_nohw wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_select_w5_avx2 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_select_w5_avx2 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_select_wX_avx2 wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_select_w7_avx2 wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_select_w7_avx2 wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_select_wX_avx2 wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_point_double_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_double_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_double_nohw wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add_nohw wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add_affine_nohw wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add_affine_nohw wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add_affine_nohw wrt ..imagebase + DD $L$SEH_begin_ecp_nistz256_point_double_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_double_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_double_adx wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add_adx wrt ..imagebase + + DD $L$SEH_begin_ecp_nistz256_point_add_affine_adx wrt ..imagebase + DD $L$SEH_end_ecp_nistz256_point_add_affine_adx wrt ..imagebase + DD $L$SEH_info_ecp_nistz256_point_add_affine_adx wrt ..imagebase section .xdata rdata align=8 ALIGN 8 @@ -4908,37 +4967,47 @@ $L$SEH_info_ecp_nistz256_neg: DB 9,0,0,0 DD short_handler wrt ..imagebase DD $L$neg_body wrt ..imagebase,$L$neg_epilogue wrt ..imagebase -$L$SEH_info_ecp_nistz256_ord_mul_mont: +$L$SEH_info_ecp_nistz256_ord_mul_mont_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$ord_mul_body wrt ..imagebase,$L$ord_mul_epilogue wrt ..imagebase DD 48,0 -$L$SEH_info_ecp_nistz256_ord_sqr_mont: +$L$SEH_info_ecp_nistz256_ord_sqr_mont_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$ord_sqr_body wrt ..imagebase,$L$ord_sqr_epilogue wrt ..imagebase DD 48,0 -$L$SEH_info_ecp_nistz256_ord_mul_montx: +$L$SEH_info_ecp_nistz256_ord_mul_mont_adx: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$ord_mulx_body wrt ..imagebase,$L$ord_mulx_epilogue wrt ..imagebase DD 48,0 -$L$SEH_info_ecp_nistz256_ord_sqr_montx: +$L$SEH_info_ecp_nistz256_ord_sqr_mont_adx: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$ord_sqrx_body wrt ..imagebase,$L$ord_sqrx_epilogue wrt ..imagebase DD 48,0 -$L$SEH_info_ecp_nistz256_mul_mont: +$L$SEH_info_ecp_nistz256_mul_mont_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase DD 48,0 -$L$SEH_info_ecp_nistz256_sqr_mont: +$L$SEH_info_ecp_nistz256_sqr_mont_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$sqr_body wrt ..imagebase,$L$sqr_epilogue wrt ..imagebase DD 48,0 -$L$SEH_info_ecp_nistz256_select_wX: +$L$SEH_info_ecp_nistz256_mul_mont_adx: + DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$mulx_body wrt ..imagebase,$L$mulx_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_sqr_mont_adx: + DB 9,0,0,0 + DD full_handler wrt ..imagebase + DD $L$sqrx_body wrt ..imagebase,$L$sqrx_epilogue wrt ..imagebase + DD 48,0 +$L$SEH_info_ecp_nistz256_select_wX_nohw: DB 0x01,0x33,0x16,0x00 DB 0x33,0xf8,0x09,0x00 DB 0x2e,0xe8,0x08,0x00 @@ -4952,7 +5021,7 @@ $L$SEH_info_ecp_nistz256_select_wX: DB 0x08,0x68,0x00,0x00 DB 0x04,0x01,0x15,0x00 ALIGN 8 -$L$SEH_info_ecp_nistz256_avx2_select_wX: +$L$SEH_info_ecp_nistz256_select_wX_avx2: DB 0x01,0x36,0x17,0x0b DB 0x36,0xf8,0x09,0x00 DB 0x31,0xe8,0x08,0x00 @@ -4967,33 +5036,33 @@ $L$SEH_info_ecp_nistz256_avx2_select_wX: DB 0x04,0x01,0x15,0x00 DB 0x00,0xb3,0x00,0x00 ALIGN 8 -$L$SEH_info_ecp_nistz256_point_double: +$L$SEH_info_ecp_nistz256_point_double_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$point_doubleq_body wrt ..imagebase,$L$point_doubleq_epilogue wrt ..imagebase DD 32*5+56,0 -$L$SEH_info_ecp_nistz256_point_add: +$L$SEH_info_ecp_nistz256_point_add_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$point_addq_body wrt ..imagebase,$L$point_addq_epilogue wrt ..imagebase DD 32*18+56,0 -$L$SEH_info_ecp_nistz256_point_add_affine: +$L$SEH_info_ecp_nistz256_point_add_affine_nohw: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$add_affineq_body wrt ..imagebase,$L$add_affineq_epilogue wrt ..imagebase DD 32*15+56,0 ALIGN 8 -$L$SEH_info_ecp_nistz256_point_doublex: +$L$SEH_info_ecp_nistz256_point_double_adx: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$point_doublex_body wrt ..imagebase,$L$point_doublex_epilogue wrt ..imagebase DD 32*5+56,0 -$L$SEH_info_ecp_nistz256_point_addx: +$L$SEH_info_ecp_nistz256_point_add_adx: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$point_addx_body wrt ..imagebase,$L$point_addx_epilogue wrt ..imagebase DD 32*18+56,0 -$L$SEH_info_ecp_nistz256_point_add_affinex: +$L$SEH_info_ecp_nistz256_point_add_affine_adx: DB 9,0,0,0 DD full_handler wrt ..imagebase DD $L$add_affinex_body wrt ..imagebase,$L$add_affinex_epilogue wrt ..imagebase From d22f250fe0377cd1d14a1a7b3a2b7a913083036b Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 2 Sep 2024 13:26:18 -0400 Subject: [PATCH 67/81] Remove OPENSSL_ia32cap_P references from ChaCha20-Poly1305 assembly CPU dispatch is now all moved out of assembly. Fixed: 42290548 Change-Id: Icbe5053255d4aa76406b5303ba515ec38d42cb0d Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70809 Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- crypto/cipher_extra/aead_test.cc | 18 +++ .../asm/chacha20_poly1305_x86_64.pl | 111 +++++++++++----- crypto/cipher_extra/internal.h | 43 +++++++ gen/crypto/chacha20_poly1305_x86_64-apple.S | 69 ++++++---- gen/crypto/chacha20_poly1305_x86_64-linux.S | 82 +++++++----- gen/crypto/chacha20_poly1305_x86_64-win.asm | 120 ++++++++++++++---- 6 files changed, 329 insertions(+), 114 deletions(-) diff --git a/crypto/cipher_extra/aead_test.cc b/crypto/cipher_extra/aead_test.cc index e16f5a24bb..9207ccc848 100644 --- a/crypto/cipher_extra/aead_test.cc +++ b/crypto/cipher_extra/aead_test.cc @@ -825,15 +825,33 @@ TEST(ChaChaPoly1305Test, ABI) { for (size_t len = 0; len <= 1024; len += 5) { SCOPED_TRACE(len); union chacha20_poly1305_open_data open_ctx = {}; +#if defined(OPENSSL_X86_64) + CHECK_ABI(chacha20_poly1305_open_nohw, buf.get(), buf.get(), len, buf.get(), + len % 128, &open_ctx); + if (CRYPTO_is_AVX2_capable() && CRYPTO_is_BMI2_capable()) { + CHECK_ABI(chacha20_poly1305_open_avx2, buf.get(), buf.get(), len, + buf.get(), len % 128, &open_ctx); + } +#else CHECK_ABI(chacha20_poly1305_open, buf.get(), buf.get(), len, buf.get(), len % 128, &open_ctx); +#endif } for (size_t len = 0; len <= 1024; len += 5) { SCOPED_TRACE(len); union chacha20_poly1305_seal_data seal_ctx = {}; +#if defined(OPENSSL_X86_64) + CHECK_ABI(chacha20_poly1305_seal_nohw, buf.get(), buf.get(), len, buf.get(), + len % 128, &seal_ctx); + if (CRYPTO_is_AVX2_capable() && CRYPTO_is_BMI2_capable()) { + CHECK_ABI(chacha20_poly1305_seal_avx2, buf.get(), buf.get(), len, + buf.get(), len % 128, &seal_ctx); + } +#else CHECK_ABI(chacha20_poly1305_seal, buf.get(), buf.get(), len, buf.get(), len % 128, &seal_ctx); +#endif } } #endif // SUPPORTS_ABI_TEST diff --git a/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl b/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl index fb11760779..9297052272 100644 --- a/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl +++ b/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl @@ -37,13 +37,9 @@ $avx = 2; $code.=<<___; -.text -.extern OPENSSL_ia32cap_P - -chacha20_poly1305_constants: - .section .rodata .align 64 +chacha20_poly1305_constants: .Lchacha20_consts: .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' @@ -444,10 +440,10 @@ sub emit_body { # union chacha20_poly1305_open_data *aead_data) # $code.=" -.globl chacha20_poly1305_open -.type chacha20_poly1305_open,\@function,6 +.globl chacha20_poly1305_open_nohw +.type chacha20_poly1305_open_nohw,\@function,6 .align 64 -chacha20_poly1305_open: +chacha20_poly1305_open_nohw: .cfi_startproc _CET_ENDBR push %rbp @@ -485,13 +481,8 @@ sub emit_body { $code.=" mov %rdx, $inl mov $adl, 0+$len_store - mov $inl, 8+$len_store\n"; -$code.=" - mov OPENSSL_ia32cap_P+8(%rip), %eax - and \$`(1<<5) + (1<<8)`, %eax # Check both BMI2 and AVX2 are present - xor \$`(1<<5) + (1<<8)`, %eax - jz chacha20_poly1305_open_avx2\n" if ($avx>1); -$code.=" + mov $inl, 8+$len_store + cmp \$128, $inl jbe .Lopen_sse_128 # For long buffers, prepare the poly key first @@ -858,7 +849,7 @@ sub emit_body { movdqa $C2, $B2 movdqa $D2, $C2 jmp .Lopen_sse_128_xor_hash -.size chacha20_poly1305_open, .-chacha20_poly1305_open +.size chacha20_poly1305_open_nohw, .-chacha20_poly1305_open_nohw .cfi_endproc ################################################################################ @@ -867,10 +858,10 @@ sub emit_body { # size_t plaintext_len, const uint8_t *ad, # size_t ad_len, # union chacha20_poly1305_seal_data *data); -.globl chacha20_poly1305_seal -.type chacha20_poly1305_seal,\@function,6 +.globl chacha20_poly1305_seal_nohw +.type chacha20_poly1305_seal_nohw,\@function,6 .align 64 -chacha20_poly1305_seal: +chacha20_poly1305_seal_nohw: .cfi_startproc _CET_ENDBR push %rbp @@ -909,13 +900,8 @@ sub emit_body { addq %rdx, $inl mov $adl, 0+$len_store mov $inl, 8+$len_store - mov %rdx, $inl\n"; -$code.=" - mov OPENSSL_ia32cap_P+8(%rip), %eax - and \$`(1<<5) + (1<<8)`, %eax # Check both BMI2 and AVX2 are present - xor \$`(1<<5) + (1<<8)`, %eax - jz chacha20_poly1305_seal_avx2\n" if ($avx>1); -$code.=" + mov %rdx, $inl + cmp \$128, $inl jbe .Lseal_sse_128 # For longer buffers, prepare the poly key + some stream @@ -1371,7 +1357,7 @@ sub emit_body { mov %r8, $itr2 call poly_hash_ad_internal jmp .Lseal_sse_128_tail_xor -.size chacha20_poly1305_seal, .-chacha20_poly1305_seal +.size chacha20_poly1305_seal_nohw, .-chacha20_poly1305_seal_nohw .cfi_endproc\n"; } @@ -1643,21 +1629,49 @@ sub gen_chacha_round_avx2 { $code.=" ############################################################################### -.type chacha20_poly1305_open_avx2,\@abi-omnipotent +.globl chacha20_poly1305_open_avx2 +.type chacha20_poly1305_open_avx2,\@function,6 .align 64 chacha20_poly1305_open_avx2: .cfi_startproc - -# Since the AVX2 function operates in the frame of the SSE function, we just copy the frame state to over here + _CET_ENDBR + push %rbp .cfi_push %rbp + push %rbx .cfi_push %rbx + push %r12 .cfi_push %r12 + push %r13 .cfi_push %r13 + push %r14 .cfi_push %r14 + push %r15 .cfi_push %r15 + # We write the calculated authenticator back to keyp at the end, so save + # the pointer on the stack too. + push $keyp .cfi_push $keyp + sub \$288 + $xmm_storage + 32, %rsp .cfi_adjust_cfa_offset 288 + 32 + lea 32(%rsp), %rbp + and \$-32, %rbp\n"; +$code.=" + movaps %xmm6,16*0+$xmm_store + movaps %xmm7,16*1+$xmm_store + movaps %xmm8,16*2+$xmm_store + movaps %xmm9,16*3+$xmm_store + movaps %xmm10,16*4+$xmm_store + movaps %xmm11,16*5+$xmm_store + movaps %xmm12,16*6+$xmm_store + movaps %xmm13,16*7+$xmm_store + movaps %xmm14,16*8+$xmm_store + movaps %xmm15,16*9+$xmm_store\n" if ($win64); +$code.=" + mov %rdx, $inl + mov $adl, 0+$len_store + mov $inl, 8+$len_store + vzeroupper vmovdqa .Lchacha20_consts(%rip), $A0 vbroadcasti128 0*16($keyp), $B0 @@ -2113,20 +2127,49 @@ sub gen_chacha_round_avx2 { .cfi_endproc ############################################################################### ############################################################################### -.type chacha20_poly1305_seal_avx2,\@abi-omnipotent +.globl chacha20_poly1305_seal_avx2 +.type chacha20_poly1305_seal_avx2,\@function,6 .align 64 chacha20_poly1305_seal_avx2: .cfi_startproc - -# Since the AVX2 function operates in the frame of the SSE function, we just copy the frame state to over here + _CET_ENDBR + push %rbp .cfi_push %rbp + push %rbx .cfi_push %rbx + push %r12 .cfi_push %r12 + push %r13 .cfi_push %r13 + push %r14 .cfi_push %r14 -.cfi_push %r15 + push %r15 +.cfi_push %r15 +# We write the calculated authenticator back to keyp at the end, so save +# the pointer on the stack too. + push $keyp .cfi_push $keyp + sub \$288 + $xmm_storage + 32, %rsp .cfi_adjust_cfa_offset 288 + 32 + lea 32(%rsp), %rbp + and \$-32, %rbp\n"; +$code.=" + movaps %xmm6,16*0+$xmm_store + movaps %xmm7,16*1+$xmm_store + movaps %xmm8,16*2+$xmm_store + movaps %xmm9,16*3+$xmm_store + movaps %xmm10,16*4+$xmm_store + movaps %xmm11,16*5+$xmm_store + movaps %xmm12,16*6+$xmm_store + movaps %xmm13,16*7+$xmm_store + movaps %xmm14,16*8+$xmm_store + movaps %xmm15,16*9+$xmm_store\n" if ($win64); +$code.=" + mov 56($keyp), $inl # extra_in_len + addq %rdx, $inl + mov $adl, 0+$len_store + mov $inl, 8+$len_store + mov %rdx, $inl vzeroupper vmovdqa .Lchacha20_consts(%rip), $A0 diff --git a/crypto/cipher_extra/internal.h b/crypto/cipher_extra/internal.h index 39ab950fe4..32c03537d6 100644 --- a/crypto/cipher_extra/internal.h +++ b/crypto/cipher_extra/internal.h @@ -192,22 +192,65 @@ OPENSSL_INLINE int chacha20_poly1305_asm_capable(void) { // Additional input parameters are passed in |aead_data->in|. On exit, it will // write calculated tag value to |aead_data->out.tag|, which the caller must // check. +#if defined(OPENSSL_X86_64) +extern void chacha20_poly1305_open_nohw( + uint8_t *out_plaintext, const uint8_t *ciphertext, size_t plaintext_len, + const uint8_t *ad, size_t ad_len, union chacha20_poly1305_open_data *data); +extern void chacha20_poly1305_open_avx2( + uint8_t *out_plaintext, const uint8_t *ciphertext, size_t plaintext_len, + const uint8_t *ad, size_t ad_len, union chacha20_poly1305_open_data *data); +OPENSSL_INLINE void chacha20_poly1305_open(uint8_t *out_plaintext, + const uint8_t *ciphertext, + size_t plaintext_len, const uint8_t *ad, + size_t ad_len, + union chacha20_poly1305_open_data *data) { + if (CRYPTO_is_AVX2_capable() && CRYPTO_is_BMI2_capable()) { + chacha20_poly1305_open_avx2(out_plaintext, ciphertext, plaintext_len, ad, + ad_len, data); + } else { + chacha20_poly1305_open_nohw(out_plaintext, ciphertext, plaintext_len, ad, + ad_len, data); + } +} +#else extern void chacha20_poly1305_open(uint8_t *out_plaintext, const uint8_t *ciphertext, size_t plaintext_len, const uint8_t *ad, size_t ad_len, union chacha20_poly1305_open_data *data); +#endif // chacha20_poly1305_open is defined in chacha20_poly1305_*.pl. It encrypts // |plaintext_len| bytes from |plaintext| and writes them to |out_ciphertext|. // Additional input parameters are passed in |aead_data->in|. The calculated tag // value is over the computed ciphertext concatenated with |extra_ciphertext| // and written to |aead_data->out.tag|. +#if defined(OPENSSL_X86_64) +extern void chacha20_poly1305_seal_nohw( + uint8_t *out_ciphertext, const uint8_t *plaintext, size_t plaintext_len, + const uint8_t *ad, size_t ad_len, union chacha20_poly1305_seal_data *data); +extern void chacha20_poly1305_seal_avx2( + uint8_t *out_ciphertext, const uint8_t *plaintext, size_t plaintext_len, + const uint8_t *ad, size_t ad_len, union chacha20_poly1305_seal_data *data); +OPENSSL_INLINE void chacha20_poly1305_seal( + uint8_t *out_ciphertext, const uint8_t *plaintext, size_t plaintext_len, + const uint8_t *ad, size_t ad_len, union chacha20_poly1305_seal_data *data) { + if (CRYPTO_is_AVX2_capable() && CRYPTO_is_BMI2_capable()) { + chacha20_poly1305_seal_avx2(out_ciphertext, plaintext, plaintext_len, ad, + ad_len, data); + } else { + chacha20_poly1305_seal_nohw(out_ciphertext, plaintext, plaintext_len, ad, + ad_len, data); + } +} +#else extern void chacha20_poly1305_seal(uint8_t *out_ciphertext, const uint8_t *plaintext, size_t plaintext_len, const uint8_t *ad, size_t ad_len, union chacha20_poly1305_seal_data *data); +#endif + #else OPENSSL_INLINE int chacha20_poly1305_asm_capable(void) { return 0; } diff --git a/gen/crypto/chacha20_poly1305_x86_64-apple.S b/gen/crypto/chacha20_poly1305_x86_64-apple.S index e4a7202570..5ae5849777 100644 --- a/gen/crypto/chacha20_poly1305_x86_64-apple.S +++ b/gen/crypto/chacha20_poly1305_x86_64-apple.S @@ -4,13 +4,9 @@ #include #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) -.text - - -chacha20_poly1305_constants: - .section __DATA,__const .p2align 6 +chacha20_poly1305_constants: L$chacha20_consts: .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' @@ -216,11 +212,11 @@ L$hash_ad_done: -.globl _chacha20_poly1305_open -.private_extern _chacha20_poly1305_open +.globl _chacha20_poly1305_open_nohw +.private_extern _chacha20_poly1305_open_nohw .p2align 6 -_chacha20_poly1305_open: +_chacha20_poly1305_open_nohw: _CET_ENDBR pushq %rbp @@ -249,11 +245,6 @@ _CET_ENDBR movq %r8,0+0+32(%rbp) movq %rbx,8+0+32(%rbp) - movl _OPENSSL_ia32cap_P+8(%rip),%eax - andl $288,%eax - xorl $288,%eax - jz chacha20_poly1305_open_avx2 - cmpq $128,%rbx jbe L$open_sse_128 @@ -2088,11 +2079,11 @@ L$open_sse_128_xor_hash: -.globl _chacha20_poly1305_seal -.private_extern _chacha20_poly1305_seal +.globl _chacha20_poly1305_seal_nohw +.private_extern _chacha20_poly1305_seal_nohw .p2align 6 -_chacha20_poly1305_seal: +_chacha20_poly1305_seal_nohw: _CET_ENDBR pushq %rbp @@ -2122,11 +2113,6 @@ _CET_ENDBR movq %rbx,8+0+32(%rbp) movq %rdx,%rbx - movl _OPENSSL_ia32cap_P+8(%rip),%eax - andl $288,%eax - xorl $288,%eax - jz chacha20_poly1305_seal_avx2 - cmpq $128,%rbx jbe L$seal_sse_128 @@ -4075,20 +4061,38 @@ L$seal_sse_128_rounds: +.globl _chacha20_poly1305_open_avx2 +.private_extern _chacha20_poly1305_open_avx2 .p2align 6 -chacha20_poly1305_open_avx2: +_chacha20_poly1305_open_avx2: +_CET_ENDBR + pushq %rbp + pushq %rbx + pushq %r12 + pushq %r13 + pushq %r14 + + pushq %r15 + pushq %r9 + subq $288 + 0 + 32,%rsp + leaq 32(%rsp),%rbp + andq $-32,%rbp + + movq %rdx,%rbx + movq %r8,0+0+32(%rbp) + movq %rbx,8+0+32(%rbp) vzeroupper vmovdqa L$chacha20_consts(%rip),%ymm0 @@ -6223,20 +6227,39 @@ L$open_avx2_320_rounds: +.globl _chacha20_poly1305_seal_avx2 +.private_extern _chacha20_poly1305_seal_avx2 .p2align 6 -chacha20_poly1305_seal_avx2: +_chacha20_poly1305_seal_avx2: + +_CET_ENDBR + pushq %rbp + pushq %rbx + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + pushq %r9 + subq $288 + 0 + 32,%rsp + leaq 32(%rsp),%rbp + andq $-32,%rbp + movq 56(%r9),%rbx + addq %rdx,%rbx + movq %r8,0+0+32(%rbp) + movq %rbx,8+0+32(%rbp) + movq %rdx,%rbx vzeroupper vmovdqa L$chacha20_consts(%rip),%ymm0 diff --git a/gen/crypto/chacha20_poly1305_x86_64-linux.S b/gen/crypto/chacha20_poly1305_x86_64-linux.S index ac38f8f7a3..22123eee55 100644 --- a/gen/crypto/chacha20_poly1305_x86_64-linux.S +++ b/gen/crypto/chacha20_poly1305_x86_64-linux.S @@ -4,14 +4,9 @@ #include #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) -.text -.extern OPENSSL_ia32cap_P -.hidden OPENSSL_ia32cap_P - -chacha20_poly1305_constants: - .section .rodata .align 64 +chacha20_poly1305_constants: .Lchacha20_consts: .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' .byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' @@ -217,11 +212,11 @@ poly_hash_ad_internal: .cfi_endproc .size poly_hash_ad_internal, .-poly_hash_ad_internal -.globl chacha20_poly1305_open -.hidden chacha20_poly1305_open -.type chacha20_poly1305_open,@function +.globl chacha20_poly1305_open_nohw +.hidden chacha20_poly1305_open_nohw +.type chacha20_poly1305_open_nohw,@function .align 64 -chacha20_poly1305_open: +chacha20_poly1305_open_nohw: .cfi_startproc _CET_ENDBR pushq %rbp @@ -257,11 +252,6 @@ _CET_ENDBR movq %r8,0+0+32(%rbp) movq %rbx,8+0+32(%rbp) - movl OPENSSL_ia32cap_P+8(%rip),%eax - andl $288,%eax - xorl $288,%eax - jz chacha20_poly1305_open_avx2 - cmpq $128,%rbx jbe .Lopen_sse_128 @@ -2094,7 +2084,7 @@ _CET_ENDBR movdqa %xmm10,%xmm6 movdqa %xmm14,%xmm10 jmp .Lopen_sse_128_xor_hash -.size chacha20_poly1305_open, .-chacha20_poly1305_open +.size chacha20_poly1305_open_nohw, .-chacha20_poly1305_open_nohw .cfi_endproc @@ -2103,11 +2093,11 @@ _CET_ENDBR -.globl chacha20_poly1305_seal -.hidden chacha20_poly1305_seal -.type chacha20_poly1305_seal,@function +.globl chacha20_poly1305_seal_nohw +.hidden chacha20_poly1305_seal_nohw +.type chacha20_poly1305_seal_nohw,@function .align 64 -chacha20_poly1305_seal: +chacha20_poly1305_seal_nohw: .cfi_startproc _CET_ENDBR pushq %rbp @@ -2144,11 +2134,6 @@ _CET_ENDBR movq %rbx,8+0+32(%rbp) movq %rdx,%rbx - movl OPENSSL_ia32cap_P+8(%rip),%eax - andl $288,%eax - xorl $288,%eax - jz chacha20_poly1305_seal_avx2 - cmpq $128,%rbx jbe .Lseal_sse_128 @@ -4100,32 +4085,50 @@ process_extra_in_trailer: movq %r8,%r8 call poly_hash_ad_internal jmp .Lseal_sse_128_tail_xor -.size chacha20_poly1305_seal, .-chacha20_poly1305_seal +.size chacha20_poly1305_seal_nohw, .-chacha20_poly1305_seal_nohw .cfi_endproc +.globl chacha20_poly1305_open_avx2 +.hidden chacha20_poly1305_open_avx2 .type chacha20_poly1305_open_avx2,@function .align 64 chacha20_poly1305_open_avx2: .cfi_startproc - - +_CET_ENDBR + pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 + pushq %rbx .cfi_adjust_cfa_offset 8 .cfi_offset %rbx,-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 %r9 .cfi_adjust_cfa_offset 8 .cfi_offset %r9,-64 + subq $288 + 0 + 32,%rsp .cfi_adjust_cfa_offset 288 + 32 + leaq 32(%rsp),%rbp + andq $-32,%rbp + + movq %rdx,%rbx + movq %r8,0+0+32(%rbp) + movq %rbx,8+0+32(%rbp) + vzeroupper vmovdqa .Lchacha20_consts(%rip),%ymm0 vbroadcasti128 0(%r9),%ymm4 @@ -6259,27 +6262,46 @@ chacha20_poly1305_open_avx2: .cfi_endproc +.globl chacha20_poly1305_seal_avx2 +.hidden chacha20_poly1305_seal_avx2 .type chacha20_poly1305_seal_avx2,@function .align 64 chacha20_poly1305_seal_avx2: .cfi_startproc - - +_CET_ENDBR + pushq %rbp .cfi_adjust_cfa_offset 8 .cfi_offset %rbp,-16 + pushq %rbx .cfi_adjust_cfa_offset 8 .cfi_offset %rbx,-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 %r9 .cfi_adjust_cfa_offset 8 .cfi_offset %r9,-64 + subq $288 + 0 + 32,%rsp .cfi_adjust_cfa_offset 288 + 32 + leaq 32(%rsp),%rbp + andq $-32,%rbp + + movq 56(%r9),%rbx + addq %rdx,%rbx + movq %r8,0+0+32(%rbp) + movq %rbx,8+0+32(%rbp) + movq %rdx,%rbx vzeroupper vmovdqa .Lchacha20_consts(%rip),%ymm0 diff --git a/gen/crypto/chacha20_poly1305_x86_64-win.asm b/gen/crypto/chacha20_poly1305_x86_64-win.asm index 095689cf33..22dbdfe994 100644 --- a/gen/crypto/chacha20_poly1305_x86_64-win.asm +++ b/gen/crypto/chacha20_poly1305_x86_64-win.asm @@ -11,14 +11,9 @@ default rel %ifdef BORINGSSL_PREFIX %include "boringssl_prefix_symbols_nasm.inc" %endif -section .text code align=64 - -EXTERN OPENSSL_ia32cap_P - -chacha20_poly1305_constants: - section .rdata rdata align=8 ALIGN 64 +chacha20_poly1305_constants: $L$chacha20_consts: DB 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' DB 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k' @@ -55,7 +50,7 @@ $L$and_masks: DB 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00 DB 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00 DB 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff -section .text +section .text code align=64 @@ -225,14 +220,14 @@ $L$hash_ad_done: -global chacha20_poly1305_open +global chacha20_poly1305_open_nohw ALIGN 64 -chacha20_poly1305_open: +chacha20_poly1305_open_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_chacha20_poly1305_open: +$L$SEH_begin_chacha20_poly1305_open_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -280,11 +275,6 @@ _CET_ENDBR mov QWORD[((0+160+32))+rbp],r8 mov QWORD[((8+160+32))+rbp],rbx - mov eax,DWORD[((OPENSSL_ia32cap_P+8))] - and eax,288 - xor eax,288 - jz NEAR chacha20_poly1305_open_avx2 - cmp rbx,128 jbe NEAR $L$open_sse_128 @@ -2123,7 +2113,7 @@ $L$open_sse_128_xor_hash: movdqa xmm6,xmm10 movdqa xmm10,xmm14 jmp NEAR $L$open_sse_128_xor_hash -$L$SEH_end_chacha20_poly1305_open: +$L$SEH_end_chacha20_poly1305_open_nohw: @@ -2132,14 +2122,14 @@ $L$SEH_end_chacha20_poly1305_open: -global chacha20_poly1305_seal +global chacha20_poly1305_seal_nohw ALIGN 64 -chacha20_poly1305_seal: +chacha20_poly1305_seal_nohw: mov QWORD[8+rsp],rdi ;WIN64 prologue mov QWORD[16+rsp],rsi mov rax,rsp -$L$SEH_begin_chacha20_poly1305_seal: +$L$SEH_begin_chacha20_poly1305_seal_nohw: mov rdi,rcx mov rsi,rdx mov rdx,r8 @@ -2188,11 +2178,6 @@ _CET_ENDBR mov QWORD[((8+160+32))+rbp],rbx mov rbx,rdx - mov eax,DWORD[((OPENSSL_ia32cap_P+8))] - and eax,288 - xor eax,288 - jz NEAR chacha20_poly1305_seal_avx2 - cmp rbx,128 jbe NEAR $L$seal_sse_128 @@ -4150,24 +4135,64 @@ DB 102,69,15,58,15,246,4 mov r8,r8 call poly_hash_ad_internal jmp NEAR $L$seal_sse_128_tail_xor -$L$SEH_end_chacha20_poly1305_seal: +$L$SEH_end_chacha20_poly1305_seal_nohw: +global chacha20_poly1305_open_avx2 ALIGN 64 chacha20_poly1305_open_avx2: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_chacha20_poly1305_open_avx2: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + + + +_CET_ENDBR + push rbp + push rbx + push r12 + push r13 + push r14 + push r15 + push r9 + + sub rsp,288 + 160 + 32 + lea rbp,[32+rsp] + and rbp,-32 + + movaps XMMWORD[(0+0)+rbp],xmm6 + movaps XMMWORD[(16+0)+rbp],xmm7 + movaps XMMWORD[(32+0)+rbp],xmm8 + movaps XMMWORD[(48+0)+rbp],xmm9 + movaps XMMWORD[(64+0)+rbp],xmm10 + movaps XMMWORD[(80+0)+rbp],xmm11 + movaps XMMWORD[(96+0)+rbp],xmm12 + movaps XMMWORD[(112+0)+rbp],xmm13 + movaps XMMWORD[(128+0)+rbp],xmm14 + movaps XMMWORD[(144+0)+rbp],xmm15 + mov rbx,rdx + mov QWORD[((0+160+32))+rbp],r8 + mov QWORD[((8+160+32))+rbp],rbx vzeroupper vmovdqa ymm0,YMMWORD[$L$chacha20_consts] @@ -6298,24 +6323,65 @@ $L$open_avx2_320_rounds: vperm2i128 ymm2,ymm6,ymm2,0x13 vperm2i128 ymm6,ymm14,ymm10,0x13 jmp NEAR $L$open_avx2_short +$L$SEH_end_chacha20_poly1305_open_avx2: - +global chacha20_poly1305_seal_avx2 ALIGN 64 chacha20_poly1305_seal_avx2: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_chacha20_poly1305_seal_avx2: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + mov rcx,r9 + mov r8,QWORD[40+rsp] + mov r9,QWORD[48+rsp] + +_CET_ENDBR + push rbp + + push rbx + + push r12 + + push r13 + push r14 + push r15 + push r9 + sub rsp,288 + 160 + 32 + lea rbp,[32+rsp] + and rbp,-32 + movaps XMMWORD[(0+0)+rbp],xmm6 + movaps XMMWORD[(16+0)+rbp],xmm7 + movaps XMMWORD[(32+0)+rbp],xmm8 + movaps XMMWORD[(48+0)+rbp],xmm9 + movaps XMMWORD[(64+0)+rbp],xmm10 + movaps XMMWORD[(80+0)+rbp],xmm11 + movaps XMMWORD[(96+0)+rbp],xmm12 + movaps XMMWORD[(112+0)+rbp],xmm13 + movaps XMMWORD[(128+0)+rbp],xmm14 + movaps XMMWORD[(144+0)+rbp],xmm15 + mov rbx,QWORD[56+r9] + add rbx,rdx + mov QWORD[((0+160+32))+rbp],r8 + mov QWORD[((8+160+32))+rbp],rbx + mov rbx,rdx vzeroupper vmovdqa ymm0,YMMWORD[$L$chacha20_consts] @@ -8950,7 +9016,7 @@ $L$seal_avx2_exit: vzeroupper jmp NEAR $L$seal_sse_tail_16 - +$L$SEH_end_chacha20_poly1305_seal_avx2: %else ; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 ret From a89348cd052ff12b1adea88f6e37f74d1f7963fa Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sun, 1 Sep 2024 02:30:15 -0400 Subject: [PATCH 68/81] Fix some missing includes in BCM These were getting by because bcm.c #includes everything together. Change-Id: I1eb4aad891f0051c4f869202c6554f5864cd3a76 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70810 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/random.c.inc | 2 +- crypto/fipsmodule/self_check/self_check.c.inc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/crypto/fipsmodule/bn/random.c.inc b/crypto/fipsmodule/bn/random.c.inc index b3012de3ad..3b5e3ca3c4 100644 --- a/crypto/fipsmodule/bn/random.c.inc +++ b/crypto/fipsmodule/bn/random.c.inc @@ -114,8 +114,8 @@ #include -#include "../../bcm_support.h" #include "../../internal.h" +#include "../bcm_interface.h" #include "../service_indicator/internal.h" #include "internal.h" diff --git a/crypto/fipsmodule/self_check/self_check.c.inc b/crypto/fipsmodule/self_check/self_check.c.inc index 7afcb75bd7..509634cdc5 100644 --- a/crypto/fipsmodule/self_check/self_check.c.inc +++ b/crypto/fipsmodule/self_check/self_check.c.inc @@ -33,6 +33,7 @@ #include #include "../../internal.h" +#include "../delocate.h" #include "../dh/internal.h" #include "../ec/internal.h" #include "../ecdsa/internal.h" From 757f3604a48e64689ef731ef5e13c46ab684383b Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sun, 1 Sep 2024 02:36:13 -0400 Subject: [PATCH 69/81] Consistently use accessors in service_indicator.c.inc This'll eventually get reworked, but for now let's fix an IWYU issue by just not depending on the structs. Change-Id: Iacfe94dd5664975154006bd467fb8d29996a5d10 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70811 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/service_indicator/service_indicator.c.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/fipsmodule/service_indicator/service_indicator.c.inc b/crypto/fipsmodule/service_indicator/service_indicator.c.inc index cad355d215..dcbf819b89 100644 --- a/crypto/fipsmodule/service_indicator/service_indicator.c.inc +++ b/crypto/fipsmodule/service_indicator/service_indicator.c.inc @@ -248,7 +248,7 @@ static void evp_md_ctx_verify_service_indicator(const EVP_MD_CTX *ctx, } void EC_KEY_keygen_verify_service_indicator(const EC_KEY *eckey) { - if (is_ec_fips_approved(EC_GROUP_get_curve_name(eckey->group))) { + if (is_ec_fips_approved(EC_GROUP_get_curve_name(EC_KEY_get0_group(eckey)))) { FIPS_service_indicator_update_state(); } } @@ -287,7 +287,7 @@ void EVP_DigestSign_verify_service_indicator(const EVP_MD_CTX *ctx) { } void HMAC_verify_service_indicator(const EVP_MD *evp_md) { - switch (evp_md->type) { + switch (EVP_MD_type(evp_md)) { case NID_sha1: case NID_sha224: case NID_sha256: From 2c807d4815100e3c02c61c07c478f9ed553537a0 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sun, 1 Sep 2024 02:40:32 -0400 Subject: [PATCH 70/81] Simplify some unnecessary sign bit juggling Some functions try to accomodate negative moduli by figuring out whether to BN_add or BN_sub. Under the hood, those functions will do further sign bits and comparisons to decide whether to BN_uadd or BN_usub. We can just call the right one from the start. Change-Id: I2e64b05522c93ee831f6d6e9f7d1380411fbb71b Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70813 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- crypto/fipsmodule/bn/div.c.inc | 5 +++-- crypto/fipsmodule/bn/sqrt.c.inc | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/crypto/fipsmodule/bn/div.c.inc b/crypto/fipsmodule/bn/div.c.inc index b321ff59da..06c4db5987 100644 --- a/crypto/fipsmodule/bn/div.c.inc +++ b/crypto/fipsmodule/bn/div.c.inc @@ -372,8 +372,9 @@ int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx) { return 1; } - // now -|d| < r < 0, so we have to set r := r + |d|. - return (d->neg ? BN_sub : BN_add)(r, r, d); + // now -d < r < 0, so we have to set r := r + d. Ignoring the sign bits, this + // is r = d - r. + return BN_usub(r, d, r); } BN_ULONG bn_reduce_once(BN_ULONG *r, const BN_ULONG *a, BN_ULONG carry, diff --git a/crypto/fipsmodule/bn/sqrt.c.inc b/crypto/fipsmodule/bn/sqrt.c.inc index f97675308a..4cc8d6e8ce 100644 --- a/crypto/fipsmodule/bn/sqrt.c.inc +++ b/crypto/fipsmodule/bn/sqrt.c.inc @@ -236,7 +236,7 @@ BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) { goto end; } if (BN_ucmp(y, p) >= 0) { - if (!(p->neg ? BN_add : BN_sub)(y, y, p)) { + if (BN_usub(y, y, p)) { goto end; } } From 6763c954da6b9c7ff4e4c1a335c3833c55a0ec05 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Sun, 1 Sep 2024 08:29:10 -0400 Subject: [PATCH 71/81] Clarify BN_uadd and BN_usub's documentation The inputs may be negative, it just ignores the sign bits. Change-Id: Icaab47c159e45ab2e6fe2d770188767976aff521 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70812 Reviewed-by: Bob Beck Commit-Queue: David Benjamin --- include/openssl/bn.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/openssl/bn.h b/include/openssl/bn.h index a5bfcd7ea4..2b0963d091 100644 --- a/include/openssl/bn.h +++ b/include/openssl/bn.h @@ -387,9 +387,9 @@ OPENSSL_EXPORT void BN_CTX_end(BN_CTX *ctx); // or |b|. It returns one on success and zero on allocation failure. OPENSSL_EXPORT int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -// BN_uadd sets |r| = |a| + |b|, where |a| and |b| are non-negative and |r| may -// be the same pointer as either |a| or |b|. It returns one on success and zero -// on allocation failure. +// BN_uadd sets |r| = |a| + |b|, considering only the absolute values of |a| and +// |b|. |r| may be the same pointer as either |a| or |b|. It returns one on +// success and zero on allocation failure. OPENSSL_EXPORT int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); // BN_add_word adds |w| to |a|. It returns one on success and zero otherwise. @@ -399,9 +399,9 @@ OPENSSL_EXPORT int BN_add_word(BIGNUM *a, BN_ULONG w); // or |b|. It returns one on success and zero on allocation failure. OPENSSL_EXPORT int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -// BN_usub sets |r| = |a| - |b|, where |a| and |b| are non-negative integers, -// |b| < |a| and |r| may be the same pointer as either |a| or |b|. It returns -// one on success and zero on allocation failure. +// BN_usub sets |r| = |a| - |b|, considering only the absolute values of |a| and +// |b|. The result must be non-negative, i.e. |b| <= |a|. |r| may be the same +// pointer as either |a| or |b|. It returns one on success and zero on error. OPENSSL_EXPORT int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); // BN_sub_word subtracts |w| from |a|. It returns one on success and zero on From 2fc7912e26589360d5db453a2d390e7806ba0d3c Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Wed, 4 Sep 2024 11:45:19 -0400 Subject: [PATCH 72/81] Remove now unnecessary OPENSSL_init_cpuid call I should have removed this when the OPENSSL_ia32cap_P dispatch was removed from the ChaCha20-Poly1305 assembly. Bug: 42290548 Change-Id: Ic2ca0f6a897c27974833155935e42189fcbc1494 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70887 Commit-Queue: Bob Beck Commit-Queue: David Benjamin Auto-Submit: David Benjamin Reviewed-by: Bob Beck --- crypto/cipher_extra/e_chacha20poly1305.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/crypto/cipher_extra/e_chacha20poly1305.c b/crypto/cipher_extra/e_chacha20poly1305.c index d2004652ca..6510ff48ad 100644 --- a/crypto/cipher_extra/e_chacha20poly1305.c +++ b/crypto/cipher_extra/e_chacha20poly1305.c @@ -41,13 +41,6 @@ static_assert(alignof(union evp_aead_ctx_st_state) >= static int aead_chacha20_poly1305_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len, size_t tag_len) { - // TODO(crbug.com/42290548): The x86_64 assembly depends on initializing - // |OPENSSL_ia32cap_P|. Move the dispatch to C. While we're here, it may be - // worth adjusting the assembly calling convention. The assembly functions do - // too much work right now. For now, explicitly initialize |OPENSSL_ia32cap_P| - // first. - OPENSSL_init_cpuid(); - struct aead_chacha20_poly1305_ctx *c20_ctx = (struct aead_chacha20_poly1305_ctx *)&ctx->state; From 9224e6d138f789b2db9f23b40dd016fffcdfd59e Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 3 Sep 2024 19:18:50 -0400 Subject: [PATCH 73/81] Fix all_tests.go test counts The numerator is per shard, but the denominator wasn't. Change-Id: I1afd784038c51b8db51192b9a2b391073675e390 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70867 Reviewed-by: Bob Beck Commit-Queue: Bob Beck Auto-Submit: David Benjamin --- util/all_tests.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/util/all_tests.go b/util/all_tests.go index 3b31ded406..6587b54f91 100644 --- a/util/all_tests.go +++ b/util/all_tests.go @@ -395,10 +395,12 @@ func main() { testOutput := testresult.NewResults() var failed, skipped []test + var total int for testResult := range results { test := testResult.Test args := test.Cmd + total++ if testResult.Error == errTestSkipped { fmt.Printf("%s\n", test.longName()) fmt.Printf("%s was skipped\n", args[0]) @@ -427,14 +429,14 @@ func main() { } if len(skipped) > 0 { - fmt.Printf("\n%d of %d tests were skipped:\n", len(skipped), len(testCases)) + fmt.Printf("\n%d of %d tests were skipped:\n", len(skipped), total) for _, test := range skipped { fmt.Printf("\t%s\n", test.shortName()) } } if len(failed) > 0 { - fmt.Printf("\n%d of %d tests failed:\n", len(failed), len(testCases)) + fmt.Printf("\n%d of %d tests failed:\n", len(failed), total) for _, test := range failed { fmt.Printf("\t%s\n", test.shortName()) } From 97322b29e8ca116263e278f6025cee7818ae63e2 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Wed, 4 Sep 2024 14:46:54 -0700 Subject: [PATCH 74/81] Rename SPX files to have `spx_` prefix. We can't have two source files with the same name, it seems, so since crypto/spx/ will be going away, move its files out of the way so that SLH-DSA can use those names. Change-Id: Iedee8453cb77291eeff5ec33aa9836ea5d00d9a2 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70908 Auto-Submit: Adam Langley Reviewed-by: David Benjamin Commit-Queue: David Benjamin --- build.json | 22 +++++++++++----------- crypto/spx/spx.c | 10 +++++----- crypto/spx/{address.c => spx_address.c} | 2 +- crypto/spx/{address.h => spx_address.h} | 0 crypto/spx/{fors.c => spx_fors.c} | 8 ++++---- crypto/spx/{fors.h => spx_fors.h} | 2 +- crypto/spx/{merkle.c => spx_merkle.c} | 10 +++++----- crypto/spx/{merkle.h => spx_merkle.h} | 2 +- crypto/spx/{params.h => spx_params.h} | 0 crypto/spx/{thash.c => spx_thash.c} | 4 ++-- crypto/spx/{thash.h => spx_thash.h} | 2 +- crypto/spx/{wots.c => spx_wots.c} | 8 ++++---- crypto/spx/{wots.h => spx_wots.h} | 2 +- gen/sources.bzl | 22 +++++++++++----------- gen/sources.cmake | 22 +++++++++++----------- gen/sources.gni | 22 +++++++++++----------- gen/sources.json | 22 +++++++++++----------- 17 files changed, 80 insertions(+), 80 deletions(-) rename crypto/spx/{address.c => spx_address.c} (99%) rename crypto/spx/{address.h => spx_address.h} (100%) rename crypto/spx/{fors.c => spx_fors.c} (98%) rename crypto/spx/{fors.h => spx_fors.h} (98%) rename crypto/spx/{merkle.c => spx_merkle.c} (97%) rename crypto/spx/{merkle.h => spx_merkle.h} (98%) rename crypto/spx/{params.h => spx_params.h} (100%) rename crypto/spx/{thash.c => spx_thash.c} (98%) rename crypto/spx/{thash.h => spx_thash.h} (99%) rename crypto/spx/{wots.c => spx_wots.c} (97%) rename crypto/spx/{wots.h => spx_wots.h} (98%) diff --git a/build.json b/build.json index 9ea699e70a..e614d30ad8 100644 --- a/build.json +++ b/build.json @@ -305,13 +305,13 @@ "crypto/rsa_extra/rsa_crypt.c", "crypto/rsa_extra/rsa_print.c", "crypto/siphash/siphash.c", - "crypto/spx/address.c", - "crypto/spx/fors.c", - "crypto/spx/merkle.c", + "crypto/spx/spx_address.c", + "crypto/spx/spx_fors.c", + "crypto/spx/spx_merkle.c", "crypto/spx/spx.c", "crypto/spx/spx_util.c", - "crypto/spx/thash.c", - "crypto/spx/wots.c", + "crypto/spx/spx_thash.c", + "crypto/spx/spx_wots.c", "crypto/stack/stack.c", "crypto/thread.c", "crypto/thread_none.c", @@ -534,13 +534,13 @@ "crypto/rand_extra/getrandom_fillin.h", "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", - "crypto/spx/address.h", - "crypto/spx/fors.h", - "crypto/spx/merkle.h", - "crypto/spx/params.h", + "crypto/spx/spx_address.h", + "crypto/spx/spx_fors.h", + "crypto/spx/spx_merkle.h", + "crypto/spx/spx_params.h", + "crypto/spx/spx_thash.h", "crypto/spx/spx_util.h", - "crypto/spx/thash.h", - "crypto/spx/wots.h", + "crypto/spx/spx_wots.h", "crypto/trust_token/internal.h", "crypto/x509/ext_dat.h", "crypto/x509/internal.h", diff --git a/crypto/spx/spx.c b/crypto/spx/spx.c index 372001a94c..7ca1c2f6e3 100644 --- a/crypto/spx/spx.c +++ b/crypto/spx/spx.c @@ -20,12 +20,12 @@ #include #include -#include "./address.h" -#include "./fors.h" -#include "./merkle.h" -#include "./params.h" +#include "./spx_address.h" +#include "./spx_fors.h" +#include "./spx_merkle.h" +#include "./spx_params.h" #include "./spx_util.h" -#include "./thash.h" +#include "./spx_thash.h" void SPX_generate_key(uint8_t out_public_key[SPX_PUBLIC_KEY_BYTES], uint8_t out_secret_key[SPX_SECRET_KEY_BYTES]) { diff --git a/crypto/spx/address.c b/crypto/spx/spx_address.c similarity index 99% rename from crypto/spx/address.c rename to crypto/spx/spx_address.c index 13ca2f0cef..fb22ae5c02 100644 --- a/crypto/spx/address.c +++ b/crypto/spx/spx_address.c @@ -17,7 +17,7 @@ #include #include "../internal.h" -#include "./address.h" +#include "./spx_address.h" #include "./spx_util.h" diff --git a/crypto/spx/address.h b/crypto/spx/spx_address.h similarity index 100% rename from crypto/spx/address.h rename to crypto/spx/spx_address.h diff --git a/crypto/spx/fors.c b/crypto/spx/spx_fors.c similarity index 98% rename from crypto/spx/fors.c rename to crypto/spx/spx_fors.c index 0e12bb6035..8fa62dbdce 100644 --- a/crypto/spx/fors.c +++ b/crypto/spx/spx_fors.c @@ -16,11 +16,11 @@ #include -#include "./address.h" -#include "./fors.h" -#include "./params.h" +#include "./spx_address.h" +#include "./spx_fors.h" +#include "./spx_params.h" #include "./spx_util.h" -#include "./thash.h" +#include "./spx_thash.h" void spx_fors_sk_gen(uint8_t *fors_sk, uint32_t idx, const uint8_t sk_seed[SPX_N], const uint8_t pk_seed[SPX_N], diff --git a/crypto/spx/fors.h b/crypto/spx/spx_fors.h similarity index 98% rename from crypto/spx/fors.h rename to crypto/spx/spx_fors.h index b673d67855..f4bc7c2719 100644 --- a/crypto/spx/fors.h +++ b/crypto/spx/spx_fors.h @@ -17,7 +17,7 @@ #include -#include "./params.h" +#include "./spx_params.h" #if defined(__cplusplus) extern "C" { diff --git a/crypto/spx/merkle.c b/crypto/spx/spx_merkle.c similarity index 97% rename from crypto/spx/merkle.c rename to crypto/spx/spx_merkle.c index 58429f736e..3274e22ecb 100644 --- a/crypto/spx/merkle.c +++ b/crypto/spx/spx_merkle.c @@ -16,11 +16,11 @@ #include -#include "./address.h" -#include "./merkle.h" -#include "./params.h" -#include "./thash.h" -#include "./wots.h" +#include "./spx_address.h" +#include "./spx_merkle.h" +#include "./spx_params.h" +#include "./spx_thash.h" +#include "./spx_wots.h" void spx_treehash(uint8_t out_pk[SPX_N], const uint8_t sk_seed[SPX_N], uint32_t i /*target node index*/, diff --git a/crypto/spx/merkle.h b/crypto/spx/spx_merkle.h similarity index 98% rename from crypto/spx/merkle.h rename to crypto/spx/spx_merkle.h index 93f9e51cc7..1f0bfe9e7d 100644 --- a/crypto/spx/merkle.h +++ b/crypto/spx/spx_merkle.h @@ -19,7 +19,7 @@ #include -#include "./params.h" +#include "./spx_params.h" #if defined(__cplusplus) extern "C" { diff --git a/crypto/spx/params.h b/crypto/spx/spx_params.h similarity index 100% rename from crypto/spx/params.h rename to crypto/spx/spx_params.h diff --git a/crypto/spx/thash.c b/crypto/spx/spx_thash.c similarity index 98% rename from crypto/spx/thash.c rename to crypto/spx/spx_thash.c index 8be1ba4eb0..3b34dd4e46 100644 --- a/crypto/spx/thash.c +++ b/crypto/spx/spx_thash.c @@ -20,9 +20,9 @@ #include -#include "./params.h" +#include "./spx_params.h" #include "./spx_util.h" -#include "./thash.h" +#include "./spx_thash.h" static void spx_thash(uint8_t *output, const uint8_t *input, size_t input_blocks, const uint8_t pk_seed[SPX_N], diff --git a/crypto/spx/thash.h b/crypto/spx/spx_thash.h similarity index 99% rename from crypto/spx/thash.h rename to crypto/spx/spx_thash.h index 2fd284201f..368a0c9325 100644 --- a/crypto/spx/thash.h +++ b/crypto/spx/spx_thash.h @@ -17,7 +17,7 @@ #include -#include "./params.h" +#include "./spx_params.h" #if defined(__cplusplus) extern "C" { diff --git a/crypto/spx/wots.c b/crypto/spx/spx_wots.c similarity index 97% rename from crypto/spx/wots.c rename to crypto/spx/spx_wots.c index c91dee21de..652ffca30b 100644 --- a/crypto/spx/wots.c +++ b/crypto/spx/spx_wots.c @@ -18,11 +18,11 @@ #include #include -#include "./address.h" -#include "./params.h" +#include "./spx_address.h" +#include "./spx_params.h" #include "./spx_util.h" -#include "./thash.h" -#include "./wots.h" +#include "./spx_thash.h" +#include "./spx_wots.h" // Chaining function used in WOTS+. static void chain(uint8_t *output, const uint8_t *input, uint32_t start, diff --git a/crypto/spx/wots.h b/crypto/spx/spx_wots.h similarity index 98% rename from crypto/spx/wots.h rename to crypto/spx/spx_wots.h index b3dbf38855..1ef64f4601 100644 --- a/crypto/spx/wots.h +++ b/crypto/spx/spx_wots.h @@ -17,7 +17,7 @@ #include -#include "./params.h" +#include "./spx_params.h" #if defined(__cplusplus) extern "C" { diff --git a/gen/sources.bzl b/gen/sources.bzl index 8ea8f744d4..b176c72808 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -404,13 +404,13 @@ crypto_sources = [ "crypto/rsa_extra/rsa_crypt.c", "crypto/rsa_extra/rsa_print.c", "crypto/siphash/siphash.c", - "crypto/spx/address.c", - "crypto/spx/fors.c", - "crypto/spx/merkle.c", "crypto/spx/spx.c", + "crypto/spx/spx_address.c", + "crypto/spx/spx_fors.c", + "crypto/spx/spx_merkle.c", + "crypto/spx/spx_thash.c", "crypto/spx/spx_util.c", - "crypto/spx/thash.c", - "crypto/spx/wots.c", + "crypto/spx/spx_wots.c", "crypto/stack/stack.c", "crypto/thread.c", "crypto/thread_none.c", @@ -636,13 +636,13 @@ crypto_internal_headers = [ "crypto/rand_extra/getrandom_fillin.h", "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", - "crypto/spx/address.h", - "crypto/spx/fors.h", - "crypto/spx/merkle.h", - "crypto/spx/params.h", + "crypto/spx/spx_address.h", + "crypto/spx/spx_fors.h", + "crypto/spx/spx_merkle.h", + "crypto/spx/spx_params.h", + "crypto/spx/spx_thash.h", "crypto/spx/spx_util.h", - "crypto/spx/thash.h", - "crypto/spx/wots.h", + "crypto/spx/spx_wots.h", "crypto/trust_token/internal.h", "crypto/x509/ext_dat.h", "crypto/x509/internal.h", diff --git a/gen/sources.cmake b/gen/sources.cmake index e3245c1546..8db4e3a960 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -418,13 +418,13 @@ set( crypto/rsa_extra/rsa_crypt.c crypto/rsa_extra/rsa_print.c crypto/siphash/siphash.c - crypto/spx/address.c - crypto/spx/fors.c - crypto/spx/merkle.c crypto/spx/spx.c + crypto/spx/spx_address.c + crypto/spx/spx_fors.c + crypto/spx/spx_merkle.c + crypto/spx/spx_thash.c crypto/spx/spx_util.c - crypto/spx/thash.c - crypto/spx/wots.c + crypto/spx/spx_wots.c crypto/stack/stack.c crypto/thread.c crypto/thread_none.c @@ -654,13 +654,13 @@ set( crypto/rand_extra/getrandom_fillin.h crypto/rand_extra/sysrand_internal.h crypto/rsa_extra/internal.h - crypto/spx/address.h - crypto/spx/fors.h - crypto/spx/merkle.h - crypto/spx/params.h + crypto/spx/spx_address.h + crypto/spx/spx_fors.h + crypto/spx/spx_merkle.h + crypto/spx/spx_params.h + crypto/spx/spx_thash.h crypto/spx/spx_util.h - crypto/spx/thash.h - crypto/spx/wots.h + crypto/spx/spx_wots.h crypto/trust_token/internal.h crypto/x509/ext_dat.h crypto/x509/internal.h diff --git a/gen/sources.gni b/gen/sources.gni index 292b2f1c91..c498e405fa 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -404,13 +404,13 @@ crypto_sources = [ "crypto/rsa_extra/rsa_crypt.c", "crypto/rsa_extra/rsa_print.c", "crypto/siphash/siphash.c", - "crypto/spx/address.c", - "crypto/spx/fors.c", - "crypto/spx/merkle.c", "crypto/spx/spx.c", + "crypto/spx/spx_address.c", + "crypto/spx/spx_fors.c", + "crypto/spx/spx_merkle.c", + "crypto/spx/spx_thash.c", "crypto/spx/spx_util.c", - "crypto/spx/thash.c", - "crypto/spx/wots.c", + "crypto/spx/spx_wots.c", "crypto/stack/stack.c", "crypto/thread.c", "crypto/thread_none.c", @@ -636,13 +636,13 @@ crypto_internal_headers = [ "crypto/rand_extra/getrandom_fillin.h", "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", - "crypto/spx/address.h", - "crypto/spx/fors.h", - "crypto/spx/merkle.h", - "crypto/spx/params.h", + "crypto/spx/spx_address.h", + "crypto/spx/spx_fors.h", + "crypto/spx/spx_merkle.h", + "crypto/spx/spx_params.h", + "crypto/spx/spx_thash.h", "crypto/spx/spx_util.h", - "crypto/spx/thash.h", - "crypto/spx/wots.h", + "crypto/spx/spx_wots.h", "crypto/trust_token/internal.h", "crypto/x509/ext_dat.h", "crypto/x509/internal.h", diff --git a/gen/sources.json b/gen/sources.json index d6242bcd82..1e57157252 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -388,13 +388,13 @@ "crypto/rsa_extra/rsa_crypt.c", "crypto/rsa_extra/rsa_print.c", "crypto/siphash/siphash.c", - "crypto/spx/address.c", - "crypto/spx/fors.c", - "crypto/spx/merkle.c", "crypto/spx/spx.c", + "crypto/spx/spx_address.c", + "crypto/spx/spx_fors.c", + "crypto/spx/spx_merkle.c", + "crypto/spx/spx_thash.c", "crypto/spx/spx_util.c", - "crypto/spx/thash.c", - "crypto/spx/wots.c", + "crypto/spx/spx_wots.c", "crypto/stack/stack.c", "crypto/thread.c", "crypto/thread_none.c", @@ -618,13 +618,13 @@ "crypto/rand_extra/getrandom_fillin.h", "crypto/rand_extra/sysrand_internal.h", "crypto/rsa_extra/internal.h", - "crypto/spx/address.h", - "crypto/spx/fors.h", - "crypto/spx/merkle.h", - "crypto/spx/params.h", + "crypto/spx/spx_address.h", + "crypto/spx/spx_fors.h", + "crypto/spx/spx_merkle.h", + "crypto/spx/spx_params.h", + "crypto/spx/spx_thash.h", "crypto/spx/spx_util.h", - "crypto/spx/thash.h", - "crypto/spx/wots.h", + "crypto/spx/spx_wots.h", "crypto/trust_token/internal.h", "crypto/x509/ext_dat.h", "crypto/x509/internal.h", From 70a7387c129d95e0d2f42f888743dd9a2225f51b Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Wed, 28 Aug 2024 23:07:04 +0000 Subject: [PATCH 75/81] Extract md4 from bcm This isn't part of fips, so we move it to digest_extra Change-Id: Ia9aeb81c314bdb34c6c9bd567242c90821f372d0 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70707 Commit-Queue: Bob Beck Reviewed-by: David Benjamin --- build.json | 2 +- crypto/digest_extra/digest_extra.c | 27 +++++++++++++++++++ crypto/fipsmodule/bcm.c | 1 - crypto/fipsmodule/digest/digests.c.inc | 25 ----------------- .../service_indicator_test.cc | 2 ++ .../{fipsmodule/md4/md4.c.inc => md4/md4.c} | 11 ++------ gen/sources.bzl | 2 +- gen/sources.cmake | 2 +- gen/sources.gni | 2 +- gen/sources.json | 2 +- 10 files changed, 36 insertions(+), 40 deletions(-) rename crypto/{fipsmodule/md4/md4.c.inc => md4/md4.c} (98%) diff --git a/build.json b/build.json index e614d30ad8..51023ce073 100644 --- a/build.json +++ b/build.json @@ -68,7 +68,6 @@ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md4/md4.c.inc", "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", @@ -267,6 +266,7 @@ "crypto/keccak/keccak.c", "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", + "crypto/md4/md4.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", diff --git a/crypto/digest_extra/digest_extra.c b/crypto/digest_extra/digest_extra.c index f575035495..5b9e26db53 100644 --- a/crypto/digest_extra/digest_extra.c +++ b/crypto/digest_extra/digest_extra.c @@ -61,6 +61,7 @@ #include #include #include +#include #include #include "../asn1/internal.h" @@ -264,3 +265,29 @@ static const EVP_MD evp_md_blake2b256 = { }; const EVP_MD *EVP_blake2b256(void) { return &evp_md_blake2b256; } + + +static void md4_init(EVP_MD_CTX *ctx) { + BSSL_CHECK(MD4_Init(ctx->md_data)); +} + +static void md4_update(EVP_MD_CTX *ctx, const void *data, size_t count) { + BSSL_CHECK(MD4_Update(ctx->md_data, data, count)); +} + +static void md4_final(EVP_MD_CTX *ctx, uint8_t *out) { + BSSL_CHECK(MD4_Final(out, ctx->md_data)); +} + +static const EVP_MD evp_md_md4 = { + NID_md4, + MD4_DIGEST_LENGTH, + 0, + md4_init, + md4_update, + md4_final, + 64, + sizeof(MD4_CTX), +}; + +const EVP_MD *EVP_md4(void) { return &evp_md_md4; } diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index fd67825712..5921ab65ff 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -85,7 +85,6 @@ #include "ec/wnaf.c.inc" #include "hkdf/hkdf.c.inc" #include "hmac/hmac.c.inc" -#include "md4/md4.c.inc" #include "md5/md5.c.inc" #include "modes/cbc.c.inc" #include "modes/cfb.c.inc" diff --git a/crypto/fipsmodule/digest/digests.c.inc b/crypto/fipsmodule/digest/digests.c.inc index f006ebbc53..638724b316 100644 --- a/crypto/fipsmodule/digest/digests.c.inc +++ b/crypto/fipsmodule/digest/digests.c.inc @@ -59,7 +59,6 @@ #include #include -#include #include #include #include @@ -75,30 +74,6 @@ #endif -static void md4_init(EVP_MD_CTX *ctx) { - CHECK(MD4_Init(ctx->md_data)); -} - -static void md4_update(EVP_MD_CTX *ctx, const void *data, size_t count) { - CHECK(MD4_Update(ctx->md_data, data, count)); -} - -static void md4_final(EVP_MD_CTX *ctx, uint8_t *out) { - CHECK(MD4_Final(out, ctx->md_data)); -} - -DEFINE_METHOD_FUNCTION(EVP_MD, EVP_md4) { - out->type = NID_md4; - out->md_size = MD4_DIGEST_LENGTH; - out->flags = 0; - out->init = md4_init; - out->update = md4_update; - out->final = md4_final; - out->block_size = 64; - out->ctx_size = sizeof(MD4_CTX); -} - - static void md5_init(EVP_MD_CTX *ctx) { CHECK(MD5_Init(ctx->md_data)); } diff --git a/crypto/fipsmodule/service_indicator/service_indicator_test.cc b/crypto/fipsmodule/service_indicator/service_indicator_test.cc index 089bbd70fd..05943d5db3 100644 --- a/crypto/fipsmodule/service_indicator/service_indicator_test.cc +++ b/crypto/fipsmodule/service_indicator/service_indicator_test.cc @@ -1900,6 +1900,8 @@ TEST(ServiceIndicatorTest, SHA) { std::vector digest; + // MD4 is no longer of FIPS - this is retained for now to mimic previous + // behavior. digest.resize(MD4_DIGEST_LENGTH); MD4_CTX md4_ctx; ASSERT_TRUE(CALL_SERVICE_AND_CHECK_APPROVED(approved, MD4_Init(&md4_ctx))); diff --git a/crypto/fipsmodule/md4/md4.c.inc b/crypto/md4/md4.c similarity index 98% rename from crypto/fipsmodule/md4/md4.c.inc rename to crypto/md4/md4.c index 5b44653b52..91ba0f6ed5 100644 --- a/crypto/fipsmodule/md4/md4.c.inc +++ b/crypto/md4/md4.c @@ -59,8 +59,8 @@ #include #include -#include "../../internal.h" -#include "../digest/md32_common.h" +#include "../internal.h" +#include "../crypto/fipsmodule/digest/md32_common.h" uint8_t *MD4(const uint8_t *data, size_t len, uint8_t out[MD4_DIGEST_LENGTH]) { @@ -231,10 +231,3 @@ void md4_block_data_order(uint32_t *state, const uint8_t *data, size_t num) { D = state[3] += D; } } - -#undef F -#undef G -#undef H -#undef R0 -#undef R1 -#undef R2 diff --git a/gen/sources.bzl b/gen/sources.bzl index b176c72808..ecb7fb45b7 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -71,7 +71,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md4/md4.c.inc", "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", @@ -366,6 +365,7 @@ crypto_sources = [ "crypto/keccak/keccak.c", "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", + "crypto/md4/md4.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", diff --git a/gen/sources.cmake b/gen/sources.cmake index 8db4e3a960..c974c316a8 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -75,7 +75,6 @@ set( crypto/fipsmodule/ecdsa/ecdsa.c.inc crypto/fipsmodule/hkdf/hkdf.c.inc crypto/fipsmodule/hmac/hmac.c.inc - crypto/fipsmodule/md4/md4.c.inc crypto/fipsmodule/md5/md5.c.inc crypto/fipsmodule/modes/cbc.c.inc crypto/fipsmodule/modes/cfb.c.inc @@ -380,6 +379,7 @@ set( crypto/keccak/keccak.c crypto/kyber/kyber.c crypto/lhash/lhash.c + crypto/md4/md4.c crypto/mem.c crypto/mldsa/mldsa.c crypto/mlkem/mlkem.cc diff --git a/gen/sources.gni b/gen/sources.gni index c498e405fa..0eaa36f0f1 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -71,7 +71,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md4/md4.c.inc", "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", @@ -366,6 +365,7 @@ crypto_sources = [ "crypto/keccak/keccak.c", "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", + "crypto/md4/md4.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", diff --git a/gen/sources.json b/gen/sources.json index 1e57157252..f589fc2526 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -56,7 +56,6 @@ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md4/md4.c.inc", "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", @@ -350,6 +349,7 @@ "crypto/keccak/keccak.c", "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", + "crypto/md4/md4.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", From a8c536c20731d0ec8a3dfa0bf1a19740be786cfa Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 5 Sep 2024 18:49:37 -0400 Subject: [PATCH 76/81] Leave some more breadcrumbs in docs for error-handling libssl's error-handling is one of the most difficult things to get right with this API. Leave some more notes, in case the reader does not know what "error queue" means. Change-Id: I91464ccdc12bf9e05ac9ed61930bc733244a9b36 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70929 Commit-Queue: Bob Beck Auto-Submit: David Benjamin Commit-Queue: David Benjamin Reviewed-by: Bob Beck --- API-CONVENTIONS.md | 14 ++++++++++++-- include/openssl/ssl.h | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/API-CONVENTIONS.md b/API-CONVENTIONS.md index 5c891dd4e2..93506e92bb 100644 --- a/API-CONVENTIONS.md +++ b/API-CONVENTIONS.md @@ -40,7 +40,15 @@ for more details. As with `errno`, callers must test the function's return value, not the error queue to determine whether an operation failed. Some codepaths may not interact with the error queue, and the error queue may have state from a previous failed -operation. +operation. After checking for failure, the caller can then inspect the error +queue in the failure case for details. + +As a notable exception, some functions in the SSL/TLS library use a multi-step +process to indicate failure: First, the return value indicates whether the +operation failed. Then, `SSL_get_error` indicates whether the failure was due to +an error (`SSL_ERROR_SSL`) or some recoverable condition (e.g. +`SSL_ERROR_WANT_READ`). In the former case, the caller can use the error queue +for more information. When ignoring a failed operation, it is recommended to call `ERR_clear_error` to avoid the state interacting with future operations. Failing to do so should not @@ -50,7 +58,9 @@ operations being mixed in error logging. We hope to situation in the future. Where possible, avoid conditioning on specific reason codes and limit usage to -logging. The reason codes are very specific and may change over time. +logging. The reason codes are very fine-grained and tend to leak details of the +library's internal structure. Changes in the library often have a side effect of +changing the exact reason code returned. ## Memory allocation diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index a0797cd611..f76e0a1b5e 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -478,7 +478,7 @@ OPENSSL_EXPORT int SSL_get_error(const SSL *ssl, int ret_code); #define SSL_ERROR_NONE 0 // SSL_ERROR_SSL indicates the operation failed within the library. The caller -// may inspect the error queue for more information. +// may inspect the error queue (see |ERR_get_error|) for more information. #define SSL_ERROR_SSL 1 // SSL_ERROR_WANT_READ indicates the operation failed attempting to read from From ed95627d2f074b6a8636fc8eaaa595903dbfcc99 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 5 Sep 2024 16:28:06 -0400 Subject: [PATCH 77/81] Revamp test coverage for invalid key shares We weren't testing all kinds of load-bearing checks in the TLS stack around key shares. Fix this. - Rework runner's KEM abstraction so that all the operations can get at config. That saves a lot of manual plumbing. - Make the bad ECDH point something not on the curve. That's a bit more interesting of a test case. - Test X25519 low order point rejection. - Test truncating and extending the key share for all cases. - Run X25519 tests in X25519-based hybrids as well. Bug: 40910498 Change-Id: I93907dbb4bd4177252376c8efb859de6db3c4189 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70927 Commit-Queue: Bob Beck Auto-Submit: David Benjamin Reviewed-by: Bob Beck --- ssl/test/runner/common.go | 20 +- ssl/test/runner/fuzzer_mode.json | 1 + ssl/test/runner/handshake_client.go | 9 +- ssl/test/runner/handshake_server.go | 7 +- ssl/test/runner/key_agreement.go | 184 +++++++++++------ ssl/test/runner/runner.go | 295 +++++++++++++++------------- 6 files changed, 306 insertions(+), 210 deletions(-) diff --git a/ssl/test/runner/common.go b/ssl/test/runner/common.go index 2eedd6283a..a63b3c7c28 100644 --- a/ssl/test/runner/common.go +++ b/ssl/test/runner/common.go @@ -671,9 +671,15 @@ type ProtocolBugs struct { // than the negotiated one. SendCurve CurveID - // InvalidECDHPoint, if true, causes the ECC points in - // ServerKeyExchange or ClientKeyExchange messages to be invalid. - InvalidECDHPoint bool + // ECDHPointNotOnCurve, if true, causes the ECDH points to not be on the + // curve. + ECDHPointNotOnCurve bool + + // TruncateKeyShare, if true, causes key shares to be truncated by one byte. + TruncateKeyShare bool + + // PadKeyShare, if true, causes key shares to be truncated to one byte. + PadKeyShare bool // BadECDSAR controls ways in which the 'r' value of an ECDSA signature // can be invalid. @@ -1920,6 +1926,14 @@ type ProtocolBugs struct { // high-order bit. SetX25519HighBit bool + // LowOrderX25519Point, if true, causes X25519 key shares to be a low + // order point. + LowOrderX25519Point bool + + // MLKEMEncapKeyNotReduced, if true, causes the ML-KEM encapsulation key + // to not be fully reduced. + MLKEMEncapKeyNotReduced bool + // DuplicateCompressedCertAlgs, if true, causes two, equal, certificate // compression algorithm IDs to be sent. DuplicateCompressedCertAlgs bool diff --git a/ssl/test/runner/fuzzer_mode.json b/ssl/test/runner/fuzzer_mode.json index e7c8ad7fd5..6967ae7e34 100644 --- a/ssl/test/runner/fuzzer_mode.json +++ b/ssl/test/runner/fuzzer_mode.json @@ -15,6 +15,7 @@ "UnexpectedUnencryptedExtension-Client-TLS13": "Fuzzer mode will not read the peer's alert as a MAC error", "UnknownUnencryptedExtension-Client-TLS13": "Fuzzer mode will not read the peer's alert as a MAC error", "WrongMessageType-TLS13-ServerHello-*": "Fuzzer mode will not read the peer's alert as a MAC error", + "CurveTest-Invalid-*-Client-*-TLS13": "Fuzzer mode will not read the peer's alert as a MAC error", "BadECDSA-*": "Fuzzer mode always accepts a signature.", "*-InvalidSignature-*": "Fuzzer mode always accepts a signature.", diff --git a/ssl/test/runner/handshake_client.go b/ssl/test/runner/handshake_client.go index cfac427d3b..e54e284d7e 100644 --- a/ssl/test/runner/handshake_client.go +++ b/ssl/test/runner/handshake_client.go @@ -662,7 +662,7 @@ func (hs *clientHandshakeState) createClientHello(innerHello *clientHelloMsg, ec if !ok { continue } - publicKey, err := kem.generate(c.config.rand()) + publicKey, err := kem.generate(c.config) if err != nil { return nil, err } @@ -670,9 +670,6 @@ func (hs *clientHandshakeState) createClientHello(innerHello *clientHelloMsg, ec if c.config.Bugs.SendCurve != 0 { curveID = c.config.Bugs.SendCurve } - if c.config.Bugs.InvalidECDHPoint { - publicKey[0] ^= 0xff - } hello.keyShares = append(hello.keyShares, keyShareEntry{ group: curveID, @@ -1153,7 +1150,7 @@ func (hs *clientHandshakeState) doTLS13Handshake(msg any) error { c.curveID = hs.serverHello.keyShare.group var err error - ecdheSecret, err = kem.decap(hs.serverHello.keyShare.keyExchange) + ecdheSecret, err = kem.decap(c.config, hs.serverHello.keyShare.keyExchange) if err != nil { return err } @@ -1562,7 +1559,7 @@ func (hs *clientHandshakeState) applyHelloRetryRequest(helloRetryRequest *helloR if !ok { return errors.New("tls: Unable to get curve requested in HelloRetryRequest") } - publicKey, err := kem.generate(c.config.rand()) + publicKey, err := kem.generate(c.config) if err != nil { return err } diff --git a/ssl/test/runner/handshake_server.go b/ssl/test/runner/handshake_server.go index fa7eb9c86d..9265edd1b3 100644 --- a/ssl/test/runner/handshake_server.go +++ b/ssl/test/runner/handshake_server.go @@ -978,7 +978,7 @@ ResendHelloRetryRequest: // avoid crashing. kem2, _ := kemForCurveID(selectedCurve, config) var err error - peerKey, err = kem2.generate(config.rand()) + peerKey, err = kem2.generate(config) if err != nil { return err } @@ -986,7 +986,7 @@ ResendHelloRetryRequest: peerKey = selectedKeyShare.keyExchange } - ciphertext, ecdheSecret, err := kem.encap(config.rand(), peerKey) + ciphertext, ecdheSecret, err := kem.encap(config, peerKey) if err != nil { c.sendAlert(alertHandshakeFailure) return err @@ -999,9 +999,6 @@ ResendHelloRetryRequest: if c.config.Bugs.SendCurve != 0 { curveID = config.Bugs.SendCurve } - if c.config.Bugs.InvalidECDHPoint { - ciphertext[0] ^= 0xff - } hs.hello.keyShare = keyShareEntry{ group: curveID, diff --git a/ssl/test/runner/key_agreement.go b/ssl/test/runner/key_agreement.go index a4bbfa5961..acea236df6 100644 --- a/ssl/test/runner/key_agreement.go +++ b/ssl/test/runner/key_agreement.go @@ -239,23 +239,22 @@ type kemImplementation interface { ciphertextSize() int // generate generates a keypair using rand. It returns the encoded public key. - generate(rand io.Reader) (publicKey []byte, err error) + generate(config *Config) (publicKey []byte, err error) // encap generates a symmetric, shared secret, encapsulates it with |peerKey|. // It returns the encapsulated shared secret and the secret itself. - encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) + encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) // decap decapsulates |ciphertext| and returns the resulting shared secret. - decap(ciphertext []byte) (secret []byte, err error) + decap(config *Config, ciphertext []byte) (secret []byte, err error) } // ecdhKEM implements kemImplementation with an elliptic.Curve. // // TODO(davidben): Move this to Go's crypto/ecdh. type ecdhKEM struct { - curve elliptic.Curve - privateKey []byte - sendCompressed bool + curve elliptic.Curve + privateKey []byte } func (e *ecdhKEM) encapsulationKeySize() int { @@ -267,36 +266,43 @@ func (e *ecdhKEM) ciphertextSize() int { return e.encapsulationKeySize() } -func (e *ecdhKEM) generate(rand io.Reader) (publicKey []byte, err error) { +func (e *ecdhKEM) generate(config *Config) (publicKey []byte, err error) { var x, y *big.Int - e.privateKey, x, y, err = elliptic.GenerateKey(e.curve, rand) + e.privateKey, x, y, err = elliptic.GenerateKey(e.curve, config.rand()) if err != nil { return nil, err } ret := elliptic.Marshal(e.curve, x, y) - if e.sendCompressed { + if config.Bugs.SendCompressedCoordinates { l := (len(ret) - 1) / 2 tmp := make([]byte, 1+l) tmp[0] = byte(2 | y.Bit(0)) copy(tmp[1:], ret[1:1+l]) ret = tmp } + if config.Bugs.ECDHPointNotOnCurve { + // Flip a bit, so the point is no longer on the curve. This is + // guaranteed to be off the curve because we preserve x. That + // means the only other valid y is y' = p - y, but we've kept + // y's parity, so we cannot have accidentally reached y'. + ret[len(ret)-1] ^= 0x80 + } return ret, nil } -func (e *ecdhKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { - ciphertext, err = e.generate(rand) +func (e *ecdhKEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) { + ciphertext, err = e.generate(config) if err != nil { return nil, nil, err } - secret, err = e.decap(peerKey) + secret, err = e.decap(config, peerKey) if err != nil { return nil, nil, err } return } -func (e *ecdhKEM) decap(ciphertext []byte) (secret []byte, err error) { +func (e *ecdhKEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) { x, y := elliptic.Unmarshal(e.curve, ciphertext) if x == nil { return nil, errors.New("tls: invalid peer key") @@ -311,7 +317,6 @@ func (e *ecdhKEM) decap(ciphertext []byte) (secret []byte, err error) { // x25519KEM implements kemImplementation with X25519. type x25519KEM struct { privateKey [32]byte - setHighBit bool } func (e *x25519KEM) encapsulationKeySize() int { @@ -322,35 +327,46 @@ func (e *x25519KEM) ciphertextSize() int { return curve25519.PointSize } -func (e *x25519KEM) generate(rand io.Reader) (publicKey []byte, err error) { - _, err = io.ReadFull(rand, e.privateKey[:]) +func (e *x25519KEM) generate(config *Config) (publicKey []byte, err error) { + if config.Bugs.LowOrderX25519Point { + publicKey = []byte{0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a, 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd, 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00} + return + } + + _, err = io.ReadFull(config.rand(), e.privateKey[:]) if err != nil { return } var out [32]byte curve25519.ScalarBaseMult(&out, &e.privateKey) - if e.setHighBit { + if config.Bugs.SetX25519HighBit { out[31] |= 0x80 } return out[:], nil } -func (e *x25519KEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { - ciphertext, err = e.generate(rand) +func (e *x25519KEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) { + ciphertext, err = e.generate(config) if err != nil { return nil, nil, err } - secret, err = e.decap(peerKey) + secret, err = e.decap(config, peerKey) if err != nil { return nil, nil, err } return } -func (e *x25519KEM) decap(ciphertext []byte) (secret []byte, err error) { +func (e *x25519KEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) { if len(ciphertext) != 32 { return nil, errors.New("tls: invalid peer key") } + + if config.Bugs.LowOrderX25519Point { + secret = make([]byte, 32) + return + } + var out [32]byte curve25519.ScalarMult(&out, &e.privateKey, (*[32]byte)(ciphertext)) @@ -376,9 +392,9 @@ func (e *kyberKEM) ciphertextSize() int { return kyber.CiphertextSize } -func (e *kyberKEM) generate(rand io.Reader) (publicKey []byte, err error) { +func (e *kyberKEM) generate(config *Config) (publicKey []byte, err error) { var kyberEntropy [64]byte - if _, err := io.ReadFull(rand, kyberEntropy[:]); err != nil { + if _, err := io.ReadFull(config.rand(), kyberEntropy[:]); err != nil { return nil, err } var kyberPublic *[kyber.PublicKeySize]byte @@ -386,7 +402,7 @@ func (e *kyberKEM) generate(rand io.Reader) (publicKey []byte, err error) { return kyberPublic[:], nil } -func (e *kyberKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { +func (e *kyberKEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) { if len(peerKey) != kyber.PublicKeySize { return nil, nil, errors.New("tls: bad length Kyber offer") } @@ -397,14 +413,14 @@ func (e *kyberKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, sec } var kyberShared, kyberEntropy [32]byte - if _, err := io.ReadFull(rand, kyberEntropy[:]); err != nil { + if _, err := io.ReadFull(config.rand(), kyberEntropy[:]); err != nil { return nil, nil, err } kyberCiphertext := kyberPublicKey.Encap(kyberShared[:], &kyberEntropy) return kyberCiphertext[:], kyberShared[:], nil } -func (e *kyberKEM) decap(ciphertext []byte) (secret []byte, err error) { +func (e *kyberKEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) { if len(ciphertext) != kyber.CiphertextSize { return nil, errors.New("tls: bad length Kyber reply") } @@ -427,19 +443,26 @@ func (e *mlkem768KEM) ciphertextSize() int { return mlkem768.CiphertextSize } -func (m *mlkem768KEM) generate(rand io.Reader) (publicKey []byte, err error) { +func (m *mlkem768KEM) generate(config *Config) (publicKey []byte, err error) { m.decapKey, err = mlkem768.GenerateKey() if err != nil { return } - return m.decapKey.EncapsulationKey(), nil + publicKey = m.decapKey.EncapsulationKey() + if config.Bugs.MLKEMEncapKeyNotReduced { + // Set the first 12 bits so that the first word is definitely + // not reduced. + publicKey[0] |= 0xff + publicKey[1] |= 0xf + } + return } -func (m *mlkem768KEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { +func (m *mlkem768KEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) { return mlkem768.Encapsulate(peerKey) } -func (m *mlkem768KEM) decap(ciphertext []byte) (secret []byte, err error) { +func (m *mlkem768KEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) { return mlkem768.Decapsulate(m.decapKey, ciphertext) } @@ -456,74 +479,115 @@ func (c *concatKEM) ciphertextSize() int { return c.kem1.ciphertextSize() + c.kem2.ciphertextSize() } -func (c *concatKEM) generate(rand io.Reader) (publicKey []byte, err error) { - publicKey1, err := c.kem1.generate(rand) +func (c *concatKEM) generate(config *Config) (publicKey []byte, err error) { + publicKey1, err := c.kem1.generate(config) if err != nil { return nil, err } - publicKey2, err := c.kem2.generate(rand) + publicKey2, err := c.kem2.generate(config) if err != nil { return nil, err } return slices.Concat(publicKey1, publicKey2), nil } -func (c *concatKEM) encap(rand io.Reader, peerKey []byte) (ciphertext []byte, secret []byte, err error) { +func (c *concatKEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) { encapKeySize1 := c.kem1.encapsulationKeySize() if len(peerKey) < encapKeySize1 { return nil, nil, errors.New("tls: invalid peer key") } peerKey1, peerKey2 := peerKey[:encapKeySize1], peerKey[encapKeySize1:] - ciphertext1, secret1, err := c.kem1.encap(rand, peerKey1) + ciphertext1, secret1, err := c.kem1.encap(config, peerKey1) if err != nil { return nil, nil, err } - ciphertext2, secret2, err := c.kem2.encap(rand, peerKey2) + ciphertext2, secret2, err := c.kem2.encap(config, peerKey2) if err != nil { return nil, nil, err } return slices.Concat(ciphertext1, ciphertext2), slices.Concat(secret1, secret2), nil } -func (c *concatKEM) decap(ciphertext []byte) (secret []byte, err error) { +func (c *concatKEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) { ciphertextSize1 := c.kem1.ciphertextSize() if len(ciphertext) < ciphertextSize1 { return nil, errors.New("tls: invalid ciphertext") } ciphertext1, ciphertext2 := ciphertext[:ciphertextSize1], ciphertext[ciphertextSize1:] - secret1, err := c.kem1.decap(ciphertext1) + secret1, err := c.kem1.decap(config, ciphertext1) if err != nil { return nil, err } - secret2, err := c.kem2.decap(ciphertext2) + secret2, err := c.kem2.decap(config, ciphertext2) if err != nil { return nil, err } return slices.Concat(secret1, secret2), nil } +type transformKEM struct { + kem kemImplementation + transform func([]byte) []byte +} + +func (t *transformKEM) encapsulationKeySize() int { + return t.kem.encapsulationKeySize() +} + +func (t *transformKEM) ciphertextSize() int { + return t.kem.ciphertextSize() +} + +func (t *transformKEM) generate(config *Config) (publicKey []byte, err error) { + publicKey, err = t.kem.generate(config) + if err == nil { + publicKey = t.transform(publicKey) + } + return +} + +func (t *transformKEM) encap(config *Config, peerKey []byte) (ciphertext []byte, secret []byte, err error) { + ciphertext, secret, err = t.kem.encap(config, peerKey) + if err == nil { + ciphertext = t.transform(ciphertext) + } + return +} + +func (t *transformKEM) decap(config *Config, ciphertext []byte) (secret []byte, err error) { + return t.kem.decap(config, ciphertext) +} + func kemForCurveID(id CurveID, config *Config) (kemImplementation, bool) { + var kem kemImplementation switch id { case CurveP224: - return &ecdhKEM{curve: elliptic.P224(), sendCompressed: config.Bugs.SendCompressedCoordinates}, true + kem = &ecdhKEM{curve: elliptic.P224()} case CurveP256: - return &ecdhKEM{curve: elliptic.P256(), sendCompressed: config.Bugs.SendCompressedCoordinates}, true + kem = &ecdhKEM{curve: elliptic.P256()} case CurveP384: - return &ecdhKEM{curve: elliptic.P384(), sendCompressed: config.Bugs.SendCompressedCoordinates}, true + kem = &ecdhKEM{curve: elliptic.P384()} case CurveP521: - return &ecdhKEM{curve: elliptic.P521(), sendCompressed: config.Bugs.SendCompressedCoordinates}, true + kem = &ecdhKEM{curve: elliptic.P521()} case CurveX25519: - return &x25519KEM{setHighBit: config.Bugs.SetX25519HighBit}, true + kem = &x25519KEM{} case CurveX25519Kyber768: // draft-tls-westerbaan-xyber768d00-03 - return &concatKEM{kem1: &x25519KEM{setHighBit: config.Bugs.SetX25519HighBit}, kem2: &kyberKEM{}}, true + kem = &concatKEM{kem1: &x25519KEM{}, kem2: &kyberKEM{}} case CurveX25519MLKEM768: // draft-kwiatkowski-tls-ecdhe-mlkem-01 - return &concatKEM{kem1: &mlkem768KEM{}, kem2: &x25519KEM{setHighBit: config.Bugs.SetX25519HighBit}}, true + kem = &concatKEM{kem1: &mlkem768KEM{}, kem2: &x25519KEM{}} default: return nil, false } + if config.Bugs.TruncateKeyShare { + kem = &transformKEM{kem: kem, transform: func(b []byte) []byte { return b[:len(b)-1] }} + } + if config.Bugs.PadKeyShare { + kem = &transformKEM{kem: kem, transform: func(b []byte) []byte { return slices.Concat(b, []byte{0}) }} + } + return kem, true } // keyAgreementAuthentication is a helper interface that specifies how @@ -662,7 +726,7 @@ type ecdheKeyAgreement struct { } func (ka *ecdheKeyAgreement) generateServerKeyExchange(config *Config, cert *Credential, clientHello *clientHelloMsg, hello *serverHelloMsg, version uint16) (*serverKeyExchangeMsg, error) { - var curveid CurveID + var curveID CurveID preferredCurves := config.curvePreferences() NextCandidate: @@ -674,23 +738,23 @@ NextCandidate: for _, c := range clientHello.supportedCurves { if candidate == c { - curveid = c + curveID = c break NextCandidate } } } - if curveid == 0 { + if curveID == 0 { return nil, errors.New("tls: no supported elliptic curves offered") } var ok bool - if ka.kem, ok = kemForCurveID(curveid, config); !ok { + if ka.kem, ok = kemForCurveID(curveID, config); !ok { return nil, errors.New("tls: preferredCurves includes unsupported curve") } - ka.curveID = curveid + ka.curveID = curveID - publicKey, err := ka.kem.generate(config.rand()) + publicKey, err := ka.kem.generate(config) if err != nil { return nil, err } @@ -699,15 +763,12 @@ NextCandidate: serverECDHParams := make([]byte, 1+2+1+len(publicKey)) serverECDHParams[0] = 3 // named curve if config.Bugs.SendCurve != 0 { - curveid = config.Bugs.SendCurve + curveID = config.Bugs.SendCurve } - serverECDHParams[1] = byte(curveid >> 8) - serverECDHParams[2] = byte(curveid) + serverECDHParams[1] = byte(curveID >> 8) + serverECDHParams[2] = byte(curveID) serverECDHParams[3] = byte(len(publicKey)) copy(serverECDHParams[4:], publicKey) - if config.Bugs.InvalidECDHPoint { - serverECDHParams[4] ^= 0xff - } return ka.auth.signParameters(config, cert, clientHello, hello, serverECDHParams) } @@ -716,7 +777,7 @@ func (ka *ecdheKeyAgreement) processClientKeyExchange(config *Config, cert *Cred if len(ckx.ciphertext) == 0 || int(ckx.ciphertext[0]) != len(ckx.ciphertext)-1 { return nil, errClientKeyExchange } - return ka.kem.decap(ckx.ciphertext[1:]) + return ka.kem.decap(config, ckx.ciphertext[1:]) } func (ka *ecdheKeyAgreement) processServerKeyExchange(config *Config, clientHello *clientHelloMsg, serverHello *serverHelloMsg, key crypto.PublicKey, skx *serverKeyExchangeMsg) error { @@ -752,7 +813,7 @@ func (ka *ecdheKeyAgreement) generateClientKeyExchange(config *Config, clientHel return nil, nil, errors.New("missing ServerKeyExchange message") } - ciphertext, secret, err := ka.kem.encap(config.rand(), ka.peerKey) + ciphertext, secret, err := ka.kem.encap(config, ka.peerKey) if err != nil { return nil, nil, err } @@ -761,9 +822,6 @@ func (ka *ecdheKeyAgreement) generateClientKeyExchange(config *Config, clientHel ckx.ciphertext = make([]byte, 1+len(ciphertext)) ckx.ciphertext[0] = byte(len(ciphertext)) copy(ckx.ciphertext[1:], ciphertext) - if config.Bugs.InvalidECDHPoint { - ckx.ciphertext[1] ^= 0xff - } return secret, ckx, nil } diff --git a/ssl/test/runner/runner.go b/ssl/test/runner/runner.go index 6179ee0f5d..481a65c97a 100644 --- a/ssl/test/runner/runner.go +++ b/ssl/test/runner/runner.go @@ -438,6 +438,16 @@ const ( serverTest ) +func (t testType) String() string { + switch t { + case clientTest: + return "Client" + case serverTest: + return "Server" + } + panic(fmt.Sprintf("bad test type %d", t)) +} + type protocol int const ( @@ -11765,93 +11775,182 @@ func isPqGroup(r CurveID) bool { return r == CurveX25519Kyber768 || r == CurveX25519MLKEM768 } +func isECDHGroup(r CurveID) bool { + return r == CurveP224 || r == CurveP256 || r == CurveP384 || r == CurveP521 +} + +func isX25519Group(r CurveID) bool { + return r == CurveX25519 || r == CurveX25519Kyber768 || r == CurveX25519MLKEM768 +} + func addCurveTests() { + // A set of cipher suites that ensures some curve-using mode is used. + // Without this, servers may fall back to RSA key exchange. + ecdheCiphers := []uint16{ + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + TLS_AES_256_GCM_SHA384, + } + for _, curve := range testCurves { for _, ver := range tlsVersions { if isPqGroup(curve.id) && ver.version < VersionTLS13 { continue } + for _, testType := range []testType{clientTest, serverTest} { + suffix := fmt.Sprintf("%s-%s-%s", testType, curve.name, ver.name) - suffix := curve.name + "-" + ver.name - - testCases = append(testCases, testCase{ - name: "CurveTest-Client-" + suffix, - config: Config{ - MaxVersion: ver.version, - CipherSuites: []uint16{ - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - TLS_AES_256_GCM_SHA384, + testCases = append(testCases, testCase{ + testType: testType, + name: "CurveTest-" + suffix, + config: Config{ + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, + CurvePreferences: []CurveID{curve.id}, }, - CurvePreferences: []CurveID{curve.id}, - }, - flags: append( - []string{"-expect-curve-id", strconv.Itoa(int(curve.id))}, - flagInts("-curves", shimConfig.AllCurves)..., - ), - expectations: connectionExpectations{ - curveID: curve.id, - }, - }) - testCases = append(testCases, testCase{ - testType: serverTest, - name: "CurveTest-Server-" + suffix, - config: Config{ - MaxVersion: ver.version, - CipherSuites: []uint16{ - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - TLS_AES_256_GCM_SHA384, + flags: append( + []string{"-expect-curve-id", strconv.Itoa(int(curve.id))}, + flagInts("-curves", shimConfig.AllCurves)..., + ), + expectations: connectionExpectations{ + curveID: curve.id, }, - CurvePreferences: []CurveID{curve.id}, - }, - flags: append( - []string{"-expect-curve-id", strconv.Itoa(int(curve.id))}, - flagInts("-curves", shimConfig.AllCurves)..., - ), - expectations: connectionExpectations{ - curveID: curve.id, - }, - }) + }) + + badKeyShareLocalError := "remote error: error decoding message" + if testType == clientTest && ver.version >= VersionTLS13 { + // If the shim is a TLS 1.3 client and the runner sends a bad + // key share, the runner never reads the client's cleartext + // alert because the runner has already started encrypting by + // the time the client sees it. + badKeyShareLocalError = "local error: bad record MAC" + } - if curve.id != CurveX25519 && !isPqGroup(curve.id) { testCases = append(testCases, testCase{ - name: "CurveTest-Client-Compressed-" + suffix, + testType: testType, + name: "CurveTest-Invalid-TruncateKeyShare-" + suffix, config: Config{ - MaxVersion: ver.version, - CipherSuites: []uint16{ - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - TLS_AES_256_GCM_SHA384, - }, + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, CurvePreferences: []CurveID{curve.id}, Bugs: ProtocolBugs{ - SendCompressedCoordinates: true, + TruncateKeyShare: true, }, }, - flags: flagInts("-curves", shimConfig.AllCurves), - shouldFail: true, - expectedError: ":BAD_ECPOINT:", + flags: flagInts("-curves", shimConfig.AllCurves), + shouldFail: true, + expectedError: ":BAD_ECPOINT:", + expectedLocalError: badKeyShareLocalError, }) + testCases = append(testCases, testCase{ - testType: serverTest, - name: "CurveTest-Server-Compressed-" + suffix, + testType: testType, + name: "CurveTest-Invalid-PadKeyShare-" + suffix, config: Config{ - MaxVersion: ver.version, - CipherSuites: []uint16{ - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - TLS_AES_256_GCM_SHA384, - }, + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, CurvePreferences: []CurveID{curve.id}, Bugs: ProtocolBugs{ - SendCompressedCoordinates: true, + PadKeyShare: true, }, }, - flags: flagInts("-curves", shimConfig.AllCurves), - shouldFail: true, - expectedError: ":BAD_ECPOINT:", + flags: flagInts("-curves", shimConfig.AllCurves), + shouldFail: true, + expectedError: ":BAD_ECPOINT:", + expectedLocalError: badKeyShareLocalError, }) + + if isECDHGroup(curve.id) { + testCases = append(testCases, testCase{ + testType: testType, + name: "CurveTest-Invalid-Compressed-" + suffix, + config: Config{ + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, + CurvePreferences: []CurveID{curve.id}, + Bugs: ProtocolBugs{ + SendCompressedCoordinates: true, + }, + }, + flags: flagInts("-curves", shimConfig.AllCurves), + shouldFail: true, + expectedError: ":BAD_ECPOINT:", + expectedLocalError: badKeyShareLocalError, + }) + testCases = append(testCases, testCase{ + testType: testType, + name: "CurveTest-Invalid-NotOnCurve-" + suffix, + config: Config{ + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, + CurvePreferences: []CurveID{curve.id}, + Bugs: ProtocolBugs{ + ECDHPointNotOnCurve: true, + }, + }, + flags: flagInts("-curves", shimConfig.AllCurves), + shouldFail: true, + expectedError: ":BAD_ECPOINT:", + expectedLocalError: badKeyShareLocalError, + }) + } + + if isX25519Group(curve.id) { + // Implementations should mask off the high order bit in X25519. + testCases = append(testCases, testCase{ + testType: testType, + name: "CurveTest-SetX25519HighBit-" + suffix, + config: Config{ + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, + CurvePreferences: []CurveID{curve.id}, + Bugs: ProtocolBugs{ + SetX25519HighBit: true, + }, + }, + flags: flagInts("-curves", shimConfig.AllCurves), + expectations: connectionExpectations{ + curveID: curve.id, + }, + }) + + // Implementations should reject low order points. + testCases = append(testCases, testCase{ + testType: testType, + name: "CurveTest-Invalid-LowOrderX25519Point-" + suffix, + config: Config{ + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, + CurvePreferences: []CurveID{curve.id}, + Bugs: ProtocolBugs{ + LowOrderX25519Point: true, + }, + }, + flags: flagInts("-curves", shimConfig.AllCurves), + shouldFail: true, + expectedError: ":BAD_ECPOINT:", + expectedLocalError: badKeyShareLocalError, + }) + } + + if curve.id == CurveX25519MLKEM768 && testType == serverTest { + testCases = append(testCases, testCase{ + testType: testType, + name: "CurveTest-Invalid-MLKEMEncapKeyNotReduced-" + suffix, + config: Config{ + MaxVersion: ver.version, + CipherSuites: ecdheCiphers, + CurvePreferences: []CurveID{curve.id}, + Bugs: ProtocolBugs{ + MLKEMEncapKeyNotReduced: true, + }, + }, + flags: flagInts("-curves", shimConfig.AllCurves), + shouldFail: true, + expectedError: ":BAD_ECPOINT:", + expectedLocalError: badKeyShareLocalError, + }) + } } } } @@ -11979,60 +12078,6 @@ func addCurveTests() { expectedError: ":WRONG_CURVE:", }) - // Test invalid curve points. - testCases = append(testCases, testCase{ - name: "InvalidECDHPoint-Client", - config: Config{ - MaxVersion: VersionTLS12, - CipherSuites: []uint16{TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256}, - CurvePreferences: []CurveID{CurveP256}, - Bugs: ProtocolBugs{ - InvalidECDHPoint: true, - }, - }, - shouldFail: true, - expectedError: ":BAD_ECPOINT:", - }) - testCases = append(testCases, testCase{ - name: "InvalidECDHPoint-Client-TLS13", - config: Config{ - MaxVersion: VersionTLS13, - CurvePreferences: []CurveID{CurveP256}, - Bugs: ProtocolBugs{ - InvalidECDHPoint: true, - }, - }, - shouldFail: true, - expectedError: ":BAD_ECPOINT:", - }) - testCases = append(testCases, testCase{ - testType: serverTest, - name: "InvalidECDHPoint-Server", - config: Config{ - MaxVersion: VersionTLS12, - CipherSuites: []uint16{TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256}, - CurvePreferences: []CurveID{CurveP256}, - Bugs: ProtocolBugs{ - InvalidECDHPoint: true, - }, - }, - shouldFail: true, - expectedError: ":BAD_ECPOINT:", - }) - testCases = append(testCases, testCase{ - testType: serverTest, - name: "InvalidECDHPoint-Server-TLS13", - config: Config{ - MaxVersion: VersionTLS13, - CurvePreferences: []CurveID{CurveP256}, - Bugs: ProtocolBugs{ - InvalidECDHPoint: true, - }, - }, - shouldFail: true, - expectedError: ":BAD_ECPOINT:", - }) - // The previous curve ID should be reported on TLS 1.2 resumption. testCases = append(testCases, testCase{ name: "CurveID-Resume-Client", @@ -12210,22 +12255,6 @@ func addCurveTests() { expectedError: ":ERROR_PARSING_EXTENSION:", }) - // Implementations should mask off the high order bit in X25519. - testCases = append(testCases, testCase{ - name: "SetX25519HighBit", - config: Config{ - CipherSuites: []uint16{ - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - TLS_AES_128_GCM_SHA256, - }, - CurvePreferences: []CurveID{CurveX25519}, - Bugs: ProtocolBugs{ - SetX25519HighBit: true, - }, - }, - }) - // Post-quantum groups require TLS 1.3. for _, curve := range testCurves { if !isPqGroup(curve.id) { From 2595943599e8de4d15e8cf4b9b975554a4d2996f Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Wed, 28 Aug 2024 23:50:02 +0000 Subject: [PATCH 78/81] Extract MD5 from bcm MD5 is no longer approved as part of fips, so we move it to digest_extra. Change-Id: I504c3d0d381cba72345c615209b99d4451886d96 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70727 Commit-Queue: David Benjamin Reviewed-by: David Benjamin Auto-Submit: Bob Beck --- build.json | 14 +- crypto/digest_extra/digest_extra.c | 62 ++ crypto/fipsmodule/bcm.c | 1 - crypto/fipsmodule/digest/digests.c.inc | 60 -- .../service_indicator/service_indicator.c.inc | 7 +- .../service_indicator_test.cc | 30 +- crypto/{fipsmodule => }/md5/asm/md5-586.pl | 2 +- crypto/{fipsmodule => }/md5/asm/md5-x86_64.pl | 2 +- crypto/{fipsmodule => }/md5/internal.h | 0 .../{fipsmodule/md5/md5.c.inc => md5/md5.c} | 4 +- crypto/{fipsmodule => }/md5/md5_test.cc | 2 +- gen/crypto/md5-586-apple.S | 684 +++++++++++++++ gen/crypto/md5-586-linux.S | 686 +++++++++++++++ gen/crypto/md5-586-win.asm | 694 +++++++++++++++ gen/crypto/md5-x86_64-apple.S | 690 +++++++++++++++ gen/crypto/md5-x86_64-linux.S | 695 +++++++++++++++ gen/crypto/md5-x86_64-win.asm | 803 ++++++++++++++++++ gen/sources.bzl | 18 +- gen/sources.cmake | 18 +- gen/sources.gni | 18 +- gen/sources.json | 20 +- 21 files changed, 4385 insertions(+), 125 deletions(-) rename crypto/{fipsmodule => }/md5/asm/md5-586.pl (99%) rename crypto/{fipsmodule => }/md5/asm/md5-x86_64.pl (99%) rename crypto/{fipsmodule => }/md5/internal.h (100%) rename crypto/{fipsmodule/md5/md5.c.inc => md5/md5.c} (99%) rename crypto/{fipsmodule => }/md5/md5_test.cc (97%) create mode 100644 gen/crypto/md5-586-apple.S create mode 100644 gen/crypto/md5-586-linux.S create mode 100644 gen/crypto/md5-586-win.asm create mode 100644 gen/crypto/md5-x86_64-apple.S create mode 100644 gen/crypto/md5-x86_64-linux.S create mode 100644 gen/crypto/md5-x86_64-win.asm diff --git a/build.json b/build.json index 51023ce073..f3ac354f2c 100644 --- a/build.json +++ b/build.json @@ -68,7 +68,6 @@ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", "crypto/fipsmodule/modes/ctr.c.inc", @@ -125,7 +124,6 @@ {"src": "crypto/fipsmodule/bn/asm/co-586.pl"}, {"src": "crypto/fipsmodule/modes/asm/ghash-ssse3-x86.pl"}, {"src": "crypto/fipsmodule/modes/asm/ghash-x86.pl"}, - {"src": "crypto/fipsmodule/md5/asm/md5-586.pl"}, {"src": "crypto/fipsmodule/sha/asm/sha1-586.pl"}, {"src": "crypto/fipsmodule/sha/asm/sha256-586.pl"}, {"src": "crypto/fipsmodule/sha/asm/sha512-586.pl"}, @@ -137,7 +135,6 @@ {"src": "crypto/fipsmodule/aes/asm/aesni-x86_64.pl"}, {"src": "crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl"}, {"src": "crypto/fipsmodule/modes/asm/ghash-x86_64.pl"}, - {"src": "crypto/fipsmodule/md5/asm/md5-x86_64.pl"}, {"src": "crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl"}, {"src": "crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl"}, {"src": "crypto/fipsmodule/rand/asm/rdrand-x86_64.pl"}, @@ -267,6 +264,7 @@ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/md4/md4.c", + "crypto/md5/md5.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", @@ -511,7 +509,6 @@ "crypto/fipsmodule/ec/p256-nistz.h", "crypto/fipsmodule/ec/p256_table.h", "crypto/fipsmodule/ecdsa/internal.h", - "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", @@ -524,6 +521,7 @@ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/md5/internal.h", "crypto/mldsa/internal.h", "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", @@ -570,12 +568,14 @@ {"src": "crypto/chacha/asm/chacha-armv4.pl"} ], "perlasm_x86": [ - {"src": "crypto/chacha/asm/chacha-x86.pl"} + {"src": "crypto/chacha/asm/chacha-x86.pl"}, + {"src": "crypto/md5/asm/md5-586.pl"} ], "perlasm_x86_64": [ {"src": "crypto/chacha/asm/chacha-x86_64.pl"}, {"src": "crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl"}, - {"src": "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl"} + {"src": "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl"}, + {"src": "crypto/md5/asm/md5-x86_64.pl"} ] }, "pki": { @@ -828,7 +828,6 @@ "crypto/fipsmodule/ec/p256_test.cc", "crypto/fipsmodule/ecdsa/ecdsa_test.cc", "crypto/fipsmodule/hkdf/hkdf_test.cc", - "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", @@ -840,6 +839,7 @@ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/md5/md5_test.cc", "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", "crypto/pem/pem_test.cc", diff --git a/crypto/digest_extra/digest_extra.c b/crypto/digest_extra/digest_extra.c index 5b9e26db53..7033d9c9cc 100644 --- a/crypto/digest_extra/digest_extra.c +++ b/crypto/digest_extra/digest_extra.c @@ -62,6 +62,7 @@ #include #include #include +#include #include #include "../asn1/internal.h" @@ -291,3 +292,64 @@ static const EVP_MD evp_md_md4 = { }; const EVP_MD *EVP_md4(void) { return &evp_md_md4; } + +static void md5_init(EVP_MD_CTX *ctx) { + BSSL_CHECK(MD5_Init(ctx->md_data)); +} + +static void md5_update(EVP_MD_CTX *ctx, const void *data, size_t count) { + BSSL_CHECK(MD5_Update(ctx->md_data, data, count)); +} + +static void md5_final(EVP_MD_CTX *ctx, uint8_t *out) { + BSSL_CHECK(MD5_Final(out, ctx->md_data)); +} + +static const EVP_MD evp_md_md5 = { + NID_md5, + MD5_DIGEST_LENGTH, + 0, + md5_init, + md5_update, + md5_final, + 64, + sizeof(MD5_CTX), +}; + +const EVP_MD *EVP_md5(void) { return &evp_md_md5; } + +typedef struct { + MD5_CTX md5; + SHA_CTX sha1; +} MD5_SHA1_CTX; + +static void md5_sha1_init(EVP_MD_CTX *md_ctx) { + MD5_SHA1_CTX *ctx = md_ctx->md_data; + BSSL_CHECK(MD5_Init(&ctx->md5) && SHA1_Init(&ctx->sha1)); +} + +static void md5_sha1_update(EVP_MD_CTX *md_ctx, const void *data, + size_t count) { + MD5_SHA1_CTX *ctx = md_ctx->md_data; + BSSL_CHECK(MD5_Update(&ctx->md5, data, count) && + SHA1_Update(&ctx->sha1, data, count)); +} + +static void md5_sha1_final(EVP_MD_CTX *md_ctx, uint8_t *out) { + MD5_SHA1_CTX *ctx = md_ctx->md_data; + BSSL_CHECK(MD5_Final(out, &ctx->md5) && + SHA1_Final(out + MD5_DIGEST_LENGTH, &ctx->sha1)); +} + +const EVP_MD evp_md_md5_sha1 = { + NID_md5_sha1, + MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH, + 0, + md5_sha1_init, + md5_sha1_update, + md5_sha1_final, + 64, + sizeof(MD5_SHA1_CTX), +}; + +const EVP_MD *EVP_md5_sha1(void) { return &evp_md_md5_sha1; } diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index 5921ab65ff..81e03cb3f1 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c @@ -85,7 +85,6 @@ #include "ec/wnaf.c.inc" #include "hkdf/hkdf.c.inc" #include "hmac/hmac.c.inc" -#include "md5/md5.c.inc" #include "modes/cbc.c.inc" #include "modes/cfb.c.inc" #include "modes/ctr.c.inc" diff --git a/crypto/fipsmodule/digest/digests.c.inc b/crypto/fipsmodule/digest/digests.c.inc index 638724b316..effcbf5d68 100644 --- a/crypto/fipsmodule/digest/digests.c.inc +++ b/crypto/fipsmodule/digest/digests.c.inc @@ -59,7 +59,6 @@ #include #include -#include #include #include @@ -74,30 +73,6 @@ #endif -static void md5_init(EVP_MD_CTX *ctx) { - CHECK(MD5_Init(ctx->md_data)); -} - -static void md5_update(EVP_MD_CTX *ctx, const void *data, size_t count) { - CHECK(MD5_Update(ctx->md_data, data, count)); -} - -static void md5_final(EVP_MD_CTX *ctx, uint8_t *out) { - CHECK(MD5_Final(out, ctx->md_data)); -} - -DEFINE_METHOD_FUNCTION(EVP_MD, EVP_md5) { - out->type = NID_md5; - out->md_size = MD5_DIGEST_LENGTH; - out->flags = 0; - out->init = md5_init; - out->update = md5_update; - out->final = md5_final; - out->block_size = 64; - out->ctx_size = sizeof(MD5_CTX); -} - - static void sha1_init(EVP_MD_CTX *ctx) { CHECK(SHA1_Init(ctx->md_data)); } @@ -241,39 +216,4 @@ DEFINE_METHOD_FUNCTION(EVP_MD, EVP_sha512_256) { out->ctx_size = sizeof(SHA512_CTX); } - -typedef struct { - MD5_CTX md5; - SHA_CTX sha1; -} MD5_SHA1_CTX; - -static void md5_sha1_init(EVP_MD_CTX *md_ctx) { - MD5_SHA1_CTX *ctx = md_ctx->md_data; - CHECK(MD5_Init(&ctx->md5) && SHA1_Init(&ctx->sha1)); -} - -static void md5_sha1_update(EVP_MD_CTX *md_ctx, const void *data, - size_t count) { - MD5_SHA1_CTX *ctx = md_ctx->md_data; - CHECK(MD5_Update(&ctx->md5, data, count) && - SHA1_Update(&ctx->sha1, data, count)); -} - -static void md5_sha1_final(EVP_MD_CTX *md_ctx, uint8_t *out) { - MD5_SHA1_CTX *ctx = md_ctx->md_data; - CHECK(MD5_Final(out, &ctx->md5) && - SHA1_Final(out + MD5_DIGEST_LENGTH, &ctx->sha1)); -} - -DEFINE_METHOD_FUNCTION(EVP_MD, EVP_md5_sha1) { - out->type = NID_md5_sha1; - out->md_size = MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH; - out->flags = 0; - out->init = md5_sha1_init; - out->update = md5_sha1_update; - out->final = md5_sha1_final; - out->block_size = 64; - out->ctx_size = sizeof(MD5_SHA1_CTX); -} - #undef CHECK diff --git a/crypto/fipsmodule/service_indicator/service_indicator.c.inc b/crypto/fipsmodule/service_indicator/service_indicator.c.inc index dcbf819b89..80ab82e638 100644 --- a/crypto/fipsmodule/service_indicator/service_indicator.c.inc +++ b/crypto/fipsmodule/service_indicator/service_indicator.c.inc @@ -300,12 +300,9 @@ void HMAC_verify_service_indicator(const EVP_MD *evp_md) { } void TLSKDF_verify_service_indicator(const EVP_MD *md) { - // HMAC-MD5/HMAC-SHA1 (both used concurrently) is approved for use in the KDF - // in TLS 1.0/1.1. HMAC-SHA{256, 384, 512} are approved for use in the KDF in - // TLS 1.2. These Key Derivation functions are to be used in the context of - // the TLS protocol. + // HMAC-SHA{256, 384, 512} are approved for use in the KDF in TLS 1.2. These + // Key Derivation functions are to be used in the context of the TLS protocol. switch (EVP_MD_type(md)) { - case NID_md5_sha1: case NID_sha256: case NID_sha384: case NID_sha512: diff --git a/crypto/fipsmodule/service_indicator/service_indicator_test.cc b/crypto/fipsmodule/service_indicator/service_indicator_test.cc index 05943d5db3..b7febf0583 100644 --- a/crypto/fipsmodule/service_indicator/service_indicator_test.cc +++ b/crypto/fipsmodule/service_indicator/service_indicator_test.cc @@ -1129,15 +1129,20 @@ static const struct RSATestVector kRSATestVectors[] = { {4096, &EVP_md5, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, // RSA 1024 is not approved under FIPS 186-5. - {1024, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, - {1024, &EVP_sha256, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, - {1024, &EVP_sha512, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, + {1024, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, + {1024, &EVP_sha256, false, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, + {1024, &EVP_sha512, false, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, {1024, &EVP_sha1, true, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, - {1024, &EVP_sha256, true, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, + {1024, &EVP_sha256, true, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, // PSS with hashLen == saltLen is not possible for 1024-bit modulus and // SHA-512. - {2048, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, + {2048, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, {2048, &EVP_sha224, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {2048, &EVP_sha256, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {2048, &EVP_sha384, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, @@ -1148,7 +1153,8 @@ static const struct RSATestVector kRSATestVectors[] = { {2048, &EVP_sha384, true, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {2048, &EVP_sha512, true, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, - {3072, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, + {3072, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, {3072, &EVP_sha224, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {3072, &EVP_sha256, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {3072, &EVP_sha384, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, @@ -1159,7 +1165,8 @@ static const struct RSATestVector kRSATestVectors[] = { {3072, &EVP_sha384, true, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {3072, &EVP_sha512, true, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, - {4096, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, FIPSStatus::NOT_APPROVED}, + {4096, &EVP_sha1, false, FIPSStatus::NOT_APPROVED, + FIPSStatus::NOT_APPROVED}, {4096, &EVP_sha224, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {4096, &EVP_sha256, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, {4096, &EVP_sha384, false, FIPSStatus::APPROVED, FIPSStatus::APPROVED}, @@ -1773,7 +1780,8 @@ static const struct KDFTestVector { const uint8_t *expected_output; const FIPSStatus expect_approved; } kKDFTestVectors[] = { - {EVP_md5_sha1, kTLSOutput_md5_sha1, FIPSStatus::APPROVED}, + // TLS 1.0 and 1.1 are no longer an approved part of fips + {EVP_md5_sha1, kTLSOutput_md5_sha1, FIPSStatus::NOT_APPROVED}, {EVP_sha224, kTLSOutput_sha224, FIPSStatus::NOT_APPROVED}, {EVP_sha256, kTLSOutput_sha256, FIPSStatus::APPROVED}, {EVP_sha384, kTLSOutput_sha384, FIPSStatus::APPROVED}, @@ -1900,8 +1908,8 @@ TEST(ServiceIndicatorTest, SHA) { std::vector digest; - // MD4 is no longer of FIPS - this is retained for now to mimic previous - // behavior. + // MD4 is no longer part of FIPS - this is retained for now to ensure that + // MD4 continues to report itself as not approved. digest.resize(MD4_DIGEST_LENGTH); MD4_CTX md4_ctx; ASSERT_TRUE(CALL_SERVICE_AND_CHECK_APPROVED(approved, MD4_Init(&md4_ctx))); @@ -1914,6 +1922,8 @@ TEST(ServiceIndicatorTest, SHA) { EXPECT_EQ(Bytes(kOutput_md4), Bytes(digest)); EXPECT_EQ(approved, FIPSStatus::NOT_APPROVED); + // MD5 is no longer part of FIPS - this is retained for now to ensure that + // MD5 continues to report itself as not approved. digest.resize(MD5_DIGEST_LENGTH); MD5_CTX md5_ctx; ASSERT_TRUE(CALL_SERVICE_AND_CHECK_APPROVED(approved, MD5_Init(&md5_ctx))); diff --git a/crypto/fipsmodule/md5/asm/md5-586.pl b/crypto/md5/asm/md5-586.pl similarity index 99% rename from crypto/fipsmodule/md5/asm/md5-586.pl rename to crypto/md5/asm/md5-586.pl index ec34aad3ad..f849b46477 100644 --- a/crypto/fipsmodule/md5/asm/md5-586.pl +++ b/crypto/md5/asm/md5-586.pl @@ -8,7 +8,7 @@ $normal=0; $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; -push(@INC,"${dir}","${dir}../../../perlasm"); +push(@INC,"${dir}","${dir}../../perlasm"); require "x86asm.pl"; $output=pop; diff --git a/crypto/fipsmodule/md5/asm/md5-x86_64.pl b/crypto/md5/asm/md5-x86_64.pl similarity index 99% rename from crypto/fipsmodule/md5/asm/md5-x86_64.pl rename to crypto/md5/asm/md5-x86_64.pl index 655ea097b4..eee50a35c8 100644 --- a/crypto/fipsmodule/md5/asm/md5-x86_64.pl +++ b/crypto/md5/asm/md5-x86_64.pl @@ -117,7 +117,7 @@ sub round4_step $0 =~ m/(.*[\/\\])[^\/\\]+$/; my $dir=$1; my $xlate; ( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or -( $xlate="${dir}../../../perlasm/x86_64-xlate.pl" and -f $xlate) or +( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or die "can't locate x86_64-xlate.pl"; open OUT,"| \"$^X\" \"$xlate\" $flavour \"$output\""; diff --git a/crypto/fipsmodule/md5/internal.h b/crypto/md5/internal.h similarity index 100% rename from crypto/fipsmodule/md5/internal.h rename to crypto/md5/internal.h diff --git a/crypto/fipsmodule/md5/md5.c.inc b/crypto/md5/md5.c similarity index 99% rename from crypto/fipsmodule/md5/md5.c.inc rename to crypto/md5/md5.c index 1691526766..7eca609085 100644 --- a/crypto/fipsmodule/md5/md5.c.inc +++ b/crypto/md5/md5.c @@ -60,8 +60,8 @@ #include -#include "../../internal.h" -#include "../digest/md32_common.h" +#include "../internal.h" +#include "../fipsmodule/digest/md32_common.h" #include "internal.h" diff --git a/crypto/fipsmodule/md5/md5_test.cc b/crypto/md5/md5_test.cc similarity index 97% rename from crypto/fipsmodule/md5/md5_test.cc rename to crypto/md5/md5_test.cc index 7df5bb2595..022b1ea127 100644 --- a/crypto/fipsmodule/md5/md5_test.cc +++ b/crypto/md5/md5_test.cc @@ -17,7 +17,7 @@ #include #include "internal.h" -#include "../../test/abi_test.h" +#include "../test/abi_test.h" #if defined(MD5_ASM) && defined(SUPPORTS_ABI_TEST) diff --git a/gen/crypto/md5-586-apple.S b/gen/crypto/md5-586-apple.S new file mode 100644 index 0000000000..986d590097 --- /dev/null +++ b/gen/crypto/md5-586-apple.S @@ -0,0 +1,684 @@ +// This file is generated from a similarly-named Perl script in the BoringSSL +// source tree. Do not edit by hand. + +#include + +#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) +.text +.globl _md5_block_asm_data_order +.private_extern _md5_block_asm_data_order +.align 4 +_md5_block_asm_data_order: +L_md5_block_asm_data_order_begin: + pushl %esi + pushl %edi + movl 12(%esp),%edi + movl 16(%esp),%esi + movl 20(%esp),%ecx + pushl %ebp + shll $6,%ecx + pushl %ebx + addl %esi,%ecx + subl $64,%ecx + movl (%edi),%eax + pushl %ecx + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx +L000start: + + # R0 section + movl %ecx,%edi + movl (%esi),%ebp + # R0 0 + xorl %edx,%edi + andl %ebx,%edi + leal 3614090360(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 4(%esi),%ebp + addl %ebx,%eax + # R0 1 + xorl %ecx,%edi + andl %eax,%edi + leal 3905402710(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 8(%esi),%ebp + addl %eax,%edx + # R0 2 + xorl %ebx,%edi + andl %edx,%edi + leal 606105819(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 12(%esi),%ebp + addl %edx,%ecx + # R0 3 + xorl %eax,%edi + andl %ecx,%edi + leal 3250441966(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 16(%esi),%ebp + addl %ecx,%ebx + # R0 4 + xorl %edx,%edi + andl %ebx,%edi + leal 4118548399(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 20(%esi),%ebp + addl %ebx,%eax + # R0 5 + xorl %ecx,%edi + andl %eax,%edi + leal 1200080426(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 24(%esi),%ebp + addl %eax,%edx + # R0 6 + xorl %ebx,%edi + andl %edx,%edi + leal 2821735955(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 28(%esi),%ebp + addl %edx,%ecx + # R0 7 + xorl %eax,%edi + andl %ecx,%edi + leal 4249261313(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 32(%esi),%ebp + addl %ecx,%ebx + # R0 8 + xorl %edx,%edi + andl %ebx,%edi + leal 1770035416(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 36(%esi),%ebp + addl %ebx,%eax + # R0 9 + xorl %ecx,%edi + andl %eax,%edi + leal 2336552879(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 40(%esi),%ebp + addl %eax,%edx + # R0 10 + xorl %ebx,%edi + andl %edx,%edi + leal 4294925233(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 44(%esi),%ebp + addl %edx,%ecx + # R0 11 + xorl %eax,%edi + andl %ecx,%edi + leal 2304563134(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 48(%esi),%ebp + addl %ecx,%ebx + # R0 12 + xorl %edx,%edi + andl %ebx,%edi + leal 1804603682(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 52(%esi),%ebp + addl %ebx,%eax + # R0 13 + xorl %ecx,%edi + andl %eax,%edi + leal 4254626195(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 56(%esi),%ebp + addl %eax,%edx + # R0 14 + xorl %ebx,%edi + andl %edx,%edi + leal 2792965006(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 60(%esi),%ebp + addl %edx,%ecx + # R0 15 + xorl %eax,%edi + andl %ecx,%edi + leal 1236535329(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 4(%esi),%ebp + addl %ecx,%ebx + + # R1 section + # R1 16 + leal 4129170786(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 24(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 17 + leal 3225465664(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 44(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 18 + leal 643717713(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl (%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 19 + leal 3921069994(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + # R1 20 + leal 3593408605(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 40(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 21 + leal 38016083(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 60(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 22 + leal 3634488961(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 16(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 23 + leal 3889429448(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 36(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + # R1 24 + leal 568446438(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 56(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 25 + leal 3275163606(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 12(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 26 + leal 4107603335(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 32(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 27 + leal 1163531501(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 52(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + # R1 28 + leal 2850285829(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 8(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + # R1 29 + leal 4243563512(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 28(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + # R1 30 + leal 1735328473(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 48(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + # R1 31 + leal 2368359562(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + # R2 section + # R2 32 + xorl %edx,%edi + xorl %ebx,%edi + leal 4294588738(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 32(%esi),%ebp + movl %ebx,%edi + # R2 33 + leal 2272392833(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 44(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 34 + xorl %ebx,%edi + xorl %edx,%edi + leal 1839030562(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 56(%esi),%ebp + movl %edx,%edi + # R2 35 + leal 4259657740(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 4(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + # R2 36 + xorl %edx,%edi + xorl %ebx,%edi + leal 2763975236(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 16(%esi),%ebp + movl %ebx,%edi + # R2 37 + leal 1272893353(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 28(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 38 + xorl %ebx,%edi + xorl %edx,%edi + leal 4139469664(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 40(%esi),%ebp + movl %edx,%edi + # R2 39 + leal 3200236656(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 52(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + # R2 40 + xorl %edx,%edi + xorl %ebx,%edi + leal 681279174(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl (%esi),%ebp + movl %ebx,%edi + # R2 41 + leal 3936430074(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 12(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 42 + xorl %ebx,%edi + xorl %edx,%edi + leal 3572445317(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 24(%esi),%ebp + movl %edx,%edi + # R2 43 + leal 76029189(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 36(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + # R2 44 + xorl %edx,%edi + xorl %ebx,%edi + leal 3654602809(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 48(%esi),%ebp + movl %ebx,%edi + # R2 45 + leal 3873151461(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 60(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + # R2 46 + xorl %ebx,%edi + xorl %edx,%edi + leal 530742520(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 8(%esi),%ebp + movl %edx,%edi + # R2 47 + leal 3299628645(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl (%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $23,%ebx + addl %ecx,%ebx + + # R3 section + # R3 48 + xorl %edx,%edi + orl %ebx,%edi + leal 4096336452(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 28(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 49 + orl %eax,%edi + leal 1126891415(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 56(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 50 + orl %edx,%edi + leal 2878612391(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 20(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 51 + orl %ecx,%edi + leal 4237533241(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 48(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + # R3 52 + orl %ebx,%edi + leal 1700485571(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 12(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 53 + orl %eax,%edi + leal 2399980690(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 40(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 54 + orl %edx,%edi + leal 4293915773(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 4(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 55 + orl %ecx,%edi + leal 2240044497(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 32(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + # R3 56 + orl %ebx,%edi + leal 1873313359(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 60(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 57 + orl %eax,%edi + leal 4264355552(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 24(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 58 + orl %edx,%edi + leal 2734768916(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 52(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 59 + orl %ecx,%edi + leal 1309151649(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 16(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + # R3 60 + orl %ebx,%edi + leal 4149444226(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 44(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + # R3 61 + orl %eax,%edi + leal 3174756917(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 8(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + # R3 62 + orl %edx,%edi + leal 718787259(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 36(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + # R3 63 + orl %ecx,%edi + leal 3951481745(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 24(%esp),%ebp + addl %edi,%ebx + addl $64,%esi + roll $21,%ebx + movl (%ebp),%edi + addl %ecx,%ebx + addl %edi,%eax + movl 4(%ebp),%edi + addl %edi,%ebx + movl 8(%ebp),%edi + addl %edi,%ecx + movl 12(%ebp),%edi + addl %edi,%edx + movl %eax,(%ebp) + movl %ebx,4(%ebp) + movl (%esp),%edi + movl %ecx,8(%ebp) + movl %edx,12(%ebp) + cmpl %esi,%edi + jae L000start + popl %eax + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) diff --git a/gen/crypto/md5-586-linux.S b/gen/crypto/md5-586-linux.S new file mode 100644 index 0000000000..a297f2bc14 --- /dev/null +++ b/gen/crypto/md5-586-linux.S @@ -0,0 +1,686 @@ +// This file is generated from a similarly-named Perl script in the BoringSSL +// source tree. Do not edit by hand. + +#include + +#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) +.text +.globl md5_block_asm_data_order +.hidden md5_block_asm_data_order +.type md5_block_asm_data_order,@function +.align 16 +md5_block_asm_data_order: +.L_md5_block_asm_data_order_begin: + pushl %esi + pushl %edi + movl 12(%esp),%edi + movl 16(%esp),%esi + movl 20(%esp),%ecx + pushl %ebp + shll $6,%ecx + pushl %ebx + addl %esi,%ecx + subl $64,%ecx + movl (%edi),%eax + pushl %ecx + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx +.L000start: + + + movl %ecx,%edi + movl (%esi),%ebp + + xorl %edx,%edi + andl %ebx,%edi + leal 3614090360(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 4(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 3905402710(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 8(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 606105819(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 12(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 3250441966(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 16(%esi),%ebp + addl %ecx,%ebx + + xorl %edx,%edi + andl %ebx,%edi + leal 4118548399(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 20(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 1200080426(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 24(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 2821735955(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 28(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 4249261313(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 32(%esi),%ebp + addl %ecx,%ebx + + xorl %edx,%edi + andl %ebx,%edi + leal 1770035416(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 36(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 2336552879(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 40(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 4294925233(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 44(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 2304563134(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 48(%esi),%ebp + addl %ecx,%ebx + + xorl %edx,%edi + andl %ebx,%edi + leal 1804603682(%eax,%ebp,1),%eax + xorl %edx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $7,%eax + movl 52(%esi),%ebp + addl %ebx,%eax + + xorl %ecx,%edi + andl %eax,%edi + leal 4254626195(%edx,%ebp,1),%edx + xorl %ecx,%edi + addl %edi,%edx + movl %eax,%edi + roll $12,%edx + movl 56(%esi),%ebp + addl %eax,%edx + + xorl %ebx,%edi + andl %edx,%edi + leal 2792965006(%ecx,%ebp,1),%ecx + xorl %ebx,%edi + addl %edi,%ecx + movl %edx,%edi + roll $17,%ecx + movl 60(%esi),%ebp + addl %edx,%ecx + + xorl %eax,%edi + andl %ecx,%edi + leal 1236535329(%ebx,%ebp,1),%ebx + xorl %eax,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $22,%ebx + movl 4(%esi),%ebp + addl %ecx,%ebx + + + + leal 4129170786(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 24(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 3225465664(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 44(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 643717713(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl (%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 3921069994(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + leal 3593408605(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 40(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 38016083(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 60(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 3634488961(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 16(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 3889429448(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 36(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + leal 568446438(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 56(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 3275163606(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 12(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 4107603335(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 32(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 1163531501(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 52(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + leal 2850285829(%eax,%ebp,1),%eax + xorl %ebx,%edi + andl %edx,%edi + movl 8(%esi),%ebp + xorl %ecx,%edi + addl %edi,%eax + movl %ebx,%edi + roll $5,%eax + addl %ebx,%eax + + leal 4243563512(%edx,%ebp,1),%edx + xorl %eax,%edi + andl %ecx,%edi + movl 28(%esi),%ebp + xorl %ebx,%edi + addl %edi,%edx + movl %eax,%edi + roll $9,%edx + addl %eax,%edx + + leal 1735328473(%ecx,%ebp,1),%ecx + xorl %edx,%edi + andl %ebx,%edi + movl 48(%esi),%ebp + xorl %eax,%edi + addl %edi,%ecx + movl %edx,%edi + roll $14,%ecx + addl %edx,%ecx + + leal 2368359562(%ebx,%ebp,1),%ebx + xorl %ecx,%edi + andl %eax,%edi + movl 20(%esi),%ebp + xorl %edx,%edi + addl %edi,%ebx + movl %ecx,%edi + roll $20,%ebx + addl %ecx,%ebx + + + + xorl %edx,%edi + xorl %ebx,%edi + leal 4294588738(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 32(%esi),%ebp + movl %ebx,%edi + + leal 2272392833(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 44(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 1839030562(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 56(%esi),%ebp + movl %edx,%edi + + leal 4259657740(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 4(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + + xorl %edx,%edi + xorl %ebx,%edi + leal 2763975236(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 16(%esi),%ebp + movl %ebx,%edi + + leal 1272893353(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 28(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 4139469664(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 40(%esi),%ebp + movl %edx,%edi + + leal 3200236656(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 52(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + + xorl %edx,%edi + xorl %ebx,%edi + leal 681279174(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl (%esi),%ebp + movl %ebx,%edi + + leal 3936430074(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 12(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 3572445317(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 24(%esi),%ebp + movl %edx,%edi + + leal 76029189(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl 36(%esi),%ebp + addl %edi,%ebx + movl %ecx,%edi + roll $23,%ebx + addl %ecx,%ebx + + xorl %edx,%edi + xorl %ebx,%edi + leal 3654602809(%eax,%ebp,1),%eax + addl %edi,%eax + roll $4,%eax + movl 48(%esi),%ebp + movl %ebx,%edi + + leal 3873151461(%edx,%ebp,1),%edx + addl %ebx,%eax + xorl %ecx,%edi + xorl %eax,%edi + movl 60(%esi),%ebp + addl %edi,%edx + movl %eax,%edi + roll $11,%edx + addl %eax,%edx + + xorl %ebx,%edi + xorl %edx,%edi + leal 530742520(%ecx,%ebp,1),%ecx + addl %edi,%ecx + roll $16,%ecx + movl 8(%esi),%ebp + movl %edx,%edi + + leal 3299628645(%ebx,%ebp,1),%ebx + addl %edx,%ecx + xorl %eax,%edi + xorl %ecx,%edi + movl (%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $23,%ebx + addl %ecx,%ebx + + + + xorl %edx,%edi + orl %ebx,%edi + leal 4096336452(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 28(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 1126891415(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 56(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 2878612391(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 20(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 4237533241(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 48(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + + orl %ebx,%edi + leal 1700485571(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 12(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 2399980690(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 40(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 4293915773(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 4(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 2240044497(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 32(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + + orl %ebx,%edi + leal 1873313359(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 60(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 4264355552(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 24(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 2734768916(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 52(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 1309151649(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 16(%esi),%ebp + addl %edi,%ebx + movl $-1,%edi + roll $21,%ebx + xorl %edx,%edi + addl %ecx,%ebx + + orl %ebx,%edi + leal 4149444226(%eax,%ebp,1),%eax + xorl %ecx,%edi + movl 44(%esi),%ebp + addl %edi,%eax + movl $-1,%edi + roll $6,%eax + xorl %ecx,%edi + addl %ebx,%eax + + orl %eax,%edi + leal 3174756917(%edx,%ebp,1),%edx + xorl %ebx,%edi + movl 8(%esi),%ebp + addl %edi,%edx + movl $-1,%edi + roll $10,%edx + xorl %ebx,%edi + addl %eax,%edx + + orl %edx,%edi + leal 718787259(%ecx,%ebp,1),%ecx + xorl %eax,%edi + movl 36(%esi),%ebp + addl %edi,%ecx + movl $-1,%edi + roll $15,%ecx + xorl %eax,%edi + addl %edx,%ecx + + orl %ecx,%edi + leal 3951481745(%ebx,%ebp,1),%ebx + xorl %edx,%edi + movl 24(%esp),%ebp + addl %edi,%ebx + addl $64,%esi + roll $21,%ebx + movl (%ebp),%edi + addl %ecx,%ebx + addl %edi,%eax + movl 4(%ebp),%edi + addl %edi,%ebx + movl 8(%ebp),%edi + addl %edi,%ecx + movl 12(%ebp),%edi + addl %edi,%edx + movl %eax,(%ebp) + movl %ebx,4(%ebp) + movl (%esp),%edi + movl %ecx,8(%ebp) + movl %edx,12(%ebp) + cmpl %esi,%edi + jae .L000start + popl %eax + popl %ebx + popl %ebp + popl %edi + popl %esi + ret +.size md5_block_asm_data_order,.-.L_md5_block_asm_data_order_begin +#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) diff --git a/gen/crypto/md5-586-win.asm b/gen/crypto/md5-586-win.asm new file mode 100644 index 0000000000..25592b8d46 --- /dev/null +++ b/gen/crypto/md5-586-win.asm @@ -0,0 +1,694 @@ +; 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__, win32 +%ifidn __OUTPUT_FORMAT__,obj +section code use32 class=code align=64 +%elifidn __OUTPUT_FORMAT__,win32 +$@feat.00 equ 1 +section .text code align=64 +%else +section .text code +%endif +global _md5_block_asm_data_order +align 16 +_md5_block_asm_data_order: +L$_md5_block_asm_data_order_begin: + push esi + push edi + mov edi,DWORD [12+esp] + mov esi,DWORD [16+esp] + mov ecx,DWORD [20+esp] + push ebp + shl ecx,6 + push ebx + add ecx,esi + sub ecx,64 + mov eax,DWORD [edi] + push ecx + mov ebx,DWORD [4+edi] + mov ecx,DWORD [8+edi] + mov edx,DWORD [12+edi] +L$000start: + ; + ; R0 section + mov edi,ecx + mov ebp,DWORD [esi] + ; R0 0 + xor edi,edx + and edi,ebx + lea eax,[3614090360+ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD [4+esi] + add eax,ebx + ; R0 1 + xor edi,ecx + and edi,eax + lea edx,[3905402710+ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD [8+esi] + add edx,eax + ; R0 2 + xor edi,ebx + and edi,edx + lea ecx,[606105819+ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD [12+esi] + add ecx,edx + ; R0 3 + xor edi,eax + and edi,ecx + lea ebx,[3250441966+ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD [16+esi] + add ebx,ecx + ; R0 4 + xor edi,edx + and edi,ebx + lea eax,[4118548399+ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD [20+esi] + add eax,ebx + ; R0 5 + xor edi,ecx + and edi,eax + lea edx,[1200080426+ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD [24+esi] + add edx,eax + ; R0 6 + xor edi,ebx + and edi,edx + lea ecx,[2821735955+ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD [28+esi] + add ecx,edx + ; R0 7 + xor edi,eax + and edi,ecx + lea ebx,[4249261313+ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD [32+esi] + add ebx,ecx + ; R0 8 + xor edi,edx + and edi,ebx + lea eax,[1770035416+ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD [36+esi] + add eax,ebx + ; R0 9 + xor edi,ecx + and edi,eax + lea edx,[2336552879+ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD [40+esi] + add edx,eax + ; R0 10 + xor edi,ebx + and edi,edx + lea ecx,[4294925233+ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD [44+esi] + add ecx,edx + ; R0 11 + xor edi,eax + and edi,ecx + lea ebx,[2304563134+ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD [48+esi] + add ebx,ecx + ; R0 12 + xor edi,edx + and edi,ebx + lea eax,[1804603682+ebp*1+eax] + xor edi,edx + add eax,edi + mov edi,ebx + rol eax,7 + mov ebp,DWORD [52+esi] + add eax,ebx + ; R0 13 + xor edi,ecx + and edi,eax + lea edx,[4254626195+ebp*1+edx] + xor edi,ecx + add edx,edi + mov edi,eax + rol edx,12 + mov ebp,DWORD [56+esi] + add edx,eax + ; R0 14 + xor edi,ebx + and edi,edx + lea ecx,[2792965006+ebp*1+ecx] + xor edi,ebx + add ecx,edi + mov edi,edx + rol ecx,17 + mov ebp,DWORD [60+esi] + add ecx,edx + ; R0 15 + xor edi,eax + and edi,ecx + lea ebx,[1236535329+ebp*1+ebx] + xor edi,eax + add ebx,edi + mov edi,ecx + rol ebx,22 + mov ebp,DWORD [4+esi] + add ebx,ecx + ; + ; R1 section + ; R1 16 + lea eax,[4129170786+ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD [24+esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 17 + lea edx,[3225465664+ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD [44+esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 18 + lea ecx,[643717713+ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD [esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 19 + lea ebx,[3921069994+ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD [20+esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; R1 20 + lea eax,[3593408605+ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD [40+esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 21 + lea edx,[38016083+ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD [60+esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 22 + lea ecx,[3634488961+ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD [16+esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 23 + lea ebx,[3889429448+ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD [36+esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; R1 24 + lea eax,[568446438+ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD [56+esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 25 + lea edx,[3275163606+ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD [12+esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 26 + lea ecx,[4107603335+ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD [32+esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 27 + lea ebx,[1163531501+ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD [52+esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; R1 28 + lea eax,[2850285829+ebp*1+eax] + xor edi,ebx + and edi,edx + mov ebp,DWORD [8+esi] + xor edi,ecx + add eax,edi + mov edi,ebx + rol eax,5 + add eax,ebx + ; R1 29 + lea edx,[4243563512+ebp*1+edx] + xor edi,eax + and edi,ecx + mov ebp,DWORD [28+esi] + xor edi,ebx + add edx,edi + mov edi,eax + rol edx,9 + add edx,eax + ; R1 30 + lea ecx,[1735328473+ebp*1+ecx] + xor edi,edx + and edi,ebx + mov ebp,DWORD [48+esi] + xor edi,eax + add ecx,edi + mov edi,edx + rol ecx,14 + add ecx,edx + ; R1 31 + lea ebx,[2368359562+ebp*1+ebx] + xor edi,ecx + and edi,eax + mov ebp,DWORD [20+esi] + xor edi,edx + add ebx,edi + mov edi,ecx + rol ebx,20 + add ebx,ecx + ; + ; R2 section + ; R2 32 + xor edi,edx + xor edi,ebx + lea eax,[4294588738+ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD [32+esi] + mov edi,ebx + ; R2 33 + lea edx,[2272392833+ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD [44+esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 34 + xor edi,ebx + xor edi,edx + lea ecx,[1839030562+ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD [56+esi] + mov edi,edx + ; R2 35 + lea ebx,[4259657740+ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD [4+esi] + add ebx,edi + mov edi,ecx + rol ebx,23 + add ebx,ecx + ; R2 36 + xor edi,edx + xor edi,ebx + lea eax,[2763975236+ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD [16+esi] + mov edi,ebx + ; R2 37 + lea edx,[1272893353+ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD [28+esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 38 + xor edi,ebx + xor edi,edx + lea ecx,[4139469664+ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD [40+esi] + mov edi,edx + ; R2 39 + lea ebx,[3200236656+ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD [52+esi] + add ebx,edi + mov edi,ecx + rol ebx,23 + add ebx,ecx + ; R2 40 + xor edi,edx + xor edi,ebx + lea eax,[681279174+ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD [esi] + mov edi,ebx + ; R2 41 + lea edx,[3936430074+ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD [12+esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 42 + xor edi,ebx + xor edi,edx + lea ecx,[3572445317+ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD [24+esi] + mov edi,edx + ; R2 43 + lea ebx,[76029189+ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD [36+esi] + add ebx,edi + mov edi,ecx + rol ebx,23 + add ebx,ecx + ; R2 44 + xor edi,edx + xor edi,ebx + lea eax,[3654602809+ebp*1+eax] + add eax,edi + rol eax,4 + mov ebp,DWORD [48+esi] + mov edi,ebx + ; R2 45 + lea edx,[3873151461+ebp*1+edx] + add eax,ebx + xor edi,ecx + xor edi,eax + mov ebp,DWORD [60+esi] + add edx,edi + mov edi,eax + rol edx,11 + add edx,eax + ; R2 46 + xor edi,ebx + xor edi,edx + lea ecx,[530742520+ebp*1+ecx] + add ecx,edi + rol ecx,16 + mov ebp,DWORD [8+esi] + mov edi,edx + ; R2 47 + lea ebx,[3299628645+ebp*1+ebx] + add ecx,edx + xor edi,eax + xor edi,ecx + mov ebp,DWORD [esi] + add ebx,edi + mov edi,-1 + rol ebx,23 + add ebx,ecx + ; + ; R3 section + ; R3 48 + xor edi,edx + or edi,ebx + lea eax,[4096336452+ebp*1+eax] + xor edi,ecx + mov ebp,DWORD [28+esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 49 + or edi,eax + lea edx,[1126891415+ebp*1+edx] + xor edi,ebx + mov ebp,DWORD [56+esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 50 + or edi,edx + lea ecx,[2878612391+ebp*1+ecx] + xor edi,eax + mov ebp,DWORD [20+esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 51 + or edi,ecx + lea ebx,[4237533241+ebp*1+ebx] + xor edi,edx + mov ebp,DWORD [48+esi] + add ebx,edi + mov edi,-1 + rol ebx,21 + xor edi,edx + add ebx,ecx + ; R3 52 + or edi,ebx + lea eax,[1700485571+ebp*1+eax] + xor edi,ecx + mov ebp,DWORD [12+esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 53 + or edi,eax + lea edx,[2399980690+ebp*1+edx] + xor edi,ebx + mov ebp,DWORD [40+esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 54 + or edi,edx + lea ecx,[4293915773+ebp*1+ecx] + xor edi,eax + mov ebp,DWORD [4+esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 55 + or edi,ecx + lea ebx,[2240044497+ebp*1+ebx] + xor edi,edx + mov ebp,DWORD [32+esi] + add ebx,edi + mov edi,-1 + rol ebx,21 + xor edi,edx + add ebx,ecx + ; R3 56 + or edi,ebx + lea eax,[1873313359+ebp*1+eax] + xor edi,ecx + mov ebp,DWORD [60+esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 57 + or edi,eax + lea edx,[4264355552+ebp*1+edx] + xor edi,ebx + mov ebp,DWORD [24+esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 58 + or edi,edx + lea ecx,[2734768916+ebp*1+ecx] + xor edi,eax + mov ebp,DWORD [52+esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 59 + or edi,ecx + lea ebx,[1309151649+ebp*1+ebx] + xor edi,edx + mov ebp,DWORD [16+esi] + add ebx,edi + mov edi,-1 + rol ebx,21 + xor edi,edx + add ebx,ecx + ; R3 60 + or edi,ebx + lea eax,[4149444226+ebp*1+eax] + xor edi,ecx + mov ebp,DWORD [44+esi] + add eax,edi + mov edi,-1 + rol eax,6 + xor edi,ecx + add eax,ebx + ; R3 61 + or edi,eax + lea edx,[3174756917+ebp*1+edx] + xor edi,ebx + mov ebp,DWORD [8+esi] + add edx,edi + mov edi,-1 + rol edx,10 + xor edi,ebx + add edx,eax + ; R3 62 + or edi,edx + lea ecx,[718787259+ebp*1+ecx] + xor edi,eax + mov ebp,DWORD [36+esi] + add ecx,edi + mov edi,-1 + rol ecx,15 + xor edi,eax + add ecx,edx + ; R3 63 + or edi,ecx + lea ebx,[3951481745+ebp*1+ebx] + xor edi,edx + mov ebp,DWORD [24+esp] + add ebx,edi + add esi,64 + rol ebx,21 + mov edi,DWORD [ebp] + add ebx,ecx + add eax,edi + mov edi,DWORD [4+ebp] + add ebx,edi + mov edi,DWORD [8+ebp] + add ecx,edi + mov edi,DWORD [12+ebp] + add edx,edi + mov DWORD [ebp],eax + mov DWORD [4+ebp],ebx + mov edi,DWORD [esp] + mov DWORD [8+ebp],ecx + mov DWORD [12+ebp],edx + cmp edi,esi + jae NEAR L$000start + pop eax + pop ebx + pop ebp + pop edi + pop esi + ret +%else +; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 +ret +%endif diff --git a/gen/crypto/md5-x86_64-apple.S b/gen/crypto/md5-x86_64-apple.S new file mode 100644 index 0000000000..e4c02415e2 --- /dev/null +++ b/gen/crypto/md5-x86_64-apple.S @@ -0,0 +1,690 @@ +// This file is generated from a similarly-named Perl script in the BoringSSL +// source tree. Do not edit by hand. + +#include + +#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) +.text +.p2align 4 + +.globl _md5_block_asm_data_order +.private_extern _md5_block_asm_data_order + +_md5_block_asm_data_order: + +_CET_ENDBR + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r14 + + pushq %r15 + +L$prologue: + + + + + movq %rdi,%rbp + shlq $6,%rdx + leaq (%rsi,%rdx,1),%rdi + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + + + + + + + + cmpq %rdi,%rsi + je L$end + + +L$loop: + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r14d + movl %edx,%r15d + movl 0(%rsi),%r10d + movl %edx,%r11d + xorl %ecx,%r11d + leal -680876936(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 4(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -389564586(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 8(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal 606105819(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 12(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1044525330(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 16(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal -176418897(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 20(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal 1200080426(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 24(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1473231341(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 28(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -45705983(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 32(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1770035416(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 36(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -1958414417(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 40(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -42063(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 44(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1990404162(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 48(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1804603682(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 52(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -40341101(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 56(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1502002290(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 60(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal 1236535329(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 0(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + movl 4(%rsi),%r10d + movl %edx,%r11d + movl %edx,%r12d + notl %r11d + leal -165796510(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 24(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1069501632(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 44(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 643717713(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -373897302(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -701558691(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 40(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal 38016083(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 60(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -660478335(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 16(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -405537848(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 36(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal 568446438(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 56(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1019803690(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 12(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -187363961(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 32(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal 1163531501(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 52(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -1444681467(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 8(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -51403784(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 28(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 1735328473(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 48(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -1926607734(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + movl 20(%rsi),%r10d + movl %ecx,%r11d + leal -378558(%rax,%r10,1),%eax + movl 32(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -2022574463(%rdx,%r10,1),%edx + movl 44(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 1839030562(%rcx,%r10,1),%ecx + movl 56(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -35309556(%rbx,%r10,1),%ebx + movl 4(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -1530992060(%rax,%r10,1),%eax + movl 16(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal 1272893353(%rdx,%r10,1),%edx + movl 28(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -155497632(%rcx,%r10,1),%ecx + movl 40(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -1094730640(%rbx,%r10,1),%ebx + movl 52(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal 681279174(%rax,%r10,1),%eax + movl 0(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -358537222(%rdx,%r10,1),%edx + movl 12(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -722521979(%rcx,%r10,1),%ecx + movl 24(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal 76029189(%rbx,%r10,1),%ebx + movl 36(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -640364487(%rax,%r10,1),%eax + movl 48(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -421815835(%rdx,%r10,1),%edx + movl 60(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 530742520(%rcx,%r10,1),%ecx + movl 8(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -995338651(%rbx,%r10,1),%ebx + movl 0(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + movl 0(%rsi),%r10d + movl $0xffffffff,%r11d + xorl %edx,%r11d + leal -198630844(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 28(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal 1126891415(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 56(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1416354905(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 20(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -57434055(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 48(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1700485571(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 12(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1894986606(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 40(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1051523(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 4(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -2054922799(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 32(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1873313359(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 60(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -30611744(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 24(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1560198380(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 52(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal 1309151649(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 16(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal -145523070(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 44(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1120210379(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 8(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal 718787259(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 36(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -343485551(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 0(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + + addl %r8d,%eax + addl %r9d,%ebx + addl %r14d,%ecx + addl %r15d,%edx + + + addq $64,%rsi + cmpq %rdi,%rsi + jb L$loop + + +L$end: + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + movq (%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r12 + + movq 24(%rsp),%rbx + + movq 32(%rsp),%rbp + + addq $40,%rsp + +L$epilogue: + ret + + +#endif diff --git a/gen/crypto/md5-x86_64-linux.S b/gen/crypto/md5-x86_64-linux.S new file mode 100644 index 0000000000..7b93662a42 --- /dev/null +++ b/gen/crypto/md5-x86_64-linux.S @@ -0,0 +1,695 @@ +// This file is generated from a similarly-named Perl script in the BoringSSL +// source tree. Do not edit by hand. + +#include + +#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) +.text +.align 16 + +.globl md5_block_asm_data_order +.hidden md5_block_asm_data_order +.type md5_block_asm_data_order,@function +md5_block_asm_data_order: +.cfi_startproc +_CET_ENDBR + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset r12,-32 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset r14,-40 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset r15,-48 +.Lprologue: + + + + + movq %rdi,%rbp + shlq $6,%rdx + leaq (%rsi,%rdx,1),%rdi + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + + + + + + + + cmpq %rdi,%rsi + je .Lend + + +.Lloop: + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r14d + movl %edx,%r15d + movl 0(%rsi),%r10d + movl %edx,%r11d + xorl %ecx,%r11d + leal -680876936(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 4(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -389564586(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 8(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal 606105819(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 12(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1044525330(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 16(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal -176418897(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 20(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal 1200080426(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 24(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1473231341(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 28(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -45705983(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 32(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1770035416(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 36(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -1958414417(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 40(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -42063(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 44(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1990404162(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 48(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1804603682(%rax,%r10,1),%eax + andl %ebx,%r11d + xorl %edx,%r11d + movl 52(%rsi),%r10d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -40341101(%rdx,%r10,1),%edx + andl %eax,%r11d + xorl %ecx,%r11d + movl 56(%rsi),%r10d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1502002290(%rcx,%r10,1),%ecx + andl %edx,%r11d + xorl %ebx,%r11d + movl 60(%rsi),%r10d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal 1236535329(%rbx,%r10,1),%ebx + andl %ecx,%r11d + xorl %eax,%r11d + movl 0(%rsi),%r10d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + movl 4(%rsi),%r10d + movl %edx,%r11d + movl %edx,%r12d + notl %r11d + leal -165796510(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 24(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1069501632(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 44(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 643717713(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -373897302(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -701558691(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 40(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal 38016083(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 60(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -660478335(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 16(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -405537848(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 36(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal 568446438(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 56(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -1019803690(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 12(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal -187363961(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 32(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal 1163531501(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 52(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + leal -1444681467(%rax,%r10,1),%eax + andl %ebx,%r12d + andl %ecx,%r11d + movl 8(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + leal -51403784(%rdx,%r10,1),%edx + andl %eax,%r12d + andl %ebx,%r11d + movl 28(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + leal 1735328473(%rcx,%r10,1),%ecx + andl %edx,%r12d + andl %eax,%r11d + movl 48(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + leal -1926607734(%rbx,%r10,1),%ebx + andl %ecx,%r12d + andl %edx,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + movl 20(%rsi),%r10d + movl %ecx,%r11d + leal -378558(%rax,%r10,1),%eax + movl 32(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -2022574463(%rdx,%r10,1),%edx + movl 44(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 1839030562(%rcx,%r10,1),%ecx + movl 56(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -35309556(%rbx,%r10,1),%ebx + movl 4(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -1530992060(%rax,%r10,1),%eax + movl 16(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal 1272893353(%rdx,%r10,1),%edx + movl 28(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -155497632(%rcx,%r10,1),%ecx + movl 40(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -1094730640(%rbx,%r10,1),%ebx + movl 52(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal 681279174(%rax,%r10,1),%eax + movl 0(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -358537222(%rdx,%r10,1),%edx + movl 12(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -722521979(%rcx,%r10,1),%ecx + movl 24(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal 76029189(%rbx,%r10,1),%ebx + movl 36(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -640364487(%rax,%r10,1),%eax + movl 48(%rsi),%r10d + xorl %edx,%r11d + xorl %ebx,%r11d + addl %r11d,%eax + roll $4,%eax + movl %ebx,%r11d + addl %ebx,%eax + leal -421815835(%rdx,%r10,1),%edx + movl 60(%rsi),%r10d + xorl %ecx,%r11d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 530742520(%rcx,%r10,1),%ecx + movl 8(%rsi),%r10d + xorl %ebx,%r11d + xorl %edx,%r11d + addl %r11d,%ecx + roll $16,%ecx + movl %edx,%r11d + addl %edx,%ecx + leal -995338651(%rbx,%r10,1),%ebx + movl 0(%rsi),%r10d + xorl %eax,%r11d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + movl 0(%rsi),%r10d + movl $0xffffffff,%r11d + xorl %edx,%r11d + leal -198630844(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 28(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal 1126891415(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 56(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1416354905(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 20(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -57434055(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 48(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1700485571(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 12(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1894986606(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 40(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1051523(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 4(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -2054922799(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 32(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1873313359(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 60(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -30611744(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 24(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1560198380(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 52(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal 1309151649(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 16(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal -145523070(%rax,%r10,1),%eax + orl %ebx,%r11d + xorl %ecx,%r11d + addl %r11d,%eax + movl 44(%rsi),%r10d + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1120210379(%rdx,%r10,1),%edx + orl %eax,%r11d + xorl %ebx,%r11d + addl %r11d,%edx + movl 8(%rsi),%r10d + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal 718787259(%rcx,%r10,1),%ecx + orl %edx,%r11d + xorl %eax,%r11d + addl %r11d,%ecx + movl 36(%rsi),%r10d + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -343485551(%rbx,%r10,1),%ebx + orl %ecx,%r11d + xorl %edx,%r11d + addl %r11d,%ebx + movl 0(%rsi),%r10d + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + + addl %r8d,%eax + addl %r9d,%ebx + addl %r14d,%ecx + addl %r15d,%edx + + + addq $64,%rsi + cmpq %rdi,%rsi + jb .Lloop + + +.Lend: + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + movq (%rsp),%r15 +.cfi_restore r15 + movq 8(%rsp),%r14 +.cfi_restore r14 + movq 16(%rsp),%r12 +.cfi_restore r12 + movq 24(%rsp),%rbx +.cfi_restore rbx + movq 32(%rsp),%rbp +.cfi_restore rbp + addq $40,%rsp +.cfi_adjust_cfa_offset -40 +.Lepilogue: + ret +.cfi_endproc +.size md5_block_asm_data_order,.-md5_block_asm_data_order +#endif diff --git a/gen/crypto/md5-x86_64-win.asm b/gen/crypto/md5-x86_64-win.asm new file mode 100644 index 0000000000..f6c5b6276b --- /dev/null +++ b/gen/crypto/md5-x86_64-win.asm @@ -0,0 +1,803 @@ +; This file is generated from a similarly-named Perl script in the BoringSSL +; source tree. Do not edit by hand. + +%ifidn __OUTPUT_FORMAT__, win64 +default rel +%define XMMWORD +%define YMMWORD +%define ZMMWORD +%define _CET_ENDBR + +%ifdef BORINGSSL_PREFIX +%include "boringssl_prefix_symbols_nasm.inc" +%endif +section .text code align=64 + +ALIGN 16 + +global md5_block_asm_data_order + +md5_block_asm_data_order: + mov QWORD[8+rsp],rdi ;WIN64 prologue + mov QWORD[16+rsp],rsi + mov rax,rsp +$L$SEH_begin_md5_block_asm_data_order: + mov rdi,rcx + mov rsi,rdx + mov rdx,r8 + + + +_CET_ENDBR + push rbp + + push rbx + + push r12 + + push r14 + + push r15 + +$L$prologue: + + + + + mov rbp,rdi + shl rdx,6 + lea rdi,[rdx*1+rsi] + mov eax,DWORD[rbp] + mov ebx,DWORD[4+rbp] + mov ecx,DWORD[8+rbp] + mov edx,DWORD[12+rbp] + + + + + + + + cmp rsi,rdi + je NEAR $L$end + + +$L$loop: + mov r8d,eax + mov r9d,ebx + mov r14d,ecx + mov r15d,edx + mov r10d,DWORD[rsi] + mov r11d,edx + xor r11d,ecx + lea eax,[((-680876936))+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD[4+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,[((-389564586))+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD[8+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,[606105819+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD[12+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,[((-1044525330))+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD[16+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + xor r11d,ecx + lea eax,[((-176418897))+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD[20+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,[1200080426+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD[24+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,[((-1473231341))+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD[28+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,[((-45705983))+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD[32+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + xor r11d,ecx + lea eax,[1770035416+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD[36+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,[((-1958414417))+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD[40+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,[((-42063))+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD[44+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,[((-1990404162))+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD[48+rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + xor r11d,ecx + lea eax,[1804603682+r10*1+rax] + and r11d,ebx + xor r11d,edx + mov r10d,DWORD[52+rsi] + add eax,r11d + rol eax,7 + mov r11d,ecx + add eax,ebx + xor r11d,ebx + lea edx,[((-40341101))+r10*1+rdx] + and r11d,eax + xor r11d,ecx + mov r10d,DWORD[56+rsi] + add edx,r11d + rol edx,12 + mov r11d,ebx + add edx,eax + xor r11d,eax + lea ecx,[((-1502002290))+r10*1+rcx] + and r11d,edx + xor r11d,ebx + mov r10d,DWORD[60+rsi] + add ecx,r11d + rol ecx,17 + mov r11d,eax + add ecx,edx + xor r11d,edx + lea ebx,[1236535329+r10*1+rbx] + and r11d,ecx + xor r11d,eax + mov r10d,DWORD[rsi] + add ebx,r11d + rol ebx,22 + mov r11d,edx + add ebx,ecx + mov r10d,DWORD[4+rsi] + mov r11d,edx + mov r12d,edx + not r11d + lea eax,[((-165796510))+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD[24+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,[((-1069501632))+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD[44+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,[643717713+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD[rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,[((-373897302))+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD[20+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + not r11d + lea eax,[((-701558691))+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD[40+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,[38016083+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD[60+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,[((-660478335))+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD[16+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,[((-405537848))+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD[36+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + not r11d + lea eax,[568446438+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD[56+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,[((-1019803690))+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD[12+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,[((-187363961))+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD[32+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,[1163531501+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD[52+rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + not r11d + lea eax,[((-1444681467))+r10*1+rax] + and r12d,ebx + and r11d,ecx + mov r10d,DWORD[8+rsi] + or r12d,r11d + mov r11d,ecx + add eax,r12d + mov r12d,ecx + rol eax,5 + add eax,ebx + not r11d + lea edx,[((-51403784))+r10*1+rdx] + and r12d,eax + and r11d,ebx + mov r10d,DWORD[28+rsi] + or r12d,r11d + mov r11d,ebx + add edx,r12d + mov r12d,ebx + rol edx,9 + add edx,eax + not r11d + lea ecx,[1735328473+r10*1+rcx] + and r12d,edx + and r11d,eax + mov r10d,DWORD[48+rsi] + or r12d,r11d + mov r11d,eax + add ecx,r12d + mov r12d,eax + rol ecx,14 + add ecx,edx + not r11d + lea ebx,[((-1926607734))+r10*1+rbx] + and r12d,ecx + and r11d,edx + mov r10d,DWORD[rsi] + or r12d,r11d + mov r11d,edx + add ebx,r12d + mov r12d,edx + rol ebx,20 + add ebx,ecx + mov r10d,DWORD[20+rsi] + mov r11d,ecx + lea eax,[((-378558))+r10*1+rax] + mov r10d,DWORD[32+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,[((-2022574463))+r10*1+rdx] + mov r10d,DWORD[44+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,[1839030562+r10*1+rcx] + mov r10d,DWORD[56+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,[((-35309556))+r10*1+rbx] + mov r10d,DWORD[4+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + lea eax,[((-1530992060))+r10*1+rax] + mov r10d,DWORD[16+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,[1272893353+r10*1+rdx] + mov r10d,DWORD[28+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,[((-155497632))+r10*1+rcx] + mov r10d,DWORD[40+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,[((-1094730640))+r10*1+rbx] + mov r10d,DWORD[52+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + lea eax,[681279174+r10*1+rax] + mov r10d,DWORD[rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,[((-358537222))+r10*1+rdx] + mov r10d,DWORD[12+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,[((-722521979))+r10*1+rcx] + mov r10d,DWORD[24+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,[76029189+r10*1+rbx] + mov r10d,DWORD[36+rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + lea eax,[((-640364487))+r10*1+rax] + mov r10d,DWORD[48+rsi] + xor r11d,edx + xor r11d,ebx + add eax,r11d + rol eax,4 + mov r11d,ebx + add eax,ebx + lea edx,[((-421815835))+r10*1+rdx] + mov r10d,DWORD[60+rsi] + xor r11d,ecx + xor r11d,eax + add edx,r11d + rol edx,11 + mov r11d,eax + add edx,eax + lea ecx,[530742520+r10*1+rcx] + mov r10d,DWORD[8+rsi] + xor r11d,ebx + xor r11d,edx + add ecx,r11d + rol ecx,16 + mov r11d,edx + add ecx,edx + lea ebx,[((-995338651))+r10*1+rbx] + mov r10d,DWORD[rsi] + xor r11d,eax + xor r11d,ecx + add ebx,r11d + rol ebx,23 + mov r11d,ecx + add ebx,ecx + mov r10d,DWORD[rsi] + mov r11d,0xffffffff + xor r11d,edx + lea eax,[((-198630844))+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD[28+rsi] + mov r11d,0xffffffff + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,[1126891415+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD[56+rsi] + mov r11d,0xffffffff + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,[((-1416354905))+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD[20+rsi] + mov r11d,0xffffffff + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,[((-57434055))+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD[48+rsi] + mov r11d,0xffffffff + rol ebx,21 + xor r11d,edx + add ebx,ecx + lea eax,[1700485571+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD[12+rsi] + mov r11d,0xffffffff + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,[((-1894986606))+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD[40+rsi] + mov r11d,0xffffffff + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,[((-1051523))+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD[4+rsi] + mov r11d,0xffffffff + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,[((-2054922799))+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD[32+rsi] + mov r11d,0xffffffff + rol ebx,21 + xor r11d,edx + add ebx,ecx + lea eax,[1873313359+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD[60+rsi] + mov r11d,0xffffffff + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,[((-30611744))+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD[24+rsi] + mov r11d,0xffffffff + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,[((-1560198380))+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD[52+rsi] + mov r11d,0xffffffff + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,[1309151649+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD[16+rsi] + mov r11d,0xffffffff + rol ebx,21 + xor r11d,edx + add ebx,ecx + lea eax,[((-145523070))+r10*1+rax] + or r11d,ebx + xor r11d,ecx + add eax,r11d + mov r10d,DWORD[44+rsi] + mov r11d,0xffffffff + rol eax,6 + xor r11d,ecx + add eax,ebx + lea edx,[((-1120210379))+r10*1+rdx] + or r11d,eax + xor r11d,ebx + add edx,r11d + mov r10d,DWORD[8+rsi] + mov r11d,0xffffffff + rol edx,10 + xor r11d,ebx + add edx,eax + lea ecx,[718787259+r10*1+rcx] + or r11d,edx + xor r11d,eax + add ecx,r11d + mov r10d,DWORD[36+rsi] + mov r11d,0xffffffff + rol ecx,15 + xor r11d,eax + add ecx,edx + lea ebx,[((-343485551))+r10*1+rbx] + or r11d,ecx + xor r11d,edx + add ebx,r11d + mov r10d,DWORD[rsi] + mov r11d,0xffffffff + rol ebx,21 + xor r11d,edx + add ebx,ecx + + add eax,r8d + add ebx,r9d + add ecx,r14d + add edx,r15d + + + add rsi,64 + cmp rsi,rdi + jb NEAR $L$loop + + +$L$end: + mov DWORD[rbp],eax + mov DWORD[4+rbp],ebx + mov DWORD[8+rbp],ecx + mov DWORD[12+rbp],edx + + mov r15,QWORD[rsp] + + mov r14,QWORD[8+rsp] + + mov r12,QWORD[16+rsp] + + mov rbx,QWORD[24+rsp] + + mov rbp,QWORD[32+rsp] + + add rsp,40 + +$L$epilogue: + mov rdi,QWORD[8+rsp] ;WIN64 epilogue + mov rsi,QWORD[16+rsp] + ret + +$L$SEH_end_md5_block_asm_data_order: +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] + + lea r10,[$L$prologue] + cmp rbx,r10 + jb NEAR $L$in_prologue + + mov rax,QWORD[152+r8] + + lea r10,[$L$epilogue] + cmp rbx,r10 + jae NEAR $L$in_prologue + + lea rax,[40+rax] + + mov rbp,QWORD[((-8))+rax] + mov rbx,QWORD[((-16))+rax] + mov r12,QWORD[((-24))+rax] + mov r14,QWORD[((-32))+rax] + mov r15,QWORD[((-40))+rax] + mov QWORD[144+r8],rbx + mov QWORD[160+r8],rbp + mov QWORD[216+r8],r12 + 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 + ret + + +section .pdata rdata align=4 +ALIGN 4 + DD $L$SEH_begin_md5_block_asm_data_order wrt ..imagebase + DD $L$SEH_end_md5_block_asm_data_order wrt ..imagebase + DD $L$SEH_info_md5_block_asm_data_order wrt ..imagebase + +section .xdata rdata align=8 +ALIGN 8 +$L$SEH_info_md5_block_asm_data_order: + DB 9,0,0,0 + DD se_handler wrt ..imagebase +%else +; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 +ret +%endif diff --git a/gen/sources.bzl b/gen/sources.bzl index ecb7fb45b7..07df6905b2 100644 --- a/gen/sources.bzl +++ b/gen/sources.bzl @@ -71,7 +71,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", "crypto/fipsmodule/modes/ctr.c.inc", @@ -136,10 +135,6 @@ bcm_sources_asm = [ "gen/bcm/ghashv8-armv8-apple.S", "gen/bcm/ghashv8-armv8-linux.S", "gen/bcm/ghashv8-armv8-win.S", - "gen/bcm/md5-586-apple.S", - "gen/bcm/md5-586-linux.S", - "gen/bcm/md5-x86_64-apple.S", - "gen/bcm/md5-x86_64-linux.S", "gen/bcm/p256-armv8-asm-apple.S", "gen/bcm/p256-armv8-asm-linux.S", "gen/bcm/p256-armv8-asm-win.S", @@ -206,8 +201,6 @@ bcm_sources_nasm = [ "gen/bcm/ghash-ssse3-x86_64-win.asm", "gen/bcm/ghash-x86-win.asm", "gen/bcm/ghash-x86_64-win.asm", - "gen/bcm/md5-586-win.asm", - "gen/bcm/md5-x86_64-win.asm", "gen/bcm/p256-x86_64-asm-win.asm", "gen/bcm/p256_beeu-x86_64-asm-win.asm", "gen/bcm/rdrand-x86_64-win.asm", @@ -366,6 +359,7 @@ crypto_sources = [ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/md4/md4.c", + "crypto/md5/md5.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", @@ -614,7 +608,6 @@ crypto_internal_headers = [ "crypto/fipsmodule/ec/p256-nistz.h", "crypto/fipsmodule/ec/p256_table.h", "crypto/fipsmodule/ecdsa/internal.h", - "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", @@ -626,6 +619,7 @@ crypto_internal_headers = [ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/md5/internal.h", "crypto/mldsa/internal.h", "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", @@ -674,6 +668,10 @@ crypto_sources_asm = [ "gen/crypto/chacha20_poly1305_armv8-win.S", "gen/crypto/chacha20_poly1305_x86_64-apple.S", "gen/crypto/chacha20_poly1305_x86_64-linux.S", + "gen/crypto/md5-586-apple.S", + "gen/crypto/md5-586-linux.S", + "gen/crypto/md5-x86_64-apple.S", + "gen/crypto/md5-x86_64-linux.S", "third_party/fiat/asm/fiat_curve25519_adx_mul.S", "third_party/fiat/asm/fiat_curve25519_adx_square.S", ] @@ -683,6 +681,8 @@ crypto_sources_nasm = [ "gen/crypto/chacha-x86-win.asm", "gen/crypto/chacha-x86_64-win.asm", "gen/crypto/chacha20_poly1305_x86_64-win.asm", + "gen/crypto/md5-586-win.asm", + "gen/crypto/md5-x86_64-win.asm", ] crypto_test_sources = [ @@ -722,7 +722,6 @@ crypto_test_sources = [ "crypto/fipsmodule/ec/p256_test.cc", "crypto/fipsmodule/ecdsa/ecdsa_test.cc", "crypto/fipsmodule/hkdf/hkdf_test.cc", - "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", @@ -734,6 +733,7 @@ crypto_test_sources = [ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/md5/md5_test.cc", "crypto/mldsa/mldsa_test.cc", "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", diff --git a/gen/sources.cmake b/gen/sources.cmake index c974c316a8..c994f60b43 100644 --- a/gen/sources.cmake +++ b/gen/sources.cmake @@ -75,7 +75,6 @@ set( crypto/fipsmodule/ecdsa/ecdsa.c.inc crypto/fipsmodule/hkdf/hkdf.c.inc crypto/fipsmodule/hmac/hmac.c.inc - crypto/fipsmodule/md5/md5.c.inc crypto/fipsmodule/modes/cbc.c.inc crypto/fipsmodule/modes/cfb.c.inc crypto/fipsmodule/modes/ctr.c.inc @@ -142,10 +141,6 @@ set( gen/bcm/ghashv8-armv8-apple.S gen/bcm/ghashv8-armv8-linux.S gen/bcm/ghashv8-armv8-win.S - gen/bcm/md5-586-apple.S - gen/bcm/md5-586-linux.S - gen/bcm/md5-x86_64-apple.S - gen/bcm/md5-x86_64-linux.S gen/bcm/p256-armv8-asm-apple.S gen/bcm/p256-armv8-asm-linux.S gen/bcm/p256-armv8-asm-win.S @@ -214,8 +209,6 @@ set( gen/bcm/ghash-ssse3-x86_64-win.asm gen/bcm/ghash-x86-win.asm gen/bcm/ghash-x86_64-win.asm - gen/bcm/md5-586-win.asm - gen/bcm/md5-x86_64-win.asm gen/bcm/p256-x86_64-asm-win.asm gen/bcm/p256_beeu-x86_64-asm-win.asm gen/bcm/rdrand-x86_64-win.asm @@ -380,6 +373,7 @@ set( crypto/kyber/kyber.c crypto/lhash/lhash.c crypto/md4/md4.c + crypto/md5/md5.c crypto/mem.c crypto/mldsa/mldsa.c crypto/mlkem/mlkem.cc @@ -632,7 +626,6 @@ set( crypto/fipsmodule/ec/p256-nistz.h crypto/fipsmodule/ec/p256_table.h crypto/fipsmodule/ecdsa/internal.h - crypto/fipsmodule/md5/internal.h crypto/fipsmodule/modes/internal.h crypto/fipsmodule/rand/internal.h crypto/fipsmodule/rsa/internal.h @@ -644,6 +637,7 @@ set( crypto/keccak/internal.h crypto/kyber/internal.h crypto/lhash/internal.h + crypto/md5/internal.h crypto/mldsa/internal.h crypto/mlkem/internal.h crypto/obj/obj_dat.h @@ -694,6 +688,10 @@ set( gen/crypto/chacha20_poly1305_armv8-win.S gen/crypto/chacha20_poly1305_x86_64-apple.S gen/crypto/chacha20_poly1305_x86_64-linux.S + gen/crypto/md5-586-apple.S + gen/crypto/md5-586-linux.S + gen/crypto/md5-x86_64-apple.S + gen/crypto/md5-x86_64-linux.S third_party/fiat/asm/fiat_curve25519_adx_mul.S third_party/fiat/asm/fiat_curve25519_adx_square.S ) @@ -705,6 +703,8 @@ set( gen/crypto/chacha-x86-win.asm gen/crypto/chacha-x86_64-win.asm gen/crypto/chacha20_poly1305_x86_64-win.asm + gen/crypto/md5-586-win.asm + gen/crypto/md5-x86_64-win.asm ) set( @@ -746,7 +746,6 @@ set( crypto/fipsmodule/ec/p256_test.cc crypto/fipsmodule/ecdsa/ecdsa_test.cc crypto/fipsmodule/hkdf/hkdf_test.cc - crypto/fipsmodule/md5/md5_test.cc crypto/fipsmodule/modes/gcm_test.cc crypto/fipsmodule/rand/ctrdrbg_test.cc crypto/fipsmodule/service_indicator/service_indicator_test.cc @@ -758,6 +757,7 @@ set( crypto/keccak/keccak_test.cc crypto/kyber/kyber_test.cc crypto/lhash/lhash_test.cc + crypto/md5/md5_test.cc crypto/mldsa/mldsa_test.cc crypto/mlkem/mlkem_test.cc crypto/obj/obj_test.cc diff --git a/gen/sources.gni b/gen/sources.gni index 0eaa36f0f1..34d4acf243 100644 --- a/gen/sources.gni +++ b/gen/sources.gni @@ -71,7 +71,6 @@ bcm_internal_headers = [ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", "crypto/fipsmodule/modes/ctr.c.inc", @@ -136,10 +135,6 @@ bcm_sources_asm = [ "gen/bcm/ghashv8-armv8-apple.S", "gen/bcm/ghashv8-armv8-linux.S", "gen/bcm/ghashv8-armv8-win.S", - "gen/bcm/md5-586-apple.S", - "gen/bcm/md5-586-linux.S", - "gen/bcm/md5-x86_64-apple.S", - "gen/bcm/md5-x86_64-linux.S", "gen/bcm/p256-armv8-asm-apple.S", "gen/bcm/p256-armv8-asm-linux.S", "gen/bcm/p256-armv8-asm-win.S", @@ -206,8 +201,6 @@ bcm_sources_nasm = [ "gen/bcm/ghash-ssse3-x86_64-win.asm", "gen/bcm/ghash-x86-win.asm", "gen/bcm/ghash-x86_64-win.asm", - "gen/bcm/md5-586-win.asm", - "gen/bcm/md5-x86_64-win.asm", "gen/bcm/p256-x86_64-asm-win.asm", "gen/bcm/p256_beeu-x86_64-asm-win.asm", "gen/bcm/rdrand-x86_64-win.asm", @@ -366,6 +359,7 @@ crypto_sources = [ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/md4/md4.c", + "crypto/md5/md5.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", @@ -614,7 +608,6 @@ crypto_internal_headers = [ "crypto/fipsmodule/ec/p256-nistz.h", "crypto/fipsmodule/ec/p256_table.h", "crypto/fipsmodule/ecdsa/internal.h", - "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", @@ -626,6 +619,7 @@ crypto_internal_headers = [ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/md5/internal.h", "crypto/mldsa/internal.h", "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", @@ -674,6 +668,10 @@ crypto_sources_asm = [ "gen/crypto/chacha20_poly1305_armv8-win.S", "gen/crypto/chacha20_poly1305_x86_64-apple.S", "gen/crypto/chacha20_poly1305_x86_64-linux.S", + "gen/crypto/md5-586-apple.S", + "gen/crypto/md5-586-linux.S", + "gen/crypto/md5-x86_64-apple.S", + "gen/crypto/md5-x86_64-linux.S", "third_party/fiat/asm/fiat_curve25519_adx_mul.S", "third_party/fiat/asm/fiat_curve25519_adx_square.S", ] @@ -683,6 +681,8 @@ crypto_sources_nasm = [ "gen/crypto/chacha-x86-win.asm", "gen/crypto/chacha-x86_64-win.asm", "gen/crypto/chacha20_poly1305_x86_64-win.asm", + "gen/crypto/md5-586-win.asm", + "gen/crypto/md5-x86_64-win.asm", ] crypto_test_sources = [ @@ -722,7 +722,6 @@ crypto_test_sources = [ "crypto/fipsmodule/ec/p256_test.cc", "crypto/fipsmodule/ecdsa/ecdsa_test.cc", "crypto/fipsmodule/hkdf/hkdf_test.cc", - "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", @@ -734,6 +733,7 @@ crypto_test_sources = [ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/md5/md5_test.cc", "crypto/mldsa/mldsa_test.cc", "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", diff --git a/gen/sources.json b/gen/sources.json index f589fc2526..a818f8f425 100644 --- a/gen/sources.json +++ b/gen/sources.json @@ -56,7 +56,6 @@ "crypto/fipsmodule/ecdsa/ecdsa.c.inc", "crypto/fipsmodule/hkdf/hkdf.c.inc", "crypto/fipsmodule/hmac/hmac.c.inc", - "crypto/fipsmodule/md5/md5.c.inc", "crypto/fipsmodule/modes/cbc.c.inc", "crypto/fipsmodule/modes/cfb.c.inc", "crypto/fipsmodule/modes/ctr.c.inc", @@ -120,10 +119,6 @@ "gen/bcm/ghashv8-armv8-apple.S", "gen/bcm/ghashv8-armv8-linux.S", "gen/bcm/ghashv8-armv8-win.S", - "gen/bcm/md5-586-apple.S", - "gen/bcm/md5-586-linux.S", - "gen/bcm/md5-x86_64-apple.S", - "gen/bcm/md5-x86_64-linux.S", "gen/bcm/p256-armv8-asm-apple.S", "gen/bcm/p256-armv8-asm-linux.S", "gen/bcm/p256-armv8-asm-win.S", @@ -189,8 +184,6 @@ "gen/bcm/ghash-ssse3-x86_64-win.asm", "gen/bcm/ghash-x86-win.asm", "gen/bcm/ghash-x86_64-win.asm", - "gen/bcm/md5-586-win.asm", - "gen/bcm/md5-x86_64-win.asm", "gen/bcm/p256-x86_64-asm-win.asm", "gen/bcm/p256_beeu-x86_64-asm-win.asm", "gen/bcm/rdrand-x86_64-win.asm", @@ -350,6 +343,7 @@ "crypto/kyber/kyber.c", "crypto/lhash/lhash.c", "crypto/md4/md4.c", + "crypto/md5/md5.c", "crypto/mem.c", "crypto/mldsa/mldsa.c", "crypto/mlkem/mlkem.cc", @@ -596,7 +590,6 @@ "crypto/fipsmodule/ec/p256-nistz.h", "crypto/fipsmodule/ec/p256_table.h", "crypto/fipsmodule/ecdsa/internal.h", - "crypto/fipsmodule/md5/internal.h", "crypto/fipsmodule/modes/internal.h", "crypto/fipsmodule/rand/internal.h", "crypto/fipsmodule/rsa/internal.h", @@ -608,6 +601,7 @@ "crypto/keccak/internal.h", "crypto/kyber/internal.h", "crypto/lhash/internal.h", + "crypto/md5/internal.h", "crypto/mldsa/internal.h", "crypto/mlkem/internal.h", "crypto/obj/obj_dat.h", @@ -655,6 +649,10 @@ "gen/crypto/chacha20_poly1305_armv8-win.S", "gen/crypto/chacha20_poly1305_x86_64-apple.S", "gen/crypto/chacha20_poly1305_x86_64-linux.S", + "gen/crypto/md5-586-apple.S", + "gen/crypto/md5-586-linux.S", + "gen/crypto/md5-x86_64-apple.S", + "gen/crypto/md5-x86_64-linux.S", "third_party/fiat/asm/fiat_curve25519_adx_mul.S", "third_party/fiat/asm/fiat_curve25519_adx_square.S" ], @@ -662,7 +660,9 @@ "gen/crypto/aes128gcmsiv-x86_64-win.asm", "gen/crypto/chacha-x86-win.asm", "gen/crypto/chacha-x86_64-win.asm", - "gen/crypto/chacha20_poly1305_x86_64-win.asm" + "gen/crypto/chacha20_poly1305_x86_64-win.asm", + "gen/crypto/md5-586-win.asm", + "gen/crypto/md5-x86_64-win.asm" ] }, "crypto_test": { @@ -703,7 +703,6 @@ "crypto/fipsmodule/ec/p256_test.cc", "crypto/fipsmodule/ecdsa/ecdsa_test.cc", "crypto/fipsmodule/hkdf/hkdf_test.cc", - "crypto/fipsmodule/md5/md5_test.cc", "crypto/fipsmodule/modes/gcm_test.cc", "crypto/fipsmodule/rand/ctrdrbg_test.cc", "crypto/fipsmodule/service_indicator/service_indicator_test.cc", @@ -715,6 +714,7 @@ "crypto/keccak/keccak_test.cc", "crypto/kyber/kyber_test.cc", "crypto/lhash/lhash_test.cc", + "crypto/md5/md5_test.cc", "crypto/mldsa/mldsa_test.cc", "crypto/mlkem/mlkem_test.cc", "crypto/obj/obj_test.cc", From 01e1ae3687e391a076fe470471f096db1f6d6bb4 Mon Sep 17 00:00:00 2001 From: Bob Beck Date: Fri, 6 Sep 2024 22:43:23 +0000 Subject: [PATCH 79/81] Remove the bcm md5 assembler files. pregenerate does not ensure that now unused files are gone. crbug.com/365169741 Change-Id: I3876fe60576c27dac9571e0473d807fd8c86fb80 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/71007 Reviewed-by: David Benjamin Auto-Submit: Bob Beck Commit-Queue: Bob Beck --- gen/bcm/md5-586-apple.S | 684 ------------------------------- gen/bcm/md5-586-linux.S | 686 ------------------------------- gen/bcm/md5-586-win.asm | 694 -------------------------------- gen/bcm/md5-x86_64-apple.S | 690 ------------------------------- gen/bcm/md5-x86_64-linux.S | 695 -------------------------------- gen/bcm/md5-x86_64-win.asm | 803 ------------------------------------- 6 files changed, 4252 deletions(-) delete mode 100644 gen/bcm/md5-586-apple.S delete mode 100644 gen/bcm/md5-586-linux.S delete mode 100644 gen/bcm/md5-586-win.asm delete mode 100644 gen/bcm/md5-x86_64-apple.S delete mode 100644 gen/bcm/md5-x86_64-linux.S delete mode 100644 gen/bcm/md5-x86_64-win.asm diff --git a/gen/bcm/md5-586-apple.S b/gen/bcm/md5-586-apple.S deleted file mode 100644 index 986d590097..0000000000 --- a/gen/bcm/md5-586-apple.S +++ /dev/null @@ -1,684 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#include - -#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) -.text -.globl _md5_block_asm_data_order -.private_extern _md5_block_asm_data_order -.align 4 -_md5_block_asm_data_order: -L_md5_block_asm_data_order_begin: - pushl %esi - pushl %edi - movl 12(%esp),%edi - movl 16(%esp),%esi - movl 20(%esp),%ecx - pushl %ebp - shll $6,%ecx - pushl %ebx - addl %esi,%ecx - subl $64,%ecx - movl (%edi),%eax - pushl %ecx - movl 4(%edi),%ebx - movl 8(%edi),%ecx - movl 12(%edi),%edx -L000start: - - # R0 section - movl %ecx,%edi - movl (%esi),%ebp - # R0 0 - xorl %edx,%edi - andl %ebx,%edi - leal 3614090360(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 4(%esi),%ebp - addl %ebx,%eax - # R0 1 - xorl %ecx,%edi - andl %eax,%edi - leal 3905402710(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 8(%esi),%ebp - addl %eax,%edx - # R0 2 - xorl %ebx,%edi - andl %edx,%edi - leal 606105819(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 12(%esi),%ebp - addl %edx,%ecx - # R0 3 - xorl %eax,%edi - andl %ecx,%edi - leal 3250441966(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 16(%esi),%ebp - addl %ecx,%ebx - # R0 4 - xorl %edx,%edi - andl %ebx,%edi - leal 4118548399(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 20(%esi),%ebp - addl %ebx,%eax - # R0 5 - xorl %ecx,%edi - andl %eax,%edi - leal 1200080426(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 24(%esi),%ebp - addl %eax,%edx - # R0 6 - xorl %ebx,%edi - andl %edx,%edi - leal 2821735955(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 28(%esi),%ebp - addl %edx,%ecx - # R0 7 - xorl %eax,%edi - andl %ecx,%edi - leal 4249261313(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 32(%esi),%ebp - addl %ecx,%ebx - # R0 8 - xorl %edx,%edi - andl %ebx,%edi - leal 1770035416(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 36(%esi),%ebp - addl %ebx,%eax - # R0 9 - xorl %ecx,%edi - andl %eax,%edi - leal 2336552879(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 40(%esi),%ebp - addl %eax,%edx - # R0 10 - xorl %ebx,%edi - andl %edx,%edi - leal 4294925233(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 44(%esi),%ebp - addl %edx,%ecx - # R0 11 - xorl %eax,%edi - andl %ecx,%edi - leal 2304563134(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 48(%esi),%ebp - addl %ecx,%ebx - # R0 12 - xorl %edx,%edi - andl %ebx,%edi - leal 1804603682(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 52(%esi),%ebp - addl %ebx,%eax - # R0 13 - xorl %ecx,%edi - andl %eax,%edi - leal 4254626195(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 56(%esi),%ebp - addl %eax,%edx - # R0 14 - xorl %ebx,%edi - andl %edx,%edi - leal 2792965006(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 60(%esi),%ebp - addl %edx,%ecx - # R0 15 - xorl %eax,%edi - andl %ecx,%edi - leal 1236535329(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 4(%esi),%ebp - addl %ecx,%ebx - - # R1 section - # R1 16 - leal 4129170786(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 24(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - # R1 17 - leal 3225465664(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 44(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - # R1 18 - leal 643717713(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl (%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - # R1 19 - leal 3921069994(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 20(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - # R1 20 - leal 3593408605(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 40(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - # R1 21 - leal 38016083(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 60(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - # R1 22 - leal 3634488961(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl 16(%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - # R1 23 - leal 3889429448(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 36(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - # R1 24 - leal 568446438(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 56(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - # R1 25 - leal 3275163606(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 12(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - # R1 26 - leal 4107603335(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl 32(%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - # R1 27 - leal 1163531501(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 52(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - # R1 28 - leal 2850285829(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 8(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - # R1 29 - leal 4243563512(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 28(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - # R1 30 - leal 1735328473(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl 48(%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - # R1 31 - leal 2368359562(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 20(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - - # R2 section - # R2 32 - xorl %edx,%edi - xorl %ebx,%edi - leal 4294588738(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl 32(%esi),%ebp - movl %ebx,%edi - # R2 33 - leal 2272392833(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 44(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - # R2 34 - xorl %ebx,%edi - xorl %edx,%edi - leal 1839030562(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 56(%esi),%ebp - movl %edx,%edi - # R2 35 - leal 4259657740(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl 4(%esi),%ebp - addl %edi,%ebx - movl %ecx,%edi - roll $23,%ebx - addl %ecx,%ebx - # R2 36 - xorl %edx,%edi - xorl %ebx,%edi - leal 2763975236(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl 16(%esi),%ebp - movl %ebx,%edi - # R2 37 - leal 1272893353(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 28(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - # R2 38 - xorl %ebx,%edi - xorl %edx,%edi - leal 4139469664(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 40(%esi),%ebp - movl %edx,%edi - # R2 39 - leal 3200236656(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl 52(%esi),%ebp - addl %edi,%ebx - movl %ecx,%edi - roll $23,%ebx - addl %ecx,%ebx - # R2 40 - xorl %edx,%edi - xorl %ebx,%edi - leal 681279174(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl (%esi),%ebp - movl %ebx,%edi - # R2 41 - leal 3936430074(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 12(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - # R2 42 - xorl %ebx,%edi - xorl %edx,%edi - leal 3572445317(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 24(%esi),%ebp - movl %edx,%edi - # R2 43 - leal 76029189(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl 36(%esi),%ebp - addl %edi,%ebx - movl %ecx,%edi - roll $23,%ebx - addl %ecx,%ebx - # R2 44 - xorl %edx,%edi - xorl %ebx,%edi - leal 3654602809(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl 48(%esi),%ebp - movl %ebx,%edi - # R2 45 - leal 3873151461(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 60(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - # R2 46 - xorl %ebx,%edi - xorl %edx,%edi - leal 530742520(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 8(%esi),%ebp - movl %edx,%edi - # R2 47 - leal 3299628645(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl (%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $23,%ebx - addl %ecx,%ebx - - # R3 section - # R3 48 - xorl %edx,%edi - orl %ebx,%edi - leal 4096336452(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 28(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - # R3 49 - orl %eax,%edi - leal 1126891415(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 56(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - # R3 50 - orl %edx,%edi - leal 2878612391(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 20(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - # R3 51 - orl %ecx,%edi - leal 4237533241(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 48(%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $21,%ebx - xorl %edx,%edi - addl %ecx,%ebx - # R3 52 - orl %ebx,%edi - leal 1700485571(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 12(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - # R3 53 - orl %eax,%edi - leal 2399980690(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 40(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - # R3 54 - orl %edx,%edi - leal 4293915773(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 4(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - # R3 55 - orl %ecx,%edi - leal 2240044497(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 32(%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $21,%ebx - xorl %edx,%edi - addl %ecx,%ebx - # R3 56 - orl %ebx,%edi - leal 1873313359(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 60(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - # R3 57 - orl %eax,%edi - leal 4264355552(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 24(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - # R3 58 - orl %edx,%edi - leal 2734768916(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 52(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - # R3 59 - orl %ecx,%edi - leal 1309151649(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 16(%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $21,%ebx - xorl %edx,%edi - addl %ecx,%ebx - # R3 60 - orl %ebx,%edi - leal 4149444226(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 44(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - # R3 61 - orl %eax,%edi - leal 3174756917(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 8(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - # R3 62 - orl %edx,%edi - leal 718787259(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 36(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - # R3 63 - orl %ecx,%edi - leal 3951481745(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 24(%esp),%ebp - addl %edi,%ebx - addl $64,%esi - roll $21,%ebx - movl (%ebp),%edi - addl %ecx,%ebx - addl %edi,%eax - movl 4(%ebp),%edi - addl %edi,%ebx - movl 8(%ebp),%edi - addl %edi,%ecx - movl 12(%ebp),%edi - addl %edi,%edx - movl %eax,(%ebp) - movl %ebx,4(%ebp) - movl (%esp),%edi - movl %ecx,8(%ebp) - movl %edx,12(%ebp) - cmpl %esi,%edi - jae L000start - popl %eax - popl %ebx - popl %ebp - popl %edi - popl %esi - ret -#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) diff --git a/gen/bcm/md5-586-linux.S b/gen/bcm/md5-586-linux.S deleted file mode 100644 index a297f2bc14..0000000000 --- a/gen/bcm/md5-586-linux.S +++ /dev/null @@ -1,686 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#include - -#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) -.text -.globl md5_block_asm_data_order -.hidden md5_block_asm_data_order -.type md5_block_asm_data_order,@function -.align 16 -md5_block_asm_data_order: -.L_md5_block_asm_data_order_begin: - pushl %esi - pushl %edi - movl 12(%esp),%edi - movl 16(%esp),%esi - movl 20(%esp),%ecx - pushl %ebp - shll $6,%ecx - pushl %ebx - addl %esi,%ecx - subl $64,%ecx - movl (%edi),%eax - pushl %ecx - movl 4(%edi),%ebx - movl 8(%edi),%ecx - movl 12(%edi),%edx -.L000start: - - - movl %ecx,%edi - movl (%esi),%ebp - - xorl %edx,%edi - andl %ebx,%edi - leal 3614090360(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 4(%esi),%ebp - addl %ebx,%eax - - xorl %ecx,%edi - andl %eax,%edi - leal 3905402710(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 8(%esi),%ebp - addl %eax,%edx - - xorl %ebx,%edi - andl %edx,%edi - leal 606105819(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 12(%esi),%ebp - addl %edx,%ecx - - xorl %eax,%edi - andl %ecx,%edi - leal 3250441966(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 16(%esi),%ebp - addl %ecx,%ebx - - xorl %edx,%edi - andl %ebx,%edi - leal 4118548399(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 20(%esi),%ebp - addl %ebx,%eax - - xorl %ecx,%edi - andl %eax,%edi - leal 1200080426(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 24(%esi),%ebp - addl %eax,%edx - - xorl %ebx,%edi - andl %edx,%edi - leal 2821735955(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 28(%esi),%ebp - addl %edx,%ecx - - xorl %eax,%edi - andl %ecx,%edi - leal 4249261313(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 32(%esi),%ebp - addl %ecx,%ebx - - xorl %edx,%edi - andl %ebx,%edi - leal 1770035416(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 36(%esi),%ebp - addl %ebx,%eax - - xorl %ecx,%edi - andl %eax,%edi - leal 2336552879(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 40(%esi),%ebp - addl %eax,%edx - - xorl %ebx,%edi - andl %edx,%edi - leal 4294925233(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 44(%esi),%ebp - addl %edx,%ecx - - xorl %eax,%edi - andl %ecx,%edi - leal 2304563134(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 48(%esi),%ebp - addl %ecx,%ebx - - xorl %edx,%edi - andl %ebx,%edi - leal 1804603682(%eax,%ebp,1),%eax - xorl %edx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $7,%eax - movl 52(%esi),%ebp - addl %ebx,%eax - - xorl %ecx,%edi - andl %eax,%edi - leal 4254626195(%edx,%ebp,1),%edx - xorl %ecx,%edi - addl %edi,%edx - movl %eax,%edi - roll $12,%edx - movl 56(%esi),%ebp - addl %eax,%edx - - xorl %ebx,%edi - andl %edx,%edi - leal 2792965006(%ecx,%ebp,1),%ecx - xorl %ebx,%edi - addl %edi,%ecx - movl %edx,%edi - roll $17,%ecx - movl 60(%esi),%ebp - addl %edx,%ecx - - xorl %eax,%edi - andl %ecx,%edi - leal 1236535329(%ebx,%ebp,1),%ebx - xorl %eax,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $22,%ebx - movl 4(%esi),%ebp - addl %ecx,%ebx - - - - leal 4129170786(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 24(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - - leal 3225465664(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 44(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - - leal 643717713(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl (%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - - leal 3921069994(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 20(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - - leal 3593408605(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 40(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - - leal 38016083(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 60(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - - leal 3634488961(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl 16(%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - - leal 3889429448(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 36(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - - leal 568446438(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 56(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - - leal 3275163606(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 12(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - - leal 4107603335(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl 32(%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - - leal 1163531501(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 52(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - - leal 2850285829(%eax,%ebp,1),%eax - xorl %ebx,%edi - andl %edx,%edi - movl 8(%esi),%ebp - xorl %ecx,%edi - addl %edi,%eax - movl %ebx,%edi - roll $5,%eax - addl %ebx,%eax - - leal 4243563512(%edx,%ebp,1),%edx - xorl %eax,%edi - andl %ecx,%edi - movl 28(%esi),%ebp - xorl %ebx,%edi - addl %edi,%edx - movl %eax,%edi - roll $9,%edx - addl %eax,%edx - - leal 1735328473(%ecx,%ebp,1),%ecx - xorl %edx,%edi - andl %ebx,%edi - movl 48(%esi),%ebp - xorl %eax,%edi - addl %edi,%ecx - movl %edx,%edi - roll $14,%ecx - addl %edx,%ecx - - leal 2368359562(%ebx,%ebp,1),%ebx - xorl %ecx,%edi - andl %eax,%edi - movl 20(%esi),%ebp - xorl %edx,%edi - addl %edi,%ebx - movl %ecx,%edi - roll $20,%ebx - addl %ecx,%ebx - - - - xorl %edx,%edi - xorl %ebx,%edi - leal 4294588738(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl 32(%esi),%ebp - movl %ebx,%edi - - leal 2272392833(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 44(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - - xorl %ebx,%edi - xorl %edx,%edi - leal 1839030562(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 56(%esi),%ebp - movl %edx,%edi - - leal 4259657740(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl 4(%esi),%ebp - addl %edi,%ebx - movl %ecx,%edi - roll $23,%ebx - addl %ecx,%ebx - - xorl %edx,%edi - xorl %ebx,%edi - leal 2763975236(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl 16(%esi),%ebp - movl %ebx,%edi - - leal 1272893353(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 28(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - - xorl %ebx,%edi - xorl %edx,%edi - leal 4139469664(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 40(%esi),%ebp - movl %edx,%edi - - leal 3200236656(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl 52(%esi),%ebp - addl %edi,%ebx - movl %ecx,%edi - roll $23,%ebx - addl %ecx,%ebx - - xorl %edx,%edi - xorl %ebx,%edi - leal 681279174(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl (%esi),%ebp - movl %ebx,%edi - - leal 3936430074(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 12(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - - xorl %ebx,%edi - xorl %edx,%edi - leal 3572445317(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 24(%esi),%ebp - movl %edx,%edi - - leal 76029189(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl 36(%esi),%ebp - addl %edi,%ebx - movl %ecx,%edi - roll $23,%ebx - addl %ecx,%ebx - - xorl %edx,%edi - xorl %ebx,%edi - leal 3654602809(%eax,%ebp,1),%eax - addl %edi,%eax - roll $4,%eax - movl 48(%esi),%ebp - movl %ebx,%edi - - leal 3873151461(%edx,%ebp,1),%edx - addl %ebx,%eax - xorl %ecx,%edi - xorl %eax,%edi - movl 60(%esi),%ebp - addl %edi,%edx - movl %eax,%edi - roll $11,%edx - addl %eax,%edx - - xorl %ebx,%edi - xorl %edx,%edi - leal 530742520(%ecx,%ebp,1),%ecx - addl %edi,%ecx - roll $16,%ecx - movl 8(%esi),%ebp - movl %edx,%edi - - leal 3299628645(%ebx,%ebp,1),%ebx - addl %edx,%ecx - xorl %eax,%edi - xorl %ecx,%edi - movl (%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $23,%ebx - addl %ecx,%ebx - - - - xorl %edx,%edi - orl %ebx,%edi - leal 4096336452(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 28(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - - orl %eax,%edi - leal 1126891415(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 56(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - - orl %edx,%edi - leal 2878612391(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 20(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - - orl %ecx,%edi - leal 4237533241(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 48(%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $21,%ebx - xorl %edx,%edi - addl %ecx,%ebx - - orl %ebx,%edi - leal 1700485571(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 12(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - - orl %eax,%edi - leal 2399980690(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 40(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - - orl %edx,%edi - leal 4293915773(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 4(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - - orl %ecx,%edi - leal 2240044497(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 32(%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $21,%ebx - xorl %edx,%edi - addl %ecx,%ebx - - orl %ebx,%edi - leal 1873313359(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 60(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - - orl %eax,%edi - leal 4264355552(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 24(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - - orl %edx,%edi - leal 2734768916(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 52(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - - orl %ecx,%edi - leal 1309151649(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 16(%esi),%ebp - addl %edi,%ebx - movl $-1,%edi - roll $21,%ebx - xorl %edx,%edi - addl %ecx,%ebx - - orl %ebx,%edi - leal 4149444226(%eax,%ebp,1),%eax - xorl %ecx,%edi - movl 44(%esi),%ebp - addl %edi,%eax - movl $-1,%edi - roll $6,%eax - xorl %ecx,%edi - addl %ebx,%eax - - orl %eax,%edi - leal 3174756917(%edx,%ebp,1),%edx - xorl %ebx,%edi - movl 8(%esi),%ebp - addl %edi,%edx - movl $-1,%edi - roll $10,%edx - xorl %ebx,%edi - addl %eax,%edx - - orl %edx,%edi - leal 718787259(%ecx,%ebp,1),%ecx - xorl %eax,%edi - movl 36(%esi),%ebp - addl %edi,%ecx - movl $-1,%edi - roll $15,%ecx - xorl %eax,%edi - addl %edx,%ecx - - orl %ecx,%edi - leal 3951481745(%ebx,%ebp,1),%ebx - xorl %edx,%edi - movl 24(%esp),%ebp - addl %edi,%ebx - addl $64,%esi - roll $21,%ebx - movl (%ebp),%edi - addl %ecx,%ebx - addl %edi,%eax - movl 4(%ebp),%edi - addl %edi,%ebx - movl 8(%ebp),%edi - addl %edi,%ecx - movl 12(%ebp),%edi - addl %edi,%edx - movl %eax,(%ebp) - movl %ebx,4(%ebp) - movl (%esp),%edi - movl %ecx,8(%ebp) - movl %edx,12(%ebp) - cmpl %esi,%edi - jae .L000start - popl %eax - popl %ebx - popl %ebp - popl %edi - popl %esi - ret -.size md5_block_asm_data_order,.-.L_md5_block_asm_data_order_begin -#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) diff --git a/gen/bcm/md5-586-win.asm b/gen/bcm/md5-586-win.asm deleted file mode 100644 index 25592b8d46..0000000000 --- a/gen/bcm/md5-586-win.asm +++ /dev/null @@ -1,694 +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__, win32 -%ifidn __OUTPUT_FORMAT__,obj -section code use32 class=code align=64 -%elifidn __OUTPUT_FORMAT__,win32 -$@feat.00 equ 1 -section .text code align=64 -%else -section .text code -%endif -global _md5_block_asm_data_order -align 16 -_md5_block_asm_data_order: -L$_md5_block_asm_data_order_begin: - push esi - push edi - mov edi,DWORD [12+esp] - mov esi,DWORD [16+esp] - mov ecx,DWORD [20+esp] - push ebp - shl ecx,6 - push ebx - add ecx,esi - sub ecx,64 - mov eax,DWORD [edi] - push ecx - mov ebx,DWORD [4+edi] - mov ecx,DWORD [8+edi] - mov edx,DWORD [12+edi] -L$000start: - ; - ; R0 section - mov edi,ecx - mov ebp,DWORD [esi] - ; R0 0 - xor edi,edx - and edi,ebx - lea eax,[3614090360+ebp*1+eax] - xor edi,edx - add eax,edi - mov edi,ebx - rol eax,7 - mov ebp,DWORD [4+esi] - add eax,ebx - ; R0 1 - xor edi,ecx - and edi,eax - lea edx,[3905402710+ebp*1+edx] - xor edi,ecx - add edx,edi - mov edi,eax - rol edx,12 - mov ebp,DWORD [8+esi] - add edx,eax - ; R0 2 - xor edi,ebx - and edi,edx - lea ecx,[606105819+ebp*1+ecx] - xor edi,ebx - add ecx,edi - mov edi,edx - rol ecx,17 - mov ebp,DWORD [12+esi] - add ecx,edx - ; R0 3 - xor edi,eax - and edi,ecx - lea ebx,[3250441966+ebp*1+ebx] - xor edi,eax - add ebx,edi - mov edi,ecx - rol ebx,22 - mov ebp,DWORD [16+esi] - add ebx,ecx - ; R0 4 - xor edi,edx - and edi,ebx - lea eax,[4118548399+ebp*1+eax] - xor edi,edx - add eax,edi - mov edi,ebx - rol eax,7 - mov ebp,DWORD [20+esi] - add eax,ebx - ; R0 5 - xor edi,ecx - and edi,eax - lea edx,[1200080426+ebp*1+edx] - xor edi,ecx - add edx,edi - mov edi,eax - rol edx,12 - mov ebp,DWORD [24+esi] - add edx,eax - ; R0 6 - xor edi,ebx - and edi,edx - lea ecx,[2821735955+ebp*1+ecx] - xor edi,ebx - add ecx,edi - mov edi,edx - rol ecx,17 - mov ebp,DWORD [28+esi] - add ecx,edx - ; R0 7 - xor edi,eax - and edi,ecx - lea ebx,[4249261313+ebp*1+ebx] - xor edi,eax - add ebx,edi - mov edi,ecx - rol ebx,22 - mov ebp,DWORD [32+esi] - add ebx,ecx - ; R0 8 - xor edi,edx - and edi,ebx - lea eax,[1770035416+ebp*1+eax] - xor edi,edx - add eax,edi - mov edi,ebx - rol eax,7 - mov ebp,DWORD [36+esi] - add eax,ebx - ; R0 9 - xor edi,ecx - and edi,eax - lea edx,[2336552879+ebp*1+edx] - xor edi,ecx - add edx,edi - mov edi,eax - rol edx,12 - mov ebp,DWORD [40+esi] - add edx,eax - ; R0 10 - xor edi,ebx - and edi,edx - lea ecx,[4294925233+ebp*1+ecx] - xor edi,ebx - add ecx,edi - mov edi,edx - rol ecx,17 - mov ebp,DWORD [44+esi] - add ecx,edx - ; R0 11 - xor edi,eax - and edi,ecx - lea ebx,[2304563134+ebp*1+ebx] - xor edi,eax - add ebx,edi - mov edi,ecx - rol ebx,22 - mov ebp,DWORD [48+esi] - add ebx,ecx - ; R0 12 - xor edi,edx - and edi,ebx - lea eax,[1804603682+ebp*1+eax] - xor edi,edx - add eax,edi - mov edi,ebx - rol eax,7 - mov ebp,DWORD [52+esi] - add eax,ebx - ; R0 13 - xor edi,ecx - and edi,eax - lea edx,[4254626195+ebp*1+edx] - xor edi,ecx - add edx,edi - mov edi,eax - rol edx,12 - mov ebp,DWORD [56+esi] - add edx,eax - ; R0 14 - xor edi,ebx - and edi,edx - lea ecx,[2792965006+ebp*1+ecx] - xor edi,ebx - add ecx,edi - mov edi,edx - rol ecx,17 - mov ebp,DWORD [60+esi] - add ecx,edx - ; R0 15 - xor edi,eax - and edi,ecx - lea ebx,[1236535329+ebp*1+ebx] - xor edi,eax - add ebx,edi - mov edi,ecx - rol ebx,22 - mov ebp,DWORD [4+esi] - add ebx,ecx - ; - ; R1 section - ; R1 16 - lea eax,[4129170786+ebp*1+eax] - xor edi,ebx - and edi,edx - mov ebp,DWORD [24+esi] - xor edi,ecx - add eax,edi - mov edi,ebx - rol eax,5 - add eax,ebx - ; R1 17 - lea edx,[3225465664+ebp*1+edx] - xor edi,eax - and edi,ecx - mov ebp,DWORD [44+esi] - xor edi,ebx - add edx,edi - mov edi,eax - rol edx,9 - add edx,eax - ; R1 18 - lea ecx,[643717713+ebp*1+ecx] - xor edi,edx - and edi,ebx - mov ebp,DWORD [esi] - xor edi,eax - add ecx,edi - mov edi,edx - rol ecx,14 - add ecx,edx - ; R1 19 - lea ebx,[3921069994+ebp*1+ebx] - xor edi,ecx - and edi,eax - mov ebp,DWORD [20+esi] - xor edi,edx - add ebx,edi - mov edi,ecx - rol ebx,20 - add ebx,ecx - ; R1 20 - lea eax,[3593408605+ebp*1+eax] - xor edi,ebx - and edi,edx - mov ebp,DWORD [40+esi] - xor edi,ecx - add eax,edi - mov edi,ebx - rol eax,5 - add eax,ebx - ; R1 21 - lea edx,[38016083+ebp*1+edx] - xor edi,eax - and edi,ecx - mov ebp,DWORD [60+esi] - xor edi,ebx - add edx,edi - mov edi,eax - rol edx,9 - add edx,eax - ; R1 22 - lea ecx,[3634488961+ebp*1+ecx] - xor edi,edx - and edi,ebx - mov ebp,DWORD [16+esi] - xor edi,eax - add ecx,edi - mov edi,edx - rol ecx,14 - add ecx,edx - ; R1 23 - lea ebx,[3889429448+ebp*1+ebx] - xor edi,ecx - and edi,eax - mov ebp,DWORD [36+esi] - xor edi,edx - add ebx,edi - mov edi,ecx - rol ebx,20 - add ebx,ecx - ; R1 24 - lea eax,[568446438+ebp*1+eax] - xor edi,ebx - and edi,edx - mov ebp,DWORD [56+esi] - xor edi,ecx - add eax,edi - mov edi,ebx - rol eax,5 - add eax,ebx - ; R1 25 - lea edx,[3275163606+ebp*1+edx] - xor edi,eax - and edi,ecx - mov ebp,DWORD [12+esi] - xor edi,ebx - add edx,edi - mov edi,eax - rol edx,9 - add edx,eax - ; R1 26 - lea ecx,[4107603335+ebp*1+ecx] - xor edi,edx - and edi,ebx - mov ebp,DWORD [32+esi] - xor edi,eax - add ecx,edi - mov edi,edx - rol ecx,14 - add ecx,edx - ; R1 27 - lea ebx,[1163531501+ebp*1+ebx] - xor edi,ecx - and edi,eax - mov ebp,DWORD [52+esi] - xor edi,edx - add ebx,edi - mov edi,ecx - rol ebx,20 - add ebx,ecx - ; R1 28 - lea eax,[2850285829+ebp*1+eax] - xor edi,ebx - and edi,edx - mov ebp,DWORD [8+esi] - xor edi,ecx - add eax,edi - mov edi,ebx - rol eax,5 - add eax,ebx - ; R1 29 - lea edx,[4243563512+ebp*1+edx] - xor edi,eax - and edi,ecx - mov ebp,DWORD [28+esi] - xor edi,ebx - add edx,edi - mov edi,eax - rol edx,9 - add edx,eax - ; R1 30 - lea ecx,[1735328473+ebp*1+ecx] - xor edi,edx - and edi,ebx - mov ebp,DWORD [48+esi] - xor edi,eax - add ecx,edi - mov edi,edx - rol ecx,14 - add ecx,edx - ; R1 31 - lea ebx,[2368359562+ebp*1+ebx] - xor edi,ecx - and edi,eax - mov ebp,DWORD [20+esi] - xor edi,edx - add ebx,edi - mov edi,ecx - rol ebx,20 - add ebx,ecx - ; - ; R2 section - ; R2 32 - xor edi,edx - xor edi,ebx - lea eax,[4294588738+ebp*1+eax] - add eax,edi - rol eax,4 - mov ebp,DWORD [32+esi] - mov edi,ebx - ; R2 33 - lea edx,[2272392833+ebp*1+edx] - add eax,ebx - xor edi,ecx - xor edi,eax - mov ebp,DWORD [44+esi] - add edx,edi - mov edi,eax - rol edx,11 - add edx,eax - ; R2 34 - xor edi,ebx - xor edi,edx - lea ecx,[1839030562+ebp*1+ecx] - add ecx,edi - rol ecx,16 - mov ebp,DWORD [56+esi] - mov edi,edx - ; R2 35 - lea ebx,[4259657740+ebp*1+ebx] - add ecx,edx - xor edi,eax - xor edi,ecx - mov ebp,DWORD [4+esi] - add ebx,edi - mov edi,ecx - rol ebx,23 - add ebx,ecx - ; R2 36 - xor edi,edx - xor edi,ebx - lea eax,[2763975236+ebp*1+eax] - add eax,edi - rol eax,4 - mov ebp,DWORD [16+esi] - mov edi,ebx - ; R2 37 - lea edx,[1272893353+ebp*1+edx] - add eax,ebx - xor edi,ecx - xor edi,eax - mov ebp,DWORD [28+esi] - add edx,edi - mov edi,eax - rol edx,11 - add edx,eax - ; R2 38 - xor edi,ebx - xor edi,edx - lea ecx,[4139469664+ebp*1+ecx] - add ecx,edi - rol ecx,16 - mov ebp,DWORD [40+esi] - mov edi,edx - ; R2 39 - lea ebx,[3200236656+ebp*1+ebx] - add ecx,edx - xor edi,eax - xor edi,ecx - mov ebp,DWORD [52+esi] - add ebx,edi - mov edi,ecx - rol ebx,23 - add ebx,ecx - ; R2 40 - xor edi,edx - xor edi,ebx - lea eax,[681279174+ebp*1+eax] - add eax,edi - rol eax,4 - mov ebp,DWORD [esi] - mov edi,ebx - ; R2 41 - lea edx,[3936430074+ebp*1+edx] - add eax,ebx - xor edi,ecx - xor edi,eax - mov ebp,DWORD [12+esi] - add edx,edi - mov edi,eax - rol edx,11 - add edx,eax - ; R2 42 - xor edi,ebx - xor edi,edx - lea ecx,[3572445317+ebp*1+ecx] - add ecx,edi - rol ecx,16 - mov ebp,DWORD [24+esi] - mov edi,edx - ; R2 43 - lea ebx,[76029189+ebp*1+ebx] - add ecx,edx - xor edi,eax - xor edi,ecx - mov ebp,DWORD [36+esi] - add ebx,edi - mov edi,ecx - rol ebx,23 - add ebx,ecx - ; R2 44 - xor edi,edx - xor edi,ebx - lea eax,[3654602809+ebp*1+eax] - add eax,edi - rol eax,4 - mov ebp,DWORD [48+esi] - mov edi,ebx - ; R2 45 - lea edx,[3873151461+ebp*1+edx] - add eax,ebx - xor edi,ecx - xor edi,eax - mov ebp,DWORD [60+esi] - add edx,edi - mov edi,eax - rol edx,11 - add edx,eax - ; R2 46 - xor edi,ebx - xor edi,edx - lea ecx,[530742520+ebp*1+ecx] - add ecx,edi - rol ecx,16 - mov ebp,DWORD [8+esi] - mov edi,edx - ; R2 47 - lea ebx,[3299628645+ebp*1+ebx] - add ecx,edx - xor edi,eax - xor edi,ecx - mov ebp,DWORD [esi] - add ebx,edi - mov edi,-1 - rol ebx,23 - add ebx,ecx - ; - ; R3 section - ; R3 48 - xor edi,edx - or edi,ebx - lea eax,[4096336452+ebp*1+eax] - xor edi,ecx - mov ebp,DWORD [28+esi] - add eax,edi - mov edi,-1 - rol eax,6 - xor edi,ecx - add eax,ebx - ; R3 49 - or edi,eax - lea edx,[1126891415+ebp*1+edx] - xor edi,ebx - mov ebp,DWORD [56+esi] - add edx,edi - mov edi,-1 - rol edx,10 - xor edi,ebx - add edx,eax - ; R3 50 - or edi,edx - lea ecx,[2878612391+ebp*1+ecx] - xor edi,eax - mov ebp,DWORD [20+esi] - add ecx,edi - mov edi,-1 - rol ecx,15 - xor edi,eax - add ecx,edx - ; R3 51 - or edi,ecx - lea ebx,[4237533241+ebp*1+ebx] - xor edi,edx - mov ebp,DWORD [48+esi] - add ebx,edi - mov edi,-1 - rol ebx,21 - xor edi,edx - add ebx,ecx - ; R3 52 - or edi,ebx - lea eax,[1700485571+ebp*1+eax] - xor edi,ecx - mov ebp,DWORD [12+esi] - add eax,edi - mov edi,-1 - rol eax,6 - xor edi,ecx - add eax,ebx - ; R3 53 - or edi,eax - lea edx,[2399980690+ebp*1+edx] - xor edi,ebx - mov ebp,DWORD [40+esi] - add edx,edi - mov edi,-1 - rol edx,10 - xor edi,ebx - add edx,eax - ; R3 54 - or edi,edx - lea ecx,[4293915773+ebp*1+ecx] - xor edi,eax - mov ebp,DWORD [4+esi] - add ecx,edi - mov edi,-1 - rol ecx,15 - xor edi,eax - add ecx,edx - ; R3 55 - or edi,ecx - lea ebx,[2240044497+ebp*1+ebx] - xor edi,edx - mov ebp,DWORD [32+esi] - add ebx,edi - mov edi,-1 - rol ebx,21 - xor edi,edx - add ebx,ecx - ; R3 56 - or edi,ebx - lea eax,[1873313359+ebp*1+eax] - xor edi,ecx - mov ebp,DWORD [60+esi] - add eax,edi - mov edi,-1 - rol eax,6 - xor edi,ecx - add eax,ebx - ; R3 57 - or edi,eax - lea edx,[4264355552+ebp*1+edx] - xor edi,ebx - mov ebp,DWORD [24+esi] - add edx,edi - mov edi,-1 - rol edx,10 - xor edi,ebx - add edx,eax - ; R3 58 - or edi,edx - lea ecx,[2734768916+ebp*1+ecx] - xor edi,eax - mov ebp,DWORD [52+esi] - add ecx,edi - mov edi,-1 - rol ecx,15 - xor edi,eax - add ecx,edx - ; R3 59 - or edi,ecx - lea ebx,[1309151649+ebp*1+ebx] - xor edi,edx - mov ebp,DWORD [16+esi] - add ebx,edi - mov edi,-1 - rol ebx,21 - xor edi,edx - add ebx,ecx - ; R3 60 - or edi,ebx - lea eax,[4149444226+ebp*1+eax] - xor edi,ecx - mov ebp,DWORD [44+esi] - add eax,edi - mov edi,-1 - rol eax,6 - xor edi,ecx - add eax,ebx - ; R3 61 - or edi,eax - lea edx,[3174756917+ebp*1+edx] - xor edi,ebx - mov ebp,DWORD [8+esi] - add edx,edi - mov edi,-1 - rol edx,10 - xor edi,ebx - add edx,eax - ; R3 62 - or edi,edx - lea ecx,[718787259+ebp*1+ecx] - xor edi,eax - mov ebp,DWORD [36+esi] - add ecx,edi - mov edi,-1 - rol ecx,15 - xor edi,eax - add ecx,edx - ; R3 63 - or edi,ecx - lea ebx,[3951481745+ebp*1+ebx] - xor edi,edx - mov ebp,DWORD [24+esp] - add ebx,edi - add esi,64 - rol ebx,21 - mov edi,DWORD [ebp] - add ebx,ecx - add eax,edi - mov edi,DWORD [4+ebp] - add ebx,edi - mov edi,DWORD [8+ebp] - add ecx,edi - mov edi,DWORD [12+ebp] - add edx,edi - mov DWORD [ebp],eax - mov DWORD [4+ebp],ebx - mov edi,DWORD [esp] - mov DWORD [8+ebp],ecx - mov DWORD [12+ebp],edx - cmp edi,esi - jae NEAR L$000start - pop eax - pop ebx - pop ebp - pop edi - pop esi - ret -%else -; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 -ret -%endif diff --git a/gen/bcm/md5-x86_64-apple.S b/gen/bcm/md5-x86_64-apple.S deleted file mode 100644 index e4c02415e2..0000000000 --- a/gen/bcm/md5-x86_64-apple.S +++ /dev/null @@ -1,690 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#include - -#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__) -.text -.p2align 4 - -.globl _md5_block_asm_data_order -.private_extern _md5_block_asm_data_order - -_md5_block_asm_data_order: - -_CET_ENDBR - pushq %rbp - - pushq %rbx - - pushq %r12 - - pushq %r14 - - pushq %r15 - -L$prologue: - - - - - movq %rdi,%rbp - shlq $6,%rdx - leaq (%rsi,%rdx,1),%rdi - movl 0(%rbp),%eax - movl 4(%rbp),%ebx - movl 8(%rbp),%ecx - movl 12(%rbp),%edx - - - - - - - - cmpq %rdi,%rsi - je L$end - - -L$loop: - movl %eax,%r8d - movl %ebx,%r9d - movl %ecx,%r14d - movl %edx,%r15d - movl 0(%rsi),%r10d - movl %edx,%r11d - xorl %ecx,%r11d - leal -680876936(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 4(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal -389564586(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 8(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal 606105819(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 12(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal -1044525330(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 16(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - xorl %ecx,%r11d - leal -176418897(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 20(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal 1200080426(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 24(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal -1473231341(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 28(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal -45705983(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 32(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - xorl %ecx,%r11d - leal 1770035416(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 36(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal -1958414417(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 40(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal -42063(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 44(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal -1990404162(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 48(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - xorl %ecx,%r11d - leal 1804603682(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 52(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal -40341101(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 56(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal -1502002290(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 60(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal 1236535329(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 0(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - movl 4(%rsi),%r10d - movl %edx,%r11d - movl %edx,%r12d - notl %r11d - leal -165796510(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 24(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal -1069501632(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 44(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal 643717713(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 0(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal -373897302(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 20(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - notl %r11d - leal -701558691(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 40(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal 38016083(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 60(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal -660478335(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 16(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal -405537848(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 36(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - notl %r11d - leal 568446438(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 56(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal -1019803690(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 12(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal -187363961(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 32(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal 1163531501(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 52(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - notl %r11d - leal -1444681467(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 8(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal -51403784(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 28(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal 1735328473(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 48(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal -1926607734(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 0(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - movl 20(%rsi),%r10d - movl %ecx,%r11d - leal -378558(%rax,%r10,1),%eax - movl 32(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal -2022574463(%rdx,%r10,1),%edx - movl 44(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal 1839030562(%rcx,%r10,1),%ecx - movl 56(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal -35309556(%rbx,%r10,1),%ebx - movl 4(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - leal -1530992060(%rax,%r10,1),%eax - movl 16(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal 1272893353(%rdx,%r10,1),%edx - movl 28(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal -155497632(%rcx,%r10,1),%ecx - movl 40(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal -1094730640(%rbx,%r10,1),%ebx - movl 52(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - leal 681279174(%rax,%r10,1),%eax - movl 0(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal -358537222(%rdx,%r10,1),%edx - movl 12(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal -722521979(%rcx,%r10,1),%ecx - movl 24(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal 76029189(%rbx,%r10,1),%ebx - movl 36(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - leal -640364487(%rax,%r10,1),%eax - movl 48(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal -421815835(%rdx,%r10,1),%edx - movl 60(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal 530742520(%rcx,%r10,1),%ecx - movl 8(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal -995338651(%rbx,%r10,1),%ebx - movl 0(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - movl 0(%rsi),%r10d - movl $0xffffffff,%r11d - xorl %edx,%r11d - leal -198630844(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 28(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal 1126891415(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 56(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal -1416354905(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 20(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal -57434055(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 48(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - leal 1700485571(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 12(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal -1894986606(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 40(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal -1051523(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 4(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal -2054922799(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 32(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - leal 1873313359(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 60(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal -30611744(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 24(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal -1560198380(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 52(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal 1309151649(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 16(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - leal -145523070(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 44(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal -1120210379(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 8(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal 718787259(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 36(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal -343485551(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 0(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - - addl %r8d,%eax - addl %r9d,%ebx - addl %r14d,%ecx - addl %r15d,%edx - - - addq $64,%rsi - cmpq %rdi,%rsi - jb L$loop - - -L$end: - movl %eax,0(%rbp) - movl %ebx,4(%rbp) - movl %ecx,8(%rbp) - movl %edx,12(%rbp) - - movq (%rsp),%r15 - - movq 8(%rsp),%r14 - - movq 16(%rsp),%r12 - - movq 24(%rsp),%rbx - - movq 32(%rsp),%rbp - - addq $40,%rsp - -L$epilogue: - ret - - -#endif diff --git a/gen/bcm/md5-x86_64-linux.S b/gen/bcm/md5-x86_64-linux.S deleted file mode 100644 index 7b93662a42..0000000000 --- a/gen/bcm/md5-x86_64-linux.S +++ /dev/null @@ -1,695 +0,0 @@ -// This file is generated from a similarly-named Perl script in the BoringSSL -// source tree. Do not edit by hand. - -#include - -#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) -.text -.align 16 - -.globl md5_block_asm_data_order -.hidden md5_block_asm_data_order -.type md5_block_asm_data_order,@function -md5_block_asm_data_order: -.cfi_startproc -_CET_ENDBR - pushq %rbp -.cfi_adjust_cfa_offset 8 -.cfi_offset rbp,-16 - pushq %rbx -.cfi_adjust_cfa_offset 8 -.cfi_offset rbx,-24 - pushq %r12 -.cfi_adjust_cfa_offset 8 -.cfi_offset r12,-32 - pushq %r14 -.cfi_adjust_cfa_offset 8 -.cfi_offset r14,-40 - pushq %r15 -.cfi_adjust_cfa_offset 8 -.cfi_offset r15,-48 -.Lprologue: - - - - - movq %rdi,%rbp - shlq $6,%rdx - leaq (%rsi,%rdx,1),%rdi - movl 0(%rbp),%eax - movl 4(%rbp),%ebx - movl 8(%rbp),%ecx - movl 12(%rbp),%edx - - - - - - - - cmpq %rdi,%rsi - je .Lend - - -.Lloop: - movl %eax,%r8d - movl %ebx,%r9d - movl %ecx,%r14d - movl %edx,%r15d - movl 0(%rsi),%r10d - movl %edx,%r11d - xorl %ecx,%r11d - leal -680876936(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 4(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal -389564586(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 8(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal 606105819(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 12(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal -1044525330(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 16(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - xorl %ecx,%r11d - leal -176418897(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 20(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal 1200080426(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 24(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal -1473231341(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 28(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal -45705983(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 32(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - xorl %ecx,%r11d - leal 1770035416(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 36(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal -1958414417(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 40(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal -42063(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 44(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal -1990404162(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 48(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - xorl %ecx,%r11d - leal 1804603682(%rax,%r10,1),%eax - andl %ebx,%r11d - xorl %edx,%r11d - movl 52(%rsi),%r10d - addl %r11d,%eax - roll $7,%eax - movl %ecx,%r11d - addl %ebx,%eax - xorl %ebx,%r11d - leal -40341101(%rdx,%r10,1),%edx - andl %eax,%r11d - xorl %ecx,%r11d - movl 56(%rsi),%r10d - addl %r11d,%edx - roll $12,%edx - movl %ebx,%r11d - addl %eax,%edx - xorl %eax,%r11d - leal -1502002290(%rcx,%r10,1),%ecx - andl %edx,%r11d - xorl %ebx,%r11d - movl 60(%rsi),%r10d - addl %r11d,%ecx - roll $17,%ecx - movl %eax,%r11d - addl %edx,%ecx - xorl %edx,%r11d - leal 1236535329(%rbx,%r10,1),%ebx - andl %ecx,%r11d - xorl %eax,%r11d - movl 0(%rsi),%r10d - addl %r11d,%ebx - roll $22,%ebx - movl %edx,%r11d - addl %ecx,%ebx - movl 4(%rsi),%r10d - movl %edx,%r11d - movl %edx,%r12d - notl %r11d - leal -165796510(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 24(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal -1069501632(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 44(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal 643717713(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 0(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal -373897302(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 20(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - notl %r11d - leal -701558691(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 40(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal 38016083(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 60(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal -660478335(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 16(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal -405537848(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 36(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - notl %r11d - leal 568446438(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 56(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal -1019803690(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 12(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal -187363961(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 32(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal 1163531501(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 52(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - notl %r11d - leal -1444681467(%rax,%r10,1),%eax - andl %ebx,%r12d - andl %ecx,%r11d - movl 8(%rsi),%r10d - orl %r11d,%r12d - movl %ecx,%r11d - addl %r12d,%eax - movl %ecx,%r12d - roll $5,%eax - addl %ebx,%eax - notl %r11d - leal -51403784(%rdx,%r10,1),%edx - andl %eax,%r12d - andl %ebx,%r11d - movl 28(%rsi),%r10d - orl %r11d,%r12d - movl %ebx,%r11d - addl %r12d,%edx - movl %ebx,%r12d - roll $9,%edx - addl %eax,%edx - notl %r11d - leal 1735328473(%rcx,%r10,1),%ecx - andl %edx,%r12d - andl %eax,%r11d - movl 48(%rsi),%r10d - orl %r11d,%r12d - movl %eax,%r11d - addl %r12d,%ecx - movl %eax,%r12d - roll $14,%ecx - addl %edx,%ecx - notl %r11d - leal -1926607734(%rbx,%r10,1),%ebx - andl %ecx,%r12d - andl %edx,%r11d - movl 0(%rsi),%r10d - orl %r11d,%r12d - movl %edx,%r11d - addl %r12d,%ebx - movl %edx,%r12d - roll $20,%ebx - addl %ecx,%ebx - movl 20(%rsi),%r10d - movl %ecx,%r11d - leal -378558(%rax,%r10,1),%eax - movl 32(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal -2022574463(%rdx,%r10,1),%edx - movl 44(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal 1839030562(%rcx,%r10,1),%ecx - movl 56(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal -35309556(%rbx,%r10,1),%ebx - movl 4(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - leal -1530992060(%rax,%r10,1),%eax - movl 16(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal 1272893353(%rdx,%r10,1),%edx - movl 28(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal -155497632(%rcx,%r10,1),%ecx - movl 40(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal -1094730640(%rbx,%r10,1),%ebx - movl 52(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - leal 681279174(%rax,%r10,1),%eax - movl 0(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal -358537222(%rdx,%r10,1),%edx - movl 12(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal -722521979(%rcx,%r10,1),%ecx - movl 24(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal 76029189(%rbx,%r10,1),%ebx - movl 36(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - leal -640364487(%rax,%r10,1),%eax - movl 48(%rsi),%r10d - xorl %edx,%r11d - xorl %ebx,%r11d - addl %r11d,%eax - roll $4,%eax - movl %ebx,%r11d - addl %ebx,%eax - leal -421815835(%rdx,%r10,1),%edx - movl 60(%rsi),%r10d - xorl %ecx,%r11d - xorl %eax,%r11d - addl %r11d,%edx - roll $11,%edx - movl %eax,%r11d - addl %eax,%edx - leal 530742520(%rcx,%r10,1),%ecx - movl 8(%rsi),%r10d - xorl %ebx,%r11d - xorl %edx,%r11d - addl %r11d,%ecx - roll $16,%ecx - movl %edx,%r11d - addl %edx,%ecx - leal -995338651(%rbx,%r10,1),%ebx - movl 0(%rsi),%r10d - xorl %eax,%r11d - xorl %ecx,%r11d - addl %r11d,%ebx - roll $23,%ebx - movl %ecx,%r11d - addl %ecx,%ebx - movl 0(%rsi),%r10d - movl $0xffffffff,%r11d - xorl %edx,%r11d - leal -198630844(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 28(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal 1126891415(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 56(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal -1416354905(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 20(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal -57434055(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 48(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - leal 1700485571(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 12(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal -1894986606(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 40(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal -1051523(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 4(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal -2054922799(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 32(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - leal 1873313359(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 60(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal -30611744(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 24(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal -1560198380(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 52(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal 1309151649(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 16(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - leal -145523070(%rax,%r10,1),%eax - orl %ebx,%r11d - xorl %ecx,%r11d - addl %r11d,%eax - movl 44(%rsi),%r10d - movl $0xffffffff,%r11d - roll $6,%eax - xorl %ecx,%r11d - addl %ebx,%eax - leal -1120210379(%rdx,%r10,1),%edx - orl %eax,%r11d - xorl %ebx,%r11d - addl %r11d,%edx - movl 8(%rsi),%r10d - movl $0xffffffff,%r11d - roll $10,%edx - xorl %ebx,%r11d - addl %eax,%edx - leal 718787259(%rcx,%r10,1),%ecx - orl %edx,%r11d - xorl %eax,%r11d - addl %r11d,%ecx - movl 36(%rsi),%r10d - movl $0xffffffff,%r11d - roll $15,%ecx - xorl %eax,%r11d - addl %edx,%ecx - leal -343485551(%rbx,%r10,1),%ebx - orl %ecx,%r11d - xorl %edx,%r11d - addl %r11d,%ebx - movl 0(%rsi),%r10d - movl $0xffffffff,%r11d - roll $21,%ebx - xorl %edx,%r11d - addl %ecx,%ebx - - addl %r8d,%eax - addl %r9d,%ebx - addl %r14d,%ecx - addl %r15d,%edx - - - addq $64,%rsi - cmpq %rdi,%rsi - jb .Lloop - - -.Lend: - movl %eax,0(%rbp) - movl %ebx,4(%rbp) - movl %ecx,8(%rbp) - movl %edx,12(%rbp) - - movq (%rsp),%r15 -.cfi_restore r15 - movq 8(%rsp),%r14 -.cfi_restore r14 - movq 16(%rsp),%r12 -.cfi_restore r12 - movq 24(%rsp),%rbx -.cfi_restore rbx - movq 32(%rsp),%rbp -.cfi_restore rbp - addq $40,%rsp -.cfi_adjust_cfa_offset -40 -.Lepilogue: - ret -.cfi_endproc -.size md5_block_asm_data_order,.-md5_block_asm_data_order -#endif diff --git a/gen/bcm/md5-x86_64-win.asm b/gen/bcm/md5-x86_64-win.asm deleted file mode 100644 index f6c5b6276b..0000000000 --- a/gen/bcm/md5-x86_64-win.asm +++ /dev/null @@ -1,803 +0,0 @@ -; This file is generated from a similarly-named Perl script in the BoringSSL -; source tree. Do not edit by hand. - -%ifidn __OUTPUT_FORMAT__, win64 -default rel -%define XMMWORD -%define YMMWORD -%define ZMMWORD -%define _CET_ENDBR - -%ifdef BORINGSSL_PREFIX -%include "boringssl_prefix_symbols_nasm.inc" -%endif -section .text code align=64 - -ALIGN 16 - -global md5_block_asm_data_order - -md5_block_asm_data_order: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_md5_block_asm_data_order: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - -_CET_ENDBR - push rbp - - push rbx - - push r12 - - push r14 - - push r15 - -$L$prologue: - - - - - mov rbp,rdi - shl rdx,6 - lea rdi,[rdx*1+rsi] - mov eax,DWORD[rbp] - mov ebx,DWORD[4+rbp] - mov ecx,DWORD[8+rbp] - mov edx,DWORD[12+rbp] - - - - - - - - cmp rsi,rdi - je NEAR $L$end - - -$L$loop: - mov r8d,eax - mov r9d,ebx - mov r14d,ecx - mov r15d,edx - mov r10d,DWORD[rsi] - mov r11d,edx - xor r11d,ecx - lea eax,[((-680876936))+r10*1+rax] - and r11d,ebx - xor r11d,edx - mov r10d,DWORD[4+rsi] - add eax,r11d - rol eax,7 - mov r11d,ecx - add eax,ebx - xor r11d,ebx - lea edx,[((-389564586))+r10*1+rdx] - and r11d,eax - xor r11d,ecx - mov r10d,DWORD[8+rsi] - add edx,r11d - rol edx,12 - mov r11d,ebx - add edx,eax - xor r11d,eax - lea ecx,[606105819+r10*1+rcx] - and r11d,edx - xor r11d,ebx - mov r10d,DWORD[12+rsi] - add ecx,r11d - rol ecx,17 - mov r11d,eax - add ecx,edx - xor r11d,edx - lea ebx,[((-1044525330))+r10*1+rbx] - and r11d,ecx - xor r11d,eax - mov r10d,DWORD[16+rsi] - add ebx,r11d - rol ebx,22 - mov r11d,edx - add ebx,ecx - xor r11d,ecx - lea eax,[((-176418897))+r10*1+rax] - and r11d,ebx - xor r11d,edx - mov r10d,DWORD[20+rsi] - add eax,r11d - rol eax,7 - mov r11d,ecx - add eax,ebx - xor r11d,ebx - lea edx,[1200080426+r10*1+rdx] - and r11d,eax - xor r11d,ecx - mov r10d,DWORD[24+rsi] - add edx,r11d - rol edx,12 - mov r11d,ebx - add edx,eax - xor r11d,eax - lea ecx,[((-1473231341))+r10*1+rcx] - and r11d,edx - xor r11d,ebx - mov r10d,DWORD[28+rsi] - add ecx,r11d - rol ecx,17 - mov r11d,eax - add ecx,edx - xor r11d,edx - lea ebx,[((-45705983))+r10*1+rbx] - and r11d,ecx - xor r11d,eax - mov r10d,DWORD[32+rsi] - add ebx,r11d - rol ebx,22 - mov r11d,edx - add ebx,ecx - xor r11d,ecx - lea eax,[1770035416+r10*1+rax] - and r11d,ebx - xor r11d,edx - mov r10d,DWORD[36+rsi] - add eax,r11d - rol eax,7 - mov r11d,ecx - add eax,ebx - xor r11d,ebx - lea edx,[((-1958414417))+r10*1+rdx] - and r11d,eax - xor r11d,ecx - mov r10d,DWORD[40+rsi] - add edx,r11d - rol edx,12 - mov r11d,ebx - add edx,eax - xor r11d,eax - lea ecx,[((-42063))+r10*1+rcx] - and r11d,edx - xor r11d,ebx - mov r10d,DWORD[44+rsi] - add ecx,r11d - rol ecx,17 - mov r11d,eax - add ecx,edx - xor r11d,edx - lea ebx,[((-1990404162))+r10*1+rbx] - and r11d,ecx - xor r11d,eax - mov r10d,DWORD[48+rsi] - add ebx,r11d - rol ebx,22 - mov r11d,edx - add ebx,ecx - xor r11d,ecx - lea eax,[1804603682+r10*1+rax] - and r11d,ebx - xor r11d,edx - mov r10d,DWORD[52+rsi] - add eax,r11d - rol eax,7 - mov r11d,ecx - add eax,ebx - xor r11d,ebx - lea edx,[((-40341101))+r10*1+rdx] - and r11d,eax - xor r11d,ecx - mov r10d,DWORD[56+rsi] - add edx,r11d - rol edx,12 - mov r11d,ebx - add edx,eax - xor r11d,eax - lea ecx,[((-1502002290))+r10*1+rcx] - and r11d,edx - xor r11d,ebx - mov r10d,DWORD[60+rsi] - add ecx,r11d - rol ecx,17 - mov r11d,eax - add ecx,edx - xor r11d,edx - lea ebx,[1236535329+r10*1+rbx] - and r11d,ecx - xor r11d,eax - mov r10d,DWORD[rsi] - add ebx,r11d - rol ebx,22 - mov r11d,edx - add ebx,ecx - mov r10d,DWORD[4+rsi] - mov r11d,edx - mov r12d,edx - not r11d - lea eax,[((-165796510))+r10*1+rax] - and r12d,ebx - and r11d,ecx - mov r10d,DWORD[24+rsi] - or r12d,r11d - mov r11d,ecx - add eax,r12d - mov r12d,ecx - rol eax,5 - add eax,ebx - not r11d - lea edx,[((-1069501632))+r10*1+rdx] - and r12d,eax - and r11d,ebx - mov r10d,DWORD[44+rsi] - or r12d,r11d - mov r11d,ebx - add edx,r12d - mov r12d,ebx - rol edx,9 - add edx,eax - not r11d - lea ecx,[643717713+r10*1+rcx] - and r12d,edx - and r11d,eax - mov r10d,DWORD[rsi] - or r12d,r11d - mov r11d,eax - add ecx,r12d - mov r12d,eax - rol ecx,14 - add ecx,edx - not r11d - lea ebx,[((-373897302))+r10*1+rbx] - and r12d,ecx - and r11d,edx - mov r10d,DWORD[20+rsi] - or r12d,r11d - mov r11d,edx - add ebx,r12d - mov r12d,edx - rol ebx,20 - add ebx,ecx - not r11d - lea eax,[((-701558691))+r10*1+rax] - and r12d,ebx - and r11d,ecx - mov r10d,DWORD[40+rsi] - or r12d,r11d - mov r11d,ecx - add eax,r12d - mov r12d,ecx - rol eax,5 - add eax,ebx - not r11d - lea edx,[38016083+r10*1+rdx] - and r12d,eax - and r11d,ebx - mov r10d,DWORD[60+rsi] - or r12d,r11d - mov r11d,ebx - add edx,r12d - mov r12d,ebx - rol edx,9 - add edx,eax - not r11d - lea ecx,[((-660478335))+r10*1+rcx] - and r12d,edx - and r11d,eax - mov r10d,DWORD[16+rsi] - or r12d,r11d - mov r11d,eax - add ecx,r12d - mov r12d,eax - rol ecx,14 - add ecx,edx - not r11d - lea ebx,[((-405537848))+r10*1+rbx] - and r12d,ecx - and r11d,edx - mov r10d,DWORD[36+rsi] - or r12d,r11d - mov r11d,edx - add ebx,r12d - mov r12d,edx - rol ebx,20 - add ebx,ecx - not r11d - lea eax,[568446438+r10*1+rax] - and r12d,ebx - and r11d,ecx - mov r10d,DWORD[56+rsi] - or r12d,r11d - mov r11d,ecx - add eax,r12d - mov r12d,ecx - rol eax,5 - add eax,ebx - not r11d - lea edx,[((-1019803690))+r10*1+rdx] - and r12d,eax - and r11d,ebx - mov r10d,DWORD[12+rsi] - or r12d,r11d - mov r11d,ebx - add edx,r12d - mov r12d,ebx - rol edx,9 - add edx,eax - not r11d - lea ecx,[((-187363961))+r10*1+rcx] - and r12d,edx - and r11d,eax - mov r10d,DWORD[32+rsi] - or r12d,r11d - mov r11d,eax - add ecx,r12d - mov r12d,eax - rol ecx,14 - add ecx,edx - not r11d - lea ebx,[1163531501+r10*1+rbx] - and r12d,ecx - and r11d,edx - mov r10d,DWORD[52+rsi] - or r12d,r11d - mov r11d,edx - add ebx,r12d - mov r12d,edx - rol ebx,20 - add ebx,ecx - not r11d - lea eax,[((-1444681467))+r10*1+rax] - and r12d,ebx - and r11d,ecx - mov r10d,DWORD[8+rsi] - or r12d,r11d - mov r11d,ecx - add eax,r12d - mov r12d,ecx - rol eax,5 - add eax,ebx - not r11d - lea edx,[((-51403784))+r10*1+rdx] - and r12d,eax - and r11d,ebx - mov r10d,DWORD[28+rsi] - or r12d,r11d - mov r11d,ebx - add edx,r12d - mov r12d,ebx - rol edx,9 - add edx,eax - not r11d - lea ecx,[1735328473+r10*1+rcx] - and r12d,edx - and r11d,eax - mov r10d,DWORD[48+rsi] - or r12d,r11d - mov r11d,eax - add ecx,r12d - mov r12d,eax - rol ecx,14 - add ecx,edx - not r11d - lea ebx,[((-1926607734))+r10*1+rbx] - and r12d,ecx - and r11d,edx - mov r10d,DWORD[rsi] - or r12d,r11d - mov r11d,edx - add ebx,r12d - mov r12d,edx - rol ebx,20 - add ebx,ecx - mov r10d,DWORD[20+rsi] - mov r11d,ecx - lea eax,[((-378558))+r10*1+rax] - mov r10d,DWORD[32+rsi] - xor r11d,edx - xor r11d,ebx - add eax,r11d - rol eax,4 - mov r11d,ebx - add eax,ebx - lea edx,[((-2022574463))+r10*1+rdx] - mov r10d,DWORD[44+rsi] - xor r11d,ecx - xor r11d,eax - add edx,r11d - rol edx,11 - mov r11d,eax - add edx,eax - lea ecx,[1839030562+r10*1+rcx] - mov r10d,DWORD[56+rsi] - xor r11d,ebx - xor r11d,edx - add ecx,r11d - rol ecx,16 - mov r11d,edx - add ecx,edx - lea ebx,[((-35309556))+r10*1+rbx] - mov r10d,DWORD[4+rsi] - xor r11d,eax - xor r11d,ecx - add ebx,r11d - rol ebx,23 - mov r11d,ecx - add ebx,ecx - lea eax,[((-1530992060))+r10*1+rax] - mov r10d,DWORD[16+rsi] - xor r11d,edx - xor r11d,ebx - add eax,r11d - rol eax,4 - mov r11d,ebx - add eax,ebx - lea edx,[1272893353+r10*1+rdx] - mov r10d,DWORD[28+rsi] - xor r11d,ecx - xor r11d,eax - add edx,r11d - rol edx,11 - mov r11d,eax - add edx,eax - lea ecx,[((-155497632))+r10*1+rcx] - mov r10d,DWORD[40+rsi] - xor r11d,ebx - xor r11d,edx - add ecx,r11d - rol ecx,16 - mov r11d,edx - add ecx,edx - lea ebx,[((-1094730640))+r10*1+rbx] - mov r10d,DWORD[52+rsi] - xor r11d,eax - xor r11d,ecx - add ebx,r11d - rol ebx,23 - mov r11d,ecx - add ebx,ecx - lea eax,[681279174+r10*1+rax] - mov r10d,DWORD[rsi] - xor r11d,edx - xor r11d,ebx - add eax,r11d - rol eax,4 - mov r11d,ebx - add eax,ebx - lea edx,[((-358537222))+r10*1+rdx] - mov r10d,DWORD[12+rsi] - xor r11d,ecx - xor r11d,eax - add edx,r11d - rol edx,11 - mov r11d,eax - add edx,eax - lea ecx,[((-722521979))+r10*1+rcx] - mov r10d,DWORD[24+rsi] - xor r11d,ebx - xor r11d,edx - add ecx,r11d - rol ecx,16 - mov r11d,edx - add ecx,edx - lea ebx,[76029189+r10*1+rbx] - mov r10d,DWORD[36+rsi] - xor r11d,eax - xor r11d,ecx - add ebx,r11d - rol ebx,23 - mov r11d,ecx - add ebx,ecx - lea eax,[((-640364487))+r10*1+rax] - mov r10d,DWORD[48+rsi] - xor r11d,edx - xor r11d,ebx - add eax,r11d - rol eax,4 - mov r11d,ebx - add eax,ebx - lea edx,[((-421815835))+r10*1+rdx] - mov r10d,DWORD[60+rsi] - xor r11d,ecx - xor r11d,eax - add edx,r11d - rol edx,11 - mov r11d,eax - add edx,eax - lea ecx,[530742520+r10*1+rcx] - mov r10d,DWORD[8+rsi] - xor r11d,ebx - xor r11d,edx - add ecx,r11d - rol ecx,16 - mov r11d,edx - add ecx,edx - lea ebx,[((-995338651))+r10*1+rbx] - mov r10d,DWORD[rsi] - xor r11d,eax - xor r11d,ecx - add ebx,r11d - rol ebx,23 - mov r11d,ecx - add ebx,ecx - mov r10d,DWORD[rsi] - mov r11d,0xffffffff - xor r11d,edx - lea eax,[((-198630844))+r10*1+rax] - or r11d,ebx - xor r11d,ecx - add eax,r11d - mov r10d,DWORD[28+rsi] - mov r11d,0xffffffff - rol eax,6 - xor r11d,ecx - add eax,ebx - lea edx,[1126891415+r10*1+rdx] - or r11d,eax - xor r11d,ebx - add edx,r11d - mov r10d,DWORD[56+rsi] - mov r11d,0xffffffff - rol edx,10 - xor r11d,ebx - add edx,eax - lea ecx,[((-1416354905))+r10*1+rcx] - or r11d,edx - xor r11d,eax - add ecx,r11d - mov r10d,DWORD[20+rsi] - mov r11d,0xffffffff - rol ecx,15 - xor r11d,eax - add ecx,edx - lea ebx,[((-57434055))+r10*1+rbx] - or r11d,ecx - xor r11d,edx - add ebx,r11d - mov r10d,DWORD[48+rsi] - mov r11d,0xffffffff - rol ebx,21 - xor r11d,edx - add ebx,ecx - lea eax,[1700485571+r10*1+rax] - or r11d,ebx - xor r11d,ecx - add eax,r11d - mov r10d,DWORD[12+rsi] - mov r11d,0xffffffff - rol eax,6 - xor r11d,ecx - add eax,ebx - lea edx,[((-1894986606))+r10*1+rdx] - or r11d,eax - xor r11d,ebx - add edx,r11d - mov r10d,DWORD[40+rsi] - mov r11d,0xffffffff - rol edx,10 - xor r11d,ebx - add edx,eax - lea ecx,[((-1051523))+r10*1+rcx] - or r11d,edx - xor r11d,eax - add ecx,r11d - mov r10d,DWORD[4+rsi] - mov r11d,0xffffffff - rol ecx,15 - xor r11d,eax - add ecx,edx - lea ebx,[((-2054922799))+r10*1+rbx] - or r11d,ecx - xor r11d,edx - add ebx,r11d - mov r10d,DWORD[32+rsi] - mov r11d,0xffffffff - rol ebx,21 - xor r11d,edx - add ebx,ecx - lea eax,[1873313359+r10*1+rax] - or r11d,ebx - xor r11d,ecx - add eax,r11d - mov r10d,DWORD[60+rsi] - mov r11d,0xffffffff - rol eax,6 - xor r11d,ecx - add eax,ebx - lea edx,[((-30611744))+r10*1+rdx] - or r11d,eax - xor r11d,ebx - add edx,r11d - mov r10d,DWORD[24+rsi] - mov r11d,0xffffffff - rol edx,10 - xor r11d,ebx - add edx,eax - lea ecx,[((-1560198380))+r10*1+rcx] - or r11d,edx - xor r11d,eax - add ecx,r11d - mov r10d,DWORD[52+rsi] - mov r11d,0xffffffff - rol ecx,15 - xor r11d,eax - add ecx,edx - lea ebx,[1309151649+r10*1+rbx] - or r11d,ecx - xor r11d,edx - add ebx,r11d - mov r10d,DWORD[16+rsi] - mov r11d,0xffffffff - rol ebx,21 - xor r11d,edx - add ebx,ecx - lea eax,[((-145523070))+r10*1+rax] - or r11d,ebx - xor r11d,ecx - add eax,r11d - mov r10d,DWORD[44+rsi] - mov r11d,0xffffffff - rol eax,6 - xor r11d,ecx - add eax,ebx - lea edx,[((-1120210379))+r10*1+rdx] - or r11d,eax - xor r11d,ebx - add edx,r11d - mov r10d,DWORD[8+rsi] - mov r11d,0xffffffff - rol edx,10 - xor r11d,ebx - add edx,eax - lea ecx,[718787259+r10*1+rcx] - or r11d,edx - xor r11d,eax - add ecx,r11d - mov r10d,DWORD[36+rsi] - mov r11d,0xffffffff - rol ecx,15 - xor r11d,eax - add ecx,edx - lea ebx,[((-343485551))+r10*1+rbx] - or r11d,ecx - xor r11d,edx - add ebx,r11d - mov r10d,DWORD[rsi] - mov r11d,0xffffffff - rol ebx,21 - xor r11d,edx - add ebx,ecx - - add eax,r8d - add ebx,r9d - add ecx,r14d - add edx,r15d - - - add rsi,64 - cmp rsi,rdi - jb NEAR $L$loop - - -$L$end: - mov DWORD[rbp],eax - mov DWORD[4+rbp],ebx - mov DWORD[8+rbp],ecx - mov DWORD[12+rbp],edx - - mov r15,QWORD[rsp] - - mov r14,QWORD[8+rsp] - - mov r12,QWORD[16+rsp] - - mov rbx,QWORD[24+rsp] - - mov rbp,QWORD[32+rsp] - - add rsp,40 - -$L$epilogue: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - ret - -$L$SEH_end_md5_block_asm_data_order: -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] - - lea r10,[$L$prologue] - cmp rbx,r10 - jb NEAR $L$in_prologue - - mov rax,QWORD[152+r8] - - lea r10,[$L$epilogue] - cmp rbx,r10 - jae NEAR $L$in_prologue - - lea rax,[40+rax] - - mov rbp,QWORD[((-8))+rax] - mov rbx,QWORD[((-16))+rax] - mov r12,QWORD[((-24))+rax] - mov r14,QWORD[((-32))+rax] - mov r15,QWORD[((-40))+rax] - mov QWORD[144+r8],rbx - mov QWORD[160+r8],rbp - mov QWORD[216+r8],r12 - 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 - ret - - -section .pdata rdata align=4 -ALIGN 4 - DD $L$SEH_begin_md5_block_asm_data_order wrt ..imagebase - DD $L$SEH_end_md5_block_asm_data_order wrt ..imagebase - DD $L$SEH_info_md5_block_asm_data_order wrt ..imagebase - -section .xdata rdata align=8 -ALIGN 8 -$L$SEH_info_md5_block_asm_data_order: - DB 9,0,0,0 - DD se_handler wrt ..imagebase -%else -; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 -ret -%endif From f10c1dc37174843c504a80e94c252e35b7b1eb61 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Mon, 9 Sep 2024 09:29:20 -0700 Subject: [PATCH 80/81] nist-pkits: update README.chromium metadata Bug: chromium:365320414 Change-Id: I5d18425257dd87fe33a72dece194c2fe1977e51d Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/71067 Reviewed-by: David Benjamin Auto-Submit: Adam Langley Commit-Queue: David Benjamin --- pki/testdata/nist-pkits/README.chromium | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pki/testdata/nist-pkits/README.chromium b/pki/testdata/nist-pkits/README.chromium index a8620628f2..3f09e0997c 100644 --- a/pki/testdata/nist-pkits/README.chromium +++ b/pki/testdata/nist-pkits/README.chromium @@ -2,9 +2,10 @@ Name: NIST Public Key Interoperability Test Suite Short Name: NIST PKITS URL: http://csrc.nist.gov/groups/ST/crypto_apps_infra/pki/pkitesting.html Version: 1.0.1 -Date: April 14, 2011 +Date: 2011-04-14 License: Public Domain: United States Government Work under 17 U.S.C. 105 Shipped: no +Security Critical: no Description: The Public Key Interoperability Test Suite (PKITS) is a comprehensive X.509 From 5918e7dc58ffb57d234343cd47b56faa9e5707e7 Mon Sep 17 00:00:00 2001 From: PI <74706004+pi-314159@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:25:40 -0500 Subject: [PATCH 81/81] Update README.md add a note about Google's implementations of quantum-safe crypto algorithms Signed-off-by: PI <74706004+pi-314159@users.noreply.github.com> --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a016c69c9..ac6967d0bb 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ This fork is built on top of [commit f10c1dc](https://github.com/google/boringss - quantum-safe digital signatures - hybrid (quantum-safe + RSA / elliptic curve) digital signatures +For cryptographic algorithms that are supported natively by BoringSSL, Google's implementation is used; otherwise, the implementation from liboqs is used. + **WE DO NOT RECOMMEND RELYING ON THIS FORK IN A PRODUCTION ENVIRONMENT OR TO PROTECT ANY SENSITIVE DATA.** This fork is at an experimental stage, and BoringSSL does not guarantee API or ABI stability. See the [Limitations and Security](#limitations-and-security) section below for more information. liboqs and this integration are provided "as is", without warranty of any kind. See the [LICENSE](https://github.com/open-quantum-safe/liboqs/blob/main/LICENSE.txt) for the full disclaimer. @@ -64,7 +66,7 @@ If an algorithm is provided by liboqs but is not listed below, it might still be #### Key Exchange -The following quantum-safe algorithms from liboqs are supported (assuming they have been enabled in liboqs): +In addition to `X25519MLKEM768` and `X25519Kyber768Draft00` supported by BoringSSL, this fork also includes support for the following quantum-safe algorithms from liboqs (assuming they have been enabled in liboqs): - **BIKE**: `bikel1`, `bikel3`, `bikel5`